diff --git a/.babelrc b/.babelrc new file mode 100644 index 0000000..964220e --- /dev/null +++ b/.babelrc @@ -0,0 +1,5 @@ +{ + "presets": [ + "next/babel" + ] +} \ No newline at end of file diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 0000000..bffb357 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,3 @@ +{ + "extends": "next/core-web-vitals" +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3c3629e --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +node_modules diff --git a/.next/build-manifest.json b/.next/build-manifest.json new file mode 100644 index 0000000..b0822b7 --- /dev/null +++ b/.next/build-manifest.json @@ -0,0 +1,40 @@ +{ + "polyfillFiles": [ + "static/chunks/polyfills.js" + ], + "devFiles": [ + "static/chunks/react-refresh.js" + ], + "ampDevFiles": [ + "static/chunks/webpack.js", + "static/chunks/amp.js" + ], + "lowPriorityFiles": [ + "static/development/_buildManifest.js", + "static/development/_ssgManifest.js", + "static/development/_middlewareManifest.js" + ], + "pages": { + "/": [ + "static/chunks/webpack.js", + "static/chunks/main.js", + "static/chunks/pages/index.js" + ], + "/_app": [ + "static/chunks/webpack.js", + "static/chunks/main.js", + "static/chunks/pages/_app.js" + ], + "/_error": [ + "static/chunks/webpack.js", + "static/chunks/main.js", + "static/chunks/pages/_error.js" + ], + "/contact/contact-light": [ + "static/chunks/webpack.js", + "static/chunks/main.js", + "static/chunks/pages/contact/contact-light.js" + ] + }, + "ampFirstPages": [] +} \ No newline at end of file diff --git a/.next/cache/webpack/client-development-fallback/0.pack b/.next/cache/webpack/client-development-fallback/0.pack new file mode 100644 index 0000000..270c846 Binary files /dev/null and b/.next/cache/webpack/client-development-fallback/0.pack differ diff --git a/.next/cache/webpack/client-development-fallback/index.pack b/.next/cache/webpack/client-development-fallback/index.pack new file mode 100644 index 0000000..cd70d4b Binary files /dev/null and b/.next/cache/webpack/client-development-fallback/index.pack differ diff --git a/.next/cache/webpack/client-development-fallback/index.pack.old b/.next/cache/webpack/client-development-fallback/index.pack.old new file mode 100644 index 0000000..eb4b3a2 Binary files /dev/null and b/.next/cache/webpack/client-development-fallback/index.pack.old differ diff --git a/.next/cache/webpack/client-development/0.pack b/.next/cache/webpack/client-development/0.pack new file mode 100644 index 0000000..c6006d4 Binary files /dev/null and b/.next/cache/webpack/client-development/0.pack differ diff --git a/.next/cache/webpack/client-development/1.pack b/.next/cache/webpack/client-development/1.pack new file mode 100644 index 0000000..55138a7 Binary files /dev/null and b/.next/cache/webpack/client-development/1.pack differ diff --git a/.next/cache/webpack/client-development/10.pack b/.next/cache/webpack/client-development/10.pack new file mode 100644 index 0000000..641c9b4 Binary files /dev/null and b/.next/cache/webpack/client-development/10.pack differ diff --git a/.next/cache/webpack/client-development/11.pack b/.next/cache/webpack/client-development/11.pack new file mode 100644 index 0000000..cf42561 Binary files /dev/null and b/.next/cache/webpack/client-development/11.pack differ diff --git a/.next/cache/webpack/client-development/12.pack b/.next/cache/webpack/client-development/12.pack new file mode 100644 index 0000000..1113f54 Binary files /dev/null and b/.next/cache/webpack/client-development/12.pack differ diff --git a/.next/cache/webpack/client-development/13.pack b/.next/cache/webpack/client-development/13.pack new file mode 100644 index 0000000..5b1d8b7 Binary files /dev/null and b/.next/cache/webpack/client-development/13.pack differ diff --git a/.next/cache/webpack/client-development/14.pack b/.next/cache/webpack/client-development/14.pack new file mode 100644 index 0000000..9ee4b2e Binary files /dev/null and b/.next/cache/webpack/client-development/14.pack differ diff --git a/.next/cache/webpack/client-development/15.pack b/.next/cache/webpack/client-development/15.pack new file mode 100644 index 0000000..e621a34 Binary files /dev/null and b/.next/cache/webpack/client-development/15.pack differ diff --git a/.next/cache/webpack/client-development/16.pack b/.next/cache/webpack/client-development/16.pack new file mode 100644 index 0000000..2348b9e Binary files /dev/null and b/.next/cache/webpack/client-development/16.pack differ diff --git a/.next/cache/webpack/client-development/17.pack b/.next/cache/webpack/client-development/17.pack new file mode 100644 index 0000000..9a4a7aa Binary files /dev/null and b/.next/cache/webpack/client-development/17.pack differ diff --git a/.next/cache/webpack/client-development/18.pack b/.next/cache/webpack/client-development/18.pack new file mode 100644 index 0000000..264e1d2 Binary files /dev/null and b/.next/cache/webpack/client-development/18.pack differ diff --git a/.next/cache/webpack/client-development/19.pack b/.next/cache/webpack/client-development/19.pack new file mode 100644 index 0000000..c128deb Binary files /dev/null and b/.next/cache/webpack/client-development/19.pack differ diff --git a/.next/cache/webpack/client-development/2.pack b/.next/cache/webpack/client-development/2.pack new file mode 100644 index 0000000..032c59c Binary files /dev/null and b/.next/cache/webpack/client-development/2.pack differ diff --git a/.next/cache/webpack/client-development/20.pack b/.next/cache/webpack/client-development/20.pack new file mode 100644 index 0000000..7819940 Binary files /dev/null and b/.next/cache/webpack/client-development/20.pack differ diff --git a/.next/cache/webpack/client-development/21.pack b/.next/cache/webpack/client-development/21.pack new file mode 100644 index 0000000..92cd56e Binary files /dev/null and b/.next/cache/webpack/client-development/21.pack differ diff --git a/.next/cache/webpack/client-development/22.pack b/.next/cache/webpack/client-development/22.pack new file mode 100644 index 0000000..f294b93 Binary files /dev/null and b/.next/cache/webpack/client-development/22.pack differ diff --git a/.next/cache/webpack/client-development/23.pack b/.next/cache/webpack/client-development/23.pack new file mode 100644 index 0000000..2107bef Binary files /dev/null and b/.next/cache/webpack/client-development/23.pack differ diff --git a/.next/cache/webpack/client-development/24.pack b/.next/cache/webpack/client-development/24.pack new file mode 100644 index 0000000..1b798b4 Binary files /dev/null and b/.next/cache/webpack/client-development/24.pack differ diff --git a/.next/cache/webpack/client-development/25.pack b/.next/cache/webpack/client-development/25.pack new file mode 100644 index 0000000..f2c08db Binary files /dev/null and b/.next/cache/webpack/client-development/25.pack differ diff --git a/.next/cache/webpack/client-development/26.pack b/.next/cache/webpack/client-development/26.pack new file mode 100644 index 0000000..9934203 Binary files /dev/null and b/.next/cache/webpack/client-development/26.pack differ diff --git a/.next/cache/webpack/client-development/27.pack b/.next/cache/webpack/client-development/27.pack new file mode 100644 index 0000000..eef939d Binary files /dev/null and b/.next/cache/webpack/client-development/27.pack differ diff --git a/.next/cache/webpack/client-development/28.pack b/.next/cache/webpack/client-development/28.pack new file mode 100644 index 0000000..5d50f9e Binary files /dev/null and b/.next/cache/webpack/client-development/28.pack differ diff --git a/.next/cache/webpack/client-development/29.pack b/.next/cache/webpack/client-development/29.pack new file mode 100644 index 0000000..4737110 Binary files /dev/null and b/.next/cache/webpack/client-development/29.pack differ diff --git a/.next/cache/webpack/client-development/3.pack b/.next/cache/webpack/client-development/3.pack new file mode 100644 index 0000000..6a6be57 Binary files /dev/null and b/.next/cache/webpack/client-development/3.pack differ diff --git a/.next/cache/webpack/client-development/30.pack b/.next/cache/webpack/client-development/30.pack new file mode 100644 index 0000000..1843b8f Binary files /dev/null and b/.next/cache/webpack/client-development/30.pack differ diff --git a/.next/cache/webpack/client-development/4.pack b/.next/cache/webpack/client-development/4.pack new file mode 100644 index 0000000..c15821d Binary files /dev/null and b/.next/cache/webpack/client-development/4.pack differ diff --git a/.next/cache/webpack/client-development/5.pack b/.next/cache/webpack/client-development/5.pack new file mode 100644 index 0000000..aaf26a4 Binary files /dev/null and b/.next/cache/webpack/client-development/5.pack differ diff --git a/.next/cache/webpack/client-development/6.pack b/.next/cache/webpack/client-development/6.pack new file mode 100644 index 0000000..e5047a9 Binary files /dev/null and b/.next/cache/webpack/client-development/6.pack differ diff --git a/.next/cache/webpack/client-development/7.pack b/.next/cache/webpack/client-development/7.pack new file mode 100644 index 0000000..047b26b Binary files /dev/null and b/.next/cache/webpack/client-development/7.pack differ diff --git a/.next/cache/webpack/client-development/8.pack b/.next/cache/webpack/client-development/8.pack new file mode 100644 index 0000000..61d72de Binary files /dev/null and b/.next/cache/webpack/client-development/8.pack differ diff --git a/.next/cache/webpack/client-development/9.pack b/.next/cache/webpack/client-development/9.pack new file mode 100644 index 0000000..66145cb Binary files /dev/null and b/.next/cache/webpack/client-development/9.pack differ diff --git a/.next/cache/webpack/client-development/index.pack b/.next/cache/webpack/client-development/index.pack new file mode 100644 index 0000000..a2c2bea Binary files /dev/null and b/.next/cache/webpack/client-development/index.pack differ diff --git a/.next/cache/webpack/client-development/index.pack.old b/.next/cache/webpack/client-development/index.pack.old new file mode 100644 index 0000000..2460e67 Binary files /dev/null and b/.next/cache/webpack/client-development/index.pack.old differ diff --git a/.next/cache/webpack/server-development/0.pack b/.next/cache/webpack/server-development/0.pack new file mode 100644 index 0000000..09514d9 Binary files /dev/null and b/.next/cache/webpack/server-development/0.pack differ diff --git a/.next/cache/webpack/server-development/1.pack b/.next/cache/webpack/server-development/1.pack new file mode 100644 index 0000000..d2a0ce7 Binary files /dev/null and b/.next/cache/webpack/server-development/1.pack differ diff --git a/.next/cache/webpack/server-development/10.pack b/.next/cache/webpack/server-development/10.pack new file mode 100644 index 0000000..c6ca7ef Binary files /dev/null and b/.next/cache/webpack/server-development/10.pack differ diff --git a/.next/cache/webpack/server-development/11.pack b/.next/cache/webpack/server-development/11.pack new file mode 100644 index 0000000..01a706a Binary files /dev/null and b/.next/cache/webpack/server-development/11.pack differ diff --git a/.next/cache/webpack/server-development/12.pack b/.next/cache/webpack/server-development/12.pack new file mode 100644 index 0000000..0ea5c38 Binary files /dev/null and b/.next/cache/webpack/server-development/12.pack differ diff --git a/.next/cache/webpack/server-development/13.pack b/.next/cache/webpack/server-development/13.pack new file mode 100644 index 0000000..b554d04 Binary files /dev/null and b/.next/cache/webpack/server-development/13.pack differ diff --git a/.next/cache/webpack/server-development/14.pack b/.next/cache/webpack/server-development/14.pack new file mode 100644 index 0000000..0df835b Binary files /dev/null and b/.next/cache/webpack/server-development/14.pack differ diff --git a/.next/cache/webpack/server-development/15.pack b/.next/cache/webpack/server-development/15.pack new file mode 100644 index 0000000..da71b89 Binary files /dev/null and b/.next/cache/webpack/server-development/15.pack differ diff --git a/.next/cache/webpack/server-development/16.pack b/.next/cache/webpack/server-development/16.pack new file mode 100644 index 0000000..407402c Binary files /dev/null and b/.next/cache/webpack/server-development/16.pack differ diff --git a/.next/cache/webpack/server-development/17.pack b/.next/cache/webpack/server-development/17.pack new file mode 100644 index 0000000..d413b06 Binary files /dev/null and b/.next/cache/webpack/server-development/17.pack differ diff --git a/.next/cache/webpack/server-development/18.pack b/.next/cache/webpack/server-development/18.pack new file mode 100644 index 0000000..4f93b17 Binary files /dev/null and b/.next/cache/webpack/server-development/18.pack differ diff --git a/.next/cache/webpack/server-development/19.pack b/.next/cache/webpack/server-development/19.pack new file mode 100644 index 0000000..12eb1f4 Binary files /dev/null and b/.next/cache/webpack/server-development/19.pack differ diff --git a/.next/cache/webpack/server-development/2.pack b/.next/cache/webpack/server-development/2.pack new file mode 100644 index 0000000..dd39d09 Binary files /dev/null and b/.next/cache/webpack/server-development/2.pack differ diff --git a/.next/cache/webpack/server-development/3.pack b/.next/cache/webpack/server-development/3.pack new file mode 100644 index 0000000..f7d9e18 Binary files /dev/null and b/.next/cache/webpack/server-development/3.pack differ diff --git a/.next/cache/webpack/server-development/4.pack b/.next/cache/webpack/server-development/4.pack new file mode 100644 index 0000000..0ab3115 Binary files /dev/null and b/.next/cache/webpack/server-development/4.pack differ diff --git a/.next/cache/webpack/server-development/5.pack b/.next/cache/webpack/server-development/5.pack new file mode 100644 index 0000000..128fb50 Binary files /dev/null and b/.next/cache/webpack/server-development/5.pack differ diff --git a/.next/cache/webpack/server-development/6.pack b/.next/cache/webpack/server-development/6.pack new file mode 100644 index 0000000..874e5aa Binary files /dev/null and b/.next/cache/webpack/server-development/6.pack differ diff --git a/.next/cache/webpack/server-development/7.pack b/.next/cache/webpack/server-development/7.pack new file mode 100644 index 0000000..02e08c1 Binary files /dev/null and b/.next/cache/webpack/server-development/7.pack differ diff --git a/.next/cache/webpack/server-development/8.pack b/.next/cache/webpack/server-development/8.pack new file mode 100644 index 0000000..ab9e751 Binary files /dev/null and b/.next/cache/webpack/server-development/8.pack differ diff --git a/.next/cache/webpack/server-development/9.pack b/.next/cache/webpack/server-development/9.pack new file mode 100644 index 0000000..ae3fb2e Binary files /dev/null and b/.next/cache/webpack/server-development/9.pack differ diff --git a/.next/cache/webpack/server-development/index.pack b/.next/cache/webpack/server-development/index.pack new file mode 100644 index 0000000..230421c Binary files /dev/null and b/.next/cache/webpack/server-development/index.pack differ diff --git a/.next/cache/webpack/server-development/index.pack.old b/.next/cache/webpack/server-development/index.pack.old new file mode 100644 index 0000000..17f84bc Binary files /dev/null and b/.next/cache/webpack/server-development/index.pack.old differ diff --git a/.next/fallback-build-manifest.json b/.next/fallback-build-manifest.json new file mode 100644 index 0000000..014fc5b --- /dev/null +++ b/.next/fallback-build-manifest.json @@ -0,0 +1,26 @@ +{ + "polyfillFiles": [ + "static/chunks/polyfills.js" + ], + "devFiles": [ + "static/chunks/fallback/react-refresh.js" + ], + "ampDevFiles": [ + "static/chunks/fallback/webpack.js", + "static/chunks/fallback/amp.js" + ], + "lowPriorityFiles": [], + "pages": { + "/_app": [ + "static/chunks/fallback/webpack.js", + "static/chunks/fallback/main.js", + "static/chunks/fallback/pages/_app.js" + ], + "/_error": [ + "static/chunks/fallback/webpack.js", + "static/chunks/fallback/main.js", + "static/chunks/fallback/pages/_error.js" + ] + }, + "ampFirstPages": [] +} \ No newline at end of file diff --git a/.next/react-loadable-manifest.json b/.next/react-loadable-manifest.json new file mode 100644 index 0000000..1cfff17 --- /dev/null +++ b/.next/react-loadable-manifest.json @@ -0,0 +1,14 @@ +{ + "..\\..\\node_modules\\next\\dist\\client\\index.js -> ../pages/_error": { + "id": "./node_modules/next/dist/pages/_error.js", + "files": [ + "static/chunks/node_modules_next_dist_pages__error_js.js" + ] + }, + "..\\..\\node_modules\\next\\dist\\client\\next-dev.js -> ./dev/noop": { + "id": "./node_modules/next/dist/client/dev/noop.js", + "files": [ + "static/chunks/node_modules_next_dist_client_dev_noop_js.js" + ] + } +} \ No newline at end of file diff --git a/.next/server/_error.js b/.next/server/_error.js new file mode 100644 index 0000000..32f3a0e --- /dev/null +++ b/.next/server/_error.js @@ -0,0 +1,56 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +(() => { +var exports = {}; +exports.id = "/_error"; +exports.ids = ["/_error"]; +exports.modules = { + +/***/ "./node_modules/next/dist/pages/_error.js": +/*!************************************************!*\ + !*** ./node_modules/next/dist/pages/_error.js ***! + \************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"react\"));\n\nvar _head = _interopRequireDefault(__webpack_require__(/*! ../shared/lib/head */ \"../shared/lib/head\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\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};\n\nfunction _getInitialProps({\n res,\n err\n}) {\n const statusCode = res && res.statusCode ? res.statusCode : err ? err.statusCode : 404;\n return {\n statusCode\n };\n}\n\nclass Error extends _react.default.Component {\n render() {\n const {\n statusCode\n } = this.props;\n const title = this.props.title || statusCodes[statusCode] || 'An unexpected error has occurred';\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n style: styles.error\n }, /*#__PURE__*/_react.default.createElement(_head.default, null, /*#__PURE__*/_react.default.createElement(\"title\", null, statusCode ? `${statusCode}: ${title}` : 'Application error: a client-side exception has occurred')), /*#__PURE__*/_react.default.createElement(\"div\", null, /*#__PURE__*/_react.default.createElement(\"style\", {\n dangerouslySetInnerHTML: {\n __html: 'body { margin: 0 }'\n }\n }), statusCode ? /*#__PURE__*/_react.default.createElement(\"h1\", {\n style: styles.h1\n }, statusCode) : null, /*#__PURE__*/_react.default.createElement(\"div\", {\n style: styles.desc\n }, /*#__PURE__*/_react.default.createElement(\"h2\", {\n style: styles.h2\n }, this.props.title || statusCode ? title : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, \"Application error: a client-side exception has occurred (see the browser console for more information)\"), \".\"))));\n }\n\n}\n\nError.displayName = 'ErrorPage';\nError.getInitialProps = _getInitialProps;\nError.origGetInitialProps = _getInitialProps;\nexports[\"default\"] = Error;\nconst styles = {\n error: {\n color: '#000',\n background: '#fff',\n fontFamily: '-apple-system, BlinkMacSystemFont, Roboto, \"Segoe UI\", \"Fira Sans\", Avenir, \"Helvetica Neue\", \"Lucida Grande\", sans-serif',\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 textAlign: 'left',\n lineHeight: '49px',\n height: '49px',\n verticalAlign: 'middle'\n },\n h1: {\n display: 'inline-block',\n borderRight: '1px solid rgba(0, 0, 0,.3)',\n margin: 0,\n marginRight: '20px',\n padding: '10px 23px 10px 0',\n fontSize: '24px',\n fontWeight: 500,\n verticalAlign: 'top'\n },\n h2: {\n fontSize: '14px',\n fontWeight: 'normal',\n lineHeight: 'inherit',\n margin: 0,\n padding: 0\n }\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3BhZ2VzL19lcnJvci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFDYkEsOENBQTZDO0FBQ3pDRyxFQUFBQSxLQUFLLEVBQUU7QUFEa0MsQ0FBN0M7QUFHQUQsa0JBQUEsR0FBa0IsS0FBSyxDQUF2Qjs7QUFDQSxJQUFJRyxNQUFNLEdBQUdDLHNCQUFzQixDQUFDQyxtQkFBTyxDQUFDLG9CQUFELENBQVIsQ0FBbkM7O0FBQ0EsSUFBSUMsS0FBSyxHQUFHRixzQkFBc0IsQ0FBQ0MsbUJBQU8sQ0FBQyw4Q0FBRCxDQUFSLENBQWxDOztBQUNBLFNBQVNELHNCQUFULENBQWdDRyxHQUFoQyxFQUFxQztBQUNqQyxTQUFPQSxHQUFHLElBQUlBLEdBQUcsQ0FBQ0MsVUFBWCxHQUF3QkQsR0FBeEIsR0FBOEI7QUFDakNMLElBQUFBLE9BQU8sRUFBRUs7QUFEd0IsR0FBckM7QUFHSDs7QUFDRCxNQUFNRSxXQUFXLEdBQUc7QUFDaEIsT0FBSyxhQURXO0FBRWhCLE9BQUssOEJBRlc7QUFHaEIsT0FBSyxvQkFIVztBQUloQixPQUFLO0FBSlcsQ0FBcEI7O0FBTUEsU0FBU0MsZ0JBQVQsQ0FBMEI7QUFBRUMsRUFBQUEsR0FBRjtBQUFRQyxFQUFBQTtBQUFSLENBQTFCLEVBQTBDO0FBQ3RDLFFBQU1DLFVBQVUsR0FBR0YsR0FBRyxJQUFJQSxHQUFHLENBQUNFLFVBQVgsR0FBd0JGLEdBQUcsQ0FBQ0UsVUFBNUIsR0FBeUNELEdBQUcsR0FBR0EsR0FBRyxDQUFDQyxVQUFQLEdBQW9CLEdBQW5GO0FBQ0EsU0FBTztBQUNIQSxJQUFBQTtBQURHLEdBQVA7QUFHSDs7QUFDRCxNQUFNQyxLQUFOLFNBQW9CWCxNQUFNLENBQUNELE9BQVAsQ0FBZWEsU0FBbkMsQ0FBNkM7QUFDekNDLEVBQUFBLE1BQU0sR0FBRztBQUNMLFVBQU07QUFBRUgsTUFBQUE7QUFBRixRQUFrQixLQUFLSSxLQUE3QjtBQUNBLFVBQU1DLEtBQUssR0FBRyxLQUFLRCxL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QUUsNEJBRmI7QUFHQUMsSUFBQUEsTUFBTSxFQUFFLENBSFI7QUFJQUMsSUFBQUEsV0FBVyxFQUFFLE1BSmI7QUFLQUMsSUFBQUEsT0FBTyxFQUFFLGtCQUxUO0FBTUFDLElBQUFBLFFBQVEsRUFBRSxNQU5WO0FBT0FDLElBQUFBLFVBQVUsRUFBRSxHQVBaO0FBUUFOLElBQUFBLGFBQWEsRUFBRTtBQVJmLEdBbkJPO0FBNkJYZixFQUFBQSxFQUFFLEVBQUU7QUFDQW9CLElBQUFBLFFBQVEsRUFBRSxNQURWO0FBRUFDLElBQUFBLFVBQVUsRUFBRSxRQUZaO0FBR0FQLElBQUFBLFVBQVUsRUFBRSxTQUhaO0FBSUFHLElBQUFBLE1BQU0sRUFBRSxDQUpSO0FBS0FFLElBQUFBLE9BQU8sRUFBRTtBQUxUO0FBN0JPLENBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly92aWUtcmVhY3QvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3BhZ2VzL19lcnJvci5qcz8xOGYyIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gdm9pZCAwO1xudmFyIF9yZWFjdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJlYWN0XCIpKTtcbnZhciBfaGVhZCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL3NoYXJlZC9saWIvaGVhZFwiKSk7XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5jb25zdCBzdGF0dXNDb2RlcyA9IHtcbiAgICA0MDA6ICdCYWQgUmVxdWVzdCcsXG4gICAgNDA0OiAnVGhpcyBwYWdlIGNvdWxkIG5vdCBiZSBmb3VuZCcsXG4gICAgNDA1OiAnTWV0aG9kIE5vdCBBbGxvd2VkJyxcbiAgICA1MDA6ICdJbnRlcm5hbCBTZXJ2ZXIgRXJyb3InXG59O1xuZnVuY3Rpb24gX2dldEluaXRpYWxQcm9wcyh7IHJlcyAsIGVyciAgfSkge1xuICAgIGNvbnN0IHN0YXR1c0NvZGUgPSByZXMgJiYgcmVzLnN0YXR1c0NvZGUgPyByZXMuc3RhdHVzQ29kZSA6IGVyciA/IGVyci5zdGF0dXNDb2RlIDogNDA0O1xuICAgIHJldHVybiB7XG4gICAgICAgIHN0YXR1c0NvZGVcbiAgICB9O1xufVxuY2xhc3MgRXJyb3IgZXh0ZW5kcyBfcmVhY3QuZGVmYXVsdC5Db21wb25lbnQge1xuICAgIHJlbmRlcigpIHtcbiAgICAgICAgY29uc3QgeyBzdGF0dXNDb2RlICB9ID0gdGhpcy5wcm9wcztcbiAgICAgICAgY29uc3QgdGl0bGUgPSB0aGlzLnByb3BzLnRpdGxlIHx8IHN0YXR1c0NvZGVzW3N0YXR1c0NvZGVdIHx8ICdBbiB1bmV4cGVjdGVkIGVycm9yIGhhcyBvY2N1cnJlZCc7XG4gICAgICAgIHJldHVybigvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICAgICAgc3R5bGU6IHN0eWxlcy5lcnJvclxuICAgICAgICB9LCAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoX2hlYWQuZGVmYXVsdCwgbnVsbCwgLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwidGl0bGVcIiwgbnVsbCwgc3RhdHVzQ29kZSA/IGAke3N0YXR1c0NvZGV9OiAke3RpdGxlfWAgOiAnQXBwbGljYXRpb24gZXJyb3I6IGEgY2xpZW50LXNpZGUgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZCcpKSwgLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIG51bGwsIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIsIHtcbiAgICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MOiB7XG4gICAgICAgICAgICAgICAgX19odG1sOiAnYm9keSB7IG1hcmdpbjogMCB9J1xuICAgICAgICAgICAgfVxuICAgICAgICB9KSwgc3RhdHVzQ29kZSA/IC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImgxXCIsIHtcbiAgICAgICAgICAgIHN0eWxlOiBzdHlsZXMuaDFcbiAgICAgICAgfSwgc3RhdHVzQ29kZSkgOiBudWxsLCAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICAgICAgc3R5bGU6IHN0eWxlcy5kZXNjXG4gICAgICAgIH0sIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImgyXCIsIHtcbiAgICAgICAgICAgIHN0eWxlOiBzdHlsZXMuaDJcbiAgICAgICAgfSwgdGhpcy5wcm9wcy50aXRsZSB8fCBzdGF0dXNDb2RlID8gdGl0bGUgOiAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoX3JlYWN0LmRlZmF1bHQuRnJhZ21lbnQsIG51bGwsIFwiQXBwbGljYXRpb24gZXJyb3I6IGEgY2xpZW50LXNpZGUgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZCAoc2VlIHRoZSBicm93c2VyIGNvbnNvbGUgZm9yIG1vcmUgaW5mb3JtYXRpb24pXCIpLCBcIi5cIikpKSkpO1xuICAgIH1cbn1cbkVycm9yLmRpc3BsYXlOYW1lID0gJ0Vycm9yUGFnZSc7XG5FcnJvci5nZXRJbml0aWFsUHJvcHMgPSBfZ2V0SW5pdGlhbFByb3BzO1xuRXJyb3Iub3JpZ0dldEluaXRpYWxQcm9wcyA9IF9nZXRJbml0aWFsUHJvcHM7XG5leHBvcnRzLmRlZmF1bHQgPSBFcnJvcjtcbmNvbnN0IHN0eWxlcyA9IHtcbiAgICBlcnJvcjoge1xuICAgICAgICBjb2xvcjogJyMwMDAnLFxuICAgICAgICBiYWNrZ3JvdW5kOiAnI2ZmZicsXG4gICAgICAgIGZvbnRGYW1pbHk6ICctYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFJvYm90bywgXCJTZWdvZSBVSVwiLCBcIkZpcmEgU2Fuc1wiLCBBdmVuaXIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJMdWNpZGEgR3JhbmRlXCIsIHNhbnMtc2VyaWYnLFxuICAgICAgICBoZWlnaHQ6ICcxMDB2aCcsXG4gICAgICAgIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcidcbiAgICB9LFxuICAgIGRlc2M6IHtcbiAgICAgICAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG4gICAgICAgIHRleHRBbGlnbjogJ2xlZnQnLFxuICAgICAgICBsaW5lSGVpZ2h0OiAnNDlweCcsXG4gICAgICAgIGhlaWdodDogJzQ5cHgnLFxuICAgICAgICB2ZXJ0aWNhbEFsaWduOiAnbWlkZGxlJ1xuICAgIH0sXG4gICAgaDE6IHtcbiAgICAgICAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG4gICAgICAgIGJvcmRlclJpZ2h0OiAnMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwuMyknLFxuICAgICAgICBtYXJnaW46IDAsXG4gICAgICAgIG1hcmdpblJpZ2h0OiAnMjBweCcsXG4gICAgICAgIHBhZGRpbmc6ICcxMHB4IDIzcHggMTBweCAwJyxcbiAgICAgICAgZm9udFNpemU6ICcyNHB4JyxcbiAgICAgICAgZm9udFdlaWdodDogNTAwLFxuICAgICAgICB2ZXJ0aWNhbEFsaWduOiAndG9wJ1xuICAgIH0sXG4gICAgaDI6IHtcbiAgICAgICAgZm9udFNpemU6ICcxNHB4JyxcbiAgICAgICAgZm9udFdlaWdodDogJ25vcm1hbCcsXG4gICAgICAgIGxpbmVIZWlnaHQ6ICdpbmhlcml0JyxcbiAgICAgICAgbWFyZ2luOiAwLFxuICAgICAgICBwYWRkaW5nOiAwXG4gICAgfVxufTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9X2Vycm9yLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImRlZmF1bHQiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9oZWFkIiwib2JqIiwiX19lc01vZHVsZSIsInN0YXR1c0NvZGVzIiwiX2dldEluaXRpYWxQcm9wcyIsInJlcyIsImVyciIsInN0YXR1c0NvZGUiLCJFcnJvciIsIkNvbXBvbmVudCIsInJlbmRlciIsInByb3BzIiwidGl0bGUiLCJjcmVhdGVFbGVtZW50Iiwic3R5bGUiLCJzdHlsZXMiLCJlcnJvciIsImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIiwiX19odG1sIiwiaDEiLCJkZXNjIiwiaDIiLCJGcmFnbWVudCIsImRpc3BsYXlOYW1lIiwiZ2V0SW5pdGlhbFByb3BzIiwib3JpZ0dldEluaXRpYWxQcm9wcyIsImNvbG9yIiwiYmFja2dyb3VuZCIsImZvbnRGYW1pbHkiLCJoZWlnaHQiLCJ0ZXh0QWxpZ24iLCJkaXNwbGF5IiwiZmxleERpcmVjdGlvbiIsImFsaWduSXRlbXMiLCJqdXN0aWZ5Q29udGVudCIsImxpbmVIZWlnaHQiLCJ2ZXJ0aWNhbEFsaWduIiwiYm9yZGVyUmlnaHQiLCJtYXJnaW4iLCJtYXJnaW5SaWdodCIsInBhZGRpbmciLCJmb250U2l6ZSIsImZvbnRXZWlnaHQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/pages/_error.js\n"); + +/***/ }), + +/***/ "../shared/lib/head": +/*!***********************************************!*\ + !*** external "next/dist/shared/lib/head.js" ***! + \***********************************************/ +/***/ ((module) => { + +module.exports = require("next/dist/shared/lib/head.js"); + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "react" ***! + \************************/ +/***/ ((module) => { + +module.exports = require("react"); + +/***/ }) + +}; +; + +// load runtime +var __webpack_require__ = require("../webpack-runtime.js"); +__webpack_require__.C(exports); +var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) +var __webpack_exports__ = (__webpack_exec__("./node_modules/next/dist/pages/_error.js")); +module.exports = __webpack_exports__; + +})(); \ No newline at end of file diff --git a/.next/server/middleware-manifest.json b/.next/server/middleware-manifest.json new file mode 100644 index 0000000..c5eb773 --- /dev/null +++ b/.next/server/middleware-manifest.json @@ -0,0 +1,6 @@ +{ + "sortedMiddleware": [], + "clientInfo": [], + "middleware": {}, + "version": 1 +} \ No newline at end of file diff --git a/.next/server/pages-manifest.json b/.next/server/pages-manifest.json new file mode 100644 index 0000000..6ac637a --- /dev/null +++ b/.next/server/pages-manifest.json @@ -0,0 +1,5 @@ +{ + "/_app": "pages/_app.js", + "/_document": "pages/_document.js", + "/_error": "pages/_error.js" +} \ No newline at end of file diff --git a/.next/server/pages/404.js b/.next/server/pages/404.js new file mode 100644 index 0000000..0a606f2 --- /dev/null +++ b/.next/server/pages/404.js @@ -0,0 +1,56 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +(() => { +var exports = {}; +exports.id = "pages/404"; +exports.ids = ["pages/404"]; +exports.modules = { + +/***/ "./src/pages/404.js": +/*!**************************!*\ + !*** ./src/pages/404.js ***! + \**************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\pages\\\\404.js\";\n\n\n\nconst ErrorPage = () => {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"h1\", {\n children: \"404 - Page Not Found\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 4,\n columnNumber: 10\n }, undefined);\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ErrorPage);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvcGFnZXMvNDA0LmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOzs7QUFFQSxNQUFNQyxTQUFTLEdBQUcsTUFBTTtBQUN0QixzQkFBTztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxlQUFQO0FBQ0QsQ0FGRDs7QUFJQSxpRUFBZUEsU0FBZiIsInNvdXJjZXMiOlsid2VicGFjazovL3ZpZS1yZWFjdC8uL3NyYy9wYWdlcy80MDQuanM/NzU4NyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcblxyXG5jb25zdCBFcnJvclBhZ2UgPSAoKSA9PiB7XHJcbiAgcmV0dXJuIDxoMT40MDQgLSBQYWdlIE5vdCBGb3VuZDwvaDE+O1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgRXJyb3JQYWdlO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJFcnJvclBhZ2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/pages/404.js\n"); + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "react" ***! + \************************/ +/***/ ((module) => { + +module.exports = require("react"); + +/***/ }), + +/***/ "react/jsx-dev-runtime": +/*!****************************************!*\ + !*** external "react/jsx-dev-runtime" ***! + \****************************************/ +/***/ ((module) => { + +module.exports = require("react/jsx-dev-runtime"); + +/***/ }) + +}; +; + +// load runtime +var __webpack_require__ = require("../webpack-runtime.js"); +__webpack_require__.C(exports); +var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) +var __webpack_exports__ = (__webpack_exec__("./src/pages/404.js")); +module.exports = __webpack_exports__; + +})(); \ No newline at end of file diff --git a/.next/server/pages/_app.js b/.next/server/pages/_app.js new file mode 100644 index 0000000..9717d15 --- /dev/null +++ b/.next/server/pages/_app.js @@ -0,0 +1,177 @@ +/* + * 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/). + */ +(() => { +var exports = {}; +exports.id = "pages/_app"; +exports.ids = ["pages/_app"]; +exports.modules = { + +/***/ "./src/common/loadingPace.js": +/*!***********************************!*\ + !*** ./src/common/loadingPace.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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nconst loadingPace = () => {\n Pace.on(\"start\", function () {\n document.querySelector(\"#preloader\").classList.remove(\"isdone\");\n document.querySelector(\".loading\").classList.remove(\"isdone\");\n });\n Pace.on(\"done\", function () {\n document.querySelector(\"#preloader\").classList.add(\"isdone\");\n document.querySelector(\".loading\").classList.add(\"isdone\");\n });\n\n if (document.querySelector(\"body\").classList.contains(\"pace-done\")) {\n document.querySelector(\"#preloader\").classList.add(\"isdone\");\n document.querySelector(\".loading\").classList.add(\"isdone\");\n }\n\n window.addEventListener(\"load\", () => {\n document.querySelector(\"#preloader\").classList.add(\"isdone\");\n document.querySelector(\".loading\").classList.add(\"isdone\");\n\n if (document.querySelector('.pace-running.pace-running')) {\n document.querySelector('.pace-running.pace-running').classList.remove('pace-running');\n }\n });\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (loadingPace);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL2xvYWRpbmdQYWNlLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSxNQUFNQSxXQUFXLEdBQUcsTUFBTTtBQUV4QkMsRUFBQUEsSUFBSSxDQUFDQyxFQUFMLENBQVEsT0FBUixFQUFpQixZQUFZO0FBQzNCQyxJQUFBQSxRQUFRLENBQUNDLGFBQVQsQ0FBdUIsWUFBdkIsRUFBcUNDLFNBQXJDLENBQStDQyxNQUEvQyxDQUFzRCxRQUF0RDtBQUNBSCxJQUFBQSxRQUFRLENBQUNDLGFBQVQsQ0FBdUIsVUFBdkIsRUFBbUNDLFNBQW5DLENBQTZDQyxNQUE3QyxDQUFvRCxRQUFwRDtBQUNELEdBSEQ7QUFJQUwsRUFBQUEsSUFBSSxDQUFDQyxFQUFMLENBQVEsTUFBUixFQUFnQixZQUFZO0FBQzFCQyxJQUFBQSxRQUFRLENBQUNDLGFBQVQsQ0FBdUIsWUFBdkIsRUFBcUNDLFNBQXJDLENBQStDRSxHQUEvQyxDQUFtRCxRQUFuRDtBQUNBSixJQUFBQSxRQUFRLENBQUNDLGFBQVQsQ0FBdUIsVUFBdkIsRUFBbUNDLFNBQW5DLENBQTZDRSxHQUE3QyxDQUFpRCxRQUFqRDtBQUVELEdBSkQ7O0FBTUEsTUFBSUosUUFBUSxDQUFDQyxhQUFULENBQXVCLE1BQXZCLEVBQStCQyxTQUEvQixDQUF5Q0csUUFBekMsQ0FBa0QsV0FBbEQsQ0FBSixFQUFvRTtBQUNsRUwsSUFBQUEsUUFBUSxDQUFDQyxhQUFULENBQXVCLFlBQXZCLEVBQXFDQyxTQUFyQyxDQUErQ0UsR0FBL0MsQ0FBbUQsUUFBbkQ7QUFDQUosSUFBQUEsUUFBUSxDQUFDQyxhQUFULENBQXVCLFVBQXZCLEVBQW1DQyxTQUFuQyxDQUE2Q0UsR0FBN0MsQ0FBaUQsUUFBakQ7QUFDRDs7QUFFREUsRUFBQUEsTUFBTSxDQUFDQyxnQkFBUCxDQUF3QixNQUF4QixFQUFnQyxNQUFNO0FBQ3BDUCxJQUFBQSxRQUFRLENBQUNDLGFBQVQsQ0FBdUIsWUFBdkIsRUFBcUNDLFNBQXJDLENBQStDRSxHQUEvQyxDQUFtRCxRQUFuRDtBQUNBSixJQUFBQSxRQUFRLENBQUNDLGFBQVQsQ0FBdUIsVUFBdkIsRUFBbUNDLFNBQW5DLENBQTZDRSxHQUE3QyxDQUFpRCxRQUFqRDs7QUFDQSxRQUFJSixRQUFRLENBQUNDLGFBQVQsQ0FBdUIsNEJBQXZCLENBQUosRUFBMEQ7QUFDeERELE1BQUFBLFFBQVEsQ0FBQ0MsYUFBVCxDQUF1Qiw0QkFBdkIsRUFBcURDLFNBQXJELENBQStEQyxNQUEvRCxDQUFzRSxjQUF0RTtBQUNEO0FBQ0YsR0FORDtBQU9ELENBeEJEOztBQTBCQSxpRUFBZU4sV0FBZiIsInNvdXJjZXMiOlsid2VicGFjazovL3ZpZS1yZWFjdC8uL3NyYy9jb21tb24vbG9hZGluZ1BhY2UuanM/N2YwMSJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBsb2FkaW5nUGFjZSA9ICgpID0+IHtcclxuIFxyXG4gIFBhY2Uub24oXCJzdGFydFwiLCBmdW5jdGlvbiAoKSB7XHJcbiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiI3ByZWxvYWRlclwiKS5jbGFzc0xpc3QucmVtb3ZlKFwiaXNkb25lXCIpO1xyXG4gICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5sb2FkaW5nXCIpLmNsYXNzTGlzdC5yZW1vdmUoXCJpc2RvbmVcIik7XHJcbiAgfSk7XHJcbiAgUGFjZS5vbihcImRvbmVcIiwgZnVuY3Rpb24gKCkge1xyXG4gICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIiNwcmVsb2FkZXJcIikuY2xhc3NMaXN0LmFkZChcImlzZG9uZVwiKTtcclxuICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIubG9hZGluZ1wiKS5jbGFzc0xpc3QuYWRkKFwiaXNkb25lXCIpO1xyXG4gICAgXHJcbiAgfSk7XHJcblxyXG4gIGlmIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiYm9keVwiKS5jbGFzc0xpc3QuY29udGFpbnMoXCJwYWNlLWRvbmVcIikpIHtcclxuICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIjcHJlbG9hZGVyXCIpLmNsYXNzTGlzdC5hZGQoXCJpc2RvbmVcIik7XHJcbiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLmxvYWRpbmdcIikuY2xhc3NMaXN0LmFkZChcImlzZG9uZVwiKTtcclxuICB9XHJcblxyXG4gIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwibG9hZFwiLCAoKSA9PiB7XHJcbiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiI3ByZWxvYWRlclwiKS5jbGFzc0xpc3QuYWRkKFwiaXNkb25lXCIpO1xyXG4gICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5sb2FkaW5nXCIpLmNsYXNzTGlzdC5hZGQoXCJpc2RvbmVcIik7XHJcbiAgICBpZiAoZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnBhY2UtcnVubmluZy5wYWNlLXJ1bm5pbmcnKSkge1xyXG4gICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcucGFjZS1ydW5uaW5nLnBhY2UtcnVubmluZycpLmNsYXNzTGlzdC5yZW1vdmUoJ3BhY2UtcnVubmluZycpXHJcbiAgICB9XHJcbiAgfSk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBsb2FkaW5nUGFjZTtcclxuIl0sIm5hbWVzIjpbImxvYWRpbmdQYWNlIiwiUGFjZSIsIm9uIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwiY2xhc3NMaXN0IiwicmVtb3ZlIiwiYWRkIiwiY29udGFpbnMiLCJ3aW5kb3ciLCJhZGRFdmVudExpc3RlbmVyIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/common/loadingPace.js\n"); + +/***/ }), + +/***/ "./src/common/mouseEffect.js": +/*!***********************************!*\ + !*** ./src/common/mouseEffect.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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nconst mouseEffect = () => {\n function mousecursor() {\n const cursorInner = document.querySelector(\".cursor-inner\"),\n cursorOuter = document.querySelector(\".cursor-outer\");\n let n,\n i = 0,\n o = !1;\n\n window.onmousemove = function (s) {\n o || (cursorOuter.style.transform = \"translate(\" + s.clientX + \"px, \" + s.clientY + \"px)\"), cursorInner.style.transform = \"translate(\" + s.clientX + \"px, \" + s.clientY + \"px)\", n = s.clientY, i = s.clientX;\n };\n\n if (document.querySelector(\".cursor-pointer\")) {\n document.querySelector(\".cursor-pointer\").addEventListener(\"mouseenter\", function () {\n cursorInner.classList.add(\"cursor-hover\"), cursorOuter.classList.add(\"cursor-hover\");\n });\n document.querySelector(\".cursor-pointer\").addEventListener(\"mouseleave\", function () {\n cursorInner.classList.remove(\"cursor-hover\"), cursorOuter.classList.remove(\"cursor-hover\");\n }), cursorInner.style.visibility = \"visible\", cursorOuter.style.visibility = \"visible\";\n }\n\n document.querySelectorAll(\"a\").forEach(function (item) {\n item.addEventListener(\"mouseenter\", function () {\n cursorInner.classList.add(\"cursor-hover\"), cursorOuter.classList.add(\"cursor-hover\");\n });\n });\n document.querySelectorAll(\"a\").forEach(function (item) {\n item.addEventListener(\"mouseleave\", function () {\n cursorInner.classList.remove(\"cursor-hover\"), cursorOuter.classList.remove(\"cursor-hover\");\n });\n }), cursorInner.style.visibility = \"visible\", cursorOuter.style.visibility = \"visible\";\n }\n\n mousecursor();\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (mouseEffect);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFrQlEsVUFBbEIsR0FBK0IsU0FQbEM7QUFRRDs7QUFDRG5CLEVBQUFBLFdBQVc7QUFDWixDQWhERDs7QUFrREEsaUVBQWVELFdBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly92aWUtcmVhY3QvLi9zcmMvY29tbW9uL21vdXNlRWZmZWN0LmpzPzVhOGQiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgbW91c2VFZmZlY3QgPSAoKSA9PiB7XHJcbiAgZnVuY3Rpb24gbW91c2VjdXJzb3IoKSB7XHJcbiAgICBjb25zdCBjdXJzb3JJbm5lciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIuY3Vyc29yLWlubmVyXCIpLFxyXG4gICAgICBjdXJzb3JPdXRlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIuY3Vyc29yLW91dGVyXCIpO1xyXG4gICAgbGV0IG4sXHJcbiAgICAgIGkgPSAwLFxyXG4gICAgICBvID0gITE7XHJcbiAgICB3aW5kb3cub25tb3VzZW1vdmUgPSBmdW5jdGlvbiAocykge1xyXG4gICAgICBvIHx8XHJcbiAgICAgICAgKGN1cnNvck91dGVyLnN0eWxlLnRyYW5zZm9ybSA9XHJcbiAgICAgICAgICBcInRyYW5zbGF0ZShcIiArIHMuY2xpZW50WCArIFwicHgsIFwiICsgcy5jbGllbnRZICsgXCJweClcIiksXHJcbiAgICAgICAgKGN1cnNvcklubmVyLnN0eWxlLnRyYW5zZm9ybSA9XHJcbiAgICAgICAgICBcInRyYW5zbGF0ZShcIiArIHMuY2xpZW50WCArIFwicHgsIFwiICsgcy5jbGllbnRZICsgXCJweClcIiksXHJcbiAgICAgICAgKG4gPSBzLmNsaWVudFkpLFxyXG4gICAgICAgIChpID0gcy5jbGllbnRYKTtcclxuICAgIH07XHJcbiAgICBpZiAoZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5jdXJzb3ItcG9pbnRlclwiKSkge1xyXG4gICAgICBkb2N1bWVudFxyXG4gICAgICAgIC5xdWVyeVNlbGVjdG9yKFwiLmN1cnNvci1wb2ludGVyXCIpXHJcbiAgICAgICAgLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWVudGVyXCIsIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgIGN1cnNvcklubmVyLmNsYXNzTGlzdC5hZGQoXCJjdXJzb3ItaG92ZXJcIiksXHJcbiAgICAgICAgICAgIGN1cnNvck91dGVyLmNsYXNzTGlzdC5hZGQoXCJjdXJzb3ItaG92ZXJcIik7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIGRvY3VtZW50XHJcbiAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoXCIuY3Vyc29yLXBvaW50ZXJcIilcclxuICAgICAgICAuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIiwgZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgY3Vyc29ySW5uZXIuY2xhc3NMaXN0LnJlbW92ZShcImN1cnNvci1ob3ZlclwiKSxcclxuICAgICAgICAgICAgY3Vyc29yT3V0ZXIuY2xhc3NMaXN0LnJlbW92ZShcImN1cnNvci1ob3ZlclwiKTtcclxuICAgICAgICB9KSxcclxuICAgICAgICAoY3Vyc29ySW5uZXIuc3R5bGUudmlzaWJpbGl0eSA9IFwidmlzaWJsZVwiKSxcclxuICAgICAgICAoY3Vyc29yT3V0ZXIuc3R5bGUudmlzaWJpbGl0eSA9IFwidmlzaWJsZVwiKTtcclxuICAgIH1cclxuICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJhXCIpLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHtcclxuICAgICAgaXRlbS5hZGRFdmVudExpc3RlbmVyKFwibW91c2VlbnRlclwiLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgY3Vyc29ySW5uZXIuY2xhc3NMaXN0LmFkZChcImN1cnNvci1ob3ZlclwiKSxcclxuICAgICAgICAgIGN1cnNvck91dGVyLmNsYXNzTGlzdC5hZGQoXCJjdXJzb3ItaG92ZXJcIik7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiYVwiKS5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtKSB7XHJcbiAgICAgIGl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIiwgZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGN1cnNvcklubmVyLmNsYXNzTGlzdC5yZW1vdmUoXCJjdXJzb3ItaG92ZXJcIiksXHJcbiAgICAgICAgICBjdXJzb3JPdXRlci5jbGFzc0xpc3QucmVtb3ZlKFwiY3Vyc29yLWhvdmVyXCIpO1xyXG4gICAgICB9KTtcclxuICAgIH0pLFxyXG4gICAgICAoY3Vyc29ySW5uZXIuc3R5bGUudmlzaWJpbGl0eSA9IFwidmlzaWJsZVwiKSxcclxuICAgICAgKGN1cnNvck91dGVyLnN0eWxlLnZpc2liaWxpdHkgPSBcInZpc2libGVcIik7XHJcbiAgfVxyXG4gIG1vdXNlY3Vyc29yKCk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBtb3VzZUVmZmVjdDtcclxuIl0sIm5hbWVzIjpbIm1vdXNlRWZmZWN0IiwibW91c2VjdXJzb3IiLCJjdXJzb3JJbm5lciIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsImN1cnNvck91dGVyIiwibiIsImkiLCJvIiwid2luZG93Iiwib25tb3VzZW1vdmUiLCJzIiwic3R5bGUiLCJ0cmFuc2Zvcm0iLCJjbGllbnRYIiwiY2xpZW50WSIsImFkZEV2ZW50TGlzdGVuZXIiLCJjbGFzc0xpc3QiLCJhZGQiLCJyZW1vdmUiLCJ2aXNpYmlsaXR5IiwicXVlcnlTZWxlY3RvckFsbCIsImZvckVhY2giLCJpdGVtIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/common/mouseEffect.js\n"); + +/***/ }), + +/***/ "./src/common/scrollToTop.js": +/*!***********************************!*\ + !*** ./src/common/scrollToTop.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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nconst scrollToTop = () => {\n let progressPath = document.querySelector(\".progress-wrap path\");\n let pathLength = progressPath.getTotalLength();\n progressPath.style.transition = progressPath.style.WebkitTransition = \"none\";\n progressPath.style.strokeDasharray = pathLength + \" \" + pathLength;\n progressPath.style.strokeDashoffset = pathLength;\n progressPath.getBoundingClientRect();\n progressPath.style.transition = progressPath.style.WebkitTransition = \"stroke-dashoffset 10ms linear\";\n\n const updateProgress = function () {\n let scroll = window.pageYOffset;\n let height = document.documentElement.scrollHeight - window.innerHeight;\n let progress = pathLength - scroll * pathLength / height;\n progressPath.style.strokeDashoffset = progress;\n };\n\n updateProgress();\n window.addEventListener(\"scroll\", updateProgress);\n let progressWrap = document.querySelector(\".progress-wrap\");\n let offset = 150;\n window.addEventListener(\"scroll\", function () {\n if (window.pageYOffset > offset) {\n progressWrap.classList.add(\"active-progress\");\n } else {\n document.querySelector(\".progress-wrap\").classList.remove(\"active-progress\");\n }\n });\n progressWrap.addEventListener(\"click\", function (event) {\n event.preventDefault();\n window.scrollTo({\n top: 0,\n behavior: \"smooth\"\n });\n return false;\n });\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (scrollToTop);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL3Njcm9sbFRvVG9wLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSxNQUFNQSxXQUFXLEdBQUcsTUFBTTtBQUN4QixNQUFJQyxZQUFZLEdBQUdDLFFBQVEsQ0FBQ0MsYUFBVCxDQUF1QixxQkFBdkIsQ0FBbkI7QUFDQSxNQUFJQyxVQUFVLEdBQUdILFlBQVksQ0FBQ0ksY0FBYixFQUFqQjtBQUNBSixFQUFBQSxZQUFZLENBQUNLLEtBQWIsQ0FBbUJDLFVBQW5CLEdBQWdDTixZQUFZLENBQUNLLEtBQWIsQ0FBbUJFLGdCQUFuQixHQUFzQyxNQUF0RTtBQUNBUCxFQUFBQSxZQUFZLENBQUNLLEtBQWIsQ0FBbUJHLGVBQW5CLEdBQXFDTCxVQUFVLEdBQUcsR0FBYixHQUFtQkEsVUFBeEQ7QUFDQUgsRUFBQUEsWUFBWSxDQUFDSyxLQUFiLENBQW1CSSxnQkFBbkIsR0FBc0NOLFVBQXRDO0FBQ0FILEVBQUFBLFlBQVksQ0FBQ1UscUJBQWI7QUFDQVYsRUFBQUEsWUFBWSxDQUFDSyxLQUFiLENBQW1CQyxVQUFuQixHQUFnQ04sWUFBWSxDQUFDSyxLQUFiLENBQW1CRSxnQkFBbkIsR0FDOUIsK0JBREY7O0FBRUEsUUFBTUksY0FBYyxHQUFHLFlBQVk7QUFDakMsUUFBSUMsTUFBTSxHQUFHQyxNQUFNLENBQUNDLFdBQXBCO0FBQ0EsUUFBSUMsTUFBTSxHQUFHZCxRQUFRLENBQUNlLGVBQVQsQ0FBeUJDLFlBQXpCLEdBQXdDSixNQUFNLENBQUNLLFdBQTVEO0FBQ0EsUUFBSUMsUUFBUSxHQUFHaEIsVUFBVSxHQUFJUyxNQUFNLEdBQUdULFVBQVYsR0FBd0JZLE1BQXBEO0FBQ0FmLElBQUFBLFlBQVksQ0FBQ0ssS0FBYixDQUFtQkksZ0JBQW5CLEdBQXNDVSxRQUF0QztBQUNELEdBTEQ7O0FBTUFSLEVBQUFBLGNBQWM7QUFDZEUsRUFBQUEsTUFBTSxDQUFDTyxnQkFBUCxDQUF3QixRQUF4QixFQUFrQ1QsY0FBbEM7QUFDQSxNQUFJVSxZQUFZLEdBQUdwQixRQUFRLENBQUNDLGFBQVQsQ0FBdUIsZ0JBQXZCLENBQW5CO0FBQ0EsTUFBSW9CLE1BQU0sR0FBRyxHQUFiO0FBQ0FULEVBQUFBLE1BQU0sQ0FBQ08sZ0JBQVAsQ0FBd0IsUUFBeEIsRUFBa0MsWUFBWTtBQUM1QyxRQUFJUCxNQUFNLENBQUNDLFdBQVAsR0FBcUJRLE1BQXpCLEVBQWlDO0FBQy9CRCxNQUFBQSxZQUFZLENBQUNFLFNBQWIsQ0FBdUJDLEdBQXZCLENBQTJCLGlCQUEzQjtBQUNELEtBRkQsTUFFTztBQUNMdkIsTUFBQUEsUUFBUSxDQUNMQyxhQURILENBQ2lCLGdCQURqQixFQUVHcUIsU0FGSCxDQUVhRSxNQUZiLENBRW9CLGlCQUZwQjtBQUdEO0FBQ0YsR0FSRDtBQVNBSixFQUFBQSxZQUFZLENBQUNELGdCQUFiLENBQThCLE9BQTlCLEVBQXVDLFVBQVVNLEtBQVYsRUFBaUI7QUFDdERBLElBQUFBLEtBQUssQ0FBQ0MsY0FBTjtBQUNBZCxJQUFBQSxNQUFNLENBQUNlLFFBQVAsQ0FBZ0I7QUFBRUMsTUFBQUEsR0FBRyxFQUFFLENBQVA7QUFBVUMsTUFBQUEsUUFBUSxFQUFFO0FBQXBCLEtBQWhCO0FBQ0EsV0FBTyxLQUFQO0FBQ0QsR0FKRDtBQUtELENBakNEOztBQW1DQSxpRUFBZS9CLFdBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly92aWUtcmVhY3QvLi9zcmMvY29tbW9uL3Njcm9sbFRvVG9wLmpzPzg1MGUiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3Qgc2Nyb2xsVG9Ub3AgPSAoKSA9PiB7XHJcbiAgbGV0IHByb2dyZXNzUGF0aCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIucHJvZ3Jlc3Mtd3JhcCBwYXRoXCIpO1xyXG4gIGxldCBwYXRoTGVuZ3RoID0gcHJvZ3Jlc3NQYXRoLmdldFRvdGFsTGVuZ3RoKCk7XHJcbiAgcHJvZ3Jlc3NQYXRoLnN0eWxlLnRyYW5zaXRpb24gPSBwcm9ncmVzc1BhdGguc3R5bGUuV2Via2l0VHJhbnNpdGlvbiA9IFwibm9uZVwiO1xyXG4gIHByb2dyZXNzUGF0aC5zdHlsZS5zdHJva2VEYXNoYXJyYXkgPSBwYXRoTGVuZ3RoICsgXCIgXCIgKyBwYXRoTGVuZ3RoO1xyXG4gIHByb2dyZXNzUGF0aC5zdHlsZS5zdHJva2VEYXNob2Zmc2V0ID0gcGF0aExlbmd0aDtcclxuICBwcm9ncmVzc1BhdGguZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgcHJvZ3Jlc3NQYXRoLnN0eWxlLnRyYW5zaXRpb24gPSBwcm9ncmVzc1BhdGguc3R5bGUuV2Via2l0VHJhbnNpdGlvbiA9XHJcbiAgICBcInN0cm9rZS1kYXNob2Zmc2V0IDEwbXMgbGluZWFyXCI7XHJcbiAgY29uc3QgdXBkYXRlUHJvZ3Jlc3MgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICBsZXQgc2Nyb2xsID0gd2luZG93LnBhZ2VZT2Zmc2V0O1xyXG4gICAgbGV0IGhlaWdodCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxIZWlnaHQgLSB3aW5kb3cuaW5uZXJIZWlnaHQ7XHJcbiAgICBsZXQgcHJvZ3Jlc3MgPSBwYXRoTGVuZ3RoIC0gKHNjcm9sbCAqIHBhdGhMZW5ndGgpIC8gaGVpZ2h0O1xyXG4gICAgcHJvZ3Jlc3NQYXRoLnN0eWxlLnN0cm9rZURhc2hvZmZzZXQgPSBwcm9ncmVzcztcclxuICB9O1xyXG4gIHVwZGF0ZVByb2dyZXNzKCk7XHJcbiAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgdXBkYXRlUHJvZ3Jlc3MpO1xyXG4gIGxldCBwcm9ncmVzc1dyYXAgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLnByb2dyZXNzLXdyYXBcIik7XHJcbiAgbGV0IG9mZnNldCA9IDE1MDtcclxuICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCBmdW5jdGlvbiAoKSB7XHJcbiAgICBpZiAod2luZG93LnBhZ2VZT2Zmc2V0ID4gb2Zmc2V0KSB7XHJcbiAgICAgIHByb2dyZXNzV3JhcC5jbGFzc0xpc3QuYWRkKFwiYWN0aXZlLXByb2dyZXNzXCIpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZG9jdW1lbnRcclxuICAgICAgICAucXVlcnlTZWxlY3RvcihcIi5wcm9ncmVzcy13cmFwXCIpXHJcbiAgICAgICAgLmNsYXNzTGlzdC5yZW1vdmUoXCJhY3RpdmUtcHJvZ3Jlc3NcIik7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgcHJvZ3Jlc3NXcmFwLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB3aW5kb3cuc2Nyb2xsVG8oeyB0b3A6IDAsIGJlaGF2aW9yOiBcInNtb290aFwiIH0pO1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH0pO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgc2Nyb2xsVG9Ub3A7XHJcbiJdLCJuYW1lcyI6WyJzY3JvbGxUb1RvcCIsInByb2dyZXNzUGF0aCIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsInBhdGhMZW5ndGgiLCJnZXRUb3RhbExlbmd0aCIsInN0eWxlIiwidHJhbnNpdGlvbiIsIldlYmtpdFRyYW5zaXRpb24iLCJzdHJva2VEYXNoYXJyYXkiLCJzdHJva2VEYXNob2Zmc2V0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwidXBkYXRlUHJvZ3Jlc3MiLCJzY3JvbGwiLCJ3aW5kb3ciLCJwYWdlWU9mZnNldCIsImhlaWdodCIsImRvY3VtZW50RWxlbWVudCIsInNjcm9sbEhlaWdodCIsImlubmVySGVpZ2h0IiwicHJvZ3Jlc3MiLCJhZGRFdmVudExpc3RlbmVyIiwicHJvZ3Jlc3NXcmFwIiwib2Zmc2V0IiwiY2xhc3NMaXN0IiwiYWRkIiwicmVtb3ZlIiwiZXZlbnQiLCJwcmV2ZW50RGVmYXVsdCIsInNjcm9sbFRvIiwidG9wIiwiYmVoYXZpb3IiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/common/scrollToTop.js\n"); + +/***/ }), + +/***/ "./src/components/Loading-Screen/index.jsx": +/*!*************************************************!*\ + !*** ./src/components/Loading-Screen/index.jsx ***! + \*************************************************/ +/***/ ((__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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_loadingPace__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/loadingPace */ \"./src/common/loadingPace.js\");\n/* harmony import */ var _data_app_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../data/app.json */ \"./src/data/app.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Loading-Screen\\\\index.jsx\";\n\n\n\n\n\n\nconst LoadingScreen = () => {\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(() => {\n let bodyEl = document.querySelector(\"body\");\n\n if (_data_app_json__WEBPACK_IMPORTED_MODULE_2__.showLoading) {\n (0,_common_loadingPace__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n if (bodyEl.classList.contains(\"hideX\")) bodyEl.classList.remove(\"hideX\");\n } else {\n bodyEl.classList.add(\"hideX\");\n }\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.Fragment, {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: `${_data_app_json__WEBPACK_IMPORTED_MODULE_2__.showLoading === true ? \"showX\" : \"hideX\"}`,\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"loading\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: \"L\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: \"o\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: \"a\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: \"d\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: \"i\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: \"n\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: \"g\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 9\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n id: \"preloader\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 7\n }, undefined)\n }, void 0, false);\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (LoadingScreen);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9Mb2FkaW5nLVNjcmVlbi9pbmRleC5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7Ozs7QUFFQSxNQUFNRyxhQUFhLEdBQUcsTUFBTTtBQUUxQkgsRUFBQUEsc0RBQUEsQ0FBZ0IsTUFBTTtBQUNwQixRQUFJSyxNQUFNLEdBQUdDLFFBQVEsQ0FBQ0MsYUFBVCxDQUF1QixNQUF2QixDQUFiOztBQUVBLFFBQUlMLHVEQUFKLEVBQXlCO0FBQ3ZCRCxNQUFBQSwrREFBVztBQUNYLFVBQUlJLE1BQU0sQ0FBQ0ksU0FBUCxDQUFpQkMsUUFBakIsQ0FBMEIsT0FBMUIsQ0FBSixFQUF3Q0wsTUFBTSxDQUFDSSxTQUFQLENBQWlCRSxNQUFqQixDQUF3QixPQUF4QjtBQUN6QyxLQUhELE1BR087QUFDTE4sTUFBQUEsTUFBTSxDQUFDSSxTQUFQLENBQWlCRyxHQUFqQixDQUFxQixPQUFyQjtBQUNEO0FBQ0YsR0FURCxFQVNHLEVBVEg7QUFXQSxzQkFDRTtBQUFBLDJCQUNFO0FBQUssZUFBUyxFQUFHLEdBQUVWLHVEQUFBLEtBQXdCLElBQXhCLEdBQStCLE9BQS9CLEdBQXlDLE9BQVEsRUFBcEU7QUFBQSw4QkFDRTtBQUFLLGlCQUFTLEVBQUMsU0FBZjtBQUFBLGdDQUNFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQURGLGVBRUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBRkYsZUFHRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxxQkFIRixlQUlFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQUpGLGVBS0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBTEYsZUFNRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxxQkFORixlQU9FO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQVBGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxtQkFERixlQVVFO0FBQUssVUFBRSxFQUFDO0FBQVI7QUFBQTtBQUFBO0FBQUE7QUFBQSxtQkFWRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERixtQkFERjtBQWdCRCxDQTdCRDs7QUErQkEsaUVBQWVDLGFBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly92aWUtcmVhY3QvLi9zcmMvY29tcG9uZW50cy9Mb2FkaW5nLVNjcmVlbi9pbmRleC5qc3g/NjhiNyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBsb2FkaW5nUGFjZSBmcm9tIFwiLi4vLi4vY29tbW9uL2xvYWRpbmdQYWNlXCI7XHJcbmltcG9ydCBhcHBEYXRhIGZyb20gXCIuLi8uLi9kYXRhL2FwcC5qc29uXCI7XHJcblxyXG5jb25zdCBMb2FkaW5nU2NyZWVuID0gKCkgPT4ge1xyXG5cclxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgbGV0IGJvZHlFbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCJib2R5XCIpO1xyXG5cclxuICAgIGlmIChhcHBEYXRhLnNob3dMb2FkaW5nKSB7XHJcbiAgICAgIGxvYWRpbmdQYWNlKCk7XHJcbiAgICAgIGlmIChib2R5RWwuY2xhc3NMaXN0LmNvbnRhaW5zKFwiaGlkZVhcIikpIGJvZHlFbC5jbGFzc0xpc3QucmVtb3ZlKFwiaGlkZVhcIik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBib2R5RWwuY2xhc3NMaXN0LmFkZChcImhpZGVYXCIpO1xyXG4gICAgfVxyXG4gIH0sIFtdKTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDw+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHthcHBEYXRhLnNob3dMb2FkaW5nID09PSB0cnVlID8gXCJzaG93WFwiIDogXCJoaWRlWFwifWB9PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibG9hZGluZ1wiPlxyXG4gICAgICAgICAgPHNwYW4+TDwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuPm88L3NwYW4+XHJcbiAgICAgICAgICA8c3Bhbj5hPC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4+ZDwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuPmk8L3NwYW4+XHJcbiAgICAgICAgICA8c3Bhbj5uPC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4+Zzwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGlkPVwicHJlbG9hZGVyXCI+PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC8+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IExvYWRpbmdTY3JlZW47XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsImxvYWRpbmdQYWNlIiwiYXBwRGF0YSIsIkxvYWRpbmdTY3JlZW4iLCJ1c2VFZmZlY3QiLCJib2R5RWwiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJzaG93TG9hZGluZyIsImNsYXNzTGlzdCIsImNvbnRhaW5zIiwicmVtb3ZlIiwiYWRkIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Loading-Screen/index.jsx\n"); + +/***/ }), + +/***/ "./src/components/cursor/index.jsx": +/*!*****************************************!*\ + !*** ./src/components/cursor/index.jsx ***! + \*****************************************/ +/***/ ((__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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_mouseEffect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/mouseEffect */ \"./src/common/mouseEffect.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\cursor\\\\index.jsx\";\n\n\n\n\n\nconst Cursor = () => {\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(() => {\n (0,_common_mouseEffect__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"mouse-cursor cursor-outer\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 7\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"mouse-cursor cursor-inner\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 7\n }, undefined)]\n }, void 0, true);\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Cursor);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9jdXJzb3IvaW5kZXguanN4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTtBQUNBOzs7O0FBRUEsTUFBTUUsTUFBTSxHQUFHLE1BQU07QUFDbkJGLEVBQUFBLHNEQUFBLENBQWdCLE1BQU07QUFDcEJDLElBQUFBLCtEQUFXO0FBQ1osR0FGRCxFQUVHLEVBRkg7QUFHQSxzQkFDRTtBQUFBLDRCQUNFO0FBQUssZUFBUyxFQUFDO0FBQWY7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFERixlQUVFO0FBQUssZUFBUyxFQUFDO0FBQWY7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFGRjtBQUFBLGtCQURGO0FBTUQsQ0FWRDs7QUFZQSxpRUFBZUMsTUFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL3ZpZS1yZWFjdC8uL3NyYy9jb21wb25lbnRzL2N1cnNvci9pbmRleC5qc3g/NDU5NSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBtb3VzZUVmZmVjdCBmcm9tIFwiLi4vLi4vY29tbW9uL21vdXNlRWZmZWN0XCI7XHJcblxyXG5jb25zdCBDdXJzb3IgPSAoKSA9PiB7XHJcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgIG1vdXNlRWZmZWN0KCk7XHJcbiAgfSwgW10pO1xyXG4gIHJldHVybiAoXHJcbiAgICA8PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1vdXNlLWN1cnNvciBjdXJzb3Itb3V0ZXJcIj48L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJtb3VzZS1jdXJzb3IgY3Vyc29yLWlubmVyXCI+PC9kaXY+XHJcbiAgICA8Lz5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgQ3Vyc29yO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJtb3VzZUVmZmVjdCIsIkN1cnNvciIsInVzZUVmZmVjdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/cursor/index.jsx\n"); + +/***/ }), + +/***/ "./src/components/scrollToTop/index.jsx": +/*!**********************************************!*\ + !*** ./src/components/scrollToTop/index.jsx ***! + \**********************************************/ +/***/ ((__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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_scrollToTop__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/scrollToTop */ \"./src/common/scrollToTop.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\scrollToTop\\\\index.jsx\";\n\n\n\n\nconst ScrollToTop = () => {\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(() => {\n (0,_common_scrollToTop__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"progress-wrap cursor-pointer\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"svg\", {\n className: \"progress-circle svg-content\",\n width: \"100%\",\n height: \"100%\",\n viewBox: \"-1 -1 102 102\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"path\", {\n d: \"M50,1 a49,49 0 0,1 0,98 a49,49 0 0,1 0,-98\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 9\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 7\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, undefined);\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ScrollToTop);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9zY3JvbGxUb1RvcC9pbmRleC5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBO0FBQ0E7OztBQUVBLE1BQU1FLFdBQVcsR0FBRyxNQUFNO0FBQ3hCRixFQUFBQSxzREFBQSxDQUFnQixNQUFNO0FBQ3BCQyxJQUFBQSwrREFBVztBQUNaLEdBRkQsRUFFRyxFQUZIO0FBR0Esc0JBQ0U7QUFBSyxhQUFTLEVBQUMsOEJBQWY7QUFBQSwyQkFDRTtBQUNFLGVBQVMsRUFBQyw2QkFEWjtBQUVFLFdBQUssRUFBQyxNQUZSO0FBR0UsWUFBTSxFQUFDLE1BSFQ7QUFJRSxhQUFPLEVBQUMsZUFKVjtBQUFBLDZCQU1FO0FBQU0sU0FBQyxFQUFDO0FBQVI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU5GO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGVBREY7QUFZRCxDQWhCRDs7QUFrQkEsaUVBQWVDLFdBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly92aWUtcmVhY3QvLi9zcmMvY29tcG9uZW50cy9zY3JvbGxUb1RvcC9pbmRleC5qc3g/ZDVlZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBzY3JvbGxUb1RvcCBmcm9tIFwiLi4vLi4vY29tbW9uL3Njcm9sbFRvVG9wXCI7XHJcblxyXG5jb25zdCBTY3JvbGxUb1RvcCA9ICgpID0+IHtcclxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgc2Nyb2xsVG9Ub3AoKTtcclxuICB9LCBbXSk7XHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXYgY2xhc3NOYW1lPVwicHJvZ3Jlc3Mtd3JhcCBjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICA8c3ZnXHJcbiAgICAgICAgY2xhc3NOYW1lPVwicHJvZ3Jlc3MtY2lyY2xlIHN2Zy1jb250ZW50XCJcclxuICAgICAgICB3aWR0aD1cIjEwMCVcIlxyXG4gICAgICAgIGhlaWdodD1cIjEwMCVcIlxyXG4gICAgICAgIHZpZXdCb3g9XCItMSAtMSAxMDIgMTAyXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxwYXRoIGQ9XCJNNTAsMSBhNDksNDkgMCAwLDEgMCw5OCBhNDksNDkgMCAwLDEgMCwtOThcIiAvPlxyXG4gICAgICA8L3N2Zz5cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBTY3JvbGxUb1RvcDtcclxuIl0sIm5hbWVzIjpbIlJlYWN0Iiwic2Nyb2xsVG9Ub3AiLCJTY3JvbGxUb1RvcCIsInVzZUVmZmVjdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/scrollToTop/index.jsx\n"); + +/***/ }), + +/***/ "./src/pages/_app.js": +/*!***************************!*\ + !*** ./src/pages/_app.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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/head */ \"next/head\");\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_head__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var next_script__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/script */ \"next/script\");\n/* harmony import */ var next_script__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_script__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _components_cursor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../components/cursor */ \"./src/components/cursor/index.jsx\");\n/* harmony import */ var _components_scrollToTop__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../components/scrollToTop */ \"./src/components/scrollToTop/index.jsx\");\n/* harmony import */ var _components_Loading_Screen__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../components/Loading-Screen */ \"./src/components/Loading-Screen/index.jsx\");\n/* harmony import */ var _styles_preloader_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../styles/preloader.css */ \"./src/styles/preloader.css\");\n/* harmony import */ var _styles_preloader_css__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_styles_preloader_css__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _styles_main_scss__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../styles/main.scss */ \"./src/styles/main.scss\");\n/* harmony import */ var _styles_main_scss__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_styles_main_scss__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\pages\\\\_app.js\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/* eslint-disable @next/next/no-css-tags */\n\n\n\n\n\n\n\n\n\n\n\nfunction MyApp({\n Component,\n pageProps\n}) {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.Fragment, {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_head__WEBPACK_IMPORTED_MODULE_1___default()), {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"title\", {\n children: \"Project Marketing: Marketing strategies for the success of your project\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 9\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"link\", {\n rel: \"icon\",\n href: \"/img/favicon.ico\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 7\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(_components_cursor__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 7\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(_components_Loading_Screen__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 7\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(Component, _objectSpread({}, pageProps), void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 7\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(_components_scrollToTop__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 7\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_script__WEBPACK_IMPORTED_MODULE_2___default()), {\n id: \"pace\",\n strategy: \"beforeInteractive\",\n src: \"/js/pace.min.js\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 7\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_script__WEBPACK_IMPORTED_MODULE_2___default()), {\n id: \"wow\",\n src: \"/js/wow.min.js\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 7\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_script__WEBPACK_IMPORTED_MODULE_2___default()), {\n strategy: \"beforeInteractive\",\n id: \"splitting\",\n src: \"/js/splitting.min.js\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 7\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_script__WEBPACK_IMPORTED_MODULE_2___default()), {\n id: \"simpleParallax\",\n src: \"/js/simpleParallax.min.js\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 7\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_script__WEBPACK_IMPORTED_MODULE_2___default()), {\n id: \"isotope\",\n strategy: \"beforeInteractive\",\n src: \"/js/isotope.pkgd.min.js\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 7\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_script__WEBPACK_IMPORTED_MODULE_2___default()), {\n id: \"wowInit\",\n strategy: \"lazyOnload\",\n src: \"/js/wowInit.js\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 7\n }, this)]\n }, void 0, true);\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (MyApp);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvcGFnZXMvX2FwcC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUFFQSxTQUFTTSxLQUFULENBQWU7QUFBRUMsRUFBQUEsU0FBRjtBQUFhQyxFQUFBQTtBQUFiLENBQWYsRUFBeUM7QUFDdkMsc0JBQ0U7QUFBQSw0QkFDRSw4REFBQyxrREFBRDtBQUFBLDhCQUNFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGNBREYsZUFLRTtBQUFNLFdBQUcsRUFBQyxNQUFWO0FBQWlCLFlBQUksRUFBQztBQUF0QjtBQUFBO0FBQUE7QUFBQTtBQUFBLGNBTEY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFlBREYsZUFRRSw4REFBQywwREFBRDtBQUFBO0FBQUE7QUFBQTtBQUFBLFlBUkYsZUFTRSw4REFBQyxrRUFBRDtBQUFBO0FBQUE7QUFBQTtBQUFBLFlBVEYsZUFVRSw4REFBQyxTQUFELG9CQUFlQSxTQUFmO0FBQUE7QUFBQTtBQUFBO0FBQUEsWUFWRixlQVdFLDhEQUFDLCtEQUFEO0FBQUE7QUFBQTtBQUFBO0FBQUEsWUFYRixlQVlFLDhEQUFDLG9EQUFEO0FBQ0UsUUFBRSxFQUFDLE1BREw7QUFFRSxjQUFRLEVBQUMsbUJBRlg7QUFHRSxTQUFHLEVBQUM7QUFITjtBQUFBO0FBQUE7QUFBQTtBQUFBLFlBWkYsZUFpQkUsOERBQUMsb0RBQUQ7QUFBUSxRQUFFLEVBQUMsS0FBWDtBQUFpQixTQUFHLEVBQUM7QUFBckI7QUFBQTtBQUFBO0FBQUE7QUFBQSxZQWpCRixlQWtCRSw4REFBQyxvREFBRDtBQUNFLGNBQVEsRUFBQyxtQkFEWDtBQUVFLFFBQUUsRUFBQyxXQUZMO0FBR0UsU0FBRyxFQUFDO0FBSE47QUFBQTtBQUFBO0FBQUE7QUFBQSxZQWxCRixlQXVCRSw4REFBQyxvREFBRDtBQUFRLFFBQUUsRUFBQyxnQkFBWDtBQUE0QixTQUFHLEVBQUM7QUFBaEM7QUFBQTtBQUFBO0FBQUE7QUFBQSxZQXZCRixlQXdCRSw4REFBQyxvREFBRDtBQUNFLFFBQUUsRUFBQyxTQURMO0FBRUUsY0FBUSxFQUFDLG1CQUZYO0FBR0UsU0FBRyxFQUFDO0FBSE47QUFBQTtBQUFBO0FBQUE7QUFBQSxZQXhCRixlQTZCRSw4REFBQyxvREFBRDtBQUFRLFFBQUUsRUFBQyxTQUFYO0FBQXFCLGNBQVEsRUFBQyxZQUE5QjtBQUEyQyxTQUFHLEVBQUM7QUFBL0M7QUFBQTtBQUFBO0FBQUE7QUFBQSxZQTdCRjtBQUFBLGtCQURGO0FBaUNEOztBQUVELGlFQUFlRixLQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmllLXJlYWN0Ly4vc3JjL3BhZ2VzL19hcHAuanM/OGZkYSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAbmV4dC9uZXh0L25vLWNzcy10YWdzICovXHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IEhlYWQgZnJvbSBcIm5leHQvaGVhZFwiO1xyXG5pbXBvcnQgU2NyaXB0IGZyb20gXCJuZXh0L3NjcmlwdFwiO1xyXG5pbXBvcnQgQ3Vyc29yIGZyb20gXCIuLi9jb21wb25lbnRzL2N1cnNvclwiO1xyXG5pbXBvcnQgU2Nyb2xsVG9Ub3AgZnJvbSBcIi4uL2NvbXBvbmVudHMvc2Nyb2xsVG9Ub3BcIjtcclxuaW1wb3J0IExvYWRpbmdTY3JlZW4gZnJvbSBcIi4uL2NvbXBvbmVudHMvTG9hZGluZy1TY3JlZW5cIjtcclxuaW1wb3J0IFwiLi4vc3R5bGVzL3ByZWxvYWRlci5jc3NcIjtcclxuaW1wb3J0IFwiLi4vc3R5bGVzL21haW4uc2Nzc1wiO1xyXG5cclxuZnVuY3Rpb24gTXlBcHAoeyBDb21wb25lbnQsIHBhZ2VQcm9wcyB9KSB7XHJcbiAgcmV0dXJuIChcclxuICAgIDw+XHJcbiAgICAgIDxIZWFkPlxyXG4gICAgICAgIDx0aXRsZT5cclxuICAgICAgICAgIFByb2plY3QgTWFya2V0aW5nOiBNYXJrZXRpbmcgc3RyYXRlZ2llcyBmb3IgdGhlIHN1Y2Nlc3Mgb2YgeW91clxyXG4gICAgICAgICAgcHJvamVjdFxyXG4gICAgICAgIDwvdGl0bGU+XHJcbiAgICAgICAgPGxpbmsgcmVsPVwiaWNvblwiIGhyZWY9XCIvaW1nL2Zhdmljb24uaWNvXCIgLz5cclxuICAgICAgPC9IZWFkPlxyXG4gICAgICA8Q3Vyc29yIC8+XHJcbiAgICAgIDxMb2FkaW5nU2NyZWVuIC8+XHJcbiAgICAgIDxDb21wb25lbnQgey4uLnBhZ2VQcm9wc30gLz5cclxuICAgICAgPFNjcm9sbFRvVG9wIC8+XHJcbiAgICAgIDxTY3JpcHRcclxuICAgICAgICBpZD1cInBhY2VcIlxyXG4gICAgICAgIHN0cmF0ZWd5PVwiYmVmb3JlSW50ZXJhY3RpdmVcIlxyXG4gICAgICAgIHNyYz1cIi9qcy9wYWNlLm1pbi5qc1wiXHJcbiAgICAgID48L1NjcmlwdD5cclxuICAgICAgPFNjcmlwdCBpZD1cIndvd1wiIHNyYz1cIi9qcy93b3cubWluLmpzXCI+PC9TY3JpcHQ+XHJcbiAgICAgIDxTY3JpcHRcclxuICAgICAgICBzdHJhdGVneT1cImJlZm9yZUludGVyYWN0aXZlXCJcclxuICAgICAgICBpZD1cInNwbGl0dGluZ1wiXHJcbiAgICAgICAgc3JjPVwiL2pzL3NwbGl0dGluZy5taW4uanNcIlxyXG4gICAgICA+PC9TY3JpcHQ+XHJcbiAgICAgIDxTY3JpcHQgaWQ9XCJzaW1wbGVQYXJhbGxheFwiIHNyYz1cIi9qcy9zaW1wbGVQYXJhbGxheC5taW4uanNcIj48L1NjcmlwdD5cclxuICAgICAgPFNjcmlwdFxyXG4gICAgICAgIGlkPVwiaXNvdG9wZVwiXHJcbiAgICAgICAgc3RyYXRlZ3k9XCJiZWZvcmVJbnRlcmFjdGl2ZVwiXHJcbiAgICAgICAgc3JjPVwiL2pzL2lzb3RvcGUucGtnZC5taW4uanNcIlxyXG4gICAgICA+PC9TY3JpcHQ+XHJcbiAgICAgIDxTY3JpcHQgaWQ9XCJ3b3dJbml0XCIgc3RyYXRlZ3k9XCJsYXp5T25sb2FkXCIgc3JjPVwiL2pzL3dvd0luaXQuanNcIj48L1NjcmlwdD5cclxuICAgIDwvPlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IE15QXBwO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJIZWFkIiwiU2NyaXB0IiwiQ3Vyc29yIiwiU2Nyb2xsVG9Ub3AiLCJMb2FkaW5nU2NyZWVuIiwiTXlBcHAiLCJDb21wb25lbnQiLCJwYWdlUHJvcHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/pages/_app.js\n"); + +/***/ }), + +/***/ "./src/styles/main.scss": +/*!******************************!*\ + !*** ./src/styles/main.scss ***! + \******************************/ +/***/ (() => { + + + +/***/ }), + +/***/ "./src/styles/preloader.css": +/*!**********************************!*\ + !*** ./src/styles/preloader.css ***! + \**********************************/ +/***/ (() => { + + + +/***/ }), + +/***/ "next/head": +/*!****************************!*\ + !*** external "next/head" ***! + \****************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/head"); + +/***/ }), + +/***/ "next/script": +/*!******************************!*\ + !*** external "next/script" ***! + \******************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/script"); + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "react" ***! + \************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("react"); + +/***/ }), + +/***/ "react/jsx-dev-runtime": +/*!****************************************!*\ + !*** external "react/jsx-dev-runtime" ***! + \****************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("react/jsx-dev-runtime"); + +/***/ }), + +/***/ "./src/data/app.json": +/*!***************************!*\ + !*** ./src/data/app.json ***! + \***************************/ +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('{"lightLogo":"/img/logo.png","darkLogo":"/img/logo.png","footerLogo":"/img/logo white.png","showLoading":true}'); + +/***/ }) + +}; +; + +// load runtime +var __webpack_require__ = require("../webpack-runtime.js"); +__webpack_require__.C(exports); +var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) +var __webpack_exports__ = (__webpack_exec__("./src/pages/_app.js")); +module.exports = __webpack_exports__; + +})(); \ No newline at end of file diff --git a/.next/server/pages/_document.js b/.next/server/pages/_document.js new file mode 100644 index 0000000..e34317c --- /dev/null +++ b/.next/server/pages/_document.js @@ -0,0 +1,156 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +(() => { +var exports = {}; +exports.id = "pages/_document"; +exports.ids = ["pages/_document"]; +exports.modules = { + +/***/ "./node_modules/next/dist/client/head-manager.js": +/*!*******************************************************!*\ + !*** ./node_modules/next/dist/client/head-manager.js ***! + \*******************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.isEqualNode = isEqualNode;\nexports[\"default\"] = initHeadManager;\nexports.DOMAttributeNames = void 0;\nconst DOMAttributeNames = {\n acceptCharset: 'accept-charset',\n className: 'class',\n htmlFor: 'for',\n httpEquiv: 'http-equiv',\n noModule: 'noModule'\n};\nexports.DOMAttributeNames = DOMAttributeNames;\n\nfunction reactElementToDOM({\n type,\n props\n}) {\n const el = document.createElement(type);\n\n for (const p in props) {\n if (!props.hasOwnProperty(p)) continue;\n if (p === 'children' || p === 'dangerouslySetInnerHTML') continue; // we don't render undefined props to the DOM\n\n if (props[p] === undefined) continue;\n const attr = DOMAttributeNames[p] || p.toLowerCase();\n\n if (type === 'script' && (attr === 'async' || attr === 'defer' || attr === 'noModule')) {\n el[attr] = !!props[p];\n } else {\n el.setAttribute(attr, props[p]);\n }\n }\n\n const {\n children,\n dangerouslySetInnerHTML\n } = props;\n\n if (dangerouslySetInnerHTML) {\n el.innerHTML = dangerouslySetInnerHTML.__html || '';\n } else if (children) {\n el.textContent = typeof children === 'string' ? children : Array.isArray(children) ? children.join('') : '';\n }\n\n return el;\n}\n\nfunction isEqualNode(oldTag, newTag) {\n if (oldTag instanceof HTMLElement && newTag instanceof HTMLElement) {\n const nonce = newTag.getAttribute('nonce'); // Only strip the nonce if `oldTag` has had it stripped. An element's nonce attribute will not\n // be stripped if there is no content security policy response header that includes a nonce.\n\n if (nonce && !oldTag.getAttribute('nonce')) {\n const cloneTag = newTag.cloneNode(true);\n cloneTag.setAttribute('nonce', '');\n cloneTag.nonce = nonce;\n return nonce === oldTag.nonce && oldTag.isEqualNode(cloneTag);\n }\n }\n\n return oldTag.isEqualNode(newTag);\n}\n\nfunction updateElements(type, components) {\n const headEl = document.getElementsByTagName('head')[0];\n const headCountEl = headEl.querySelector('meta[name=next-head-count]');\n\n if (true) {\n if (!headCountEl) {\n console.error('Warning: next-head-count is missing. https://nextjs.org/docs/messages/next-head-count-missing');\n return;\n }\n }\n\n const headCount = Number(headCountEl.content);\n const oldTags = [];\n\n for (let i = 0, j = headCountEl.previousElementSibling; i < headCount; i++, j = (j === null || j === void 0 ? void 0 : j.previousElementSibling) || null) {\n var ref;\n\n if ((j === null || j === void 0 ? void 0 : (ref = j.tagName) === null || ref === void 0 ? void 0 : ref.toLowerCase()) === type) {\n oldTags.push(j);\n }\n }\n\n const newTags = components.map(reactElementToDOM).filter(newTag => {\n for (let k = 0, len = oldTags.length; k < len; k++) {\n const oldTag = oldTags[k];\n\n if (isEqualNode(oldTag, newTag)) {\n oldTags.splice(k, 1);\n return false;\n }\n }\n\n return true;\n });\n oldTags.forEach(t => {\n var ref;\n return (ref = t.parentNode) === null || ref === void 0 ? void 0 : ref.removeChild(t);\n });\n newTags.forEach(t => headEl.insertBefore(t, headCountEl));\n headCountEl.content = (headCount - oldTags.length + newTags.length).toString();\n}\n\nfunction initHeadManager() {\n let updatePromise = null;\n return {\n mountedInstances: new Set(),\n updateHead: head => {\n const promise = updatePromise = Promise.resolve().then(() => {\n if (promise !== updatePromise) return;\n updatePromise = null;\n const tags = {};\n head.forEach(h => {\n if ( // If the font tag is loaded only on client navigation\n // it won't be inlined. In this case revert to the original behavior\n h.type === 'link' && h.props['data-optimized-fonts']) {\n if (document.querySelector(`style[data-href=\"${h.props['data-href']}\"]`)) {\n return;\n } else {\n h.props.href = h.props['data-href'];\n h.props['data-href'] = undefined;\n }\n }\n\n const components = tags[h.type] || [];\n components.push(h);\n tags[h.type] = components;\n });\n const titleComponent = tags.title ? tags.title[0] : null;\n let title = '';\n\n if (titleComponent) {\n const {\n children\n } = titleComponent.props;\n title = typeof children === 'string' ? children : Array.isArray(children) ? children.join('') : '';\n }\n\n if (title !== document.title) document.title = title;\n ['meta', 'base', 'link', 'style', 'script'].forEach(type => {\n updateElements(type, tags[type] || []);\n });\n });\n }\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9oZWFkLW1hbmFnZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELG1CQUFBLEdBQXNCRSxXQUF0QjtBQUNBRixrQkFBQSxHQUFrQkksZUFBbEI7QUFDQUoseUJBQUEsR0FBNEIsS0FBSyxDQUFqQztBQUNBLE1BQU1LLGlCQUFpQixHQUFHO0FBQ3RCQyxFQUFBQSxhQUFhLEVBQUUsZ0JBRE87QUFFdEJDLEVBQUFBLFNBQVMsRUFBRSxPQUZXO0FBR3RCQyxFQUFBQSxPQUFPLEVBQUUsS0FIYTtBQUl0QkMsRUFBQUEsU0FBUyxFQUFFLFlBSlc7QUFLdEJDLEVBQUFBLFFBQVEsRUFBRTtBQUxZLENBQTFCO0FBT0FWLHlCQUFBLEdBQTRCSyxpQkFBNUI7O0FBQ0EsU0FBU00saUJBQVQsQ0FBMkI7QUFBRUMsRUFBQUEsSUFBRjtBQUFTQyxFQUFBQTtBQUFULENBQTNCLEVBQThDO0FBQzFDLFFBQU1DLEVBQUUsR0FBR0MsUUFBUSxDQUFDQyxhQUFULENBQXVCSixJQUF2QixDQUFYOztBQUNBLE9BQUksTUFBTUssQ0FBVixJQUFlSixLQUFmLEVBQXFCO0FBQ2pCLFFBQUksQ0FBQ0EsS0FBSyxDQUFDSyxjQUFOLENBQXFCRCxDQUFyQixDQUFMLEVBQThCO0FBQzlCLFFBQUlBLENBQUMsS0FBSyxVQUFOLElBQW9CQSxDQUFDLEtBQUsseUJBQTlCLEVBQXlELFNBRnhDLENBR2pCOztBQUNBLFFBQUlKLEtBQUssQ0FBQ0ksQ0FBRCxDQUFMLEtBQWFFLFNBQWpCLEVBQTRCO0FBQzVCLFVBQU1DLElBQUksR0FBR2YsaUJBQWlCLENBQUNZLENBQUQsQ0FBakIsSUFBd0JBLENBQUMsQ0FBQ0ksV0FBRixFQUFyQzs7QUFDQSxRQUFJVCxJQUFJLEtBQUssUUFBVCxLQUFzQlEsSUFBSSxLQUFLLE9BQVQsSUFBb0JBLElBQUksS0FBSyxPQUE3QixJQUF3Q0EsSUFBSSxLQUFLLFVBQXZFLENBQUosRUFBd0Y7QUFDcEZOLE1BQUFBLEVBQUUsQ0FBQ00sSUFBRCxDQUFGLEdBQVcsQ0FBQyxDQUFDUCxLQUFLLENBQUNJLENBQUQsQ0FBbEI7QUFDSCxLQUZELE1BRU87QUFDSEgsTUFBQUEsRUFBRSxDQUFDUSxZQUFILENBQWdCRixJQUFoQixFQUFzQlAsS0FBSyxDQUFDSSxDQUFELENBQTNCO0FBQ0g7QUFDSjs7QUFDRCxRQUFNO0FBQUVNLElBQUFBLFFBQUY7QUFBYUMsSUFBQUE7QUFBYixNQUEwQ1gsS0FBaEQ7O0FBQ0EsTUFBSVcsdUJBQUosRUFBNkI7QUFDekJWLElBQUFBLEVBQUUsQ0FBQ1csU0FBSCxHQUFlRCx1QkFBdUIsQ0FBQ0UsTUFBeEIsSUFBa0MsRUFBakQ7QUFDSCxHQUZELE1BRU8sSUFBSUgsUUFBSixFQUFjO0FBQ2pCVCxJQUFBQSxFQUFFLENBQUNhLFdBQUgsR0FBaUIsT0FBT0osUUFBUCxLQUFvQixRQUFwQixHQUErQkEsUUFBL0IsR0FBMENLLEtBQUssQ0FBQ0MsT0FBTixDQUFjTixRQUFkLElBQTBCQSxRQUFRLENBQUNPLElBQVQsQ0FBYyxFQUFkLENBQTFCLEdBQThDLEVBQXpHO0FBQ0g7O0FBQ0QsU0FBT2hCLEVBQVA7QUFDSDs7QUFDRCxTQUFTWixXQUFULENBQXFCNkIsTUFBckIsRUFBNkJDLE1BQTdCLEVBQXFDO0FBQ2pDLE1BQUlELE1BQU0sWUFBWUUsV0FBbEIsSUFBaUNELE1BQU0sWUFBWUMsV0FBdkQsRUFBb0U7QUFDaEUsVUFBTUMsS0FBSyxHQUFHRixNQUFNLENBQUNHLFlBQVAsQ0FBb0IsT0FBcEIsQ0FBZCxDQURnRSxDQUVoRTtBQUNBOztBQUNBLFFBQUlELEtBQUssSUFBSSxDQUFDSCxNQUFNLENBQUNJLFlBQVAsQ0FBb0IsT0FBcEIsQ0FBZCxFQUE0QztBQUN4QyxZQUFNQyxRQUFRLEdBQUdKLE1BQU0sQ0FBQ0ssU0FBUCxDQUFpQixJQUFqQixDQUFqQjtBQUNBRCxNQUFBQSxRQUFRLENBQUNkLFlBQVQsQ0FBc0IsT0FBdEIsRUFBK0IsRUFBL0I7QUFDQWMsTUFBQUEsUUFBUSxDQUFDRixLQUFULEdBQWlCQSxLQUFqQjtBQUNBLGFBQU9BLEtBQUssS0FBS0gsTUFBTSxDQUFDRyxLQUFqQixJQUEwQkgsTUFBTSxDQUFDN0IsV0FBUCxDQUFtQmtDLFFBQW5CLENBQWpDO0FBQ0g7QUFDSjs7QUFDRCxTQUFPTCxNQUFNLENBQUM3QixXQUFQLENBQW1COEIsTUFBbkIsQ0FBUDtBQUNIOztBQUNELFNBQVNNLGNBQVQsQ0FBd0IxQixJQUF4QixFQUE4QjJCLFVBQTlCLEVBQTBDO0FBQ3RDLFFBQU1DLE1BQU0sR0FBR3pCLFFBQVEsQ0FBQzBCLG9CQUFULENBQThCLE1BQTlCLEVBQXNDLENBQXRDLENBQWY7QUFDQSxRQUFNQyxXQUFXLEdBQUdGLE1BQU0sQ0FBQ0csYUFBUCxDQUFxQiw0QkFBckIsQ0FBcEI7O0FBQ0EsWUFBMkM7QUFDdkMsUUFBSSxDQUFDRCxXQUFMLEVBQWtCO0FBQ2RFLE1BQUFBLE9BQU8sQ0FBQ0MsS0FBUixDQUFjLCtGQUFkO0FBQ0E7QUFDSDtBQUNKOztBQUNELFFBQU1DLFNBQVMsR0FBR0MsTUFBTSxDQUFDTCxXQUFXLENBQUNNLE9BQWIsQ0FBeEI7QUFDQSxRQUFNQyxPQUFPLEdBQUcsRUFBaEI7O0FBQ0EsT0FBSSxJQUFJQyxDQUFDLEdBQUcsQ0FBUixFQUFXQyxDQUFDLEdBQUdULFdBQVcsQ0FBQ1Usc0JBQS9CLEVBQXVERixDQUFDLEdBQUdKLFNBQTNELEVBQXNFSSxDQUFDLElBQUlDLENBQUMsR0FBRyxDQUFDQSxDQUFDLEtBQUssSUFBTixJQUFjQSxDQUFDLEtBQUssS0FBSyxDQUF6QixHQUE2QixLQUFLLENBQWxDLEdBQXNDQSxDQUFDLENBQUNDLHNCQUF6QyxLQUFvRSxJQUFuSixFQUF3SjtBQUNwSixRQUFJQyxHQUFKOztBQUNBLFFBQUksQ0FBQ0YsQ0FBQyxLQUFLLElBQU4sSUFBY0EsQ0FBQyxLQUFLLEtBQUssQ0FBekIsR0FBNkIsS0FBSyxDQUFsQyxHQUFzQyxDQUFDRSxHQUFHLEdBQUdGLENBQUMsQ0FBQ0csT0FBVCxNQUFzQixJQUF0QixJQUE4QkQsR0FBRyxLQUFLLEtBQUssQ0FBM0MsR0FBK0MsS0FBSyxDQUFwRCxHQUF3REEsR0FBRyxDQUFDaEMsV0FBSixFQUEvRixNQUFzSFQsSUFBMUgsRUFBZ0k7QUFDNUhxQyxNQUFBQSxPQUFPLENBQUNNLElBQVIsQ0FBYUosQ0FBYjtBQUNIO0FBQ0o7O0FBQ0QsUUFBTUssT0FBTyxHQUFHakIsVUFBVSxDQUFDa0IsR0FBWCxDQUFlOUMsaUJBQWYsRUFBa0MrQyxNQUFsQyxDQUEwQzFCLE1BQUQsSUFBVTtBQUMvRCxTQUFJLElBQUkyQixDQUFDLEdBQUcsQ0FBUixFQUFXQyxHQUFHLEdBQUdYLE9BQU8sQ0FBQ1ksTUFBN0IsRUFBcUNGLENBQUMsR0FBR0MsR0FBekMsRUFBOENELENBQUMsRUFBL0MsRUFBa0Q7QUFDOUMsWUFBTTVCLE1BQU0sR0FBR2tCLE9BQU8sQ0FBQ1UsQ0FBRCxDQUF0Qjs7QUFDQSxVQUFJekQsV0FBVyxDQUFDNkIsTUFBRCxFQUFTQyxNQUFULENBQWYsRUFBaUM7QUFDN0JpQixRQUFBQSxPQUFPLENBQUNhLE1BQVIsQ0FBZUgsQ0FBZixFQUFrQixDQUFsQjtBQUNBLGVBQU8sS0FBUDtBQUNIO0FBQ0o7O0FBQ0QsV0FBTyxJQUFQO0FBQ0gsR0FUZSxDQUFoQjtBQVVBVixFQUFBQSxPQUFPLENBQUNjLE9BQVIsQ0FBaUJDLENBQUQsSUFBSztBQUNqQixRQUFJWCxHQUFKO0FBQ0EsV0FBTyxDQUFDQSxHQUFHLEdBQUdXLENBQUMsQ0FBQ0MsVUFBVCxNQUF5QixJQUF6QixJQUFpQ1osR0FBRyxLQUFLLEtBQUssQ0FBOUMsR0FBa0QsS0FBSyxDQUF2RCxHQUEyREEsR0FBRyxDQUFDYSxXQUFKLENBQWdCRixDQUFoQixDQUFsRTtBQUNILEdBSEQ7QUFJQVIsRUFBQUEsT0FBTyxDQUFDTyxPQUFSLENBQWlCQyxDQUFELElBQUt4QixNQUFNLENBQUMyQixZQUFQLENBQW9CSCxDQUFwQixFQUF1QnRCLFdBQXZCLENBQXJCO0FBRUFBLEVBQUFBLFdBQVcsQ0FBQ00sT0FBWixHQUFzQixDQUFDRixTQUFTLEdBQUdHLE9BQU8sQ0FBQ1ksTUFBcEIsR0FBNkJMLE9BQU8sQ0FBQ0ssTUFBdEMsRUFBOENPLFFBQTlDLEVBQXRCO0FBQ0g7O0FBQ0QsU0FBU2hFLGVBQVQsR0FBMkI7QUFDdkIsTUFBSWlFLGFBQWEsR0FBRyxJQUFwQjtBQUNBLFNBQU87QUFDSEMsSUFBQUEsZ0JBQWdCLEVBQUUsSUFBSUMsR0FBSixFQURmO0FBRUhDLElBQUFBLFVBQVUsRUFBR0MsSUFBRCxJQUFRO0FBQ2hCLFlBQU1DLE9BQU8sR0FBR0wsYUFBYSxHQUFHTSxPQUFPLENBQUNDLE9BQVIsR0FBa0JDLElBQWxCLENBQXVCLE1BQUk7QUFDdkQsWUFBSUgsT0FBTyxLQUFLTCxhQUFoQixFQUErQjtBQUMvQkEsUUFBQUEsYUFBYSxHQUFHLElBQWhCO0FBQ0EsY0FBTVMsSUFBSSxHQUFHLEVBQWI7QUFFQUwsUUFBQUEsSUFBSSxDQUFDVixPQUFMLENBQWNnQixDQUFELElBQUs7QUFDZCxlQUFJO0FBQ0o7QUFDQUEsVUFBQUEsQ0FBQyxDQUFDbkUsSUFBRixLQUFXLE1BQVgsSUFBcUJtRSxDQUFDLENBQUNsRSxLQUFGLENBQVEsc0JBQVIsQ0FGckIsRUFFc0Q7QUFDbEQsZ0JBQUlFLFFBQVEsQ0FBQzRCLGFBQVQsQ0FBd0Isb0JBQW1Cb0MsQ0FBQyxDQUFDbEUsS0FBRixDQUFRLFdBQVIsQ0FBcUIsSUFBaEUsQ0FBSixFQUEwRTtBQUN0RTtBQUNILGFBRkQsTUFFTztBQUNIa0UsY0FBQUEsQ0FBQyxDQUFDbEUsS0FBRixDQUFRbUUsSUFBUixHQUFlRCxDQUFDLENBQUNsRSxLQUFGLENBQVEsV0FBUixDQUFmO0FBQ0FrRSxjQUFBQSxDQUFDLENBQUNsRSxLQUFGLENBQVEsV0FBUixJQUF1Qk0sU0FBdkI7QUFDSDtBQUNKOztBQUNELGdCQUFNb0IsVUFBVSxHQUFHdUMsSUFBSSxDQUFDQyxDQUFDLENBQUNuRSxJQUFILENBQUosSUFBZ0IsRUFBbkM7QUFDQTJCLFVBQUFBLFVBQVUsQ0FBQ2dCLElBQVgsQ0FBZ0J3QixDQUFoQjtBQUNBRCxVQUFBQSxJQUFJLENBQUNDLENBQUMsQ0FBQ25FLElBQUgsQ0FBSixHQUFlMkIsVUFBZjtBQUNILFNBZEQ7QUFlQSxjQUFNMEMsY0FBYyxHQUFHSCxJQUFJLENBQUNJLEtBQUwsR0FBYUosSUFBSSxDQUFDSSxLQUFMLENBQVcsQ0FBWCxDQUFiLEdBQTZCLElBQXBEO0FBQ0EsWUFBSUEsS0FBSyxHQUFHLEVBQVo7O0FBQ0EsWUFBSUQsY0FBSixFQUFvQjtBQUNoQixnQkFBTTtBQUFFMUQsWUFBQUE7QUFBRixjQUFnQjBELGNBQWMsQ0FBQ3BFLEtBQXJDO0FBQ0FxRSxVQUFBQSxLQUFLLEdBQUcsT0FBTzNELFFBQVAsS0FBb0IsUUFBcEIsR0FBK0JBLFFBQS9CLEdBQTBDSyxLQUFLLENBQUNDLE9BQU4sQ0FBY04sUUFBZCxJQUEwQkEsUUFBUSxDQUFDTyxJQUFULENBQWMsRUFBZCxDQUExQixHQUE4QyxFQUFoRztBQUNIOztBQUNELFlBQUlvRCxLQUFLLEtBQUtuRSxRQUFRLENBQUNtRSxLQUF2QixFQUE4Qm5FLFFBQVEsQ0FBQ21FLEtBQVQsR0FBaUJBLEtBQWpCO0FBQzlCLFNBQ0ksTUFESixFQUVJLE1BRkosRUFHSSxNQUhKLEVBSUksT0FKSixFQUtJLFFBTEosRUFNRW5CLE9BTkYsQ0FNV25ELElBQUQsSUFBUTtBQUNkMEIsVUFBQUEsY0FBYyxDQUFDMUIsSUFBRCxFQUFPa0UsSUFBSSxDQUFDbEUsSUFBRCxDQUFKLElBQWMsRUFBckIsQ0FBZDtBQUNILFNBUkQ7QUFTSCxPQXBDK0IsQ0FBaEM7QUFxQ0g7QUF4Q0UsR0FBUDtBQTBDSCIsInNvdXJjZXMiOlsid2VicGFjazovL3ZpZS1yZWFjdC8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2hlYWQtbWFuYWdlci5qcz9jYTRhIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5pc0VxdWFsTm9kZSA9IGlzRXF1YWxOb2RlO1xuZXhwb3J0cy5kZWZhdWx0ID0gaW5pdEhlYWRNYW5hZ2VyO1xuZXhwb3J0cy5ET01BdHRyaWJ1dGVOYW1lcyA9IHZvaWQgMDtcbmNvbnN0IERPTUF0dHJpYnV0ZU5hbWVzID0ge1xuICAgIGFjY2VwdENoYXJzZXQ6ICdhY2NlcHQtY2hhcnNldCcsXG4gICAgY2xhc3NOYW1lOiAnY2xhc3MnLFxuICAgIGh0bWxGb3I6ICdmb3InLFxuICAgIGh0dHBFcXVpdjogJ2h0dHAtZXF1aXYnLFxuICAgIG5vTW9kdWxlOiAnbm9Nb2R1bGUnXG59O1xuZXhwb3J0cy5ET01BdHRyaWJ1dGVOYW1lcyA9IERPTUF0dHJpYnV0ZU5hbWVzO1xuZnVuY3Rpb24gcmVhY3RFbGVtZW50VG9ET00oeyB0eXBlICwgcHJvcHMgIH0pIHtcbiAgICBjb25zdCBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodHlwZSk7XG4gICAgZm9yKGNvbnN0IHAgaW4gcHJvcHMpe1xuICAgICAgICBpZiAoIXByb3BzLmhhc093blByb3BlcnR5KHApKSBjb250aW51ZTtcbiAgICAgICAgaWYgKHAgPT09ICdjaGlsZHJlbicgfHwgcCA9PT0gJ2Rhbmdlcm91c2x5U2V0SW5uZXJIVE1MJykgY29udGludWU7XG4gICAgICAgIC8vIHdlIGRvbid0IHJlbmRlciB1bmRlZmluZWQgcHJvcHMgdG8gdGhlIERPTVxuICAgICAgICBpZiAocHJvcHNbcF0gPT09IHVuZGVmaW5lZCkgY29udGludWU7XG4gICAgICAgIGNvbnN0IGF0dHIgPSBET01BdHRyaWJ1dGVOYW1lc1twXSB8fCBwLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmICh0eXBlID09PSAnc2NyaXB0JyAmJiAoYXR0ciA9PT0gJ2FzeW5jJyB8fCBhdHRyID09PSAnZGVmZXInIHx8IGF0dHIgPT09ICdub01vZHVsZScpKSB7XG4gICAgICAgICAgICBlbFthdHRyXSA9ICEhcHJvcHNbcF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlbC5zZXRBdHRyaWJ1dGUoYXR0ciwgcHJvcHNbcF0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHsgY2hpbGRyZW4gLCBkYW5nZXJvdXNseVNldElubmVySFRNTCAgfSA9IHByb3BzO1xuICAgIGlmIChkYW5nZXJvdXNseVNldElubmVySFRNTCkge1xuICAgICAgICBlbC5pbm5lckhUTUwgPSBkYW5nZXJvdXNseVNldElubmVySFRNTC5fX2h0bWwgfHwgJyc7XG4gICAgfSBlbHNlIGlmIChjaGlsZHJlbikge1xuICAgICAgICBlbC50ZXh0Q29udGVudCA9IHR5cGVvZiBjaGlsZHJlbiA9PT0gJ3N0cmluZycgPyBjaGlsZHJlbiA6IEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pID8gY2hpbGRyZW4uam9pbignJykgOiAnJztcbiAgICB9XG4gICAgcmV0dXJuIGVsO1xufVxuZnVuY3Rpb24gaXNFcXVhbE5vZGUob2xkVGFnLCBuZXdUYWcpIHtcbiAgICBpZiAob2xkVGFnIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQgJiYgbmV3VGFnIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3Qgbm9uY2UgPSBuZXdUYWcuZ2V0QXR0cmlidXRlKCdub25jZScpO1xuICAgICAgICAvLyBPbmx5IHN0cmlwIHRoZSBub25jZSBpZiBgb2xkVGFnYCBoYXMgaGFkIGl0IHN0cmlwcGVkLiBBbiBlbGVtZW50J3Mgbm9uY2UgYXR0cmlidXRlIHdpbGwgbm90XG4gICAgICAgIC8vIGJlIHN0cmlwcGVkIGlmIHRoZXJlIGlzIG5vIGNvbnRlbnQgc2VjdXJpdHkgcG9saWN5IHJlc3BvbnNlIGhlYWRlciB0aGF0IGluY2x1ZGVzIGEgbm9uY2UuXG4gICAgICAgIGlmIChub25jZSAmJiAhb2xkVGFnLmdldEF0dHJpYnV0ZSgnbm9uY2UnKSkge1xuICAgICAgICAgICAgY29uc3QgY2xvbmVUYWcgPSBuZXdUYWcuY2xvbmVOb2RlKHRydWUpO1xuICAgICAgICAgICAgY2xvbmVUYWcuc2V0QXR0cmlidXRlKCdub25jZScsICcnKTtcbiAgICAgICAgICAgIGNsb25lVGFnLm5vbmNlID0gbm9uY2U7XG4gICAgICAgICAgICByZXR1cm4gbm9uY2UgPT09IG9sZFRhZy5ub25jZSAmJiBvbGRUYWcuaXNFcXVhbE5vZGUoY2xvbmVUYWcpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBvbGRUYWcuaXNFcXVhbE5vZGUobmV3VGFnKTtcbn1cbmZ1bmN0aW9uIHVwZGF0ZUVsZW1lbnRzKHR5cGUsIGNvbXBvbmVudHMpIHtcbiAgICBjb25zdCBoZWFkRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdO1xuICAgIGNvbnN0IGhlYWRDb3VudEVsID0gaGVhZEVsLnF1ZXJ5U2VsZWN0b3IoJ21ldGFbbmFtZT1uZXh0LWhlYWQtY291bnRdJyk7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgaWYgKCFoZWFkQ291bnRFbCkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignV2FybmluZzogbmV4dC1oZWFkLWNvdW50IGlzIG1pc3NpbmcuIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25leHQtaGVhZC1jb3VudC1taXNzaW5nJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgaGVhZENvdW50ID0gTnVtYmVyKGhlYWRDb3VudEVsLmNvbnRlbnQpO1xuICAgIGNvbnN0IG9sZFRhZ3MgPSBbXTtcbiAgICBmb3IobGV0IGkgPSAwLCBqID0gaGVhZENvdW50RWwucHJldmlvdXNFbGVtZW50U2libGluZzsgaSA8IGhlYWRDb3VudDsgaSsrLCBqID0gKGogPT09IG51bGwgfHwgaiA9PT0gdm9pZCAwID8gdm9pZCAwIDogai5wcmV2aW91c0VsZW1lbnRTaWJsaW5nKSB8fCBudWxsKXtcbiAgICAgICAgdmFyIHJlZjtcbiAgICAgICAgaWYgKChqID09PSBudWxsIHx8IGogPT09IHZvaWQgMCA/IHZvaWQgMCA6IChyZWYgPSBqLnRhZ05hbWUpID09PSBudWxsIHx8IHJlZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVmLnRvTG93ZXJDYXNlKCkpID09PSB0eXBlKSB7XG4gICAgICAgICAgICBvbGRUYWdzLnB1c2goaik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgbmV3VGFncyA9IGNvbXBvbmVudHMubWFwKHJlYWN0RWxlbWVudFRvRE9NKS5maWx0ZXIoKG5ld1RhZyk9PntcbiAgICAgICAgZm9yKGxldCBrID0gMCwgbGVuID0gb2xkVGFncy5sZW5ndGg7IGsgPCBsZW47IGsrKyl7XG4gICAgICAgICAgICBjb25zdCBvbGRUYWcgPSBvbGRUYWdzW2tdO1xuICAgICAgICAgICAgaWYgKGlzRXF1YWxOb2RlKG9sZFRhZywgbmV3VGFnKSkge1xuICAgICAgICAgICAgICAgIG9sZFRhZ3Muc3BsaWNlKGssIDEpO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9KTtcbiAgICBvbGRUYWdzLmZvckVhY2goKHQpPT57XG4gICAgICAgIHZhciByZWY7XG4gICAgICAgIHJldHVybiAocmVmID0gdC5wYXJlbnROb2RlKSA9PT0gbnVsbCB8fCByZWYgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlZi5yZW1vdmVDaGlsZCh0KTtcbiAgICB9KTtcbiAgICBuZXdUYWdzLmZvckVhY2goKHQpPT5oZWFkRWwuaW5zZXJ0QmVmb3JlKHQsIGhlYWRDb3VudEVsKVxuICAgICk7XG4gICAgaGVhZENvdW50RWwuY29udGVudCA9IChoZWFkQ291bnQgLSBvbGRUYWdzLmxlbmd0aCArIG5ld1RhZ3MubGVuZ3RoKS50b1N0cmluZygpO1xufVxuZnVuY3Rpb24gaW5pdEhlYWRNYW5hZ2VyKCkge1xuICAgIGxldCB1cGRhdGVQcm9taXNlID0gbnVsbDtcbiAgICByZXR1cm4ge1xuICAgICAgICBtb3VudGVkSW5zdGFuY2VzOiBuZXcgU2V0KCksXG4gICAgICAgIHVwZGF0ZUhlYWQ6IChoZWFkKT0+e1xuICAgICAgICAgICAgY29uc3QgcHJvbWlzZSA9IHVwZGF0ZVByb21pc2UgPSBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57XG4gICAgICAgICAgICAgICAgaWYgKHByb21pc2UgIT09IHVwZGF0ZVByb21pc2UpIHJldHVybjtcbiAgICAgICAgICAgICAgICB1cGRhdGVQcm9taXNlID0gbnVsbDtcbiAgICAgICAgICAgICAgICBjb25zdCB0YWdzID0ge1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgaGVhZC5mb3JFYWNoKChoKT0+e1xuICAgICAgICAgICAgICAgICAgICBpZiAoLy8gSWYgdGhlIGZvbnQgdGFnIGlzIGxvYWRlZCBvbmx5IG9uIGNsaWVudCBuYXZpZ2F0aW9uXG4gICAgICAgICAgICAgICAgICAgIC8vIGl0IHdvbid0IGJlIGlubGluZWQuIEluIHRoaXMgY2FzZSByZXZlcnQgdG8gdGhlIG9yaWdpbmFsIGJlaGF2aW9yXG4gICAgICAgICAgICAgICAgICAgIGgudHlwZSA9PT0gJ2xpbmsnICYmIGgucHJvcHNbJ2RhdGEtb3B0aW1pemVkLWZvbnRzJ10pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBzdHlsZVtkYXRhLWhyZWY9XCIke2gucHJvcHNbJ2RhdGEtaHJlZiddfVwiXWApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoLnByb3BzLmhyZWYgPSBoLnByb3BzWydkYXRhLWhyZWYnXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoLnByb3BzWydkYXRhLWhyZWYnXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb21wb25lbnRzID0gdGFnc1toLnR5cGVdIHx8IFtdO1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRzLnB1c2goaCk7XG4gICAgICAgICAgICAgICAgICAgIHRhZ3NbaC50eXBlXSA9IGNvbXBvbmVudHM7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgY29uc3QgdGl0bGVDb21wb25lbnQgPSB0YWdzLnRpdGxlID8gdGFncy50aXRsZVswXSA6IG51bGw7XG4gICAgICAgICAgICAgICAgbGV0IHRpdGxlID0gJyc7XG4gICAgICAgICAgICAgICAgaWYgKHRpdGxlQ29tcG9uZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgY2hpbGRyZW4gIH0gPSB0aXRsZUNvbXBvbmVudC5wcm9wcztcbiAgICAgICAgICAgICAgICAgICAgdGl0bGUgPSB0eXBlb2YgY2hpbGRyZW4gPT09ICdzdHJpbmcnID8gY2hpbGRyZW4gOiBBcnJheS5pc0FycmF5KGNoaWxkcmVuKSA/IGNoaWxkcmVuLmpvaW4oJycpIDogJyc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0aXRsZSAhPT0gZG9jdW1lbnQudGl0bGUpIGRvY3VtZW50LnRpdGxlID0gdGl0bGU7XG4gICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAnbWV0YScsXG4gICAgICAgICAgICAgICAgICAgICdiYXNlJyxcbiAgICAgICAgICAgICAgICAgICAgJ2xpbmsnLFxuICAgICAgICAgICAgICAgICAgICAnc3R5bGUnLFxuICAgICAgICAgICAgICAgICAgICAnc2NyaXB0J1xuICAgICAgICAgICAgICAgIF0uZm9yRWFjaCgodHlwZSk9PntcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlRWxlbWVudHModHlwZSwgdGFnc1t0eXBlXSB8fCBbXSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH07XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhlYWQtbWFuYWdlci5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJpc0VxdWFsTm9kZSIsImRlZmF1bHQiLCJpbml0SGVhZE1hbmFnZXIiLCJET01BdHRyaWJ1dGVOYW1lcyIsImFjY2VwdENoYXJzZXQiLCJjbGFzc05hbWUiLCJodG1sRm9yIiwiaHR0cEVxdWl2Iiwibm9Nb2R1bGUiLCJyZWFjdEVsZW1lbnRUb0RPTSIsInR5cGUiLCJwcm9wcyIsImVsIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwicCIsImhhc093blByb3BlcnR5IiwidW5kZWZpbmVkIiwiYXR0ciIsInRvTG93ZXJDYXNlIiwic2V0QXR0cmlidXRlIiwiY2hpbGRyZW4iLCJkYW5nZXJvdXNseVNldElubmVySFRNTCIsImlubmVySFRNTCIsIl9faHRtbCIsInRleHRDb250ZW50IiwiQXJyYXkiLCJpc0FycmF5Iiwiam9pbiIsIm9sZFRhZyIsIm5ld1RhZyIsIkhUTUxFbGVtZW50Iiwibm9uY2UiLCJnZXRBdHRyaWJ1dGUiLCJjbG9uZVRhZyIsImNsb25lTm9kZSIsInVwZGF0ZUVsZW1lbnRzIiwiY29tcG9uZW50cyIsImhlYWRFbCIsImdldEVsZW1lbnRzQnlUYWdOYW1lIiwiaGVhZENvdW50RWwiLCJxdWVyeVNlbGVjdG9yIiwiY29uc29sZSIsImVycm9yIiwiaGVhZENvdW50IiwiTnVtYmVyIiwiY29udGVudCIsIm9sZFRhZ3MiLCJpIiwiaiIsInByZXZpb3VzRWxlbWVudFNpYmxpbmciLCJyZWYiLCJ0YWdOYW1lIiwicHVzaCIsIm5ld1RhZ3MiLCJtYXAiLCJmaWx0ZXIiLCJrIiwibGVuIiwibGVuZ3RoIiwic3BsaWNlIiwiZm9yRWFjaCIsInQiLCJwYXJlbnROb2RlIiwicmVtb3ZlQ2hpbGQiLCJpbnNlcnRCZWZvcmUiLCJ0b1N0cmluZyIsInVwZGF0ZVByb21pc2UiLCJtb3VudGVkSW5zdGFuY2VzIiwiU2V0IiwidXBkYXRlSGVhZCIsImhlYWQiLCJwcm9taXNlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0aGVuIiwidGFncyIsImgiLCJocmVmIiwidGl0bGVDb21wb25lbnQiLCJ0aXRsZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/head-manager.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/request-idle-callback.js": +/*!****************************************************************!*\ + !*** ./node_modules/next/dist/client/request-idle-callback.js ***! + \****************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.cancelIdleCallback = exports.requestIdleCallback = void 0;\n\nconst requestIdleCallback = typeof self !== 'undefined' && self.requestIdleCallback && self.requestIdleCallback.bind(window) || function (cb) {\n let start = Date.now();\n return setTimeout(function () {\n cb({\n didTimeout: false,\n timeRemaining: function () {\n return Math.max(0, 50 - (Date.now() - start));\n }\n });\n }, 1);\n};\n\nexports.requestIdleCallback = requestIdleCallback;\n\nconst cancelIdleCallback = typeof self !== 'undefined' && self.cancelIdleCallback && self.cancelIdleCallback.bind(window) || function (id) {\n return clearTimeout(id);\n};\n\nexports.cancelIdleCallback = cancelIdleCallback;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yZXF1ZXN0LWlkbGUtY2FsbGJhY2suanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELDBCQUFBLEdBQTZCQSwyQkFBQSxHQUE4QixLQUFLLENBQWhFOztBQUNBLE1BQU1HLG1CQUFtQixHQUFHLE9BQU9DLElBQVAsS0FBZ0IsV0FBaEIsSUFBK0JBLElBQUksQ0FBQ0QsbUJBQXBDLElBQTJEQyxJQUFJLENBQUNELG1CQUFMLENBQXlCRSxJQUF6QixDQUE4QkMsTUFBOUIsQ0FBM0QsSUFBb0csVUFBU0MsRUFBVCxFQUFhO0FBQ3pJLE1BQUlDLEtBQUssR0FBR0MsSUFBSSxDQUFDQyxHQUFMLEVBQVo7QUFDQSxTQUFPQyxVQUFVLENBQUMsWUFBVztBQUN6QkosSUFBQUEsRUFBRSxDQUFDO0FBQ0NLLE1BQUFBLFVBQVUsRUFBRSxLQURiO0FBRUNDLE1BQUFBLGFBQWEsRUFBRSxZQUFXO0FBQ3RCLGVBQU9DLElBQUksQ0FBQ0MsR0FBTCxDQUFTLENBQVQsRUFBWSxNQUFNTixJQUFJLENBQUNDLEdBQUwsS0FBYUYsS0FBbkIsQ0FBWixDQUFQO0FBQ0g7QUFKRixLQUFELENBQUY7QUFNSCxHQVBnQixFQU9kLENBUGMsQ0FBakI7QUFRSCxDQVZEOztBQVdBUiwyQkFBQSxHQUE4QkcsbUJBQTlCOztBQUNBLE1BQU1ELGtCQUFrQixHQUFHLE9BQU9FLElBQVAsS0FBZ0IsV0FBaEIsSUFBK0JBLElBQUksQ0FBQ0Ysa0JBQXBDLElBQTBERSxJQUFJLENBQUNGLGtCQUFMLENBQXdCRyxJQUF4QixDQUE2QkMsTUFBN0IsQ0FBMUQsSUFBa0csVUFBU1UsRUFBVCxFQUFhO0FBQ3RJLFNBQU9DLFlBQVksQ0FBQ0QsRUFBRCxDQUFuQjtBQUNILENBRkQ7O0FBR0FoQiwwQkFBQSxHQUE2QkUsa0JBQTdCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmllLXJlYWN0Ly4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvcmVxdWVzdC1pZGxlLWNhbGxiYWNrLmpzPzFlMjAiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmNhbmNlbElkbGVDYWxsYmFjayA9IGV4cG9ydHMucmVxdWVzdElkbGVDYWxsYmFjayA9IHZvaWQgMDtcbmNvbnN0IHJlcXVlc3RJZGxlQ2FsbGJhY2sgPSB0eXBlb2Ygc2VsZiAhPT0gJ3VuZGVmaW5lZCcgJiYgc2VsZi5yZXF1ZXN0SWRsZUNhbGxiYWNrICYmIHNlbGYucmVxdWVzdElkbGVDYWxsYmFjay5iaW5kKHdpbmRvdykgfHwgZnVuY3Rpb24oY2IpIHtcbiAgICBsZXQgc3RhcnQgPSBEYXRlLm5vdygpO1xuICAgIHJldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICBjYih7XG4gICAgICAgICAgICBkaWRUaW1lb3V0OiBmYWxzZSxcbiAgICAgICAgICAgIHRpbWVSZW1haW5pbmc6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBNYXRoLm1heCgwLCA1MCAtIChEYXRlLm5vdygpIC0gc3RhcnQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSwgMSk7XG59O1xuZXhwb3J0cy5yZXF1ZXN0SWRsZUNhbGxiYWNrID0gcmVxdWVzdElkbGVDYWxsYmFjaztcbmNvbnN0IGNhbmNlbElkbGVDYWxsYmFjayA9IHR5cGVvZiBzZWxmICE9PSAndW5kZWZpbmVkJyAmJiBzZWxmLmNhbmNlbElkbGVDYWxsYmFjayAmJiBzZWxmLmNhbmNlbElkbGVDYWxsYmFjay5iaW5kKHdpbmRvdykgfHwgZnVuY3Rpb24oaWQpIHtcbiAgICByZXR1cm4gY2xlYXJUaW1lb3V0KGlkKTtcbn07XG5leHBvcnRzLmNhbmNlbElkbGVDYWxsYmFjayA9IGNhbmNlbElkbGVDYWxsYmFjaztcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVxdWVzdC1pZGxlLWNhbGxiYWNrLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImNhbmNlbElkbGVDYWxsYmFjayIsInJlcXVlc3RJZGxlQ2FsbGJhY2siLCJzZWxmIiwiYmluZCIsIndpbmRvdyIsImNiIiwic3RhcnQiLCJEYXRlIiwibm93Iiwic2V0VGltZW91dCIsImRpZFRpbWVvdXQiLCJ0aW1lUmVtYWluaW5nIiwiTWF0aCIsIm1heCIsImlkIiwiY2xlYXJUaW1lb3V0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/request-idle-callback.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/script.js": +/*!*************************************************!*\ + !*** ./node_modules/next/dist/client/script.js ***! + \*************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.initScriptLoader = initScriptLoader;\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _headManagerContext = __webpack_require__(/*! ../shared/lib/head-manager-context */ \"../shared/lib/head-manager-context\");\n\nvar _headManager = __webpack_require__(/*! ./head-manager */ \"./node_modules/next/dist/client/head-manager.js\");\n\nvar _requestIdleCallback = __webpack_require__(/*! ./request-idle-callback */ \"./node_modules/next/dist/client/request-idle-callback.js\");\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nconst ScriptCache = new Map();\nconst LoadCache = new Set();\nconst ignoreProps = ['onLoad', 'dangerouslySetInnerHTML', 'children', 'onError', 'strategy'];\n\nconst loadScript = props => {\n const {\n src,\n id,\n onLoad = () => {},\n dangerouslySetInnerHTML,\n children = '',\n strategy = 'afterInteractive',\n onError\n } = props;\n const cacheKey = id || src; // Script has already loaded\n\n if (cacheKey && LoadCache.has(cacheKey)) {\n return;\n } // Contents of this script are already loading/loaded\n\n\n if (ScriptCache.has(src)) {\n LoadCache.add(cacheKey); // Execute onLoad since the script loading has begun\n\n ScriptCache.get(src).then(onLoad, onError);\n return;\n }\n\n const el = document.createElement('script');\n const loadPromise = new Promise((resolve, reject) => {\n el.addEventListener('load', function (e) {\n resolve();\n\n if (onLoad) {\n onLoad.call(this, e);\n }\n });\n el.addEventListener('error', function (e) {\n reject(e);\n });\n }).catch(function (e) {\n if (onError) {\n onError(e);\n }\n });\n\n if (src) {\n ScriptCache.set(src, loadPromise);\n }\n\n LoadCache.add(cacheKey);\n\n if (dangerouslySetInnerHTML) {\n el.innerHTML = dangerouslySetInnerHTML.__html || '';\n } else if (children) {\n el.textContent = typeof children === 'string' ? children : Array.isArray(children) ? children.join('') : '';\n } else if (src) {\n el.src = src;\n }\n\n for (const [k, value] of Object.entries(props)) {\n if (value === undefined || ignoreProps.includes(k)) {\n continue;\n }\n\n const attr = _headManager.DOMAttributeNames[k] || k.toLowerCase();\n el.setAttribute(attr, value);\n }\n\n el.setAttribute('data-nscript', strategy);\n document.body.appendChild(el);\n};\n\nfunction handleClientScriptLoad(props) {\n const {\n strategy = 'afterInteractive'\n } = props;\n\n if (strategy === 'afterInteractive') {\n loadScript(props);\n } else if (strategy === 'lazyOnload') {\n window.addEventListener('load', () => {\n (0, _requestIdleCallback).requestIdleCallback(() => loadScript(props));\n });\n }\n}\n\nfunction loadLazyScript(props) {\n if (document.readyState === 'complete') {\n (0, _requestIdleCallback).requestIdleCallback(() => loadScript(props));\n } else {\n window.addEventListener('load', () => {\n (0, _requestIdleCallback).requestIdleCallback(() => loadScript(props));\n });\n }\n}\n\nfunction initScriptLoader(scriptLoaderItems) {\n scriptLoaderItems.forEach(handleClientScriptLoad);\n}\n\nfunction Script(props) {\n const {\n src = '',\n onLoad = () => {},\n dangerouslySetInnerHTML,\n strategy = 'afterInteractive',\n onError\n } = props,\n restProps = _objectWithoutProperties(props, [\"src\", \"onLoad\", \"dangerouslySetInnerHTML\", \"strategy\", \"onError\"]); // Context is available only during SSR\n\n\n const {\n updateScripts,\n scripts,\n getIsSsr\n } = (0, _react).useContext(_headManagerContext.HeadManagerContext);\n (0, _react).useEffect(() => {\n if (strategy === 'afterInteractive') {\n loadScript(props);\n } else if (strategy === 'lazyOnload') {\n loadLazyScript(props);\n }\n }, [props, strategy]);\n\n if (strategy === 'beforeInteractive') {\n if (updateScripts) {\n scripts.beforeInteractive = (scripts.beforeInteractive || []).concat([_objectSpread({\n src,\n onLoad,\n onError\n }, restProps)]);\n updateScripts(scripts);\n } else if (getIsSsr && getIsSsr()) {\n // Script has already loaded during SSR\n LoadCache.add(restProps.id || src);\n } else if (getIsSsr && !getIsSsr()) {\n loadScript(props);\n }\n }\n\n return null;\n}\n\nvar _default = Script;\nexports[\"default\"] = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9zY3JpcHQuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELHdCQUFBLEdBQTJCRSxnQkFBM0I7QUFDQUYsa0JBQUEsR0FBa0IsS0FBSyxDQUF2Qjs7QUFDQSxJQUFJSSxNQUFNLEdBQUdDLHVCQUF1QixDQUFDQyxtQkFBTyxDQUFDLG9CQUFELENBQVIsQ0FBcEM7O0FBQ0EsSUFBSUMsbUJBQW1CLEdBQUdELG1CQUFPLENBQUMsOEVBQUQsQ0FBakM7O0FBQ0EsSUFBSUUsWUFBWSxHQUFHRixtQkFBTyxDQUFDLHVFQUFELENBQTFCOztBQUNBLElBQUlHLG9CQUFvQixHQUFHSCxtQkFBTyxDQUFDLHlGQUFELENBQWxDOztBQUNBLFNBQVNJLGVBQVQsQ0FBeUJDLEdBQXpCLEVBQThCQyxHQUE5QixFQUFtQ1gsS0FBbkMsRUFBMEM7QUFDdEMsTUFBSVcsR0FBRyxJQUFJRCxHQUFYLEVBQWdCO0FBQ1piLElBQUFBLE1BQU0sQ0FBQ0MsY0FBUCxDQUFzQlksR0FBdEIsRUFBMkJDLEdBQTNCLEVBQWdDO0FBQzVCWCxNQUFBQSxLQUFLLEVBQUVBLEtBRHFCO0FBRTVCWSxNQUFBQSxVQUFVLEVBQUUsSUFGZ0I7QUFHNUJDLE1BQUFBLFlBQVksRUFBRSxJQUhjO0FBSTVCQyxNQUFBQSxRQUFRLEVBQUU7QUFKa0IsS0FBaEM7QUFNSCxHQVBELE1BT087QUFDSEosSUFBQUEsR0FBRyxDQUFDQyxHQUFELENBQUgsR0FBV1gsS0FBWDtBQUNIOztBQUNELFNBQU9VLEdBQVA7QUFDSDs7QUFDRCxTQUFTTix1QkFBVCxDQUFpQ00sR0FBakMsRUFBc0M7QUFDbEMsTUFBSUEsR0FBRyxJQUFJQSxHQUFHLENBQUNLLFVBQWYsRUFBMkI7QUFDdkIsV0FBT0wsR0FBUDtBQUNILEdBRkQsTUFFTztBQUNILFFBQUlNLE1BQU0sR0FBRyxFQUFiOztB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UUFBQUEsTUFGVTtBQUdWSSxRQUFBQTtBQUhVLE9BQUQsRUFJVnNDLFNBSlUsQ0FEb0QsQ0FBekMsQ0FBNUI7QUFPQUMsTUFBQUEsYUFBYSxDQUFDQyxPQUFELENBQWI7QUFDSCxLQVRELE1BU08sSUFBSUMsUUFBUSxJQUFJQSxRQUFRLEVBQXhCLEVBQTRCO0FBQy9CO0FBQ0FwRCxNQUFBQSxTQUFTLENBQUNjLEdBQVYsQ0FBY21DLFNBQVMsQ0FBQzNDLEVBQVYsSUFBZ0JELEdBQTlCO0FBQ0gsS0FITSxNQUdBLElBQUkrQyxRQUFRLElBQUksQ0FBQ0EsUUFBUSxFQUF6QixFQUE2QjtBQUNoQ2pELE1BQUFBLFVBQVUsQ0FBQ0MsS0FBRCxDQUFWO0FBQ0g7QUFDSjs7QUFDRCxTQUFPLElBQVA7QUFDSDs7QUFDRCxJQUFJcUQsUUFBUSxHQUFHVCxNQUFmO0FBQ0EvRixrQkFBQSxHQUFrQndHLFFBQWxCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmllLXJlYWN0Ly4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvc2NyaXB0LmpzP2JkNmEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmluaXRTY3JpcHRMb2FkZXIgPSBpbml0U2NyaXB0TG9hZGVyO1xuZXhwb3J0cy5kZWZhdWx0ID0gdm9pZCAwO1xudmFyIF9yZWFjdCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG52YXIgX2hlYWRNYW5hZ2VyQ29udGV4dCA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL2hlYWQtbWFuYWdlci1jb250ZXh0XCIpO1xudmFyIF9oZWFkTWFuYWdlciA9IHJlcXVpcmUoXCIuL2hlYWQtbWFuYWdlclwiKTtcbnZhciBfcmVxdWVzdElkbGVDYWxsYmFjayA9IHJlcXVpcmUoXCIuL3JlcXVlc3QtaWRsZS1jYWxsYmFja1wiKTtcbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHtcbiAgICBpZiAoa2V5IGluIG9iaikge1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHtcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgICAgICB3cml0YWJsZTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBvYmpba2V5XSA9IHZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gb2JqO1xufVxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7XG4gICAgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkge1xuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBuZXdPYmogPSB7XG4gICAgICAgIH07XG4gICAgICAgIGlmIChvYmogIT0gbnVsbCkge1xuICAgICAgICAgICAgZm9yKHZhciBrZXkgaW4gb2JqKXtcbiAgICAgICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiB7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGlmIChkZXNjLmdldCB8fCBkZXNjLnNldCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld09ialtrZXldID0gb2JqW2tleV07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbmV3T2JqLmRlZmF1bHQgPSBvYmo7XG4gICAgICAgIHJldHVybiBuZXdPYmo7XG4gICAgfVxufVxuZnVuY3Rpb24gX29iamVjdFNwcmVhZCh0YXJnZXQpIHtcbiAgICBmb3IodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXSAhPSBudWxsID8gYXJndW1lbnRzW2ldIDoge1xuICAgICAgICB9O1xuICAgICAgICB2YXIgb3duS2V5cyA9IE9iamVjdC5rZXlzKHNvdXJjZSk7XG4gICAgICAgIGlmICh0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICBvd25LZXlzID0gb3duS2V5cy5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzb3VyY2UpLmZpbHRlcihmdW5jdGlvbihzeW0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzb3VyY2UsIHN5bSkuZW51bWVyYWJsZTtcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgfVxuICAgICAgICBvd25LZXlzLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7XG4gICAgICAgICAgICBfZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHNvdXJjZVtrZXldKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB0YXJnZXQ7XG59XG5mdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoc291cmNlLCBleGNsdWRlZCkge1xuICAgIGlmIChzb3VyY2UgPT0gbnVsbCkgcmV0dXJuIHtcbiAgICB9O1xuICAgIHZhciB0YXJnZXQgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShzb3VyY2UsIGV4Y2x1ZGVkKTtcbiAgICB2YXIga2V5LCBpO1xuICAgIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG4gICAgICAgIHZhciBzb3VyY2VTeW1ib2xLZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzb3VyY2UpO1xuICAgICAgICBmb3IoaSA9IDA7IGkgPCBzb3VyY2VTeW1ib2xLZXlzLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgICAgIGtleSA9IHNvdXJjZVN5bWJvbEtleXNbaV07XG4gICAgICAgICAgICBpZiAoZXhjbHVkZWQuaW5kZXhPZihrZXkpID49IDApIGNvbnRpbnVlO1xuICAgICAgICAgICAgaWYgKCFPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoc291cmNlLCBrZXkpKSBjb250aW51ZTtcbiAgICAgICAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRhcmdldDtcbn1cbmZ1bmN0aW9uIF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKHNvdXJjZSwgZXhjbHVkZWQpIHtcbiAgICBpZiAoc291cmNlID09IG51bGwpIHJldHVybiB7XG4gICAgfTtcbiAgICB2YXIgdGFyZ2V0ID0ge1xuICAgIH07XG4gICAgdmFyIHNvdXJjZUtleXMgPSBPYmplY3Qua2V5cyhzb3VyY2UpO1xuICAgIHZhciBrZXksIGk7XG4gICAgZm9yKGkgPSAwOyBpIDwgc291cmNlS2V5cy5sZW5ndGg7IGkrKyl7XG4gICAgICAgIGtleSA9IHNvdXJjZUtleXNbaV07XG4gICAgICAgIGlmIChleGNsdWRlZC5pbmRleE9mKGtleSkgPj0gMCkgY29udGludWU7XG4gICAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV07XG4gICAgfVxuICAgIHJldHVybiB0YXJnZXQ7XG59XG5jb25zdCBTY3JpcHRDYWNoZSA9IG5ldyBNYXAoKTtcbmNvbnN0IExvYWRDYWNoZSA9IG5ldyBTZXQoKTtcbmNvbnN0IGlnbm9yZVByb3BzID0gW1xuICAgICdvbkxvYWQnLFxuICAgICdkYW5nZXJvdXNseVNldElubmVySFRNTCcsXG4gICAgJ2NoaWxkcmVuJyxcbiAgICAnb25FcnJvcicsXG4gICAgJ3N0cmF0ZWd5JywgXG5dO1xuY29uc3QgbG9hZFNjcmlwdCA9IChwcm9wcyk9PntcbiAgICBjb25zdCB7IHNyYyAsIGlkICwgb25Mb2FkID0oKT0+e1xuICAgIH0gLCBkYW5nZXJvdXNseVNldElubmVySFRNTCAsIGNoaWxkcmVuID0nJyAsIHN0cmF0ZWd5ID0nYWZ0ZXJJbnRlcmFjdGl2ZScgLCBvbkVycm9yICwgIH0gPSBwcm9wcztcbiAgICBjb25zdCBjYWNoZUtleSA9IGlkIHx8IHNyYztcbiAgICAvLyBTY3JpcHQgaGFzIGFscmVhZHkgbG9hZGVkXG4gICAgaWYgKGNhY2hlS2V5ICYmIExvYWRDYWNoZS5oYXMoY2FjaGVLZXkpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gQ29udGVudHMgb2YgdGhpcyBzY3JpcHQgYXJlIGFscmVhZHkgbG9hZGluZy9sb2FkZWRcbiAgICBpZiAoU2NyaXB0Q2FjaGUuaGFzKHNyYykpIHtcbiAgICAgICAgTG9hZENhY2hlLmFkZChjYWNoZUtleSk7XG4gICAgICAgIC8vIEV4ZWN1dGUgb25Mb2FkIHNpbmNlIHRoZSBzY3JpcHQgbG9hZGluZyBoYXMgYmVndW5cbiAgICAgICAgU2NyaXB0Q2FjaGUuZ2V0KHNyYykudGhlbihvbkxvYWQsIG9uRXJyb3IpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgY29uc3QgbG9hZFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KT0+e1xuICAgICAgICBlbC5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgaWYgKG9uTG9hZCkge1xuICAgICAgICAgICAgICAgIG9uTG9hZC5jYWxsKHRoaXMsIGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgIH0pO1xuICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgaWYgKG9uRXJyb3IpIHtcbiAgICAgICAgICAgIG9uRXJyb3IoZSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAoc3JjKSB7XG4gICAgICAgIFNjcmlwdENhY2hlLnNldChzcmMsIGxvYWRQcm9taXNlKTtcbiAgICB9XG4gICAgTG9hZENhY2hlLmFkZChjYWNoZUtleSk7XG4gICAgaWYgKGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MKSB7XG4gICAgICAgIGVsLmlubmVySFRNTCA9IGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLl9faHRtbCB8fCAnJztcbiAgICB9IGVsc2UgaWYgKGNoaWxkcmVuKSB7XG4gICAgICAgIGVsLnRleHRDb250ZW50ID0gdHlwZW9mIGNoaWxkcmVuID09PSAnc3RyaW5nJyA/IGNoaWxkcmVuIDogQXJyYXkuaXNBcnJheShjaGlsZHJlbikgPyBjaGlsZHJlbi5qb2luKCcnKSA6ICcnO1xuICAgIH0gZWxzZSBpZiAoc3JjKSB7XG4gICAgICAgIGVsLnNyYyA9IHNyYztcbiAgICB9XG4gICAgZm9yIChjb25zdCBbaywgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHByb3BzKSl7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IGlnbm9yZVByb3BzLmluY2x1ZGVzKGspKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhdHRyID0gX2hlYWRNYW5hZ2VyLkRPTUF0dHJpYnV0ZU5hbWVzW2tdIHx8IGsudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgZWwuc2V0QXR0cmlidXRlKGF0dHIsIHZhbHVlKTtcbiAgICB9XG4gICAgZWwuc2V0QXR0cmlidXRlKCdkYXRhLW5zY3JpcHQnLCBzdHJhdGVneSk7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbCk7XG59O1xuZnVuY3Rpb24gaGFuZGxlQ2xpZW50U2NyaXB0TG9hZChwcm9wcykge1xuICAgIGNvbnN0IHsgc3RyYXRlZ3kgPSdhZnRlckludGVyYWN0aXZlJyAgfSA9IHByb3BzO1xuICAgIGlmIChzdHJhdGVneSA9PT0gJ2FmdGVySW50ZXJhY3RpdmUnKSB7XG4gICAgICAgIGxvYWRTY3JpcHQocHJvcHMpO1xuICAgIH0gZWxzZSBpZiAoc3RyYXRlZ3kgPT09ICdsYXp5T25sb2FkJykge1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsICgpPT57XG4gICAgICAgICAgICAoMCwgX3JlcXVlc3RJZGxlQ2FsbGJhY2spLnJlcXVlc3RJZGxlQ2FsbGJhY2soKCk9PmxvYWRTY3JpcHQocHJvcHMpXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5mdW5jdGlvbiBsb2FkTGF6eVNjcmlwdChwcm9wcykge1xuICAgIGlmIChkb2N1bWVudC5yZWFkeVN0YXRlID09PSAnY29tcGxldGUnKSB7XG4gICAgICAgICgwLCBfcmVxdWVzdElkbGVDYWxsYmFjaykucmVxdWVzdElkbGVDYWxsYmFjaygoKT0+bG9hZFNjcmlwdChwcm9wcylcbiAgICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsICgpPT57XG4gICAgICAgICAgICAoMCwgX3JlcXVlc3RJZGxlQ2FsbGJhY2spLnJlcXVlc3RJZGxlQ2FsbGJhY2soKCk9PmxvYWRTY3JpcHQocHJvcHMpXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5mdW5jdGlvbiBpbml0U2NyaXB0TG9hZGVyKHNjcmlwdExvYWRlckl0ZW1zKSB7XG4gICAgc2NyaXB0TG9hZGVySXRlbXMuZm9yRWFjaChoYW5kbGVDbGllbnRTY3JpcHRMb2FkKTtcbn1cbmZ1bmN0aW9uIFNjcmlwdChwcm9wcykge1xuICAgIGNvbnN0IHsgc3JjID0nJyAsIG9uTG9hZCA9KCk9PntcbiAgICB9ICwgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgLCBzdHJhdGVneSA9J2FmdGVySW50ZXJhY3RpdmUnICwgb25FcnJvciAgfSA9IHByb3BzLCByZXN0UHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMocHJvcHMsIFtcInNyY1wiLCBcIm9uTG9hZFwiLCBcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCIsIFwic3RyYXRlZ3lcIiwgXCJvbkVycm9yXCJdKTtcbiAgICAvLyBDb250ZXh0IGlzIGF2YWlsYWJsZSBvbmx5IGR1cmluZyBTU1JcbiAgICBjb25zdCB7IHVwZGF0ZVNjcmlwdHMgLCBzY3JpcHRzICwgZ2V0SXNTc3IgIH0gPSAoMCwgX3JlYWN0KS51c2VDb250ZXh0KF9oZWFkTWFuYWdlckNvbnRleHQuSGVhZE1hbmFnZXJDb250ZXh0KTtcbiAgICAoMCwgX3JlYWN0KS51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgaWYgKHN0cmF0ZWd5ID09PSAnYWZ0ZXJJbnRlcmFjdGl2ZScpIHtcbiAgICAgICAgICAgIGxvYWRTY3JpcHQocHJvcHMpO1xuICAgICAgICB9IGVsc2UgaWYgKHN0cmF0ZWd5ID09PSAnbGF6eU9ubG9hZCcpIHtcbiAgICAgICAgICAgIGxvYWRMYXp5U2NyaXB0KHByb3BzKTtcbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgcHJvcHMsXG4gICAgICAgIHN0cmF0ZWd5XG4gICAgXSk7XG4gICAgaWYgKHN0cmF0ZWd5ID09PSAnYmVmb3JlSW50ZXJhY3RpdmUnKSB7XG4gICAgICAgIGlmICh1cGRhdGVTY3JpcHRzKSB7XG4gICAgICAgICAgICBzY3JpcHRzLmJlZm9yZUludGVyYWN0aXZlID0gKHNjcmlwdHMuYmVmb3JlSW50ZXJhY3RpdmUgfHwgW10pLmNvbmNhdChbXG4gICAgICAgICAgICAgICAgX29iamVjdFNwcmVhZCh7XG4gICAgICAgICAgICAgICAgICAgIHNyYyxcbiAgICAgICAgICAgICAgICAgICAgb25Mb2FkLFxuICAgICAgICAgICAgICAgICAgICBvbkVycm9yXG4gICAgICAgICAgICAgICAgfSwgcmVzdFByb3BzKSwgXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgICAgIHVwZGF0ZVNjcmlwdHMoc2NyaXB0cyk7XG4gICAgICAgIH0gZWxzZSBpZiAoZ2V0SXNTc3IgJiYgZ2V0SXNTc3IoKSkge1xuICAgICAgICAgICAgLy8gU2NyaXB0IGhhcyBhbHJlYWR5IGxvYWRlZCBkdXJpbmcgU1NSXG4gICAgICAgICAgICBMb2FkQ2FjaGUuYWRkKHJlc3RQcm9wcy5pZCB8fCBzcmMpO1xuICAgICAgICB9IGVsc2UgaWYgKGdldElzU3NyICYmICFnZXRJc1NzcigpKSB7XG4gICAgICAgICAgICBsb2FkU2NyaXB0KHByb3BzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn1cbnZhciBfZGVmYXVsdCA9IFNjcmlwdDtcbmV4cG9ydHMuZGVmYXVsdCA9IF9kZWZhdWx0O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zY3JpcHQuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiaW5pdFNjcmlwdExvYWRlciIsImRlZmF1bHQiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfaGVhZE1hbmFnZXJDb250ZXh0IiwiX2hlYWRNYW5hZ2VyIiwiX3JlcXVlc3RJZGxlQ2FsbGJhY2siLCJfZGVmaW5lUHJvcGVydHkiLCJvYmoiLCJrZXkiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJfX2VzTW9kdWxlIiwibmV3T2JqIiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImdldCIsInNldCIsIl9vYmplY3RTcHJlYWQiLCJ0YXJnZXQiLCJpIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwic291cmNlIiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJjb25jYXQiLCJmaWx0ZXIiLCJzeW0iLCJmb3JFYWNoIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiZXhjbHVkZWQiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZSIsInNvdXJjZVN5bWJvbEtleXMiLCJpbmRleE9mIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJzb3VyY2VLZXlzIiwiU2NyaXB0Q2FjaGUiLCJNYXAiLCJMb2FkQ2FjaGUiLCJTZXQiLCJpZ25vcmVQcm9wcyIsImxvYWRTY3JpcHQiLCJwcm9wcyIsInNyYyIsImlkIiwib25Mb2FkIiwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiLCJjaGlsZHJlbiIsInN0cmF0ZWd5Iiwib25FcnJvciIsImNhY2hlS2V5IiwiaGFzIiwiYWRkIiwidGhlbiIsImVsIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwibG9hZFByb21pc2UiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImFkZEV2ZW50TGlzdGVuZXIiLCJlIiwiY2F0Y2giLCJpbm5lckhUTUwiLCJfX2h0bWwiLCJ0ZXh0Q29udGVudCIsIkFycmF5IiwiaXNBcnJheSIsImpvaW4iLCJrIiwiZW50cmllcyIsInVuZGVmaW5lZCIsImluY2x1ZGVzIiwiYXR0ciIsIkRPTUF0dHJpYnV0ZU5hbWVzIiwidG9Mb3dlckNhc2UiLCJzZXRBdHRyaWJ1dGUiLCJib2R5IiwiYXBwZW5kQ2hpbGQiLCJoYW5kbGVDbGllbnRTY3JpcHRMb2FkIiwid2luZG93IiwicmVxdWVzdElkbGVDYWxsYmFjayIsImxvYWRMYXp5U2NyaXB0IiwicmVhZHlTdGF0ZSIsInNjcmlwdExvYWRlckl0ZW1zIiwiU2NyaXB0IiwicmVzdFByb3BzIiwidXBkYXRlU2NyaXB0cyIsInNjcmlwdHMiLCJnZXRJc1NzciIsInVzZUNvbnRleHQiLCJIZWFkTWFuYWdlckNvbnRleHQiLCJ1c2VFZmZlY3QiLCJiZWZvcmVJbnRlcmFjdGl2ZSIsIl9kZWZhdWx0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/script.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/pages/_document.js": +/*!***************************************************!*\ + !*** ./node_modules/next/dist/pages/_document.js ***! + \***************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +eval("\n\nconst _excluded = [\"strategy\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"DocumentContext\", ({\n enumerable: true,\n get: function () {\n return _utils.DocumentContext;\n }\n}));\nObject.defineProperty(exports, \"DocumentInitialProps\", ({\n enumerable: true,\n get: function () {\n return _utils.DocumentInitialProps;\n }\n}));\nObject.defineProperty(exports, \"DocumentProps\", ({\n enumerable: true,\n get: function () {\n return _utils.DocumentProps;\n }\n}));\nexports.Html = Html;\nexports.Main = Main;\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _constants = __webpack_require__(/*! ../shared/lib/constants */ \"../shared/lib/constants\");\n\nvar _utils = __webpack_require__(/*! ../shared/lib/utils */ \"../shared/lib/utils\");\n\nvar _getPageFiles = __webpack_require__(/*! ../server/get-page-files */ \"../server/get-page-files\");\n\nvar _utils1 = __webpack_require__(/*! ../server/utils */ \"../server/utils\");\n\nvar _htmlescape = __webpack_require__(/*! ../server/htmlescape */ \"../server/htmlescape\");\n\nvar _script = _interopRequireDefault(__webpack_require__(/*! ../client/script */ \"./node_modules/next/dist/client/script.js\"));\n\nvar _isError = _interopRequireDefault(__webpack_require__(/*! ../lib/is-error */ \"./node_modules/next/dist/lib/is-error.js\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n}\n\nfunction getDocumentFiles(buildManifest, pathname, inAmpMode) {\n const sharedFiles = (0, _getPageFiles).getPageFiles(buildManifest, '/_app');\n const pageFiles = inAmpMode ? [] : (0, _getPageFiles).getPageFiles(buildManifest, pathname);\n return {\n sharedFiles,\n pageFiles,\n allFiles: [...new Set([...sharedFiles, ...pageFiles])]\n };\n}\n\nfunction getPolyfillScripts(context, props) {\n // polyfills.js has to be rendered as nomodule without async\n // It also has to be the first script to load\n const {\n assetPrefix,\n buildManifest,\n devOnlyCacheBusterQueryString,\n disableOptimizedLoading\n } = context;\n return buildManifest.polyfillFiles.filter(polyfill => polyfill.endsWith('.js') && !polyfill.endsWith('.module.js')).map(polyfill => /*#__PURE__*/_react.default.createElement(\"script\", {\n key: polyfill,\n defer: !disableOptimizedLoading,\n nonce: props.nonce,\n crossOrigin: props.crossOrigin || undefined,\n noModule: true,\n src: `${assetPrefix}/_next/${polyfill}${devOnlyCacheBusterQueryString}`\n }));\n}\n\nfunction getPreNextScripts(context, props) {\n const {\n scriptLoader,\n disableOptimizedLoading\n } = context;\n return (scriptLoader.beforeInteractive || []).map((file, index) => {\n const {\n strategy\n } = file,\n scriptProps = _objectWithoutProperties(file, _excluded);\n\n return /*#__PURE__*/_react.default.createElement(\"script\", Object.assign({}, scriptProps, {\n key: scriptProps.src || index,\n defer: !disableOptimizedLoading,\n nonce: props.nonce,\n \"data-nscript\": \"beforeInteractive\",\n crossOrigin: props.crossOrigin || undefined\n }));\n });\n}\n\nfunction getDynamicChunks(context, props, files) {\n const {\n dynamicImports,\n assetPrefix,\n isDevelopment,\n devOnlyCacheBusterQueryString,\n disableOptimizedLoading\n } = context;\n return dynamicImports.map(file => {\n if (!file.endsWith('.js') || files.allFiles.includes(file)) return null;\n return /*#__PURE__*/_react.default.createElement(\"script\", {\n async: !isDevelopment && disableOptimizedLoading,\n defer: !disableOptimizedLoading,\n key: file,\n src: `${assetPrefix}/_next/${encodeURI(file)}${devOnlyCacheBusterQueryString}`,\n nonce: props.nonce,\n crossOrigin: props.crossOrigin || undefined\n });\n });\n}\n\nfunction getScripts(context, props, files) {\n var ref;\n const {\n assetPrefix,\n buildManifest,\n isDevelopment,\n devOnlyCacheBusterQueryString,\n disableOptimizedLoading\n } = context;\n const normalScripts = files.allFiles.filter(file => file.endsWith('.js'));\n const lowPriorityScripts = (ref = buildManifest.lowPriorityFiles) === null || ref === void 0 ? void 0 : ref.filter(file => file.endsWith('.js'));\n return [...normalScripts, ...lowPriorityScripts].map(file => {\n return /*#__PURE__*/_react.default.createElement(\"script\", {\n key: file,\n src: `${assetPrefix}/_next/${encodeURI(file)}${devOnlyCacheBusterQueryString}`,\n nonce: props.nonce,\n async: !isDevelopment && disableOptimizedLoading,\n defer: !disableOptimizedLoading,\n crossOrigin: props.crossOrigin || undefined\n });\n });\n}\n\nclass Document extends _react.Component {\n /**\n * `getInitialProps` hook returns the context object with the addition of `renderPage`.\n * `renderPage` callback executes `React` rendering logic synchronously to support server-rendering wrappers\n */\n static getInitialProps(ctx) {\n return ctx.defaultGetInitialProps(ctx);\n }\n\n render() {\n return /*#__PURE__*/_react.default.createElement(Html, null, /*#__PURE__*/_react.default.createElement(Head, null), /*#__PURE__*/_react.default.createElement(\"body\", null, /*#__PURE__*/_react.default.createElement(Main, null), /*#__PURE__*/_react.default.createElement(NextScript, null)));\n }\n\n}\n\nexports[\"default\"] = Document;\n\nfunction Html(props) {\n const {\n inAmpMode,\n docComponentsRendered,\n locale\n } = (0, _react).useContext(_utils.HtmlContext);\n docComponentsRendered.Html = true;\n return /*#__PURE__*/_react.default.createElement(\"html\", Object.assign({}, props, {\n lang: props.lang || locale || undefined,\n amp: inAmpMode ? '' : undefined,\n \"data-ampdevmode\": inAmpMode && true ? '' : undefined\n }));\n}\n\nfunction AmpStyles({\n styles\n}) {\n if (!styles) return null; // try to parse styles from fragment for backwards compat\n\n const curStyles = Array.isArray(styles) ? styles : [];\n\n if ( // @ts-ignore Property 'props' does not exist on type ReactElement\n styles.props && // @ts-ignore Property 'props' does not exist on type ReactElement\n Array.isArray(styles.props.children)) {\n const hasStyles = el => {\n var ref, ref1;\n return el === null || el === void 0 ? void 0 : (ref = el.props) === null || ref === void 0 ? void 0 : (ref1 = ref.dangerouslySetInnerHTML) === null || ref1 === void 0 ? void 0 : ref1.__html;\n }; // @ts-ignore Property 'props' does not exist on type ReactElement\n\n\n styles.props.children.forEach(child => {\n if (Array.isArray(child)) {\n child.forEach(el => hasStyles(el) && curStyles.push(el));\n } else if (hasStyles(child)) {\n curStyles.push(child);\n }\n });\n }\n /* Add custom styles before AMP styles to prevent accidental overrides */\n\n\n return /*#__PURE__*/_react.default.createElement(\"style\", {\n \"amp-custom\": \"\",\n dangerouslySetInnerHTML: {\n __html: curStyles.map(style => style.props.dangerouslySetInnerHTML.__html).join('').replace(/\\/\\*# sourceMappingURL=.*\\*\\//g, '').replace(/\\/\\*@ sourceURL=.*?\\*\\//g, '')\n }\n });\n}\n\nclass Head extends _react.Component {\n getCssLinks(files) {\n const {\n assetPrefix,\n devOnlyCacheBusterQueryString,\n dynamicImports\n } = this.context;\n const cssFiles = files.allFiles.filter(f => f.endsWith('.css'));\n const sharedFiles = new Set(files.sharedFiles); // Unmanaged files are CSS files that will be handled directly by the\n // webpack runtime (`mini-css-extract-plugin`).\n\n let unmangedFiles = new Set([]);\n let dynamicCssFiles = Array.from(new Set(dynamicImports.filter(file => file.endsWith('.css'))));\n\n if (dynamicCssFiles.length) {\n const existing = new Set(cssFiles);\n dynamicCssFiles = dynamicCssFiles.filter(f => !(existing.has(f) || sharedFiles.has(f)));\n unmangedFiles = new Set(dynamicCssFiles);\n cssFiles.push(...dynamicCssFiles);\n }\n\n let cssLinkElements = [];\n cssFiles.forEach(file => {\n const isSharedFile = sharedFiles.has(file);\n\n if (true) {\n cssLinkElements.push( /*#__PURE__*/_react.default.createElement(\"link\", {\n key: `${file}-preload`,\n nonce: this.props.nonce,\n rel: \"preload\",\n href: `${assetPrefix}/_next/${encodeURI(file)}${devOnlyCacheBusterQueryString}`,\n as: \"style\",\n crossOrigin: this.props.crossOrigin || undefined\n }));\n }\n\n const isUnmanagedFile = unmangedFiles.has(file);\n cssLinkElements.push( /*#__PURE__*/_react.default.createElement(\"link\", {\n key: file,\n nonce: this.props.nonce,\n rel: \"stylesheet\",\n href: `${assetPrefix}/_next/${encodeURI(file)}${devOnlyCacheBusterQueryString}`,\n crossOrigin: this.props.crossOrigin || undefined,\n \"data-n-g\": isUnmanagedFile ? undefined : isSharedFile ? '' : undefined,\n \"data-n-p\": isUnmanagedFile ? undefined : isSharedFile ? undefined : ''\n }));\n });\n\n if (false) {}\n\n return cssLinkElements.length === 0 ? null : cssLinkElements;\n }\n\n getPreloadDynamicChunks() {\n const {\n dynamicImports,\n assetPrefix,\n devOnlyCacheBusterQueryString\n } = this.context;\n return dynamicImports.map(file => {\n if (!file.endsWith('.js')) {\n return null;\n }\n\n return /*#__PURE__*/_react.default.createElement(\"link\", {\n rel: \"preload\",\n key: file,\n href: `${assetPrefix}/_next/${encodeURI(file)}${devOnlyCacheBusterQueryString}`,\n as: \"script\",\n nonce: this.props.nonce,\n crossOrigin: this.props.crossOrigin || undefined\n });\n }) // Filter out nulled scripts\n .filter(Boolean);\n }\n\n getPreloadMainLinks(files) {\n const {\n assetPrefix,\n devOnlyCacheBusterQueryString,\n scriptLoader\n } = this.context;\n const preloadFiles = files.allFiles.filter(file => {\n return file.endsWith('.js');\n });\n return [...(scriptLoader.beforeInteractive || []).map(file => /*#__PURE__*/_react.default.createElement(\"link\", {\n key: file.src,\n nonce: this.props.nonce,\n rel: \"preload\",\n href: file.src,\n as: \"script\",\n crossOrigin: this.props.crossOrigin || undefined\n })), ...preloadFiles.map(file => /*#__PURE__*/_react.default.createElement(\"link\", {\n key: file,\n nonce: this.props.nonce,\n rel: \"preload\",\n href: `${assetPrefix}/_next/${encodeURI(file)}${devOnlyCacheBusterQueryString}`,\n as: \"script\",\n crossOrigin: this.props.crossOrigin || undefined\n }))];\n }\n\n getDynamicChunks(files) {\n return getDynamicChunks(this.context, this.props, files);\n }\n\n getPreNextScripts() {\n return getPreNextScripts(this.context, this.props);\n }\n\n getScripts(files) {\n return getScripts(this.context, this.props, files);\n }\n\n getPolyfillScripts() {\n return getPolyfillScripts(this.context, this.props);\n }\n\n handleDocumentScriptLoaderItems(children) {\n const {\n scriptLoader\n } = this.context;\n const scriptLoaderItems = [];\n const filteredChildren = [];\n\n _react.default.Children.forEach(children, child => {\n if (child.type === _script.default) {\n if (child.props.strategy === 'beforeInteractive') {\n scriptLoader.beforeInteractive = (scriptLoader.beforeInteractive || []).concat([_objectSpread({}, child.props)]);\n return;\n } else if (['lazyOnload', 'afterInteractive'].includes(child.props.strategy)) {\n scriptLoaderItems.push(child.props);\n return;\n }\n }\n\n filteredChildren.push(child);\n });\n\n this.context.__NEXT_DATA__.scriptLoader = scriptLoaderItems;\n return filteredChildren;\n }\n\n makeStylesheetInert(node) {\n return _react.default.Children.map(node, c => {\n if (c.type === 'link' && c.props['href'] && _constants.OPTIMIZED_FONT_PROVIDERS.some(({\n url\n }) => c.props['href'].startsWith(url))) {\n const newProps = _objectSpread({}, c.props || {});\n\n newProps['data-href'] = newProps['href'];\n newProps['href'] = undefined;\n return /*#__PURE__*/_react.default.cloneElement(c, newProps);\n } else if (c.props && c.props['children']) {\n c.props['children'] = this.makeStylesheetInert(c.props['children']);\n }\n\n return c;\n });\n }\n\n render() {\n const {\n styles,\n ampPath,\n inAmpMode,\n hybridAmp,\n canonicalBase,\n __NEXT_DATA__,\n dangerousAsPath,\n headTags,\n unstable_runtimeJS,\n unstable_JsPreload,\n disableOptimizedLoading,\n useMaybeDeferContent\n } = this.context;\n const disableRuntimeJS = unstable_runtimeJS === false;\n const disableJsPreload = unstable_JsPreload === false || !disableOptimizedLoading;\n this.context.docComponentsRendered.Head = true;\n let {\n head\n } = this.context;\n let cssPreloads = [];\n let otherHeadElements = [];\n\n if (head) {\n head.forEach(c => {\n if (c && c.type === 'link' && c.props['rel'] === 'preload' && c.props['as'] === 'style') {\n cssPreloads.push(c);\n } else {\n c && otherHeadElements.push(c);\n }\n });\n head = cssPreloads.concat(otherHeadElements);\n }\n\n let children = _react.default.Children.toArray(this.props.children).filter(Boolean); // show a warning if Head contains (only in development)\n\n\n if (true) {\n children = _react.default.Children.map(children, child => {\n var ref;\n const isReactHelmet = child === null || child === void 0 ? void 0 : (ref = child.props) === null || ref === void 0 ? void 0 : ref['data-react-helmet'];\n\n if (!isReactHelmet) {\n var ref6;\n\n if ((child === null || child === void 0 ? void 0 : child.type) === 'title') {\n console.warn(\"Warning: <title> should not be used in _document.js's <Head>. https://nextjs.org/docs/messages/no-document-title\");\n } else if ((child === null || child === void 0 ? void 0 : child.type) === 'meta' && (child === null || child === void 0 ? void 0 : (ref6 = child.props) === null || ref6 === void 0 ? void 0 : ref6.name) === 'viewport') {\n console.warn(\"Warning: viewport meta tags should not be used in _document.js's <Head>. https://nextjs.org/docs/messages/no-document-viewport-meta\");\n }\n }\n\n return child;\n });\n if (this.props.crossOrigin) console.warn('Warning: `Head` attribute `crossOrigin` is deprecated. https://nextjs.org/docs/messages/doc-crossorigin-deprecated');\n }\n\n if (false) {}\n\n children = this.handleDocumentScriptLoaderItems(children);\n let hasAmphtmlRel = false;\n let hasCanonicalRel = false; // show warning and remove conflicting amp head tags\n\n head = _react.default.Children.map(head || [], child => {\n if (!child) return child;\n const {\n type,\n props\n } = child;\n\n if (inAmpMode) {\n let badProp = '';\n\n if (type === 'meta' && props.name === 'viewport') {\n badProp = 'name=\"viewport\"';\n } else if (type === 'link' && props.rel === 'canonical') {\n hasCanonicalRel = true;\n } else if (type === 'script') {\n // only block if\n // 1. it has a src and isn't pointing to ampproject's CDN\n // 2. it is using dangerouslySetInnerHTML without a type or\n // a type of text/javascript\n if (props.src && props.src.indexOf('ampproject') < -1 || props.dangerouslySetInnerHTML && (!props.type || props.type === 'text/javascript')) {\n badProp = '<script';\n Object.keys(props).forEach(prop => {\n badProp += ` ${prop}=\"${props[prop]}\"`;\n });\n badProp += '/>';\n }\n }\n\n if (badProp) {\n console.warn(`Found conflicting amp tag \"${child.type}\" with conflicting prop ${badProp} in ${__NEXT_DATA__.page}. https://nextjs.org/docs/messages/conflicting-amp-tag`);\n return null;\n }\n } else {\n // non-amp mode\n if (type === 'link' && props.rel === 'amphtml') {\n hasAmphtmlRel = true;\n }\n }\n\n return child;\n });\n const files = getDocumentFiles(this.context.buildManifest, this.context.__NEXT_DATA__.page, inAmpMode); // Must use nested component to allow use of a custom hook\n\n const DeferrableHead = () => {\n const getDynamicHeadContent = () => {\n return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, head, /*#__PURE__*/_react.default.createElement(\"meta\", {\n name: \"next-head-count\",\n content: _react.default.Children.count(head || []).toString()\n }));\n };\n\n const getDynamicScriptPreloads = () => {\n return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !disableRuntimeJS && !disableJsPreload && this.getPreloadDynamicChunks(), !disableRuntimeJS && !disableJsPreload && this.getPreloadMainLinks(files));\n };\n\n const getDynamicScriptContent = () => {\n return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !disableOptimizedLoading && !disableRuntimeJS && this.getPreNextScripts(), !disableOptimizedLoading && !disableRuntimeJS && this.getDynamicChunks(files), !disableOptimizedLoading && !disableRuntimeJS && this.getScripts(files));\n };\n\n const [isDeferred] = useMaybeDeferContent('HEAD', () => {\n return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, getDynamicHeadContent(), getDynamicScriptPreloads(), getDynamicScriptContent());\n });\n\n var _nonce, _nonce1;\n\n return /*#__PURE__*/_react.default.createElement(\"head\", Object.assign({}, this.props), true && this.context.isDevelopment && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(\"style\", {\n \"data-next-hide-fouc\": true,\n \"data-ampdevmode\": inAmpMode ? 'true' : undefined,\n dangerouslySetInnerHTML: {\n __html: `body{display:none}`\n }\n }), /*#__PURE__*/_react.default.createElement(\"noscript\", {\n \"data-next-hide-fouc\": true,\n \"data-ampdevmode\": inAmpMode ? 'true' : undefined\n }, /*#__PURE__*/_react.default.createElement(\"style\", {\n dangerouslySetInnerHTML: {\n __html: `body{display:block}`\n }\n }))), children, false && /*#__PURE__*/0, !isDeferred && getDynamicHeadContent(), inAmpMode && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(\"meta\", {\n name: \"viewport\",\n content: \"width=device-width,minimum-scale=1,initial-scale=1\"\n }), !hasCanonicalRel && /*#__PURE__*/_react.default.createElement(\"link\", {\n rel: \"canonical\",\n href: canonicalBase + (0, _utils1).cleanAmpPath(dangerousAsPath)\n }), /*#__PURE__*/_react.default.createElement(\"link\", {\n rel: \"preload\",\n as: \"script\",\n href: \"https://cdn.ampproject.org/v0.js\"\n }), /*#__PURE__*/_react.default.createElement(AmpStyles, {\n styles: styles\n }), /*#__PURE__*/_react.default.createElement(\"style\", {\n \"amp-boilerplate\": \"\",\n dangerouslySetInnerHTML: {\n __html: `body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}`\n }\n }), /*#__PURE__*/_react.default.createElement(\"noscript\", null, /*#__PURE__*/_react.default.createElement(\"style\", {\n \"amp-boilerplate\": \"\",\n dangerouslySetInnerHTML: {\n __html: `body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}`\n }\n })), /*#__PURE__*/_react.default.createElement(\"script\", {\n async: true,\n src: \"https://cdn.ampproject.org/v0.js\"\n })), !inAmpMode && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !hasAmphtmlRel && hybridAmp && /*#__PURE__*/_react.default.createElement(\"link\", {\n rel: \"amphtml\",\n href: canonicalBase + getAmpPath(ampPath, dangerousAsPath)\n }), true && this.getCssLinks(files), true && /*#__PURE__*/_react.default.createElement(\"noscript\", {\n \"data-n-css\": (_nonce = this.props.nonce) !== null && _nonce !== void 0 ? _nonce : ''\n }), false && /*#__PURE__*/0, !isDeferred && getDynamicScriptPreloads(), !disableOptimizedLoading && !disableRuntimeJS && this.getPolyfillScripts(), !isDeferred && getDynamicScriptContent(), false && 0, false && /*#__PURE__*/0, this.context.isDevelopment && // this element is used to mount development styles so the\n // ordering matches production\n // (by default, style-loader injects at the bottom of <head />)\n\n /*#__PURE__*/\n _react.default.createElement(\"noscript\", {\n id: \"__next_css__DO_NOT_USE__\"\n }), styles || null), /*#__PURE__*/_react.default.createElement(_react.default.Fragment, {}, ...(headTags || [])));\n };\n\n return /*#__PURE__*/_react.default.createElement(DeferrableHead, null);\n }\n\n}\n\nexports.Head = Head;\nHead.contextType = _utils.HtmlContext;\n\nfunction Main({\n children\n}) {\n const {\n inAmpMode,\n docComponentsRendered,\n useMainContent\n } = (0, _react).useContext(_utils.HtmlContext);\n const content = useMainContent(children);\n docComponentsRendered.Main = true;\n if (inAmpMode) return content;\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n id: \"__next\"\n }, content);\n}\n\nclass NextScript extends _react.Component {\n getDynamicChunks(files) {\n return getDynamicChunks(this.context, this.props, files);\n }\n\n getPreNextScripts() {\n return getPreNextScripts(this.context, this.props);\n }\n\n getScripts(files) {\n return getScripts(this.context, this.props, files);\n }\n\n getPolyfillScripts() {\n return getPolyfillScripts(this.context, this.props);\n }\n\n static getInlineScriptSource(context) {\n const {\n __NEXT_DATA__\n } = context;\n\n try {\n const data = JSON.stringify(__NEXT_DATA__);\n\n if (true) {\n const bytes = Buffer.from(data).byteLength;\n\n const prettyBytes = (__webpack_require__(/*! ../lib/pretty-bytes */ \"./node_modules/next/dist/lib/pretty-bytes.js\")[\"default\"]);\n\n if (bytes > 128 * 1000) {\n console.warn(`Warning: data for page \"${__NEXT_DATA__.page}\" is ${prettyBytes(bytes)}, this amount of data can reduce performance.\\nSee more info here: https://nextjs.org/docs/messages/large-page-data`);\n }\n }\n\n return (0, _htmlescape).htmlEscapeJsonString(data);\n } catch (err) {\n if ((0, _isError).default(err) && err.message.indexOf('circular structure')) {\n throw new Error(`Circular structure in \"getInitialProps\" result of page \"${__NEXT_DATA__.page}\". https://nextjs.org/docs/messages/circular-structure`);\n }\n\n throw err;\n }\n }\n\n render() {\n const {\n assetPrefix,\n inAmpMode,\n buildManifest,\n unstable_runtimeJS,\n docComponentsRendered,\n devOnlyCacheBusterQueryString,\n disableOptimizedLoading,\n useMaybeDeferContent\n } = this.context;\n const disableRuntimeJS = unstable_runtimeJS === false;\n docComponentsRendered.NextScript = true; // Must nest component to use custom hook\n\n const DeferrableNextScript = () => {\n const [, content] = useMaybeDeferContent('NEXT_SCRIPT', () => {\n if (inAmpMode) {\n const ampDevFiles = [...buildManifest.devFiles, ...buildManifest.polyfillFiles, ...buildManifest.ampDevFiles];\n return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, disableRuntimeJS ? null : /*#__PURE__*/_react.default.createElement(\"script\", {\n id: \"__NEXT_DATA__\",\n type: \"application/json\",\n nonce: this.props.nonce,\n crossOrigin: this.props.crossOrigin || undefined,\n dangerouslySetInnerHTML: {\n __html: NextScript.getInlineScriptSource(this.context)\n },\n \"data-ampdevmode\": true\n }), ampDevFiles.map(file => /*#__PURE__*/_react.default.createElement(\"script\", {\n key: file,\n src: `${assetPrefix}/_next/${file}${devOnlyCacheBusterQueryString}`,\n nonce: this.props.nonce,\n crossOrigin: this.props.crossOrigin || undefined,\n \"data-ampdevmode\": true\n })));\n }\n\n if (true) {\n if (this.props.crossOrigin) console.warn('Warning: `NextScript` attribute `crossOrigin` is deprecated. https://nextjs.org/docs/messages/doc-crossorigin-deprecated');\n }\n\n const files = getDocumentFiles(this.context.buildManifest, this.context.__NEXT_DATA__.page, inAmpMode);\n return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !disableRuntimeJS && buildManifest.devFiles ? buildManifest.devFiles.map(file => /*#__PURE__*/_react.default.createElement(\"script\", {\n key: file,\n src: `${assetPrefix}/_next/${encodeURI(file)}${devOnlyCacheBusterQueryString}`,\n nonce: this.props.nonce,\n crossOrigin: this.props.crossOrigin || undefined\n })) : null, disableRuntimeJS ? null : /*#__PURE__*/_react.default.createElement(\"script\", {\n id: \"__NEXT_DATA__\",\n type: \"application/json\",\n nonce: this.props.nonce,\n crossOrigin: this.props.crossOrigin || undefined,\n dangerouslySetInnerHTML: {\n __html: NextScript.getInlineScriptSource(this.context)\n }\n }), disableOptimizedLoading && !disableRuntimeJS && this.getPolyfillScripts(), disableOptimizedLoading && !disableRuntimeJS && this.getPreNextScripts(), disableOptimizedLoading && !disableRuntimeJS && this.getDynamicChunks(files), disableOptimizedLoading && !disableRuntimeJS && this.getScripts(files));\n });\n\n if (inAmpMode && false) {}\n\n return content;\n };\n\n return /*#__PURE__*/_react.default.createElement(DeferrableNextScript, null);\n }\n\n}\n\nexports.NextScript = NextScript;\nNextScript.contextType = _utils.HtmlContext;\nNextScript.safariNomoduleFix = '!function(){var e=document,t=e.createElement(\"script\");if(!(\"noModule\"in t)&&\"onbeforeload\"in t){var n=!1;e.addEventListener(\"beforeload\",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute(\"nomodule\")||!n)return;e.preventDefault()},!0),t.type=\"module\",t.src=\".\",e.head.appendChild(t),t.remove()}}();';\n\nfunction getAmpPath(ampPath, asPath) {\n return ampPath || `${asPath}${asPath.includes('?') ? '&' : '?'}amp=1`;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3BhZ2VzL19kb2N1bWVudC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7Ozs7Ozs7Ozs7Ozs7QUFDYkEsOENBQTZDO0FBQ3pDRyxFQUFBQSxLQUFLLEVBQUU7QUFEa0MsQ0FBN0M7QUFHQUgsbURBQWtEO0FBQzlDSSxFQUFBQSxVQUFVLEVBQUUsSUFEa0M7QUFFOUNDLEVBQUFBLEdBQUcsRUFBRSxZQUFXO0FBQ1osV0FBT0MsTUFBTSxDQUFDQyxlQUFkO0FBQ0g7QUFKNkMsQ0FBbEQ7QUFNQVAsd0RBQXVEO0FBQ25ESSxFQUFBQSxVQUFVLEVBQUUsSUFEdUM7QUFFbkRDLEVBQUFBLEdBQUcsRUFBRSxZQUFXO0FBQ1osV0FBT0MsTUFBTSxDQUFDRSxvQkFBZDtBQUNIO0FBSmtELENBQXZEO0FBTUFSLGlEQUFnRDtBQUM1Q0ksRUFBQUEsVUFBVSxFQUFFLElBRGdDO0FBRTVDQyxFQUFBQSxHQUFHLEVBQUUsWUFBVztBQUNaLFdBQU9DLE1BQU0sQ0FBQ0csYUFBZDtBQUNIO0FBSjJDLENBQWhEO0FBTUFQLFlBQUEsR0FBZVEsSUFBZjtBQUNBUixZQUFBLEdBQWVTLElBQWY7QUFDQVQsa0JBQUEsR0FBa0IsS0FBSyxDQUF2Qjs7QUFDQSxJQUFJVyxNQUFNLEdBQUdDLHVCQUF1QixDQUFDQyxtQkFBTyxDQUFDLG9CQUFELENBQVIsQ0FBcEM7O0FBQ0EsSUFBSUMsVUFBVSxHQUFHRCxtQkFBTyxDQUFDLHdEQUFELENBQXhCOztBQUNBLElBQUlULE1BQU0sR0FBR1MsbUJBQU8sQ0FBQyxnREFBRCxDQUFwQjs7QUFDQSxJQUFJRSxhQUFhLEdBQUdGLG1CQUFPLENBQUMsMERBQUQsQ0FBM0I7O0FBQ0EsSUFBSUcsT0FBTyxHQUFHSCxtQkFBTyxDQUFDLHdDQUFELENBQXJCOztBQUNBLElBQUlJLFdBQVcsR0FBR0osbUJBQU8sQ0FBQyxrREFBRCxDQUF6Qjs7QUFDQSxJQUFJSyxPQUFPLEdBQUdDLHNCQUFzQixDQUFDTixtQkFBTyxD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Qk4sS0FBaEIsQ0FkbFEsQ0FBckI7QUFlSCxPQTVDdUMsQ0FBeEM7O0FBNkNBLFVBQUluQyxTQUFTLFNBQWIsRUFBd0QsRUFFdkQ7O0FBQ0QsYUFBT2dKLE9BQVA7QUFDSCxLQWxERDs7QUFtREEsV0FBTyxhQUFjdkssTUFBTSxDQUFDRCxPQUFQLENBQWV5QyxhQUFmLENBQTZCMEosb0JBQTdCLEVBQW1ELElBQW5ELENBQXJCO0FBQ0g7O0FBekZxQzs7QUEyRjFDN00sa0JBQUEsR0FBcUJ1RixVQUFyQjtBQUNBQSxVQUFVLENBQUN3RyxXQUFYLEdBQXlCM0wsTUFBTSxDQUFDdUYsV0FBaEM7QUFDQUosVUFBVSxDQUFDeUgsaUJBQVgsR0FBK0IsMFRBQS9COztBQUNBLFNBQVNwQixVQUFULENBQW9CdkMsT0FBcEIsRUFBNkI0RCxNQUE3QixFQUFxQztBQUNqQyxTQUFPNUQsT0FBTyxJQUFLLEdBQUU0RCxNQUFPLEdBQUVBLE1BQU0sQ0FBQ3pJLFFBQVAsQ0FBZ0IsR0FBaEIsSUFBdUIsR0FBdkIsR0FBNkIsR0FBSSxPQUEvRDtBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmllLXJlYWN0Ly4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9wYWdlcy9fZG9jdW1lbnQuanM/M2I4YyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkRvY3VtZW50Q29udGV4dFwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX3V0aWxzLkRvY3VtZW50Q29udGV4dDtcbiAgICB9XG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkRvY3VtZW50SW5pdGlhbFByb3BzXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfdXRpbHMuRG9jdW1lbnRJbml0aWFsUHJvcHM7XG4gICAgfVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJEb2N1bWVudFByb3BzXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfdXRpbHMuRG9jdW1lbnRQcm9wcztcbiAgICB9XG59KTtcbmV4cG9ydHMuSHRtbCA9IEh0bWw7XG5leHBvcnRzLk1haW4gPSBNYWluO1xuZXhwb3J0cy5kZWZhdWx0ID0gdm9pZCAwO1xudmFyIF9yZWFjdCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG52YXIgX2NvbnN0YW50cyA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL2NvbnN0YW50c1wiKTtcbnZhciBfdXRpbHMgPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi91dGlsc1wiKTtcbnZhciBfZ2V0UGFnZUZpbGVzID0gcmVxdWlyZShcIi4uL3NlcnZlci9nZXQtcGFnZS1maWxlc1wiKTtcbnZhciBfdXRpbHMxID0gcmVxdWlyZShcIi4uL3NlcnZlci91dGlsc1wiKTtcbnZhciBfaHRtbGVzY2FwZSA9IHJlcXVpcmUoXCIuLi9zZXJ2ZXIvaHRtbGVzY2FwZVwiKTtcbnZhciBfc2NyaXB0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vY2xpZW50L3NjcmlwdFwiKSk7XG52YXIgX2lzRXJyb3IgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9saWIvaXMtZXJyb3JcIikpO1xuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7XG4gICAgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkge1xuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBuZXdPYmogPSB7XG4gICAgICAgIH07XG4gICAgICAgIGlmIChvYmogIT0gbnVsbCkge1xuICAgICAgICAgICAgZm9yKHZhciBrZXkgaW4gb2JqKXtcbiAgICAgICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiB7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGlmIChkZXNjLmdldCB8fCBkZXNjLnNldCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld09ialtrZXldID0gb2JqW2tleV07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbmV3T2JqLmRlZmF1bHQgPSBvYmo7XG4gICAgICAgIHJldHVybiBuZXdPYmo7XG4gICAgfVxufVxuZnVuY3Rpb24gZ2V0RG9jdW1lbnRGaWxlcyhidWlsZE1hbmlmZXN0LCBwYXRobmFtZSwgaW5BbXBNb2RlKSB7XG4gICAgY29uc3Qgc2hhcmVkRmlsZXMgPSAoMCwgX2dldFBhZ2VGaWxlcykuZ2V0UGFnZUZpbGVzKGJ1aWxkTWFuaWZlc3QsICcvX2FwcCcpO1xuICAgIGNvbnN0IHBhZ2VGaWxlcyA9IGluQW1wTW9kZSA/IFtdIDogKDAsIF9nZXRQYWdlRmlsZXMpLmdldFBhZ2VGaWxlcyhidWlsZE1hbmlmZXN0LCBwYXRobmFtZSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2hhcmVkRmlsZXMsXG4gICAgICAgIHBhZ2VGaWxlcyxcbiAgICAgICAgYWxsRmlsZXM6IFtcbiAgICAgICAgICAgIC4uLm5ldyBTZXQoW1xuICAgICAgICAgICAgICAgIC4uLnNoYXJlZEZpbGVzLFxuICAgICAgICAgICAgICAgIC4uLnBhZ2VGaWxlc1xuICAgICAgICAgICAgXSlcbiAgICAgICAgXVxuICAgIH07XG59XG5mdW5jdGlvbiBnZXRQb2x5ZmlsbFNjcmlwdHMoY29udGV4dCwgcHJvcHMpIHtcbiAgICAvLyBwb2x5ZmlsbHMuanMgaGFzIHRvIGJlIHJlbmRlcmVkIGFzIG5vbW9kdWxlIHdpdGhvdXQgYXN5bmNcbiAgICAvLyBJdCBhbHNvIGhhcyB0byBiZSB0aGUgZmlyc3Qgc2NyaXB0IHRvIGxvYWRcbiAgICBjb25zdCB7IGFzc2V0UHJlZml4ICwgYnVpbGRNYW5pZmVzdCAsIGRldk9ubHlDYWNoZUJ1c3RlclF1ZXJ5U3RyaW5nICwgZGlzYWJsZU9wdGltaXplZExvYWRpbmcgLCAgfSA9IGNvbnRleHQ7XG4gICAgcmV0dXJuIGJ1aWxkTWFuaWZlc3QucG9seWZpbGxGaWxlcy5maWx0ZXIoKHBvbHlmaWxsKT0+cG9seWZpbGwuZW5kc1dpdGgoJy5qcycpICYmICFwb2x5ZmlsbC5lbmRzV2l0aCgnLm1vZHVsZS5qcycpXG4gICAgKS5tYXAoKHBvbHlmaWxsKT0+LyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwic2NyaXB0XCIsIHtcbiAgICAgICAgICAgIGtleTogcG9seWZpbGwsXG4gICAgICAgICAgICBkZWZlcjogIWRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nLFxuICAgICAgICAgICAgbm9uY2U6IHByb3BzLm5vbmNlLFxuICAgICAgICAgICAgY3Jvc3NPcmlnaW46IHByb3BzLmNyb3NzT3JpZ2luIHx8IHByb2Nlc3MuZW52Ll9fTkVYVF9DUk9TU19PUklHSU4sXG4gICAgICAgICAgICBub01vZHVsZTogdHJ1ZSxcbiAgICAgICAgICAgIHNyYzogYCR7YXNzZXRQcmVmaXh9L19uZXh0LyR7cG9seWZpbGx9JHtkZXZPbmx5Q2FjaGVCdXN0ZXJRdWVyeVN0cmluZ31gXG4gICAgICAgIH0pXG4gICAgKTtcbn1cbmZ1bmN0aW9uIGdldFByZU5leHRTY3JpcHRzKGNvbnRleHQsIHByb3BzKSB7XG4gICAgY29uc3QgeyBzY3JpcHRMb2FkZXIgLCBkaXNhYmxlT3B0aW1pemVkTG9hZGluZyAgfSA9IGNvbnRleHQ7XG4gICAgcmV0dXJuIChzY3JpcHRMb2FkZXIuYmVmb3JlSW50ZXJhY3RpdmUgfHwgW10pLm1hcCgoZmlsZSwgaW5kZXgpPT57XG4gICAgICAgIGNvbnN0IHsgc3RyYXRlZ3kgLCAuLi5zY3JpcHRQcm9wcyB9ID0gZmlsZTtcbiAgICAgICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChcInNjcmlwdFwiLCBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgfSwgc2NyaXB0UHJvcHMsIHtcbiAgICAgICAgICAgIGtleTogc2NyaXB0UHJvcHMuc3JjIHx8IGluZGV4LFxuICAgICAgICAgICAgZGVmZXI6ICFkaXNhYmxlT3B0aW1pemVkTG9hZGluZyxcbiAgICAgICAgICAgIG5vbmNlOiBwcm9wcy5ub25jZSxcbiAgICAgICAgICAgIFwiZGF0YS1uc2NyaXB0XCI6IFwiYmVmb3JlSW50ZXJhY3RpdmVcIixcbiAgICAgICAgICAgIGNyb3NzT3JpZ2luOiBwcm9wcy5jcm9zc09yaWdpbiB8fCBwcm9jZXNzLmVudi5fX05FWFRfQ1JPU1NfT1JJR0lOXG4gICAgICAgIH0pKSk7XG4gICAgfSk7XG59XG5mdW5jdGlvbiBnZXREeW5hbWljQ2h1bmtzKGNvbnRleHQsIHByb3BzLCBmaWxlcykge1xuICAgIGNvbnN0IHsgZHluYW1pY0ltcG9ydHMgLCBhc3NldFByZWZpeCAsIGlzRGV2ZWxvcG1lbnQgLCBkZXZPbmx5Q2FjaGVCdXN0ZXJRdWVyeVN0cmluZyAsIGRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nICwgIH0gPSBjb250ZXh0O1xuICAgIHJldHVybiBkeW5hbWljSW1wb3J0cy5tYXAoKGZpbGUpPT57XG4gICAgICAgIGlmICghZmlsZS5lbmRzV2l0aCgnLmpzJykgfHwgZmlsZXMuYWxsRmlsZXMuaW5jbHVkZXMoZmlsZSkpIHJldHVybiBudWxsO1xuICAgICAgICByZXR1cm4oLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwic2NyaXB0XCIsIHtcbiAgICAgICAgICAgIGFzeW5jOiAhaXNEZXZlbG9wbWVudCAmJiBkaXNhYmxlT3B0aW1pemVkTG9hZGluZyxcbiAgICAgICAgICAgIGRlZmVyOiAhZGlzYWJsZU9wdGltaXplZExvYWRpbmcsXG4gICAgICAgICAgICBrZXk6IGZpbGUsXG4gICAgICAgICAgICBzcmM6IGAke2Fzc2V0UHJlZml4fS9fbmV4dC8ke2VuY29kZVVSSShmaWxlKX0ke2Rldk9ubHlDYWNoZUJ1c3RlclF1ZXJ5U3RyaW5nfWAsXG4gICAgICAgICAgICBub25jZTogcHJvcHMubm9uY2UsXG4gICAgICAgICAgICBjcm9zc09yaWdpbjogcHJvcHMuY3Jvc3NPcmlnaW4gfHwgcHJvY2Vzcy5lbnYuX19ORVhUX0NST1NTX09SSUdJTlxuICAgICAgICB9KSk7XG4gICAgfSk7XG59XG5mdW5jdGlvbiBnZXRTY3JpcHRzKGNvbnRleHQsIHByb3BzLCBmaWxlcykge1xuICAgIHZhciByZWY7XG4gICAgY29uc3QgeyBhc3NldFByZWZpeCAsIGJ1aWxkTWFuaWZlc3QgLCBpc0RldmVsb3BtZW50ICwgZGV2T25seUNhY2hlQnVzdGVyUXVlcnlTdHJpbmcgLCBkaXNhYmxlT3B0aW1pemVkTG9hZGluZyAsICB9ID0gY29udGV4dDtcbiAgICBjb25zdCBub3JtYWxTY3JpcHRzID0gZmlsZXMuYWxsRmlsZXMuZmlsdGVyKChmaWxlKT0+ZmlsZS5lbmRzV2l0aCgnLmpzJylcbiAgICApO1xuICAgIGNvbnN0IGxvd1ByaW9yaXR5U2NyaXB0cyA9IChyZWYgPSBidWlsZE1hbmlmZXN0Lmxvd1ByaW9yaXR5RmlsZXMpID09PSBudWxsIHx8IHJlZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVmLmZpbHRlcigoZmlsZSk9PmZpbGUuZW5kc1dpdGgoJy5qcycpXG4gICAgKTtcbiAgICByZXR1cm4gW1xuICAgICAgICAuLi5ub3JtYWxTY3JpcHRzLFxuICAgICAgICAuLi5sb3dQcmlvcml0eVNjcmlwdHNcbiAgICBdLm1hcCgoZmlsZSk9PntcbiAgICAgICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChcInNjcmlwdFwiLCB7XG4gICAgICAgICAgICBrZXk6IGZpbGUsXG4gICAgICAgICAgICBzcmM6IGAke2Fzc2V0UHJlZml4fS9fbmV4dC8ke2VuY29kZVVSSShmaWxlKX0ke2Rldk9ubHlDYWNoZUJ1c3RlclF1ZXJ5U3RyaW5nfWAsXG4gICAgICAgICAgICBub25jZTogcHJvcHMubm9uY2UsXG4gICAgICAgICAgICBhc3luYzogIWlzRGV2ZWxvcG1lbnQgJiYgZGlzYWJsZU9wdGltaXplZExvYWRpbmcsXG4gICAgICAgICAgICBkZWZlcjogIWRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nLFxuICAgICAgICAgICAgY3Jvc3NPcmlnaW46IHByb3BzLmNyb3NzT3JpZ2luIHx8IHByb2Nlc3MuZW52Ll9fTkVYVF9DUk9TU19PUklHSU5cbiAgICAgICAgfSkpO1xuICAgIH0pO1xufVxuY2xhc3MgRG9jdW1lbnQgZXh0ZW5kcyBfcmVhY3QuQ29tcG9uZW50IHtcbiAgICAvKipcbiAgICogYGdldEluaXRpYWxQcm9wc2AgaG9vayByZXR1cm5zIHRoZSBjb250ZXh0IG9iamVjdCB3aXRoIHRoZSBhZGRpdGlvbiBvZiBgcmVuZGVyUGFnZWAuXG4gICAqIGByZW5kZXJQYWdlYCBjYWxsYmFjayBleGVjdXRlcyBgUmVhY3RgIHJlbmRlcmluZyBsb2dpYyBzeW5jaHJvbm91c2x5IHRvIHN1cHBvcnQgc2VydmVyLXJlbmRlcmluZyB3cmFwcGVyc1xuICAgKi8gc3RhdGljIGdldEluaXRpYWxQcm9wcyhjdHgpIHtcbiAgICAgICAgcmV0dXJuIGN0eC5kZWZhdWx0R2V0SW5pdGlhbFByb3BzKGN0eCk7XG4gICAgfVxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChIdG1sLCBudWxsLCAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoSGVhZCwgbnVsbCksIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImJvZHlcIiwgbnVsbCwgLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KE1haW4sIG51bGwpLCAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoTmV4dFNjcmlwdCwgbnVsbCkpKSk7XG4gICAgfVxufVxuZXhwb3J0cy5kZWZhdWx0ID0gRG9jdW1lbnQ7XG5mdW5jdGlvbiBIdG1sKHByb3BzKSB7XG4gICAgY29uc3QgeyBpbkFtcE1vZGUgLCBkb2NDb21wb25lbnRzUmVuZGVyZWQgLCBsb2NhbGUgIH0gPSAoMCwgX3JlYWN0KS51c2VDb250ZXh0KF91dGlscy5IdG1sQ29udGV4dCk7XG4gICAgZG9jQ29tcG9uZW50c1JlbmRlcmVkLkh0bWwgPSB0cnVlO1xuICAgIHJldHVybigvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJodG1sXCIsIE9iamVjdC5hc3NpZ24oe1xuICAgIH0sIHByb3BzLCB7XG4gICAgICAgIGxhbmc6IHByb3BzLmxhbmcgfHwgbG9jYWxlIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgYW1wOiBpbkFtcE1vZGUgPyAnJyA6IHVuZGVmaW5lZCxcbiAgICAgICAgXCJkYXRhLWFtcGRldm1vZGVcIjogaW5BbXBNb2RlICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyAnJyA6IHVuZGVmaW5lZFxuICAgIH0pKSk7XG59XG5mdW5jdGlvbiBBbXBTdHlsZXMoeyBzdHlsZXMgIH0pIHtcbiAgICBpZiAoIXN0eWxlcykgcmV0dXJuIG51bGw7XG4gICAgLy8gdHJ5IHRvIHBhcnNlIHN0eWxlcyBmcm9tIGZyYWdtZW50IGZvciBiYWNrd2FyZHMgY29tcGF0XG4gICAgY29uc3QgY3VyU3R5bGVzID0gQXJyYXkuaXNBcnJheShzdHlsZXMpID8gc3R5bGVzIDogW107XG4gICAgaWYgKC8vIEB0cy1pZ25vcmUgUHJvcGVydHkgJ3Byb3BzJyBkb2VzIG5vdCBleGlzdCBvbiB0eXBlIFJlYWN0RWxlbWVudFxuICAgIHN0eWxlcy5wcm9wcyAmJiAvLyBAdHMtaWdub3JlIFByb3BlcnR5ICdwcm9wcycgZG9lcyBub3QgZXhpc3Qgb24gdHlwZSBSZWFjdEVsZW1lbnRcbiAgICBBcnJheS5pc0FycmF5KHN0eWxlcy5wcm9wcy5jaGlsZHJlbikpIHtcbiAgICAgICAgY29uc3QgaGFzU3R5bGVzID0gKGVsKT0+e1xuICAgICAgICAgICAgdmFyIHJlZiwgcmVmMTtcbiAgICAgICAgICAgIHJldHVybiBlbCA9PT0gbnVsbCB8fCBlbCA9PT0gdm9pZCAwID8gdm9pZCAwIDogKHJlZiA9IGVsLnByb3BzKSA9PT0gbnVsbCB8fCByZWYgPT09IHZvaWQgMCA/IHZvaWQgMCA6IChyZWYxID0gcmVmLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MKSA9PT0gbnVsbCB8fCByZWYxID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZWYxLl9faHRtbDtcbiAgICAgICAgfTtcbiAgICAgICAgLy8gQHRzLWlnbm9yZSBQcm9wZXJ0eSAncHJvcHMnIGRvZXMgbm90IGV4aXN0IG9uIHR5cGUgUmVhY3RFbGVtZW50XG4gICAgICAgIHN0eWxlcy5wcm9wcy5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZCk9PntcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGNoaWxkKSkge1xuICAgICAgICAgICAgICAgIGNoaWxkLmZvckVhY2goKGVsKT0+aGFzU3R5bGVzKGVsKSAmJiBjdXJTdHlsZXMucHVzaChlbClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChoYXNTdHlsZXMoY2hpbGQpKSB7XG4gICAgICAgICAgICAgICAgY3VyU3R5bGVzLnB1c2goY2hpbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyogQWRkIGN1c3RvbSBzdHlsZXMgYmVmb3JlIEFNUCBzdHlsZXMgdG8gcHJldmVudCBhY2NpZGVudGFsIG92ZXJyaWRlcyAqLyByZXR1cm4oLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwic3R5bGVcIiwge1xuICAgICAgICBcImFtcC1jdXN0b21cIjogXCJcIixcbiAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6IHtcbiAgICAgICAgICAgIF9faHRtbDogY3VyU3R5bGVzLm1hcCgoc3R5bGUpPT5zdHlsZS5wcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTC5fX2h0bWxcbiAgICAgICAgICAgICkuam9pbignJykucmVwbGFjZSgvXFwvXFwqIyBzb3VyY2VNYXBwaW5nVVJMPS4qXFwqXFwvL2csICcnKS5yZXBsYWNlKC9cXC9cXCpAIHNvdXJjZVVSTD0uKj9cXCpcXC8vZywgJycpXG4gICAgICAgIH1cbiAgICB9KSk7XG59XG5jbGFzcyBIZWFkIGV4dGVuZHMgX3JlYWN0LkNvbXBvbmVudCB7XG4gICAgZ2V0Q3NzTGlua3MoZmlsZXMpIHtcbiAgICAgICAgY29uc3QgeyBhc3NldFByZWZpeCAsIGRldk9ubHlDYWNoZUJ1c3RlclF1ZXJ5U3RyaW5nICwgZHluYW1pY0ltcG9ydHMgIH0gPSB0aGlzLmNvbnRleHQ7XG4gICAgICAgIGNvbnN0IGNzc0ZpbGVzID0gZmlsZXMuYWxsRmlsZXMuZmlsdGVyKChmKT0+Zi5lbmRzV2l0aCgnLmNzcycpXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHNoYXJlZEZpbGVzID0gbmV3IFNldChmaWxlcy5zaGFyZWRGaWxlcyk7XG4gICAgICAgIC8vIFVubWFuYWdlZCBmaWxlcyBhcmUgQ1NTIGZpbGVzIHRoYXQgd2lsbCBiZSBoYW5kbGVkIGRpcmVjdGx5IGJ5IHRoZVxuICAgICAgICAvLyB3ZWJwYWNrIHJ1bnRpbWUgKGBtaW5pLWNzcy1leHRyYWN0LXBsdWdpbmApLlxuICAgICAgICBsZXQgdW5tYW5nZWRGaWxlcyA9IG5ldyBTZXQoW10pO1xuICAgICAgICBsZXQgZHluYW1pY0Nzc0ZpbGVzID0gQXJyYXkuZnJvbShuZXcgU2V0KGR5bmFtaWNJbXBvcnRzLmZpbHRlcigoZmlsZSk9PmZpbGUuZW5kc1dpdGgoJy5jc3MnKVxuICAgICAgICApKSk7XG4gICAgICAgIGlmIChkeW5hbWljQ3NzRmlsZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBleGlzdGluZyA9IG5ldyBTZXQoY3NzRmlsZXMpO1xuICAgICAgICAgICAgZHluYW1pY0Nzc0ZpbGVzID0gZHluYW1pY0Nzc0ZpbGVzLmZpbHRlcigoZik9PiEoZXhpc3RpbmcuaGFzKGYpIHx8IHNoYXJlZEZpbGVzLmhhcyhmKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB1bm1hbmdlZEZpbGVzID0gbmV3IFNldChkeW5hbWljQ3NzRmlsZXMpO1xuICAgICAgICAgICAgY3NzRmlsZXMucHVzaCguLi5keW5hbWljQ3NzRmlsZXMpO1xuICAgICAgICB9XG4gICAgICAgIGxldCBjc3NMaW5rRWxlbWVudHMgPSBbXTtcbiAgICAgICAgY3NzRmlsZXMuZm9yRWFjaCgoZmlsZSk9PntcbiAgICAgICAgICAgIGNvbnN0IGlzU2hhcmVkRmlsZSA9IHNoYXJlZEZpbGVzLmhhcyhmaWxlKTtcbiAgICAgICAgICAgIGlmICghcHJvY2Vzcy5lbnYuX19ORVhUX09QVElNSVpFX0NTUykge1xuICAgICAgICAgICAgICAgIGNzc0xpbmtFbGVtZW50cy5wdXNoKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImxpbmtcIiwge1xuICAgICAgICAgICAgICAgICAgICBrZXk6IGAke2ZpbGV9LXByZWxvYWRgLFxuICAgICAgICAgICAgICAgICAgICBub25jZTogdGhpcy5wcm9wcy5ub25jZSxcbiAgICAgICAgICAgICAgICAgICAgcmVsOiBcInByZWxvYWRcIixcbiAgICAgICAgICAgICAgICAgICAgaHJlZjogYCR7YXNzZXRQcmVmaXh9L19uZXh0LyR7ZW5jb2RlVVJJKGZpbGUpfSR7ZGV2T25seUNhY2hlQnVzdGVyUXVlcnlTdHJpbmd9YCxcbiAgICAgICAgICAgICAgICAgICAgYXM6IFwic3R5bGVcIixcbiAgICAgICAgICAgICAgICAgICAgY3Jvc3NPcmlnaW46IHRoaXMucHJvcHMuY3Jvc3NPcmlnaW4gfHwgcHJvY2Vzcy5lbnYuX19ORVhUX0NST1NTX09SSUdJTlxuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGlzVW5tYW5hZ2VkRmlsZSA9IHVubWFuZ2VkRmlsZXMuaGFzKGZpbGUpO1xuICAgICAgICAgICAgY3NzTGlua0VsZW1lbnRzLnB1c2goLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwibGlua1wiLCB7XG4gICAgICAgICAgICAgICAga2V5OiBmaWxlLFxuICAgICAgICAgICAgICAgIG5vbmNlOiB0aGlzLnByb3BzLm5vbmNlLFxuICAgICAgICAgICAgICAgIHJlbDogXCJzdHlsZXNoZWV0XCIsXG4gICAgICAgICAgICAgICAgaHJlZjogYCR7YXNzZXRQcmVmaXh9L19uZXh0LyR7ZW5jb2RlVVJJKGZpbGUpfSR7ZGV2T25seUNhY2hlQnVzdGVyUXVlcnlTdHJpbmd9YCxcbiAgICAgICAgICAgICAgICBjcm9zc09yaWdpbjogdGhpcy5wcm9wcy5jcm9zc09yaWdpbiB8fCBwcm9jZXNzLmVudi5fX05FWFRfQ1JPU1NfT1JJR0lOLFxuICAgICAgICAgICAgICAgIFwiZGF0YS1uLWdcIjogaXNVbm1hbmFnZWRGaWxlID8gdW5kZWZpbmVkIDogaXNTaGFyZWRGaWxlID8gJycgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgXCJkYXRhLW4tcFwiOiBpc1VubWFuYWdlZEZpbGUgPyB1bmRlZmluZWQgOiBpc1NoYXJlZEZpbGUgPyB1bmRlZmluZWQgOiAnJ1xuICAgICAgICAgICAgfSkpO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAnZGV2ZWxvcG1lbnQnICYmIHByb2Nlc3MuZW52Ll9fTkVYVF9PUFRJTUlaRV9GT05UUykge1xuICAgICAgICAgICAgY3NzTGlua0VsZW1lbnRzID0gdGhpcy5tYWtlU3R5bGVzaGVldEluZXJ0KGNzc0xpbmtFbGVtZW50cyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNzc0xpbmtFbGVtZW50cy5sZW5ndGggPT09IDAgPyBudWxsIDogY3NzTGlua0VsZW1lbnRzO1xuICAgIH1cbiAgICBnZXRQcmVsb2FkRHluYW1pY0NodW5rcygpIHtcbiAgICAgICAgY29uc3QgeyBkeW5hbWljSW1wb3J0cyAsIGFzc2V0UHJlZml4ICwgZGV2T25seUNhY2hlQnVzdGVyUXVlcnlTdHJpbmcgIH0gPSB0aGlzLmNvbnRleHQ7XG4gICAgICAgIHJldHVybiBkeW5hbWljSW1wb3J0cy5tYXAoKGZpbGUpPT57XG4gICAgICAgICAgICBpZiAoIWZpbGUuZW5kc1dpdGgoJy5qcycpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4oLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwibGlua1wiLCB7XG4gICAgICAgICAgICAgICAgcmVsOiBcInByZWxvYWRcIixcbiAgICAgICAgICAgICAgICBrZXk6IGZpbGUsXG4gICAgICAgICAgICAgICAgaHJlZjogYCR7YXNzZXRQcmVmaXh9L19uZXh0LyR7ZW5jb2RlVVJJKGZpbGUpfSR7ZGV2T25seUNhY2hlQnVzdGVyUXVlcnlTdHJpbmd9YCxcbiAgICAgICAgICAgICAgICBhczogXCJzY3JpcHRcIixcbiAgICAgICAgICAgICAgICBub25jZTogdGhpcy5wcm9wcy5ub25jZSxcbiAgICAgICAgICAgICAgICBjcm9zc09yaWdpbjogdGhpcy5wcm9wcy5jcm9zc09yaWdpbiB8fCBwcm9jZXNzLmVudi5fX05FWFRfQ1JPU1NfT1JJR0lOXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgIH0pLy8gRmlsdGVyIG91dCBudWxsZWQgc2NyaXB0c1xuICAgICAgICAuZmlsdGVyKEJvb2xlYW4pO1xuICAgIH1cbiAgICBnZXRQcmVsb2FkTWFpbkxpbmtzKGZpbGVzKSB7XG4gICAgICAgIGNvbnN0IHsgYXNzZXRQcmVmaXggLCBkZXZPbmx5Q2FjaGVCdXN0ZXJRdWVyeVN0cmluZyAsIHNjcmlwdExvYWRlciAgfSA9IHRoaXMuY29udGV4dDtcbiAgICAgICAgY29uc3QgcHJlbG9hZEZpbGVzID0gZmlsZXMuYWxsRmlsZXMuZmlsdGVyKChmaWxlKT0+e1xuICAgICAgICAgICAgcmV0dXJuIGZpbGUuZW5kc1dpdGgoJy5qcycpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIC4uLihzY3JpcHRMb2FkZXIuYmVmb3JlSW50ZXJhY3RpdmUgfHwgW10pLm1hcCgoZmlsZSk9Pi8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImxpbmtcIiwge1xuICAgICAgICAgICAgICAgICAgICBrZXk6IGZpbGUuc3JjLFxuICAgICAgICAgICAgICAgICAgICBub25jZTogdGhpcy5wcm9wcy5ub25jZSxcbiAgICAgICAgICAgICAgICAgICAgcmVsOiBcInByZWxvYWRcIixcbiAgICAgICAgICAgICAgICAgICAgaHJlZjogZmlsZS5zcmMsXG4gICAgICAgICAgICAgICAgICAgIGFzOiBcInNjcmlwdFwiLFxuICAgICAgICAgICAgICAgICAgICBjcm9zc09yaWdpbjogdGhpcy5wcm9wcy5jcm9zc09yaWdpbiB8fCBwcm9jZXNzLmVudi5fX05FWFRfQ1JPU1NfT1JJR0lOXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICAuLi5wcmVsb2FkRmlsZXMubWFwKChmaWxlKT0+LyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwibGlua1wiLCB7XG4gICAgICAgICAgICAgICAgICAgIGtleTogZmlsZSxcbiAgICAgICAgICAgICAgICAgICAgbm9uY2U6IHRoaXMucHJvcHMubm9uY2UsXG4gICAgICAgICAgICAgICAgICAgIHJlbDogXCJwcmVsb2FkXCIsXG4gICAgICAgICAgICAgICAgICAgIGhyZWY6IGAke2Fzc2V0UHJlZml4fS9fbmV4dC8ke2VuY29kZVVSSShmaWxlKX0ke2Rldk9ubHlDYWNoZUJ1c3RlclF1ZXJ5U3RyaW5nfWAsXG4gICAgICAgICAgICAgICAgICAgIGFzOiBcInNjcmlwdFwiLFxuICAgICAgICAgICAgICAgICAgICBjcm9zc09yaWdpbjogdGhpcy5wcm9wcy5jcm9zc09yaWdpbiB8fCBwcm9jZXNzLmVudi5fX05FWFRfQ1JPU1NfT1JJR0lOXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICksIFxuICAgICAgICBdO1xuICAgIH1cbiAgICBnZXREeW5hbWljQ2h1bmtzKGZpbGVzKSB7XG4gICAgICAgIHJldHVybiBnZXREeW5hbWljQ2h1bmtzKHRoaXMuY29udGV4dCwgdGhpcy5wcm9wcywgZmlsZXMpO1xuICAgIH1cbiAgICBnZXRQcmVOZXh0U2NyaXB0cygpIHtcbiAgICAgICAgcmV0dXJuIGdldFByZU5leHRTY3JpcHRzKHRoaXMuY29udGV4dCwgdGhpcy5wcm9wcyk7XG4gICAgfVxuICAgIGdldFNjcmlwdHMoZmlsZXMpIHtcbiAgICAgICAgcmV0dXJuIGdldFNjcmlwdHModGhpcy5jb250ZXh0LCB0aGlzLnByb3BzLCBmaWxlcyk7XG4gICAgfVxuICAgIGdldFBvbHlmaWxsU2NyaXB0cygpIHtcbiAgICAgICAgcmV0dXJuIGdldFBvbHlmaWxsU2NyaXB0cyh0aGlzLmNvbnRleHQsIHRoaXMucHJvcHMpO1xuICAgIH1cbiAgICBoYW5kbGVEb2N1bWVudFNjcmlwdExvYWRlckl0ZW1zKGNoaWxkcmVuKSB7XG4gICAgICAgIGNvbnN0IHsgc2NyaXB0TG9hZGVyICB9ID0gdGhpcy5jb250ZXh0O1xuICAgICAgICBjb25zdCBzY3JpcHRMb2FkZXJJdGVtcyA9IFtdO1xuICAgICAgICBjb25zdCBmaWx0ZXJlZENoaWxkcmVuID0gW107XG4gICAgICAgIF9yZWFjdC5kZWZhdWx0LkNoaWxkcmVuLmZvckVhY2goY2hpbGRyZW4sIChjaGlsZCk9PntcbiAgICAgICAgICAgIGlmIChjaGlsZC50eXBlID09PSBfc2NyaXB0LmRlZmF1bHQpIHtcbiAgICAgICAgICAgICAgICBpZiAoY2hpbGQucHJvcHMuc3RyYXRlZ3kgPT09ICdiZWZvcmVJbnRlcmFjdGl2ZScpIHtcbiAgICAgICAgICAgICAgICAgICAgc2NyaXB0TG9hZGVyLmJlZm9yZUludGVyYWN0aXZlID0gKHNjcmlwdExvYWRlci5iZWZvcmVJbnRlcmFjdGl2ZSB8fCBbXSkuY29uY2F0KFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5jaGlsZC5wcm9wc1xuICAgICAgICAgICAgICAgICAgICAgICAgfSwgXG4gICAgICAgICAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChbXG4gICAgICAgICAgICAgICAgICAgICdsYXp5T25sb2FkJyxcbiAgICAgICAgICAgICAgICAgICAgJ2FmdGVySW50ZXJhY3RpdmUnXG4gICAgICAgICAgICAgICAgXS5pbmNsdWRlcyhjaGlsZC5wcm9wcy5zdHJhdGVneSkpIHtcbiAgICAgICAgICAgICAgICAgICAgc2NyaXB0TG9hZGVySXRlbXMucHVzaChjaGlsZC5wcm9wcyk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmaWx0ZXJlZENoaWxkcmVuLnB1c2goY2hpbGQpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jb250ZXh0Ll9fTkVYVF9EQVRBX18uc2NyaXB0TG9hZGVyID0gc2NyaXB0TG9hZGVySXRlbXM7XG4gICAgICAgIHJldHVybiBmaWx0ZXJlZENoaWxkcmVuO1xuICAgIH1cbiAgICBtYWtlU3R5bGVzaGVldEluZXJ0KG5vZGUpIHtcbiAgICAgICAgcmV0dXJuIF9yZWFjdC5kZWZhdWx0LkNoaWxkcmVuLm1hcChub2RlLCAoYyk9PntcbiAgICAgICAgICAgIGlmIChjLnR5cGUgPT09ICdsaW5rJyAmJiBjLnByb3BzWydocmVmJ10gJiYgX2NvbnN0YW50cy5PUFRJTUlaRURfRk9OVF9QUk9WSURFUlMuc29tZSgoeyB1cmwgIH0pPT5jLnByb3BzWydocmVmJ10uc3RhcnRzV2l0aCh1cmwpXG4gICAgICAgICAgICApKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3UHJvcHMgPSB7XG4gICAgICAgICAgICAgICAgICAgIC4uLmMucHJvcHMgfHwge1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBuZXdQcm9wc1snZGF0YS1ocmVmJ10gPSBuZXdQcm9wc1snaHJlZiddO1xuICAgICAgICAgICAgICAgIG5ld1Byb3BzWydocmVmJ10gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY2xvbmVFbGVtZW50KGMsIG5ld1Byb3BzKSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGMucHJvcHMgJiYgYy5wcm9wc1snY2hpbGRyZW4nXSkge1xuICAgICAgICAgICAgICAgIGMucHJvcHNbJ2NoaWxkcmVuJ10gPSB0aGlzLm1ha2VTdHlsZXNoZWV0SW5lcnQoYy5wcm9wc1snY2hpbGRyZW4nXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gYztcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgY29uc3QgeyBzdHlsZXMgLCBhbXBQYXRoICwgaW5BbXBNb2RlICwgaHlicmlkQW1wICwgY2Fub25pY2FsQmFzZSAsIF9fTkVYVF9EQVRBX18gLCBkYW5nZXJvdXNBc1BhdGggLCBoZWFkVGFncyAsIHVuc3RhYmxlX3J1bnRpbWVKUyAsIHVuc3RhYmxlX0pzUHJlbG9hZCAsIGRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nICwgdXNlTWF5YmVEZWZlckNvbnRlbnQgLCAgfSA9IHRoaXMuY29udGV4dDtcbiAgICAgICAgY29uc3QgZGlzYWJsZVJ1bnRpbWVKUyA9IHVuc3RhYmxlX3J1bnRpbWVKUyA9PT0gZmFsc2U7XG4gICAgICAgIGNvbnN0IGRpc2FibGVKc1ByZWxvYWQgPSB1bnN0YWJsZV9Kc1ByZWxvYWQgPT09IGZhbHNlIHx8ICFkaXNhYmxlT3B0aW1pemVkTG9hZGluZztcbiAgICAgICAgdGhpcy5jb250ZXh0LmRvY0NvbXBvbmVudHNSZW5kZXJlZC5IZWFkID0gdHJ1ZTtcbiAgICAgICAgbGV0IHsgaGVhZCAgfSA9IHRoaXMuY29udGV4dDtcbiAgICAgICAgbGV0IGNzc1ByZWxvYWRzID0gW107XG4gICAgICAgIGxldCBvdGhlckhlYWRFbGVtZW50cyA9IFtdO1xuICAgICAgICBpZiAoaGVhZCkge1xuICAgICAgICAgICAgaGVhZC5mb3JFYWNoKChjKT0+e1xuICAgICAgICAgICAgICAgIGlmIChjICYmIGMudHlwZSA9PT0gJ2xpbmsnICYmIGMucHJvcHNbJ3JlbCddID09PSAncHJlbG9hZCcgJiYgYy5wcm9wc1snYXMnXSA9PT0gJ3N0eWxlJykge1xuICAgICAgICAgICAgICAgICAgICBjc3NQcmVsb2Fkcy5wdXNoKGMpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGMgJiYgb3RoZXJIZWFkRWxlbWVudHMucHVzaChjKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGhlYWQgPSBjc3NQcmVsb2Fkcy5jb25jYXQob3RoZXJIZWFkRWxlbWVudHMpO1xuICAgICAgICB9XG4gICAgICAgIGxldCBjaGlsZHJlbiA9IF9yZWFjdC5kZWZhdWx0LkNoaWxkcmVuLnRvQXJyYXkodGhpcy5wcm9wcy5jaGlsZHJlbikuZmlsdGVyKEJvb2xlYW4pO1xuICAgICAgICAvLyBzaG93IGEgd2FybmluZyBpZiBIZWFkIGNvbnRhaW5zIDx0aXRsZT4gKG9ubHkgaW4gZGV2ZWxvcG1lbnQpXG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICBjaGlsZHJlbiA9IF9yZWFjdC5kZWZhdWx0LkNoaWxkcmVuLm1hcChjaGlsZHJlbiwgKGNoaWxkKT0+e1xuICAgICAgICAgICAgICAgIHZhciByZWY7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNSZWFjdEhlbG1ldCA9IGNoaWxkID09PSBudWxsIHx8IGNoaWxkID09PSB2b2lkIDAgPyB2b2lkIDAgOiAocmVmID0gY2hpbGQucHJvcHMpID09PSBudWxsIHx8IHJlZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVmWydkYXRhLXJlYWN0LWhlbG1ldCddO1xuICAgICAgICAgICAgICAgIGlmICghaXNSZWFjdEhlbG1ldCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmVmNjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKChjaGlsZCA9PT0gbnVsbCB8fCBjaGlsZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2hpbGQudHlwZSkgPT09ICd0aXRsZScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcIldhcm5pbmc6IDx0aXRsZT4gc2hvdWxkIG5vdCBiZSB1c2VkIGluIF9kb2N1bWVudC5qcydzIDxIZWFkPi4gaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbm8tZG9jdW1lbnQtdGl0bGVcIik7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoKGNoaWxkID09PSBudWxsIHx8IGNoaWxkID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjaGlsZC50eXBlKSA9PT0gJ21ldGEnICYmIChjaGlsZCA9PT0gbnVsbCB8fCBjaGlsZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogKHJlZjYgPSBjaGlsZC5wcm9wcykgPT09IG51bGwgfHwgcmVmNiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVmNi5uYW1lKSA9PT0gJ3ZpZXdwb3J0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFwiV2FybmluZzogdmlld3BvcnQgbWV0YSB0YWdzIHNob3VsZCBub3QgYmUgdXNlZCBpbiBfZG9jdW1lbnQuanMncyA8SGVhZD4uIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25vLWRvY3VtZW50LXZpZXdwb3J0LW1ldGFcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNoaWxkO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5jcm9zc09yaWdpbikgY29uc29sZS53YXJuKCdXYXJuaW5nOiBgSGVhZGAgYXR0cmlidXRlIGBjcm9zc09yaWdpbmAgaXMgZGVwcmVjYXRlZC4gaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvZG9jLWNyb3Nzb3JpZ2luLWRlcHJlY2F0ZWQnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdkZXZlbG9wbWVudCcgJiYgcHJvY2Vzcy5lbnYuX19ORVhUX09QVElNSVpFX0ZPTlRTICYmICFpbkFtcE1vZGUpIHtcbiAgICAgICAgICAgIGNoaWxkcmVuID0gdGhpcy5tYWtlU3R5bGVzaGVldEluZXJ0KGNoaWxkcmVuKTtcbiAgICAgICAgfVxuICAgICAgICBjaGlsZHJlbiA9IHRoaXMuaGFuZGxlRG9jdW1lbnRTY3JpcHRMb2FkZXJJdGVtcyhjaGlsZHJlbik7XG4gICAgICAgIGxldCBoYXNBbXBodG1sUmVsID0gZmFsc2U7XG4gICAgICAgIGxldCBoYXNDYW5vbmljYWxSZWwgPSBmYWxzZTtcbiAgICAgICAgLy8gc2hvdyB3YXJuaW5nIGFuZCByZW1vdmUgY29uZmxpY3RpbmcgYW1wIGhlYWQgdGFnc1xuICAgICAgICBoZWFkID0gX3JlYWN0LmRlZmF1bHQuQ2hpbGRyZW4ubWFwKGhlYWQgfHwgW10sIChjaGlsZCk9PntcbiAgICAgICAgICAgIGlmICghY2hpbGQpIHJldHVybiBjaGlsZDtcbiAgICAgICAgICAgIGNvbnN0IHsgdHlwZSAsIHByb3BzICB9ID0gY2hpbGQ7XG4gICAgICAgICAgICBpZiAoaW5BbXBNb2RlKSB7XG4gICAgICAgICAgICAgICAgbGV0IGJhZFByb3AgPSAnJztcbiAgICAgICAgICAgICAgICBpZiAodHlwZSA9PT0gJ21ldGEnICYmIHByb3BzLm5hbWUgPT09ICd2aWV3cG9ydCcpIHtcbiAgICAgICAgICAgICAgICAgICAgYmFkUHJvcCA9ICduYW1lPVwidmlld3BvcnRcIic7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnbGluaycgJiYgcHJvcHMucmVsID09PSAnY2Fub25pY2FsJykge1xuICAgICAgICAgICAgICAgICAgICBoYXNDYW5vbmljYWxSZWwgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3NjcmlwdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gb25seSBibG9jayBpZlxuICAgICAgICAgICAgICAgICAgICAvLyAxLiBpdCBoYXMgYSBzcmMgYW5kIGlzbid0IHBvaW50aW5nIHRvIGFtcHByb2plY3QncyBDRE5cbiAgICAgICAgICAgICAgICAgICAgLy8gMi4gaXQgaXMgdXNpbmcgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgd2l0aG91dCBhIHR5cGUgb3JcbiAgICAgICAgICAgICAgICAgICAgLy8gYSB0eXBlIG9mIHRleHQvamF2YXNjcmlwdFxuICAgICAgICAgICAgICAgICAgICBpZiAocHJvcHMuc3JjICYmIHByb3BzLnNyYy5pbmRleE9mKCdhbXBwcm9qZWN0JykgPCAtMSB8fCBwcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTCAmJiAoIXByb3BzLnR5cGUgfHwgcHJvcHMudHlwZSA9PT0gJ3RleHQvamF2YXNjcmlwdCcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWRQcm9wID0gJzxzY3JpcHQnO1xuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmtleXMocHJvcHMpLmZvckVhY2goKHByb3ApPT57XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFkUHJvcCArPSBgICR7cHJvcH09XCIke3Byb3BzW3Byb3BdfVwiYDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFkUHJvcCArPSAnLz4nO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChiYWRQcm9wKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgRm91bmQgY29uZmxpY3RpbmcgYW1wIHRhZyBcIiR7Y2hpbGQudHlwZX1cIiB3aXRoIGNvbmZsaWN0aW5nIHByb3AgJHtiYWRQcm9wfSBpbiAke19fTkVYVF9EQVRBX18ucGFnZX0uIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2NvbmZsaWN0aW5nLWFtcC10YWdgKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBub24tYW1wIG1vZGVcbiAgICAgICAgICAgICAgICBpZiAodHlwZSA9PT0gJ2xpbmsnICYmIHByb3BzLnJlbCA9PT0gJ2FtcGh0bWwnKSB7XG4gICAgICAgICAgICAgICAgICAgIGhhc0FtcGh0bWxSZWwgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGZpbGVzID0gZ2V0RG9jdW1lbnRGaWxlcyh0aGlzLmNvbnRleHQuYnVpbGRNYW5pZmVzdCwgdGhpcy5jb250ZXh0Ll9fTkVYVF9EQVRBX18ucGFnZSwgaW5BbXBNb2RlKTtcbiAgICAgICAgLy8gTXVzdCB1c2UgbmVzdGVkIGNvbXBvbmVudCB0byBhbGxvdyB1c2Ugb2YgYSBjdXN0b20gaG9va1xuICAgICAgICBjb25zdCBEZWZlcnJhYmxlSGVhZCA9ICgpPT57XG4gICAgICAgICAgICBjb25zdCBnZXREeW5hbWljSGVhZENvbnRlbnQgPSAoKT0+e1xuICAgICAgICAgICAgICAgIHJldHVybigvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoX3JlYWN0LmRlZmF1bHQuRnJhZ21lbnQsIG51bGwsIGhlYWQsIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChcIm1ldGFcIiwge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIm5leHQtaGVhZC1jb3VudFwiLFxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBfcmVhY3QuZGVmYXVsdC5DaGlsZHJlbi5jb3VudChoZWFkIHx8IFtdKS50b1N0cmluZygpXG4gICAgICAgICAgICAgICAgfSkpKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjb25zdCBnZXREeW5hbWljU2NyaXB0UHJlbG9hZHMgPSAoKT0+e1xuICAgICAgICAgICAgICAgIHJldHVybigvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoX3JlYWN0LmRlZmF1bHQuRnJhZ21lbnQsIG51bGwsICFkaXNhYmxlUnVudGltZUpTICYmICFkaXNhYmxlSnNQcmVsb2FkICYmIHRoaXMuZ2V0UHJlbG9hZER5bmFtaWNDaHVua3MoKSwgIWRpc2FibGVSdW50aW1lSlMgJiYgIWRpc2FibGVKc1ByZWxvYWQgJiYgdGhpcy5nZXRQcmVsb2FkTWFpbkxpbmtzKGZpbGVzKSkpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0IGdldER5bmFtaWNTY3JpcHRDb250ZW50ID0gKCk9PntcbiAgICAgICAgICAgICAgICByZXR1cm4oLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KF9yZWFjdC5kZWZhdWx0LkZyYWdtZW50LCBudWxsLCAhZGlzYWJsZU9wdGltaXplZExvYWRpbmcgJiYgIWRpc2FibGVSdW50aW1lSlMgJiYgdGhpcy5nZXRQcmVOZXh0U2NyaXB0cygpLCAhZGlzYWJsZU9wdGltaXplZExvYWRpbmcgJiYgIWRpc2FibGVSdW50aW1lSlMgJiYgdGhpcy5nZXREeW5hbWljQ2h1bmtzKGZpbGVzKSwgIWRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nICYmICFkaXNhYmxlUnVudGltZUpTICYmIHRoaXMuZ2V0U2NyaXB0cyhmaWxlcykpKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjb25zdCBbaXNEZWZlcnJlZF0gPSB1c2VNYXliZURlZmVyQ29udGVudCgnSEVBRCcsICgpPT57XG4gICAgICAgICAgICAgICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChfcmVhY3QuZGVmYXVsdC5GcmFnbWVudCwgbnVsbCwgZ2V0RHluYW1pY0hlYWRDb250ZW50KCksIGdldER5bmFtaWNTY3JpcHRQcmVsb2FkcygpLCBnZXREeW5hbWljU2NyaXB0Q29udGVudCgpKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHZhciBfbm9uY2UsIF9ub25jZTE7XG4gICAgICAgICAgICByZXR1cm4oLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiaGVhZFwiLCBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgICAgIH0sIHRoaXMucHJvcHMpLCAhcHJvY2Vzcy5lbnYuX19ORVhUX0NPTkNVUlJFTlRfRkVBVFVSRVMgJiYgdGhpcy5jb250ZXh0LmlzRGV2ZWxvcG1lbnQgJiYgLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KF9yZWFjdC5kZWZhdWx0LkZyYWdtZW50LCBudWxsLCAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiLCB7XG4gICAgICAgICAgICAgICAgXCJkYXRhLW5leHQtaGlkZS1mb3VjXCI6IHRydWUsXG4gICAgICAgICAgICAgICAgXCJkYXRhLWFtcGRldm1vZGVcIjogaW5BbXBNb2RlID8gJ3RydWUnIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MOiB7XG4gICAgICAgICAgICAgICAgICAgIF9faHRtbDogYGJvZHl7ZGlzcGxheTpub25lfWBcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSwgLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwibm9zY3JpcHRcIiwge1xuICAgICAgICAgICAgICAgIFwiZGF0YS1uZXh0LWhpZGUtZm91Y1wiOiB0cnVlLFxuICAgICAgICAgICAgICAgIFwiZGF0YS1hbXBkZXZtb2RlXCI6IGluQW1wTW9kZSA/ICd0cnVlJyA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfSwgLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwic3R5bGVcIiwge1xuICAgICAgICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MOiB7XG4gICAgICAgICAgICAgICAgICAgIF9faHRtbDogYGJvZHl7ZGlzcGxheTpibG9ja31gXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkpKSwgY2hpbGRyZW4sIHByb2Nlc3MuZW52Ll9fTkVYVF9PUFRJTUlaRV9GT05UUyAmJiAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJtZXRhXCIsIHtcbiAgICAgICAgICAgICAgICBuYW1lOiBcIm5leHQtZm9udC1wcmVjb25uZWN0XCJcbiAgICAgICAgICAgIH0pLCAhaXNEZWZlcnJlZCAmJiBnZXREeW5hbWljSGVhZENvbnRlbnQoKSwgaW5BbXBNb2RlICYmIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChfcmVhY3QuZGVmYXVsdC5GcmFnbWVudCwgbnVsbCwgLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwibWV0YVwiLCB7XG4gICAgICAgICAgICAgICAgbmFtZTogXCJ2aWV3cG9ydFwiLFxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwid2lkdGg9ZGV2aWNlLXdpZHRoLG1pbmltdW0tc2NhbGU9MSxpbml0aWFsLXNjYWxlPTFcIlxuICAgICAgICAgICAgfSksICFoYXNDYW5vbmljYWxSZWwgJiYgLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwibGlua1wiLCB7XG4gICAgICAgICAgICAgICAgcmVsOiBcImNhbm9uaWNhbFwiLFxuICAgICAgICAgICAgICAgIGhyZWY6IGNhbm9uaWNhbEJhc2UgKyAoMCwgX3V0aWxzMSkuY2xlYW5BbXBQYXRoKGRhbmdlcm91c0FzUGF0aClcbiAgICAgICAgICAgIH0pLCAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJsaW5rXCIsIHtcbiAgICAgICAgICAgICAgICByZWw6IFwicHJlbG9hZFwiLFxuICAgICAgICAgICAgICAgIGFzOiBcInNjcmlwdFwiLFxuICAgICAgICAgICAgICAgIGhyZWY6IFwiaHR0cHM6Ly9jZG4uYW1wcHJvamVjdC5vcmcvdjAuanNcIlxuICAgICAgICAgICAgfSksIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChBbXBTdHlsZXMsIHtcbiAgICAgICAgICAgICAgICBzdHlsZXM6IHN0eWxlc1xuICAgICAgICAgICAgfSksIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIsIHtcbiAgICAgICAgICAgICAgICBcImFtcC1ib2lsZXJwbGF0ZVwiOiBcIlwiLFxuICAgICAgICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MOiB7XG4gICAgICAgICAgICAgICAgICAgIF9faHRtbDogYGJvZHl7LXdlYmtpdC1hbmltYXRpb246LWFtcC1zdGFydCA4cyBzdGVwcygxLGVuZCkgMHMgMSBub3JtYWwgYm90aDstbW96LWFuaW1hdGlvbjotYW1wLXN0YXJ0IDhzIHN0ZXBzKDEsZW5kKSAwcyAxIG5vcm1hbCBib3RoOy1tcy1hbmltYXRpb246LWFtcC1zdGFydCA4cyBzdGVwcygxLGVuZCkgMHMgMSBub3JtYWwgYm90aDthbmltYXRpb246LWFtcC1zdGFydCA4cyBzdGVwcygxLGVuZCkgMHMgMSBub3JtYWwgYm90aH1ALXdlYmtpdC1rZXlmcmFtZXMgLWFtcC1zdGFydHtmcm9te3Zpc2liaWxpdHk6aGlkZGVufXRve3Zpc2liaWxpdHk6dmlzaWJsZX19QC1tb3ota2V5ZnJhbWVzIC1hbXAtc3RhcnR7ZnJvbXt2aXNpYmlsaXR5OmhpZGRlbn10b3t2aXNpYmlsaXR5OnZpc2libGV9fUAtbXMta2V5ZnJhbWVzIC1hbXAtc3RhcnR7ZnJvbXt2aXNpYmlsaXR5OmhpZGRlbn10b3t2aXNpYmlsaXR5OnZpc2libGV9fUAtby1rZXlmcmFtZXMgLWFtcC1zdGFydHtmcm9te3Zpc2liaWxpdHk6aGlkZGVufXRve3Zpc2liaWxpdHk6dmlzaWJsZX19QGtleWZyYW1lcyAtYW1wLXN0YXJ0e2Zyb217dmlzaWJpbGl0eTpoaWRkZW59dG97dmlzaWJpbGl0eTp2aXNpYmxlfX1gXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChcIm5vc2NyaXB0XCIsIG51bGwsIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIsIHtcbiAgICAgICAgICAgICAgICBcImFtcC1ib2lsZXJwbGF0ZVwiOiBcIlwiLFxuICAgICAgICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MOiB7XG4gICAgICAgICAgICAgICAgICAgIF9faHRtbDogYGJvZHl7LXdlYmtpdC1hbmltYXRpb246bm9uZTstbW96LWFuaW1hdGlvbjpub25lOy1tcy1hbmltYXRpb246bm9uZTthbmltYXRpb246bm9uZX1gXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkpLCAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIiwge1xuICAgICAgICAgICAgICAgIGFzeW5jOiB0cnVlLFxuICAgICAgICAgICAgICAgIHNyYzogXCJodHRwczovL2Nkbi5hbXBwcm9qZWN0Lm9yZy92MC5qc1wiXG4gICAgICAgICAgICB9KSksICFpbkFtcE1vZGUgJiYgLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KF9yZWFjdC5kZWZhdWx0LkZyYWdtZW50LCBudWxsLCAhaGFzQW1waHRtbFJlbCAmJiBoeWJyaWRBbXAgJiYgLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwibGlua1wiLCB7XG4gICAgICAgICAgICAgICAgcmVsOiBcImFtcGh0bWxcIixcbiAgICAgICAgICAgICAgICBocmVmOiBjYW5vbmljYWxCYXNlICsgZ2V0QW1wUGF0aChhbXBQYXRoLCBkYW5nZXJvdXNBc1BhdGgpXG4gICAgICAgICAgICB9KSwgIXByb2Nlc3MuZW52Ll9fTkVYVF9PUFRJTUlaRV9DU1MgJiYgdGhpcy5nZXRDc3NMaW5rcyhmaWxlcyksICFwcm9jZXNzLmVudi5fX05FWFRfT1BUSU1JWkVfQ1NTICYmIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChcIm5vc2NyaXB0XCIsIHtcbiAgICAgICAgICAgICAgICBcImRhdGEtbi1jc3NcIjogKF9ub25jZSA9IHRoaXMucHJvcHMubm9uY2UpICE9PSBudWxsICYmIF9ub25jZSAhPT0gdm9pZCAwID8gX25vbmNlIDogJydcbiAgICAgICAgICAgIH0pLCBwcm9jZXNzLmVudi5fX05FWFRfT1BUSU1JWkVfSU1BR0VTICYmIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChcIm1ldGFcIiwge1xuICAgICAgICAgICAgICAgIG5hbWU6IFwibmV4dC1pbWFnZS1wcmVsb2FkXCJcbiAgICAgICAgICAgIH0pLCAhaXNEZWZlcnJlZCAmJiBnZXREeW5hbWljU2NyaXB0UHJlbG9hZHMoKSwgIWRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nICYmICFkaXNhYmxlUnVudGltZUpTICYmIHRoaXMuZ2V0UG9seWZpbGxTY3JpcHRzKCksICFpc0RlZmVycmVkICYmIGdldER5bmFtaWNTY3JpcHRDb250ZW50KCksIHByb2Nlc3MuZW52Ll9fTkVYVF9PUFRJTUlaRV9DU1MgJiYgdGhpcy5nZXRDc3NMaW5rcyhmaWxlcyksIHByb2Nlc3MuZW52Ll9fTkVYVF9PUFRJTUlaRV9DU1MgJiYgLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwibm9zY3JpcHRcIiwge1xuICAgICAgICAgICAgICAgIFwiZGF0YS1uLWNzc1wiOiAoX25vbmNlMSA9IHRoaXMucHJvcHMubm9uY2UpICE9PSBudWxsICYmIF9ub25jZTEgIT09IHZvaWQgMCA/IF9ub25jZTEgOiAnJ1xuICAgICAgICAgICAgfSksIHRoaXMuY29udGV4dC5pc0RldmVsb3BtZW50ICYmIC8vIHRoaXMgZWxlbWVudCBpcyB1c2VkIHRvIG1vdW50IGRldmVsb3BtZW50IHN0eWxlcyBzbyB0aGVcbiAgICAgICAgICAgIC8vIG9yZGVyaW5nIG1hdGNoZXMgcHJvZHVjdGlvblxuICAgICAgICAgICAgLy8gKGJ5IGRlZmF1bHQsIHN0eWxlLWxvYWRlciBpbmplY3RzIGF0IHRoZSBib3R0b20gb2YgPGhlYWQgLz4pXG4gICAgICAgICAgICAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJub3NjcmlwdFwiLCB7XG4gICAgICAgICAgICAgICAgaWQ6IFwiX19uZXh0X2Nzc19fRE9fTk9UX1VTRV9fXCJcbiAgICAgICAgICAgIH0pLCBzdHlsZXMgfHwgbnVsbCksIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChfcmVhY3QuZGVmYXVsdC5GcmFnbWVudCwge1xuICAgICAgICAgICAgfSwgLi4uaGVhZFRhZ3MgfHwgW10pKSk7XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybigvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoRGVmZXJyYWJsZUhlYWQsIG51bGwpKTtcbiAgICB9XG59XG5leHBvcnRzLkhlYWQgPSBIZWFkO1xuSGVhZC5jb250ZXh0VHlwZSA9IF91dGlscy5IdG1sQ29udGV4dDtcbmZ1bmN0aW9uIE1haW4oeyBjaGlsZHJlbiAgfSkge1xuICAgIGNvbnN0IHsgaW5BbXBNb2RlICwgZG9jQ29tcG9uZW50c1JlbmRlcmVkICwgdXNlTWFpbkNvbnRlbnQgIH0gPSAoMCwgX3JlYWN0KS51c2VDb250ZXh0KF91dGlscy5IdG1sQ29udGV4dCk7XG4gICAgY29uc3QgY29udGVudCA9IHVzZU1haW5Db250ZW50KGNoaWxkcmVuKTtcbiAgICBkb2NDb21wb25lbnRzUmVuZGVyZWQuTWFpbiA9IHRydWU7XG4gICAgaWYgKGluQW1wTW9kZSkgcmV0dXJuIGNvbnRlbnQ7XG4gICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgIGlkOiBcIl9fbmV4dFwiXG4gICAgfSwgY29udGVudCkpO1xufVxuY2xhc3MgTmV4dFNjcmlwdCBleHRlbmRzIF9yZWFjdC5Db21wb25lbnQge1xuICAgIGdldER5bmFtaWNDaHVua3MoZmlsZXMpIHtcbiAgICAgICAgcmV0dXJuIGdldER5bmFtaWNDaHVua3ModGhpcy5jb250ZXh0LCB0aGlzLnByb3BzLCBmaWxlcyk7XG4gICAgfVxuICAgIGdldFByZU5leHRTY3JpcHRzKCkge1xuICAgICAgICByZXR1cm4gZ2V0UHJlTmV4dFNjcmlwdHModGhpcy5jb250ZXh0LCB0aGlzLnByb3BzKTtcbiAgICB9XG4gICAgZ2V0U2NyaXB0cyhmaWxlcykge1xuICAgICAgICByZXR1cm4gZ2V0U2NyaXB0cyh0aGlzLmNvbnRleHQsIHRoaXMucHJvcHMsIGZpbGVzKTtcbiAgICB9XG4gICAgZ2V0UG9seWZpbGxTY3JpcHRzKCkge1xuICAgICAgICByZXR1cm4gZ2V0UG9seWZpbGxTY3JpcHRzKHRoaXMuY29udGV4dCwgdGhpcy5wcm9wcyk7XG4gICAgfVxuICAgIHN0YXRpYyBnZXRJbmxpbmVTY3JpcHRTb3VyY2UoY29udGV4dCkge1xuICAgICAgICBjb25zdCB7IF9fTkVYVF9EQVRBX18gIH0gPSBjb250ZXh0O1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgZGF0YSA9IEpTT04uc3RyaW5naWZ5KF9fTkVYVF9EQVRBX18pO1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYnl0ZXMgPSBCdWZmZXIuZnJvbShkYXRhKS5ieXRlTGVuZ3RoO1xuICAgICAgICAgICAgICAgIGNvbnN0IHByZXR0eUJ5dGVzID0gcmVxdWlyZSgnLi4vbGliL3ByZXR0eS1ieXRlcycpLmRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgaWYgKGJ5dGVzID4gMTI4ICogMTAwMCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYFdhcm5pbmc6IGRhdGEgZm9yIHBhZ2UgXCIke19fTkVYVF9EQVRBX18ucGFnZX1cIiBpcyAke3ByZXR0eUJ5dGVzKGJ5dGVzKX0sIHRoaXMgYW1vdW50IG9mIGRhdGEgY2FuIHJlZHVjZSBwZXJmb3JtYW5jZS5cXG5TZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2xhcmdlLXBhZ2UtZGF0YWApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiAoMCwgX2h0bWxlc2NhcGUpLmh0bWxFc2NhcGVKc29uU3RyaW5nKGRhdGEpO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIGlmICgoMCwgX2lzRXJyb3IpLmRlZmF1bHQoZXJyKSAmJiBlcnIubWVzc2FnZS5pbmRleE9mKCdjaXJjdWxhciBzdHJ1Y3R1cmUnKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQ2lyY3VsYXIgc3RydWN0dXJlIGluIFwiZ2V0SW5pdGlhbFByb3BzXCIgcmVzdWx0IG9mIHBhZ2UgXCIke19fTkVYVF9EQVRBX18ucGFnZX1cIi4gaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvY2lyY3VsYXItc3RydWN0dXJlYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmVuZGVyKCkge1xuICAgICAgICBjb25zdCB7IGFzc2V0UHJlZml4ICwgaW5BbXBNb2RlICwgYnVpbGRNYW5pZmVzdCAsIHVuc3RhYmxlX3J1bnRpbWVKUyAsIGRvY0NvbXBvbmVudHNSZW5kZXJlZCAsIGRldk9ubHlDYWNoZUJ1c3RlclF1ZXJ5U3RyaW5nICwgZGlzYWJsZU9wdGltaXplZExvYWRpbmcgLCB1c2VNYXliZURlZmVyQ29udGVudCAsICB9ID0gdGhpcy5jb250ZXh0O1xuICAgICAgICBjb25zdCBkaXNhYmxlUnVudGltZUpTID0gdW5zdGFibGVfcnVudGltZUpTID09PSBmYWxzZTtcbiAgICAgICAgZG9jQ29tcG9uZW50c1JlbmRlcmVkLk5leHRTY3JpcHQgPSB0cnVlO1xuICAgICAgICAvLyBNdXN0IG5lc3QgY29tcG9uZW50IHRvIHVzZSBjdXN0b20gaG9va1xuICAgICAgICBjb25zdCBEZWZlcnJhYmxlTmV4dFNjcmlwdCA9ICgpPT57XG4gICAgICAgICAgICBjb25zdCBbLCBjb250ZW50XSA9IHVzZU1heWJlRGVmZXJDb250ZW50KCdORVhUX1NDUklQVCcsICgpPT57XG4gICAgICAgICAgICAgICAgaWYgKGluQW1wTW9kZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhbXBEZXZGaWxlcyA9IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmJ1aWxkTWFuaWZlc3QuZGV2RmlsZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5idWlsZE1hbmlmZXN0LnBvbHlmaWxsRmlsZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5idWlsZE1hbmlmZXN0LmFtcERldkZpbGVzLCBcbiAgICAgICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChfcmVhY3QuZGVmYXVsdC5GcmFnbWVudCwgbnVsbCwgZGlzYWJsZVJ1bnRpbWVKUyA/IG51bGwgOiAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiX19ORVhUX0RBVEFfX1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBub25jZTogdGhpcy5wcm9wcy5ub25jZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNyb3NzT3JpZ2luOiB0aGlzLnByb3BzLmNyb3NzT3JpZ2luIHx8IHByb2Nlc3MuZW52Ll9fTkVYVF9DUk9TU19PUklHSU4sXG4gICAgICAgICAgICAgICAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9faHRtbDogTmV4dFNjcmlwdC5nZXRJbmxpbmVTY3JpcHRTb3VyY2UodGhpcy5jb250ZXh0KVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZGF0YS1hbXBkZXZtb2RlXCI6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgfSksIGFtcERldkZpbGVzLm1hcCgoZmlsZSk9Pi8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChcInNjcmlwdFwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBmaWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYzogYCR7YXNzZXRQcmVmaXh9L19uZXh0LyR7ZmlsZX0ke2Rldk9ubHlDYWNoZUJ1c3RlclF1ZXJ5U3RyaW5nfWAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9uY2U6IHRoaXMucHJvcHMubm9uY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Jvc3NPcmlnaW46IHRoaXMucHJvcHMuY3Jvc3NPcmlnaW4gfHwgcHJvY2Vzcy5lbnYuX19ORVhUX0NST1NTX09SSUdJTixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRhdGEtYW1wZGV2bW9kZVwiOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICApKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLmNyb3NzT3JpZ2luKSBjb25zb2xlLndhcm4oJ1dhcm5pbmc6IGBOZXh0U2NyaXB0YCBhdHRyaWJ1dGUgYGNyb3NzT3JpZ2luYCBpcyBkZXByZWNhdGVkLiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9kb2MtY3Jvc3NvcmlnaW4tZGVwcmVjYXRlZCcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlcyA9IGdldERvY3VtZW50RmlsZXModGhpcy5jb250ZXh0LmJ1aWxkTWFuaWZlc3QsIHRoaXMuY29udGV4dC5fX05FWFRfREFUQV9fLnBhZ2UsIGluQW1wTW9kZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChfcmVhY3QuZGVmYXVsdC5GcmFnbWVudCwgbnVsbCwgIWRpc2FibGVSdW50aW1lSlMgJiYgYnVpbGRNYW5pZmVzdC5kZXZGaWxlcyA/IGJ1aWxkTWFuaWZlc3QuZGV2RmlsZXMubWFwKChmaWxlKT0+LyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwic2NyaXB0XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleTogZmlsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNyYzogYCR7YXNzZXRQcmVmaXh9L19uZXh0LyR7ZW5jb2RlVVJJKGZpbGUpfSR7ZGV2T25seUNhY2hlQnVzdGVyUXVlcnlTdHJpbmd9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vbmNlOiB0aGlzLnByb3BzLm5vbmNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgY3Jvc3NPcmlnaW46IHRoaXMucHJvcHMuY3Jvc3NPcmlnaW4gfHwgcHJvY2Vzcy5lbnYuX19ORVhUX0NST1NTX09SSUdJTlxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICkgOiBudWxsLCBkaXNhYmxlUnVudGltZUpTID8gbnVsbCA6IC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChcInNjcmlwdFwiLCB7XG4gICAgICAgICAgICAgICAgICAgIGlkOiBcIl9fTkVYVF9EQVRBX19cIixcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgICAgICAgICAgICAgICAgIG5vbmNlOiB0aGlzLnByb3BzLm5vbmNlLFxuICAgICAgICAgICAgICAgICAgICBjcm9zc09yaWdpbjogdGhpcy5wcm9wcy5jcm9zc09yaWdpbiB8fCBwcm9jZXNzLmVudi5fX05FWFRfQ1JPU1NfT1JJR0lOLFxuICAgICAgICAgICAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgX19odG1sOiBOZXh0U2NyaXB0LmdldElubGluZVNjcmlwdFNvdXJjZSh0aGlzLmNvbnRleHQpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KSwgZGlzYWJsZU9wdGltaXplZExvYWRpbmcgJiYgIWRpc2FibGVSdW50aW1lSlMgJiYgdGhpcy5nZXRQb2x5ZmlsbFNjcmlwdHMoKSwgZGlzYWJsZU9wdGltaXplZExvYWRpbmcgJiYgIWRpc2FibGVSdW50aW1lSlMgJiYgdGhpcy5nZXRQcmVOZXh0U2NyaXB0cygpLCBkaXNhYmxlT3B0aW1pemVkTG9hZGluZyAmJiAhZGlzYWJsZVJ1bnRpbWVKUyAmJiB0aGlzLmdldER5bmFtaWNDaHVua3MoZmlsZXMpLCBkaXNhYmxlT3B0aW1pemVkTG9hZGluZyAmJiAhZGlzYWJsZVJ1bnRpbWVKUyAmJiB0aGlzLmdldFNjcmlwdHMoZmlsZXMpKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChpbkFtcE1vZGUgJiYgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybigvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoRGVmZXJyYWJsZU5leHRTY3JpcHQsIG51bGwpKTtcbiAgICB9XG59XG5leHBvcnRzLk5leHRTY3JpcHQgPSBOZXh0U2NyaXB0O1xuTmV4dFNjcmlwdC5jb250ZXh0VHlwZSA9IF91dGlscy5IdG1sQ29udGV4dDtcbk5leHRTY3JpcHQuc2FmYXJpTm9tb2R1bGVGaXggPSAnIWZ1bmN0aW9uKCl7dmFyIGU9ZG9jdW1lbnQsdD1lLmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIik7aWYoIShcIm5vTW9kdWxlXCJpbiB0KSYmXCJvbmJlZm9yZWxvYWRcImluIHQpe3ZhciBuPSExO2UuYWRkRXZlbnRMaXN0ZW5lcihcImJlZm9yZWxvYWRcIixmdW5jdGlvbihlKXtpZihlLnRhcmdldD09PXQpbj0hMDtlbHNlIGlmKCFlLnRhcmdldC5oYXNBdHRyaWJ1dGUoXCJub21vZHVsZVwiKXx8IW4pcmV0dXJuO2UucHJldmVudERlZmF1bHQoKX0sITApLHQudHlwZT1cIm1vZHVsZVwiLHQuc3JjPVwiLlwiLGUuaGVhZC5hcHBlbmRDaGlsZCh0KSx0LnJlbW92ZSgpfX0oKTsnO1xuZnVuY3Rpb24gZ2V0QW1wUGF0aChhbXBQYXRoLCBhc1BhdGgpIHtcbiAgICByZXR1cm4gYW1wUGF0aCB8fCBgJHthc1BhdGh9JHthc1BhdGguaW5jbHVkZXMoJz8nKSA/ICcmJyA6ICc/J31hbXA9MWA7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPV9kb2N1bWVudC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiX3V0aWxzIiwiRG9jdW1lbnRDb250ZXh0IiwiRG9jdW1lbnRJbml0aWFsUHJvcHMiLCJEb2N1bWVudFByb3BzIiwiSHRtbCIsIk1haW4iLCJkZWZhdWx0IiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX2NvbnN0YW50cyIsIl9nZXRQYWdlRmlsZXMiLCJfdXRpbHMxIiwiX2h0bWxlc2NhcGUiLCJfc2NyaXB0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9pc0Vycm9yIiwib2JqIiwiX19lc01vZHVsZSIsIm5ld09iaiIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJzZXQiLCJnZXREb2N1bWVudEZpbGVzIiwiYnVpbGRNYW5pZmVzdCIsInBhdGhuYW1lIiwiaW5BbXBNb2RlIiwic2hhcmVkRmlsZXMiLCJnZXRQYWdlRmlsZXMiLCJwYWdlRmlsZXMiLCJhbGxGaWxlcyIsIlNldCIsImdldFBvbHlmaWxsU2NyaXB0cyIsImNvbnRleHQiLCJwcm9wcyIsImFzc2V0UHJlZml4IiwiZGV2T25seUNhY2hlQnVzdGVyUXVlcnlTdHJpbmciLCJkaXNhYmxlT3B0aW1pemVkTG9hZGluZyIsInBvbHlmaWxsRmlsZXMiLCJmaWx0ZXIiLCJwb2x5ZmlsbCIsImVuZHNXaXRoIiwibWFwIiwiY3JlYXRlRWxlbWVudCIsImRlZmVyIiwibm9uY2UiLCJjcm9zc09yaWdpbiIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfQ1JPU1NfT1JJR0lOIiwibm9Nb2R1bGUiLCJzcmMiLCJnZXRQcmVOZXh0U2NyaXB0cyIsInNjcmlwdExvYWRlciIsImJlZm9yZUludGVyYWN0aXZlIiwiZmlsZSIsImluZGV4Iiwic3RyYXRlZ3kiLCJzY3JpcHRQcm9wcyIsImFzc2lnbiIsImdldER5bmFtaWNDaHVua3MiLCJmaWxlcyIsImR5bmFtaWNJbXBvcnRzIiwiaXNEZXZlbG9wbWVudCIsImluY2x1ZGVzIiwiYXN5bmMiLCJlbmNvZGVVUkkiLCJnZXRTY3JpcHRzIiwicmVmIiwibm9ybWFsU2NyaXB0cyIsImxvd1ByaW9yaXR5U2NyaXB0cyIsImxvd1ByaW9yaXR5RmlsZXMiLCJEb2N1bWVudCIsIkNvbXBvbmVudCIsImdldEluaXRpYWxQcm9wcyIsImN0eCIsImRlZmF1bHRHZXRJbml0aWFsUHJvcHMiLCJyZW5kZXIiLCJIZWFkIiwiTmV4dFNjcmlwdCIsImRvY0NvbXBvbmVudHNSZW5kZXJlZCIsImxvY2FsZSIsInVzZUNvbnRleHQiLCJIdG1sQ29udGV4dCIsImxhbmciLCJ1bmRlZmluZWQiLCJhbXAiLCJBbXBTdHlsZXMiLCJzdHlsZXMiLCJjdXJTdHlsZXMiLCJBcnJheSIsImlzQXJyYXkiLCJjaGlsZHJlbiIsImhhc1N0eWxlcyIsImVsIiwicmVmMSIsImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIiwiX19odG1sIiwiZm9yRWFjaCIsImNoaWxkIiwicHVzaCIsInN0eWxlIiwiam9pbiIsInJlcGxhY2UiLCJnZXRDc3NMaW5rcyIsImNzc0ZpbGVzIiwiZiIsInVubWFuZ2VkRmlsZXMiLCJkeW5hbWljQ3NzRmlsZXMiLCJmcm9tIiwibGVuZ3RoIiwiZXhpc3RpbmciLCJoYXMiLCJjc3NMaW5rRWxlbWVudHMiLCJpc1NoYXJlZEZpbGUiLCJfX05FWFRfT1BUSU1JWkVfQ1NTIiwicmVsIiwiaHJlZiIsImFzIiwiaXNVbm1hbmFnZWRGaWxlIiwiX19ORVhUX09QVElNSVpFX0ZPTlRTIiwibWFrZVN0eWxlc2hlZXRJbmVydCIsImdldFByZWxvYWREeW5hbWljQ2h1bmtzIiwiQm9vbGVhbiIsImdldFByZWxvYWRNYWluTGlua3MiLCJwcmVsb2FkRmlsZXMiLCJoYW5kbGVEb2N1bWVudFNjcmlwdExvYWRlckl0ZW1zIiwic2NyaXB0TG9hZGVySXRlbXMiLCJmaWx0ZXJlZENoaWxkcmVuIiwiQ2hpbGRyZW4iLCJ0eXBlIiwiY29uY2F0IiwiX19ORVhUX0RBVEFfXyIsIm5vZGUiLCJjIiwiT1BUSU1JWkVEX0ZPTlRfUFJPVklERVJTIiwic29tZSIsInVybCIsInN0YXJ0c1dpdGgiLCJuZXdQcm9wcyIsImNsb25lRWxlbWVudCIsImFtcFBhdGgiLCJoeWJyaWRBbXAiLCJjYW5vbmljYWxCYXNlIiwiZGFuZ2Vyb3VzQXNQYXRoIiwiaGVhZFRhZ3MiLCJ1bnN0YWJsZV9ydW50aW1lSlMiLCJ1bnN0YWJsZV9Kc1ByZWxvYWQiLCJ1c2VNYXliZURlZmVyQ29udGVudCIsImRpc2FibGVSdW50aW1lSlMiLCJkaXNhYmxlSnNQcmVsb2FkIiwiaGVhZCIsImNzc1ByZWxvYWRzIiwib3RoZXJIZWFkRWxlbWVudHMiLCJ0b0FycmF5IiwiaXNSZWFjdEhlbG1ldCIsInJlZjYiLCJjb25zb2xlIiwid2FybiIsIm5hbWUiLCJoYXNBbXBodG1sUmVsIiwiaGFzQ2Fub25pY2FsUmVsIiwiYmFkUHJvcCIsImluZGV4T2YiLCJrZXlzIiwicHJvcCIsInBhZ2UiLCJEZWZlcnJhYmxlSGVhZCIsImdldER5bmFtaWNIZWFkQ29udGVudCIsIkZyYWdtZW50IiwiY29udGVudCIsImNvdW50IiwidG9TdHJpbmciLCJnZXREeW5hbWljU2NyaXB0UHJlbG9hZHMiLCJnZXREeW5hbWljU2NyaXB0Q29udGVudCIsImlzRGVmZXJyZWQiLCJfbm9uY2UiLCJfbm9uY2UxIiwiX19ORVhUX0NPTkNVUlJFTlRfRkVBVFVSRVMiLCJjbGVhbkFtcFBhdGgiLCJnZXRBbXBQYXRoIiwiX19ORVhUX09QVElNSVpFX0lNQUdFUyIsImlkIiwiY29udGV4dFR5cGUiLCJ1c2VNYWluQ29udGVudCIsImdldElubGluZVNjcmlwdFNvdXJjZSIsImRhdGEiLCJKU09OIiwic3RyaW5naWZ5IiwiYnl0ZXMiLCJCdWZmZXIiLCJieXRlTGVuZ3RoIiwicHJldHR5Qnl0ZXMiLCJodG1sRXNjYXBlSnNvblN0cmluZyIsImVyciIsIm1lc3NhZ2UiLCJFcnJvciIsIkRlZmVycmFibGVOZXh0U2NyaXB0IiwiYW1wRGV2RmlsZXMiLCJkZXZGaWxlcyIsInNhZmFyaU5vbW9kdWxlRml4IiwiYXNQYXRoIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/pages/_document.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/lib/is-error.js": +/*!************************************************!*\ + !*** ./node_modules/next/dist/lib/is-error.js ***! + \************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = isError;\nfunction isError(err) {\n return typeof err === 'object' && err !== null && 'name' in err && 'message' in err;\n}\n\n//# sourceMappingURL=is-error.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9pcy1lcnJvci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGtCQUFlO0FBQ2Y7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmllLXJlYWN0Ly4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvaXMtZXJyb3IuanM/MTc4ZSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IGlzRXJyb3I7XG5mdW5jdGlvbiBpc0Vycm9yKGVycikge1xuICAgIHJldHVybiB0eXBlb2YgZXJyID09PSAnb2JqZWN0JyAmJiBlcnIgIT09IG51bGwgJiYgJ25hbWUnIGluIGVyciAmJiAnbWVzc2FnZScgaW4gZXJyO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy1lcnJvci5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/lib/is-error.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/lib/pretty-bytes.js": +/*!****************************************************!*\ + !*** ./node_modules/next/dist/lib/pretty-bytes.js ***! + \****************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = prettyBytes;\n/*\nMIT License\n\nCopyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/ const UNITS = [\n 'B',\n 'kB',\n 'MB',\n 'GB',\n 'TB',\n 'PB',\n 'EB',\n 'ZB',\n 'YB'\n];\n/*\nFormats the given number using `Number#toLocaleString`.\n- If locale is a string, the value is expected to be a locale-key (for example: `de`).\n- If locale is true, the system default locale is used for translation.\n- If no value for locale is specified, the number is returned unmodified.\n*/ const toLocaleString = (number, locale)=>{\n let result = number;\n if (typeof locale === 'string') {\n result = number.toLocaleString(locale);\n } else if (locale === true) {\n result = number.toLocaleString();\n }\n return result;\n};\nfunction prettyBytes(number, options) {\n if (!Number.isFinite(number)) {\n throw new TypeError(`Expected a finite number, got ${typeof number}: ${number}`);\n }\n options = Object.assign({\n }, options);\n if (options.signed && number === 0) {\n return ' 0 B';\n }\n const isNegative = number < 0;\n const prefix = isNegative ? '-' : options.signed ? '+' : '';\n if (isNegative) {\n number = -number;\n }\n if (number < 1) {\n const numberString = toLocaleString(number, options.locale);\n return prefix + numberString + ' B';\n }\n const exponent = Math.min(Math.floor(Math.log10(number) / 3), UNITS.length - 1);\n number = Number((number / Math.pow(1000, exponent)).toPrecision(3));\n const numberString = toLocaleString(number, options.locale);\n const unit = UNITS[exponent];\n return prefix + numberString + ' ' + unit;\n}\n\n//# sourceMappingURL=pretty-bytes.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9wcmV0dHktYnl0ZXMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixrQkFBZTtBQUNmO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZEQUE2RCxjQUFjLElBQUksT0FBTztBQUN0RjtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovL3ZpZS1yZWFjdC8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL3ByZXR0eS1ieXRlcy5qcz9mZjMwIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gcHJldHR5Qnl0ZXM7XG4vKlxuTUlUIExpY2Vuc2VcblxuQ29weXJpZ2h0IChjKSBTaW5kcmUgU29yaHVzIDxzaW5kcmVzb3JodXNAZ21haWwuY29tPiAoc2luZHJlc29yaHVzLmNvbSlcblxuUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcblxuVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG5cblRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuKi8gY29uc3QgVU5JVFMgPSBbXG4gICAgJ0InLFxuICAgICdrQicsXG4gICAgJ01CJyxcbiAgICAnR0InLFxuICAgICdUQicsXG4gICAgJ1BCJyxcbiAgICAnRUInLFxuICAgICdaQicsXG4gICAgJ1lCJ1xuXTtcbi8qXG5Gb3JtYXRzIHRoZSBnaXZlbiBudW1iZXIgdXNpbmcgYE51bWJlciN0b0xvY2FsZVN0cmluZ2AuXG4tIElmIGxvY2FsZSBpcyBhIHN0cmluZywgdGhlIHZhbHVlIGlzIGV4cGVjdGVkIHRvIGJlIGEgbG9jYWxlLWtleSAoZm9yIGV4YW1wbGU6IGBkZWApLlxuLSBJZiBsb2NhbGUgaXMgdHJ1ZSwgdGhlIHN5c3RlbSBkZWZhdWx0IGxvY2FsZSBpcyB1c2VkIGZvciB0cmFuc2xhdGlvbi5cbi0gSWYgbm8gdmFsdWUgZm9yIGxvY2FsZSBpcyBzcGVjaWZpZWQsIHRoZSBudW1iZXIgaXMgcmV0dXJuZWQgdW5tb2RpZmllZC5cbiovIGNvbnN0IHRvTG9jYWxlU3RyaW5nID0gKG51bWJlciwgbG9jYWxlKT0+e1xuICAgIGxldCByZXN1bHQgPSBudW1iZXI7XG4gICAgaWYgKHR5cGVvZiBsb2NhbGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJlc3VsdCA9IG51bWJlci50b0xvY2FsZVN0cmluZyhsb2NhbGUpO1xuICAgIH0gZWxzZSBpZiAobG9jYWxlID09PSB0cnVlKSB7XG4gICAgICAgIHJlc3VsdCA9IG51bWJlci50b0xvY2FsZVN0cmluZygpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufTtcbmZ1bmN0aW9uIHByZXR0eUJ5dGVzKG51bWJlciwgb3B0aW9ucykge1xuICAgIGlmICghTnVtYmVyLmlzRmluaXRlKG51bWJlcikpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgYSBmaW5pdGUgbnVtYmVyLCBnb3QgJHt0eXBlb2YgbnVtYmVyfTogJHtudW1iZXJ9YCk7XG4gICAgfVxuICAgIG9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHtcbiAgICB9LCBvcHRpb25zKTtcbiAgICBpZiAob3B0aW9ucy5zaWduZWQgJiYgbnVtYmVyID09PSAwKSB7XG4gICAgICAgIHJldHVybiAnIDAgQic7XG4gICAgfVxuICAgIGNvbnN0IGlzTmVnYXRpdmUgPSBudW1iZXIgPCAwO1xuICAgIGNvbnN0IHByZWZpeCA9IGlzTmVnYXRpdmUgPyAnLScgOiBvcHRpb25zLnNpZ25lZCA/ICcrJyA6ICcnO1xuICAgIGlmIChpc05lZ2F0aXZlKSB7XG4gICAgICAgIG51bWJlciA9IC1udW1iZXI7XG4gICAgfVxuICAgIGlmIChudW1iZXIgPCAxKSB7XG4gICAgICAgIGNvbnN0IG51bWJlclN0cmluZyA9IHRvTG9jYWxlU3RyaW5nKG51bWJlciwgb3B0aW9ucy5sb2NhbGUpO1xuICAgICAgICByZXR1cm4gcHJlZml4ICsgbnVtYmVyU3RyaW5nICsgJyBCJztcbiAgICB9XG4gICAgY29uc3QgZXhwb25lbnQgPSBNYXRoLm1pbihNYXRoLmZsb29yKE1hdGgubG9nMTAobnVtYmVyKSAvIDMpLCBVTklUUy5sZW5ndGggLSAxKTtcbiAgICBudW1iZXIgPSBOdW1iZXIoKG51bWJlciAvIE1hdGgucG93KDEwMDAsIGV4cG9uZW50KSkudG9QcmVjaXNpb24oMykpO1xuICAgIGNvbnN0IG51bWJlclN0cmluZyA9IHRvTG9jYWxlU3RyaW5nKG51bWJlciwgb3B0aW9ucy5sb2NhbGUpO1xuICAgIGNvbnN0IHVuaXQgPSBVTklUU1tleHBvbmVudF07XG4gICAgcmV0dXJuIHByZWZpeCArIG51bWJlclN0cmluZyArICcgJyArIHVuaXQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXByZXR0eS1ieXRlcy5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/lib/pretty-bytes.js\n"); + +/***/ }), + +/***/ "../server/get-page-files": +/*!*****************************************************!*\ + !*** external "next/dist/server/get-page-files.js" ***! + \*****************************************************/ +/***/ ((module) => { + +module.exports = require("next/dist/server/get-page-files.js"); + +/***/ }), + +/***/ "../server/htmlescape": +/*!*************************************************!*\ + !*** external "next/dist/server/htmlescape.js" ***! + \*************************************************/ +/***/ ((module) => { + +module.exports = require("next/dist/server/htmlescape.js"); + +/***/ }), + +/***/ "../server/utils": +/*!********************************************!*\ + !*** external "next/dist/server/utils.js" ***! + \********************************************/ +/***/ ((module) => { + +module.exports = require("next/dist/server/utils.js"); + +/***/ }), + +/***/ "../shared/lib/constants": +/*!****************************************************!*\ + !*** external "next/dist/shared/lib/constants.js" ***! + \****************************************************/ +/***/ ((module) => { + +module.exports = require("next/dist/shared/lib/constants.js"); + +/***/ }), + +/***/ "../shared/lib/head-manager-context": +/*!***************************************************************!*\ + !*** external "next/dist/shared/lib/head-manager-context.js" ***! + \***************************************************************/ +/***/ ((module) => { + +module.exports = require("next/dist/shared/lib/head-manager-context.js"); + +/***/ }), + +/***/ "../shared/lib/utils": +/*!************************************************!*\ + !*** external "next/dist/shared/lib/utils.js" ***! + \************************************************/ +/***/ ((module) => { + +module.exports = require("next/dist/shared/lib/utils.js"); + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "react" ***! + \************************/ +/***/ ((module) => { + +module.exports = require("react"); + +/***/ }) + +}; +; + +// load runtime +var __webpack_require__ = require("../webpack-runtime.js"); +__webpack_require__.C(exports); +var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) +var __webpack_exports__ = (__webpack_exec__("./node_modules/next/dist/pages/_document.js")); +module.exports = __webpack_exports__; + +})(); \ No newline at end of file diff --git a/.next/server/pages/_error.js b/.next/server/pages/_error.js new file mode 100644 index 0000000..e048671 --- /dev/null +++ b/.next/server/pages/_error.js @@ -0,0 +1,56 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +(() => { +var exports = {}; +exports.id = "pages/_error"; +exports.ids = ["pages/_error"]; +exports.modules = { + +/***/ "./node_modules/next/dist/pages/_error.js": +/*!************************************************!*\ + !*** ./node_modules/next/dist/pages/_error.js ***! + \************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"react\"));\n\nvar _head = _interopRequireDefault(__webpack_require__(/*! ../shared/lib/head */ \"../shared/lib/head\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\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};\n\nfunction _getInitialProps({\n res,\n err\n}) {\n const statusCode = res && res.statusCode ? res.statusCode : err ? err.statusCode : 404;\n return {\n statusCode\n };\n}\n\nclass Error extends _react.default.Component {\n render() {\n const {\n statusCode\n } = this.props;\n const title = this.props.title || statusCodes[statusCode] || 'An unexpected error has occurred';\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n style: styles.error\n }, /*#__PURE__*/_react.default.createElement(_head.default, null, /*#__PURE__*/_react.default.createElement(\"title\", null, statusCode ? `${statusCode}: ${title}` : 'Application error: a client-side exception has occurred')), /*#__PURE__*/_react.default.createElement(\"div\", null, /*#__PURE__*/_react.default.createElement(\"style\", {\n dangerouslySetInnerHTML: {\n __html: 'body { margin: 0 }'\n }\n }), statusCode ? /*#__PURE__*/_react.default.createElement(\"h1\", {\n style: styles.h1\n }, statusCode) : null, /*#__PURE__*/_react.default.createElement(\"div\", {\n style: styles.desc\n }, /*#__PURE__*/_react.default.createElement(\"h2\", {\n style: styles.h2\n }, this.props.title || statusCode ? title : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, \"Application error: a client-side exception has occurred (see the browser console for more information)\"), \".\"))));\n }\n\n}\n\nError.displayName = 'ErrorPage';\nError.getInitialProps = _getInitialProps;\nError.origGetInitialProps = _getInitialProps;\nexports[\"default\"] = Error;\nconst styles = {\n error: {\n color: '#000',\n background: '#fff',\n fontFamily: '-apple-system, BlinkMacSystemFont, Roboto, \"Segoe UI\", \"Fira Sans\", Avenir, \"Helvetica Neue\", \"Lucida Grande\", sans-serif',\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 textAlign: 'left',\n lineHeight: '49px',\n height: '49px',\n verticalAlign: 'middle'\n },\n h1: {\n display: 'inline-block',\n borderRight: '1px solid rgba(0, 0, 0,.3)',\n margin: 0,\n marginRight: '20px',\n padding: '10px 23px 10px 0',\n fontSize: '24px',\n fontWeight: 500,\n verticalAlign: 'top'\n },\n h2: {\n fontSize: '14px',\n fontWeight: 'normal',\n lineHeight: 'inherit',\n margin: 0,\n padding: 0\n }\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3BhZ2VzL19lcnJvci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFDYkEsOENBQTZDO0FBQ3pDRyxFQUFBQSxLQUFLLEVBQUU7QUFEa0MsQ0FBN0M7QUFHQUQsa0JBQUEsR0FBa0IsS0FBSyxDQUF2Qjs7QUFDQSxJQUFJRyxNQUFNLEdBQUdDLHNCQUFzQixDQUFDQyxtQkFBTyxDQUFDLG9CQUFELENBQVIsQ0FBbkM7O0FBQ0EsSUFBSUMsS0FBSyxHQUFHRixzQkFBc0IsQ0FBQ0MsbUJBQU8sQ0FBQyw4Q0FBRCxDQUFSLENBQWxDOztBQUNBLFNBQVNELHNCQUFULENBQWdDRyxHQUFoQyxFQUFxQztBQUNqQyxTQUFPQSxHQUFHLElBQUlBLEdBQUcsQ0FBQ0MsVUFBWCxHQUF3QkQsR0FBeEIsR0FBOEI7QUFDakNMLElBQUFBLE9BQU8sRUFBRUs7QUFEd0IsR0FBckM7QUFHSDs7QUFDRCxNQUFNRSxXQUFXLEdBQUc7QUFDaEIsT0FBSyxhQURXO0FBRWhCLE9BQUssOEJBRlc7QUFHaEIsT0FBSyxvQkFIVztBQUloQixPQUFLO0FBSlcsQ0FBcEI7O0FBTUEsU0FBU0MsZ0JBQVQsQ0FBMEI7QUFBRUMsRUFBQUEsR0FBRjtBQUFRQyxFQUFBQTtBQUFSLENBQTFCLEVBQTBDO0FBQ3RDLFFBQU1DLFVBQVUsR0FBR0YsR0FBRyxJQUFJQSxHQUFHLENBQUNFLFVBQVgsR0FBd0JGLEdBQUcsQ0FBQ0UsVUFBNUIsR0FBeUNELEdBQUcsR0FBR0EsR0FBRyxDQUFDQyxVQUFQLEdBQW9CLEdBQW5GO0FBQ0EsU0FBTztBQUNIQSxJQUFBQTtBQURHLEdBQVA7QUFHSDs7QUFDRCxNQUFNQyxLQUFOLFNBQW9CWCxNQUFNLENBQUNELE9BQVAsQ0FBZWEsU0FBbkMsQ0FBNkM7QUFDekNDLEVBQUFBLE1BQU0sR0FBRztBQUNMLFVBQU07QUFBRUgsTUFBQUE7QUFBRixRQUFrQixLQUFLSSxLQUE3QjtBQUNBLFVBQU1DLEtBQUssR0FBRyxLQUFLRCxL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QUUsNEJBRmI7QUFHQUMsSUFBQUEsTUFBTSxFQUFFLENBSFI7QUFJQUMsSUFBQUEsV0FBVyxFQUFFLE1BSmI7QUFLQUMsSUFBQUEsT0FBTyxFQUFFLGtCQUxUO0FBTUFDLElBQUFBLFFBQVEsRUFBRSxNQU5WO0FBT0FDLElBQUFBLFVBQVUsRUFBRSxHQVBaO0FBUUFOLElBQUFBLGFBQWEsRUFBRTtBQVJmLEdBbkJPO0FBNkJYZixFQUFBQSxFQUFFLEVBQUU7QUFDQW9CLElBQUFBLFFBQVEsRUFBRSxNQURWO0FBRUFDLElBQUFBLFVBQVUsRUFBRSxRQUZaO0FBR0FQLElBQUFBLFVBQVUsRUFBRSxTQUhaO0FBSUFHLElBQUFBLE1BQU0sRUFBRSxDQUpSO0FBS0FFLElBQUFBLE9BQU8sRUFBRTtBQUxUO0FBN0JPLENBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly92aWUtcmVhY3QvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3BhZ2VzL19lcnJvci5qcz8xOGYyIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gdm9pZCAwO1xudmFyIF9yZWFjdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJlYWN0XCIpKTtcbnZhciBfaGVhZCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL3NoYXJlZC9saWIvaGVhZFwiKSk7XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5jb25zdCBzdGF0dXNDb2RlcyA9IHtcbiAgICA0MDA6ICdCYWQgUmVxdWVzdCcsXG4gICAgNDA0OiAnVGhpcyBwYWdlIGNvdWxkIG5vdCBiZSBmb3VuZCcsXG4gICAgNDA1OiAnTWV0aG9kIE5vdCBBbGxvd2VkJyxcbiAgICA1MDA6ICdJbnRlcm5hbCBTZXJ2ZXIgRXJyb3InXG59O1xuZnVuY3Rpb24gX2dldEluaXRpYWxQcm9wcyh7IHJlcyAsIGVyciAgfSkge1xuICAgIGNvbnN0IHN0YXR1c0NvZGUgPSByZXMgJiYgcmVzLnN0YXR1c0NvZGUgPyByZXMuc3RhdHVzQ29kZSA6IGVyciA/IGVyci5zdGF0dXNDb2RlIDogNDA0O1xuICAgIHJldHVybiB7XG4gICAgICAgIHN0YXR1c0NvZGVcbiAgICB9O1xufVxuY2xhc3MgRXJyb3IgZXh0ZW5kcyBfcmVhY3QuZGVmYXVsdC5Db21wb25lbnQge1xuICAgIHJlbmRlcigpIHtcbiAgICAgICAgY29uc3QgeyBzdGF0dXNDb2RlICB9ID0gdGhpcy5wcm9wcztcbiAgICAgICAgY29uc3QgdGl0bGUgPSB0aGlzLnByb3BzLnRpdGxlIHx8IHN0YXR1c0NvZGVzW3N0YXR1c0NvZGVdIHx8ICdBbiB1bmV4cGVjdGVkIGVycm9yIGhhcyBvY2N1cnJlZCc7XG4gICAgICAgIHJldHVybigvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICAgICAgc3R5bGU6IHN0eWxlcy5lcnJvclxuICAgICAgICB9LCAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoX2hlYWQuZGVmYXVsdCwgbnVsbCwgLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwidGl0bGVcIiwgbnVsbCwgc3RhdHVzQ29kZSA/IGAke3N0YXR1c0NvZGV9OiAke3RpdGxlfWAgOiAnQXBwbGljYXRpb24gZXJyb3I6IGEgY2xpZW50LXNpZGUgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZCcpKSwgLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIG51bGwsIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIsIHtcbiAgICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MOiB7XG4gICAgICAgICAgICAgICAgX19odG1sOiAnYm9keSB7IG1hcmdpbjogMCB9J1xuICAgICAgICAgICAgfVxuICAgICAgICB9KSwgc3RhdHVzQ29kZSA/IC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImgxXCIsIHtcbiAgICAgICAgICAgIHN0eWxlOiBzdHlsZXMuaDFcbiAgICAgICAgfSwgc3RhdHVzQ29kZSkgOiBudWxsLCAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICAgICAgc3R5bGU6IHN0eWxlcy5kZXNjXG4gICAgICAgIH0sIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImgyXCIsIHtcbiAgICAgICAgICAgIHN0eWxlOiBzdHlsZXMuaDJcbiAgICAgICAgfSwgdGhpcy5wcm9wcy50aXRsZSB8fCBzdGF0dXNDb2RlID8gdGl0bGUgOiAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoX3JlYWN0LmRlZmF1bHQuRnJhZ21lbnQsIG51bGwsIFwiQXBwbGljYXRpb24gZXJyb3I6IGEgY2xpZW50LXNpZGUgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZCAoc2VlIHRoZSBicm93c2VyIGNvbnNvbGUgZm9yIG1vcmUgaW5mb3JtYXRpb24pXCIpLCBcIi5cIikpKSkpO1xuICAgIH1cbn1cbkVycm9yLmRpc3BsYXlOYW1lID0gJ0Vycm9yUGFnZSc7XG5FcnJvci5nZXRJbml0aWFsUHJvcHMgPSBfZ2V0SW5pdGlhbFByb3BzO1xuRXJyb3Iub3JpZ0dldEluaXRpYWxQcm9wcyA9IF9nZXRJbml0aWFsUHJvcHM7XG5leHBvcnRzLmRlZmF1bHQgPSBFcnJvcjtcbmNvbnN0IHN0eWxlcyA9IHtcbiAgICBlcnJvcjoge1xuICAgICAgICBjb2xvcjogJyMwMDAnLFxuICAgICAgICBiYWNrZ3JvdW5kOiAnI2ZmZicsXG4gICAgICAgIGZvbnRGYW1pbHk6ICctYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFJvYm90bywgXCJTZWdvZSBVSVwiLCBcIkZpcmEgU2Fuc1wiLCBBdmVuaXIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJMdWNpZGEgR3JhbmRlXCIsIHNhbnMtc2VyaWYnLFxuICAgICAgICBoZWlnaHQ6ICcxMDB2aCcsXG4gICAgICAgIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcidcbiAgICB9LFxuICAgIGRlc2M6IHtcbiAgICAgICAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG4gICAgICAgIHRleHRBbGlnbjogJ2xlZnQnLFxuICAgICAgICBsaW5lSGVpZ2h0OiAnNDlweCcsXG4gICAgICAgIGhlaWdodDogJzQ5cHgnLFxuICAgICAgICB2ZXJ0aWNhbEFsaWduOiAnbWlkZGxlJ1xuICAgIH0sXG4gICAgaDE6IHtcbiAgICAgICAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG4gICAgICAgIGJvcmRlclJpZ2h0OiAnMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwuMyknLFxuICAgICAgICBtYXJnaW46IDAsXG4gICAgICAgIG1hcmdpblJpZ2h0OiAnMjBweCcsXG4gICAgICAgIHBhZGRpbmc6ICcxMHB4IDIzcHggMTBweCAwJyxcbiAgICAgICAgZm9udFNpemU6ICcyNHB4JyxcbiAgICAgICAgZm9udFdlaWdodDogNTAwLFxuICAgICAgICB2ZXJ0aWNhbEFsaWduOiAndG9wJ1xuICAgIH0sXG4gICAgaDI6IHtcbiAgICAgICAgZm9udFNpemU6ICcxNHB4JyxcbiAgICAgICAgZm9udFdlaWdodDogJ25vcm1hbCcsXG4gICAgICAgIGxpbmVIZWlnaHQ6ICdpbmhlcml0JyxcbiAgICAgICAgbWFyZ2luOiAwLFxuICAgICAgICBwYWRkaW5nOiAwXG4gICAgfVxufTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9X2Vycm9yLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImRlZmF1bHQiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9oZWFkIiwib2JqIiwiX19lc01vZHVsZSIsInN0YXR1c0NvZGVzIiwiX2dldEluaXRpYWxQcm9wcyIsInJlcyIsImVyciIsInN0YXR1c0NvZGUiLCJFcnJvciIsIkNvbXBvbmVudCIsInJlbmRlciIsInByb3BzIiwidGl0bGUiLCJjcmVhdGVFbGVtZW50Iiwic3R5bGUiLCJzdHlsZXMiLCJlcnJvciIsImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIiwiX19odG1sIiwiaDEiLCJkZXNjIiwiaDIiLCJGcmFnbWVudCIsImRpc3BsYXlOYW1lIiwiZ2V0SW5pdGlhbFByb3BzIiwib3JpZ0dldEluaXRpYWxQcm9wcyIsImNvbG9yIiwiYmFja2dyb3VuZCIsImZvbnRGYW1pbHkiLCJoZWlnaHQiLCJ0ZXh0QWxpZ24iLCJkaXNwbGF5IiwiZmxleERpcmVjdGlvbiIsImFsaWduSXRlbXMiLCJqdXN0aWZ5Q29udGVudCIsImxpbmVIZWlnaHQiLCJ2ZXJ0aWNhbEFsaWduIiwiYm9yZGVyUmlnaHQiLCJtYXJnaW4iLCJtYXJnaW5SaWdodCIsInBhZGRpbmciLCJmb250U2l6ZSIsImZvbnRXZWlnaHQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/pages/_error.js\n"); + +/***/ }), + +/***/ "../shared/lib/head": +/*!***********************************************!*\ + !*** external "next/dist/shared/lib/head.js" ***! + \***********************************************/ +/***/ ((module) => { + +module.exports = require("next/dist/shared/lib/head.js"); + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "react" ***! + \************************/ +/***/ ((module) => { + +module.exports = require("react"); + +/***/ }) + +}; +; + +// load runtime +var __webpack_require__ = require("../webpack-runtime.js"); +__webpack_require__.C(exports); +var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) +var __webpack_exports__ = (__webpack_exec__("./node_modules/next/dist/pages/_error.js")); +module.exports = __webpack_exports__; + +})(); \ No newline at end of file diff --git a/.next/server/pages/about.js b/.next/server/pages/about.js new file mode 100644 index 0000000..10937ba --- /dev/null +++ b/.next/server/pages/about.js @@ -0,0 +1,680 @@ +/* + * 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/). + */ +(() => { +var exports = {}; +exports.id = "pages/about"; +exports.ids = ["pages/about"]; +exports.modules = { + +/***/ "./node_modules/next/dist/client/link.js": +/*!***********************************************!*\ + !*** ./node_modules/next/dist/client/link.js ***! + \***********************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"react\"));\n\nvar _router = __webpack_require__(/*! ../shared/lib/router/router */ \"./node_modules/next/dist/shared/lib/router/router.js\");\n\nvar _router1 = __webpack_require__(/*! ./router */ \"./node_modules/next/dist/client/router.js\");\n\nvar _useIntersection = __webpack_require__(/*! ./use-intersection */ \"./node_modules/next/dist/client/use-intersection.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nconst prefetched = {};\n\nfunction prefetch(router, href, as, options) {\n if (true) return;\n if (!(0, _router).isLocalURL(href)) return; // Prefetch the JSON 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\n router.prefetch(href, as, options).catch(err => {\n if (true) {\n // rethrow to show invalid URL errors\n throw err;\n }\n });\n const curLocale = options && typeof options.locale !== 'undefined' ? options.locale : router && router.locale; // Join on an invalid URI character\n\n prefetched[href + '%' + as + (curLocale ? '%' + curLocale : '')] = true;\n}\n\nfunction isModifiedEvent(event) {\n const {\n target\n } = event.currentTarget;\n return target && target !== '_self' || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey || event.nativeEvent && event.nativeEvent.which === 2;\n}\n\nfunction linkClicked(e, router, href, as, replace, shallow, scroll, locale) {\n const {\n nodeName\n } = e.currentTarget;\n\n if (nodeName === 'A' && (isModifiedEvent(e) || !(0, _router).isLocalURL(href))) {\n // ignore click for browser’s default behavior\n return;\n }\n\n e.preventDefault(); // avoid scroll for urls with anchor refs\n\n if (scroll == null && as.indexOf('#') >= 0) {\n scroll = false;\n } // replace state instead of push if prop is present\n\n\n router[replace ? 'replace' : 'push'](href, as, {\n shallow,\n locale,\n scroll\n });\n}\n\nfunction Link(props) {\n if (true) {\n function createPropError(args) {\n return new Error(`Failed prop type: The prop \\`${args.key}\\` expects a ${args.expected} in \\`<Link>\\`, but got \\`${args.actual}\\` instead.` + ( false ? 0 : ''));\n } // TypeScript trick for type-guarding:\n\n\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 }); // TypeScript trick for type-guarding:\n\n const optionalPropsGuard = {\n as: true,\n replace: true,\n scroll: true,\n shallow: true,\n passHref: true,\n prefetch: true,\n locale: true\n };\n const optionalProps = Object.keys(optionalPropsGuard);\n optionalProps.forEach(key => {\n const valType = typeof props[key];\n\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 === 'locale') {\n if (props[key] && valType !== 'string') {\n throw createPropError({\n key,\n expected: '`string`',\n actual: valType\n });\n }\n } else if (key === 'replace' || key === 'scroll' || key === 'shallow' || key === 'passHref' || key === 'prefetch') {\n if (props[key] != null && valType !== 'boolean') {\n throw createPropError({\n key,\n expected: '`boolean`',\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 }); // 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\n const hasWarned = _react.default.useRef(false);\n\n if (props.prefetch && !hasWarned.current) {\n hasWarned.current = true;\n console.warn('Next.js auto-prefetches automatically based on viewport. The prefetch attribute is no longer needed. More: https://nextjs.org/docs/messages/prefetch-true-deprecated');\n }\n }\n\n const p = props.prefetch !== false;\n const router = (0, _router1).useRouter();\n\n const {\n href,\n as\n } = _react.default.useMemo(() => {\n const [resolvedHref, resolvedAs] = (0, _router).resolveHref(router, props.href, true);\n return {\n href: resolvedHref,\n as: props.as ? (0, _router).resolveHref(router, props.as) : resolvedAs || resolvedHref\n };\n }, [router, props.href, props.as]);\n\n let {\n children,\n replace,\n shallow,\n scroll,\n locale\n } = props; // Deprecated. Warning shown by propType check. If the children provided is a string (<Link>example</Link>) we wrap it in an <a> tag\n\n if (typeof children === 'string') {\n children = /*#__PURE__*/_react.default.createElement(\"a\", null, children);\n } // This will return the first child, if multiple are provided it will throw an error\n\n\n let child;\n\n if (true) {\n try {\n child = _react.default.Children.only(children);\n } catch (err) {\n throw new Error(`Multiple children were passed to <Link> with \\`href\\` of \\`${props.href}\\` but only one child is supported https://nextjs.org/docs/messages/link-multiple-children` + ( false ? 0 : ''));\n }\n } else {}\n\n const childRef = child && typeof child === 'object' && child.ref;\n const [setIntersectionRef, isVisible] = (0, _useIntersection).useIntersection({\n rootMargin: '200px'\n });\n\n const setRef = _react.default.useCallback(el => {\n setIntersectionRef(el);\n\n if (childRef) {\n if (typeof childRef === 'function') childRef(el);else if (typeof childRef === 'object') {\n childRef.current = el;\n }\n }\n }, [childRef, setIntersectionRef]);\n\n _react.default.useEffect(() => {\n const shouldPrefetch = isVisible && p && (0, _router).isLocalURL(href);\n const curLocale = typeof locale !== 'undefined' ? locale : router && router.locale;\n const isPrefetched = prefetched[href + '%' + as + (curLocale ? '%' + curLocale : '')];\n\n if (shouldPrefetch && !isPrefetched) {\n prefetch(router, href, as, {\n locale: curLocale\n });\n }\n }, [as, href, isVisible, locale, p, router]);\n\n const childProps = {\n ref: setRef,\n onClick: e => {\n if (child.props && typeof child.props.onClick === 'function') {\n child.props.onClick(e);\n }\n\n if (!e.defaultPrevented) {\n linkClicked(e, router, href, as, replace, shallow, scroll, locale);\n }\n }\n };\n\n childProps.onMouseEnter = e => {\n if (!(0, _router).isLocalURL(href)) return;\n\n if (child.props && typeof child.props.onMouseEnter === 'function') {\n child.props.onMouseEnter(e);\n }\n\n prefetch(router, href, as, {\n priority: true\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\n\n if (props.passHref || child.type === 'a' && !('href' in child.props)) {\n const curLocale = typeof locale !== 'undefined' ? locale : router && router.locale; // we only render domain locales if we are currently on a domain locale\n // so that locale links are still visitable in development/preview envs\n\n const localeDomain = router && router.isLocaleDomain && (0, _router).getDomainLocale(as, curLocale, router && router.locales, router && router.domainLocales);\n childProps.href = localeDomain || (0, _router).addBasePath((0, _router).addLocale(as, curLocale, router && router.defaultLocale));\n }\n\n return /*#__PURE__*/_react.default.cloneElement(child, childProps);\n}\n\nvar _default = Link;\nexports[\"default\"] = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9saW5rLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxrQkFBQSxHQUFrQixLQUFLLENBQXZCOztBQUNBLElBQUlHLE1BQU0sR0FBR0Msc0JBQXNCLENBQUNDLG1CQUFPLENBQUMsb0JBQUQsQ0FBUixDQUFuQzs7QUFDQSxJQUFJQyxPQUFPLEdBQUdELG1CQUFPLENBQUMseUZBQUQsQ0FBckI7O0FBQ0EsSUFBSUUsUUFBUSxHQUFHRixtQkFBTyxDQUFDLDJEQUFELENBQXRCOztBQUNBLElBQUlHLGdCQUFnQixHQUFHSCxtQkFBTyxDQUFDLCtFQUFELENBQTlCOztBQUNBLFNBQVNELHNCQUFULENBQWdDSyxHQUFoQyxFQUFxQztBQUNqQyxTQUFPQSxHQUFHLElBQUlBLEdBQUcsQ0FBQ0MsVUFBWCxHQUF3QkQsR0FBeEIsR0FBOEI7QUFDakNQLElBQUFBLE9BQU8sRUFBRU87QUFEd0IsR0FBckM7QUFHSDs7QUFDRCxNQUFNRSxVQUFVLEdBQUcsRUFBbkI7O0FBRUEsU0FBU0MsUUFBVCxDQUFrQkMsTUFBbEIsRUFBMEJDLElBQTFCLEVBQWdDQyxFQUFoQyxFQUFvQ0MsT0FBcEMsRUFBNkM7QUFDekMsTUFBSSxJQUFKLEVBQThDO0FBQzlDLE1BQUksQ0FBQyxDQUFDLEdBQUdWLE9BQUosRUFBYVcsVUFBYixDQUF3QkgsSUFBeEIsQ0FBTCxFQUFvQyxPQUZLLENBR3pDO0FBQ0E7QUFDQTtBQUNBOztBQUNBRCxFQUFBQSxNQUFNLENBQUNELFFBQVAsQ0FBZ0JFLElBQWhCLEVBQXNCQyxFQUF0QixFQUEwQkMsT0FBMUIsRUFBbUNFLEtBQW5DLENBQTBDQyxHQUFELElBQU87QUFDNUMsY0FBMkM7QUFDdkM7QUFDQSxZQUFNQSxHQUFOO0FBQ0g7QUFDSixHQUxEO0FBTUEsUUFBTUMsU0FBUyxHQUFHSixPQUFPLElBQUksT0FB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O0FBQ0g7O0FBQ0QsU0FBTyxhQUFjL0YsTUFBTSxDQUFDRCxPQUFQLENBQWVpRyxZQUFmLENBQTRCN0IsS0FBNUIsRUFBbUNlLFVBQW5DLENBQXJCO0FBQ0g7O0FBQ0QsSUFBSWUsUUFBUSxHQUFHNUQsSUFBZjtBQUNBeEMsa0JBQUEsR0FBa0JvRyxRQUFsQiIsInNvdXJjZXMiOlsid2VicGFjazovL3ZpZS1yZWFjdC8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2xpbmsuanM/ZTRmOSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IHZvaWQgMDtcbnZhciBfcmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG52YXIgX3JvdXRlciA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3JvdXRlci9yb3V0ZXJcIik7XG52YXIgX3JvdXRlcjEgPSByZXF1aXJlKFwiLi9yb3V0ZXJcIik7XG52YXIgX3VzZUludGVyc2VjdGlvbiA9IHJlcXVpcmUoXCIuL3VzZS1pbnRlcnNlY3Rpb25cIik7XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5jb25zdCBwcmVmZXRjaGVkID0ge1xufTtcbmZ1bmN0aW9uIHByZWZldGNoKHJvdXRlciwgaHJlZiwgYXMsIG9wdGlvbnMpIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgIXJvdXRlcikgcmV0dXJuO1xuICAgIGlmICghKDAsIF9yb3V0ZXIpLmlzTG9jYWxVUkwoaHJlZikpIHJldHVybjtcbiAgICAvLyBQcmVmZXRjaCB0aGUgSlNPTiBwYWdlIGlmIGFza2VkIChvbmx5IGluIHRoZSBjbGllbnQpXG4gICAgLy8gV2UgbmVlZCB0byBoYW5kbGUgYSBwcmVmZXRjaCBlcnJvciBoZXJlIHNpbmNlIHdlIG1heSBiZVxuICAgIC8vIGxvYWRpbmcgd2l0aCBwcmlvcml0eSB3aGljaCBjYW4gcmVqZWN0IGJ1dCB3ZSBkb24ndFxuICAgIC8vIHdhbnQgdG8gZm9yY2UgbmF2aWdhdGlvbiBzaW5jZSB0aGlzIGlzIG9ubHkgYSBwcmVmZXRjaFxuICAgIHJvdXRlci5wcmVmZXRjaChocmVmLCBhcywgb3B0aW9ucykuY2F0Y2goKGVycik9PntcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgIC8vIHJldGhyb3cgdG8gc2hvdyBpbnZhbGlkIFVSTCBlcnJvcnNcbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGN1ckxvY2FsZSA9IG9wdGlvbnMgJiYgdHlwZW9mIG9wdGlvbnMubG9jYWxlICE9PSAndW5kZWZpbmVkJyA/IG9wdGlvbnMubG9jYWxlIDogcm91dGVyICYmIHJvdXRlci5sb2NhbGU7XG4gICAgLy8gSm9pbiBvbiBhbiBpbnZhbGlkIFVSSSBjaGFyYWN0ZXJcbiAgICBwcmVmZXRjaGVkW2hyZWYgKyAnJScgKyBhcyArIChjdXJMb2NhbGUgPyAnJScgKyBjdXJMb2NhbGUgOiAnJyldID0gdHJ1ZTtcbn1cbmZ1bmN0aW9uIGlzTW9kaWZpZWRFdmVudChldmVudCkge1xuICAgIGNvbnN0IHsgdGFyZ2V0ICB9ID0gZXZlbnQuY3VycmVudFRhcmdldDtcbiAgICByZXR1cm4gdGFyZ2V0ICYmIHRhcmdldCAhPT0gJ19zZWxmJyB8fCBldmVudC5tZXRhS2V5IHx8IGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQuc2hpZnRLZXkgfHwgZXZlbnQuYWx0S2V5IHx8IGV2ZW50Lm5hdGl2ZUV2ZW50ICYmIGV2ZW50Lm5hdGl2ZUV2ZW50LndoaWNoID09PSAyO1xufVxuZnVuY3Rpb24gbGlua0NsaWNrZWQoZSwgcm91dGVyLCBocmVmLCBhcywgcmVwbGFjZSwgc2hhbGxvdywgc2Nyb2xsLCBsb2NhbGUpIHtcbiAgICBjb25zdCB7IG5vZGVOYW1lICB9ID0gZS5jdXJyZW50VGFyZ2V0O1xuICAgIGlmIChub2RlTmFtZSA9PT0gJ0EnICYmIChpc01vZGlmaWVkRXZlbnQoZSkgfHwgISgwLCBfcm91dGVyKS5pc0xvY2FsVVJMKGhyZWYpKSkge1xuICAgICAgICAvLyBpZ25vcmUgY2xpY2sgZm9yIGJyb3dzZXLigJlzIGRlZmF1bHQgYmVoYXZpb3JcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgLy8gIGF2b2lkIHNjcm9sbCBmb3IgdXJscyB3aXRoIGFuY2hvciByZWZzXG4gICAgaWYgKHNjcm9sbCA9PSBudWxsICYmIGFzLmluZGV4T2YoJyMnKSA+PSAwKSB7XG4gICAgICAgIHNjcm9sbCA9IGZhbHNlO1xuICAgIH1cbiAgICAvLyByZXBsYWNlIHN0YXRlIGluc3RlYWQgb2YgcHVzaCBpZiBwcm9wIGlzIHByZXNlbnRcbiAgICByb3V0ZXJbcmVwbGFjZSA/ICdyZXBsYWNlJyA6ICdwdXNoJ10oaHJlZiwgYXMsIHtcbiAgICAgICAgc2hhbGxvdyxcbiAgICAgICAgbG9jYWxlLFxuICAgICAgICBzY3JvbGxcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIExpbmsocHJvcHMpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBmdW5jdGlvbiBjcmVhdGVQcm9wRXJyb3IoYXJncykge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBFcnJvcihgRmFpbGVkIHByb3AgdHlwZTogVGhlIHByb3AgXFxgJHthcmdzLmtleX1cXGAgZXhwZWN0cyBhICR7YXJncy5leHBlY3RlZH0gaW4gXFxgPExpbms+XFxgLCBidXQgZ290IFxcYCR7YXJncy5hY3R1YWx9XFxgIGluc3RlYWQuYCArICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyA/IFwiXFxuT3BlbiB5b3VyIGJyb3dzZXIncyBjb25zb2xlIHRvIHZpZXcgdGhlIENvbXBvbmVudCBzdGFjayB0cmFjZS5cIiA6ICcnKSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gVHlwZVNjcmlwdCB0cmljayBmb3IgdHlwZS1ndWFyZGluZzpcbiAgICAgICAgY29uc3QgcmVxdWlyZWRQcm9wc0d1YXJkID0ge1xuICAgICAgICAgICAgaHJlZjogdHJ1ZVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCByZXF1aXJlZFByb3BzID0gT2JqZWN0LmtleXMocmVxdWlyZWRQcm9wc0d1YXJkKTtcbiAgICAgICAgcmVxdWlyZWRQcm9wcy5mb3JFYWNoKChrZXkpPT57XG4gICAgICAgICAgICBpZiAoa2V5ID09PSAnaHJlZicpIHtcbiAgICAgICAgICAgICAgICBpZiAocHJvcHNba2V5XSA9PSBudWxsIHx8IHR5cGVvZiBwcm9wc1trZXldICE9PSAnc3RyaW5nJyAmJiB0eXBlb2YgcHJvcHNba2V5XSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgY3JlYXRlUHJvcEVycm9yKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkOiAnYHN0cmluZ2Agb3IgYG9iamVjdGAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFsOiBwcm9wc1trZXldID09PSBudWxsID8gJ251bGwnIDogdHlwZW9mIHByb3BzW2tleV1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBUeXBlU2NyaXB0IHRyaWNrIGZvciB0eXBlLWd1YXJkaW5nOlxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAgICAgICAgICAgICBjb25zdCBfID0ga2V5O1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgLy8gVHlwZVNjcmlwdCB0cmljayBmb3IgdHlwZS1ndWFyZGluZzpcbiAgICAgICAgY29uc3Qgb3B0aW9uYWxQcm9wc0d1YXJkID0ge1xuICAgICAgICAgICAgYXM6IHRydWUsXG4gICAgICAgICAgICByZXBsYWNlOiB0cnVlLFxuICAgICAgICAgICAgc2Nyb2xsOiB0cnVlLFxuICAgICAgICAgICAgc2hhbGxvdzogdHJ1ZSxcbiAgICAgICAgICAgIHBhc3NIcmVmOiB0cnVlLFxuICAgICAgICAgICAgcHJlZmV0Y2g6IHRydWUsXG4gICAgICAgICAgICBsb2NhbGU6IHRydWVcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3Qgb3B0aW9uYWxQcm9wcyA9IE9iamVjdC5rZXlzKG9wdGlvbmFsUHJvcHNHdWFyZCk7XG4gICAgICAgIG9wdGlvbmFsUHJvcHMuZm9yRWFjaCgoa2V5KT0+e1xuICAgICAgICAgICAgY29uc3QgdmFsVHlwZSA9IHR5cGVvZiBwcm9wc1trZXldO1xuICAgICAgICAgICAgaWYgKGtleSA9PT0gJ2FzJykge1xuICAgICAgICAgICAgICAgIGlmIChwcm9wc1trZXldICYmIHZhbFR5cGUgIT09ICdzdHJpbmcnICYmIHZhbFR5cGUgIT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGNyZWF0ZVByb3BFcnJvcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZDogJ2BzdHJpbmdgIG9yIGBvYmplY3RgJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbDogdmFsVHlwZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2xvY2FsZScpIHtcbiAgICAgICAgICAgICAgICBpZiAocHJvcHNba2V5XSAmJiB2YWxUeXBlICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBjcmVhdGVQcm9wRXJyb3Ioe1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQ6ICdgc3RyaW5nYCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWw6IHZhbFR5cGVcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdyZXBsYWNlJyB8fCBrZXkgPT09ICdzY3JvbGwnIHx8IGtleSA9PT0gJ3NoYWxsb3cnIHx8IGtleSA9PT0gJ3Bhc3NIcmVmJyB8fCBrZXkgPT09ICdwcmVmZXRjaCcpIHtcbiAgICAgICAgICAgICAgICBpZiAocHJvcHNba2V5XSAhPSBudWxsICYmIHZhbFR5cGUgIT09ICdib29sZWFuJykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBjcmVhdGVQcm9wRXJyb3Ioe1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQ6ICdgYm9vbGVhbmAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFsOiB2YWxUeXBlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gVHlwZVNjcmlwdCB0cmljayBmb3IgdHlwZS1ndWFyZGluZzpcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgICAgICAgICAgICAgY29uc3QgXyA9IGtleTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIC8vIFRoaXMgaG9vayBpcyBpbiBhIGNvbmRpdGlvbmFsIGJ1dCB0aGF0IGlzIG9rIGJlY2F1c2UgYHByb2Nlc3MuZW52Lk5PREVfRU5WYCBuZXZlciBjaGFuZ2VzXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9ydWxlcy1vZi1ob29rc1xuICAgICAgICBjb25zdCBoYXNXYXJuZWQgPSBfcmVhY3QuZGVmYXVsdC51c2VSZWYoZmFsc2UpO1xuICAgICAgICBpZiAocHJvcHMucHJlZmV0Y2ggJiYgIWhhc1dhcm5lZC5jdXJyZW50KSB7XG4gICAgICAgICAgICBoYXNXYXJuZWQuY3VycmVudCA9IHRydWU7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ05leHQuanMgYXV0by1wcmVmZXRjaGVzIGF1dG9tYXRpY2FsbHkgYmFzZWQgb24gdmlld3BvcnQuIFRoZSBwcmVmZXRjaCBhdHRyaWJ1dGUgaXMgbm8gbG9uZ2VyIG5lZWRlZC4gTW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvcHJlZmV0Y2gtdHJ1ZS1kZXByZWNhdGVkJyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgcCA9IHByb3BzLnByZWZldGNoICE9PSBmYWxzZTtcbiAgICBjb25zdCByb3V0ZXIgPSAoMCwgX3JvdXRlcjEpLnVzZVJvdXRlcigpO1xuICAgIGNvbnN0IHsgaHJlZiAsIGFzICB9ID0gX3JlYWN0LmRlZmF1bHQudXNlTWVtbygoKT0+e1xuICAgICAgICBjb25zdCBbcmVzb2x2ZWRIcmVmLCByZXNvbHZlZEFzXSA9ICgwLCBfcm91dGVyKS5yZXNvbHZlSHJlZihyb3V0ZXIsIHByb3BzLmhyZWYsIHRydWUpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaHJlZjogcmVzb2x2ZWRIcmVmLFxuICAgICAgICAgICAgYXM6IHByb3BzLmFzID8gKDAsIF9yb3V0ZXIpLnJlc29sdmVIcmVmKHJvdXRlciwgcHJvcHMuYXMpIDogcmVzb2x2ZWRBcyB8fCByZXNvbHZlZEhyZWZcbiAgICAgICAgfTtcbiAgICB9LCBbXG4gICAgICAgIHJvdXRlcixcbiAgICAgICAgcHJvcHMuaHJlZixcbiAgICAgICAgcHJvcHMuYXNcbiAgICBdKTtcbiAgICBsZXQgeyBjaGlsZHJlbiAsIHJlcGxhY2UgLCBzaGFsbG93ICwgc2Nyb2xsICwgbG9jYWxlICB9ID0gcHJvcHM7XG4gICAgLy8gRGVwcmVjYXRlZC4gV2FybmluZyBzaG93biBieSBwcm9wVHlwZSBjaGVjay4gSWYgdGhlIGNoaWxkcmVuIHByb3ZpZGVkIGlzIGEgc3RyaW5nICg8TGluaz5leGFtcGxlPC9MaW5rPikgd2Ugd3JhcCBpdCBpbiBhbiA8YT4gdGFnXG4gICAgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY2hpbGRyZW4gPSAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJhXCIsIG51bGwsIGNoaWxkcmVuKTtcbiAgICB9XG4gICAgLy8gVGhpcyB3aWxsIHJldHVybiB0aGUgZmlyc3QgY2hpbGQsIGlmIG11bHRpcGxlIGFyZSBwcm92aWRlZCBpdCB3aWxsIHRocm93IGFuIGVycm9yXG4gICAgbGV0IGNoaWxkO1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY2hpbGQgPSBfcmVhY3QuZGVmYXVsdC5DaGlsZHJlbi5vbmx5KGNoaWxkcmVuKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE11bHRpcGxlIGNoaWxkcmVuIHdlcmUgcGFzc2VkIHRvIDxMaW5rPiB3aXRoIFxcYGhyZWZcXGAgb2YgXFxgJHtwcm9wcy5ocmVmfVxcYCBidXQgb25seSBvbmUgY2hpbGQgaXMgc3VwcG9ydGVkIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2xpbmstbXVsdGlwbGUtY2hpbGRyZW5gICsgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnID8gXCIgXFxuT3BlbiB5b3VyIGJyb3dzZXIncyBjb25zb2xlIHRvIHZpZXcgdGhlIENvbXBvbmVudCBzdGFjayB0cmFjZS5cIiA6ICcnKSk7XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBjaGlsZCA9IF9yZWFjdC5kZWZhdWx0LkNoaWxkcmVuLm9ubHkoY2hpbGRyZW4pO1xuICAgIH1cbiAgICBjb25zdCBjaGlsZFJlZiA9IGNoaWxkICYmIHR5cGVvZiBjaGlsZCA9PT0gJ29iamVjdCcgJiYgY2hpbGQucmVmO1xuICAgIGNvbnN0IFtzZXRJbnRlcnNlY3Rpb25SZWYsIGlzVmlzaWJsZV0gPSAoMCwgX3VzZUludGVyc2VjdGlvbikudXNlSW50ZXJzZWN0aW9uKHtcbiAgICAgICAgcm9vdE1hcmdpbjogJzIwMHB4J1xuICAgIH0pO1xuICAgIGNvbnN0IHNldFJlZiA9IF9yZWFjdC5kZWZhdWx0LnVzZUNhbGxiYWNrKChlbCk9PntcbiAgICAgICAgc2V0SW50ZXJzZWN0aW9uUmVmKGVsKTtcbiAgICAgICAgaWYgKGNoaWxkUmVmKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGNoaWxkUmVmID09PSAnZnVuY3Rpb24nKSBjaGlsZFJlZihlbCk7XG4gICAgICAgICAgICBlbHNlIGlmICh0eXBlb2YgY2hpbGRSZWYgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgY2hpbGRSZWYuY3VycmVudCA9IGVsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSwgW1xuICAgICAgICBjaGlsZFJlZixcbiAgICAgICAgc2V0SW50ZXJzZWN0aW9uUmVmXG4gICAgXSk7XG4gICAgX3JlYWN0LmRlZmF1bHQudXNlRWZmZWN0KCgpPT57XG4gICAgICAgIGNvbnN0IHNob3VsZFByZWZldGNoID0gaXNWaXNpYmxlICYmIHAgJiYgKDAsIF9yb3V0ZXIpLmlzTG9jYWxVUkwoaHJlZik7XG4gICAgICAgIGNvbnN0IGN1ckxvY2FsZSA9IHR5cGVvZiBsb2NhbGUgIT09ICd1bmRlZmluZWQnID8gbG9jYWxlIDogcm91dGVyICYmIHJvdXRlci5sb2NhbGU7XG4gICAgICAgIGNvbnN0IGlzUHJlZmV0Y2hlZCA9IHByZWZldGNoZWRbaHJlZiArICclJyArIGFzICsgKGN1ckxvY2FsZSA/ICclJyArIGN1ckxvY2FsZSA6ICcnKV07XG4gICAgICAgIGlmIChzaG91bGRQcmVmZXRjaCAmJiAhaXNQcmVmZXRjaGVkKSB7XG4gICAgICAgICAgICBwcmVmZXRjaChyb3V0ZXIsIGhyZWYsIGFzLCB7XG4gICAgICAgICAgICAgICAgbG9jYWxlOiBjdXJMb2NhbGVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSwgW1xuICAgICAgICBhcyxcbiAgICAgICAgaHJlZixcbiAgICAgICAgaXNWaXNpYmxlLFxuICAgICAgICBsb2NhbGUsXG4gICAgICAgIHAsXG4gICAgICAgIHJvdXRlclxuICAgIF0pO1xuICAgIGNvbnN0IGNoaWxkUHJvcHMgPSB7XG4gICAgICAgIHJlZjogc2V0UmVmLFxuICAgICAgICBvbkNsaWNrOiAoZSk9PntcbiAgICAgICAgICAgIGlmIChjaGlsZC5wcm9wcyAmJiB0eXBlb2YgY2hpbGQucHJvcHMub25DbGljayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIGNoaWxkLnByb3BzLm9uQ2xpY2soZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWUuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgICAgICAgICAgIGxpbmtDbGlja2VkKGUsIHJvdXRlciwgaHJlZiwgYXMsIHJlcGxhY2UsIHNoYWxsb3csIHNjcm9sbCwgbG9jYWxlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG4gICAgY2hpbGRQcm9wcy5vbk1vdXNlRW50ZXIgPSAoZSk9PntcbiAgICAgICAgaWYgKCEoMCwgX3JvdXRlcikuaXNMb2NhbFVSTChocmVmKSkgcmV0dXJuO1xuICAgICAgICBpZiAoY2hpbGQucHJvcHMgJiYgdHlwZW9mIGNoaWxkLnByb3BzLm9uTW91c2VFbnRlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgY2hpbGQucHJvcHMub25Nb3VzZUVudGVyKGUpO1xuICAgICAgICB9XG4gICAgICAgIHByZWZldGNoKHJvdXRlciwgaHJlZiwgYXMsIHtcbiAgICAgICAgICAgIHByaW9yaXR5OiB0cnVlXG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgLy8gSWYgY2hpbGQgaXMgYW4gPGE+IHRhZyBhbmQgZG9lc24ndCBoYXZlIGEgaHJlZiBhdHRyaWJ1dGUsIG9yIGlmIHRoZSAncGFzc0hyZWYnIHByb3BlcnR5IGlzXG4gICAgLy8gZGVmaW5lZCwgd2Ugc3BlY2lmeSB0aGUgY3VycmVudCAnaHJlZicsIHNvIHRoYXQgcmVwZXRpdGlvbiBpcyBub3QgbmVlZGVkIGJ5IHRoZSB1c2VyXG4gICAgaWYgKHByb3BzLnBhc3NIcmVmIHx8IGNoaWxkLnR5cGUgPT09ICdhJyAmJiAhKCdocmVmJyBpbiBjaGlsZC5wcm9wcykpIHtcbiAgICAgICAgY29uc3QgY3VyTG9jYWxlID0gdHlwZW9mIGxvY2FsZSAhPT0gJ3VuZGVmaW5lZCcgPyBsb2NhbGUgOiByb3V0ZXIgJiYgcm91dGVyLmxvY2FsZTtcbiAgICAgICAgLy8gd2Ugb25seSByZW5kZXIgZG9tYWluIGxvY2FsZXMgaWYgd2UgYXJlIGN1cnJlbnRseSBvbiBhIGRvbWFpbiBsb2NhbGVcbiAgICAgICAgLy8gc28gdGhhdCBsb2NhbGUgbGlua3MgYXJlIHN0aWxsIHZpc2l0YWJsZSBpbiBkZXZlbG9wbWVudC9wcmV2aWV3IGVudnNcbiAgICAgICAgY29uc3QgbG9jYWxlRG9tYWluID0gcm91dGVyICYmIHJvdXRlci5pc0xvY2FsZURvbWFpbiAmJiAoMCwgX3JvdXRlcikuZ2V0RG9tYWluTG9jYWxlKGFzLCBjdXJMb2NhbGUsIHJvdXRlciAmJiByb3V0ZXIubG9jYWxlcywgcm91dGVyICYmIHJvdXRlci5kb21haW5Mb2NhbGVzKTtcbiAgICAgICAgY2hpbGRQcm9wcy5ocmVmID0gbG9jYWxlRG9tYWluIHx8ICgwLCBfcm91dGVyKS5hZGRCYXNlUGF0aCgoMCwgX3JvdXRlcikuYWRkTG9jYWxlKGFzLCBjdXJMb2NhbGUsIHJvdXRlciAmJiByb3V0ZXIuZGVmYXVsdExvY2FsZSkpO1xuICAgIH1cbiAgICByZXR1cm4oLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jbG9uZUVsZW1lbnQoY2hpbGQsIGNoaWxkUHJvcHMpKTtcbn1cbnZhciBfZGVmYXVsdCA9IExpbms7XG5leHBvcnRzLmRlZmF1bHQgPSBfZGVmYXVsdDtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bGluay5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJkZWZhdWx0IiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcm91dGVyIiwiX3JvdXRlcjEiLCJfdXNlSW50ZXJzZWN0aW9uIiwib2JqIiwiX19lc01vZHVsZSIsInByZWZldGNoZWQiLCJwcmVmZXRjaCIsInJvdXRlciIsImhyZWYiLCJhcyIsIm9wdGlvbnMiLCJpc0xvY2FsVVJMIiwiY2F0Y2giLCJlcnIiLCJjdXJMb2NhbGUiLCJsb2NhbGUiLCJpc01vZGlmaWVkRXZlbnQiLCJldmVudCIsInRhcmdldCIsImN1cnJlbnRUYXJnZXQiLCJtZXRhS2V5IiwiY3RybEtleSIsInNoaWZ0S2V5IiwiYWx0S2V5IiwibmF0aXZlRXZlbnQiLCJ3aGljaCIsImxpbmtDbGlja2VkIiwiZSIsInJlcGxhY2UiLCJzaGFsbG93Iiwic2Nyb2xsIiwibm9kZU5hbWUiLCJwcmV2ZW50RGVmYXVsdCIsImluZGV4T2YiLCJMaW5rIiwicHJvcHMiLCJjcmVhdGVQcm9wRXJyb3IiLCJhcmdzIiwiRXJyb3IiLCJrZXkiLCJleHBlY3RlZCIsImFjdHVhbCIsInJlcXVpcmVkUHJvcHNHdWFyZCIsInJlcXVpcmVkUHJvcHMiLCJrZXlzIiwiZm9yRWFjaCIsIl8iLCJvcHRpb25hbFByb3BzR3VhcmQiLCJwYXNzSHJlZiIsIm9wdGlvbmFsUHJvcHMiLCJ2YWxUeXBlIiwiaGFzV2FybmVkIiwidXNlUmVmIiwiY3VycmVudCIsImNvbnNvbGUiLCJ3YXJuIiwicCIsInVzZVJvdXRlciIsInVzZU1lbW8iLCJyZXNvbHZlZEhyZWYiLCJyZXNvbHZlZEFzIiwicmVzb2x2ZUhyZWYiLCJjaGlsZHJlbiIsImNyZWF0ZUVsZW1lbnQiLCJjaGlsZCIsIkNoaWxkcmVuIiwib25seSIsImNoaWxkUmVmIiwicmVmIiwic2V0SW50ZXJzZWN0aW9uUmVmIiwiaXNWaXNpYmxlIiwidXNlSW50ZXJzZWN0aW9uIiwicm9vdE1hcmdpbiIsInNldFJlZiIsInVzZUNhbGxiYWNrIiwiZWwiLCJ1c2VFZmZlY3QiLCJzaG91bGRQcmVmZXRjaCIsImlzUHJlZmV0Y2hlZCIsImNoaWxkUHJvcHMiLCJvbkNsaWNrIiwiZGVmYXVsdFByZXZlbnRlZCIsIm9uTW91c2VFbnRlciIsInByaW9yaXR5IiwidHlwZSIsImxvY2FsZURvbWFpbiIsImlzTG9jYWxlRG9tYWluIiwiZ2V0RG9tYWluTG9jYWxlIiwibG9jYWxlcyIsImRvbWFpbkxvY2FsZXMiLCJhZGRCYXNlUGF0aCIsImFkZExvY2FsZSIsImRlZmF1bHRMb2NhbGUiLCJjbG9uZUVsZW1lbnQiLCJfZGVmYXVsdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/link.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/normalize-trailing-slash.js": +/*!*******************************************************************!*\ + !*** ./node_modules/next/dist/client/normalize-trailing-slash.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.removePathTrailingSlash = removePathTrailingSlash;\nexports.normalizePathTrailingSlash = void 0;\n\nfunction removePathTrailingSlash(path) {\n return path.endsWith('/') && path !== '/' ? path.slice(0, -1) : path;\n}\n\nconst normalizePathTrailingSlash = true ? path => {\n if (/\\.[^/]+\\/?$/.test(path)) {\n return removePathTrailingSlash(path);\n } else if (path.endsWith('/')) {\n return path;\n } else {\n return path + '/';\n }\n} : 0;\nexports.normalizePathTrailingSlash = normalizePathTrailingSlash;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9ub3JtYWxpemUtdHJhaWxpbmctc2xhc2guanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELCtCQUFBLEdBQWtDRSx1QkFBbEM7QUFDQUYsa0NBQUEsR0FBcUMsS0FBSyxDQUExQzs7QUFDQSxTQUFTRSx1QkFBVCxDQUFpQ0UsSUFBakMsRUFBdUM7QUFDbkMsU0FBT0EsSUFBSSxDQUFDQyxRQUFMLENBQWMsR0FBZCxLQUFzQkQsSUFBSSxLQUFLLEdBQS9CLEdBQXFDQSxJQUFJLENBQUNFLEtBQUwsQ0FBVyxDQUFYLEVBQWMsQ0FBQyxDQUFmLENBQXJDLEdBQXlERixJQUFoRTtBQUNIOztBQUNELE1BQU1ELDBCQUEwQixHQUFHSSxLQUFBLEdBQXFDSCxJQUFELElBQVE7QUFDM0UsTUFBSSxjQUFjTSxJQUFkLENBQW1CTixJQUFuQixDQUFKLEVBQThCO0FBQzFCLFdBQU9GLHVCQUF1QixDQUFDRSxJQUFELENBQTlCO0FBQ0gsR0FGRCxNQUVPLElBQUlBLElBQUksQ0FBQ0MsUUFBTCxDQUFjLEdBQWQsQ0FBSixFQUF3QjtBQUMzQixXQUFPRCxJQUFQO0FBQ0gsR0FGTSxNQUVBO0FBQ0gsV0FBT0EsSUFBSSxHQUFHLEdBQWQ7QUFDSDtBQUNKLENBUmtDLEdBUS9CRixDQVJKO0FBU0FGLGtDQUFBLEdBQXFDRywwQkFBckMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly92aWUtcmVhY3QvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9ub3JtYWxpemUtdHJhaWxpbmctc2xhc2guanM/NGMyZSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMucmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2ggPSByZW1vdmVQYXRoVHJhaWxpbmdTbGFzaDtcbmV4cG9ydHMubm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2ggPSB2b2lkIDA7XG5mdW5jdGlvbiByZW1vdmVQYXRoVHJhaWxpbmdTbGFzaChwYXRoKSB7XG4gICAgcmV0dXJuIHBhdGguZW5kc1dpdGgoJy8nKSAmJiBwYXRoICE9PSAnLycgPyBwYXRoLnNsaWNlKDAsIC0xKSA6IHBhdGg7XG59XG5jb25zdCBub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCA9IHByb2Nlc3MuZW52Ll9fTkVYVF9UUkFJTElOR19TTEFTSCA/IChwYXRoKT0+e1xuICAgIGlmICgvXFwuW14vXStcXC8/JC8udGVzdChwYXRoKSkge1xuICAgICAgICByZXR1cm4gcmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2gocGF0aCk7XG4gICAgfSBlbHNlIGlmIChwYXRoLmVuZHNXaXRoKCcvJykpIHtcbiAgICAgICAgcmV0dXJuIHBhdGg7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHBhdGggKyAnLyc7XG4gICAgfVxufSA6IHJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoO1xuZXhwb3J0cy5ub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCA9IG5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1ub3JtYWxpemUtdHJhaWxpbmctc2xhc2guanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwicmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2giLCJub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCIsInBhdGgiLCJlbmRzV2l0aCIsInNsaWNlIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9UUkFJTElOR19TTEFTSCIsInRlc3QiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/normalize-trailing-slash.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/request-idle-callback.js": +/*!****************************************************************!*\ + !*** ./node_modules/next/dist/client/request-idle-callback.js ***! + \****************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.cancelIdleCallback = exports.requestIdleCallback = void 0;\n\nconst requestIdleCallback = typeof self !== 'undefined' && self.requestIdleCallback && self.requestIdleCallback.bind(window) || function (cb) {\n let start = Date.now();\n return setTimeout(function () {\n cb({\n didTimeout: false,\n timeRemaining: function () {\n return Math.max(0, 50 - (Date.now() - start));\n }\n });\n }, 1);\n};\n\nexports.requestIdleCallback = requestIdleCallback;\n\nconst cancelIdleCallback = typeof self !== 'undefined' && self.cancelIdleCallback && self.cancelIdleCallback.bind(window) || function (id) {\n return clearTimeout(id);\n};\n\nexports.cancelIdleCallback = cancelIdleCallback;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yZXF1ZXN0LWlkbGUtY2FsbGJhY2suanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELDBCQUFBLEdBQTZCQSwyQkFBQSxHQUE4QixLQUFLLENBQWhFOztBQUNBLE1BQU1HLG1CQUFtQixHQUFHLE9BQU9DLElBQVAsS0FBZ0IsV0FBaEIsSUFBK0JBLElBQUksQ0FBQ0QsbUJBQXBDLElBQTJEQyxJQUFJLENBQUNELG1CQUFMLENBQXlCRSxJQUF6QixDQUE4QkMsTUFBOUIsQ0FBM0QsSUFBb0csVUFBU0MsRUFBVCxFQUFhO0FBQ3pJLE1BQUlDLEtBQUssR0FBR0MsSUFBSSxDQUFDQyxHQUFMLEVBQVo7QUFDQSxTQUFPQyxVQUFVLENBQUMsWUFBVztBQUN6QkosSUFBQUEsRUFBRSxDQUFDO0FBQ0NLLE1BQUFBLFVBQVUsRUFBRSxLQURiO0FBRUNDLE1BQUFBLGFBQWEsRUFBRSxZQUFXO0FBQ3RCLGVBQU9DLElBQUksQ0FBQ0MsR0FBTCxDQUFTLENBQVQsRUFBWSxNQUFNTixJQUFJLENBQUNDLEdBQUwsS0FBYUYsS0FBbkIsQ0FBWixDQUFQO0FBQ0g7QUFKRixLQUFELENBQUY7QUFNSCxHQVBnQixFQU9kLENBUGMsQ0FBakI7QUFRSCxDQVZEOztBQVdBUiwyQkFBQSxHQUE4QkcsbUJBQTlCOztBQUNBLE1BQU1ELGtCQUFrQixHQUFHLE9BQU9FLElBQVAsS0FBZ0IsV0FBaEIsSUFBK0JBLElBQUksQ0FBQ0Ysa0JBQXBDLElBQTBERSxJQUFJLENBQUNGLGtCQUFMLENBQXdCRyxJQUF4QixDQUE2QkMsTUFBN0IsQ0FBMUQsSUFBa0csVUFBU1UsRUFBVCxFQUFhO0FBQ3RJLFNBQU9DLFlBQVksQ0FBQ0QsRUFBRCxDQUFuQjtBQUNILENBRkQ7O0FBR0FoQiwwQkFBQSxHQUE2QkUsa0JBQTdCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmllLXJlYWN0Ly4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvcmVxdWVzdC1pZGxlLWNhbGxiYWNrLmpzPzFlMjAiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmNhbmNlbElkbGVDYWxsYmFjayA9IGV4cG9ydHMucmVxdWVzdElkbGVDYWxsYmFjayA9IHZvaWQgMDtcbmNvbnN0IHJlcXVlc3RJZGxlQ2FsbGJhY2sgPSB0eXBlb2Ygc2VsZiAhPT0gJ3VuZGVmaW5lZCcgJiYgc2VsZi5yZXF1ZXN0SWRsZUNhbGxiYWNrICYmIHNlbGYucmVxdWVzdElkbGVDYWxsYmFjay5iaW5kKHdpbmRvdykgfHwgZnVuY3Rpb24oY2IpIHtcbiAgICBsZXQgc3RhcnQgPSBEYXRlLm5vdygpO1xuICAgIHJldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICBjYih7XG4gICAgICAgICAgICBkaWRUaW1lb3V0OiBmYWxzZSxcbiAgICAgICAgICAgIHRpbWVSZW1haW5pbmc6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBNYXRoLm1heCgwLCA1MCAtIChEYXRlLm5vdygpIC0gc3RhcnQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSwgMSk7XG59O1xuZXhwb3J0cy5yZXF1ZXN0SWRsZUNhbGxiYWNrID0gcmVxdWVzdElkbGVDYWxsYmFjaztcbmNvbnN0IGNhbmNlbElkbGVDYWxsYmFjayA9IHR5cGVvZiBzZWxmICE9PSAndW5kZWZpbmVkJyAmJiBzZWxmLmNhbmNlbElkbGVDYWxsYmFjayAmJiBzZWxmLmNhbmNlbElkbGVDYWxsYmFjay5iaW5kKHdpbmRvdykgfHwgZnVuY3Rpb24oaWQpIHtcbiAgICByZXR1cm4gY2xlYXJUaW1lb3V0KGlkKTtcbn07XG5leHBvcnRzLmNhbmNlbElkbGVDYWxsYmFjayA9IGNhbmNlbElkbGVDYWxsYmFjaztcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVxdWVzdC1pZGxlLWNhbGxiYWNrLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImNhbmNlbElkbGVDYWxsYmFjayIsInJlcXVlc3RJZGxlQ2FsbGJhY2siLCJzZWxmIiwiYmluZCIsIndpbmRvdyIsImNiIiwic3RhcnQiLCJEYXRlIiwibm93Iiwic2V0VGltZW91dCIsImRpZFRpbWVvdXQiLCJ0aW1lUmVtYWluaW5nIiwiTWF0aCIsIm1heCIsImlkIiwiY2xlYXJUaW1lb3V0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/request-idle-callback.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/route-loader.js": +/*!*******************************************************!*\ + !*** ./node_modules/next/dist/client/route-loader.js ***! + \*******************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.markAssetError = markAssetError;\nexports.isAssetError = isAssetError;\nexports.getClientBuildManifest = getClientBuildManifest;\nexports.getMiddlewareManifest = getMiddlewareManifest;\nexports.createRouteLoader = createRouteLoader;\n\nvar _getAssetPathFromRoute = _interopRequireDefault(__webpack_require__(/*! ../shared/lib/router/utils/get-asset-path-from-route */ \"../shared/lib/router/utils/get-asset-path-from-route\"));\n\nvar _requestIdleCallback = __webpack_require__(/*! ./request-idle-callback */ \"./node_modules/next/dist/client/request-idle-callback.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n} // 3.8s was arbitrarily chosen as it's what https://web.dev/interactive\n// considers as \"Good\" time-to-interactive. We must assume something went\n// wrong beyond this point, and then fall-back to a full page transition to\n// show the user something of value.\n\n\nconst MS_MAX_IDLE_DELAY = 3800;\n\nfunction withFuture(key, map, generator) {\n let entry = map.get(key);\n\n if (entry) {\n if ('future' in entry) {\n return entry.future;\n }\n\n return Promise.resolve(entry);\n }\n\n let resolver;\n const prom = new Promise(resolve => {\n resolver = resolve;\n });\n map.set(key, entry = {\n resolve: resolver,\n future: prom\n });\n return generator ? generator() // eslint-disable-next-line no-sequences\n .then(value => (resolver(value), value)).catch(err => {\n map.delete(key);\n throw err;\n }) : prom;\n}\n\nfunction hasPrefetch(link) {\n try {\n link = document.createElement('link');\n return (// detect IE11 since it supports prefetch but isn't detected\n // with relList.support\n !!window.MSInputMethodContext && !!document.documentMode || link.relList.supports('prefetch')\n );\n } catch (e) {\n return false;\n }\n}\n\nconst canPrefetch = hasPrefetch();\n\nfunction prefetchViaDom(href, as, link) {\n return new Promise((res, rej) => {\n const selector = `\n link[rel=\"prefetch\"][href^=\"${href}\"],\n link[rel=\"preload\"][href^=\"${href}\"],\n script[src^=\"${href}\"]`;\n\n if (document.querySelector(selector)) {\n return res();\n }\n\n link = document.createElement('link'); // The order of property assignment here is intentional:\n\n if (as) link.as = as;\n link.rel = `prefetch`;\n link.crossOrigin = undefined;\n link.onload = res;\n link.onerror = rej; // `href` should always be last:\n\n link.href = href;\n document.head.appendChild(link);\n });\n}\n\nconst ASSET_LOAD_ERROR = Symbol('ASSET_LOAD_ERROR');\n\nfunction markAssetError(err) {\n return Object.defineProperty(err, ASSET_LOAD_ERROR, {});\n}\n\nfunction isAssetError(err) {\n return err && ASSET_LOAD_ERROR in err;\n}\n\nfunction appendScript(src, script) {\n return new Promise((resolve, reject) => {\n script = document.createElement('script'); // The order of property assignment here is intentional.\n // 1. Setup success/failure hooks in case the browser synchronously\n // executes when `src` is set.\n\n script.onload = resolve;\n\n script.onerror = () => reject(markAssetError(new Error(`Failed to load script: ${src}`))); // 2. Configure the cross-origin attribute before setting `src` in case the\n // browser begins to fetch.\n\n\n script.crossOrigin = undefined; // 3. Finally, set the source and inject into the DOM in case the child\n // must be appended for fetching to start.\n\n script.src = src;\n document.body.appendChild(script);\n });\n} // We wait for pages to be built in dev before we start the route transition\n// timeout to prevent an un-necessary hard navigation in development.\n\n\nlet devBuildPromise; // Resolve a promise that times out after given amount of milliseconds.\n\nfunction resolvePromiseWithTimeout(p, ms, err) {\n return new Promise((resolve, reject) => {\n let cancelled = false;\n p.then(r => {\n // Resolved, cancel the timeout\n cancelled = true;\n resolve(r);\n }).catch(reject); // We wrap these checks separately for better dead-code elimination in\n // production bundles.\n\n if (true) {\n (devBuildPromise || Promise.resolve()).then(() => {\n (0, _requestIdleCallback).requestIdleCallback(() => setTimeout(() => {\n if (!cancelled) {\n reject(err);\n }\n }, ms));\n });\n }\n\n if (false) {}\n });\n}\n\nfunction getClientBuildManifest() {\n if (self.__BUILD_MANIFEST) {\n return Promise.resolve(self.__BUILD_MANIFEST);\n }\n\n const onBuildManifest = new Promise(resolve => {\n // Mandatory because this is not concurrent safe:\n const cb = self.__BUILD_MANIFEST_CB;\n\n self.__BUILD_MANIFEST_CB = () => {\n resolve(self.__BUILD_MANIFEST);\n cb && cb();\n };\n });\n return resolvePromiseWithTimeout(onBuildManifest, MS_MAX_IDLE_DELAY, markAssetError(new Error('Failed to load client build manifest')));\n}\n\nfunction getMiddlewareManifest() {\n if (self.__MIDDLEWARE_MANIFEST) {\n return Promise.resolve(self.__MIDDLEWARE_MANIFEST);\n }\n\n const onMiddlewareManifest = new Promise(resolve => {\n const cb = self.__MIDDLEWARE_MANIFEST_CB;\n\n self.__MIDDLEWARE_MANIFEST_CB = () => {\n resolve(self.__MIDDLEWARE_MANIFEST);\n cb && cb();\n };\n });\n return resolvePromiseWithTimeout(onMiddlewareManifest, MS_MAX_IDLE_DELAY, markAssetError(new Error('Failed to load client middleware manifest')));\n}\n\nfunction getFilesForRoute(assetPrefix, route) {\n if (true) {\n return Promise.resolve({\n scripts: [assetPrefix + '/_next/static/chunks/pages' + encodeURI((0, _getAssetPathFromRoute).default(route, '.js'))],\n // Styles are handled by `style-loader` in development:\n css: []\n });\n }\n\n return getClientBuildManifest().then(manifest => {\n if (!(route in manifest)) {\n throw markAssetError(new Error(`Failed to lookup route: ${route}`));\n }\n\n const allFiles = manifest[route].map(entry => assetPrefix + '/_next/' + encodeURI(entry));\n return {\n scripts: allFiles.filter(v => v.endsWith('.js')),\n css: allFiles.filter(v => v.endsWith('.css'))\n };\n });\n}\n\nfunction createRouteLoader(assetPrefix) {\n const entrypoints = new Map();\n const loadedScripts = new Map();\n const styleSheets = new Map();\n const routes = new Map();\n\n function maybeExecuteScript(src) {\n // With HMR we might need to \"reload\" scripts when they are\n // disposed and readded. Executing scripts twice has no functional\n // differences\n if (false) {} else {\n return appendScript(src);\n }\n }\n\n function fetchStyleSheet(href) {\n let prom = styleSheets.get(href);\n\n if (prom) {\n return prom;\n }\n\n styleSheets.set(href, prom = fetch(href).then(res => {\n if (!res.ok) {\n throw new Error(`Failed to load stylesheet: ${href}`);\n }\n\n return res.text().then(text => ({\n href: href,\n content: text\n }));\n }).catch(err => {\n throw markAssetError(err);\n }));\n return prom;\n }\n\n return {\n whenEntrypoint(route) {\n return withFuture(route, entrypoints);\n },\n\n onEntrypoint(route, execute) {\n (execute ? Promise.resolve().then(() => execute()).then(exports => ({\n component: exports && exports.default || exports,\n exports: exports\n }), err => ({\n error: err\n })) : Promise.resolve(undefined)).then(input => {\n const old = entrypoints.get(route);\n\n if (old && 'resolve' in old) {\n if (input) {\n entrypoints.set(route, input);\n old.resolve(input);\n }\n } else {\n if (input) {\n entrypoints.set(route, input);\n } else {\n entrypoints.delete(route);\n } // when this entrypoint has been resolved before\n // the route is outdated and we want to invalidate\n // this cache entry\n\n\n routes.delete(route);\n }\n });\n },\n\n loadRoute(route, prefetch) {\n return withFuture(route, routes, () => {\n const routeFilesPromise = getFilesForRoute(assetPrefix, route).then(({\n scripts,\n css\n }) => {\n return Promise.all([entrypoints.has(route) ? [] : Promise.all(scripts.map(maybeExecuteScript)), Promise.all(css.map(fetchStyleSheet))]);\n }).then(res => {\n return this.whenEntrypoint(route).then(entrypoint => ({\n entrypoint,\n styles: res[1]\n }));\n });\n\n if (true) {\n devBuildPromise = new Promise(resolve => {\n if (routeFilesPromise) {\n return routeFilesPromise.finally(() => {\n resolve();\n });\n }\n });\n }\n\n return resolvePromiseWithTimeout(routeFilesPromise, MS_MAX_IDLE_DELAY, markAssetError(new Error(`Route did not complete loading: ${route}`))).then(({\n entrypoint,\n styles\n }) => {\n const res = Object.assign({\n styles: styles\n }, entrypoint);\n return 'error' in entrypoint ? entrypoint : res;\n }).catch(err => {\n if (prefetch) {\n // we don't want to cache errors during prefetch\n throw err;\n }\n\n return {\n error: err\n };\n });\n });\n },\n\n prefetch(route) {\n // https://github.com/GoogleChromeLabs/quicklink/blob/453a661fa1fa940e2d2e044452398e38c67a98fb/src/index.mjs#L115-L118\n // License: Apache 2.0\n let cn;\n\n if (cn = navigator.connection) {\n // Don't prefetch if using 2G or if Save-Data is enabled.\n if (cn.saveData || /2g/.test(cn.effectiveType)) return Promise.resolve();\n }\n\n return getFilesForRoute(assetPrefix, route).then(output => Promise.all(canPrefetch ? output.scripts.map(script => prefetchViaDom(script, 'script')) : [])).then(() => {\n (0, _requestIdleCallback).requestIdleCallback(() => this.loadRoute(route, true).catch(() => {}));\n }).catch( // swallow prefetch errors\n () => {});\n }\n\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yb3V0ZS1sb2FkZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELHNCQUFBLEdBQXlCRSxjQUF6QjtBQUNBRixvQkFBQSxHQUF1QkcsWUFBdkI7QUFDQUgsOEJBQUEsR0FBaUNJLHNCQUFqQztBQUNBSiw2QkFBQSxHQUFnQ0sscUJBQWhDO0FBQ0FMLHlCQUFBLEdBQTRCTSxpQkFBNUI7O0FBQ0EsSUFBSUMsc0JBQXNCLEdBQUdDLHNCQUFzQixDQUFDQyxtQkFBTyxDQUFDLGtIQUFELENBQVIsQ0FBbkQ7O0FBQ0EsSUFBSUMsb0JBQW9CLEdBQUdELG1CQUFPLENBQUMseUZBQUQsQ0FBbEM7O0FBQ0EsU0FBU0Qsc0JBQVQsQ0FBZ0NHLEdBQWhDLEVBQXFDO0FBQ2pDLFNBQU9BLEdBQUcsSUFBSUEsR0FBRyxDQUFDQyxVQUFYLEdBQXdCRCxHQUF4QixHQUE4QjtBQUNqQ0UsSUFBQUEsT0FBTyxFQUFFRjtBQUR3QixHQUFyQztBQUdILEMsQ0FDRDtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0EsTUFBTUcsaUJBQWlCLEdBQUcsSUFBMUI7O0FBQ0EsU0FBU0MsVUFBVCxDQUFvQkMsR0FBcEIsRUFBeUJDLEdBQXpCLEVBQThCQyxTQUE5QixFQUF5QztBQUNyQyxNQUFJQyxLQUFLLEdBQUdGLEdBQUcsQ0FBQ0csR0FBSixDQUFRSixHQUFSLENBQVo7O0FBQ0EsTUFBSUcsS0FBSixFQUFXO0FBQ1AsUUFBSSxZQUFZQSxLQUFoQixFQUF1QjtBQUNuQixhQUFPQSxLQUFLLENBQUNFLE1BQWI7QUFDSDs7QUFDRCxXQUFPQyxPQUFPLENBQUNDLE9BQVIsQ0FBZ0JKLEtBQWhCLENBQVA7QUFDSDs7QUFDRCxNQUFJSyxRQUFKO0FBQ0EsUUFBTUMsSUFBSSxHQUFHLElBQUlILE9BQUosQ0FBYUMsT0FBRCxJQUFXO0FBQ2hDQyxJQUFBQSxR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O0FBQ25EOztBQUNELGFBQU8yRCxnQkFBZ0IsQ0FBQ0MsV0FBRCxFQUFjQyxLQUFkLENBQWhCLENBQXFDekQsSUFBckMsQ0FBMkNvRyxNQUFELElBQVV6RyxPQUFPLENBQUM2RixHQUFSLENBQVkxRSxXQUFXLEdBQUdzRixNQUFNLENBQUMxQyxPQUFQLENBQWVwRSxHQUFmLENBQW9CNkMsTUFBRCxJQUFVcEIsY0FBYyxDQUFDb0IsTUFBRCxFQUFTLFFBQVQsQ0FBM0MsQ0FBSCxHQUMxRSxFQURtRCxDQUFwRCxFQUVMbkMsSUFGSyxDQUVBLE1BQUk7QUFDUCxTQUFDLEdBQUdqQixvQkFBSixFQUEwQjhELG1CQUExQixDQUE4QyxNQUFJLEtBQUt3QyxTQUFMLENBQWU1QixLQUFmLEVBQXNCLElBQXRCLEVBQTRCeEQsS0FBNUIsQ0FBa0MsTUFBSSxDQUNuRixDQUQ2QyxDQUFsRDtBQUdILE9BTk0sRUFNSkEsS0FOSSxFQU1FO0FBQ1QsWUFBSSxDQUNILENBUk0sQ0FBUDtBQVNIOztBQXpGRSxHQUFQO0FBMkZIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmllLXJlYWN0Ly4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvcm91dGUtbG9hZGVyLmpzP2VhMzQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLm1hcmtBc3NldEVycm9yID0gbWFya0Fzc2V0RXJyb3I7XG5leHBvcnRzLmlzQXNzZXRFcnJvciA9IGlzQXNzZXRFcnJvcjtcbmV4cG9ydHMuZ2V0Q2xpZW50QnVpbGRNYW5pZmVzdCA9IGdldENsaWVudEJ1aWxkTWFuaWZlc3Q7XG5leHBvcnRzLmdldE1pZGRsZXdhcmVNYW5pZmVzdCA9IGdldE1pZGRsZXdhcmVNYW5pZmVzdDtcbmV4cG9ydHMuY3JlYXRlUm91dGVMb2FkZXIgPSBjcmVhdGVSb3V0ZUxvYWRlcjtcbnZhciBfZ2V0QXNzZXRQYXRoRnJvbVJvdXRlID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZ2V0LWFzc2V0LXBhdGgtZnJvbS1yb3V0ZVwiKSk7XG52YXIgX3JlcXVlc3RJZGxlQ2FsbGJhY2sgPSByZXF1aXJlKFwiLi9yZXF1ZXN0LWlkbGUtY2FsbGJhY2tcIik7XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG4vLyAzLjhzIHdhcyBhcmJpdHJhcmlseSBjaG9zZW4gYXMgaXQncyB3aGF0IGh0dHBzOi8vd2ViLmRldi9pbnRlcmFjdGl2ZVxuLy8gY29uc2lkZXJzIGFzIFwiR29vZFwiIHRpbWUtdG8taW50ZXJhY3RpdmUuIFdlIG11c3QgYXNzdW1lIHNvbWV0aGluZyB3ZW50XG4vLyB3cm9uZyBiZXlvbmQgdGhpcyBwb2ludCwgYW5kIHRoZW4gZmFsbC1iYWNrIHRvIGEgZnVsbCBwYWdlIHRyYW5zaXRpb24gdG9cbi8vIHNob3cgdGhlIHVzZXIgc29tZXRoaW5nIG9mIHZhbHVlLlxuY29uc3QgTVNfTUFYX0lETEVfREVMQVkgPSAzODAwO1xuZnVuY3Rpb24gd2l0aEZ1dHVyZShrZXksIG1hcCwgZ2VuZXJhdG9yKSB7XG4gICAgbGV0IGVudHJ5ID0gbWFwLmdldChrZXkpO1xuICAgIGlmIChlbnRyeSkge1xuICAgICAgICBpZiAoJ2Z1dHVyZScgaW4gZW50cnkpIHtcbiAgICAgICAgICAgIHJldHVybiBlbnRyeS5mdXR1cmU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShlbnRyeSk7XG4gICAgfVxuICAgIGxldCByZXNvbHZlcjtcbiAgICBjb25zdCBwcm9tID0gbmV3IFByb21pc2UoKHJlc29sdmUpPT57XG4gICAgICAgIHJlc29sdmVyID0gcmVzb2x2ZTtcbiAgICB9KTtcbiAgICBtYXAuc2V0KGtleSwgZW50cnkgPSB7XG4gICAgICAgIHJlc29sdmU6IHJlc29sdmVyLFxuICAgICAgICBmdXR1cmU6IHByb21cbiAgICB9KTtcbiAgICByZXR1cm4gZ2VuZXJhdG9yID8gZ2VuZXJhdG9yKCkvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VxdWVuY2VzXG4gICAgLnRoZW4oKHZhbHVlKT0+KHJlc29sdmVyKHZhbHVlKSwgdmFsdWUpXG4gICAgKS5jYXRjaCgoZXJyKT0+e1xuICAgICAgICBtYXAuZGVsZXRlKGtleSk7XG4gICAgICAgIHRocm93IGVycjtcbiAgICB9KSA6IHByb207XG59XG5mdW5jdGlvbiBoYXNQcmVmZXRjaChsaW5rKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtcbiAgICAgICAgcmV0dXJuKC8vIGRldGVjdCBJRTExIHNpbmNlIGl0IHN1cHBvcnRzIHByZWZldGNoIGJ1dCBpc24ndCBkZXRlY3RlZFxuICAgICAgICAvLyB3aXRoIHJlbExpc3Quc3VwcG9ydFxuICAgICAgICAoISF3aW5kb3cuTVNJbnB1dE1ldGhvZENvbnRleHQgJiYgISFkb2N1bWVudC5kb2N1bWVudE1vZGUpIHx8IGxpbmsucmVsTGlzdC5zdXBwb3J0cygncHJlZmV0Y2gnKSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuY29uc3QgY2FuUHJlZmV0Y2ggPSBoYXNQcmVmZXRjaCgpO1xuZnVuY3Rpb24gcHJlZmV0Y2hWaWFEb20oaHJlZiwgYXMsIGxpbmspIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlcywgcmVqKT0+e1xuICAgICAgICBjb25zdCBzZWxlY3RvciA9IGBcbiAgICAgIGxpbmtbcmVsPVwicHJlZmV0Y2hcIl1baHJlZl49XCIke2hyZWZ9XCJdLFxuICAgICAgbGlua1tyZWw9XCJwcmVsb2FkXCJdW2hyZWZePVwiJHtocmVmfVwiXSxcbiAgICAgIHNjcmlwdFtzcmNePVwiJHtocmVmfVwiXWA7XG4gICAgICAgIGlmIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlcygpO1xuICAgICAgICB9XG4gICAgICAgIGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XG4gICAgICAgIC8vIFRoZSBvcmRlciBvZiBwcm9wZXJ0eSBhc3NpZ25tZW50IGhlcmUgaXMgaW50ZW50aW9uYWw6XG4gICAgICAgIGlmIChhcykgbGluay5hcyA9IGFzO1xuICAgICAgICBsaW5rLnJlbCA9IGBwcmVmZXRjaGA7XG4gICAgICAgIGxpbmsuY3Jvc3NPcmlnaW4gPSBwcm9jZXNzLmVudi5fX05FWFRfQ1JPU1NfT1JJR0lOO1xuICAgICAgICBsaW5rLm9ubG9hZCA9IHJlcztcbiAgICAgICAgbGluay5vbmVycm9yID0gcmVqO1xuICAgICAgICAvLyBgaHJlZmAgc2hvdWxkIGFsd2F5cyBiZSBsYXN0OlxuICAgICAgICBsaW5rLmhyZWYgPSBocmVmO1xuICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGxpbmspO1xuICAgIH0pO1xufVxuY29uc3QgQVNTRVRfTE9BRF9FUlJPUiA9IFN5bWJvbCgnQVNTRVRfTE9BRF9FUlJPUicpO1xuZnVuY3Rpb24gbWFya0Fzc2V0RXJyb3IoZXJyKSB7XG4gICAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlcnIsIEFTU0VUX0xPQURfRVJST1IsIHtcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGlzQXNzZXRFcnJvcihlcnIpIHtcbiAgICByZXR1cm4gZXJyICYmIEFTU0VUX0xPQURfRVJST1IgaW4gZXJyO1xufVxuZnVuY3Rpb24gYXBwZW5kU2NyaXB0KHNyYywgc2NyaXB0KSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpPT57XG4gICAgICAgIHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgICAvLyBUaGUgb3JkZXIgb2YgcHJvcGVydHkgYXNzaWdubWVudCBoZXJlIGlzIGludGVudGlvbmFsLlxuICAgICAgICAvLyAxLiBTZXR1cCBzdWNjZXNzL2ZhaWx1cmUgaG9va3MgaW4gY2FzZSB0aGUgYnJvd3NlciBzeW5jaHJvbm91c2x5XG4gICAgICAgIC8vICAgIGV4ZWN1dGVzIHdoZW4gYHNyY2AgaXMgc2V0LlxuICAgICAgICBzY3JpcHQub25sb2FkID0gcmVzb2x2ZTtcbiAgICAgICAgc2NyaXB0Lm9uZXJyb3IgPSAoKT0+cmVqZWN0KG1hcmtBc3NldEVycm9yKG5ldyBFcnJvcihgRmFpbGVkIHRvIGxvYWQgc2NyaXB0OiAke3NyY31gKSkpXG4gICAgICAgIDtcbiAgICAgICAgLy8gMi4gQ29uZmlndXJlIHRoZSBjcm9zcy1vcmlnaW4gYXR0cmlidXRlIGJlZm9yZSBzZXR0aW5nIGBzcmNgIGluIGNhc2UgdGhlXG4gICAgICAgIC8vICAgIGJyb3dzZXIgYmVnaW5zIHRvIGZldGNoLlxuICAgICAgICBzY3JpcHQuY3Jvc3NPcmlnaW4gPSBwcm9jZXNzLmVudi5fX05FWFRfQ1JPU1NfT1JJR0lOO1xuICAgICAgICAvLyAzLiBGaW5hbGx5LCBzZXQgdGhlIHNvdXJjZSBhbmQgaW5qZWN0IGludG8gdGhlIERPTSBpbiBjYXNlIHRoZSBjaGlsZFxuICAgICAgICAvLyAgICBtdXN0IGJlIGFwcGVuZGVkIGZvciBmZXRjaGluZyB0byBzdGFydC5cbiAgICAgICAgc2NyaXB0LnNyYyA9IHNyYztcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzY3JpcHQpO1xuICAgIH0pO1xufVxuLy8gV2Ugd2FpdCBmb3IgcGFnZXMgdG8gYmUgYnVpbHQgaW4gZGV2IGJlZm9yZSB3ZSBzdGFydCB0aGUgcm91dGUgdHJhbnNpdGlvblxuLy8gdGltZW91dCB0byBwcmV2ZW50IGFuIHVuLW5lY2Vzc2FyeSBoYXJkIG5hdmlnYXRpb24gaW4gZGV2ZWxvcG1lbnQuXG5sZXQgZGV2QnVpbGRQcm9taXNlO1xuLy8gUmVzb2x2ZSBhIHByb21pc2UgdGhhdCB0aW1lcyBvdXQgYWZ0ZXIgZ2l2ZW4gYW1vdW50IG9mIG1pbGxpc2Vjb25kcy5cbmZ1bmN0aW9uIHJlc29sdmVQcm9taXNlV2l0aFRpbWVvdXQocCwgbXMsIGVycikge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KT0+e1xuICAgICAgICBsZXQgY2FuY2VsbGVkID0gZmFsc2U7XG4gICAgICAgIHAudGhlbigocik9PntcbiAgICAgICAgICAgIC8vIFJlc29sdmVkLCBjYW5jZWwgdGhlIHRpbWVvdXRcbiAgICAgICAgICAgIGNhbmNlbGxlZCA9IHRydWU7XG4gICAgICAgICAgICByZXNvbHZlKHIpO1xuICAgICAgICB9KS5jYXRjaChyZWplY3QpO1xuICAgICAgICAvLyBXZSB3cmFwIHRoZXNlIGNoZWNrcyBzZXBhcmF0ZWx5IGZvciBiZXR0ZXIgZGVhZC1jb2RlIGVsaW1pbmF0aW9uIGluXG4gICAgICAgIC8vIHByb2R1Y3Rpb24gYnVuZGxlcy5cbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgICAoZGV2QnVpbGRQcm9taXNlIHx8IFByb21pc2UucmVzb2x2ZSgpKS50aGVuKCgpPT57XG4gICAgICAgICAgICAgICAgKDAsIF9yZXF1ZXN0SWRsZUNhbGxiYWNrKS5yZXF1ZXN0SWRsZUNhbGxiYWNrKCgpPT5zZXRUaW1lb3V0KCgpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWNhbmNlbGxlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LCBtcylcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgICAoMCwgX3JlcXVlc3RJZGxlQ2FsbGJhY2spLnJlcXVlc3RJZGxlQ2FsbGJhY2soKCk9PnNldFRpbWVvdXQoKCk9PntcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjYW5jZWxsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSwgbXMpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5mdW5jdGlvbiBnZXRDbGllbnRCdWlsZE1hbmlmZXN0KCkge1xuICAgIGlmIChzZWxmLl9fQlVJTERfTUFOSUZFU1QpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShzZWxmLl9fQlVJTERfTUFOSUZFU1QpO1xuICAgIH1cbiAgICBjb25zdCBvbkJ1aWxkTWFuaWZlc3QgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSk9PntcbiAgICAgICAgLy8gTWFuZGF0b3J5IGJlY2F1c2UgdGhpcyBpcyBub3QgY29uY3VycmVudCBzYWZlOlxuICAgICAgICBjb25zdCBjYiA9IHNlbGYuX19CVUlMRF9NQU5JRkVTVF9DQjtcbiAgICAgICAgc2VsZi5fX0JVSUxEX01BTklGRVNUX0NCID0gKCk9PntcbiAgICAgICAgICAgIHJlc29sdmUoc2VsZi5fX0JVSUxEX01BTklGRVNUKTtcbiAgICAgICAgICAgIGNiICYmIGNiKCk7XG4gICAgICAgIH07XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc29sdmVQcm9taXNlV2l0aFRpbWVvdXQob25CdWlsZE1hbmlmZXN0LCBNU19NQVhfSURMRV9ERUxBWSwgbWFya0Fzc2V0RXJyb3IobmV3IEVycm9yKCdGYWlsZWQgdG8gbG9hZCBjbGllbnQgYnVpbGQgbWFuaWZlc3QnKSkpO1xufVxuZnVuY3Rpb24gZ2V0TWlkZGxld2FyZU1hbmlmZXN0KCkge1xuICAgIGlmIChzZWxmLl9fTUlERExFV0FSRV9NQU5JRkVTVCkge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHNlbGYuX19NSURETEVXQVJFX01BTklGRVNUKTtcbiAgICB9XG4gICAgY29uc3Qgb25NaWRkbGV3YXJlTWFuaWZlc3QgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSk9PntcbiAgICAgICAgY29uc3QgY2IgPSBzZWxmLl9fTUlERExFV0FSRV9NQU5JRkVTVF9DQjtcbiAgICAgICAgc2VsZi5fX01JRERMRVdBUkVfTUFOSUZFU1RfQ0IgPSAoKT0+e1xuICAgICAgICAgICAgcmVzb2x2ZShzZWxmLl9fTUlERExFV0FSRV9NQU5JRkVTVCk7XG4gICAgICAgICAgICBjYiAmJiBjYigpO1xuICAgICAgICB9O1xuICAgIH0pO1xuICAgIHJldHVybiByZXNvbHZlUHJvbWlzZVdpdGhUaW1lb3V0KG9uTWlkZGxld2FyZU1hbmlmZXN0LCBNU19NQVhfSURMRV9ERUxBWSwgbWFya0Fzc2V0RXJyb3IobmV3IEVycm9yKCdGYWlsZWQgdG8gbG9hZCBjbGllbnQgbWlkZGxld2FyZSBtYW5pZmVzdCcpKSk7XG59XG5mdW5jdGlvbiBnZXRGaWxlc0ZvclJvdXRlKGFzc2V0UHJlZml4LCByb3V0ZSkge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgICAgICAgIHNjcmlwdHM6IFtcbiAgICAgICAgICAgICAgICBhc3NldFByZWZpeCArICcvX25leHQvc3RhdGljL2NodW5rcy9wYWdlcycgKyBlbmNvZGVVUkkoKDAsIF9nZXRBc3NldFBhdGhGcm9tUm91dGUpLmRlZmF1bHQocm91dGUsICcuanMnKSksIFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIC8vIFN0eWxlcyBhcmUgaGFuZGxlZCBieSBgc3R5bGUtbG9hZGVyYCBpbiBkZXZlbG9wbWVudDpcbiAgICAgICAgICAgIGNzczogW11cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBnZXRDbGllbnRCdWlsZE1hbmlmZXN0KCkudGhlbigobWFuaWZlc3QpPT57XG4gICAgICAgIGlmICghKHJvdXRlIGluIG1hbmlmZXN0KSkge1xuICAgICAgICAgICAgdGhyb3cgbWFya0Fzc2V0RXJyb3IobmV3IEVycm9yKGBGYWlsZWQgdG8gbG9va3VwIHJvdXRlOiAke3JvdXRlfWApKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhbGxGaWxlcyA9IG1hbmlmZXN0W3JvdXRlXS5tYXAoKGVudHJ5KT0+YXNzZXRQcmVmaXggKyAnL19uZXh0LycgKyBlbmNvZGVVUkkoZW50cnkpXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzY3JpcHRzOiBhbGxGaWxlcy5maWx0ZXIoKHYpPT52LmVuZHNXaXRoKCcuanMnKVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGNzczogYWxsRmlsZXMuZmlsdGVyKCh2KT0+di5lbmRzV2l0aCgnLmNzcycpXG4gICAgICAgICAgICApXG4gICAgICAgIH07XG4gICAgfSk7XG59XG5mdW5jdGlvbiBjcmVhdGVSb3V0ZUxvYWRlcihhc3NldFByZWZpeCkge1xuICAgIGNvbnN0IGVudHJ5cG9pbnRzID0gbmV3IE1hcCgpO1xuICAgIGNvbnN0IGxvYWRlZFNjcmlwdHMgPSBuZXcgTWFwKCk7XG4gICAgY29uc3Qgc3R5bGVTaGVldHMgPSBuZXcgTWFwKCk7XG4gICAgY29uc3Qgcm91dGVzID0gbmV3IE1hcCgpO1xuICAgIGZ1bmN0aW9uIG1heWJlRXhlY3V0ZVNjcmlwdChzcmMpIHtcbiAgICAgICAgLy8gV2l0aCBITVIgd2UgbWlnaHQgbmVlZCB0byBcInJlbG9hZFwiIHNjcmlwdHMgd2hlbiB0aGV5IGFyZVxuICAgICAgICAvLyBkaXNwb3NlZCBhbmQgcmVhZGRlZC4gRXhlY3V0aW5nIHNjcmlwdHMgdHdpY2UgaGFzIG5vIGZ1bmN0aW9uYWxcbiAgICAgICAgLy8gZGlmZmVyZW5jZXNcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgICBsZXQgcHJvbSA9IGxvYWRlZFNjcmlwdHMuZ2V0KHNyYyk7XG4gICAgICAgICAgICBpZiAocHJvbSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwcm9tO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gU2tpcCBleGVjdXRpbmcgc2NyaXB0IGlmIGl0J3MgYWxyZWFkeSBpbiB0aGUgRE9NOlxuICAgICAgICAgICAgaWYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYHNjcmlwdFtzcmNePVwiJHtzcmN9XCJdYCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsb2FkZWRTY3JpcHRzLnNldChzcmMsIHByb20gPSBhcHBlbmRTY3JpcHQoc3JjKSk7XG4gICAgICAgICAgICByZXR1cm4gcHJvbTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBhcHBlbmRTY3JpcHQoc3JjKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBmZXRjaFN0eWxlU2hlZXQoaHJlZikge1xuICAgICAgICBsZXQgcHJvbSA9IHN0eWxlU2hlZXRzLmdldChocmVmKTtcbiAgICAgICAgaWYgKHByb20pIHtcbiAgICAgICAgICAgIHJldHVybiBwcm9tO1xuICAgICAgICB9XG4gICAgICAgIHN0eWxlU2hlZXRzLnNldChocmVmLCBwcm9tID0gZmV0Y2goaHJlZikudGhlbigocmVzKT0+e1xuICAgICAgICAgICAgaWYgKCFyZXMub2spIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBsb2FkIHN0eWxlc2hlZXQ6ICR7aHJlZn1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZXMudGV4dCgpLnRoZW4oKHRleHQpPT4oe1xuICAgICAgICAgICAgICAgICAgICBocmVmOiBocmVmLFxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiB0ZXh0XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pLmNhdGNoKChlcnIpPT57XG4gICAgICAgICAgICB0aHJvdyBtYXJrQXNzZXRFcnJvcihlcnIpO1xuICAgICAgICB9KSk7XG4gICAgICAgIHJldHVybiBwcm9tO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICB3aGVuRW50cnlwb2ludCAocm91dGUpIHtcbiAgICAgICAgICAgIHJldHVybiB3aXRoRnV0dXJlKHJvdXRlLCBlbnRyeXBvaW50cyk7XG4gICAgICAgIH0sXG4gICAgICAgIG9uRW50cnlwb2ludCAocm91dGUsIGV4ZWN1dGUpIHtcbiAgICAgICAgICAgIChleGVjdXRlID8gUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+ZXhlY3V0ZSgpXG4gICAgICAgICAgICApLnRoZW4oKGV4cG9ydHMpPT4oe1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQ6IGV4cG9ydHMgJiYgZXhwb3J0cy5kZWZhdWx0IHx8IGV4cG9ydHMsXG4gICAgICAgICAgICAgICAgICAgIGV4cG9ydHM6IGV4cG9ydHNcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgLCAoZXJyKT0+KHtcbiAgICAgICAgICAgICAgICAgICAgZXJyb3I6IGVyclxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApIDogUHJvbWlzZS5yZXNvbHZlKHVuZGVmaW5lZCkpLnRoZW4oKGlucHV0KT0+e1xuICAgICAgICAgICAgICAgIGNvbnN0IG9sZCA9IGVudHJ5cG9pbnRzLmdldChyb3V0ZSk7XG4gICAgICAgICAgICAgICAgaWYgKG9sZCAmJiAncmVzb2x2ZScgaW4gb2xkKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpbnB1dCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZW50cnlwb2ludHMuc2V0KHJvdXRlLCBpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBvbGQucmVzb2x2ZShpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW5wdXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5cG9pbnRzLnNldChyb3V0ZSwgaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZW50cnlwb2ludHMuZGVsZXRlKHJvdXRlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyB3aGVuIHRoaXMgZW50cnlwb2ludCBoYXMgYmVlbiByZXNvbHZlZCBiZWZvcmVcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHJvdXRlIGlzIG91dGRhdGVkIGFuZCB3ZSB3YW50IHRvIGludmFsaWRhdGVcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBjYWNoZSBlbnRyeVxuICAgICAgICAgICAgICAgICAgICByb3V0ZXMuZGVsZXRlKHJvdXRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgbG9hZFJvdXRlIChyb3V0ZSwgcHJlZmV0Y2gpIHtcbiAgICAgICAgICAgIHJldHVybiB3aXRoRnV0dXJlKHJvdXRlLCByb3V0ZXMsICgpPT57XG4gICAgICAgICAgICAgICAgY29uc3Qgcm91dGVGaWxlc1Byb21pc2UgPSBnZXRGaWxlc0ZvclJvdXRlKGFzc2V0UHJlZml4LCByb3V0ZSkudGhlbigoeyBzY3JpcHRzICwgY3NzICB9KT0+e1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW1xuICAgICAgICAgICAgICAgICAgICAgICAgZW50cnlwb2ludHMuaGFzKHJvdXRlKSA/IFtdIDogUHJvbWlzZS5hbGwoc2NyaXB0cy5tYXAobWF5YmVFeGVjdXRlU2NyaXB0KSksXG4gICAgICAgICAgICAgICAgICAgICAgICBQcm9taXNlLmFsbChjc3MubWFwKGZldGNoU3R5bGVTaGVldCkpLCBcbiAgICAgICAgICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICAgICAgfSkudGhlbigocmVzKT0+e1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy53aGVuRW50cnlwb2ludChyb3V0ZSkudGhlbigoZW50cnlwb2ludCk9Pih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50cnlwb2ludCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZXM6IHJlc1sxXVxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgICAgICAgICAgICAgZGV2QnVpbGRQcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocm91dGVGaWxlc1Byb21pc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcm91dGVGaWxlc1Byb21pc2UuZmluYWxseSgoKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzb2x2ZVByb21pc2VXaXRoVGltZW91dChyb3V0ZUZpbGVzUHJvbWlzZSwgTVNfTUFYX0lETEVfREVMQVksIG1hcmtBc3NldEVycm9yKG5ldyBFcnJvcihgUm91dGUgZGlkIG5vdCBjb21wbGV0ZSBsb2FkaW5nOiAke3JvdXRlfWApKSkudGhlbigoeyBlbnRyeXBvaW50ICwgc3R5bGVzICB9KT0+e1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXMgPSBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlczogc3R5bGVzXG4gICAgICAgICAgICAgICAgICAgIH0sIGVudHJ5cG9pbnQpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2Vycm9yJyBpbiBlbnRyeXBvaW50ID8gZW50cnlwb2ludCA6IHJlcztcbiAgICAgICAgICAgICAgICB9KS5jYXRjaCgoZXJyKT0+e1xuICAgICAgICAgICAgICAgICAgICBpZiAocHJlZmV0Y2gpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGRvbid0IHdhbnQgdG8gY2FjaGUgZXJyb3JzIGR1cmluZyBwcmVmZXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogZXJyXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgcHJlZmV0Y2ggKHJvdXRlKSB7XG4gICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vR29vZ2xlQ2hyb21lTGFicy9xdWlja2xpbmsvYmxvYi80NTNhNjYxZmExZmE5NDBlMmQyZTA0NDQ1MjM5OGUzOGM2N2E5OGZiL3NyYy9pbmRleC5tanMjTDExNS1MMTE4XG4gICAgICAgICAgICAvLyBMaWNlbnNlOiBBcGFjaGUgMi4wXG4gICAgICAgICAgICBsZXQgY247XG4gICAgICAgICAgICBpZiAoY24gPSBuYXZpZ2F0b3IuY29ubmVjdGlvbikge1xuICAgICAgICAgICAgICAgIC8vIERvbid0IHByZWZldGNoIGlmIHVzaW5nIDJHIG9yIGlmIFNhdmUtRGF0YSBpcyBlbmFibGVkLlxuICAgICAgICAgICAgICAgIGlmIChjbi5zYXZlRGF0YSB8fCAvMmcvLnRlc3QoY24uZWZmZWN0aXZlVHlwZSkpIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBnZXRGaWxlc0ZvclJvdXRlKGFzc2V0UHJlZml4LCByb3V0ZSkudGhlbigob3V0cHV0KT0+UHJvbWlzZS5hbGwoY2FuUHJlZmV0Y2ggPyBvdXRwdXQuc2NyaXB0cy5tYXAoKHNjcmlwdCk9PnByZWZldGNoVmlhRG9tKHNjcmlwdCwgJ3NjcmlwdCcpXG4gICAgICAgICAgICAgICAgKSA6IFtdKVxuICAgICAgICAgICAgKS50aGVuKCgpPT57XG4gICAgICAgICAgICAgICAgKDAsIF9yZXF1ZXN0SWRsZUNhbGxiYWNrKS5yZXF1ZXN0SWRsZUNhbGxiYWNrKCgpPT50aGlzLmxvYWRSb3V0ZShyb3V0ZSwgdHJ1ZSkuY2F0Y2goKCk9PntcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSkuY2F0Y2goLy8gc3dhbGxvdyBwcmVmZXRjaCBlcnJvcnNcbiAgICAgICAgICAgICgpPT57XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH07XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJvdXRlLWxvYWRlci5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJtYXJrQXNzZXRFcnJvciIsImlzQXNzZXRFcnJvciIsImdldENsaWVudEJ1aWxkTWFuaWZlc3QiLCJnZXRNaWRkbGV3YXJlTWFuaWZlc3QiLCJjcmVhdGVSb3V0ZUxvYWRlciIsIl9nZXRBc3NldFBhdGhGcm9tUm91dGUiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZXF1ZXN0SWRsZUNhbGxiYWNrIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJNU19NQVhfSURMRV9ERUxBWSIsIndpdGhGdXR1cmUiLCJrZXkiLCJtYXAiLCJnZW5lcmF0b3IiLCJlbnRyeSIsImdldCIsImZ1dHVyZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVzb2x2ZXIiLCJwcm9tIiwic2V0IiwidGhlbiIsImNhdGNoIiwiZXJyIiwiZGVsZXRlIiwiaGFzUHJlZmV0Y2giLCJsaW5rIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50Iiwid2luZG93IiwiTVNJbnB1dE1ldGhvZENvbnRleHQiLCJkb2N1bWVudE1vZGUiLCJyZWxMaXN0Iiwic3VwcG9ydHMiLCJlIiwiY2FuUHJlZmV0Y2giLCJwcmVmZXRjaFZpYURvbSIsImhyZWYiLCJhcyIsInJlcyIsInJlaiIsInNlbGVjdG9yIiwicXVlcnlTZWxlY3RvciIsInJlbCIsImNyb3NzT3JpZ2luIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9DUk9TU19PUklHSU4iLCJvbmxvYWQiLCJvbmVycm9yIiwiaGVhZCIsImFwcGVuZENoaWxkIiwiQVNTRVRfTE9BRF9FUlJPUiIsIlN5bWJvbCIsImFwcGVuZFNjcmlwdCIsInNyYyIsInNjcmlwdCIsInJlamVjdCIsIkVycm9yIiwiYm9keSIsImRldkJ1aWxkUHJvbWlzZSIsInJlc29sdmVQcm9taXNlV2l0aFRpbWVvdXQiLCJwIiwibXMiLCJjYW5jZWxsZWQiLCJyIiwicmVxdWVzdElkbGVDYWxsYmFjayIsInNldFRpbWVvdXQiLCJzZWxmIiwiX19CVUlMRF9NQU5JRkVTVCIsIm9uQnVpbGRNYW5pZmVzdCIsImNiIiwiX19CVUlMRF9NQU5JRkVTVF9DQiIsIl9fTUlERExFV0FSRV9NQU5JRkVTVCIsIm9uTWlkZGxld2FyZU1hbmlmZXN0IiwiX19NSURETEVXQVJFX01BTklGRVNUX0NCIiwiZ2V0RmlsZXNGb3JSb3V0ZSIsImFzc2V0UHJlZml4Iiwicm91dGUiLCJzY3JpcHRzIiwiZW5jb2RlVVJJIiwiY3NzIiwibWFuaWZlc3QiLCJhbGxGaWxlcyIsImZpbHRlciIsInYiLCJlbmRzV2l0aCIsImVudHJ5cG9pbnRzIiwiTWFwIiwibG9hZGVkU2NyaXB0cyIsInN0eWxlU2hlZXRzIiwicm91dGVzIiwibWF5YmVFeGVjdXRlU2NyaXB0IiwiZmV0Y2hTdHlsZVNoZWV0IiwiZmV0Y2giLCJvayIsInRleHQiLCJjb250ZW50Iiwid2hlbkVudHJ5cG9pbnQiLCJvbkVudHJ5cG9pbnQiLCJleGVjdXRlIiwiY29tcG9uZW50IiwiZXJyb3IiLCJ1bmRlZmluZWQiLCJpbnB1dCIsIm9sZCIsImxvYWRSb3V0ZSIsInByZWZldGNoIiwicm91dGVGaWxlc1Byb21pc2UiLCJhbGwiLCJoYXMiLCJlbnRyeXBvaW50Iiwic3R5bGVzIiwiZmluYWxseSIsImFzc2lnbiIsImNuIiwibmF2aWdhdG9yIiwiY29ubmVjdGlvbiIsInNhdmVEYXRhIiwidGVzdCIsImVmZmVjdGl2ZVR5cGUiLCJvdXRwdXQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/route-loader.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/router.js": +/*!*************************************************!*\ + !*** ./node_modules/next/dist/client/router.js ***! + \*************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"Router\", ({\n enumerable: true,\n get: function () {\n return _router.default;\n }\n}));\nObject.defineProperty(exports, \"withRouter\", ({\n enumerable: true,\n get: function () {\n return _withRouter.default;\n }\n}));\nexports.useRouter = useRouter;\nexports.createRouter = createRouter;\nexports.makePublicRouterInstance = makePublicRouterInstance;\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"react\"));\n\nvar _router = _interopRequireDefault(__webpack_require__(/*! ../shared/lib/router/router */ \"./node_modules/next/dist/shared/lib/router/router.js\"));\n\nvar _routerContext = __webpack_require__(/*! ../shared/lib/router-context */ \"../shared/lib/router-context\");\n\nvar _isError = _interopRequireDefault(__webpack_require__(/*! ../lib/is-error */ \"./node_modules/next/dist/lib/is-error.js\"));\n\nvar _withRouter = _interopRequireDefault(__webpack_require__(/*! ./with-router */ \"./node_modules/next/dist/client/with-router.js\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nconst singletonRouter = {\n router: null,\n readyCallbacks: [],\n\n ready(cb) {\n if (this.router) return cb();\n\n if (false) {}\n }\n\n}; // Create public properties and methods of the router in the singletonRouter\n\nconst urlPropertyFields = ['pathname', 'route', 'query', 'asPath', 'components', 'isFallback', 'basePath', 'locale', 'locales', 'defaultLocale', 'isReady', 'isPreview', 'isLocaleDomain', 'domainLocales'];\nconst routerEvents = ['routeChangeStart', 'beforeHistoryChange', 'routeChangeComplete', 'routeChangeError', 'hashChangeStart', 'hashChangeComplete'];\nconst coreMethodFields = ['push', 'replace', 'reload', 'back', 'prefetch', 'beforePopState']; // Events is a static property on the router, the router doesn't have to be initialized to use it\n\nObject.defineProperty(singletonRouter, 'events', {\n get() {\n return _router.default.events;\n }\n\n});\nurlPropertyFields.forEach(field => {\n // Here we need to use Object.defineProperty because we need to return\n // the property assigned to the actual router\n // The value might get changed as we change routes and this is the\n // proper way to access it\n Object.defineProperty(singletonRouter, field, {\n get() {\n const router = getRouter();\n return router[field];\n }\n\n });\n});\ncoreMethodFields.forEach(field => {\n singletonRouter[field] = (...args) => {\n const router = getRouter();\n return router[field](...args);\n };\n});\nrouterEvents.forEach(event => {\n singletonRouter.ready(() => {\n _router.default.events.on(event, (...args) => {\n const eventField = `on${event.charAt(0).toUpperCase()}${event.substring(1)}`;\n const _singletonRouter = singletonRouter;\n\n if (_singletonRouter[eventField]) {\n try {\n _singletonRouter[eventField](...args);\n } catch (err) {\n console.error(`Error when running the Router event: ${eventField}`);\n console.error((0, _isError).default(err) ? `${err.message}\\n${err.stack}` : err + '');\n }\n }\n });\n });\n});\n\nfunction getRouter() {\n if (!singletonRouter.router) {\n const message = 'No router instance found.\\n' + 'You should only use \"next/router\" on the client side of your app.\\n';\n throw new Error(message);\n }\n\n return singletonRouter.router;\n}\n\nvar _default = singletonRouter;\nexports[\"default\"] = _default;\n\nfunction useRouter() {\n return _react.default.useContext(_routerContext.RouterContext);\n}\n\nfunction createRouter(...args) {\n singletonRouter.router = new _router.default(...args);\n singletonRouter.readyCallbacks.forEach(cb => cb());\n singletonRouter.readyCallbacks = [];\n return singletonRouter.router;\n}\n\nfunction makePublicRouterInstance(router) {\n const scopedRouter = router;\n const instance = {};\n\n for (const property of urlPropertyFields) {\n if (typeof scopedRouter[property] === 'object') {\n instance[property] = Object.assign(Array.isArray(scopedRouter[property]) ? [] : {}, scopedRouter[property]) // makes sure query is not stateful\n ;\n continue;\n }\n\n instance[property] = scopedRouter[property];\n } // Events is a static property on the router, the router doesn't have to be initialized to use it\n\n\n instance.events = _router.default.events;\n coreMethodFields.forEach(field => {\n instance[field] = (...args) => {\n return scopedRouter[field](...args);\n };\n });\n return instance;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yb3V0ZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FILDBDQUF5QztBQUNyQ0ksRUFBQUEsVUFBVSxFQUFFLElBRHlCO0FBRXJDQyxFQUFBQSxHQUFHLEVBQUUsWUFBVztBQUNaLFdBQU9DLE9BQU8sQ0FBQ0MsT0FBZjtBQUNIO0FBSm9DLENBQXpDO0FBTUFQLDhDQUE2QztBQUN6Q0ksRUFBQUEsVUFBVSxFQUFFLElBRDZCO0FBRXpDQyxFQUFBQSxHQUFHLEVBQUUsWUFBVztBQUNaLFdBQU9HLFdBQVcsQ0FBQ0QsT0FBbkI7QUFDSDtBQUp3QyxDQUE3QztBQU1BTCxpQkFBQSxHQUFvQk8sU0FBcEI7QUFDQVAsb0JBQUEsR0FBdUJRLFlBQXZCO0FBQ0FSLGdDQUFBLEdBQW1DUyx3QkFBbkM7QUFDQVQsa0JBQUEsR0FBa0IsS0FBSyxDQUF2Qjs7QUFDQSxJQUFJVSxNQUFNLEdBQUdDLHNCQUFzQixDQUFDQyxtQkFBTyxDQUFDLG9CQUFELENBQVIsQ0FBbkM7O0FBQ0EsSUFBSVIsT0FBTyxHQUFHTyxzQkFBc0IsQ0FBQ0MsbUJBQU8sQ0FBQyx5RkFBRCxDQUFSLENBQXBDOztBQUNBLElBQUlDLGNBQWMsR0FBR0QsbUJBQU8sQ0FBQyxrRUFBRCxDQUE1Qjs7QUFDQSxJQUFJRSxRQUFRLEdBQUdILHNCQUFzQixDQUFDQyxtQkFBTyxDQUFDLGlFQUFELENBQVIsQ0FBckM7O0FBQ0EsSUFBSU4sV0FBVyxHQUFHSyxzQkFBc0IsQ0FBQ0MsbUJBQU8sQ0FBQyxxRUFBRCxDQUFSLENBQXhDOztBQUNBLFNBQVNELHNCQUFULENBQWdDSSxHQUFoQyxFQUFxQztBQUNqQyxTQUFPQSxHQUFHLElBQUlBLEdBQUcsQ0FBQ0MsVUFBWCxHQUF3QkQsR0FBeEIsR0FBOEI7QUFDakNWLElBQUFBLE9BQU8sRUFBRVU7QUFEd0IsR0FBckM7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LENBQW5CLEtBQWtDLFFBQXRDLEVBQWdEO0FBQzVDRCxNQUFBQSxRQUFRLENBQUNDLFFBQUQsQ0FBUixHQUFxQm5ELE1BQU0sQ0FBQ29ELE1BQVAsQ0FBY0MsS0FBSyxDQUFDQyxPQUFOLENBQWNMLFlBQVksQ0FBQ0UsUUFBRCxDQUExQixJQUF3QyxFQUF4QyxHQUE2QyxFQUEzRCxFQUNsQkYsWUFBWSxDQUFDRSxRQUFELENBRE0sQ0FBckIsQ0FDMkI7QUFEM0I7QUFHQTtBQUNIOztBQUNERCxJQUFBQSxRQUFRLENBQUNDLFFBQUQsQ0FBUixHQUFxQkYsWUFBWSxDQUFDRSxRQUFELENBQWpDO0FBQ0gsR0FacUMsQ0FhdEM7OztBQUNBRCxFQUFBQSxRQUFRLENBQUN0QixNQUFULEdBQWtCdEIsT0FBTyxDQUFDQyxPQUFSLENBQWdCcUIsTUFBbEM7QUFDQUQsRUFBQUEsZ0JBQWdCLENBQUNFLE9BQWpCLENBQTBCQyxLQUFELElBQVM7QUFDOUJvQixJQUFBQSxRQUFRLENBQUNwQixLQUFELENBQVIsR0FBa0IsQ0FBQyxHQUFHRSxJQUFKLEtBQVc7QUFDekIsYUFBT2lCLFlBQVksQ0FBQ25CLEtBQUQsQ0FBWixDQUFvQixHQUFHRSxJQUF2QixDQUFQO0FBQ0gsS0FGRDtBQUdILEdBSkQ7QUFLQSxTQUFPa0IsUUFBUDtBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmllLXJlYWN0Ly4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvcm91dGVyLmpzPzMxZmMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJSb3V0ZXJcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9yb3V0ZXIuZGVmYXVsdDtcbiAgICB9XG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIndpdGhSb3V0ZXJcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF93aXRoUm91dGVyLmRlZmF1bHQ7XG4gICAgfVxufSk7XG5leHBvcnRzLnVzZVJvdXRlciA9IHVzZVJvdXRlcjtcbmV4cG9ydHMuY3JlYXRlUm91dGVyID0gY3JlYXRlUm91dGVyO1xuZXhwb3J0cy5tYWtlUHVibGljUm91dGVySW5zdGFuY2UgPSBtYWtlUHVibGljUm91dGVySW5zdGFuY2U7XG5leHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7XG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xudmFyIF9yb3V0ZXIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3JvdXRlci9yb3V0ZXJcIikpO1xudmFyIF9yb3V0ZXJDb250ZXh0ID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyLWNvbnRleHRcIik7XG52YXIgX2lzRXJyb3IgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9saWIvaXMtZXJyb3JcIikpO1xudmFyIF93aXRoUm91dGVyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi93aXRoLXJvdXRlclwiKSk7XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5jb25zdCBzaW5nbGV0b25Sb3V0ZXIgPSB7XG4gICAgcm91dGVyOiBudWxsLFxuICAgIHJlYWR5Q2FsbGJhY2tzOiBbXSxcbiAgICByZWFkeSAoY2IpIHtcbiAgICAgICAgaWYgKHRoaXMucm91dGVyKSByZXR1cm4gY2IoKTtcbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICB0aGlzLnJlYWR5Q2FsbGJhY2tzLnB1c2goY2IpO1xuICAgICAgICB9XG4gICAgfVxufTtcbi8vIENyZWF0ZSBwdWJsaWMgcHJvcGVydGllcyBhbmQgbWV0aG9kcyBvZiB0aGUgcm91dGVyIGluIHRoZSBzaW5nbGV0b25Sb3V0ZXJcbmNvbnN0IHVybFByb3BlcnR5RmllbGRzID0gW1xuICAgICdwYXRobmFtZScsXG4gICAgJ3JvdXRlJyxcbiAgICAncXVlcnknLFxuICAgICdhc1BhdGgnLFxuICAgICdjb21wb25lbnRzJyxcbiAgICAnaXNGYWxsYmFjaycsXG4gICAgJ2Jhc2VQYXRoJyxcbiAgICAnbG9jYWxlJyxcbiAgICAnbG9jYWxlcycsXG4gICAgJ2RlZmF1bHRMb2NhbGUnLFxuICAgICdpc1JlYWR5JyxcbiAgICAnaXNQcmV2aWV3JyxcbiAgICAnaXNMb2NhbGVEb21haW4nLFxuICAgICdkb21haW5Mb2NhbGVzJywgXG5dO1xuY29uc3Qgcm91dGVyRXZlbnRzID0gW1xuICAgICdyb3V0ZUNoYW5nZVN0YXJ0JyxcbiAgICAnYmVmb3JlSGlzdG9yeUNoYW5nZScsXG4gICAgJ3JvdXRlQ2hhbmdlQ29tcGxldGUnLFxuICAgICdyb3V0ZUNoYW5nZUVycm9yJyxcbiAgICAnaGFzaENoYW5nZVN0YXJ0JyxcbiAgICAnaGFzaENoYW5nZUNvbXBsZXRlJywgXG5dO1xuY29uc3QgY29yZU1ldGhvZEZpZWxkcyA9IFtcbiAgICAncHVzaCcsXG4gICAgJ3JlcGxhY2UnLFxuICAgICdyZWxvYWQnLFxuICAgICdiYWNrJyxcbiAgICAncHJlZmV0Y2gnLFxuICAgICdiZWZvcmVQb3BTdGF0ZScsIFxuXTtcbi8vIEV2ZW50cyBpcyBhIHN0YXRpYyBwcm9wZXJ0eSBvbiB0aGUgcm91dGVyLCB0aGUgcm91dGVyIGRvZXNuJ3QgaGF2ZSB0byBiZSBpbml0aWFsaXplZCB0byB1c2UgaXRcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShzaW5nbGV0b25Sb3V0ZXIsICdldmVudHMnLCB7XG4gICAgZ2V0ICgpIHtcbiAgICAgICAgcmV0dXJuIF9yb3V0ZXIuZGVmYXVsdC5ldmVudHM7XG4gICAgfVxufSk7XG51cmxQcm9wZXJ0eUZpZWxkcy5mb3JFYWNoKChmaWVsZCk9PntcbiAgICAvLyBIZXJlIHdlIG5lZWQgdG8gdXNlIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSBiZWNhdXNlIHdlIG5lZWQgdG8gcmV0dXJuXG4gICAgLy8gdGhlIHByb3BlcnR5IGFzc2lnbmVkIHRvIHRoZSBhY3R1YWwgcm91dGVyXG4gICAgLy8gVGhlIHZhbHVlIG1pZ2h0IGdldCBjaGFuZ2VkIGFzIHdlIGNoYW5nZSByb3V0ZXMgYW5kIHRoaXMgaXMgdGhlXG4gICAgLy8gcHJvcGVyIHdheSB0byBhY2Nlc3MgaXRcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoc2luZ2xldG9uUm91dGVyLCBmaWVsZCwge1xuICAgICAgICBnZXQgKCkge1xuICAgICAgICAgICAgY29uc3Qgcm91dGVyID0gZ2V0Um91dGVyKCk7XG4gICAgICAgICAgICByZXR1cm4gcm91dGVyW2ZpZWxkXTtcbiAgICAgICAgfVxuICAgIH0pO1xufSk7XG5jb3JlTWV0aG9kRmllbGRzLmZvckVhY2goKGZpZWxkKT0+e1xuICAgIHNpbmdsZXRvblJvdXRlcltmaWVsZF0gPSAoLi4uYXJncyk9PntcbiAgICAgICAgY29uc3Qgcm91dGVyID0gZ2V0Um91dGVyKCk7XG4gICAgICAgIHJldHVybiByb3V0ZXJbZmllbGRdKC4uLmFyZ3MpO1xuICAgIH07XG59KTtcbnJvdXRlckV2ZW50cy5mb3JFYWNoKChldmVudCk9PntcbiAgICBzaW5nbGV0b25Sb3V0ZXIucmVhZHkoKCk9PntcbiAgICAgICAgX3JvdXRlci5kZWZhdWx0LmV2ZW50cy5vbihldmVudCwgKC4uLmFyZ3MpPT57XG4gICAgICAgICAgICBjb25zdCBldmVudEZpZWxkID0gYG9uJHtldmVudC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKX0ke2V2ZW50LnN1YnN0cmluZygxKX1gO1xuICAgICAgICAgICAgY29uc3QgX3NpbmdsZXRvblJvdXRlciA9IHNpbmdsZXRvblJvdXRlcjtcbiAgICAgICAgICAgIGlmIChfc2luZ2xldG9uUm91dGVyW2V2ZW50RmllbGRdKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgX3NpbmdsZXRvblJvdXRlcltldmVudEZpZWxkXSguLi5hcmdzKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihgRXJyb3Igd2hlbiBydW5uaW5nIHRoZSBSb3V0ZXIgZXZlbnQ6ICR7ZXZlbnRGaWVsZH1gKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcigoMCwgX2lzRXJyb3IpLmRlZmF1bHQoZXJyKSA/IGAke2Vyci5tZXNzYWdlfVxcbiR7ZXJyLnN0YWNrfWAgOiBlcnIgKyAnJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcbn0pO1xuZnVuY3Rpb24gZ2V0Um91dGVyKCkge1xuICAgIGlmICghc2luZ2xldG9uUm91dGVyLnJvdXRlcikge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gJ05vIHJvdXRlciBpbnN0YW5jZSBmb3VuZC5cXG4nICsgJ1lvdSBzaG91bGQgb25seSB1c2UgXCJuZXh0L3JvdXRlclwiIG9uIHRoZSBjbGllbnQgc2lkZSBvZiB5b3VyIGFwcC5cXG4nO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICAgIHJldHVybiBzaW5nbGV0b25Sb3V0ZXIucm91dGVyO1xufVxudmFyIF9kZWZhdWx0ID0gc2luZ2xldG9uUm91dGVyO1xuZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7XG5mdW5jdGlvbiB1c2VSb3V0ZXIoKSB7XG4gICAgcmV0dXJuIF9yZWFjdC5kZWZhdWx0LnVzZUNvbnRleHQoX3JvdXRlckNvbnRleHQuUm91dGVyQ29udGV4dCk7XG59XG5mdW5jdGlvbiBjcmVhdGVSb3V0ZXIoLi4uYXJncykge1xuICAgIHNpbmdsZXRvblJvdXRlci5yb3V0ZXIgPSBuZXcgX3JvdXRlci5kZWZhdWx0KC4uLmFyZ3MpO1xuICAgIHNpbmdsZXRvblJvdXRlci5yZWFkeUNhbGxiYWNrcy5mb3JFYWNoKChjYik9PmNiKClcbiAgICApO1xuICAgIHNpbmdsZXRvblJvdXRlci5yZWFkeUNhbGxiYWNrcyA9IFtdO1xuICAgIHJldHVybiBzaW5nbGV0b25Sb3V0ZXIucm91dGVyO1xufVxuZnVuY3Rpb24gbWFrZVB1YmxpY1JvdXRlckluc3RhbmNlKHJvdXRlcikge1xuICAgIGNvbnN0IHNjb3BlZFJvdXRlciA9IHJvdXRlcjtcbiAgICBjb25zdCBpbnN0YW5jZSA9IHtcbiAgICB9O1xuICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgdXJsUHJvcGVydHlGaWVsZHMpe1xuICAgICAgICBpZiAodHlwZW9mIHNjb3BlZFJvdXRlcltwcm9wZXJ0eV0gPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICBpbnN0YW5jZVtwcm9wZXJ0eV0gPSBPYmplY3QuYXNzaWduKEFycmF5LmlzQXJyYXkoc2NvcGVkUm91dGVyW3Byb3BlcnR5XSkgPyBbXSA6IHtcbiAgICAgICAgICAgIH0sIHNjb3BlZFJvdXRlcltwcm9wZXJ0eV0pIC8vIG1ha2VzIHN1cmUgcXVlcnkgaXMgbm90IHN0YXRlZnVsXG4gICAgICAgICAgICA7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpbnN0YW5jZVtwcm9wZXJ0eV0gPSBzY29wZWRSb3V0ZXJbcHJvcGVydHldO1xuICAgIH1cbiAgICAvLyBFdmVudHMgaXMgYSBzdGF0aWMgcHJvcGVydHkgb24gdGhlIHJvdXRlciwgdGhlIHJvdXRlciBkb2Vzbid0IGhhdmUgdG8gYmUgaW5pdGlhbGl6ZWQgdG8gdXNlIGl0XG4gICAgaW5zdGFuY2UuZXZlbnRzID0gX3JvdXRlci5kZWZhdWx0LmV2ZW50cztcbiAgICBjb3JlTWV0aG9kRmllbGRzLmZvckVhY2goKGZpZWxkKT0+e1xuICAgICAgICBpbnN0YW5jZVtmaWVsZF0gPSAoLi4uYXJncyk9PntcbiAgICAgICAgICAgIHJldHVybiBzY29wZWRSb3V0ZXJbZmllbGRdKC4uLmFyZ3MpO1xuICAgICAgICB9O1xuICAgIH0pO1xuICAgIHJldHVybiBpbnN0YW5jZTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cm91dGVyLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImVudW1lcmFibGUiLCJnZXQiLCJfcm91dGVyIiwiZGVmYXVsdCIsIl93aXRoUm91dGVyIiwidXNlUm91dGVyIiwiY3JlYXRlUm91dGVyIiwibWFrZVB1YmxpY1JvdXRlckluc3RhbmNlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcm91dGVyQ29udGV4dCIsIl9pc0Vycm9yIiwib2JqIiwiX19lc01vZHVsZSIsInNpbmdsZXRvblJvdXRlciIsInJvdXRlciIsInJlYWR5Q2FsbGJhY2tzIiwicmVhZHkiLCJjYiIsInB1c2giLCJ1cmxQcm9wZXJ0eUZpZWxkcyIsInJvdXRlckV2ZW50cyIsImNvcmVNZXRob2RGaWVsZHMiLCJldmVudHMiLCJmb3JFYWNoIiwiZmllbGQiLCJnZXRSb3V0ZXIiLCJhcmdzIiwiZXZlbnQiLCJvbiIsImV2ZW50RmllbGQiLCJjaGFyQXQiLCJ0b1VwcGVyQ2FzZSIsInN1YnN0cmluZyIsIl9zaW5nbGV0b25Sb3V0ZXIiLCJlcnIiLCJjb25zb2xlIiwiZXJyb3IiLCJtZXNzYWdlIiwic3RhY2siLCJFcnJvciIsIl9kZWZhdWx0IiwidXNlQ29udGV4dCIsIlJvdXRlckNvbnRleHQiLCJzY29wZWRSb3V0ZXIiLCJpbnN0YW5jZSIsInByb3BlcnR5IiwiYXNzaWduIiwiQXJyYXkiLCJpc0FycmF5Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/router.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/use-intersection.js": +/*!***********************************************************!*\ + !*** ./node_modules/next/dist/client/use-intersection.js ***! + \***********************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.useIntersection = useIntersection;\n\nvar _react = __webpack_require__(/*! react */ \"react\");\n\nvar _requestIdleCallback = __webpack_require__(/*! ./request-idle-callback */ \"./node_modules/next/dist/client/request-idle-callback.js\");\n\nconst hasIntersectionObserver = typeof IntersectionObserver !== 'undefined';\n\nfunction useIntersection({\n rootMargin,\n disabled\n}) {\n const isDisabled = disabled || !hasIntersectionObserver;\n const unobserve = (0, _react).useRef();\n const [visible, setVisible] = (0, _react).useState(false);\n const setRef = (0, _react).useCallback(el => {\n if (unobserve.current) {\n unobserve.current();\n unobserve.current = undefined;\n }\n\n if (isDisabled || visible) return;\n\n if (el && el.tagName) {\n unobserve.current = observe(el, isVisible => isVisible && setVisible(isVisible), {\n rootMargin\n });\n }\n }, [isDisabled, rootMargin, visible]);\n (0, _react).useEffect(() => {\n if (!hasIntersectionObserver) {\n if (!visible) {\n const idleCallback = (0, _requestIdleCallback).requestIdleCallback(() => setVisible(true));\n return () => (0, _requestIdleCallback).cancelIdleCallback(idleCallback);\n }\n }\n }, [visible]);\n return [setRef, visible];\n}\n\nfunction observe(element, callback, options) {\n const {\n id,\n observer,\n elements\n } = createObserver(options);\n elements.set(element, callback);\n observer.observe(element);\n return function unobserve() {\n elements.delete(element);\n observer.unobserve(element); // Destroy observer when there's nothing left to watch:\n\n if (elements.size === 0) {\n observer.disconnect();\n observers.delete(id);\n }\n };\n}\n\nconst observers = new Map();\n\nfunction createObserver(options) {\n const id = options.rootMargin || '';\n let instance = observers.get(id);\n\n if (instance) {\n return instance;\n }\n\n const elements = new Map();\n const observer = new IntersectionObserver(entries => {\n entries.forEach(entry => {\n const callback = elements.get(entry.target);\n const isVisible = entry.isIntersecting || entry.intersectionRatio > 0;\n\n if (callback && isVisible) {\n callback(isVisible);\n }\n });\n }, options);\n observers.set(id, instance = {\n id,\n observer,\n elements\n });\n return instance;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC91c2UtaW50ZXJzZWN0aW9uLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCx1QkFBQSxHQUEwQkUsZUFBMUI7O0FBQ0EsSUFBSUMsTUFBTSxHQUFHQyxtQkFBTyxDQUFDLG9CQUFELENBQXBCOztBQUNBLElBQUlDLG9CQUFvQixHQUFHRCxtQkFBTyxDQUFDLHlGQUFELENBQWxDOztBQUNBLE1BQU1FLHVCQUF1QixHQUFHLE9BQU9DLG9CQUFQLEtBQWdDLFdBQWhFOztBQUNBLFNBQVNMLGVBQVQsQ0FBeUI7QUFBRU0sRUFBQUEsVUFBRjtBQUFlQyxFQUFBQTtBQUFmLENBQXpCLEVBQXFEO0FBQ2pELFFBQU1DLFVBQVUsR0FBR0QsUUFBUSxJQUFJLENBQUNILHVCQUFoQztBQUNBLFFBQU1LLFNBQVMsR0FBRyxDQUFDLEdBQUdSLE1BQUosRUFBWVMsTUFBWixFQUFsQjtBQUNBLFFBQU0sQ0FBQ0MsT0FBRCxFQUFVQyxVQUFWLElBQXdCLENBQUMsR0FBR1gsTUFBSixFQUFZWSxRQUFaLENBQXFCLEtBQXJCLENBQTlCO0FBQ0EsUUFBTUMsTUFBTSxHQUFHLENBQUMsR0FBR2IsTUFBSixFQUFZYyxXQUFaLENBQXlCQyxFQUFELElBQU07QUFDekMsUUFBSVAsU0FBUyxDQUFDUSxPQUFkLEVBQXVCO0FBQ25CUixNQUFBQSxTQUFTLENBQUNRLE9BQVY7QUFDQVIsTUFBQUEsU0FBUyxDQUFDUSxPQUFWLEdBQW9CQyxTQUFwQjtBQUNIOztBQUNELFFBQUlWLFVBQVUsSUFBSUcsT0FBbEIsRUFBMkI7O0FBQzNCLFFBQUlLLEVBQUUsSUFBSUEsRUFBRSxDQUFDRyxPQUFiLEVBQXNCO0FBQ2xCVixNQUFBQSxTQUFTLENBQUNRLE9BQVYsR0FBb0JHLE9BQU8sQ0FBQ0osRUFBRCxFQUFNSyxTQUFELElBQWFBLFNBQVMsSUFBSVQsVUFBVSxDQUFDUyxTQUFELENBQXpDLEVBQ3pCO0FBQ0VmLFFBQUFBO0FBREYsT0FEeUIsQ0FBM0I7QUFJSDtBQUNKLEdBWmMsRUFZWixDQUNDRSxVQURELEVBRUNGLFVBRkQsRUFHQ0ssT0FIRCxDQVpZLENBQWY7QUFpQkEsR0FBQyxHQUFHVixNQUFKLEVBQVlxQixTQUFaLENBQXNCLE1BQUk7QUFDdEIsUUFBSSxDQUFDbEIsdUJBQUwsRUFBOEI7QUFDMUIsVUFBSSxDQUFDTyxPQUFMLEVBQWM7QUFDVixjQUFNWSxZQUFZLEdBQUcsQ0FBQyxHQUFHcEIsb0JBQUosRUFBMEJxQixtQkFBMUIsQ0FBOEMsTUFBSVosVUFBVSxDQUFDLElBQUQsQ0FBNUQsQ0FBckI7QUFFQSxlQUFPLE1BQUksQ0FBQyxHQUFHVCxvQkFBSixFQUEwQnNCLGtCQUExQixDQUE2Q0YsWUFBN0MsQ0FBWDtBQUVIO0FBQ0o7QUFDSixHQVRELEVBU0csQ0FDQ1osT0FERCxDQVRIO0FBWUEsU0FBTyxDQUNIRyxNQURHLEVBRUhILE9BRkcsQ0FBUDtBQUlIOztBQUNELFNBQVNTLE9BQVQsQ0FBaUJNLE9BQWpCLEVBQTBCQyxRQUExQixFQUFvQ0MsT0FBcEMsRUFBNkM7QUFDekMsUUFBTTtBQUFFQyxJQUFBQSxFQUFGO0FBQU9DLElBQUFBLFFBQVA7QUFBa0JDLElBQUFBO0FBQWxCLE1BQWdDQyxjQUFjLENBQUNKLE9BQUQsQ0FBcEQ7QUFDQUcsRUFBQUEsUUFBUSxDQUFDRSxHQUFULENBQWFQLE9BQWIsRUFBc0JDLFFBQXRCO0FBQ0FHLEVBQUFBLFFBQVEsQ0FBQ1YsT0FBVCxDQUFpQk0sT0FBakI7QUFDQSxTQUFPLFNBQVNqQixTQUFULEdBQXFCO0FBQ3hCc0IsSUFBQUEsUUFBUSxDQUFDRyxNQUFULENBQWdCUixPQUFoQjtBQUNBSSxJQUFBQSxRQUFRLENBQUNyQixTQUFULENBQW1CaUIsT0FBbkIsRUFGd0IsQ0FHeEI7O0FBQ0EsUUFBSUssUUFBUSxDQUFDSSxJQUFULEtBQWtCLENBQXRCLEVBQXlCO0FBQ3JCTCxNQUFBQSxRQUFRLENBQUNNLFVBQVQ7QUFDQUMsTUFBQUEsU0FBUyxDQUFDSCxNQUFWLENBQWlCTCxFQUFqQjtBQUNIO0FBQ0osR0FSRDtBQVNIOztBQUNELE1BQU1RLFNBQVMsR0FBRyxJQUFJQyxHQUFKLEVBQWxCOztBQUNBLFNBQVNOLGNBQVQsQ0FBd0JKLE9BQXhCLEVBQWlDO0FBQzdCLFFBQU1DLEVBQUUsR0FBR0QsT0FBTyxDQUFDdEIsVUFBUixJQUFzQixFQUFqQztBQUNBLE1BQUlpQyxRQUFRLEdBQUdGLFNBQVMsQ0FBQ0csR0FBVixDQUFjWCxFQUFkLENBQWY7O0FBQ0EsTUFBSVUsUUFBSixFQUFjO0FBQ1YsV0FBT0EsUUFBUDtBQUNIOztBQUNELFFBQU1SLFFBQVEsR0FBRyxJQUFJTyxHQUFKLEVBQWpCO0FBQ0EsUUFBTVIsUUFBUSxHQUFHLElBQUl6QixvQkFBSixDQUEwQm9DLE9BQUQsSUFBVztBQUNqREEsSUFBQUEsT0FBTyxDQUFDQyxPQUFSLENBQWlCQyxLQUFELElBQVM7QUFDckIsWUFBTWhCLFFBQVEsR0FBR0ksUUFBUSxDQUFDUyxHQUFULENBQWFHLEtBQUssQ0FBQ0MsTUFBbkIsQ0FBakI7QUFDQSxZQUFNdkIsU0FBUyxHQUFHc0IsS0FBSyxDQUFDRSxjQUFOLElBQXdCRixLQUFLLENBQUNHLGlCQUFOLEdBQTBCLENBQXBFOztBQUNBLFVBQUluQixRQUFRLElBQUlOLFNBQWhCLEVBQTJCO0FBQ3ZCTSxRQUFBQSxRQUFRLENBQUNOLFNBQUQsQ0FBUjtBQUNIO0FBQ0osS0FORDtBQU9ILEdBUmdCLEVBUWRPLE9BUmMsQ0FBakI7QUFTQVMsRUFBQUEsU0FBUyxDQUFDSixHQUFWLENBQWNKLEVBQWQsRUFBa0JVLFFBQVEsR0FBRztBQUN6QlYsSUFBQUEsRUFEeUI7QUFFekJDLElBQUFBLFFBRnlCO0FBR3pCQyxJQUFBQTtBQUh5QixHQUE3QjtBQUtBLFNBQU9RLFFBQVA7QUFDSCIsInNvdXJjZXMiOlsid2VicGFjazovL3ZpZS1yZWFjdC8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3VzZS1pbnRlcnNlY3Rpb24uanM/ZmQ5NCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMudXNlSW50ZXJzZWN0aW9uID0gdXNlSW50ZXJzZWN0aW9uO1xudmFyIF9yZWFjdCA9IHJlcXVpcmUoXCJyZWFjdFwiKTtcbnZhciBfcmVxdWVzdElkbGVDYWxsYmFjayA9IHJlcXVpcmUoXCIuL3JlcXVlc3QtaWRsZS1jYWxsYmFja1wiKTtcbmNvbnN0IGhhc0ludGVyc2VjdGlvbk9ic2VydmVyID0gdHlwZW9mIEludGVyc2VjdGlvbk9ic2VydmVyICE9PSAndW5kZWZpbmVkJztcbmZ1bmN0aW9uIHVzZUludGVyc2VjdGlvbih7IHJvb3RNYXJnaW4gLCBkaXNhYmxlZCAgfSkge1xuICAgIGNvbnN0IGlzRGlzYWJsZWQgPSBkaXNhYmxlZCB8fCAhaGFzSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XG4gICAgY29uc3QgdW5vYnNlcnZlID0gKDAsIF9yZWFjdCkudXNlUmVmKCk7XG4gICAgY29uc3QgW3Zpc2libGUsIHNldFZpc2libGVdID0gKDAsIF9yZWFjdCkudXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IHNldFJlZiA9ICgwLCBfcmVhY3QpLnVzZUNhbGxiYWNrKChlbCk9PntcbiAgICAgICAgaWYgKHVub2JzZXJ2ZS5jdXJyZW50KSB7XG4gICAgICAgICAgICB1bm9ic2VydmUuY3VycmVudCgpO1xuICAgICAgICAgICAgdW5vYnNlcnZlLmN1cnJlbnQgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzRGlzYWJsZWQgfHwgdmlzaWJsZSkgcmV0dXJuO1xuICAgICAgICBpZiAoZWwgJiYgZWwudGFnTmFtZSkge1xuICAgICAgICAgICAgdW5vYnNlcnZlLmN1cnJlbnQgPSBvYnNlcnZlKGVsLCAoaXNWaXNpYmxlKT0+aXNWaXNpYmxlICYmIHNldFZpc2libGUoaXNWaXNpYmxlKVxuICAgICAgICAgICAgLCB7XG4gICAgICAgICAgICAgICAgcm9vdE1hcmdpblxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9LCBbXG4gICAgICAgIGlzRGlzYWJsZWQsXG4gICAgICAgIHJvb3RNYXJnaW4sXG4gICAgICAgIHZpc2libGVcbiAgICBdKTtcbiAgICAoMCwgX3JlYWN0KS51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgaWYgKCFoYXNJbnRlcnNlY3Rpb25PYnNlcnZlcikge1xuICAgICAgICAgICAgaWYgKCF2aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaWRsZUNhbGxiYWNrID0gKDAsIF9yZXF1ZXN0SWRsZUNhbGxiYWNrKS5yZXF1ZXN0SWRsZUNhbGxiYWNrKCgpPT5zZXRWaXNpYmxlKHRydWUpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gKCk9PigwLCBfcmVxdWVzdElkbGVDYWxsYmFjaykuY2FuY2VsSWRsZUNhbGxiYWNrKGlkbGVDYWxsYmFjaylcbiAgICAgICAgICAgICAgICA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LCBbXG4gICAgICAgIHZpc2libGVcbiAgICBdKTtcbiAgICByZXR1cm4gW1xuICAgICAgICBzZXRSZWYsXG4gICAgICAgIHZpc2libGVcbiAgICBdO1xufVxuZnVuY3Rpb24gb2JzZXJ2ZShlbGVtZW50LCBjYWxsYmFjaywgb3B0aW9ucykge1xuICAgIGNvbnN0IHsgaWQgLCBvYnNlcnZlciAsIGVsZW1lbnRzICB9ID0gY3JlYXRlT2JzZXJ2ZXIob3B0aW9ucyk7XG4gICAgZWxlbWVudHMuc2V0KGVsZW1lbnQsIGNhbGxiYWNrKTtcbiAgICBvYnNlcnZlci5vYnNlcnZlKGVsZW1lbnQpO1xuICAgIHJldHVybiBmdW5jdGlvbiB1bm9ic2VydmUoKSB7XG4gICAgICAgIGVsZW1lbnRzLmRlbGV0ZShlbGVtZW50KTtcbiAgICAgICAgb2JzZXJ2ZXIudW5vYnNlcnZlKGVsZW1lbnQpO1xuICAgICAgICAvLyBEZXN0cm95IG9ic2VydmVyIHdoZW4gdGhlcmUncyBub3RoaW5nIGxlZnQgdG8gd2F0Y2g6XG4gICAgICAgIGlmIChlbGVtZW50cy5zaXplID09PSAwKSB7XG4gICAgICAgICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICAgICAgICBvYnNlcnZlcnMuZGVsZXRlKGlkKTtcbiAgICAgICAgfVxuICAgIH07XG59XG5jb25zdCBvYnNlcnZlcnMgPSBuZXcgTWFwKCk7XG5mdW5jdGlvbiBjcmVhdGVPYnNlcnZlcihvcHRpb25zKSB7XG4gICAgY29uc3QgaWQgPSBvcHRpb25zLnJvb3RNYXJnaW4gfHwgJyc7XG4gICAgbGV0IGluc3RhbmNlID0gb2JzZXJ2ZXJzLmdldChpZCk7XG4gICAgaWYgKGluc3RhbmNlKSB7XG4gICAgICAgIHJldHVybiBpbnN0YW5jZTtcbiAgICB9XG4gICAgY29uc3QgZWxlbWVudHMgPSBuZXcgTWFwKCk7XG4gICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKGVudHJpZXMpPT57XG4gICAgICAgIGVudHJpZXMuZm9yRWFjaCgoZW50cnkpPT57XG4gICAgICAgICAgICBjb25zdCBjYWxsYmFjayA9IGVsZW1lbnRzLmdldChlbnRyeS50YXJnZXQpO1xuICAgICAgICAgICAgY29uc3QgaXNWaXNpYmxlID0gZW50cnkuaXNJbnRlcnNlY3RpbmcgfHwgZW50cnkuaW50ZXJzZWN0aW9uUmF0aW8gPiAwO1xuICAgICAgICAgICAgaWYgKGNhbGxiYWNrICYmIGlzVmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIGNhbGxiYWNrKGlzVmlzaWJsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0sIG9wdGlvbnMpO1xuICAgIG9ic2VydmVycy5zZXQoaWQsIGluc3RhbmNlID0ge1xuICAgICAgICBpZCxcbiAgICAgICAgb2JzZXJ2ZXIsXG4gICAgICAgIGVsZW1lbnRzXG4gICAgfSk7XG4gICAgcmV0dXJuIGluc3RhbmNlO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2UtaW50ZXJzZWN0aW9uLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsInVzZUludGVyc2VjdGlvbiIsIl9yZWFjdCIsInJlcXVpcmUiLCJfcmVxdWVzdElkbGVDYWxsYmFjayIsImhhc0ludGVyc2VjdGlvbk9ic2VydmVyIiwiSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiLCJyb290TWFyZ2luIiwiZGlzYWJsZWQiLCJpc0Rpc2FibGVkIiwidW5vYnNlcnZlIiwidXNlUmVmIiwidmlzaWJsZSIsInNldFZpc2libGUiLCJ1c2VTdGF0ZSIsInNldFJlZiIsInVzZUNhbGxiYWNrIiwiZWwiLCJjdXJyZW50IiwidW5kZWZpbmVkIiwidGFnTmFtZSIsIm9ic2VydmUiLCJpc1Zpc2libGUiLCJ1c2VFZmZlY3QiLCJpZGxlQ2FsbGJhY2siLCJyZXF1ZXN0SWRsZUNhbGxiYWNrIiwiY2FuY2VsSWRsZUNhbGxiYWNrIiwiZWxlbWVudCIsImNhbGxiYWNrIiwib3B0aW9ucyIsImlkIiwib2JzZXJ2ZXIiLCJlbGVtZW50cyIsImNyZWF0ZU9ic2VydmVyIiwic2V0IiwiZGVsZXRlIiwic2l6ZSIsImRpc2Nvbm5lY3QiLCJvYnNlcnZlcnMiLCJNYXAiLCJpbnN0YW5jZSIsImdldCIsImVudHJpZXMiLCJmb3JFYWNoIiwiZW50cnkiLCJ0YXJnZXQiLCJpc0ludGVyc2VjdGluZyIsImludGVyc2VjdGlvblJhdGlvIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/use-intersection.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/with-router.js": +/*!******************************************************!*\ + !*** ./node_modules/next/dist/client/with-router.js ***! + \******************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = withRouter;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"react\"));\n\nvar _router = __webpack_require__(/*! ./router */ \"./node_modules/next/dist/client/router.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction withRouter(ComposedComponent) {\n function WithRouterWrapper(props) {\n return /*#__PURE__*/_react.default.createElement(ComposedComponent, Object.assign({\n router: (0, _router).useRouter()\n }, props));\n }\n\n WithRouterWrapper.getInitialProps = ComposedComponent.getInitialProps;\n WithRouterWrapper.origGetInitialProps = ComposedComponent.origGetInitialProps;\n\n if (true) {\n const name = ComposedComponent.displayName || ComposedComponent.name || 'Unknown';\n WithRouterWrapper.displayName = `withRouter(${name})`;\n }\n\n return WithRouterWrapper;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC93aXRoLXJvdXRlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFDYkEsOENBQTZDO0FBQ3pDRyxFQUFBQSxLQUFLLEVBQUU7QUFEa0MsQ0FBN0M7QUFHQUQsa0JBQUEsR0FBa0JHLFVBQWxCOztBQUNBLElBQUlDLE1BQU0sR0FBR0Msc0JBQXNCLENBQUNDLG1CQUFPLENBQUMsb0JBQUQsQ0FBUixDQUFuQzs7QUFDQSxJQUFJQyxPQUFPLEdBQUdELG1CQUFPLENBQUMsMkRBQUQsQ0FBckI7O0FBQ0EsU0FBU0Qsc0JBQVQsQ0FBZ0NHLEdBQWhDLEVBQXFDO0FBQ2pDLFNBQU9BLEdBQUcsSUFBSUEsR0FBRyxDQUFDQyxVQUFYLEdBQXdCRCxHQUF4QixHQUE4QjtBQUNqQ04sSUFBQUEsT0FBTyxFQUFFTTtBQUR3QixHQUFyQztBQUdIOztBQUNELFNBQVNMLFVBQVQsQ0FBb0JPLGlCQUFwQixFQUF1QztBQUNuQyxXQUFTQyxpQkFBVCxDQUEyQkMsS0FBM0IsRUFBa0M7QUFDOUIsV0FBTyxhQUFjUixNQUFNLENBQUNGLE9BQVAsQ0FBZVcsYUFBZixDQUE2QkgsaUJBQTdCLEVBQWdEWixNQUFNLENBQUNnQixNQUFQLENBQWM7QUFDL0VDLE1BQUFBLE1BQU0sRUFBRSxDQUFDLEdBQUdSLE9BQUosRUFBYVMsU0FBYjtBQUR1RSxLQUFkLEVBRWxFSixLQUZrRSxDQUFoRCxDQUFyQjtBQUdIOztBQUNERCxFQUFBQSxpQkFBaUIsQ0FBQ00sZUFBbEIsR0FBb0NQLGlCQUFpQixDQUFDTyxlQUF0RDtBQUNBTixFQUFBQSxpQkFBaUIsQ0FBQ08sbUJBQWxCLEdBQXdDUixpQkFBaUIsQ0FBQ1EsbUJBQTFEOztBQUNBLFlBQTJDO0FBQ3ZDLFVBQU1DLElBQUksR0FBR1QsaUJBQWlCLENBQUNVLFdBQWxCLElBQWlDVixpQkFBaUIsQ0FBQ1MsSUFBbkQsSUFBMkQsU0FBeEU7QUFDQVIsSUFBQUEsaUJBQWlCLENBQUNTLFdBQWxCLEdBQWlDLGNBQWFELElBQUssR0FBbkQ7QUFDSDs7QUFDRCxTQUFPUixpQkFBUDtBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmllLXJlYWN0Ly4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvd2l0aC1yb3V0ZXIuanM/YWM3YyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IHdpdGhSb3V0ZXI7XG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xudmFyIF9yb3V0ZXIgPSByZXF1aXJlKFwiLi9yb3V0ZXJcIik7XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5mdW5jdGlvbiB3aXRoUm91dGVyKENvbXBvc2VkQ29tcG9uZW50KSB7XG4gICAgZnVuY3Rpb24gV2l0aFJvdXRlcldyYXBwZXIocHJvcHMpIHtcbiAgICAgICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChDb21wb3NlZENvbXBvbmVudCwgT2JqZWN0LmFzc2lnbih7XG4gICAgICAgICAgICByb3V0ZXI6ICgwLCBfcm91dGVyKS51c2VSb3V0ZXIoKVxuICAgICAgICB9LCBwcm9wcykpKTtcbiAgICB9XG4gICAgV2l0aFJvdXRlcldyYXBwZXIuZ2V0SW5pdGlhbFByb3BzID0gQ29tcG9zZWRDb21wb25lbnQuZ2V0SW5pdGlhbFByb3BzO1xuICAgIFdpdGhSb3V0ZXJXcmFwcGVyLm9yaWdHZXRJbml0aWFsUHJvcHMgPSBDb21wb3NlZENvbXBvbmVudC5vcmlnR2V0SW5pdGlhbFByb3BzO1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSBDb21wb3NlZENvbXBvbmVudC5kaXNwbGF5TmFtZSB8fCBDb21wb3NlZENvbXBvbmVudC5uYW1lIHx8ICdVbmtub3duJztcbiAgICAgICAgV2l0aFJvdXRlcldyYXBwZXIuZGlzcGxheU5hbWUgPSBgd2l0aFJvdXRlcigke25hbWV9KWA7XG4gICAgfVxuICAgIHJldHVybiBXaXRoUm91dGVyV3JhcHBlcjtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9d2l0aC1yb3V0ZXIuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiZGVmYXVsdCIsIndpdGhSb3V0ZXIiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yb3V0ZXIiLCJvYmoiLCJfX2VzTW9kdWxlIiwiQ29tcG9zZWRDb21wb25lbnQiLCJXaXRoUm91dGVyV3JhcHBlciIsInByb3BzIiwiY3JlYXRlRWxlbWVudCIsImFzc2lnbiIsInJvdXRlciIsInVzZVJvdXRlciIsImdldEluaXRpYWxQcm9wcyIsIm9yaWdHZXRJbml0aWFsUHJvcHMiLCJuYW1lIiwiZGlzcGxheU5hbWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/with-router.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/router.js": +/*!************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/router.js ***! + \************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.getDomainLocale = getDomainLocale;\nexports.addLocale = addLocale;\nexports.delLocale = delLocale;\nexports.hasBasePath = hasBasePath;\nexports.addBasePath = addBasePath;\nexports.delBasePath = delBasePath;\nexports.isLocalURL = isLocalURL;\nexports.interpolateAs = interpolateAs;\nexports.resolveHref = resolveHref;\nexports[\"default\"] = void 0;\n\nvar _normalizeTrailingSlash = __webpack_require__(/*! ../../../client/normalize-trailing-slash */ \"./node_modules/next/dist/client/normalize-trailing-slash.js\");\n\nvar _routeLoader = __webpack_require__(/*! ../../../client/route-loader */ \"./node_modules/next/dist/client/route-loader.js\");\n\nvar _isError = _interopRequireDefault(__webpack_require__(/*! ../../../lib/is-error */ \"./node_modules/next/dist/lib/is-error.js\"));\n\nvar _denormalizePagePath = __webpack_require__(/*! ../../../server/denormalize-page-path */ \"../../../server/denormalize-page-path\");\n\nvar _normalizeLocalePath = __webpack_require__(/*! ../i18n/normalize-locale-path */ \"../i18n/normalize-locale-path\");\n\nvar _mitt = _interopRequireDefault(__webpack_require__(/*! ../mitt */ \"../mitt\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"../shared/lib/utils\");\n\nvar _isDynamic = __webpack_require__(/*! ./utils/is-dynamic */ \"./utils/is-dynamic\");\n\nvar _parseRelativeUrl = __webpack_require__(/*! ./utils/parse-relative-url */ \"./utils/parse-relative-url\");\n\nvar _querystring = __webpack_require__(/*! ./utils/querystring */ \"./utils/querystring\");\n\nvar _resolveRewrites = _interopRequireDefault(__webpack_require__(/*! ./utils/resolve-rewrites */ \"./utils/resolve-rewrites\"));\n\nvar _routeMatcher = __webpack_require__(/*! ./utils/route-matcher */ \"./utils/route-matcher\");\n\nvar _routeRegex = __webpack_require__(/*! ./utils/route-regex */ \"./utils/route-regex\");\n\nvar _getMiddlewareRegex = __webpack_require__(/*! ./utils/get-middleware-regex */ \"./utils/get-middleware-regex\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nlet detectDomainLocale;\n\nif (false) {}\n\nconst basePath = false || '';\n\nfunction buildCancellationError() {\n return Object.assign(new Error('Route Cancelled'), {\n cancelled: true\n });\n}\n\nfunction addPathPrefix(path, prefix) {\n if (!path.startsWith('/') || !prefix) {\n return path;\n }\n\n const pathname = pathNoQueryHash(path);\n return (0, _normalizeTrailingSlash).normalizePathTrailingSlash(`${prefix}${pathname}`) + path.substr(pathname.length);\n}\n\nfunction getDomainLocale(path, locale, locales, domainLocales) {\n if (false) {} else {\n return false;\n }\n}\n\nfunction addLocale(path, locale, defaultLocale) {\n if (false) {}\n\n return path;\n}\n\nfunction delLocale(path, locale) {\n if (false) {}\n\n return path;\n}\n\nfunction pathNoQueryHash(path) {\n const queryIndex = path.indexOf('?');\n const hashIndex = path.indexOf('#');\n\n if (queryIndex > -1 || hashIndex > -1) {\n path = path.substring(0, queryIndex > -1 ? queryIndex : hashIndex);\n }\n\n return path;\n}\n\nfunction hasBasePath(path) {\n path = pathNoQueryHash(path);\n return path === basePath || path.startsWith(basePath + '/');\n}\n\nfunction addBasePath(path) {\n // we only add the basepath on relative urls\n return addPathPrefix(path, basePath);\n}\n\nfunction delBasePath(path) {\n path = path.slice(basePath.length);\n if (!path.startsWith('/')) path = `/${path}`;\n return path;\n}\n\nfunction isLocalURL(url) {\n // prevent a hydration mismatch on href for url with anchor refs\n if (url.startsWith('/') || url.startsWith('#') || url.startsWith('?')) return true;\n\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 && hasBasePath(resolved.pathname);\n } catch (_) {\n return false;\n }\n}\n\nfunction interpolateAs(route, asPathname, query) {\n let interpolatedRoute = '';\n const dynamicRegex = (0, _routeRegex).getRouteRegex(route);\n const dynamicGroups = dynamicRegex.groups;\n const dynamicMatches = // Try to match the dynamic route against the asPath\n (asPathname !== route ? (0, _routeMatcher).getRouteMatcher(dynamicRegex)(asPathname) : '') || // Fall back to reading the values from the href\n // TODO: should this take priority; also need to change in the router.\n query;\n interpolatedRoute = route;\n const params = Object.keys(dynamicGroups);\n\n if (!params.every(param => {\n let value = dynamicMatches[param] || '';\n const {\n repeat,\n optional\n } = dynamicGroups[param]; // support single-level catch-all\n // TODO: more robust handling for user-error (passing `/`)\n\n let replaced = `[${repeat ? '...' : ''}${param}]`;\n\n if (optional) {\n replaced = `${!value ? '/' : ''}[${replaced}]`;\n }\n\n if (repeat && !Array.isArray(value)) value = [value];\n return (optional || param in dynamicMatches) && (interpolatedRoute = interpolatedRoute.replace(replaced, repeat ? value.map( // these values should be fully encoded instead of just\n // path delimiter escaped since they are being inserted\n // into the URL and we expect URL encoded segments\n // when parsing dynamic route params\n segment => encodeURIComponent(segment)).join('/') : encodeURIComponent(value)) || '/');\n })) {\n interpolatedRoute = '' // did not satisfy all requirements\n ; // n.b. We ignore this error because we handle warning for this case in\n // development in the `<Link>` component directly.\n }\n\n return {\n params,\n result: interpolatedRoute\n };\n}\n\nfunction omitParmsFromQuery(query, params) {\n const filteredQuery = {};\n Object.keys(query).forEach(key => {\n if (!params.includes(key)) {\n filteredQuery[key] = query[key];\n }\n });\n return filteredQuery;\n}\n\nfunction resolveHref(router, href, resolveAs) {\n // we use a dummy base url for relative urls\n let base;\n let urlAsString = typeof href === 'string' ? href : (0, _utils).formatWithValidation(href); // repeated slashes and backslashes in the URL are considered\n // invalid and will never match a Next.js page/file\n\n const urlProtoMatch = urlAsString.match(/^[a-zA-Z]{1,}:\\/\\//);\n const urlAsStringNoProto = urlProtoMatch ? urlAsString.substr(urlProtoMatch[0].length) : urlAsString;\n const urlParts = urlAsStringNoProto.split('?');\n\n if ((urlParts[0] || '').match(/(\\/\\/|\\\\)/)) {\n console.error(`Invalid href passed to next/router: ${urlAsString}, repeated forward-slashes (//) or backslashes \\\\ are not valid in the href`);\n const normalizedUrl = (0, _utils).normalizeRepeatedSlashes(urlAsStringNoProto);\n urlAsString = (urlProtoMatch ? urlProtoMatch[0] : '') + normalizedUrl;\n } // Return because it cannot be routed by the Next.js router\n\n\n if (!isLocalURL(urlAsString)) {\n return resolveAs ? [urlAsString] : urlAsString;\n }\n\n try {\n base = new URL(urlAsString.startsWith('#') ? router.asPath : router.pathname, 'http://n');\n } catch (_) {\n // fallback to / for invalid asPath values e.g. //\n base = new URL('/', 'http://n');\n }\n\n try {\n const finalUrl = new URL(urlAsString, base);\n finalUrl.pathname = (0, _normalizeTrailingSlash).normalizePathTrailingSlash(finalUrl.pathname);\n let interpolatedAs = '';\n\n if ((0, _isDynamic).isDynamicRoute(finalUrl.pathname) && finalUrl.searchParams && resolveAs) {\n const query = (0, _querystring).searchParamsToUrlQuery(finalUrl.searchParams);\n const {\n result,\n params\n } = interpolateAs(finalUrl.pathname, finalUrl.pathname, query);\n\n if (result) {\n interpolatedAs = (0, _utils).formatWithValidation({\n pathname: result,\n hash: finalUrl.hash,\n query: omitParmsFromQuery(query, params)\n });\n }\n } // if the origin didn't change, it means we received a relative href\n\n\n const resolvedHref = finalUrl.origin === base.origin ? finalUrl.href.slice(finalUrl.origin.length) : finalUrl.href;\n return resolveAs ? [resolvedHref, interpolatedAs || resolvedHref] : resolvedHref;\n } catch (_1) {\n return resolveAs ? [urlAsString] : urlAsString;\n }\n}\n\nfunction stripOrigin(url) {\n const origin = (0, _utils).getLocationOrigin();\n return url.startsWith(origin) ? url.substring(origin.length) : url;\n}\n\nfunction prepareUrlAs(router, url, as) {\n // If url and as provided as an object representation,\n // we'll format them into the string version here.\n let [resolvedHref, resolvedAs] = resolveHref(router, url, true);\n const origin = (0, _utils).getLocationOrigin();\n const hrefHadOrigin = resolvedHref.startsWith(origin);\n const asHadOrigin = resolvedAs && resolvedAs.startsWith(origin);\n resolvedHref = stripOrigin(resolvedHref);\n resolvedAs = resolvedAs ? stripOrigin(resolvedAs) : resolvedAs;\n const preparedUrl = hrefHadOrigin ? resolvedHref : addBasePath(resolvedHref);\n const preparedAs = as ? stripOrigin(resolveHref(router, as)) : resolvedAs || resolvedHref;\n return {\n url: preparedUrl,\n as: asHadOrigin ? preparedAs : addBasePath(preparedAs)\n };\n}\n\nfunction resolveDynamicRoute(pathname, pages) {\n const cleanPathname = (0, _normalizeTrailingSlash).removePathTrailingSlash((0, _denormalizePagePath).denormalizePagePath(pathname));\n\n if (cleanPathname === '/404' || cleanPathname === '/_error') {\n return pathname;\n } // handle resolving href for dynamic routes\n\n\n if (!pages.includes(cleanPathname)) {\n // eslint-disable-next-line array-callback-return\n pages.some(page => {\n if ((0, _isDynamic).isDynamicRoute(page) && (0, _routeRegex).getRouteRegex(page).re.test(cleanPathname)) {\n pathname = page;\n return true;\n }\n });\n }\n\n return (0, _normalizeTrailingSlash).removePathTrailingSlash(pathname);\n}\n\nconst manualScrollRestoration = false && 0;\nconst SSG_DATA_NOT_FOUND = Symbol('SSG_DATA_NOT_FOUND');\n\nfunction fetchRetry(url, attempts, opts) {\n return fetch(url, {\n // Cookies are required to be present for Next.js' SSG \"Preview Mode\".\n // Cookies may also be required for `getServerSideProps`.\n //\n // > `fetch` won’t send cookies, unless you set the credentials init\n // > option.\n // https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch\n //\n // > For maximum browser compatibility when it comes to sending &\n // > receiving cookies, always supply the `credentials: 'same-origin'`\n // > option instead of relying on the default.\n // https://github.com/github/fetch#caveats\n credentials: 'same-origin'\n }).then(res => {\n if (!res.ok) {\n if (attempts > 1 && res.status >= 500) {\n return fetchRetry(url, attempts - 1, opts);\n }\n\n if (res.status === 404) {\n return res.json().then(data => {\n if (data.notFound) {\n return {\n notFound: SSG_DATA_NOT_FOUND\n };\n }\n\n throw new Error(`Failed to load static props`);\n });\n }\n\n throw new Error(`Failed to load static props`);\n }\n\n return opts.text ? res.text() : res.json();\n });\n}\n\nfunction fetchNextData(dataHref, isServerRender, text, inflightCache, persistCache) {\n const {\n href: cacheKey\n } = new URL(dataHref, window.location.href);\n\n if (inflightCache[cacheKey] !== undefined) {\n return inflightCache[cacheKey];\n }\n\n return inflightCache[cacheKey] = fetchRetry(dataHref, isServerRender ? 3 : 1, {\n text\n }).catch(err => {\n // We should only trigger a server-side transition if this was caused\n // on a client-side transition. Otherwise, we'd get into an infinite\n // loop.\n if (!isServerRender) {\n (0, _routeLoader).markAssetError(err);\n }\n\n throw err;\n }).then(data => {\n if (!persistCache || true) {\n delete inflightCache[cacheKey];\n }\n\n return data;\n }).catch(err => {\n delete inflightCache[cacheKey];\n throw err;\n });\n}\n\nclass Router {\n constructor(pathname, query, as, {\n initialProps,\n pageLoader,\n App,\n wrapApp,\n Component,\n err,\n subscription,\n isFallback,\n locale,\n locales,\n defaultLocale,\n domainLocales,\n isPreview\n }) {\n // Static Data Cache\n this.sdc = {}; // In-flight Server Data Requests, for deduping\n\n this.sdr = {}; // In-flight middleware preflight requests\n\n this.sde = {};\n this._idx = 0;\n\n this.onPopState = e => {\n const state = e.state;\n\n if (!state) {\n // We get state as undefined for two reasons.\n // 1. With older safari (< 8) and older chrome (< 34)\n // 2. When the URL changed with #\n //\n // In the both cases, we don't need to proceed and change the route.\n // (as it's already changed)\n // But we can simply replace the state with the new changes.\n // Actually, for (1) we don't need to nothing. But it's hard to detect that event.\n // So, doing the following for (1) does no harm.\n const {\n pathname,\n query\n } = this;\n this.changeState('replaceState', (0, _utils).formatWithValidation({\n pathname: addBasePath(pathname),\n query\n }), (0, _utils).getURL());\n return;\n }\n\n if (!state.__N) {\n return;\n }\n\n let forcedScroll;\n const {\n url,\n as,\n options,\n idx\n } = state;\n\n if (false) {}\n\n this._idx = idx;\n const {\n pathname\n } = (0, _parseRelativeUrl).parseRelativeUrl(url); // Make sure we don't re-render on initial load,\n // can be caused by navigating back from an external site\n\n if (this.isSsr && as === this.asPath && pathname === this.pathname) {\n return;\n } // If the downstream application returns falsy, return.\n // They will then be responsible for handling the event.\n\n\n if (this._bps && !this._bps(state)) {\n return;\n }\n\n this.change('replaceState', url, as, Object.assign({}, options, {\n shallow: options.shallow && this._shallow,\n locale: options.locale || this.defaultLocale\n }), forcedScroll);\n }; // represents the current component key\n\n\n this.route = (0, _normalizeTrailingSlash).removePathTrailingSlash(pathname); // set up the component cache (by route keys)\n\n this.components = {}; // We should not keep the cache, if there's an error\n // Otherwise, this cause issues when when going back and\n // come again to the errored page.\n\n if (pathname !== '/_error') {\n var ref;\n this.components[this.route] = {\n Component,\n initial: true,\n props: initialProps,\n err,\n __N_SSG: initialProps && initialProps.__N_SSG,\n __N_SSP: initialProps && initialProps.__N_SSP,\n __N_RSC: !!((ref = Component) === null || ref === void 0 ? void 0 : ref.__next_rsc__)\n };\n }\n\n this.components['/_app'] = {\n Component: App,\n styleSheets: []\n }; // Backwards compat for Router.router.events\n // TODO: Should be remove the following major version as it was never documented\n\n this.events = Router.events;\n this.pageLoader = pageLoader;\n this.pathname = pathname;\n this.query = query; // if auto prerendered and dynamic route wait to update asPath\n // until after mount to prevent hydration mismatch\n\n const autoExportDynamic = (0, _isDynamic).isDynamicRoute(pathname) && self.__NEXT_DATA__.autoExport;\n\n this.asPath = autoExportDynamic ? pathname : as;\n this.basePath = basePath;\n this.sub = subscription;\n this.clc = null;\n this._wrapApp = wrapApp; // make sure to ignore extra popState in safari on navigating\n // back from external site\n\n this.isSsr = true;\n this.isFallback = isFallback;\n this.isReady = !!(self.__NEXT_DATA__.gssp || self.__NEXT_DATA__.gip || self.__NEXT_DATA__.appGip && !self.__NEXT_DATA__.gsp || !autoExportDynamic && !self.location.search && !false);\n this.isPreview = !!isPreview;\n this.isLocaleDomain = false;\n\n if (false) {}\n\n if (false) {}\n }\n\n reload() {\n window.location.reload();\n }\n /**\n * Go back in history\n */\n\n\n back() {\n window.history.back();\n }\n /**\n * Performs a `pushState` with arguments\n * @param url of the route\n * @param as masks `url` for the browser\n * @param options object you can define `shallow` and other options\n */\n\n\n push(url, as, options = {}) {\n if (false) {}\n\n ({\n url,\n as\n } = prepareUrlAs(this, url, as));\n return this.change('pushState', url, as, options);\n }\n /**\n * Performs a `replaceState` with arguments\n * @param url of the route\n * @param as masks `url` for the browser\n * @param options object you can define `shallow` and other options\n */\n\n\n replace(url, as, options = {}) {\n ({\n url,\n as\n } = prepareUrlAs(this, url, as));\n return this.change('replaceState', url, as, options);\n }\n\n async change(method, url, as, options, forcedScroll) {\n if (!isLocalURL(url)) {\n window.location.href = url;\n return false;\n }\n\n const shouldResolveHref = options._h || options._shouldResolveHref || pathNoQueryHash(url) === pathNoQueryHash(as); // for static pages with query params in the URL we delay\n // marking the router ready until after the query is updated\n\n if (options._h) {\n this.isReady = true;\n }\n\n const prevLocale = this.locale;\n\n if (false) { var ref; }\n\n if (!options._h) {\n this.isSsr = false;\n } // marking route changes as a navigation start entry\n\n\n if (_utils.ST) {\n performance.mark('routeChange');\n }\n\n const {\n shallow = false\n } = options;\n const routeProps = {\n shallow\n };\n\n if (this._inFlightRoute) {\n this.abortComponentLoad(this._inFlightRoute, routeProps);\n }\n\n as = addBasePath(addLocale(hasBasePath(as) ? delBasePath(as) : as, options.locale, this.defaultLocale));\n const cleanedAs = delLocale(hasBasePath(as) ? delBasePath(as) : as, this.locale);\n this._inFlightRoute = as;\n let localeChange = prevLocale !== this.locale; // If the url change is only related to a hash change\n // We should not proceed. We should only change the state.\n // WARNING: `_h` is an internal option for handing Next.js client-side\n // hydration. Your app should _never_ use this property. It may change at\n // any time without notice.\n\n if (!options._h && this.onlyAHashChange(cleanedAs) && !localeChange) {\n this.asPath = cleanedAs;\n Router.events.emit('hashChangeStart', as, routeProps); // TODO: do we need the resolved href when only a hash change?\n\n this.changeState(method, url, as, options);\n this.scrollToHash(cleanedAs);\n this.notify(this.components[this.route], null);\n Router.events.emit('hashChangeComplete', as, routeProps);\n return true;\n }\n\n let parsed = (0, _parseRelativeUrl).parseRelativeUrl(url);\n let {\n pathname,\n query\n } = parsed; // The build manifest needs to be loaded before auto-static dynamic pages\n // get their query parameters to allow ensuring they can be parsed properly\n // when rewritten to\n\n let pages, rewrites;\n\n try {\n [pages, {\n __rewrites: rewrites\n }] = await Promise.all([this.pageLoader.getPageList(), (0, _routeLoader).getClientBuildManifest(), this.pageLoader.getMiddlewareList()]);\n } catch (err) {\n // If we fail to resolve the page list or client-build manifest, we must\n // do a server-side transition:\n window.location.href = as;\n return false;\n } // If asked to change the current URL we should reload the current page\n // (not location.reload() but reload getInitialProps and other Next.js stuffs)\n // We also need to set the method = replaceState always\n // as this should not go into the history (That's how browsers work)\n // We should compare the new asPath to the current asPath, not the url\n\n\n if (!this.urlIsNew(cleanedAs) && !localeChange) {\n method = 'replaceState';\n } // we need to resolve the as value using rewrites for dynamic SSG\n // pages to allow building the data URL correctly\n\n\n let resolvedAs = as; // url and as should always be prefixed with basePath by this\n // point by either next/link or router.push/replace so strip the\n // basePath from the pathname to match the pages dir 1-to-1\n\n pathname = pathname ? (0, _normalizeTrailingSlash).removePathTrailingSlash(delBasePath(pathname)) : pathname;\n\n if (shouldResolveHref && pathname !== '/_error') {\n options._shouldResolveHref = true;\n\n if (false) {} else {\n parsed.pathname = resolveDynamicRoute(pathname, pages);\n\n if (parsed.pathname !== pathname) {\n pathname = parsed.pathname;\n parsed.pathname = addBasePath(pathname);\n url = (0, _utils).formatWithValidation(parsed);\n }\n }\n }\n\n if (!isLocalURL(as)) {\n if (true) {\n throw new Error(`Invalid href: \"${url}\" and as: \"${as}\", received relative href and external as` + `\\nSee more info: https://nextjs.org/docs/messages/invalid-relative-url-external-as`);\n }\n\n window.location.href = as;\n return false;\n }\n\n resolvedAs = delLocale(delBasePath(resolvedAs), this.locale);\n const effect = await this._preflightRequest({\n as,\n cache: false,\n pages,\n pathname,\n query\n });\n\n if (effect.type === 'rewrite') {\n query = _objectSpread(_objectSpread({}, query), effect.parsedAs.query);\n resolvedAs = effect.asPath;\n pathname = effect.resolvedHref;\n parsed.pathname = effect.resolvedHref;\n url = (0, _utils).formatWithValidation(parsed);\n } else if (effect.type === 'redirect' && effect.newAs) {\n return this.change(method, effect.newUrl, effect.newAs, options);\n } else if (effect.type === 'redirect' && effect.destination) {\n window.location.href = effect.destination;\n return new Promise(() => {});\n } else if (effect.type === 'refresh') {\n window.location.href = as;\n return new Promise(() => {});\n }\n\n const route = (0, _normalizeTrailingSlash).removePathTrailingSlash(pathname);\n\n if ((0, _isDynamic).isDynamicRoute(route)) {\n const parsedAs = (0, _parseRelativeUrl).parseRelativeUrl(resolvedAs);\n const asPathname = parsedAs.pathname;\n const routeRegex = (0, _routeRegex).getRouteRegex(route);\n const routeMatch = (0, _routeMatcher).getRouteMatcher(routeRegex)(asPathname);\n const shouldInterpolate = route === asPathname;\n const interpolatedAs = shouldInterpolate ? interpolateAs(route, asPathname, query) : {};\n\n if (!routeMatch || shouldInterpolate && !interpolatedAs.result) {\n const missingParams = Object.keys(routeRegex.groups).filter(param => !query[param]);\n\n if (missingParams.length > 0) {\n if (true) {\n console.warn(`${shouldInterpolate ? `Interpolating href` : `Mismatching \\`as\\` and \\`href\\``} failed to manually provide ` + `the params: ${missingParams.join(', ')} in the \\`href\\`'s \\`query\\``);\n }\n\n throw new Error((shouldInterpolate ? `The provided \\`href\\` (${url}) value is missing query values (${missingParams.join(', ')}) to be interpolated properly. ` : `The provided \\`as\\` value (${asPathname}) is incompatible with the \\`href\\` value (${route}). `) + `Read more: https://nextjs.org/docs/messages/${shouldInterpolate ? 'href-interpolation-failed' : 'incompatible-href-as'}`);\n }\n } else if (shouldInterpolate) {\n as = (0, _utils).formatWithValidation(Object.assign({}, parsedAs, {\n pathname: interpolatedAs.result,\n query: omitParmsFromQuery(query, interpolatedAs.params)\n }));\n } else {\n // Merge params into `query`, overwriting any specified in search\n Object.assign(query, routeMatch);\n }\n }\n\n Router.events.emit('routeChangeStart', as, routeProps);\n\n try {\n var ref, ref1;\n let routeInfo = await this.getRouteInfo(route, pathname, query, as, resolvedAs, routeProps);\n let {\n error,\n props,\n __N_SSG,\n __N_SSP\n } = routeInfo; // handle redirect on client-transition\n\n if ((__N_SSG || __N_SSP) && props) {\n if (props.pageProps && props.pageProps.__N_REDIRECT) {\n const destination = props.pageProps.__N_REDIRECT; // check if destination is internal (resolves to a page) and attempt\n // client-navigation if it is falling back to hard navigation if\n // it's not\n\n if (destination.startsWith('/') && props.pageProps.__N_REDIRECT_BASE_PATH !== false) {\n const parsedHref = (0, _parseRelativeUrl).parseRelativeUrl(destination);\n parsedHref.pathname = resolveDynamicRoute(parsedHref.pathname, pages);\n const {\n url: newUrl,\n as: newAs\n } = prepareUrlAs(this, destination, destination);\n return this.change(method, newUrl, newAs, options);\n }\n\n window.location.href = destination;\n return new Promise(() => {});\n }\n\n this.isPreview = !!props.__N_PREVIEW; // handle SSG data 404\n\n if (props.notFound === SSG_DATA_NOT_FOUND) {\n let notFoundRoute;\n\n try {\n await this.fetchComponent('/404');\n notFoundRoute = '/404';\n } catch (_) {\n notFoundRoute = '/_error';\n }\n\n routeInfo = await this.getRouteInfo(notFoundRoute, notFoundRoute, query, as, resolvedAs, {\n shallow: false\n });\n }\n }\n\n Router.events.emit('beforeHistoryChange', as, routeProps);\n this.changeState(method, url, as, options);\n\n if (options._h && pathname === '/_error' && ((ref = self.__NEXT_DATA__.props) === null || ref === void 0 ? void 0 : (ref1 = ref.pageProps) === null || ref1 === void 0 ? void 0 : ref1.statusCode) === 500 && (props === null || props === void 0 ? void 0 : props.pageProps)) {\n // ensure statusCode is still correct for static 500 page\n // when updating query information\n props.pageProps.statusCode = 500;\n } // shallow routing is only allowed for same page URL changes.\n\n\n const isValidShallowRoute = options.shallow && this.route === route;\n\n var _scroll;\n\n const shouldScroll = (_scroll = options.scroll) !== null && _scroll !== void 0 ? _scroll : !isValidShallowRoute;\n const resetScroll = shouldScroll ? {\n x: 0,\n y: 0\n } : null;\n await this.set(route, pathname, query, cleanedAs, routeInfo, forcedScroll !== null && forcedScroll !== void 0 ? forcedScroll : resetScroll).catch(e => {\n if (e.cancelled) error = error || e;else throw e;\n });\n\n if (error) {\n Router.events.emit('routeChangeError', error, cleanedAs, routeProps);\n throw error;\n }\n\n if (false) {}\n\n Router.events.emit('routeChangeComplete', as, routeProps);\n return true;\n } catch (err1) {\n if ((0, _isError).default(err1) && err1.cancelled) {\n return false;\n }\n\n throw err1;\n }\n }\n\n changeState(method, url, as, options = {}) {\n if (true) {\n if (typeof window.history === 'undefined') {\n console.error(`Warning: window.history is not available.`);\n return;\n }\n\n if (typeof window.history[method] === 'undefined') {\n console.error(`Warning: window.history.${method} is not available`);\n return;\n }\n }\n\n if (method !== 'pushState' || (0, _utils).getURL() !== as) {\n this._shallow = options.shallow;\n window.history[method]({\n url,\n as,\n options,\n __N: true,\n idx: this._idx = method !== 'pushState' ? this._idx : this._idx + 1\n }, // Most browsers currently ignores this parameter, although they may use it in the future.\n // Passing the empty string here should be safe against future changes to the method.\n // https://developer.mozilla.org/en-US/docs/Web/API/History/replaceState\n '', as);\n }\n }\n\n async handleRouteInfoError(err, pathname, query, as, routeProps, loadErrorFail) {\n if (err.cancelled) {\n // bubble up cancellation errors\n throw err;\n }\n\n if ((0, _routeLoader).isAssetError(err) || loadErrorFail) {\n Router.events.emit('routeChangeError', err, as, routeProps); // If we can't load the page it could be one of following reasons\n // 1. Page doesn't exists\n // 2. Page does exist in a different zone\n // 3. Internal error while loading the page\n // So, doing a hard reload is the proper way to deal with this.\n\n window.location.href = as; // Changing the URL doesn't block executing the current code path.\n // So let's throw a cancellation error stop the routing logic.\n\n throw buildCancellationError();\n }\n\n try {\n let Component;\n let styleSheets;\n let props;\n\n if (typeof Component === 'undefined' || typeof styleSheets === 'undefined') {\n ({\n page: Component,\n styleSheets\n } = await this.fetchComponent('/_error'));\n }\n\n const routeInfo = {\n props,\n Component,\n styleSheets,\n err,\n error: err\n };\n\n if (!routeInfo.props) {\n try {\n routeInfo.props = await this.getInitialProps(Component, {\n err,\n pathname,\n query\n });\n } catch (gipErr) {\n console.error('Error in error page `getInitialProps`: ', gipErr);\n routeInfo.props = {};\n }\n }\n\n return routeInfo;\n } catch (routeInfoErr) {\n return this.handleRouteInfoError((0, _isError).default(routeInfoErr) ? routeInfoErr : new Error(routeInfoErr + ''), pathname, query, as, routeProps, true);\n }\n }\n\n async getRouteInfo(route, pathname, query, as, resolvedAs, routeProps) {\n try {\n const existingRouteInfo = this.components[route];\n\n if (routeProps.shallow && existingRouteInfo && this.route === route) {\n return existingRouteInfo;\n }\n\n let cachedRouteInfo = undefined; // can only use non-initial route info\n // cannot reuse route info in development since it can change after HMR\n\n if (false) {}\n\n const routeInfo = cachedRouteInfo || (await this.fetchComponent(route).then(res => ({\n Component: res.page,\n styleSheets: res.styleSheets,\n __N_SSG: res.mod.__N_SSG,\n __N_SSP: res.mod.__N_SSP,\n __N_RSC: !!res.page.__next_rsc__\n })));\n const {\n Component,\n __N_SSG,\n __N_SSP,\n __N_RSC\n } = routeInfo;\n\n if (true) {\n const {\n isValidElementType\n } = __webpack_require__(/*! react-is */ \"react-is\");\n\n if (!isValidElementType(Component)) {\n throw new Error(`The default export is not a React Component in page: \"${pathname}\"`);\n }\n }\n\n let dataHref;\n\n if (__N_SSG || __N_SSP || __N_RSC) {\n dataHref = this.pageLoader.getDataHref({\n href: (0, _utils).formatWithValidation({\n pathname,\n query\n }),\n asPath: resolvedAs,\n ssg: __N_SSG,\n rsc: __N_RSC,\n locale: this.locale\n });\n }\n\n const props = await this._getData(() => __N_SSG || __N_SSP ? fetchNextData(dataHref, this.isSsr, false, __N_SSG ? this.sdc : this.sdr, !!__N_SSG && !this.isPreview) : this.getInitialProps(Component, // we provide AppTree later so this needs to be `any`\n {\n pathname,\n query,\n asPath: as,\n locale: this.locale,\n locales: this.locales,\n defaultLocale: this.defaultLocale\n }));\n\n if (__N_RSC) {\n const {\n fresh,\n data\n } = await this._getData(() => this._getFlightData(dataHref));\n props.pageProps = Object.assign(props.pageProps, {\n __flight_serialized__: data,\n __flight_fresh__: fresh\n });\n }\n\n routeInfo.props = props;\n this.components[route] = routeInfo;\n return routeInfo;\n } catch (err) {\n return this.handleRouteInfoError((0, _isError).default(err) ? err : new Error(err + ''), pathname, query, as, routeProps);\n }\n }\n\n set(route, pathname, query, as, data, resetScroll) {\n this.isFallback = false;\n this.route = route;\n this.pathname = pathname;\n this.query = query;\n this.asPath = as;\n return this.notify(data, resetScroll);\n }\n /**\n * Callback to execute before replacing router state\n * @param cb callback to be executed\n */\n\n\n beforePopState(cb) {\n this._bps = cb;\n }\n\n onlyAHashChange(as) {\n if (!this.asPath) return false;\n const [oldUrlNoHash, oldHash] = this.asPath.split('#');\n const [newUrlNoHash, newHash] = as.split('#'); // Makes sure we scroll to the provided hash if the url/hash are the same\n\n if (newHash && oldUrlNoHash === newUrlNoHash && oldHash === newHash) {\n return true;\n } // If the urls are change, there's more than a hash change\n\n\n if (oldUrlNoHash !== newUrlNoHash) {\n return false;\n } // If the hash has changed, then it's a hash only change.\n // This check is necessary to handle both the enter and\n // leave hash === '' cases. The identity case falls through\n // and is treated as a next reload.\n\n\n return oldHash !== newHash;\n }\n\n scrollToHash(as) {\n const [, hash] = as.split('#'); // Scroll to top if the hash is just `#` with no value or `#top`\n // To mirror browsers\n\n if (hash === '' || hash === 'top') {\n window.scrollTo(0, 0);\n return;\n } // First we check if the element by id is found\n\n\n const idEl = document.getElementById(hash);\n\n if (idEl) {\n idEl.scrollIntoView();\n return;\n } // If there's no element with the id, we check the `name` property\n // To mirror browsers\n\n\n const nameEl = document.getElementsByName(hash)[0];\n\n if (nameEl) {\n nameEl.scrollIntoView();\n }\n }\n\n urlIsNew(asPath) {\n return this.asPath !== asPath;\n }\n /**\n * Prefetch page code, you may wait for the data during page rendering.\n * This feature only works in production!\n * @param url the href of prefetched page\n * @param asPath the as path of the prefetched page\n */\n\n\n async prefetch(url, asPath = url, options = {}) {\n let parsed = (0, _parseRelativeUrl).parseRelativeUrl(url);\n let {\n pathname,\n query\n } = parsed;\n\n if (false) {}\n\n const pages = await this.pageLoader.getPageList();\n let resolvedAs = asPath;\n\n if (false) {} else {\n parsed.pathname = resolveDynamicRoute(parsed.pathname, pages);\n\n if (parsed.pathname !== pathname) {\n pathname = parsed.pathname;\n parsed.pathname = pathname;\n url = (0, _utils).formatWithValidation(parsed);\n }\n } // Prefetch is not supported in development mode because it would trigger on-demand-entries\n\n\n if (true) {\n return;\n }\n\n const effects = await this._preflightRequest({\n as: addBasePath(asPath),\n cache: true,\n pages,\n pathname,\n query\n });\n\n if (effects.type === 'rewrite') {\n parsed.pathname = effects.resolvedHref;\n pathname = effects.resolvedHref;\n query = _objectSpread(_objectSpread({}, query), effects.parsedAs.query);\n resolvedAs = effects.asPath;\n url = (0, _utils).formatWithValidation(parsed);\n }\n\n const route = (0, _normalizeTrailingSlash).removePathTrailingSlash(pathname);\n await Promise.all([this.pageLoader._isSsg(route).then(isSsg => {\n return isSsg ? fetchNextData(this.pageLoader.getDataHref({\n href: url,\n asPath: resolvedAs,\n ssg: true,\n locale: typeof options.locale !== 'undefined' ? options.locale : this.locale\n }), false, false, this.sdc, true) : false;\n }), this.pageLoader[options.priority ? 'loadPage' : 'prefetch'](route)]);\n }\n\n async fetchComponent(route) {\n let cancelled = false;\n\n const cancel = this.clc = () => {\n cancelled = true;\n };\n\n const handleCancelled = () => {\n if (cancelled) {\n const error = new Error(`Abort fetching component for route: \"${route}\"`);\n error.cancelled = true;\n throw error;\n }\n\n if (cancel === this.clc) {\n this.clc = null;\n }\n };\n\n try {\n const componentResult = await this.pageLoader.loadPage(route);\n handleCancelled();\n return componentResult;\n } catch (err) {\n handleCancelled();\n throw err;\n }\n }\n\n _getData(fn) {\n let cancelled = false;\n\n const cancel = () => {\n cancelled = true;\n };\n\n this.clc = cancel;\n return fn().then(data => {\n if (cancel === this.clc) {\n this.clc = null;\n }\n\n if (cancelled) {\n const err = new Error('Loading initial props cancelled');\n err.cancelled = true;\n throw err;\n }\n\n return data;\n });\n }\n\n _getFlightData(dataHref) {\n const {\n href: cacheKey\n } = new URL(dataHref, window.location.href);\n\n if (!this.isPreview && this.sdc[cacheKey]) {\n return Promise.resolve({\n fresh: false,\n data: this.sdc[cacheKey]\n });\n }\n\n return fetchNextData(dataHref, true, true, this.sdc, false).then(serialized => {\n this.sdc[cacheKey] = serialized;\n return {\n fresh: true,\n data: serialized\n };\n });\n }\n\n async _preflightRequest(options) {\n var ref;\n const cleanedAs = delLocale(hasBasePath(options.as) ? delBasePath(options.as) : options.as, this.locale);\n const fns = await this.pageLoader.getMiddlewareList();\n const requiresPreflight = fns.some(([middleware, isSSR]) => {\n return (0, _routeMatcher).getRouteMatcher((0, _getMiddlewareRegex).getMiddlewareRegex(middleware, !isSSR))(cleanedAs);\n });\n\n if (!requiresPreflight) {\n return {\n type: 'next'\n };\n }\n\n const preflight = await this._getPreflightData({\n preflightHref: options.as,\n shouldCache: options.cache\n });\n\n if ((ref = preflight.rewrite) === null || ref === void 0 ? void 0 : ref.startsWith('/')) {\n const parsed = (0, _parseRelativeUrl).parseRelativeUrl((0, _normalizeLocalePath).normalizeLocalePath(hasBasePath(preflight.rewrite) ? delBasePath(preflight.rewrite) : preflight.rewrite, this.locales).pathname);\n const fsPathname = (0, _normalizeTrailingSlash).removePathTrailingSlash(parsed.pathname);\n let matchedPage;\n let resolvedHref;\n\n if (options.pages.includes(fsPathname)) {\n matchedPage = true;\n resolvedHref = fsPathname;\n } else {\n resolvedHref = resolveDynamicRoute(fsPathname, options.pages);\n\n if (resolvedHref !== parsed.pathname && options.pages.includes(resolvedHref)) {\n matchedPage = true;\n }\n }\n\n return {\n type: 'rewrite',\n asPath: parsed.pathname,\n parsedAs: parsed,\n matchedPage,\n resolvedHref\n };\n }\n\n if (preflight.redirect) {\n if (preflight.redirect.startsWith('/')) {\n const cleanRedirect = (0, _normalizeTrailingSlash).removePathTrailingSlash((0, _normalizeLocalePath).normalizeLocalePath(hasBasePath(preflight.redirect) ? delBasePath(preflight.redirect) : preflight.redirect, this.locales).pathname);\n const {\n url: newUrl,\n as: newAs\n } = prepareUrlAs(this, cleanRedirect, cleanRedirect);\n return {\n type: 'redirect',\n newUrl,\n newAs\n };\n }\n\n return {\n type: 'redirect',\n destination: preflight.redirect\n };\n } // For SSR requests, they will be handled like normal pages.\n\n\n if (preflight.refresh && !preflight.ssr) {\n return {\n type: 'refresh'\n };\n }\n\n return {\n type: 'next'\n };\n }\n\n _getPreflightData(params) {\n const {\n preflightHref,\n shouldCache = false\n } = params;\n const {\n href: cacheKey\n } = new URL(preflightHref, window.location.href);\n\n if (false) {}\n\n return fetch(preflightHref, {\n method: 'HEAD',\n credentials: 'same-origin',\n headers: {\n 'x-middleware-preflight': '1'\n }\n }).then(res => {\n if (!res.ok) {\n throw new Error(`Failed to preflight request`);\n }\n\n return {\n redirect: res.headers.get('Location'),\n refresh: res.headers.has('x-middleware-refresh'),\n rewrite: res.headers.get('x-middleware-rewrite'),\n ssr: !!res.headers.get('x-middleware-ssr')\n };\n }).then(data => {\n if (shouldCache) {\n this.sde[cacheKey] = data;\n }\n\n return data;\n }).catch(err => {\n delete this.sde[cacheKey];\n throw err;\n });\n }\n\n getInitialProps(Component, ctx) {\n const {\n Component: App\n } = this.components['/_app'];\n\n const AppTree = this._wrapApp(App);\n\n ctx.AppTree = AppTree;\n return (0, _utils).loadGetInitialProps(App, {\n AppTree,\n Component,\n router: this,\n ctx\n });\n }\n\n abortComponentLoad(as, routeProps) {\n if (this.clc) {\n Router.events.emit('routeChangeError', buildCancellationError(), as, routeProps);\n this.clc();\n this.clc = null;\n }\n }\n\n notify(data, resetScroll) {\n return this.sub(data, this.components['/_app'].Component, resetScroll);\n }\n\n}\n\nRouter.events = (0, _mitt).default();\nexports[\"default\"] = Router;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3JvdXRlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7Ozs7Ozs7QUFDYkEsOENBQTZDO0FBQ3pDRyxFQUFBQSxLQUFLLEVBQUU7QUFEa0MsQ0FBN0M7QUFHQUQsdUJBQUEsR0FBMEJFLGVBQTFCO0FBQ0FGLGlCQUFBLEdBQW9CRyxTQUFwQjtBQUNBSCxpQkFBQSxHQUFvQkksU0FBcEI7QUFDQUosbUJBQUEsR0FBc0JLLFdBQXRCO0FBQ0FMLG1CQUFBLEdBQXNCTSxXQUF0QjtBQUNBTixtQkFBQSxHQUFzQk8sV0FBdEI7QUFDQVAsa0JBQUEsR0FBcUJRLFVBQXJCO0FBQ0FSLHFCQUFBLEdBQXdCUyxhQUF4QjtBQUNBVCxtQkFBQSxHQUFzQlUsV0FBdEI7QUFDQVYsa0JBQUEsR0FBa0IsS0FBSyxDQUF2Qjs7QUFDQSxJQUFJWSx1QkFBdUIsR0FBR0MsbUJBQU8sQ0FBQyw2R0FBRCxDQUFyQzs7QUFDQSxJQUFJQyxZQUFZLEdBQUdELG1CQUFPLENBQUMscUZBQUQsQ0FBMUI7O0FBQ0EsSUFBSUUsUUFBUSxHQUFHQyxzQkFBc0IsQ0FBQ0gsbUJBQU8sQ0FBQyx1RUFBRCxDQUFSLENBQXJDOztBQUNBLElBQUlJLG9CQUFvQixHQUFHSixtQkFBTyxDQUFDLG9GQUFELENBQWxDOztBQUNBLElBQUlLLG9CQUFvQixHQUFHTCxtQkFBTyxDQUFDLG9FQUFELENBQWxDOztBQUNBLElBQUlNLEtBQUssR0FBR0gsc0JBQXNCLENBQUNILG1CQUFPLENBQUMsd0JBQUQsQ0FBUixDQUFsQzs7QUFDQSxJQUFJTyxNQUFNLEdBQUdQLG1CQUFPLENBQUMscUNBQUQsQ0FBcEI7O0FBQ0EsSUFBSVEsVUFBVSxHQUFHUixtQkFBTyxDQUFDLDhDQUFELENBQXhCOztBQUNBLElBQUlTLGlCQUFpQixHQUFHVCxtQkFBTyxDQUFDLDhEQUFELENBQS9COztBQUNBLElBQUlVLFlBQVksR0FBR1YsbUJBQU8sQ0FBQyxnREFB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LEtBQUs3QixHQUFULEVBQWM7QUFDVnBELE1BQUFBLE1BQU0sQ0FBQytDLE1BQVAsQ0FBY3dDLElBQWQsQ0FBbUIsa0JBQW5CLEVBQXVDdE8sc0JBQXNCLEVBQTdELEVBQWlFOEYsRUFBakUsRUFBcUVrSSxVQUFyRTtBQUNBLFdBQUs3QixHQUFMO0FBQ0EsV0FBS0EsR0FBTCxHQUFXLElBQVg7QUFDSDtBQUNKOztBQUNEcUMsRUFBQUEsTUFBTSxDQUFDdEcsSUFBRCxFQUFPOEksV0FBUCxFQUFvQjtBQUN0QixXQUFPLEtBQUs5RSxHQUFMLENBQVNoRSxJQUFULEVBQWUsS0FBS21ELFVBQUwsQ0FBZ0IsT0FBaEIsRUFBeUJoQyxTQUF4QyxFQUFtRDJILFdBQW5ELENBQVA7QUFDSDs7QUFoNkJROztBQWs2QmJqSSxNQUFNLENBQUMrQyxNQUFQLEdBQWdCLENBQUMsR0FBRy9NLEtBQUosRUFBV1IsT0FBWCxFQUFoQjtBQUNBWCxrQkFBQSxHQUFrQm1MLE1BQWxCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmllLXJlYWN0Ly4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zaGFyZWQvbGliL3JvdXRlci9yb3V0ZXIuanM/ODY4NCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZ2V0RG9tYWluTG9jYWxlID0gZ2V0RG9tYWluTG9jYWxlO1xuZXhwb3J0cy5hZGRMb2NhbGUgPSBhZGRMb2NhbGU7XG5leHBvcnRzLmRlbExvY2FsZSA9IGRlbExvY2FsZTtcbmV4cG9ydHMuaGFzQmFzZVBhdGggPSBoYXNCYXNlUGF0aDtcbmV4cG9ydHMuYWRkQmFzZVBhdGggPSBhZGRCYXNlUGF0aDtcbmV4cG9ydHMuZGVsQmFzZVBhdGggPSBkZWxCYXNlUGF0aDtcbmV4cG9ydHMuaXNMb2NhbFVSTCA9IGlzTG9jYWxVUkw7XG5leHBvcnRzLmludGVycG9sYXRlQXMgPSBpbnRlcnBvbGF0ZUFzO1xuZXhwb3J0cy5yZXNvbHZlSHJlZiA9IHJlc29sdmVIcmVmO1xuZXhwb3J0cy5kZWZhdWx0ID0gdm9pZCAwO1xudmFyIF9ub3JtYWxpemVUcmFpbGluZ1NsYXNoID0gcmVxdWlyZShcIi4uLy4uLy4uL2NsaWVudC9ub3JtYWxpemUtdHJhaWxpbmctc2xhc2hcIik7XG52YXIgX3JvdXRlTG9hZGVyID0gcmVxdWlyZShcIi4uLy4uLy4uL2NsaWVudC9yb3V0ZS1sb2FkZXJcIik7XG52YXIgX2lzRXJyb3IgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi8uLi8uLi9saWIvaXMtZXJyb3JcIikpO1xudmFyIF9kZW5vcm1hbGl6ZVBhZ2VQYXRoID0gcmVxdWlyZShcIi4uLy4uLy4uL3NlcnZlci9kZW5vcm1hbGl6ZS1wYWdlLXBhdGhcIik7XG52YXIgX25vcm1hbGl6ZUxvY2FsZVBhdGggPSByZXF1aXJlKFwiLi4vaTE4bi9ub3JtYWxpemUtbG9jYWxlLXBhdGhcIik7XG52YXIgX21pdHQgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9taXR0XCIpKTtcbnZhciBfdXRpbHMgPSByZXF1aXJlKFwiLi4vdXRpbHNcIik7XG52YXIgX2lzRHluYW1pYyA9IHJlcXVpcmUoXCIuL3V0aWxzL2lzLWR5bmFtaWNcIik7XG52YXIgX3BhcnNlUmVsYXRpdmVVcmwgPSByZXF1aXJlKFwiLi91dGlscy9wYXJzZS1yZWxhdGl2ZS11cmxcIik7XG52YXIgX3F1ZXJ5c3RyaW5nID0gcmVxdWlyZShcIi4vdXRpbHMvcXVlcnlzdHJpbmdcIik7XG52YXIgX3Jlc29sdmVSZXdyaXRlcyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vdXRpbHMvcmVzb2x2ZS1yZXdyaXRlc1wiKSk7XG52YXIgX3JvdXRlTWF0Y2hlciA9IHJlcXVpcmUoXCIuL3V0aWxzL3JvdXRlLW1hdGNoZXJcIik7XG52YXIgX3JvdXRlUmVnZXggPSByZXF1aXJlKFwiLi91dGlscy9yb3V0ZS1yZWdleFwiKTtcbnZhciBfZ2V0TWlkZGxld2FyZVJlZ2V4ID0gcmVxdWlyZShcIi4vdXRpbHMvZ2V0LW1pZGRsZXdhcmUtcmVnZXhcIik7XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5sZXQgZGV0ZWN0RG9tYWluTG9jYWxlO1xuaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9JMThOX1NVUFBPUlQpIHtcbiAgICBkZXRlY3REb21haW5Mb2NhbGUgPSByZXF1aXJlKCcuLi9pMThuL2RldGVjdC1kb21haW4tbG9jYWxlJykuZGV0ZWN0RG9tYWluTG9jYWxlO1xufVxuY29uc3QgYmFzZVBhdGggPSBwcm9jZXNzLmVudi5fX05FWFRfUk9VVEVSX0JBU0VQQVRIIHx8ICcnO1xuZnVuY3Rpb24gYnVpbGRDYW5jZWxsYXRpb25FcnJvcigpIHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgRXJyb3IoJ1JvdXRlIENhbmNlbGxlZCcpLCB7XG4gICAgICAgIGNhbmNlbGxlZDogdHJ1ZVxuICAgIH0pO1xufVxuZnVuY3Rpb24gYWRkUGF0aFByZWZpeChwYXRoLCBwcmVmaXgpIHtcbiAgICBpZiAoIXBhdGguc3RhcnRzV2l0aCgnLycpIHx8ICFwcmVmaXgpIHtcbiAgICAgICAgcmV0dXJuIHBhdGg7XG4gICAgfVxuICAgIGNvbnN0IHBhdGhuYW1lID0gcGF0aE5vUXVlcnlIYXNoKHBhdGgpO1xuICAgIHJldHVybiAoMCwgX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2gpLm5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoKGAke3ByZWZpeH0ke3BhdGhuYW1lfWApICsgcGF0aC5zdWJzdHIocGF0aG5hbWUubGVuZ3RoKTtcbn1cbmZ1bmN0aW9uIGdldERvbWFpbkxvY2FsZShwYXRoLCBsb2NhbGUsIGxvY2FsZXMsIGRvbWFpbkxvY2FsZXMpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0kxOE5fU1VQUE9SVCkge1xuICAgICAgICBsb2NhbGUgPSBsb2NhbGUgfHwgKDAsIF9ub3JtYWxpemVMb2NhbGVQYXRoKS5ub3JtYWxpemVMb2NhbGVQYXRoKHBhdGgsIGxvY2FsZXMpLmRldGVjdGVkTG9jYWxlO1xuICAgICAgICBjb25zdCBkZXRlY3RlZERvbWFpbiA9IGRldGVjdERvbWFpbkxvY2FsZShkb21haW5Mb2NhbGVzLCB1bmRlZmluZWQsIGxvY2FsZSk7XG4gICAgICAgIGlmIChkZXRlY3RlZERvbWFpbikge1xuICAgICAgICAgICAgcmV0dXJuIGBodHRwJHtkZXRlY3RlZERvbWFpbi5odHRwID8gJycgOiAncyd9Oi8vJHtkZXRlY3RlZERvbWFpbi5kb21haW59JHtiYXNlUGF0aCB8fCAnJ30ke2xvY2FsZSA9PT0gZGV0ZWN0ZWREb21haW4uZGVmYXVsdExvY2FsZSA/ICcnIDogYC8ke2xvY2FsZX1gfSR7cGF0aH1gO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuZnVuY3Rpb24gYWRkTG9jYWxlKHBhdGgsIGxvY2FsZSwgZGVmYXVsdExvY2FsZSkge1xuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgICAgIGNvbnN0IHBhdGhuYW1lID0gcGF0aE5vUXVlcnlIYXNoKHBhdGgpO1xuICAgICAgICBjb25zdCBwYXRoTG93ZXIgPSBwYXRobmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBjb25zdCBsb2NhbGVMb3dlciA9IGxvY2FsZSAmJiBsb2NhbGUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgcmV0dXJuIGxvY2FsZSAmJiBsb2NhbGUgIT09IGRlZmF1bHRMb2NhbGUgJiYgIXBhdGhMb3dlci5zdGFydHNXaXRoKCcvJyArIGxvY2FsZUxvd2VyICsgJy8nKSAmJiBwYXRoTG93ZXIgIT09ICcvJyArIGxvY2FsZUxvd2VyID8gYWRkUGF0aFByZWZpeChwYXRoLCAnLycgKyBsb2NhbGUpIDogcGF0aDtcbiAgICB9XG4gICAgcmV0dXJuIHBhdGg7XG59XG5mdW5jdGlvbiBkZWxMb2NhbGUocGF0aCwgbG9jYWxlKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9JMThOX1NVUFBPUlQpIHtcbiAgICAgICAgY29uc3QgcGF0aG5hbWUgPSBwYXRoTm9RdWVyeUhhc2gocGF0aCk7XG4gICAgICAgIGNvbnN0IHBhdGhMb3dlciA9IHBhdGhuYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGNvbnN0IGxvY2FsZUxvd2VyID0gbG9jYWxlICYmIGxvY2FsZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICByZXR1cm4gbG9jYWxlICYmIChwYXRoTG93ZXIuc3RhcnRzV2l0aCgnLycgKyBsb2NhbGVMb3dlciArICcvJykgfHwgcGF0aExvd2VyID09PSAnLycgKyBsb2NhbGVMb3dlcikgPyAocGF0aG5hbWUubGVuZ3RoID09PSBsb2NhbGUubGVuZ3RoICsgMSA/ICcvJyA6ICcnKSArIHBhdGguc3Vic3RyKGxvY2FsZS5sZW5ndGggKyAxKSA6IHBhdGg7XG4gICAgfVxuICAgIHJldHVybiBwYXRoO1xufVxuZnVuY3Rpb24gcGF0aE5vUXVlcnlIYXNoKHBhdGgpIHtcbiAgICBjb25zdCBxdWVyeUluZGV4ID0gcGF0aC5pbmRleE9mKCc/Jyk7XG4gICAgY29uc3QgaGFzaEluZGV4ID0gcGF0aC5pbmRleE9mKCcjJyk7XG4gICAgaWYgKHF1ZXJ5SW5kZXggPiAtMSB8fCBoYXNoSW5kZXggPiAtMSkge1xuICAgICAgICBwYXRoID0gcGF0aC5zdWJzdHJpbmcoMCwgcXVlcnlJbmRleCA+IC0xID8gcXVlcnlJbmRleCA6IGhhc2hJbmRleCk7XG4gICAgfVxuICAgIHJldHVybiBwYXRoO1xufVxuZnVuY3Rpb24gaGFzQmFzZVBhdGgocGF0aCkge1xuICAgIHBhdGggPSBwYXRoTm9RdWVyeUhhc2gocGF0aCk7XG4gICAgcmV0dXJuIHBhdGggPT09IGJhc2VQYXRoIHx8IHBhdGguc3RhcnRzV2l0aChiYXNlUGF0aCArICcvJyk7XG59XG5mdW5jdGlvbiBhZGRCYXNlUGF0aChwYXRoKSB7XG4gICAgLy8gd2Ugb25seSBhZGQgdGhlIGJhc2VwYXRoIG9uIHJlbGF0aXZlIHVybHNcbiAgICByZXR1cm4gYWRkUGF0aFByZWZpeChwYXRoLCBiYXNlUGF0aCk7XG59XG5mdW5jdGlvbiBkZWxCYXNlUGF0aChwYXRoKSB7XG4gICAgcGF0aCA9IHBhdGguc2xpY2UoYmFzZVBhdGgubGVuZ3RoKTtcbiAgICBpZiAoIXBhdGguc3RhcnRzV2l0aCgnLycpKSBwYXRoID0gYC8ke3BhdGh9YDtcbiAgICByZXR1cm4gcGF0aDtcbn1cbmZ1bmN0aW9uIGlzTG9jYWxVUkwodXJsKSB7XG4gICAgLy8gcHJldmVudCBhIGh5ZHJhdGlvbiBtaXNtYXRjaCBvbiBocmVmIGZvciB1cmwgd2l0aCBhbmNob3IgcmVmc1xuICAgIGlmICh1cmwuc3RhcnRzV2l0aCgnLycpIHx8IHVybC5zdGFydHNXaXRoKCcjJykgfHwgdXJsLnN0YXJ0c1dpdGgoJz8nKSkgcmV0dXJuIHRydWU7XG4gICAgdHJ5IHtcbiAgICAgICAgLy8gYWJzb2x1dGUgdXJscyBjYW4gYmUgbG9jYWwgaWYgdGhleSBhcmUgb24gdGhlIHNhbWUgb3JpZ2luXG4gICAgICAgIGNvbnN0IGxvY2F0aW9uT3JpZ2luID0gKDAsIF91dGlscykuZ2V0TG9jYXRpb25PcmlnaW4oKTtcbiAgICAgICAgY29uc3QgcmVzb2x2ZWQgPSBuZXcgVVJMKHVybCwgbG9jYXRpb25PcmlnaW4pO1xuICAgICAgICByZXR1cm4gcmVzb2x2ZWQub3JpZ2luID09PSBsb2NhdGlvbk9yaWdpbiAmJiBoYXNCYXNlUGF0aChyZXNvbHZlZC5wYXRobmFtZSk7XG4gICAgfSBjYXRjaCAoXykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuZnVuY3Rpb24gaW50ZXJwb2xhdGVBcyhyb3V0ZSwgYXNQYXRobmFtZSwgcXVlcnkpIHtcbiAgICBsZXQgaW50ZXJwb2xhdGVkUm91dGUgPSAnJztcbiAgICBjb25zdCBkeW5hbWljUmVnZXggPSAoMCwgX3JvdXRlUmVnZXgpLmdldFJvdXRlUmVnZXgocm91dGUpO1xuICAgIGNvbnN0IGR5bmFtaWNHcm91cHMgPSBkeW5hbWljUmVnZXguZ3JvdXBzO1xuICAgIGNvbnN0IGR5bmFtaWNNYXRjaGVzID0gLy8gVHJ5IHRvIG1hdGNoIHRoZSBkeW5hbWljIHJvdXRlIGFnYWluc3QgdGhlIGFzUGF0aFxuICAgIChhc1BhdGhuYW1lICE9PSByb3V0ZSA/ICgwLCBfcm91dGVNYXRjaGVyKS5nZXRSb3V0ZU1hdGNoZXIoZHluYW1pY1JlZ2V4KShhc1BhdGhuYW1lKSA6ICcnKSB8fCAvLyBGYWxsIGJhY2sgdG8gcmVhZGluZyB0aGUgdmFsdWVzIGZyb20gdGhlIGhyZWZcbiAgICAvLyBUT0RPOiBzaG91bGQgdGhpcyB0YWtlIHByaW9yaXR5OyBhbHNvIG5lZWQgdG8gY2hhbmdlIGluIHRoZSByb3V0ZXIuXG4gICAgcXVlcnk7XG4gICAgaW50ZXJwb2xhdGVkUm91dGUgPSByb3V0ZTtcbiAgICBjb25zdCBwYXJhbXMgPSBPYmplY3Qua2V5cyhkeW5hbWljR3JvdXBzKTtcbiAgICBpZiAoIXBhcmFtcy5ldmVyeSgocGFyYW0pPT57XG4gICAgICAgIGxldCB2YWx1ZSA9IGR5bmFtaWNNYXRjaGVzW3BhcmFtXSB8fCAnJztcbiAgICAgICAgY29uc3QgeyByZXBlYXQgLCBvcHRpb25hbCAgfSA9IGR5bmFtaWNHcm91cHNbcGFyYW1dO1xuICAgICAgICAvLyBzdXBwb3J0IHNpbmdsZS1sZXZlbCBjYXRjaC1hbGxcbiAgICAgICAgLy8gVE9ETzogbW9yZSByb2J1c3QgaGFuZGxpbmcgZm9yIHVzZXItZXJyb3IgKHBhc3NpbmcgYC9gKVxuICAgICAgICBsZXQgcmVwbGFjZWQgPSBgWyR7cmVwZWF0ID8gJy4uLicgOiAnJ30ke3BhcmFtfV1gO1xuICAgICAgICBpZiAob3B0aW9uYWwpIHtcbiAgICAgICAgICAgIHJlcGxhY2VkID0gYCR7IXZhbHVlID8gJy8nIDogJyd9WyR7cmVwbGFjZWR9XWA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlcGVhdCAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHZhbHVlID0gW1xuICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgXTtcbiAgICAgICAgcmV0dXJuIChvcHRpb25hbCB8fCBwYXJhbSBpbiBkeW5hbWljTWF0Y2hlcykgJiYgLy8gSW50ZXJwb2xhdGUgZ3JvdXAgaW50byBkYXRhIFVSTCBpZiBwcmVzZW50XG4gICAgICAgIChpbnRlcnBvbGF0ZWRSb3V0ZSA9IGludGVycG9sYXRlZFJvdXRlLnJlcGxhY2UocmVwbGFjZWQsIHJlcGVhdCA/IHZhbHVlLm1hcCgvLyB0aGVzZSB2YWx1ZXMgc2hvdWxkIGJlIGZ1bGx5IGVuY29kZWQgaW5zdGVhZCBvZiBqdXN0XG4gICAgICAgIC8vIHBhdGggZGVsaW1pdGVyIGVzY2FwZWQgc2luY2UgdGhleSBhcmUgYmVpbmcgaW5zZXJ0ZWRcbiAgICAgICAgLy8gaW50byB0aGUgVVJMIGFuZCB3ZSBleHBlY3QgVVJMIGVuY29kZWQgc2VnbWVudHNcbiAgICAgICAgLy8gd2hlbiBwYXJzaW5nIGR5bmFtaWMgcm91dGUgcGFyYW1zXG4gICAgICAgIChzZWdtZW50KT0+ZW5jb2RlVVJJQ29tcG9uZW50KHNlZ21lbnQpXG4gICAgICAgICkuam9pbignLycpIDogZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKSkgfHwgJy8nKTtcbiAgICB9KSkge1xuICAgICAgICBpbnRlcnBvbGF0ZWRSb3V0ZSA9ICcnIC8vIGRpZCBub3Qgc2F0aXNmeSBhbGwgcmVxdWlyZW1lbnRzXG4gICAgICAgIDtcbiAgICAvLyBuLmIuIFdlIGlnbm9yZSB0aGlzIGVycm9yIGJlY2F1c2Ugd2UgaGFuZGxlIHdhcm5pbmcgZm9yIHRoaXMgY2FzZSBpblxuICAgIC8vIGRldmVsb3BtZW50IGluIHRoZSBgPExpbms+YCBjb21wb25lbnQgZGlyZWN0bHkuXG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHBhcmFtcyxcbiAgICAgICAgcmVzdWx0OiBpbnRlcnBvbGF0ZWRSb3V0ZVxuICAgIH07XG59XG5mdW5jdGlvbiBvbWl0UGFybXNGcm9tUXVlcnkocXVlcnksIHBhcmFtcykge1xuICAgIGNvbnN0IGZpbHRlcmVkUXVlcnkgPSB7XG4gICAgfTtcbiAgICBPYmplY3Qua2V5cyhxdWVyeSkuZm9yRWFjaCgoa2V5KT0+e1xuICAgICAgICBpZiAoIXBhcmFtcy5pbmNsdWRlcyhrZXkpKSB7XG4gICAgICAgICAgICBmaWx0ZXJlZFF1ZXJ5W2tleV0gPSBxdWVyeVtrZXldO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGZpbHRlcmVkUXVlcnk7XG59XG5mdW5jdGlvbiByZXNvbHZlSHJlZihyb3V0ZXIsIGhyZWYsIHJlc29sdmVBcykge1xuICAgIC8vIHdlIHVzZSBhIGR1bW15IGJhc2UgdXJsIGZvciByZWxhdGl2ZSB1cmxzXG4gICAgbGV0IGJhc2U7XG4gICAgbGV0IHVybEFzU3RyaW5nID0gdHlwZW9mIGhyZWYgPT09ICdzdHJpbmcnID8gaHJlZiA6ICgwLCBfdXRpbHMpLmZvcm1hdFdpdGhWYWxpZGF0aW9uKGhyZWYpO1xuICAgIC8vIHJlcGVhdGVkIHNsYXNoZXMgYW5kIGJhY2tzbGFzaGVzIGluIHRoZSBVUkwgYXJlIGNvbnNpZGVyZWRcbiAgICAvLyBpbnZhbGlkIGFuZCB3aWxsIG5ldmVyIG1hdGNoIGEgTmV4dC5qcyBwYWdlL2ZpbGVcbiAgICBjb25zdCB1cmxQcm90b01hdGNoID0gdXJsQXNTdHJpbmcubWF0Y2goL15bYS16QS1aXXsxLH06XFwvXFwvLyk7XG4gICAgY29uc3QgdXJsQXNTdHJpbmdOb1Byb3RvID0gdXJsUHJvdG9NYXRjaCA/IHVybEFzU3RyaW5nLnN1YnN0cih1cmxQcm90b01hdGNoWzBdLmxlbmd0aCkgOiB1cmxBc1N0cmluZztcbiAgICBjb25zdCB1cmxQYXJ0cyA9IHVybEFzU3RyaW5nTm9Qcm90by5zcGxpdCgnPycpO1xuICAgIGlmICgodXJsUGFydHNbMF0gfHwgJycpLm1hdGNoKC8oXFwvXFwvfFxcXFwpLykpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgSW52YWxpZCBocmVmIHBhc3NlZCB0byBuZXh0L3JvdXRlcjogJHt1cmxBc1N0cmluZ30sIHJlcGVhdGVkIGZvcndhcmQtc2xhc2hlcyAoLy8pIG9yIGJhY2tzbGFzaGVzIFxcXFwgYXJlIG5vdCB2YWxpZCBpbiB0aGUgaHJlZmApO1xuICAgICAgICBjb25zdCBub3JtYWxpemVkVXJsID0gKDAsIF91dGlscykubm9ybWFsaXplUmVwZWF0ZWRTbGFzaGVzKHVybEFzU3RyaW5nTm9Qcm90byk7XG4gICAgICAgIHVybEFzU3RyaW5nID0gKHVybFByb3RvTWF0Y2ggPyB1cmxQcm90b01hdGNoWzBdIDogJycpICsgbm9ybWFsaXplZFVybDtcbiAgICB9XG4gICAgLy8gUmV0dXJuIGJlY2F1c2UgaXQgY2Fubm90IGJlIHJvdXRlZCBieSB0aGUgTmV4dC5qcyByb3V0ZXJcbiAgICBpZiAoIWlzTG9jYWxVUkwodXJsQXNTdHJpbmcpKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlQXMgPyBbXG4gICAgICAgICAgICB1cmxBc1N0cmluZ1xuICAgICAgICBdIDogdXJsQXNTdHJpbmc7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIGJhc2UgPSBuZXcgVVJMKHVybEFzU3RyaW5nLnN0YXJ0c1dpdGgoJyMnKSA/IHJvdXRlci5hc1BhdGggOiByb3V0ZXIucGF0aG5hbWUsICdodHRwOi8vbicpO1xuICAgIH0gY2F0Y2ggKF8pIHtcbiAgICAgICAgLy8gZmFsbGJhY2sgdG8gLyBmb3IgaW52YWxpZCBhc1BhdGggdmFsdWVzIGUuZy4gLy9cbiAgICAgICAgYmFzZSA9IG5ldyBVUkwoJy8nLCAnaHR0cDovL24nKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZmluYWxVcmwgPSBuZXcgVVJMKHVybEFzU3RyaW5nLCBiYXNlKTtcbiAgICAgICAgZmluYWxVcmwucGF0aG5hbWUgPSAoMCwgX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2gpLm5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoKGZpbmFsVXJsLnBhdGhuYW1lKTtcbiAgICAgICAgbGV0IGludGVycG9sYXRlZEFzID0gJyc7XG4gICAgICAgIGlmICgoMCwgX2lzRHluYW1pYykuaXNEeW5hbWljUm91dGUoZmluYWxVcmwucGF0aG5hbWUpICYmIGZpbmFsVXJsLnNlYXJjaFBhcmFtcyAmJiByZXNvbHZlQXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHF1ZXJ5ID0gKDAsIF9xdWVyeXN0cmluZykuc2VhcmNoUGFyYW1zVG9VcmxRdWVyeShmaW5hbFVybC5zZWFyY2hQYXJhbXMpO1xuICAgICAgICAgICAgY29uc3QgeyByZXN1bHQgLCBwYXJhbXMgIH0gPSBpbnRlcnBvbGF0ZUFzKGZpbmFsVXJsLnBhdGhuYW1lLCBmaW5hbFVybC5wYXRobmFtZSwgcXVlcnkpO1xuICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgIGludGVycG9sYXRlZEFzID0gKDAsIF91dGlscykuZm9ybWF0V2l0aFZhbGlkYXRpb24oe1xuICAgICAgICAgICAgICAgICAgICBwYXRobmFtZTogcmVzdWx0LFxuICAgICAgICAgICAgICAgICAgICBoYXNoOiBmaW5hbFVybC5oYXNoLFxuICAgICAgICAgICAgICAgICAgICBxdWVyeTogb21pdFBhcm1zRnJvbVF1ZXJ5KHF1ZXJ5LCBwYXJhbXMpXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gaWYgdGhlIG9yaWdpbiBkaWRuJ3QgY2hhbmdlLCBpdCBtZWFucyB3ZSByZWNlaXZlZCBhIHJlbGF0aXZlIGhyZWZcbiAgICAgICAgY29uc3QgcmVzb2x2ZWRIcmVmID0gZmluYWxVcmwub3JpZ2luID09PSBiYXNlLm9yaWdpbiA/IGZpbmFsVXJsLmhyZWYuc2xpY2UoZmluYWxVcmwub3JpZ2luLmxlbmd0aCkgOiBmaW5hbFVybC5ocmVmO1xuICAgICAgICByZXR1cm4gcmVzb2x2ZUFzID8gW1xuICAgICAgICAgICAgcmVzb2x2ZWRIcmVmLFxuICAgICAgICAgICAgaW50ZXJwb2xhdGVkQXMgfHwgcmVzb2x2ZWRIcmVmXG4gICAgICAgIF0gOiByZXNvbHZlZEhyZWY7XG4gICAgfSBjYXRjaCAoXzEpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVBcyA/IFtcbiAgICAgICAgICAgIHVybEFzU3RyaW5nXG4gICAgICAgIF0gOiB1cmxBc1N0cmluZztcbiAgICB9XG59XG5mdW5jdGlvbiBzdHJpcE9yaWdpbih1cmwpIHtcbiAgICBjb25zdCBvcmlnaW4gPSAoMCwgX3V0aWxzKS5nZXRMb2NhdGlvbk9yaWdpbigpO1xuICAgIHJldHVybiB1cmwuc3RhcnRzV2l0aChvcmlnaW4pID8gdXJsLnN1YnN0cmluZyhvcmlnaW4ubGVuZ3RoKSA6IHVybDtcbn1cbmZ1bmN0aW9uIHByZXBhcmVVcmxBcyhyb3V0ZXIsIHVybCwgYXMpIHtcbiAgICAvLyBJZiB1cmwgYW5kIGFzIHByb3ZpZGVkIGFzIGFuIG9iamVjdCByZXByZXNlbnRhdGlvbixcbiAgICAvLyB3ZSdsbCBmb3JtYXQgdGhlbSBpbnRvIHRoZSBzdHJpbmcgdmVyc2lvbiBoZXJlLlxuICAgIGxldCBbcmVzb2x2ZWRIcmVmLCByZXNvbHZlZEFzXSA9IHJlc29sdmVIcmVmKHJvdXRlciwgdXJsLCB0cnVlKTtcbiAgICBjb25zdCBvcmlnaW4gPSAoMCwgX3V0aWxzKS5nZXRMb2NhdGlvbk9yaWdpbigpO1xuICAgIGNvbnN0IGhyZWZIYWRPcmlnaW4gPSByZXNvbHZlZEhyZWYuc3RhcnRzV2l0aChvcmlnaW4pO1xuICAgIGNvbnN0IGFzSGFkT3JpZ2luID0gcmVzb2x2ZWRBcyAmJiByZXNvbHZlZEFzLnN0YXJ0c1dpdGgob3JpZ2luKTtcbiAgICByZXNvbHZlZEhyZWYgPSBzdHJpcE9yaWdpbihyZXNvbHZlZEhyZWYpO1xuICAgIHJlc29sdmVkQXMgPSByZXNvbHZlZEFzID8gc3RyaXBPcmlnaW4ocmVzb2x2ZWRBcykgOiByZXNvbHZlZEFzO1xuICAgIGNvbnN0IHByZXBhcmVkVXJsID0gaHJlZkhhZE9yaWdpbiA/IHJlc29sdmVkSHJlZiA6IGFkZEJhc2VQYXRoKHJlc29sdmVkSHJlZik7XG4gICAgY29uc3QgcHJlcGFyZWRBcyA9IGFzID8gc3RyaXBPcmlnaW4ocmVzb2x2ZUhyZWYocm91dGVyLCBhcykpIDogcmVzb2x2ZWRBcyB8fCByZXNvbHZlZEhyZWY7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdXJsOiBwcmVwYXJlZFVybCxcbiAgICAgICAgYXM6IGFzSGFkT3JpZ2luID8gcHJlcGFyZWRBcyA6IGFkZEJhc2VQYXRoKHByZXBhcmVkQXMpXG4gICAgfTtcbn1cbmZ1bmN0aW9uIHJlc29sdmVEeW5hbWljUm91dGUocGF0aG5hbWUsIHBhZ2VzKSB7XG4gICAgY29uc3QgY2xlYW5QYXRobmFtZSA9ICgwLCBfbm9ybWFsaXplVHJhaWxpbmdTbGFzaCkucmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2goKDAsIF9kZW5vcm1hbGl6ZVBhZ2VQYXRoKS5kZW5vcm1hbGl6ZVBhZ2VQYXRoKHBhdGhuYW1lKSk7XG4gICAgaWYgKGNsZWFuUGF0aG5hbWUgPT09ICcvNDA0JyB8fCBjbGVhblBhdGhuYW1lID09PSAnL19lcnJvcicpIHtcbiAgICAgICAgcmV0dXJuIHBhdGhuYW1lO1xuICAgIH1cbiAgICAvLyBoYW5kbGUgcmVzb2x2aW5nIGhyZWYgZm9yIGR5bmFtaWMgcm91dGVzXG4gICAgaWYgKCFwYWdlcy5pbmNsdWRlcyhjbGVhblBhdGhuYW1lKSkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgYXJyYXktY2FsbGJhY2stcmV0dXJuXG4gICAgICAgIHBhZ2VzLnNvbWUoKHBhZ2UpPT57XG4gICAgICAgICAgICBpZiAoKDAsIF9pc0R5bmFtaWMpLmlzRHluYW1pY1JvdXRlKHBhZ2UpICYmICgwLCBfcm91dGVSZWdleCkuZ2V0Um91dGVSZWdleChwYWdlKS5yZS50ZXN0KGNsZWFuUGF0aG5hbWUpKSB7XG4gICAgICAgICAgICAgICAgcGF0aG5hbWUgPSBwYWdlO1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuICgwLCBfbm9ybWFsaXplVHJhaWxpbmdTbGFzaCkucmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2gocGF0aG5hbWUpO1xufVxuY29uc3QgbWFudWFsU2Nyb2xsUmVzdG9yYXRpb24gPSBwcm9jZXNzLmVudi5fX05FWFRfU0NST0xMX1JFU1RPUkFUSU9OICYmIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmICdzY3JvbGxSZXN0b3JhdGlvbicgaW4gd2luZG93Lmhpc3RvcnkgJiYgISFmdW5jdGlvbigpIHtcbiAgICB0cnkge1xuICAgICAgICBsZXQgdiA9ICdfX25leHQnO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VxdWVuY2VzXG4gICAgICAgIHJldHVybiBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHYsIHYpLCBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKHYpLCB0cnVlO1xuICAgIH0gY2F0Y2ggKG4pIHtcbiAgICB9XG59KCk7XG5jb25zdCBTU0dfREFUQV9OT1RfRk9VTkQgPSBTeW1ib2woJ1NTR19EQVRBX05PVF9GT1VORCcpO1xuZnVuY3Rpb24gZmV0Y2hSZXRyeSh1cmwsIGF0dGVtcHRzLCBvcHRzKSB7XG4gICAgcmV0dXJuIGZldGNoKHVybCwge1xuICAgICAgICAvLyBDb29raWVzIGFyZSByZXF1aXJlZCB0byBiZSBwcmVzZW50IGZvciBOZXh0LmpzJyBTU0cgXCJQcmV2aWV3IE1vZGVcIi5cbiAgICAgICAgLy8gQ29va2llcyBtYXkgYWxzbyBiZSByZXF1aXJlZCBmb3IgYGdldFNlcnZlclNpZGVQcm9wc2AuXG4gICAgICAgIC8vXG4gICAgICAgIC8vID4gYGZldGNoYCB3b27igJl0IHNlbmQgY29va2llcywgdW5sZXNzIHlvdSBzZXQgdGhlIGNyZWRlbnRpYWxzIGluaXRcbiAgICAgICAgLy8gPiBvcHRpb24uXG4gICAgICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9GZXRjaF9BUEkvVXNpbmdfRmV0Y2hcbiAgICAgICAgLy9cbiAgICAgICAgLy8gPiBGb3IgbWF4aW11bSBicm93c2VyIGNvbXBhdGliaWxpdHkgd2hlbiBpdCBjb21lcyB0byBzZW5kaW5nICZcbiAgICAgICAgLy8gPiByZWNlaXZpbmcgY29va2llcywgYWx3YXlzIHN1cHBseSB0aGUgYGNyZWRlbnRpYWxzOiAnc2FtZS1vcmlnaW4nYFxuICAgICAgICAvLyA+IG9wdGlvbiBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gdGhlIGRlZmF1bHQuXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9naXRodWIvZmV0Y2gjY2F2ZWF0c1xuICAgICAgICBjcmVkZW50aWFsczogJ3NhbWUtb3JpZ2luJ1xuICAgIH0pLnRoZW4oKHJlcyk9PntcbiAgICAgICAgaWYgKCFyZXMub2spIHtcbiAgICAgICAgICAgIGlmIChhdHRlbXB0cyA+IDEgJiYgcmVzLnN0YXR1cyA+PSA1MDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmV0Y2hSZXRyeSh1cmwsIGF0dGVtcHRzIC0gMSwgb3B0cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocmVzLnN0YXR1cyA9PT0gNDA0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlcy5qc29uKCkudGhlbigoZGF0YSk9PntcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEubm90Rm91bmQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90Rm91bmQ6IFNTR19EQVRBX05PVF9GT1VORFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBsb2FkIHN0YXRpYyBwcm9wc2ApO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gbG9hZCBzdGF0aWMgcHJvcHNgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3B0cy50ZXh0ID8gcmVzLnRleHQoKSA6IHJlcy5qc29uKCk7XG4gICAgfSk7XG59XG5mdW5jdGlvbiBmZXRjaE5leHREYXRhKGRhdGFIcmVmLCBpc1NlcnZlclJlbmRlciwgdGV4dCwgaW5mbGlnaHRDYWNoZSwgcGVyc2lzdENhY2hlKSB7XG4gICAgY29uc3QgeyBocmVmOiBjYWNoZUtleSAgfSA9IG5ldyBVUkwoZGF0YUhyZWYsIHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcbiAgICBpZiAoaW5mbGlnaHRDYWNoZVtjYWNoZUtleV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gaW5mbGlnaHRDYWNoZVtjYWNoZUtleV07XG4gICAgfVxuICAgIHJldHVybiBpbmZsaWdodENhY2hlW2NhY2hlS2V5XSA9IGZldGNoUmV0cnkoZGF0YUhyZWYsIGlzU2VydmVyUmVuZGVyID8gMyA6IDEsIHtcbiAgICAgICAgdGV4dFxuICAgIH0pLmNhdGNoKChlcnIpPT57XG4gICAgICAgIC8vIFdlIHNob3VsZCBvbmx5IHRyaWdnZXIgYSBzZXJ2ZXItc2lkZSB0cmFuc2l0aW9uIGlmIHRoaXMgd2FzIGNhdXNlZFxuICAgICAgICAvLyBvbiBhIGNsaWVudC1zaWRlIHRyYW5zaXRpb24uIE90aGVyd2lzZSwgd2UnZCBnZXQgaW50byBhbiBpbmZpbml0ZVxuICAgICAgICAvLyBsb29wLlxuICAgICAgICBpZiAoIWlzU2VydmVyUmVuZGVyKSB7XG4gICAgICAgICAgICAoMCwgX3JvdXRlTG9hZGVyKS5tYXJrQXNzZXRFcnJvcihlcnIpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IGVycjtcbiAgICB9KS50aGVuKChkYXRhKT0+e1xuICAgICAgICBpZiAoIXBlcnNpc3RDYWNoZSB8fCBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICBkZWxldGUgaW5mbGlnaHRDYWNoZVtjYWNoZUtleV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfSkuY2F0Y2goKGVycik9PntcbiAgICAgICAgZGVsZXRlIGluZmxpZ2h0Q2FjaGVbY2FjaGVLZXldO1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgfSk7XG59XG5jbGFzcyBSb3V0ZXIge1xuICAgIGNvbnN0cnVjdG9yKHBhdGhuYW1lLCBxdWVyeSwgYXMsIHsgaW5pdGlhbFByb3BzICwgcGFnZUxvYWRlciAsIEFwcCAsIHdyYXBBcHAgLCBDb21wb25lbnQgLCBlcnIgLCBzdWJzY3JpcHRpb24gLCBpc0ZhbGxiYWNrICwgbG9jYWxlICwgbG9jYWxlcyAsIGRlZmF1bHRMb2NhbGUgLCBkb21haW5Mb2NhbGVzICwgaXNQcmV2aWV3ICB9KXtcbiAgICAgICAgLy8gU3RhdGljIERhdGEgQ2FjaGVcbiAgICAgICAgdGhpcy5zZGMgPSB7XG4gICAgICAgIH07XG4gICAgICAgIC8vIEluLWZsaWdodCBTZXJ2ZXIgRGF0YSBSZXF1ZXN0cywgZm9yIGRlZHVwaW5nXG4gICAgICAgIHRoaXMuc2RyID0ge1xuICAgICAgICB9O1xuICAgICAgICAvLyBJbi1mbGlnaHQgbWlkZGxld2FyZSBwcmVmbGlnaHQgcmVxdWVzdHNcbiAgICAgICAgdGhpcy5zZGUgPSB7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuX2lkeCA9IDA7XG4gICAgICAgIHRoaXMub25Qb3BTdGF0ZSA9IChlKT0+e1xuICAgICAgICAgICAgY29uc3Qgc3RhdGUgPSBlLnN0YXRlO1xuICAgICAgICAgICAgaWYgKCFzdGF0ZSkge1xuICAgICAgICAgICAgICAgIC8vIFdlIGdldCBzdGF0ZSBhcyB1bmRlZmluZWQgZm9yIHR3byByZWFzb25zLlxuICAgICAgICAgICAgICAgIC8vICAxLiBXaXRoIG9sZGVyIHNhZmFyaSAoPCA4KSBhbmQgb2xkZXIgY2hyb21lICg8IDM0KVxuICAgICAgICAgICAgICAgIC8vICAyLiBXaGVuIHRoZSBVUkwgY2hhbmdlZCB3aXRoICNcbiAgICAgICAgICAgICAgICAvL1xuICAgICAgICAgICAgICAgIC8vIEluIHRoZSBib3RoIGNhc2VzLCB3ZSBkb24ndCBuZWVkIHRvIHByb2NlZWQgYW5kIGNoYW5nZSB0aGUgcm91dGUuXG4gICAgICAgICAgICAgICAgLy8gKGFzIGl0J3MgYWxyZWFkeSBjaGFuZ2VkKVxuICAgICAgICAgICAgICAgIC8vIEJ1dCB3ZSBjYW4gc2ltcGx5IHJlcGxhY2UgdGhlIHN0YXRlIHdpdGggdGhlIG5ldyBjaGFuZ2VzLlxuICAgICAgICAgICAgICAgIC8vIEFjdHVhbGx5LCBmb3IgKDEpIHdlIGRvbid0IG5lZWQgdG8gbm90aGluZy4gQnV0IGl0J3MgaGFyZCB0byBkZXRlY3QgdGhhdCBldmVudC5cbiAgICAgICAgICAgICAgICAvLyBTbywgZG9pbmcgdGhlIGZvbGxvd2luZyBmb3IgKDEpIGRvZXMgbm8gaGFybS5cbiAgICAgICAgICAgICAgICBjb25zdCB7IHBhdGhuYW1lICwgcXVlcnkgIH0gPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlU3RhdGUoJ3JlcGxhY2VTdGF0ZScsICgwLCBfdXRpbHMpLmZvcm1hdFdpdGhWYWxpZGF0aW9uKHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWU6IGFkZEJhc2VQYXRoKHBhdGhuYW1lKSxcbiAgICAgICAgICAgICAgICAgICAgcXVlcnlcbiAgICAgICAgICAgICAgICB9KSwgKDAsIF91dGlscykuZ2V0VVJMKCkpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghc3RhdGUuX19OKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IGZvcmNlZFNjcm9sbDtcbiAgICAgICAgICAgIGNvbnN0IHsgdXJsICwgYXMgLCBvcHRpb25zICwgaWR4ICB9ID0gc3RhdGU7XG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX1NDUk9MTF9SRVNUT1JBVElPTikge1xuICAgICAgICAgICAgICAgIGlmIChtYW51YWxTY3JvbGxSZXN0b3JhdGlvbikge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5faWR4ICE9PSBpZHgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNuYXBzaG90IGN1cnJlbnQgc2Nyb2xsIHBvc2l0aW9uOlxuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdfX25leHRfc2Nyb2xsXycgKyB0aGlzLl9pZHgsIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDogc2VsZi5wYWdlWE9mZnNldCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeTogc2VsZi5wYWdlWU9mZnNldFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlc3RvcmUgb2xkIHNjcm9sbCBwb3NpdGlvbjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdiA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ19fbmV4dF9zY3JvbGxfJyArIGlkeCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yY2VkU2Nyb2xsID0gSlNPTi5wYXJzZSh2KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JjZWRTY3JvbGwgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHg6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHk6IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5faWR4ID0gaWR4O1xuICAgICAgICAgICAgY29uc3QgeyBwYXRobmFtZSAgfSA9ICgwLCBfcGFyc2VSZWxhdGl2ZVVybCkucGFyc2VSZWxhdGl2ZVVybCh1cmwpO1xuICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHdlIGRvbid0IHJlLXJlbmRlciBvbiBpbml0aWFsIGxvYWQsXG4gICAgICAgICAgICAvLyBjYW4gYmUgY2F1c2VkIGJ5IG5hdmlnYXRpbmcgYmFjayBmcm9tIGFuIGV4dGVybmFsIHNpdGVcbiAgICAgICAgICAgIGlmICh0aGlzLmlzU3NyICYmIGFzID09PSB0aGlzLmFzUGF0aCAmJiBwYXRobmFtZSA9PT0gdGhpcy5wYXRobmFtZSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIElmIHRoZSBkb3duc3RyZWFtIGFwcGxpY2F0aW9uIHJldHVybnMgZmFsc3ksIHJldHVybi5cbiAgICAgICAgICAgIC8vIFRoZXkgd2lsbCB0aGVuIGJlIHJlc3BvbnNpYmxlIGZvciBoYW5kbGluZyB0aGUgZXZlbnQuXG4gICAgICAgICAgICBpZiAodGhpcy5fYnBzICYmICF0aGlzLl9icHMoc3RhdGUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jaGFuZ2UoJ3JlcGxhY2VTdGF0ZScsIHVybCwgYXMsIE9iamVjdC5hc3NpZ24oe1xuICAgICAgICAgICAgfSwgb3B0aW9ucywge1xuICAgICAgICAgICAgICAgIHNoYWxsb3c6IG9wdGlvbnMuc2hhbGxvdyAmJiB0aGlzLl9zaGFsbG93LFxuICAgICAgICAgICAgICAgIGxvY2FsZTogb3B0aW9ucy5sb2NhbGUgfHwgdGhpcy5kZWZhdWx0TG9jYWxlXG4gICAgICAgICAgICB9KSwgZm9yY2VkU2Nyb2xsKTtcbiAgICAgICAgfTtcbiAgICAgICAgLy8gcmVwcmVzZW50cyB0aGUgY3VycmVudCBjb21wb25lbnQga2V5XG4gICAgICAgIHRoaXMucm91dGUgPSAoMCwgX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2gpLnJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoKHBhdGhuYW1lKTtcbiAgICAgICAgLy8gc2V0IHVwIHRoZSBjb21wb25lbnQgY2FjaGUgKGJ5IHJvdXRlIGtleXMpXG4gICAgICAgIHRoaXMuY29tcG9uZW50cyA9IHtcbiAgICAgICAgfTtcbiAgICAgICAgLy8gV2Ugc2hvdWxkIG5vdCBrZWVwIHRoZSBjYWNoZSwgaWYgdGhlcmUncyBhbiBlcnJvclxuICAgICAgICAvLyBPdGhlcndpc2UsIHRoaXMgY2F1c2UgaXNzdWVzIHdoZW4gd2hlbiBnb2luZyBiYWNrIGFuZFxuICAgICAgICAvLyBjb21lIGFnYWluIHRvIHRoZSBlcnJvcmVkIHBhZ2UuXG4gICAgICAgIGlmIChwYXRobmFtZSAhPT0gJy9fZXJyb3InKSB7XG4gICAgICAgICAgICB2YXIgcmVmO1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRzW3RoaXMucm91dGVdID0ge1xuICAgICAgICAgICAgICAgIENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBpbml0aWFsOiB0cnVlLFxuICAgICAgICAgICAgICAgIHByb3BzOiBpbml0aWFsUHJvcHMsXG4gICAgICAgICAgICAgICAgZXJyLFxuICAgICAgICAgICAgICAgIF9fTl9TU0c6IGluaXRpYWxQcm9wcyAmJiBpbml0aWFsUHJvcHMuX19OX1NTRyxcbiAgICAgICAgICAgICAgICBfX05fU1NQOiBpbml0aWFsUHJvcHMgJiYgaW5pdGlhbFByb3BzLl9fTl9TU1AsXG4gICAgICAgICAgICAgICAgX19OX1JTQzogISEoKHJlZiA9IENvbXBvbmVudCkgPT09IG51bGwgfHwgcmVmID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZWYuX19uZXh0X3JzY19fKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbXBvbmVudHNbJy9fYXBwJ10gPSB7XG4gICAgICAgICAgICBDb21wb25lbnQ6IEFwcCxcbiAgICAgICAgICAgIHN0eWxlU2hlZXRzOiBbXVxuICAgICAgICB9O1xuICAgICAgICAvLyBCYWNrd2FyZHMgY29tcGF0IGZvciBSb3V0ZXIucm91dGVyLmV2ZW50c1xuICAgICAgICAvLyBUT0RPOiBTaG91bGQgYmUgcmVtb3ZlIHRoZSBmb2xsb3dpbmcgbWFqb3IgdmVyc2lvbiBhcyBpdCB3YXMgbmV2ZXIgZG9jdW1lbnRlZFxuICAgICAgICB0aGlzLmV2ZW50cyA9IFJvdXRlci5ldmVudHM7XG4gICAgICAgIHRoaXMucGFnZUxvYWRlciA9IHBhZ2VMb2FkZXI7XG4gICAgICAgIHRoaXMucGF0aG5hbWUgPSBwYXRobmFtZTtcbiAgICAgICAgdGhpcy5xdWVyeSA9IHF1ZXJ5O1xuICAgICAgICAvLyBpZiBhdXRvIHByZXJlbmRlcmVkIGFuZCBkeW5hbWljIHJvdXRlIHdhaXQgdG8gdXBkYXRlIGFzUGF0aFxuICAgICAgICAvLyB1bnRpbCBhZnRlciBtb3VudCB0byBwcmV2ZW50IGh5ZHJhdGlvbiBtaXNtYXRjaFxuICAgICAgICBjb25zdCBhdXRvRXhwb3J0RHluYW1pYyA9ICgwLCBfaXNEeW5hbWljKS5pc0R5bmFtaWNSb3V0ZShwYXRobmFtZSkgJiYgc2VsZi5fX05FWFRfREFUQV9fLmF1dG9FeHBvcnQ7XG4gICAgICAgIHRoaXMuYXNQYXRoID0gYXV0b0V4cG9ydER5bmFtaWMgPyBwYXRobmFtZSA6IGFzO1xuICAgICAgICB0aGlzLmJhc2VQYXRoID0gYmFzZVBhdGg7XG4gICAgICAgIHRoaXMuc3ViID0gc3Vic2NyaXB0aW9uO1xuICAgICAgICB0aGlzLmNsYyA9IG51bGw7XG4gICAgICAgIHRoaXMuX3dyYXBBcHAgPSB3cmFwQXBwO1xuICAgICAgICAvLyBtYWtlIHN1cmUgdG8gaWdub3JlIGV4dHJhIHBvcFN0YXRlIGluIHNhZmFyaSBvbiBuYXZpZ2F0aW5nXG4gICAgICAgIC8vIGJhY2sgZnJvbSBleHRlcm5hbCBzaXRlXG4gICAgICAgIHRoaXMuaXNTc3IgPSB0cnVlO1xuICAgICAgICB0aGlzLmlzRmFsbGJhY2sgPSBpc0ZhbGxiYWNrO1xuICAgICAgICB0aGlzLmlzUmVhZHkgPSAhIShzZWxmLl9fTkVYVF9EQVRBX18uZ3NzcCB8fCBzZWxmLl9fTkVYVF9EQVRBX18uZ2lwIHx8IHNlbGYuX19ORVhUX0RBVEFfXy5hcHBHaXAgJiYgIXNlbGYuX19ORVhUX0RBVEFfXy5nc3AgfHwgIWF1dG9FeHBvcnREeW5hbWljICYmICFzZWxmLmxvY2F0aW9uLnNlYXJjaCAmJiAhcHJvY2Vzcy5lbnYuX19ORVhUX0hBU19SRVdSSVRFUyk7XG4gICAgICAgIHRoaXMuaXNQcmV2aWV3ID0gISFpc1ByZXZpZXc7XG4gICAgICAgIHRoaXMuaXNMb2NhbGVEb21haW4gPSBmYWxzZTtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9JMThOX1NVUFBPUlQpIHtcbiAgICAgICAgICAgIHRoaXMubG9jYWxlID0gbG9jYWxlO1xuICAgICAgICAgICAgdGhpcy5sb2NhbGVzID0gbG9jYWxlcztcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdExvY2FsZSA9IGRlZmF1bHRMb2NhbGU7XG4gICAgICAgICAgICB0aGlzLmRvbWFpbkxvY2FsZXMgPSBkb21haW5Mb2NhbGVzO1xuICAgICAgICAgICAgdGhpcy5pc0xvY2FsZURvbWFpbiA9ICEhZGV0ZWN0RG9tYWluTG9jYWxlKGRvbWFpbkxvY2FsZXMsIHNlbGYubG9jYXRpb24uaG9zdG5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgLy8gbWFrZSBzdXJlIFwiYXNcIiBkb2Vzbid0IHN0YXJ0IHdpdGggZG91YmxlIHNsYXNoZXMgb3IgZWxzZSBpdCBjYW5cbiAgICAgICAgICAgIC8vIHRocm93IGFuIGVycm9yIGFzIGl0J3MgY29uc2lkZXJlZCBpbnZhbGlkXG4gICAgICAgICAgICBpZiAoYXMuc3Vic3RyKDAsIDIpICE9PSAnLy8nKSB7XG4gICAgICAgICAgICAgICAgLy8gaW4gb3JkZXIgZm9yIGBlLnN0YXRlYCB0byB3b3JrIG9uIHRoZSBgb25wb3BzdGF0ZWAgZXZlbnRcbiAgICAgICAgICAgICAgICAvLyB3ZSBoYXZlIHRvIHJlZ2lzdGVyIHRoZSBpbml0aWFsIHJvdXRlIHVwb24gaW5pdGlhbGl6YXRpb25cbiAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICBsb2NhbGVcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIG9wdGlvbnMuX3Nob3VsZFJlc29sdmVIcmVmID0gYXMgIT09IHBhdGhuYW1lO1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlU3RhdGUoJ3JlcGxhY2VTdGF0ZScsICgwLCBfdXRpbHMpLmZvcm1hdFdpdGhWYWxpZGF0aW9uKHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWU6IGFkZEJhc2VQYXRoKHBhdGhuYW1lKSxcbiAgICAgICAgICAgICAgICAgICAgcXVlcnlcbiAgICAgICAgICAgICAgICB9KSwgKDAsIF91dGlscykuZ2V0VVJMKCksIG9wdGlvbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvcHN0YXRlJywgdGhpcy5vblBvcFN0YXRlKTtcbiAgICAgICAgICAgIC8vIGVuYWJsZSBjdXN0b20gc2Nyb2xsIHJlc3RvcmF0aW9uIGhhbmRsaW5nIHdoZW4gYXZhaWxhYmxlXG4gICAgICAgICAgICAvLyBvdGhlcndpc2UgZmFsbGJhY2sgdG8gYnJvd3NlcidzIGRlZmF1bHQgaGFuZGxpbmdcbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfU0NST0xMX1JFU1RPUkFUSU9OKSB7XG4gICAgICAgICAgICAgICAgaWYgKG1hbnVhbFNjcm9sbFJlc3RvcmF0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5oaXN0b3J5LnNjcm9sbFJlc3RvcmF0aW9uID0gJ21hbnVhbCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJlbG9hZCgpIHtcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuICAgIH1cbiAgICAvKipcbiAgICogR28gYmFjayBpbiBoaXN0b3J5XG4gICAqLyBiYWNrKCkge1xuICAgICAgICB3aW5kb3cuaGlzdG9yeS5iYWNrKCk7XG4gICAgfVxuICAgIC8qKlxuICAgKiBQZXJmb3JtcyBhIGBwdXNoU3RhdGVgIHdpdGggYXJndW1lbnRzXG4gICAqIEBwYXJhbSB1cmwgb2YgdGhlIHJvdXRlXG4gICAqIEBwYXJhbSBhcyBtYXNrcyBgdXJsYCBmb3IgdGhlIGJyb3dzZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgb2JqZWN0IHlvdSBjYW4gZGVmaW5lIGBzaGFsbG93YCBhbmQgb3RoZXIgb3B0aW9uc1xuICAgKi8gcHVzaCh1cmwsIGFzLCBvcHRpb25zID0ge1xuICAgIH0pIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9TQ1JPTExfUkVTVE9SQVRJT04pIHtcbiAgICAgICAgICAgIC8vIFRPRE86IHJlbW92ZSBpbiB0aGUgZnV0dXJlIHdoZW4gd2UgdXBkYXRlIGhpc3RvcnkgYmVmb3JlIHJvdXRlIGNoYW5nZVxuICAgICAgICAgICAgLy8gaXMgY29tcGxldGUsIGFzIHRoZSBwb3BzdGF0ZSBldmVudCBzaG91bGQgaGFuZGxlIHRoaXMgY2FwdHVyZS5cbiAgICAgICAgICAgIGlmIChtYW51YWxTY3JvbGxSZXN0b3JhdGlvbikge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFNuYXBzaG90IHNjcm9sbCBwb3NpdGlvbiByaWdodCBiZWZvcmUgbmF2aWdhdGluZyB0byBhIG5ldyBwYWdlOlxuICAgICAgICAgICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdfX25leHRfc2Nyb2xsXycgKyB0aGlzLl9pZHgsIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHg6IHNlbGYucGFnZVhPZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgICAgICB5OiBzZWxmLnBhZ2VZT2Zmc2V0XG4gICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoICB7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICh7IHVybCAsIGFzICB9ID0gcHJlcGFyZVVybEFzKHRoaXMsIHVybCwgYXMpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hhbmdlKCdwdXNoU3RhdGUnLCB1cmwsIGFzLCBvcHRpb25zKTtcbiAgICB9XG4gICAgLyoqXG4gICAqIFBlcmZvcm1zIGEgYHJlcGxhY2VTdGF0ZWAgd2l0aCBhcmd1bWVudHNcbiAgICogQHBhcmFtIHVybCBvZiB0aGUgcm91dGVcbiAgICogQHBhcmFtIGFzIG1hc2tzIGB1cmxgIGZvciB0aGUgYnJvd3NlclxuICAgKiBAcGFyYW0gb3B0aW9ucyBvYmplY3QgeW91IGNhbiBkZWZpbmUgYHNoYWxsb3dgIGFuZCBvdGhlciBvcHRpb25zXG4gICAqLyByZXBsYWNlKHVybCwgYXMsIG9wdGlvbnMgPSB7XG4gICAgfSkge1xuICAgICAgICAoeyB1cmwgLCBhcyAgfSA9IHByZXBhcmVVcmxBcyh0aGlzLCB1cmwsIGFzKSk7XG4gICAgICAgIHJldHVybiB0aGlzLmNoYW5nZSgncmVwbGFjZVN0YXRlJywgdXJsLCBhcywgb3B0aW9ucyk7XG4gICAgfVxuICAgIGFzeW5jIGNoYW5nZShtZXRob2QsIHVybCwgYXMsIG9wdGlvbnMsIGZvcmNlZFNjcm9sbCkge1xuICAgICAgICBpZiAoIWlzTG9jYWxVUkwodXJsKSkge1xuICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB1cmw7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2hvdWxkUmVzb2x2ZUhyZWYgPSBvcHRpb25zLl9oIHx8IG9wdGlvbnMuX3Nob3VsZFJlc29sdmVIcmVmIHx8IHBhdGhOb1F1ZXJ5SGFzaCh1cmwpID09PSBwYXRoTm9RdWVyeUhhc2goYXMpO1xuICAgICAgICAvLyBmb3Igc3RhdGljIHBhZ2VzIHdpdGggcXVlcnkgcGFyYW1zIGluIHRoZSBVUkwgd2UgZGVsYXlcbiAgICAgICAgLy8gbWFya2luZyB0aGUgcm91dGVyIHJlYWR5IHVudGlsIGFmdGVyIHRoZSBxdWVyeSBpcyB1cGRhdGVkXG4gICAgICAgIGlmIChvcHRpb25zLl9oKSB7XG4gICAgICAgICAgICB0aGlzLmlzUmVhZHkgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHByZXZMb2NhbGUgPSB0aGlzLmxvY2FsZTtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9JMThOX1NVUFBPUlQpIHtcbiAgICAgICAgICAgIHRoaXMubG9jYWxlID0gb3B0aW9ucy5sb2NhbGUgPT09IGZhbHNlID8gdGhpcy5kZWZhdWx0TG9jYWxlIDogb3B0aW9ucy5sb2NhbGUgfHwgdGhpcy5sb2NhbGU7XG4gICAgICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMubG9jYWxlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMubG9jYWxlID0gdGhpcy5sb2NhbGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBwYXJzZWRBcyA9ICgwLCBfcGFyc2VSZWxhdGl2ZVVybCkucGFyc2VSZWxhdGl2ZVVybChoYXNCYXNlUGF0aChhcykgPyBkZWxCYXNlUGF0aChhcykgOiBhcyk7XG4gICAgICAgICAgICBjb25zdCBsb2NhbGVQYXRoUmVzdWx0ID0gKDAsIF9ub3JtYWxpemVMb2NhbGVQYXRoKS5ub3JtYWxpemVMb2NhbGVQYXRoKHBhcnNlZEFzLnBhdGhuYW1lLCB0aGlzLmxvY2FsZXMpO1xuICAgICAgICAgICAgaWYgKGxvY2FsZVBhdGhSZXN1bHQuZGV0ZWN0ZWRMb2NhbGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvY2FsZSA9IGxvY2FsZVBhdGhSZXN1bHQuZGV0ZWN0ZWRMb2NhbGU7XG4gICAgICAgICAgICAgICAgcGFyc2VkQXMucGF0aG5hbWUgPSBhZGRCYXNlUGF0aChwYXJzZWRBcy5wYXRobmFtZSk7XG4gICAgICAgICAgICAgICAgYXMgPSAoMCwgX3V0aWxzKS5mb3JtYXRXaXRoVmFsaWRhdGlvbihwYXJzZWRBcyk7XG4gICAgICAgICAgICAgICAgdXJsID0gYWRkQmFzZVBhdGgoKDAsIF9ub3JtYWxpemVMb2NhbGVQYXRoKS5ub3JtYWxpemVMb2NhbGVQYXRoKGhhc0Jhc2VQYXRoKHVybCkgPyBkZWxCYXNlUGF0aCh1cmwpIDogdXJsLCB0aGlzLmxvY2FsZXMpLnBhdGhuYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBkaWROYXZpZ2F0ZSA9IGZhbHNlO1xuICAgICAgICAgICAgLy8gd2UgbmVlZCB0byB3cmFwIHRoaXMgaW4gdGhlIGVudiBjaGVjayBhZ2FpbiBzaW5jZSByZWdlbmVyYXRvciBydW50aW1lXG4gICAgICAgICAgICAvLyBtb3ZlcyB0aGlzIG9uIGl0cyBvd24gZHVlIHRvIHRoZSByZXR1cm5cbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgICAgICAgICAgICAgdmFyIHJlZjtcbiAgICAgICAgICAgICAgICAvLyBpZiB0aGUgbG9jYWxlIGlzbid0IGNvbmZpZ3VyZWQgaGFyZCBuYXZpZ2F0ZSB0byBzaG93IDQwNCBwYWdlXG4gICAgICAgICAgICAgICAgaWYgKCEoKHJlZiA9IHRoaXMubG9jYWxlcykgPT09IG51bGwgfHwgcmVmID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZWYuaW5jbHVkZXModGhpcy5sb2NhbGUpKSkge1xuICAgICAgICAgICAgICAgICAgICBwYXJzZWRBcy5wYXRobmFtZSA9IGFkZExvY2FsZShwYXJzZWRBcy5wYXRobmFtZSwgdGhpcy5sb2NhbGUpO1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICgwLCBfdXRpbHMpLmZvcm1hdFdpdGhWYWxpZGF0aW9uKHBhcnNlZEFzKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyB3YXMgcHJldmlvdXNseSBhIHJldHVybiBidXQgd2FzIHJlbW92ZWQgaW4gZmF2b3JcbiAgICAgICAgICAgICAgICAgICAgLy8gb2YgYmV0dGVyIGRlYWQgY29kZSBlbGltaW5hdGlvbiB3aXRoIHJlZ2VuZXJhdG9yIHJ1bnRpbWVcbiAgICAgICAgICAgICAgICAgICAgZGlkTmF2aWdhdGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGRldGVjdGVkRG9tYWluID0gZGV0ZWN0RG9tYWluTG9jYWxlKHRoaXMuZG9tYWluTG9jYWxlcywgdW5kZWZpbmVkLCB0aGlzLmxvY2FsZSk7XG4gICAgICAgICAgICAvLyB3ZSBuZWVkIHRvIHdyYXAgdGhpcyBpbiB0aGUgZW52IGNoZWNrIGFnYWluIHNpbmNlIHJlZ2VuZXJhdG9yIHJ1bnRpbWVcbiAgICAgICAgICAgIC8vIG1vdmVzIHRoaXMgb24gaXRzIG93biBkdWUgdG8gdGhlIHJldHVyblxuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9JMThOX1NVUFBPUlQpIHtcbiAgICAgICAgICAgICAgICAvLyBpZiB3ZSBhcmUgbmF2aWdhdGluZyB0byBhIGRvbWFpbiBsb2NhbGUgZW5zdXJlIHdlIHJlZGlyZWN0IHRvIHRoZVxuICAgICAgICAgICAgICAgIC8vIGNvcnJlY3QgZG9tYWluXG4gICAgICAgICAgICAgICAgaWYgKCFkaWROYXZpZ2F0ZSAmJiBkZXRlY3RlZERvbWFpbiAmJiB0aGlzLmlzTG9jYWxlRG9tYWluICYmIHNlbGYubG9jYXRpb24uaG9zdG5hbWUgIT09IGRldGVjdGVkRG9tYWluLmRvbWFpbikge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhc05vQmFzZVBhdGggPSBkZWxCYXNlUGF0aChhcyk7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYGh0dHAke2RldGVjdGVkRG9tYWluLmh0dHAgPyAnJyA6ICdzJ306Ly8ke2RldGVjdGVkRG9tYWluLmRvbWFpbn0ke2FkZEJhc2VQYXRoKGAke3RoaXMubG9jYWxlID09PSBkZXRlY3RlZERvbWFpbi5kZWZhdWx0TG9jYWxlID8gJycgOiBgLyR7dGhpcy5sb2NhbGV9YH0ke2FzTm9CYXNlUGF0aCA9PT0gJy8nID8gJycgOiBhc05vQmFzZVBhdGh9YCB8fCAnLycpfWA7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgd2FzIHByZXZpb3VzbHkgYSByZXR1cm4gYnV0IHdhcyByZW1vdmVkIGluIGZhdm9yXG4gICAgICAgICAgICAgICAgICAgIC8vIG9mIGJldHRlciBkZWFkIGNvZGUgZWxpbWluYXRpb24gd2l0aCByZWdlbmVyYXRvciBydW50aW1lXG4gICAgICAgICAgICAgICAgICAgIGRpZE5hdmlnYXRlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGlkTmF2aWdhdGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKCk9PntcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIW9wdGlvbnMuX2gpIHtcbiAgICAgICAgICAgIHRoaXMuaXNTc3IgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBtYXJraW5nIHJvdXRlIGNoYW5nZXMgYXMgYSBuYXZpZ2F0aW9uIHN0YXJ0IGVudHJ5XG4gICAgICAgIGlmIChfdXRpbHMuU1QpIHtcbiAgICAgICAgICAgIHBlcmZvcm1hbmNlLm1hcmsoJ3JvdXRlQ2hhbmdlJyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyBzaGFsbG93ID1mYWxzZSAgfSA9IG9wdGlvbnM7XG4gICAgICAgIGNvbnN0IHJvdXRlUHJvcHMgPSB7XG4gICAgICAgICAgICBzaGFsbG93XG4gICAgICAgIH07XG4gICAgICAgIGlmICh0aGlzLl9pbkZsaWdodFJvdXRlKSB7XG4gICAgICAgICAgICB0aGlzLmFib3J0Q29tcG9uZW50TG9hZCh0aGlzLl9pbkZsaWdodFJvdXRlLCByb3V0ZVByb3BzKTtcbiAgICAgICAgfVxuICAgICAgICBhcyA9IGFkZEJhc2VQYXRoKGFkZExvY2FsZShoYXNCYXNlUGF0aChhcykgPyBkZWxCYXNlUGF0aChhcykgOiBhcywgb3B0aW9ucy5sb2NhbGUsIHRoaXMuZGVmYXVsdExvY2FsZSkpO1xuICAgICAgICBjb25zdCBjbGVhbmVkQXMgPSBkZWxMb2NhbGUoaGFzQmFzZVBhdGgoYXMpID8gZGVsQmFzZVBhdGgoYXMpIDogYXMsIHRoaXMubG9jYWxlKTtcbiAgICAgICAgdGhpcy5faW5GbGlnaHRSb3V0ZSA9IGFzO1xuICAgICAgICBsZXQgbG9jYWxlQ2hhbmdlID0gcHJldkxvY2FsZSAhPT0gdGhpcy5sb2NhbGU7XG4gICAgICAgIC8vIElmIHRoZSB1cmwgY2hhbmdlIGlzIG9ubHkgcmVsYXRlZCB0byBhIGhhc2ggY2hhbmdlXG4gICAgICAgIC8vIFdlIHNob3VsZCBub3QgcHJvY2VlZC4gV2Ugc2hvdWxkIG9ubHkgY2hhbmdlIHRoZSBzdGF0ZS5cbiAgICAgICAgLy8gV0FSTklORzogYF9oYCBpcyBhbiBpbnRlcm5hbCBvcHRpb24gZm9yIGhhbmRpbmcgTmV4dC5qcyBjbGllbnQtc2lkZVxuICAgICAgICAvLyBoeWRyYXRpb24uIFlvdXIgYXBwIHNob3VsZCBfbmV2ZXJfIHVzZSB0aGlzIHByb3BlcnR5LiBJdCBtYXkgY2hhbmdlIGF0XG4gICAgICAgIC8vIGFueSB0aW1lIHdpdGhvdXQgbm90aWNlLlxuICAgICAgICBpZiAoIW9wdGlvbnMuX2ggJiYgdGhpcy5vbmx5QUhhc2hDaGFuZ2UoY2xlYW5lZEFzKSAmJiAhbG9jYWxlQ2hhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLmFzUGF0aCA9IGNsZWFuZWRBcztcbiAgICAgICAgICAgIFJvdXRlci5ldmVudHMuZW1pdCgnaGFzaENoYW5nZVN0YXJ0JywgYXMsIHJvdXRlUHJvcHMpO1xuICAgICAgICAgICAgLy8gVE9ETzogZG8gd2UgbmVlZCB0aGUgcmVzb2x2ZWQgaHJlZiB3aGVuIG9ubHkgYSBoYXNoIGNoYW5nZT9cbiAgICAgICAgICAgIHRoaXMuY2hhbmdlU3RhdGUobWV0aG9kLCB1cmwsIGFzLCBvcHRpb25zKTtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsVG9IYXNoKGNsZWFuZWRBcyk7XG4gICAgICAgICAgICB0aGlzLm5vdGlmeSh0aGlzLmNvbXBvbmVudHNbdGhpcy5yb3V0ZV0sIG51bGwpO1xuICAgICAgICAgICAgUm91dGVyLmV2ZW50cy5lbWl0KCdoYXNoQ2hhbmdlQ29tcGxldGUnLCBhcywgcm91dGVQcm9wcyk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgcGFyc2VkID0gKDAsIF9wYXJzZVJlbGF0aXZlVXJsKS5wYXJzZVJlbGF0aXZlVXJsKHVybCk7XG4gICAgICAgIGxldCB7IHBhdGhuYW1lICwgcXVlcnkgIH0gPSBwYXJzZWQ7XG4gICAgICAgIC8vIFRoZSBidWlsZCBtYW5pZmVzdCBuZWVkcyB0byBiZSBsb2FkZWQgYmVmb3JlIGF1dG8tc3RhdGljIGR5bmFtaWMgcGFnZXNcbiAgICAgICAgLy8gZ2V0IHRoZWlyIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gYWxsb3cgZW5zdXJpbmcgdGhleSBjYW4gYmUgcGFyc2VkIHByb3Blcmx5XG4gICAgICAgIC8vIHdoZW4gcmV3cml0dGVuIHRvXG4gICAgICAgIGxldCBwYWdlcywgcmV3cml0ZXM7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBbcGFnZXMsIHsgX19yZXdyaXRlczogcmV3cml0ZXMgIH1dID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgICAgICAgICAgIHRoaXMucGFnZUxvYWRlci5nZXRQYWdlTGlzdCgpLFxuICAgICAgICAgICAgICAgICgwLCBfcm91dGVMb2FkZXIpLmdldENsaWVudEJ1aWxkTWFuaWZlc3QoKSxcbiAgICAgICAgICAgICAgICB0aGlzLnBhZ2VMb2FkZXIuZ2V0TWlkZGxld2FyZUxpc3QoKSwgXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAvLyBJZiB3ZSBmYWlsIHRvIHJlc29sdmUgdGhlIHBhZ2UgbGlzdCBvciBjbGllbnQtYnVpbGQgbWFuaWZlc3QsIHdlIG11c3RcbiAgICAgICAgICAgIC8vIGRvIGEgc2VydmVyLXNpZGUgdHJhbnNpdGlvbjpcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYXM7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYgYXNrZWQgdG8gY2hhbmdlIHRoZSBjdXJyZW50IFVSTCB3ZSBzaG91bGQgcmVsb2FkIHRoZSBjdXJyZW50IHBhZ2VcbiAgICAgICAgLy8gKG5vdCBsb2NhdGlvbi5yZWxvYWQoKSBidXQgcmVsb2FkIGdldEluaXRpYWxQcm9wcyBhbmQgb3RoZXIgTmV4dC5qcyBzdHVmZnMpXG4gICAgICAgIC8vIFdlIGFsc28gbmVlZCB0byBzZXQgdGhlIG1ldGhvZCA9IHJlcGxhY2VTdGF0ZSBhbHdheXNcbiAgICAgICAgLy8gYXMgdGhpcyBzaG91bGQgbm90IGdvIGludG8gdGhlIGhpc3RvcnkgKFRoYXQncyBob3cgYnJvd3NlcnMgd29yaylcbiAgICAgICAgLy8gV2Ugc2hvdWxkIGNvbXBhcmUgdGhlIG5ldyBhc1BhdGggdG8gdGhlIGN1cnJlbnQgYXNQYXRoLCBub3QgdGhlIHVybFxuICAgICAgICBpZiAoIXRoaXMudXJsSXNOZXcoY2xlYW5lZEFzKSAmJiAhbG9jYWxlQ2hhbmdlKSB7XG4gICAgICAgICAgICBtZXRob2QgPSAncmVwbGFjZVN0YXRlJztcbiAgICAgICAgfVxuICAgICAgICAvLyB3ZSBuZWVkIHRvIHJlc29sdmUgdGhlIGFzIHZhbHVlIHVzaW5nIHJld3JpdGVzIGZvciBkeW5hbWljIFNTR1xuICAgICAgICAvLyBwYWdlcyB0byBhbGxvdyBidWlsZGluZyB0aGUgZGF0YSBVUkwgY29ycmVjdGx5XG4gICAgICAgIGxldCByZXNvbHZlZEFzID0gYXM7XG4gICAgICAgIC8vIHVybCBhbmQgYXMgc2hvdWxkIGFsd2F5cyBiZSBwcmVmaXhlZCB3aXRoIGJhc2VQYXRoIGJ5IHRoaXNcbiAgICAgICAgLy8gcG9pbnQgYnkgZWl0aGVyIG5leHQvbGluayBvciByb3V0ZXIucHVzaC9yZXBsYWNlIHNvIHN0cmlwIHRoZVxuICAgICAgICAvLyBiYXNlUGF0aCBmcm9tIHRoZSBwYXRobmFtZSB0byBtYXRjaCB0aGUgcGFnZXMgZGlyIDEtdG8tMVxuICAgICAgICBwYXRobmFtZSA9IHBhdGhuYW1lID8gKDAsIF9ub3JtYWxpemVUcmFpbGluZ1NsYXNoKS5yZW1vdmVQYXRoVHJhaWxpbmdTbGFzaChkZWxCYXNlUGF0aChwYXRobmFtZSkpIDogcGF0aG5hbWU7XG4gICAgICAgIGlmIChzaG91bGRSZXNvbHZlSHJlZiAmJiBwYXRobmFtZSAhPT0gJy9fZXJyb3InKSB7XG4gICAgICAgICAgICBvcHRpb25zLl9zaG91bGRSZXNvbHZlSHJlZiA9IHRydWU7XG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0hBU19SRVdSSVRFUyAmJiBhcy5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXdyaXRlc1Jlc3VsdCA9ICgwLCBfcmVzb2x2ZVJld3JpdGVzKS5kZWZhdWx0KGFkZEJhc2VQYXRoKGFkZExvY2FsZShjbGVhbmVkQXMsIHRoaXMubG9jYWxlKSksIHBhZ2VzLCByZXdyaXRlcywgcXVlcnksIChwKT0+cmVzb2x2ZUR5bmFtaWNSb3V0ZShwLCBwYWdlcylcbiAgICAgICAgICAgICAgICAsIHRoaXMubG9jYWxlcyk7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZWRBcyA9IHJld3JpdGVzUmVzdWx0LmFzUGF0aDtcbiAgICAgICAgICAgICAgICBpZiAocmV3cml0ZXNSZXN1bHQubWF0Y2hlZFBhZ2UgJiYgcmV3cml0ZXNSZXN1bHQucmVzb2x2ZWRIcmVmKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoaXMgZGlyZWN0bHkgbWF0Y2hlcyBhIHBhZ2Ugd2UgbmVlZCB0byB1cGRhdGUgdGhlIGhyZWYgdG9cbiAgICAgICAgICAgICAgICAgICAgLy8gYWxsb3cgdGhlIGNvcnJlY3QgcGFnZSBjaHVuayB0byBiZSBsb2FkZWRcbiAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWUgPSByZXdyaXRlc1Jlc3VsdC5yZXNvbHZlZEhyZWY7XG4gICAgICAgICAgICAgICAgICAgIHBhcnNlZC5wYXRobmFtZSA9IGFkZEJhc2VQYXRoKHBhdGhuYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdXJsID0gKDAsIF91dGlscykuZm9ybWF0V2l0aFZhbGlkYXRpb24ocGFyc2VkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHBhcnNlZC5wYXRobmFtZSA9IHJlc29sdmVEeW5hbWljUm91dGUocGF0aG5hbWUsIHBhZ2VzKTtcbiAgICAgICAgICAgICAgICBpZiAocGFyc2VkLnBhdGhuYW1lICE9PSBwYXRobmFtZSkge1xuICAgICAgICAgICAgICAgICAgICBwYXRobmFtZSA9IHBhcnNlZC5wYXRobmFtZTtcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VkLnBhdGhuYW1lID0gYWRkQmFzZVBhdGgocGF0aG5hbWUpO1xuICAgICAgICAgICAgICAgICAgICB1cmwgPSAoMCwgX3V0aWxzKS5mb3JtYXRXaXRoVmFsaWRhdGlvbihwYXJzZWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzTG9jYWxVUkwoYXMpKSB7XG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBocmVmOiBcIiR7dXJsfVwiIGFuZCBhczogXCIke2FzfVwiLCByZWNlaXZlZCByZWxhdGl2ZSBocmVmIGFuZCBleHRlcm5hbCBhc2AgKyBgXFxuU2VlIG1vcmUgaW5mbzogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvaW52YWxpZC1yZWxhdGl2ZS11cmwtZXh0ZXJuYWwtYXNgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYXM7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmVzb2x2ZWRBcyA9IGRlbExvY2FsZShkZWxCYXNlUGF0aChyZXNvbHZlZEFzKSwgdGhpcy5sb2NhbGUpO1xuICAgICAgICBjb25zdCBlZmZlY3QgPSBhd2FpdCB0aGlzLl9wcmVmbGlnaHRSZXF1ZXN0KHtcbiAgICAgICAgICAgIGFzLFxuICAgICAgICAgICAgY2FjaGU6IHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicsXG4gICAgICAgICAgICBwYWdlcyxcbiAgICAgICAgICAgIHBhdGhuYW1lLFxuICAgICAgICAgICAgcXVlcnlcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChlZmZlY3QudHlwZSA9PT0gJ3Jld3JpdGUnKSB7XG4gICAgICAgICAgICBxdWVyeSA9IHtcbiAgICAgICAgICAgICAgICAuLi5xdWVyeSxcbiAgICAgICAgICAgICAgICAuLi5lZmZlY3QucGFyc2VkQXMucXVlcnlcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZXNvbHZlZEFzID0gZWZmZWN0LmFzUGF0aDtcbiAgICAgICAgICAgIHBhdGhuYW1lID0gZWZmZWN0LnJlc29sdmVkSHJlZjtcbiAgICAgICAgICAgIHBhcnNlZC5wYXRobmFtZSA9IGVmZmVjdC5yZXNvbHZlZEhyZWY7XG4gICAgICAgICAgICB1cmwgPSAoMCwgX3V0aWxzKS5mb3JtYXRXaXRoVmFsaWRhdGlvbihwYXJzZWQpO1xuICAgICAgICB9IGVsc2UgaWYgKGVmZmVjdC50eXBlID09PSAncmVkaXJlY3QnICYmIGVmZmVjdC5uZXdBcykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2hhbmdlKG1ldGhvZCwgZWZmZWN0Lm5ld1VybCwgZWZmZWN0Lm5ld0FzLCBvcHRpb25zKTtcbiAgICAgICAgfSBlbHNlIGlmIChlZmZlY3QudHlwZSA9PT0gJ3JlZGlyZWN0JyAmJiBlZmZlY3QuZGVzdGluYXRpb24pIHtcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gZWZmZWN0LmRlc3RpbmF0aW9uO1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKCgpPT57XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChlZmZlY3QudHlwZSA9PT0gJ3JlZnJlc2gnKSB7XG4gICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGFzO1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKCgpPT57XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByb3V0ZSA9ICgwLCBfbm9ybWFsaXplVHJhaWxpbmdTbGFzaCkucmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2gocGF0aG5hbWUpO1xuICAgICAgICBpZiAoKDAsIF9pc0R5bmFtaWMpLmlzRHluYW1pY1JvdXRlKHJvdXRlKSkge1xuICAgICAgICAgICAgY29uc3QgcGFyc2VkQXMgPSAoMCwgX3BhcnNlUmVsYXRpdmVVcmwpLnBhcnNlUmVsYXRpdmVVcmwocmVzb2x2ZWRBcyk7XG4gICAgICAgICAgICBjb25zdCBhc1BhdGhuYW1lID0gcGFyc2VkQXMucGF0aG5hbWU7XG4gICAgICAgICAgICBjb25zdCByb3V0ZVJlZ2V4ID0gKDAsIF9yb3V0ZVJlZ2V4KS5nZXRSb3V0ZVJlZ2V4KHJvdXRlKTtcbiAgICAgICAgICAgIGNvbnN0IHJvdXRlTWF0Y2ggPSAoMCwgX3JvdXRlTWF0Y2hlcikuZ2V0Um91dGVNYXRjaGVyKHJvdXRlUmVnZXgpKGFzUGF0aG5hbWUpO1xuICAgICAgICAgICAgY29uc3Qgc2hvdWxkSW50ZXJwb2xhdGUgPSByb3V0ZSA9PT0gYXNQYXRobmFtZTtcbiAgICAgICAgICAgIGNvbnN0IGludGVycG9sYXRlZEFzID0gc2hvdWxkSW50ZXJwb2xhdGUgPyBpbnRlcnBvbGF0ZUFzKHJvdXRlLCBhc1BhdGhuYW1lLCBxdWVyeSkgOiB7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKCFyb3V0ZU1hdGNoIHx8IHNob3VsZEludGVycG9sYXRlICYmICFpbnRlcnBvbGF0ZWRBcy5yZXN1bHQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtaXNzaW5nUGFyYW1zID0gT2JqZWN0LmtleXMocm91dGVSZWdleC5ncm91cHMpLmZpbHRlcigocGFyYW0pPT4hcXVlcnlbcGFyYW1dXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpZiAobWlzc2luZ1BhcmFtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYCR7c2hvdWxkSW50ZXJwb2xhdGUgPyBgSW50ZXJwb2xhdGluZyBocmVmYCA6IGBNaXNtYXRjaGluZyBcXGBhc1xcYCBhbmQgXFxgaHJlZlxcYGB9IGZhaWxlZCB0byBtYW51YWxseSBwcm92aWRlIGAgKyBgdGhlIHBhcmFtczogJHttaXNzaW5nUGFyYW1zLmpvaW4oJywgJyl9IGluIHRoZSBcXGBocmVmXFxgJ3MgXFxgcXVlcnlcXGBgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoKHNob3VsZEludGVycG9sYXRlID8gYFRoZSBwcm92aWRlZCBcXGBocmVmXFxgICgke3VybH0pIHZhbHVlIGlzIG1pc3NpbmcgcXVlcnkgdmFsdWVzICgke21pc3NpbmdQYXJhbXMuam9pbignLCAnKX0pIHRvIGJlIGludGVycG9sYXRlZCBwcm9wZXJseS4gYCA6IGBUaGUgcHJvdmlkZWQgXFxgYXNcXGAgdmFsdWUgKCR7YXNQYXRobmFtZX0pIGlzIGluY29tcGF0aWJsZSB3aXRoIHRoZSBcXGBocmVmXFxgIHZhbHVlICgke3JvdXRlfSkuIGApICsgYFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvJHtzaG91bGRJbnRlcnBvbGF0ZSA/ICdocmVmLWludGVycG9sYXRpb24tZmFpbGVkJyA6ICdpbmNvbXBhdGlibGUtaHJlZi1hcyd9YCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChzaG91bGRJbnRlcnBvbGF0ZSkge1xuICAgICAgICAgICAgICAgIGFzID0gKDAsIF91dGlscykuZm9ybWF0V2l0aFZhbGlkYXRpb24oT2JqZWN0LmFzc2lnbih7XG4gICAgICAgICAgICAgICAgfSwgcGFyc2VkQXMsIHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWU6IGludGVycG9sYXRlZEFzLnJlc3VsdCxcbiAgICAgICAgICAgICAgICAgICAgcXVlcnk6IG9taXRQYXJtc0Zyb21RdWVyeShxdWVyeSwgaW50ZXJwb2xhdGVkQXMucGFyYW1zKVxuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gTWVyZ2UgcGFyYW1zIGludG8gYHF1ZXJ5YCwgb3ZlcndyaXRpbmcgYW55IHNwZWNpZmllZCBpbiBzZWFyY2hcbiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHF1ZXJ5LCByb3V0ZU1hdGNoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBSb3V0ZXIuZXZlbnRzLmVtaXQoJ3JvdXRlQ2hhbmdlU3RhcnQnLCBhcywgcm91dGVQcm9wcyk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB2YXIgcmVmLCByZWYxO1xuICAgICAgICAgICAgbGV0IHJvdXRlSW5mbyA9IGF3YWl0IHRoaXMuZ2V0Um91dGVJbmZvKHJvdXRlLCBwYXRobmFtZSwgcXVlcnksIGFzLCByZXNvbHZlZEFzLCByb3V0ZVByb3BzKTtcbiAgICAgICAgICAgIGxldCB7IGVycm9yICwgcHJvcHMgLCBfX05fU1NHICwgX19OX1NTUCAgfSA9IHJvdXRlSW5mbztcbiAgICAgICAgICAgIC8vIGhhbmRsZSByZWRpcmVjdCBvbiBjbGllbnQtdHJhbnNpdGlvblxuICAgICAgICAgICAgaWYgKChfX05fU1NHIHx8IF9fTl9TU1ApICYmIHByb3BzKSB7XG4gICAgICAgICAgICAgICAgaWYgKHByb3BzLnBhZ2VQcm9wcyAmJiBwcm9wcy5wYWdlUHJvcHMuX19OX1JFRElSRUNUKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlc3RpbmF0aW9uID0gcHJvcHMucGFnZVByb3BzLl9fTl9SRURJUkVDVDtcbiAgICAgICAgICAgICAgICAgICAgLy8gY2hlY2sgaWYgZGVzdGluYXRpb24gaXMgaW50ZXJuYWwgKHJlc29sdmVzIHRvIGEgcGFnZSkgYW5kIGF0dGVtcHRcbiAgICAgICAgICAgICAgICAgICAgLy8gY2xpZW50LW5hdmlnYXRpb24gaWYgaXQgaXMgZmFsbGluZyBiYWNrIHRvIGhhcmQgbmF2aWdhdGlvbiBpZlxuICAgICAgICAgICAgICAgICAgICAvLyBpdCdzIG5vdFxuICAgICAgICAgICAgICAgICAgICBpZiAoZGVzdGluYXRpb24uc3RhcnRzV2l0aCgnLycpICYmIHByb3BzLnBhZ2VQcm9wcy5fX05fUkVESVJFQ1RfQkFTRV9QQVRIICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyc2VkSHJlZiA9ICgwLCBfcGFyc2VSZWxhdGl2ZVVybCkucGFyc2VSZWxhdGl2ZVVybChkZXN0aW5hdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJzZWRIcmVmLnBhdGhuYW1lID0gcmVzb2x2ZUR5bmFtaWNSb3V0ZShwYXJzZWRIcmVmLnBhdGhuYW1lLCBwYWdlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHVybDogbmV3VXJsICwgYXM6IG5ld0FzICB9ID0gcHJlcGFyZVVybEFzKHRoaXMsIGRlc3RpbmF0aW9uLCBkZXN0aW5hdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jaGFuZ2UobWV0aG9kLCBuZXdVcmwsIG5ld0FzLCBvcHRpb25zKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGRlc3RpbmF0aW9uO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKCk9PntcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuaXNQcmV2aWV3ID0gISFwcm9wcy5fX05fUFJFVklFVztcbiAgICAgICAgICAgICAgICAvLyBoYW5kbGUgU1NHIGRhdGEgNDA0XG4gICAgICAgICAgICAgICAgaWYgKHByb3BzLm5vdEZvdW5kID09PSBTU0dfREFUQV9OT1RfRk9VTkQpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG5vdEZvdW5kUm91dGU7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmZldGNoQ29tcG9uZW50KCcvNDA0Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBub3RGb3VuZFJvdXRlID0gJy80MDQnO1xuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChfKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBub3RGb3VuZFJvdXRlID0gJy9fZXJyb3InO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJvdXRlSW5mbyA9IGF3YWl0IHRoaXMuZ2V0Um91dGVJbmZvKG5vdEZvdW5kUm91dGUsIG5vdEZvdW5kUm91dGUsIHF1ZXJ5LCBhcywgcmVzb2x2ZWRBcywge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2hhbGxvdzogZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgUm91dGVyLmV2ZW50cy5lbWl0KCdiZWZvcmVIaXN0b3J5Q2hhbmdlJywgYXMsIHJvdXRlUHJvcHMpO1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VTdGF0ZShtZXRob2QsIHVybCwgYXMsIG9wdGlvbnMpO1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMuX2ggJiYgcGF0aG5hbWUgPT09ICcvX2Vycm9yJyAmJiAoKHJlZiA9IHNlbGYuX19ORVhUX0RBVEFfXy5wcm9wcykgPT09IG51bGwgfHwgcmVmID09PSB2b2lkIDAgPyB2b2lkIDAgOiAocmVmMSA9IHJlZi5wYWdlUHJvcHMpID09PSBudWxsIHx8IHJlZjEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlZjEuc3RhdHVzQ29kZSkgPT09IDUwMCAmJiAocHJvcHMgPT09IG51bGwgfHwgcHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHByb3BzLnBhZ2VQcm9wcykpIHtcbiAgICAgICAgICAgICAgICAvLyBlbnN1cmUgc3RhdHVzQ29kZSBpcyBzdGlsbCBjb3JyZWN0IGZvciBzdGF0aWMgNTAwIHBhZ2VcbiAgICAgICAgICAgICAgICAvLyB3aGVuIHVwZGF0aW5nIHF1ZXJ5IGluZm9ybWF0aW9uXG4gICAgICAgICAgICAgICAgcHJvcHMucGFnZVByb3BzLnN0YXR1c0NvZGUgPSA1MDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBzaGFsbG93IHJvdXRpbmcgaXMgb25seSBhbGxvd2VkIGZvciBzYW1lIHBhZ2UgVVJMIGNoYW5nZXMuXG4gICAgICAgICAgICBjb25zdCBpc1ZhbGlkU2hhbGxvd1JvdXRlID0gb3B0aW9ucy5zaGFsbG93ICYmIHRoaXMucm91dGUgPT09IHJvdXRlO1xuICAgICAgICAgICAgdmFyIF9zY3JvbGw7XG4gICAgICAgICAgICBjb25zdCBzaG91bGRTY3JvbGwgPSAoX3Njcm9sbCA9IG9wdGlvbnMuc2Nyb2xsKSAhPT0gbnVsbCAmJiBfc2Nyb2xsICE9PSB2b2lkIDAgPyBfc2Nyb2xsIDogIWlzVmFsaWRTaGFsbG93Um91dGU7XG4gICAgICAgICAgICBjb25zdCByZXNldFNjcm9sbCA9IHNob3VsZFNjcm9sbCA/IHtcbiAgICAgICAgICAgICAgICB4OiAwLFxuICAgICAgICAgICAgICAgIHk6IDBcbiAgICAgICAgICAgIH0gOiBudWxsO1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5zZXQocm91dGUsIHBhdGhuYW1lLCBxdWVyeSwgY2xlYW5lZEFzLCByb3V0ZUluZm8sIGZvcmNlZFNjcm9sbCAhPT0gbnVsbCAmJiBmb3JjZWRTY3JvbGwgIT09IHZvaWQgMCA/IGZvcmNlZFNjcm9sbCA6IHJlc2V0U2Nyb2xsKS5jYXRjaCgoZSk9PntcbiAgICAgICAgICAgICAgICBpZiAoZS5jYW5jZWxsZWQpIGVycm9yID0gZXJyb3IgfHwgZTtcbiAgICAgICAgICAgICAgICBlbHNlIHRocm93IGU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICAgIFJvdXRlci5ldmVudHMuZW1pdCgncm91dGVDaGFuZ2VFcnJvcicsIGVycm9yLCBjbGVhbmVkQXMsIHJvdXRlUHJvcHMpO1xuICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9JMThOX1NVUFBPUlQpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5sb2NhbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmxhbmcgPSB0aGlzLmxvY2FsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBSb3V0ZXIuZXZlbnRzLmVtaXQoJ3JvdXRlQ2hhbmdlQ29tcGxldGUnLCBhcywgcm91dGVQcm9wcyk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBjYXRjaCAoZXJyMSkge1xuICAgICAgICAgICAgaWYgKCgwLCBfaXNFcnJvcikuZGVmYXVsdChlcnIxKSAmJiBlcnIxLmNhbmNlbGxlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IGVycjE7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY2hhbmdlU3RhdGUobWV0aG9kLCB1cmwsIGFzLCBvcHRpb25zID0ge1xuICAgIH0pIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygd2luZG93Lmhpc3RvcnkgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihgV2FybmluZzogd2luZG93Lmhpc3RvcnkgaXMgbm90IGF2YWlsYWJsZS5gKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZW9mIHdpbmRvdy5oaXN0b3J5W21ldGhvZF0gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihgV2FybmluZzogd2luZG93Lmhpc3RvcnkuJHttZXRob2R9IGlzIG5vdCBhdmFpbGFibGVgKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1ldGhvZCAhPT0gJ3B1c2hTdGF0ZScgfHwgKDAsIF91dGlscykuZ2V0VVJMKCkgIT09IGFzKSB7XG4gICAgICAgICAgICB0aGlzLl9zaGFsbG93ID0gb3B0aW9ucy5zaGFsbG93O1xuICAgICAgICAgICAgd2luZG93Lmhpc3RvcnlbbWV0aG9kXSh7XG4gICAgICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgICAgIGFzLFxuICAgICAgICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICAgICAgICAgX19OOiB0cnVlLFxuICAgICAgICAgICAgICAgIGlkeDogdGhpcy5faWR4ID0gbWV0aG9kICE9PSAncHVzaFN0YXRlJyA/IHRoaXMuX2lkeCA6IHRoaXMuX2lkeCArIDFcbiAgICAgICAgICAgIH0sIC8vIE1vc3QgYnJvd3NlcnMgY3VycmVudGx5IGlnbm9yZXMgdGhpcyBwYXJhbWV0ZXIsIGFsdGhvdWdoIHRoZXkgbWF5IHVzZSBpdCBpbiB0aGUgZnV0dXJlLlxuICAgICAgICAgICAgLy8gUGFzc2luZyB0aGUgZW1wdHkgc3RyaW5nIGhlcmUgc2hvdWxkIGJlIHNhZmUgYWdhaW5zdCBmdXR1cmUgY2hhbmdlcyB0byB0aGUgbWV0aG9kLlxuICAgICAgICAgICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0hpc3RvcnkvcmVwbGFjZVN0YXRlXG4gICAgICAgICAgICAnJywgYXMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGFzeW5jIGhhbmRsZVJvdXRlSW5mb0Vycm9yKGVyciwgcGF0aG5hbWUsIHF1ZXJ5LCBhcywgcm91dGVQcm9wcywgbG9hZEVycm9yRmFpbCkge1xuICAgICAgICBpZiAoZXJyLmNhbmNlbGxlZCkge1xuICAgICAgICAgICAgLy8gYnViYmxlIHVwIGNhbmNlbGxhdGlvbiBlcnJvcnNcbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoKDAsIF9yb3V0ZUxvYWRlcikuaXNBc3NldEVycm9yKGVycikgfHwgbG9hZEVycm9yRmFpbCkge1xuICAgICAgICAgICAgUm91dGVyLmV2ZW50cy5lbWl0KCdyb3V0ZUNoYW5nZUVycm9yJywgZXJyLCBhcywgcm91dGVQcm9wcyk7XG4gICAgICAgICAgICAvLyBJZiB3ZSBjYW4ndCBsb2FkIHRoZSBwYWdlIGl0IGNvdWxkIGJlIG9uZSBvZiBmb2xsb3dpbmcgcmVhc29uc1xuICAgICAgICAgICAgLy8gIDEuIFBhZ2UgZG9lc24ndCBleGlzdHNcbiAgICAgICAgICAgIC8vICAyLiBQYWdlIGRvZXMgZXhpc3QgaW4gYSBkaWZmZXJlbnQgem9uZVxuICAgICAgICAgICAgLy8gIDMuIEludGVybmFsIGVycm9yIHdoaWxlIGxvYWRpbmcgdGhlIHBhZ2VcbiAgICAgICAgICAgIC8vIFNvLCBkb2luZyBhIGhhcmQgcmVsb2FkIGlzIHRoZSBwcm9wZXIgd2F5IHRvIGRlYWwgd2l0aCB0aGlzLlxuICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBhcztcbiAgICAgICAgICAgIC8vIENoYW5naW5nIHRoZSBVUkwgZG9lc24ndCBibG9jayBleGVjdXRpbmcgdGhlIGN1cnJlbnQgY29kZSBwYXRoLlxuICAgICAgICAgICAgLy8gU28gbGV0J3MgdGhyb3cgYSBjYW5jZWxsYXRpb24gZXJyb3Igc3RvcCB0aGUgcm91dGluZyBsb2dpYy5cbiAgICAgICAgICAgIHRocm93IGJ1aWxkQ2FuY2VsbGF0aW9uRXJyb3IoKTtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgbGV0IENvbXBvbmVudDtcbiAgICAgICAgICAgIGxldCBzdHlsZVNoZWV0cztcbiAgICAgICAgICAgIGxldCBwcm9wcztcbiAgICAgICAgICAgIGlmICh0eXBlb2YgQ29tcG9uZW50ID09PSAndW5kZWZpbmVkJyB8fCB0eXBlb2Ygc3R5bGVTaGVldHMgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgKHsgcGFnZTogQ29tcG9uZW50ICwgc3R5bGVTaGVldHMgIH0gPSBhd2FpdCB0aGlzLmZldGNoQ29tcG9uZW50KCcvX2Vycm9yJykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgcm91dGVJbmZvID0ge1xuICAgICAgICAgICAgICAgIHByb3BzLFxuICAgICAgICAgICAgICAgIENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBzdHlsZVNoZWV0cyxcbiAgICAgICAgICAgICAgICBlcnIsXG4gICAgICAgICAgICAgICAgZXJyb3I6IGVyclxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmICghcm91dGVJbmZvLnByb3BzKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgcm91dGVJbmZvLnByb3BzID0gYXdhaXQgdGhpcy5nZXRJbml0aWFsUHJvcHMoQ29tcG9uZW50LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlcnIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRobmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGdpcEVycikge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBpbiBlcnJvciBwYWdlIGBnZXRJbml0aWFsUHJvcHNgOiAnLCBnaXBFcnIpO1xuICAgICAgICAgICAgICAgICAgICByb3V0ZUluZm8ucHJvcHMgPSB7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJvdXRlSW5mbztcbiAgICAgICAgfSBjYXRjaCAocm91dGVJbmZvRXJyKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5oYW5kbGVSb3V0ZUluZm9FcnJvcigoMCwgX2lzRXJyb3IpLmRlZmF1bHQocm91dGVJbmZvRXJyKSA/IHJvdXRlSW5mb0VyciA6IG5ldyBFcnJvcihyb3V0ZUluZm9FcnIgKyAnJyksIHBhdGhuYW1lLCBxdWVyeSwgYXMsIHJvdXRlUHJvcHMsIHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGFzeW5jIGdldFJvdXRlSW5mbyhyb3V0ZSwgcGF0aG5hbWUsIHF1ZXJ5LCBhcywgcmVzb2x2ZWRBcywgcm91dGVQcm9wcykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgZXhpc3RpbmdSb3V0ZUluZm8gPSB0aGlzLmNvbXBvbmVudHNbcm91dGVdO1xuICAgICAgICAgICAgaWYgKHJvdXRlUHJvcHMuc2hhbGxvdyAmJiBleGlzdGluZ1JvdXRlSW5mbyAmJiB0aGlzLnJvdXRlID09PSByb3V0ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBleGlzdGluZ1JvdXRlSW5mbztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBjYWNoZWRSb3V0ZUluZm8gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAvLyBjYW4gb25seSB1c2Ugbm9uLWluaXRpYWwgcm91dGUgaW5mb1xuICAgICAgICAgICAgLy8gY2Fubm90IHJldXNlIHJvdXRlIGluZm8gaW4gZGV2ZWxvcG1lbnQgc2luY2UgaXQgY2FuIGNoYW5nZSBhZnRlciBITVJcbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ2RldmVsb3BtZW50JyAmJiBleGlzdGluZ1JvdXRlSW5mbyAmJiAhKCdpbml0aWFsJyBpbiBleGlzdGluZ1JvdXRlSW5mbykpIHtcbiAgICAgICAgICAgICAgICBjYWNoZWRSb3V0ZUluZm8gPSBleGlzdGluZ1JvdXRlSW5mbztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHJvdXRlSW5mbyA9IGNhY2hlZFJvdXRlSW5mbyB8fCBhd2FpdCB0aGlzLmZldGNoQ29tcG9uZW50KHJvdXRlKS50aGVuKChyZXMpPT4oe1xuICAgICAgICAgICAgICAgICAgICBDb21wb25lbnQ6IHJlcy5wYWdlLFxuICAgICAgICAgICAgICAgICAgICBzdHlsZVNoZWV0czogcmVzLnN0eWxlU2hlZXRzLFxuICAgICAgICAgICAgICAgICAgICBfX05fU1NHOiByZXMubW9kLl9fTl9TU0csXG4gICAgICAgICAgICAgICAgICAgIF9fTl9TU1A6IHJlcy5tb2QuX19OX1NTUCxcbiAgICAgICAgICAgICAgICAgICAgX19OX1JTQzogISFyZXMucGFnZS5fX25leHRfcnNjX19cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IHsgQ29tcG9uZW50ICwgX19OX1NTRyAsIF9fTl9TU1AgLCBfX05fUlNDICB9ID0gcm91dGVJbmZvO1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGlzVmFsaWRFbGVtZW50VHlwZSAgfSA9IHJlcXVpcmUoJ3JlYWN0LWlzJyk7XG4gICAgICAgICAgICAgICAgaWYgKCFpc1ZhbGlkRWxlbWVudFR5cGUoQ29tcG9uZW50KSkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSBkZWZhdWx0IGV4cG9ydCBpcyBub3QgYSBSZWFjdCBDb21wb25lbnQgaW4gcGFnZTogXCIke3BhdGhuYW1lfVwiYCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IGRhdGFIcmVmO1xuICAgICAgICAgICAgaWYgKF9fTl9TU0cgfHwgX19OX1NTUCB8fCBfX05fUlNDKSB7XG4gICAgICAgICAgICAgICAgZGF0YUhyZWYgPSB0aGlzLnBhZ2VMb2FkZXIuZ2V0RGF0YUhyZWYoe1xuICAgICAgICAgICAgICAgICAgICBocmVmOiAoMCwgX3V0aWxzKS5mb3JtYXRXaXRoVmFsaWRhdGlvbih7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRobmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5XG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICBhc1BhdGg6IHJlc29sdmVkQXMsXG4gICAgICAgICAgICAgICAgICAgIHNzZzogX19OX1NTRyxcbiAgICAgICAgICAgICAgICAgICAgcnNjOiBfX05fUlNDLFxuICAgICAgICAgICAgICAgICAgICBsb2NhbGU6IHRoaXMubG9jYWxlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBwcm9wcyA9IGF3YWl0IHRoaXMuX2dldERhdGEoKCk9Pl9fTl9TU0cgfHwgX19OX1NTUCA/IGZldGNoTmV4dERhdGEoZGF0YUhyZWYsIHRoaXMuaXNTc3IsIGZhbHNlLCBfX05fU1NHID8gdGhpcy5zZGMgOiB0aGlzLnNkciwgISFfX05fU1NHICYmICF0aGlzLmlzUHJldmlldykgOiB0aGlzLmdldEluaXRpYWxQcm9wcyhDb21wb25lbnQsIC8vIHdlIHByb3ZpZGUgQXBwVHJlZSBsYXRlciBzbyB0aGlzIG5lZWRzIHRvIGJlIGBhbnlgXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwYXRobmFtZSxcbiAgICAgICAgICAgICAgICAgICAgcXVlcnksXG4gICAgICAgICAgICAgICAgICAgIGFzUGF0aDogYXMsXG4gICAgICAgICAgICAgICAgICAgIGxvY2FsZTogdGhpcy5sb2NhbGUsXG4gICAgICAgICAgICAgICAgICAgIGxvY2FsZXM6IHRoaXMubG9jYWxlcyxcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdExvY2FsZTogdGhpcy5kZWZhdWx0TG9jYWxlXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAoX19OX1JTQykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgZnJlc2ggLCBkYXRhICB9ID0gYXdhaXQgdGhpcy5fZ2V0RGF0YSgoKT0+dGhpcy5fZ2V0RmxpZ2h0RGF0YShkYXRhSHJlZilcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHByb3BzLnBhZ2VQcm9wcyA9IE9iamVjdC5hc3NpZ24ocHJvcHMucGFnZVByb3BzLCB7XG4gICAgICAgICAgICAgICAgICAgIF9fZmxpZ2h0X3NlcmlhbGl6ZWRfXzogZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgX19mbGlnaHRfZnJlc2hfXzogZnJlc2hcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJvdXRlSW5mby5wcm9wcyA9IHByb3BzO1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRzW3JvdXRlXSA9IHJvdXRlSW5mbztcbiAgICAgICAgICAgIHJldHVybiByb3V0ZUluZm87XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlUm91dGVJbmZvRXJyb3IoKDAsIF9pc0Vycm9yKS5kZWZhdWx0KGVycikgPyBlcnIgOiBuZXcgRXJyb3IoZXJyICsgJycpLCBwYXRobmFtZSwgcXVlcnksIGFzLCByb3V0ZVByb3BzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzZXQocm91dGUsIHBhdGhuYW1lLCBxdWVyeSwgYXMsIGRhdGEsIHJlc2V0U2Nyb2xsKSB7XG4gICAgICAgIHRoaXMuaXNGYWxsYmFjayA9IGZhbHNlO1xuICAgICAgICB0aGlzLnJvdXRlID0gcm91dGU7XG4gICAgICAgIHRoaXMucGF0aG5hbWUgPSBwYXRobmFtZTtcbiAgICAgICAgdGhpcy5xdWVyeSA9IHF1ZXJ5O1xuICAgICAgICB0aGlzLmFzUGF0aCA9IGFzO1xuICAgICAgICByZXR1cm4gdGhpcy5ub3RpZnkoZGF0YSwgcmVzZXRTY3JvbGwpO1xuICAgIH1cbiAgICAvKipcbiAgICogQ2FsbGJhY2sgdG8gZXhlY3V0ZSBiZWZvcmUgcmVwbGFjaW5nIHJvdXRlciBzdGF0ZVxuICAgKiBAcGFyYW0gY2IgY2FsbGJhY2sgdG8gYmUgZXhlY3V0ZWRcbiAgICovIGJlZm9yZVBvcFN0YXRlKGNiKSB7XG4gICAgICAgIHRoaXMuX2JwcyA9IGNiO1xuICAgIH1cbiAgICBvbmx5QUhhc2hDaGFuZ2UoYXMpIHtcbiAgICAgICAgaWYgKCF0aGlzLmFzUGF0aCkgcmV0dXJuIGZhbHNlO1xuICAgICAgICBjb25zdCBbb2xkVXJsTm9IYXNoLCBvbGRIYXNoXSA9IHRoaXMuYXNQYXRoLnNwbGl0KCcjJyk7XG4gICAgICAgIGNvbnN0IFtuZXdVcmxOb0hhc2gsIG5ld0hhc2hdID0gYXMuc3BsaXQoJyMnKTtcbiAgICAgICAgLy8gTWFrZXMgc3VyZSB3ZSBzY3JvbGwgdG8gdGhlIHByb3ZpZGVkIGhhc2ggaWYgdGhlIHVybC9oYXNoIGFyZSB0aGUgc2FtZVxuICAgICAgICBpZiAobmV3SGFzaCAmJiBvbGRVcmxOb0hhc2ggPT09IG5ld1VybE5vSGFzaCAmJiBvbGRIYXNoID09PSBuZXdIYXNoKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBJZiB0aGUgdXJscyBhcmUgY2hhbmdlLCB0aGVyZSdzIG1vcmUgdGhhbiBhIGhhc2ggY2hhbmdlXG4gICAgICAgIGlmIChvbGRVcmxOb0hhc2ggIT09IG5ld1VybE5vSGFzaCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIC8vIElmIHRoZSBoYXNoIGhhcyBjaGFuZ2VkLCB0aGVuIGl0J3MgYSBoYXNoIG9ubHkgY2hhbmdlLlxuICAgICAgICAvLyBUaGlzIGNoZWNrIGlzIG5lY2Vzc2FyeSB0byBoYW5kbGUgYm90aCB0aGUgZW50ZXIgYW5kXG4gICAgICAgIC8vIGxlYXZlIGhhc2ggPT09ICcnIGNhc2VzLiBUaGUgaWRlbnRpdHkgY2FzZSBmYWxscyB0aHJvdWdoXG4gICAgICAgIC8vIGFuZCBpcyB0cmVhdGVkIGFzIGEgbmV4dCByZWxvYWQuXG4gICAgICAgIHJldHVybiBvbGRIYXNoICE9PSBuZXdIYXNoO1xuICAgIH1cbiAgICBzY3JvbGxUb0hhc2goYXMpIHtcbiAgICAgICAgY29uc3QgWywgaGFzaF0gPSBhcy5zcGxpdCgnIycpO1xuICAgICAgICAvLyBTY3JvbGwgdG8gdG9wIGlmIHRoZSBoYXNoIGlzIGp1c3QgYCNgIHdpdGggbm8gdmFsdWUgb3IgYCN0b3BgXG4gICAgICAgIC8vIFRvIG1pcnJvciBicm93c2Vyc1xuICAgICAgICBpZiAoaGFzaCA9PT0gJycgfHwgaGFzaCA9PT0gJ3RvcCcpIHtcbiAgICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbygwLCAwKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBGaXJzdCB3ZSBjaGVjayBpZiB0aGUgZWxlbWVudCBieSBpZCBpcyBmb3VuZFxuICAgICAgICBjb25zdCBpZEVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaGFzaCk7XG4gICAgICAgIGlmIChpZEVsKSB7XG4gICAgICAgICAgICBpZEVsLnNjcm9sbEludG9WaWV3KCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYgdGhlcmUncyBubyBlbGVtZW50IHdpdGggdGhlIGlkLCB3ZSBjaGVjayB0aGUgYG5hbWVgIHByb3BlcnR5XG4gICAgICAgIC8vIFRvIG1pcnJvciBicm93c2Vyc1xuICAgICAgICBjb25zdCBuYW1lRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZShoYXNoKVswXTtcbiAgICAgICAgaWYgKG5hbWVFbCkge1xuICAgICAgICAgICAgbmFtZUVsLnNjcm9sbEludG9WaWV3KCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgdXJsSXNOZXcoYXNQYXRoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFzUGF0aCAhPT0gYXNQYXRoO1xuICAgIH1cbiAgICAvKipcbiAgICogUHJlZmV0Y2ggcGFnZSBjb2RlLCB5b3UgbWF5IHdhaXQgZm9yIHRoZSBkYXRhIGR1cmluZyBwYWdlIHJlbmRlcmluZy5cbiAgICogVGhpcyBmZWF0dXJlIG9ubHkgd29ya3MgaW4gcHJvZHVjdGlvbiFcbiAgICogQHBhcmFtIHVybCB0aGUgaHJlZiBvZiBwcmVmZXRjaGVkIHBhZ2VcbiAgICogQHBhcmFtIGFzUGF0aCB0aGUgYXMgcGF0aCBvZiB0aGUgcHJlZmV0Y2hlZCBwYWdlXG4gICAqLyBhc3luYyBwcmVmZXRjaCh1cmwsIGFzUGF0aCA9IHVybCwgb3B0aW9ucyA9IHtcbiAgICB9KSB7XG4gICAgICAgIGxldCBwYXJzZWQgPSAoMCwgX3BhcnNlUmVsYXRpdmVVcmwpLnBhcnNlUmVsYXRpdmVVcmwodXJsKTtcbiAgICAgICAgbGV0IHsgcGF0aG5hbWUgLCBxdWVyeSAgfSA9IHBhcnNlZDtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9JMThOX1NVUFBPUlQpIHtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLmxvY2FsZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICBwYXRobmFtZSA9ICgwLCBfbm9ybWFsaXplTG9jYWxlUGF0aCkubm9ybWFsaXplTG9jYWxlUGF0aChwYXRobmFtZSwgdGhpcy5sb2NhbGVzKS5wYXRobmFtZTtcbiAgICAgICAgICAgICAgICBwYXJzZWQucGF0aG5hbWUgPSBwYXRobmFtZTtcbiAgICAgICAgICAgICAgICB1cmwgPSAoMCwgX3V0aWxzKS5mb3JtYXRXaXRoVmFsaWRhdGlvbihwYXJzZWQpO1xuICAgICAgICAgICAgICAgIGxldCBwYXJzZWRBcyA9ICgwLCBfcGFyc2VSZWxhdGl2ZVVybCkucGFyc2VSZWxhdGl2ZVVybChhc1BhdGgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxvY2FsZVBhdGhSZXN1bHQgPSAoMCwgX25vcm1hbGl6ZUxvY2FsZVBhdGgpLm5vcm1hbGl6ZUxvY2FsZVBhdGgocGFyc2VkQXMucGF0aG5hbWUsIHRoaXMubG9jYWxlcyk7XG4gICAgICAgICAgICAgICAgcGFyc2VkQXMucGF0aG5hbWUgPSBsb2NhbGVQYXRoUmVzdWx0LnBhdGhuYW1lO1xuICAgICAgICAgICAgICAgIG9wdGlvbnMubG9jYWxlID0gbG9jYWxlUGF0aFJlc3VsdC5kZXRlY3RlZExvY2FsZSB8fCB0aGlzLmRlZmF1bHRMb2NhbGU7XG4gICAgICAgICAgICAgICAgYXNQYXRoID0gKDAsIF91dGlscykuZm9ybWF0V2l0aFZhbGlkYXRpb24ocGFyc2VkQXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBhZ2VzID0gYXdhaXQgdGhpcy5wYWdlTG9hZGVyLmdldFBhZ2VMaXN0KCk7XG4gICAgICAgIGxldCByZXNvbHZlZEFzID0gYXNQYXRoO1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0hBU19SRVdSSVRFUyAmJiBhc1BhdGguc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICBsZXQgcmV3cml0ZXM7XG4gICAgICAgICAgICAoeyBfX3Jld3JpdGVzOiByZXdyaXRlcyAgfSA9IGF3YWl0ICgwLCBfcm91dGVMb2FkZXIpLmdldENsaWVudEJ1aWxkTWFuaWZlc3QoKSk7XG4gICAgICAgICAgICBjb25zdCByZXdyaXRlc1Jlc3VsdCA9ICgwLCBfcmVzb2x2ZVJld3JpdGVzKS5kZWZhdWx0KGFkZEJhc2VQYXRoKGFkZExvY2FsZShhc1BhdGgsIHRoaXMubG9jYWxlKSksIHBhZ2VzLCByZXdyaXRlcywgcGFyc2VkLnF1ZXJ5LCAocCk9PnJlc29sdmVEeW5hbWljUm91dGUocCwgcGFnZXMpXG4gICAgICAgICAgICAsIHRoaXMubG9jYWxlcyk7XG4gICAgICAgICAgICByZXNvbHZlZEFzID0gZGVsTG9jYWxlKGRlbEJhc2VQYXRoKHJld3JpdGVzUmVzdWx0LmFzUGF0aCksIHRoaXMubG9jYWxlKTtcbiAgICAgICAgICAgIGlmIChyZXdyaXRlc1Jlc3VsdC5tYXRjaGVkUGFnZSAmJiByZXdyaXRlc1Jlc3VsdC5yZXNvbHZlZEhyZWYpIHtcbiAgICAgICAgICAgICAgICAvLyBpZiB0aGlzIGRpcmVjdGx5IG1hdGNoZXMgYSBwYWdlIHdlIG5lZWQgdG8gdXBkYXRlIHRoZSBocmVmIHRvXG4gICAgICAgICAgICAgICAgLy8gYWxsb3cgdGhlIGNvcnJlY3QgcGFnZSBjaHVuayB0byBiZSBsb2FkZWRcbiAgICAgICAgICAgICAgICBwYXRobmFtZSA9IHJld3JpdGVzUmVzdWx0LnJlc29sdmVkSHJlZjtcbiAgICAgICAgICAgICAgICBwYXJzZWQucGF0aG5hbWUgPSBwYXRobmFtZTtcbiAgICAgICAgICAgICAgICB1cmwgPSAoMCwgX3V0aWxzKS5mb3JtYXRXaXRoVmFsaWRhdGlvbihwYXJzZWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGFyc2VkLnBhdGhuYW1lID0gcmVzb2x2ZUR5bmFtaWNSb3V0ZShwYXJzZWQucGF0aG5hbWUsIHBhZ2VzKTtcbiAgICAgICAgICAgIGlmIChwYXJzZWQucGF0aG5hbWUgIT09IHBhdGhuYW1lKSB7XG4gICAgICAgICAgICAgICAgcGF0aG5hbWUgPSBwYXJzZWQucGF0aG5hbWU7XG4gICAgICAgICAgICAgICAgcGFyc2VkLnBhdGhuYW1lID0gcGF0aG5hbWU7XG4gICAgICAgICAgICAgICAgdXJsID0gKDAsIF91dGlscykuZm9ybWF0V2l0aFZhbGlkYXRpb24ocGFyc2VkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBQcmVmZXRjaCBpcyBub3Qgc3VwcG9ydGVkIGluIGRldmVsb3BtZW50IG1vZGUgYmVjYXVzZSBpdCB3b3VsZCB0cmlnZ2VyIG9uLWRlbWFuZC1lbnRyaWVzXG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZWZmZWN0cyA9IGF3YWl0IHRoaXMuX3ByZWZsaWdodFJlcXVlc3Qoe1xuICAgICAgICAgICAgYXM6IGFkZEJhc2VQYXRoKGFzUGF0aCksXG4gICAgICAgICAgICBjYWNoZTogdHJ1ZSxcbiAgICAgICAgICAgIHBhZ2VzLFxuICAgICAgICAgICAgcGF0aG5hbWUsXG4gICAgICAgICAgICBxdWVyeVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGVmZmVjdHMudHlwZSA9PT0gJ3Jld3JpdGUnKSB7XG4gICAgICAgICAgICBwYXJzZWQucGF0aG5hbWUgPSBlZmZlY3RzLnJlc29sdmVkSHJlZjtcbiAgICAgICAgICAgIHBhdGhuYW1lID0gZWZmZWN0cy5yZXNvbHZlZEhyZWY7XG4gICAgICAgICAgICBxdWVyeSA9IHtcbiAgICAgICAgICAgICAgICAuLi5xdWVyeSxcbiAgICAgICAgICAgICAgICAuLi5lZmZlY3RzLnBhcnNlZEFzLnF1ZXJ5XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmVzb2x2ZWRBcyA9IGVmZmVjdHMuYXNQYXRoO1xuICAgICAgICAgICAgdXJsID0gKDAsIF91dGlscykuZm9ybWF0V2l0aFZhbGlkYXRpb24ocGFyc2VkKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByb3V0ZSA9ICgwLCBfbm9ybWFsaXplVHJhaWxpbmdTbGFzaCkucmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2gocGF0aG5hbWUpO1xuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAgICAgICB0aGlzLnBhZ2VMb2FkZXIuX2lzU3NnKHJvdXRlKS50aGVuKChpc1NzZyk9PntcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNTc2cgPyBmZXRjaE5leHREYXRhKHRoaXMucGFnZUxvYWRlci5nZXREYXRhSHJlZih7XG4gICAgICAgICAgICAgICAgICAgIGhyZWY6IHVybCxcbiAgICAgICAgICAgICAgICAgICAgYXNQYXRoOiByZXNvbHZlZEFzLFxuICAgICAgICAgICAgICAgICAgICBzc2c6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGxvY2FsZTogdHlwZW9mIG9wdGlvbnMubG9jYWxlICE9PSAndW5kZWZpbmVkJyA/IG9wdGlvbnMubG9jYWxlIDogdGhpcy5sb2NhbGVcbiAgICAgICAgICAgICAgICB9KSwgZmFsc2UsIGZhbHNlLCB0aGlzLnNkYywgdHJ1ZSkgOiBmYWxzZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGhpcy5wYWdlTG9hZGVyW29wdGlvbnMucHJpb3JpdHkgPyAnbG9hZFBhZ2UnIDogJ3ByZWZldGNoJ10ocm91dGUpLCBcbiAgICAgICAgXSk7XG4gICAgfVxuICAgIGFzeW5jIGZldGNoQ29tcG9uZW50KHJvdXRlKSB7XG4gICAgICAgIGxldCBjYW5jZWxsZWQgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgY2FuY2VsID0gdGhpcy5jbGMgPSAoKT0+e1xuICAgICAgICAgICAgY2FuY2VsbGVkID0gdHJ1ZTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgaGFuZGxlQ2FuY2VsbGVkID0gKCk9PntcbiAgICAgICAgICAgIGlmIChjYW5jZWxsZWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihgQWJvcnQgZmV0Y2hpbmcgY29tcG9uZW50IGZvciByb3V0ZTogXCIke3JvdXRlfVwiYCk7XG4gICAgICAgICAgICAgICAgZXJyb3IuY2FuY2VsbGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjYW5jZWwgPT09IHRoaXMuY2xjKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbGMgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgY29tcG9uZW50UmVzdWx0ID0gYXdhaXQgdGhpcy5wYWdlTG9hZGVyLmxvYWRQYWdlKHJvdXRlKTtcbiAgICAgICAgICAgIGhhbmRsZUNhbmNlbGxlZCgpO1xuICAgICAgICAgICAgcmV0dXJuIGNvbXBvbmVudFJlc3VsdDtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICBoYW5kbGVDYW5jZWxsZWQoKTtcbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfZ2V0RGF0YShmbikge1xuICAgICAgICBsZXQgY2FuY2VsbGVkID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IGNhbmNlbCA9ICgpPT57XG4gICAgICAgICAgICBjYW5jZWxsZWQgPSB0cnVlO1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLmNsYyA9IGNhbmNlbDtcbiAgICAgICAgcmV0dXJuIGZuKCkudGhlbigoZGF0YSk9PntcbiAgICAgICAgICAgIGlmIChjYW5jZWwgPT09IHRoaXMuY2xjKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbGMgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGNhbmNlbGxlZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVyciA9IG5ldyBFcnJvcignTG9hZGluZyBpbml0aWFsIHByb3BzIGNhbmNlbGxlZCcpO1xuICAgICAgICAgICAgICAgIGVyci5jYW5jZWxsZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgX2dldEZsaWdodERhdGEoZGF0YUhyZWYpIHtcbiAgICAgICAgY29uc3QgeyBocmVmOiBjYWNoZUtleSAgfSA9IG5ldyBVUkwoZGF0YUhyZWYsIHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcbiAgICAgICAgaWYgKCF0aGlzLmlzUHJldmlldyAmJiB0aGlzLnNkY1tjYWNoZUtleV0pIHtcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgICAgICAgICAgIGZyZXNoOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBkYXRhOiB0aGlzLnNkY1tjYWNoZUtleV1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmZXRjaE5leHREYXRhKGRhdGFIcmVmLCB0cnVlLCB0cnVlLCB0aGlzLnNkYywgZmFsc2UpLnRoZW4oKHNlcmlhbGl6ZWQpPT57XG4gICAgICAgICAgICB0aGlzLnNkY1tjYWNoZUtleV0gPSBzZXJpYWxpemVkO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBmcmVzaDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBkYXRhOiBzZXJpYWxpemVkXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgYXN5bmMgX3ByZWZsaWdodFJlcXVlc3Qob3B0aW9ucykge1xuICAgICAgICB2YXIgcmVmO1xuICAgICAgICBjb25zdCBjbGVhbmVkQXMgPSBkZWxMb2NhbGUoaGFzQmFzZVBhdGgob3B0aW9ucy5hcykgPyBkZWxCYXNlUGF0aChvcHRpb25zLmFzKSA6IG9wdGlvbnMuYXMsIHRoaXMubG9jYWxlKTtcbiAgICAgICAgY29uc3QgZm5zID0gYXdhaXQgdGhpcy5wYWdlTG9hZGVyLmdldE1pZGRsZXdhcmVMaXN0KCk7XG4gICAgICAgIGNvbnN0IHJlcXVpcmVzUHJlZmxpZ2h0ID0gZm5zLnNvbWUoKFttaWRkbGV3YXJlLCBpc1NTUl0pPT57XG4gICAgICAgICAgICByZXR1cm4gKDAsIF9yb3V0ZU1hdGNoZXIpLmdldFJvdXRlTWF0Y2hlcigoMCwgX2dldE1pZGRsZXdhcmVSZWdleCkuZ2V0TWlkZGxld2FyZVJlZ2V4KG1pZGRsZXdhcmUsICFpc1NTUikpKGNsZWFuZWRBcyk7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoIXJlcXVpcmVzUHJlZmxpZ2h0KSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHR5cGU6ICduZXh0J1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwcmVmbGlnaHQgPSBhd2FpdCB0aGlzLl9nZXRQcmVmbGlnaHREYXRhKHtcbiAgICAgICAgICAgIHByZWZsaWdodEhyZWY6IG9wdGlvbnMuYXMsXG4gICAgICAgICAgICBzaG91bGRDYWNoZTogb3B0aW9ucy5jYWNoZVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKChyZWYgPSBwcmVmbGlnaHQucmV3cml0ZSkgPT09IG51bGwgfHwgcmVmID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZWYuc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJzZWQgPSAoMCwgX3BhcnNlUmVsYXRpdmVVcmwpLnBhcnNlUmVsYXRpdmVVcmwoKDAsIF9ub3JtYWxpemVMb2NhbGVQYXRoKS5ub3JtYWxpemVMb2NhbGVQYXRoKGhhc0Jhc2VQYXRoKHByZWZsaWdodC5yZXdyaXRlKSA/IGRlbEJhc2VQYXRoKHByZWZsaWdodC5yZXdyaXRlKSA6IHByZWZsaWdodC5yZXdyaXRlLCB0aGlzLmxvY2FsZXMpLnBhdGhuYW1lKTtcbiAgICAgICAgICAgIGNvbnN0IGZzUGF0aG5hbWUgPSAoMCwgX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2gpLnJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoKHBhcnNlZC5wYXRobmFtZSk7XG4gICAgICAgICAgICBsZXQgbWF0Y2hlZFBhZ2U7XG4gICAgICAgICAgICBsZXQgcmVzb2x2ZWRIcmVmO1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMucGFnZXMuaW5jbHVkZXMoZnNQYXRobmFtZSkpIHtcbiAgICAgICAgICAgICAgICBtYXRjaGVkUGFnZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZWRIcmVmID0gZnNQYXRobmFtZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZWRIcmVmID0gcmVzb2x2ZUR5bmFtaWNSb3V0ZShmc1BhdGhuYW1lLCBvcHRpb25zLnBhZ2VzKTtcbiAgICAgICAgICAgICAgICBpZiAocmVzb2x2ZWRIcmVmICE9PSBwYXJzZWQucGF0aG5hbWUgJiYgb3B0aW9ucy5wYWdlcy5pbmNsdWRlcyhyZXNvbHZlZEhyZWYpKSB7XG4gICAgICAgICAgICAgICAgICAgIG1hdGNoZWRQYWdlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdyZXdyaXRlJyxcbiAgICAgICAgICAgICAgICBhc1BhdGg6IHBhcnNlZC5wYXRobmFtZSxcbiAgICAgICAgICAgICAgICBwYXJzZWRBczogcGFyc2VkLFxuICAgICAgICAgICAgICAgIG1hdGNoZWRQYWdlLFxuICAgICAgICAgICAgICAgIHJlc29sdmVkSHJlZlxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocHJlZmxpZ2h0LnJlZGlyZWN0KSB7XG4gICAgICAgICAgICBpZiAocHJlZmxpZ2h0LnJlZGlyZWN0LnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNsZWFuUmVkaXJlY3QgPSAoMCwgX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2gpLnJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoKCgwLCBfbm9ybWFsaXplTG9jYWxlUGF0aCkubm9ybWFsaXplTG9jYWxlUGF0aChoYXNCYXNlUGF0aChwcmVmbGlnaHQucmVkaXJlY3QpID8gZGVsQmFzZVBhdGgocHJlZmxpZ2h0LnJlZGlyZWN0KSA6IHByZWZsaWdodC5yZWRpcmVjdCwgdGhpcy5sb2NhbGVzKS5wYXRobmFtZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgeyB1cmw6IG5ld1VybCAsIGFzOiBuZXdBcyAgfSA9IHByZXBhcmVVcmxBcyh0aGlzLCBjbGVhblJlZGlyZWN0LCBjbGVhblJlZGlyZWN0KTtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAncmVkaXJlY3QnLFxuICAgICAgICAgICAgICAgICAgICBuZXdVcmwsXG4gICAgICAgICAgICAgICAgICAgIG5ld0FzXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdHlwZTogJ3JlZGlyZWN0JyxcbiAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbjogcHJlZmxpZ2h0LnJlZGlyZWN0XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIC8vIEZvciBTU1IgcmVxdWVzdHMsIHRoZXkgd2lsbCBiZSBoYW5kbGVkIGxpa2Ugbm9ybWFsIHBhZ2VzLlxuICAgICAgICBpZiAocHJlZmxpZ2h0LnJlZnJlc2ggJiYgIXByZWZsaWdodC5zc3IpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdHlwZTogJ3JlZnJlc2gnXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiAnbmV4dCdcbiAgICAgICAgfTtcbiAgICB9XG4gICAgX2dldFByZWZsaWdodERhdGEocGFyYW1zKSB7XG4gICAgICAgIGNvbnN0IHsgcHJlZmxpZ2h0SHJlZiAsIHNob3VsZENhY2hlID1mYWxzZSAgfSA9IHBhcmFtcztcbiAgICAgICAgY29uc3QgeyBocmVmOiBjYWNoZUtleSAgfSA9IG5ldyBVUkwocHJlZmxpZ2h0SHJlZiwgd2luZG93LmxvY2F0aW9uLmhyZWYpO1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJyAmJiAhdGhpcy5pc1ByZXZpZXcgJiYgc2hvdWxkQ2FjaGUgJiYgdGhpcy5zZGVbY2FjaGVLZXldKSB7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuc2RlW2NhY2hlS2V5XSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZldGNoKHByZWZsaWdodEhyZWYsIHtcbiAgICAgICAgICAgIG1ldGhvZDogJ0hFQUQnLFxuICAgICAgICAgICAgY3JlZGVudGlhbHM6ICdzYW1lLW9yaWdpbicsXG4gICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgJ3gtbWlkZGxld2FyZS1wcmVmbGlnaHQnOiAnMSdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSkudGhlbigocmVzKT0+e1xuICAgICAgICAgICAgaWYgKCFyZXMub2spIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBwcmVmbGlnaHQgcmVxdWVzdGApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWRpcmVjdDogcmVzLmhlYWRlcnMuZ2V0KCdMb2NhdGlvbicpLFxuICAgICAgICAgICAgICAgIHJlZnJlc2g6IHJlcy5oZWFkZXJzLmhhcygneC1taWRkbGV3YXJlLXJlZnJlc2gnKSxcbiAgICAgICAgICAgICAgICByZXdyaXRlOiByZXMuaGVhZGVycy5nZXQoJ3gtbWlkZGxld2FyZS1yZXdyaXRlJyksXG4gICAgICAgICAgICAgICAgc3NyOiAhIXJlcy5oZWFkZXJzLmdldCgneC1taWRkbGV3YXJlLXNzcicpXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KS50aGVuKChkYXRhKT0+e1xuICAgICAgICAgICAgaWYgKHNob3VsZENhY2hlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZGVbY2FjaGVLZXldID0gZGF0YTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICB9KS5jYXRjaCgoZXJyKT0+e1xuICAgICAgICAgICAgZGVsZXRlIHRoaXMuc2RlW2NhY2hlS2V5XTtcbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGdldEluaXRpYWxQcm9wcyhDb21wb25lbnQsIGN0eCkge1xuICAgICAgICBjb25zdCB7IENvbXBvbmVudDogQXBwICB9ID0gdGhpcy5jb21wb25lbnRzWycvX2FwcCddO1xuICAgICAgICBjb25zdCBBcHBUcmVlID0gdGhpcy5fd3JhcEFwcChBcHApO1xuICAgICAgICBjdHguQXBwVHJlZSA9IEFwcFRyZWU7XG4gICAgICAgIHJldHVybiAoMCwgX3V0aWxzKS5sb2FkR2V0SW5pdGlhbFByb3BzKEFwcCwge1xuICAgICAgICAgICAgQXBwVHJlZSxcbiAgICAgICAgICAgIENvbXBvbmVudCxcbiAgICAgICAgICAgIHJvdXRlcjogdGhpcyxcbiAgICAgICAgICAgIGN0eFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgYWJvcnRDb21wb25lbnRMb2FkKGFzLCByb3V0ZVByb3BzKSB7XG4gICAgICAgIGlmICh0aGlzLmNsYykge1xuICAgICAgICAgICAgUm91dGVyLmV2ZW50cy5lbWl0KCdyb3V0ZUNoYW5nZUVycm9yJywgYnVpbGRDYW5jZWxsYXRpb25FcnJvcigpLCBhcywgcm91dGVQcm9wcyk7XG4gICAgICAgICAgICB0aGlzLmNsYygpO1xuICAgICAgICAgICAgdGhpcy5jbGMgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuICAgIG5vdGlmeShkYXRhLCByZXNldFNjcm9sbCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdWIoZGF0YSwgdGhpcy5jb21wb25lbnRzWycvX2FwcCddLkNvbXBvbmVudCwgcmVzZXRTY3JvbGwpO1xuICAgIH1cbn1cblJvdXRlci5ldmVudHMgPSAoMCwgX21pdHQpLmRlZmF1bHQoKTtcbmV4cG9ydHMuZGVmYXVsdCA9IFJvdXRlcjtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cm91dGVyLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImdldERvbWFpbkxvY2FsZSIsImFkZExvY2FsZSIsImRlbExvY2FsZSIsImhhc0Jhc2VQYXRoIiwiYWRkQmFzZVBhdGgiLCJkZWxCYXNlUGF0aCIsImlzTG9jYWxVUkwiLCJpbnRlcnBvbGF0ZUFzIiwicmVzb2x2ZUhyZWYiLCJkZWZhdWx0IiwiX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2giLCJyZXF1aXJlIiwiX3JvdXRlTG9hZGVyIiwiX2lzRXJyb3IiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2Rlbm9ybWFsaXplUGFnZVBhdGgiLCJfbm9ybWFsaXplTG9jYWxlUGF0aCIsIl9taXR0IiwiX3V0aWxzIiwiX2lzRHluYW1pYyIsIl9wYXJzZVJlbGF0aXZlVXJsIiwiX3F1ZXJ5c3RyaW5nIiwiX3Jlc29sdmVSZXdyaXRlcyIsIl9yb3V0ZU1hdGNoZXIiLCJfcm91dGVSZWdleCIsIl9nZXRNaWRkbGV3YXJlUmVnZXgiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGV0ZWN0RG9tYWluTG9jYWxlIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9JMThOX1NVUFBPUlQiLCJiYXNlUGF0aCIsIl9fTkVYVF9ST1VURVJfQkFTRVBBVEgiLCJidWlsZENhbmNlbGxhdGlvbkVycm9yIiwiYXNzaWduIiwiRXJyb3IiLCJjYW5jZWxsZWQiLCJhZGRQYXRoUHJlZml4IiwicGF0aCIsInByZWZpeCIsInN0YXJ0c1dpdGgiLCJwYXRobmFtZSIsInBhdGhOb1F1ZXJ5SGFzaCIsIm5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoIiwic3Vic3RyIiwibGVuZ3RoIiwibG9jYWxlIiwibG9jYWxlcyIsImRvbWFpbkxvY2FsZXMiLCJub3JtYWxpemVMb2NhbGVQYXRoIiwiZGV0ZWN0ZWRMb2NhbGUiLCJkZXRlY3RlZERvbWFpbiIsInVuZGVmaW5lZCIsImh0dHAiLCJkb21haW4iLCJkZWZhdWx0TG9jYWxlIiwicGF0aExvd2VyIiwidG9Mb3dlckNhc2UiLCJsb2NhbGVMb3dlciIsInF1ZXJ5SW5kZXgiLCJpbmRleE9mIiwiaGFzaEluZGV4Iiwic3Vic3RyaW5nIiwic2xpY2UiLCJ1cmwiLCJsb2NhdGlvbk9yaWdpbiIsImdldExvY2F0aW9uT3JpZ2luIiwicmVzb2x2ZWQiLCJVUkwiLCJvcmlnaW4iLCJfIiwicm91dGUiLCJhc1BhdGhuYW1lIiwicXVlcnkiLCJpbnRlcnBvbGF0ZWRSb3V0ZSIsImR5bmFtaWNSZWdleCIsImdldFJvdXRlUmVnZXgiLCJkeW5hbWljR3JvdXBzIiwiZ3JvdXBzIiwiZHluYW1pY01hdGNoZXMiLCJnZXRSb3V0ZU1hdGNoZXIiLCJwYXJhbXMiLCJrZXlzIiwiZXZlcnkiLCJwYXJhbSIsInJlcGVhdCIsIm9wdGlvbmFsIiwicmVwbGFjZWQiLCJBcnJheSIsImlzQXJyYXkiLCJyZXBsYWNlIiwibWFwIiwic2VnbWVudCIsImVuY29kZVVSSUNvbXBvbmVudCIsImpvaW4iLCJyZXN1bHQiLCJvbWl0UGFybXNGcm9tUXVlcnkiLCJmaWx0ZXJlZFF1ZXJ5IiwiZm9yRWFjaCIsImtleSIsImluY2x1ZGVzIiwicm91dGVyIiwiaHJlZiIsInJlc29sdmVBcyIsImJhc2UiLCJ1cmxBc1N0cmluZyIsImZvcm1hdFdpdGhWYWxpZGF0aW9uIiwidXJsUHJvdG9NYXRjaCIsIm1hdGNoIiwidXJsQXNTdHJpbmdOb1Byb3RvIiwidXJsUGFydHMiLCJzcGxpdCIsImNvbnNvbGUiLCJlcnJvciIsIm5vcm1hbGl6ZWRVcmwiLCJub3JtYWxpemVSZXBlYXRlZFNsYXNoZXMiLCJhc1BhdGgiLCJmaW5hbFVybCIsImludGVycG9sYXRlZEFzIiwiaXNEeW5hbWljUm91dGUiLCJzZWFyY2hQYXJhbXMiLCJzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5IiwiaGFzaCIsInJlc29sdmVkSHJlZiIsIl8xIiwic3RyaXBPcmlnaW4iLCJwcmVwYXJlVXJsQXMiLCJhcyIsInJlc29sdmVkQXMiLCJocmVmSGFkT3JpZ2luIiwiYXNIYWRPcmlnaW4iLCJwcmVwYXJlZFVybCIsInByZXBhcmVkQXMiLCJyZXNvbHZlRHluYW1pY1JvdXRlIiwicGFnZXMiLCJjbGVhblBhdGhuYW1lIiwicmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2giLCJkZW5vcm1hbGl6ZVBhZ2VQYXRoIiwic29tZSIsInBhZ2UiLCJyZSIsInRlc3QiLCJtYW51YWxTY3JvbGxSZXN0b3JhdGlvbiIsIl9fTkVYVF9TQ1JPTExfUkVTVE9SQVRJT04iLCJ3aW5kb3ciLCJoaXN0b3J5IiwidiIsInNlc3Npb25TdG9yYWdlIiwic2V0SXRlbSIsInJlbW92ZUl0ZW0iLCJuIiwiU1NHX0RBVEFfTk9UX0ZPVU5EIiwiU3ltYm9sIiwiZmV0Y2hSZXRyeSIsImF0dGVtcHRzIiwib3B0cyIsImZldGNoIiwiY3JlZGVudGlhbHMiLCJ0aGVuIiwicmVzIiwib2siLCJzdGF0dXMiLCJqc29uIiwiZGF0YSIsIm5vdEZvdW5kIiwidGV4dCIsImZldGNoTmV4dERhdGEiLCJkYXRhSHJlZiIsImlzU2VydmVyUmVuZGVyIiwiaW5mbGlnaHRDYWNoZSIsInBlcnNpc3RDYWNoZSIsImNhY2hlS2V5IiwibG9jYXRpb24iLCJjYXRjaCIsImVyciIsIm1hcmtBc3NldEVycm9yIiwiUm91dGVyIiwiY29uc3RydWN0b3IiLCJpbml0aWFsUHJvcHMiLCJwYWdlTG9hZGVyIiwiQXBwIiwid3JhcEFwcCIsIkNvbXBvbmVudCIsInN1YnNjcmlwdGlvbiIsImlzRmFsbGJhY2siLCJpc1ByZXZpZXciLCJzZGMiLCJzZHIiLCJzZGUiLCJfaWR4Iiwib25Qb3BTdGF0ZSIsImUiLCJzdGF0ZSIsImNoYW5nZVN0YXRlIiwiZ2V0VVJMIiwiX19OIiwiZm9yY2VkU2Nyb2xsIiwib3B0aW9ucyIsImlkeCIsIkpTT04iLCJzdHJpbmdpZnkiLCJ4Iiwic2VsZiIsInBhZ2VYT2Zmc2V0IiwieSIsInBhZ2VZT2Zmc2V0IiwiZ2V0SXRlbSIsInBhcnNlIiwicGFyc2VSZWxhdGl2ZVVybCIsImlzU3NyIiwiX2JwcyIsImNoYW5nZSIsInNoYWxsb3ciLCJfc2hhbGxvdyIsImNvbXBvbmVudHMiLCJyZWYiLCJpbml0aWFsIiwicHJvcHMiLCJfX05fU1NHIiwiX19OX1NTUCIsIl9fTl9SU0MiLCJfX25leHRfcnNjX18iLCJzdHlsZVNoZWV0cyIsImV2ZW50cyIsImF1dG9FeHBvcnREeW5hbWljIiwiX19ORVhUX0RBVEFfXyIsImF1dG9FeHBvcnQiLCJzdWIiLCJjbGMiLCJfd3JhcEFwcCIsImlzUmVhZHkiLCJnc3NwIiwiZ2lwIiwiYXBwR2lwIiwiZ3NwIiwic2VhcmNoIiwiX19ORVhUX0hBU19SRVdSSVRFUyIsImlzTG9jYWxlRG9tYWluIiwiaG9zdG5hbWUiLCJfc2hvdWxkUmVzb2x2ZUhyZWYiLCJhZGRFdmVudExpc3RlbmVyIiwic2Nyb2xsUmVzdG9yYXRpb24iLCJyZWxvYWQiLCJiYWNrIiwicHVzaCIsIm1ldGhvZCIsInNob3VsZFJlc29sdmVIcmVmIiwiX2giLCJwcmV2TG9jYWxlIiwicGFyc2VkQXMiLCJsb2NhbGVQYXRoUmVzdWx0IiwiZGlkTmF2aWdhdGUiLCJhc05vQmFzZVBhdGgiLCJQcm9taXNlIiwiU1QiLCJwZXJmb3JtYW5jZSIsIm1hcmsiLCJyb3V0ZVByb3BzIiwiX2luRmxpZ2h0Um91dGUiLCJhYm9ydENvbXBvbmVudExvYWQiLCJjbGVhbmVkQXMiLCJsb2NhbGVDaGFuZ2UiLCJvbmx5QUhhc2hDaGFuZ2UiLCJlbWl0Iiwic2Nyb2xsVG9IYXNoIiwibm90aWZ5IiwicGFyc2VkIiwicmV3cml0ZXMiLCJfX3Jld3JpdGVzIiwiYWxsIiwiZ2V0UGFnZUxpc3QiLCJnZXRDbGllbnRCdWlsZE1hbmlmZXN0IiwiZ2V0TWlkZGxld2FyZUxpc3QiLCJ1cmxJc05ldyIsInJld3JpdGVzUmVzdWx0IiwicCIsIm1hdGNoZWRQYWdlIiwiZWZmZWN0IiwiX3ByZWZsaWdodFJlcXVlc3QiLCJjYWNoZSIsInR5cGUiLCJuZXdBcyIsIm5ld1VybCIsImRlc3RpbmF0aW9uIiwicm91dGVSZWdleCIsInJvdXRlTWF0Y2giLCJzaG91bGRJbnRlcnBvbGF0ZSIsIm1pc3NpbmdQYXJhbXMiLCJmaWx0ZXIiLCJ3YXJuIiwicmVmMSIsInJvdXRlSW5mbyIsImdldFJvdXRlSW5mbyIsInBhZ2VQcm9wcyIsIl9fTl9SRURJUkVDVCIsIl9fTl9SRURJUkVDVF9CQVNFX1BBVEgiLCJwYXJzZWRIcmVmIiwiX19OX1BSRVZJRVciLCJub3RGb3VuZFJvdXRlIiwiZmV0Y2hDb21wb25lbnQiLCJzdGF0dXNDb2RlIiwiaXNWYWxpZFNoYWxsb3dSb3V0ZSIsIl9zY3JvbGwiLCJzaG91bGRTY3JvbGwiLCJzY3JvbGwiLCJyZXNldFNjcm9sbCIsInNldCIsImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50IiwibGFuZyIsImVycjEiLCJoYW5kbGVSb3V0ZUluZm9FcnJvciIsImxvYWRFcnJvckZhaWwiLCJpc0Fzc2V0RXJyb3IiLCJnZXRJbml0aWFsUHJvcHMiLCJnaXBFcnIiLCJyb3V0ZUluZm9FcnIiLCJleGlzdGluZ1JvdXRlSW5mbyIsImNhY2hlZFJvdXRlSW5mbyIsIm1vZCIsImlzVmFsaWRFbGVtZW50VHlwZSIsImdldERhdGFIcmVmIiwic3NnIiwicnNjIiwiX2dldERhdGEiLCJmcmVzaCIsIl9nZXRGbGlnaHREYXRhIiwiX19mbGlnaHRfc2VyaWFsaXplZF9fIiwiX19mbGlnaHRfZnJlc2hfXyIsImJlZm9yZVBvcFN0YXRlIiwiY2IiLCJvbGRVcmxOb0hhc2giLCJvbGRIYXNoIiwibmV3VXJsTm9IYXNoIiwibmV3SGFzaCIsInNjcm9sbFRvIiwiaWRFbCIsImdldEVsZW1lbnRCeUlkIiwic2Nyb2xsSW50b1ZpZXciLCJuYW1lRWwiLCJnZXRFbGVtZW50c0J5TmFtZSIsInByZWZldGNoIiwiZWZmZWN0cyIsIl9pc1NzZyIsImlzU3NnIiwicHJpb3JpdHkiLCJjYW5jZWwiLCJoYW5kbGVDYW5jZWxsZWQiLCJjb21wb25lbnRSZXN1bHQiLCJsb2FkUGFnZSIsImZuIiwicmVzb2x2ZSIsInNlcmlhbGl6ZWQiLCJmbnMiLCJyZXF1aXJlc1ByZWZsaWdodCIsIm1pZGRsZXdhcmUiLCJpc1NTUiIsImdldE1pZGRsZXdhcmVSZWdleCIsInByZWZsaWdodCIsIl9nZXRQcmVmbGlnaHREYXRhIiwicHJlZmxpZ2h0SHJlZiIsInNob3VsZENhY2hlIiwicmV3cml0ZSIsImZzUGF0aG5hbWUiLCJyZWRpcmVjdCIsImNsZWFuUmVkaXJlY3QiLCJyZWZyZXNoIiwic3NyIiwiaGVhZGVycyIsImdldCIsImhhcyIsImN0eCIsIkFwcFRyZWUiLCJsb2FkR2V0SW5pdGlhbFByb3BzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/router.js\n"); + +/***/ }), + +/***/ "./src/common/cardMouseEffect.js": +/*!***************************************!*\ + !*** ./src/common/cardMouseEffect.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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _getSiblings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getSiblings */ \"./src/common/getSiblings.js\");\n\n\nconst cardMouseEffect = featureEl => {\n var featuresitems = featureEl;\n\n if (featuresitems) {\n featuresitems.forEach(item => {\n item.onmouseover = function (event) {\n item.classList.add(\"active\");\n let siblings = (0,_getSiblings__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(item),\n siblingEl = siblings.map(e => e.classList.remove(\"active\"));\n };\n });\n }\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (cardMouseEffect);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL2NhcmRNb3VzZUVmZmVjdC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBOztBQUVBLE1BQU1DLGVBQWUsR0FBSUMsU0FBRCxJQUFlO0FBQ3JDLE1BQUlDLGFBQWEsR0FBR0QsU0FBcEI7O0FBQ0EsTUFBSUMsYUFBSixFQUFtQjtBQUNqQkEsSUFBQUEsYUFBYSxDQUFDQyxPQUFkLENBQXVCQyxJQUFELElBQVU7QUFDOUJBLE1BQUFBLElBQUksQ0FBQ0MsV0FBTCxHQUFtQixVQUFVQyxLQUFWLEVBQWlCO0FBQ2xDRixRQUFBQSxJQUFJLENBQUNHLFNBQUwsQ0FBZUMsR0FBZixDQUFtQixRQUFuQjtBQUNBLFlBQUlDLFFBQVEsR0FBR1Ysd0RBQVcsQ0FBQ0ssSUFBRCxDQUExQjtBQUFBLFlBQ0VNLFNBQVMsR0FBR0QsUUFBUSxDQUFDRSxHQUFULENBQWNDLENBQUQsSUFBT0EsQ0FBQyxDQUFDTCxTQUFGLENBQVlNLE1BQVosQ0FBbUIsUUFBbkIsQ0FBcEIsQ0FEZDtBQUVELE9BSkQ7QUFLRCxLQU5EO0FBT0Q7QUFDRixDQVhEOztBQWFBLGlFQUFlYixlQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmllLXJlYWN0Ly4vc3JjL2NvbW1vbi9jYXJkTW91c2VFZmZlY3QuanM/MmFlYyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0U2libGluZ3MgZnJvbSAnLi9nZXRTaWJsaW5ncydcclxuXHJcbmNvbnN0IGNhcmRNb3VzZUVmZmVjdCA9IChmZWF0dXJlRWwpID0+IHtcclxuICB2YXIgZmVhdHVyZXNpdGVtcyA9IGZlYXR1cmVFbDtcclxuICBpZiAoZmVhdHVyZXNpdGVtcykge1xyXG4gICAgZmVhdHVyZXNpdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgIGl0ZW0ub25tb3VzZW92ZXIgPSBmdW5jdGlvbiAoZXZlbnQpIHtcclxuICAgICAgICBpdGVtLmNsYXNzTGlzdC5hZGQoXCJhY3RpdmVcIik7XHJcbiAgICAgICAgbGV0IHNpYmxpbmdzID0gZ2V0U2libGluZ3MoaXRlbSksXHJcbiAgICAgICAgICBzaWJsaW5nRWwgPSBzaWJsaW5ncy5tYXAoKGUpID0+IGUuY2xhc3NMaXN0LnJlbW92ZShcImFjdGl2ZVwiKSk7XHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICB9XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjYXJkTW91c2VFZmZlY3Q7XHJcbiJdLCJuYW1lcyI6WyJnZXRTaWJsaW5ncyIsImNhcmRNb3VzZUVmZmVjdCIsImZlYXR1cmVFbCIsImZlYXR1cmVzaXRlbXMiLCJmb3JFYWNoIiwiaXRlbSIsIm9ubW91c2VvdmVyIiwiZXZlbnQiLCJjbGFzc0xpc3QiLCJhZGQiLCJzaWJsaW5ncyIsInNpYmxpbmdFbCIsIm1hcCIsImUiLCJyZW1vdmUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/common/cardMouseEffect.js\n"); + +/***/ }), + +/***/ "./src/common/fadeInFadeOut.js": +/*!*************************************!*\ + !*** ./src/common/fadeInFadeOut.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 */ \"fadeIn\": () => (/* binding */ fadeIn),\n/* harmony export */ \"fadeOut\": () => (/* binding */ fadeOut)\n/* harmony export */ });\nvar opacity = 0;\nvar intervalID = 0;\nconst fadeIn = (el, time) => {\n setInterval(show(el), time);\n};\n\nfunction show(el) {\n opacity = Number(window.getComputedStyle(el).getPropertyValue(\"opacity\"));\n\n if (opacity < 1) {\n opacity = opacity + 1;\n el.style.opacity = opacity;\n } else {\n clearInterval(intervalID);\n }\n}\n\nconst fadeOut = (el, time) => {\n setInterval(hide(el), time);\n};\n\nfunction hide(el) {\n opacity = Number(window.getComputedStyle(el).getPropertyValue(\"opacity\"));\n\n if (opacity > 0) {\n opacity = 0;\n el.style.opacity = opacity;\n } else {\n clearInterval(intervalID);\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL2ZhZGVJbkZhZGVPdXQuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxJQUFJQSxPQUFPLEdBQUcsQ0FBZDtBQUNBLElBQUlDLFVBQVUsR0FBRyxDQUFqQjtBQUNPLE1BQU1DLE1BQU0sR0FBRyxDQUFDQyxFQUFELEVBQUtDLElBQUwsS0FBYztBQUNsQ0MsRUFBQUEsV0FBVyxDQUFDQyxJQUFJLENBQUNILEVBQUQsQ0FBTCxFQUFXQyxJQUFYLENBQVg7QUFDRCxDQUZNOztBQUdQLFNBQVNFLElBQVQsQ0FBY0gsRUFBZCxFQUFrQjtBQUNoQkgsRUFBQUEsT0FBTyxHQUFHTyxNQUFNLENBQUNDLE1BQU0sQ0FBQ0MsZ0JBQVAsQ0FBd0JOLEVBQXhCLEVBQTRCTyxnQkFBNUIsQ0FBNkMsU0FBN0MsQ0FBRCxDQUFoQjs7QUFDQSxNQUFJVixPQUFPLEdBQUcsQ0FBZCxFQUFpQjtBQUNmQSxJQUFBQSxPQUFPLEdBQUdBLE9BQU8sR0FBRyxDQUFwQjtBQUNBRyxJQUFBQSxFQUFFLENBQUNRLEtBQUgsQ0FBU1gsT0FBVCxHQUFtQkEsT0FBbkI7QUFDRCxHQUhELE1BR087QUFDTFksSUFBQUEsYUFBYSxDQUFDWCxVQUFELENBQWI7QUFDRDtBQUNGOztBQUNNLE1BQU1ZLE9BQU8sR0FBRyxDQUFDVixFQUFELEVBQUtDLElBQUwsS0FBYztBQUNuQ0MsRUFBQUEsV0FBVyxDQUFDUyxJQUFJLENBQUNYLEVBQUQsQ0FBTCxFQUFXQyxJQUFYLENBQVg7QUFDRCxDQUZNOztBQUdQLFNBQVNVLElBQVQsQ0FBY1gsRUFBZCxFQUFrQjtBQUNoQkgsRUFBQUEsT0FBTyxHQUFHTyxNQUFNLENBQUNDLE1BQU0sQ0FBQ0MsZ0JBQVAsQ0FBd0JOLEVBQXhCLEVBQTRCTyxnQkFBNUIsQ0FBNkMsU0FBN0MsQ0FBRCxDQUFoQjs7QUFDQSxNQUFJVixPQUFPLEdBQUcsQ0FBZCxFQUFpQjtBQUNmQSxJQUFBQSxPQUFPLEdBQUcsQ0FBVjtBQUNBRyxJQUFBQSxFQUFFLENBQUNRLEtBQUgsQ0FBU1gsT0FBVCxHQUFtQkEsT0FBbkI7QUFDRCxHQUhELE1BR087QUFDTFksSUFBQUEsYUFBYSxDQUFDWCxVQUFELENBQWI7QUFDRDtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmllLXJlYWN0Ly4vc3JjL2NvbW1vbi9mYWRlSW5GYWRlT3V0LmpzPzc0MzYiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIG9wYWNpdHkgPSAwO1xyXG52YXIgaW50ZXJ2YWxJRCA9IDA7XHJcbmV4cG9ydCBjb25zdCBmYWRlSW4gPSAoZWwsIHRpbWUpID0+IHtcclxuICBzZXRJbnRlcnZhbChzaG93KGVsKSwgdGltZSk7XHJcbn07XHJcbmZ1bmN0aW9uIHNob3coZWwpIHtcclxuICBvcGFjaXR5ID0gTnVtYmVyKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsKS5nZXRQcm9wZXJ0eVZhbHVlKFwib3BhY2l0eVwiKSk7XHJcbiAgaWYgKG9wYWNpdHkgPCAxKSB7XHJcbiAgICBvcGFjaXR5ID0gb3BhY2l0eSArIDE7XHJcbiAgICBlbC5zdHlsZS5vcGFjaXR5ID0gb3BhY2l0eTtcclxuICB9IGVsc2Uge1xyXG4gICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbElEKTtcclxuICB9XHJcbn1cclxuZXhwb3J0IGNvbnN0IGZhZGVPdXQgPSAoZWwsIHRpbWUpID0+IHtcclxuICBzZXRJbnRlcnZhbChoaWRlKGVsKSwgdGltZSk7XHJcbn07XHJcbmZ1bmN0aW9uIGhpZGUoZWwpIHtcclxuICBvcGFjaXR5ID0gTnVtYmVyKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsKS5nZXRQcm9wZXJ0eVZhbHVlKFwib3BhY2l0eVwiKSk7XHJcbiAgaWYgKG9wYWNpdHkgPiAwKSB7XHJcbiAgICBvcGFjaXR5ID0gMDtcclxuICAgIGVsLnN0eWxlLm9wYWNpdHkgPSBvcGFjaXR5O1xyXG4gIH0gZWxzZSB7XHJcbiAgICBjbGVhckludGVydmFsKGludGVydmFsSUQpO1xyXG4gIH1cclxufVxyXG4iXSwibmFtZXMiOlsib3BhY2l0eSIsImludGVydmFsSUQiLCJmYWRlSW4iLCJlbCIsInRpbWUiLCJzZXRJbnRlcnZhbCIsInNob3ciLCJOdW1iZXIiLCJ3aW5kb3ciLCJnZXRDb21wdXRlZFN0eWxlIiwiZ2V0UHJvcGVydHlWYWx1ZSIsInN0eWxlIiwiY2xlYXJJbnRlcnZhbCIsImZhZGVPdXQiLCJoaWRlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/common/fadeInFadeOut.js\n"); + +/***/ }), + +/***/ "./src/common/getSiblings.js": +/*!***********************************!*\ + !*** ./src/common/getSiblings.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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nconst getSiblings = e => {\n let siblings = [];\n\n if (!e.parentNode) {\n return siblings;\n }\n\n let sibling = e.parentNode.firstChild;\n\n while (sibling) {\n if (sibling.nodeType === 1 && sibling !== e) {\n siblings.push(sibling);\n }\n\n sibling = sibling.nextSibling;\n }\n\n return siblings;\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getSiblings);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL2dldFNpYmxpbmdzLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSxNQUFNQSxXQUFXLEdBQUlDLENBQUQsSUFBTztBQUN6QixNQUFJQyxRQUFRLEdBQUcsRUFBZjs7QUFDQSxNQUFJLENBQUNELENBQUMsQ0FBQ0UsVUFBUCxFQUFtQjtBQUNqQixXQUFPRCxRQUFQO0FBQ0Q7O0FBQ0QsTUFBSUUsT0FBTyxHQUFHSCxDQUFDLENBQUNFLFVBQUYsQ0FBYUUsVUFBM0I7O0FBQ0EsU0FBT0QsT0FBUCxFQUFnQjtBQUNkLFFBQUlBLE9BQU8sQ0FBQ0UsUUFBUixLQUFxQixDQUFyQixJQUEwQkYsT0FBTyxLQUFLSCxDQUExQyxFQUE2QztBQUMzQ0MsTUFBQUEsUUFBUSxDQUFDSyxJQUFULENBQWNILE9BQWQ7QUFDRDs7QUFDREEsSUFBQUEsT0FBTyxHQUFHQSxPQUFPLENBQUNJLFdBQWxCO0FBQ0Q7O0FBQ0QsU0FBT04sUUFBUDtBQUNELENBYkQ7O0FBZUEsaUVBQWVGLFdBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly92aWUtcmVhY3QvLi9zcmMvY29tbW9uL2dldFNpYmxpbmdzLmpzPzhlNjUiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZ2V0U2libGluZ3MgPSAoZSkgPT4ge1xyXG4gIGxldCBzaWJsaW5ncyA9IFtdO1xyXG4gIGlmICghZS5wYXJlbnROb2RlKSB7XHJcbiAgICByZXR1cm4gc2libGluZ3M7XHJcbiAgfVxyXG4gIGxldCBzaWJsaW5nID0gZS5wYXJlbnROb2RlLmZpcnN0Q2hpbGQ7XHJcbiAgd2hpbGUgKHNpYmxpbmcpIHtcclxuICAgIGlmIChzaWJsaW5nLm5vZGVUeXBlID09PSAxICYmIHNpYmxpbmcgIT09IGUpIHtcclxuICAgICAgc2libGluZ3MucHVzaChzaWJsaW5nKTtcclxuICAgIH1cclxuICAgIHNpYmxpbmcgPSBzaWJsaW5nLm5leHRTaWJsaW5nO1xyXG4gIH1cclxuICByZXR1cm4gc2libGluZ3M7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBnZXRTaWJsaW5ncztcclxuIl0sIm5hbWVzIjpbImdldFNpYmxpbmdzIiwiZSIsInNpYmxpbmdzIiwicGFyZW50Tm9kZSIsInNpYmxpbmciLCJmaXJzdENoaWxkIiwibm9kZVR5cGUiLCJwdXNoIiwibmV4dFNpYmxpbmciXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/common/getSiblings.js\n"); + +/***/ }), + +/***/ "./src/common/navbar.js": +/*!******************************!*\ + !*** ./src/common/navbar.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 */ \"handleDropdown\": () => (/* binding */ handleDropdown),\n/* harmony export */ \"handleMobileDropdown\": () => (/* binding */ handleMobileDropdown)\n/* harmony export */ });\n/* harmony import */ var _getSiblings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getSiblings */ \"./src/common/getSiblings.js\");\n\nconst handleDropdown = e => {\n (0,_getSiblings__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(e.target.parentElement).filter(item => item.classList.contains(\"show\")).map(item => {\n item.classList.remove(\"show\");\n\n if (item.childNodes[0]) {\n item.childNodes[0].setAttribute(\"aria-expanded\", false);\n }\n\n if (item.childNodes[1]) {\n item.childNodes[1].classList.remove(\"show\");\n }\n });\n e.target.parentElement.classList.toggle(\"show\");\n e.target.setAttribute(\"aria-expanded\", true);\n e.target.parentElement.childNodes[1].classList.toggle(\"show\");\n};\nconst handleMobileDropdown = e => {\n document.getElementById(\"navbarSupportedContent\").classList.toggle(\"show-with-trans\");\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL25hdmJhci5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUVPLE1BQU1DLGNBQWMsR0FBSUMsQ0FBRCxJQUFPO0FBQ25DRixFQUFBQSx3REFBVyxDQUFDRSxDQUFDLENBQUNDLE1BQUYsQ0FBU0MsYUFBVixDQUFYLENBQ0dDLE1BREgsQ0FDV0MsSUFBRCxJQUFVQSxJQUFJLENBQUNDLFNBQUwsQ0FBZUMsUUFBZixDQUF3QixNQUF4QixDQURwQixFQUVHQyxHQUZILENBRVFILElBQUQsSUFBVTtBQUNiQSxJQUFBQSxJQUFJLENBQUNDLFNBQUwsQ0FBZUcsTUFBZixDQUFzQixNQUF0Qjs7QUFDQSxRQUFJSixJQUFJLENBQUNLLFVBQUwsQ0FBZ0IsQ0FBaEIsQ0FBSixFQUF3QjtBQUN0QkwsTUFBQUEsSUFBSSxDQUFDSyxVQUFMLENBQWdCLENBQWhCLEVBQW1CQyxZQUFuQixDQUFnQyxlQUFoQyxFQUFpRCxLQUFqRDtBQUNEOztBQUNELFFBQUlOLElBQUksQ0FBQ0ssVUFBTCxDQUFnQixDQUFoQixDQUFKLEVBQXdCO0FBQ3RCTCxNQUFBQSxJQUFJLENBQUNLLFVBQUwsQ0FBZ0IsQ0FBaEIsRUFBbUJKLFNBQW5CLENBQTZCRyxNQUE3QixDQUFvQyxNQUFwQztBQUNEO0FBQ0YsR0FWSDtBQVdBUixFQUFBQSxDQUFDLENBQUNDLE1BQUYsQ0FBU0MsYUFBVCxDQUF1QkcsU0FBdkIsQ0FBaUNNLE1BQWpDLENBQXdDLE1BQXhDO0FBQ0FYLEVBQUFBLENBQUMsQ0FBQ0MsTUFBRixDQUFTUyxZQUFULENBQXNCLGVBQXRCLEVBQXVDLElBQXZDO0FBQ0FWLEVBQUFBLENBQUMsQ0FBQ0MsTUFBRixDQUFTQyxhQUFULENBQXVCTyxVQUF2QixDQUFrQyxDQUFsQyxFQUFxQ0osU0FBckMsQ0FBK0NNLE1BQS9DLENBQXNELE1BQXREO0FBQ0QsQ0FmTTtBQWlCQSxNQUFNQyxvQkFBb0IsR0FBSVosQ0FBRCxJQUFPO0FBQ3pDYSxFQUFBQSxRQUFRLENBQ0xDLGNBREgsQ0FDa0Isd0JBRGxCLEVBRUdULFNBRkgsQ0FFYU0sTUFGYixDQUVvQixpQkFGcEI7QUFHRCxDQUpNIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmllLXJlYWN0Ly4vc3JjL2NvbW1vbi9uYXZiYXIuanM/MWU3NiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0U2libGluZ3MgZnJvbSAnLi9nZXRTaWJsaW5ncydcclxuXHJcbmV4cG9ydCBjb25zdCBoYW5kbGVEcm9wZG93biA9IChlKSA9PiB7XHJcbiAgZ2V0U2libGluZ3MoZS50YXJnZXQucGFyZW50RWxlbWVudClcclxuICAgIC5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uY2xhc3NMaXN0LmNvbnRhaW5zKFwic2hvd1wiKSlcclxuICAgIC5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgaXRlbS5jbGFzc0xpc3QucmVtb3ZlKFwic2hvd1wiKTtcclxuICAgICAgaWYgKGl0ZW0uY2hpbGROb2Rlc1swXSkge1xyXG4gICAgICAgIGl0ZW0uY2hpbGROb2Rlc1swXS5zZXRBdHRyaWJ1dGUoXCJhcmlhLWV4cGFuZGVkXCIsIGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaXRlbS5jaGlsZE5vZGVzWzFdKSB7XHJcbiAgICAgICAgaXRlbS5jaGlsZE5vZGVzWzFdLmNsYXNzTGlzdC5yZW1vdmUoXCJzaG93XCIpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICBlLnRhcmdldC5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoXCJzaG93XCIpO1xyXG4gIGUudGFyZ2V0LnNldEF0dHJpYnV0ZShcImFyaWEtZXhwYW5kZWRcIiwgdHJ1ZSk7XHJcbiAgZS50YXJnZXQucGFyZW50RWxlbWVudC5jaGlsZE5vZGVzWzFdLmNsYXNzTGlzdC50b2dnbGUoXCJzaG93XCIpO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGhhbmRsZU1vYmlsZURyb3Bkb3duID0gKGUpID0+IHtcclxuICBkb2N1bWVudFxyXG4gICAgLmdldEVsZW1lbnRCeUlkKFwibmF2YmFyU3VwcG9ydGVkQ29udGVudFwiKVxyXG4gICAgLmNsYXNzTGlzdC50b2dnbGUoXCJzaG93LXdpdGgtdHJhbnNcIik7XHJcbn07Il0sIm5hbWVzIjpbImdldFNpYmxpbmdzIiwiaGFuZGxlRHJvcGRvd24iLCJlIiwidGFyZ2V0IiwicGFyZW50RWxlbWVudCIsImZpbHRlciIsIml0ZW0iLCJjbGFzc0xpc3QiLCJjb250YWlucyIsIm1hcCIsInJlbW92ZSIsImNoaWxkTm9kZXMiLCJzZXRBdHRyaWJ1dGUiLCJ0b2dnbGUiLCJoYW5kbGVNb2JpbGVEcm9wZG93biIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/common/navbar.js\n"); + +/***/ }), + +/***/ "./src/common/teamSkillsProgress.js": +/*!******************************************!*\ + !*** ./src/common/teamSkillsProgress.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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nconst teamSkillsProgress = () => {\n let teamSection = document.querySelector(\".team-crv\");\n\n if (teamSection) {\n window.addEventListener(\"scroll\", () => {\n document.querySelectorAll(\".skill-progress .progres\").forEach(item => {\n let myVal = item.getAttribute(\"data-value\");\n\n if (window.pageYOffset > teamSection.offsetTop - 200) {\n item.style.width = myVal;\n }\n });\n });\n }\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (teamSkillsProgress);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL3RlYW1Ta2lsbHNQcm9ncmVzcy5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUEsTUFBTUEsa0JBQWtCLEdBQUcsTUFBTTtBQUMvQixNQUFJQyxXQUFXLEdBQUdDLFFBQVEsQ0FBQ0MsYUFBVCxDQUF1QixXQUF2QixDQUFsQjs7QUFDQSxNQUFJRixXQUFKLEVBQWlCO0FBQ2ZHLElBQUFBLE1BQU0sQ0FBQ0MsZ0JBQVAsQ0FBd0IsUUFBeEIsRUFBa0MsTUFBTTtBQUN0Q0gsTUFBQUEsUUFBUSxDQUFDSSxnQkFBVCxDQUEwQiwwQkFBMUIsRUFBc0RDLE9BQXRELENBQStEQyxJQUFELElBQVU7QUFDdEUsWUFBSUMsS0FBSyxHQUFHRCxJQUFJLENBQUNFLFlBQUwsQ0FBa0IsWUFBbEIsQ0FBWjs7QUFDQSxZQUFJTixNQUFNLENBQUNPLFdBQVAsR0FBcUJWLFdBQVcsQ0FBQ1csU0FBWixHQUF3QixHQUFqRCxFQUFzRDtBQUNwREosVUFBQUEsSUFBSSxDQUFDSyxLQUFMLENBQVdDLEtBQVgsR0FBbUJMLEtBQW5CO0FBQ0Q7QUFDRixPQUxEO0FBTUQsS0FQRDtBQVFEO0FBQ0YsQ0FaRDs7QUFjQSxpRUFBZVQsa0JBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly92aWUtcmVhY3QvLi9zcmMvY29tbW9uL3RlYW1Ta2lsbHNQcm9ncmVzcy5qcz8xYTlhIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHRlYW1Ta2lsbHNQcm9ncmVzcyA9ICgpID0+IHtcclxuICBsZXQgdGVhbVNlY3Rpb24gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLnRlYW0tY3J2XCIpO1xyXG4gIGlmICh0ZWFtU2VjdGlvbikge1xyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgKCkgPT4ge1xyXG4gICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLnNraWxsLXByb2dyZXNzIC5wcm9ncmVzXCIpLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgICBsZXQgbXlWYWwgPSBpdGVtLmdldEF0dHJpYnV0ZShcImRhdGEtdmFsdWVcIik7XHJcbiAgICAgICAgaWYgKHdpbmRvdy5wYWdlWU9mZnNldCA+IHRlYW1TZWN0aW9uLm9mZnNldFRvcCAtIDIwMCkge1xyXG4gICAgICAgICAgaXRlbS5zdHlsZS53aWR0aCA9IG15VmFsO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCB0ZWFtU2tpbGxzUHJvZ3Jlc3M7XHJcbiJdLCJuYW1lcyI6WyJ0ZWFtU2tpbGxzUHJvZ3Jlc3MiLCJ0ZWFtU2VjdGlvbiIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJxdWVyeVNlbGVjdG9yQWxsIiwiZm9yRWFjaCIsIml0ZW0iLCJteVZhbCIsImdldEF0dHJpYnV0ZSIsInBhZ2VZT2Zmc2V0Iiwib2Zmc2V0VG9wIiwic3R5bGUiLCJ3aWR0aCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/common/teamSkillsProgress.js\n"); + +/***/ }), + +/***/ "./src/common/thumparallax.js": +/*!************************************!*\ + !*** ./src/common/thumparallax.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 */ \"thumparallax\": () => (/* binding */ thumparallax),\n/* harmony export */ \"thumparallaxDown\": () => (/* binding */ thumparallaxDown)\n/* harmony export */ });\nconst thumparallax = () => {\n var imageUp = document.getElementsByClassName(\"thumparallax\");\n\n if (imageUp) {\n new simpleParallax(imageUp, {\n delay: 1,\n scale: 1.1\n });\n }\n};\nconst thumparallaxDown = () => {\n var imageDown = document.getElementsByClassName(\"thumparallax-down\");\n\n if (imageDown) {\n new simpleParallax(imageDown, {\n orientation: \"down\",\n delay: 1,\n scale: 1.1\n });\n }\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL3RodW1wYXJhbGxheC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFPLE1BQU1BLFlBQVksR0FBRyxNQUFNO0FBQ2hDLE1BQUlDLE9BQU8sR0FBR0MsUUFBUSxDQUFDQyxzQkFBVCxDQUFnQyxjQUFoQyxDQUFkOztBQUNBLE1BQUlGLE9BQUosRUFBYTtBQUNYLFFBQUlHLGNBQUosQ0FBbUJILE9BQW5CLEVBQTRCO0FBQzFCSSxNQUFBQSxLQUFLLEVBQUUsQ0FEbUI7QUFFMUJDLE1BQUFBLEtBQUssRUFBRTtBQUZtQixLQUE1QjtBQUlEO0FBQ0YsQ0FSTTtBQVNBLE1BQU1DLGdCQUFnQixHQUFHLE1BQU07QUFDcEMsTUFBSUMsU0FBUyxHQUFHTixRQUFRLENBQUNDLHNCQUFULENBQWdDLG1CQUFoQyxDQUFoQjs7QUFDQSxNQUFJSyxTQUFKLEVBQWU7QUFDYixRQUFJSixjQUFKLENBQW1CSSxTQUFuQixFQUE4QjtBQUM1QkMsTUFBQUEsV0FBVyxFQUFFLE1BRGU7QUFFNUJKLE1BQUFBLEtBQUssRUFBRSxDQUZxQjtBQUc1QkMsTUFBQUEsS0FBSyxFQUFFO0FBSHFCLEtBQTlCO0FBS0Q7QUFDRixDQVRNIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmllLXJlYWN0Ly4vc3JjL2NvbW1vbi90aHVtcGFyYWxsYXguanM/YjZjYyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgdGh1bXBhcmFsbGF4ID0gKCkgPT4ge1xyXG4gIHZhciBpbWFnZVVwID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcInRodW1wYXJhbGxheFwiKTtcclxuICBpZiAoaW1hZ2VVcCkge1xyXG4gICAgbmV3IHNpbXBsZVBhcmFsbGF4KGltYWdlVXAsIHtcclxuICAgICAgZGVsYXk6IDEsXHJcbiAgICAgIHNjYWxlOiAxLjEsXHJcbiAgICB9KTtcclxuICB9XHJcbn07XHJcbmV4cG9ydCBjb25zdCB0aHVtcGFyYWxsYXhEb3duID0gKCkgPT4ge1xyXG4gIHZhciBpbWFnZURvd24gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwidGh1bXBhcmFsbGF4LWRvd25cIik7XHJcbiAgaWYgKGltYWdlRG93bikge1xyXG4gICAgbmV3IHNpbXBsZVBhcmFsbGF4KGltYWdlRG93biwge1xyXG4gICAgICBvcmllbnRhdGlvbjogXCJkb3duXCIsXHJcbiAgICAgIGRlbGF5OiAxLFxyXG4gICAgICBzY2FsZTogMS4xLFxyXG4gICAgfSk7XHJcbiAgfVxyXG59O1xyXG4iXSwibmFtZXMiOlsidGh1bXBhcmFsbGF4IiwiaW1hZ2VVcCIsImRvY3VtZW50IiwiZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSIsInNpbXBsZVBhcmFsbGF4IiwiZGVsYXkiLCJzY2FsZSIsInRodW1wYXJhbGxheERvd24iLCJpbWFnZURvd24iLCJvcmllbnRhdGlvbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/common/thumparallax.js\n"); + +/***/ }), + +/***/ "./src/common/tooltipEffect.js": +/*!*************************************!*\ + !*** ./src/common/tooltipEffect.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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _fadeInFadeOut__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./fadeInFadeOut */ \"./src/common/fadeInFadeOut.js\");\n\n\nconst tooltipEffect = () => {\n let template1 = document.createElement(\"div\");\n template1.classList.add(\"div-tooltip-tit\");\n document.body.appendChild(template1);\n let template2 = document.createElement(\"div\");\n template2.classList.add(\"div-tooltip-sub\");\n document.body.appendChild(template2);\n document.querySelectorAll(\"[data-tooltip-tit]\").forEach(item => {\n template1 = document.querySelector(\".div-tooltip-tit\");\n item.addEventListener(\"mouseover\", () => {\n template1.innerText = item.getAttribute(\"data-tooltip-tit\");\n });\n item.addEventListener(\"mousemove\", e => {\n (0,_fadeInFadeOut__WEBPACK_IMPORTED_MODULE_0__.fadeIn)(template1, 800);\n template1.style.top = e.pageY + 10 + \"px\";\n template1.style.left = e.pageX + 20 + \"px\";\n template1.style.padding = \"0px 10px\";\n });\n item.addEventListener(\"mouseleave\", () => {\n (0,_fadeInFadeOut__WEBPACK_IMPORTED_MODULE_0__.fadeOut)(template1, 800);\n template1.style.padding = 0;\n });\n });\n document.querySelectorAll(\"[data-tooltip-sub]\").forEach(item => {\n template2 = document.querySelector(\".div-tooltip-sub\");\n item.addEventListener(\"mouseover\", () => {\n template2.innerText = item.getAttribute(\"data-tooltip-sub\");\n });\n item.addEventListener(\"mousemove\", e => {\n (0,_fadeInFadeOut__WEBPACK_IMPORTED_MODULE_0__.fadeIn)(template2, 800);\n template2.style.top = e.pageY - 15 + \"px\";\n template2.style.left = e.pageX + 30 + \"px\";\n template2.style.padding = \"5px 10px\";\n });\n item.addEventListener(\"mouseleave\", () => {\n (0,_fadeInFadeOut__WEBPACK_IMPORTED_MODULE_0__.fadeOut)(template2, 800);\n template2.style.padding = 0;\n });\n });\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (tooltipEffect);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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RCxLQUxEO0FBTUFYLElBQUFBLElBQUksQ0FBQ0UsZ0JBQUwsQ0FBc0IsWUFBdEIsRUFBb0MsTUFBTTtBQUN4Q2QsTUFBQUEsdURBQU8sQ0FBQ1MsU0FBRCxFQUFZLEdBQVosQ0FBUDtBQUNBQSxNQUFBQSxTQUFTLENBQUNTLEtBQVYsQ0FBZ0JLLE9BQWhCLEdBQTBCLENBQTFCO0FBQ0QsS0FIRDtBQUlELEdBaEJEO0FBaUJELENBeENEOztBQXlDQSxpRUFBZXRCLGFBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly92aWUtcmVhY3QvLi9zcmMvY29tbW9uL3Rvb2x0aXBFZmZlY3QuanM/OGY2YyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmYWRlSW4sIGZhZGVPdXQgfSBmcm9tIFwiLi9mYWRlSW5GYWRlT3V0XCI7XHJcblxyXG5jb25zdCB0b29sdGlwRWZmZWN0ID0gKCkgPT4ge1xyXG4gIGxldCB0ZW1wbGF0ZTEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xyXG4gIHRlbXBsYXRlMS5jbGFzc0xpc3QuYWRkKFwiZGl2LXRvb2x0aXAtdGl0XCIpO1xyXG4gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGVtcGxhdGUxKTtcclxuICBsZXQgdGVtcGxhdGUyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcclxuICB0ZW1wbGF0ZTIuY2xhc3NMaXN0LmFkZChcImRpdi10b29sdGlwLXN1YlwiKTtcclxuICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRlbXBsYXRlMik7XHJcbiAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIltkYXRhLXRvb2x0aXAtdGl0XVwiKS5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICB0ZW1wbGF0ZTEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLmRpdi10b29sdGlwLXRpdFwiKTtcclxuICAgIGl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlb3ZlclwiLCAoKSA9PiB7XHJcbiAgICAgIHRlbXBsYXRlMS5pbm5lclRleHQgPSBpdGVtLmdldEF0dHJpYnV0ZShcImRhdGEtdG9vbHRpcC10aXRcIik7XHJcbiAgICB9KTtcclxuICAgIGl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLCAoZSkgPT4ge1xyXG4gICAgICBmYWRlSW4odGVtcGxhdGUxLCA4MDApO1xyXG4gICAgICB0ZW1wbGF0ZTEuc3R5bGUudG9wID0gZS5wYWdlWSArIDEwICsgXCJweFwiO1xyXG4gICAgICB0ZW1wbGF0ZTEuc3R5bGUubGVmdCA9IGUucGFnZVggKyAyMCArIFwicHhcIjtcclxuICAgICAgdGVtcGxhdGUxLnN0eWxlLnBhZGRpbmcgPSBcIjBweCAxMHB4XCI7XHJcbiAgICB9KTtcclxuICAgIGl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIiwgKCkgPT4ge1xyXG4gICAgICBmYWRlT3V0KHRlbXBsYXRlMSwgODAwKTtcclxuICAgICAgdGVtcGxhdGUxLnN0eWxlLnBhZGRpbmcgPSAwO1xyXG4gICAgfSk7XHJcbiAgfSk7XHJcbiAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIltkYXRhLXRvb2x0aXAtc3ViXVwiKS5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICB0ZW1wbGF0ZTIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLmRpdi10b29sdGlwLXN1YlwiKTtcclxuICAgIGl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlb3ZlclwiLCAoKSA9PiB7XHJcbiAgICAgIHRlbXBsYXRlMi5pbm5lclRleHQgPSBpdGVtLmdldEF0dHJpYnV0ZShcImRhdGEtdG9vbHRpcC1zdWJcIik7XHJcbiAgICB9KTtcclxuXHJcbiAgICBpdGVtLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIiwgKGUpID0+IHtcclxuICAgICAgZmFkZUluKHRlbXBsYXRlMiwgODAwKTtcclxuICAgICAgdGVtcGxhdGUyLnN0eWxlLnRvcCA9IGUucGFnZVkgLSAxNSArIFwicHhcIjtcclxuICAgICAgdGVtcGxhdGUyLnN0eWxlLmxlZnQgPSBlLnBhZ2VYICsgMzAgKyBcInB4XCI7XHJcbiAgICAgIHRlbXBsYXRlMi5zdHlsZS5wYWRkaW5nID0gXCI1cHggMTBweFwiO1xyXG4gICAgfSk7XHJcbiAgICBpdGVtLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIsICgpID0+IHtcclxuICAgICAgZmFkZU91dCh0ZW1wbGF0ZTIsIDgwMCk7XHJcbiAgICAgIHRlbXBsYXRlMi5zdHlsZS5wYWRkaW5nID0gMDtcclxuICAgIH0pO1xyXG4gIH0pO1xyXG59O1xyXG5leHBvcnQgZGVmYXVsdCB0b29sdGlwRWZmZWN0O1xyXG4iXSwibmFtZXMiOlsiZmFkZUluIiwiZmFkZU91dCIsInRvb2x0aXBFZmZlY3QiLCJ0ZW1wbGF0ZTEiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc0xpc3QiLCJhZGQiLCJib2R5IiwiYXBwZW5kQ2hpbGQiLCJ0ZW1wbGF0ZTIiLCJxdWVyeVNlbGVjdG9yQWxsIiwiZm9yRWFjaCIsIml0ZW0iLCJxdWVyeVNlbGVjdG9yIiwiYWRkRXZlbnRMaXN0ZW5lciIsImlubmVyVGV4dCIsImdldEF0dHJpYnV0ZSIsImUiLCJzdHlsZSIsInRvcCIsInBhZ2VZIiwibGVmdCIsInBhZ2VYIiwicGFkZGluZyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/common/tooltipEffect.js\n"); + +/***/ }), + +/***/ "./src/components/About-intro/index.jsx": +/*!**********************************************!*\ + !*** ./src/components/About-intro/index.jsx ***! + \**********************************************/ +/***/ ((__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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _Split__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Split */ \"./src/components/Split/index.jsx\");\n/* harmony import */ var _data_sections_about_info1_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../data/sections/about-info1.json */ \"./src/data/sections/about-info1.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\About-intro\\\\index.jsx\";\n\n\n\n\n\nconst AboutIntro = () => {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"section\", {\n className: \"intro-section section-padding pb-0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"htit sm-mb30\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h4\", {\n children: _data_sections_about_info1_json__WEBPACK_IMPORTED_MODULE_2__.title\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-8 offset-lg-1 col-md-8\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"text\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(_Split__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n className: \"wow txt mb-10 words chars splitting\",\n \"data-splitting\": true,\n children: _data_sections_about_info1_json__WEBPACK_IMPORTED_MODULE_2__.paragraph1\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n className: \"wow txt words chars splitting\",\n \"data-splitting\": true,\n children: _data_sections_about_info1_json__WEBPACK_IMPORTED_MODULE_2__.paragraph2\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 11\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 9\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 7\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 7,\n columnNumber: 5\n }, undefined);\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (AboutIntro);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9BYm91dC1pbnRyby9pbmRleC5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7OztBQUVBLE1BQU1HLFVBQVUsR0FBRyxNQUFNO0FBQ3ZCLHNCQUNFO0FBQVMsYUFBUyxFQUFDLG9DQUFuQjtBQUFBLDJCQUNFO0FBQUssZUFBUyxFQUFDLFdBQWY7QUFBQSw2QkFDRTtBQUFLLGlCQUFTLEVBQUMsS0FBZjtBQUFBLGdDQUNFO0FBQUssbUJBQVMsRUFBQyxtQkFBZjtBQUFBLGlDQUNFO0FBQUsscUJBQVMsRUFBQyxjQUFmO0FBQUEsbUNBQ0U7QUFBQSx3QkFBS0Qsa0VBQW9CRTtBQUF6QjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBREYsZUFNRTtBQUFLLG1CQUFTLEVBQUMsK0JBQWY7QUFBQSxpQ0FDRTtBQUFLLHFCQUFTLEVBQUMsTUFBZjtBQUFBLG1DQUNFLDhEQUFDLDhDQUFEO0FBQUEsc0NBQ0U7QUFDRSx5QkFBUyxFQUFDLHFDQURaO0FBRUUsc0NBRkY7QUFBQSwwQkFJR0YsdUVBQXlCRztBQUo1QjtBQUFBO0FBQUE7QUFBQTtBQUFBLDJCQURGLGVBT0U7QUFBRyx5QkFBUyxFQUFDLCtCQUFiO0FBQTZDLHNDQUE3QztBQUFBLDBCQUNHSCx1RUFBeUJJO0FBRDVCO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBUEY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBTkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFERjtBQTRCRCxDQTdCRDs7QUErQkEsaUVBQWVILFVBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly92aWUtcmVhY3QvLi9zcmMvY29tcG9uZW50cy9BYm91dC1pbnRyby9pbmRleC5qc3g/ZGI4MSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBTcGxpdCBmcm9tIFwiLi4vU3BsaXRcIjtcclxuaW1wb3J0IEFib3V0SW5mbzFEYXRhIGZyb20gXCIuLi8uLi9kYXRhL3NlY3Rpb25zL2Fib3V0LWluZm8xLmpzb25cIjtcclxuXHJcbmNvbnN0IEFib3V0SW50cm8gPSAoKSA9PiB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cImludHJvLXNlY3Rpb24gc2VjdGlvbi1wYWRkaW5nIHBiLTBcIj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImh0aXQgc20tbWIzMFwiPlxyXG4gICAgICAgICAgICAgIDxoND57QWJvdXRJbmZvMURhdGEudGl0bGV9PC9oND5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTggb2Zmc2V0LWxnLTEgY29sLW1kLThcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0XCI+XHJcbiAgICAgICAgICAgICAgPFNwbGl0PlxyXG4gICAgICAgICAgICAgICAgPHBcclxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwid293IHR4dCBtYi0xMCB3b3JkcyBjaGFycyBzcGxpdHRpbmdcIlxyXG4gICAgICAgICAgICAgICAgICBkYXRhLXNwbGl0dGluZ1xyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICB7QWJvdXRJbmZvMURhdGEucGFyYWdyYXBoMX1cclxuICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cIndvdyB0eHQgd29yZHMgY2hhcnMgc3BsaXR0aW5nXCIgZGF0YS1zcGxpdHRpbmc+XHJcbiAgICAgICAgICAgICAgICAgIHtBYm91dEluZm8xRGF0YS5wYXJhZ3JhcGgyfVxyXG4gICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgIDwvU3BsaXQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBBYm91dEludHJvO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJTcGxpdCIsIkFib3V0SW5mbzFEYXRhIiwiQWJvdXRJbnRybyIsInRpdGxlIiwicGFyYWdyYXBoMSIsInBhcmFncmFwaDIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/components/About-intro/index.jsx\n"); + +/***/ }), + +/***/ "./src/components/Call-to-action/call-to-action.jsx": +/*!**********************************************************!*\ + !*** ./src/components/Call-to-action/call-to-action.jsx ***! + \**********************************************************/ +/***/ ((__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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _Split__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Split */ \"./src/components/Split/index.jsx\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Call-to-action\\\\call-to-action.jsx\";\n\n\n\n\n\nconst CallToAction = ({\n img\n}) => {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"section\", {\n className: \"call-action section-padding sub-bg bg-img\",\n style: {\n backgroundImage: `url(${img ? img : \"/img/patrn.svg\"})`\n },\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-md-8 col-lg-9\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"content sm-mb30\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(_Split__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n className: \"wow words chars splitting\",\n \"data-splitting\": true,\n children: \"Let\\u2019s Talk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h2\", {\n className: \"wow words chars splitting\",\n \"data-splitting\": true,\n children: [\"about your \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"br\", {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 30\n }, undefined), \" \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"b\", {\n className: \"back-color\",\n children: \"next project\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 37\n }, undefined), \".\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-md-4 col-lg-3 valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: `/contact/contact-light`,\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n className: \"butn bord curve wow fadeInUp\",\n \"data-wow-delay\": \".5s\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: \"Get In Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 9\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 7\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 7,\n columnNumber: 5\n }, undefined);\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (CallToAction);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9DYWxsLXRvLWFjdGlvbi9jYWxsLXRvLWFjdGlvbi5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBOzs7QUFFQSxNQUFNRyxZQUFZLEdBQUcsQ0FBQztBQUFFQyxFQUFBQTtBQUFGLENBQUQsS0FBYTtBQUNoQyxzQkFDRTtBQUNFLGFBQVMsRUFBQywyQ0FEWjtBQUVFLFNBQUssRUFBRTtBQUFFQyxNQUFBQSxlQUFlLEVBQUcsT0FBTUQsR0FBRyxHQUFHQSxHQUFILEdBQVMsZ0JBQWlCO0FBQXZELEtBRlQ7QUFBQSwyQkFJRTtBQUFLLGVBQVMsRUFBQyxXQUFmO0FBQUEsNkJBQ0U7QUFBSyxpQkFBUyxFQUFDLEtBQWY7QUFBQSxnQ0FDRTtBQUFLLG1CQUFTLEVBQUMsbUJBQWY7QUFBQSxpQ0FDRTtBQUFLLHFCQUFTLEVBQUMsaUJBQWY7QUFBQSxtQ0FDRSw4REFBQyw4Q0FBRDtBQUFBLHNDQUNFO0FBQUkseUJBQVMsRUFBQywyQkFBZDtBQUEwQyxzQ0FBMUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBREYsZUFJRTtBQUFJLHlCQUFTLEVBQUMsMkJBQWQ7QUFBMEMsc0NBQTFDO0FBQUEsdURBQ2E7QUFBQTtBQUFBO0FBQUE7QUFBQSw2QkFEYixvQkFDb0I7QUFBRywyQkFBUyxFQUFDLFlBQWI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsNkJBRHBCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSwyQkFKRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxxQkFERixlQWNFO0FBQUssbUJBQVMsRUFBQywwQkFBZjtBQUFBLGlDQUNFLDhEQUFDLGtEQUFEO0FBQU0sZ0JBQUksRUFBRyx3QkFBYjtBQUFBLG1DQUNFO0FBQUcsdUJBQVMsRUFBQyw4QkFBYjtBQUE0QyxnQ0FBZSxLQUEzRDtBQUFBLHFDQUNFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQWRGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFKRjtBQUFBO0FBQUE7QUFBQTtBQUFBLGVBREY7QUErQkQsQ0FoQ0Q7O0FBa0NBLGlFQUFlRCxZQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmllLXJlYWN0Ly4vc3JjL2NvbXBvbmVudHMvQ2FsbC10by1hY3Rpb24vY2FsbC10by1hY3Rpb24uanN4PzFmOTkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgU3BsaXQgZnJvbSBcIi4uL1NwbGl0XCI7XHJcbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcclxuXHJcbmNvbnN0IENhbGxUb0FjdGlvbiA9ICh7IGltZyB9KSA9PiB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uXHJcbiAgICAgIGNsYXNzTmFtZT1cImNhbGwtYWN0aW9uIHNlY3Rpb24tcGFkZGluZyBzdWItYmcgYmctaW1nXCJcclxuICAgICAgc3R5bGU9e3sgYmFja2dyb3VuZEltYWdlOiBgdXJsKCR7aW1nID8gaW1nIDogXCIvaW1nL3BhdHJuLnN2Z1wifSlgIH19XHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLW1kLTggY29sLWxnLTlcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250ZW50IHNtLW1iMzBcIj5cclxuICAgICAgICAgICAgICA8U3BsaXQ+XHJcbiAgICAgICAgICAgICAgICA8aDYgY2xhc3NOYW1lPVwid293IHdvcmRzIGNoYXJzIHNwbGl0dGluZ1wiIGRhdGEtc3BsaXR0aW5nPlxyXG4gICAgICAgICAgICAgICAgICBMZXTigJlzIFRhbGtcclxuICAgICAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgICAgICA8aDIgY2xhc3NOYW1lPVwid293IHdvcmRzIGNoYXJzIHNwbGl0dGluZ1wiIGRhdGEtc3BsaXR0aW5nPlxyXG4gICAgICAgICAgICAgICAgICBhYm91dCB5b3VyIDxiciAvPiA8YiBjbGFzc05hbWU9XCJiYWNrLWNvbG9yXCI+bmV4dCBwcm9qZWN0PC9iPi5cclxuICAgICAgICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICAgICAgPC9TcGxpdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1tZC00IGNvbC1sZy0zIHZhbGlnblwiPlxyXG4gICAgICAgICAgICA8TGluayBocmVmPXtgL2NvbnRhY3QvY29udGFjdC1saWdodGB9PlxyXG4gICAgICAgICAgICAgIDxhIGNsYXNzTmFtZT1cImJ1dG4gYm9yZCBjdXJ2ZSB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi41c1wiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+R2V0IEluIFRvdWNoPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBDYWxsVG9BY3Rpb247XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIlNwbGl0IiwiTGluayIsIkNhbGxUb0FjdGlvbiIsImltZyIsImJhY2tncm91bmRJbWFnZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Call-to-action/call-to-action.jsx\n"); + +/***/ }), + +/***/ "./src/components/Clients/clients.jsx": +/*!********************************************!*\ + !*** ./src/components/Clients/clients.jsx ***! + \********************************************/ +/***/ ((__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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _data_sections_clients_json__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../data/sections/clients.json */ \"./src/data/sections/clients.json\");\n/* harmony import */ var _Split__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Split */ \"./src/components/Split/index.jsx\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Clients\\\\clients.jsx\";\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\nconst Clients = ({\n theme\n}) => {\n var first = _data_sections_clients_json__WEBPACK_IMPORTED_MODULE_1__.slice(0, _data_sections_clients_json__WEBPACK_IMPORTED_MODULE_1__.length / 2);\n var second = _data_sections_clients_json__WEBPACK_IMPORTED_MODULE_1__.slice(4, _data_sections_clients_json__WEBPACK_IMPORTED_MODULE_1__.length);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"section\", {\n className: \"clients section-padding\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4 valign md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"sec-head mb-0\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Best Features\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h3\", {\n className: \"wow mb-20 color-font\",\n children: \"Our Clients\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"Our area of practice is quite wide: design, graphics, branding, development.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 15\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-8\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row bord\",\n children: first.map(item => /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-md-3 col-6 brands\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item wow fadeIn\",\n \"data-wow-delay\": `${item.id == 1 ? \".3\" : item.id == 2 ? \".6\" : item.id == 3 ? \".8\" : item.id == 4 ? \".3\" : \"\"}s`,\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"img\",\n children: theme === \"light\" ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: item.lightImage,\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 27\n }, undefined) : /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: item.darkImage,\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 21\n }, undefined)\n }, item.id, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 19\n }, undefined))\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: second.map(item => /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: `${item.id == 5 ? \"col-md-3 col-6 brands sm-mb30\" : item.id == 6 ? \"col-md-3 col-6 brands sm-mb30\" : item.id == 7 ? \"col-md-3 col-6 brands\" : item.id == 8 ? \"col-md-3 col-6 brands\" : \"\"}`,\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item wow fadeIn\",\n \"data-wow-delay\": `${item.id == 1 ? \".4\" : item.id == 2 ? \".7\" : item.id == 3 ? \".5\" : item.id == 4 ? \".3\" : \"\"}s`,\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"img\",\n children: theme === \"light\" ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: item.lightImage,\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 27\n }, undefined) : /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: item.darkImage,\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 99,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 81,\n columnNumber: 21\n }, undefined)\n }, item.id, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 19\n }, undefined))\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 15\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 7\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 5\n }, undefined);\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Clients);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9DbGllbnRzL2NsaWVudHMuanN4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBOzs7QUFFQSxNQUFNRyxPQUFPLEdBQUcsQ0FBQztBQUFFQyxFQUFBQTtBQUFGLENBQUQsS0FBZTtBQUM3QixNQUFJQyxLQUFLLEdBQUdKLDhEQUFBLENBQWtCLENBQWxCLEVBQXFCQSwrREFBQSxHQUFxQixDQUExQyxDQUFaO0FBQ0EsTUFBSU8sTUFBTSxHQUFHUCw4REFBQSxDQUFrQixDQUFsQixFQUFxQkEsK0RBQXJCLENBQWI7QUFFQSxzQkFDRTtBQUFTLGFBQVMsRUFBQyx5QkFBbkI7QUFBQSwyQkFDRTtBQUFLLGVBQVMsRUFBQyxXQUFmO0FBQUEsNkJBQ0U7QUFBSyxpQkFBUyxFQUFDLEtBQWY7QUFBQSxnQ0FDRTtBQUFLLG1CQUFTLEVBQUMseUJBQWY7QUFBQSxpQ0FDRTtBQUFLLHFCQUFTLEVBQUMsZUFBZjtBQUFBLG9DQUNFO0FBQUksdUJBQVMsRUFBQyxZQUFkO0FBQTJCLGdDQUFlLEtBQTFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHlCQURGLGVBSUU7QUFBSSx1QkFBUyxFQUFDLHNCQUFkO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHlCQUpGLGVBS0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEseUJBTEY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxxQkFERixlQWFFO0FBQUssbUJBQVMsRUFBQyxVQUFmO0FBQUEsaUNBQ0U7QUFBQSxvQ0FDRTtBQUFLLHVCQUFTLEVBQUMsVUFBZjtBQUFBLHdCQUNHSSxLQUFLLENBQUNJLEdBQU4sQ0FBV0MsSUFBRCxpQkFDVDtBQUFtQix5QkFBUyxFQUFDLHVCQUE3QjtBQUFBLHVDQUNFO0FBQ0UsMkJBQVMsRUFBQyxpQkFEWjtBQUVFLG9DQUFpQixHQUNmQSxJQUFJLENBQUNDLEVBQUwsSUFBVyxDQUFYLEdBQ0ksSUFESixHQUVJRCxJQUFJLENBQUNDLEVBQUwsSUFBVyxDQUFYLEdBQ0EsSUFEQSxHQUVBRCxJQUFJLENBQUNDLEVBQUwsSUFBVyxDQUFYLEdBQ0EsSUFEQSxHQUVBRCxJQUFJLENBQUNDLEVBQUwsSUFBVyxDQUFYLEdBQ0EsSUFEQSxHQUVBLEVBQ0wsR0FaSDtBQUFBLHlDQWNFO0FBQUssNkJBQVMsRUFBQyxLQUFmO0FBQUEsOEJBQ0dQLEtBQUssS0FBSyxPQUFWLGdCQUNDO0FBQUsseUJBQUcsRUFBRU0sSUFBSSxDQUFDRSxVQUFmO0FBQTJCLHlCQUFHLEVBQUM7QUFBL0I7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQ0FERCxnQkFHQztBQUFLLHlCQUFHLEVBQUVGLElBQUksQ0FBQ0csU0FBZjtBQUEwQix5QkFBRyxFQUFDO0FBQTlCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFKSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZEY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGLGlCQUFVSCxJQUFJLENBQUNDLEVBQWY7QUFBQTtBQUFBO0FBQUE7QUFBQSwyQkFERDtBQURIO0FBQUE7QUFBQTtBQUFBO0FBQUEseUJBREYsZUFzQ0U7QUFBSyx1QkFBUyxFQUFDLEtBQWY7QUFBQSx3QkFDR0gsTUFBTSxDQUFDQyxHQUFQLENBQVlDLElBQUQsaUJBQ1Y7QUFFRSx5QkFBUyxFQUFHLEdBQ1ZBLElBQUksQ0FBQ0MsRUFBTCxJQUFXLENBQVgsR0FDSSwrQkFESixHQUVJRCxJQUFJLENBQUNDLEVBQUwsSUFBVyxDQUFYLEdBQ0EsK0JBREEsR0FFQUQsSUFBSSxDQUFDQyxFQUFMLElBQVcsQ0FBWCxHQUNBLHVCQURBLEdBRUFELElBQUksQ0FBQ0MsRUFBTCxJQUFXLENBQVgsR0FDQSx1QkFEQSxHQUVBLEVBQ0wsRUFaSDtBQUFBLHVDQWNFO0FBQ0UsMkJBQVMsRUFBQyxpQkFEWjtBQUVFLG9DQUFpQixHQUNmRCxJQUFJLENBQUNDLEVBQUwsSUFBVyxDQUFYLEdBQ0ksSUFESixHQUVJRCxJQUFJLENBQUNDLEVBQUwsSUFBVyxDQUFYLEdBQ0EsSUFEQSxHQUVBRCxJQUFJLENBQUNDLEVBQUwsSUFBVyxDQUFYLEdBQ0EsSUFEQSxHQUVBRCxJQUFJLENBQUNDLEVBQUwsSUFBVyxDQUFYLEdBQ0EsSUFEQSxHQUVBLEVBQ0wsR0FaSDtBQUFBLHlDQWNFO0FBQUssNkJBQVMsRUFBQyxLQUFmO0FBQUEsOEJBQ0dQLEtBQUssS0FBSyxPQUFWLGdCQUNDO0FBQUsseUJBQUcsRUFBRU0sSUFBSSxDQUFDRSxVQUFmO0FBQTJCLHlCQUFHLEVBQUM7QUFBL0I7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQ0FERCxnQkFHQztBQUFLLHlCQUFHLEVBQUVGLElBQUksQ0FBQ0csU0FBZjtBQUEwQix5QkFBRyxFQUFDO0FBQTlCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFKSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZEY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWRGLGlCQUNPSCxJQUFJLENBQUNDLEVBRFo7QUFBQTtBQUFBO0FBQUE7QUFBQSwyQkFERDtBQURIO0FBQUE7QUFBQTtBQUFBO0FBQUEseUJBdENGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBYkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFERjtBQStHRCxDQW5IRDs7QUFxSEEsaUVBQWVSLE9BQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly92aWUtcmVhY3QvLi9zcmMvY29tcG9uZW50cy9DbGllbnRzL2NsaWVudHMuanN4P2IzZDQiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBDbGllbnRzRGF0YSBmcm9tIFwiLi4vLi4vZGF0YS9zZWN0aW9ucy9jbGllbnRzLmpzb25cIjtcclxuaW1wb3J0IFNwbGl0IGZyb20gXCIuLi9TcGxpdFwiO1xyXG5cclxuY29uc3QgQ2xpZW50cyA9ICh7IHRoZW1lIH0pID0+IHtcclxuICB2YXIgZmlyc3QgPSBDbGllbnRzRGF0YS5zbGljZSgwLCBDbGllbnRzRGF0YS5sZW5ndGggLyAyKTtcclxuICB2YXIgc2Vjb25kID0gQ2xpZW50c0RhdGEuc2xpY2UoNCwgQ2xpZW50c0RhdGEubGVuZ3RoKTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cImNsaWVudHMgc2VjdGlvbi1wYWRkaW5nXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTQgdmFsaWduIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWMtaGVhZCBtYi0wXCI+XHJcbiAgICAgICAgICAgICAgPGg2IGNsYXNzTmFtZT1cIndvdyBmYWRlSW5cIiBkYXRhLXdvdy1kZWxheT1cIi41c1wiPlxyXG4gICAgICAgICAgICAgICAgQmVzdCBGZWF0dXJlc1xyXG4gICAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cIndvdyBtYi0yMCBjb2xvci1mb250XCI+T3VyIENsaWVudHM8L2gzPlxyXG4gICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgT3VyIGFyZWEgb2YgcHJhY3RpY2UgaXMgcXVpdGUgd2lkZTogZGVzaWduLCBncmFwaGljcywgYnJhbmRpbmcsXHJcbiAgICAgICAgICAgICAgICBkZXZlbG9wbWVudC5cclxuICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy04XCI+XHJcbiAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cgYm9yZFwiPlxyXG4gICAgICAgICAgICAgICAge2ZpcnN0Lm1hcCgoaXRlbSkgPT4gKFxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGtleT17aXRlbS5pZH0gY2xhc3NOYW1lPVwiY29sLW1kLTMgY29sLTYgYnJhbmRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaXRlbSB3b3cgZmFkZUluXCJcclxuICAgICAgICAgICAgICAgICAgICAgIGRhdGEtd293LWRlbGF5PXtgJHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5pZCA9PSAxXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBcIi4zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IGl0ZW0uaWQgPT0gMlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gXCIuNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBpdGVtLmlkID09IDNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IFwiLjhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogaXRlbS5pZCA9PSA0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBcIi4zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiXCJcclxuICAgICAgICAgICAgICAgICAgICAgIH1zYH1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7dGhlbWUgPT09IFwibGlnaHRcIiA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz17aXRlbS5saWdodEltYWdlfSBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPXtpdGVtLmRhcmtJbWFnZX0gYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgey8qIDxTcGxpdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cIiMwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImxpbmsgd29yZHMgY2hhcnMgc3BsaXR0aW5nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtc3BsaXR0aW5nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2l0ZW0udXJsfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9TcGxpdD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICApKX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAge3NlY29uZC5tYXAoKGl0ZW0pID0+IChcclxuICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIGtleT17aXRlbS5pZH1cclxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2Ake1xyXG4gICAgICAgICAgICAgICAgICAgICAgaXRlbS5pZCA9PSA1XHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gXCJjb2wtbWQtMyBjb2wtNiBicmFuZHMgc20tbWIzMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogaXRlbS5pZCA9PSA2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gXCJjb2wtbWQtMyBjb2wtNiBicmFuZHMgc20tbWIzMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogaXRlbS5pZCA9PSA3XHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gXCJjb2wtbWQtMyBjb2wtNiBicmFuZHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGl0ZW0uaWQgPT0gOFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IFwiY29sLW1kLTMgY29sLTYgYnJhbmRzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBcIlwiXHJcbiAgICAgICAgICAgICAgICAgICAgfWB9XHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJpdGVtIHdvdyBmYWRlSW5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgZGF0YS13b3ctZGVsYXk9e2Ake1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmlkID09IDFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IFwiLjRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogaXRlbS5pZCA9PSAyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBcIi43XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IGl0ZW0uaWQgPT0gM1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gXCIuNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBpdGVtLmlkID09IDRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IFwiLjNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgfXNgfVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt0aGVtZSA9PT0gXCJsaWdodFwiID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPXtpdGVtLmxpZ2h0SW1hZ2V9IGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9e2l0ZW0uZGFya0ltYWdlfSBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7LyogPFNwbGl0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiIzBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibGluayB3b3JkcyBjaGFycyBzcGxpdHRpbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1zcGxpdHRpbmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aXRlbS51cmx9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L1NwbGl0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvc2VjdGlvbj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgQ2xpZW50cztcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiQ2xpZW50c0RhdGEiLCJTcGxpdCIsIkNsaWVudHMiLCJ0aGVtZSIsImZpcnN0Iiwic2xpY2UiLCJsZW5ndGgiLCJzZWNvbmQiLCJtYXAiLCJpdGVtIiwiaWQiLCJsaWdodEltYWdlIiwiZGFya0ltYWdlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Clients/clients.jsx\n"); + +/***/ }), + +/***/ "./src/components/Footer/footer.jsx": +/*!******************************************!*\ + !*** ./src/components/Footer/footer.jsx ***! + \******************************************/ +/***/ ((__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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _data_app_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../data/app.json */ \"./src/data/app.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Footer\\\\footer.jsx\";\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\nconst Footer = ({\n hideBGCOLOR\n}) => {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"footer\", {\n className: `${!hideBGCOLOR ? \"sub-bg\" : \"\"}`,\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item md-mb50\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"title\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h5\", {\n children: \"Contact Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"ul\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-map-marker\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 19\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Officeal Address\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"Baghdad Street, Al Dana area, Abu Dhabi, United Arab Emirates\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 19\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-mail\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 19\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Email Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"hello@businesshub.abudhabi\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 19\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-call\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 19\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Call Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"+971 26340404\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 19\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 15\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"logo\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.lightLogo,\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"social\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-facebook-f\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 51,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-twitter\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-instagram\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-youtube\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 61,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 60,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"copy-right\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"\\xA9 2024, 2024 Business HUB international investment - All Rights Reserved.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 15\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 11\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 7\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 5\n }, undefined);\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Footer);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLDJCQVBGLGVBVUU7QUFBRyxvQkFBSSxFQUFDLElBQVI7QUFBQSx1Q0FDRTtBQUFHLDJCQUFTLEVBQUM7QUFBYjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSwyQkFWRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEseUJBSkYsZUFrQkU7QUFBSyx1QkFBUyxFQUFDLFlBQWY7QUFBQSxxQ0FDRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEseUJBbEJGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBbkNGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGVBREY7QUFxRUQsQ0F0RUQ7O0FBd0VBLGlFQUFlQyxNQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmllLXJlYWN0Ly4vc3JjL2NvbXBvbmVudHMvRm9vdGVyL2Zvb3Rlci5qc3g/ZjM5NCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAbmV4dC9uZXh0L25vLWltZy1lbGVtZW50ICovXHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IExpbmsgZnJvbSBcIm5leHQvbGlua1wiO1xyXG5pbXBvcnQgYXBwRGF0YSBmcm9tIFwiLi4vLi4vZGF0YS9hcHAuanNvblwiO1xyXG5cclxuY29uc3QgRm9vdGVyID0gKHsgaGlkZUJHQ09MT1IgfSkgPT4ge1xyXG4gIHJldHVybiAoXHJcbiAgICA8Zm9vdGVyIGNsYXNzTmFtZT17YCR7IWhpZGVCR0NPTE9SID8gXCJzdWItYmdcIiA6IFwiXCJ9YH0+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICA8aDU+Q29udGFjdCBVczwvaDU+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPHVsPlxyXG4gICAgICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJpY29uIHBlLTdzLW1hcC1tYXJrZXJcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoNj5PZmZpY2VhbCBBZGRyZXNzPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgICAgIEJhZ2hkYWQgU3RyZWV0LCBBbCBEYW5hIGFyZWEsIEFidSBEaGFiaSwgVW5pdGVkIEFyYWJcclxuICAgICAgICAgICAgICAgICAgICAgIEVtaXJhdGVzXHJcbiAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24gcGUtN3MtbWFpbFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg2PkVtYWlsIFVzPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICA8cD5oZWxsb0BidXNpbmVzc2h1Yi5hYnVkaGFiaTwvcD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJpY29uIHBlLTdzLWNhbGxcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoNj5DYWxsIFVzPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICA8cD4rOTcxIDI2MzQwNDA0PC9wPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy00XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibG9nb1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9e2FwcERhdGEubGlnaHRMb2dvfSBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic29jaWFsXCI+XHJcbiAgICAgICAgICAgICAgICA8YSBocmVmPVwiIzBcIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwiZmFiIGZhLWZhY2Vib29rLWZcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICA8YSBocmVmPVwiIzBcIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwiZmFiIGZhLXR3aXR0ZXJcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICA8YSBocmVmPVwiIzBcIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwiZmFiIGZhLWluc3RhZ3JhbVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYWIgZmEteW91dHViZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvcHktcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICDCqSAyMDI0LCAyMDI0IEJ1c2luZXNzIEhVQiBpbnRlcm5hdGlvbmFsIGludmVzdG1lbnQgLSBBbGxcclxuICAgICAgICAgICAgICAgICAgUmlnaHRzIFJlc2VydmVkLlxyXG4gICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZm9vdGVyPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBGb290ZXI7XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIkxpbmsiLCJhcHBEYXRhIiwiRm9vdGVyIiwiaGlkZUJHQ09MT1IiLCJsaWdodExvZ28iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/components/Footer/footer.jsx\n"); + +/***/ }), + +/***/ "./src/components/Minimal-Area/minimal-area.jsx": +/*!******************************************************!*\ + !*** ./src/components/Minimal-Area/minimal-area.jsx ***! + \******************************************************/ +/***/ ((__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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_cardMouseEffect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/cardMouseEffect */ \"./src/common/cardMouseEffect.js\");\n/* harmony import */ var _common_thumparallax__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/thumparallax */ \"./src/common/thumparallax.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Minimal-Area\\\\minimal-area.jsx\";\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\nconst MinimalArea = () => {\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(() => {\n (0,_common_cardMouseEffect__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(document.querySelectorAll(\".feat .items\"));\n setTimeout(() => {\n (0,_common_thumparallax__WEBPACK_IMPORTED_MODULE_2__.thumparallaxDown)();\n }, 1000);\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"section\", {\n className: \"min-area sub-bg\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n className: \"thumparallax-down\",\n src: \"/img/min-area.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-6 valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"content pt-0\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h4\", {\n className: \"wow color-font\",\n children: \"About us.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n className: \"wow txt\",\n \"data-splitting\": true,\n children: \"Our service is ranked among the finest in the UAE. We cultivate smart ideas for start-ups and seasoned players.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"ul\", {\n className: \"feat\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n className: \"wow fadeInUp\",\n \"data-wow-delay\": \".2s\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: \"1\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 21\n }, undefined), \" Our Message\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 19\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"To be the gateway to safe investment in the UAE and to work to create investment opportunities for investors from outside and within the country by connecting them with the appropriate partner, providing information on all aspects of doing business, and supporting them with sources of local talent that contribute to raising the local value ratio of foreign investors, which has become one of the Main requirements, identifying cost-effective solutions, building large brands within the UAE market, presenting creative ideas to differentiate in the local market, and supporting it with the best marketing strategies and plans that help it be the best among its competitors.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 19\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n className: \"wow fadeInUp\",\n \"data-wow-delay\": \".4s\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: \"2\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 21\n }, undefined), \" Our vision\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 19\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"To be the most trusted partner for all investors in the United Arab Emirates and to become a leader in providing innovative and sustainable solutions that meet the needs of our customers and business partners. We aim to build long-term relationships with our customers based on trust and mutual cooperation, and we seek to achieve joint success by achieving their goals and aspirations.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 19\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 15\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 9\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 7\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 5\n }, undefined);\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (MinimalArea);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9NaW5pbWFsLUFyZWEvbWluaW1hbC1hcmVhLmpzeC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsTUFBTUcsV0FBVyxHQUFHLE1BQU07QUFDeEJILEVBQUFBLHNEQUFBLENBQWdCLE1BQU07QUFDcEJDLElBQUFBLG1FQUFlLENBQUNJLFFBQVEsQ0FBQ0MsZ0JBQVQsQ0FBMEIsY0FBMUIsQ0FBRCxDQUFmO0FBQ0FDLElBQUFBLFVBQVUsQ0FBQyxNQUFNO0FBQ2ZMLE1BQUFBLHNFQUFnQjtBQUNqQixLQUZTLEVBRVAsSUFGTyxDQUFWO0FBR0QsR0FMRCxFQUtHLEVBTEg7QUFNQSxzQkFDRTtBQUFTLGFBQVMsRUFBQyxpQkFBbkI7QUFBQSwyQkFDRTtBQUFLLGVBQVMsRUFBQyxXQUFmO0FBQUEsNkJBQ0U7QUFBSyxpQkFBUyxFQUFDLEtBQWY7QUFBQSxnQ0FDRTtBQUFLLG1CQUFTLEVBQUMsVUFBZjtBQUFBLGlDQUNFO0FBQUsscUJBQVMsRUFBQyxLQUFmO0FBQUEsbUNBQ0U7QUFDRSx1QkFBUyxFQUFDLG1CQURaO0FBRUUsaUJBQUcsRUFBQyxtQkFGTjtBQUdFLGlCQUFHLEVBQUM7QUFITjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBREYsZUFVRTtBQUFLLG1CQUFTLEVBQUMsaUJBQWY7QUFBQSxpQ0FDRTtBQUFLLHFCQUFTLEVBQUMsY0FBZjtBQUFBLG9DQUNFO0FBQUksdUJBQVMsRUFBQyxnQkFBZDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSx5QkFERixlQUVFO0FBQUcsdUJBQVMsRUFBQyxTQUFiO0FBQXVCLG9DQUF2QjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSx5QkFGRixlQU1FO0FBQUksdUJBQVMsRUFBQyxNQUFkO0FBQUEsc0NBQ0U7QUFBSSx5QkFBUyxFQUFDLGNBQWQ7QUFBNkIsa0NBQWUsS0FBNUM7QUFBQSx3Q0FDRTtBQUFBLDBDQUNFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLCtCQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSw2QkFERixlQUlFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLDZCQUpGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSwyQkFERixlQW9CRTtBQUFJLHlCQUFTLEVBQUMsY0FBZDtBQUE2QixrQ0FBZSxLQUE1QztBQUFBLHdDQUNFO0FBQUEsMENBQ0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsK0JBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLDZCQURGLGVBSUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsNkJBSkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLDJCQXBCRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEseUJBTkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxxQkFWRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxlQURGO0FBNkRELENBcEVEOztBQXNFQSxpRUFBZUMsV0FBZiIsInNvdXJjZXMiOlsid2VicGFjazovL3ZpZS1yZWFjdC8uL3NyYy9jb21wb25lbnRzL01pbmltYWwtQXJlYS9taW5pbWFsLWFyZWEuanN4PzZlZjgiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBjYXJkTW91c2VFZmZlY3QgZnJvbSBcIi4uLy4uL2NvbW1vbi9jYXJkTW91c2VFZmZlY3RcIjtcclxuaW1wb3J0IHsgdGh1bXBhcmFsbGF4RG93biB9IGZyb20gXCIuLi8uLi9jb21tb24vdGh1bXBhcmFsbGF4XCI7XHJcblxyXG5jb25zdCBNaW5pbWFsQXJlYSA9ICgpID0+IHtcclxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgY2FyZE1vdXNlRWZmZWN0KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuZmVhdCAuaXRlbXNcIikpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRodW1wYXJhbGxheERvd24oKTtcclxuICAgIH0sIDEwMDApO1xyXG4gIH0sIFtdKTtcclxuICByZXR1cm4gKFxyXG4gICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwibWluLWFyZWEgc3ViLWJnXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0aHVtcGFyYWxsYXgtZG93blwiXHJcbiAgICAgICAgICAgICAgICBzcmM9XCIvaW1nL21pbi1hcmVhLmpwZ1wiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJcIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy02IHZhbGlnblwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRlbnQgcHQtMFwiPlxyXG4gICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJ3b3cgY29sb3ItZm9udFwiPkFib3V0IHVzLjwvaDQ+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwid293IHR4dFwiIGRhdGEtc3BsaXR0aW5nPlxyXG4gICAgICAgICAgICAgICAgT3VyIHNlcnZpY2UgaXMgcmFua2VkIGFtb25nIHRoZSBmaW5lc3QgaW4gdGhlIFVBRS4gV2UgY3VsdGl2YXRlXHJcbiAgICAgICAgICAgICAgICBzbWFydCBpZGVhcyBmb3Igc3RhcnQtdXBzIGFuZCBzZWFzb25lZCBwbGF5ZXJzLlxyXG4gICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICA8dWwgY2xhc3NOYW1lPVwiZmVhdFwiPlxyXG4gICAgICAgICAgICAgICAgPGxpIGNsYXNzTmFtZT1cIndvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjJzXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxoNj5cclxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj4xPC9zcGFuPiBPdXIgTWVzc2FnZVxyXG4gICAgICAgICAgICAgICAgICA8L2g2PlxyXG4gICAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgICBUbyBiZSB0aGUgZ2F0ZXdheSB0byBzYWZlIGludmVzdG1lbnQgaW4gdGhlIFVBRSBhbmQgdG8gd29ya1xyXG4gICAgICAgICAgICAgICAgICAgIHRvIGNyZWF0ZSBpbnZlc3RtZW50IG9wcG9ydHVuaXRpZXMgZm9yIGludmVzdG9ycyBmcm9tXHJcbiAgICAgICAgICAgICAgICAgICAgb3V0c2lkZSBhbmQgd2l0aGluIHRoZSBjb3VudHJ5IGJ5IGNvbm5lY3RpbmcgdGhlbSB3aXRoIHRoZVxyXG4gICAgICAgICAgICAgICAgICAgIGFwcHJvcHJpYXRlIHBhcnRuZXIsIHByb3ZpZGluZyBpbmZvcm1hdGlvbiBvbiBhbGwgYXNwZWN0cyBvZlxyXG4gICAgICAgICAgICAgICAgICAgIGRvaW5nIGJ1c2luZXNzLCBhbmQgc3VwcG9ydGluZyB0aGVtIHdpdGggc291cmNlcyBvZiBsb2NhbFxyXG4gICAgICAgICAgICAgICAgICAgIHRhbGVudCB0aGF0IGNvbnRyaWJ1dGUgdG8gcmFpc2luZyB0aGUgbG9jYWwgdmFsdWUgcmF0aW8gb2ZcclxuICAgICAgICAgICAgICAgICAgICBmb3JlaWduIGludmVzdG9ycywgd2hpY2ggaGFzIGJlY29tZSBvbmUgb2YgdGhlIE1haW5cclxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlbWVudHMsIGlkZW50aWZ5aW5nIGNvc3QtZWZmZWN0aXZlIHNvbHV0aW9ucywgYnVpbGRpbmdcclxuICAgICAgICAgICAgICAgICAgICBsYXJnZSBicmFuZHMgd2l0aGluIHRoZSBVQUUgbWFya2V0LCBwcmVzZW50aW5nIGNyZWF0aXZlXHJcbiAgICAgICAgICAgICAgICAgICAgaWRlYXMgdG8gZGlmZmVyZW50aWF0ZSBpbiB0aGUgbG9jYWwgbWFya2V0LCBhbmQgc3VwcG9ydGluZ1xyXG4gICAgICAgICAgICAgICAgICAgIGl0IHdpdGggdGhlIGJlc3QgbWFya2V0aW5nIHN0cmF0ZWdpZXMgYW5kIHBsYW5zIHRoYXQgaGVscCBpdFxyXG4gICAgICAgICAgICAgICAgICAgIGJlIHRoZSBiZXN0IGFtb25nIGl0cyBjb21wZXRpdG9ycy5cclxuICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgIDxsaSBjbGFzc05hbWU9XCJ3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICA8aDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+Mjwvc3Bhbj4gT3VyIHZpc2lvblxyXG4gICAgICAgICAgICAgICAgICA8L2g2PlxyXG4gICAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgICBUbyBiZSB0aGUgbW9zdCB0cnVzdGVkIHBhcnRuZXIgZm9yIGFsbCBpbnZlc3RvcnMgaW4gdGhlXHJcbiAgICAgICAgICAgICAgICAgICAgVW5pdGVkIEFyYWIgRW1pcmF0ZXMgYW5kIHRvIGJlY29tZSBhIGxlYWRlciBpbiBwcm92aWRpbmdcclxuICAgICAgICAgICAgICAgICAgICBpbm5vdmF0aXZlIGFuZCBzdXN0YWluYWJsZSBzb2x1dGlvbnMgdGhhdCBtZWV0IHRoZSBuZWVkcyBvZlxyXG4gICAgICAgICAgICAgICAgICAgIG91ciBjdXN0b21lcnMgYW5kIGJ1c2luZXNzIHBhcnRuZXJzLiBXZSBhaW0gdG8gYnVpbGRcclxuICAgICAgICAgICAgICAgICAgICBsb25nLXRlcm0gcmVsYXRpb25zaGlwcyB3aXRoIG91ciBjdXN0b21lcnMgYmFzZWQgb24gdHJ1c3RcclxuICAgICAgICAgICAgICAgICAgICBhbmQgbXV0dWFsIGNvb3BlcmF0aW9uLCBhbmQgd2Ugc2VlayB0byBhY2hpZXZlIGpvaW50IHN1Y2Nlc3NcclxuICAgICAgICAgICAgICAgICAgICBieSBhY2hpZXZpbmcgdGhlaXIgZ29hbHMgYW5kIGFzcGlyYXRpb25zLlxyXG4gICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBNaW5pbWFsQXJlYTtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiY2FyZE1vdXNlRWZmZWN0IiwidGh1bXBhcmFsbGF4RG93biIsIk1pbmltYWxBcmVhIiwidXNlRWZmZWN0IiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yQWxsIiwic2V0VGltZW91dCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Minimal-Area/minimal-area.jsx\n"); + +/***/ }), + +/***/ "./src/components/Navbar/navbar.jsx": +/*!******************************************!*\ + !*** ./src/components/Navbar/navbar.jsx ***! + \******************************************/ +/***/ ((__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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _data_app_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../data/app.json */ \"./src/data/app.json\");\n/* harmony import */ var _common_navbar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/navbar */ \"./src/common/navbar.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Navbar\\\\navbar.jsx\";\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nconst Navbar = ({\n lr,\n nr,\n theme\n}) => {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"nav\", {\n ref: nr,\n className: `navbar navbar-expand-lg change ${theme === \"themeL\" ? \"light\" : \"\"}`,\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"a\", {\n className: \"logo\",\n children: theme ? theme === \"themeL\" ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n ref: lr,\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.darkLogo,\n alt: \"logo\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 17\n }, undefined) : /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n ref: lr,\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.lightLogo,\n alt: \"logo\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 17\n }, undefined) : /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n ref: lr,\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.lightLogo,\n alt: \"logo\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 11\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 9\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"button\", {\n className: \"navbar-toggler\",\n type: \"button\",\n onClick: _common_navbar__WEBPACK_IMPORTED_MODULE_3__.handleMobileDropdown,\n \"data-toggle\": \"collapse\",\n \"data-target\": \"#navbarSupportedContent\",\n \"aria-controls\": \"navbarSupportedContent\",\n \"aria-expanded\": \"false\",\n \"aria-label\": \"Toggle navigation\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"icon-bar\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"i\", {\n className: \"fas fa-bars\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"collapse navbar-collapse\",\n id: \"navbarSupportedContent\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"ul\", {\n className: \"navbar-nav ml-auto\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"nav-link \",\n children: \"Home\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 13\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: `/about`,\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"a\", {\n className: \"nav-link\",\n children: \"Who we are\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 13\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: `/services`,\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"nav-link\",\n children: \"Our Services\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 59,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 13\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: `/blog/blog-light`,\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"nav-link \",\n children: \"Blog\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 13\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: `/contact/contact-light`,\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"a\", {\n className: \"nav-link\",\n children: \"Contact\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 13\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 7\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, undefined);\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Navbar);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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RUFBRyxrQkFBYjtBQUFBLHFDQUNFO0FBQU0seUJBQVMsRUFBQyxXQUFoQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQWhCRixlQXFCRTtBQUFJLHFCQUFTLEVBQUMsVUFBZDtBQUFBLG1DQUNFLDhEQUFDLGtEQUFEO0FBQU0sa0JBQUksRUFBRyx3QkFBYjtBQUFBLHFDQUNFO0FBQUcseUJBQVMsRUFBQyxVQUFiO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBckJGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsbUJBOUJGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU5GO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFERjtBQXFFRCxDQXRFRDs7QUF3RUEsaUVBQWVDLE1BQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly92aWUtcmVhY3QvLi9zcmMvY29tcG9uZW50cy9OYXZiYXIvbmF2YmFyLmpzeD83YWYwIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBuZXh0L25leHQvbm8taW1nLWVsZW1lbnQgKi9cclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgTGluayBmcm9tIFwibmV4dC9saW5rXCI7XHJcbmltcG9ydCBhcHBEYXRhIGZyb20gXCIuLi8uLi9kYXRhL2FwcC5qc29uXCI7XHJcbmltcG9ydCB7IGhhbmRsZURyb3Bkb3duLCBoYW5kbGVNb2JpbGVEcm9wZG93biB9IGZyb20gXCIuLi8uLi9jb21tb24vbmF2YmFyXCI7XHJcblxyXG5jb25zdCBOYXZiYXIgPSAoeyBsciwgbnIsIHRoZW1lIH0pID0+IHtcclxuICByZXR1cm4gKFxyXG4gICAgPG5hdlxyXG4gICAgICByZWY9e25yfVxyXG4gICAgICBjbGFzc05hbWU9e2BuYXZiYXIgbmF2YmFyLWV4cGFuZC1sZyBjaGFuZ2UgJHtcclxuICAgICAgICB0aGVtZSA9PT0gXCJ0aGVtZUxcIiA/IFwibGlnaHRcIiA6IFwiXCJcclxuICAgICAgfWB9XHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPExpbmsgaHJlZj1cIi9cIj5cclxuICAgICAgICAgIDxhIGNsYXNzTmFtZT1cImxvZ29cIj5cclxuICAgICAgICAgICAge3RoZW1lID8gKFxyXG4gICAgICAgICAgICAgIHRoZW1lID09PSBcInRoZW1lTFwiID8gKFxyXG4gICAgICAgICAgICAgICAgPGltZyByZWY9e2xyfSBzcmM9e2FwcERhdGEuZGFya0xvZ299IGFsdD1cImxvZ29cIiAvPlxyXG4gICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICA8aW1nIHJlZj17bHJ9IHNyYz17YXBwRGF0YS5saWdodExvZ299IGFsdD1cImxvZ29cIiAvPlxyXG4gICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICA8aW1nIHJlZj17bHJ9IHNyYz17YXBwRGF0YS5saWdodExvZ299IGFsdD1cImxvZ29cIiAvPlxyXG4gICAgICAgICAgICApfVxyXG4gICAgICAgICAgPC9hPlxyXG4gICAgICAgIDwvTGluaz5cclxuXHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgY2xhc3NOYW1lPVwibmF2YmFyLXRvZ2dsZXJcIlxyXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVNb2JpbGVEcm9wZG93bn1cclxuICAgICAgICAgIGRhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIlxyXG4gICAgICAgICAgZGF0YS10YXJnZXQ9XCIjbmF2YmFyU3VwcG9ydGVkQ29udGVudFwiXHJcbiAgICAgICAgICBhcmlhLWNvbnRyb2xzPVwibmF2YmFyU3VwcG9ydGVkQ29udGVudFwiXHJcbiAgICAgICAgICBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIlxyXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIlRvZ2dsZSBuYXZpZ2F0aW9uXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJpY29uLWJhclwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYXMgZmEtYmFyc1wiPjwvaT5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xsYXBzZSBuYXZiYXItY29sbGFwc2VcIiBpZD1cIm5hdmJhclN1cHBvcnRlZENvbnRlbnRcIj5cclxuICAgICAgICAgIDx1bCBjbGFzc05hbWU9XCJuYXZiYXItbmF2IG1sLWF1dG9cIj5cclxuICAgICAgICAgICAgPGxpIGNsYXNzTmFtZT1cIm5hdi1pdGVtIFwiPlxyXG4gICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJuYXYtbGluayBcIj5Ib21lPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgPGxpIGNsYXNzTmFtZT1cIm5hdi1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgPExpbmsgaHJlZj17YC9hYm91dGB9PlxyXG4gICAgICAgICAgICAgICAgPGEgY2xhc3NOYW1lPVwibmF2LWxpbmtcIj5XaG8gd2UgYXJlPC9hPlxyXG4gICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgPGxpIGNsYXNzTmFtZT1cIm5hdi1pdGVtIFwiPlxyXG4gICAgICAgICAgICAgIDxMaW5rIGhyZWY9e2Avc2VydmljZXNgfT5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm5hdi1saW5rXCI+T3VyIFNlcnZpY2VzPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgPGxpIGNsYXNzTmFtZT1cIm5hdi1pdGVtIFwiPlxyXG4gICAgICAgICAgICAgIDxMaW5rIGhyZWY9e2AvYmxvZy9ibG9nLWxpZ2h0YH0+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJuYXYtbGluayBcIj5CbG9nPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgPGxpIGNsYXNzTmFtZT1cIm5hdi1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgPExpbmsgaHJlZj17YC9jb250YWN0L2NvbnRhY3QtbGlnaHRgfT5cclxuICAgICAgICAgICAgICAgIDxhIGNsYXNzTmFtZT1cIm5hdi1saW5rXCI+Q29udGFjdDwvYT5cclxuICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICA8L3VsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmF2PlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBOYXZiYXI7XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIkxpbmsiLCJhcHBEYXRhIiwiaGFuZGxlRHJvcGRvd24iLCJoYW5kbGVNb2JpbGVEcm9wZG93biIsIk5hdmJhciIsImxyIiwibnIiLCJ0aGVtZSIsImRhcmtMb2dvIiwibGlnaHRMb2dvIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Navbar/navbar.jsx\n"); + +/***/ }), + +/***/ "./src/components/Pages-header/index.jsx": +/*!***********************************************!*\ + !*** ./src/components/Pages-header/index.jsx ***! + \***********************************************/ +/***/ ((__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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Pages-header\\\\index.jsx\";\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\nconst PagesHeader = () => {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"header\", {\n className: \"pages-header circle-bg valign\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"col-lg-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"cont mt-100 mb-50 text-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"h1\", {\n className: \"color-font fw-700\",\n children: \"Our dedicated team of creatives is bursting with talent, experience and passion for what we do.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"col-lg-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"img\", {\n src: \"/img/slid/about.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 11\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 9\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 7,\n columnNumber: 7\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"half sub-bg\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"circle-color\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"gradient-circle\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"gradient-circle two\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 11\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 7\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 6,\n columnNumber: 5\n }, undefined);\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (PagesHeader);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9QYWdlcy1oZWFkZXIvaW5kZXguanN4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTtBQUNBOzs7QUFFQSxNQUFNQyxXQUFXLEdBQUcsTUFBTTtBQUN4QixzQkFDRTtBQUFRLGFBQVMsRUFBQywrQkFBbEI7QUFBQSw0QkFDRTtBQUFLLGVBQVMsRUFBQyxXQUFmO0FBQUEsNkJBQ0U7QUFBSyxpQkFBUyxFQUFDLDRCQUFmO0FBQUEsZ0NBQ0U7QUFBSyxtQkFBUyxFQUFDLFdBQWY7QUFBQSxpQ0FDRTtBQUFLLHFCQUFTLEVBQUMsK0JBQWY7QUFBQSxtQ0FDRTtBQUFJLHVCQUFTLEVBQUMsbUJBQWQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxxQkFERixlQVNFO0FBQUssbUJBQVMsRUFBQyxXQUFmO0FBQUEsaUNBQ0U7QUFBSyxxQkFBUyxFQUFDLEtBQWY7QUFBQSxtQ0FDRTtBQUFLLGlCQUFHLEVBQUMscUJBQVQ7QUFBK0IsaUJBQUcsRUFBQztBQUFuQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBVEY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFERixlQWtCRTtBQUFLLGVBQVMsRUFBQyxhQUFmO0FBQUEsNkJBQ0U7QUFBSyxpQkFBUyxFQUFDLGNBQWY7QUFBQSxnQ0FDRTtBQUFLLG1CQUFTLEVBQUM7QUFBZjtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQURGLGVBRUU7QUFBSyxtQkFBUyxFQUFDO0FBQWY7QUFBQTtBQUFBO0FBQUE7QUFBQSxxQkFGRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQWxCRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFERjtBQTJCRCxDQTVCRDs7QUE4QkEsaUVBQWVBLFdBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly92aWUtcmVhY3QvLi9zcmMvY29tcG9uZW50cy9QYWdlcy1oZWFkZXIvaW5kZXguanN4P2Q4NjYiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXHJcblxyXG5jb25zdCBQYWdlc0hlYWRlciA9ICgpID0+IHtcclxuICByZXR1cm4gKFxyXG4gICAgPGhlYWRlciBjbGFzc05hbWU9XCJwYWdlcy1oZWFkZXIgY2lyY2xlLWJnIHZhbGlnblwiPlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTEwXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udCBtdC0xMDAgbWItNTAgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8aDEgY2xhc3NOYW1lPVwiY29sb3ItZm9udCBmdy03MDBcIj5cclxuICAgICAgICAgICAgICAgIE91ciBkZWRpY2F0ZWQgdGVhbSBvZiBjcmVhdGl2ZXMgaXMgYnVyc3Rpbmcgd2l0aCB0YWxlbnQsXHJcbiAgICAgICAgICAgICAgICBleHBlcmllbmNlIGFuZCBwYXNzaW9uIGZvciB3aGF0IHdlIGRvLlxyXG4gICAgICAgICAgICAgIDwvaDE+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0xMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy9zbGlkL2Fib3V0LmpwZ1wiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImhhbGYgc3ViLWJnXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjaXJjbGUtY29sb3JcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JhZGllbnQtY2lyY2xlXCI+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyYWRpZW50LWNpcmNsZSB0d29cIj48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2hlYWRlcj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgUGFnZXNIZWFkZXI7Il0sIm5hbWVzIjpbIlJlYWN0IiwiUGFnZXNIZWFkZXIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/components/Pages-header/index.jsx\n"); + +/***/ }), + +/***/ "./src/components/Services/services.jsx": +/*!**********************************************!*\ + !*** ./src/components/Services/services.jsx ***! + \**********************************************/ +/***/ ((__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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _data_sections_features_json__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../data/sections/features.json */ \"./src/data/sections/features.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Services\\\\services.jsx\";\n\n\n\n\n\nconst Services = ({\n style,\n lines\n}) => {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"section\", {\n className: `services bords section-padding ${style === \"4item\" ? \"lficon\" : lines ? \"\" : \"pt-0\"}`,\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"container\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Best Features\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: \"We are a new business development agency\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 15\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 11\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 9\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"row\",\n children: style === \"4item\" ? _data_sections_features_json__WEBPACK_IMPORTED_MODULE_1__.map(feature => /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"col-lg-6 wow fadeInLeft\",\n \"data-wow-delay\": `${feature.id == 1 ? \".5\" : feature.id === 2 ? \".7\" : feature.id === 3 ? \".9\" : \"1.1\"}s`,\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"item-box\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"span\", {\n className: `icon ${feature.icon}`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"h6\", {\n children: feature.title\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 23\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"p\", {\n children: feature.content\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 23\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 44,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 19\n }, undefined)\n }, feature.id, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 17\n }, undefined)) : // max item 3 in Home page\n _data_sections_features_json__WEBPACK_IMPORTED_MODULE_1__.slice(0, 3).map(feature => /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"col-lg-4 wow fadeInLeft\",\n \"data-wow-delay\": \".5s\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"item-box md-mb50\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"span\", {\n className: `icon ${feature.icon}`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 59,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"h6\", {\n children: feature.title\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 60,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"p\", {\n children: feature.content\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 61,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 19\n }, undefined)\n }, feature.id, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 17\n }, undefined))\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 9\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 7\n }, undefined), lines ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"line top left\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"line bottom right\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 11\n }, undefined)]\n }, void 0, true) : null]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 6,\n columnNumber: 5\n }, undefined);\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Services);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9TZXJ2aWNlcy9zZXJ2aWNlcy5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBO0FBQ0E7Ozs7QUFFQSxNQUFNRSxRQUFRLEdBQUcsQ0FBQztBQUFFQyxFQUFBQSxLQUFGO0FBQVNDLEVBQUFBO0FBQVQsQ0FBRCxLQUFzQjtBQUNyQyxzQkFDRTtBQUNFLGFBQVMsRUFBRyxrQ0FDVkQsS0FBSyxLQUFLLE9BQVYsR0FBb0IsUUFBcEIsR0FBK0JDLEtBQUssR0FBRyxFQUFILEdBQVEsTUFDN0MsRUFISDtBQUFBLDRCQUtFO0FBQUssZUFBUyxFQUFDLFdBQWY7QUFBQSw4QkFDRTtBQUFLLGlCQUFTLEVBQUMsNEJBQWY7QUFBQSwrQkFDRTtBQUFLLG1CQUFTLEVBQUMsb0JBQWY7QUFBQSxpQ0FDRTtBQUFLLHFCQUFTLEVBQUMsdUJBQWY7QUFBQSxvQ0FDRTtBQUFJLHVCQUFTLEVBQUMsWUFBZDtBQUEyQixnQ0FBZSxLQUExQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSx5QkFERixlQUlFO0FBQUksdUJBQVMsRUFBQyxnQkFBZDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSx5QkFKRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxtQkFERixlQWFFO0FBQUssaUJBQVMsRUFBQyxLQUFmO0FBQUEsa0JBQ0dELEtBQUssS0FBSyxPQUFWLEdBQ0dGLDZEQUFBLENBQWtCSyxPQUFELGlCQUNmO0FBRUUsbUJBQVMsRUFBQyx5QkFGWjtBQUdFLDRCQUFpQixHQUNmQSxPQUFPLENBQUNDLEVBQVIsSUFBYyxDQUFkLEdBQ0ksSUFESixHQUVJRCxPQUFPLENBQUNDLEVBQVIsS0FBZSxDQUFmLEdBQ0EsSUFEQSxHQUVBRCxPQUFPLENBQUNDLEVBQVIsS0FBZSxDQUFmLEdBQ0EsSUFEQSxHQUVBLEtBQ0wsR0FYSDtBQUFBLGlDQWFFO0FBQUsscUJBQVMsRUFBQyxVQUFmO0FBQUEsb0NBQ0U7QUFBQSxxQ0FDRTtBQUFNLHlCQUFTLEVBQUcsUUFBT0QsT0FBTyxDQUFDRSxJQUFLO0FBQXRDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLHlCQURGLGVBSUU7QUFBSyx1QkFBUyxFQUFDLE1BQWY7QUFBQSxzQ0FDRTtBQUFBLDBCQUFLRixPQUFPLENBQUNHO0FBQWI7QUFBQTtBQUFBO0FBQUE7QUFBQSwyQkFERixlQUVFO0FBQUEsMEJBQUlILE9BQU8sQ0FBQ0k7QUFBWjtBQUFBO0FBQUE7QUFBQTtBQUFBLDJCQUZGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSx5QkFKRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFiRixXQUNPSixPQUFPLENBQUNDLEVBRGY7QUFBQTtBQUFBO0FBQUE7QUFBQSxxQkFERixDQURILEdBMEJHO0FBQ0FOLFFBQUFBLCtEQUFBLENBQW1CLENBQW5CLEVBQXNCLENBQXRCLEVBQXlCSSxHQUF6QixDQUE4QkMsT0FBRCxpQkFDM0I7QUFFRSxtQkFBUyxFQUFDLHlCQUZaO0FBR0UsNEJBQWUsS0FIakI7QUFBQSxpQ0FLRTtBQUFLLHFCQUFTLEVBQUMsa0JBQWY7QUFBQSxvQ0FDRTtBQUFNLHVCQUFTLEVBQUcsUUFBT0EsT0FBTyxDQUFDRSxJQUFLO0FBQXRDO0FBQUE7QUFBQTtBQUFBO0FBQUEseUJBREYsZUFFRTtBQUFBLHdCQUFLRixPQUFPLENBQUNHO0FBQWI7QUFBQTtBQUFBO0FBQUE7QUFBQSx5QkFGRixlQUdFO0FBQUEsd0JBQUlILE9BQU8sQ0FBQ0k7QUFBWjtBQUFBO0FBQUE7QUFBQTtBQUFBLHlCQUhGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUxGLFdBQ09KLE9BQU8sQ0FBQ0MsRUFEZjtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQURGO0FBNUJOO0FBQUE7QUFBQTtBQUFBO0FBQUEsbUJBYkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQUxGLEVBNkRHSCxLQUFLLGdCQUNKO0FBQUEsOEJBQ0U7QUFBSyxpQkFBUyxFQUFDO0FBQWY7QUFBQTtBQUFBO0FBQUE7QUFBQSxtQkFERixlQUVFO0FBQUssaUJBQVMsRUFBQztBQUFmO0FBQUE7QUFBQTtBQUFBO0FBQUEsbUJBRkY7QUFBQSxvQkFESSxHQUtGLElBbEVOO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxlQURGO0FBc0VELENBdkVEOztBQXlFQSxpRUFBZUYsUUFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL3ZpZS1yZWFjdC8uL3NyYy9jb21wb25lbnRzL1NlcnZpY2VzL3NlcnZpY2VzLmpzeD8yZWU0Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IGZlYXR1cmVzRGF0YSBmcm9tIFwiLi4vLi4vZGF0YS9zZWN0aW9ucy9mZWF0dXJlcy5qc29uXCI7XHJcblxyXG5jb25zdCBTZXJ2aWNlcyA9ICh7IHN0eWxlLCBsaW5lcyB9KSA9PiB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uXHJcbiAgICAgIGNsYXNzTmFtZT17YHNlcnZpY2VzIGJvcmRzIHNlY3Rpb24tcGFkZGluZyAke1xyXG4gICAgICAgIHN0eWxlID09PSBcIjRpdGVtXCIgPyBcImxmaWNvblwiIDogbGluZXMgPyBcIlwiIDogXCJwdC0wXCJcclxuICAgICAgfWB9XHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOCBjb2wtbWQtMTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWMtaGVhZCAgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8aDYgY2xhc3NOYW1lPVwid293IGZhZGVJblwiIGRhdGEtd293LWRlbGF5PVwiLjVzXCI+XHJcbiAgICAgICAgICAgICAgICBCZXN0IEZlYXR1cmVzXHJcbiAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwid293IGNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgIFdlIGFyZSBhIG5ldyBidXNpbmVzcyBkZXZlbG9wbWVudCBhZ2VuY3lcclxuICAgICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICB7c3R5bGUgPT09IFwiNGl0ZW1cIlxyXG4gICAgICAgICAgICA/IGZlYXR1cmVzRGF0YS5tYXAoKGZlYXR1cmUpID0+IChcclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAga2V5PXtmZWF0dXJlLmlkfVxyXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJjb2wtbGctNiB3b3cgZmFkZUluTGVmdFwiXHJcbiAgICAgICAgICAgICAgICAgIGRhdGEtd293LWRlbGF5PXtgJHtcclxuICAgICAgICAgICAgICAgICAgICBmZWF0dXJlLmlkID09IDFcclxuICAgICAgICAgICAgICAgICAgICAgID8gXCIuNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICA6IGZlYXR1cmUuaWQgPT09IDJcclxuICAgICAgICAgICAgICAgICAgICAgID8gXCIuN1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICA6IGZlYXR1cmUuaWQgPT09IDNcclxuICAgICAgICAgICAgICAgICAgICAgID8gXCIuOVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICA6IFwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgfXNgfVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0tYm94XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17YGljb24gJHtmZWF0dXJlLmljb259YH0+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGg2PntmZWF0dXJlLnRpdGxlfTwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cD57ZmVhdHVyZS5jb250ZW50fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICApKVxyXG4gICAgICAgICAgICA6IC8vIG1heCBpdGVtIDMgaW4gSG9tZSBwYWdlXHJcbiAgICAgICAgICAgICAgZmVhdHVyZXNEYXRhLnNsaWNlKDAsIDMpLm1hcCgoZmVhdHVyZSkgPT4gKFxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICBrZXk9e2ZlYXR1cmUuaWR9XHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImNvbC1sZy00IHdvdyBmYWRlSW5MZWZ0XCJcclxuICAgICAgICAgICAgICAgICAgZGF0YS13b3ctZGVsYXk9XCIuNXNcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0tYm94IG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2BpY29uICR7ZmVhdHVyZS5pY29ufWB9Pjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+e2ZlYXR1cmUudGl0bGV9PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICA8cD57ZmVhdHVyZS5jb250ZW50fTwvcD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICApKX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIHtsaW5lcyA/IChcclxuICAgICAgICA8PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsaW5lIHRvcCBsZWZ0XCI+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxpbmUgYm90dG9tIHJpZ2h0XCI+PC9kaXY+XHJcbiAgICAgICAgPC8+XHJcbiAgICAgICkgOiBudWxsfVxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBTZXJ2aWNlcztcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiZmVhdHVyZXNEYXRhIiwiU2VydmljZXMiLCJzdHlsZSIsImxpbmVzIiwibWFwIiwiZmVhdHVyZSIsImlkIiwiaWNvbiIsInRpdGxlIiwiY29udGVudCIsInNsaWNlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Services/services.jsx\n"); + +/***/ }), + +/***/ "./src/components/Skills-circle/skills-circle.jsx": +/*!********************************************************!*\ + !*** ./src/components/Skills-circle/skills-circle.jsx ***! + \********************************************************/ +/***/ ((__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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_circular_progressbar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-circular-progressbar */ \"react-circular-progressbar\");\n/* harmony import */ var react_circular_progressbar__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_circular_progressbar__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react_circular_progressbar_dist_styles_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-circular-progressbar/dist/styles.css */ \"./node_modules/react-circular-progressbar/dist/styles.css\");\n/* harmony import */ var react_circular_progressbar_dist_styles_css__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_circular_progressbar_dist_styles_css__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Skills-circle\\\\skills-circle.jsx\";\n\n\n\n\n\nconst SkillsCircle = ({\n from,\n theme\n}) => {\n const cpStyle = {\n path: {\n stroke: \"rgb(18, 194, 233)\"\n },\n trail: {\n stroke: theme ? theme == \"dark\" ? \"#0f1013\" : \"#e5e5e5\" : \"\"\n },\n text: {\n fill: theme ? theme == \"dark\" ? \"#ffffff\" : \"#4e4e4e\" : \"\",\n // Text size\n fontSize: \"16px\"\n }\n };\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"section\", {\n className: `skills-circle pt-50 pb-50 ${from ? from === \"aboutPage\" ? \"sub-bg\" : \"\" : \"\"}`,\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-7\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item wow fadeInLeft\",\n \"data-wow-delay\": \".6\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"skill\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(react_circular_progressbar__WEBPACK_IMPORTED_MODULE_1__.CircularProgressbar, {\n value: 90,\n strokeWidth: 2,\n text: `${90}%`,\n styles: cpStyle\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: \"Project\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 23\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Consulting\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 23\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item wow fadeInLeft\",\n \"data-wow-delay\": \".3\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"skill\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(react_circular_progressbar__WEBPACK_IMPORTED_MODULE_1__.CircularProgressbar, {\n value: 75,\n strokeWidth: 2,\n text: `${75}%`,\n styles: cpStyle\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: \"App\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 23\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Development\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 23\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 11\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 9\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 7\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 5\n }, undefined);\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SkillsCircle);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9Ta2lsbHMtY2lyY2xlL3NraWxscy1jaXJjbGUuanN4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7OztBQUVBLE1BQU1HLFlBQVksR0FBRyxDQUFDO0FBQUVDLEVBQUFBLElBQUY7QUFBUUMsRUFBQUE7QUFBUixDQUFELEtBQXFCO0FBQ3hDLFFBQU1DLE9BQU8sR0FBRztBQUNkQyxJQUFBQSxJQUFJLEVBQUU7QUFDSkMsTUFBQUEsTUFBTSxFQUFFO0FBREosS0FEUTtBQUlkQyxJQUFBQSxLQUFLLEVBQUU7QUFDTEQsTUFBQUEsTUFBTSxFQUFFSCxLQUFLLEdBQUlBLEtBQUssSUFBSSxNQUFULEdBQWtCLFNBQWxCLEdBQThCLFNBQWxDLEdBQStDO0FBRHZELEtBSk87QUFPZEssSUFBQUEsSUFBSSxFQUFFO0FBQ0pDLE1BQUFBLElBQUksRUFBRU4sS0FBSyxHQUFJQSxLQUFLLElBQUksTUFBVCxHQUFrQixTQUFsQixHQUE4QixTQUFsQyxHQUErQyxFQUR0RDtBQUVKO0FBQ0FPLE1BQUFBLFFBQVEsRUFBRTtBQUhOO0FBUFEsR0FBaEI7QUFhQSxzQkFDRTtBQUNFLGFBQVMsRUFBRyw2QkFDVlIsSUFBSSxHQUFJQSxJQUFJLEtBQUssV0FBVCxHQUF1QixRQUF2QixHQUFrQyxFQUF0QyxHQUE0QyxFQUNqRCxFQUhIO0FBQUEsMkJBS0U7QUFBSyxlQUFTLEVBQUMsV0FBZjtBQUFBLDZCQUNFO0FBQUssaUJBQVMsRUFBQyxLQUFmO0FBQUEsK0JBQ0U7QUFBSyxtQkFBUyxFQUFDLFVBQWY7QUFBQSxpQ0FDRTtBQUFLLHFCQUFTLEVBQUMsRUFBZjtBQUFBLG1DQUNFO0FBQUssdUJBQVMsRUFBQyxLQUFmO0FBQUEsc0NBQ0U7QUFBSyx5QkFBUyxFQUFDLFVBQWY7QUFBQSx1Q0FDRTtBQUFLLDJCQUFTLEVBQUMscUJBQWY7QUFBcUMsb0NBQWUsSUFBcEQ7QUFBQSwwQ0FDRTtBQUFLLDZCQUFTLEVBQUMsT0FBZjtBQUFBLDJDQUNFLDhEQUFDLDJFQUFEO0FBQ0UsMkJBQUssRUFBRSxFQURUO0FBRUUsaUNBQVcsRUFBRSxDQUZmO0FBR0UsMEJBQUksRUFBRyxHQUFFLEVBQUcsR0FIZDtBQUlFLDRCQUFNLEVBQUVFO0FBSlY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsK0JBREYsZUFTRTtBQUFLLDZCQUFTLEVBQUMsTUFBZjtBQUFBLDRDQUNFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGlDQURGLGVBRUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUNBRkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLCtCQVRGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBREYsZUFpQkU7QUFBSyx5QkFBUyxFQUFDLFVBQWY7QUFBQSx1Q0FDRTtBQUFLLDJCQUFTLEVBQUMscUJBQWY7QUFBcUMsb0NBQWUsSUFBcEQ7QUFBQSwwQ0FDRTtBQUFLLDZCQUFTLEVBQUMsT0FBZjtBQUFBLDJDQUNFLDhEQUFDLDJFQUFEO0FBQ0UsMkJBQUssRUFBRSxFQURUO0FBRUUsaUNBQVcsRUFBRSxDQUZmO0FBR0UsMEJBQUksRUFBRyxHQUFFLEVBQUcsR0FIZDtBQUlFLDRCQUFNLEVBQUVBO0FBSlY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsK0JBREYsZUFTRTtBQUFLLDZCQUFTLEVBQUMsTUFBZjtBQUFBLDRDQUNFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGlDQURGLGVBRUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUNBRkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLCtCQVRGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBakJGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFMRjtBQUFBO0FBQUE7QUFBQTtBQUFBLGVBREY7QUFrREQsQ0FoRUQ7O0FBa0VBLGlFQUFlSCxZQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmllLXJlYWN0Ly4vc3JjL2NvbXBvbmVudHMvU2tpbGxzLWNpcmNsZS9za2lsbHMtY2lyY2xlLmpzeD83Y2VhIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgQ2lyY3VsYXJQcm9ncmVzc2JhciwgYnVpbGRTdHlsZXMgfSBmcm9tIFwicmVhY3QtY2lyY3VsYXItcHJvZ3Jlc3NiYXJcIjtcclxuaW1wb3J0IFwicmVhY3QtY2lyY3VsYXItcHJvZ3Jlc3NiYXIvZGlzdC9zdHlsZXMuY3NzXCI7XHJcblxyXG5jb25zdCBTa2lsbHNDaXJjbGUgPSAoeyBmcm9tLCB0aGVtZSB9KSA9PiB7XHJcbiAgY29uc3QgY3BTdHlsZSA9IHtcclxuICAgIHBhdGg6IHtcclxuICAgICAgc3Ryb2tlOiBcInJnYigxOCwgMTk0LCAyMzMpXCIsXHJcbiAgICB9LFxyXG4gICAgdHJhaWw6IHtcclxuICAgICAgc3Ryb2tlOiB0aGVtZSA/ICh0aGVtZSA9PSBcImRhcmtcIiA/IFwiIzBmMTAxM1wiIDogXCIjZTVlNWU1XCIpIDogXCJcIixcclxuICAgIH0sXHJcbiAgICB0ZXh0OiB7XHJcbiAgICAgIGZpbGw6IHRoZW1lID8gKHRoZW1lID09IFwiZGFya1wiID8gXCIjZmZmZmZmXCIgOiBcIiM0ZTRlNGVcIikgOiBcIlwiLFxyXG4gICAgICAvLyBUZXh0IHNpemVcclxuICAgICAgZm9udFNpemU6IFwiMTZweFwiLFxyXG4gICAgfSxcclxuICB9O1xyXG4gIHJldHVybiAoXHJcbiAgICA8c2VjdGlvblxyXG4gICAgICBjbGFzc05hbWU9e2Bza2lsbHMtY2lyY2xlIHB0LTUwIHBiLTUwICR7XHJcbiAgICAgICAgZnJvbSA/IChmcm9tID09PSBcImFib3V0UGFnZVwiID8gXCJzdWItYmdcIiA6IFwiXCIpIDogXCJcIlxyXG4gICAgICB9YH1cclxuICAgID5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctN1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIlwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSB3b3cgZmFkZUluTGVmdFwiIGRhdGEtd293LWRlbGF5PVwiLjZcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNraWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8Q2lyY3VsYXJQcm9ncmVzc2JhclxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17OTB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoPXsyfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0PXtgJHs5MH0lYH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGVzPXtjcFN0eWxlfVxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlByb2plY3Q8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aDY+Q29uc3VsdGluZzwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSB3b3cgZmFkZUluTGVmdFwiIGRhdGEtd293LWRlbGF5PVwiLjNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNraWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8Q2lyY3VsYXJQcm9ncmVzc2JhclxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17NzV9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoPXsyfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0PXtgJHs3NX0lYH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGVzPXtjcFN0eWxlfVxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPkFwcDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxoNj5EZXZlbG9wbWVudDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBTa2lsbHNDaXJjbGU7XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIkNpcmN1bGFyUHJvZ3Jlc3NiYXIiLCJidWlsZFN0eWxlcyIsIlNraWxsc0NpcmNsZSIsImZyb20iLCJ0aGVtZSIsImNwU3R5bGUiLCJwYXRoIiwic3Ryb2tlIiwidHJhaWwiLCJ0ZXh0IiwiZmlsbCIsImZvbnRTaXplIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Skills-circle/skills-circle.jsx\n"); + +/***/ }), + +/***/ "./src/components/Split/index.jsx": +/*!****************************************!*\ + !*** ./src/components/Split/index.jsx ***! + \****************************************/ +/***/ ((__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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Split\\\\index.jsx\";\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\n\n\nclass Split extends (react__WEBPACK_IMPORTED_MODULE_0___default().Component) {\n constructor(...args) {\n super(...args);\n\n _defineProperty(this, \"target\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createRef());\n\n _defineProperty(this, \"split\", () => {\n if (this.target.current) {\n Splitting({\n target: this.target.current\n });\n }\n });\n\n _defineProperty(this, \"componentDidMount\", this.split);\n\n _defineProperty(this, \"componentDidUpdate\", this.split);\n }\n\n render() {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n ref: this.target,\n children: this.props.children\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 12\n }, this);\n }\n\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Split);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9TcGxpdC9pbmRleC5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7OztBQUVBLE1BQU1DLEtBQU4sU0FBb0JELHdEQUFwQixDQUFvQztBQUFBO0FBQUE7O0FBQUEsaURBQ3pCQSxzREFBQSxFQUR5Qjs7QUFBQSxtQ0FHMUIsTUFBTTtBQUNaLFVBQUksS0FBS0ksTUFBTCxDQUFZQyxPQUFoQixFQUF5QjtBQUN2QkMsUUFBQUEsU0FBUyxDQUFDO0FBQUVGLFVBQUFBLE1BQU0sRUFBRSxLQUFLQSxNQUFMLENBQVlDO0FBQXRCLFNBQUQsQ0FBVDtBQUNEO0FBQ0YsS0FQaUM7O0FBQUEsK0NBU2QsS0FBS0UsS0FUUzs7QUFBQSxnREFVYixLQUFLQSxLQVZRO0FBQUE7O0FBWWxDQyxFQUFBQSxNQUFNLEdBQUc7QUFDUCx3QkFBTztBQUFLLFNBQUcsRUFBRSxLQUFLSixNQUFmO0FBQUEsZ0JBQXdCLEtBQUtLLEtBQUwsQ0FBV0M7QUFBbkM7QUFBQTtBQUFBO0FBQUE7QUFBQSxZQUFQO0FBQ0Q7O0FBZGlDOztBQWlCcEMsaUVBQWVULEtBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly92aWUtcmVhY3QvLi9zcmMvY29tcG9uZW50cy9TcGxpdC9pbmRleC5qc3g/ODcxMCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcblxyXG5jbGFzcyBTcGxpdCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcbiAgdGFyZ2V0ID0gUmVhY3QuY3JlYXRlUmVmKCk7XHJcblxyXG4gIHNwbGl0ID0gKCkgPT4ge1xyXG4gICAgaWYgKHRoaXMudGFyZ2V0LmN1cnJlbnQpIHtcclxuICAgICAgU3BsaXR0aW5nKHsgdGFyZ2V0OiB0aGlzLnRhcmdldC5jdXJyZW50IH0pO1xyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIGNvbXBvbmVudERpZE1vdW50ID0gdGhpcy5zcGxpdDtcclxuICBjb21wb25lbnREaWRVcGRhdGUgPSB0aGlzLnNwbGl0O1xyXG5cclxuICByZW5kZXIoKSB7XHJcbiAgICByZXR1cm4gPGRpdiByZWY9e3RoaXMudGFyZ2V0fT57dGhpcy5wcm9wcy5jaGlsZHJlbn08L2Rpdj47XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBTcGxpdDtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiU3BsaXQiLCJDb21wb25lbnQiLCJjcmVhdGVSZWYiLCJ0YXJnZXQiLCJjdXJyZW50IiwiU3BsaXR0aW5nIiwic3BsaXQiLCJyZW5kZXIiLCJwcm9wcyIsImNoaWxkcmVuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Split/index.jsx\n"); + +/***/ }), + +/***/ "./src/components/Team/team.jsx": +/*!**************************************!*\ + !*** ./src/components/Team/team.jsx ***! + \**************************************/ +/***/ ((__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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/teamSkillsProgress */ \"./src/common/teamSkillsProgress.js\");\n/* harmony import */ var _common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/tooltipEffect */ \"./src/common/tooltipEffect.js\");\n/* harmony import */ var _data_sections_team_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../data/sections/team.json */ \"./src/data/sections/team.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Team\\\\team.jsx\";\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nconst Team = () => {\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(() => {\n (0,_common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n setTimeout(() => {\n (0,_common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__[\"default\"])();\n }, 1000);\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"section\", {\n className: \"team section-padding\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Our Team\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: \"Our team will simplify business setup in the UAE\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 15\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 11\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container-fluid\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/01.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/02.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/03.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 117,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/04.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 11\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 9\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/05.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/06.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/07.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 292,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 291,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 297,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 299,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 298,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 280,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 275,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/08.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 319,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 333,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 332,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 338,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 340,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 339,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 321,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 320,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 318,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 317,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 316,\n columnNumber: 11\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 9\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/09.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 361,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 375,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 374,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 380,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 382,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 381,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 363,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 362,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 360,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 359,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 358,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/10.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 401,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 415,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 414,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 420,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 422,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 421,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 403,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 402,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 400,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 399,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 398,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/11.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 441,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 455,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 454,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 460,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 462,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 461,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 443,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 442,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 440,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 439,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 438,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/12.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 482,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 496,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 495,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 501,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 503,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 502,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 484,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 483,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 481,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 480,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 479,\n columnNumber: 11\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 357,\n columnNumber: 9\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 7\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 5\n }, undefined);\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Team);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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NmZELENBcGdCRDs7QUFzZ0JBLGlFQUFlRSxJQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmllLXJlYWN0Ly4vc3JjL2NvbXBvbmVudHMvVGVhbS90ZWFtLmpzeD9iNjhlIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBuZXh0L25leHQvbm8taW1nLWVsZW1lbnQgKi9cclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgdGVhbVNraWxsc1Byb2dyZXNzIGZyb20gXCIuLi8uLi9jb21tb24vdGVhbVNraWxsc1Byb2dyZXNzXCI7XHJcbmltcG9ydCB0b29sdGlwRWZmZWN0IGZyb20gXCIuLi8uLi9jb21tb24vdG9vbHRpcEVmZmVjdFwiO1xyXG5pbXBvcnQgdGVhbXNEYXRlIGZyb20gXCIuLi8uLi9kYXRhL3NlY3Rpb25zL3RlYW0uanNvblwiO1xyXG5cclxuY29uc3QgVGVhbSA9ICgpID0+IHtcclxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgdGVhbVNraWxsc1Byb2dyZXNzKCk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdG9vbHRpcEVmZmVjdCgpO1xyXG4gICAgfSwgMTAwMCk7XHJcbiAgfSwgW10pO1xyXG4gIHJldHVybiAoXHJcbiAgICA8c2VjdGlvbiBjbGFzc05hbWU9XCJ0ZWFtIHNlY3Rpb24tcGFkZGluZ1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTggY29sLW1kLTEwXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2VjLWhlYWQgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8aDYgY2xhc3NOYW1lPVwid293IGZhZGVJblwiIGRhdGEtd293LWRlbGF5PVwiLjVzXCI+XHJcbiAgICAgICAgICAgICAgICBPdXIgVGVhbVxyXG4gICAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cIndvdyBjb2xvci1mb250XCI+XHJcbiAgICAgICAgICAgICAgICBPdXIgdGVhbSB3aWxsIHNpbXBsaWZ5IGJ1c2luZXNzIHNldHVwIGluIHRoZSBVQUVcclxuICAgICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXItZmx1aWRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDEud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlMVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ0VPIE1hbmFnZXIgQ0VPIE1hbmFnZXIgQ0VPIE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wMi53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMlwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBJbnRlcmlvciBEZXNpZ25lciBJbnRlcmlvciBEZXNpZ25lciBJbnRlcmlvciBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBzbS1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzAzLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTNcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzA0LndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTRcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGg0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGg0XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGg0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENsaWVudCBNYW5hZ2VyIENsaWVudCBNYW5hZ2VyIENsaWVudCBNYW5hZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wNS53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUxXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDRU8gTWFuYWdlciBDRU8gTWFuYWdlciBDRU8gTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzA2LndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTJcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIHNtLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDcud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlM1wiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDgud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlNFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzA5LndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTFcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgxXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENFTyBNYW5hZ2VyIENFTyBNYW5hZ2VyIENFTyBNYW5hZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMTAud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlMlwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDJcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJpb3IgRGVzaWduZXIgSW50ZXJpb3IgRGVzaWduZXIgSW50ZXJpb3IgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgc20tbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8xMS53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUzXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8xMi53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGU0XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoNFwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDbGllbnQgTWFuYWdlciBDbGllbnQgTWFuYWdlciBDbGllbnQgTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L3NlY3Rpb24+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IFRlYW07XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsInRlYW1Ta2lsbHNQcm9ncmVzcyIsInRvb2x0aXBFZmZlY3QiLCJ0ZWFtc0RhdGUiLCJUZWFtIiwidXNlRWZmZWN0Iiwic2V0VGltZW91dCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Team/team.jsx\n"); + +/***/ }), + +/***/ "./src/components/Video-with-testimonials/video-with-testimonials.jsx": +/*!****************************************************************************!*\ + !*** ./src/components/Video-with-testimonials/video-with-testimonials.jsx ***! + \****************************************************************************/ +/***/ ((__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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_slick__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-slick */ \"react-slick\");\n/* harmony import */ var react_slick__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_slick__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var slick_carousel_slick_slick_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! slick-carousel/slick/slick.css */ \"./node_modules/slick-carousel/slick/slick.css\");\n/* harmony import */ var slick_carousel_slick_slick_css__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(slick_carousel_slick_slick_css__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var slick_carousel_slick_slick_theme_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! slick-carousel/slick/slick-theme.css */ \"./node_modules/slick-carousel/slick/slick-theme.css\");\n/* harmony import */ var slick_carousel_slick_slick_theme_css__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(slick_carousel_slick_slick_theme_css__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var react_modal_video__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-modal-video */ \"react-modal-video\");\n/* harmony import */ var react_modal_video__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_modal_video__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var react_modal_video_css_modal_video_css__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-modal-video/css/modal-video.css */ \"./node_modules/react-modal-video/css/modal-video.css\");\n/* harmony import */ var react_modal_video_css_modal_video_css__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react_modal_video_css_modal_video_css__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Video-with-testimonials\\\\video-with-testimonials.jsx\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\n\n\nconst VideoWithTestimonials = () => {\n const [isOpen, setOpen] = react__WEBPACK_IMPORTED_MODULE_0___default().useState(false);\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(() => {\n console.clear();\n }, []);\n const settings = {\n dots: true,\n infinite: true,\n arrows: false,\n speed: 500,\n slidesToShow: 1,\n slidesToScroll: 1\n };\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"section\", {\n className: \"block-sec\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"background bg-img pt-100 pb-0 parallaxie\",\n style: {\n backgroundImage: `url(/img/bg-vid.jpg)`\n },\n \"data-overlay-dark\": \"5\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"col-lg-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"vid-area\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"span\", {\n className: \"text\",\n children: \"Watch Video\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"vid-icon\",\n children: [ false && /*#__PURE__*/0, /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"a\", {\n className: \"vid\",\n onClick: e => {\n e.preventDefault();\n setOpen(true);\n },\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"vid-butn\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"span\", {\n className: \"icon\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"i\", {\n className: \"fas fa-play\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 25\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 51,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 21\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 19\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 13\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"col-lg-5 offset-lg-1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"testim-box\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"head-box\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Our Clients\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 19\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"h4\", {\n className: \"wow fadeInLeft\",\n \"data-wow-delay\": \".5s\",\n children: \"What Client's Say?\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 19\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 61,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)((react_slick__WEBPACK_IMPORTED_MODULE_1___default()), _objectSpread(_objectSpread({}, settings), {}, {\n className: \"slic-item wow fadeInUp\",\n \"data-wow-delay\": \".5s\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"p\", {\n children: \"Nulla metus metus ullamcorper vel tincidunt sed euismod nibh volutpat velit class aptent taciti sociosqu ad litora.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"info\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"img-box\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"img\", {\n src: \"/img/clients/1.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 82,\n columnNumber: 25\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 81,\n columnNumber: 23\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"author\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"h6\", {\n className: \"author-name \",\n children: \"Alex Regelman\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 27\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"span\", {\n className: \"author-details\",\n children: \"Co-founder, Colabrio\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 27\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 87,\n columnNumber: 25\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 86,\n columnNumber: 23\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 19\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"p\", {\n children: \"Nulla metus metus ullamcorper vel tincidunt sed euismod nibh volutpat velit class aptent taciti sociosqu ad litora.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"info\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"img-box\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"img\", {\n src: \"/img/clients/2.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 105,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 104,\n columnNumber: 25\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 103,\n columnNumber: 23\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"author\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"h6\", {\n className: \"author-name \",\n children: \"Alex Regelman\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 27\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"span\", {\n className: \"author-details\",\n children: \"Co-founder, Colabrio\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 27\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 25\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 108,\n columnNumber: 23\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 102,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 19\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"p\", {\n children: \"Nulla metus metus ullamcorper vel tincidunt sed euismod nibh volutpat velit class aptent taciti sociosqu ad litora.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"info\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"img-box\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"img\", {\n src: \"/img/clients/3.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 25\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 23\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"author\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"h6\", {\n className: \"author-name \",\n children: \"Alex Regelman\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 27\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"span\", {\n className: \"author-details\",\n children: \"Co-founder, Colabrio\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 133,\n columnNumber: 27\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 25\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 23\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 19\n }, undefined)]\n }), void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 60,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 59,\n columnNumber: 13\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 11\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 9\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 7\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 5\n }, undefined);\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (VideoWithTestimonials);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9WaWRlby13aXRoLXRlc3RpbW9uaWFscy92aWRlby13aXRoLXRlc3RpbW9uaWFscy5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsTUFBTUcscUJBQXFCLEdBQUcsTUFBTTtBQUNsQyxRQUFNLENBQUNDLE1BQUQsRUFBU0MsT0FBVCxJQUFvQkwscURBQUEsQ0FBZSxLQUFmLENBQTFCO0FBQ0FBLEVBQUFBLHNEQUFBLENBQWdCLE1BQU07QUFDcEJRLElBQUFBLE9BQU8sQ0FBQ0MsS0FBUjtBQUNELEdBRkQsRUFFRyxFQUZIO0FBR0EsUUFBTUMsUUFBUSxHQUFHO0FBQ2ZDLElBQUFBLElBQUksRUFBRSxJQURTO0FBRWZDLElBQUFBLFFBQVEsRUFBRSxJQUZLO0FBR2ZDLElBQUFBLE1BQU0sRUFBRSxLQUhPO0FBSWZDLElBQUFBLEtBQUssRUFBRSxHQUpRO0FBS2ZDLElBQUFBLFlBQVksRUFBRSxDQUxDO0FBTWZDLElBQUFBLGNBQWMsRUFBRTtBQU5ELEdBQWpCO0FBUUEsc0JBQ0U7QUFBUyxhQUFTLEVBQUMsV0FBbkI7QUFBQSwyQkFDRTtBQUNFLGVBQVMsRUFBQywwQ0FEWjtBQUVFLFdBQUssRUFBRTtBQUFFQyxRQUFBQSxlQUFlLEVBQUc7QUFBcEIsT0FGVDtBQUdFLDJCQUFrQixHQUhwQjtBQUFBLDZCQUtFO0FBQUssaUJBQVMsRUFBQyxXQUFmO0FBQUEsK0JBQ0U7QUFBSyxtQkFBUyxFQUFDLEtBQWY7QUFBQSxrQ0FDRTtBQUFLLHFCQUFTLEVBQUMsVUFBZjtBQUFBLG1DQUNFO0FBQUssdUJBQVMsRUFBQyxVQUFmO0FBQUEsc0NBQ0U7QUFBTSx5QkFBUyxFQUFDLE1BQWhCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLDJCQURGLGVBRUU7QUFBSyx5QkFBUyxFQUFDLFVBQWY7QUFBQSwyQkFDRyx1QkFDQyxDQUZK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QTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFMRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxlQURGO0FBOEhELENBM0lEOztBQTZJQSxpRUFBZVAscUJBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly92aWUtcmVhY3QvLi9zcmMvY29tcG9uZW50cy9WaWRlby13aXRoLXRlc3RpbW9uaWFscy92aWRlby13aXRoLXRlc3RpbW9uaWFscy5qc3g/NTRlYyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAbmV4dC9uZXh0L25vLWltZy1lbGVtZW50ICovXHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IFNsaWRlciBmcm9tIFwicmVhY3Qtc2xpY2tcIjtcclxuaW1wb3J0IFwic2xpY2stY2Fyb3VzZWwvc2xpY2svc2xpY2suY3NzXCI7XHJcbmltcG9ydCBcInNsaWNrLWNhcm91c2VsL3NsaWNrL3NsaWNrLXRoZW1lLmNzc1wiO1xyXG5pbXBvcnQgTW9kYWxWaWRlbyBmcm9tIFwicmVhY3QtbW9kYWwtdmlkZW9cIjtcclxuaW1wb3J0IFwicmVhY3QtbW9kYWwtdmlkZW8vY3NzL21vZGFsLXZpZGVvLmNzc1wiO1xyXG5cclxuY29uc3QgVmlkZW9XaXRoVGVzdGltb25pYWxzID0gKCkgPT4ge1xyXG4gIGNvbnN0IFtpc09wZW4sIHNldE9wZW5dID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xyXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBjb25zb2xlLmNsZWFyKCk7XHJcbiAgfSwgW10pO1xyXG4gIGNvbnN0IHNldHRpbmdzID0ge1xyXG4gICAgZG90czogdHJ1ZSxcclxuICAgIGluZmluaXRlOiB0cnVlLFxyXG4gICAgYXJyb3dzOiBmYWxzZSxcclxuICAgIHNwZWVkOiA1MDAsXHJcbiAgICBzbGlkZXNUb1Nob3c6IDEsXHJcbiAgICBzbGlkZXNUb1Njcm9sbDogMSxcclxuICB9O1xyXG4gIHJldHVybiAoXHJcbiAgICA8c2VjdGlvbiBjbGFzc05hbWU9XCJibG9jay1zZWNcIj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzTmFtZT1cImJhY2tncm91bmQgYmctaW1nIHB0LTEwMCBwYi0wIHBhcmFsbGF4aWVcIlxyXG4gICAgICAgIHN0eWxlPXt7IGJhY2tncm91bmRJbWFnZTogYHVybCgvaW1nL2JnLXZpZC5qcGcpYCB9fVxyXG4gICAgICAgIGRhdGEtb3ZlcmxheS1kYXJrPVwiNVwiXHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctNlwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidmlkLWFyZWFcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHRcIj5XYXRjaCBWaWRlbzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidmlkLWljb25cIj5cclxuICAgICAgICAgICAgICAgICAge3R5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxNb2RhbFZpZGVvXHJcbiAgICAgICAgICAgICAgICAgICAgICBjaGFubmVsPVwidmltZW9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgaXNPcGVuPXtpc09wZW59XHJcbiAgICAgICAgICAgICAgICAgICAgICB2aWRlb0lkPVwiMTI3MjAzMjYyXCJcclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xvc2U9eygpID0+IHNldE9wZW4oZmFsc2UpfVxyXG4gICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidmlkXCJcclxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgc2V0T3Blbih0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ2aWQtYnV0blwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYXMgZmEtcGxheVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy01IG9mZnNldC1sZy0xXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXN0aW0tYm94XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImhlYWQtYm94XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxoNiBjbGFzc05hbWU9XCJ3b3cgZmFkZUluXCIgZGF0YS13b3ctZGVsYXk9XCIuNXNcIj5cclxuICAgICAgICAgICAgICAgICAgICBPdXIgQ2xpZW50c1xyXG4gICAgICAgICAgICAgICAgICA8L2g2PlxyXG4gICAgICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwid293IGZhZGVJbkxlZnRcIiBkYXRhLXdvdy1kZWxheT1cIi41c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIFdoYXQgQ2xpZW50JmFwb3M7cyBTYXk/XHJcbiAgICAgICAgICAgICAgICAgIDwvaDQ+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxTbGlkZXJcclxuICAgICAgICAgICAgICAgICAgey4uLnNldHRpbmdzfVxyXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJzbGljLWl0ZW0gd293IGZhZGVJblVwXCJcclxuICAgICAgICAgICAgICAgICAgZGF0YS13b3ctZGVsYXk9XCIuNXNcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgICAgIE51bGxhIG1ldHVzIG1ldHVzIHVsbGFtY29ycGVyIHZlbCB0aW5jaWR1bnQgc2VkIGV1aXNtb2RcclxuICAgICAgICAgICAgICAgICAgICAgIG5pYmggdm9sdXRwYXQgdmVsaXQgY2xhc3MgYXB0ZW50IHRhY2l0aSBzb2Npb3NxdSBhZFxyXG4gICAgICAgICAgICAgICAgICAgICAgbGl0b3JhLlxyXG4gICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nLWJveFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy9jbGllbnRzLzEuanBnXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImF1dGhvclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNiBjbGFzc05hbWU9XCJhdXRob3ItbmFtZSBcIj5BbGV4IFJlZ2VsbWFuPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJhdXRob3ItZGV0YWlsc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQ28tZm91bmRlciwgQ29sYWJyaW9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgICAgIE51bGxhIG1ldHVzIG1ldHVzIHVsbGFtY29ycGVyIHZlbCB0aW5jaWR1bnQgc2VkIGV1aXNtb2RcclxuICAgICAgICAgICAgICAgICAgICAgIG5pYmggdm9sdXRwYXQgdmVsaXQgY2xhc3MgYXB0ZW50IHRhY2l0aSBzb2Npb3NxdSBhZFxyXG4gICAgICAgICAgICAgICAgICAgICAgbGl0b3JhLlxyXG4gICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nLWJveFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy9jbGllbnRzLzIuanBnXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImF1dGhvclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNiBjbGFzc05hbWU9XCJhdXRob3ItbmFtZSBcIj5BbGV4IFJlZ2VsbWFuPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJhdXRob3ItZGV0YWlsc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQ28tZm91bmRlciwgQ29sYWJyaW9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgICAgIE51bGxhIG1ldHVzIG1ldHVzIHVsbGFtY29ycGVyIHZlbCB0aW5jaWR1bnQgc2VkIGV1aXNtb2RcclxuICAgICAgICAgICAgICAgICAgICAgIG5pYmggdm9sdXRwYXQgdmVsaXQgY2xhc3MgYXB0ZW50IHRhY2l0aSBzb2Npb3NxdSBhZFxyXG4gICAgICAgICAgICAgICAgICAgICAgbGl0b3JhLlxyXG4gICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nLWJveFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy9jbGllbnRzLzMuanBnXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImF1dGhvclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNiBjbGFzc05hbWU9XCJhdXRob3ItbmFtZSBcIj5BbGV4IFJlZ2VsbWFuPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJhdXRob3ItZGV0YWlsc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQ28tZm91bmRlciwgQ29sYWJyaW9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9TbGlkZXI+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBWaWRlb1dpdGhUZXN0aW1vbmlhbHM7XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIlNsaWRlciIsIk1vZGFsVmlkZW8iLCJWaWRlb1dpdGhUZXN0aW1vbmlhbHMiLCJpc09wZW4iLCJzZXRPcGVuIiwidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJjb25zb2xlIiwiY2xlYXIiLCJzZXR0aW5ncyIsImRvdHMiLCJpbmZpbml0ZSIsImFycm93cyIsInNwZWVkIiwic2xpZGVzVG9TaG93Iiwic2xpZGVzVG9TY3JvbGwiLCJiYWNrZ3JvdW5kSW1hZ2UiLCJlIiwicHJldmVudERlZmF1bHQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/components/Video-with-testimonials/video-with-testimonials.jsx\n"); + +/***/ }), + +/***/ "./src/layouts/Light.jsx": +/*!*******************************!*\ + !*** ./src/layouts/Light.jsx ***! + \*******************************/ +/***/ ((__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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/head */ \"next/head\");\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_head__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\layouts\\\\Light.jsx\";\n\n/* eslint-disable @next/next/no-css-tags */\n\n\n\n\n\nconst LightTheme = ({\n children,\n mobileappstyle\n}) => {\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(() => {\n window.theme = \"light\";\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)((next_head__WEBPACK_IMPORTED_MODULE_1___default()), {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"link\", {\n rel: \"stylesheet\",\n href: \"/css/light.css\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 9\n }, undefined), mobileappstyle ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"link\", {\n href: \"/css/mobile-app-light.css\",\n rel: \"stylesheet\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 28\n }, undefined) : null]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 7\n }, undefined), children]\n }, void 0, true);\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (LightTheme);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvbGF5b3V0cy9MaWdodC5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBOzs7O0FBRUEsTUFBTUUsVUFBVSxHQUFHLENBQUM7QUFBRUMsRUFBQUEsUUFBRjtBQUFZQyxFQUFBQTtBQUFaLENBQUQsS0FBa0M7QUFDbkRKLEVBQUFBLHNEQUFBLENBQWdCLE1BQU07QUFDcEJNLElBQUFBLE1BQU0sQ0FBQ0MsS0FBUCxHQUFlLE9BQWY7QUFDRCxHQUZELEVBRUcsRUFGSDtBQUdBLHNCQUNFO0FBQUEsNEJBQ0UsOERBQUMsa0RBQUQ7QUFBQSw4QkFDRTtBQUFNLFdBQUcsRUFBQyxZQUFWO0FBQXVCLFlBQUksRUFBQztBQUE1QjtBQUFBO0FBQUE7QUFBQTtBQUFBLG1CQURGLEVBRUdILGNBQWMsZ0JBQUk7QUFBTSxZQUFJLEVBQUMsMkJBQVg7QUFBdUMsV0FBRyxFQUFDO0FBQTNDO0FBQUE7QUFBQTtBQUFBO0FBQUEsbUJBQUosR0FBbUUsSUFGcEY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQURGLEVBS0dELFFBTEg7QUFBQSxrQkFERjtBQVNELENBYkQ7O0FBZUEsaUVBQWVELFVBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly92aWUtcmVhY3QvLi9zcmMvbGF5b3V0cy9MaWdodC5qc3g/MzljMiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAbmV4dC9uZXh0L25vLWNzcy10YWdzICovXHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IEhlYWQgZnJvbSBcIm5leHQvaGVhZFwiO1xyXG5cclxuY29uc3QgTGlnaHRUaGVtZSA9ICh7IGNoaWxkcmVuLCBtb2JpbGVhcHBzdHlsZSB9KSA9PiB7XHJcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgIHdpbmRvdy50aGVtZSA9IFwibGlnaHRcIjtcclxuICB9LCBbXSk7XHJcbiAgcmV0dXJuIChcclxuICAgIDw+XHJcbiAgICAgIDxIZWFkPlxyXG4gICAgICAgIDxsaW5rIHJlbD1cInN0eWxlc2hlZXRcIiBocmVmPVwiL2Nzcy9saWdodC5jc3NcIiAvPlxyXG4gICAgICAgIHttb2JpbGVhcHBzdHlsZSA/ICg8bGluayBocmVmPVwiL2Nzcy9tb2JpbGUtYXBwLWxpZ2h0LmNzc1wiIHJlbD1cInN0eWxlc2hlZXRcIiAvPikgOiAobnVsbCl9XHJcbiAgICAgIDwvSGVhZD5cclxuICAgICAge2NoaWxkcmVufVxyXG4gICAgPC8+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IExpZ2h0VGhlbWU7XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIkhlYWQiLCJMaWdodFRoZW1lIiwiY2hpbGRyZW4iLCJtb2JpbGVhcHBzdHlsZSIsInVzZUVmZmVjdCIsIndpbmRvdyIsInRoZW1lIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/layouts/Light.jsx\n"); + +/***/ }), + +/***/ "./src/pages/about/index.jsx": +/*!***********************************!*\ + !*** ./src/pages/about/index.jsx ***! + \***********************************/ +/***/ ((__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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _components_Navbar_navbar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../components/Navbar/navbar */ \"./src/components/Navbar/navbar.jsx\");\n/* harmony import */ var _components_Services_services__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../components/Services/services */ \"./src/components/Services/services.jsx\");\n/* harmony import */ var _components_Video_with_testimonials_video_with_testimonials__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../components/Video-with-testimonials/video-with-testimonials */ \"./src/components/Video-with-testimonials/video-with-testimonials.jsx\");\n/* harmony import */ var _components_Skills_circle_skills_circle__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../components/Skills-circle/skills-circle */ \"./src/components/Skills-circle/skills-circle.jsx\");\n/* harmony import */ var _components_Clients_clients__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../components/Clients/clients */ \"./src/components/Clients/clients.jsx\");\n/* harmony import */ var _components_Call_to_action_call_to_action__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../components/Call-to-action/call-to-action */ \"./src/components/Call-to-action/call-to-action.jsx\");\n/* harmony import */ var _components_Footer_footer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../components/Footer/footer */ \"./src/components/Footer/footer.jsx\");\n/* harmony import */ var _components_Pages_header__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../components/Pages-header */ \"./src/components/Pages-header/index.jsx\");\n/* harmony import */ var _components_About_intro__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../components/About-intro */ \"./src/components/About-intro/index.jsx\");\n/* harmony import */ var _layouts_Light__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../layouts/Light */ \"./src/layouts/Light.jsx\");\n/* harmony import */ var _components_Team_team__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../components/Team/team */ \"./src/components/Team/team.jsx\");\n/* harmony import */ var _components_Minimal_Area_minimal_area__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../components/Minimal-Area/minimal-area */ \"./src/components/Minimal-Area/minimal-area.jsx\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_13__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\pages\\\\about\\\\index.jsx\";\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst About = () => {\n const navbarRef = react__WEBPACK_IMPORTED_MODULE_0___default().useRef(null);\n const logoRef = react__WEBPACK_IMPORTED_MODULE_0___default().useRef(null);\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(() => {\n var navbar = navbarRef.current,\n logo = logoRef.current;\n\n if (window.pageYOffset > 300) {\n navbar.classList.add(\"nav-scroll\");\n } else {\n navbar.classList.remove(\"nav-scroll\");\n }\n\n window.addEventListener(\"scroll\", () => {\n if (window.pageYOffset > 300) {\n navbar.classList.add(\"nav-scroll\");\n } else {\n navbar.classList.remove(\"nav-scroll\");\n }\n });\n }, [navbarRef]);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxDEV)(_layouts_Light__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxDEV)(_components_Navbar_navbar__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n nr: navbarRef,\n lr: logoRef,\n theme: \"themeL\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 7\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxDEV)(_components_Pages_header__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxDEV)(_components_About_intro__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 7\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxDEV)(_components_Services_services__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n style: \"4item\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 7\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxDEV)(_components_Team_team__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 7\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxDEV)(_components_Minimal_Area_minimal_area__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 44,\n columnNumber: 7\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxDEV)(_components_Clients_clients__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n theme: \"light\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 7\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxDEV)(_components_Call_to_action_call_to_action__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 7\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxDEV)(_components_Footer_footer__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 7\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 5\n }, undefined);\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (About);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvcGFnZXMvYWJvdXQvaW5kZXguanN4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFFQSxNQUFNYSxLQUFLLEdBQUcsTUFBTTtBQUNsQixRQUFNQyxTQUFTLEdBQUdkLG1EQUFBLENBQWEsSUFBYixDQUFsQjtBQUNBLFFBQU1nQixPQUFPLEdBQUdoQixtREFBQSxDQUFhLElBQWIsQ0FBaEI7QUFFQUEsRUFBQUEsc0RBQUEsQ0FBZ0IsTUFBTTtBQUNwQixRQUFJa0IsTUFBTSxHQUFHSixTQUFTLENBQUNLLE9BQXZCO0FBQUEsUUFDRUMsSUFBSSxHQUFHSixPQUFPLENBQUNHLE9BRGpCOztBQUVBLFFBQUlFLE1BQU0sQ0FBQ0MsV0FBUCxHQUFxQixHQUF6QixFQUE4QjtBQUM1QkosTUFBQUEsTUFBTSxDQUFDSyxTQUFQLENBQWlCQyxHQUFqQixDQUFxQixZQUFyQjtBQUNELEtBRkQsTUFFTztBQUNMTixNQUFBQSxNQUFNLENBQUNLLFNBQVAsQ0FBaUJFLE1BQWpCLENBQXdCLFlBQXhCO0FBQ0Q7O0FBQ0RKLElBQUFBLE1BQU0sQ0FBQ0ssZ0JBQVAsQ0FBd0IsUUFBeEIsRUFBa0MsTUFBTTtBQUN0QyxVQUFJTCxNQUFNLENBQUNDLFdBQVAsR0FBcUIsR0FBekIsRUFBOEI7QUFDNUJKLFFBQUFBLE1BQU0sQ0FBQ0ssU0FBUCxDQUFpQkMsR0FBakIsQ0FBcUIsWUFBckI7QUFDRCxPQUZELE1BRU87QUFDTE4sUUFBQUEsTUFBTSxDQUFDSyxTQUFQLENBQWlCRSxNQUFqQixDQUF3QixZQUF4QjtBQUNEO0FBQ0YsS0FORDtBQU9ELEdBZkQsRUFlRyxDQUFDWCxTQUFELENBZkg7QUFnQkEsc0JBQ0UsK0RBQUMsdURBQUQ7QUFBQSw0QkFDRSwrREFBQyxpRUFBRDtBQUFRLFFBQUUsRUFBRUEsU0FBWjtBQUF1QixRQUFFLEVBQUVFLE9BQTNCO0FBQW9DLFdBQUssRUFBQztBQUExQztBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQURGLGVBRUUsK0RBQUMsZ0VBQUQ7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFGRixlQUdFLCtEQUFDLCtEQUFEO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBSEYsZUFJRSwrREFBQyxxRUFBRDtBQUFVLFdBQUssRUFBQztBQUFoQjtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQUpGLGVBT0UsK0RBQUMsOERBQUQ7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFQRixlQVFFLCtEQUFDLDhFQUFEO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBUkYsZUFTRSwrREFBQyxtRUFBRDtBQUFTLFdBQUssRUFBQztBQUFmO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBVEYsZUFVRSwrREFBQyxpRkFBRDtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQVZGLGVBV0UsK0RBQUMsaUVBQUQ7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFYRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFERjtBQWVELENBbkNEOztBQXFDQSxpRUFBZUgsS0FBZiIsInNvdXJjZXMiOlsid2VicGFjazovL3ZpZS1yZWFjdC8uL3NyYy9wYWdlcy9hYm91dC9pbmRleC5qc3g/Mjk5NSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBOYXZiYXIgZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvTmF2YmFyL25hdmJhclwiO1xyXG5pbXBvcnQgU2VydmljZXMgZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvU2VydmljZXMvc2VydmljZXNcIjtcclxuaW1wb3J0IFZpZGVvV2l0aFRlc3RpbW9uaWFscyBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9WaWRlby13aXRoLXRlc3RpbW9uaWFscy92aWRlby13aXRoLXRlc3RpbW9uaWFsc1wiO1xyXG5pbXBvcnQgU2tpbGxzQ2lyY2xlIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL1NraWxscy1jaXJjbGUvc2tpbGxzLWNpcmNsZVwiO1xyXG5pbXBvcnQgQ2xpZW50cyBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9DbGllbnRzL2NsaWVudHNcIjtcclxuaW1wb3J0IENhbGxUb0FjdGlvbiBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9DYWxsLXRvLWFjdGlvbi9jYWxsLXRvLWFjdGlvblwiO1xyXG5pbXBvcnQgRm9vdGVyIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL0Zvb3Rlci9mb290ZXJcIjtcclxuaW1wb3J0IFBhZ2VzSGVhZGVyIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL1BhZ2VzLWhlYWRlclwiO1xyXG5pbXBvcnQgQWJvdXRJbnRybyBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9BYm91dC1pbnRyb1wiO1xyXG5pbXBvcnQgTGlnaHRUaGVtZSBmcm9tIFwiLi4vLi4vbGF5b3V0cy9MaWdodFwiO1xyXG5pbXBvcnQgVGVhbSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9UZWFtL3RlYW1cIjtcclxuaW1wb3J0IE1pbmltYWxBcmVhIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL01pbmltYWwtQXJlYS9taW5pbWFsLWFyZWFcIjtcclxuXHJcbmNvbnN0IEFib3V0ID0gKCkgPT4ge1xyXG4gIGNvbnN0IG5hdmJhclJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcclxuICBjb25zdCBsb2dvUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xyXG5cclxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgdmFyIG5hdmJhciA9IG5hdmJhclJlZi5jdXJyZW50LFxyXG4gICAgICBsb2dvID0gbG9nb1JlZi5jdXJyZW50O1xyXG4gICAgaWYgKHdpbmRvdy5wYWdlWU9mZnNldCA+IDMwMCkge1xyXG4gICAgICBuYXZiYXIuY2xhc3NMaXN0LmFkZChcIm5hdi1zY3JvbGxcIik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBuYXZiYXIuY2xhc3NMaXN0LnJlbW92ZShcIm5hdi1zY3JvbGxcIik7XHJcbiAgICB9XHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCAoKSA9PiB7XHJcbiAgICAgIGlmICh3aW5kb3cucGFnZVlPZmZzZXQgPiAzMDApIHtcclxuICAgICAgICBuYXZiYXIuY2xhc3NMaXN0LmFkZChcIm5hdi1zY3JvbGxcIik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbmF2YmFyLmNsYXNzTGlzdC5yZW1vdmUoXCJuYXYtc2Nyb2xsXCIpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9LCBbbmF2YmFyUmVmXSk7XHJcbiAgcmV0dXJuIChcclxuICAgIDxMaWdodFRoZW1lPlxyXG4gICAgICA8TmF2YmFyIG5yPXtuYXZiYXJSZWZ9IGxyPXtsb2dvUmVmfSB0aGVtZT1cInRoZW1lTFwiIC8+XHJcbiAgICAgIDxQYWdlc0hlYWRlciAvPlxyXG4gICAgICA8QWJvdXRJbnRybyAvPlxyXG4gICAgICA8U2VydmljZXMgc3R5bGU9XCI0aXRlbVwiIC8+XHJcbiAgICAgIHsvKiA8VmlkZW9XaXRoVGVzdGltb25pYWxzIC8+ICovfVxyXG4gICAgICB7LyogPFNraWxsc0NpcmNsZSBmcm9tPVwiYWJvdXRQYWdlXCIgLz4gKi99XHJcbiAgICAgIDxUZWFtIC8+XHJcbiAgICAgIDxNaW5pbWFsQXJlYSAvPlxyXG4gICAgICA8Q2xpZW50cyB0aGVtZT1cImxpZ2h0XCIgLz5cclxuICAgICAgPENhbGxUb0FjdGlvbiAvPlxyXG4gICAgICA8Rm9vdGVyIC8+XHJcbiAgICA8L0xpZ2h0VGhlbWU+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IEFib3V0O1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJOYXZiYXIiLCJTZXJ2aWNlcyIsIlZpZGVvV2l0aFRlc3RpbW9uaWFscyIsIlNraWxsc0NpcmNsZSIsIkNsaWVudHMiLCJDYWxsVG9BY3Rpb24iLCJGb290ZXIiLCJQYWdlc0hlYWRlciIsIkFib3V0SW50cm8iLCJMaWdodFRoZW1lIiwiVGVhbSIsIk1pbmltYWxBcmVhIiwiQWJvdXQiLCJuYXZiYXJSZWYiLCJ1c2VSZWYiLCJsb2dvUmVmIiwidXNlRWZmZWN0IiwibmF2YmFyIiwiY3VycmVudCIsImxvZ28iLCJ3aW5kb3ciLCJwYWdlWU9mZnNldCIsImNsYXNzTGlzdCIsImFkZCIsInJlbW92ZSIsImFkZEV2ZW50TGlzdGVuZXIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/pages/about/index.jsx\n"); + +/***/ }), + +/***/ "./node_modules/react-circular-progressbar/dist/styles.css": +/*!*****************************************************************!*\ + !*** ./node_modules/react-circular-progressbar/dist/styles.css ***! + \*****************************************************************/ +/***/ (() => { + + + +/***/ }), + +/***/ "./node_modules/react-modal-video/css/modal-video.css": +/*!************************************************************!*\ + !*** ./node_modules/react-modal-video/css/modal-video.css ***! + \************************************************************/ +/***/ (() => { + + + +/***/ }), + +/***/ "./node_modules/slick-carousel/slick/slick-theme.css": +/*!***********************************************************!*\ + !*** ./node_modules/slick-carousel/slick/slick-theme.css ***! + \***********************************************************/ +/***/ (() => { + + + +/***/ }), + +/***/ "./node_modules/slick-carousel/slick/slick.css": +/*!*****************************************************!*\ + !*** ./node_modules/slick-carousel/slick/slick.css ***! + \*****************************************************/ +/***/ (() => { + + + +/***/ }), + +/***/ "./node_modules/next/dist/lib/is-error.js": +/*!************************************************!*\ + !*** ./node_modules/next/dist/lib/is-error.js ***! + \************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = isError;\nfunction isError(err) {\n return typeof err === 'object' && err !== null && 'name' in err && 'message' in err;\n}\n\n//# sourceMappingURL=is-error.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9pcy1lcnJvci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGtCQUFlO0FBQ2Y7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmllLXJlYWN0Ly4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvaXMtZXJyb3IuanM/MTc4ZSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IGlzRXJyb3I7XG5mdW5jdGlvbiBpc0Vycm9yKGVycikge1xuICAgIHJldHVybiB0eXBlb2YgZXJyID09PSAnb2JqZWN0JyAmJiBlcnIgIT09IG51bGwgJiYgJ25hbWUnIGluIGVyciAmJiAnbWVzc2FnZScgaW4gZXJyO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy1lcnJvci5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/lib/is-error.js\n"); + +/***/ }), + +/***/ "./node_modules/next/link.js": +/*!***********************************!*\ + !*** ./node_modules/next/link.js ***! + \***********************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +eval("module.exports = __webpack_require__(/*! ./dist/client/link */ \"./node_modules/next/dist/client/link.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9saW5rLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBLHlHQUE4QyIsInNvdXJjZXMiOlsid2VicGFjazovL3ZpZS1yZWFjdC8uL25vZGVfbW9kdWxlcy9uZXh0L2xpbmsuanM/NzViMyJdLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vZGlzdC9jbGllbnQvbGluaycpXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/link.js\n"); + +/***/ }), + +/***/ "../../../server/denormalize-page-path": +/*!************************************************************!*\ + !*** external "next/dist/server/denormalize-page-path.js" ***! + \************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/server/denormalize-page-path.js"); + +/***/ }), + +/***/ "../i18n/normalize-locale-path": +/*!*********************************************************************!*\ + !*** external "next/dist/shared/lib/i18n/normalize-locale-path.js" ***! + \*********************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/shared/lib/i18n/normalize-locale-path.js"); + +/***/ }), + +/***/ "../mitt": +/*!***********************************************!*\ + !*** external "next/dist/shared/lib/mitt.js" ***! + \***********************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/shared/lib/mitt.js"); + +/***/ }), + +/***/ "../shared/lib/router-context": +/*!*********************************************************!*\ + !*** external "next/dist/shared/lib/router-context.js" ***! + \*********************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/shared/lib/router-context.js"); + +/***/ }), + +/***/ "../shared/lib/router/utils/get-asset-path-from-route": +/*!*********************************************************************************!*\ + !*** external "next/dist/shared/lib/router/utils/get-asset-path-from-route.js" ***! + \*********************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/shared/lib/router/utils/get-asset-path-from-route.js"); + +/***/ }), + +/***/ "./utils/get-middleware-regex": +/*!****************************************************************************!*\ + !*** external "next/dist/shared/lib/router/utils/get-middleware-regex.js" ***! + \****************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/shared/lib/router/utils/get-middleware-regex.js"); + +/***/ }), + +/***/ "./utils/is-dynamic": +/*!******************************************************************!*\ + !*** external "next/dist/shared/lib/router/utils/is-dynamic.js" ***! + \******************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/shared/lib/router/utils/is-dynamic.js"); + +/***/ }), + +/***/ "./utils/parse-relative-url": +/*!**************************************************************************!*\ + !*** external "next/dist/shared/lib/router/utils/parse-relative-url.js" ***! + \**************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/shared/lib/router/utils/parse-relative-url.js"); + +/***/ }), + +/***/ "./utils/querystring": +/*!*******************************************************************!*\ + !*** external "next/dist/shared/lib/router/utils/querystring.js" ***! + \*******************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/shared/lib/router/utils/querystring.js"); + +/***/ }), + +/***/ "./utils/resolve-rewrites": +/*!************************************************************************!*\ + !*** external "next/dist/shared/lib/router/utils/resolve-rewrites.js" ***! + \************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/shared/lib/router/utils/resolve-rewrites.js"); + +/***/ }), + +/***/ "./utils/route-matcher": +/*!*********************************************************************!*\ + !*** external "next/dist/shared/lib/router/utils/route-matcher.js" ***! + \*********************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/shared/lib/router/utils/route-matcher.js"); + +/***/ }), + +/***/ "./utils/route-regex": +/*!*******************************************************************!*\ + !*** external "next/dist/shared/lib/router/utils/route-regex.js" ***! + \*******************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/shared/lib/router/utils/route-regex.js"); + +/***/ }), + +/***/ "../shared/lib/utils": +/*!************************************************!*\ + !*** external "next/dist/shared/lib/utils.js" ***! + \************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/shared/lib/utils.js"); + +/***/ }), + +/***/ "next/head": +/*!****************************!*\ + !*** external "next/head" ***! + \****************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/head"); + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "react" ***! + \************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("react"); + +/***/ }), + +/***/ "react-circular-progressbar": +/*!*********************************************!*\ + !*** external "react-circular-progressbar" ***! + \*********************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("react-circular-progressbar"); + +/***/ }), + +/***/ "react-is": +/*!***************************!*\ + !*** external "react-is" ***! + \***************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("react-is"); + +/***/ }), + +/***/ "react-modal-video": +/*!************************************!*\ + !*** external "react-modal-video" ***! + \************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("react-modal-video"); + +/***/ }), + +/***/ "react-slick": +/*!******************************!*\ + !*** external "react-slick" ***! + \******************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("react-slick"); + +/***/ }), + +/***/ "react/jsx-dev-runtime": +/*!****************************************!*\ + !*** external "react/jsx-dev-runtime" ***! + \****************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("react/jsx-dev-runtime"); + +/***/ }), + +/***/ "./src/data/app.json": +/*!***************************!*\ + !*** ./src/data/app.json ***! + \***************************/ +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('{"lightLogo":"/img/logo.png","darkLogo":"/img/logo.png","footerLogo":"/img/logo white.png","showLoading":true}'); + +/***/ }), + +/***/ "./src/data/sections/about-info1.json": +/*!********************************************!*\ + !*** ./src/data/sections/about-info1.json ***! + \********************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('{"id":1,"title":"Who We Are ?","paragraph1":"We provide business establishment services in the free zone with comprehensive solutions for entrepreneurs, which reduces the burdens and complexities associated with establishing a business in the Emirates. As a one-stop platform for entrepreneurs, we ensure a seamless experience by offering a range of business support services in a customer-centric environment making us the best choice for obtaining business licenses in the UAE.","paragraph2":"With over 2,000 business activities, our region offers a wide range of business licenses in various sectors, allowing entrepreneurs to explore countless business opportunities. Whether you work in the publishing field or are considering establishing a commercial, industrial or service company, we provide the necessary licenses and modern facilities to meet your project requirements"}'); + +/***/ }), + +/***/ "./src/data/sections/clients.json": +/*!****************************************!*\ + !*** ./src/data/sections/clients.json ***! + \****************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('[{"id":1,"lightImage":"/img/clients/brands/light/client1.webp","darkImage":"/img/clients/brands/dark/01.png","url":"www.Vie.com"},{"id":2,"lightImage":"/img/clients/brands/light/client2.webp","darkImage":"/img/clients/brands/dark/02.png","url":"www.Vie.com"},{"id":3,"lightImage":"/img/clients/brands/light/client3.webp","darkImage":"/img/clients/brands/dark/03.png","url":"www.Vie.com"},{"id":4,"lightImage":"/img/clients/brands/light/client4.webp","darkImage":"/img/clients/brands/dark/04.png","url":"www.Vie.com"},{"id":5,"lightImage":"/img/clients/brands/light/client5.webp","darkImage":"/img/clients/brands/dark/05.png","url":"www.Vie.com"},{"id":6,"lightImage":"/img/clients/brands/light/client6.webp","darkImage":"/img/clients/brands/dark/06.png","url":"www.Vie.com"},{"id":7,"lightImage":"/img/clients/brands/light/client7.webp","darkImage":"/img/clients/brands/dark/07.png","url":"www.Vie.com"},{"id":8,"lightImage":"/img/clients/brands/light/client8.webp","darkImage":"/img/clients/brands/dark/08.png","url":"www.Vie.com"}]'); + +/***/ }), + +/***/ "./src/data/sections/features.json": +/*!*****************************************!*\ + !*** ./src/data/sections/features.json ***! + \*****************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('[{"id":1,"icon":"pe-7s-paint-bucket","title":"Marketing services","content":"To achieve success in the local market, it requires effective marketing, whether through electronic or non-electronic media"},{"id":2,"icon":"pe-7s-phone","title":"Restructuring projects","content":"Business Hub offers restructuring projects in a way that serves the interest of business continuity by reducing expenses and reemploying the workforce correctly."},{"id":3,"icon":"pe-7s-display1","title":"Commercial brokerage","content":"Mediation in buying and selling operations: We mediate between sellers and buyers to ensure that deals are achieved in a profitable manner for both parties."},{"id":4,"icon":"pe-7s-diskette","title":"Commercial representation","content":"Business Hub provides commercial representation services to companies inside and outside the UAE, provided that our role is limited to representing other companies."}]'); + +/***/ }), + +/***/ "./src/data/sections/team.json": +/*!*************************************!*\ + !*** ./src/data/sections/team.json ***! + \*************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('{"teams":[{"id":1,"image":"/img/team/01.webp","title":"Stephanie Lawrence","sub":"CEO, Colabrio Media"},{"id":2,"image":"/img/team/02.webp","title":"Alex Regelman","sub":"CEO, Colabrio Media"},{"id":3,"image":"/img/team/03.webp","title":"Stacey Stamper","sub":"CEO, Colabrio Media"},{"id":4,"image":"/img/team/04.webp","title":"Stephanie Lawrence","sub":"CEO, Colabrio Media"},{"id":5,"image":"/img/team/05.webp","title":"Stephanie Lawrence","sub":"CEO, Colabrio Media"},{"id":6,"image":"/img/team/06.webp","title":"Alex Regelman","sub":"CEO, Colabrio Media"},{"id":7,"image":"/img/team/07.webp","title":"Stacey Stamper","sub":"CEO, Colabrio Media"},{"id":8,"image":"/img/team/08.webp","title":"Stephanie Lawrence","sub":"CEO, Colabrio Media"},{"id":9,"image":"/img/team/09.webp","title":"Stephanie Lawrence","sub":"CEO, Colabrio Media"},{"id":10,"image":"/img/team/10.webp","title":"Alex Regelman","sub":"CEO, Colabrio Media"},{"id":11,"image":"/img/team/11.webp","title":"Stacey Stamper","sub":"CEO, Colabrio Media"},{"id":12,"image":"/img/team/12.webp","title":"Stephanie Lawrence","sub":"CEO, Colabrio Media"}],"skills":[{"id":1,"text":"UI / UX Design","value":"90%"},{"id":2,"text":"Apps Development","value":"80%"}]}'); + +/***/ }) + +}; +; + +// load runtime +var __webpack_require__ = require("../webpack-runtime.js"); +__webpack_require__.C(exports); +var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) +var __webpack_exports__ = (__webpack_exec__("./src/pages/about/index.jsx")); +module.exports = __webpack_exports__; + +})(); \ No newline at end of file diff --git a/.next/server/pages/homepage/home2-light.js b/.next/server/pages/homepage/home2-light.js new file mode 100644 index 0000000..fc0835d --- /dev/null +++ b/.next/server/pages/homepage/home2-light.js @@ -0,0 +1,571 @@ +/* + * 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/). + */ +(() => { +var exports = {}; +exports.id = "pages/homepage/home2-light"; +exports.ids = ["pages/homepage/home2-light"]; +exports.modules = { + +/***/ "./node_modules/next/dist/client/link.js": +/*!***********************************************!*\ + !*** ./node_modules/next/dist/client/link.js ***! + \***********************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"react\"));\n\nvar _router = __webpack_require__(/*! ../shared/lib/router/router */ \"./node_modules/next/dist/shared/lib/router/router.js\");\n\nvar _router1 = __webpack_require__(/*! ./router */ \"./node_modules/next/dist/client/router.js\");\n\nvar _useIntersection = __webpack_require__(/*! ./use-intersection */ \"./node_modules/next/dist/client/use-intersection.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nconst prefetched = {};\n\nfunction prefetch(router, href, as, options) {\n if (true) return;\n if (!(0, _router).isLocalURL(href)) return; // Prefetch the JSON 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\n router.prefetch(href, as, options).catch(err => {\n if (true) {\n // rethrow to show invalid URL errors\n throw err;\n }\n });\n const curLocale = options && typeof options.locale !== 'undefined' ? options.locale : router && router.locale; // Join on an invalid URI character\n\n prefetched[href + '%' + as + (curLocale ? '%' + curLocale : '')] = true;\n}\n\nfunction isModifiedEvent(event) {\n const {\n target\n } = event.currentTarget;\n return target && target !== '_self' || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey || event.nativeEvent && event.nativeEvent.which === 2;\n}\n\nfunction linkClicked(e, router, href, as, replace, shallow, scroll, locale) {\n const {\n nodeName\n } = e.currentTarget;\n\n if (nodeName === 'A' && (isModifiedEvent(e) || !(0, _router).isLocalURL(href))) {\n // ignore click for browser’s default behavior\n return;\n }\n\n e.preventDefault(); // avoid scroll for urls with anchor refs\n\n if (scroll == null && as.indexOf('#') >= 0) {\n scroll = false;\n } // replace state instead of push if prop is present\n\n\n router[replace ? 'replace' : 'push'](href, as, {\n shallow,\n locale,\n scroll\n });\n}\n\nfunction Link(props) {\n if (true) {\n function createPropError(args) {\n return new Error(`Failed prop type: The prop \\`${args.key}\\` expects a ${args.expected} in \\`<Link>\\`, but got \\`${args.actual}\\` instead.` + ( false ? 0 : ''));\n } // TypeScript trick for type-guarding:\n\n\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 }); // TypeScript trick for type-guarding:\n\n const optionalPropsGuard = {\n as: true,\n replace: true,\n scroll: true,\n shallow: true,\n passHref: true,\n prefetch: true,\n locale: true\n };\n const optionalProps = Object.keys(optionalPropsGuard);\n optionalProps.forEach(key => {\n const valType = typeof props[key];\n\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 === 'locale') {\n if (props[key] && valType !== 'string') {\n throw createPropError({\n key,\n expected: '`string`',\n actual: valType\n });\n }\n } else if (key === 'replace' || key === 'scroll' || key === 'shallow' || key === 'passHref' || key === 'prefetch') {\n if (props[key] != null && valType !== 'boolean') {\n throw createPropError({\n key,\n expected: '`boolean`',\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 }); // 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\n const hasWarned = _react.default.useRef(false);\n\n if (props.prefetch && !hasWarned.current) {\n hasWarned.current = true;\n console.warn('Next.js auto-prefetches automatically based on viewport. The prefetch attribute is no longer needed. More: https://nextjs.org/docs/messages/prefetch-true-deprecated');\n }\n }\n\n const p = props.prefetch !== false;\n const router = (0, _router1).useRouter();\n\n const {\n href,\n as\n } = _react.default.useMemo(() => {\n const [resolvedHref, resolvedAs] = (0, _router).resolveHref(router, props.href, true);\n return {\n href: resolvedHref,\n as: props.as ? (0, _router).resolveHref(router, props.as) : resolvedAs || resolvedHref\n };\n }, [router, props.href, props.as]);\n\n let {\n children,\n replace,\n shallow,\n scroll,\n locale\n } = props; // Deprecated. Warning shown by propType check. If the children provided is a string (<Link>example</Link>) we wrap it in an <a> tag\n\n if (typeof children === 'string') {\n children = /*#__PURE__*/_react.default.createElement(\"a\", null, children);\n } // This will return the first child, if multiple are provided it will throw an error\n\n\n let child;\n\n if (true) {\n try {\n child = _react.default.Children.only(children);\n } catch (err) {\n throw new Error(`Multiple children were passed to <Link> with \\`href\\` of \\`${props.href}\\` but only one child is supported https://nextjs.org/docs/messages/link-multiple-children` + ( false ? 0 : ''));\n }\n } else {}\n\n const childRef = child && typeof child === 'object' && child.ref;\n const [setIntersectionRef, isVisible] = (0, _useIntersection).useIntersection({\n rootMargin: '200px'\n });\n\n const setRef = _react.default.useCallback(el => {\n setIntersectionRef(el);\n\n if (childRef) {\n if (typeof childRef === 'function') childRef(el);else if (typeof childRef === 'object') {\n childRef.current = el;\n }\n }\n }, [childRef, setIntersectionRef]);\n\n _react.default.useEffect(() => {\n const shouldPrefetch = isVisible && p && (0, _router).isLocalURL(href);\n const curLocale = typeof locale !== 'undefined' ? locale : router && router.locale;\n const isPrefetched = prefetched[href + '%' + as + (curLocale ? '%' + curLocale : '')];\n\n if (shouldPrefetch && !isPrefetched) {\n prefetch(router, href, as, {\n locale: curLocale\n });\n }\n }, [as, href, isVisible, locale, p, router]);\n\n const childProps = {\n ref: setRef,\n onClick: e => {\n if (child.props && typeof child.props.onClick === 'function') {\n child.props.onClick(e);\n }\n\n if (!e.defaultPrevented) {\n linkClicked(e, router, href, as, replace, shallow, scroll, locale);\n }\n }\n };\n\n childProps.onMouseEnter = e => {\n if (!(0, _router).isLocalURL(href)) return;\n\n if (child.props && typeof child.props.onMouseEnter === 'function') {\n child.props.onMouseEnter(e);\n }\n\n prefetch(router, href, as, {\n priority: true\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\n\n if (props.passHref || child.type === 'a' && !('href' in child.props)) {\n const curLocale = typeof locale !== 'undefined' ? locale : router && router.locale; // we only render domain locales if we are currently on a domain locale\n // so that locale links are still visitable in development/preview envs\n\n const localeDomain = router && router.isLocaleDomain && (0, _router).getDomainLocale(as, curLocale, router && router.locales, router && router.domainLocales);\n childProps.href = localeDomain || (0, _router).addBasePath((0, _router).addLocale(as, curLocale, router && router.defaultLocale));\n }\n\n return /*#__PURE__*/_react.default.cloneElement(child, childProps);\n}\n\nvar _default = Link;\nexports[\"default\"] = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9saW5rLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxrQkFBQSxHQUFrQixLQUFLLENBQXZCOztBQUNBLElBQUlHLE1BQU0sR0FBR0Msc0JBQXNCLENBQUNDLG1CQUFPLENBQUMsb0JBQUQsQ0FBUixDQUFuQzs7QUFDQSxJQUFJQyxPQUFPLEdBQUdELG1CQUFPLENBQUMseUZBQUQsQ0FBckI7O0FBQ0EsSUFBSUUsUUFBUSxHQUFHRixtQkFBTyxDQUFDLDJEQUFELENBQXRCOztBQUNBLElBQUlHLGdCQUFnQixHQUFHSCxtQkFBTyxDQUFDLCtFQUFELENBQTlCOztBQUNBLFNBQVNELHNCQUFULENBQWdDSyxHQUFoQyxFQUFxQztBQUNqQyxTQUFPQSxHQUFHLElBQUlBLEdBQUcsQ0FBQ0MsVUFBWCxHQUF3QkQsR0FBeEIsR0FBOEI7QUFDakNQLElBQUFBLE9BQU8sRUFBRU87QUFEd0IsR0FBckM7QUFHSDs7QUFDRCxNQUFNRSxVQUFVLEdBQUcsRUFBbkI7O0FBRUEsU0FBU0MsUUFBVCxDQUFrQkMsTUFBbEIsRUFBMEJDLElBQTFCLEVBQWdDQyxFQUFoQyxFQUFvQ0MsT0FBcEMsRUFBNkM7QUFDekMsTUFBSSxJQUFKLEVBQThDO0FBQzlDLE1BQUksQ0FBQyxDQUFDLEdBQUdWLE9BQUosRUFBYVcsVUFBYixDQUF3QkgsSUFBeEIsQ0FBTCxFQUFvQyxPQUZLLENBR3pDO0FBQ0E7QUFDQTtBQUNBOztBQUNBRCxFQUFBQSxNQUFNLENBQUNELFFBQVAsQ0FBZ0JFLElBQWhCLEVBQXNCQyxFQUF0QixFQUEwQkMsT0FBMUIsRUFBbUNFLEtBQW5DLENBQTBDQyxHQUFELElBQU87QUFDNUMsY0FBMkM7QUFDdkM7QUFDQSxZQUFNQSxHQUFOO0FBQ0g7QUFDSixHQUxEO0FBTUEsUUFBTUMsU0FBUyxHQUFHSixPQUFPLElBQUksT0FB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O0FBQ0g7O0FBQ0QsU0FBTyxhQUFjL0YsTUFBTSxDQUFDRCxPQUFQLENBQWVpRyxZQUFmLENBQTRCN0IsS0FBNUIsRUFBbUNlLFVBQW5DLENBQXJCO0FBQ0g7O0FBQ0QsSUFBSWUsUUFBUSxHQUFHNUQsSUFBZjtBQUNBeEMsa0JBQUEsR0FBa0JvRyxRQUFsQiIsInNvdXJjZXMiOlsid2VicGFjazovL3ZpZS1yZWFjdC8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2xpbmsuanM/ZTRmOSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IHZvaWQgMDtcbnZhciBfcmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG52YXIgX3JvdXRlciA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3JvdXRlci9yb3V0ZXJcIik7XG52YXIgX3JvdXRlcjEgPSByZXF1aXJlKFwiLi9yb3V0ZXJcIik7XG52YXIgX3VzZUludGVyc2VjdGlvbiA9IHJlcXVpcmUoXCIuL3VzZS1pbnRlcnNlY3Rpb25cIik7XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5jb25zdCBwcmVmZXRjaGVkID0ge1xufTtcbmZ1bmN0aW9uIHByZWZldGNoKHJvdXRlciwgaHJlZiwgYXMsIG9wdGlvbnMpIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgIXJvdXRlcikgcmV0dXJuO1xuICAgIGlmICghKDAsIF9yb3V0ZXIpLmlzTG9jYWxVUkwoaHJlZikpIHJldHVybjtcbiAgICAvLyBQcmVmZXRjaCB0aGUgSlNPTiBwYWdlIGlmIGFza2VkIChvbmx5IGluIHRoZSBjbGllbnQpXG4gICAgLy8gV2UgbmVlZCB0byBoYW5kbGUgYSBwcmVmZXRjaCBlcnJvciBoZXJlIHNpbmNlIHdlIG1heSBiZVxuICAgIC8vIGxvYWRpbmcgd2l0aCBwcmlvcml0eSB3aGljaCBjYW4gcmVqZWN0IGJ1dCB3ZSBkb24ndFxuICAgIC8vIHdhbnQgdG8gZm9yY2UgbmF2aWdhdGlvbiBzaW5jZSB0aGlzIGlzIG9ubHkgYSBwcmVmZXRjaFxuICAgIHJvdXRlci5wcmVmZXRjaChocmVmLCBhcywgb3B0aW9ucykuY2F0Y2goKGVycik9PntcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgIC8vIHJldGhyb3cgdG8gc2hvdyBpbnZhbGlkIFVSTCBlcnJvcnNcbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGN1ckxvY2FsZSA9IG9wdGlvbnMgJiYgdHlwZW9mIG9wdGlvbnMubG9jYWxlICE9PSAndW5kZWZpbmVkJyA/IG9wdGlvbnMubG9jYWxlIDogcm91dGVyICYmIHJvdXRlci5sb2NhbGU7XG4gICAgLy8gSm9pbiBvbiBhbiBpbnZhbGlkIFVSSSBjaGFyYWN0ZXJcbiAgICBwcmVmZXRjaGVkW2hyZWYgKyAnJScgKyBhcyArIChjdXJMb2NhbGUgPyAnJScgKyBjdXJMb2NhbGUgOiAnJyldID0gdHJ1ZTtcbn1cbmZ1bmN0aW9uIGlzTW9kaWZpZWRFdmVudChldmVudCkge1xuICAgIGNvbnN0IHsgdGFyZ2V0ICB9ID0gZXZlbnQuY3VycmVudFRhcmdldDtcbiAgICByZXR1cm4gdGFyZ2V0ICYmIHRhcmdldCAhPT0gJ19zZWxmJyB8fCBldmVudC5tZXRhS2V5IHx8IGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQuc2hpZnRLZXkgfHwgZXZlbnQuYWx0S2V5IHx8IGV2ZW50Lm5hdGl2ZUV2ZW50ICYmIGV2ZW50Lm5hdGl2ZUV2ZW50LndoaWNoID09PSAyO1xufVxuZnVuY3Rpb24gbGlua0NsaWNrZWQoZSwgcm91dGVyLCBocmVmLCBhcywgcmVwbGFjZSwgc2hhbGxvdywgc2Nyb2xsLCBsb2NhbGUpIHtcbiAgICBjb25zdCB7IG5vZGVOYW1lICB9ID0gZS5jdXJyZW50VGFyZ2V0O1xuICAgIGlmIChub2RlTmFtZSA9PT0gJ0EnICYmIChpc01vZGlmaWVkRXZlbnQoZSkgfHwgISgwLCBfcm91dGVyKS5pc0xvY2FsVVJMKGhyZWYpKSkge1xuICAgICAgICAvLyBpZ25vcmUgY2xpY2sgZm9yIGJyb3dzZXLigJlzIGRlZmF1bHQgYmVoYXZpb3JcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgLy8gIGF2b2lkIHNjcm9sbCBmb3IgdXJscyB3aXRoIGFuY2hvciByZWZzXG4gICAgaWYgKHNjcm9sbCA9PSBudWxsICYmIGFzLmluZGV4T2YoJyMnKSA+PSAwKSB7XG4gICAgICAgIHNjcm9sbCA9IGZhbHNlO1xuICAgIH1cbiAgICAvLyByZXBsYWNlIHN0YXRlIGluc3RlYWQgb2YgcHVzaCBpZiBwcm9wIGlzIHByZXNlbnRcbiAgICByb3V0ZXJbcmVwbGFjZSA/ICdyZXBsYWNlJyA6ICdwdXNoJ10oaHJlZiwgYXMsIHtcbiAgICAgICAgc2hhbGxvdyxcbiAgICAgICAgbG9jYWxlLFxuICAgICAgICBzY3JvbGxcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIExpbmsocHJvcHMpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBmdW5jdGlvbiBjcmVhdGVQcm9wRXJyb3IoYXJncykge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBFcnJvcihgRmFpbGVkIHByb3AgdHlwZTogVGhlIHByb3AgXFxgJHthcmdzLmtleX1cXGAgZXhwZWN0cyBhICR7YXJncy5leHBlY3RlZH0gaW4gXFxgPExpbms+XFxgLCBidXQgZ290IFxcYCR7YXJncy5hY3R1YWx9XFxgIGluc3RlYWQuYCArICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyA/IFwiXFxuT3BlbiB5b3VyIGJyb3dzZXIncyBjb25zb2xlIHRvIHZpZXcgdGhlIENvbXBvbmVudCBzdGFjayB0cmFjZS5cIiA6ICcnKSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gVHlwZVNjcmlwdCB0cmljayBmb3IgdHlwZS1ndWFyZGluZzpcbiAgICAgICAgY29uc3QgcmVxdWlyZWRQcm9wc0d1YXJkID0ge1xuICAgICAgICAgICAgaHJlZjogdHJ1ZVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCByZXF1aXJlZFByb3BzID0gT2JqZWN0LmtleXMocmVxdWlyZWRQcm9wc0d1YXJkKTtcbiAgICAgICAgcmVxdWlyZWRQcm9wcy5mb3JFYWNoKChrZXkpPT57XG4gICAgICAgICAgICBpZiAoa2V5ID09PSAnaHJlZicpIHtcbiAgICAgICAgICAgICAgICBpZiAocHJvcHNba2V5XSA9PSBudWxsIHx8IHR5cGVvZiBwcm9wc1trZXldICE9PSAnc3RyaW5nJyAmJiB0eXBlb2YgcHJvcHNba2V5XSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgY3JlYXRlUHJvcEVycm9yKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkOiAnYHN0cmluZ2Agb3IgYG9iamVjdGAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFsOiBwcm9wc1trZXldID09PSBudWxsID8gJ251bGwnIDogdHlwZW9mIHByb3BzW2tleV1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBUeXBlU2NyaXB0IHRyaWNrIGZvciB0eXBlLWd1YXJkaW5nOlxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAgICAgICAgICAgICBjb25zdCBfID0ga2V5O1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgLy8gVHlwZVNjcmlwdCB0cmljayBmb3IgdHlwZS1ndWFyZGluZzpcbiAgICAgICAgY29uc3Qgb3B0aW9uYWxQcm9wc0d1YXJkID0ge1xuICAgICAgICAgICAgYXM6IHRydWUsXG4gICAgICAgICAgICByZXBsYWNlOiB0cnVlLFxuICAgICAgICAgICAgc2Nyb2xsOiB0cnVlLFxuICAgICAgICAgICAgc2hhbGxvdzogdHJ1ZSxcbiAgICAgICAgICAgIHBhc3NIcmVmOiB0cnVlLFxuICAgICAgICAgICAgcHJlZmV0Y2g6IHRydWUsXG4gICAgICAgICAgICBsb2NhbGU6IHRydWVcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3Qgb3B0aW9uYWxQcm9wcyA9IE9iamVjdC5rZXlzKG9wdGlvbmFsUHJvcHNHdWFyZCk7XG4gICAgICAgIG9wdGlvbmFsUHJvcHMuZm9yRWFjaCgoa2V5KT0+e1xuICAgICAgICAgICAgY29uc3QgdmFsVHlwZSA9IHR5cGVvZiBwcm9wc1trZXldO1xuICAgICAgICAgICAgaWYgKGtleSA9PT0gJ2FzJykge1xuICAgICAgICAgICAgICAgIGlmIChwcm9wc1trZXldICYmIHZhbFR5cGUgIT09ICdzdHJpbmcnICYmIHZhbFR5cGUgIT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGNyZWF0ZVByb3BFcnJvcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZDogJ2BzdHJpbmdgIG9yIGBvYmplY3RgJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbDogdmFsVHlwZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2xvY2FsZScpIHtcbiAgICAgICAgICAgICAgICBpZiAocHJvcHNba2V5XSAmJiB2YWxUeXBlICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBjcmVhdGVQcm9wRXJyb3Ioe1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQ6ICdgc3RyaW5nYCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWw6IHZhbFR5cGVcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdyZXBsYWNlJyB8fCBrZXkgPT09ICdzY3JvbGwnIHx8IGtleSA9PT0gJ3NoYWxsb3cnIHx8IGtleSA9PT0gJ3Bhc3NIcmVmJyB8fCBrZXkgPT09ICdwcmVmZXRjaCcpIHtcbiAgICAgICAgICAgICAgICBpZiAocHJvcHNba2V5XSAhPSBudWxsICYmIHZhbFR5cGUgIT09ICdib29sZWFuJykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBjcmVhdGVQcm9wRXJyb3Ioe1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQ6ICdgYm9vbGVhbmAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFsOiB2YWxUeXBlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gVHlwZVNjcmlwdCB0cmljayBmb3IgdHlwZS1ndWFyZGluZzpcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgICAgICAgICAgICAgY29uc3QgXyA9IGtleTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIC8vIFRoaXMgaG9vayBpcyBpbiBhIGNvbmRpdGlvbmFsIGJ1dCB0aGF0IGlzIG9rIGJlY2F1c2UgYHByb2Nlc3MuZW52Lk5PREVfRU5WYCBuZXZlciBjaGFuZ2VzXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9ydWxlcy1vZi1ob29rc1xuICAgICAgICBjb25zdCBoYXNXYXJuZWQgPSBfcmVhY3QuZGVmYXVsdC51c2VSZWYoZmFsc2UpO1xuICAgICAgICBpZiAocHJvcHMucHJlZmV0Y2ggJiYgIWhhc1dhcm5lZC5jdXJyZW50KSB7XG4gICAgICAgICAgICBoYXNXYXJuZWQuY3VycmVudCA9IHRydWU7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ05leHQuanMgYXV0by1wcmVmZXRjaGVzIGF1dG9tYXRpY2FsbHkgYmFzZWQgb24gdmlld3BvcnQuIFRoZSBwcmVmZXRjaCBhdHRyaWJ1dGUgaXMgbm8gbG9uZ2VyIG5lZWRlZC4gTW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvcHJlZmV0Y2gtdHJ1ZS1kZXByZWNhdGVkJyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgcCA9IHByb3BzLnByZWZldGNoICE9PSBmYWxzZTtcbiAgICBjb25zdCByb3V0ZXIgPSAoMCwgX3JvdXRlcjEpLnVzZVJvdXRlcigpO1xuICAgIGNvbnN0IHsgaHJlZiAsIGFzICB9ID0gX3JlYWN0LmRlZmF1bHQudXNlTWVtbygoKT0+e1xuICAgICAgICBjb25zdCBbcmVzb2x2ZWRIcmVmLCByZXNvbHZlZEFzXSA9ICgwLCBfcm91dGVyKS5yZXNvbHZlSHJlZihyb3V0ZXIsIHByb3BzLmhyZWYsIHRydWUpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaHJlZjogcmVzb2x2ZWRIcmVmLFxuICAgICAgICAgICAgYXM6IHByb3BzLmFzID8gKDAsIF9yb3V0ZXIpLnJlc29sdmVIcmVmKHJvdXRlciwgcHJvcHMuYXMpIDogcmVzb2x2ZWRBcyB8fCByZXNvbHZlZEhyZWZcbiAgICAgICAgfTtcbiAgICB9LCBbXG4gICAgICAgIHJvdXRlcixcbiAgICAgICAgcHJvcHMuaHJlZixcbiAgICAgICAgcHJvcHMuYXNcbiAgICBdKTtcbiAgICBsZXQgeyBjaGlsZHJlbiAsIHJlcGxhY2UgLCBzaGFsbG93ICwgc2Nyb2xsICwgbG9jYWxlICB9ID0gcHJvcHM7XG4gICAgLy8gRGVwcmVjYXRlZC4gV2FybmluZyBzaG93biBieSBwcm9wVHlwZSBjaGVjay4gSWYgdGhlIGNoaWxkcmVuIHByb3ZpZGVkIGlzIGEgc3RyaW5nICg8TGluaz5leGFtcGxlPC9MaW5rPikgd2Ugd3JhcCBpdCBpbiBhbiA8YT4gdGFnXG4gICAgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY2hpbGRyZW4gPSAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJhXCIsIG51bGwsIGNoaWxkcmVuKTtcbiAgICB9XG4gICAgLy8gVGhpcyB3aWxsIHJldHVybiB0aGUgZmlyc3QgY2hpbGQsIGlmIG11bHRpcGxlIGFyZSBwcm92aWRlZCBpdCB3aWxsIHRocm93IGFuIGVycm9yXG4gICAgbGV0IGNoaWxkO1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY2hpbGQgPSBfcmVhY3QuZGVmYXVsdC5DaGlsZHJlbi5vbmx5KGNoaWxkcmVuKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE11bHRpcGxlIGNoaWxkcmVuIHdlcmUgcGFzc2VkIHRvIDxMaW5rPiB3aXRoIFxcYGhyZWZcXGAgb2YgXFxgJHtwcm9wcy5ocmVmfVxcYCBidXQgb25seSBvbmUgY2hpbGQgaXMgc3VwcG9ydGVkIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2xpbmstbXVsdGlwbGUtY2hpbGRyZW5gICsgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnID8gXCIgXFxuT3BlbiB5b3VyIGJyb3dzZXIncyBjb25zb2xlIHRvIHZpZXcgdGhlIENvbXBvbmVudCBzdGFjayB0cmFjZS5cIiA6ICcnKSk7XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBjaGlsZCA9IF9yZWFjdC5kZWZhdWx0LkNoaWxkcmVuLm9ubHkoY2hpbGRyZW4pO1xuICAgIH1cbiAgICBjb25zdCBjaGlsZFJlZiA9IGNoaWxkICYmIHR5cGVvZiBjaGlsZCA9PT0gJ29iamVjdCcgJiYgY2hpbGQucmVmO1xuICAgIGNvbnN0IFtzZXRJbnRlcnNlY3Rpb25SZWYsIGlzVmlzaWJsZV0gPSAoMCwgX3VzZUludGVyc2VjdGlvbikudXNlSW50ZXJzZWN0aW9uKHtcbiAgICAgICAgcm9vdE1hcmdpbjogJzIwMHB4J1xuICAgIH0pO1xuICAgIGNvbnN0IHNldFJlZiA9IF9yZWFjdC5kZWZhdWx0LnVzZUNhbGxiYWNrKChlbCk9PntcbiAgICAgICAgc2V0SW50ZXJzZWN0aW9uUmVmKGVsKTtcbiAgICAgICAgaWYgKGNoaWxkUmVmKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGNoaWxkUmVmID09PSAnZnVuY3Rpb24nKSBjaGlsZFJlZihlbCk7XG4gICAgICAgICAgICBlbHNlIGlmICh0eXBlb2YgY2hpbGRSZWYgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgY2hpbGRSZWYuY3VycmVudCA9IGVsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSwgW1xuICAgICAgICBjaGlsZFJlZixcbiAgICAgICAgc2V0SW50ZXJzZWN0aW9uUmVmXG4gICAgXSk7XG4gICAgX3JlYWN0LmRlZmF1bHQudXNlRWZmZWN0KCgpPT57XG4gICAgICAgIGNvbnN0IHNob3VsZFByZWZldGNoID0gaXNWaXNpYmxlICYmIHAgJiYgKDAsIF9yb3V0ZXIpLmlzTG9jYWxVUkwoaHJlZik7XG4gICAgICAgIGNvbnN0IGN1ckxvY2FsZSA9IHR5cGVvZiBsb2NhbGUgIT09ICd1bmRlZmluZWQnID8gbG9jYWxlIDogcm91dGVyICYmIHJvdXRlci5sb2NhbGU7XG4gICAgICAgIGNvbnN0IGlzUHJlZmV0Y2hlZCA9IHByZWZldGNoZWRbaHJlZiArICclJyArIGFzICsgKGN1ckxvY2FsZSA/ICclJyArIGN1ckxvY2FsZSA6ICcnKV07XG4gICAgICAgIGlmIChzaG91bGRQcmVmZXRjaCAmJiAhaXNQcmVmZXRjaGVkKSB7XG4gICAgICAgICAgICBwcmVmZXRjaChyb3V0ZXIsIGhyZWYsIGFzLCB7XG4gICAgICAgICAgICAgICAgbG9jYWxlOiBjdXJMb2NhbGVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSwgW1xuICAgICAgICBhcyxcbiAgICAgICAgaHJlZixcbiAgICAgICAgaXNWaXNpYmxlLFxuICAgICAgICBsb2NhbGUsXG4gICAgICAgIHAsXG4gICAgICAgIHJvdXRlclxuICAgIF0pO1xuICAgIGNvbnN0IGNoaWxkUHJvcHMgPSB7XG4gICAgICAgIHJlZjogc2V0UmVmLFxuICAgICAgICBvbkNsaWNrOiAoZSk9PntcbiAgICAgICAgICAgIGlmIChjaGlsZC5wcm9wcyAmJiB0eXBlb2YgY2hpbGQucHJvcHMub25DbGljayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIGNoaWxkLnByb3BzLm9uQ2xpY2soZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWUuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgICAgICAgICAgIGxpbmtDbGlja2VkKGUsIHJvdXRlciwgaHJlZiwgYXMsIHJlcGxhY2UsIHNoYWxsb3csIHNjcm9sbCwgbG9jYWxlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG4gICAgY2hpbGRQcm9wcy5vbk1vdXNlRW50ZXIgPSAoZSk9PntcbiAgICAgICAgaWYgKCEoMCwgX3JvdXRlcikuaXNMb2NhbFVSTChocmVmKSkgcmV0dXJuO1xuICAgICAgICBpZiAoY2hpbGQucHJvcHMgJiYgdHlwZW9mIGNoaWxkLnByb3BzLm9uTW91c2VFbnRlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgY2hpbGQucHJvcHMub25Nb3VzZUVudGVyKGUpO1xuICAgICAgICB9XG4gICAgICAgIHByZWZldGNoKHJvdXRlciwgaHJlZiwgYXMsIHtcbiAgICAgICAgICAgIHByaW9yaXR5OiB0cnVlXG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgLy8gSWYgY2hpbGQgaXMgYW4gPGE+IHRhZyBhbmQgZG9lc24ndCBoYXZlIGEgaHJlZiBhdHRyaWJ1dGUsIG9yIGlmIHRoZSAncGFzc0hyZWYnIHByb3BlcnR5IGlzXG4gICAgLy8gZGVmaW5lZCwgd2Ugc3BlY2lmeSB0aGUgY3VycmVudCAnaHJlZicsIHNvIHRoYXQgcmVwZXRpdGlvbiBpcyBub3QgbmVlZGVkIGJ5IHRoZSB1c2VyXG4gICAgaWYgKHByb3BzLnBhc3NIcmVmIHx8IGNoaWxkLnR5cGUgPT09ICdhJyAmJiAhKCdocmVmJyBpbiBjaGlsZC5wcm9wcykpIHtcbiAgICAgICAgY29uc3QgY3VyTG9jYWxlID0gdHlwZW9mIGxvY2FsZSAhPT0gJ3VuZGVmaW5lZCcgPyBsb2NhbGUgOiByb3V0ZXIgJiYgcm91dGVyLmxvY2FsZTtcbiAgICAgICAgLy8gd2Ugb25seSByZW5kZXIgZG9tYWluIGxvY2FsZXMgaWYgd2UgYXJlIGN1cnJlbnRseSBvbiBhIGRvbWFpbiBsb2NhbGVcbiAgICAgICAgLy8gc28gdGhhdCBsb2NhbGUgbGlua3MgYXJlIHN0aWxsIHZpc2l0YWJsZSBpbiBkZXZlbG9wbWVudC9wcmV2aWV3IGVudnNcbiAgICAgICAgY29uc3QgbG9jYWxlRG9tYWluID0gcm91dGVyICYmIHJvdXRlci5pc0xvY2FsZURvbWFpbiAmJiAoMCwgX3JvdXRlcikuZ2V0RG9tYWluTG9jYWxlKGFzLCBjdXJMb2NhbGUsIHJvdXRlciAmJiByb3V0ZXIubG9jYWxlcywgcm91dGVyICYmIHJvdXRlci5kb21haW5Mb2NhbGVzKTtcbiAgICAgICAgY2hpbGRQcm9wcy5ocmVmID0gbG9jYWxlRG9tYWluIHx8ICgwLCBfcm91dGVyKS5hZGRCYXNlUGF0aCgoMCwgX3JvdXRlcikuYWRkTG9jYWxlKGFzLCBjdXJMb2NhbGUsIHJvdXRlciAmJiByb3V0ZXIuZGVmYXVsdExvY2FsZSkpO1xuICAgIH1cbiAgICByZXR1cm4oLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jbG9uZUVsZW1lbnQoY2hpbGQsIGNoaWxkUHJvcHMpKTtcbn1cbnZhciBfZGVmYXVsdCA9IExpbms7XG5leHBvcnRzLmRlZmF1bHQgPSBfZGVmYXVsdDtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bGluay5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJkZWZhdWx0IiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcm91dGVyIiwiX3JvdXRlcjEiLCJfdXNlSW50ZXJzZWN0aW9uIiwib2JqIiwiX19lc01vZHVsZSIsInByZWZldGNoZWQiLCJwcmVmZXRjaCIsInJvdXRlciIsImhyZWYiLCJhcyIsIm9wdGlvbnMiLCJpc0xvY2FsVVJMIiwiY2F0Y2giLCJlcnIiLCJjdXJMb2NhbGUiLCJsb2NhbGUiLCJpc01vZGlmaWVkRXZlbnQiLCJldmVudCIsInRhcmdldCIsImN1cnJlbnRUYXJnZXQiLCJtZXRhS2V5IiwiY3RybEtleSIsInNoaWZ0S2V5IiwiYWx0S2V5IiwibmF0aXZlRXZlbnQiLCJ3aGljaCIsImxpbmtDbGlja2VkIiwiZSIsInJlcGxhY2UiLCJzaGFsbG93Iiwic2Nyb2xsIiwibm9kZU5hbWUiLCJwcmV2ZW50RGVmYXVsdCIsImluZGV4T2YiLCJMaW5rIiwicHJvcHMiLCJjcmVhdGVQcm9wRXJyb3IiLCJhcmdzIiwiRXJyb3IiLCJrZXkiLCJleHBlY3RlZCIsImFjdHVhbCIsInJlcXVpcmVkUHJvcHNHdWFyZCIsInJlcXVpcmVkUHJvcHMiLCJrZXlzIiwiZm9yRWFjaCIsIl8iLCJvcHRpb25hbFByb3BzR3VhcmQiLCJwYXNzSHJlZiIsIm9wdGlvbmFsUHJvcHMiLCJ2YWxUeXBlIiwiaGFzV2FybmVkIiwidXNlUmVmIiwiY3VycmVudCIsImNvbnNvbGUiLCJ3YXJuIiwicCIsInVzZVJvdXRlciIsInVzZU1lbW8iLCJyZXNvbHZlZEhyZWYiLCJyZXNvbHZlZEFzIiwicmVzb2x2ZUhyZWYiLCJjaGlsZHJlbiIsImNyZWF0ZUVsZW1lbnQiLCJjaGlsZCIsIkNoaWxkcmVuIiwib25seSIsImNoaWxkUmVmIiwicmVmIiwic2V0SW50ZXJzZWN0aW9uUmVmIiwiaXNWaXNpYmxlIiwidXNlSW50ZXJzZWN0aW9uIiwicm9vdE1hcmdpbiIsInNldFJlZiIsInVzZUNhbGxiYWNrIiwiZWwiLCJ1c2VFZmZlY3QiLCJzaG91bGRQcmVmZXRjaCIsImlzUHJlZmV0Y2hlZCIsImNoaWxkUHJvcHMiLCJvbkNsaWNrIiwiZGVmYXVsdFByZXZlbnRlZCIsIm9uTW91c2VFbnRlciIsInByaW9yaXR5IiwidHlwZSIsImxvY2FsZURvbWFpbiIsImlzTG9jYWxlRG9tYWluIiwiZ2V0RG9tYWluTG9jYWxlIiwibG9jYWxlcyIsImRvbWFpbkxvY2FsZXMiLCJhZGRCYXNlUGF0aCIsImFkZExvY2FsZSIsImRlZmF1bHRMb2NhbGUiLCJjbG9uZUVsZW1lbnQiLCJfZGVmYXVsdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/link.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/normalize-trailing-slash.js": +/*!*******************************************************************!*\ + !*** ./node_modules/next/dist/client/normalize-trailing-slash.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.removePathTrailingSlash = removePathTrailingSlash;\nexports.normalizePathTrailingSlash = void 0;\n\nfunction removePathTrailingSlash(path) {\n return path.endsWith('/') && path !== '/' ? path.slice(0, -1) : path;\n}\n\nconst normalizePathTrailingSlash = true ? path => {\n if (/\\.[^/]+\\/?$/.test(path)) {\n return removePathTrailingSlash(path);\n } else if (path.endsWith('/')) {\n return path;\n } else {\n return path + '/';\n }\n} : 0;\nexports.normalizePathTrailingSlash = normalizePathTrailingSlash;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9ub3JtYWxpemUtdHJhaWxpbmctc2xhc2guanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELCtCQUFBLEdBQWtDRSx1QkFBbEM7QUFDQUYsa0NBQUEsR0FBcUMsS0FBSyxDQUExQzs7QUFDQSxTQUFTRSx1QkFBVCxDQUFpQ0UsSUFBakMsRUFBdUM7QUFDbkMsU0FBT0EsSUFBSSxDQUFDQyxRQUFMLENBQWMsR0FBZCxLQUFzQkQsSUFBSSxLQUFLLEdBQS9CLEdBQXFDQSxJQUFJLENBQUNFLEtBQUwsQ0FBVyxDQUFYLEVBQWMsQ0FBQyxDQUFmLENBQXJDLEdBQXlERixJQUFoRTtBQUNIOztBQUNELE1BQU1ELDBCQUEwQixHQUFHSSxLQUFBLEdBQXFDSCxJQUFELElBQVE7QUFDM0UsTUFBSSxjQUFjTSxJQUFkLENBQW1CTixJQUFuQixDQUFKLEVBQThCO0FBQzFCLFdBQU9GLHVCQUF1QixDQUFDRSxJQUFELENBQTlCO0FBQ0gsR0FGRCxNQUVPLElBQUlBLElBQUksQ0FBQ0MsUUFBTCxDQUFjLEdBQWQsQ0FBSixFQUF3QjtBQUMzQixXQUFPRCxJQUFQO0FBQ0gsR0FGTSxNQUVBO0FBQ0gsV0FBT0EsSUFBSSxHQUFHLEdBQWQ7QUFDSDtBQUNKLENBUmtDLEdBUS9CRixDQVJKO0FBU0FGLGtDQUFBLEdBQXFDRywwQkFBckMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly92aWUtcmVhY3QvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9ub3JtYWxpemUtdHJhaWxpbmctc2xhc2guanM/NGMyZSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMucmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2ggPSByZW1vdmVQYXRoVHJhaWxpbmdTbGFzaDtcbmV4cG9ydHMubm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2ggPSB2b2lkIDA7XG5mdW5jdGlvbiByZW1vdmVQYXRoVHJhaWxpbmdTbGFzaChwYXRoKSB7XG4gICAgcmV0dXJuIHBhdGguZW5kc1dpdGgoJy8nKSAmJiBwYXRoICE9PSAnLycgPyBwYXRoLnNsaWNlKDAsIC0xKSA6IHBhdGg7XG59XG5jb25zdCBub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCA9IHByb2Nlc3MuZW52Ll9fTkVYVF9UUkFJTElOR19TTEFTSCA/IChwYXRoKT0+e1xuICAgIGlmICgvXFwuW14vXStcXC8/JC8udGVzdChwYXRoKSkge1xuICAgICAgICByZXR1cm4gcmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2gocGF0aCk7XG4gICAgfSBlbHNlIGlmIChwYXRoLmVuZHNXaXRoKCcvJykpIHtcbiAgICAgICAgcmV0dXJuIHBhdGg7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHBhdGggKyAnLyc7XG4gICAgfVxufSA6IHJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoO1xuZXhwb3J0cy5ub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCA9IG5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1ub3JtYWxpemUtdHJhaWxpbmctc2xhc2guanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwicmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2giLCJub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCIsInBhdGgiLCJlbmRzV2l0aCIsInNsaWNlIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9UUkFJTElOR19TTEFTSCIsInRlc3QiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/normalize-trailing-slash.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/request-idle-callback.js": +/*!****************************************************************!*\ + !*** ./node_modules/next/dist/client/request-idle-callback.js ***! + \****************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.cancelIdleCallback = exports.requestIdleCallback = void 0;\n\nconst requestIdleCallback = typeof self !== 'undefined' && self.requestIdleCallback && self.requestIdleCallback.bind(window) || function (cb) {\n let start = Date.now();\n return setTimeout(function () {\n cb({\n didTimeout: false,\n timeRemaining: function () {\n return Math.max(0, 50 - (Date.now() - start));\n }\n });\n }, 1);\n};\n\nexports.requestIdleCallback = requestIdleCallback;\n\nconst cancelIdleCallback = typeof self !== 'undefined' && self.cancelIdleCallback && self.cancelIdleCallback.bind(window) || function (id) {\n return clearTimeout(id);\n};\n\nexports.cancelIdleCallback = cancelIdleCallback;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yZXF1ZXN0LWlkbGUtY2FsbGJhY2suanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELDBCQUFBLEdBQTZCQSwyQkFBQSxHQUE4QixLQUFLLENBQWhFOztBQUNBLE1BQU1HLG1CQUFtQixHQUFHLE9BQU9DLElBQVAsS0FBZ0IsV0FBaEIsSUFBK0JBLElBQUksQ0FBQ0QsbUJBQXBDLElBQTJEQyxJQUFJLENBQUNELG1CQUFMLENBQXlCRSxJQUF6QixDQUE4QkMsTUFBOUIsQ0FBM0QsSUFBb0csVUFBU0MsRUFBVCxFQUFhO0FBQ3pJLE1BQUlDLEtBQUssR0FBR0MsSUFBSSxDQUFDQyxHQUFMLEVBQVo7QUFDQSxTQUFPQyxVQUFVLENBQUMsWUFBVztBQUN6QkosSUFBQUEsRUFBRSxDQUFDO0FBQ0NLLE1BQUFBLFVBQVUsRUFBRSxLQURiO0FBRUNDLE1BQUFBLGFBQWEsRUFBRSxZQUFXO0FBQ3RCLGVBQU9DLElBQUksQ0FBQ0MsR0FBTCxDQUFTLENBQVQsRUFBWSxNQUFNTixJQUFJLENBQUNDLEdBQUwsS0FBYUYsS0FBbkIsQ0FBWixDQUFQO0FBQ0g7QUFKRixLQUFELENBQUY7QUFNSCxHQVBnQixFQU9kLENBUGMsQ0FBakI7QUFRSCxDQVZEOztBQVdBUiwyQkFBQSxHQUE4QkcsbUJBQTlCOztBQUNBLE1BQU1ELGtCQUFrQixHQUFHLE9BQU9FLElBQVAsS0FBZ0IsV0FBaEIsSUFBK0JBLElBQUksQ0FBQ0Ysa0JBQXBDLElBQTBERSxJQUFJLENBQUNGLGtCQUFMLENBQXdCRyxJQUF4QixDQUE2QkMsTUFBN0IsQ0FBMUQsSUFBa0csVUFBU1UsRUFBVCxFQUFhO0FBQ3RJLFNBQU9DLFlBQVksQ0FBQ0QsRUFBRCxDQUFuQjtBQUNILENBRkQ7O0FBR0FoQiwwQkFBQSxHQUE2QkUsa0JBQTdCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmllLXJlYWN0Ly4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvcmVxdWVzdC1pZGxlLWNhbGxiYWNrLmpzPzFlMjAiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmNhbmNlbElkbGVDYWxsYmFjayA9IGV4cG9ydHMucmVxdWVzdElkbGVDYWxsYmFjayA9IHZvaWQgMDtcbmNvbnN0IHJlcXVlc3RJZGxlQ2FsbGJhY2sgPSB0eXBlb2Ygc2VsZiAhPT0gJ3VuZGVmaW5lZCcgJiYgc2VsZi5yZXF1ZXN0SWRsZUNhbGxiYWNrICYmIHNlbGYucmVxdWVzdElkbGVDYWxsYmFjay5iaW5kKHdpbmRvdykgfHwgZnVuY3Rpb24oY2IpIHtcbiAgICBsZXQgc3RhcnQgPSBEYXRlLm5vdygpO1xuICAgIHJldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICBjYih7XG4gICAgICAgICAgICBkaWRUaW1lb3V0OiBmYWxzZSxcbiAgICAgICAgICAgIHRpbWVSZW1haW5pbmc6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBNYXRoLm1heCgwLCA1MCAtIChEYXRlLm5vdygpIC0gc3RhcnQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSwgMSk7XG59O1xuZXhwb3J0cy5yZXF1ZXN0SWRsZUNhbGxiYWNrID0gcmVxdWVzdElkbGVDYWxsYmFjaztcbmNvbnN0IGNhbmNlbElkbGVDYWxsYmFjayA9IHR5cGVvZiBzZWxmICE9PSAndW5kZWZpbmVkJyAmJiBzZWxmLmNhbmNlbElkbGVDYWxsYmFjayAmJiBzZWxmLmNhbmNlbElkbGVDYWxsYmFjay5iaW5kKHdpbmRvdykgfHwgZnVuY3Rpb24oaWQpIHtcbiAgICByZXR1cm4gY2xlYXJUaW1lb3V0KGlkKTtcbn07XG5leHBvcnRzLmNhbmNlbElkbGVDYWxsYmFjayA9IGNhbmNlbElkbGVDYWxsYmFjaztcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVxdWVzdC1pZGxlLWNhbGxiYWNrLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImNhbmNlbElkbGVDYWxsYmFjayIsInJlcXVlc3RJZGxlQ2FsbGJhY2siLCJzZWxmIiwiYmluZCIsIndpbmRvdyIsImNiIiwic3RhcnQiLCJEYXRlIiwibm93Iiwic2V0VGltZW91dCIsImRpZFRpbWVvdXQiLCJ0aW1lUmVtYWluaW5nIiwiTWF0aCIsIm1heCIsImlkIiwiY2xlYXJUaW1lb3V0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/request-idle-callback.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/route-loader.js": +/*!*******************************************************!*\ + !*** ./node_modules/next/dist/client/route-loader.js ***! + \*******************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.markAssetError = markAssetError;\nexports.isAssetError = isAssetError;\nexports.getClientBuildManifest = getClientBuildManifest;\nexports.getMiddlewareManifest = getMiddlewareManifest;\nexports.createRouteLoader = createRouteLoader;\n\nvar _getAssetPathFromRoute = _interopRequireDefault(__webpack_require__(/*! ../shared/lib/router/utils/get-asset-path-from-route */ \"../shared/lib/router/utils/get-asset-path-from-route\"));\n\nvar _requestIdleCallback = __webpack_require__(/*! ./request-idle-callback */ \"./node_modules/next/dist/client/request-idle-callback.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n} // 3.8s was arbitrarily chosen as it's what https://web.dev/interactive\n// considers as \"Good\" time-to-interactive. We must assume something went\n// wrong beyond this point, and then fall-back to a full page transition to\n// show the user something of value.\n\n\nconst MS_MAX_IDLE_DELAY = 3800;\n\nfunction withFuture(key, map, generator) {\n let entry = map.get(key);\n\n if (entry) {\n if ('future' in entry) {\n return entry.future;\n }\n\n return Promise.resolve(entry);\n }\n\n let resolver;\n const prom = new Promise(resolve => {\n resolver = resolve;\n });\n map.set(key, entry = {\n resolve: resolver,\n future: prom\n });\n return generator ? generator() // eslint-disable-next-line no-sequences\n .then(value => (resolver(value), value)).catch(err => {\n map.delete(key);\n throw err;\n }) : prom;\n}\n\nfunction hasPrefetch(link) {\n try {\n link = document.createElement('link');\n return (// detect IE11 since it supports prefetch but isn't detected\n // with relList.support\n !!window.MSInputMethodContext && !!document.documentMode || link.relList.supports('prefetch')\n );\n } catch (e) {\n return false;\n }\n}\n\nconst canPrefetch = hasPrefetch();\n\nfunction prefetchViaDom(href, as, link) {\n return new Promise((res, rej) => {\n const selector = `\n link[rel=\"prefetch\"][href^=\"${href}\"],\n link[rel=\"preload\"][href^=\"${href}\"],\n script[src^=\"${href}\"]`;\n\n if (document.querySelector(selector)) {\n return res();\n }\n\n link = document.createElement('link'); // The order of property assignment here is intentional:\n\n if (as) link.as = as;\n link.rel = `prefetch`;\n link.crossOrigin = undefined;\n link.onload = res;\n link.onerror = rej; // `href` should always be last:\n\n link.href = href;\n document.head.appendChild(link);\n });\n}\n\nconst ASSET_LOAD_ERROR = Symbol('ASSET_LOAD_ERROR');\n\nfunction markAssetError(err) {\n return Object.defineProperty(err, ASSET_LOAD_ERROR, {});\n}\n\nfunction isAssetError(err) {\n return err && ASSET_LOAD_ERROR in err;\n}\n\nfunction appendScript(src, script) {\n return new Promise((resolve, reject) => {\n script = document.createElement('script'); // The order of property assignment here is intentional.\n // 1. Setup success/failure hooks in case the browser synchronously\n // executes when `src` is set.\n\n script.onload = resolve;\n\n script.onerror = () => reject(markAssetError(new Error(`Failed to load script: ${src}`))); // 2. Configure the cross-origin attribute before setting `src` in case the\n // browser begins to fetch.\n\n\n script.crossOrigin = undefined; // 3. Finally, set the source and inject into the DOM in case the child\n // must be appended for fetching to start.\n\n script.src = src;\n document.body.appendChild(script);\n });\n} // We wait for pages to be built in dev before we start the route transition\n// timeout to prevent an un-necessary hard navigation in development.\n\n\nlet devBuildPromise; // Resolve a promise that times out after given amount of milliseconds.\n\nfunction resolvePromiseWithTimeout(p, ms, err) {\n return new Promise((resolve, reject) => {\n let cancelled = false;\n p.then(r => {\n // Resolved, cancel the timeout\n cancelled = true;\n resolve(r);\n }).catch(reject); // We wrap these checks separately for better dead-code elimination in\n // production bundles.\n\n if (true) {\n (devBuildPromise || Promise.resolve()).then(() => {\n (0, _requestIdleCallback).requestIdleCallback(() => setTimeout(() => {\n if (!cancelled) {\n reject(err);\n }\n }, ms));\n });\n }\n\n if (false) {}\n });\n}\n\nfunction getClientBuildManifest() {\n if (self.__BUILD_MANIFEST) {\n return Promise.resolve(self.__BUILD_MANIFEST);\n }\n\n const onBuildManifest = new Promise(resolve => {\n // Mandatory because this is not concurrent safe:\n const cb = self.__BUILD_MANIFEST_CB;\n\n self.__BUILD_MANIFEST_CB = () => {\n resolve(self.__BUILD_MANIFEST);\n cb && cb();\n };\n });\n return resolvePromiseWithTimeout(onBuildManifest, MS_MAX_IDLE_DELAY, markAssetError(new Error('Failed to load client build manifest')));\n}\n\nfunction getMiddlewareManifest() {\n if (self.__MIDDLEWARE_MANIFEST) {\n return Promise.resolve(self.__MIDDLEWARE_MANIFEST);\n }\n\n const onMiddlewareManifest = new Promise(resolve => {\n const cb = self.__MIDDLEWARE_MANIFEST_CB;\n\n self.__MIDDLEWARE_MANIFEST_CB = () => {\n resolve(self.__MIDDLEWARE_MANIFEST);\n cb && cb();\n };\n });\n return resolvePromiseWithTimeout(onMiddlewareManifest, MS_MAX_IDLE_DELAY, markAssetError(new Error('Failed to load client middleware manifest')));\n}\n\nfunction getFilesForRoute(assetPrefix, route) {\n if (true) {\n return Promise.resolve({\n scripts: [assetPrefix + '/_next/static/chunks/pages' + encodeURI((0, _getAssetPathFromRoute).default(route, '.js'))],\n // Styles are handled by `style-loader` in development:\n css: []\n });\n }\n\n return getClientBuildManifest().then(manifest => {\n if (!(route in manifest)) {\n throw markAssetError(new Error(`Failed to lookup route: ${route}`));\n }\n\n const allFiles = manifest[route].map(entry => assetPrefix + '/_next/' + encodeURI(entry));\n return {\n scripts: allFiles.filter(v => v.endsWith('.js')),\n css: allFiles.filter(v => v.endsWith('.css'))\n };\n });\n}\n\nfunction createRouteLoader(assetPrefix) {\n const entrypoints = new Map();\n const loadedScripts = new Map();\n const styleSheets = new Map();\n const routes = new Map();\n\n function maybeExecuteScript(src) {\n // With HMR we might need to \"reload\" scripts when they are\n // disposed and readded. Executing scripts twice has no functional\n // differences\n if (false) {} else {\n return appendScript(src);\n }\n }\n\n function fetchStyleSheet(href) {\n let prom = styleSheets.get(href);\n\n if (prom) {\n return prom;\n }\n\n styleSheets.set(href, prom = fetch(href).then(res => {\n if (!res.ok) {\n throw new Error(`Failed to load stylesheet: ${href}`);\n }\n\n return res.text().then(text => ({\n href: href,\n content: text\n }));\n }).catch(err => {\n throw markAssetError(err);\n }));\n return prom;\n }\n\n return {\n whenEntrypoint(route) {\n return withFuture(route, entrypoints);\n },\n\n onEntrypoint(route, execute) {\n (execute ? Promise.resolve().then(() => execute()).then(exports => ({\n component: exports && exports.default || exports,\n exports: exports\n }), err => ({\n error: err\n })) : Promise.resolve(undefined)).then(input => {\n const old = entrypoints.get(route);\n\n if (old && 'resolve' in old) {\n if (input) {\n entrypoints.set(route, input);\n old.resolve(input);\n }\n } else {\n if (input) {\n entrypoints.set(route, input);\n } else {\n entrypoints.delete(route);\n } // when this entrypoint has been resolved before\n // the route is outdated and we want to invalidate\n // this cache entry\n\n\n routes.delete(route);\n }\n });\n },\n\n loadRoute(route, prefetch) {\n return withFuture(route, routes, () => {\n const routeFilesPromise = getFilesForRoute(assetPrefix, route).then(({\n scripts,\n css\n }) => {\n return Promise.all([entrypoints.has(route) ? [] : Promise.all(scripts.map(maybeExecuteScript)), Promise.all(css.map(fetchStyleSheet))]);\n }).then(res => {\n return this.whenEntrypoint(route).then(entrypoint => ({\n entrypoint,\n styles: res[1]\n }));\n });\n\n if (true) {\n devBuildPromise = new Promise(resolve => {\n if (routeFilesPromise) {\n return routeFilesPromise.finally(() => {\n resolve();\n });\n }\n });\n }\n\n return resolvePromiseWithTimeout(routeFilesPromise, MS_MAX_IDLE_DELAY, markAssetError(new Error(`Route did not complete loading: ${route}`))).then(({\n entrypoint,\n styles\n }) => {\n const res = Object.assign({\n styles: styles\n }, entrypoint);\n return 'error' in entrypoint ? entrypoint : res;\n }).catch(err => {\n if (prefetch) {\n // we don't want to cache errors during prefetch\n throw err;\n }\n\n return {\n error: err\n };\n });\n });\n },\n\n prefetch(route) {\n // https://github.com/GoogleChromeLabs/quicklink/blob/453a661fa1fa940e2d2e044452398e38c67a98fb/src/index.mjs#L115-L118\n // License: Apache 2.0\n let cn;\n\n if (cn = navigator.connection) {\n // Don't prefetch if using 2G or if Save-Data is enabled.\n if (cn.saveData || /2g/.test(cn.effectiveType)) return Promise.resolve();\n }\n\n return getFilesForRoute(assetPrefix, route).then(output => Promise.all(canPrefetch ? output.scripts.map(script => prefetchViaDom(script, 'script')) : [])).then(() => {\n (0, _requestIdleCallback).requestIdleCallback(() => this.loadRoute(route, true).catch(() => {}));\n }).catch( // swallow prefetch errors\n () => {});\n }\n\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yb3V0ZS1sb2FkZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELHNCQUFBLEdBQXlCRSxjQUF6QjtBQUNBRixvQkFBQSxHQUF1QkcsWUFBdkI7QUFDQUgsOEJBQUEsR0FBaUNJLHNCQUFqQztBQUNBSiw2QkFBQSxHQUFnQ0sscUJBQWhDO0FBQ0FMLHlCQUFBLEdBQTRCTSxpQkFBNUI7O0FBQ0EsSUFBSUMsc0JBQXNCLEdBQUdDLHNCQUFzQixDQUFDQyxtQkFBTyxDQUFDLGtIQUFELENBQVIsQ0FBbkQ7O0FBQ0EsSUFBSUMsb0JBQW9CLEdBQUdELG1CQUFPLENBQUMseUZBQUQsQ0FBbEM7O0FBQ0EsU0FBU0Qsc0JBQVQsQ0FBZ0NHLEdBQWhDLEVBQXFDO0FBQ2pDLFNBQU9BLEdBQUcsSUFBSUEsR0FBRyxDQUFDQyxVQUFYLEdBQXdCRCxHQUF4QixHQUE4QjtBQUNqQ0UsSUFBQUEsT0FBTyxFQUFFRjtBQUR3QixHQUFyQztBQUdILEMsQ0FDRDtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0EsTUFBTUcsaUJBQWlCLEdBQUcsSUFBMUI7O0FBQ0EsU0FBU0MsVUFBVCxDQUFvQkMsR0FBcEIsRUFBeUJDLEdBQXpCLEVBQThCQyxTQUE5QixFQUF5QztBQUNyQyxNQUFJQyxLQUFLLEdBQUdGLEdBQUcsQ0FBQ0csR0FBSixDQUFRSixHQUFSLENBQVo7O0FBQ0EsTUFBSUcsS0FBSixFQUFXO0FBQ1AsUUFBSSxZQUFZQSxLQUFoQixFQUF1QjtBQUNuQixhQUFPQSxLQUFLLENBQUNFLE1BQWI7QUFDSDs7QUFDRCxXQUFPQyxPQUFPLENBQUNDLE9BQVIsQ0FBZ0JKLEtBQWhCLENBQVA7QUFDSDs7QUFDRCxNQUFJSyxRQUFKO0FBQ0EsUUFBTUMsSUFBSSxHQUFHLElBQUlILE9BQUosQ0FBYUMsT0FBRCxJQUFXO0FBQ2hDQyxJQUFBQSxR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O0FBQ25EOztBQUNELGFBQU8yRCxnQkFBZ0IsQ0FBQ0MsV0FBRCxFQUFjQyxLQUFkLENBQWhCLENBQXFDekQsSUFBckMsQ0FBMkNvRyxNQUFELElBQVV6RyxPQUFPLENBQUM2RixHQUFSLENBQVkxRSxXQUFXLEdBQUdzRixNQUFNLENBQUMxQyxPQUFQLENBQWVwRSxHQUFmLENBQW9CNkMsTUFBRCxJQUFVcEIsY0FBYyxDQUFDb0IsTUFBRCxFQUFTLFFBQVQsQ0FBM0MsQ0FBSCxHQUMxRSxFQURtRCxDQUFwRCxFQUVMbkMsSUFGSyxDQUVBLE1BQUk7QUFDUCxTQUFDLEdBQUdqQixvQkFBSixFQUEwQjhELG1CQUExQixDQUE4QyxNQUFJLEtBQUt3QyxTQUFMLENBQWU1QixLQUFmLEVBQXNCLElBQXRCLEVBQTRCeEQsS0FBNUIsQ0FBa0MsTUFBSSxDQUNuRixDQUQ2QyxDQUFsRDtBQUdILE9BTk0sRUFNSkEsS0FOSSxFQU1FO0FBQ1QsWUFBSSxDQUNILENBUk0sQ0FBUDtBQVNIOztBQXpGRSxHQUFQO0FBMkZIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmllLXJlYWN0Ly4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvcm91dGUtbG9hZGVyLmpzP2VhMzQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLm1hcmtBc3NldEVycm9yID0gbWFya0Fzc2V0RXJyb3I7XG5leHBvcnRzLmlzQXNzZXRFcnJvciA9IGlzQXNzZXRFcnJvcjtcbmV4cG9ydHMuZ2V0Q2xpZW50QnVpbGRNYW5pZmVzdCA9IGdldENsaWVudEJ1aWxkTWFuaWZlc3Q7XG5leHBvcnRzLmdldE1pZGRsZXdhcmVNYW5pZmVzdCA9IGdldE1pZGRsZXdhcmVNYW5pZmVzdDtcbmV4cG9ydHMuY3JlYXRlUm91dGVMb2FkZXIgPSBjcmVhdGVSb3V0ZUxvYWRlcjtcbnZhciBfZ2V0QXNzZXRQYXRoRnJvbVJvdXRlID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZ2V0LWFzc2V0LXBhdGgtZnJvbS1yb3V0ZVwiKSk7XG52YXIgX3JlcXVlc3RJZGxlQ2FsbGJhY2sgPSByZXF1aXJlKFwiLi9yZXF1ZXN0LWlkbGUtY2FsbGJhY2tcIik7XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG4vLyAzLjhzIHdhcyBhcmJpdHJhcmlseSBjaG9zZW4gYXMgaXQncyB3aGF0IGh0dHBzOi8vd2ViLmRldi9pbnRlcmFjdGl2ZVxuLy8gY29uc2lkZXJzIGFzIFwiR29vZFwiIHRpbWUtdG8taW50ZXJhY3RpdmUuIFdlIG11c3QgYXNzdW1lIHNvbWV0aGluZyB3ZW50XG4vLyB3cm9uZyBiZXlvbmQgdGhpcyBwb2ludCwgYW5kIHRoZW4gZmFsbC1iYWNrIHRvIGEgZnVsbCBwYWdlIHRyYW5zaXRpb24gdG9cbi8vIHNob3cgdGhlIHVzZXIgc29tZXRoaW5nIG9mIHZhbHVlLlxuY29uc3QgTVNfTUFYX0lETEVfREVMQVkgPSAzODAwO1xuZnVuY3Rpb24gd2l0aEZ1dHVyZShrZXksIG1hcCwgZ2VuZXJhdG9yKSB7XG4gICAgbGV0IGVudHJ5ID0gbWFwLmdldChrZXkpO1xuICAgIGlmIChlbnRyeSkge1xuICAgICAgICBpZiAoJ2Z1dHVyZScgaW4gZW50cnkpIHtcbiAgICAgICAgICAgIHJldHVybiBlbnRyeS5mdXR1cmU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShlbnRyeSk7XG4gICAgfVxuICAgIGxldCByZXNvbHZlcjtcbiAgICBjb25zdCBwcm9tID0gbmV3IFByb21pc2UoKHJlc29sdmUpPT57XG4gICAgICAgIHJlc29sdmVyID0gcmVzb2x2ZTtcbiAgICB9KTtcbiAgICBtYXAuc2V0KGtleSwgZW50cnkgPSB7XG4gICAgICAgIHJlc29sdmU6IHJlc29sdmVyLFxuICAgICAgICBmdXR1cmU6IHByb21cbiAgICB9KTtcbiAgICByZXR1cm4gZ2VuZXJhdG9yID8gZ2VuZXJhdG9yKCkvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VxdWVuY2VzXG4gICAgLnRoZW4oKHZhbHVlKT0+KHJlc29sdmVyKHZhbHVlKSwgdmFsdWUpXG4gICAgKS5jYXRjaCgoZXJyKT0+e1xuICAgICAgICBtYXAuZGVsZXRlKGtleSk7XG4gICAgICAgIHRocm93IGVycjtcbiAgICB9KSA6IHByb207XG59XG5mdW5jdGlvbiBoYXNQcmVmZXRjaChsaW5rKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtcbiAgICAgICAgcmV0dXJuKC8vIGRldGVjdCBJRTExIHNpbmNlIGl0IHN1cHBvcnRzIHByZWZldGNoIGJ1dCBpc24ndCBkZXRlY3RlZFxuICAgICAgICAvLyB3aXRoIHJlbExpc3Quc3VwcG9ydFxuICAgICAgICAoISF3aW5kb3cuTVNJbnB1dE1ldGhvZENvbnRleHQgJiYgISFkb2N1bWVudC5kb2N1bWVudE1vZGUpIHx8IGxpbmsucmVsTGlzdC5zdXBwb3J0cygncHJlZmV0Y2gnKSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuY29uc3QgY2FuUHJlZmV0Y2ggPSBoYXNQcmVmZXRjaCgpO1xuZnVuY3Rpb24gcHJlZmV0Y2hWaWFEb20oaHJlZiwgYXMsIGxpbmspIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlcywgcmVqKT0+e1xuICAgICAgICBjb25zdCBzZWxlY3RvciA9IGBcbiAgICAgIGxpbmtbcmVsPVwicHJlZmV0Y2hcIl1baHJlZl49XCIke2hyZWZ9XCJdLFxuICAgICAgbGlua1tyZWw9XCJwcmVsb2FkXCJdW2hyZWZePVwiJHtocmVmfVwiXSxcbiAgICAgIHNjcmlwdFtzcmNePVwiJHtocmVmfVwiXWA7XG4gICAgICAgIGlmIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlcygpO1xuICAgICAgICB9XG4gICAgICAgIGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XG4gICAgICAgIC8vIFRoZSBvcmRlciBvZiBwcm9wZXJ0eSBhc3NpZ25tZW50IGhlcmUgaXMgaW50ZW50aW9uYWw6XG4gICAgICAgIGlmIChhcykgbGluay5hcyA9IGFzO1xuICAgICAgICBsaW5rLnJlbCA9IGBwcmVmZXRjaGA7XG4gICAgICAgIGxpbmsuY3Jvc3NPcmlnaW4gPSBwcm9jZXNzLmVudi5fX05FWFRfQ1JPU1NfT1JJR0lOO1xuICAgICAgICBsaW5rLm9ubG9hZCA9IHJlcztcbiAgICAgICAgbGluay5vbmVycm9yID0gcmVqO1xuICAgICAgICAvLyBgaHJlZmAgc2hvdWxkIGFsd2F5cyBiZSBsYXN0OlxuICAgICAgICBsaW5rLmhyZWYgPSBocmVmO1xuICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGxpbmspO1xuICAgIH0pO1xufVxuY29uc3QgQVNTRVRfTE9BRF9FUlJPUiA9IFN5bWJvbCgnQVNTRVRfTE9BRF9FUlJPUicpO1xuZnVuY3Rpb24gbWFya0Fzc2V0RXJyb3IoZXJyKSB7XG4gICAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlcnIsIEFTU0VUX0xPQURfRVJST1IsIHtcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGlzQXNzZXRFcnJvcihlcnIpIHtcbiAgICByZXR1cm4gZXJyICYmIEFTU0VUX0xPQURfRVJST1IgaW4gZXJyO1xufVxuZnVuY3Rpb24gYXBwZW5kU2NyaXB0KHNyYywgc2NyaXB0KSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpPT57XG4gICAgICAgIHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgICAvLyBUaGUgb3JkZXIgb2YgcHJvcGVydHkgYXNzaWdubWVudCBoZXJlIGlzIGludGVudGlvbmFsLlxuICAgICAgICAvLyAxLiBTZXR1cCBzdWNjZXNzL2ZhaWx1cmUgaG9va3MgaW4gY2FzZSB0aGUgYnJvd3NlciBzeW5jaHJvbm91c2x5XG4gICAgICAgIC8vICAgIGV4ZWN1dGVzIHdoZW4gYHNyY2AgaXMgc2V0LlxuICAgICAgICBzY3JpcHQub25sb2FkID0gcmVzb2x2ZTtcbiAgICAgICAgc2NyaXB0Lm9uZXJyb3IgPSAoKT0+cmVqZWN0KG1hcmtBc3NldEVycm9yKG5ldyBFcnJvcihgRmFpbGVkIHRvIGxvYWQgc2NyaXB0OiAke3NyY31gKSkpXG4gICAgICAgIDtcbiAgICAgICAgLy8gMi4gQ29uZmlndXJlIHRoZSBjcm9zcy1vcmlnaW4gYXR0cmlidXRlIGJlZm9yZSBzZXR0aW5nIGBzcmNgIGluIGNhc2UgdGhlXG4gICAgICAgIC8vICAgIGJyb3dzZXIgYmVnaW5zIHRvIGZldGNoLlxuICAgICAgICBzY3JpcHQuY3Jvc3NPcmlnaW4gPSBwcm9jZXNzLmVudi5fX05FWFRfQ1JPU1NfT1JJR0lOO1xuICAgICAgICAvLyAzLiBGaW5hbGx5LCBzZXQgdGhlIHNvdXJjZSBhbmQgaW5qZWN0IGludG8gdGhlIERPTSBpbiBjYXNlIHRoZSBjaGlsZFxuICAgICAgICAvLyAgICBtdXN0IGJlIGFwcGVuZGVkIGZvciBmZXRjaGluZyB0byBzdGFydC5cbiAgICAgICAgc2NyaXB0LnNyYyA9IHNyYztcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzY3JpcHQpO1xuICAgIH0pO1xufVxuLy8gV2Ugd2FpdCBmb3IgcGFnZXMgdG8gYmUgYnVpbHQgaW4gZGV2IGJlZm9yZSB3ZSBzdGFydCB0aGUgcm91dGUgdHJhbnNpdGlvblxuLy8gdGltZW91dCB0byBwcmV2ZW50IGFuIHVuLW5lY2Vzc2FyeSBoYXJkIG5hdmlnYXRpb24gaW4gZGV2ZWxvcG1lbnQuXG5sZXQgZGV2QnVpbGRQcm9taXNlO1xuLy8gUmVzb2x2ZSBhIHByb21pc2UgdGhhdCB0aW1lcyBvdXQgYWZ0ZXIgZ2l2ZW4gYW1vdW50IG9mIG1pbGxpc2Vjb25kcy5cbmZ1bmN0aW9uIHJlc29sdmVQcm9taXNlV2l0aFRpbWVvdXQocCwgbXMsIGVycikge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KT0+e1xuICAgICAgICBsZXQgY2FuY2VsbGVkID0gZmFsc2U7XG4gICAgICAgIHAudGhlbigocik9PntcbiAgICAgICAgICAgIC8vIFJlc29sdmVkLCBjYW5jZWwgdGhlIHRpbWVvdXRcbiAgICAgICAgICAgIGNhbmNlbGxlZCA9IHRydWU7XG4gICAgICAgICAgICByZXNvbHZlKHIpO1xuICAgICAgICB9KS5jYXRjaChyZWplY3QpO1xuICAgICAgICAvLyBXZSB3cmFwIHRoZXNlIGNoZWNrcyBzZXBhcmF0ZWx5IGZvciBiZXR0ZXIgZGVhZC1jb2RlIGVsaW1pbmF0aW9uIGluXG4gICAgICAgIC8vIHByb2R1Y3Rpb24gYnVuZGxlcy5cbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgICAoZGV2QnVpbGRQcm9taXNlIHx8IFByb21pc2UucmVzb2x2ZSgpKS50aGVuKCgpPT57XG4gICAgICAgICAgICAgICAgKDAsIF9yZXF1ZXN0SWRsZUNhbGxiYWNrKS5yZXF1ZXN0SWRsZUNhbGxiYWNrKCgpPT5zZXRUaW1lb3V0KCgpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWNhbmNlbGxlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LCBtcylcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgICAoMCwgX3JlcXVlc3RJZGxlQ2FsbGJhY2spLnJlcXVlc3RJZGxlQ2FsbGJhY2soKCk9PnNldFRpbWVvdXQoKCk9PntcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjYW5jZWxsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSwgbXMpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5mdW5jdGlvbiBnZXRDbGllbnRCdWlsZE1hbmlmZXN0KCkge1xuICAgIGlmIChzZWxmLl9fQlVJTERfTUFOSUZFU1QpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShzZWxmLl9fQlVJTERfTUFOSUZFU1QpO1xuICAgIH1cbiAgICBjb25zdCBvbkJ1aWxkTWFuaWZlc3QgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSk9PntcbiAgICAgICAgLy8gTWFuZGF0b3J5IGJlY2F1c2UgdGhpcyBpcyBub3QgY29uY3VycmVudCBzYWZlOlxuICAgICAgICBjb25zdCBjYiA9IHNlbGYuX19CVUlMRF9NQU5JRkVTVF9DQjtcbiAgICAgICAgc2VsZi5fX0JVSUxEX01BTklGRVNUX0NCID0gKCk9PntcbiAgICAgICAgICAgIHJlc29sdmUoc2VsZi5fX0JVSUxEX01BTklGRVNUKTtcbiAgICAgICAgICAgIGNiICYmIGNiKCk7XG4gICAgICAgIH07XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc29sdmVQcm9taXNlV2l0aFRpbWVvdXQob25CdWlsZE1hbmlmZXN0LCBNU19NQVhfSURMRV9ERUxBWSwgbWFya0Fzc2V0RXJyb3IobmV3IEVycm9yKCdGYWlsZWQgdG8gbG9hZCBjbGllbnQgYnVpbGQgbWFuaWZlc3QnKSkpO1xufVxuZnVuY3Rpb24gZ2V0TWlkZGxld2FyZU1hbmlmZXN0KCkge1xuICAgIGlmIChzZWxmLl9fTUlERExFV0FSRV9NQU5JRkVTVCkge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHNlbGYuX19NSURETEVXQVJFX01BTklGRVNUKTtcbiAgICB9XG4gICAgY29uc3Qgb25NaWRkbGV3YXJlTWFuaWZlc3QgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSk9PntcbiAgICAgICAgY29uc3QgY2IgPSBzZWxmLl9fTUlERExFV0FSRV9NQU5JRkVTVF9DQjtcbiAgICAgICAgc2VsZi5fX01JRERMRVdBUkVfTUFOSUZFU1RfQ0IgPSAoKT0+e1xuICAgICAgICAgICAgcmVzb2x2ZShzZWxmLl9fTUlERExFV0FSRV9NQU5JRkVTVCk7XG4gICAgICAgICAgICBjYiAmJiBjYigpO1xuICAgICAgICB9O1xuICAgIH0pO1xuICAgIHJldHVybiByZXNvbHZlUHJvbWlzZVdpdGhUaW1lb3V0KG9uTWlkZGxld2FyZU1hbmlmZXN0LCBNU19NQVhfSURMRV9ERUxBWSwgbWFya0Fzc2V0RXJyb3IobmV3IEVycm9yKCdGYWlsZWQgdG8gbG9hZCBjbGllbnQgbWlkZGxld2FyZSBtYW5pZmVzdCcpKSk7XG59XG5mdW5jdGlvbiBnZXRGaWxlc0ZvclJvdXRlKGFzc2V0UHJlZml4LCByb3V0ZSkge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgICAgICAgIHNjcmlwdHM6IFtcbiAgICAgICAgICAgICAgICBhc3NldFByZWZpeCArICcvX25leHQvc3RhdGljL2NodW5rcy9wYWdlcycgKyBlbmNvZGVVUkkoKDAsIF9nZXRBc3NldFBhdGhGcm9tUm91dGUpLmRlZmF1bHQocm91dGUsICcuanMnKSksIFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIC8vIFN0eWxlcyBhcmUgaGFuZGxlZCBieSBgc3R5bGUtbG9hZGVyYCBpbiBkZXZlbG9wbWVudDpcbiAgICAgICAgICAgIGNzczogW11cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBnZXRDbGllbnRCdWlsZE1hbmlmZXN0KCkudGhlbigobWFuaWZlc3QpPT57XG4gICAgICAgIGlmICghKHJvdXRlIGluIG1hbmlmZXN0KSkge1xuICAgICAgICAgICAgdGhyb3cgbWFya0Fzc2V0RXJyb3IobmV3IEVycm9yKGBGYWlsZWQgdG8gbG9va3VwIHJvdXRlOiAke3JvdXRlfWApKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhbGxGaWxlcyA9IG1hbmlmZXN0W3JvdXRlXS5tYXAoKGVudHJ5KT0+YXNzZXRQcmVmaXggKyAnL19uZXh0LycgKyBlbmNvZGVVUkkoZW50cnkpXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzY3JpcHRzOiBhbGxGaWxlcy5maWx0ZXIoKHYpPT52LmVuZHNXaXRoKCcuanMnKVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGNzczogYWxsRmlsZXMuZmlsdGVyKCh2KT0+di5lbmRzV2l0aCgnLmNzcycpXG4gICAgICAgICAgICApXG4gICAgICAgIH07XG4gICAgfSk7XG59XG5mdW5jdGlvbiBjcmVhdGVSb3V0ZUxvYWRlcihhc3NldFByZWZpeCkge1xuICAgIGNvbnN0IGVudHJ5cG9pbnRzID0gbmV3IE1hcCgpO1xuICAgIGNvbnN0IGxvYWRlZFNjcmlwdHMgPSBuZXcgTWFwKCk7XG4gICAgY29uc3Qgc3R5bGVTaGVldHMgPSBuZXcgTWFwKCk7XG4gICAgY29uc3Qgcm91dGVzID0gbmV3IE1hcCgpO1xuICAgIGZ1bmN0aW9uIG1heWJlRXhlY3V0ZVNjcmlwdChzcmMpIHtcbiAgICAgICAgLy8gV2l0aCBITVIgd2UgbWlnaHQgbmVlZCB0byBcInJlbG9hZFwiIHNjcmlwdHMgd2hlbiB0aGV5IGFyZVxuICAgICAgICAvLyBkaXNwb3NlZCBhbmQgcmVhZGRlZC4gRXhlY3V0aW5nIHNjcmlwdHMgdHdpY2UgaGFzIG5vIGZ1bmN0aW9uYWxcbiAgICAgICAgLy8gZGlmZmVyZW5jZXNcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgICBsZXQgcHJvbSA9IGxvYWRlZFNjcmlwdHMuZ2V0KHNyYyk7XG4gICAgICAgICAgICBpZiAocHJvbSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwcm9tO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gU2tpcCBleGVjdXRpbmcgc2NyaXB0IGlmIGl0J3MgYWxyZWFkeSBpbiB0aGUgRE9NOlxuICAgICAgICAgICAgaWYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYHNjcmlwdFtzcmNePVwiJHtzcmN9XCJdYCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsb2FkZWRTY3JpcHRzLnNldChzcmMsIHByb20gPSBhcHBlbmRTY3JpcHQoc3JjKSk7XG4gICAgICAgICAgICByZXR1cm4gcHJvbTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBhcHBlbmRTY3JpcHQoc3JjKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBmZXRjaFN0eWxlU2hlZXQoaHJlZikge1xuICAgICAgICBsZXQgcHJvbSA9IHN0eWxlU2hlZXRzLmdldChocmVmKTtcbiAgICAgICAgaWYgKHByb20pIHtcbiAgICAgICAgICAgIHJldHVybiBwcm9tO1xuICAgICAgICB9XG4gICAgICAgIHN0eWxlU2hlZXRzLnNldChocmVmLCBwcm9tID0gZmV0Y2goaHJlZikudGhlbigocmVzKT0+e1xuICAgICAgICAgICAgaWYgKCFyZXMub2spIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBsb2FkIHN0eWxlc2hlZXQ6ICR7aHJlZn1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZXMudGV4dCgpLnRoZW4oKHRleHQpPT4oe1xuICAgICAgICAgICAgICAgICAgICBocmVmOiBocmVmLFxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiB0ZXh0XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pLmNhdGNoKChlcnIpPT57XG4gICAgICAgICAgICB0aHJvdyBtYXJrQXNzZXRFcnJvcihlcnIpO1xuICAgICAgICB9KSk7XG4gICAgICAgIHJldHVybiBwcm9tO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICB3aGVuRW50cnlwb2ludCAocm91dGUpIHtcbiAgICAgICAgICAgIHJldHVybiB3aXRoRnV0dXJlKHJvdXRlLCBlbnRyeXBvaW50cyk7XG4gICAgICAgIH0sXG4gICAgICAgIG9uRW50cnlwb2ludCAocm91dGUsIGV4ZWN1dGUpIHtcbiAgICAgICAgICAgIChleGVjdXRlID8gUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+ZXhlY3V0ZSgpXG4gICAgICAgICAgICApLnRoZW4oKGV4cG9ydHMpPT4oe1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQ6IGV4cG9ydHMgJiYgZXhwb3J0cy5kZWZhdWx0IHx8IGV4cG9ydHMsXG4gICAgICAgICAgICAgICAgICAgIGV4cG9ydHM6IGV4cG9ydHNcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgLCAoZXJyKT0+KHtcbiAgICAgICAgICAgICAgICAgICAgZXJyb3I6IGVyclxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApIDogUHJvbWlzZS5yZXNvbHZlKHVuZGVmaW5lZCkpLnRoZW4oKGlucHV0KT0+e1xuICAgICAgICAgICAgICAgIGNvbnN0IG9sZCA9IGVudHJ5cG9pbnRzLmdldChyb3V0ZSk7XG4gICAgICAgICAgICAgICAgaWYgKG9sZCAmJiAncmVzb2x2ZScgaW4gb2xkKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpbnB1dCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZW50cnlwb2ludHMuc2V0KHJvdXRlLCBpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBvbGQucmVzb2x2ZShpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW5wdXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5cG9pbnRzLnNldChyb3V0ZSwgaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZW50cnlwb2ludHMuZGVsZXRlKHJvdXRlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyB3aGVuIHRoaXMgZW50cnlwb2ludCBoYXMgYmVlbiByZXNvbHZlZCBiZWZvcmVcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHJvdXRlIGlzIG91dGRhdGVkIGFuZCB3ZSB3YW50IHRvIGludmFsaWRhdGVcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBjYWNoZSBlbnRyeVxuICAgICAgICAgICAgICAgICAgICByb3V0ZXMuZGVsZXRlKHJvdXRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgbG9hZFJvdXRlIChyb3V0ZSwgcHJlZmV0Y2gpIHtcbiAgICAgICAgICAgIHJldHVybiB3aXRoRnV0dXJlKHJvdXRlLCByb3V0ZXMsICgpPT57XG4gICAgICAgICAgICAgICAgY29uc3Qgcm91dGVGaWxlc1Byb21pc2UgPSBnZXRGaWxlc0ZvclJvdXRlKGFzc2V0UHJlZml4LCByb3V0ZSkudGhlbigoeyBzY3JpcHRzICwgY3NzICB9KT0+e1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW1xuICAgICAgICAgICAgICAgICAgICAgICAgZW50cnlwb2ludHMuaGFzKHJvdXRlKSA/IFtdIDogUHJvbWlzZS5hbGwoc2NyaXB0cy5tYXAobWF5YmVFeGVjdXRlU2NyaXB0KSksXG4gICAgICAgICAgICAgICAgICAgICAgICBQcm9taXNlLmFsbChjc3MubWFwKGZldGNoU3R5bGVTaGVldCkpLCBcbiAgICAgICAgICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICAgICAgfSkudGhlbigocmVzKT0+e1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy53aGVuRW50cnlwb2ludChyb3V0ZSkudGhlbigoZW50cnlwb2ludCk9Pih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50cnlwb2ludCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZXM6IHJlc1sxXVxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgICAgICAgICAgICAgZGV2QnVpbGRQcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocm91dGVGaWxlc1Byb21pc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcm91dGVGaWxlc1Byb21pc2UuZmluYWxseSgoKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzb2x2ZVByb21pc2VXaXRoVGltZW91dChyb3V0ZUZpbGVzUHJvbWlzZSwgTVNfTUFYX0lETEVfREVMQVksIG1hcmtBc3NldEVycm9yKG5ldyBFcnJvcihgUm91dGUgZGlkIG5vdCBjb21wbGV0ZSBsb2FkaW5nOiAke3JvdXRlfWApKSkudGhlbigoeyBlbnRyeXBvaW50ICwgc3R5bGVzICB9KT0+e1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXMgPSBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlczogc3R5bGVzXG4gICAgICAgICAgICAgICAgICAgIH0sIGVudHJ5cG9pbnQpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2Vycm9yJyBpbiBlbnRyeXBvaW50ID8gZW50cnlwb2ludCA6IHJlcztcbiAgICAgICAgICAgICAgICB9KS5jYXRjaCgoZXJyKT0+e1xuICAgICAgICAgICAgICAgICAgICBpZiAocHJlZmV0Y2gpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGRvbid0IHdhbnQgdG8gY2FjaGUgZXJyb3JzIGR1cmluZyBwcmVmZXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogZXJyXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgcHJlZmV0Y2ggKHJvdXRlKSB7XG4gICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vR29vZ2xlQ2hyb21lTGFicy9xdWlja2xpbmsvYmxvYi80NTNhNjYxZmExZmE5NDBlMmQyZTA0NDQ1MjM5OGUzOGM2N2E5OGZiL3NyYy9pbmRleC5tanMjTDExNS1MMTE4XG4gICAgICAgICAgICAvLyBMaWNlbnNlOiBBcGFjaGUgMi4wXG4gICAgICAgICAgICBsZXQgY247XG4gICAgICAgICAgICBpZiAoY24gPSBuYXZpZ2F0b3IuY29ubmVjdGlvbikge1xuICAgICAgICAgICAgICAgIC8vIERvbid0IHByZWZldGNoIGlmIHVzaW5nIDJHIG9yIGlmIFNhdmUtRGF0YSBpcyBlbmFibGVkLlxuICAgICAgICAgICAgICAgIGlmIChjbi5zYXZlRGF0YSB8fCAvMmcvLnRlc3QoY24uZWZmZWN0aXZlVHlwZSkpIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBnZXRGaWxlc0ZvclJvdXRlKGFzc2V0UHJlZml4LCByb3V0ZSkudGhlbigob3V0cHV0KT0+UHJvbWlzZS5hbGwoY2FuUHJlZmV0Y2ggPyBvdXRwdXQuc2NyaXB0cy5tYXAoKHNjcmlwdCk9PnByZWZldGNoVmlhRG9tKHNjcmlwdCwgJ3NjcmlwdCcpXG4gICAgICAgICAgICAgICAgKSA6IFtdKVxuICAgICAgICAgICAgKS50aGVuKCgpPT57XG4gICAgICAgICAgICAgICAgKDAsIF9yZXF1ZXN0SWRsZUNhbGxiYWNrKS5yZXF1ZXN0SWRsZUNhbGxiYWNrKCgpPT50aGlzLmxvYWRSb3V0ZShyb3V0ZSwgdHJ1ZSkuY2F0Y2goKCk9PntcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSkuY2F0Y2goLy8gc3dhbGxvdyBwcmVmZXRjaCBlcnJvcnNcbiAgICAgICAgICAgICgpPT57XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH07XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJvdXRlLWxvYWRlci5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJtYXJrQXNzZXRFcnJvciIsImlzQXNzZXRFcnJvciIsImdldENsaWVudEJ1aWxkTWFuaWZlc3QiLCJnZXRNaWRkbGV3YXJlTWFuaWZlc3QiLCJjcmVhdGVSb3V0ZUxvYWRlciIsIl9nZXRBc3NldFBhdGhGcm9tUm91dGUiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZXF1ZXN0SWRsZUNhbGxiYWNrIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJNU19NQVhfSURMRV9ERUxBWSIsIndpdGhGdXR1cmUiLCJrZXkiLCJtYXAiLCJnZW5lcmF0b3IiLCJlbnRyeSIsImdldCIsImZ1dHVyZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVzb2x2ZXIiLCJwcm9tIiwic2V0IiwidGhlbiIsImNhdGNoIiwiZXJyIiwiZGVsZXRlIiwiaGFzUHJlZmV0Y2giLCJsaW5rIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50Iiwid2luZG93IiwiTVNJbnB1dE1ldGhvZENvbnRleHQiLCJkb2N1bWVudE1vZGUiLCJyZWxMaXN0Iiwic3VwcG9ydHMiLCJlIiwiY2FuUHJlZmV0Y2giLCJwcmVmZXRjaFZpYURvbSIsImhyZWYiLCJhcyIsInJlcyIsInJlaiIsInNlbGVjdG9yIiwicXVlcnlTZWxlY3RvciIsInJlbCIsImNyb3NzT3JpZ2luIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9DUk9TU19PUklHSU4iLCJvbmxvYWQiLCJvbmVycm9yIiwiaGVhZCIsImFwcGVuZENoaWxkIiwiQVNTRVRfTE9BRF9FUlJPUiIsIlN5bWJvbCIsImFwcGVuZFNjcmlwdCIsInNyYyIsInNjcmlwdCIsInJlamVjdCIsIkVycm9yIiwiYm9keSIsImRldkJ1aWxkUHJvbWlzZSIsInJlc29sdmVQcm9taXNlV2l0aFRpbWVvdXQiLCJwIiwibXMiLCJjYW5jZWxsZWQiLCJyIiwicmVxdWVzdElkbGVDYWxsYmFjayIsInNldFRpbWVvdXQiLCJzZWxmIiwiX19CVUlMRF9NQU5JRkVTVCIsIm9uQnVpbGRNYW5pZmVzdCIsImNiIiwiX19CVUlMRF9NQU5JRkVTVF9DQiIsIl9fTUlERExFV0FSRV9NQU5JRkVTVCIsIm9uTWlkZGxld2FyZU1hbmlmZXN0IiwiX19NSURETEVXQVJFX01BTklGRVNUX0NCIiwiZ2V0RmlsZXNGb3JSb3V0ZSIsImFzc2V0UHJlZml4Iiwicm91dGUiLCJzY3JpcHRzIiwiZW5jb2RlVVJJIiwiY3NzIiwibWFuaWZlc3QiLCJhbGxGaWxlcyIsImZpbHRlciIsInYiLCJlbmRzV2l0aCIsImVudHJ5cG9pbnRzIiwiTWFwIiwibG9hZGVkU2NyaXB0cyIsInN0eWxlU2hlZXRzIiwicm91dGVzIiwibWF5YmVFeGVjdXRlU2NyaXB0IiwiZmV0Y2hTdHlsZVNoZWV0IiwiZmV0Y2giLCJvayIsInRleHQiLCJjb250ZW50Iiwid2hlbkVudHJ5cG9pbnQiLCJvbkVudHJ5cG9pbnQiLCJleGVjdXRlIiwiY29tcG9uZW50IiwiZXJyb3IiLCJ1bmRlZmluZWQiLCJpbnB1dCIsIm9sZCIsImxvYWRSb3V0ZSIsInByZWZldGNoIiwicm91dGVGaWxlc1Byb21pc2UiLCJhbGwiLCJoYXMiLCJlbnRyeXBvaW50Iiwic3R5bGVzIiwiZmluYWxseSIsImFzc2lnbiIsImNuIiwibmF2aWdhdG9yIiwiY29ubmVjdGlvbiIsInNhdmVEYXRhIiwidGVzdCIsImVmZmVjdGl2ZVR5cGUiLCJvdXRwdXQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/route-loader.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/router.js": +/*!*************************************************!*\ + !*** ./node_modules/next/dist/client/router.js ***! + \*************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"Router\", ({\n enumerable: true,\n get: function () {\n return _router.default;\n }\n}));\nObject.defineProperty(exports, \"withRouter\", ({\n enumerable: true,\n get: function () {\n return _withRouter.default;\n }\n}));\nexports.useRouter = useRouter;\nexports.createRouter = createRouter;\nexports.makePublicRouterInstance = makePublicRouterInstance;\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"react\"));\n\nvar _router = _interopRequireDefault(__webpack_require__(/*! ../shared/lib/router/router */ \"./node_modules/next/dist/shared/lib/router/router.js\"));\n\nvar _routerContext = __webpack_require__(/*! ../shared/lib/router-context */ \"../shared/lib/router-context\");\n\nvar _isError = _interopRequireDefault(__webpack_require__(/*! ../lib/is-error */ \"./node_modules/next/dist/lib/is-error.js\"));\n\nvar _withRouter = _interopRequireDefault(__webpack_require__(/*! ./with-router */ \"./node_modules/next/dist/client/with-router.js\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nconst singletonRouter = {\n router: null,\n readyCallbacks: [],\n\n ready(cb) {\n if (this.router) return cb();\n\n if (false) {}\n }\n\n}; // Create public properties and methods of the router in the singletonRouter\n\nconst urlPropertyFields = ['pathname', 'route', 'query', 'asPath', 'components', 'isFallback', 'basePath', 'locale', 'locales', 'defaultLocale', 'isReady', 'isPreview', 'isLocaleDomain', 'domainLocales'];\nconst routerEvents = ['routeChangeStart', 'beforeHistoryChange', 'routeChangeComplete', 'routeChangeError', 'hashChangeStart', 'hashChangeComplete'];\nconst coreMethodFields = ['push', 'replace', 'reload', 'back', 'prefetch', 'beforePopState']; // Events is a static property on the router, the router doesn't have to be initialized to use it\n\nObject.defineProperty(singletonRouter, 'events', {\n get() {\n return _router.default.events;\n }\n\n});\nurlPropertyFields.forEach(field => {\n // Here we need to use Object.defineProperty because we need to return\n // the property assigned to the actual router\n // The value might get changed as we change routes and this is the\n // proper way to access it\n Object.defineProperty(singletonRouter, field, {\n get() {\n const router = getRouter();\n return router[field];\n }\n\n });\n});\ncoreMethodFields.forEach(field => {\n singletonRouter[field] = (...args) => {\n const router = getRouter();\n return router[field](...args);\n };\n});\nrouterEvents.forEach(event => {\n singletonRouter.ready(() => {\n _router.default.events.on(event, (...args) => {\n const eventField = `on${event.charAt(0).toUpperCase()}${event.substring(1)}`;\n const _singletonRouter = singletonRouter;\n\n if (_singletonRouter[eventField]) {\n try {\n _singletonRouter[eventField](...args);\n } catch (err) {\n console.error(`Error when running the Router event: ${eventField}`);\n console.error((0, _isError).default(err) ? `${err.message}\\n${err.stack}` : err + '');\n }\n }\n });\n });\n});\n\nfunction getRouter() {\n if (!singletonRouter.router) {\n const message = 'No router instance found.\\n' + 'You should only use \"next/router\" on the client side of your app.\\n';\n throw new Error(message);\n }\n\n return singletonRouter.router;\n}\n\nvar _default = singletonRouter;\nexports[\"default\"] = _default;\n\nfunction useRouter() {\n return _react.default.useContext(_routerContext.RouterContext);\n}\n\nfunction createRouter(...args) {\n singletonRouter.router = new _router.default(...args);\n singletonRouter.readyCallbacks.forEach(cb => cb());\n singletonRouter.readyCallbacks = [];\n return singletonRouter.router;\n}\n\nfunction makePublicRouterInstance(router) {\n const scopedRouter = router;\n const instance = {};\n\n for (const property of urlPropertyFields) {\n if (typeof scopedRouter[property] === 'object') {\n instance[property] = Object.assign(Array.isArray(scopedRouter[property]) ? [] : {}, scopedRouter[property]) // makes sure query is not stateful\n ;\n continue;\n }\n\n instance[property] = scopedRouter[property];\n } // Events is a static property on the router, the router doesn't have to be initialized to use it\n\n\n instance.events = _router.default.events;\n coreMethodFields.forEach(field => {\n instance[field] = (...args) => {\n return scopedRouter[field](...args);\n };\n });\n return instance;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yb3V0ZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FILDBDQUF5QztBQUNyQ0ksRUFBQUEsVUFBVSxFQUFFLElBRHlCO0FBRXJDQyxFQUFBQSxHQUFHLEVBQUUsWUFBVztBQUNaLFdBQU9DLE9BQU8sQ0FBQ0MsT0FBZjtBQUNIO0FBSm9DLENBQXpDO0FBTUFQLDhDQUE2QztBQUN6Q0ksRUFBQUEsVUFBVSxFQUFFLElBRDZCO0FBRXpDQyxFQUFBQSxHQUFHLEVBQUUsWUFBVztBQUNaLFdBQU9HLFdBQVcsQ0FBQ0QsT0FBbkI7QUFDSDtBQUp3QyxDQUE3QztBQU1BTCxpQkFBQSxHQUFvQk8sU0FBcEI7QUFDQVAsb0JBQUEsR0FBdUJRLFlBQXZCO0FBQ0FSLGdDQUFBLEdBQW1DUyx3QkFBbkM7QUFDQVQsa0JBQUEsR0FBa0IsS0FBSyxDQUF2Qjs7QUFDQSxJQUFJVSxNQUFNLEdBQUdDLHNCQUFzQixDQUFDQyxtQkFBTyxDQUFDLG9CQUFELENBQVIsQ0FBbkM7O0FBQ0EsSUFBSVIsT0FBTyxHQUFHTyxzQkFBc0IsQ0FBQ0MsbUJBQU8sQ0FBQyx5RkFBRCxDQUFSLENBQXBDOztBQUNBLElBQUlDLGNBQWMsR0FBR0QsbUJBQU8sQ0FBQyxrRUFBRCxDQUE1Qjs7QUFDQSxJQUFJRSxRQUFRLEdBQUdILHNCQUFzQixDQUFDQyxtQkFBTyxDQUFDLGlFQUFELENBQVIsQ0FBckM7O0FBQ0EsSUFBSU4sV0FBVyxHQUFHSyxzQkFBc0IsQ0FBQ0MsbUJBQU8sQ0FBQyxxRUFBRCxDQUFSLENBQXhDOztBQUNBLFNBQVNELHNCQUFULENBQWdDSSxHQUFoQyxFQUFxQztBQUNqQyxTQUFPQSxHQUFHLElBQUlBLEdBQUcsQ0FBQ0MsVUFBWCxHQUF3QkQsR0FBeEIsR0FBOEI7QUFDakNWLElBQUFBLE9BQU8sRUFBRVU7QUFEd0IsR0FBckM7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LENBQW5CLEtBQWtDLFFBQXRDLEVBQWdEO0FBQzVDRCxNQUFBQSxRQUFRLENBQUNDLFFBQUQsQ0FBUixHQUFxQm5ELE1BQU0sQ0FBQ29ELE1BQVAsQ0FBY0MsS0FBSyxDQUFDQyxPQUFOLENBQWNMLFlBQVksQ0FBQ0UsUUFBRCxDQUExQixJQUF3QyxFQUF4QyxHQUE2QyxFQUEzRCxFQUNsQkYsWUFBWSxDQUFDRSxRQUFELENBRE0sQ0FBckIsQ0FDMkI7QUFEM0I7QUFHQTtBQUNIOztBQUNERCxJQUFBQSxRQUFRLENBQUNDLFFBQUQsQ0FBUixHQUFxQkYsWUFBWSxDQUFDRSxRQUFELENBQWpDO0FBQ0gsR0FacUMsQ0FhdEM7OztBQUNBRCxFQUFBQSxRQUFRLENBQUN0QixNQUFULEdBQWtCdEIsT0FBTyxDQUFDQyxPQUFSLENBQWdCcUIsTUFBbEM7QUFDQUQsRUFBQUEsZ0JBQWdCLENBQUNFLE9BQWpCLENBQTBCQyxLQUFELElBQVM7QUFDOUJvQixJQUFBQSxRQUFRLENBQUNwQixLQUFELENBQVIsR0FBa0IsQ0FBQyxHQUFHRSxJQUFKLEtBQVc7QUFDekIsYUFBT2lCLFlBQVksQ0FBQ25CLEtBQUQsQ0FBWixDQUFvQixHQUFHRSxJQUF2QixDQUFQO0FBQ0gsS0FGRDtBQUdILEdBSkQ7QUFLQSxTQUFPa0IsUUFBUDtBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmllLXJlYWN0Ly4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvcm91dGVyLmpzPzMxZmMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJSb3V0ZXJcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9yb3V0ZXIuZGVmYXVsdDtcbiAgICB9XG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIndpdGhSb3V0ZXJcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF93aXRoUm91dGVyLmRlZmF1bHQ7XG4gICAgfVxufSk7XG5leHBvcnRzLnVzZVJvdXRlciA9IHVzZVJvdXRlcjtcbmV4cG9ydHMuY3JlYXRlUm91dGVyID0gY3JlYXRlUm91dGVyO1xuZXhwb3J0cy5tYWtlUHVibGljUm91dGVySW5zdGFuY2UgPSBtYWtlUHVibGljUm91dGVySW5zdGFuY2U7XG5leHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7XG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xudmFyIF9yb3V0ZXIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3JvdXRlci9yb3V0ZXJcIikpO1xudmFyIF9yb3V0ZXJDb250ZXh0ID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyLWNvbnRleHRcIik7XG52YXIgX2lzRXJyb3IgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9saWIvaXMtZXJyb3JcIikpO1xudmFyIF93aXRoUm91dGVyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi93aXRoLXJvdXRlclwiKSk7XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5jb25zdCBzaW5nbGV0b25Sb3V0ZXIgPSB7XG4gICAgcm91dGVyOiBudWxsLFxuICAgIHJlYWR5Q2FsbGJhY2tzOiBbXSxcbiAgICByZWFkeSAoY2IpIHtcbiAgICAgICAgaWYgKHRoaXMucm91dGVyKSByZXR1cm4gY2IoKTtcbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICB0aGlzLnJlYWR5Q2FsbGJhY2tzLnB1c2goY2IpO1xuICAgICAgICB9XG4gICAgfVxufTtcbi8vIENyZWF0ZSBwdWJsaWMgcHJvcGVydGllcyBhbmQgbWV0aG9kcyBvZiB0aGUgcm91dGVyIGluIHRoZSBzaW5nbGV0b25Sb3V0ZXJcbmNvbnN0IHVybFByb3BlcnR5RmllbGRzID0gW1xuICAgICdwYXRobmFtZScsXG4gICAgJ3JvdXRlJyxcbiAgICAncXVlcnknLFxuICAgICdhc1BhdGgnLFxuICAgICdjb21wb25lbnRzJyxcbiAgICAnaXNGYWxsYmFjaycsXG4gICAgJ2Jhc2VQYXRoJyxcbiAgICAnbG9jYWxlJyxcbiAgICAnbG9jYWxlcycsXG4gICAgJ2RlZmF1bHRMb2NhbGUnLFxuICAgICdpc1JlYWR5JyxcbiAgICAnaXNQcmV2aWV3JyxcbiAgICAnaXNMb2NhbGVEb21haW4nLFxuICAgICdkb21haW5Mb2NhbGVzJywgXG5dO1xuY29uc3Qgcm91dGVyRXZlbnRzID0gW1xuICAgICdyb3V0ZUNoYW5nZVN0YXJ0JyxcbiAgICAnYmVmb3JlSGlzdG9yeUNoYW5nZScsXG4gICAgJ3JvdXRlQ2hhbmdlQ29tcGxldGUnLFxuICAgICdyb3V0ZUNoYW5nZUVycm9yJyxcbiAgICAnaGFzaENoYW5nZVN0YXJ0JyxcbiAgICAnaGFzaENoYW5nZUNvbXBsZXRlJywgXG5dO1xuY29uc3QgY29yZU1ldGhvZEZpZWxkcyA9IFtcbiAgICAncHVzaCcsXG4gICAgJ3JlcGxhY2UnLFxuICAgICdyZWxvYWQnLFxuICAgICdiYWNrJyxcbiAgICAncHJlZmV0Y2gnLFxuICAgICdiZWZvcmVQb3BTdGF0ZScsIFxuXTtcbi8vIEV2ZW50cyBpcyBhIHN0YXRpYyBwcm9wZXJ0eSBvbiB0aGUgcm91dGVyLCB0aGUgcm91dGVyIGRvZXNuJ3QgaGF2ZSB0byBiZSBpbml0aWFsaXplZCB0byB1c2UgaXRcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShzaW5nbGV0b25Sb3V0ZXIsICdldmVudHMnLCB7XG4gICAgZ2V0ICgpIHtcbiAgICAgICAgcmV0dXJuIF9yb3V0ZXIuZGVmYXVsdC5ldmVudHM7XG4gICAgfVxufSk7XG51cmxQcm9wZXJ0eUZpZWxkcy5mb3JFYWNoKChmaWVsZCk9PntcbiAgICAvLyBIZXJlIHdlIG5lZWQgdG8gdXNlIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSBiZWNhdXNlIHdlIG5lZWQgdG8gcmV0dXJuXG4gICAgLy8gdGhlIHByb3BlcnR5IGFzc2lnbmVkIHRvIHRoZSBhY3R1YWwgcm91dGVyXG4gICAgLy8gVGhlIHZhbHVlIG1pZ2h0IGdldCBjaGFuZ2VkIGFzIHdlIGNoYW5nZSByb3V0ZXMgYW5kIHRoaXMgaXMgdGhlXG4gICAgLy8gcHJvcGVyIHdheSB0byBhY2Nlc3MgaXRcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoc2luZ2xldG9uUm91dGVyLCBmaWVsZCwge1xuICAgICAgICBnZXQgKCkge1xuICAgICAgICAgICAgY29uc3Qgcm91dGVyID0gZ2V0Um91dGVyKCk7XG4gICAgICAgICAgICByZXR1cm4gcm91dGVyW2ZpZWxkXTtcbiAgICAgICAgfVxuICAgIH0pO1xufSk7XG5jb3JlTWV0aG9kRmllbGRzLmZvckVhY2goKGZpZWxkKT0+e1xuICAgIHNpbmdsZXRvblJvdXRlcltmaWVsZF0gPSAoLi4uYXJncyk9PntcbiAgICAgICAgY29uc3Qgcm91dGVyID0gZ2V0Um91dGVyKCk7XG4gICAgICAgIHJldHVybiByb3V0ZXJbZmllbGRdKC4uLmFyZ3MpO1xuICAgIH07XG59KTtcbnJvdXRlckV2ZW50cy5mb3JFYWNoKChldmVudCk9PntcbiAgICBzaW5nbGV0b25Sb3V0ZXIucmVhZHkoKCk9PntcbiAgICAgICAgX3JvdXRlci5kZWZhdWx0LmV2ZW50cy5vbihldmVudCwgKC4uLmFyZ3MpPT57XG4gICAgICAgICAgICBjb25zdCBldmVudEZpZWxkID0gYG9uJHtldmVudC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKX0ke2V2ZW50LnN1YnN0cmluZygxKX1gO1xuICAgICAgICAgICAgY29uc3QgX3NpbmdsZXRvblJvdXRlciA9IHNpbmdsZXRvblJvdXRlcjtcbiAgICAgICAgICAgIGlmIChfc2luZ2xldG9uUm91dGVyW2V2ZW50RmllbGRdKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgX3NpbmdsZXRvblJvdXRlcltldmVudEZpZWxkXSguLi5hcmdzKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihgRXJyb3Igd2hlbiBydW5uaW5nIHRoZSBSb3V0ZXIgZXZlbnQ6ICR7ZXZlbnRGaWVsZH1gKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcigoMCwgX2lzRXJyb3IpLmRlZmF1bHQoZXJyKSA/IGAke2Vyci5tZXNzYWdlfVxcbiR7ZXJyLnN0YWNrfWAgOiBlcnIgKyAnJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcbn0pO1xuZnVuY3Rpb24gZ2V0Um91dGVyKCkge1xuICAgIGlmICghc2luZ2xldG9uUm91dGVyLnJvdXRlcikge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gJ05vIHJvdXRlciBpbnN0YW5jZSBmb3VuZC5cXG4nICsgJ1lvdSBzaG91bGQgb25seSB1c2UgXCJuZXh0L3JvdXRlclwiIG9uIHRoZSBjbGllbnQgc2lkZSBvZiB5b3VyIGFwcC5cXG4nO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICAgIHJldHVybiBzaW5nbGV0b25Sb3V0ZXIucm91dGVyO1xufVxudmFyIF9kZWZhdWx0ID0gc2luZ2xldG9uUm91dGVyO1xuZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7XG5mdW5jdGlvbiB1c2VSb3V0ZXIoKSB7XG4gICAgcmV0dXJuIF9yZWFjdC5kZWZhdWx0LnVzZUNvbnRleHQoX3JvdXRlckNvbnRleHQuUm91dGVyQ29udGV4dCk7XG59XG5mdW5jdGlvbiBjcmVhdGVSb3V0ZXIoLi4uYXJncykge1xuICAgIHNpbmdsZXRvblJvdXRlci5yb3V0ZXIgPSBuZXcgX3JvdXRlci5kZWZhdWx0KC4uLmFyZ3MpO1xuICAgIHNpbmdsZXRvblJvdXRlci5yZWFkeUNhbGxiYWNrcy5mb3JFYWNoKChjYik9PmNiKClcbiAgICApO1xuICAgIHNpbmdsZXRvblJvdXRlci5yZWFkeUNhbGxiYWNrcyA9IFtdO1xuICAgIHJldHVybiBzaW5nbGV0b25Sb3V0ZXIucm91dGVyO1xufVxuZnVuY3Rpb24gbWFrZVB1YmxpY1JvdXRlckluc3RhbmNlKHJvdXRlcikge1xuICAgIGNvbnN0IHNjb3BlZFJvdXRlciA9IHJvdXRlcjtcbiAgICBjb25zdCBpbnN0YW5jZSA9IHtcbiAgICB9O1xuICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgdXJsUHJvcGVydHlGaWVsZHMpe1xuICAgICAgICBpZiAodHlwZW9mIHNjb3BlZFJvdXRlcltwcm9wZXJ0eV0gPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICBpbnN0YW5jZVtwcm9wZXJ0eV0gPSBPYmplY3QuYXNzaWduKEFycmF5LmlzQXJyYXkoc2NvcGVkUm91dGVyW3Byb3BlcnR5XSkgPyBbXSA6IHtcbiAgICAgICAgICAgIH0sIHNjb3BlZFJvdXRlcltwcm9wZXJ0eV0pIC8vIG1ha2VzIHN1cmUgcXVlcnkgaXMgbm90IHN0YXRlZnVsXG4gICAgICAgICAgICA7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpbnN0YW5jZVtwcm9wZXJ0eV0gPSBzY29wZWRSb3V0ZXJbcHJvcGVydHldO1xuICAgIH1cbiAgICAvLyBFdmVudHMgaXMgYSBzdGF0aWMgcHJvcGVydHkgb24gdGhlIHJvdXRlciwgdGhlIHJvdXRlciBkb2Vzbid0IGhhdmUgdG8gYmUgaW5pdGlhbGl6ZWQgdG8gdXNlIGl0XG4gICAgaW5zdGFuY2UuZXZlbnRzID0gX3JvdXRlci5kZWZhdWx0LmV2ZW50cztcbiAgICBjb3JlTWV0aG9kRmllbGRzLmZvckVhY2goKGZpZWxkKT0+e1xuICAgICAgICBpbnN0YW5jZVtmaWVsZF0gPSAoLi4uYXJncyk9PntcbiAgICAgICAgICAgIHJldHVybiBzY29wZWRSb3V0ZXJbZmllbGRdKC4uLmFyZ3MpO1xuICAgICAgICB9O1xuICAgIH0pO1xuICAgIHJldHVybiBpbnN0YW5jZTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cm91dGVyLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImVudW1lcmFibGUiLCJnZXQiLCJfcm91dGVyIiwiZGVmYXVsdCIsIl93aXRoUm91dGVyIiwidXNlUm91dGVyIiwiY3JlYXRlUm91dGVyIiwibWFrZVB1YmxpY1JvdXRlckluc3RhbmNlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcm91dGVyQ29udGV4dCIsIl9pc0Vycm9yIiwib2JqIiwiX19lc01vZHVsZSIsInNpbmdsZXRvblJvdXRlciIsInJvdXRlciIsInJlYWR5Q2FsbGJhY2tzIiwicmVhZHkiLCJjYiIsInB1c2giLCJ1cmxQcm9wZXJ0eUZpZWxkcyIsInJvdXRlckV2ZW50cyIsImNvcmVNZXRob2RGaWVsZHMiLCJldmVudHMiLCJmb3JFYWNoIiwiZmllbGQiLCJnZXRSb3V0ZXIiLCJhcmdzIiwiZXZlbnQiLCJvbiIsImV2ZW50RmllbGQiLCJjaGFyQXQiLCJ0b1VwcGVyQ2FzZSIsInN1YnN0cmluZyIsIl9zaW5nbGV0b25Sb3V0ZXIiLCJlcnIiLCJjb25zb2xlIiwiZXJyb3IiLCJtZXNzYWdlIiwic3RhY2siLCJFcnJvciIsIl9kZWZhdWx0IiwidXNlQ29udGV4dCIsIlJvdXRlckNvbnRleHQiLCJzY29wZWRSb3V0ZXIiLCJpbnN0YW5jZSIsInByb3BlcnR5IiwiYXNzaWduIiwiQXJyYXkiLCJpc0FycmF5Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/router.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/use-intersection.js": +/*!***********************************************************!*\ + !*** ./node_modules/next/dist/client/use-intersection.js ***! + \***********************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.useIntersection = useIntersection;\n\nvar _react = __webpack_require__(/*! react */ \"react\");\n\nvar _requestIdleCallback = __webpack_require__(/*! ./request-idle-callback */ \"./node_modules/next/dist/client/request-idle-callback.js\");\n\nconst hasIntersectionObserver = typeof IntersectionObserver !== 'undefined';\n\nfunction useIntersection({\n rootMargin,\n disabled\n}) {\n const isDisabled = disabled || !hasIntersectionObserver;\n const unobserve = (0, _react).useRef();\n const [visible, setVisible] = (0, _react).useState(false);\n const setRef = (0, _react).useCallback(el => {\n if (unobserve.current) {\n unobserve.current();\n unobserve.current = undefined;\n }\n\n if (isDisabled || visible) return;\n\n if (el && el.tagName) {\n unobserve.current = observe(el, isVisible => isVisible && setVisible(isVisible), {\n rootMargin\n });\n }\n }, [isDisabled, rootMargin, visible]);\n (0, _react).useEffect(() => {\n if (!hasIntersectionObserver) {\n if (!visible) {\n const idleCallback = (0, _requestIdleCallback).requestIdleCallback(() => setVisible(true));\n return () => (0, _requestIdleCallback).cancelIdleCallback(idleCallback);\n }\n }\n }, [visible]);\n return [setRef, visible];\n}\n\nfunction observe(element, callback, options) {\n const {\n id,\n observer,\n elements\n } = createObserver(options);\n elements.set(element, callback);\n observer.observe(element);\n return function unobserve() {\n elements.delete(element);\n observer.unobserve(element); // Destroy observer when there's nothing left to watch:\n\n if (elements.size === 0) {\n observer.disconnect();\n observers.delete(id);\n }\n };\n}\n\nconst observers = new Map();\n\nfunction createObserver(options) {\n const id = options.rootMargin || '';\n let instance = observers.get(id);\n\n if (instance) {\n return instance;\n }\n\n const elements = new Map();\n const observer = new IntersectionObserver(entries => {\n entries.forEach(entry => {\n const callback = elements.get(entry.target);\n const isVisible = entry.isIntersecting || entry.intersectionRatio > 0;\n\n if (callback && isVisible) {\n callback(isVisible);\n }\n });\n }, options);\n observers.set(id, instance = {\n id,\n observer,\n elements\n });\n return instance;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC91c2UtaW50ZXJzZWN0aW9uLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCx1QkFBQSxHQUEwQkUsZUFBMUI7O0FBQ0EsSUFBSUMsTUFBTSxHQUFHQyxtQkFBTyxDQUFDLG9CQUFELENBQXBCOztBQUNBLElBQUlDLG9CQUFvQixHQUFHRCxtQkFBTyxDQUFDLHlGQUFELENBQWxDOztBQUNBLE1BQU1FLHVCQUF1QixHQUFHLE9BQU9DLG9CQUFQLEtBQWdDLFdBQWhFOztBQUNBLFNBQVNMLGVBQVQsQ0FBeUI7QUFBRU0sRUFBQUEsVUFBRjtBQUFlQyxFQUFBQTtBQUFmLENBQXpCLEVBQXFEO0FBQ2pELFFBQU1DLFVBQVUsR0FBR0QsUUFBUSxJQUFJLENBQUNILHVCQUFoQztBQUNBLFFBQU1LLFNBQVMsR0FBRyxDQUFDLEdBQUdSLE1BQUosRUFBWVMsTUFBWixFQUFsQjtBQUNBLFFBQU0sQ0FBQ0MsT0FBRCxFQUFVQyxVQUFWLElBQXdCLENBQUMsR0FBR1gsTUFBSixFQUFZWSxRQUFaLENBQXFCLEtBQXJCLENBQTlCO0FBQ0EsUUFBTUMsTUFBTSxHQUFHLENBQUMsR0FBR2IsTUFBSixFQUFZYyxXQUFaLENBQXlCQyxFQUFELElBQU07QUFDekMsUUFBSVAsU0FBUyxDQUFDUSxPQUFkLEVBQXVCO0FBQ25CUixNQUFBQSxTQUFTLENBQUNRLE9BQVY7QUFDQVIsTUFBQUEsU0FBUyxDQUFDUSxPQUFWLEdBQW9CQyxTQUFwQjtBQUNIOztBQUNELFFBQUlWLFVBQVUsSUFBSUcsT0FBbEIsRUFBMkI7O0FBQzNCLFFBQUlLLEVBQUUsSUFBSUEsRUFBRSxDQUFDRyxPQUFiLEVBQXNCO0FBQ2xCVixNQUFBQSxTQUFTLENBQUNRLE9BQVYsR0FBb0JHLE9BQU8sQ0FBQ0osRUFBRCxFQUFNSyxTQUFELElBQWFBLFNBQVMsSUFBSVQsVUFBVSxDQUFDUyxTQUFELENBQXpDLEVBQ3pCO0FBQ0VmLFFBQUFBO0FBREYsT0FEeUIsQ0FBM0I7QUFJSDtBQUNKLEdBWmMsRUFZWixDQUNDRSxVQURELEVBRUNGLFVBRkQsRUFHQ0ssT0FIRCxDQVpZLENBQWY7QUFpQkEsR0FBQyxHQUFHVixNQUFKLEVBQVlxQixTQUFaLENBQXNCLE1BQUk7QUFDdEIsUUFBSSxDQUFDbEIsdUJBQUwsRUFBOEI7QUFDMUIsVUFBSSxDQUFDTyxPQUFMLEVBQWM7QUFDVixjQUFNWSxZQUFZLEdBQUcsQ0FBQyxHQUFHcEIsb0JBQUosRUFBMEJxQixtQkFBMUIsQ0FBOEMsTUFBSVosVUFBVSxDQUFDLElBQUQsQ0FBNUQsQ0FBckI7QUFFQSxlQUFPLE1BQUksQ0FBQyxHQUFHVCxvQkFBSixFQUEwQnNCLGtCQUExQixDQUE2Q0YsWUFBN0MsQ0FBWDtBQUVIO0FBQ0o7QUFDSixHQVRELEVBU0csQ0FDQ1osT0FERCxDQVRIO0FBWUEsU0FBTyxDQUNIRyxNQURHLEVBRUhILE9BRkcsQ0FBUDtBQUlIOztBQUNELFNBQVNTLE9BQVQsQ0FBaUJNLE9BQWpCLEVBQTBCQyxRQUExQixFQUFvQ0MsT0FBcEMsRUFBNkM7QUFDekMsUUFBTTtBQUFFQyxJQUFBQSxFQUFGO0FBQU9DLElBQUFBLFFBQVA7QUFBa0JDLElBQUFBO0FBQWxCLE1BQWdDQyxjQUFjLENBQUNKLE9BQUQsQ0FBcEQ7QUFDQUcsRUFBQUEsUUFBUSxDQUFDRSxHQUFULENBQWFQLE9BQWIsRUFBc0JDLFFBQXRCO0FBQ0FHLEVBQUFBLFFBQVEsQ0FBQ1YsT0FBVCxDQUFpQk0sT0FBakI7QUFDQSxTQUFPLFNBQVNqQixTQUFULEdBQXFCO0FBQ3hCc0IsSUFBQUEsUUFBUSxDQUFDRyxNQUFULENBQWdCUixPQUFoQjtBQUNBSSxJQUFBQSxRQUFRLENBQUNyQixTQUFULENBQW1CaUIsT0FBbkIsRUFGd0IsQ0FHeEI7O0FBQ0EsUUFBSUssUUFBUSxDQUFDSSxJQUFULEtBQWtCLENBQXRCLEVBQXlCO0FBQ3JCTCxNQUFBQSxRQUFRLENBQUNNLFVBQVQ7QUFDQUMsTUFBQUEsU0FBUyxDQUFDSCxNQUFWLENBQWlCTCxFQUFqQjtBQUNIO0FBQ0osR0FSRDtBQVNIOztBQUNELE1BQU1RLFNBQVMsR0FBRyxJQUFJQyxHQUFKLEVBQWxCOztBQUNBLFNBQVNOLGNBQVQsQ0FBd0JKLE9BQXhCLEVBQWlDO0FBQzdCLFFBQU1DLEVBQUUsR0FBR0QsT0FBTyxDQUFDdEIsVUFBUixJQUFzQixFQUFqQztBQUNBLE1BQUlpQyxRQUFRLEdBQUdGLFNBQVMsQ0FBQ0csR0FBVixDQUFjWCxFQUFkLENBQWY7O0FBQ0EsTUFBSVUsUUFBSixFQUFjO0FBQ1YsV0FBT0EsUUFBUDtBQUNIOztBQUNELFFBQU1SLFFBQVEsR0FBRyxJQUFJTyxHQUFKLEVBQWpCO0FBQ0EsUUFBTVIsUUFBUSxHQUFHLElBQUl6QixvQkFBSixDQUEwQm9DLE9BQUQsSUFBVztBQUNqREEsSUFBQUEsT0FBTyxDQUFDQyxPQUFSLENBQWlCQyxLQUFELElBQVM7QUFDckIsWUFBTWhCLFFBQVEsR0FBR0ksUUFBUSxDQUFDUyxHQUFULENBQWFHLEtBQUssQ0FBQ0MsTUFBbkIsQ0FBakI7QUFDQSxZQUFNdkIsU0FBUyxHQUFHc0IsS0FBSyxDQUFDRSxjQUFOLElBQXdCRixLQUFLLENBQUNHLGlCQUFOLEdBQTBCLENBQXBFOztBQUNBLFVBQUluQixRQUFRLElBQUlOLFNBQWhCLEVBQTJCO0FBQ3ZCTSxRQUFBQSxRQUFRLENBQUNOLFNBQUQsQ0FBUjtBQUNIO0FBQ0osS0FORDtBQU9ILEdBUmdCLEVBUWRPLE9BUmMsQ0FBakI7QUFTQVMsRUFBQUEsU0FBUyxDQUFDSixHQUFWLENBQWNKLEVBQWQsRUFBa0JVLFFBQVEsR0FBRztBQUN6QlYsSUFBQUEsRUFEeUI7QUFFekJDLElBQUFBLFFBRnlCO0FBR3pCQyxJQUFBQTtBQUh5QixHQUE3QjtBQUtBLFNBQU9RLFFBQVA7QUFDSCIsInNvdXJjZXMiOlsid2VicGFjazovL3ZpZS1yZWFjdC8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3VzZS1pbnRlcnNlY3Rpb24uanM/ZmQ5NCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMudXNlSW50ZXJzZWN0aW9uID0gdXNlSW50ZXJzZWN0aW9uO1xudmFyIF9yZWFjdCA9IHJlcXVpcmUoXCJyZWFjdFwiKTtcbnZhciBfcmVxdWVzdElkbGVDYWxsYmFjayA9IHJlcXVpcmUoXCIuL3JlcXVlc3QtaWRsZS1jYWxsYmFja1wiKTtcbmNvbnN0IGhhc0ludGVyc2VjdGlvbk9ic2VydmVyID0gdHlwZW9mIEludGVyc2VjdGlvbk9ic2VydmVyICE9PSAndW5kZWZpbmVkJztcbmZ1bmN0aW9uIHVzZUludGVyc2VjdGlvbih7IHJvb3RNYXJnaW4gLCBkaXNhYmxlZCAgfSkge1xuICAgIGNvbnN0IGlzRGlzYWJsZWQgPSBkaXNhYmxlZCB8fCAhaGFzSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XG4gICAgY29uc3QgdW5vYnNlcnZlID0gKDAsIF9yZWFjdCkudXNlUmVmKCk7XG4gICAgY29uc3QgW3Zpc2libGUsIHNldFZpc2libGVdID0gKDAsIF9yZWFjdCkudXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IHNldFJlZiA9ICgwLCBfcmVhY3QpLnVzZUNhbGxiYWNrKChlbCk9PntcbiAgICAgICAgaWYgKHVub2JzZXJ2ZS5jdXJyZW50KSB7XG4gICAgICAgICAgICB1bm9ic2VydmUuY3VycmVudCgpO1xuICAgICAgICAgICAgdW5vYnNlcnZlLmN1cnJlbnQgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzRGlzYWJsZWQgfHwgdmlzaWJsZSkgcmV0dXJuO1xuICAgICAgICBpZiAoZWwgJiYgZWwudGFnTmFtZSkge1xuICAgICAgICAgICAgdW5vYnNlcnZlLmN1cnJlbnQgPSBvYnNlcnZlKGVsLCAoaXNWaXNpYmxlKT0+aXNWaXNpYmxlICYmIHNldFZpc2libGUoaXNWaXNpYmxlKVxuICAgICAgICAgICAgLCB7XG4gICAgICAgICAgICAgICAgcm9vdE1hcmdpblxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9LCBbXG4gICAgICAgIGlzRGlzYWJsZWQsXG4gICAgICAgIHJvb3RNYXJnaW4sXG4gICAgICAgIHZpc2libGVcbiAgICBdKTtcbiAgICAoMCwgX3JlYWN0KS51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgaWYgKCFoYXNJbnRlcnNlY3Rpb25PYnNlcnZlcikge1xuICAgICAgICAgICAgaWYgKCF2aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaWRsZUNhbGxiYWNrID0gKDAsIF9yZXF1ZXN0SWRsZUNhbGxiYWNrKS5yZXF1ZXN0SWRsZUNhbGxiYWNrKCgpPT5zZXRWaXNpYmxlKHRydWUpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gKCk9PigwLCBfcmVxdWVzdElkbGVDYWxsYmFjaykuY2FuY2VsSWRsZUNhbGxiYWNrKGlkbGVDYWxsYmFjaylcbiAgICAgICAgICAgICAgICA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LCBbXG4gICAgICAgIHZpc2libGVcbiAgICBdKTtcbiAgICByZXR1cm4gW1xuICAgICAgICBzZXRSZWYsXG4gICAgICAgIHZpc2libGVcbiAgICBdO1xufVxuZnVuY3Rpb24gb2JzZXJ2ZShlbGVtZW50LCBjYWxsYmFjaywgb3B0aW9ucykge1xuICAgIGNvbnN0IHsgaWQgLCBvYnNlcnZlciAsIGVsZW1lbnRzICB9ID0gY3JlYXRlT2JzZXJ2ZXIob3B0aW9ucyk7XG4gICAgZWxlbWVudHMuc2V0KGVsZW1lbnQsIGNhbGxiYWNrKTtcbiAgICBvYnNlcnZlci5vYnNlcnZlKGVsZW1lbnQpO1xuICAgIHJldHVybiBmdW5jdGlvbiB1bm9ic2VydmUoKSB7XG4gICAgICAgIGVsZW1lbnRzLmRlbGV0ZShlbGVtZW50KTtcbiAgICAgICAgb2JzZXJ2ZXIudW5vYnNlcnZlKGVsZW1lbnQpO1xuICAgICAgICAvLyBEZXN0cm95IG9ic2VydmVyIHdoZW4gdGhlcmUncyBub3RoaW5nIGxlZnQgdG8gd2F0Y2g6XG4gICAgICAgIGlmIChlbGVtZW50cy5zaXplID09PSAwKSB7XG4gICAgICAgICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICAgICAgICBvYnNlcnZlcnMuZGVsZXRlKGlkKTtcbiAgICAgICAgfVxuICAgIH07XG59XG5jb25zdCBvYnNlcnZlcnMgPSBuZXcgTWFwKCk7XG5mdW5jdGlvbiBjcmVhdGVPYnNlcnZlcihvcHRpb25zKSB7XG4gICAgY29uc3QgaWQgPSBvcHRpb25zLnJvb3RNYXJnaW4gfHwgJyc7XG4gICAgbGV0IGluc3RhbmNlID0gb2JzZXJ2ZXJzLmdldChpZCk7XG4gICAgaWYgKGluc3RhbmNlKSB7XG4gICAgICAgIHJldHVybiBpbnN0YW5jZTtcbiAgICB9XG4gICAgY29uc3QgZWxlbWVudHMgPSBuZXcgTWFwKCk7XG4gICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKGVudHJpZXMpPT57XG4gICAgICAgIGVudHJpZXMuZm9yRWFjaCgoZW50cnkpPT57XG4gICAgICAgICAgICBjb25zdCBjYWxsYmFjayA9IGVsZW1lbnRzLmdldChlbnRyeS50YXJnZXQpO1xuICAgICAgICAgICAgY29uc3QgaXNWaXNpYmxlID0gZW50cnkuaXNJbnRlcnNlY3RpbmcgfHwgZW50cnkuaW50ZXJzZWN0aW9uUmF0aW8gPiAwO1xuICAgICAgICAgICAgaWYgKGNhbGxiYWNrICYmIGlzVmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIGNhbGxiYWNrKGlzVmlzaWJsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0sIG9wdGlvbnMpO1xuICAgIG9ic2VydmVycy5zZXQoaWQsIGluc3RhbmNlID0ge1xuICAgICAgICBpZCxcbiAgICAgICAgb2JzZXJ2ZXIsXG4gICAgICAgIGVsZW1lbnRzXG4gICAgfSk7XG4gICAgcmV0dXJuIGluc3RhbmNlO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2UtaW50ZXJzZWN0aW9uLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsInVzZUludGVyc2VjdGlvbiIsIl9yZWFjdCIsInJlcXVpcmUiLCJfcmVxdWVzdElkbGVDYWxsYmFjayIsImhhc0ludGVyc2VjdGlvbk9ic2VydmVyIiwiSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiLCJyb290TWFyZ2luIiwiZGlzYWJsZWQiLCJpc0Rpc2FibGVkIiwidW5vYnNlcnZlIiwidXNlUmVmIiwidmlzaWJsZSIsInNldFZpc2libGUiLCJ1c2VTdGF0ZSIsInNldFJlZiIsInVzZUNhbGxiYWNrIiwiZWwiLCJjdXJyZW50IiwidW5kZWZpbmVkIiwidGFnTmFtZSIsIm9ic2VydmUiLCJpc1Zpc2libGUiLCJ1c2VFZmZlY3QiLCJpZGxlQ2FsbGJhY2siLCJyZXF1ZXN0SWRsZUNhbGxiYWNrIiwiY2FuY2VsSWRsZUNhbGxiYWNrIiwiZWxlbWVudCIsImNhbGxiYWNrIiwib3B0aW9ucyIsImlkIiwib2JzZXJ2ZXIiLCJlbGVtZW50cyIsImNyZWF0ZU9ic2VydmVyIiwic2V0IiwiZGVsZXRlIiwic2l6ZSIsImRpc2Nvbm5lY3QiLCJvYnNlcnZlcnMiLCJNYXAiLCJpbnN0YW5jZSIsImdldCIsImVudHJpZXMiLCJmb3JFYWNoIiwiZW50cnkiLCJ0YXJnZXQiLCJpc0ludGVyc2VjdGluZyIsImludGVyc2VjdGlvblJhdGlvIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/use-intersection.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/with-router.js": +/*!******************************************************!*\ + !*** ./node_modules/next/dist/client/with-router.js ***! + \******************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = withRouter;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"react\"));\n\nvar _router = __webpack_require__(/*! ./router */ \"./node_modules/next/dist/client/router.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction withRouter(ComposedComponent) {\n function WithRouterWrapper(props) {\n return /*#__PURE__*/_react.default.createElement(ComposedComponent, Object.assign({\n router: (0, _router).useRouter()\n }, props));\n }\n\n WithRouterWrapper.getInitialProps = ComposedComponent.getInitialProps;\n WithRouterWrapper.origGetInitialProps = ComposedComponent.origGetInitialProps;\n\n if (true) {\n const name = ComposedComponent.displayName || ComposedComponent.name || 'Unknown';\n WithRouterWrapper.displayName = `withRouter(${name})`;\n }\n\n return WithRouterWrapper;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC93aXRoLXJvdXRlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFDYkEsOENBQTZDO0FBQ3pDRyxFQUFBQSxLQUFLLEVBQUU7QUFEa0MsQ0FBN0M7QUFHQUQsa0JBQUEsR0FBa0JHLFVBQWxCOztBQUNBLElBQUlDLE1BQU0sR0FBR0Msc0JBQXNCLENBQUNDLG1CQUFPLENBQUMsb0JBQUQsQ0FBUixDQUFuQzs7QUFDQSxJQUFJQyxPQUFPLEdBQUdELG1CQUFPLENBQUMsMkRBQUQsQ0FBckI7O0FBQ0EsU0FBU0Qsc0JBQVQsQ0FBZ0NHLEdBQWhDLEVBQXFDO0FBQ2pDLFNBQU9BLEdBQUcsSUFBSUEsR0FBRyxDQUFDQyxVQUFYLEdBQXdCRCxHQUF4QixHQUE4QjtBQUNqQ04sSUFBQUEsT0FBTyxFQUFFTTtBQUR3QixHQUFyQztBQUdIOztBQUNELFNBQVNMLFVBQVQsQ0FBb0JPLGlCQUFwQixFQUF1QztBQUNuQyxXQUFTQyxpQkFBVCxDQUEyQkMsS0FBM0IsRUFBa0M7QUFDOUIsV0FBTyxhQUFjUixNQUFNLENBQUNGLE9BQVAsQ0FBZVcsYUFBZixDQUE2QkgsaUJBQTdCLEVBQWdEWixNQUFNLENBQUNnQixNQUFQLENBQWM7QUFDL0VDLE1BQUFBLE1BQU0sRUFBRSxDQUFDLEdBQUdSLE9BQUosRUFBYVMsU0FBYjtBQUR1RSxLQUFkLEVBRWxFSixLQUZrRSxDQUFoRCxDQUFyQjtBQUdIOztBQUNERCxFQUFBQSxpQkFBaUIsQ0FBQ00sZUFBbEIsR0FBb0NQLGlCQUFpQixDQUFDTyxlQUF0RDtBQUNBTixFQUFBQSxpQkFBaUIsQ0FBQ08sbUJBQWxCLEdBQXdDUixpQkFBaUIsQ0FBQ1EsbUJBQTFEOztBQUNBLFlBQTJDO0FBQ3ZDLFVBQU1DLElBQUksR0FBR1QsaUJBQWlCLENBQUNVLFdBQWxCLElBQWlDVixpQkFBaUIsQ0FBQ1MsSUFBbkQsSUFBMkQsU0FBeEU7QUFDQVIsSUFBQUEsaUJBQWlCLENBQUNTLFdBQWxCLEdBQWlDLGNBQWFELElBQUssR0FBbkQ7QUFDSDs7QUFDRCxTQUFPUixpQkFBUDtBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmllLXJlYWN0Ly4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvd2l0aC1yb3V0ZXIuanM/YWM3YyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IHdpdGhSb3V0ZXI7XG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xudmFyIF9yb3V0ZXIgPSByZXF1aXJlKFwiLi9yb3V0ZXJcIik7XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5mdW5jdGlvbiB3aXRoUm91dGVyKENvbXBvc2VkQ29tcG9uZW50KSB7XG4gICAgZnVuY3Rpb24gV2l0aFJvdXRlcldyYXBwZXIocHJvcHMpIHtcbiAgICAgICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChDb21wb3NlZENvbXBvbmVudCwgT2JqZWN0LmFzc2lnbih7XG4gICAgICAgICAgICByb3V0ZXI6ICgwLCBfcm91dGVyKS51c2VSb3V0ZXIoKVxuICAgICAgICB9LCBwcm9wcykpKTtcbiAgICB9XG4gICAgV2l0aFJvdXRlcldyYXBwZXIuZ2V0SW5pdGlhbFByb3BzID0gQ29tcG9zZWRDb21wb25lbnQuZ2V0SW5pdGlhbFByb3BzO1xuICAgIFdpdGhSb3V0ZXJXcmFwcGVyLm9yaWdHZXRJbml0aWFsUHJvcHMgPSBDb21wb3NlZENvbXBvbmVudC5vcmlnR2V0SW5pdGlhbFByb3BzO1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSBDb21wb3NlZENvbXBvbmVudC5kaXNwbGF5TmFtZSB8fCBDb21wb3NlZENvbXBvbmVudC5uYW1lIHx8ICdVbmtub3duJztcbiAgICAgICAgV2l0aFJvdXRlcldyYXBwZXIuZGlzcGxheU5hbWUgPSBgd2l0aFJvdXRlcigke25hbWV9KWA7XG4gICAgfVxuICAgIHJldHVybiBXaXRoUm91dGVyV3JhcHBlcjtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9d2l0aC1yb3V0ZXIuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiZGVmYXVsdCIsIndpdGhSb3V0ZXIiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yb3V0ZXIiLCJvYmoiLCJfX2VzTW9kdWxlIiwiQ29tcG9zZWRDb21wb25lbnQiLCJXaXRoUm91dGVyV3JhcHBlciIsInByb3BzIiwiY3JlYXRlRWxlbWVudCIsImFzc2lnbiIsInJvdXRlciIsInVzZVJvdXRlciIsImdldEluaXRpYWxQcm9wcyIsIm9yaWdHZXRJbml0aWFsUHJvcHMiLCJuYW1lIiwiZGlzcGxheU5hbWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/with-router.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/router.js": +/*!************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/router.js ***! + \************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.getDomainLocale = getDomainLocale;\nexports.addLocale = addLocale;\nexports.delLocale = delLocale;\nexports.hasBasePath = hasBasePath;\nexports.addBasePath = addBasePath;\nexports.delBasePath = delBasePath;\nexports.isLocalURL = isLocalURL;\nexports.interpolateAs = interpolateAs;\nexports.resolveHref = resolveHref;\nexports[\"default\"] = void 0;\n\nvar _normalizeTrailingSlash = __webpack_require__(/*! ../../../client/normalize-trailing-slash */ \"./node_modules/next/dist/client/normalize-trailing-slash.js\");\n\nvar _routeLoader = __webpack_require__(/*! ../../../client/route-loader */ \"./node_modules/next/dist/client/route-loader.js\");\n\nvar _isError = _interopRequireDefault(__webpack_require__(/*! ../../../lib/is-error */ \"./node_modules/next/dist/lib/is-error.js\"));\n\nvar _denormalizePagePath = __webpack_require__(/*! ../../../server/denormalize-page-path */ \"../../../server/denormalize-page-path\");\n\nvar _normalizeLocalePath = __webpack_require__(/*! ../i18n/normalize-locale-path */ \"../i18n/normalize-locale-path\");\n\nvar _mitt = _interopRequireDefault(__webpack_require__(/*! ../mitt */ \"../mitt\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"../shared/lib/utils\");\n\nvar _isDynamic = __webpack_require__(/*! ./utils/is-dynamic */ \"./utils/is-dynamic\");\n\nvar _parseRelativeUrl = __webpack_require__(/*! ./utils/parse-relative-url */ \"./utils/parse-relative-url\");\n\nvar _querystring = __webpack_require__(/*! ./utils/querystring */ \"./utils/querystring\");\n\nvar _resolveRewrites = _interopRequireDefault(__webpack_require__(/*! ./utils/resolve-rewrites */ \"./utils/resolve-rewrites\"));\n\nvar _routeMatcher = __webpack_require__(/*! ./utils/route-matcher */ \"./utils/route-matcher\");\n\nvar _routeRegex = __webpack_require__(/*! ./utils/route-regex */ \"./utils/route-regex\");\n\nvar _getMiddlewareRegex = __webpack_require__(/*! ./utils/get-middleware-regex */ \"./utils/get-middleware-regex\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nlet detectDomainLocale;\n\nif (false) {}\n\nconst basePath = false || '';\n\nfunction buildCancellationError() {\n return Object.assign(new Error('Route Cancelled'), {\n cancelled: true\n });\n}\n\nfunction addPathPrefix(path, prefix) {\n if (!path.startsWith('/') || !prefix) {\n return path;\n }\n\n const pathname = pathNoQueryHash(path);\n return (0, _normalizeTrailingSlash).normalizePathTrailingSlash(`${prefix}${pathname}`) + path.substr(pathname.length);\n}\n\nfunction getDomainLocale(path, locale, locales, domainLocales) {\n if (false) {} else {\n return false;\n }\n}\n\nfunction addLocale(path, locale, defaultLocale) {\n if (false) {}\n\n return path;\n}\n\nfunction delLocale(path, locale) {\n if (false) {}\n\n return path;\n}\n\nfunction pathNoQueryHash(path) {\n const queryIndex = path.indexOf('?');\n const hashIndex = path.indexOf('#');\n\n if (queryIndex > -1 || hashIndex > -1) {\n path = path.substring(0, queryIndex > -1 ? queryIndex : hashIndex);\n }\n\n return path;\n}\n\nfunction hasBasePath(path) {\n path = pathNoQueryHash(path);\n return path === basePath || path.startsWith(basePath + '/');\n}\n\nfunction addBasePath(path) {\n // we only add the basepath on relative urls\n return addPathPrefix(path, basePath);\n}\n\nfunction delBasePath(path) {\n path = path.slice(basePath.length);\n if (!path.startsWith('/')) path = `/${path}`;\n return path;\n}\n\nfunction isLocalURL(url) {\n // prevent a hydration mismatch on href for url with anchor refs\n if (url.startsWith('/') || url.startsWith('#') || url.startsWith('?')) return true;\n\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 && hasBasePath(resolved.pathname);\n } catch (_) {\n return false;\n }\n}\n\nfunction interpolateAs(route, asPathname, query) {\n let interpolatedRoute = '';\n const dynamicRegex = (0, _routeRegex).getRouteRegex(route);\n const dynamicGroups = dynamicRegex.groups;\n const dynamicMatches = // Try to match the dynamic route against the asPath\n (asPathname !== route ? (0, _routeMatcher).getRouteMatcher(dynamicRegex)(asPathname) : '') || // Fall back to reading the values from the href\n // TODO: should this take priority; also need to change in the router.\n query;\n interpolatedRoute = route;\n const params = Object.keys(dynamicGroups);\n\n if (!params.every(param => {\n let value = dynamicMatches[param] || '';\n const {\n repeat,\n optional\n } = dynamicGroups[param]; // support single-level catch-all\n // TODO: more robust handling for user-error (passing `/`)\n\n let replaced = `[${repeat ? '...' : ''}${param}]`;\n\n if (optional) {\n replaced = `${!value ? '/' : ''}[${replaced}]`;\n }\n\n if (repeat && !Array.isArray(value)) value = [value];\n return (optional || param in dynamicMatches) && (interpolatedRoute = interpolatedRoute.replace(replaced, repeat ? value.map( // these values should be fully encoded instead of just\n // path delimiter escaped since they are being inserted\n // into the URL and we expect URL encoded segments\n // when parsing dynamic route params\n segment => encodeURIComponent(segment)).join('/') : encodeURIComponent(value)) || '/');\n })) {\n interpolatedRoute = '' // did not satisfy all requirements\n ; // n.b. We ignore this error because we handle warning for this case in\n // development in the `<Link>` component directly.\n }\n\n return {\n params,\n result: interpolatedRoute\n };\n}\n\nfunction omitParmsFromQuery(query, params) {\n const filteredQuery = {};\n Object.keys(query).forEach(key => {\n if (!params.includes(key)) {\n filteredQuery[key] = query[key];\n }\n });\n return filteredQuery;\n}\n\nfunction resolveHref(router, href, resolveAs) {\n // we use a dummy base url for relative urls\n let base;\n let urlAsString = typeof href === 'string' ? href : (0, _utils).formatWithValidation(href); // repeated slashes and backslashes in the URL are considered\n // invalid and will never match a Next.js page/file\n\n const urlProtoMatch = urlAsString.match(/^[a-zA-Z]{1,}:\\/\\//);\n const urlAsStringNoProto = urlProtoMatch ? urlAsString.substr(urlProtoMatch[0].length) : urlAsString;\n const urlParts = urlAsStringNoProto.split('?');\n\n if ((urlParts[0] || '').match(/(\\/\\/|\\\\)/)) {\n console.error(`Invalid href passed to next/router: ${urlAsString}, repeated forward-slashes (//) or backslashes \\\\ are not valid in the href`);\n const normalizedUrl = (0, _utils).normalizeRepeatedSlashes(urlAsStringNoProto);\n urlAsString = (urlProtoMatch ? urlProtoMatch[0] : '') + normalizedUrl;\n } // Return because it cannot be routed by the Next.js router\n\n\n if (!isLocalURL(urlAsString)) {\n return resolveAs ? [urlAsString] : urlAsString;\n }\n\n try {\n base = new URL(urlAsString.startsWith('#') ? router.asPath : router.pathname, 'http://n');\n } catch (_) {\n // fallback to / for invalid asPath values e.g. //\n base = new URL('/', 'http://n');\n }\n\n try {\n const finalUrl = new URL(urlAsString, base);\n finalUrl.pathname = (0, _normalizeTrailingSlash).normalizePathTrailingSlash(finalUrl.pathname);\n let interpolatedAs = '';\n\n if ((0, _isDynamic).isDynamicRoute(finalUrl.pathname) && finalUrl.searchParams && resolveAs) {\n const query = (0, _querystring).searchParamsToUrlQuery(finalUrl.searchParams);\n const {\n result,\n params\n } = interpolateAs(finalUrl.pathname, finalUrl.pathname, query);\n\n if (result) {\n interpolatedAs = (0, _utils).formatWithValidation({\n pathname: result,\n hash: finalUrl.hash,\n query: omitParmsFromQuery(query, params)\n });\n }\n } // if the origin didn't change, it means we received a relative href\n\n\n const resolvedHref = finalUrl.origin === base.origin ? finalUrl.href.slice(finalUrl.origin.length) : finalUrl.href;\n return resolveAs ? [resolvedHref, interpolatedAs || resolvedHref] : resolvedHref;\n } catch (_1) {\n return resolveAs ? [urlAsString] : urlAsString;\n }\n}\n\nfunction stripOrigin(url) {\n const origin = (0, _utils).getLocationOrigin();\n return url.startsWith(origin) ? url.substring(origin.length) : url;\n}\n\nfunction prepareUrlAs(router, url, as) {\n // If url and as provided as an object representation,\n // we'll format them into the string version here.\n let [resolvedHref, resolvedAs] = resolveHref(router, url, true);\n const origin = (0, _utils).getLocationOrigin();\n const hrefHadOrigin = resolvedHref.startsWith(origin);\n const asHadOrigin = resolvedAs && resolvedAs.startsWith(origin);\n resolvedHref = stripOrigin(resolvedHref);\n resolvedAs = resolvedAs ? stripOrigin(resolvedAs) : resolvedAs;\n const preparedUrl = hrefHadOrigin ? resolvedHref : addBasePath(resolvedHref);\n const preparedAs = as ? stripOrigin(resolveHref(router, as)) : resolvedAs || resolvedHref;\n return {\n url: preparedUrl,\n as: asHadOrigin ? preparedAs : addBasePath(preparedAs)\n };\n}\n\nfunction resolveDynamicRoute(pathname, pages) {\n const cleanPathname = (0, _normalizeTrailingSlash).removePathTrailingSlash((0, _denormalizePagePath).denormalizePagePath(pathname));\n\n if (cleanPathname === '/404' || cleanPathname === '/_error') {\n return pathname;\n } // handle resolving href for dynamic routes\n\n\n if (!pages.includes(cleanPathname)) {\n // eslint-disable-next-line array-callback-return\n pages.some(page => {\n if ((0, _isDynamic).isDynamicRoute(page) && (0, _routeRegex).getRouteRegex(page).re.test(cleanPathname)) {\n pathname = page;\n return true;\n }\n });\n }\n\n return (0, _normalizeTrailingSlash).removePathTrailingSlash(pathname);\n}\n\nconst manualScrollRestoration = false && 0;\nconst SSG_DATA_NOT_FOUND = Symbol('SSG_DATA_NOT_FOUND');\n\nfunction fetchRetry(url, attempts, opts) {\n return fetch(url, {\n // Cookies are required to be present for Next.js' SSG \"Preview Mode\".\n // Cookies may also be required for `getServerSideProps`.\n //\n // > `fetch` won’t send cookies, unless you set the credentials init\n // > option.\n // https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch\n //\n // > For maximum browser compatibility when it comes to sending &\n // > receiving cookies, always supply the `credentials: 'same-origin'`\n // > option instead of relying on the default.\n // https://github.com/github/fetch#caveats\n credentials: 'same-origin'\n }).then(res => {\n if (!res.ok) {\n if (attempts > 1 && res.status >= 500) {\n return fetchRetry(url, attempts - 1, opts);\n }\n\n if (res.status === 404) {\n return res.json().then(data => {\n if (data.notFound) {\n return {\n notFound: SSG_DATA_NOT_FOUND\n };\n }\n\n throw new Error(`Failed to load static props`);\n });\n }\n\n throw new Error(`Failed to load static props`);\n }\n\n return opts.text ? res.text() : res.json();\n });\n}\n\nfunction fetchNextData(dataHref, isServerRender, text, inflightCache, persistCache) {\n const {\n href: cacheKey\n } = new URL(dataHref, window.location.href);\n\n if (inflightCache[cacheKey] !== undefined) {\n return inflightCache[cacheKey];\n }\n\n return inflightCache[cacheKey] = fetchRetry(dataHref, isServerRender ? 3 : 1, {\n text\n }).catch(err => {\n // We should only trigger a server-side transition if this was caused\n // on a client-side transition. Otherwise, we'd get into an infinite\n // loop.\n if (!isServerRender) {\n (0, _routeLoader).markAssetError(err);\n }\n\n throw err;\n }).then(data => {\n if (!persistCache || true) {\n delete inflightCache[cacheKey];\n }\n\n return data;\n }).catch(err => {\n delete inflightCache[cacheKey];\n throw err;\n });\n}\n\nclass Router {\n constructor(pathname, query, as, {\n initialProps,\n pageLoader,\n App,\n wrapApp,\n Component,\n err,\n subscription,\n isFallback,\n locale,\n locales,\n defaultLocale,\n domainLocales,\n isPreview\n }) {\n // Static Data Cache\n this.sdc = {}; // In-flight Server Data Requests, for deduping\n\n this.sdr = {}; // In-flight middleware preflight requests\n\n this.sde = {};\n this._idx = 0;\n\n this.onPopState = e => {\n const state = e.state;\n\n if (!state) {\n // We get state as undefined for two reasons.\n // 1. With older safari (< 8) and older chrome (< 34)\n // 2. When the URL changed with #\n //\n // In the both cases, we don't need to proceed and change the route.\n // (as it's already changed)\n // But we can simply replace the state with the new changes.\n // Actually, for (1) we don't need to nothing. But it's hard to detect that event.\n // So, doing the following for (1) does no harm.\n const {\n pathname,\n query\n } = this;\n this.changeState('replaceState', (0, _utils).formatWithValidation({\n pathname: addBasePath(pathname),\n query\n }), (0, _utils).getURL());\n return;\n }\n\n if (!state.__N) {\n return;\n }\n\n let forcedScroll;\n const {\n url,\n as,\n options,\n idx\n } = state;\n\n if (false) {}\n\n this._idx = idx;\n const {\n pathname\n } = (0, _parseRelativeUrl).parseRelativeUrl(url); // Make sure we don't re-render on initial load,\n // can be caused by navigating back from an external site\n\n if (this.isSsr && as === this.asPath && pathname === this.pathname) {\n return;\n } // If the downstream application returns falsy, return.\n // They will then be responsible for handling the event.\n\n\n if (this._bps && !this._bps(state)) {\n return;\n }\n\n this.change('replaceState', url, as, Object.assign({}, options, {\n shallow: options.shallow && this._shallow,\n locale: options.locale || this.defaultLocale\n }), forcedScroll);\n }; // represents the current component key\n\n\n this.route = (0, _normalizeTrailingSlash).removePathTrailingSlash(pathname); // set up the component cache (by route keys)\n\n this.components = {}; // We should not keep the cache, if there's an error\n // Otherwise, this cause issues when when going back and\n // come again to the errored page.\n\n if (pathname !== '/_error') {\n var ref;\n this.components[this.route] = {\n Component,\n initial: true,\n props: initialProps,\n err,\n __N_SSG: initialProps && initialProps.__N_SSG,\n __N_SSP: initialProps && initialProps.__N_SSP,\n __N_RSC: !!((ref = Component) === null || ref === void 0 ? void 0 : ref.__next_rsc__)\n };\n }\n\n this.components['/_app'] = {\n Component: App,\n styleSheets: []\n }; // Backwards compat for Router.router.events\n // TODO: Should be remove the following major version as it was never documented\n\n this.events = Router.events;\n this.pageLoader = pageLoader;\n this.pathname = pathname;\n this.query = query; // if auto prerendered and dynamic route wait to update asPath\n // until after mount to prevent hydration mismatch\n\n const autoExportDynamic = (0, _isDynamic).isDynamicRoute(pathname) && self.__NEXT_DATA__.autoExport;\n\n this.asPath = autoExportDynamic ? pathname : as;\n this.basePath = basePath;\n this.sub = subscription;\n this.clc = null;\n this._wrapApp = wrapApp; // make sure to ignore extra popState in safari on navigating\n // back from external site\n\n this.isSsr = true;\n this.isFallback = isFallback;\n this.isReady = !!(self.__NEXT_DATA__.gssp || self.__NEXT_DATA__.gip || self.__NEXT_DATA__.appGip && !self.__NEXT_DATA__.gsp || !autoExportDynamic && !self.location.search && !false);\n this.isPreview = !!isPreview;\n this.isLocaleDomain = false;\n\n if (false) {}\n\n if (false) {}\n }\n\n reload() {\n window.location.reload();\n }\n /**\n * Go back in history\n */\n\n\n back() {\n window.history.back();\n }\n /**\n * Performs a `pushState` with arguments\n * @param url of the route\n * @param as masks `url` for the browser\n * @param options object you can define `shallow` and other options\n */\n\n\n push(url, as, options = {}) {\n if (false) {}\n\n ({\n url,\n as\n } = prepareUrlAs(this, url, as));\n return this.change('pushState', url, as, options);\n }\n /**\n * Performs a `replaceState` with arguments\n * @param url of the route\n * @param as masks `url` for the browser\n * @param options object you can define `shallow` and other options\n */\n\n\n replace(url, as, options = {}) {\n ({\n url,\n as\n } = prepareUrlAs(this, url, as));\n return this.change('replaceState', url, as, options);\n }\n\n async change(method, url, as, options, forcedScroll) {\n if (!isLocalURL(url)) {\n window.location.href = url;\n return false;\n }\n\n const shouldResolveHref = options._h || options._shouldResolveHref || pathNoQueryHash(url) === pathNoQueryHash(as); // for static pages with query params in the URL we delay\n // marking the router ready until after the query is updated\n\n if (options._h) {\n this.isReady = true;\n }\n\n const prevLocale = this.locale;\n\n if (false) { var ref; }\n\n if (!options._h) {\n this.isSsr = false;\n } // marking route changes as a navigation start entry\n\n\n if (_utils.ST) {\n performance.mark('routeChange');\n }\n\n const {\n shallow = false\n } = options;\n const routeProps = {\n shallow\n };\n\n if (this._inFlightRoute) {\n this.abortComponentLoad(this._inFlightRoute, routeProps);\n }\n\n as = addBasePath(addLocale(hasBasePath(as) ? delBasePath(as) : as, options.locale, this.defaultLocale));\n const cleanedAs = delLocale(hasBasePath(as) ? delBasePath(as) : as, this.locale);\n this._inFlightRoute = as;\n let localeChange = prevLocale !== this.locale; // If the url change is only related to a hash change\n // We should not proceed. We should only change the state.\n // WARNING: `_h` is an internal option for handing Next.js client-side\n // hydration. Your app should _never_ use this property. It may change at\n // any time without notice.\n\n if (!options._h && this.onlyAHashChange(cleanedAs) && !localeChange) {\n this.asPath = cleanedAs;\n Router.events.emit('hashChangeStart', as, routeProps); // TODO: do we need the resolved href when only a hash change?\n\n this.changeState(method, url, as, options);\n this.scrollToHash(cleanedAs);\n this.notify(this.components[this.route], null);\n Router.events.emit('hashChangeComplete', as, routeProps);\n return true;\n }\n\n let parsed = (0, _parseRelativeUrl).parseRelativeUrl(url);\n let {\n pathname,\n query\n } = parsed; // The build manifest needs to be loaded before auto-static dynamic pages\n // get their query parameters to allow ensuring they can be parsed properly\n // when rewritten to\n\n let pages, rewrites;\n\n try {\n [pages, {\n __rewrites: rewrites\n }] = await Promise.all([this.pageLoader.getPageList(), (0, _routeLoader).getClientBuildManifest(), this.pageLoader.getMiddlewareList()]);\n } catch (err) {\n // If we fail to resolve the page list or client-build manifest, we must\n // do a server-side transition:\n window.location.href = as;\n return false;\n } // If asked to change the current URL we should reload the current page\n // (not location.reload() but reload getInitialProps and other Next.js stuffs)\n // We also need to set the method = replaceState always\n // as this should not go into the history (That's how browsers work)\n // We should compare the new asPath to the current asPath, not the url\n\n\n if (!this.urlIsNew(cleanedAs) && !localeChange) {\n method = 'replaceState';\n } // we need to resolve the as value using rewrites for dynamic SSG\n // pages to allow building the data URL correctly\n\n\n let resolvedAs = as; // url and as should always be prefixed with basePath by this\n // point by either next/link or router.push/replace so strip the\n // basePath from the pathname to match the pages dir 1-to-1\n\n pathname = pathname ? (0, _normalizeTrailingSlash).removePathTrailingSlash(delBasePath(pathname)) : pathname;\n\n if (shouldResolveHref && pathname !== '/_error') {\n options._shouldResolveHref = true;\n\n if (false) {} else {\n parsed.pathname = resolveDynamicRoute(pathname, pages);\n\n if (parsed.pathname !== pathname) {\n pathname = parsed.pathname;\n parsed.pathname = addBasePath(pathname);\n url = (0, _utils).formatWithValidation(parsed);\n }\n }\n }\n\n if (!isLocalURL(as)) {\n if (true) {\n throw new Error(`Invalid href: \"${url}\" and as: \"${as}\", received relative href and external as` + `\\nSee more info: https://nextjs.org/docs/messages/invalid-relative-url-external-as`);\n }\n\n window.location.href = as;\n return false;\n }\n\n resolvedAs = delLocale(delBasePath(resolvedAs), this.locale);\n const effect = await this._preflightRequest({\n as,\n cache: false,\n pages,\n pathname,\n query\n });\n\n if (effect.type === 'rewrite') {\n query = _objectSpread(_objectSpread({}, query), effect.parsedAs.query);\n resolvedAs = effect.asPath;\n pathname = effect.resolvedHref;\n parsed.pathname = effect.resolvedHref;\n url = (0, _utils).formatWithValidation(parsed);\n } else if (effect.type === 'redirect' && effect.newAs) {\n return this.change(method, effect.newUrl, effect.newAs, options);\n } else if (effect.type === 'redirect' && effect.destination) {\n window.location.href = effect.destination;\n return new Promise(() => {});\n } else if (effect.type === 'refresh') {\n window.location.href = as;\n return new Promise(() => {});\n }\n\n const route = (0, _normalizeTrailingSlash).removePathTrailingSlash(pathname);\n\n if ((0, _isDynamic).isDynamicRoute(route)) {\n const parsedAs = (0, _parseRelativeUrl).parseRelativeUrl(resolvedAs);\n const asPathname = parsedAs.pathname;\n const routeRegex = (0, _routeRegex).getRouteRegex(route);\n const routeMatch = (0, _routeMatcher).getRouteMatcher(routeRegex)(asPathname);\n const shouldInterpolate = route === asPathname;\n const interpolatedAs = shouldInterpolate ? interpolateAs(route, asPathname, query) : {};\n\n if (!routeMatch || shouldInterpolate && !interpolatedAs.result) {\n const missingParams = Object.keys(routeRegex.groups).filter(param => !query[param]);\n\n if (missingParams.length > 0) {\n if (true) {\n console.warn(`${shouldInterpolate ? `Interpolating href` : `Mismatching \\`as\\` and \\`href\\``} failed to manually provide ` + `the params: ${missingParams.join(', ')} in the \\`href\\`'s \\`query\\``);\n }\n\n throw new Error((shouldInterpolate ? `The provided \\`href\\` (${url}) value is missing query values (${missingParams.join(', ')}) to be interpolated properly. ` : `The provided \\`as\\` value (${asPathname}) is incompatible with the \\`href\\` value (${route}). `) + `Read more: https://nextjs.org/docs/messages/${shouldInterpolate ? 'href-interpolation-failed' : 'incompatible-href-as'}`);\n }\n } else if (shouldInterpolate) {\n as = (0, _utils).formatWithValidation(Object.assign({}, parsedAs, {\n pathname: interpolatedAs.result,\n query: omitParmsFromQuery(query, interpolatedAs.params)\n }));\n } else {\n // Merge params into `query`, overwriting any specified in search\n Object.assign(query, routeMatch);\n }\n }\n\n Router.events.emit('routeChangeStart', as, routeProps);\n\n try {\n var ref, ref1;\n let routeInfo = await this.getRouteInfo(route, pathname, query, as, resolvedAs, routeProps);\n let {\n error,\n props,\n __N_SSG,\n __N_SSP\n } = routeInfo; // handle redirect on client-transition\n\n if ((__N_SSG || __N_SSP) && props) {\n if (props.pageProps && props.pageProps.__N_REDIRECT) {\n const destination = props.pageProps.__N_REDIRECT; // check if destination is internal (resolves to a page) and attempt\n // client-navigation if it is falling back to hard navigation if\n // it's not\n\n if (destination.startsWith('/') && props.pageProps.__N_REDIRECT_BASE_PATH !== false) {\n const parsedHref = (0, _parseRelativeUrl).parseRelativeUrl(destination);\n parsedHref.pathname = resolveDynamicRoute(parsedHref.pathname, pages);\n const {\n url: newUrl,\n as: newAs\n } = prepareUrlAs(this, destination, destination);\n return this.change(method, newUrl, newAs, options);\n }\n\n window.location.href = destination;\n return new Promise(() => {});\n }\n\n this.isPreview = !!props.__N_PREVIEW; // handle SSG data 404\n\n if (props.notFound === SSG_DATA_NOT_FOUND) {\n let notFoundRoute;\n\n try {\n await this.fetchComponent('/404');\n notFoundRoute = '/404';\n } catch (_) {\n notFoundRoute = '/_error';\n }\n\n routeInfo = await this.getRouteInfo(notFoundRoute, notFoundRoute, query, as, resolvedAs, {\n shallow: false\n });\n }\n }\n\n Router.events.emit('beforeHistoryChange', as, routeProps);\n this.changeState(method, url, as, options);\n\n if (options._h && pathname === '/_error' && ((ref = self.__NEXT_DATA__.props) === null || ref === void 0 ? void 0 : (ref1 = ref.pageProps) === null || ref1 === void 0 ? void 0 : ref1.statusCode) === 500 && (props === null || props === void 0 ? void 0 : props.pageProps)) {\n // ensure statusCode is still correct for static 500 page\n // when updating query information\n props.pageProps.statusCode = 500;\n } // shallow routing is only allowed for same page URL changes.\n\n\n const isValidShallowRoute = options.shallow && this.route === route;\n\n var _scroll;\n\n const shouldScroll = (_scroll = options.scroll) !== null && _scroll !== void 0 ? _scroll : !isValidShallowRoute;\n const resetScroll = shouldScroll ? {\n x: 0,\n y: 0\n } : null;\n await this.set(route, pathname, query, cleanedAs, routeInfo, forcedScroll !== null && forcedScroll !== void 0 ? forcedScroll : resetScroll).catch(e => {\n if (e.cancelled) error = error || e;else throw e;\n });\n\n if (error) {\n Router.events.emit('routeChangeError', error, cleanedAs, routeProps);\n throw error;\n }\n\n if (false) {}\n\n Router.events.emit('routeChangeComplete', as, routeProps);\n return true;\n } catch (err1) {\n if ((0, _isError).default(err1) && err1.cancelled) {\n return false;\n }\n\n throw err1;\n }\n }\n\n changeState(method, url, as, options = {}) {\n if (true) {\n if (typeof window.history === 'undefined') {\n console.error(`Warning: window.history is not available.`);\n return;\n }\n\n if (typeof window.history[method] === 'undefined') {\n console.error(`Warning: window.history.${method} is not available`);\n return;\n }\n }\n\n if (method !== 'pushState' || (0, _utils).getURL() !== as) {\n this._shallow = options.shallow;\n window.history[method]({\n url,\n as,\n options,\n __N: true,\n idx: this._idx = method !== 'pushState' ? this._idx : this._idx + 1\n }, // Most browsers currently ignores this parameter, although they may use it in the future.\n // Passing the empty string here should be safe against future changes to the method.\n // https://developer.mozilla.org/en-US/docs/Web/API/History/replaceState\n '', as);\n }\n }\n\n async handleRouteInfoError(err, pathname, query, as, routeProps, loadErrorFail) {\n if (err.cancelled) {\n // bubble up cancellation errors\n throw err;\n }\n\n if ((0, _routeLoader).isAssetError(err) || loadErrorFail) {\n Router.events.emit('routeChangeError', err, as, routeProps); // If we can't load the page it could be one of following reasons\n // 1. Page doesn't exists\n // 2. Page does exist in a different zone\n // 3. Internal error while loading the page\n // So, doing a hard reload is the proper way to deal with this.\n\n window.location.href = as; // Changing the URL doesn't block executing the current code path.\n // So let's throw a cancellation error stop the routing logic.\n\n throw buildCancellationError();\n }\n\n try {\n let Component;\n let styleSheets;\n let props;\n\n if (typeof Component === 'undefined' || typeof styleSheets === 'undefined') {\n ({\n page: Component,\n styleSheets\n } = await this.fetchComponent('/_error'));\n }\n\n const routeInfo = {\n props,\n Component,\n styleSheets,\n err,\n error: err\n };\n\n if (!routeInfo.props) {\n try {\n routeInfo.props = await this.getInitialProps(Component, {\n err,\n pathname,\n query\n });\n } catch (gipErr) {\n console.error('Error in error page `getInitialProps`: ', gipErr);\n routeInfo.props = {};\n }\n }\n\n return routeInfo;\n } catch (routeInfoErr) {\n return this.handleRouteInfoError((0, _isError).default(routeInfoErr) ? routeInfoErr : new Error(routeInfoErr + ''), pathname, query, as, routeProps, true);\n }\n }\n\n async getRouteInfo(route, pathname, query, as, resolvedAs, routeProps) {\n try {\n const existingRouteInfo = this.components[route];\n\n if (routeProps.shallow && existingRouteInfo && this.route === route) {\n return existingRouteInfo;\n }\n\n let cachedRouteInfo = undefined; // can only use non-initial route info\n // cannot reuse route info in development since it can change after HMR\n\n if (false) {}\n\n const routeInfo = cachedRouteInfo || (await this.fetchComponent(route).then(res => ({\n Component: res.page,\n styleSheets: res.styleSheets,\n __N_SSG: res.mod.__N_SSG,\n __N_SSP: res.mod.__N_SSP,\n __N_RSC: !!res.page.__next_rsc__\n })));\n const {\n Component,\n __N_SSG,\n __N_SSP,\n __N_RSC\n } = routeInfo;\n\n if (true) {\n const {\n isValidElementType\n } = __webpack_require__(/*! react-is */ \"react-is\");\n\n if (!isValidElementType(Component)) {\n throw new Error(`The default export is not a React Component in page: \"${pathname}\"`);\n }\n }\n\n let dataHref;\n\n if (__N_SSG || __N_SSP || __N_RSC) {\n dataHref = this.pageLoader.getDataHref({\n href: (0, _utils).formatWithValidation({\n pathname,\n query\n }),\n asPath: resolvedAs,\n ssg: __N_SSG,\n rsc: __N_RSC,\n locale: this.locale\n });\n }\n\n const props = await this._getData(() => __N_SSG || __N_SSP ? fetchNextData(dataHref, this.isSsr, false, __N_SSG ? this.sdc : this.sdr, !!__N_SSG && !this.isPreview) : this.getInitialProps(Component, // we provide AppTree later so this needs to be `any`\n {\n pathname,\n query,\n asPath: as,\n locale: this.locale,\n locales: this.locales,\n defaultLocale: this.defaultLocale\n }));\n\n if (__N_RSC) {\n const {\n fresh,\n data\n } = await this._getData(() => this._getFlightData(dataHref));\n props.pageProps = Object.assign(props.pageProps, {\n __flight_serialized__: data,\n __flight_fresh__: fresh\n });\n }\n\n routeInfo.props = props;\n this.components[route] = routeInfo;\n return routeInfo;\n } catch (err) {\n return this.handleRouteInfoError((0, _isError).default(err) ? err : new Error(err + ''), pathname, query, as, routeProps);\n }\n }\n\n set(route, pathname, query, as, data, resetScroll) {\n this.isFallback = false;\n this.route = route;\n this.pathname = pathname;\n this.query = query;\n this.asPath = as;\n return this.notify(data, resetScroll);\n }\n /**\n * Callback to execute before replacing router state\n * @param cb callback to be executed\n */\n\n\n beforePopState(cb) {\n this._bps = cb;\n }\n\n onlyAHashChange(as) {\n if (!this.asPath) return false;\n const [oldUrlNoHash, oldHash] = this.asPath.split('#');\n const [newUrlNoHash, newHash] = as.split('#'); // Makes sure we scroll to the provided hash if the url/hash are the same\n\n if (newHash && oldUrlNoHash === newUrlNoHash && oldHash === newHash) {\n return true;\n } // If the urls are change, there's more than a hash change\n\n\n if (oldUrlNoHash !== newUrlNoHash) {\n return false;\n } // If the hash has changed, then it's a hash only change.\n // This check is necessary to handle both the enter and\n // leave hash === '' cases. The identity case falls through\n // and is treated as a next reload.\n\n\n return oldHash !== newHash;\n }\n\n scrollToHash(as) {\n const [, hash] = as.split('#'); // Scroll to top if the hash is just `#` with no value or `#top`\n // To mirror browsers\n\n if (hash === '' || hash === 'top') {\n window.scrollTo(0, 0);\n return;\n } // First we check if the element by id is found\n\n\n const idEl = document.getElementById(hash);\n\n if (idEl) {\n idEl.scrollIntoView();\n return;\n } // If there's no element with the id, we check the `name` property\n // To mirror browsers\n\n\n const nameEl = document.getElementsByName(hash)[0];\n\n if (nameEl) {\n nameEl.scrollIntoView();\n }\n }\n\n urlIsNew(asPath) {\n return this.asPath !== asPath;\n }\n /**\n * Prefetch page code, you may wait for the data during page rendering.\n * This feature only works in production!\n * @param url the href of prefetched page\n * @param asPath the as path of the prefetched page\n */\n\n\n async prefetch(url, asPath = url, options = {}) {\n let parsed = (0, _parseRelativeUrl).parseRelativeUrl(url);\n let {\n pathname,\n query\n } = parsed;\n\n if (false) {}\n\n const pages = await this.pageLoader.getPageList();\n let resolvedAs = asPath;\n\n if (false) {} else {\n parsed.pathname = resolveDynamicRoute(parsed.pathname, pages);\n\n if (parsed.pathname !== pathname) {\n pathname = parsed.pathname;\n parsed.pathname = pathname;\n url = (0, _utils).formatWithValidation(parsed);\n }\n } // Prefetch is not supported in development mode because it would trigger on-demand-entries\n\n\n if (true) {\n return;\n }\n\n const effects = await this._preflightRequest({\n as: addBasePath(asPath),\n cache: true,\n pages,\n pathname,\n query\n });\n\n if (effects.type === 'rewrite') {\n parsed.pathname = effects.resolvedHref;\n pathname = effects.resolvedHref;\n query = _objectSpread(_objectSpread({}, query), effects.parsedAs.query);\n resolvedAs = effects.asPath;\n url = (0, _utils).formatWithValidation(parsed);\n }\n\n const route = (0, _normalizeTrailingSlash).removePathTrailingSlash(pathname);\n await Promise.all([this.pageLoader._isSsg(route).then(isSsg => {\n return isSsg ? fetchNextData(this.pageLoader.getDataHref({\n href: url,\n asPath: resolvedAs,\n ssg: true,\n locale: typeof options.locale !== 'undefined' ? options.locale : this.locale\n }), false, false, this.sdc, true) : false;\n }), this.pageLoader[options.priority ? 'loadPage' : 'prefetch'](route)]);\n }\n\n async fetchComponent(route) {\n let cancelled = false;\n\n const cancel = this.clc = () => {\n cancelled = true;\n };\n\n const handleCancelled = () => {\n if (cancelled) {\n const error = new Error(`Abort fetching component for route: \"${route}\"`);\n error.cancelled = true;\n throw error;\n }\n\n if (cancel === this.clc) {\n this.clc = null;\n }\n };\n\n try {\n const componentResult = await this.pageLoader.loadPage(route);\n handleCancelled();\n return componentResult;\n } catch (err) {\n handleCancelled();\n throw err;\n }\n }\n\n _getData(fn) {\n let cancelled = false;\n\n const cancel = () => {\n cancelled = true;\n };\n\n this.clc = cancel;\n return fn().then(data => {\n if (cancel === this.clc) {\n this.clc = null;\n }\n\n if (cancelled) {\n const err = new Error('Loading initial props cancelled');\n err.cancelled = true;\n throw err;\n }\n\n return data;\n });\n }\n\n _getFlightData(dataHref) {\n const {\n href: cacheKey\n } = new URL(dataHref, window.location.href);\n\n if (!this.isPreview && this.sdc[cacheKey]) {\n return Promise.resolve({\n fresh: false,\n data: this.sdc[cacheKey]\n });\n }\n\n return fetchNextData(dataHref, true, true, this.sdc, false).then(serialized => {\n this.sdc[cacheKey] = serialized;\n return {\n fresh: true,\n data: serialized\n };\n });\n }\n\n async _preflightRequest(options) {\n var ref;\n const cleanedAs = delLocale(hasBasePath(options.as) ? delBasePath(options.as) : options.as, this.locale);\n const fns = await this.pageLoader.getMiddlewareList();\n const requiresPreflight = fns.some(([middleware, isSSR]) => {\n return (0, _routeMatcher).getRouteMatcher((0, _getMiddlewareRegex).getMiddlewareRegex(middleware, !isSSR))(cleanedAs);\n });\n\n if (!requiresPreflight) {\n return {\n type: 'next'\n };\n }\n\n const preflight = await this._getPreflightData({\n preflightHref: options.as,\n shouldCache: options.cache\n });\n\n if ((ref = preflight.rewrite) === null || ref === void 0 ? void 0 : ref.startsWith('/')) {\n const parsed = (0, _parseRelativeUrl).parseRelativeUrl((0, _normalizeLocalePath).normalizeLocalePath(hasBasePath(preflight.rewrite) ? delBasePath(preflight.rewrite) : preflight.rewrite, this.locales).pathname);\n const fsPathname = (0, _normalizeTrailingSlash).removePathTrailingSlash(parsed.pathname);\n let matchedPage;\n let resolvedHref;\n\n if (options.pages.includes(fsPathname)) {\n matchedPage = true;\n resolvedHref = fsPathname;\n } else {\n resolvedHref = resolveDynamicRoute(fsPathname, options.pages);\n\n if (resolvedHref !== parsed.pathname && options.pages.includes(resolvedHref)) {\n matchedPage = true;\n }\n }\n\n return {\n type: 'rewrite',\n asPath: parsed.pathname,\n parsedAs: parsed,\n matchedPage,\n resolvedHref\n };\n }\n\n if (preflight.redirect) {\n if (preflight.redirect.startsWith('/')) {\n const cleanRedirect = (0, _normalizeTrailingSlash).removePathTrailingSlash((0, _normalizeLocalePath).normalizeLocalePath(hasBasePath(preflight.redirect) ? delBasePath(preflight.redirect) : preflight.redirect, this.locales).pathname);\n const {\n url: newUrl,\n as: newAs\n } = prepareUrlAs(this, cleanRedirect, cleanRedirect);\n return {\n type: 'redirect',\n newUrl,\n newAs\n };\n }\n\n return {\n type: 'redirect',\n destination: preflight.redirect\n };\n } // For SSR requests, they will be handled like normal pages.\n\n\n if (preflight.refresh && !preflight.ssr) {\n return {\n type: 'refresh'\n };\n }\n\n return {\n type: 'next'\n };\n }\n\n _getPreflightData(params) {\n const {\n preflightHref,\n shouldCache = false\n } = params;\n const {\n href: cacheKey\n } = new URL(preflightHref, window.location.href);\n\n if (false) {}\n\n return fetch(preflightHref, {\n method: 'HEAD',\n credentials: 'same-origin',\n headers: {\n 'x-middleware-preflight': '1'\n }\n }).then(res => {\n if (!res.ok) {\n throw new Error(`Failed to preflight request`);\n }\n\n return {\n redirect: res.headers.get('Location'),\n refresh: res.headers.has('x-middleware-refresh'),\n rewrite: res.headers.get('x-middleware-rewrite'),\n ssr: !!res.headers.get('x-middleware-ssr')\n };\n }).then(data => {\n if (shouldCache) {\n this.sde[cacheKey] = data;\n }\n\n return data;\n }).catch(err => {\n delete this.sde[cacheKey];\n throw err;\n });\n }\n\n getInitialProps(Component, ctx) {\n const {\n Component: App\n } = this.components['/_app'];\n\n const AppTree = this._wrapApp(App);\n\n ctx.AppTree = AppTree;\n return (0, _utils).loadGetInitialProps(App, {\n AppTree,\n Component,\n router: this,\n ctx\n });\n }\n\n abortComponentLoad(as, routeProps) {\n if (this.clc) {\n Router.events.emit('routeChangeError', buildCancellationError(), as, routeProps);\n this.clc();\n this.clc = null;\n }\n }\n\n notify(data, resetScroll) {\n return this.sub(data, this.components['/_app'].Component, resetScroll);\n }\n\n}\n\nRouter.events = (0, _mitt).default();\nexports[\"default\"] = Router;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3JvdXRlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7Ozs7Ozs7QUFDYkEsOENBQTZDO0FBQ3pDRyxFQUFBQSxLQUFLLEVBQUU7QUFEa0MsQ0FBN0M7QUFHQUQsdUJBQUEsR0FBMEJFLGVBQTFCO0FBQ0FGLGlCQUFBLEdBQW9CRyxTQUFwQjtBQUNBSCxpQkFBQSxHQUFvQkksU0FBcEI7QUFDQUosbUJBQUEsR0FBc0JLLFdBQXRCO0FBQ0FMLG1CQUFBLEdBQXNCTSxXQUF0QjtBQUNBTixtQkFBQSxHQUFzQk8sV0FBdEI7QUFDQVAsa0JBQUEsR0FBcUJRLFVBQXJCO0FBQ0FSLHFCQUFBLEdBQXdCUyxhQUF4QjtBQUNBVCxtQkFBQSxHQUFzQlUsV0FBdEI7QUFDQVYsa0JBQUEsR0FBa0IsS0FBSyxDQUF2Qjs7QUFDQSxJQUFJWSx1QkFBdUIsR0FBR0MsbUJBQU8sQ0FBQyw2R0FBRCxDQUFyQzs7QUFDQSxJQUFJQyxZQUFZLEdBQUdELG1CQUFPLENBQUMscUZBQUQsQ0FBMUI7O0FBQ0EsSUFBSUUsUUFBUSxHQUFHQyxzQkFBc0IsQ0FBQ0gsbUJBQU8sQ0FBQyx1RUFBRCxDQUFSLENBQXJDOztBQUNBLElBQUlJLG9CQUFvQixHQUFHSixtQkFBTyxDQUFDLG9GQUFELENBQWxDOztBQUNBLElBQUlLLG9CQUFvQixHQUFHTCxtQkFBTyxDQUFDLG9FQUFELENBQWxDOztBQUNBLElBQUlNLEtBQUssR0FBR0gsc0JBQXNCLENBQUNILG1CQUFPLENBQUMsd0JBQUQsQ0FBUixDQUFsQzs7QUFDQSxJQUFJTyxNQUFNLEdBQUdQLG1CQUFPLENBQUMscUNBQUQsQ0FBcEI7O0FBQ0EsSUFBSVEsVUFBVSxHQUFHUixtQkFBTyxDQUFDLDhDQUFELENBQXhCOztBQUNBLElBQUlTLGlCQUFpQixHQUFHVCxtQkFBTyxDQUFDLDhEQUFELENBQS9COztBQUNBLElBQUlVLFlBQVksR0FBR1YsbUJBQU8sQ0FBQyxnREFB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LEtBQUs3QixHQUFULEVBQWM7QUFDVnBELE1BQUFBLE1BQU0sQ0FBQytDLE1BQVAsQ0FBY3dDLElBQWQsQ0FBbUIsa0JBQW5CLEVBQXVDdE8sc0JBQXNCLEVBQTdELEVBQWlFOEYsRUFBakUsRUFBcUVrSSxVQUFyRTtBQUNBLFdBQUs3QixHQUFMO0FBQ0EsV0FBS0EsR0FBTCxHQUFXLElBQVg7QUFDSDtBQUNKOztBQUNEcUMsRUFBQUEsTUFBTSxDQUFDdEcsSUFBRCxFQUFPOEksV0FBUCxFQUFvQjtBQUN0QixXQUFPLEtBQUs5RSxHQUFMLENBQVNoRSxJQUFULEVBQWUsS0FBS21ELFVBQUwsQ0FBZ0IsT0FBaEIsRUFBeUJoQyxTQUF4QyxFQUFtRDJILFdBQW5ELENBQVA7QUFDSDs7QUFoNkJROztBQWs2QmJqSSxNQUFNLENBQUMrQyxNQUFQLEdBQWdCLENBQUMsR0FBRy9NLEtBQUosRUFBV1IsT0FBWCxFQUFoQjtBQUNBWCxrQkFBQSxHQUFrQm1MLE1BQWxCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmllLXJlYWN0Ly4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zaGFyZWQvbGliL3JvdXRlci9yb3V0ZXIuanM/ODY4NCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZ2V0RG9tYWluTG9jYWxlID0gZ2V0RG9tYWluTG9jYWxlO1xuZXhwb3J0cy5hZGRMb2NhbGUgPSBhZGRMb2NhbGU7XG5leHBvcnRzLmRlbExvY2FsZSA9IGRlbExvY2FsZTtcbmV4cG9ydHMuaGFzQmFzZVBhdGggPSBoYXNCYXNlUGF0aDtcbmV4cG9ydHMuYWRkQmFzZVBhdGggPSBhZGRCYXNlUGF0aDtcbmV4cG9ydHMuZGVsQmFzZVBhdGggPSBkZWxCYXNlUGF0aDtcbmV4cG9ydHMuaXNMb2NhbFVSTCA9IGlzTG9jYWxVUkw7XG5leHBvcnRzLmludGVycG9sYXRlQXMgPSBpbnRlcnBvbGF0ZUFzO1xuZXhwb3J0cy5yZXNvbHZlSHJlZiA9IHJlc29sdmVIcmVmO1xuZXhwb3J0cy5kZWZhdWx0ID0gdm9pZCAwO1xudmFyIF9ub3JtYWxpemVUcmFpbGluZ1NsYXNoID0gcmVxdWlyZShcIi4uLy4uLy4uL2NsaWVudC9ub3JtYWxpemUtdHJhaWxpbmctc2xhc2hcIik7XG52YXIgX3JvdXRlTG9hZGVyID0gcmVxdWlyZShcIi4uLy4uLy4uL2NsaWVudC9yb3V0ZS1sb2FkZXJcIik7XG52YXIgX2lzRXJyb3IgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi8uLi8uLi9saWIvaXMtZXJyb3JcIikpO1xudmFyIF9kZW5vcm1hbGl6ZVBhZ2VQYXRoID0gcmVxdWlyZShcIi4uLy4uLy4uL3NlcnZlci9kZW5vcm1hbGl6ZS1wYWdlLXBhdGhcIik7XG52YXIgX25vcm1hbGl6ZUxvY2FsZVBhdGggPSByZXF1aXJlKFwiLi4vaTE4bi9ub3JtYWxpemUtbG9jYWxlLXBhdGhcIik7XG52YXIgX21pdHQgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9taXR0XCIpKTtcbnZhciBfdXRpbHMgPSByZXF1aXJlKFwiLi4vdXRpbHNcIik7XG52YXIgX2lzRHluYW1pYyA9IHJlcXVpcmUoXCIuL3V0aWxzL2lzLWR5bmFtaWNcIik7XG52YXIgX3BhcnNlUmVsYXRpdmVVcmwgPSByZXF1aXJlKFwiLi91dGlscy9wYXJzZS1yZWxhdGl2ZS11cmxcIik7XG52YXIgX3F1ZXJ5c3RyaW5nID0gcmVxdWlyZShcIi4vdXRpbHMvcXVlcnlzdHJpbmdcIik7XG52YXIgX3Jlc29sdmVSZXdyaXRlcyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vdXRpbHMvcmVzb2x2ZS1yZXdyaXRlc1wiKSk7XG52YXIgX3JvdXRlTWF0Y2hlciA9IHJlcXVpcmUoXCIuL3V0aWxzL3JvdXRlLW1hdGNoZXJcIik7XG52YXIgX3JvdXRlUmVnZXggPSByZXF1aXJlKFwiLi91dGlscy9yb3V0ZS1yZWdleFwiKTtcbnZhciBfZ2V0TWlkZGxld2FyZVJlZ2V4ID0gcmVxdWlyZShcIi4vdXRpbHMvZ2V0LW1pZGRsZXdhcmUtcmVnZXhcIik7XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5sZXQgZGV0ZWN0RG9tYWluTG9jYWxlO1xuaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9JMThOX1NVUFBPUlQpIHtcbiAgICBkZXRlY3REb21haW5Mb2NhbGUgPSByZXF1aXJlKCcuLi9pMThuL2RldGVjdC1kb21haW4tbG9jYWxlJykuZGV0ZWN0RG9tYWluTG9jYWxlO1xufVxuY29uc3QgYmFzZVBhdGggPSBwcm9jZXNzLmVudi5fX05FWFRfUk9VVEVSX0JBU0VQQVRIIHx8ICcnO1xuZnVuY3Rpb24gYnVpbGRDYW5jZWxsYXRpb25FcnJvcigpIHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgRXJyb3IoJ1JvdXRlIENhbmNlbGxlZCcpLCB7XG4gICAgICAgIGNhbmNlbGxlZDogdHJ1ZVxuICAgIH0pO1xufVxuZnVuY3Rpb24gYWRkUGF0aFByZWZpeChwYXRoLCBwcmVmaXgpIHtcbiAgICBpZiAoIXBhdGguc3RhcnRzV2l0aCgnLycpIHx8ICFwcmVmaXgpIHtcbiAgICAgICAgcmV0dXJuIHBhdGg7XG4gICAgfVxuICAgIGNvbnN0IHBhdGhuYW1lID0gcGF0aE5vUXVlcnlIYXNoKHBhdGgpO1xuICAgIHJldHVybiAoMCwgX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2gpLm5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoKGAke3ByZWZpeH0ke3BhdGhuYW1lfWApICsgcGF0aC5zdWJzdHIocGF0aG5hbWUubGVuZ3RoKTtcbn1cbmZ1bmN0aW9uIGdldERvbWFpbkxvY2FsZShwYXRoLCBsb2NhbGUsIGxvY2FsZXMsIGRvbWFpbkxvY2FsZXMpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0kxOE5fU1VQUE9SVCkge1xuICAgICAgICBsb2NhbGUgPSBsb2NhbGUgfHwgKDAsIF9ub3JtYWxpemVMb2NhbGVQYXRoKS5ub3JtYWxpemVMb2NhbGVQYXRoKHBhdGgsIGxvY2FsZXMpLmRldGVjdGVkTG9jYWxlO1xuICAgICAgICBjb25zdCBkZXRlY3RlZERvbWFpbiA9IGRldGVjdERvbWFpbkxvY2FsZShkb21haW5Mb2NhbGVzLCB1bmRlZmluZWQsIGxvY2FsZSk7XG4gICAgICAgIGlmIChkZXRlY3RlZERvbWFpbikge1xuICAgICAgICAgICAgcmV0dXJuIGBodHRwJHtkZXRlY3RlZERvbWFpbi5odHRwID8gJycgOiAncyd9Oi8vJHtkZXRlY3RlZERvbWFpbi5kb21haW59JHtiYXNlUGF0aCB8fCAnJ30ke2xvY2FsZSA9PT0gZGV0ZWN0ZWREb21haW4uZGVmYXVsdExvY2FsZSA/ICcnIDogYC8ke2xvY2FsZX1gfSR7cGF0aH1gO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuZnVuY3Rpb24gYWRkTG9jYWxlKHBhdGgsIGxvY2FsZSwgZGVmYXVsdExvY2FsZSkge1xuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgICAgIGNvbnN0IHBhdGhuYW1lID0gcGF0aE5vUXVlcnlIYXNoKHBhdGgpO1xuICAgICAgICBjb25zdCBwYXRoTG93ZXIgPSBwYXRobmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBjb25zdCBsb2NhbGVMb3dlciA9IGxvY2FsZSAmJiBsb2NhbGUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgcmV0dXJuIGxvY2FsZSAmJiBsb2NhbGUgIT09IGRlZmF1bHRMb2NhbGUgJiYgIXBhdGhMb3dlci5zdGFydHNXaXRoKCcvJyArIGxvY2FsZUxvd2VyICsgJy8nKSAmJiBwYXRoTG93ZXIgIT09ICcvJyArIGxvY2FsZUxvd2VyID8gYWRkUGF0aFByZWZpeChwYXRoLCAnLycgKyBsb2NhbGUpIDogcGF0aDtcbiAgICB9XG4gICAgcmV0dXJuIHBhdGg7XG59XG5mdW5jdGlvbiBkZWxMb2NhbGUocGF0aCwgbG9jYWxlKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9JMThOX1NVUFBPUlQpIHtcbiAgICAgICAgY29uc3QgcGF0aG5hbWUgPSBwYXRoTm9RdWVyeUhhc2gocGF0aCk7XG4gICAgICAgIGNvbnN0IHBhdGhMb3dlciA9IHBhdGhuYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGNvbnN0IGxvY2FsZUxvd2VyID0gbG9jYWxlICYmIGxvY2FsZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICByZXR1cm4gbG9jYWxlICYmIChwYXRoTG93ZXIuc3RhcnRzV2l0aCgnLycgKyBsb2NhbGVMb3dlciArICcvJykgfHwgcGF0aExvd2VyID09PSAnLycgKyBsb2NhbGVMb3dlcikgPyAocGF0aG5hbWUubGVuZ3RoID09PSBsb2NhbGUubGVuZ3RoICsgMSA/ICcvJyA6ICcnKSArIHBhdGguc3Vic3RyKGxvY2FsZS5sZW5ndGggKyAxKSA6IHBhdGg7XG4gICAgfVxuICAgIHJldHVybiBwYXRoO1xufVxuZnVuY3Rpb24gcGF0aE5vUXVlcnlIYXNoKHBhdGgpIHtcbiAgICBjb25zdCBxdWVyeUluZGV4ID0gcGF0aC5pbmRleE9mKCc/Jyk7XG4gICAgY29uc3QgaGFzaEluZGV4ID0gcGF0aC5pbmRleE9mKCcjJyk7XG4gICAgaWYgKHF1ZXJ5SW5kZXggPiAtMSB8fCBoYXNoSW5kZXggPiAtMSkge1xuICAgICAgICBwYXRoID0gcGF0aC5zdWJzdHJpbmcoMCwgcXVlcnlJbmRleCA+IC0xID8gcXVlcnlJbmRleCA6IGhhc2hJbmRleCk7XG4gICAgfVxuICAgIHJldHVybiBwYXRoO1xufVxuZnVuY3Rpb24gaGFzQmFzZVBhdGgocGF0aCkge1xuICAgIHBhdGggPSBwYXRoTm9RdWVyeUhhc2gocGF0aCk7XG4gICAgcmV0dXJuIHBhdGggPT09IGJhc2VQYXRoIHx8IHBhdGguc3RhcnRzV2l0aChiYXNlUGF0aCArICcvJyk7XG59XG5mdW5jdGlvbiBhZGRCYXNlUGF0aChwYXRoKSB7XG4gICAgLy8gd2Ugb25seSBhZGQgdGhlIGJhc2VwYXRoIG9uIHJlbGF0aXZlIHVybHNcbiAgICByZXR1cm4gYWRkUGF0aFByZWZpeChwYXRoLCBiYXNlUGF0aCk7XG59XG5mdW5jdGlvbiBkZWxCYXNlUGF0aChwYXRoKSB7XG4gICAgcGF0aCA9IHBhdGguc2xpY2UoYmFzZVBhdGgubGVuZ3RoKTtcbiAgICBpZiAoIXBhdGguc3RhcnRzV2l0aCgnLycpKSBwYXRoID0gYC8ke3BhdGh9YDtcbiAgICByZXR1cm4gcGF0aDtcbn1cbmZ1bmN0aW9uIGlzTG9jYWxVUkwodXJsKSB7XG4gICAgLy8gcHJldmVudCBhIGh5ZHJhdGlvbiBtaXNtYXRjaCBvbiBocmVmIGZvciB1cmwgd2l0aCBhbmNob3IgcmVmc1xuICAgIGlmICh1cmwuc3RhcnRzV2l0aCgnLycpIHx8IHVybC5zdGFydHNXaXRoKCcjJykgfHwgdXJsLnN0YXJ0c1dpdGgoJz8nKSkgcmV0dXJuIHRydWU7XG4gICAgdHJ5IHtcbiAgICAgICAgLy8gYWJzb2x1dGUgdXJscyBjYW4gYmUgbG9jYWwgaWYgdGhleSBhcmUgb24gdGhlIHNhbWUgb3JpZ2luXG4gICAgICAgIGNvbnN0IGxvY2F0aW9uT3JpZ2luID0gKDAsIF91dGlscykuZ2V0TG9jYXRpb25PcmlnaW4oKTtcbiAgICAgICAgY29uc3QgcmVzb2x2ZWQgPSBuZXcgVVJMKHVybCwgbG9jYXRpb25PcmlnaW4pO1xuICAgICAgICByZXR1cm4gcmVzb2x2ZWQub3JpZ2luID09PSBsb2NhdGlvbk9yaWdpbiAmJiBoYXNCYXNlUGF0aChyZXNvbHZlZC5wYXRobmFtZSk7XG4gICAgfSBjYXRjaCAoXykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuZnVuY3Rpb24gaW50ZXJwb2xhdGVBcyhyb3V0ZSwgYXNQYXRobmFtZSwgcXVlcnkpIHtcbiAgICBsZXQgaW50ZXJwb2xhdGVkUm91dGUgPSAnJztcbiAgICBjb25zdCBkeW5hbWljUmVnZXggPSAoMCwgX3JvdXRlUmVnZXgpLmdldFJvdXRlUmVnZXgocm91dGUpO1xuICAgIGNvbnN0IGR5bmFtaWNHcm91cHMgPSBkeW5hbWljUmVnZXguZ3JvdXBzO1xuICAgIGNvbnN0IGR5bmFtaWNNYXRjaGVzID0gLy8gVHJ5IHRvIG1hdGNoIHRoZSBkeW5hbWljIHJvdXRlIGFnYWluc3QgdGhlIGFzUGF0aFxuICAgIChhc1BhdGhuYW1lICE9PSByb3V0ZSA/ICgwLCBfcm91dGVNYXRjaGVyKS5nZXRSb3V0ZU1hdGNoZXIoZHluYW1pY1JlZ2V4KShhc1BhdGhuYW1lKSA6ICcnKSB8fCAvLyBGYWxsIGJhY2sgdG8gcmVhZGluZyB0aGUgdmFsdWVzIGZyb20gdGhlIGhyZWZcbiAgICAvLyBUT0RPOiBzaG91bGQgdGhpcyB0YWtlIHByaW9yaXR5OyBhbHNvIG5lZWQgdG8gY2hhbmdlIGluIHRoZSByb3V0ZXIuXG4gICAgcXVlcnk7XG4gICAgaW50ZXJwb2xhdGVkUm91dGUgPSByb3V0ZTtcbiAgICBjb25zdCBwYXJhbXMgPSBPYmplY3Qua2V5cyhkeW5hbWljR3JvdXBzKTtcbiAgICBpZiAoIXBhcmFtcy5ldmVyeSgocGFyYW0pPT57XG4gICAgICAgIGxldCB2YWx1ZSA9IGR5bmFtaWNNYXRjaGVzW3BhcmFtXSB8fCAnJztcbiAgICAgICAgY29uc3QgeyByZXBlYXQgLCBvcHRpb25hbCAgfSA9IGR5bmFtaWNHcm91cHNbcGFyYW1dO1xuICAgICAgICAvLyBzdXBwb3J0IHNpbmdsZS1sZXZlbCBjYXRjaC1hbGxcbiAgICAgICAgLy8gVE9ETzogbW9yZSByb2J1c3QgaGFuZGxpbmcgZm9yIHVzZXItZXJyb3IgKHBhc3NpbmcgYC9gKVxuICAgICAgICBsZXQgcmVwbGFjZWQgPSBgWyR7cmVwZWF0ID8gJy4uLicgOiAnJ30ke3BhcmFtfV1gO1xuICAgICAgICBpZiAob3B0aW9uYWwpIHtcbiAgICAgICAgICAgIHJlcGxhY2VkID0gYCR7IXZhbHVlID8gJy8nIDogJyd9WyR7cmVwbGFjZWR9XWA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlcGVhdCAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHZhbHVlID0gW1xuICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgXTtcbiAgICAgICAgcmV0dXJuIChvcHRpb25hbCB8fCBwYXJhbSBpbiBkeW5hbWljTWF0Y2hlcykgJiYgLy8gSW50ZXJwb2xhdGUgZ3JvdXAgaW50byBkYXRhIFVSTCBpZiBwcmVzZW50XG4gICAgICAgIChpbnRlcnBvbGF0ZWRSb3V0ZSA9IGludGVycG9sYXRlZFJvdXRlLnJlcGxhY2UocmVwbGFjZWQsIHJlcGVhdCA/IHZhbHVlLm1hcCgvLyB0aGVzZSB2YWx1ZXMgc2hvdWxkIGJlIGZ1bGx5IGVuY29kZWQgaW5zdGVhZCBvZiBqdXN0XG4gICAgICAgIC8vIHBhdGggZGVsaW1pdGVyIGVzY2FwZWQgc2luY2UgdGhleSBhcmUgYmVpbmcgaW5zZXJ0ZWRcbiAgICAgICAgLy8gaW50byB0aGUgVVJMIGFuZCB3ZSBleHBlY3QgVVJMIGVuY29kZWQgc2VnbWVudHNcbiAgICAgICAgLy8gd2hlbiBwYXJzaW5nIGR5bmFtaWMgcm91dGUgcGFyYW1zXG4gICAgICAgIChzZWdtZW50KT0+ZW5jb2RlVVJJQ29tcG9uZW50KHNlZ21lbnQpXG4gICAgICAgICkuam9pbignLycpIDogZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKSkgfHwgJy8nKTtcbiAgICB9KSkge1xuICAgICAgICBpbnRlcnBvbGF0ZWRSb3V0ZSA9ICcnIC8vIGRpZCBub3Qgc2F0aXNmeSBhbGwgcmVxdWlyZW1lbnRzXG4gICAgICAgIDtcbiAgICAvLyBuLmIuIFdlIGlnbm9yZSB0aGlzIGVycm9yIGJlY2F1c2Ugd2UgaGFuZGxlIHdhcm5pbmcgZm9yIHRoaXMgY2FzZSBpblxuICAgIC8vIGRldmVsb3BtZW50IGluIHRoZSBgPExpbms+YCBjb21wb25lbnQgZGlyZWN0bHkuXG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHBhcmFtcyxcbiAgICAgICAgcmVzdWx0OiBpbnRlcnBvbGF0ZWRSb3V0ZVxuICAgIH07XG59XG5mdW5jdGlvbiBvbWl0UGFybXNGcm9tUXVlcnkocXVlcnksIHBhcmFtcykge1xuICAgIGNvbnN0IGZpbHRlcmVkUXVlcnkgPSB7XG4gICAgfTtcbiAgICBPYmplY3Qua2V5cyhxdWVyeSkuZm9yRWFjaCgoa2V5KT0+e1xuICAgICAgICBpZiAoIXBhcmFtcy5pbmNsdWRlcyhrZXkpKSB7XG4gICAgICAgICAgICBmaWx0ZXJlZFF1ZXJ5W2tleV0gPSBxdWVyeVtrZXldO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGZpbHRlcmVkUXVlcnk7XG59XG5mdW5jdGlvbiByZXNvbHZlSHJlZihyb3V0ZXIsIGhyZWYsIHJlc29sdmVBcykge1xuICAgIC8vIHdlIHVzZSBhIGR1bW15IGJhc2UgdXJsIGZvciByZWxhdGl2ZSB1cmxzXG4gICAgbGV0IGJhc2U7XG4gICAgbGV0IHVybEFzU3RyaW5nID0gdHlwZW9mIGhyZWYgPT09ICdzdHJpbmcnID8gaHJlZiA6ICgwLCBfdXRpbHMpLmZvcm1hdFdpdGhWYWxpZGF0aW9uKGhyZWYpO1xuICAgIC8vIHJlcGVhdGVkIHNsYXNoZXMgYW5kIGJhY2tzbGFzaGVzIGluIHRoZSBVUkwgYXJlIGNvbnNpZGVyZWRcbiAgICAvLyBpbnZhbGlkIGFuZCB3aWxsIG5ldmVyIG1hdGNoIGEgTmV4dC5qcyBwYWdlL2ZpbGVcbiAgICBjb25zdCB1cmxQcm90b01hdGNoID0gdXJsQXNTdHJpbmcubWF0Y2goL15bYS16QS1aXXsxLH06XFwvXFwvLyk7XG4gICAgY29uc3QgdXJsQXNTdHJpbmdOb1Byb3RvID0gdXJsUHJvdG9NYXRjaCA/IHVybEFzU3RyaW5nLnN1YnN0cih1cmxQcm90b01hdGNoWzBdLmxlbmd0aCkgOiB1cmxBc1N0cmluZztcbiAgICBjb25zdCB1cmxQYXJ0cyA9IHVybEFzU3RyaW5nTm9Qcm90by5zcGxpdCgnPycpO1xuICAgIGlmICgodXJsUGFydHNbMF0gfHwgJycpLm1hdGNoKC8oXFwvXFwvfFxcXFwpLykpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgSW52YWxpZCBocmVmIHBhc3NlZCB0byBuZXh0L3JvdXRlcjogJHt1cmxBc1N0cmluZ30sIHJlcGVhdGVkIGZvcndhcmQtc2xhc2hlcyAoLy8pIG9yIGJhY2tzbGFzaGVzIFxcXFwgYXJlIG5vdCB2YWxpZCBpbiB0aGUgaHJlZmApO1xuICAgICAgICBjb25zdCBub3JtYWxpemVkVXJsID0gKDAsIF91dGlscykubm9ybWFsaXplUmVwZWF0ZWRTbGFzaGVzKHVybEFzU3RyaW5nTm9Qcm90byk7XG4gICAgICAgIHVybEFzU3RyaW5nID0gKHVybFByb3RvTWF0Y2ggPyB1cmxQcm90b01hdGNoWzBdIDogJycpICsgbm9ybWFsaXplZFVybDtcbiAgICB9XG4gICAgLy8gUmV0dXJuIGJlY2F1c2UgaXQgY2Fubm90IGJlIHJvdXRlZCBieSB0aGUgTmV4dC5qcyByb3V0ZXJcbiAgICBpZiAoIWlzTG9jYWxVUkwodXJsQXNTdHJpbmcpKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlQXMgPyBbXG4gICAgICAgICAgICB1cmxBc1N0cmluZ1xuICAgICAgICBdIDogdXJsQXNTdHJpbmc7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIGJhc2UgPSBuZXcgVVJMKHVybEFzU3RyaW5nLnN0YXJ0c1dpdGgoJyMnKSA/IHJvdXRlci5hc1BhdGggOiByb3V0ZXIucGF0aG5hbWUsICdodHRwOi8vbicpO1xuICAgIH0gY2F0Y2ggKF8pIHtcbiAgICAgICAgLy8gZmFsbGJhY2sgdG8gLyBmb3IgaW52YWxpZCBhc1BhdGggdmFsdWVzIGUuZy4gLy9cbiAgICAgICAgYmFzZSA9IG5ldyBVUkwoJy8nLCAnaHR0cDovL24nKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZmluYWxVcmwgPSBuZXcgVVJMKHVybEFzU3RyaW5nLCBiYXNlKTtcbiAgICAgICAgZmluYWxVcmwucGF0aG5hbWUgPSAoMCwgX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2gpLm5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoKGZpbmFsVXJsLnBhdGhuYW1lKTtcbiAgICAgICAgbGV0IGludGVycG9sYXRlZEFzID0gJyc7XG4gICAgICAgIGlmICgoMCwgX2lzRHluYW1pYykuaXNEeW5hbWljUm91dGUoZmluYWxVcmwucGF0aG5hbWUpICYmIGZpbmFsVXJsLnNlYXJjaFBhcmFtcyAmJiByZXNvbHZlQXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHF1ZXJ5ID0gKDAsIF9xdWVyeXN0cmluZykuc2VhcmNoUGFyYW1zVG9VcmxRdWVyeShmaW5hbFVybC5zZWFyY2hQYXJhbXMpO1xuICAgICAgICAgICAgY29uc3QgeyByZXN1bHQgLCBwYXJhbXMgIH0gPSBpbnRlcnBvbGF0ZUFzKGZpbmFsVXJsLnBhdGhuYW1lLCBmaW5hbFVybC5wYXRobmFtZSwgcXVlcnkpO1xuICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgIGludGVycG9sYXRlZEFzID0gKDAsIF91dGlscykuZm9ybWF0V2l0aFZhbGlkYXRpb24oe1xuICAgICAgICAgICAgICAgICAgICBwYXRobmFtZTogcmVzdWx0LFxuICAgICAgICAgICAgICAgICAgICBoYXNoOiBmaW5hbFVybC5oYXNoLFxuICAgICAgICAgICAgICAgICAgICBxdWVyeTogb21pdFBhcm1zRnJvbVF1ZXJ5KHF1ZXJ5LCBwYXJhbXMpXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gaWYgdGhlIG9yaWdpbiBkaWRuJ3QgY2hhbmdlLCBpdCBtZWFucyB3ZSByZWNlaXZlZCBhIHJlbGF0aXZlIGhyZWZcbiAgICAgICAgY29uc3QgcmVzb2x2ZWRIcmVmID0gZmluYWxVcmwub3JpZ2luID09PSBiYXNlLm9yaWdpbiA/IGZpbmFsVXJsLmhyZWYuc2xpY2UoZmluYWxVcmwub3JpZ2luLmxlbmd0aCkgOiBmaW5hbFVybC5ocmVmO1xuICAgICAgICByZXR1cm4gcmVzb2x2ZUFzID8gW1xuICAgICAgICAgICAgcmVzb2x2ZWRIcmVmLFxuICAgICAgICAgICAgaW50ZXJwb2xhdGVkQXMgfHwgcmVzb2x2ZWRIcmVmXG4gICAgICAgIF0gOiByZXNvbHZlZEhyZWY7XG4gICAgfSBjYXRjaCAoXzEpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVBcyA/IFtcbiAgICAgICAgICAgIHVybEFzU3RyaW5nXG4gICAgICAgIF0gOiB1cmxBc1N0cmluZztcbiAgICB9XG59XG5mdW5jdGlvbiBzdHJpcE9yaWdpbih1cmwpIHtcbiAgICBjb25zdCBvcmlnaW4gPSAoMCwgX3V0aWxzKS5nZXRMb2NhdGlvbk9yaWdpbigpO1xuICAgIHJldHVybiB1cmwuc3RhcnRzV2l0aChvcmlnaW4pID8gdXJsLnN1YnN0cmluZyhvcmlnaW4ubGVuZ3RoKSA6IHVybDtcbn1cbmZ1bmN0aW9uIHByZXBhcmVVcmxBcyhyb3V0ZXIsIHVybCwgYXMpIHtcbiAgICAvLyBJZiB1cmwgYW5kIGFzIHByb3ZpZGVkIGFzIGFuIG9iamVjdCByZXByZXNlbnRhdGlvbixcbiAgICAvLyB3ZSdsbCBmb3JtYXQgdGhlbSBpbnRvIHRoZSBzdHJpbmcgdmVyc2lvbiBoZXJlLlxuICAgIGxldCBbcmVzb2x2ZWRIcmVmLCByZXNvbHZlZEFzXSA9IHJlc29sdmVIcmVmKHJvdXRlciwgdXJsLCB0cnVlKTtcbiAgICBjb25zdCBvcmlnaW4gPSAoMCwgX3V0aWxzKS5nZXRMb2NhdGlvbk9yaWdpbigpO1xuICAgIGNvbnN0IGhyZWZIYWRPcmlnaW4gPSByZXNvbHZlZEhyZWYuc3RhcnRzV2l0aChvcmlnaW4pO1xuICAgIGNvbnN0IGFzSGFkT3JpZ2luID0gcmVzb2x2ZWRBcyAmJiByZXNvbHZlZEFzLnN0YXJ0c1dpdGgob3JpZ2luKTtcbiAgICByZXNvbHZlZEhyZWYgPSBzdHJpcE9yaWdpbihyZXNvbHZlZEhyZWYpO1xuICAgIHJlc29sdmVkQXMgPSByZXNvbHZlZEFzID8gc3RyaXBPcmlnaW4ocmVzb2x2ZWRBcykgOiByZXNvbHZlZEFzO1xuICAgIGNvbnN0IHByZXBhcmVkVXJsID0gaHJlZkhhZE9yaWdpbiA/IHJlc29sdmVkSHJlZiA6IGFkZEJhc2VQYXRoKHJlc29sdmVkSHJlZik7XG4gICAgY29uc3QgcHJlcGFyZWRBcyA9IGFzID8gc3RyaXBPcmlnaW4ocmVzb2x2ZUhyZWYocm91dGVyLCBhcykpIDogcmVzb2x2ZWRBcyB8fCByZXNvbHZlZEhyZWY7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdXJsOiBwcmVwYXJlZFVybCxcbiAgICAgICAgYXM6IGFzSGFkT3JpZ2luID8gcHJlcGFyZWRBcyA6IGFkZEJhc2VQYXRoKHByZXBhcmVkQXMpXG4gICAgfTtcbn1cbmZ1bmN0aW9uIHJlc29sdmVEeW5hbWljUm91dGUocGF0aG5hbWUsIHBhZ2VzKSB7XG4gICAgY29uc3QgY2xlYW5QYXRobmFtZSA9ICgwLCBfbm9ybWFsaXplVHJhaWxpbmdTbGFzaCkucmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2goKDAsIF9kZW5vcm1hbGl6ZVBhZ2VQYXRoKS5kZW5vcm1hbGl6ZVBhZ2VQYXRoKHBhdGhuYW1lKSk7XG4gICAgaWYgKGNsZWFuUGF0aG5hbWUgPT09ICcvNDA0JyB8fCBjbGVhblBhdGhuYW1lID09PSAnL19lcnJvcicpIHtcbiAgICAgICAgcmV0dXJuIHBhdGhuYW1lO1xuICAgIH1cbiAgICAvLyBoYW5kbGUgcmVzb2x2aW5nIGhyZWYgZm9yIGR5bmFtaWMgcm91dGVzXG4gICAgaWYgKCFwYWdlcy5pbmNsdWRlcyhjbGVhblBhdGhuYW1lKSkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgYXJyYXktY2FsbGJhY2stcmV0dXJuXG4gICAgICAgIHBhZ2VzLnNvbWUoKHBhZ2UpPT57XG4gICAgICAgICAgICBpZiAoKDAsIF9pc0R5bmFtaWMpLmlzRHluYW1pY1JvdXRlKHBhZ2UpICYmICgwLCBfcm91dGVSZWdleCkuZ2V0Um91dGVSZWdleChwYWdlKS5yZS50ZXN0KGNsZWFuUGF0aG5hbWUpKSB7XG4gICAgICAgICAgICAgICAgcGF0aG5hbWUgPSBwYWdlO1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuICgwLCBfbm9ybWFsaXplVHJhaWxpbmdTbGFzaCkucmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2gocGF0aG5hbWUpO1xufVxuY29uc3QgbWFudWFsU2Nyb2xsUmVzdG9yYXRpb24gPSBwcm9jZXNzLmVudi5fX05FWFRfU0NST0xMX1JFU1RPUkFUSU9OICYmIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmICdzY3JvbGxSZXN0b3JhdGlvbicgaW4gd2luZG93Lmhpc3RvcnkgJiYgISFmdW5jdGlvbigpIHtcbiAgICB0cnkge1xuICAgICAgICBsZXQgdiA9ICdfX25leHQnO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VxdWVuY2VzXG4gICAgICAgIHJldHVybiBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHYsIHYpLCBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKHYpLCB0cnVlO1xuICAgIH0gY2F0Y2ggKG4pIHtcbiAgICB9XG59KCk7XG5jb25zdCBTU0dfREFUQV9OT1RfRk9VTkQgPSBTeW1ib2woJ1NTR19EQVRBX05PVF9GT1VORCcpO1xuZnVuY3Rpb24gZmV0Y2hSZXRyeSh1cmwsIGF0dGVtcHRzLCBvcHRzKSB7XG4gICAgcmV0dXJuIGZldGNoKHVybCwge1xuICAgICAgICAvLyBDb29raWVzIGFyZSByZXF1aXJlZCB0byBiZSBwcmVzZW50IGZvciBOZXh0LmpzJyBTU0cgXCJQcmV2aWV3IE1vZGVcIi5cbiAgICAgICAgLy8gQ29va2llcyBtYXkgYWxzbyBiZSByZXF1aXJlZCBmb3IgYGdldFNlcnZlclNpZGVQcm9wc2AuXG4gICAgICAgIC8vXG4gICAgICAgIC8vID4gYGZldGNoYCB3b27igJl0IHNlbmQgY29va2llcywgdW5sZXNzIHlvdSBzZXQgdGhlIGNyZWRlbnRpYWxzIGluaXRcbiAgICAgICAgLy8gPiBvcHRpb24uXG4gICAgICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9GZXRjaF9BUEkvVXNpbmdfRmV0Y2hcbiAgICAgICAgLy9cbiAgICAgICAgLy8gPiBGb3IgbWF4aW11bSBicm93c2VyIGNvbXBhdGliaWxpdHkgd2hlbiBpdCBjb21lcyB0byBzZW5kaW5nICZcbiAgICAgICAgLy8gPiByZWNlaXZpbmcgY29va2llcywgYWx3YXlzIHN1cHBseSB0aGUgYGNyZWRlbnRpYWxzOiAnc2FtZS1vcmlnaW4nYFxuICAgICAgICAvLyA+IG9wdGlvbiBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gdGhlIGRlZmF1bHQuXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9naXRodWIvZmV0Y2gjY2F2ZWF0c1xuICAgICAgICBjcmVkZW50aWFsczogJ3NhbWUtb3JpZ2luJ1xuICAgIH0pLnRoZW4oKHJlcyk9PntcbiAgICAgICAgaWYgKCFyZXMub2spIHtcbiAgICAgICAgICAgIGlmIChhdHRlbXB0cyA+IDEgJiYgcmVzLnN0YXR1cyA+PSA1MDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmV0Y2hSZXRyeSh1cmwsIGF0dGVtcHRzIC0gMSwgb3B0cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocmVzLnN0YXR1cyA9PT0gNDA0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlcy5qc29uKCkudGhlbigoZGF0YSk9PntcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEubm90Rm91bmQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90Rm91bmQ6IFNTR19EQVRBX05PVF9GT1VORFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBsb2FkIHN0YXRpYyBwcm9wc2ApO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gbG9hZCBzdGF0aWMgcHJvcHNgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3B0cy50ZXh0ID8gcmVzLnRleHQoKSA6IHJlcy5qc29uKCk7XG4gICAgfSk7XG59XG5mdW5jdGlvbiBmZXRjaE5leHREYXRhKGRhdGFIcmVmLCBpc1NlcnZlclJlbmRlciwgdGV4dCwgaW5mbGlnaHRDYWNoZSwgcGVyc2lzdENhY2hlKSB7XG4gICAgY29uc3QgeyBocmVmOiBjYWNoZUtleSAgfSA9IG5ldyBVUkwoZGF0YUhyZWYsIHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcbiAgICBpZiAoaW5mbGlnaHRDYWNoZVtjYWNoZUtleV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gaW5mbGlnaHRDYWNoZVtjYWNoZUtleV07XG4gICAgfVxuICAgIHJldHVybiBpbmZsaWdodENhY2hlW2NhY2hlS2V5XSA9IGZldGNoUmV0cnkoZGF0YUhyZWYsIGlzU2VydmVyUmVuZGVyID8gMyA6IDEsIHtcbiAgICAgICAgdGV4dFxuICAgIH0pLmNhdGNoKChlcnIpPT57XG4gICAgICAgIC8vIFdlIHNob3VsZCBvbmx5IHRyaWdnZXIgYSBzZXJ2ZXItc2lkZSB0cmFuc2l0aW9uIGlmIHRoaXMgd2FzIGNhdXNlZFxuICAgICAgICAvLyBvbiBhIGNsaWVudC1zaWRlIHRyYW5zaXRpb24uIE90aGVyd2lzZSwgd2UnZCBnZXQgaW50byBhbiBpbmZpbml0ZVxuICAgICAgICAvLyBsb29wLlxuICAgICAgICBpZiAoIWlzU2VydmVyUmVuZGVyKSB7XG4gICAgICAgICAgICAoMCwgX3JvdXRlTG9hZGVyKS5tYXJrQXNzZXRFcnJvcihlcnIpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IGVycjtcbiAgICB9KS50aGVuKChkYXRhKT0+e1xuICAgICAgICBpZiAoIXBlcnNpc3RDYWNoZSB8fCBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICBkZWxldGUgaW5mbGlnaHRDYWNoZVtjYWNoZUtleV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfSkuY2F0Y2goKGVycik9PntcbiAgICAgICAgZGVsZXRlIGluZmxpZ2h0Q2FjaGVbY2FjaGVLZXldO1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgfSk7XG59XG5jbGFzcyBSb3V0ZXIge1xuICAgIGNvbnN0cnVjdG9yKHBhdGhuYW1lLCBxdWVyeSwgYXMsIHsgaW5pdGlhbFByb3BzICwgcGFnZUxvYWRlciAsIEFwcCAsIHdyYXBBcHAgLCBDb21wb25lbnQgLCBlcnIgLCBzdWJzY3JpcHRpb24gLCBpc0ZhbGxiYWNrICwgbG9jYWxlICwgbG9jYWxlcyAsIGRlZmF1bHRMb2NhbGUgLCBkb21haW5Mb2NhbGVzICwgaXNQcmV2aWV3ICB9KXtcbiAgICAgICAgLy8gU3RhdGljIERhdGEgQ2FjaGVcbiAgICAgICAgdGhpcy5zZGMgPSB7XG4gICAgICAgIH07XG4gICAgICAgIC8vIEluLWZsaWdodCBTZXJ2ZXIgRGF0YSBSZXF1ZXN0cywgZm9yIGRlZHVwaW5nXG4gICAgICAgIHRoaXMuc2RyID0ge1xuICAgICAgICB9O1xuICAgICAgICAvLyBJbi1mbGlnaHQgbWlkZGxld2FyZSBwcmVmbGlnaHQgcmVxdWVzdHNcbiAgICAgICAgdGhpcy5zZGUgPSB7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuX2lkeCA9IDA7XG4gICAgICAgIHRoaXMub25Qb3BTdGF0ZSA9IChlKT0+e1xuICAgICAgICAgICAgY29uc3Qgc3RhdGUgPSBlLnN0YXRlO1xuICAgICAgICAgICAgaWYgKCFzdGF0ZSkge1xuICAgICAgICAgICAgICAgIC8vIFdlIGdldCBzdGF0ZSBhcyB1bmRlZmluZWQgZm9yIHR3byByZWFzb25zLlxuICAgICAgICAgICAgICAgIC8vICAxLiBXaXRoIG9sZGVyIHNhZmFyaSAoPCA4KSBhbmQgb2xkZXIgY2hyb21lICg8IDM0KVxuICAgICAgICAgICAgICAgIC8vICAyLiBXaGVuIHRoZSBVUkwgY2hhbmdlZCB3aXRoICNcbiAgICAgICAgICAgICAgICAvL1xuICAgICAgICAgICAgICAgIC8vIEluIHRoZSBib3RoIGNhc2VzLCB3ZSBkb24ndCBuZWVkIHRvIHByb2NlZWQgYW5kIGNoYW5nZSB0aGUgcm91dGUuXG4gICAgICAgICAgICAgICAgLy8gKGFzIGl0J3MgYWxyZWFkeSBjaGFuZ2VkKVxuICAgICAgICAgICAgICAgIC8vIEJ1dCB3ZSBjYW4gc2ltcGx5IHJlcGxhY2UgdGhlIHN0YXRlIHdpdGggdGhlIG5ldyBjaGFuZ2VzLlxuICAgICAgICAgICAgICAgIC8vIEFjdHVhbGx5LCBmb3IgKDEpIHdlIGRvbid0IG5lZWQgdG8gbm90aGluZy4gQnV0IGl0J3MgaGFyZCB0byBkZXRlY3QgdGhhdCBldmVudC5cbiAgICAgICAgICAgICAgICAvLyBTbywgZG9pbmcgdGhlIGZvbGxvd2luZyBmb3IgKDEpIGRvZXMgbm8gaGFybS5cbiAgICAgICAgICAgICAgICBjb25zdCB7IHBhdGhuYW1lICwgcXVlcnkgIH0gPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlU3RhdGUoJ3JlcGxhY2VTdGF0ZScsICgwLCBfdXRpbHMpLmZvcm1hdFdpdGhWYWxpZGF0aW9uKHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWU6IGFkZEJhc2VQYXRoKHBhdGhuYW1lKSxcbiAgICAgICAgICAgICAgICAgICAgcXVlcnlcbiAgICAgICAgICAgICAgICB9KSwgKDAsIF91dGlscykuZ2V0VVJMKCkpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghc3RhdGUuX19OKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IGZvcmNlZFNjcm9sbDtcbiAgICAgICAgICAgIGNvbnN0IHsgdXJsICwgYXMgLCBvcHRpb25zICwgaWR4ICB9ID0gc3RhdGU7XG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX1NDUk9MTF9SRVNUT1JBVElPTikge1xuICAgICAgICAgICAgICAgIGlmIChtYW51YWxTY3JvbGxSZXN0b3JhdGlvbikge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5faWR4ICE9PSBpZHgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNuYXBzaG90IGN1cnJlbnQgc2Nyb2xsIHBvc2l0aW9uOlxuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdfX25leHRfc2Nyb2xsXycgKyB0aGlzLl9pZHgsIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDogc2VsZi5wYWdlWE9mZnNldCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeTogc2VsZi5wYWdlWU9mZnNldFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlc3RvcmUgb2xkIHNjcm9sbCBwb3NpdGlvbjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdiA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ19fbmV4dF9zY3JvbGxfJyArIGlkeCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yY2VkU2Nyb2xsID0gSlNPTi5wYXJzZSh2KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JjZWRTY3JvbGwgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHg6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHk6IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5faWR4ID0gaWR4O1xuICAgICAgICAgICAgY29uc3QgeyBwYXRobmFtZSAgfSA9ICgwLCBfcGFyc2VSZWxhdGl2ZVVybCkucGFyc2VSZWxhdGl2ZVVybCh1cmwpO1xuICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHdlIGRvbid0IHJlLXJlbmRlciBvbiBpbml0aWFsIGxvYWQsXG4gICAgICAgICAgICAvLyBjYW4gYmUgY2F1c2VkIGJ5IG5hdmlnYXRpbmcgYmFjayBmcm9tIGFuIGV4dGVybmFsIHNpdGVcbiAgICAgICAgICAgIGlmICh0aGlzLmlzU3NyICYmIGFzID09PSB0aGlzLmFzUGF0aCAmJiBwYXRobmFtZSA9PT0gdGhpcy5wYXRobmFtZSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIElmIHRoZSBkb3duc3RyZWFtIGFwcGxpY2F0aW9uIHJldHVybnMgZmFsc3ksIHJldHVybi5cbiAgICAgICAgICAgIC8vIFRoZXkgd2lsbCB0aGVuIGJlIHJlc3BvbnNpYmxlIGZvciBoYW5kbGluZyB0aGUgZXZlbnQuXG4gICAgICAgICAgICBpZiAodGhpcy5fYnBzICYmICF0aGlzLl9icHMoc3RhdGUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jaGFuZ2UoJ3JlcGxhY2VTdGF0ZScsIHVybCwgYXMsIE9iamVjdC5hc3NpZ24oe1xuICAgICAgICAgICAgfSwgb3B0aW9ucywge1xuICAgICAgICAgICAgICAgIHNoYWxsb3c6IG9wdGlvbnMuc2hhbGxvdyAmJiB0aGlzLl9zaGFsbG93LFxuICAgICAgICAgICAgICAgIGxvY2FsZTogb3B0aW9ucy5sb2NhbGUgfHwgdGhpcy5kZWZhdWx0TG9jYWxlXG4gICAgICAgICAgICB9KSwgZm9yY2VkU2Nyb2xsKTtcbiAgICAgICAgfTtcbiAgICAgICAgLy8gcmVwcmVzZW50cyB0aGUgY3VycmVudCBjb21wb25lbnQga2V5XG4gICAgICAgIHRoaXMucm91dGUgPSAoMCwgX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2gpLnJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoKHBhdGhuYW1lKTtcbiAgICAgICAgLy8gc2V0IHVwIHRoZSBjb21wb25lbnQgY2FjaGUgKGJ5IHJvdXRlIGtleXMpXG4gICAgICAgIHRoaXMuY29tcG9uZW50cyA9IHtcbiAgICAgICAgfTtcbiAgICAgICAgLy8gV2Ugc2hvdWxkIG5vdCBrZWVwIHRoZSBjYWNoZSwgaWYgdGhlcmUncyBhbiBlcnJvclxuICAgICAgICAvLyBPdGhlcndpc2UsIHRoaXMgY2F1c2UgaXNzdWVzIHdoZW4gd2hlbiBnb2luZyBiYWNrIGFuZFxuICAgICAgICAvLyBjb21lIGFnYWluIHRvIHRoZSBlcnJvcmVkIHBhZ2UuXG4gICAgICAgIGlmIChwYXRobmFtZSAhPT0gJy9fZXJyb3InKSB7XG4gICAgICAgICAgICB2YXIgcmVmO1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRzW3RoaXMucm91dGVdID0ge1xuICAgICAgICAgICAgICAgIENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBpbml0aWFsOiB0cnVlLFxuICAgICAgICAgICAgICAgIHByb3BzOiBpbml0aWFsUHJvcHMsXG4gICAgICAgICAgICAgICAgZXJyLFxuICAgICAgICAgICAgICAgIF9fTl9TU0c6IGluaXRpYWxQcm9wcyAmJiBpbml0aWFsUHJvcHMuX19OX1NTRyxcbiAgICAgICAgICAgICAgICBfX05fU1NQOiBpbml0aWFsUHJvcHMgJiYgaW5pdGlhbFByb3BzLl9fTl9TU1AsXG4gICAgICAgICAgICAgICAgX19OX1JTQzogISEoKHJlZiA9IENvbXBvbmVudCkgPT09IG51bGwgfHwgcmVmID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZWYuX19uZXh0X3JzY19fKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbXBvbmVudHNbJy9fYXBwJ10gPSB7XG4gICAgICAgICAgICBDb21wb25lbnQ6IEFwcCxcbiAgICAgICAgICAgIHN0eWxlU2hlZXRzOiBbXVxuICAgICAgICB9O1xuICAgICAgICAvLyBCYWNrd2FyZHMgY29tcGF0IGZvciBSb3V0ZXIucm91dGVyLmV2ZW50c1xuICAgICAgICAvLyBUT0RPOiBTaG91bGQgYmUgcmVtb3ZlIHRoZSBmb2xsb3dpbmcgbWFqb3IgdmVyc2lvbiBhcyBpdCB3YXMgbmV2ZXIgZG9jdW1lbnRlZFxuICAgICAgICB0aGlzLmV2ZW50cyA9IFJvdXRlci5ldmVudHM7XG4gICAgICAgIHRoaXMucGFnZUxvYWRlciA9IHBhZ2VMb2FkZXI7XG4gICAgICAgIHRoaXMucGF0aG5hbWUgPSBwYXRobmFtZTtcbiAgICAgICAgdGhpcy5xdWVyeSA9IHF1ZXJ5O1xuICAgICAgICAvLyBpZiBhdXRvIHByZXJlbmRlcmVkIGFuZCBkeW5hbWljIHJvdXRlIHdhaXQgdG8gdXBkYXRlIGFzUGF0aFxuICAgICAgICAvLyB1bnRpbCBhZnRlciBtb3VudCB0byBwcmV2ZW50IGh5ZHJhdGlvbiBtaXNtYXRjaFxuICAgICAgICBjb25zdCBhdXRvRXhwb3J0RHluYW1pYyA9ICgwLCBfaXNEeW5hbWljKS5pc0R5bmFtaWNSb3V0ZShwYXRobmFtZSkgJiYgc2VsZi5fX05FWFRfREFUQV9fLmF1dG9FeHBvcnQ7XG4gICAgICAgIHRoaXMuYXNQYXRoID0gYXV0b0V4cG9ydER5bmFtaWMgPyBwYXRobmFtZSA6IGFzO1xuICAgICAgICB0aGlzLmJhc2VQYXRoID0gYmFzZVBhdGg7XG4gICAgICAgIHRoaXMuc3ViID0gc3Vic2NyaXB0aW9uO1xuICAgICAgICB0aGlzLmNsYyA9IG51bGw7XG4gICAgICAgIHRoaXMuX3dyYXBBcHAgPSB3cmFwQXBwO1xuICAgICAgICAvLyBtYWtlIHN1cmUgdG8gaWdub3JlIGV4dHJhIHBvcFN0YXRlIGluIHNhZmFyaSBvbiBuYXZpZ2F0aW5nXG4gICAgICAgIC8vIGJhY2sgZnJvbSBleHRlcm5hbCBzaXRlXG4gICAgICAgIHRoaXMuaXNTc3IgPSB0cnVlO1xuICAgICAgICB0aGlzLmlzRmFsbGJhY2sgPSBpc0ZhbGxiYWNrO1xuICAgICAgICB0aGlzLmlzUmVhZHkgPSAhIShzZWxmLl9fTkVYVF9EQVRBX18uZ3NzcCB8fCBzZWxmLl9fTkVYVF9EQVRBX18uZ2lwIHx8IHNlbGYuX19ORVhUX0RBVEFfXy5hcHBHaXAgJiYgIXNlbGYuX19ORVhUX0RBVEFfXy5nc3AgfHwgIWF1dG9FeHBvcnREeW5hbWljICYmICFzZWxmLmxvY2F0aW9uLnNlYXJjaCAmJiAhcHJvY2Vzcy5lbnYuX19ORVhUX0hBU19SRVdSSVRFUyk7XG4gICAgICAgIHRoaXMuaXNQcmV2aWV3ID0gISFpc1ByZXZpZXc7XG4gICAgICAgIHRoaXMuaXNMb2NhbGVEb21haW4gPSBmYWxzZTtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9JMThOX1NVUFBPUlQpIHtcbiAgICAgICAgICAgIHRoaXMubG9jYWxlID0gbG9jYWxlO1xuICAgICAgICAgICAgdGhpcy5sb2NhbGVzID0gbG9jYWxlcztcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdExvY2FsZSA9IGRlZmF1bHRMb2NhbGU7XG4gICAgICAgICAgICB0aGlzLmRvbWFpbkxvY2FsZXMgPSBkb21haW5Mb2NhbGVzO1xuICAgICAgICAgICAgdGhpcy5pc0xvY2FsZURvbWFpbiA9ICEhZGV0ZWN0RG9tYWluTG9jYWxlKGRvbWFpbkxvY2FsZXMsIHNlbGYubG9jYXRpb24uaG9zdG5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgLy8gbWFrZSBzdXJlIFwiYXNcIiBkb2Vzbid0IHN0YXJ0IHdpdGggZG91YmxlIHNsYXNoZXMgb3IgZWxzZSBpdCBjYW5cbiAgICAgICAgICAgIC8vIHRocm93IGFuIGVycm9yIGFzIGl0J3MgY29uc2lkZXJlZCBpbnZhbGlkXG4gICAgICAgICAgICBpZiAoYXMuc3Vic3RyKDAsIDIpICE9PSAnLy8nKSB7XG4gICAgICAgICAgICAgICAgLy8gaW4gb3JkZXIgZm9yIGBlLnN0YXRlYCB0byB3b3JrIG9uIHRoZSBgb25wb3BzdGF0ZWAgZXZlbnRcbiAgICAgICAgICAgICAgICAvLyB3ZSBoYXZlIHRvIHJlZ2lzdGVyIHRoZSBpbml0aWFsIHJvdXRlIHVwb24gaW5pdGlhbGl6YXRpb25cbiAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICBsb2NhbGVcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIG9wdGlvbnMuX3Nob3VsZFJlc29sdmVIcmVmID0gYXMgIT09IHBhdGhuYW1lO1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlU3RhdGUoJ3JlcGxhY2VTdGF0ZScsICgwLCBfdXRpbHMpLmZvcm1hdFdpdGhWYWxpZGF0aW9uKHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWU6IGFkZEJhc2VQYXRoKHBhdGhuYW1lKSxcbiAgICAgICAgICAgICAgICAgICAgcXVlcnlcbiAgICAgICAgICAgICAgICB9KSwgKDAsIF91dGlscykuZ2V0VVJMKCksIG9wdGlvbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvcHN0YXRlJywgdGhpcy5vblBvcFN0YXRlKTtcbiAgICAgICAgICAgIC8vIGVuYWJsZSBjdXN0b20gc2Nyb2xsIHJlc3RvcmF0aW9uIGhhbmRsaW5nIHdoZW4gYXZhaWxhYmxlXG4gICAgICAgICAgICAvLyBvdGhlcndpc2UgZmFsbGJhY2sgdG8gYnJvd3NlcidzIGRlZmF1bHQgaGFuZGxpbmdcbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfU0NST0xMX1JFU1RPUkFUSU9OKSB7XG4gICAgICAgICAgICAgICAgaWYgKG1hbnVhbFNjcm9sbFJlc3RvcmF0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5oaXN0b3J5LnNjcm9sbFJlc3RvcmF0aW9uID0gJ21hbnVhbCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJlbG9hZCgpIHtcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuICAgIH1cbiAgICAvKipcbiAgICogR28gYmFjayBpbiBoaXN0b3J5XG4gICAqLyBiYWNrKCkge1xuICAgICAgICB3aW5kb3cuaGlzdG9yeS5iYWNrKCk7XG4gICAgfVxuICAgIC8qKlxuICAgKiBQZXJmb3JtcyBhIGBwdXNoU3RhdGVgIHdpdGggYXJndW1lbnRzXG4gICAqIEBwYXJhbSB1cmwgb2YgdGhlIHJvdXRlXG4gICAqIEBwYXJhbSBhcyBtYXNrcyBgdXJsYCBmb3IgdGhlIGJyb3dzZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgb2JqZWN0IHlvdSBjYW4gZGVmaW5lIGBzaGFsbG93YCBhbmQgb3RoZXIgb3B0aW9uc1xuICAgKi8gcHVzaCh1cmwsIGFzLCBvcHRpb25zID0ge1xuICAgIH0pIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9TQ1JPTExfUkVTVE9SQVRJT04pIHtcbiAgICAgICAgICAgIC8vIFRPRE86IHJlbW92ZSBpbiB0aGUgZnV0dXJlIHdoZW4gd2UgdXBkYXRlIGhpc3RvcnkgYmVmb3JlIHJvdXRlIGNoYW5nZVxuICAgICAgICAgICAgLy8gaXMgY29tcGxldGUsIGFzIHRoZSBwb3BzdGF0ZSBldmVudCBzaG91bGQgaGFuZGxlIHRoaXMgY2FwdHVyZS5cbiAgICAgICAgICAgIGlmIChtYW51YWxTY3JvbGxSZXN0b3JhdGlvbikge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFNuYXBzaG90IHNjcm9sbCBwb3NpdGlvbiByaWdodCBiZWZvcmUgbmF2aWdhdGluZyB0byBhIG5ldyBwYWdlOlxuICAgICAgICAgICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdfX25leHRfc2Nyb2xsXycgKyB0aGlzLl9pZHgsIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHg6IHNlbGYucGFnZVhPZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgICAgICB5OiBzZWxmLnBhZ2VZT2Zmc2V0XG4gICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoICB7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICh7IHVybCAsIGFzICB9ID0gcHJlcGFyZVVybEFzKHRoaXMsIHVybCwgYXMpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hhbmdlKCdwdXNoU3RhdGUnLCB1cmwsIGFzLCBvcHRpb25zKTtcbiAgICB9XG4gICAgLyoqXG4gICAqIFBlcmZvcm1zIGEgYHJlcGxhY2VTdGF0ZWAgd2l0aCBhcmd1bWVudHNcbiAgICogQHBhcmFtIHVybCBvZiB0aGUgcm91dGVcbiAgICogQHBhcmFtIGFzIG1hc2tzIGB1cmxgIGZvciB0aGUgYnJvd3NlclxuICAgKiBAcGFyYW0gb3B0aW9ucyBvYmplY3QgeW91IGNhbiBkZWZpbmUgYHNoYWxsb3dgIGFuZCBvdGhlciBvcHRpb25zXG4gICAqLyByZXBsYWNlKHVybCwgYXMsIG9wdGlvbnMgPSB7XG4gICAgfSkge1xuICAgICAgICAoeyB1cmwgLCBhcyAgfSA9IHByZXBhcmVVcmxBcyh0aGlzLCB1cmwsIGFzKSk7XG4gICAgICAgIHJldHVybiB0aGlzLmNoYW5nZSgncmVwbGFjZVN0YXRlJywgdXJsLCBhcywgb3B0aW9ucyk7XG4gICAgfVxuICAgIGFzeW5jIGNoYW5nZShtZXRob2QsIHVybCwgYXMsIG9wdGlvbnMsIGZvcmNlZFNjcm9sbCkge1xuICAgICAgICBpZiAoIWlzTG9jYWxVUkwodXJsKSkge1xuICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB1cmw7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2hvdWxkUmVzb2x2ZUhyZWYgPSBvcHRpb25zLl9oIHx8IG9wdGlvbnMuX3Nob3VsZFJlc29sdmVIcmVmIHx8IHBhdGhOb1F1ZXJ5SGFzaCh1cmwpID09PSBwYXRoTm9RdWVyeUhhc2goYXMpO1xuICAgICAgICAvLyBmb3Igc3RhdGljIHBhZ2VzIHdpdGggcXVlcnkgcGFyYW1zIGluIHRoZSBVUkwgd2UgZGVsYXlcbiAgICAgICAgLy8gbWFya2luZyB0aGUgcm91dGVyIHJlYWR5IHVudGlsIGFmdGVyIHRoZSBxdWVyeSBpcyB1cGRhdGVkXG4gICAgICAgIGlmIChvcHRpb25zLl9oKSB7XG4gICAgICAgICAgICB0aGlzLmlzUmVhZHkgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHByZXZMb2NhbGUgPSB0aGlzLmxvY2FsZTtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9JMThOX1NVUFBPUlQpIHtcbiAgICAgICAgICAgIHRoaXMubG9jYWxlID0gb3B0aW9ucy5sb2NhbGUgPT09IGZhbHNlID8gdGhpcy5kZWZhdWx0TG9jYWxlIDogb3B0aW9ucy5sb2NhbGUgfHwgdGhpcy5sb2NhbGU7XG4gICAgICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMubG9jYWxlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMubG9jYWxlID0gdGhpcy5sb2NhbGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBwYXJzZWRBcyA9ICgwLCBfcGFyc2VSZWxhdGl2ZVVybCkucGFyc2VSZWxhdGl2ZVVybChoYXNCYXNlUGF0aChhcykgPyBkZWxCYXNlUGF0aChhcykgOiBhcyk7XG4gICAgICAgICAgICBjb25zdCBsb2NhbGVQYXRoUmVzdWx0ID0gKDAsIF9ub3JtYWxpemVMb2NhbGVQYXRoKS5ub3JtYWxpemVMb2NhbGVQYXRoKHBhcnNlZEFzLnBhdGhuYW1lLCB0aGlzLmxvY2FsZXMpO1xuICAgICAgICAgICAgaWYgKGxvY2FsZVBhdGhSZXN1bHQuZGV0ZWN0ZWRMb2NhbGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvY2FsZSA9IGxvY2FsZVBhdGhSZXN1bHQuZGV0ZWN0ZWRMb2NhbGU7XG4gICAgICAgICAgICAgICAgcGFyc2VkQXMucGF0aG5hbWUgPSBhZGRCYXNlUGF0aChwYXJzZWRBcy5wYXRobmFtZSk7XG4gICAgICAgICAgICAgICAgYXMgPSAoMCwgX3V0aWxzKS5mb3JtYXRXaXRoVmFsaWRhdGlvbihwYXJzZWRBcyk7XG4gICAgICAgICAgICAgICAgdXJsID0gYWRkQmFzZVBhdGgoKDAsIF9ub3JtYWxpemVMb2NhbGVQYXRoKS5ub3JtYWxpemVMb2NhbGVQYXRoKGhhc0Jhc2VQYXRoKHVybCkgPyBkZWxCYXNlUGF0aCh1cmwpIDogdXJsLCB0aGlzLmxvY2FsZXMpLnBhdGhuYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBkaWROYXZpZ2F0ZSA9IGZhbHNlO1xuICAgICAgICAgICAgLy8gd2UgbmVlZCB0byB3cmFwIHRoaXMgaW4gdGhlIGVudiBjaGVjayBhZ2FpbiBzaW5jZSByZWdlbmVyYXRvciBydW50aW1lXG4gICAgICAgICAgICAvLyBtb3ZlcyB0aGlzIG9uIGl0cyBvd24gZHVlIHRvIHRoZSByZXR1cm5cbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgICAgICAgICAgICAgdmFyIHJlZjtcbiAgICAgICAgICAgICAgICAvLyBpZiB0aGUgbG9jYWxlIGlzbid0IGNvbmZpZ3VyZWQgaGFyZCBuYXZpZ2F0ZSB0byBzaG93IDQwNCBwYWdlXG4gICAgICAgICAgICAgICAgaWYgKCEoKHJlZiA9IHRoaXMubG9jYWxlcykgPT09IG51bGwgfHwgcmVmID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZWYuaW5jbHVkZXModGhpcy5sb2NhbGUpKSkge1xuICAgICAgICAgICAgICAgICAgICBwYXJzZWRBcy5wYXRobmFtZSA9IGFkZExvY2FsZShwYXJzZWRBcy5wYXRobmFtZSwgdGhpcy5sb2NhbGUpO1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICgwLCBfdXRpbHMpLmZvcm1hdFdpdGhWYWxpZGF0aW9uKHBhcnNlZEFzKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyB3YXMgcHJldmlvdXNseSBhIHJldHVybiBidXQgd2FzIHJlbW92ZWQgaW4gZmF2b3JcbiAgICAgICAgICAgICAgICAgICAgLy8gb2YgYmV0dGVyIGRlYWQgY29kZSBlbGltaW5hdGlvbiB3aXRoIHJlZ2VuZXJhdG9yIHJ1bnRpbWVcbiAgICAgICAgICAgICAgICAgICAgZGlkTmF2aWdhdGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGRldGVjdGVkRG9tYWluID0gZGV0ZWN0RG9tYWluTG9jYWxlKHRoaXMuZG9tYWluTG9jYWxlcywgdW5kZWZpbmVkLCB0aGlzLmxvY2FsZSk7XG4gICAgICAgICAgICAvLyB3ZSBuZWVkIHRvIHdyYXAgdGhpcyBpbiB0aGUgZW52IGNoZWNrIGFnYWluIHNpbmNlIHJlZ2VuZXJhdG9yIHJ1bnRpbWVcbiAgICAgICAgICAgIC8vIG1vdmVzIHRoaXMgb24gaXRzIG93biBkdWUgdG8gdGhlIHJldHVyblxuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9JMThOX1NVUFBPUlQpIHtcbiAgICAgICAgICAgICAgICAvLyBpZiB3ZSBhcmUgbmF2aWdhdGluZyB0byBhIGRvbWFpbiBsb2NhbGUgZW5zdXJlIHdlIHJlZGlyZWN0IHRvIHRoZVxuICAgICAgICAgICAgICAgIC8vIGNvcnJlY3QgZG9tYWluXG4gICAgICAgICAgICAgICAgaWYgKCFkaWROYXZpZ2F0ZSAmJiBkZXRlY3RlZERvbWFpbiAmJiB0aGlzLmlzTG9jYWxlRG9tYWluICYmIHNlbGYubG9jYXRpb24uaG9zdG5hbWUgIT09IGRldGVjdGVkRG9tYWluLmRvbWFpbikge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhc05vQmFzZVBhdGggPSBkZWxCYXNlUGF0aChhcyk7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYGh0dHAke2RldGVjdGVkRG9tYWluLmh0dHAgPyAnJyA6ICdzJ306Ly8ke2RldGVjdGVkRG9tYWluLmRvbWFpbn0ke2FkZEJhc2VQYXRoKGAke3RoaXMubG9jYWxlID09PSBkZXRlY3RlZERvbWFpbi5kZWZhdWx0TG9jYWxlID8gJycgOiBgLyR7dGhpcy5sb2NhbGV9YH0ke2FzTm9CYXNlUGF0aCA9PT0gJy8nID8gJycgOiBhc05vQmFzZVBhdGh9YCB8fCAnLycpfWA7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgd2FzIHByZXZpb3VzbHkgYSByZXR1cm4gYnV0IHdhcyByZW1vdmVkIGluIGZhdm9yXG4gICAgICAgICAgICAgICAgICAgIC8vIG9mIGJldHRlciBkZWFkIGNvZGUgZWxpbWluYXRpb24gd2l0aCByZWdlbmVyYXRvciBydW50aW1lXG4gICAgICAgICAgICAgICAgICAgIGRpZE5hdmlnYXRlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGlkTmF2aWdhdGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKCk9PntcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIW9wdGlvbnMuX2gpIHtcbiAgICAgICAgICAgIHRoaXMuaXNTc3IgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBtYXJraW5nIHJvdXRlIGNoYW5nZXMgYXMgYSBuYXZpZ2F0aW9uIHN0YXJ0IGVudHJ5XG4gICAgICAgIGlmIChfdXRpbHMuU1QpIHtcbiAgICAgICAgICAgIHBlcmZvcm1hbmNlLm1hcmsoJ3JvdXRlQ2hhbmdlJyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyBzaGFsbG93ID1mYWxzZSAgfSA9IG9wdGlvbnM7XG4gICAgICAgIGNvbnN0IHJvdXRlUHJvcHMgPSB7XG4gICAgICAgICAgICBzaGFsbG93XG4gICAgICAgIH07XG4gICAgICAgIGlmICh0aGlzLl9pbkZsaWdodFJvdXRlKSB7XG4gICAgICAgICAgICB0aGlzLmFib3J0Q29tcG9uZW50TG9hZCh0aGlzLl9pbkZsaWdodFJvdXRlLCByb3V0ZVByb3BzKTtcbiAgICAgICAgfVxuICAgICAgICBhcyA9IGFkZEJhc2VQYXRoKGFkZExvY2FsZShoYXNCYXNlUGF0aChhcykgPyBkZWxCYXNlUGF0aChhcykgOiBhcywgb3B0aW9ucy5sb2NhbGUsIHRoaXMuZGVmYXVsdExvY2FsZSkpO1xuICAgICAgICBjb25zdCBjbGVhbmVkQXMgPSBkZWxMb2NhbGUoaGFzQmFzZVBhdGgoYXMpID8gZGVsQmFzZVBhdGgoYXMpIDogYXMsIHRoaXMubG9jYWxlKTtcbiAgICAgICAgdGhpcy5faW5GbGlnaHRSb3V0ZSA9IGFzO1xuICAgICAgICBsZXQgbG9jYWxlQ2hhbmdlID0gcHJldkxvY2FsZSAhPT0gdGhpcy5sb2NhbGU7XG4gICAgICAgIC8vIElmIHRoZSB1cmwgY2hhbmdlIGlzIG9ubHkgcmVsYXRlZCB0byBhIGhhc2ggY2hhbmdlXG4gICAgICAgIC8vIFdlIHNob3VsZCBub3QgcHJvY2VlZC4gV2Ugc2hvdWxkIG9ubHkgY2hhbmdlIHRoZSBzdGF0ZS5cbiAgICAgICAgLy8gV0FSTklORzogYF9oYCBpcyBhbiBpbnRlcm5hbCBvcHRpb24gZm9yIGhhbmRpbmcgTmV4dC5qcyBjbGllbnQtc2lkZVxuICAgICAgICAvLyBoeWRyYXRpb24uIFlvdXIgYXBwIHNob3VsZCBfbmV2ZXJfIHVzZSB0aGlzIHByb3BlcnR5LiBJdCBtYXkgY2hhbmdlIGF0XG4gICAgICAgIC8vIGFueSB0aW1lIHdpdGhvdXQgbm90aWNlLlxuICAgICAgICBpZiAoIW9wdGlvbnMuX2ggJiYgdGhpcy5vbmx5QUhhc2hDaGFuZ2UoY2xlYW5lZEFzKSAmJiAhbG9jYWxlQ2hhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLmFzUGF0aCA9IGNsZWFuZWRBcztcbiAgICAgICAgICAgIFJvdXRlci5ldmVudHMuZW1pdCgnaGFzaENoYW5nZVN0YXJ0JywgYXMsIHJvdXRlUHJvcHMpO1xuICAgICAgICAgICAgLy8gVE9ETzogZG8gd2UgbmVlZCB0aGUgcmVzb2x2ZWQgaHJlZiB3aGVuIG9ubHkgYSBoYXNoIGNoYW5nZT9cbiAgICAgICAgICAgIHRoaXMuY2hhbmdlU3RhdGUobWV0aG9kLCB1cmwsIGFzLCBvcHRpb25zKTtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsVG9IYXNoKGNsZWFuZWRBcyk7XG4gICAgICAgICAgICB0aGlzLm5vdGlmeSh0aGlzLmNvbXBvbmVudHNbdGhpcy5yb3V0ZV0sIG51bGwpO1xuICAgICAgICAgICAgUm91dGVyLmV2ZW50cy5lbWl0KCdoYXNoQ2hhbmdlQ29tcGxldGUnLCBhcywgcm91dGVQcm9wcyk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgcGFyc2VkID0gKDAsIF9wYXJzZVJlbGF0aXZlVXJsKS5wYXJzZVJlbGF0aXZlVXJsKHVybCk7XG4gICAgICAgIGxldCB7IHBhdGhuYW1lICwgcXVlcnkgIH0gPSBwYXJzZWQ7XG4gICAgICAgIC8vIFRoZSBidWlsZCBtYW5pZmVzdCBuZWVkcyB0byBiZSBsb2FkZWQgYmVmb3JlIGF1dG8tc3RhdGljIGR5bmFtaWMgcGFnZXNcbiAgICAgICAgLy8gZ2V0IHRoZWlyIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gYWxsb3cgZW5zdXJpbmcgdGhleSBjYW4gYmUgcGFyc2VkIHByb3Blcmx5XG4gICAgICAgIC8vIHdoZW4gcmV3cml0dGVuIHRvXG4gICAgICAgIGxldCBwYWdlcywgcmV3cml0ZXM7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBbcGFnZXMsIHsgX19yZXdyaXRlczogcmV3cml0ZXMgIH1dID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgICAgICAgICAgIHRoaXMucGFnZUxvYWRlci5nZXRQYWdlTGlzdCgpLFxuICAgICAgICAgICAgICAgICgwLCBfcm91dGVMb2FkZXIpLmdldENsaWVudEJ1aWxkTWFuaWZlc3QoKSxcbiAgICAgICAgICAgICAgICB0aGlzLnBhZ2VMb2FkZXIuZ2V0TWlkZGxld2FyZUxpc3QoKSwgXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAvLyBJZiB3ZSBmYWlsIHRvIHJlc29sdmUgdGhlIHBhZ2UgbGlzdCBvciBjbGllbnQtYnVpbGQgbWFuaWZlc3QsIHdlIG11c3RcbiAgICAgICAgICAgIC8vIGRvIGEgc2VydmVyLXNpZGUgdHJhbnNpdGlvbjpcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYXM7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYgYXNrZWQgdG8gY2hhbmdlIHRoZSBjdXJyZW50IFVSTCB3ZSBzaG91bGQgcmVsb2FkIHRoZSBjdXJyZW50IHBhZ2VcbiAgICAgICAgLy8gKG5vdCBsb2NhdGlvbi5yZWxvYWQoKSBidXQgcmVsb2FkIGdldEluaXRpYWxQcm9wcyBhbmQgb3RoZXIgTmV4dC5qcyBzdHVmZnMpXG4gICAgICAgIC8vIFdlIGFsc28gbmVlZCB0byBzZXQgdGhlIG1ldGhvZCA9IHJlcGxhY2VTdGF0ZSBhbHdheXNcbiAgICAgICAgLy8gYXMgdGhpcyBzaG91bGQgbm90IGdvIGludG8gdGhlIGhpc3RvcnkgKFRoYXQncyBob3cgYnJvd3NlcnMgd29yaylcbiAgICAgICAgLy8gV2Ugc2hvdWxkIGNvbXBhcmUgdGhlIG5ldyBhc1BhdGggdG8gdGhlIGN1cnJlbnQgYXNQYXRoLCBub3QgdGhlIHVybFxuICAgICAgICBpZiAoIXRoaXMudXJsSXNOZXcoY2xlYW5lZEFzKSAmJiAhbG9jYWxlQ2hhbmdlKSB7XG4gICAgICAgICAgICBtZXRob2QgPSAncmVwbGFjZVN0YXRlJztcbiAgICAgICAgfVxuICAgICAgICAvLyB3ZSBuZWVkIHRvIHJlc29sdmUgdGhlIGFzIHZhbHVlIHVzaW5nIHJld3JpdGVzIGZvciBkeW5hbWljIFNTR1xuICAgICAgICAvLyBwYWdlcyB0byBhbGxvdyBidWlsZGluZyB0aGUgZGF0YSBVUkwgY29ycmVjdGx5XG4gICAgICAgIGxldCByZXNvbHZlZEFzID0gYXM7XG4gICAgICAgIC8vIHVybCBhbmQgYXMgc2hvdWxkIGFsd2F5cyBiZSBwcmVmaXhlZCB3aXRoIGJhc2VQYXRoIGJ5IHRoaXNcbiAgICAgICAgLy8gcG9pbnQgYnkgZWl0aGVyIG5leHQvbGluayBvciByb3V0ZXIucHVzaC9yZXBsYWNlIHNvIHN0cmlwIHRoZVxuICAgICAgICAvLyBiYXNlUGF0aCBmcm9tIHRoZSBwYXRobmFtZSB0byBtYXRjaCB0aGUgcGFnZXMgZGlyIDEtdG8tMVxuICAgICAgICBwYXRobmFtZSA9IHBhdGhuYW1lID8gKDAsIF9ub3JtYWxpemVUcmFpbGluZ1NsYXNoKS5yZW1vdmVQYXRoVHJhaWxpbmdTbGFzaChkZWxCYXNlUGF0aChwYXRobmFtZSkpIDogcGF0aG5hbWU7XG4gICAgICAgIGlmIChzaG91bGRSZXNvbHZlSHJlZiAmJiBwYXRobmFtZSAhPT0gJy9fZXJyb3InKSB7XG4gICAgICAgICAgICBvcHRpb25zLl9zaG91bGRSZXNvbHZlSHJlZiA9IHRydWU7XG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0hBU19SRVdSSVRFUyAmJiBhcy5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXdyaXRlc1Jlc3VsdCA9ICgwLCBfcmVzb2x2ZVJld3JpdGVzKS5kZWZhdWx0KGFkZEJhc2VQYXRoKGFkZExvY2FsZShjbGVhbmVkQXMsIHRoaXMubG9jYWxlKSksIHBhZ2VzLCByZXdyaXRlcywgcXVlcnksIChwKT0+cmVzb2x2ZUR5bmFtaWNSb3V0ZShwLCBwYWdlcylcbiAgICAgICAgICAgICAgICAsIHRoaXMubG9jYWxlcyk7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZWRBcyA9IHJld3JpdGVzUmVzdWx0LmFzUGF0aDtcbiAgICAgICAgICAgICAgICBpZiAocmV3cml0ZXNSZXN1bHQubWF0Y2hlZFBhZ2UgJiYgcmV3cml0ZXNSZXN1bHQucmVzb2x2ZWRIcmVmKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoaXMgZGlyZWN0bHkgbWF0Y2hlcyBhIHBhZ2Ugd2UgbmVlZCB0byB1cGRhdGUgdGhlIGhyZWYgdG9cbiAgICAgICAgICAgICAgICAgICAgLy8gYWxsb3cgdGhlIGNvcnJlY3QgcGFnZSBjaHVuayB0byBiZSBsb2FkZWRcbiAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWUgPSByZXdyaXRlc1Jlc3VsdC5yZXNvbHZlZEhyZWY7XG4gICAgICAgICAgICAgICAgICAgIHBhcnNlZC5wYXRobmFtZSA9IGFkZEJhc2VQYXRoKHBhdGhuYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdXJsID0gKDAsIF91dGlscykuZm9ybWF0V2l0aFZhbGlkYXRpb24ocGFyc2VkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHBhcnNlZC5wYXRobmFtZSA9IHJlc29sdmVEeW5hbWljUm91dGUocGF0aG5hbWUsIHBhZ2VzKTtcbiAgICAgICAgICAgICAgICBpZiAocGFyc2VkLnBhdGhuYW1lICE9PSBwYXRobmFtZSkge1xuICAgICAgICAgICAgICAgICAgICBwYXRobmFtZSA9IHBhcnNlZC5wYXRobmFtZTtcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VkLnBhdGhuYW1lID0gYWRkQmFzZVBhdGgocGF0aG5hbWUpO1xuICAgICAgICAgICAgICAgICAgICB1cmwgPSAoMCwgX3V0aWxzKS5mb3JtYXRXaXRoVmFsaWRhdGlvbihwYXJzZWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzTG9jYWxVUkwoYXMpKSB7XG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBocmVmOiBcIiR7dXJsfVwiIGFuZCBhczogXCIke2FzfVwiLCByZWNlaXZlZCByZWxhdGl2ZSBocmVmIGFuZCBleHRlcm5hbCBhc2AgKyBgXFxuU2VlIG1vcmUgaW5mbzogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvaW52YWxpZC1yZWxhdGl2ZS11cmwtZXh0ZXJuYWwtYXNgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYXM7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmVzb2x2ZWRBcyA9IGRlbExvY2FsZShkZWxCYXNlUGF0aChyZXNvbHZlZEFzKSwgdGhpcy5sb2NhbGUpO1xuICAgICAgICBjb25zdCBlZmZlY3QgPSBhd2FpdCB0aGlzLl9wcmVmbGlnaHRSZXF1ZXN0KHtcbiAgICAgICAgICAgIGFzLFxuICAgICAgICAgICAgY2FjaGU6IHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicsXG4gICAgICAgICAgICBwYWdlcyxcbiAgICAgICAgICAgIHBhdGhuYW1lLFxuICAgICAgICAgICAgcXVlcnlcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChlZmZlY3QudHlwZSA9PT0gJ3Jld3JpdGUnKSB7XG4gICAgICAgICAgICBxdWVyeSA9IHtcbiAgICAgICAgICAgICAgICAuLi5xdWVyeSxcbiAgICAgICAgICAgICAgICAuLi5lZmZlY3QucGFyc2VkQXMucXVlcnlcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZXNvbHZlZEFzID0gZWZmZWN0LmFzUGF0aDtcbiAgICAgICAgICAgIHBhdGhuYW1lID0gZWZmZWN0LnJlc29sdmVkSHJlZjtcbiAgICAgICAgICAgIHBhcnNlZC5wYXRobmFtZSA9IGVmZmVjdC5yZXNvbHZlZEhyZWY7XG4gICAgICAgICAgICB1cmwgPSAoMCwgX3V0aWxzKS5mb3JtYXRXaXRoVmFsaWRhdGlvbihwYXJzZWQpO1xuICAgICAgICB9IGVsc2UgaWYgKGVmZmVjdC50eXBlID09PSAncmVkaXJlY3QnICYmIGVmZmVjdC5uZXdBcykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2hhbmdlKG1ldGhvZCwgZWZmZWN0Lm5ld1VybCwgZWZmZWN0Lm5ld0FzLCBvcHRpb25zKTtcbiAgICAgICAgfSBlbHNlIGlmIChlZmZlY3QudHlwZSA9PT0gJ3JlZGlyZWN0JyAmJiBlZmZlY3QuZGVzdGluYXRpb24pIHtcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gZWZmZWN0LmRlc3RpbmF0aW9uO1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKCgpPT57XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChlZmZlY3QudHlwZSA9PT0gJ3JlZnJlc2gnKSB7XG4gICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGFzO1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKCgpPT57XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByb3V0ZSA9ICgwLCBfbm9ybWFsaXplVHJhaWxpbmdTbGFzaCkucmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2gocGF0aG5hbWUpO1xuICAgICAgICBpZiAoKDAsIF9pc0R5bmFtaWMpLmlzRHluYW1pY1JvdXRlKHJvdXRlKSkge1xuICAgICAgICAgICAgY29uc3QgcGFyc2VkQXMgPSAoMCwgX3BhcnNlUmVsYXRpdmVVcmwpLnBhcnNlUmVsYXRpdmVVcmwocmVzb2x2ZWRBcyk7XG4gICAgICAgICAgICBjb25zdCBhc1BhdGhuYW1lID0gcGFyc2VkQXMucGF0aG5hbWU7XG4gICAgICAgICAgICBjb25zdCByb3V0ZVJlZ2V4ID0gKDAsIF9yb3V0ZVJlZ2V4KS5nZXRSb3V0ZVJlZ2V4KHJvdXRlKTtcbiAgICAgICAgICAgIGNvbnN0IHJvdXRlTWF0Y2ggPSAoMCwgX3JvdXRlTWF0Y2hlcikuZ2V0Um91dGVNYXRjaGVyKHJvdXRlUmVnZXgpKGFzUGF0aG5hbWUpO1xuICAgICAgICAgICAgY29uc3Qgc2hvdWxkSW50ZXJwb2xhdGUgPSByb3V0ZSA9PT0gYXNQYXRobmFtZTtcbiAgICAgICAgICAgIGNvbnN0IGludGVycG9sYXRlZEFzID0gc2hvdWxkSW50ZXJwb2xhdGUgPyBpbnRlcnBvbGF0ZUFzKHJvdXRlLCBhc1BhdGhuYW1lLCBxdWVyeSkgOiB7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKCFyb3V0ZU1hdGNoIHx8IHNob3VsZEludGVycG9sYXRlICYmICFpbnRlcnBvbGF0ZWRBcy5yZXN1bHQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtaXNzaW5nUGFyYW1zID0gT2JqZWN0LmtleXMocm91dGVSZWdleC5ncm91cHMpLmZpbHRlcigocGFyYW0pPT4hcXVlcnlbcGFyYW1dXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpZiAobWlzc2luZ1BhcmFtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYCR7c2hvdWxkSW50ZXJwb2xhdGUgPyBgSW50ZXJwb2xhdGluZyBocmVmYCA6IGBNaXNtYXRjaGluZyBcXGBhc1xcYCBhbmQgXFxgaHJlZlxcYGB9IGZhaWxlZCB0byBtYW51YWxseSBwcm92aWRlIGAgKyBgdGhlIHBhcmFtczogJHttaXNzaW5nUGFyYW1zLmpvaW4oJywgJyl9IGluIHRoZSBcXGBocmVmXFxgJ3MgXFxgcXVlcnlcXGBgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoKHNob3VsZEludGVycG9sYXRlID8gYFRoZSBwcm92aWRlZCBcXGBocmVmXFxgICgke3VybH0pIHZhbHVlIGlzIG1pc3NpbmcgcXVlcnkgdmFsdWVzICgke21pc3NpbmdQYXJhbXMuam9pbignLCAnKX0pIHRvIGJlIGludGVycG9sYXRlZCBwcm9wZXJseS4gYCA6IGBUaGUgcHJvdmlkZWQgXFxgYXNcXGAgdmFsdWUgKCR7YXNQYXRobmFtZX0pIGlzIGluY29tcGF0aWJsZSB3aXRoIHRoZSBcXGBocmVmXFxgIHZhbHVlICgke3JvdXRlfSkuIGApICsgYFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvJHtzaG91bGRJbnRlcnBvbGF0ZSA/ICdocmVmLWludGVycG9sYXRpb24tZmFpbGVkJyA6ICdpbmNvbXBhdGlibGUtaHJlZi1hcyd9YCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChzaG91bGRJbnRlcnBvbGF0ZSkge1xuICAgICAgICAgICAgICAgIGFzID0gKDAsIF91dGlscykuZm9ybWF0V2l0aFZhbGlkYXRpb24oT2JqZWN0LmFzc2lnbih7XG4gICAgICAgICAgICAgICAgfSwgcGFyc2VkQXMsIHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWU6IGludGVycG9sYXRlZEFzLnJlc3VsdCxcbiAgICAgICAgICAgICAgICAgICAgcXVlcnk6IG9taXRQYXJtc0Zyb21RdWVyeShxdWVyeSwgaW50ZXJwb2xhdGVkQXMucGFyYW1zKVxuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gTWVyZ2UgcGFyYW1zIGludG8gYHF1ZXJ5YCwgb3ZlcndyaXRpbmcgYW55IHNwZWNpZmllZCBpbiBzZWFyY2hcbiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHF1ZXJ5LCByb3V0ZU1hdGNoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBSb3V0ZXIuZXZlbnRzLmVtaXQoJ3JvdXRlQ2hhbmdlU3RhcnQnLCBhcywgcm91dGVQcm9wcyk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB2YXIgcmVmLCByZWYxO1xuICAgICAgICAgICAgbGV0IHJvdXRlSW5mbyA9IGF3YWl0IHRoaXMuZ2V0Um91dGVJbmZvKHJvdXRlLCBwYXRobmFtZSwgcXVlcnksIGFzLCByZXNvbHZlZEFzLCByb3V0ZVByb3BzKTtcbiAgICAgICAgICAgIGxldCB7IGVycm9yICwgcHJvcHMgLCBfX05fU1NHICwgX19OX1NTUCAgfSA9IHJvdXRlSW5mbztcbiAgICAgICAgICAgIC8vIGhhbmRsZSByZWRpcmVjdCBvbiBjbGllbnQtdHJhbnNpdGlvblxuICAgICAgICAgICAgaWYgKChfX05fU1NHIHx8IF9fTl9TU1ApICYmIHByb3BzKSB7XG4gICAgICAgICAgICAgICAgaWYgKHByb3BzLnBhZ2VQcm9wcyAmJiBwcm9wcy5wYWdlUHJvcHMuX19OX1JFRElSRUNUKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlc3RpbmF0aW9uID0gcHJvcHMucGFnZVByb3BzLl9fTl9SRURJUkVDVDtcbiAgICAgICAgICAgICAgICAgICAgLy8gY2hlY2sgaWYgZGVzdGluYXRpb24gaXMgaW50ZXJuYWwgKHJlc29sdmVzIHRvIGEgcGFnZSkgYW5kIGF0dGVtcHRcbiAgICAgICAgICAgICAgICAgICAgLy8gY2xpZW50LW5hdmlnYXRpb24gaWYgaXQgaXMgZmFsbGluZyBiYWNrIHRvIGhhcmQgbmF2aWdhdGlvbiBpZlxuICAgICAgICAgICAgICAgICAgICAvLyBpdCdzIG5vdFxuICAgICAgICAgICAgICAgICAgICBpZiAoZGVzdGluYXRpb24uc3RhcnRzV2l0aCgnLycpICYmIHByb3BzLnBhZ2VQcm9wcy5fX05fUkVESVJFQ1RfQkFTRV9QQVRIICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyc2VkSHJlZiA9ICgwLCBfcGFyc2VSZWxhdGl2ZVVybCkucGFyc2VSZWxhdGl2ZVVybChkZXN0aW5hdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJzZWRIcmVmLnBhdGhuYW1lID0gcmVzb2x2ZUR5bmFtaWNSb3V0ZShwYXJzZWRIcmVmLnBhdGhuYW1lLCBwYWdlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHVybDogbmV3VXJsICwgYXM6IG5ld0FzICB9ID0gcHJlcGFyZVVybEFzKHRoaXMsIGRlc3RpbmF0aW9uLCBkZXN0aW5hdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jaGFuZ2UobWV0aG9kLCBuZXdVcmwsIG5ld0FzLCBvcHRpb25zKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGRlc3RpbmF0aW9uO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKCk9PntcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuaXNQcmV2aWV3ID0gISFwcm9wcy5fX05fUFJFVklFVztcbiAgICAgICAgICAgICAgICAvLyBoYW5kbGUgU1NHIGRhdGEgNDA0XG4gICAgICAgICAgICAgICAgaWYgKHByb3BzLm5vdEZvdW5kID09PSBTU0dfREFUQV9OT1RfRk9VTkQpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG5vdEZvdW5kUm91dGU7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmZldGNoQ29tcG9uZW50KCcvNDA0Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBub3RGb3VuZFJvdXRlID0gJy80MDQnO1xuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChfKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBub3RGb3VuZFJvdXRlID0gJy9fZXJyb3InO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJvdXRlSW5mbyA9IGF3YWl0IHRoaXMuZ2V0Um91dGVJbmZvKG5vdEZvdW5kUm91dGUsIG5vdEZvdW5kUm91dGUsIHF1ZXJ5LCBhcywgcmVzb2x2ZWRBcywge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2hhbGxvdzogZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgUm91dGVyLmV2ZW50cy5lbWl0KCdiZWZvcmVIaXN0b3J5Q2hhbmdlJywgYXMsIHJvdXRlUHJvcHMpO1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VTdGF0ZShtZXRob2QsIHVybCwgYXMsIG9wdGlvbnMpO1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMuX2ggJiYgcGF0aG5hbWUgPT09ICcvX2Vycm9yJyAmJiAoKHJlZiA9IHNlbGYuX19ORVhUX0RBVEFfXy5wcm9wcykgPT09IG51bGwgfHwgcmVmID09PSB2b2lkIDAgPyB2b2lkIDAgOiAocmVmMSA9IHJlZi5wYWdlUHJvcHMpID09PSBudWxsIHx8IHJlZjEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlZjEuc3RhdHVzQ29kZSkgPT09IDUwMCAmJiAocHJvcHMgPT09IG51bGwgfHwgcHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHByb3BzLnBhZ2VQcm9wcykpIHtcbiAgICAgICAgICAgICAgICAvLyBlbnN1cmUgc3RhdHVzQ29kZSBpcyBzdGlsbCBjb3JyZWN0IGZvciBzdGF0aWMgNTAwIHBhZ2VcbiAgICAgICAgICAgICAgICAvLyB3aGVuIHVwZGF0aW5nIHF1ZXJ5IGluZm9ybWF0aW9uXG4gICAgICAgICAgICAgICAgcHJvcHMucGFnZVByb3BzLnN0YXR1c0NvZGUgPSA1MDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBzaGFsbG93IHJvdXRpbmcgaXMgb25seSBhbGxvd2VkIGZvciBzYW1lIHBhZ2UgVVJMIGNoYW5nZXMuXG4gICAgICAgICAgICBjb25zdCBpc1ZhbGlkU2hhbGxvd1JvdXRlID0gb3B0aW9ucy5zaGFsbG93ICYmIHRoaXMucm91dGUgPT09IHJvdXRlO1xuICAgICAgICAgICAgdmFyIF9zY3JvbGw7XG4gICAgICAgICAgICBjb25zdCBzaG91bGRTY3JvbGwgPSAoX3Njcm9sbCA9IG9wdGlvbnMuc2Nyb2xsKSAhPT0gbnVsbCAmJiBfc2Nyb2xsICE9PSB2b2lkIDAgPyBfc2Nyb2xsIDogIWlzVmFsaWRTaGFsbG93Um91dGU7XG4gICAgICAgICAgICBjb25zdCByZXNldFNjcm9sbCA9IHNob3VsZFNjcm9sbCA/IHtcbiAgICAgICAgICAgICAgICB4OiAwLFxuICAgICAgICAgICAgICAgIHk6IDBcbiAgICAgICAgICAgIH0gOiBudWxsO1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5zZXQocm91dGUsIHBhdGhuYW1lLCBxdWVyeSwgY2xlYW5lZEFzLCByb3V0ZUluZm8sIGZvcmNlZFNjcm9sbCAhPT0gbnVsbCAmJiBmb3JjZWRTY3JvbGwgIT09IHZvaWQgMCA/IGZvcmNlZFNjcm9sbCA6IHJlc2V0U2Nyb2xsKS5jYXRjaCgoZSk9PntcbiAgICAgICAgICAgICAgICBpZiAoZS5jYW5jZWxsZWQpIGVycm9yID0gZXJyb3IgfHwgZTtcbiAgICAgICAgICAgICAgICBlbHNlIHRocm93IGU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICAgIFJvdXRlci5ldmVudHMuZW1pdCgncm91dGVDaGFuZ2VFcnJvcicsIGVycm9yLCBjbGVhbmVkQXMsIHJvdXRlUHJvcHMpO1xuICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9JMThOX1NVUFBPUlQpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5sb2NhbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmxhbmcgPSB0aGlzLmxvY2FsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBSb3V0ZXIuZXZlbnRzLmVtaXQoJ3JvdXRlQ2hhbmdlQ29tcGxldGUnLCBhcywgcm91dGVQcm9wcyk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBjYXRjaCAoZXJyMSkge1xuICAgICAgICAgICAgaWYgKCgwLCBfaXNFcnJvcikuZGVmYXVsdChlcnIxKSAmJiBlcnIxLmNhbmNlbGxlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IGVycjE7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY2hhbmdlU3RhdGUobWV0aG9kLCB1cmwsIGFzLCBvcHRpb25zID0ge1xuICAgIH0pIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygd2luZG93Lmhpc3RvcnkgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihgV2FybmluZzogd2luZG93Lmhpc3RvcnkgaXMgbm90IGF2YWlsYWJsZS5gKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZW9mIHdpbmRvdy5oaXN0b3J5W21ldGhvZF0gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihgV2FybmluZzogd2luZG93Lmhpc3RvcnkuJHttZXRob2R9IGlzIG5vdCBhdmFpbGFibGVgKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1ldGhvZCAhPT0gJ3B1c2hTdGF0ZScgfHwgKDAsIF91dGlscykuZ2V0VVJMKCkgIT09IGFzKSB7XG4gICAgICAgICAgICB0aGlzLl9zaGFsbG93ID0gb3B0aW9ucy5zaGFsbG93O1xuICAgICAgICAgICAgd2luZG93Lmhpc3RvcnlbbWV0aG9kXSh7XG4gICAgICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgICAgIGFzLFxuICAgICAgICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICAgICAgICAgX19OOiB0cnVlLFxuICAgICAgICAgICAgICAgIGlkeDogdGhpcy5faWR4ID0gbWV0aG9kICE9PSAncHVzaFN0YXRlJyA/IHRoaXMuX2lkeCA6IHRoaXMuX2lkeCArIDFcbiAgICAgICAgICAgIH0sIC8vIE1vc3QgYnJvd3NlcnMgY3VycmVudGx5IGlnbm9yZXMgdGhpcyBwYXJhbWV0ZXIsIGFsdGhvdWdoIHRoZXkgbWF5IHVzZSBpdCBpbiB0aGUgZnV0dXJlLlxuICAgICAgICAgICAgLy8gUGFzc2luZyB0aGUgZW1wdHkgc3RyaW5nIGhlcmUgc2hvdWxkIGJlIHNhZmUgYWdhaW5zdCBmdXR1cmUgY2hhbmdlcyB0byB0aGUgbWV0aG9kLlxuICAgICAgICAgICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0hpc3RvcnkvcmVwbGFjZVN0YXRlXG4gICAgICAgICAgICAnJywgYXMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGFzeW5jIGhhbmRsZVJvdXRlSW5mb0Vycm9yKGVyciwgcGF0aG5hbWUsIHF1ZXJ5LCBhcywgcm91dGVQcm9wcywgbG9hZEVycm9yRmFpbCkge1xuICAgICAgICBpZiAoZXJyLmNhbmNlbGxlZCkge1xuICAgICAgICAgICAgLy8gYnViYmxlIHVwIGNhbmNlbGxhdGlvbiBlcnJvcnNcbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoKDAsIF9yb3V0ZUxvYWRlcikuaXNBc3NldEVycm9yKGVycikgfHwgbG9hZEVycm9yRmFpbCkge1xuICAgICAgICAgICAgUm91dGVyLmV2ZW50cy5lbWl0KCdyb3V0ZUNoYW5nZUVycm9yJywgZXJyLCBhcywgcm91dGVQcm9wcyk7XG4gICAgICAgICAgICAvLyBJZiB3ZSBjYW4ndCBsb2FkIHRoZSBwYWdlIGl0IGNvdWxkIGJlIG9uZSBvZiBmb2xsb3dpbmcgcmVhc29uc1xuICAgICAgICAgICAgLy8gIDEuIFBhZ2UgZG9lc24ndCBleGlzdHNcbiAgICAgICAgICAgIC8vICAyLiBQYWdlIGRvZXMgZXhpc3QgaW4gYSBkaWZmZXJlbnQgem9uZVxuICAgICAgICAgICAgLy8gIDMuIEludGVybmFsIGVycm9yIHdoaWxlIGxvYWRpbmcgdGhlIHBhZ2VcbiAgICAgICAgICAgIC8vIFNvLCBkb2luZyBhIGhhcmQgcmVsb2FkIGlzIHRoZSBwcm9wZXIgd2F5IHRvIGRlYWwgd2l0aCB0aGlzLlxuICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBhcztcbiAgICAgICAgICAgIC8vIENoYW5naW5nIHRoZSBVUkwgZG9lc24ndCBibG9jayBleGVjdXRpbmcgdGhlIGN1cnJlbnQgY29kZSBwYXRoLlxuICAgICAgICAgICAgLy8gU28gbGV0J3MgdGhyb3cgYSBjYW5jZWxsYXRpb24gZXJyb3Igc3RvcCB0aGUgcm91dGluZyBsb2dpYy5cbiAgICAgICAgICAgIHRocm93IGJ1aWxkQ2FuY2VsbGF0aW9uRXJyb3IoKTtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgbGV0IENvbXBvbmVudDtcbiAgICAgICAgICAgIGxldCBzdHlsZVNoZWV0cztcbiAgICAgICAgICAgIGxldCBwcm9wcztcbiAgICAgICAgICAgIGlmICh0eXBlb2YgQ29tcG9uZW50ID09PSAndW5kZWZpbmVkJyB8fCB0eXBlb2Ygc3R5bGVTaGVldHMgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgKHsgcGFnZTogQ29tcG9uZW50ICwgc3R5bGVTaGVldHMgIH0gPSBhd2FpdCB0aGlzLmZldGNoQ29tcG9uZW50KCcvX2Vycm9yJykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgcm91dGVJbmZvID0ge1xuICAgICAgICAgICAgICAgIHByb3BzLFxuICAgICAgICAgICAgICAgIENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBzdHlsZVNoZWV0cyxcbiAgICAgICAgICAgICAgICBlcnIsXG4gICAgICAgICAgICAgICAgZXJyb3I6IGVyclxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmICghcm91dGVJbmZvLnByb3BzKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgcm91dGVJbmZvLnByb3BzID0gYXdhaXQgdGhpcy5nZXRJbml0aWFsUHJvcHMoQ29tcG9uZW50LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlcnIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRobmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGdpcEVycikge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBpbiBlcnJvciBwYWdlIGBnZXRJbml0aWFsUHJvcHNgOiAnLCBnaXBFcnIpO1xuICAgICAgICAgICAgICAgICAgICByb3V0ZUluZm8ucHJvcHMgPSB7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJvdXRlSW5mbztcbiAgICAgICAgfSBjYXRjaCAocm91dGVJbmZvRXJyKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5oYW5kbGVSb3V0ZUluZm9FcnJvcigoMCwgX2lzRXJyb3IpLmRlZmF1bHQocm91dGVJbmZvRXJyKSA/IHJvdXRlSW5mb0VyciA6IG5ldyBFcnJvcihyb3V0ZUluZm9FcnIgKyAnJyksIHBhdGhuYW1lLCBxdWVyeSwgYXMsIHJvdXRlUHJvcHMsIHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGFzeW5jIGdldFJvdXRlSW5mbyhyb3V0ZSwgcGF0aG5hbWUsIHF1ZXJ5LCBhcywgcmVzb2x2ZWRBcywgcm91dGVQcm9wcykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgZXhpc3RpbmdSb3V0ZUluZm8gPSB0aGlzLmNvbXBvbmVudHNbcm91dGVdO1xuICAgICAgICAgICAgaWYgKHJvdXRlUHJvcHMuc2hhbGxvdyAmJiBleGlzdGluZ1JvdXRlSW5mbyAmJiB0aGlzLnJvdXRlID09PSByb3V0ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBleGlzdGluZ1JvdXRlSW5mbztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBjYWNoZWRSb3V0ZUluZm8gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAvLyBjYW4gb25seSB1c2Ugbm9uLWluaXRpYWwgcm91dGUgaW5mb1xuICAgICAgICAgICAgLy8gY2Fubm90IHJldXNlIHJvdXRlIGluZm8gaW4gZGV2ZWxvcG1lbnQgc2luY2UgaXQgY2FuIGNoYW5nZSBhZnRlciBITVJcbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ2RldmVsb3BtZW50JyAmJiBleGlzdGluZ1JvdXRlSW5mbyAmJiAhKCdpbml0aWFsJyBpbiBleGlzdGluZ1JvdXRlSW5mbykpIHtcbiAgICAgICAgICAgICAgICBjYWNoZWRSb3V0ZUluZm8gPSBleGlzdGluZ1JvdXRlSW5mbztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHJvdXRlSW5mbyA9IGNhY2hlZFJvdXRlSW5mbyB8fCBhd2FpdCB0aGlzLmZldGNoQ29tcG9uZW50KHJvdXRlKS50aGVuKChyZXMpPT4oe1xuICAgICAgICAgICAgICAgICAgICBDb21wb25lbnQ6IHJlcy5wYWdlLFxuICAgICAgICAgICAgICAgICAgICBzdHlsZVNoZWV0czogcmVzLnN0eWxlU2hlZXRzLFxuICAgICAgICAgICAgICAgICAgICBfX05fU1NHOiByZXMubW9kLl9fTl9TU0csXG4gICAgICAgICAgICAgICAgICAgIF9fTl9TU1A6IHJlcy5tb2QuX19OX1NTUCxcbiAgICAgICAgICAgICAgICAgICAgX19OX1JTQzogISFyZXMucGFnZS5fX25leHRfcnNjX19cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IHsgQ29tcG9uZW50ICwgX19OX1NTRyAsIF9fTl9TU1AgLCBfX05fUlNDICB9ID0gcm91dGVJbmZvO1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGlzVmFsaWRFbGVtZW50VHlwZSAgfSA9IHJlcXVpcmUoJ3JlYWN0LWlzJyk7XG4gICAgICAgICAgICAgICAgaWYgKCFpc1ZhbGlkRWxlbWVudFR5cGUoQ29tcG9uZW50KSkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSBkZWZhdWx0IGV4cG9ydCBpcyBub3QgYSBSZWFjdCBDb21wb25lbnQgaW4gcGFnZTogXCIke3BhdGhuYW1lfVwiYCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IGRhdGFIcmVmO1xuICAgICAgICAgICAgaWYgKF9fTl9TU0cgfHwgX19OX1NTUCB8fCBfX05fUlNDKSB7XG4gICAgICAgICAgICAgICAgZGF0YUhyZWYgPSB0aGlzLnBhZ2VMb2FkZXIuZ2V0RGF0YUhyZWYoe1xuICAgICAgICAgICAgICAgICAgICBocmVmOiAoMCwgX3V0aWxzKS5mb3JtYXRXaXRoVmFsaWRhdGlvbih7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRobmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5XG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICBhc1BhdGg6IHJlc29sdmVkQXMsXG4gICAgICAgICAgICAgICAgICAgIHNzZzogX19OX1NTRyxcbiAgICAgICAgICAgICAgICAgICAgcnNjOiBfX05fUlNDLFxuICAgICAgICAgICAgICAgICAgICBsb2NhbGU6IHRoaXMubG9jYWxlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBwcm9wcyA9IGF3YWl0IHRoaXMuX2dldERhdGEoKCk9Pl9fTl9TU0cgfHwgX19OX1NTUCA/IGZldGNoTmV4dERhdGEoZGF0YUhyZWYsIHRoaXMuaXNTc3IsIGZhbHNlLCBfX05fU1NHID8gdGhpcy5zZGMgOiB0aGlzLnNkciwgISFfX05fU1NHICYmICF0aGlzLmlzUHJldmlldykgOiB0aGlzLmdldEluaXRpYWxQcm9wcyhDb21wb25lbnQsIC8vIHdlIHByb3ZpZGUgQXBwVHJlZSBsYXRlciBzbyB0aGlzIG5lZWRzIHRvIGJlIGBhbnlgXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwYXRobmFtZSxcbiAgICAgICAgICAgICAgICAgICAgcXVlcnksXG4gICAgICAgICAgICAgICAgICAgIGFzUGF0aDogYXMsXG4gICAgICAgICAgICAgICAgICAgIGxvY2FsZTogdGhpcy5sb2NhbGUsXG4gICAgICAgICAgICAgICAgICAgIGxvY2FsZXM6IHRoaXMubG9jYWxlcyxcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdExvY2FsZTogdGhpcy5kZWZhdWx0TG9jYWxlXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAoX19OX1JTQykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgZnJlc2ggLCBkYXRhICB9ID0gYXdhaXQgdGhpcy5fZ2V0RGF0YSgoKT0+dGhpcy5fZ2V0RmxpZ2h0RGF0YShkYXRhSHJlZilcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHByb3BzLnBhZ2VQcm9wcyA9IE9iamVjdC5hc3NpZ24ocHJvcHMucGFnZVByb3BzLCB7XG4gICAgICAgICAgICAgICAgICAgIF9fZmxpZ2h0X3NlcmlhbGl6ZWRfXzogZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgX19mbGlnaHRfZnJlc2hfXzogZnJlc2hcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJvdXRlSW5mby5wcm9wcyA9IHByb3BzO1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRzW3JvdXRlXSA9IHJvdXRlSW5mbztcbiAgICAgICAgICAgIHJldHVybiByb3V0ZUluZm87XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlUm91dGVJbmZvRXJyb3IoKDAsIF9pc0Vycm9yKS5kZWZhdWx0KGVycikgPyBlcnIgOiBuZXcgRXJyb3IoZXJyICsgJycpLCBwYXRobmFtZSwgcXVlcnksIGFzLCByb3V0ZVByb3BzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzZXQocm91dGUsIHBhdGhuYW1lLCBxdWVyeSwgYXMsIGRhdGEsIHJlc2V0U2Nyb2xsKSB7XG4gICAgICAgIHRoaXMuaXNGYWxsYmFjayA9IGZhbHNlO1xuICAgICAgICB0aGlzLnJvdXRlID0gcm91dGU7XG4gICAgICAgIHRoaXMucGF0aG5hbWUgPSBwYXRobmFtZTtcbiAgICAgICAgdGhpcy5xdWVyeSA9IHF1ZXJ5O1xuICAgICAgICB0aGlzLmFzUGF0aCA9IGFzO1xuICAgICAgICByZXR1cm4gdGhpcy5ub3RpZnkoZGF0YSwgcmVzZXRTY3JvbGwpO1xuICAgIH1cbiAgICAvKipcbiAgICogQ2FsbGJhY2sgdG8gZXhlY3V0ZSBiZWZvcmUgcmVwbGFjaW5nIHJvdXRlciBzdGF0ZVxuICAgKiBAcGFyYW0gY2IgY2FsbGJhY2sgdG8gYmUgZXhlY3V0ZWRcbiAgICovIGJlZm9yZVBvcFN0YXRlKGNiKSB7XG4gICAgICAgIHRoaXMuX2JwcyA9IGNiO1xuICAgIH1cbiAgICBvbmx5QUhhc2hDaGFuZ2UoYXMpIHtcbiAgICAgICAgaWYgKCF0aGlzLmFzUGF0aCkgcmV0dXJuIGZhbHNlO1xuICAgICAgICBjb25zdCBbb2xkVXJsTm9IYXNoLCBvbGRIYXNoXSA9IHRoaXMuYXNQYXRoLnNwbGl0KCcjJyk7XG4gICAgICAgIGNvbnN0IFtuZXdVcmxOb0hhc2gsIG5ld0hhc2hdID0gYXMuc3BsaXQoJyMnKTtcbiAgICAgICAgLy8gTWFrZXMgc3VyZSB3ZSBzY3JvbGwgdG8gdGhlIHByb3ZpZGVkIGhhc2ggaWYgdGhlIHVybC9oYXNoIGFyZSB0aGUgc2FtZVxuICAgICAgICBpZiAobmV3SGFzaCAmJiBvbGRVcmxOb0hhc2ggPT09IG5ld1VybE5vSGFzaCAmJiBvbGRIYXNoID09PSBuZXdIYXNoKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBJZiB0aGUgdXJscyBhcmUgY2hhbmdlLCB0aGVyZSdzIG1vcmUgdGhhbiBhIGhhc2ggY2hhbmdlXG4gICAgICAgIGlmIChvbGRVcmxOb0hhc2ggIT09IG5ld1VybE5vSGFzaCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIC8vIElmIHRoZSBoYXNoIGhhcyBjaGFuZ2VkLCB0aGVuIGl0J3MgYSBoYXNoIG9ubHkgY2hhbmdlLlxuICAgICAgICAvLyBUaGlzIGNoZWNrIGlzIG5lY2Vzc2FyeSB0byBoYW5kbGUgYm90aCB0aGUgZW50ZXIgYW5kXG4gICAgICAgIC8vIGxlYXZlIGhhc2ggPT09ICcnIGNhc2VzLiBUaGUgaWRlbnRpdHkgY2FzZSBmYWxscyB0aHJvdWdoXG4gICAgICAgIC8vIGFuZCBpcyB0cmVhdGVkIGFzIGEgbmV4dCByZWxvYWQuXG4gICAgICAgIHJldHVybiBvbGRIYXNoICE9PSBuZXdIYXNoO1xuICAgIH1cbiAgICBzY3JvbGxUb0hhc2goYXMpIHtcbiAgICAgICAgY29uc3QgWywgaGFzaF0gPSBhcy5zcGxpdCgnIycpO1xuICAgICAgICAvLyBTY3JvbGwgdG8gdG9wIGlmIHRoZSBoYXNoIGlzIGp1c3QgYCNgIHdpdGggbm8gdmFsdWUgb3IgYCN0b3BgXG4gICAgICAgIC8vIFRvIG1pcnJvciBicm93c2Vyc1xuICAgICAgICBpZiAoaGFzaCA9PT0gJycgfHwgaGFzaCA9PT0gJ3RvcCcpIHtcbiAgICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbygwLCAwKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBGaXJzdCB3ZSBjaGVjayBpZiB0aGUgZWxlbWVudCBieSBpZCBpcyBmb3VuZFxuICAgICAgICBjb25zdCBpZEVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaGFzaCk7XG4gICAgICAgIGlmIChpZEVsKSB7XG4gICAgICAgICAgICBpZEVsLnNjcm9sbEludG9WaWV3KCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYgdGhlcmUncyBubyBlbGVtZW50IHdpdGggdGhlIGlkLCB3ZSBjaGVjayB0aGUgYG5hbWVgIHByb3BlcnR5XG4gICAgICAgIC8vIFRvIG1pcnJvciBicm93c2Vyc1xuICAgICAgICBjb25zdCBuYW1lRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZShoYXNoKVswXTtcbiAgICAgICAgaWYgKG5hbWVFbCkge1xuICAgICAgICAgICAgbmFtZUVsLnNjcm9sbEludG9WaWV3KCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgdXJsSXNOZXcoYXNQYXRoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFzUGF0aCAhPT0gYXNQYXRoO1xuICAgIH1cbiAgICAvKipcbiAgICogUHJlZmV0Y2ggcGFnZSBjb2RlLCB5b3UgbWF5IHdhaXQgZm9yIHRoZSBkYXRhIGR1cmluZyBwYWdlIHJlbmRlcmluZy5cbiAgICogVGhpcyBmZWF0dXJlIG9ubHkgd29ya3MgaW4gcHJvZHVjdGlvbiFcbiAgICogQHBhcmFtIHVybCB0aGUgaHJlZiBvZiBwcmVmZXRjaGVkIHBhZ2VcbiAgICogQHBhcmFtIGFzUGF0aCB0aGUgYXMgcGF0aCBvZiB0aGUgcHJlZmV0Y2hlZCBwYWdlXG4gICAqLyBhc3luYyBwcmVmZXRjaCh1cmwsIGFzUGF0aCA9IHVybCwgb3B0aW9ucyA9IHtcbiAgICB9KSB7XG4gICAgICAgIGxldCBwYXJzZWQgPSAoMCwgX3BhcnNlUmVsYXRpdmVVcmwpLnBhcnNlUmVsYXRpdmVVcmwodXJsKTtcbiAgICAgICAgbGV0IHsgcGF0aG5hbWUgLCBxdWVyeSAgfSA9IHBhcnNlZDtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9JMThOX1NVUFBPUlQpIHtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLmxvY2FsZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICBwYXRobmFtZSA9ICgwLCBfbm9ybWFsaXplTG9jYWxlUGF0aCkubm9ybWFsaXplTG9jYWxlUGF0aChwYXRobmFtZSwgdGhpcy5sb2NhbGVzKS5wYXRobmFtZTtcbiAgICAgICAgICAgICAgICBwYXJzZWQucGF0aG5hbWUgPSBwYXRobmFtZTtcbiAgICAgICAgICAgICAgICB1cmwgPSAoMCwgX3V0aWxzKS5mb3JtYXRXaXRoVmFsaWRhdGlvbihwYXJzZWQpO1xuICAgICAgICAgICAgICAgIGxldCBwYXJzZWRBcyA9ICgwLCBfcGFyc2VSZWxhdGl2ZVVybCkucGFyc2VSZWxhdGl2ZVVybChhc1BhdGgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxvY2FsZVBhdGhSZXN1bHQgPSAoMCwgX25vcm1hbGl6ZUxvY2FsZVBhdGgpLm5vcm1hbGl6ZUxvY2FsZVBhdGgocGFyc2VkQXMucGF0aG5hbWUsIHRoaXMubG9jYWxlcyk7XG4gICAgICAgICAgICAgICAgcGFyc2VkQXMucGF0aG5hbWUgPSBsb2NhbGVQYXRoUmVzdWx0LnBhdGhuYW1lO1xuICAgICAgICAgICAgICAgIG9wdGlvbnMubG9jYWxlID0gbG9jYWxlUGF0aFJlc3VsdC5kZXRlY3RlZExvY2FsZSB8fCB0aGlzLmRlZmF1bHRMb2NhbGU7XG4gICAgICAgICAgICAgICAgYXNQYXRoID0gKDAsIF91dGlscykuZm9ybWF0V2l0aFZhbGlkYXRpb24ocGFyc2VkQXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBhZ2VzID0gYXdhaXQgdGhpcy5wYWdlTG9hZGVyLmdldFBhZ2VMaXN0KCk7XG4gICAgICAgIGxldCByZXNvbHZlZEFzID0gYXNQYXRoO1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0hBU19SRVdSSVRFUyAmJiBhc1BhdGguc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICBsZXQgcmV3cml0ZXM7XG4gICAgICAgICAgICAoeyBfX3Jld3JpdGVzOiByZXdyaXRlcyAgfSA9IGF3YWl0ICgwLCBfcm91dGVMb2FkZXIpLmdldENsaWVudEJ1aWxkTWFuaWZlc3QoKSk7XG4gICAgICAgICAgICBjb25zdCByZXdyaXRlc1Jlc3VsdCA9ICgwLCBfcmVzb2x2ZVJld3JpdGVzKS5kZWZhdWx0KGFkZEJhc2VQYXRoKGFkZExvY2FsZShhc1BhdGgsIHRoaXMubG9jYWxlKSksIHBhZ2VzLCByZXdyaXRlcywgcGFyc2VkLnF1ZXJ5LCAocCk9PnJlc29sdmVEeW5hbWljUm91dGUocCwgcGFnZXMpXG4gICAgICAgICAgICAsIHRoaXMubG9jYWxlcyk7XG4gICAgICAgICAgICByZXNvbHZlZEFzID0gZGVsTG9jYWxlKGRlbEJhc2VQYXRoKHJld3JpdGVzUmVzdWx0LmFzUGF0aCksIHRoaXMubG9jYWxlKTtcbiAgICAgICAgICAgIGlmIChyZXdyaXRlc1Jlc3VsdC5tYXRjaGVkUGFnZSAmJiByZXdyaXRlc1Jlc3VsdC5yZXNvbHZlZEhyZWYpIHtcbiAgICAgICAgICAgICAgICAvLyBpZiB0aGlzIGRpcmVjdGx5IG1hdGNoZXMgYSBwYWdlIHdlIG5lZWQgdG8gdXBkYXRlIHRoZSBocmVmIHRvXG4gICAgICAgICAgICAgICAgLy8gYWxsb3cgdGhlIGNvcnJlY3QgcGFnZSBjaHVuayB0byBiZSBsb2FkZWRcbiAgICAgICAgICAgICAgICBwYXRobmFtZSA9IHJld3JpdGVzUmVzdWx0LnJlc29sdmVkSHJlZjtcbiAgICAgICAgICAgICAgICBwYXJzZWQucGF0aG5hbWUgPSBwYXRobmFtZTtcbiAgICAgICAgICAgICAgICB1cmwgPSAoMCwgX3V0aWxzKS5mb3JtYXRXaXRoVmFsaWRhdGlvbihwYXJzZWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGFyc2VkLnBhdGhuYW1lID0gcmVzb2x2ZUR5bmFtaWNSb3V0ZShwYXJzZWQucGF0aG5hbWUsIHBhZ2VzKTtcbiAgICAgICAgICAgIGlmIChwYXJzZWQucGF0aG5hbWUgIT09IHBhdGhuYW1lKSB7XG4gICAgICAgICAgICAgICAgcGF0aG5hbWUgPSBwYXJzZWQucGF0aG5hbWU7XG4gICAgICAgICAgICAgICAgcGFyc2VkLnBhdGhuYW1lID0gcGF0aG5hbWU7XG4gICAgICAgICAgICAgICAgdXJsID0gKDAsIF91dGlscykuZm9ybWF0V2l0aFZhbGlkYXRpb24ocGFyc2VkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBQcmVmZXRjaCBpcyBub3Qgc3VwcG9ydGVkIGluIGRldmVsb3BtZW50IG1vZGUgYmVjYXVzZSBpdCB3b3VsZCB0cmlnZ2VyIG9uLWRlbWFuZC1lbnRyaWVzXG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZWZmZWN0cyA9IGF3YWl0IHRoaXMuX3ByZWZsaWdodFJlcXVlc3Qoe1xuICAgICAgICAgICAgYXM6IGFkZEJhc2VQYXRoKGFzUGF0aCksXG4gICAgICAgICAgICBjYWNoZTogdHJ1ZSxcbiAgICAgICAgICAgIHBhZ2VzLFxuICAgICAgICAgICAgcGF0aG5hbWUsXG4gICAgICAgICAgICBxdWVyeVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGVmZmVjdHMudHlwZSA9PT0gJ3Jld3JpdGUnKSB7XG4gICAgICAgICAgICBwYXJzZWQucGF0aG5hbWUgPSBlZmZlY3RzLnJlc29sdmVkSHJlZjtcbiAgICAgICAgICAgIHBhdGhuYW1lID0gZWZmZWN0cy5yZXNvbHZlZEhyZWY7XG4gICAgICAgICAgICBxdWVyeSA9IHtcbiAgICAgICAgICAgICAgICAuLi5xdWVyeSxcbiAgICAgICAgICAgICAgICAuLi5lZmZlY3RzLnBhcnNlZEFzLnF1ZXJ5XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmVzb2x2ZWRBcyA9IGVmZmVjdHMuYXNQYXRoO1xuICAgICAgICAgICAgdXJsID0gKDAsIF91dGlscykuZm9ybWF0V2l0aFZhbGlkYXRpb24ocGFyc2VkKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByb3V0ZSA9ICgwLCBfbm9ybWFsaXplVHJhaWxpbmdTbGFzaCkucmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2gocGF0aG5hbWUpO1xuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAgICAgICB0aGlzLnBhZ2VMb2FkZXIuX2lzU3NnKHJvdXRlKS50aGVuKChpc1NzZyk9PntcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNTc2cgPyBmZXRjaE5leHREYXRhKHRoaXMucGFnZUxvYWRlci5nZXREYXRhSHJlZih7XG4gICAgICAgICAgICAgICAgICAgIGhyZWY6IHVybCxcbiAgICAgICAgICAgICAgICAgICAgYXNQYXRoOiByZXNvbHZlZEFzLFxuICAgICAgICAgICAgICAgICAgICBzc2c6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGxvY2FsZTogdHlwZW9mIG9wdGlvbnMubG9jYWxlICE9PSAndW5kZWZpbmVkJyA/IG9wdGlvbnMubG9jYWxlIDogdGhpcy5sb2NhbGVcbiAgICAgICAgICAgICAgICB9KSwgZmFsc2UsIGZhbHNlLCB0aGlzLnNkYywgdHJ1ZSkgOiBmYWxzZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGhpcy5wYWdlTG9hZGVyW29wdGlvbnMucHJpb3JpdHkgPyAnbG9hZFBhZ2UnIDogJ3ByZWZldGNoJ10ocm91dGUpLCBcbiAgICAgICAgXSk7XG4gICAgfVxuICAgIGFzeW5jIGZldGNoQ29tcG9uZW50KHJvdXRlKSB7XG4gICAgICAgIGxldCBjYW5jZWxsZWQgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgY2FuY2VsID0gdGhpcy5jbGMgPSAoKT0+e1xuICAgICAgICAgICAgY2FuY2VsbGVkID0gdHJ1ZTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgaGFuZGxlQ2FuY2VsbGVkID0gKCk9PntcbiAgICAgICAgICAgIGlmIChjYW5jZWxsZWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihgQWJvcnQgZmV0Y2hpbmcgY29tcG9uZW50IGZvciByb3V0ZTogXCIke3JvdXRlfVwiYCk7XG4gICAgICAgICAgICAgICAgZXJyb3IuY2FuY2VsbGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjYW5jZWwgPT09IHRoaXMuY2xjKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbGMgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgY29tcG9uZW50UmVzdWx0ID0gYXdhaXQgdGhpcy5wYWdlTG9hZGVyLmxvYWRQYWdlKHJvdXRlKTtcbiAgICAgICAgICAgIGhhbmRsZUNhbmNlbGxlZCgpO1xuICAgICAgICAgICAgcmV0dXJuIGNvbXBvbmVudFJlc3VsdDtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICBoYW5kbGVDYW5jZWxsZWQoKTtcbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfZ2V0RGF0YShmbikge1xuICAgICAgICBsZXQgY2FuY2VsbGVkID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IGNhbmNlbCA9ICgpPT57XG4gICAgICAgICAgICBjYW5jZWxsZWQgPSB0cnVlO1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLmNsYyA9IGNhbmNlbDtcbiAgICAgICAgcmV0dXJuIGZuKCkudGhlbigoZGF0YSk9PntcbiAgICAgICAgICAgIGlmIChjYW5jZWwgPT09IHRoaXMuY2xjKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbGMgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGNhbmNlbGxlZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVyciA9IG5ldyBFcnJvcignTG9hZGluZyBpbml0aWFsIHByb3BzIGNhbmNlbGxlZCcpO1xuICAgICAgICAgICAgICAgIGVyci5jYW5jZWxsZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgX2dldEZsaWdodERhdGEoZGF0YUhyZWYpIHtcbiAgICAgICAgY29uc3QgeyBocmVmOiBjYWNoZUtleSAgfSA9IG5ldyBVUkwoZGF0YUhyZWYsIHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcbiAgICAgICAgaWYgKCF0aGlzLmlzUHJldmlldyAmJiB0aGlzLnNkY1tjYWNoZUtleV0pIHtcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgICAgICAgICAgIGZyZXNoOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBkYXRhOiB0aGlzLnNkY1tjYWNoZUtleV1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmZXRjaE5leHREYXRhKGRhdGFIcmVmLCB0cnVlLCB0cnVlLCB0aGlzLnNkYywgZmFsc2UpLnRoZW4oKHNlcmlhbGl6ZWQpPT57XG4gICAgICAgICAgICB0aGlzLnNkY1tjYWNoZUtleV0gPSBzZXJpYWxpemVkO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBmcmVzaDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBkYXRhOiBzZXJpYWxpemVkXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgYXN5bmMgX3ByZWZsaWdodFJlcXVlc3Qob3B0aW9ucykge1xuICAgICAgICB2YXIgcmVmO1xuICAgICAgICBjb25zdCBjbGVhbmVkQXMgPSBkZWxMb2NhbGUoaGFzQmFzZVBhdGgob3B0aW9ucy5hcykgPyBkZWxCYXNlUGF0aChvcHRpb25zLmFzKSA6IG9wdGlvbnMuYXMsIHRoaXMubG9jYWxlKTtcbiAgICAgICAgY29uc3QgZm5zID0gYXdhaXQgdGhpcy5wYWdlTG9hZGVyLmdldE1pZGRsZXdhcmVMaXN0KCk7XG4gICAgICAgIGNvbnN0IHJlcXVpcmVzUHJlZmxpZ2h0ID0gZm5zLnNvbWUoKFttaWRkbGV3YXJlLCBpc1NTUl0pPT57XG4gICAgICAgICAgICByZXR1cm4gKDAsIF9yb3V0ZU1hdGNoZXIpLmdldFJvdXRlTWF0Y2hlcigoMCwgX2dldE1pZGRsZXdhcmVSZWdleCkuZ2V0TWlkZGxld2FyZVJlZ2V4KG1pZGRsZXdhcmUsICFpc1NTUikpKGNsZWFuZWRBcyk7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoIXJlcXVpcmVzUHJlZmxpZ2h0KSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHR5cGU6ICduZXh0J1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwcmVmbGlnaHQgPSBhd2FpdCB0aGlzLl9nZXRQcmVmbGlnaHREYXRhKHtcbiAgICAgICAgICAgIHByZWZsaWdodEhyZWY6IG9wdGlvbnMuYXMsXG4gICAgICAgICAgICBzaG91bGRDYWNoZTogb3B0aW9ucy5jYWNoZVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKChyZWYgPSBwcmVmbGlnaHQucmV3cml0ZSkgPT09IG51bGwgfHwgcmVmID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZWYuc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJzZWQgPSAoMCwgX3BhcnNlUmVsYXRpdmVVcmwpLnBhcnNlUmVsYXRpdmVVcmwoKDAsIF9ub3JtYWxpemVMb2NhbGVQYXRoKS5ub3JtYWxpemVMb2NhbGVQYXRoKGhhc0Jhc2VQYXRoKHByZWZsaWdodC5yZXdyaXRlKSA/IGRlbEJhc2VQYXRoKHByZWZsaWdodC5yZXdyaXRlKSA6IHByZWZsaWdodC5yZXdyaXRlLCB0aGlzLmxvY2FsZXMpLnBhdGhuYW1lKTtcbiAgICAgICAgICAgIGNvbnN0IGZzUGF0aG5hbWUgPSAoMCwgX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2gpLnJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoKHBhcnNlZC5wYXRobmFtZSk7XG4gICAgICAgICAgICBsZXQgbWF0Y2hlZFBhZ2U7XG4gICAgICAgICAgICBsZXQgcmVzb2x2ZWRIcmVmO1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMucGFnZXMuaW5jbHVkZXMoZnNQYXRobmFtZSkpIHtcbiAgICAgICAgICAgICAgICBtYXRjaGVkUGFnZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZWRIcmVmID0gZnNQYXRobmFtZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZWRIcmVmID0gcmVzb2x2ZUR5bmFtaWNSb3V0ZShmc1BhdGhuYW1lLCBvcHRpb25zLnBhZ2VzKTtcbiAgICAgICAgICAgICAgICBpZiAocmVzb2x2ZWRIcmVmICE9PSBwYXJzZWQucGF0aG5hbWUgJiYgb3B0aW9ucy5wYWdlcy5pbmNsdWRlcyhyZXNvbHZlZEhyZWYpKSB7XG4gICAgICAgICAgICAgICAgICAgIG1hdGNoZWRQYWdlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdyZXdyaXRlJyxcbiAgICAgICAgICAgICAgICBhc1BhdGg6IHBhcnNlZC5wYXRobmFtZSxcbiAgICAgICAgICAgICAgICBwYXJzZWRBczogcGFyc2VkLFxuICAgICAgICAgICAgICAgIG1hdGNoZWRQYWdlLFxuICAgICAgICAgICAgICAgIHJlc29sdmVkSHJlZlxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocHJlZmxpZ2h0LnJlZGlyZWN0KSB7XG4gICAgICAgICAgICBpZiAocHJlZmxpZ2h0LnJlZGlyZWN0LnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNsZWFuUmVkaXJlY3QgPSAoMCwgX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2gpLnJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoKCgwLCBfbm9ybWFsaXplTG9jYWxlUGF0aCkubm9ybWFsaXplTG9jYWxlUGF0aChoYXNCYXNlUGF0aChwcmVmbGlnaHQucmVkaXJlY3QpID8gZGVsQmFzZVBhdGgocHJlZmxpZ2h0LnJlZGlyZWN0KSA6IHByZWZsaWdodC5yZWRpcmVjdCwgdGhpcy5sb2NhbGVzKS5wYXRobmFtZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgeyB1cmw6IG5ld1VybCAsIGFzOiBuZXdBcyAgfSA9IHByZXBhcmVVcmxBcyh0aGlzLCBjbGVhblJlZGlyZWN0LCBjbGVhblJlZGlyZWN0KTtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAncmVkaXJlY3QnLFxuICAgICAgICAgICAgICAgICAgICBuZXdVcmwsXG4gICAgICAgICAgICAgICAgICAgIG5ld0FzXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdHlwZTogJ3JlZGlyZWN0JyxcbiAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbjogcHJlZmxpZ2h0LnJlZGlyZWN0XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIC8vIEZvciBTU1IgcmVxdWVzdHMsIHRoZXkgd2lsbCBiZSBoYW5kbGVkIGxpa2Ugbm9ybWFsIHBhZ2VzLlxuICAgICAgICBpZiAocHJlZmxpZ2h0LnJlZnJlc2ggJiYgIXByZWZsaWdodC5zc3IpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdHlwZTogJ3JlZnJlc2gnXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiAnbmV4dCdcbiAgICAgICAgfTtcbiAgICB9XG4gICAgX2dldFByZWZsaWdodERhdGEocGFyYW1zKSB7XG4gICAgICAgIGNvbnN0IHsgcHJlZmxpZ2h0SHJlZiAsIHNob3VsZENhY2hlID1mYWxzZSAgfSA9IHBhcmFtcztcbiAgICAgICAgY29uc3QgeyBocmVmOiBjYWNoZUtleSAgfSA9IG5ldyBVUkwocHJlZmxpZ2h0SHJlZiwgd2luZG93LmxvY2F0aW9uLmhyZWYpO1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJyAmJiAhdGhpcy5pc1ByZXZpZXcgJiYgc2hvdWxkQ2FjaGUgJiYgdGhpcy5zZGVbY2FjaGVLZXldKSB7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuc2RlW2NhY2hlS2V5XSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZldGNoKHByZWZsaWdodEhyZWYsIHtcbiAgICAgICAgICAgIG1ldGhvZDogJ0hFQUQnLFxuICAgICAgICAgICAgY3JlZGVudGlhbHM6ICdzYW1lLW9yaWdpbicsXG4gICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgJ3gtbWlkZGxld2FyZS1wcmVmbGlnaHQnOiAnMSdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSkudGhlbigocmVzKT0+e1xuICAgICAgICAgICAgaWYgKCFyZXMub2spIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBwcmVmbGlnaHQgcmVxdWVzdGApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWRpcmVjdDogcmVzLmhlYWRlcnMuZ2V0KCdMb2NhdGlvbicpLFxuICAgICAgICAgICAgICAgIHJlZnJlc2g6IHJlcy5oZWFkZXJzLmhhcygneC1taWRkbGV3YXJlLXJlZnJlc2gnKSxcbiAgICAgICAgICAgICAgICByZXdyaXRlOiByZXMuaGVhZGVycy5nZXQoJ3gtbWlkZGxld2FyZS1yZXdyaXRlJyksXG4gICAgICAgICAgICAgICAgc3NyOiAhIXJlcy5oZWFkZXJzLmdldCgneC1taWRkbGV3YXJlLXNzcicpXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KS50aGVuKChkYXRhKT0+e1xuICAgICAgICAgICAgaWYgKHNob3VsZENhY2hlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZGVbY2FjaGVLZXldID0gZGF0YTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICB9KS5jYXRjaCgoZXJyKT0+e1xuICAgICAgICAgICAgZGVsZXRlIHRoaXMuc2RlW2NhY2hlS2V5XTtcbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGdldEluaXRpYWxQcm9wcyhDb21wb25lbnQsIGN0eCkge1xuICAgICAgICBjb25zdCB7IENvbXBvbmVudDogQXBwICB9ID0gdGhpcy5jb21wb25lbnRzWycvX2FwcCddO1xuICAgICAgICBjb25zdCBBcHBUcmVlID0gdGhpcy5fd3JhcEFwcChBcHApO1xuICAgICAgICBjdHguQXBwVHJlZSA9IEFwcFRyZWU7XG4gICAgICAgIHJldHVybiAoMCwgX3V0aWxzKS5sb2FkR2V0SW5pdGlhbFByb3BzKEFwcCwge1xuICAgICAgICAgICAgQXBwVHJlZSxcbiAgICAgICAgICAgIENvbXBvbmVudCxcbiAgICAgICAgICAgIHJvdXRlcjogdGhpcyxcbiAgICAgICAgICAgIGN0eFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgYWJvcnRDb21wb25lbnRMb2FkKGFzLCByb3V0ZVByb3BzKSB7XG4gICAgICAgIGlmICh0aGlzLmNsYykge1xuICAgICAgICAgICAgUm91dGVyLmV2ZW50cy5lbWl0KCdyb3V0ZUNoYW5nZUVycm9yJywgYnVpbGRDYW5jZWxsYXRpb25FcnJvcigpLCBhcywgcm91dGVQcm9wcyk7XG4gICAgICAgICAgICB0aGlzLmNsYygpO1xuICAgICAgICAgICAgdGhpcy5jbGMgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuICAgIG5vdGlmeShkYXRhLCByZXNldFNjcm9sbCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdWIoZGF0YSwgdGhpcy5jb21wb25lbnRzWycvX2FwcCddLkNvbXBvbmVudCwgcmVzZXRTY3JvbGwpO1xuICAgIH1cbn1cblJvdXRlci5ldmVudHMgPSAoMCwgX21pdHQpLmRlZmF1bHQoKTtcbmV4cG9ydHMuZGVmYXVsdCA9IFJvdXRlcjtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cm91dGVyLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImdldERvbWFpbkxvY2FsZSIsImFkZExvY2FsZSIsImRlbExvY2FsZSIsImhhc0Jhc2VQYXRoIiwiYWRkQmFzZVBhdGgiLCJkZWxCYXNlUGF0aCIsImlzTG9jYWxVUkwiLCJpbnRlcnBvbGF0ZUFzIiwicmVzb2x2ZUhyZWYiLCJkZWZhdWx0IiwiX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2giLCJyZXF1aXJlIiwiX3JvdXRlTG9hZGVyIiwiX2lzRXJyb3IiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2Rlbm9ybWFsaXplUGFnZVBhdGgiLCJfbm9ybWFsaXplTG9jYWxlUGF0aCIsIl9taXR0IiwiX3V0aWxzIiwiX2lzRHluYW1pYyIsIl9wYXJzZVJlbGF0aXZlVXJsIiwiX3F1ZXJ5c3RyaW5nIiwiX3Jlc29sdmVSZXdyaXRlcyIsIl9yb3V0ZU1hdGNoZXIiLCJfcm91dGVSZWdleCIsIl9nZXRNaWRkbGV3YXJlUmVnZXgiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGV0ZWN0RG9tYWluTG9jYWxlIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9JMThOX1NVUFBPUlQiLCJiYXNlUGF0aCIsIl9fTkVYVF9ST1VURVJfQkFTRVBBVEgiLCJidWlsZENhbmNlbGxhdGlvbkVycm9yIiwiYXNzaWduIiwiRXJyb3IiLCJjYW5jZWxsZWQiLCJhZGRQYXRoUHJlZml4IiwicGF0aCIsInByZWZpeCIsInN0YXJ0c1dpdGgiLCJwYXRobmFtZSIsInBhdGhOb1F1ZXJ5SGFzaCIsIm5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoIiwic3Vic3RyIiwibGVuZ3RoIiwibG9jYWxlIiwibG9jYWxlcyIsImRvbWFpbkxvY2FsZXMiLCJub3JtYWxpemVMb2NhbGVQYXRoIiwiZGV0ZWN0ZWRMb2NhbGUiLCJkZXRlY3RlZERvbWFpbiIsInVuZGVmaW5lZCIsImh0dHAiLCJkb21haW4iLCJkZWZhdWx0TG9jYWxlIiwicGF0aExvd2VyIiwidG9Mb3dlckNhc2UiLCJsb2NhbGVMb3dlciIsInF1ZXJ5SW5kZXgiLCJpbmRleE9mIiwiaGFzaEluZGV4Iiwic3Vic3RyaW5nIiwic2xpY2UiLCJ1cmwiLCJsb2NhdGlvbk9yaWdpbiIsImdldExvY2F0aW9uT3JpZ2luIiwicmVzb2x2ZWQiLCJVUkwiLCJvcmlnaW4iLCJfIiwicm91dGUiLCJhc1BhdGhuYW1lIiwicXVlcnkiLCJpbnRlcnBvbGF0ZWRSb3V0ZSIsImR5bmFtaWNSZWdleCIsImdldFJvdXRlUmVnZXgiLCJkeW5hbWljR3JvdXBzIiwiZ3JvdXBzIiwiZHluYW1pY01hdGNoZXMiLCJnZXRSb3V0ZU1hdGNoZXIiLCJwYXJhbXMiLCJrZXlzIiwiZXZlcnkiLCJwYXJhbSIsInJlcGVhdCIsIm9wdGlvbmFsIiwicmVwbGFjZWQiLCJBcnJheSIsImlzQXJyYXkiLCJyZXBsYWNlIiwibWFwIiwic2VnbWVudCIsImVuY29kZVVSSUNvbXBvbmVudCIsImpvaW4iLCJyZXN1bHQiLCJvbWl0UGFybXNGcm9tUXVlcnkiLCJmaWx0ZXJlZFF1ZXJ5IiwiZm9yRWFjaCIsImtleSIsImluY2x1ZGVzIiwicm91dGVyIiwiaHJlZiIsInJlc29sdmVBcyIsImJhc2UiLCJ1cmxBc1N0cmluZyIsImZvcm1hdFdpdGhWYWxpZGF0aW9uIiwidXJsUHJvdG9NYXRjaCIsIm1hdGNoIiwidXJsQXNTdHJpbmdOb1Byb3RvIiwidXJsUGFydHMiLCJzcGxpdCIsImNvbnNvbGUiLCJlcnJvciIsIm5vcm1hbGl6ZWRVcmwiLCJub3JtYWxpemVSZXBlYXRlZFNsYXNoZXMiLCJhc1BhdGgiLCJmaW5hbFVybCIsImludGVycG9sYXRlZEFzIiwiaXNEeW5hbWljUm91dGUiLCJzZWFyY2hQYXJhbXMiLCJzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5IiwiaGFzaCIsInJlc29sdmVkSHJlZiIsIl8xIiwic3RyaXBPcmlnaW4iLCJwcmVwYXJlVXJsQXMiLCJhcyIsInJlc29sdmVkQXMiLCJocmVmSGFkT3JpZ2luIiwiYXNIYWRPcmlnaW4iLCJwcmVwYXJlZFVybCIsInByZXBhcmVkQXMiLCJyZXNvbHZlRHluYW1pY1JvdXRlIiwicGFnZXMiLCJjbGVhblBhdGhuYW1lIiwicmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2giLCJkZW5vcm1hbGl6ZVBhZ2VQYXRoIiwic29tZSIsInBhZ2UiLCJyZSIsInRlc3QiLCJtYW51YWxTY3JvbGxSZXN0b3JhdGlvbiIsIl9fTkVYVF9TQ1JPTExfUkVTVE9SQVRJT04iLCJ3aW5kb3ciLCJoaXN0b3J5IiwidiIsInNlc3Npb25TdG9yYWdlIiwic2V0SXRlbSIsInJlbW92ZUl0ZW0iLCJuIiwiU1NHX0RBVEFfTk9UX0ZPVU5EIiwiU3ltYm9sIiwiZmV0Y2hSZXRyeSIsImF0dGVtcHRzIiwib3B0cyIsImZldGNoIiwiY3JlZGVudGlhbHMiLCJ0aGVuIiwicmVzIiwib2siLCJzdGF0dXMiLCJqc29uIiwiZGF0YSIsIm5vdEZvdW5kIiwidGV4dCIsImZldGNoTmV4dERhdGEiLCJkYXRhSHJlZiIsImlzU2VydmVyUmVuZGVyIiwiaW5mbGlnaHRDYWNoZSIsInBlcnNpc3RDYWNoZSIsImNhY2hlS2V5IiwibG9jYXRpb24iLCJjYXRjaCIsImVyciIsIm1hcmtBc3NldEVycm9yIiwiUm91dGVyIiwiY29uc3RydWN0b3IiLCJpbml0aWFsUHJvcHMiLCJwYWdlTG9hZGVyIiwiQXBwIiwid3JhcEFwcCIsIkNvbXBvbmVudCIsInN1YnNjcmlwdGlvbiIsImlzRmFsbGJhY2siLCJpc1ByZXZpZXciLCJzZGMiLCJzZHIiLCJzZGUiLCJfaWR4Iiwib25Qb3BTdGF0ZSIsImUiLCJzdGF0ZSIsImNoYW5nZVN0YXRlIiwiZ2V0VVJMIiwiX19OIiwiZm9yY2VkU2Nyb2xsIiwib3B0aW9ucyIsImlkeCIsIkpTT04iLCJzdHJpbmdpZnkiLCJ4Iiwic2VsZiIsInBhZ2VYT2Zmc2V0IiwieSIsInBhZ2VZT2Zmc2V0IiwiZ2V0SXRlbSIsInBhcnNlIiwicGFyc2VSZWxhdGl2ZVVybCIsImlzU3NyIiwiX2JwcyIsImNoYW5nZSIsInNoYWxsb3ciLCJfc2hhbGxvdyIsImNvbXBvbmVudHMiLCJyZWYiLCJpbml0aWFsIiwicHJvcHMiLCJfX05fU1NHIiwiX19OX1NTUCIsIl9fTl9SU0MiLCJfX25leHRfcnNjX18iLCJzdHlsZVNoZWV0cyIsImV2ZW50cyIsImF1dG9FeHBvcnREeW5hbWljIiwiX19ORVhUX0RBVEFfXyIsImF1dG9FeHBvcnQiLCJzdWIiLCJjbGMiLCJfd3JhcEFwcCIsImlzUmVhZHkiLCJnc3NwIiwiZ2lwIiwiYXBwR2lwIiwiZ3NwIiwic2VhcmNoIiwiX19ORVhUX0hBU19SRVdSSVRFUyIsImlzTG9jYWxlRG9tYWluIiwiaG9zdG5hbWUiLCJfc2hvdWxkUmVzb2x2ZUhyZWYiLCJhZGRFdmVudExpc3RlbmVyIiwic2Nyb2xsUmVzdG9yYXRpb24iLCJyZWxvYWQiLCJiYWNrIiwicHVzaCIsIm1ldGhvZCIsInNob3VsZFJlc29sdmVIcmVmIiwiX2giLCJwcmV2TG9jYWxlIiwicGFyc2VkQXMiLCJsb2NhbGVQYXRoUmVzdWx0IiwiZGlkTmF2aWdhdGUiLCJhc05vQmFzZVBhdGgiLCJQcm9taXNlIiwiU1QiLCJwZXJmb3JtYW5jZSIsIm1hcmsiLCJyb3V0ZVByb3BzIiwiX2luRmxpZ2h0Um91dGUiLCJhYm9ydENvbXBvbmVudExvYWQiLCJjbGVhbmVkQXMiLCJsb2NhbGVDaGFuZ2UiLCJvbmx5QUhhc2hDaGFuZ2UiLCJlbWl0Iiwic2Nyb2xsVG9IYXNoIiwibm90aWZ5IiwicGFyc2VkIiwicmV3cml0ZXMiLCJfX3Jld3JpdGVzIiwiYWxsIiwiZ2V0UGFnZUxpc3QiLCJnZXRDbGllbnRCdWlsZE1hbmlmZXN0IiwiZ2V0TWlkZGxld2FyZUxpc3QiLCJ1cmxJc05ldyIsInJld3JpdGVzUmVzdWx0IiwicCIsIm1hdGNoZWRQYWdlIiwiZWZmZWN0IiwiX3ByZWZsaWdodFJlcXVlc3QiLCJjYWNoZSIsInR5cGUiLCJuZXdBcyIsIm5ld1VybCIsImRlc3RpbmF0aW9uIiwicm91dGVSZWdleCIsInJvdXRlTWF0Y2giLCJzaG91bGRJbnRlcnBvbGF0ZSIsIm1pc3NpbmdQYXJhbXMiLCJmaWx0ZXIiLCJ3YXJuIiwicmVmMSIsInJvdXRlSW5mbyIsImdldFJvdXRlSW5mbyIsInBhZ2VQcm9wcyIsIl9fTl9SRURJUkVDVCIsIl9fTl9SRURJUkVDVF9CQVNFX1BBVEgiLCJwYXJzZWRIcmVmIiwiX19OX1BSRVZJRVciLCJub3RGb3VuZFJvdXRlIiwiZmV0Y2hDb21wb25lbnQiLCJzdGF0dXNDb2RlIiwiaXNWYWxpZFNoYWxsb3dSb3V0ZSIsIl9zY3JvbGwiLCJzaG91bGRTY3JvbGwiLCJzY3JvbGwiLCJyZXNldFNjcm9sbCIsInNldCIsImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50IiwibGFuZyIsImVycjEiLCJoYW5kbGVSb3V0ZUluZm9FcnJvciIsImxvYWRFcnJvckZhaWwiLCJpc0Fzc2V0RXJyb3IiLCJnZXRJbml0aWFsUHJvcHMiLCJnaXBFcnIiLCJyb3V0ZUluZm9FcnIiLCJleGlzdGluZ1JvdXRlSW5mbyIsImNhY2hlZFJvdXRlSW5mbyIsIm1vZCIsImlzVmFsaWRFbGVtZW50VHlwZSIsImdldERhdGFIcmVmIiwic3NnIiwicnNjIiwiX2dldERhdGEiLCJmcmVzaCIsIl9nZXRGbGlnaHREYXRhIiwiX19mbGlnaHRfc2VyaWFsaXplZF9fIiwiX19mbGlnaHRfZnJlc2hfXyIsImJlZm9yZVBvcFN0YXRlIiwiY2IiLCJvbGRVcmxOb0hhc2giLCJvbGRIYXNoIiwibmV3VXJsTm9IYXNoIiwibmV3SGFzaCIsInNjcm9sbFRvIiwiaWRFbCIsImdldEVsZW1lbnRCeUlkIiwic2Nyb2xsSW50b1ZpZXciLCJuYW1lRWwiLCJnZXRFbGVtZW50c0J5TmFtZSIsInByZWZldGNoIiwiZWZmZWN0cyIsIl9pc1NzZyIsImlzU3NnIiwicHJpb3JpdHkiLCJjYW5jZWwiLCJoYW5kbGVDYW5jZWxsZWQiLCJjb21wb25lbnRSZXN1bHQiLCJsb2FkUGFnZSIsImZuIiwicmVzb2x2ZSIsInNlcmlhbGl6ZWQiLCJmbnMiLCJyZXF1aXJlc1ByZWZsaWdodCIsIm1pZGRsZXdhcmUiLCJpc1NTUiIsImdldE1pZGRsZXdhcmVSZWdleCIsInByZWZsaWdodCIsIl9nZXRQcmVmbGlnaHREYXRhIiwicHJlZmxpZ2h0SHJlZiIsInNob3VsZENhY2hlIiwicmV3cml0ZSIsImZzUGF0aG5hbWUiLCJyZWRpcmVjdCIsImNsZWFuUmVkaXJlY3QiLCJyZWZyZXNoIiwic3NyIiwiaGVhZGVycyIsImdldCIsImhhcyIsImN0eCIsIkFwcFRyZWUiLCJsb2FkR2V0SW5pdGlhbFByb3BzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/router.js\n"); + +/***/ }), + +/***/ "./src/common/getSiblings.js": +/*!***********************************!*\ + !*** ./src/common/getSiblings.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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nconst getSiblings = e => {\n let siblings = [];\n\n if (!e.parentNode) {\n return siblings;\n }\n\n let sibling = e.parentNode.firstChild;\n\n while (sibling) {\n if (sibling.nodeType === 1 && sibling !== e) {\n siblings.push(sibling);\n }\n\n sibling = sibling.nextSibling;\n }\n\n return siblings;\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getSiblings);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL2dldFNpYmxpbmdzLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSxNQUFNQSxXQUFXLEdBQUlDLENBQUQsSUFBTztBQUN6QixNQUFJQyxRQUFRLEdBQUcsRUFBZjs7QUFDQSxNQUFJLENBQUNELENBQUMsQ0FBQ0UsVUFBUCxFQUFtQjtBQUNqQixXQUFPRCxRQUFQO0FBQ0Q7O0FBQ0QsTUFBSUUsT0FBTyxHQUFHSCxDQUFDLENBQUNFLFVBQUYsQ0FBYUUsVUFBM0I7O0FBQ0EsU0FBT0QsT0FBUCxFQUFnQjtBQUNkLFFBQUlBLE9BQU8sQ0FBQ0UsUUFBUixLQUFxQixDQUFyQixJQUEwQkYsT0FBTyxLQUFLSCxDQUExQyxFQUE2QztBQUMzQ0MsTUFBQUEsUUFBUSxDQUFDSyxJQUFULENBQWNILE9BQWQ7QUFDRDs7QUFDREEsSUFBQUEsT0FBTyxHQUFHQSxPQUFPLENBQUNJLFdBQWxCO0FBQ0Q7O0FBQ0QsU0FBT04sUUFBUDtBQUNELENBYkQ7O0FBZUEsaUVBQWVGLFdBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly92aWUtcmVhY3QvLi9zcmMvY29tbW9uL2dldFNpYmxpbmdzLmpzPzhlNjUiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZ2V0U2libGluZ3MgPSAoZSkgPT4ge1xyXG4gIGxldCBzaWJsaW5ncyA9IFtdO1xyXG4gIGlmICghZS5wYXJlbnROb2RlKSB7XHJcbiAgICByZXR1cm4gc2libGluZ3M7XHJcbiAgfVxyXG4gIGxldCBzaWJsaW5nID0gZS5wYXJlbnROb2RlLmZpcnN0Q2hpbGQ7XHJcbiAgd2hpbGUgKHNpYmxpbmcpIHtcclxuICAgIGlmIChzaWJsaW5nLm5vZGVUeXBlID09PSAxICYmIHNpYmxpbmcgIT09IGUpIHtcclxuICAgICAgc2libGluZ3MucHVzaChzaWJsaW5nKTtcclxuICAgIH1cclxuICAgIHNpYmxpbmcgPSBzaWJsaW5nLm5leHRTaWJsaW5nO1xyXG4gIH1cclxuICByZXR1cm4gc2libGluZ3M7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBnZXRTaWJsaW5ncztcclxuIl0sIm5hbWVzIjpbImdldFNpYmxpbmdzIiwiZSIsInNpYmxpbmdzIiwicGFyZW50Tm9kZSIsInNpYmxpbmciLCJmaXJzdENoaWxkIiwibm9kZVR5cGUiLCJwdXNoIiwibmV4dFNpYmxpbmciXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/common/getSiblings.js\n"); + +/***/ }), + +/***/ "./src/common/initIsotope.js": +/*!***********************************!*\ + !*** ./src/common/initIsotope.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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nconst initIsotope = () => {\n var grid = document.querySelectorAll(\".gallery\");\n var iso;\n\n if (grid.length >= 1) {\n grid.forEach(item => {\n iso = new Isotope(item, {\n itemSelector: \".items\"\n });\n });\n }\n\n var gridMons = document.querySelectorAll(\".gallery-mons\");\n\n if (gridMons.length >= 1) {\n gridMons.forEach(item => {\n iso = new Isotope(item, {\n itemSelector: \".items\",\n masonry: {\n columnWidth: \".width2\"\n }\n });\n });\n }\n\n var filtersElem = document.querySelector(\".filtering\");\n\n if (filtersElem) {\n filtersElem.addEventListener(\"click\", function (event) {\n if (!matchesSelector(event.target, \"span\")) {\n return;\n }\n\n var filterValue = event.target.getAttribute(\"data-filter\");\n filterValue = filterValue;\n iso.arrange({\n filter: filterValue\n });\n });\n var buttonGroups = document.querySelectorAll(\".filtering\");\n\n for (var i = 0, len = buttonGroups.length; i < len; i++) {\n var buttonGroup = buttonGroups[i];\n radioButtonGroup(buttonGroup);\n }\n\n function radioButtonGroup(buttonGroup) {\n buttonGroup.addEventListener(\"click\", function (event) {\n if (!matchesSelector(event.target, \"span\")) {\n return;\n }\n\n buttonGroup.querySelector(\".active\").classList.remove(\"active\");\n event.target.classList.add(\"active\");\n });\n }\n }\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (initIsotope);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL2luaXRJc290b3BlLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSxNQUFNQSxXQUFXLEdBQUcsTUFBTTtBQUN4QixNQUFJQyxJQUFJLEdBQUdDLFFBQVEsQ0FBQ0MsZ0JBQVQsQ0FBMEIsVUFBMUIsQ0FBWDtBQUNBLE1BQUlDLEdBQUo7O0FBQ0EsTUFBSUgsSUFBSSxDQUFDSSxNQUFMLElBQWUsQ0FBbkIsRUFBc0I7QUFDcEJKLElBQUFBLElBQUksQ0FBQ0ssT0FBTCxDQUFjQyxJQUFELElBQVU7QUFDckJILE1BQUFBLEdBQUcsR0FBRyxJQUFJSSxPQUFKLENBQVlELElBQVosRUFBa0I7QUFDdEJFLFFBQUFBLFlBQVksRUFBRTtBQURRLE9BQWxCLENBQU47QUFHRCxLQUpEO0FBS0Q7O0FBRUQsTUFBSUMsUUFBUSxHQUFHUixRQUFRLENBQUNDLGdCQUFULENBQTBCLGVBQTFCLENBQWY7O0FBQ0EsTUFBSU8sUUFBUSxDQUFDTCxNQUFULElBQW1CLENBQXZCLEVBQTBCO0FBQ3hCSyxJQUFBQSxRQUFRLENBQUNKLE9BQVQsQ0FBa0JDLElBQUQsSUFBVTtBQUN6QkgsTUFBQUEsR0FBRyxHQUFHLElBQUlJLE9BQUosQ0FBWUQsSUFBWixFQUFrQjtBQUN0QkUsUUFBQUEsWUFBWSxFQUFFLFFBRFE7QUFFdEJFLFFBQUFBLE9BQU8sRUFBRTtBQUNQQyxVQUFBQSxXQUFXLEVBQUU7QUFETjtBQUZhLE9BQWxCLENBQU47QUFNRCxLQVBEO0FBUUQ7O0FBRUQsTUFBSUMsV0FBVyxHQUFHWCxRQUFRLENBQUNZLGFBQVQsQ0FBdUIsWUFBdkIsQ0FBbEI7O0FBQ0EsTUFBSUQsV0FBSixFQUFpQjtBQUNmQSxJQUFBQSxXQUFXLENBQUNFLGdCQUFaLENBQTZCLE9BQTdCLEVBQXNDLFVBQVVDLEtBQVYsRUFBaUI7QUFDckQsVUFBSSxDQUFDQyxlQUFlLENBQUNELEtBQUssQ0FBQ0UsTUFBUCxFQUFlLE1BQWYsQ0FBcEIsRUFBNEM7QUFDMUM7QUFDRDs7QUFDRCxVQUFJQyxXQUFXLEdBQUdILEtBQUssQ0FBQ0UsTUFBTixDQUFhRSxZQUFiLENBQTBCLGFBQTFCLENBQWxCO0FBQ0FELE1BQUFBLFdBQVcsR0FBR0EsV0FBZDtBQUNBZixNQUFBQSxHQUFHLENBQUNpQixPQUFKLENBQVk7QUFBRUMsUUFBQUEsTUFBTSxFQUFFSDtBQUFWLE9BQVo7QUFDRCxLQVBEO0FBUUEsUUFBSUksWUFBWSxHQUFHckIsUUFBUSxDQUFDQyxnQkFBVCxDQUEwQixZQUExQixDQUFuQjs7QUFDQSxTQUFLLElBQUlxQixDQUFDLEdBQUcsQ0FBUixFQUFXQyxHQUFHLEdBQUdGLFlBQVksQ0FBQ2xCLE1BQW5DLEVBQTJDbUIsQ0FBQyxHQUFHQyxHQUEvQyxFQUFvREQsQ0FBQyxFQUFyRCxFQUF5RDtBQUN2RCxVQUFJRSxXQUFXLEdBQUdILFlBQVksQ0FBQ0MsQ0FBRCxDQUE5QjtBQUNBRyxNQUFBQSxnQkFBZ0IsQ0FBQ0QsV0FBRCxDQUFoQjtBQUNEOztBQUNELGFBQVNDLGdCQUFULENBQTBCRCxXQUExQixFQUF1QztBQUNyQ0EsTUFBQUEsV0FBVyxDQUFDWCxnQkFBWixDQUE2QixPQUE3QixFQUFzQyxVQUFVQyxLQUFWLEVBQWlCO0FBQ3JELFlBQUksQ0FBQ0MsZUFBZSxDQUFDRCxLQUFLLENBQUNFLE1BQVAsRUFBZSxNQUFmLENBQXBCLEVBQTRDO0FBQzFDO0FBQ0Q7O0FBQ0RRLFFBQUFBLFdBQVcsQ0FBQ1osYUFBWixDQUEwQixTQUExQixFQUFxQ2MsU0FBckMsQ0FBK0NDLE1BQS9DLENBQXNELFFBQXREO0FBQ0FiLFFBQUFBLEtBQUssQ0FBQ0UsTUFBTixDQUFhVSxTQUFiLENBQXVCRSxHQUF2QixDQUEyQixRQUEzQjtBQUNELE9BTkQ7QUFPRDtBQUNGO0FBQ0YsQ0FoREQ7O0FBa0RBLGlFQUFlOUIsV0FBZiIsInNvdXJjZXMiOlsid2VicGFjazovL3ZpZS1yZWFjdC8uL3NyYy9jb21tb24vaW5pdElzb3RvcGUuanM/NGFlYSJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBpbml0SXNvdG9wZSA9ICgpID0+IHtcclxuICB2YXIgZ3JpZCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuZ2FsbGVyeVwiKTtcclxuICB2YXIgaXNvO1xyXG4gIGlmIChncmlkLmxlbmd0aCA+PSAxKSB7XHJcbiAgICBncmlkLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgaXNvID0gbmV3IElzb3RvcGUoaXRlbSwge1xyXG4gICAgICAgIGl0ZW1TZWxlY3RvcjogXCIuaXRlbXNcIixcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHZhciBncmlkTW9ucyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuZ2FsbGVyeS1tb25zXCIpO1xyXG4gIGlmIChncmlkTW9ucy5sZW5ndGggPj0gMSkge1xyXG4gICAgZ3JpZE1vbnMuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICBpc28gPSBuZXcgSXNvdG9wZShpdGVtLCB7XHJcbiAgICAgICAgaXRlbVNlbGVjdG9yOiBcIi5pdGVtc1wiLFxyXG4gICAgICAgIG1hc29ucnk6IHtcclxuICAgICAgICAgIGNvbHVtbldpZHRoOiBcIi53aWR0aDJcIixcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdmFyIGZpbHRlcnNFbGVtID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5maWx0ZXJpbmdcIik7XHJcbiAgaWYgKGZpbHRlcnNFbGVtKSB7XHJcbiAgICBmaWx0ZXJzRWxlbS5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XHJcbiAgICAgIGlmICghbWF0Y2hlc1NlbGVjdG9yKGV2ZW50LnRhcmdldCwgXCJzcGFuXCIpKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHZhciBmaWx0ZXJWYWx1ZSA9IGV2ZW50LnRhcmdldC5nZXRBdHRyaWJ1dGUoXCJkYXRhLWZpbHRlclwiKTtcclxuICAgICAgZmlsdGVyVmFsdWUgPSBmaWx0ZXJWYWx1ZTtcclxuICAgICAgaXNvLmFycmFuZ2UoeyBmaWx0ZXI6IGZpbHRlclZhbHVlIH0pO1xyXG4gICAgfSk7XHJcbiAgICB2YXIgYnV0dG9uR3JvdXBzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi5maWx0ZXJpbmdcIik7XHJcbiAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gYnV0dG9uR3JvdXBzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICAgIHZhciBidXR0b25Hcm91cCA9IGJ1dHRvbkdyb3Vwc1tpXTtcclxuICAgICAgcmFkaW9CdXR0b25Hcm91cChidXR0b25Hcm91cCk7XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiByYWRpb0J1dHRvbkdyb3VwKGJ1dHRvbkdyb3VwKSB7XHJcbiAgICAgIGJ1dHRvbkdyb3VwLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcclxuICAgICAgICBpZiAoIW1hdGNoZXNTZWxlY3RvcihldmVudC50YXJnZXQsIFwic3BhblwiKSkge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBidXR0b25Hcm91cC5xdWVyeVNlbGVjdG9yKFwiLmFjdGl2ZVwiKS5jbGFzc0xpc3QucmVtb3ZlKFwiYWN0aXZlXCIpO1xyXG4gICAgICAgIGV2ZW50LnRhcmdldC5jbGFzc0xpc3QuYWRkKFwiYWN0aXZlXCIpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBpbml0SXNvdG9wZSJdLCJuYW1lcyI6WyJpbml0SXNvdG9wZSIsImdyaWQiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJpc28iLCJsZW5ndGgiLCJmb3JFYWNoIiwiaXRlbSIsIklzb3RvcGUiLCJpdGVtU2VsZWN0b3IiLCJncmlkTW9ucyIsIm1hc29ucnkiLCJjb2x1bW5XaWR0aCIsImZpbHRlcnNFbGVtIiwicXVlcnlTZWxlY3RvciIsImFkZEV2ZW50TGlzdGVuZXIiLCJldmVudCIsIm1hdGNoZXNTZWxlY3RvciIsInRhcmdldCIsImZpbHRlclZhbHVlIiwiZ2V0QXR0cmlidXRlIiwiYXJyYW5nZSIsImZpbHRlciIsImJ1dHRvbkdyb3VwcyIsImkiLCJsZW4iLCJidXR0b25Hcm91cCIsInJhZGlvQnV0dG9uR3JvdXAiLCJjbGFzc0xpc3QiLCJyZW1vdmUiLCJhZGQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/common/initIsotope.js\n"); + +/***/ }), + +/***/ "./src/common/navbar.js": +/*!******************************!*\ + !*** ./src/common/navbar.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 */ \"handleDropdown\": () => (/* binding */ handleDropdown),\n/* harmony export */ \"handleMobileDropdown\": () => (/* binding */ handleMobileDropdown)\n/* harmony export */ });\n/* harmony import */ var _getSiblings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getSiblings */ \"./src/common/getSiblings.js\");\n\nconst handleDropdown = e => {\n (0,_getSiblings__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(e.target.parentElement).filter(item => item.classList.contains(\"show\")).map(item => {\n item.classList.remove(\"show\");\n\n if (item.childNodes[0]) {\n item.childNodes[0].setAttribute(\"aria-expanded\", false);\n }\n\n if (item.childNodes[1]) {\n item.childNodes[1].classList.remove(\"show\");\n }\n });\n e.target.parentElement.classList.toggle(\"show\");\n e.target.setAttribute(\"aria-expanded\", true);\n e.target.parentElement.childNodes[1].classList.toggle(\"show\");\n};\nconst handleMobileDropdown = e => {\n document.getElementById(\"navbarSupportedContent\").classList.toggle(\"show-with-trans\");\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL25hdmJhci5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUVPLE1BQU1DLGNBQWMsR0FBSUMsQ0FBRCxJQUFPO0FBQ25DRixFQUFBQSx3REFBVyxDQUFDRSxDQUFDLENBQUNDLE1BQUYsQ0FBU0MsYUFBVixDQUFYLENBQ0dDLE1BREgsQ0FDV0MsSUFBRCxJQUFVQSxJQUFJLENBQUNDLFNBQUwsQ0FBZUMsUUFBZixDQUF3QixNQUF4QixDQURwQixFQUVHQyxHQUZILENBRVFILElBQUQsSUFBVTtBQUNiQSxJQUFBQSxJQUFJLENBQUNDLFNBQUwsQ0FBZUcsTUFBZixDQUFzQixNQUF0Qjs7QUFDQSxRQUFJSixJQUFJLENBQUNLLFVBQUwsQ0FBZ0IsQ0FBaEIsQ0FBSixFQUF3QjtBQUN0QkwsTUFBQUEsSUFBSSxDQUFDSyxVQUFMLENBQWdCLENBQWhCLEVBQW1CQyxZQUFuQixDQUFnQyxlQUFoQyxFQUFpRCxLQUFqRDtBQUNEOztBQUNELFFBQUlOLElBQUksQ0FBQ0ssVUFBTCxDQUFnQixDQUFoQixDQUFKLEVBQXdCO0FBQ3RCTCxNQUFBQSxJQUFJLENBQUNLLFVBQUwsQ0FBZ0IsQ0FBaEIsRUFBbUJKLFNBQW5CLENBQTZCRyxNQUE3QixDQUFvQyxNQUFwQztBQUNEO0FBQ0YsR0FWSDtBQVdBUixFQUFBQSxDQUFDLENBQUNDLE1BQUYsQ0FBU0MsYUFBVCxDQUF1QkcsU0FBdkIsQ0FBaUNNLE1BQWpDLENBQXdDLE1BQXhDO0FBQ0FYLEVBQUFBLENBQUMsQ0FBQ0MsTUFBRixDQUFTUyxZQUFULENBQXNCLGVBQXRCLEVBQXVDLElBQXZDO0FBQ0FWLEVBQUFBLENBQUMsQ0FBQ0MsTUFBRixDQUFTQyxhQUFULENBQXVCTyxVQUF2QixDQUFrQyxDQUFsQyxFQUFxQ0osU0FBckMsQ0FBK0NNLE1BQS9DLENBQXNELE1BQXREO0FBQ0QsQ0FmTTtBQWlCQSxNQUFNQyxvQkFBb0IsR0FBSVosQ0FBRCxJQUFPO0FBQ3pDYSxFQUFBQSxRQUFRLENBQ0xDLGNBREgsQ0FDa0Isd0JBRGxCLEVBRUdULFNBRkgsQ0FFYU0sTUFGYixDQUVvQixpQkFGcEI7QUFHRCxDQUpNIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmllLXJlYWN0Ly4vc3JjL2NvbW1vbi9uYXZiYXIuanM/MWU3NiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0U2libGluZ3MgZnJvbSAnLi9nZXRTaWJsaW5ncydcclxuXHJcbmV4cG9ydCBjb25zdCBoYW5kbGVEcm9wZG93biA9IChlKSA9PiB7XHJcbiAgZ2V0U2libGluZ3MoZS50YXJnZXQucGFyZW50RWxlbWVudClcclxuICAgIC5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uY2xhc3NMaXN0LmNvbnRhaW5zKFwic2hvd1wiKSlcclxuICAgIC5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgaXRlbS5jbGFzc0xpc3QucmVtb3ZlKFwic2hvd1wiKTtcclxuICAgICAgaWYgKGl0ZW0uY2hpbGROb2Rlc1swXSkge1xyXG4gICAgICAgIGl0ZW0uY2hpbGROb2Rlc1swXS5zZXRBdHRyaWJ1dGUoXCJhcmlhLWV4cGFuZGVkXCIsIGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaXRlbS5jaGlsZE5vZGVzWzFdKSB7XHJcbiAgICAgICAgaXRlbS5jaGlsZE5vZGVzWzFdLmNsYXNzTGlzdC5yZW1vdmUoXCJzaG93XCIpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICBlLnRhcmdldC5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoXCJzaG93XCIpO1xyXG4gIGUudGFyZ2V0LnNldEF0dHJpYnV0ZShcImFyaWEtZXhwYW5kZWRcIiwgdHJ1ZSk7XHJcbiAgZS50YXJnZXQucGFyZW50RWxlbWVudC5jaGlsZE5vZGVzWzFdLmNsYXNzTGlzdC50b2dnbGUoXCJzaG93XCIpO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGhhbmRsZU1vYmlsZURyb3Bkb3duID0gKGUpID0+IHtcclxuICBkb2N1bWVudFxyXG4gICAgLmdldEVsZW1lbnRCeUlkKFwibmF2YmFyU3VwcG9ydGVkQ29udGVudFwiKVxyXG4gICAgLmNsYXNzTGlzdC50b2dnbGUoXCJzaG93LXdpdGgtdHJhbnNcIik7XHJcbn07Il0sIm5hbWVzIjpbImdldFNpYmxpbmdzIiwiaGFuZGxlRHJvcGRvd24iLCJlIiwidGFyZ2V0IiwicGFyZW50RWxlbWVudCIsImZpbHRlciIsIml0ZW0iLCJjbGFzc0xpc3QiLCJjb250YWlucyIsIm1hcCIsInJlbW92ZSIsImNoaWxkTm9kZXMiLCJzZXRBdHRyaWJ1dGUiLCJ0b2dnbGUiLCJoYW5kbGVNb2JpbGVEcm9wZG93biIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/common/navbar.js\n"); + +/***/ }), + +/***/ "./src/components/Call-to-action/call-to-action.jsx": +/*!**********************************************************!*\ + !*** ./src/components/Call-to-action/call-to-action.jsx ***! + \**********************************************************/ +/***/ ((__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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _Split__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Split */ \"./src/components/Split/index.jsx\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Call-to-action\\\\call-to-action.jsx\";\n\n\n\n\n\nconst CallToAction = ({\n img\n}) => {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"section\", {\n className: \"call-action section-padding sub-bg bg-img\",\n style: {\n backgroundImage: `url(${img ? img : \"/img/patrn.svg\"})`\n },\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-md-8 col-lg-9\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"content sm-mb30\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(_Split__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n className: \"wow words chars splitting\",\n \"data-splitting\": true,\n children: \"Let\\u2019s Talk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h2\", {\n className: \"wow words chars splitting\",\n \"data-splitting\": true,\n children: [\"about your \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"br\", {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 30\n }, undefined), \" \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"b\", {\n className: \"back-color\",\n children: \"next project\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 37\n }, undefined), \".\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-md-4 col-lg-3 valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: `/contact/contact-light`,\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n className: \"butn bord curve wow fadeInUp\",\n \"data-wow-delay\": \".5s\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: \"Get In Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 9\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 7\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 7,\n columnNumber: 5\n }, undefined);\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (CallToAction);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9DYWxsLXRvLWFjdGlvbi9jYWxsLXRvLWFjdGlvbi5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBOzs7QUFFQSxNQUFNRyxZQUFZLEdBQUcsQ0FBQztBQUFFQyxFQUFBQTtBQUFGLENBQUQsS0FBYTtBQUNoQyxzQkFDRTtBQUNFLGFBQVMsRUFBQywyQ0FEWjtBQUVFLFNBQUssRUFBRTtBQUFFQyxNQUFBQSxlQUFlLEVBQUcsT0FBTUQsR0FBRyxHQUFHQSxHQUFILEdBQVMsZ0JBQWlCO0FBQXZELEtBRlQ7QUFBQSwyQkFJRTtBQUFLLGVBQVMsRUFBQyxXQUFmO0FBQUEsNkJBQ0U7QUFBSyxpQkFBUyxFQUFDLEtBQWY7QUFBQSxnQ0FDRTtBQUFLLG1CQUFTLEVBQUMsbUJBQWY7QUFBQSxpQ0FDRTtBQUFLLHFCQUFTLEVBQUMsaUJBQWY7QUFBQSxtQ0FDRSw4REFBQyw4Q0FBRDtBQUFBLHNDQUNFO0FBQUkseUJBQVMsRUFBQywyQkFBZDtBQUEwQyxzQ0FBMUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBREYsZUFJRTtBQUFJLHlCQUFTLEVBQUMsMkJBQWQ7QUFBMEMsc0NBQTFDO0FBQUEsdURBQ2E7QUFBQTtBQUFBO0FBQUE7QUFBQSw2QkFEYixvQkFDb0I7QUFBRywyQkFBUyxFQUFDLFlBQWI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsNkJBRHBCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSwyQkFKRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxxQkFERixlQWNFO0FBQUssbUJBQVMsRUFBQywwQkFBZjtBQUFBLGlDQUNFLDhEQUFDLGtEQUFEO0FBQU0sZ0JBQUksRUFBRyx3QkFBYjtBQUFBLG1DQUNFO0FBQUcsdUJBQVMsRUFBQyw4QkFBYjtBQUE0QyxnQ0FBZSxLQUEzRDtBQUFBLHFDQUNFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQWRGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFKRjtBQUFBO0FBQUE7QUFBQTtBQUFBLGVBREY7QUErQkQsQ0FoQ0Q7O0FBa0NBLGlFQUFlRCxZQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmllLXJlYWN0Ly4vc3JjL2NvbXBvbmVudHMvQ2FsbC10by1hY3Rpb24vY2FsbC10by1hY3Rpb24uanN4PzFmOTkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgU3BsaXQgZnJvbSBcIi4uL1NwbGl0XCI7XHJcbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcclxuXHJcbmNvbnN0IENhbGxUb0FjdGlvbiA9ICh7IGltZyB9KSA9PiB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uXHJcbiAgICAgIGNsYXNzTmFtZT1cImNhbGwtYWN0aW9uIHNlY3Rpb24tcGFkZGluZyBzdWItYmcgYmctaW1nXCJcclxuICAgICAgc3R5bGU9e3sgYmFja2dyb3VuZEltYWdlOiBgdXJsKCR7aW1nID8gaW1nIDogXCIvaW1nL3BhdHJuLnN2Z1wifSlgIH19XHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLW1kLTggY29sLWxnLTlcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250ZW50IHNtLW1iMzBcIj5cclxuICAgICAgICAgICAgICA8U3BsaXQ+XHJcbiAgICAgICAgICAgICAgICA8aDYgY2xhc3NOYW1lPVwid293IHdvcmRzIGNoYXJzIHNwbGl0dGluZ1wiIGRhdGEtc3BsaXR0aW5nPlxyXG4gICAgICAgICAgICAgICAgICBMZXTigJlzIFRhbGtcclxuICAgICAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgICAgICA8aDIgY2xhc3NOYW1lPVwid293IHdvcmRzIGNoYXJzIHNwbGl0dGluZ1wiIGRhdGEtc3BsaXR0aW5nPlxyXG4gICAgICAgICAgICAgICAgICBhYm91dCB5b3VyIDxiciAvPiA8YiBjbGFzc05hbWU9XCJiYWNrLWNvbG9yXCI+bmV4dCBwcm9qZWN0PC9iPi5cclxuICAgICAgICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICAgICAgPC9TcGxpdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1tZC00IGNvbC1sZy0zIHZhbGlnblwiPlxyXG4gICAgICAgICAgICA8TGluayBocmVmPXtgL2NvbnRhY3QvY29udGFjdC1saWdodGB9PlxyXG4gICAgICAgICAgICAgIDxhIGNsYXNzTmFtZT1cImJ1dG4gYm9yZCBjdXJ2ZSB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi41c1wiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+R2V0IEluIFRvdWNoPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBDYWxsVG9BY3Rpb247XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIlNwbGl0IiwiTGluayIsIkNhbGxUb0FjdGlvbiIsImltZyIsImJhY2tncm91bmRJbWFnZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Call-to-action/call-to-action.jsx\n"); + +/***/ }), + +/***/ "./src/components/Footer/footer.jsx": +/*!******************************************!*\ + !*** ./src/components/Footer/footer.jsx ***! + \******************************************/ +/***/ ((__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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _data_app_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../data/app.json */ \"./src/data/app.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Footer\\\\footer.jsx\";\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\nconst Footer = ({\n hideBGCOLOR\n}) => {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"footer\", {\n className: `${!hideBGCOLOR ? \"sub-bg\" : \"\"}`,\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item md-mb50\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"title\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h5\", {\n children: \"Contact Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"ul\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-map-marker\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 19\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Officeal Address\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"Baghdad Street, Al Dana area, Abu Dhabi, United Arab Emirates\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 19\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-mail\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 19\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Email Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"hello@businesshub.abudhabi\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 19\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-call\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 19\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Call Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"+971 26340404\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 19\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 15\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"logo\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.lightLogo,\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"social\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-facebook-f\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 51,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-twitter\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-instagram\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-youtube\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 61,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 60,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"copy-right\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"\\xA9 2024, 2024 Business HUB international investment - All Rights Reserved.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 15\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 11\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 7\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 5\n }, undefined);\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Footer);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLDJCQVBGLGVBVUU7QUFBRyxvQkFBSSxFQUFDLElBQVI7QUFBQSx1Q0FDRTtBQUFHLDJCQUFTLEVBQUM7QUFBYjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSwyQkFWRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEseUJBSkYsZUFrQkU7QUFBSyx1QkFBUyxFQUFDLFlBQWY7QUFBQSxxQ0FDRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEseUJBbEJGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBbkNGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGVBREY7QUFxRUQsQ0F0RUQ7O0FBd0VBLGlFQUFlQyxNQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmllLXJlYWN0Ly4vc3JjL2NvbXBvbmVudHMvRm9vdGVyL2Zvb3Rlci5qc3g/ZjM5NCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAbmV4dC9uZXh0L25vLWltZy1lbGVtZW50ICovXHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IExpbmsgZnJvbSBcIm5leHQvbGlua1wiO1xyXG5pbXBvcnQgYXBwRGF0YSBmcm9tIFwiLi4vLi4vZGF0YS9hcHAuanNvblwiO1xyXG5cclxuY29uc3QgRm9vdGVyID0gKHsgaGlkZUJHQ09MT1IgfSkgPT4ge1xyXG4gIHJldHVybiAoXHJcbiAgICA8Zm9vdGVyIGNsYXNzTmFtZT17YCR7IWhpZGVCR0NPTE9SID8gXCJzdWItYmdcIiA6IFwiXCJ9YH0+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICA8aDU+Q29udGFjdCBVczwvaDU+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPHVsPlxyXG4gICAgICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJpY29uIHBlLTdzLW1hcC1tYXJrZXJcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoNj5PZmZpY2VhbCBBZGRyZXNzPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgICAgIEJhZ2hkYWQgU3RyZWV0LCBBbCBEYW5hIGFyZWEsIEFidSBEaGFiaSwgVW5pdGVkIEFyYWJcclxuICAgICAgICAgICAgICAgICAgICAgIEVtaXJhdGVzXHJcbiAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24gcGUtN3MtbWFpbFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg2PkVtYWlsIFVzPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICA8cD5oZWxsb0BidXNpbmVzc2h1Yi5hYnVkaGFiaTwvcD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJpY29uIHBlLTdzLWNhbGxcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoNj5DYWxsIFVzPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICA8cD4rOTcxIDI2MzQwNDA0PC9wPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy00XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibG9nb1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9e2FwcERhdGEubGlnaHRMb2dvfSBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic29jaWFsXCI+XHJcbiAgICAgICAgICAgICAgICA8YSBocmVmPVwiIzBcIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwiZmFiIGZhLWZhY2Vib29rLWZcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICA8YSBocmVmPVwiIzBcIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwiZmFiIGZhLXR3aXR0ZXJcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICA8YSBocmVmPVwiIzBcIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwiZmFiIGZhLWluc3RhZ3JhbVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYWIgZmEteW91dHViZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvcHktcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICDCqSAyMDI0LCAyMDI0IEJ1c2luZXNzIEhVQiBpbnRlcm5hdGlvbmFsIGludmVzdG1lbnQgLSBBbGxcclxuICAgICAgICAgICAgICAgICAgUmlnaHRzIFJlc2VydmVkLlxyXG4gICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZm9vdGVyPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBGb290ZXI7XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIkxpbmsiLCJhcHBEYXRhIiwiRm9vdGVyIiwiaGlkZUJHQ09MT1IiLCJsaWdodExvZ28iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/components/Footer/footer.jsx\n"); + +/***/ }), + +/***/ "./src/components/Full-testimonials/full-testimonials.jsx": +/*!****************************************************************!*\ + !*** ./src/components/Full-testimonials/full-testimonials.jsx ***! + \****************************************************************/ +/***/ ((__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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_slick__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-slick */ \"react-slick\");\n/* harmony import */ var react_slick__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_slick__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var slick_carousel_slick_slick_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! slick-carousel/slick/slick.css */ \"./node_modules/slick-carousel/slick/slick.css\");\n/* harmony import */ var slick_carousel_slick_slick_css__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(slick_carousel_slick_slick_css__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var slick_carousel_slick_slick_theme_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! slick-carousel/slick/slick-theme.css */ \"./node_modules/slick-carousel/slick/slick-theme.css\");\n/* harmony import */ var slick_carousel_slick_slick_theme_css__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(slick_carousel_slick_slick_theme_css__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Full-testimonials\\\\full-testimonials.jsx\";\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nclass FullTestimonials extends (react__WEBPACK_IMPORTED_MODULE_0___default().Component) {\n constructor(props) {\n super(props);\n\n _defineProperty(this, \"renderArrows\", () => {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"arrows\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n onClick: () => this.slider.slickNext(),\n className: \"next cursor-pointer\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"pe-7s-angle-right\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 11\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n onClick: () => this.slider.slickPrev(),\n className: \"prev cursor-pointer\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"pe-7s-angle-left\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 7\n }, this);\n });\n }\n\n render() {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"section\", {\n className: `testimonials ${this.props.withIMG ? \"section-padding bg-img\" : this.props.withCOLOR ? \"section-padding back-color\" : this.props.noPadding ? \"\" : \"section-padding\"} ${this.props.classText ? this.props.classText : \"\"}`,\n style: {\n backgroundImage: `${this.props.withIMG ? \"url(/img/testim-img.jpg)\" : \"none\"}`\n },\n children: [this.props.showHead && /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Testimonials\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 19\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: \"We love our clients from all over the world.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 51,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container-fluid position-re\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row wow fadeInUp\",\n \"data-wow-delay\": \".5s\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-12\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((react_slick__WEBPACK_IMPORTED_MODULE_1___default()), {\n className: \"slic-item\",\n ref: c => this.slider = c,\n dots: false,\n infinite: true,\n arrows: true,\n centerMode: true,\n autoplay: true,\n rows: 1,\n slidesToScroll: 1,\n slidesToShow: 3,\n responsive: [{\n breakpoint: 1024,\n settings: {\n slidesToShow: 1,\n centerMode: false\n }\n }, {\n breakpoint: 767,\n settings: {\n slidesToShow: 1,\n centerMode: false\n }\n }, {\n breakpoint: 480,\n settings: {\n slidesToShow: 1,\n centerMode: false\n }\n }],\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"info valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"author\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/clients/1.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 27\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 25\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n className: \"author-name color-font\",\n children: \"Alex Regelman\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 25\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"author-details\",\n children: \"Co-founder, Colabrio\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 25\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 108,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 107,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 106,\n columnNumber: 19\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"p\", {\n children: \"I would highly recommend Vie Digital. I worked with the team on an animation for our \\u2018Click & Collect\\u2019 service.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 121,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 105,\n columnNumber: 17\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"info valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"author\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/clients/1.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 27\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 25\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n className: \"author-name color-font\",\n children: \"Alex Regelman\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 133,\n columnNumber: 25\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"author-details\",\n children: \"Co-founder, Colabrio\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 25\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 19\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"p\", {\n children: \"I would highly recommend Vie Digital. I worked with the team on an animation for our \\u2018Click & Collect\\u2019 service.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 142,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 17\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"info valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"author\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/clients/1.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 152,\n columnNumber: 27\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 151,\n columnNumber: 25\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n className: \"author-name color-font\",\n children: \"Alex Regelman\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 25\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"author-details\",\n children: \"Co-founder, Colabrio\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 25\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 150,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 149,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 19\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"p\", {\n children: \"I would highly recommend Vie Digital. I worked with the team on an animation for our \\u2018Click & Collect\\u2019 service.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 163,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 17\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"info valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"author\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/clients/1.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 27\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 172,\n columnNumber: 25\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n className: \"author-name color-font\",\n children: \"Alex Regelman\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 25\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"author-details\",\n children: \"Co-founder, Colabrio\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 25\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 171,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 19\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"p\", {\n children: \"I would highly recommend Vie Digital. I worked with the team on an animation for our \\u2018Click & Collect\\u2019 service.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 11\n }, this), this.renderArrows()]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 7\n }, this);\n }\n\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (FullTestimonials);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9GdWxsLXRlc3RpbW9uaWFscy9mdWxsLXRlc3RpbW9uaWFscy5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsTUFBTUUsZ0JBQU4sU0FBK0JGLHdEQUEvQixDQUErQztBQUM3Q0ksRUFBQUEsV0FBVyxDQUFDQyxLQUFELEVBQVE7QUFDakIsVUFBTUEsS0FBTjs7QUFEaUIsMENBR0osTUFBTTtBQUNuQiwwQkFDRTtBQUFLLGlCQUFTLEVBQUMsUUFBZjtBQUFBLCtCQUNFO0FBQUssbUJBQVMsRUFBQyxXQUFmO0FBQUEsa0NBQ0U7QUFDRSxtQkFBTyxFQUFFLE1BQU0sS0FBS0MsTUFBTCxDQUFZQyxTQUFaLEVBRGpCO0FBRUUscUJBQVMsRUFBQyxxQkFGWjtBQUFBLG1DQUlFO0FBQU0sdUJBQVMsRUFBQztBQUFoQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSkY7QUFBQTtBQUFBO0FBQUE7QUFBQSxrQkFERixlQU9FO0FBQ0UsbUJBQU8sRUFBRSxNQUFNLEtBQUtELE1BQUwsQ0FBWUUsU0FBWixFQURqQjtBQUVFLHFCQUFTLEVBQUMscUJBRlo7QUFBQSxtQ0FJRTtBQUFNLHVCQUFTLEVBQUM7QUFBaEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUpGO0FBQUE7QUFBQTtBQUFBO0FBQUEsa0JBUEY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxjQURGO0FBa0JELEtBdEJrQjtBQUVsQjs7QUFxQkRDLEVBQUFBLE1BQU0sR0FBRztBQUNQLHdCQUNFO0FBQ0UsZUFBUyxFQUFHLGdCQUNWLEtBQUtKLEtBQUwsQ0FBV0ssT0FBWCxHQUNJLHdCQURKLEdBRUksS0FBS0wsS0FBTCxDQUFXTSxTQUFYLEdBQ0EsNEJBREEsR0FFQSxLQUFLTixLQUFMLENBQVdPLFNBQVgsR0FBdUIsRUFBdkIsR0FDQSxpQkFDTCxJQUFHLEtBQUtQLEtB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QUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxnQkFERixFQStIRyxLQUFLUSxZQUFMLEVBL0hIO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxjQWhDRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsWUFERjtBQW9LRDs7QUE3TDRDOztBQWdNL0MsaUVBQWUzQixnQkFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL3ZpZS1yZWFjdC8uL3NyYy9jb21wb25lbnRzL0Z1bGwtdGVzdGltb25pYWxzL2Z1bGwtdGVzdGltb25pYWxzLmpzeD9mZTBkIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBuZXh0L25leHQvbm8taW1nLWVsZW1lbnQgKi9cclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgU2xpZGVyIGZyb20gXCJyZWFjdC1zbGlja1wiO1xyXG5pbXBvcnQgXCJzbGljay1jYXJvdXNlbC9zbGljay9zbGljay5jc3NcIjtcclxuaW1wb3J0IFwic2xpY2stY2Fyb3VzZWwvc2xpY2svc2xpY2stdGhlbWUuY3NzXCI7XHJcblxyXG5jbGFzcyBGdWxsVGVzdGltb25pYWxzIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcclxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgc3VwZXIocHJvcHMpO1xyXG4gIH1cclxuICByZW5kZXJBcnJvd3MgPSAoKSA9PiB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImFycm93c1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHRoaXMuc2xpZGVyLnNsaWNrTmV4dCgpfVxyXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJuZXh0IGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwicGUtN3MtYW5nbGUtcmlnaHRcIj48L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gdGhpcy5zbGlkZXIuc2xpY2tQcmV2KCl9XHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cInByZXYgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJwZS03cy1hbmdsZS1sZWZ0XCI+PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgKTtcclxuICB9O1xyXG4gIHJlbmRlcigpIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIDxzZWN0aW9uXHJcbiAgICAgICAgY2xhc3NOYW1lPXtgdGVzdGltb25pYWxzICR7XHJcbiAgICAgICAgICB0aGlzLnByb3BzLndpdGhJTUdcclxuICAgICAgICAgICAgPyBcInNlY3Rpb24tcGFkZGluZyBiZy1pbWdcIlxyXG4gICAgICAgICAgICA6IHRoaXMucHJvcHMud2l0aENPTE9SXHJcbiAgICAgICAgICAgID8gXCJzZWN0aW9uLXBhZGRpbmcgYmFjay1jb2xvclwiXHJcbiAgICAgICAgICAgIDogdGhpcy5wcm9wcy5ub1BhZGRpbmcgPyBcIlwiXHJcbiAgICAgICAgICAgIDogXCJzZWN0aW9uLXBhZGRpbmdcIlxyXG4gICAgICAgIH0gJHt0aGlzLnByb3BzLmNsYXNzVGV4dCA/IHRoaXMucHJvcHMuY2xhc3NUZXh0IDogXCJcIn1gfVxyXG4gICAgICAgIHN0eWxlPXt7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kSW1hZ2U6IGAke1xyXG4gICAgICAgICAgICB0aGlzLnByb3BzLndpdGhJTUcgPyBcInVybCgvaW1nL3Rlc3RpbS1pbWcuanBnKVwiIDogXCJub25lXCJcclxuICAgICAgICAgIH1gLFxyXG4gICAgICAgIH19XHJcbiAgICAgID5cclxuICAgICAgICB7dGhpcy5wcm9wcy5zaG93SGVhZCAmJiAoXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOCBjb2wtbWQtMTBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2VjLWhlYWQgIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxoNiBjbGFzc05hbWU9XCJ3b3cgZmFkZUluXCIgZGF0YS13b3ctZGVsYXk9XCIuNXNcIj5cclxuICAgICAgICAgICAgICAgICAgICBUZXN0aW1vbmlhbHNcclxuICAgICAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cIndvdyBjb2xvci1mb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgV2UgbG92ZSBvdXIgY2xpZW50cyBmcm9tIGFsbCBvdmVyIHRoZSB3b3JsZC5cclxuICAgICAgICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICl9XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyLWZsdWlkIHBvc2l0aW9uLXJlXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi41c1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0xMlwiPlxyXG4gICAgICAgICAgICAgIDxTbGlkZXJcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInNsaWMtaXRlbVwiXHJcbiAgICAgICAgICAgICAgICB7Li4ue1xyXG4gICAgICAgICAgICAgICAgICByZWY6IChjKSA9PiAodGhpcy5zbGlkZXIgPSBjKSxcclxuICAgICAgICAgICAgICAgICAgZG90czogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgIGluZmluaXRlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICBhcnJvd3M6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgIGNlbnRlck1vZGU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgIGF1dG9wbGF5OiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICByb3dzOiAxLFxyXG4gICAgICAgICAgICAgICAgICBzbGlkZXNUb1Njcm9sbDogMSxcclxuICAgICAgICAgICAgICAgICAgc2xpZGVzVG9TaG93OiAzLFxyXG4gICAgICAgICAgICAgICAgICByZXNwb25zaXZlOiBbXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludDogMTAyNCxcclxuICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlc1RvU2hvdzogMSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2VudGVyTW9kZTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludDogNzY3LFxyXG4gICAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3M6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzVG9TaG93OiAxLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjZW50ZXJNb2RlOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBicmVha3BvaW50OiA0ODAsXHJcbiAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5nczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXNUb1Nob3c6IDEsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNlbnRlck1vZGU6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbmZvIHZhbGlnblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhdXRob3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvY2xpZW50cy8xLmpwZ1wiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDYgY2xhc3NOYW1lPVwiYXV0aG9yLW5hbWUgY29sb3ItZm9udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEFsZXggUmVnZWxtYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiYXV0aG9yLWRldGFpbHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBDby1mb3VuZGVyLCBDb2xhYnJpb1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgIEkgd291bGQgaGlnaGx5IHJlY29tbWVuZCBWaWUgRGlnaXRhbC4gSSB3b3JrZWQgd2l0aCB0aGUgdGVhbVxyXG4gICAgICAgICAgICAgICAgICAgIG9uIGFuIGFuaW1hdGlvbiBmb3Igb3VyIOKAmENsaWNrICZhbXA7IENvbGxlY3TigJkgc2VydmljZS5cclxuICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbmZvIHZhbGlnblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhdXRob3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvY2xpZW50cy8xLmpwZ1wiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDYgY2xhc3NOYW1lPVwiYXV0aG9yLW5hbWUgY29sb3ItZm9udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEFsZXggUmVnZWxtYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiYXV0aG9yLWRldGFpbHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBDby1mb3VuZGVyLCBDb2xhYnJpb1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgIEkgd291bGQgaGlnaGx5IHJlY29tbWVuZCBWaWUgRGlnaXRhbC4gSSB3b3JrZWQgd2l0aCB0aGUgdGVhbVxyXG4gICAgICAgICAgICAgICAgICAgIG9uIGFuIGFuaW1hdGlvbiBmb3Igb3VyIOKAmENsaWNrICZhbXA7IENvbGxlY3TigJkgc2VydmljZS5cclxuICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbmZvIHZhbGlnblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhdXRob3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvY2xpZW50cy8xLmpwZ1wiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDYgY2xhc3NOYW1lPVwiYXV0aG9yLW5hbWUgY29sb3ItZm9udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEFsZXggUmVnZWxtYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiYXV0aG9yLWRldGFpbHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBDby1mb3VuZGVyLCBDb2xhYnJpb1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgIEkgd291bGQgaGlnaGx5IHJlY29tbWVuZCBWaWUgRGlnaXRhbC4gSSB3b3JrZWQgd2l0aCB0aGUgdGVhbVxyXG4gICAgICAgICAgICAgICAgICAgIG9uIGFuIGFuaW1hdGlvbiBmb3Igb3VyIOKAmENsaWNrICZhbXA7IENvbGxlY3TigJkgc2VydmljZS5cclxuICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbmZvIHZhbGlnblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhdXRob3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvY2xpZW50cy8xLmpwZ1wiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDYgY2xhc3NOYW1lPVwiYXV0aG9yLW5hbWUgY29sb3ItZm9udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEFsZXggUmVnZWxtYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiYXV0aG9yLWRldGFpbHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBDby1mb3VuZGVyLCBDb2xhYnJpb1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgIEkgd291bGQgaGlnaGx5IHJlY29tbWVuZCBWaWUgRGlnaXRhbC4gSSB3b3JrZWQgd2l0aCB0aGUgdGVhbVxyXG4gICAgICAgICAgICAgICAgICAgIG9uIGFuIGFuaW1hdGlvbiBmb3Igb3VyIOKAmENsaWNrICZhbXA7IENvbGxlY3TigJkgc2VydmljZS5cclxuICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9TbGlkZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICB7dGhpcy5yZW5kZXJBcnJvd3MoKX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9zZWN0aW9uPlxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IEZ1bGxUZXN0aW1vbmlhbHM7XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIlNsaWRlciIsIkZ1bGxUZXN0aW1vbmlhbHMiLCJDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwic2xpZGVyIiwic2xpY2tOZXh0Iiwic2xpY2tQcmV2IiwicmVuZGVyIiwid2l0aElNRyIsIndpdGhDT0xPUiIsIm5vUGFkZGluZyIsImNsYXNzVGV4dCIsImJhY2tncm91bmRJbWFnZSIsInNob3dIZWFkIiwicmVmIiwiYyIsImRvdHMiLCJpbmZpbml0ZSIsImFycm93cyIsImNlbnRlck1vZGUiLCJhdXRvcGxheSIsInJvd3MiLCJzbGlkZXNUb1Njcm9sbCIsInNsaWRlc1RvU2hvdyIsInJlc3BvbnNpdmUiLCJicmVha3BvaW50Iiwic2V0dGluZ3MiLCJyZW5kZXJBcnJvd3MiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/components/Full-testimonials/full-testimonials.jsx\n"); + +/***/ }), + +/***/ "./src/components/Intro2/intro2.jsx": +/*!******************************************!*\ + !*** ./src/components/Intro2/intro2.jsx ***! + \******************************************/ +/***/ ((__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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Intro2\\\\intro2.jsx\";\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\nconst Intro2 = ({\n sliderRef\n}) => {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"header\", {\n ref: sliderRef,\n className: \"slider-st valign position-re\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"col-lg-6 valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"cont md-mb50\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"sub-title mb-5\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"h6\", {\n children: \"Digital Consulting Agency\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"h1\", {\n className: \"mb-10 fw-600\",\n children: \"Unique Business Consulting.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"p\", {\n children: \"We help our clients succeed by creating brand identities, digital experiences, and print materials.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: `/about/about-dark`,\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"a\", {\n className: \"butn bord curve mt-30\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"span\", {\n children: \"About Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 15\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"col-lg-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"img\", {\n src: \"/img/slid/001.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 9\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 7\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"line bottom left\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 7\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 7,\n columnNumber: 5\n }, undefined);\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Intro2);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9JbnRybzIvaW50cm8yLmpzeC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7OztBQUVBLE1BQU1FLE1BQU0sR0FBRyxDQUFDO0FBQUVDLEVBQUFBO0FBQUYsQ0FBRCxLQUFtQjtBQUNoQyxzQkFDRTtBQUFRLE9BQUcsRUFBRUEsU0FBYjtBQUF3QixhQUFTLEVBQUMsOEJBQWxDO0FBQUEsNEJBQ0U7QUFBSyxlQUFTLEVBQUMsV0FBZjtBQUFBLDZCQUNFO0FBQUssaUJBQVMsRUFBQyxLQUFmO0FBQUEsZ0NBQ0U7QUFBSyxtQkFBUyxFQUFDLGlCQUFmO0FBQUEsaUNBQ0U7QUFBSyxxQkFBUyxFQUFDLGNBQWY7QUFBQSxvQ0FDRTtBQUFLLHVCQUFTLEVBQUMsZ0JBQWY7QUFBQSxxQ0FDRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEseUJBREYsZUFJRTtBQUFJLHVCQUFTLEVBQUMsY0FBZDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSx5QkFKRixlQUtFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHlCQUxGLGVBU0UsOERBQUMsa0RBQUQ7QUFDRSxrQkFBSSxFQUFHLG1CQURUO0FBQUEscUNBR0U7QUFBRyx5QkFBUyxFQUFDLHVCQUFiO0FBQUEsdUNBQ0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSEY7QUFBQTtBQUFBO0FBQUE7QUFBQSx5QkFURjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQURGLGVBb0JFO0FBQUssbUJBQVMsRUFBQyxVQUFmO0FBQUEsaUNBQ0U7QUFBSyxxQkFBUyxFQUFDLEtBQWY7QUFBQSxtQ0FDRTtBQUFLLGlCQUFHLEVBQUMsbUJBQVQ7QUFBNkIsaUJBQUcsRUFBQztBQUFqQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBcEJGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBREYsZUE2QkU7QUFBSyxlQUFTLEVBQUM7QUFBZjtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQTdCRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFERjtBQWlDRCxDQWxDRDs7QUFvQ0EsaUVBQWVELE1BQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly92aWUtcmVhY3QvLi9zcmMvY29tcG9uZW50cy9JbnRybzIvaW50cm8yLmpzeD85MGUwIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBuZXh0L25leHQvbm8taW1nLWVsZW1lbnQgKi9cclxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xyXG5pbXBvcnQgTGluayBmcm9tICduZXh0L2xpbmsnXHJcblxyXG5jb25zdCBJbnRybzIgPSAoeyBzbGlkZXJSZWYgfSkgPT4ge1xyXG4gIHJldHVybiAoXHJcbiAgICA8aGVhZGVyIHJlZj17c2xpZGVyUmVmfSBjbGFzc05hbWU9XCJzbGlkZXItc3QgdmFsaWduIHBvc2l0aW9uLXJlXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTYgdmFsaWduXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udCBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzdWItdGl0bGUgbWItNVwiPlxyXG4gICAgICAgICAgICAgICAgPGg2PkRpZ2l0YWwgQ29uc3VsdGluZyBBZ2VuY3k8L2g2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxoMSBjbGFzc05hbWU9XCJtYi0xMCBmdy02MDBcIj5VbmlxdWUgQnVzaW5lc3MgQ29uc3VsdGluZy48L2gxPlxyXG4gICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgV2UgaGVscCBvdXIgY2xpZW50cyBzdWNjZWVkIGJ5IGNyZWF0aW5nIGJyYW5kIGlkZW50aXRpZXMsXHJcbiAgICAgICAgICAgICAgICBkaWdpdGFsIGV4cGVyaWVuY2VzLCBhbmQgcHJpbnQgbWF0ZXJpYWxzLlxyXG4gICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICA8TGlua1xyXG4gICAgICAgICAgICAgICAgaHJlZj17YC9hYm91dC9hYm91dC1kYXJrYH1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8YSBjbGFzc05hbWU9XCJidXRuIGJvcmQgY3VydmUgbXQtMzBcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4+QWJvdXQgVXM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy9zbGlkLzAwMS5qcGdcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJsaW5lIGJvdHRvbSBsZWZ0XCI+PC9kaXY+XHJcbiAgICA8L2hlYWRlcj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgSW50cm8yIl0sIm5hbWVzIjpbIlJlYWN0IiwiTGluayIsIkludHJvMiIsInNsaWRlclJlZiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Intro2/intro2.jsx\n"); + +/***/ }), + +/***/ "./src/components/Navbar/navbar.jsx": +/*!******************************************!*\ + !*** ./src/components/Navbar/navbar.jsx ***! + \******************************************/ +/***/ ((__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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _data_app_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../data/app.json */ \"./src/data/app.json\");\n/* harmony import */ var _common_navbar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/navbar */ \"./src/common/navbar.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Navbar\\\\navbar.jsx\";\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nconst Navbar = ({\n lr,\n nr,\n theme\n}) => {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"nav\", {\n ref: nr,\n className: `navbar navbar-expand-lg change ${theme === \"themeL\" ? \"light\" : \"\"}`,\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"a\", {\n className: \"logo\",\n children: theme ? theme === \"themeL\" ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n ref: lr,\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.darkLogo,\n alt: \"logo\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 17\n }, undefined) : /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n ref: lr,\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.lightLogo,\n alt: \"logo\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 17\n }, undefined) : /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n ref: lr,\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.lightLogo,\n alt: \"logo\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 11\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 9\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"button\", {\n className: \"navbar-toggler\",\n type: \"button\",\n onClick: _common_navbar__WEBPACK_IMPORTED_MODULE_3__.handleMobileDropdown,\n \"data-toggle\": \"collapse\",\n \"data-target\": \"#navbarSupportedContent\",\n \"aria-controls\": \"navbarSupportedContent\",\n \"aria-expanded\": \"false\",\n \"aria-label\": \"Toggle navigation\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"icon-bar\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"i\", {\n className: \"fas fa-bars\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"collapse navbar-collapse\",\n id: \"navbarSupportedContent\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"ul\", {\n className: \"navbar-nav ml-auto\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"nav-link \",\n children: \"Home\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 13\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: `/about`,\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"a\", {\n className: \"nav-link\",\n children: \"Who we are\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 13\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: `/services`,\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"nav-link\",\n children: \"Our Services\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 59,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 13\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: `/blog/blog-light`,\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"nav-link \",\n children: \"Blog\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 13\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: `/contact/contact-light`,\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"a\", {\n className: \"nav-link\",\n children: \"Contact\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 13\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 7\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, undefined);\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Navbar);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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RUFBRyxrQkFBYjtBQUFBLHFDQUNFO0FBQU0seUJBQVMsRUFBQyxXQUFoQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQWhCRixlQXFCRTtBQUFJLHFCQUFTLEVBQUMsVUFBZDtBQUFBLG1DQUNFLDhEQUFDLGtEQUFEO0FBQU0sa0JBQUksRUFBRyx3QkFBYjtBQUFBLHFDQUNFO0FBQUcseUJBQVMsRUFBQyxVQUFiO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBckJGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsbUJBOUJGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU5GO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFERjtBQXFFRCxDQXRFRDs7QUF3RUEsaUVBQWVDLE1BQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly92aWUtcmVhY3QvLi9zcmMvY29tcG9uZW50cy9OYXZiYXIvbmF2YmFyLmpzeD83YWYwIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBuZXh0L25leHQvbm8taW1nLWVsZW1lbnQgKi9cclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgTGluayBmcm9tIFwibmV4dC9saW5rXCI7XHJcbmltcG9ydCBhcHBEYXRhIGZyb20gXCIuLi8uLi9kYXRhL2FwcC5qc29uXCI7XHJcbmltcG9ydCB7IGhhbmRsZURyb3Bkb3duLCBoYW5kbGVNb2JpbGVEcm9wZG93biB9IGZyb20gXCIuLi8uLi9jb21tb24vbmF2YmFyXCI7XHJcblxyXG5jb25zdCBOYXZiYXIgPSAoeyBsciwgbnIsIHRoZW1lIH0pID0+IHtcclxuICByZXR1cm4gKFxyXG4gICAgPG5hdlxyXG4gICAgICByZWY9e25yfVxyXG4gICAgICBjbGFzc05hbWU9e2BuYXZiYXIgbmF2YmFyLWV4cGFuZC1sZyBjaGFuZ2UgJHtcclxuICAgICAgICB0aGVtZSA9PT0gXCJ0aGVtZUxcIiA/IFwibGlnaHRcIiA6IFwiXCJcclxuICAgICAgfWB9XHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPExpbmsgaHJlZj1cIi9cIj5cclxuICAgICAgICAgIDxhIGNsYXNzTmFtZT1cImxvZ29cIj5cclxuICAgICAgICAgICAge3RoZW1lID8gKFxyXG4gICAgICAgICAgICAgIHRoZW1lID09PSBcInRoZW1lTFwiID8gKFxyXG4gICAgICAgICAgICAgICAgPGltZyByZWY9e2xyfSBzcmM9e2FwcERhdGEuZGFya0xvZ299IGFsdD1cImxvZ29cIiAvPlxyXG4gICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICA8aW1nIHJlZj17bHJ9IHNyYz17YXBwRGF0YS5saWdodExvZ299IGFsdD1cImxvZ29cIiAvPlxyXG4gICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICA8aW1nIHJlZj17bHJ9IHNyYz17YXBwRGF0YS5saWdodExvZ299IGFsdD1cImxvZ29cIiAvPlxyXG4gICAgICAgICAgICApfVxyXG4gICAgICAgICAgPC9hPlxyXG4gICAgICAgIDwvTGluaz5cclxuXHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgY2xhc3NOYW1lPVwibmF2YmFyLXRvZ2dsZXJcIlxyXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVNb2JpbGVEcm9wZG93bn1cclxuICAgICAgICAgIGRhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIlxyXG4gICAgICAgICAgZGF0YS10YXJnZXQ9XCIjbmF2YmFyU3VwcG9ydGVkQ29udGVudFwiXHJcbiAgICAgICAgICBhcmlhLWNvbnRyb2xzPVwibmF2YmFyU3VwcG9ydGVkQ29udGVudFwiXHJcbiAgICAgICAgICBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIlxyXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIlRvZ2dsZSBuYXZpZ2F0aW9uXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJpY29uLWJhclwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYXMgZmEtYmFyc1wiPjwvaT5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xsYXBzZSBuYXZiYXItY29sbGFwc2VcIiBpZD1cIm5hdmJhclN1cHBvcnRlZENvbnRlbnRcIj5cclxuICAgICAgICAgIDx1bCBjbGFzc05hbWU9XCJuYXZiYXItbmF2IG1sLWF1dG9cIj5cclxuICAgICAgICAgICAgPGxpIGNsYXNzTmFtZT1cIm5hdi1pdGVtIFwiPlxyXG4gICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJuYXYtbGluayBcIj5Ib21lPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgPGxpIGNsYXNzTmFtZT1cIm5hdi1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgPExpbmsgaHJlZj17YC9hYm91dGB9PlxyXG4gICAgICAgICAgICAgICAgPGEgY2xhc3NOYW1lPVwibmF2LWxpbmtcIj5XaG8gd2UgYXJlPC9hPlxyXG4gICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgPGxpIGNsYXNzTmFtZT1cIm5hdi1pdGVtIFwiPlxyXG4gICAgICAgICAgICAgIDxMaW5rIGhyZWY9e2Avc2VydmljZXNgfT5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm5hdi1saW5rXCI+T3VyIFNlcnZpY2VzPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgPGxpIGNsYXNzTmFtZT1cIm5hdi1pdGVtIFwiPlxyXG4gICAgICAgICAgICAgIDxMaW5rIGhyZWY9e2AvYmxvZy9ibG9nLWxpZ2h0YH0+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJuYXYtbGluayBcIj5CbG9nPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgPGxpIGNsYXNzTmFtZT1cIm5hdi1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgPExpbmsgaHJlZj17YC9jb250YWN0L2NvbnRhY3QtbGlnaHRgfT5cclxuICAgICAgICAgICAgICAgIDxhIGNsYXNzTmFtZT1cIm5hdi1saW5rXCI+Q29udGFjdDwvYT5cclxuICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICA8L3VsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmF2PlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBOYXZiYXI7XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIkxpbmsiLCJhcHBEYXRhIiwiaGFuZGxlRHJvcGRvd24iLCJoYW5kbGVNb2JpbGVEcm9wZG93biIsIk5hdmJhciIsImxyIiwibnIiLCJ0aGVtZSIsImRhcmtMb2dvIiwibGlnaHRMb2dvIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Navbar/navbar.jsx\n"); + +/***/ }), + +/***/ "./src/components/Portfolio/portfolio.jsx": +/*!************************************************!*\ + !*** ./src/components/Portfolio/portfolio.jsx ***! + \************************************************/ +/***/ ((__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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _common_initIsotope__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/initIsotope */ \"./src/common/initIsotope.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Portfolio\\\\portfolio.jsx\";\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\nconst Portfolio = ({\n grid,\n filterPosition\n}) => {\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(() => {\n setTimeout(() => {\n (0,_common_initIsotope__WEBPACK_IMPORTED_MODULE_2__[\"default\"])();\n }, 1000);\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"section\", {\n className: \"portfolio section-padding pb-70\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Portfolio\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: [\"Our Recent Web Design & \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"br\", {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 45\n }, undefined), \" Some Past Projects.\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 15\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 11\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 9\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 7\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: `${grid === 3 ? \"container-fluid\" : \"container\"}`,\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: `filtering ${filterPosition === \"center\" ? \"text-center\" : filterPosition === \"left\" ? \"text-left\" : \"text-right\"} col-12`,\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"filter\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n \"data-filter\": \"*\",\n className: \"active\",\n children: \"All\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n \"data-filter\": \".brand\",\n children: \"Branding\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n \"data-filter\": \".web\",\n children: \"Mobile App\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 44,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n \"data-filter\": \".graphic\",\n children: \"Creative\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 15\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"gallery full-width\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: `${grid === 3 ? \"col-lg-4 col-md-6\" : grid === 2 ? \"col-md-6 lg-mr\" : \"col-12\"} items graphic wow fadeInUp`,\n \"data-wow-delay\": \".4s\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item-img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: `/project-details2/project-details2-dark`,\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n className: \"imago wow\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: \"/img/portfolio/portfolio/1/1.jpg\",\n alt: \"image\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item-img-overlay\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 61,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 60,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Creativity Demand\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/works/works-dark\",\n children: \"Design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 19\n }, undefined), \", \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/works/works-dark\",\n children: \"WordPress\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 65\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 15\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 13\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: `${grid === 3 ? \"col-lg-4 col-md-6\" : grid === 2 ? \"col-md-6\" : \"col-12\"} items web wow fadeInUp`,\n \"data-wow-delay\": \".4s\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item-img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: `/project-details2/project-details2-dark`,\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n className: \"imago wow\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: \"/img/portfolio/portfolio/1/2.jpg\",\n alt: \"image\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item-img-overlay\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 87,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 86,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Through The Breaking\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: \"Design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 19\n }, undefined), \", \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: \"WordPress\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 44\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 15\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 13\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: `${grid === 3 ? \"col-lg-4 col-md-6\" : grid === 2 ? \"col-md-6\" : \"col-12\"} items brand wow fadeInUp`,\n \"data-wow-delay\": \".4s\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item-img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: `/project-details2/project-details2-dark`,\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n className: \"imago wow\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: \"/img/portfolio/portfolio/1/3.jpg\",\n alt: \"image\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item-img-overlay\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Create With Creatives\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 121,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: \"Design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 123,\n columnNumber: 19\n }, undefined), \", \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: \"WordPress\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 123,\n columnNumber: 44\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 122,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 15\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 102,\n columnNumber: 13\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: `${grid === 3 ? \"col-lg-4 col-md-6\" : grid === 2 ? \"col-md-6\" : \"col-12\"} items graphic wow fadeInUp`,\n \"data-wow-delay\": \".4s\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item-img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: `/project-details2/project-details2-dark`,\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n className: \"imago wow\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: \"/img/portfolio/portfolio/1/4.jpg\",\n alt: \"image\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 141,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item-img-overlay\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 142,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 140,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Energies of Love\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: \"Design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 149,\n columnNumber: 19\n }, undefined), \", \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: \"WordPress\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 149,\n columnNumber: 44\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 146,\n columnNumber: 15\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 13\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: `${grid === 3 ? \"col-lg-4 col-md-6\" : grid === 2 ? \"col-md-6\" : \"col-12\"} items web wow fadeInUp`,\n \"data-wow-delay\": \".4s\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item-img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: `/project-details2/project-details2-dark`,\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n className: \"imago wow\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: \"/img/portfolio/portfolio/1/5.jpg\",\n alt: \"image\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item-img-overlay\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 164,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"See It Yourself\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: \"Design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 19\n }, undefined), \", \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: \"WordPress\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 44\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 172,\n columnNumber: 15\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 13\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: `${grid === 3 ? \"col-lg-4 col-md-6\" : grid === 2 ? \"col-md-6\" : \"col-12\"} items brand wow fadeInUp`,\n \"data-wow-delay\": \".4s\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item-img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: `/project-details2/project-details2-dark`,\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n className: \"imago wow\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: \"/img/portfolio/portfolio/1/6.jpg\",\n alt: \"image\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item-img-overlay\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Blast From The Past\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: \"Design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, undefined), \", \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: \"WordPress\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 44\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 15\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 13\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 9\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 7\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 5\n }, undefined);\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Portfolio);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9Qb3J0Zm9saW8vcG9ydGZvbGlvLmpzeC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7OztBQUVBLE1BQU1HLFNBQVMsR0FBRyxDQUFDO0FBQUVDLEVBQUFBLElBQUY7QUFBUUMsRUFBQUE7QUFBUixDQUFELEtBQThCO0FBQzlDTCxFQUFBQSxzREFBQSxDQUFnQixNQUFNO0FBQ3BCTyxJQUFBQSxVQUFVLENBQUMsTUFBTTtBQUNmTCxNQUFBQSwrREFBVztBQUNaLEtBRlMsRUFFUCxJQUZPLENBQVY7QUFHRCxHQUpELEVBSUcsRUFKSDtBQUtBLHNCQUNFO0FBQVMsYUFBUyxFQUFDLGlDQUFuQjtBQUFBLDRCQUNFO0FBQUssZUFBUyxFQUFDLFdBQWY7QUFBQSw2QkFDRTtBQUFLLGlCQUFTLEVBQUMsNEJBQWY7QUFBQSwrQkFDRTtBQUFLLG1CQUFTLEVBQUMsb0JBQWY7QUFBQSxpQ0FDRTtBQUFLLHFCQUFTLEVBQUMsc0JBQWY7QUFBQSxvQ0FDRTtBQUFJLHVCQUFTLEVBQUMsWUFBZDtBQUEyQixnQ0FBZSxLQUExQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSx5QkFERixlQUlFO0FBQUksdUJBQVMsRUFBQyxnQkFBZDtBQUFBLGtFQUM4QjtBQUFBO0FBQUE7QUFBQTtBQUFBLDJCQUQ5QjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEseUJBSkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQURGLGVBZUU7QUFBSyxlQUFTLEVBQUcsR0FBRUUsSUFBSSxLQUFLLENBQVQsR0FBYSxpQkFBYixHQUFpQyxXQUFZLEVBQWhFO0FBQUEsNkJBQ0U7QUFBSyxpQkFBUyxFQUFDLEtBQWY7QUFBQSxnQ0FDRTtBQUNFLG1CQUFTLEVBQUcsYUFDVkMsY0FBYyxLQUFL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QUFBQTtBQUFBO0FBQUE7QUFBQSwrQkFERixlQUVFO0FBQUssNkJBQVMsRUFBQztBQUFmO0FBQUE7QUFBQTtBQUFBO0FBQUEsK0JBRkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEseUJBVkYsZUFrQkU7QUFBSyx1QkFBUyxFQUFDLE1BQWY7QUFBQSxzQ0FDRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSwyQkFERixlQUVFO0FBQUEsd0NBQ0U7QUFBRyxzQkFBSSxFQUFDLElBQVI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsNkJBREYscUJBQzJCO0FBQUcsc0JBQUksRUFBQyxJQUFSO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLDZCQUQzQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBRkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHlCQWxCRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBbklGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxxQkFwQkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFmRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFERjtBQXNNRCxDQTVNRDs7QUE4TUEsaUVBQWVELFNBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly92aWUtcmVhY3QvLi9zcmMvY29tcG9uZW50cy9Qb3J0Zm9saW8vcG9ydGZvbGlvLmpzeD83ZDE2Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBuZXh0L25leHQvbm8taW1nLWVsZW1lbnQgKi9cclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgTGluayBmcm9tIFwibmV4dC9saW5rXCI7XHJcbmltcG9ydCBpbml0SXNvdG9wZSBmcm9tIFwiLi4vLi4vY29tbW9uL2luaXRJc290b3BlXCI7XHJcblxyXG5jb25zdCBQb3J0Zm9saW8gPSAoeyBncmlkLCBmaWx0ZXJQb3NpdGlvbiB9KSA9PiB7XHJcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpbml0SXNvdG9wZSgpO1xyXG4gICAgfSwgMTAwMCk7XHJcbiAgfSwgW10pO1xyXG4gIHJldHVybiAoXHJcbiAgICA8c2VjdGlvbiBjbGFzc05hbWU9XCJwb3J0Zm9saW8gc2VjdGlvbi1wYWRkaW5nIHBiLTcwXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOCBjb2wtbWQtMTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWMtaGVhZCB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNiBjbGFzc05hbWU9XCJ3b3cgZmFkZUluXCIgZGF0YS13b3ctZGVsYXk9XCIuNXNcIj5cclxuICAgICAgICAgICAgICAgIFBvcnRmb2xpb1xyXG4gICAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cIndvdyBjb2xvci1mb250XCI+XHJcbiAgICAgICAgICAgICAgICBPdXIgUmVjZW50IFdlYiBEZXNpZ24gJmFtcDsgPGJyIC8+IFNvbWUgUGFzdCBQcm9qZWN0cy5cclxuICAgICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2dyaWQgPT09IDMgPyBcImNvbnRhaW5lci1mbHVpZFwiIDogXCJjb250YWluZXJcIn1gfT5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzc05hbWU9e2BmaWx0ZXJpbmcgJHtcclxuICAgICAgICAgICAgICBmaWx0ZXJQb3NpdGlvbiA9PT0gXCJjZW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgPyBcInRleHQtY2VudGVyXCJcclxuICAgICAgICAgICAgICAgIDogZmlsdGVyUG9zaXRpb24gPT09IFwibGVmdFwiXHJcbiAgICAgICAgICAgICAgICA/IFwidGV4dC1sZWZ0XCJcclxuICAgICAgICAgICAgICAgIDogXCJ0ZXh0LXJpZ2h0XCJcclxuICAgICAgICAgICAgfSBjb2wtMTJgfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpbHRlclwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGRhdGEtZmlsdGVyPVwiKlwiIGNsYXNzTmFtZT1cImFjdGl2ZVwiPlxyXG4gICAgICAgICAgICAgICAgQWxsXHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGRhdGEtZmlsdGVyPVwiLmJyYW5kXCI+QnJhbmRpbmc8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPHNwYW4gZGF0YS1maWx0ZXI9XCIud2ViXCI+TW9iaWxlIEFwcDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhbiBkYXRhLWZpbHRlcj1cIi5ncmFwaGljXCI+Q3JlYXRpdmU8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJnYWxsZXJ5IGZ1bGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7XHJcbiAgICAgICAgICAgICAgICBncmlkID09PSAzXHJcbiAgICAgICAgICAgICAgICAgID8gXCJjb2wtbGctNCBjb2wtbWQtNlwiXHJcbiAgICAgICAgICAgICAgICAgIDogZ3JpZCA9PT0gMlxyXG4gICAgICAgICAgICAgICAgICA/IFwiY29sLW1kLTYgbGctbXJcIlxyXG4gICAgICAgICAgICAgICAgICA6IFwiY29sLTEyXCJcclxuICAgICAgICAgICAgICB9IGl0ZW1zIGdyYXBoaWMgd293IGZhZGVJblVwYH1cclxuICAgICAgICAgICAgICBkYXRhLXdvdy1kZWxheT1cIi40c1wiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8TGluayBocmVmPXtgL3Byb2plY3QtZGV0YWlsczIvcHJvamVjdC1kZXRhaWxzMi1kYXJrYH0+XHJcbiAgICAgICAgICAgICAgICAgIDxhIGNsYXNzTmFtZT1cImltYWdvIHdvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy9wb3J0Zm9saW8vcG9ydGZvbGlvLzEvMS5qcGdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZy1vdmVybGF5XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgIDxoNj5DcmVhdGl2aXR5IERlbWFuZDwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi93b3Jrcy93b3Jrcy1kYXJrXCI+RGVzaWduPC9MaW5rPiwgPExpbmsgaHJlZj1cIi93b3Jrcy93b3Jrcy1kYXJrXCI+V29yZFByZXNzPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2Ake1xyXG4gICAgICAgICAgICAgICAgZ3JpZCA9PT0gM1xyXG4gICAgICAgICAgICAgICAgICA/IFwiY29sLWxnLTQgY29sLW1kLTZcIlxyXG4gICAgICAgICAgICAgICAgICA6IGdyaWQgPT09IDJcclxuICAgICAgICAgICAgICAgICAgPyBcImNvbC1tZC02XCJcclxuICAgICAgICAgICAgICAgICAgOiBcImNvbC0xMlwiXHJcbiAgICAgICAgICAgICAgfSBpdGVtcyB3ZWIgd293IGZhZGVJblVwYH1cclxuICAgICAgICAgICAgICBkYXRhLXdvdy1kZWxheT1cIi40c1wiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8TGluayBocmVmPXtgL3Byb2plY3QtZGV0YWlsczIvcHJvamVjdC1kZXRhaWxzMi1kYXJrYH0+XHJcbiAgICAgICAgICAgICAgICAgIDxhIGNsYXNzTmFtZT1cImltYWdvIHdvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy9wb3J0Zm9saW8vcG9ydGZvbGlvLzEvMi5qcGdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZy1vdmVybGF5XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgIDxoNj5UaHJvdWdoIFRoZSBCcmVha2luZzwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiMwXCI+RGVzaWduPC9hPiwgPGEgaHJlZj1cIiMwXCI+V29yZFByZXNzPC9hPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2Ake1xyXG4gICAgICAgICAgICAgICAgZ3JpZCA9PT0gM1xyXG4gICAgICAgICAgICAgICAgICA/IFwiY29sLWxnLTQgY29sLW1kLTZcIlxyXG4gICAgICAgICAgICAgICAgICA6IGdyaWQgPT09IDJcclxuICAgICAgICAgICAgICAgICAgPyBcImNvbC1tZC02XCJcclxuICAgICAgICAgICAgICAgICAgOiBcImNvbC0xMlwiXHJcbiAgICAgICAgICAgICAgfSBpdGVtcyBicmFuZCB3b3cgZmFkZUluVXBgfVxyXG4gICAgICAgICAgICAgIGRhdGEtd293LWRlbGF5PVwiLjRzXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWdcIj5cclxuICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9e2AvcHJvamVjdC1kZXRhaWxzMi9wcm9qZWN0LWRldGFpbHMyLWRhcmtgfT5cclxuICAgICAgICAgICAgICAgICAgPGEgY2xhc3NOYW1lPVwiaW1hZ28gd293XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3BvcnRmb2xpby9wb3J0Zm9saW8vMS8zLmpwZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nLW92ZXJsYXlcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgPGg2PkNyZWF0ZSBXaXRoIENyZWF0aXZlczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiMwXCI+RGVzaWduPC9hPiwgPGEgaHJlZj1cIiMwXCI+V29yZFByZXNzPC9hPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2Ake1xyXG4gICAgICAgICAgICAgICAgZ3JpZCA9PT0gM1xyXG4gICAgICAgICAgICAgICAgICA/IFwiY29sLWxnLTQgY29sLW1kLTZcIlxyXG4gICAgICAgICAgICAgICAgICA6IGdyaWQgPT09IDJcclxuICAgICAgICAgICAgICAgICAgPyBcImNvbC1tZC02XCJcclxuICAgICAgICAgICAgICAgICAgOiBcImNvbC0xMlwiXHJcbiAgICAgICAgICAgICAgfSBpdGVtcyBncmFwaGljIHdvdyBmYWRlSW5VcGB9XHJcbiAgICAgICAgICAgICAgZGF0YS13b3ctZGVsYXk9XCIuNHNcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPExpbmsgaHJlZj17YC9wcm9qZWN0LWRldGFpbHMyL3Byb2plY3QtZGV0YWlsczItZGFya2B9PlxyXG4gICAgICAgICAgICAgICAgICA8YSBjbGFzc05hbWU9XCJpbWFnbyB3b3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvcG9ydGZvbGlvL3BvcnRmb2xpby8xLzQuanBnXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWctb3ZlcmxheVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+RW5lcmdpZXMgb2YgTG92ZTwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiMwXCI+RGVzaWduPC9hPiwgPGEgaHJlZj1cIiMwXCI+V29yZFByZXNzPC9hPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2Ake1xyXG4gICAgICAgICAgICAgICAgZ3JpZCA9PT0gM1xyXG4gICAgICAgICAgICAgICAgICA/IFwiY29sLWxnLTQgY29sLW1kLTZcIlxyXG4gICAgICAgICAgICAgICAgICA6IGdyaWQgPT09IDJcclxuICAgICAgICAgICAgICAgICAgPyBcImNvbC1tZC02XCJcclxuICAgICAgICAgICAgICAgICAgOiBcImNvbC0xMlwiXHJcbiAgICAgICAgICAgICAgfSBpdGVtcyB3ZWIgd293IGZhZGVJblVwYH1cclxuICAgICAgICAgICAgICBkYXRhLXdvdy1kZWxheT1cIi40c1wiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8TGluayBocmVmPXtgL3Byb2plY3QtZGV0YWlsczIvcHJvamVjdC1kZXRhaWxzMi1kYXJrYH0+XHJcbiAgICAgICAgICAgICAgICAgIDxhIGNsYXNzTmFtZT1cImltYWdvIHdvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy9wb3J0Zm9saW8vcG9ydGZvbGlvLzEvNS5qcGdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZy1vdmVybGF5XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgIDxoNj5TZWUgSXQgWW91cnNlbGY8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjMFwiPkRlc2lnbjwvYT4sIDxhIGhyZWY9XCIjMFwiPldvcmRQcmVzczwvYT5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtcclxuICAgICAgICAgICAgICAgIGdyaWQgPT09IDNcclxuICAgICAgICAgICAgICAgICAgPyBcImNvbC1sZy00IGNvbC1tZC02XCJcclxuICAgICAgICAgICAgICAgICAgOiBncmlkID09PSAyXHJcbiAgICAgICAgICAgICAgICAgID8gXCJjb2wtbWQtNlwiXHJcbiAgICAgICAgICAgICAgICAgIDogXCJjb2wtMTJcIlxyXG4gICAgICAgICAgICAgIH0gaXRlbXMgYnJhbmQgd293IGZhZGVJblVwYH1cclxuICAgICAgICAgICAgICBkYXRhLXdvdy1kZWxheT1cIi40c1wiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8TGluayBocmVmPXtgL3Byb2plY3QtZGV0YWlsczIvcHJvamVjdC1kZXRhaWxzMi1kYXJrYH0+XHJcbiAgICAgICAgICAgICAgICAgIDxhIGNsYXNzTmFtZT1cImltYWdvIHdvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy9wb3J0Zm9saW8vcG9ydGZvbGlvLzEvNi5qcGdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZy1vdmVybGF5XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgIDxoNj5CbGFzdCBGcm9tIFRoZSBQYXN0PC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8YSBocmVmPVwiIzBcIj5EZXNpZ248L2E+LCA8YSBocmVmPVwiIzBcIj5Xb3JkUHJlc3M8L2E+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBQb3J0Zm9saW87XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIkxpbmsiLCJpbml0SXNvdG9wZSIsIlBvcnRmb2xpbyIsImdyaWQiLCJmaWx0ZXJQb3NpdGlvbiIsInVzZUVmZmVjdCIsInNldFRpbWVvdXQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/components/Portfolio/portfolio.jsx\n"); + +/***/ }), + +/***/ "./src/components/Services/services.jsx": +/*!**********************************************!*\ + !*** ./src/components/Services/services.jsx ***! + \**********************************************/ +/***/ ((__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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _data_sections_features_json__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../data/sections/features.json */ \"./src/data/sections/features.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Services\\\\services.jsx\";\n\n\n\n\n\nconst Services = ({\n style,\n lines\n}) => {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"section\", {\n className: `services bords section-padding ${style === \"4item\" ? \"lficon\" : lines ? \"\" : \"pt-0\"}`,\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"container\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Best Features\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: \"We are a new digital product development agency\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 15\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 11\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 9\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"row\",\n children: style === \"4item\" ? _data_sections_features_json__WEBPACK_IMPORTED_MODULE_1__.map(feature => /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"col-lg-6 wow fadeInLeft\",\n \"data-wow-delay\": `${feature.id == 1 ? \".5\" : feature.id === 2 ? \".7\" : feature.id === 3 ? \".9\" : \"1.1\"}s`,\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"item-box\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"span\", {\n className: `icon ${feature.icon}`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"h6\", {\n children: feature.title\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 23\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"p\", {\n children: feature.content\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 23\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 44,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 19\n }, undefined)\n }, feature.id, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 17\n }, undefined)) : // max item 3 in Home page\n _data_sections_features_json__WEBPACK_IMPORTED_MODULE_1__.slice(0, 3).map(feature => /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"col-lg-4 wow fadeInLeft\",\n \"data-wow-delay\": \".5s\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"item-box md-mb50\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"span\", {\n className: `icon ${feature.icon}`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 59,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"h6\", {\n children: feature.title\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 60,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"p\", {\n children: feature.content\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 61,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 19\n }, undefined)\n }, feature.id, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 17\n }, undefined))\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 9\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 7\n }, undefined), lines ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"line top left\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"line bottom right\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 11\n }, undefined)]\n }, void 0, true) : null]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 6,\n columnNumber: 5\n }, undefined);\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Services);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9TZXJ2aWNlcy9zZXJ2aWNlcy5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBO0FBQ0E7Ozs7QUFFQSxNQUFNRSxRQUFRLEdBQUcsQ0FBQztBQUFFQyxFQUFBQSxLQUFGO0FBQVNDLEVBQUFBO0FBQVQsQ0FBRCxLQUFzQjtBQUNyQyxzQkFDRTtBQUNFLGFBQVMsRUFBRyxrQ0FDVkQsS0FBSyxLQUFLLE9BQVYsR0FBb0IsUUFBcEIsR0FBK0JDLEtBQUssR0FBRyxFQUFILEdBQVEsTUFDN0MsRUFISDtBQUFBLDRCQUtFO0FBQUssZUFBUyxFQUFDLFdBQWY7QUFBQSw4QkFDRTtBQUFLLGlCQUFTLEVBQUMsNEJBQWY7QUFBQSwrQkFDRTtBQUFLLG1CQUFTLEVBQUMsb0JBQWY7QUFBQSxpQ0FDRTtBQUFLLHFCQUFTLEVBQUMsdUJBQWY7QUFBQSxvQ0FDRTtBQUFJLHVCQUFTLEVBQUMsWUFBZDtBQUEyQixnQ0FBZSxLQUExQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSx5QkFERixlQUlFO0FBQUksdUJBQVMsRUFBQyxnQkFBZDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSx5QkFKRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxtQkFERixlQWFFO0FBQUssaUJBQVMsRUFBQyxLQUFmO0FBQUEsa0JBQ0dELEtBQUssS0FBSyxPQUFWLEdBQ0dGLDZEQUFBLENBQWtCSyxPQUFELGlCQUNmO0FBRUUsbUJBQVMsRUFBQyx5QkFGWjtBQUdFLDRCQUFpQixHQUNmQSxPQUFPLENBQUNDLEVBQVIsSUFBYyxDQUFkLEdBQ0ksSUFESixHQUVJRCxPQUFPLENBQUNDLEVBQVIsS0FBZSxDQUFmLEdBQ0EsSUFEQSxHQUVBRCxPQUFPLENBQUNDLEVBQVIsS0FBZSxDQUFmLEdBQ0EsSUFEQSxHQUVBLEtBQ0wsR0FYSDtBQUFBLGlDQWFFO0FBQUsscUJBQVMsRUFBQyxVQUFmO0FBQUEsb0NBQ0U7QUFBQSxxQ0FDRTtBQUFNLHlCQUFTLEVBQUcsUUFBT0QsT0FBTyxDQUFDRSxJQUFLO0FBQXRDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLHlCQURGLGVBSUU7QUFBSyx1QkFBUyxFQUFDLE1BQWY7QUFBQSxzQ0FDRTtBQUFBLDBCQUFLRixPQUFPLENBQUNHO0FBQWI7QUFBQTtBQUFBO0FBQUE7QUFBQSwyQkFERixlQUVFO0FBQUEsMEJBQUlILE9BQU8sQ0FBQ0k7QUFBWjtBQUFBO0FBQUE7QUFBQTtBQUFBLDJCQUZGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSx5QkFKRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFiRixXQUNPSixPQUFPLENBQUNDLEVBRGY7QUFBQTtBQUFBO0FBQUE7QUFBQSxxQkFERixDQURILEdBMEJHO0FBQ0FOLFFBQUFBLCtEQUFBLENBQW1CLENBQW5CLEVBQXNCLENBQXRCLEVBQXlCSSxHQUF6QixDQUE4QkMsT0FBRCxpQkFDM0I7QUFFRSxtQkFBUyxFQUFDLHlCQUZaO0FBR0UsNEJBQWUsS0FIakI7QUFBQSxpQ0FLRTtBQUFLLHFCQUFTLEVBQUMsa0JBQWY7QUFBQSxvQ0FDRTtBQUFNLHVCQUFTLEVBQUcsUUFBT0EsT0FBTyxDQUFDRSxJQUFLO0FBQXRDO0FBQUE7QUFBQTtBQUFBO0FBQUEseUJBREYsZUFFRTtBQUFBLHdCQUFLRixPQUFPLENBQUNHO0FBQWI7QUFBQTtBQUFBO0FBQUE7QUFBQSx5QkFGRixlQUdFO0FBQUEsd0JBQUlILE9BQU8sQ0FBQ0k7QUFBWjtBQUFBO0FBQUE7QUFBQTtBQUFBLHlCQUhGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUxGLFdBQ09KLE9BQU8sQ0FBQ0MsRUFEZjtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQURGO0FBNUJOO0FBQUE7QUFBQTtBQUFBO0FBQUEsbUJBYkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQUxGLEVBNkRHSCxLQUFLLGdCQUNKO0FBQUEsOEJBQ0U7QUFBSyxpQkFBUyxFQUFDO0FBQWY7QUFBQTtBQUFBO0FBQUE7QUFBQSxtQkFERixlQUVFO0FBQUssaUJBQVMsRUFBQztBQUFmO0FBQUE7QUFBQTtBQUFBO0FBQUEsbUJBRkY7QUFBQSxvQkFESSxHQUtGLElBbEVOO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxlQURGO0FBc0VELENBdkVEOztBQXlFQSxpRUFBZUYsUUFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL3ZpZS1yZWFjdC8uL3NyYy9jb21wb25lbnRzL1NlcnZpY2VzL3NlcnZpY2VzLmpzeD8yZWU0Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IGZlYXR1cmVzRGF0YSBmcm9tIFwiLi4vLi4vZGF0YS9zZWN0aW9ucy9mZWF0dXJlcy5qc29uXCI7XHJcblxyXG5jb25zdCBTZXJ2aWNlcyA9ICh7IHN0eWxlLCBsaW5lcyB9KSA9PiB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uXHJcbiAgICAgIGNsYXNzTmFtZT17YHNlcnZpY2VzIGJvcmRzIHNlY3Rpb24tcGFkZGluZyAke1xyXG4gICAgICAgIHN0eWxlID09PSBcIjRpdGVtXCIgPyBcImxmaWNvblwiIDogbGluZXMgPyBcIlwiIDogXCJwdC0wXCJcclxuICAgICAgfWB9XHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOCBjb2wtbWQtMTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWMtaGVhZCAgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8aDYgY2xhc3NOYW1lPVwid293IGZhZGVJblwiIGRhdGEtd293LWRlbGF5PVwiLjVzXCI+XHJcbiAgICAgICAgICAgICAgICBCZXN0IEZlYXR1cmVzXHJcbiAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwid293IGNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgIFdlIGFyZSBhIG5ldyBkaWdpdGFsIHByb2R1Y3QgZGV2ZWxvcG1lbnQgYWdlbmN5XHJcbiAgICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAge3N0eWxlID09PSBcIjRpdGVtXCJcclxuICAgICAgICAgICAgPyBmZWF0dXJlc0RhdGEubWFwKChmZWF0dXJlKSA9PiAoXHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgIGtleT17ZmVhdHVyZS5pZH1cclxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiY29sLWxnLTYgd293IGZhZGVJbkxlZnRcIlxyXG4gICAgICAgICAgICAgICAgICBkYXRhLXdvdy1kZWxheT17YCR7XHJcbiAgICAgICAgICAgICAgICAgICAgZmVhdHVyZS5pZCA9PSAxXHJcbiAgICAgICAgICAgICAgICAgICAgICA/IFwiLjVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgOiBmZWF0dXJlLmlkID09PSAyXHJcbiAgICAgICAgICAgICAgICAgICAgICA/IFwiLjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgOiBmZWF0dXJlLmlkID09PSAzXHJcbiAgICAgICAgICAgICAgICAgICAgICA/IFwiLjlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgOiBcIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgIH1zYH1cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWJveFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2BpY29uICR7ZmVhdHVyZS5pY29ufWB9Pjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxoNj57ZmVhdHVyZS50aXRsZX08L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHA+e2ZlYXR1cmUuY29udGVudH08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgKSlcclxuICAgICAgICAgICAgOiAvLyBtYXggaXRlbSAzIGluIEhvbWUgcGFnZVxyXG4gICAgICAgICAgICAgIGZlYXR1cmVzRGF0YS5zbGljZSgwLCAzKS5tYXAoKGZlYXR1cmUpID0+IChcclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAga2V5PXtmZWF0dXJlLmlkfVxyXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJjb2wtbGctNCB3b3cgZmFkZUluTGVmdFwiXHJcbiAgICAgICAgICAgICAgICAgIGRhdGEtd293LWRlbGF5PVwiLjVzXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWJveCBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtgaWNvbiAke2ZlYXR1cmUuaWNvbn1gfT48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg2PntmZWF0dXJlLnRpdGxlfTwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+e2ZlYXR1cmUuY29udGVudH08L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgKSl9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICB7bGluZXMgPyAoXHJcbiAgICAgICAgPD5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGluZSB0b3AgbGVmdFwiPjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsaW5lIGJvdHRvbSByaWdodFwiPjwvZGl2PlxyXG4gICAgICAgIDwvPlxyXG4gICAgICApIDogbnVsbH1cclxuICAgIDwvc2VjdGlvbj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgU2VydmljZXM7XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsImZlYXR1cmVzRGF0YSIsIlNlcnZpY2VzIiwic3R5bGUiLCJsaW5lcyIsIm1hcCIsImZlYXR1cmUiLCJpZCIsImljb24iLCJ0aXRsZSIsImNvbnRlbnQiLCJzbGljZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Services/services.jsx\n"); + +/***/ }), + +/***/ "./src/components/Split/index.jsx": +/*!****************************************!*\ + !*** ./src/components/Split/index.jsx ***! + \****************************************/ +/***/ ((__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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Split\\\\index.jsx\";\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\n\n\nclass Split extends (react__WEBPACK_IMPORTED_MODULE_0___default().Component) {\n constructor(...args) {\n super(...args);\n\n _defineProperty(this, \"target\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createRef());\n\n _defineProperty(this, \"split\", () => {\n if (this.target.current) {\n Splitting({\n target: this.target.current\n });\n }\n });\n\n _defineProperty(this, \"componentDidMount\", this.split);\n\n _defineProperty(this, \"componentDidUpdate\", this.split);\n }\n\n render() {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n ref: this.target,\n children: this.props.children\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 12\n }, this);\n }\n\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Split);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9TcGxpdC9pbmRleC5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7OztBQUVBLE1BQU1DLEtBQU4sU0FBb0JELHdEQUFwQixDQUFvQztBQUFBO0FBQUE7O0FBQUEsaURBQ3pCQSxzREFBQSxFQUR5Qjs7QUFBQSxtQ0FHMUIsTUFBTTtBQUNaLFVBQUksS0FBS0ksTUFBTCxDQUFZQyxPQUFoQixFQUF5QjtBQUN2QkMsUUFBQUEsU0FBUyxDQUFDO0FBQUVGLFVBQUFBLE1BQU0sRUFBRSxLQUFLQSxNQUFMLENBQVlDO0FBQXRCLFNBQUQsQ0FBVDtBQUNEO0FBQ0YsS0FQaUM7O0FBQUEsK0NBU2QsS0FBS0UsS0FUUzs7QUFBQSxnREFVYixLQUFLQSxLQVZRO0FBQUE7O0FBWWxDQyxFQUFBQSxNQUFNLEdBQUc7QUFDUCx3QkFBTztBQUFLLFNBQUcsRUFBRSxLQUFLSixNQUFmO0FBQUEsZ0JBQXdCLEtBQUtLLEtBQUwsQ0FBV0M7QUFBbkM7QUFBQTtBQUFBO0FBQUE7QUFBQSxZQUFQO0FBQ0Q7O0FBZGlDOztBQWlCcEMsaUVBQWVULEtBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly92aWUtcmVhY3QvLi9zcmMvY29tcG9uZW50cy9TcGxpdC9pbmRleC5qc3g/ODcxMCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcblxyXG5jbGFzcyBTcGxpdCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcbiAgdGFyZ2V0ID0gUmVhY3QuY3JlYXRlUmVmKCk7XHJcblxyXG4gIHNwbGl0ID0gKCkgPT4ge1xyXG4gICAgaWYgKHRoaXMudGFyZ2V0LmN1cnJlbnQpIHtcclxuICAgICAgU3BsaXR0aW5nKHsgdGFyZ2V0OiB0aGlzLnRhcmdldC5jdXJyZW50IH0pO1xyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIGNvbXBvbmVudERpZE1vdW50ID0gdGhpcy5zcGxpdDtcclxuICBjb21wb25lbnREaWRVcGRhdGUgPSB0aGlzLnNwbGl0O1xyXG5cclxuICByZW5kZXIoKSB7XHJcbiAgICByZXR1cm4gPGRpdiByZWY9e3RoaXMudGFyZ2V0fT57dGhpcy5wcm9wcy5jaGlsZHJlbn08L2Rpdj47XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBTcGxpdDtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiU3BsaXQiLCJDb21wb25lbnQiLCJjcmVhdGVSZWYiLCJ0YXJnZXQiLCJjdXJyZW50IiwiU3BsaXR0aW5nIiwic3BsaXQiLCJyZW5kZXIiLCJwcm9wcyIsImNoaWxkcmVuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Split/index.jsx\n"); + +/***/ }), + +/***/ "./src/components/Team2/team2.jsx": +/*!****************************************!*\ + !*** ./src/components/Team2/team2.jsx ***! + \****************************************/ +/***/ ((__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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Team2\\\\team2.jsx\";\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\nconst Team2 = () => {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"section\", {\n className: \"team section-padding\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Our Team\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: \"An original team of creators designers & dreamers.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 15\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 11\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 9\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 7,\n columnNumber: 7\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"container-fluid\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"img\", {\n src: \"/img/team/1.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"g\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 23\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"text\", {\n fill: \"#fff\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"textPath\", {\n xlinkHref: \"#circlePath1\",\n children: \"CEO Manager CEO Manager CEO Manager\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 25\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 23\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"info\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"h6\", {\n children: \"Ryan Hicks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 19\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"span\", {\n children: \"Client Manager\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 19\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"img\", {\n src: \"/img/team/2.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"g\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 87,\n columnNumber: 23\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"text\", {\n fill: \"#fff\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"textPath\", {\n xlinkHref: \"#circlePath2\",\n children: \"Interior Designer Interior Designer Interior Designer\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 25\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 23\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 86,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"info\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"h6\", {\n children: \"Ryan Hicks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 19\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"span\", {\n children: \"Client Manager\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 98,\n columnNumber: 19\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"img\", {\n src: \"/img/team/3.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 106,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"g\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 23\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"text\", {\n fill: \"#fff\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"textPath\", {\n xlinkHref: \"#circlePath3\",\n children: \"Landscape Designer Landscape Designer Landscape Designer\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 25\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 23\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 108,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 107,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"info\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"h6\", {\n children: \"Ryan Hicks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 19\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"span\", {\n children: \"Client Manager\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 19\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 137,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 105,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 104,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 103,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"img\", {\n src: \"/img/team/4.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 161,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 160,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"g\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 23\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"text\", {\n fill: \"#fff\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"textPath\", {\n xlinkHref: \"#circlePath4\",\n children: \"Client Manager Client Manager Client Manager\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 25\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 23\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 149,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"info\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"h6\", {\n children: \"Ryan Hicks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 19\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"span\", {\n children: \"Client Manager\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 19\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 146,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 144,\n columnNumber: 11\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 7\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 6,\n columnNumber: 5\n }, undefined);\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Team2);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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YWNrOi8vdmllLXJlYWN0Ly4vc3JjL2NvbXBvbmVudHMvVGVhbTIvdGVhbTIuanN4PzA5NmUiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcblxyXG5jb25zdCBUZWFtMiA9ICgpID0+IHtcclxuICByZXR1cm4gKFxyXG4gICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwidGVhbSBzZWN0aW9uLXBhZGRpbmdcIj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy04IGNvbC1tZC0xMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNlYy1oZWFkIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGg2IGNsYXNzTmFtZT1cIndvdyBmYWRlSW5cIiBkYXRhLXdvdy1kZWxheT1cIi41c1wiPlxyXG4gICAgICAgICAgICAgICAgT3VyIFRlYW1cclxuICAgICAgICAgICAgICA8L2g2PlxyXG4gICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJ3b3cgY29sb3ItZm9udFwiPlxyXG4gICAgICAgICAgICAgICAgQW4gb3JpZ2luYWwgdGVhbSBvZiBjcmVhdG9ycyBkZXNpZ25lcnMgJmFtcDsgZHJlYW1lcnMuXHJcbiAgICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyLWZsdWlkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzEuanBnXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUxXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBDRU8gTWFuYWdlciBDRU8gTWFuYWdlciBDRU8gTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8yLmpwZ1wiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlMlwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDJcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJpb3IgRGVzaWduZXIgSW50ZXJpb3IgRGVzaWduZXIgSW50ZXJpb3IgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIHNtLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMy5qcGdcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTNcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzQuanBnXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGU0XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoNFwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBDbGllbnQgTWFuYWdlciBDbGllbnQgTWFuYWdlciBDbGllbnQgTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBUZWFtMjtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiVGVhbTIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/components/Team2/team2.jsx\n"); + +/***/ }), + +/***/ "./src/components/Video2/video2.jsx": +/*!******************************************!*\ + !*** ./src/components/Video2/video2.jsx ***! + \******************************************/ +/***/ ((__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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_modal_video__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-modal-video */ \"react-modal-video\");\n/* harmony import */ var react_modal_video__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_modal_video__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react_modal_video_css_modal_video_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-modal-video/css/modal-video.css */ \"./node_modules/react-modal-video/css/modal-video.css\");\n/* harmony import */ var react_modal_video_css_modal_video_css__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_modal_video_css_modal_video_css__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Video2\\\\video2.jsx\";\n\n\n\n\n\nconst Video2 = () => {\n const [isOpen, setOpen] = react__WEBPACK_IMPORTED_MODULE_0___default().useState(false);\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(() => {\n console.clear();\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"section\", {\n className: \"video bg-img parallaxie\",\n style: {\n backgroundImage: \"url(/img/bg-vid.jpg)\"\n },\n children: [ false && /*#__PURE__*/0, /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n className: \"vid valign\",\n onClick: e => {\n e.preventDefault();\n setOpen(true);\n },\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"vid-butn\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"pe-7s-play\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 11\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 9\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 7\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"stauts\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h4\", {\n children: [\"3\", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: \"K\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 16\n }, undefined), \" +\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 13\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Happy Clients\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 13\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h4\", {\n children: [\"14\", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: \"K\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 17\n }, undefined), \" +\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 13\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Success Projects\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 13\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 11\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 9\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 7\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 5\n }, undefined);\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Video2);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9WaWRlbzIvdmlkZW8yLmpzeC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBOzs7QUFFQSxNQUFNRSxNQUFNLEdBQUcsTUFBTTtBQUNuQixRQUFNLENBQUNDLE1BQUQsRUFBU0MsT0FBVCxJQUFvQkoscURBQUEsQ0FBZSxLQUFmLENBQTFCO0FBQ0FBLEVBQUFBLHNEQUFBLENBQWdCLE1BQU07QUFDcEJPLElBQUFBLE9BQU8sQ0FBQ0MsS0FBUjtBQUNELEdBRkQsRUFFRyxFQUZIO0FBR0Esc0JBQ0U7QUFDRSxhQUFTLEVBQUMseUJBRFo7QUFFRSxTQUFLLEVBQUU7QUFBRUMsTUFBQUEsZUFBZSxFQUFFO0FBQW5CLEtBRlQ7QUFBQSxlQUlHLHVCQUNDLENBTEosZUFhRTtBQUNFLGVBQVMsRUFBQyxZQURaO0FBRUUsYUFBTyxFQUFHQyxDQUFELElBQU87QUFDZEEsUUFBQUEsQ0FBQyxDQUFDQyxjQUFGO0FBQ0FQLFFBQUFBLE9BQU8sQ0FBQyxJQUFELENBQVA7QUFDRCxPQUxIO0FBQUEsNkJBT0U7QUFBSyxpQkFBUyxFQUFDLFVBQWY7QUFBQSwrQkFDRTtBQUFNLG1CQUFTLEVBQUMsTUFBaEI7QUFBQSxpQ0FDRTtBQUFHLHFCQUFTLEVBQUM7QUFBYjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFQRjtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQWJGLGVBMEJFO0FBQUssZUFBUyxFQUFDLFdBQWY7QUFBQSw2QkFDRTtBQUFLLGlCQUFTLEVBQUMsUUFBZjtBQUFBLGdDQUNFO0FBQUssbUJBQVMsRUFBQyxNQUFmO0FBQUEsa0NBQ0U7QUFBQSx5Q0FDRztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSx5QkFESDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBREYsZUFJRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFKRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBREYsZUFPRTtBQUFLLG1CQUFTLEVBQUMsTUFBZjtBQUFBLGtDQUNFO0FBQUEsMENBQ0k7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEseUJBREo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQURGLGVBSUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBSkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQVBGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBMUJGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxlQURGO0FBNkNELENBbEREOztBQW9EQSxpRUFBZUYsTUFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL3ZpZS1yZWFjdC8uL3NyYy9jb21wb25lbnRzL1ZpZGVvMi92aWRlbzIuanN4P2YwODgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgTW9kYWxWaWRlbyBmcm9tIFwicmVhY3QtbW9kYWwtdmlkZW9cIjtcclxuaW1wb3J0IFwicmVhY3QtbW9kYWwtdmlkZW8vY3NzL21vZGFsLXZpZGVvLmNzc1wiO1xyXG5cclxuY29uc3QgVmlkZW8yID0gKCkgPT4ge1xyXG4gIGNvbnN0IFtpc09wZW4sIHNldE9wZW5dID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xyXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBjb25zb2xlLmNsZWFyKCk7XHJcbiAgfSwgW10pO1xyXG4gIHJldHVybiAoXHJcbiAgICA8c2VjdGlvblxyXG4gICAgICBjbGFzc05hbWU9XCJ2aWRlbyBiZy1pbWcgcGFyYWxsYXhpZVwiXHJcbiAgICAgIHN0eWxlPXt7IGJhY2tncm91bmRJbWFnZTogXCJ1cmwoL2ltZy9iZy12aWQuanBnKVwiIH19XHJcbiAgICA+XHJcbiAgICAgIHt0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiICYmIChcclxuICAgICAgICA8TW9kYWxWaWRlb1xyXG4gICAgICAgICAgY2hhbm5lbD1cInZpbWVvXCJcclxuICAgICAgICAgIGF1dG9wbGF5XHJcbiAgICAgICAgICBpc09wZW49e2lzT3Blbn1cclxuICAgICAgICAgIHZpZGVvSWQ9XCIxMjcyMDMyNjJcIlxyXG4gICAgICAgICAgb25DbG9zZT17KCkgPT4gc2V0T3BlbihmYWxzZSl9XHJcbiAgICAgICAgLz5cclxuICAgICAgKX1cclxuICAgICAgPGFcclxuICAgICAgICBjbGFzc05hbWU9XCJ2aWQgdmFsaWduXCJcclxuICAgICAgICBvbkNsaWNrPXsoZSkgPT4ge1xyXG4gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgc2V0T3Blbih0cnVlKTtcclxuICAgICAgICB9fVxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ2aWQtYnV0blwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvblwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJwZS03cy1wbGF5XCI+PC9pPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2E+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzdGF1dHNcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICA8aDQ+XHJcbiAgICAgICAgICAgICAgMzxzcGFuPks8L3NwYW4+ICtcclxuICAgICAgICAgICAgPC9oND5cclxuICAgICAgICAgICAgPGg2PkhhcHB5IENsaWVudHM8L2g2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgPGg0PlxyXG4gICAgICAgICAgICAgIDE0PHNwYW4+Szwvc3Bhbj4gK1xyXG4gICAgICAgICAgICA8L2g0PlxyXG4gICAgICAgICAgICA8aDY+U3VjY2VzcyBQcm9qZWN0czwvaDY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L3NlY3Rpb24+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IFZpZGVvMjtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiTW9kYWxWaWRlbyIsIlZpZGVvMiIsImlzT3BlbiIsInNldE9wZW4iLCJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsImNvbnNvbGUiLCJjbGVhciIsImJhY2tncm91bmRJbWFnZSIsImUiLCJwcmV2ZW50RGVmYXVsdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Video2/video2.jsx\n"); + +/***/ }), + +/***/ "./src/components/blogs/Blogs2/blogs2.jsx": +/*!************************************************!*\ + !*** ./src/components/blogs/Blogs2/blogs2.jsx ***! + \************************************************/ +/***/ ((__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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\blogs\\\\Blogs2\\\\blogs2.jsx\";\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\nconst Blogs2 = () => {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"section\", {\n className: \"blog-list section-padding sub-bg\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"col-lg-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"head md-mb50\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"h6\", {\n className: \"back-color\",\n children: \"Get The Latest News\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"h3\", {\n children: \"What Our Trending News.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"p\", {\n children: \"We provide company and finance service for startups and company business.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/blog/blog-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"a\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"span\", {\n children: \"More Blog Posts\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 15\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"col-lg-7 offset-lg-1\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"item wow fadeInUp\",\n \"data-wow-delay\": \".3s\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"img valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"img\", {\n src: \"/img/blog/1.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"cont valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"info\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/blog/blog-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"a\", {\n className: \"date\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"span\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"i\", {\n children: \"06\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 27\n }, undefined), \" August\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 25\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"span\", {\n children: \"/\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/blog/blog-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"a\", {\n className: \"tag\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"span\", {\n children: \"WordPress\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 25\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 19\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"h5\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/blog-details/blog-details-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"a\", {\n children: \"How to use solid color combine with simple furnitures.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 21\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 19\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 15\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 13\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"item wow fadeInUp\",\n \"data-wow-delay\": \".5s\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"img valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"img\", {\n src: \"/img/blog/2.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 59,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"cont valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"info\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/blog/blog-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"a\", {\n className: \"date\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"span\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"i\", {\n children: \"06\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 27\n }, undefined), \" August\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 25\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"span\", {\n children: \"/\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/blog/blog-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"a\", {\n className: \"tag\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"span\", {\n children: \"WordPress\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 25\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 19\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"h5\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/blog-details/blog-details-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"a\", {\n children: \"How to use solid color combine with simple furnitures.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 21\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 78,\n columnNumber: 19\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 61,\n columnNumber: 15\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 13\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"item wow fadeInUp\",\n \"data-wow-delay\": \".3s\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"img valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"img\", {\n src: \"/img/blog/3.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"cont valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"info\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/blog/blog-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"a\", {\n className: \"date\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"span\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"i\", {\n children: \"06\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 98,\n columnNumber: 27\n }, undefined), \" August\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 25\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"span\", {\n children: \"/\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 102,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/blog/blog-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"a\", {\n className: \"tag\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"span\", {\n children: \"WordPress\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 105,\n columnNumber: 25\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 104,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 103,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 19\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"h5\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/blog-details/blog-details-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"a\", {\n children: \"How to use solid color combine with simple furnitures.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 21\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 19\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 15\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 13\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 11\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 9\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 7\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 7,\n columnNumber: 5\n }, undefined);\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Blogs2);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9ibG9ncy9CbG9nczIvYmxvZ3MyLmpzeC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7OztBQUVBLE1BQU1FLE1BQU0sR0FBRyxNQUFNO0FBQ25CLHNCQUNFO0FBQVMsYUFBUyxFQUFDLGtDQUFuQjtBQUFBLDJCQUNFO0FBQUssZUFBUyxFQUFDLFdBQWY7QUFBQSw2QkFDRTtBQUFLLGlCQUFTLEVBQUMsS0FBZjtBQUFBLGdDQUNFO0FBQUssbUJBQVMsRUFBQyxVQUFmO0FBQUEsaUNBQ0U7QUFBSyxxQkFBUyxFQUFDLGNBQWY7QUFBQSxvQ0FDRTtBQUFJLHVCQUFTLEVBQUMsWUFBZDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSx5QkFERixlQUVFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHlCQUZGLGVBR0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEseUJBSEYsZUFPRSw4REFBQyxrREFBRDtBQUFNLGtCQUFJLEVBQUMsaUJBQVg7QUFBQSxxQ0FDRTtBQUFBLHVDQUNFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEseUJBUEY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxxQkFERixlQWdCRTtBQUFLLG1CQUFTLEVBQUMsc0JBQWY7QUFBQSxrQ0FDRTtBQUFLLHFCQUFTLEVBQUMsbUJBQWY7QUFBbUMsOEJBQWUsS0FBbEQ7QUFBQSxvQ0FDRTtBQUFLLHVCQUFTLEVBQUMsWUFBZjtBQUFBLHFDQUNFO0FBQUssbUJBQUcsRUFBQyxpQkFBVDtBQUEyQixtQkFBRyxFQUFDO0FBQS9CO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLHlCQURGLGVBSUU7QUFBSyx1QkFBUyxFQUFDLGFBQWY7QUFBQSxxQ0FD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QTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFERjtBQXNIRCxDQXZIRDs7QUF5SEEsaUVBQWVBLE1BQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly92aWUtcmVhY3QvLi9zcmMvY29tcG9uZW50cy9ibG9ncy9CbG9nczIvYmxvZ3MyLmpzeD9kZmQxIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBuZXh0L25leHQvbm8taW1nLWVsZW1lbnQgKi9cclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgTGluayBmcm9tIFwibmV4dC9saW5rXCI7XHJcblxyXG5jb25zdCBCbG9nczIgPSAoKSA9PiB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cImJsb2ctbGlzdCBzZWN0aW9uLXBhZGRpbmcgc3ViLWJnXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJoZWFkIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8aDYgY2xhc3NOYW1lPVwiYmFjay1jb2xvclwiPkdldCBUaGUgTGF0ZXN0IE5ld3M8L2g2PlxyXG4gICAgICAgICAgICAgIDxoMz5XaGF0IE91ciBUcmVuZGluZyBOZXdzLjwvaDM+XHJcbiAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICBXZSBwcm92aWRlIGNvbXBhbnkgYW5kIGZpbmFuY2Ugc2VydmljZSBmb3Igc3RhcnR1cHMgYW5kIGNvbXBhbnlcclxuICAgICAgICAgICAgICAgIGJ1c2luZXNzLlxyXG4gICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2Jsb2cvYmxvZy1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICA8YT5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4+TW9yZSBCbG9nIFBvc3RzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTcgb2Zmc2V0LWxnLTFcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjNzXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWcgdmFsaWduXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvYmxvZy8xLmpwZ1wiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250IHZhbGlnblwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9ibG9nL2Jsb2ctZGFya1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3NOYW1lPVwiZGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aT4wNjwvaT4gQXVndXN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+Lzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2Jsb2cvYmxvZy1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzc05hbWU9XCJ0YWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+V29yZFByZXNzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxoNT5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2Jsb2ctZGV0YWlscy9ibG9nLWRldGFpbHMtZGFya1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGE+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEhvdyB0byB1c2Ugc29saWQgY29sb3IgY29tYmluZSB3aXRoIHNpbXBsZSBmdXJuaXR1cmVzLlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9oNT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjVzXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWcgdmFsaWduXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvYmxvZy8yLmpwZ1wiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250IHZhbGlnblwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9ibG9nL2Jsb2ctZGFya1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3NOYW1lPVwiZGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aT4wNjwvaT4gQXVndXN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+Lzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2Jsb2cvYmxvZy1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzc05hbWU9XCJ0YWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+V29yZFByZXNzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxoNT5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2Jsb2ctZGV0YWlscy9ibG9nLWRldGFpbHMtZGFya1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGE+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEhvdyB0byB1c2Ugc29saWQgY29sb3IgY29tYmluZSB3aXRoIHNpbXBsZSBmdXJuaXR1cmVzLlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9oNT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjNzXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWcgdmFsaWduXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvYmxvZy8zLmpwZ1wiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250IHZhbGlnblwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9ibG9nL2Jsb2ctZGFya1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3NOYW1lPVwiZGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aT4wNjwvaT4gQXVndXN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+Lzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2Jsb2cvYmxvZy1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzc05hbWU9XCJ0YWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+V29yZFByZXNzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxoNT5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2Jsb2ctZGV0YWlscy9ibG9nLWRldGFpbHMtZGFya1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGE+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEhvdyB0byB1c2Ugc29saWQgY29sb3IgY29tYmluZSB3aXRoIHNpbXBsZSBmdXJuaXR1cmVzLlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9oNT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvc2VjdGlvbj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgQmxvZ3MyO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJMaW5rIiwiQmxvZ3MyIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/blogs/Blogs2/blogs2.jsx\n"); + +/***/ }), + +/***/ "./src/layouts/Light.jsx": +/*!*******************************!*\ + !*** ./src/layouts/Light.jsx ***! + \*******************************/ +/***/ ((__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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/head */ \"next/head\");\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_head__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\layouts\\\\Light.jsx\";\n\n/* eslint-disable @next/next/no-css-tags */\n\n\n\n\n\nconst LightTheme = ({\n children,\n mobileappstyle\n}) => {\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(() => {\n window.theme = \"light\";\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)((next_head__WEBPACK_IMPORTED_MODULE_1___default()), {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"link\", {\n rel: \"stylesheet\",\n href: \"/css/light.css\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 9\n }, undefined), mobileappstyle ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"link\", {\n href: \"/css/mobile-app-light.css\",\n rel: \"stylesheet\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 28\n }, undefined) : null]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 7\n }, undefined), children]\n }, void 0, true);\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (LightTheme);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvbGF5b3V0cy9MaWdodC5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBOzs7O0FBRUEsTUFBTUUsVUFBVSxHQUFHLENBQUM7QUFBRUMsRUFBQUEsUUFBRjtBQUFZQyxFQUFBQTtBQUFaLENBQUQsS0FBa0M7QUFDbkRKLEVBQUFBLHNEQUFBLENBQWdCLE1BQU07QUFDcEJNLElBQUFBLE1BQU0sQ0FBQ0MsS0FBUCxHQUFlLE9BQWY7QUFDRCxHQUZELEVBRUcsRUFGSDtBQUdBLHNCQUNFO0FBQUEsNEJBQ0UsOERBQUMsa0RBQUQ7QUFBQSw4QkFDRTtBQUFNLFdBQUcsRUFBQyxZQUFWO0FBQXVCLFlBQUksRUFBQztBQUE1QjtBQUFBO0FBQUE7QUFBQTtBQUFBLG1CQURGLEVBRUdILGNBQWMsZ0JBQUk7QUFBTSxZQUFJLEVBQUMsMkJBQVg7QUFBdUMsV0FBRyxFQUFDO0FBQTNDO0FBQUE7QUFBQTtBQUFBO0FBQUEsbUJBQUosR0FBbUUsSUFGcEY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQURGLEVBS0dELFFBTEg7QUFBQSxrQkFERjtBQVNELENBYkQ7O0FBZUEsaUVBQWVELFVBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly92aWUtcmVhY3QvLi9zcmMvbGF5b3V0cy9MaWdodC5qc3g/MzljMiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAbmV4dC9uZXh0L25vLWNzcy10YWdzICovXHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IEhlYWQgZnJvbSBcIm5leHQvaGVhZFwiO1xyXG5cclxuY29uc3QgTGlnaHRUaGVtZSA9ICh7IGNoaWxkcmVuLCBtb2JpbGVhcHBzdHlsZSB9KSA9PiB7XHJcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgIHdpbmRvdy50aGVtZSA9IFwibGlnaHRcIjtcclxuICB9LCBbXSk7XHJcbiAgcmV0dXJuIChcclxuICAgIDw+XHJcbiAgICAgIDxIZWFkPlxyXG4gICAgICAgIDxsaW5rIHJlbD1cInN0eWxlc2hlZXRcIiBocmVmPVwiL2Nzcy9saWdodC5jc3NcIiAvPlxyXG4gICAgICAgIHttb2JpbGVhcHBzdHlsZSA/ICg8bGluayBocmVmPVwiL2Nzcy9tb2JpbGUtYXBwLWxpZ2h0LmNzc1wiIHJlbD1cInN0eWxlc2hlZXRcIiAvPikgOiAobnVsbCl9XHJcbiAgICAgIDwvSGVhZD5cclxuICAgICAge2NoaWxkcmVufVxyXG4gICAgPC8+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IExpZ2h0VGhlbWU7XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIkhlYWQiLCJMaWdodFRoZW1lIiwiY2hpbGRyZW4iLCJtb2JpbGVhcHBzdHlsZSIsInVzZUVmZmVjdCIsIndpbmRvdyIsInRoZW1lIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/layouts/Light.jsx\n"); + +/***/ }), + +/***/ "./src/pages/homepage/home2-light.jsx": +/*!********************************************!*\ + !*** ./src/pages/homepage/home2-light.jsx ***! + \********************************************/ +/***/ ((__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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _components_Navbar_navbar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../components/Navbar/navbar */ \"./src/components/Navbar/navbar.jsx\");\n/* harmony import */ var _components_Intro2_intro2__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../components/Intro2/intro2 */ \"./src/components/Intro2/intro2.jsx\");\n/* harmony import */ var _components_Services_services__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../components/Services/services */ \"./src/components/Services/services.jsx\");\n/* harmony import */ var _components_Video2_video2__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../components/Video2/video2 */ \"./src/components/Video2/video2.jsx\");\n/* harmony import */ var _components_Call_to_action_call_to_action__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../components/Call-to-action/call-to-action */ \"./src/components/Call-to-action/call-to-action.jsx\");\n/* harmony import */ var _components_Footer_footer__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../components/Footer/footer */ \"./src/components/Footer/footer.jsx\");\n/* harmony import */ var _layouts_Light__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../layouts/Light */ \"./src/layouts/Light.jsx\");\n/* harmony import */ var _components_Portfolio_portfolio__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../components/Portfolio/portfolio */ \"./src/components/Portfolio/portfolio.jsx\");\n/* harmony import */ var _components_Full_testimonials_full_testimonials__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../components/Full-testimonials/full-testimonials */ \"./src/components/Full-testimonials/full-testimonials.jsx\");\n/* harmony import */ var _components_Team2_team2__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../components/Team2/team2 */ \"./src/components/Team2/team2.jsx\");\n/* harmony import */ var _components_blogs_Blogs2_blogs2__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../components/blogs/Blogs2/blogs2 */ \"./src/components/blogs/Blogs2/blogs2.jsx\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\pages\\\\homepage\\\\home2-light.jsx\";\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst Homepage2 = () => {\n const navbarRef = react__WEBPACK_IMPORTED_MODULE_0___default().useRef(null);\n const logoRef = react__WEBPACK_IMPORTED_MODULE_0___default().useRef(null);\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(() => {\n var navbar = navbarRef.current;\n\n if (window.pageYOffset > 300) {\n navbar.classList.add(\"nav-scroll\");\n } else {\n navbar.classList.remove(\"nav-scroll\");\n }\n\n window.addEventListener(\"scroll\", () => {\n if (window.pageYOffset > 300) {\n navbar.classList.add(\"nav-scroll\");\n } else {\n navbar.classList.remove(\"nav-scroll\");\n }\n });\n }, [navbarRef]);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(_layouts_Light__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(_components_Navbar_navbar__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n nr: navbarRef,\n lr: logoRef,\n theme: \"themeL\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 7\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(_components_Intro2_intro2__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 7\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(_components_Services_services__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n style: \"4item\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 7\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(_components_Video2_video2__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(_components_Portfolio_portfolio__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n grid: 3,\n filterPosition: \"center\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 7\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(_components_Full_testimonials_full_testimonials__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n noPadding: true\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 7\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(_components_Team2_team2__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 7\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(_components_blogs_Blogs2_blogs2__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 7\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(_components_Call_to_action_call_to_action__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 7\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(_components_Footer_footer__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 44,\n columnNumber: 7\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 5\n }, undefined);\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Homepage2);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvcGFnZXMvaG9tZXBhZ2UvaG9tZTItbGlnaHQuanN4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFFQSxNQUFNWSxTQUFTLEdBQUcsTUFBTTtBQUN0QixRQUFNQyxTQUFTLEdBQUdiLG1EQUFBLENBQWEsSUFBYixDQUFsQjtBQUNBLFFBQU1lLE9BQU8sR0FBR2YsbURBQUEsQ0FBYSxJQUFiLENBQWhCO0FBRUFBLEVBQUFBLHNEQUFBLENBQWdCLE1BQU07QUFDcEIsUUFBSWlCLE1BQU0sR0FBR0osU0FBUyxDQUFDSyxPQUF2Qjs7QUFDQSxRQUFJQyxNQUFNLENBQUNDLFdBQVAsR0FBcUIsR0FBekIsRUFBOEI7QUFDNUJILE1BQUFBLE1BQU0sQ0FBQ0ksU0FBUCxDQUFpQkMsR0FBakIsQ0FBcUIsWUFBckI7QUFDRCxLQUZELE1BRU87QUFDTEwsTUFBQUEsTUFBTSxDQUFDSSxTQUFQLENBQWlCRSxNQUFqQixDQUF3QixZQUF4QjtBQUNEOztBQUNESixJQUFBQSxNQUFNLENBQUNLLGdCQUFQLENBQXdCLFFBQXhCLEVBQWtDLE1BQU07QUFDdEMsVUFBSUwsTUFBTSxDQUFDQyxXQUFQLEdBQXFCLEdBQXpCLEVBQThCO0FBQzVCSCxRQUFBQSxNQUFNLENBQUNJLFNBQVAsQ0FBaUJDLEdBQWpCLENBQXFCLFlBQXJCO0FBQ0QsT0FGRCxNQUVPO0FBQ0xMLFFBQUFBLE1BQU0sQ0FBQ0ksU0FBUCxDQUFpQkUsTUFBakIsQ0FBd0IsWUFBeEI7QUFDRDtBQUNGLEtBTkQ7QUFPRCxHQWRELEVBY0csQ0FBQ1YsU0FBRCxDQWRIO0FBZUEsc0JBQ0UsK0RBQUMsc0RBQUQ7QUFBQSw0QkFDRSwrREFBQyxpRUFBRDtBQUFRLFFBQUUsRUFBRUEsU0FBWjtBQUF1QixRQUFFLEVBQUVFLE9BQTNCO0FBQW9DLFdBQUssRUFBQztBQUExQztBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQURGLGVBRUUsK0RBQUMsaUVBQUQ7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFGRixlQUdFLCtEQUFDLHFFQUFEO0FBQVUsV0FBSyxFQUFDO0FBQWhCO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBSEYsZUFJRSwrREFBQyxpRUFBRDtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQUpGLGVBS0UsK0RBQUMsdUVBQUQ7QUFBVyxVQUFJLEVBQUUsQ0FBakI7QUFBb0Isb0JBQWMsRUFBQztBQUFuQztBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQUxGLGVBTUUsK0RBQUMsdUZBQUQ7QUFBa0IsZUFBUztBQUEzQjtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQU5GLGVBT0UsK0RBQUMsZ0VBQUQ7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFQRixlQVFFLCtEQUFDLHdFQUFEO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBUkYsZUFTRSwrREFBQyxpRkFBRDtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQVRGLGVBVUUsK0RBQUMsaUVBQUQ7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFWRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFERjtBQWNELENBakNEOztBQW1DQSxpRUFBZUgsU0FBZiIsInNvdXJjZXMiOlsid2VicGFjazovL3ZpZS1yZWFjdC8uL3NyYy9wYWdlcy9ob21lcGFnZS9ob21lMi1saWdodC5qc3g/MWQwMSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBOYXZiYXIgZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvTmF2YmFyL25hdmJhclwiO1xyXG5pbXBvcnQgSW50cm8yIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL0ludHJvMi9pbnRybzJcIjtcclxuaW1wb3J0IFNlcnZpY2VzIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL1NlcnZpY2VzL3NlcnZpY2VzXCI7XHJcbmltcG9ydCBWaWRlbzIgZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvVmlkZW8yL3ZpZGVvMlwiO1xyXG5pbXBvcnQgQ2FsbFRvQWN0aW9uIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL0NhbGwtdG8tYWN0aW9uL2NhbGwtdG8tYWN0aW9uXCI7XHJcbmltcG9ydCBGb290ZXIgZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvRm9vdGVyL2Zvb3RlclwiO1xyXG5pbXBvcnQgTGlnaHRUaGVtZSBmcm9tIFwiLi4vLi4vbGF5b3V0cy9MaWdodFwiO1xyXG5pbXBvcnQgUG9ydGZvbGlvIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL1BvcnRmb2xpby9wb3J0Zm9saW9cIjtcclxuaW1wb3J0IEZ1bGxUZXN0aW1vbmlhbHMgZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvRnVsbC10ZXN0aW1vbmlhbHMvZnVsbC10ZXN0aW1vbmlhbHNcIjtcclxuaW1wb3J0IFRlYW0yIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL1RlYW0yL3RlYW0yXCI7XHJcbmltcG9ydCBCbG9nczIgZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvYmxvZ3MvQmxvZ3MyL2Jsb2dzMlwiO1xyXG5cclxuY29uc3QgSG9tZXBhZ2UyID0gKCkgPT4ge1xyXG4gIGNvbnN0IG5hdmJhclJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcclxuICBjb25zdCBsb2dvUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xyXG5cclxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgdmFyIG5hdmJhciA9IG5hdmJhclJlZi5jdXJyZW50O1xyXG4gICAgaWYgKHdpbmRvdy5wYWdlWU9mZnNldCA+IDMwMCkge1xyXG4gICAgICBuYXZiYXIuY2xhc3NMaXN0LmFkZChcIm5hdi1zY3JvbGxcIik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBuYXZiYXIuY2xhc3NMaXN0LnJlbW92ZShcIm5hdi1zY3JvbGxcIik7XHJcbiAgICB9XHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCAoKSA9PiB7XHJcbiAgICAgIGlmICh3aW5kb3cucGFnZVlPZmZzZXQgPiAzMDApIHtcclxuICAgICAgICBuYXZiYXIuY2xhc3NMaXN0LmFkZChcIm5hdi1zY3JvbGxcIik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbmF2YmFyLmNsYXNzTGlzdC5yZW1vdmUoXCJuYXYtc2Nyb2xsXCIpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9LCBbbmF2YmFyUmVmXSk7XHJcbiAgcmV0dXJuIChcclxuICAgIDxMaWdodFRoZW1lPlxyXG4gICAgICA8TmF2YmFyIG5yPXtuYXZiYXJSZWZ9IGxyPXtsb2dvUmVmfSB0aGVtZT1cInRoZW1lTFwiIC8+XHJcbiAgICAgIDxJbnRybzIgLz5cclxuICAgICAgPFNlcnZpY2VzIHN0eWxlPVwiNGl0ZW1cIiAvPlxyXG4gICAgICA8VmlkZW8yIC8+XHJcbiAgICAgIDxQb3J0Zm9saW8gZ3JpZD17M30gZmlsdGVyUG9zaXRpb249XCJjZW50ZXJcIiAvPlxyXG4gICAgICA8RnVsbFRlc3RpbW9uaWFscyBub1BhZGRpbmcgLz5cclxuICAgICAgPFRlYW0yIC8+XHJcbiAgICAgIDxCbG9nczIgLz5cclxuICAgICAgPENhbGxUb0FjdGlvbiAvPlxyXG4gICAgICA8Rm9vdGVyIC8+XHJcbiAgICA8L0xpZ2h0VGhlbWU+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IEhvbWVwYWdlMjtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiTmF2YmFyIiwiSW50cm8yIiwiU2VydmljZXMiLCJWaWRlbzIiLCJDYWxsVG9BY3Rpb24iLCJGb290ZXIiLCJMaWdodFRoZW1lIiwiUG9ydGZvbGlvIiwiRnVsbFRlc3RpbW9uaWFscyIsIlRlYW0yIiwiQmxvZ3MyIiwiSG9tZXBhZ2UyIiwibmF2YmFyUmVmIiwidXNlUmVmIiwibG9nb1JlZiIsInVzZUVmZmVjdCIsIm5hdmJhciIsImN1cnJlbnQiLCJ3aW5kb3ciLCJwYWdlWU9mZnNldCIsImNsYXNzTGlzdCIsImFkZCIsInJlbW92ZSIsImFkZEV2ZW50TGlzdGVuZXIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/pages/homepage/home2-light.jsx\n"); + +/***/ }), + +/***/ "./node_modules/react-modal-video/css/modal-video.css": +/*!************************************************************!*\ + !*** ./node_modules/react-modal-video/css/modal-video.css ***! + \************************************************************/ +/***/ (() => { + + + +/***/ }), + +/***/ "./node_modules/slick-carousel/slick/slick-theme.css": +/*!***********************************************************!*\ + !*** ./node_modules/slick-carousel/slick/slick-theme.css ***! + \***********************************************************/ +/***/ (() => { + + + +/***/ }), + +/***/ "./node_modules/slick-carousel/slick/slick.css": +/*!*****************************************************!*\ + !*** ./node_modules/slick-carousel/slick/slick.css ***! + \*****************************************************/ +/***/ (() => { + + + +/***/ }), + +/***/ "./node_modules/next/dist/lib/is-error.js": +/*!************************************************!*\ + !*** ./node_modules/next/dist/lib/is-error.js ***! + \************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = isError;\nfunction isError(err) {\n return typeof err === 'object' && err !== null && 'name' in err && 'message' in err;\n}\n\n//# sourceMappingURL=is-error.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9pcy1lcnJvci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGtCQUFlO0FBQ2Y7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmllLXJlYWN0Ly4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvaXMtZXJyb3IuanM/MTc4ZSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IGlzRXJyb3I7XG5mdW5jdGlvbiBpc0Vycm9yKGVycikge1xuICAgIHJldHVybiB0eXBlb2YgZXJyID09PSAnb2JqZWN0JyAmJiBlcnIgIT09IG51bGwgJiYgJ25hbWUnIGluIGVyciAmJiAnbWVzc2FnZScgaW4gZXJyO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy1lcnJvci5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/lib/is-error.js\n"); + +/***/ }), + +/***/ "./node_modules/next/link.js": +/*!***********************************!*\ + !*** ./node_modules/next/link.js ***! + \***********************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +eval("module.exports = __webpack_require__(/*! ./dist/client/link */ \"./node_modules/next/dist/client/link.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9saW5rLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBLHlHQUE4QyIsInNvdXJjZXMiOlsid2VicGFjazovL3ZpZS1yZWFjdC8uL25vZGVfbW9kdWxlcy9uZXh0L2xpbmsuanM/NzViMyJdLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vZGlzdC9jbGllbnQvbGluaycpXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/link.js\n"); + +/***/ }), + +/***/ "../../../server/denormalize-page-path": +/*!************************************************************!*\ + !*** external "next/dist/server/denormalize-page-path.js" ***! + \************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/server/denormalize-page-path.js"); + +/***/ }), + +/***/ "../i18n/normalize-locale-path": +/*!*********************************************************************!*\ + !*** external "next/dist/shared/lib/i18n/normalize-locale-path.js" ***! + \*********************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/shared/lib/i18n/normalize-locale-path.js"); + +/***/ }), + +/***/ "../mitt": +/*!***********************************************!*\ + !*** external "next/dist/shared/lib/mitt.js" ***! + \***********************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/shared/lib/mitt.js"); + +/***/ }), + +/***/ "../shared/lib/router-context": +/*!*********************************************************!*\ + !*** external "next/dist/shared/lib/router-context.js" ***! + \*********************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/shared/lib/router-context.js"); + +/***/ }), + +/***/ "../shared/lib/router/utils/get-asset-path-from-route": +/*!*********************************************************************************!*\ + !*** external "next/dist/shared/lib/router/utils/get-asset-path-from-route.js" ***! + \*********************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/shared/lib/router/utils/get-asset-path-from-route.js"); + +/***/ }), + +/***/ "./utils/get-middleware-regex": +/*!****************************************************************************!*\ + !*** external "next/dist/shared/lib/router/utils/get-middleware-regex.js" ***! + \****************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/shared/lib/router/utils/get-middleware-regex.js"); + +/***/ }), + +/***/ "./utils/is-dynamic": +/*!******************************************************************!*\ + !*** external "next/dist/shared/lib/router/utils/is-dynamic.js" ***! + \******************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/shared/lib/router/utils/is-dynamic.js"); + +/***/ }), + +/***/ "./utils/parse-relative-url": +/*!**************************************************************************!*\ + !*** external "next/dist/shared/lib/router/utils/parse-relative-url.js" ***! + \**************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/shared/lib/router/utils/parse-relative-url.js"); + +/***/ }), + +/***/ "./utils/querystring": +/*!*******************************************************************!*\ + !*** external "next/dist/shared/lib/router/utils/querystring.js" ***! + \*******************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/shared/lib/router/utils/querystring.js"); + +/***/ }), + +/***/ "./utils/resolve-rewrites": +/*!************************************************************************!*\ + !*** external "next/dist/shared/lib/router/utils/resolve-rewrites.js" ***! + \************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/shared/lib/router/utils/resolve-rewrites.js"); + +/***/ }), + +/***/ "./utils/route-matcher": +/*!*********************************************************************!*\ + !*** external "next/dist/shared/lib/router/utils/route-matcher.js" ***! + \*********************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/shared/lib/router/utils/route-matcher.js"); + +/***/ }), + +/***/ "./utils/route-regex": +/*!*******************************************************************!*\ + !*** external "next/dist/shared/lib/router/utils/route-regex.js" ***! + \*******************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/shared/lib/router/utils/route-regex.js"); + +/***/ }), + +/***/ "../shared/lib/utils": +/*!************************************************!*\ + !*** external "next/dist/shared/lib/utils.js" ***! + \************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/shared/lib/utils.js"); + +/***/ }), + +/***/ "next/head": +/*!****************************!*\ + !*** external "next/head" ***! + \****************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/head"); + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "react" ***! + \************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("react"); + +/***/ }), + +/***/ "react-is": +/*!***************************!*\ + !*** external "react-is" ***! + \***************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("react-is"); + +/***/ }), + +/***/ "react-modal-video": +/*!************************************!*\ + !*** external "react-modal-video" ***! + \************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("react-modal-video"); + +/***/ }), + +/***/ "react-slick": +/*!******************************!*\ + !*** external "react-slick" ***! + \******************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("react-slick"); + +/***/ }), + +/***/ "react/jsx-dev-runtime": +/*!****************************************!*\ + !*** external "react/jsx-dev-runtime" ***! + \****************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("react/jsx-dev-runtime"); + +/***/ }), + +/***/ "./src/data/app.json": +/*!***************************!*\ + !*** ./src/data/app.json ***! + \***************************/ +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('{"lightLogo":"/img/logo.png","darkLogo":"/img/logo.png","showLoading":true}'); + +/***/ }), + +/***/ "./src/data/sections/features.json": +/*!*****************************************!*\ + !*** ./src/data/sections/features.json ***! + \*****************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('[{"id":1,"icon":"pe-7s-paint-bucket","title":"Marketing services","content":"To achieve success in the local market, it requires effective marketing, whether through electronic or non-electronic media"},{"id":2,"icon":"pe-7s-phone","title":"Restructuring projects","content":"Business Hub offers restructuring projects in a way that serves the interest of business continuity by reducing expenses and reemploying the workforce correctly."},{"id":3,"icon":"pe-7s-display1","title":"Commercial brokerage","content":"Mediation in buying and selling operations: We mediate between sellers and buyers to ensure that deals are achieved in a profitable manner for both parties."},{"id":4,"icon":"pe-7s-diskette","title":"Commercial representation","content":"Business Hub provides commercial representation services to companies inside and outside the UAE, provided that our role is limited to representing other companies."}]'); + +/***/ }) + +}; +; + +// load runtime +var __webpack_require__ = require("../../webpack-runtime.js"); +__webpack_require__.C(exports); +var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) +var __webpack_exports__ = (__webpack_exec__("./src/pages/homepage/home2-light.jsx")); +module.exports = __webpack_exports__; + +})(); \ No newline at end of file diff --git a/.next/server/pages/index.js b/.next/server/pages/index.js new file mode 100644 index 0000000..faab03f --- /dev/null +++ b/.next/server/pages/index.js @@ -0,0 +1,777 @@ +/* + * 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/). + */ +(() => { +var exports = {}; +exports.id = "pages/index"; +exports.ids = ["pages/index"]; +exports.modules = { + +/***/ "./node_modules/next/dist/client/link.js": +/*!***********************************************!*\ + !*** ./node_modules/next/dist/client/link.js ***! + \***********************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"react\"));\n\nvar _router = __webpack_require__(/*! ../shared/lib/router/router */ \"./node_modules/next/dist/shared/lib/router/router.js\");\n\nvar _router1 = __webpack_require__(/*! ./router */ \"./node_modules/next/dist/client/router.js\");\n\nvar _useIntersection = __webpack_require__(/*! ./use-intersection */ \"./node_modules/next/dist/client/use-intersection.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nconst prefetched = {};\n\nfunction prefetch(router, href, as, options) {\n if (true) return;\n if (!(0, _router).isLocalURL(href)) return; // Prefetch the JSON 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\n router.prefetch(href, as, options).catch(err => {\n if (true) {\n // rethrow to show invalid URL errors\n throw err;\n }\n });\n const curLocale = options && typeof options.locale !== 'undefined' ? options.locale : router && router.locale; // Join on an invalid URI character\n\n prefetched[href + '%' + as + (curLocale ? '%' + curLocale : '')] = true;\n}\n\nfunction isModifiedEvent(event) {\n const {\n target\n } = event.currentTarget;\n return target && target !== '_self' || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey || event.nativeEvent && event.nativeEvent.which === 2;\n}\n\nfunction linkClicked(e, router, href, as, replace, shallow, scroll, locale) {\n const {\n nodeName\n } = e.currentTarget;\n\n if (nodeName === 'A' && (isModifiedEvent(e) || !(0, _router).isLocalURL(href))) {\n // ignore click for browser’s default behavior\n return;\n }\n\n e.preventDefault(); // avoid scroll for urls with anchor refs\n\n if (scroll == null && as.indexOf('#') >= 0) {\n scroll = false;\n } // replace state instead of push if prop is present\n\n\n router[replace ? 'replace' : 'push'](href, as, {\n shallow,\n locale,\n scroll\n });\n}\n\nfunction Link(props) {\n if (true) {\n function createPropError(args) {\n return new Error(`Failed prop type: The prop \\`${args.key}\\` expects a ${args.expected} in \\`<Link>\\`, but got \\`${args.actual}\\` instead.` + ( false ? 0 : ''));\n } // TypeScript trick for type-guarding:\n\n\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 }); // TypeScript trick for type-guarding:\n\n const optionalPropsGuard = {\n as: true,\n replace: true,\n scroll: true,\n shallow: true,\n passHref: true,\n prefetch: true,\n locale: true\n };\n const optionalProps = Object.keys(optionalPropsGuard);\n optionalProps.forEach(key => {\n const valType = typeof props[key];\n\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 === 'locale') {\n if (props[key] && valType !== 'string') {\n throw createPropError({\n key,\n expected: '`string`',\n actual: valType\n });\n }\n } else if (key === 'replace' || key === 'scroll' || key === 'shallow' || key === 'passHref' || key === 'prefetch') {\n if (props[key] != null && valType !== 'boolean') {\n throw createPropError({\n key,\n expected: '`boolean`',\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 }); // 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\n const hasWarned = _react.default.useRef(false);\n\n if (props.prefetch && !hasWarned.current) {\n hasWarned.current = true;\n console.warn('Next.js auto-prefetches automatically based on viewport. The prefetch attribute is no longer needed. More: https://nextjs.org/docs/messages/prefetch-true-deprecated');\n }\n }\n\n const p = props.prefetch !== false;\n const router = (0, _router1).useRouter();\n\n const {\n href,\n as\n } = _react.default.useMemo(() => {\n const [resolvedHref, resolvedAs] = (0, _router).resolveHref(router, props.href, true);\n return {\n href: resolvedHref,\n as: props.as ? (0, _router).resolveHref(router, props.as) : resolvedAs || resolvedHref\n };\n }, [router, props.href, props.as]);\n\n let {\n children,\n replace,\n shallow,\n scroll,\n locale\n } = props; // Deprecated. Warning shown by propType check. If the children provided is a string (<Link>example</Link>) we wrap it in an <a> tag\n\n if (typeof children === 'string') {\n children = /*#__PURE__*/_react.default.createElement(\"a\", null, children);\n } // This will return the first child, if multiple are provided it will throw an error\n\n\n let child;\n\n if (true) {\n try {\n child = _react.default.Children.only(children);\n } catch (err) {\n throw new Error(`Multiple children were passed to <Link> with \\`href\\` of \\`${props.href}\\` but only one child is supported https://nextjs.org/docs/messages/link-multiple-children` + ( false ? 0 : ''));\n }\n } else {}\n\n const childRef = child && typeof child === 'object' && child.ref;\n const [setIntersectionRef, isVisible] = (0, _useIntersection).useIntersection({\n rootMargin: '200px'\n });\n\n const setRef = _react.default.useCallback(el => {\n setIntersectionRef(el);\n\n if (childRef) {\n if (typeof childRef === 'function') childRef(el);else if (typeof childRef === 'object') {\n childRef.current = el;\n }\n }\n }, [childRef, setIntersectionRef]);\n\n _react.default.useEffect(() => {\n const shouldPrefetch = isVisible && p && (0, _router).isLocalURL(href);\n const curLocale = typeof locale !== 'undefined' ? locale : router && router.locale;\n const isPrefetched = prefetched[href + '%' + as + (curLocale ? '%' + curLocale : '')];\n\n if (shouldPrefetch && !isPrefetched) {\n prefetch(router, href, as, {\n locale: curLocale\n });\n }\n }, [as, href, isVisible, locale, p, router]);\n\n const childProps = {\n ref: setRef,\n onClick: e => {\n if (child.props && typeof child.props.onClick === 'function') {\n child.props.onClick(e);\n }\n\n if (!e.defaultPrevented) {\n linkClicked(e, router, href, as, replace, shallow, scroll, locale);\n }\n }\n };\n\n childProps.onMouseEnter = e => {\n if (!(0, _router).isLocalURL(href)) return;\n\n if (child.props && typeof child.props.onMouseEnter === 'function') {\n child.props.onMouseEnter(e);\n }\n\n prefetch(router, href, as, {\n priority: true\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\n\n if (props.passHref || child.type === 'a' && !('href' in child.props)) {\n const curLocale = typeof locale !== 'undefined' ? locale : router && router.locale; // we only render domain locales if we are currently on a domain locale\n // so that locale links are still visitable in development/preview envs\n\n const localeDomain = router && router.isLocaleDomain && (0, _router).getDomainLocale(as, curLocale, router && router.locales, router && router.domainLocales);\n childProps.href = localeDomain || (0, _router).addBasePath((0, _router).addLocale(as, curLocale, router && router.defaultLocale));\n }\n\n return /*#__PURE__*/_react.default.cloneElement(child, childProps);\n}\n\nvar _default = Link;\nexports[\"default\"] = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9saW5rLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxrQkFBQSxHQUFrQixLQUFLLENBQXZCOztBQUNBLElBQUlHLE1BQU0sR0FBR0Msc0JBQXNCLENBQUNDLG1CQUFPLENBQUMsb0JBQUQsQ0FBUixDQUFuQzs7QUFDQSxJQUFJQyxPQUFPLEdBQUdELG1CQUFPLENBQUMseUZBQUQsQ0FBckI7O0FBQ0EsSUFBSUUsUUFBUSxHQUFHRixtQkFBTyxDQUFDLDJEQUFELENBQXRCOztBQUNBLElBQUlHLGdCQUFnQixHQUFHSCxtQkFBTyxDQUFDLCtFQUFELENBQTlCOztBQUNBLFNBQVNELHNCQUFULENBQWdDSyxHQUFoQyxFQUFxQztBQUNqQyxTQUFPQSxHQUFHLElBQUlBLEdBQUcsQ0FBQ0MsVUFBWCxHQUF3QkQsR0FBeEIsR0FBOEI7QUFDakNQLElBQUFBLE9BQU8sRUFBRU87QUFEd0IsR0FBckM7QUFHSDs7QUFDRCxNQUFNRSxVQUFVLEdBQUcsRUFBbkI7O0FBRUEsU0FBU0MsUUFBVCxDQUFrQkMsTUFBbEIsRUFBMEJDLElBQTFCLEVBQWdDQyxFQUFoQyxFQUFvQ0MsT0FBcEMsRUFBNkM7QUFDekMsTUFBSSxJQUFKLEVBQThDO0FBQzlDLE1BQUksQ0FBQyxDQUFDLEdBQUdWLE9BQUosRUFBYVcsVUFBYixDQUF3QkgsSUFBeEIsQ0FBTCxFQUFvQyxPQUZLLENBR3pDO0FBQ0E7QUFDQTtBQUNBOztBQUNBRCxFQUFBQSxNQUFNLENBQUNELFFBQVAsQ0FBZ0JFLElBQWhCLEVBQXNCQyxFQUF0QixFQUEwQkMsT0FBMUIsRUFBbUNFLEtBQW5DLENBQTBDQyxHQUFELElBQU87QUFDNUMsY0FBMkM7QUFDdkM7QUFDQSxZQUFNQSxHQUFOO0FBQ0g7QUFDSixHQUxEO0FBTUEsUUFBTUMsU0FBUyxHQUFHSixPQUFPLElBQUksT0FB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O0FBQ0g7O0FBQ0QsU0FBTyxhQUFjL0YsTUFBTSxDQUFDRCxPQUFQLENBQWVpRyxZQUFmLENBQTRCN0IsS0FBNUIsRUFBbUNlLFVBQW5DLENBQXJCO0FBQ0g7O0FBQ0QsSUFBSWUsUUFBUSxHQUFHNUQsSUFBZjtBQUNBeEMsa0JBQUEsR0FBa0JvRyxRQUFsQiIsInNvdXJjZXMiOlsid2VicGFjazovL3ZpZS1yZWFjdC8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2xpbmsuanM/ZTRmOSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IHZvaWQgMDtcbnZhciBfcmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG52YXIgX3JvdXRlciA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3JvdXRlci9yb3V0ZXJcIik7XG52YXIgX3JvdXRlcjEgPSByZXF1aXJlKFwiLi9yb3V0ZXJcIik7XG52YXIgX3VzZUludGVyc2VjdGlvbiA9IHJlcXVpcmUoXCIuL3VzZS1pbnRlcnNlY3Rpb25cIik7XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5jb25zdCBwcmVmZXRjaGVkID0ge1xufTtcbmZ1bmN0aW9uIHByZWZldGNoKHJvdXRlciwgaHJlZiwgYXMsIG9wdGlvbnMpIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgIXJvdXRlcikgcmV0dXJuO1xuICAgIGlmICghKDAsIF9yb3V0ZXIpLmlzTG9jYWxVUkwoaHJlZikpIHJldHVybjtcbiAgICAvLyBQcmVmZXRjaCB0aGUgSlNPTiBwYWdlIGlmIGFza2VkIChvbmx5IGluIHRoZSBjbGllbnQpXG4gICAgLy8gV2UgbmVlZCB0byBoYW5kbGUgYSBwcmVmZXRjaCBlcnJvciBoZXJlIHNpbmNlIHdlIG1heSBiZVxuICAgIC8vIGxvYWRpbmcgd2l0aCBwcmlvcml0eSB3aGljaCBjYW4gcmVqZWN0IGJ1dCB3ZSBkb24ndFxuICAgIC8vIHdhbnQgdG8gZm9yY2UgbmF2aWdhdGlvbiBzaW5jZSB0aGlzIGlzIG9ubHkgYSBwcmVmZXRjaFxuICAgIHJvdXRlci5wcmVmZXRjaChocmVmLCBhcywgb3B0aW9ucykuY2F0Y2goKGVycik9PntcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgIC8vIHJldGhyb3cgdG8gc2hvdyBpbnZhbGlkIFVSTCBlcnJvcnNcbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGN1ckxvY2FsZSA9IG9wdGlvbnMgJiYgdHlwZW9mIG9wdGlvbnMubG9jYWxlICE9PSAndW5kZWZpbmVkJyA/IG9wdGlvbnMubG9jYWxlIDogcm91dGVyICYmIHJvdXRlci5sb2NhbGU7XG4gICAgLy8gSm9pbiBvbiBhbiBpbnZhbGlkIFVSSSBjaGFyYWN0ZXJcbiAgICBwcmVmZXRjaGVkW2hyZWYgKyAnJScgKyBhcyArIChjdXJMb2NhbGUgPyAnJScgKyBjdXJMb2NhbGUgOiAnJyldID0gdHJ1ZTtcbn1cbmZ1bmN0aW9uIGlzTW9kaWZpZWRFdmVudChldmVudCkge1xuICAgIGNvbnN0IHsgdGFyZ2V0ICB9ID0gZXZlbnQuY3VycmVudFRhcmdldDtcbiAgICByZXR1cm4gdGFyZ2V0ICYmIHRhcmdldCAhPT0gJ19zZWxmJyB8fCBldmVudC5tZXRhS2V5IHx8IGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQuc2hpZnRLZXkgfHwgZXZlbnQuYWx0S2V5IHx8IGV2ZW50Lm5hdGl2ZUV2ZW50ICYmIGV2ZW50Lm5hdGl2ZUV2ZW50LndoaWNoID09PSAyO1xufVxuZnVuY3Rpb24gbGlua0NsaWNrZWQoZSwgcm91dGVyLCBocmVmLCBhcywgcmVwbGFjZSwgc2hhbGxvdywgc2Nyb2xsLCBsb2NhbGUpIHtcbiAgICBjb25zdCB7IG5vZGVOYW1lICB9ID0gZS5jdXJyZW50VGFyZ2V0O1xuICAgIGlmIChub2RlTmFtZSA9PT0gJ0EnICYmIChpc01vZGlmaWVkRXZlbnQoZSkgfHwgISgwLCBfcm91dGVyKS5pc0xvY2FsVVJMKGhyZWYpKSkge1xuICAgICAgICAvLyBpZ25vcmUgY2xpY2sgZm9yIGJyb3dzZXLigJlzIGRlZmF1bHQgYmVoYXZpb3JcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgLy8gIGF2b2lkIHNjcm9sbCBmb3IgdXJscyB3aXRoIGFuY2hvciByZWZzXG4gICAgaWYgKHNjcm9sbCA9PSBudWxsICYmIGFzLmluZGV4T2YoJyMnKSA+PSAwKSB7XG4gICAgICAgIHNjcm9sbCA9IGZhbHNlO1xuICAgIH1cbiAgICAvLyByZXBsYWNlIHN0YXRlIGluc3RlYWQgb2YgcHVzaCBpZiBwcm9wIGlzIHByZXNlbnRcbiAgICByb3V0ZXJbcmVwbGFjZSA/ICdyZXBsYWNlJyA6ICdwdXNoJ10oaHJlZiwgYXMsIHtcbiAgICAgICAgc2hhbGxvdyxcbiAgICAgICAgbG9jYWxlLFxuICAgICAgICBzY3JvbGxcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIExpbmsocHJvcHMpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBmdW5jdGlvbiBjcmVhdGVQcm9wRXJyb3IoYXJncykge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBFcnJvcihgRmFpbGVkIHByb3AgdHlwZTogVGhlIHByb3AgXFxgJHthcmdzLmtleX1cXGAgZXhwZWN0cyBhICR7YXJncy5leHBlY3RlZH0gaW4gXFxgPExpbms+XFxgLCBidXQgZ290IFxcYCR7YXJncy5hY3R1YWx9XFxgIGluc3RlYWQuYCArICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyA/IFwiXFxuT3BlbiB5b3VyIGJyb3dzZXIncyBjb25zb2xlIHRvIHZpZXcgdGhlIENvbXBvbmVudCBzdGFjayB0cmFjZS5cIiA6ICcnKSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gVHlwZVNjcmlwdCB0cmljayBmb3IgdHlwZS1ndWFyZGluZzpcbiAgICAgICAgY29uc3QgcmVxdWlyZWRQcm9wc0d1YXJkID0ge1xuICAgICAgICAgICAgaHJlZjogdHJ1ZVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCByZXF1aXJlZFByb3BzID0gT2JqZWN0LmtleXMocmVxdWlyZWRQcm9wc0d1YXJkKTtcbiAgICAgICAgcmVxdWlyZWRQcm9wcy5mb3JFYWNoKChrZXkpPT57XG4gICAgICAgICAgICBpZiAoa2V5ID09PSAnaHJlZicpIHtcbiAgICAgICAgICAgICAgICBpZiAocHJvcHNba2V5XSA9PSBudWxsIHx8IHR5cGVvZiBwcm9wc1trZXldICE9PSAnc3RyaW5nJyAmJiB0eXBlb2YgcHJvcHNba2V5XSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgY3JlYXRlUHJvcEVycm9yKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkOiAnYHN0cmluZ2Agb3IgYG9iamVjdGAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFsOiBwcm9wc1trZXldID09PSBudWxsID8gJ251bGwnIDogdHlwZW9mIHByb3BzW2tleV1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBUeXBlU2NyaXB0IHRyaWNrIGZvciB0eXBlLWd1YXJkaW5nOlxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAgICAgICAgICAgICBjb25zdCBfID0ga2V5O1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgLy8gVHlwZVNjcmlwdCB0cmljayBmb3IgdHlwZS1ndWFyZGluZzpcbiAgICAgICAgY29uc3Qgb3B0aW9uYWxQcm9wc0d1YXJkID0ge1xuICAgICAgICAgICAgYXM6IHRydWUsXG4gICAgICAgICAgICByZXBsYWNlOiB0cnVlLFxuICAgICAgICAgICAgc2Nyb2xsOiB0cnVlLFxuICAgICAgICAgICAgc2hhbGxvdzogdHJ1ZSxcbiAgICAgICAgICAgIHBhc3NIcmVmOiB0cnVlLFxuICAgICAgICAgICAgcHJlZmV0Y2g6IHRydWUsXG4gICAgICAgICAgICBsb2NhbGU6IHRydWVcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3Qgb3B0aW9uYWxQcm9wcyA9IE9iamVjdC5rZXlzKG9wdGlvbmFsUHJvcHNHdWFyZCk7XG4gICAgICAgIG9wdGlvbmFsUHJvcHMuZm9yRWFjaCgoa2V5KT0+e1xuICAgICAgICAgICAgY29uc3QgdmFsVHlwZSA9IHR5cGVvZiBwcm9wc1trZXldO1xuICAgICAgICAgICAgaWYgKGtleSA9PT0gJ2FzJykge1xuICAgICAgICAgICAgICAgIGlmIChwcm9wc1trZXldICYmIHZhbFR5cGUgIT09ICdzdHJpbmcnICYmIHZhbFR5cGUgIT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGNyZWF0ZVByb3BFcnJvcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZDogJ2BzdHJpbmdgIG9yIGBvYmplY3RgJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbDogdmFsVHlwZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2xvY2FsZScpIHtcbiAgICAgICAgICAgICAgICBpZiAocHJvcHNba2V5XSAmJiB2YWxUeXBlICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBjcmVhdGVQcm9wRXJyb3Ioe1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQ6ICdgc3RyaW5nYCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWw6IHZhbFR5cGVcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdyZXBsYWNlJyB8fCBrZXkgPT09ICdzY3JvbGwnIHx8IGtleSA9PT0gJ3NoYWxsb3cnIHx8IGtleSA9PT0gJ3Bhc3NIcmVmJyB8fCBrZXkgPT09ICdwcmVmZXRjaCcpIHtcbiAgICAgICAgICAgICAgICBpZiAocHJvcHNba2V5XSAhPSBudWxsICYmIHZhbFR5cGUgIT09ICdib29sZWFuJykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBjcmVhdGVQcm9wRXJyb3Ioe1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQ6ICdgYm9vbGVhbmAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFsOiB2YWxUeXBlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gVHlwZVNjcmlwdCB0cmljayBmb3IgdHlwZS1ndWFyZGluZzpcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgICAgICAgICAgICAgY29uc3QgXyA9IGtleTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIC8vIFRoaXMgaG9vayBpcyBpbiBhIGNvbmRpdGlvbmFsIGJ1dCB0aGF0IGlzIG9rIGJlY2F1c2UgYHByb2Nlc3MuZW52Lk5PREVfRU5WYCBuZXZlciBjaGFuZ2VzXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9ydWxlcy1vZi1ob29rc1xuICAgICAgICBjb25zdCBoYXNXYXJuZWQgPSBfcmVhY3QuZGVmYXVsdC51c2VSZWYoZmFsc2UpO1xuICAgICAgICBpZiAocHJvcHMucHJlZmV0Y2ggJiYgIWhhc1dhcm5lZC5jdXJyZW50KSB7XG4gICAgICAgICAgICBoYXNXYXJuZWQuY3VycmVudCA9IHRydWU7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ05leHQuanMgYXV0by1wcmVmZXRjaGVzIGF1dG9tYXRpY2FsbHkgYmFzZWQgb24gdmlld3BvcnQuIFRoZSBwcmVmZXRjaCBhdHRyaWJ1dGUgaXMgbm8gbG9uZ2VyIG5lZWRlZC4gTW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvcHJlZmV0Y2gtdHJ1ZS1kZXByZWNhdGVkJyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgcCA9IHByb3BzLnByZWZldGNoICE9PSBmYWxzZTtcbiAgICBjb25zdCByb3V0ZXIgPSAoMCwgX3JvdXRlcjEpLnVzZVJvdXRlcigpO1xuICAgIGNvbnN0IHsgaHJlZiAsIGFzICB9ID0gX3JlYWN0LmRlZmF1bHQudXNlTWVtbygoKT0+e1xuICAgICAgICBjb25zdCBbcmVzb2x2ZWRIcmVmLCByZXNvbHZlZEFzXSA9ICgwLCBfcm91dGVyKS5yZXNvbHZlSHJlZihyb3V0ZXIsIHByb3BzLmhyZWYsIHRydWUpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaHJlZjogcmVzb2x2ZWRIcmVmLFxuICAgICAgICAgICAgYXM6IHByb3BzLmFzID8gKDAsIF9yb3V0ZXIpLnJlc29sdmVIcmVmKHJvdXRlciwgcHJvcHMuYXMpIDogcmVzb2x2ZWRBcyB8fCByZXNvbHZlZEhyZWZcbiAgICAgICAgfTtcbiAgICB9LCBbXG4gICAgICAgIHJvdXRlcixcbiAgICAgICAgcHJvcHMuaHJlZixcbiAgICAgICAgcHJvcHMuYXNcbiAgICBdKTtcbiAgICBsZXQgeyBjaGlsZHJlbiAsIHJlcGxhY2UgLCBzaGFsbG93ICwgc2Nyb2xsICwgbG9jYWxlICB9ID0gcHJvcHM7XG4gICAgLy8gRGVwcmVjYXRlZC4gV2FybmluZyBzaG93biBieSBwcm9wVHlwZSBjaGVjay4gSWYgdGhlIGNoaWxkcmVuIHByb3ZpZGVkIGlzIGEgc3RyaW5nICg8TGluaz5leGFtcGxlPC9MaW5rPikgd2Ugd3JhcCBpdCBpbiBhbiA8YT4gdGFnXG4gICAgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY2hpbGRyZW4gPSAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJhXCIsIG51bGwsIGNoaWxkcmVuKTtcbiAgICB9XG4gICAgLy8gVGhpcyB3aWxsIHJldHVybiB0aGUgZmlyc3QgY2hpbGQsIGlmIG11bHRpcGxlIGFyZSBwcm92aWRlZCBpdCB3aWxsIHRocm93IGFuIGVycm9yXG4gICAgbGV0IGNoaWxkO1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY2hpbGQgPSBfcmVhY3QuZGVmYXVsdC5DaGlsZHJlbi5vbmx5KGNoaWxkcmVuKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE11bHRpcGxlIGNoaWxkcmVuIHdlcmUgcGFzc2VkIHRvIDxMaW5rPiB3aXRoIFxcYGhyZWZcXGAgb2YgXFxgJHtwcm9wcy5ocmVmfVxcYCBidXQgb25seSBvbmUgY2hpbGQgaXMgc3VwcG9ydGVkIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2xpbmstbXVsdGlwbGUtY2hpbGRyZW5gICsgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnID8gXCIgXFxuT3BlbiB5b3VyIGJyb3dzZXIncyBjb25zb2xlIHRvIHZpZXcgdGhlIENvbXBvbmVudCBzdGFjayB0cmFjZS5cIiA6ICcnKSk7XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBjaGlsZCA9IF9yZWFjdC5kZWZhdWx0LkNoaWxkcmVuLm9ubHkoY2hpbGRyZW4pO1xuICAgIH1cbiAgICBjb25zdCBjaGlsZFJlZiA9IGNoaWxkICYmIHR5cGVvZiBjaGlsZCA9PT0gJ29iamVjdCcgJiYgY2hpbGQucmVmO1xuICAgIGNvbnN0IFtzZXRJbnRlcnNlY3Rpb25SZWYsIGlzVmlzaWJsZV0gPSAoMCwgX3VzZUludGVyc2VjdGlvbikudXNlSW50ZXJzZWN0aW9uKHtcbiAgICAgICAgcm9vdE1hcmdpbjogJzIwMHB4J1xuICAgIH0pO1xuICAgIGNvbnN0IHNldFJlZiA9IF9yZWFjdC5kZWZhdWx0LnVzZUNhbGxiYWNrKChlbCk9PntcbiAgICAgICAgc2V0SW50ZXJzZWN0aW9uUmVmKGVsKTtcbiAgICAgICAgaWYgKGNoaWxkUmVmKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGNoaWxkUmVmID09PSAnZnVuY3Rpb24nKSBjaGlsZFJlZihlbCk7XG4gICAgICAgICAgICBlbHNlIGlmICh0eXBlb2YgY2hpbGRSZWYgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgY2hpbGRSZWYuY3VycmVudCA9IGVsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSwgW1xuICAgICAgICBjaGlsZFJlZixcbiAgICAgICAgc2V0SW50ZXJzZWN0aW9uUmVmXG4gICAgXSk7XG4gICAgX3JlYWN0LmRlZmF1bHQudXNlRWZmZWN0KCgpPT57XG4gICAgICAgIGNvbnN0IHNob3VsZFByZWZldGNoID0gaXNWaXNpYmxlICYmIHAgJiYgKDAsIF9yb3V0ZXIpLmlzTG9jYWxVUkwoaHJlZik7XG4gICAgICAgIGNvbnN0IGN1ckxvY2FsZSA9IHR5cGVvZiBsb2NhbGUgIT09ICd1bmRlZmluZWQnID8gbG9jYWxlIDogcm91dGVyICYmIHJvdXRlci5sb2NhbGU7XG4gICAgICAgIGNvbnN0IGlzUHJlZmV0Y2hlZCA9IHByZWZldGNoZWRbaHJlZiArICclJyArIGFzICsgKGN1ckxvY2FsZSA/ICclJyArIGN1ckxvY2FsZSA6ICcnKV07XG4gICAgICAgIGlmIChzaG91bGRQcmVmZXRjaCAmJiAhaXNQcmVmZXRjaGVkKSB7XG4gICAgICAgICAgICBwcmVmZXRjaChyb3V0ZXIsIGhyZWYsIGFzLCB7XG4gICAgICAgICAgICAgICAgbG9jYWxlOiBjdXJMb2NhbGVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSwgW1xuICAgICAgICBhcyxcbiAgICAgICAgaHJlZixcbiAgICAgICAgaXNWaXNpYmxlLFxuICAgICAgICBsb2NhbGUsXG4gICAgICAgIHAsXG4gICAgICAgIHJvdXRlclxuICAgIF0pO1xuICAgIGNvbnN0IGNoaWxkUHJvcHMgPSB7XG4gICAgICAgIHJlZjogc2V0UmVmLFxuICAgICAgICBvbkNsaWNrOiAoZSk9PntcbiAgICAgICAgICAgIGlmIChjaGlsZC5wcm9wcyAmJiB0eXBlb2YgY2hpbGQucHJvcHMub25DbGljayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIGNoaWxkLnByb3BzLm9uQ2xpY2soZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWUuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgICAgICAgICAgIGxpbmtDbGlja2VkKGUsIHJvdXRlciwgaHJlZiwgYXMsIHJlcGxhY2UsIHNoYWxsb3csIHNjcm9sbCwgbG9jYWxlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG4gICAgY2hpbGRQcm9wcy5vbk1vdXNlRW50ZXIgPSAoZSk9PntcbiAgICAgICAgaWYgKCEoMCwgX3JvdXRlcikuaXNMb2NhbFVSTChocmVmKSkgcmV0dXJuO1xuICAgICAgICBpZiAoY2hpbGQucHJvcHMgJiYgdHlwZW9mIGNoaWxkLnByb3BzLm9uTW91c2VFbnRlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgY2hpbGQucHJvcHMub25Nb3VzZUVudGVyKGUpO1xuICAgICAgICB9XG4gICAgICAgIHByZWZldGNoKHJvdXRlciwgaHJlZiwgYXMsIHtcbiAgICAgICAgICAgIHByaW9yaXR5OiB0cnVlXG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgLy8gSWYgY2hpbGQgaXMgYW4gPGE+IHRhZyBhbmQgZG9lc24ndCBoYXZlIGEgaHJlZiBhdHRyaWJ1dGUsIG9yIGlmIHRoZSAncGFzc0hyZWYnIHByb3BlcnR5IGlzXG4gICAgLy8gZGVmaW5lZCwgd2Ugc3BlY2lmeSB0aGUgY3VycmVudCAnaHJlZicsIHNvIHRoYXQgcmVwZXRpdGlvbiBpcyBub3QgbmVlZGVkIGJ5IHRoZSB1c2VyXG4gICAgaWYgKHByb3BzLnBhc3NIcmVmIHx8IGNoaWxkLnR5cGUgPT09ICdhJyAmJiAhKCdocmVmJyBpbiBjaGlsZC5wcm9wcykpIHtcbiAgICAgICAgY29uc3QgY3VyTG9jYWxlID0gdHlwZW9mIGxvY2FsZSAhPT0gJ3VuZGVmaW5lZCcgPyBsb2NhbGUgOiByb3V0ZXIgJiYgcm91dGVyLmxvY2FsZTtcbiAgICAgICAgLy8gd2Ugb25seSByZW5kZXIgZG9tYWluIGxvY2FsZXMgaWYgd2UgYXJlIGN1cnJlbnRseSBvbiBhIGRvbWFpbiBsb2NhbGVcbiAgICAgICAgLy8gc28gdGhhdCBsb2NhbGUgbGlua3MgYXJlIHN0aWxsIHZpc2l0YWJsZSBpbiBkZXZlbG9wbWVudC9wcmV2aWV3IGVudnNcbiAgICAgICAgY29uc3QgbG9jYWxlRG9tYWluID0gcm91dGVyICYmIHJvdXRlci5pc0xvY2FsZURvbWFpbiAmJiAoMCwgX3JvdXRlcikuZ2V0RG9tYWluTG9jYWxlKGFzLCBjdXJMb2NhbGUsIHJvdXRlciAmJiByb3V0ZXIubG9jYWxlcywgcm91dGVyICYmIHJvdXRlci5kb21haW5Mb2NhbGVzKTtcbiAgICAgICAgY2hpbGRQcm9wcy5ocmVmID0gbG9jYWxlRG9tYWluIHx8ICgwLCBfcm91dGVyKS5hZGRCYXNlUGF0aCgoMCwgX3JvdXRlcikuYWRkTG9jYWxlKGFzLCBjdXJMb2NhbGUsIHJvdXRlciAmJiByb3V0ZXIuZGVmYXVsdExvY2FsZSkpO1xuICAgIH1cbiAgICByZXR1cm4oLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jbG9uZUVsZW1lbnQoY2hpbGQsIGNoaWxkUHJvcHMpKTtcbn1cbnZhciBfZGVmYXVsdCA9IExpbms7XG5leHBvcnRzLmRlZmF1bHQgPSBfZGVmYXVsdDtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bGluay5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJkZWZhdWx0IiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcm91dGVyIiwiX3JvdXRlcjEiLCJfdXNlSW50ZXJzZWN0aW9uIiwib2JqIiwiX19lc01vZHVsZSIsInByZWZldGNoZWQiLCJwcmVmZXRjaCIsInJvdXRlciIsImhyZWYiLCJhcyIsIm9wdGlvbnMiLCJpc0xvY2FsVVJMIiwiY2F0Y2giLCJlcnIiLCJjdXJMb2NhbGUiLCJsb2NhbGUiLCJpc01vZGlmaWVkRXZlbnQiLCJldmVudCIsInRhcmdldCIsImN1cnJlbnRUYXJnZXQiLCJtZXRhS2V5IiwiY3RybEtleSIsInNoaWZ0S2V5IiwiYWx0S2V5IiwibmF0aXZlRXZlbnQiLCJ3aGljaCIsImxpbmtDbGlja2VkIiwiZSIsInJlcGxhY2UiLCJzaGFsbG93Iiwic2Nyb2xsIiwibm9kZU5hbWUiLCJwcmV2ZW50RGVmYXVsdCIsImluZGV4T2YiLCJMaW5rIiwicHJvcHMiLCJjcmVhdGVQcm9wRXJyb3IiLCJhcmdzIiwiRXJyb3IiLCJrZXkiLCJleHBlY3RlZCIsImFjdHVhbCIsInJlcXVpcmVkUHJvcHNHdWFyZCIsInJlcXVpcmVkUHJvcHMiLCJrZXlzIiwiZm9yRWFjaCIsIl8iLCJvcHRpb25hbFByb3BzR3VhcmQiLCJwYXNzSHJlZiIsIm9wdGlvbmFsUHJvcHMiLCJ2YWxUeXBlIiwiaGFzV2FybmVkIiwidXNlUmVmIiwiY3VycmVudCIsImNvbnNvbGUiLCJ3YXJuIiwicCIsInVzZVJvdXRlciIsInVzZU1lbW8iLCJyZXNvbHZlZEhyZWYiLCJyZXNvbHZlZEFzIiwicmVzb2x2ZUhyZWYiLCJjaGlsZHJlbiIsImNyZWF0ZUVsZW1lbnQiLCJjaGlsZCIsIkNoaWxkcmVuIiwib25seSIsImNoaWxkUmVmIiwicmVmIiwic2V0SW50ZXJzZWN0aW9uUmVmIiwiaXNWaXNpYmxlIiwidXNlSW50ZXJzZWN0aW9uIiwicm9vdE1hcmdpbiIsInNldFJlZiIsInVzZUNhbGxiYWNrIiwiZWwiLCJ1c2VFZmZlY3QiLCJzaG91bGRQcmVmZXRjaCIsImlzUHJlZmV0Y2hlZCIsImNoaWxkUHJvcHMiLCJvbkNsaWNrIiwiZGVmYXVsdFByZXZlbnRlZCIsIm9uTW91c2VFbnRlciIsInByaW9yaXR5IiwidHlwZSIsImxvY2FsZURvbWFpbiIsImlzTG9jYWxlRG9tYWluIiwiZ2V0RG9tYWluTG9jYWxlIiwibG9jYWxlcyIsImRvbWFpbkxvY2FsZXMiLCJhZGRCYXNlUGF0aCIsImFkZExvY2FsZSIsImRlZmF1bHRMb2NhbGUiLCJjbG9uZUVsZW1lbnQiLCJfZGVmYXVsdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/link.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/normalize-trailing-slash.js": +/*!*******************************************************************!*\ + !*** ./node_modules/next/dist/client/normalize-trailing-slash.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.removePathTrailingSlash = removePathTrailingSlash;\nexports.normalizePathTrailingSlash = void 0;\n\nfunction removePathTrailingSlash(path) {\n return path.endsWith('/') && path !== '/' ? path.slice(0, -1) : path;\n}\n\nconst normalizePathTrailingSlash = true ? path => {\n if (/\\.[^/]+\\/?$/.test(path)) {\n return removePathTrailingSlash(path);\n } else if (path.endsWith('/')) {\n return path;\n } else {\n return path + '/';\n }\n} : 0;\nexports.normalizePathTrailingSlash = normalizePathTrailingSlash;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9ub3JtYWxpemUtdHJhaWxpbmctc2xhc2guanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELCtCQUFBLEdBQWtDRSx1QkFBbEM7QUFDQUYsa0NBQUEsR0FBcUMsS0FBSyxDQUExQzs7QUFDQSxTQUFTRSx1QkFBVCxDQUFpQ0UsSUFBakMsRUFBdUM7QUFDbkMsU0FBT0EsSUFBSSxDQUFDQyxRQUFMLENBQWMsR0FBZCxLQUFzQkQsSUFBSSxLQUFLLEdBQS9CLEdBQXFDQSxJQUFJLENBQUNFLEtBQUwsQ0FBVyxDQUFYLEVBQWMsQ0FBQyxDQUFmLENBQXJDLEdBQXlERixJQUFoRTtBQUNIOztBQUNELE1BQU1ELDBCQUEwQixHQUFHSSxLQUFBLEdBQXFDSCxJQUFELElBQVE7QUFDM0UsTUFBSSxjQUFjTSxJQUFkLENBQW1CTixJQUFuQixDQUFKLEVBQThCO0FBQzFCLFdBQU9GLHVCQUF1QixDQUFDRSxJQUFELENBQTlCO0FBQ0gsR0FGRCxNQUVPLElBQUlBLElBQUksQ0FBQ0MsUUFBTCxDQUFjLEdBQWQsQ0FBSixFQUF3QjtBQUMzQixXQUFPRCxJQUFQO0FBQ0gsR0FGTSxNQUVBO0FBQ0gsV0FBT0EsSUFBSSxHQUFHLEdBQWQ7QUFDSDtBQUNKLENBUmtDLEdBUS9CRixDQVJKO0FBU0FGLGtDQUFBLEdBQXFDRywwQkFBckMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly92aWUtcmVhY3QvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9ub3JtYWxpemUtdHJhaWxpbmctc2xhc2guanM/NGMyZSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMucmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2ggPSByZW1vdmVQYXRoVHJhaWxpbmdTbGFzaDtcbmV4cG9ydHMubm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2ggPSB2b2lkIDA7XG5mdW5jdGlvbiByZW1vdmVQYXRoVHJhaWxpbmdTbGFzaChwYXRoKSB7XG4gICAgcmV0dXJuIHBhdGguZW5kc1dpdGgoJy8nKSAmJiBwYXRoICE9PSAnLycgPyBwYXRoLnNsaWNlKDAsIC0xKSA6IHBhdGg7XG59XG5jb25zdCBub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCA9IHByb2Nlc3MuZW52Ll9fTkVYVF9UUkFJTElOR19TTEFTSCA/IChwYXRoKT0+e1xuICAgIGlmICgvXFwuW14vXStcXC8/JC8udGVzdChwYXRoKSkge1xuICAgICAgICByZXR1cm4gcmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2gocGF0aCk7XG4gICAgfSBlbHNlIGlmIChwYXRoLmVuZHNXaXRoKCcvJykpIHtcbiAgICAgICAgcmV0dXJuIHBhdGg7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHBhdGggKyAnLyc7XG4gICAgfVxufSA6IHJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoO1xuZXhwb3J0cy5ub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCA9IG5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1ub3JtYWxpemUtdHJhaWxpbmctc2xhc2guanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwicmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2giLCJub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCIsInBhdGgiLCJlbmRzV2l0aCIsInNsaWNlIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9UUkFJTElOR19TTEFTSCIsInRlc3QiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/normalize-trailing-slash.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/request-idle-callback.js": +/*!****************************************************************!*\ + !*** ./node_modules/next/dist/client/request-idle-callback.js ***! + \****************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.cancelIdleCallback = exports.requestIdleCallback = void 0;\n\nconst requestIdleCallback = typeof self !== 'undefined' && self.requestIdleCallback && self.requestIdleCallback.bind(window) || function (cb) {\n let start = Date.now();\n return setTimeout(function () {\n cb({\n didTimeout: false,\n timeRemaining: function () {\n return Math.max(0, 50 - (Date.now() - start));\n }\n });\n }, 1);\n};\n\nexports.requestIdleCallback = requestIdleCallback;\n\nconst cancelIdleCallback = typeof self !== 'undefined' && self.cancelIdleCallback && self.cancelIdleCallback.bind(window) || function (id) {\n return clearTimeout(id);\n};\n\nexports.cancelIdleCallback = cancelIdleCallback;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yZXF1ZXN0LWlkbGUtY2FsbGJhY2suanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELDBCQUFBLEdBQTZCQSwyQkFBQSxHQUE4QixLQUFLLENBQWhFOztBQUNBLE1BQU1HLG1CQUFtQixHQUFHLE9BQU9DLElBQVAsS0FBZ0IsV0FBaEIsSUFBK0JBLElBQUksQ0FBQ0QsbUJBQXBDLElBQTJEQyxJQUFJLENBQUNELG1CQUFMLENBQXlCRSxJQUF6QixDQUE4QkMsTUFBOUIsQ0FBM0QsSUFBb0csVUFBU0MsRUFBVCxFQUFhO0FBQ3pJLE1BQUlDLEtBQUssR0FBR0MsSUFBSSxDQUFDQyxHQUFMLEVBQVo7QUFDQSxTQUFPQyxVQUFVLENBQUMsWUFBVztBQUN6QkosSUFBQUEsRUFBRSxDQUFDO0FBQ0NLLE1BQUFBLFVBQVUsRUFBRSxLQURiO0FBRUNDLE1BQUFBLGFBQWEsRUFBRSxZQUFXO0FBQ3RCLGVBQU9DLElBQUksQ0FBQ0MsR0FBTCxDQUFTLENBQVQsRUFBWSxNQUFNTixJQUFJLENBQUNDLEdBQUwsS0FBYUYsS0FBbkIsQ0FBWixDQUFQO0FBQ0g7QUFKRixLQUFELENBQUY7QUFNSCxHQVBnQixFQU9kLENBUGMsQ0FBakI7QUFRSCxDQVZEOztBQVdBUiwyQkFBQSxHQUE4QkcsbUJBQTlCOztBQUNBLE1BQU1ELGtCQUFrQixHQUFHLE9BQU9FLElBQVAsS0FBZ0IsV0FBaEIsSUFBK0JBLElBQUksQ0FBQ0Ysa0JBQXBDLElBQTBERSxJQUFJLENBQUNGLGtCQUFMLENBQXdCRyxJQUF4QixDQUE2QkMsTUFBN0IsQ0FBMUQsSUFBa0csVUFBU1UsRUFBVCxFQUFhO0FBQ3RJLFNBQU9DLFlBQVksQ0FBQ0QsRUFBRCxDQUFuQjtBQUNILENBRkQ7O0FBR0FoQiwwQkFBQSxHQUE2QkUsa0JBQTdCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmllLXJlYWN0Ly4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvcmVxdWVzdC1pZGxlLWNhbGxiYWNrLmpzPzFlMjAiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmNhbmNlbElkbGVDYWxsYmFjayA9IGV4cG9ydHMucmVxdWVzdElkbGVDYWxsYmFjayA9IHZvaWQgMDtcbmNvbnN0IHJlcXVlc3RJZGxlQ2FsbGJhY2sgPSB0eXBlb2Ygc2VsZiAhPT0gJ3VuZGVmaW5lZCcgJiYgc2VsZi5yZXF1ZXN0SWRsZUNhbGxiYWNrICYmIHNlbGYucmVxdWVzdElkbGVDYWxsYmFjay5iaW5kKHdpbmRvdykgfHwgZnVuY3Rpb24oY2IpIHtcbiAgICBsZXQgc3RhcnQgPSBEYXRlLm5vdygpO1xuICAgIHJldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICBjYih7XG4gICAgICAgICAgICBkaWRUaW1lb3V0OiBmYWxzZSxcbiAgICAgICAgICAgIHRpbWVSZW1haW5pbmc6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBNYXRoLm1heCgwLCA1MCAtIChEYXRlLm5vdygpIC0gc3RhcnQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSwgMSk7XG59O1xuZXhwb3J0cy5yZXF1ZXN0SWRsZUNhbGxiYWNrID0gcmVxdWVzdElkbGVDYWxsYmFjaztcbmNvbnN0IGNhbmNlbElkbGVDYWxsYmFjayA9IHR5cGVvZiBzZWxmICE9PSAndW5kZWZpbmVkJyAmJiBzZWxmLmNhbmNlbElkbGVDYWxsYmFjayAmJiBzZWxmLmNhbmNlbElkbGVDYWxsYmFjay5iaW5kKHdpbmRvdykgfHwgZnVuY3Rpb24oaWQpIHtcbiAgICByZXR1cm4gY2xlYXJUaW1lb3V0KGlkKTtcbn07XG5leHBvcnRzLmNhbmNlbElkbGVDYWxsYmFjayA9IGNhbmNlbElkbGVDYWxsYmFjaztcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVxdWVzdC1pZGxlLWNhbGxiYWNrLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImNhbmNlbElkbGVDYWxsYmFjayIsInJlcXVlc3RJZGxlQ2FsbGJhY2siLCJzZWxmIiwiYmluZCIsIndpbmRvdyIsImNiIiwic3RhcnQiLCJEYXRlIiwibm93Iiwic2V0VGltZW91dCIsImRpZFRpbWVvdXQiLCJ0aW1lUmVtYWluaW5nIiwiTWF0aCIsIm1heCIsImlkIiwiY2xlYXJUaW1lb3V0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/request-idle-callback.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/route-loader.js": +/*!*******************************************************!*\ + !*** ./node_modules/next/dist/client/route-loader.js ***! + \*******************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.markAssetError = markAssetError;\nexports.isAssetError = isAssetError;\nexports.getClientBuildManifest = getClientBuildManifest;\nexports.getMiddlewareManifest = getMiddlewareManifest;\nexports.createRouteLoader = createRouteLoader;\n\nvar _getAssetPathFromRoute = _interopRequireDefault(__webpack_require__(/*! ../shared/lib/router/utils/get-asset-path-from-route */ \"../shared/lib/router/utils/get-asset-path-from-route\"));\n\nvar _requestIdleCallback = __webpack_require__(/*! ./request-idle-callback */ \"./node_modules/next/dist/client/request-idle-callback.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n} // 3.8s was arbitrarily chosen as it's what https://web.dev/interactive\n// considers as \"Good\" time-to-interactive. We must assume something went\n// wrong beyond this point, and then fall-back to a full page transition to\n// show the user something of value.\n\n\nconst MS_MAX_IDLE_DELAY = 3800;\n\nfunction withFuture(key, map, generator) {\n let entry = map.get(key);\n\n if (entry) {\n if ('future' in entry) {\n return entry.future;\n }\n\n return Promise.resolve(entry);\n }\n\n let resolver;\n const prom = new Promise(resolve => {\n resolver = resolve;\n });\n map.set(key, entry = {\n resolve: resolver,\n future: prom\n });\n return generator ? generator() // eslint-disable-next-line no-sequences\n .then(value => (resolver(value), value)).catch(err => {\n map.delete(key);\n throw err;\n }) : prom;\n}\n\nfunction hasPrefetch(link) {\n try {\n link = document.createElement('link');\n return (// detect IE11 since it supports prefetch but isn't detected\n // with relList.support\n !!window.MSInputMethodContext && !!document.documentMode || link.relList.supports('prefetch')\n );\n } catch (e) {\n return false;\n }\n}\n\nconst canPrefetch = hasPrefetch();\n\nfunction prefetchViaDom(href, as, link) {\n return new Promise((res, rej) => {\n const selector = `\n link[rel=\"prefetch\"][href^=\"${href}\"],\n link[rel=\"preload\"][href^=\"${href}\"],\n script[src^=\"${href}\"]`;\n\n if (document.querySelector(selector)) {\n return res();\n }\n\n link = document.createElement('link'); // The order of property assignment here is intentional:\n\n if (as) link.as = as;\n link.rel = `prefetch`;\n link.crossOrigin = undefined;\n link.onload = res;\n link.onerror = rej; // `href` should always be last:\n\n link.href = href;\n document.head.appendChild(link);\n });\n}\n\nconst ASSET_LOAD_ERROR = Symbol('ASSET_LOAD_ERROR');\n\nfunction markAssetError(err) {\n return Object.defineProperty(err, ASSET_LOAD_ERROR, {});\n}\n\nfunction isAssetError(err) {\n return err && ASSET_LOAD_ERROR in err;\n}\n\nfunction appendScript(src, script) {\n return new Promise((resolve, reject) => {\n script = document.createElement('script'); // The order of property assignment here is intentional.\n // 1. Setup success/failure hooks in case the browser synchronously\n // executes when `src` is set.\n\n script.onload = resolve;\n\n script.onerror = () => reject(markAssetError(new Error(`Failed to load script: ${src}`))); // 2. Configure the cross-origin attribute before setting `src` in case the\n // browser begins to fetch.\n\n\n script.crossOrigin = undefined; // 3. Finally, set the source and inject into the DOM in case the child\n // must be appended for fetching to start.\n\n script.src = src;\n document.body.appendChild(script);\n });\n} // We wait for pages to be built in dev before we start the route transition\n// timeout to prevent an un-necessary hard navigation in development.\n\n\nlet devBuildPromise; // Resolve a promise that times out after given amount of milliseconds.\n\nfunction resolvePromiseWithTimeout(p, ms, err) {\n return new Promise((resolve, reject) => {\n let cancelled = false;\n p.then(r => {\n // Resolved, cancel the timeout\n cancelled = true;\n resolve(r);\n }).catch(reject); // We wrap these checks separately for better dead-code elimination in\n // production bundles.\n\n if (true) {\n (devBuildPromise || Promise.resolve()).then(() => {\n (0, _requestIdleCallback).requestIdleCallback(() => setTimeout(() => {\n if (!cancelled) {\n reject(err);\n }\n }, ms));\n });\n }\n\n if (false) {}\n });\n}\n\nfunction getClientBuildManifest() {\n if (self.__BUILD_MANIFEST) {\n return Promise.resolve(self.__BUILD_MANIFEST);\n }\n\n const onBuildManifest = new Promise(resolve => {\n // Mandatory because this is not concurrent safe:\n const cb = self.__BUILD_MANIFEST_CB;\n\n self.__BUILD_MANIFEST_CB = () => {\n resolve(self.__BUILD_MANIFEST);\n cb && cb();\n };\n });\n return resolvePromiseWithTimeout(onBuildManifest, MS_MAX_IDLE_DELAY, markAssetError(new Error('Failed to load client build manifest')));\n}\n\nfunction getMiddlewareManifest() {\n if (self.__MIDDLEWARE_MANIFEST) {\n return Promise.resolve(self.__MIDDLEWARE_MANIFEST);\n }\n\n const onMiddlewareManifest = new Promise(resolve => {\n const cb = self.__MIDDLEWARE_MANIFEST_CB;\n\n self.__MIDDLEWARE_MANIFEST_CB = () => {\n resolve(self.__MIDDLEWARE_MANIFEST);\n cb && cb();\n };\n });\n return resolvePromiseWithTimeout(onMiddlewareManifest, MS_MAX_IDLE_DELAY, markAssetError(new Error('Failed to load client middleware manifest')));\n}\n\nfunction getFilesForRoute(assetPrefix, route) {\n if (true) {\n return Promise.resolve({\n scripts: [assetPrefix + '/_next/static/chunks/pages' + encodeURI((0, _getAssetPathFromRoute).default(route, '.js'))],\n // Styles are handled by `style-loader` in development:\n css: []\n });\n }\n\n return getClientBuildManifest().then(manifest => {\n if (!(route in manifest)) {\n throw markAssetError(new Error(`Failed to lookup route: ${route}`));\n }\n\n const allFiles = manifest[route].map(entry => assetPrefix + '/_next/' + encodeURI(entry));\n return {\n scripts: allFiles.filter(v => v.endsWith('.js')),\n css: allFiles.filter(v => v.endsWith('.css'))\n };\n });\n}\n\nfunction createRouteLoader(assetPrefix) {\n const entrypoints = new Map();\n const loadedScripts = new Map();\n const styleSheets = new Map();\n const routes = new Map();\n\n function maybeExecuteScript(src) {\n // With HMR we might need to \"reload\" scripts when they are\n // disposed and readded. Executing scripts twice has no functional\n // differences\n if (false) {} else {\n return appendScript(src);\n }\n }\n\n function fetchStyleSheet(href) {\n let prom = styleSheets.get(href);\n\n if (prom) {\n return prom;\n }\n\n styleSheets.set(href, prom = fetch(href).then(res => {\n if (!res.ok) {\n throw new Error(`Failed to load stylesheet: ${href}`);\n }\n\n return res.text().then(text => ({\n href: href,\n content: text\n }));\n }).catch(err => {\n throw markAssetError(err);\n }));\n return prom;\n }\n\n return {\n whenEntrypoint(route) {\n return withFuture(route, entrypoints);\n },\n\n onEntrypoint(route, execute) {\n (execute ? Promise.resolve().then(() => execute()).then(exports => ({\n component: exports && exports.default || exports,\n exports: exports\n }), err => ({\n error: err\n })) : Promise.resolve(undefined)).then(input => {\n const old = entrypoints.get(route);\n\n if (old && 'resolve' in old) {\n if (input) {\n entrypoints.set(route, input);\n old.resolve(input);\n }\n } else {\n if (input) {\n entrypoints.set(route, input);\n } else {\n entrypoints.delete(route);\n } // when this entrypoint has been resolved before\n // the route is outdated and we want to invalidate\n // this cache entry\n\n\n routes.delete(route);\n }\n });\n },\n\n loadRoute(route, prefetch) {\n return withFuture(route, routes, () => {\n const routeFilesPromise = getFilesForRoute(assetPrefix, route).then(({\n scripts,\n css\n }) => {\n return Promise.all([entrypoints.has(route) ? [] : Promise.all(scripts.map(maybeExecuteScript)), Promise.all(css.map(fetchStyleSheet))]);\n }).then(res => {\n return this.whenEntrypoint(route).then(entrypoint => ({\n entrypoint,\n styles: res[1]\n }));\n });\n\n if (true) {\n devBuildPromise = new Promise(resolve => {\n if (routeFilesPromise) {\n return routeFilesPromise.finally(() => {\n resolve();\n });\n }\n });\n }\n\n return resolvePromiseWithTimeout(routeFilesPromise, MS_MAX_IDLE_DELAY, markAssetError(new Error(`Route did not complete loading: ${route}`))).then(({\n entrypoint,\n styles\n }) => {\n const res = Object.assign({\n styles: styles\n }, entrypoint);\n return 'error' in entrypoint ? entrypoint : res;\n }).catch(err => {\n if (prefetch) {\n // we don't want to cache errors during prefetch\n throw err;\n }\n\n return {\n error: err\n };\n });\n });\n },\n\n prefetch(route) {\n // https://github.com/GoogleChromeLabs/quicklink/blob/453a661fa1fa940e2d2e044452398e38c67a98fb/src/index.mjs#L115-L118\n // License: Apache 2.0\n let cn;\n\n if (cn = navigator.connection) {\n // Don't prefetch if using 2G or if Save-Data is enabled.\n if (cn.saveData || /2g/.test(cn.effectiveType)) return Promise.resolve();\n }\n\n return getFilesForRoute(assetPrefix, route).then(output => Promise.all(canPrefetch ? output.scripts.map(script => prefetchViaDom(script, 'script')) : [])).then(() => {\n (0, _requestIdleCallback).requestIdleCallback(() => this.loadRoute(route, true).catch(() => {}));\n }).catch( // swallow prefetch errors\n () => {});\n }\n\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yb3V0ZS1sb2FkZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELHNCQUFBLEdBQXlCRSxjQUF6QjtBQUNBRixvQkFBQSxHQUF1QkcsWUFBdkI7QUFDQUgsOEJBQUEsR0FBaUNJLHNCQUFqQztBQUNBSiw2QkFBQSxHQUFnQ0sscUJBQWhDO0FBQ0FMLHlCQUFBLEdBQTRCTSxpQkFBNUI7O0FBQ0EsSUFBSUMsc0JBQXNCLEdBQUdDLHNCQUFzQixDQUFDQyxtQkFBTyxDQUFDLGtIQUFELENBQVIsQ0FBbkQ7O0FBQ0EsSUFBSUMsb0JBQW9CLEdBQUdELG1CQUFPLENBQUMseUZBQUQsQ0FBbEM7O0FBQ0EsU0FBU0Qsc0JBQVQsQ0FBZ0NHLEdBQWhDLEVBQXFDO0FBQ2pDLFNBQU9BLEdBQUcsSUFBSUEsR0FBRyxDQUFDQyxVQUFYLEdBQXdCRCxHQUF4QixHQUE4QjtBQUNqQ0UsSUFBQUEsT0FBTyxFQUFFRjtBQUR3QixHQUFyQztBQUdILEMsQ0FDRDtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0EsTUFBTUcsaUJBQWlCLEdBQUcsSUFBMUI7O0FBQ0EsU0FBU0MsVUFBVCxDQUFvQkMsR0FBcEIsRUFBeUJDLEdBQXpCLEVBQThCQyxTQUE5QixFQUF5QztBQUNyQyxNQUFJQyxLQUFLLEdBQUdGLEdBQUcsQ0FBQ0csR0FBSixDQUFRSixHQUFSLENBQVo7O0FBQ0EsTUFBSUcsS0FBSixFQUFXO0FBQ1AsUUFBSSxZQUFZQSxLQUFoQixFQUF1QjtBQUNuQixhQUFPQSxLQUFLLENBQUNFLE1BQWI7QUFDSDs7QUFDRCxXQUFPQyxPQUFPLENBQUNDLE9BQVIsQ0FBZ0JKLEtBQWhCLENBQVA7QUFDSDs7QUFDRCxNQUFJSyxRQUFKO0FBQ0EsUUFBTUMsSUFBSSxHQUFHLElBQUlILE9BQUosQ0FBYUMsT0FBRCxJQUFXO0FBQ2hDQyxJQUFBQSxR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O0FBQ25EOztBQUNELGFBQU8yRCxnQkFBZ0IsQ0FBQ0MsV0FBRCxFQUFjQyxLQUFkLENBQWhCLENBQXFDekQsSUFBckMsQ0FBMkNvRyxNQUFELElBQVV6RyxPQUFPLENBQUM2RixHQUFSLENBQVkxRSxXQUFXLEdBQUdzRixNQUFNLENBQUMxQyxPQUFQLENBQWVwRSxHQUFmLENBQW9CNkMsTUFBRCxJQUFVcEIsY0FBYyxDQUFDb0IsTUFBRCxFQUFTLFFBQVQsQ0FBM0MsQ0FBSCxHQUMxRSxFQURtRCxDQUFwRCxFQUVMbkMsSUFGSyxDQUVBLE1BQUk7QUFDUCxTQUFDLEdBQUdqQixvQkFBSixFQUEwQjhELG1CQUExQixDQUE4QyxNQUFJLEtBQUt3QyxTQUFMLENBQWU1QixLQUFmLEVBQXNCLElBQXRCLEVBQTRCeEQsS0FBNUIsQ0FBa0MsTUFBSSxDQUNuRixDQUQ2QyxDQUFsRDtBQUdILE9BTk0sRUFNSkEsS0FOSSxFQU1FO0FBQ1QsWUFBSSxDQUNILENBUk0sQ0FBUDtBQVNIOztBQXpGRSxHQUFQO0FBMkZIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmllLXJlYWN0Ly4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvcm91dGUtbG9hZGVyLmpzP2VhMzQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLm1hcmtBc3NldEVycm9yID0gbWFya0Fzc2V0RXJyb3I7XG5leHBvcnRzLmlzQXNzZXRFcnJvciA9IGlzQXNzZXRFcnJvcjtcbmV4cG9ydHMuZ2V0Q2xpZW50QnVpbGRNYW5pZmVzdCA9IGdldENsaWVudEJ1aWxkTWFuaWZlc3Q7XG5leHBvcnRzLmdldE1pZGRsZXdhcmVNYW5pZmVzdCA9IGdldE1pZGRsZXdhcmVNYW5pZmVzdDtcbmV4cG9ydHMuY3JlYXRlUm91dGVMb2FkZXIgPSBjcmVhdGVSb3V0ZUxvYWRlcjtcbnZhciBfZ2V0QXNzZXRQYXRoRnJvbVJvdXRlID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZ2V0LWFzc2V0LXBhdGgtZnJvbS1yb3V0ZVwiKSk7XG52YXIgX3JlcXVlc3RJZGxlQ2FsbGJhY2sgPSByZXF1aXJlKFwiLi9yZXF1ZXN0LWlkbGUtY2FsbGJhY2tcIik7XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG4vLyAzLjhzIHdhcyBhcmJpdHJhcmlseSBjaG9zZW4gYXMgaXQncyB3aGF0IGh0dHBzOi8vd2ViLmRldi9pbnRlcmFjdGl2ZVxuLy8gY29uc2lkZXJzIGFzIFwiR29vZFwiIHRpbWUtdG8taW50ZXJhY3RpdmUuIFdlIG11c3QgYXNzdW1lIHNvbWV0aGluZyB3ZW50XG4vLyB3cm9uZyBiZXlvbmQgdGhpcyBwb2ludCwgYW5kIHRoZW4gZmFsbC1iYWNrIHRvIGEgZnVsbCBwYWdlIHRyYW5zaXRpb24gdG9cbi8vIHNob3cgdGhlIHVzZXIgc29tZXRoaW5nIG9mIHZhbHVlLlxuY29uc3QgTVNfTUFYX0lETEVfREVMQVkgPSAzODAwO1xuZnVuY3Rpb24gd2l0aEZ1dHVyZShrZXksIG1hcCwgZ2VuZXJhdG9yKSB7XG4gICAgbGV0IGVudHJ5ID0gbWFwLmdldChrZXkpO1xuICAgIGlmIChlbnRyeSkge1xuICAgICAgICBpZiAoJ2Z1dHVyZScgaW4gZW50cnkpIHtcbiAgICAgICAgICAgIHJldHVybiBlbnRyeS5mdXR1cmU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShlbnRyeSk7XG4gICAgfVxuICAgIGxldCByZXNvbHZlcjtcbiAgICBjb25zdCBwcm9tID0gbmV3IFByb21pc2UoKHJlc29sdmUpPT57XG4gICAgICAgIHJlc29sdmVyID0gcmVzb2x2ZTtcbiAgICB9KTtcbiAgICBtYXAuc2V0KGtleSwgZW50cnkgPSB7XG4gICAgICAgIHJlc29sdmU6IHJlc29sdmVyLFxuICAgICAgICBmdXR1cmU6IHByb21cbiAgICB9KTtcbiAgICByZXR1cm4gZ2VuZXJhdG9yID8gZ2VuZXJhdG9yKCkvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VxdWVuY2VzXG4gICAgLnRoZW4oKHZhbHVlKT0+KHJlc29sdmVyKHZhbHVlKSwgdmFsdWUpXG4gICAgKS5jYXRjaCgoZXJyKT0+e1xuICAgICAgICBtYXAuZGVsZXRlKGtleSk7XG4gICAgICAgIHRocm93IGVycjtcbiAgICB9KSA6IHByb207XG59XG5mdW5jdGlvbiBoYXNQcmVmZXRjaChsaW5rKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtcbiAgICAgICAgcmV0dXJuKC8vIGRldGVjdCBJRTExIHNpbmNlIGl0IHN1cHBvcnRzIHByZWZldGNoIGJ1dCBpc24ndCBkZXRlY3RlZFxuICAgICAgICAvLyB3aXRoIHJlbExpc3Quc3VwcG9ydFxuICAgICAgICAoISF3aW5kb3cuTVNJbnB1dE1ldGhvZENvbnRleHQgJiYgISFkb2N1bWVudC5kb2N1bWVudE1vZGUpIHx8IGxpbmsucmVsTGlzdC5zdXBwb3J0cygncHJlZmV0Y2gnKSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuY29uc3QgY2FuUHJlZmV0Y2ggPSBoYXNQcmVmZXRjaCgpO1xuZnVuY3Rpb24gcHJlZmV0Y2hWaWFEb20oaHJlZiwgYXMsIGxpbmspIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlcywgcmVqKT0+e1xuICAgICAgICBjb25zdCBzZWxlY3RvciA9IGBcbiAgICAgIGxpbmtbcmVsPVwicHJlZmV0Y2hcIl1baHJlZl49XCIke2hyZWZ9XCJdLFxuICAgICAgbGlua1tyZWw9XCJwcmVsb2FkXCJdW2hyZWZePVwiJHtocmVmfVwiXSxcbiAgICAgIHNjcmlwdFtzcmNePVwiJHtocmVmfVwiXWA7XG4gICAgICAgIGlmIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlcygpO1xuICAgICAgICB9XG4gICAgICAgIGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XG4gICAgICAgIC8vIFRoZSBvcmRlciBvZiBwcm9wZXJ0eSBhc3NpZ25tZW50IGhlcmUgaXMgaW50ZW50aW9uYWw6XG4gICAgICAgIGlmIChhcykgbGluay5hcyA9IGFzO1xuICAgICAgICBsaW5rLnJlbCA9IGBwcmVmZXRjaGA7XG4gICAgICAgIGxpbmsuY3Jvc3NPcmlnaW4gPSBwcm9jZXNzLmVudi5fX05FWFRfQ1JPU1NfT1JJR0lOO1xuICAgICAgICBsaW5rLm9ubG9hZCA9IHJlcztcbiAgICAgICAgbGluay5vbmVycm9yID0gcmVqO1xuICAgICAgICAvLyBgaHJlZmAgc2hvdWxkIGFsd2F5cyBiZSBsYXN0OlxuICAgICAgICBsaW5rLmhyZWYgPSBocmVmO1xuICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGxpbmspO1xuICAgIH0pO1xufVxuY29uc3QgQVNTRVRfTE9BRF9FUlJPUiA9IFN5bWJvbCgnQVNTRVRfTE9BRF9FUlJPUicpO1xuZnVuY3Rpb24gbWFya0Fzc2V0RXJyb3IoZXJyKSB7XG4gICAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlcnIsIEFTU0VUX0xPQURfRVJST1IsIHtcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGlzQXNzZXRFcnJvcihlcnIpIHtcbiAgICByZXR1cm4gZXJyICYmIEFTU0VUX0xPQURfRVJST1IgaW4gZXJyO1xufVxuZnVuY3Rpb24gYXBwZW5kU2NyaXB0KHNyYywgc2NyaXB0KSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpPT57XG4gICAgICAgIHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgICAvLyBUaGUgb3JkZXIgb2YgcHJvcGVydHkgYXNzaWdubWVudCBoZXJlIGlzIGludGVudGlvbmFsLlxuICAgICAgICAvLyAxLiBTZXR1cCBzdWNjZXNzL2ZhaWx1cmUgaG9va3MgaW4gY2FzZSB0aGUgYnJvd3NlciBzeW5jaHJvbm91c2x5XG4gICAgICAgIC8vICAgIGV4ZWN1dGVzIHdoZW4gYHNyY2AgaXMgc2V0LlxuICAgICAgICBzY3JpcHQub25sb2FkID0gcmVzb2x2ZTtcbiAgICAgICAgc2NyaXB0Lm9uZXJyb3IgPSAoKT0+cmVqZWN0KG1hcmtBc3NldEVycm9yKG5ldyBFcnJvcihgRmFpbGVkIHRvIGxvYWQgc2NyaXB0OiAke3NyY31gKSkpXG4gICAgICAgIDtcbiAgICAgICAgLy8gMi4gQ29uZmlndXJlIHRoZSBjcm9zcy1vcmlnaW4gYXR0cmlidXRlIGJlZm9yZSBzZXR0aW5nIGBzcmNgIGluIGNhc2UgdGhlXG4gICAgICAgIC8vICAgIGJyb3dzZXIgYmVnaW5zIHRvIGZldGNoLlxuICAgICAgICBzY3JpcHQuY3Jvc3NPcmlnaW4gPSBwcm9jZXNzLmVudi5fX05FWFRfQ1JPU1NfT1JJR0lOO1xuICAgICAgICAvLyAzLiBGaW5hbGx5LCBzZXQgdGhlIHNvdXJjZSBhbmQgaW5qZWN0IGludG8gdGhlIERPTSBpbiBjYXNlIHRoZSBjaGlsZFxuICAgICAgICAvLyAgICBtdXN0IGJlIGFwcGVuZGVkIGZvciBmZXRjaGluZyB0byBzdGFydC5cbiAgICAgICAgc2NyaXB0LnNyYyA9IHNyYztcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzY3JpcHQpO1xuICAgIH0pO1xufVxuLy8gV2Ugd2FpdCBmb3IgcGFnZXMgdG8gYmUgYnVpbHQgaW4gZGV2IGJlZm9yZSB3ZSBzdGFydCB0aGUgcm91dGUgdHJhbnNpdGlvblxuLy8gdGltZW91dCB0byBwcmV2ZW50IGFuIHVuLW5lY2Vzc2FyeSBoYXJkIG5hdmlnYXRpb24gaW4gZGV2ZWxvcG1lbnQuXG5sZXQgZGV2QnVpbGRQcm9taXNlO1xuLy8gUmVzb2x2ZSBhIHByb21pc2UgdGhhdCB0aW1lcyBvdXQgYWZ0ZXIgZ2l2ZW4gYW1vdW50IG9mIG1pbGxpc2Vjb25kcy5cbmZ1bmN0aW9uIHJlc29sdmVQcm9taXNlV2l0aFRpbWVvdXQocCwgbXMsIGVycikge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KT0+e1xuICAgICAgICBsZXQgY2FuY2VsbGVkID0gZmFsc2U7XG4gICAgICAgIHAudGhlbigocik9PntcbiAgICAgICAgICAgIC8vIFJlc29sdmVkLCBjYW5jZWwgdGhlIHRpbWVvdXRcbiAgICAgICAgICAgIGNhbmNlbGxlZCA9IHRydWU7XG4gICAgICAgICAgICByZXNvbHZlKHIpO1xuICAgICAgICB9KS5jYXRjaChyZWplY3QpO1xuICAgICAgICAvLyBXZSB3cmFwIHRoZXNlIGNoZWNrcyBzZXBhcmF0ZWx5IGZvciBiZXR0ZXIgZGVhZC1jb2RlIGVsaW1pbmF0aW9uIGluXG4gICAgICAgIC8vIHByb2R1Y3Rpb24gYnVuZGxlcy5cbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgICAoZGV2QnVpbGRQcm9taXNlIHx8IFByb21pc2UucmVzb2x2ZSgpKS50aGVuKCgpPT57XG4gICAgICAgICAgICAgICAgKDAsIF9yZXF1ZXN0SWRsZUNhbGxiYWNrKS5yZXF1ZXN0SWRsZUNhbGxiYWNrKCgpPT5zZXRUaW1lb3V0KCgpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWNhbmNlbGxlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LCBtcylcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgICAoMCwgX3JlcXVlc3RJZGxlQ2FsbGJhY2spLnJlcXVlc3RJZGxlQ2FsbGJhY2soKCk9PnNldFRpbWVvdXQoKCk9PntcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjYW5jZWxsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSwgbXMpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5mdW5jdGlvbiBnZXRDbGllbnRCdWlsZE1hbmlmZXN0KCkge1xuICAgIGlmIChzZWxmLl9fQlVJTERfTUFOSUZFU1QpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShzZWxmLl9fQlVJTERfTUFOSUZFU1QpO1xuICAgIH1cbiAgICBjb25zdCBvbkJ1aWxkTWFuaWZlc3QgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSk9PntcbiAgICAgICAgLy8gTWFuZGF0b3J5IGJlY2F1c2UgdGhpcyBpcyBub3QgY29uY3VycmVudCBzYWZlOlxuICAgICAgICBjb25zdCBjYiA9IHNlbGYuX19CVUlMRF9NQU5JRkVTVF9DQjtcbiAgICAgICAgc2VsZi5fX0JVSUxEX01BTklGRVNUX0NCID0gKCk9PntcbiAgICAgICAgICAgIHJlc29sdmUoc2VsZi5fX0JVSUxEX01BTklGRVNUKTtcbiAgICAgICAgICAgIGNiICYmIGNiKCk7XG4gICAgICAgIH07XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc29sdmVQcm9taXNlV2l0aFRpbWVvdXQob25CdWlsZE1hbmlmZXN0LCBNU19NQVhfSURMRV9ERUxBWSwgbWFya0Fzc2V0RXJyb3IobmV3IEVycm9yKCdGYWlsZWQgdG8gbG9hZCBjbGllbnQgYnVpbGQgbWFuaWZlc3QnKSkpO1xufVxuZnVuY3Rpb24gZ2V0TWlkZGxld2FyZU1hbmlmZXN0KCkge1xuICAgIGlmIChzZWxmLl9fTUlERExFV0FSRV9NQU5JRkVTVCkge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHNlbGYuX19NSURETEVXQVJFX01BTklGRVNUKTtcbiAgICB9XG4gICAgY29uc3Qgb25NaWRkbGV3YXJlTWFuaWZlc3QgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSk9PntcbiAgICAgICAgY29uc3QgY2IgPSBzZWxmLl9fTUlERExFV0FSRV9NQU5JRkVTVF9DQjtcbiAgICAgICAgc2VsZi5fX01JRERMRVdBUkVfTUFOSUZFU1RfQ0IgPSAoKT0+e1xuICAgICAgICAgICAgcmVzb2x2ZShzZWxmLl9fTUlERExFV0FSRV9NQU5JRkVTVCk7XG4gICAgICAgICAgICBjYiAmJiBjYigpO1xuICAgICAgICB9O1xuICAgIH0pO1xuICAgIHJldHVybiByZXNvbHZlUHJvbWlzZVdpdGhUaW1lb3V0KG9uTWlkZGxld2FyZU1hbmlmZXN0LCBNU19NQVhfSURMRV9ERUxBWSwgbWFya0Fzc2V0RXJyb3IobmV3IEVycm9yKCdGYWlsZWQgdG8gbG9hZCBjbGllbnQgbWlkZGxld2FyZSBtYW5pZmVzdCcpKSk7XG59XG5mdW5jdGlvbiBnZXRGaWxlc0ZvclJvdXRlKGFzc2V0UHJlZml4LCByb3V0ZSkge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgICAgICAgIHNjcmlwdHM6IFtcbiAgICAgICAgICAgICAgICBhc3NldFByZWZpeCArICcvX25leHQvc3RhdGljL2NodW5rcy9wYWdlcycgKyBlbmNvZGVVUkkoKDAsIF9nZXRBc3NldFBhdGhGcm9tUm91dGUpLmRlZmF1bHQocm91dGUsICcuanMnKSksIFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIC8vIFN0eWxlcyBhcmUgaGFuZGxlZCBieSBgc3R5bGUtbG9hZGVyYCBpbiBkZXZlbG9wbWVudDpcbiAgICAgICAgICAgIGNzczogW11cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBnZXRDbGllbnRCdWlsZE1hbmlmZXN0KCkudGhlbigobWFuaWZlc3QpPT57XG4gICAgICAgIGlmICghKHJvdXRlIGluIG1hbmlmZXN0KSkge1xuICAgICAgICAgICAgdGhyb3cgbWFya0Fzc2V0RXJyb3IobmV3IEVycm9yKGBGYWlsZWQgdG8gbG9va3VwIHJvdXRlOiAke3JvdXRlfWApKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhbGxGaWxlcyA9IG1hbmlmZXN0W3JvdXRlXS5tYXAoKGVudHJ5KT0+YXNzZXRQcmVmaXggKyAnL19uZXh0LycgKyBlbmNvZGVVUkkoZW50cnkpXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzY3JpcHRzOiBhbGxGaWxlcy5maWx0ZXIoKHYpPT52LmVuZHNXaXRoKCcuanMnKVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGNzczogYWxsRmlsZXMuZmlsdGVyKCh2KT0+di5lbmRzV2l0aCgnLmNzcycpXG4gICAgICAgICAgICApXG4gICAgICAgIH07XG4gICAgfSk7XG59XG5mdW5jdGlvbiBjcmVhdGVSb3V0ZUxvYWRlcihhc3NldFByZWZpeCkge1xuICAgIGNvbnN0IGVudHJ5cG9pbnRzID0gbmV3IE1hcCgpO1xuICAgIGNvbnN0IGxvYWRlZFNjcmlwdHMgPSBuZXcgTWFwKCk7XG4gICAgY29uc3Qgc3R5bGVTaGVldHMgPSBuZXcgTWFwKCk7XG4gICAgY29uc3Qgcm91dGVzID0gbmV3IE1hcCgpO1xuICAgIGZ1bmN0aW9uIG1heWJlRXhlY3V0ZVNjcmlwdChzcmMpIHtcbiAgICAgICAgLy8gV2l0aCBITVIgd2UgbWlnaHQgbmVlZCB0byBcInJlbG9hZFwiIHNjcmlwdHMgd2hlbiB0aGV5IGFyZVxuICAgICAgICAvLyBkaXNwb3NlZCBhbmQgcmVhZGRlZC4gRXhlY3V0aW5nIHNjcmlwdHMgdHdpY2UgaGFzIG5vIGZ1bmN0aW9uYWxcbiAgICAgICAgLy8gZGlmZmVyZW5jZXNcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgICBsZXQgcHJvbSA9IGxvYWRlZFNjcmlwdHMuZ2V0KHNyYyk7XG4gICAgICAgICAgICBpZiAocHJvbSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwcm9tO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gU2tpcCBleGVjdXRpbmcgc2NyaXB0IGlmIGl0J3MgYWxyZWFkeSBpbiB0aGUgRE9NOlxuICAgICAgICAgICAgaWYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYHNjcmlwdFtzcmNePVwiJHtzcmN9XCJdYCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsb2FkZWRTY3JpcHRzLnNldChzcmMsIHByb20gPSBhcHBlbmRTY3JpcHQoc3JjKSk7XG4gICAgICAgICAgICByZXR1cm4gcHJvbTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBhcHBlbmRTY3JpcHQoc3JjKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBmZXRjaFN0eWxlU2hlZXQoaHJlZikge1xuICAgICAgICBsZXQgcHJvbSA9IHN0eWxlU2hlZXRzLmdldChocmVmKTtcbiAgICAgICAgaWYgKHByb20pIHtcbiAgICAgICAgICAgIHJldHVybiBwcm9tO1xuICAgICAgICB9XG4gICAgICAgIHN0eWxlU2hlZXRzLnNldChocmVmLCBwcm9tID0gZmV0Y2goaHJlZikudGhlbigocmVzKT0+e1xuICAgICAgICAgICAgaWYgKCFyZXMub2spIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBsb2FkIHN0eWxlc2hlZXQ6ICR7aHJlZn1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZXMudGV4dCgpLnRoZW4oKHRleHQpPT4oe1xuICAgICAgICAgICAgICAgICAgICBocmVmOiBocmVmLFxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiB0ZXh0XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pLmNhdGNoKChlcnIpPT57XG4gICAgICAgICAgICB0aHJvdyBtYXJrQXNzZXRFcnJvcihlcnIpO1xuICAgICAgICB9KSk7XG4gICAgICAgIHJldHVybiBwcm9tO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICB3aGVuRW50cnlwb2ludCAocm91dGUpIHtcbiAgICAgICAgICAgIHJldHVybiB3aXRoRnV0dXJlKHJvdXRlLCBlbnRyeXBvaW50cyk7XG4gICAgICAgIH0sXG4gICAgICAgIG9uRW50cnlwb2ludCAocm91dGUsIGV4ZWN1dGUpIHtcbiAgICAgICAgICAgIChleGVjdXRlID8gUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+ZXhlY3V0ZSgpXG4gICAgICAgICAgICApLnRoZW4oKGV4cG9ydHMpPT4oe1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQ6IGV4cG9ydHMgJiYgZXhwb3J0cy5kZWZhdWx0IHx8IGV4cG9ydHMsXG4gICAgICAgICAgICAgICAgICAgIGV4cG9ydHM6IGV4cG9ydHNcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgLCAoZXJyKT0+KHtcbiAgICAgICAgICAgICAgICAgICAgZXJyb3I6IGVyclxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApIDogUHJvbWlzZS5yZXNvbHZlKHVuZGVmaW5lZCkpLnRoZW4oKGlucHV0KT0+e1xuICAgICAgICAgICAgICAgIGNvbnN0IG9sZCA9IGVudHJ5cG9pbnRzLmdldChyb3V0ZSk7XG4gICAgICAgICAgICAgICAgaWYgKG9sZCAmJiAncmVzb2x2ZScgaW4gb2xkKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpbnB1dCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZW50cnlwb2ludHMuc2V0KHJvdXRlLCBpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBvbGQucmVzb2x2ZShpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW5wdXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5cG9pbnRzLnNldChyb3V0ZSwgaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZW50cnlwb2ludHMuZGVsZXRlKHJvdXRlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyB3aGVuIHRoaXMgZW50cnlwb2ludCBoYXMgYmVlbiByZXNvbHZlZCBiZWZvcmVcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHJvdXRlIGlzIG91dGRhdGVkIGFuZCB3ZSB3YW50IHRvIGludmFsaWRhdGVcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBjYWNoZSBlbnRyeVxuICAgICAgICAgICAgICAgICAgICByb3V0ZXMuZGVsZXRlKHJvdXRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgbG9hZFJvdXRlIChyb3V0ZSwgcHJlZmV0Y2gpIHtcbiAgICAgICAgICAgIHJldHVybiB3aXRoRnV0dXJlKHJvdXRlLCByb3V0ZXMsICgpPT57XG4gICAgICAgICAgICAgICAgY29uc3Qgcm91dGVGaWxlc1Byb21pc2UgPSBnZXRGaWxlc0ZvclJvdXRlKGFzc2V0UHJlZml4LCByb3V0ZSkudGhlbigoeyBzY3JpcHRzICwgY3NzICB9KT0+e1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW1xuICAgICAgICAgICAgICAgICAgICAgICAgZW50cnlwb2ludHMuaGFzKHJvdXRlKSA/IFtdIDogUHJvbWlzZS5hbGwoc2NyaXB0cy5tYXAobWF5YmVFeGVjdXRlU2NyaXB0KSksXG4gICAgICAgICAgICAgICAgICAgICAgICBQcm9taXNlLmFsbChjc3MubWFwKGZldGNoU3R5bGVTaGVldCkpLCBcbiAgICAgICAgICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICAgICAgfSkudGhlbigocmVzKT0+e1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy53aGVuRW50cnlwb2ludChyb3V0ZSkudGhlbigoZW50cnlwb2ludCk9Pih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50cnlwb2ludCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZXM6IHJlc1sxXVxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgICAgICAgICAgICAgZGV2QnVpbGRQcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocm91dGVGaWxlc1Byb21pc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcm91dGVGaWxlc1Byb21pc2UuZmluYWxseSgoKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzb2x2ZVByb21pc2VXaXRoVGltZW91dChyb3V0ZUZpbGVzUHJvbWlzZSwgTVNfTUFYX0lETEVfREVMQVksIG1hcmtBc3NldEVycm9yKG5ldyBFcnJvcihgUm91dGUgZGlkIG5vdCBjb21wbGV0ZSBsb2FkaW5nOiAke3JvdXRlfWApKSkudGhlbigoeyBlbnRyeXBvaW50ICwgc3R5bGVzICB9KT0+e1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXMgPSBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlczogc3R5bGVzXG4gICAgICAgICAgICAgICAgICAgIH0sIGVudHJ5cG9pbnQpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2Vycm9yJyBpbiBlbnRyeXBvaW50ID8gZW50cnlwb2ludCA6IHJlcztcbiAgICAgICAgICAgICAgICB9KS5jYXRjaCgoZXJyKT0+e1xuICAgICAgICAgICAgICAgICAgICBpZiAocHJlZmV0Y2gpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGRvbid0IHdhbnQgdG8gY2FjaGUgZXJyb3JzIGR1cmluZyBwcmVmZXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogZXJyXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgcHJlZmV0Y2ggKHJvdXRlKSB7XG4gICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vR29vZ2xlQ2hyb21lTGFicy9xdWlja2xpbmsvYmxvYi80NTNhNjYxZmExZmE5NDBlMmQyZTA0NDQ1MjM5OGUzOGM2N2E5OGZiL3NyYy9pbmRleC5tanMjTDExNS1MMTE4XG4gICAgICAgICAgICAvLyBMaWNlbnNlOiBBcGFjaGUgMi4wXG4gICAgICAgICAgICBsZXQgY247XG4gICAgICAgICAgICBpZiAoY24gPSBuYXZpZ2F0b3IuY29ubmVjdGlvbikge1xuICAgICAgICAgICAgICAgIC8vIERvbid0IHByZWZldGNoIGlmIHVzaW5nIDJHIG9yIGlmIFNhdmUtRGF0YSBpcyBlbmFibGVkLlxuICAgICAgICAgICAgICAgIGlmIChjbi5zYXZlRGF0YSB8fCAvMmcvLnRlc3QoY24uZWZmZWN0aXZlVHlwZSkpIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBnZXRGaWxlc0ZvclJvdXRlKGFzc2V0UHJlZml4LCByb3V0ZSkudGhlbigob3V0cHV0KT0+UHJvbWlzZS5hbGwoY2FuUHJlZmV0Y2ggPyBvdXRwdXQuc2NyaXB0cy5tYXAoKHNjcmlwdCk9PnByZWZldGNoVmlhRG9tKHNjcmlwdCwgJ3NjcmlwdCcpXG4gICAgICAgICAgICAgICAgKSA6IFtdKVxuICAgICAgICAgICAgKS50aGVuKCgpPT57XG4gICAgICAgICAgICAgICAgKDAsIF9yZXF1ZXN0SWRsZUNhbGxiYWNrKS5yZXF1ZXN0SWRsZUNhbGxiYWNrKCgpPT50aGlzLmxvYWRSb3V0ZShyb3V0ZSwgdHJ1ZSkuY2F0Y2goKCk9PntcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSkuY2F0Y2goLy8gc3dhbGxvdyBwcmVmZXRjaCBlcnJvcnNcbiAgICAgICAgICAgICgpPT57XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH07XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJvdXRlLWxvYWRlci5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJtYXJrQXNzZXRFcnJvciIsImlzQXNzZXRFcnJvciIsImdldENsaWVudEJ1aWxkTWFuaWZlc3QiLCJnZXRNaWRkbGV3YXJlTWFuaWZlc3QiLCJjcmVhdGVSb3V0ZUxvYWRlciIsIl9nZXRBc3NldFBhdGhGcm9tUm91dGUiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZXF1ZXN0SWRsZUNhbGxiYWNrIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJNU19NQVhfSURMRV9ERUxBWSIsIndpdGhGdXR1cmUiLCJrZXkiLCJtYXAiLCJnZW5lcmF0b3IiLCJlbnRyeSIsImdldCIsImZ1dHVyZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVzb2x2ZXIiLCJwcm9tIiwic2V0IiwidGhlbiIsImNhdGNoIiwiZXJyIiwiZGVsZXRlIiwiaGFzUHJlZmV0Y2giLCJsaW5rIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50Iiwid2luZG93IiwiTVNJbnB1dE1ldGhvZENvbnRleHQiLCJkb2N1bWVudE1vZGUiLCJyZWxMaXN0Iiwic3VwcG9ydHMiLCJlIiwiY2FuUHJlZmV0Y2giLCJwcmVmZXRjaFZpYURvbSIsImhyZWYiLCJhcyIsInJlcyIsInJlaiIsInNlbGVjdG9yIiwicXVlcnlTZWxlY3RvciIsInJlbCIsImNyb3NzT3JpZ2luIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9DUk9TU19PUklHSU4iLCJvbmxvYWQiLCJvbmVycm9yIiwiaGVhZCIsImFwcGVuZENoaWxkIiwiQVNTRVRfTE9BRF9FUlJPUiIsIlN5bWJvbCIsImFwcGVuZFNjcmlwdCIsInNyYyIsInNjcmlwdCIsInJlamVjdCIsIkVycm9yIiwiYm9keSIsImRldkJ1aWxkUHJvbWlzZSIsInJlc29sdmVQcm9taXNlV2l0aFRpbWVvdXQiLCJwIiwibXMiLCJjYW5jZWxsZWQiLCJyIiwicmVxdWVzdElkbGVDYWxsYmFjayIsInNldFRpbWVvdXQiLCJzZWxmIiwiX19CVUlMRF9NQU5JRkVTVCIsIm9uQnVpbGRNYW5pZmVzdCIsImNiIiwiX19CVUlMRF9NQU5JRkVTVF9DQiIsIl9fTUlERExFV0FSRV9NQU5JRkVTVCIsIm9uTWlkZGxld2FyZU1hbmlmZXN0IiwiX19NSURETEVXQVJFX01BTklGRVNUX0NCIiwiZ2V0RmlsZXNGb3JSb3V0ZSIsImFzc2V0UHJlZml4Iiwicm91dGUiLCJzY3JpcHRzIiwiZW5jb2RlVVJJIiwiY3NzIiwibWFuaWZlc3QiLCJhbGxGaWxlcyIsImZpbHRlciIsInYiLCJlbmRzV2l0aCIsImVudHJ5cG9pbnRzIiwiTWFwIiwibG9hZGVkU2NyaXB0cyIsInN0eWxlU2hlZXRzIiwicm91dGVzIiwibWF5YmVFeGVjdXRlU2NyaXB0IiwiZmV0Y2hTdHlsZVNoZWV0IiwiZmV0Y2giLCJvayIsInRleHQiLCJjb250ZW50Iiwid2hlbkVudHJ5cG9pbnQiLCJvbkVudHJ5cG9pbnQiLCJleGVjdXRlIiwiY29tcG9uZW50IiwiZXJyb3IiLCJ1bmRlZmluZWQiLCJpbnB1dCIsIm9sZCIsImxvYWRSb3V0ZSIsInByZWZldGNoIiwicm91dGVGaWxlc1Byb21pc2UiLCJhbGwiLCJoYXMiLCJlbnRyeXBvaW50Iiwic3R5bGVzIiwiZmluYWxseSIsImFzc2lnbiIsImNuIiwibmF2aWdhdG9yIiwiY29ubmVjdGlvbiIsInNhdmVEYXRhIiwidGVzdCIsImVmZmVjdGl2ZVR5cGUiLCJvdXRwdXQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/route-loader.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/router.js": +/*!*************************************************!*\ + !*** ./node_modules/next/dist/client/router.js ***! + \*************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"Router\", ({\n enumerable: true,\n get: function () {\n return _router.default;\n }\n}));\nObject.defineProperty(exports, \"withRouter\", ({\n enumerable: true,\n get: function () {\n return _withRouter.default;\n }\n}));\nexports.useRouter = useRouter;\nexports.createRouter = createRouter;\nexports.makePublicRouterInstance = makePublicRouterInstance;\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"react\"));\n\nvar _router = _interopRequireDefault(__webpack_require__(/*! ../shared/lib/router/router */ \"./node_modules/next/dist/shared/lib/router/router.js\"));\n\nvar _routerContext = __webpack_require__(/*! ../shared/lib/router-context */ \"../shared/lib/router-context\");\n\nvar _isError = _interopRequireDefault(__webpack_require__(/*! ../lib/is-error */ \"./node_modules/next/dist/lib/is-error.js\"));\n\nvar _withRouter = _interopRequireDefault(__webpack_require__(/*! ./with-router */ \"./node_modules/next/dist/client/with-router.js\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nconst singletonRouter = {\n router: null,\n readyCallbacks: [],\n\n ready(cb) {\n if (this.router) return cb();\n\n if (false) {}\n }\n\n}; // Create public properties and methods of the router in the singletonRouter\n\nconst urlPropertyFields = ['pathname', 'route', 'query', 'asPath', 'components', 'isFallback', 'basePath', 'locale', 'locales', 'defaultLocale', 'isReady', 'isPreview', 'isLocaleDomain', 'domainLocales'];\nconst routerEvents = ['routeChangeStart', 'beforeHistoryChange', 'routeChangeComplete', 'routeChangeError', 'hashChangeStart', 'hashChangeComplete'];\nconst coreMethodFields = ['push', 'replace', 'reload', 'back', 'prefetch', 'beforePopState']; // Events is a static property on the router, the router doesn't have to be initialized to use it\n\nObject.defineProperty(singletonRouter, 'events', {\n get() {\n return _router.default.events;\n }\n\n});\nurlPropertyFields.forEach(field => {\n // Here we need to use Object.defineProperty because we need to return\n // the property assigned to the actual router\n // The value might get changed as we change routes and this is the\n // proper way to access it\n Object.defineProperty(singletonRouter, field, {\n get() {\n const router = getRouter();\n return router[field];\n }\n\n });\n});\ncoreMethodFields.forEach(field => {\n singletonRouter[field] = (...args) => {\n const router = getRouter();\n return router[field](...args);\n };\n});\nrouterEvents.forEach(event => {\n singletonRouter.ready(() => {\n _router.default.events.on(event, (...args) => {\n const eventField = `on${event.charAt(0).toUpperCase()}${event.substring(1)}`;\n const _singletonRouter = singletonRouter;\n\n if (_singletonRouter[eventField]) {\n try {\n _singletonRouter[eventField](...args);\n } catch (err) {\n console.error(`Error when running the Router event: ${eventField}`);\n console.error((0, _isError).default(err) ? `${err.message}\\n${err.stack}` : err + '');\n }\n }\n });\n });\n});\n\nfunction getRouter() {\n if (!singletonRouter.router) {\n const message = 'No router instance found.\\n' + 'You should only use \"next/router\" on the client side of your app.\\n';\n throw new Error(message);\n }\n\n return singletonRouter.router;\n}\n\nvar _default = singletonRouter;\nexports[\"default\"] = _default;\n\nfunction useRouter() {\n return _react.default.useContext(_routerContext.RouterContext);\n}\n\nfunction createRouter(...args) {\n singletonRouter.router = new _router.default(...args);\n singletonRouter.readyCallbacks.forEach(cb => cb());\n singletonRouter.readyCallbacks = [];\n return singletonRouter.router;\n}\n\nfunction makePublicRouterInstance(router) {\n const scopedRouter = router;\n const instance = {};\n\n for (const property of urlPropertyFields) {\n if (typeof scopedRouter[property] === 'object') {\n instance[property] = Object.assign(Array.isArray(scopedRouter[property]) ? [] : {}, scopedRouter[property]) // makes sure query is not stateful\n ;\n continue;\n }\n\n instance[property] = scopedRouter[property];\n } // Events is a static property on the router, the router doesn't have to be initialized to use it\n\n\n instance.events = _router.default.events;\n coreMethodFields.forEach(field => {\n instance[field] = (...args) => {\n return scopedRouter[field](...args);\n };\n });\n return instance;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yb3V0ZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FILDBDQUF5QztBQUNyQ0ksRUFBQUEsVUFBVSxFQUFFLElBRHlCO0FBRXJDQyxFQUFBQSxHQUFHLEVBQUUsWUFBVztBQUNaLFdBQU9DLE9BQU8sQ0FBQ0MsT0FBZjtBQUNIO0FBSm9DLENBQXpDO0FBTUFQLDhDQUE2QztBQUN6Q0ksRUFBQUEsVUFBVSxFQUFFLElBRDZCO0FBRXpDQyxFQUFBQSxHQUFHLEVBQUUsWUFBVztBQUNaLFdBQU9HLFdBQVcsQ0FBQ0QsT0FBbkI7QUFDSDtBQUp3QyxDQUE3QztBQU1BTCxpQkFBQSxHQUFvQk8sU0FBcEI7QUFDQVAsb0JBQUEsR0FBdUJRLFlBQXZCO0FBQ0FSLGdDQUFBLEdBQW1DUyx3QkFBbkM7QUFDQVQsa0JBQUEsR0FBa0IsS0FBSyxDQUF2Qjs7QUFDQSxJQUFJVSxNQUFNLEdBQUdDLHNCQUFzQixDQUFDQyxtQkFBTyxDQUFDLG9CQUFELENBQVIsQ0FBbkM7O0FBQ0EsSUFBSVIsT0FBTyxHQUFHTyxzQkFBc0IsQ0FBQ0MsbUJBQU8sQ0FBQyx5RkFBRCxDQUFSLENBQXBDOztBQUNBLElBQUlDLGNBQWMsR0FBR0QsbUJBQU8sQ0FBQyxrRUFBRCxDQUE1Qjs7QUFDQSxJQUFJRSxRQUFRLEdBQUdILHNCQUFzQixDQUFDQyxtQkFBTyxDQUFDLGlFQUFELENBQVIsQ0FBckM7O0FBQ0EsSUFBSU4sV0FBVyxHQUFHSyxzQkFBc0IsQ0FBQ0MsbUJBQU8sQ0FBQyxxRUFBRCxDQUFSLENBQXhDOztBQUNBLFNBQVNELHNCQUFULENBQWdDSSxHQUFoQyxFQUFxQztBQUNqQyxTQUFPQSxHQUFHLElBQUlBLEdBQUcsQ0FBQ0MsVUFBWCxHQUF3QkQsR0FBeEIsR0FBOEI7QUFDakNWLElBQUFBLE9BQU8sRUFBRVU7QUFEd0IsR0FBckM7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LENBQW5CLEtBQWtDLFFBQXRDLEVBQWdEO0FBQzVDRCxNQUFBQSxRQUFRLENBQUNDLFFBQUQsQ0FBUixHQUFxQm5ELE1BQU0sQ0FBQ29ELE1BQVAsQ0FBY0MsS0FBSyxDQUFDQyxPQUFOLENBQWNMLFlBQVksQ0FBQ0UsUUFBRCxDQUExQixJQUF3QyxFQUF4QyxHQUE2QyxFQUEzRCxFQUNsQkYsWUFBWSxDQUFDRSxRQUFELENBRE0sQ0FBckIsQ0FDMkI7QUFEM0I7QUFHQTtBQUNIOztBQUNERCxJQUFBQSxRQUFRLENBQUNDLFFBQUQsQ0FBUixHQUFxQkYsWUFBWSxDQUFDRSxRQUFELENBQWpDO0FBQ0gsR0FacUMsQ0FhdEM7OztBQUNBRCxFQUFBQSxRQUFRLENBQUN0QixNQUFULEdBQWtCdEIsT0FBTyxDQUFDQyxPQUFSLENBQWdCcUIsTUFBbEM7QUFDQUQsRUFBQUEsZ0JBQWdCLENBQUNFLE9BQWpCLENBQTBCQyxLQUFELElBQVM7QUFDOUJvQixJQUFBQSxRQUFRLENBQUNwQixLQUFELENBQVIsR0FBa0IsQ0FBQyxHQUFHRSxJQUFKLEtBQVc7QUFDekIsYUFBT2lCLFlBQVksQ0FBQ25CLEtBQUQsQ0FBWixDQUFvQixHQUFHRSxJQUF2QixDQUFQO0FBQ0gsS0FGRDtBQUdILEdBSkQ7QUFLQSxTQUFPa0IsUUFBUDtBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmllLXJlYWN0Ly4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvcm91dGVyLmpzPzMxZmMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJSb3V0ZXJcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9yb3V0ZXIuZGVmYXVsdDtcbiAgICB9XG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIndpdGhSb3V0ZXJcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF93aXRoUm91dGVyLmRlZmF1bHQ7XG4gICAgfVxufSk7XG5leHBvcnRzLnVzZVJvdXRlciA9IHVzZVJvdXRlcjtcbmV4cG9ydHMuY3JlYXRlUm91dGVyID0gY3JlYXRlUm91dGVyO1xuZXhwb3J0cy5tYWtlUHVibGljUm91dGVySW5zdGFuY2UgPSBtYWtlUHVibGljUm91dGVySW5zdGFuY2U7XG5leHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7XG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xudmFyIF9yb3V0ZXIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3JvdXRlci9yb3V0ZXJcIikpO1xudmFyIF9yb3V0ZXJDb250ZXh0ID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyLWNvbnRleHRcIik7XG52YXIgX2lzRXJyb3IgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9saWIvaXMtZXJyb3JcIikpO1xudmFyIF93aXRoUm91dGVyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi93aXRoLXJvdXRlclwiKSk7XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5jb25zdCBzaW5nbGV0b25Sb3V0ZXIgPSB7XG4gICAgcm91dGVyOiBudWxsLFxuICAgIHJlYWR5Q2FsbGJhY2tzOiBbXSxcbiAgICByZWFkeSAoY2IpIHtcbiAgICAgICAgaWYgKHRoaXMucm91dGVyKSByZXR1cm4gY2IoKTtcbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICB0aGlzLnJlYWR5Q2FsbGJhY2tzLnB1c2goY2IpO1xuICAgICAgICB9XG4gICAgfVxufTtcbi8vIENyZWF0ZSBwdWJsaWMgcHJvcGVydGllcyBhbmQgbWV0aG9kcyBvZiB0aGUgcm91dGVyIGluIHRoZSBzaW5nbGV0b25Sb3V0ZXJcbmNvbnN0IHVybFByb3BlcnR5RmllbGRzID0gW1xuICAgICdwYXRobmFtZScsXG4gICAgJ3JvdXRlJyxcbiAgICAncXVlcnknLFxuICAgICdhc1BhdGgnLFxuICAgICdjb21wb25lbnRzJyxcbiAgICAnaXNGYWxsYmFjaycsXG4gICAgJ2Jhc2VQYXRoJyxcbiAgICAnbG9jYWxlJyxcbiAgICAnbG9jYWxlcycsXG4gICAgJ2RlZmF1bHRMb2NhbGUnLFxuICAgICdpc1JlYWR5JyxcbiAgICAnaXNQcmV2aWV3JyxcbiAgICAnaXNMb2NhbGVEb21haW4nLFxuICAgICdkb21haW5Mb2NhbGVzJywgXG5dO1xuY29uc3Qgcm91dGVyRXZlbnRzID0gW1xuICAgICdyb3V0ZUNoYW5nZVN0YXJ0JyxcbiAgICAnYmVmb3JlSGlzdG9yeUNoYW5nZScsXG4gICAgJ3JvdXRlQ2hhbmdlQ29tcGxldGUnLFxuICAgICdyb3V0ZUNoYW5nZUVycm9yJyxcbiAgICAnaGFzaENoYW5nZVN0YXJ0JyxcbiAgICAnaGFzaENoYW5nZUNvbXBsZXRlJywgXG5dO1xuY29uc3QgY29yZU1ldGhvZEZpZWxkcyA9IFtcbiAgICAncHVzaCcsXG4gICAgJ3JlcGxhY2UnLFxuICAgICdyZWxvYWQnLFxuICAgICdiYWNrJyxcbiAgICAncHJlZmV0Y2gnLFxuICAgICdiZWZvcmVQb3BTdGF0ZScsIFxuXTtcbi8vIEV2ZW50cyBpcyBhIHN0YXRpYyBwcm9wZXJ0eSBvbiB0aGUgcm91dGVyLCB0aGUgcm91dGVyIGRvZXNuJ3QgaGF2ZSB0byBiZSBpbml0aWFsaXplZCB0byB1c2UgaXRcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShzaW5nbGV0b25Sb3V0ZXIsICdldmVudHMnLCB7XG4gICAgZ2V0ICgpIHtcbiAgICAgICAgcmV0dXJuIF9yb3V0ZXIuZGVmYXVsdC5ldmVudHM7XG4gICAgfVxufSk7XG51cmxQcm9wZXJ0eUZpZWxkcy5mb3JFYWNoKChmaWVsZCk9PntcbiAgICAvLyBIZXJlIHdlIG5lZWQgdG8gdXNlIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSBiZWNhdXNlIHdlIG5lZWQgdG8gcmV0dXJuXG4gICAgLy8gdGhlIHByb3BlcnR5IGFzc2lnbmVkIHRvIHRoZSBhY3R1YWwgcm91dGVyXG4gICAgLy8gVGhlIHZhbHVlIG1pZ2h0IGdldCBjaGFuZ2VkIGFzIHdlIGNoYW5nZSByb3V0ZXMgYW5kIHRoaXMgaXMgdGhlXG4gICAgLy8gcHJvcGVyIHdheSB0byBhY2Nlc3MgaXRcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoc2luZ2xldG9uUm91dGVyLCBmaWVsZCwge1xuICAgICAgICBnZXQgKCkge1xuICAgICAgICAgICAgY29uc3Qgcm91dGVyID0gZ2V0Um91dGVyKCk7XG4gICAgICAgICAgICByZXR1cm4gcm91dGVyW2ZpZWxkXTtcbiAgICAgICAgfVxuICAgIH0pO1xufSk7XG5jb3JlTWV0aG9kRmllbGRzLmZvckVhY2goKGZpZWxkKT0+e1xuICAgIHNpbmdsZXRvblJvdXRlcltmaWVsZF0gPSAoLi4uYXJncyk9PntcbiAgICAgICAgY29uc3Qgcm91dGVyID0gZ2V0Um91dGVyKCk7XG4gICAgICAgIHJldHVybiByb3V0ZXJbZmllbGRdKC4uLmFyZ3MpO1xuICAgIH07XG59KTtcbnJvdXRlckV2ZW50cy5mb3JFYWNoKChldmVudCk9PntcbiAgICBzaW5nbGV0b25Sb3V0ZXIucmVhZHkoKCk9PntcbiAgICAgICAgX3JvdXRlci5kZWZhdWx0LmV2ZW50cy5vbihldmVudCwgKC4uLmFyZ3MpPT57XG4gICAgICAgICAgICBjb25zdCBldmVudEZpZWxkID0gYG9uJHtldmVudC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKX0ke2V2ZW50LnN1YnN0cmluZygxKX1gO1xuICAgICAgICAgICAgY29uc3QgX3NpbmdsZXRvblJvdXRlciA9IHNpbmdsZXRvblJvdXRlcjtcbiAgICAgICAgICAgIGlmIChfc2luZ2xldG9uUm91dGVyW2V2ZW50RmllbGRdKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgX3NpbmdsZXRvblJvdXRlcltldmVudEZpZWxkXSguLi5hcmdzKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihgRXJyb3Igd2hlbiBydW5uaW5nIHRoZSBSb3V0ZXIgZXZlbnQ6ICR7ZXZlbnRGaWVsZH1gKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcigoMCwgX2lzRXJyb3IpLmRlZmF1bHQoZXJyKSA/IGAke2Vyci5tZXNzYWdlfVxcbiR7ZXJyLnN0YWNrfWAgOiBlcnIgKyAnJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcbn0pO1xuZnVuY3Rpb24gZ2V0Um91dGVyKCkge1xuICAgIGlmICghc2luZ2xldG9uUm91dGVyLnJvdXRlcikge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gJ05vIHJvdXRlciBpbnN0YW5jZSBmb3VuZC5cXG4nICsgJ1lvdSBzaG91bGQgb25seSB1c2UgXCJuZXh0L3JvdXRlclwiIG9uIHRoZSBjbGllbnQgc2lkZSBvZiB5b3VyIGFwcC5cXG4nO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICAgIHJldHVybiBzaW5nbGV0b25Sb3V0ZXIucm91dGVyO1xufVxudmFyIF9kZWZhdWx0ID0gc2luZ2xldG9uUm91dGVyO1xuZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7XG5mdW5jdGlvbiB1c2VSb3V0ZXIoKSB7XG4gICAgcmV0dXJuIF9yZWFjdC5kZWZhdWx0LnVzZUNvbnRleHQoX3JvdXRlckNvbnRleHQuUm91dGVyQ29udGV4dCk7XG59XG5mdW5jdGlvbiBjcmVhdGVSb3V0ZXIoLi4uYXJncykge1xuICAgIHNpbmdsZXRvblJvdXRlci5yb3V0ZXIgPSBuZXcgX3JvdXRlci5kZWZhdWx0KC4uLmFyZ3MpO1xuICAgIHNpbmdsZXRvblJvdXRlci5yZWFkeUNhbGxiYWNrcy5mb3JFYWNoKChjYik9PmNiKClcbiAgICApO1xuICAgIHNpbmdsZXRvblJvdXRlci5yZWFkeUNhbGxiYWNrcyA9IFtdO1xuICAgIHJldHVybiBzaW5nbGV0b25Sb3V0ZXIucm91dGVyO1xufVxuZnVuY3Rpb24gbWFrZVB1YmxpY1JvdXRlckluc3RhbmNlKHJvdXRlcikge1xuICAgIGNvbnN0IHNjb3BlZFJvdXRlciA9IHJvdXRlcjtcbiAgICBjb25zdCBpbnN0YW5jZSA9IHtcbiAgICB9O1xuICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgdXJsUHJvcGVydHlGaWVsZHMpe1xuICAgICAgICBpZiAodHlwZW9mIHNjb3BlZFJvdXRlcltwcm9wZXJ0eV0gPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICBpbnN0YW5jZVtwcm9wZXJ0eV0gPSBPYmplY3QuYXNzaWduKEFycmF5LmlzQXJyYXkoc2NvcGVkUm91dGVyW3Byb3BlcnR5XSkgPyBbXSA6IHtcbiAgICAgICAgICAgIH0sIHNjb3BlZFJvdXRlcltwcm9wZXJ0eV0pIC8vIG1ha2VzIHN1cmUgcXVlcnkgaXMgbm90IHN0YXRlZnVsXG4gICAgICAgICAgICA7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpbnN0YW5jZVtwcm9wZXJ0eV0gPSBzY29wZWRSb3V0ZXJbcHJvcGVydHldO1xuICAgIH1cbiAgICAvLyBFdmVudHMgaXMgYSBzdGF0aWMgcHJvcGVydHkgb24gdGhlIHJvdXRlciwgdGhlIHJvdXRlciBkb2Vzbid0IGhhdmUgdG8gYmUgaW5pdGlhbGl6ZWQgdG8gdXNlIGl0XG4gICAgaW5zdGFuY2UuZXZlbnRzID0gX3JvdXRlci5kZWZhdWx0LmV2ZW50cztcbiAgICBjb3JlTWV0aG9kRmllbGRzLmZvckVhY2goKGZpZWxkKT0+e1xuICAgICAgICBpbnN0YW5jZVtmaWVsZF0gPSAoLi4uYXJncyk9PntcbiAgICAgICAgICAgIHJldHVybiBzY29wZWRSb3V0ZXJbZmllbGRdKC4uLmFyZ3MpO1xuICAgICAgICB9O1xuICAgIH0pO1xuICAgIHJldHVybiBpbnN0YW5jZTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cm91dGVyLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImVudW1lcmFibGUiLCJnZXQiLCJfcm91dGVyIiwiZGVmYXVsdCIsIl93aXRoUm91dGVyIiwidXNlUm91dGVyIiwiY3JlYXRlUm91dGVyIiwibWFrZVB1YmxpY1JvdXRlckluc3RhbmNlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcm91dGVyQ29udGV4dCIsIl9pc0Vycm9yIiwib2JqIiwiX19lc01vZHVsZSIsInNpbmdsZXRvblJvdXRlciIsInJvdXRlciIsInJlYWR5Q2FsbGJhY2tzIiwicmVhZHkiLCJjYiIsInB1c2giLCJ1cmxQcm9wZXJ0eUZpZWxkcyIsInJvdXRlckV2ZW50cyIsImNvcmVNZXRob2RGaWVsZHMiLCJldmVudHMiLCJmb3JFYWNoIiwiZmllbGQiLCJnZXRSb3V0ZXIiLCJhcmdzIiwiZXZlbnQiLCJvbiIsImV2ZW50RmllbGQiLCJjaGFyQXQiLCJ0b1VwcGVyQ2FzZSIsInN1YnN0cmluZyIsIl9zaW5nbGV0b25Sb3V0ZXIiLCJlcnIiLCJjb25zb2xlIiwiZXJyb3IiLCJtZXNzYWdlIiwic3RhY2siLCJFcnJvciIsIl9kZWZhdWx0IiwidXNlQ29udGV4dCIsIlJvdXRlckNvbnRleHQiLCJzY29wZWRSb3V0ZXIiLCJpbnN0YW5jZSIsInByb3BlcnR5IiwiYXNzaWduIiwiQXJyYXkiLCJpc0FycmF5Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/router.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/use-intersection.js": +/*!***********************************************************!*\ + !*** ./node_modules/next/dist/client/use-intersection.js ***! + \***********************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.useIntersection = useIntersection;\n\nvar _react = __webpack_require__(/*! react */ \"react\");\n\nvar _requestIdleCallback = __webpack_require__(/*! ./request-idle-callback */ \"./node_modules/next/dist/client/request-idle-callback.js\");\n\nconst hasIntersectionObserver = typeof IntersectionObserver !== 'undefined';\n\nfunction useIntersection({\n rootMargin,\n disabled\n}) {\n const isDisabled = disabled || !hasIntersectionObserver;\n const unobserve = (0, _react).useRef();\n const [visible, setVisible] = (0, _react).useState(false);\n const setRef = (0, _react).useCallback(el => {\n if (unobserve.current) {\n unobserve.current();\n unobserve.current = undefined;\n }\n\n if (isDisabled || visible) return;\n\n if (el && el.tagName) {\n unobserve.current = observe(el, isVisible => isVisible && setVisible(isVisible), {\n rootMargin\n });\n }\n }, [isDisabled, rootMargin, visible]);\n (0, _react).useEffect(() => {\n if (!hasIntersectionObserver) {\n if (!visible) {\n const idleCallback = (0, _requestIdleCallback).requestIdleCallback(() => setVisible(true));\n return () => (0, _requestIdleCallback).cancelIdleCallback(idleCallback);\n }\n }\n }, [visible]);\n return [setRef, visible];\n}\n\nfunction observe(element, callback, options) {\n const {\n id,\n observer,\n elements\n } = createObserver(options);\n elements.set(element, callback);\n observer.observe(element);\n return function unobserve() {\n elements.delete(element);\n observer.unobserve(element); // Destroy observer when there's nothing left to watch:\n\n if (elements.size === 0) {\n observer.disconnect();\n observers.delete(id);\n }\n };\n}\n\nconst observers = new Map();\n\nfunction createObserver(options) {\n const id = options.rootMargin || '';\n let instance = observers.get(id);\n\n if (instance) {\n return instance;\n }\n\n const elements = new Map();\n const observer = new IntersectionObserver(entries => {\n entries.forEach(entry => {\n const callback = elements.get(entry.target);\n const isVisible = entry.isIntersecting || entry.intersectionRatio > 0;\n\n if (callback && isVisible) {\n callback(isVisible);\n }\n });\n }, options);\n observers.set(id, instance = {\n id,\n observer,\n elements\n });\n return instance;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC91c2UtaW50ZXJzZWN0aW9uLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCx1QkFBQSxHQUEwQkUsZUFBMUI7O0FBQ0EsSUFBSUMsTUFBTSxHQUFHQyxtQkFBTyxDQUFDLG9CQUFELENBQXBCOztBQUNBLElBQUlDLG9CQUFvQixHQUFHRCxtQkFBTyxDQUFDLHlGQUFELENBQWxDOztBQUNBLE1BQU1FLHVCQUF1QixHQUFHLE9BQU9DLG9CQUFQLEtBQWdDLFdBQWhFOztBQUNBLFNBQVNMLGVBQVQsQ0FBeUI7QUFBRU0sRUFBQUEsVUFBRjtBQUFlQyxFQUFBQTtBQUFmLENBQXpCLEVBQXFEO0FBQ2pELFFBQU1DLFVBQVUsR0FBR0QsUUFBUSxJQUFJLENBQUNILHVCQUFoQztBQUNBLFFBQU1LLFNBQVMsR0FBRyxDQUFDLEdBQUdSLE1BQUosRUFBWVMsTUFBWixFQUFsQjtBQUNBLFFBQU0sQ0FBQ0MsT0FBRCxFQUFVQyxVQUFWLElBQXdCLENBQUMsR0FBR1gsTUFBSixFQUFZWSxRQUFaLENBQXFCLEtBQXJCLENBQTlCO0FBQ0EsUUFBTUMsTUFBTSxHQUFHLENBQUMsR0FBR2IsTUFBSixFQUFZYyxXQUFaLENBQXlCQyxFQUFELElBQU07QUFDekMsUUFBSVAsU0FBUyxDQUFDUSxPQUFkLEVBQXVCO0FBQ25CUixNQUFBQSxTQUFTLENBQUNRLE9BQVY7QUFDQVIsTUFBQUEsU0FBUyxDQUFDUSxPQUFWLEdBQW9CQyxTQUFwQjtBQUNIOztBQUNELFFBQUlWLFVBQVUsSUFBSUcsT0FBbEIsRUFBMkI7O0FBQzNCLFFBQUlLLEVBQUUsSUFBSUEsRUFBRSxDQUFDRyxPQUFiLEVBQXNCO0FBQ2xCVixNQUFBQSxTQUFTLENBQUNRLE9BQVYsR0FBb0JHLE9BQU8sQ0FBQ0osRUFBRCxFQUFNSyxTQUFELElBQWFBLFNBQVMsSUFBSVQsVUFBVSxDQUFDUyxTQUFELENBQXpDLEVBQ3pCO0FBQ0VmLFFBQUFBO0FBREYsT0FEeUIsQ0FBM0I7QUFJSDtBQUNKLEdBWmMsRUFZWixDQUNDRSxVQURELEVBRUNGLFVBRkQsRUFHQ0ssT0FIRCxDQVpZLENBQWY7QUFpQkEsR0FBQyxHQUFHVixNQUFKLEVBQVlxQixTQUFaLENBQXNCLE1BQUk7QUFDdEIsUUFBSSxDQUFDbEIsdUJBQUwsRUFBOEI7QUFDMUIsVUFBSSxDQUFDTyxPQUFMLEVBQWM7QUFDVixjQUFNWSxZQUFZLEdBQUcsQ0FBQyxHQUFHcEIsb0JBQUosRUFBMEJxQixtQkFBMUIsQ0FBOEMsTUFBSVosVUFBVSxDQUFDLElBQUQsQ0FBNUQsQ0FBckI7QUFFQSxlQUFPLE1BQUksQ0FBQyxHQUFHVCxvQkFBSixFQUEwQnNCLGtCQUExQixDQUE2Q0YsWUFBN0MsQ0FBWDtBQUVIO0FBQ0o7QUFDSixHQVRELEVBU0csQ0FDQ1osT0FERCxDQVRIO0FBWUEsU0FBTyxDQUNIRyxNQURHLEVBRUhILE9BRkcsQ0FBUDtBQUlIOztBQUNELFNBQVNTLE9BQVQsQ0FBaUJNLE9BQWpCLEVBQTBCQyxRQUExQixFQUFvQ0MsT0FBcEMsRUFBNkM7QUFDekMsUUFBTTtBQUFFQyxJQUFBQSxFQUFGO0FBQU9DLElBQUFBLFFBQVA7QUFBa0JDLElBQUFBO0FBQWxCLE1BQWdDQyxjQUFjLENBQUNKLE9BQUQsQ0FBcEQ7QUFDQUcsRUFBQUEsUUFBUSxDQUFDRSxHQUFULENBQWFQLE9BQWIsRUFBc0JDLFFBQXRCO0FBQ0FHLEVBQUFBLFFBQVEsQ0FBQ1YsT0FBVCxDQUFpQk0sT0FBakI7QUFDQSxTQUFPLFNBQVNqQixTQUFULEdBQXFCO0FBQ3hCc0IsSUFBQUEsUUFBUSxDQUFDRyxNQUFULENBQWdCUixPQUFoQjtBQUNBSSxJQUFBQSxRQUFRLENBQUNyQixTQUFULENBQW1CaUIsT0FBbkIsRUFGd0IsQ0FHeEI7O0FBQ0EsUUFBSUssUUFBUSxDQUFDSSxJQUFULEtBQWtCLENBQXRCLEVBQXlCO0FBQ3JCTCxNQUFBQSxRQUFRLENBQUNNLFVBQVQ7QUFDQUMsTUFBQUEsU0FBUyxDQUFDSCxNQUFWLENBQWlCTCxFQUFqQjtBQUNIO0FBQ0osR0FSRDtBQVNIOztBQUNELE1BQU1RLFNBQVMsR0FBRyxJQUFJQyxHQUFKLEVBQWxCOztBQUNBLFNBQVNOLGNBQVQsQ0FBd0JKLE9BQXhCLEVBQWlDO0FBQzdCLFFBQU1DLEVBQUUsR0FBR0QsT0FBTyxDQUFDdEIsVUFBUixJQUFzQixFQUFqQztBQUNBLE1BQUlpQyxRQUFRLEdBQUdGLFNBQVMsQ0FBQ0csR0FBVixDQUFjWCxFQUFkLENBQWY7O0FBQ0EsTUFBSVUsUUFBSixFQUFjO0FBQ1YsV0FBT0EsUUFBUDtBQUNIOztBQUNELFFBQU1SLFFBQVEsR0FBRyxJQUFJTyxHQUFKLEVBQWpCO0FBQ0EsUUFBTVIsUUFBUSxHQUFHLElBQUl6QixvQkFBSixDQUEwQm9DLE9BQUQsSUFBVztBQUNqREEsSUFBQUEsT0FBTyxDQUFDQyxPQUFSLENBQWlCQyxLQUFELElBQVM7QUFDckIsWUFBTWhCLFFBQVEsR0FBR0ksUUFBUSxDQUFDUyxHQUFULENBQWFHLEtBQUssQ0FBQ0MsTUFBbkIsQ0FBakI7QUFDQSxZQUFNdkIsU0FBUyxHQUFHc0IsS0FBSyxDQUFDRSxjQUFOLElBQXdCRixLQUFLLENBQUNHLGlCQUFOLEdBQTBCLENBQXBFOztBQUNBLFVBQUluQixRQUFRLElBQUlOLFNBQWhCLEVBQTJCO0FBQ3ZCTSxRQUFBQSxRQUFRLENBQUNOLFNBQUQsQ0FBUjtBQUNIO0FBQ0osS0FORDtBQU9ILEdBUmdCLEVBUWRPLE9BUmMsQ0FBakI7QUFTQVMsRUFBQUEsU0FBUyxDQUFDSixHQUFWLENBQWNKLEVBQWQsRUFBa0JVLFFBQVEsR0FBRztBQUN6QlYsSUFBQUEsRUFEeUI7QUFFekJDLElBQUFBLFFBRnlCO0FBR3pCQyxJQUFBQTtBQUh5QixHQUE3QjtBQUtBLFNBQU9RLFFBQVA7QUFDSCIsInNvdXJjZXMiOlsid2VicGFjazovL3ZpZS1yZWFjdC8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3VzZS1pbnRlcnNlY3Rpb24uanM/ZmQ5NCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMudXNlSW50ZXJzZWN0aW9uID0gdXNlSW50ZXJzZWN0aW9uO1xudmFyIF9yZWFjdCA9IHJlcXVpcmUoXCJyZWFjdFwiKTtcbnZhciBfcmVxdWVzdElkbGVDYWxsYmFjayA9IHJlcXVpcmUoXCIuL3JlcXVlc3QtaWRsZS1jYWxsYmFja1wiKTtcbmNvbnN0IGhhc0ludGVyc2VjdGlvbk9ic2VydmVyID0gdHlwZW9mIEludGVyc2VjdGlvbk9ic2VydmVyICE9PSAndW5kZWZpbmVkJztcbmZ1bmN0aW9uIHVzZUludGVyc2VjdGlvbih7IHJvb3RNYXJnaW4gLCBkaXNhYmxlZCAgfSkge1xuICAgIGNvbnN0IGlzRGlzYWJsZWQgPSBkaXNhYmxlZCB8fCAhaGFzSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XG4gICAgY29uc3QgdW5vYnNlcnZlID0gKDAsIF9yZWFjdCkudXNlUmVmKCk7XG4gICAgY29uc3QgW3Zpc2libGUsIHNldFZpc2libGVdID0gKDAsIF9yZWFjdCkudXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IHNldFJlZiA9ICgwLCBfcmVhY3QpLnVzZUNhbGxiYWNrKChlbCk9PntcbiAgICAgICAgaWYgKHVub2JzZXJ2ZS5jdXJyZW50KSB7XG4gICAgICAgICAgICB1bm9ic2VydmUuY3VycmVudCgpO1xuICAgICAgICAgICAgdW5vYnNlcnZlLmN1cnJlbnQgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzRGlzYWJsZWQgfHwgdmlzaWJsZSkgcmV0dXJuO1xuICAgICAgICBpZiAoZWwgJiYgZWwudGFnTmFtZSkge1xuICAgICAgICAgICAgdW5vYnNlcnZlLmN1cnJlbnQgPSBvYnNlcnZlKGVsLCAoaXNWaXNpYmxlKT0+aXNWaXNpYmxlICYmIHNldFZpc2libGUoaXNWaXNpYmxlKVxuICAgICAgICAgICAgLCB7XG4gICAgICAgICAgICAgICAgcm9vdE1hcmdpblxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9LCBbXG4gICAgICAgIGlzRGlzYWJsZWQsXG4gICAgICAgIHJvb3RNYXJnaW4sXG4gICAgICAgIHZpc2libGVcbiAgICBdKTtcbiAgICAoMCwgX3JlYWN0KS51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgaWYgKCFoYXNJbnRlcnNlY3Rpb25PYnNlcnZlcikge1xuICAgICAgICAgICAgaWYgKCF2aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaWRsZUNhbGxiYWNrID0gKDAsIF9yZXF1ZXN0SWRsZUNhbGxiYWNrKS5yZXF1ZXN0SWRsZUNhbGxiYWNrKCgpPT5zZXRWaXNpYmxlKHRydWUpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gKCk9PigwLCBfcmVxdWVzdElkbGVDYWxsYmFjaykuY2FuY2VsSWRsZUNhbGxiYWNrKGlkbGVDYWxsYmFjaylcbiAgICAgICAgICAgICAgICA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LCBbXG4gICAgICAgIHZpc2libGVcbiAgICBdKTtcbiAgICByZXR1cm4gW1xuICAgICAgICBzZXRSZWYsXG4gICAgICAgIHZpc2libGVcbiAgICBdO1xufVxuZnVuY3Rpb24gb2JzZXJ2ZShlbGVtZW50LCBjYWxsYmFjaywgb3B0aW9ucykge1xuICAgIGNvbnN0IHsgaWQgLCBvYnNlcnZlciAsIGVsZW1lbnRzICB9ID0gY3JlYXRlT2JzZXJ2ZXIob3B0aW9ucyk7XG4gICAgZWxlbWVudHMuc2V0KGVsZW1lbnQsIGNhbGxiYWNrKTtcbiAgICBvYnNlcnZlci5vYnNlcnZlKGVsZW1lbnQpO1xuICAgIHJldHVybiBmdW5jdGlvbiB1bm9ic2VydmUoKSB7XG4gICAgICAgIGVsZW1lbnRzLmRlbGV0ZShlbGVtZW50KTtcbiAgICAgICAgb2JzZXJ2ZXIudW5vYnNlcnZlKGVsZW1lbnQpO1xuICAgICAgICAvLyBEZXN0cm95IG9ic2VydmVyIHdoZW4gdGhlcmUncyBub3RoaW5nIGxlZnQgdG8gd2F0Y2g6XG4gICAgICAgIGlmIChlbGVtZW50cy5zaXplID09PSAwKSB7XG4gICAgICAgICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICAgICAgICBvYnNlcnZlcnMuZGVsZXRlKGlkKTtcbiAgICAgICAgfVxuICAgIH07XG59XG5jb25zdCBvYnNlcnZlcnMgPSBuZXcgTWFwKCk7XG5mdW5jdGlvbiBjcmVhdGVPYnNlcnZlcihvcHRpb25zKSB7XG4gICAgY29uc3QgaWQgPSBvcHRpb25zLnJvb3RNYXJnaW4gfHwgJyc7XG4gICAgbGV0IGluc3RhbmNlID0gb2JzZXJ2ZXJzLmdldChpZCk7XG4gICAgaWYgKGluc3RhbmNlKSB7XG4gICAgICAgIHJldHVybiBpbnN0YW5jZTtcbiAgICB9XG4gICAgY29uc3QgZWxlbWVudHMgPSBuZXcgTWFwKCk7XG4gICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKGVudHJpZXMpPT57XG4gICAgICAgIGVudHJpZXMuZm9yRWFjaCgoZW50cnkpPT57XG4gICAgICAgICAgICBjb25zdCBjYWxsYmFjayA9IGVsZW1lbnRzLmdldChlbnRyeS50YXJnZXQpO1xuICAgICAgICAgICAgY29uc3QgaXNWaXNpYmxlID0gZW50cnkuaXNJbnRlcnNlY3RpbmcgfHwgZW50cnkuaW50ZXJzZWN0aW9uUmF0aW8gPiAwO1xuICAgICAgICAgICAgaWYgKGNhbGxiYWNrICYmIGlzVmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIGNhbGxiYWNrKGlzVmlzaWJsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0sIG9wdGlvbnMpO1xuICAgIG9ic2VydmVycy5zZXQoaWQsIGluc3RhbmNlID0ge1xuICAgICAgICBpZCxcbiAgICAgICAgb2JzZXJ2ZXIsXG4gICAgICAgIGVsZW1lbnRzXG4gICAgfSk7XG4gICAgcmV0dXJuIGluc3RhbmNlO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2UtaW50ZXJzZWN0aW9uLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsInVzZUludGVyc2VjdGlvbiIsIl9yZWFjdCIsInJlcXVpcmUiLCJfcmVxdWVzdElkbGVDYWxsYmFjayIsImhhc0ludGVyc2VjdGlvbk9ic2VydmVyIiwiSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiLCJyb290TWFyZ2luIiwiZGlzYWJsZWQiLCJpc0Rpc2FibGVkIiwidW5vYnNlcnZlIiwidXNlUmVmIiwidmlzaWJsZSIsInNldFZpc2libGUiLCJ1c2VTdGF0ZSIsInNldFJlZiIsInVzZUNhbGxiYWNrIiwiZWwiLCJjdXJyZW50IiwidW5kZWZpbmVkIiwidGFnTmFtZSIsIm9ic2VydmUiLCJpc1Zpc2libGUiLCJ1c2VFZmZlY3QiLCJpZGxlQ2FsbGJhY2siLCJyZXF1ZXN0SWRsZUNhbGxiYWNrIiwiY2FuY2VsSWRsZUNhbGxiYWNrIiwiZWxlbWVudCIsImNhbGxiYWNrIiwib3B0aW9ucyIsImlkIiwib2JzZXJ2ZXIiLCJlbGVtZW50cyIsImNyZWF0ZU9ic2VydmVyIiwic2V0IiwiZGVsZXRlIiwic2l6ZSIsImRpc2Nvbm5lY3QiLCJvYnNlcnZlcnMiLCJNYXAiLCJpbnN0YW5jZSIsImdldCIsImVudHJpZXMiLCJmb3JFYWNoIiwiZW50cnkiLCJ0YXJnZXQiLCJpc0ludGVyc2VjdGluZyIsImludGVyc2VjdGlvblJhdGlvIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/use-intersection.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/with-router.js": +/*!******************************************************!*\ + !*** ./node_modules/next/dist/client/with-router.js ***! + \******************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = withRouter;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"react\"));\n\nvar _router = __webpack_require__(/*! ./router */ \"./node_modules/next/dist/client/router.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction withRouter(ComposedComponent) {\n function WithRouterWrapper(props) {\n return /*#__PURE__*/_react.default.createElement(ComposedComponent, Object.assign({\n router: (0, _router).useRouter()\n }, props));\n }\n\n WithRouterWrapper.getInitialProps = ComposedComponent.getInitialProps;\n WithRouterWrapper.origGetInitialProps = ComposedComponent.origGetInitialProps;\n\n if (true) {\n const name = ComposedComponent.displayName || ComposedComponent.name || 'Unknown';\n WithRouterWrapper.displayName = `withRouter(${name})`;\n }\n\n return WithRouterWrapper;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC93aXRoLXJvdXRlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFDYkEsOENBQTZDO0FBQ3pDRyxFQUFBQSxLQUFLLEVBQUU7QUFEa0MsQ0FBN0M7QUFHQUQsa0JBQUEsR0FBa0JHLFVBQWxCOztBQUNBLElBQUlDLE1BQU0sR0FBR0Msc0JBQXNCLENBQUNDLG1CQUFPLENBQUMsb0JBQUQsQ0FBUixDQUFuQzs7QUFDQSxJQUFJQyxPQUFPLEdBQUdELG1CQUFPLENBQUMsMkRBQUQsQ0FBckI7O0FBQ0EsU0FBU0Qsc0JBQVQsQ0FBZ0NHLEdBQWhDLEVBQXFDO0FBQ2pDLFNBQU9BLEdBQUcsSUFBSUEsR0FBRyxDQUFDQyxVQUFYLEdBQXdCRCxHQUF4QixHQUE4QjtBQUNqQ04sSUFBQUEsT0FBTyxFQUFFTTtBQUR3QixHQUFyQztBQUdIOztBQUNELFNBQVNMLFVBQVQsQ0FBb0JPLGlCQUFwQixFQUF1QztBQUNuQyxXQUFTQyxpQkFBVCxDQUEyQkMsS0FBM0IsRUFBa0M7QUFDOUIsV0FBTyxhQUFjUixNQUFNLENBQUNGLE9BQVAsQ0FBZVcsYUFBZixDQUE2QkgsaUJBQTdCLEVBQWdEWixNQUFNLENBQUNnQixNQUFQLENBQWM7QUFDL0VDLE1BQUFBLE1BQU0sRUFBRSxDQUFDLEdBQUdSLE9BQUosRUFBYVMsU0FBYjtBQUR1RSxLQUFkLEVBRWxFSixLQUZrRSxDQUFoRCxDQUFyQjtBQUdIOztBQUNERCxFQUFBQSxpQkFBaUIsQ0FBQ00sZUFBbEIsR0FBb0NQLGlCQUFpQixDQUFDTyxlQUF0RDtBQUNBTixFQUFBQSxpQkFBaUIsQ0FBQ08sbUJBQWxCLEdBQXdDUixpQkFBaUIsQ0FBQ1EsbUJBQTFEOztBQUNBLFlBQTJDO0FBQ3ZDLFVBQU1DLElBQUksR0FBR1QsaUJBQWlCLENBQUNVLFdBQWxCLElBQWlDVixpQkFBaUIsQ0FBQ1MsSUFBbkQsSUFBMkQsU0FBeEU7QUFDQVIsSUFBQUEsaUJBQWlCLENBQUNTLFdBQWxCLEdBQWlDLGNBQWFELElBQUssR0FBbkQ7QUFDSDs7QUFDRCxTQUFPUixpQkFBUDtBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmllLXJlYWN0Ly4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvd2l0aC1yb3V0ZXIuanM/YWM3YyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IHdpdGhSb3V0ZXI7XG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xudmFyIF9yb3V0ZXIgPSByZXF1aXJlKFwiLi9yb3V0ZXJcIik7XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5mdW5jdGlvbiB3aXRoUm91dGVyKENvbXBvc2VkQ29tcG9uZW50KSB7XG4gICAgZnVuY3Rpb24gV2l0aFJvdXRlcldyYXBwZXIocHJvcHMpIHtcbiAgICAgICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChDb21wb3NlZENvbXBvbmVudCwgT2JqZWN0LmFzc2lnbih7XG4gICAgICAgICAgICByb3V0ZXI6ICgwLCBfcm91dGVyKS51c2VSb3V0ZXIoKVxuICAgICAgICB9LCBwcm9wcykpKTtcbiAgICB9XG4gICAgV2l0aFJvdXRlcldyYXBwZXIuZ2V0SW5pdGlhbFByb3BzID0gQ29tcG9zZWRDb21wb25lbnQuZ2V0SW5pdGlhbFByb3BzO1xuICAgIFdpdGhSb3V0ZXJXcmFwcGVyLm9yaWdHZXRJbml0aWFsUHJvcHMgPSBDb21wb3NlZENvbXBvbmVudC5vcmlnR2V0SW5pdGlhbFByb3BzO1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSBDb21wb3NlZENvbXBvbmVudC5kaXNwbGF5TmFtZSB8fCBDb21wb3NlZENvbXBvbmVudC5uYW1lIHx8ICdVbmtub3duJztcbiAgICAgICAgV2l0aFJvdXRlcldyYXBwZXIuZGlzcGxheU5hbWUgPSBgd2l0aFJvdXRlcigke25hbWV9KWA7XG4gICAgfVxuICAgIHJldHVybiBXaXRoUm91dGVyV3JhcHBlcjtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9d2l0aC1yb3V0ZXIuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiZGVmYXVsdCIsIndpdGhSb3V0ZXIiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yb3V0ZXIiLCJvYmoiLCJfX2VzTW9kdWxlIiwiQ29tcG9zZWRDb21wb25lbnQiLCJXaXRoUm91dGVyV3JhcHBlciIsInByb3BzIiwiY3JlYXRlRWxlbWVudCIsImFzc2lnbiIsInJvdXRlciIsInVzZVJvdXRlciIsImdldEluaXRpYWxQcm9wcyIsIm9yaWdHZXRJbml0aWFsUHJvcHMiLCJuYW1lIiwiZGlzcGxheU5hbWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/with-router.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/router.js": +/*!************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/router.js ***! + \************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.getDomainLocale = getDomainLocale;\nexports.addLocale = addLocale;\nexports.delLocale = delLocale;\nexports.hasBasePath = hasBasePath;\nexports.addBasePath = addBasePath;\nexports.delBasePath = delBasePath;\nexports.isLocalURL = isLocalURL;\nexports.interpolateAs = interpolateAs;\nexports.resolveHref = resolveHref;\nexports[\"default\"] = void 0;\n\nvar _normalizeTrailingSlash = __webpack_require__(/*! ../../../client/normalize-trailing-slash */ \"./node_modules/next/dist/client/normalize-trailing-slash.js\");\n\nvar _routeLoader = __webpack_require__(/*! ../../../client/route-loader */ \"./node_modules/next/dist/client/route-loader.js\");\n\nvar _isError = _interopRequireDefault(__webpack_require__(/*! ../../../lib/is-error */ \"./node_modules/next/dist/lib/is-error.js\"));\n\nvar _denormalizePagePath = __webpack_require__(/*! ../../../server/denormalize-page-path */ \"../../../server/denormalize-page-path\");\n\nvar _normalizeLocalePath = __webpack_require__(/*! ../i18n/normalize-locale-path */ \"../i18n/normalize-locale-path\");\n\nvar _mitt = _interopRequireDefault(__webpack_require__(/*! ../mitt */ \"../mitt\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"../shared/lib/utils\");\n\nvar _isDynamic = __webpack_require__(/*! ./utils/is-dynamic */ \"./utils/is-dynamic\");\n\nvar _parseRelativeUrl = __webpack_require__(/*! ./utils/parse-relative-url */ \"./utils/parse-relative-url\");\n\nvar _querystring = __webpack_require__(/*! ./utils/querystring */ \"./utils/querystring\");\n\nvar _resolveRewrites = _interopRequireDefault(__webpack_require__(/*! ./utils/resolve-rewrites */ \"./utils/resolve-rewrites\"));\n\nvar _routeMatcher = __webpack_require__(/*! ./utils/route-matcher */ \"./utils/route-matcher\");\n\nvar _routeRegex = __webpack_require__(/*! ./utils/route-regex */ \"./utils/route-regex\");\n\nvar _getMiddlewareRegex = __webpack_require__(/*! ./utils/get-middleware-regex */ \"./utils/get-middleware-regex\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nlet detectDomainLocale;\n\nif (false) {}\n\nconst basePath = false || '';\n\nfunction buildCancellationError() {\n return Object.assign(new Error('Route Cancelled'), {\n cancelled: true\n });\n}\n\nfunction addPathPrefix(path, prefix) {\n if (!path.startsWith('/') || !prefix) {\n return path;\n }\n\n const pathname = pathNoQueryHash(path);\n return (0, _normalizeTrailingSlash).normalizePathTrailingSlash(`${prefix}${pathname}`) + path.substr(pathname.length);\n}\n\nfunction getDomainLocale(path, locale, locales, domainLocales) {\n if (false) {} else {\n return false;\n }\n}\n\nfunction addLocale(path, locale, defaultLocale) {\n if (false) {}\n\n return path;\n}\n\nfunction delLocale(path, locale) {\n if (false) {}\n\n return path;\n}\n\nfunction pathNoQueryHash(path) {\n const queryIndex = path.indexOf('?');\n const hashIndex = path.indexOf('#');\n\n if (queryIndex > -1 || hashIndex > -1) {\n path = path.substring(0, queryIndex > -1 ? queryIndex : hashIndex);\n }\n\n return path;\n}\n\nfunction hasBasePath(path) {\n path = pathNoQueryHash(path);\n return path === basePath || path.startsWith(basePath + '/');\n}\n\nfunction addBasePath(path) {\n // we only add the basepath on relative urls\n return addPathPrefix(path, basePath);\n}\n\nfunction delBasePath(path) {\n path = path.slice(basePath.length);\n if (!path.startsWith('/')) path = `/${path}`;\n return path;\n}\n\nfunction isLocalURL(url) {\n // prevent a hydration mismatch on href for url with anchor refs\n if (url.startsWith('/') || url.startsWith('#') || url.startsWith('?')) return true;\n\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 && hasBasePath(resolved.pathname);\n } catch (_) {\n return false;\n }\n}\n\nfunction interpolateAs(route, asPathname, query) {\n let interpolatedRoute = '';\n const dynamicRegex = (0, _routeRegex).getRouteRegex(route);\n const dynamicGroups = dynamicRegex.groups;\n const dynamicMatches = // Try to match the dynamic route against the asPath\n (asPathname !== route ? (0, _routeMatcher).getRouteMatcher(dynamicRegex)(asPathname) : '') || // Fall back to reading the values from the href\n // TODO: should this take priority; also need to change in the router.\n query;\n interpolatedRoute = route;\n const params = Object.keys(dynamicGroups);\n\n if (!params.every(param => {\n let value = dynamicMatches[param] || '';\n const {\n repeat,\n optional\n } = dynamicGroups[param]; // support single-level catch-all\n // TODO: more robust handling for user-error (passing `/`)\n\n let replaced = `[${repeat ? '...' : ''}${param}]`;\n\n if (optional) {\n replaced = `${!value ? '/' : ''}[${replaced}]`;\n }\n\n if (repeat && !Array.isArray(value)) value = [value];\n return (optional || param in dynamicMatches) && (interpolatedRoute = interpolatedRoute.replace(replaced, repeat ? value.map( // these values should be fully encoded instead of just\n // path delimiter escaped since they are being inserted\n // into the URL and we expect URL encoded segments\n // when parsing dynamic route params\n segment => encodeURIComponent(segment)).join('/') : encodeURIComponent(value)) || '/');\n })) {\n interpolatedRoute = '' // did not satisfy all requirements\n ; // n.b. We ignore this error because we handle warning for this case in\n // development in the `<Link>` component directly.\n }\n\n return {\n params,\n result: interpolatedRoute\n };\n}\n\nfunction omitParmsFromQuery(query, params) {\n const filteredQuery = {};\n Object.keys(query).forEach(key => {\n if (!params.includes(key)) {\n filteredQuery[key] = query[key];\n }\n });\n return filteredQuery;\n}\n\nfunction resolveHref(router, href, resolveAs) {\n // we use a dummy base url for relative urls\n let base;\n let urlAsString = typeof href === 'string' ? href : (0, _utils).formatWithValidation(href); // repeated slashes and backslashes in the URL are considered\n // invalid and will never match a Next.js page/file\n\n const urlProtoMatch = urlAsString.match(/^[a-zA-Z]{1,}:\\/\\//);\n const urlAsStringNoProto = urlProtoMatch ? urlAsString.substr(urlProtoMatch[0].length) : urlAsString;\n const urlParts = urlAsStringNoProto.split('?');\n\n if ((urlParts[0] || '').match(/(\\/\\/|\\\\)/)) {\n console.error(`Invalid href passed to next/router: ${urlAsString}, repeated forward-slashes (//) or backslashes \\\\ are not valid in the href`);\n const normalizedUrl = (0, _utils).normalizeRepeatedSlashes(urlAsStringNoProto);\n urlAsString = (urlProtoMatch ? urlProtoMatch[0] : '') + normalizedUrl;\n } // Return because it cannot be routed by the Next.js router\n\n\n if (!isLocalURL(urlAsString)) {\n return resolveAs ? [urlAsString] : urlAsString;\n }\n\n try {\n base = new URL(urlAsString.startsWith('#') ? router.asPath : router.pathname, 'http://n');\n } catch (_) {\n // fallback to / for invalid asPath values e.g. //\n base = new URL('/', 'http://n');\n }\n\n try {\n const finalUrl = new URL(urlAsString, base);\n finalUrl.pathname = (0, _normalizeTrailingSlash).normalizePathTrailingSlash(finalUrl.pathname);\n let interpolatedAs = '';\n\n if ((0, _isDynamic).isDynamicRoute(finalUrl.pathname) && finalUrl.searchParams && resolveAs) {\n const query = (0, _querystring).searchParamsToUrlQuery(finalUrl.searchParams);\n const {\n result,\n params\n } = interpolateAs(finalUrl.pathname, finalUrl.pathname, query);\n\n if (result) {\n interpolatedAs = (0, _utils).formatWithValidation({\n pathname: result,\n hash: finalUrl.hash,\n query: omitParmsFromQuery(query, params)\n });\n }\n } // if the origin didn't change, it means we received a relative href\n\n\n const resolvedHref = finalUrl.origin === base.origin ? finalUrl.href.slice(finalUrl.origin.length) : finalUrl.href;\n return resolveAs ? [resolvedHref, interpolatedAs || resolvedHref] : resolvedHref;\n } catch (_1) {\n return resolveAs ? [urlAsString] : urlAsString;\n }\n}\n\nfunction stripOrigin(url) {\n const origin = (0, _utils).getLocationOrigin();\n return url.startsWith(origin) ? url.substring(origin.length) : url;\n}\n\nfunction prepareUrlAs(router, url, as) {\n // If url and as provided as an object representation,\n // we'll format them into the string version here.\n let [resolvedHref, resolvedAs] = resolveHref(router, url, true);\n const origin = (0, _utils).getLocationOrigin();\n const hrefHadOrigin = resolvedHref.startsWith(origin);\n const asHadOrigin = resolvedAs && resolvedAs.startsWith(origin);\n resolvedHref = stripOrigin(resolvedHref);\n resolvedAs = resolvedAs ? stripOrigin(resolvedAs) : resolvedAs;\n const preparedUrl = hrefHadOrigin ? resolvedHref : addBasePath(resolvedHref);\n const preparedAs = as ? stripOrigin(resolveHref(router, as)) : resolvedAs || resolvedHref;\n return {\n url: preparedUrl,\n as: asHadOrigin ? preparedAs : addBasePath(preparedAs)\n };\n}\n\nfunction resolveDynamicRoute(pathname, pages) {\n const cleanPathname = (0, _normalizeTrailingSlash).removePathTrailingSlash((0, _denormalizePagePath).denormalizePagePath(pathname));\n\n if (cleanPathname === '/404' || cleanPathname === '/_error') {\n return pathname;\n } // handle resolving href for dynamic routes\n\n\n if (!pages.includes(cleanPathname)) {\n // eslint-disable-next-line array-callback-return\n pages.some(page => {\n if ((0, _isDynamic).isDynamicRoute(page) && (0, _routeRegex).getRouteRegex(page).re.test(cleanPathname)) {\n pathname = page;\n return true;\n }\n });\n }\n\n return (0, _normalizeTrailingSlash).removePathTrailingSlash(pathname);\n}\n\nconst manualScrollRestoration = false && 0;\nconst SSG_DATA_NOT_FOUND = Symbol('SSG_DATA_NOT_FOUND');\n\nfunction fetchRetry(url, attempts, opts) {\n return fetch(url, {\n // Cookies are required to be present for Next.js' SSG \"Preview Mode\".\n // Cookies may also be required for `getServerSideProps`.\n //\n // > `fetch` won’t send cookies, unless you set the credentials init\n // > option.\n // https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch\n //\n // > For maximum browser compatibility when it comes to sending &\n // > receiving cookies, always supply the `credentials: 'same-origin'`\n // > option instead of relying on the default.\n // https://github.com/github/fetch#caveats\n credentials: 'same-origin'\n }).then(res => {\n if (!res.ok) {\n if (attempts > 1 && res.status >= 500) {\n return fetchRetry(url, attempts - 1, opts);\n }\n\n if (res.status === 404) {\n return res.json().then(data => {\n if (data.notFound) {\n return {\n notFound: SSG_DATA_NOT_FOUND\n };\n }\n\n throw new Error(`Failed to load static props`);\n });\n }\n\n throw new Error(`Failed to load static props`);\n }\n\n return opts.text ? res.text() : res.json();\n });\n}\n\nfunction fetchNextData(dataHref, isServerRender, text, inflightCache, persistCache) {\n const {\n href: cacheKey\n } = new URL(dataHref, window.location.href);\n\n if (inflightCache[cacheKey] !== undefined) {\n return inflightCache[cacheKey];\n }\n\n return inflightCache[cacheKey] = fetchRetry(dataHref, isServerRender ? 3 : 1, {\n text\n }).catch(err => {\n // We should only trigger a server-side transition if this was caused\n // on a client-side transition. Otherwise, we'd get into an infinite\n // loop.\n if (!isServerRender) {\n (0, _routeLoader).markAssetError(err);\n }\n\n throw err;\n }).then(data => {\n if (!persistCache || true) {\n delete inflightCache[cacheKey];\n }\n\n return data;\n }).catch(err => {\n delete inflightCache[cacheKey];\n throw err;\n });\n}\n\nclass Router {\n constructor(pathname, query, as, {\n initialProps,\n pageLoader,\n App,\n wrapApp,\n Component,\n err,\n subscription,\n isFallback,\n locale,\n locales,\n defaultLocale,\n domainLocales,\n isPreview\n }) {\n // Static Data Cache\n this.sdc = {}; // In-flight Server Data Requests, for deduping\n\n this.sdr = {}; // In-flight middleware preflight requests\n\n this.sde = {};\n this._idx = 0;\n\n this.onPopState = e => {\n const state = e.state;\n\n if (!state) {\n // We get state as undefined for two reasons.\n // 1. With older safari (< 8) and older chrome (< 34)\n // 2. When the URL changed with #\n //\n // In the both cases, we don't need to proceed and change the route.\n // (as it's already changed)\n // But we can simply replace the state with the new changes.\n // Actually, for (1) we don't need to nothing. But it's hard to detect that event.\n // So, doing the following for (1) does no harm.\n const {\n pathname,\n query\n } = this;\n this.changeState('replaceState', (0, _utils).formatWithValidation({\n pathname: addBasePath(pathname),\n query\n }), (0, _utils).getURL());\n return;\n }\n\n if (!state.__N) {\n return;\n }\n\n let forcedScroll;\n const {\n url,\n as,\n options,\n idx\n } = state;\n\n if (false) {}\n\n this._idx = idx;\n const {\n pathname\n } = (0, _parseRelativeUrl).parseRelativeUrl(url); // Make sure we don't re-render on initial load,\n // can be caused by navigating back from an external site\n\n if (this.isSsr && as === this.asPath && pathname === this.pathname) {\n return;\n } // If the downstream application returns falsy, return.\n // They will then be responsible for handling the event.\n\n\n if (this._bps && !this._bps(state)) {\n return;\n }\n\n this.change('replaceState', url, as, Object.assign({}, options, {\n shallow: options.shallow && this._shallow,\n locale: options.locale || this.defaultLocale\n }), forcedScroll);\n }; // represents the current component key\n\n\n this.route = (0, _normalizeTrailingSlash).removePathTrailingSlash(pathname); // set up the component cache (by route keys)\n\n this.components = {}; // We should not keep the cache, if there's an error\n // Otherwise, this cause issues when when going back and\n // come again to the errored page.\n\n if (pathname !== '/_error') {\n var ref;\n this.components[this.route] = {\n Component,\n initial: true,\n props: initialProps,\n err,\n __N_SSG: initialProps && initialProps.__N_SSG,\n __N_SSP: initialProps && initialProps.__N_SSP,\n __N_RSC: !!((ref = Component) === null || ref === void 0 ? void 0 : ref.__next_rsc__)\n };\n }\n\n this.components['/_app'] = {\n Component: App,\n styleSheets: []\n }; // Backwards compat for Router.router.events\n // TODO: Should be remove the following major version as it was never documented\n\n this.events = Router.events;\n this.pageLoader = pageLoader;\n this.pathname = pathname;\n this.query = query; // if auto prerendered and dynamic route wait to update asPath\n // until after mount to prevent hydration mismatch\n\n const autoExportDynamic = (0, _isDynamic).isDynamicRoute(pathname) && self.__NEXT_DATA__.autoExport;\n\n this.asPath = autoExportDynamic ? pathname : as;\n this.basePath = basePath;\n this.sub = subscription;\n this.clc = null;\n this._wrapApp = wrapApp; // make sure to ignore extra popState in safari on navigating\n // back from external site\n\n this.isSsr = true;\n this.isFallback = isFallback;\n this.isReady = !!(self.__NEXT_DATA__.gssp || self.__NEXT_DATA__.gip || self.__NEXT_DATA__.appGip && !self.__NEXT_DATA__.gsp || !autoExportDynamic && !self.location.search && !false);\n this.isPreview = !!isPreview;\n this.isLocaleDomain = false;\n\n if (false) {}\n\n if (false) {}\n }\n\n reload() {\n window.location.reload();\n }\n /**\n * Go back in history\n */\n\n\n back() {\n window.history.back();\n }\n /**\n * Performs a `pushState` with arguments\n * @param url of the route\n * @param as masks `url` for the browser\n * @param options object you can define `shallow` and other options\n */\n\n\n push(url, as, options = {}) {\n if (false) {}\n\n ({\n url,\n as\n } = prepareUrlAs(this, url, as));\n return this.change('pushState', url, as, options);\n }\n /**\n * Performs a `replaceState` with arguments\n * @param url of the route\n * @param as masks `url` for the browser\n * @param options object you can define `shallow` and other options\n */\n\n\n replace(url, as, options = {}) {\n ({\n url,\n as\n } = prepareUrlAs(this, url, as));\n return this.change('replaceState', url, as, options);\n }\n\n async change(method, url, as, options, forcedScroll) {\n if (!isLocalURL(url)) {\n window.location.href = url;\n return false;\n }\n\n const shouldResolveHref = options._h || options._shouldResolveHref || pathNoQueryHash(url) === pathNoQueryHash(as); // for static pages with query params in the URL we delay\n // marking the router ready until after the query is updated\n\n if (options._h) {\n this.isReady = true;\n }\n\n const prevLocale = this.locale;\n\n if (false) { var ref; }\n\n if (!options._h) {\n this.isSsr = false;\n } // marking route changes as a navigation start entry\n\n\n if (_utils.ST) {\n performance.mark('routeChange');\n }\n\n const {\n shallow = false\n } = options;\n const routeProps = {\n shallow\n };\n\n if (this._inFlightRoute) {\n this.abortComponentLoad(this._inFlightRoute, routeProps);\n }\n\n as = addBasePath(addLocale(hasBasePath(as) ? delBasePath(as) : as, options.locale, this.defaultLocale));\n const cleanedAs = delLocale(hasBasePath(as) ? delBasePath(as) : as, this.locale);\n this._inFlightRoute = as;\n let localeChange = prevLocale !== this.locale; // If the url change is only related to a hash change\n // We should not proceed. We should only change the state.\n // WARNING: `_h` is an internal option for handing Next.js client-side\n // hydration. Your app should _never_ use this property. It may change at\n // any time without notice.\n\n if (!options._h && this.onlyAHashChange(cleanedAs) && !localeChange) {\n this.asPath = cleanedAs;\n Router.events.emit('hashChangeStart', as, routeProps); // TODO: do we need the resolved href when only a hash change?\n\n this.changeState(method, url, as, options);\n this.scrollToHash(cleanedAs);\n this.notify(this.components[this.route], null);\n Router.events.emit('hashChangeComplete', as, routeProps);\n return true;\n }\n\n let parsed = (0, _parseRelativeUrl).parseRelativeUrl(url);\n let {\n pathname,\n query\n } = parsed; // The build manifest needs to be loaded before auto-static dynamic pages\n // get their query parameters to allow ensuring they can be parsed properly\n // when rewritten to\n\n let pages, rewrites;\n\n try {\n [pages, {\n __rewrites: rewrites\n }] = await Promise.all([this.pageLoader.getPageList(), (0, _routeLoader).getClientBuildManifest(), this.pageLoader.getMiddlewareList()]);\n } catch (err) {\n // If we fail to resolve the page list or client-build manifest, we must\n // do a server-side transition:\n window.location.href = as;\n return false;\n } // If asked to change the current URL we should reload the current page\n // (not location.reload() but reload getInitialProps and other Next.js stuffs)\n // We also need to set the method = replaceState always\n // as this should not go into the history (That's how browsers work)\n // We should compare the new asPath to the current asPath, not the url\n\n\n if (!this.urlIsNew(cleanedAs) && !localeChange) {\n method = 'replaceState';\n } // we need to resolve the as value using rewrites for dynamic SSG\n // pages to allow building the data URL correctly\n\n\n let resolvedAs = as; // url and as should always be prefixed with basePath by this\n // point by either next/link or router.push/replace so strip the\n // basePath from the pathname to match the pages dir 1-to-1\n\n pathname = pathname ? (0, _normalizeTrailingSlash).removePathTrailingSlash(delBasePath(pathname)) : pathname;\n\n if (shouldResolveHref && pathname !== '/_error') {\n options._shouldResolveHref = true;\n\n if (false) {} else {\n parsed.pathname = resolveDynamicRoute(pathname, pages);\n\n if (parsed.pathname !== pathname) {\n pathname = parsed.pathname;\n parsed.pathname = addBasePath(pathname);\n url = (0, _utils).formatWithValidation(parsed);\n }\n }\n }\n\n if (!isLocalURL(as)) {\n if (true) {\n throw new Error(`Invalid href: \"${url}\" and as: \"${as}\", received relative href and external as` + `\\nSee more info: https://nextjs.org/docs/messages/invalid-relative-url-external-as`);\n }\n\n window.location.href = as;\n return false;\n }\n\n resolvedAs = delLocale(delBasePath(resolvedAs), this.locale);\n const effect = await this._preflightRequest({\n as,\n cache: false,\n pages,\n pathname,\n query\n });\n\n if (effect.type === 'rewrite') {\n query = _objectSpread(_objectSpread({}, query), effect.parsedAs.query);\n resolvedAs = effect.asPath;\n pathname = effect.resolvedHref;\n parsed.pathname = effect.resolvedHref;\n url = (0, _utils).formatWithValidation(parsed);\n } else if (effect.type === 'redirect' && effect.newAs) {\n return this.change(method, effect.newUrl, effect.newAs, options);\n } else if (effect.type === 'redirect' && effect.destination) {\n window.location.href = effect.destination;\n return new Promise(() => {});\n } else if (effect.type === 'refresh') {\n window.location.href = as;\n return new Promise(() => {});\n }\n\n const route = (0, _normalizeTrailingSlash).removePathTrailingSlash(pathname);\n\n if ((0, _isDynamic).isDynamicRoute(route)) {\n const parsedAs = (0, _parseRelativeUrl).parseRelativeUrl(resolvedAs);\n const asPathname = parsedAs.pathname;\n const routeRegex = (0, _routeRegex).getRouteRegex(route);\n const routeMatch = (0, _routeMatcher).getRouteMatcher(routeRegex)(asPathname);\n const shouldInterpolate = route === asPathname;\n const interpolatedAs = shouldInterpolate ? interpolateAs(route, asPathname, query) : {};\n\n if (!routeMatch || shouldInterpolate && !interpolatedAs.result) {\n const missingParams = Object.keys(routeRegex.groups).filter(param => !query[param]);\n\n if (missingParams.length > 0) {\n if (true) {\n console.warn(`${shouldInterpolate ? `Interpolating href` : `Mismatching \\`as\\` and \\`href\\``} failed to manually provide ` + `the params: ${missingParams.join(', ')} in the \\`href\\`'s \\`query\\``);\n }\n\n throw new Error((shouldInterpolate ? `The provided \\`href\\` (${url}) value is missing query values (${missingParams.join(', ')}) to be interpolated properly. ` : `The provided \\`as\\` value (${asPathname}) is incompatible with the \\`href\\` value (${route}). `) + `Read more: https://nextjs.org/docs/messages/${shouldInterpolate ? 'href-interpolation-failed' : 'incompatible-href-as'}`);\n }\n } else if (shouldInterpolate) {\n as = (0, _utils).formatWithValidation(Object.assign({}, parsedAs, {\n pathname: interpolatedAs.result,\n query: omitParmsFromQuery(query, interpolatedAs.params)\n }));\n } else {\n // Merge params into `query`, overwriting any specified in search\n Object.assign(query, routeMatch);\n }\n }\n\n Router.events.emit('routeChangeStart', as, routeProps);\n\n try {\n var ref, ref1;\n let routeInfo = await this.getRouteInfo(route, pathname, query, as, resolvedAs, routeProps);\n let {\n error,\n props,\n __N_SSG,\n __N_SSP\n } = routeInfo; // handle redirect on client-transition\n\n if ((__N_SSG || __N_SSP) && props) {\n if (props.pageProps && props.pageProps.__N_REDIRECT) {\n const destination = props.pageProps.__N_REDIRECT; // check if destination is internal (resolves to a page) and attempt\n // client-navigation if it is falling back to hard navigation if\n // it's not\n\n if (destination.startsWith('/') && props.pageProps.__N_REDIRECT_BASE_PATH !== false) {\n const parsedHref = (0, _parseRelativeUrl).parseRelativeUrl(destination);\n parsedHref.pathname = resolveDynamicRoute(parsedHref.pathname, pages);\n const {\n url: newUrl,\n as: newAs\n } = prepareUrlAs(this, destination, destination);\n return this.change(method, newUrl, newAs, options);\n }\n\n window.location.href = destination;\n return new Promise(() => {});\n }\n\n this.isPreview = !!props.__N_PREVIEW; // handle SSG data 404\n\n if (props.notFound === SSG_DATA_NOT_FOUND) {\n let notFoundRoute;\n\n try {\n await this.fetchComponent('/404');\n notFoundRoute = '/404';\n } catch (_) {\n notFoundRoute = '/_error';\n }\n\n routeInfo = await this.getRouteInfo(notFoundRoute, notFoundRoute, query, as, resolvedAs, {\n shallow: false\n });\n }\n }\n\n Router.events.emit('beforeHistoryChange', as, routeProps);\n this.changeState(method, url, as, options);\n\n if (options._h && pathname === '/_error' && ((ref = self.__NEXT_DATA__.props) === null || ref === void 0 ? void 0 : (ref1 = ref.pageProps) === null || ref1 === void 0 ? void 0 : ref1.statusCode) === 500 && (props === null || props === void 0 ? void 0 : props.pageProps)) {\n // ensure statusCode is still correct for static 500 page\n // when updating query information\n props.pageProps.statusCode = 500;\n } // shallow routing is only allowed for same page URL changes.\n\n\n const isValidShallowRoute = options.shallow && this.route === route;\n\n var _scroll;\n\n const shouldScroll = (_scroll = options.scroll) !== null && _scroll !== void 0 ? _scroll : !isValidShallowRoute;\n const resetScroll = shouldScroll ? {\n x: 0,\n y: 0\n } : null;\n await this.set(route, pathname, query, cleanedAs, routeInfo, forcedScroll !== null && forcedScroll !== void 0 ? forcedScroll : resetScroll).catch(e => {\n if (e.cancelled) error = error || e;else throw e;\n });\n\n if (error) {\n Router.events.emit('routeChangeError', error, cleanedAs, routeProps);\n throw error;\n }\n\n if (false) {}\n\n Router.events.emit('routeChangeComplete', as, routeProps);\n return true;\n } catch (err1) {\n if ((0, _isError).default(err1) && err1.cancelled) {\n return false;\n }\n\n throw err1;\n }\n }\n\n changeState(method, url, as, options = {}) {\n if (true) {\n if (typeof window.history === 'undefined') {\n console.error(`Warning: window.history is not available.`);\n return;\n }\n\n if (typeof window.history[method] === 'undefined') {\n console.error(`Warning: window.history.${method} is not available`);\n return;\n }\n }\n\n if (method !== 'pushState' || (0, _utils).getURL() !== as) {\n this._shallow = options.shallow;\n window.history[method]({\n url,\n as,\n options,\n __N: true,\n idx: this._idx = method !== 'pushState' ? this._idx : this._idx + 1\n }, // Most browsers currently ignores this parameter, although they may use it in the future.\n // Passing the empty string here should be safe against future changes to the method.\n // https://developer.mozilla.org/en-US/docs/Web/API/History/replaceState\n '', as);\n }\n }\n\n async handleRouteInfoError(err, pathname, query, as, routeProps, loadErrorFail) {\n if (err.cancelled) {\n // bubble up cancellation errors\n throw err;\n }\n\n if ((0, _routeLoader).isAssetError(err) || loadErrorFail) {\n Router.events.emit('routeChangeError', err, as, routeProps); // If we can't load the page it could be one of following reasons\n // 1. Page doesn't exists\n // 2. Page does exist in a different zone\n // 3. Internal error while loading the page\n // So, doing a hard reload is the proper way to deal with this.\n\n window.location.href = as; // Changing the URL doesn't block executing the current code path.\n // So let's throw a cancellation error stop the routing logic.\n\n throw buildCancellationError();\n }\n\n try {\n let Component;\n let styleSheets;\n let props;\n\n if (typeof Component === 'undefined' || typeof styleSheets === 'undefined') {\n ({\n page: Component,\n styleSheets\n } = await this.fetchComponent('/_error'));\n }\n\n const routeInfo = {\n props,\n Component,\n styleSheets,\n err,\n error: err\n };\n\n if (!routeInfo.props) {\n try {\n routeInfo.props = await this.getInitialProps(Component, {\n err,\n pathname,\n query\n });\n } catch (gipErr) {\n console.error('Error in error page `getInitialProps`: ', gipErr);\n routeInfo.props = {};\n }\n }\n\n return routeInfo;\n } catch (routeInfoErr) {\n return this.handleRouteInfoError((0, _isError).default(routeInfoErr) ? routeInfoErr : new Error(routeInfoErr + ''), pathname, query, as, routeProps, true);\n }\n }\n\n async getRouteInfo(route, pathname, query, as, resolvedAs, routeProps) {\n try {\n const existingRouteInfo = this.components[route];\n\n if (routeProps.shallow && existingRouteInfo && this.route === route) {\n return existingRouteInfo;\n }\n\n let cachedRouteInfo = undefined; // can only use non-initial route info\n // cannot reuse route info in development since it can change after HMR\n\n if (false) {}\n\n const routeInfo = cachedRouteInfo || (await this.fetchComponent(route).then(res => ({\n Component: res.page,\n styleSheets: res.styleSheets,\n __N_SSG: res.mod.__N_SSG,\n __N_SSP: res.mod.__N_SSP,\n __N_RSC: !!res.page.__next_rsc__\n })));\n const {\n Component,\n __N_SSG,\n __N_SSP,\n __N_RSC\n } = routeInfo;\n\n if (true) {\n const {\n isValidElementType\n } = __webpack_require__(/*! react-is */ \"react-is\");\n\n if (!isValidElementType(Component)) {\n throw new Error(`The default export is not a React Component in page: \"${pathname}\"`);\n }\n }\n\n let dataHref;\n\n if (__N_SSG || __N_SSP || __N_RSC) {\n dataHref = this.pageLoader.getDataHref({\n href: (0, _utils).formatWithValidation({\n pathname,\n query\n }),\n asPath: resolvedAs,\n ssg: __N_SSG,\n rsc: __N_RSC,\n locale: this.locale\n });\n }\n\n const props = await this._getData(() => __N_SSG || __N_SSP ? fetchNextData(dataHref, this.isSsr, false, __N_SSG ? this.sdc : this.sdr, !!__N_SSG && !this.isPreview) : this.getInitialProps(Component, // we provide AppTree later so this needs to be `any`\n {\n pathname,\n query,\n asPath: as,\n locale: this.locale,\n locales: this.locales,\n defaultLocale: this.defaultLocale\n }));\n\n if (__N_RSC) {\n const {\n fresh,\n data\n } = await this._getData(() => this._getFlightData(dataHref));\n props.pageProps = Object.assign(props.pageProps, {\n __flight_serialized__: data,\n __flight_fresh__: fresh\n });\n }\n\n routeInfo.props = props;\n this.components[route] = routeInfo;\n return routeInfo;\n } catch (err) {\n return this.handleRouteInfoError((0, _isError).default(err) ? err : new Error(err + ''), pathname, query, as, routeProps);\n }\n }\n\n set(route, pathname, query, as, data, resetScroll) {\n this.isFallback = false;\n this.route = route;\n this.pathname = pathname;\n this.query = query;\n this.asPath = as;\n return this.notify(data, resetScroll);\n }\n /**\n * Callback to execute before replacing router state\n * @param cb callback to be executed\n */\n\n\n beforePopState(cb) {\n this._bps = cb;\n }\n\n onlyAHashChange(as) {\n if (!this.asPath) return false;\n const [oldUrlNoHash, oldHash] = this.asPath.split('#');\n const [newUrlNoHash, newHash] = as.split('#'); // Makes sure we scroll to the provided hash if the url/hash are the same\n\n if (newHash && oldUrlNoHash === newUrlNoHash && oldHash === newHash) {\n return true;\n } // If the urls are change, there's more than a hash change\n\n\n if (oldUrlNoHash !== newUrlNoHash) {\n return false;\n } // If the hash has changed, then it's a hash only change.\n // This check is necessary to handle both the enter and\n // leave hash === '' cases. The identity case falls through\n // and is treated as a next reload.\n\n\n return oldHash !== newHash;\n }\n\n scrollToHash(as) {\n const [, hash] = as.split('#'); // Scroll to top if the hash is just `#` with no value or `#top`\n // To mirror browsers\n\n if (hash === '' || hash === 'top') {\n window.scrollTo(0, 0);\n return;\n } // First we check if the element by id is found\n\n\n const idEl = document.getElementById(hash);\n\n if (idEl) {\n idEl.scrollIntoView();\n return;\n } // If there's no element with the id, we check the `name` property\n // To mirror browsers\n\n\n const nameEl = document.getElementsByName(hash)[0];\n\n if (nameEl) {\n nameEl.scrollIntoView();\n }\n }\n\n urlIsNew(asPath) {\n return this.asPath !== asPath;\n }\n /**\n * Prefetch page code, you may wait for the data during page rendering.\n * This feature only works in production!\n * @param url the href of prefetched page\n * @param asPath the as path of the prefetched page\n */\n\n\n async prefetch(url, asPath = url, options = {}) {\n let parsed = (0, _parseRelativeUrl).parseRelativeUrl(url);\n let {\n pathname,\n query\n } = parsed;\n\n if (false) {}\n\n const pages = await this.pageLoader.getPageList();\n let resolvedAs = asPath;\n\n if (false) {} else {\n parsed.pathname = resolveDynamicRoute(parsed.pathname, pages);\n\n if (parsed.pathname !== pathname) {\n pathname = parsed.pathname;\n parsed.pathname = pathname;\n url = (0, _utils).formatWithValidation(parsed);\n }\n } // Prefetch is not supported in development mode because it would trigger on-demand-entries\n\n\n if (true) {\n return;\n }\n\n const effects = await this._preflightRequest({\n as: addBasePath(asPath),\n cache: true,\n pages,\n pathname,\n query\n });\n\n if (effects.type === 'rewrite') {\n parsed.pathname = effects.resolvedHref;\n pathname = effects.resolvedHref;\n query = _objectSpread(_objectSpread({}, query), effects.parsedAs.query);\n resolvedAs = effects.asPath;\n url = (0, _utils).formatWithValidation(parsed);\n }\n\n const route = (0, _normalizeTrailingSlash).removePathTrailingSlash(pathname);\n await Promise.all([this.pageLoader._isSsg(route).then(isSsg => {\n return isSsg ? fetchNextData(this.pageLoader.getDataHref({\n href: url,\n asPath: resolvedAs,\n ssg: true,\n locale: typeof options.locale !== 'undefined' ? options.locale : this.locale\n }), false, false, this.sdc, true) : false;\n }), this.pageLoader[options.priority ? 'loadPage' : 'prefetch'](route)]);\n }\n\n async fetchComponent(route) {\n let cancelled = false;\n\n const cancel = this.clc = () => {\n cancelled = true;\n };\n\n const handleCancelled = () => {\n if (cancelled) {\n const error = new Error(`Abort fetching component for route: \"${route}\"`);\n error.cancelled = true;\n throw error;\n }\n\n if (cancel === this.clc) {\n this.clc = null;\n }\n };\n\n try {\n const componentResult = await this.pageLoader.loadPage(route);\n handleCancelled();\n return componentResult;\n } catch (err) {\n handleCancelled();\n throw err;\n }\n }\n\n _getData(fn) {\n let cancelled = false;\n\n const cancel = () => {\n cancelled = true;\n };\n\n this.clc = cancel;\n return fn().then(data => {\n if (cancel === this.clc) {\n this.clc = null;\n }\n\n if (cancelled) {\n const err = new Error('Loading initial props cancelled');\n err.cancelled = true;\n throw err;\n }\n\n return data;\n });\n }\n\n _getFlightData(dataHref) {\n const {\n href: cacheKey\n } = new URL(dataHref, window.location.href);\n\n if (!this.isPreview && this.sdc[cacheKey]) {\n return Promise.resolve({\n fresh: false,\n data: this.sdc[cacheKey]\n });\n }\n\n return fetchNextData(dataHref, true, true, this.sdc, false).then(serialized => {\n this.sdc[cacheKey] = serialized;\n return {\n fresh: true,\n data: serialized\n };\n });\n }\n\n async _preflightRequest(options) {\n var ref;\n const cleanedAs = delLocale(hasBasePath(options.as) ? delBasePath(options.as) : options.as, this.locale);\n const fns = await this.pageLoader.getMiddlewareList();\n const requiresPreflight = fns.some(([middleware, isSSR]) => {\n return (0, _routeMatcher).getRouteMatcher((0, _getMiddlewareRegex).getMiddlewareRegex(middleware, !isSSR))(cleanedAs);\n });\n\n if (!requiresPreflight) {\n return {\n type: 'next'\n };\n }\n\n const preflight = await this._getPreflightData({\n preflightHref: options.as,\n shouldCache: options.cache\n });\n\n if ((ref = preflight.rewrite) === null || ref === void 0 ? void 0 : ref.startsWith('/')) {\n const parsed = (0, _parseRelativeUrl).parseRelativeUrl((0, _normalizeLocalePath).normalizeLocalePath(hasBasePath(preflight.rewrite) ? delBasePath(preflight.rewrite) : preflight.rewrite, this.locales).pathname);\n const fsPathname = (0, _normalizeTrailingSlash).removePathTrailingSlash(parsed.pathname);\n let matchedPage;\n let resolvedHref;\n\n if (options.pages.includes(fsPathname)) {\n matchedPage = true;\n resolvedHref = fsPathname;\n } else {\n resolvedHref = resolveDynamicRoute(fsPathname, options.pages);\n\n if (resolvedHref !== parsed.pathname && options.pages.includes(resolvedHref)) {\n matchedPage = true;\n }\n }\n\n return {\n type: 'rewrite',\n asPath: parsed.pathname,\n parsedAs: parsed,\n matchedPage,\n resolvedHref\n };\n }\n\n if (preflight.redirect) {\n if (preflight.redirect.startsWith('/')) {\n const cleanRedirect = (0, _normalizeTrailingSlash).removePathTrailingSlash((0, _normalizeLocalePath).normalizeLocalePath(hasBasePath(preflight.redirect) ? delBasePath(preflight.redirect) : preflight.redirect, this.locales).pathname);\n const {\n url: newUrl,\n as: newAs\n } = prepareUrlAs(this, cleanRedirect, cleanRedirect);\n return {\n type: 'redirect',\n newUrl,\n newAs\n };\n }\n\n return {\n type: 'redirect',\n destination: preflight.redirect\n };\n } // For SSR requests, they will be handled like normal pages.\n\n\n if (preflight.refresh && !preflight.ssr) {\n return {\n type: 'refresh'\n };\n }\n\n return {\n type: 'next'\n };\n }\n\n _getPreflightData(params) {\n const {\n preflightHref,\n shouldCache = false\n } = params;\n const {\n href: cacheKey\n } = new URL(preflightHref, window.location.href);\n\n if (false) {}\n\n return fetch(preflightHref, {\n method: 'HEAD',\n credentials: 'same-origin',\n headers: {\n 'x-middleware-preflight': '1'\n }\n }).then(res => {\n if (!res.ok) {\n throw new Error(`Failed to preflight request`);\n }\n\n return {\n redirect: res.headers.get('Location'),\n refresh: res.headers.has('x-middleware-refresh'),\n rewrite: res.headers.get('x-middleware-rewrite'),\n ssr: !!res.headers.get('x-middleware-ssr')\n };\n }).then(data => {\n if (shouldCache) {\n this.sde[cacheKey] = data;\n }\n\n return data;\n }).catch(err => {\n delete this.sde[cacheKey];\n throw err;\n });\n }\n\n getInitialProps(Component, ctx) {\n const {\n Component: App\n } = this.components['/_app'];\n\n const AppTree = this._wrapApp(App);\n\n ctx.AppTree = AppTree;\n return (0, _utils).loadGetInitialProps(App, {\n AppTree,\n Component,\n router: this,\n ctx\n });\n }\n\n abortComponentLoad(as, routeProps) {\n if (this.clc) {\n Router.events.emit('routeChangeError', buildCancellationError(), as, routeProps);\n this.clc();\n this.clc = null;\n }\n }\n\n notify(data, resetScroll) {\n return this.sub(data, this.components['/_app'].Component, resetScroll);\n }\n\n}\n\nRouter.events = (0, _mitt).default();\nexports[\"default\"] = Router;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3JvdXRlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7Ozs7Ozs7QUFDYkEsOENBQTZDO0FBQ3pDRyxFQUFBQSxLQUFLLEVBQUU7QUFEa0MsQ0FBN0M7QUFHQUQsdUJBQUEsR0FBMEJFLGVBQTFCO0FBQ0FGLGlCQUFBLEdBQW9CRyxTQUFwQjtBQUNBSCxpQkFBQSxHQUFvQkksU0FBcEI7QUFDQUosbUJBQUEsR0FBc0JLLFdBQXRCO0FBQ0FMLG1CQUFBLEdBQXNCTSxXQUF0QjtBQUNBTixtQkFBQSxHQUFzQk8sV0FBdEI7QUFDQVAsa0JBQUEsR0FBcUJRLFVBQXJCO0FBQ0FSLHFCQUFBLEdBQXdCUyxhQUF4QjtBQUNBVCxtQkFBQSxHQUFzQlUsV0FBdEI7QUFDQVYsa0JBQUEsR0FBa0IsS0FBSyxDQUF2Qjs7QUFDQSxJQUFJWSx1QkFBdUIsR0FBR0MsbUJBQU8sQ0FBQyw2R0FBRCxDQUFyQzs7QUFDQSxJQUFJQyxZQUFZLEdBQUdELG1CQUFPLENBQUMscUZBQUQsQ0FBMUI7O0FBQ0EsSUFBSUUsUUFBUSxHQUFHQyxzQkFBc0IsQ0FBQ0gsbUJBQU8sQ0FBQyx1RUFBRCxDQUFSLENBQXJDOztBQUNBLElBQUlJLG9CQUFvQixHQUFHSixtQkFBTyxDQUFDLG9GQUFELENBQWxDOztBQUNBLElBQUlLLG9CQUFvQixHQUFHTCxtQkFBTyxDQUFDLG9FQUFELENBQWxDOztBQUNBLElBQUlNLEtBQUssR0FBR0gsc0JBQXNCLENBQUNILG1CQUFPLENBQUMsd0JBQUQsQ0FBUixDQUFsQzs7QUFDQSxJQUFJTyxNQUFNLEdBQUdQLG1CQUFPLENBQUMscUNBQUQsQ0FBcEI7O0FBQ0EsSUFBSVEsVUFBVSxHQUFHUixtQkFBTyxDQUFDLDhDQUFELENBQXhCOztBQUNBLElBQUlTLGlCQUFpQixHQUFHVCxtQkFBTyxDQUFDLDhEQUFELENBQS9COztBQUNBLElBQUlVLFlBQVksR0FBR1YsbUJBQU8sQ0FBQyxnREFB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LEtBQUs3QixHQUFULEVBQWM7QUFDVnBELE1BQUFBLE1BQU0sQ0FBQytDLE1BQVAsQ0FBY3dDLElBQWQsQ0FBbUIsa0JBQW5CLEVBQXVDdE8sc0JBQXNCLEVBQTdELEVBQWlFOEYsRUFBakUsRUFBcUVrSSxVQUFyRTtBQUNBLFdBQUs3QixHQUFMO0FBQ0EsV0FBS0EsR0FBTCxHQUFXLElBQVg7QUFDSDtBQUNKOztBQUNEcUMsRUFBQUEsTUFBTSxDQUFDdEcsSUFBRCxFQUFPOEksV0FBUCxFQUFvQjtBQUN0QixXQUFPLEtBQUs5RSxHQUFMLENBQVNoRSxJQUFULEVBQWUsS0FBS21ELFVBQUwsQ0FBZ0IsT0FBaEIsRUFBeUJoQyxTQUF4QyxFQUFtRDJILFdBQW5ELENBQVA7QUFDSDs7QUFoNkJROztBQWs2QmJqSSxNQUFNLENBQUMrQyxNQUFQLEdBQWdCLENBQUMsR0FBRy9NLEtBQUosRUFBV1IsT0FBWCxFQUFoQjtBQUNBWCxrQkFBQSxHQUFrQm1MLE1BQWxCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmllLXJlYWN0Ly4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zaGFyZWQvbGliL3JvdXRlci9yb3V0ZXIuanM/ODY4NCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZ2V0RG9tYWluTG9jYWxlID0gZ2V0RG9tYWluTG9jYWxlO1xuZXhwb3J0cy5hZGRMb2NhbGUgPSBhZGRMb2NhbGU7XG5leHBvcnRzLmRlbExvY2FsZSA9IGRlbExvY2FsZTtcbmV4cG9ydHMuaGFzQmFzZVBhdGggPSBoYXNCYXNlUGF0aDtcbmV4cG9ydHMuYWRkQmFzZVBhdGggPSBhZGRCYXNlUGF0aDtcbmV4cG9ydHMuZGVsQmFzZVBhdGggPSBkZWxCYXNlUGF0aDtcbmV4cG9ydHMuaXNMb2NhbFVSTCA9IGlzTG9jYWxVUkw7XG5leHBvcnRzLmludGVycG9sYXRlQXMgPSBpbnRlcnBvbGF0ZUFzO1xuZXhwb3J0cy5yZXNvbHZlSHJlZiA9IHJlc29sdmVIcmVmO1xuZXhwb3J0cy5kZWZhdWx0ID0gdm9pZCAwO1xudmFyIF9ub3JtYWxpemVUcmFpbGluZ1NsYXNoID0gcmVxdWlyZShcIi4uLy4uLy4uL2NsaWVudC9ub3JtYWxpemUtdHJhaWxpbmctc2xhc2hcIik7XG52YXIgX3JvdXRlTG9hZGVyID0gcmVxdWlyZShcIi4uLy4uLy4uL2NsaWVudC9yb3V0ZS1sb2FkZXJcIik7XG52YXIgX2lzRXJyb3IgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi8uLi8uLi9saWIvaXMtZXJyb3JcIikpO1xudmFyIF9kZW5vcm1hbGl6ZVBhZ2VQYXRoID0gcmVxdWlyZShcIi4uLy4uLy4uL3NlcnZlci9kZW5vcm1hbGl6ZS1wYWdlLXBhdGhcIik7XG52YXIgX25vcm1hbGl6ZUxvY2FsZVBhdGggPSByZXF1aXJlKFwiLi4vaTE4bi9ub3JtYWxpemUtbG9jYWxlLXBhdGhcIik7XG52YXIgX21pdHQgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9taXR0XCIpKTtcbnZhciBfdXRpbHMgPSByZXF1aXJlKFwiLi4vdXRpbHNcIik7XG52YXIgX2lzRHluYW1pYyA9IHJlcXVpcmUoXCIuL3V0aWxzL2lzLWR5bmFtaWNcIik7XG52YXIgX3BhcnNlUmVsYXRpdmVVcmwgPSByZXF1aXJlKFwiLi91dGlscy9wYXJzZS1yZWxhdGl2ZS11cmxcIik7XG52YXIgX3F1ZXJ5c3RyaW5nID0gcmVxdWlyZShcIi4vdXRpbHMvcXVlcnlzdHJpbmdcIik7XG52YXIgX3Jlc29sdmVSZXdyaXRlcyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vdXRpbHMvcmVzb2x2ZS1yZXdyaXRlc1wiKSk7XG52YXIgX3JvdXRlTWF0Y2hlciA9IHJlcXVpcmUoXCIuL3V0aWxzL3JvdXRlLW1hdGNoZXJcIik7XG52YXIgX3JvdXRlUmVnZXggPSByZXF1aXJlKFwiLi91dGlscy9yb3V0ZS1yZWdleFwiKTtcbnZhciBfZ2V0TWlkZGxld2FyZVJlZ2V4ID0gcmVxdWlyZShcIi4vdXRpbHMvZ2V0LW1pZGRsZXdhcmUtcmVnZXhcIik7XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5sZXQgZGV0ZWN0RG9tYWluTG9jYWxlO1xuaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9JMThOX1NVUFBPUlQpIHtcbiAgICBkZXRlY3REb21haW5Mb2NhbGUgPSByZXF1aXJlKCcuLi9pMThuL2RldGVjdC1kb21haW4tbG9jYWxlJykuZGV0ZWN0RG9tYWluTG9jYWxlO1xufVxuY29uc3QgYmFzZVBhdGggPSBwcm9jZXNzLmVudi5fX05FWFRfUk9VVEVSX0JBU0VQQVRIIHx8ICcnO1xuZnVuY3Rpb24gYnVpbGRDYW5jZWxsYXRpb25FcnJvcigpIHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgRXJyb3IoJ1JvdXRlIENhbmNlbGxlZCcpLCB7XG4gICAgICAgIGNhbmNlbGxlZDogdHJ1ZVxuICAgIH0pO1xufVxuZnVuY3Rpb24gYWRkUGF0aFByZWZpeChwYXRoLCBwcmVmaXgpIHtcbiAgICBpZiAoIXBhdGguc3RhcnRzV2l0aCgnLycpIHx8ICFwcmVmaXgpIHtcbiAgICAgICAgcmV0dXJuIHBhdGg7XG4gICAgfVxuICAgIGNvbnN0IHBhdGhuYW1lID0gcGF0aE5vUXVlcnlIYXNoKHBhdGgpO1xuICAgIHJldHVybiAoMCwgX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2gpLm5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoKGAke3ByZWZpeH0ke3BhdGhuYW1lfWApICsgcGF0aC5zdWJzdHIocGF0aG5hbWUubGVuZ3RoKTtcbn1cbmZ1bmN0aW9uIGdldERvbWFpbkxvY2FsZShwYXRoLCBsb2NhbGUsIGxvY2FsZXMsIGRvbWFpbkxvY2FsZXMpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0kxOE5fU1VQUE9SVCkge1xuICAgICAgICBsb2NhbGUgPSBsb2NhbGUgfHwgKDAsIF9ub3JtYWxpemVMb2NhbGVQYXRoKS5ub3JtYWxpemVMb2NhbGVQYXRoKHBhdGgsIGxvY2FsZXMpLmRldGVjdGVkTG9jYWxlO1xuICAgICAgICBjb25zdCBkZXRlY3RlZERvbWFpbiA9IGRldGVjdERvbWFpbkxvY2FsZShkb21haW5Mb2NhbGVzLCB1bmRlZmluZWQsIGxvY2FsZSk7XG4gICAgICAgIGlmIChkZXRlY3RlZERvbWFpbikge1xuICAgICAgICAgICAgcmV0dXJuIGBodHRwJHtkZXRlY3RlZERvbWFpbi5odHRwID8gJycgOiAncyd9Oi8vJHtkZXRlY3RlZERvbWFpbi5kb21haW59JHtiYXNlUGF0aCB8fCAnJ30ke2xvY2FsZSA9PT0gZGV0ZWN0ZWREb21haW4uZGVmYXVsdExvY2FsZSA/ICcnIDogYC8ke2xvY2FsZX1gfSR7cGF0aH1gO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuZnVuY3Rpb24gYWRkTG9jYWxlKHBhdGgsIGxvY2FsZSwgZGVmYXVsdExvY2FsZSkge1xuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgICAgIGNvbnN0IHBhdGhuYW1lID0gcGF0aE5vUXVlcnlIYXNoKHBhdGgpO1xuICAgICAgICBjb25zdCBwYXRoTG93ZXIgPSBwYXRobmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBjb25zdCBsb2NhbGVMb3dlciA9IGxvY2FsZSAmJiBsb2NhbGUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgcmV0dXJuIGxvY2FsZSAmJiBsb2NhbGUgIT09IGRlZmF1bHRMb2NhbGUgJiYgIXBhdGhMb3dlci5zdGFydHNXaXRoKCcvJyArIGxvY2FsZUxvd2VyICsgJy8nKSAmJiBwYXRoTG93ZXIgIT09ICcvJyArIGxvY2FsZUxvd2VyID8gYWRkUGF0aFByZWZpeChwYXRoLCAnLycgKyBsb2NhbGUpIDogcGF0aDtcbiAgICB9XG4gICAgcmV0dXJuIHBhdGg7XG59XG5mdW5jdGlvbiBkZWxMb2NhbGUocGF0aCwgbG9jYWxlKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9JMThOX1NVUFBPUlQpIHtcbiAgICAgICAgY29uc3QgcGF0aG5hbWUgPSBwYXRoTm9RdWVyeUhhc2gocGF0aCk7XG4gICAgICAgIGNvbnN0IHBhdGhMb3dlciA9IHBhdGhuYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGNvbnN0IGxvY2FsZUxvd2VyID0gbG9jYWxlICYmIGxvY2FsZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICByZXR1cm4gbG9jYWxlICYmIChwYXRoTG93ZXIuc3RhcnRzV2l0aCgnLycgKyBsb2NhbGVMb3dlciArICcvJykgfHwgcGF0aExvd2VyID09PSAnLycgKyBsb2NhbGVMb3dlcikgPyAocGF0aG5hbWUubGVuZ3RoID09PSBsb2NhbGUubGVuZ3RoICsgMSA/ICcvJyA6ICcnKSArIHBhdGguc3Vic3RyKGxvY2FsZS5sZW5ndGggKyAxKSA6IHBhdGg7XG4gICAgfVxuICAgIHJldHVybiBwYXRoO1xufVxuZnVuY3Rpb24gcGF0aE5vUXVlcnlIYXNoKHBhdGgpIHtcbiAgICBjb25zdCBxdWVyeUluZGV4ID0gcGF0aC5pbmRleE9mKCc/Jyk7XG4gICAgY29uc3QgaGFzaEluZGV4ID0gcGF0aC5pbmRleE9mKCcjJyk7XG4gICAgaWYgKHF1ZXJ5SW5kZXggPiAtMSB8fCBoYXNoSW5kZXggPiAtMSkge1xuICAgICAgICBwYXRoID0gcGF0aC5zdWJzdHJpbmcoMCwgcXVlcnlJbmRleCA+IC0xID8gcXVlcnlJbmRleCA6IGhhc2hJbmRleCk7XG4gICAgfVxuICAgIHJldHVybiBwYXRoO1xufVxuZnVuY3Rpb24gaGFzQmFzZVBhdGgocGF0aCkge1xuICAgIHBhdGggPSBwYXRoTm9RdWVyeUhhc2gocGF0aCk7XG4gICAgcmV0dXJuIHBhdGggPT09IGJhc2VQYXRoIHx8IHBhdGguc3RhcnRzV2l0aChiYXNlUGF0aCArICcvJyk7XG59XG5mdW5jdGlvbiBhZGRCYXNlUGF0aChwYXRoKSB7XG4gICAgLy8gd2Ugb25seSBhZGQgdGhlIGJhc2VwYXRoIG9uIHJlbGF0aXZlIHVybHNcbiAgICByZXR1cm4gYWRkUGF0aFByZWZpeChwYXRoLCBiYXNlUGF0aCk7XG59XG5mdW5jdGlvbiBkZWxCYXNlUGF0aChwYXRoKSB7XG4gICAgcGF0aCA9IHBhdGguc2xpY2UoYmFzZVBhdGgubGVuZ3RoKTtcbiAgICBpZiAoIXBhdGguc3RhcnRzV2l0aCgnLycpKSBwYXRoID0gYC8ke3BhdGh9YDtcbiAgICByZXR1cm4gcGF0aDtcbn1cbmZ1bmN0aW9uIGlzTG9jYWxVUkwodXJsKSB7XG4gICAgLy8gcHJldmVudCBhIGh5ZHJhdGlvbiBtaXNtYXRjaCBvbiBocmVmIGZvciB1cmwgd2l0aCBhbmNob3IgcmVmc1xuICAgIGlmICh1cmwuc3RhcnRzV2l0aCgnLycpIHx8IHVybC5zdGFydHNXaXRoKCcjJykgfHwgdXJsLnN0YXJ0c1dpdGgoJz8nKSkgcmV0dXJuIHRydWU7XG4gICAgdHJ5IHtcbiAgICAgICAgLy8gYWJzb2x1dGUgdXJscyBjYW4gYmUgbG9jYWwgaWYgdGhleSBhcmUgb24gdGhlIHNhbWUgb3JpZ2luXG4gICAgICAgIGNvbnN0IGxvY2F0aW9uT3JpZ2luID0gKDAsIF91dGlscykuZ2V0TG9jYXRpb25PcmlnaW4oKTtcbiAgICAgICAgY29uc3QgcmVzb2x2ZWQgPSBuZXcgVVJMKHVybCwgbG9jYXRpb25PcmlnaW4pO1xuICAgICAgICByZXR1cm4gcmVzb2x2ZWQub3JpZ2luID09PSBsb2NhdGlvbk9yaWdpbiAmJiBoYXNCYXNlUGF0aChyZXNvbHZlZC5wYXRobmFtZSk7XG4gICAgfSBjYXRjaCAoXykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuZnVuY3Rpb24gaW50ZXJwb2xhdGVBcyhyb3V0ZSwgYXNQYXRobmFtZSwgcXVlcnkpIHtcbiAgICBsZXQgaW50ZXJwb2xhdGVkUm91dGUgPSAnJztcbiAgICBjb25zdCBkeW5hbWljUmVnZXggPSAoMCwgX3JvdXRlUmVnZXgpLmdldFJvdXRlUmVnZXgocm91dGUpO1xuICAgIGNvbnN0IGR5bmFtaWNHcm91cHMgPSBkeW5hbWljUmVnZXguZ3JvdXBzO1xuICAgIGNvbnN0IGR5bmFtaWNNYXRjaGVzID0gLy8gVHJ5IHRvIG1hdGNoIHRoZSBkeW5hbWljIHJvdXRlIGFnYWluc3QgdGhlIGFzUGF0aFxuICAgIChhc1BhdGhuYW1lICE9PSByb3V0ZSA/ICgwLCBfcm91dGVNYXRjaGVyKS5nZXRSb3V0ZU1hdGNoZXIoZHluYW1pY1JlZ2V4KShhc1BhdGhuYW1lKSA6ICcnKSB8fCAvLyBGYWxsIGJhY2sgdG8gcmVhZGluZyB0aGUgdmFsdWVzIGZyb20gdGhlIGhyZWZcbiAgICAvLyBUT0RPOiBzaG91bGQgdGhpcyB0YWtlIHByaW9yaXR5OyBhbHNvIG5lZWQgdG8gY2hhbmdlIGluIHRoZSByb3V0ZXIuXG4gICAgcXVlcnk7XG4gICAgaW50ZXJwb2xhdGVkUm91dGUgPSByb3V0ZTtcbiAgICBjb25zdCBwYXJhbXMgPSBPYmplY3Qua2V5cyhkeW5hbWljR3JvdXBzKTtcbiAgICBpZiAoIXBhcmFtcy5ldmVyeSgocGFyYW0pPT57XG4gICAgICAgIGxldCB2YWx1ZSA9IGR5bmFtaWNNYXRjaGVzW3BhcmFtXSB8fCAnJztcbiAgICAgICAgY29uc3QgeyByZXBlYXQgLCBvcHRpb25hbCAgfSA9IGR5bmFtaWNHcm91cHNbcGFyYW1dO1xuICAgICAgICAvLyBzdXBwb3J0IHNpbmdsZS1sZXZlbCBjYXRjaC1hbGxcbiAgICAgICAgLy8gVE9ETzogbW9yZSByb2J1c3QgaGFuZGxpbmcgZm9yIHVzZXItZXJyb3IgKHBhc3NpbmcgYC9gKVxuICAgICAgICBsZXQgcmVwbGFjZWQgPSBgWyR7cmVwZWF0ID8gJy4uLicgOiAnJ30ke3BhcmFtfV1gO1xuICAgICAgICBpZiAob3B0aW9uYWwpIHtcbiAgICAgICAgICAgIHJlcGxhY2VkID0gYCR7IXZhbHVlID8gJy8nIDogJyd9WyR7cmVwbGFjZWR9XWA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlcGVhdCAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHZhbHVlID0gW1xuICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgXTtcbiAgICAgICAgcmV0dXJuIChvcHRpb25hbCB8fCBwYXJhbSBpbiBkeW5hbWljTWF0Y2hlcykgJiYgLy8gSW50ZXJwb2xhdGUgZ3JvdXAgaW50byBkYXRhIFVSTCBpZiBwcmVzZW50XG4gICAgICAgIChpbnRlcnBvbGF0ZWRSb3V0ZSA9IGludGVycG9sYXRlZFJvdXRlLnJlcGxhY2UocmVwbGFjZWQsIHJlcGVhdCA/IHZhbHVlLm1hcCgvLyB0aGVzZSB2YWx1ZXMgc2hvdWxkIGJlIGZ1bGx5IGVuY29kZWQgaW5zdGVhZCBvZiBqdXN0XG4gICAgICAgIC8vIHBhdGggZGVsaW1pdGVyIGVzY2FwZWQgc2luY2UgdGhleSBhcmUgYmVpbmcgaW5zZXJ0ZWRcbiAgICAgICAgLy8gaW50byB0aGUgVVJMIGFuZCB3ZSBleHBlY3QgVVJMIGVuY29kZWQgc2VnbWVudHNcbiAgICAgICAgLy8gd2hlbiBwYXJzaW5nIGR5bmFtaWMgcm91dGUgcGFyYW1zXG4gICAgICAgIChzZWdtZW50KT0+ZW5jb2RlVVJJQ29tcG9uZW50KHNlZ21lbnQpXG4gICAgICAgICkuam9pbignLycpIDogZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKSkgfHwgJy8nKTtcbiAgICB9KSkge1xuICAgICAgICBpbnRlcnBvbGF0ZWRSb3V0ZSA9ICcnIC8vIGRpZCBub3Qgc2F0aXNmeSBhbGwgcmVxdWlyZW1lbnRzXG4gICAgICAgIDtcbiAgICAvLyBuLmIuIFdlIGlnbm9yZSB0aGlzIGVycm9yIGJlY2F1c2Ugd2UgaGFuZGxlIHdhcm5pbmcgZm9yIHRoaXMgY2FzZSBpblxuICAgIC8vIGRldmVsb3BtZW50IGluIHRoZSBgPExpbms+YCBjb21wb25lbnQgZGlyZWN0bHkuXG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHBhcmFtcyxcbiAgICAgICAgcmVzdWx0OiBpbnRlcnBvbGF0ZWRSb3V0ZVxuICAgIH07XG59XG5mdW5jdGlvbiBvbWl0UGFybXNGcm9tUXVlcnkocXVlcnksIHBhcmFtcykge1xuICAgIGNvbnN0IGZpbHRlcmVkUXVlcnkgPSB7XG4gICAgfTtcbiAgICBPYmplY3Qua2V5cyhxdWVyeSkuZm9yRWFjaCgoa2V5KT0+e1xuICAgICAgICBpZiAoIXBhcmFtcy5pbmNsdWRlcyhrZXkpKSB7XG4gICAgICAgICAgICBmaWx0ZXJlZFF1ZXJ5W2tleV0gPSBxdWVyeVtrZXldO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGZpbHRlcmVkUXVlcnk7XG59XG5mdW5jdGlvbiByZXNvbHZlSHJlZihyb3V0ZXIsIGhyZWYsIHJlc29sdmVBcykge1xuICAgIC8vIHdlIHVzZSBhIGR1bW15IGJhc2UgdXJsIGZvciByZWxhdGl2ZSB1cmxzXG4gICAgbGV0IGJhc2U7XG4gICAgbGV0IHVybEFzU3RyaW5nID0gdHlwZW9mIGhyZWYgPT09ICdzdHJpbmcnID8gaHJlZiA6ICgwLCBfdXRpbHMpLmZvcm1hdFdpdGhWYWxpZGF0aW9uKGhyZWYpO1xuICAgIC8vIHJlcGVhdGVkIHNsYXNoZXMgYW5kIGJhY2tzbGFzaGVzIGluIHRoZSBVUkwgYXJlIGNvbnNpZGVyZWRcbiAgICAvLyBpbnZhbGlkIGFuZCB3aWxsIG5ldmVyIG1hdGNoIGEgTmV4dC5qcyBwYWdlL2ZpbGVcbiAgICBjb25zdCB1cmxQcm90b01hdGNoID0gdXJsQXNTdHJpbmcubWF0Y2goL15bYS16QS1aXXsxLH06XFwvXFwvLyk7XG4gICAgY29uc3QgdXJsQXNTdHJpbmdOb1Byb3RvID0gdXJsUHJvdG9NYXRjaCA/IHVybEFzU3RyaW5nLnN1YnN0cih1cmxQcm90b01hdGNoWzBdLmxlbmd0aCkgOiB1cmxBc1N0cmluZztcbiAgICBjb25zdCB1cmxQYXJ0cyA9IHVybEFzU3RyaW5nTm9Qcm90by5zcGxpdCgnPycpO1xuICAgIGlmICgodXJsUGFydHNbMF0gfHwgJycpLm1hdGNoKC8oXFwvXFwvfFxcXFwpLykpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgSW52YWxpZCBocmVmIHBhc3NlZCB0byBuZXh0L3JvdXRlcjogJHt1cmxBc1N0cmluZ30sIHJlcGVhdGVkIGZvcndhcmQtc2xhc2hlcyAoLy8pIG9yIGJhY2tzbGFzaGVzIFxcXFwgYXJlIG5vdCB2YWxpZCBpbiB0aGUgaHJlZmApO1xuICAgICAgICBjb25zdCBub3JtYWxpemVkVXJsID0gKDAsIF91dGlscykubm9ybWFsaXplUmVwZWF0ZWRTbGFzaGVzKHVybEFzU3RyaW5nTm9Qcm90byk7XG4gICAgICAgIHVybEFzU3RyaW5nID0gKHVybFByb3RvTWF0Y2ggPyB1cmxQcm90b01hdGNoWzBdIDogJycpICsgbm9ybWFsaXplZFVybDtcbiAgICB9XG4gICAgLy8gUmV0dXJuIGJlY2F1c2UgaXQgY2Fubm90IGJlIHJvdXRlZCBieSB0aGUgTmV4dC5qcyByb3V0ZXJcbiAgICBpZiAoIWlzTG9jYWxVUkwodXJsQXNTdHJpbmcpKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlQXMgPyBbXG4gICAgICAgICAgICB1cmxBc1N0cmluZ1xuICAgICAgICBdIDogdXJsQXNTdHJpbmc7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIGJhc2UgPSBuZXcgVVJMKHVybEFzU3RyaW5nLnN0YXJ0c1dpdGgoJyMnKSA/IHJvdXRlci5hc1BhdGggOiByb3V0ZXIucGF0aG5hbWUsICdodHRwOi8vbicpO1xuICAgIH0gY2F0Y2ggKF8pIHtcbiAgICAgICAgLy8gZmFsbGJhY2sgdG8gLyBmb3IgaW52YWxpZCBhc1BhdGggdmFsdWVzIGUuZy4gLy9cbiAgICAgICAgYmFzZSA9IG5ldyBVUkwoJy8nLCAnaHR0cDovL24nKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZmluYWxVcmwgPSBuZXcgVVJMKHVybEFzU3RyaW5nLCBiYXNlKTtcbiAgICAgICAgZmluYWxVcmwucGF0aG5hbWUgPSAoMCwgX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2gpLm5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoKGZpbmFsVXJsLnBhdGhuYW1lKTtcbiAgICAgICAgbGV0IGludGVycG9sYXRlZEFzID0gJyc7XG4gICAgICAgIGlmICgoMCwgX2lzRHluYW1pYykuaXNEeW5hbWljUm91dGUoZmluYWxVcmwucGF0aG5hbWUpICYmIGZpbmFsVXJsLnNlYXJjaFBhcmFtcyAmJiByZXNvbHZlQXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHF1ZXJ5ID0gKDAsIF9xdWVyeXN0cmluZykuc2VhcmNoUGFyYW1zVG9VcmxRdWVyeShmaW5hbFVybC5zZWFyY2hQYXJhbXMpO1xuICAgICAgICAgICAgY29uc3QgeyByZXN1bHQgLCBwYXJhbXMgIH0gPSBpbnRlcnBvbGF0ZUFzKGZpbmFsVXJsLnBhdGhuYW1lLCBmaW5hbFVybC5wYXRobmFtZSwgcXVlcnkpO1xuICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgIGludGVycG9sYXRlZEFzID0gKDAsIF91dGlscykuZm9ybWF0V2l0aFZhbGlkYXRpb24oe1xuICAgICAgICAgICAgICAgICAgICBwYXRobmFtZTogcmVzdWx0LFxuICAgICAgICAgICAgICAgICAgICBoYXNoOiBmaW5hbFVybC5oYXNoLFxuICAgICAgICAgICAgICAgICAgICBxdWVyeTogb21pdFBhcm1zRnJvbVF1ZXJ5KHF1ZXJ5LCBwYXJhbXMpXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gaWYgdGhlIG9yaWdpbiBkaWRuJ3QgY2hhbmdlLCBpdCBtZWFucyB3ZSByZWNlaXZlZCBhIHJlbGF0aXZlIGhyZWZcbiAgICAgICAgY29uc3QgcmVzb2x2ZWRIcmVmID0gZmluYWxVcmwub3JpZ2luID09PSBiYXNlLm9yaWdpbiA/IGZpbmFsVXJsLmhyZWYuc2xpY2UoZmluYWxVcmwub3JpZ2luLmxlbmd0aCkgOiBmaW5hbFVybC5ocmVmO1xuICAgICAgICByZXR1cm4gcmVzb2x2ZUFzID8gW1xuICAgICAgICAgICAgcmVzb2x2ZWRIcmVmLFxuICAgICAgICAgICAgaW50ZXJwb2xhdGVkQXMgfHwgcmVzb2x2ZWRIcmVmXG4gICAgICAgIF0gOiByZXNvbHZlZEhyZWY7XG4gICAgfSBjYXRjaCAoXzEpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVBcyA/IFtcbiAgICAgICAgICAgIHVybEFzU3RyaW5nXG4gICAgICAgIF0gOiB1cmxBc1N0cmluZztcbiAgICB9XG59XG5mdW5jdGlvbiBzdHJpcE9yaWdpbih1cmwpIHtcbiAgICBjb25zdCBvcmlnaW4gPSAoMCwgX3V0aWxzKS5nZXRMb2NhdGlvbk9yaWdpbigpO1xuICAgIHJldHVybiB1cmwuc3RhcnRzV2l0aChvcmlnaW4pID8gdXJsLnN1YnN0cmluZyhvcmlnaW4ubGVuZ3RoKSA6IHVybDtcbn1cbmZ1bmN0aW9uIHByZXBhcmVVcmxBcyhyb3V0ZXIsIHVybCwgYXMpIHtcbiAgICAvLyBJZiB1cmwgYW5kIGFzIHByb3ZpZGVkIGFzIGFuIG9iamVjdCByZXByZXNlbnRhdGlvbixcbiAgICAvLyB3ZSdsbCBmb3JtYXQgdGhlbSBpbnRvIHRoZSBzdHJpbmcgdmVyc2lvbiBoZXJlLlxuICAgIGxldCBbcmVzb2x2ZWRIcmVmLCByZXNvbHZlZEFzXSA9IHJlc29sdmVIcmVmKHJvdXRlciwgdXJsLCB0cnVlKTtcbiAgICBjb25zdCBvcmlnaW4gPSAoMCwgX3V0aWxzKS5nZXRMb2NhdGlvbk9yaWdpbigpO1xuICAgIGNvbnN0IGhyZWZIYWRPcmlnaW4gPSByZXNvbHZlZEhyZWYuc3RhcnRzV2l0aChvcmlnaW4pO1xuICAgIGNvbnN0IGFzSGFkT3JpZ2luID0gcmVzb2x2ZWRBcyAmJiByZXNvbHZlZEFzLnN0YXJ0c1dpdGgob3JpZ2luKTtcbiAgICByZXNvbHZlZEhyZWYgPSBzdHJpcE9yaWdpbihyZXNvbHZlZEhyZWYpO1xuICAgIHJlc29sdmVkQXMgPSByZXNvbHZlZEFzID8gc3RyaXBPcmlnaW4ocmVzb2x2ZWRBcykgOiByZXNvbHZlZEFzO1xuICAgIGNvbnN0IHByZXBhcmVkVXJsID0gaHJlZkhhZE9yaWdpbiA/IHJlc29sdmVkSHJlZiA6IGFkZEJhc2VQYXRoKHJlc29sdmVkSHJlZik7XG4gICAgY29uc3QgcHJlcGFyZWRBcyA9IGFzID8gc3RyaXBPcmlnaW4ocmVzb2x2ZUhyZWYocm91dGVyLCBhcykpIDogcmVzb2x2ZWRBcyB8fCByZXNvbHZlZEhyZWY7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdXJsOiBwcmVwYXJlZFVybCxcbiAgICAgICAgYXM6IGFzSGFkT3JpZ2luID8gcHJlcGFyZWRBcyA6IGFkZEJhc2VQYXRoKHByZXBhcmVkQXMpXG4gICAgfTtcbn1cbmZ1bmN0aW9uIHJlc29sdmVEeW5hbWljUm91dGUocGF0aG5hbWUsIHBhZ2VzKSB7XG4gICAgY29uc3QgY2xlYW5QYXRobmFtZSA9ICgwLCBfbm9ybWFsaXplVHJhaWxpbmdTbGFzaCkucmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2goKDAsIF9kZW5vcm1hbGl6ZVBhZ2VQYXRoKS5kZW5vcm1hbGl6ZVBhZ2VQYXRoKHBhdGhuYW1lKSk7XG4gICAgaWYgKGNsZWFuUGF0aG5hbWUgPT09ICcvNDA0JyB8fCBjbGVhblBhdGhuYW1lID09PSAnL19lcnJvcicpIHtcbiAgICAgICAgcmV0dXJuIHBhdGhuYW1lO1xuICAgIH1cbiAgICAvLyBoYW5kbGUgcmVzb2x2aW5nIGhyZWYgZm9yIGR5bmFtaWMgcm91dGVzXG4gICAgaWYgKCFwYWdlcy5pbmNsdWRlcyhjbGVhblBhdGhuYW1lKSkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgYXJyYXktY2FsbGJhY2stcmV0dXJuXG4gICAgICAgIHBhZ2VzLnNvbWUoKHBhZ2UpPT57XG4gICAgICAgICAgICBpZiAoKDAsIF9pc0R5bmFtaWMpLmlzRHluYW1pY1JvdXRlKHBhZ2UpICYmICgwLCBfcm91dGVSZWdleCkuZ2V0Um91dGVSZWdleChwYWdlKS5yZS50ZXN0KGNsZWFuUGF0aG5hbWUpKSB7XG4gICAgICAgICAgICAgICAgcGF0aG5hbWUgPSBwYWdlO1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuICgwLCBfbm9ybWFsaXplVHJhaWxpbmdTbGFzaCkucmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2gocGF0aG5hbWUpO1xufVxuY29uc3QgbWFudWFsU2Nyb2xsUmVzdG9yYXRpb24gPSBwcm9jZXNzLmVudi5fX05FWFRfU0NST0xMX1JFU1RPUkFUSU9OICYmIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmICdzY3JvbGxSZXN0b3JhdGlvbicgaW4gd2luZG93Lmhpc3RvcnkgJiYgISFmdW5jdGlvbigpIHtcbiAgICB0cnkge1xuICAgICAgICBsZXQgdiA9ICdfX25leHQnO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VxdWVuY2VzXG4gICAgICAgIHJldHVybiBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHYsIHYpLCBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKHYpLCB0cnVlO1xuICAgIH0gY2F0Y2ggKG4pIHtcbiAgICB9XG59KCk7XG5jb25zdCBTU0dfREFUQV9OT1RfRk9VTkQgPSBTeW1ib2woJ1NTR19EQVRBX05PVF9GT1VORCcpO1xuZnVuY3Rpb24gZmV0Y2hSZXRyeSh1cmwsIGF0dGVtcHRzLCBvcHRzKSB7XG4gICAgcmV0dXJuIGZldGNoKHVybCwge1xuICAgICAgICAvLyBDb29raWVzIGFyZSByZXF1aXJlZCB0byBiZSBwcmVzZW50IGZvciBOZXh0LmpzJyBTU0cgXCJQcmV2aWV3IE1vZGVcIi5cbiAgICAgICAgLy8gQ29va2llcyBtYXkgYWxzbyBiZSByZXF1aXJlZCBmb3IgYGdldFNlcnZlclNpZGVQcm9wc2AuXG4gICAgICAgIC8vXG4gICAgICAgIC8vID4gYGZldGNoYCB3b27igJl0IHNlbmQgY29va2llcywgdW5sZXNzIHlvdSBzZXQgdGhlIGNyZWRlbnRpYWxzIGluaXRcbiAgICAgICAgLy8gPiBvcHRpb24uXG4gICAgICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9GZXRjaF9BUEkvVXNpbmdfRmV0Y2hcbiAgICAgICAgLy9cbiAgICAgICAgLy8gPiBGb3IgbWF4aW11bSBicm93c2VyIGNvbXBhdGliaWxpdHkgd2hlbiBpdCBjb21lcyB0byBzZW5kaW5nICZcbiAgICAgICAgLy8gPiByZWNlaXZpbmcgY29va2llcywgYWx3YXlzIHN1cHBseSB0aGUgYGNyZWRlbnRpYWxzOiAnc2FtZS1vcmlnaW4nYFxuICAgICAgICAvLyA+IG9wdGlvbiBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gdGhlIGRlZmF1bHQuXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9naXRodWIvZmV0Y2gjY2F2ZWF0c1xuICAgICAgICBjcmVkZW50aWFsczogJ3NhbWUtb3JpZ2luJ1xuICAgIH0pLnRoZW4oKHJlcyk9PntcbiAgICAgICAgaWYgKCFyZXMub2spIHtcbiAgICAgICAgICAgIGlmIChhdHRlbXB0cyA+IDEgJiYgcmVzLnN0YXR1cyA+PSA1MDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmV0Y2hSZXRyeSh1cmwsIGF0dGVtcHRzIC0gMSwgb3B0cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocmVzLnN0YXR1cyA9PT0gNDA0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlcy5qc29uKCkudGhlbigoZGF0YSk9PntcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEubm90Rm91bmQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90Rm91bmQ6IFNTR19EQVRBX05PVF9GT1VORFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBsb2FkIHN0YXRpYyBwcm9wc2ApO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gbG9hZCBzdGF0aWMgcHJvcHNgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3B0cy50ZXh0ID8gcmVzLnRleHQoKSA6IHJlcy5qc29uKCk7XG4gICAgfSk7XG59XG5mdW5jdGlvbiBmZXRjaE5leHREYXRhKGRhdGFIcmVmLCBpc1NlcnZlclJlbmRlciwgdGV4dCwgaW5mbGlnaHRDYWNoZSwgcGVyc2lzdENhY2hlKSB7XG4gICAgY29uc3QgeyBocmVmOiBjYWNoZUtleSAgfSA9IG5ldyBVUkwoZGF0YUhyZWYsIHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcbiAgICBpZiAoaW5mbGlnaHRDYWNoZVtjYWNoZUtleV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gaW5mbGlnaHRDYWNoZVtjYWNoZUtleV07XG4gICAgfVxuICAgIHJldHVybiBpbmZsaWdodENhY2hlW2NhY2hlS2V5XSA9IGZldGNoUmV0cnkoZGF0YUhyZWYsIGlzU2VydmVyUmVuZGVyID8gMyA6IDEsIHtcbiAgICAgICAgdGV4dFxuICAgIH0pLmNhdGNoKChlcnIpPT57XG4gICAgICAgIC8vIFdlIHNob3VsZCBvbmx5IHRyaWdnZXIgYSBzZXJ2ZXItc2lkZSB0cmFuc2l0aW9uIGlmIHRoaXMgd2FzIGNhdXNlZFxuICAgICAgICAvLyBvbiBhIGNsaWVudC1zaWRlIHRyYW5zaXRpb24uIE90aGVyd2lzZSwgd2UnZCBnZXQgaW50byBhbiBpbmZpbml0ZVxuICAgICAgICAvLyBsb29wLlxuICAgICAgICBpZiAoIWlzU2VydmVyUmVuZGVyKSB7XG4gICAgICAgICAgICAoMCwgX3JvdXRlTG9hZGVyKS5tYXJrQXNzZXRFcnJvcihlcnIpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IGVycjtcbiAgICB9KS50aGVuKChkYXRhKT0+e1xuICAgICAgICBpZiAoIXBlcnNpc3RDYWNoZSB8fCBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICBkZWxldGUgaW5mbGlnaHRDYWNoZVtjYWNoZUtleV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfSkuY2F0Y2goKGVycik9PntcbiAgICAgICAgZGVsZXRlIGluZmxpZ2h0Q2FjaGVbY2FjaGVLZXldO1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgfSk7XG59XG5jbGFzcyBSb3V0ZXIge1xuICAgIGNvbnN0cnVjdG9yKHBhdGhuYW1lLCBxdWVyeSwgYXMsIHsgaW5pdGlhbFByb3BzICwgcGFnZUxvYWRlciAsIEFwcCAsIHdyYXBBcHAgLCBDb21wb25lbnQgLCBlcnIgLCBzdWJzY3JpcHRpb24gLCBpc0ZhbGxiYWNrICwgbG9jYWxlICwgbG9jYWxlcyAsIGRlZmF1bHRMb2NhbGUgLCBkb21haW5Mb2NhbGVzICwgaXNQcmV2aWV3ICB9KXtcbiAgICAgICAgLy8gU3RhdGljIERhdGEgQ2FjaGVcbiAgICAgICAgdGhpcy5zZGMgPSB7XG4gICAgICAgIH07XG4gICAgICAgIC8vIEluLWZsaWdodCBTZXJ2ZXIgRGF0YSBSZXF1ZXN0cywgZm9yIGRlZHVwaW5nXG4gICAgICAgIHRoaXMuc2RyID0ge1xuICAgICAgICB9O1xuICAgICAgICAvLyBJbi1mbGlnaHQgbWlkZGxld2FyZSBwcmVmbGlnaHQgcmVxdWVzdHNcbiAgICAgICAgdGhpcy5zZGUgPSB7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuX2lkeCA9IDA7XG4gICAgICAgIHRoaXMub25Qb3BTdGF0ZSA9IChlKT0+e1xuICAgICAgICAgICAgY29uc3Qgc3RhdGUgPSBlLnN0YXRlO1xuICAgICAgICAgICAgaWYgKCFzdGF0ZSkge1xuICAgICAgICAgICAgICAgIC8vIFdlIGdldCBzdGF0ZSBhcyB1bmRlZmluZWQgZm9yIHR3byByZWFzb25zLlxuICAgICAgICAgICAgICAgIC8vICAxLiBXaXRoIG9sZGVyIHNhZmFyaSAoPCA4KSBhbmQgb2xkZXIgY2hyb21lICg8IDM0KVxuICAgICAgICAgICAgICAgIC8vICAyLiBXaGVuIHRoZSBVUkwgY2hhbmdlZCB3aXRoICNcbiAgICAgICAgICAgICAgICAvL1xuICAgICAgICAgICAgICAgIC8vIEluIHRoZSBib3RoIGNhc2VzLCB3ZSBkb24ndCBuZWVkIHRvIHByb2NlZWQgYW5kIGNoYW5nZSB0aGUgcm91dGUuXG4gICAgICAgICAgICAgICAgLy8gKGFzIGl0J3MgYWxyZWFkeSBjaGFuZ2VkKVxuICAgICAgICAgICAgICAgIC8vIEJ1dCB3ZSBjYW4gc2ltcGx5IHJlcGxhY2UgdGhlIHN0YXRlIHdpdGggdGhlIG5ldyBjaGFuZ2VzLlxuICAgICAgICAgICAgICAgIC8vIEFjdHVhbGx5LCBmb3IgKDEpIHdlIGRvbid0IG5lZWQgdG8gbm90aGluZy4gQnV0IGl0J3MgaGFyZCB0byBkZXRlY3QgdGhhdCBldmVudC5cbiAgICAgICAgICAgICAgICAvLyBTbywgZG9pbmcgdGhlIGZvbGxvd2luZyBmb3IgKDEpIGRvZXMgbm8gaGFybS5cbiAgICAgICAgICAgICAgICBjb25zdCB7IHBhdGhuYW1lICwgcXVlcnkgIH0gPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlU3RhdGUoJ3JlcGxhY2VTdGF0ZScsICgwLCBfdXRpbHMpLmZvcm1hdFdpdGhWYWxpZGF0aW9uKHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWU6IGFkZEJhc2VQYXRoKHBhdGhuYW1lKSxcbiAgICAgICAgICAgICAgICAgICAgcXVlcnlcbiAgICAgICAgICAgICAgICB9KSwgKDAsIF91dGlscykuZ2V0VVJMKCkpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghc3RhdGUuX19OKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IGZvcmNlZFNjcm9sbDtcbiAgICAgICAgICAgIGNvbnN0IHsgdXJsICwgYXMgLCBvcHRpb25zICwgaWR4ICB9ID0gc3RhdGU7XG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX1NDUk9MTF9SRVNUT1JBVElPTikge1xuICAgICAgICAgICAgICAgIGlmIChtYW51YWxTY3JvbGxSZXN0b3JhdGlvbikge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5faWR4ICE9PSBpZHgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNuYXBzaG90IGN1cnJlbnQgc2Nyb2xsIHBvc2l0aW9uOlxuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdfX25leHRfc2Nyb2xsXycgKyB0aGlzLl9pZHgsIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDogc2VsZi5wYWdlWE9mZnNldCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeTogc2VsZi5wYWdlWU9mZnNldFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlc3RvcmUgb2xkIHNjcm9sbCBwb3NpdGlvbjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdiA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ19fbmV4dF9zY3JvbGxfJyArIGlkeCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yY2VkU2Nyb2xsID0gSlNPTi5wYXJzZSh2KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JjZWRTY3JvbGwgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHg6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHk6IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5faWR4ID0gaWR4O1xuICAgICAgICAgICAgY29uc3QgeyBwYXRobmFtZSAgfSA9ICgwLCBfcGFyc2VSZWxhdGl2ZVVybCkucGFyc2VSZWxhdGl2ZVVybCh1cmwpO1xuICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHdlIGRvbid0IHJlLXJlbmRlciBvbiBpbml0aWFsIGxvYWQsXG4gICAgICAgICAgICAvLyBjYW4gYmUgY2F1c2VkIGJ5IG5hdmlnYXRpbmcgYmFjayBmcm9tIGFuIGV4dGVybmFsIHNpdGVcbiAgICAgICAgICAgIGlmICh0aGlzLmlzU3NyICYmIGFzID09PSB0aGlzLmFzUGF0aCAmJiBwYXRobmFtZSA9PT0gdGhpcy5wYXRobmFtZSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIElmIHRoZSBkb3duc3RyZWFtIGFwcGxpY2F0aW9uIHJldHVybnMgZmFsc3ksIHJldHVybi5cbiAgICAgICAgICAgIC8vIFRoZXkgd2lsbCB0aGVuIGJlIHJlc3BvbnNpYmxlIGZvciBoYW5kbGluZyB0aGUgZXZlbnQuXG4gICAgICAgICAgICBpZiAodGhpcy5fYnBzICYmICF0aGlzLl9icHMoc3RhdGUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jaGFuZ2UoJ3JlcGxhY2VTdGF0ZScsIHVybCwgYXMsIE9iamVjdC5hc3NpZ24oe1xuICAgICAgICAgICAgfSwgb3B0aW9ucywge1xuICAgICAgICAgICAgICAgIHNoYWxsb3c6IG9wdGlvbnMuc2hhbGxvdyAmJiB0aGlzLl9zaGFsbG93LFxuICAgICAgICAgICAgICAgIGxvY2FsZTogb3B0aW9ucy5sb2NhbGUgfHwgdGhpcy5kZWZhdWx0TG9jYWxlXG4gICAgICAgICAgICB9KSwgZm9yY2VkU2Nyb2xsKTtcbiAgICAgICAgfTtcbiAgICAgICAgLy8gcmVwcmVzZW50cyB0aGUgY3VycmVudCBjb21wb25lbnQga2V5XG4gICAgICAgIHRoaXMucm91dGUgPSAoMCwgX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2gpLnJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoKHBhdGhuYW1lKTtcbiAgICAgICAgLy8gc2V0IHVwIHRoZSBjb21wb25lbnQgY2FjaGUgKGJ5IHJvdXRlIGtleXMpXG4gICAgICAgIHRoaXMuY29tcG9uZW50cyA9IHtcbiAgICAgICAgfTtcbiAgICAgICAgLy8gV2Ugc2hvdWxkIG5vdCBrZWVwIHRoZSBjYWNoZSwgaWYgdGhlcmUncyBhbiBlcnJvclxuICAgICAgICAvLyBPdGhlcndpc2UsIHRoaXMgY2F1c2UgaXNzdWVzIHdoZW4gd2hlbiBnb2luZyBiYWNrIGFuZFxuICAgICAgICAvLyBjb21lIGFnYWluIHRvIHRoZSBlcnJvcmVkIHBhZ2UuXG4gICAgICAgIGlmIChwYXRobmFtZSAhPT0gJy9fZXJyb3InKSB7XG4gICAgICAgICAgICB2YXIgcmVmO1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRzW3RoaXMucm91dGVdID0ge1xuICAgICAgICAgICAgICAgIENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBpbml0aWFsOiB0cnVlLFxuICAgICAgICAgICAgICAgIHByb3BzOiBpbml0aWFsUHJvcHMsXG4gICAgICAgICAgICAgICAgZXJyLFxuICAgICAgICAgICAgICAgIF9fTl9TU0c6IGluaXRpYWxQcm9wcyAmJiBpbml0aWFsUHJvcHMuX19OX1NTRyxcbiAgICAgICAgICAgICAgICBfX05fU1NQOiBpbml0aWFsUHJvcHMgJiYgaW5pdGlhbFByb3BzLl9fTl9TU1AsXG4gICAgICAgICAgICAgICAgX19OX1JTQzogISEoKHJlZiA9IENvbXBvbmVudCkgPT09IG51bGwgfHwgcmVmID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZWYuX19uZXh0X3JzY19fKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbXBvbmVudHNbJy9fYXBwJ10gPSB7XG4gICAgICAgICAgICBDb21wb25lbnQ6IEFwcCxcbiAgICAgICAgICAgIHN0eWxlU2hlZXRzOiBbXVxuICAgICAgICB9O1xuICAgICAgICAvLyBCYWNrd2FyZHMgY29tcGF0IGZvciBSb3V0ZXIucm91dGVyLmV2ZW50c1xuICAgICAgICAvLyBUT0RPOiBTaG91bGQgYmUgcmVtb3ZlIHRoZSBmb2xsb3dpbmcgbWFqb3IgdmVyc2lvbiBhcyBpdCB3YXMgbmV2ZXIgZG9jdW1lbnRlZFxuICAgICAgICB0aGlzLmV2ZW50cyA9IFJvdXRlci5ldmVudHM7XG4gICAgICAgIHRoaXMucGFnZUxvYWRlciA9IHBhZ2VMb2FkZXI7XG4gICAgICAgIHRoaXMucGF0aG5hbWUgPSBwYXRobmFtZTtcbiAgICAgICAgdGhpcy5xdWVyeSA9IHF1ZXJ5O1xuICAgICAgICAvLyBpZiBhdXRvIHByZXJlbmRlcmVkIGFuZCBkeW5hbWljIHJvdXRlIHdhaXQgdG8gdXBkYXRlIGFzUGF0aFxuICAgICAgICAvLyB1bnRpbCBhZnRlciBtb3VudCB0byBwcmV2ZW50IGh5ZHJhdGlvbiBtaXNtYXRjaFxuICAgICAgICBjb25zdCBhdXRvRXhwb3J0RHluYW1pYyA9ICgwLCBfaXNEeW5hbWljKS5pc0R5bmFtaWNSb3V0ZShwYXRobmFtZSkgJiYgc2VsZi5fX05FWFRfREFUQV9fLmF1dG9FeHBvcnQ7XG4gICAgICAgIHRoaXMuYXNQYXRoID0gYXV0b0V4cG9ydER5bmFtaWMgPyBwYXRobmFtZSA6IGFzO1xuICAgICAgICB0aGlzLmJhc2VQYXRoID0gYmFzZVBhdGg7XG4gICAgICAgIHRoaXMuc3ViID0gc3Vic2NyaXB0aW9uO1xuICAgICAgICB0aGlzLmNsYyA9IG51bGw7XG4gICAgICAgIHRoaXMuX3dyYXBBcHAgPSB3cmFwQXBwO1xuICAgICAgICAvLyBtYWtlIHN1cmUgdG8gaWdub3JlIGV4dHJhIHBvcFN0YXRlIGluIHNhZmFyaSBvbiBuYXZpZ2F0aW5nXG4gICAgICAgIC8vIGJhY2sgZnJvbSBleHRlcm5hbCBzaXRlXG4gICAgICAgIHRoaXMuaXNTc3IgPSB0cnVlO1xuICAgICAgICB0aGlzLmlzRmFsbGJhY2sgPSBpc0ZhbGxiYWNrO1xuICAgICAgICB0aGlzLmlzUmVhZHkgPSAhIShzZWxmLl9fTkVYVF9EQVRBX18uZ3NzcCB8fCBzZWxmLl9fTkVYVF9EQVRBX18uZ2lwIHx8IHNlbGYuX19ORVhUX0RBVEFfXy5hcHBHaXAgJiYgIXNlbGYuX19ORVhUX0RBVEFfXy5nc3AgfHwgIWF1dG9FeHBvcnREeW5hbWljICYmICFzZWxmLmxvY2F0aW9uLnNlYXJjaCAmJiAhcHJvY2Vzcy5lbnYuX19ORVhUX0hBU19SRVdSSVRFUyk7XG4gICAgICAgIHRoaXMuaXNQcmV2aWV3ID0gISFpc1ByZXZpZXc7XG4gICAgICAgIHRoaXMuaXNMb2NhbGVEb21haW4gPSBmYWxzZTtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9JMThOX1NVUFBPUlQpIHtcbiAgICAgICAgICAgIHRoaXMubG9jYWxlID0gbG9jYWxlO1xuICAgICAgICAgICAgdGhpcy5sb2NhbGVzID0gbG9jYWxlcztcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdExvY2FsZSA9IGRlZmF1bHRMb2NhbGU7XG4gICAgICAgICAgICB0aGlzLmRvbWFpbkxvY2FsZXMgPSBkb21haW5Mb2NhbGVzO1xuICAgICAgICAgICAgdGhpcy5pc0xvY2FsZURvbWFpbiA9ICEhZGV0ZWN0RG9tYWluTG9jYWxlKGRvbWFpbkxvY2FsZXMsIHNlbGYubG9jYXRpb24uaG9zdG5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgLy8gbWFrZSBzdXJlIFwiYXNcIiBkb2Vzbid0IHN0YXJ0IHdpdGggZG91YmxlIHNsYXNoZXMgb3IgZWxzZSBpdCBjYW5cbiAgICAgICAgICAgIC8vIHRocm93IGFuIGVycm9yIGFzIGl0J3MgY29uc2lkZXJlZCBpbnZhbGlkXG4gICAgICAgICAgICBpZiAoYXMuc3Vic3RyKDAsIDIpICE9PSAnLy8nKSB7XG4gICAgICAgICAgICAgICAgLy8gaW4gb3JkZXIgZm9yIGBlLnN0YXRlYCB0byB3b3JrIG9uIHRoZSBgb25wb3BzdGF0ZWAgZXZlbnRcbiAgICAgICAgICAgICAgICAvLyB3ZSBoYXZlIHRvIHJlZ2lzdGVyIHRoZSBpbml0aWFsIHJvdXRlIHVwb24gaW5pdGlhbGl6YXRpb25cbiAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICBsb2NhbGVcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIG9wdGlvbnMuX3Nob3VsZFJlc29sdmVIcmVmID0gYXMgIT09IHBhdGhuYW1lO1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlU3RhdGUoJ3JlcGxhY2VTdGF0ZScsICgwLCBfdXRpbHMpLmZvcm1hdFdpdGhWYWxpZGF0aW9uKHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWU6IGFkZEJhc2VQYXRoKHBhdGhuYW1lKSxcbiAgICAgICAgICAgICAgICAgICAgcXVlcnlcbiAgICAgICAgICAgICAgICB9KSwgKDAsIF91dGlscykuZ2V0VVJMKCksIG9wdGlvbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvcHN0YXRlJywgdGhpcy5vblBvcFN0YXRlKTtcbiAgICAgICAgICAgIC8vIGVuYWJsZSBjdXN0b20gc2Nyb2xsIHJlc3RvcmF0aW9uIGhhbmRsaW5nIHdoZW4gYXZhaWxhYmxlXG4gICAgICAgICAgICAvLyBvdGhlcndpc2UgZmFsbGJhY2sgdG8gYnJvd3NlcidzIGRlZmF1bHQgaGFuZGxpbmdcbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfU0NST0xMX1JFU1RPUkFUSU9OKSB7XG4gICAgICAgICAgICAgICAgaWYgKG1hbnVhbFNjcm9sbFJlc3RvcmF0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5oaXN0b3J5LnNjcm9sbFJlc3RvcmF0aW9uID0gJ21hbnVhbCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJlbG9hZCgpIHtcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuICAgIH1cbiAgICAvKipcbiAgICogR28gYmFjayBpbiBoaXN0b3J5XG4gICAqLyBiYWNrKCkge1xuICAgICAgICB3aW5kb3cuaGlzdG9yeS5iYWNrKCk7XG4gICAgfVxuICAgIC8qKlxuICAgKiBQZXJmb3JtcyBhIGBwdXNoU3RhdGVgIHdpdGggYXJndW1lbnRzXG4gICAqIEBwYXJhbSB1cmwgb2YgdGhlIHJvdXRlXG4gICAqIEBwYXJhbSBhcyBtYXNrcyBgdXJsYCBmb3IgdGhlIGJyb3dzZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgb2JqZWN0IHlvdSBjYW4gZGVmaW5lIGBzaGFsbG93YCBhbmQgb3RoZXIgb3B0aW9uc1xuICAgKi8gcHVzaCh1cmwsIGFzLCBvcHRpb25zID0ge1xuICAgIH0pIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9TQ1JPTExfUkVTVE9SQVRJT04pIHtcbiAgICAgICAgICAgIC8vIFRPRE86IHJlbW92ZSBpbiB0aGUgZnV0dXJlIHdoZW4gd2UgdXBkYXRlIGhpc3RvcnkgYmVmb3JlIHJvdXRlIGNoYW5nZVxuICAgICAgICAgICAgLy8gaXMgY29tcGxldGUsIGFzIHRoZSBwb3BzdGF0ZSBldmVudCBzaG91bGQgaGFuZGxlIHRoaXMgY2FwdHVyZS5cbiAgICAgICAgICAgIGlmIChtYW51YWxTY3JvbGxSZXN0b3JhdGlvbikge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFNuYXBzaG90IHNjcm9sbCBwb3NpdGlvbiByaWdodCBiZWZvcmUgbmF2aWdhdGluZyB0byBhIG5ldyBwYWdlOlxuICAgICAgICAgICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdfX25leHRfc2Nyb2xsXycgKyB0aGlzLl9pZHgsIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHg6IHNlbGYucGFnZVhPZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgICAgICB5OiBzZWxmLnBhZ2VZT2Zmc2V0XG4gICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoICB7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICh7IHVybCAsIGFzICB9ID0gcHJlcGFyZVVybEFzKHRoaXMsIHVybCwgYXMpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hhbmdlKCdwdXNoU3RhdGUnLCB1cmwsIGFzLCBvcHRpb25zKTtcbiAgICB9XG4gICAgLyoqXG4gICAqIFBlcmZvcm1zIGEgYHJlcGxhY2VTdGF0ZWAgd2l0aCBhcmd1bWVudHNcbiAgICogQHBhcmFtIHVybCBvZiB0aGUgcm91dGVcbiAgICogQHBhcmFtIGFzIG1hc2tzIGB1cmxgIGZvciB0aGUgYnJvd3NlclxuICAgKiBAcGFyYW0gb3B0aW9ucyBvYmplY3QgeW91IGNhbiBkZWZpbmUgYHNoYWxsb3dgIGFuZCBvdGhlciBvcHRpb25zXG4gICAqLyByZXBsYWNlKHVybCwgYXMsIG9wdGlvbnMgPSB7XG4gICAgfSkge1xuICAgICAgICAoeyB1cmwgLCBhcyAgfSA9IHByZXBhcmVVcmxBcyh0aGlzLCB1cmwsIGFzKSk7XG4gICAgICAgIHJldHVybiB0aGlzLmNoYW5nZSgncmVwbGFjZVN0YXRlJywgdXJsLCBhcywgb3B0aW9ucyk7XG4gICAgfVxuICAgIGFzeW5jIGNoYW5nZShtZXRob2QsIHVybCwgYXMsIG9wdGlvbnMsIGZvcmNlZFNjcm9sbCkge1xuICAgICAgICBpZiAoIWlzTG9jYWxVUkwodXJsKSkge1xuICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB1cmw7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2hvdWxkUmVzb2x2ZUhyZWYgPSBvcHRpb25zLl9oIHx8IG9wdGlvbnMuX3Nob3VsZFJlc29sdmVIcmVmIHx8IHBhdGhOb1F1ZXJ5SGFzaCh1cmwpID09PSBwYXRoTm9RdWVyeUhhc2goYXMpO1xuICAgICAgICAvLyBmb3Igc3RhdGljIHBhZ2VzIHdpdGggcXVlcnkgcGFyYW1zIGluIHRoZSBVUkwgd2UgZGVsYXlcbiAgICAgICAgLy8gbWFya2luZyB0aGUgcm91dGVyIHJlYWR5IHVudGlsIGFmdGVyIHRoZSBxdWVyeSBpcyB1cGRhdGVkXG4gICAgICAgIGlmIChvcHRpb25zLl9oKSB7XG4gICAgICAgICAgICB0aGlzLmlzUmVhZHkgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHByZXZMb2NhbGUgPSB0aGlzLmxvY2FsZTtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9JMThOX1NVUFBPUlQpIHtcbiAgICAgICAgICAgIHRoaXMubG9jYWxlID0gb3B0aW9ucy5sb2NhbGUgPT09IGZhbHNlID8gdGhpcy5kZWZhdWx0TG9jYWxlIDogb3B0aW9ucy5sb2NhbGUgfHwgdGhpcy5sb2NhbGU7XG4gICAgICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMubG9jYWxlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMubG9jYWxlID0gdGhpcy5sb2NhbGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBwYXJzZWRBcyA9ICgwLCBfcGFyc2VSZWxhdGl2ZVVybCkucGFyc2VSZWxhdGl2ZVVybChoYXNCYXNlUGF0aChhcykgPyBkZWxCYXNlUGF0aChhcykgOiBhcyk7XG4gICAgICAgICAgICBjb25zdCBsb2NhbGVQYXRoUmVzdWx0ID0gKDAsIF9ub3JtYWxpemVMb2NhbGVQYXRoKS5ub3JtYWxpemVMb2NhbGVQYXRoKHBhcnNlZEFzLnBhdGhuYW1lLCB0aGlzLmxvY2FsZXMpO1xuICAgICAgICAgICAgaWYgKGxvY2FsZVBhdGhSZXN1bHQuZGV0ZWN0ZWRMb2NhbGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvY2FsZSA9IGxvY2FsZVBhdGhSZXN1bHQuZGV0ZWN0ZWRMb2NhbGU7XG4gICAgICAgICAgICAgICAgcGFyc2VkQXMucGF0aG5hbWUgPSBhZGRCYXNlUGF0aChwYXJzZWRBcy5wYXRobmFtZSk7XG4gICAgICAgICAgICAgICAgYXMgPSAoMCwgX3V0aWxzKS5mb3JtYXRXaXRoVmFsaWRhdGlvbihwYXJzZWRBcyk7XG4gICAgICAgICAgICAgICAgdXJsID0gYWRkQmFzZVBhdGgoKDAsIF9ub3JtYWxpemVMb2NhbGVQYXRoKS5ub3JtYWxpemVMb2NhbGVQYXRoKGhhc0Jhc2VQYXRoKHVybCkgPyBkZWxCYXNlUGF0aCh1cmwpIDogdXJsLCB0aGlzLmxvY2FsZXMpLnBhdGhuYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBkaWROYXZpZ2F0ZSA9IGZhbHNlO1xuICAgICAgICAgICAgLy8gd2UgbmVlZCB0byB3cmFwIHRoaXMgaW4gdGhlIGVudiBjaGVjayBhZ2FpbiBzaW5jZSByZWdlbmVyYXRvciBydW50aW1lXG4gICAgICAgICAgICAvLyBtb3ZlcyB0aGlzIG9uIGl0cyBvd24gZHVlIHRvIHRoZSByZXR1cm5cbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgICAgICAgICAgICAgdmFyIHJlZjtcbiAgICAgICAgICAgICAgICAvLyBpZiB0aGUgbG9jYWxlIGlzbid0IGNvbmZpZ3VyZWQgaGFyZCBuYXZpZ2F0ZSB0byBzaG93IDQwNCBwYWdlXG4gICAgICAgICAgICAgICAgaWYgKCEoKHJlZiA9IHRoaXMubG9jYWxlcykgPT09IG51bGwgfHwgcmVmID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZWYuaW5jbHVkZXModGhpcy5sb2NhbGUpKSkge1xuICAgICAgICAgICAgICAgICAgICBwYXJzZWRBcy5wYXRobmFtZSA9IGFkZExvY2FsZShwYXJzZWRBcy5wYXRobmFtZSwgdGhpcy5sb2NhbGUpO1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICgwLCBfdXRpbHMpLmZvcm1hdFdpdGhWYWxpZGF0aW9uKHBhcnNlZEFzKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyB3YXMgcHJldmlvdXNseSBhIHJldHVybiBidXQgd2FzIHJlbW92ZWQgaW4gZmF2b3JcbiAgICAgICAgICAgICAgICAgICAgLy8gb2YgYmV0dGVyIGRlYWQgY29kZSBlbGltaW5hdGlvbiB3aXRoIHJlZ2VuZXJhdG9yIHJ1bnRpbWVcbiAgICAgICAgICAgICAgICAgICAgZGlkTmF2aWdhdGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGRldGVjdGVkRG9tYWluID0gZGV0ZWN0RG9tYWluTG9jYWxlKHRoaXMuZG9tYWluTG9jYWxlcywgdW5kZWZpbmVkLCB0aGlzLmxvY2FsZSk7XG4gICAgICAgICAgICAvLyB3ZSBuZWVkIHRvIHdyYXAgdGhpcyBpbiB0aGUgZW52IGNoZWNrIGFnYWluIHNpbmNlIHJlZ2VuZXJhdG9yIHJ1bnRpbWVcbiAgICAgICAgICAgIC8vIG1vdmVzIHRoaXMgb24gaXRzIG93biBkdWUgdG8gdGhlIHJldHVyblxuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9JMThOX1NVUFBPUlQpIHtcbiAgICAgICAgICAgICAgICAvLyBpZiB3ZSBhcmUgbmF2aWdhdGluZyB0byBhIGRvbWFpbiBsb2NhbGUgZW5zdXJlIHdlIHJlZGlyZWN0IHRvIHRoZVxuICAgICAgICAgICAgICAgIC8vIGNvcnJlY3QgZG9tYWluXG4gICAgICAgICAgICAgICAgaWYgKCFkaWROYXZpZ2F0ZSAmJiBkZXRlY3RlZERvbWFpbiAmJiB0aGlzLmlzTG9jYWxlRG9tYWluICYmIHNlbGYubG9jYXRpb24uaG9zdG5hbWUgIT09IGRldGVjdGVkRG9tYWluLmRvbWFpbikge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhc05vQmFzZVBhdGggPSBkZWxCYXNlUGF0aChhcyk7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYGh0dHAke2RldGVjdGVkRG9tYWluLmh0dHAgPyAnJyA6ICdzJ306Ly8ke2RldGVjdGVkRG9tYWluLmRvbWFpbn0ke2FkZEJhc2VQYXRoKGAke3RoaXMubG9jYWxlID09PSBkZXRlY3RlZERvbWFpbi5kZWZhdWx0TG9jYWxlID8gJycgOiBgLyR7dGhpcy5sb2NhbGV9YH0ke2FzTm9CYXNlUGF0aCA9PT0gJy8nID8gJycgOiBhc05vQmFzZVBhdGh9YCB8fCAnLycpfWA7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgd2FzIHByZXZpb3VzbHkgYSByZXR1cm4gYnV0IHdhcyByZW1vdmVkIGluIGZhdm9yXG4gICAgICAgICAgICAgICAgICAgIC8vIG9mIGJldHRlciBkZWFkIGNvZGUgZWxpbWluYXRpb24gd2l0aCByZWdlbmVyYXRvciBydW50aW1lXG4gICAgICAgICAgICAgICAgICAgIGRpZE5hdmlnYXRlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGlkTmF2aWdhdGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKCk9PntcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIW9wdGlvbnMuX2gpIHtcbiAgICAgICAgICAgIHRoaXMuaXNTc3IgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBtYXJraW5nIHJvdXRlIGNoYW5nZXMgYXMgYSBuYXZpZ2F0aW9uIHN0YXJ0IGVudHJ5XG4gICAgICAgIGlmIChfdXRpbHMuU1QpIHtcbiAgICAgICAgICAgIHBlcmZvcm1hbmNlLm1hcmsoJ3JvdXRlQ2hhbmdlJyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyBzaGFsbG93ID1mYWxzZSAgfSA9IG9wdGlvbnM7XG4gICAgICAgIGNvbnN0IHJvdXRlUHJvcHMgPSB7XG4gICAgICAgICAgICBzaGFsbG93XG4gICAgICAgIH07XG4gICAgICAgIGlmICh0aGlzLl9pbkZsaWdodFJvdXRlKSB7XG4gICAgICAgICAgICB0aGlzLmFib3J0Q29tcG9uZW50TG9hZCh0aGlzLl9pbkZsaWdodFJvdXRlLCByb3V0ZVByb3BzKTtcbiAgICAgICAgfVxuICAgICAgICBhcyA9IGFkZEJhc2VQYXRoKGFkZExvY2FsZShoYXNCYXNlUGF0aChhcykgPyBkZWxCYXNlUGF0aChhcykgOiBhcywgb3B0aW9ucy5sb2NhbGUsIHRoaXMuZGVmYXVsdExvY2FsZSkpO1xuICAgICAgICBjb25zdCBjbGVhbmVkQXMgPSBkZWxMb2NhbGUoaGFzQmFzZVBhdGgoYXMpID8gZGVsQmFzZVBhdGgoYXMpIDogYXMsIHRoaXMubG9jYWxlKTtcbiAgICAgICAgdGhpcy5faW5GbGlnaHRSb3V0ZSA9IGFzO1xuICAgICAgICBsZXQgbG9jYWxlQ2hhbmdlID0gcHJldkxvY2FsZSAhPT0gdGhpcy5sb2NhbGU7XG4gICAgICAgIC8vIElmIHRoZSB1cmwgY2hhbmdlIGlzIG9ubHkgcmVsYXRlZCB0byBhIGhhc2ggY2hhbmdlXG4gICAgICAgIC8vIFdlIHNob3VsZCBub3QgcHJvY2VlZC4gV2Ugc2hvdWxkIG9ubHkgY2hhbmdlIHRoZSBzdGF0ZS5cbiAgICAgICAgLy8gV0FSTklORzogYF9oYCBpcyBhbiBpbnRlcm5hbCBvcHRpb24gZm9yIGhhbmRpbmcgTmV4dC5qcyBjbGllbnQtc2lkZVxuICAgICAgICAvLyBoeWRyYXRpb24uIFlvdXIgYXBwIHNob3VsZCBfbmV2ZXJfIHVzZSB0aGlzIHByb3BlcnR5LiBJdCBtYXkgY2hhbmdlIGF0XG4gICAgICAgIC8vIGFueSB0aW1lIHdpdGhvdXQgbm90aWNlLlxuICAgICAgICBpZiAoIW9wdGlvbnMuX2ggJiYgdGhpcy5vbmx5QUhhc2hDaGFuZ2UoY2xlYW5lZEFzKSAmJiAhbG9jYWxlQ2hhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLmFzUGF0aCA9IGNsZWFuZWRBcztcbiAgICAgICAgICAgIFJvdXRlci5ldmVudHMuZW1pdCgnaGFzaENoYW5nZVN0YXJ0JywgYXMsIHJvdXRlUHJvcHMpO1xuICAgICAgICAgICAgLy8gVE9ETzogZG8gd2UgbmVlZCB0aGUgcmVzb2x2ZWQgaHJlZiB3aGVuIG9ubHkgYSBoYXNoIGNoYW5nZT9cbiAgICAgICAgICAgIHRoaXMuY2hhbmdlU3RhdGUobWV0aG9kLCB1cmwsIGFzLCBvcHRpb25zKTtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsVG9IYXNoKGNsZWFuZWRBcyk7XG4gICAgICAgICAgICB0aGlzLm5vdGlmeSh0aGlzLmNvbXBvbmVudHNbdGhpcy5yb3V0ZV0sIG51bGwpO1xuICAgICAgICAgICAgUm91dGVyLmV2ZW50cy5lbWl0KCdoYXNoQ2hhbmdlQ29tcGxldGUnLCBhcywgcm91dGVQcm9wcyk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgcGFyc2VkID0gKDAsIF9wYXJzZVJlbGF0aXZlVXJsKS5wYXJzZVJlbGF0aXZlVXJsKHVybCk7XG4gICAgICAgIGxldCB7IHBhdGhuYW1lICwgcXVlcnkgIH0gPSBwYXJzZWQ7XG4gICAgICAgIC8vIFRoZSBidWlsZCBtYW5pZmVzdCBuZWVkcyB0byBiZSBsb2FkZWQgYmVmb3JlIGF1dG8tc3RhdGljIGR5bmFtaWMgcGFnZXNcbiAgICAgICAgLy8gZ2V0IHRoZWlyIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gYWxsb3cgZW5zdXJpbmcgdGhleSBjYW4gYmUgcGFyc2VkIHByb3Blcmx5XG4gICAgICAgIC8vIHdoZW4gcmV3cml0dGVuIHRvXG4gICAgICAgIGxldCBwYWdlcywgcmV3cml0ZXM7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBbcGFnZXMsIHsgX19yZXdyaXRlczogcmV3cml0ZXMgIH1dID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgICAgICAgICAgIHRoaXMucGFnZUxvYWRlci5nZXRQYWdlTGlzdCgpLFxuICAgICAgICAgICAgICAgICgwLCBfcm91dGVMb2FkZXIpLmdldENsaWVudEJ1aWxkTWFuaWZlc3QoKSxcbiAgICAgICAgICAgICAgICB0aGlzLnBhZ2VMb2FkZXIuZ2V0TWlkZGxld2FyZUxpc3QoKSwgXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAvLyBJZiB3ZSBmYWlsIHRvIHJlc29sdmUgdGhlIHBhZ2UgbGlzdCBvciBjbGllbnQtYnVpbGQgbWFuaWZlc3QsIHdlIG11c3RcbiAgICAgICAgICAgIC8vIGRvIGEgc2VydmVyLXNpZGUgdHJhbnNpdGlvbjpcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYXM7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYgYXNrZWQgdG8gY2hhbmdlIHRoZSBjdXJyZW50IFVSTCB3ZSBzaG91bGQgcmVsb2FkIHRoZSBjdXJyZW50IHBhZ2VcbiAgICAgICAgLy8gKG5vdCBsb2NhdGlvbi5yZWxvYWQoKSBidXQgcmVsb2FkIGdldEluaXRpYWxQcm9wcyBhbmQgb3RoZXIgTmV4dC5qcyBzdHVmZnMpXG4gICAgICAgIC8vIFdlIGFsc28gbmVlZCB0byBzZXQgdGhlIG1ldGhvZCA9IHJlcGxhY2VTdGF0ZSBhbHdheXNcbiAgICAgICAgLy8gYXMgdGhpcyBzaG91bGQgbm90IGdvIGludG8gdGhlIGhpc3RvcnkgKFRoYXQncyBob3cgYnJvd3NlcnMgd29yaylcbiAgICAgICAgLy8gV2Ugc2hvdWxkIGNvbXBhcmUgdGhlIG5ldyBhc1BhdGggdG8gdGhlIGN1cnJlbnQgYXNQYXRoLCBub3QgdGhlIHVybFxuICAgICAgICBpZiAoIXRoaXMudXJsSXNOZXcoY2xlYW5lZEFzKSAmJiAhbG9jYWxlQ2hhbmdlKSB7XG4gICAgICAgICAgICBtZXRob2QgPSAncmVwbGFjZVN0YXRlJztcbiAgICAgICAgfVxuICAgICAgICAvLyB3ZSBuZWVkIHRvIHJlc29sdmUgdGhlIGFzIHZhbHVlIHVzaW5nIHJld3JpdGVzIGZvciBkeW5hbWljIFNTR1xuICAgICAgICAvLyBwYWdlcyB0byBhbGxvdyBidWlsZGluZyB0aGUgZGF0YSBVUkwgY29ycmVjdGx5XG4gICAgICAgIGxldCByZXNvbHZlZEFzID0gYXM7XG4gICAgICAgIC8vIHVybCBhbmQgYXMgc2hvdWxkIGFsd2F5cyBiZSBwcmVmaXhlZCB3aXRoIGJhc2VQYXRoIGJ5IHRoaXNcbiAgICAgICAgLy8gcG9pbnQgYnkgZWl0aGVyIG5leHQvbGluayBvciByb3V0ZXIucHVzaC9yZXBsYWNlIHNvIHN0cmlwIHRoZVxuICAgICAgICAvLyBiYXNlUGF0aCBmcm9tIHRoZSBwYXRobmFtZSB0byBtYXRjaCB0aGUgcGFnZXMgZGlyIDEtdG8tMVxuICAgICAgICBwYXRobmFtZSA9IHBhdGhuYW1lID8gKDAsIF9ub3JtYWxpemVUcmFpbGluZ1NsYXNoKS5yZW1vdmVQYXRoVHJhaWxpbmdTbGFzaChkZWxCYXNlUGF0aChwYXRobmFtZSkpIDogcGF0aG5hbWU7XG4gICAgICAgIGlmIChzaG91bGRSZXNvbHZlSHJlZiAmJiBwYXRobmFtZSAhPT0gJy9fZXJyb3InKSB7XG4gICAgICAgICAgICBvcHRpb25zLl9zaG91bGRSZXNvbHZlSHJlZiA9IHRydWU7XG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0hBU19SRVdSSVRFUyAmJiBhcy5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXdyaXRlc1Jlc3VsdCA9ICgwLCBfcmVzb2x2ZVJld3JpdGVzKS5kZWZhdWx0KGFkZEJhc2VQYXRoKGFkZExvY2FsZShjbGVhbmVkQXMsIHRoaXMubG9jYWxlKSksIHBhZ2VzLCByZXdyaXRlcywgcXVlcnksIChwKT0+cmVzb2x2ZUR5bmFtaWNSb3V0ZShwLCBwYWdlcylcbiAgICAgICAgICAgICAgICAsIHRoaXMubG9jYWxlcyk7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZWRBcyA9IHJld3JpdGVzUmVzdWx0LmFzUGF0aDtcbiAgICAgICAgICAgICAgICBpZiAocmV3cml0ZXNSZXN1bHQubWF0Y2hlZFBhZ2UgJiYgcmV3cml0ZXNSZXN1bHQucmVzb2x2ZWRIcmVmKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoaXMgZGlyZWN0bHkgbWF0Y2hlcyBhIHBhZ2Ugd2UgbmVlZCB0byB1cGRhdGUgdGhlIGhyZWYgdG9cbiAgICAgICAgICAgICAgICAgICAgLy8gYWxsb3cgdGhlIGNvcnJlY3QgcGFnZSBjaHVuayB0byBiZSBsb2FkZWRcbiAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWUgPSByZXdyaXRlc1Jlc3VsdC5yZXNvbHZlZEhyZWY7XG4gICAgICAgICAgICAgICAgICAgIHBhcnNlZC5wYXRobmFtZSA9IGFkZEJhc2VQYXRoKHBhdGhuYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdXJsID0gKDAsIF91dGlscykuZm9ybWF0V2l0aFZhbGlkYXRpb24ocGFyc2VkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHBhcnNlZC5wYXRobmFtZSA9IHJlc29sdmVEeW5hbWljUm91dGUocGF0aG5hbWUsIHBhZ2VzKTtcbiAgICAgICAgICAgICAgICBpZiAocGFyc2VkLnBhdGhuYW1lICE9PSBwYXRobmFtZSkge1xuICAgICAgICAgICAgICAgICAgICBwYXRobmFtZSA9IHBhcnNlZC5wYXRobmFtZTtcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VkLnBhdGhuYW1lID0gYWRkQmFzZVBhdGgocGF0aG5hbWUpO1xuICAgICAgICAgICAgICAgICAgICB1cmwgPSAoMCwgX3V0aWxzKS5mb3JtYXRXaXRoVmFsaWRhdGlvbihwYXJzZWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzTG9jYWxVUkwoYXMpKSB7XG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBocmVmOiBcIiR7dXJsfVwiIGFuZCBhczogXCIke2FzfVwiLCByZWNlaXZlZCByZWxhdGl2ZSBocmVmIGFuZCBleHRlcm5hbCBhc2AgKyBgXFxuU2VlIG1vcmUgaW5mbzogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvaW52YWxpZC1yZWxhdGl2ZS11cmwtZXh0ZXJuYWwtYXNgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYXM7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmVzb2x2ZWRBcyA9IGRlbExvY2FsZShkZWxCYXNlUGF0aChyZXNvbHZlZEFzKSwgdGhpcy5sb2NhbGUpO1xuICAgICAgICBjb25zdCBlZmZlY3QgPSBhd2FpdCB0aGlzLl9wcmVmbGlnaHRSZXF1ZXN0KHtcbiAgICAgICAgICAgIGFzLFxuICAgICAgICAgICAgY2FjaGU6IHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicsXG4gICAgICAgICAgICBwYWdlcyxcbiAgICAgICAgICAgIHBhdGhuYW1lLFxuICAgICAgICAgICAgcXVlcnlcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChlZmZlY3QudHlwZSA9PT0gJ3Jld3JpdGUnKSB7XG4gICAgICAgICAgICBxdWVyeSA9IHtcbiAgICAgICAgICAgICAgICAuLi5xdWVyeSxcbiAgICAgICAgICAgICAgICAuLi5lZmZlY3QucGFyc2VkQXMucXVlcnlcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZXNvbHZlZEFzID0gZWZmZWN0LmFzUGF0aDtcbiAgICAgICAgICAgIHBhdGhuYW1lID0gZWZmZWN0LnJlc29sdmVkSHJlZjtcbiAgICAgICAgICAgIHBhcnNlZC5wYXRobmFtZSA9IGVmZmVjdC5yZXNvbHZlZEhyZWY7XG4gICAgICAgICAgICB1cmwgPSAoMCwgX3V0aWxzKS5mb3JtYXRXaXRoVmFsaWRhdGlvbihwYXJzZWQpO1xuICAgICAgICB9IGVsc2UgaWYgKGVmZmVjdC50eXBlID09PSAncmVkaXJlY3QnICYmIGVmZmVjdC5uZXdBcykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2hhbmdlKG1ldGhvZCwgZWZmZWN0Lm5ld1VybCwgZWZmZWN0Lm5ld0FzLCBvcHRpb25zKTtcbiAgICAgICAgfSBlbHNlIGlmIChlZmZlY3QudHlwZSA9PT0gJ3JlZGlyZWN0JyAmJiBlZmZlY3QuZGVzdGluYXRpb24pIHtcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gZWZmZWN0LmRlc3RpbmF0aW9uO1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKCgpPT57XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChlZmZlY3QudHlwZSA9PT0gJ3JlZnJlc2gnKSB7XG4gICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGFzO1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKCgpPT57XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByb3V0ZSA9ICgwLCBfbm9ybWFsaXplVHJhaWxpbmdTbGFzaCkucmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2gocGF0aG5hbWUpO1xuICAgICAgICBpZiAoKDAsIF9pc0R5bmFtaWMpLmlzRHluYW1pY1JvdXRlKHJvdXRlKSkge1xuICAgICAgICAgICAgY29uc3QgcGFyc2VkQXMgPSAoMCwgX3BhcnNlUmVsYXRpdmVVcmwpLnBhcnNlUmVsYXRpdmVVcmwocmVzb2x2ZWRBcyk7XG4gICAgICAgICAgICBjb25zdCBhc1BhdGhuYW1lID0gcGFyc2VkQXMucGF0aG5hbWU7XG4gICAgICAgICAgICBjb25zdCByb3V0ZVJlZ2V4ID0gKDAsIF9yb3V0ZVJlZ2V4KS5nZXRSb3V0ZVJlZ2V4KHJvdXRlKTtcbiAgICAgICAgICAgIGNvbnN0IHJvdXRlTWF0Y2ggPSAoMCwgX3JvdXRlTWF0Y2hlcikuZ2V0Um91dGVNYXRjaGVyKHJvdXRlUmVnZXgpKGFzUGF0aG5hbWUpO1xuICAgICAgICAgICAgY29uc3Qgc2hvdWxkSW50ZXJwb2xhdGUgPSByb3V0ZSA9PT0gYXNQYXRobmFtZTtcbiAgICAgICAgICAgIGNvbnN0IGludGVycG9sYXRlZEFzID0gc2hvdWxkSW50ZXJwb2xhdGUgPyBpbnRlcnBvbGF0ZUFzKHJvdXRlLCBhc1BhdGhuYW1lLCBxdWVyeSkgOiB7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKCFyb3V0ZU1hdGNoIHx8IHNob3VsZEludGVycG9sYXRlICYmICFpbnRlcnBvbGF0ZWRBcy5yZXN1bHQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtaXNzaW5nUGFyYW1zID0gT2JqZWN0LmtleXMocm91dGVSZWdleC5ncm91cHMpLmZpbHRlcigocGFyYW0pPT4hcXVlcnlbcGFyYW1dXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpZiAobWlzc2luZ1BhcmFtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYCR7c2hvdWxkSW50ZXJwb2xhdGUgPyBgSW50ZXJwb2xhdGluZyBocmVmYCA6IGBNaXNtYXRjaGluZyBcXGBhc1xcYCBhbmQgXFxgaHJlZlxcYGB9IGZhaWxlZCB0byBtYW51YWxseSBwcm92aWRlIGAgKyBgdGhlIHBhcmFtczogJHttaXNzaW5nUGFyYW1zLmpvaW4oJywgJyl9IGluIHRoZSBcXGBocmVmXFxgJ3MgXFxgcXVlcnlcXGBgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoKHNob3VsZEludGVycG9sYXRlID8gYFRoZSBwcm92aWRlZCBcXGBocmVmXFxgICgke3VybH0pIHZhbHVlIGlzIG1pc3NpbmcgcXVlcnkgdmFsdWVzICgke21pc3NpbmdQYXJhbXMuam9pbignLCAnKX0pIHRvIGJlIGludGVycG9sYXRlZCBwcm9wZXJseS4gYCA6IGBUaGUgcHJvdmlkZWQgXFxgYXNcXGAgdmFsdWUgKCR7YXNQYXRobmFtZX0pIGlzIGluY29tcGF0aWJsZSB3aXRoIHRoZSBcXGBocmVmXFxgIHZhbHVlICgke3JvdXRlfSkuIGApICsgYFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvJHtzaG91bGRJbnRlcnBvbGF0ZSA/ICdocmVmLWludGVycG9sYXRpb24tZmFpbGVkJyA6ICdpbmNvbXBhdGlibGUtaHJlZi1hcyd9YCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChzaG91bGRJbnRlcnBvbGF0ZSkge1xuICAgICAgICAgICAgICAgIGFzID0gKDAsIF91dGlscykuZm9ybWF0V2l0aFZhbGlkYXRpb24oT2JqZWN0LmFzc2lnbih7XG4gICAgICAgICAgICAgICAgfSwgcGFyc2VkQXMsIHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWU6IGludGVycG9sYXRlZEFzLnJlc3VsdCxcbiAgICAgICAgICAgICAgICAgICAgcXVlcnk6IG9taXRQYXJtc0Zyb21RdWVyeShxdWVyeSwgaW50ZXJwb2xhdGVkQXMucGFyYW1zKVxuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gTWVyZ2UgcGFyYW1zIGludG8gYHF1ZXJ5YCwgb3ZlcndyaXRpbmcgYW55IHNwZWNpZmllZCBpbiBzZWFyY2hcbiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHF1ZXJ5LCByb3V0ZU1hdGNoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBSb3V0ZXIuZXZlbnRzLmVtaXQoJ3JvdXRlQ2hhbmdlU3RhcnQnLCBhcywgcm91dGVQcm9wcyk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB2YXIgcmVmLCByZWYxO1xuICAgICAgICAgICAgbGV0IHJvdXRlSW5mbyA9IGF3YWl0IHRoaXMuZ2V0Um91dGVJbmZvKHJvdXRlLCBwYXRobmFtZSwgcXVlcnksIGFzLCByZXNvbHZlZEFzLCByb3V0ZVByb3BzKTtcbiAgICAgICAgICAgIGxldCB7IGVycm9yICwgcHJvcHMgLCBfX05fU1NHICwgX19OX1NTUCAgfSA9IHJvdXRlSW5mbztcbiAgICAgICAgICAgIC8vIGhhbmRsZSByZWRpcmVjdCBvbiBjbGllbnQtdHJhbnNpdGlvblxuICAgICAgICAgICAgaWYgKChfX05fU1NHIHx8IF9fTl9TU1ApICYmIHByb3BzKSB7XG4gICAgICAgICAgICAgICAgaWYgKHByb3BzLnBhZ2VQcm9wcyAmJiBwcm9wcy5wYWdlUHJvcHMuX19OX1JFRElSRUNUKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlc3RpbmF0aW9uID0gcHJvcHMucGFnZVByb3BzLl9fTl9SRURJUkVDVDtcbiAgICAgICAgICAgICAgICAgICAgLy8gY2hlY2sgaWYgZGVzdGluYXRpb24gaXMgaW50ZXJuYWwgKHJlc29sdmVzIHRvIGEgcGFnZSkgYW5kIGF0dGVtcHRcbiAgICAgICAgICAgICAgICAgICAgLy8gY2xpZW50LW5hdmlnYXRpb24gaWYgaXQgaXMgZmFsbGluZyBiYWNrIHRvIGhhcmQgbmF2aWdhdGlvbiBpZlxuICAgICAgICAgICAgICAgICAgICAvLyBpdCdzIG5vdFxuICAgICAgICAgICAgICAgICAgICBpZiAoZGVzdGluYXRpb24uc3RhcnRzV2l0aCgnLycpICYmIHByb3BzLnBhZ2VQcm9wcy5fX05fUkVESVJFQ1RfQkFTRV9QQVRIICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyc2VkSHJlZiA9ICgwLCBfcGFyc2VSZWxhdGl2ZVVybCkucGFyc2VSZWxhdGl2ZVVybChkZXN0aW5hdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJzZWRIcmVmLnBhdGhuYW1lID0gcmVzb2x2ZUR5bmFtaWNSb3V0ZShwYXJzZWRIcmVmLnBhdGhuYW1lLCBwYWdlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHVybDogbmV3VXJsICwgYXM6IG5ld0FzICB9ID0gcHJlcGFyZVVybEFzKHRoaXMsIGRlc3RpbmF0aW9uLCBkZXN0aW5hdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jaGFuZ2UobWV0aG9kLCBuZXdVcmwsIG5ld0FzLCBvcHRpb25zKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGRlc3RpbmF0aW9uO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKCk9PntcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuaXNQcmV2aWV3ID0gISFwcm9wcy5fX05fUFJFVklFVztcbiAgICAgICAgICAgICAgICAvLyBoYW5kbGUgU1NHIGRhdGEgNDA0XG4gICAgICAgICAgICAgICAgaWYgKHByb3BzLm5vdEZvdW5kID09PSBTU0dfREFUQV9OT1RfRk9VTkQpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG5vdEZvdW5kUm91dGU7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmZldGNoQ29tcG9uZW50KCcvNDA0Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBub3RGb3VuZFJvdXRlID0gJy80MDQnO1xuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChfKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBub3RGb3VuZFJvdXRlID0gJy9fZXJyb3InO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJvdXRlSW5mbyA9IGF3YWl0IHRoaXMuZ2V0Um91dGVJbmZvKG5vdEZvdW5kUm91dGUsIG5vdEZvdW5kUm91dGUsIHF1ZXJ5LCBhcywgcmVzb2x2ZWRBcywge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2hhbGxvdzogZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgUm91dGVyLmV2ZW50cy5lbWl0KCdiZWZvcmVIaXN0b3J5Q2hhbmdlJywgYXMsIHJvdXRlUHJvcHMpO1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VTdGF0ZShtZXRob2QsIHVybCwgYXMsIG9wdGlvbnMpO1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMuX2ggJiYgcGF0aG5hbWUgPT09ICcvX2Vycm9yJyAmJiAoKHJlZiA9IHNlbGYuX19ORVhUX0RBVEFfXy5wcm9wcykgPT09IG51bGwgfHwgcmVmID09PSB2b2lkIDAgPyB2b2lkIDAgOiAocmVmMSA9IHJlZi5wYWdlUHJvcHMpID09PSBudWxsIHx8IHJlZjEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlZjEuc3RhdHVzQ29kZSkgPT09IDUwMCAmJiAocHJvcHMgPT09IG51bGwgfHwgcHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHByb3BzLnBhZ2VQcm9wcykpIHtcbiAgICAgICAgICAgICAgICAvLyBlbnN1cmUgc3RhdHVzQ29kZSBpcyBzdGlsbCBjb3JyZWN0IGZvciBzdGF0aWMgNTAwIHBhZ2VcbiAgICAgICAgICAgICAgICAvLyB3aGVuIHVwZGF0aW5nIHF1ZXJ5IGluZm9ybWF0aW9uXG4gICAgICAgICAgICAgICAgcHJvcHMucGFnZVByb3BzLnN0YXR1c0NvZGUgPSA1MDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBzaGFsbG93IHJvdXRpbmcgaXMgb25seSBhbGxvd2VkIGZvciBzYW1lIHBhZ2UgVVJMIGNoYW5nZXMuXG4gICAgICAgICAgICBjb25zdCBpc1ZhbGlkU2hhbGxvd1JvdXRlID0gb3B0aW9ucy5zaGFsbG93ICYmIHRoaXMucm91dGUgPT09IHJvdXRlO1xuICAgICAgICAgICAgdmFyIF9zY3JvbGw7XG4gICAgICAgICAgICBjb25zdCBzaG91bGRTY3JvbGwgPSAoX3Njcm9sbCA9IG9wdGlvbnMuc2Nyb2xsKSAhPT0gbnVsbCAmJiBfc2Nyb2xsICE9PSB2b2lkIDAgPyBfc2Nyb2xsIDogIWlzVmFsaWRTaGFsbG93Um91dGU7XG4gICAgICAgICAgICBjb25zdCByZXNldFNjcm9sbCA9IHNob3VsZFNjcm9sbCA/IHtcbiAgICAgICAgICAgICAgICB4OiAwLFxuICAgICAgICAgICAgICAgIHk6IDBcbiAgICAgICAgICAgIH0gOiBudWxsO1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5zZXQocm91dGUsIHBhdGhuYW1lLCBxdWVyeSwgY2xlYW5lZEFzLCByb3V0ZUluZm8sIGZvcmNlZFNjcm9sbCAhPT0gbnVsbCAmJiBmb3JjZWRTY3JvbGwgIT09IHZvaWQgMCA/IGZvcmNlZFNjcm9sbCA6IHJlc2V0U2Nyb2xsKS5jYXRjaCgoZSk9PntcbiAgICAgICAgICAgICAgICBpZiAoZS5jYW5jZWxsZWQpIGVycm9yID0gZXJyb3IgfHwgZTtcbiAgICAgICAgICAgICAgICBlbHNlIHRocm93IGU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICAgIFJvdXRlci5ldmVudHMuZW1pdCgncm91dGVDaGFuZ2VFcnJvcicsIGVycm9yLCBjbGVhbmVkQXMsIHJvdXRlUHJvcHMpO1xuICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9JMThOX1NVUFBPUlQpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5sb2NhbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmxhbmcgPSB0aGlzLmxvY2FsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBSb3V0ZXIuZXZlbnRzLmVtaXQoJ3JvdXRlQ2hhbmdlQ29tcGxldGUnLCBhcywgcm91dGVQcm9wcyk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBjYXRjaCAoZXJyMSkge1xuICAgICAgICAgICAgaWYgKCgwLCBfaXNFcnJvcikuZGVmYXVsdChlcnIxKSAmJiBlcnIxLmNhbmNlbGxlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IGVycjE7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY2hhbmdlU3RhdGUobWV0aG9kLCB1cmwsIGFzLCBvcHRpb25zID0ge1xuICAgIH0pIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygd2luZG93Lmhpc3RvcnkgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihgV2FybmluZzogd2luZG93Lmhpc3RvcnkgaXMgbm90IGF2YWlsYWJsZS5gKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZW9mIHdpbmRvdy5oaXN0b3J5W21ldGhvZF0gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihgV2FybmluZzogd2luZG93Lmhpc3RvcnkuJHttZXRob2R9IGlzIG5vdCBhdmFpbGFibGVgKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1ldGhvZCAhPT0gJ3B1c2hTdGF0ZScgfHwgKDAsIF91dGlscykuZ2V0VVJMKCkgIT09IGFzKSB7XG4gICAgICAgICAgICB0aGlzLl9zaGFsbG93ID0gb3B0aW9ucy5zaGFsbG93O1xuICAgICAgICAgICAgd2luZG93Lmhpc3RvcnlbbWV0aG9kXSh7XG4gICAgICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgICAgIGFzLFxuICAgICAgICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICAgICAgICAgX19OOiB0cnVlLFxuICAgICAgICAgICAgICAgIGlkeDogdGhpcy5faWR4ID0gbWV0aG9kICE9PSAncHVzaFN0YXRlJyA/IHRoaXMuX2lkeCA6IHRoaXMuX2lkeCArIDFcbiAgICAgICAgICAgIH0sIC8vIE1vc3QgYnJvd3NlcnMgY3VycmVudGx5IGlnbm9yZXMgdGhpcyBwYXJhbWV0ZXIsIGFsdGhvdWdoIHRoZXkgbWF5IHVzZSBpdCBpbiB0aGUgZnV0dXJlLlxuICAgICAgICAgICAgLy8gUGFzc2luZyB0aGUgZW1wdHkgc3RyaW5nIGhlcmUgc2hvdWxkIGJlIHNhZmUgYWdhaW5zdCBmdXR1cmUgY2hhbmdlcyB0byB0aGUgbWV0aG9kLlxuICAgICAgICAgICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0hpc3RvcnkvcmVwbGFjZVN0YXRlXG4gICAgICAgICAgICAnJywgYXMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGFzeW5jIGhhbmRsZVJvdXRlSW5mb0Vycm9yKGVyciwgcGF0aG5hbWUsIHF1ZXJ5LCBhcywgcm91dGVQcm9wcywgbG9hZEVycm9yRmFpbCkge1xuICAgICAgICBpZiAoZXJyLmNhbmNlbGxlZCkge1xuICAgICAgICAgICAgLy8gYnViYmxlIHVwIGNhbmNlbGxhdGlvbiBlcnJvcnNcbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoKDAsIF9yb3V0ZUxvYWRlcikuaXNBc3NldEVycm9yKGVycikgfHwgbG9hZEVycm9yRmFpbCkge1xuICAgICAgICAgICAgUm91dGVyLmV2ZW50cy5lbWl0KCdyb3V0ZUNoYW5nZUVycm9yJywgZXJyLCBhcywgcm91dGVQcm9wcyk7XG4gICAgICAgICAgICAvLyBJZiB3ZSBjYW4ndCBsb2FkIHRoZSBwYWdlIGl0IGNvdWxkIGJlIG9uZSBvZiBmb2xsb3dpbmcgcmVhc29uc1xuICAgICAgICAgICAgLy8gIDEuIFBhZ2UgZG9lc24ndCBleGlzdHNcbiAgICAgICAgICAgIC8vICAyLiBQYWdlIGRvZXMgZXhpc3QgaW4gYSBkaWZmZXJlbnQgem9uZVxuICAgICAgICAgICAgLy8gIDMuIEludGVybmFsIGVycm9yIHdoaWxlIGxvYWRpbmcgdGhlIHBhZ2VcbiAgICAgICAgICAgIC8vIFNvLCBkb2luZyBhIGhhcmQgcmVsb2FkIGlzIHRoZSBwcm9wZXIgd2F5IHRvIGRlYWwgd2l0aCB0aGlzLlxuICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBhcztcbiAgICAgICAgICAgIC8vIENoYW5naW5nIHRoZSBVUkwgZG9lc24ndCBibG9jayBleGVjdXRpbmcgdGhlIGN1cnJlbnQgY29kZSBwYXRoLlxuICAgICAgICAgICAgLy8gU28gbGV0J3MgdGhyb3cgYSBjYW5jZWxsYXRpb24gZXJyb3Igc3RvcCB0aGUgcm91dGluZyBsb2dpYy5cbiAgICAgICAgICAgIHRocm93IGJ1aWxkQ2FuY2VsbGF0aW9uRXJyb3IoKTtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgbGV0IENvbXBvbmVudDtcbiAgICAgICAgICAgIGxldCBzdHlsZVNoZWV0cztcbiAgICAgICAgICAgIGxldCBwcm9wcztcbiAgICAgICAgICAgIGlmICh0eXBlb2YgQ29tcG9uZW50ID09PSAndW5kZWZpbmVkJyB8fCB0eXBlb2Ygc3R5bGVTaGVldHMgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgKHsgcGFnZTogQ29tcG9uZW50ICwgc3R5bGVTaGVldHMgIH0gPSBhd2FpdCB0aGlzLmZldGNoQ29tcG9uZW50KCcvX2Vycm9yJykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgcm91dGVJbmZvID0ge1xuICAgICAgICAgICAgICAgIHByb3BzLFxuICAgICAgICAgICAgICAgIENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBzdHlsZVNoZWV0cyxcbiAgICAgICAgICAgICAgICBlcnIsXG4gICAgICAgICAgICAgICAgZXJyb3I6IGVyclxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmICghcm91dGVJbmZvLnByb3BzKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgcm91dGVJbmZvLnByb3BzID0gYXdhaXQgdGhpcy5nZXRJbml0aWFsUHJvcHMoQ29tcG9uZW50LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlcnIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRobmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGdpcEVycikge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBpbiBlcnJvciBwYWdlIGBnZXRJbml0aWFsUHJvcHNgOiAnLCBnaXBFcnIpO1xuICAgICAgICAgICAgICAgICAgICByb3V0ZUluZm8ucHJvcHMgPSB7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJvdXRlSW5mbztcbiAgICAgICAgfSBjYXRjaCAocm91dGVJbmZvRXJyKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5oYW5kbGVSb3V0ZUluZm9FcnJvcigoMCwgX2lzRXJyb3IpLmRlZmF1bHQocm91dGVJbmZvRXJyKSA/IHJvdXRlSW5mb0VyciA6IG5ldyBFcnJvcihyb3V0ZUluZm9FcnIgKyAnJyksIHBhdGhuYW1lLCBxdWVyeSwgYXMsIHJvdXRlUHJvcHMsIHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGFzeW5jIGdldFJvdXRlSW5mbyhyb3V0ZSwgcGF0aG5hbWUsIHF1ZXJ5LCBhcywgcmVzb2x2ZWRBcywgcm91dGVQcm9wcykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgZXhpc3RpbmdSb3V0ZUluZm8gPSB0aGlzLmNvbXBvbmVudHNbcm91dGVdO1xuICAgICAgICAgICAgaWYgKHJvdXRlUHJvcHMuc2hhbGxvdyAmJiBleGlzdGluZ1JvdXRlSW5mbyAmJiB0aGlzLnJvdXRlID09PSByb3V0ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBleGlzdGluZ1JvdXRlSW5mbztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBjYWNoZWRSb3V0ZUluZm8gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAvLyBjYW4gb25seSB1c2Ugbm9uLWluaXRpYWwgcm91dGUgaW5mb1xuICAgICAgICAgICAgLy8gY2Fubm90IHJldXNlIHJvdXRlIGluZm8gaW4gZGV2ZWxvcG1lbnQgc2luY2UgaXQgY2FuIGNoYW5nZSBhZnRlciBITVJcbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ2RldmVsb3BtZW50JyAmJiBleGlzdGluZ1JvdXRlSW5mbyAmJiAhKCdpbml0aWFsJyBpbiBleGlzdGluZ1JvdXRlSW5mbykpIHtcbiAgICAgICAgICAgICAgICBjYWNoZWRSb3V0ZUluZm8gPSBleGlzdGluZ1JvdXRlSW5mbztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHJvdXRlSW5mbyA9IGNhY2hlZFJvdXRlSW5mbyB8fCBhd2FpdCB0aGlzLmZldGNoQ29tcG9uZW50KHJvdXRlKS50aGVuKChyZXMpPT4oe1xuICAgICAgICAgICAgICAgICAgICBDb21wb25lbnQ6IHJlcy5wYWdlLFxuICAgICAgICAgICAgICAgICAgICBzdHlsZVNoZWV0czogcmVzLnN0eWxlU2hlZXRzLFxuICAgICAgICAgICAgICAgICAgICBfX05fU1NHOiByZXMubW9kLl9fTl9TU0csXG4gICAgICAgICAgICAgICAgICAgIF9fTl9TU1A6IHJlcy5tb2QuX19OX1NTUCxcbiAgICAgICAgICAgICAgICAgICAgX19OX1JTQzogISFyZXMucGFnZS5fX25leHRfcnNjX19cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IHsgQ29tcG9uZW50ICwgX19OX1NTRyAsIF9fTl9TU1AgLCBfX05fUlNDICB9ID0gcm91dGVJbmZvO1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGlzVmFsaWRFbGVtZW50VHlwZSAgfSA9IHJlcXVpcmUoJ3JlYWN0LWlzJyk7XG4gICAgICAgICAgICAgICAgaWYgKCFpc1ZhbGlkRWxlbWVudFR5cGUoQ29tcG9uZW50KSkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSBkZWZhdWx0IGV4cG9ydCBpcyBub3QgYSBSZWFjdCBDb21wb25lbnQgaW4gcGFnZTogXCIke3BhdGhuYW1lfVwiYCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IGRhdGFIcmVmO1xuICAgICAgICAgICAgaWYgKF9fTl9TU0cgfHwgX19OX1NTUCB8fCBfX05fUlNDKSB7XG4gICAgICAgICAgICAgICAgZGF0YUhyZWYgPSB0aGlzLnBhZ2VMb2FkZXIuZ2V0RGF0YUhyZWYoe1xuICAgICAgICAgICAgICAgICAgICBocmVmOiAoMCwgX3V0aWxzKS5mb3JtYXRXaXRoVmFsaWRhdGlvbih7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRobmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5XG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICBhc1BhdGg6IHJlc29sdmVkQXMsXG4gICAgICAgICAgICAgICAgICAgIHNzZzogX19OX1NTRyxcbiAgICAgICAgICAgICAgICAgICAgcnNjOiBfX05fUlNDLFxuICAgICAgICAgICAgICAgICAgICBsb2NhbGU6IHRoaXMubG9jYWxlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBwcm9wcyA9IGF3YWl0IHRoaXMuX2dldERhdGEoKCk9Pl9fTl9TU0cgfHwgX19OX1NTUCA/IGZldGNoTmV4dERhdGEoZGF0YUhyZWYsIHRoaXMuaXNTc3IsIGZhbHNlLCBfX05fU1NHID8gdGhpcy5zZGMgOiB0aGlzLnNkciwgISFfX05fU1NHICYmICF0aGlzLmlzUHJldmlldykgOiB0aGlzLmdldEluaXRpYWxQcm9wcyhDb21wb25lbnQsIC8vIHdlIHByb3ZpZGUgQXBwVHJlZSBsYXRlciBzbyB0aGlzIG5lZWRzIHRvIGJlIGBhbnlgXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwYXRobmFtZSxcbiAgICAgICAgICAgICAgICAgICAgcXVlcnksXG4gICAgICAgICAgICAgICAgICAgIGFzUGF0aDogYXMsXG4gICAgICAgICAgICAgICAgICAgIGxvY2FsZTogdGhpcy5sb2NhbGUsXG4gICAgICAgICAgICAgICAgICAgIGxvY2FsZXM6IHRoaXMubG9jYWxlcyxcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdExvY2FsZTogdGhpcy5kZWZhdWx0TG9jYWxlXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAoX19OX1JTQykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgZnJlc2ggLCBkYXRhICB9ID0gYXdhaXQgdGhpcy5fZ2V0RGF0YSgoKT0+dGhpcy5fZ2V0RmxpZ2h0RGF0YShkYXRhSHJlZilcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHByb3BzLnBhZ2VQcm9wcyA9IE9iamVjdC5hc3NpZ24ocHJvcHMucGFnZVByb3BzLCB7XG4gICAgICAgICAgICAgICAgICAgIF9fZmxpZ2h0X3NlcmlhbGl6ZWRfXzogZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgX19mbGlnaHRfZnJlc2hfXzogZnJlc2hcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJvdXRlSW5mby5wcm9wcyA9IHByb3BzO1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRzW3JvdXRlXSA9IHJvdXRlSW5mbztcbiAgICAgICAgICAgIHJldHVybiByb3V0ZUluZm87XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlUm91dGVJbmZvRXJyb3IoKDAsIF9pc0Vycm9yKS5kZWZhdWx0KGVycikgPyBlcnIgOiBuZXcgRXJyb3IoZXJyICsgJycpLCBwYXRobmFtZSwgcXVlcnksIGFzLCByb3V0ZVByb3BzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzZXQocm91dGUsIHBhdGhuYW1lLCBxdWVyeSwgYXMsIGRhdGEsIHJlc2V0U2Nyb2xsKSB7XG4gICAgICAgIHRoaXMuaXNGYWxsYmFjayA9IGZhbHNlO1xuICAgICAgICB0aGlzLnJvdXRlID0gcm91dGU7XG4gICAgICAgIHRoaXMucGF0aG5hbWUgPSBwYXRobmFtZTtcbiAgICAgICAgdGhpcy5xdWVyeSA9IHF1ZXJ5O1xuICAgICAgICB0aGlzLmFzUGF0aCA9IGFzO1xuICAgICAgICByZXR1cm4gdGhpcy5ub3RpZnkoZGF0YSwgcmVzZXRTY3JvbGwpO1xuICAgIH1cbiAgICAvKipcbiAgICogQ2FsbGJhY2sgdG8gZXhlY3V0ZSBiZWZvcmUgcmVwbGFjaW5nIHJvdXRlciBzdGF0ZVxuICAgKiBAcGFyYW0gY2IgY2FsbGJhY2sgdG8gYmUgZXhlY3V0ZWRcbiAgICovIGJlZm9yZVBvcFN0YXRlKGNiKSB7XG4gICAgICAgIHRoaXMuX2JwcyA9IGNiO1xuICAgIH1cbiAgICBvbmx5QUhhc2hDaGFuZ2UoYXMpIHtcbiAgICAgICAgaWYgKCF0aGlzLmFzUGF0aCkgcmV0dXJuIGZhbHNlO1xuICAgICAgICBjb25zdCBbb2xkVXJsTm9IYXNoLCBvbGRIYXNoXSA9IHRoaXMuYXNQYXRoLnNwbGl0KCcjJyk7XG4gICAgICAgIGNvbnN0IFtuZXdVcmxOb0hhc2gsIG5ld0hhc2hdID0gYXMuc3BsaXQoJyMnKTtcbiAgICAgICAgLy8gTWFrZXMgc3VyZSB3ZSBzY3JvbGwgdG8gdGhlIHByb3ZpZGVkIGhhc2ggaWYgdGhlIHVybC9oYXNoIGFyZSB0aGUgc2FtZVxuICAgICAgICBpZiAobmV3SGFzaCAmJiBvbGRVcmxOb0hhc2ggPT09IG5ld1VybE5vSGFzaCAmJiBvbGRIYXNoID09PSBuZXdIYXNoKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBJZiB0aGUgdXJscyBhcmUgY2hhbmdlLCB0aGVyZSdzIG1vcmUgdGhhbiBhIGhhc2ggY2hhbmdlXG4gICAgICAgIGlmIChvbGRVcmxOb0hhc2ggIT09IG5ld1VybE5vSGFzaCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIC8vIElmIHRoZSBoYXNoIGhhcyBjaGFuZ2VkLCB0aGVuIGl0J3MgYSBoYXNoIG9ubHkgY2hhbmdlLlxuICAgICAgICAvLyBUaGlzIGNoZWNrIGlzIG5lY2Vzc2FyeSB0byBoYW5kbGUgYm90aCB0aGUgZW50ZXIgYW5kXG4gICAgICAgIC8vIGxlYXZlIGhhc2ggPT09ICcnIGNhc2VzLiBUaGUgaWRlbnRpdHkgY2FzZSBmYWxscyB0aHJvdWdoXG4gICAgICAgIC8vIGFuZCBpcyB0cmVhdGVkIGFzIGEgbmV4dCByZWxvYWQuXG4gICAgICAgIHJldHVybiBvbGRIYXNoICE9PSBuZXdIYXNoO1xuICAgIH1cbiAgICBzY3JvbGxUb0hhc2goYXMpIHtcbiAgICAgICAgY29uc3QgWywgaGFzaF0gPSBhcy5zcGxpdCgnIycpO1xuICAgICAgICAvLyBTY3JvbGwgdG8gdG9wIGlmIHRoZSBoYXNoIGlzIGp1c3QgYCNgIHdpdGggbm8gdmFsdWUgb3IgYCN0b3BgXG4gICAgICAgIC8vIFRvIG1pcnJvciBicm93c2Vyc1xuICAgICAgICBpZiAoaGFzaCA9PT0gJycgfHwgaGFzaCA9PT0gJ3RvcCcpIHtcbiAgICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbygwLCAwKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBGaXJzdCB3ZSBjaGVjayBpZiB0aGUgZWxlbWVudCBieSBpZCBpcyBmb3VuZFxuICAgICAgICBjb25zdCBpZEVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaGFzaCk7XG4gICAgICAgIGlmIChpZEVsKSB7XG4gICAgICAgICAgICBpZEVsLnNjcm9sbEludG9WaWV3KCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYgdGhlcmUncyBubyBlbGVtZW50IHdpdGggdGhlIGlkLCB3ZSBjaGVjayB0aGUgYG5hbWVgIHByb3BlcnR5XG4gICAgICAgIC8vIFRvIG1pcnJvciBicm93c2Vyc1xuICAgICAgICBjb25zdCBuYW1lRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZShoYXNoKVswXTtcbiAgICAgICAgaWYgKG5hbWVFbCkge1xuICAgICAgICAgICAgbmFtZUVsLnNjcm9sbEludG9WaWV3KCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgdXJsSXNOZXcoYXNQYXRoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFzUGF0aCAhPT0gYXNQYXRoO1xuICAgIH1cbiAgICAvKipcbiAgICogUHJlZmV0Y2ggcGFnZSBjb2RlLCB5b3UgbWF5IHdhaXQgZm9yIHRoZSBkYXRhIGR1cmluZyBwYWdlIHJlbmRlcmluZy5cbiAgICogVGhpcyBmZWF0dXJlIG9ubHkgd29ya3MgaW4gcHJvZHVjdGlvbiFcbiAgICogQHBhcmFtIHVybCB0aGUgaHJlZiBvZiBwcmVmZXRjaGVkIHBhZ2VcbiAgICogQHBhcmFtIGFzUGF0aCB0aGUgYXMgcGF0aCBvZiB0aGUgcHJlZmV0Y2hlZCBwYWdlXG4gICAqLyBhc3luYyBwcmVmZXRjaCh1cmwsIGFzUGF0aCA9IHVybCwgb3B0aW9ucyA9IHtcbiAgICB9KSB7XG4gICAgICAgIGxldCBwYXJzZWQgPSAoMCwgX3BhcnNlUmVsYXRpdmVVcmwpLnBhcnNlUmVsYXRpdmVVcmwodXJsKTtcbiAgICAgICAgbGV0IHsgcGF0aG5hbWUgLCBxdWVyeSAgfSA9IHBhcnNlZDtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9JMThOX1NVUFBPUlQpIHtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLmxvY2FsZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICBwYXRobmFtZSA9ICgwLCBfbm9ybWFsaXplTG9jYWxlUGF0aCkubm9ybWFsaXplTG9jYWxlUGF0aChwYXRobmFtZSwgdGhpcy5sb2NhbGVzKS5wYXRobmFtZTtcbiAgICAgICAgICAgICAgICBwYXJzZWQucGF0aG5hbWUgPSBwYXRobmFtZTtcbiAgICAgICAgICAgICAgICB1cmwgPSAoMCwgX3V0aWxzKS5mb3JtYXRXaXRoVmFsaWRhdGlvbihwYXJzZWQpO1xuICAgICAgICAgICAgICAgIGxldCBwYXJzZWRBcyA9ICgwLCBfcGFyc2VSZWxhdGl2ZVVybCkucGFyc2VSZWxhdGl2ZVVybChhc1BhdGgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxvY2FsZVBhdGhSZXN1bHQgPSAoMCwgX25vcm1hbGl6ZUxvY2FsZVBhdGgpLm5vcm1hbGl6ZUxvY2FsZVBhdGgocGFyc2VkQXMucGF0aG5hbWUsIHRoaXMubG9jYWxlcyk7XG4gICAgICAgICAgICAgICAgcGFyc2VkQXMucGF0aG5hbWUgPSBsb2NhbGVQYXRoUmVzdWx0LnBhdGhuYW1lO1xuICAgICAgICAgICAgICAgIG9wdGlvbnMubG9jYWxlID0gbG9jYWxlUGF0aFJlc3VsdC5kZXRlY3RlZExvY2FsZSB8fCB0aGlzLmRlZmF1bHRMb2NhbGU7XG4gICAgICAgICAgICAgICAgYXNQYXRoID0gKDAsIF91dGlscykuZm9ybWF0V2l0aFZhbGlkYXRpb24ocGFyc2VkQXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBhZ2VzID0gYXdhaXQgdGhpcy5wYWdlTG9hZGVyLmdldFBhZ2VMaXN0KCk7XG4gICAgICAgIGxldCByZXNvbHZlZEFzID0gYXNQYXRoO1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0hBU19SRVdSSVRFUyAmJiBhc1BhdGguc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICBsZXQgcmV3cml0ZXM7XG4gICAgICAgICAgICAoeyBfX3Jld3JpdGVzOiByZXdyaXRlcyAgfSA9IGF3YWl0ICgwLCBfcm91dGVMb2FkZXIpLmdldENsaWVudEJ1aWxkTWFuaWZlc3QoKSk7XG4gICAgICAgICAgICBjb25zdCByZXdyaXRlc1Jlc3VsdCA9ICgwLCBfcmVzb2x2ZVJld3JpdGVzKS5kZWZhdWx0KGFkZEJhc2VQYXRoKGFkZExvY2FsZShhc1BhdGgsIHRoaXMubG9jYWxlKSksIHBhZ2VzLCByZXdyaXRlcywgcGFyc2VkLnF1ZXJ5LCAocCk9PnJlc29sdmVEeW5hbWljUm91dGUocCwgcGFnZXMpXG4gICAgICAgICAgICAsIHRoaXMubG9jYWxlcyk7XG4gICAgICAgICAgICByZXNvbHZlZEFzID0gZGVsTG9jYWxlKGRlbEJhc2VQYXRoKHJld3JpdGVzUmVzdWx0LmFzUGF0aCksIHRoaXMubG9jYWxlKTtcbiAgICAgICAgICAgIGlmIChyZXdyaXRlc1Jlc3VsdC5tYXRjaGVkUGFnZSAmJiByZXdyaXRlc1Jlc3VsdC5yZXNvbHZlZEhyZWYpIHtcbiAgICAgICAgICAgICAgICAvLyBpZiB0aGlzIGRpcmVjdGx5IG1hdGNoZXMgYSBwYWdlIHdlIG5lZWQgdG8gdXBkYXRlIHRoZSBocmVmIHRvXG4gICAgICAgICAgICAgICAgLy8gYWxsb3cgdGhlIGNvcnJlY3QgcGFnZSBjaHVuayB0byBiZSBsb2FkZWRcbiAgICAgICAgICAgICAgICBwYXRobmFtZSA9IHJld3JpdGVzUmVzdWx0LnJlc29sdmVkSHJlZjtcbiAgICAgICAgICAgICAgICBwYXJzZWQucGF0aG5hbWUgPSBwYXRobmFtZTtcbiAgICAgICAgICAgICAgICB1cmwgPSAoMCwgX3V0aWxzKS5mb3JtYXRXaXRoVmFsaWRhdGlvbihwYXJzZWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGFyc2VkLnBhdGhuYW1lID0gcmVzb2x2ZUR5bmFtaWNSb3V0ZShwYXJzZWQucGF0aG5hbWUsIHBhZ2VzKTtcbiAgICAgICAgICAgIGlmIChwYXJzZWQucGF0aG5hbWUgIT09IHBhdGhuYW1lKSB7XG4gICAgICAgICAgICAgICAgcGF0aG5hbWUgPSBwYXJzZWQucGF0aG5hbWU7XG4gICAgICAgICAgICAgICAgcGFyc2VkLnBhdGhuYW1lID0gcGF0aG5hbWU7XG4gICAgICAgICAgICAgICAgdXJsID0gKDAsIF91dGlscykuZm9ybWF0V2l0aFZhbGlkYXRpb24ocGFyc2VkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBQcmVmZXRjaCBpcyBub3Qgc3VwcG9ydGVkIGluIGRldmVsb3BtZW50IG1vZGUgYmVjYXVzZSBpdCB3b3VsZCB0cmlnZ2VyIG9uLWRlbWFuZC1lbnRyaWVzXG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZWZmZWN0cyA9IGF3YWl0IHRoaXMuX3ByZWZsaWdodFJlcXVlc3Qoe1xuICAgICAgICAgICAgYXM6IGFkZEJhc2VQYXRoKGFzUGF0aCksXG4gICAgICAgICAgICBjYWNoZTogdHJ1ZSxcbiAgICAgICAgICAgIHBhZ2VzLFxuICAgICAgICAgICAgcGF0aG5hbWUsXG4gICAgICAgICAgICBxdWVyeVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGVmZmVjdHMudHlwZSA9PT0gJ3Jld3JpdGUnKSB7XG4gICAgICAgICAgICBwYXJzZWQucGF0aG5hbWUgPSBlZmZlY3RzLnJlc29sdmVkSHJlZjtcbiAgICAgICAgICAgIHBhdGhuYW1lID0gZWZmZWN0cy5yZXNvbHZlZEhyZWY7XG4gICAgICAgICAgICBxdWVyeSA9IHtcbiAgICAgICAgICAgICAgICAuLi5xdWVyeSxcbiAgICAgICAgICAgICAgICAuLi5lZmZlY3RzLnBhcnNlZEFzLnF1ZXJ5XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmVzb2x2ZWRBcyA9IGVmZmVjdHMuYXNQYXRoO1xuICAgICAgICAgICAgdXJsID0gKDAsIF91dGlscykuZm9ybWF0V2l0aFZhbGlkYXRpb24ocGFyc2VkKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByb3V0ZSA9ICgwLCBfbm9ybWFsaXplVHJhaWxpbmdTbGFzaCkucmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2gocGF0aG5hbWUpO1xuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAgICAgICB0aGlzLnBhZ2VMb2FkZXIuX2lzU3NnKHJvdXRlKS50aGVuKChpc1NzZyk9PntcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNTc2cgPyBmZXRjaE5leHREYXRhKHRoaXMucGFnZUxvYWRlci5nZXREYXRhSHJlZih7XG4gICAgICAgICAgICAgICAgICAgIGhyZWY6IHVybCxcbiAgICAgICAgICAgICAgICAgICAgYXNQYXRoOiByZXNvbHZlZEFzLFxuICAgICAgICAgICAgICAgICAgICBzc2c6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGxvY2FsZTogdHlwZW9mIG9wdGlvbnMubG9jYWxlICE9PSAndW5kZWZpbmVkJyA/IG9wdGlvbnMubG9jYWxlIDogdGhpcy5sb2NhbGVcbiAgICAgICAgICAgICAgICB9KSwgZmFsc2UsIGZhbHNlLCB0aGlzLnNkYywgdHJ1ZSkgOiBmYWxzZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGhpcy5wYWdlTG9hZGVyW29wdGlvbnMucHJpb3JpdHkgPyAnbG9hZFBhZ2UnIDogJ3ByZWZldGNoJ10ocm91dGUpLCBcbiAgICAgICAgXSk7XG4gICAgfVxuICAgIGFzeW5jIGZldGNoQ29tcG9uZW50KHJvdXRlKSB7XG4gICAgICAgIGxldCBjYW5jZWxsZWQgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgY2FuY2VsID0gdGhpcy5jbGMgPSAoKT0+e1xuICAgICAgICAgICAgY2FuY2VsbGVkID0gdHJ1ZTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgaGFuZGxlQ2FuY2VsbGVkID0gKCk9PntcbiAgICAgICAgICAgIGlmIChjYW5jZWxsZWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihgQWJvcnQgZmV0Y2hpbmcgY29tcG9uZW50IGZvciByb3V0ZTogXCIke3JvdXRlfVwiYCk7XG4gICAgICAgICAgICAgICAgZXJyb3IuY2FuY2VsbGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjYW5jZWwgPT09IHRoaXMuY2xjKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbGMgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgY29tcG9uZW50UmVzdWx0ID0gYXdhaXQgdGhpcy5wYWdlTG9hZGVyLmxvYWRQYWdlKHJvdXRlKTtcbiAgICAgICAgICAgIGhhbmRsZUNhbmNlbGxlZCgpO1xuICAgICAgICAgICAgcmV0dXJuIGNvbXBvbmVudFJlc3VsdDtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICBoYW5kbGVDYW5jZWxsZWQoKTtcbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfZ2V0RGF0YShmbikge1xuICAgICAgICBsZXQgY2FuY2VsbGVkID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IGNhbmNlbCA9ICgpPT57XG4gICAgICAgICAgICBjYW5jZWxsZWQgPSB0cnVlO1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLmNsYyA9IGNhbmNlbDtcbiAgICAgICAgcmV0dXJuIGZuKCkudGhlbigoZGF0YSk9PntcbiAgICAgICAgICAgIGlmIChjYW5jZWwgPT09IHRoaXMuY2xjKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbGMgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGNhbmNlbGxlZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVyciA9IG5ldyBFcnJvcignTG9hZGluZyBpbml0aWFsIHByb3BzIGNhbmNlbGxlZCcpO1xuICAgICAgICAgICAgICAgIGVyci5jYW5jZWxsZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgX2dldEZsaWdodERhdGEoZGF0YUhyZWYpIHtcbiAgICAgICAgY29uc3QgeyBocmVmOiBjYWNoZUtleSAgfSA9IG5ldyBVUkwoZGF0YUhyZWYsIHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcbiAgICAgICAgaWYgKCF0aGlzLmlzUHJldmlldyAmJiB0aGlzLnNkY1tjYWNoZUtleV0pIHtcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgICAgICAgICAgIGZyZXNoOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBkYXRhOiB0aGlzLnNkY1tjYWNoZUtleV1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmZXRjaE5leHREYXRhKGRhdGFIcmVmLCB0cnVlLCB0cnVlLCB0aGlzLnNkYywgZmFsc2UpLnRoZW4oKHNlcmlhbGl6ZWQpPT57XG4gICAgICAgICAgICB0aGlzLnNkY1tjYWNoZUtleV0gPSBzZXJpYWxpemVkO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBmcmVzaDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBkYXRhOiBzZXJpYWxpemVkXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgYXN5bmMgX3ByZWZsaWdodFJlcXVlc3Qob3B0aW9ucykge1xuICAgICAgICB2YXIgcmVmO1xuICAgICAgICBjb25zdCBjbGVhbmVkQXMgPSBkZWxMb2NhbGUoaGFzQmFzZVBhdGgob3B0aW9ucy5hcykgPyBkZWxCYXNlUGF0aChvcHRpb25zLmFzKSA6IG9wdGlvbnMuYXMsIHRoaXMubG9jYWxlKTtcbiAgICAgICAgY29uc3QgZm5zID0gYXdhaXQgdGhpcy5wYWdlTG9hZGVyLmdldE1pZGRsZXdhcmVMaXN0KCk7XG4gICAgICAgIGNvbnN0IHJlcXVpcmVzUHJlZmxpZ2h0ID0gZm5zLnNvbWUoKFttaWRkbGV3YXJlLCBpc1NTUl0pPT57XG4gICAgICAgICAgICByZXR1cm4gKDAsIF9yb3V0ZU1hdGNoZXIpLmdldFJvdXRlTWF0Y2hlcigoMCwgX2dldE1pZGRsZXdhcmVSZWdleCkuZ2V0TWlkZGxld2FyZVJlZ2V4KG1pZGRsZXdhcmUsICFpc1NTUikpKGNsZWFuZWRBcyk7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoIXJlcXVpcmVzUHJlZmxpZ2h0KSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHR5cGU6ICduZXh0J1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwcmVmbGlnaHQgPSBhd2FpdCB0aGlzLl9nZXRQcmVmbGlnaHREYXRhKHtcbiAgICAgICAgICAgIHByZWZsaWdodEhyZWY6IG9wdGlvbnMuYXMsXG4gICAgICAgICAgICBzaG91bGRDYWNoZTogb3B0aW9ucy5jYWNoZVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKChyZWYgPSBwcmVmbGlnaHQucmV3cml0ZSkgPT09IG51bGwgfHwgcmVmID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZWYuc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJzZWQgPSAoMCwgX3BhcnNlUmVsYXRpdmVVcmwpLnBhcnNlUmVsYXRpdmVVcmwoKDAsIF9ub3JtYWxpemVMb2NhbGVQYXRoKS5ub3JtYWxpemVMb2NhbGVQYXRoKGhhc0Jhc2VQYXRoKHByZWZsaWdodC5yZXdyaXRlKSA/IGRlbEJhc2VQYXRoKHByZWZsaWdodC5yZXdyaXRlKSA6IHByZWZsaWdodC5yZXdyaXRlLCB0aGlzLmxvY2FsZXMpLnBhdGhuYW1lKTtcbiAgICAgICAgICAgIGNvbnN0IGZzUGF0aG5hbWUgPSAoMCwgX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2gpLnJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoKHBhcnNlZC5wYXRobmFtZSk7XG4gICAgICAgICAgICBsZXQgbWF0Y2hlZFBhZ2U7XG4gICAgICAgICAgICBsZXQgcmVzb2x2ZWRIcmVmO1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMucGFnZXMuaW5jbHVkZXMoZnNQYXRobmFtZSkpIHtcbiAgICAgICAgICAgICAgICBtYXRjaGVkUGFnZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZWRIcmVmID0gZnNQYXRobmFtZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZWRIcmVmID0gcmVzb2x2ZUR5bmFtaWNSb3V0ZShmc1BhdGhuYW1lLCBvcHRpb25zLnBhZ2VzKTtcbiAgICAgICAgICAgICAgICBpZiAocmVzb2x2ZWRIcmVmICE9PSBwYXJzZWQucGF0aG5hbWUgJiYgb3B0aW9ucy5wYWdlcy5pbmNsdWRlcyhyZXNvbHZlZEhyZWYpKSB7XG4gICAgICAgICAgICAgICAgICAgIG1hdGNoZWRQYWdlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdyZXdyaXRlJyxcbiAgICAgICAgICAgICAgICBhc1BhdGg6IHBhcnNlZC5wYXRobmFtZSxcbiAgICAgICAgICAgICAgICBwYXJzZWRBczogcGFyc2VkLFxuICAgICAgICAgICAgICAgIG1hdGNoZWRQYWdlLFxuICAgICAgICAgICAgICAgIHJlc29sdmVkSHJlZlxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocHJlZmxpZ2h0LnJlZGlyZWN0KSB7XG4gICAgICAgICAgICBpZiAocHJlZmxpZ2h0LnJlZGlyZWN0LnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNsZWFuUmVkaXJlY3QgPSAoMCwgX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2gpLnJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoKCgwLCBfbm9ybWFsaXplTG9jYWxlUGF0aCkubm9ybWFsaXplTG9jYWxlUGF0aChoYXNCYXNlUGF0aChwcmVmbGlnaHQucmVkaXJlY3QpID8gZGVsQmFzZVBhdGgocHJlZmxpZ2h0LnJlZGlyZWN0KSA6IHByZWZsaWdodC5yZWRpcmVjdCwgdGhpcy5sb2NhbGVzKS5wYXRobmFtZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgeyB1cmw6IG5ld1VybCAsIGFzOiBuZXdBcyAgfSA9IHByZXBhcmVVcmxBcyh0aGlzLCBjbGVhblJlZGlyZWN0LCBjbGVhblJlZGlyZWN0KTtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAncmVkaXJlY3QnLFxuICAgICAgICAgICAgICAgICAgICBuZXdVcmwsXG4gICAgICAgICAgICAgICAgICAgIG5ld0FzXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdHlwZTogJ3JlZGlyZWN0JyxcbiAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbjogcHJlZmxpZ2h0LnJlZGlyZWN0XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIC8vIEZvciBTU1IgcmVxdWVzdHMsIHRoZXkgd2lsbCBiZSBoYW5kbGVkIGxpa2Ugbm9ybWFsIHBhZ2VzLlxuICAgICAgICBpZiAocHJlZmxpZ2h0LnJlZnJlc2ggJiYgIXByZWZsaWdodC5zc3IpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdHlwZTogJ3JlZnJlc2gnXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiAnbmV4dCdcbiAgICAgICAgfTtcbiAgICB9XG4gICAgX2dldFByZWZsaWdodERhdGEocGFyYW1zKSB7XG4gICAgICAgIGNvbnN0IHsgcHJlZmxpZ2h0SHJlZiAsIHNob3VsZENhY2hlID1mYWxzZSAgfSA9IHBhcmFtcztcbiAgICAgICAgY29uc3QgeyBocmVmOiBjYWNoZUtleSAgfSA9IG5ldyBVUkwocHJlZmxpZ2h0SHJlZiwgd2luZG93LmxvY2F0aW9uLmhyZWYpO1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJyAmJiAhdGhpcy5pc1ByZXZpZXcgJiYgc2hvdWxkQ2FjaGUgJiYgdGhpcy5zZGVbY2FjaGVLZXldKSB7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuc2RlW2NhY2hlS2V5XSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZldGNoKHByZWZsaWdodEhyZWYsIHtcbiAgICAgICAgICAgIG1ldGhvZDogJ0hFQUQnLFxuICAgICAgICAgICAgY3JlZGVudGlhbHM6ICdzYW1lLW9yaWdpbicsXG4gICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgJ3gtbWlkZGxld2FyZS1wcmVmbGlnaHQnOiAnMSdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSkudGhlbigocmVzKT0+e1xuICAgICAgICAgICAgaWYgKCFyZXMub2spIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBwcmVmbGlnaHQgcmVxdWVzdGApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWRpcmVjdDogcmVzLmhlYWRlcnMuZ2V0KCdMb2NhdGlvbicpLFxuICAgICAgICAgICAgICAgIHJlZnJlc2g6IHJlcy5oZWFkZXJzLmhhcygneC1taWRkbGV3YXJlLXJlZnJlc2gnKSxcbiAgICAgICAgICAgICAgICByZXdyaXRlOiByZXMuaGVhZGVycy5nZXQoJ3gtbWlkZGxld2FyZS1yZXdyaXRlJyksXG4gICAgICAgICAgICAgICAgc3NyOiAhIXJlcy5oZWFkZXJzLmdldCgneC1taWRkbGV3YXJlLXNzcicpXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KS50aGVuKChkYXRhKT0+e1xuICAgICAgICAgICAgaWYgKHNob3VsZENhY2hlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZGVbY2FjaGVLZXldID0gZGF0YTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICB9KS5jYXRjaCgoZXJyKT0+e1xuICAgICAgICAgICAgZGVsZXRlIHRoaXMuc2RlW2NhY2hlS2V5XTtcbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGdldEluaXRpYWxQcm9wcyhDb21wb25lbnQsIGN0eCkge1xuICAgICAgICBjb25zdCB7IENvbXBvbmVudDogQXBwICB9ID0gdGhpcy5jb21wb25lbnRzWycvX2FwcCddO1xuICAgICAgICBjb25zdCBBcHBUcmVlID0gdGhpcy5fd3JhcEFwcChBcHApO1xuICAgICAgICBjdHguQXBwVHJlZSA9IEFwcFRyZWU7XG4gICAgICAgIHJldHVybiAoMCwgX3V0aWxzKS5sb2FkR2V0SW5pdGlhbFByb3BzKEFwcCwge1xuICAgICAgICAgICAgQXBwVHJlZSxcbiAgICAgICAgICAgIENvbXBvbmVudCxcbiAgICAgICAgICAgIHJvdXRlcjogdGhpcyxcbiAgICAgICAgICAgIGN0eFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgYWJvcnRDb21wb25lbnRMb2FkKGFzLCByb3V0ZVByb3BzKSB7XG4gICAgICAgIGlmICh0aGlzLmNsYykge1xuICAgICAgICAgICAgUm91dGVyLmV2ZW50cy5lbWl0KCdyb3V0ZUNoYW5nZUVycm9yJywgYnVpbGRDYW5jZWxsYXRpb25FcnJvcigpLCBhcywgcm91dGVQcm9wcyk7XG4gICAgICAgICAgICB0aGlzLmNsYygpO1xuICAgICAgICAgICAgdGhpcy5jbGMgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuICAgIG5vdGlmeShkYXRhLCByZXNldFNjcm9sbCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdWIoZGF0YSwgdGhpcy5jb21wb25lbnRzWycvX2FwcCddLkNvbXBvbmVudCwgcmVzZXRTY3JvbGwpO1xuICAgIH1cbn1cblJvdXRlci5ldmVudHMgPSAoMCwgX21pdHQpLmRlZmF1bHQoKTtcbmV4cG9ydHMuZGVmYXVsdCA9IFJvdXRlcjtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cm91dGVyLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImdldERvbWFpbkxvY2FsZSIsImFkZExvY2FsZSIsImRlbExvY2FsZSIsImhhc0Jhc2VQYXRoIiwiYWRkQmFzZVBhdGgiLCJkZWxCYXNlUGF0aCIsImlzTG9jYWxVUkwiLCJpbnRlcnBvbGF0ZUFzIiwicmVzb2x2ZUhyZWYiLCJkZWZhdWx0IiwiX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2giLCJyZXF1aXJlIiwiX3JvdXRlTG9hZGVyIiwiX2lzRXJyb3IiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2Rlbm9ybWFsaXplUGFnZVBhdGgiLCJfbm9ybWFsaXplTG9jYWxlUGF0aCIsIl9taXR0IiwiX3V0aWxzIiwiX2lzRHluYW1pYyIsIl9wYXJzZVJlbGF0aXZlVXJsIiwiX3F1ZXJ5c3RyaW5nIiwiX3Jlc29sdmVSZXdyaXRlcyIsIl9yb3V0ZU1hdGNoZXIiLCJfcm91dGVSZWdleCIsIl9nZXRNaWRkbGV3YXJlUmVnZXgiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGV0ZWN0RG9tYWluTG9jYWxlIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9JMThOX1NVUFBPUlQiLCJiYXNlUGF0aCIsIl9fTkVYVF9ST1VURVJfQkFTRVBBVEgiLCJidWlsZENhbmNlbGxhdGlvbkVycm9yIiwiYXNzaWduIiwiRXJyb3IiLCJjYW5jZWxsZWQiLCJhZGRQYXRoUHJlZml4IiwicGF0aCIsInByZWZpeCIsInN0YXJ0c1dpdGgiLCJwYXRobmFtZSIsInBhdGhOb1F1ZXJ5SGFzaCIsIm5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoIiwic3Vic3RyIiwibGVuZ3RoIiwibG9jYWxlIiwibG9jYWxlcyIsImRvbWFpbkxvY2FsZXMiLCJub3JtYWxpemVMb2NhbGVQYXRoIiwiZGV0ZWN0ZWRMb2NhbGUiLCJkZXRlY3RlZERvbWFpbiIsInVuZGVmaW5lZCIsImh0dHAiLCJkb21haW4iLCJkZWZhdWx0TG9jYWxlIiwicGF0aExvd2VyIiwidG9Mb3dlckNhc2UiLCJsb2NhbGVMb3dlciIsInF1ZXJ5SW5kZXgiLCJpbmRleE9mIiwiaGFzaEluZGV4Iiwic3Vic3RyaW5nIiwic2xpY2UiLCJ1cmwiLCJsb2NhdGlvbk9yaWdpbiIsImdldExvY2F0aW9uT3JpZ2luIiwicmVzb2x2ZWQiLCJVUkwiLCJvcmlnaW4iLCJfIiwicm91dGUiLCJhc1BhdGhuYW1lIiwicXVlcnkiLCJpbnRlcnBvbGF0ZWRSb3V0ZSIsImR5bmFtaWNSZWdleCIsImdldFJvdXRlUmVnZXgiLCJkeW5hbWljR3JvdXBzIiwiZ3JvdXBzIiwiZHluYW1pY01hdGNoZXMiLCJnZXRSb3V0ZU1hdGNoZXIiLCJwYXJhbXMiLCJrZXlzIiwiZXZlcnkiLCJwYXJhbSIsInJlcGVhdCIsIm9wdGlvbmFsIiwicmVwbGFjZWQiLCJBcnJheSIsImlzQXJyYXkiLCJyZXBsYWNlIiwibWFwIiwic2VnbWVudCIsImVuY29kZVVSSUNvbXBvbmVudCIsImpvaW4iLCJyZXN1bHQiLCJvbWl0UGFybXNGcm9tUXVlcnkiLCJmaWx0ZXJlZFF1ZXJ5IiwiZm9yRWFjaCIsImtleSIsImluY2x1ZGVzIiwicm91dGVyIiwiaHJlZiIsInJlc29sdmVBcyIsImJhc2UiLCJ1cmxBc1N0cmluZyIsImZvcm1hdFdpdGhWYWxpZGF0aW9uIiwidXJsUHJvdG9NYXRjaCIsIm1hdGNoIiwidXJsQXNTdHJpbmdOb1Byb3RvIiwidXJsUGFydHMiLCJzcGxpdCIsImNvbnNvbGUiLCJlcnJvciIsIm5vcm1hbGl6ZWRVcmwiLCJub3JtYWxpemVSZXBlYXRlZFNsYXNoZXMiLCJhc1BhdGgiLCJmaW5hbFVybCIsImludGVycG9sYXRlZEFzIiwiaXNEeW5hbWljUm91dGUiLCJzZWFyY2hQYXJhbXMiLCJzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5IiwiaGFzaCIsInJlc29sdmVkSHJlZiIsIl8xIiwic3RyaXBPcmlnaW4iLCJwcmVwYXJlVXJsQXMiLCJhcyIsInJlc29sdmVkQXMiLCJocmVmSGFkT3JpZ2luIiwiYXNIYWRPcmlnaW4iLCJwcmVwYXJlZFVybCIsInByZXBhcmVkQXMiLCJyZXNvbHZlRHluYW1pY1JvdXRlIiwicGFnZXMiLCJjbGVhblBhdGhuYW1lIiwicmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2giLCJkZW5vcm1hbGl6ZVBhZ2VQYXRoIiwic29tZSIsInBhZ2UiLCJyZSIsInRlc3QiLCJtYW51YWxTY3JvbGxSZXN0b3JhdGlvbiIsIl9fTkVYVF9TQ1JPTExfUkVTVE9SQVRJT04iLCJ3aW5kb3ciLCJoaXN0b3J5IiwidiIsInNlc3Npb25TdG9yYWdlIiwic2V0SXRlbSIsInJlbW92ZUl0ZW0iLCJuIiwiU1NHX0RBVEFfTk9UX0ZPVU5EIiwiU3ltYm9sIiwiZmV0Y2hSZXRyeSIsImF0dGVtcHRzIiwib3B0cyIsImZldGNoIiwiY3JlZGVudGlhbHMiLCJ0aGVuIiwicmVzIiwib2siLCJzdGF0dXMiLCJqc29uIiwiZGF0YSIsIm5vdEZvdW5kIiwidGV4dCIsImZldGNoTmV4dERhdGEiLCJkYXRhSHJlZiIsImlzU2VydmVyUmVuZGVyIiwiaW5mbGlnaHRDYWNoZSIsInBlcnNpc3RDYWNoZSIsImNhY2hlS2V5IiwibG9jYXRpb24iLCJjYXRjaCIsImVyciIsIm1hcmtBc3NldEVycm9yIiwiUm91dGVyIiwiY29uc3RydWN0b3IiLCJpbml0aWFsUHJvcHMiLCJwYWdlTG9hZGVyIiwiQXBwIiwid3JhcEFwcCIsIkNvbXBvbmVudCIsInN1YnNjcmlwdGlvbiIsImlzRmFsbGJhY2siLCJpc1ByZXZpZXciLCJzZGMiLCJzZHIiLCJzZGUiLCJfaWR4Iiwib25Qb3BTdGF0ZSIsImUiLCJzdGF0ZSIsImNoYW5nZVN0YXRlIiwiZ2V0VVJMIiwiX19OIiwiZm9yY2VkU2Nyb2xsIiwib3B0aW9ucyIsImlkeCIsIkpTT04iLCJzdHJpbmdpZnkiLCJ4Iiwic2VsZiIsInBhZ2VYT2Zmc2V0IiwieSIsInBhZ2VZT2Zmc2V0IiwiZ2V0SXRlbSIsInBhcnNlIiwicGFyc2VSZWxhdGl2ZVVybCIsImlzU3NyIiwiX2JwcyIsImNoYW5nZSIsInNoYWxsb3ciLCJfc2hhbGxvdyIsImNvbXBvbmVudHMiLCJyZWYiLCJpbml0aWFsIiwicHJvcHMiLCJfX05fU1NHIiwiX19OX1NTUCIsIl9fTl9SU0MiLCJfX25leHRfcnNjX18iLCJzdHlsZVNoZWV0cyIsImV2ZW50cyIsImF1dG9FeHBvcnREeW5hbWljIiwiX19ORVhUX0RBVEFfXyIsImF1dG9FeHBvcnQiLCJzdWIiLCJjbGMiLCJfd3JhcEFwcCIsImlzUmVhZHkiLCJnc3NwIiwiZ2lwIiwiYXBwR2lwIiwiZ3NwIiwic2VhcmNoIiwiX19ORVhUX0hBU19SRVdSSVRFUyIsImlzTG9jYWxlRG9tYWluIiwiaG9zdG5hbWUiLCJfc2hvdWxkUmVzb2x2ZUhyZWYiLCJhZGRFdmVudExpc3RlbmVyIiwic2Nyb2xsUmVzdG9yYXRpb24iLCJyZWxvYWQiLCJiYWNrIiwicHVzaCIsIm1ldGhvZCIsInNob3VsZFJlc29sdmVIcmVmIiwiX2giLCJwcmV2TG9jYWxlIiwicGFyc2VkQXMiLCJsb2NhbGVQYXRoUmVzdWx0IiwiZGlkTmF2aWdhdGUiLCJhc05vQmFzZVBhdGgiLCJQcm9taXNlIiwiU1QiLCJwZXJmb3JtYW5jZSIsIm1hcmsiLCJyb3V0ZVByb3BzIiwiX2luRmxpZ2h0Um91dGUiLCJhYm9ydENvbXBvbmVudExvYWQiLCJjbGVhbmVkQXMiLCJsb2NhbGVDaGFuZ2UiLCJvbmx5QUhhc2hDaGFuZ2UiLCJlbWl0Iiwic2Nyb2xsVG9IYXNoIiwibm90aWZ5IiwicGFyc2VkIiwicmV3cml0ZXMiLCJfX3Jld3JpdGVzIiwiYWxsIiwiZ2V0UGFnZUxpc3QiLCJnZXRDbGllbnRCdWlsZE1hbmlmZXN0IiwiZ2V0TWlkZGxld2FyZUxpc3QiLCJ1cmxJc05ldyIsInJld3JpdGVzUmVzdWx0IiwicCIsIm1hdGNoZWRQYWdlIiwiZWZmZWN0IiwiX3ByZWZsaWdodFJlcXVlc3QiLCJjYWNoZSIsInR5cGUiLCJuZXdBcyIsIm5ld1VybCIsImRlc3RpbmF0aW9uIiwicm91dGVSZWdleCIsInJvdXRlTWF0Y2giLCJzaG91bGRJbnRlcnBvbGF0ZSIsIm1pc3NpbmdQYXJhbXMiLCJmaWx0ZXIiLCJ3YXJuIiwicmVmMSIsInJvdXRlSW5mbyIsImdldFJvdXRlSW5mbyIsInBhZ2VQcm9wcyIsIl9fTl9SRURJUkVDVCIsIl9fTl9SRURJUkVDVF9CQVNFX1BBVEgiLCJwYXJzZWRIcmVmIiwiX19OX1BSRVZJRVciLCJub3RGb3VuZFJvdXRlIiwiZmV0Y2hDb21wb25lbnQiLCJzdGF0dXNDb2RlIiwiaXNWYWxpZFNoYWxsb3dSb3V0ZSIsIl9zY3JvbGwiLCJzaG91bGRTY3JvbGwiLCJzY3JvbGwiLCJyZXNldFNjcm9sbCIsInNldCIsImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50IiwibGFuZyIsImVycjEiLCJoYW5kbGVSb3V0ZUluZm9FcnJvciIsImxvYWRFcnJvckZhaWwiLCJpc0Fzc2V0RXJyb3IiLCJnZXRJbml0aWFsUHJvcHMiLCJnaXBFcnIiLCJyb3V0ZUluZm9FcnIiLCJleGlzdGluZ1JvdXRlSW5mbyIsImNhY2hlZFJvdXRlSW5mbyIsIm1vZCIsImlzVmFsaWRFbGVtZW50VHlwZSIsImdldERhdGFIcmVmIiwic3NnIiwicnNjIiwiX2dldERhdGEiLCJmcmVzaCIsIl9nZXRGbGlnaHREYXRhIiwiX19mbGlnaHRfc2VyaWFsaXplZF9fIiwiX19mbGlnaHRfZnJlc2hfXyIsImJlZm9yZVBvcFN0YXRlIiwiY2IiLCJvbGRVcmxOb0hhc2giLCJvbGRIYXNoIiwibmV3VXJsTm9IYXNoIiwibmV3SGFzaCIsInNjcm9sbFRvIiwiaWRFbCIsImdldEVsZW1lbnRCeUlkIiwic2Nyb2xsSW50b1ZpZXciLCJuYW1lRWwiLCJnZXRFbGVtZW50c0J5TmFtZSIsInByZWZldGNoIiwiZWZmZWN0cyIsIl9pc1NzZyIsImlzU3NnIiwicHJpb3JpdHkiLCJjYW5jZWwiLCJoYW5kbGVDYW5jZWxsZWQiLCJjb21wb25lbnRSZXN1bHQiLCJsb2FkUGFnZSIsImZuIiwicmVzb2x2ZSIsInNlcmlhbGl6ZWQiLCJmbnMiLCJyZXF1aXJlc1ByZWZsaWdodCIsIm1pZGRsZXdhcmUiLCJpc1NTUiIsImdldE1pZGRsZXdhcmVSZWdleCIsInByZWZsaWdodCIsIl9nZXRQcmVmbGlnaHREYXRhIiwicHJlZmxpZ2h0SHJlZiIsInNob3VsZENhY2hlIiwicmV3cml0ZSIsImZzUGF0aG5hbWUiLCJyZWRpcmVjdCIsImNsZWFuUmVkaXJlY3QiLCJyZWZyZXNoIiwic3NyIiwiaGVhZGVycyIsImdldCIsImhhcyIsImN0eCIsIkFwcFRyZWUiLCJsb2FkR2V0SW5pdGlhbFByb3BzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/router.js\n"); + +/***/ }), + +/***/ "./src/common/cardMouseEffect.js": +/*!***************************************!*\ + !*** ./src/common/cardMouseEffect.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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _getSiblings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getSiblings */ \"./src/common/getSiblings.js\");\n\n\nconst cardMouseEffect = featureEl => {\n var featuresitems = featureEl;\n\n if (featuresitems) {\n featuresitems.forEach(item => {\n item.onmouseover = function (event) {\n item.classList.add(\"active\");\n let siblings = (0,_getSiblings__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(item),\n siblingEl = siblings.map(e => e.classList.remove(\"active\"));\n };\n });\n }\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (cardMouseEffect);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL2NhcmRNb3VzZUVmZmVjdC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBOztBQUVBLE1BQU1DLGVBQWUsR0FBSUMsU0FBRCxJQUFlO0FBQ3JDLE1BQUlDLGFBQWEsR0FBR0QsU0FBcEI7O0FBQ0EsTUFBSUMsYUFBSixFQUFtQjtBQUNqQkEsSUFBQUEsYUFBYSxDQUFDQyxPQUFkLENBQXVCQyxJQUFELElBQVU7QUFDOUJBLE1BQUFBLElBQUksQ0FBQ0MsV0FBTCxHQUFtQixVQUFVQyxLQUFWLEVBQWlCO0FBQ2xDRixRQUFBQSxJQUFJLENBQUNHLFNBQUwsQ0FBZUMsR0FBZixDQUFtQixRQUFuQjtBQUNBLFlBQUlDLFFBQVEsR0FBR1Ysd0RBQVcsQ0FBQ0ssSUFBRCxDQUExQjtBQUFBLFlBQ0VNLFNBQVMsR0FBR0QsUUFBUSxDQUFDRSxHQUFULENBQWNDLENBQUQsSUFBT0EsQ0FBQyxDQUFDTCxTQUFGLENBQVlNLE1BQVosQ0FBbUIsUUFBbkIsQ0FBcEIsQ0FEZDtBQUVELE9BSkQ7QUFLRCxLQU5EO0FBT0Q7QUFDRixDQVhEOztBQWFBLGlFQUFlYixlQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmllLXJlYWN0Ly4vc3JjL2NvbW1vbi9jYXJkTW91c2VFZmZlY3QuanM/MmFlYyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0U2libGluZ3MgZnJvbSAnLi9nZXRTaWJsaW5ncydcclxuXHJcbmNvbnN0IGNhcmRNb3VzZUVmZmVjdCA9IChmZWF0dXJlRWwpID0+IHtcclxuICB2YXIgZmVhdHVyZXNpdGVtcyA9IGZlYXR1cmVFbDtcclxuICBpZiAoZmVhdHVyZXNpdGVtcykge1xyXG4gICAgZmVhdHVyZXNpdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgIGl0ZW0ub25tb3VzZW92ZXIgPSBmdW5jdGlvbiAoZXZlbnQpIHtcclxuICAgICAgICBpdGVtLmNsYXNzTGlzdC5hZGQoXCJhY3RpdmVcIik7XHJcbiAgICAgICAgbGV0IHNpYmxpbmdzID0gZ2V0U2libGluZ3MoaXRlbSksXHJcbiAgICAgICAgICBzaWJsaW5nRWwgPSBzaWJsaW5ncy5tYXAoKGUpID0+IGUuY2xhc3NMaXN0LnJlbW92ZShcImFjdGl2ZVwiKSk7XHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICB9XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjYXJkTW91c2VFZmZlY3Q7XHJcbiJdLCJuYW1lcyI6WyJnZXRTaWJsaW5ncyIsImNhcmRNb3VzZUVmZmVjdCIsImZlYXR1cmVFbCIsImZlYXR1cmVzaXRlbXMiLCJmb3JFYWNoIiwiaXRlbSIsIm9ubW91c2VvdmVyIiwiZXZlbnQiLCJjbGFzc0xpc3QiLCJhZGQiLCJzaWJsaW5ncyIsInNpYmxpbmdFbCIsIm1hcCIsImUiLCJyZW1vdmUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/common/cardMouseEffect.js\n"); + +/***/ }), + +/***/ "./src/common/fadeInFadeOut.js": +/*!*************************************!*\ + !*** ./src/common/fadeInFadeOut.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 */ \"fadeIn\": () => (/* binding */ fadeIn),\n/* harmony export */ \"fadeOut\": () => (/* binding */ fadeOut)\n/* harmony export */ });\nvar opacity = 0;\nvar intervalID = 0;\nconst fadeIn = (el, time) => {\n setInterval(show(el), time);\n};\n\nfunction show(el) {\n opacity = Number(window.getComputedStyle(el).getPropertyValue(\"opacity\"));\n\n if (opacity < 1) {\n opacity = opacity + 1;\n el.style.opacity = opacity;\n } else {\n clearInterval(intervalID);\n }\n}\n\nconst fadeOut = (el, time) => {\n setInterval(hide(el), time);\n};\n\nfunction hide(el) {\n opacity = Number(window.getComputedStyle(el).getPropertyValue(\"opacity\"));\n\n if (opacity > 0) {\n opacity = 0;\n el.style.opacity = opacity;\n } else {\n clearInterval(intervalID);\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL2ZhZGVJbkZhZGVPdXQuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxJQUFJQSxPQUFPLEdBQUcsQ0FBZDtBQUNBLElBQUlDLFVBQVUsR0FBRyxDQUFqQjtBQUNPLE1BQU1DLE1BQU0sR0FBRyxDQUFDQyxFQUFELEVBQUtDLElBQUwsS0FBYztBQUNsQ0MsRUFBQUEsV0FBVyxDQUFDQyxJQUFJLENBQUNILEVBQUQsQ0FBTCxFQUFXQyxJQUFYLENBQVg7QUFDRCxDQUZNOztBQUdQLFNBQVNFLElBQVQsQ0FBY0gsRUFBZCxFQUFrQjtBQUNoQkgsRUFBQUEsT0FBTyxHQUFHTyxNQUFNLENBQUNDLE1BQU0sQ0FBQ0MsZ0JBQVAsQ0FBd0JOLEVBQXhCLEVBQTRCTyxnQkFBNUIsQ0FBNkMsU0FBN0MsQ0FBRCxDQUFoQjs7QUFDQSxNQUFJVixPQUFPLEdBQUcsQ0FBZCxFQUFpQjtBQUNmQSxJQUFBQSxPQUFPLEdBQUdBLE9BQU8sR0FBRyxDQUFwQjtBQUNBRyxJQUFBQSxFQUFFLENBQUNRLEtBQUgsQ0FBU1gsT0FBVCxHQUFtQkEsT0FBbkI7QUFDRCxHQUhELE1BR087QUFDTFksSUFBQUEsYUFBYSxDQUFDWCxVQUFELENBQWI7QUFDRDtBQUNGOztBQUNNLE1BQU1ZLE9BQU8sR0FBRyxDQUFDVixFQUFELEVBQUtDLElBQUwsS0FBYztBQUNuQ0MsRUFBQUEsV0FBVyxDQUFDUyxJQUFJLENBQUNYLEVBQUQsQ0FBTCxFQUFXQyxJQUFYLENBQVg7QUFDRCxDQUZNOztBQUdQLFNBQVNVLElBQVQsQ0FBY1gsRUFBZCxFQUFrQjtBQUNoQkgsRUFBQUEsT0FBTyxHQUFHTyxNQUFNLENBQUNDLE1BQU0sQ0FBQ0MsZ0JBQVAsQ0FBd0JOLEVBQXhCLEVBQTRCTyxnQkFBNUIsQ0FBNkMsU0FBN0MsQ0FBRCxDQUFoQjs7QUFDQSxNQUFJVixPQUFPLEdBQUcsQ0FBZCxFQUFpQjtBQUNmQSxJQUFBQSxPQUFPLEdBQUcsQ0FBVjtBQUNBRyxJQUFBQSxFQUFFLENBQUNRLEtBQUgsQ0FBU1gsT0FBVCxHQUFtQkEsT0FBbkI7QUFDRCxHQUhELE1BR087QUFDTFksSUFBQUEsYUFBYSxDQUFDWCxVQUFELENBQWI7QUFDRDtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmllLXJlYWN0Ly4vc3JjL2NvbW1vbi9mYWRlSW5GYWRlT3V0LmpzPzc0MzYiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIG9wYWNpdHkgPSAwO1xyXG52YXIgaW50ZXJ2YWxJRCA9IDA7XHJcbmV4cG9ydCBjb25zdCBmYWRlSW4gPSAoZWwsIHRpbWUpID0+IHtcclxuICBzZXRJbnRlcnZhbChzaG93KGVsKSwgdGltZSk7XHJcbn07XHJcbmZ1bmN0aW9uIHNob3coZWwpIHtcclxuICBvcGFjaXR5ID0gTnVtYmVyKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsKS5nZXRQcm9wZXJ0eVZhbHVlKFwib3BhY2l0eVwiKSk7XHJcbiAgaWYgKG9wYWNpdHkgPCAxKSB7XHJcbiAgICBvcGFjaXR5ID0gb3BhY2l0eSArIDE7XHJcbiAgICBlbC5zdHlsZS5vcGFjaXR5ID0gb3BhY2l0eTtcclxuICB9IGVsc2Uge1xyXG4gICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbElEKTtcclxuICB9XHJcbn1cclxuZXhwb3J0IGNvbnN0IGZhZGVPdXQgPSAoZWwsIHRpbWUpID0+IHtcclxuICBzZXRJbnRlcnZhbChoaWRlKGVsKSwgdGltZSk7XHJcbn07XHJcbmZ1bmN0aW9uIGhpZGUoZWwpIHtcclxuICBvcGFjaXR5ID0gTnVtYmVyKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsKS5nZXRQcm9wZXJ0eVZhbHVlKFwib3BhY2l0eVwiKSk7XHJcbiAgaWYgKG9wYWNpdHkgPiAwKSB7XHJcbiAgICBvcGFjaXR5ID0gMDtcclxuICAgIGVsLnN0eWxlLm9wYWNpdHkgPSBvcGFjaXR5O1xyXG4gIH0gZWxzZSB7XHJcbiAgICBjbGVhckludGVydmFsKGludGVydmFsSUQpO1xyXG4gIH1cclxufVxyXG4iXSwibmFtZXMiOlsib3BhY2l0eSIsImludGVydmFsSUQiLCJmYWRlSW4iLCJlbCIsInRpbWUiLCJzZXRJbnRlcnZhbCIsInNob3ciLCJOdW1iZXIiLCJ3aW5kb3ciLCJnZXRDb21wdXRlZFN0eWxlIiwiZ2V0UHJvcGVydHlWYWx1ZSIsInN0eWxlIiwiY2xlYXJJbnRlcnZhbCIsImZhZGVPdXQiLCJoaWRlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/common/fadeInFadeOut.js\n"); + +/***/ }), + +/***/ "./src/common/getSiblings.js": +/*!***********************************!*\ + !*** ./src/common/getSiblings.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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nconst getSiblings = e => {\n let siblings = [];\n\n if (!e.parentNode) {\n return siblings;\n }\n\n let sibling = e.parentNode.firstChild;\n\n while (sibling) {\n if (sibling.nodeType === 1 && sibling !== e) {\n siblings.push(sibling);\n }\n\n sibling = sibling.nextSibling;\n }\n\n return siblings;\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getSiblings);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL2dldFNpYmxpbmdzLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSxNQUFNQSxXQUFXLEdBQUlDLENBQUQsSUFBTztBQUN6QixNQUFJQyxRQUFRLEdBQUcsRUFBZjs7QUFDQSxNQUFJLENBQUNELENBQUMsQ0FBQ0UsVUFBUCxFQUFtQjtBQUNqQixXQUFPRCxRQUFQO0FBQ0Q7O0FBQ0QsTUFBSUUsT0FBTyxHQUFHSCxDQUFDLENBQUNFLFVBQUYsQ0FBYUUsVUFBM0I7O0FBQ0EsU0FBT0QsT0FBUCxFQUFnQjtBQUNkLFFBQUlBLE9BQU8sQ0FBQ0UsUUFBUixLQUFxQixDQUFyQixJQUEwQkYsT0FBTyxLQUFLSCxDQUExQyxFQUE2QztBQUMzQ0MsTUFBQUEsUUFBUSxDQUFDSyxJQUFULENBQWNILE9BQWQ7QUFDRDs7QUFDREEsSUFBQUEsT0FBTyxHQUFHQSxPQUFPLENBQUNJLFdBQWxCO0FBQ0Q7O0FBQ0QsU0FBT04sUUFBUDtBQUNELENBYkQ7O0FBZUEsaUVBQWVGLFdBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly92aWUtcmVhY3QvLi9zcmMvY29tbW9uL2dldFNpYmxpbmdzLmpzPzhlNjUiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZ2V0U2libGluZ3MgPSAoZSkgPT4ge1xyXG4gIGxldCBzaWJsaW5ncyA9IFtdO1xyXG4gIGlmICghZS5wYXJlbnROb2RlKSB7XHJcbiAgICByZXR1cm4gc2libGluZ3M7XHJcbiAgfVxyXG4gIGxldCBzaWJsaW5nID0gZS5wYXJlbnROb2RlLmZpcnN0Q2hpbGQ7XHJcbiAgd2hpbGUgKHNpYmxpbmcpIHtcclxuICAgIGlmIChzaWJsaW5nLm5vZGVUeXBlID09PSAxICYmIHNpYmxpbmcgIT09IGUpIHtcclxuICAgICAgc2libGluZ3MucHVzaChzaWJsaW5nKTtcclxuICAgIH1cclxuICAgIHNpYmxpbmcgPSBzaWJsaW5nLm5leHRTaWJsaW5nO1xyXG4gIH1cclxuICByZXR1cm4gc2libGluZ3M7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBnZXRTaWJsaW5ncztcclxuIl0sIm5hbWVzIjpbImdldFNpYmxpbmdzIiwiZSIsInNpYmxpbmdzIiwicGFyZW50Tm9kZSIsInNpYmxpbmciLCJmaXJzdENoaWxkIiwibm9kZVR5cGUiLCJwdXNoIiwibmV4dFNpYmxpbmciXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/common/getSiblings.js\n"); + +/***/ }), + +/***/ "./src/common/initIsotope.js": +/*!***********************************!*\ + !*** ./src/common/initIsotope.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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nconst initIsotope = () => {\n var grid = document.querySelectorAll(\".gallery\");\n var iso;\n\n if (grid.length >= 1) {\n grid.forEach(item => {\n iso = new Isotope(item, {\n itemSelector: \".items\"\n });\n });\n }\n\n var gridMons = document.querySelectorAll(\".gallery-mons\");\n\n if (gridMons.length >= 1) {\n gridMons.forEach(item => {\n iso = new Isotope(item, {\n itemSelector: \".items\",\n masonry: {\n columnWidth: \".width2\"\n }\n });\n });\n }\n\n var filtersElem = document.querySelector(\".filtering\");\n\n if (filtersElem) {\n filtersElem.addEventListener(\"click\", function (event) {\n if (!matchesSelector(event.target, \"span\")) {\n return;\n }\n\n var filterValue = event.target.getAttribute(\"data-filter\");\n filterValue = filterValue;\n iso.arrange({\n filter: filterValue\n });\n });\n var buttonGroups = document.querySelectorAll(\".filtering\");\n\n for (var i = 0, len = buttonGroups.length; i < len; i++) {\n var buttonGroup = buttonGroups[i];\n radioButtonGroup(buttonGroup);\n }\n\n function radioButtonGroup(buttonGroup) {\n buttonGroup.addEventListener(\"click\", function (event) {\n if (!matchesSelector(event.target, \"span\")) {\n return;\n }\n\n buttonGroup.querySelector(\".active\").classList.remove(\"active\");\n event.target.classList.add(\"active\");\n });\n }\n }\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (initIsotope);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL2luaXRJc290b3BlLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSxNQUFNQSxXQUFXLEdBQUcsTUFBTTtBQUN4QixNQUFJQyxJQUFJLEdBQUdDLFFBQVEsQ0FBQ0MsZ0JBQVQsQ0FBMEIsVUFBMUIsQ0FBWDtBQUNBLE1BQUlDLEdBQUo7O0FBQ0EsTUFBSUgsSUFBSSxDQUFDSSxNQUFMLElBQWUsQ0FBbkIsRUFBc0I7QUFDcEJKLElBQUFBLElBQUksQ0FBQ0ssT0FBTCxDQUFjQyxJQUFELElBQVU7QUFDckJILE1BQUFBLEdBQUcsR0FBRyxJQUFJSSxPQUFKLENBQVlELElBQVosRUFBa0I7QUFDdEJFLFFBQUFBLFlBQVksRUFBRTtBQURRLE9BQWxCLENBQU47QUFHRCxLQUpEO0FBS0Q7O0FBRUQsTUFBSUMsUUFBUSxHQUFHUixRQUFRLENBQUNDLGdCQUFULENBQTBCLGVBQTFCLENBQWY7O0FBQ0EsTUFBSU8sUUFBUSxDQUFDTCxNQUFULElBQW1CLENBQXZCLEVBQTBCO0FBQ3hCSyxJQUFBQSxRQUFRLENBQUNKLE9BQVQsQ0FBa0JDLElBQUQsSUFBVTtBQUN6QkgsTUFBQUEsR0FBRyxHQUFHLElBQUlJLE9BQUosQ0FBWUQsSUFBWixFQUFrQjtBQUN0QkUsUUFBQUEsWUFBWSxFQUFFLFFBRFE7QUFFdEJFLFFBQUFBLE9BQU8sRUFBRTtBQUNQQyxVQUFBQSxXQUFXLEVBQUU7QUFETjtBQUZhLE9BQWxCLENBQU47QUFNRCxLQVBEO0FBUUQ7O0FBRUQsTUFBSUMsV0FBVyxHQUFHWCxRQUFRLENBQUNZLGFBQVQsQ0FBdUIsWUFBdkIsQ0FBbEI7O0FBQ0EsTUFBSUQsV0FBSixFQUFpQjtBQUNmQSxJQUFBQSxXQUFXLENBQUNFLGdCQUFaLENBQTZCLE9BQTdCLEVBQXNDLFVBQVVDLEtBQVYsRUFBaUI7QUFDckQsVUFBSSxDQUFDQyxlQUFlLENBQUNELEtBQUssQ0FBQ0UsTUFBUCxFQUFlLE1BQWYsQ0FBcEIsRUFBNEM7QUFDMUM7QUFDRDs7QUFDRCxVQUFJQyxXQUFXLEdBQUdILEtBQUssQ0FBQ0UsTUFBTixDQUFhRSxZQUFiLENBQTBCLGFBQTFCLENBQWxCO0FBQ0FELE1BQUFBLFdBQVcsR0FBR0EsV0FBZDtBQUNBZixNQUFBQSxHQUFHLENBQUNpQixPQUFKLENBQVk7QUFBRUMsUUFBQUEsTUFBTSxFQUFFSDtBQUFWLE9BQVo7QUFDRCxLQVBEO0FBUUEsUUFBSUksWUFBWSxHQUFHckIsUUFBUSxDQUFDQyxnQkFBVCxDQUEwQixZQUExQixDQUFuQjs7QUFDQSxTQUFLLElBQUlxQixDQUFDLEdBQUcsQ0FBUixFQUFXQyxHQUFHLEdBQUdGLFlBQVksQ0FBQ2xCLE1BQW5DLEVBQTJDbUIsQ0FBQyxHQUFHQyxHQUEvQyxFQUFvREQsQ0FBQyxFQUFyRCxFQUF5RDtBQUN2RCxVQUFJRSxXQUFXLEdBQUdILFlBQVksQ0FBQ0MsQ0FBRCxDQUE5QjtBQUNBRyxNQUFBQSxnQkFBZ0IsQ0FBQ0QsV0FBRCxDQUFoQjtBQUNEOztBQUNELGFBQVNDLGdCQUFULENBQTBCRCxXQUExQixFQUF1QztBQUNyQ0EsTUFBQUEsV0FBVyxDQUFDWCxnQkFBWixDQUE2QixPQUE3QixFQUFzQyxVQUFVQyxLQUFWLEVBQWlCO0FBQ3JELFlBQUksQ0FBQ0MsZUFBZSxDQUFDRCxLQUFLLENBQUNFLE1BQVAsRUFBZSxNQUFmLENBQXBCLEVBQTRDO0FBQzFDO0FBQ0Q7O0FBQ0RRLFFBQUFBLFdBQVcsQ0FBQ1osYUFBWixDQUEwQixTQUExQixFQUFxQ2MsU0FBckMsQ0FBK0NDLE1BQS9DLENBQXNELFFBQXREO0FBQ0FiLFFBQUFBLEtBQUssQ0FBQ0UsTUFBTixDQUFhVSxTQUFiLENBQXVCRSxHQUF2QixDQUEyQixRQUEzQjtBQUNELE9BTkQ7QUFPRDtBQUNGO0FBQ0YsQ0FoREQ7O0FBa0RBLGlFQUFlOUIsV0FBZiIsInNvdXJjZXMiOlsid2VicGFjazovL3ZpZS1yZWFjdC8uL3NyYy9jb21tb24vaW5pdElzb3RvcGUuanM/NGFlYSJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBpbml0SXNvdG9wZSA9ICgpID0+IHtcclxuICB2YXIgZ3JpZCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuZ2FsbGVyeVwiKTtcclxuICB2YXIgaXNvO1xyXG4gIGlmIChncmlkLmxlbmd0aCA+PSAxKSB7XHJcbiAgICBncmlkLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgaXNvID0gbmV3IElzb3RvcGUoaXRlbSwge1xyXG4gICAgICAgIGl0ZW1TZWxlY3RvcjogXCIuaXRlbXNcIixcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHZhciBncmlkTW9ucyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuZ2FsbGVyeS1tb25zXCIpO1xyXG4gIGlmIChncmlkTW9ucy5sZW5ndGggPj0gMSkge1xyXG4gICAgZ3JpZE1vbnMuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICBpc28gPSBuZXcgSXNvdG9wZShpdGVtLCB7XHJcbiAgICAgICAgaXRlbVNlbGVjdG9yOiBcIi5pdGVtc1wiLFxyXG4gICAgICAgIG1hc29ucnk6IHtcclxuICAgICAgICAgIGNvbHVtbldpZHRoOiBcIi53aWR0aDJcIixcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdmFyIGZpbHRlcnNFbGVtID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5maWx0ZXJpbmdcIik7XHJcbiAgaWYgKGZpbHRlcnNFbGVtKSB7XHJcbiAgICBmaWx0ZXJzRWxlbS5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XHJcbiAgICAgIGlmICghbWF0Y2hlc1NlbGVjdG9yKGV2ZW50LnRhcmdldCwgXCJzcGFuXCIpKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHZhciBmaWx0ZXJWYWx1ZSA9IGV2ZW50LnRhcmdldC5nZXRBdHRyaWJ1dGUoXCJkYXRhLWZpbHRlclwiKTtcclxuICAgICAgZmlsdGVyVmFsdWUgPSBmaWx0ZXJWYWx1ZTtcclxuICAgICAgaXNvLmFycmFuZ2UoeyBmaWx0ZXI6IGZpbHRlclZhbHVlIH0pO1xyXG4gICAgfSk7XHJcbiAgICB2YXIgYnV0dG9uR3JvdXBzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi5maWx0ZXJpbmdcIik7XHJcbiAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gYnV0dG9uR3JvdXBzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICAgIHZhciBidXR0b25Hcm91cCA9IGJ1dHRvbkdyb3Vwc1tpXTtcclxuICAgICAgcmFkaW9CdXR0b25Hcm91cChidXR0b25Hcm91cCk7XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiByYWRpb0J1dHRvbkdyb3VwKGJ1dHRvbkdyb3VwKSB7XHJcbiAgICAgIGJ1dHRvbkdyb3VwLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcclxuICAgICAgICBpZiAoIW1hdGNoZXNTZWxlY3RvcihldmVudC50YXJnZXQsIFwic3BhblwiKSkge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBidXR0b25Hcm91cC5xdWVyeVNlbGVjdG9yKFwiLmFjdGl2ZVwiKS5jbGFzc0xpc3QucmVtb3ZlKFwiYWN0aXZlXCIpO1xyXG4gICAgICAgIGV2ZW50LnRhcmdldC5jbGFzc0xpc3QuYWRkKFwiYWN0aXZlXCIpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBpbml0SXNvdG9wZSJdLCJuYW1lcyI6WyJpbml0SXNvdG9wZSIsImdyaWQiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJpc28iLCJsZW5ndGgiLCJmb3JFYWNoIiwiaXRlbSIsIklzb3RvcGUiLCJpdGVtU2VsZWN0b3IiLCJncmlkTW9ucyIsIm1hc29ucnkiLCJjb2x1bW5XaWR0aCIsImZpbHRlcnNFbGVtIiwicXVlcnlTZWxlY3RvciIsImFkZEV2ZW50TGlzdGVuZXIiLCJldmVudCIsIm1hdGNoZXNTZWxlY3RvciIsInRhcmdldCIsImZpbHRlclZhbHVlIiwiZ2V0QXR0cmlidXRlIiwiYXJyYW5nZSIsImZpbHRlciIsImJ1dHRvbkdyb3VwcyIsImkiLCJsZW4iLCJidXR0b25Hcm91cCIsInJhZGlvQnV0dG9uR3JvdXAiLCJjbGFzc0xpc3QiLCJyZW1vdmUiLCJhZGQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/common/initIsotope.js\n"); + +/***/ }), + +/***/ "./src/common/navbar.js": +/*!******************************!*\ + !*** ./src/common/navbar.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 */ \"handleDropdown\": () => (/* binding */ handleDropdown),\n/* harmony export */ \"handleMobileDropdown\": () => (/* binding */ handleMobileDropdown)\n/* harmony export */ });\n/* harmony import */ var _getSiblings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getSiblings */ \"./src/common/getSiblings.js\");\n\nconst handleDropdown = e => {\n (0,_getSiblings__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(e.target.parentElement).filter(item => item.classList.contains(\"show\")).map(item => {\n item.classList.remove(\"show\");\n\n if (item.childNodes[0]) {\n item.childNodes[0].setAttribute(\"aria-expanded\", false);\n }\n\n if (item.childNodes[1]) {\n item.childNodes[1].classList.remove(\"show\");\n }\n });\n e.target.parentElement.classList.toggle(\"show\");\n e.target.setAttribute(\"aria-expanded\", true);\n e.target.parentElement.childNodes[1].classList.toggle(\"show\");\n};\nconst handleMobileDropdown = e => {\n document.getElementById(\"navbarSupportedContent\").classList.toggle(\"show-with-trans\");\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL25hdmJhci5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUVPLE1BQU1DLGNBQWMsR0FBSUMsQ0FBRCxJQUFPO0FBQ25DRixFQUFBQSx3REFBVyxDQUFDRSxDQUFDLENBQUNDLE1BQUYsQ0FBU0MsYUFBVixDQUFYLENBQ0dDLE1BREgsQ0FDV0MsSUFBRCxJQUFVQSxJQUFJLENBQUNDLFNBQUwsQ0FBZUMsUUFBZixDQUF3QixNQUF4QixDQURwQixFQUVHQyxHQUZILENBRVFILElBQUQsSUFBVTtBQUNiQSxJQUFBQSxJQUFJLENBQUNDLFNBQUwsQ0FBZUcsTUFBZixDQUFzQixNQUF0Qjs7QUFDQSxRQUFJSixJQUFJLENBQUNLLFVBQUwsQ0FBZ0IsQ0FBaEIsQ0FBSixFQUF3QjtBQUN0QkwsTUFBQUEsSUFBSSxDQUFDSyxVQUFMLENBQWdCLENBQWhCLEVBQW1CQyxZQUFuQixDQUFnQyxlQUFoQyxFQUFpRCxLQUFqRDtBQUNEOztBQUNELFFBQUlOLElBQUksQ0FBQ0ssVUFBTCxDQUFnQixDQUFoQixDQUFKLEVBQXdCO0FBQ3RCTCxNQUFBQSxJQUFJLENBQUNLLFVBQUwsQ0FBZ0IsQ0FBaEIsRUFBbUJKLFNBQW5CLENBQTZCRyxNQUE3QixDQUFvQyxNQUFwQztBQUNEO0FBQ0YsR0FWSDtBQVdBUixFQUFBQSxDQUFDLENBQUNDLE1BQUYsQ0FBU0MsYUFBVCxDQUF1QkcsU0FBdkIsQ0FBaUNNLE1BQWpDLENBQXdDLE1BQXhDO0FBQ0FYLEVBQUFBLENBQUMsQ0FBQ0MsTUFBRixDQUFTUyxZQUFULENBQXNCLGVBQXRCLEVBQXVDLElBQXZDO0FBQ0FWLEVBQUFBLENBQUMsQ0FBQ0MsTUFBRixDQUFTQyxhQUFULENBQXVCTyxVQUF2QixDQUFrQyxDQUFsQyxFQUFxQ0osU0FBckMsQ0FBK0NNLE1BQS9DLENBQXNELE1BQXREO0FBQ0QsQ0FmTTtBQWlCQSxNQUFNQyxvQkFBb0IsR0FBSVosQ0FBRCxJQUFPO0FBQ3pDYSxFQUFBQSxRQUFRLENBQ0xDLGNBREgsQ0FDa0Isd0JBRGxCLEVBRUdULFNBRkgsQ0FFYU0sTUFGYixDQUVvQixpQkFGcEI7QUFHRCxDQUpNIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmllLXJlYWN0Ly4vc3JjL2NvbW1vbi9uYXZiYXIuanM/MWU3NiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0U2libGluZ3MgZnJvbSAnLi9nZXRTaWJsaW5ncydcclxuXHJcbmV4cG9ydCBjb25zdCBoYW5kbGVEcm9wZG93biA9IChlKSA9PiB7XHJcbiAgZ2V0U2libGluZ3MoZS50YXJnZXQucGFyZW50RWxlbWVudClcclxuICAgIC5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uY2xhc3NMaXN0LmNvbnRhaW5zKFwic2hvd1wiKSlcclxuICAgIC5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgaXRlbS5jbGFzc0xpc3QucmVtb3ZlKFwic2hvd1wiKTtcclxuICAgICAgaWYgKGl0ZW0uY2hpbGROb2Rlc1swXSkge1xyXG4gICAgICAgIGl0ZW0uY2hpbGROb2Rlc1swXS5zZXRBdHRyaWJ1dGUoXCJhcmlhLWV4cGFuZGVkXCIsIGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaXRlbS5jaGlsZE5vZGVzWzFdKSB7XHJcbiAgICAgICAgaXRlbS5jaGlsZE5vZGVzWzFdLmNsYXNzTGlzdC5yZW1vdmUoXCJzaG93XCIpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICBlLnRhcmdldC5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoXCJzaG93XCIpO1xyXG4gIGUudGFyZ2V0LnNldEF0dHJpYnV0ZShcImFyaWEtZXhwYW5kZWRcIiwgdHJ1ZSk7XHJcbiAgZS50YXJnZXQucGFyZW50RWxlbWVudC5jaGlsZE5vZGVzWzFdLmNsYXNzTGlzdC50b2dnbGUoXCJzaG93XCIpO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGhhbmRsZU1vYmlsZURyb3Bkb3duID0gKGUpID0+IHtcclxuICBkb2N1bWVudFxyXG4gICAgLmdldEVsZW1lbnRCeUlkKFwibmF2YmFyU3VwcG9ydGVkQ29udGVudFwiKVxyXG4gICAgLmNsYXNzTGlzdC50b2dnbGUoXCJzaG93LXdpdGgtdHJhbnNcIik7XHJcbn07Il0sIm5hbWVzIjpbImdldFNpYmxpbmdzIiwiaGFuZGxlRHJvcGRvd24iLCJlIiwidGFyZ2V0IiwicGFyZW50RWxlbWVudCIsImZpbHRlciIsIml0ZW0iLCJjbGFzc0xpc3QiLCJjb250YWlucyIsIm1hcCIsInJlbW92ZSIsImNoaWxkTm9kZXMiLCJzZXRBdHRyaWJ1dGUiLCJ0b2dnbGUiLCJoYW5kbGVNb2JpbGVEcm9wZG93biIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/common/navbar.js\n"); + +/***/ }), + +/***/ "./src/common/removeSlashpagination.js": +/*!*********************************************!*\ + !*** ./src/common/removeSlashpagination.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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nconst removeSlashFromPagination = () => {\n if (document.querySelectorAll(\".swiper-pagination\")) {\n document.querySelectorAll(\".swiper-pagination\").forEach(item => {\n item.innerHTML = item.innerHTML.replace(\" / \", \"\");\n });\n }\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (removeSlashFromPagination);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL3JlbW92ZVNsYXNocGFnaW5hdGlvbi5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUEsTUFBTUEseUJBQXlCLEdBQUcsTUFBTTtBQUN0QyxNQUFJQyxRQUFRLENBQUNDLGdCQUFULENBQTBCLG9CQUExQixDQUFKLEVBQXFEO0FBQ25ERCxJQUFBQSxRQUFRLENBQUNDLGdCQUFULENBQTBCLG9CQUExQixFQUFnREMsT0FBaEQsQ0FBeURDLElBQUQsSUFBVTtBQUNoRUEsTUFBQUEsSUFBSSxDQUFDQyxTQUFMLEdBQWlCRCxJQUFJLENBQUNDLFNBQUwsQ0FBZUMsT0FBZixDQUF1QixLQUF2QixFQUE4QixFQUE5QixDQUFqQjtBQUNELEtBRkQ7QUFHRDtBQUNGLENBTkQ7O0FBT0EsaUVBQWVOLHlCQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmllLXJlYWN0Ly4vc3JjL2NvbW1vbi9yZW1vdmVTbGFzaHBhZ2luYXRpb24uanM/YjA0OCJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCByZW1vdmVTbGFzaEZyb21QYWdpbmF0aW9uID0gKCkgPT4ge1xyXG4gIGlmIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLnN3aXBlci1wYWdpbmF0aW9uXCIpKSB7XHJcbiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLnN3aXBlci1wYWdpbmF0aW9uXCIpLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgaXRlbS5pbm5lckhUTUwgPSBpdGVtLmlubmVySFRNTC5yZXBsYWNlKFwiIC8gXCIsIFwiXCIpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59O1xyXG5leHBvcnQgZGVmYXVsdCByZW1vdmVTbGFzaEZyb21QYWdpbmF0aW9uO1xyXG4iXSwibmFtZXMiOlsicmVtb3ZlU2xhc2hGcm9tUGFnaW5hdGlvbiIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvckFsbCIsImZvckVhY2giLCJpdGVtIiwiaW5uZXJIVE1MIiwicmVwbGFjZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/common/removeSlashpagination.js\n"); + +/***/ }), + +/***/ "./src/common/teamSkillsProgress.js": +/*!******************************************!*\ + !*** ./src/common/teamSkillsProgress.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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nconst teamSkillsProgress = () => {\n let teamSection = document.querySelector(\".team-crv\");\n\n if (teamSection) {\n window.addEventListener(\"scroll\", () => {\n document.querySelectorAll(\".skill-progress .progres\").forEach(item => {\n let myVal = item.getAttribute(\"data-value\");\n\n if (window.pageYOffset > teamSection.offsetTop - 200) {\n item.style.width = myVal;\n }\n });\n });\n }\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (teamSkillsProgress);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL3RlYW1Ta2lsbHNQcm9ncmVzcy5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUEsTUFBTUEsa0JBQWtCLEdBQUcsTUFBTTtBQUMvQixNQUFJQyxXQUFXLEdBQUdDLFFBQVEsQ0FBQ0MsYUFBVCxDQUF1QixXQUF2QixDQUFsQjs7QUFDQSxNQUFJRixXQUFKLEVBQWlCO0FBQ2ZHLElBQUFBLE1BQU0sQ0FBQ0MsZ0JBQVAsQ0FBd0IsUUFBeEIsRUFBa0MsTUFBTTtBQUN0Q0gsTUFBQUEsUUFBUSxDQUFDSSxnQkFBVCxDQUEwQiwwQkFBMUIsRUFBc0RDLE9BQXRELENBQStEQyxJQUFELElBQVU7QUFDdEUsWUFBSUMsS0FBSyxHQUFHRCxJQUFJLENBQUNFLFlBQUwsQ0FBa0IsWUFBbEIsQ0FBWjs7QUFDQSxZQUFJTixNQUFNLENBQUNPLFdBQVAsR0FBcUJWLFdBQVcsQ0FBQ1csU0FBWixHQUF3QixHQUFqRCxFQUFzRDtBQUNwREosVUFBQUEsSUFBSSxDQUFDSyxLQUFMLENBQVdDLEtBQVgsR0FBbUJMLEtBQW5CO0FBQ0Q7QUFDRixPQUxEO0FBTUQsS0FQRDtBQVFEO0FBQ0YsQ0FaRDs7QUFjQSxpRUFBZVQsa0JBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly92aWUtcmVhY3QvLi9zcmMvY29tbW9uL3RlYW1Ta2lsbHNQcm9ncmVzcy5qcz8xYTlhIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHRlYW1Ta2lsbHNQcm9ncmVzcyA9ICgpID0+IHtcclxuICBsZXQgdGVhbVNlY3Rpb24gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLnRlYW0tY3J2XCIpO1xyXG4gIGlmICh0ZWFtU2VjdGlvbikge1xyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgKCkgPT4ge1xyXG4gICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLnNraWxsLXByb2dyZXNzIC5wcm9ncmVzXCIpLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgICBsZXQgbXlWYWwgPSBpdGVtLmdldEF0dHJpYnV0ZShcImRhdGEtdmFsdWVcIik7XHJcbiAgICAgICAgaWYgKHdpbmRvdy5wYWdlWU9mZnNldCA+IHRlYW1TZWN0aW9uLm9mZnNldFRvcCAtIDIwMCkge1xyXG4gICAgICAgICAgaXRlbS5zdHlsZS53aWR0aCA9IG15VmFsO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCB0ZWFtU2tpbGxzUHJvZ3Jlc3M7XHJcbiJdLCJuYW1lcyI6WyJ0ZWFtU2tpbGxzUHJvZ3Jlc3MiLCJ0ZWFtU2VjdGlvbiIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJxdWVyeVNlbGVjdG9yQWxsIiwiZm9yRWFjaCIsIml0ZW0iLCJteVZhbCIsImdldEF0dHJpYnV0ZSIsInBhZ2VZT2Zmc2V0Iiwib2Zmc2V0VG9wIiwic3R5bGUiLCJ3aWR0aCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/common/teamSkillsProgress.js\n"); + +/***/ }), + +/***/ "./src/common/thumparallax.js": +/*!************************************!*\ + !*** ./src/common/thumparallax.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 */ \"thumparallax\": () => (/* binding */ thumparallax),\n/* harmony export */ \"thumparallaxDown\": () => (/* binding */ thumparallaxDown)\n/* harmony export */ });\nconst thumparallax = () => {\n var imageUp = document.getElementsByClassName(\"thumparallax\");\n\n if (imageUp) {\n new simpleParallax(imageUp, {\n delay: 1,\n scale: 1.1\n });\n }\n};\nconst thumparallaxDown = () => {\n var imageDown = document.getElementsByClassName(\"thumparallax-down\");\n\n if (imageDown) {\n new simpleParallax(imageDown, {\n orientation: \"down\",\n delay: 1,\n scale: 1.1\n });\n }\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL3RodW1wYXJhbGxheC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFPLE1BQU1BLFlBQVksR0FBRyxNQUFNO0FBQ2hDLE1BQUlDLE9BQU8sR0FBR0MsUUFBUSxDQUFDQyxzQkFBVCxDQUFnQyxjQUFoQyxDQUFkOztBQUNBLE1BQUlGLE9BQUosRUFBYTtBQUNYLFFBQUlHLGNBQUosQ0FBbUJILE9BQW5CLEVBQTRCO0FBQzFCSSxNQUFBQSxLQUFLLEVBQUUsQ0FEbUI7QUFFMUJDLE1BQUFBLEtBQUssRUFBRTtBQUZtQixLQUE1QjtBQUlEO0FBQ0YsQ0FSTTtBQVNBLE1BQU1DLGdCQUFnQixHQUFHLE1BQU07QUFDcEMsTUFBSUMsU0FBUyxHQUFHTixRQUFRLENBQUNDLHNCQUFULENBQWdDLG1CQUFoQyxDQUFoQjs7QUFDQSxNQUFJSyxTQUFKLEVBQWU7QUFDYixRQUFJSixjQUFKLENBQW1CSSxTQUFuQixFQUE4QjtBQUM1QkMsTUFBQUEsV0FBVyxFQUFFLE1BRGU7QUFFNUJKLE1BQUFBLEtBQUssRUFBRSxDQUZxQjtBQUc1QkMsTUFBQUEsS0FBSyxFQUFFO0FBSHFCLEtBQTlCO0FBS0Q7QUFDRixDQVRNIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmllLXJlYWN0Ly4vc3JjL2NvbW1vbi90aHVtcGFyYWxsYXguanM/YjZjYyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgdGh1bXBhcmFsbGF4ID0gKCkgPT4ge1xyXG4gIHZhciBpbWFnZVVwID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcInRodW1wYXJhbGxheFwiKTtcclxuICBpZiAoaW1hZ2VVcCkge1xyXG4gICAgbmV3IHNpbXBsZVBhcmFsbGF4KGltYWdlVXAsIHtcclxuICAgICAgZGVsYXk6IDEsXHJcbiAgICAgIHNjYWxlOiAxLjEsXHJcbiAgICB9KTtcclxuICB9XHJcbn07XHJcbmV4cG9ydCBjb25zdCB0aHVtcGFyYWxsYXhEb3duID0gKCkgPT4ge1xyXG4gIHZhciBpbWFnZURvd24gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwidGh1bXBhcmFsbGF4LWRvd25cIik7XHJcbiAgaWYgKGltYWdlRG93bikge1xyXG4gICAgbmV3IHNpbXBsZVBhcmFsbGF4KGltYWdlRG93biwge1xyXG4gICAgICBvcmllbnRhdGlvbjogXCJkb3duXCIsXHJcbiAgICAgIGRlbGF5OiAxLFxyXG4gICAgICBzY2FsZTogMS4xLFxyXG4gICAgfSk7XHJcbiAgfVxyXG59O1xyXG4iXSwibmFtZXMiOlsidGh1bXBhcmFsbGF4IiwiaW1hZ2VVcCIsImRvY3VtZW50IiwiZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSIsInNpbXBsZVBhcmFsbGF4IiwiZGVsYXkiLCJzY2FsZSIsInRodW1wYXJhbGxheERvd24iLCJpbWFnZURvd24iLCJvcmllbnRhdGlvbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/common/thumparallax.js\n"); + +/***/ }), + +/***/ "./src/common/tooltipEffect.js": +/*!*************************************!*\ + !*** ./src/common/tooltipEffect.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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _fadeInFadeOut__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./fadeInFadeOut */ \"./src/common/fadeInFadeOut.js\");\n\n\nconst tooltipEffect = () => {\n let template1 = document.createElement(\"div\");\n template1.classList.add(\"div-tooltip-tit\");\n document.body.appendChild(template1);\n let template2 = document.createElement(\"div\");\n template2.classList.add(\"div-tooltip-sub\");\n document.body.appendChild(template2);\n document.querySelectorAll(\"[data-tooltip-tit]\").forEach(item => {\n template1 = document.querySelector(\".div-tooltip-tit\");\n item.addEventListener(\"mouseover\", () => {\n template1.innerText = item.getAttribute(\"data-tooltip-tit\");\n });\n item.addEventListener(\"mousemove\", e => {\n (0,_fadeInFadeOut__WEBPACK_IMPORTED_MODULE_0__.fadeIn)(template1, 800);\n template1.style.top = e.pageY + 10 + \"px\";\n template1.style.left = e.pageX + 20 + \"px\";\n template1.style.padding = \"0px 10px\";\n });\n item.addEventListener(\"mouseleave\", () => {\n (0,_fadeInFadeOut__WEBPACK_IMPORTED_MODULE_0__.fadeOut)(template1, 800);\n template1.style.padding = 0;\n });\n });\n document.querySelectorAll(\"[data-tooltip-sub]\").forEach(item => {\n template2 = document.querySelector(\".div-tooltip-sub\");\n item.addEventListener(\"mouseover\", () => {\n template2.innerText = item.getAttribute(\"data-tooltip-sub\");\n });\n item.addEventListener(\"mousemove\", e => {\n (0,_fadeInFadeOut__WEBPACK_IMPORTED_MODULE_0__.fadeIn)(template2, 800);\n template2.style.top = e.pageY - 15 + \"px\";\n template2.style.left = e.pageX + 30 + \"px\";\n template2.style.padding = \"5px 10px\";\n });\n item.addEventListener(\"mouseleave\", () => {\n (0,_fadeInFadeOut__WEBPACK_IMPORTED_MODULE_0__.fadeOut)(template2, 800);\n template2.style.padding = 0;\n });\n });\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (tooltipEffect);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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RCxLQUxEO0FBTUFYLElBQUFBLElBQUksQ0FBQ0UsZ0JBQUwsQ0FBc0IsWUFBdEIsRUFBb0MsTUFBTTtBQUN4Q2QsTUFBQUEsdURBQU8sQ0FBQ1MsU0FBRCxFQUFZLEdBQVosQ0FBUDtBQUNBQSxNQUFBQSxTQUFTLENBQUNTLEtBQVYsQ0FBZ0JLLE9BQWhCLEdBQTBCLENBQTFCO0FBQ0QsS0FIRDtBQUlELEdBaEJEO0FBaUJELENBeENEOztBQXlDQSxpRUFBZXRCLGFBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly92aWUtcmVhY3QvLi9zcmMvY29tbW9uL3Rvb2x0aXBFZmZlY3QuanM/OGY2YyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmYWRlSW4sIGZhZGVPdXQgfSBmcm9tIFwiLi9mYWRlSW5GYWRlT3V0XCI7XHJcblxyXG5jb25zdCB0b29sdGlwRWZmZWN0ID0gKCkgPT4ge1xyXG4gIGxldCB0ZW1wbGF0ZTEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xyXG4gIHRlbXBsYXRlMS5jbGFzc0xpc3QuYWRkKFwiZGl2LXRvb2x0aXAtdGl0XCIpO1xyXG4gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGVtcGxhdGUxKTtcclxuICBsZXQgdGVtcGxhdGUyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcclxuICB0ZW1wbGF0ZTIuY2xhc3NMaXN0LmFkZChcImRpdi10b29sdGlwLXN1YlwiKTtcclxuICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRlbXBsYXRlMik7XHJcbiAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIltkYXRhLXRvb2x0aXAtdGl0XVwiKS5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICB0ZW1wbGF0ZTEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLmRpdi10b29sdGlwLXRpdFwiKTtcclxuICAgIGl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlb3ZlclwiLCAoKSA9PiB7XHJcbiAgICAgIHRlbXBsYXRlMS5pbm5lclRleHQgPSBpdGVtLmdldEF0dHJpYnV0ZShcImRhdGEtdG9vbHRpcC10aXRcIik7XHJcbiAgICB9KTtcclxuICAgIGl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLCAoZSkgPT4ge1xyXG4gICAgICBmYWRlSW4odGVtcGxhdGUxLCA4MDApO1xyXG4gICAgICB0ZW1wbGF0ZTEuc3R5bGUudG9wID0gZS5wYWdlWSArIDEwICsgXCJweFwiO1xyXG4gICAgICB0ZW1wbGF0ZTEuc3R5bGUubGVmdCA9IGUucGFnZVggKyAyMCArIFwicHhcIjtcclxuICAgICAgdGVtcGxhdGUxLnN0eWxlLnBhZGRpbmcgPSBcIjBweCAxMHB4XCI7XHJcbiAgICB9KTtcclxuICAgIGl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIiwgKCkgPT4ge1xyXG4gICAgICBmYWRlT3V0KHRlbXBsYXRlMSwgODAwKTtcclxuICAgICAgdGVtcGxhdGUxLnN0eWxlLnBhZGRpbmcgPSAwO1xyXG4gICAgfSk7XHJcbiAgfSk7XHJcbiAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIltkYXRhLXRvb2x0aXAtc3ViXVwiKS5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICB0ZW1wbGF0ZTIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLmRpdi10b29sdGlwLXN1YlwiKTtcclxuICAgIGl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlb3ZlclwiLCAoKSA9PiB7XHJcbiAgICAgIHRlbXBsYXRlMi5pbm5lclRleHQgPSBpdGVtLmdldEF0dHJpYnV0ZShcImRhdGEtdG9vbHRpcC1zdWJcIik7XHJcbiAgICB9KTtcclxuXHJcbiAgICBpdGVtLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIiwgKGUpID0+IHtcclxuICAgICAgZmFkZUluKHRlbXBsYXRlMiwgODAwKTtcclxuICAgICAgdGVtcGxhdGUyLnN0eWxlLnRvcCA9IGUucGFnZVkgLSAxNSArIFwicHhcIjtcclxuICAgICAgdGVtcGxhdGUyLnN0eWxlLmxlZnQgPSBlLnBhZ2VYICsgMzAgKyBcInB4XCI7XHJcbiAgICAgIHRlbXBsYXRlMi5zdHlsZS5wYWRkaW5nID0gXCI1cHggMTBweFwiO1xyXG4gICAgfSk7XHJcbiAgICBpdGVtLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIsICgpID0+IHtcclxuICAgICAgZmFkZU91dCh0ZW1wbGF0ZTIsIDgwMCk7XHJcbiAgICAgIHRlbXBsYXRlMi5zdHlsZS5wYWRkaW5nID0gMDtcclxuICAgIH0pO1xyXG4gIH0pO1xyXG59O1xyXG5leHBvcnQgZGVmYXVsdCB0b29sdGlwRWZmZWN0O1xyXG4iXSwibmFtZXMiOlsiZmFkZUluIiwiZmFkZU91dCIsInRvb2x0aXBFZmZlY3QiLCJ0ZW1wbGF0ZTEiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc0xpc3QiLCJhZGQiLCJib2R5IiwiYXBwZW5kQ2hpbGQiLCJ0ZW1wbGF0ZTIiLCJxdWVyeVNlbGVjdG9yQWxsIiwiZm9yRWFjaCIsIml0ZW0iLCJxdWVyeVNlbGVjdG9yIiwiYWRkRXZlbnRMaXN0ZW5lciIsImlubmVyVGV4dCIsImdldEF0dHJpYnV0ZSIsImUiLCJzdHlsZSIsInRvcCIsInBhZ2VZIiwibGVmdCIsInBhZ2VYIiwicGFkZGluZyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/common/tooltipEffect.js\n"); + +/***/ }), + +/***/ "./src/components/About-us3/about-us3.jsx": +/*!************************************************!*\ + !*** ./src/components/About-us3/about-us3.jsx ***! + \************************************************/ +/***/ ((__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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _Split__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Split */ \"./src/components/Split/index.jsx\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _data_sections_about_us3_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../data/sections/about-us3.json */ \"./src/data/sections/about-us3.json\");\n/* harmony import */ var _common_thumparallax__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../common/thumparallax */ \"./src/common/thumparallax.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\About-us3\\\\about-us3.jsx\";\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\n\nconst AboutUs3 = () => {\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(() => {\n setTimeout(() => {\n (0,_common_thumparallax__WEBPACK_IMPORTED_MODULE_4__.thumparallax)();\n (0,_common_thumparallax__WEBPACK_IMPORTED_MODULE_4__.thumparallaxDown)();\n }, 1000);\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"section\", {\n className: \"agency section-padding position-re\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"col-lg-7\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"imgsec md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"imgone big-bord wow fadeInDown\",\n \"data-wow-delay\": \".8s\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"img\", {\n className: \"thumparallax-down\",\n src: _data_sections_about_us3_json__WEBPACK_IMPORTED_MODULE_3__.image1,\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"exp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"h2\", {\n className: \"nmb-font\",\n children: _data_sections_about_us3_json__WEBPACK_IMPORTED_MODULE_3__.exp.nmb\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 23\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"h6\", {\n children: _data_sections_about_us3_json__WEBPACK_IMPORTED_MODULE_3__.exp.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 23\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"item\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"imgtwo big-bord wow fadeInUp\",\n \"data-wow-delay\": \".6s\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"img\", {\n className: \"thumparallax\",\n src: _data_sections_about_us3_json__WEBPACK_IMPORTED_MODULE_3__.image2,\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 21\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"col-lg-5 valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"content\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(_Split__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"h4\", {\n className: \"wow words chars splitting\",\n \"data-splitting\": true,\n children: [_data_sections_about_us3_json__WEBPACK_IMPORTED_MODULE_3__.title.first, \" \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"br\", {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 61,\n columnNumber: 46\n }, undefined), \" \", _data_sections_about_us3_json__WEBPACK_IMPORTED_MODULE_3__.title.second]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 60,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 59,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(_Split__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"p\", {\n className: \"wow txt words chars splitting\",\n \"data-splitting\": true,\n children: [_data_sections_about_us3_json__WEBPACK_IMPORTED_MODULE_3__.content.first, \" \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"br\", {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 48\n }, undefined), _data_sections_about_us3_json__WEBPACK_IMPORTED_MODULE_3__.content.second]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: `/about`,\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"a\", {\n className: \"butn bord curve mt-40 wow fadeInUp\",\n \"data-wow-delay\": \".8s\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"span\", {\n children: _data_sections_about_us3_json__WEBPACK_IMPORTED_MODULE_3__.smallTitle\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"br\", {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 78,\n columnNumber: 15\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 11\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"line bottom right\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 7\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, undefined);\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (AboutUs3);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9BYm91dC11czMvYWJvdXQtdXMzLmpzeC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUVBLE1BQU1NLFFBQVEsR0FBRyxNQUFNO0FBQ3JCTixFQUFBQSxzREFBQSxDQUFnQixNQUFNO0FBQ3BCUSxJQUFBQSxVQUFVLENBQUMsTUFBTTtBQUNmSixNQUFBQSxrRUFBWTtBQUNaQyxNQUFBQSxzRUFBZ0I7QUFDakIsS0FIUyxFQUdQLElBSE8sQ0FBVjtBQUlELEdBTEQsRUFLRyxFQUxIO0FBTUEsc0JBQ0U7QUFBUyxhQUFTLEVBQUMsb0NBQW5CO0FBQUEsNEJBQ0U7QUFBSyxlQUFTLEVBQUMsV0FBZjtBQUFBLDZCQUNFO0FBQUssaUJBQVMsRUFBQyxLQUFmO0FBQUEsZ0NBQ0U7QUFBSyxtQkFBUyxFQUFDLFVBQWY7QUFBQSxpQ0FDRTtBQUFLLHFCQUFTLEVBQUMsZ0JBQWY7QUFBQSxtQ0FDRTtBQUFLLHVCQUFTLEVBQUMsS0FBZjtBQUFBLHNDQUNFO0FBQUsseUJBQVMsRUFBQyxVQUFmO0FBQUEsdUNBQ0U7QUFBSywyQkFBUyxFQUFDLE1BQWY7QUFBQSwwQ0FDRTtBQUNFLDZCQUFTLEVBQUMsZ0NBRFo7QUFFRSxzQ0FBZSxLQUZqQjtBQUFBLDJDQUlFO0FBQ0UsK0JBQVMsRUFBQyxtQkFEWjtBQUVFLHlCQUFHLEVBQUVGLGlFQUZQO0FBR0UseUJBQUcsRUFBQztBQUhOO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFKRjtBQUFBO0FBQUE7QUFBQTtBQUFBLCtCQURGLGVBV0U7QUFBSyw2QkFBUyxFQUFDLEtBQWY7QUFBQSw0Q0FDRTtBQUFJLCtCQUFTLEVBQUMsVUFBZDtBQUFBLGdDQUEwQkEsa0VBQW9CUTtBQUE5QztBQUFBO0FBQUE7QUFBQTtBQUFBLGlDQURGLGVBRUU7QUFBQSxnQ0FBS1IsbUVBQXFCUztBQUExQjtBQUFBO0FBQUE7QUFBQTtBQUFBLGlDQUZGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSwrQkFYRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLDJCQURGLGVBbUJFO0FBQUsseUJBQVMsRUFBQyxVQUFmO0FBQUEsdUNBQ0U7QUFBSywyQkFBUyxFQUFDLE1BQWY7QUFBQSx5Q0FDRTtBQUNFLDZCQUFTLEVBQUMsOEJBRFo7QUFFRSxzQ0FBZSxLQUZqQjtBQUFBLDJDQUlFO0FBQ0UsK0JBQVMsRUFBQyxjQURaO0FBRUUseUJBQUcsRUFBRVQsaUVBRlA7QUFHRSx5QkFBRyxFQUFDO0FBSE47QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUpGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSwyQkFuQkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBREYsZUF1Q0U7QUFBSyxtQkFBUyxFQUFDLGlCQUFmO0FBQUEsaUNBQ0U7QUFBSyxxQkFBUyxFQUFDLFNBQWY7QUFBQSxvQ0FDRSw4REFBQyw4Q0FBRDtBQUFBLHFDQUNFO0FBQUkseUJBQVMsRUFBQywyQkFBZDtBQUEwQyxzQ0FBMUM7QUFBQSwyQkFDR0Esc0VBREgsb0JBQzZCO0FBQUE7QUFBQTtBQUFBO0FBQUEsNkJBRDdCLE9BQ3FDQSx1RUFEckM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSx5QkFERixlQU1FLDhEQUFDLDhDQUFEO0FBQUEscUNBQ0U7QUFBRyx5QkFBUyxFQUFDLCtCQUFiO0FBQTZDLHNDQUE3QztBQUFBLDJCQUNHQSx3RUFESCxvQkFDK0I7QUFBQTtBQUFBO0FBQUE7QUFBQSw2QkFEL0IsRUFFR0EseUVBRkg7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSx5QkFORixlQVlFLDhEQUFDLGtEQUFEO0FBQU0sa0JBQUksRUFBRyxRQUFiO0FBQUEscUNBQ0U7QUFDRSx5QkFBUyxFQUFDLG9DQURaO0FBRUUsa0NBQWUsS0FGakI7QUFBQSx1Q0FJRTtBQUFBLDRCQUFPQSxxRUFBdUJlO0FBQTlCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFKRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSx5QkFaRixlQW9CRTtBQUFBO0FBQUE7QUFBQTtBQUFBLHlCQXBCRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQXZDRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQURGLGVBbUVFO0FBQUssZUFBUyxFQUFDO0FBQWY7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFuRUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGVBREY7QUF1RUQsQ0E5RUQ7O0FBZ0ZBLGlFQUFlWixRQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmllLXJlYWN0Ly4vc3JjL2NvbXBvbmVudHMvQWJvdXQtdXMzL2Fib3V0LXVzMy5qc3g/OGQ1OSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAbmV4dC9uZXh0L25vLWltZy1lbGVtZW50ICovXHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IFNwbGl0IGZyb20gXCIuLi9TcGxpdFwiO1xyXG5pbXBvcnQgTGluayBmcm9tIFwibmV4dC9saW5rXCI7XHJcbmltcG9ydCBBYm91dFVzM2RhdGUgZnJvbSBcIi4uLy4uL2RhdGEvc2VjdGlvbnMvYWJvdXQtdXMzLmpzb25cIjtcclxuaW1wb3J0IHsgdGh1bXBhcmFsbGF4LCB0aHVtcGFyYWxsYXhEb3duIH0gZnJvbSBcIi4uLy4uL2NvbW1vbi90aHVtcGFyYWxsYXhcIjtcclxuXHJcbmNvbnN0IEFib3V0VXMzID0gKCkgPT4ge1xyXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGh1bXBhcmFsbGF4KCk7XHJcbiAgICAgIHRodW1wYXJhbGxheERvd24oKTtcclxuICAgIH0sIDEwMDApO1xyXG4gIH0sIFtdKTtcclxuICByZXR1cm4gKFxyXG4gICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwiYWdlbmN5IHNlY3Rpb24tcGFkZGluZyBwb3NpdGlvbi1yZVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy03XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nc2VjIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJpbWdvbmUgYmlnLWJvcmQgd293IGZhZGVJbkRvd25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgZGF0YS13b3ctZGVsYXk9XCIuOHNcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGh1bXBhcmFsbGF4LWRvd25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzcmM9e0Fib3V0VXMzZGF0ZS5pbWFnZTF9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZXhwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3NOYW1lPVwibm1iLWZvbnRcIj57QWJvdXRVczNkYXRlLmV4cC5ubWJ9PC9oMj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxoNj57QWJvdXRVczNkYXRlLmV4cC5uYW1lfTwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImltZ3R3byBiaWctYm9yZCB3b3cgZmFkZUluVXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgZGF0YS13b3ctZGVsYXk9XCIuNnNcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGh1bXBhcmFsbGF4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3JjPXtBYm91dFVzM2RhdGUuaW1hZ2UyfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTUgdmFsaWduXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGVudFwiPlxyXG4gICAgICAgICAgICAgIDxTcGxpdD5cclxuICAgICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJ3b3cgd29yZHMgY2hhcnMgc3BsaXR0aW5nXCIgZGF0YS1zcGxpdHRpbmc+XHJcbiAgICAgICAgICAgICAgICAgIHtBYm91dFVzM2RhdGUudGl0bGUuZmlyc3R9IDxiciAvPiB7QWJvdXRVczNkYXRlLnRpdGxlLnNlY29uZH1cclxuICAgICAgICAgICAgICAgIDwvaDQ+XHJcbiAgICAgICAgICAgICAgPC9TcGxpdD5cclxuICAgICAgICAgICAgICA8U3BsaXQ+XHJcbiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ3b3cgdHh0IHdvcmRzIGNoYXJzIHNwbGl0dGluZ1wiIGRhdGEtc3BsaXR0aW5nPlxyXG4gICAgICAgICAgICAgICAgICB7QWJvdXRVczNkYXRlLmNvbnRlbnQuZmlyc3R9IDxiciAvPlxyXG4gICAgICAgICAgICAgICAgICB7QWJvdXRVczNkYXRlLmNvbnRlbnQuc2Vjb25kfVxyXG4gICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgIDwvU3BsaXQ+XHJcbiAgICAgICAgICAgICAgPExpbmsgaHJlZj17YC9hYm91dGB9PlxyXG4gICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYnV0biBib3JkIGN1cnZlIG10LTQwIHdvdyBmYWRlSW5VcFwiXHJcbiAgICAgICAgICAgICAgICAgIGRhdGEtd293LWRlbGF5PVwiLjhzXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4+e0Fib3V0VXMzZGF0ZS5zbWFsbFRpdGxlfTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgPGJyIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImxpbmUgYm90dG9tIHJpZ2h0XCI+PC9kaXY+XHJcbiAgICA8L3NlY3Rpb24+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IEFib3V0VXMzO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJTcGxpdCIsIkxpbmsiLCJBYm91dFVzM2RhdGUiLCJ0aHVtcGFyYWxsYXgiLCJ0aHVtcGFyYWxsYXhEb3duIiwiQWJvdXRVczMiLCJ1c2VFZmZlY3QiLCJzZXRUaW1lb3V0IiwiaW1hZ2UxIiwiZXhwIiwibm1iIiwibmFtZSIsImltYWdlMiIsInRpdGxlIiwiZmlyc3QiLCJzZWNvbmQiLCJjb250ZW50Iiwic21hbGxUaXRsZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/About-us3/about-us3.jsx\n"); + +/***/ }), + +/***/ "./src/components/Call-to-action/call-to-action.jsx": +/*!**********************************************************!*\ + !*** ./src/components/Call-to-action/call-to-action.jsx ***! + \**********************************************************/ +/***/ ((__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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _Split__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Split */ \"./src/components/Split/index.jsx\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Call-to-action\\\\call-to-action.jsx\";\n\n\n\n\n\nconst CallToAction = ({\n img\n}) => {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"section\", {\n className: \"call-action section-padding sub-bg bg-img\",\n style: {\n backgroundImage: `url(${img ? img : \"/img/patrn.svg\"})`\n },\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-md-8 col-lg-9\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"content sm-mb30\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(_Split__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n className: \"wow words chars splitting\",\n \"data-splitting\": true,\n children: \"Let\\u2019s Talk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h2\", {\n className: \"wow words chars splitting\",\n \"data-splitting\": true,\n children: [\"about your \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"br\", {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 30\n }, undefined), \" \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"b\", {\n className: \"back-color\",\n children: \"next project\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 37\n }, undefined), \".\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-md-4 col-lg-3 valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: `/contact/contact-light`,\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n className: \"butn bord curve wow fadeInUp\",\n \"data-wow-delay\": \".5s\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: \"Get In Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 9\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 7\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 7,\n columnNumber: 5\n }, undefined);\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (CallToAction);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9DYWxsLXRvLWFjdGlvbi9jYWxsLXRvLWFjdGlvbi5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBOzs7QUFFQSxNQUFNRyxZQUFZLEdBQUcsQ0FBQztBQUFFQyxFQUFBQTtBQUFGLENBQUQsS0FBYTtBQUNoQyxzQkFDRTtBQUNFLGFBQVMsRUFBQywyQ0FEWjtBQUVFLFNBQUssRUFBRTtBQUFFQyxNQUFBQSxlQUFlLEVBQUcsT0FBTUQsR0FBRyxHQUFHQSxHQUFILEdBQVMsZ0JBQWlCO0FBQXZELEtBRlQ7QUFBQSwyQkFJRTtBQUFLLGVBQVMsRUFBQyxXQUFmO0FBQUEsNkJBQ0U7QUFBSyxpQkFBUyxFQUFDLEtBQWY7QUFBQSxnQ0FDRTtBQUFLLG1CQUFTLEVBQUMsbUJBQWY7QUFBQSxpQ0FDRTtBQUFLLHFCQUFTLEVBQUMsaUJBQWY7QUFBQSxtQ0FDRSw4REFBQyw4Q0FBRDtBQUFBLHNDQUNFO0FBQUkseUJBQVMsRUFBQywyQkFBZDtBQUEwQyxzQ0FBMUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBREYsZUFJRTtBQUFJLHlCQUFTLEVBQUMsMkJBQWQ7QUFBMEMsc0NBQTFDO0FBQUEsdURBQ2E7QUFBQTtBQUFBO0FBQUE7QUFBQSw2QkFEYixvQkFDb0I7QUFBRywyQkFBUyxFQUFDLFlBQWI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsNkJBRHBCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSwyQkFKRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxxQkFERixlQWNFO0FBQUssbUJBQVMsRUFBQywwQkFBZjtBQUFBLGlDQUNFLDhEQUFDLGtEQUFEO0FBQU0sZ0JBQUksRUFBRyx3QkFBYjtBQUFBLG1DQUNFO0FBQUcsdUJBQVMsRUFBQyw4QkFBYjtBQUE0QyxnQ0FBZSxLQUEzRDtBQUFBLHFDQUNFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQWRGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFKRjtBQUFBO0FBQUE7QUFBQTtBQUFBLGVBREY7QUErQkQsQ0FoQ0Q7O0FBa0NBLGlFQUFlRCxZQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmllLXJlYWN0Ly4vc3JjL2NvbXBvbmVudHMvQ2FsbC10by1hY3Rpb24vY2FsbC10by1hY3Rpb24uanN4PzFmOTkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgU3BsaXQgZnJvbSBcIi4uL1NwbGl0XCI7XHJcbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcclxuXHJcbmNvbnN0IENhbGxUb0FjdGlvbiA9ICh7IGltZyB9KSA9PiB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uXHJcbiAgICAgIGNsYXNzTmFtZT1cImNhbGwtYWN0aW9uIHNlY3Rpb24tcGFkZGluZyBzdWItYmcgYmctaW1nXCJcclxuICAgICAgc3R5bGU9e3sgYmFja2dyb3VuZEltYWdlOiBgdXJsKCR7aW1nID8gaW1nIDogXCIvaW1nL3BhdHJuLnN2Z1wifSlgIH19XHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLW1kLTggY29sLWxnLTlcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250ZW50IHNtLW1iMzBcIj5cclxuICAgICAgICAgICAgICA8U3BsaXQ+XHJcbiAgICAgICAgICAgICAgICA8aDYgY2xhc3NOYW1lPVwid293IHdvcmRzIGNoYXJzIHNwbGl0dGluZ1wiIGRhdGEtc3BsaXR0aW5nPlxyXG4gICAgICAgICAgICAgICAgICBMZXTigJlzIFRhbGtcclxuICAgICAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgICAgICA8aDIgY2xhc3NOYW1lPVwid293IHdvcmRzIGNoYXJzIHNwbGl0dGluZ1wiIGRhdGEtc3BsaXR0aW5nPlxyXG4gICAgICAgICAgICAgICAgICBhYm91dCB5b3VyIDxiciAvPiA8YiBjbGFzc05hbWU9XCJiYWNrLWNvbG9yXCI+bmV4dCBwcm9qZWN0PC9iPi5cclxuICAgICAgICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICAgICAgPC9TcGxpdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1tZC00IGNvbC1sZy0zIHZhbGlnblwiPlxyXG4gICAgICAgICAgICA8TGluayBocmVmPXtgL2NvbnRhY3QvY29udGFjdC1saWdodGB9PlxyXG4gICAgICAgICAgICAgIDxhIGNsYXNzTmFtZT1cImJ1dG4gYm9yZCBjdXJ2ZSB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi41c1wiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+R2V0IEluIFRvdWNoPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBDYWxsVG9BY3Rpb247XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIlNwbGl0IiwiTGluayIsIkNhbGxUb0FjdGlvbiIsImltZyIsImJhY2tncm91bmRJbWFnZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Call-to-action/call-to-action.jsx\n"); + +/***/ }), + +/***/ "./src/components/Footer/footer.jsx": +/*!******************************************!*\ + !*** ./src/components/Footer/footer.jsx ***! + \******************************************/ +/***/ ((__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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _data_app_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../data/app.json */ \"./src/data/app.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Footer\\\\footer.jsx\";\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\nconst Footer = ({\n hideBGCOLOR\n}) => {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"footer\", {\n className: `${!hideBGCOLOR ? \"sub-bg\" : \"\"}`,\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item md-mb50\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"title\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h5\", {\n children: \"Contact Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"ul\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-map-marker\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 19\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Officeal Address\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"Baghdad Street, Al Dana area, Abu Dhabi, United Arab Emirates\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 19\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-mail\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 19\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Email Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"hello@businesshub.abudhabi\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 19\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-call\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 19\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Call Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"+971 26340404\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 19\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 15\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"logo\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.footerLogo,\n style: {\n width: \"150px\"\n },\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"social\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"https://www.facebook.com/profile.php?id=100057392223857 \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-facebook-f\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"https://www.linkedin.com/company/business-hub-international-investment\\r\\n\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-linkedin\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"https://www.instagram.com/businesshubi/?igsh=MTJ3ejZneWdmbTM3bQ%3D%3D \\r\\n\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-instagram\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"copy-right\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"\\xA9 2024, 2024 Business HUB international investment - All Rights Reserved.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 15\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 11\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 7\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 5\n }, undefined);\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Footer);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Qyw0RUFEUDtBQUFBLHVDQUlFO0FBQUcsMkJBQVMsRUFBQztBQUFiO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFKRjtBQUFBO0FBQUE7QUFBQTtBQUFBLDJCQVZGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSx5QkFSRixlQXlCRTtBQUFLLHVCQUFTLEVBQUMsWUFBZjtBQUFBLHFDQUNFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSx5QkF6QkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxxQkFuQ0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFERjtBQTRFRCxDQTdFRDs7QUErRUEsaUVBQWVILE1BQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly92aWUtcmVhY3QvLi9zcmMvY29tcG9uZW50cy9Gb290ZXIvZm9vdGVyLmpzeD9mMzk0Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBuZXh0L25leHQvbm8taW1nLWVsZW1lbnQgKi9cclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgTGluayBmcm9tIFwibmV4dC9saW5rXCI7XHJcbmltcG9ydCBhcHBEYXRhIGZyb20gXCIuLi8uLi9kYXRhL2FwcC5qc29uXCI7XHJcblxyXG5jb25zdCBGb290ZXIgPSAoeyBoaWRlQkdDT0xPUiB9KSA9PiB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxmb290ZXIgY2xhc3NOYW1lPXtgJHshaGlkZUJHQ09MT1IgPyBcInN1Yi1iZ1wiIDogXCJcIn1gfT5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctNFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGl0bGVcIj5cclxuICAgICAgICAgICAgICAgIDxoNT5Db250YWN0IFVzPC9oNT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24gcGUtN3MtbWFwLW1hcmtlclwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg2Pk9mZmljZWFsIEFkZHJlc3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgQmFnaGRhZCBTdHJlZXQsIEFsIERhbmEgYXJlYSwgQWJ1IERoYWJpLCBVbml0ZWQgQXJhYlxyXG4gICAgICAgICAgICAgICAgICAgICAgRW1pcmF0ZXNcclxuICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvbiBwZS03cy1tYWlsXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+RW1haWwgVXM8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPmhlbGxvQGJ1c2luZXNzaHViLmFidWRoYWJpPC9wPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24gcGUtN3MtY2FsbFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg2PkNhbGwgVXM8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPis5NzEgMjYzNDA0MDQ8L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsb2dvXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgICAgIHNyYz17YXBwRGF0YS5mb290ZXJMb2dvfVxyXG4gICAgICAgICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogXCIxNTBweFwiIH19XHJcbiAgICAgICAgICAgICAgICAgIGFsdD1cIlwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic29jaWFsXCI+XHJcbiAgICAgICAgICAgICAgICA8YSBocmVmPVwiaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL3Byb2ZpbGUucGhwP2lkPTEwMDA1NzM5MjIyMzg1NyBcIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwiZmFiIGZhLWZhY2Vib29rLWZcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICBocmVmPVwiaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2NvbXBhbnkvYnVzaW5lc3MtaHViLWludGVybmF0aW9uYWwtaW52ZXN0bWVudFxyXG5cIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYWIgZmEtbGlua2VkaW5cIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICBocmVmPVwiaHR0cHM6Ly93d3cuaW5zdGFncmFtLmNvbS9idXNpbmVzc2h1YmkvP2lnc2g9TVRKM2VqWm5lV2RtYlRNM2JRJTNEJTNEIFxyXG5cIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYWIgZmEtaW5zdGFncmFtXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29weS1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgIMKpIDIwMjQsIDIwMjQgQnVzaW5lc3MgSFVCIGludGVybmF0aW9uYWwgaW52ZXN0bWVudCAtIEFsbFxyXG4gICAgICAgICAgICAgICAgICBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9mb290ZXI+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IEZvb3RlcjtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiTGluayIsImFwcERhdGEiLCJGb290ZXIiLCJoaWRlQkdDT0xPUiIsImZvb3RlckxvZ28iLCJ3aWR0aCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Footer/footer.jsx\n"); + +/***/ }), + +/***/ "./src/components/Full-testimonials/full-testimonials.jsx": +/*!****************************************************************!*\ + !*** ./src/components/Full-testimonials/full-testimonials.jsx ***! + \****************************************************************/ +/***/ ((__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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_slick__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-slick */ \"react-slick\");\n/* harmony import */ var react_slick__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_slick__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var slick_carousel_slick_slick_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! slick-carousel/slick/slick.css */ \"./node_modules/slick-carousel/slick/slick.css\");\n/* harmony import */ var slick_carousel_slick_slick_css__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(slick_carousel_slick_slick_css__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var slick_carousel_slick_slick_theme_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! slick-carousel/slick/slick-theme.css */ \"./node_modules/slick-carousel/slick/slick-theme.css\");\n/* harmony import */ var slick_carousel_slick_slick_theme_css__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(slick_carousel_slick_slick_theme_css__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Full-testimonials\\\\full-testimonials.jsx\";\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nclass FullTestimonials extends (react__WEBPACK_IMPORTED_MODULE_0___default().Component) {\n constructor(props) {\n super(props);\n\n _defineProperty(this, \"renderArrows\", () => {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"arrows\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n onClick: () => this.slider.slickNext(),\n className: \"next cursor-pointer\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"pe-7s-angle-right\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 11\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n onClick: () => this.slider.slickPrev(),\n className: \"prev cursor-pointer\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"pe-7s-angle-left\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 7\n }, this);\n });\n }\n\n render() {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"section\", {\n className: `testimonials ${this.props.withIMG ? \"section-padding bg-img\" : this.props.withCOLOR ? \"section-padding back-color\" : this.props.noPadding ? \"\" : \"section-padding\"} ${this.props.classText ? this.props.classText : \"\"}`,\n style: {\n backgroundImage: `${this.props.withIMG ? \"url(/img/testim-img.jpg)\" : \"none\"}`\n },\n children: [this.props.showHead && /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Testimonials\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 19\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: \"We love our clients from all over the world.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 51,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container-fluid position-re\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row wow fadeInUp\",\n \"data-wow-delay\": \".5s\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-12\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((react_slick__WEBPACK_IMPORTED_MODULE_1___default()), {\n className: \"slic-item\",\n ref: c => this.slider = c,\n dots: false,\n infinite: true,\n arrows: true,\n centerMode: true,\n autoplay: true,\n rows: 1,\n slidesToScroll: 1,\n slidesToShow: 3,\n responsive: [{\n breakpoint: 1024,\n settings: {\n slidesToShow: 1,\n centerMode: false\n }\n }, {\n breakpoint: 767,\n settings: {\n slidesToShow: 1,\n centerMode: false\n }\n }, {\n breakpoint: 480,\n settings: {\n slidesToShow: 1,\n centerMode: false\n }\n }],\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"info valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"author\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/clients/1.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 27\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 25\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n className: \"author-name color-font\",\n children: \"Alex Regelman\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 25\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"author-details\",\n children: \"Co-founder, Colabrio\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 25\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 108,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 107,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 106,\n columnNumber: 19\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"p\", {\n children: \"I would highly recommend Vie Digital. I worked with the team on an animation for our \\u2018Click & Collect\\u2019 service.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 121,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 105,\n columnNumber: 17\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"info valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"author\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/clients/1.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 27\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 25\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n className: \"author-name color-font\",\n children: \"Alex Regelman\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 133,\n columnNumber: 25\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"author-details\",\n children: \"Co-founder, Colabrio\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 25\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 19\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"p\", {\n children: \"I would highly recommend Vie Digital. I worked with the team on an animation for our \\u2018Click & Collect\\u2019 service.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 142,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 17\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"info valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"author\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/clients/1.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 152,\n columnNumber: 27\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 151,\n columnNumber: 25\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n className: \"author-name color-font\",\n children: \"Alex Regelman\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 25\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"author-details\",\n children: \"Co-founder, Colabrio\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 25\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 150,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 149,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 19\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"p\", {\n children: \"I would highly recommend Vie Digital. I worked with the team on an animation for our \\u2018Click & Collect\\u2019 service.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 163,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 17\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"info valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"author\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/clients/1.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 27\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 172,\n columnNumber: 25\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n className: \"author-name color-font\",\n children: \"Alex Regelman\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 25\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"author-details\",\n children: \"Co-founder, Colabrio\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 25\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 171,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 19\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"p\", {\n children: \"I would highly recommend Vie Digital. I worked with the team on an animation for our \\u2018Click & Collect\\u2019 service.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 11\n }, this), this.renderArrows()]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 7\n }, this);\n }\n\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (FullTestimonials);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9GdWxsLXRlc3RpbW9uaWFscy9mdWxsLXRlc3RpbW9uaWFscy5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsTUFBTUUsZ0JBQU4sU0FBK0JGLHdEQUEvQixDQUErQztBQUM3Q0ksRUFBQUEsV0FBVyxDQUFDQyxLQUFELEVBQVE7QUFDakIsVUFBTUEsS0FBTjs7QUFEaUIsMENBR0osTUFBTTtBQUNuQiwwQkFDRTtBQUFLLGlCQUFTLEVBQUMsUUFBZjtBQUFBLCtCQUNFO0FBQUssbUJBQVMsRUFBQyxXQUFmO0FBQUEsa0NBQ0U7QUFDRSxtQkFBTyxFQUFFLE1BQU0sS0FBS0MsTUFBTCxDQUFZQyxTQUFaLEVBRGpCO0FBRUUscUJBQVMsRUFBQyxxQkFGWjtBQUFBLG1DQUlFO0FBQU0sdUJBQVMsRUFBQztBQUFoQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSkY7QUFBQTtBQUFBO0FBQUE7QUFBQSxrQkFERixlQU9FO0FBQ0UsbUJBQU8sRUFBRSxNQUFNLEtBQUtELE1BQUwsQ0FBWUUsU0FBWixFQURqQjtBQUVFLHFCQUFTLEVBQUMscUJBRlo7QUFBQSxtQ0FJRTtBQUFNLHVCQUFTLEVBQUM7QUFBaEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUpGO0FBQUE7QUFBQTtBQUFBO0FBQUEsa0JBUEY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxjQURGO0FBa0JELEtBdEJrQjtBQUVsQjs7QUFxQkRDLEVBQUFBLE1BQU0sR0FBRztBQUNQLHdCQUNFO0FBQ0UsZUFBUyxFQUFHLGdCQUNWLEtBQUtKLEtBQUwsQ0FBV0ssT0FBWCxHQUNJLHdCQURKLEdBRUksS0FBS0wsS0FBTCxDQUFXTSxTQUFYLEdBQ0EsNEJBREEsR0FFQSxLQUFLTixLQUFMLENBQVdPLFNBQVgsR0FBdUIsRUFBdkIsR0FDQSxpQkFDTCxJQUFHLEtBQUtQLEtB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QUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxnQkFERixFQStIRyxLQUFLUSxZQUFMLEVBL0hIO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxjQWhDRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsWUFERjtBQW9LRDs7QUE3TDRDOztBQWdNL0MsaUVBQWUzQixnQkFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL3ZpZS1yZWFjdC8uL3NyYy9jb21wb25lbnRzL0Z1bGwtdGVzdGltb25pYWxzL2Z1bGwtdGVzdGltb25pYWxzLmpzeD9mZTBkIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBuZXh0L25leHQvbm8taW1nLWVsZW1lbnQgKi9cclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgU2xpZGVyIGZyb20gXCJyZWFjdC1zbGlja1wiO1xyXG5pbXBvcnQgXCJzbGljay1jYXJvdXNlbC9zbGljay9zbGljay5jc3NcIjtcclxuaW1wb3J0IFwic2xpY2stY2Fyb3VzZWwvc2xpY2svc2xpY2stdGhlbWUuY3NzXCI7XHJcblxyXG5jbGFzcyBGdWxsVGVzdGltb25pYWxzIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcclxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgc3VwZXIocHJvcHMpO1xyXG4gIH1cclxuICByZW5kZXJBcnJvd3MgPSAoKSA9PiB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImFycm93c1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHRoaXMuc2xpZGVyLnNsaWNrTmV4dCgpfVxyXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJuZXh0IGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwicGUtN3MtYW5nbGUtcmlnaHRcIj48L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gdGhpcy5zbGlkZXIuc2xpY2tQcmV2KCl9XHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cInByZXYgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJwZS03cy1hbmdsZS1sZWZ0XCI+PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgKTtcclxuICB9O1xyXG4gIHJlbmRlcigpIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIDxzZWN0aW9uXHJcbiAgICAgICAgY2xhc3NOYW1lPXtgdGVzdGltb25pYWxzICR7XHJcbiAgICAgICAgICB0aGlzLnByb3BzLndpdGhJTUdcclxuICAgICAgICAgICAgPyBcInNlY3Rpb24tcGFkZGluZyBiZy1pbWdcIlxyXG4gICAgICAgICAgICA6IHRoaXMucHJvcHMud2l0aENPTE9SXHJcbiAgICAgICAgICAgID8gXCJzZWN0aW9uLXBhZGRpbmcgYmFjay1jb2xvclwiXHJcbiAgICAgICAgICAgIDogdGhpcy5wcm9wcy5ub1BhZGRpbmcgPyBcIlwiXHJcbiAgICAgICAgICAgIDogXCJzZWN0aW9uLXBhZGRpbmdcIlxyXG4gICAgICAgIH0gJHt0aGlzLnByb3BzLmNsYXNzVGV4dCA/IHRoaXMucHJvcHMuY2xhc3NUZXh0IDogXCJcIn1gfVxyXG4gICAgICAgIHN0eWxlPXt7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kSW1hZ2U6IGAke1xyXG4gICAgICAgICAgICB0aGlzLnByb3BzLndpdGhJTUcgPyBcInVybCgvaW1nL3Rlc3RpbS1pbWcuanBnKVwiIDogXCJub25lXCJcclxuICAgICAgICAgIH1gLFxyXG4gICAgICAgIH19XHJcbiAgICAgID5cclxuICAgICAgICB7dGhpcy5wcm9wcy5zaG93SGVhZCAmJiAoXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOCBjb2wtbWQtMTBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2VjLWhlYWQgIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxoNiBjbGFzc05hbWU9XCJ3b3cgZmFkZUluXCIgZGF0YS13b3ctZGVsYXk9XCIuNXNcIj5cclxuICAgICAgICAgICAgICAgICAgICBUZXN0aW1vbmlhbHNcclxuICAgICAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cIndvdyBjb2xvci1mb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgV2UgbG92ZSBvdXIgY2xpZW50cyBmcm9tIGFsbCBvdmVyIHRoZSB3b3JsZC5cclxuICAgICAgICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICl9XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyLWZsdWlkIHBvc2l0aW9uLXJlXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi41c1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0xMlwiPlxyXG4gICAgICAgICAgICAgIDxTbGlkZXJcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInNsaWMtaXRlbVwiXHJcbiAgICAgICAgICAgICAgICB7Li4ue1xyXG4gICAgICAgICAgICAgICAgICByZWY6IChjKSA9PiAodGhpcy5zbGlkZXIgPSBjKSxcclxuICAgICAgICAgICAgICAgICAgZG90czogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgIGluZmluaXRlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICBhcnJvd3M6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgIGNlbnRlck1vZGU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgIGF1dG9wbGF5OiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICByb3dzOiAxLFxyXG4gICAgICAgICAgICAgICAgICBzbGlkZXNUb1Njcm9sbDogMSxcclxuICAgICAgICAgICAgICAgICAgc2xpZGVzVG9TaG93OiAzLFxyXG4gICAgICAgICAgICAgICAgICByZXNwb25zaXZlOiBbXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludDogMTAyNCxcclxuICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlc1RvU2hvdzogMSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2VudGVyTW9kZTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludDogNzY3LFxyXG4gICAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3M6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzVG9TaG93OiAxLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjZW50ZXJNb2RlOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBicmVha3BvaW50OiA0ODAsXHJcbiAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5nczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXNUb1Nob3c6IDEsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNlbnRlck1vZGU6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbmZvIHZhbGlnblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhdXRob3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvY2xpZW50cy8xLmpwZ1wiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDYgY2xhc3NOYW1lPVwiYXV0aG9yLW5hbWUgY29sb3ItZm9udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEFsZXggUmVnZWxtYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiYXV0aG9yLWRldGFpbHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBDby1mb3VuZGVyLCBDb2xhYnJpb1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgIEkgd291bGQgaGlnaGx5IHJlY29tbWVuZCBWaWUgRGlnaXRhbC4gSSB3b3JrZWQgd2l0aCB0aGUgdGVhbVxyXG4gICAgICAgICAgICAgICAgICAgIG9uIGFuIGFuaW1hdGlvbiBmb3Igb3VyIOKAmENsaWNrICZhbXA7IENvbGxlY3TigJkgc2VydmljZS5cclxuICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbmZvIHZhbGlnblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhdXRob3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvY2xpZW50cy8xLmpwZ1wiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDYgY2xhc3NOYW1lPVwiYXV0aG9yLW5hbWUgY29sb3ItZm9udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEFsZXggUmVnZWxtYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiYXV0aG9yLWRldGFpbHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBDby1mb3VuZGVyLCBDb2xhYnJpb1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgIEkgd291bGQgaGlnaGx5IHJlY29tbWVuZCBWaWUgRGlnaXRhbC4gSSB3b3JrZWQgd2l0aCB0aGUgdGVhbVxyXG4gICAgICAgICAgICAgICAgICAgIG9uIGFuIGFuaW1hdGlvbiBmb3Igb3VyIOKAmENsaWNrICZhbXA7IENvbGxlY3TigJkgc2VydmljZS5cclxuICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbmZvIHZhbGlnblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhdXRob3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvY2xpZW50cy8xLmpwZ1wiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDYgY2xhc3NOYW1lPVwiYXV0aG9yLW5hbWUgY29sb3ItZm9udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEFsZXggUmVnZWxtYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiYXV0aG9yLWRldGFpbHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBDby1mb3VuZGVyLCBDb2xhYnJpb1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgIEkgd291bGQgaGlnaGx5IHJlY29tbWVuZCBWaWUgRGlnaXRhbC4gSSB3b3JrZWQgd2l0aCB0aGUgdGVhbVxyXG4gICAgICAgICAgICAgICAgICAgIG9uIGFuIGFuaW1hdGlvbiBmb3Igb3VyIOKAmENsaWNrICZhbXA7IENvbGxlY3TigJkgc2VydmljZS5cclxuICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbmZvIHZhbGlnblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhdXRob3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvY2xpZW50cy8xLmpwZ1wiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDYgY2xhc3NOYW1lPVwiYXV0aG9yLW5hbWUgY29sb3ItZm9udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEFsZXggUmVnZWxtYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiYXV0aG9yLWRldGFpbHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBDby1mb3VuZGVyLCBDb2xhYnJpb1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgIEkgd291bGQgaGlnaGx5IHJlY29tbWVuZCBWaWUgRGlnaXRhbC4gSSB3b3JrZWQgd2l0aCB0aGUgdGVhbVxyXG4gICAgICAgICAgICAgICAgICAgIG9uIGFuIGFuaW1hdGlvbiBmb3Igb3VyIOKAmENsaWNrICZhbXA7IENvbGxlY3TigJkgc2VydmljZS5cclxuICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9TbGlkZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICB7dGhpcy5yZW5kZXJBcnJvd3MoKX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9zZWN0aW9uPlxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IEZ1bGxUZXN0aW1vbmlhbHM7XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIlNsaWRlciIsIkZ1bGxUZXN0aW1vbmlhbHMiLCJDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwic2xpZGVyIiwic2xpY2tOZXh0Iiwic2xpY2tQcmV2IiwicmVuZGVyIiwid2l0aElNRyIsIndpdGhDT0xPUiIsIm5vUGFkZGluZyIsImNsYXNzVGV4dCIsImJhY2tncm91bmRJbWFnZSIsInNob3dIZWFkIiwicmVmIiwiYyIsImRvdHMiLCJpbmZpbml0ZSIsImFycm93cyIsImNlbnRlck1vZGUiLCJhdXRvcGxheSIsInJvd3MiLCJzbGlkZXNUb1Njcm9sbCIsInNsaWRlc1RvU2hvdyIsInJlc3BvbnNpdmUiLCJicmVha3BvaW50Iiwic2V0dGluZ3MiLCJyZW5kZXJBcnJvd3MiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/components/Full-testimonials/full-testimonials.jsx\n"); + +/***/ }), + +/***/ "./src/components/Intro4/intro4.jsx": +/*!******************************************!*\ + !*** ./src/components/Intro4/intro4.jsx ***! + \******************************************/ +/***/ ((__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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _config_particle_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../config/particle-config */ \"./src/config/particle-config.js\");\n/* harmony import */ var _config_pr_s_black__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../config/pr-s-black */ \"./src/config/pr-s-black.js\");\n/* harmony import */ var react_tsparticles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-tsparticles */ \"react-tsparticles\");\n/* harmony import */ var react_tsparticles__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_tsparticles__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Intro4\\\\intro4.jsx\";\n\n\n\n\n\n\nconst Intro4 = ({\n sliderRef,\n blackStar\n}) => {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"header\", {\n ref: sliderRef,\n className: \"particles circle-bg valign\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"cont text-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h1\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"color-font\",\n children: \"Begin \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 17\n }, undefined), \" your UAE project with\", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"color-font\",\n children: \"Business Hub\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 17\n }, undefined), \".\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 7\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((react_tsparticles__WEBPACK_IMPORTED_MODULE_3___default()), {\n id: \"particles-js\",\n options: blackStar ? _config_pr_s_black__WEBPACK_IMPORTED_MODULE_2__[\"default\"] : _config_particle_config__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 7\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"gradient-circle\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 7\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"gradient-circle two\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 7\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"line bottom left\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 7\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 5\n }, undefined);\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Intro4);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9JbnRybzQvaW50cm80LmpzeC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7OztBQUVBLE1BQU1JLE1BQU0sR0FBRyxDQUFDO0FBQUVDLEVBQUFBLFNBQUY7QUFBYUMsRUFBQUE7QUFBYixDQUFELEtBQThCO0FBQzNDLHNCQUNFO0FBQVEsT0FBRyxFQUFFRCxTQUFiO0FBQXdCLGFBQVMsRUFBQyw0QkFBbEM7QUFBQSw0QkFDRTtBQUFLLGVBQVMsRUFBQyxXQUFmO0FBQUEsNkJBQ0U7QUFBSyxpQkFBUyxFQUFDLDRCQUFmO0FBQUEsK0JBQ0U7QUFBSyxtQkFBUyxFQUFDLFdBQWY7QUFBQSxpQ0FDRTtBQUFLLHFCQUFTLEVBQUMsa0JBQWY7QUFBQSxtQ0FDRTtBQUFBLHNDQUNFO0FBQU0seUJBQVMsRUFBQyxZQUFoQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSwyQkFERix5Q0FFRTtBQUFNLHlCQUFTLEVBQUMsWUFBaEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBRkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFERixlQWNFLDhEQUFDLDBEQUFEO0FBQ0UsUUFBRSxFQUFDLGNBREw7QUFFRSxhQUFPLEVBQUVDLFNBQVMsR0FBR0osMERBQUgsR0FBMEJELCtEQUFlQTtBQUY3RDtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQWRGLGVBbUJFO0FBQUssZUFBUyxFQUFDO0FBQWY7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFuQkYsZUFvQkU7QUFBSyxlQUFTLEVBQUM7QUFBZjtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQXBCRixlQXFCRTtBQUFLLGVBQVMsRUFBQztBQUFmO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBckJGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxlQURGO0FBeUJELENBMUJEOztBQTRCQSxpRUFBZUcsTUFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL3ZpZS1yZWFjdC8uL3NyYy9jb21wb25lbnRzL0ludHJvNC9pbnRybzQuanN4PzQ4MGUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgcGFydGljbGVzQ29uZmlnIGZyb20gXCIuLi8uLi9jb25maWcvcGFydGljbGUtY29uZmlnXCI7XHJcbmltcG9ydCBwYXJ0aWNsZXNCbGFja0NvbmZpZyBmcm9tIFwiLi4vLi4vY29uZmlnL3ByLXMtYmxhY2tcIjtcclxuaW1wb3J0IFBhcnRpY2xlcyBmcm9tIFwicmVhY3QtdHNwYXJ0aWNsZXNcIjtcclxuXHJcbmNvbnN0IEludHJvNCA9ICh7IHNsaWRlclJlZiwgYmxhY2tTdGFyIH0pID0+IHtcclxuICByZXR1cm4gKFxyXG4gICAgPGhlYWRlciByZWY9e3NsaWRlclJlZn0gY2xhc3NOYW1lPVwicGFydGljbGVzIGNpcmNsZS1iZyB2YWxpZ25cIj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0xMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnQgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8aDE+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJjb2xvci1mb250XCI+QmVnaW4gPC9zcGFuPiB5b3VyIFVBRSBwcm9qZWN0IHdpdGhcclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImNvbG9yLWZvbnRcIj5CdXNpbmVzcyBIdWI8L3NwYW4+LlxyXG4gICAgICAgICAgICAgIDwvaDE+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPFBhcnRpY2xlc1xyXG4gICAgICAgIGlkPVwicGFydGljbGVzLWpzXCJcclxuICAgICAgICBvcHRpb25zPXtibGFja1N0YXIgPyBwYXJ0aWNsZXNCbGFja0NvbmZpZyA6IHBhcnRpY2xlc0NvbmZpZ31cclxuICAgICAgLz5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JhZGllbnQtY2lyY2xlXCI+PC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JhZGllbnQtY2lyY2xlIHR3b1wiPjwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImxpbmUgYm90dG9tIGxlZnRcIj48L2Rpdj5cclxuICAgIDwvaGVhZGVyPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBJbnRybzQ7XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsInBhcnRpY2xlc0NvbmZpZyIsInBhcnRpY2xlc0JsYWNrQ29uZmlnIiwiUGFydGljbGVzIiwiSW50cm80Iiwic2xpZGVyUmVmIiwiYmxhY2tTdGFyIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Intro4/intro4.jsx\n"); + +/***/ }), + +/***/ "./src/components/Minimal-Area2/minimal-area2.jsx": +/*!********************************************************!*\ + !*** ./src/components/Minimal-Area2/minimal-area2.jsx ***! + \********************************************************/ +/***/ ((__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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _Split__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Split */ \"./src/components/Split/index.jsx\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _common_thumparallax__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/thumparallax */ \"./src/common/thumparallax.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Minimal-Area2\\\\minimal-area2.jsx\";\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nconst MinimalArea2 = () => {\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(() => {\n setTimeout(() => {\n (0,_common_thumparallax__WEBPACK_IMPORTED_MODULE_3__.thumparallaxDown)();\n }, 1000);\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"section\", {\n className: \"min-area\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n className: \"thumparallax-down\",\n src: \"/img/min-area.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-6 valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"content\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h4\", {\n className: \"color-font\",\n children: \"Dream. Innovate. Implement.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(_Split__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"p\", {\n className: \"wow txt words chars splitting\",\n \"data-splitting\": true,\n children: \"Boost your business affordably with our virtual company service. Say goodbye to unnecessary costs and hello to streamlined operations. Our expert team handles everything from accounting to project management, helping you achieve more while spending less. Let's grow your business together!\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"ul\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"wow fadeInUp\",\n \"data-wow-delay\": \".4s\",\n children: \"Reducing operational costs\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"wow fadeInUp\",\n \"data-wow-delay\": \".6s\",\n children: \"Providing flexibility\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"wow fadeInUp\",\n \"data-wow-delay\": \".8s\",\n children: \"Administrative efficiency\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: `/about/about-light`,\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"a\", {\n className: \"butn bord curve mt-40 wow fadeInUp\",\n \"data-wow-delay\": \".8s\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n children: \"Discover\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 51,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"br\", {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 59,\n columnNumber: 15\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 9\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 7\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 5\n }, undefined);\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (MinimalArea2);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9NaW5pbWFsLUFyZWEyL21pbmltYWwtYXJlYTIuanN4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsTUFBTUksWUFBWSxHQUFHLE1BQU07QUFDekJKLEVBQUFBLHNEQUFBLENBQWdCLE1BQU07QUFDcEJNLElBQUFBLFVBQVUsQ0FBQyxNQUFNO0FBQ2ZILE1BQUFBLHNFQUFnQjtBQUNqQixLQUZTLEVBRVAsSUFGTyxDQUFWO0FBR0QsR0FKRCxFQUlHLEVBSkg7QUFLQSxzQkFDRTtBQUFTLGFBQVMsRUFBQyxVQUFuQjtBQUFBLDJCQUNFO0FBQUssZUFBUyxFQUFDLFdBQWY7QUFBQSw2QkFDRTtBQUFLLGlCQUFTLEVBQUMsS0FBZjtBQUFBLGdDQUNFO0FBQUssbUJBQVMsRUFBQyxVQUFmO0FBQUEsaUNBQ0U7QUFBSyxxQkFBUyxFQUFDLEtBQWY7QUFBQSxtQ0FDRTtBQUNFLHVCQUFTLEVBQUMsbUJBRFo7QUFFRSxpQkFBRyxFQUFDLG1CQUZOO0FBR0UsaUJBQUcsRUFBQztBQUhOO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxxQkFERixlQVVFO0FBQUssbUJBQVMsRUFBQyxpQkFBZjtBQUFBLGlDQUNFO0FBQUsscUJBQVMsRUFBQyxTQUFmO0FBQUEsb0NBQ0U7QUFBSSx1QkFBUyxFQUFDLFlBQWQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEseUJBREYsZUFFRSw4REFBQyw4Q0FBRDtBQUFBLHFDQUNFO0FBQUcseUJBQVMsRUFBQywrQkFBYjtBQUE2QyxzQ0FBN0M7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLHlCQUZGLGVBWUU7QUFBQSxzQ0FDRTtBQUFJLHlCQUFTLEVBQUMsY0FBZDtBQUE2QixrQ0FBZSxLQUE1QztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSwyQkFERixlQUlFO0FBQUkseUJBQVMsRUFBQyxjQUFkO0FBQTZCLGtDQUFlLEtBQTVDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLDJCQUpGLGVBT0U7QUFBSSx5QkFBUyxFQUFDLGNBQWQ7QUFBNkIsa0NBQWUsS0FBNUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBUEY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHlCQVpGLGVBdUJFLDhEQUFDLGtEQUFEO0FBQU0sa0JBQUksRUFBRyxvQkFBYjtBQUFBLHFDQUNFO0FBQ0UseUJBQVMsRUFBQyxvQ0FEWjtBQUVFLGtDQUFlLEtBRmpCO0FBQUEsdUNBSUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFKRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSx5QkF2QkYsZUFnQ0U7QUFBQTtBQUFBO0FBQUE7QUFBQSx5QkFoQ0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxxQkFWRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxlQURGO0FBcURELENBM0REOztBQTZEQSxpRUFBZUMsWUFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL3ZpZS1yZWFjdC8uL3NyYy9jb21wb25lbnRzL01pbmltYWwtQXJlYTIvbWluaW1hbC1hcmVhMi5qc3g/ZWI1ZSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAbmV4dC9uZXh0L25vLWltZy1lbGVtZW50ICovXHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IFNwbGl0IGZyb20gXCIuLi9TcGxpdFwiO1xyXG5pbXBvcnQgTGluayBmcm9tIFwibmV4dC9saW5rXCI7XHJcbmltcG9ydCB7IHRodW1wYXJhbGxheERvd24gfSBmcm9tIFwiLi4vLi4vY29tbW9uL3RodW1wYXJhbGxheFwiO1xyXG5cclxuY29uc3QgTWluaW1hbEFyZWEyID0gKCkgPT4ge1xyXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGh1bXBhcmFsbGF4RG93bigpO1xyXG4gICAgfSwgMTAwMCk7XHJcbiAgfSwgW10pO1xyXG4gIHJldHVybiAoXHJcbiAgICA8c2VjdGlvbiBjbGFzc05hbWU9XCJtaW4tYXJlYVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGh1bXBhcmFsbGF4LWRvd25cIlxyXG4gICAgICAgICAgICAgICAgc3JjPVwiL2ltZy9taW4tYXJlYS5qcGdcIlxyXG4gICAgICAgICAgICAgICAgYWx0PVwiXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctNiB2YWxpZ25cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cImNvbG9yLWZvbnRcIj5EcmVhbS4gSW5ub3ZhdGUuIEltcGxlbWVudC48L2g0PlxyXG4gICAgICAgICAgICAgIDxTcGxpdD5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cIndvdyB0eHQgd29yZHMgY2hhcnMgc3BsaXR0aW5nXCIgZGF0YS1zcGxpdHRpbmc+XHJcbiAgICAgICAgICAgICAgICAgIEJvb3N0IHlvdXIgYnVzaW5lc3MgYWZmb3JkYWJseSB3aXRoIG91ciB2aXJ0dWFsIGNvbXBhbnlcclxuICAgICAgICAgICAgICAgICAgc2VydmljZS4gU2F5IGdvb2RieWUgdG8gdW5uZWNlc3NhcnkgY29zdHMgYW5kIGhlbGxvIHRvXHJcbiAgICAgICAgICAgICAgICAgIHN0cmVhbWxpbmVkIG9wZXJhdGlvbnMuIE91ciBleHBlcnQgdGVhbSBoYW5kbGVzIGV2ZXJ5dGhpbmdcclxuICAgICAgICAgICAgICAgICAgZnJvbSBhY2NvdW50aW5nIHRvIHByb2plY3QgbWFuYWdlbWVudCwgaGVscGluZyB5b3UgYWNoaWV2ZVxyXG4gICAgICAgICAgICAgICAgICBtb3JlIHdoaWxlIHNwZW5kaW5nIGxlc3MuIExldCZhcG9zO3MgZ3JvdyB5b3VyIGJ1c2luZXNzXHJcbiAgICAgICAgICAgICAgICAgIHRvZ2V0aGVyIVxyXG4gICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgIDwvU3BsaXQ+XHJcbiAgICAgICAgICAgICAgPHVsPlxyXG4gICAgICAgICAgICAgICAgPGxpIGNsYXNzTmFtZT1cIndvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgIFJlZHVjaW5nIG9wZXJhdGlvbmFsIGNvc3RzXHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgPGxpIGNsYXNzTmFtZT1cIndvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjZzXCI+XHJcbiAgICAgICAgICAgICAgICAgIFByb3ZpZGluZyBmbGV4aWJpbGl0eVxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgIDxsaSBjbGFzc05hbWU9XCJ3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi44c1wiPlxyXG4gICAgICAgICAgICAgICAgICBBZG1pbmlzdHJhdGl2ZSBlZmZpY2llbmN5XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgPExpbmsgaHJlZj17YC9hYm91dC9hYm91dC1saWdodGB9PlxyXG4gICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYnV0biBib3JkIGN1cnZlIG10LTQwIHdvdyBmYWRlSW5VcFwiXHJcbiAgICAgICAgICAgICAgICAgIGRhdGEtd293LWRlbGF5PVwiLjhzXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4+RGlzY292ZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgPC9MaW5rPlxyXG5cclxuICAgICAgICAgICAgICA8YnIgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L3NlY3Rpb24+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IE1pbmltYWxBcmVhMjtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiU3BsaXQiLCJMaW5rIiwidGh1bXBhcmFsbGF4RG93biIsIk1pbmltYWxBcmVhMiIsInVzZUVmZmVjdCIsInNldFRpbWVvdXQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/components/Minimal-Area2/minimal-area2.jsx\n"); + +/***/ }), + +/***/ "./src/components/Navbar/navbar.jsx": +/*!******************************************!*\ + !*** ./src/components/Navbar/navbar.jsx ***! + \******************************************/ +/***/ ((__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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _data_app_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../data/app.json */ \"./src/data/app.json\");\n/* harmony import */ var _common_navbar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/navbar */ \"./src/common/navbar.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Navbar\\\\navbar.jsx\";\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nconst Navbar = ({\n lr,\n nr,\n theme\n}) => {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"nav\", {\n ref: nr,\n className: `navbar navbar-expand-lg change ${theme === \"themeL\" ? \"light\" : \"\"}`,\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"a\", {\n className: \"logo\",\n children: theme ? theme === \"themeL\" ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n ref: lr,\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.darkLogo,\n alt: \"logo\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 17\n }, undefined) : /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n ref: lr,\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.lightLogo,\n alt: \"logo\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 17\n }, undefined) : /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n ref: lr,\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.lightLogo,\n alt: \"logo\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 11\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 9\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"button\", {\n className: \"navbar-toggler\",\n type: \"button\",\n onClick: _common_navbar__WEBPACK_IMPORTED_MODULE_3__.handleMobileDropdown,\n \"data-toggle\": \"collapse\",\n \"data-target\": \"#navbarSupportedContent\",\n \"aria-controls\": \"navbarSupportedContent\",\n \"aria-expanded\": \"false\",\n \"aria-label\": \"Toggle navigation\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"icon-bar\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"i\", {\n className: \"fas fa-bars\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"collapse navbar-collapse\",\n id: \"navbarSupportedContent\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"ul\", {\n className: \"navbar-nav ml-auto\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"nav-link \",\n children: \"Home\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 13\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: `/about`,\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"a\", {\n className: \"nav-link\",\n children: \"Who we are\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 13\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: `/services`,\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"nav-link\",\n children: \"Our Services\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 59,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 13\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: `/blog/blog-light`,\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"nav-link \",\n children: \"Blog\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 13\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: `/contact/contact-light`,\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"a\", {\n className: \"nav-link\",\n children: \"Contact\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 13\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 7\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, undefined);\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Navbar);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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RUFBRyxrQkFBYjtBQUFBLHFDQUNFO0FBQU0seUJBQVMsRUFBQyxXQUFoQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQWhCRixlQXFCRTtBQUFJLHFCQUFTLEVBQUMsVUFBZDtBQUFBLG1DQUNFLDhEQUFDLGtEQUFEO0FBQU0sa0JBQUksRUFBRyx3QkFBYjtBQUFBLHFDQUNFO0FBQUcseUJBQVMsRUFBQyxVQUFiO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBckJGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsbUJBOUJGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU5GO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFERjtBQXFFRCxDQXRFRDs7QUF3RUEsaUVBQWVDLE1BQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly92aWUtcmVhY3QvLi9zcmMvY29tcG9uZW50cy9OYXZiYXIvbmF2YmFyLmpzeD83YWYwIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBuZXh0L25leHQvbm8taW1nLWVsZW1lbnQgKi9cclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgTGluayBmcm9tIFwibmV4dC9saW5rXCI7XHJcbmltcG9ydCBhcHBEYXRhIGZyb20gXCIuLi8uLi9kYXRhL2FwcC5qc29uXCI7XHJcbmltcG9ydCB7IGhhbmRsZURyb3Bkb3duLCBoYW5kbGVNb2JpbGVEcm9wZG93biB9IGZyb20gXCIuLi8uLi9jb21tb24vbmF2YmFyXCI7XHJcblxyXG5jb25zdCBOYXZiYXIgPSAoeyBsciwgbnIsIHRoZW1lIH0pID0+IHtcclxuICByZXR1cm4gKFxyXG4gICAgPG5hdlxyXG4gICAgICByZWY9e25yfVxyXG4gICAgICBjbGFzc05hbWU9e2BuYXZiYXIgbmF2YmFyLWV4cGFuZC1sZyBjaGFuZ2UgJHtcclxuICAgICAgICB0aGVtZSA9PT0gXCJ0aGVtZUxcIiA/IFwibGlnaHRcIiA6IFwiXCJcclxuICAgICAgfWB9XHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPExpbmsgaHJlZj1cIi9cIj5cclxuICAgICAgICAgIDxhIGNsYXNzTmFtZT1cImxvZ29cIj5cclxuICAgICAgICAgICAge3RoZW1lID8gKFxyXG4gICAgICAgICAgICAgIHRoZW1lID09PSBcInRoZW1lTFwiID8gKFxyXG4gICAgICAgICAgICAgICAgPGltZyByZWY9e2xyfSBzcmM9e2FwcERhdGEuZGFya0xvZ299IGFsdD1cImxvZ29cIiAvPlxyXG4gICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICA8aW1nIHJlZj17bHJ9IHNyYz17YXBwRGF0YS5saWdodExvZ299IGFsdD1cImxvZ29cIiAvPlxyXG4gICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICA8aW1nIHJlZj17bHJ9IHNyYz17YXBwRGF0YS5saWdodExvZ299IGFsdD1cImxvZ29cIiAvPlxyXG4gICAgICAgICAgICApfVxyXG4gICAgICAgICAgPC9hPlxyXG4gICAgICAgIDwvTGluaz5cclxuXHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgY2xhc3NOYW1lPVwibmF2YmFyLXRvZ2dsZXJcIlxyXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVNb2JpbGVEcm9wZG93bn1cclxuICAgICAgICAgIGRhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIlxyXG4gICAgICAgICAgZGF0YS10YXJnZXQ9XCIjbmF2YmFyU3VwcG9ydGVkQ29udGVudFwiXHJcbiAgICAgICAgICBhcmlhLWNvbnRyb2xzPVwibmF2YmFyU3VwcG9ydGVkQ29udGVudFwiXHJcbiAgICAgICAgICBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIlxyXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIlRvZ2dsZSBuYXZpZ2F0aW9uXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJpY29uLWJhclwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYXMgZmEtYmFyc1wiPjwvaT5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xsYXBzZSBuYXZiYXItY29sbGFwc2VcIiBpZD1cIm5hdmJhclN1cHBvcnRlZENvbnRlbnRcIj5cclxuICAgICAgICAgIDx1bCBjbGFzc05hbWU9XCJuYXZiYXItbmF2IG1sLWF1dG9cIj5cclxuICAgICAgICAgICAgPGxpIGNsYXNzTmFtZT1cIm5hdi1pdGVtIFwiPlxyXG4gICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJuYXYtbGluayBcIj5Ib21lPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgPGxpIGNsYXNzTmFtZT1cIm5hdi1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgPExpbmsgaHJlZj17YC9hYm91dGB9PlxyXG4gICAgICAgICAgICAgICAgPGEgY2xhc3NOYW1lPVwibmF2LWxpbmtcIj5XaG8gd2UgYXJlPC9hPlxyXG4gICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgPGxpIGNsYXNzTmFtZT1cIm5hdi1pdGVtIFwiPlxyXG4gICAgICAgICAgICAgIDxMaW5rIGhyZWY9e2Avc2VydmljZXNgfT5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm5hdi1saW5rXCI+T3VyIFNlcnZpY2VzPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgPGxpIGNsYXNzTmFtZT1cIm5hdi1pdGVtIFwiPlxyXG4gICAgICAgICAgICAgIDxMaW5rIGhyZWY9e2AvYmxvZy9ibG9nLWxpZ2h0YH0+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJuYXYtbGluayBcIj5CbG9nPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgPGxpIGNsYXNzTmFtZT1cIm5hdi1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgPExpbmsgaHJlZj17YC9jb250YWN0L2NvbnRhY3QtbGlnaHRgfT5cclxuICAgICAgICAgICAgICAgIDxhIGNsYXNzTmFtZT1cIm5hdi1saW5rXCI+Q29udGFjdDwvYT5cclxuICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICA8L3VsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmF2PlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBOYXZiYXI7XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIkxpbmsiLCJhcHBEYXRhIiwiaGFuZGxlRHJvcGRvd24iLCJoYW5kbGVNb2JpbGVEcm9wZG93biIsIk5hdmJhciIsImxyIiwibnIiLCJ0aGVtZSIsImRhcmtMb2dvIiwibGlnaHRMb2dvIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Navbar/navbar.jsx\n"); + +/***/ }), + +/***/ "./src/components/Services3/services3.jsx": +/*!************************************************!*\ + !*** ./src/components/Services3/services3.jsx ***! + \************************************************/ +/***/ ((__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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _common_cardMouseEffect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/cardMouseEffect */ \"./src/common/cardMouseEffect.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Services3\\\\services3.jsx\";\n\n\n\n\n\nconst Services3 = () => {\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(() => {\n (0,_common_cardMouseEffect__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(document.querySelectorAll(\".feat .items\"));\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"section\", {\n className: \"feat sub-bg section-padding\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"container\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"sec-head\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Best Services\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: \"We help to create strategies, design & development.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 15\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 11\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 9\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6 items md-mb30\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item wow fadeIn\",\n \"data-wow-delay\": \".3s\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"ion-ios-monitor\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h5\", {\n children: \"Strategic consulting\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"We listen to you, figure out what your project requires, and then craft a business plan just for you that works well in the UAE.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/about/about-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n className: \"more-stroke\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 15\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6 items active md-mb30\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item wow fadeIn\",\n \"data-wow-delay\": \".3s\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"ion-ios-bolt-outline\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h5\", {\n children: \"Preparing and submitting legal documents\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"We handle everything from registering and getting licenses to making sure your project follows all the rules, so you can start smoothly without any issues.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/about/about-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n className: \"more-stroke\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 15\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 44,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6 items sm-mb30\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item wow fadeIn\",\n \"data-wow-delay\": \".3s\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"ion-cube\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h5\", {\n children: \"Ongoing support\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"Once your business is up and running, we keep supporting you to help you adjust to the market and make sure you keep succeeding in the long run.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/about/about-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n className: \"more-stroke\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 15\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 61,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item wow fadeIn\",\n \"data-wow-delay\": \".3s\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"ion-ios-color-wand\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 82,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 81,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h5\", {\n children: \"Communication with government agencies\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 84,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"We take care of all the paperwork and dealings with government agencies to set up your project, so you can start your business smoothly and without delays.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/about/about-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n className: \"more-stroke\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 15\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 11\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 9\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 7\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 5\n }, undefined);\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Services3);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9TZXJ2aWNlczMvc2VydmljZXMzLmpzeC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7OztBQUVBLE1BQU1HLFNBQVMsR0FBRyxNQUFNO0FBQ3RCSCxFQUFBQSxzREFBQSxDQUFnQixNQUFNO0FBQ3BCRSxJQUFBQSxtRUFBZSxDQUFDRyxRQUFRLENBQUNDLGdCQUFULENBQTBCLGNBQTFCLENBQUQsQ0FBZjtBQUNELEdBRkQsRUFFRyxFQUZIO0FBR0Esc0JBQ0U7QUFBUyxhQUFTLEVBQUMsNkJBQW5CO0FBQUEsMkJBQ0U7QUFBSyxlQUFTLEVBQUMsV0FBZjtBQUFBLDhCQUNFO0FBQUssaUJBQVMsRUFBQyxLQUFmO0FBQUEsK0JBQ0U7QUFBSyxtQkFBUyxFQUFDLG9CQUFmO0FBQUEsaUNBQ0U7QUFBSyxxQkFBUyxFQUFDLFVBQWY7QUFBQSxvQ0FDRTtBQUFJLHVCQUFTLEVBQUMsWUFBZDtBQUEyQixnQ0FBZSxLQUExQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSx5QkFERixlQUlFO0FBQUksdUJBQVMsRUFBQyxnQkFBZDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSx5QkFKRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxtQkFERixlQWFFO0FBQUssaUJBQVMsRUFBQyxLQUFmO0FBQUEsZ0NBQ0U7QUFBSyxtQkFBUyxFQUFDLGlDQUFmO0FBQUEsaUNBQ0U7QUFBSyxxQkFBUyxFQUFDLGlCQUFmO0FBQWlDLDhCQUFlLEtBQWhEO0FBQUEsb0NBQ0U7QUFBTSx1QkFBUyxFQUFDLE1BQWhCO0FBQUEscUNBQ0U7QUFBRyx5QkFBUyxFQUFDO0FBQWI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEseUJBREYsZUFJRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSx5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QTtBQUFBO0FBQUE7QUFBQSxlQURGO0FBNEZELENBaEdEOztBQWtHQSxpRUFBZUgsU0FBZiIsInNvdXJjZXMiOlsid2VicGFjazovL3ZpZS1yZWFjdC8uL3NyYy9jb21wb25lbnRzL1NlcnZpY2VzMy9zZXJ2aWNlczMuanN4PzQ4ODQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgTGluayBmcm9tIFwibmV4dC9saW5rXCI7XHJcbmltcG9ydCBjYXJkTW91c2VFZmZlY3QgZnJvbSBcIi4uLy4uL2NvbW1vbi9jYXJkTW91c2VFZmZlY3RcIjtcclxuXHJcbmNvbnN0IFNlcnZpY2VzMyA9ICgpID0+IHtcclxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgY2FyZE1vdXNlRWZmZWN0KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuZmVhdCAuaXRlbXNcIikpO1xyXG4gIH0sIFtdKTtcclxuICByZXR1cm4gKFxyXG4gICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwiZmVhdCBzdWItYmcgc2VjdGlvbi1wYWRkaW5nXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTggY29sLW1kLTEwXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2VjLWhlYWRcIj5cclxuICAgICAgICAgICAgICA8aDYgY2xhc3NOYW1lPVwid293IGZhZGVJblwiIGRhdGEtd293LWRlbGF5PVwiLjVzXCI+XHJcbiAgICAgICAgICAgICAgICBCZXN0IFNlcnZpY2VzXHJcbiAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwid293IGNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgIFdlIGhlbHAgdG8gY3JlYXRlIHN0cmF0ZWdpZXMsIGRlc2lnbiAmYW1wOyBkZXZlbG9wbWVudC5cclxuICAgICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zIG1kLW1iMzBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIHdvdyBmYWRlSW5cIiBkYXRhLXdvdy1kZWxheT1cIi4zc1wiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb25cIj5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImlvbi1pb3MtbW9uaXRvclwiPjwvaT5cclxuICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPGg1PlN0cmF0ZWdpYyBjb25zdWx0aW5nPC9oNT5cclxuICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgIFdlIGxpc3RlbiB0byB5b3UsIGZpZ3VyZSBvdXQgd2hhdCB5b3VyIHByb2plY3QgcmVxdWlyZXMsIGFuZFxyXG4gICAgICAgICAgICAgICAgdGhlbiBjcmFmdCBhIGJ1c2luZXNzIHBsYW4ganVzdCBmb3IgeW91IHRoYXQgd29ya3Mgd2VsbCBpbiB0aGVcclxuICAgICAgICAgICAgICAgIFVBRS5cclxuICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9hYm91dC9hYm91dC1saWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPGEgY2xhc3NOYW1lPVwibW9yZS1zdHJva2VcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXMgYWN0aXZlIG1kLW1iMzBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIHdvdyBmYWRlSW5cIiBkYXRhLXdvdy1kZWxheT1cIi4zc1wiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb25cIj5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImlvbi1pb3MtYm9sdC1vdXRsaW5lXCI+PC9pPlxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8aDU+UHJlcGFyaW5nIGFuZCBzdWJtaXR0aW5nIGxlZ2FsIGRvY3VtZW50czwvaDU+XHJcbiAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICBXZSBoYW5kbGUgZXZlcnl0aGluZyBmcm9tIHJlZ2lzdGVyaW5nIGFuZCBnZXR0aW5nIGxpY2Vuc2VzIHRvXHJcbiAgICAgICAgICAgICAgICBtYWtpbmcgc3VyZSB5b3VyIHByb2plY3QgZm9sbG93cyBhbGwgdGhlIHJ1bGVzLCBzbyB5b3UgY2FuIHN0YXJ0XHJcbiAgICAgICAgICAgICAgICBzbW9vdGhseSB3aXRob3V0IGFueSBpc3N1ZXMuXHJcbiAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvYWJvdXQvYWJvdXQtbGlnaHRcIj5cclxuICAgICAgICAgICAgICAgIDxhIGNsYXNzTmFtZT1cIm1vcmUtc3Ryb2tlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zIHNtLW1iMzBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIHdvdyBmYWRlSW5cIiBkYXRhLXdvdy1kZWxheT1cIi4zc1wiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb25cIj5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImlvbi1jdWJlXCI+PC9pPlxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8aDU+T25nb2luZyBzdXBwb3J0PC9oNT5cclxuICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgIE9uY2UgeW91ciBidXNpbmVzcyBpcyB1cCBhbmQgcnVubmluZywgd2Uga2VlcCBzdXBwb3J0aW5nIHlvdSB0b1xyXG4gICAgICAgICAgICAgICAgaGVscCB5b3UgYWRqdXN0IHRvIHRoZSBtYXJrZXQgYW5kIG1ha2Ugc3VyZSB5b3Uga2VlcCBzdWNjZWVkaW5nXHJcbiAgICAgICAgICAgICAgICBpbiB0aGUgbG9uZyBydW4uXHJcbiAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvYWJvdXQvYWJvdXQtbGlnaHRcIj5cclxuICAgICAgICAgICAgICAgIDxhIGNsYXNzTmFtZT1cIm1vcmUtc3Ryb2tlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSB3b3cgZmFkZUluXCIgZGF0YS13b3ctZGVsYXk9XCIuM3NcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJpY29uXCI+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJpb24taW9zLWNvbG9yLXdhbmRcIj48L2k+XHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxoNT5Db21tdW5pY2F0aW9uIHdpdGggZ292ZXJubWVudCBhZ2VuY2llczwvaDU+XHJcbiAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICBXZSB0YWtlIGNhcmUgb2YgYWxsIHRoZSBwYXBlcndvcmsgYW5kIGRlYWxpbmdzIHdpdGggZ292ZXJubWVudFxyXG4gICAgICAgICAgICAgICAgYWdlbmNpZXMgdG8gc2V0IHVwIHlvdXIgcHJvamVjdCwgc28geW91IGNhbiBzdGFydCB5b3VyIGJ1c2luZXNzXHJcbiAgICAgICAgICAgICAgICBzbW9vdGhseSBhbmQgd2l0aG91dCBkZWxheXMuXHJcbiAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvYWJvdXQvYWJvdXQtbGlnaHRcIj5cclxuICAgICAgICAgICAgICAgIDxhIGNsYXNzTmFtZT1cIm1vcmUtc3Ryb2tlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBTZXJ2aWNlczM7XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIkxpbmsiLCJjYXJkTW91c2VFZmZlY3QiLCJTZXJ2aWNlczMiLCJ1c2VFZmZlY3QiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3JBbGwiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/components/Services3/services3.jsx\n"); + +/***/ }), + +/***/ "./src/components/Split/index.jsx": +/*!****************************************!*\ + !*** ./src/components/Split/index.jsx ***! + \****************************************/ +/***/ ((__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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Split\\\\index.jsx\";\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\n\n\nclass Split extends (react__WEBPACK_IMPORTED_MODULE_0___default().Component) {\n constructor(...args) {\n super(...args);\n\n _defineProperty(this, \"target\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createRef());\n\n _defineProperty(this, \"split\", () => {\n if (this.target.current) {\n Splitting({\n target: this.target.current\n });\n }\n });\n\n _defineProperty(this, \"componentDidMount\", this.split);\n\n _defineProperty(this, \"componentDidUpdate\", this.split);\n }\n\n render() {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n ref: this.target,\n children: this.props.children\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 12\n }, this);\n }\n\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Split);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9TcGxpdC9pbmRleC5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7OztBQUVBLE1BQU1DLEtBQU4sU0FBb0JELHdEQUFwQixDQUFvQztBQUFBO0FBQUE7O0FBQUEsaURBQ3pCQSxzREFBQSxFQUR5Qjs7QUFBQSxtQ0FHMUIsTUFBTTtBQUNaLFVBQUksS0FBS0ksTUFBTCxDQUFZQyxPQUFoQixFQUF5QjtBQUN2QkMsUUFBQUEsU0FBUyxDQUFDO0FBQUVGLFVBQUFBLE1BQU0sRUFBRSxLQUFLQSxNQUFMLENBQVlDO0FBQXRCLFNBQUQsQ0FBVDtBQUNEO0FBQ0YsS0FQaUM7O0FBQUEsK0NBU2QsS0FBS0UsS0FUUzs7QUFBQSxnREFVYixLQUFLQSxLQVZRO0FBQUE7O0FBWWxDQyxFQUFBQSxNQUFNLEdBQUc7QUFDUCx3QkFBTztBQUFLLFNBQUcsRUFBRSxLQUFLSixNQUFmO0FBQUEsZ0JBQXdCLEtBQUtLLEtBQUwsQ0FBV0M7QUFBbkM7QUFBQTtBQUFBO0FBQUE7QUFBQSxZQUFQO0FBQ0Q7O0FBZGlDOztBQWlCcEMsaUVBQWVULEtBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly92aWUtcmVhY3QvLi9zcmMvY29tcG9uZW50cy9TcGxpdC9pbmRleC5qc3g/ODcxMCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcblxyXG5jbGFzcyBTcGxpdCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcbiAgdGFyZ2V0ID0gUmVhY3QuY3JlYXRlUmVmKCk7XHJcblxyXG4gIHNwbGl0ID0gKCkgPT4ge1xyXG4gICAgaWYgKHRoaXMudGFyZ2V0LmN1cnJlbnQpIHtcclxuICAgICAgU3BsaXR0aW5nKHsgdGFyZ2V0OiB0aGlzLnRhcmdldC5jdXJyZW50IH0pO1xyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIGNvbXBvbmVudERpZE1vdW50ID0gdGhpcy5zcGxpdDtcclxuICBjb21wb25lbnREaWRVcGRhdGUgPSB0aGlzLnNwbGl0O1xyXG5cclxuICByZW5kZXIoKSB7XHJcbiAgICByZXR1cm4gPGRpdiByZWY9e3RoaXMudGFyZ2V0fT57dGhpcy5wcm9wcy5jaGlsZHJlbn08L2Rpdj47XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBTcGxpdDtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiU3BsaXQiLCJDb21wb25lbnQiLCJjcmVhdGVSZWYiLCJ0YXJnZXQiLCJjdXJyZW50IiwiU3BsaXR0aW5nIiwic3BsaXQiLCJyZW5kZXIiLCJwcm9wcyIsImNoaWxkcmVuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Split/index.jsx\n"); + +/***/ }), + +/***/ "./src/components/Team/team.jsx": +/*!**************************************!*\ + !*** ./src/components/Team/team.jsx ***! + \**************************************/ +/***/ ((__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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/teamSkillsProgress */ \"./src/common/teamSkillsProgress.js\");\n/* harmony import */ var _common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/tooltipEffect */ \"./src/common/tooltipEffect.js\");\n/* harmony import */ var _data_sections_team_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../data/sections/team.json */ \"./src/data/sections/team.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Team\\\\team.jsx\";\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nconst Team = () => {\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(() => {\n (0,_common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n setTimeout(() => {\n (0,_common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__[\"default\"])();\n }, 1000);\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"section\", {\n className: \"team section-padding\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Our Team\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: \"Our team will simplify business setup in the UAE\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 15\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 11\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container-fluid\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/01.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/02.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/03.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 117,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/04.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 11\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 9\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/05.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/06.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/07.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 292,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 291,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 297,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 299,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 298,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 280,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 275,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/08.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 319,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 333,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 332,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 338,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 340,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 339,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 321,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 320,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 318,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 317,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 316,\n columnNumber: 11\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 9\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/09.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 361,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 375,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 374,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 380,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 382,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 381,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 363,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 362,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 360,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 359,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 358,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/10.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 401,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 415,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 414,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 420,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 422,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 421,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 403,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 402,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 400,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 399,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 398,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/11.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 441,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 455,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 454,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 460,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 462,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 461,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 443,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 442,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 440,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 439,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 438,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/12.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 482,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 496,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 495,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 501,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 503,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 502,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 484,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 483,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 481,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 480,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 479,\n columnNumber: 11\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 357,\n columnNumber: 9\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 7\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 5\n }, undefined);\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Team);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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NmZELENBcGdCRDs7QUFzZ0JBLGlFQUFlRSxJQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmllLXJlYWN0Ly4vc3JjL2NvbXBvbmVudHMvVGVhbS90ZWFtLmpzeD9iNjhlIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBuZXh0L25leHQvbm8taW1nLWVsZW1lbnQgKi9cclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgdGVhbVNraWxsc1Byb2dyZXNzIGZyb20gXCIuLi8uLi9jb21tb24vdGVhbVNraWxsc1Byb2dyZXNzXCI7XHJcbmltcG9ydCB0b29sdGlwRWZmZWN0IGZyb20gXCIuLi8uLi9jb21tb24vdG9vbHRpcEVmZmVjdFwiO1xyXG5pbXBvcnQgdGVhbXNEYXRlIGZyb20gXCIuLi8uLi9kYXRhL3NlY3Rpb25zL3RlYW0uanNvblwiO1xyXG5cclxuY29uc3QgVGVhbSA9ICgpID0+IHtcclxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgdGVhbVNraWxsc1Byb2dyZXNzKCk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdG9vbHRpcEVmZmVjdCgpO1xyXG4gICAgfSwgMTAwMCk7XHJcbiAgfSwgW10pO1xyXG4gIHJldHVybiAoXHJcbiAgICA8c2VjdGlvbiBjbGFzc05hbWU9XCJ0ZWFtIHNlY3Rpb24tcGFkZGluZ1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTggY29sLW1kLTEwXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2VjLWhlYWQgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8aDYgY2xhc3NOYW1lPVwid293IGZhZGVJblwiIGRhdGEtd293LWRlbGF5PVwiLjVzXCI+XHJcbiAgICAgICAgICAgICAgICBPdXIgVGVhbVxyXG4gICAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cIndvdyBjb2xvci1mb250XCI+XHJcbiAgICAgICAgICAgICAgICBPdXIgdGVhbSB3aWxsIHNpbXBsaWZ5IGJ1c2luZXNzIHNldHVwIGluIHRoZSBVQUVcclxuICAgICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXItZmx1aWRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDEud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlMVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ0VPIE1hbmFnZXIgQ0VPIE1hbmFnZXIgQ0VPIE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wMi53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMlwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBJbnRlcmlvciBEZXNpZ25lciBJbnRlcmlvciBEZXNpZ25lciBJbnRlcmlvciBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBzbS1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzAzLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTNcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzA0LndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTRcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGg0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGg0XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGg0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENsaWVudCBNYW5hZ2VyIENsaWVudCBNYW5hZ2VyIENsaWVudCBNYW5hZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wNS53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUxXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDRU8gTWFuYWdlciBDRU8gTWFuYWdlciBDRU8gTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzA2LndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTJcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIHNtLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDcud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlM1wiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDgud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlNFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzA5LndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTFcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgxXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENFTyBNYW5hZ2VyIENFTyBNYW5hZ2VyIENFTyBNYW5hZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMTAud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlMlwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDJcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJpb3IgRGVzaWduZXIgSW50ZXJpb3IgRGVzaWduZXIgSW50ZXJpb3IgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgc20tbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8xMS53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUzXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8xMi53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGU0XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoNFwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDbGllbnQgTWFuYWdlciBDbGllbnQgTWFuYWdlciBDbGllbnQgTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L3NlY3Rpb24+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IFRlYW07XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsInRlYW1Ta2lsbHNQcm9ncmVzcyIsInRvb2x0aXBFZmZlY3QiLCJ0ZWFtc0RhdGUiLCJUZWFtIiwidXNlRWZmZWN0Iiwic2V0VGltZW91dCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Team/team.jsx\n"); + +/***/ }), + +/***/ "./src/components/Works3/works3.jsx": +/*!******************************************!*\ + !*** ./src/components/Works3/works3.jsx ***! + \******************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.a(module, async (__webpack_handle_async_dependencies__) => {\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/head */ \"next/head\");\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_head__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _data_sections_works_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../data/sections/works.json */ \"./src/data/sections/works.json\");\n/* harmony import */ var swiper_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! swiper/react */ \"swiper/react\");\n/* harmony import */ var swiper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! swiper */ \"swiper\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var swiper_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! swiper/css */ \"./node_modules/swiper/swiper.min.css\");\n/* harmony import */ var swiper_css__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(swiper_css__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var swiper_css_pagination__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! swiper/css/pagination */ \"./node_modules/swiper/modules/pagination/pagination.min.css\");\n/* harmony import */ var swiper_css_pagination__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(swiper_css_pagination__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var swiper_css_navigation__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! swiper/css/navigation */ \"./node_modules/swiper/modules/navigation/navigation.min.css\");\n/* harmony import */ var swiper_css_navigation__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(swiper_css_navigation__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__);\nvar __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([swiper_react__WEBPACK_IMPORTED_MODULE_3__, swiper__WEBPACK_IMPORTED_MODULE_4__]);\n([swiper_react__WEBPACK_IMPORTED_MODULE_3__, swiper__WEBPACK_IMPORTED_MODULE_4__] = __webpack_async_dependencies__.then ? await __webpack_async_dependencies__ : __webpack_async_dependencies__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Works3\\\\works3.jsx\";\n\n/* eslint-disable @next/next/no-css-tags */\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n // import Swiper core and required modules\n\n\n\n\n\n\n\n\nswiper__WEBPACK_IMPORTED_MODULE_4__[\"default\"].use([swiper__WEBPACK_IMPORTED_MODULE_4__.Autoplay, swiper__WEBPACK_IMPORTED_MODULE_4__.Pagination, swiper__WEBPACK_IMPORTED_MODULE_4__.Navigation]);\n\nconst Works3 = () => {\n const navigationPrevRef = react__WEBPACK_IMPORTED_MODULE_0___default().useRef(null);\n const navigationNextRef = react__WEBPACK_IMPORTED_MODULE_0___default().useRef(null);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.Fragment, {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_head__WEBPACK_IMPORTED_MODULE_1___default()), {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"link\", {\n rel: \"stylesheet\",\n href: \"/css/ionicons.min.css\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 9\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 7\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"section\", {\n className: \"work-carousel2 metro section-padding\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"row\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"sec-head\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Portfolio\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: [\"Our Recent Web Design & \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"br\", {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 47\n }, undefined), \" Some Past Projects.\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 11\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 9\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"container-fluid\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"row\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"col-lg-12 no-padding\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"swiper-container\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(swiper_react__WEBPACK_IMPORTED_MODULE_3__.Swiper, {\n className: \"swiper-wrapper\",\n slidesPerView: 2,\n centeredSlides: true,\n autoplay: {\n delay: 2500,\n disableOnInteraction: false\n },\n loop: true,\n navigation: {\n prevEl: navigationPrevRef.current,\n nextEl: navigationNextRef.current\n },\n onBeforeInit: swiper => {\n swiper.params.navigation.prevEl = navigationPrevRef.current;\n swiper.params.navigation.nextEl = navigationNextRef.current;\n },\n onSwiper: swiper => {\n setTimeout(() => {\n swiper.params.navigation.prevEl = navigationPrevRef.current;\n swiper.params.navigation.nextEl = navigationNextRef.current;\n swiper.navigation.destroy();\n swiper.navigation.init();\n swiper.navigation.update();\n });\n },\n speed: 1000,\n breakpoints: {\n 320: {\n slidesPerView: 1,\n spaceBetween: 0\n },\n 640: {\n slidesPerView: 1,\n spaceBetween: 0\n },\n 767: {\n slidesPerView: 1,\n spaceBetween: 0,\n centeredSlides: false\n },\n 991: {\n slidesPerView: 2\n }\n },\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(swiper_react__WEBPACK_IMPORTED_MODULE_3__.SwiperSlide, {\n className: \"swiper-slide\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"content\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"imgio\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"wow cimgio\",\n \"data-delay\": \"500\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 27\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/img/portfolio/2.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 27\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 25\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 23\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n children: \"art & illustration\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 101,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h4\", {\n children: \"Inspiring new space\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 106,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 100,\n columnNumber: 23\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 21\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 19\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(swiper_react__WEBPACK_IMPORTED_MODULE_3__.SwiperSlide, {\n className: \"swiper-slide\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"content\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"imgio\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"wow cimgio\",\n \"data-delay\": \"500\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 27\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/img/portfolio/1.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 121,\n columnNumber: 27\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 25\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 23\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n children: \"art & illustration\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h4\", {\n children: \"Inspiring new space\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 23\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 117,\n columnNumber: 21\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 19\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(swiper_react__WEBPACK_IMPORTED_MODULE_3__.SwiperSlide, {\n className: \"swiper-slide\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"content\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"imgio\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"wow cimgio\",\n \"data-delay\": \"500\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 27\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/img/portfolio/4.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 146,\n columnNumber: 27\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 144,\n columnNumber: 25\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 143,\n columnNumber: 23\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n children: \"art & illustration\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 150,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h4\", {\n children: \"Inspiring new space\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 149,\n columnNumber: 23\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 142,\n columnNumber: 21\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 141,\n columnNumber: 19\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(swiper_react__WEBPACK_IMPORTED_MODULE_3__.SwiperSlide, {\n className: \"swiper-slide\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"content\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"imgio\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"wow cimgio\",\n \"data-delay\": \"500\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 27\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/img/portfolio/5.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 27\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 25\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 23\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n children: \"art & illustration\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h4\", {\n children: \"Inspiring new space\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 23\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 21\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 19\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(swiper_react__WEBPACK_IMPORTED_MODULE_3__.SwiperSlide, {\n className: \"swiper-slide\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"content\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"imgio\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"wow cimgio\",\n \"data-delay\": \"500\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 27\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/img/portfolio/6.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 27\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 25\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 23\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n children: \"art & illustration\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h4\", {\n children: \"Inspiring new space\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 23\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 21\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 19\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n ref: navigationNextRef,\n className: \"swiper-button-next swiper-nav-ctrl next-ctrl cursor-pointer\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"i\", {\n className: \"ion-ios-arrow-right\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n ref: navigationPrevRef,\n className: \"swiper-button-prev swiper-nav-ctrl prev-ctrl cursor-pointer\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"i\", {\n className: \"ion-ios-arrow-left\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 7\n }, undefined)]\n }, void 0, true);\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Works3);\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFKRjtBQUFBLGtCQURGO0FBd05ELENBM05EOztBQTZOQSxpRUFBZUQsTUFBZixFIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmllLXJlYWN0Ly4vc3JjL2NvbXBvbmVudHMvV29ya3MzL3dvcmtzMy5qc3g/NjdhMSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAbmV4dC9uZXh0L25vLWNzcy10YWdzICovXHJcbi8qIGVzbGludC1kaXNhYmxlIEBuZXh0L25leHQvbm8taW1nLWVsZW1lbnQgKi9cclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgSGVhZCBmcm9tIFwibmV4dC9oZWFkXCI7XHJcbmltcG9ydCB3b3Jrc0RhdGEgZnJvbSBcIi4uLy4uL2RhdGEvc2VjdGlvbnMvd29ya3MuanNvblwiO1xyXG5pbXBvcnQgeyBTd2lwZXIsIFN3aXBlclNsaWRlIH0gZnJvbSBcInN3aXBlci9yZWFjdFwiO1xyXG4vLyBpbXBvcnQgU3dpcGVyIGNvcmUgYW5kIHJlcXVpcmVkIG1vZHVsZXNcclxuaW1wb3J0IFN3aXBlckNvcmUsIHsgQXV0b3BsYXksIFBhZ2luYXRpb24sIE5hdmlnYXRpb24gfSBmcm9tIFwic3dpcGVyXCI7XHJcbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcclxuaW1wb3J0IFwic3dpcGVyL2Nzc1wiO1xyXG5pbXBvcnQgXCJzd2lwZXIvY3NzL3BhZ2luYXRpb25cIjtcclxuaW1wb3J0IFwic3dpcGVyL2Nzcy9uYXZpZ2F0aW9uXCI7XHJcblN3aXBlckNvcmUudXNlKFtBdXRvcGxheSwgUGFnaW5hdGlvbiwgTmF2aWdhdGlvbl0pO1xyXG5cclxuY29uc3QgV29ya3MzID0gKCkgPT4ge1xyXG4gIGNvbnN0IG5hdmlnYXRpb25QcmV2UmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xyXG4gIGNvbnN0IG5hdmlnYXRpb25OZXh0UmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xyXG4gIHJldHVybiAoXHJcbiAgICA8PlxyXG4gICAgICA8SGVhZD5cclxuICAgICAgICA8bGluayByZWw9XCJzdHlsZXNoZWV0XCIgaHJlZj1cIi9jc3MvaW9uaWNvbnMubWluLmNzc1wiIC8+XHJcbiAgICAgIDwvSGVhZD5cclxuICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwid29yay1jYXJvdXNlbDIgbWV0cm8gc2VjdGlvbi1wYWRkaW5nXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTggY29sLW1kLTEwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWMtaGVhZFwiPlxyXG4gICAgICAgICAgICAgICAgPGg2IGNsYXNzTmFtZT1cIndvdyBmYWRlSW5cIiBkYXRhLXdvdy1kZWxheT1cIi41c1wiPlxyXG4gICAgICAgICAgICAgICAgICBQb3J0Zm9saW9cclxuICAgICAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwid293IGNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgT3VyIFJlY2VudCBXZWIgRGVzaWduICZhbXA7IDxiciAvPiBTb21lIFBhc3QgUHJvamVjdHMuXHJcbiAgICAgICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMTIgbm8tcGFkZGluZ1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3dpcGVyLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgPFN3aXBlclxyXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJzd2lwZXItd3JhcHBlclwiXHJcbiAgICAgICAgICAgICAgICAgIHNsaWRlc1BlclZpZXc9ezJ9XHJcbiAgICAgICAgICAgICAgICAgIGNlbnRlcmVkU2xpZGVzPXt0cnVlfVxyXG4gICAgICAgICAgICAgICAgICBhdXRvcGxheT17e1xyXG4gICAgICAgICAgICAgICAgICAgIGRlbGF5OiAyNTAwLFxyXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVPbkludGVyYWN0aW9uOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgbG9vcD17dHJ1ZX1cclxuICAgICAgICAgICAgICAgICAgbmF2aWdhdGlvbj17e1xyXG4gICAgICAgICAgICAgICAgICAgIHByZXZFbDogbmF2aWdhdGlvblByZXZSZWYuY3VycmVudCxcclxuICAgICAgICAgICAgICAgICAgICBuZXh0RWw6IG5hdmlnYXRpb25OZXh0UmVmLmN1cnJlbnQsXHJcbiAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgIG9uQmVmb3JlSW5pdD17KHN3aXBlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHN3aXBlci5wYXJhbXMubmF2aWdhdGlvbi5wcmV2RWwgPSBuYXZpZ2F0aW9uUHJldlJlZi5jdXJyZW50O1xyXG4gICAgICAgICAgICAgICAgICAgIHN3aXBlci5wYXJhbXMubmF2aWdhdGlvbi5uZXh0RWwgPSBuYXZpZ2F0aW9uTmV4dFJlZi5jdXJyZW50O1xyXG4gICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICBvblN3aXBlcj17KHN3aXBlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgc3dpcGVyLnBhcmFtcy5uYXZpZ2F0aW9uLnByZXZFbCA9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRpb25QcmV2UmVmLmN1cnJlbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICBzd2lwZXIucGFyYW1zLm5hdmlnYXRpb24ubmV4dEVsID1cclxuICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGlvbk5leHRSZWYuY3VycmVudDtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICBzd2lwZXIubmF2aWdhdGlvbi5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICBzd2lwZXIubmF2aWdhdGlvbi5pbml0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICBzd2lwZXIubmF2aWdhdGlvbi51cGRhdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgc3BlZWQ9ezEwMDB9XHJcbiAgICAgICAgICAgICAgICAgIGJyZWFrcG9pbnRzPXt7XHJcbiAgICAgICAgICAgICAgICAgICAgMzIwOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBzbGlkZXNQZXJWaWV3OiAxLFxyXG4gICAgICAgICAgICAgICAgICAgICAgc3BhY2VCZXR3ZWVuOiAwLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgNjQwOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBzbGlkZXNQZXJWaWV3OiAxLFxyXG4gICAgICAgICAgICAgICAgICAgICAgc3BhY2VCZXR3ZWVuOiAwLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgNzY3OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBzbGlkZXNQZXJWaWV3OiAxLFxyXG4gICAgICAgICAgICAgICAgICAgICAgc3BhY2VCZXR3ZWVuOiAwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgY2VudGVyZWRTbGlkZXM6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgOTkxOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBzbGlkZXNQZXJWaWV3OiAyLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxTd2lwZXJTbGlkZSBjbGFzc05hbWU9XCJzd2lwZXItc2xpZGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImltZ2lvXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwid293IGNpbWdpb1wiIGRhdGEtZGVsYXk9XCI1MDBcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3BvcnRmb2xpby8yLmpwZ1wiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB7LyogPExpbmsgaHJlZj17YC93b3JrczMvd29ya3MzLWRhcmtgfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xpbms+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFydCAmYW1wOyBpbGx1c3RyYXRpb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHsvKiA8TGlua1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj17YC9wcm9qZWN0LWRldGFpbHMyL3Byb2plY3QtZGV0YWlsczItZGFya2B9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPiAqL31cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBJbnNwaXJpbmcgbmV3IHNwYWNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgey8qIDwvTGluaz4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaDQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9Td2lwZXJTbGlkZT5cclxuICAgICAgICAgICAgICAgICAgPFN3aXBlclNsaWRlIGNsYXNzTmFtZT1cInN3aXBlci1zbGlkZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaW1naW9cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ3b3cgY2ltZ2lvXCIgZGF0YS1kZWxheT1cIjUwMFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvcG9ydGZvbGlvLzEuanBnXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGg2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHsvKiA8TGluayBocmVmPXtgL3dvcmtzMy93b3JrczMtZGFya2B9PiAqL31cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcnQgJmFtcDsgaWxsdXN0cmF0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgey8qIDwvTGluaz4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoND5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB7LyogPExpbmtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9e2AvcHJvamVjdC1kZXRhaWxzMi9wcm9qZWN0LWRldGFpbHMyLWRhcmtgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGlyaW5nIG5ldyBzcGFjZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHsvKiA8L0xpbms+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2g0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvU3dpcGVyU2xpZGU+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8U3dpcGVyU2xpZGUgY2xhc3NOYW1lPVwic3dpcGVyLXNsaWRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJpbWdpb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIndvdyBjaW1naW9cIiBkYXRhLWRlbGF5PVwiNTAwXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy9wb3J0Zm9saW8vNC5qcGdcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgey8qIDxMaW5rIGhyZWY9e2Avd29ya3MzL3dvcmtzMy1kYXJrYH0+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFydCAmYW1wOyBpbGx1c3RyYXRpb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB7LyogPC9MaW5rPiAqL31cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHsvKiA8TGlua1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj17YC9wcm9qZWN0LWRldGFpbHMyL3Byb2plY3QtZGV0YWlsczItZGFya2B9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPiAqL31cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBJbnNwaXJpbmcgbmV3IHNwYWNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgey8qIDwvTGluaz4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaDQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9Td2lwZXJTbGlkZT5cclxuICAgICAgICAgICAgICAgICAgPFN3aXBlclNsaWRlIGNsYXNzTmFtZT1cInN3aXBlci1zbGlkZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaW1naW9cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ3b3cgY2ltZ2lvXCIgZGF0YS1kZWxheT1cIjUwMFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvcG9ydGZvbGlvLzUuanBnXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGg2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHsvKiA8TGluayBocmVmPXtgL3dvcmtzMy93b3JrczMtZGFya2B9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvTGluaz4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYXJ0ICZhbXA7IGlsbHVzdHJhdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgey8qIDxMaW5rXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPXtgL3Byb2plY3QtZGV0YWlsczIvcHJvamVjdC1kZXRhaWxzMi1kYXJrYH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9MaW5rPiAqL31cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBJbnNwaXJpbmcgbmV3IHNwYWNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaDQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9Td2lwZXJTbGlkZT5cclxuICAgICAgICAgICAgICAgICAgPFN3aXBlclNsaWRlIGNsYXNzTmFtZT1cInN3aXBlci1zbGlkZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaW1naW9cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ3b3cgY2ltZ2lvXCIgZGF0YS1kZWxheT1cIjUwMFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvcG9ydGZvbGlvLzYuanBnXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGg2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHsvKiA8TGluayBocmVmPXtgL3dvcmtzMy93b3JrczMtZGFya2B9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvTGluaz4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYXJ0ICZhbXA7IGlsbHVzdHJhdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgey8qIDxMaW5rXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPXtgL3Byb2plY3QtZGV0YWlsczIvcHJvamVjdC1kZXRhaWxzMi1kYXJrYH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9MaW5rPiAqL31cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBJbnNwaXJpbmcgbmV3IHNwYWNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaDQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9Td2lwZXJTbGlkZT5cclxuICAgICAgICAgICAgICAgIDwvU3dpcGVyPlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgcmVmPXtuYXZpZ2F0aW9uTmV4dFJlZn1cclxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwic3dpcGVyLWJ1dHRvbi1uZXh0IHN3aXBlci1uYXYtY3RybCBuZXh0LWN0cmwgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJpb24taW9zLWFycm93LXJpZ2h0XCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgIHJlZj17bmF2aWdhdGlvblByZXZSZWZ9XHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInN3aXBlci1idXR0b24tcHJldiBzd2lwZXItbmF2LWN0cmwgcHJldi1jdHJsIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwiaW9uLWlvcy1hcnJvdy1sZWZ0XCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvc2VjdGlvbj5cclxuICAgIDwvPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBXb3JrczM7XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIkhlYWQiLCJ3b3Jrc0RhdGEiLCJTd2lwZXIiLCJTd2lwZXJTbGlkZSIsIlN3aXBlckNvcmUiLCJBdXRvcGxheSIsIlBhZ2luYXRpb24iLCJOYXZpZ2F0aW9uIiwiTGluayIsInVzZSIsIldvcmtzMyIsIm5hdmlnYXRpb25QcmV2UmVmIiwidXNlUmVmIiwibmF2aWdhdGlvbk5leHRSZWYiLCJkZWxheSIsImRpc2FibGVPbkludGVyYWN0aW9uIiwicHJldkVsIiwiY3VycmVudCIsIm5leHRFbCIsInN3aXBlciIsInBhcmFtcyIsIm5hdmlnYXRpb24iLCJzZXRUaW1lb3V0IiwiZGVzdHJveSIsImluaXQiLCJ1cGRhdGUiLCJzbGlkZXNQZXJWaWV3Iiwic3BhY2VCZXR3ZWVuIiwiY2VudGVyZWRTbGlkZXMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/components/Works3/works3.jsx\n"); + +/***/ }), + +/***/ "./src/components/blogs/Blogs4/blogs4.jsx": +/*!************************************************!*\ + !*** ./src/components/blogs/Blogs4/blogs4.jsx ***! + \************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.a(module, async (__webpack_handle_async_dependencies__) => {\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var swiper_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! swiper/react */ \"swiper/react\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var swiper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! swiper */ \"swiper\");\n/* harmony import */ var swiper_css__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! swiper/css */ \"./node_modules/swiper/swiper.min.css\");\n/* harmony import */ var swiper_css__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(swiper_css__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var swiper_css_pagination__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! swiper/css/pagination */ \"./node_modules/swiper/modules/pagination/pagination.min.css\");\n/* harmony import */ var swiper_css_pagination__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(swiper_css_pagination__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var swiper_css_navigation__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! swiper/css/navigation */ \"./node_modules/swiper/modules/navigation/navigation.min.css\");\n/* harmony import */ var swiper_css_navigation__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(swiper_css_navigation__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var swiper_css_effect_fade__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! swiper/css/effect-fade */ \"./node_modules/swiper/modules/effect-fade/effect-fade.min.css\");\n/* harmony import */ var swiper_css_effect_fade__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(swiper_css_effect_fade__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _common_thumparallax__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../common/thumparallax */ \"./src/common/thumparallax.js\");\n/* harmony import */ var _common_removeSlashpagination__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../common/removeSlashpagination */ \"./src/common/removeSlashpagination.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__);\nvar __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([swiper_react__WEBPACK_IMPORTED_MODULE_1__, swiper__WEBPACK_IMPORTED_MODULE_3__]);\n([swiper_react__WEBPACK_IMPORTED_MODULE_1__, swiper__WEBPACK_IMPORTED_MODULE_3__] = __webpack_async_dependencies__.then ? await __webpack_async_dependencies__ : __webpack_async_dependencies__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\blogs\\\\Blogs4\\\\blogs4.jsx\";\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\n\n\n\n\n\nswiper__WEBPACK_IMPORTED_MODULE_3__[\"default\"].use([swiper__WEBPACK_IMPORTED_MODULE_3__.Navigation, swiper__WEBPACK_IMPORTED_MODULE_3__.Pagination, swiper__WEBPACK_IMPORTED_MODULE_3__.Parallax, swiper__WEBPACK_IMPORTED_MODULE_3__.EffectFade]);\n\nconst Blogs4 = () => {\n const [load, setLoad] = react__WEBPACK_IMPORTED_MODULE_0___default().useState(true);\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(() => {\n setTimeout(() => {\n setLoad(false);\n (0,_common_removeSlashpagination__WEBPACK_IMPORTED_MODULE_9__[\"default\"])();\n (0,_common_thumparallax__WEBPACK_IMPORTED_MODULE_8__.thumparallax)();\n }, 1000);\n }, []);\n const navigationPrevRef = react__WEBPACK_IMPORTED_MODULE_0___default().useRef(null);\n const navigationNextRef = react__WEBPACK_IMPORTED_MODULE_0___default().useRef(null);\n const paginationRef = react__WEBPACK_IMPORTED_MODULE_0___default().useRef(null);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"section\", {\n className: \"blog-crv sub-bg\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"h2\", {\n style: {\n display: \"none\"\n },\n children: \"\\xA0\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 7\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"div\", {\n className: \"stories\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"div\", {\n className: \"container-fluid\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"div\", {\n className: \"col-lg-6 no-padding\",\n children: !load ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(swiper_react__WEBPACK_IMPORTED_MODULE_1__.Swiper, {\n speed: 800,\n effect: \"fade\",\n spaceBetween: 0,\n loop: true,\n parallax: true,\n navigation: {\n prevEl: navigationPrevRef.current,\n nextEl: navigationNextRef.current\n },\n pagination: {\n type: \"fraction\",\n clickable: true,\n el: paginationRef.current\n },\n onBeforeInit: swiper => {\n swiper.params.navigation.prevEl = navigationPrevRef.current;\n swiper.params.navigation.nextEl = navigationNextRef.current;\n swiper.params.pagination.el = paginationRef.current;\n },\n onSwiper: swiper => {\n setTimeout(() => {\n for (var i = 0; i < swiper.slides.length; i++) {\n swiper.slides[i].childNodes[0].setAttribute(\"data-swiper-parallax\", 0.75 * swiper.width);\n }\n\n swiper.params.navigation.prevEl = navigationPrevRef.current;\n swiper.params.navigation.nextEl = navigationNextRef.current;\n swiper.params.pagination.el = paginationRef.current;\n swiper.navigation.destroy();\n swiper.navigation.init();\n swiper.navigation.update();\n swiper.pagination.destroy();\n swiper.pagination.init();\n swiper.pagination.update();\n });\n },\n className: \"swiper-wrapper swiper-container swiper-img\",\n slidesPerView: 1,\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(swiper_react__WEBPACK_IMPORTED_MODULE_1__.SwiperSlide, {\n className: \"swiper-slide\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"div\", {\n className: \"item wow fadeIn\",\n \"data-wow-delay\": \".3s\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"img\", {\n className: \"thumparallax\",\n src: \"/img/blog/blog img1.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 25\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 21\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 19\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(swiper_react__WEBPACK_IMPORTED_MODULE_1__.SwiperSlide, {\n className: \"swiper-slide\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"div\", {\n className: \"item wow fadeIn\",\n \"data-wow-delay\": \".3s\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"img\", {\n className: \"thumparallax\",\n src: \"/img/blog/blog img2.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 105,\n columnNumber: 25\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 104,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 103,\n columnNumber: 21\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 102,\n columnNumber: 19\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(swiper_react__WEBPACK_IMPORTED_MODULE_1__.SwiperSlide, {\n className: \"swiper-slide\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"div\", {\n className: \"item wow fadeIn\",\n \"data-wow-delay\": \".3s\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"img\", {\n className: \"thumparallax\",\n src: \"/img/blog/blog img3.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 25\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 21\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 19\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 17\n }, undefined) : null\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 13\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"div\", {\n className: \"col-lg-6 no-padding valign\",\n children: !load ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(swiper_react__WEBPACK_IMPORTED_MODULE_1__.Swiper, {\n speed: 800,\n spaceBetween: 0,\n loop: true,\n navigation: {\n prevEl: navigationPrevRef.current,\n nextEl: navigationNextRef.current\n },\n pagination: {\n type: \"fraction\",\n clickable: true,\n el: paginationRef.current\n },\n onBeforeInit: swiper => {\n swiper.params.navigation.prevEl = navigationPrevRef.current;\n swiper.params.navigation.nextEl = navigationNextRef.current;\n swiper.params.pagination.el = paginationRef.current;\n },\n onSwiper: swiper => {\n setTimeout(() => {\n for (var i = 0; i < swiper.slides.length; i++) {\n swiper.slides[i].childNodes[0].setAttribute(\"data-swiper-parallax\", 0.75 * swiper.width);\n }\n\n swiper.params.navigation.prevEl = navigationPrevRef.current;\n swiper.params.navigation.nextEl = navigationNextRef.current;\n swiper.params.pagination.el = paginationRef.current;\n swiper.navigation.destroy();\n swiper.navigation.init();\n swiper.navigation.update();\n swiper.pagination.destroy();\n swiper.pagination.init();\n swiper.pagination.update();\n });\n },\n className: \"swiper-wrapper swiper-container swiper-content\",\n slidesPerView: 1,\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(swiper_react__WEBPACK_IMPORTED_MODULE_1__.SwiperSlide, {\n className: \"swiper-slide\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"div\", {\n className: \"item wow fadeIn\",\n \"data-wow-delay\": \".6s\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"div\", {\n className: \"content\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"div\", {\n className: \"tags\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/blog/blog-dark\",\n children: \"Trending\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"div\", {\n className: \"info\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/blog/blog-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"a\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"i\", {\n className: \"far fa-clock\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 31\n }, undefined), \"01 April 2024\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 29\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"div\", {\n className: \"title\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"h4\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/blog-details/blog-details-dark\",\n children: \"Business Hub: Its role in supporting companies in the stages of establishment, development, and...\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 29\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"div\", {\n className: \"text\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"p\", {\n children: \"In a rapidly evolving and competitive business landscape, companies often need specialized support and guidance to meet challenges, exploit opportunities, and achieve sustainable growth.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"div\", {\n className: \"more\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: `/blog-details/blog-details-dark`,\n children: \"Read More\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 21\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 19\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(swiper_react__WEBPACK_IMPORTED_MODULE_1__.SwiperSlide, {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"div\", {\n className: \"item wow fadeIn\",\n \"data-wow-delay\": \".6s\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"div\", {\n className: \"content\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"div\", {\n className: \"tags\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/blog/blog-dark\",\n children: \"Trending\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"div\", {\n className: \"info\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/blog/blog-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"a\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"i\", {\n className: \"far fa-clock\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 31\n }, undefined), \"01 April 2024\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 29\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"div\", {\n className: \"title\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"h4\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/blog-details/blog-details-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"a\", {\n children: \"Business Hub: Empowering Companies through Establishment\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 230,\n columnNumber: 31\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 29\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"div\", {\n className: \"text\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"p\", {\n children: \"n the fast-paced and competitive business landscape, companies often require specialized support and guidance to navigate challenges, capitalize on opportunities, and achieve sustainable growth.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"div\", {\n className: \"more\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: `/blog-details/blog-details-dark`,\n children: \"Read More\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 21\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 19\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(swiper_react__WEBPACK_IMPORTED_MODULE_1__.SwiperSlide, {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"div\", {\n className: \"item wow fadeIn\",\n \"data-wow-delay\": \".6s\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"div\", {\n className: \"content\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"div\", {\n className: \"tags\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/blog/blog-dark\",\n children: \"Trending\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 256,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"div\", {\n className: \"info\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/blog/blog-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"a\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"i\", {\n className: \"far fa-clock\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 262,\n columnNumber: 31\n }, undefined), \"01 April 2024\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 29\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"div\", {\n className: \"title\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"h4\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/blog-details/blog-details-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"a\", {\n children: \"The Importance of Consulting\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 270,\n columnNumber: 31\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 29\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"div\", {\n className: \"text\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"p\", {\n children: \"In today's fast-paced and competitive business world, seeking advice and guidance from consultants has become increasingly crucial for companies aiming to thrive and succeed.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 275,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 274,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"div\", {\n className: \"more\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: `/blog-details/blog-details-dark`,\n children: \"Read More\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 283,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 282,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 255,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 254,\n columnNumber: 21\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 253,\n columnNumber: 19\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 17\n }, undefined) : null\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"div\", {\n className: \"controls\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"div\", {\n ref: navigationNextRef,\n className: \"swiper-button-next swiper-nav-ctrl next-ctrl\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"i\", {\n className: \"fas fa-caret-up\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 300,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 296,\n columnNumber: 13\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"div\", {\n ref: navigationPrevRef,\n className: \"swiper-button-prev swiper-nav-ctrl prev-ctrl\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"i\", {\n className: \"fas fa-caret-down\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 306,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 302,\n columnNumber: 13\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(\"div\", {\n className: \"swiper-pagination\",\n ref: paginationRef\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 308,\n columnNumber: 13\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 295,\n columnNumber: 11\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 5\n }, undefined);\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Blogs4);\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9ibG9ncy9CbG9nczQvYmxvZ3M0LmpzeC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBSSxrREFBQSxDQUFlLENBQUNDLDhDQUFELEVBQWFDLDhDQUFiLEVBQXlCQyw0Q0FBekIsRUFBbUNDLDhDQUFuQyxDQUFmOztBQUVBLE1BQU1JLE1BQU0sR0FBRyxNQUFNO0FBQ25CLFFBQU0sQ0FBQ0MsSUFBRCxFQUFPQyxPQUFQLElBQWtCZCxxREFBQSxDQUFlLElBQWYsQ0FBeEI7QUFDQUEsRUFBQUEsc0RBQUEsQ0FBZ0IsTUFBTTtBQUNwQmlCLElBQUFBLFVBQVUsQ0FBQyxNQUFNO0FBQ2ZILE1BQUFBLE9BQU8sQ0FBQyxLQUFELENBQVA7QUFDQUosTUFBQUEseUVBQXlCO0FBQ3pCRCxNQUFBQSxrRUFBWTtBQUNiLEtBSlMsRUFJUCxJQUpPLENBQVY7QUFLRCxHQU5ELEVBTUcsRUFOSDtBQVFBLFFBQU1TLGlCQUFpQixHQUFHbEIsbURBQUEsQ0FBYSxJQUFiLENBQTFCO0FBQ0EsUUFBTW9CLGlCQUFpQixHQUFHcEIsbURBQUEsQ0FBYSxJQUFiLENBQTFCO0FBQ0EsUUFBTXFCLGFBQWEsR0FBR3JCLG1EQUFBLENBQWEsSUFBYixDQUF0QjtBQUVBLHNCQUNFO0FBQVMsYUFBUyxFQUFDLGlCQUFuQjtBQUFBLDRCQUNFO0FBQUksV0FBSyxFQUFFO0FBQUVzQixRQUFBQSxPQUFPLEVBQUU7QUFBWCxPQUFYO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQURGLGVBRUU7QUFBSyxlQUFTLEVBQUMsU0FBZjtBQUFBLDZCQUNFO0FBQUssaUJBQVMsRUFBQyxpQkFBZjtBQUFBLGdDQUNFO0FBQUssbUJBQVMsRUFBQyxLQUFmO0FBQUEsa0NBQ0U7QUFBSyxxQkFBUyxFQUFDLHFCQUFmO0FBQUEsc0JBQ0cs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LEVBQUM7QUFBYjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSkY7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFQRixlQWFFO0FBQUsscUJBQVMsRUFBQyxtQkFBZjtBQUFtQyxlQUFHLEVBQUVHO0FBQXhDO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBYkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQWhRRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQUZGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxlQURGO0FBdVJELENBclNEOztBQXVTQSxpRUFBZVQsTUFBZixFIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmllLXJlYWN0Ly4vc3JjL2NvbXBvbmVudHMvYmxvZ3MvQmxvZ3M0L2Jsb2dzNC5qc3g/YmYyMCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAbmV4dC9uZXh0L25vLWltZy1lbGVtZW50ICovXHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgU3dpcGVyLCBTd2lwZXJTbGlkZSB9IGZyb20gXCJzd2lwZXIvcmVhY3RcIjtcclxuaW1wb3J0IExpbmsgZnJvbSBcIm5leHQvbGlua1wiO1xyXG5pbXBvcnQgU3dpcGVyQ29yZSwge1xyXG4gIE5hdmlnYXRpb24sXHJcbiAgUGFnaW5hdGlvbixcclxuICBQYXJhbGxheCxcclxuICBFZmZlY3RGYWRlLFxyXG59IGZyb20gXCJzd2lwZXJcIjtcclxuXHJcbmltcG9ydCBcInN3aXBlci9jc3NcIjtcclxuaW1wb3J0IFwic3dpcGVyL2Nzcy9wYWdpbmF0aW9uXCI7XHJcbmltcG9ydCBcInN3aXBlci9jc3MvbmF2aWdhdGlvblwiO1xyXG5pbXBvcnQgXCJzd2lwZXIvY3NzL2VmZmVjdC1mYWRlXCI7XHJcbmltcG9ydCB7IHRodW1wYXJhbGxheCB9IGZyb20gXCIuLi8uLi8uLi9jb21tb24vdGh1bXBhcmFsbGF4XCI7XHJcbmltcG9ydCByZW1vdmVTbGFzaEZyb21QYWdpbmF0aW9uIGZyb20gXCIuLi8uLi8uLi9jb21tb24vcmVtb3ZlU2xhc2hwYWdpbmF0aW9uXCI7XHJcblxyXG5Td2lwZXJDb3JlLnVzZShbTmF2aWdhdGlvbiwgUGFnaW5hdGlvbiwgUGFyYWxsYXgsIEVmZmVjdEZhZGVdKTtcclxuXHJcbmNvbnN0IEJsb2dzNCA9ICgpID0+IHtcclxuICBjb25zdCBbbG9hZCwgc2V0TG9hZF0gPSBSZWFjdC51c2VTdGF0ZSh0cnVlKTtcclxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHNldExvYWQoZmFsc2UpO1xyXG4gICAgICByZW1vdmVTbGFzaEZyb21QYWdpbmF0aW9uKCk7XHJcbiAgICAgIHRodW1wYXJhbGxheCgpO1xyXG4gICAgfSwgMTAwMCk7XHJcbiAgfSwgW10pO1xyXG5cclxuICBjb25zdCBuYXZpZ2F0aW9uUHJldlJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcclxuICBjb25zdCBuYXZpZ2F0aW9uTmV4dFJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcclxuICBjb25zdCBwYWdpbmF0aW9uUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwiYmxvZy1jcnYgc3ViLWJnXCI+XHJcbiAgICAgIDxoMiBzdHlsZT17eyBkaXNwbGF5OiBcIm5vbmVcIiB9fT4mbmJzcDs8L2gyPlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInN0b3JpZXNcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctNiBuby1wYWRkaW5nXCI+XHJcbiAgICAgICAgICAgICAgeyFsb2FkID8gKFxyXG4gICAgICAgICAgICAgICAgPFN3aXBlclxyXG4gICAgICAgICAgICAgICAgICBzcGVlZD17ODAwfVxyXG4gICAgICAgICAgICAgICAgICBlZmZlY3Q9XCJmYWRlXCJcclxuICAgICAgICAgICAgICAgICAgc3BhY2VCZXR3ZWVuPXswfVxyXG4gICAgICAgICAgICAgICAgICBsb29wPXt0cnVlfVxyXG4gICAgICAgICAgICAgICAgICBwYXJhbGxheD17dHJ1ZX1cclxuICAgICAgICAgICAgICAgICAgbmF2aWdhdGlvbj17e1xyXG4gICAgICAgICAgICAgICAgICAgIHByZXZFbDogbmF2aWdhdGlvblByZXZSZWYuY3VycmVudCxcclxuICAgICAgICAgICAgICAgICAgICBuZXh0RWw6IG5hdmlnYXRpb25OZXh0UmVmLmN1cnJlbnQsXHJcbiAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgIHBhZ2luYXRpb249e3tcclxuICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImZyYWN0aW9uXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgY2xpY2thYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIGVsOiBwYWdpbmF0aW9uUmVmLmN1cnJlbnQsXHJcbiAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgIG9uQmVmb3JlSW5pdD17KHN3aXBlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHN3aXBlci5wYXJhbXMubmF2aWdhdGlvbi5wcmV2RWwgPSBuYXZpZ2F0aW9uUHJldlJlZi5jdXJyZW50O1xyXG4gICAgICAgICAgICAgICAgICAgIHN3aXBlci5wYXJhbXMubmF2aWdhdGlvbi5uZXh0RWwgPSBuYXZpZ2F0aW9uTmV4dFJlZi5jdXJyZW50O1xyXG4gICAgICAgICAgICAgICAgICAgIHN3aXBlci5wYXJhbXMucGFnaW5hdGlvbi5lbCA9IHBhZ2luYXRpb25SZWYuY3VycmVudDtcclxuICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgb25Td2lwZXI9eyhzd2lwZXIpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3dpcGVyLnNsaWRlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzd2lwZXIuc2xpZGVzW2ldLmNoaWxkTm9kZXNbMF0uc2V0QXR0cmlidXRlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGF0YS1zd2lwZXItcGFyYWxsYXhcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAwLjc1ICogc3dpcGVyLndpZHRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgc3dpcGVyLnBhcmFtcy5uYXZpZ2F0aW9uLnByZXZFbCA9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRpb25QcmV2UmVmLmN1cnJlbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICBzd2lwZXIucGFyYW1zLm5hdmlnYXRpb24ubmV4dEVsID1cclxuICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGlvbk5leHRSZWYuY3VycmVudDtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICBzd2lwZXIucGFyYW1zLnBhZ2luYXRpb24uZWwgPSBwYWdpbmF0aW9uUmVmLmN1cnJlbnQ7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgc3dpcGVyLm5hdmlnYXRpb24uZGVzdHJveSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgc3dpcGVyLm5hdmlnYXRpb24uaW5pdCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgc3dpcGVyLm5hdmlnYXRpb24udXBkYXRlKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgc3dpcGVyLnBhZ2luYXRpb24uZGVzdHJveSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgc3dpcGVyLnBhZ2luYXRpb24uaW5pdCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgc3dpcGVyLnBhZ2luYXRpb24udXBkYXRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInN3aXBlci13cmFwcGVyIHN3aXBlci1jb250YWluZXIgc3dpcGVyLWltZ1wiXHJcbiAgICAgICAgICAgICAgICAgIHNsaWRlc1BlclZpZXc9ezF9XHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxTd2lwZXJTbGlkZSBjbGFzc05hbWU9XCJzd2lwZXItc2xpZGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gd293IGZhZGVJblwiIGRhdGEtd293LWRlbGF5PVwiLjNzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGh1bXBhcmFsbGF4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCIvaW1nL2Jsb2cvYmxvZyBpbWcxLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9Td2lwZXJTbGlkZT5cclxuICAgICAgICAgICAgICAgICAgPFN3aXBlclNsaWRlIGNsYXNzTmFtZT1cInN3aXBlci1zbGlkZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSB3b3cgZmFkZUluXCIgZGF0YS13b3ctZGVsYXk9XCIuM3NcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0aHVtcGFyYWxsYXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cIi9pbWcvYmxvZy9ibG9nIGltZzIud2VicFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L1N3aXBlclNsaWRlPlxyXG4gICAgICAgICAgICAgICAgICA8U3dpcGVyU2xpZGUgY2xhc3NOYW1lPVwic3dpcGVyLXNsaWRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIHdvdyBmYWRlSW5cIiBkYXRhLXdvdy1kZWxheT1cIi4zc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRodW1wYXJhbGxheFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPVwiL2ltZy9ibG9nL2Jsb2cgaW1nMy53ZWJwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvU3dpcGVyU2xpZGU+XHJcbiAgICAgICAgICAgICAgICA8L1N3aXBlcj5cclxuICAgICAgICAgICAgICApIDogbnVsbH1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTYgbm8tcGFkZGluZyB2YWxpZ25cIj5cclxuICAgICAgICAgICAgICB7IWxvYWQgPyAoXHJcbiAgICAgICAgICAgICAgICA8U3dpcGVyXHJcbiAgICAgICAgICAgICAgICAgIHNwZWVkPXs4MDB9XHJcbiAgICAgICAgICAgICAgICAgIHNwYWNlQmV0d2Vlbj17MH1cclxuICAgICAgICAgICAgICAgICAgbG9vcD17dHJ1ZX1cclxuICAgICAgICAgICAgICAgICAgbmF2aWdhdGlvbj17e1xyXG4gICAgICAgICAgICAgICAgICAgIHByZXZFbDogbmF2aWdhdGlvblByZXZSZWYuY3VycmVudCxcclxuICAgICAgICAgICAgICAgICAgICBuZXh0RWw6IG5hdmlnYXRpb25OZXh0UmVmLmN1cnJlbnQsXHJcbiAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgIHBhZ2luYXRpb249e3tcclxuICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImZyYWN0aW9uXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgY2xpY2thYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIGVsOiBwYWdpbmF0aW9uUmVmLmN1cnJlbnQsXHJcbiAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgIG9uQmVmb3JlSW5pdD17KHN3aXBlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHN3aXBlci5wYXJhbXMubmF2aWdhdGlvbi5wcmV2RWwgPSBuYXZpZ2F0aW9uUHJldlJlZi5jdXJyZW50O1xyXG4gICAgICAgICAgICAgICAgICAgIHN3aXBlci5wYXJhbXMubmF2aWdhdGlvbi5uZXh0RWwgPSBuYXZpZ2F0aW9uTmV4dFJlZi5jdXJyZW50O1xyXG4gICAgICAgICAgICAgICAgICAgIHN3aXBlci5wYXJhbXMucGFnaW5hdGlvbi5lbCA9IHBhZ2luYXRpb25SZWYuY3VycmVudDtcclxuICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgb25Td2lwZXI9eyhzd2lwZXIpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3dpcGVyLnNsaWRlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzd2lwZXIuc2xpZGVzW2ldLmNoaWxkTm9kZXNbMF0uc2V0QXR0cmlidXRlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGF0YS1zd2lwZXItcGFyYWxsYXhcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAwLjc1ICogc3dpcGVyLndpZHRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgc3dpcGVyLnBhcmFtcy5uYXZpZ2F0aW9uLnByZXZFbCA9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRpb25QcmV2UmVmLmN1cnJlbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICBzd2lwZXIucGFyYW1zLm5hdmlnYXRpb24ubmV4dEVsID1cclxuICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGlvbk5leHRSZWYuY3VycmVudDtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICBzd2lwZXIucGFyYW1zLnBhZ2luYXRpb24uZWwgPSBwYWdpbmF0aW9uUmVmLmN1cnJlbnQ7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgc3dpcGVyLm5hdmlnYXRpb24uZGVzdHJveSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgc3dpcGVyLm5hdmlnYXRpb24uaW5pdCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgc3dpcGVyLm5hdmlnYXRpb24udXBkYXRlKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgc3dpcGVyLnBhZ2luYXRpb24uZGVzdHJveSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgc3dpcGVyLnBhZ2luYXRpb24uaW5pdCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgc3dpcGVyLnBhZ2luYXRpb24udXBkYXRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInN3aXBlci13cmFwcGVyIHN3aXBlci1jb250YWluZXIgc3dpcGVyLWNvbnRlbnRcIlxyXG4gICAgICAgICAgICAgICAgICBzbGlkZXNQZXJWaWV3PXsxfVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8U3dpcGVyU2xpZGUgY2xhc3NOYW1lPVwic3dpcGVyLXNsaWRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIHdvdyBmYWRlSW5cIiBkYXRhLXdvdy1kZWxheT1cIi42c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGFnc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvYmxvZy9ibG9nLWRhcmtcIj5UcmVuZGluZzwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvYmxvZy9ibG9nLWRhcmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYXIgZmEtY2xvY2tcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAxIEFwcmlsIDIwMjRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9ibG9nLWRldGFpbHMvYmxvZy1kZXRhaWxzLWRhcmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVzaW5lc3MgSHViOiBJdHMgcm9sZSBpbiBzdXBwb3J0aW5nIGNvbXBhbmllcyBpblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgc3RhZ2VzIG9mIGVzdGFibGlzaG1lbnQsIGRldmVsb3BtZW50LCBhbmQuLi5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2g0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbiBhIHJhcGlkbHkgZXZvbHZpbmcgYW5kIGNvbXBldGl0aXZlIGJ1c2luZXNzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYW5kc2NhcGUsIGNvbXBhbmllcyBvZnRlbiBuZWVkIHNwZWNpYWxpemVkIHN1cHBvcnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBndWlkYW5jZSB0byBtZWV0IGNoYWxsZW5nZXMsIGV4cGxvaXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wcG9ydHVuaXRpZXMsIGFuZCBhY2hpZXZlIHN1c3RhaW5hYmxlIGdyb3d0aC5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1vcmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPXtgL2Jsb2ctZGV0YWlscy9ibG9nLWRldGFpbHMtZGFya2B9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVhZCBNb3JlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L1N3aXBlclNsaWRlPlxyXG4gICAgICAgICAgICAgICAgICA8U3dpcGVyU2xpZGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIHdvdyBmYWRlSW5cIiBkYXRhLXdvdy1kZWxheT1cIi42c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGFnc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvYmxvZy9ibG9nLWRhcmtcIj5UcmVuZGluZzwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvYmxvZy9ibG9nLWRhcmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYXIgZmEtY2xvY2tcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAxIEFwcmlsIDIwMjRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9ibG9nLWRldGFpbHMvYmxvZy1kZXRhaWxzLWRhcmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVzaW5lc3MgSHViOiBFbXBvd2VyaW5nIENvbXBhbmllcyB0aHJvdWdoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXN0YWJsaXNobWVudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oND5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbiB0aGUgZmFzdC1wYWNlZCBhbmQgY29tcGV0aXRpdmUgYnVzaW5lc3MgbGFuZHNjYXBlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcGFuaWVzIG9mdGVuIHJlcXVpcmUgc3BlY2lhbGl6ZWQgc3VwcG9ydCBhbmRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aWRhbmNlIHRvIG5hdmlnYXRlIGNoYWxsZW5nZXMsIGNhcGl0YWxpemUgb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wcG9ydHVuaXRpZXMsIGFuZCBhY2hpZXZlIHN1c3RhaW5hYmxlIGdyb3d0aC5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1vcmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPXtgL2Jsb2ctZGV0YWlscy9ibG9nLWRldGFpbHMtZGFya2B9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVhZCBNb3JlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L1N3aXBlclNsaWRlPlxyXG4gICAgICAgICAgICAgICAgICA8U3dpcGVyU2xpZGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIHdvdyBmYWRlSW5cIiBkYXRhLXdvdy1kZWxheT1cIi42c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGFnc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvYmxvZy9ibG9nLWRhcmtcIj5UcmVuZGluZzwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvYmxvZy9ibG9nLWRhcmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYXIgZmEtY2xvY2tcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAxIEFwcmlsIDIwMjRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9ibG9nLWRldGFpbHMvYmxvZy1kZXRhaWxzLWRhcmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE+VGhlIEltcG9ydGFuY2Ugb2YgQ29uc3VsdGluZzwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2g0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbiB0b2RheSZhcG9zO3MgZmFzdC1wYWNlZCBhbmQgY29tcGV0aXRpdmUgYnVzaW5lc3NcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmxkLCBzZWVraW5nIGFkdmljZSBhbmQgZ3VpZGFuY2UgZnJvbSBjb25zdWx0YW50c1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzIGJlY29tZSBpbmNyZWFzaW5nbHkgY3J1Y2lhbCBmb3IgY29tcGFuaWVzIGFpbWluZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8gdGhyaXZlIGFuZCBzdWNjZWVkLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibW9yZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9e2AvYmxvZy1kZXRhaWxzL2Jsb2ctZGV0YWlscy1kYXJrYH0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWFkIE1vcmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvU3dpcGVyU2xpZGU+XHJcbiAgICAgICAgICAgICAgICA8L1N3aXBlcj5cclxuICAgICAgICAgICAgICApIDogbnVsbH1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRyb2xzXCI+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICByZWY9e25hdmlnYXRpb25OZXh0UmVmfVxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cInN3aXBlci1idXR0b24tbmV4dCBzd2lwZXItbmF2LWN0cmwgbmV4dC1jdHJsXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhcyBmYS1jYXJldC11cFwiPjwvaT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICByZWY9e25hdmlnYXRpb25QcmV2UmVmfVxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cInN3aXBlci1idXR0b24tcHJldiBzd2lwZXItbmF2LWN0cmwgcHJldi1jdHJsXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhcyBmYS1jYXJldC1kb3duXCI+PC9pPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzd2lwZXItcGFnaW5hdGlvblwiIHJlZj17cGFnaW5hdGlvblJlZn0+PC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L3NlY3Rpb24+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IEJsb2dzNDtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiU3dpcGVyIiwiU3dpcGVyU2xpZGUiLCJMaW5rIiwiU3dpcGVyQ29yZSIsIk5hdmlnYXRpb24iLCJQYWdpbmF0aW9uIiwiUGFyYWxsYXgiLCJFZmZlY3RGYWRlIiwidGh1bXBhcmFsbGF4IiwicmVtb3ZlU2xhc2hGcm9tUGFnaW5hdGlvbiIsInVzZSIsIkJsb2dzNCIsImxvYWQiLCJzZXRMb2FkIiwidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJzZXRUaW1lb3V0IiwibmF2aWdhdGlvblByZXZSZWYiLCJ1c2VSZWYiLCJuYXZpZ2F0aW9uTmV4dFJlZiIsInBhZ2luYXRpb25SZWYiLCJkaXNwbGF5IiwicHJldkVsIiwiY3VycmVudCIsIm5leHRFbCIsInR5cGUiLCJjbGlja2FibGUiLCJlbCIsInN3aXBlciIsInBhcmFtcyIsIm5hdmlnYXRpb24iLCJwYWdpbmF0aW9uIiwiaSIsInNsaWRlcyIsImxlbmd0aCIsImNoaWxkTm9kZXMiLCJzZXRBdHRyaWJ1dGUiLCJ3aWR0aCIsImRlc3Ryb3kiLCJpbml0IiwidXBkYXRlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/blogs/Blogs4/blogs4.jsx\n"); + +/***/ }), + +/***/ "./src/config/particle-config.js": +/*!***************************************!*\ + !*** ./src/config/particle-config.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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nconst particlesConfig = {\n particles: {\n number: {\n value: 130,\n density: {\n enable: true,\n value_area: 900\n }\n },\n color: {\n value: \"#ffffff\"\n },\n shape: {\n type: \"circle\",\n stroke: {\n width: 0,\n color: \"#000000\"\n },\n polygon: {\n nb_sides: 5\n },\n image: {\n src: \"/img/github.svg\",\n width: 100,\n height: 100\n }\n },\n opacity: {\n value: 0.2,\n random: true,\n anim: {\n enable: true,\n speed: 1,\n opacity_min: 0.3,\n sync: false\n }\n },\n size: {\n value: 1.8,\n random: true,\n anim: {\n enable: false,\n speed: 4,\n size_min: 0.4,\n sync: false\n }\n },\n line_linked: {\n enable: false,\n distance: 150,\n color: \"#ffffff\",\n opacity: 0.4,\n width: 1\n },\n move: {\n enable: true,\n speed: 1,\n direction: \"none\",\n random: true,\n straight: false,\n out_mode: \"out\",\n bounce: false,\n attract: {\n enable: false,\n rotateX: 600,\n rotateY: 600\n }\n }\n },\n interactivity: {\n detect_on: \"canvas\",\n events: {\n onhover: {\n enable: true,\n mode: \"bubble\"\n },\n onclick: {\n enable: true,\n mode: \"repulse\"\n },\n resize: true\n },\n modes: {\n grab: {\n distance: 400,\n line_linked: {\n opacity: 1\n }\n },\n bubble: {\n distance: 250,\n size: 0,\n duration: 2,\n opacity: 0,\n speed: 3\n },\n repulse: {\n distance: 400,\n duration: 0.4\n },\n push: {\n particles_nb: 4\n },\n remove: {\n particles_nb: 2\n }\n }\n },\n retina_detect: true\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (particlesConfig);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFFO0FBVEYsS0FGSztBQWFiQyxJQUFBQSxLQUFLLEVBQUU7QUFDTEMsTUFBQUEsSUFBSSxFQUFFO0FBQ0pqQixRQUFBQSxRQUFRLEVBQUUsR0FETjtBQUVKRCxRQUFBQSxXQUFXLEVBQUU7QUFDWFIsVUFBQUEsT0FBTyxFQUFFO0FBREU7QUFGVCxPQUREO0FBT0wyQixNQUFBQSxNQUFNLEVBQUU7QUFDTmxCLFFBQUFBLFFBQVEsRUFBRSxHQURKO0FBRU5ILFFBQUFBLElBQUksRUFBRSxDQUZBO0FBR05zQixRQUFBQSxRQUFRLEVBQUUsQ0FISjtBQUlONUIsUUFBQUEsT0FBTyxFQUFFLENBSkg7QUFLTkcsUUFBQUEsS0FBSyxFQUFFO0FBTEQsT0FQSDtBQWNMMEIsTUFBQUEsT0FBTyxFQUFFO0FBQ1BwQixRQUFBQSxRQUFRLEVBQUUsR0FESDtBQUVQbUIsUUFBQUEsUUFBUSxFQUFFO0FBRkgsT0FkSjtBQWtCTEUsTUFBQUEsSUFBSSxFQUFFO0FBQ0pDLFFBQUFBLFlBQVksRUFBRTtBQURWLE9BbEJEO0FBcUJMQyxNQUFBQSxNQUFNLEVBQUU7QUFDTkQsUUFBQUEsWUFBWSxFQUFFO0FBRFI7QUFyQkg7QUFiTSxHQXJFTztBQTRHdEJFLEVBQUFBLGFBQWEsRUFBRTtBQTVHTyxDQUF4QjtBQStHQSxpRUFBZWxELGVBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly92aWUtcmVhY3QvLi9zcmMvY29uZmlnL3BhcnRpY2xlLWNvbmZpZy5qcz8wNzlkIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHBhcnRpY2xlc0NvbmZpZyA9IHtcclxuICBwYXJ0aWNsZXM6IHtcclxuICAgIG51bWJlcjoge1xyXG4gICAgICB2YWx1ZTogMTMwLFxyXG4gICAgICBkZW5zaXR5OiB7XHJcbiAgICAgICAgZW5hYmxlOiB0cnVlLFxyXG4gICAgICAgIHZhbHVlX2FyZWE6IDkwMCxcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICBjb2xvcjoge1xyXG4gICAgICB2YWx1ZTogXCIjZmZmZmZmXCIsXHJcbiAgICB9LFxyXG4gICAgc2hhcGU6IHtcclxuICAgICAgdHlwZTogXCJjaXJjbGVcIixcclxuICAgICAgc3Ryb2tlOiB7XHJcbiAgICAgICAgd2lkdGg6IDAsXHJcbiAgICAgICAgY29sb3I6IFwiIzAwMDAwMFwiLFxyXG4gICAgICB9LFxyXG4gICAgICBwb2x5Z29uOiB7XHJcbiAgICAgICAgbmJfc2lkZXM6IDUsXHJcbiAgICAgIH0sXHJcbiAgICAgIGltYWdlOiB7XHJcbiAgICAgICAgc3JjOiBcIi9pbWcvZ2l0aHViLnN2Z1wiLFxyXG4gICAgICAgIHdpZHRoOiAxMDAsXHJcbiAgICAgICAgaGVpZ2h0OiAxMDAsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgb3BhY2l0eToge1xyXG4gICAgICB2YWx1ZTogMC4yLFxyXG4gICAgICByYW5kb206IHRydWUsXHJcbiAgICAgIGFuaW06IHtcclxuICAgICAgICBlbmFibGU6IHRydWUsXHJcbiAgICAgICAgc3BlZWQ6IDEsXHJcbiAgICAgICAgb3BhY2l0eV9taW46IDAuMyxcclxuICAgICAgICBzeW5jOiBmYWxzZSxcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICBzaXplOiB7XHJcbiAgICAgIHZhbHVlOiAxLjgsXHJcbiAgICAgIHJhbmRvbTogdHJ1ZSxcclxuICAgICAgYW5pbToge1xyXG4gICAgICAgIGVuYWJsZTogZmFsc2UsXHJcbiAgICAgICAgc3BlZWQ6IDQsXHJcbiAgICAgICAgc2l6ZV9taW46IDAuNCxcclxuICAgICAgICBzeW5jOiBmYWxzZSxcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICBsaW5lX2xpbmtlZDoge1xyXG4gICAgICBlbmFibGU6IGZhbHNlLFxyXG4gICAgICBkaXN0YW5jZTogMTUwLFxyXG4gICAgICBjb2xvcjogXCIjZmZmZmZmXCIsXHJcbiAgICAgIG9wYWNpdHk6IDAuNCxcclxuICAgICAgd2lkdGg6IDEsXHJcbiAgICB9LFxyXG4gICAgbW92ZToge1xyXG4gICAgICBlbmFibGU6IHRydWUsXHJcbiAgICAgIHNwZWVkOiAxLFxyXG4gICAgICBkaXJlY3Rpb246IFwibm9uZVwiLFxyXG4gICAgICByYW5kb206IHRydWUsXHJcbiAgICAgIHN0cmFpZ2h0OiBmYWxzZSxcclxuICAgICAgb3V0X21vZGU6IFwib3V0XCIsXHJcbiAgICAgIGJvdW5jZTogZmFsc2UsXHJcbiAgICAgIGF0dHJhY3Q6IHtcclxuICAgICAgICBlbmFibGU6IGZhbHNlLFxyXG4gICAgICAgIHJvdGF0ZVg6IDYwMCxcclxuICAgICAgICByb3RhdGVZOiA2MDAsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgaW50ZXJhY3Rpdml0eToge1xyXG4gICAgZGV0ZWN0X29uOiBcImNhbnZhc1wiLFxyXG4gICAgZXZlbnRzOiB7XHJcbiAgICAgIG9uaG92ZXI6IHtcclxuICAgICAgICBlbmFibGU6IHRydWUsXHJcbiAgICAgICAgbW9kZTogXCJidWJibGVcIixcclxuICAgICAgfSxcclxuICAgICAgb25jbGljazoge1xyXG4gICAgICAgIGVuYWJsZTogdHJ1ZSxcclxuICAgICAgICBtb2RlOiBcInJlcHVsc2VcIixcclxuICAgICAgfSxcclxuICAgICAgcmVzaXplOiB0cnVlLFxyXG4gICAgfSxcclxuICAgIG1vZGVzOiB7XHJcbiAgICAgIGdyYWI6IHtcclxuICAgICAgICBkaXN0YW5jZTogNDAwLFxyXG4gICAgICAgIGxpbmVfbGlua2VkOiB7XHJcbiAgICAgICAgICBvcGFjaXR5OiAxLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIGJ1YmJsZToge1xyXG4gICAgICAgIGRpc3RhbmNlOiAyNTAsXHJcbiAgICAgICAgc2l6ZTogMCxcclxuICAgICAgICBkdXJhdGlvbjogMixcclxuICAgICAgICBvcGFjaXR5OiAwLFxyXG4gICAgICAgIHNwZWVkOiAzLFxyXG4gICAgICB9LFxyXG4gICAgICByZXB1bHNlOiB7XHJcbiAgICAgICAgZGlzdGFuY2U6IDQwMCxcclxuICAgICAgICBkdXJhdGlvbjogMC40LFxyXG4gICAgICB9LFxyXG4gICAgICBwdXNoOiB7XHJcbiAgICAgICAgcGFydGljbGVzX25iOiA0LFxyXG4gICAgICB9LFxyXG4gICAgICByZW1vdmU6IHtcclxuICAgICAgICBwYXJ0aWNsZXNfbmI6IDIsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgcmV0aW5hX2RldGVjdDogdHJ1ZSxcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHBhcnRpY2xlc0NvbmZpZztcclxuIl0sIm5hbWVzIjpbInBhcnRpY2xlc0NvbmZpZyIsInBhcnRpY2xlcyIsIm51bWJlciIsInZhbHVlIiwiZGVuc2l0eSIsImVuYWJsZSIsInZhbHVlX2FyZWEiLCJjb2xvciIsInNoYXBlIiwidHlwZSIsInN0cm9rZSIsIndpZHRoIiwicG9seWdvbiIsIm5iX3NpZGVzIiwiaW1hZ2UiLCJzcmMiLCJoZWlnaHQiLCJvcGFjaXR5IiwicmFuZG9tIiwiYW5pbSIsInNwZWVkIiwib3BhY2l0eV9taW4iLCJzeW5jIiwic2l6ZSIsInNpemVfbWluIiwibGluZV9saW5rZWQiLCJkaXN0YW5jZSIsIm1vdmUiLCJkaXJlY3Rpb24iLCJzdHJhaWdodCIsIm91dF9tb2RlIiwiYm91bmNlIiwiYXR0cmFjdCIsInJvdGF0ZVgiLCJyb3RhdGVZIiwiaW50ZXJhY3Rpdml0eSIsImRldGVjdF9vbiIsImV2ZW50cyIsIm9uaG92ZXIiLCJtb2RlIiwib25jbGljayIsInJlc2l6ZSIsIm1vZGVzIiwiZ3JhYiIsImJ1YmJsZSIsImR1cmF0aW9uIiwicmVwdWxzZSIsInB1c2giLCJwYXJ0aWNsZXNfbmIiLCJyZW1vdmUiLCJyZXRpbmFfZGV0ZWN0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/config/particle-config.js\n"); + +/***/ }), + +/***/ "./src/config/pr-s-black.js": +/*!**********************************!*\ + !*** ./src/config/pr-s-black.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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nconst particlesBlackConfig = {\n particles: {\n number: {\n value: 130,\n density: {\n enable: true,\n value_area: 900\n }\n },\n color: {\n value: \"#000000\"\n },\n shape: {\n type: \"circle\",\n stroke: {\n width: 0,\n color: \"#000000\"\n },\n polygon: {\n nb_sides: 5\n },\n image: {\n src: \"/img/github.svg\",\n width: 100,\n height: 100\n }\n },\n opacity: {\n value: 0.2,\n random: true,\n anim: {\n enable: true,\n speed: 1,\n opacity_min: 0.3,\n sync: false\n }\n },\n size: {\n value: 1.8,\n random: true,\n anim: {\n enable: false,\n speed: 4,\n size_min: 0.4,\n sync: false\n }\n },\n line_linked: {\n enable: false,\n distance: 150,\n color: \"#ffffff\",\n opacity: 0.4,\n width: 1\n },\n move: {\n enable: true,\n speed: 1,\n direction: \"none\",\n random: true,\n straight: false,\n out_mode: \"out\",\n bounce: false,\n attract: {\n enable: false,\n rotateX: 600,\n rotateY: 600\n }\n }\n },\n interactivity: {\n detect_on: \"canvas\",\n events: {\n onhover: {\n enable: true,\n mode: \"bubble\"\n },\n onclick: {\n enable: true,\n mode: \"repulse\"\n },\n resize: true\n },\n modes: {\n grab: {\n distance: 400,\n line_linked: {\n opacity: 1\n }\n },\n bubble: {\n distance: 250,\n size: 0,\n duration: 2,\n opacity: 0,\n speed: 3\n },\n repulse: {\n distance: 400,\n duration: 0.4\n },\n push: {\n particles_nb: 4\n },\n remove: {\n particles_nb: 2\n }\n }\n },\n retina_detect: true\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (particlesBlackConfig);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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RTtBQVRGLEtBRks7QUFhYkMsSUFBQUEsS0FBSyxFQUFFO0FBQ0xDLE1BQUFBLElBQUksRUFBRTtBQUNKakIsUUFBQUEsUUFBUSxFQUFFLEdBRE47QUFFSkQsUUFBQUEsV0FBVyxFQUFFO0FBQ1hSLFVBQUFBLE9BQU8sRUFBRTtBQURFO0FBRlQsT0FERDtBQU9MMkIsTUFBQUEsTUFBTSxFQUFFO0FBQ05sQixRQUFBQSxRQUFRLEVBQUUsR0FESjtBQUVOSCxRQUFBQSxJQUFJLEVBQUUsQ0FGQTtBQUdOc0IsUUFBQUEsUUFBUSxFQUFFLENBSEo7QUFJTjVCLFFBQUFBLE9BQU8sRUFBRSxDQUpIO0FBS05HLFFBQUFBLEtBQUssRUFBRTtBQUxELE9BUEg7QUFjTDBCLE1BQUFBLE9BQU8sRUFBRTtBQUNQcEIsUUFBQUEsUUFBUSxFQUFFLEdBREg7QUFFUG1CLFFBQUFBLFFBQVEsRUFBRTtBQUZILE9BZEo7QUFrQkxFLE1BQUFBLElBQUksRUFBRTtBQUNKQyxRQUFBQSxZQUFZLEVBQUU7QUFEVixPQWxCRDtBQXFCTEMsTUFBQUEsTUFBTSxFQUFFO0FBQ05ELFFBQUFBLFlBQVksRUFBRTtBQURSO0FBckJIO0FBYk0sR0FyRVk7QUE0RzNCRSxFQUFBQSxhQUFhLEVBQUU7QUE1R1ksQ0FBN0I7QUErR0EsaUVBQWVsRCxvQkFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL3ZpZS1yZWFjdC8uL3NyYy9jb25maWcvcHItcy1ibGFjay5qcz9jMjA4Il0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHBhcnRpY2xlc0JsYWNrQ29uZmlnID0ge1xyXG4gIHBhcnRpY2xlczoge1xyXG4gICAgbnVtYmVyOiB7XHJcbiAgICAgIHZhbHVlOiAxMzAsXHJcbiAgICAgIGRlbnNpdHk6IHtcclxuICAgICAgICBlbmFibGU6IHRydWUsXHJcbiAgICAgICAgdmFsdWVfYXJlYTogOTAwLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIGNvbG9yOiB7XHJcbiAgICAgIHZhbHVlOiBcIiMwMDAwMDBcIixcclxuICAgIH0sXHJcbiAgICBzaGFwZToge1xyXG4gICAgICB0eXBlOiBcImNpcmNsZVwiLFxyXG4gICAgICBzdHJva2U6IHtcclxuICAgICAgICB3aWR0aDogMCxcclxuICAgICAgICBjb2xvcjogXCIjMDAwMDAwXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIHBvbHlnb246IHtcclxuICAgICAgICBuYl9zaWRlczogNSxcclxuICAgICAgfSxcclxuICAgICAgaW1hZ2U6IHtcclxuICAgICAgICBzcmM6IFwiL2ltZy9naXRodWIuc3ZnXCIsXHJcbiAgICAgICAgd2lkdGg6IDEwMCxcclxuICAgICAgICBoZWlnaHQ6IDEwMCxcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICBvcGFjaXR5OiB7XHJcbiAgICAgIHZhbHVlOiAwLjIsXHJcbiAgICAgIHJhbmRvbTogdHJ1ZSxcclxuICAgICAgYW5pbToge1xyXG4gICAgICAgIGVuYWJsZTogdHJ1ZSxcclxuICAgICAgICBzcGVlZDogMSxcclxuICAgICAgICBvcGFjaXR5X21pbjogMC4zLFxyXG4gICAgICAgIHN5bmM6IGZhbHNlLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIHNpemU6IHtcclxuICAgICAgdmFsdWU6IDEuOCxcclxuICAgICAgcmFuZG9tOiB0cnVlLFxyXG4gICAgICBhbmltOiB7XHJcbiAgICAgICAgZW5hYmxlOiBmYWxzZSxcclxuICAgICAgICBzcGVlZDogNCxcclxuICAgICAgICBzaXplX21pbjogMC40LFxyXG4gICAgICAgIHN5bmM6IGZhbHNlLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIGxpbmVfbGlua2VkOiB7XHJcbiAgICAgIGVuYWJsZTogZmFsc2UsXHJcbiAgICAgIGRpc3RhbmNlOiAxNTAsXHJcbiAgICAgIGNvbG9yOiBcIiNmZmZmZmZcIixcclxuICAgICAgb3BhY2l0eTogMC40LFxyXG4gICAgICB3aWR0aDogMSxcclxuICAgIH0sXHJcbiAgICBtb3ZlOiB7XHJcbiAgICAgIGVuYWJsZTogdHJ1ZSxcclxuICAgICAgc3BlZWQ6IDEsXHJcbiAgICAgIGRpcmVjdGlvbjogXCJub25lXCIsXHJcbiAgICAgIHJhbmRvbTogdHJ1ZSxcclxuICAgICAgc3RyYWlnaHQ6IGZhbHNlLFxyXG4gICAgICBvdXRfbW9kZTogXCJvdXRcIixcclxuICAgICAgYm91bmNlOiBmYWxzZSxcclxuICAgICAgYXR0cmFjdDoge1xyXG4gICAgICAgIGVuYWJsZTogZmFsc2UsXHJcbiAgICAgICAgcm90YXRlWDogNjAwLFxyXG4gICAgICAgIHJvdGF0ZVk6IDYwMCxcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgfSxcclxuICBpbnRlcmFjdGl2aXR5OiB7XHJcbiAgICBkZXRlY3Rfb246IFwiY2FudmFzXCIsXHJcbiAgICBldmVudHM6IHtcclxuICAgICAgb25ob3Zlcjoge1xyXG4gICAgICAgIGVuYWJsZTogdHJ1ZSxcclxuICAgICAgICBtb2RlOiBcImJ1YmJsZVwiLFxyXG4gICAgICB9LFxyXG4gICAgICBvbmNsaWNrOiB7XHJcbiAgICAgICAgZW5hYmxlOiB0cnVlLFxyXG4gICAgICAgIG1vZGU6IFwicmVwdWxzZVwiLFxyXG4gICAgICB9LFxyXG4gICAgICByZXNpemU6IHRydWUsXHJcbiAgICB9LFxyXG4gICAgbW9kZXM6IHtcclxuICAgICAgZ3JhYjoge1xyXG4gICAgICAgIGRpc3RhbmNlOiA0MDAsXHJcbiAgICAgICAgbGluZV9saW5rZWQ6IHtcclxuICAgICAgICAgIG9wYWNpdHk6IDEsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgYnViYmxlOiB7XHJcbiAgICAgICAgZGlzdGFuY2U6IDI1MCxcclxuICAgICAgICBzaXplOiAwLFxyXG4gICAgICAgIGR1cmF0aW9uOiAyLFxyXG4gICAgICAgIG9wYWNpdHk6IDAsXHJcbiAgICAgICAgc3BlZWQ6IDMsXHJcbiAgICAgIH0sXHJcbiAgICAgIHJlcHVsc2U6IHtcclxuICAgICAgICBkaXN0YW5jZTogNDAwLFxyXG4gICAgICAgIGR1cmF0aW9uOiAwLjQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHB1c2g6IHtcclxuICAgICAgICBwYXJ0aWNsZXNfbmI6IDQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHJlbW92ZToge1xyXG4gICAgICAgIHBhcnRpY2xlc19uYjogMixcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgfSxcclxuICByZXRpbmFfZGV0ZWN0OiB0cnVlLFxyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgcGFydGljbGVzQmxhY2tDb25maWciXSwibmFtZXMiOlsicGFydGljbGVzQmxhY2tDb25maWciLCJwYXJ0aWNsZXMiLCJudW1iZXIiLCJ2YWx1ZSIsImRlbnNpdHkiLCJlbmFibGUiLCJ2YWx1ZV9hcmVhIiwiY29sb3IiLCJzaGFwZSIsInR5cGUiLCJzdHJva2UiLCJ3aWR0aCIsInBvbHlnb24iLCJuYl9zaWRlcyIsImltYWdlIiwic3JjIiwiaGVpZ2h0Iiwib3BhY2l0eSIsInJhbmRvbSIsImFuaW0iLCJzcGVlZCIsIm9wYWNpdHlfbWluIiwic3luYyIsInNpemUiLCJzaXplX21pbiIsImxpbmVfbGlua2VkIiwiZGlzdGFuY2UiLCJtb3ZlIiwiZGlyZWN0aW9uIiwic3RyYWlnaHQiLCJvdXRfbW9kZSIsImJvdW5jZSIsImF0dHJhY3QiLCJyb3RhdGVYIiwicm90YXRlWSIsImludGVyYWN0aXZpdHkiLCJkZXRlY3Rfb24iLCJldmVudHMiLCJvbmhvdmVyIiwibW9kZSIsIm9uY2xpY2siLCJyZXNpemUiLCJtb2RlcyIsImdyYWIiLCJidWJibGUiLCJkdXJhdGlvbiIsInJlcHVsc2UiLCJwdXNoIiwicGFydGljbGVzX25iIiwicmVtb3ZlIiwicmV0aW5hX2RldGVjdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/config/pr-s-black.js\n"); + +/***/ }), + +/***/ "./src/layouts/Dark.jsx": +/*!******************************!*\ + !*** ./src/layouts/Dark.jsx ***! + \******************************/ +/***/ ((__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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/head */ \"next/head\");\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_head__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\layouts\\\\Dark.jsx\";\n\n/* eslint-disable @next/next/no-css-tags */\n\n\n\n\n\nconst DarkTheme = ({\n children,\n useSkin,\n mobileappstyle\n}) => {\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(() => {\n window.theme = \"dark\";\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)((next_head__WEBPACK_IMPORTED_MODULE_1___default()), {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"link\", {\n rel: \"stylesheet\",\n href: \"/css/dark.css\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 9\n }, undefined), useSkin ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"link\", {\n rel: \"stylesheet\",\n href: \"/css/arch-skin-dark.css\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 21\n }, undefined) : null, mobileappstyle ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"link\", {\n href: \"/css/mobile-app-dark.css\",\n rel: \"stylesheet\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 28\n }, undefined) : null]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 7\n }, undefined), children]\n }, void 0, true);\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (DarkTheme);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvbGF5b3V0cy9EYXJrLmpzeC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7Ozs7QUFFQSxNQUFNRSxTQUFTLEdBQUcsQ0FBQztBQUFFQyxFQUFBQSxRQUFGO0FBQVlDLEVBQUFBLE9BQVo7QUFBcUJDLEVBQUFBO0FBQXJCLENBQUQsS0FBMkM7QUFDM0RMLEVBQUFBLHNEQUFBLENBQWdCLE1BQU07QUFDcEJPLElBQUFBLE1BQU0sQ0FBQ0MsS0FBUCxHQUFlLE1BQWY7QUFDRCxHQUZELEVBRUcsRUFGSDtBQUdBLHNCQUNFO0FBQUEsNEJBQ0UsOERBQUMsa0RBQUQ7QUFBQSw4QkFDRTtBQUFNLFdBQUcsRUFBQyxZQUFWO0FBQXVCLFlBQUksRUFBQztBQUE1QjtBQUFBO0FBQUE7QUFBQTtBQUFBLG1CQURGLEVBRUdKLE9BQU8sZ0JBQUk7QUFBTSxXQUFHLEVBQUMsWUFBVjtBQUF1QixZQUFJLEVBQUM7QUFBNUI7QUFBQTtBQUFBO0FBQUE7QUFBQSxtQkFBSixHQUFpRSxJQUYzRSxFQUdHQyxjQUFjLGdCQUFJO0FBQU0sWUFBSSxFQUFDLDBCQUFYO0FBQXNDLFdBQUcsRUFBQztBQUExQztBQUFBO0FBQUE7QUFBQTtBQUFBLG1CQUFKLEdBQWtFLElBSG5GO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFERixFQU1HRixRQU5IO0FBQUEsa0JBREY7QUFVRCxDQWREOztBQWdCQSxpRUFBZUQsU0FBZiIsInNvdXJjZXMiOlsid2VicGFjazovL3ZpZS1yZWFjdC8uL3NyYy9sYXlvdXRzL0RhcmsuanN4PzEwOWMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1jc3MtdGFncyAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBIZWFkIGZyb20gXCJuZXh0L2hlYWRcIjtcclxuXHJcbmNvbnN0IERhcmtUaGVtZSA9ICh7IGNoaWxkcmVuLCB1c2VTa2luLCBtb2JpbGVhcHBzdHlsZSB9KSA9PiB7XHJcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgIHdpbmRvdy50aGVtZSA9IFwiZGFya1wiO1xyXG4gIH0sIFtdKTtcclxuICByZXR1cm4gKFxyXG4gICAgPD5cclxuICAgICAgPEhlYWQ+XHJcbiAgICAgICAgPGxpbmsgcmVsPVwic3R5bGVzaGVldFwiIGhyZWY9XCIvY3NzL2RhcmsuY3NzXCIgLz5cclxuICAgICAgICB7dXNlU2tpbiA/ICg8bGluayByZWw9XCJzdHlsZXNoZWV0XCIgaHJlZj1cIi9jc3MvYXJjaC1za2luLWRhcmsuY3NzXCIgLz4pIDogKG51bGwpfVxyXG4gICAgICAgIHttb2JpbGVhcHBzdHlsZSA/ICg8bGluayBocmVmPVwiL2Nzcy9tb2JpbGUtYXBwLWRhcmsuY3NzXCIgcmVsPVwic3R5bGVzaGVldFwiIC8+KSA6IChudWxsKX1cclxuICAgICAgPC9IZWFkPlxyXG4gICAgICB7Y2hpbGRyZW59XHJcbiAgICA8Lz5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgRGFya1RoZW1lO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJIZWFkIiwiRGFya1RoZW1lIiwiY2hpbGRyZW4iLCJ1c2VTa2luIiwibW9iaWxlYXBwc3R5bGUiLCJ1c2VFZmZlY3QiLCJ3aW5kb3ciLCJ0aGVtZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/layouts/Dark.jsx\n"); + +/***/ }), + +/***/ "./src/layouts/Light.jsx": +/*!*******************************!*\ + !*** ./src/layouts/Light.jsx ***! + \*******************************/ +/***/ ((__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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/head */ \"next/head\");\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_head__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\layouts\\\\Light.jsx\";\n\n/* eslint-disable @next/next/no-css-tags */\n\n\n\n\n\nconst LightTheme = ({\n children,\n mobileappstyle\n}) => {\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(() => {\n window.theme = \"light\";\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)((next_head__WEBPACK_IMPORTED_MODULE_1___default()), {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"link\", {\n rel: \"stylesheet\",\n href: \"/css/light.css\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 9\n }, undefined), mobileappstyle ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"link\", {\n href: \"/css/mobile-app-light.css\",\n rel: \"stylesheet\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 28\n }, undefined) : null]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 7\n }, undefined), children]\n }, void 0, true);\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (LightTheme);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvbGF5b3V0cy9MaWdodC5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBOzs7O0FBRUEsTUFBTUUsVUFBVSxHQUFHLENBQUM7QUFBRUMsRUFBQUEsUUFBRjtBQUFZQyxFQUFBQTtBQUFaLENBQUQsS0FBa0M7QUFDbkRKLEVBQUFBLHNEQUFBLENBQWdCLE1BQU07QUFDcEJNLElBQUFBLE1BQU0sQ0FBQ0MsS0FBUCxHQUFlLE9BQWY7QUFDRCxHQUZELEVBRUcsRUFGSDtBQUdBLHNCQUNFO0FBQUEsNEJBQ0UsOERBQUMsa0RBQUQ7QUFBQSw4QkFDRTtBQUFNLFdBQUcsRUFBQyxZQUFWO0FBQXVCLFlBQUksRUFBQztBQUE1QjtBQUFBO0FBQUE7QUFBQTtBQUFBLG1CQURGLEVBRUdILGNBQWMsZ0JBQUk7QUFBTSxZQUFJLEVBQUMsMkJBQVg7QUFBdUMsV0FBRyxFQUFDO0FBQTNDO0FBQUE7QUFBQTtBQUFBO0FBQUEsbUJBQUosR0FBbUUsSUFGcEY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQURGLEVBS0dELFFBTEg7QUFBQSxrQkFERjtBQVNELENBYkQ7O0FBZUEsaUVBQWVELFVBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly92aWUtcmVhY3QvLi9zcmMvbGF5b3V0cy9MaWdodC5qc3g/MzljMiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAbmV4dC9uZXh0L25vLWNzcy10YWdzICovXHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IEhlYWQgZnJvbSBcIm5leHQvaGVhZFwiO1xyXG5cclxuY29uc3QgTGlnaHRUaGVtZSA9ICh7IGNoaWxkcmVuLCBtb2JpbGVhcHBzdHlsZSB9KSA9PiB7XHJcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgIHdpbmRvdy50aGVtZSA9IFwibGlnaHRcIjtcclxuICB9LCBbXSk7XHJcbiAgcmV0dXJuIChcclxuICAgIDw+XHJcbiAgICAgIDxIZWFkPlxyXG4gICAgICAgIDxsaW5rIHJlbD1cInN0eWxlc2hlZXRcIiBocmVmPVwiL2Nzcy9saWdodC5jc3NcIiAvPlxyXG4gICAgICAgIHttb2JpbGVhcHBzdHlsZSA/ICg8bGluayBocmVmPVwiL2Nzcy9tb2JpbGUtYXBwLWxpZ2h0LmNzc1wiIHJlbD1cInN0eWxlc2hlZXRcIiAvPikgOiAobnVsbCl9XHJcbiAgICAgIDwvSGVhZD5cclxuICAgICAge2NoaWxkcmVufVxyXG4gICAgPC8+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IExpZ2h0VGhlbWU7XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIkhlYWQiLCJMaWdodFRoZW1lIiwiY2hpbGRyZW4iLCJtb2JpbGVhcHBzdHlsZSIsInVzZUVmZmVjdCIsIndpbmRvdyIsInRoZW1lIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/layouts/Light.jsx\n"); + +/***/ }), + +/***/ "./src/pages/demos/demos.jsx": +/*!***********************************!*\ + !*** ./src/pages/demos/demos.jsx ***! + \***********************************/ +/***/ ((__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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var styled_jsx_style__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! styled-jsx/style */ \"styled-jsx/style\");\n/* harmony import */ var styled_jsx_style__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(styled_jsx_style__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _config_particle_config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../config/particle-config */ \"./src/config/particle-config.js\");\n/* harmony import */ var react_tsparticles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-tsparticles */ \"react-tsparticles\");\n/* harmony import */ var react_tsparticles__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_tsparticles__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _components_Split__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../components/Split */ \"./src/components/Split/index.jsx\");\n/* harmony import */ var _layouts_Dark__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../layouts/Dark */ \"./src/layouts/Dark.jsx\");\n/* harmony import */ var _common_initIsotope__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../common/initIsotope */ \"./src/common/initIsotope.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\pages\\\\demos\\\\demos.jsx\";\n\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\n\n\n\nconst Demos = () => {\n const [pageLoaded, setPageLoaded] = react__WEBPACK_IMPORTED_MODULE_1___default().useState(false);\n react__WEBPACK_IMPORTED_MODULE_1___default().useEffect(() => {\n setPageLoaded(true);\n\n if (pageLoaded) {\n window.addEventListener(\"load\", () => {\n setTimeout(() => {\n if (pageLoaded) {\n (0,_common_initIsotope__WEBPACK_IMPORTED_MODULE_7__[\"default\"])();\n }\n }, 1000);\n });\n }\n\n setTimeout(() => {\n if (pageLoaded) {\n (0,_common_initIsotope__WEBPACK_IMPORTED_MODULE_7__[\"default\"])();\n }\n }, 1000);\n }, [pageLoaded]);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(_layouts_Dark__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((styled_jsx_style__WEBPACK_IMPORTED_MODULE_0___default()), {\n id: \"575932941\",\n children: \".sec-head.jsx-575932941 h3.jsx-575932941{font-size:60px;font-weight:700;position:relative;}.sec-head.jsx-575932941 .tbg.jsx-575932941{position:absolute;top:-120px;left:0;width:100%;font-size:15vw;font-weight:900;line-height:1;background:linear-gradient( 180deg, #fff 0%, rgba(17,18,21,0.2) 70% );-webkit-background-clip:text;-webkit-text-fill-color:transparent;opacity:0.1;}.sec-head.jsx-575932941 .tbg.jsx-575932941 b.jsx-575932941{font-weight:500;font-size:12vw;}.main-content.jsx-575932941{position:relative;z-index:999999;background:transparent;}.masonery.jsx-575932941 .gallery.jsx-575932941 .items.jsx-575932941{margin-top:30px;}.masonery.jsx-575932941 .container-fluid.jsx-575932941{padding:0 100px;}@media (max-width:768px){.masonery.jsx-575932941 .container-fluid.jsx-575932941{padding:0 20px;}.sec-head.jsx-575932941 h3.jsx-575932941{font-size:34px;}.sec-head.jsx-575932941{margin:0 auto 30px;}}.masonery.jsx-575932941 .item-img.jsx-575932941{padding:5px 15px 20px;border-radius:10px;background:#18191d;position:relative;}.masonery.jsx-575932941 .item-img.jsx-575932941 .dot.jsx-575932941{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,0.05);}.masonery.jsx-575932941 .item-img.jsx-575932941 .img.jsx-575932941{border-radius:10px;overflow:hidden;}.masonery.jsx-575932941 .item-img.jsx-575932941 .img.jsx-575932941 img.jsx-575932941{-webkit-transition:all 0.4s;transition:all 0.4s;}.masonery.jsx-575932941 .item-img.jsx-575932941 .img.jsx-575932941:hover img.jsx-575932941{-webkit-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1);}.masonery.jsx-575932941 .item-img.jsx-575932941 .cont.jsx-575932941{margin-top:20px;text-align:center;position:relative;}.masonery.jsx-575932941 .item-img.jsx-575932941 .cont.jsx-575932941 h6.jsx-575932941{font-size:16px;font-weight:500;-webkit-letter-spacing:1px;-moz-letter-spacing:1px;-ms-letter-spacing:1px;letter-spacing:1px;}.masonery.jsx-575932941 .item-img.jsx-575932941 .cont.jsx-575932941 .sta.jsx-575932941{position:absolute;top:-47px;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);padding:5px 10px;border-radius:30px;box-shadow:0px 5px 20px rgba(255,255,255,0.05);font-size:12px;}.masonery.jsx-575932941 .item-img.jsx-575932941 .cont.jsx-575932941 .sta.coming.jsx-575932941{background:#03be5f;}.masonery.jsx-575932941 .item-img.jsx-575932941 .cont.jsx-575932941 .sta.new.jsx-575932941{background:#ff4b4b;}\\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkM6XFxVc2Vyc1xcaHBcXERlc2t0b3BcXGJ1c2luZXNzLWh1Ylxcc3JjXFxwYWdlc1xcZGVtb3NcXGRlbW9zLmpzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE4QmtCLEFBRzBCLEFBTUcsQUFrQkYsQUFLRSxBQU1GLEFBSUEsQUFLQyxBQUdBLEFBR0ksQUFLQyxBQU9aLEFBT1MsQUFLQyxBQUlDLEFBSUwsQUFNRCxBQU1HLEFBV0MsQUFJQSxVQTlDUixLQTlESyxBQTRDaEIsQUFHQSxBQXlDZ0IsQ0FoRUQsQUFXakIsQUFJQSxBQTJDb0IsRUE1RVAsQUF1QkksQUFpRUwsQ0E1Q1YsQUFtQmdCLEFBb0NsQixBQUlBLEVBOUNvQixDQVJDLE1Bd0NWLENBeEZGLEVBTlcsQUF3QnBCLEFBZ0VxQixFQTNESSxDQXFETCxDQWJwQixDQTlEYSxDQXdGZ0IsRUFoQ1UsRUFSbEIsTUEvQ0osQ0FpRWpCLENBeEVBLEdBa0ZBLElBckRBLElBMEJvQixFQS9DRixXQXVEbEIsRUFhQSxHQW5FZ0IsQUErQ2hCLGNBMUNHLGdDQTBFSCxNQU9tQixpQkFDRSxlQWpGVSxJQWtGcUIseUJBakZkLHNCQWtGckIsY0FqRkgsQ0FrRmQsV0FqRkEiLCJmaWxlIjoiQzpcXFVzZXJzXFxocFxcRGVza3RvcFxcYnVzaW5lc3MtaHViXFxzcmNcXHBhZ2VzXFxkZW1vc1xcZGVtb3MuanN4Iiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBwYXJ0aWNsZXNDb25maWcgZnJvbSBcIi4uLy4uL2NvbmZpZy9wYXJ0aWNsZS1jb25maWdcIjtcclxuaW1wb3J0IFBhcnRpY2xlcyBmcm9tIFwicmVhY3QtdHNwYXJ0aWNsZXNcIjtcclxuaW1wb3J0IExpbmsgZnJvbSBcIm5leHQvbGlua1wiO1xyXG5pbXBvcnQgU3BsaXQgZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvU3BsaXRcIjtcclxuaW1wb3J0IERhcmtUaGVtZSBmcm9tIFwiLi4vLi4vbGF5b3V0cy9EYXJrXCI7XHJcbmltcG9ydCBpbml0SXNvdG9wZSBmcm9tIFwiLi4vLi4vY29tbW9uL2luaXRJc290b3BlXCI7XHJcblxyXG5jb25zdCBEZW1vcyA9ICgpID0+IHtcclxuICBjb25zdCBbcGFnZUxvYWRlZCwgc2V0UGFnZUxvYWRlZF0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XHJcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgIHNldFBhZ2VMb2FkZWQodHJ1ZSk7XHJcbiAgICBpZiAocGFnZUxvYWRlZCkge1xyXG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImxvYWRcIiwgKCkgPT4ge1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHBhZ2VMb2FkZWQpIHtcclxuICAgICAgICAgICAgaW5pdElzb3RvcGUoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LCAxMDAwKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgaWYgKHBhZ2VMb2FkZWQpIHtcclxuICAgICAgICBpbml0SXNvdG9wZSgpO1xyXG4gICAgICB9XHJcbiAgICB9LCAxMDAwKTtcclxuICB9LCBbcGFnZUxvYWRlZF0pO1xyXG4gIHJldHVybiAoXHJcbiAgICA8RGFya1RoZW1lPlxyXG4gICAgICA8c3R5bGUganN4PntgXHJcbiAgICAgICAgLnNlYy1oZWFkIGgzIHtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogNjBweDtcclxuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuc2VjLWhlYWQgLnRiZyB7XHJcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICB0b3A6IC0xMjBweDtcclxuICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMTV2dztcclxuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XHJcbiAgICAgICAgICBsaW5lLWhlaWdodDogMTtcclxuICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcclxuICAgICAgICAgICAgMTgwZGVnLFxyXG4gICAgICAgICAgICAjZmZmIDAlLFxyXG4gICAgICAgICAgICByZ2JhKDE3LCAxOCwgMjEsIDAuMikgNzAlXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XHJcbiAgICAgICAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICBvcGFjaXR5OiAwLjE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuc2VjLWhlYWQgLnRiZyBiIHtcclxuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICAgICAgICBmb250LXNpemU6IDEydnc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAubWFpbi1jb250ZW50IHtcclxuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgIHotaW5kZXg6IDk5OTk5OTtcclxuICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLm1hc29uZXJ5IC5nYWxsZXJ5IC5pdGVtcyB7XHJcbiAgICAgICAgICBtYXJnaW4tdG9wOiAzMHB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLm1hc29uZXJ5IC5jb250YWluZXItZmx1aWQge1xyXG4gICAgICAgICAgcGFkZGluZzogMCAxMDBweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgICAgICAgLm1hc29uZXJ5IC5jb250YWluZXItZmx1aWQge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwIDIwcHg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAuc2VjLWhlYWQgaDMge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDM0cHg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAuc2VjLWhlYWQge1xyXG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0byAzMHB4O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLm1hc29uZXJ5IC5pdGVtLWltZyB7XHJcbiAgICAgICAgICBwYWRkaW5nOiA1cHggMTVweCAyMHB4O1xyXG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcclxuICAgICAgICAgIGJhY2tncm91bmQ6ICMxODE5MWQ7XHJcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAubWFzb25lcnkgLml0ZW0taW1nIC5kb3Qge1xyXG4gICAgICAgICAgd2lkdGg6IDdweDtcclxuICAgICAgICAgIGhlaWdodDogN3B4O1xyXG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5tYXNvbmVyeSAuaXRlbS1pbWcgLmltZyB7XHJcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5tYXNvbmVyeSAuaXRlbS1pbWcgLmltZyBpbWcge1xyXG4gICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuNHM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAubWFzb25lcnkgLml0ZW0taW1nIC5pbWc6aG92ZXIgaW1nIHtcclxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5tYXNvbmVyeSAuaXRlbS1pbWcgLmNvbnQge1xyXG4gICAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcclxuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5tYXNvbmVyeSAuaXRlbS1pbWcgLmNvbnQgaDYge1xyXG4gICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAubWFzb25lcnkgLml0ZW0taW1nIC5jb250IC5zdGEge1xyXG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgdG9wOiAtNDdweDtcclxuICAgICAgICAgIGxlZnQ6IDUwJTtcclxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcclxuICAgICAgICAgIHBhZGRpbmc6IDVweCAxMHB4O1xyXG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMzBweDtcclxuICAgICAgICAgIGJveC1zaGFkb3c6IDBweCA1cHggMjBweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpO1xyXG4gICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLm1hc29uZXJ5IC5pdGVtLWltZyAuY29udCAuc3RhLmNvbWluZyB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAjMDNiZTVmO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLm1hc29uZXJ5IC5pdGVtLWltZyAuY29udCAuc3RhLm5ldyB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmY0YjRiO1xyXG4gICAgICAgIH1cclxuICAgICAgYH08L3N0eWxlPlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNpcmNsZS1iZ1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2lyY2xlLWNvbG9yIGZpeGVkXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyYWRpZW50LWNpcmNsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmFkaWVudC1jaXJjbGUgdHdvXCI+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8aGVhZGVyXHJcbiAgICAgICAgY2xhc3NOYW1lPVwid29ya3MtaGVhZGVyIHBhcnRpY2xlcyB2YWxpZ24gYmctaW1nIHBhcmFsbGF4aWVcIlxyXG4gICAgICAgIGRhdGEtb3ZlcmxheS1kYXJrPVwiNFwiXHJcbiAgICAgICAgc3R5bGU9e3tcclxuICAgICAgICAgIGJhY2tncm91bmRJbWFnZTogXCJ1cmwoL2RlbW8taW1nL2JnLnBuZylcIixcclxuICAgICAgICAgIG1pbkhlaWdodDogXCIxMDB2aFwiLFxyXG4gICAgICAgICAgekluZGV4OiA5OTk5OSxcclxuICAgICAgICB9fVxyXG4gICAgICA+XHJcbiAgICAgICAgPFBhcnRpY2xlcyBpZD1cInBhcnRpY2xlcy1qc1wiIG9wdGlvbnM9e3BhcnRpY2xlc0NvbmZpZ30gLz5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy05IGNvbC1tZC0xMSBzdGF0aWNcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNhcHQgbXQtNTBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmFjdHh0IGN1c3RvbS1mb250IHZhbGlnblwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJmdWxsLXdpZHRoXCIgc3R5bGU9e3sgY29sb3I6IFwidHJhbnNwYXJlbnRcIiB9fT5cclxuICAgICAgICAgICAgICAgICAgICB2aWVcclxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvaGVhZGVyPlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1haW4tY29udGVudCBzZWN0aW9uLXBhZGRpbmcgcGItMFwiPlxyXG4gICAgICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cIm1hc29uZXJ5IHNlY3Rpb24tcGFkZGluZ1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTggY29sLW1kLTEwXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNlYy1oZWFkIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJjb2xvci1mb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgNDkrIHN0dW5uaW5nIHVuaXF1ZSByZWFkeSB0ZW1wbGF0ZVxyXG4gICAgICAgICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0YmdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8Yj4rPC9iPjQ5XHJcbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXItZmx1aWRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdhbGxlcnkgZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9ob21lcGFnZS9ob21lMS1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy8xLnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5NYWluIERlbW88L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9ob21lcGFnZS9ob21lMS1saWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvMDEucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2Pk1haW4gRGVtbzwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2hvbWVwYWdlL2hvbWUyLWRhcmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nLzIucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PkNyZWF0aXZlIEFnZW5jeTwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2hvbWVwYWdlL2hvbWUyLWxpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy8wMi5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+Q3JlYXRpdmUgQWdlbmN5PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdhbGxlcnkgZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9tb2JpbGUtYXBwL21vYmlsZS1hcHAtZGFya1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvbW9iaWxlMS5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+TW9iaWxlIGFwcDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzdGEgbmV3XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5OZXcgRGVtbzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvbW9iaWxlLWFwcC9tb2JpbGUtYXBwLWxpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy9tb2JpbGUyLnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5Nb2JpbGUgYXBwPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInN0YSBuZXdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPk5ldyBEZW1vPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2hvbWVwYWdlL2hvbWU3LWRhcmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nL24yLnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5GcmVlbGFuY2VyPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvaG9tZXBhZ2UvaG9tZTctbGlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nL24wMi5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+RnJlZWxhbmNlcjwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2hvbWVwYWdlL2hvbWU4LWRhcmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nL24zLnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5BcmNoaXRlY3R1cmU8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9ob21lcGFnZS9ob21lOC1saWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvbjAzLnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5BcmNoaXRlY3R1cmU8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2hvbWVwYWdlL2hvbWU1LWRhcmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nLzMucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PkRpZ2l0YWwgQWdlbmN5PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvaG9tZXBhZ2UvaG9tZTUtbGlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nLzAzLnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5EaWdpdGFsIEFnZW5jeTwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJnYWxsZXJ5IGZ1bGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvaG9tZXBhZ2UvaG9tZTQtZGFya1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvNC5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+QnVzaW5lc3MgT25lIFBhZ2U8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9ob21lcGFnZS9ob21lNC1saWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvMDQucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PkJ1c2luZXNzIE9uZSBQYWdlPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9ob21lcGFnZS9ob21lMy1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy81LnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5Db3Jwb3JhdGUgQnVzaW5lc3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9ob21lcGFnZS9ob21lMy1saWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvMDUucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PkNvcnBvcmF0ZSBCdXNpbmVzczwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJnYWxsZXJ5IGZ1bGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvaG9tZXBhZ2UvaG9tZTYtZGFya1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvbjEucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2Pk1vZGVybiBBZ2VuY3k8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9ob21lcGFnZS9ob21lNi1saWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvbjAxLnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5Nb2Rlcm4gQWdlbmN5PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nL2MzLnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxoNj5SZXN0YXVyYW50PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3RhIGNvbWluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5Db21pbmcgU29vbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy9jNC5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aDY+TXVsdGlwdXJwb3NlPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3RhIGNvbWluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5Db21pbmcgU29vbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuXHJcbiAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwibWFzb25lcnkgc2VjdGlvbi1wYWRkaW5nIHBvc2l0aW9uLXJlXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOCBjb2wtbWQtMTBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2VjLWhlYWQgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cImNvbG9yLWZvbnRcIj5TaG93Y2FzZXM8L2gzPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ2FsbGVyeSBmdWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL3Nob3djYXNlL3Nob3djYXNlLWRhcmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nL3MxLnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5GdWxsIFNjcmVlbjwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL3Nob3djYXNlL3Nob3djYXNlLWxpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy9zMDEucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PkZ1bGwgU2NyZWVuPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvc2hvd2Nhc2U0L3Nob3djYXNlNC1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy9zMi5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+U2hvd2Nhc2UgQ2Fyb3VzZWw8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9zaG93Y2FzZTQvc2hvd2Nhc2U0LWxpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy9zMDIucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PlNob3djYXNlIENhcm91c2VsPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvc2hvd2Nhc2UzL3Nob3djYXNlMy1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy9zMy5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+U2hvd2Nhc2UgQ2lyY2xlPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvc2hvd2Nhc2UzL3Nob3djYXNlMy1saWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvczAzLnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5TaG93Y2FzZSBDaXJjbGU8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi93b3Jrcy93b3Jrcy1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy93MS5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+V29ya3MgMyBjb2x1bW48L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi93b3Jrcy93b3Jrcy1saWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvdzAxLnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5Xb3JrcyAzIGNvbHVtbjwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL3dvcmtzMi93b3JrczItZGFya1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvdzIucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PldvcmtzIEZpbHRlcmluZzwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL3dvcmtzMi93b3JrczItbGlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nL3cwMi5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+V29ya3MgRmlsdGVyaW5nPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvd29ya3MzL3dvcmtzMy1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy93My5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+V29ya3MgR2FsbGVyeTwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL3dvcmtzMy93b3JrczMtbGlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nL3cwMy5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+V29ya3MgR2FsbGVyeTwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxpbmUgdG9wIGxlZnRcIj48L2Rpdj5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcblxyXG4gICAgICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cIm1hc29uZXJ5IHNlY3Rpb24tcGFkZGluZyBwb3NpdGlvbi1yZVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTggY29sLW1kLTEwXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNlYy1oZWFkIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJjb2xvci1mb250XCI+SW5uZXIgUGFnZXM8L2gzPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ2FsbGVyeSBmdWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2Jsb2cvYmxvZy1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCIvZGVtby1pbWcvc3RhbmRlcmQtYmxvZy1kYXJrLnBuZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJpbWFnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5TdGFuZGVyZCBCbG9nPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvYmxvZy9ibG9nLWxpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCIvZGVtby1pbWcvc3RhbmRlcmQtYmxvZy1saWdodC5wbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiaW1hZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+U3RhbmRlcmQgQmxvZzwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2Jsb2ctbGlzdC9ibG9nLWxpc3QtZGFya1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvYmxvZy1saXN0LWRhcmsucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PkJsb2cgTGlzdDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2Jsb2ctbGlzdC9ibG9nLWxpc3QtbGlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cIi9kZW1vLWltZy9ibG9nLWxpc3QtbGlnaHQucG5nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cImltYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PkJsb2cgTGlzdDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2Jsb2ctZ3JpZC9ibG9nLWdyaWQtZGFya1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvYmxvZy1ncmlkLWRhcmsucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PkJsb2cgR3JpZDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2Jsb2ctZ3JpZC9ibG9nLWdyaWQtbGlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cIi9kZW1vLWltZy9ibG9nLWdyaWQtbGlnaHQucG5nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cImltYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PkJsb2cgR3JpZDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2Jsb2ctZGV0YWlscy9ibG9nLWRldGFpbHMtZGFya1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPVwiL2RlbW8taW1nL2Jsb2ctZGV0YWlscy1kYXJrLnBuZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJpbWFnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5CbG9nIERldGFpbHM8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9ibG9nLWRldGFpbHMvYmxvZy1kZXRhaWxzLWxpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCIvZGVtby1pbWcvYmxvZy1kZXRhaWxzLWxpZ2h0LnBuZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJpbWFnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5CbG9nIERldGFpbHM8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9hYm91dC9hYm91dC1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy9hYm91dC5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+QWJvdXQgVXM8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9hYm91dC9hYm91dC1saWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvYWJvdXQxLnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5BYm91dCBVczwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvY29udGFjdC9jb250YWN0LWRhcmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nL2NvbnRhY3QtZGFyay5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+Q29udGFjdDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2NvbnRhY3QvY29udGFjdC1saWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvY29udGFjdC1saWdodC5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+Q29udGFjdDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxpbmUgdG9wIGxlZnRcIj48L2Rpdj5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcblxyXG4gICAgICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInNlcnZpY2VzIGJvcmRzIGxmaWNvbiBzZWN0aW9uLXBhZGRpbmcgcG9zaXRpb24tcmVcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy04IGNvbC1tZC0xMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWMtaGVhZCAgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGg2IGNsYXNzTmFtZT1cIndvdyBmYWRlSW5cIiBkYXRhLXdvdy1kZWxheT1cIi41c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIEJlc3QgRmVhdHVyZXNcclxuICAgICAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cIndvdyBjb2xvci1mb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgQ3JlYXRpdmUgQWdlbmN5LCBDb3Jwb3JhdGUgYW5kIFBvcnRmb2xpbyBUZW1wbGF0ZVxyXG4gICAgICAgICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTYgd293IGZhZGVJbkxlZnRcIiBkYXRhLXdvdy1kZWxheT1cIi41c1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWJveFwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24gcGUtN3MtcGFpbnQtYnVja2V0XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg2PlVJL1VYIERlc2lnbjwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICBXZSBwcm92aWRlIHRoZSBiZXN0IGRlc2lnbiBieSBmb2xsb3dpbmcgdGhlIGxhdGVzdCB0cmVuZHMuXHJcbiAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTYgd293IGZhZGVJbkxlZnRcIiBkYXRhLXdvdy1kZWxheT1cIi43c1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWJveFwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24gcGUtN3MtcGhvbmVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+RWFzaWx5IEN1c3RvbWl6YWJsZTwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+QnVpbGQgYW5kIGN1c3RvbWl6ZSBzdHVubmluZyBwYWdlcyBpbiBtaW51dGVzLjwvcD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy02IHdvdyBmYWRlSW5MZWZ0XCIgZGF0YS13b3ctZGVsYXk9XCIuOXNcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1ib3hcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJpY29uIHBlLTdzLWRpc3BsYXkxXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg2Pk9uZSAvIE11bHRpIFBhZ2U8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPkNob29zZSB0aGUgbGF5b3V0IHN0eWxlIHRoYXQgZml0cyB5b3VyIG5lZWQuPC9wPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTYgd293IGZhZGVJbkxlZnRcIiBkYXRhLXdvdy1kZWxheT1cIi41c1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWJveFwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24gcGUtN3MtZGlza2V0dGVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+MjQvNyBTdXBwb3J0PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICA8cD5XZSBjb21taXQgdG8ga2VlcCB5b3VyIHNpdGUgdXAtdG8tZGF0ZS48L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxpbmUgdG9wIHJpZ2h0XCI+PC9kaXY+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG5cclxuICAgICAgICA8c2VjdGlvblxyXG4gICAgICAgICAgY2xhc3NOYW1lPVwiY2FsbC1hY3Rpb24gc2VjdGlvbi1wYWRkaW5nIGJnLWltZ1wiXHJcbiAgICAgICAgICBzdHlsZT17eyBiYWNrZ3JvdW5kSW1hZ2U6IFwidXJsKC9pbWcvcGF0cm4uc3ZnKVwiIH19XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1tZC04IGNvbC1sZy05XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRlbnQgc20tbWIzMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8U3BsaXQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg2IGNsYXNzTmFtZT1cIndvdyB3b3JkcyBjaGFycyBzcGxpdHRpbmdcIiBkYXRhLXNwbGl0dGluZz5cclxuICAgICAgICAgICAgICAgICAgICAgIFB1cmNoYXNlIFRoZSBWaWVcclxuICAgICAgICAgICAgICAgICAgICA8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJ3b3cgd29yZHMgY2hhcnMgc3BsaXR0aW5nXCIgZGF0YS1zcGxpdHRpbmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICBhbmQgTWFrZSA8YnIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxiIGNsYXNzTmFtZT1cImJhY2stY29sb3JcIj5Zb3VyIExpZmUgRWFzaWVyPC9iPi5cclxuICAgICAgICAgICAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgICAgICAgICA8L1NwbGl0PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLW1kLTQgY29sLWxnLTMgdmFsaWduXCI+XHJcbiAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICBocmVmPVwiIzBcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJidXRuIGJvcmQgY3VydmUgd293IGZhZGVJblVwXCJcclxuICAgICAgICAgICAgICAgICAgZGF0YS13b3ctZGVsYXk9XCIuNXNcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8c3Bhbj5QdXJjaGFzZSBOb3c8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvRGFya1RoZW1lPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBEZW1vcztcclxuIl19 */\\n/*@ sourceURL=C:\\\\\\\\Users\\\\\\\\hp\\\\\\\\Desktop\\\\\\\\business-hub\\\\\\\\src\\\\\\\\pages\\\\\\\\demos\\\\\\\\demos.jsx */\"\n }, void 0, false, void 0, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"circle-bg\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"circle-color fixed\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"gradient-circle\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"gradient-circle two\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 11\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 146,\n columnNumber: 9\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"header\", {\n \"data-overlay-dark\": \"4\",\n style: {\n backgroundImage: \"url(/demo-img/bg.png)\",\n minHeight: \"100vh\",\n zIndex: 99999\n },\n className: \"jsx-575932941\" + \" \" + \"works-header particles valign bg-img parallaxie\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((react_tsparticles__WEBPACK_IMPORTED_MODULE_3___default()), {\n id: \"particles-js\",\n options: _config_particle_config__WEBPACK_IMPORTED_MODULE_2__[\"default\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 160,\n columnNumber: 9\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-9 col-md-11 static\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"capt mt-50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"bactxt custom-font valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n style: {\n color: \"transparent\"\n },\n className: \"jsx-575932941\" + \" \" + \"full-width\",\n children: \"vie\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 164,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 163,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 162,\n columnNumber: 11\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 161,\n columnNumber: 9\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 151,\n columnNumber: 7\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"main-content section-padding pb-0\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"section\", {\n className: \"jsx-575932941\" + \" \" + \"masonery section-padding\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h3\", {\n className: \"jsx-575932941\" + \" \" + \"color-font\",\n children: \"49+ stunning unique ready template\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 19\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"tbg\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"b\", {\n className: \"jsx-575932941\",\n children: \"+\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 21\n }, undefined), \"49\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 19\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"container-fluid\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"gallery full-width\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_4___default()), {\n href: \"/homepage/home1-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/demo-img/1.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Main Demo\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_4___default()), {\n href: \"/homepage/home1-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/demo-img/01.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Main Demo\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_4___default()), {\n href: \"/homepage/home2-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/demo-img/2.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Creative Agency\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 241,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 230,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 250,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_4___default()), {\n href: \"/homepage/home2-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/demo-img/02.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 256,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 255,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Creative Agency\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 254,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 253,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"gallery full-width\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 270,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 271,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 272,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_4___default()), {\n href: \"/mobile-app/mobile-app-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/demo-img/mobile1.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 275,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Mobile app\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 27\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"sta new\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\",\n children: \"New Demo\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 281,\n columnNumber: 29\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 280,\n columnNumber: 27\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 274,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 273,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 291,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 292,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 293,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_4___default()), {\n href: \"/mobile-app/mobile-app-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/demo-img/mobile2.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 297,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 296,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Mobile app\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 300,\n columnNumber: 27\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"sta new\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\",\n children: \"New Demo\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 302,\n columnNumber: 29\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 301,\n columnNumber: 27\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 299,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 295,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 294,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 290,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 289,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 312,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 313,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_4___default()), {\n href: \"/homepage/home7-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/demo-img/n2.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 317,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 316,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Freelancer\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 320,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 319,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 315,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 314,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 310,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 309,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 329,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 330,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 331,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_4___default()), {\n href: \"/homepage/home7-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/demo-img/n02.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 335,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 334,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Freelancer\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 338,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 337,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 333,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 332,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 328,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 327,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 347,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 348,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 349,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_4___default()), {\n href: \"/homepage/home8-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/demo-img/n3.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 353,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 352,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Architecture\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 356,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 355,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 351,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 350,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 346,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 345,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 365,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 366,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 367,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_4___default()), {\n href: \"/homepage/home8-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/demo-img/n03.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 371,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 370,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Architecture\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 374,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 373,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 369,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 368,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 364,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 363,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 382,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 383,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 384,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_4___default()), {\n href: \"/homepage/home5-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/demo-img/3.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 388,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 387,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Digital Agency\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 391,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 390,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 386,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 385,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 381,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 380,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 400,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 401,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 402,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_4___default()), {\n href: \"/homepage/home5-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/demo-img/03.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 406,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 405,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Digital Agency\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 409,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 408,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 404,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 403,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 399,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 398,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"gallery full-width\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 420,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 421,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 422,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_4___default()), {\n href: \"/homepage/home4-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/demo-img/4.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 426,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 425,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Business One Page\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 429,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 428,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 424,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 423,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 419,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 418,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 438,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 439,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 440,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_4___default()), {\n href: \"/homepage/home4-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/demo-img/04.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 444,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 443,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Business One Page\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 447,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 446,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 442,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 441,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 437,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 436,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 455,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 456,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 457,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_4___default()), {\n href: \"/homepage/home3-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/demo-img/5.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 461,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 460,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Corporate Business\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 464,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 463,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 459,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 458,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 454,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 453,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 473,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 474,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 475,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_4___default()), {\n href: \"/homepage/home3-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/demo-img/05.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 479,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 478,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Corporate Business\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 482,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 481,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 477,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 476,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 472,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 471,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 417,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"gallery full-width\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 493,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 494,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 495,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_4___default()), {\n href: \"/homepage/home6-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/demo-img/n1.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 499,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 498,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Modern Agency\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 502,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 501,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 497,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 496,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 492,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 491,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 511,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 512,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 513,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_4___default()), {\n href: \"/homepage/home6-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/demo-img/n01.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 517,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 516,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Modern Agency\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 520,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 519,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 515,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 514,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 510,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 509,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 528,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 529,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 530,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/demo-img/c3.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 532,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 531,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Restaurant\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 535,\n columnNumber: 23\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"sta coming\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\",\n children: \"Coming Soon\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 537,\n columnNumber: 25\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 536,\n columnNumber: 23\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 534,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 527,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 526,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 545,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 546,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 547,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/demo-img/c4.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 549,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 548,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Multipurpose\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 552,\n columnNumber: 23\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"sta coming\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\",\n children: \"Coming Soon\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 554,\n columnNumber: 25\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 553,\n columnNumber: 23\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 551,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 544,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 543,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 490,\n columnNumber: 15\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"section\", {\n className: \"jsx-575932941\" + \" \" + \"masonery section-padding position-re\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"sec-head text-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h3\", {\n className: \"jsx-575932941\" + \" \" + \"color-font\",\n children: \"Showcases\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 569,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 568,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 567,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 566,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 565,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"container-fluid\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"row\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"gallery full-width\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 579,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 580,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 581,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_4___default()), {\n href: \"/showcase/showcase-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/demo-img/s1.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 585,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 584,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Full Screen\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 588,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 587,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 583,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 582,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 578,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 577,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 597,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 598,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 599,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_4___default()), {\n href: \"/showcase/showcase-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/demo-img/s01.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 603,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 602,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Full Screen\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 606,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 605,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 601,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 600,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 596,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 595,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 615,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 616,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 617,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_4___default()), {\n href: \"/showcase4/showcase4-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/demo-img/s2.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 621,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 620,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Showcase Carousel\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 624,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 623,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 619,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 618,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 614,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 613,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 633,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 634,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 635,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_4___default()), {\n href: \"/showcase4/showcase4-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/demo-img/s02.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 639,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 638,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Showcase Carousel\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 642,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 641,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 637,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 636,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 632,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 631,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 651,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 652,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 653,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_4___default()), {\n href: \"/showcase3/showcase3-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/demo-img/s3.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 657,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 656,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Showcase Circle\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 660,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 659,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 655,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 654,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 650,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 649,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 669,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 670,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 671,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_4___default()), {\n href: \"/showcase3/showcase3-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/demo-img/s03.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 675,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 674,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Showcase Circle\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 678,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 677,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 673,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 672,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 668,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 667,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 687,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 688,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 689,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_4___default()), {\n href: \"/works/works-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/demo-img/w1.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 693,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 692,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Works 3 column\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 696,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 695,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 691,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 690,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 686,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 685,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 705,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 706,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 707,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_4___default()), {\n href: \"/works/works-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/demo-img/w01.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 711,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 710,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Works 3 column\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 714,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 713,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 709,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 708,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 704,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 703,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 723,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 724,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 725,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_4___default()), {\n href: \"/works2/works2-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/demo-img/w2.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 729,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 728,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Works Filtering\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 732,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 731,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 727,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 726,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 722,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 721,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 741,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 742,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 743,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_4___default()), {\n href: \"/works2/works2-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/demo-img/w02.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 747,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 746,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Works Filtering\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 750,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 749,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 745,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 744,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 740,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 739,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 759,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 760,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 761,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_4___default()), {\n href: \"/works3/works3-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/demo-img/w3.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 765,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 764,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Works Gallery\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 768,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 767,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 763,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 762,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 758,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 757,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 777,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 778,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 779,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_4___default()), {\n href: \"/works3/works3-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/demo-img/w03.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 783,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 782,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Works Gallery\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 786,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 785,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 781,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 780,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 776,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 775,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 576,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 575,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 574,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"line top left\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 796,\n columnNumber: 11\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 564,\n columnNumber: 9\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"section\", {\n className: \"jsx-575932941\" + \" \" + \"masonery section-padding position-re\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"sec-head text-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h3\", {\n className: \"jsx-575932941\" + \" \" + \"color-font\",\n children: \"Inner Pages\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 804,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 803,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 802,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 801,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 800,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"container-fluid\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"row\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"gallery full-width\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 814,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 815,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 816,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_4___default()), {\n href: \"/blog/blog-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/demo-img/standerd-blog-dark.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 820,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 819,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Standerd Blog\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 826,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 825,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 818,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 817,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 813,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 812,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 835,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 836,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 837,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_4___default()), {\n href: \"/blog/blog-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/demo-img/standerd-blog-light.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 841,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 840,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Standerd Blog\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 847,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 846,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 839,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 838,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 834,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 833,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 856,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 857,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 858,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_4___default()), {\n href: \"/blog-list/blog-list-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/demo-img/blog-list-dark.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 862,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 861,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Blog List\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 865,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 864,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 860,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 859,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 855,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 854,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 874,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 875,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 876,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_4___default()), {\n href: \"/blog-list/blog-list-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/demo-img/blog-list-light.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 880,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 879,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Blog List\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 886,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 885,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 878,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 877,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 873,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 872,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 895,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 896,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 897,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_4___default()), {\n href: \"/blog-grid/blog-grid-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/demo-img/blog-grid-dark.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 901,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 900,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Blog Grid\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 904,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 903,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 899,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 898,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 894,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 893,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 913,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 914,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 915,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_4___default()), {\n href: \"/blog-grid/blog-grid-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/demo-img/blog-grid-light.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 919,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 918,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Blog Grid\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 925,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 924,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 917,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 916,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 912,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 911,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 934,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 935,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 936,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_4___default()), {\n href: \"/blog-details/blog-details-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/demo-img/blog-details-dark.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 940,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 939,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Blog Details\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 946,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 945,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 938,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 937,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 933,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 932,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 955,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 956,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 957,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_4___default()), {\n href: \"/blog-details/blog-details-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/demo-img/blog-details-light.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 961,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 960,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Blog Details\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 967,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 966,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 959,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 958,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 954,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 953,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 976,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 977,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 978,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_4___default()), {\n href: \"/about/about-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/demo-img/about.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 982,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 981,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"About Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 985,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 984,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 980,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 979,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 975,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 974,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 994,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 995,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 996,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_4___default()), {\n href: \"/about/about-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/demo-img/about1.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1000,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 999,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"About Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1003,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1002,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 998,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 997,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 993,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 992,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1011,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1012,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1013,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_4___default()), {\n href: \"/contact/contact-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/demo-img/contact-dark.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1017,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1016,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Contact\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1020,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1019,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 1015,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1014,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 1010,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1009,\n columnNumber: 17\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1029,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1030,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1031,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_4___default()), {\n href: \"/contact/contact-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/demo-img/contact-light.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1035,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1034,\n columnNumber: 25\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Contact\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1038,\n columnNumber: 27\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1037,\n columnNumber: 25\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 1033,\n columnNumber: 23\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1032,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 1028,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1027,\n columnNumber: 17\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 811,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 810,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 809,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"line top left\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1048,\n columnNumber: 11\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 799,\n columnNumber: 9\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"section\", {\n className: \"jsx-575932941\" + \" \" + \"services bords lficon section-padding position-re\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"container\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n \"data-wow-delay\": \".5s\",\n className: \"jsx-575932941\" + \" \" + \"wow fadeIn\",\n children: \"Best Features\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1056,\n columnNumber: 19\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h3\", {\n className: \"jsx-575932941\" + \" \" + \"wow color-font\",\n children: \"Creative Agency, Corporate and Portfolio Template\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1059,\n columnNumber: 19\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 1055,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1054,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1053,\n columnNumber: 13\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".5s\",\n className: \"jsx-575932941\" + \" \" + \"col-lg-6 wow fadeInLeft\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"item-box\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"icon pe-7s-paint-bucket\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1069,\n columnNumber: 21\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1068,\n columnNumber: 19\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"UI/UX Design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1072,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"p\", {\n className: \"jsx-575932941\",\n children: \"We provide the best design by following the latest trends.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1073,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 1071,\n columnNumber: 19\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 1067,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1066,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".7s\",\n className: \"jsx-575932941\" + \" \" + \"col-lg-6 wow fadeInLeft\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"item-box\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"icon pe-7s-phone\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1082,\n columnNumber: 21\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1081,\n columnNumber: 19\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Easily Customizable\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1085,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"p\", {\n className: \"jsx-575932941\",\n children: \"Build and customize stunning pages in minutes.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1086,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 1084,\n columnNumber: 19\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 1080,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1079,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".9s\",\n className: \"jsx-575932941\" + \" \" + \"col-lg-6 wow fadeInLeft\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"item-box\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"icon pe-7s-display1\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1093,\n columnNumber: 21\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1092,\n columnNumber: 19\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"One / Multi Page\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1096,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"p\", {\n className: \"jsx-575932941\",\n children: \"Choose the layout style that fits your need.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1097,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 1095,\n columnNumber: 19\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 1091,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1090,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".5s\",\n className: \"jsx-575932941\" + \" \" + \"col-lg-6 wow fadeInLeft\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"item-box\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"icon pe-7s-diskette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1104,\n columnNumber: 21\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1103,\n columnNumber: 19\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"24/7 Support\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1107,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"p\", {\n className: \"jsx-575932941\",\n children: \"We commit to keep your site up-to-date.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1108,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 1106,\n columnNumber: 19\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 1102,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1101,\n columnNumber: 15\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 1065,\n columnNumber: 13\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 1052,\n columnNumber: 11\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"line top right\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1114,\n columnNumber: 11\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 1051,\n columnNumber: 9\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"section\", {\n style: {\n backgroundImage: \"url(/img/patrn.svg)\"\n },\n className: \"jsx-575932941\" + \" \" + \"call-action section-padding bg-img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-md-8 col-lg-9\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"content sm-mb30\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(_components_Split__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n \"data-splitting\": true,\n className: \"jsx-575932941\" + \" \" + \"wow words chars splitting\",\n children: \"Purchase The Vie\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1126,\n columnNumber: 21\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h2\", {\n \"data-splitting\": true,\n className: \"jsx-575932941\" + \" \" + \"wow words chars splitting\",\n children: [\"and Make \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"br\", {\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1130,\n columnNumber: 32\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"b\", {\n className: \"jsx-575932941\" + \" \" + \"back-color\",\n children: \"Your Life Easier\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1131,\n columnNumber: 23\n }, undefined), \".\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 1129,\n columnNumber: 21\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 1125,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1124,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1123,\n columnNumber: 15\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-md-4 col-lg-3 valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n href: \"#0\",\n \"data-wow-delay\": \".5s\",\n className: \"jsx-575932941\" + \" \" + \"butn bord curve wow fadeInUp\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\",\n children: \"Purchase Now\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1143,\n columnNumber: 19\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1138,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1137,\n columnNumber: 15\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 1122,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1121,\n columnNumber: 11\n }, undefined)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1117,\n columnNumber: 9\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 7\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 5\n }, undefined);\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Demos);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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aUJBakpGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxlQURGO0FBbW1DRCxDQXRuQ0Q7O0FBd25DQSxpRUFBZVIsS0FBZiIsInNvdXJjZXMiOlsid2VicGFjazovL3ZpZS1yZWFjdC8uL3NyYy9wYWdlcy9kZW1vcy9kZW1vcy5qc3g/OWMyNyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAbmV4dC9uZXh0L25vLWltZy1lbGVtZW50ICovXHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHBhcnRpY2xlc0NvbmZpZyBmcm9tIFwiLi4vLi4vY29uZmlnL3BhcnRpY2xlLWNvbmZpZ1wiO1xyXG5pbXBvcnQgUGFydGljbGVzIGZyb20gXCJyZWFjdC10c3BhcnRpY2xlc1wiO1xyXG5pbXBvcnQgTGluayBmcm9tIFwibmV4dC9saW5rXCI7XHJcbmltcG9ydCBTcGxpdCBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9TcGxpdFwiO1xyXG5pbXBvcnQgRGFya1RoZW1lIGZyb20gXCIuLi8uLi9sYXlvdXRzL0RhcmtcIjtcclxuaW1wb3J0IGluaXRJc290b3BlIGZyb20gXCIuLi8uLi9jb21tb24vaW5pdElzb3RvcGVcIjtcclxuXHJcbmNvbnN0IERlbW9zID0gKCkgPT4ge1xyXG4gIGNvbnN0IFtwYWdlTG9hZGVkLCBzZXRQYWdlTG9hZGVkXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcclxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgc2V0UGFnZUxvYWRlZCh0cnVlKTtcclxuICAgIGlmIChwYWdlTG9hZGVkKSB7XHJcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwibG9hZFwiLCAoKSA9PiB7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICBpZiAocGFnZUxvYWRlZCkge1xyXG4gICAgICAgICAgICBpbml0SXNvdG9wZSgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sIDEwMDApO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiAocGFnZUxvYWRlZCkge1xyXG4gICAgICAgIGluaXRJc290b3BlKCk7XHJcbiAgICAgIH1cclxuICAgIH0sIDEwMDApO1xyXG4gIH0sIFtwYWdlTG9hZGVkXSk7XHJcbiAgcmV0dXJuIChcclxuICAgIDxEYXJrVGhlbWU+XHJcbiAgICAgIDxzdHlsZSBqc3g+e2BcclxuICAgICAgICAuc2VjLWhlYWQgaDMge1xyXG4gICAgICAgICAgZm9udC1zaXplOiA2MHB4O1xyXG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5zZWMtaGVhZCAudGJnIHtcclxuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgIHRvcDogLTEyMHB4O1xyXG4gICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgZm9udC1zaXplOiAxNXZ3O1xyXG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcclxuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxyXG4gICAgICAgICAgICAxODBkZWcsXHJcbiAgICAgICAgICAgICNmZmYgMCUsXHJcbiAgICAgICAgICAgIHJnYmEoMTcsIDE4LCAyMSwgMC4yKSA3MCVcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDtcclxuICAgICAgICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgIG9wYWNpdHk6IDAuMTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5zZWMtaGVhZCAudGJnIGIge1xyXG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMTJ2dztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5tYWluLWNvbnRlbnQge1xyXG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgei1pbmRleDogOTk5OTk5O1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAubWFzb25lcnkgLmdhbGxlcnkgLml0ZW1zIHtcclxuICAgICAgICAgIG1hcmdpbi10b3A6IDMwcHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAubWFzb25lcnkgLmNvbnRhaW5lci1mbHVpZCB7XHJcbiAgICAgICAgICBwYWRkaW5nOiAwIDEwMHB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgICAgICAubWFzb25lcnkgLmNvbnRhaW5lci1mbHVpZCB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMjBweDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC5zZWMtaGVhZCBoMyB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMzRweDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC5zZWMtaGVhZCB7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvIDMwcHg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAubWFzb25lcnkgLml0ZW0taW1nIHtcclxuICAgICAgICAgIHBhZGRpbmc6IDVweCAxNXB4IDIwcHg7XHJcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogIzE4MTkxZDtcclxuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5tYXNvbmVyeSAuaXRlbS1pbWcgLmRvdCB7XHJcbiAgICAgICAgICB3aWR0aDogN3B4O1xyXG4gICAgICAgICAgaGVpZ2h0OiA3cHg7XHJcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLm1hc29uZXJ5IC5pdGVtLWltZyAuaW1nIHtcclxuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLm1hc29uZXJ5IC5pdGVtLWltZyAuaW1nIGltZyB7XHJcbiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC40cztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5tYXNvbmVyeSAuaXRlbS1pbWcgLmltZzpob3ZlciBpbWcge1xyXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLm1hc29uZXJ5IC5pdGVtLWltZyAuY29udCB7XHJcbiAgICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xyXG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLm1hc29uZXJ5IC5pdGVtLWltZyAuY29udCBoNiB7XHJcbiAgICAgICAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5tYXNvbmVyeSAuaXRlbS1pbWcgLmNvbnQgLnN0YSB7XHJcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICB0b3A6IC00N3B4O1xyXG4gICAgICAgICAgbGVmdDogNTAlO1xyXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xyXG4gICAgICAgICAgcGFkZGluZzogNXB4IDEwcHg7XHJcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAzMHB4O1xyXG4gICAgICAgICAgYm94LXNoYWRvdzogMHB4IDVweCAyMHB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSk7XHJcbiAgICAgICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAubWFzb25lcnkgLml0ZW0taW1nIC5jb250IC5zdGEuY29taW5nIHtcclxuICAgICAgICAgIGJhY2tncm91bmQ6ICMwM2JlNWY7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAubWFzb25lcnkgLml0ZW0taW1nIC5jb250IC5zdGEubmV3IHtcclxuICAgICAgICAgIGJhY2tncm91bmQ6ICNmZjRiNGI7XHJcbiAgICAgICAgfVxyXG4gICAgICBgfTwvc3R5bGU+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2lyY2xlLWJnXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjaXJjbGUtY29sb3IgZml4ZWRcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JhZGllbnQtY2lyY2xlXCI+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyYWRpZW50LWNpcmNsZSB0d29cIj48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxoZWFkZXJcclxuICAgICAgICBjbGFzc05hbWU9XCJ3b3Jrcy1oZWFkZXIgcGFydGljbGVzIHZhbGlnbiBiZy1pbWcgcGFyYWxsYXhpZVwiXHJcbiAgICAgICAgZGF0YS1vdmVybGF5LWRhcms9XCI0XCJcclxuICAgICAgICBzdHlsZT17e1xyXG4gICAgICAgICAgYmFja2dyb3VuZEltYWdlOiBcInVybCgvZGVtby1pbWcvYmcucG5nKVwiLFxyXG4gICAgICAgICAgbWluSGVpZ2h0OiBcIjEwMHZoXCIsXHJcbiAgICAgICAgICB6SW5kZXg6IDk5OTk5LFxyXG4gICAgICAgIH19XHJcbiAgICAgID5cclxuICAgICAgICA8UGFydGljbGVzIGlkPVwicGFydGljbGVzLWpzXCIgb3B0aW9ucz17cGFydGljbGVzQ29uZmlnfSAvPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTkgY29sLW1kLTExIHN0YXRpY1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FwdCBtdC01MFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiYWN0eHQgY3VzdG9tLWZvbnQgdmFsaWduXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImZ1bGwtd2lkdGhcIiBzdHlsZT17eyBjb2xvcjogXCJ0cmFuc3BhcmVudFwiIH19PlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZVxyXG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9oZWFkZXI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWFpbi1jb250ZW50IHNlY3Rpb24tcGFkZGluZyBwYi0wXCI+XHJcbiAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwibWFzb25lcnkgc2VjdGlvbi1wYWRkaW5nXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOCBjb2wtbWQtMTBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2VjLWhlYWQgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cImNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA0OSsgc3R1bm5pbmcgdW5pcXVlIHJlYWR5IHRlbXBsYXRlXHJcbiAgICAgICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRiZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxiPis8L2I+NDlcclxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ2FsbGVyeSBmdWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2hvbWVwYWdlL2hvbWUxLWRhcmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nLzEucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2Pk1haW4gRGVtbzwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2hvbWVwYWdlL2hvbWUxLWxpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy8wMS5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+TWFpbiBEZW1vPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvaG9tZXBhZ2UvaG9tZTItZGFya1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvMi5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+Q3JlYXRpdmUgQWdlbmN5PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvaG9tZXBhZ2UvaG9tZTItbGlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nLzAyLnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5DcmVhdGl2ZSBBZ2VuY3k8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ2FsbGVyeSBmdWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL21vYmlsZS1hcHAvbW9iaWxlLWFwcC1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy9tb2JpbGUxLnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5Nb2JpbGUgYXBwPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInN0YSBuZXdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPk5ldyBEZW1vPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9tb2JpbGUtYXBwL21vYmlsZS1hcHAtbGlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nL21vYmlsZTIucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2Pk1vYmlsZSBhcHA8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3RhIG5ld1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+TmV3IERlbW88L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvaG9tZXBhZ2UvaG9tZTctZGFya1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvbjIucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PkZyZWVsYW5jZXI8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9ob21lcGFnZS9ob21lNy1saWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvbjAyLnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5GcmVlbGFuY2VyPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvaG9tZXBhZ2UvaG9tZTgtZGFya1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvbjMucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PkFyY2hpdGVjdHVyZTwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2hvbWVwYWdlL2hvbWU4LWxpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy9uMDMucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PkFyY2hpdGVjdHVyZTwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvaG9tZXBhZ2UvaG9tZTUtZGFya1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvMy5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+RGlnaXRhbCBBZ2VuY3k8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9ob21lcGFnZS9ob21lNS1saWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvMDMucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PkRpZ2l0YWwgQWdlbmN5PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdhbGxlcnkgZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9ob21lcGFnZS9ob21lNC1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy80LnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5CdXNpbmVzcyBPbmUgUGFnZTwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2hvbWVwYWdlL2hvbWU0LWxpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy8wNC5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+QnVzaW5lc3MgT25lIFBhZ2U8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2hvbWVwYWdlL2hvbWUzLWRhcmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nLzUucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PkNvcnBvcmF0ZSBCdXNpbmVzczwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2hvbWVwYWdlL2hvbWUzLWxpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy8wNS5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+Q29ycG9yYXRlIEJ1c2luZXNzPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdhbGxlcnkgZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9ob21lcGFnZS9ob21lNi1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy9uMS5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+TW9kZXJuIEFnZW5jeTwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2hvbWVwYWdlL2hvbWU2LWxpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy9uMDEucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2Pk1vZGVybiBBZ2VuY3k8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvYzMucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGg2PlJlc3RhdXJhbnQ8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzdGEgY29taW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPkNvbWluZyBTb29uPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nL2M0LnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxoNj5NdWx0aXB1cnBvc2U8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzdGEgY29taW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPkNvbWluZyBTb29uPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG5cclxuICAgICAgICA8c2VjdGlvbiBjbGFzc05hbWU9XCJtYXNvbmVyeSBzZWN0aW9uLXBhZGRpbmcgcG9zaXRpb24tcmVcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy04IGNvbC1tZC0xMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWMtaGVhZCB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwiY29sb3ItZm9udFwiPlNob3djYXNlczwvaDM+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyLWZsdWlkXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJnYWxsZXJ5IGZ1bGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvc2hvd2Nhc2Uvc2hvd2Nhc2UtZGFya1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvczEucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PkZ1bGwgU2NyZWVuPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvc2hvd2Nhc2Uvc2hvd2Nhc2UtbGlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nL3MwMS5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+RnVsbCBTY3JlZW48L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9zaG93Y2FzZTQvc2hvd2Nhc2U0LWRhcmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nL3MyLnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5TaG93Y2FzZSBDYXJvdXNlbDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL3Nob3djYXNlNC9zaG93Y2FzZTQtbGlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nL3MwMi5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+U2hvd2Nhc2UgQ2Fyb3VzZWw8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9zaG93Y2FzZTMvc2hvd2Nhc2UzLWRhcmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nL3MzLnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5TaG93Y2FzZSBDaXJjbGU8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9zaG93Y2FzZTMvc2hvd2Nhc2UzLWxpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy9zMDMucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PlNob3djYXNlIENpcmNsZTwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL3dvcmtzL3dvcmtzLWRhcmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nL3cxLnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5Xb3JrcyAzIGNvbHVtbjwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL3dvcmtzL3dvcmtzLWxpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy93MDEucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PldvcmtzIDMgY29sdW1uPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvd29ya3MyL3dvcmtzMi1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy93Mi5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+V29ya3MgRmlsdGVyaW5nPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvd29ya3MyL3dvcmtzMi1saWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvdzAyLnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5Xb3JrcyBGaWx0ZXJpbmc8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi93b3JrczMvd29ya3MzLWRhcmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nL3czLnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5Xb3JrcyBHYWxsZXJ5PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvd29ya3MzL3dvcmtzMy1saWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvdzAzLnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5Xb3JrcyBHYWxsZXJ5PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGluZSB0b3AgbGVmdFwiPjwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuXHJcbiAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwibWFzb25lcnkgc2VjdGlvbi1wYWRkaW5nIHBvc2l0aW9uLXJlXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOCBjb2wtbWQtMTBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2VjLWhlYWQgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cImNvbG9yLWZvbnRcIj5Jbm5lciBQYWdlczwvaDM+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyLWZsdWlkXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJnYWxsZXJ5IGZ1bGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvYmxvZy9ibG9nLWRhcmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cIi9kZW1vLWltZy9zdGFuZGVyZC1ibG9nLWRhcmsucG5nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cImltYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PlN0YW5kZXJkIEJsb2c8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9ibG9nL2Jsb2ctbGlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cIi9kZW1vLWltZy9zdGFuZGVyZC1ibG9nLWxpZ2h0LnBuZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJpbWFnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5TdGFuZGVyZCBCbG9nPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvYmxvZy1saXN0L2Jsb2ctbGlzdC1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy9ibG9nLWxpc3QtZGFyay5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+QmxvZyBMaXN0PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvYmxvZy1saXN0L2Jsb2ctbGlzdC1saWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPVwiL2RlbW8taW1nL2Jsb2ctbGlzdC1saWdodC5wbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiaW1hZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+QmxvZyBMaXN0PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvYmxvZy1ncmlkL2Jsb2ctZ3JpZC1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy9ibG9nLWdyaWQtZGFyay5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+QmxvZyBHcmlkPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvYmxvZy1ncmlkL2Jsb2ctZ3JpZC1saWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPVwiL2RlbW8taW1nL2Jsb2ctZ3JpZC1saWdodC5wbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiaW1hZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+QmxvZyBHcmlkPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvYmxvZy1kZXRhaWxzL2Jsb2ctZGV0YWlscy1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCIvZGVtby1pbWcvYmxvZy1kZXRhaWxzLWRhcmsucG5nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cImltYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PkJsb2cgRGV0YWlsczwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2Jsb2ctZGV0YWlscy9ibG9nLWRldGFpbHMtbGlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cIi9kZW1vLWltZy9ibG9nLWRldGFpbHMtbGlnaHQucG5nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cImltYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PkJsb2cgRGV0YWlsczwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2Fib3V0L2Fib3V0LWRhcmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nL2Fib3V0LnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5BYm91dCBVczwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2Fib3V0L2Fib3V0LWxpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy9hYm91dDEucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PkFib3V0IFVzPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9jb250YWN0L2NvbnRhY3QtZGFya1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvY29udGFjdC1kYXJrLnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5Db250YWN0PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvY29udGFjdC9jb250YWN0LWxpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy9jb250YWN0LWxpZ2h0LnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5Db250YWN0PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGluZSB0b3AgbGVmdFwiPjwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuXHJcbiAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwic2VydmljZXMgYm9yZHMgbGZpY29uIHNlY3Rpb24tcGFkZGluZyBwb3NpdGlvbi1yZVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTggY29sLW1kLTEwXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNlYy1oZWFkICB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8aDYgY2xhc3NOYW1lPVwid293IGZhZGVJblwiIGRhdGEtd293LWRlbGF5PVwiLjVzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgQmVzdCBGZWF0dXJlc1xyXG4gICAgICAgICAgICAgICAgICA8L2g2PlxyXG4gICAgICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwid293IGNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICBDcmVhdGl2ZSBBZ2VuY3ksIENvcnBvcmF0ZSBhbmQgUG9ydGZvbGlvIFRlbXBsYXRlXHJcbiAgICAgICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctNiB3b3cgZmFkZUluTGVmdFwiIGRhdGEtd293LWRlbGF5PVwiLjVzXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0tYm94XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvbiBwZS03cy1wYWludC1idWNrZXRcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+VUkvVVggRGVzaWduPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgICAgIFdlIHByb3ZpZGUgdGhlIGJlc3QgZGVzaWduIGJ5IGZvbGxvd2luZyB0aGUgbGF0ZXN0IHRyZW5kcy5cclxuICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctNiB3b3cgZmFkZUluTGVmdFwiIGRhdGEtd293LWRlbGF5PVwiLjdzXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0tYm94XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvbiBwZS03cy1waG9uZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoNj5FYXNpbHkgQ3VzdG9taXphYmxlPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICA8cD5CdWlsZCBhbmQgY3VzdG9taXplIHN0dW5uaW5nIHBhZ2VzIGluIG1pbnV0ZXMuPC9wPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTYgd293IGZhZGVJbkxlZnRcIiBkYXRhLXdvdy1kZWxheT1cIi45c1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWJveFwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24gcGUtN3MtZGlzcGxheTFcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+T25lIC8gTXVsdGkgUGFnZTwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+Q2hvb3NlIHRoZSBsYXlvdXQgc3R5bGUgdGhhdCBmaXRzIHlvdXIgbmVlZC48L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctNiB3b3cgZmFkZUluTGVmdFwiIGRhdGEtd293LWRlbGF5PVwiLjVzXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0tYm94XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvbiBwZS03cy1kaXNrZXR0ZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoNj4yNC83IFN1cHBvcnQ8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPldlIGNvbW1pdCB0byBrZWVwIHlvdXIgc2l0ZSB1cC10by1kYXRlLjwvcD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGluZSB0b3AgcmlnaHRcIj48L2Rpdj5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcblxyXG4gICAgICAgIDxzZWN0aW9uXHJcbiAgICAgICAgICBjbGFzc05hbWU9XCJjYWxsLWFjdGlvbiBzZWN0aW9uLXBhZGRpbmcgYmctaW1nXCJcclxuICAgICAgICAgIHN0eWxlPXt7IGJhY2tncm91bmRJbWFnZTogXCJ1cmwoL2ltZy9wYXRybi5zdmcpXCIgfX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLW1kLTggY29sLWxnLTlcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGVudCBzbS1tYjMwXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxTcGxpdD5cclxuICAgICAgICAgICAgICAgICAgICA8aDYgY2xhc3NOYW1lPVwid293IHdvcmRzIGNoYXJzIHNwbGl0dGluZ1wiIGRhdGEtc3BsaXR0aW5nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgUHVyY2hhc2UgVGhlIFZpZVxyXG4gICAgICAgICAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzTmFtZT1cIndvdyB3b3JkcyBjaGFycyBzcGxpdHRpbmdcIiBkYXRhLXNwbGl0dGluZz5cclxuICAgICAgICAgICAgICAgICAgICAgIGFuZCBNYWtlIDxiciAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGIgY2xhc3NOYW1lPVwiYmFjay1jb2xvclwiPllvdXIgTGlmZSBFYXNpZXI8L2I+LlxyXG4gICAgICAgICAgICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICAgICAgICAgIDwvU3BsaXQ+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbWQtNCBjb2wtbGctMyB2YWxpZ25cIj5cclxuICAgICAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICAgIGhyZWY9XCIjMFwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJ1dG4gYm9yZCBjdXJ2ZSB3b3cgZmFkZUluVXBcIlxyXG4gICAgICAgICAgICAgICAgICBkYXRhLXdvdy1kZWxheT1cIi41c1wiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuPlB1cmNoYXNlIE5vdzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9EYXJrVGhlbWU+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IERlbW9zO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJwYXJ0aWNsZXNDb25maWciLCJQYXJ0aWNsZXMiLCJMaW5rIiwiU3BsaXQiLCJEYXJrVGhlbWUiLCJpbml0SXNvdG9wZSIsIkRlbW9zIiwicGFnZUxvYWRlZCIsInNldFBhZ2VMb2FkZWQiLCJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJzZXRUaW1lb3V0IiwiYmFja2dyb3VuZEltYWdlIiwibWluSGVpZ2h0IiwiekluZGV4IiwiY29sb3IiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/pages/demos/demos.jsx\n"); + +/***/ }), + +/***/ "./src/pages/index.jsx": +/*!*****************************!*\ + !*** ./src/pages/index.jsx ***! + \*****************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.a(module, async (__webpack_handle_async_dependencies__) => {\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _demos_demos__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./demos/demos */ \"./src/pages/demos/demos.jsx\");\n/* harmony import */ var _components_Navbar_navbar__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../components/Navbar/navbar */ \"./src/components/Navbar/navbar.jsx\");\n/* harmony import */ var _components_Full_testimonials_full_testimonials__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../components/Full-testimonials/full-testimonials */ \"./src/components/Full-testimonials/full-testimonials.jsx\");\n/* harmony import */ var _components_Call_to_action_call_to_action__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../components/Call-to-action/call-to-action */ \"./src/components/Call-to-action/call-to-action.jsx\");\n/* harmony import */ var _components_Footer_footer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../components/Footer/footer */ \"./src/components/Footer/footer.jsx\");\n/* harmony import */ var _components_Team_team__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../components/Team/team */ \"./src/components/Team/team.jsx\");\n/* harmony import */ var _layouts_Light__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../layouts/Light */ \"./src/layouts/Light.jsx\");\n/* harmony import */ var _components_Works3_works3__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../components/Works3/works3 */ \"./src/components/Works3/works3.jsx\");\n/* harmony import */ var _components_blogs_Blogs4_blogs4__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../components/blogs/Blogs4/blogs4 */ \"./src/components/blogs/Blogs4/blogs4.jsx\");\n/* harmony import */ var _components_Intro4_intro4__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../components/Intro4/intro4 */ \"./src/components/Intro4/intro4.jsx\");\n/* harmony import */ var _components_About_us3_about_us3__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../components/About-us3/about-us3 */ \"./src/components/About-us3/about-us3.jsx\");\n/* harmony import */ var _components_Services3_services3__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../components/Services3/services3 */ \"./src/components/Services3/services3.jsx\");\n/* harmony import */ var _components_Minimal_Area2_minimal_area2__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../components/Minimal-Area2/minimal-area2 */ \"./src/components/Minimal-Area2/minimal-area2.jsx\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_14__);\nvar __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_components_blogs_Blogs4_blogs4__WEBPACK_IMPORTED_MODULE_9__, _components_Works3_works3__WEBPACK_IMPORTED_MODULE_8__]);\n([_components_blogs_Blogs4_blogs4__WEBPACK_IMPORTED_MODULE_9__, _components_Works3_works3__WEBPACK_IMPORTED_MODULE_8__] = __webpack_async_dependencies__.then ? await __webpack_async_dependencies__ : __webpack_async_dependencies__);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\pages\\\\index.jsx\";\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst Home = () => {\n const navbarRef = react__WEBPACK_IMPORTED_MODULE_0___default().useRef(null);\n const logoRef = react__WEBPACK_IMPORTED_MODULE_0___default().useRef(null);\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(() => {\n var navbar = navbarRef.current;\n\n if (window.pageYOffset > 300) {\n navbar.classList.add(\"nav-scroll\");\n } else {\n navbar.classList.remove(\"nav-scroll\");\n }\n\n window.addEventListener(\"scroll\", () => {\n if (window.pageYOffset > 300) {\n navbar.classList.add(\"nav-scroll\");\n } else {\n navbar.classList.remove(\"nav-scroll\");\n }\n });\n }, [navbarRef]);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_14__.jsxDEV)(_layouts_Light__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_14__.jsxDEV)(_components_Navbar_navbar__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n nr: navbarRef,\n lr: logoRef,\n theme: \"themeL\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 7\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_14__.jsxDEV)(_components_Intro4_intro4__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n blackStar: true\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_14__.jsxDEV)(_components_About_us3_about_us3__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 7\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_14__.jsxDEV)(_components_Works3_works3__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 7\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_14__.jsxDEV)(_components_Services3_services3__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 7\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_14__.jsxDEV)(_components_Minimal_Area2_minimal_area2__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 7\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_14__.jsxDEV)(_components_Team_team__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 44,\n columnNumber: 7\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_14__.jsxDEV)(_components_blogs_Blogs4_blogs4__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 7\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_14__.jsxDEV)(_components_Call_to_action_call_to_action__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 7\n }, undefined), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_14__.jsxDEV)(_components_Footer_footer__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 7\n }, undefined)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 5\n }, undefined);\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Home);\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvcGFnZXMvaW5kZXguanN4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFFQSxNQUFNYyxJQUFJLEdBQUcsTUFBTTtBQUNqQixRQUFNQyxTQUFTLEdBQUdmLG1EQUFBLENBQWEsSUFBYixDQUFsQjtBQUNBLFFBQU1pQixPQUFPLEdBQUdqQixtREFBQSxDQUFhLElBQWIsQ0FBaEI7QUFFQUEsRUFBQUEsc0RBQUEsQ0FBZ0IsTUFBTTtBQUNwQixRQUFJbUIsTUFBTSxHQUFHSixTQUFTLENBQUNLLE9BQXZCOztBQUNBLFFBQUlDLE1BQU0sQ0FBQ0MsV0FBUCxHQUFxQixHQUF6QixFQUE4QjtBQUM1QkgsTUFBQUEsTUFBTSxDQUFDSSxTQUFQLENBQWlCQyxHQUFqQixDQUFxQixZQUFyQjtBQUNELEtBRkQsTUFFTztBQUNMTCxNQUFBQSxNQUFNLENBQUNJLFNBQVAsQ0FBaUJFLE1BQWpCLENBQXdCLFlBQXhCO0FBQ0Q7O0FBQ0RKLElBQUFBLE1BQU0sQ0FBQ0ssZ0JBQVAsQ0FBd0IsUUFBeEIsRUFBa0MsTUFBTTtBQUN0QyxVQUFJTCxNQUFNLENBQUNDLFdBQVAsR0FBcUIsR0FBekIsRUFBOEI7QUFDNUJILFFBQUFBLE1BQU0sQ0FBQ0ksU0FBUCxDQUFpQkMsR0FBakIsQ0FBcUIsWUFBckI7QUFDRCxPQUZELE1BRU87QUFDTEwsUUFBQUEsTUFBTSxDQUFDSSxTQUFQLENBQWlCRSxNQUFqQixDQUF3QixZQUF4QjtBQUNEO0FBQ0YsS0FORDtBQU9ELEdBZEQsRUFjRyxDQUFDVixTQUFELENBZEg7QUFlQSxzQkFDRSwrREFBQyxzREFBRDtBQUFBLDRCQUNFLCtEQUFDLGlFQUFEO0FBQVEsUUFBRSxFQUFFQSxTQUFaO0FBQXVCLFFBQUUsRUFBRUUsT0FBM0I7QUFBb0MsV0FBSyxFQUFDO0FBQTFDO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBREYsZUFFRSwrREFBQyxrRUFBRDtBQUFRLGVBQVM7QUFBakI7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFGRixlQUdFLCtEQUFDLHdFQUFEO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBSEYsZUFJRSwrREFBQyxpRUFBRDtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQUpGLGVBS0UsK0RBQUMsd0VBQUQ7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFMRixlQU1FLCtEQUFDLGdGQUFEO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBTkYsZUFRRSwrREFBQyw2REFBRDtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQVJGLGVBU0UsK0RBQUMsdUVBQUQ7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFURixlQVVFLCtEQUFDLGlGQUFEO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBVkYsZUFXRSwrREFBQyxpRUFBRDtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQVhGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxlQURGO0FBZUQsQ0FsQ0Q7O0FBb0NBLGlFQUFlSCxJQUFmLEUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly92aWUtcmVhY3QvLi9zcmMvcGFnZXMvaW5kZXguanN4P2QzNWMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgRGVtb3MgZnJvbSBcIi4vZGVtb3MvZGVtb3NcIjtcclxuaW1wb3J0IE5hdmJhciBmcm9tIFwiLi4vY29tcG9uZW50cy9OYXZiYXIvbmF2YmFyXCI7XHJcbmltcG9ydCBGdWxsVGVzdGltb25pYWxzIGZyb20gXCIuLi9jb21wb25lbnRzL0Z1bGwtdGVzdGltb25pYWxzL2Z1bGwtdGVzdGltb25pYWxzXCI7XHJcbmltcG9ydCBDYWxsVG9BY3Rpb24gZnJvbSBcIi4uL2NvbXBvbmVudHMvQ2FsbC10by1hY3Rpb24vY2FsbC10by1hY3Rpb25cIjtcclxuaW1wb3J0IEZvb3RlciBmcm9tIFwiLi4vY29tcG9uZW50cy9Gb290ZXIvZm9vdGVyXCI7XHJcbmltcG9ydCBUZWFtIGZyb20gXCIuLi9jb21wb25lbnRzL1RlYW0vdGVhbVwiO1xyXG5pbXBvcnQgTGlnaHRUaGVtZSBmcm9tIFwiLi4vbGF5b3V0cy9MaWdodFwiO1xyXG5pbXBvcnQgV29ya3MzIGZyb20gXCIuLi9jb21wb25lbnRzL1dvcmtzMy93b3JrczNcIjtcclxuaW1wb3J0IEJsb2dzNCBmcm9tIFwiLi4vY29tcG9uZW50cy9ibG9ncy9CbG9nczQvYmxvZ3M0XCI7XHJcbmltcG9ydCBJbnRybzQgZnJvbSBcIi4uL2NvbXBvbmVudHMvSW50cm80L2ludHJvNFwiO1xyXG5pbXBvcnQgQWJvdXRVczMgZnJvbSBcIi4uL2NvbXBvbmVudHMvQWJvdXQtdXMzL2Fib3V0LXVzM1wiO1xyXG5pbXBvcnQgU2VydmljZXMzIGZyb20gXCIuLi9jb21wb25lbnRzL1NlcnZpY2VzMy9zZXJ2aWNlczNcIjtcclxuaW1wb3J0IE1pbmltYWxBcmVhMiBmcm9tIFwiLi4vY29tcG9uZW50cy9NaW5pbWFsLUFyZWEyL21pbmltYWwtYXJlYTJcIjtcclxuXHJcbmNvbnN0IEhvbWUgPSAoKSA9PiB7XHJcbiAgY29uc3QgbmF2YmFyUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xyXG4gIGNvbnN0IGxvZ29SZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XHJcblxyXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICB2YXIgbmF2YmFyID0gbmF2YmFyUmVmLmN1cnJlbnQ7XHJcbiAgICBpZiAod2luZG93LnBhZ2VZT2Zmc2V0ID4gMzAwKSB7XHJcbiAgICAgIG5hdmJhci5jbGFzc0xpc3QuYWRkKFwibmF2LXNjcm9sbFwiKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG5hdmJhci5jbGFzc0xpc3QucmVtb3ZlKFwibmF2LXNjcm9sbFwiKTtcclxuICAgIH1cclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsICgpID0+IHtcclxuICAgICAgaWYgKHdpbmRvdy5wYWdlWU9mZnNldCA+IDMwMCkge1xyXG4gICAgICAgIG5hdmJhci5jbGFzc0xpc3QuYWRkKFwibmF2LXNjcm9sbFwiKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBuYXZiYXIuY2xhc3NMaXN0LnJlbW92ZShcIm5hdi1zY3JvbGxcIik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH0sIFtuYXZiYXJSZWZdKTtcclxuICByZXR1cm4gKFxyXG4gICAgPExpZ2h0VGhlbWU+XHJcbiAgICAgIDxOYXZiYXIgbnI9e25hdmJhclJlZn0gbHI9e2xvZ29SZWZ9IHRoZW1lPVwidGhlbWVMXCIgLz5cclxuICAgICAgPEludHJvNCBibGFja1N0YXIgLz5cclxuICAgICAgPEFib3V0VXMzIC8+XHJcbiAgICAgIDxXb3JrczMgLz5cclxuICAgICAgPFNlcnZpY2VzMyAvPlxyXG4gICAgICA8TWluaW1hbEFyZWEyIC8+XHJcbiAgICAgIHsvKiA8RnVsbFRlc3RpbW9uaWFscyBjbGFzc1RleHQ9XCJwYi0wXCIgLz4gKi99XHJcbiAgICAgIDxUZWFtIC8+XHJcbiAgICAgIDxCbG9nczQgLz5cclxuICAgICAgPENhbGxUb0FjdGlvbiAvPlxyXG4gICAgICA8Rm9vdGVyIC8+XHJcbiAgICA8L0xpZ2h0VGhlbWU+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IEhvbWU7XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIkRlbW9zIiwiTmF2YmFyIiwiRnVsbFRlc3RpbW9uaWFscyIsIkNhbGxUb0FjdGlvbiIsIkZvb3RlciIsIlRlYW0iLCJMaWdodFRoZW1lIiwiV29ya3MzIiwiQmxvZ3M0IiwiSW50cm80IiwiQWJvdXRVczMiLCJTZXJ2aWNlczMiLCJNaW5pbWFsQXJlYTIiLCJIb21lIiwibmF2YmFyUmVmIiwidXNlUmVmIiwibG9nb1JlZiIsInVzZUVmZmVjdCIsIm5hdmJhciIsImN1cnJlbnQiLCJ3aW5kb3ciLCJwYWdlWU9mZnNldCIsImNsYXNzTGlzdCIsImFkZCIsInJlbW92ZSIsImFkZEV2ZW50TGlzdGVuZXIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/pages/index.jsx\n"); + +/***/ }), + +/***/ "./node_modules/slick-carousel/slick/slick-theme.css": +/*!***********************************************************!*\ + !*** ./node_modules/slick-carousel/slick/slick-theme.css ***! + \***********************************************************/ +/***/ (() => { + + + +/***/ }), + +/***/ "./node_modules/slick-carousel/slick/slick.css": +/*!*****************************************************!*\ + !*** ./node_modules/slick-carousel/slick/slick.css ***! + \*****************************************************/ +/***/ (() => { + + + +/***/ }), + +/***/ "./node_modules/swiper/modules/effect-fade/effect-fade.min.css": +/*!*********************************************************************!*\ + !*** ./node_modules/swiper/modules/effect-fade/effect-fade.min.css ***! + \*********************************************************************/ +/***/ (() => { + + + +/***/ }), + +/***/ "./node_modules/swiper/modules/navigation/navigation.min.css": +/*!*******************************************************************!*\ + !*** ./node_modules/swiper/modules/navigation/navigation.min.css ***! + \*******************************************************************/ +/***/ (() => { + + + +/***/ }), + +/***/ "./node_modules/swiper/modules/pagination/pagination.min.css": +/*!*******************************************************************!*\ + !*** ./node_modules/swiper/modules/pagination/pagination.min.css ***! + \*******************************************************************/ +/***/ (() => { + + + +/***/ }), + +/***/ "./node_modules/swiper/swiper.min.css": +/*!********************************************!*\ + !*** ./node_modules/swiper/swiper.min.css ***! + \********************************************/ +/***/ (() => { + + + +/***/ }), + +/***/ "./node_modules/next/dist/lib/is-error.js": +/*!************************************************!*\ + !*** ./node_modules/next/dist/lib/is-error.js ***! + \************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = isError;\nfunction isError(err) {\n return typeof err === 'object' && err !== null && 'name' in err && 'message' in err;\n}\n\n//# sourceMappingURL=is-error.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9pcy1lcnJvci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGtCQUFlO0FBQ2Y7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmllLXJlYWN0Ly4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvaXMtZXJyb3IuanM/MTc4ZSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IGlzRXJyb3I7XG5mdW5jdGlvbiBpc0Vycm9yKGVycikge1xuICAgIHJldHVybiB0eXBlb2YgZXJyID09PSAnb2JqZWN0JyAmJiBlcnIgIT09IG51bGwgJiYgJ25hbWUnIGluIGVyciAmJiAnbWVzc2FnZScgaW4gZXJyO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy1lcnJvci5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/lib/is-error.js\n"); + +/***/ }), + +/***/ "./node_modules/next/link.js": +/*!***********************************!*\ + !*** ./node_modules/next/link.js ***! + \***********************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +eval("module.exports = __webpack_require__(/*! ./dist/client/link */ \"./node_modules/next/dist/client/link.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9saW5rLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBLHlHQUE4QyIsInNvdXJjZXMiOlsid2VicGFjazovL3ZpZS1yZWFjdC8uL25vZGVfbW9kdWxlcy9uZXh0L2xpbmsuanM/NzViMyJdLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vZGlzdC9jbGllbnQvbGluaycpXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/link.js\n"); + +/***/ }), + +/***/ "../../../server/denormalize-page-path": +/*!************************************************************!*\ + !*** external "next/dist/server/denormalize-page-path.js" ***! + \************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/server/denormalize-page-path.js"); + +/***/ }), + +/***/ "../i18n/normalize-locale-path": +/*!*********************************************************************!*\ + !*** external "next/dist/shared/lib/i18n/normalize-locale-path.js" ***! + \*********************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/shared/lib/i18n/normalize-locale-path.js"); + +/***/ }), + +/***/ "../mitt": +/*!***********************************************!*\ + !*** external "next/dist/shared/lib/mitt.js" ***! + \***********************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/shared/lib/mitt.js"); + +/***/ }), + +/***/ "../shared/lib/router-context": +/*!*********************************************************!*\ + !*** external "next/dist/shared/lib/router-context.js" ***! + \*********************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/shared/lib/router-context.js"); + +/***/ }), + +/***/ "../shared/lib/router/utils/get-asset-path-from-route": +/*!*********************************************************************************!*\ + !*** external "next/dist/shared/lib/router/utils/get-asset-path-from-route.js" ***! + \*********************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/shared/lib/router/utils/get-asset-path-from-route.js"); + +/***/ }), + +/***/ "./utils/get-middleware-regex": +/*!****************************************************************************!*\ + !*** external "next/dist/shared/lib/router/utils/get-middleware-regex.js" ***! + \****************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/shared/lib/router/utils/get-middleware-regex.js"); + +/***/ }), + +/***/ "./utils/is-dynamic": +/*!******************************************************************!*\ + !*** external "next/dist/shared/lib/router/utils/is-dynamic.js" ***! + \******************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/shared/lib/router/utils/is-dynamic.js"); + +/***/ }), + +/***/ "./utils/parse-relative-url": +/*!**************************************************************************!*\ + !*** external "next/dist/shared/lib/router/utils/parse-relative-url.js" ***! + \**************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/shared/lib/router/utils/parse-relative-url.js"); + +/***/ }), + +/***/ "./utils/querystring": +/*!*******************************************************************!*\ + !*** external "next/dist/shared/lib/router/utils/querystring.js" ***! + \*******************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/shared/lib/router/utils/querystring.js"); + +/***/ }), + +/***/ "./utils/resolve-rewrites": +/*!************************************************************************!*\ + !*** external "next/dist/shared/lib/router/utils/resolve-rewrites.js" ***! + \************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/shared/lib/router/utils/resolve-rewrites.js"); + +/***/ }), + +/***/ "./utils/route-matcher": +/*!*********************************************************************!*\ + !*** external "next/dist/shared/lib/router/utils/route-matcher.js" ***! + \*********************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/shared/lib/router/utils/route-matcher.js"); + +/***/ }), + +/***/ "./utils/route-regex": +/*!*******************************************************************!*\ + !*** external "next/dist/shared/lib/router/utils/route-regex.js" ***! + \*******************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/shared/lib/router/utils/route-regex.js"); + +/***/ }), + +/***/ "../shared/lib/utils": +/*!************************************************!*\ + !*** external "next/dist/shared/lib/utils.js" ***! + \************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/shared/lib/utils.js"); + +/***/ }), + +/***/ "next/head": +/*!****************************!*\ + !*** external "next/head" ***! + \****************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/head"); + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "react" ***! + \************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("react"); + +/***/ }), + +/***/ "react-is": +/*!***************************!*\ + !*** external "react-is" ***! + \***************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("react-is"); + +/***/ }), + +/***/ "react-slick": +/*!******************************!*\ + !*** external "react-slick" ***! + \******************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("react-slick"); + +/***/ }), + +/***/ "react-tsparticles": +/*!************************************!*\ + !*** external "react-tsparticles" ***! + \************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("react-tsparticles"); + +/***/ }), + +/***/ "react/jsx-dev-runtime": +/*!****************************************!*\ + !*** external "react/jsx-dev-runtime" ***! + \****************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("react/jsx-dev-runtime"); + +/***/ }), + +/***/ "styled-jsx/style": +/*!***********************************!*\ + !*** external "styled-jsx/style" ***! + \***********************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("styled-jsx/style"); + +/***/ }), + +/***/ "swiper": +/*!*************************!*\ + !*** external "swiper" ***! + \*************************/ +/***/ ((module) => { + +"use strict"; +module.exports = import("swiper");; + +/***/ }), + +/***/ "swiper/react": +/*!*******************************!*\ + !*** external "swiper/react" ***! + \*******************************/ +/***/ ((module) => { + +"use strict"; +module.exports = import("swiper/react");; + +/***/ }), + +/***/ "./src/data/app.json": +/*!***************************!*\ + !*** ./src/data/app.json ***! + \***************************/ +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('{"lightLogo":"/img/logo.png","darkLogo":"/img/logo.png","footerLogo":"/img/logo white.png","showLoading":true}'); + +/***/ }), + +/***/ "./src/data/sections/about-us3.json": +/*!******************************************!*\ + !*** ./src/data/sections/about-us3.json ***! + \******************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('{"id":1,"image1":"/img/01.jpg","image2":"/img/02.jpg","exp":{"nmb":8,"name":"Years Of Experience"},"title":{"first":"Unlimited Skills","second":"for Super Projects."},"content":{"first":"Why ? Business Hub At Business Hub, we understand the challenges entrepreneurs face when entering a new market.","second":"Our services are designed to facilitate the process of setting up businesses in the UAE, allowing you to focus on what you do best – driving the success of your business."},"smallTitle":"About Us"}'); + +/***/ }), + +/***/ "./src/data/sections/team.json": +/*!*************************************!*\ + !*** ./src/data/sections/team.json ***! + \*************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('{"teams":[{"id":1,"image":"/img/team/01.webp","title":"Stephanie Lawrence","sub":"CEO, Colabrio Media"},{"id":2,"image":"/img/team/02.webp","title":"Alex Regelman","sub":"CEO, Colabrio Media"},{"id":3,"image":"/img/team/03.webp","title":"Stacey Stamper","sub":"CEO, Colabrio Media"},{"id":4,"image":"/img/team/04.webp","title":"Stephanie Lawrence","sub":"CEO, Colabrio Media"},{"id":5,"image":"/img/team/05.webp","title":"Stephanie Lawrence","sub":"CEO, Colabrio Media"},{"id":6,"image":"/img/team/06.webp","title":"Alex Regelman","sub":"CEO, Colabrio Media"},{"id":7,"image":"/img/team/07.webp","title":"Stacey Stamper","sub":"CEO, Colabrio Media"},{"id":8,"image":"/img/team/08.webp","title":"Stephanie Lawrence","sub":"CEO, Colabrio Media"},{"id":9,"image":"/img/team/09.webp","title":"Stephanie Lawrence","sub":"CEO, Colabrio Media"},{"id":10,"image":"/img/team/10.webp","title":"Alex Regelman","sub":"CEO, Colabrio Media"},{"id":11,"image":"/img/team/11.webp","title":"Stacey Stamper","sub":"CEO, Colabrio Media"},{"id":12,"image":"/img/team/12.webp","title":"Stephanie Lawrence","sub":"CEO, Colabrio Media"}],"skills":[{"id":1,"text":"UI / UX Design","value":"90%"},{"id":2,"text":"Apps Development","value":"80%"}]}'); + +/***/ }), + +/***/ "./src/data/sections/works.json": +/*!**************************************!*\ + !*** ./src/data/sections/works.json ***! + \**************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('[{"id":1,"title":"art & illustration","secTex":"Innovation and Crafts","image":"/img/portfolio/metro/01.jpg","slug":"/project-details2/project-details2-dark"},{"id":2,"title":"art & illustration","secTex":"Inspiring new space","image":"/img/portfolio/metro/02.jpg","slug":"/project-details2/project-details2-dark"},{"id":3,"title":"art & illustration","secTex":"Natural plus modern","image":"/img/portfolio/metro/03.jpg","slug":"/project-details2/project-details2-dark"},{"id":4,"title":"art & illustration","secTex":"Innovation and Crafts","image":"/img/portfolio/metro/04.jpg","slug":"/project-details2/project-details2-dark"},{"id":5,"title":"art & illustration","secTex":"Natural plus modern","image":"/img/portfolio/metro/05.jpg","slug":"/project-details2/project-details2-dark"}]'); + +/***/ }) + +}; +; + +// load runtime +var __webpack_require__ = require("../webpack-runtime.js"); +__webpack_require__.C(exports); +var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) +var __webpack_exports__ = (__webpack_exec__("./src/pages/index.jsx")); +module.exports = __webpack_exports__; + +})(); \ No newline at end of file diff --git a/.next/server/webpack-runtime.js b/.next/server/webpack-runtime.js new file mode 100644 index 0000000..f0017be --- /dev/null +++ b/.next/server/webpack-runtime.js @@ -0,0 +1,168 @@ +/* + * 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/). + */ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({}); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ var threw = true; +/******/ try { +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ threw = false; +/******/ } finally { +/******/ if(threw) delete __webpack_module_cache__[moduleId]; +/******/ } +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/ensure chunk */ +/******/ (() => { +/******/ __webpack_require__.f = {}; +/******/ // This file contains only the entry chunk. +/******/ // The chunk loading function for additional chunks +/******/ __webpack_require__.e = (chunkId) => { +/******/ return Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => { +/******/ __webpack_require__.f[key](chunkId, promises); +/******/ return promises; +/******/ }, [])); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/get javascript chunk filename */ +/******/ (() => { +/******/ // This function allow to reference async chunks and sibling chunks for the entrypoint +/******/ __webpack_require__.u = (chunkId) => { +/******/ // return url for filenames based on template +/******/ return undefined; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/startup entrypoint */ +/******/ (() => { +/******/ __webpack_require__.X = (result, chunkIds, fn) => { +/******/ // arguments: chunkIds, moduleId are deprecated +/******/ var moduleId = chunkIds; +/******/ if(!fn) chunkIds = result, fn = () => (__webpack_require__(__webpack_require__.s = moduleId)); +/******/ chunkIds.map(__webpack_require__.e, __webpack_require__) +/******/ var r = fn(); +/******/ return r === undefined ? result : r; +/******/ } +/******/ })(); +/******/ +/******/ /* webpack/runtime/require chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded chunks +/******/ // "1" means "loaded", otherwise not loaded yet +/******/ var installedChunks = { +/******/ "webpack-runtime": 1 +/******/ }; +/******/ +/******/ // no on chunks loaded +/******/ +/******/ var installChunk = (chunk) => { +/******/ var moreModules = chunk.modules, chunkIds = chunk.ids, runtime = chunk.runtime; +/******/ for(var moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) runtime(__webpack_require__); +/******/ for(var i = 0; i < chunkIds.length; i++) +/******/ installedChunks[chunkIds[i]] = 1; +/******/ +/******/ }; +/******/ +/******/ // require() chunk loading for javascript +/******/ __webpack_require__.f.require = (chunkId, promises) => { +/******/ // "1" is the signal for "already loaded" +/******/ if(!installedChunks[chunkId]) { +/******/ if("webpack-runtime" != chunkId) { +/******/ installChunk(require("./" + __webpack_require__.u(chunkId))); +/******/ } else installedChunks[chunkId] = 1; +/******/ } +/******/ }; +/******/ +/******/ module.exports = __webpack_require__; +/******/ __webpack_require__.C = installChunk; +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ +/******/ })() +; \ No newline at end of file diff --git a/.next/static/chunks/_error.js b/.next/static/chunks/_error.js new file mode 100644 index 0000000..beaeb33 --- /dev/null +++ b/.next/static/chunks/_error.js @@ -0,0 +1,83 @@ +/* + * 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/). + */ +(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["/_error"],{ + +/***/ "./node_modules/next/dist/pages/_error.js": +/*!************************************************!*\ + !*** ./node_modules/next/dist/pages/_error.js ***! + \************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _classCallCheck = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\");\n\nvar _createClass = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\");\n\nvar _inherits = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/inherits */ \"./node_modules/@babel/runtime/helpers/inherits.js\");\n\nvar _possibleConstructorReturn = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/possibleConstructorReturn */ \"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\");\n\nvar _getPrototypeOf = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/getPrototypeOf */ \"./node_modules/@babel/runtime/helpers/getPrototypeOf.js\");\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _head = _interopRequireDefault(__webpack_require__(/*! ../shared/lib/head */ \"./node_modules/next/dist/shared/lib/head.js\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar statusCodes = {\n 400: 'Bad Request',\n 404: 'This page could not be found',\n 405: 'Method Not Allowed',\n 500: 'Internal Server Error'\n};\n\nfunction _getInitialProps(_ref) {\n var res = _ref.res,\n err = _ref.err;\n var statusCode = res && res.statusCode ? res.statusCode : err ? err.statusCode : 404;\n return {\n statusCode: statusCode\n };\n}\n\nvar Error = /*#__PURE__*/function (_react$default$Compon) {\n _inherits(Error, _react$default$Compon);\n\n var _super = _createSuper(Error);\n\n function Error() {\n _classCallCheck(this, Error);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Error, [{\n key: \"render\",\n value: function render() {\n var statusCode = this.props.statusCode;\n var title = this.props.title || statusCodes[statusCode] || 'An unexpected error has occurred';\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n style: styles.error\n }, /*#__PURE__*/_react[\"default\"].createElement(_head[\"default\"], null, /*#__PURE__*/_react[\"default\"].createElement(\"title\", null, statusCode ? \"\".concat(statusCode, \": \").concat(title) : 'Application error: a client-side exception has occurred')), /*#__PURE__*/_react[\"default\"].createElement(\"div\", null, /*#__PURE__*/_react[\"default\"].createElement(\"style\", {\n dangerouslySetInnerHTML: {\n __html: 'body { margin: 0 }'\n }\n }), statusCode ? /*#__PURE__*/_react[\"default\"].createElement(\"h1\", {\n style: styles.h1\n }, statusCode) : null, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n style: styles.desc\n }, /*#__PURE__*/_react[\"default\"].createElement(\"h2\", {\n style: styles.h2\n }, this.props.title || statusCode ? title : /*#__PURE__*/_react[\"default\"].createElement(_react[\"default\"].Fragment, null, \"Application error: a client-side exception has occurred (see the browser console for more information)\"), \".\"))));\n }\n }]);\n\n return Error;\n}(_react[\"default\"].Component);\n\nError.displayName = 'ErrorPage';\nError.getInitialProps = _getInitialProps;\nError.origGetInitialProps = _getInitialProps;\nexports[\"default\"] = Error;\nvar styles = {\n error: {\n color: '#000',\n background: '#fff',\n fontFamily: '-apple-system, BlinkMacSystemFont, Roboto, \"Segoe UI\", \"Fira Sans\", Avenir, \"Helvetica Neue\", \"Lucida Grande\", sans-serif',\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 textAlign: 'left',\n lineHeight: '49px',\n height: '49px',\n verticalAlign: 'middle'\n },\n h1: {\n display: 'inline-block',\n borderRight: '1px solid rgba(0, 0, 0,.3)',\n margin: 0,\n marginRight: '20px',\n padding: '10px 23px 10px 0',\n fontSize: '24px',\n fontWeight: 500,\n verticalAlign: 'top'\n },\n h2: {\n fontSize: '14px',\n fontWeight: 'normal',\n lineHeight: 'inherit',\n margin: 0,\n padding: 0\n }\n};\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3BhZ2VzL19lcnJvci5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDYkEsOENBQTZDO0FBQ3pDRyxFQUFBQSxLQUFLLEVBQUU7QUFEa0MsQ0FBN0M7QUFHQUQsa0JBQUEsR0FBa0IsS0FBSyxDQUF2Qjs7QUFDQSxJQUFJRSxNQUFNLEdBQUdDLHNCQUFzQixDQUFDQyxtQkFBTyxDQUFDLDRDQUFELENBQVIsQ0FBbkM7O0FBQ0EsSUFBSUMsS0FBSyxHQUFHRixzQkFBc0IsQ0FBQ0MsbUJBQU8sQ0FBQyx1RUFBRCxDQUFSLENBQWxDOztBQUNBLFNBQVNELHNCQUFULENBQWdDRyxHQUFoQyxFQUFxQztBQUNqQyxTQUFPQSxHQUFHLElBQUlBLEdBQUcsQ0FBQ0MsVUFBWCxHQUF3QkQsR0FBeEIsR0FBOEI7QUFDakMsZUFBU0E7QUFEd0IsR0FBckM7QUFHSDs7QUFDRCxJQUFNRSxXQUFXLEdBQUc7QUFDaEIsT0FBSyxhQURXO0FBRWhCLE9BQUssOEJBRlc7QUFHaEIsT0FBSyxvQkFIVztBQUloQixPQUFLO0FBSlcsQ0FBcEI7O0FBTUEsU0FBU0MsZ0JBQVQsT0FBMEM7QUFBQSxNQUFkQyxHQUFjLFFBQWRBLEdBQWM7QUFBQSxNQUFSQyxHQUFRLFFBQVJBLEdBQVE7QUFDdEMsTUFBTUMsVUFBVSxHQUFHRixHQUFHLElBQUlBLEdBQUcsQ0FBQ0UsVUFBWCxHQUF3QkYsR0FBRyxDQUFDRSxVQUE1QixHQUF5Q0QsR0FBRyxHQUFHQSxHQUFHLENBQUNDLFVBQVAsR0FBb0IsR0FBbkY7QUFDQSxTQUFPO0FBQ0hBLElBQUFBLFVBQVUsRUFBVkE7QUFERyxHQUFQO0FBR0g7O0lBQ0tDOzs7Ozs7Ozs7Ozs7O1dBQ0Ysa0JBQVM7QUFDTCxVQUFRRCxVQUFSLEdBQXdCLEtBQUtFLEtBQTdCLENBQVFGLFVBQVI7QUFDQSxVQUFNRyxLQUFLLEdBQUcsS0FBS0QsS0FBTCxDQUFXQyxLQUFYLElBQW9CUCxXQUFXLENB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LElBQUFBLFFBQVEsRUFBRSxNQU5WO0FBT0FDLElBQUFBLFVBQVUsRUFBRSxHQVBaO0FBUUFOLElBQUFBLGFBQWEsRUFBRTtBQVJmLEdBbkJPO0FBNkJYaEIsRUFBQUEsRUFBRSxFQUFFO0FBQ0FxQixJQUFBQSxRQUFRLEVBQUUsTUFEVjtBQUVBQyxJQUFBQSxVQUFVLEVBQUUsUUFGWjtBQUdBUCxJQUFBQSxVQUFVLEVBQUUsU0FIWjtBQUlBRyxJQUFBQSxNQUFNLEVBQUUsQ0FKUjtBQUtBRSxJQUFBQSxPQUFPLEVBQUU7QUFMVDtBQTdCTyxDQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvcGFnZXMvX2Vycm9yLmpzPzE4ZjIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7XG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xudmFyIF9oZWFkID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9oZWFkXCIpKTtcbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbmNvbnN0IHN0YXR1c0NvZGVzID0ge1xuICAgIDQwMDogJ0JhZCBSZXF1ZXN0JyxcbiAgICA0MDQ6ICdUaGlzIHBhZ2UgY291bGQgbm90IGJlIGZvdW5kJyxcbiAgICA0MDU6ICdNZXRob2QgTm90IEFsbG93ZWQnLFxuICAgIDUwMDogJ0ludGVybmFsIFNlcnZlciBFcnJvcidcbn07XG5mdW5jdGlvbiBfZ2V0SW5pdGlhbFByb3BzKHsgcmVzICwgZXJyICB9KSB7XG4gICAgY29uc3Qgc3RhdHVzQ29kZSA9IHJlcyAmJiByZXMuc3RhdHVzQ29kZSA/IHJlcy5zdGF0dXNDb2RlIDogZXJyID8gZXJyLnN0YXR1c0NvZGUgOiA0MDQ7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc3RhdHVzQ29kZVxuICAgIH07XG59XG5jbGFzcyBFcnJvciBleHRlbmRzIF9yZWFjdC5kZWZhdWx0LkNvbXBvbmVudCB7XG4gICAgcmVuZGVyKCkge1xuICAgICAgICBjb25zdCB7IHN0YXR1c0NvZGUgIH0gPSB0aGlzLnByb3BzO1xuICAgICAgICBjb25zdCB0aXRsZSA9IHRoaXMucHJvcHMudGl0bGUgfHwgc3RhdHVzQ29kZXNbc3RhdHVzQ29kZV0gfHwgJ0FuIHVuZXhwZWN0ZWQgZXJyb3IgaGFzIG9jY3VycmVkJztcbiAgICAgICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgICAgICBzdHlsZTogc3R5bGVzLmVycm9yXG4gICAgICAgIH0sIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChfaGVhZC5kZWZhdWx0LCBudWxsLCAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJ0aXRsZVwiLCBudWxsLCBzdGF0dXNDb2RlID8gYCR7c3RhdHVzQ29kZX06ICR7dGl0bGV9YCA6ICdBcHBsaWNhdGlvbiBlcnJvcjogYSBjbGllbnQtc2lkZSBleGNlcHRpb24gaGFzIG9jY3VycmVkJykpLCAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgbnVsbCwgLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwic3R5bGVcIiwge1xuICAgICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6IHtcbiAgICAgICAgICAgICAgICBfX2h0bWw6ICdib2R5IHsgbWFyZ2luOiAwIH0nXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLCBzdGF0dXNDb2RlID8gLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiaDFcIiwge1xuICAgICAgICAgICAgc3R5bGU6IHN0eWxlcy5oMVxuICAgICAgICB9LCBzdGF0dXNDb2RlKSA6IG51bGwsIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgICAgICBzdHlsZTogc3R5bGVzLmRlc2NcbiAgICAgICAgfSwgLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiaDJcIiwge1xuICAgICAgICAgICAgc3R5bGU6IHN0eWxlcy5oMlxuICAgICAgICB9LCB0aGlzLnByb3BzLnRpdGxlIHx8IHN0YXR1c0NvZGUgPyB0aXRsZSA6IC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChfcmVhY3QuZGVmYXVsdC5GcmFnbWVudCwgbnVsbCwgXCJBcHBsaWNhdGlvbiBlcnJvcjogYSBjbGllbnQtc2lkZSBleGNlcHRpb24gaGFzIG9jY3VycmVkIChzZWUgdGhlIGJyb3dzZXIgY29uc29sZSBmb3IgbW9yZSBpbmZvcm1hdGlvbilcIiksIFwiLlwiKSkpKSk7XG4gICAgfVxufVxuRXJyb3IuZGlzcGxheU5hbWUgPSAnRXJyb3JQYWdlJztcbkVycm9yLmdldEluaXRpYWxQcm9wcyA9IF9nZXRJbml0aWFsUHJvcHM7XG5FcnJvci5vcmlnR2V0SW5pdGlhbFByb3BzID0gX2dldEluaXRpYWxQcm9wcztcbmV4cG9ydHMuZGVmYXVsdCA9IEVycm9yO1xuY29uc3Qgc3R5bGVzID0ge1xuICAgIGVycm9yOiB7XG4gICAgICAgIGNvbG9yOiAnIzAwMCcsXG4gICAgICAgIGJhY2tncm91bmQ6ICcjZmZmJyxcbiAgICAgICAgZm9udEZhbWlseTogJy1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgUm9ib3RvLCBcIlNlZ29lIFVJXCIsIFwiRmlyYSBTYW5zXCIsIEF2ZW5pciwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkx1Y2lkYSBHcmFuZGVcIiwgc2Fucy1zZXJpZicsXG4gICAgICAgIGhlaWdodDogJzEwMHZoJyxcbiAgICAgICAgdGV4dEFsaWduOiAnY2VudGVyJyxcbiAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJ1xuICAgIH0sXG4gICAgZGVzYzoge1xuICAgICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICAgICAgdGV4dEFsaWduOiAnbGVmdCcsXG4gICAgICAgIGxpbmVIZWlnaHQ6ICc0OXB4JyxcbiAgICAgICAgaGVpZ2h0OiAnNDlweCcsXG4gICAgICAgIHZlcnRpY2FsQWxpZ246ICdtaWRkbGUnXG4gICAgfSxcbiAgICBoMToge1xuICAgICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICAgICAgYm9yZGVyUmlnaHQ6ICcxcHggc29saWQgcmdiYSgwLCAwLCAwLC4zKScsXG4gICAgICAgIG1hcmdpbjogMCxcbiAgICAgICAgbWFyZ2luUmlnaHQ6ICcyMHB4JyxcbiAgICAgICAgcGFkZGluZzogJzEwcHggMjNweCAxMHB4IDAnLFxuICAgICAgICBmb250U2l6ZTogJzI0cHgnLFxuICAgICAgICBmb250V2VpZ2h0OiA1MDAsXG4gICAgICAgIHZlcnRpY2FsQWxpZ246ICd0b3AnXG4gICAgfSxcbiAgICBoMjoge1xuICAgICAgICBmb250U2l6ZTogJzE0cHgnLFxuICAgICAgICBmb250V2VpZ2h0OiAnbm9ybWFsJyxcbiAgICAgICAgbGluZUhlaWdodDogJ2luaGVyaXQnLFxuICAgICAgICBtYXJnaW46IDAsXG4gICAgICAgIHBhZGRpbmc6IDBcbiAgICB9XG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1fZXJyb3IuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfaGVhZCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJzdGF0dXNDb2RlcyIsIl9nZXRJbml0aWFsUHJvcHMiLCJyZXMiLCJlcnIiLCJzdGF0dXNDb2RlIiwiRXJyb3IiLCJwcm9wcyIsInRpdGxlIiwiY3JlYXRlRWxlbWVudCIsInN0eWxlIiwic3R5bGVzIiwiZXJyb3IiLCJkYW5nZXJvdXNseVNldElubmVySFRNTCIsIl9faHRtbCIsImgxIiwiZGVzYyIsImgyIiwiRnJhZ21lbnQiLCJDb21wb25lbnQiLCJkaXNwbGF5TmFtZSIsImdldEluaXRpYWxQcm9wcyIsIm9yaWdHZXRJbml0aWFsUHJvcHMiLCJjb2xvciIsImJhY2tncm91bmQiLCJmb250RmFtaWx5IiwiaGVpZ2h0IiwidGV4dEFsaWduIiwiZGlzcGxheSIsImZsZXhEaXJlY3Rpb24iLCJhbGlnbkl0ZW1zIiwianVzdGlmeUNvbnRlbnQiLCJsaW5lSGVpZ2h0IiwidmVydGljYWxBbGlnbiIsImJvcmRlclJpZ2h0IiwibWFyZ2luIiwibWFyZ2luUmlnaHQiLCJwYWRkaW5nIiwiZm9udFNpemUiLCJmb250V2VpZ2h0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/pages/_error.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/amp-context.js": +/*!**********************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/amp-context.js ***! + \**********************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.AmpStateContext = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar AmpStateContext = _react[\"default\"].createContext({});\n\nexports.AmpStateContext = AmpStateContext;\n\nif (true) {\n AmpStateContext.displayName = 'AmpStateContext';\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvYW1wLWNvbnRleHQuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCx1QkFBQSxHQUEwQixLQUFLLENBQS9COztBQUNBLElBQUlHLE1BQU0sR0FBR0Msc0JBQXNCLENBQUNDLG1CQUFPLENBQUMsNENBQUQsQ0FBUixDQUFuQzs7QUFDQSxTQUFTRCxzQkFBVCxDQUFnQ0UsR0FBaEMsRUFBcUM7QUFDakMsU0FBT0EsR0FBRyxJQUFJQSxHQUFHLENBQUNDLFVBQVgsR0FBd0JELEdBQXhCLEdBQThCO0FBQ2pDLGVBQVNBO0FBRHdCLEdBQXJDO0FBR0g7O0FBQ0QsSUFBTUosZUFBZSxHQUFHQyxNQUFNLFdBQU4sQ0FBZUssYUFBZixDQUE2QixFQUE3QixDQUF4Qjs7QUFFQVIsdUJBQUEsR0FBMEJFLGVBQTFCOztBQUNBLElBQUksTUFBdUM7QUFDdkNBLEVBQUFBLGVBQWUsQ0FBQ08sV0FBaEIsR0FBOEIsaUJBQTlCO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zaGFyZWQvbGliL2FtcC1jb250ZXh0LmpzP2U1YTciXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLkFtcFN0YXRlQ29udGV4dCA9IHZvaWQgMDtcbnZhciBfcmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5jb25zdCBBbXBTdGF0ZUNvbnRleHQgPSBfcmVhY3QuZGVmYXVsdC5jcmVhdGVDb250ZXh0KHtcbn0pO1xuZXhwb3J0cy5BbXBTdGF0ZUNvbnRleHQgPSBBbXBTdGF0ZUNvbnRleHQ7XG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIEFtcFN0YXRlQ29udGV4dC5kaXNwbGF5TmFtZSA9ICdBbXBTdGF0ZUNvbnRleHQnO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hbXAtY29udGV4dC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJBbXBTdGF0ZUNvbnRleHQiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIm9iaiIsIl9fZXNNb2R1bGUiLCJjcmVhdGVDb250ZXh0IiwiZGlzcGxheU5hbWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/amp-context.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/amp.js": +/*!**************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/amp.js ***! + \**************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _s = $RefreshSig$();\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.isInAmpMode = isInAmpMode;\nexports.useAmp = useAmp;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _ampContext = __webpack_require__(/*! ./amp-context */ \"./node_modules/next/dist/shared/lib/amp-context.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction isInAmpMode() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$ampFirst = _ref.ampFirst,\n ampFirst = _ref$ampFirst === void 0 ? false : _ref$ampFirst,\n _ref$hybrid = _ref.hybrid,\n hybrid = _ref$hybrid === void 0 ? false : _ref$hybrid,\n _ref$hasQuery = _ref.hasQuery,\n hasQuery = _ref$hasQuery === void 0 ? false : _ref$hasQuery;\n\n return ampFirst || hybrid && hasQuery;\n}\n\nfunction useAmp() {\n _s();\n\n // Don't assign the context value to a variable to save bytes\n return isInAmpMode(_react[\"default\"].useContext(_ampContext.AmpStateContext));\n}\n\n_s(useAmp, \"gDsCjeeItUuvgOWf1v4qoK9RF6k=\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvYW1wLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7OztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxtQkFBQSxHQUFzQkUsV0FBdEI7QUFDQUYsY0FBQSxHQUFpQkcsTUFBakI7O0FBQ0EsSUFBSUMsTUFBTSxHQUFHQyxzQkFBc0IsQ0FBQ0MsbUJBQU8sQ0FBQyw0Q0FBRCxDQUFSLENBQW5DOztBQUNBLElBQUlDLFdBQVcsR0FBR0QsbUJBQU8sQ0FBQyx5RUFBRCxDQUF6Qjs7QUFDQSxTQUFTRCxzQkFBVCxDQUFnQ0csR0FBaEMsRUFBcUM7QUFDakMsU0FBT0EsR0FBRyxJQUFJQSxHQUFHLENBQUNDLFVBQVgsR0FBd0JELEdBQXhCLEdBQThCO0FBQ2pDLGVBQVNBO0FBRHdCLEdBQXJDO0FBR0g7O0FBQ0QsU0FBU04sV0FBVCxHQUNHO0FBQUEsaUZBRDZFLEVBQzdFO0FBQUEsMkJBRG9CUSxRQUNwQjtBQUFBLE1BRG9CQSxRQUNwQiw4QkFEOEIsS0FDOUI7QUFBQSx5QkFEc0NDLE1BQ3RDO0FBQUEsTUFEc0NBLE1BQ3RDLDRCQUQ4QyxLQUM5QztBQUFBLDJCQURzREMsUUFDdEQ7QUFBQSxNQURzREEsUUFDdEQsOEJBRGdFLEtBQ2hFOztBQUNDLFNBQU9GLFFBQVEsSUFBSUMsTUFBTSxJQUFJQyxRQUE3QjtBQUNIOztBQUNELFNBQVNULE1BQVQsR0FBa0I7QUFBQTs7QUFDZDtBQUNBLFNBQU9ELFdBQVcsQ0FBQ0UsTUFBTSxXQUFOLENBQWVTLFVBQWYsQ0FBMEJOLFdBQVcsQ0FBQ08sZUFBdEMsQ0FBRCxDQUFsQjtBQUNIOztHQUhRWCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvYW1wLmpzPzVlNGYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmlzSW5BbXBNb2RlID0gaXNJbkFtcE1vZGU7XG5leHBvcnRzLnVzZUFtcCA9IHVzZUFtcDtcbnZhciBfcmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG52YXIgX2FtcENvbnRleHQgPSByZXF1aXJlKFwiLi9hbXAtY29udGV4dFwiKTtcbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGlzSW5BbXBNb2RlKHsgYW1wRmlyc3QgPWZhbHNlICwgaHlicmlkID1mYWxzZSAsIGhhc1F1ZXJ5ID1mYWxzZSAsICB9ID0ge1xufSkge1xuICAgIHJldHVybiBhbXBGaXJzdCB8fCBoeWJyaWQgJiYgaGFzUXVlcnk7XG59XG5mdW5jdGlvbiB1c2VBbXAoKSB7XG4gICAgLy8gRG9uJ3QgYXNzaWduIHRoZSBjb250ZXh0IHZhbHVlIHRvIGEgdmFyaWFibGUgdG8gc2F2ZSBieXRlc1xuICAgIHJldHVybiBpc0luQW1wTW9kZShfcmVhY3QuZGVmYXVsdC51c2VDb250ZXh0KF9hbXBDb250ZXh0LkFtcFN0YXRlQ29udGV4dCkpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hbXAuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiaXNJbkFtcE1vZGUiLCJ1c2VBbXAiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9hbXBDb250ZXh0Iiwib2JqIiwiX19lc01vZHVsZSIsImFtcEZpcnN0IiwiaHlicmlkIiwiaGFzUXVlcnkiLCJ1c2VDb250ZXh0IiwiQW1wU3RhdGVDb250ZXh0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/amp.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/head.js": +/*!***************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/head.js ***! + \***************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _defineProperty = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/defineProperty.js\");\n\nvar _s = $RefreshSig$();\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.defaultHead = defaultHead;\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _sideEffect = _interopRequireDefault(__webpack_require__(/*! ./side-effect */ \"./node_modules/next/dist/shared/lib/side-effect.js\"));\n\nvar _ampContext = __webpack_require__(/*! ./amp-context */ \"./node_modules/next/dist/shared/lib/amp-context.js\");\n\nvar _headManagerContext = __webpack_require__(/*! ./head-manager-context */ \"./node_modules/next/dist/shared/lib/head-manager-context.js\");\n\nvar _amp = __webpack_require__(/*! ./amp */ \"./node_modules/next/dist/shared/lib/amp.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n return newObj;\n }\n}\n\nfunction defaultHead() {\n var inAmpMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var head = [/*#__PURE__*/_react[\"default\"].createElement(\"meta\", {\n charSet: \"utf-8\"\n })];\n\n if (!inAmpMode) {\n head.push( /*#__PURE__*/_react[\"default\"].createElement(\"meta\", {\n name: \"viewport\",\n content: \"width=device-width\"\n }));\n }\n\n return head;\n}\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 } // Adds support for React.Fragment\n\n\n if (child.type === _react[\"default\"].Fragment) {\n return list.concat(_react[\"default\"].Children.toArray(child.props.children).reduce(function (fragmentList, fragmentChild) {\n if (typeof fragmentChild === 'string' || typeof fragmentChild === 'number') {\n return fragmentList;\n }\n\n return fragmentList.concat(fragmentChild);\n }, []));\n }\n\n return list.concat(child);\n}\n\nvar METATYPES = ['name', 'httpEquiv', 'charSet', 'itemProp'];\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*/\n\nfunction unique() {\n var keys = new Set();\n var tags = new Set();\n var metaTypes = new Set();\n var metaCategories = {};\n return function (h) {\n var isUnique = true;\n var hasKey = false;\n\n if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {\n hasKey = true;\n var key = h.key.slice(h.key.indexOf('$') + 1);\n\n if (keys.has(key)) {\n isUnique = false;\n } else {\n keys.add(key);\n }\n } // eslint-disable-next-line default-case\n\n\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\n break;\n\n case 'meta':\n for (var i = 0, len = METATYPES.length; i < len; i++) {\n var metatype = METATYPES[i];\n if (!h.props.hasOwnProperty(metatype)) continue;\n\n if (metatype === 'charSet') {\n if (metaTypes.has(metatype)) {\n isUnique = false;\n } else {\n metaTypes.add(metatype);\n }\n } else {\n var category = h.props[metatype];\n var categories = metaCategories[metatype] || new Set();\n\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\n break;\n }\n\n return isUnique;\n };\n}\n/**\n *\n * @param headElements List of multiple <Head> instances\n */\n\n\nfunction reduceComponents(headElements, props) {\n return headElements.reduce(function (list, headElement) {\n var headElementChildren = _react[\"default\"].Children.toArray(headElement.props.children);\n\n return list.concat(headElementChildren);\n }, []).reduce(onlyReactElement, []).reverse().concat(defaultHead(props.inAmpMode)).filter(unique()).reverse().map(function (c, i) {\n var key = c.key || i;\n\n if (false) { var newProps; }\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(c, {\n key: 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 */\n\n\nfunction Head(_ref) {\n _s();\n\n var children = _ref.children;\n var ampState = (0, _react).useContext(_ampContext.AmpStateContext);\n var headManager = (0, _react).useContext(_headManagerContext.HeadManagerContext);\n return /*#__PURE__*/_react[\"default\"].createElement(_sideEffect[\"default\"], {\n reduceComponentsToState: reduceComponents,\n headManager: headManager,\n inAmpMode: (0, _amp).isInAmpMode(ampState)\n }, children);\n}\n\n_s(Head, \"sCUayZmr5V93tUjujy03KdMBCec=\");\n\n_c = Head;\nvar _default = Head;\nexports[\"default\"] = _default;\n\nvar _c;\n\n$RefreshReg$(_c, \"Head\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaGVhZC5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7Ozs7Ozs7Ozs7QUFDYkEsOENBQTZDO0FBQ3pDRyxFQUFBQSxLQUFLLEVBQUU7QUFEa0MsQ0FBN0M7QUFHQUQsbUJBQUEsR0FBc0JFLFdBQXRCO0FBQ0FGLGtCQUFBLEdBQWtCLEtBQUssQ0FBdkI7O0FBQ0EsSUFBSUcsTUFBTSxHQUFHQyx1QkFBdUIsQ0FBQ0MsbUJBQU8sQ0FBQyw0Q0FBRCxDQUFSLENBQXBDOztBQUNBLElBQUlDLFdBQVcsR0FBR0Msc0JBQXNCLENBQUNGLG1CQUFPLENBQUMseUVBQUQsQ0FBUixDQUF4Qzs7QUFDQSxJQUFJRyxXQUFXLEdBQUdILG1CQUFPLENBQUMseUVBQUQsQ0FBekI7O0FBQ0EsSUFBSUksbUJBQW1CLEdBQUdKLG1CQUFPLENBQUMsMkZBQUQsQ0FBakM7O0FBQ0EsSUFBSUssSUFBSSxHQUFHTCxtQkFBTyxDQUFDLHlEQUFELENBQWxCOztBQUNBLFNBQVNFLHNCQUFULENBQWdDSSxHQUFoQyxFQUFxQztBQUNqQyxTQUFPQSxHQUFHLElBQUlBLEdBQUcsQ0FBQ0MsVUFBWCxHQUF3QkQsR0FBeEIsR0FBOEI7QUFDakMsZUFBU0E7QUFEd0IsR0FBckM7QUFHSDs7QUFDRCxTQUFTUCx1QkFBVCxDQUFpQ08sR0FBakMsRUFBc0M7QUFDbEMsTUFBSUEsR0FBRyxJQUFJQSxHQUFHLENBQUNDLFVBQWYsRUFBMkI7QUFDdkIsV0FBT0QsR0FBUDtBQUNILEdBRkQsTUFFTztBQUNILFFBQUlFLE1BQU0sR0FBRyxFQUFiOztBQUVBLFFBQUlGLEdBQUcsSUFBSSxJQUFYLEVBQWlCO0FBQ2IsV0FBSSxJQUFJRyxHQUFSLElBQWVILEdBQWYsRUFBbUI7QUFDZixZQUFJYixNQUFNLENBQUNpQixTQUFQLENBQWlCQyxjQUFqQixDQUFnQ0MsSUFBaEMsQ0FBcUNOLEdBQXJDLEVBQTBDRyxHQUExQyxDQUFKLEVBQW9EO0FBQ2hELGNB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cyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9oZWFkLmpzP2ZiNWQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHRIZWFkID0gZGVmYXVsdEhlYWQ7XG5leHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7XG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcbnZhciBfc2lkZUVmZmVjdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vc2lkZS1lZmZlY3RcIikpO1xudmFyIF9hbXBDb250ZXh0ID0gcmVxdWlyZShcIi4vYW1wLWNvbnRleHRcIik7XG52YXIgX2hlYWRNYW5hZ2VyQ29udGV4dCA9IHJlcXVpcmUoXCIuL2hlYWQtbWFuYWdlci1jb250ZXh0XCIpO1xudmFyIF9hbXAgPSByZXF1aXJlKFwiLi9hbXBcIik7XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHtcbiAgICBpZiAob2JqICYmIG9iai5fX2VzTW9kdWxlKSB7XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIG5ld09iaiA9IHtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKG9iaiAhPSBudWxsKSB7XG4gICAgICAgICAgICBmb3IodmFyIGtleSBpbiBvYmope1xuICAgICAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBkZXNjID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IHtcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3T2JqW2tleV0gPSBvYmpba2V5XTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBuZXdPYmouZGVmYXVsdCA9IG9iajtcbiAgICAgICAgcmV0dXJuIG5ld09iajtcbiAgICB9XG59XG5mdW5jdGlvbiBkZWZhdWx0SGVhZChpbkFtcE1vZGUgPSBmYWxzZSkge1xuICAgIGNvbnN0IGhlYWQgPSBbXG4gICAgICAgIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChcIm1ldGFcIiwge1xuICAgICAgICAgICAgY2hhclNldDogXCJ1dGYtOFwiXG4gICAgICAgIH0pXG4gICAgXTtcbiAgICBpZiAoIWluQW1wTW9kZSkge1xuICAgICAgICBoZWFkLnB1c2goLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwibWV0YVwiLCB7XG4gICAgICAgICAgICBuYW1lOiBcInZpZXdwb3J0XCIsXG4gICAgICAgICAgICBjb250ZW50OiBcIndpZHRoPWRldmljZS13aWR0aFwiXG4gICAgICAgIH0pKTtcbiAgICB9XG4gICAgcmV0dXJuIGhlYWQ7XG59XG5mdW5jdGlvbiBvbmx5UmVhY3RFbGVtZW50KGxpc3QsIGNoaWxkKSB7XG4gICAgLy8gUmVhY3QgY2hpbGRyZW4gY2FuIGJlIFwic3RyaW5nXCIgb3IgXCJudW1iZXJcIiBpbiB0aGlzIGNhc2Ugd2UgaWdub3JlIHRoZW0gZm9yIGJhY2t3YXJkcyBjb21wYXRcbiAgICBpZiAodHlwZW9mIGNoaWxkID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgY2hpbGQgPT09ICdudW1iZXInKSB7XG4gICAgICAgIHJldHVybiBsaXN0O1xuICAgIH1cbiAgICAvLyBBZGRzIHN1cHBvcnQgZm9yIFJlYWN0LkZyYWdtZW50XG4gICAgaWYgKGNoaWxkLnR5cGUgPT09IF9yZWFjdC5kZWZhdWx0LkZyYWdtZW50KSB7XG4gICAgICAgIHJldHVybiBsaXN0LmNvbmNhdChfcmVhY3QuZGVmYXVsdC5DaGlsZHJlbi50b0FycmF5KGNoaWxkLnByb3BzLmNoaWxkcmVuKS5yZWR1Y2UoKGZyYWdtZW50TGlzdCwgZnJhZ21lbnRDaGlsZCk9PntcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZnJhZ21lbnRDaGlsZCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIGZyYWdtZW50Q2hpbGQgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZyYWdtZW50TGlzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmcmFnbWVudExpc3QuY29uY2F0KGZyYWdtZW50Q2hpbGQpO1xuICAgICAgICB9LCBbXSkpO1xuICAgIH1cbiAgICByZXR1cm4gbGlzdC5jb25jYXQoY2hpbGQpO1xufVxuY29uc3QgTUVUQVRZUEVTID0gW1xuICAgICduYW1lJyxcbiAgICAnaHR0cEVxdWl2JyxcbiAgICAnY2hhclNldCcsXG4gICAgJ2l0ZW1Qcm9wJ1xuXTtcbi8qXG4gcmV0dXJucyBhIGZ1bmN0aW9uIGZvciBmaWx0ZXJpbmcgaGVhZCBjaGlsZCBlbGVtZW50c1xuIHdoaWNoIHNob3VsZG4ndCBiZSBkdXBsaWNhdGVkLCBsaWtlIDx0aXRsZS8+XG4gQWxzbyBhZGRzIHN1cHBvcnQgZm9yIGRlZHVwbGljYXRlZCBga2V5YCBwcm9wZXJ0aWVzXG4qLyBmdW5jdGlvbiB1bmlxdWUoKSB7XG4gICAgY29uc3Qga2V5cyA9IG5ldyBTZXQoKTtcbiAgICBjb25zdCB0YWdzID0gbmV3IFNldCgpO1xuICAgIGNvbnN0IG1ldGFUeXBlcyA9IG5ldyBTZXQoKTtcbiAgICBjb25zdCBtZXRhQ2F0ZWdvcmllcyA9IHtcbiAgICB9O1xuICAgIHJldHVybiAoaCk9PntcbiAgICAgICAgbGV0IGlzVW5pcXVlID0gdHJ1ZTtcbiAgICAgICAgbGV0IGhhc0tleSA9IGZhbHNlO1xuICAgICAgICBpZiAoaC5rZXkgJiYgdHlwZW9mIGgua2V5ICE9PSAnbnVtYmVyJyAmJiBoLmtleS5pbmRleE9mKCckJykgPiAwKSB7XG4gICAgICAgICAgICBoYXNLZXkgPSB0cnVlO1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gaC5rZXkuc2xpY2UoaC5rZXkuaW5kZXhPZignJCcpICsgMSk7XG4gICAgICAgICAgICBpZiAoa2V5cy5oYXMoa2V5KSkge1xuICAgICAgICAgICAgICAgIGlzVW5pcXVlID0gZmFsc2U7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGtleXMuYWRkKGtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGRlZmF1bHQtY2FzZVxuICAgICAgICBzd2l0Y2goaC50eXBlKXtcbiAgICAgICAgICAgIGNhc2UgJ3RpdGxlJzpcbiAgICAgICAgICAgIGNhc2UgJ2Jhc2UnOlxuICAgICAgICAgICAgICAgIGlmICh0YWdzLmhhcyhoLnR5cGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlzVW5pcXVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGFncy5hZGQoaC50eXBlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtZXRhJzpcbiAgICAgICAgICAgICAgICBmb3IobGV0IGkgPSAwLCBsZW4gPSBNRVRBVFlQRVMubGVuZ3RoOyBpIDwgbGVuOyBpKyspe1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtZXRhdHlwZSA9IE1FVEFUWVBFU1tpXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFoLnByb3BzLmhhc093blByb3BlcnR5KG1ldGF0eXBlKSkgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChtZXRhdHlwZSA9PT0gJ2NoYXJTZXQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobWV0YVR5cGVzLmhhcyhtZXRhdHlwZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1VuaXF1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhVHlwZXMuYWRkKG1ldGF0eXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNhdGVnb3J5ID0gaC5wcm9wc1ttZXRhdHlwZV07XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjYXRlZ29yaWVzID0gbWV0YUNhdGVnb3JpZXNbbWV0YXR5cGVdIHx8IG5ldyBTZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgobWV0YXR5cGUgIT09ICduYW1lJyB8fCAhaGFzS2V5KSAmJiBjYXRlZ29yaWVzLmhhcyhjYXRlZ29yeSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1VuaXF1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yaWVzLmFkZChjYXRlZ29yeSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YUNhdGVnb3JpZXNbbWV0YXR5cGVdID0gY2F0ZWdvcmllcztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNVbmlxdWU7XG4gICAgfTtcbn1cbi8qKlxuICpcbiAqIEBwYXJhbSBoZWFkRWxlbWVudHMgTGlzdCBvZiBtdWx0aXBsZSA8SGVhZD4gaW5zdGFuY2VzXG4gKi8gZnVuY3Rpb24gcmVkdWNlQ29tcG9uZW50cyhoZWFkRWxlbWVudHMsIHByb3BzKSB7XG4gICAgcmV0dXJuIGhlYWRFbGVtZW50cy5yZWR1Y2UoKGxpc3QsIGhlYWRFbGVtZW50KT0+e1xuICAgICAgICBjb25zdCBoZWFkRWxlbWVudENoaWxkcmVuID0gX3JlYWN0LmRlZmF1bHQuQ2hpbGRyZW4udG9BcnJheShoZWFkRWxlbWVudC5wcm9wcy5jaGlsZHJlbik7XG4gICAgICAgIHJldHVybiBsaXN0LmNvbmNhdChoZWFkRWxlbWVudENoaWxkcmVuKTtcbiAgICB9LCBbXSkucmVkdWNlKG9ubHlSZWFjdEVsZW1lbnQsIFtdKS5yZXZlcnNlKCkuY29uY2F0KGRlZmF1bHRIZWFkKHByb3BzLmluQW1wTW9kZSkpLmZpbHRlcih1bmlxdWUoKSkucmV2ZXJzZSgpLm1hcCgoYywgaSk9PntcbiAgICAgICAgY29uc3Qga2V5ID0gYy5rZXkgfHwgaTtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAnZGV2ZWxvcG1lbnQnICYmIHByb2Nlc3MuZW52Ll9fTkVYVF9PUFRJTUlaRV9GT05UUyAmJiAhcHJvcHMuaW5BbXBNb2RlKSB7XG4gICAgICAgICAgICBpZiAoYy50eXBlID09PSAnbGluaycgJiYgYy5wcm9wc1snaHJlZiddICYmIC8vIFRPRE8ocHJhdGVla2JoQCk6IFJlcGxhY2UgdGhpcyB3aXRoIGNvbnN0IGZyb20gYGNvbnN0YW50c2Agd2hlbiB0aGUgdHJlZSBzaGFraW5nIHdvcmtzLlxuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzcycsXG4gICAgICAgICAgICAgICAgJ2h0dHBzOi8vdXNlLnR5cGVraXQubmV0LydcbiAgICAgICAgICAgIF0uc29tZSgodXJsKT0+Yy5wcm9wc1snaHJlZiddLnN0YXJ0c1dpdGgodXJsKVxuICAgICAgICAgICAgKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld1Byb3BzID0ge1xuICAgICAgICAgICAgICAgICAgICAuLi5jLnByb3BzIHx8IHtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgbmV3UHJvcHNbJ2RhdGEtaHJlZiddID0gbmV3UHJvcHNbJ2hyZWYnXTtcbiAgICAgICAgICAgICAgICBuZXdQcm9wc1snaHJlZiddID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIC8vIEFkZCB0aGlzIGF0dHJpYnV0ZSB0byBtYWtlIGl0IGVhc3kgdG8gaWRlbnRpZnkgb3B0aW1pemVkIHRhZ3NcbiAgICAgICAgICAgICAgICBuZXdQcm9wc1snZGF0YS1vcHRpbWl6ZWQtZm9udHMnXSA9IHRydWU7XG4gICAgICAgICAgICAgICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY2xvbmVFbGVtZW50KGMsIG5ld1Byb3BzKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY2xvbmVFbGVtZW50KGMsIHtcbiAgICAgICAgICAgIGtleVxuICAgICAgICB9KSk7XG4gICAgfSk7XG59XG4vKipcbiAqIFRoaXMgY29tcG9uZW50IGluamVjdHMgZWxlbWVudHMgdG8gYDxoZWFkPmAgb2YgeW91ciBwYWdlLlxuICogVG8gYXZvaWQgZHVwbGljYXRlZCBgdGFnc2AgaW4gYDxoZWFkPmAgeW91IGNhbiB1c2UgdGhlIGBrZXlgIHByb3BlcnR5LCB3aGljaCB3aWxsIG1ha2Ugc3VyZSBldmVyeSB0YWcgaXMgb25seSByZW5kZXJlZCBvbmNlLlxuICovIGZ1bmN0aW9uIEhlYWQoeyBjaGlsZHJlbiAgfSkge1xuICAgIGNvbnN0IGFtcFN0YXRlID0gKDAsIF9yZWFjdCkudXNlQ29udGV4dChfYW1wQ29udGV4dC5BbXBTdGF0ZUNvbnRleHQpO1xuICAgIGNvbnN0IGhlYWRNYW5hZ2VyID0gKDAsIF9yZWFjdCkudXNlQ29udGV4dChfaGVhZE1hbmFnZXJDb250ZXh0LkhlYWRNYW5hZ2VyQ29udGV4dCk7XG4gICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChfc2lkZUVmZmVjdC5kZWZhdWx0LCB7XG4gICAgICAgIHJlZHVjZUNvbXBvbmVudHNUb1N0YXRlOiByZWR1Y2VDb21wb25lbnRzLFxuICAgICAgICBoZWFkTWFuYWdlcjogaGVhZE1hbmFnZXIsXG4gICAgICAgIGluQW1wTW9kZTogKDAsIF9hbXApLmlzSW5BbXBNb2RlKGFtcFN0YXRlKVxuICAgIH0sIGNoaWxkcmVuKSk7XG59XG52YXIgX2RlZmF1bHQgPSBIZWFkO1xuZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhlYWQuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiZGVmYXVsdEhlYWQiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc2lkZUVmZmVjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfYW1wQ29udGV4dCIsIl9oZWFkTWFuYWdlckNvbnRleHQiLCJfYW1wIiwib2JqIiwiX19lc01vZHVsZSIsIm5ld09iaiIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJnZXQiLCJzZXQiLCJpbkFtcE1vZGUiLCJoZWFkIiwiY3JlYXRlRWxlbWVudCIsImNoYXJTZXQiLCJwdXNoIiwibmFtZSIsImNvbnRlbnQiLCJvbmx5UmVhY3RFbGVtZW50IiwibGlzdCIsImNoaWxkIiwidHlwZSIsIkZyYWdtZW50IiwiY29uY2F0IiwiQ2hpbGRyZW4iLCJ0b0FycmF5IiwicHJvcHMiLCJjaGlsZHJlbiIsInJlZHVjZSIsImZyYWdtZW50TGlzdCIsImZyYWdtZW50Q2hpbGQiLCJNRVRBVFlQRVMiLCJ1bmlxdWUiLCJrZXlzIiwiU2V0IiwidGFncyIsIm1ldGFUeXBlcyIsIm1ldGFDYXRlZ29yaWVzIiwiaCIsImlzVW5pcXVlIiwiaGFzS2V5IiwiaW5kZXhPZiIsInNsaWNlIiwiaGFzIiwiYWRkIiwiaSIsImxlbiIsImxlbmd0aCIsIm1ldGF0eXBlIiwiY2F0ZWdvcnkiLCJjYXRlZ29yaWVzIiwicmVkdWNlQ29tcG9uZW50cyIsImhlYWRFbGVtZW50cyIsImhlYWRFbGVtZW50IiwiaGVhZEVsZW1lbnRDaGlsZHJlbiIsInJldmVyc2UiLCJmaWx0ZXIiLCJtYXAiLCJjIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9PUFRJTUlaRV9GT05UUyIsInNvbWUiLCJ1cmwiLCJzdGFydHNXaXRoIiwibmV3UHJvcHMiLCJ1bmRlZmluZWQiLCJjbG9uZUVsZW1lbnQiLCJIZWFkIiwiYW1wU3RhdGUiLCJ1c2VDb250ZXh0IiwiQW1wU3RhdGVDb250ZXh0IiwiaGVhZE1hbmFnZXIiLCJIZWFkTWFuYWdlckNvbnRleHQiLCJyZWR1Y2VDb21wb25lbnRzVG9TdGF0ZSIsImlzSW5BbXBNb2RlIiwiX2RlZmF1bHQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/head.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/side-effect.js": +/*!**********************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/side-effect.js ***! + \**********************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _toConsumableArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/toConsumableArray.js\");\n\nvar _classCallCheck = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\");\n\nvar _createClass = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\");\n\nvar _assertThisInitialized = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/assertThisInitialized */ \"./node_modules/@babel/runtime/helpers/assertThisInitialized.js\");\n\nvar _inherits = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/inherits */ \"./node_modules/@babel/runtime/helpers/inherits.js\");\n\nvar _possibleConstructorReturn = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/possibleConstructorReturn */ \"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\");\n\nvar _getPrototypeOf = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/getPrototypeOf */ \"./node_modules/@babel/runtime/helpers/getPrototypeOf.js\");\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n return newObj;\n }\n}\n\nvar isServer = false;\n\nvar _class = /*#__PURE__*/function (_react$Component) {\n _inherits(_class, _react$Component);\n\n var _super = _createSuper(_class);\n\n function _class(props) {\n var _this;\n\n _classCallCheck(this, _class);\n\n _this = _super.call(this, props);\n\n _this.emitChange = function () {\n if (_this._hasHeadManager) {\n _this.props.headManager.updateHead(_this.props.reduceComponentsToState(_toConsumableArray(_this.props.headManager.mountedInstances), _this.props));\n }\n };\n\n _this._hasHeadManager = _this.props.headManager && _this.props.headManager.mountedInstances;\n\n if (isServer && _this._hasHeadManager) {\n _this.props.headManager.mountedInstances.add(_assertThisInitialized(_this));\n\n _this.emitChange();\n }\n\n return _this;\n }\n\n _createClass(_class, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this._hasHeadManager) {\n this.props.headManager.mountedInstances.add(this);\n }\n\n this.emitChange();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.emitChange();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this._hasHeadManager) {\n this.props.headManager.mountedInstances[\"delete\"](this);\n }\n\n this.emitChange();\n }\n }, {\n key: \"render\",\n value: function render() {\n return null;\n }\n }]);\n\n return _class;\n}(_react.Component);\n\nexports[\"default\"] = _class;\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvc2lkZS1lZmZlY3QuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxrQkFBQSxHQUFrQixLQUFLLENBQXZCOztBQUNBLElBQUlFLE1BQU0sR0FBR0MsdUJBQXVCLENBQUNDLG1CQUFPLENBQUMsNENBQUQsQ0FBUixDQUFwQzs7QUFDQSxTQUFTRCx1QkFBVCxDQUFpQ0UsR0FBakMsRUFBc0M7QUFDbEMsTUFBSUEsR0FBRyxJQUFJQSxHQUFHLENBQUNDLFVBQWYsRUFBMkI7QUFDdkIsV0FBT0QsR0FBUDtBQUNILEdBRkQsTUFFTztBQUNILFFBQUlFLE1BQU0sR0FBRyxFQUFiOztBQUVBLFFBQUlGLEdBQUcsSUFBSSxJQUFYLEVBQWlCO0FBQ2IsV0FBSSxJQUFJRyxHQUFSLElBQWVILEdBQWYsRUFBbUI7QUFDZixZQUFJUCxNQUFNLENBQUNXLFNBQVAsQ0FBaUJDLGNBQWpCLENBQWdDQyxJQUFoQyxDQUFxQ04sR0FBckMsRUFBMENHLEdBQTFDLENBQUosRUFBb0Q7QUFDaEQsY0FBSUksSUFBSSxHQUFHZCxNQUFNLENBQUNDLGNBQVAsSUFBeUJELE1BQU0sQ0FBQ2Usd0JBQWhDLEdBQTJEZixNQUFNLENBQUNlLHdCQUFQLENBQWdDUixHQUFoQyxFQUFxQ0csR0FBckMsQ0FBM0QsR0FBdUcsRUFBbEg7O0FBRUEsY0FBSUksSUFBSSxDQUFDRSxHQUFMLElBQVlGLElBQUksQ0FBQ0csR0FBckIsRUFBMEI7QUFDdEJqQixZQUFBQSxNQUFNLENBQUNDLGNBQVAsQ0FBc0JRLE1BQXRCLEVBQThCQyxHQUE5QixFQUFtQ0ksSUFBbkM7QUFDSCxXQUZELE1BRU87QUFDSEwsWUFBQUEsTUFBTSxDQUFDQyxHQUFELENBQU4sR0FBY0gsR0FBRyxDQUFDRyxHQUFELENBQWpCO0FBQ0g7QUFDSjtBQUNKO0FBQ0o7O0FBQ0RELElBQUFBLE1BQU0sV0FBTixHQUFpQkYsR0FBakI7QUFDQSxXQUFPRSxNQUFQO0FBQ0g7QUFDSjs7QUFDRCxJQUFNUyxRQUFRLFFBQWQ7O0lBQ01DOzs7OztBQUNGLGtCQUFZQyxLQUFaLEVBQWtCO0FBQUE7O0FBQUE7O0FBQ2QsOEJBQU1BLEtBQU47O0FBQ0EsVUFBS0MsVUFBTCxHQUFrQixZQUFJO0FBQ2xCLFVBQUksTUFBS0MsZUFBVCxFQUEwQjtBQUN0QixjQUFLRixLQUFMLENBQVdHLFdBQVgsQ0FBdUJDLFVBQXZCLENBQWtDLE1BQUtKLEtBQUwsQ0FBV0ssdUJBQVgsb0JBQzNCLE1BQUtMLEtBQUwsQ0FBV0csV0FBWCxDQUF1QkcsZ0JBREksR0FFL0IsTUFBS04sS0FGMEIsQ0FBbEM7QUFHSDtBQUNKLEtBTkQ7O0FBT0EsVUFBS0UsZUFBTCxHQUF1QixNQUFLRixLQUFMLENBQVdHLFdBQVgsSUFBMEIsTUFBS0gsS0FBTCxDQUFXRyxXQUFYLENBQXVCRyxnQkFBeEU7O0FBQ0EsUUFBSVIsUUFBUSxJQUFJLE1BQUtJLGVBQXJCLEVBQXNDO0FBQ2xDLFlBQUtGLEtBQUwsQ0FBV0csV0FBWCxDQUF1QkcsZ0JBQXZCLENBQXdDQyxHQUF4Qzs7QUFDQSxZQUFLTixVQUFMO0FBQ0g7O0FBYmE7QUFjakI7Ozs7V0FDRCw2QkFBb0I7QUFDaEIsVUFBSSxLQUFLQyxlQUFULEVBQTBCO0FBQ3RCLGFBQUtGLEtBQUwsQ0FBV0csV0FBWCxDQUF1QkcsZ0JBQXZCLENBQXdDQyxHQUF4QyxDQUE0QyxJQUE1QztBQUNIOztBQUNELFdBQUtOLFVBQUw7QUFDSDs7O1dBQ0QsOEJBQXFCO0FBQ2pCLFdBQUtBLFVBQUw7QUFDSDs7O1dBQ0QsZ0NBQXVCO0FBQ25CLFVBQUksS0FBS0MsZUFBVCxFQUEwQjtBQUN0QixhQUFLRixLQUFMLENBQVdHLFdBQVgsQ0FBdUJHLGdCQUF2QixXQUErQyxJQUEvQztBQUNIOztBQUNELFdBQUtMLFVBQUw7QUFDSDs7O1dBQ0Qsa0JBQVM7QUFDTCxhQUFPLElBQVA7QUFDSDs7OztFQWpDZ0JqQixNQUFNLENBQUN3Qjs7QUFtQzVCMUIsa0JBQUEsR0FBa0JpQixNQUFsQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvc2lkZS1lZmZlY3QuanM/NDA4YyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IHZvaWQgMDtcbnZhciBfcmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7XG4gICAgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkge1xuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBuZXdPYmogPSB7XG4gICAgICAgIH07XG4gICAgICAgIGlmIChvYmogIT0gbnVsbCkge1xuICAgICAgICAgICAgZm9yKHZhciBrZXkgaW4gb2JqKXtcbiAgICAgICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiB7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGlmIChkZXNjLmdldCB8fCBkZXNjLnNldCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld09ialtrZXldID0gb2JqW2tleV07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbmV3T2JqLmRlZmF1bHQgPSBvYmo7XG4gICAgICAgIHJldHVybiBuZXdPYmo7XG4gICAgfVxufVxuY29uc3QgaXNTZXJ2ZXIgPSB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJztcbmNsYXNzIF9jbGFzcyBleHRlbmRzIF9yZWFjdC5Db21wb25lbnQge1xuICAgIGNvbnN0cnVjdG9yKHByb3BzKXtcbiAgICAgICAgc3VwZXIocHJvcHMpO1xuICAgICAgICB0aGlzLmVtaXRDaGFuZ2UgPSAoKT0+e1xuICAgICAgICAgICAgaWYgKHRoaXMuX2hhc0hlYWRNYW5hZ2VyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5oZWFkTWFuYWdlci51cGRhdGVIZWFkKHRoaXMucHJvcHMucmVkdWNlQ29tcG9uZW50c1RvU3RhdGUoW1xuICAgICAgICAgICAgICAgICAgICAuLi50aGlzLnByb3BzLmhlYWRNYW5hZ2VyLm1vdW50ZWRJbnN0YW5jZXNcbiAgICAgICAgICAgICAgICBdLCB0aGlzLnByb3BzKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuX2hhc0hlYWRNYW5hZ2VyID0gdGhpcy5wcm9wcy5oZWFkTWFuYWdlciAmJiB0aGlzLnByb3BzLmhlYWRNYW5hZ2VyLm1vdW50ZWRJbnN0YW5jZXM7XG4gICAgICAgIGlmIChpc1NlcnZlciAmJiB0aGlzLl9oYXNIZWFkTWFuYWdlcikge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5oZWFkTWFuYWdlci5tb3VudGVkSW5zdGFuY2VzLmFkZCh0aGlzKTtcbiAgICAgICAgICAgIHRoaXMuZW1pdENoYW5nZSgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgICBpZiAodGhpcy5faGFzSGVhZE1hbmFnZXIpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMuaGVhZE1hbmFnZXIubW91bnRlZEluc3RhbmNlcy5hZGQodGhpcyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbWl0Q2hhbmdlKCk7XG4gICAgfVxuICAgIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICAgICAgdGhpcy5lbWl0Q2hhbmdlKCk7XG4gICAgfVxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgICBpZiAodGhpcy5faGFzSGVhZE1hbmFnZXIpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMuaGVhZE1hbmFnZXIubW91bnRlZEluc3RhbmNlcy5kZWxldGUodGhpcyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbWl0Q2hhbmdlKCk7XG4gICAgfVxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxufVxuZXhwb3J0cy5kZWZhdWx0ID0gX2NsYXNzO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zaWRlLWVmZmVjdC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJvYmoiLCJfX2VzTW9kdWxlIiwibmV3T2JqIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImdldCIsInNldCIsImlzU2VydmVyIiwiX2NsYXNzIiwicHJvcHMiLCJlbWl0Q2hhbmdlIiwiX2hhc0hlYWRNYW5hZ2VyIiwiaGVhZE1hbmFnZXIiLCJ1cGRhdGVIZWFkIiwicmVkdWNlQ29tcG9uZW50c1RvU3RhdGUiLCJtb3VudGVkSW5zdGFuY2VzIiwiYWRkIiwiQ29tcG9uZW50Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/side-effect.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2F_error&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Cnode_modules%5Cnext%5Cdist%5Cpages%5C_error.js!": +/*!***************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2F_error&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Cnode_modules%5Cnext%5Cdist%5Cpages%5C_error.js! ***! + \***************************************************************************************************************************************************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/_error\",\n function () {\n return __webpack_require__(/*! ./node_modules/next/dist/pages/_error.js */ \"./node_modules/next/dist/pages/_error.js\");\n }\n ]);\n if(true) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/_error\"])\n });\n }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWNsaWVudC1wYWdlcy1sb2FkZXIuanM/cGFnZT0lMkZfZXJyb3ImYWJzb2x1dGVQYWdlUGF0aD1DJTNBJTVDVXNlcnMlNUNocCU1Q0Rlc2t0b3AlNUNidXNpbmVzcy1odWIlNUNub2RlX21vZHVsZXMlNUNuZXh0JTVDZGlzdCU1Q3BhZ2VzJTVDX2Vycm9yLmpzIS5qcyIsIm1hcHBpbmdzIjoiO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxtQkFBTyxDQUFDLDBGQUEwQztBQUNqRTtBQUNBO0FBQ0EsT0FBTyxJQUFVO0FBQ2pCLE1BQU0sVUFBVTtBQUNoQjtBQUNBLE9BQU87QUFDUDtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8/NDU0NiJdLCJzb3VyY2VzQ29udGVudCI6WyJcbiAgICAod2luZG93Ll9fTkVYVF9QID0gd2luZG93Ll9fTkVYVF9QIHx8IFtdKS5wdXNoKFtcbiAgICAgIFwiL19lcnJvclwiLFxuICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gcmVxdWlyZShcIi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9wYWdlcy9fZXJyb3IuanNcIik7XG4gICAgICB9XG4gICAgXSk7XG4gICAgaWYobW9kdWxlLmhvdCkge1xuICAgICAgbW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgd2luZG93Ll9fTkVYVF9QLnB1c2goW1wiL19lcnJvclwiXSlcbiAgICAgIH0pO1xuICAgIH1cbiAgIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2F_error&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Cnode_modules%5Cnext%5Cdist%5Cpages%5C_error.js!\n"); + +/***/ }) + +}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); } +/******/ __webpack_require__.O(0, ["main"], function() { return __webpack_exec__("./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2F_error&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Cnode_modules%5Cnext%5Cdist%5Cpages%5C_error.js!"); }); +/******/ var __webpack_exports__ = __webpack_require__.O(); +/******/ _N_E = __webpack_exports__; +/******/ } +]); \ No newline at end of file diff --git a/.next/static/chunks/amp.js b/.next/static/chunks/amp.js new file mode 100644 index 0000000..95b9cdd --- /dev/null +++ b/.next/static/chunks/amp.js @@ -0,0 +1,576 @@ +/* + * 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/). + */ +(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["amp"],{ + +/***/ "./node_modules/@babel/runtime/helpers/arrayLikeToArray.js": +/*!*****************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/arrayLikeToArray.js ***! + \*****************************************************************/ +/***/ (function(module) { + +eval("function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hcnJheUxpa2VUb0FycmF5LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7O0FBRUEseUNBQXlDLFNBQVM7QUFDbEQ7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLG1CQUFtQix5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvYXJyYXlMaWtlVG9BcnJheS5qcz9jZjA5Il0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9hcnJheUxpa2VUb0FycmF5KGFyciwgbGVuKSB7XG4gIGlmIChsZW4gPT0gbnVsbCB8fCBsZW4gPiBhcnIubGVuZ3RoKSBsZW4gPSBhcnIubGVuZ3RoO1xuXG4gIGZvciAodmFyIGkgPSAwLCBhcnIyID0gbmV3IEFycmF5KGxlbik7IGkgPCBsZW47IGkrKykge1xuICAgIGFycjJbaV0gPSBhcnJbaV07XG4gIH1cblxuICByZXR1cm4gYXJyMjtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfYXJyYXlMaWtlVG9BcnJheTtcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/arrayLikeToArray.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/arrayWithHoles.js": +/*!***************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/arrayWithHoles.js ***! + \***************************************************************/ +/***/ (function(module) { + +eval("function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hcnJheVdpdGhIb2xlcy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSx5QkFBeUIsbUJBQW1CLHlCQUF5QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hcnJheVdpdGhIb2xlcy5qcz9hNTI1Il0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9hcnJheVdpdGhIb2xlcyhhcnIpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoYXJyKSkgcmV0dXJuIGFycjtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfYXJyYXlXaXRoSG9sZXM7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/arrayWithHoles.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/assertThisInitialized.js": +/*!**********************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/assertThisInitialized.js ***! + \**********************************************************************/ +/***/ (function(module) { + +eval("function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQuanMuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLHlCQUF5QixtQkFBbUIseUJBQXlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2Fzc2VydFRoaXNJbml0aWFsaXplZC5qcz8yMDE1Il0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikge1xuICBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7XG4gICAgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpO1xuICB9XG5cbiAgcmV0dXJuIHNlbGY7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX2Fzc2VydFRoaXNJbml0aWFsaXplZDtcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/assertThisInitialized.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/asyncToGenerator.js": +/*!*****************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/asyncToGenerator.js ***! + \*****************************************************************/ +/***/ (function(module) { + +eval("function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hc3luY1RvR2VuZXJhdG9yLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLG1CQUFtQix5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvYXN5bmNUb0dlbmVyYXRvci5qcz9kMzEyIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGFzeW5jR2VuZXJhdG9yU3RlcChnZW4sIHJlc29sdmUsIHJlamVjdCwgX25leHQsIF90aHJvdywga2V5LCBhcmcpIHtcbiAgdHJ5IHtcbiAgICB2YXIgaW5mbyA9IGdlbltrZXldKGFyZyk7XG4gICAgdmFyIHZhbHVlID0gaW5mby52YWx1ZTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZWplY3QoZXJyb3IpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChpbmZvLmRvbmUpIHtcbiAgICByZXNvbHZlKHZhbHVlKTtcbiAgfSBlbHNlIHtcbiAgICBQcm9taXNlLnJlc29sdmUodmFsdWUpLnRoZW4oX25leHQsIF90aHJvdyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gX2FzeW5jVG9HZW5lcmF0b3IoZm4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICAgIGFyZ3MgPSBhcmd1bWVudHM7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgIHZhciBnZW4gPSBmbi5hcHBseShzZWxmLCBhcmdzKTtcblxuICAgICAgZnVuY3Rpb24gX25leHQodmFsdWUpIHtcbiAgICAgICAgYXN5bmNHZW5lcmF0b3JTdGVwKGdlbiwgcmVzb2x2ZSwgcmVqZWN0LCBfbmV4dCwgX3Rocm93LCBcIm5leHRcIiwgdmFsdWUpO1xuICAgICAgfVxuXG4gICAgICBmdW5jdGlvbiBfdGhyb3coZXJyKSB7XG4gICAgICAgIGFzeW5jR2VuZXJhdG9yU3RlcChnZW4sIHJlc29sdmUsIHJlamVjdCwgX25leHQsIF90aHJvdywgXCJ0aHJvd1wiLCBlcnIpO1xuICAgICAgfVxuXG4gICAgICBfbmV4dCh1bmRlZmluZWQpO1xuICAgIH0pO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9hc3luY1RvR2VuZXJhdG9yO1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/asyncToGenerator.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/classCallCheck.js": +/*!***************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/classCallCheck.js ***! + \***************************************************************/ +/***/ (function(module) { + +eval("function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9jbGFzc0NhbGxDaGVjay5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLG1CQUFtQix5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvY2xhc3NDYWxsQ2hlY2suanM/YjdhZSJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7XG4gIGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9jbGFzc0NhbGxDaGVjaztcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/classCallCheck.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/construct.js": +/*!**********************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/construct.js ***! + \**********************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ \"./node_modules/@babel/runtime/helpers/setPrototypeOf.js\");\n\nvar isNativeReflectConstruct = __webpack_require__(/*! ./isNativeReflectConstruct.js */ \"./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js\");\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct;\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9jb25zdHJ1Y3QuanMuanMiLCJtYXBwaW5ncyI6IkFBQUEscUJBQXFCLG1CQUFPLENBQUMsb0ZBQXFCOztBQUVsRCwrQkFBK0IsbUJBQU8sQ0FBQyx3R0FBK0I7O0FBRXRFO0FBQ0E7QUFDQTtBQUNBLElBQUkseUJBQXlCLG1CQUFtQix5QkFBeUI7QUFDekUsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsSUFBSSx5QkFBeUIsbUJBQW1CLHlCQUF5QjtBQUN6RTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLG1CQUFtQix5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvY29uc3RydWN0LmpzPzI5MWUiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIHNldFByb3RvdHlwZU9mID0gcmVxdWlyZShcIi4vc2V0UHJvdG90eXBlT2YuanNcIik7XG5cbnZhciBpc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSByZXF1aXJlKFwiLi9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QuanNcIik7XG5cbmZ1bmN0aW9uIF9jb25zdHJ1Y3QoUGFyZW50LCBhcmdzLCBDbGFzcykge1xuICBpZiAoaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkpIHtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IF9jb25zdHJ1Y3QgPSBSZWZsZWN0LmNvbnN0cnVjdDtcbiAgICBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG4gIH0gZWxzZSB7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBfY29uc3RydWN0ID0gZnVuY3Rpb24gX2NvbnN0cnVjdChQYXJlbnQsIGFyZ3MsIENsYXNzKSB7XG4gICAgICB2YXIgYSA9IFtudWxsXTtcbiAgICAgIGEucHVzaC5hcHBseShhLCBhcmdzKTtcbiAgICAgIHZhciBDb25zdHJ1Y3RvciA9IEZ1bmN0aW9uLmJpbmQuYXBwbHkoUGFyZW50LCBhKTtcbiAgICAgIHZhciBpbnN0YW5jZSA9IG5ldyBDb25zdHJ1Y3RvcigpO1xuICAgICAgaWYgKENsYXNzKSBzZXRQcm90b3R5cGVPZihpbnN0YW5jZSwgQ2xhc3MucHJvdG90eXBlKTtcbiAgICAgIHJldHVybiBpbnN0YW5jZTtcbiAgICB9O1xuXG4gICAgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIF9jb25zdHJ1Y3QuYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfY29uc3RydWN0O1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/construct.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/createClass.js": +/*!************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/createClass.js ***! + \************************************************************/ +/***/ (function(module) { + +eval("function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9jcmVhdGVDbGFzcy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBLGtCQUFrQixrQkFBa0I7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHlCQUF5QixtQkFBbUIseUJBQXlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2NyZWF0ZUNsYXNzLmpzPzU0NmIiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTtcbiAgICBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7XG4gICAgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlO1xuICAgIGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpO1xuICB9XG59XG5cbmZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHtcbiAgaWYgKHByb3RvUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7XG4gIGlmIChzdGF0aWNQcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTtcbiAgcmV0dXJuIENvbnN0cnVjdG9yO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9jcmVhdGVDbGFzcztcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/createClass.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/defineProperty.js": +/*!***************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/defineProperty.js ***! + \***************************************************************/ +/***/ (function(module) { + +eval("function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9kZWZpbmVQcm9wZXJ0eS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxJQUFJO0FBQ0o7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLG1CQUFtQix5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZGVmaW5lUHJvcGVydHkuanM/ZDk0NiJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHZhbHVlKSB7XG4gIGlmIChrZXkgaW4gb2JqKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7XG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgd3JpdGFibGU6IHRydWVcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBvYmpba2V5XSA9IHZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIG9iajtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfZGVmaW5lUHJvcGVydHk7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/defineProperty.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js": +/*!***************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/getPrototypeOf.js ***! + \***************************************************************/ +/***/ (function(module) { + +eval("function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9nZXRQcm90b3R5cGVPZi5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUseUJBQXlCLG1CQUFtQix5QkFBeUI7QUFDdkU7QUFDQTs7QUFFQTtBQUNBLHlCQUF5QixtQkFBbUIseUJBQXlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2dldFByb3RvdHlwZU9mLmpzPzkwMDMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2Yobykge1xuICAgIHJldHVybiBvLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2Yobyk7XG4gIH07XG4gIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbiAgcmV0dXJuIF9nZXRQcm90b3R5cGVPZihvKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfZ2V0UHJvdG90eXBlT2Y7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/getPrototypeOf.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/inherits.js": +/*!*********************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/inherits.js ***! + \*********************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ \"./node_modules/@babel/runtime/helpers/setPrototypeOf.js\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbmhlcml0cy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQSxxQkFBcUIsbUJBQU8sQ0FBQyxvRkFBcUI7O0FBRWxEO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLG1CQUFtQix5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW5oZXJpdHMuanM/ZjM1YiJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgc2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKFwiLi9zZXRQcm90b3R5cGVPZi5qc1wiKTtcblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7XG4gIGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7XG4gIH1cblxuICBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHtcbiAgICBjb25zdHJ1Y3Rvcjoge1xuICAgICAgdmFsdWU6IHN1YkNsYXNzLFxuICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9XG4gIH0pO1xuICBpZiAoc3VwZXJDbGFzcykgc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9pbmhlcml0cztcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/inherits.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/isNativeFunction.js": +/*!*****************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/isNativeFunction.js ***! + \*****************************************************************/ +/***/ (function(module) { + +eval("function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nmodule.exports = _isNativeFunction;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pc05hdGl2ZUZ1bmN0aW9uLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHlCQUF5QixtQkFBbUIseUJBQXlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2lzTmF0aXZlRnVuY3Rpb24uanM/OGM4NSJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfaXNOYXRpdmVGdW5jdGlvbihmbikge1xuICByZXR1cm4gRnVuY3Rpb24udG9TdHJpbmcuY2FsbChmbikuaW5kZXhPZihcIltuYXRpdmUgY29kZV1cIikgIT09IC0xO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9pc05hdGl2ZUZ1bmN0aW9uO1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/isNativeFunction.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js": +/*!*************************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js ***! + \*************************************************************************/ +/***/ (function(module) { + +eval("function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nmodule.exports = _isNativeReflectConstruct;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QuanMuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxnRkFBZ0Y7QUFDaEY7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLG1CQUFtQix5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0LmpzPzFkNTQiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHtcbiAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiIHx8ICFSZWZsZWN0LmNvbnN0cnVjdCkgcmV0dXJuIGZhbHNlO1xuICBpZiAoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSkgcmV0dXJuIGZhbHNlO1xuICBpZiAodHlwZW9mIFByb3h5ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB0cnVlO1xuXG4gIHRyeSB7XG4gICAgQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sIFtdLCBmdW5jdGlvbiAoKSB7fSkpO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdDtcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js ***! + \*********************************************************************/ +/***/ (function(module) { + +eval("function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pdGVyYWJsZVRvQXJyYXlMaW1pdC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0EsNEJBQTRCLCtCQUErQjtBQUMzRDs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLHlCQUF5QixtQkFBbUIseUJBQXlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2l0ZXJhYmxlVG9BcnJheUxpbWl0LmpzP2FmZTciXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2l0ZXJhYmxlVG9BcnJheUxpbWl0KGFyciwgaSkge1xuICB2YXIgX2kgPSBhcnIgPT0gbnVsbCA/IG51bGwgOiB0eXBlb2YgU3ltYm9sICE9PSBcInVuZGVmaW5lZFwiICYmIGFycltTeW1ib2wuaXRlcmF0b3JdIHx8IGFycltcIkBAaXRlcmF0b3JcIl07XG5cbiAgaWYgKF9pID09IG51bGwpIHJldHVybjtcbiAgdmFyIF9hcnIgPSBbXTtcbiAgdmFyIF9uID0gdHJ1ZTtcbiAgdmFyIF9kID0gZmFsc2U7XG5cbiAgdmFyIF9zLCBfZTtcblxuICB0cnkge1xuICAgIGZvciAoX2kgPSBfaS5jYWxsKGFycik7ICEoX24gPSAoX3MgPSBfaS5uZXh0KCkpLmRvbmUpOyBfbiA9IHRydWUpIHtcbiAgICAgIF9hcnIucHVzaChfcy52YWx1ZSk7XG5cbiAgICAgIGlmIChpICYmIF9hcnIubGVuZ3RoID09PSBpKSBicmVhaztcbiAgICB9XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIF9kID0gdHJ1ZTtcbiAgICBfZSA9IGVycjtcbiAgfSBmaW5hbGx5IHtcbiAgICB0cnkge1xuICAgICAgaWYgKCFfbiAmJiBfaVtcInJldHVyblwiXSAhPSBudWxsKSBfaVtcInJldHVyblwiXSgpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAoX2QpIHRocm93IF9lO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBfYXJyO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9pdGVyYWJsZVRvQXJyYXlMaW1pdDtcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/nonIterableRest.js": +/*!****************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/nonIterableRest.js ***! + \****************************************************************/ +/***/ (function(module) { + +eval("function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableRest;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9ub25JdGVyYWJsZVJlc3QuanMuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLG1CQUFtQix5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvbm9uSXRlcmFibGVSZXN0LmpzPzRjMjAiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX25vbkl0ZXJhYmxlUmVzdCgpIHtcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfbm9uSXRlcmFibGVSZXN0O1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/nonIterableRest.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js": +/*!**************************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js ***! + \**************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var _typeof = (__webpack_require__(/*! @babel/runtime/helpers/typeof */ \"./node_modules/@babel/runtime/helpers/typeof.js\")[\"default\"]);\n\nvar assertThisInitialized = __webpack_require__(/*! ./assertThisInitialized.js */ \"./node_modules/@babel/runtime/helpers/assertThisInitialized.js\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0hBQW1EOztBQUVqRSw0QkFBNEIsbUJBQU8sQ0FBQyxrR0FBNEI7O0FBRWhFO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSx5QkFBeUIsbUJBQW1CLHlCQUF5QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuLmpzPzBlYjkiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIF90eXBlb2YgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2ZcIilbXCJkZWZhdWx0XCJdO1xuXG52YXIgYXNzZXJ0VGhpc0luaXRpYWxpemVkID0gcmVxdWlyZShcIi4vYXNzZXJ0VGhpc0luaXRpYWxpemVkLmpzXCIpO1xuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7XG4gIGlmIChjYWxsICYmIChfdHlwZW9mKGNhbGwpID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpKSB7XG4gICAgcmV0dXJuIGNhbGw7XG4gIH0gZWxzZSBpZiAoY2FsbCAhPT0gdm9pZCAwKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkXCIpO1xuICB9XG5cbiAgcmV0dXJuIGFzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjtcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/setPrototypeOf.js": +/*!***************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/setPrototypeOf.js ***! + \***************************************************************/ +/***/ (function(module) { + +eval("function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9zZXRQcm90b3R5cGVPZi5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLEVBQUUseUJBQXlCLG1CQUFtQix5QkFBeUI7QUFDdkU7QUFDQTs7QUFFQTtBQUNBLHlCQUF5QixtQkFBbUIseUJBQXlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3NldFByb3RvdHlwZU9mLmpzPzA1MjYiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSBfc2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHtcbiAgICBvLl9fcHJvdG9fXyA9IHA7XG4gICAgcmV0dXJuIG87XG4gIH07XG5cbiAgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuICByZXR1cm4gX3NldFByb3RvdHlwZU9mKG8sIHApO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9zZXRQcm90b3R5cGVPZjtcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/setPrototypeOf.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/slicedToArray.js": +/*!**************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/slicedToArray.js ***! + \**************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var arrayWithHoles = __webpack_require__(/*! ./arrayWithHoles.js */ \"./node_modules/@babel/runtime/helpers/arrayWithHoles.js\");\n\nvar iterableToArrayLimit = __webpack_require__(/*! ./iterableToArrayLimit.js */ \"./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js\");\n\nvar unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ \"./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js\");\n\nvar nonIterableRest = __webpack_require__(/*! ./nonIterableRest.js */ \"./node_modules/@babel/runtime/helpers/nonIterableRest.js\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9zbGljZWRUb0FycmF5LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBLHFCQUFxQixtQkFBTyxDQUFDLG9GQUFxQjs7QUFFbEQsMkJBQTJCLG1CQUFPLENBQUMsZ0dBQTJCOztBQUU5RCxpQ0FBaUMsbUJBQU8sQ0FBQyw0R0FBaUM7O0FBRTFFLHNCQUFzQixtQkFBTyxDQUFDLHNGQUFzQjs7QUFFcEQ7QUFDQTtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLG1CQUFtQix5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvc2xpY2VkVG9BcnJheS5qcz9mNTBjIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBhcnJheVdpdGhIb2xlcyA9IHJlcXVpcmUoXCIuL2FycmF5V2l0aEhvbGVzLmpzXCIpO1xuXG52YXIgaXRlcmFibGVUb0FycmF5TGltaXQgPSByZXF1aXJlKFwiLi9pdGVyYWJsZVRvQXJyYXlMaW1pdC5qc1wiKTtcblxudmFyIHVuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5ID0gcmVxdWlyZShcIi4vdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkuanNcIik7XG5cbnZhciBub25JdGVyYWJsZVJlc3QgPSByZXF1aXJlKFwiLi9ub25JdGVyYWJsZVJlc3QuanNcIik7XG5cbmZ1bmN0aW9uIF9zbGljZWRUb0FycmF5KGFyciwgaSkge1xuICByZXR1cm4gYXJyYXlXaXRoSG9sZXMoYXJyKSB8fCBpdGVyYWJsZVRvQXJyYXlMaW1pdChhcnIsIGkpIHx8IHVuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KGFyciwgaSkgfHwgbm9uSXRlcmFibGVSZXN0KCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX3NsaWNlZFRvQXJyYXk7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/slicedToArray.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/typeof.js": +/*!*******************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/typeof.js ***! + \*******************************************************/ +/***/ (function(module) { + +eval("function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2YuanMuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxJQUFJLHlCQUF5QixtQkFBbUIseUJBQXlCO0FBQ3pFLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUEsSUFBSSx5QkFBeUIsbUJBQW1CLHlCQUF5QjtBQUN6RTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLG1CQUFtQix5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvdHlwZW9mLmpzP2YzM2UiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX3R5cGVvZihvYmopIHtcbiAgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiO1xuXG4gIGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikge1xuICAgIG1vZHVsZS5leHBvcnRzID0gX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7XG4gICAgICByZXR1cm4gdHlwZW9mIG9iajtcbiAgICB9O1xuXG4gICAgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuICB9IGVsc2Uge1xuICAgIG1vZHVsZS5leHBvcnRzID0gX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7XG4gICAgICByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajtcbiAgICB9O1xuXG4gICAgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIF90eXBlb2Yob2JqKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfdHlwZW9mO1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/typeof.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js": +/*!***************************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js ***! + \***************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ \"./node_modules/@babel/runtime/helpers/arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQSx1QkFBdUIsbUJBQU8sQ0FBQyx3RkFBdUI7O0FBRXREO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSx5QkFBeUIsbUJBQW1CLHlCQUF5QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheS5qcz9kYTU3Il0sInNvdXJjZXNDb250ZW50IjpbInZhciBhcnJheUxpa2VUb0FycmF5ID0gcmVxdWlyZShcIi4vYXJyYXlMaWtlVG9BcnJheS5qc1wiKTtcblxuZnVuY3Rpb24gX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KG8sIG1pbkxlbikge1xuICBpZiAoIW8pIHJldHVybjtcbiAgaWYgKHR5cGVvZiBvID09PSBcInN0cmluZ1wiKSByZXR1cm4gYXJyYXlMaWtlVG9BcnJheShvLCBtaW5MZW4pO1xuICB2YXIgbiA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvKS5zbGljZSg4LCAtMSk7XG4gIGlmIChuID09PSBcIk9iamVjdFwiICYmIG8uY29uc3RydWN0b3IpIG4gPSBvLmNvbnN0cnVjdG9yLm5hbWU7XG4gIGlmIChuID09PSBcIk1hcFwiIHx8IG4gPT09IFwiU2V0XCIpIHJldHVybiBBcnJheS5mcm9tKG8pO1xuICBpZiAobiA9PT0gXCJBcmd1bWVudHNcIiB8fCAvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSkgcmV0dXJuIGFycmF5TGlrZVRvQXJyYXkobywgbWluTGVuKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXk7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/wrapNativeSuper.js": +/*!****************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/wrapNativeSuper.js ***! + \****************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var getPrototypeOf = __webpack_require__(/*! ./getPrototypeOf.js */ \"./node_modules/@babel/runtime/helpers/getPrototypeOf.js\");\n\nvar setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ \"./node_modules/@babel/runtime/helpers/setPrototypeOf.js\");\n\nvar isNativeFunction = __webpack_require__(/*! ./isNativeFunction.js */ \"./node_modules/@babel/runtime/helpers/isNativeFunction.js\");\n\nvar construct = __webpack_require__(/*! ./construct.js */ \"./node_modules/@babel/runtime/helpers/construct.js\");\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _wrapNativeSuper(Class);\n}\n\nmodule.exports = _wrapNativeSuper;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy93cmFwTmF0aXZlU3VwZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQUEscUJBQXFCLG1CQUFPLENBQUMsb0ZBQXFCOztBQUVsRCxxQkFBcUIsbUJBQU8sQ0FBQyxvRkFBcUI7O0FBRWxELHVCQUF1QixtQkFBTyxDQUFDLHdGQUF1Qjs7QUFFdEQsZ0JBQWdCLG1CQUFPLENBQUMsMEVBQWdCOztBQUV4QztBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQSxFQUFFLHlCQUF5QixtQkFBbUIseUJBQXlCO0FBQ3ZFO0FBQ0E7O0FBRUE7QUFDQSx5QkFBeUIsbUJBQW1CLHlCQUF5QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy93cmFwTmF0aXZlU3VwZXIuanM/ZjUyMSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZ2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKFwiLi9nZXRQcm90b3R5cGVPZi5qc1wiKTtcblxudmFyIHNldFByb3RvdHlwZU9mID0gcmVxdWlyZShcIi4vc2V0UHJvdG90eXBlT2YuanNcIik7XG5cbnZhciBpc05hdGl2ZUZ1bmN0aW9uID0gcmVxdWlyZShcIi4vaXNOYXRpdmVGdW5jdGlvbi5qc1wiKTtcblxudmFyIGNvbnN0cnVjdCA9IHJlcXVpcmUoXCIuL2NvbnN0cnVjdC5qc1wiKTtcblxuZnVuY3Rpb24gX3dyYXBOYXRpdmVTdXBlcihDbGFzcykge1xuICB2YXIgX2NhY2hlID0gdHlwZW9mIE1hcCA9PT0gXCJmdW5jdGlvblwiID8gbmV3IE1hcCgpIDogdW5kZWZpbmVkO1xuXG4gIG1vZHVsZS5leHBvcnRzID0gX3dyYXBOYXRpdmVTdXBlciA9IGZ1bmN0aW9uIF93cmFwTmF0aXZlU3VwZXIoQ2xhc3MpIHtcbiAgICBpZiAoQ2xhc3MgPT09IG51bGwgfHwgIWlzTmF0aXZlRnVuY3Rpb24oQ2xhc3MpKSByZXR1cm4gQ2xhc3M7XG5cbiAgICBpZiAodHlwZW9mIENsYXNzICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvblwiKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIF9jYWNoZSAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgaWYgKF9jYWNoZS5oYXMoQ2xhc3MpKSByZXR1cm4gX2NhY2hlLmdldChDbGFzcyk7XG5cbiAgICAgIF9jYWNoZS5zZXQoQ2xhc3MsIFdyYXBwZXIpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIFdyYXBwZXIoKSB7XG4gICAgICByZXR1cm4gY29uc3RydWN0KENsYXNzLCBhcmd1bWVudHMsIGdldFByb3RvdHlwZU9mKHRoaXMpLmNvbnN0cnVjdG9yKTtcbiAgICB9XG5cbiAgICBXcmFwcGVyLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoQ2xhc3MucHJvdG90eXBlLCB7XG4gICAgICBjb25zdHJ1Y3Rvcjoge1xuICAgICAgICB2YWx1ZTogV3JhcHBlcixcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gc2V0UHJvdG90eXBlT2YoV3JhcHBlciwgQ2xhc3MpO1xuICB9O1xuXG4gIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbiAgcmV0dXJuIF93cmFwTmF0aXZlU3VwZXIoQ2xhc3MpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF93cmFwTmF0aXZlU3VwZXI7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/wrapNativeSuper.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/regenerator/index.js": +/*!**********************************************************!*\ + !*** ./node_modules/@babel/runtime/regenerator/index.js ***! + \**********************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("module.exports = __webpack_require__(/*! regenerator-runtime */ \"./node_modules/regenerator-runtime/runtime.js\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvcmVnZW5lcmF0b3IvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQUEsZ0hBQStDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9yZWdlbmVyYXRvci9pbmRleC5qcz84MTQ0Il0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcInJlZ2VuZXJhdG9yLXJ1bnRpbWVcIik7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/regenerator/index.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/dev/amp-dev.js": +/*!******************************************************!*\ + !*** ./node_modules/next/dist/client/dev/amp-dev.js ***! + \******************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _regeneratorRuntime = __webpack_require__(/*! ./node_modules/@babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n\nvar _fouc = __webpack_require__(/*! ./fouc */ \"./node_modules/next/dist/client/dev/fouc.js\");\n\nvar _onDemandEntriesClient = _interopRequireDefault(__webpack_require__(/*! ./on-demand-entries-client */ \"./node_modules/next/dist/client/dev/on-demand-entries-client.js\"));\n\nvar _websocket = __webpack_require__(/*! ./error-overlay/websocket */ \"./node_modules/next/dist/client/dev/error-overlay/websocket.js\");\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar data = JSON.parse(document.getElementById('__NEXT_DATA__').textContent);\nvar assetPrefix = data.assetPrefix,\n page = data.page;\nassetPrefix = assetPrefix || '';\nvar mostRecentHash = null;\n/* eslint-disable-next-line */\n\nvar curHash = __webpack_require__.h();\nvar hotUpdatePath = assetPrefix + (assetPrefix.endsWith('/') ? '' : '/') + '_next/static/webpack/'; // Is there a newer version of this code available?\n\nfunction isUpdateAvailable() {\n // __webpack_hash__ is the hash of the current compilation.\n // It's a global variable injected by Webpack.\n\n /* eslint-disable-next-line */\n return mostRecentHash !== __webpack_require__.h();\n} // Webpack disallows updates in other states.\n\n\nfunction canApplyUpdates() {\n return module.hot.status() === 'idle';\n}\n\nfunction _tryApplyUpdates() {\n _tryApplyUpdates = // This function reads code updates on the fly and hard\n // reloads the page when it has changed.\n _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var res, jsonData, curPage, pageUpdated;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!(!isUpdateAvailable() || !canApplyUpdates())) {\n _context.next = 2;\n break;\n }\n\n return _context.abrupt(\"return\");\n\n case 2:\n _context.prev = 2;\n _context.next = 5;\n return fetch(typeof __webpack_require__.j !== 'undefined' ? \"\".concat(hotUpdatePath).concat(curHash, \".\").concat(__webpack_require__.j, \".hot-update.json\") : \"\".concat(hotUpdatePath).concat(curHash, \".hot-update.json\"));\n\n case 5:\n res = _context.sent;\n _context.next = 8;\n return res.json();\n\n case 8:\n jsonData = _context.sent;\n curPage = page === '/' ? 'index' : page; // webpack 5 uses an array instead\n\n pageUpdated = (Array.isArray(jsonData.c) ? jsonData.c : Object.keys(jsonData.c)).some(function (mod) {\n return mod.indexOf(\"pages\".concat(curPage.substr(0, 1) === '/' ? curPage : \"/\".concat(curPage))) !== -1 || mod.indexOf(\"pages\".concat(curPage.substr(0, 1) === '/' ? curPage : \"/\".concat(curPage)).replace(/\\//g, '\\\\')) !== -1;\n });\n\n if (pageUpdated) {\n document.location.reload(true);\n } else {\n curHash = mostRecentHash;\n }\n\n _context.next = 18;\n break;\n\n case 14:\n _context.prev = 14;\n _context.t0 = _context[\"catch\"](2);\n console.error('Error occurred checking for update', _context.t0);\n document.location.reload(true);\n\n case 18:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[2, 14]]);\n }));\n return _tryApplyUpdates.apply(this, arguments);\n}\n\nfunction tryApplyUpdates() {\n return _tryApplyUpdates.apply(this, arguments);\n}\n\n(0, _websocket).addMessageListener(function (event) {\n if (event.data === \"\\uD83D\\uDC93\") {\n return;\n }\n\n try {\n var message = JSON.parse(event.data);\n\n if (message.action === 'sync' || message.action === 'built') {\n if (!message.hash) {\n return;\n }\n\n mostRecentHash = message.hash;\n tryApplyUpdates();\n } else if (message.action === 'reloadPage') {\n document.location.reload(true);\n }\n } catch (ex) {\n console.warn('Invalid HMR message: ' + event.data + '\\n' + ex);\n }\n});\n(0, _websocket).connectHMR({\n assetPrefix: assetPrefix,\n path: '/_next/webpack-hmr'\n});\n(0, _fouc).displayContent();\n(0, _onDemandEntriesClient)[\"default\"]();\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvYW1wLWRldi5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7Ozs7QUFDYixJQUFJQSxLQUFLLEdBQUdDLG1CQUFPLENBQUMsMkRBQUQsQ0FBbkI7O0FBQ0EsSUFBSUMsc0JBQXNCLEdBQUdDLHNCQUFzQixDQUFDRixtQkFBTyxDQUFDLG1HQUFELENBQVIsQ0FBbkQ7O0FBQ0EsSUFBSUcsVUFBVSxHQUFHSCxtQkFBTyxDQUFDLGlHQUFELENBQXhCOztBQUNBLFNBQVNJLGtCQUFULENBQTRCQyxHQUE1QixFQUFpQ0MsT0FBakMsRUFBMENDLE1BQTFDLEVBQWtEQyxLQUFsRCxFQUF5REMsTUFBekQsRUFBaUVDLEdBQWpFLEVBQXNFQyxHQUF0RSxFQUEyRTtBQUN2RSxNQUFJO0FBQ0EsUUFBSUMsSUFBSSxHQUFHUCxHQUFHLENBQUNLLEdBQUQsQ0FBSCxDQUFTQyxHQUFULENBQVg7QUFDQSxRQUFJRSxLQUFLLEdBQUdELElBQUksQ0FBQ0MsS0FBakI7QUFDSCxHQUhELENBR0UsT0FBT0MsS0FBUCxFQUFjO0FBQ1pQLElBQUFBLE1BQU0sQ0FBQ08sS0FBRCxDQUFOO0FBQ0E7QUFDSDs7QUFDRCxNQUFJRixJQUFJLENBQUNHLElBQVQsRUFBZTtBQUNYVCxJQUFBQSxPQUFPLENBQUNPLEtBQUQsQ0FBUDtBQUNILEdBRkQsTUFFTztBQUNIRyxJQUFBQSxPQUFPLENBQUNWLE9BQVIsQ0FBZ0JPLEtBQWhCLEVBQXVCSSxJQUF2QixDQUE0QlQsS0FBNUIsRUFBbUNDLE1BQW5DO0FBQ0g7QUFDSjs7QUFDRCxTQUFTUyxpQkFBVCxDQUEyQkMsRUFBM0IsRUFBK0I7QUFDM0IsU0FBTyxZQUFXO0FBQ2QsUUFBSUMsSUFBSSxHQUFHLElBQVg7QUFBQSxRQUFpQkMsSUFBSSxHQUFHQyxTQUF4QjtBQUNBLFdBQU8sSUFBSU4sT0FBSixDQUFZLFVBQVNWLE9BQVQsRUFBa0JDLE1BQWxCLEVBQTBCO0FBQ3pDLFVBQUlGLEdBQUcs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QWpCLENBQWhCOztBQUNBLFFBQUkwQyxPQUFPLENBQUNDLE1BQVIsS0FBbUIsTUFBbkIsSUFBNkJELE9BQU8sQ0FBQ0MsTUFBUixLQUFtQixPQUFwRCxFQUE2RDtBQUN6RCxVQUFJLENBQUNELE9BQU8sQ0FBQ0UsSUFBYixFQUFtQjtBQUNmO0FBQ0g7O0FBQ0RwQyxNQUFBQSxjQUFjLEdBQUdrQyxPQUFPLENBQUNFLElBQXpCO0FBQ0FMLE1BQUFBLGVBQWU7QUFDbEIsS0FORCxNQU1PLElBQUlHLE9BQU8sQ0FBQ0MsTUFBUixLQUFtQixZQUF2QixFQUFxQztBQUN4Q3hDLE1BQUFBLFFBQVEsQ0FBQ2lDLFFBQVQsQ0FBa0JDLE1BQWxCLENBQXlCLElBQXpCO0FBQ0g7QUFDSixHQVhELENBV0UsT0FBT1EsRUFBUCxFQUFXO0FBQ1RQLElBQUFBLE9BQU8sQ0FBQ1EsSUFBUixDQUFhLDBCQUEwQkwsS0FBSyxDQUFDekMsSUFBaEMsR0FBdUMsSUFBdkMsR0FBOEM2QyxFQUEzRDtBQUNIO0FBQ0osQ0FsQkQ7QUFtQkEsQ0FBQyxHQUFHdEUsVUFBSixFQUFnQndFLFVBQWhCLENBQTJCO0FBQ3ZCekMsRUFBQUEsV0FBVyxFQUFYQSxXQUR1QjtBQUV2QjBDLEVBQUFBLElBQUksRUFBRTtBQUZpQixDQUEzQjtBQUlBLENBQUMsR0FBRzdFLEtBQUosRUFBVzhFLGNBQVg7QUFDQSxDQUFDLEdBQUc1RSxzQkFBSiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvYW1wLWRldi5qcz81Y2NmIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9mb3VjID0gcmVxdWlyZShcIi4vZm91Y1wiKTtcbnZhciBfb25EZW1hbmRFbnRyaWVzQ2xpZW50ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9vbi1kZW1hbmQtZW50cmllcy1jbGllbnRcIikpO1xudmFyIF93ZWJzb2NrZXQgPSByZXF1aXJlKFwiLi9lcnJvci1vdmVybGF5L3dlYnNvY2tldFwiKTtcbmZ1bmN0aW9uIGFzeW5jR2VuZXJhdG9yU3RlcChnZW4sIHJlc29sdmUsIHJlamVjdCwgX25leHQsIF90aHJvdywga2V5LCBhcmcpIHtcbiAgICB0cnkge1xuICAgICAgICB2YXIgaW5mbyA9IGdlbltrZXldKGFyZyk7XG4gICAgICAgIHZhciB2YWx1ZSA9IGluZm8udmFsdWU7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoaW5mby5kb25lKSB7XG4gICAgICAgIHJlc29sdmUodmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIFByb21pc2UucmVzb2x2ZSh2YWx1ZSkudGhlbihfbmV4dCwgX3Rocm93KTtcbiAgICB9XG59XG5mdW5jdGlvbiBfYXN5bmNUb0dlbmVyYXRvcihmbikge1xuICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIHNlbGYgPSB0aGlzLCBhcmdzID0gYXJndW1lbnRzO1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgICB2YXIgZ2VuID0gZm4uYXBwbHkoc2VsZiwgYXJncyk7XG4gICAgICAgICAgICBmdW5jdGlvbiBfbmV4dCh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIGFzeW5jR2VuZXJhdG9yU3RlcChnZW4sIHJlc29sdmUsIHJlamVjdCwgX25leHQsIF90aHJvdywgXCJuZXh0XCIsIHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZ1bmN0aW9uIF90aHJvdyhlcnIpIHtcbiAgICAgICAgICAgICAgICBhc3luY0dlbmVyYXRvclN0ZXAoZ2VuLCByZXNvbHZlLCByZWplY3QsIF9uZXh0LCBfdGhyb3csIFwidGhyb3dcIiwgZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF9uZXh0KHVuZGVmaW5lZCk7XG4gICAgICAgIH0pO1xuICAgIH07XG59XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5jb25zdCBkYXRhID0gSlNPTi5wYXJzZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnX19ORVhUX0RBVEFfXycpLnRleHRDb250ZW50KTtcbmxldCB7IGFzc2V0UHJlZml4ICwgcGFnZSAgfSA9IGRhdGE7XG5hc3NldFByZWZpeCA9IGFzc2V0UHJlZml4IHx8ICcnO1xubGV0IG1vc3RSZWNlbnRIYXNoID0gbnVsbDtcbi8qIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSAqLyBsZXQgY3VySGFzaCA9IF9fd2VicGFja19oYXNoX187XG5jb25zdCBob3RVcGRhdGVQYXRoID0gYXNzZXRQcmVmaXggKyAoYXNzZXRQcmVmaXguZW5kc1dpdGgoJy8nKSA/ICcnIDogJy8nKSArICdfbmV4dC9zdGF0aWMvd2VicGFjay8nO1xuLy8gSXMgdGhlcmUgYSBuZXdlciB2ZXJzaW9uIG9mIHRoaXMgY29kZSBhdmFpbGFibGU/XG5mdW5jdGlvbiBpc1VwZGF0ZUF2YWlsYWJsZSgpIHtcbiAgICAvLyBfX3dlYnBhY2tfaGFzaF9fIGlzIHRoZSBoYXNoIG9mIHRoZSBjdXJyZW50IGNvbXBpbGF0aW9uLlxuICAgIC8vIEl0J3MgYSBnbG9iYWwgdmFyaWFibGUgaW5qZWN0ZWQgYnkgV2VicGFjay5cbiAgICAvKiBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgKi8gcmV0dXJuIG1vc3RSZWNlbnRIYXNoICE9PSBfX3dlYnBhY2tfaGFzaF9fO1xufVxuLy8gV2VicGFjayBkaXNhbGxvd3MgdXBkYXRlcyBpbiBvdGhlciBzdGF0ZXMuXG5mdW5jdGlvbiBjYW5BcHBseVVwZGF0ZXMoKSB7XG4gICAgcmV0dXJuIG1vZHVsZS5ob3Quc3RhdHVzKCkgPT09ICdpZGxlJztcbn1cbmZ1bmN0aW9uIF90cnlBcHBseVVwZGF0ZXMoKSB7XG4gICAgX3RyeUFwcGx5VXBkYXRlcyA9IC8vIFRoaXMgZnVuY3Rpb24gcmVhZHMgY29kZSB1cGRhdGVzIG9uIHRoZSBmbHkgYW5kIGhhcmRcbiAgICAvLyByZWxvYWRzIHRoZSBwYWdlIHdoZW4gaXQgaGFzIGNoYW5nZWQuXG4gICAgX2FzeW5jVG9HZW5lcmF0b3IoZnVuY3Rpb24qKCkge1xuICAgICAgICBpZiAoIWlzVXBkYXRlQXZhaWxhYmxlKCkgfHwgIWNhbkFwcGx5VXBkYXRlcygpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlcyA9IHlpZWxkIGZldGNoKHR5cGVvZiBfX3dlYnBhY2tfcnVudGltZV9pZF9fICE9PSAndW5kZWZpbmVkJyA/IGAke2hvdFVwZGF0ZVBhdGh9JHtjdXJIYXNofS4ke19fd2VicGFja19ydW50aW1lX2lkX199LmhvdC11cGRhdGUuanNvbmAgOiBgJHtob3RVcGRhdGVQYXRofSR7Y3VySGFzaH0uaG90LXVwZGF0ZS5qc29uYCk7XG4gICAgICAgICAgICBjb25zdCBqc29uRGF0YSA9IHlpZWxkIHJlcy5qc29uKCk7XG4gICAgICAgICAgICBjb25zdCBjdXJQYWdlID0gcGFnZSA9PT0gJy8nID8gJ2luZGV4JyA6IHBhZ2U7XG4gICAgICAgICAgICAvLyB3ZWJwYWNrIDUgdXNlcyBhbiBhcnJheSBpbnN0ZWFkXG4gICAgICAgICAgICBjb25zdCBwYWdlVXBkYXRlZCA9IChBcnJheS5pc0FycmF5KGpzb25EYXRhLmMpID8ganNvbkRhdGEuYyA6IE9iamVjdC5rZXlzKGpzb25EYXRhLmMpKS5zb21lKChtb2QpPT57XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vZC5pbmRleE9mKGBwYWdlcyR7Y3VyUGFnZS5zdWJzdHIoMCwgMSkgPT09ICcvJyA/IGN1clBhZ2UgOiBgLyR7Y3VyUGFnZX1gfWApICE9PSAtMSB8fCBtb2QuaW5kZXhPZihgcGFnZXMke2N1clBhZ2Uuc3Vic3RyKDAsIDEpID09PSAnLycgPyBjdXJQYWdlIDogYC8ke2N1clBhZ2V9YH1gLnJlcGxhY2UoL1xcLy9nLCAnXFxcXCcpKSAhPT0gLTE7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChwYWdlVXBkYXRlZCkge1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLnJlbG9hZCh0cnVlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY3VySGFzaCA9IG1vc3RSZWNlbnRIYXNoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIG9jY3VycmVkIGNoZWNraW5nIGZvciB1cGRhdGUnLCBlcnIpO1xuICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24ucmVsb2FkKHRydWUpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIF90cnlBcHBseVVwZGF0ZXMuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cbmZ1bmN0aW9uIHRyeUFwcGx5VXBkYXRlcygpIHtcbiAgICByZXR1cm4gX3RyeUFwcGx5VXBkYXRlcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufVxuKDAsIF93ZWJzb2NrZXQpLmFkZE1lc3NhZ2VMaXN0ZW5lcigoZXZlbnQpPT57XG4gICAgaWYgKGV2ZW50LmRhdGEgPT09ICdcXHVEODNEXFx1REM5MycpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gSlNPTi5wYXJzZShldmVudC5kYXRhKTtcbiAgICAgICAgaWYgKG1lc3NhZ2UuYWN0aW9uID09PSAnc3luYycgfHwgbWVzc2FnZS5hY3Rpb24gPT09ICdidWlsdCcpIHtcbiAgICAgICAgICAgIGlmICghbWVzc2FnZS5oYXNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbW9zdFJlY2VudEhhc2ggPSBtZXNzYWdlLmhhc2g7XG4gICAgICAgICAgICB0cnlBcHBseVVwZGF0ZXMoKTtcbiAgICAgICAgfSBlbHNlIGlmIChtZXNzYWdlLmFjdGlvbiA9PT0gJ3JlbG9hZFBhZ2UnKSB7XG4gICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5yZWxvYWQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICB9IGNhdGNoIChleCkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ0ludmFsaWQgSE1SIG1lc3NhZ2U6ICcgKyBldmVudC5kYXRhICsgJ1xcbicgKyBleCk7XG4gICAgfVxufSk7XG4oMCwgX3dlYnNvY2tldCkuY29ubmVjdEhNUih7XG4gICAgYXNzZXRQcmVmaXgsXG4gICAgcGF0aDogJy9fbmV4dC93ZWJwYWNrLWhtcidcbn0pO1xuKDAsIF9mb3VjKS5kaXNwbGF5Q29udGVudCgpO1xuKDAsIF9vbkRlbWFuZEVudHJpZXNDbGllbnQpLmRlZmF1bHQoKTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YW1wLWRldi5qcy5tYXAiXSwibmFtZXMiOlsiX2ZvdWMiLCJyZXF1aXJlIiwiX29uRGVtYW5kRW50cmllc0NsaWVudCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfd2Vic29ja2V0IiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwicmVzb2x2ZSIsInJlamVjdCIsIl9uZXh0IiwiX3Rocm93Iiwia2V5IiwiYXJnIiwiaW5mbyIsInZhbHVlIiwiZXJyb3IiLCJkb25lIiwiUHJvbWlzZSIsInRoZW4iLCJfYXN5bmNUb0dlbmVyYXRvciIsImZuIiwic2VsZiIsImFyZ3MiLCJhcmd1bWVudHMiLCJhcHBseSIsImVyciIsInVuZGVmaW5lZCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkYXRhIiwiSlNPTiIsInBhcnNlIiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsInRleHRDb250ZW50IiwiYXNzZXRQcmVmaXgiLCJwYWdlIiwibW9zdFJlY2VudEhhc2giLCJjdXJIYXNoIiwiX193ZWJwYWNrX2hhc2hfXyIsImhvdFVwZGF0ZVBhdGgiLCJlbmRzV2l0aCIsImlzVXBkYXRlQXZhaWxhYmxlIiwiY2FuQXBwbHlVcGRhdGVzIiwibW9kdWxlIiwiaG90Iiwic3RhdHVzIiwiX3RyeUFwcGx5VXBkYXRlcyIsImZldGNoIiwiX193ZWJwYWNrX3J1bnRpbWVfaWRfXyIsInJlcyIsImpzb24iLCJqc29uRGF0YSIsImN1clBhZ2UiLCJwYWdlVXBkYXRlZCIsIkFycmF5IiwiaXNBcnJheSIsImMiLCJPYmplY3QiLCJrZXlzIiwic29tZSIsIm1vZCIsImluZGV4T2YiLCJzdWJzdHIiLCJyZXBsYWNlIiwibG9jYXRpb24iLCJyZWxvYWQiLCJjb25zb2xlIiwidHJ5QXBwbHlVcGRhdGVzIiwiYWRkTWVzc2FnZUxpc3RlbmVyIiwiZXZlbnQiLCJtZXNzYWdlIiwiYWN0aW9uIiwiaGFzaCIsImV4Iiwid2FybiIsImNvbm5lY3RITVIiLCJwYXRoIiwiZGlzcGxheUNvbnRlbnQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/amp-dev.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/dev/error-overlay/websocket.js": +/*!**********************************************************************!*\ + !*** ./node_modules/next/dist/client/dev/error-overlay/websocket.js ***! + \**********************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.addMessageListener = addMessageListener;\nexports.sendMessage = sendMessage;\nexports.connectHMR = connectHMR;\nvar source;\nvar eventCallbacks = [];\nvar lastActivity = Date.now();\n\nfunction getSocketProtocol(assetPrefix) {\n var protocol = location.protocol;\n\n try {\n // assetPrefix is a url\n protocol = new URL(assetPrefix).protocol;\n } catch (_) {}\n\n return protocol === 'http:' ? 'ws' : 'wss';\n}\n\nfunction addMessageListener(cb) {\n eventCallbacks.push(cb);\n}\n\nfunction sendMessage(data) {\n if (!source || source.readyState !== source.OPEN) return;\n return source.send(data);\n}\n\nfunction connectHMR(options) {\n if (!options.timeout) {\n options.timeout = 5 * 1000;\n }\n\n init();\n var timer = setInterval(function () {\n if (Date.now() - lastActivity > options.timeout) {\n handleDisconnect();\n }\n }, options.timeout / 2);\n\n function init() {\n if (source) source.close();\n var _location = location,\n hostname = _location.hostname,\n port = _location.port;\n var protocol = getSocketProtocol(options.assetPrefix || '');\n var assetPrefix = options.assetPrefix.replace(/^\\/+/, '');\n var url = \"\".concat(protocol, \"://\").concat(hostname, \":\").concat(port).concat(assetPrefix ? \"/\".concat(assetPrefix) : '');\n\n if (assetPrefix.startsWith('http')) {\n url = \"\".concat(protocol, \"://\").concat(assetPrefix.split('://')[1]);\n }\n\n source = new window.WebSocket(\"\".concat(url).concat(options.path));\n source.onopen = handleOnline;\n source.onerror = handleDisconnect;\n source.onmessage = handleMessage;\n }\n\n function handleOnline() {\n if (options.log) console.log('[HMR] connected');\n lastActivity = Date.now();\n }\n\n function handleMessage(event) {\n lastActivity = Date.now();\n eventCallbacks.forEach(function (cb) {\n cb(event);\n });\n }\n\n function handleDisconnect() {\n clearInterval(timer);\n source.close();\n setTimeout(init, options.timeout);\n }\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvZXJyb3Itb3ZlcmxheS93ZWJzb2NrZXQuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCwwQkFBQSxHQUE2QkUsa0JBQTdCO0FBQ0FGLG1CQUFBLEdBQXNCRyxXQUF0QjtBQUNBSCxrQkFBQSxHQUFxQkksVUFBckI7QUFDQSxJQUFJQyxNQUFKO0FBQ0EsSUFBTUMsY0FBYyxHQUFHLEVBQXZCO0FBQ0EsSUFBSUMsWUFBWSxHQUFHQyxJQUFJLENBQUNDLEdBQUwsRUFBbkI7O0FBQ0EsU0FBU0MsaUJBQVQsQ0FBMkJDLFdBQTNCLEVBQXdDO0FBQ3BDLE1BQUlDLFFBQVEsR0FBR0MsUUFBUSxDQUFDRCxRQUF4Qjs7QUFDQSxNQUFJO0FBQ0E7QUFDQUEsSUFBQUEsUUFBUSxHQUFHLElBQUlFLEdBQUosQ0FBUUgsV0FBUixFQUFxQkMsUUFBaEM7QUFDSCxHQUhELENBR0UsT0FBT0csQ0FBUCxFQUFVLENBQ1g7O0FBQ0QsU0FBT0gsUUFBUSxLQUFLLE9BQWIsR0FBdUIsSUFBdkIsR0FBOEIsS0FBckM7QUFDSDs7QUFDRCxTQUFTVixrQkFBVCxDQUE0QmMsRUFBNUIsRUFBZ0M7QUFDNUJWLEVBQUFBLGNBQWMsQ0FBQ1csSUFBZixDQUFvQkQsRUFBcEI7QUFDSDs7QUFDRCxTQUFTYixXQUFULENBQXFCZSxJQUFyQixFQUEyQjtBQUN2QixNQUFJLENBQUNiLE1BQUQsSUFBV0EsTUFBTSxDQUFDYyxVQUFQLEtBQXNCZCxNQUFNLENBQUNlLElBQTVDLEVBQWtEO0FBQ2xELFNBQU9mLE1BQU0sQ0FBQ2dCLElBQVAsQ0FBWUgsSUFBWixDQUFQO0FBQ0g7O0FBQ0QsU0FBU2QsVUFBVCxDQUFvQmtCLE9BQXBCLEVBQTZCO0FBQ3pCLE1BQUksQ0FBQ0EsT0FBTyxDQUFDQyxPQUFiLEVBQXNCO0FBQ2xCRCxJQUFBQSxPQUFPLENBQUNDLE9BQVIsR0FBa0IsSUFBSSxJQUF0QjtBQUNIOztBQUNEQyxFQUFBQSxJQUFJO0FBQ0osTUFBSUMsS0FBSyxHQUFHQyxXQUFXLENBQUMsWUFBVztBQUMvQixRQUFJbEIsSUFBSSxDQUFDQyxHQUFMLEtBQWFGLFlBQWIsR0FBNEJlLE9BQU8sQ0FBQ0MsT0FBeEMsRUFBaUQ7QUFDN0NJLE1BQUFBLGdCQUFnQjtBQUNuQjtBQUNKLEdBSnNCLEVBSXBCTCxPQUFPLENBQUNDLE9BQVIsR0FBa0IsQ0FKRSxDQUF2Qjs7QUFLQSxXQUFTQyxJQUFULEdBQWdCO0FBQ1osUUFBSW5CLE1BQUosRUFBWUEsTUFBTSxDQUFDdUIsS0FBUDtBQUNaLG9CQUE2QmYsUUFBN0I7QUFBQSxRQUFRZ0IsUUFBUixhQUFRQSxRQUFSO0FBQUEsUUFBbUJDLElBQW5CLGFBQW1CQSxJQUFuQjtBQUNBLFFBQU1sQixRQUFRLEdBQUdGLGlCQUFpQixDQUFDWSxPQUFPLENBQUNYLFdBQVIsSUFBdUIsRUFBeEIsQ0FBbEM7QUFDQSxRQUFNQSxXQUFXLEdBQUdXLE9BQU8sQ0FBQ1gsV0FBUixDQUFvQm9CLE9BQXBCLENBQTRCLE1BQTVCLEVBQW9DLEVBQXBDLENBQXBCO0FBQ0EsUUFBSUMsR0FBRyxhQUFNcEIsUUFBTixnQkFBb0JpQixRQUFwQixjQUFnQ0MsSUFBaEMsU0FBdUNuQixXQUFXLGNBQU9BLFdBQVAsSUFBdUIsRUFBekUsQ0FBUDs7QUFDQSxRQUFJQSxXQUFXLENBQUNzQixVQUFaLENBQXVCLE1BQXZCLENBQUosRUFBb0M7QUFDaENELE1BQUFBLEdBQUcsYUFBTXBCLFFBQU4sZ0JBQW9CRCxXQUFXLENBQUN1QixLQUFaLENBQWtCLEtBQWxCLEVBQXlCLENBQXpCLENBQXBCLENBQUg7QUFDSDs7QUFDRDdCLElBQUFBLE1BQU0sR0FBRyxJQUFJOEIsTUFBTSxDQUFDQyxTQUFYLFdBQXdCSixHQUF4QixTQUE4QlYsT0FBTyxDQUFDZSxJQUF0QyxFQUFUO0FBQ0FoQyxJQUFBQSxNQUFNLENBQUNpQyxNQUFQLEdBQWdCQyxZQUFoQjtBQUNBbEMsSUFBQUEsTUFBTSxDQUFDbUMsT0FBUCxHQUFpQmIsZ0JBQWpCO0FBQ0F0QixJQUFBQSxNQUFNLENBQUNvQyxTQUFQLEdBQW1CQyxhQUFuQjtBQUNIOztBQUNELFdBQVNILFlBQVQsR0FBd0I7QUFDcEIsUUFBSWpCLE9BQU8sQ0FBQ3FCLEdBQVosRUFBaUJDLE9BQU8sQ0FBQ0QsR0FBUixDQUFZLGlCQUFaO0FBQ2pCcEMsSUFBQUEsWUFBWSxHQUFHQyxJQUFJLENBQUNDLEdBQUwsRUFBZjtBQUNIOztBQUNELFdBQVNpQyxhQUFULENBQXVCRyxLQUF2QixFQUE4QjtBQUMxQnRDLElBQUFBLFlBQVksR0FBR0MsSUFBSSxDQUFDQyxHQUFMLEVBQWY7QUFDQUgsSUFBQUEsY0FBYyxDQUFDd0MsT0FBZixDQUF1QixVQUFDOUIsRUFBRCxFQUFNO0FBQ3pCQSxNQUFBQSxFQUFFLENBQUM2QixLQUFELENBQUY7QUFDSCxLQUZEO0FBR0g7O0FBQ0QsV0FBU2xCLGdCQUFULEdBQTRCO0FBQ3hCb0IsSUFBQUEsYUFBYSxDQUFDdEIsS0FBRCxDQUFiO0FBQ0FwQixJQUFBQSxNQUFNLENBQUN1QixLQUFQO0FBQ0FvQixJQUFBQSxVQUFVLENBQUN4QixJQUFELEVBQU9GLE9BQU8sQ0FBQ0MsT0FBZixDQUFWO0FBQ0g7QUFDSiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvZXJyb3Itb3ZlcmxheS93ZWJzb2NrZXQuanM/YTliZSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuYWRkTWVzc2FnZUxpc3RlbmVyID0gYWRkTWVzc2FnZUxpc3RlbmVyO1xuZXhwb3J0cy5zZW5kTWVzc2FnZSA9IHNlbmRNZXNzYWdlO1xuZXhwb3J0cy5jb25uZWN0SE1SID0gY29ubmVjdEhNUjtcbmxldCBzb3VyY2U7XG5jb25zdCBldmVudENhbGxiYWNrcyA9IFtdO1xubGV0IGxhc3RBY3Rpdml0eSA9IERhdGUubm93KCk7XG5mdW5jdGlvbiBnZXRTb2NrZXRQcm90b2NvbChhc3NldFByZWZpeCkge1xuICAgIGxldCBwcm90b2NvbCA9IGxvY2F0aW9uLnByb3RvY29sO1xuICAgIHRyeSB7XG4gICAgICAgIC8vIGFzc2V0UHJlZml4IGlzIGEgdXJsXG4gICAgICAgIHByb3RvY29sID0gbmV3IFVSTChhc3NldFByZWZpeCkucHJvdG9jb2w7XG4gICAgfSBjYXRjaCAoXykge1xuICAgIH1cbiAgICByZXR1cm4gcHJvdG9jb2wgPT09ICdodHRwOicgPyAnd3MnIDogJ3dzcyc7XG59XG5mdW5jdGlvbiBhZGRNZXNzYWdlTGlzdGVuZXIoY2IpIHtcbiAgICBldmVudENhbGxiYWNrcy5wdXNoKGNiKTtcbn1cbmZ1bmN0aW9uIHNlbmRNZXNzYWdlKGRhdGEpIHtcbiAgICBpZiAoIXNvdXJjZSB8fCBzb3VyY2UucmVhZHlTdGF0ZSAhPT0gc291cmNlLk9QRU4pIHJldHVybjtcbiAgICByZXR1cm4gc291cmNlLnNlbmQoZGF0YSk7XG59XG5mdW5jdGlvbiBjb25uZWN0SE1SKG9wdGlvbnMpIHtcbiAgICBpZiAoIW9wdGlvbnMudGltZW91dCkge1xuICAgICAgICBvcHRpb25zLnRpbWVvdXQgPSA1ICogMTAwMDtcbiAgICB9XG4gICAgaW5pdCgpO1xuICAgIGxldCB0aW1lciA9IHNldEludGVydmFsKGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAoRGF0ZS5ub3coKSAtIGxhc3RBY3Rpdml0eSA+IG9wdGlvbnMudGltZW91dCkge1xuICAgICAgICAgICAgaGFuZGxlRGlzY29ubmVjdCgpO1xuICAgICAgICB9XG4gICAgfSwgb3B0aW9ucy50aW1lb3V0IC8gMik7XG4gICAgZnVuY3Rpb24gaW5pdCgpIHtcbiAgICAgICAgaWYgKHNvdXJjZSkgc291cmNlLmNsb3NlKCk7XG4gICAgICAgIGNvbnN0IHsgaG9zdG5hbWUgLCBwb3J0ICB9ID0gbG9jYXRpb247XG4gICAgICAgIGNvbnN0IHByb3RvY29sID0gZ2V0U29ja2V0UHJvdG9jb2wob3B0aW9ucy5hc3NldFByZWZpeCB8fCAnJyk7XG4gICAgICAgIGNvbnN0IGFzc2V0UHJlZml4ID0gb3B0aW9ucy5hc3NldFByZWZpeC5yZXBsYWNlKC9eXFwvKy8sICcnKTtcbiAgICAgICAgbGV0IHVybCA9IGAke3Byb3RvY29sfTovLyR7aG9zdG5hbWV9OiR7cG9ydH0ke2Fzc2V0UHJlZml4ID8gYC8ke2Fzc2V0UHJlZml4fWAgOiAnJ31gO1xuICAgICAgICBpZiAoYXNzZXRQcmVmaXguc3RhcnRzV2l0aCgnaHR0cCcpKSB7XG4gICAgICAgICAgICB1cmwgPSBgJHtwcm90b2NvbH06Ly8ke2Fzc2V0UHJlZml4LnNwbGl0KCc6Ly8nKVsxXX1gO1xuICAgICAgICB9XG4gICAgICAgIHNvdXJjZSA9IG5ldyB3aW5kb3cuV2ViU29ja2V0KGAke3VybH0ke29wdGlvbnMucGF0aH1gKTtcbiAgICAgICAgc291cmNlLm9ub3BlbiA9IGhhbmRsZU9ubGluZTtcbiAgICAgICAgc291cmNlLm9uZXJyb3IgPSBoYW5kbGVEaXNjb25uZWN0O1xuICAgICAgICBzb3VyY2Uub25tZXNzYWdlID0gaGFuZGxlTWVzc2FnZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaGFuZGxlT25saW5lKCkge1xuICAgICAgICBpZiAob3B0aW9ucy5sb2cpIGNvbnNvbGUubG9nKCdbSE1SXSBjb25uZWN0ZWQnKTtcbiAgICAgICAgbGFzdEFjdGl2aXR5ID0gRGF0ZS5ub3coKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaGFuZGxlTWVzc2FnZShldmVudCkge1xuICAgICAgICBsYXN0QWN0aXZpdHkgPSBEYXRlLm5vdygpO1xuICAgICAgICBldmVudENhbGxiYWNrcy5mb3JFYWNoKChjYik9PntcbiAgICAgICAgICAgIGNiKGV2ZW50KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGhhbmRsZURpc2Nvbm5lY3QoKSB7XG4gICAgICAgIGNsZWFySW50ZXJ2YWwodGltZXIpO1xuICAgICAgICBzb3VyY2UuY2xvc2UoKTtcbiAgICAgICAgc2V0VGltZW91dChpbml0LCBvcHRpb25zLnRpbWVvdXQpO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9d2Vic29ja2V0LmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImFkZE1lc3NhZ2VMaXN0ZW5lciIsInNlbmRNZXNzYWdlIiwiY29ubmVjdEhNUiIsInNvdXJjZSIsImV2ZW50Q2FsbGJhY2tzIiwibGFzdEFjdGl2aXR5IiwiRGF0ZSIsIm5vdyIsImdldFNvY2tldFByb3RvY29sIiwiYXNzZXRQcmVmaXgiLCJwcm90b2NvbCIsImxvY2F0aW9uIiwiVVJMIiwiXyIsImNiIiwicHVzaCIsImRhdGEiLCJyZWFkeVN0YXRlIiwiT1BFTiIsInNlbmQiLCJvcHRpb25zIiwidGltZW91dCIsImluaXQiLCJ0aW1lciIsInNldEludGVydmFsIiwiaGFuZGxlRGlzY29ubmVjdCIsImNsb3NlIiwiaG9zdG5hbWUiLCJwb3J0IiwicmVwbGFjZSIsInVybCIsInN0YXJ0c1dpdGgiLCJzcGxpdCIsIndpbmRvdyIsIldlYlNvY2tldCIsInBhdGgiLCJvbm9wZW4iLCJoYW5kbGVPbmxpbmUiLCJvbmVycm9yIiwib25tZXNzYWdlIiwiaGFuZGxlTWVzc2FnZSIsImxvZyIsImNvbnNvbGUiLCJldmVudCIsImZvckVhY2giLCJjbGVhckludGVydmFsIiwic2V0VGltZW91dCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/error-overlay/websocket.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/dev/fouc.js": +/*!***************************************************!*\ + !*** ./node_modules/next/dist/client/dev/fouc.js ***! + \***************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.displayContent = displayContent;\n\nfunction displayContent(callback) {\n (window.requestAnimationFrame || setTimeout)(function () {\n for (var x = document.querySelectorAll('[data-next-hide-fouc]'), i = x.length; i--;) {\n x[i].parentNode.removeChild(x[i]);\n }\n\n if (callback) {\n callback();\n }\n });\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvZm91Yy5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELHNCQUFBLEdBQXlCRSxjQUF6Qjs7QUFDQSxTQUFTQSxjQUFULENBQXdCQyxRQUF4QixFQUFrQztBQUM5QixHQUFDQyxNQUFNLENBQUNDLHFCQUFQLElBQWdDQyxVQUFqQyxFQUE2QyxZQUFXO0FBQ3BELFNBQUksSUFBSUMsQ0FBQyxHQUFHQyxRQUFRLENBQUNDLGdCQUFULENBQTBCLHVCQUExQixDQUFSLEVBQTREQyxDQUFDLEdBQUdILENBQUMsQ0FBQ0ksTUFBdEUsRUFBOEVELENBQUMsRUFBL0UsR0FBbUY7QUFDL0VILE1BQUFBLENBQUMsQ0FBQ0csQ0FBRCxDQUFELENBQUtFLFVBQUwsQ0FBZ0JDLFdBQWhCLENBQTRCTixDQUFDLENBQUNHLENBQUQsQ0FBN0I7QUFDSDs7QUFDRCxRQUFJUCxRQUFKLEVBQWM7QUFDVkEsTUFBQUEsUUFBUTtBQUNYO0FBQ0osR0FQRDtBQVFIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2Rldi9mb3VjLmpzPzAwODciXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRpc3BsYXlDb250ZW50ID0gZGlzcGxheUNvbnRlbnQ7XG5mdW5jdGlvbiBkaXNwbGF5Q29udGVudChjYWxsYmFjaykge1xuICAgICh3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lIHx8IHNldFRpbWVvdXQpKGZ1bmN0aW9uKCkge1xuICAgICAgICBmb3IodmFyIHggPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1uZXh0LWhpZGUtZm91Y10nKSwgaSA9IHgubGVuZ3RoOyBpLS07KXtcbiAgICAgICAgICAgIHhbaV0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh4W2ldKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Zm91Yy5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJkaXNwbGF5Q29udGVudCIsImNhbGxiYWNrIiwid2luZG93IiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwic2V0VGltZW91dCIsIngiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJpIiwibGVuZ3RoIiwicGFyZW50Tm9kZSIsInJlbW92ZUNoaWxkIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/fouc.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/dev/on-demand-entries-client.js": +/*!***********************************************************************!*\ + !*** ./node_modules/next/dist/client/dev/on-demand-entries-client.js ***! + \***********************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _regeneratorRuntime = __webpack_require__(/*! ./node_modules/@babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _router = _interopRequireDefault(__webpack_require__(/*! next/router */ \"./node_modules/next/router.js\"));\n\nvar _websocket = __webpack_require__(/*! ./error-overlay/websocket */ \"./node_modules/next/dist/client/dev/error-overlay/websocket.js\");\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar _default = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n setInterval(function () {\n (0, _websocket).sendMessage(JSON.stringify({\n event: 'ping',\n page: _router[\"default\"].pathname\n }));\n }, 2500);\n (0, _websocket).addMessageListener(function (event) {\n if (event.data.indexOf('{') === -1) return;\n\n try {\n var payload = JSON.parse(event.data); // don't attempt fetching the page if we're already showing\n // the dev overlay as this can cause the error to be triggered\n // repeatedly\n\n if (payload.event === 'pong' && payload.invalid && !self.__NEXT_DATA__.err) {\n // Payload can be invalid even if the page does exist.\n // So, we check if it can be created.\n fetch(location.href, {\n credentials: 'same-origin'\n }).then(function (pageRes) {\n if (pageRes.status === 200) {\n // Page exists now, reload\n location.reload();\n } else {\n // Page doesn't exist\n if (self.__NEXT_DATA__.page === _router[\"default\"].pathname && _router[\"default\"].pathname !== '/_error') {\n // We are still on the page,\n // reload to show 404 error page\n location.reload();\n }\n }\n });\n }\n } catch (err) {\n console.error('on-demand-entries failed to parse response', err);\n }\n });\n\n case 2:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n}));\n\nexports[\"default\"] = _default;\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvb24tZGVtYW5kLWVudHJpZXMtY2xpZW50LmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7OztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxrQkFBQSxHQUFrQixLQUFLLENBQXZCOztBQUNBLElBQUlFLE9BQU8sR0FBR0Msc0JBQXNCLENBQUNDLG1CQUFPLENBQUMsa0RBQUQsQ0FBUixDQUFwQzs7QUFDQSxJQUFJQyxVQUFVLEdBQUdELG1CQUFPLENBQUMsaUdBQUQsQ0FBeEI7O0FBQ0EsU0FBU0Usa0JBQVQsQ0FBNEJDLEdBQTVCLEVBQWlDQyxPQUFqQyxFQUEwQ0MsTUFBMUMsRUFBa0RDLEtBQWxELEVBQXlEQyxNQUF6RCxFQUFpRUMsR0FBakUsRUFBc0VDLEdBQXRFLEVBQTJFO0FBQ3ZFLE1BQUk7QUFDQSxRQUFJQyxJQUFJLEdBQUdQLEdBQUcsQ0FBQ0ssR0FBRCxDQUFILENBQVNDLEdBQVQsQ0FBWDtBQUNBLFFBQUlaLEtBQUssR0FBR2EsSUFBSSxDQUFDYixLQUFqQjtBQUNILEdBSEQsQ0FHRSxPQUFPYyxLQUFQLEVBQWM7QUFDWk4sSUFBQUEsTUFBTSxDQUFDTSxLQUFELENBQU47QUFDQTtBQUNIOztBQUNELE1BQUlELElBQUksQ0FBQ0UsSUFBVCxFQUFlO0FBQ1hSLElBQUFBLE9BQU8sQ0FBQ1AsS0FBRCxDQUFQO0FBQ0gsR0FGRCxNQUVPO0FBQ0hnQixJQUFBQSxPQUFPLENBQUNULE9BQVIsQ0FBZ0JQLEtBQWhCLEVBQXVCaUIsSUFBdkIsQ0FBNEJSLEtBQTVCLEVBQW1DQyxNQUFuQztBQUNIO0FBQ0o7O0FBQ0QsU0FBU1EsaUJBQVQsQ0FBMkJDLEVBQTNCLEVBQStCO0FBQzNCLFNBQU8sWUFBVztBQUNkLFFBQUlDLElBQUksR0FBRyxJQUFYO0FBQUEsUUFBaUJDLElBQUksR0FBR0MsU0FBeEI7QUFDQSxXQUFPLElBQUlOLE9BQUosQ0FB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NkIsUUFBbEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvZGV2L29uLWRlbWFuZC1lbnRyaWVzLWNsaWVudC5qcz84NDVjIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gdm9pZCAwO1xudmFyIF9yb3V0ZXIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJuZXh0L3JvdXRlclwiKSk7XG52YXIgX3dlYnNvY2tldCA9IHJlcXVpcmUoXCIuL2Vycm9yLW92ZXJsYXkvd2Vic29ja2V0XCIpO1xuZnVuY3Rpb24gYXN5bmNHZW5lcmF0b3JTdGVwKGdlbiwgcmVzb2x2ZSwgcmVqZWN0LCBfbmV4dCwgX3Rocm93LCBrZXksIGFyZykge1xuICAgIHRyeSB7XG4gICAgICAgIHZhciBpbmZvID0gZ2VuW2tleV0oYXJnKTtcbiAgICAgICAgdmFyIHZhbHVlID0gaW5mby52YWx1ZTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChpbmZvLmRvbmUpIHtcbiAgICAgICAgcmVzb2x2ZSh2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKHZhbHVlKS50aGVuKF9uZXh0LCBfdGhyb3cpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIF9hc3luY1RvR2VuZXJhdG9yKGZuKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgc2VsZiA9IHRoaXMsIGFyZ3MgPSBhcmd1bWVudHM7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgICAgIHZhciBnZW4gPSBmbi5hcHBseShzZWxmLCBhcmdzKTtcbiAgICAgICAgICAgIGZ1bmN0aW9uIF9uZXh0KHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgYXN5bmNHZW5lcmF0b3JTdGVwKGdlbiwgcmVzb2x2ZSwgcmVqZWN0LCBfbmV4dCwgX3Rocm93LCBcIm5leHRcIiwgdmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZnVuY3Rpb24gX3Rocm93KGVycikge1xuICAgICAgICAgICAgICAgIGFzeW5jR2VuZXJhdG9yU3RlcChnZW4sIHJlc29sdmUsIHJlamVjdCwgX25leHQsIF90aHJvdywgXCJ0aHJvd1wiLCBlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgX25leHQodW5kZWZpbmVkKTtcbiAgICAgICAgfSk7XG4gICAgfTtcbn1cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbnZhciBfZGVmYXVsdCA9IF9hc3luY1RvR2VuZXJhdG9yKGZ1bmN0aW9uKigpIHtcbiAgICBzZXRJbnRlcnZhbCgoKT0+e1xuICAgICAgICAoMCwgX3dlYnNvY2tldCkuc2VuZE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgZXZlbnQ6ICdwaW5nJyxcbiAgICAgICAgICAgIHBhZ2U6IF9yb3V0ZXIuZGVmYXVsdC5wYXRobmFtZVxuICAgICAgICB9KSk7XG4gICAgfSwgMjUwMCk7XG4gICAgKDAsIF93ZWJzb2NrZXQpLmFkZE1lc3NhZ2VMaXN0ZW5lcigoZXZlbnQpPT57XG4gICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoJ3snKSA9PT0gLTEpIHJldHVybjtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHBheWxvYWQgPSBKU09OLnBhcnNlKGV2ZW50LmRhdGEpO1xuICAgICAgICAgICAgLy8gZG9uJ3QgYXR0ZW1wdCBmZXRjaGluZyB0aGUgcGFnZSBpZiB3ZSdyZSBhbHJlYWR5IHNob3dpbmdcbiAgICAgICAgICAgIC8vIHRoZSBkZXYgb3ZlcmxheSBhcyB0aGlzIGNhbiBjYXVzZSB0aGUgZXJyb3IgdG8gYmUgdHJpZ2dlcmVkXG4gICAgICAgICAgICAvLyByZXBlYXRlZGx5XG4gICAgICAgICAgICBpZiAocGF5bG9hZC5ldmVudCA9PT0gJ3BvbmcnICYmIHBheWxvYWQuaW52YWxpZCAmJiAhc2VsZi5fX05FWFRfREFUQV9fLmVycikge1xuICAgICAgICAgICAgICAgIC8vIFBheWxvYWQgY2FuIGJlIGludmFsaWQgZXZlbiBpZiB0aGUgcGFnZSBkb2VzIGV4aXN0LlxuICAgICAgICAgICAgICAgIC8vIFNvLCB3ZSBjaGVjayBpZiBpdCBjYW4gYmUgY3JlYXRlZC5cbiAgICAgICAgICAgICAgICBmZXRjaChsb2NhdGlvbi5ocmVmLCB7XG4gICAgICAgICAgICAgICAgICAgIGNyZWRlbnRpYWxzOiAnc2FtZS1vcmlnaW4nXG4gICAgICAgICAgICAgICAgfSkudGhlbigocGFnZVJlcyk9PntcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBhZ2VSZXMuc3RhdHVzID09PSAyMDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBhZ2UgZXhpc3RzIG5vdywgcmVsb2FkXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBhZ2UgZG9lc24ndCBleGlzdFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGYuX19ORVhUX0RBVEFfXy5wYWdlID09PSBfcm91dGVyLmRlZmF1bHQucGF0aG5hbWUgJiYgX3JvdXRlci5kZWZhdWx0LnBhdGhuYW1lICE9PSAnL19lcnJvcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBhcmUgc3RpbGwgb24gdGhlIHBhZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVsb2FkIHRvIHNob3cgNDA0IGVycm9yIHBhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ29uLWRlbWFuZC1lbnRyaWVzIGZhaWxlZCB0byBwYXJzZSByZXNwb25zZScsIGVycik7XG4gICAgICAgIH1cbiAgICB9KTtcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW9uLWRlbWFuZC1lbnRyaWVzLWNsaWVudC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJfcm91dGVyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfd2Vic29ja2V0IiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwicmVzb2x2ZSIsInJlamVjdCIsIl9uZXh0IiwiX3Rocm93Iiwia2V5IiwiYXJnIiwiaW5mbyIsImVycm9yIiwiZG9uZSIsIlByb21pc2UiLCJ0aGVuIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJmbiIsInNlbGYiLCJhcmdzIiwiYXJndW1lbnRzIiwiYXBwbHkiLCJlcnIiLCJ1bmRlZmluZWQiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX2RlZmF1bHQiLCJzZXRJbnRlcnZhbCIsInNlbmRNZXNzYWdlIiwiSlNPTiIsInN0cmluZ2lmeSIsImV2ZW50IiwicGFnZSIsInBhdGhuYW1lIiwiYWRkTWVzc2FnZUxpc3RlbmVyIiwiZGF0YSIsImluZGV4T2YiLCJwYXlsb2FkIiwicGFyc2UiLCJpbnZhbGlkIiwiX19ORVhUX0RBVEFfXyIsImZldGNoIiwibG9jYXRpb24iLCJocmVmIiwiY3JlZGVudGlhbHMiLCJwYWdlUmVzIiwic3RhdHVzIiwicmVsb2FkIiwiY29uc29sZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/on-demand-entries-client.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/normalize-trailing-slash.js": +/*!*******************************************************************!*\ + !*** ./node_modules/next/dist/client/normalize-trailing-slash.js ***! + \*******************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.removePathTrailingSlash = removePathTrailingSlash;\nexports.normalizePathTrailingSlash = void 0;\n\nfunction removePathTrailingSlash(path) {\n return path.endsWith('/') && path !== '/' ? path.slice(0, -1) : path;\n}\n\nvar normalizePathTrailingSlash = true ? function (path) {\n if (/\\.[^/]+\\/?$/.test(path)) {\n return removePathTrailingSlash(path);\n } else if (path.endsWith('/')) {\n return path;\n } else {\n return path + '/';\n }\n} : 0;\nexports.normalizePathTrailingSlash = normalizePathTrailingSlash;\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9ub3JtYWxpemUtdHJhaWxpbmctc2xhc2guanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCwrQkFBQSxHQUFrQ0UsdUJBQWxDO0FBQ0FGLGtDQUFBLEdBQXFDLEtBQUssQ0FBMUM7O0FBQ0EsU0FBU0UsdUJBQVQsQ0FBaUNFLElBQWpDLEVBQXVDO0FBQ25DLFNBQU9BLElBQUksQ0FBQ0MsUUFBTCxDQUFjLEdBQWQsS0FBc0JELElBQUksS0FBSyxHQUEvQixHQUFxQ0EsSUFBSSxDQUFDRSxLQUFMLENBQVcsQ0FBWCxFQUFjLENBQUMsQ0FBZixDQUFyQyxHQUF5REYsSUFBaEU7QUFDSDs7QUFDRCxJQUFNRCwwQkFBMEIsR0FBR0ksS0FBQSxHQUFvQyxVQUFDSCxJQUFELEVBQVE7QUFDM0UsTUFBSSxjQUFjTSxJQUFkLENBQW1CTixJQUFuQixDQUFKLEVBQThCO0FBQzFCLFdBQU9GLHVCQUF1QixDQUFDRSxJQUFELENBQTlCO0FBQ0gsR0FGRCxNQUVPLElBQUlBLElBQUksQ0FBQ0MsUUFBTCxDQUFjLEdBQWQsQ0FBSixFQUF3QjtBQUMzQixXQUFPRCxJQUFQO0FBQ0gsR0FGTSxNQUVBO0FBQ0gsV0FBT0EsSUFBSSxHQUFHLEdBQWQ7QUFDSDtBQUNKLENBUmtDLEdBUS9CRixDQVJKO0FBU0FGLGtDQUFBLEdBQXFDRywwQkFBckMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvbm9ybWFsaXplLXRyYWlsaW5nLXNsYXNoLmpzPzRjMmUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLnJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoID0gcmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2g7XG5leHBvcnRzLm5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoID0gdm9pZCAwO1xuZnVuY3Rpb24gcmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2gocGF0aCkge1xuICAgIHJldHVybiBwYXRoLmVuZHNXaXRoKCcvJykgJiYgcGF0aCAhPT0gJy8nID8gcGF0aC5zbGljZSgwLCAtMSkgOiBwYXRoO1xufVxuY29uc3Qgbm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2ggPSBwcm9jZXNzLmVudi5fX05FWFRfVFJBSUxJTkdfU0xBU0ggPyAocGF0aCk9PntcbiAgICBpZiAoL1xcLlteL10rXFwvPyQvLnRlc3QocGF0aCkpIHtcbiAgICAgICAgcmV0dXJuIHJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoKHBhdGgpO1xuICAgIH0gZWxzZSBpZiAocGF0aC5lbmRzV2l0aCgnLycpKSB7XG4gICAgICAgIHJldHVybiBwYXRoO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBwYXRoICsgJy8nO1xuICAgIH1cbn0gOiByZW1vdmVQYXRoVHJhaWxpbmdTbGFzaDtcbmV4cG9ydHMubm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2ggPSBub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaDtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bm9ybWFsaXplLXRyYWlsaW5nLXNsYXNoLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsInJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoIiwibm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2giLCJwYXRoIiwiZW5kc1dpdGgiLCJzbGljZSIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfVFJBSUxJTkdfU0xBU0giLCJ0ZXN0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/normalize-trailing-slash.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/request-idle-callback.js": +/*!****************************************************************!*\ + !*** ./node_modules/next/dist/client/request-idle-callback.js ***! + \****************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.cancelIdleCallback = exports.requestIdleCallback = void 0;\n\nvar requestIdleCallback = typeof self !== 'undefined' && self.requestIdleCallback && self.requestIdleCallback.bind(window) || function (cb) {\n var start = Date.now();\n return setTimeout(function () {\n cb({\n didTimeout: false,\n timeRemaining: function timeRemaining() {\n return Math.max(0, 50 - (Date.now() - start));\n }\n });\n }, 1);\n};\n\nexports.requestIdleCallback = requestIdleCallback;\n\nvar cancelIdleCallback = typeof self !== 'undefined' && self.cancelIdleCallback && self.cancelIdleCallback.bind(window) || function (id) {\n return clearTimeout(id);\n};\n\nexports.cancelIdleCallback = cancelIdleCallback;\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yZXF1ZXN0LWlkbGUtY2FsbGJhY2suanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCwwQkFBQSxHQUE2QkEsMkJBQUEsR0FBOEIsS0FBSyxDQUFoRTs7QUFDQSxJQUFNRyxtQkFBbUIsR0FBRyxPQUFPQyxJQUFQLEtBQWdCLFdBQWhCLElBQStCQSxJQUFJLENBQUNELG1CQUFwQyxJQUEyREMsSUFBSSxDQUFDRCxtQkFBTCxDQUF5QkUsSUFBekIsQ0FBOEJDLE1BQTlCLENBQTNELElBQW9HLFVBQVNDLEVBQVQsRUFBYTtBQUN6SSxNQUFJQyxLQUFLLEdBQUdDLElBQUksQ0FBQ0MsR0FBTCxFQUFaO0FBQ0EsU0FBT0MsVUFBVSxDQUFDLFlBQVc7QUFDekJKLElBQUFBLEVBQUUsQ0FBQztBQUNDSyxNQUFBQSxVQUFVLEVBQUUsS0FEYjtBQUVDQyxNQUFBQSxhQUFhLEVBQUUseUJBQVc7QUFDdEIsZUFBT0MsSUFBSSxDQUFDQyxHQUFMLENBQVMsQ0FBVCxFQUFZLE1BQU1OLElBQUksQ0FBQ0MsR0FBTCxLQUFhRixLQUFuQixDQUFaLENBQVA7QUFDSDtBQUpGLEtBQUQsQ0FBRjtBQU1ILEdBUGdCLEVBT2QsQ0FQYyxDQUFqQjtBQVFILENBVkQ7O0FBV0FSLDJCQUFBLEdBQThCRyxtQkFBOUI7O0FBQ0EsSUFBTUQsa0JBQWtCLEdBQUcsT0FBT0UsSUFBUCxLQUFnQixXQUFoQixJQUErQkEsSUFBSSxDQUFDRixrQkFBcEMsSUFBMERFLElBQUksQ0FBQ0Ysa0JBQUwsQ0FBd0JHLElBQXhCLENBQTZCQyxNQUE3QixDQUExRCxJQUFrRyxVQUFTVSxFQUFULEVBQWE7QUFDdEksU0FBT0MsWUFBWSxDQUFDRCxFQUFELENBQW5CO0FBQ0gsQ0FGRDs7QUFHQWhCLDBCQUFBLEdBQTZCRSxrQkFBN0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvcmVxdWVzdC1pZGxlLWNhbGxiYWNrLmpzPzFlMjAiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmNhbmNlbElkbGVDYWxsYmFjayA9IGV4cG9ydHMucmVxdWVzdElkbGVDYWxsYmFjayA9IHZvaWQgMDtcbmNvbnN0IHJlcXVlc3RJZGxlQ2FsbGJhY2sgPSB0eXBlb2Ygc2VsZiAhPT0gJ3VuZGVmaW5lZCcgJiYgc2VsZi5yZXF1ZXN0SWRsZUNhbGxiYWNrICYmIHNlbGYucmVxdWVzdElkbGVDYWxsYmFjay5iaW5kKHdpbmRvdykgfHwgZnVuY3Rpb24oY2IpIHtcbiAgICBsZXQgc3RhcnQgPSBEYXRlLm5vdygpO1xuICAgIHJldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICBjYih7XG4gICAgICAgICAgICBkaWRUaW1lb3V0OiBmYWxzZSxcbiAgICAgICAgICAgIHRpbWVSZW1haW5pbmc6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBNYXRoLm1heCgwLCA1MCAtIChEYXRlLm5vdygpIC0gc3RhcnQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSwgMSk7XG59O1xuZXhwb3J0cy5yZXF1ZXN0SWRsZUNhbGxiYWNrID0gcmVxdWVzdElkbGVDYWxsYmFjaztcbmNvbnN0IGNhbmNlbElkbGVDYWxsYmFjayA9IHR5cGVvZiBzZWxmICE9PSAndW5kZWZpbmVkJyAmJiBzZWxmLmNhbmNlbElkbGVDYWxsYmFjayAmJiBzZWxmLmNhbmNlbElkbGVDYWxsYmFjay5iaW5kKHdpbmRvdykgfHwgZnVuY3Rpb24oaWQpIHtcbiAgICByZXR1cm4gY2xlYXJUaW1lb3V0KGlkKTtcbn07XG5leHBvcnRzLmNhbmNlbElkbGVDYWxsYmFjayA9IGNhbmNlbElkbGVDYWxsYmFjaztcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVxdWVzdC1pZGxlLWNhbGxiYWNrLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImNhbmNlbElkbGVDYWxsYmFjayIsInJlcXVlc3RJZGxlQ2FsbGJhY2siLCJzZWxmIiwiYmluZCIsIndpbmRvdyIsImNiIiwic3RhcnQiLCJEYXRlIiwibm93Iiwic2V0VGltZW91dCIsImRpZFRpbWVvdXQiLCJ0aW1lUmVtYWluaW5nIiwiTWF0aCIsIm1heCIsImlkIiwiY2xlYXJUaW1lb3V0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/request-idle-callback.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/route-loader.js": +/*!*******************************************************!*\ + !*** ./node_modules/next/dist/client/route-loader.js ***! + \*******************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.markAssetError = markAssetError;\nexports.isAssetError = isAssetError;\nexports.getClientBuildManifest = getClientBuildManifest;\nexports.getMiddlewareManifest = getMiddlewareManifest;\nexports.createRouteLoader = createRouteLoader;\n\nvar _getAssetPathFromRoute = _interopRequireDefault(__webpack_require__(/*! ../shared/lib/router/utils/get-asset-path-from-route */ \"./node_modules/next/dist/shared/lib/router/utils/get-asset-path-from-route.js\"));\n\nvar _requestIdleCallback = __webpack_require__(/*! ./request-idle-callback */ \"./node_modules/next/dist/client/request-idle-callback.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n} // 3.8s was arbitrarily chosen as it's what https://web.dev/interactive\n// considers as \"Good\" time-to-interactive. We must assume something went\n// wrong beyond this point, and then fall-back to a full page transition to\n// show the user something of value.\n\n\nvar MS_MAX_IDLE_DELAY = 3800;\n\nfunction withFuture(key, map, generator) {\n var entry = map.get(key);\n\n if (entry) {\n if ('future' in entry) {\n return entry.future;\n }\n\n return Promise.resolve(entry);\n }\n\n var resolver;\n var prom = new Promise(function (resolve) {\n resolver = resolve;\n });\n map.set(key, entry = {\n resolve: resolver,\n future: prom\n });\n return generator ? generator() // eslint-disable-next-line no-sequences\n .then(function (value) {\n return resolver(value), value;\n })[\"catch\"](function (err) {\n map[\"delete\"](key);\n throw err;\n }) : prom;\n}\n\nfunction hasPrefetch(link) {\n try {\n link = document.createElement('link');\n return (// detect IE11 since it supports prefetch but isn't detected\n // with relList.support\n !!window.MSInputMethodContext && !!document.documentMode || link.relList.supports('prefetch')\n );\n } catch (e) {\n return false;\n }\n}\n\nvar canPrefetch = hasPrefetch();\n\nfunction prefetchViaDom(href, as, link) {\n return new Promise(function (res, rej) {\n var selector = \"\\n link[rel=\\\"prefetch\\\"][href^=\\\"\".concat(href, \"\\\"],\\n link[rel=\\\"preload\\\"][href^=\\\"\").concat(href, \"\\\"],\\n script[src^=\\\"\").concat(href, \"\\\"]\");\n\n if (document.querySelector(selector)) {\n return res();\n }\n\n link = document.createElement('link'); // The order of property assignment here is intentional:\n\n if (as) link.as = as;\n link.rel = \"prefetch\";\n link.crossOrigin = undefined;\n link.onload = res;\n link.onerror = rej; // `href` should always be last:\n\n link.href = href;\n document.head.appendChild(link);\n });\n}\n\nvar ASSET_LOAD_ERROR = Symbol('ASSET_LOAD_ERROR');\n\nfunction markAssetError(err) {\n return Object.defineProperty(err, ASSET_LOAD_ERROR, {});\n}\n\nfunction isAssetError(err) {\n return err && ASSET_LOAD_ERROR in err;\n}\n\nfunction appendScript(src, script) {\n return new Promise(function (resolve, reject) {\n script = document.createElement('script'); // The order of property assignment here is intentional.\n // 1. Setup success/failure hooks in case the browser synchronously\n // executes when `src` is set.\n\n script.onload = resolve;\n\n script.onerror = function () {\n return reject(markAssetError(new Error(\"Failed to load script: \".concat(src))));\n }; // 2. Configure the cross-origin attribute before setting `src` in case the\n // browser begins to fetch.\n\n\n script.crossOrigin = undefined; // 3. Finally, set the source and inject into the DOM in case the child\n // must be appended for fetching to start.\n\n script.src = src;\n document.body.appendChild(script);\n });\n} // We wait for pages to be built in dev before we start the route transition\n// timeout to prevent an un-necessary hard navigation in development.\n\n\nvar devBuildPromise; // Resolve a promise that times out after given amount of milliseconds.\n\nfunction resolvePromiseWithTimeout(p, ms, err) {\n return new Promise(function (resolve, reject) {\n var cancelled = false;\n p.then(function (r) {\n // Resolved, cancel the timeout\n cancelled = true;\n resolve(r);\n })[\"catch\"](reject); // We wrap these checks separately for better dead-code elimination in\n // production bundles.\n\n if (true) {\n (devBuildPromise || Promise.resolve()).then(function () {\n (0, _requestIdleCallback).requestIdleCallback(function () {\n return setTimeout(function () {\n if (!cancelled) {\n reject(err);\n }\n }, ms);\n });\n });\n }\n\n if (false) {}\n });\n}\n\nfunction getClientBuildManifest() {\n if (self.__BUILD_MANIFEST) {\n return Promise.resolve(self.__BUILD_MANIFEST);\n }\n\n var onBuildManifest = new Promise(function (resolve) {\n // Mandatory because this is not concurrent safe:\n var cb = self.__BUILD_MANIFEST_CB;\n\n self.__BUILD_MANIFEST_CB = function () {\n resolve(self.__BUILD_MANIFEST);\n cb && cb();\n };\n });\n return resolvePromiseWithTimeout(onBuildManifest, MS_MAX_IDLE_DELAY, markAssetError(new Error('Failed to load client build manifest')));\n}\n\nfunction getMiddlewareManifest() {\n if (self.__MIDDLEWARE_MANIFEST) {\n return Promise.resolve(self.__MIDDLEWARE_MANIFEST);\n }\n\n var onMiddlewareManifest = new Promise(function (resolve) {\n var cb = self.__MIDDLEWARE_MANIFEST_CB;\n\n self.__MIDDLEWARE_MANIFEST_CB = function () {\n resolve(self.__MIDDLEWARE_MANIFEST);\n cb && cb();\n };\n });\n return resolvePromiseWithTimeout(onMiddlewareManifest, MS_MAX_IDLE_DELAY, markAssetError(new Error('Failed to load client middleware manifest')));\n}\n\nfunction getFilesForRoute(assetPrefix, route) {\n if (true) {\n return Promise.resolve({\n scripts: [assetPrefix + '/_next/static/chunks/pages' + encodeURI((0, _getAssetPathFromRoute)[\"default\"](route, '.js'))],\n // Styles are handled by `style-loader` in development:\n css: []\n });\n }\n\n return getClientBuildManifest().then(function (manifest) {\n if (!(route in manifest)) {\n throw markAssetError(new Error(\"Failed to lookup route: \".concat(route)));\n }\n\n var allFiles = manifest[route].map(function (entry) {\n return assetPrefix + '/_next/' + encodeURI(entry);\n });\n return {\n scripts: allFiles.filter(function (v) {\n return v.endsWith('.js');\n }),\n css: allFiles.filter(function (v) {\n return v.endsWith('.css');\n })\n };\n });\n}\n\nfunction createRouteLoader(assetPrefix) {\n var entrypoints = new Map();\n var loadedScripts = new Map();\n var styleSheets = new Map();\n var routes = new Map();\n\n function maybeExecuteScript(src) {\n // With HMR we might need to \"reload\" scripts when they are\n // disposed and readded. Executing scripts twice has no functional\n // differences\n if (false) { var prom; } else {\n return appendScript(src);\n }\n }\n\n function fetchStyleSheet(href) {\n var prom = styleSheets.get(href);\n\n if (prom) {\n return prom;\n }\n\n styleSheets.set(href, prom = fetch(href).then(function (res) {\n if (!res.ok) {\n throw new Error(\"Failed to load stylesheet: \".concat(href));\n }\n\n return res.text().then(function (text) {\n return {\n href: href,\n content: text\n };\n });\n })[\"catch\"](function (err) {\n throw markAssetError(err);\n }));\n return prom;\n }\n\n return {\n whenEntrypoint: function whenEntrypoint(route) {\n return withFuture(route, entrypoints);\n },\n onEntrypoint: function onEntrypoint(route, execute) {\n (execute ? Promise.resolve().then(function () {\n return execute();\n }).then(function (exports) {\n return {\n component: exports && exports[\"default\"] || exports,\n exports: exports\n };\n }, function (err) {\n return {\n error: err\n };\n }) : Promise.resolve(undefined)).then(function (input) {\n var old = entrypoints.get(route);\n\n if (old && 'resolve' in old) {\n if (input) {\n entrypoints.set(route, input);\n old.resolve(input);\n }\n } else {\n if (input) {\n entrypoints.set(route, input);\n } else {\n entrypoints[\"delete\"](route);\n } // when this entrypoint has been resolved before\n // the route is outdated and we want to invalidate\n // this cache entry\n\n\n routes[\"delete\"](route);\n }\n });\n },\n loadRoute: function loadRoute(route, prefetch) {\n var _this = this;\n\n return withFuture(route, routes, function () {\n var routeFilesPromise = getFilesForRoute(assetPrefix, route).then(function (_ref) {\n var scripts = _ref.scripts,\n css = _ref.css;\n return Promise.all([entrypoints.has(route) ? [] : Promise.all(scripts.map(maybeExecuteScript)), Promise.all(css.map(fetchStyleSheet))]);\n }).then(function (res) {\n return _this.whenEntrypoint(route).then(function (entrypoint) {\n return {\n entrypoint: entrypoint,\n styles: res[1]\n };\n });\n });\n\n if (true) {\n devBuildPromise = new Promise(function (resolve) {\n if (routeFilesPromise) {\n return routeFilesPromise[\"finally\"](function () {\n resolve();\n });\n }\n });\n }\n\n return resolvePromiseWithTimeout(routeFilesPromise, MS_MAX_IDLE_DELAY, markAssetError(new Error(\"Route did not complete loading: \".concat(route)))).then(function (_ref2) {\n var entrypoint = _ref2.entrypoint,\n styles = _ref2.styles;\n var res = Object.assign({\n styles: styles\n }, entrypoint);\n return 'error' in entrypoint ? entrypoint : res;\n })[\"catch\"](function (err) {\n if (prefetch) {\n // we don't want to cache errors during prefetch\n throw err;\n }\n\n return {\n error: err\n };\n });\n });\n },\n prefetch: function prefetch(route) {\n var _this2 = this;\n\n // https://github.com/GoogleChromeLabs/quicklink/blob/453a661fa1fa940e2d2e044452398e38c67a98fb/src/index.mjs#L115-L118\n // License: Apache 2.0\n var cn;\n\n if (cn = navigator.connection) {\n // Don't prefetch if using 2G or if Save-Data is enabled.\n if (cn.saveData || /2g/.test(cn.effectiveType)) return Promise.resolve();\n }\n\n return getFilesForRoute(assetPrefix, route).then(function (output) {\n return Promise.all(canPrefetch ? output.scripts.map(function (script) {\n return prefetchViaDom(script, 'script');\n }) : []);\n }).then(function () {\n (0, _requestIdleCallback).requestIdleCallback(function () {\n return _this2.loadRoute(route, true)[\"catch\"](function () {});\n });\n })[\"catch\"]( // swallow prefetch errors\n function () {});\n }\n };\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yb3V0ZS1sb2FkZXIuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxzQkFBQSxHQUF5QkUsY0FBekI7QUFDQUYsb0JBQUEsR0FBdUJHLFlBQXZCO0FBQ0FILDhCQUFBLEdBQWlDSSxzQkFBakM7QUFDQUosNkJBQUEsR0FBZ0NLLHFCQUFoQztBQUNBTCx5QkFBQSxHQUE0Qk0saUJBQTVCOztBQUNBLElBQUlDLHNCQUFzQixHQUFHQyxzQkFBc0IsQ0FBQ0MsbUJBQU8sQ0FBQywySUFBRCxDQUFSLENBQW5EOztBQUNBLElBQUlDLG9CQUFvQixHQUFHRCxtQkFBTyxDQUFDLHlGQUFELENBQWxDOztBQUNBLFNBQVNELHNCQUFULENBQWdDRyxHQUFoQyxFQUFxQztBQUNqQyxTQUFPQSxHQUFHLElBQUlBLEdBQUcsQ0FBQ0MsVUFBWCxHQUF3QkQsR0FBeEIsR0FBOEI7QUFDakMsZUFBU0E7QUFEd0IsR0FBckM7QUFHSCxFQUNEO0FBQ0E7QUFDQTtBQUNBOzs7QUFDQSxJQUFNRSxpQkFBaUIsR0FBRyxJQUExQjs7QUFDQSxTQUFTQyxVQUFULENBQW9CQyxHQUFwQixFQUF5QkMsR0FBekIsRUFBOEJDLFNBQTlCLEVBQXlDO0FBQ3JDLE1BQUlDLEtBQUssR0FBR0YsR0FBRyxDQUFDRyxHQUFKLENBQVFKLEdBQVIsQ0FBWjs7QUFDQSxNQUFJRyxLQUFKLEVBQVc7QUFDUCxRQUFJLFlBQVlBLEtBQWhCLEVBQXVCO0FBQ25CLGFBQU9BLEtBQUssQ0FBQ0UsTUFBYjtBQUNIOztBQUNELFdBQU9DLE9BQU8sQ0FBQ0MsT0FBUixDQUFnQkosS0FBaEIsQ0FBUDtBQUNIOztBQUNELE1BQUlLLFFBQUo7QUFDQSxNQUFNQyxJQUFJLEdBQUcsSUFBSUgsT0FBSixDQUFZLFVBQUNDLE9BQUQsRUFBVztBQUNoQ0MsSUFBQUEsUUFBUSxHQUFH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QUFuQixFQUErQjtBQUMzQjtBQUNBLFlBQUlGLEVBQUUsQ0FBQ0csUUFBSCxJQUFlLEtBQUtDLElBQUwsQ0FBVUosRUFBRSxDQUFDSyxhQUFiLENBQW5CLEVBQWdELE9BQU9yRyxPQUFPLENBQUNDLE9BQVIsRUFBUDtBQUNuRDs7QUFDRCxhQUFPeUQsZ0JBQWdCLENBQUNDLFdBQUQsRUFBY0MsS0FBZCxDQUFoQixDQUFxQ3ZELElBQXJDLENBQTBDLFVBQUNpRyxNQUFEO0FBQUEsZUFBVXRHLE9BQU8sQ0FBQzJGLEdBQVIsQ0FBWTFFLFdBQVcsR0FBR3FGLE1BQU0sQ0FBQ3pDLE9BQVAsQ0FBZWxFLEdBQWYsQ0FBbUIsVUFBQzJDLE1BQUQ7QUFBQSxpQkFBVXBCLGNBQWMsQ0FBQ29CLE1BQUQsRUFBUyxRQUFULENBQXhCO0FBQUEsU0FBbkIsQ0FBSCxHQUMxRSxFQURtRCxDQUFWO0FBQUEsT0FBMUMsRUFFTGpDLElBRkssQ0FFQSxZQUFJO0FBQ1AsU0FBQyxHQUFHaEIsb0JBQUosRUFBMEIyRCxtQkFBMUIsQ0FBOEM7QUFBQSxpQkFBSSxNQUFJLENBQUN3QyxTQUFMLENBQWU1QixLQUFmLEVBQXNCLElBQXRCLFdBQWtDLFlBQUksQ0FDbkYsQ0FENkMsQ0FBSjtBQUFBLFNBQTlDO0FBR0gsT0FOTSxZQU1FO0FBQ1Qsa0JBQUksQ0FDSCxDQVJNLENBQVA7QUFTSDtBQXpGRSxHQUFQO0FBMkZIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3JvdXRlLWxvYWRlci5qcz9lYTM0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5tYXJrQXNzZXRFcnJvciA9IG1hcmtBc3NldEVycm9yO1xuZXhwb3J0cy5pc0Fzc2V0RXJyb3IgPSBpc0Fzc2V0RXJyb3I7XG5leHBvcnRzLmdldENsaWVudEJ1aWxkTWFuaWZlc3QgPSBnZXRDbGllbnRCdWlsZE1hbmlmZXN0O1xuZXhwb3J0cy5nZXRNaWRkbGV3YXJlTWFuaWZlc3QgPSBnZXRNaWRkbGV3YXJlTWFuaWZlc3Q7XG5leHBvcnRzLmNyZWF0ZVJvdXRlTG9hZGVyID0gY3JlYXRlUm91dGVMb2FkZXI7XG52YXIgX2dldEFzc2V0UGF0aEZyb21Sb3V0ZSA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2dldC1hc3NldC1wYXRoLWZyb20tcm91dGVcIikpO1xudmFyIF9yZXF1ZXN0SWRsZUNhbGxiYWNrID0gcmVxdWlyZShcIi4vcmVxdWVzdC1pZGxlLWNhbGxiYWNrXCIpO1xuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuLy8gMy44cyB3YXMgYXJiaXRyYXJpbHkgY2hvc2VuIGFzIGl0J3Mgd2hhdCBodHRwczovL3dlYi5kZXYvaW50ZXJhY3RpdmVcbi8vIGNvbnNpZGVycyBhcyBcIkdvb2RcIiB0aW1lLXRvLWludGVyYWN0aXZlLiBXZSBtdXN0IGFzc3VtZSBzb21ldGhpbmcgd2VudFxuLy8gd3JvbmcgYmV5b25kIHRoaXMgcG9pbnQsIGFuZCB0aGVuIGZhbGwtYmFjayB0byBhIGZ1bGwgcGFnZSB0cmFuc2l0aW9uIHRvXG4vLyBzaG93IHRoZSB1c2VyIHNvbWV0aGluZyBvZiB2YWx1ZS5cbmNvbnN0IE1TX01BWF9JRExFX0RFTEFZID0gMzgwMDtcbmZ1bmN0aW9uIHdpdGhGdXR1cmUoa2V5LCBtYXAsIGdlbmVyYXRvcikge1xuICAgIGxldCBlbnRyeSA9IG1hcC5nZXQoa2V5KTtcbiAgICBpZiAoZW50cnkpIHtcbiAgICAgICAgaWYgKCdmdXR1cmUnIGluIGVudHJ5KSB7XG4gICAgICAgICAgICByZXR1cm4gZW50cnkuZnV0dXJlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZW50cnkpO1xuICAgIH1cbiAgICBsZXQgcmVzb2x2ZXI7XG4gICAgY29uc3QgcHJvbSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKT0+e1xuICAgICAgICByZXNvbHZlciA9IHJlc29sdmU7XG4gICAgfSk7XG4gICAgbWFwLnNldChrZXksIGVudHJ5ID0ge1xuICAgICAgICByZXNvbHZlOiByZXNvbHZlcixcbiAgICAgICAgZnV0dXJlOiBwcm9tXG4gICAgfSk7XG4gICAgcmV0dXJuIGdlbmVyYXRvciA/IGdlbmVyYXRvcigpLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlcXVlbmNlc1xuICAgIC50aGVuKCh2YWx1ZSk9PihyZXNvbHZlcih2YWx1ZSksIHZhbHVlKVxuICAgICkuY2F0Y2goKGVycik9PntcbiAgICAgICAgbWFwLmRlbGV0ZShrZXkpO1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgfSkgOiBwcm9tO1xufVxuZnVuY3Rpb24gaGFzUHJlZmV0Y2gobGluaykge1xuICAgIHRyeSB7XG4gICAgICAgIGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XG4gICAgICAgIHJldHVybigvLyBkZXRlY3QgSUUxMSBzaW5jZSBpdCBzdXBwb3J0cyBwcmVmZXRjaCBidXQgaXNuJ3QgZGV0ZWN0ZWRcbiAgICAgICAgLy8gd2l0aCByZWxMaXN0LnN1cHBvcnRcbiAgICAgICAgKCEhd2luZG93Lk1TSW5wdXRNZXRob2RDb250ZXh0ICYmICEhZG9jdW1lbnQuZG9jdW1lbnRNb2RlKSB8fCBsaW5rLnJlbExpc3Quc3VwcG9ydHMoJ3ByZWZldGNoJykpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cbmNvbnN0IGNhblByZWZldGNoID0gaGFzUHJlZmV0Y2goKTtcbmZ1bmN0aW9uIHByZWZldGNoVmlhRG9tKGhyZWYsIGFzLCBsaW5rKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXMsIHJlaik9PntcbiAgICAgICAgY29uc3Qgc2VsZWN0b3IgPSBgXG4gICAgICBsaW5rW3JlbD1cInByZWZldGNoXCJdW2hyZWZePVwiJHtocmVmfVwiXSxcbiAgICAgIGxpbmtbcmVsPVwicHJlbG9hZFwiXVtocmVmXj1cIiR7aHJlZn1cIl0sXG4gICAgICBzY3JpcHRbc3JjXj1cIiR7aHJlZn1cIl1gO1xuICAgICAgICBpZiAoZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzZWxlY3RvcikpIHtcbiAgICAgICAgICAgIHJldHVybiByZXMoKTtcbiAgICAgICAgfVxuICAgICAgICBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpO1xuICAgICAgICAvLyBUaGUgb3JkZXIgb2YgcHJvcGVydHkgYXNzaWdubWVudCBoZXJlIGlzIGludGVudGlvbmFsOlxuICAgICAgICBpZiAoYXMpIGxpbmsuYXMgPSBhcztcbiAgICAgICAgbGluay5yZWwgPSBgcHJlZmV0Y2hgO1xuICAgICAgICBsaW5rLmNyb3NzT3JpZ2luID0gcHJvY2Vzcy5lbnYuX19ORVhUX0NST1NTX09SSUdJTjtcbiAgICAgICAgbGluay5vbmxvYWQgPSByZXM7XG4gICAgICAgIGxpbmsub25lcnJvciA9IHJlajtcbiAgICAgICAgLy8gYGhyZWZgIHNob3VsZCBhbHdheXMgYmUgbGFzdDpcbiAgICAgICAgbGluay5ocmVmID0gaHJlZjtcbiAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChsaW5rKTtcbiAgICB9KTtcbn1cbmNvbnN0IEFTU0VUX0xPQURfRVJST1IgPSBTeW1ib2woJ0FTU0VUX0xPQURfRVJST1InKTtcbmZ1bmN0aW9uIG1hcmtBc3NldEVycm9yKGVycikge1xuICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXJyLCBBU1NFVF9MT0FEX0VSUk9SLCB7XG4gICAgfSk7XG59XG5mdW5jdGlvbiBpc0Fzc2V0RXJyb3IoZXJyKSB7XG4gICAgcmV0dXJuIGVyciAmJiBBU1NFVF9MT0FEX0VSUk9SIGluIGVycjtcbn1cbmZ1bmN0aW9uIGFwcGVuZFNjcmlwdChzcmMsIHNjcmlwdCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KT0+e1xuICAgICAgICBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICAgICAgLy8gVGhlIG9yZGVyIG9mIHByb3BlcnR5IGFzc2lnbm1lbnQgaGVyZSBpcyBpbnRlbnRpb25hbC5cbiAgICAgICAgLy8gMS4gU2V0dXAgc3VjY2Vzcy9mYWlsdXJlIGhvb2tzIGluIGNhc2UgdGhlIGJyb3dzZXIgc3luY2hyb25vdXNseVxuICAgICAgICAvLyAgICBleGVjdXRlcyB3aGVuIGBzcmNgIGlzIHNldC5cbiAgICAgICAgc2NyaXB0Lm9ubG9hZCA9IHJlc29sdmU7XG4gICAgICAgIHNjcmlwdC5vbmVycm9yID0gKCk9PnJlamVjdChtYXJrQXNzZXRFcnJvcihuZXcgRXJyb3IoYEZhaWxlZCB0byBsb2FkIHNjcmlwdDogJHtzcmN9YCkpKVxuICAgICAgICA7XG4gICAgICAgIC8vIDIuIENvbmZpZ3VyZSB0aGUgY3Jvc3Mtb3JpZ2luIGF0dHJpYnV0ZSBiZWZvcmUgc2V0dGluZyBgc3JjYCBpbiBjYXNlIHRoZVxuICAgICAgICAvLyAgICBicm93c2VyIGJlZ2lucyB0byBmZXRjaC5cbiAgICAgICAgc2NyaXB0LmNyb3NzT3JpZ2luID0gcHJvY2Vzcy5lbnYuX19ORVhUX0NST1NTX09SSUdJTjtcbiAgICAgICAgLy8gMy4gRmluYWxseSwgc2V0IHRoZSBzb3VyY2UgYW5kIGluamVjdCBpbnRvIHRoZSBET00gaW4gY2FzZSB0aGUgY2hpbGRcbiAgICAgICAgLy8gICAgbXVzdCBiZSBhcHBlbmRlZCBmb3IgZmV0Y2hpbmcgdG8gc3RhcnQuXG4gICAgICAgIHNjcmlwdC5zcmMgPSBzcmM7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbiAgICB9KTtcbn1cbi8vIFdlIHdhaXQgZm9yIHBhZ2VzIHRvIGJlIGJ1aWx0IGluIGRldiBiZWZvcmUgd2Ugc3RhcnQgdGhlIHJvdXRlIHRyYW5zaXRpb25cbi8vIHRpbWVvdXQgdG8gcHJldmVudCBhbiB1bi1uZWNlc3NhcnkgaGFyZCBuYXZpZ2F0aW9uIGluIGRldmVsb3BtZW50LlxubGV0IGRldkJ1aWxkUHJvbWlzZTtcbi8vIFJlc29sdmUgYSBwcm9taXNlIHRoYXQgdGltZXMgb3V0IGFmdGVyIGdpdmVuIGFtb3VudCBvZiBtaWxsaXNlY29uZHMuXG5mdW5jdGlvbiByZXNvbHZlUHJvbWlzZVdpdGhUaW1lb3V0KHAsIG1zLCBlcnIpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCk9PntcbiAgICAgICAgbGV0IGNhbmNlbGxlZCA9IGZhbHNlO1xuICAgICAgICBwLnRoZW4oKHIpPT57XG4gICAgICAgICAgICAvLyBSZXNvbHZlZCwgY2FuY2VsIHRoZSB0aW1lb3V0XG4gICAgICAgICAgICBjYW5jZWxsZWQgPSB0cnVlO1xuICAgICAgICAgICAgcmVzb2x2ZShyKTtcbiAgICAgICAgfSkuY2F0Y2gocmVqZWN0KTtcbiAgICAgICAgLy8gV2Ugd3JhcCB0aGVzZSBjaGVja3Mgc2VwYXJhdGVseSBmb3IgYmV0dGVyIGRlYWQtY29kZSBlbGltaW5hdGlvbiBpblxuICAgICAgICAvLyBwcm9kdWN0aW9uIGJ1bmRsZXMuXG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgKGRldkJ1aWxkUHJvbWlzZSB8fCBQcm9taXNlLnJlc29sdmUoKSkudGhlbigoKT0+e1xuICAgICAgICAgICAgICAgICgwLCBfcmVxdWVzdElkbGVDYWxsYmFjaykucmVxdWVzdElkbGVDYWxsYmFjaygoKT0+c2V0VGltZW91dCgoKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjYW5jZWxsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSwgbXMpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgKDAsIF9yZXF1ZXN0SWRsZUNhbGxiYWNrKS5yZXF1ZXN0SWRsZUNhbGxiYWNrKCgpPT5zZXRUaW1lb3V0KCgpPT57XG4gICAgICAgICAgICAgICAgICAgIGlmICghY2FuY2VsbGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sIG1zKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuZnVuY3Rpb24gZ2V0Q2xpZW50QnVpbGRNYW5pZmVzdCgpIHtcbiAgICBpZiAoc2VsZi5fX0JVSUxEX01BTklGRVNUKSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoc2VsZi5fX0JVSUxEX01BTklGRVNUKTtcbiAgICB9XG4gICAgY29uc3Qgb25CdWlsZE1hbmlmZXN0ID0gbmV3IFByb21pc2UoKHJlc29sdmUpPT57XG4gICAgICAgIC8vIE1hbmRhdG9yeSBiZWNhdXNlIHRoaXMgaXMgbm90IGNvbmN1cnJlbnQgc2FmZTpcbiAgICAgICAgY29uc3QgY2IgPSBzZWxmLl9fQlVJTERfTUFOSUZFU1RfQ0I7XG4gICAgICAgIHNlbGYuX19CVUlMRF9NQU5JRkVTVF9DQiA9ICgpPT57XG4gICAgICAgICAgICByZXNvbHZlKHNlbGYuX19CVUlMRF9NQU5JRkVTVCk7XG4gICAgICAgICAgICBjYiAmJiBjYigpO1xuICAgICAgICB9O1xuICAgIH0pO1xuICAgIHJldHVybiByZXNvbHZlUHJvbWlzZVdpdGhUaW1lb3V0KG9uQnVpbGRNYW5pZmVzdCwgTVNfTUFYX0lETEVfREVMQVksIG1hcmtBc3NldEVycm9yKG5ldyBFcnJvcignRmFpbGVkIHRvIGxvYWQgY2xpZW50IGJ1aWxkIG1hbmlmZXN0JykpKTtcbn1cbmZ1bmN0aW9uIGdldE1pZGRsZXdhcmVNYW5pZmVzdCgpIHtcbiAgICBpZiAoc2VsZi5fX01JRERMRVdBUkVfTUFOSUZFU1QpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShzZWxmLl9fTUlERExFV0FSRV9NQU5JRkVTVCk7XG4gICAgfVxuICAgIGNvbnN0IG9uTWlkZGxld2FyZU1hbmlmZXN0ID0gbmV3IFByb21pc2UoKHJlc29sdmUpPT57XG4gICAgICAgIGNvbnN0IGNiID0gc2VsZi5fX01JRERMRVdBUkVfTUFOSUZFU1RfQ0I7XG4gICAgICAgIHNlbGYuX19NSURETEVXQVJFX01BTklGRVNUX0NCID0gKCk9PntcbiAgICAgICAgICAgIHJlc29sdmUoc2VsZi5fX01JRERMRVdBUkVfTUFOSUZFU1QpO1xuICAgICAgICAgICAgY2IgJiYgY2IoKTtcbiAgICAgICAgfTtcbiAgICB9KTtcbiAgICByZXR1cm4gcmVzb2x2ZVByb21pc2VXaXRoVGltZW91dChvbk1pZGRsZXdhcmVNYW5pZmVzdCwgTVNfTUFYX0lETEVfREVMQVksIG1hcmtBc3NldEVycm9yKG5ldyBFcnJvcignRmFpbGVkIHRvIGxvYWQgY2xpZW50IG1pZGRsZXdhcmUgbWFuaWZlc3QnKSkpO1xufVxuZnVuY3Rpb24gZ2V0RmlsZXNGb3JSb3V0ZShhc3NldFByZWZpeCwgcm91dGUpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7XG4gICAgICAgICAgICBzY3JpcHRzOiBbXG4gICAgICAgICAgICAgICAgYXNzZXRQcmVmaXggKyAnL19uZXh0L3N0YXRpYy9jaHVua3MvcGFnZXMnICsgZW5jb2RlVVJJKCgwLCBfZ2V0QXNzZXRQYXRoRnJvbVJvdXRlKS5kZWZhdWx0KHJvdXRlLCAnLmpzJykpLCBcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAvLyBTdHlsZXMgYXJlIGhhbmRsZWQgYnkgYHN0eWxlLWxvYWRlcmAgaW4gZGV2ZWxvcG1lbnQ6XG4gICAgICAgICAgICBjc3M6IFtdXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gZ2V0Q2xpZW50QnVpbGRNYW5pZmVzdCgpLnRoZW4oKG1hbmlmZXN0KT0+e1xuICAgICAgICBpZiAoIShyb3V0ZSBpbiBtYW5pZmVzdCkpIHtcbiAgICAgICAgICAgIHRocm93IG1hcmtBc3NldEVycm9yKG5ldyBFcnJvcihgRmFpbGVkIHRvIGxvb2t1cCByb3V0ZTogJHtyb3V0ZX1gKSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYWxsRmlsZXMgPSBtYW5pZmVzdFtyb3V0ZV0ubWFwKChlbnRyeSk9PmFzc2V0UHJlZml4ICsgJy9fbmV4dC8nICsgZW5jb2RlVVJJKGVudHJ5KVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc2NyaXB0czogYWxsRmlsZXMuZmlsdGVyKCh2KT0+di5lbmRzV2l0aCgnLmpzJylcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBjc3M6IGFsbEZpbGVzLmZpbHRlcigodik9PnYuZW5kc1dpdGgoJy5jc3MnKVxuICAgICAgICAgICAgKVxuICAgICAgICB9O1xuICAgIH0pO1xufVxuZnVuY3Rpb24gY3JlYXRlUm91dGVMb2FkZXIoYXNzZXRQcmVmaXgpIHtcbiAgICBjb25zdCBlbnRyeXBvaW50cyA9IG5ldyBNYXAoKTtcbiAgICBjb25zdCBsb2FkZWRTY3JpcHRzID0gbmV3IE1hcCgpO1xuICAgIGNvbnN0IHN0eWxlU2hlZXRzID0gbmV3IE1hcCgpO1xuICAgIGNvbnN0IHJvdXRlcyA9IG5ldyBNYXAoKTtcbiAgICBmdW5jdGlvbiBtYXliZUV4ZWN1dGVTY3JpcHQoc3JjKSB7XG4gICAgICAgIC8vIFdpdGggSE1SIHdlIG1pZ2h0IG5lZWQgdG8gXCJyZWxvYWRcIiBzY3JpcHRzIHdoZW4gdGhleSBhcmVcbiAgICAgICAgLy8gZGlzcG9zZWQgYW5kIHJlYWRkZWQuIEV4ZWN1dGluZyBzY3JpcHRzIHR3aWNlIGhhcyBubyBmdW5jdGlvbmFsXG4gICAgICAgIC8vIGRpZmZlcmVuY2VzXG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgbGV0IHByb20gPSBsb2FkZWRTY3JpcHRzLmdldChzcmMpO1xuICAgICAgICAgICAgaWYgKHByb20pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJvbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFNraXAgZXhlY3V0aW5nIHNjcmlwdCBpZiBpdCdzIGFscmVhZHkgaW4gdGhlIERPTTpcbiAgICAgICAgICAgIGlmIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBzY3JpcHRbc3JjXj1cIiR7c3JjfVwiXWApKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbG9hZGVkU2NyaXB0cy5zZXQoc3JjLCBwcm9tID0gYXBwZW5kU2NyaXB0KHNyYykpO1xuICAgICAgICAgICAgcmV0dXJuIHByb207XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gYXBwZW5kU2NyaXB0KHNyYyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZmV0Y2hTdHlsZVNoZWV0KGhyZWYpIHtcbiAgICAgICAgbGV0IHByb20gPSBzdHlsZVNoZWV0cy5nZXQoaHJlZik7XG4gICAgICAgIGlmIChwcm9tKSB7XG4gICAgICAgICAgICByZXR1cm4gcHJvbTtcbiAgICAgICAgfVxuICAgICAgICBzdHlsZVNoZWV0cy5zZXQoaHJlZiwgcHJvbSA9IGZldGNoKGhyZWYpLnRoZW4oKHJlcyk9PntcbiAgICAgICAgICAgIGlmICghcmVzLm9rKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gbG9hZCBzdHlsZXNoZWV0OiAke2hyZWZ9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzLnRleHQoKS50aGVuKCh0ZXh0KT0+KHtcbiAgICAgICAgICAgICAgICAgICAgaHJlZjogaHJlZixcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogdGV4dFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9KS5jYXRjaCgoZXJyKT0+e1xuICAgICAgICAgICAgdGhyb3cgbWFya0Fzc2V0RXJyb3IoZXJyKTtcbiAgICAgICAgfSkpO1xuICAgICAgICByZXR1cm4gcHJvbTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgd2hlbkVudHJ5cG9pbnQgKHJvdXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gd2l0aEZ1dHVyZShyb3V0ZSwgZW50cnlwb2ludHMpO1xuICAgICAgICB9LFxuICAgICAgICBvbkVudHJ5cG9pbnQgKHJvdXRlLCBleGVjdXRlKSB7XG4gICAgICAgICAgICAoZXhlY3V0ZSA/IFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PmV4ZWN1dGUoKVxuICAgICAgICAgICAgKS50aGVuKChleHBvcnRzKT0+KHtcbiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50OiBleHBvcnRzICYmIGV4cG9ydHMuZGVmYXVsdCB8fCBleHBvcnRzLFxuICAgICAgICAgICAgICAgICAgICBleHBvcnRzOiBleHBvcnRzXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICwgKGVycik9Pih7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yOiBlcnJcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSA6IFByb21pc2UucmVzb2x2ZSh1bmRlZmluZWQpKS50aGVuKChpbnB1dCk9PntcbiAgICAgICAgICAgICAgICBjb25zdCBvbGQgPSBlbnRyeXBvaW50cy5nZXQocm91dGUpO1xuICAgICAgICAgICAgICAgIGlmIChvbGQgJiYgJ3Jlc29sdmUnIGluIG9sZCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW5wdXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5cG9pbnRzLnNldChyb3V0ZSwgaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgb2xkLnJlc29sdmUoaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlucHV0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbnRyeXBvaW50cy5zZXQocm91dGUsIGlucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5cG9pbnRzLmRlbGV0ZShyb3V0ZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gd2hlbiB0aGlzIGVudHJ5cG9pbnQgaGFzIGJlZW4gcmVzb2x2ZWQgYmVmb3JlXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoZSByb3V0ZSBpcyBvdXRkYXRlZCBhbmQgd2Ugd2FudCB0byBpbnZhbGlkYXRlXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgY2FjaGUgZW50cnlcbiAgICAgICAgICAgICAgICAgICAgcm91dGVzLmRlbGV0ZShyb3V0ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIGxvYWRSb3V0ZSAocm91dGUsIHByZWZldGNoKSB7XG4gICAgICAgICAgICByZXR1cm4gd2l0aEZ1dHVyZShyb3V0ZSwgcm91dGVzLCAoKT0+e1xuICAgICAgICAgICAgICAgIGNvbnN0IHJvdXRlRmlsZXNQcm9taXNlID0gZ2V0RmlsZXNGb3JSb3V0ZShhc3NldFByZWZpeCwgcm91dGUpLnRoZW4oKHsgc2NyaXB0cyAsIGNzcyAgfSk9PntcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5cG9pbnRzLmhhcyhyb3V0ZSkgPyBbXSA6IFByb21pc2UuYWxsKHNjcmlwdHMubWFwKG1heWJlRXhlY3V0ZVNjcmlwdCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgUHJvbWlzZS5hbGwoY3NzLm1hcChmZXRjaFN0eWxlU2hlZXQpKSwgXG4gICAgICAgICAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgICAgIH0pLnRoZW4oKHJlcyk9PntcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMud2hlbkVudHJ5cG9pbnQocm91dGUpLnRoZW4oKGVudHJ5cG9pbnQpPT4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5cG9pbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGVzOiByZXNbMV1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGRldkJ1aWxkUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJvdXRlRmlsZXNQcm9taXNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJvdXRlRmlsZXNQcm9taXNlLmZpbmFsbHkoKCk9PntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVQcm9taXNlV2l0aFRpbWVvdXQocm91dGVGaWxlc1Byb21pc2UsIE1TX01BWF9JRExFX0RFTEFZLCBtYXJrQXNzZXRFcnJvcihuZXcgRXJyb3IoYFJvdXRlIGRpZCBub3QgY29tcGxldGUgbG9hZGluZzogJHtyb3V0ZX1gKSkpLnRoZW4oKHsgZW50cnlwb2ludCAsIHN0eWxlcyAgfSk9PntcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzID0gT2JqZWN0LmFzc2lnbih7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZXM6IHN0eWxlc1xuICAgICAgICAgICAgICAgICAgICB9LCBlbnRyeXBvaW50KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdlcnJvcicgaW4gZW50cnlwb2ludCA/IGVudHJ5cG9pbnQgOiByZXM7XG4gICAgICAgICAgICAgICAgfSkuY2F0Y2goKGVycik9PntcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByZWZldGNoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBkb24ndCB3YW50IHRvIGNhY2hlIGVycm9ycyBkdXJpbmcgcHJlZmV0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I6IGVyclxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHByZWZldGNoIChyb3V0ZSkge1xuICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL0dvb2dsZUNocm9tZUxhYnMvcXVpY2tsaW5rL2Jsb2IvNDUzYTY2MWZhMWZhOTQwZTJkMmUwNDQ0NTIzOThlMzhjNjdhOThmYi9zcmMvaW5kZXgubWpzI0wxMTUtTDExOFxuICAgICAgICAgICAgLy8gTGljZW5zZTogQXBhY2hlIDIuMFxuICAgICAgICAgICAgbGV0IGNuO1xuICAgICAgICAgICAgaWYgKGNuID0gbmF2aWdhdG9yLmNvbm5lY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAvLyBEb24ndCBwcmVmZXRjaCBpZiB1c2luZyAyRyBvciBpZiBTYXZlLURhdGEgaXMgZW5hYmxlZC5cbiAgICAgICAgICAgICAgICBpZiAoY24uc2F2ZURhdGEgfHwgLzJnLy50ZXN0KGNuLmVmZmVjdGl2ZVR5cGUpKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZ2V0RmlsZXNGb3JSb3V0ZShhc3NldFByZWZpeCwgcm91dGUpLnRoZW4oKG91dHB1dCk9PlByb21pc2UuYWxsKGNhblByZWZldGNoID8gb3V0cHV0LnNjcmlwdHMubWFwKChzY3JpcHQpPT5wcmVmZXRjaFZpYURvbShzY3JpcHQsICdzY3JpcHQnKVxuICAgICAgICAgICAgICAgICkgOiBbXSlcbiAgICAgICAgICAgICkudGhlbigoKT0+e1xuICAgICAgICAgICAgICAgICgwLCBfcmVxdWVzdElkbGVDYWxsYmFjaykucmVxdWVzdElkbGVDYWxsYmFjaygoKT0+dGhpcy5sb2FkUm91dGUocm91dGUsIHRydWUpLmNhdGNoKCgpPT57XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pLmNhdGNoKC8vIHN3YWxsb3cgcHJlZmV0Y2ggZXJyb3JzXG4gICAgICAgICAgICAoKT0+e1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yb3V0ZS1sb2FkZXIuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwibWFya0Fzc2V0RXJyb3IiLCJpc0Fzc2V0RXJyb3IiLCJnZXRDbGllbnRCdWlsZE1hbmlmZXN0IiwiZ2V0TWlkZGxld2FyZU1hbmlmZXN0IiwiY3JlYXRlUm91dGVMb2FkZXIiLCJfZ2V0QXNzZXRQYXRoRnJvbVJvdXRlIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcmVxdWVzdElkbGVDYWxsYmFjayIsIm9iaiIsIl9fZXNNb2R1bGUiLCJNU19NQVhfSURMRV9ERUxBWSIsIndpdGhGdXR1cmUiLCJrZXkiLCJtYXAiLCJnZW5lcmF0b3IiLCJlbnRyeSIsImdldCIsImZ1dHVyZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVzb2x2ZXIiLCJwcm9tIiwic2V0IiwidGhlbiIsImVyciIsImhhc1ByZWZldGNoIiwibGluayIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsIndpbmRvdyIsIk1TSW5wdXRNZXRob2RDb250ZXh0IiwiZG9jdW1lbnRNb2RlIiwicmVsTGlzdCIsInN1cHBvcnRzIiwiZSIsImNhblByZWZldGNoIiwicHJlZmV0Y2hWaWFEb20iLCJocmVmIiwiYXMiLCJyZXMiLCJyZWoiLCJzZWxlY3RvciIsInF1ZXJ5U2VsZWN0b3IiLCJyZWwiLCJjcm9zc09yaWdpbiIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfQ1JPU1NfT1JJR0lOIiwib25sb2FkIiwib25lcnJvciIsImhlYWQiLCJhcHBlbmRDaGlsZCIsIkFTU0VUX0xPQURfRVJST1IiLCJTeW1ib2wiLCJhcHBlbmRTY3JpcHQiLCJzcmMiLCJzY3JpcHQiLCJyZWplY3QiLCJFcnJvciIsImJvZHkiLCJkZXZCdWlsZFByb21pc2UiLCJyZXNvbHZlUHJvbWlzZVdpdGhUaW1lb3V0IiwicCIsIm1zIiwiY2FuY2VsbGVkIiwiciIsInJlcXVlc3RJZGxlQ2FsbGJhY2siLCJzZXRUaW1lb3V0Iiwic2VsZiIsIl9fQlVJTERfTUFOSUZFU1QiLCJvbkJ1aWxkTWFuaWZlc3QiLCJjYiIsIl9fQlVJTERfTUFOSUZFU1RfQ0IiLCJfX01JRERMRVdBUkVfTUFOSUZFU1QiLCJvbk1pZGRsZXdhcmVNYW5pZmVzdCIsIl9fTUlERExFV0FSRV9NQU5JRkVTVF9DQiIsImdldEZpbGVzRm9yUm91dGUiLCJhc3NldFByZWZpeCIsInJvdXRlIiwic2NyaXB0cyIsImVuY29kZVVSSSIsImNzcyIsIm1hbmlmZXN0IiwiYWxsRmlsZXMiLCJmaWx0ZXIiLCJ2IiwiZW5kc1dpdGgiLCJlbnRyeXBvaW50cyIsIk1hcCIsImxvYWRlZFNjcmlwdHMiLCJzdHlsZVNoZWV0cyIsInJvdXRlcyIsIm1heWJlRXhlY3V0ZVNjcmlwdCIsImZldGNoU3R5bGVTaGVldCIsImZldGNoIiwib2siLCJ0ZXh0IiwiY29udGVudCIsIndoZW5FbnRyeXBvaW50Iiwib25FbnRyeXBvaW50IiwiZXhlY3V0ZSIsImNvbXBvbmVudCIsImVycm9yIiwidW5kZWZpbmVkIiwiaW5wdXQiLCJvbGQiLCJsb2FkUm91dGUiLCJwcmVmZXRjaCIsInJvdXRlRmlsZXNQcm9taXNlIiwiYWxsIiwiaGFzIiwiZW50cnlwb2ludCIsInN0eWxlcyIsImFzc2lnbiIsImNuIiwibmF2aWdhdG9yIiwiY29ubmVjdGlvbiIsInNhdmVEYXRhIiwidGVzdCIsImVmZmVjdGl2ZVR5cGUiLCJvdXRwdXQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/route-loader.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/router.js": +/*!*************************************************!*\ + !*** ./node_modules/next/dist/client/router.js ***! + \*************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _construct = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/construct */ \"./node_modules/@babel/runtime/helpers/construct.js\");\n\nvar _s = $RefreshSig$();\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"Router\", ({\n enumerable: true,\n get: function get() {\n return _router[\"default\"];\n }\n}));\nObject.defineProperty(exports, \"withRouter\", ({\n enumerable: true,\n get: function get() {\n return _withRouter[\"default\"];\n }\n}));\nexports.useRouter = useRouter;\nexports.createRouter = createRouter;\nexports.makePublicRouterInstance = makePublicRouterInstance;\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _router = _interopRequireDefault(__webpack_require__(/*! ../shared/lib/router/router */ \"./node_modules/next/dist/shared/lib/router/router.js\"));\n\nvar _routerContext = __webpack_require__(/*! ../shared/lib/router-context */ \"./node_modules/next/dist/shared/lib/router-context.js\");\n\nvar _isError = _interopRequireDefault(__webpack_require__(/*! ../lib/is-error */ \"./node_modules/next/dist/lib/is-error.js\"));\n\nvar _withRouter = _interopRequireDefault(__webpack_require__(/*! ./with-router */ \"./node_modules/next/dist/client/with-router.js\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar singletonRouter = {\n router: null,\n readyCallbacks: [],\n ready: function ready(cb) {\n if (this.router) return cb();\n\n if (true) {\n this.readyCallbacks.push(cb);\n }\n }\n}; // Create public properties and methods of the router in the singletonRouter\n\nvar urlPropertyFields = ['pathname', 'route', 'query', 'asPath', 'components', 'isFallback', 'basePath', 'locale', 'locales', 'defaultLocale', 'isReady', 'isPreview', 'isLocaleDomain', 'domainLocales'];\nvar routerEvents = ['routeChangeStart', 'beforeHistoryChange', 'routeChangeComplete', 'routeChangeError', 'hashChangeStart', 'hashChangeComplete'];\nvar coreMethodFields = ['push', 'replace', 'reload', 'back', 'prefetch', 'beforePopState']; // Events is a static property on the router, the router doesn't have to be initialized to use it\n\nObject.defineProperty(singletonRouter, 'events', {\n get: function get() {\n return _router[\"default\"].events;\n }\n});\nurlPropertyFields.forEach(function (field) {\n // Here we need to use Object.defineProperty because we need to return\n // the property assigned to the actual router\n // The value might get changed as we change routes and this is the\n // proper way to access it\n Object.defineProperty(singletonRouter, field, {\n get: function get() {\n var router = getRouter();\n return router[field];\n }\n });\n});\ncoreMethodFields.forEach(function (field) {\n singletonRouter[field] = function () {\n var router = getRouter();\n return router[field].apply(router, arguments);\n };\n});\nrouterEvents.forEach(function (event) {\n singletonRouter.ready(function () {\n _router[\"default\"].events.on(event, function () {\n var eventField = \"on\".concat(event.charAt(0).toUpperCase()).concat(event.substring(1));\n var _singletonRouter = singletonRouter;\n\n if (_singletonRouter[eventField]) {\n try {\n _singletonRouter[eventField].apply(_singletonRouter, arguments);\n } catch (err) {\n console.error(\"Error when running the Router event: \".concat(eventField));\n console.error((0, _isError)[\"default\"](err) ? \"\".concat(err.message, \"\\n\").concat(err.stack) : err + '');\n }\n }\n });\n });\n});\n\nfunction getRouter() {\n if (!singletonRouter.router) {\n var message = 'No router instance found.\\n' + 'You should only use \"next/router\" on the client side of your app.\\n';\n throw new Error(message);\n }\n\n return singletonRouter.router;\n}\n\nvar _default = singletonRouter;\nexports[\"default\"] = _default;\n\nfunction useRouter() {\n _s();\n\n return _react[\"default\"].useContext(_routerContext.RouterContext);\n}\n\n_s(useRouter, \"gDsCjeeItUuvgOWf1v4qoK9RF6k=\");\n\nfunction createRouter() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n singletonRouter.router = _construct(_router[\"default\"], args);\n singletonRouter.readyCallbacks.forEach(function (cb) {\n return cb();\n });\n singletonRouter.readyCallbacks = [];\n return singletonRouter.router;\n}\n\nfunction makePublicRouterInstance(router) {\n var scopedRouter = router;\n var instance = {};\n\n var _iterator = _createForOfIteratorHelper(urlPropertyFields),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var property = _step.value;\n\n if (typeof scopedRouter[property] === 'object') {\n instance[property] = Object.assign(Array.isArray(scopedRouter[property]) ? [] : {}, scopedRouter[property]) // makes sure query is not stateful\n ;\n continue;\n }\n\n instance[property] = scopedRouter[property];\n } // Events is a static property on the router, the router doesn't have to be initialized to use it\n\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n instance.events = _router[\"default\"].events;\n coreMethodFields.forEach(function (field) {\n instance[field] = function () {\n return scopedRouter[field].apply(scopedRouter, arguments);\n };\n });\n return instance;\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yb3V0ZXIuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOzs7Ozs7Ozs7Ozs7QUFDYkEsOENBQTZDO0FBQ3pDRyxFQUFBQSxLQUFLLEVBQUU7QUFEa0MsQ0FBN0M7QUFHQUgsMENBQXlDO0FBQ3JDSSxFQUFBQSxVQUFVLEVBQUUsSUFEeUI7QUFFckNDLEVBQUFBLEdBQUcsRUFBRSxlQUFXO0FBQ1osV0FBT0MsT0FBTyxXQUFkO0FBQ0g7QUFKb0MsQ0FBekM7QUFNQU4sOENBQTZDO0FBQ3pDSSxFQUFBQSxVQUFVLEVBQUUsSUFENkI7QUFFekNDLEVBQUFBLEdBQUcsRUFBRSxlQUFXO0FBQ1osV0FBT0UsV0FBVyxXQUFsQjtBQUNIO0FBSndDLENBQTdDO0FBTUFMLGlCQUFBLEdBQW9CTSxTQUFwQjtBQUNBTixvQkFBQSxHQUF1Qk8sWUFBdkI7QUFDQVAsZ0NBQUEsR0FBbUNRLHdCQUFuQztBQUNBUixrQkFBQSxHQUFrQixLQUFLLENBQXZCOztBQUNBLElBQUlTLE1BQU0sR0FBR0Msc0JBQXNCLENBQUNDLG1CQUFPLENBQUMsNENBQUQsQ0FBUixDQUFuQzs7QUFDQSxJQUFJUCxPQUFPLEdBQUdNLHNCQUFzQixDQUFDQyxtQkFBTyxDQUFDLHlGQUFELENBQVIsQ0FBcEM7O0FBQ0EsSUFBSUMsY0FBYyxHQUFHRCxtQkFBTyxDQUFDLDJGQUFELENBQTVCOztBQUNBLElBQUlFLFFBQVEsR0FBR0gsc0JBQXNCLENBQUNDLG1CQUFPLENBQUMsaUVBQUQsQ0FBUixDQUFyQzs7QUFDQSxJQUFJTixXQUFXLEdBQUdLLHNCQUFzQixDQUFDQyxtQkFBTyxDQUFDLHFFQUFELENBQVIsQ0FBeEM7O0FBQ0EsU0FBU0Qsc0JBQVQsQ0FBZ0NJLEdBQWhDLEVBQXFDO0FBQ2pDLFNBQU9BLEdBQUcsSUFBSUEsR0FBRyxDQUFDQyxVQUFYLEdBQXdCRCxHQUF4QixHQUE4QjtBQUNqQyxlQUFTQTtBQUR3QixHQUFyQztBQUdIOztBQUNELElB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LENBQUNFLFFBQUQsQ0FBbkIsS0FBa0MsUUFBdEMsRUFBZ0Q7QUFDNUNELFFBQUFBLFFBQVEsQ0FBQ0MsUUFBRCxDQUFSLEdBQXFCbEQsTUFBTSxDQUFDbUQsTUFBUCxDQUFjQyxLQUFLLENBQUNDLE9BQU4sQ0FBY0wsWUFBWSxDQUFDRSxRQUFELENBQTFCLElBQXdDLEVBQXhDLEdBQTZDLEVBQTNELEVBQ2xCRixZQUFZLENBQUNFLFFBQUQsQ0FETSxDQUFyQixDQUMyQjtBQUQzQjtBQUdBO0FBQ0g7O0FBQ0RELE1BQUFBLFFBQVEsQ0FBQ0MsUUFBRCxDQUFSLEdBQXFCRixZQUFZLENBQUNFLFFBQUQsQ0FBakM7QUFDSCxLQVpxQyxDQWF0Qzs7QUFic0M7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFjdENELEVBQUFBLFFBQVEsQ0FBQ3RCLE1BQVQsR0FBa0JyQixPQUFPLFdBQVAsQ0FBZ0JxQixNQUFsQztBQUNBRCxFQUFBQSxnQkFBZ0IsQ0FBQ0UsT0FBakIsQ0FBeUIsVUFBQ0MsS0FBRCxFQUFTO0FBQzlCb0IsSUFBQUEsUUFBUSxDQUFDcEIsS0FBRCxDQUFSLEdBQWtCLFlBQVc7QUFDekIsYUFBT21CLFlBQVksQ0FBQ25CLEtBQUQsQ0FBWixPQUFBbUIsWUFBWSxZQUFuQjtBQUNILEtBRkQ7QUFHSCxHQUpEO0FBS0EsU0FBT0MsUUFBUDtBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3JvdXRlci5qcz8zMWZjIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiUm91dGVyXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfcm91dGVyLmRlZmF1bHQ7XG4gICAgfVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJ3aXRoUm91dGVyXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfd2l0aFJvdXRlci5kZWZhdWx0O1xuICAgIH1cbn0pO1xuZXhwb3J0cy51c2VSb3V0ZXIgPSB1c2VSb3V0ZXI7XG5leHBvcnRzLmNyZWF0ZVJvdXRlciA9IGNyZWF0ZVJvdXRlcjtcbmV4cG9ydHMubWFrZVB1YmxpY1JvdXRlckluc3RhbmNlID0gbWFrZVB1YmxpY1JvdXRlckluc3RhbmNlO1xuZXhwb3J0cy5kZWZhdWx0ID0gdm9pZCAwO1xudmFyIF9yZWFjdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJlYWN0XCIpKTtcbnZhciBfcm91dGVyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9yb3V0ZXIvcm91dGVyXCIpKTtcbnZhciBfcm91dGVyQ29udGV4dCA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3JvdXRlci1jb250ZXh0XCIpO1xudmFyIF9pc0Vycm9yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vbGliL2lzLWVycm9yXCIpKTtcbnZhciBfd2l0aFJvdXRlciA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vd2l0aC1yb3V0ZXJcIikpO1xuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuY29uc3Qgc2luZ2xldG9uUm91dGVyID0ge1xuICAgIHJvdXRlcjogbnVsbCxcbiAgICByZWFkeUNhbGxiYWNrczogW10sXG4gICAgcmVhZHkgKGNiKSB7XG4gICAgICAgIGlmICh0aGlzLnJvdXRlcikgcmV0dXJuIGNiKCk7XG4gICAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgdGhpcy5yZWFkeUNhbGxiYWNrcy5wdXNoKGNiKTtcbiAgICAgICAgfVxuICAgIH1cbn07XG4vLyBDcmVhdGUgcHVibGljIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMgb2YgdGhlIHJvdXRlciBpbiB0aGUgc2luZ2xldG9uUm91dGVyXG5jb25zdCB1cmxQcm9wZXJ0eUZpZWxkcyA9IFtcbiAgICAncGF0aG5hbWUnLFxuICAgICdyb3V0ZScsXG4gICAgJ3F1ZXJ5JyxcbiAgICAnYXNQYXRoJyxcbiAgICAnY29tcG9uZW50cycsXG4gICAgJ2lzRmFsbGJhY2snLFxuICAgICdiYXNlUGF0aCcsXG4gICAgJ2xvY2FsZScsXG4gICAgJ2xvY2FsZXMnLFxuICAgICdkZWZhdWx0TG9jYWxlJyxcbiAgICAnaXNSZWFkeScsXG4gICAgJ2lzUHJldmlldycsXG4gICAgJ2lzTG9jYWxlRG9tYWluJyxcbiAgICAnZG9tYWluTG9jYWxlcycsIFxuXTtcbmNvbnN0IHJvdXRlckV2ZW50cyA9IFtcbiAgICAncm91dGVDaGFuZ2VTdGFydCcsXG4gICAgJ2JlZm9yZUhpc3RvcnlDaGFuZ2UnLFxuICAgICdyb3V0ZUNoYW5nZUNvbXBsZXRlJyxcbiAgICAncm91dGVDaGFuZ2VFcnJvcicsXG4gICAgJ2hhc2hDaGFuZ2VTdGFydCcsXG4gICAgJ2hhc2hDaGFuZ2VDb21wbGV0ZScsIFxuXTtcbmNvbnN0IGNvcmVNZXRob2RGaWVsZHMgPSBbXG4gICAgJ3B1c2gnLFxuICAgICdyZXBsYWNlJyxcbiAgICAncmVsb2FkJyxcbiAgICAnYmFjaycsXG4gICAgJ3ByZWZldGNoJyxcbiAgICAnYmVmb3JlUG9wU3RhdGUnLCBcbl07XG4vLyBFdmVudHMgaXMgYSBzdGF0aWMgcHJvcGVydHkgb24gdGhlIHJvdXRlciwgdGhlIHJvdXRlciBkb2Vzbid0IGhhdmUgdG8gYmUgaW5pdGlhbGl6ZWQgdG8gdXNlIGl0XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoc2luZ2xldG9uUm91dGVyLCAnZXZlbnRzJywge1xuICAgIGdldCAoKSB7XG4gICAgICAgIHJldHVybiBfcm91dGVyLmRlZmF1bHQuZXZlbnRzO1xuICAgIH1cbn0pO1xudXJsUHJvcGVydHlGaWVsZHMuZm9yRWFjaCgoZmllbGQpPT57XG4gICAgLy8gSGVyZSB3ZSBuZWVkIHRvIHVzZSBPYmplY3QuZGVmaW5lUHJvcGVydHkgYmVjYXVzZSB3ZSBuZWVkIHRvIHJldHVyblxuICAgIC8vIHRoZSBwcm9wZXJ0eSBhc3NpZ25lZCB0byB0aGUgYWN0dWFsIHJvdXRlclxuICAgIC8vIFRoZSB2YWx1ZSBtaWdodCBnZXQgY2hhbmdlZCBhcyB3ZSBjaGFuZ2Ugcm91dGVzIGFuZCB0aGlzIGlzIHRoZVxuICAgIC8vIHByb3BlciB3YXkgdG8gYWNjZXNzIGl0XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHNpbmdsZXRvblJvdXRlciwgZmllbGQsIHtcbiAgICAgICAgZ2V0ICgpIHtcbiAgICAgICAgICAgIGNvbnN0IHJvdXRlciA9IGdldFJvdXRlcigpO1xuICAgICAgICAgICAgcmV0dXJuIHJvdXRlcltmaWVsZF07XG4gICAgICAgIH1cbiAgICB9KTtcbn0pO1xuY29yZU1ldGhvZEZpZWxkcy5mb3JFYWNoKChmaWVsZCk9PntcbiAgICBzaW5nbGV0b25Sb3V0ZXJbZmllbGRdID0gKC4uLmFyZ3MpPT57XG4gICAgICAgIGNvbnN0IHJvdXRlciA9IGdldFJvdXRlcigpO1xuICAgICAgICByZXR1cm4gcm91dGVyW2ZpZWxkXSguLi5hcmdzKTtcbiAgICB9O1xufSk7XG5yb3V0ZXJFdmVudHMuZm9yRWFjaCgoZXZlbnQpPT57XG4gICAgc2luZ2xldG9uUm91dGVyLnJlYWR5KCgpPT57XG4gICAgICAgIF9yb3V0ZXIuZGVmYXVsdC5ldmVudHMub24oZXZlbnQsICguLi5hcmdzKT0+e1xuICAgICAgICAgICAgY29uc3QgZXZlbnRGaWVsZCA9IGBvbiR7ZXZlbnQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCl9JHtldmVudC5zdWJzdHJpbmcoMSl9YDtcbiAgICAgICAgICAgIGNvbnN0IF9zaW5nbGV0b25Sb3V0ZXIgPSBzaW5nbGV0b25Sb3V0ZXI7XG4gICAgICAgICAgICBpZiAoX3NpbmdsZXRvblJvdXRlcltldmVudEZpZWxkXSkge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIF9zaW5nbGV0b25Sb3V0ZXJbZXZlbnRGaWVsZF0oLi4uYXJncyk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEVycm9yIHdoZW4gcnVubmluZyB0aGUgUm91dGVyIGV2ZW50OiAke2V2ZW50RmllbGR9YCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoKDAsIF9pc0Vycm9yKS5kZWZhdWx0KGVycikgPyBgJHtlcnIubWVzc2FnZX1cXG4ke2Vyci5zdGFja31gIDogZXJyICsgJycpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSk7XG59KTtcbmZ1bmN0aW9uIGdldFJvdXRlcigpIHtcbiAgICBpZiAoIXNpbmdsZXRvblJvdXRlci5yb3V0ZXIpIHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9ICdObyByb3V0ZXIgaW5zdGFuY2UgZm91bmQuXFxuJyArICdZb3Ugc2hvdWxkIG9ubHkgdXNlIFwibmV4dC9yb3V0ZXJcIiBvbiB0aGUgY2xpZW50IHNpZGUgb2YgeW91ciBhcHAuXFxuJztcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICByZXR1cm4gc2luZ2xldG9uUm91dGVyLnJvdXRlcjtcbn1cbnZhciBfZGVmYXVsdCA9IHNpbmdsZXRvblJvdXRlcjtcbmV4cG9ydHMuZGVmYXVsdCA9IF9kZWZhdWx0O1xuZnVuY3Rpb24gdXNlUm91dGVyKCkge1xuICAgIHJldHVybiBfcmVhY3QuZGVmYXVsdC51c2VDb250ZXh0KF9yb3V0ZXJDb250ZXh0LlJvdXRlckNvbnRleHQpO1xufVxuZnVuY3Rpb24gY3JlYXRlUm91dGVyKC4uLmFyZ3MpIHtcbiAgICBzaW5nbGV0b25Sb3V0ZXIucm91dGVyID0gbmV3IF9yb3V0ZXIuZGVmYXVsdCguLi5hcmdzKTtcbiAgICBzaW5nbGV0b25Sb3V0ZXIucmVhZHlDYWxsYmFja3MuZm9yRWFjaCgoY2IpPT5jYigpXG4gICAgKTtcbiAgICBzaW5nbGV0b25Sb3V0ZXIucmVhZHlDYWxsYmFja3MgPSBbXTtcbiAgICByZXR1cm4gc2luZ2xldG9uUm91dGVyLnJvdXRlcjtcbn1cbmZ1bmN0aW9uIG1ha2VQdWJsaWNSb3V0ZXJJbnN0YW5jZShyb3V0ZXIpIHtcbiAgICBjb25zdCBzY29wZWRSb3V0ZXIgPSByb3V0ZXI7XG4gICAgY29uc3QgaW5zdGFuY2UgPSB7XG4gICAgfTtcbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHVybFByb3BlcnR5RmllbGRzKXtcbiAgICAgICAgaWYgKHR5cGVvZiBzY29wZWRSb3V0ZXJbcHJvcGVydHldID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgaW5zdGFuY2VbcHJvcGVydHldID0gT2JqZWN0LmFzc2lnbihBcnJheS5pc0FycmF5KHNjb3BlZFJvdXRlcltwcm9wZXJ0eV0pID8gW10gOiB7XG4gICAgICAgICAgICB9LCBzY29wZWRSb3V0ZXJbcHJvcGVydHldKSAvLyBtYWtlcyBzdXJlIHF1ZXJ5IGlzIG5vdCBzdGF0ZWZ1bFxuICAgICAgICAgICAgO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaW5zdGFuY2VbcHJvcGVydHldID0gc2NvcGVkUm91dGVyW3Byb3BlcnR5XTtcbiAgICB9XG4gICAgLy8gRXZlbnRzIGlzIGEgc3RhdGljIHByb3BlcnR5IG9uIHRoZSByb3V0ZXIsIHRoZSByb3V0ZXIgZG9lc24ndCBoYXZlIHRvIGJlIGluaXRpYWxpemVkIHRvIHVzZSBpdFxuICAgIGluc3RhbmNlLmV2ZW50cyA9IF9yb3V0ZXIuZGVmYXVsdC5ldmVudHM7XG4gICAgY29yZU1ldGhvZEZpZWxkcy5mb3JFYWNoKChmaWVsZCk9PntcbiAgICAgICAgaW5zdGFuY2VbZmllbGRdID0gKC4uLmFyZ3MpPT57XG4gICAgICAgICAgICByZXR1cm4gc2NvcGVkUm91dGVyW2ZpZWxkXSguLi5hcmdzKTtcbiAgICAgICAgfTtcbiAgICB9KTtcbiAgICByZXR1cm4gaW5zdGFuY2U7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJvdXRlci5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiX3JvdXRlciIsIl93aXRoUm91dGVyIiwidXNlUm91dGVyIiwiY3JlYXRlUm91dGVyIiwibWFrZVB1YmxpY1JvdXRlckluc3RhbmNlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcm91dGVyQ29udGV4dCIsIl9pc0Vycm9yIiwib2JqIiwiX19lc01vZHVsZSIsInNpbmdsZXRvblJvdXRlciIsInJvdXRlciIsInJlYWR5Q2FsbGJhY2tzIiwicmVhZHkiLCJjYiIsInB1c2giLCJ1cmxQcm9wZXJ0eUZpZWxkcyIsInJvdXRlckV2ZW50cyIsImNvcmVNZXRob2RGaWVsZHMiLCJldmVudHMiLCJmb3JFYWNoIiwiZmllbGQiLCJnZXRSb3V0ZXIiLCJldmVudCIsIm9uIiwiZXZlbnRGaWVsZCIsImNoYXJBdCIsInRvVXBwZXJDYXNlIiwic3Vic3RyaW5nIiwiX3NpbmdsZXRvblJvdXRlciIsImVyciIsImNvbnNvbGUiLCJlcnJvciIsIm1lc3NhZ2UiLCJzdGFjayIsIkVycm9yIiwiX2RlZmF1bHQiLCJ1c2VDb250ZXh0IiwiUm91dGVyQ29udGV4dCIsImFyZ3MiLCJzY29wZWRSb3V0ZXIiLCJpbnN0YW5jZSIsInByb3BlcnR5IiwiYXNzaWduIiwiQXJyYXkiLCJpc0FycmF5Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/router.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/with-router.js": +/*!******************************************************!*\ + !*** ./node_modules/next/dist/client/with-router.js ***! + \******************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = withRouter;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _router = __webpack_require__(/*! ./router */ \"./node_modules/next/dist/client/router.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction withRouter(ComposedComponent) {\n var _s = $RefreshSig$();\n\n function WithRouterWrapper(props) {\n _s();\n\n return /*#__PURE__*/_react[\"default\"].createElement(ComposedComponent, Object.assign({\n router: (0, _router).useRouter()\n }, props));\n }\n\n _s(WithRouterWrapper, \"CeygcqajjFExIxFEzW4x/gfWEGQ=\", true);\n\n WithRouterWrapper.getInitialProps = ComposedComponent.getInitialProps;\n WithRouterWrapper.origGetInitialProps = ComposedComponent.origGetInitialProps;\n\n if (true) {\n var name = ComposedComponent.displayName || ComposedComponent.name || 'Unknown';\n WithRouterWrapper.displayName = \"withRouter(\".concat(name, \")\");\n }\n\n return WithRouterWrapper;\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC93aXRoLXJvdXRlci5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELGtCQUFBLEdBQWtCRSxVQUFsQjs7QUFDQSxJQUFJQyxNQUFNLEdBQUdDLHNCQUFzQixDQUFDQyxtQkFBTyxDQUFDLDRDQUFELENBQVIsQ0FBbkM7O0FBQ0EsSUFBSUMsT0FBTyxHQUFHRCxtQkFBTyxDQUFDLDJEQUFELENBQXJCOztBQUNBLFNBQVNELHNCQUFULENBQWdDRyxHQUFoQyxFQUFxQztBQUNqQyxTQUFPQSxHQUFHLElBQUlBLEdBQUcsQ0FBQ0MsVUFBWCxHQUF3QkQsR0FBeEIsR0FBOEI7QUFDakMsZUFBU0E7QUFEd0IsR0FBckM7QUFHSDs7QUFDRCxTQUFTTCxVQUFULENBQW9CTyxpQkFBcEIsRUFBdUM7QUFBQTs7QUFDbkMsV0FBU0MsaUJBQVQsQ0FBMkJDLEtBQTNCLEVBQWtDO0FBQUE7O0FBQzlCLFdBQU8sYUFBY1IsTUFBTSxXQUFOLENBQWVTLGFBQWYsQ0FBNkJILGlCQUE3QixFQUFnRFgsTUFBTSxDQUFDZSxNQUFQLENBQWM7QUFDL0VDLE1BQUFBLE1BQU0sRUFBRSxDQUFDLEdBQUdSLE9BQUosRUFBYVMsU0FBYjtBQUR1RSxLQUFkLEVBRWxFSixLQUZrRSxDQUFoRCxDQUFyQjtBQUdIOztBQUxrQyxLQUMxQkQsaUJBRDBCOztBQU1uQ0EsRUFBQUEsaUJBQWlCLENBQUNNLGVBQWxCLEdBQW9DUCxpQkFBaUIsQ0FBQ08sZUFBdEQ7QUFDQU4sRUFBQUEsaUJBQWlCLENBQUNPLG1CQUFsQixHQUF3Q1IsaUJBQWlCLENBQUNRLG1CQUExRDs7QUFDQSxZQUEyQztBQUN2QyxRQUFNQyxJQUFJLEdBQUdULGlCQUFpQixDQUFDVSxXQUFsQixJQUFpQ1YsaUJBQWlCLENBQUNTLElBQW5ELElBQTJELFNBQXhFO0FBQ0FSLElBQUFBLGlCQUFpQixDQUFDUyxXQUFsQix3QkFBOENELElBQTlDO0FBQ0g7O0FBQ0QsU0FBT1IsaUJBQVA7QUFDSCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC93aXRoLXJvdXRlci5qcz9hYzdjIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gd2l0aFJvdXRlcjtcbnZhciBfcmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG52YXIgX3JvdXRlciA9IHJlcXVpcmUoXCIuL3JvdXRlclwiKTtcbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbmZ1bmN0aW9uIHdpdGhSb3V0ZXIoQ29tcG9zZWRDb21wb25lbnQpIHtcbiAgICBmdW5jdGlvbiBXaXRoUm91dGVyV3JhcHBlcihwcm9wcykge1xuICAgICAgICByZXR1cm4oLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KENvbXBvc2VkQ29tcG9uZW50LCBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgICAgIHJvdXRlcjogKDAsIF9yb3V0ZXIpLnVzZVJvdXRlcigpXG4gICAgICAgIH0sIHByb3BzKSkpO1xuICAgIH1cbiAgICBXaXRoUm91dGVyV3JhcHBlci5nZXRJbml0aWFsUHJvcHMgPSBDb21wb3NlZENvbXBvbmVudC5nZXRJbml0aWFsUHJvcHM7XG4gICAgV2l0aFJvdXRlcldyYXBwZXIub3JpZ0dldEluaXRpYWxQcm9wcyA9IENvbXBvc2VkQ29tcG9uZW50Lm9yaWdHZXRJbml0aWFsUHJvcHM7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgY29uc3QgbmFtZSA9IENvbXBvc2VkQ29tcG9uZW50LmRpc3BsYXlOYW1lIHx8IENvbXBvc2VkQ29tcG9uZW50Lm5hbWUgfHwgJ1Vua25vd24nO1xuICAgICAgICBXaXRoUm91dGVyV3JhcHBlci5kaXNwbGF5TmFtZSA9IGB3aXRoUm91dGVyKCR7bmFtZX0pYDtcbiAgICB9XG4gICAgcmV0dXJuIFdpdGhSb3V0ZXJXcmFwcGVyO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD13aXRoLXJvdXRlci5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJ3aXRoUm91dGVyIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcm91dGVyIiwib2JqIiwiX19lc01vZHVsZSIsIkNvbXBvc2VkQ29tcG9uZW50IiwiV2l0aFJvdXRlcldyYXBwZXIiLCJwcm9wcyIsImNyZWF0ZUVsZW1lbnQiLCJhc3NpZ24iLCJyb3V0ZXIiLCJ1c2VSb3V0ZXIiLCJnZXRJbml0aWFsUHJvcHMiLCJvcmlnR2V0SW5pdGlhbFByb3BzIiwibmFtZSIsImRpc3BsYXlOYW1lIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/with-router.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js": +/*!*************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js ***! + \*************************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.normalizeLocalePath = normalizeLocalePath;\n\nfunction normalizeLocalePath(pathname, locales) {\n var detectedLocale; // first item will be empty string from splitting at first char\n\n var pathnameParts = pathname.split('/');\n (locales || []).some(function (locale) {\n if (pathnameParts[1] && pathnameParts[1].toLowerCase() === locale.toLowerCase()) {\n detectedLocale = locale;\n pathnameParts.splice(1, 1);\n pathname = pathnameParts.join('/') || '/';\n return true;\n }\n\n return false;\n });\n return {\n pathname: pathname,\n detectedLocale: detectedLocale\n };\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaTE4bi9ub3JtYWxpemUtbG9jYWxlLXBhdGguanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCwyQkFBQSxHQUE4QkUsbUJBQTlCOztBQUNBLFNBQVNBLG1CQUFULENBQTZCQyxRQUE3QixFQUF1Q0MsT0FBdkMsRUFBZ0Q7QUFDNUMsTUFBSUMsY0FBSixDQUQ0QyxDQUU1Qzs7QUFDQSxNQUFNQyxhQUFhLEdBQUdILFFBQVEsQ0FBQ0ksS0FBVCxDQUFlLEdBQWYsQ0FBdEI7QUFDQSxHQUFDSCxPQUFPLElBQUksRUFBWixFQUFnQkksSUFBaEIsQ0FBcUIsVUFBQ0MsTUFBRCxFQUFVO0FBQzNCLFFBQUlILGFBQWEsQ0FBQyxDQUFELENBQWIsSUFBb0JBLGFBQWEsQ0FBQyxDQUFELENBQWIsQ0FBaUJJLFdBQWpCLE9BQW1DRCxNQUFNLENBQUNDLFdBQVAsRUFBM0QsRUFBaUY7QUFDN0VMLE1BQUFBLGNBQWMsR0FBR0ksTUFBakI7QUFDQUgsTUFBQUEsYUFBYSxDQUFDSyxNQUFkLENBQXFCLENBQXJCLEVBQXdCLENBQXhCO0FBQ0FSLE1BQUFBLFFBQVEsR0FBR0csYUFBYSxDQUFDTSxJQUFkLENBQW1CLEdBQW5CLEtBQTJCLEdBQXRDO0FBQ0EsYUFBTyxJQUFQO0FBQ0g7O0FBQ0QsV0FBTyxLQUFQO0FBQ0gsR0FSRDtBQVNBLFNBQU87QUFDSFQsSUFBQUEsUUFBUSxFQUFSQSxRQURHO0FBRUhFLElBQUFBLGNBQWMsRUFBZEE7QUFGRyxHQUFQO0FBSUgiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zaGFyZWQvbGliL2kxOG4vbm9ybWFsaXplLWxvY2FsZS1wYXRoLmpzPzA0M2IiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLm5vcm1hbGl6ZUxvY2FsZVBhdGggPSBub3JtYWxpemVMb2NhbGVQYXRoO1xuZnVuY3Rpb24gbm9ybWFsaXplTG9jYWxlUGF0aChwYXRobmFtZSwgbG9jYWxlcykge1xuICAgIGxldCBkZXRlY3RlZExvY2FsZTtcbiAgICAvLyBmaXJzdCBpdGVtIHdpbGwgYmUgZW1wdHkgc3RyaW5nIGZyb20gc3BsaXR0aW5nIGF0IGZpcnN0IGNoYXJcbiAgICBjb25zdCBwYXRobmFtZVBhcnRzID0gcGF0aG5hbWUuc3BsaXQoJy8nKTtcbiAgICAobG9jYWxlcyB8fCBbXSkuc29tZSgobG9jYWxlKT0+e1xuICAgICAgICBpZiAocGF0aG5hbWVQYXJ0c1sxXSAmJiBwYXRobmFtZVBhcnRzWzFdLnRvTG93ZXJDYXNlKCkgPT09IGxvY2FsZS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgICAgICBkZXRlY3RlZExvY2FsZSA9IGxvY2FsZTtcbiAgICAgICAgICAgIHBhdGhuYW1lUGFydHMuc3BsaWNlKDEsIDEpO1xuICAgICAgICAgICAgcGF0aG5hbWUgPSBwYXRobmFtZVBhcnRzLmpvaW4oJy8nKSB8fCAnLyc7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcGF0aG5hbWUsXG4gICAgICAgIGRldGVjdGVkTG9jYWxlXG4gICAgfTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bm9ybWFsaXplLWxvY2FsZS1wYXRoLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsIm5vcm1hbGl6ZUxvY2FsZVBhdGgiLCJwYXRobmFtZSIsImxvY2FsZXMiLCJkZXRlY3RlZExvY2FsZSIsInBhdGhuYW1lUGFydHMiLCJzcGxpdCIsInNvbWUiLCJsb2NhbGUiLCJ0b0xvd2VyQ2FzZSIsInNwbGljZSIsImpvaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/mitt.js": +/*!***************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/mitt.js ***! + \***************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = mitt;\n\nfunction mitt() {\n var all = Object.create(null);\n return {\n on: function on(type, handler) {\n (all[type] || (all[type] = [])).push(handler);\n },\n off: function off(type, handler) {\n if (all[type]) {\n all[type].splice(all[type].indexOf(handler) >>> 0, 1);\n }\n },\n emit: function emit(type) {\n for (var _len = arguments.length, evts = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n evts[_key - 1] = arguments[_key];\n }\n\n (all[type] || []).slice().map(function (handler) {\n handler.apply(void 0, evts);\n });\n }\n };\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvbWl0dC5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELGtCQUFBLEdBQWtCRSxJQUFsQjs7QUFDQSxTQUFTQSxJQUFULEdBQWdCO0FBQ1osTUFBTUMsR0FBRyxHQUFHTCxNQUFNLENBQUNNLE1BQVAsQ0FBYyxJQUFkLENBQVo7QUFDQSxTQUFPO0FBQ0hDLElBQUFBLEVBREcsY0FDQ0MsSUFERCxFQUNPQyxPQURQLEVBQ2dCO0FBQ2YsT0FBQ0osR0FBRyxDQUFDRyxJQUFELENBQUgsS0FBY0gsR0FBRyxDQUFDRyxJQUFELENBQUgsR0FBWSxFQUExQixDQUFELEVBQWdDRSxJQUFoQyxDQUFxQ0QsT0FBckM7QUFDSCxLQUhFO0FBSUhFLElBQUFBLEdBSkcsZUFJRUgsSUFKRixFQUlRQyxPQUpSLEVBSWlCO0FBQ2hCLFVBQUlKLEdBQUcsQ0FBQ0csSUFBRCxDQUFQLEVBQWU7QUFDWEgsUUFBQUEsR0FBRyxDQUFDRyxJQUFELENBQUgsQ0FBVUksTUFBVixDQUFpQlAsR0FBRyxDQUFDRyxJQUFELENBQUgsQ0FBVUssT0FBVixDQUFrQkosT0FBbEIsTUFBK0IsQ0FBaEQsRUFBbUQsQ0FBbkQ7QUFDSDtBQUNKLEtBUkU7QUFTSEssSUFBQUEsSUFURyxnQkFTR04sSUFUSCxFQVNrQjtBQUFBLHdDQUFOTyxJQUFNO0FBQU5BLFFBQUFBLElBQU07QUFBQTs7QUFDakIsT0FBQ1YsR0FBRyxDQUFDRyxJQUFELENBQUgsSUFBYSxFQUFkLEVBQWtCUSxLQUFsQixHQUEwQkMsR0FBMUIsQ0FBOEIsVUFBQ1IsT0FBRCxFQUFXO0FBQ3JDQSxRQUFBQSxPQUFPLE1BQVAsU0FBV00sSUFBWDtBQUNILE9BRkQ7QUFHSDtBQWJFLEdBQVA7QUFlSCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvbWl0dC5qcz84NTFkIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gbWl0dDtcbmZ1bmN0aW9uIG1pdHQoKSB7XG4gICAgY29uc3QgYWxsID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICByZXR1cm4ge1xuICAgICAgICBvbiAodHlwZSwgaGFuZGxlcikge1xuICAgICAgICAgICAgKGFsbFt0eXBlXSB8fCAoYWxsW3R5cGVdID0gW10pKS5wdXNoKGhhbmRsZXIpO1xuICAgICAgICB9LFxuICAgICAgICBvZmYgKHR5cGUsIGhhbmRsZXIpIHtcbiAgICAgICAgICAgIGlmIChhbGxbdHlwZV0pIHtcbiAgICAgICAgICAgICAgICBhbGxbdHlwZV0uc3BsaWNlKGFsbFt0eXBlXS5pbmRleE9mKGhhbmRsZXIpID4+PiAwLCAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZW1pdCAodHlwZSwgLi4uZXZ0cykge1xuICAgICAgICAgICAgKGFsbFt0eXBlXSB8fCBbXSkuc2xpY2UoKS5tYXAoKGhhbmRsZXIpPT57XG4gICAgICAgICAgICAgICAgaGFuZGxlciguLi5ldnRzKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bWl0dC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJtaXR0IiwiYWxsIiwiY3JlYXRlIiwib24iLCJ0eXBlIiwiaGFuZGxlciIsInB1c2giLCJvZmYiLCJzcGxpY2UiLCJpbmRleE9mIiwiZW1pdCIsImV2dHMiLCJzbGljZSIsIm1hcCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/mitt.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router-context.js": +/*!*************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router-context.js ***! + \*************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.RouterContext = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar RouterContext = _react[\"default\"].createContext(null);\n\nexports.RouterContext = RouterContext;\n\nif (true) {\n RouterContext.displayName = 'RouterContext';\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyLWNvbnRleHQuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxxQkFBQSxHQUF3QixLQUFLLENBQTdCOztBQUNBLElBQUlHLE1BQU0sR0FBR0Msc0JBQXNCLENBQUNDLG1CQUFPLENBQUMsNENBQUQsQ0FBUixDQUFuQzs7QUFDQSxTQUFTRCxzQkFBVCxDQUFnQ0UsR0FBaEMsRUFBcUM7QUFDakMsU0FBT0EsR0FBRyxJQUFJQSxHQUFHLENBQUNDLFVBQVgsR0FBd0JELEdBQXhCLEdBQThCO0FBQ2pDLGVBQVNBO0FBRHdCLEdBQXJDO0FBR0g7O0FBQ0QsSUFBTUosYUFBYSxHQUFHQyxNQUFNLFdBQU4sQ0FBZUssYUFBZixDQUE2QixJQUE3QixDQUF0Qjs7QUFDQVIscUJBQUEsR0FBd0JFLGFBQXhCOztBQUNBLElBQUksTUFBdUM7QUFDdkNBLEVBQUFBLGFBQWEsQ0FBQ08sV0FBZCxHQUE0QixlQUE1QjtBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXItY29udGV4dC5qcz81ZTkwIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5Sb3V0ZXJDb250ZXh0ID0gdm9pZCAwO1xudmFyIF9yZWFjdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJlYWN0XCIpKTtcbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbmNvbnN0IFJvdXRlckNvbnRleHQgPSBfcmVhY3QuZGVmYXVsdC5jcmVhdGVDb250ZXh0KG51bGwpO1xuZXhwb3J0cy5Sb3V0ZXJDb250ZXh0ID0gUm91dGVyQ29udGV4dDtcbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgUm91dGVyQ29udGV4dC5kaXNwbGF5TmFtZSA9ICdSb3V0ZXJDb250ZXh0Jztcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cm91dGVyLWNvbnRleHQuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiUm91dGVyQ29udGV4dCIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwib2JqIiwiX19lc01vZHVsZSIsImNyZWF0ZUNvbnRleHQiLCJkaXNwbGF5TmFtZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router-context.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/router.js": +/*!************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/router.js ***! + \************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _regeneratorRuntime = __webpack_require__(/*! ./node_modules/@babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n\nvar _defineProperty = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/defineProperty.js\");\n\nvar _asyncToGenerator = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/asyncToGenerator.js\");\n\nvar _classCallCheck = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\");\n\nvar _createClass = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\");\n\nvar _slicedToArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.getDomainLocale = getDomainLocale;\nexports.addLocale = addLocale;\nexports.delLocale = delLocale;\nexports.hasBasePath = hasBasePath;\nexports.addBasePath = addBasePath;\nexports.delBasePath = delBasePath;\nexports.isLocalURL = isLocalURL;\nexports.interpolateAs = interpolateAs;\nexports.resolveHref = resolveHref;\nexports[\"default\"] = void 0;\n\nvar _normalizeTrailingSlash = __webpack_require__(/*! ../../../client/normalize-trailing-slash */ \"./node_modules/next/dist/client/normalize-trailing-slash.js\");\n\nvar _routeLoader = __webpack_require__(/*! ../../../client/route-loader */ \"./node_modules/next/dist/client/route-loader.js\");\n\nvar _isError = _interopRequireDefault(__webpack_require__(/*! ../../../lib/is-error */ \"./node_modules/next/dist/lib/is-error.js\"));\n\nvar _denormalizePagePath = __webpack_require__(/*! ../../../server/denormalize-page-path */ \"./node_modules/next/dist/server/denormalize-page-path.js\");\n\nvar _normalizeLocalePath = __webpack_require__(/*! ../i18n/normalize-locale-path */ \"./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js\");\n\nvar _mitt = _interopRequireDefault(__webpack_require__(/*! ../mitt */ \"./node_modules/next/dist/shared/lib/mitt.js\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./node_modules/next/dist/shared/lib/utils.js\");\n\nvar _isDynamic = __webpack_require__(/*! ./utils/is-dynamic */ \"./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js\");\n\nvar _parseRelativeUrl = __webpack_require__(/*! ./utils/parse-relative-url */ \"./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js\");\n\nvar _querystring = __webpack_require__(/*! ./utils/querystring */ \"./node_modules/next/dist/shared/lib/router/utils/querystring.js\");\n\nvar _resolveRewrites = _interopRequireDefault(__webpack_require__(/*! ./utils/resolve-rewrites */ \"?506d\"));\n\nvar _routeMatcher = __webpack_require__(/*! ./utils/route-matcher */ \"./node_modules/next/dist/shared/lib/router/utils/route-matcher.js\");\n\nvar _routeRegex = __webpack_require__(/*! ./utils/route-regex */ \"./node_modules/next/dist/shared/lib/router/utils/route-regex.js\");\n\nvar _getMiddlewareRegex = __webpack_require__(/*! ./utils/get-middleware-regex */ \"./node_modules/next/dist/shared/lib/router/utils/get-middleware-regex.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar detectDomainLocale;\n\nif (false) {}\n\nvar basePath = false || '';\n\nfunction buildCancellationError() {\n return Object.assign(new Error('Route Cancelled'), {\n cancelled: true\n });\n}\n\nfunction addPathPrefix(path, prefix) {\n if (!path.startsWith('/') || !prefix) {\n return path;\n }\n\n var pathname = pathNoQueryHash(path);\n return (0, _normalizeTrailingSlash).normalizePathTrailingSlash(\"\".concat(prefix).concat(pathname)) + path.substr(pathname.length);\n}\n\nfunction getDomainLocale(path, locale, locales, domainLocales) {\n if (false) { var detectedDomain; } else {\n return false;\n }\n}\n\nfunction addLocale(path, locale, defaultLocale) {\n if (false) { var localeLower, pathLower, pathname; }\n\n return path;\n}\n\nfunction delLocale(path, locale) {\n if (false) { var localeLower, pathLower, pathname; }\n\n return path;\n}\n\nfunction pathNoQueryHash(path) {\n var queryIndex = path.indexOf('?');\n var hashIndex = path.indexOf('#');\n\n if (queryIndex > -1 || hashIndex > -1) {\n path = path.substring(0, queryIndex > -1 ? queryIndex : hashIndex);\n }\n\n return path;\n}\n\nfunction hasBasePath(path) {\n path = pathNoQueryHash(path);\n return path === basePath || path.startsWith(basePath + '/');\n}\n\nfunction addBasePath(path) {\n // we only add the basepath on relative urls\n return addPathPrefix(path, basePath);\n}\n\nfunction delBasePath(path) {\n path = path.slice(basePath.length);\n if (!path.startsWith('/')) path = \"/\".concat(path);\n return path;\n}\n\nfunction isLocalURL(url) {\n // prevent a hydration mismatch on href for url with anchor refs\n if (url.startsWith('/') || url.startsWith('#') || url.startsWith('?')) return true;\n\n try {\n // absolute urls can be local if they are on the same origin\n var locationOrigin = (0, _utils).getLocationOrigin();\n var resolved = new URL(url, locationOrigin);\n return resolved.origin === locationOrigin && hasBasePath(resolved.pathname);\n } catch (_) {\n return false;\n }\n}\n\nfunction interpolateAs(route, asPathname, query) {\n var interpolatedRoute = '';\n var dynamicRegex = (0, _routeRegex).getRouteRegex(route);\n var dynamicGroups = dynamicRegex.groups;\n var dynamicMatches = // Try to match the dynamic route against the asPath\n (asPathname !== route ? (0, _routeMatcher).getRouteMatcher(dynamicRegex)(asPathname) : '') || // Fall back to reading the values from the href\n // TODO: should this take priority; also need to change in the router.\n query;\n interpolatedRoute = route;\n var params = Object.keys(dynamicGroups);\n\n if (!params.every(function (param) {\n var value = dynamicMatches[param] || '';\n var _dynamicGroups$param = dynamicGroups[param],\n repeat = _dynamicGroups$param.repeat,\n optional = _dynamicGroups$param.optional; // support single-level catch-all\n // TODO: more robust handling for user-error (passing `/`)\n\n var replaced = \"[\".concat(repeat ? '...' : '').concat(param, \"]\");\n\n if (optional) {\n replaced = \"\".concat(!value ? '/' : '', \"[\").concat(replaced, \"]\");\n }\n\n if (repeat && !Array.isArray(value)) value = [value];\n return (optional || param in dynamicMatches) && (interpolatedRoute = interpolatedRoute.replace(replaced, repeat ? value.map( // these values should be fully encoded instead of just\n // path delimiter escaped since they are being inserted\n // into the URL and we expect URL encoded segments\n // when parsing dynamic route params\n function (segment) {\n return encodeURIComponent(segment);\n }).join('/') : encodeURIComponent(value)) || '/');\n })) {\n interpolatedRoute = '' // did not satisfy all requirements\n ; // n.b. We ignore this error because we handle warning for this case in\n // development in the `<Link>` component directly.\n }\n\n return {\n params: params,\n result: interpolatedRoute\n };\n}\n\nfunction omitParmsFromQuery(query, params) {\n var filteredQuery = {};\n Object.keys(query).forEach(function (key) {\n if (!params.includes(key)) {\n filteredQuery[key] = query[key];\n }\n });\n return filteredQuery;\n}\n\nfunction resolveHref(router, href, resolveAs) {\n // we use a dummy base url for relative urls\n var base;\n var urlAsString = typeof href === 'string' ? href : (0, _utils).formatWithValidation(href); // repeated slashes and backslashes in the URL are considered\n // invalid and will never match a Next.js page/file\n\n var urlProtoMatch = urlAsString.match(/^[a-zA-Z]{1,}:\\/\\//);\n var urlAsStringNoProto = urlProtoMatch ? urlAsString.substr(urlProtoMatch[0].length) : urlAsString;\n var urlParts = urlAsStringNoProto.split('?');\n\n if ((urlParts[0] || '').match(/(\\/\\/|\\\\)/)) {\n console.error(\"Invalid href passed to next/router: \".concat(urlAsString, \", repeated forward-slashes (//) or backslashes \\\\ are not valid in the href\"));\n var normalizedUrl = (0, _utils).normalizeRepeatedSlashes(urlAsStringNoProto);\n urlAsString = (urlProtoMatch ? urlProtoMatch[0] : '') + normalizedUrl;\n } // Return because it cannot be routed by the Next.js router\n\n\n if (!isLocalURL(urlAsString)) {\n return resolveAs ? [urlAsString] : urlAsString;\n }\n\n try {\n base = new URL(urlAsString.startsWith('#') ? router.asPath : router.pathname, 'http://n');\n } catch (_) {\n // fallback to / for invalid asPath values e.g. //\n base = new URL('/', 'http://n');\n }\n\n try {\n var finalUrl = new URL(urlAsString, base);\n finalUrl.pathname = (0, _normalizeTrailingSlash).normalizePathTrailingSlash(finalUrl.pathname);\n var interpolatedAs = '';\n\n if ((0, _isDynamic).isDynamicRoute(finalUrl.pathname) && finalUrl.searchParams && resolveAs) {\n var query = (0, _querystring).searchParamsToUrlQuery(finalUrl.searchParams);\n\n var _interpolateAs = interpolateAs(finalUrl.pathname, finalUrl.pathname, query),\n result = _interpolateAs.result,\n params = _interpolateAs.params;\n\n if (result) {\n interpolatedAs = (0, _utils).formatWithValidation({\n pathname: result,\n hash: finalUrl.hash,\n query: omitParmsFromQuery(query, params)\n });\n }\n } // if the origin didn't change, it means we received a relative href\n\n\n var resolvedHref = finalUrl.origin === base.origin ? finalUrl.href.slice(finalUrl.origin.length) : finalUrl.href;\n return resolveAs ? [resolvedHref, interpolatedAs || resolvedHref] : resolvedHref;\n } catch (_1) {\n return resolveAs ? [urlAsString] : urlAsString;\n }\n}\n\nfunction stripOrigin(url) {\n var origin = (0, _utils).getLocationOrigin();\n return url.startsWith(origin) ? url.substring(origin.length) : url;\n}\n\nfunction prepareUrlAs(router, url, as) {\n // If url and as provided as an object representation,\n // we'll format them into the string version here.\n var _resolveHref = resolveHref(router, url, true),\n _resolveHref2 = _slicedToArray(_resolveHref, 2),\n resolvedHref = _resolveHref2[0],\n resolvedAs = _resolveHref2[1];\n\n var origin = (0, _utils).getLocationOrigin();\n var hrefHadOrigin = resolvedHref.startsWith(origin);\n var asHadOrigin = resolvedAs && resolvedAs.startsWith(origin);\n resolvedHref = stripOrigin(resolvedHref);\n resolvedAs = resolvedAs ? stripOrigin(resolvedAs) : resolvedAs;\n var preparedUrl = hrefHadOrigin ? resolvedHref : addBasePath(resolvedHref);\n var preparedAs = as ? stripOrigin(resolveHref(router, as)) : resolvedAs || resolvedHref;\n return {\n url: preparedUrl,\n as: asHadOrigin ? preparedAs : addBasePath(preparedAs)\n };\n}\n\nfunction resolveDynamicRoute(pathname, pages) {\n var cleanPathname = (0, _normalizeTrailingSlash).removePathTrailingSlash((0, _denormalizePagePath).denormalizePagePath(pathname));\n\n if (cleanPathname === '/404' || cleanPathname === '/_error') {\n return pathname;\n } // handle resolving href for dynamic routes\n\n\n if (!pages.includes(cleanPathname)) {\n // eslint-disable-next-line array-callback-return\n pages.some(function (page) {\n if ((0, _isDynamic).isDynamicRoute(page) && (0, _routeRegex).getRouteRegex(page).re.test(cleanPathname)) {\n pathname = page;\n return true;\n }\n });\n }\n\n return (0, _normalizeTrailingSlash).removePathTrailingSlash(pathname);\n}\n\nvar manualScrollRestoration = false && 0;\nvar SSG_DATA_NOT_FOUND = Symbol('SSG_DATA_NOT_FOUND');\n\nfunction fetchRetry(url, attempts, opts) {\n return fetch(url, {\n // Cookies are required to be present for Next.js' SSG \"Preview Mode\".\n // Cookies may also be required for `getServerSideProps`.\n //\n // > `fetch` won’t send cookies, unless you set the credentials init\n // > option.\n // https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch\n //\n // > For maximum browser compatibility when it comes to sending &\n // > receiving cookies, always supply the `credentials: 'same-origin'`\n // > option instead of relying on the default.\n // https://github.com/github/fetch#caveats\n credentials: 'same-origin'\n }).then(function (res) {\n if (!res.ok) {\n if (attempts > 1 && res.status >= 500) {\n return fetchRetry(url, attempts - 1, opts);\n }\n\n if (res.status === 404) {\n return res.json().then(function (data) {\n if (data.notFound) {\n return {\n notFound: SSG_DATA_NOT_FOUND\n };\n }\n\n throw new Error(\"Failed to load static props\");\n });\n }\n\n throw new Error(\"Failed to load static props\");\n }\n\n return opts.text ? res.text() : res.json();\n });\n}\n\nfunction fetchNextData(dataHref, isServerRender, text, inflightCache, persistCache) {\n var _URL = new URL(dataHref, window.location.href),\n cacheKey = _URL.href;\n\n if (inflightCache[cacheKey] !== undefined) {\n return inflightCache[cacheKey];\n }\n\n return inflightCache[cacheKey] = fetchRetry(dataHref, isServerRender ? 3 : 1, {\n text: text\n })[\"catch\"](function (err) {\n // We should only trigger a server-side transition if this was caused\n // on a client-side transition. Otherwise, we'd get into an infinite\n // loop.\n if (!isServerRender) {\n (0, _routeLoader).markAssetError(err);\n }\n\n throw err;\n }).then(function (data) {\n if (!persistCache || true) {\n delete inflightCache[cacheKey];\n }\n\n return data;\n })[\"catch\"](function (err) {\n delete inflightCache[cacheKey];\n throw err;\n });\n}\n\nvar Router = /*#__PURE__*/function () {\n function Router(pathname, query, as, _ref) {\n var _this = this;\n\n var initialProps = _ref.initialProps,\n pageLoader = _ref.pageLoader,\n App = _ref.App,\n wrapApp = _ref.wrapApp,\n Component = _ref.Component,\n err = _ref.err,\n subscription = _ref.subscription,\n isFallback = _ref.isFallback,\n locale = _ref.locale,\n locales = _ref.locales,\n defaultLocale = _ref.defaultLocale,\n domainLocales = _ref.domainLocales,\n isPreview = _ref.isPreview;\n\n _classCallCheck(this, Router);\n\n // Static Data Cache\n this.sdc = {}; // In-flight Server Data Requests, for deduping\n\n this.sdr = {}; // In-flight middleware preflight requests\n\n this.sde = {};\n this._idx = 0;\n\n this.onPopState = function (e) {\n var state = e.state;\n\n if (!state) {\n // We get state as undefined for two reasons.\n // 1. With older safari (< 8) and older chrome (< 34)\n // 2. When the URL changed with #\n //\n // In the both cases, we don't need to proceed and change the route.\n // (as it's already changed)\n // But we can simply replace the state with the new changes.\n // Actually, for (1) we don't need to nothing. But it's hard to detect that event.\n // So, doing the following for (1) does no harm.\n var _pathname = _this.pathname,\n _query = _this.query;\n\n _this.changeState('replaceState', (0, _utils).formatWithValidation({\n pathname: addBasePath(_pathname),\n query: _query\n }), (0, _utils).getURL());\n\n return;\n }\n\n if (!state.__N) {\n return;\n }\n\n var forcedScroll;\n var url = state.url,\n as = state.as,\n options = state.options,\n idx = state.idx;\n\n if (false) { var v; }\n\n _this._idx = idx;\n\n var _parseRelativeUrl2 = (0, _parseRelativeUrl).parseRelativeUrl(url),\n pathname = _parseRelativeUrl2.pathname; // Make sure we don't re-render on initial load,\n // can be caused by navigating back from an external site\n\n\n if (_this.isSsr && as === _this.asPath && pathname === _this.pathname) {\n return;\n } // If the downstream application returns falsy, return.\n // They will then be responsible for handling the event.\n\n\n if (_this._bps && !_this._bps(state)) {\n return;\n }\n\n _this.change('replaceState', url, as, Object.assign({}, options, {\n shallow: options.shallow && _this._shallow,\n locale: options.locale || _this.defaultLocale\n }), forcedScroll);\n }; // represents the current component key\n\n\n this.route = (0, _normalizeTrailingSlash).removePathTrailingSlash(pathname); // set up the component cache (by route keys)\n\n this.components = {}; // We should not keep the cache, if there's an error\n // Otherwise, this cause issues when when going back and\n // come again to the errored page.\n\n if (pathname !== '/_error') {\n var ref;\n this.components[this.route] = {\n Component: Component,\n initial: true,\n props: initialProps,\n err: err,\n __N_SSG: initialProps && initialProps.__N_SSG,\n __N_SSP: initialProps && initialProps.__N_SSP,\n __N_RSC: !!((ref = Component) === null || ref === void 0 ? void 0 : ref.__next_rsc__)\n };\n }\n\n this.components['/_app'] = {\n Component: App,\n styleSheets: []\n }; // Backwards compat for Router.router.events\n // TODO: Should be remove the following major version as it was never documented\n\n this.events = Router.events;\n this.pageLoader = pageLoader;\n this.pathname = pathname;\n this.query = query; // if auto prerendered and dynamic route wait to update asPath\n // until after mount to prevent hydration mismatch\n\n var autoExportDynamic = (0, _isDynamic).isDynamicRoute(pathname) && self.__NEXT_DATA__.autoExport;\n\n this.asPath = autoExportDynamic ? pathname : as;\n this.basePath = basePath;\n this.sub = subscription;\n this.clc = null;\n this._wrapApp = wrapApp; // make sure to ignore extra popState in safari on navigating\n // back from external site\n\n this.isSsr = true;\n this.isFallback = isFallback;\n this.isReady = !!(self.__NEXT_DATA__.gssp || self.__NEXT_DATA__.gip || self.__NEXT_DATA__.appGip && !self.__NEXT_DATA__.gsp || !autoExportDynamic && !self.location.search && !false);\n this.isPreview = !!isPreview;\n this.isLocaleDomain = false;\n\n if (false) {}\n\n if (true) {\n // make sure \"as\" doesn't start with double slashes or else it can\n // throw an error as it's considered invalid\n if (as.substr(0, 2) !== '//') {\n // in order for `e.state` to work on the `onpopstate` event\n // we have to register the initial route upon initialization\n var options = {\n locale: locale\n };\n options._shouldResolveHref = as !== pathname;\n this.changeState('replaceState', (0, _utils).formatWithValidation({\n pathname: addBasePath(pathname),\n query: query\n }), (0, _utils).getURL(), options);\n }\n\n window.addEventListener('popstate', this.onPopState); // enable custom scroll restoration handling when available\n // otherwise fallback to browser's default handling\n\n if (false) {}\n }\n }\n\n _createClass(Router, [{\n key: \"reload\",\n value: function reload() {\n window.location.reload();\n }\n /**\n * Go back in history\n */\n\n }, {\n key: \"back\",\n value: function back() {\n window.history.back();\n }\n /**\n * Performs a `pushState` with arguments\n * @param url of the route\n * @param as masks `url` for the browser\n * @param options object you can define `shallow` and other options\n */\n\n }, {\n key: \"push\",\n value: function push(url, as) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (false) {}\n\n var _prepareUrlAs = prepareUrlAs(this, url, as);\n\n url = _prepareUrlAs.url;\n as = _prepareUrlAs.as;\n return this.change('pushState', url, as, options);\n }\n /**\n * Performs a `replaceState` with arguments\n * @param url of the route\n * @param as masks `url` for the browser\n * @param options object you can define `shallow` and other options\n */\n\n }, {\n key: \"replace\",\n value: function replace(url, as) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var _prepareUrlAs2 = prepareUrlAs(this, url, as);\n\n url = _prepareUrlAs2.url;\n as = _prepareUrlAs2.as;\n return this.change('replaceState', url, as, options);\n }\n }, {\n key: \"change\",\n value: function () {\n var _change = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(method, url, as, options, forcedScroll) {\n var shouldResolveHref, prevLocale, parsedAs, localePathResult, didNavigate, ref, detectedDomain, asNoBasePath, _options$shallow, shallow, routeProps, cleanedAs, localeChange, parsed, pathname, query, pages, rewrites, _yield$Promise$all, _yield$Promise$all2, resolvedAs, rewritesResult, effect, route, _parsedAs, asPathname, routeRegex, routeMatch, shouldInterpolate, interpolatedAs, missingParams, ref1, routeInfo, _routeInfo, error, props, __N_SSG, __N_SSP, destination, parsedHref, _prepareUrlAs3, newUrl, newAs, notFoundRoute, isValidShallowRoute, _scroll, shouldScroll, resetScroll;\n\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (isLocalURL(url)) {\n _context.next = 3;\n break;\n }\n\n window.location.href = url;\n return _context.abrupt(\"return\", false);\n\n case 3:\n shouldResolveHref = options._h || options._shouldResolveHref || pathNoQueryHash(url) === pathNoQueryHash(as); // for static pages with query params in the URL we delay\n // marking the router ready until after the query is updated\n\n if (options._h) {\n this.isReady = true;\n }\n\n prevLocale = this.locale;\n\n if (true) {\n _context.next = 18;\n break;\n }\n\n this.locale = options.locale === false ? this.defaultLocale : options.locale || this.locale;\n\n if (typeof options.locale === 'undefined') {\n options.locale = this.locale;\n }\n\n parsedAs = (0, _parseRelativeUrl).parseRelativeUrl(hasBasePath(as) ? delBasePath(as) : as);\n localePathResult = (0, _normalizeLocalePath).normalizeLocalePath(parsedAs.pathname, this.locales);\n\n if (localePathResult.detectedLocale) {\n this.locale = localePathResult.detectedLocale;\n parsedAs.pathname = addBasePath(parsedAs.pathname);\n as = (0, _utils).formatWithValidation(parsedAs);\n url = addBasePath((0, _normalizeLocalePath).normalizeLocalePath(hasBasePath(url) ? delBasePath(url) : url, this.locales).pathname);\n }\n\n didNavigate = false; // we need to wrap this in the env check again since regenerator runtime\n // moves this on its own due to the return\n\n if (false) {}\n\n detectedDomain = detectDomainLocale(this.domainLocales, undefined, this.locale); // we need to wrap this in the env check again since regenerator runtime\n // moves this on its own due to the return\n\n if (false) {}\n\n if (!didNavigate) {\n _context.next = 18;\n break;\n }\n\n return _context.abrupt(\"return\", new Promise(function () {}));\n\n case 18:\n if (!options._h) {\n this.isSsr = false;\n } // marking route changes as a navigation start entry\n\n\n if (_utils.ST) {\n performance.mark('routeChange');\n }\n\n _options$shallow = options.shallow, shallow = _options$shallow === void 0 ? false : _options$shallow;\n routeProps = {\n shallow: shallow\n };\n\n if (this._inFlightRoute) {\n this.abortComponentLoad(this._inFlightRoute, routeProps);\n }\n\n as = addBasePath(addLocale(hasBasePath(as) ? delBasePath(as) : as, options.locale, this.defaultLocale));\n cleanedAs = delLocale(hasBasePath(as) ? delBasePath(as) : as, this.locale);\n this._inFlightRoute = as;\n localeChange = prevLocale !== this.locale; // If the url change is only related to a hash change\n // We should not proceed. We should only change the state.\n // WARNING: `_h` is an internal option for handing Next.js client-side\n // hydration. Your app should _never_ use this property. It may change at\n // any time without notice.\n\n if (!(!options._h && this.onlyAHashChange(cleanedAs) && !localeChange)) {\n _context.next = 35;\n break;\n }\n\n this.asPath = cleanedAs;\n Router.events.emit('hashChangeStart', as, routeProps); // TODO: do we need the resolved href when only a hash change?\n\n this.changeState(method, url, as, options);\n this.scrollToHash(cleanedAs);\n this.notify(this.components[this.route], null);\n Router.events.emit('hashChangeComplete', as, routeProps);\n return _context.abrupt(\"return\", true);\n\n case 35:\n parsed = (0, _parseRelativeUrl).parseRelativeUrl(url);\n pathname = parsed.pathname, query = parsed.query; // The build manifest needs to be loaded before auto-static dynamic pages\n // get their query parameters to allow ensuring they can be parsed properly\n // when rewritten to\n\n _context.prev = 37;\n _context.next = 40;\n return Promise.all([this.pageLoader.getPageList(), (0, _routeLoader).getClientBuildManifest(), this.pageLoader.getMiddlewareList()]);\n\n case 40:\n _yield$Promise$all = _context.sent;\n _yield$Promise$all2 = _slicedToArray(_yield$Promise$all, 2);\n pages = _yield$Promise$all2[0];\n rewrites = _yield$Promise$all2[1].__rewrites;\n _context.next = 50;\n break;\n\n case 46:\n _context.prev = 46;\n _context.t0 = _context[\"catch\"](37);\n // If we fail to resolve the page list or client-build manifest, we must\n // do a server-side transition:\n window.location.href = as;\n return _context.abrupt(\"return\", false);\n\n case 50:\n // If asked to change the current URL we should reload the current page\n // (not location.reload() but reload getInitialProps and other Next.js stuffs)\n // We also need to set the method = replaceState always\n // as this should not go into the history (That's how browsers work)\n // We should compare the new asPath to the current asPath, not the url\n if (!this.urlIsNew(cleanedAs) && !localeChange) {\n method = 'replaceState';\n } // we need to resolve the as value using rewrites for dynamic SSG\n // pages to allow building the data URL correctly\n\n\n resolvedAs = as; // url and as should always be prefixed with basePath by this\n // point by either next/link or router.push/replace so strip the\n // basePath from the pathname to match the pages dir 1-to-1\n\n pathname = pathname ? (0, _normalizeTrailingSlash).removePathTrailingSlash(delBasePath(pathname)) : pathname;\n\n if (shouldResolveHref && pathname !== '/_error') {\n options._shouldResolveHref = true;\n\n if (false) {} else {\n parsed.pathname = resolveDynamicRoute(pathname, pages);\n\n if (parsed.pathname !== pathname) {\n pathname = parsed.pathname;\n parsed.pathname = addBasePath(pathname);\n url = (0, _utils).formatWithValidation(parsed);\n }\n }\n }\n\n if (isLocalURL(as)) {\n _context.next = 59;\n break;\n }\n\n if (false) {}\n\n throw new Error(\"Invalid href: \\\"\".concat(url, \"\\\" and as: \\\"\").concat(as, \"\\\", received relative href and external as\") + \"\\nSee more info: https://nextjs.org/docs/messages/invalid-relative-url-external-as\");\n\n case 57:\n window.location.href = as;\n return _context.abrupt(\"return\", false);\n\n case 59:\n resolvedAs = delLocale(delBasePath(resolvedAs), this.locale);\n _context.next = 62;\n return this._preflightRequest({\n as: as,\n cache: false,\n pages: pages,\n pathname: pathname,\n query: query\n });\n\n case 62:\n effect = _context.sent;\n\n if (!(effect.type === 'rewrite')) {\n _context.next = 71;\n break;\n }\n\n query = _objectSpread(_objectSpread({}, query), effect.parsedAs.query);\n resolvedAs = effect.asPath;\n pathname = effect.resolvedHref;\n parsed.pathname = effect.resolvedHref;\n url = (0, _utils).formatWithValidation(parsed);\n _context.next = 83;\n break;\n\n case 71:\n if (!(effect.type === 'redirect' && effect.newAs)) {\n _context.next = 75;\n break;\n }\n\n return _context.abrupt(\"return\", this.change(method, effect.newUrl, effect.newAs, options));\n\n case 75:\n if (!(effect.type === 'redirect' && effect.destination)) {\n _context.next = 80;\n break;\n }\n\n window.location.href = effect.destination;\n return _context.abrupt(\"return\", new Promise(function () {}));\n\n case 80:\n if (!(effect.type === 'refresh')) {\n _context.next = 83;\n break;\n }\n\n window.location.href = as;\n return _context.abrupt(\"return\", new Promise(function () {}));\n\n case 83:\n route = (0, _normalizeTrailingSlash).removePathTrailingSlash(pathname);\n\n if (!(0, _isDynamic).isDynamicRoute(route)) {\n _context.next = 99;\n break;\n }\n\n _parsedAs = (0, _parseRelativeUrl).parseRelativeUrl(resolvedAs);\n asPathname = _parsedAs.pathname;\n routeRegex = (0, _routeRegex).getRouteRegex(route);\n routeMatch = (0, _routeMatcher).getRouteMatcher(routeRegex)(asPathname);\n shouldInterpolate = route === asPathname;\n interpolatedAs = shouldInterpolate ? interpolateAs(route, asPathname, query) : {};\n\n if (!(!routeMatch || shouldInterpolate && !interpolatedAs.result)) {\n _context.next = 98;\n break;\n }\n\n missingParams = Object.keys(routeRegex.groups).filter(function (param) {\n return !query[param];\n });\n\n if (!(missingParams.length > 0)) {\n _context.next = 96;\n break;\n }\n\n if (true) {\n console.warn(\"\".concat(shouldInterpolate ? \"Interpolating href\" : \"Mismatching `as` and `href`\", \" failed to manually provide \") + \"the params: \".concat(missingParams.join(', '), \" in the `href`'s `query`\"));\n }\n\n throw new Error((shouldInterpolate ? \"The provided `href` (\".concat(url, \") value is missing query values (\").concat(missingParams.join(', '), \") to be interpolated properly. \") : \"The provided `as` value (\".concat(asPathname, \") is incompatible with the `href` value (\").concat(route, \"). \")) + \"Read more: https://nextjs.org/docs/messages/\".concat(shouldInterpolate ? 'href-interpolation-failed' : 'incompatible-href-as'));\n\n case 96:\n _context.next = 99;\n break;\n\n case 98:\n if (shouldInterpolate) {\n as = (0, _utils).formatWithValidation(Object.assign({}, _parsedAs, {\n pathname: interpolatedAs.result,\n query: omitParmsFromQuery(query, interpolatedAs.params)\n }));\n } else {\n // Merge params into `query`, overwriting any specified in search\n Object.assign(query, routeMatch);\n }\n\n case 99:\n Router.events.emit('routeChangeStart', as, routeProps);\n _context.prev = 100;\n _context.next = 103;\n return this.getRouteInfo(route, pathname, query, as, resolvedAs, routeProps);\n\n case 103:\n routeInfo = _context.sent;\n _routeInfo = routeInfo, error = _routeInfo.error, props = _routeInfo.props, __N_SSG = _routeInfo.__N_SSG, __N_SSP = _routeInfo.__N_SSP; // handle redirect on client-transition\n\n if (!((__N_SSG || __N_SSP) && props)) {\n _context.next = 129;\n break;\n }\n\n if (!(props.pageProps && props.pageProps.__N_REDIRECT)) {\n _context.next = 115;\n break;\n }\n\n destination = props.pageProps.__N_REDIRECT; // check if destination is internal (resolves to a page) and attempt\n // client-navigation if it is falling back to hard navigation if\n // it's not\n\n if (!(destination.startsWith('/') && props.pageProps.__N_REDIRECT_BASE_PATH !== false)) {\n _context.next = 113;\n break;\n }\n\n parsedHref = (0, _parseRelativeUrl).parseRelativeUrl(destination);\n parsedHref.pathname = resolveDynamicRoute(parsedHref.pathname, pages);\n _prepareUrlAs3 = prepareUrlAs(this, destination, destination), newUrl = _prepareUrlAs3.url, newAs = _prepareUrlAs3.as;\n return _context.abrupt(\"return\", this.change(method, newUrl, newAs, options));\n\n case 113:\n window.location.href = destination;\n return _context.abrupt(\"return\", new Promise(function () {}));\n\n case 115:\n this.isPreview = !!props.__N_PREVIEW; // handle SSG data 404\n\n if (!(props.notFound === SSG_DATA_NOT_FOUND)) {\n _context.next = 129;\n break;\n }\n\n _context.prev = 117;\n _context.next = 120;\n return this.fetchComponent('/404');\n\n case 120:\n notFoundRoute = '/404';\n _context.next = 126;\n break;\n\n case 123:\n _context.prev = 123;\n _context.t1 = _context[\"catch\"](117);\n notFoundRoute = '/_error';\n\n case 126:\n _context.next = 128;\n return this.getRouteInfo(notFoundRoute, notFoundRoute, query, as, resolvedAs, {\n shallow: false\n });\n\n case 128:\n routeInfo = _context.sent;\n\n case 129:\n Router.events.emit('beforeHistoryChange', as, routeProps);\n this.changeState(method, url, as, options);\n\n if (options._h && pathname === '/_error' && ((ref = self.__NEXT_DATA__.props) === null || ref === void 0 ? void 0 : (ref1 = ref.pageProps) === null || ref1 === void 0 ? void 0 : ref1.statusCode) === 500 && (props === null || props === void 0 ? void 0 : props.pageProps)) {\n // ensure statusCode is still correct for static 500 page\n // when updating query information\n props.pageProps.statusCode = 500;\n } // shallow routing is only allowed for same page URL changes.\n\n\n isValidShallowRoute = options.shallow && this.route === route;\n shouldScroll = (_scroll = options.scroll) !== null && _scroll !== void 0 ? _scroll : !isValidShallowRoute;\n resetScroll = shouldScroll ? {\n x: 0,\n y: 0\n } : null;\n _context.next = 137;\n return this.set(route, pathname, query, cleanedAs, routeInfo, forcedScroll !== null && forcedScroll !== void 0 ? forcedScroll : resetScroll)[\"catch\"](function (e) {\n if (e.cancelled) error = error || e;else throw e;\n });\n\n case 137:\n if (!error) {\n _context.next = 140;\n break;\n }\n\n Router.events.emit('routeChangeError', error, cleanedAs, routeProps);\n throw error;\n\n case 140:\n if (false) {}\n\n Router.events.emit('routeChangeComplete', as, routeProps);\n return _context.abrupt(\"return\", true);\n\n case 145:\n _context.prev = 145;\n _context.t2 = _context[\"catch\"](100);\n\n if (!((0, _isError)[\"default\"](_context.t2) && _context.t2.cancelled)) {\n _context.next = 149;\n break;\n }\n\n return _context.abrupt(\"return\", false);\n\n case 149:\n throw _context.t2;\n\n case 150:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this, [[37, 46], [100, 145], [117, 123]]);\n }));\n\n function change(_x, _x2, _x3, _x4, _x5) {\n return _change.apply(this, arguments);\n }\n\n return change;\n }()\n }, {\n key: \"changeState\",\n value: function changeState(method, url, as) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n if (true) {\n if (typeof window.history === 'undefined') {\n console.error(\"Warning: window.history is not available.\");\n return;\n }\n\n if (typeof window.history[method] === 'undefined') {\n console.error(\"Warning: window.history.\".concat(method, \" is not available\"));\n return;\n }\n }\n\n if (method !== 'pushState' || (0, _utils).getURL() !== as) {\n this._shallow = options.shallow;\n window.history[method]({\n url: url,\n as: as,\n options: options,\n __N: true,\n idx: this._idx = method !== 'pushState' ? this._idx : this._idx + 1\n }, // Most browsers currently ignores this parameter, although they may use it in the future.\n // Passing the empty string here should be safe against future changes to the method.\n // https://developer.mozilla.org/en-US/docs/Web/API/History/replaceState\n '', as);\n }\n }\n }, {\n key: \"handleRouteInfoError\",\n value: function () {\n var _handleRouteInfoError = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(err, pathname, query, as, routeProps, loadErrorFail) {\n var Component, styleSheets, props, _yield$this$fetchComp, routeInfo;\n\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (!err.cancelled) {\n _context2.next = 2;\n break;\n }\n\n throw err;\n\n case 2:\n if (!((0, _routeLoader).isAssetError(err) || loadErrorFail)) {\n _context2.next = 6;\n break;\n }\n\n Router.events.emit('routeChangeError', err, as, routeProps); // If we can't load the page it could be one of following reasons\n // 1. Page doesn't exists\n // 2. Page does exist in a different zone\n // 3. Internal error while loading the page\n // So, doing a hard reload is the proper way to deal with this.\n\n window.location.href = as; // Changing the URL doesn't block executing the current code path.\n // So let's throw a cancellation error stop the routing logic.\n\n throw buildCancellationError();\n\n case 6:\n _context2.prev = 6;\n\n if (!(typeof Component === 'undefined' || typeof styleSheets === 'undefined')) {\n _context2.next = 13;\n break;\n }\n\n _context2.next = 10;\n return this.fetchComponent('/_error');\n\n case 10:\n _yield$this$fetchComp = _context2.sent;\n Component = _yield$this$fetchComp.page;\n styleSheets = _yield$this$fetchComp.styleSheets;\n\n case 13:\n routeInfo = {\n props: props,\n Component: Component,\n styleSheets: styleSheets,\n err: err,\n error: err\n };\n\n if (routeInfo.props) {\n _context2.next = 25;\n break;\n }\n\n _context2.prev = 15;\n _context2.next = 18;\n return this.getInitialProps(Component, {\n err: err,\n pathname: pathname,\n query: query\n });\n\n case 18:\n routeInfo.props = _context2.sent;\n _context2.next = 25;\n break;\n\n case 21:\n _context2.prev = 21;\n _context2.t0 = _context2[\"catch\"](15);\n console.error('Error in error page `getInitialProps`: ', _context2.t0);\n routeInfo.props = {};\n\n case 25:\n return _context2.abrupt(\"return\", routeInfo);\n\n case 28:\n _context2.prev = 28;\n _context2.t1 = _context2[\"catch\"](6);\n return _context2.abrupt(\"return\", this.handleRouteInfoError((0, _isError)[\"default\"](_context2.t1) ? _context2.t1 : new Error(_context2.t1 + ''), pathname, query, as, routeProps, true));\n\n case 31:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this, [[6, 28], [15, 21]]);\n }));\n\n function handleRouteInfoError(_x6, _x7, _x8, _x9, _x10, _x11) {\n return _handleRouteInfoError.apply(this, arguments);\n }\n\n return handleRouteInfoError;\n }()\n }, {\n key: \"getRouteInfo\",\n value: function () {\n var _getRouteInfo = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(route, pathname, query, as, resolvedAs, routeProps) {\n var _this2 = this;\n\n var existingRouteInfo, cachedRouteInfo, routeInfo, Component, __N_SSG, __N_SSP, __N_RSC, _require, isValidElementType, dataHref, props, _yield$this$_getData, fresh, data;\n\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _context3.prev = 0;\n existingRouteInfo = this.components[route];\n\n if (!(routeProps.shallow && existingRouteInfo && this.route === route)) {\n _context3.next = 4;\n break;\n }\n\n return _context3.abrupt(\"return\", existingRouteInfo);\n\n case 4:\n cachedRouteInfo = undefined; // can only use non-initial route info\n // cannot reuse route info in development since it can change after HMR\n\n if (false) {}\n\n _context3.t0 = cachedRouteInfo;\n\n if (_context3.t0) {\n _context3.next = 11;\n break;\n }\n\n _context3.next = 10;\n return this.fetchComponent(route).then(function (res) {\n return {\n Component: res.page,\n styleSheets: res.styleSheets,\n __N_SSG: res.mod.__N_SSG,\n __N_SSP: res.mod.__N_SSP,\n __N_RSC: !!res.page.__next_rsc__\n };\n });\n\n case 10:\n _context3.t0 = _context3.sent;\n\n case 11:\n routeInfo = _context3.t0;\n Component = routeInfo.Component, __N_SSG = routeInfo.__N_SSG, __N_SSP = routeInfo.__N_SSP, __N_RSC = routeInfo.__N_RSC;\n\n if (false) {}\n\n _require = __webpack_require__(/*! react-is */ \"./node_modules/react-is/index.js\"), isValidElementType = _require.isValidElementType;\n\n if (isValidElementType(Component)) {\n _context3.next = 17;\n break;\n }\n\n throw new Error(\"The default export is not a React Component in page: \\\"\".concat(pathname, \"\\\"\"));\n\n case 17:\n if (__N_SSG || __N_SSP || __N_RSC) {\n dataHref = this.pageLoader.getDataHref({\n href: (0, _utils).formatWithValidation({\n pathname: pathname,\n query: query\n }),\n asPath: resolvedAs,\n ssg: __N_SSG,\n rsc: __N_RSC,\n locale: this.locale\n });\n }\n\n _context3.next = 20;\n return this._getData(function () {\n return __N_SSG || __N_SSP ? fetchNextData(dataHref, _this2.isSsr, false, __N_SSG ? _this2.sdc : _this2.sdr, !!__N_SSG && !_this2.isPreview) : _this2.getInitialProps(Component, // we provide AppTree later so this needs to be `any`\n {\n pathname: pathname,\n query: query,\n asPath: as,\n locale: _this2.locale,\n locales: _this2.locales,\n defaultLocale: _this2.defaultLocale\n });\n });\n\n case 20:\n props = _context3.sent;\n\n if (!__N_RSC) {\n _context3.next = 28;\n break;\n }\n\n _context3.next = 24;\n return this._getData(function () {\n return _this2._getFlightData(dataHref);\n });\n\n case 24:\n _yield$this$_getData = _context3.sent;\n fresh = _yield$this$_getData.fresh;\n data = _yield$this$_getData.data;\n props.pageProps = Object.assign(props.pageProps, {\n __flight_serialized__: data,\n __flight_fresh__: fresh\n });\n\n case 28:\n routeInfo.props = props;\n this.components[route] = routeInfo;\n return _context3.abrupt(\"return\", routeInfo);\n\n case 33:\n _context3.prev = 33;\n _context3.t1 = _context3[\"catch\"](0);\n return _context3.abrupt(\"return\", this.handleRouteInfoError((0, _isError)[\"default\"](_context3.t1) ? _context3.t1 : new Error(_context3.t1 + ''), pathname, query, as, routeProps));\n\n case 36:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, this, [[0, 33]]);\n }));\n\n function getRouteInfo(_x12, _x13, _x14, _x15, _x16, _x17) {\n return _getRouteInfo.apply(this, arguments);\n }\n\n return getRouteInfo;\n }()\n }, {\n key: \"set\",\n value: function set(route, pathname, query, as, data, resetScroll) {\n this.isFallback = false;\n this.route = route;\n this.pathname = pathname;\n this.query = query;\n this.asPath = as;\n return this.notify(data, resetScroll);\n }\n /**\n * Callback to execute before replacing router state\n * @param cb callback to be executed\n */\n\n }, {\n key: \"beforePopState\",\n value: function beforePopState(cb) {\n this._bps = cb;\n }\n }, {\n key: \"onlyAHashChange\",\n value: function onlyAHashChange(as) {\n if (!this.asPath) return false;\n\n var _this$asPath$split = this.asPath.split('#'),\n _this$asPath$split2 = _slicedToArray(_this$asPath$split, 2),\n oldUrlNoHash = _this$asPath$split2[0],\n oldHash = _this$asPath$split2[1];\n\n var _as$split = as.split('#'),\n _as$split2 = _slicedToArray(_as$split, 2),\n newUrlNoHash = _as$split2[0],\n newHash = _as$split2[1]; // Makes sure we scroll to the provided hash if the url/hash are the same\n\n\n if (newHash && oldUrlNoHash === newUrlNoHash && oldHash === newHash) {\n return true;\n } // If the urls are change, there's more than a hash change\n\n\n if (oldUrlNoHash !== newUrlNoHash) {\n return false;\n } // If the hash has changed, then it's a hash only change.\n // This check is necessary to handle both the enter and\n // leave hash === '' cases. The identity case falls through\n // and is treated as a next reload.\n\n\n return oldHash !== newHash;\n }\n }, {\n key: \"scrollToHash\",\n value: function scrollToHash(as) {\n var _as$split3 = as.split('#'),\n _as$split4 = _slicedToArray(_as$split3, 2),\n hash = _as$split4[1]; // Scroll to top if the hash is just `#` with no value or `#top`\n // To mirror browsers\n\n\n if (hash === '' || hash === 'top') {\n window.scrollTo(0, 0);\n return;\n } // First we check if the element by id is found\n\n\n var idEl = document.getElementById(hash);\n\n if (idEl) {\n idEl.scrollIntoView();\n return;\n } // If there's no element with the id, we check the `name` property\n // To mirror browsers\n\n\n var nameEl = document.getElementsByName(hash)[0];\n\n if (nameEl) {\n nameEl.scrollIntoView();\n }\n }\n }, {\n key: \"urlIsNew\",\n value: function urlIsNew(asPath) {\n return this.asPath !== asPath;\n }\n /**\n * Prefetch page code, you may wait for the data during page rendering.\n * This feature only works in production!\n * @param url the href of prefetched page\n * @param asPath the as path of the prefetched page\n */\n\n }, {\n key: \"prefetch\",\n value: function () {\n var _prefetch = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(url) {\n var _this3 = this;\n\n var asPath,\n options,\n parsed,\n pathname,\n query,\n parsedAs,\n localePathResult,\n pages,\n resolvedAs,\n rewrites,\n _yield$getClientBuild,\n rewritesResult,\n effects,\n route,\n _args4 = arguments;\n\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n asPath = _args4.length > 1 && _args4[1] !== undefined ? _args4[1] : url;\n options = _args4.length > 2 && _args4[2] !== undefined ? _args4[2] : {};\n parsed = (0, _parseRelativeUrl).parseRelativeUrl(url);\n pathname = parsed.pathname, query = parsed.query;\n\n if (false) {}\n\n _context4.next = 7;\n return this.pageLoader.getPageList();\n\n case 7:\n pages = _context4.sent;\n resolvedAs = asPath;\n\n if (true) {\n _context4.next = 19;\n break;\n }\n\n _context4.next = 12;\n return (0, _routeLoader).getClientBuildManifest();\n\n case 12:\n _yield$getClientBuild = _context4.sent;\n rewrites = _yield$getClientBuild.__rewrites;\n rewritesResult = (0, _resolveRewrites)[\"default\"](addBasePath(addLocale(asPath, this.locale)), pages, rewrites, parsed.query, function (p) {\n return resolveDynamicRoute(p, pages);\n }, this.locales);\n resolvedAs = delLocale(delBasePath(rewritesResult.asPath), this.locale);\n\n if (rewritesResult.matchedPage && rewritesResult.resolvedHref) {\n // if this directly matches a page we need to update the href to\n // allow the correct page chunk to be loaded\n pathname = rewritesResult.resolvedHref;\n parsed.pathname = pathname;\n url = (0, _utils).formatWithValidation(parsed);\n }\n\n _context4.next = 21;\n break;\n\n case 19:\n parsed.pathname = resolveDynamicRoute(parsed.pathname, pages);\n\n if (parsed.pathname !== pathname) {\n pathname = parsed.pathname;\n parsed.pathname = pathname;\n url = (0, _utils).formatWithValidation(parsed);\n }\n\n case 21:\n if (false) {}\n\n return _context4.abrupt(\"return\");\n\n case 23:\n _context4.next = 25;\n return this._preflightRequest({\n as: addBasePath(asPath),\n cache: true,\n pages: pages,\n pathname: pathname,\n query: query\n });\n\n case 25:\n effects = _context4.sent;\n\n if (effects.type === 'rewrite') {\n parsed.pathname = effects.resolvedHref;\n pathname = effects.resolvedHref;\n query = _objectSpread(_objectSpread({}, query), effects.parsedAs.query);\n resolvedAs = effects.asPath;\n url = (0, _utils).formatWithValidation(parsed);\n }\n\n route = (0, _normalizeTrailingSlash).removePathTrailingSlash(pathname);\n _context4.next = 30;\n return Promise.all([this.pageLoader._isSsg(route).then(function (isSsg) {\n return isSsg ? fetchNextData(_this3.pageLoader.getDataHref({\n href: url,\n asPath: resolvedAs,\n ssg: true,\n locale: typeof options.locale !== 'undefined' ? options.locale : _this3.locale\n }), false, false, _this3.sdc, true) : false;\n }), this.pageLoader[options.priority ? 'loadPage' : 'prefetch'](route)]);\n\n case 30:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n\n function prefetch(_x18) {\n return _prefetch.apply(this, arguments);\n }\n\n return prefetch;\n }()\n }, {\n key: \"fetchComponent\",\n value: function () {\n var _fetchComponent = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(route) {\n var _this4 = this;\n\n var cancelled, cancel, handleCancelled, componentResult;\n return _regeneratorRuntime.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n cancelled = false;\n\n cancel = this.clc = function () {\n cancelled = true;\n };\n\n handleCancelled = function handleCancelled() {\n if (cancelled) {\n var error = new Error(\"Abort fetching component for route: \\\"\".concat(route, \"\\\"\"));\n error.cancelled = true;\n throw error;\n }\n\n if (cancel === _this4.clc) {\n _this4.clc = null;\n }\n };\n\n _context5.prev = 3;\n _context5.next = 6;\n return this.pageLoader.loadPage(route);\n\n case 6:\n componentResult = _context5.sent;\n handleCancelled();\n return _context5.abrupt(\"return\", componentResult);\n\n case 11:\n _context5.prev = 11;\n _context5.t0 = _context5[\"catch\"](3);\n handleCancelled();\n throw _context5.t0;\n\n case 15:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5, this, [[3, 11]]);\n }));\n\n function fetchComponent(_x19) {\n return _fetchComponent.apply(this, arguments);\n }\n\n return fetchComponent;\n }()\n }, {\n key: \"_getData\",\n value: function _getData(fn) {\n var _this5 = this;\n\n var cancelled = false;\n\n var cancel = function cancel() {\n cancelled = true;\n };\n\n this.clc = cancel;\n return fn().then(function (data) {\n if (cancel === _this5.clc) {\n _this5.clc = null;\n }\n\n if (cancelled) {\n var err = new Error('Loading initial props cancelled');\n err.cancelled = true;\n throw err;\n }\n\n return data;\n });\n }\n }, {\n key: \"_getFlightData\",\n value: function _getFlightData(dataHref) {\n var _this6 = this;\n\n var _URL2 = new URL(dataHref, window.location.href),\n cacheKey = _URL2.href;\n\n if (!this.isPreview && this.sdc[cacheKey]) {\n return Promise.resolve({\n fresh: false,\n data: this.sdc[cacheKey]\n });\n }\n\n return fetchNextData(dataHref, true, true, this.sdc, false).then(function (serialized) {\n _this6.sdc[cacheKey] = serialized;\n return {\n fresh: true,\n data: serialized\n };\n });\n }\n }, {\n key: \"_preflightRequest\",\n value: function () {\n var _preflightRequest2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6(options) {\n var ref, cleanedAs, fns, requiresPreflight, preflight, parsed, fsPathname, matchedPage, resolvedHref, cleanRedirect, _prepareUrlAs4, newUrl, newAs;\n\n return _regeneratorRuntime.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n cleanedAs = delLocale(hasBasePath(options.as) ? delBasePath(options.as) : options.as, this.locale);\n _context6.next = 3;\n return this.pageLoader.getMiddlewareList();\n\n case 3:\n fns = _context6.sent;\n requiresPreflight = fns.some(function (_ref2) {\n var _ref3 = _slicedToArray(_ref2, 2),\n middleware = _ref3[0],\n isSSR = _ref3[1];\n\n return (0, _routeMatcher).getRouteMatcher((0, _getMiddlewareRegex).getMiddlewareRegex(middleware, !isSSR))(cleanedAs);\n });\n\n if (requiresPreflight) {\n _context6.next = 7;\n break;\n }\n\n return _context6.abrupt(\"return\", {\n type: 'next'\n });\n\n case 7:\n _context6.next = 9;\n return this._getPreflightData({\n preflightHref: options.as,\n shouldCache: options.cache\n });\n\n case 9:\n preflight = _context6.sent;\n\n if (!((ref = preflight.rewrite) === null || ref === void 0 ? void 0 : ref.startsWith('/'))) {\n _context6.next = 15;\n break;\n }\n\n parsed = (0, _parseRelativeUrl).parseRelativeUrl((0, _normalizeLocalePath).normalizeLocalePath(hasBasePath(preflight.rewrite) ? delBasePath(preflight.rewrite) : preflight.rewrite, this.locales).pathname);\n fsPathname = (0, _normalizeTrailingSlash).removePathTrailingSlash(parsed.pathname);\n\n if (options.pages.includes(fsPathname)) {\n matchedPage = true;\n resolvedHref = fsPathname;\n } else {\n resolvedHref = resolveDynamicRoute(fsPathname, options.pages);\n\n if (resolvedHref !== parsed.pathname && options.pages.includes(resolvedHref)) {\n matchedPage = true;\n }\n }\n\n return _context6.abrupt(\"return\", {\n type: 'rewrite',\n asPath: parsed.pathname,\n parsedAs: parsed,\n matchedPage: matchedPage,\n resolvedHref: resolvedHref\n });\n\n case 15:\n if (!preflight.redirect) {\n _context6.next = 21;\n break;\n }\n\n if (!preflight.redirect.startsWith('/')) {\n _context6.next = 20;\n break;\n }\n\n cleanRedirect = (0, _normalizeTrailingSlash).removePathTrailingSlash((0, _normalizeLocalePath).normalizeLocalePath(hasBasePath(preflight.redirect) ? delBasePath(preflight.redirect) : preflight.redirect, this.locales).pathname);\n _prepareUrlAs4 = prepareUrlAs(this, cleanRedirect, cleanRedirect), newUrl = _prepareUrlAs4.url, newAs = _prepareUrlAs4.as;\n return _context6.abrupt(\"return\", {\n type: 'redirect',\n newUrl: newUrl,\n newAs: newAs\n });\n\n case 20:\n return _context6.abrupt(\"return\", {\n type: 'redirect',\n destination: preflight.redirect\n });\n\n case 21:\n if (!(preflight.refresh && !preflight.ssr)) {\n _context6.next = 23;\n break;\n }\n\n return _context6.abrupt(\"return\", {\n type: 'refresh'\n });\n\n case 23:\n return _context6.abrupt(\"return\", {\n type: 'next'\n });\n\n case 24:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6, this);\n }));\n\n function _preflightRequest(_x20) {\n return _preflightRequest2.apply(this, arguments);\n }\n\n return _preflightRequest;\n }()\n }, {\n key: \"_getPreflightData\",\n value: function _getPreflightData(params) {\n var _this7 = this;\n\n var preflightHref = params.preflightHref,\n _params$shouldCache = params.shouldCache,\n shouldCache = _params$shouldCache === void 0 ? false : _params$shouldCache;\n\n var _URL3 = new URL(preflightHref, window.location.href),\n cacheKey = _URL3.href;\n\n if (false) {}\n\n return fetch(preflightHref, {\n method: 'HEAD',\n credentials: 'same-origin',\n headers: {\n 'x-middleware-preflight': '1'\n }\n }).then(function (res) {\n if (!res.ok) {\n throw new Error(\"Failed to preflight request\");\n }\n\n return {\n redirect: res.headers.get('Location'),\n refresh: res.headers.has('x-middleware-refresh'),\n rewrite: res.headers.get('x-middleware-rewrite'),\n ssr: !!res.headers.get('x-middleware-ssr')\n };\n }).then(function (data) {\n if (shouldCache) {\n _this7.sde[cacheKey] = data;\n }\n\n return data;\n })[\"catch\"](function (err) {\n delete _this7.sde[cacheKey];\n throw err;\n });\n }\n }, {\n key: \"getInitialProps\",\n value: function getInitialProps(Component, ctx) {\n var App = this.components['/_app'].Component;\n\n var AppTree = this._wrapApp(App);\n\n ctx.AppTree = AppTree;\n return (0, _utils).loadGetInitialProps(App, {\n AppTree: AppTree,\n Component: Component,\n router: this,\n ctx: ctx\n });\n }\n }, {\n key: \"abortComponentLoad\",\n value: function abortComponentLoad(as, routeProps) {\n if (this.clc) {\n Router.events.emit('routeChangeError', buildCancellationError(), as, routeProps);\n this.clc();\n this.clc = null;\n }\n }\n }, {\n key: \"notify\",\n value: function notify(data, resetScroll) {\n return this.sub(data, this.components['/_app'].Component, resetScroll);\n }\n }]);\n\n return Router;\n}();\n\nRouter.events = (0, _mitt)[\"default\"]();\nexports[\"default\"] = Router;\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3JvdXRlci5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCx1QkFBQSxHQUEwQkUsZUFBMUI7QUFDQUYsaUJBQUEsR0FBb0JHLFNBQXBCO0FBQ0FILGlCQUFBLEdBQW9CSSxTQUFwQjtBQUNBSixtQkFBQSxHQUFzQkssV0FBdEI7QUFDQUwsbUJBQUEsR0FBc0JNLFdBQXRCO0FBQ0FOLG1CQUFBLEdBQXNCTyxXQUF0QjtBQUNBUCxrQkFBQSxHQUFxQlEsVUFBckI7QUFDQVIscUJBQUEsR0FBd0JTLGFBQXhCO0FBQ0FULG1CQUFBLEdBQXNCVSxXQUF0QjtBQUNBVixrQkFBQSxHQUFrQixLQUFLLENBQXZCOztBQUNBLElBQUlXLHVCQUF1QixHQUFHQyxtQkFBTyxDQUFDLDZHQUFELENBQXJDOztBQUNBLElBQUlDLFlBQVksR0FBR0QsbUJBQU8sQ0FBQyxxRkFBRCxDQUExQjs7QUFDQSxJQUFJRSxRQUFRLEdBQUdDLHNCQUFzQixDQUFDSCxtQkFBTyxDQUFDLHVFQUFELENBQVIsQ0FBckM7O0FBQ0EsSUFBSUksb0JBQW9CLEdBQUdKLG1CQUFPLENBQUMsdUdBQUQsQ0FBbEM7O0FBQ0EsSUFBSUssb0JBQW9CLEdBQUdMLG1CQUFPLENBQUMsd0dBQUQsQ0FBbEM7O0FBQ0EsSUFBSU0sS0FBSyxHQUFHSCxzQkFBc0IsQ0FBQ0gsbUJBQU8sQ0FBQyw0REFBRCxDQUFSLENBQWxDOztBQUNBLElBQUlPLE1BQU0sR0FBR1AsbUJBQU8sQ0FBQyw4REFBRCxDQUFwQjs7QUFDQSxJQUFJUSxVQUFVLEdBQUdSLG1CQUFPLENBQUMsMEZBQUQsQ0FBeEI7O0FBQ0EsSUFBSVMsaUJBQWlCLEdBQUdULG1CQUFPLENBQUMsMEdBQUQsQ0FBL0I7O0FBQ0EsSUFBSVUsWUFBWSxHQUFHVixtQkFB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QUs1QixHQUFULEVBQWM7QUFDVm5ELFFBQUFBLE1BQU0sQ0FBQzhDLE1BQVAsQ0FBY3VDLElBQWQsQ0FBbUIsa0JBQW5CLEVBQXVDbk8sc0JBQXNCLEVBQTdELEVBQWlFOEYsRUFBakUsRUFBcUUrSCxVQUFyRTtBQUNBLGFBQUs1QixHQUFMO0FBQ0EsYUFBS0EsR0FBTCxHQUFXLElBQVg7QUFDSDtBQUNKOzs7V0FDRCxnQkFBTy9ELElBQVAsRUFBYTJJLFdBQWIsRUFBMEI7QUFDdEIsYUFBTyxLQUFLN0UsR0FBTCxDQUFTOUQsSUFBVCxFQUFlLEtBQUtpRCxVQUFMLENBQWdCLE9BQWhCLEVBQXlCaEMsU0FBeEMsRUFBbUQwSCxXQUFuRCxDQUFQO0FBQ0g7Ozs7OztBQUVML0gsTUFBTSxDQUFDOEMsTUFBUCxHQUFnQixDQUFDLEdBQUc3TSxLQUFKLGNBQWhCO0FBQ0FsQixrQkFBQSxHQUFrQmlMLE1BQWxCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvcm91dGVyLmpzPzg2ODQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmdldERvbWFpbkxvY2FsZSA9IGdldERvbWFpbkxvY2FsZTtcbmV4cG9ydHMuYWRkTG9jYWxlID0gYWRkTG9jYWxlO1xuZXhwb3J0cy5kZWxMb2NhbGUgPSBkZWxMb2NhbGU7XG5leHBvcnRzLmhhc0Jhc2VQYXRoID0gaGFzQmFzZVBhdGg7XG5leHBvcnRzLmFkZEJhc2VQYXRoID0gYWRkQmFzZVBhdGg7XG5leHBvcnRzLmRlbEJhc2VQYXRoID0gZGVsQmFzZVBhdGg7XG5leHBvcnRzLmlzTG9jYWxVUkwgPSBpc0xvY2FsVVJMO1xuZXhwb3J0cy5pbnRlcnBvbGF0ZUFzID0gaW50ZXJwb2xhdGVBcztcbmV4cG9ydHMucmVzb2x2ZUhyZWYgPSByZXNvbHZlSHJlZjtcbmV4cG9ydHMuZGVmYXVsdCA9IHZvaWQgMDtcbnZhciBfbm9ybWFsaXplVHJhaWxpbmdTbGFzaCA9IHJlcXVpcmUoXCIuLi8uLi8uLi9jbGllbnQvbm9ybWFsaXplLXRyYWlsaW5nLXNsYXNoXCIpO1xudmFyIF9yb3V0ZUxvYWRlciA9IHJlcXVpcmUoXCIuLi8uLi8uLi9jbGllbnQvcm91dGUtbG9hZGVyXCIpO1xudmFyIF9pc0Vycm9yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vLi4vLi4vbGliL2lzLWVycm9yXCIpKTtcbnZhciBfZGVub3JtYWxpemVQYWdlUGF0aCA9IHJlcXVpcmUoXCIuLi8uLi8uLi9zZXJ2ZXIvZGVub3JtYWxpemUtcGFnZS1wYXRoXCIpO1xudmFyIF9ub3JtYWxpemVMb2NhbGVQYXRoID0gcmVxdWlyZShcIi4uL2kxOG4vbm9ybWFsaXplLWxvY2FsZS1wYXRoXCIpO1xudmFyIF9taXR0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vbWl0dFwiKSk7XG52YXIgX3V0aWxzID0gcmVxdWlyZShcIi4uL3V0aWxzXCIpO1xudmFyIF9pc0R5bmFtaWMgPSByZXF1aXJlKFwiLi91dGlscy9pcy1keW5hbWljXCIpO1xudmFyIF9wYXJzZVJlbGF0aXZlVXJsID0gcmVxdWlyZShcIi4vdXRpbHMvcGFyc2UtcmVsYXRpdmUtdXJsXCIpO1xudmFyIF9xdWVyeXN0cmluZyA9IHJlcXVpcmUoXCIuL3V0aWxzL3F1ZXJ5c3RyaW5nXCIpO1xudmFyIF9yZXNvbHZlUmV3cml0ZXMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL3V0aWxzL3Jlc29sdmUtcmV3cml0ZXNcIikpO1xudmFyIF9yb3V0ZU1hdGNoZXIgPSByZXF1aXJlKFwiLi91dGlscy9yb3V0ZS1tYXRjaGVyXCIpO1xudmFyIF9yb3V0ZVJlZ2V4ID0gcmVxdWlyZShcIi4vdXRpbHMvcm91dGUtcmVnZXhcIik7XG52YXIgX2dldE1pZGRsZXdhcmVSZWdleCA9IHJlcXVpcmUoXCIuL3V0aWxzL2dldC1taWRkbGV3YXJlLXJlZ2V4XCIpO1xuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxubGV0IGRldGVjdERvbWFpbkxvY2FsZTtcbmlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgZGV0ZWN0RG9tYWluTG9jYWxlID0gcmVxdWlyZSgnLi4vaTE4bi9kZXRlY3QtZG9tYWluLWxvY2FsZScpLmRldGVjdERvbWFpbkxvY2FsZTtcbn1cbmNvbnN0IGJhc2VQYXRoID0gcHJvY2Vzcy5lbnYuX19ORVhUX1JPVVRFUl9CQVNFUEFUSCB8fCAnJztcbmZ1bmN0aW9uIGJ1aWxkQ2FuY2VsbGF0aW9uRXJyb3IoKSB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IEVycm9yKCdSb3V0ZSBDYW5jZWxsZWQnKSwge1xuICAgICAgICBjYW5jZWxsZWQ6IHRydWVcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGFkZFBhdGhQcmVmaXgocGF0aCwgcHJlZml4KSB7XG4gICAgaWYgKCFwYXRoLnN0YXJ0c1dpdGgoJy8nKSB8fCAhcHJlZml4KSB7XG4gICAgICAgIHJldHVybiBwYXRoO1xuICAgIH1cbiAgICBjb25zdCBwYXRobmFtZSA9IHBhdGhOb1F1ZXJ5SGFzaChwYXRoKTtcbiAgICByZXR1cm4gKDAsIF9ub3JtYWxpemVUcmFpbGluZ1NsYXNoKS5ub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaChgJHtwcmVmaXh9JHtwYXRobmFtZX1gKSArIHBhdGguc3Vic3RyKHBhdGhuYW1lLmxlbmd0aCk7XG59XG5mdW5jdGlvbiBnZXREb21haW5Mb2NhbGUocGF0aCwgbG9jYWxlLCBsb2NhbGVzLCBkb21haW5Mb2NhbGVzKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9JMThOX1NVUFBPUlQpIHtcbiAgICAgICAgbG9jYWxlID0gbG9jYWxlIHx8ICgwLCBfbm9ybWFsaXplTG9jYWxlUGF0aCkubm9ybWFsaXplTG9jYWxlUGF0aChwYXRoLCBsb2NhbGVzKS5kZXRlY3RlZExvY2FsZTtcbiAgICAgICAgY29uc3QgZGV0ZWN0ZWREb21haW4gPSBkZXRlY3REb21haW5Mb2NhbGUoZG9tYWluTG9jYWxlcywgdW5kZWZpbmVkLCBsb2NhbGUpO1xuICAgICAgICBpZiAoZGV0ZWN0ZWREb21haW4pIHtcbiAgICAgICAgICAgIHJldHVybiBgaHR0cCR7ZGV0ZWN0ZWREb21haW4uaHR0cCA/ICcnIDogJ3MnfTovLyR7ZGV0ZWN0ZWREb21haW4uZG9tYWlufSR7YmFzZVBhdGggfHwgJyd9JHtsb2NhbGUgPT09IGRldGVjdGVkRG9tYWluLmRlZmF1bHRMb2NhbGUgPyAnJyA6IGAvJHtsb2NhbGV9YH0ke3BhdGh9YDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGFkZExvY2FsZShwYXRoLCBsb2NhbGUsIGRlZmF1bHRMb2NhbGUpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0kxOE5fU1VQUE9SVCkge1xuICAgICAgICBjb25zdCBwYXRobmFtZSA9IHBhdGhOb1F1ZXJ5SGFzaChwYXRoKTtcbiAgICAgICAgY29uc3QgcGF0aExvd2VyID0gcGF0aG5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgY29uc3QgbG9jYWxlTG93ZXIgPSBsb2NhbGUgJiYgbG9jYWxlLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIHJldHVybiBsb2NhbGUgJiYgbG9jYWxlICE9PSBkZWZhdWx0TG9jYWxlICYmICFwYXRoTG93ZXIuc3RhcnRzV2l0aCgnLycgKyBsb2NhbGVMb3dlciArICcvJykgJiYgcGF0aExvd2VyICE9PSAnLycgKyBsb2NhbGVMb3dlciA/IGFkZFBhdGhQcmVmaXgocGF0aCwgJy8nICsgbG9jYWxlKSA6IHBhdGg7XG4gICAgfVxuICAgIHJldHVybiBwYXRoO1xufVxuZnVuY3Rpb24gZGVsTG9jYWxlKHBhdGgsIGxvY2FsZSkge1xuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgICAgIGNvbnN0IHBhdGhuYW1lID0gcGF0aE5vUXVlcnlIYXNoKHBhdGgpO1xuICAgICAgICBjb25zdCBwYXRoTG93ZXIgPSBwYXRobmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBjb25zdCBsb2NhbGVMb3dlciA9IGxvY2FsZSAmJiBsb2NhbGUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgcmV0dXJuIGxvY2FsZSAmJiAocGF0aExvd2VyLnN0YXJ0c1dpdGgoJy8nICsgbG9jYWxlTG93ZXIgKyAnLycpIHx8IHBhdGhMb3dlciA9PT0gJy8nICsgbG9jYWxlTG93ZXIpID8gKHBhdGhuYW1lLmxlbmd0aCA9PT0gbG9jYWxlLmxlbmd0aCArIDEgPyAnLycgOiAnJykgKyBwYXRoLnN1YnN0cihsb2NhbGUubGVuZ3RoICsgMSkgOiBwYXRoO1xuICAgIH1cbiAgICByZXR1cm4gcGF0aDtcbn1cbmZ1bmN0aW9uIHBhdGhOb1F1ZXJ5SGFzaChwYXRoKSB7XG4gICAgY29uc3QgcXVlcnlJbmRleCA9IHBhdGguaW5kZXhPZignPycpO1xuICAgIGNvbnN0IGhhc2hJbmRleCA9IHBhdGguaW5kZXhPZignIycpO1xuICAgIGlmIChxdWVyeUluZGV4ID4gLTEgfHwgaGFzaEluZGV4ID4gLTEpIHtcbiAgICAgICAgcGF0aCA9IHBhdGguc3Vic3RyaW5nKDAsIHF1ZXJ5SW5kZXggPiAtMSA/IHF1ZXJ5SW5kZXggOiBoYXNoSW5kZXgpO1xuICAgIH1cbiAgICByZXR1cm4gcGF0aDtcbn1cbmZ1bmN0aW9uIGhhc0Jhc2VQYXRoKHBhdGgpIHtcbiAgICBwYXRoID0gcGF0aE5vUXVlcnlIYXNoKHBhdGgpO1xuICAgIHJldHVybiBwYXRoID09PSBiYXNlUGF0aCB8fCBwYXRoLnN0YXJ0c1dpdGgoYmFzZVBhdGggKyAnLycpO1xufVxuZnVuY3Rpb24gYWRkQmFzZVBhdGgocGF0aCkge1xuICAgIC8vIHdlIG9ubHkgYWRkIHRoZSBiYXNlcGF0aCBvbiByZWxhdGl2ZSB1cmxzXG4gICAgcmV0dXJuIGFkZFBhdGhQcmVmaXgocGF0aCwgYmFzZVBhdGgpO1xufVxuZnVuY3Rpb24gZGVsQmFzZVBhdGgocGF0aCkge1xuICAgIHBhdGggPSBwYXRoLnNsaWNlKGJhc2VQYXRoLmxlbmd0aCk7XG4gICAgaWYgKCFwYXRoLnN0YXJ0c1dpdGgoJy8nKSkgcGF0aCA9IGAvJHtwYXRofWA7XG4gICAgcmV0dXJuIHBhdGg7XG59XG5mdW5jdGlvbiBpc0xvY2FsVVJMKHVybCkge1xuICAgIC8vIHByZXZlbnQgYSBoeWRyYXRpb24gbWlzbWF0Y2ggb24gaHJlZiBmb3IgdXJsIHdpdGggYW5jaG9yIHJlZnNcbiAgICBpZiAodXJsLnN0YXJ0c1dpdGgoJy8nKSB8fCB1cmwuc3RhcnRzV2l0aCgnIycpIHx8IHVybC5zdGFydHNXaXRoKCc/JykpIHJldHVybiB0cnVlO1xuICAgIHRyeSB7XG4gICAgICAgIC8vIGFic29sdXRlIHVybHMgY2FuIGJlIGxvY2FsIGlmIHRoZXkgYXJlIG9uIHRoZSBzYW1lIG9yaWdpblxuICAgICAgICBjb25zdCBsb2NhdGlvbk9yaWdpbiA9ICgwLCBfdXRpbHMpLmdldExvY2F0aW9uT3JpZ2luKCk7XG4gICAgICAgIGNvbnN0IHJlc29sdmVkID0gbmV3IFVSTCh1cmwsIGxvY2F0aW9uT3JpZ2luKTtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVkLm9yaWdpbiA9PT0gbG9jYXRpb25PcmlnaW4gJiYgaGFzQmFzZVBhdGgocmVzb2x2ZWQucGF0aG5hbWUpO1xuICAgIH0gY2F0Y2ggKF8pIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGludGVycG9sYXRlQXMocm91dGUsIGFzUGF0aG5hbWUsIHF1ZXJ5KSB7XG4gICAgbGV0IGludGVycG9sYXRlZFJvdXRlID0gJyc7XG4gICAgY29uc3QgZHluYW1pY1JlZ2V4ID0gKDAsIF9yb3V0ZVJlZ2V4KS5nZXRSb3V0ZVJlZ2V4KHJvdXRlKTtcbiAgICBjb25zdCBkeW5hbWljR3JvdXBzID0gZHluYW1pY1JlZ2V4Lmdyb3VwcztcbiAgICBjb25zdCBkeW5hbWljTWF0Y2hlcyA9IC8vIFRyeSB0byBtYXRjaCB0aGUgZHluYW1pYyByb3V0ZSBhZ2FpbnN0IHRoZSBhc1BhdGhcbiAgICAoYXNQYXRobmFtZSAhPT0gcm91dGUgPyAoMCwgX3JvdXRlTWF0Y2hlcikuZ2V0Um91dGVNYXRjaGVyKGR5bmFtaWNSZWdleCkoYXNQYXRobmFtZSkgOiAnJykgfHwgLy8gRmFsbCBiYWNrIHRvIHJlYWRpbmcgdGhlIHZhbHVlcyBmcm9tIHRoZSBocmVmXG4gICAgLy8gVE9ETzogc2hvdWxkIHRoaXMgdGFrZSBwcmlvcml0eTsgYWxzbyBuZWVkIHRvIGNoYW5nZSBpbiB0aGUgcm91dGVyLlxuICAgIHF1ZXJ5O1xuICAgIGludGVycG9sYXRlZFJvdXRlID0gcm91dGU7XG4gICAgY29uc3QgcGFyYW1zID0gT2JqZWN0LmtleXMoZHluYW1pY0dyb3Vwcyk7XG4gICAgaWYgKCFwYXJhbXMuZXZlcnkoKHBhcmFtKT0+e1xuICAgICAgICBsZXQgdmFsdWUgPSBkeW5hbWljTWF0Y2hlc1twYXJhbV0gfHwgJyc7XG4gICAgICAgIGNvbnN0IHsgcmVwZWF0ICwgb3B0aW9uYWwgIH0gPSBkeW5hbWljR3JvdXBzW3BhcmFtXTtcbiAgICAgICAgLy8gc3VwcG9ydCBzaW5nbGUtbGV2ZWwgY2F0Y2gtYWxsXG4gICAgICAgIC8vIFRPRE86IG1vcmUgcm9idXN0IGhhbmRsaW5nIGZvciB1c2VyLWVycm9yIChwYXNzaW5nIGAvYClcbiAgICAgICAgbGV0IHJlcGxhY2VkID0gYFske3JlcGVhdCA/ICcuLi4nIDogJyd9JHtwYXJhbX1dYDtcbiAgICAgICAgaWYgKG9wdGlvbmFsKSB7XG4gICAgICAgICAgICByZXBsYWNlZCA9IGAkeyF2YWx1ZSA/ICcvJyA6ICcnfVske3JlcGxhY2VkfV1gO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZXBlYXQgJiYgIUFycmF5LmlzQXJyYXkodmFsdWUpKSB2YWx1ZSA9IFtcbiAgICAgICAgICAgIHZhbHVlXG4gICAgICAgIF07XG4gICAgICAgIHJldHVybiAob3B0aW9uYWwgfHwgcGFyYW0gaW4gZHluYW1pY01hdGNoZXMpICYmIC8vIEludGVycG9sYXRlIGdyb3VwIGludG8gZGF0YSBVUkwgaWYgcHJlc2VudFxuICAgICAgICAoaW50ZXJwb2xhdGVkUm91dGUgPSBpbnRlcnBvbGF0ZWRSb3V0ZS5yZXBsYWNlKHJlcGxhY2VkLCByZXBlYXQgPyB2YWx1ZS5tYXAoLy8gdGhlc2UgdmFsdWVzIHNob3VsZCBiZSBmdWxseSBlbmNvZGVkIGluc3RlYWQgb2YganVzdFxuICAgICAgICAvLyBwYXRoIGRlbGltaXRlciBlc2NhcGVkIHNpbmNlIHRoZXkgYXJlIGJlaW5nIGluc2VydGVkXG4gICAgICAgIC8vIGludG8gdGhlIFVSTCBhbmQgd2UgZXhwZWN0IFVSTCBlbmNvZGVkIHNlZ21lbnRzXG4gICAgICAgIC8vIHdoZW4gcGFyc2luZyBkeW5hbWljIHJvdXRlIHBhcmFtc1xuICAgICAgICAoc2VnbWVudCk9PmVuY29kZVVSSUNvbXBvbmVudChzZWdtZW50KVxuICAgICAgICApLmpvaW4oJy8nKSA6IGVuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSkpIHx8ICcvJyk7XG4gICAgfSkpIHtcbiAgICAgICAgaW50ZXJwb2xhdGVkUm91dGUgPSAnJyAvLyBkaWQgbm90IHNhdGlzZnkgYWxsIHJlcXVpcmVtZW50c1xuICAgICAgICA7XG4gICAgLy8gbi5iLiBXZSBpZ25vcmUgdGhpcyBlcnJvciBiZWNhdXNlIHdlIGhhbmRsZSB3YXJuaW5nIGZvciB0aGlzIGNhc2UgaW5cbiAgICAvLyBkZXZlbG9wbWVudCBpbiB0aGUgYDxMaW5rPmAgY29tcG9uZW50IGRpcmVjdGx5LlxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBwYXJhbXMsXG4gICAgICAgIHJlc3VsdDogaW50ZXJwb2xhdGVkUm91dGVcbiAgICB9O1xufVxuZnVuY3Rpb24gb21pdFBhcm1zRnJvbVF1ZXJ5KHF1ZXJ5LCBwYXJhbXMpIHtcbiAgICBjb25zdCBmaWx0ZXJlZFF1ZXJ5ID0ge1xuICAgIH07XG4gICAgT2JqZWN0LmtleXMocXVlcnkpLmZvckVhY2goKGtleSk9PntcbiAgICAgICAgaWYgKCFwYXJhbXMuaW5jbHVkZXMoa2V5KSkge1xuICAgICAgICAgICAgZmlsdGVyZWRRdWVyeVtrZXldID0gcXVlcnlba2V5XTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBmaWx0ZXJlZFF1ZXJ5O1xufVxuZnVuY3Rpb24gcmVzb2x2ZUhyZWYocm91dGVyLCBocmVmLCByZXNvbHZlQXMpIHtcbiAgICAvLyB3ZSB1c2UgYSBkdW1teSBiYXNlIHVybCBmb3IgcmVsYXRpdmUgdXJsc1xuICAgIGxldCBiYXNlO1xuICAgIGxldCB1cmxBc1N0cmluZyA9IHR5cGVvZiBocmVmID09PSAnc3RyaW5nJyA/IGhyZWYgOiAoMCwgX3V0aWxzKS5mb3JtYXRXaXRoVmFsaWRhdGlvbihocmVmKTtcbiAgICAvLyByZXBlYXRlZCBzbGFzaGVzIGFuZCBiYWNrc2xhc2hlcyBpbiB0aGUgVVJMIGFyZSBjb25zaWRlcmVkXG4gICAgLy8gaW52YWxpZCBhbmQgd2lsbCBuZXZlciBtYXRjaCBhIE5leHQuanMgcGFnZS9maWxlXG4gICAgY29uc3QgdXJsUHJvdG9NYXRjaCA9IHVybEFzU3RyaW5nLm1hdGNoKC9eW2EtekEtWl17MSx9OlxcL1xcLy8pO1xuICAgIGNvbnN0IHVybEFzU3RyaW5nTm9Qcm90byA9IHVybFByb3RvTWF0Y2ggPyB1cmxBc1N0cmluZy5zdWJzdHIodXJsUHJvdG9NYXRjaFswXS5sZW5ndGgpIDogdXJsQXNTdHJpbmc7XG4gICAgY29uc3QgdXJsUGFydHMgPSB1cmxBc1N0cmluZ05vUHJvdG8uc3BsaXQoJz8nKTtcbiAgICBpZiAoKHVybFBhcnRzWzBdIHx8ICcnKS5tYXRjaCgvKFxcL1xcL3xcXFxcKS8pKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYEludmFsaWQgaHJlZiBwYXNzZWQgdG8gbmV4dC9yb3V0ZXI6ICR7dXJsQXNTdHJpbmd9LCByZXBlYXRlZCBmb3J3YXJkLXNsYXNoZXMgKC8vKSBvciBiYWNrc2xhc2hlcyBcXFxcIGFyZSBub3QgdmFsaWQgaW4gdGhlIGhyZWZgKTtcbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZFVybCA9ICgwLCBfdXRpbHMpLm5vcm1hbGl6ZVJlcGVhdGVkU2xhc2hlcyh1cmxBc1N0cmluZ05vUHJvdG8pO1xuICAgICAgICB1cmxBc1N0cmluZyA9ICh1cmxQcm90b01hdGNoID8gdXJsUHJvdG9NYXRjaFswXSA6ICcnKSArIG5vcm1hbGl6ZWRVcmw7XG4gICAgfVxuICAgIC8vIFJldHVybiBiZWNhdXNlIGl0IGNhbm5vdCBiZSByb3V0ZWQgYnkgdGhlIE5leHQuanMgcm91dGVyXG4gICAgaWYgKCFpc0xvY2FsVVJMKHVybEFzU3RyaW5nKSkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZUFzID8gW1xuICAgICAgICAgICAgdXJsQXNTdHJpbmdcbiAgICAgICAgXSA6IHVybEFzU3RyaW5nO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICBiYXNlID0gbmV3IFVSTCh1cmxBc1N0cmluZy5zdGFydHNXaXRoKCcjJykgPyByb3V0ZXIuYXNQYXRoIDogcm91dGVyLnBhdGhuYW1lLCAnaHR0cDovL24nKTtcbiAgICB9IGNhdGNoIChfKSB7XG4gICAgICAgIC8vIGZhbGxiYWNrIHRvIC8gZm9yIGludmFsaWQgYXNQYXRoIHZhbHVlcyBlLmcuIC8vXG4gICAgICAgIGJhc2UgPSBuZXcgVVJMKCcvJywgJ2h0dHA6Ly9uJyk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGZpbmFsVXJsID0gbmV3IFVSTCh1cmxBc1N0cmluZywgYmFzZSk7XG4gICAgICAgIGZpbmFsVXJsLnBhdGhuYW1lID0gKDAsIF9ub3JtYWxpemVUcmFpbGluZ1NsYXNoKS5ub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaChmaW5hbFVybC5wYXRobmFtZSk7XG4gICAgICAgIGxldCBpbnRlcnBvbGF0ZWRBcyA9ICcnO1xuICAgICAgICBpZiAoKDAsIF9pc0R5bmFtaWMpLmlzRHluYW1pY1JvdXRlKGZpbmFsVXJsLnBhdGhuYW1lKSAmJiBmaW5hbFVybC5zZWFyY2hQYXJhbXMgJiYgcmVzb2x2ZUFzKSB7XG4gICAgICAgICAgICBjb25zdCBxdWVyeSA9ICgwLCBfcXVlcnlzdHJpbmcpLnNlYXJjaFBhcmFtc1RvVXJsUXVlcnkoZmluYWxVcmwuc2VhcmNoUGFyYW1zKTtcbiAgICAgICAgICAgIGNvbnN0IHsgcmVzdWx0ICwgcGFyYW1zICB9ID0gaW50ZXJwb2xhdGVBcyhmaW5hbFVybC5wYXRobmFtZSwgZmluYWxVcmwucGF0aG5hbWUsIHF1ZXJ5KTtcbiAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICBpbnRlcnBvbGF0ZWRBcyA9ICgwLCBfdXRpbHMpLmZvcm1hdFdpdGhWYWxpZGF0aW9uKHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWU6IHJlc3VsdCxcbiAgICAgICAgICAgICAgICAgICAgaGFzaDogZmluYWxVcmwuaGFzaCxcbiAgICAgICAgICAgICAgICAgICAgcXVlcnk6IG9taXRQYXJtc0Zyb21RdWVyeShxdWVyeSwgcGFyYW1zKVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIGlmIHRoZSBvcmlnaW4gZGlkbid0IGNoYW5nZSwgaXQgbWVhbnMgd2UgcmVjZWl2ZWQgYSByZWxhdGl2ZSBocmVmXG4gICAgICAgIGNvbnN0IHJlc29sdmVkSHJlZiA9IGZpbmFsVXJsLm9yaWdpbiA9PT0gYmFzZS5vcmlnaW4gPyBmaW5hbFVybC5ocmVmLnNsaWNlKGZpbmFsVXJsLm9yaWdpbi5sZW5ndGgpIDogZmluYWxVcmwuaHJlZjtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVBcyA/IFtcbiAgICAgICAgICAgIHJlc29sdmVkSHJlZixcbiAgICAgICAgICAgIGludGVycG9sYXRlZEFzIHx8IHJlc29sdmVkSHJlZlxuICAgICAgICBdIDogcmVzb2x2ZWRIcmVmO1xuICAgIH0gY2F0Y2ggKF8xKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlQXMgPyBbXG4gICAgICAgICAgICB1cmxBc1N0cmluZ1xuICAgICAgICBdIDogdXJsQXNTdHJpbmc7XG4gICAgfVxufVxuZnVuY3Rpb24gc3RyaXBPcmlnaW4odXJsKSB7XG4gICAgY29uc3Qgb3JpZ2luID0gKDAsIF91dGlscykuZ2V0TG9jYXRpb25PcmlnaW4oKTtcbiAgICByZXR1cm4gdXJsLnN0YXJ0c1dpdGgob3JpZ2luKSA/IHVybC5zdWJzdHJpbmcob3JpZ2luLmxlbmd0aCkgOiB1cmw7XG59XG5mdW5jdGlvbiBwcmVwYXJlVXJsQXMocm91dGVyLCB1cmwsIGFzKSB7XG4gICAgLy8gSWYgdXJsIGFuZCBhcyBwcm92aWRlZCBhcyBhbiBvYmplY3QgcmVwcmVzZW50YXRpb24sXG4gICAgLy8gd2UnbGwgZm9ybWF0IHRoZW0gaW50byB0aGUgc3RyaW5nIHZlcnNpb24gaGVyZS5cbiAgICBsZXQgW3Jlc29sdmVkSHJlZiwgcmVzb2x2ZWRBc10gPSByZXNvbHZlSHJlZihyb3V0ZXIsIHVybCwgdHJ1ZSk7XG4gICAgY29uc3Qgb3JpZ2luID0gKDAsIF91dGlscykuZ2V0TG9jYXRpb25PcmlnaW4oKTtcbiAgICBjb25zdCBocmVmSGFkT3JpZ2luID0gcmVzb2x2ZWRIcmVmLnN0YXJ0c1dpdGgob3JpZ2luKTtcbiAgICBjb25zdCBhc0hhZE9yaWdpbiA9IHJlc29sdmVkQXMgJiYgcmVzb2x2ZWRBcy5zdGFydHNXaXRoKG9yaWdpbik7XG4gICAgcmVzb2x2ZWRIcmVmID0gc3RyaXBPcmlnaW4ocmVzb2x2ZWRIcmVmKTtcbiAgICByZXNvbHZlZEFzID0gcmVzb2x2ZWRBcyA/IHN0cmlwT3JpZ2luKHJlc29sdmVkQXMpIDogcmVzb2x2ZWRBcztcbiAgICBjb25zdCBwcmVwYXJlZFVybCA9IGhyZWZIYWRPcmlnaW4gPyByZXNvbHZlZEhyZWYgOiBhZGRCYXNlUGF0aChyZXNvbHZlZEhyZWYpO1xuICAgIGNvbnN0IHByZXBhcmVkQXMgPSBhcyA/IHN0cmlwT3JpZ2luKHJlc29sdmVIcmVmKHJvdXRlciwgYXMpKSA6IHJlc29sdmVkQXMgfHwgcmVzb2x2ZWRIcmVmO1xuICAgIHJldHVybiB7XG4gICAgICAgIHVybDogcHJlcGFyZWRVcmwsXG4gICAgICAgIGFzOiBhc0hhZE9yaWdpbiA/IHByZXBhcmVkQXMgOiBhZGRCYXNlUGF0aChwcmVwYXJlZEFzKVxuICAgIH07XG59XG5mdW5jdGlvbiByZXNvbHZlRHluYW1pY1JvdXRlKHBhdGhuYW1lLCBwYWdlcykge1xuICAgIGNvbnN0IGNsZWFuUGF0aG5hbWUgPSAoMCwgX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2gpLnJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoKCgwLCBfZGVub3JtYWxpemVQYWdlUGF0aCkuZGVub3JtYWxpemVQYWdlUGF0aChwYXRobmFtZSkpO1xuICAgIGlmIChjbGVhblBhdGhuYW1lID09PSAnLzQwNCcgfHwgY2xlYW5QYXRobmFtZSA9PT0gJy9fZXJyb3InKSB7XG4gICAgICAgIHJldHVybiBwYXRobmFtZTtcbiAgICB9XG4gICAgLy8gaGFuZGxlIHJlc29sdmluZyBocmVmIGZvciBkeW5hbWljIHJvdXRlc1xuICAgIGlmICghcGFnZXMuaW5jbHVkZXMoY2xlYW5QYXRobmFtZSkpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGFycmF5LWNhbGxiYWNrLXJldHVyblxuICAgICAgICBwYWdlcy5zb21lKChwYWdlKT0+e1xuICAgICAgICAgICAgaWYgKCgwLCBfaXNEeW5hbWljKS5pc0R5bmFtaWNSb3V0ZShwYWdlKSAmJiAoMCwgX3JvdXRlUmVnZXgpLmdldFJvdXRlUmVnZXgocGFnZSkucmUudGVzdChjbGVhblBhdGhuYW1lKSkge1xuICAgICAgICAgICAgICAgIHBhdGhuYW1lID0gcGFnZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiAoMCwgX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2gpLnJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoKHBhdGhuYW1lKTtcbn1cbmNvbnN0IG1hbnVhbFNjcm9sbFJlc3RvcmF0aW9uID0gcHJvY2Vzcy5lbnYuX19ORVhUX1NDUk9MTF9SRVNUT1JBVElPTiAmJiB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiAnc2Nyb2xsUmVzdG9yYXRpb24nIGluIHdpbmRvdy5oaXN0b3J5ICYmICEhZnVuY3Rpb24oKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgbGV0IHYgPSAnX19uZXh0JztcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlcXVlbmNlc1xuICAgICAgICByZXR1cm4gc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh2LCB2KSwgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSh2KSwgdHJ1ZTtcbiAgICB9IGNhdGNoIChuKSB7XG4gICAgfVxufSgpO1xuY29uc3QgU1NHX0RBVEFfTk9UX0ZPVU5EID0gU3ltYm9sKCdTU0dfREFUQV9OT1RfRk9VTkQnKTtcbmZ1bmN0aW9uIGZldGNoUmV0cnkodXJsLCBhdHRlbXB0cywgb3B0cykge1xuICAgIHJldHVybiBmZXRjaCh1cmwsIHtcbiAgICAgICAgLy8gQ29va2llcyBhcmUgcmVxdWlyZWQgdG8gYmUgcHJlc2VudCBmb3IgTmV4dC5qcycgU1NHIFwiUHJldmlldyBNb2RlXCIuXG4gICAgICAgIC8vIENvb2tpZXMgbWF5IGFsc28gYmUgcmVxdWlyZWQgZm9yIGBnZXRTZXJ2ZXJTaWRlUHJvcHNgLlxuICAgICAgICAvL1xuICAgICAgICAvLyA+IGBmZXRjaGAgd29u4oCZdCBzZW5kIGNvb2tpZXMsIHVubGVzcyB5b3Ugc2V0IHRoZSBjcmVkZW50aWFscyBpbml0XG4gICAgICAgIC8vID4gb3B0aW9uLlxuICAgICAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRmV0Y2hfQVBJL1VzaW5nX0ZldGNoXG4gICAgICAgIC8vXG4gICAgICAgIC8vID4gRm9yIG1heGltdW0gYnJvd3NlciBjb21wYXRpYmlsaXR5IHdoZW4gaXQgY29tZXMgdG8gc2VuZGluZyAmXG4gICAgICAgIC8vID4gcmVjZWl2aW5nIGNvb2tpZXMsIGFsd2F5cyBzdXBwbHkgdGhlIGBjcmVkZW50aWFsczogJ3NhbWUtb3JpZ2luJ2BcbiAgICAgICAgLy8gPiBvcHRpb24gaW5zdGVhZCBvZiByZWx5aW5nIG9uIHRoZSBkZWZhdWx0LlxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZ2l0aHViL2ZldGNoI2NhdmVhdHNcbiAgICAgICAgY3JlZGVudGlhbHM6ICdzYW1lLW9yaWdpbidcbiAgICB9KS50aGVuKChyZXMpPT57XG4gICAgICAgIGlmICghcmVzLm9rKSB7XG4gICAgICAgICAgICBpZiAoYXR0ZW1wdHMgPiAxICYmIHJlcy5zdGF0dXMgPj0gNTAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZldGNoUmV0cnkodXJsLCBhdHRlbXB0cyAtIDEsIG9wdHMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT09IDQwNCkge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXMuanNvbigpLnRoZW4oKGRhdGEpPT57XG4gICAgICAgICAgICAgICAgICAgIGlmIChkYXRhLm5vdEZvdW5kKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdEZvdW5kOiBTU0dfREFUQV9OT1RfRk9VTkRcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gbG9hZCBzdGF0aWMgcHJvcHNgKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGxvYWQgc3RhdGljIHByb3BzYCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9wdHMudGV4dCA/IHJlcy50ZXh0KCkgOiByZXMuanNvbigpO1xuICAgIH0pO1xufVxuZnVuY3Rpb24gZmV0Y2hOZXh0RGF0YShkYXRhSHJlZiwgaXNTZXJ2ZXJSZW5kZXIsIHRleHQsIGluZmxpZ2h0Q2FjaGUsIHBlcnNpc3RDYWNoZSkge1xuICAgIGNvbnN0IHsgaHJlZjogY2FjaGVLZXkgIH0gPSBuZXcgVVJMKGRhdGFIcmVmLCB3aW5kb3cubG9jYXRpb24uaHJlZik7XG4gICAgaWYgKGluZmxpZ2h0Q2FjaGVbY2FjaGVLZXldICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIGluZmxpZ2h0Q2FjaGVbY2FjaGVLZXldO1xuICAgIH1cbiAgICByZXR1cm4gaW5mbGlnaHRDYWNoZVtjYWNoZUtleV0gPSBmZXRjaFJldHJ5KGRhdGFIcmVmLCBpc1NlcnZlclJlbmRlciA/IDMgOiAxLCB7XG4gICAgICAgIHRleHRcbiAgICB9KS5jYXRjaCgoZXJyKT0+e1xuICAgICAgICAvLyBXZSBzaG91bGQgb25seSB0cmlnZ2VyIGEgc2VydmVyLXNpZGUgdHJhbnNpdGlvbiBpZiB0aGlzIHdhcyBjYXVzZWRcbiAgICAgICAgLy8gb24gYSBjbGllbnQtc2lkZSB0cmFuc2l0aW9uLiBPdGhlcndpc2UsIHdlJ2QgZ2V0IGludG8gYW4gaW5maW5pdGVcbiAgICAgICAgLy8gbG9vcC5cbiAgICAgICAgaWYgKCFpc1NlcnZlclJlbmRlcikge1xuICAgICAgICAgICAgKDAsIF9yb3V0ZUxvYWRlcikubWFya0Fzc2V0RXJyb3IoZXJyKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBlcnI7XG4gICAgfSkudGhlbigoZGF0YSk9PntcbiAgICAgICAgaWYgKCFwZXJzaXN0Q2FjaGUgfHwgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgZGVsZXRlIGluZmxpZ2h0Q2FjaGVbY2FjaGVLZXldO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH0pLmNhdGNoKChlcnIpPT57XG4gICAgICAgIGRlbGV0ZSBpbmZsaWdodENhY2hlW2NhY2hlS2V5XTtcbiAgICAgICAgdGhyb3cgZXJyO1xuICAgIH0pO1xufVxuY2xhc3MgUm91dGVyIHtcbiAgICBjb25zdHJ1Y3RvcihwYXRobmFtZSwgcXVlcnksIGFzLCB7IGluaXRpYWxQcm9wcyAsIHBhZ2VMb2FkZXIgLCBBcHAgLCB3cmFwQXBwICwgQ29tcG9uZW50ICwgZXJyICwgc3Vic2NyaXB0aW9uICwgaXNGYWxsYmFjayAsIGxvY2FsZSAsIGxvY2FsZXMgLCBkZWZhdWx0TG9jYWxlICwgZG9tYWluTG9jYWxlcyAsIGlzUHJldmlldyAgfSl7XG4gICAgICAgIC8vIFN0YXRpYyBEYXRhIENhY2hlXG4gICAgICAgIHRoaXMuc2RjID0ge1xuICAgICAgICB9O1xuICAgICAgICAvLyBJbi1mbGlnaHQgU2VydmVyIERhdGEgUmVxdWVzdHMsIGZvciBkZWR1cGluZ1xuICAgICAgICB0aGlzLnNkciA9IHtcbiAgICAgICAgfTtcbiAgICAgICAgLy8gSW4tZmxpZ2h0IG1pZGRsZXdhcmUgcHJlZmxpZ2h0IHJlcXVlc3RzXG4gICAgICAgIHRoaXMuc2RlID0ge1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLl9pZHggPSAwO1xuICAgICAgICB0aGlzLm9uUG9wU3RhdGUgPSAoZSk9PntcbiAgICAgICAgICAgIGNvbnN0IHN0YXRlID0gZS5zdGF0ZTtcbiAgICAgICAgICAgIGlmICghc3RhdGUpIHtcbiAgICAgICAgICAgICAgICAvLyBXZSBnZXQgc3RhdGUgYXMgdW5kZWZpbmVkIGZvciB0d28gcmVhc29ucy5cbiAgICAgICAgICAgICAgICAvLyAgMS4gV2l0aCBvbGRlciBzYWZhcmkgKDwgOCkgYW5kIG9sZGVyIGNocm9tZSAoPCAzNClcbiAgICAgICAgICAgICAgICAvLyAgMi4gV2hlbiB0aGUgVVJMIGNoYW5nZWQgd2l0aCAjXG4gICAgICAgICAgICAgICAgLy9cbiAgICAgICAgICAgICAgICAvLyBJbiB0aGUgYm90aCBjYXNlcywgd2UgZG9uJ3QgbmVlZCB0byBwcm9jZWVkIGFuZCBjaGFuZ2UgdGhlIHJvdXRlLlxuICAgICAgICAgICAgICAgIC8vIChhcyBpdCdzIGFscmVhZHkgY2hhbmdlZClcbiAgICAgICAgICAgICAgICAvLyBCdXQgd2UgY2FuIHNpbXBseSByZXBsYWNlIHRoZSBzdGF0ZSB3aXRoIHRoZSBuZXcgY2hhbmdlcy5cbiAgICAgICAgICAgICAgICAvLyBBY3R1YWxseSwgZm9yICgxKSB3ZSBkb24ndCBuZWVkIHRvIG5vdGhpbmcuIEJ1dCBpdCdzIGhhcmQgdG8gZGV0ZWN0IHRoYXQgZXZlbnQuXG4gICAgICAgICAgICAgICAgLy8gU28sIGRvaW5nIHRoZSBmb2xsb3dpbmcgZm9yICgxKSBkb2VzIG5vIGhhcm0uXG4gICAgICAgICAgICAgICAgY29uc3QgeyBwYXRobmFtZSAsIHF1ZXJ5ICB9ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZVN0YXRlKCdyZXBsYWNlU3RhdGUnLCAoMCwgX3V0aWxzKS5mb3JtYXRXaXRoVmFsaWRhdGlvbih7XG4gICAgICAgICAgICAgICAgICAgIHBhdGhuYW1lOiBhZGRCYXNlUGF0aChwYXRobmFtZSksXG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5XG4gICAgICAgICAgICAgICAgfSksICgwLCBfdXRpbHMpLmdldFVSTCgpKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXN0YXRlLl9fTikge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBmb3JjZWRTY3JvbGw7XG4gICAgICAgICAgICBjb25zdCB7IHVybCAsIGFzICwgb3B0aW9ucyAsIGlkeCAgfSA9IHN0YXRlO1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9TQ1JPTExfUkVTVE9SQVRJT04pIHtcbiAgICAgICAgICAgICAgICBpZiAobWFudWFsU2Nyb2xsUmVzdG9yYXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2lkeCAhPT0gaWR4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTbmFwc2hvdCBjdXJyZW50IHNjcm9sbCBwb3NpdGlvbjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnX19uZXh0X3Njcm9sbF8nICsgdGhpcy5faWR4LCBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHg6IHNlbGYucGFnZVhPZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHk6IHNlbGYucGFnZVlPZmZzZXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoICB7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBSZXN0b3JlIG9sZCBzY3JvbGwgcG9zaXRpb246XG4gICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHYgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdfX25leHRfc2Nyb2xsXycgKyBpZHgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmNlZFNjcm9sbCA9IEpTT04ucGFyc2Uodik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yY2VkU2Nyb2xsID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4OiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5OiAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX2lkeCA9IGlkeDtcbiAgICAgICAgICAgIGNvbnN0IHsgcGF0aG5hbWUgIH0gPSAoMCwgX3BhcnNlUmVsYXRpdmVVcmwpLnBhcnNlUmVsYXRpdmVVcmwodXJsKTtcbiAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBkb24ndCByZS1yZW5kZXIgb24gaW5pdGlhbCBsb2FkLFxuICAgICAgICAgICAgLy8gY2FuIGJlIGNhdXNlZCBieSBuYXZpZ2F0aW5nIGJhY2sgZnJvbSBhbiBleHRlcm5hbCBzaXRlXG4gICAgICAgICAgICBpZiAodGhpcy5pc1NzciAmJiBhcyA9PT0gdGhpcy5hc1BhdGggJiYgcGF0aG5hbWUgPT09IHRoaXMucGF0aG5hbWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBJZiB0aGUgZG93bnN0cmVhbSBhcHBsaWNhdGlvbiByZXR1cm5zIGZhbHN5LCByZXR1cm4uXG4gICAgICAgICAgICAvLyBUaGV5IHdpbGwgdGhlbiBiZSByZXNwb25zaWJsZSBmb3IgaGFuZGxpbmcgdGhlIGV2ZW50LlxuICAgICAgICAgICAgaWYgKHRoaXMuX2JwcyAmJiAhdGhpcy5fYnBzKHN0YXRlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY2hhbmdlKCdyZXBsYWNlU3RhdGUnLCB1cmwsIGFzLCBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgICAgIH0sIG9wdGlvbnMsIHtcbiAgICAgICAgICAgICAgICBzaGFsbG93OiBvcHRpb25zLnNoYWxsb3cgJiYgdGhpcy5fc2hhbGxvdyxcbiAgICAgICAgICAgICAgICBsb2NhbGU6IG9wdGlvbnMubG9jYWxlIHx8IHRoaXMuZGVmYXVsdExvY2FsZVxuICAgICAgICAgICAgfSksIGZvcmNlZFNjcm9sbCk7XG4gICAgICAgIH07XG4gICAgICAgIC8vIHJlcHJlc2VudHMgdGhlIGN1cnJlbnQgY29tcG9uZW50IGtleVxuICAgICAgICB0aGlzLnJvdXRlID0gKDAsIF9ub3JtYWxpemVUcmFpbGluZ1NsYXNoKS5yZW1vdmVQYXRoVHJhaWxpbmdTbGFzaChwYXRobmFtZSk7XG4gICAgICAgIC8vIHNldCB1cCB0aGUgY29tcG9uZW50IGNhY2hlIChieSByb3V0ZSBrZXlzKVxuICAgICAgICB0aGlzLmNvbXBvbmVudHMgPSB7XG4gICAgICAgIH07XG4gICAgICAgIC8vIFdlIHNob3VsZCBub3Qga2VlcCB0aGUgY2FjaGUsIGlmIHRoZXJlJ3MgYW4gZXJyb3JcbiAgICAgICAgLy8gT3RoZXJ3aXNlLCB0aGlzIGNhdXNlIGlzc3VlcyB3aGVuIHdoZW4gZ29pbmcgYmFjayBhbmRcbiAgICAgICAgLy8gY29tZSBhZ2FpbiB0byB0aGUgZXJyb3JlZCBwYWdlLlxuICAgICAgICBpZiAocGF0aG5hbWUgIT09ICcvX2Vycm9yJykge1xuICAgICAgICAgICAgdmFyIHJlZjtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50c1t0aGlzLnJvdXRlXSA9IHtcbiAgICAgICAgICAgICAgICBDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgaW5pdGlhbDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBwcm9wczogaW5pdGlhbFByb3BzLFxuICAgICAgICAgICAgICAgIGVycixcbiAgICAgICAgICAgICAgICBfX05fU1NHOiBpbml0aWFsUHJvcHMgJiYgaW5pdGlhbFByb3BzLl9fTl9TU0csXG4gICAgICAgICAgICAgICAgX19OX1NTUDogaW5pdGlhbFByb3BzICYmIGluaXRpYWxQcm9wcy5fX05fU1NQLFxuICAgICAgICAgICAgICAgIF9fTl9SU0M6ICEhKChyZWYgPSBDb21wb25lbnQpID09PSBudWxsIHx8IHJlZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVmLl9fbmV4dF9yc2NfXylcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb21wb25lbnRzWycvX2FwcCddID0ge1xuICAgICAgICAgICAgQ29tcG9uZW50OiBBcHAsXG4gICAgICAgICAgICBzdHlsZVNoZWV0czogW11cbiAgICAgICAgfTtcbiAgICAgICAgLy8gQmFja3dhcmRzIGNvbXBhdCBmb3IgUm91dGVyLnJvdXRlci5ldmVudHNcbiAgICAgICAgLy8gVE9ETzogU2hvdWxkIGJlIHJlbW92ZSB0aGUgZm9sbG93aW5nIG1ham9yIHZlcnNpb24gYXMgaXQgd2FzIG5ldmVyIGRvY3VtZW50ZWRcbiAgICAgICAgdGhpcy5ldmVudHMgPSBSb3V0ZXIuZXZlbnRzO1xuICAgICAgICB0aGlzLnBhZ2VMb2FkZXIgPSBwYWdlTG9hZGVyO1xuICAgICAgICB0aGlzLnBhdGhuYW1lID0gcGF0aG5hbWU7XG4gICAgICAgIHRoaXMucXVlcnkgPSBxdWVyeTtcbiAgICAgICAgLy8gaWYgYXV0byBwcmVyZW5kZXJlZCBhbmQgZHluYW1pYyByb3V0ZSB3YWl0IHRvIHVwZGF0ZSBhc1BhdGhcbiAgICAgICAgLy8gdW50aWwgYWZ0ZXIgbW91bnQgdG8gcHJldmVudCBoeWRyYXRpb24gbWlzbWF0Y2hcbiAgICAgICAgY29uc3QgYXV0b0V4cG9ydER5bmFtaWMgPSAoMCwgX2lzRHluYW1pYykuaXNEeW5hbWljUm91dGUocGF0aG5hbWUpICYmIHNlbGYuX19ORVhUX0RBVEFfXy5hdXRvRXhwb3J0O1xuICAgICAgICB0aGlzLmFzUGF0aCA9IGF1dG9FeHBvcnREeW5hbWljID8gcGF0aG5hbWUgOiBhcztcbiAgICAgICAgdGhpcy5iYXNlUGF0aCA9IGJhc2VQYXRoO1xuICAgICAgICB0aGlzLnN1YiA9IHN1YnNjcmlwdGlvbjtcbiAgICAgICAgdGhpcy5jbGMgPSBudWxsO1xuICAgICAgICB0aGlzLl93cmFwQXBwID0gd3JhcEFwcDtcbiAgICAgICAgLy8gbWFrZSBzdXJlIHRvIGlnbm9yZSBleHRyYSBwb3BTdGF0ZSBpbiBzYWZhcmkgb24gbmF2aWdhdGluZ1xuICAgICAgICAvLyBiYWNrIGZyb20gZXh0ZXJuYWwgc2l0ZVxuICAgICAgICB0aGlzLmlzU3NyID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5pc0ZhbGxiYWNrID0gaXNGYWxsYmFjaztcbiAgICAgICAgdGhpcy5pc1JlYWR5ID0gISEoc2VsZi5fX05FWFRfREFUQV9fLmdzc3AgfHwgc2VsZi5fX05FWFRfREFUQV9fLmdpcCB8fCBzZWxmLl9fTkVYVF9EQVRBX18uYXBwR2lwICYmICFzZWxmLl9fTkVYVF9EQVRBX18uZ3NwIHx8ICFhdXRvRXhwb3J0RHluYW1pYyAmJiAhc2VsZi5sb2NhdGlvbi5zZWFyY2ggJiYgIXByb2Nlc3MuZW52Ll9fTkVYVF9IQVNfUkVXUklURVMpO1xuICAgICAgICB0aGlzLmlzUHJldmlldyA9ICEhaXNQcmV2aWV3O1xuICAgICAgICB0aGlzLmlzTG9jYWxlRG9tYWluID0gZmFsc2U7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgICAgICAgICB0aGlzLmxvY2FsZSA9IGxvY2FsZTtcbiAgICAgICAgICAgIHRoaXMubG9jYWxlcyA9IGxvY2FsZXM7XG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRMb2NhbGUgPSBkZWZhdWx0TG9jYWxlO1xuICAgICAgICAgICAgdGhpcy5kb21haW5Mb2NhbGVzID0gZG9tYWluTG9jYWxlcztcbiAgICAgICAgICAgIHRoaXMuaXNMb2NhbGVEb21haW4gPSAhIWRldGVjdERvbWFpbkxvY2FsZShkb21haW5Mb2NhbGVzLCBzZWxmLmxvY2F0aW9uLmhvc3RuYW1lKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSBcImFzXCIgZG9lc24ndCBzdGFydCB3aXRoIGRvdWJsZSBzbGFzaGVzIG9yIGVsc2UgaXQgY2FuXG4gICAgICAgICAgICAvLyB0aHJvdyBhbiBlcnJvciBhcyBpdCdzIGNvbnNpZGVyZWQgaW52YWxpZFxuICAgICAgICAgICAgaWYgKGFzLnN1YnN0cigwLCAyKSAhPT0gJy8vJykge1xuICAgICAgICAgICAgICAgIC8vIGluIG9yZGVyIGZvciBgZS5zdGF0ZWAgdG8gd29yayBvbiB0aGUgYG9ucG9wc3RhdGVgIGV2ZW50XG4gICAgICAgICAgICAgICAgLy8gd2UgaGF2ZSB0byByZWdpc3RlciB0aGUgaW5pdGlhbCByb3V0ZSB1cG9uIGluaXRpYWxpemF0aW9uXG4gICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAgICAgbG9jYWxlXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBvcHRpb25zLl9zaG91bGRSZXNvbHZlSHJlZiA9IGFzICE9PSBwYXRobmFtZTtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZVN0YXRlKCdyZXBsYWNlU3RhdGUnLCAoMCwgX3V0aWxzKS5mb3JtYXRXaXRoVmFsaWRhdGlvbih7XG4gICAgICAgICAgICAgICAgICAgIHBhdGhuYW1lOiBhZGRCYXNlUGF0aChwYXRobmFtZSksXG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5XG4gICAgICAgICAgICAgICAgfSksICgwLCBfdXRpbHMpLmdldFVSTCgpLCBvcHRpb25zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwb3BzdGF0ZScsIHRoaXMub25Qb3BTdGF0ZSk7XG4gICAgICAgICAgICAvLyBlbmFibGUgY3VzdG9tIHNjcm9sbCByZXN0b3JhdGlvbiBoYW5kbGluZyB3aGVuIGF2YWlsYWJsZVxuICAgICAgICAgICAgLy8gb3RoZXJ3aXNlIGZhbGxiYWNrIHRvIGJyb3dzZXIncyBkZWZhdWx0IGhhbmRsaW5nXG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX1NDUk9MTF9SRVNUT1JBVElPTikge1xuICAgICAgICAgICAgICAgIGlmIChtYW51YWxTY3JvbGxSZXN0b3JhdGlvbikge1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuaGlzdG9yeS5zY3JvbGxSZXN0b3JhdGlvbiA9ICdtYW51YWwnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZWxvYWQoKSB7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgICB9XG4gICAgLyoqXG4gICAqIEdvIGJhY2sgaW4gaGlzdG9yeVxuICAgKi8gYmFjaygpIHtcbiAgICAgICAgd2luZG93Lmhpc3RvcnkuYmFjaygpO1xuICAgIH1cbiAgICAvKipcbiAgICogUGVyZm9ybXMgYSBgcHVzaFN0YXRlYCB3aXRoIGFyZ3VtZW50c1xuICAgKiBAcGFyYW0gdXJsIG9mIHRoZSByb3V0ZVxuICAgKiBAcGFyYW0gYXMgbWFza3MgYHVybGAgZm9yIHRoZSBicm93c2VyXG4gICAqIEBwYXJhbSBvcHRpb25zIG9iamVjdCB5b3UgY2FuIGRlZmluZSBgc2hhbGxvd2AgYW5kIG90aGVyIG9wdGlvbnNcbiAgICovIHB1c2godXJsLCBhcywgb3B0aW9ucyA9IHtcbiAgICB9KSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfU0NST0xMX1JFU1RPUkFUSU9OKSB7XG4gICAgICAgICAgICAvLyBUT0RPOiByZW1vdmUgaW4gdGhlIGZ1dHVyZSB3aGVuIHdlIHVwZGF0ZSBoaXN0b3J5IGJlZm9yZSByb3V0ZSBjaGFuZ2VcbiAgICAgICAgICAgIC8vIGlzIGNvbXBsZXRlLCBhcyB0aGUgcG9wc3RhdGUgZXZlbnQgc2hvdWxkIGhhbmRsZSB0aGlzIGNhcHR1cmUuXG4gICAgICAgICAgICBpZiAobWFudWFsU2Nyb2xsUmVzdG9yYXRpb24pIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAvLyBTbmFwc2hvdCBzY3JvbGwgcG9zaXRpb24gcmlnaHQgYmVmb3JlIG5hdmlnYXRpbmcgdG8gYSBuZXcgcGFnZTpcbiAgICAgICAgICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnX19uZXh0X3Njcm9sbF8nICsgdGhpcy5faWR4LCBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICB4OiBzZWxmLnBhZ2VYT2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgICAgICAgeTogc2VsZi5wYWdlWU9mZnNldFxuICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAge1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAoeyB1cmwgLCBhcyAgfSA9IHByZXBhcmVVcmxBcyh0aGlzLCB1cmwsIGFzKSk7XG4gICAgICAgIHJldHVybiB0aGlzLmNoYW5nZSgncHVzaFN0YXRlJywgdXJsLCBhcywgb3B0aW9ucyk7XG4gICAgfVxuICAgIC8qKlxuICAgKiBQZXJmb3JtcyBhIGByZXBsYWNlU3RhdGVgIHdpdGggYXJndW1lbnRzXG4gICAqIEBwYXJhbSB1cmwgb2YgdGhlIHJvdXRlXG4gICAqIEBwYXJhbSBhcyBtYXNrcyBgdXJsYCBmb3IgdGhlIGJyb3dzZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgb2JqZWN0IHlvdSBjYW4gZGVmaW5lIGBzaGFsbG93YCBhbmQgb3RoZXIgb3B0aW9uc1xuICAgKi8gcmVwbGFjZSh1cmwsIGFzLCBvcHRpb25zID0ge1xuICAgIH0pIHtcbiAgICAgICAgKHsgdXJsICwgYXMgIH0gPSBwcmVwYXJlVXJsQXModGhpcywgdXJsLCBhcykpO1xuICAgICAgICByZXR1cm4gdGhpcy5jaGFuZ2UoJ3JlcGxhY2VTdGF0ZScsIHVybCwgYXMsIG9wdGlvbnMpO1xuICAgIH1cbiAgICBhc3luYyBjaGFuZ2UobWV0aG9kLCB1cmwsIGFzLCBvcHRpb25zLCBmb3JjZWRTY3JvbGwpIHtcbiAgICAgICAgaWYgKCFpc0xvY2FsVVJMKHVybCkpIHtcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNob3VsZFJlc29sdmVIcmVmID0gb3B0aW9ucy5faCB8fCBvcHRpb25zLl9zaG91bGRSZXNvbHZlSHJlZiB8fCBwYXRoTm9RdWVyeUhhc2godXJsKSA9PT0gcGF0aE5vUXVlcnlIYXNoKGFzKTtcbiAgICAgICAgLy8gZm9yIHN0YXRpYyBwYWdlcyB3aXRoIHF1ZXJ5IHBhcmFtcyBpbiB0aGUgVVJMIHdlIGRlbGF5XG4gICAgICAgIC8vIG1hcmtpbmcgdGhlIHJvdXRlciByZWFkeSB1bnRpbCBhZnRlciB0aGUgcXVlcnkgaXMgdXBkYXRlZFxuICAgICAgICBpZiAob3B0aW9ucy5faCkge1xuICAgICAgICAgICAgdGhpcy5pc1JlYWR5ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwcmV2TG9jYWxlID0gdGhpcy5sb2NhbGU7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgICAgICAgICB0aGlzLmxvY2FsZSA9IG9wdGlvbnMubG9jYWxlID09PSBmYWxzZSA/IHRoaXMuZGVmYXVsdExvY2FsZSA6IG9wdGlvbnMubG9jYWxlIHx8IHRoaXMubG9jYWxlO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLmxvY2FsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICBvcHRpb25zLmxvY2FsZSA9IHRoaXMubG9jYWxlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgcGFyc2VkQXMgPSAoMCwgX3BhcnNlUmVsYXRpdmVVcmwpLnBhcnNlUmVsYXRpdmVVcmwoaGFzQmFzZVBhdGgoYXMpID8gZGVsQmFzZVBhdGgoYXMpIDogYXMpO1xuICAgICAgICAgICAgY29uc3QgbG9jYWxlUGF0aFJlc3VsdCA9ICgwLCBfbm9ybWFsaXplTG9jYWxlUGF0aCkubm9ybWFsaXplTG9jYWxlUGF0aChwYXJzZWRBcy5wYXRobmFtZSwgdGhpcy5sb2NhbGVzKTtcbiAgICAgICAgICAgIGlmIChsb2NhbGVQYXRoUmVzdWx0LmRldGVjdGVkTG9jYWxlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2NhbGUgPSBsb2NhbGVQYXRoUmVzdWx0LmRldGVjdGVkTG9jYWxlO1xuICAgICAgICAgICAgICAgIHBhcnNlZEFzLnBhdGhuYW1lID0gYWRkQmFzZVBhdGgocGFyc2VkQXMucGF0aG5hbWUpO1xuICAgICAgICAgICAgICAgIGFzID0gKDAsIF91dGlscykuZm9ybWF0V2l0aFZhbGlkYXRpb24ocGFyc2VkQXMpO1xuICAgICAgICAgICAgICAgIHVybCA9IGFkZEJhc2VQYXRoKCgwLCBfbm9ybWFsaXplTG9jYWxlUGF0aCkubm9ybWFsaXplTG9jYWxlUGF0aChoYXNCYXNlUGF0aCh1cmwpID8gZGVsQmFzZVBhdGgodXJsKSA6IHVybCwgdGhpcy5sb2NhbGVzKS5wYXRobmFtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgZGlkTmF2aWdhdGUgPSBmYWxzZTtcbiAgICAgICAgICAgIC8vIHdlIG5lZWQgdG8gd3JhcCB0aGlzIGluIHRoZSBlbnYgY2hlY2sgYWdhaW4gc2luY2UgcmVnZW5lcmF0b3IgcnVudGltZVxuICAgICAgICAgICAgLy8gbW92ZXMgdGhpcyBvbiBpdHMgb3duIGR1ZSB0byB0aGUgcmV0dXJuXG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0kxOE5fU1VQUE9SVCkge1xuICAgICAgICAgICAgICAgIHZhciByZWY7XG4gICAgICAgICAgICAgICAgLy8gaWYgdGhlIGxvY2FsZSBpc24ndCBjb25maWd1cmVkIGhhcmQgbmF2aWdhdGUgdG8gc2hvdyA0MDQgcGFnZVxuICAgICAgICAgICAgICAgIGlmICghKChyZWYgPSB0aGlzLmxvY2FsZXMpID09PSBudWxsIHx8IHJlZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVmLmluY2x1ZGVzKHRoaXMubG9jYWxlKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VkQXMucGF0aG5hbWUgPSBhZGRMb2NhbGUocGFyc2VkQXMucGF0aG5hbWUsIHRoaXMubG9jYWxlKTtcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSAoMCwgX3V0aWxzKS5mb3JtYXRXaXRoVmFsaWRhdGlvbihwYXJzZWRBcyk7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgd2FzIHByZXZpb3VzbHkgYSByZXR1cm4gYnV0IHdhcyByZW1vdmVkIGluIGZhdm9yXG4gICAgICAgICAgICAgICAgICAgIC8vIG9mIGJldHRlciBkZWFkIGNvZGUgZWxpbWluYXRpb24gd2l0aCByZWdlbmVyYXRvciBydW50aW1lXG4gICAgICAgICAgICAgICAgICAgIGRpZE5hdmlnYXRlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBkZXRlY3RlZERvbWFpbiA9IGRldGVjdERvbWFpbkxvY2FsZSh0aGlzLmRvbWFpbkxvY2FsZXMsIHVuZGVmaW5lZCwgdGhpcy5sb2NhbGUpO1xuICAgICAgICAgICAgLy8gd2UgbmVlZCB0byB3cmFwIHRoaXMgaW4gdGhlIGVudiBjaGVjayBhZ2FpbiBzaW5jZSByZWdlbmVyYXRvciBydW50aW1lXG4gICAgICAgICAgICAvLyBtb3ZlcyB0aGlzIG9uIGl0cyBvd24gZHVlIHRvIHRoZSByZXR1cm5cbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgICAgICAgICAgICAgLy8gaWYgd2UgYXJlIG5hdmlnYXRpbmcgdG8gYSBkb21haW4gbG9jYWxlIGVuc3VyZSB3ZSByZWRpcmVjdCB0byB0aGVcbiAgICAgICAgICAgICAgICAvLyBjb3JyZWN0IGRvbWFpblxuICAgICAgICAgICAgICAgIGlmICghZGlkTmF2aWdhdGUgJiYgZGV0ZWN0ZWREb21haW4gJiYgdGhpcy5pc0xvY2FsZURvbWFpbiAmJiBzZWxmLmxvY2F0aW9uLmhvc3RuYW1lICE9PSBkZXRlY3RlZERvbWFpbi5kb21haW4pIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYXNOb0Jhc2VQYXRoID0gZGVsQmFzZVBhdGgoYXMpO1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGBodHRwJHtkZXRlY3RlZERvbWFpbi5odHRwID8gJycgOiAncyd9Oi8vJHtkZXRlY3RlZERvbWFpbi5kb21haW59JHthZGRCYXNlUGF0aChgJHt0aGlzLmxvY2FsZSA9PT0gZGV0ZWN0ZWREb21haW4uZGVmYXVsdExvY2FsZSA/ICcnIDogYC8ke3RoaXMubG9jYWxlfWB9JHthc05vQmFzZVBhdGggPT09ICcvJyA/ICcnIDogYXNOb0Jhc2VQYXRofWAgfHwgJy8nKX1gO1xuICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIHdhcyBwcmV2aW91c2x5IGEgcmV0dXJuIGJ1dCB3YXMgcmVtb3ZlZCBpbiBmYXZvclxuICAgICAgICAgICAgICAgICAgICAvLyBvZiBiZXR0ZXIgZGVhZCBjb2RlIGVsaW1pbmF0aW9uIHdpdGggcmVnZW5lcmF0b3IgcnVudGltZVxuICAgICAgICAgICAgICAgICAgICBkaWROYXZpZ2F0ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRpZE5hdmlnYXRlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKCgpPT57XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFvcHRpb25zLl9oKSB7XG4gICAgICAgICAgICB0aGlzLmlzU3NyID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgLy8gbWFya2luZyByb3V0ZSBjaGFuZ2VzIGFzIGEgbmF2aWdhdGlvbiBzdGFydCBlbnRyeVxuICAgICAgICBpZiAoX3V0aWxzLlNUKSB7XG4gICAgICAgICAgICBwZXJmb3JtYW5jZS5tYXJrKCdyb3V0ZUNoYW5nZScpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgc2hhbGxvdyA9ZmFsc2UgIH0gPSBvcHRpb25zO1xuICAgICAgICBjb25zdCByb3V0ZVByb3BzID0ge1xuICAgICAgICAgICAgc2hhbGxvd1xuICAgICAgICB9O1xuICAgICAgICBpZiAodGhpcy5faW5GbGlnaHRSb3V0ZSkge1xuICAgICAgICAgICAgdGhpcy5hYm9ydENvbXBvbmVudExvYWQodGhpcy5faW5GbGlnaHRSb3V0ZSwgcm91dGVQcm9wcyk7XG4gICAgICAgIH1cbiAgICAgICAgYXMgPSBhZGRCYXNlUGF0aChhZGRMb2NhbGUoaGFzQmFzZVBhdGgoYXMpID8gZGVsQmFzZVBhdGgoYXMpIDogYXMsIG9wdGlvbnMubG9jYWxlLCB0aGlzLmRlZmF1bHRMb2NhbGUpKTtcbiAgICAgICAgY29uc3QgY2xlYW5lZEFzID0gZGVsTG9jYWxlKGhhc0Jhc2VQYXRoKGFzKSA/IGRlbEJhc2VQYXRoKGFzKSA6IGFzLCB0aGlzLmxvY2FsZSk7XG4gICAgICAgIHRoaXMuX2luRmxpZ2h0Um91dGUgPSBhcztcbiAgICAgICAgbGV0IGxvY2FsZUNoYW5nZSA9IHByZXZMb2NhbGUgIT09IHRoaXMubG9jYWxlO1xuICAgICAgICAvLyBJZiB0aGUgdXJsIGNoYW5nZSBpcyBvbmx5IHJlbGF0ZWQgdG8gYSBoYXNoIGNoYW5nZVxuICAgICAgICAvLyBXZSBzaG91bGQgbm90IHByb2NlZWQuIFdlIHNob3VsZCBvbmx5IGNoYW5nZSB0aGUgc3RhdGUuXG4gICAgICAgIC8vIFdBUk5JTkc6IGBfaGAgaXMgYW4gaW50ZXJuYWwgb3B0aW9uIGZvciBoYW5kaW5nIE5leHQuanMgY2xpZW50LXNpZGVcbiAgICAgICAgLy8gaHlkcmF0aW9uLiBZb3VyIGFwcCBzaG91bGQgX25ldmVyXyB1c2UgdGhpcyBwcm9wZXJ0eS4gSXQgbWF5IGNoYW5nZSBhdFxuICAgICAgICAvLyBhbnkgdGltZSB3aXRob3V0IG5vdGljZS5cbiAgICAgICAgaWYgKCFvcHRpb25zLl9oICYmIHRoaXMub25seUFIYXNoQ2hhbmdlKGNsZWFuZWRBcykgJiYgIWxvY2FsZUNoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5hc1BhdGggPSBjbGVhbmVkQXM7XG4gICAgICAgICAgICBSb3V0ZXIuZXZlbnRzLmVtaXQoJ2hhc2hDaGFuZ2VTdGFydCcsIGFzLCByb3V0ZVByb3BzKTtcbiAgICAgICAgICAgIC8vIFRPRE86IGRvIHdlIG5lZWQgdGhlIHJlc29sdmVkIGhyZWYgd2hlbiBvbmx5IGEgaGFzaCBjaGFuZ2U/XG4gICAgICAgICAgICB0aGlzLmNoYW5nZVN0YXRlKG1ldGhvZCwgdXJsLCBhcywgb3B0aW9ucyk7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbFRvSGFzaChjbGVhbmVkQXMpO1xuICAgICAgICAgICAgdGhpcy5ub3RpZnkodGhpcy5jb21wb25lbnRzW3RoaXMucm91dGVdLCBudWxsKTtcbiAgICAgICAgICAgIFJvdXRlci5ldmVudHMuZW1pdCgnaGFzaENoYW5nZUNvbXBsZXRlJywgYXMsIHJvdXRlUHJvcHMpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHBhcnNlZCA9ICgwLCBfcGFyc2VSZWxhdGl2ZVVybCkucGFyc2VSZWxhdGl2ZVVybCh1cmwpO1xuICAgICAgICBsZXQgeyBwYXRobmFtZSAsIHF1ZXJ5ICB9ID0gcGFyc2VkO1xuICAgICAgICAvLyBUaGUgYnVpbGQgbWFuaWZlc3QgbmVlZHMgdG8gYmUgbG9hZGVkIGJlZm9yZSBhdXRvLXN0YXRpYyBkeW5hbWljIHBhZ2VzXG4gICAgICAgIC8vIGdldCB0aGVpciBxdWVyeSBwYXJhbWV0ZXJzIHRvIGFsbG93IGVuc3VyaW5nIHRoZXkgY2FuIGJlIHBhcnNlZCBwcm9wZXJseVxuICAgICAgICAvLyB3aGVuIHJld3JpdHRlbiB0b1xuICAgICAgICBsZXQgcGFnZXMsIHJld3JpdGVzO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgW3BhZ2VzLCB7IF9fcmV3cml0ZXM6IHJld3JpdGVzICB9XSA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgICAgICAgICAgICB0aGlzLnBhZ2VMb2FkZXIuZ2V0UGFnZUxpc3QoKSxcbiAgICAgICAgICAgICAgICAoMCwgX3JvdXRlTG9hZGVyKS5nZXRDbGllbnRCdWlsZE1hbmlmZXN0KCksXG4gICAgICAgICAgICAgICAgdGhpcy5wYWdlTG9hZGVyLmdldE1pZGRsZXdhcmVMaXN0KCksIFxuICAgICAgICAgICAgXSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgLy8gSWYgd2UgZmFpbCB0byByZXNvbHZlIHRoZSBwYWdlIGxpc3Qgb3IgY2xpZW50LWJ1aWxkIG1hbmlmZXN0LCB3ZSBtdXN0XG4gICAgICAgICAgICAvLyBkbyBhIHNlcnZlci1zaWRlIHRyYW5zaXRpb246XG4gICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGFzO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIC8vIElmIGFza2VkIHRvIGNoYW5nZSB0aGUgY3VycmVudCBVUkwgd2Ugc2hvdWxkIHJlbG9hZCB0aGUgY3VycmVudCBwYWdlXG4gICAgICAgIC8vIChub3QgbG9jYXRpb24ucmVsb2FkKCkgYnV0IHJlbG9hZCBnZXRJbml0aWFsUHJvcHMgYW5kIG90aGVyIE5leHQuanMgc3R1ZmZzKVxuICAgICAgICAvLyBXZSBhbHNvIG5lZWQgdG8gc2V0IHRoZSBtZXRob2QgPSByZXBsYWNlU3RhdGUgYWx3YXlzXG4gICAgICAgIC8vIGFzIHRoaXMgc2hvdWxkIG5vdCBnbyBpbnRvIHRoZSBoaXN0b3J5IChUaGF0J3MgaG93IGJyb3dzZXJzIHdvcmspXG4gICAgICAgIC8vIFdlIHNob3VsZCBjb21wYXJlIHRoZSBuZXcgYXNQYXRoIHRvIHRoZSBjdXJyZW50IGFzUGF0aCwgbm90IHRoZSB1cmxcbiAgICAgICAgaWYgKCF0aGlzLnVybElzTmV3KGNsZWFuZWRBcykgJiYgIWxvY2FsZUNoYW5nZSkge1xuICAgICAgICAgICAgbWV0aG9kID0gJ3JlcGxhY2VTdGF0ZSc7XG4gICAgICAgIH1cbiAgICAgICAgLy8gd2UgbmVlZCB0byByZXNvbHZlIHRoZSBhcyB2YWx1ZSB1c2luZyByZXdyaXRlcyBmb3IgZHluYW1pYyBTU0dcbiAgICAgICAgLy8gcGFnZXMgdG8gYWxsb3cgYnVpbGRpbmcgdGhlIGRhdGEgVVJMIGNvcnJlY3RseVxuICAgICAgICBsZXQgcmVzb2x2ZWRBcyA9IGFzO1xuICAgICAgICAvLyB1cmwgYW5kIGFzIHNob3VsZCBhbHdheXMgYmUgcHJlZml4ZWQgd2l0aCBiYXNlUGF0aCBieSB0aGlzXG4gICAgICAgIC8vIHBvaW50IGJ5IGVpdGhlciBuZXh0L2xpbmsgb3Igcm91dGVyLnB1c2gvcmVwbGFjZSBzbyBzdHJpcCB0aGVcbiAgICAgICAgLy8gYmFzZVBhdGggZnJvbSB0aGUgcGF0aG5hbWUgdG8gbWF0Y2ggdGhlIHBhZ2VzIGRpciAxLXRvLTFcbiAgICAgICAgcGF0aG5hbWUgPSBwYXRobmFtZSA/ICgwLCBfbm9ybWFsaXplVHJhaWxpbmdTbGFzaCkucmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2goZGVsQmFzZVBhdGgocGF0aG5hbWUpKSA6IHBhdGhuYW1lO1xuICAgICAgICBpZiAoc2hvdWxkUmVzb2x2ZUhyZWYgJiYgcGF0aG5hbWUgIT09ICcvX2Vycm9yJykge1xuICAgICAgICAgICAgb3B0aW9ucy5fc2hvdWxkUmVzb2x2ZUhyZWYgPSB0cnVlO1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9IQVNfUkVXUklURVMgJiYgYXMuc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmV3cml0ZXNSZXN1bHQgPSAoMCwgX3Jlc29sdmVSZXdyaXRlcykuZGVmYXVsdChhZGRCYXNlUGF0aChhZGRMb2NhbGUoY2xlYW5lZEFzLCB0aGlzLmxvY2FsZSkpLCBwYWdlcywgcmV3cml0ZXMsIHF1ZXJ5LCAocCk9PnJlc29sdmVEeW5hbWljUm91dGUocCwgcGFnZXMpXG4gICAgICAgICAgICAgICAgLCB0aGlzLmxvY2FsZXMpO1xuICAgICAgICAgICAgICAgIHJlc29sdmVkQXMgPSByZXdyaXRlc1Jlc3VsdC5hc1BhdGg7XG4gICAgICAgICAgICAgICAgaWYgKHJld3JpdGVzUmVzdWx0Lm1hdGNoZWRQYWdlICYmIHJld3JpdGVzUmVzdWx0LnJlc29sdmVkSHJlZikge1xuICAgICAgICAgICAgICAgICAgICAvLyBpZiB0aGlzIGRpcmVjdGx5IG1hdGNoZXMgYSBwYWdlIHdlIG5lZWQgdG8gdXBkYXRlIHRoZSBocmVmIHRvXG4gICAgICAgICAgICAgICAgICAgIC8vIGFsbG93IHRoZSBjb3JyZWN0IHBhZ2UgY2h1bmsgdG8gYmUgbG9hZGVkXG4gICAgICAgICAgICAgICAgICAgIHBhdGhuYW1lID0gcmV3cml0ZXNSZXN1bHQucmVzb2x2ZWRIcmVmO1xuICAgICAgICAgICAgICAgICAgICBwYXJzZWQucGF0aG5hbWUgPSBhZGRCYXNlUGF0aChwYXRobmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIHVybCA9ICgwLCBfdXRpbHMpLmZvcm1hdFdpdGhWYWxpZGF0aW9uKHBhcnNlZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwYXJzZWQucGF0aG5hbWUgPSByZXNvbHZlRHluYW1pY1JvdXRlKHBhdGhuYW1lLCBwYWdlcyk7XG4gICAgICAgICAgICAgICAgaWYgKHBhcnNlZC5wYXRobmFtZSAhPT0gcGF0aG5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWUgPSBwYXJzZWQucGF0aG5hbWU7XG4gICAgICAgICAgICAgICAgICAgIHBhcnNlZC5wYXRobmFtZSA9IGFkZEJhc2VQYXRoKHBhdGhuYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdXJsID0gKDAsIF91dGlscykuZm9ybWF0V2l0aFZhbGlkYXRpb24ocGFyc2VkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc0xvY2FsVVJMKGFzKSkge1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgaHJlZjogXCIke3VybH1cIiBhbmQgYXM6IFwiJHthc31cIiwgcmVjZWl2ZWQgcmVsYXRpdmUgaHJlZiBhbmQgZXh0ZXJuYWwgYXNgICsgYFxcblNlZSBtb3JlIGluZm86IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2ludmFsaWQtcmVsYXRpdmUtdXJsLWV4dGVybmFsLWFzYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGFzO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJlc29sdmVkQXMgPSBkZWxMb2NhbGUoZGVsQmFzZVBhdGgocmVzb2x2ZWRBcyksIHRoaXMubG9jYWxlKTtcbiAgICAgICAgY29uc3QgZWZmZWN0ID0gYXdhaXQgdGhpcy5fcHJlZmxpZ2h0UmVxdWVzdCh7XG4gICAgICAgICAgICBhcyxcbiAgICAgICAgICAgIGNhY2hlOiBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nLFxuICAgICAgICAgICAgcGFnZXMsXG4gICAgICAgICAgICBwYXRobmFtZSxcbiAgICAgICAgICAgIHF1ZXJ5XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZWZmZWN0LnR5cGUgPT09ICdyZXdyaXRlJykge1xuICAgICAgICAgICAgcXVlcnkgPSB7XG4gICAgICAgICAgICAgICAgLi4ucXVlcnksXG4gICAgICAgICAgICAgICAgLi4uZWZmZWN0LnBhcnNlZEFzLnF1ZXJ5XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmVzb2x2ZWRBcyA9IGVmZmVjdC5hc1BhdGg7XG4gICAgICAgICAgICBwYXRobmFtZSA9IGVmZmVjdC5yZXNvbHZlZEhyZWY7XG4gICAgICAgICAgICBwYXJzZWQucGF0aG5hbWUgPSBlZmZlY3QucmVzb2x2ZWRIcmVmO1xuICAgICAgICAgICAgdXJsID0gKDAsIF91dGlscykuZm9ybWF0V2l0aFZhbGlkYXRpb24ocGFyc2VkKTtcbiAgICAgICAgfSBlbHNlIGlmIChlZmZlY3QudHlwZSA9PT0gJ3JlZGlyZWN0JyAmJiBlZmZlY3QubmV3QXMpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNoYW5nZShtZXRob2QsIGVmZmVjdC5uZXdVcmwsIGVmZmVjdC5uZXdBcywgb3B0aW9ucyk7XG4gICAgICAgIH0gZWxzZSBpZiAoZWZmZWN0LnR5cGUgPT09ICdyZWRpcmVjdCcgJiYgZWZmZWN0LmRlc3RpbmF0aW9uKSB7XG4gICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGVmZmVjdC5kZXN0aW5hdGlvbjtcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgoKT0+e1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAoZWZmZWN0LnR5cGUgPT09ICdyZWZyZXNoJykge1xuICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBhcztcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgoKT0+e1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgcm91dGUgPSAoMCwgX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2gpLnJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoKHBhdGhuYW1lKTtcbiAgICAgICAgaWYgKCgwLCBfaXNEeW5hbWljKS5pc0R5bmFtaWNSb3V0ZShyb3V0ZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcnNlZEFzID0gKDAsIF9wYXJzZVJlbGF0aXZlVXJsKS5wYXJzZVJlbGF0aXZlVXJsKHJlc29sdmVkQXMpO1xuICAgICAgICAgICAgY29uc3QgYXNQYXRobmFtZSA9IHBhcnNlZEFzLnBhdGhuYW1lO1xuICAgICAgICAgICAgY29uc3Qgcm91dGVSZWdleCA9ICgwLCBfcm91dGVSZWdleCkuZ2V0Um91dGVSZWdleChyb3V0ZSk7XG4gICAgICAgICAgICBjb25zdCByb3V0ZU1hdGNoID0gKDAsIF9yb3V0ZU1hdGNoZXIpLmdldFJvdXRlTWF0Y2hlcihyb3V0ZVJlZ2V4KShhc1BhdGhuYW1lKTtcbiAgICAgICAgICAgIGNvbnN0IHNob3VsZEludGVycG9sYXRlID0gcm91dGUgPT09IGFzUGF0aG5hbWU7XG4gICAgICAgICAgICBjb25zdCBpbnRlcnBvbGF0ZWRBcyA9IHNob3VsZEludGVycG9sYXRlID8gaW50ZXJwb2xhdGVBcyhyb3V0ZSwgYXNQYXRobmFtZSwgcXVlcnkpIDoge1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmICghcm91dGVNYXRjaCB8fCBzaG91bGRJbnRlcnBvbGF0ZSAmJiAhaW50ZXJwb2xhdGVkQXMucmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWlzc2luZ1BhcmFtcyA9IE9iamVjdC5rZXlzKHJvdXRlUmVnZXguZ3JvdXBzKS5maWx0ZXIoKHBhcmFtKT0+IXF1ZXJ5W3BhcmFtXVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgaWYgKG1pc3NpbmdQYXJhbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGAke3Nob3VsZEludGVycG9sYXRlID8gYEludGVycG9sYXRpbmcgaHJlZmAgOiBgTWlzbWF0Y2hpbmcgXFxgYXNcXGAgYW5kIFxcYGhyZWZcXGBgfSBmYWlsZWQgdG8gbWFudWFsbHkgcHJvdmlkZSBgICsgYHRoZSBwYXJhbXM6ICR7bWlzc2luZ1BhcmFtcy5qb2luKCcsICcpfSBpbiB0aGUgXFxgaHJlZlxcYCdzIFxcYHF1ZXJ5XFxgYCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKChzaG91bGRJbnRlcnBvbGF0ZSA/IGBUaGUgcHJvdmlkZWQgXFxgaHJlZlxcYCAoJHt1cmx9KSB2YWx1ZSBpcyBtaXNzaW5nIHF1ZXJ5IHZhbHVlcyAoJHttaXNzaW5nUGFyYW1zLmpvaW4oJywgJyl9KSB0byBiZSBpbnRlcnBvbGF0ZWQgcHJvcGVybHkuIGAgOiBgVGhlIHByb3ZpZGVkIFxcYGFzXFxgIHZhbHVlICgke2FzUGF0aG5hbWV9KSBpcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgXFxgaHJlZlxcYCB2YWx1ZSAoJHtyb3V0ZX0pLiBgKSArIGBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzLyR7c2hvdWxkSW50ZXJwb2xhdGUgPyAnaHJlZi1pbnRlcnBvbGF0aW9uLWZhaWxlZCcgOiAnaW5jb21wYXRpYmxlLWhyZWYtYXMnfWApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoc2hvdWxkSW50ZXJwb2xhdGUpIHtcbiAgICAgICAgICAgICAgICBhcyA9ICgwLCBfdXRpbHMpLmZvcm1hdFdpdGhWYWxpZGF0aW9uKE9iamVjdC5hc3NpZ24oe1xuICAgICAgICAgICAgICAgIH0sIHBhcnNlZEFzLCB7XG4gICAgICAgICAgICAgICAgICAgIHBhdGhuYW1lOiBpbnRlcnBvbGF0ZWRBcy5yZXN1bHQsXG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5OiBvbWl0UGFybXNGcm9tUXVlcnkocXVlcnksIGludGVycG9sYXRlZEFzLnBhcmFtcylcbiAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIE1lcmdlIHBhcmFtcyBpbnRvIGBxdWVyeWAsIG92ZXJ3cml0aW5nIGFueSBzcGVjaWZpZWQgaW4gc2VhcmNoXG4gICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihxdWVyeSwgcm91dGVNYXRjaCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgUm91dGVyLmV2ZW50cy5lbWl0KCdyb3V0ZUNoYW5nZVN0YXJ0JywgYXMsIHJvdXRlUHJvcHMpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdmFyIHJlZiwgcmVmMTtcbiAgICAgICAgICAgIGxldCByb3V0ZUluZm8gPSBhd2FpdCB0aGlzLmdldFJvdXRlSW5mbyhyb3V0ZSwgcGF0aG5hbWUsIHF1ZXJ5LCBhcywgcmVzb2x2ZWRBcywgcm91dGVQcm9wcyk7XG4gICAgICAgICAgICBsZXQgeyBlcnJvciAsIHByb3BzICwgX19OX1NTRyAsIF9fTl9TU1AgIH0gPSByb3V0ZUluZm87XG4gICAgICAgICAgICAvLyBoYW5kbGUgcmVkaXJlY3Qgb24gY2xpZW50LXRyYW5zaXRpb25cbiAgICAgICAgICAgIGlmICgoX19OX1NTRyB8fCBfX05fU1NQKSAmJiBwcm9wcykge1xuICAgICAgICAgICAgICAgIGlmIChwcm9wcy5wYWdlUHJvcHMgJiYgcHJvcHMucGFnZVByb3BzLl9fTl9SRURJUkVDVCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkZXN0aW5hdGlvbiA9IHByb3BzLnBhZ2VQcm9wcy5fX05fUkVESVJFQ1Q7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNoZWNrIGlmIGRlc3RpbmF0aW9uIGlzIGludGVybmFsIChyZXNvbHZlcyB0byBhIHBhZ2UpIGFuZCBhdHRlbXB0XG4gICAgICAgICAgICAgICAgICAgIC8vIGNsaWVudC1uYXZpZ2F0aW9uIGlmIGl0IGlzIGZhbGxpbmcgYmFjayB0byBoYXJkIG5hdmlnYXRpb24gaWZcbiAgICAgICAgICAgICAgICAgICAgLy8gaXQncyBub3RcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRlc3RpbmF0aW9uLnN0YXJ0c1dpdGgoJy8nKSAmJiBwcm9wcy5wYWdlUHJvcHMuX19OX1JFRElSRUNUX0JBU0VfUEFUSCAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcnNlZEhyZWYgPSAoMCwgX3BhcnNlUmVsYXRpdmVVcmwpLnBhcnNlUmVsYXRpdmVVcmwoZGVzdGluYXRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VkSHJlZi5wYXRobmFtZSA9IHJlc29sdmVEeW5hbWljUm91dGUocGFyc2VkSHJlZi5wYXRobmFtZSwgcGFnZXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyB1cmw6IG5ld1VybCAsIGFzOiBuZXdBcyAgfSA9IHByZXBhcmVVcmxBcyh0aGlzLCBkZXN0aW5hdGlvbiwgZGVzdGluYXRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2hhbmdlKG1ldGhvZCwgbmV3VXJsLCBuZXdBcywgb3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBkZXN0aW5hdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKCgpPT57XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmlzUHJldmlldyA9ICEhcHJvcHMuX19OX1BSRVZJRVc7XG4gICAgICAgICAgICAgICAgLy8gaGFuZGxlIFNTRyBkYXRhIDQwNFxuICAgICAgICAgICAgICAgIGlmIChwcm9wcy5ub3RGb3VuZCA9PT0gU1NHX0RBVEFfTk9UX0ZPVU5EKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBub3RGb3VuZFJvdXRlO1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5mZXRjaENvbXBvbmVudCgnLzQwNCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbm90Rm91bmRSb3V0ZSA9ICcvNDA0JztcbiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoXykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbm90Rm91bmRSb3V0ZSA9ICcvX2Vycm9yJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByb3V0ZUluZm8gPSBhd2FpdCB0aGlzLmdldFJvdXRlSW5mbyhub3RGb3VuZFJvdXRlLCBub3RGb3VuZFJvdXRlLCBxdWVyeSwgYXMsIHJlc29sdmVkQXMsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNoYWxsb3c6IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFJvdXRlci5ldmVudHMuZW1pdCgnYmVmb3JlSGlzdG9yeUNoYW5nZScsIGFzLCByb3V0ZVByb3BzKTtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlU3RhdGUobWV0aG9kLCB1cmwsIGFzLCBvcHRpb25zKTtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLl9oICYmIHBhdGhuYW1lID09PSAnL19lcnJvcicgJiYgKChyZWYgPSBzZWxmLl9fTkVYVF9EQVRBX18ucHJvcHMpID09PSBudWxsIHx8IHJlZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogKHJlZjEgPSByZWYucGFnZVByb3BzKSA9PT0gbnVsbCB8fCByZWYxID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZWYxLnN0YXR1c0NvZGUpID09PSA1MDAgJiYgKHByb3BzID09PSBudWxsIHx8IHByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwcm9wcy5wYWdlUHJvcHMpKSB7XG4gICAgICAgICAgICAgICAgLy8gZW5zdXJlIHN0YXR1c0NvZGUgaXMgc3RpbGwgY29ycmVjdCBmb3Igc3RhdGljIDUwMCBwYWdlXG4gICAgICAgICAgICAgICAgLy8gd2hlbiB1cGRhdGluZyBxdWVyeSBpbmZvcm1hdGlvblxuICAgICAgICAgICAgICAgIHByb3BzLnBhZ2VQcm9wcy5zdGF0dXNDb2RlID0gNTAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gc2hhbGxvdyByb3V0aW5nIGlzIG9ubHkgYWxsb3dlZCBmb3Igc2FtZSBwYWdlIFVSTCBjaGFuZ2VzLlxuICAgICAgICAgICAgY29uc3QgaXNWYWxpZFNoYWxsb3dSb3V0ZSA9IG9wdGlvbnMuc2hhbGxvdyAmJiB0aGlzLnJvdXRlID09PSByb3V0ZTtcbiAgICAgICAgICAgIHZhciBfc2Nyb2xsO1xuICAgICAgICAgICAgY29uc3Qgc2hvdWxkU2Nyb2xsID0gKF9zY3JvbGwgPSBvcHRpb25zLnNjcm9sbCkgIT09IG51bGwgJiYgX3Njcm9sbCAhPT0gdm9pZCAwID8gX3Njcm9sbCA6ICFpc1ZhbGlkU2hhbGxvd1JvdXRlO1xuICAgICAgICAgICAgY29uc3QgcmVzZXRTY3JvbGwgPSBzaG91bGRTY3JvbGwgPyB7XG4gICAgICAgICAgICAgICAgeDogMCxcbiAgICAgICAgICAgICAgICB5OiAwXG4gICAgICAgICAgICB9IDogbnVsbDtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuc2V0KHJvdXRlLCBwYXRobmFtZSwgcXVlcnksIGNsZWFuZWRBcywgcm91dGVJbmZvLCBmb3JjZWRTY3JvbGwgIT09IG51bGwgJiYgZm9yY2VkU2Nyb2xsICE9PSB2b2lkIDAgPyBmb3JjZWRTY3JvbGwgOiByZXNldFNjcm9sbCkuY2F0Y2goKGUpPT57XG4gICAgICAgICAgICAgICAgaWYgKGUuY2FuY2VsbGVkKSBlcnJvciA9IGVycm9yIHx8IGU7XG4gICAgICAgICAgICAgICAgZWxzZSB0aHJvdyBlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBSb3V0ZXIuZXZlbnRzLmVtaXQoJ3JvdXRlQ2hhbmdlRXJyb3InLCBlcnJvciwgY2xlYW5lZEFzLCByb3V0ZVByb3BzKTtcbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubG9jYWxlKSB7XG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5sYW5nID0gdGhpcy5sb2NhbGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgUm91dGVyLmV2ZW50cy5lbWl0KCdyb3V0ZUNoYW5nZUNvbXBsZXRlJywgYXMsIHJvdXRlUHJvcHMpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gY2F0Y2ggKGVycjEpIHtcbiAgICAgICAgICAgIGlmICgoMCwgX2lzRXJyb3IpLmRlZmF1bHQoZXJyMSkgJiYgZXJyMS5jYW5jZWxsZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlcnIxO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNoYW5nZVN0YXRlKG1ldGhvZCwgdXJsLCBhcywgb3B0aW9ucyA9IHtcbiAgICB9KSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHdpbmRvdy5oaXN0b3J5ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFdhcm5pbmc6IHdpbmRvdy5oaXN0b3J5IGlzIG5vdCBhdmFpbGFibGUuYCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cuaGlzdG9yeVttZXRob2RdID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFdhcm5pbmc6IHdpbmRvdy5oaXN0b3J5LiR7bWV0aG9kfSBpcyBub3QgYXZhaWxhYmxlYCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChtZXRob2QgIT09ICdwdXNoU3RhdGUnIHx8ICgwLCBfdXRpbHMpLmdldFVSTCgpICE9PSBhcykge1xuICAgICAgICAgICAgdGhpcy5fc2hhbGxvdyA9IG9wdGlvbnMuc2hhbGxvdztcbiAgICAgICAgICAgIHdpbmRvdy5oaXN0b3J5W21ldGhvZF0oe1xuICAgICAgICAgICAgICAgIHVybCxcbiAgICAgICAgICAgICAgICBhcyxcbiAgICAgICAgICAgICAgICBvcHRpb25zLFxuICAgICAgICAgICAgICAgIF9fTjogdHJ1ZSxcbiAgICAgICAgICAgICAgICBpZHg6IHRoaXMuX2lkeCA9IG1ldGhvZCAhPT0gJ3B1c2hTdGF0ZScgPyB0aGlzLl9pZHggOiB0aGlzLl9pZHggKyAxXG4gICAgICAgICAgICB9LCAvLyBNb3N0IGJyb3dzZXJzIGN1cnJlbnRseSBpZ25vcmVzIHRoaXMgcGFyYW1ldGVyLCBhbHRob3VnaCB0aGV5IG1heSB1c2UgaXQgaW4gdGhlIGZ1dHVyZS5cbiAgICAgICAgICAgIC8vIFBhc3NpbmcgdGhlIGVtcHR5IHN0cmluZyBoZXJlIHNob3VsZCBiZSBzYWZlIGFnYWluc3QgZnV0dXJlIGNoYW5nZXMgdG8gdGhlIG1ldGhvZC5cbiAgICAgICAgICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9IaXN0b3J5L3JlcGxhY2VTdGF0ZVxuICAgICAgICAgICAgJycsIGFzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhc3luYyBoYW5kbGVSb3V0ZUluZm9FcnJvcihlcnIsIHBhdGhuYW1lLCBxdWVyeSwgYXMsIHJvdXRlUHJvcHMsIGxvYWRFcnJvckZhaWwpIHtcbiAgICAgICAgaWYgKGVyci5jYW5jZWxsZWQpIHtcbiAgICAgICAgICAgIC8vIGJ1YmJsZSB1cCBjYW5jZWxsYXRpb24gZXJyb3JzXG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCgwLCBfcm91dGVMb2FkZXIpLmlzQXNzZXRFcnJvcihlcnIpIHx8IGxvYWRFcnJvckZhaWwpIHtcbiAgICAgICAgICAgIFJvdXRlci5ldmVudHMuZW1pdCgncm91dGVDaGFuZ2VFcnJvcicsIGVyciwgYXMsIHJvdXRlUHJvcHMpO1xuICAgICAgICAgICAgLy8gSWYgd2UgY2FuJ3QgbG9hZCB0aGUgcGFnZSBpdCBjb3VsZCBiZSBvbmUgb2YgZm9sbG93aW5nIHJlYXNvbnNcbiAgICAgICAgICAgIC8vICAxLiBQYWdlIGRvZXNuJ3QgZXhpc3RzXG4gICAgICAgICAgICAvLyAgMi4gUGFnZSBkb2VzIGV4aXN0IGluIGEgZGlmZmVyZW50IHpvbmVcbiAgICAgICAgICAgIC8vICAzLiBJbnRlcm5hbCBlcnJvciB3aGlsZSBsb2FkaW5nIHRoZSBwYWdlXG4gICAgICAgICAgICAvLyBTbywgZG9pbmcgYSBoYXJkIHJlbG9hZCBpcyB0aGUgcHJvcGVyIHdheSB0byBkZWFsIHdpdGggdGhpcy5cbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYXM7XG4gICAgICAgICAgICAvLyBDaGFuZ2luZyB0aGUgVVJMIGRvZXNuJ3QgYmxvY2sgZXhlY3V0aW5nIHRoZSBjdXJyZW50IGNvZGUgcGF0aC5cbiAgICAgICAgICAgIC8vIFNvIGxldCdzIHRocm93IGEgY2FuY2VsbGF0aW9uIGVycm9yIHN0b3AgdGhlIHJvdXRpbmcgbG9naWMuXG4gICAgICAgICAgICB0aHJvdyBidWlsZENhbmNlbGxhdGlvbkVycm9yKCk7XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGxldCBDb21wb25lbnQ7XG4gICAgICAgICAgICBsZXQgc3R5bGVTaGVldHM7XG4gICAgICAgICAgICBsZXQgcHJvcHM7XG4gICAgICAgICAgICBpZiAodHlwZW9mIENvbXBvbmVudCA9PT0gJ3VuZGVmaW5lZCcgfHwgdHlwZW9mIHN0eWxlU2hlZXRzID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICh7IHBhZ2U6IENvbXBvbmVudCAsIHN0eWxlU2hlZXRzICB9ID0gYXdhaXQgdGhpcy5mZXRjaENvbXBvbmVudCgnL19lcnJvcicpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHJvdXRlSW5mbyA9IHtcbiAgICAgICAgICAgICAgICBwcm9wcyxcbiAgICAgICAgICAgICAgICBDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgc3R5bGVTaGVldHMsXG4gICAgICAgICAgICAgICAgZXJyLFxuICAgICAgICAgICAgICAgIGVycm9yOiBlcnJcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAoIXJvdXRlSW5mby5wcm9wcykge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIHJvdXRlSW5mby5wcm9wcyA9IGF3YWl0IHRoaXMuZ2V0SW5pdGlhbFByb3BzKENvbXBvbmVudCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXJyLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBxdWVyeVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChnaXBFcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gZXJyb3IgcGFnZSBgZ2V0SW5pdGlhbFByb3BzYDogJywgZ2lwRXJyKTtcbiAgICAgICAgICAgICAgICAgICAgcm91dGVJbmZvLnByb3BzID0ge1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByb3V0ZUluZm87XG4gICAgICAgIH0gY2F0Y2ggKHJvdXRlSW5mb0Vycikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlUm91dGVJbmZvRXJyb3IoKDAsIF9pc0Vycm9yKS5kZWZhdWx0KHJvdXRlSW5mb0VycikgPyByb3V0ZUluZm9FcnIgOiBuZXcgRXJyb3Iocm91dGVJbmZvRXJyICsgJycpLCBwYXRobmFtZSwgcXVlcnksIGFzLCByb3V0ZVByb3BzLCB0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhc3luYyBnZXRSb3V0ZUluZm8ocm91dGUsIHBhdGhuYW1lLCBxdWVyeSwgYXMsIHJlc29sdmVkQXMsIHJvdXRlUHJvcHMpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nUm91dGVJbmZvID0gdGhpcy5jb21wb25lbnRzW3JvdXRlXTtcbiAgICAgICAgICAgIGlmIChyb3V0ZVByb3BzLnNoYWxsb3cgJiYgZXhpc3RpbmdSb3V0ZUluZm8gJiYgdGhpcy5yb3V0ZSA9PT0gcm91dGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZXhpc3RpbmdSb3V0ZUluZm87XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgY2FjaGVkUm91dGVJbmZvID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgLy8gY2FuIG9ubHkgdXNlIG5vbi1pbml0aWFsIHJvdXRlIGluZm9cbiAgICAgICAgICAgIC8vIGNhbm5vdCByZXVzZSByb3V0ZSBpbmZvIGluIGRldmVsb3BtZW50IHNpbmNlIGl0IGNhbiBjaGFuZ2UgYWZ0ZXIgSE1SXG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdkZXZlbG9wbWVudCcgJiYgZXhpc3RpbmdSb3V0ZUluZm8gJiYgISgnaW5pdGlhbCcgaW4gZXhpc3RpbmdSb3V0ZUluZm8pKSB7XG4gICAgICAgICAgICAgICAgY2FjaGVkUm91dGVJbmZvID0gZXhpc3RpbmdSb3V0ZUluZm87XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCByb3V0ZUluZm8gPSBjYWNoZWRSb3V0ZUluZm8gfHwgYXdhaXQgdGhpcy5mZXRjaENvbXBvbmVudChyb3V0ZSkudGhlbigocmVzKT0+KHtcbiAgICAgICAgICAgICAgICAgICAgQ29tcG9uZW50OiByZXMucGFnZSxcbiAgICAgICAgICAgICAgICAgICAgc3R5bGVTaGVldHM6IHJlcy5zdHlsZVNoZWV0cyxcbiAgICAgICAgICAgICAgICAgICAgX19OX1NTRzogcmVzLm1vZC5fX05fU1NHLFxuICAgICAgICAgICAgICAgICAgICBfX05fU1NQOiByZXMubW9kLl9fTl9TU1AsXG4gICAgICAgICAgICAgICAgICAgIF9fTl9SU0M6ICEhcmVzLnBhZ2UuX19uZXh0X3JzY19fXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjb25zdCB7IENvbXBvbmVudCAsIF9fTl9TU0cgLCBfX05fU1NQICwgX19OX1JTQyAgfSA9IHJvdXRlSW5mbztcbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBpc1ZhbGlkRWxlbWVudFR5cGUgIH0gPSByZXF1aXJlKCdyZWFjdC1pcycpO1xuICAgICAgICAgICAgICAgIGlmICghaXNWYWxpZEVsZW1lbnRUeXBlKENvbXBvbmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgZGVmYXVsdCBleHBvcnQgaXMgbm90IGEgUmVhY3QgQ29tcG9uZW50IGluIHBhZ2U6IFwiJHtwYXRobmFtZX1cImApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBkYXRhSHJlZjtcbiAgICAgICAgICAgIGlmIChfX05fU1NHIHx8IF9fTl9TU1AgfHwgX19OX1JTQykge1xuICAgICAgICAgICAgICAgIGRhdGFIcmVmID0gdGhpcy5wYWdlTG9hZGVyLmdldERhdGFIcmVmKHtcbiAgICAgICAgICAgICAgICAgICAgaHJlZjogKDAsIF91dGlscykuZm9ybWF0V2l0aFZhbGlkYXRpb24oe1xuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBxdWVyeVxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgYXNQYXRoOiByZXNvbHZlZEFzLFxuICAgICAgICAgICAgICAgICAgICBzc2c6IF9fTl9TU0csXG4gICAgICAgICAgICAgICAgICAgIHJzYzogX19OX1JTQyxcbiAgICAgICAgICAgICAgICAgICAgbG9jYWxlOiB0aGlzLmxvY2FsZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgcHJvcHMgPSBhd2FpdCB0aGlzLl9nZXREYXRhKCgpPT5fX05fU1NHIHx8IF9fTl9TU1AgPyBmZXRjaE5leHREYXRhKGRhdGFIcmVmLCB0aGlzLmlzU3NyLCBmYWxzZSwgX19OX1NTRyA/IHRoaXMuc2RjIDogdGhpcy5zZHIsICEhX19OX1NTRyAmJiAhdGhpcy5pc1ByZXZpZXcpIDogdGhpcy5nZXRJbml0aWFsUHJvcHMoQ29tcG9uZW50LCAvLyB3ZSBwcm92aWRlIEFwcFRyZWUgbGF0ZXIgc28gdGhpcyBuZWVkcyB0byBiZSBgYW55YFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5LFxuICAgICAgICAgICAgICAgICAgICBhc1BhdGg6IGFzLFxuICAgICAgICAgICAgICAgICAgICBsb2NhbGU6IHRoaXMubG9jYWxlLFxuICAgICAgICAgICAgICAgICAgICBsb2NhbGVzOiB0aGlzLmxvY2FsZXMsXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRMb2NhbGU6IHRoaXMuZGVmYXVsdExvY2FsZVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKF9fTl9SU0MpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGZyZXNoICwgZGF0YSAgfSA9IGF3YWl0IHRoaXMuX2dldERhdGEoKCk9PnRoaXMuX2dldEZsaWdodERhdGEoZGF0YUhyZWYpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBwcm9wcy5wYWdlUHJvcHMgPSBPYmplY3QuYXNzaWduKHByb3BzLnBhZ2VQcm9wcywge1xuICAgICAgICAgICAgICAgICAgICBfX2ZsaWdodF9zZXJpYWxpemVkX186IGRhdGEsXG4gICAgICAgICAgICAgICAgICAgIF9fZmxpZ2h0X2ZyZXNoX186IGZyZXNoXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByb3V0ZUluZm8ucHJvcHMgPSBwcm9wcztcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50c1tyb3V0ZV0gPSByb3V0ZUluZm87XG4gICAgICAgICAgICByZXR1cm4gcm91dGVJbmZvO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmhhbmRsZVJvdXRlSW5mb0Vycm9yKCgwLCBfaXNFcnJvcikuZGVmYXVsdChlcnIpID8gZXJyIDogbmV3IEVycm9yKGVyciArICcnKSwgcGF0aG5hbWUsIHF1ZXJ5LCBhcywgcm91dGVQcm9wcyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc2V0KHJvdXRlLCBwYXRobmFtZSwgcXVlcnksIGFzLCBkYXRhLCByZXNldFNjcm9sbCkge1xuICAgICAgICB0aGlzLmlzRmFsbGJhY2sgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5yb3V0ZSA9IHJvdXRlO1xuICAgICAgICB0aGlzLnBhdGhuYW1lID0gcGF0aG5hbWU7XG4gICAgICAgIHRoaXMucXVlcnkgPSBxdWVyeTtcbiAgICAgICAgdGhpcy5hc1BhdGggPSBhcztcbiAgICAgICAgcmV0dXJuIHRoaXMubm90aWZ5KGRhdGEsIHJlc2V0U2Nyb2xsKTtcbiAgICB9XG4gICAgLyoqXG4gICAqIENhbGxiYWNrIHRvIGV4ZWN1dGUgYmVmb3JlIHJlcGxhY2luZyByb3V0ZXIgc3RhdGVcbiAgICogQHBhcmFtIGNiIGNhbGxiYWNrIHRvIGJlIGV4ZWN1dGVkXG4gICAqLyBiZWZvcmVQb3BTdGF0ZShjYikge1xuICAgICAgICB0aGlzLl9icHMgPSBjYjtcbiAgICB9XG4gICAgb25seUFIYXNoQ2hhbmdlKGFzKSB7XG4gICAgICAgIGlmICghdGhpcy5hc1BhdGgpIHJldHVybiBmYWxzZTtcbiAgICAgICAgY29uc3QgW29sZFVybE5vSGFzaCwgb2xkSGFzaF0gPSB0aGlzLmFzUGF0aC5zcGxpdCgnIycpO1xuICAgICAgICBjb25zdCBbbmV3VXJsTm9IYXNoLCBuZXdIYXNoXSA9IGFzLnNwbGl0KCcjJyk7XG4gICAgICAgIC8vIE1ha2VzIHN1cmUgd2Ugc2Nyb2xsIHRvIHRoZSBwcm92aWRlZCBoYXNoIGlmIHRoZSB1cmwvaGFzaCBhcmUgdGhlIHNhbWVcbiAgICAgICAgaWYgKG5ld0hhc2ggJiYgb2xkVXJsTm9IYXNoID09PSBuZXdVcmxOb0hhc2ggJiYgb2xkSGFzaCA9PT0gbmV3SGFzaCkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYgdGhlIHVybHMgYXJlIGNoYW5nZSwgdGhlcmUncyBtb3JlIHRoYW4gYSBoYXNoIGNoYW5nZVxuICAgICAgICBpZiAob2xkVXJsTm9IYXNoICE9PSBuZXdVcmxOb0hhc2gpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBJZiB0aGUgaGFzaCBoYXMgY2hhbmdlZCwgdGhlbiBpdCdzIGEgaGFzaCBvbmx5IGNoYW5nZS5cbiAgICAgICAgLy8gVGhpcyBjaGVjayBpcyBuZWNlc3NhcnkgdG8gaGFuZGxlIGJvdGggdGhlIGVudGVyIGFuZFxuICAgICAgICAvLyBsZWF2ZSBoYXNoID09PSAnJyBjYXNlcy4gVGhlIGlkZW50aXR5IGNhc2UgZmFsbHMgdGhyb3VnaFxuICAgICAgICAvLyBhbmQgaXMgdHJlYXRlZCBhcyBhIG5leHQgcmVsb2FkLlxuICAgICAgICByZXR1cm4gb2xkSGFzaCAhPT0gbmV3SGFzaDtcbiAgICB9XG4gICAgc2Nyb2xsVG9IYXNoKGFzKSB7XG4gICAgICAgIGNvbnN0IFssIGhhc2hdID0gYXMuc3BsaXQoJyMnKTtcbiAgICAgICAgLy8gU2Nyb2xsIHRvIHRvcCBpZiB0aGUgaGFzaCBpcyBqdXN0IGAjYCB3aXRoIG5vIHZhbHVlIG9yIGAjdG9wYFxuICAgICAgICAvLyBUbyBtaXJyb3IgYnJvd3NlcnNcbiAgICAgICAgaWYgKGhhc2ggPT09ICcnIHx8IGhhc2ggPT09ICd0b3AnKSB7XG4gICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgMCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gRmlyc3Qgd2UgY2hlY2sgaWYgdGhlIGVsZW1lbnQgYnkgaWQgaXMgZm91bmRcbiAgICAgICAgY29uc3QgaWRFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGhhc2gpO1xuICAgICAgICBpZiAoaWRFbCkge1xuICAgICAgICAgICAgaWRFbC5zY3JvbGxJbnRvVmlldygpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIElmIHRoZXJlJ3Mgbm8gZWxlbWVudCB3aXRoIHRoZSBpZCwgd2UgY2hlY2sgdGhlIGBuYW1lYCBwcm9wZXJ0eVxuICAgICAgICAvLyBUbyBtaXJyb3IgYnJvd3NlcnNcbiAgICAgICAgY29uc3QgbmFtZUVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoaGFzaClbMF07XG4gICAgICAgIGlmIChuYW1lRWwpIHtcbiAgICAgICAgICAgIG5hbWVFbC5zY3JvbGxJbnRvVmlldygpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHVybElzTmV3KGFzUGF0aCkge1xuICAgICAgICByZXR1cm4gdGhpcy5hc1BhdGggIT09IGFzUGF0aDtcbiAgICB9XG4gICAgLyoqXG4gICAqIFByZWZldGNoIHBhZ2UgY29kZSwgeW91IG1heSB3YWl0IGZvciB0aGUgZGF0YSBkdXJpbmcgcGFnZSByZW5kZXJpbmcuXG4gICAqIFRoaXMgZmVhdHVyZSBvbmx5IHdvcmtzIGluIHByb2R1Y3Rpb24hXG4gICAqIEBwYXJhbSB1cmwgdGhlIGhyZWYgb2YgcHJlZmV0Y2hlZCBwYWdlXG4gICAqIEBwYXJhbSBhc1BhdGggdGhlIGFzIHBhdGggb2YgdGhlIHByZWZldGNoZWQgcGFnZVxuICAgKi8gYXN5bmMgcHJlZmV0Y2godXJsLCBhc1BhdGggPSB1cmwsIG9wdGlvbnMgPSB7XG4gICAgfSkge1xuICAgICAgICBsZXQgcGFyc2VkID0gKDAsIF9wYXJzZVJlbGF0aXZlVXJsKS5wYXJzZVJlbGF0aXZlVXJsKHVybCk7XG4gICAgICAgIGxldCB7IHBhdGhuYW1lICwgcXVlcnkgIH0gPSBwYXJzZWQ7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5sb2NhbGUgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgcGF0aG5hbWUgPSAoMCwgX25vcm1hbGl6ZUxvY2FsZVBhdGgpLm5vcm1hbGl6ZUxvY2FsZVBhdGgocGF0aG5hbWUsIHRoaXMubG9jYWxlcykucGF0aG5hbWU7XG4gICAgICAgICAgICAgICAgcGFyc2VkLnBhdGhuYW1lID0gcGF0aG5hbWU7XG4gICAgICAgICAgICAgICAgdXJsID0gKDAsIF91dGlscykuZm9ybWF0V2l0aFZhbGlkYXRpb24ocGFyc2VkKTtcbiAgICAgICAgICAgICAgICBsZXQgcGFyc2VkQXMgPSAoMCwgX3BhcnNlUmVsYXRpdmVVcmwpLnBhcnNlUmVsYXRpdmVVcmwoYXNQYXRoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBsb2NhbGVQYXRoUmVzdWx0ID0gKDAsIF9ub3JtYWxpemVMb2NhbGVQYXRoKS5ub3JtYWxpemVMb2NhbGVQYXRoKHBhcnNlZEFzLnBhdGhuYW1lLCB0aGlzLmxvY2FsZXMpO1xuICAgICAgICAgICAgICAgIHBhcnNlZEFzLnBhdGhuYW1lID0gbG9jYWxlUGF0aFJlc3VsdC5wYXRobmFtZTtcbiAgICAgICAgICAgICAgICBvcHRpb25zLmxvY2FsZSA9IGxvY2FsZVBhdGhSZXN1bHQuZGV0ZWN0ZWRMb2NhbGUgfHwgdGhpcy5kZWZhdWx0TG9jYWxlO1xuICAgICAgICAgICAgICAgIGFzUGF0aCA9ICgwLCBfdXRpbHMpLmZvcm1hdFdpdGhWYWxpZGF0aW9uKHBhcnNlZEFzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYWdlcyA9IGF3YWl0IHRoaXMucGFnZUxvYWRlci5nZXRQYWdlTGlzdCgpO1xuICAgICAgICBsZXQgcmVzb2x2ZWRBcyA9IGFzUGF0aDtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9IQVNfUkVXUklURVMgJiYgYXNQYXRoLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgICAgICAgbGV0IHJld3JpdGVzO1xuICAgICAgICAgICAgKHsgX19yZXdyaXRlczogcmV3cml0ZXMgIH0gPSBhd2FpdCAoMCwgX3JvdXRlTG9hZGVyKS5nZXRDbGllbnRCdWlsZE1hbmlmZXN0KCkpO1xuICAgICAgICAgICAgY29uc3QgcmV3cml0ZXNSZXN1bHQgPSAoMCwgX3Jlc29sdmVSZXdyaXRlcykuZGVmYXVsdChhZGRCYXNlUGF0aChhZGRMb2NhbGUoYXNQYXRoLCB0aGlzLmxvY2FsZSkpLCBwYWdlcywgcmV3cml0ZXMsIHBhcnNlZC5xdWVyeSwgKHApPT5yZXNvbHZlRHluYW1pY1JvdXRlKHAsIHBhZ2VzKVxuICAgICAgICAgICAgLCB0aGlzLmxvY2FsZXMpO1xuICAgICAgICAgICAgcmVzb2x2ZWRBcyA9IGRlbExvY2FsZShkZWxCYXNlUGF0aChyZXdyaXRlc1Jlc3VsdC5hc1BhdGgpLCB0aGlzLmxvY2FsZSk7XG4gICAgICAgICAgICBpZiAocmV3cml0ZXNSZXN1bHQubWF0Y2hlZFBhZ2UgJiYgcmV3cml0ZXNSZXN1bHQucmVzb2x2ZWRIcmVmKSB7XG4gICAgICAgICAgICAgICAgLy8gaWYgdGhpcyBkaXJlY3RseSBtYXRjaGVzIGEgcGFnZSB3ZSBuZWVkIHRvIHVwZGF0ZSB0aGUgaHJlZiB0b1xuICAgICAgICAgICAgICAgIC8vIGFsbG93IHRoZSBjb3JyZWN0IHBhZ2UgY2h1bmsgdG8gYmUgbG9hZGVkXG4gICAgICAgICAgICAgICAgcGF0aG5hbWUgPSByZXdyaXRlc1Jlc3VsdC5yZXNvbHZlZEhyZWY7XG4gICAgICAgICAgICAgICAgcGFyc2VkLnBhdGhuYW1lID0gcGF0aG5hbWU7XG4gICAgICAgICAgICAgICAgdXJsID0gKDAsIF91dGlscykuZm9ybWF0V2l0aFZhbGlkYXRpb24ocGFyc2VkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBhcnNlZC5wYXRobmFtZSA9IHJlc29sdmVEeW5hbWljUm91dGUocGFyc2VkLnBhdGhuYW1lLCBwYWdlcyk7XG4gICAgICAgICAgICBpZiAocGFyc2VkLnBhdGhuYW1lICE9PSBwYXRobmFtZSkge1xuICAgICAgICAgICAgICAgIHBhdGhuYW1lID0gcGFyc2VkLnBhdGhuYW1lO1xuICAgICAgICAgICAgICAgIHBhcnNlZC5wYXRobmFtZSA9IHBhdGhuYW1lO1xuICAgICAgICAgICAgICAgIHVybCA9ICgwLCBfdXRpbHMpLmZvcm1hdFdpdGhWYWxpZGF0aW9uKHBhcnNlZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gUHJlZmV0Y2ggaXMgbm90IHN1cHBvcnRlZCBpbiBkZXZlbG9wbWVudCBtb2RlIGJlY2F1c2UgaXQgd291bGQgdHJpZ2dlciBvbi1kZW1hbmQtZW50cmllc1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVmZmVjdHMgPSBhd2FpdCB0aGlzLl9wcmVmbGlnaHRSZXF1ZXN0KHtcbiAgICAgICAgICAgIGFzOiBhZGRCYXNlUGF0aChhc1BhdGgpLFxuICAgICAgICAgICAgY2FjaGU6IHRydWUsXG4gICAgICAgICAgICBwYWdlcyxcbiAgICAgICAgICAgIHBhdGhuYW1lLFxuICAgICAgICAgICAgcXVlcnlcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChlZmZlY3RzLnR5cGUgPT09ICdyZXdyaXRlJykge1xuICAgICAgICAgICAgcGFyc2VkLnBhdGhuYW1lID0gZWZmZWN0cy5yZXNvbHZlZEhyZWY7XG4gICAgICAgICAgICBwYXRobmFtZSA9IGVmZmVjdHMucmVzb2x2ZWRIcmVmO1xuICAgICAgICAgICAgcXVlcnkgPSB7XG4gICAgICAgICAgICAgICAgLi4ucXVlcnksXG4gICAgICAgICAgICAgICAgLi4uZWZmZWN0cy5wYXJzZWRBcy5xdWVyeVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJlc29sdmVkQXMgPSBlZmZlY3RzLmFzUGF0aDtcbiAgICAgICAgICAgIHVybCA9ICgwLCBfdXRpbHMpLmZvcm1hdFdpdGhWYWxpZGF0aW9uKHBhcnNlZCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgcm91dGUgPSAoMCwgX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2gpLnJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoKHBhdGhuYW1lKTtcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgICAgICAgdGhpcy5wYWdlTG9hZGVyLl9pc1NzZyhyb3V0ZSkudGhlbigoaXNTc2cpPT57XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzU3NnID8gZmV0Y2hOZXh0RGF0YSh0aGlzLnBhZ2VMb2FkZXIuZ2V0RGF0YUhyZWYoe1xuICAgICAgICAgICAgICAgICAgICBocmVmOiB1cmwsXG4gICAgICAgICAgICAgICAgICAgIGFzUGF0aDogcmVzb2x2ZWRBcyxcbiAgICAgICAgICAgICAgICAgICAgc3NnOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBsb2NhbGU6IHR5cGVvZiBvcHRpb25zLmxvY2FsZSAhPT0gJ3VuZGVmaW5lZCcgPyBvcHRpb25zLmxvY2FsZSA6IHRoaXMubG9jYWxlXG4gICAgICAgICAgICAgICAgfSksIGZhbHNlLCBmYWxzZSwgdGhpcy5zZGMsIHRydWUpIDogZmFsc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHRoaXMucGFnZUxvYWRlcltvcHRpb25zLnByaW9yaXR5ID8gJ2xvYWRQYWdlJyA6ICdwcmVmZXRjaCddKHJvdXRlKSwgXG4gICAgICAgIF0pO1xuICAgIH1cbiAgICBhc3luYyBmZXRjaENvbXBvbmVudChyb3V0ZSkge1xuICAgICAgICBsZXQgY2FuY2VsbGVkID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IGNhbmNlbCA9IHRoaXMuY2xjID0gKCk9PntcbiAgICAgICAgICAgIGNhbmNlbGxlZCA9IHRydWU7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGhhbmRsZUNhbmNlbGxlZCA9ICgpPT57XG4gICAgICAgICAgICBpZiAoY2FuY2VsbGVkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoYEFib3J0IGZldGNoaW5nIGNvbXBvbmVudCBmb3Igcm91dGU6IFwiJHtyb3V0ZX1cImApO1xuICAgICAgICAgICAgICAgIGVycm9yLmNhbmNlbGxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY2FuY2VsID09PSB0aGlzLmNsYykge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xjID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudFJlc3VsdCA9IGF3YWl0IHRoaXMucGFnZUxvYWRlci5sb2FkUGFnZShyb3V0ZSk7XG4gICAgICAgICAgICBoYW5kbGVDYW5jZWxsZWQoKTtcbiAgICAgICAgICAgIHJldHVybiBjb21wb25lbnRSZXN1bHQ7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgaGFuZGxlQ2FuY2VsbGVkKCk7XG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2dldERhdGEoZm4pIHtcbiAgICAgICAgbGV0IGNhbmNlbGxlZCA9IGZhbHNlO1xuICAgICAgICBjb25zdCBjYW5jZWwgPSAoKT0+e1xuICAgICAgICAgICAgY2FuY2VsbGVkID0gdHJ1ZTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5jbGMgPSBjYW5jZWw7XG4gICAgICAgIHJldHVybiBmbigpLnRoZW4oKGRhdGEpPT57XG4gICAgICAgICAgICBpZiAoY2FuY2VsID09PSB0aGlzLmNsYykge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xjID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjYW5jZWxsZWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlcnIgPSBuZXcgRXJyb3IoJ0xvYWRpbmcgaW5pdGlhbCBwcm9wcyBjYW5jZWxsZWQnKTtcbiAgICAgICAgICAgICAgICBlcnIuY2FuY2VsbGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIF9nZXRGbGlnaHREYXRhKGRhdGFIcmVmKSB7XG4gICAgICAgIGNvbnN0IHsgaHJlZjogY2FjaGVLZXkgIH0gPSBuZXcgVVJMKGRhdGFIcmVmLCB3aW5kb3cubG9jYXRpb24uaHJlZik7XG4gICAgICAgIGlmICghdGhpcy5pc1ByZXZpZXcgJiYgdGhpcy5zZGNbY2FjaGVLZXldKSB7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgICAgICAgICAgICBmcmVzaDogZmFsc2UsXG4gICAgICAgICAgICAgICAgZGF0YTogdGhpcy5zZGNbY2FjaGVLZXldXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmV0Y2hOZXh0RGF0YShkYXRhSHJlZiwgdHJ1ZSwgdHJ1ZSwgdGhpcy5zZGMsIGZhbHNlKS50aGVuKChzZXJpYWxpemVkKT0+e1xuICAgICAgICAgICAgdGhpcy5zZGNbY2FjaGVLZXldID0gc2VyaWFsaXplZDtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgZnJlc2g6IHRydWUsXG4gICAgICAgICAgICAgICAgZGF0YTogc2VyaWFsaXplZFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGFzeW5jIF9wcmVmbGlnaHRSZXF1ZXN0KG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIHJlZjtcbiAgICAgICAgY29uc3QgY2xlYW5lZEFzID0gZGVsTG9jYWxlKGhhc0Jhc2VQYXRoKG9wdGlvbnMuYXMpID8gZGVsQmFzZVBhdGgob3B0aW9ucy5hcykgOiBvcHRpb25zLmFzLCB0aGlzLmxvY2FsZSk7XG4gICAgICAgIGNvbnN0IGZucyA9IGF3YWl0IHRoaXMucGFnZUxvYWRlci5nZXRNaWRkbGV3YXJlTGlzdCgpO1xuICAgICAgICBjb25zdCByZXF1aXJlc1ByZWZsaWdodCA9IGZucy5zb21lKChbbWlkZGxld2FyZSwgaXNTU1JdKT0+e1xuICAgICAgICAgICAgcmV0dXJuICgwLCBfcm91dGVNYXRjaGVyKS5nZXRSb3V0ZU1hdGNoZXIoKDAsIF9nZXRNaWRkbGV3YXJlUmVnZXgpLmdldE1pZGRsZXdhcmVSZWdleChtaWRkbGV3YXJlLCAhaXNTU1IpKShjbGVhbmVkQXMpO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKCFyZXF1aXJlc1ByZWZsaWdodCkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnbmV4dCdcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcHJlZmxpZ2h0ID0gYXdhaXQgdGhpcy5fZ2V0UHJlZmxpZ2h0RGF0YSh7XG4gICAgICAgICAgICBwcmVmbGlnaHRIcmVmOiBvcHRpb25zLmFzLFxuICAgICAgICAgICAgc2hvdWxkQ2FjaGU6IG9wdGlvbnMuY2FjaGVcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICgocmVmID0gcHJlZmxpZ2h0LnJld3JpdGUpID09PSBudWxsIHx8IHJlZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVmLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgICAgICAgY29uc3QgcGFyc2VkID0gKDAsIF9wYXJzZVJlbGF0aXZlVXJsKS5wYXJzZVJlbGF0aXZlVXJsKCgwLCBfbm9ybWFsaXplTG9jYWxlUGF0aCkubm9ybWFsaXplTG9jYWxlUGF0aChoYXNCYXNlUGF0aChwcmVmbGlnaHQucmV3cml0ZSkgPyBkZWxCYXNlUGF0aChwcmVmbGlnaHQucmV3cml0ZSkgOiBwcmVmbGlnaHQucmV3cml0ZSwgdGhpcy5sb2NhbGVzKS5wYXRobmFtZSk7XG4gICAgICAgICAgICBjb25zdCBmc1BhdGhuYW1lID0gKDAsIF9ub3JtYWxpemVUcmFpbGluZ1NsYXNoKS5yZW1vdmVQYXRoVHJhaWxpbmdTbGFzaChwYXJzZWQucGF0aG5hbWUpO1xuICAgICAgICAgICAgbGV0IG1hdGNoZWRQYWdlO1xuICAgICAgICAgICAgbGV0IHJlc29sdmVkSHJlZjtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLnBhZ2VzLmluY2x1ZGVzKGZzUGF0aG5hbWUpKSB7XG4gICAgICAgICAgICAgICAgbWF0Y2hlZFBhZ2UgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHJlc29sdmVkSHJlZiA9IGZzUGF0aG5hbWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlc29sdmVkSHJlZiA9IHJlc29sdmVEeW5hbWljUm91dGUoZnNQYXRobmFtZSwgb3B0aW9ucy5wYWdlcyk7XG4gICAgICAgICAgICAgICAgaWYgKHJlc29sdmVkSHJlZiAhPT0gcGFyc2VkLnBhdGhuYW1lICYmIG9wdGlvbnMucGFnZXMuaW5jbHVkZXMocmVzb2x2ZWRIcmVmKSkge1xuICAgICAgICAgICAgICAgICAgICBtYXRjaGVkUGFnZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB0eXBlOiAncmV3cml0ZScsXG4gICAgICAgICAgICAgICAgYXNQYXRoOiBwYXJzZWQucGF0aG5hbWUsXG4gICAgICAgICAgICAgICAgcGFyc2VkQXM6IHBhcnNlZCxcbiAgICAgICAgICAgICAgICBtYXRjaGVkUGFnZSxcbiAgICAgICAgICAgICAgICByZXNvbHZlZEhyZWZcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByZWZsaWdodC5yZWRpcmVjdCkge1xuICAgICAgICAgICAgaWYgKHByZWZsaWdodC5yZWRpcmVjdC5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjbGVhblJlZGlyZWN0ID0gKDAsIF9ub3JtYWxpemVUcmFpbGluZ1NsYXNoKS5yZW1vdmVQYXRoVHJhaWxpbmdTbGFzaCgoMCwgX25vcm1hbGl6ZUxvY2FsZVBhdGgpLm5vcm1hbGl6ZUxvY2FsZVBhdGgoaGFzQmFzZVBhdGgocHJlZmxpZ2h0LnJlZGlyZWN0KSA/IGRlbEJhc2VQYXRoKHByZWZsaWdodC5yZWRpcmVjdCkgOiBwcmVmbGlnaHQucmVkaXJlY3QsIHRoaXMubG9jYWxlcykucGF0aG5hbWUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgdXJsOiBuZXdVcmwgLCBhczogbmV3QXMgIH0gPSBwcmVwYXJlVXJsQXModGhpcywgY2xlYW5SZWRpcmVjdCwgY2xlYW5SZWRpcmVjdCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3JlZGlyZWN0JyxcbiAgICAgICAgICAgICAgICAgICAgbmV3VXJsLFxuICAgICAgICAgICAgICAgICAgICBuZXdBc1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdyZWRpcmVjdCcsXG4gICAgICAgICAgICAgICAgZGVzdGluYXRpb246IHByZWZsaWdodC5yZWRpcmVjdFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICAvLyBGb3IgU1NSIHJlcXVlc3RzLCB0aGV5IHdpbGwgYmUgaGFuZGxlZCBsaWtlIG5vcm1hbCBwYWdlcy5cbiAgICAgICAgaWYgKHByZWZsaWdodC5yZWZyZXNoICYmICFwcmVmbGlnaHQuc3NyKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdyZWZyZXNoJ1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogJ25leHQnXG4gICAgICAgIH07XG4gICAgfVxuICAgIF9nZXRQcmVmbGlnaHREYXRhKHBhcmFtcykge1xuICAgICAgICBjb25zdCB7IHByZWZsaWdodEhyZWYgLCBzaG91bGRDYWNoZSA9ZmFsc2UgIH0gPSBwYXJhbXM7XG4gICAgICAgIGNvbnN0IHsgaHJlZjogY2FjaGVLZXkgIH0gPSBuZXcgVVJMKHByZWZsaWdodEhyZWYsIHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicgJiYgIXRoaXMuaXNQcmV2aWV3ICYmIHNob3VsZENhY2hlICYmIHRoaXMuc2RlW2NhY2hlS2V5XSkge1xuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLnNkZVtjYWNoZUtleV0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmZXRjaChwcmVmbGlnaHRIcmVmLCB7XG4gICAgICAgICAgICBtZXRob2Q6ICdIRUFEJyxcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzOiAnc2FtZS1vcmlnaW4nLFxuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICd4LW1pZGRsZXdhcmUtcHJlZmxpZ2h0JzogJzEnXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLnRoZW4oKHJlcyk9PntcbiAgICAgICAgICAgIGlmICghcmVzLm9rKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gcHJlZmxpZ2h0IHJlcXVlc3RgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVkaXJlY3Q6IHJlcy5oZWFkZXJzLmdldCgnTG9jYXRpb24nKSxcbiAgICAgICAgICAgICAgICByZWZyZXNoOiByZXMuaGVhZGVycy5oYXMoJ3gtbWlkZGxld2FyZS1yZWZyZXNoJyksXG4gICAgICAgICAgICAgICAgcmV3cml0ZTogcmVzLmhlYWRlcnMuZ2V0KCd4LW1pZGRsZXdhcmUtcmV3cml0ZScpLFxuICAgICAgICAgICAgICAgIHNzcjogISFyZXMuaGVhZGVycy5nZXQoJ3gtbWlkZGxld2FyZS1zc3InKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSkudGhlbigoZGF0YSk9PntcbiAgICAgICAgICAgIGlmIChzaG91bGRDYWNoZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2RlW2NhY2hlS2V5XSA9IGRhdGE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgICAgfSkuY2F0Y2goKGVycik9PntcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnNkZVtjYWNoZUtleV07XG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBnZXRJbml0aWFsUHJvcHMoQ29tcG9uZW50LCBjdHgpIHtcbiAgICAgICAgY29uc3QgeyBDb21wb25lbnQ6IEFwcCAgfSA9IHRoaXMuY29tcG9uZW50c1snL19hcHAnXTtcbiAgICAgICAgY29uc3QgQXBwVHJlZSA9IHRoaXMuX3dyYXBBcHAoQXBwKTtcbiAgICAgICAgY3R4LkFwcFRyZWUgPSBBcHBUcmVlO1xuICAgICAgICByZXR1cm4gKDAsIF91dGlscykubG9hZEdldEluaXRpYWxQcm9wcyhBcHAsIHtcbiAgICAgICAgICAgIEFwcFRyZWUsXG4gICAgICAgICAgICBDb21wb25lbnQsXG4gICAgICAgICAgICByb3V0ZXI6IHRoaXMsXG4gICAgICAgICAgICBjdHhcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGFib3J0Q29tcG9uZW50TG9hZChhcywgcm91dGVQcm9wcykge1xuICAgICAgICBpZiAodGhpcy5jbGMpIHtcbiAgICAgICAgICAgIFJvdXRlci5ldmVudHMuZW1pdCgncm91dGVDaGFuZ2VFcnJvcicsIGJ1aWxkQ2FuY2VsbGF0aW9uRXJyb3IoKSwgYXMsIHJvdXRlUHJvcHMpO1xuICAgICAgICAgICAgdGhpcy5jbGMoKTtcbiAgICAgICAgICAgIHRoaXMuY2xjID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBub3RpZnkoZGF0YSwgcmVzZXRTY3JvbGwpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3ViKGRhdGEsIHRoaXMuY29tcG9uZW50c1snL19hcHAnXS5Db21wb25lbnQsIHJlc2V0U2Nyb2xsKTtcbiAgICB9XG59XG5Sb3V0ZXIuZXZlbnRzID0gKDAsIF9taXR0KS5kZWZhdWx0KCk7XG5leHBvcnRzLmRlZmF1bHQgPSBSb3V0ZXI7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJvdXRlci5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJnZXREb21haW5Mb2NhbGUiLCJhZGRMb2NhbGUiLCJkZWxMb2NhbGUiLCJoYXNCYXNlUGF0aCIsImFkZEJhc2VQYXRoIiwiZGVsQmFzZVBhdGgiLCJpc0xvY2FsVVJMIiwiaW50ZXJwb2xhdGVBcyIsInJlc29sdmVIcmVmIiwiX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2giLCJyZXF1aXJlIiwiX3JvdXRlTG9hZGVyIiwiX2lzRXJyb3IiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2Rlbm9ybWFsaXplUGFnZVBhdGgiLCJfbm9ybWFsaXplTG9jYWxlUGF0aCIsIl9taXR0IiwiX3V0aWxzIiwiX2lzRHluYW1pYyIsIl9wYXJzZVJlbGF0aXZlVXJsIiwiX3F1ZXJ5c3RyaW5nIiwiX3Jlc29sdmVSZXdyaXRlcyIsIl9yb3V0ZU1hdGNoZXIiLCJfcm91dGVSZWdleCIsIl9nZXRNaWRkbGV3YXJlUmVnZXgiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGV0ZWN0RG9tYWluTG9jYWxlIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9JMThOX1NVUFBPUlQiLCJiYXNlUGF0aCIsIl9fTkVYVF9ST1VURVJfQkFTRVBBVEgiLCJidWlsZENhbmNlbGxhdGlvbkVycm9yIiwiYXNzaWduIiwiRXJyb3IiLCJjYW5jZWxsZWQiLCJhZGRQYXRoUHJlZml4IiwicGF0aCIsInByZWZpeCIsInN0YXJ0c1dpdGgiLCJwYXRobmFtZSIsInBhdGhOb1F1ZXJ5SGFzaCIsIm5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoIiwic3Vic3RyIiwibGVuZ3RoIiwibG9jYWxlIiwibG9jYWxlcyIsImRvbWFpbkxvY2FsZXMiLCJub3JtYWxpemVMb2NhbGVQYXRoIiwiZGV0ZWN0ZWRMb2NhbGUiLCJkZXRlY3RlZERvbWFpbiIsInVuZGVmaW5lZCIsImh0dHAiLCJkb21haW4iLCJkZWZhdWx0TG9jYWxlIiwicGF0aExvd2VyIiwidG9Mb3dlckNhc2UiLCJsb2NhbGVMb3dlciIsInF1ZXJ5SW5kZXgiLCJpbmRleE9mIiwiaGFzaEluZGV4Iiwic3Vic3RyaW5nIiwic2xpY2UiLCJ1cmwiLCJsb2NhdGlvbk9yaWdpbiIsImdldExvY2F0aW9uT3JpZ2luIiwicmVzb2x2ZWQiLCJVUkwiLCJvcmlnaW4iLCJfIiwicm91dGUiLCJhc1BhdGhuYW1lIiwicXVlcnkiLCJpbnRlcnBvbGF0ZWRSb3V0ZSIsImR5bmFtaWNSZWdleCIsImdldFJvdXRlUmVnZXgiLCJkeW5hbWljR3JvdXBzIiwiZ3JvdXBzIiwiZHluYW1pY01hdGNoZXMiLCJnZXRSb3V0ZU1hdGNoZXIiLCJwYXJhbXMiLCJrZXlzIiwiZXZlcnkiLCJwYXJhbSIsInJlcGVhdCIsIm9wdGlvbmFsIiwicmVwbGFjZWQiLCJBcnJheSIsImlzQXJyYXkiLCJyZXBsYWNlIiwibWFwIiwic2VnbWVudCIsImVuY29kZVVSSUNvbXBvbmVudCIsImpvaW4iLCJyZXN1bHQiLCJvbWl0UGFybXNGcm9tUXVlcnkiLCJmaWx0ZXJlZFF1ZXJ5IiwiZm9yRWFjaCIsImtleSIsImluY2x1ZGVzIiwicm91dGVyIiwiaHJlZiIsInJlc29sdmVBcyIsImJhc2UiLCJ1cmxBc1N0cmluZyIsImZvcm1hdFdpdGhWYWxpZGF0aW9uIiwidXJsUHJvdG9NYXRjaCIsIm1hdGNoIiwidXJsQXNTdHJpbmdOb1Byb3RvIiwidXJsUGFydHMiLCJzcGxpdCIsImNvbnNvbGUiLCJlcnJvciIsIm5vcm1hbGl6ZWRVcmwiLCJub3JtYWxpemVSZXBlYXRlZFNsYXNoZXMiLCJhc1BhdGgiLCJmaW5hbFVybCIsImludGVycG9sYXRlZEFzIiwiaXNEeW5hbWljUm91dGUiLCJzZWFyY2hQYXJhbXMiLCJzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5IiwiaGFzaCIsInJlc29sdmVkSHJlZiIsIl8xIiwic3RyaXBPcmlnaW4iLCJwcmVwYXJlVXJsQXMiLCJhcyIsInJlc29sdmVkQXMiLCJocmVmSGFkT3JpZ2luIiwiYXNIYWRPcmlnaW4iLCJwcmVwYXJlZFVybCIsInByZXBhcmVkQXMiLCJyZXNvbHZlRHluYW1pY1JvdXRlIiwicGFnZXMiLCJjbGVhblBhdGhuYW1lIiwicmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2giLCJkZW5vcm1hbGl6ZVBhZ2VQYXRoIiwic29tZSIsInBhZ2UiLCJyZSIsInRlc3QiLCJtYW51YWxTY3JvbGxSZXN0b3JhdGlvbiIsIl9fTkVYVF9TQ1JPTExfUkVTVE9SQVRJT04iLCJ3aW5kb3ciLCJoaXN0b3J5IiwidiIsInNlc3Npb25TdG9yYWdlIiwic2V0SXRlbSIsInJlbW92ZUl0ZW0iLCJuIiwiU1NHX0RBVEFfTk9UX0ZPVU5EIiwiU3ltYm9sIiwiZmV0Y2hSZXRyeSIsImF0dGVtcHRzIiwib3B0cyIsImZldGNoIiwiY3JlZGVudGlhbHMiLCJ0aGVuIiwicmVzIiwib2siLCJzdGF0dXMiLCJqc29uIiwiZGF0YSIsIm5vdEZvdW5kIiwidGV4dCIsImZldGNoTmV4dERhdGEiLCJkYXRhSHJlZiIsImlzU2VydmVyUmVuZGVyIiwiaW5mbGlnaHRDYWNoZSIsInBlcnNpc3RDYWNoZSIsImxvY2F0aW9uIiwiY2FjaGVLZXkiLCJlcnIiLCJtYXJrQXNzZXRFcnJvciIsIlJvdXRlciIsImluaXRpYWxQcm9wcyIsInBhZ2VMb2FkZXIiLCJBcHAiLCJ3cmFwQXBwIiwiQ29tcG9uZW50Iiwic3Vic2NyaXB0aW9uIiwiaXNGYWxsYmFjayIsImlzUHJldmlldyIsInNkYyIsInNkciIsInNkZSIsIl9pZHgiLCJvblBvcFN0YXRlIiwiZSIsInN0YXRlIiwiY2hhbmdlU3RhdGUiLCJnZXRVUkwiLCJfX04iLCJmb3JjZWRTY3JvbGwiLCJvcHRpb25zIiwiaWR4IiwiSlNPTiIsInN0cmluZ2lmeSIsIngiLCJzZWxmIiwicGFnZVhPZmZzZXQiLCJ5IiwicGFnZVlPZmZzZXQiLCJnZXRJdGVtIiwicGFyc2UiLCJwYXJzZVJlbGF0aXZlVXJsIiwiaXNTc3IiLCJfYnBzIiwiY2hhbmdlIiwic2hhbGxvdyIsIl9zaGFsbG93IiwiY29tcG9uZW50cyIsInJlZiIsImluaXRpYWwiLCJwcm9wcyIsIl9fTl9TU0ciLCJfX05fU1NQIiwiX19OX1JTQyIsIl9fbmV4dF9yc2NfXyIsInN0eWxlU2hlZXRzIiwiZXZlbnRzIiwiYXV0b0V4cG9ydER5bmFtaWMiLCJfX05FWFRfREFUQV9fIiwiYXV0b0V4cG9ydCIsInN1YiIsImNsYyIsIl93cmFwQXBwIiwiaXNSZWFkeSIsImdzc3AiLCJnaXAiLCJhcHBHaXAiLCJnc3AiLCJzZWFyY2giLCJfX05FWFRfSEFTX1JFV1JJVEVTIiwiaXNMb2NhbGVEb21haW4iLCJob3N0bmFtZSIsIl9zaG91bGRSZXNvbHZlSHJlZiIsImFkZEV2ZW50TGlzdGVuZXIiLCJzY3JvbGxSZXN0b3JhdGlvbiIsInJlbG9hZCIsImJhY2siLCJtZXRob2QiLCJzaG91bGRSZXNvbHZlSHJlZiIsIl9oIiwicHJldkxvY2FsZSIsInBhcnNlZEFzIiwibG9jYWxlUGF0aFJlc3VsdCIsImRpZE5hdmlnYXRlIiwiYXNOb0Jhc2VQYXRoIiwiUHJvbWlzZSIsIlNUIiwicGVyZm9ybWFuY2UiLCJtYXJrIiwicm91dGVQcm9wcyIsIl9pbkZsaWdodFJvdXRlIiwiYWJvcnRDb21wb25lbnRMb2FkIiwiY2xlYW5lZEFzIiwibG9jYWxlQ2hhbmdlIiwib25seUFIYXNoQ2hhbmdlIiwiZW1pdCIsInNjcm9sbFRvSGFzaCIsIm5vdGlmeSIsInBhcnNlZCIsImFsbCIsImdldFBhZ2VMaXN0IiwiZ2V0Q2xpZW50QnVpbGRNYW5pZmVzdCIsImdldE1pZGRsZXdhcmVMaXN0IiwicmV3cml0ZXMiLCJfX3Jld3JpdGVzIiwidXJsSXNOZXciLCJyZXdyaXRlc1Jlc3VsdCIsInAiLCJtYXRjaGVkUGFnZSIsIl9wcmVmbGlnaHRSZXF1ZXN0IiwiY2FjaGUiLCJlZmZlY3QiLCJ0eXBlIiwibmV3QXMiLCJuZXdVcmwiLCJkZXN0aW5hdGlvbiIsInJvdXRlUmVnZXgiLCJyb3V0ZU1hdGNoIiwic2hvdWxkSW50ZXJwb2xhdGUiLCJtaXNzaW5nUGFyYW1zIiwiZmlsdGVyIiwid2FybiIsImdldFJvdXRlSW5mbyIsInJvdXRlSW5mbyIsInBhZ2VQcm9wcyIsIl9fTl9SRURJUkVDVCIsIl9fTl9SRURJUkVDVF9CQVNFX1BBVEgiLCJwYXJzZWRIcmVmIiwiX19OX1BSRVZJRVciLCJmZXRjaENvbXBvbmVudCIsIm5vdEZvdW5kUm91dGUiLCJyZWYxIiwic3RhdHVzQ29kZSIsImlzVmFsaWRTaGFsbG93Um91dGUiLCJzaG91bGRTY3JvbGwiLCJfc2Nyb2xsIiwic2Nyb2xsIiwicmVzZXRTY3JvbGwiLCJzZXQiLCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIsImxhbmciLCJsb2FkRXJyb3JGYWlsIiwiaXNBc3NldEVycm9yIiwiZ2V0SW5pdGlhbFByb3BzIiwiaGFuZGxlUm91dGVJbmZvRXJyb3IiLCJleGlzdGluZ1JvdXRlSW5mbyIsImNhY2hlZFJvdXRlSW5mbyIsIm1vZCIsImlzVmFsaWRFbGVtZW50VHlwZSIsImdldERhdGFIcmVmIiwic3NnIiwicnNjIiwiX2dldERhdGEiLCJfZ2V0RmxpZ2h0RGF0YSIsImZyZXNoIiwiX19mbGlnaHRfc2VyaWFsaXplZF9fIiwiX19mbGlnaHRfZnJlc2hfXyIsImNiIiwib2xkVXJsTm9IYXNoIiwib2xkSGFzaCIsIm5ld1VybE5vSGFzaCIsIm5ld0hhc2giLCJzY3JvbGxUbyIsImlkRWwiLCJnZXRFbGVtZW50QnlJZCIsInNjcm9sbEludG9WaWV3IiwibmFtZUVsIiwiZ2V0RWxlbWVudHNCeU5hbWUiLCJlZmZlY3RzIiwiX2lzU3NnIiwiaXNTc2ciLCJwcmlvcml0eSIsImNhbmNlbCIsImhhbmRsZUNhbmNlbGxlZCIsImxvYWRQYWdlIiwiY29tcG9uZW50UmVzdWx0IiwiZm4iLCJyZXNvbHZlIiwic2VyaWFsaXplZCIsImZucyIsInJlcXVpcmVzUHJlZmxpZ2h0IiwibWlkZGxld2FyZSIsImlzU1NSIiwiZ2V0TWlkZGxld2FyZVJlZ2V4IiwiX2dldFByZWZsaWdodERhdGEiLCJwcmVmbGlnaHRIcmVmIiwic2hvdWxkQ2FjaGUiLCJwcmVmbGlnaHQiLCJyZXdyaXRlIiwiZnNQYXRobmFtZSIsInJlZGlyZWN0IiwiY2xlYW5SZWRpcmVjdCIsInJlZnJlc2giLCJzc3IiLCJoZWFkZXJzIiwiZ2V0IiwiaGFzIiwiY3R4IiwiQXBwVHJlZSIsImxvYWRHZXRJbml0aWFsUHJvcHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/router.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/format-url.js": +/*!**********************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/format-url.js ***! + \**********************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.formatUrl = formatUrl;\n\nvar querystring = _interopRequireWildcard(__webpack_require__(/*! ./querystring */ \"./node_modules/next/dist/shared/lib/router/utils/querystring.js\"));\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n return newObj;\n }\n}\n\nvar slashedProtocols = /https?|ftp|gopher|file/;\n\nfunction formatUrl(urlObj) {\n var auth = urlObj.auth,\n hostname = urlObj.hostname;\n var protocol = urlObj.protocol || '';\n var pathname = urlObj.pathname || '';\n var hash = urlObj.hash || '';\n var query = urlObj.query || '';\n var host = false;\n auth = auth ? encodeURIComponent(auth).replace(/%3A/i, ':') + '@' : '';\n\n if (urlObj.host) {\n host = auth + urlObj.host;\n } else if (hostname) {\n host = auth + (~hostname.indexOf(':') ? \"[\".concat(hostname, \"]\") : hostname);\n\n if (urlObj.port) {\n host += ':' + urlObj.port;\n }\n }\n\n if (query && typeof query === 'object') {\n query = String(querystring.urlQueryToSearchParams(query));\n }\n\n var search = urlObj.search || query && \"?\".concat(query) || '';\n if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\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\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 \"\".concat(protocol).concat(host).concat(pathname).concat(search).concat(hash);\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Zvcm1hdC11cmwuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxpQkFBQSxHQUFvQkUsU0FBcEI7O0FBQ0EsSUFBSUMsV0FBVyxHQUFHQyx1QkFBdUIsQ0FBQ0MsbUJBQU8sQ0FBQyxzRkFBRCxDQUFSLENBQXpDOztBQUNBLFNBQVNELHVCQUFULENBQWlDRSxHQUFqQyxFQUFzQztBQUNsQyxNQUFJQSxHQUFHLElBQUlBLEdBQUcsQ0FBQ0MsVUFBZixFQUEyQjtBQUN2QixXQUFPRCxHQUFQO0FBQ0gsR0FGRCxNQUVPO0FBQ0gsUUFBSUUsTUFBTSxHQUFHLEVBQWI7O0FBRUEsUUFBSUYsR0FBRyxJQUFJLElBQVgsRUFBaUI7QUFDYixXQUFJLElBQUlHLEdBQVIsSUFBZUgsR0FBZixFQUFtQjtBQUNmLFlBQUlSLE1BQU0sQ0FBQ1ksU0FBUCxDQUFpQkMsY0FBakIsQ0FBZ0NDLElBQWhDLENBQXFDTixHQUFyQyxFQUEwQ0csR0FBMUMsQ0FBSixFQUFvRDtBQUNoRCxjQUFJSSxJQUFJLEdBQUdmLE1BQU0sQ0FBQ0MsY0FBUCxJQUF5QkQsTUFBTSxDQUFDZ0Isd0JBQWhDLEdBQTJEaEIsTUFBTSxDQUFDZ0Isd0JBQVAsQ0FBZ0NSLEdBQWhDLEVBQXFDRyxHQUFyQyxDQUEzRCxHQUF1RyxFQUFsSDs7QUFFQSxjQUFJSSxJQUFJLENBQUNFLEdBQUwsSUFBWUYsSUFBSSxDQUFDRyxHQUFyQixFQUEwQjtBQUN0QmxCLFlBQUFBLE1BQU0sQ0FBQ0MsY0FBUCxDQUFzQlMsTUFBdEIsRUFBOEJDLEdBQTlCLEVBQW1DSSxJQUFuQztBQUNILFdBRkQsTUFFTztBQUNITCxZQUFBQSxNQUFNLENBQUNDLEdBQUQsQ0FBTixHQUFjSCxHQUFHLENBQUNHLEdBQUQsQ0FBakI7QUFDSDtBQUNKO0FBQ0o7QUFD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LG1CQUFVTixRQUFWLFNBQXFCSSxJQUFyQixTQUE0QkgsUUFBNUIsU0FBdUNVLE1BQXZDLFNBQWdEVCxJQUFoRDtBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZm9ybWF0LXVybC5qcz83YjUzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5mb3JtYXRVcmwgPSBmb3JtYXRVcmw7XG52YXIgcXVlcnlzdHJpbmcgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwiLi9xdWVyeXN0cmluZ1wiKSk7XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHtcbiAgICBpZiAob2JqICYmIG9iai5fX2VzTW9kdWxlKSB7XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIG5ld09iaiA9IHtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKG9iaiAhPSBudWxsKSB7XG4gICAgICAgICAgICBmb3IodmFyIGtleSBpbiBvYmope1xuICAgICAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBkZXNjID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IHtcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3T2JqW2tleV0gPSBvYmpba2V5XTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBuZXdPYmouZGVmYXVsdCA9IG9iajtcbiAgICAgICAgcmV0dXJuIG5ld09iajtcbiAgICB9XG59XG5jb25zdCBzbGFzaGVkUHJvdG9jb2xzID0gL2h0dHBzP3xmdHB8Z29waGVyfGZpbGUvO1xuZnVuY3Rpb24gZm9ybWF0VXJsKHVybE9iaikge1xuICAgIGxldCB7IGF1dGggLCBob3N0bmFtZSAgfSA9IHVybE9iajtcbiAgICBsZXQgcHJvdG9jb2wgPSB1cmxPYmoucHJvdG9jb2wgfHwgJyc7XG4gICAgbGV0IHBhdGhuYW1lID0gdXJsT2JqLnBhdGhuYW1lIHx8ICcnO1xuICAgIGxldCBoYXNoID0gdXJsT2JqLmhhc2ggfHwgJyc7XG4gICAgbGV0IHF1ZXJ5ID0gdXJsT2JqLnF1ZXJ5IHx8ICcnO1xuICAgIGxldCBob3N0ID0gZmFsc2U7XG4gICAgYXV0aCA9IGF1dGggPyBlbmNvZGVVUklDb21wb25lbnQoYXV0aCkucmVwbGFjZSgvJTNBL2ksICc6JykgKyAnQCcgOiAnJztcbiAgICBpZiAodXJsT2JqLmhvc3QpIHtcbiAgICAgICAgaG9zdCA9IGF1dGggKyB1cmxPYmouaG9zdDtcbiAgICB9IGVsc2UgaWYgKGhvc3RuYW1lKSB7XG4gICAgICAgIGhvc3QgPSBhdXRoICsgKH5ob3N0bmFtZS5pbmRleE9mKCc6JykgPyBgWyR7aG9zdG5hbWV9XWAgOiBob3N0bmFtZSk7XG4gICAgICAgIGlmICh1cmxPYmoucG9ydCkge1xuICAgICAgICAgICAgaG9zdCArPSAnOicgKyB1cmxPYmoucG9ydDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAocXVlcnkgJiYgdHlwZW9mIHF1ZXJ5ID09PSAnb2JqZWN0Jykge1xuICAgICAgICBxdWVyeSA9IFN0cmluZyhxdWVyeXN0cmluZy51cmxRdWVyeVRvU2VhcmNoUGFyYW1zKHF1ZXJ5KSk7XG4gICAgfVxuICAgIGxldCBzZWFyY2ggPSB1cmxPYmouc2VhcmNoIHx8IHF1ZXJ5ICYmIGA/JHtxdWVyeX1gIHx8ICcnO1xuICAgIGlmIChwcm90b2NvbCAmJiBwcm90b2NvbC5zdWJzdHIoLTEpICE9PSAnOicpIHByb3RvY29sICs9ICc6JztcbiAgICBpZiAodXJsT2JqLnNsYXNoZXMgfHwgKCFwcm90b2NvbCB8fCBzbGFzaGVkUHJvdG9jb2xzLnRlc3QocHJvdG9jb2wpKSAmJiBob3N0ICE9PSBmYWxzZSkge1xuICAgICAgICBob3N0ID0gJy8vJyArIChob3N0IHx8ICcnKTtcbiAgICAgICAgaWYgKHBhdGhuYW1lICYmIHBhdGhuYW1lWzBdICE9PSAnLycpIHBhdGhuYW1lID0gJy8nICsgcGF0aG5hbWU7XG4gICAgfSBlbHNlIGlmICghaG9zdCkge1xuICAgICAgICBob3N0ID0gJyc7XG4gICAgfVxuICAgIGlmIChoYXNoICYmIGhhc2hbMF0gIT09ICcjJykgaGFzaCA9ICcjJyArIGhhc2g7XG4gICAgaWYgKHNlYXJjaCAmJiBzZWFyY2hbMF0gIT09ICc/Jykgc2VhcmNoID0gJz8nICsgc2VhcmNoO1xuICAgIHBhdGhuYW1lID0gcGF0aG5hbWUucmVwbGFjZSgvWz8jXS9nLCBlbmNvZGVVUklDb21wb25lbnQpO1xuICAgIHNlYXJjaCA9IHNlYXJjaC5yZXBsYWNlKCcjJywgJyUyMycpO1xuICAgIHJldHVybiBgJHtwcm90b2NvbH0ke2hvc3R9JHtwYXRobmFtZX0ke3NlYXJjaH0ke2hhc2h9YDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Zm9ybWF0LXVybC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJmb3JtYXRVcmwiLCJxdWVyeXN0cmluZyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIm9iaiIsIl9fZXNNb2R1bGUiLCJuZXdPYmoiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZ2V0Iiwic2V0Iiwic2xhc2hlZFByb3RvY29scyIsInVybE9iaiIsImF1dGgiLCJob3N0bmFtZSIsInByb3RvY29sIiwicGF0aG5hbWUiLCJoYXNoIiwicXVlcnkiLCJob3N0IiwiZW5jb2RlVVJJQ29tcG9uZW50IiwicmVwbGFjZSIsImluZGV4T2YiLCJwb3J0IiwiU3RyaW5nIiwidXJsUXVlcnlUb1NlYXJjaFBhcmFtcyIsInNlYXJjaCIsInN1YnN0ciIsInNsYXNoZXMiLCJ0ZXN0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/format-url.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/get-asset-path-from-route.js": +/*!*************************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/get-asset-path-from-route.js ***! + \*************************************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = getAssetPathFromRoute;\n\nfunction getAssetPathFromRoute(route) {\n var ext = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var path = route === '/' ? '/index' : /^\\/index(\\/|$)/.test(route) ? \"/index\".concat(route) : \"\".concat(route);\n return path + ext;\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2dldC1hc3NldC1wYXRoLWZyb20tcm91dGUuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxrQkFBQSxHQUFrQkUscUJBQWxCOztBQUNBLFNBQVNBLHFCQUFULENBQStCQyxLQUEvQixFQUFnRDtBQUFBLE1BQVZDLEdBQVUsdUVBQUosRUFBSTtBQUM1QyxNQUFNQyxJQUFJLEdBQUdGLEtBQUssS0FBSyxHQUFWLEdBQWdCLFFBQWhCLEdBQTJCLGlCQUFpQkcsSUFBakIsQ0FBc0JILEtBQXRCLG9CQUF3Q0EsS0FBeEMsY0FBcURBLEtBQXJELENBQXhDO0FBQ0EsU0FBT0UsSUFBSSxHQUFHRCxHQUFkO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zaGFyZWQvbGliL3JvdXRlci91dGlscy9nZXQtYXNzZXQtcGF0aC1mcm9tLXJvdXRlLmpzP2E2ZmYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSBnZXRBc3NldFBhdGhGcm9tUm91dGU7XG5mdW5jdGlvbiBnZXRBc3NldFBhdGhGcm9tUm91dGUocm91dGUsIGV4dCA9ICcnKSB7XG4gICAgY29uc3QgcGF0aCA9IHJvdXRlID09PSAnLycgPyAnL2luZGV4JyA6IC9eXFwvaW5kZXgoXFwvfCQpLy50ZXN0KHJvdXRlKSA/IGAvaW5kZXgke3JvdXRlfWAgOiBgJHtyb3V0ZX1gO1xuICAgIHJldHVybiBwYXRoICsgZXh0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1nZXQtYXNzZXQtcGF0aC1mcm9tLXJvdXRlLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImdldEFzc2V0UGF0aEZyb21Sb3V0ZSIsInJvdXRlIiwiZXh0IiwicGF0aCIsInRlc3QiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/get-asset-path-from-route.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/get-middleware-regex.js": +/*!********************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/get-middleware-regex.js ***! + \********************************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.getMiddlewareRegex = getMiddlewareRegex;\n\nvar _routeRegex = __webpack_require__(/*! ./route-regex */ \"./node_modules/next/dist/shared/lib/router/utils/route-regex.js\");\n\nfunction getMiddlewareRegex(normalizedRoute) {\n var catchAll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var result = (0, _routeRegex).getParametrizedRoute(normalizedRoute);\n var catchAllRegex = catchAll ? '(?!_next).*' : '';\n var catchAllGroupedRegex = catchAll ? '(?:(/.*)?)' : '';\n\n if ('routeKeys' in result) {\n if (result.parameterizedRoute === '/') {\n return {\n groups: {},\n namedRegex: \"^/\".concat(catchAllRegex, \"$\"),\n re: new RegExp(\"^/\".concat(catchAllRegex, \"$\")),\n routeKeys: {}\n };\n }\n\n return {\n groups: result.groups,\n namedRegex: \"^\".concat(result.namedParameterizedRoute).concat(catchAllGroupedRegex, \"$\"),\n re: new RegExp(\"^\".concat(result.parameterizedRoute).concat(catchAllGroupedRegex, \"$\")),\n routeKeys: result.routeKeys\n };\n }\n\n if (result.parameterizedRoute === '/') {\n return {\n groups: {},\n re: new RegExp(\"^/\".concat(catchAllRegex, \"$\"))\n };\n }\n\n return {\n groups: {},\n re: new RegExp(\"^\".concat(result.parameterizedRoute).concat(catchAllGroupedRegex, \"$\"))\n };\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2dldC1taWRkbGV3YXJlLXJlZ2V4LmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7QUFDYkEsOENBQTZDO0FBQ3pDRyxFQUFBQSxLQUFLLEVBQUU7QUFEa0MsQ0FBN0M7QUFHQUQsMEJBQUEsR0FBNkJFLGtCQUE3Qjs7QUFDQSxJQUFJQyxXQUFXLEdBQUdDLG1CQUFPLENBQUMsc0ZBQUQsQ0FBekI7O0FBQ0EsU0FBU0Ysa0JBQVQsQ0FBNEJHLGVBQTVCLEVBQThEO0FBQUEsTUFBakJDLFFBQWlCLHVFQUFOLElBQU07QUFDMUQsTUFBTUMsTUFBTSxHQUFHLENBQUMsR0FBR0osV0FBSixFQUFpQkssb0JBQWpCLENBQXNDSCxlQUF0QyxDQUFmO0FBQ0EsTUFBSUksYUFBYSxHQUFHSCxRQUFRLEdBQUcsYUFBSCxHQUFtQixFQUEvQztBQUNBLE1BQUlJLG9CQUFvQixHQUFHSixRQUFRLEdBQUcsWUFBSCxHQUFrQixFQUFyRDs7QUFDQSxNQUFJLGVBQWVDLE1BQW5CLEVBQTJCO0FBQ3ZCLFFBQUlBLE1BQU0sQ0FBQ0ksa0JBQVAsS0FBOEIsR0FBbEMsRUFBdUM7QUFDbkMsYUFBTztBQUNIQyxRQUFBQSxNQUFNLEVBQUUsRUFETDtBQUdIQyxRQUFBQSxVQUFVLGNBQU9KLGFBQVAsTUFIUDtBQUlISyxRQUFBQSxFQUFFLEVBQUUsSUFBSUMsTUFBSixhQUFnQk4sYUFBaEIsT0FKRDtBQUtITyxRQUFBQSxTQUFTLEVBQUU7QUFMUixPQUFQO0FBUUg7O0FBQ0QsV0FBTztBQUNISixNQUFBQSxNQUFNLEVBQUVMLE1BQU0sQ0FBQ0ssTUFEWjtBQUVIQyxNQUFBQSxVQUFVLGFBQU1OLE1BQU0sQ0FBQ1UsdUJBQWIsU0FBdUNQLG9CQUF2QyxNQUZQO0FBR0hJLE1BQUFBLEVBQUUsRUFBRSxJQUFJQyxNQUFKLFlBQWVSLE1BQU0sQ0FBQ0ksa0JBQXRCLFNBQTJDRCxvQkFBM0MsT0FIRDtBQUlITSxNQUFBQSxTQUFTLEVBQUVULE1BQU0sQ0FBQ1M7QUFKZixLQUFQO0FBTUg7O0FBQ0QsTUFBSVQsTUFBTSxDQUFDSSxrQkFBUCxLQUE4QixHQUFsQyxFQUF1QztBQUNuQyxXQUFPO0FBQ0hDLE1BQUFBLE1BQU0sRUFBRSxFQURMO0FBR0hFLE1BQUFBLEVBQUUsRUFBRSxJQUFJQyxNQUFKLGFBQWdCTixhQUFoQjtBQUhELEtBQVA7QUFLSDs7QUFDRCxTQUFPO0FBQ0hHLElBQUFBLE1BQU0sRUFBRSxFQURMO0FBR0hFLElBQUFBLEVBQUUsRUFBRSxJQUFJQyxNQUFKLFlBQWVSLE1BQU0sQ0FBQ0ksa0JBQXRCLFNBQTJDRCxvQkFBM0M7QUFIRCxHQUFQO0FBS0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zaGFyZWQvbGliL3JvdXRlci91dGlscy9nZXQtbWlkZGxld2FyZS1yZWdleC5qcz8wNDUyIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5nZXRNaWRkbGV3YXJlUmVnZXggPSBnZXRNaWRkbGV3YXJlUmVnZXg7XG52YXIgX3JvdXRlUmVnZXggPSByZXF1aXJlKFwiLi9yb3V0ZS1yZWdleFwiKTtcbmZ1bmN0aW9uIGdldE1pZGRsZXdhcmVSZWdleChub3JtYWxpemVkUm91dGUsIGNhdGNoQWxsID0gdHJ1ZSkge1xuICAgIGNvbnN0IHJlc3VsdCA9ICgwLCBfcm91dGVSZWdleCkuZ2V0UGFyYW1ldHJpemVkUm91dGUobm9ybWFsaXplZFJvdXRlKTtcbiAgICBsZXQgY2F0Y2hBbGxSZWdleCA9IGNhdGNoQWxsID8gJyg/IV9uZXh0KS4qJyA6ICcnO1xuICAgIGxldCBjYXRjaEFsbEdyb3VwZWRSZWdleCA9IGNhdGNoQWxsID8gJyg/OigvLiopPyknIDogJyc7XG4gICAgaWYgKCdyb3V0ZUtleXMnIGluIHJlc3VsdCkge1xuICAgICAgICBpZiAocmVzdWx0LnBhcmFtZXRlcml6ZWRSb3V0ZSA9PT0gJy8nKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGdyb3Vwczoge1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgbmFtZWRSZWdleDogYF4vJHtjYXRjaEFsbFJlZ2V4fSRgLFxuICAgICAgICAgICAgICAgIHJlOiBuZXcgUmVnRXhwKGBeLyR7Y2F0Y2hBbGxSZWdleH0kYCksXG4gICAgICAgICAgICAgICAgcm91dGVLZXlzOiB7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZ3JvdXBzOiByZXN1bHQuZ3JvdXBzLFxuICAgICAgICAgICAgbmFtZWRSZWdleDogYF4ke3Jlc3VsdC5uYW1lZFBhcmFtZXRlcml6ZWRSb3V0ZX0ke2NhdGNoQWxsR3JvdXBlZFJlZ2V4fSRgLFxuICAgICAgICAgICAgcmU6IG5ldyBSZWdFeHAoYF4ke3Jlc3VsdC5wYXJhbWV0ZXJpemVkUm91dGV9JHtjYXRjaEFsbEdyb3VwZWRSZWdleH0kYCksXG4gICAgICAgICAgICByb3V0ZUtleXM6IHJlc3VsdC5yb3V0ZUtleXNcbiAgICAgICAgfTtcbiAgICB9XG4gICAgaWYgKHJlc3VsdC5wYXJhbWV0ZXJpemVkUm91dGUgPT09ICcvJykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZ3JvdXBzOiB7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmU6IG5ldyBSZWdFeHAoYF4vJHtjYXRjaEFsbFJlZ2V4fSRgKVxuICAgICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBncm91cHM6IHtcbiAgICAgICAgfSxcbiAgICAgICAgcmU6IG5ldyBSZWdFeHAoYF4ke3Jlc3VsdC5wYXJhbWV0ZXJpemVkUm91dGV9JHtjYXRjaEFsbEdyb3VwZWRSZWdleH0kYClcbiAgICB9O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1nZXQtbWlkZGxld2FyZS1yZWdleC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJnZXRNaWRkbGV3YXJlUmVnZXgiLCJfcm91dGVSZWdleCIsInJlcXVpcmUiLCJub3JtYWxpemVkUm91dGUiLCJjYXRjaEFsbCIsInJlc3VsdCIsImdldFBhcmFtZXRyaXplZFJvdXRlIiwiY2F0Y2hBbGxSZWdleCIsImNhdGNoQWxsR3JvdXBlZFJlZ2V4IiwicGFyYW1ldGVyaXplZFJvdXRlIiwiZ3JvdXBzIiwibmFtZWRSZWdleCIsInJlIiwiUmVnRXhwIiwicm91dGVLZXlzIiwibmFtZWRQYXJhbWV0ZXJpemVkUm91dGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/get-middleware-regex.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js": +/*!**********************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js ***! + \**********************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.isDynamicRoute = isDynamicRoute; // Identify /[param]/ in route string\n\nvar TEST_ROUTE = /\\/\\[[^/]+?\\](?=\\/|$)/;\n\nfunction isDynamicRoute(route) {\n return TEST_ROUTE.test(route);\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWR5bmFtaWMuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxzQkFBQSxHQUF5QkUsY0FBekIsRUFDQTs7QUFDQSxJQUFNQyxVQUFVLEdBQUcsc0JBQW5COztBQUNBLFNBQVNELGNBQVQsQ0FBd0JFLEtBQXhCLEVBQStCO0FBQzNCLFNBQU9ELFVBQVUsQ0FBQ0UsSUFBWCxDQUFnQkQsS0FBaEIsQ0FBUDtBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaXMtZHluYW1pYy5qcz80NmY5Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5pc0R5bmFtaWNSb3V0ZSA9IGlzRHluYW1pY1JvdXRlO1xuLy8gSWRlbnRpZnkgL1twYXJhbV0vIGluIHJvdXRlIHN0cmluZ1xuY29uc3QgVEVTVF9ST1VURSA9IC9cXC9cXFtbXi9dKz9cXF0oPz1cXC98JCkvO1xuZnVuY3Rpb24gaXNEeW5hbWljUm91dGUocm91dGUpIHtcbiAgICByZXR1cm4gVEVTVF9ST1VURS50ZXN0KHJvdXRlKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXMtZHluYW1pYy5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJpc0R5bmFtaWNSb3V0ZSIsIlRFU1RfUk9VVEUiLCJyb3V0ZSIsInRlc3QiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js": +/*!******************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js ***! + \******************************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.parseRelativeUrl = parseRelativeUrl;\n\nvar _utils = __webpack_require__(/*! ../../utils */ \"./node_modules/next/dist/shared/lib/utils.js\");\n\nvar _querystring = __webpack_require__(/*! ./querystring */ \"./node_modules/next/dist/shared/lib/router/utils/querystring.js\");\n\nfunction parseRelativeUrl(url, base) {\n var globalBase = new URL( false ? 0 : (0, _utils).getLocationOrigin());\n var resolvedBase = base ? new URL(base, globalBase) : globalBase;\n\n var _URL = new URL(url, resolvedBase),\n pathname = _URL.pathname,\n searchParams = _URL.searchParams,\n search = _URL.search,\n hash = _URL.hash,\n href = _URL.href,\n origin = _URL.origin;\n\n if (origin !== globalBase.origin) {\n throw new Error(\"invariant: invalid relative URL, router received \".concat(url));\n }\n\n return {\n pathname: pathname,\n query: (0, _querystring).searchParamsToUrlQuery(searchParams),\n search: search,\n hash: hash,\n href: href.slice(globalBase.origin.length)\n };\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhcnNlLXJlbGF0aXZlLXVybC5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELHdCQUFBLEdBQTJCRSxnQkFBM0I7O0FBQ0EsSUFBSUMsTUFBTSxHQUFHQyxtQkFBTyxDQUFDLGlFQUFELENBQXBCOztBQUNBLElBQUlDLFlBQVksR0FBR0QsbUJBQU8sQ0FBQyxzRkFBRCxDQUExQjs7QUFDQSxTQUFTRixnQkFBVCxDQUEwQkksR0FBMUIsRUFBK0JDLElBQS9CLEVBQXFDO0FBQ2pDLE1BQU1DLFVBQVUsR0FBRyxJQUFJQyxHQUFKLENBQVEsU0FBZ0MsQ0FBaEMsR0FBNkMsQ0FBQyxHQUFHTixNQUFKLEVBQVlPLGlCQUFaLEVBQXJELENBQW5CO0FBQ0EsTUFBTUMsWUFBWSxHQUFHSixJQUFJLEdBQUcsSUFBSUUsR0FBSixDQUFRRixJQUFSLEVBQWNDLFVBQWQsQ0FBSCxHQUErQkEsVUFBeEQ7O0FBQ0EsYUFBcUUsSUFBSUMsR0FBSixDQUFRSCxHQUFSLEVBQWFLLFlBQWIsQ0FBckU7QUFBQSxNQUFRQyxRQUFSLFFBQVFBLFFBQVI7QUFBQSxNQUFtQkMsWUFBbkIsUUFBbUJBLFlBQW5CO0FBQUEsTUFBa0NDLE1BQWxDLFFBQWtDQSxNQUFsQztBQUFBLE1BQTJDQyxJQUEzQyxRQUEyQ0EsSUFBM0M7QUFBQSxNQUFrREMsSUFBbEQsUUFBa0RBLElBQWxEO0FBQUEsTUFBeURDLE1BQXpELFFBQXlEQSxNQUF6RDs7QUFDQSxNQUFJQSxNQUFNLEtBQUtULFVBQVUsQ0FBQ1MsTUFBMUIsRUFBa0M7QUFDOUIsVUFBTSxJQUFJQyxLQUFKLDREQUE4RFosR0FBOUQsRUFBTjtBQUNIOztBQUNELFNBQU87QUFDSE0sSUFBQUEsUUFBUSxFQUFSQSxRQURHO0FBRUhPLElBQUFBLEtBQUssRUFBRSxDQUFDLEdBQUdkLFlBQUosRUFBa0JlLHNCQUFsQixDQUF5Q1AsWUFBekMsQ0FGSjtBQUdIQyxJQUFBQSxNQUFNLEVBQU5BLE1BSEc7QUFJSEMsSUFBQUEsSUFBSSxFQUFKQSxJQUpHO0FBS0hDLElBQUFBLElBQUksRUFBRUEsSUFBSSxDQUFDSyxLQUFMLENBQVdiLFVBQVUsQ0FBQ1MsTUFBWCxDQUFrQkssTUFBN0I7QUFMSCxHQUFQO0FBT0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zaGFyZWQvbGliL3JvdXRlci91dGlscy9wYXJzZS1yZWxhdGl2ZS11cmwuanM/NGVkZiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMucGFyc2VSZWxhdGl2ZVVybCA9IHBhcnNlUmVsYXRpdmVVcmw7XG52YXIgX3V0aWxzID0gcmVxdWlyZShcIi4uLy4uL3V0aWxzXCIpO1xudmFyIF9xdWVyeXN0cmluZyA9IHJlcXVpcmUoXCIuL3F1ZXJ5c3RyaW5nXCIpO1xuZnVuY3Rpb24gcGFyc2VSZWxhdGl2ZVVybCh1cmwsIGJhc2UpIHtcbiAgICBjb25zdCBnbG9iYWxCYXNlID0gbmV3IFVSTCh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyA/ICdodHRwOi8vbicgOiAoMCwgX3V0aWxzKS5nZXRMb2NhdGlvbk9yaWdpbigpKTtcbiAgICBjb25zdCByZXNvbHZlZEJhc2UgPSBiYXNlID8gbmV3IFVSTChiYXNlLCBnbG9iYWxCYXNlKSA6IGdsb2JhbEJhc2U7XG4gICAgY29uc3QgeyBwYXRobmFtZSAsIHNlYXJjaFBhcmFtcyAsIHNlYXJjaCAsIGhhc2ggLCBocmVmICwgb3JpZ2luICB9ID0gbmV3IFVSTCh1cmwsIHJlc29sdmVkQmFzZSk7XG4gICAgaWYgKG9yaWdpbiAhPT0gZ2xvYmFsQmFzZS5vcmlnaW4pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhcmlhbnQ6IGludmFsaWQgcmVsYXRpdmUgVVJMLCByb3V0ZXIgcmVjZWl2ZWQgJHt1cmx9YCk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHBhdGhuYW1lLFxuICAgICAgICBxdWVyeTogKDAsIF9xdWVyeXN0cmluZykuc2VhcmNoUGFyYW1zVG9VcmxRdWVyeShzZWFyY2hQYXJhbXMpLFxuICAgICAgICBzZWFyY2gsXG4gICAgICAgIGhhc2gsXG4gICAgICAgIGhyZWY6IGhyZWYuc2xpY2UoZ2xvYmFsQmFzZS5vcmlnaW4ubGVuZ3RoKVxuICAgIH07XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBhcnNlLXJlbGF0aXZlLXVybC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJwYXJzZVJlbGF0aXZlVXJsIiwiX3V0aWxzIiwicmVxdWlyZSIsIl9xdWVyeXN0cmluZyIsInVybCIsImJhc2UiLCJnbG9iYWxCYXNlIiwiVVJMIiwiZ2V0TG9jYXRpb25PcmlnaW4iLCJyZXNvbHZlZEJhc2UiLCJwYXRobmFtZSIsInNlYXJjaFBhcmFtcyIsInNlYXJjaCIsImhhc2giLCJocmVmIiwib3JpZ2luIiwiRXJyb3IiLCJxdWVyeSIsInNlYXJjaFBhcmFtc1RvVXJsUXVlcnkiLCJzbGljZSIsImxlbmd0aCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/querystring.js": +/*!***********************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/querystring.js ***! + \***********************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _slicedToArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.searchParamsToUrlQuery = searchParamsToUrlQuery;\nexports.urlQueryToSearchParams = urlQueryToSearchParams;\nexports.assign = assign;\n\nfunction searchParamsToUrlQuery(searchParams) {\n var query = {};\n searchParams.forEach(function (value, key) {\n if (typeof query[key] === 'undefined') {\n query[key] = value;\n } else if (Array.isArray(query[key])) {\n query[key].push(value);\n } else {\n query[key] = [query[key], value];\n }\n });\n return query;\n}\n\nfunction stringifyUrlQueryParam(param) {\n if (typeof param === 'string' || typeof param === 'number' && !isNaN(param) || typeof param === 'boolean') {\n return String(param);\n } else {\n return '';\n }\n}\n\nfunction urlQueryToSearchParams(urlQuery) {\n var result = new URLSearchParams();\n Object.entries(urlQuery).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n\n if (Array.isArray(value)) {\n value.forEach(function (item) {\n return result.append(key, stringifyUrlQueryParam(item));\n });\n } else {\n result.set(key, stringifyUrlQueryParam(value));\n }\n });\n return result;\n}\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\n searchParamsList.forEach(function (searchParams) {\n Array.from(searchParams.keys()).forEach(function (key) {\n return target[\"delete\"](key);\n });\n searchParams.forEach(function (value, key) {\n return target.append(key, value);\n });\n });\n return target;\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3F1ZXJ5c3RyaW5nLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7OztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCw4QkFBQSxHQUFpQ0Usc0JBQWpDO0FBQ0FGLDhCQUFBLEdBQWlDRyxzQkFBakM7QUFDQUgsY0FBQSxHQUFpQkksTUFBakI7O0FBQ0EsU0FBU0Ysc0JBQVQsQ0FBZ0NHLFlBQWhDLEVBQThDO0FBQzFDLE1BQU1DLEtBQUssR0FBRyxFQUFkO0FBRUFELEVBQUFBLFlBQVksQ0FBQ0UsT0FBYixDQUFxQixVQUFDTixLQUFELEVBQVFPLEdBQVIsRUFBYztBQUMvQixRQUFJLE9BQU9GLEtBQUssQ0FBQ0UsR0FBRCxDQUFaLEtBQXNCLFdBQTFCLEVBQXVDO0FBQ25DRixNQUFBQSxLQUFLLENBQUNFLEdBQUQsQ0FBTCxHQUFhUCxLQUFiO0FBQ0gsS0FGRCxNQUVPLElBQUlRLEtBQUssQ0FBQ0MsT0FBTixDQUFjSixLQUFLLENBQUNFLEdBQUQsQ0FBbkIsQ0FBSixFQUErQjtBQUNsQ0YsTUFBQUEsS0FBSyxDQUFDRSxHQUFELENBQUwsQ0FBV0csSUFBWCxDQUFnQlYsS0FBaEI7QUFDSCxLQUZNLE1BRUE7QUFDSEssTUFBQUEsS0FBSyxDQUFDRSxHQUFELENBQUwsR0FBYSxDQUNURixLQUFLLENBQUNFLEdBQUQsQ0FESSxFQUVUUCxLQUZTLENBQWI7QUFJSDtBQUNKLEdBWEQ7QUFZQSxTQUFPSyxLQUFQO0FBQ0g7O0FBQ0QsU0FBU00sc0JBQVQsQ0FBZ0NDLEtBQWhDLEVBQXVDO0FBQ25DLE1BQUksT0FBT0EsS0FBUCxLQUFpQixRQUFqQixJQUE2QixPQUFPQSxLQUFQLEtBQWlCLFFBQWpCLElBQTZCLENBQUNDLEtBQUssQ0FBQ0QsS0FBRCxDQUFoRSxJQUEyRSxPQUFPQSxLQUFQLEtBQWlCLFNBQWhHLEVBQTJHO0FBQ3ZHLFdBQU9FLE1BQU0sQ0FBQ0YsS0FBRCxDQUFiO0FBQ0gsR0FGRCxNQUVPO0FBQ0gsV0FBTyxFQUFQO0FBQ0g7QUFDSjs7QUFDRCxTQUFTVixzQkFBVCxDQUFnQ2EsUUFBaEMsRUFBMEM7QUFDdEMsTUFBTUMsTUFBTSxHQUFHLElBQUlDLGVBQUosRUFBZjtBQUNBcEIsRUFBQUEsTUFBTSxDQUFDcUIsT0FBUCxDQUFlSCxRQUFmLEVBQXlCVCxPQUF6QixDQUFpQyxnQkFBZ0I7QUFBQTtBQUFBLFFBQWRDLEdBQWM7QUFBQSxRQUFUUCxLQUFTOztBQUM3QyxRQUFJUSxLQUFLLENBQUNDLE9BQU4sQ0FBY1QsS0FBZCxDQUFKLEVBQTBCO0FBQ3RCQSxNQUFBQSxLQUFLLENBQUNNLE9BQU4sQ0FBYyxVQUFDYSxJQUFEO0FBQUEsZUFBUUgsTUFBTSxDQUFDSSxNQUFQLENBQWNiLEdBQWQsRUFBbUJJLHNCQUFzQixDQUFDUSxJQUFELENBQXpDLENBQVI7QUFBQSxPQUFkO0FBRUgsS0FIRCxNQUdPO0FBQ0hILE1BQUFBLE1BQU0sQ0FBQ0ssR0FBUCxDQUFXZCxHQUFYLEVBQWdCSSxzQkFBc0IsQ0FBQ1gsS0FBRCxDQUF0QztBQUNIO0FBQ0osR0FQRDtBQVFBLFNBQU9nQixNQUFQO0FBQ0g7O0FBQ0QsU0FBU2IsTUFBVCxDQUFnQm1CLE1BQWhCLEVBQTZDO0FBQUEsb0NBQWxCQyxnQkFBa0I7QUFBbEJBLElBQUFBLGdCQUFrQjtBQUFBOztBQUN6Q0EsRUFBQUEsZ0JBQWdCLENBQUNqQixPQUFqQixDQUF5QixVQUFDRixZQUFELEVBQWdCO0FBQ3JDSSxJQUFBQSxLQUFLLENBQUNnQixJQUFOLENBQVdwQixZQUFZLENBQUNxQixJQUFiLEVBQVgsRUFBZ0NuQixPQUFoQyxDQUF3QyxVQUFDQyxHQUFEO0FBQUEsYUFBT2UsTUFBTSxVQUFOLENBQWNmLEdBQWQsQ0FBUDtBQUFBLEtBQXhDO0FBRUFILElBQUFBLFlBQVksQ0FBQ0UsT0FBYixDQUFxQixVQUFDTixLQUFELEVBQVFPLEdBQVI7QUFBQSxhQUFjZSxNQUFNLENBQUNGLE1BQVAsQ0FBY2IsR0FBZCxFQUFtQlAsS0FBbkIsQ0FBZDtBQUFBLEtBQXJCO0FBRUgsR0FMRDtBQU1BLFNBQU9zQixNQUFQO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zaGFyZWQvbGliL3JvdXRlci91dGlscy9xdWVyeXN0cmluZy5qcz8wMTQ5Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5zZWFyY2hQYXJhbXNUb1VybFF1ZXJ5ID0gc2VhcmNoUGFyYW1zVG9VcmxRdWVyeTtcbmV4cG9ydHMudXJsUXVlcnlUb1NlYXJjaFBhcmFtcyA9IHVybFF1ZXJ5VG9TZWFyY2hQYXJhbXM7XG5leHBvcnRzLmFzc2lnbiA9IGFzc2lnbjtcbmZ1bmN0aW9uIHNlYXJjaFBhcmFtc1RvVXJsUXVlcnkoc2VhcmNoUGFyYW1zKSB7XG4gICAgY29uc3QgcXVlcnkgPSB7XG4gICAgfTtcbiAgICBzZWFyY2hQYXJhbXMuZm9yRWFjaCgodmFsdWUsIGtleSk9PntcbiAgICAgICAgaWYgKHR5cGVvZiBxdWVyeVtrZXldID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgcXVlcnlba2V5XSA9IHZhbHVlO1xuICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkocXVlcnlba2V5XSkpIHtcbiAgICAgICAgICAgIHF1ZXJ5W2tleV0ucHVzaCh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBxdWVyeVtrZXldID0gW1xuICAgICAgICAgICAgICAgIHF1ZXJ5W2tleV0sXG4gICAgICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICAgIF07XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcXVlcnk7XG59XG5mdW5jdGlvbiBzdHJpbmdpZnlVcmxRdWVyeVBhcmFtKHBhcmFtKSB7XG4gICAgaWYgKHR5cGVvZiBwYXJhbSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHBhcmFtID09PSAnbnVtYmVyJyAmJiAhaXNOYU4ocGFyYW0pIHx8IHR5cGVvZiBwYXJhbSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgIHJldHVybiBTdHJpbmcocGFyYW0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG59XG5mdW5jdGlvbiB1cmxRdWVyeVRvU2VhcmNoUGFyYW1zKHVybFF1ZXJ5KSB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICAgIE9iamVjdC5lbnRyaWVzKHVybFF1ZXJ5KS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pPT57XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgdmFsdWUuZm9yRWFjaCgoaXRlbSk9PnJlc3VsdC5hcHBlbmQoa2V5LCBzdHJpbmdpZnlVcmxRdWVyeVBhcmFtKGl0ZW0pKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc3VsdC5zZXQoa2V5LCBzdHJpbmdpZnlVcmxRdWVyeVBhcmFtKHZhbHVlKSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xufVxuZnVuY3Rpb24gYXNzaWduKHRhcmdldCwgLi4uc2VhcmNoUGFyYW1zTGlzdCkge1xuICAgIHNlYXJjaFBhcmFtc0xpc3QuZm9yRWFjaCgoc2VhcmNoUGFyYW1zKT0+e1xuICAgICAgICBBcnJheS5mcm9tKHNlYXJjaFBhcmFtcy5rZXlzKCkpLmZvckVhY2goKGtleSk9PnRhcmdldC5kZWxldGUoa2V5KVxuICAgICAgICApO1xuICAgICAgICBzZWFyY2hQYXJhbXMuZm9yRWFjaCgodmFsdWUsIGtleSk9PnRhcmdldC5hcHBlbmQoa2V5LCB2YWx1ZSlcbiAgICAgICAgKTtcbiAgICB9KTtcbiAgICByZXR1cm4gdGFyZ2V0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1xdWVyeXN0cmluZy5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5IiwidXJsUXVlcnlUb1NlYXJjaFBhcmFtcyIsImFzc2lnbiIsInNlYXJjaFBhcmFtcyIsInF1ZXJ5IiwiZm9yRWFjaCIsImtleSIsIkFycmF5IiwiaXNBcnJheSIsInB1c2giLCJzdHJpbmdpZnlVcmxRdWVyeVBhcmFtIiwicGFyYW0iLCJpc05hTiIsIlN0cmluZyIsInVybFF1ZXJ5IiwicmVzdWx0IiwiVVJMU2VhcmNoUGFyYW1zIiwiZW50cmllcyIsIml0ZW0iLCJhcHBlbmQiLCJzZXQiLCJ0YXJnZXQiLCJzZWFyY2hQYXJhbXNMaXN0IiwiZnJvbSIsImtleXMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/querystring.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/route-matcher.js": +/*!*************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/route-matcher.js ***! + \*************************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.getRouteMatcher = getRouteMatcher;\n\nvar _utils = __webpack_require__(/*! ../../utils */ \"./node_modules/next/dist/shared/lib/utils.js\");\n\nfunction getRouteMatcher(routeRegex) {\n var re = routeRegex.re,\n groups = routeRegex.groups;\n return function (pathname) {\n var routeMatch = re.exec(pathname);\n\n if (!routeMatch) {\n return false;\n }\n\n var decode = function decode(param) {\n try {\n return decodeURIComponent(param);\n } catch (_) {\n throw new _utils.DecodeError('failed to decode param');\n }\n };\n\n var params = {};\n Object.keys(groups).forEach(function (slugName) {\n var g = groups[slugName];\n var m = routeMatch[g.pos];\n\n if (m !== undefined) {\n params[slugName] = ~m.indexOf('/') ? m.split('/').map(function (entry) {\n return decode(entry);\n }) : g.repeat ? [decode(m)] : decode(m);\n }\n });\n return params;\n };\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JvdXRlLW1hdGNoZXIuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCx1QkFBQSxHQUEwQkUsZUFBMUI7O0FBQ0EsSUFBSUMsTUFBTSxHQUFHQyxtQkFBTyxDQUFDLGlFQUFELENBQXBCOztBQUNBLFNBQVNGLGVBQVQsQ0FBeUJHLFVBQXpCLEVBQXFDO0FBQ2pDLE1BQVFDLEVBQVIsR0FBeUJELFVBQXpCLENBQVFDLEVBQVI7QUFBQSxNQUFhQyxNQUFiLEdBQXlCRixVQUF6QixDQUFhRSxNQUFiO0FBQ0EsU0FBTyxVQUFDQyxRQUFELEVBQVk7QUFDZixRQUFNQyxVQUFVLEdBQUdILEVBQUUsQ0FBQ0ksSUFBSCxDQUFRRixRQUFSLENBQW5COztBQUNBLFFBQUksQ0FBQ0MsVUFBTCxFQUFpQjtBQUNiLGFBQU8sS0FBUDtBQUNIOztBQUNELFFBQU1FLE1BQU0sR0FBRyxTQUFUQSxNQUFTLENBQUNDLEtBQUQsRUFBUztBQUNwQixVQUFJO0FBQ0EsZUFBT0Msa0JBQWtCLENBQUNELEtBQUQsQ0FBekI7QUFDSCxPQUZELENBRUUsT0FBT0UsQ0FBUCxFQUFVO0FBQ1IsY0FBTSxJQUFJWCxNQUFNLENBQUNZLFdBQVgsQ0FBdUIsd0JBQXZCLENBQU47QUFDSDtBQUNKLEtBTkQ7O0FBT0EsUUFBTUMsTUFBTSxHQUFHLEVBQWY7QUFFQWxCLElBQUFBLE1BQU0sQ0FBQ21CLElBQVAsQ0FBWVYsTUFBWixFQUFvQlcsT0FBcEIsQ0FBNEIsVUFBQ0MsUUFBRCxFQUFZO0FBQ3BDLFVBQU1DLENBQUMsR0FBR2IsTUFBTSxDQUFDWSxRQUFELENBQWhCO0FBQ0EsVUFBTUUsQ0FBQyxHQUFHWixVQUFVLENBQUNXLENBQUMsQ0FBQ0UsR0FBSCxDQUFwQjs7QUFDQSxVQUFJRCxDQUFDLEtBQUtFLFNBQVYsRUFBcUI7QUFDakJQLFFBQUFBLE1BQU0sQ0FBQ0csUUFBRCxDQUFOLEdBQW1CLENBQUNFLENBQUMsQ0FBQ0csT0FBRixDQUFVLEdBQVYsQ0FBRCxHQUFrQkgsQ0FBQyxDQUFDSSxLQUFGLENBQVEsR0FBUixFQUFhQyxHQUFiLENBQWlCLFVBQUNDLEtBQUQ7QUFBQSxpQkFBU2hCLE1BQU0sQ0FBQ2dCLEtBQUQsQ0FBZjtBQUFBLFNBQWpCLENBQWxCLEdBQ2ZQLENBQUMsQ0FBQ1EsTUFBRixHQUFXLENBQ1hqQixNQUFNLENBQUNVLENBQUQsQ0FESyxDQUFYLEdBRUFWLE1BQU0sQ0FBQ1UsQ0FBRCxDQUhWO0FBSUg7QUFDSixLQVREO0FBVUEsV0FBT0wsTUFBUDtBQUNILEdBekJEO0FBMEJIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcm91dGUtbWF0Y2hlci5qcz9jODZjIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5nZXRSb3V0ZU1hdGNoZXIgPSBnZXRSb3V0ZU1hdGNoZXI7XG52YXIgX3V0aWxzID0gcmVxdWlyZShcIi4uLy4uL3V0aWxzXCIpO1xuZnVuY3Rpb24gZ2V0Um91dGVNYXRjaGVyKHJvdXRlUmVnZXgpIHtcbiAgICBjb25zdCB7IHJlICwgZ3JvdXBzICB9ID0gcm91dGVSZWdleDtcbiAgICByZXR1cm4gKHBhdGhuYW1lKT0+e1xuICAgICAgICBjb25zdCByb3V0ZU1hdGNoID0gcmUuZXhlYyhwYXRobmFtZSk7XG4gICAgICAgIGlmICghcm91dGVNYXRjaCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRlY29kZSA9IChwYXJhbSk9PntcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChwYXJhbSk7XG4gICAgICAgICAgICB9IGNhdGNoIChfKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IF91dGlscy5EZWNvZGVFcnJvcignZmFpbGVkIHRvIGRlY29kZSBwYXJhbScpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICAgIH07XG4gICAgICAgIE9iamVjdC5rZXlzKGdyb3VwcykuZm9yRWFjaCgoc2x1Z05hbWUpPT57XG4gICAgICAgICAgICBjb25zdCBnID0gZ3JvdXBzW3NsdWdOYW1lXTtcbiAgICAgICAgICAgIGNvbnN0IG0gPSByb3V0ZU1hdGNoW2cucG9zXTtcbiAgICAgICAgICAgIGlmIChtICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBwYXJhbXNbc2x1Z05hbWVdID0gfm0uaW5kZXhPZignLycpID8gbS5zcGxpdCgnLycpLm1hcCgoZW50cnkpPT5kZWNvZGUoZW50cnkpXG4gICAgICAgICAgICAgICAgKSA6IGcucmVwZWF0ID8gW1xuICAgICAgICAgICAgICAgICAgICBkZWNvZGUobSlcbiAgICAgICAgICAgICAgICBdIDogZGVjb2RlKG0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHBhcmFtcztcbiAgICB9O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yb3V0ZS1tYXRjaGVyLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImdldFJvdXRlTWF0Y2hlciIsIl91dGlscyIsInJlcXVpcmUiLCJyb3V0ZVJlZ2V4IiwicmUiLCJncm91cHMiLCJwYXRobmFtZSIsInJvdXRlTWF0Y2giLCJleGVjIiwiZGVjb2RlIiwicGFyYW0iLCJkZWNvZGVVUklDb21wb25lbnQiLCJfIiwiRGVjb2RlRXJyb3IiLCJwYXJhbXMiLCJrZXlzIiwiZm9yRWFjaCIsInNsdWdOYW1lIiwiZyIsIm0iLCJwb3MiLCJ1bmRlZmluZWQiLCJpbmRleE9mIiwic3BsaXQiLCJtYXAiLCJlbnRyeSIsInJlcGVhdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/route-matcher.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/route-regex.js": +/*!***********************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/route-regex.js ***! + \***********************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.getParametrizedRoute = getParametrizedRoute;\nexports.getRouteRegex = getRouteRegex; // this isn't importing the escape-string-regex module\n// to reduce bytes\n\nfunction escapeRegex(str) {\n return str.replace(/[|\\\\{}()[\\]^$+*?.-]/g, '\\\\$&');\n}\n\nfunction parseParameter(param) {\n var optional = param.startsWith('[') && param.endsWith(']');\n\n if (optional) {\n param = param.slice(1, -1);\n }\n\n var repeat = param.startsWith('...');\n\n if (repeat) {\n param = param.slice(3);\n }\n\n return {\n key: param,\n repeat: repeat,\n optional: optional\n };\n}\n\nfunction getParametrizedRoute(route) {\n var segments = (route.replace(/\\/$/, '') || '/').slice(1).split('/');\n var groups = {};\n var groupIndex = 1;\n var parameterizedRoute = segments.map(function (segment) {\n if (segment.startsWith('[') && segment.endsWith(']')) {\n var _parseParameter = parseParameter(segment.slice(1, -1)),\n key = _parseParameter.key,\n optional = _parseParameter.optional,\n repeat = _parseParameter.repeat;\n\n groups[key] = {\n pos: groupIndex++,\n repeat: repeat,\n optional: optional\n };\n return repeat ? optional ? '(?:/(.+?))?' : '/(.+?)' : '/([^/]+?)';\n } else {\n return \"/\".concat(escapeRegex(segment));\n }\n }).join(''); // dead code eliminate for browser since it's only needed\n // while generating routes-manifest\n\n if (false) { var namedParameterizedRoute, routeKeys, getSafeRouteKey, routeKeyCharLength, routeKeyCharCode; }\n\n return {\n parameterizedRoute: parameterizedRoute,\n groups: groups\n };\n}\n\nfunction getRouteRegex(normalizedRoute) {\n var result = getParametrizedRoute(normalizedRoute);\n\n if ('routeKeys' in result) {\n return {\n re: new RegExp(\"^\".concat(result.parameterizedRoute, \"(?:/)?$\")),\n groups: result.groups,\n routeKeys: result.routeKeys,\n namedRegex: \"^\".concat(result.namedParameterizedRoute, \"(?:/)?$\")\n };\n }\n\n return {\n re: new RegExp(\"^\".concat(result.parameterizedRoute, \"(?:/)?$\")),\n groups: result.groups\n };\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JvdXRlLXJlZ2V4LmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7QUFDYkEsOENBQTZDO0FBQ3pDRyxFQUFBQSxLQUFLLEVBQUU7QUFEa0MsQ0FBN0M7QUFHQUQsNEJBQUEsR0FBK0JFLG9CQUEvQjtBQUNBRixxQkFBQSxHQUF3QkcsYUFBeEIsRUFDQTtBQUNBOztBQUNBLFNBQVNDLFdBQVQsQ0FBcUJDLEdBQXJCLEVBQTBCO0FBQ3RCLFNBQU9BLEdBQUcsQ0FBQ0MsT0FBSixDQUFZLHNCQUFaLEVBQW9DLE1BQXBDLENBQVA7QUFDSDs7QUFDRCxTQUFTQyxjQUFULENBQXdCQyxLQUF4QixFQUErQjtBQUMzQixNQUFNQyxRQUFRLEdBQUdELEtBQUssQ0FBQ0UsVUFBTixDQUFpQixHQUFqQixLQUF5QkYsS0FBSyxDQUFDRyxRQUFOLENBQWUsR0FBZixDQUExQzs7QUFDQSxNQUFJRixRQUFKLEVBQWM7QUFDVkQsSUFBQUEsS0FBSyxHQUFHQSxLQUFLLENBQUNJLEtBQU4sQ0FBWSxDQUFaLEVBQWUsQ0FBQyxDQUFoQixDQUFSO0FBQ0g7O0FBQ0QsTUFBTUMsTUFBTSxHQUFHTCxLQUFLLENBQUNFLFVBQU4sQ0FBaUIsS0FBakIsQ0FBZjs7QUFDQSxNQUFJRyxNQUFKLEVBQVk7QUFDUkwsSUFBQUEsS0FBSyxHQUFHQSxLQUFLLENBQUNJLEtBQU4sQ0FBWSxDQUFaLENBQVI7QUFDSDs7QUFDRCxTQUFPO0FBQ0hFLElBQUFBLEdBQUcsRUFBRU4sS0FERjtBQUVISyxJQUFBQSxNQUFNLEVBQU5BLE1BRkc7QUFHSEosSUFBQUEsUUFBUSxFQUFSQTtBQUhHLEdBQVA7QUFLSDs7QUFDRCxTQUFTUCxvQkFBVCxDQUE4QmEsS0FBOUIsRUFBcUM7QUFDakMsTUFBTUMsUUFBUSxHQUFHLENBQUNELEtBQUssQ0FBQ1QsT0FBTixDQUFjLEtBQWQsRUFBcUIsRUFBckIsS0FBNEIsR0FBN0IsRUFBa0NNLEtBQWxDLENBQXdDLENBQXhDLEVBQTJDSyxLQUEzQyxDQUFpRCxHQUFqRCxDQUFqQjtBQUNBLE1BQU1DLE1BQU0sR0FBRyxFQUFmO0FBRUEsTUFBSUMsVUFBVSxHQUFHLENBQWpCO0FBQ0EsTUFBTUMsa0JBQWtCLEdBQUdKLFFBQVEsQ0FBQ0ssR0FBVCxDQUFhLFVBQUNDLE9BQUQsRUFBVztBQUMvQyxRQUFJQSxPQUFPLENBQUNaLFVBQVIsQ0FBbUIsR0FBbkIsS0FBMkJZLE9BQU8sQ0FBQ1gsUUFBUixDQUFpQixHQUFqQixDQUEvQixFQUFzRDtBQUNsRCw0QkFBcUNKLGNBQWMsQ0FBQ2UsT0FBTyxDQUFDVixLQUFSLENBQWMsQ0FBZCxFQUFpQixDQUFDLENBQWxCLENBQUQsQ0FBbkQ7QUFBQSxVQUFRRSxHQUFSLG1CQUFRQSxHQUFSO0FBQUEsVUFBY0wsUUFBZCxtQkFBY0EsUUFBZDtBQUFBLFVBQXlCSSxNQUF6QixtQkFBeUJBLE1BQXpCOztBQUNBSyxNQUFBQSxNQUFNLENBQUNKLEdBQUQsQ0FBTixHQUFjO0FBQ1ZTLFFBQUFBLEdBQUcsRUFBRUosVUFBVSxFQURMO0FBRVZOLFFBQUFBLE1BQU0sRUFBTkEsTUFGVTtBQUdWSixRQUFBQSxRQUFRLEVBQVJBO0FBSFUsT0FBZDtBQUtBLGFBQU9JLE1BQU0sR0FBR0osUUFBUSxHQUFHLGFBQUgsR0FBbUIsUUFBOUIsR0FBeUMsV0FBdEQ7QUFDSCxLQVJELE1BUU87QUFDSCx3QkFBV0wsV0FBVyxDQUFDa0IsT0FBRCxDQUF0QjtBQUNIO0FBQ0osR0FaMEIsRUFZeEJFLElBWndCLENBWW5CLEVBWm1CLENBQTNCLENBTGlDLENBa0JqQztBQUNBOztBQUNBLGFBQW1DLGtHQWdEbEM7O0FBQ0QsU0FBTztBQUNISixJQUFBQSxrQkFBa0IsRUFBbEJBLGtCQURHO0FBRUhGLElBQUFBLE1BQU0sRUFBTkE7QUFGRyxHQUFQO0FBSUg7O0FBQ0QsU0FBU2YsYUFBVCxDQUF1QnFDLGVBQXZCLEVBQXdDO0FBQ3BDLE1BQU1DLE1BQU0sR0FBR3ZDLG9CQUFvQixDQUFDc0MsZUFBRCxDQUFuQzs7QUFDQSxNQUFJLGVBQWVDLE1BQW5CLEVBQTJCO0FBQ3ZCLFdBQU87QUFDSEMsTUFBQUEsRUFBRSxFQUFFLElBQUlDLE1BQUosWUFBZUYsTUFBTSxDQUFDckIsa0JBQXRCLGFBREQ7QUFFSEYsTUFBQUEsTUFBTSxFQUFFdUIsTUFBTSxDQUFDdkIsTUFGWjtBQUdIYyxNQUFBQSxTQUFTLEVBQUVTLE1BQU0sQ0FBQ1QsU0FIZjtBQUlIWSxNQUFBQSxVQUFVLGFBQU1ILE1BQU0sQ0FBQ1IsdUJBQWI7QUFKUCxLQUFQO0FBTUg7O0FBQ0QsU0FBTztBQUNIUyxJQUFBQSxFQUFFLEVBQUUsSUFBSUMsTUFBSixZQUFlRixNQUFNLENBQUNyQixrQkFBdEIsYUFERDtBQUVIRixJQUFBQSxNQUFNLEVBQUV1QixNQUFNLENBQUN2QjtBQUZaLEdBQVA7QUFJSCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JvdXRlLXJlZ2V4LmpzP2VhYzIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmdldFBhcmFtZXRyaXplZFJvdXRlID0gZ2V0UGFyYW1ldHJpemVkUm91dGU7XG5leHBvcnRzLmdldFJvdXRlUmVnZXggPSBnZXRSb3V0ZVJlZ2V4O1xuLy8gdGhpcyBpc24ndCBpbXBvcnRpbmcgdGhlIGVzY2FwZS1zdHJpbmctcmVnZXggbW9kdWxlXG4vLyB0byByZWR1Y2UgYnl0ZXNcbmZ1bmN0aW9uIGVzY2FwZVJlZ2V4KHN0cikge1xuICAgIHJldHVybiBzdHIucmVwbGFjZSgvW3xcXFxce30oKVtcXF1eJCsqPy4tXS9nLCAnXFxcXCQmJyk7XG59XG5mdW5jdGlvbiBwYXJzZVBhcmFtZXRlcihwYXJhbSkge1xuICAgIGNvbnN0IG9wdGlvbmFsID0gcGFyYW0uc3RhcnRzV2l0aCgnWycpICYmIHBhcmFtLmVuZHNXaXRoKCddJyk7XG4gICAgaWYgKG9wdGlvbmFsKSB7XG4gICAgICAgIHBhcmFtID0gcGFyYW0uc2xpY2UoMSwgLTEpO1xuICAgIH1cbiAgICBjb25zdCByZXBlYXQgPSBwYXJhbS5zdGFydHNXaXRoKCcuLi4nKTtcbiAgICBpZiAocmVwZWF0KSB7XG4gICAgICAgIHBhcmFtID0gcGFyYW0uc2xpY2UoMyk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIGtleTogcGFyYW0sXG4gICAgICAgIHJlcGVhdCxcbiAgICAgICAgb3B0aW9uYWxcbiAgICB9O1xufVxuZnVuY3Rpb24gZ2V0UGFyYW1ldHJpemVkUm91dGUocm91dGUpIHtcbiAgICBjb25zdCBzZWdtZW50cyA9IChyb3V0ZS5yZXBsYWNlKC9cXC8kLywgJycpIHx8ICcvJykuc2xpY2UoMSkuc3BsaXQoJy8nKTtcbiAgICBjb25zdCBncm91cHMgPSB7XG4gICAgfTtcbiAgICBsZXQgZ3JvdXBJbmRleCA9IDE7XG4gICAgY29uc3QgcGFyYW1ldGVyaXplZFJvdXRlID0gc2VnbWVudHMubWFwKChzZWdtZW50KT0+e1xuICAgICAgICBpZiAoc2VnbWVudC5zdGFydHNXaXRoKCdbJykgJiYgc2VnbWVudC5lbmRzV2l0aCgnXScpKSB7XG4gICAgICAgICAgICBjb25zdCB7IGtleSAsIG9wdGlvbmFsICwgcmVwZWF0ICB9ID0gcGFyc2VQYXJhbWV0ZXIoc2VnbWVudC5zbGljZSgxLCAtMSkpO1xuICAgICAgICAgICAgZ3JvdXBzW2tleV0gPSB7XG4gICAgICAgICAgICAgICAgcG9zOiBncm91cEluZGV4KyssXG4gICAgICAgICAgICAgICAgcmVwZWF0LFxuICAgICAgICAgICAgICAgIG9wdGlvbmFsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmV0dXJuIHJlcGVhdCA/IG9wdGlvbmFsID8gJyg/Oi8oLis/KSk/JyA6ICcvKC4rPyknIDogJy8oW14vXSs/KSc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gYC8ke2VzY2FwZVJlZ2V4KHNlZ21lbnQpfWA7XG4gICAgICAgIH1cbiAgICB9KS5qb2luKCcnKTtcbiAgICAvLyBkZWFkIGNvZGUgZWxpbWluYXRlIGZvciBicm93c2VyIHNpbmNlIGl0J3Mgb25seSBuZWVkZWRcbiAgICAvLyB3aGlsZSBnZW5lcmF0aW5nIHJvdXRlcy1tYW5pZmVzdFxuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICBsZXQgcm91dGVLZXlDaGFyQ29kZSA9IDk3O1xuICAgICAgICBsZXQgcm91dGVLZXlDaGFyTGVuZ3RoID0gMTtcbiAgICAgICAgLy8gYnVpbGRzIGEgbWluaW1hbCByb3V0ZUtleSB1c2luZyBvbmx5IGEteiBhbmQgbWluaW1hbCBudW1iZXIgb2YgY2hhcmFjdGVyc1xuICAgICAgICBjb25zdCBnZXRTYWZlUm91dGVLZXkgPSAoKT0+e1xuICAgICAgICAgICAgbGV0IHJvdXRlS2V5ID0gJyc7XG4gICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgcm91dGVLZXlDaGFyTGVuZ3RoOyBpKyspe1xuICAgICAgICAgICAgICAgIHJvdXRlS2V5ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUocm91dGVLZXlDaGFyQ29kZSk7XG4gICAgICAgICAgICAgICAgcm91dGVLZXlDaGFyQ29kZSsrO1xuICAgICAgICAgICAgICAgIGlmIChyb3V0ZUtleUNoYXJDb2RlID4gMTIyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJvdXRlS2V5Q2hhckxlbmd0aCsrO1xuICAgICAgICAgICAgICAgICAgICByb3V0ZUtleUNoYXJDb2RlID0gOTc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJvdXRlS2V5O1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCByb3V0ZUtleXMgPSB7XG4gICAgICAgIH07XG4gICAgICAgIGxldCBuYW1lZFBhcmFtZXRlcml6ZWRSb3V0ZSA9IHNlZ21lbnRzLm1hcCgoc2VnbWVudCk9PntcbiAgICAgICAgICAgIGlmIChzZWdtZW50LnN0YXJ0c1dpdGgoJ1snKSAmJiBzZWdtZW50LmVuZHNXaXRoKCddJykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGtleSAsIG9wdGlvbmFsICwgcmVwZWF0ICB9ID0gcGFyc2VQYXJhbWV0ZXIoc2VnbWVudC5zbGljZSgxLCAtMSkpO1xuICAgICAgICAgICAgICAgIC8vIHJlcGxhY2UgYW55IG5vbi13b3JkIGNoYXJhY3RlcnMgc2luY2UgdGhleSBjYW4gYnJlYWtcbiAgICAgICAgICAgICAgICAvLyB0aGUgbmFtZWQgcmVnZXhcbiAgICAgICAgICAgICAgICBsZXQgY2xlYW5lZEtleSA9IGtleS5yZXBsYWNlKC9cXFcvZywgJycpO1xuICAgICAgICAgICAgICAgIGxldCBpbnZhbGlkS2V5ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgLy8gY2hlY2sgaWYgdGhlIGtleSBpcyBzdGlsbCBpbnZhbGlkIGFuZCBmYWxsYmFjayB0byB1c2luZyBhIGtub3duXG4gICAgICAgICAgICAgICAgLy8gc2FmZSBrZXlcbiAgICAgICAgICAgICAgICBpZiAoY2xlYW5lZEtleS5sZW5ndGggPT09IDAgfHwgY2xlYW5lZEtleS5sZW5ndGggPiAzMCkge1xuICAgICAgICAgICAgICAgICAgICBpbnZhbGlkS2V5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKCFpc05hTihwYXJzZUludChjbGVhbmVkS2V5LnN1YnN0cigwLCAxKSkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGludmFsaWRLZXkgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaW52YWxpZEtleSkge1xuICAgICAgICAgICAgICAgICAgICBjbGVhbmVkS2V5ID0gZ2V0U2FmZVJvdXRlS2V5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJvdXRlS2V5c1tjbGVhbmVkS2V5XSA9IGtleTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVwZWF0ID8gb3B0aW9uYWwgPyBgKD86Lyg/PCR7Y2xlYW5lZEtleX0+Lis/KSk/YCA6IGAvKD88JHtjbGVhbmVkS2V5fT4uKz8pYCA6IGAvKD88JHtjbGVhbmVkS2V5fT5bXi9dKz8pYDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGAvJHtlc2NhcGVSZWdleChzZWdtZW50KX1gO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KS5qb2luKCcnKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHBhcmFtZXRlcml6ZWRSb3V0ZSxcbiAgICAgICAgICAgIG5hbWVkUGFyYW1ldGVyaXplZFJvdXRlLFxuICAgICAgICAgICAgZ3JvdXBzLFxuICAgICAgICAgICAgcm91dGVLZXlzXG4gICAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHBhcmFtZXRlcml6ZWRSb3V0ZSxcbiAgICAgICAgZ3JvdXBzXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGdldFJvdXRlUmVnZXgobm9ybWFsaXplZFJvdXRlKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gZ2V0UGFyYW1ldHJpemVkUm91dGUobm9ybWFsaXplZFJvdXRlKTtcbiAgICBpZiAoJ3JvdXRlS2V5cycgaW4gcmVzdWx0KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICByZTogbmV3IFJlZ0V4cChgXiR7cmVzdWx0LnBhcmFtZXRlcml6ZWRSb3V0ZX0oPzovKT8kYCksXG4gICAgICAgICAgICBncm91cHM6IHJlc3VsdC5ncm91cHMsXG4gICAgICAgICAgICByb3V0ZUtleXM6IHJlc3VsdC5yb3V0ZUtleXMsXG4gICAgICAgICAgICBuYW1lZFJlZ2V4OiBgXiR7cmVzdWx0Lm5hbWVkUGFyYW1ldGVyaXplZFJvdXRlfSg/Oi8pPyRgXG4gICAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHJlOiBuZXcgUmVnRXhwKGBeJHtyZXN1bHQucGFyYW1ldGVyaXplZFJvdXRlfSg/Oi8pPyRgKSxcbiAgICAgICAgZ3JvdXBzOiByZXN1bHQuZ3JvdXBzXG4gICAgfTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cm91dGUtcmVnZXguanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiZ2V0UGFyYW1ldHJpemVkUm91dGUiLCJnZXRSb3V0ZVJlZ2V4IiwiZXNjYXBlUmVnZXgiLCJzdHIiLCJyZXBsYWNlIiwicGFyc2VQYXJhbWV0ZXIiLCJwYXJhbSIsIm9wdGlvbmFsIiwic3RhcnRzV2l0aCIsImVuZHNXaXRoIiwic2xpY2UiLCJyZXBlYXQiLCJrZXkiLCJyb3V0ZSIsInNlZ21lbnRzIiwic3BsaXQiLCJncm91cHMiLCJncm91cEluZGV4IiwicGFyYW1ldGVyaXplZFJvdXRlIiwibWFwIiwic2VnbWVudCIsInBvcyIsImpvaW4iLCJyb3V0ZUtleUNoYXJDb2RlIiwicm91dGVLZXlDaGFyTGVuZ3RoIiwiZ2V0U2FmZVJvdXRlS2V5Iiwicm91dGVLZXkiLCJpIiwiU3RyaW5nIiwiZnJvbUNoYXJDb2RlIiwicm91dGVLZXlzIiwibmFtZWRQYXJhbWV0ZXJpemVkUm91dGUiLCJjbGVhbmVkS2V5IiwiaW52YWxpZEtleSIsImxlbmd0aCIsImlzTmFOIiwicGFyc2VJbnQiLCJzdWJzdHIiLCJub3JtYWxpemVkUm91dGUiLCJyZXN1bHQiLCJyZSIsIlJlZ0V4cCIsIm5hbWVkUmVnZXgiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/route-regex.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/utils.js": +/*!****************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/utils.js ***! + \****************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _regeneratorRuntime = __webpack_require__(/*! ./node_modules/@babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n\nvar _classCallCheck = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\");\n\nvar _inherits = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/inherits */ \"./node_modules/@babel/runtime/helpers/inherits.js\");\n\nvar _possibleConstructorReturn = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/possibleConstructorReturn */ \"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\");\n\nvar _getPrototypeOf = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/getPrototypeOf */ \"./node_modules/@babel/runtime/helpers/getPrototypeOf.js\");\n\nvar _wrapNativeSuper = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/wrapNativeSuper */ \"./node_modules/@babel/runtime/helpers/wrapNativeSuper.js\");\n\nvar _asyncToGenerator = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/asyncToGenerator.js\");\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.execOnce = execOnce;\nexports.getLocationOrigin = getLocationOrigin;\nexports.getURL = getURL;\nexports.getDisplayName = getDisplayName;\nexports.isResSent = isResSent;\nexports.normalizeRepeatedSlashes = normalizeRepeatedSlashes;\nexports.loadGetInitialProps = loadGetInitialProps;\nexports.formatWithValidation = formatWithValidation;\nexports.HtmlContext = exports.ST = exports.SP = exports.urlObjectKeys = void 0;\n\nvar _formatUrl = __webpack_require__(/*! ./router/utils/format-url */ \"./node_modules/next/dist/shared/lib/router/utils/format-url.js\");\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nfunction execOnce(fn) {\n var used = false;\n var result;\n return function () {\n if (!used) {\n used = true;\n result = fn.apply(void 0, arguments);\n }\n\n return result;\n };\n}\n\nfunction getLocationOrigin() {\n var _window$location = window.location,\n protocol = _window$location.protocol,\n hostname = _window$location.hostname,\n port = _window$location.port;\n return \"\".concat(protocol, \"//\").concat(hostname).concat(port ? ':' + port : '');\n}\n\nfunction getURL() {\n var href = window.location.href;\n var origin = getLocationOrigin();\n return href.substring(origin.length);\n}\n\nfunction getDisplayName(Component) {\n return typeof Component === 'string' ? Component : Component.displayName || Component.name || 'Unknown';\n}\n\nfunction isResSent(res) {\n return res.finished || res.headersSent;\n}\n\nfunction normalizeRepeatedSlashes(url) {\n var urlParts = url.split('?');\n var 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] ? \"?\".concat(urlParts.slice(1).join('?')) : '');\n}\n\nfunction loadGetInitialProps(_x, _x2) {\n return _loadGetInitialProps.apply(this, arguments);\n}\n\nfunction _loadGetInitialProps() {\n _loadGetInitialProps = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(App, ctx) {\n var ref, message, res, props, _message;\n\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (false) {}\n\n if (!((ref = App.prototype) === null || ref === void 0 ? void 0 : ref.getInitialProps)) {\n _context.next = 4;\n break;\n }\n\n message = \"\\\"\".concat(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 new Error(message);\n\n case 4:\n // when called from _app `ctx` is nested in `ctx`\n res = ctx.res || ctx.ctx && ctx.ctx.res;\n\n if (App.getInitialProps) {\n _context.next = 12;\n break;\n }\n\n if (!(ctx.ctx && ctx.Component)) {\n _context.next = 11;\n break;\n }\n\n _context.next = 9;\n return loadGetInitialProps(ctx.Component, ctx.ctx);\n\n case 9:\n _context.t0 = _context.sent;\n return _context.abrupt(\"return\", {\n pageProps: _context.t0\n });\n\n case 11:\n return _context.abrupt(\"return\", {});\n\n case 12:\n _context.next = 14;\n return App.getInitialProps(ctx);\n\n case 14:\n props = _context.sent;\n\n if (!(res && isResSent(res))) {\n _context.next = 17;\n break;\n }\n\n return _context.abrupt(\"return\", props);\n\n case 17:\n if (props) {\n _context.next = 20;\n break;\n }\n\n _message = \"\\\"\".concat(getDisplayName(App), \".getInitialProps()\\\" should resolve to an object. But found \\\"\").concat(props, \"\\\" instead.\");\n throw new Error(_message);\n\n case 20:\n if (true) {\n if (Object.keys(props).length === 0 && !ctx.ctx) {\n console.warn(\"\".concat(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\n return _context.abrupt(\"return\", props);\n\n case 22:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n return _loadGetInitialProps.apply(this, arguments);\n}\n\nvar urlObjectKeys = ['auth', 'hash', 'host', 'hostname', 'href', 'path', 'pathname', 'port', 'protocol', 'query', 'search', 'slashes'];\nexports.urlObjectKeys = urlObjectKeys;\n\nfunction formatWithValidation(url) {\n if (true) {\n if (url !== null && typeof url === 'object') {\n Object.keys(url).forEach(function (key) {\n if (urlObjectKeys.indexOf(key) === -1) {\n console.warn(\"Unknown key passed via urlObject into url.format: \".concat(key));\n }\n });\n }\n }\n\n return (0, _formatUrl).formatUrl(url);\n}\n\nvar SP = typeof performance !== 'undefined';\nexports.SP = SP;\nvar ST = SP && typeof performance.mark === 'function' && typeof performance.measure === 'function';\nexports.ST = ST;\n\nvar DecodeError = /*#__PURE__*/function (_Error) {\n _inherits(DecodeError, _Error);\n\n var _super = _createSuper(DecodeError);\n\n function DecodeError() {\n _classCallCheck(this, DecodeError);\n\n return _super.apply(this, arguments);\n }\n\n return DecodeError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nexports.DecodeError = DecodeError;\nvar HtmlContext = (0, _react).createContext(null);\nexports.HtmlContext = HtmlContext;\n\nif (true) {\n HtmlContext.displayName = 'HtmlContext';\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvdXRpbHMuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxnQkFBQSxHQUFtQkUsUUFBbkI7QUFDQUYseUJBQUEsR0FBNEJHLGlCQUE1QjtBQUNBSCxjQUFBLEdBQWlCSSxNQUFqQjtBQUNBSixzQkFBQSxHQUF5QkssY0FBekI7QUFDQUwsaUJBQUEsR0FBb0JNLFNBQXBCO0FBQ0FOLGdDQUFBLEdBQW1DTyx3QkFBbkM7QUFDQVAsMkJBQUEsR0FBOEJRLG1CQUE5QjtBQUNBUiw0QkFBQSxHQUErQlMsb0JBQS9CO0FBQ0FULG1CQUFBLEdBQXNCQSxVQUFBLEdBQWFBLFVBQUEsR0FBYUEscUJBQUEsR0FBd0IsS0FBSyxDQUE3RTs7QUFDQSxJQUFJYyxVQUFVLEdBQUdDLG1CQUFPLENBQUMsaUdBQUQsQ0FBeEI7O0FBQ0EsSUFBSUMsTUFBTSxHQUFHRCxtQkFBTyxDQUFDLDRDQUFELENBQXBCOztBQUNBLFNBQVNiLFFBQVQsQ0FBa0JlLEVBQWxCLEVBQXNCO0FBQ2xCLE1BQUlDLElBQUksR0FBRyxLQUFYO0FBQ0EsTUFBSUMsTUFBSjtBQUNBLFNBQU8sWUFBVztBQUNkLFFBQUksQ0FBQ0QsSUFBTCxFQUFXO0FBQ1BBLE1BQUFBLElBQUksR0FBRyxJQUFQO0FBQ0FDLE1BQUFBLE1BQU0sR0FBR0YsRUFBRSxNQUFGLG1CQUFUO0FBQ0g7O0FBQ0QsV0FBT0UsTUFBUDtBQUNILEdBTkQ7QUFPSDs7QUFDRCxTQUFTaEIsaUJBQVQsR0FBNkI7QUFDekIseUJBQXdDaUIsTUFBTSxDQUFDQyxRQUEvQztBQUFBLE1BQVFDLFFBQVIsb0JBQVFBLFFBQVI7QUFBQSxNQUFtQkMsUUFBbkIsb0JBQW1CQSxRQUFuQjtBQUFBLE1BQThCQyxJQUE5QixvQkFBOEJBLElBQTlCO0FBQ0EsbUJBQVVGLFFB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QWxDO0FBQ0ExRCxVQUFBLEdBQWFZLEVBQWI7QUFDQSxJQUFNRCxFQUFFLEdBQUdDLEVBQUUsSUFBSSxPQUFPOEMsV0FBVyxDQUFDQyxJQUFuQixLQUE0QixVQUFsQyxJQUFnRCxPQUFPRCxXQUFXLENBQUNFLE9BQW5CLEtBQStCLFVBQTFGO0FBQ0E1RCxVQUFBLEdBQWFXLEVBQWI7O0lBQ01rRDs7Ozs7Ozs7Ozs7O2lDQUFvQmI7O0FBRTFCaEQsbUJBQUEsR0FBc0I2RCxXQUF0QjtBQUNBLElBQU1uRCxXQUFXLEdBQUcsQ0FBQyxHQUFHTSxNQUFKLEVBQVk4QyxhQUFaLENBQTBCLElBQTFCLENBQXBCO0FBQ0E5RCxtQkFBQSxHQUFzQlUsV0FBdEI7O0FBQ0EsSUFBSSxNQUF1QztBQUN2Q0EsRUFBQUEsV0FBVyxDQUFDb0IsV0FBWixHQUEwQixhQUExQjtBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi91dGlscy5qcz9lN2ZmIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5leGVjT25jZSA9IGV4ZWNPbmNlO1xuZXhwb3J0cy5nZXRMb2NhdGlvbk9yaWdpbiA9IGdldExvY2F0aW9uT3JpZ2luO1xuZXhwb3J0cy5nZXRVUkwgPSBnZXRVUkw7XG5leHBvcnRzLmdldERpc3BsYXlOYW1lID0gZ2V0RGlzcGxheU5hbWU7XG5leHBvcnRzLmlzUmVzU2VudCA9IGlzUmVzU2VudDtcbmV4cG9ydHMubm9ybWFsaXplUmVwZWF0ZWRTbGFzaGVzID0gbm9ybWFsaXplUmVwZWF0ZWRTbGFzaGVzO1xuZXhwb3J0cy5sb2FkR2V0SW5pdGlhbFByb3BzID0gbG9hZEdldEluaXRpYWxQcm9wcztcbmV4cG9ydHMuZm9ybWF0V2l0aFZhbGlkYXRpb24gPSBmb3JtYXRXaXRoVmFsaWRhdGlvbjtcbmV4cG9ydHMuSHRtbENvbnRleHQgPSBleHBvcnRzLlNUID0gZXhwb3J0cy5TUCA9IGV4cG9ydHMudXJsT2JqZWN0S2V5cyA9IHZvaWQgMDtcbnZhciBfZm9ybWF0VXJsID0gcmVxdWlyZShcIi4vcm91dGVyL3V0aWxzL2Zvcm1hdC11cmxcIik7XG52YXIgX3JlYWN0ID0gcmVxdWlyZShcInJlYWN0XCIpO1xuZnVuY3Rpb24gZXhlY09uY2UoZm4pIHtcbiAgICBsZXQgdXNlZCA9IGZhbHNlO1xuICAgIGxldCByZXN1bHQ7XG4gICAgcmV0dXJuICguLi5hcmdzKT0+e1xuICAgICAgICBpZiAoIXVzZWQpIHtcbiAgICAgICAgICAgIHVzZWQgPSB0cnVlO1xuICAgICAgICAgICAgcmVzdWx0ID0gZm4oLi4uYXJncyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xufVxuZnVuY3Rpb24gZ2V0TG9jYXRpb25PcmlnaW4oKSB7XG4gICAgY29uc3QgeyBwcm90b2NvbCAsIGhvc3RuYW1lICwgcG9ydCAgfSA9IHdpbmRvdy5sb2NhdGlvbjtcbiAgICByZXR1cm4gYCR7cHJvdG9jb2x9Ly8ke2hvc3RuYW1lfSR7cG9ydCA/ICc6JyArIHBvcnQgOiAnJ31gO1xufVxuZnVuY3Rpb24gZ2V0VVJMKCkge1xuICAgIGNvbnN0IHsgaHJlZiAgfSA9IHdpbmRvdy5sb2NhdGlvbjtcbiAgICBjb25zdCBvcmlnaW4gPSBnZXRMb2NhdGlvbk9yaWdpbigpO1xuICAgIHJldHVybiBocmVmLnN1YnN0cmluZyhvcmlnaW4ubGVuZ3RoKTtcbn1cbmZ1bmN0aW9uIGdldERpc3BsYXlOYW1lKENvbXBvbmVudCkge1xuICAgIHJldHVybiB0eXBlb2YgQ29tcG9uZW50ID09PSAnc3RyaW5nJyA/IENvbXBvbmVudCA6IENvbXBvbmVudC5kaXNwbGF5TmFtZSB8fCBDb21wb25lbnQubmFtZSB8fCAnVW5rbm93bic7XG59XG5mdW5jdGlvbiBpc1Jlc1NlbnQocmVzKSB7XG4gICAgcmV0dXJuIHJlcy5maW5pc2hlZCB8fCByZXMuaGVhZGVyc1NlbnQ7XG59XG5mdW5jdGlvbiBub3JtYWxpemVSZXBlYXRlZFNsYXNoZXModXJsKSB7XG4gICAgY29uc3QgdXJsUGFydHMgPSB1cmwuc3BsaXQoJz8nKTtcbiAgICBjb25zdCB1cmxOb1F1ZXJ5ID0gdXJsUGFydHNbMF07XG4gICAgcmV0dXJuIHVybE5vUXVlcnkvLyBmaXJzdCB3ZSByZXBsYWNlIGFueSBub24tZW5jb2RlZCBiYWNrc2xhc2hlcyB3aXRoIGZvcndhcmRcbiAgICAvLyB0aGVuIG5vcm1hbGl6ZSByZXBlYXRlZCBmb3J3YXJkIHNsYXNoZXNcbiAgICAucmVwbGFjZSgvXFxcXC9nLCAnLycpLnJlcGxhY2UoL1xcL1xcLysvZywgJy8nKSArICh1cmxQYXJ0c1sxXSA/IGA/JHt1cmxQYXJ0cy5zbGljZSgxKS5qb2luKCc/Jyl9YCA6ICcnKTtcbn1cbmFzeW5jIGZ1bmN0aW9uIGxvYWRHZXRJbml0aWFsUHJvcHMoQXBwLCBjdHgpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICB2YXIgcmVmO1xuICAgICAgICBpZiAoKHJlZiA9IEFwcC5wcm90b3R5cGUpID09PSBudWxsIHx8IHJlZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVmLmdldEluaXRpYWxQcm9wcykge1xuICAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGBcIiR7Z2V0RGlzcGxheU5hbWUoQXBwKX0uZ2V0SW5pdGlhbFByb3BzKClcIiBpcyBkZWZpbmVkIGFzIGFuIGluc3RhbmNlIG1ldGhvZCAtIHZpc2l0IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2dldC1pbml0aWFsLXByb3BzLWFzLWFuLWluc3RhbmNlLW1ldGhvZCBmb3IgbW9yZSBpbmZvcm1hdGlvbi5gO1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIHdoZW4gY2FsbGVkIGZyb20gX2FwcCBgY3R4YCBpcyBuZXN0ZWQgaW4gYGN0eGBcbiAgICBjb25zdCByZXMgPSBjdHgucmVzIHx8IGN0eC5jdHggJiYgY3R4LmN0eC5yZXM7XG4gICAgaWYgKCFBcHAuZ2V0SW5pdGlhbFByb3BzKSB7XG4gICAgICAgIGlmIChjdHguY3R4ICYmIGN0eC5Db21wb25lbnQpIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmUgcGFnZVByb3BzIGRlZmF1bHRcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcGFnZVByb3BzOiBhd2FpdCBsb2FkR2V0SW5pdGlhbFByb3BzKGN0eC5Db21wb25lbnQsIGN0eC5jdHgpXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IHByb3BzID0gYXdhaXQgQXBwLmdldEluaXRpYWxQcm9wcyhjdHgpO1xuICAgIGlmIChyZXMgJiYgaXNSZXNTZW50KHJlcykpIHtcbiAgICAgICAgcmV0dXJuIHByb3BzO1xuICAgIH1cbiAgICBpZiAoIXByb3BzKSB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgXCIke2dldERpc3BsYXlOYW1lKEFwcCl9LmdldEluaXRpYWxQcm9wcygpXCIgc2hvdWxkIHJlc29sdmUgdG8gYW4gb2JqZWN0LiBCdXQgZm91bmQgXCIke3Byb3BzfVwiIGluc3RlYWQuYDtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBpZiAoT2JqZWN0LmtleXMocHJvcHMpLmxlbmd0aCA9PT0gMCAmJiAhY3R4LmN0eCkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGAke2dldERpc3BsYXlOYW1lKEFwcCl9IHJldHVybmVkIGFuIGVtcHR5IG9iamVjdCBmcm9tIFxcYGdldEluaXRpYWxQcm9wc1xcYC4gVGhpcyBkZS1vcHRpbWl6ZXMgYW5kIHByZXZlbnRzIGF1dG9tYXRpYyBzdGF0aWMgb3B0aW1pemF0aW9uLiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9lbXB0eS1vYmplY3QtZ2V0SW5pdGlhbFByb3BzYCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHByb3BzO1xufVxuY29uc3QgdXJsT2JqZWN0S2V5cyA9IFtcbiAgICAnYXV0aCcsXG4gICAgJ2hhc2gnLFxuICAgICdob3N0JyxcbiAgICAnaG9zdG5hbWUnLFxuICAgICdocmVmJyxcbiAgICAncGF0aCcsXG4gICAgJ3BhdGhuYW1lJyxcbiAgICAncG9ydCcsXG4gICAgJ3Byb3RvY29sJyxcbiAgICAncXVlcnknLFxuICAgICdzZWFyY2gnLFxuICAgICdzbGFzaGVzJywgXG5dO1xuZXhwb3J0cy51cmxPYmplY3RLZXlzID0gdXJsT2JqZWN0S2V5cztcbmZ1bmN0aW9uIGZvcm1hdFdpdGhWYWxpZGF0aW9uKHVybCkge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICBpZiAodXJsICE9PSBudWxsICYmIHR5cGVvZiB1cmwgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICBPYmplY3Qua2V5cyh1cmwpLmZvckVhY2goKGtleSk9PntcbiAgICAgICAgICAgICAgICBpZiAodXJsT2JqZWN0S2V5cy5pbmRleE9mKGtleSkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgVW5rbm93biBrZXkgcGFzc2VkIHZpYSB1cmxPYmplY3QgaW50byB1cmwuZm9ybWF0OiAke2tleX1gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gKDAsIF9mb3JtYXRVcmwpLmZvcm1hdFVybCh1cmwpO1xufVxuY29uc3QgU1AgPSB0eXBlb2YgcGVyZm9ybWFuY2UgIT09ICd1bmRlZmluZWQnO1xuZXhwb3J0cy5TUCA9IFNQO1xuY29uc3QgU1QgPSBTUCAmJiB0eXBlb2YgcGVyZm9ybWFuY2UubWFyayA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgcGVyZm9ybWFuY2UubWVhc3VyZSA9PT0gJ2Z1bmN0aW9uJztcbmV4cG9ydHMuU1QgPSBTVDtcbmNsYXNzIERlY29kZUVycm9yIGV4dGVuZHMgRXJyb3Ige1xufVxuZXhwb3J0cy5EZWNvZGVFcnJvciA9IERlY29kZUVycm9yO1xuY29uc3QgSHRtbENvbnRleHQgPSAoMCwgX3JlYWN0KS5jcmVhdGVDb250ZXh0KG51bGwpO1xuZXhwb3J0cy5IdG1sQ29udGV4dCA9IEh0bWxDb250ZXh0O1xuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBIdG1sQ29udGV4dC5kaXNwbGF5TmFtZSA9ICdIdG1sQ29udGV4dCc7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXV0aWxzLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImV4ZWNPbmNlIiwiZ2V0TG9jYXRpb25PcmlnaW4iLCJnZXRVUkwiLCJnZXREaXNwbGF5TmFtZSIsImlzUmVzU2VudCIsIm5vcm1hbGl6ZVJlcGVhdGVkU2xhc2hlcyIsImxvYWRHZXRJbml0aWFsUHJvcHMiLCJmb3JtYXRXaXRoVmFsaWRhdGlvbiIsIkh0bWxDb250ZXh0IiwiU1QiLCJTUCIsInVybE9iamVjdEtleXMiLCJfZm9ybWF0VXJsIiwicmVxdWlyZSIsIl9yZWFjdCIsImZuIiwidXNlZCIsInJlc3VsdCIsIndpbmRvdyIsImxvY2F0aW9uIiwicHJvdG9jb2wiLCJob3N0bmFtZSIsInBvcnQiLCJocmVmIiwib3JpZ2luIiwic3Vic3RyaW5nIiwibGVuZ3RoIiwiQ29tcG9uZW50IiwiZGlzcGxheU5hbWUiLCJuYW1lIiwicmVzIiwiZmluaXNoZWQiLCJoZWFkZXJzU2VudCIsInVybCIsInVybFBhcnRzIiwic3BsaXQiLCJ1cmxOb1F1ZXJ5IiwicmVwbGFjZSIsInNsaWNlIiwiam9pbiIsIkFwcCIsImN0eCIsInJlZiIsInByb3RvdHlwZSIsImdldEluaXRpYWxQcm9wcyIsIm1lc3NhZ2UiLCJFcnJvciIsInBhZ2VQcm9wcyIsInByb3BzIiwia2V5cyIsImNvbnNvbGUiLCJ3YXJuIiwiZm9yRWFjaCIsImtleSIsImluZGV4T2YiLCJmb3JtYXRVcmwiLCJwZXJmb3JtYW5jZSIsIm1hcmsiLCJtZWFzdXJlIiwiRGVjb2RlRXJyb3IiLCJjcmVhdGVDb250ZXh0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/utils.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/polyfills/object-assign.js": +/*!*****************************************************************!*\ + !*** ./node_modules/next/dist/build/polyfills/object-assign.js ***! + \*****************************************************************/ +/***/ (function(module) { + +"use strict"; +eval("\nvar assign = Object.assign.bind(Object);\nmodule.exports = assign;\nmodule.exports[\"default\"] = module.exports;\n\n//# sourceMappingURL=object-assign.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3BvbHlmaWxscy9vYmplY3QtYXNzaWduLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQTtBQUNBLHlCQUFzQjs7QUFFdEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC9wb2x5ZmlsbHMvb2JqZWN0LWFzc2lnbi5qcz9lN2QxIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIGFzc2lnbiA9IE9iamVjdC5hc3NpZ24uYmluZChPYmplY3QpO1xubW9kdWxlLmV4cG9ydHMgPSBhc3NpZ247XG5tb2R1bGUuZXhwb3J0cy5kZWZhdWx0ID0gbW9kdWxlLmV4cG9ydHM7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW9iamVjdC1hc3NpZ24uanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/polyfills/object-assign.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/lib/is-error.js": +/*!************************************************!*\ + !*** ./node_modules/next/dist/lib/is-error.js ***! + \************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = isError;\nfunction isError(err) {\n return typeof err === 'object' && err !== null && 'name' in err && 'message' in err;\n}\n\n//# sourceMappingURL=is-error.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9pcy1lcnJvci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGtCQUFlO0FBQ2Y7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL2lzLWVycm9yLmpzPzE3OGUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSBpc0Vycm9yO1xuZnVuY3Rpb24gaXNFcnJvcihlcnIpIHtcbiAgICByZXR1cm4gdHlwZW9mIGVyciA9PT0gJ29iamVjdCcgJiYgZXJyICE9PSBudWxsICYmICduYW1lJyBpbiBlcnIgJiYgJ21lc3NhZ2UnIGluIGVycjtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXMtZXJyb3IuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/lib/is-error.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/server/denormalize-page-path.js": +/*!****************************************************************!*\ + !*** ./node_modules/next/dist/server/denormalize-page-path.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.normalizePathSep = normalizePathSep;\nexports.denormalizePagePath = denormalizePagePath;\nfunction normalizePathSep(path) {\n return path.replace(/\\\\/g, '/');\n}\nfunction denormalizePagePath(page) {\n page = normalizePathSep(page);\n if (page.startsWith('/index/')) {\n page = page.slice(6);\n } else if (page === '/index') {\n page = '/';\n }\n return page;\n}\n\n//# sourceMappingURL=denormalize-page-path.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9kZW5vcm1hbGl6ZS1wYWdlLXBhdGguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRix3QkFBd0I7QUFDeEIsMkJBQTJCO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2Rlbm9ybWFsaXplLXBhZ2UtcGF0aC5qcz82NzhhIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5ub3JtYWxpemVQYXRoU2VwID0gbm9ybWFsaXplUGF0aFNlcDtcbmV4cG9ydHMuZGVub3JtYWxpemVQYWdlUGF0aCA9IGRlbm9ybWFsaXplUGFnZVBhdGg7XG5mdW5jdGlvbiBub3JtYWxpemVQYXRoU2VwKHBhdGgpIHtcbiAgICByZXR1cm4gcGF0aC5yZXBsYWNlKC9cXFxcL2csICcvJyk7XG59XG5mdW5jdGlvbiBkZW5vcm1hbGl6ZVBhZ2VQYXRoKHBhZ2UpIHtcbiAgICBwYWdlID0gbm9ybWFsaXplUGF0aFNlcChwYWdlKTtcbiAgICBpZiAocGFnZS5zdGFydHNXaXRoKCcvaW5kZXgvJykpIHtcbiAgICAgICAgcGFnZSA9IHBhZ2Uuc2xpY2UoNik7XG4gICAgfSBlbHNlIGlmIChwYWdlID09PSAnL2luZGV4Jykge1xuICAgICAgICBwYWdlID0gJy8nO1xuICAgIH1cbiAgICByZXR1cm4gcGFnZTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGVub3JtYWxpemUtcGFnZS1wYXRoLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/denormalize-page-path.js\n"); + +/***/ }), + +/***/ "./node_modules/next/router.js": +/*!*************************************!*\ + !*** ./node_modules/next/router.js ***! + \*************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("module.exports = __webpack_require__(/*! ./dist/client/router */ \"./node_modules/next/dist/client/router.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9yb3V0ZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQUEsNkdBQWdEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L3JvdXRlci5qcz8xYmI2Il0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9kaXN0L2NsaWVudC9yb3V0ZXInKVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/router.js\n"); + +/***/ }), + +/***/ "./node_modules/react-is/cjs/react-is.development.js": +/*!***********************************************************!*\ + !*** ./node_modules/react-is/cjs/react-is.development.js ***! + \***********************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("/** @license React v17.0.2\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its 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\n\n\nif (true) {\n (function() {\n'use strict';\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar REACT_ELEMENT_TYPE = 0xeac7;\nvar REACT_PORTAL_TYPE = 0xeaca;\nvar REACT_FRAGMENT_TYPE = 0xeacb;\nvar REACT_STRICT_MODE_TYPE = 0xeacc;\nvar REACT_PROFILER_TYPE = 0xead2;\nvar REACT_PROVIDER_TYPE = 0xeacd;\nvar REACT_CONTEXT_TYPE = 0xeace;\nvar REACT_FORWARD_REF_TYPE = 0xead0;\nvar REACT_SUSPENSE_TYPE = 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = 0xead8;\nvar REACT_MEMO_TYPE = 0xead3;\nvar REACT_LAZY_TYPE = 0xead4;\nvar REACT_BLOCK_TYPE = 0xead9;\nvar REACT_SERVER_BLOCK_TYPE = 0xeada;\nvar REACT_FUNDAMENTAL_TYPE = 0xead5;\nvar REACT_SCOPE_TYPE = 0xead7;\nvar REACT_OPAQUE_ID_TYPE = 0xeae0;\nvar REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1;\nvar REACT_OFFSCREEN_TYPE = 0xeae2;\nvar REACT_LEGACY_HIDDEN_TYPE = 0xeae3;\n\nif (typeof Symbol === 'function' && Symbol.for) {\n var symbolFor = Symbol.for;\n REACT_ELEMENT_TYPE = symbolFor('react.element');\n REACT_PORTAL_TYPE = symbolFor('react.portal');\n REACT_FRAGMENT_TYPE = symbolFor('react.fragment');\n REACT_STRICT_MODE_TYPE = symbolFor('react.strict_mode');\n REACT_PROFILER_TYPE = symbolFor('react.profiler');\n REACT_PROVIDER_TYPE = symbolFor('react.provider');\n REACT_CONTEXT_TYPE = symbolFor('react.context');\n REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref');\n REACT_SUSPENSE_TYPE = symbolFor('react.suspense');\n REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list');\n REACT_MEMO_TYPE = symbolFor('react.memo');\n REACT_LAZY_TYPE = symbolFor('react.lazy');\n REACT_BLOCK_TYPE = symbolFor('react.block');\n REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block');\n REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental');\n REACT_SCOPE_TYPE = symbolFor('react.scope');\n REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id');\n REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode');\n REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen');\n REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden');\n}\n\n// Filter certain DOM attributes (e.g. src, href) if their values are empty strings.\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || type === REACT_DEBUG_TRACING_MODE_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_LEGACY_HIDDEN_TYPE || enableScopeAPI ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_BLOCK_TYPE || type[0] === REACT_SERVER_BLOCK_TYPE) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\nvar hasWarnedAboutDeprecatedIsConcurrentMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isConcurrentMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsConcurrentMode) {\n hasWarnedAboutDeprecatedIsConcurrentMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isConcurrentMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtaXMvY2pzL3JlYWN0LWlzLmRldmVsb3BtZW50LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWE7O0FBRWIsSUFBSSxJQUFxQztBQUN6QztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUEsNEJBQTRCOztBQUU1QjtBQUNBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNEQUFzRDs7QUFFdEQ7QUFDQTtBQUNBO0FBQ0Esa0RBQWtEOztBQUVsRDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVEQUF1RDs7QUFFdkQ7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsdUJBQXVCO0FBQ3ZCLHVCQUF1QjtBQUN2QixlQUFlO0FBQ2Ysa0JBQWtCO0FBQ2xCLGdCQUFnQjtBQUNoQixZQUFZO0FBQ1osWUFBWTtBQUNaLGNBQWM7QUFDZCxnQkFBZ0I7QUFDaEIsa0JBQWtCO0FBQ2xCLGdCQUFnQjtBQUNoQixtQkFBbUI7QUFDbkIsd0JBQXdCO0FBQ3hCLHlCQUF5QjtBQUN6Qix5QkFBeUI7QUFDekIsaUJBQWlCO0FBQ2pCLG9CQUFvQjtBQUNwQixrQkFBa0I7QUFDbEIsY0FBYztBQUNkLGNBQWM7QUFDZCxnQkFBZ0I7QUFDaEIsa0JBQWtCO0FBQ2xCLG9CQUFvQjtBQUNwQixrQkFBa0I7QUFDbEIsMEJBQTBCO0FBQzFCLGNBQWM7QUFDZCxHQUFHO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWlzL2Nqcy9yZWFjdC1pcy5kZXZlbG9wbWVudC5qcz80OTZhIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBAbGljZW5zZSBSZWFjdCB2MTcuMC4yXG4gKiByZWFjdC1pcy5kZXZlbG9wbWVudC5qc1xuICpcbiAqIENvcHlyaWdodCAoYykgRmFjZWJvb2ssIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAoZnVuY3Rpb24oKSB7XG4ndXNlIHN0cmljdCc7XG5cbi8vIEFUVEVOVElPTlxuLy8gV2hlbiBhZGRpbmcgbmV3IHN5bWJvbHMgdG8gdGhpcyBmaWxlLFxuLy8gUGxlYXNlIGNvbnNpZGVyIGFsc28gYWRkaW5nIHRvICdyZWFjdC1kZXZ0b29scy1zaGFyZWQvc3JjL2JhY2tlbmQvUmVhY3RTeW1ib2xzJ1xuLy8gVGhlIFN5bWJvbCB1c2VkIHRvIHRhZyB0aGUgUmVhY3RFbGVtZW50LWxpa2UgdHlwZXMuIElmIHRoZXJlIGlzIG5vIG5hdGl2ZSBTeW1ib2xcbi8vIG5vciBwb2x5ZmlsbCwgdGhlbiBhIHBsYWluIG51bWJlciBpcyB1c2VkIGZvciBwZXJmb3JtYW5jZS5cbnZhciBSRUFDVF9FTEVNRU5UX1RZUEUgPSAweGVhYzc7XG52YXIgUkVBQ1RfUE9SVEFMX1RZUEUgPSAweGVhY2E7XG52YXIgUkVBQ1RfRlJBR01FTlRfVFlQRSA9IDB4ZWFjYjtcbnZhciBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFID0gMHhlYWNjO1xudmFyIFJFQUNUX1BST0ZJTEVSX1RZUEUgPSAweGVhZDI7XG52YXIgUkVBQ1RfUFJPVklERVJfVFlQRSA9IDB4ZWFjZDtcbnZhciBSRUFDVF9DT05URVhUX1RZUEUgPSAweGVhY2U7XG52YXIgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSA9IDB4ZWFkMDtcbnZhciBSRUFDVF9TVVNQRU5TRV9UWVBFID0gMHhlYWQxO1xudmFyIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSA9IDB4ZWFkODtcbnZhciBSRUFDVF9NRU1PX1RZUEUgPSAweGVhZDM7XG52YXIgUkVBQ1RfTEFaWV9UWVBFID0gMHhlYWQ0O1xudmFyIFJFQUNUX0JMT0NLX1RZUEUgPSAweGVhZDk7XG52YXIgUkVBQ1RfU0VSVkVSX0JMT0NLX1RZUEUgPSAweGVhZGE7XG52YXIgUkVBQ1RfRlVOREFNRU5UQUxfVFlQRSA9IDB4ZWFkNTtcbnZhciBSRUFDVF9TQ09QRV9UWVBFID0gMHhlYWQ3O1xudmFyIFJFQUNUX09QQVFVRV9JRF9UWVBFID0gMHhlYWUwO1xudmFyIFJFQUNUX0RFQlVHX1RSQUNJTkdfTU9ERV9UWVBFID0gMHhlYWUxO1xudmFyIFJFQUNUX09GRlNDUkVFTl9UWVBFID0gMHhlYWUyO1xudmFyIFJFQUNUX0xFR0FDWV9ISURERU5fVFlQRSA9IDB4ZWFlMztcblxuaWYgKHR5cGVvZiBTeW1ib2wgPT09ICdmdW5jdGlvbicgJiYgU3ltYm9sLmZvcikge1xuICB2YXIgc3ltYm9sRm9yID0gU3ltYm9sLmZvcjtcbiAgUkVBQ1RfRUxFTUVOVF9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5lbGVtZW50Jyk7XG4gIFJFQUNUX1BPUlRBTF9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5wb3J0YWwnKTtcbiAgUkVBQ1RfRlJBR01FTlRfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QuZnJhZ21lbnQnKTtcbiAgUkVBQ1RfU1RSSUNUX01PREVfVFlQRSA9IHN5bWJvbEZvcigncmVhY3Quc3RyaWN0X21vZGUnKTtcbiAgUkVBQ1RfUFJPRklMRVJfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QucHJvZmlsZXInKTtcbiAgUkVBQ1RfUFJPVklERVJfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QucHJvdmlkZXInKTtcbiAgUkVBQ1RfQ09OVEVYVF9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5jb250ZXh0Jyk7XG4gIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LmZvcndhcmRfcmVmJyk7XG4gIFJFQUNUX1NVU1BFTlNFX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LnN1c3BlbnNlJyk7XG4gIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSA9IHN5bWJvbEZvcigncmVhY3Quc3VzcGVuc2VfbGlzdCcpO1xuICBSRUFDVF9NRU1PX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0Lm1lbW8nKTtcbiAgUkVBQ1RfTEFaWV9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5sYXp5Jyk7XG4gIFJFQUNUX0JMT0NLX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LmJsb2NrJyk7XG4gIFJFQUNUX1NFUlZFUl9CTE9DS19UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5zZXJ2ZXIuYmxvY2snKTtcbiAgUkVBQ1RfRlVOREFNRU5UQUxfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QuZnVuZGFtZW50YWwnKTtcbiAgUkVBQ1RfU0NPUEVfVFlQRSA9IHN5bWJvbEZvcigncmVhY3Quc2NvcGUnKTtcbiAgUkVBQ1RfT1BBUVVFX0lEX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0Lm9wYXF1ZS5pZCcpO1xuICBSRUFDVF9ERUJVR19UUkFDSU5HX01PREVfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QuZGVidWdfdHJhY2VfbW9kZScpO1xuICBSRUFDVF9PRkZTQ1JFRU5fVFlQRSA9IHN5bWJvbEZvcigncmVhY3Qub2Zmc2NyZWVuJyk7XG4gIFJFQUNUX0xFR0FDWV9ISURERU5fVFlQRSA9IHN5bWJvbEZvcigncmVhY3QubGVnYWN5X2hpZGRlbicpO1xufVxuXG4vLyBGaWx0ZXIgY2VydGFpbiBET00gYXR0cmlidXRlcyAoZS5nLiBzcmMsIGhyZWYpIGlmIHRoZWlyIHZhbHVlcyBhcmUgZW1wdHkgc3RyaW5ncy5cblxudmFyIGVuYWJsZVNjb3BlQVBJID0gZmFsc2U7IC8vIEV4cGVyaW1lbnRhbCBDcmVhdGUgRXZlbnQgSGFuZGxlIEFQSS5cblxuZnVuY3Rpb24gaXNWYWxpZEVsZW1lbnRUeXBlKHR5cGUpIHtcbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiB0cnVlO1xuICB9IC8vIE5vdGU6IHR5cGVvZiBtaWdodCBiZSBvdGhlciB0aGFuICdzeW1ib2wnIG9yICdudW1iZXInIChlLmcuIGlmIGl0J3MgYSBwb2x5ZmlsbCkuXG5cblxuICBpZiAodHlwZSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9QUk9GSUxFUl9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX0RFQlVHX1RSQUNJTkdfTU9ERV9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgfHwgdHlwZSA9PT0gUkVBQ1RfU1VTUEVOU0VfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUgfHwgdHlwZSA9PT0gUkVBQ1RfTEVHQUNZX0hJRERFTl9UWVBFIHx8IGVuYWJsZVNjb3BlQVBJICkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnb2JqZWN0JyAmJiB0eXBlICE9PSBudWxsKSB7XG4gICAgaWYgKHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0xBWllfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9NRU1PX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfUFJPVklERVJfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9DT05URVhUX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9GVU5EQU1FTlRBTF9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0JMT0NLX1RZUEUgfHwgdHlwZVswXSA9PT0gUkVBQ1RfU0VSVkVSX0JMT0NLX1RZUEUpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gdHlwZU9mKG9iamVjdCkge1xuICBpZiAodHlwZW9mIG9iamVjdCA9PT0gJ29iamVjdCcgJiYgb2JqZWN0ICE9PSBudWxsKSB7XG4gICAgdmFyICQkdHlwZW9mID0gb2JqZWN0LiQkdHlwZW9mO1xuXG4gICAgc3dpdGNoICgkJHR5cGVvZikge1xuICAgICAgY2FzZSBSRUFDVF9FTEVNRU5UX1RZUEU6XG4gICAgICAgIHZhciB0eXBlID0gb2JqZWN0LnR5cGU7XG5cbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgY2FzZSBSRUFDVF9GUkFHTUVOVF9UWVBFOlxuICAgICAgICAgIGNhc2UgUkVBQ1RfUFJPRklMRVJfVFlQRTpcbiAgICAgICAgICBjYXNlIFJFQUNUX1NUUklDVF9NT0RFX1RZUEU6XG4gICAgICAgICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9UWVBFOlxuICAgICAgICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFOlxuICAgICAgICAgICAgcmV0dXJuIHR5cGU7XG5cbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdmFyICQkdHlwZW9mVHlwZSA9IHR5cGUgJiYgdHlwZS4kJHR5cGVvZjtcblxuICAgICAgICAgICAgc3dpdGNoICgkJHR5cGVvZlR5cGUpIHtcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9DT05URVhUX1RZUEU6XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTpcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOlxuICAgICAgICAgICAgICBjYXNlIFJFQUNUX1BST1ZJREVSX1RZUEU6XG4gICAgICAgICAgICAgICAgcmV0dXJuICQkdHlwZW9mVHlwZTtcblxuICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiAkJHR5cGVvZjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgIGNhc2UgUkVBQ1RfUE9SVEFMX1RZUEU6XG4gICAgICAgIHJldHVybiAkJHR5cGVvZjtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxudmFyIENvbnRleHRDb25zdW1lciA9IFJFQUNUX0NPTlRFWFRfVFlQRTtcbnZhciBDb250ZXh0UHJvdmlkZXIgPSBSRUFDVF9QUk9WSURFUl9UWVBFO1xudmFyIEVsZW1lbnQgPSBSRUFDVF9FTEVNRU5UX1RZUEU7XG52YXIgRm9yd2FyZFJlZiA9IFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU7XG52YXIgRnJhZ21lbnQgPSBSRUFDVF9GUkFHTUVOVF9UWVBFO1xudmFyIExhenkgPSBSRUFDVF9MQVpZX1RZUEU7XG52YXIgTWVtbyA9IFJFQUNUX01FTU9fVFlQRTtcbnZhciBQb3J0YWwgPSBSRUFDVF9QT1JUQUxfVFlQRTtcbnZhciBQcm9maWxlciA9IFJFQUNUX1BST0ZJTEVSX1RZUEU7XG52YXIgU3RyaWN0TW9kZSA9IFJFQUNUX1NUUklDVF9NT0RFX1RZUEU7XG52YXIgU3VzcGVuc2UgPSBSRUFDVF9TVVNQRU5TRV9UWVBFO1xudmFyIGhhc1dhcm5lZEFib3V0RGVwcmVjYXRlZElzQXN5bmNNb2RlID0gZmFsc2U7XG52YXIgaGFzV2FybmVkQWJvdXREZXByZWNhdGVkSXNDb25jdXJyZW50TW9kZSA9IGZhbHNlOyAvLyBBc3luY01vZGUgc2hvdWxkIGJlIGRlcHJlY2F0ZWRcblxuZnVuY3Rpb24gaXNBc3luY01vZGUob2JqZWN0KSB7XG4gIHtcbiAgICBpZiAoIWhhc1dhcm5lZEFib3V0RGVwcmVjYXRlZElzQXN5bmNNb2RlKSB7XG4gICAgICBoYXNXYXJuZWRBYm91dERlcHJlY2F0ZWRJc0FzeW5jTW9kZSA9IHRydWU7IC8vIFVzaW5nIGNvbnNvbGVbJ3dhcm4nXSB0byBldmFkZSBCYWJlbCBhbmQgRVNMaW50XG5cbiAgICAgIGNvbnNvbGVbJ3dhcm4nXSgnVGhlIFJlYWN0SXMuaXNBc3luY01vZGUoKSBhbGlhcyBoYXMgYmVlbiBkZXByZWNhdGVkLCAnICsgJ2FuZCB3aWxsIGJlIHJlbW92ZWQgaW4gUmVhY3QgMTgrLicpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cbmZ1bmN0aW9uIGlzQ29uY3VycmVudE1vZGUob2JqZWN0KSB7XG4gIHtcbiAgICBpZiAoIWhhc1dhcm5lZEFib3V0RGVwcmVjYXRlZElzQ29uY3VycmVudE1vZGUpIHtcbiAgICAgIGhhc1dhcm5lZEFib3V0RGVwcmVjYXRlZElzQ29uY3VycmVudE1vZGUgPSB0cnVlOyAvLyBVc2luZyBjb25zb2xlWyd3YXJuJ10gdG8gZXZhZGUgQmFiZWwgYW5kIEVTTGludFxuXG4gICAgICBjb25zb2xlWyd3YXJuJ10oJ1RoZSBSZWFjdElzLmlzQ29uY3VycmVudE1vZGUoKSBhbGlhcyBoYXMgYmVlbiBkZXByZWNhdGVkLCAnICsgJ2FuZCB3aWxsIGJlIHJlbW92ZWQgaW4gUmVhY3QgMTgrLicpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cbmZ1bmN0aW9uIGlzQ29udGV4dENvbnN1bWVyKG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX0NPTlRFWFRfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzQ29udGV4dFByb3ZpZGVyKG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX1BST1ZJREVSX1RZUEU7XG59XG5mdW5jdGlvbiBpc0VsZW1lbnQob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlb2Ygb2JqZWN0ID09PSAnb2JqZWN0JyAmJiBvYmplY3QgIT09IG51bGwgJiYgb2JqZWN0LiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEU7XG59XG5mdW5jdGlvbiBpc0ZvcndhcmRSZWYob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzRnJhZ21lbnQob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzTGF6eShvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9MQVpZX1RZUEU7XG59XG5mdW5jdGlvbiBpc01lbW8ob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfTUVNT19UWVBFO1xufVxuZnVuY3Rpb24gaXNQb3J0YWwob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfUE9SVEFMX1RZUEU7XG59XG5mdW5jdGlvbiBpc1Byb2ZpbGVyKG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX1BST0ZJTEVSX1RZUEU7XG59XG5mdW5jdGlvbiBpc1N0cmljdE1vZGUob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfU1RSSUNUX01PREVfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzU3VzcGVuc2Uob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfU1VTUEVOU0VfVFlQRTtcbn1cblxuZXhwb3J0cy5Db250ZXh0Q29uc3VtZXIgPSBDb250ZXh0Q29uc3VtZXI7XG5leHBvcnRzLkNvbnRleHRQcm92aWRlciA9IENvbnRleHRQcm92aWRlcjtcbmV4cG9ydHMuRWxlbWVudCA9IEVsZW1lbnQ7XG5leHBvcnRzLkZvcndhcmRSZWYgPSBGb3J3YXJkUmVmO1xuZXhwb3J0cy5GcmFnbWVudCA9IEZyYWdtZW50O1xuZXhwb3J0cy5MYXp5ID0gTGF6eTtcbmV4cG9ydHMuTWVtbyA9IE1lbW87XG5leHBvcnRzLlBvcnRhbCA9IFBvcnRhbDtcbmV4cG9ydHMuUHJvZmlsZXIgPSBQcm9maWxlcjtcbmV4cG9ydHMuU3RyaWN0TW9kZSA9IFN0cmljdE1vZGU7XG5leHBvcnRzLlN1c3BlbnNlID0gU3VzcGVuc2U7XG5leHBvcnRzLmlzQXN5bmNNb2RlID0gaXNBc3luY01vZGU7XG5leHBvcnRzLmlzQ29uY3VycmVudE1vZGUgPSBpc0NvbmN1cnJlbnRNb2RlO1xuZXhwb3J0cy5pc0NvbnRleHRDb25zdW1lciA9IGlzQ29udGV4dENvbnN1bWVyO1xuZXhwb3J0cy5pc0NvbnRleHRQcm92aWRlciA9IGlzQ29udGV4dFByb3ZpZGVyO1xuZXhwb3J0cy5pc0VsZW1lbnQgPSBpc0VsZW1lbnQ7XG5leHBvcnRzLmlzRm9yd2FyZFJlZiA9IGlzRm9yd2FyZFJlZjtcbmV4cG9ydHMuaXNGcmFnbWVudCA9IGlzRnJhZ21lbnQ7XG5leHBvcnRzLmlzTGF6eSA9IGlzTGF6eTtcbmV4cG9ydHMuaXNNZW1vID0gaXNNZW1vO1xuZXhwb3J0cy5pc1BvcnRhbCA9IGlzUG9ydGFsO1xuZXhwb3J0cy5pc1Byb2ZpbGVyID0gaXNQcm9maWxlcjtcbmV4cG9ydHMuaXNTdHJpY3RNb2RlID0gaXNTdHJpY3RNb2RlO1xuZXhwb3J0cy5pc1N1c3BlbnNlID0gaXNTdXNwZW5zZTtcbmV4cG9ydHMuaXNWYWxpZEVsZW1lbnRUeXBlID0gaXNWYWxpZEVsZW1lbnRUeXBlO1xuZXhwb3J0cy50eXBlT2YgPSB0eXBlT2Y7XG4gIH0pKCk7XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-is/cjs/react-is.development.js\n"); + +/***/ }), + +/***/ "./node_modules/react-is/index.js": +/*!****************************************!*\ + !*** ./node_modules/react-is/index.js ***! + \****************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ \"./node_modules/react-is/cjs/react-is.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtaXMvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsSUFBSSxLQUFxQyxFQUFFLEVBRTFDLENBQUM7QUFDRixFQUFFLGdJQUF5RDtBQUMzRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmVhY3QtaXMvaW5kZXguanM/YjMxMyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtaXMucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtaXMuZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-is/index.js\n"); + +/***/ }), + +/***/ "./node_modules/react/cjs/react.development.js": +/*!*****************************************************!*\ + !*** ./node_modules/react/cjs/react.development.js ***! + \*****************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("/** @license React v17.0.2\n * react.development.js\n *\n * Copyright (c) Facebook, Inc. and its 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\n\n\nif (true) {\n (function() {\n'use strict';\n\nvar _assign = __webpack_require__(/*! object-assign */ \"./node_modules/next/dist/build/polyfills/object-assign.js\");\n\n// TODO: this is special because it gets imported during build.\nvar ReactVersion = '17.0.2';\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar REACT_ELEMENT_TYPE = 0xeac7;\nvar REACT_PORTAL_TYPE = 0xeaca;\nexports.Fragment = 0xeacb;\nexports.StrictMode = 0xeacc;\nexports.Profiler = 0xead2;\nvar REACT_PROVIDER_TYPE = 0xeacd;\nvar REACT_CONTEXT_TYPE = 0xeace;\nvar REACT_FORWARD_REF_TYPE = 0xead0;\nexports.Suspense = 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = 0xead8;\nvar REACT_MEMO_TYPE = 0xead3;\nvar REACT_LAZY_TYPE = 0xead4;\nvar REACT_BLOCK_TYPE = 0xead9;\nvar REACT_SERVER_BLOCK_TYPE = 0xeada;\nvar REACT_FUNDAMENTAL_TYPE = 0xead5;\nvar REACT_SCOPE_TYPE = 0xead7;\nvar REACT_OPAQUE_ID_TYPE = 0xeae0;\nvar REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1;\nvar REACT_OFFSCREEN_TYPE = 0xeae2;\nvar REACT_LEGACY_HIDDEN_TYPE = 0xeae3;\n\nif (typeof Symbol === 'function' && Symbol.for) {\n var symbolFor = Symbol.for;\n REACT_ELEMENT_TYPE = symbolFor('react.element');\n REACT_PORTAL_TYPE = symbolFor('react.portal');\n exports.Fragment = symbolFor('react.fragment');\n exports.StrictMode = symbolFor('react.strict_mode');\n exports.Profiler = symbolFor('react.profiler');\n REACT_PROVIDER_TYPE = symbolFor('react.provider');\n REACT_CONTEXT_TYPE = symbolFor('react.context');\n REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref');\n exports.Suspense = symbolFor('react.suspense');\n REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list');\n REACT_MEMO_TYPE = symbolFor('react.memo');\n REACT_LAZY_TYPE = symbolFor('react.lazy');\n REACT_BLOCK_TYPE = symbolFor('react.block');\n REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block');\n REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental');\n REACT_SCOPE_TYPE = symbolFor('react.scope');\n REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id');\n REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode');\n REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen');\n REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden');\n}\n\nvar MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\n return null;\n }\n\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n\n return null;\n}\n\n/**\n * Keeps track of the current dispatcher.\n */\nvar ReactCurrentDispatcher = {\n /**\n * @internal\n * @type {ReactComponent}\n */\n current: null\n};\n\n/**\n * Keeps track of the current batch's configuration such as how long an update\n * should suspend for if it needs to.\n */\nvar ReactCurrentBatchConfig = {\n transition: 0\n};\n\n/**\n * Keeps track of the current owner.\n *\n * The current owner is the component who should own any components that are\n * currently being constructed.\n */\nvar ReactCurrentOwner = {\n /**\n * @internal\n * @type {ReactComponent}\n */\n current: null\n};\n\nvar ReactDebugCurrentFrame = {};\nvar currentExtraStackFrame = null;\nfunction setExtraStackFrame(stack) {\n {\n currentExtraStackFrame = stack;\n }\n}\n\n{\n ReactDebugCurrentFrame.setExtraStackFrame = function (stack) {\n {\n currentExtraStackFrame = stack;\n }\n }; // Stack implementation injected by the current renderer.\n\n\n ReactDebugCurrentFrame.getCurrentStack = null;\n\n ReactDebugCurrentFrame.getStackAddendum = function () {\n var stack = ''; // Add an extra top frame while an element is being validated\n\n if (currentExtraStackFrame) {\n stack += currentExtraStackFrame;\n } // Delegate to the injected renderer-specific implementation\n\n\n var impl = ReactDebugCurrentFrame.getCurrentStack;\n\n if (impl) {\n stack += impl() || '';\n }\n\n return stack;\n };\n}\n\n/**\n * Used by act() to track whether you're inside an act() scope.\n */\nvar IsSomeRendererActing = {\n current: false\n};\n\nvar ReactSharedInternals = {\n ReactCurrentDispatcher: ReactCurrentDispatcher,\n ReactCurrentBatchConfig: ReactCurrentBatchConfig,\n ReactCurrentOwner: ReactCurrentOwner,\n IsSomeRendererActing: IsSomeRendererActing,\n // Used by renderers to avoid bundling object-assign twice in UMD bundles:\n assign: _assign\n};\n\n{\n ReactSharedInternals.ReactDebugCurrentFrame = ReactDebugCurrentFrame;\n}\n\n// by calls to these methods by a Babel plugin.\n//\n// In PROD (or in packages without access to React internals),\n// they are left as they are instead.\n\nfunction warn(format) {\n {\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\n printWarning('warn', format, args);\n }\n}\nfunction error(format) {\n {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n printWarning('error', format, args);\n }\n}\n\nfunction printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n }\n\n var argsWithFormat = args.map(function (item) {\n return '' + item;\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n}\n\nvar didWarnStateUpdateForUnmountedComponent = {};\n\nfunction warnNoop(publicInstance, callerName) {\n {\n var _constructor = publicInstance.constructor;\n var componentName = _constructor && (_constructor.displayName || _constructor.name) || 'ReactClass';\n var warningKey = componentName + \".\" + callerName;\n\n if (didWarnStateUpdateForUnmountedComponent[warningKey]) {\n return;\n }\n\n error(\"Can't call %s on a component that is not yet mounted. \" + 'This is a no-op, but it might indicate a bug in your application. ' + 'Instead, assign to `this.state` directly or define a `state = {};` ' + 'class property with the desired state in the %s component.', callerName, componentName);\n\n didWarnStateUpdateForUnmountedComponent[warningKey] = true;\n }\n}\n/**\n * This is the abstract API for an update queue.\n */\n\n\nvar ReactNoopUpdateQueue = {\n /**\n * Checks whether or not this composite component is mounted.\n * @param {ReactClass} publicInstance The instance we want to test.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function (publicInstance) {\n return false;\n },\n\n /**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {?function} callback Called after component is updated.\n * @param {?string} callerName name of the calling function in the public API.\n * @internal\n */\n enqueueForceUpdate: function (publicInstance, callback, callerName) {\n warnNoop(publicInstance, 'forceUpdate');\n },\n\n /**\n * Replaces all of the state. Always use this or `setState` to mutate state.\n * You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} completeState Next state.\n * @param {?function} callback Called after component is updated.\n * @param {?string} callerName name of the calling function in the public API.\n * @internal\n */\n enqueueReplaceState: function (publicInstance, completeState, callback, callerName) {\n warnNoop(publicInstance, 'replaceState');\n },\n\n /**\n * Sets a subset of the state. This only exists because _pendingState is\n * internal. This provides a merging strategy that is not available to deep\n * properties which is confusing. TODO: Expose pendingState or don't use it\n * during the merge.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} partialState Next partial state to be merged with state.\n * @param {?function} callback Called after component is updated.\n * @param {?string} Name of the calling function in the public API.\n * @internal\n */\n enqueueSetState: function (publicInstance, partialState, callback, callerName) {\n warnNoop(publicInstance, 'setState');\n }\n};\n\nvar emptyObject = {};\n\n{\n Object.freeze(emptyObject);\n}\n/**\n * Base class helpers for the updating state of a component.\n */\n\n\nfunction Component(props, context, updater) {\n this.props = props;\n this.context = context; // If a component has string refs, we will assign a different object later.\n\n this.refs = emptyObject; // We initialize the default updater but the real one gets injected by the\n // renderer.\n\n this.updater = updater || ReactNoopUpdateQueue;\n}\n\nComponent.prototype.isReactComponent = {};\n/**\n * Sets a subset of the state. Always use this to mutate\n * state. You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * There is no guarantee that calls to `setState` will run synchronously,\n * as they may eventually be batched together. You can provide an optional\n * callback that will be executed when the call to setState is actually\n * completed.\n *\n * When a function is provided to setState, it will be called at some point in\n * the future (not synchronously). It will be called with the up to date\n * component arguments (state, props, context). These values can be different\n * from this.* because your function may be called after receiveProps but before\n * shouldComponentUpdate, and this new state, props, and context will not yet be\n * assigned to this.\n *\n * @param {object|function} partialState Next partial state or function to\n * produce next partial state to be merged with current state.\n * @param {?function} callback Called after state is updated.\n * @final\n * @protected\n */\n\nComponent.prototype.setState = function (partialState, callback) {\n if (!(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null)) {\n {\n throw Error( \"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\" );\n }\n }\n\n this.updater.enqueueSetState(this, partialState, callback, 'setState');\n};\n/**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {?function} callback Called after update is complete.\n * @final\n * @protected\n */\n\n\nComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, 'forceUpdate');\n};\n/**\n * Deprecated APIs. These APIs used to exist on classic React classes but since\n * we would like to deprecate them, we're not going to move them over to this\n * modern base class. Instead, we define a getter that warns if it's accessed.\n */\n\n\n{\n var deprecatedAPIs = {\n isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],\n replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).']\n };\n\n var defineDeprecationWarning = function (methodName, info) {\n Object.defineProperty(Component.prototype, methodName, {\n get: function () {\n warn('%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]);\n\n return undefined;\n }\n });\n };\n\n for (var fnName in deprecatedAPIs) {\n if (deprecatedAPIs.hasOwnProperty(fnName)) {\n defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n }\n }\n}\n\nfunction ComponentDummy() {}\n\nComponentDummy.prototype = Component.prototype;\n/**\n * Convenience component with default shallow equality check for sCU.\n */\n\nfunction PureComponent(props, context, updater) {\n this.props = props;\n this.context = context; // If a component has string refs, we will assign a different object later.\n\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\n\nvar pureComponentPrototype = PureComponent.prototype = new ComponentDummy();\npureComponentPrototype.constructor = PureComponent; // Avoid an extra prototype jump for these methods.\n\n_assign(pureComponentPrototype, Component.prototype);\n\npureComponentPrototype.isPureReactComponent = true;\n\n// an immutable object with a single mutable value\nfunction createRef() {\n var refObject = {\n current: null\n };\n\n {\n Object.seal(refObject);\n }\n\n return refObject;\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var functionName = innerType.displayName || innerType.name || '';\n return outerType.displayName || (functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName);\n}\n\nfunction getContextName(type) {\n return type.displayName || 'Context';\n}\n\nfunction getComponentName(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n\n {\n if (typeof type.tag === 'number') {\n error('Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.');\n }\n }\n\n if (typeof type === 'function') {\n return type.displayName || type.name || null;\n }\n\n if (typeof type === 'string') {\n return type;\n }\n\n switch (type) {\n case exports.Fragment:\n return 'Fragment';\n\n case REACT_PORTAL_TYPE:\n return 'Portal';\n\n case exports.Profiler:\n return 'Profiler';\n\n case exports.StrictMode:\n return 'StrictMode';\n\n case exports.Suspense:\n return 'Suspense';\n\n case REACT_SUSPENSE_LIST_TYPE:\n return 'SuspenseList';\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + '.Consumer';\n\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + '.Provider';\n\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, 'ForwardRef');\n\n case REACT_MEMO_TYPE:\n return getComponentName(type.type);\n\n case REACT_BLOCK_TYPE:\n return getComponentName(type._render);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n return getComponentName(init(payload));\n } catch (x) {\n return null;\n }\n }\n }\n }\n\n return null;\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n};\nvar specialPropKeyWarningShown, specialPropRefWarningShown, didWarnAboutStringRefs;\n\n{\n didWarnAboutStringRefs = {};\n}\n\nfunction hasValidRef(config) {\n {\n if (hasOwnProperty.call(config, 'ref')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n {\n if (hasOwnProperty.call(config, 'key')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.key !== undefined;\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n var warnAboutAccessingKey = function () {\n {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n\n error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n }\n };\n\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n var warnAboutAccessingRef = function () {\n {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n\n error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n }\n };\n\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n}\n\nfunction warnIfStringRefCannotBeAutoConverted(config) {\n {\n if (typeof config.ref === 'string' && ReactCurrentOwner.current && config.__self && ReactCurrentOwner.current.stateNode !== config.__self) {\n var componentName = getComponentName(ReactCurrentOwner.current.type);\n\n if (!didWarnAboutStringRefs[componentName]) {\n error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', componentName, config.ref);\n\n didWarnAboutStringRefs[componentName] = true;\n }\n }\n }\n}\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */\n\n\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allows us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n // Record the component responsible for creating this element.\n _owner: owner\n };\n\n {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n\n Object.defineProperty(element._store, 'validated', {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n }); // self and source are DEV only properties.\n\n Object.defineProperty(element, '_self', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n }); // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n\n Object.defineProperty(element, '_source', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n\n return element;\n};\n/**\n * Create and return a new ReactElement of the given type.\n * See https://reactjs.org/docs/react-api.html#createelement\n */\n\nfunction createElement(type, config, children) {\n var propName; // Reserved names are extracted\n\n var props = {};\n var key = null;\n var ref = null;\n var self = null;\n var source = null;\n\n if (config != null) {\n if (hasValidRef(config)) {\n ref = config.ref;\n\n {\n warnIfStringRefCannotBeAutoConverted(config);\n }\n }\n\n if (hasValidKey(config)) {\n key = '' + config.key;\n }\n\n self = config.__self === undefined ? null : config.__self;\n source = config.__source === undefined ? null : config.__source; // Remaining properties are added to a new props object\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n }\n } // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n\n\n var childrenLength = arguments.length - 2;\n\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 2];\n }\n\n {\n if (Object.freeze) {\n Object.freeze(childArray);\n }\n }\n\n props.children = childArray;\n } // Resolve default props\n\n\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n\n {\n if (key || ref) {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n }\n\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n}\nfunction cloneAndReplaceKey(oldElement, newKey) {\n var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props);\n return newElement;\n}\n/**\n * Clone and return a new ReactElement using element as the starting point.\n * See https://reactjs.org/docs/react-api.html#cloneelement\n */\n\nfunction cloneElement(element, config, children) {\n if (!!(element === null || element === undefined)) {\n {\n throw Error( \"React.cloneElement(...): The argument must be a React element, but you passed \" + element + \".\" );\n }\n }\n\n var propName; // Original props are copied\n\n var props = _assign({}, element.props); // Reserved names are extracted\n\n\n var key = element.key;\n var ref = element.ref; // Self is preserved since the owner is preserved.\n\n var self = element._self; // Source is preserved since cloneElement is unlikely to be targeted by a\n // transpiler, and the original source is probably a better indicator of the\n // true owner.\n\n var source = element._source; // Owner will be preserved, unless ref is overridden\n\n var owner = element._owner;\n\n if (config != null) {\n if (hasValidRef(config)) {\n // Silently steal the ref from the parent.\n ref = config.ref;\n owner = ReactCurrentOwner.current;\n }\n\n if (hasValidKey(config)) {\n key = '' + config.key;\n } // Remaining properties override existing props\n\n\n var defaultProps;\n\n if (element.type && element.type.defaultProps) {\n defaultProps = element.type.defaultProps;\n }\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n if (config[propName] === undefined && defaultProps !== undefined) {\n // Resolve default props\n props[propName] = defaultProps[propName];\n } else {\n props[propName] = config[propName];\n }\n }\n }\n } // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n\n\n var childrenLength = arguments.length - 2;\n\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 2];\n }\n\n props.children = childArray;\n }\n\n return ReactElement(element.type, key, ref, self, source, owner, props);\n}\n/**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */\n\nfunction isValidElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\n\nvar SEPARATOR = '.';\nvar SUBSEPARATOR = ':';\n/**\n * Escape and wrap key so it is safe to use as a reactid\n *\n * @param {string} key to be escaped.\n * @return {string} the escaped key.\n */\n\nfunction escape(key) {\n var escapeRegex = /[=:]/g;\n var escaperLookup = {\n '=': '=0',\n ':': '=2'\n };\n var escapedString = key.replace(escapeRegex, function (match) {\n return escaperLookup[match];\n });\n return '$' + escapedString;\n}\n/**\n * TODO: Test that a single child and an array with one item have the same key\n * pattern.\n */\n\n\nvar didWarnAboutMaps = false;\nvar userProvidedKeyEscapeRegex = /\\/+/g;\n\nfunction escapeUserProvidedKey(text) {\n return text.replace(userProvidedKeyEscapeRegex, '$&/');\n}\n/**\n * Generate a key string that identifies a element within a set.\n *\n * @param {*} element A element that could contain a manual key.\n * @param {number} index Index that is used if a manual key is not provided.\n * @return {string}\n */\n\n\nfunction getElementKey(element, index) {\n // Do some typechecking here since we call this blindly. We want to ensure\n // that we don't block potential future ES APIs.\n if (typeof element === 'object' && element !== null && element.key != null) {\n // Explicit key\n return escape('' + element.key);\n } // Implicit key determined by the index in the set\n\n\n return index.toString(36);\n}\n\nfunction mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n\n if (type === 'undefined' || type === 'boolean') {\n // All of the above are perceived as null.\n children = null;\n }\n\n var invokeCallback = false;\n\n if (children === null) {\n invokeCallback = true;\n } else {\n switch (type) {\n case 'string':\n case 'number':\n invokeCallback = true;\n break;\n\n case 'object':\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = true;\n }\n\n }\n }\n\n if (invokeCallback) {\n var _child = children;\n var mappedChild = callback(_child); // If it's the only child, treat the name as if it was wrapped in an array\n // so that it's consistent if the number of children grows:\n\n var childKey = nameSoFar === '' ? SEPARATOR + getElementKey(_child, 0) : nameSoFar;\n\n if (Array.isArray(mappedChild)) {\n var escapedChildKey = '';\n\n if (childKey != null) {\n escapedChildKey = escapeUserProvidedKey(childKey) + '/';\n }\n\n mapIntoArray(mappedChild, array, escapedChildKey, '', function (c) {\n return c;\n });\n } else if (mappedChild != null) {\n if (isValidElement(mappedChild)) {\n mappedChild = cloneAndReplaceKey(mappedChild, // Keep both the (mapped) and old keys if they differ, just as\n // traverseAllChildren used to do for objects as children\n escapedPrefix + ( // $FlowFixMe Flow incorrectly thinks React.Portal doesn't have a key\n mappedChild.key && (!_child || _child.key !== mappedChild.key) ? // $FlowFixMe Flow incorrectly thinks existing element's key can be a number\n escapeUserProvidedKey('' + mappedChild.key) + '/' : '') + childKey);\n }\n\n array.push(mappedChild);\n }\n\n return 1;\n }\n\n var child;\n var nextName;\n var subtreeCount = 0; // Count of children found in the current subtree.\n\n var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR;\n\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n nextName = nextNamePrefix + getElementKey(child, i);\n subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback);\n }\n } else {\n var iteratorFn = getIteratorFn(children);\n\n if (typeof iteratorFn === 'function') {\n var iterableChildren = children;\n\n {\n // Warn about using Maps as children\n if (iteratorFn === iterableChildren.entries) {\n if (!didWarnAboutMaps) {\n warn('Using Maps as children is not supported. ' + 'Use an array of keyed ReactElements instead.');\n }\n\n didWarnAboutMaps = true;\n }\n }\n\n var iterator = iteratorFn.call(iterableChildren);\n var step;\n var ii = 0;\n\n while (!(step = iterator.next()).done) {\n child = step.value;\n nextName = nextNamePrefix + getElementKey(child, ii++);\n subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback);\n }\n } else if (type === 'object') {\n var childrenString = '' + children;\n\n {\n {\n throw Error( \"Objects are not valid as a React child (found: \" + (childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString) + \"). If you meant to render a collection of children, use an array instead.\" );\n }\n }\n }\n }\n\n return subtreeCount;\n}\n\n/**\n * Maps children that are typically specified as `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenmap\n *\n * The provided mapFunction(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} func The map function.\n * @param {*} context Context for mapFunction.\n * @return {object} Object containing the ordered map of results.\n */\nfunction mapChildren(children, func, context) {\n if (children == null) {\n return children;\n }\n\n var result = [];\n var count = 0;\n mapIntoArray(children, result, '', '', function (child) {\n return func.call(context, child, count++);\n });\n return result;\n}\n/**\n * Count the number of children that are typically specified as\n * `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrencount\n *\n * @param {?*} children Children tree container.\n * @return {number} The number of children.\n */\n\n\nfunction countChildren(children) {\n var n = 0;\n mapChildren(children, function () {\n n++; // Don't return anything\n });\n return n;\n}\n\n/**\n * Iterates through children that are typically specified as `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenforeach\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} forEachFunc\n * @param {*} forEachContext Context for forEachContext.\n */\nfunction forEachChildren(children, forEachFunc, forEachContext) {\n mapChildren(children, function () {\n forEachFunc.apply(this, arguments); // Don't return anything.\n }, forEachContext);\n}\n/**\n * Flatten a children object (typically specified as `props.children`) and\n * return an array with appropriately re-keyed children.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrentoarray\n */\n\n\nfunction toArray(children) {\n return mapChildren(children, function (child) {\n return child;\n }) || [];\n}\n/**\n * Returns the first child in a collection of children and verifies that there\n * is only one child in the collection.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenonly\n *\n * The current implementation of this function assumes that a single child gets\n * passed without a wrapper, but the purpose of this helper function is to\n * abstract away the particular structure of children.\n *\n * @param {?object} children Child collection structure.\n * @return {ReactElement} The first and only `ReactElement` contained in the\n * structure.\n */\n\n\nfunction onlyChild(children) {\n if (!isValidElement(children)) {\n {\n throw Error( \"React.Children.only expected to receive a single React element child.\" );\n }\n }\n\n return children;\n}\n\nfunction createContext(defaultValue, calculateChangedBits) {\n if (calculateChangedBits === undefined) {\n calculateChangedBits = null;\n } else {\n {\n if (calculateChangedBits !== null && typeof calculateChangedBits !== 'function') {\n error('createContext: Expected the optional second argument to be a ' + 'function. Instead received: %s', calculateChangedBits);\n }\n }\n }\n\n var context = {\n $$typeof: REACT_CONTEXT_TYPE,\n _calculateChangedBits: calculateChangedBits,\n // As a workaround to support multiple concurrent renderers, we categorize\n // some renderers as primary and others as secondary. We only expect\n // there to be two concurrent renderers at most: React Native (primary) and\n // Fabric (secondary); React DOM (primary) and React ART (secondary).\n // Secondary renderers store their context values on separate fields.\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n // Used to track how many concurrent renderers this context currently\n // supports within in a single renderer. Such as parallel server rendering.\n _threadCount: 0,\n // These are circular\n Provider: null,\n Consumer: null\n };\n context.Provider = {\n $$typeof: REACT_PROVIDER_TYPE,\n _context: context\n };\n var hasWarnedAboutUsingNestedContextConsumers = false;\n var hasWarnedAboutUsingConsumerProvider = false;\n var hasWarnedAboutDisplayNameOnConsumer = false;\n\n {\n // A separate object, but proxies back to the original context object for\n // backwards compatibility. It has a different $$typeof, so we can properly\n // warn for the incorrect usage of Context as a Consumer.\n var Consumer = {\n $$typeof: REACT_CONTEXT_TYPE,\n _context: context,\n _calculateChangedBits: context._calculateChangedBits\n }; // $FlowFixMe: Flow complains about not setting a value, which is intentional here\n\n Object.defineProperties(Consumer, {\n Provider: {\n get: function () {\n if (!hasWarnedAboutUsingConsumerProvider) {\n hasWarnedAboutUsingConsumerProvider = true;\n\n error('Rendering <Context.Consumer.Provider> is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Provider> instead?');\n }\n\n return context.Provider;\n },\n set: function (_Provider) {\n context.Provider = _Provider;\n }\n },\n _currentValue: {\n get: function () {\n return context._currentValue;\n },\n set: function (_currentValue) {\n context._currentValue = _currentValue;\n }\n },\n _currentValue2: {\n get: function () {\n return context._currentValue2;\n },\n set: function (_currentValue2) {\n context._currentValue2 = _currentValue2;\n }\n },\n _threadCount: {\n get: function () {\n return context._threadCount;\n },\n set: function (_threadCount) {\n context._threadCount = _threadCount;\n }\n },\n Consumer: {\n get: function () {\n if (!hasWarnedAboutUsingNestedContextConsumers) {\n hasWarnedAboutUsingNestedContextConsumers = true;\n\n error('Rendering <Context.Consumer.Consumer> is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Consumer> instead?');\n }\n\n return context.Consumer;\n }\n },\n displayName: {\n get: function () {\n return context.displayName;\n },\n set: function (displayName) {\n if (!hasWarnedAboutDisplayNameOnConsumer) {\n warn('Setting `displayName` on Context.Consumer has no effect. ' + \"You should set it directly on the context with Context.displayName = '%s'.\", displayName);\n\n hasWarnedAboutDisplayNameOnConsumer = true;\n }\n }\n }\n }); // $FlowFixMe: Flow complains about missing properties because it doesn't understand defineProperty\n\n context.Consumer = Consumer;\n }\n\n {\n context._currentRenderer = null;\n context._currentRenderer2 = null;\n }\n\n return context;\n}\n\nvar Uninitialized = -1;\nvar Pending = 0;\nvar Resolved = 1;\nvar Rejected = 2;\n\nfunction lazyInitializer(payload) {\n if (payload._status === Uninitialized) {\n var ctor = payload._result;\n var thenable = ctor(); // Transition to the next state.\n\n var pending = payload;\n pending._status = Pending;\n pending._result = thenable;\n thenable.then(function (moduleObject) {\n if (payload._status === Pending) {\n var defaultExport = moduleObject.default;\n\n {\n if (defaultExport === undefined) {\n error('lazy: Expected the result of a dynamic import() call. ' + 'Instead received: %s\\n\\nYour code should look like: \\n ' + // Break up imports to avoid accidentally parsing them as dependencies.\n 'const MyComponent = lazy(() => imp' + \"ort('./MyComponent'))\", moduleObject);\n }\n } // Transition to the next state.\n\n\n var resolved = payload;\n resolved._status = Resolved;\n resolved._result = defaultExport;\n }\n }, function (error) {\n if (payload._status === Pending) {\n // Transition to the next state.\n var rejected = payload;\n rejected._status = Rejected;\n rejected._result = error;\n }\n });\n }\n\n if (payload._status === Resolved) {\n return payload._result;\n } else {\n throw payload._result;\n }\n}\n\nfunction lazy(ctor) {\n var payload = {\n // We use these fields to store the result.\n _status: -1,\n _result: ctor\n };\n var lazyType = {\n $$typeof: REACT_LAZY_TYPE,\n _payload: payload,\n _init: lazyInitializer\n };\n\n {\n // In production, this would just set it on the object.\n var defaultProps;\n var propTypes; // $FlowFixMe\n\n Object.defineProperties(lazyType, {\n defaultProps: {\n configurable: true,\n get: function () {\n return defaultProps;\n },\n set: function (newDefaultProps) {\n error('React.lazy(...): It is not supported to assign `defaultProps` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.');\n\n defaultProps = newDefaultProps; // Match production behavior more closely:\n // $FlowFixMe\n\n Object.defineProperty(lazyType, 'defaultProps', {\n enumerable: true\n });\n }\n },\n propTypes: {\n configurable: true,\n get: function () {\n return propTypes;\n },\n set: function (newPropTypes) {\n error('React.lazy(...): It is not supported to assign `propTypes` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.');\n\n propTypes = newPropTypes; // Match production behavior more closely:\n // $FlowFixMe\n\n Object.defineProperty(lazyType, 'propTypes', {\n enumerable: true\n });\n }\n }\n });\n }\n\n return lazyType;\n}\n\nfunction forwardRef(render) {\n {\n if (render != null && render.$$typeof === REACT_MEMO_TYPE) {\n error('forwardRef requires a render function but received a `memo` ' + 'component. Instead of forwardRef(memo(...)), use ' + 'memo(forwardRef(...)).');\n } else if (typeof render !== 'function') {\n error('forwardRef requires a render function but was given %s.', render === null ? 'null' : typeof render);\n } else {\n if (render.length !== 0 && render.length !== 2) {\n error('forwardRef render functions accept exactly two parameters: props and ref. %s', render.length === 1 ? 'Did you forget to use the ref parameter?' : 'Any additional parameter will be undefined.');\n }\n }\n\n if (render != null) {\n if (render.defaultProps != null || render.propTypes != null) {\n error('forwardRef render functions do not support propTypes or defaultProps. ' + 'Did you accidentally pass a React component?');\n }\n }\n }\n\n var elementType = {\n $$typeof: REACT_FORWARD_REF_TYPE,\n render: render\n };\n\n {\n var ownName;\n Object.defineProperty(elementType, 'displayName', {\n enumerable: false,\n configurable: true,\n get: function () {\n return ownName;\n },\n set: function (name) {\n ownName = name;\n\n if (render.displayName == null) {\n render.displayName = name;\n }\n }\n });\n }\n\n return elementType;\n}\n\n// Filter certain DOM attributes (e.g. src, href) if their values are empty strings.\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === exports.Fragment || type === exports.Profiler || type === REACT_DEBUG_TRACING_MODE_TYPE || type === exports.StrictMode || type === exports.Suspense || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_LEGACY_HIDDEN_TYPE || enableScopeAPI ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_BLOCK_TYPE || type[0] === REACT_SERVER_BLOCK_TYPE) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction memo(type, compare) {\n {\n if (!isValidElementType(type)) {\n error('memo: The first argument must be a component. Instead ' + 'received: %s', type === null ? 'null' : typeof type);\n }\n }\n\n var elementType = {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: compare === undefined ? null : compare\n };\n\n {\n var ownName;\n Object.defineProperty(elementType, 'displayName', {\n enumerable: false,\n configurable: true,\n get: function () {\n return ownName;\n },\n set: function (name) {\n ownName = name;\n\n if (type.displayName == null) {\n type.displayName = name;\n }\n }\n });\n }\n\n return elementType;\n}\n\nfunction resolveDispatcher() {\n var dispatcher = ReactCurrentDispatcher.current;\n\n if (!(dispatcher !== null)) {\n {\n throw Error( \"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.\" );\n }\n }\n\n return dispatcher;\n}\n\nfunction useContext(Context, unstable_observedBits) {\n var dispatcher = resolveDispatcher();\n\n {\n if (unstable_observedBits !== undefined) {\n error('useContext() second argument is reserved for future ' + 'use in React. Passing it is not supported. ' + 'You passed: %s.%s', unstable_observedBits, typeof unstable_observedBits === 'number' && Array.isArray(arguments[2]) ? '\\n\\nDid you call array.map(useContext)? ' + 'Calling Hooks inside a loop is not supported. ' + 'Learn more at https://reactjs.org/link/rules-of-hooks' : '');\n } // TODO: add a more generic warning for invalid values.\n\n\n if (Context._context !== undefined) {\n var realContext = Context._context; // Don't deduplicate because this legitimately causes bugs\n // and nobody should be using this in existing code.\n\n if (realContext.Consumer === Context) {\n error('Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be ' + 'removed in a future major release. Did you mean to call useContext(Context) instead?');\n } else if (realContext.Provider === Context) {\n error('Calling useContext(Context.Provider) is not supported. ' + 'Did you mean to call useContext(Context) instead?');\n }\n }\n }\n\n return dispatcher.useContext(Context, unstable_observedBits);\n}\nfunction useState(initialState) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useState(initialState);\n}\nfunction useReducer(reducer, initialArg, init) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useReducer(reducer, initialArg, init);\n}\nfunction useRef(initialValue) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useRef(initialValue);\n}\nfunction useEffect(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useEffect(create, deps);\n}\nfunction useLayoutEffect(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useLayoutEffect(create, deps);\n}\nfunction useCallback(callback, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useCallback(callback, deps);\n}\nfunction useMemo(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useMemo(create, deps);\n}\nfunction useImperativeHandle(ref, create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useImperativeHandle(ref, create, deps);\n}\nfunction useDebugValue(value, formatterFn) {\n {\n var dispatcher = resolveDispatcher();\n return dispatcher.useDebugValue(value, formatterFn);\n }\n}\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n disabledDepth++;\n }\n}\nfunction reenableLogs() {\n {\n disabledDepth--;\n\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n log: _assign({}, props, {\n value: prevLog\n }),\n info: _assign({}, props, {\n value: prevInfo\n }),\n warn: _assign({}, props, {\n value: prevWarn\n }),\n error: _assign({}, props, {\n value: prevError\n }),\n group: _assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: _assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: _assign({}, props, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n if (disabledDepth < 0) {\n error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n }\n }\n}\n\nvar ReactCurrentDispatcher$1 = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || '';\n }\n } // We use the prefix to ensure our stacks line up with native stack frames.\n\n\n return '\\n' + prefix + name;\n }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n}\n\nfunction describeNativeComponentFrame(fn, construct) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if (!fn || reentry) {\n return '';\n }\n\n {\n var frame = componentFrameCache.get(fn);\n\n if (frame !== undefined) {\n return frame;\n }\n }\n\n var control;\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n\n {\n previousDispatcher = ReactCurrentDispatcher$1.current; // Set the dispatcher in DEV because this might be call in the render function\n // for warnings.\n\n ReactCurrentDispatcher$1.current = null;\n disableLogs();\n }\n\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function () {\n throw Error();\n }; // $FlowFixMe\n\n\n Object.defineProperty(Fake.prototype, 'props', {\n set: function () {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n\n if (typeof Reflect === 'object' && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n }\n\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n }\n\n fn();\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === 'string') {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sample.stack.split('\\n');\n var controlLines = control.stack.split('\\n');\n var s = sampleLines.length - 1;\n var c = controlLines.length - 1;\n\n while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n\n for (; s >= 1 && c >= 0; s--, c--) {\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at ');\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, _frame);\n }\n } // Return the line we found.\n\n\n return _frame;\n }\n } while (s >= 1 && c >= 0);\n }\n\n break;\n }\n }\n }\n } finally {\n reentry = false;\n\n {\n ReactCurrentDispatcher$1.current = previousDispatcher;\n reenableLogs();\n }\n\n Error.prepareStackTrace = previousPrepareStackTrace;\n } // Fallback to just using the name if we couldn't make it throw.\n\n\n var name = fn ? fn.displayName || fn.name : '';\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n\n return syntheticFrame;\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n}\n\nfunction shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n if (type == null) {\n return '';\n }\n\n if (typeof type === 'function') {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n\n if (typeof type === 'string') {\n return describeBuiltInComponentFrame(type);\n }\n\n switch (type) {\n case exports.Suspense:\n return describeBuiltInComponentFrame('Suspense');\n\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame('SuspenseList');\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n\n case REACT_MEMO_TYPE:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n case REACT_BLOCK_TYPE:\n return describeFunctionComponentFrame(type._render);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n\n return '';\n}\n\nvar loggedTypeFailures = {};\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n }\n }\n}\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\n {\n // $FlowFixMe This is okay but Flow doesn't know it.\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n } catch (ex) {\n error$1 = ex;\n }\n\n if (error$1 && !(error$1 instanceof Error)) {\n setCurrentlyValidatingElement(element);\n\n error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n\n setCurrentlyValidatingElement(null);\n }\n\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error$1.message] = true;\n setCurrentlyValidatingElement(element);\n\n error('Failed %s type: %s', location, error$1.message);\n\n setCurrentlyValidatingElement(null);\n }\n }\n }\n }\n}\n\nfunction setCurrentlyValidatingElement$1(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n setExtraStackFrame(stack);\n } else {\n setExtraStackFrame(null);\n }\n }\n}\n\nvar propTypesMisspellWarningShown;\n\n{\n propTypesMisspellWarningShown = false;\n}\n\nfunction getDeclarationErrorAddendum() {\n if (ReactCurrentOwner.current) {\n var name = getComponentName(ReactCurrentOwner.current.type);\n\n if (name) {\n return '\\n\\nCheck the render method of `' + name + '`.';\n }\n }\n\n return '';\n}\n\nfunction getSourceInfoErrorAddendum(source) {\n if (source !== undefined) {\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n var lineNumber = source.lineNumber;\n return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n }\n\n return '';\n}\n\nfunction getSourceInfoErrorAddendumForProps(elementProps) {\n if (elementProps !== null && elementProps !== undefined) {\n return getSourceInfoErrorAddendum(elementProps.__source);\n }\n\n return '';\n}\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n\n\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n var info = getDeclarationErrorAddendum();\n\n if (!info) {\n var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n\n if (parentName) {\n info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n }\n }\n\n return info;\n}\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\n\n\nfunction validateExplicitKey(element, parentType) {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n\n element._store.validated = true;\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n return;\n }\n\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n\n var childOwner = '';\n\n if (element && element._owner && element._owner !== ReactCurrentOwner.current) {\n // Give the component that originally created this child.\n childOwner = \" It was passed a child from \" + getComponentName(element._owner.type) + \".\";\n }\n\n {\n setCurrentlyValidatingElement$1(element);\n\n error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\n\n setCurrentlyValidatingElement$1(null);\n }\n}\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\n\n\nfunction validateChildKeys(node, parentType) {\n if (typeof node !== 'object') {\n return;\n }\n\n if (Array.isArray(node)) {\n for (var i = 0; i < node.length; i++) {\n var child = node[i];\n\n if (isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else if (node) {\n var iteratorFn = getIteratorFn(node);\n\n if (typeof iteratorFn === 'function') {\n // Entry iterators used to provide implicit keys,\n // but now we print a separate warning for them later.\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n\n while (!(step = iterator.next()).done) {\n if (isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n}\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\n\n\nfunction validatePropTypes(element) {\n {\n var type = element.type;\n\n if (type === null || type === undefined || typeof type === 'string') {\n return;\n }\n\n var propTypes;\n\n if (typeof type === 'function') {\n propTypes = type.propTypes;\n } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n // Inner props are checked in the reconciler.\n type.$$typeof === REACT_MEMO_TYPE)) {\n propTypes = type.propTypes;\n } else {\n return;\n }\n\n if (propTypes) {\n // Intentionally inside to avoid triggering lazy initializers:\n var name = getComponentName(type);\n checkPropTypes(propTypes, element.props, 'prop', name, element);\n } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n\n var _name = getComponentName(type);\n\n error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');\n }\n\n if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\n error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\n }\n }\n}\n/**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\n\n\nfunction validateFragmentProps(fragment) {\n {\n var keys = Object.keys(fragment.props);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (key !== 'children' && key !== 'key') {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n\n setCurrentlyValidatingElement$1(null);\n break;\n }\n }\n\n if (fragment.ref !== null) {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid attribute `ref` supplied to `React.Fragment`.');\n\n setCurrentlyValidatingElement$1(null);\n }\n }\n}\nfunction createElementWithValidation(type, props, children) {\n var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n\n if (!validType) {\n var info = '';\n\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n }\n\n var sourceInfo = getSourceInfoErrorAddendumForProps(props);\n\n if (sourceInfo) {\n info += sourceInfo;\n } else {\n info += getDeclarationErrorAddendum();\n }\n\n var typeString;\n\n if (type === null) {\n typeString = 'null';\n } else if (Array.isArray(type)) {\n typeString = 'array';\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n typeString = \"<\" + (getComponentName(type.type) || 'Unknown') + \" />\";\n info = ' Did you accidentally export a JSX literal instead of a component?';\n } else {\n typeString = typeof type;\n }\n\n {\n error('React.createElement: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n }\n }\n\n var element = createElement.apply(this, arguments); // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n\n if (element == null) {\n return element;\n } // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n\n\n if (validType) {\n for (var i = 2; i < arguments.length; i++) {\n validateChildKeys(arguments[i], type);\n }\n }\n\n if (type === exports.Fragment) {\n validateFragmentProps(element);\n } else {\n validatePropTypes(element);\n }\n\n return element;\n}\nvar didWarnAboutDeprecatedCreateFactory = false;\nfunction createFactoryWithValidation(type) {\n var validatedFactory = createElementWithValidation.bind(null, type);\n validatedFactory.type = type;\n\n {\n if (!didWarnAboutDeprecatedCreateFactory) {\n didWarnAboutDeprecatedCreateFactory = true;\n\n warn('React.createFactory() is deprecated and will be removed in ' + 'a future major release. Consider using JSX ' + 'or use React.createElement() directly instead.');\n } // Legacy hook: remove it\n\n\n Object.defineProperty(validatedFactory, 'type', {\n enumerable: false,\n get: function () {\n warn('Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.');\n\n Object.defineProperty(this, 'type', {\n value: type\n });\n return type;\n }\n });\n }\n\n return validatedFactory;\n}\nfunction cloneElementWithValidation(element, props, children) {\n var newElement = cloneElement.apply(this, arguments);\n\n for (var i = 2; i < arguments.length; i++) {\n validateChildKeys(arguments[i], newElement.type);\n }\n\n validatePropTypes(newElement);\n return newElement;\n}\n\n{\n\n try {\n var frozenObject = Object.freeze({});\n /* eslint-disable no-new */\n\n new Map([[frozenObject, null]]);\n new Set([frozenObject]);\n /* eslint-enable no-new */\n } catch (e) {\n }\n}\n\nvar createElement$1 = createElementWithValidation ;\nvar cloneElement$1 = cloneElementWithValidation ;\nvar createFactory = createFactoryWithValidation ;\nvar Children = {\n map: mapChildren,\n forEach: forEachChildren,\n count: countChildren,\n toArray: toArray,\n only: onlyChild\n};\n\nexports.Children = Children;\nexports.Component = Component;\nexports.PureComponent = PureComponent;\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactSharedInternals;\nexports.cloneElement = cloneElement$1;\nexports.createContext = createContext;\nexports.createElement = createElement$1;\nexports.createFactory = createFactory;\nexports.createRef = createRef;\nexports.forwardRef = forwardRef;\nexports.isValidElement = isValidElement;\nexports.lazy = lazy;\nexports.memo = memo;\nexports.useCallback = useCallback;\nexports.useContext = useContext;\nexports.useDebugValue = useDebugValue;\nexports.useEffect = useEffect;\nexports.useImperativeHandle = useImperativeHandle;\nexports.useLayoutEffect = useLayoutEffect;\nexports.useMemo = useMemo;\nexports.useReducer = useReducer;\nexports.useRef = useRef;\nexports.useState = useState;\nexports.version = ReactVersion;\n })();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QvY2pzL3JlYWN0LmRldmVsb3BtZW50LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWE7O0FBRWIsSUFBSSxJQUFxQztBQUN6QztBQUNBOztBQUVBLGNBQWMsbUJBQU8sQ0FBQyxnRkFBZTs7QUFFckM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQixrQkFBa0I7QUFDbEIsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRSxnQkFBZ0I7QUFDbEIsRUFBRSxrQkFBa0I7QUFDcEIsRUFBRSxnQkFBZ0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0EsRUFBRSxnQkFBZ0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7OztBQUdMOztBQUVBO0FBQ0Esb0JBQW9COztBQUVwQjtBQUNBO0FBQ0EsTUFBTTs7O0FBR047O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLDJGQUEyRixhQUFhO0FBQ3hHO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtGQUErRixlQUFlO0FBQzlHO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSyxHQUFHOztBQUVSLGtEQUFrRDtBQUNsRDtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSw4TUFBOE07O0FBRTlNO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxZQUFZO0FBQ3pCLGNBQWMsU0FBUztBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsWUFBWTtBQUN6QixhQUFhLFdBQVc7QUFDeEIsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsWUFBWTtBQUN6QixhQUFhLFFBQVE7QUFDckIsYUFBYSxXQUFXO0FBQ3hCLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxZQUFZO0FBQ3pCLGFBQWEsUUFBUTtBQUNyQixhQUFhLFdBQVc7QUFDeEIsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQSwwQkFBMEI7O0FBRTFCLDJCQUEyQjtBQUMzQjs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLGlCQUFpQjtBQUM1QjtBQUNBLFdBQVcsV0FBVztBQUN0QjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsV0FBVztBQUN0QjtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLDBCQUEwQjs7QUFFMUI7QUFDQTtBQUNBOztBQUVBO0FBQ0Esb0RBQW9EOztBQUVwRDs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxXQUFXLEdBQUc7QUFDZCxXQUFXLEdBQUc7QUFDZCxXQUFXLGVBQWU7QUFDMUIsV0FBVyxHQUFHO0FBQ2QsV0FBVyxHQUFHO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZDtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSyxHQUFHOztBQUVSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLLEdBQUc7QUFDUjs7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QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBOztBQUVBOztBQUVBLDRCQUE0Qjs7QUFFNUI7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNOzs7QUFHTjtBQUNBLDBDQUEwQztBQUMxQzs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7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Q0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsZ0JBQWdCO0FBQ2hCLGlCQUFpQjtBQUNqQixxQkFBcUI7QUFDckIsMERBQTBEO0FBQzFELG9CQUFvQjtBQUNwQixxQkFBcUI7QUFDckIscUJBQXFCO0FBQ3JCLHFCQUFxQjtBQUNyQixpQkFBaUI7QUFDakIsa0JBQWtCO0FBQ2xCLHNCQUFzQjtBQUN0QixZQUFZO0FBQ1osWUFBWTtBQUNaLG1CQUFtQjtBQUNuQixrQkFBa0I7QUFDbEIscUJBQXFCO0FBQ3JCLGlCQUFpQjtBQUNqQiwyQkFBMkI7QUFDM0IsdUJBQXVCO0FBQ3ZCLGVBQWU7QUFDZixrQkFBa0I7QUFDbEIsY0FBYztBQUNkLGdCQUFnQjtBQUNoQixlQUFlO0FBQ2YsR0FBRztBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9yZWFjdC9janMvcmVhY3QuZGV2ZWxvcG1lbnQuanM/MWI3ZSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQGxpY2Vuc2UgUmVhY3QgdjE3LjAuMlxuICogcmVhY3QuZGV2ZWxvcG1lbnQuanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIEZhY2Vib29rLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgKGZ1bmN0aW9uKCkge1xuJ3VzZSBzdHJpY3QnO1xuXG52YXIgX2Fzc2lnbiA9IHJlcXVpcmUoJ29iamVjdC1hc3NpZ24nKTtcblxuLy8gVE9ETzogdGhpcyBpcyBzcGVjaWFsIGJlY2F1c2UgaXQgZ2V0cyBpbXBvcnRlZCBkdXJpbmcgYnVpbGQuXG52YXIgUmVhY3RWZXJzaW9uID0gJzE3LjAuMic7XG5cbi8vIEFUVEVOVElPTlxuLy8gV2hlbiBhZGRpbmcgbmV3IHN5bWJvbHMgdG8gdGhpcyBmaWxlLFxuLy8gUGxlYXNlIGNvbnNpZGVyIGFsc28gYWRkaW5nIHRvICdyZWFjdC1kZXZ0b29scy1zaGFyZWQvc3JjL2JhY2tlbmQvUmVhY3RTeW1ib2xzJ1xuLy8gVGhlIFN5bWJvbCB1c2VkIHRvIHRhZyB0aGUgUmVhY3RFbGVtZW50LWxpa2UgdHlwZXMuIElmIHRoZXJlIGlzIG5vIG5hdGl2ZSBTeW1ib2xcbi8vIG5vciBwb2x5ZmlsbCwgdGhlbiBhIHBsYWluIG51bWJlciBpcyB1c2VkIGZvciBwZXJmb3JtYW5jZS5cbnZhciBSRUFDVF9FTEVNRU5UX1RZUEUgPSAweGVhYzc7XG52YXIgUkVBQ1RfUE9SVEFMX1RZUEUgPSAweGVhY2E7XG5leHBvcnRzLkZyYWdtZW50ID0gMHhlYWNiO1xuZXhwb3J0cy5TdHJpY3RNb2RlID0gMHhlYWNjO1xuZXhwb3J0cy5Qcm9maWxlciA9IDB4ZWFkMjtcbnZhciBSRUFDVF9QUk9WSURFUl9UWVBFID0gMHhlYWNkO1xudmFyIFJFQUNUX0NPTlRFWFRfVFlQRSA9IDB4ZWFjZTtcbnZhciBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFID0gMHhlYWQwO1xuZXhwb3J0cy5TdXNwZW5zZSA9IDB4ZWFkMTtcbnZhciBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUgPSAweGVhZDg7XG52YXIgUkVBQ1RfTUVNT19UWVBFID0gMHhlYWQzO1xudmFyIFJFQUNUX0xBWllfVFlQRSA9IDB4ZWFkNDtcbnZhciBSRUFDVF9CTE9DS19UWVBFID0gMHhlYWQ5O1xudmFyIFJFQUNUX1NFUlZFUl9CTE9DS19UWVBFID0gMHhlYWRhO1xudmFyIFJFQUNUX0ZVTkRBTUVOVEFMX1RZUEUgPSAweGVhZDU7XG52YXIgUkVBQ1RfU0NPUEVfVFlQRSA9IDB4ZWFkNztcbnZhciBSRUFDVF9PUEFRVUVfSURfVFlQRSA9IDB4ZWFlMDtcbnZhciBSRUFDVF9ERUJVR19UUkFDSU5HX01PREVfVFlQRSA9IDB4ZWFlMTtcbnZhciBSRUFDVF9PRkZTQ1JFRU5fVFlQRSA9IDB4ZWFlMjtcbnZhciBSRUFDVF9MRUdBQ1lfSElEREVOX1RZUEUgPSAweGVhZTM7XG5cbmlmICh0eXBlb2YgU3ltYm9sID09PSAnZnVuY3Rpb24nICYmIFN5bWJvbC5mb3IpIHtcbiAgdmFyIHN5bWJvbEZvciA9IFN5bWJvbC5mb3I7XG4gIFJFQUNUX0VMRU1FTlRfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QuZWxlbWVudCcpO1xuICBSRUFDVF9QT1JUQUxfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QucG9ydGFsJyk7XG4gIGV4cG9ydHMuRnJhZ21lbnQgPSBzeW1ib2xGb3IoJ3JlYWN0LmZyYWdtZW50Jyk7XG4gIGV4cG9ydHMuU3RyaWN0TW9kZSA9IHN5bWJvbEZvcigncmVhY3Quc3RyaWN0X21vZGUnKTtcbiAgZXhwb3J0cy5Qcm9maWxlciA9IHN5bWJvbEZvcigncmVhY3QucHJvZmlsZXInKTtcbiAgUkVBQ1RfUFJPVklERVJfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QucHJvdmlkZXInKTtcbiAgUkVBQ1RfQ09OVEVYVF9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5jb250ZXh0Jyk7XG4gIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LmZvcndhcmRfcmVmJyk7XG4gIGV4cG9ydHMuU3VzcGVuc2UgPSBzeW1ib2xGb3IoJ3JlYWN0LnN1c3BlbnNlJyk7XG4gIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSA9IHN5bWJvbEZvcigncmVhY3Quc3VzcGVuc2VfbGlzdCcpO1xuICBSRUFDVF9NRU1PX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0Lm1lbW8nKTtcbiAgUkVBQ1RfTEFaWV9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5sYXp5Jyk7XG4gIFJFQUNUX0JMT0NLX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LmJsb2NrJyk7XG4gIFJFQUNUX1NFUlZFUl9CTE9DS19UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5zZXJ2ZXIuYmxvY2snKTtcbiAgUkVBQ1RfRlVOREFNRU5UQUxfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QuZnVuZGFtZW50YWwnKTtcbiAgUkVBQ1RfU0NPUEVfVFlQRSA9IHN5bWJvbEZvcigncmVhY3Quc2NvcGUnKTtcbiAgUkVBQ1RfT1BBUVVFX0lEX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0Lm9wYXF1ZS5pZCcpO1xuICBSRUFDVF9ERUJVR19UUkFDSU5HX01PREVfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QuZGVidWdfdHJhY2VfbW9kZScpO1xuICBSRUFDVF9PRkZTQ1JFRU5fVFlQRSA9IHN5bWJvbEZvcigncmVhY3Qub2Zmc2NyZWVuJyk7XG4gIFJFQUNUX0xFR0FDWV9ISURERU5fVFlQRSA9IHN5bWJvbEZvcigncmVhY3QubGVnYWN5X2hpZGRlbicpO1xufVxuXG52YXIgTUFZQkVfSVRFUkFUT1JfU1lNQk9MID0gdHlwZW9mIFN5bWJvbCA9PT0gJ2Z1bmN0aW9uJyAmJiBTeW1ib2wuaXRlcmF0b3I7XG52YXIgRkFVWF9JVEVSQVRPUl9TWU1CT0wgPSAnQEBpdGVyYXRvcic7XG5mdW5jdGlvbiBnZXRJdGVyYXRvckZuKG1heWJlSXRlcmFibGUpIHtcbiAgaWYgKG1heWJlSXRlcmFibGUgPT09IG51bGwgfHwgdHlwZW9mIG1heWJlSXRlcmFibGUgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICB2YXIgbWF5YmVJdGVyYXRvciA9IE1BWUJFX0lURVJBVE9SX1NZTUJPTCAmJiBtYXliZUl0ZXJhYmxlW01BWUJFX0lURVJBVE9SX1NZTUJPTF0gfHwgbWF5YmVJdGVyYWJsZVtGQVVYX0lURVJBVE9SX1NZTUJPTF07XG5cbiAgaWYgKHR5cGVvZiBtYXliZUl0ZXJhdG9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIG1heWJlSXRlcmF0b3I7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBLZWVwcyB0cmFjayBvZiB0aGUgY3VycmVudCBkaXNwYXRjaGVyLlxuICovXG52YXIgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciA9IHtcbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBAdHlwZSB7UmVhY3RDb21wb25lbnR9XG4gICAqL1xuICBjdXJyZW50OiBudWxsXG59O1xuXG4vKipcbiAqIEtlZXBzIHRyYWNrIG9mIHRoZSBjdXJyZW50IGJhdGNoJ3MgY29uZmlndXJhdGlvbiBzdWNoIGFzIGhvdyBsb25nIGFuIHVwZGF0ZVxuICogc2hvdWxkIHN1c3BlbmQgZm9yIGlmIGl0IG5lZWRzIHRvLlxuICovXG52YXIgUmVhY3RDdXJyZW50QmF0Y2hDb25maWcgPSB7XG4gIHRyYW5zaXRpb246IDBcbn07XG5cbi8qKlxuICogS2VlcHMgdHJhY2sgb2YgdGhlIGN1cnJlbnQgb3duZXIuXG4gKlxuICogVGhlIGN1cnJlbnQgb3duZXIgaXMgdGhlIGNvbXBvbmVudCB3aG8gc2hvdWxkIG93biBhbnkgY29tcG9uZW50cyB0aGF0IGFyZVxuICogY3VycmVudGx5IGJlaW5nIGNvbnN0cnVjdGVkLlxuICovXG52YXIgUmVhY3RDdXJyZW50T3duZXIgPSB7XG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogQHR5cGUge1JlYWN0Q29tcG9uZW50fVxuICAgKi9cbiAgY3VycmVudDogbnVsbFxufTtcblxudmFyIFJlYWN0RGVidWdDdXJyZW50RnJhbWUgPSB7fTtcbnZhciBjdXJyZW50RXh0cmFTdGFja0ZyYW1lID0gbnVsbDtcbmZ1bmN0aW9uIHNldEV4dHJhU3RhY2tGcmFtZShzdGFjaykge1xuICB7XG4gICAgY3VycmVudEV4dHJhU3RhY2tGcmFtZSA9IHN0YWNrO1xuICB9XG59XG5cbntcbiAgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZS5zZXRFeHRyYVN0YWNrRnJhbWUgPSBmdW5jdGlvbiAoc3RhY2spIHtcbiAgICB7XG4gICAgICBjdXJyZW50RXh0cmFTdGFja0ZyYW1lID0gc3RhY2s7XG4gICAgfVxuICB9OyAvLyBTdGFjayBpbXBsZW1lbnRhdGlvbiBpbmplY3RlZCBieSB0aGUgY3VycmVudCByZW5kZXJlci5cblxuXG4gIFJlYWN0RGVidWdDdXJyZW50RnJhbWUuZ2V0Q3VycmVudFN0YWNrID0gbnVsbDtcblxuICBSZWFjdERlYnVnQ3VycmVudEZyYW1lLmdldFN0YWNrQWRkZW5kdW0gPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHN0YWNrID0gJyc7IC8vIEFkZCBhbiBleHRyYSB0b3AgZnJhbWUgd2hpbGUgYW4gZWxlbWVudCBpcyBiZWluZyB2YWxpZGF0ZWRcblxuICAgIGlmIChjdXJyZW50RXh0cmFTdGFja0ZyYW1lKSB7XG4gICAgICBzdGFjayArPSBjdXJyZW50RXh0cmFTdGFja0ZyYW1lO1xuICAgIH0gLy8gRGVsZWdhdGUgdG8gdGhlIGluamVjdGVkIHJlbmRlcmVyLXNwZWNpZmljIGltcGxlbWVudGF0aW9uXG5cblxuICAgIHZhciBpbXBsID0gUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZS5nZXRDdXJyZW50U3RhY2s7XG5cbiAgICBpZiAoaW1wbCkge1xuICAgICAgc3RhY2sgKz0gaW1wbCgpIHx8ICcnO1xuICAgIH1cblxuICAgIHJldHVybiBzdGFjaztcbiAgfTtcbn1cblxuLyoqXG4gKiBVc2VkIGJ5IGFjdCgpIHRvIHRyYWNrIHdoZXRoZXIgeW91J3JlIGluc2lkZSBhbiBhY3QoKSBzY29wZS5cbiAqL1xudmFyIElzU29tZVJlbmRlcmVyQWN0aW5nID0ge1xuICBjdXJyZW50OiBmYWxzZVxufTtcblxudmFyIFJlYWN0U2hhcmVkSW50ZXJuYWxzID0ge1xuICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyOiBSZWFjdEN1cnJlbnREaXNwYXRjaGVyLFxuICBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZzogUmVhY3RDdXJyZW50QmF0Y2hDb25maWcsXG4gIFJlYWN0Q3VycmVudE93bmVyOiBSZWFjdEN1cnJlbnRPd25lcixcbiAgSXNTb21lUmVuZGVyZXJBY3Rpbmc6IElzU29tZVJlbmRlcmVyQWN0aW5nLFxuICAvLyBVc2VkIGJ5IHJlbmRlcmVycyB0byBhdm9pZCBidW5kbGluZyBvYmplY3QtYXNzaWduIHR3aWNlIGluIFVNRCBidW5kbGVzOlxuICBhc3NpZ246IF9hc3NpZ25cbn07XG5cbntcbiAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSA9IFJlYWN0RGVidWdDdXJyZW50RnJhbWU7XG59XG5cbi8vIGJ5IGNhbGxzIHRvIHRoZXNlIG1ldGhvZHMgYnkgYSBCYWJlbCBwbHVnaW4uXG4vL1xuLy8gSW4gUFJPRCAob3IgaW4gcGFja2FnZXMgd2l0aG91dCBhY2Nlc3MgdG8gUmVhY3QgaW50ZXJuYWxzKSxcbi8vIHRoZXkgYXJlIGxlZnQgYXMgdGhleSBhcmUgaW5zdGVhZC5cblxuZnVuY3Rpb24gd2Fybihmb3JtYXQpIHtcbiAge1xuICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4gPiAxID8gX2xlbiAtIDEgOiAwKSwgX2tleSA9IDE7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgIGFyZ3NbX2tleSAtIDFdID0gYXJndW1lbnRzW19rZXldO1xuICAgIH1cblxuICAgIHByaW50V2FybmluZygnd2FybicsIGZvcm1hdCwgYXJncyk7XG4gIH1cbn1cbmZ1bmN0aW9uIGVycm9yKGZvcm1hdCkge1xuICB7XG4gICAgZm9yICh2YXIgX2xlbjIgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4yID4gMSA/IF9sZW4yIC0gMSA6IDApLCBfa2V5MiA9IDE7IF9rZXkyIDwgX2xlbjI7IF9rZXkyKyspIHtcbiAgICAgIGFyZ3NbX2tleTIgLSAxXSA9IGFyZ3VtZW50c1tfa2V5Ml07XG4gICAgfVxuXG4gICAgcHJpbnRXYXJuaW5nKCdlcnJvcicsIGZvcm1hdCwgYXJncyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcHJpbnRXYXJuaW5nKGxldmVsLCBmb3JtYXQsIGFyZ3MpIHtcbiAgLy8gV2hlbiBjaGFuZ2luZyB0aGlzIGxvZ2ljLCB5b3UgbWlnaHQgd2FudCB0byBhbHNvXG4gIC8vIHVwZGF0ZSBjb25zb2xlV2l0aFN0YWNrRGV2Lnd3dy5qcyBhcyB3ZWxsLlxuICB7XG4gICAgdmFyIFJlYWN0RGVidWdDdXJyZW50RnJhbWUgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdERlYnVnQ3VycmVudEZyYW1lO1xuICAgIHZhciBzdGFjayA9IFJlYWN0RGVidWdDdXJyZW50RnJhbWUuZ2V0U3RhY2tBZGRlbmR1bSgpO1xuXG4gICAgaWYgKHN0YWNrICE9PSAnJykge1xuICAgICAgZm9ybWF0ICs9ICclcyc7XG4gICAgICBhcmdzID0gYXJncy5jb25jYXQoW3N0YWNrXSk7XG4gICAgfVxuXG4gICAgdmFyIGFyZ3NXaXRoRm9ybWF0ID0gYXJncy5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgIHJldHVybiAnJyArIGl0ZW07XG4gICAgfSk7IC8vIENhcmVmdWw6IFJOIGN1cnJlbnRseSBkZXBlbmRzIG9uIHRoaXMgcHJlZml4XG5cbiAgICBhcmdzV2l0aEZvcm1hdC51bnNoaWZ0KCdXYXJuaW5nOiAnICsgZm9ybWF0KTsgLy8gV2UgaW50ZW50aW9uYWxseSBkb24ndCB1c2Ugc3ByZWFkIChvciAuYXBwbHkpIGRpcmVjdGx5IGJlY2F1c2UgaXRcbiAgICAvLyBicmVha3MgSUU5OiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzEzNjEwXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL25vLXByb2R1Y3Rpb24tbG9nZ2luZ1xuXG4gICAgRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5LmNhbGwoY29uc29sZVtsZXZlbF0sIGNvbnNvbGUsIGFyZ3NXaXRoRm9ybWF0KTtcbiAgfVxufVxuXG52YXIgZGlkV2FyblN0YXRlVXBkYXRlRm9yVW5tb3VudGVkQ29tcG9uZW50ID0ge307XG5cbmZ1bmN0aW9uIHdhcm5Ob29wKHB1YmxpY0luc3RhbmNlLCBjYWxsZXJOYW1lKSB7XG4gIHtcbiAgICB2YXIgX2NvbnN0cnVjdG9yID0gcHVibGljSW5zdGFuY2UuY29uc3RydWN0b3I7XG4gICAgdmFyIGNvbXBvbmVudE5hbWUgPSBfY29uc3RydWN0b3IgJiYgKF9jb25zdHJ1Y3Rvci5kaXNwbGF5TmFtZSB8fCBfY29uc3RydWN0b3IubmFtZSkgfHwgJ1JlYWN0Q2xhc3MnO1xuICAgIHZhciB3YXJuaW5nS2V5ID0gY29tcG9uZW50TmFtZSArIFwiLlwiICsgY2FsbGVyTmFtZTtcblxuICAgIGlmIChkaWRXYXJuU3RhdGVVcGRhdGVGb3JVbm1vdW50ZWRDb21wb25lbnRbd2FybmluZ0tleV0pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBlcnJvcihcIkNhbid0IGNhbGwgJXMgb24gYSBjb21wb25lbnQgdGhhdCBpcyBub3QgeWV0IG1vdW50ZWQuIFwiICsgJ1RoaXMgaXMgYSBuby1vcCwgYnV0IGl0IG1pZ2h0IGluZGljYXRlIGEgYnVnIGluIHlvdXIgYXBwbGljYXRpb24uICcgKyAnSW5zdGVhZCwgYXNzaWduIHRvIGB0aGlzLnN0YXRlYCBkaXJlY3RseSBvciBkZWZpbmUgYSBgc3RhdGUgPSB7fTtgICcgKyAnY2xhc3MgcHJvcGVydHkgd2l0aCB0aGUgZGVzaXJlZCBzdGF0ZSBpbiB0aGUgJXMgY29tcG9uZW50LicsIGNhbGxlck5hbWUsIGNvbXBvbmVudE5hbWUpO1xuXG4gICAgZGlkV2FyblN0YXRlVXBkYXRlRm9yVW5tb3VudGVkQ29tcG9uZW50W3dhcm5pbmdLZXldID0gdHJ1ZTtcbiAgfVxufVxuLyoqXG4gKiBUaGlzIGlzIHRoZSBhYnN0cmFjdCBBUEkgZm9yIGFuIHVwZGF0ZSBxdWV1ZS5cbiAqL1xuXG5cbnZhciBSZWFjdE5vb3BVcGRhdGVRdWV1ZSA9IHtcbiAgLyoqXG4gICAqIENoZWNrcyB3aGV0aGVyIG9yIG5vdCB0aGlzIGNvbXBvc2l0ZSBjb21wb25lbnQgaXMgbW91bnRlZC5cbiAgICogQHBhcmFtIHtSZWFjdENsYXNzfSBwdWJsaWNJbnN0YW5jZSBUaGUgaW5zdGFuY2Ugd2Ugd2FudCB0byB0ZXN0LlxuICAgKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIGlmIG1vdW50ZWQsIGZhbHNlIG90aGVyd2lzZS5cbiAgICogQHByb3RlY3RlZFxuICAgKiBAZmluYWxcbiAgICovXG4gIGlzTW91bnRlZDogZnVuY3Rpb24gKHB1YmxpY0luc3RhbmNlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9LFxuXG4gIC8qKlxuICAgKiBGb3JjZXMgYW4gdXBkYXRlLiBUaGlzIHNob3VsZCBvbmx5IGJlIGludm9rZWQgd2hlbiBpdCBpcyBrbm93biB3aXRoXG4gICAqIGNlcnRhaW50eSB0aGF0IHdlIGFyZSAqKm5vdCoqIGluIGEgRE9NIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBZb3UgbWF5IHdhbnQgdG8gY2FsbCB0aGlzIHdoZW4geW91IGtub3cgdGhhdCBzb21lIGRlZXBlciBhc3BlY3Qgb2YgdGhlXG4gICAqIGNvbXBvbmVudCdzIHN0YXRlIGhhcyBjaGFuZ2VkIGJ1dCBgc2V0U3RhdGVgIHdhcyBub3QgY2FsbGVkLlxuICAgKlxuICAgKiBUaGlzIHdpbGwgbm90IGludm9rZSBgc2hvdWxkQ29tcG9uZW50VXBkYXRlYCwgYnV0IGl0IHdpbGwgaW52b2tlXG4gICAqIGBjb21wb25lbnRXaWxsVXBkYXRlYCBhbmQgYGNvbXBvbmVudERpZFVwZGF0ZWAuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVhY3RDbGFzc30gcHVibGljSW5zdGFuY2UgVGhlIGluc3RhbmNlIHRoYXQgc2hvdWxkIHJlcmVuZGVyLlxuICAgKiBAcGFyYW0gez9mdW5jdGlvbn0gY2FsbGJhY2sgQ2FsbGVkIGFmdGVyIGNvbXBvbmVudCBpcyB1cGRhdGVkLlxuICAgKiBAcGFyYW0gez9zdHJpbmd9IGNhbGxlck5hbWUgbmFtZSBvZiB0aGUgY2FsbGluZyBmdW5jdGlvbiBpbiB0aGUgcHVibGljIEFQSS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBlbnF1ZXVlRm9yY2VVcGRhdGU6IGZ1bmN0aW9uIChwdWJsaWNJbnN0YW5jZSwgY2FsbGJhY2ssIGNhbGxlck5hbWUpIHtcbiAgICB3YXJuTm9vcChwdWJsaWNJbnN0YW5jZSwgJ2ZvcmNlVXBkYXRlJyk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlcGxhY2VzIGFsbCBvZiB0aGUgc3RhdGUuIEFsd2F5cyB1c2UgdGhpcyBvciBgc2V0U3RhdGVgIHRvIG11dGF0ZSBzdGF0ZS5cbiAgICogWW91IHNob3VsZCB0cmVhdCBgdGhpcy5zdGF0ZWAgYXMgaW1tdXRhYmxlLlxuICAgKlxuICAgKiBUaGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBgdGhpcy5zdGF0ZWAgd2lsbCBiZSBpbW1lZGlhdGVseSB1cGRhdGVkLCBzb1xuICAgKiBhY2Nlc3NpbmcgYHRoaXMuc3RhdGVgIGFmdGVyIGNhbGxpbmcgdGhpcyBtZXRob2QgbWF5IHJldHVybiB0aGUgb2xkIHZhbHVlLlxuICAgKlxuICAgKiBAcGFyYW0ge1JlYWN0Q2xhc3N9IHB1YmxpY0luc3RhbmNlIFRoZSBpbnN0YW5jZSB0aGF0IHNob3VsZCByZXJlbmRlci5cbiAgICogQHBhcmFtIHtvYmplY3R9IGNvbXBsZXRlU3RhdGUgTmV4dCBzdGF0ZS5cbiAgICogQHBhcmFtIHs/ZnVuY3Rpb259IGNhbGxiYWNrIENhbGxlZCBhZnRlciBjb21wb25lbnQgaXMgdXBkYXRlZC5cbiAgICogQHBhcmFtIHs/c3RyaW5nfSBjYWxsZXJOYW1lIG5hbWUgb2YgdGhlIGNhbGxpbmcgZnVuY3Rpb24gaW4gdGhlIHB1YmxpYyBBUEkuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZW5xdWV1ZVJlcGxhY2VTdGF0ZTogZnVuY3Rpb24gKHB1YmxpY0luc3RhbmNlLCBjb21wbGV0ZVN0YXRlLCBjYWxsYmFjaywgY2FsbGVyTmFtZSkge1xuICAgIHdhcm5Ob29wKHB1YmxpY0luc3RhbmNlLCAncmVwbGFjZVN0YXRlJyk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFNldHMgYSBzdWJzZXQgb2YgdGhlIHN0YXRlLiBUaGlzIG9ubHkgZXhpc3RzIGJlY2F1c2UgX3BlbmRpbmdTdGF0ZSBpc1xuICAgKiBpbnRlcm5hbC4gVGhpcyBwcm92aWRlcyBhIG1lcmdpbmcgc3RyYXRlZ3kgdGhhdCBpcyBub3QgYXZhaWxhYmxlIHRvIGRlZXBcbiAgICogcHJvcGVydGllcyB3aGljaCBpcyBjb25mdXNpbmcuIFRPRE86IEV4cG9zZSBwZW5kaW5nU3RhdGUgb3IgZG9uJ3QgdXNlIGl0XG4gICAqIGR1cmluZyB0aGUgbWVyZ2UuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVhY3RDbGFzc30gcHVibGljSW5zdGFuY2UgVGhlIGluc3RhbmNlIHRoYXQgc2hvdWxkIHJlcmVuZGVyLlxuICAgKiBAcGFyYW0ge29iamVjdH0gcGFydGlhbFN0YXRlIE5leHQgcGFydGlhbCBzdGF0ZSB0byBiZSBtZXJnZWQgd2l0aCBzdGF0ZS5cbiAgICogQHBhcmFtIHs/ZnVuY3Rpb259IGNhbGxiYWNrIENhbGxlZCBhZnRlciBjb21wb25lbnQgaXMgdXBkYXRlZC5cbiAgICogQHBhcmFtIHs/c3RyaW5nfSBOYW1lIG9mIHRoZSBjYWxsaW5nIGZ1bmN0aW9uIGluIHRoZSBwdWJsaWMgQVBJLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGVucXVldWVTZXRTdGF0ZTogZnVuY3Rpb24gKHB1YmxpY0luc3RhbmNlLCBwYXJ0aWFsU3RhdGUsIGNhbGxiYWNrLCBjYWxsZXJOYW1lKSB7XG4gICAgd2Fybk5vb3AocHVibGljSW5zdGFuY2UsICdzZXRTdGF0ZScpO1xuICB9XG59O1xuXG52YXIgZW1wdHlPYmplY3QgPSB7fTtcblxue1xuICBPYmplY3QuZnJlZXplKGVtcHR5T2JqZWN0KTtcbn1cbi8qKlxuICogQmFzZSBjbGFzcyBoZWxwZXJzIGZvciB0aGUgdXBkYXRpbmcgc3RhdGUgb2YgYSBjb21wb25lbnQuXG4gKi9cblxuXG5mdW5jdGlvbiBDb21wb25lbnQocHJvcHMsIGNvbnRleHQsIHVwZGF0ZXIpIHtcbiAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICB0aGlzLmNvbnRleHQgPSBjb250ZXh0OyAvLyBJZiBhIGNvbXBvbmVudCBoYXMgc3RyaW5nIHJlZnMsIHdlIHdpbGwgYXNzaWduIGEgZGlmZmVyZW50IG9iamVjdCBsYXRlci5cblxuICB0aGlzLnJlZnMgPSBlbXB0eU9iamVjdDsgLy8gV2UgaW5pdGlhbGl6ZSB0aGUgZGVmYXVsdCB1cGRhdGVyIGJ1dCB0aGUgcmVhbCBvbmUgZ2V0cyBpbmplY3RlZCBieSB0aGVcbiAgLy8gcmVuZGVyZXIuXG5cbiAgdGhpcy51cGRhdGVyID0gdXBkYXRlciB8fCBSZWFjdE5vb3BVcGRhdGVRdWV1ZTtcbn1cblxuQ29tcG9uZW50LnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50ID0ge307XG4vKipcbiAqIFNldHMgYSBzdWJzZXQgb2YgdGhlIHN0YXRlLiBBbHdheXMgdXNlIHRoaXMgdG8gbXV0YXRlXG4gKiBzdGF0ZS4gWW91IHNob3VsZCB0cmVhdCBgdGhpcy5zdGF0ZWAgYXMgaW1tdXRhYmxlLlxuICpcbiAqIFRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IGB0aGlzLnN0YXRlYCB3aWxsIGJlIGltbWVkaWF0ZWx5IHVwZGF0ZWQsIHNvXG4gKiBhY2Nlc3NpbmcgYHRoaXMuc3RhdGVgIGFmdGVyIGNhbGxpbmcgdGhpcyBtZXRob2QgbWF5IHJldHVybiB0aGUgb2xkIHZhbHVlLlxuICpcbiAqIFRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IGNhbGxzIHRvIGBzZXRTdGF0ZWAgd2lsbCBydW4gc3luY2hyb25vdXNseSxcbiAqIGFzIHRoZXkgbWF5IGV2ZW50dWFsbHkgYmUgYmF0Y2hlZCB0b2dldGhlci4gIFlvdSBjYW4gcHJvdmlkZSBhbiBvcHRpb25hbFxuICogY2FsbGJhY2sgdGhhdCB3aWxsIGJlIGV4ZWN1dGVkIHdoZW4gdGhlIGNhbGwgdG8gc2V0U3RhdGUgaXMgYWN0dWFsbHlcbiAqIGNvbXBsZXRlZC5cbiAqXG4gKiBXaGVuIGEgZnVuY3Rpb24gaXMgcHJvdmlkZWQgdG8gc2V0U3RhdGUsIGl0IHdpbGwgYmUgY2FsbGVkIGF0IHNvbWUgcG9pbnQgaW5cbiAqIHRoZSBmdXR1cmUgKG5vdCBzeW5jaHJvbm91c2x5KS4gSXQgd2lsbCBiZSBjYWxsZWQgd2l0aCB0aGUgdXAgdG8gZGF0ZVxuICogY29tcG9uZW50IGFyZ3VtZW50cyAoc3RhdGUsIHByb3BzLCBjb250ZXh0KS4gVGhlc2UgdmFsdWVzIGNhbiBiZSBkaWZmZXJlbnRcbiAqIGZyb20gdGhpcy4qIGJlY2F1c2UgeW91ciBmdW5jdGlvbiBtYXkgYmUgY2FsbGVkIGFmdGVyIHJlY2VpdmVQcm9wcyBidXQgYmVmb3JlXG4gKiBzaG91bGRDb21wb25lbnRVcGRhdGUsIGFuZCB0aGlzIG5ldyBzdGF0ZSwgcHJvcHMsIGFuZCBjb250ZXh0IHdpbGwgbm90IHlldCBiZVxuICogYXNzaWduZWQgdG8gdGhpcy5cbiAqXG4gKiBAcGFyYW0ge29iamVjdHxmdW5jdGlvbn0gcGFydGlhbFN0YXRlIE5leHQgcGFydGlhbCBzdGF0ZSBvciBmdW5jdGlvbiB0b1xuICogICAgICAgIHByb2R1Y2UgbmV4dCBwYXJ0aWFsIHN0YXRlIHRvIGJlIG1lcmdlZCB3aXRoIGN1cnJlbnQgc3RhdGUuXG4gKiBAcGFyYW0gez9mdW5jdGlvbn0gY2FsbGJhY2sgQ2FsbGVkIGFmdGVyIHN0YXRlIGlzIHVwZGF0ZWQuXG4gKiBAZmluYWxcbiAqIEBwcm90ZWN0ZWRcbiAqL1xuXG5Db21wb25lbnQucHJvdG90eXBlLnNldFN0YXRlID0gZnVuY3Rpb24gKHBhcnRpYWxTdGF0ZSwgY2FsbGJhY2spIHtcbiAgaWYgKCEodHlwZW9mIHBhcnRpYWxTdGF0ZSA9PT0gJ29iamVjdCcgfHwgdHlwZW9mIHBhcnRpYWxTdGF0ZSA9PT0gJ2Z1bmN0aW9uJyB8fCBwYXJ0aWFsU3RhdGUgPT0gbnVsbCkpIHtcbiAgICB7XG4gICAgICB0aHJvdyBFcnJvciggXCJzZXRTdGF0ZSguLi4pOiB0YWtlcyBhbiBvYmplY3Qgb2Ygc3RhdGUgdmFyaWFibGVzIHRvIHVwZGF0ZSBvciBhIGZ1bmN0aW9uIHdoaWNoIHJldHVybnMgYW4gb2JqZWN0IG9mIHN0YXRlIHZhcmlhYmxlcy5cIiApO1xuICAgIH1cbiAgfVxuXG4gIHRoaXMudXBkYXRlci5lbnF1ZXVlU2V0U3RhdGUodGhpcywgcGFydGlhbFN0YXRlLCBjYWxsYmFjaywgJ3NldFN0YXRlJyk7XG59O1xuLyoqXG4gKiBGb3JjZXMgYW4gdXBkYXRlLiBUaGlzIHNob3VsZCBvbmx5IGJlIGludm9rZWQgd2hlbiBpdCBpcyBrbm93biB3aXRoXG4gKiBjZXJ0YWludHkgdGhhdCB3ZSBhcmUgKipub3QqKiBpbiBhIERPTSB0cmFuc2FjdGlvbi5cbiAqXG4gKiBZb3UgbWF5IHdhbnQgdG8gY2FsbCB0aGlzIHdoZW4geW91IGtub3cgdGhhdCBzb21lIGRlZXBlciBhc3BlY3Qgb2YgdGhlXG4gKiBjb21wb25lbnQncyBzdGF0ZSBoYXMgY2hhbmdlZCBidXQgYHNldFN0YXRlYCB3YXMgbm90IGNhbGxlZC5cbiAqXG4gKiBUaGlzIHdpbGwgbm90IGludm9rZSBgc2hvdWxkQ29tcG9uZW50VXBkYXRlYCwgYnV0IGl0IHdpbGwgaW52b2tlXG4gKiBgY29tcG9uZW50V2lsbFVwZGF0ZWAgYW5kIGBjb21wb25lbnREaWRVcGRhdGVgLlxuICpcbiAqIEBwYXJhbSB7P2Z1bmN0aW9ufSBjYWxsYmFjayBDYWxsZWQgYWZ0ZXIgdXBkYXRlIGlzIGNvbXBsZXRlLlxuICogQGZpbmFsXG4gKiBAcHJvdGVjdGVkXG4gKi9cblxuXG5Db21wb25lbnQucHJvdG90eXBlLmZvcmNlVXBkYXRlID0gZnVuY3Rpb24gKGNhbGxiYWNrKSB7XG4gIHRoaXMudXBkYXRlci5lbnF1ZXVlRm9yY2VVcGRhdGUodGhpcywgY2FsbGJhY2ssICdmb3JjZVVwZGF0ZScpO1xufTtcbi8qKlxuICogRGVwcmVjYXRlZCBBUElzLiBUaGVzZSBBUElzIHVzZWQgdG8gZXhpc3Qgb24gY2xhc3NpYyBSZWFjdCBjbGFzc2VzIGJ1dCBzaW5jZVxuICogd2Ugd291bGQgbGlrZSB0byBkZXByZWNhdGUgdGhlbSwgd2UncmUgbm90IGdvaW5nIHRvIG1vdmUgdGhlbSBvdmVyIHRvIHRoaXNcbiAqIG1vZGVybiBiYXNlIGNsYXNzLiBJbnN0ZWFkLCB3ZSBkZWZpbmUgYSBnZXR0ZXIgdGhhdCB3YXJucyBpZiBpdCdzIGFjY2Vzc2VkLlxuICovXG5cblxue1xuICB2YXIgZGVwcmVjYXRlZEFQSXMgPSB7XG4gICAgaXNNb3VudGVkOiBbJ2lzTW91bnRlZCcsICdJbnN0ZWFkLCBtYWtlIHN1cmUgdG8gY2xlYW4gdXAgc3Vic2NyaXB0aW9ucyBhbmQgcGVuZGluZyByZXF1ZXN0cyBpbiAnICsgJ2NvbXBvbmVudFdpbGxVbm1vdW50IHRvIHByZXZlbnQgbWVtb3J5IGxlYWtzLiddLFxuICAgIHJlcGxhY2VTdGF0ZTogWydyZXBsYWNlU3RhdGUnLCAnUmVmYWN0b3IgeW91ciBjb2RlIHRvIHVzZSBzZXRTdGF0ZSBpbnN0ZWFkIChzZWUgJyArICdodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzMyMzYpLiddXG4gIH07XG5cbiAgdmFyIGRlZmluZURlcHJlY2F0aW9uV2FybmluZyA9IGZ1bmN0aW9uIChtZXRob2ROYW1lLCBpbmZvKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KENvbXBvbmVudC5wcm90b3R5cGUsIG1ldGhvZE5hbWUsIHtcbiAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICB3YXJuKCclcyguLi4pIGlzIGRlcHJlY2F0ZWQgaW4gcGxhaW4gSmF2YVNjcmlwdCBSZWFjdCBjbGFzc2VzLiAlcycsIGluZm9bMF0sIGluZm9bMV0pO1xuXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgfSk7XG4gIH07XG5cbiAgZm9yICh2YXIgZm5OYW1lIGluIGRlcHJlY2F0ZWRBUElzKSB7XG4gICAgaWYgKGRlcHJlY2F0ZWRBUElzLmhhc093blByb3BlcnR5KGZuTmFtZSkpIHtcbiAgICAgIGRlZmluZURlcHJlY2F0aW9uV2FybmluZyhmbk5hbWUsIGRlcHJlY2F0ZWRBUElzW2ZuTmFtZV0pO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBDb21wb25lbnREdW1teSgpIHt9XG5cbkNvbXBvbmVudER1bW15LnByb3RvdHlwZSA9IENvbXBvbmVudC5wcm90b3R5cGU7XG4vKipcbiAqIENvbnZlbmllbmNlIGNvbXBvbmVudCB3aXRoIGRlZmF1bHQgc2hhbGxvdyBlcXVhbGl0eSBjaGVjayBmb3Igc0NVLlxuICovXG5cbmZ1bmN0aW9uIFB1cmVDb21wb25lbnQocHJvcHMsIGNvbnRleHQsIHVwZGF0ZXIpIHtcbiAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICB0aGlzLmNvbnRleHQgPSBjb250ZXh0OyAvLyBJZiBhIGNvbXBvbmVudCBoYXMgc3RyaW5nIHJlZnMsIHdlIHdpbGwgYXNzaWduIGEgZGlmZmVyZW50IG9iamVjdCBsYXRlci5cblxuICB0aGlzLnJlZnMgPSBlbXB0eU9iamVjdDtcbiAgdGhpcy51cGRhdGVyID0gdXBkYXRlciB8fCBSZWFjdE5vb3BVcGRhdGVRdWV1ZTtcbn1cblxudmFyIHB1cmVDb21wb25lbnRQcm90b3R5cGUgPSBQdXJlQ29tcG9uZW50LnByb3RvdHlwZSA9IG5ldyBDb21wb25lbnREdW1teSgpO1xucHVyZUNvbXBvbmVudFByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IFB1cmVDb21wb25lbnQ7IC8vIEF2b2lkIGFuIGV4dHJhIHByb3RvdHlwZSBqdW1wIGZvciB0aGVzZSBtZXRob2RzLlxuXG5fYXNzaWduKHB1cmVDb21wb25lbnRQcm90b3R5cGUsIENvbXBvbmVudC5wcm90b3R5cGUpO1xuXG5wdXJlQ29tcG9uZW50UHJvdG90eXBlLmlzUHVyZVJlYWN0Q29tcG9uZW50ID0gdHJ1ZTtcblxuLy8gYW4gaW1tdXRhYmxlIG9iamVjdCB3aXRoIGEgc2luZ2xlIG11dGFibGUgdmFsdWVcbmZ1bmN0aW9uIGNyZWF0ZVJlZigpIHtcbiAgdmFyIHJlZk9iamVjdCA9IHtcbiAgICBjdXJyZW50OiBudWxsXG4gIH07XG5cbiAge1xuICAgIE9iamVjdC5zZWFsKHJlZk9iamVjdCk7XG4gIH1cblxuICByZXR1cm4gcmVmT2JqZWN0O1xufVxuXG5mdW5jdGlvbiBnZXRXcmFwcGVkTmFtZShvdXRlclR5cGUsIGlubmVyVHlwZSwgd3JhcHBlck5hbWUpIHtcbiAgdmFyIGZ1bmN0aW9uTmFtZSA9IGlubmVyVHlwZS5kaXNwbGF5TmFtZSB8fCBpbm5lclR5cGUubmFtZSB8fCAnJztcbiAgcmV0dXJuIG91dGVyVHlwZS5kaXNwbGF5TmFtZSB8fCAoZnVuY3Rpb25OYW1lICE9PSAnJyA/IHdyYXBwZXJOYW1lICsgXCIoXCIgKyBmdW5jdGlvbk5hbWUgKyBcIilcIiA6IHdyYXBwZXJOYW1lKTtcbn1cblxuZnVuY3Rpb24gZ2V0Q29udGV4dE5hbWUodHlwZSkge1xuICByZXR1cm4gdHlwZS5kaXNwbGF5TmFtZSB8fCAnQ29udGV4dCc7XG59XG5cbmZ1bmN0aW9uIGdldENvbXBvbmVudE5hbWUodHlwZSkge1xuICBpZiAodHlwZSA9PSBudWxsKSB7XG4gICAgLy8gSG9zdCByb290LCB0ZXh0IG5vZGUgb3IganVzdCBpbnZhbGlkIHR5cGUuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICB7XG4gICAgaWYgKHR5cGVvZiB0eXBlLnRhZyA9PT0gJ251bWJlcicpIHtcbiAgICAgIGVycm9yKCdSZWNlaXZlZCBhbiB1bmV4cGVjdGVkIG9iamVjdCBpbiBnZXRDb21wb25lbnROYW1lKCkuICcgKyAnVGhpcyBpcyBsaWtlbHkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicpO1xuICAgIH1cbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiB0eXBlLmRpc3BsYXlOYW1lIHx8IHR5cGUubmFtZSB8fCBudWxsO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB0eXBlO1xuICB9XG5cbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSBleHBvcnRzLkZyYWdtZW50OlxuICAgICAgcmV0dXJuICdGcmFnbWVudCc7XG5cbiAgICBjYXNlIFJFQUNUX1BPUlRBTF9UWVBFOlxuICAgICAgcmV0dXJuICdQb3J0YWwnO1xuXG4gICAgY2FzZSBleHBvcnRzLlByb2ZpbGVyOlxuICAgICAgcmV0dXJuICdQcm9maWxlcic7XG5cbiAgICBjYXNlIGV4cG9ydHMuU3RyaWN0TW9kZTpcbiAgICAgIHJldHVybiAnU3RyaWN0TW9kZSc7XG5cbiAgICBjYXNlIGV4cG9ydHMuU3VzcGVuc2U6XG4gICAgICByZXR1cm4gJ1N1c3BlbnNlJztcblxuICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFOlxuICAgICAgcmV0dXJuICdTdXNwZW5zZUxpc3QnO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnb2JqZWN0Jykge1xuICAgIHN3aXRjaCAodHlwZS4kJHR5cGVvZikge1xuICAgICAgY2FzZSBSRUFDVF9DT05URVhUX1RZUEU6XG4gICAgICAgIHZhciBjb250ZXh0ID0gdHlwZTtcbiAgICAgICAgcmV0dXJuIGdldENvbnRleHROYW1lKGNvbnRleHQpICsgJy5Db25zdW1lcic7XG5cbiAgICAgIGNhc2UgUkVBQ1RfUFJPVklERVJfVFlQRTpcbiAgICAgICAgdmFyIHByb3ZpZGVyID0gdHlwZTtcbiAgICAgICAgcmV0dXJuIGdldENvbnRleHROYW1lKHByb3ZpZGVyLl9jb250ZXh0KSArICcuUHJvdmlkZXInO1xuXG4gICAgICBjYXNlIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU6XG4gICAgICAgIHJldHVybiBnZXRXcmFwcGVkTmFtZSh0eXBlLCB0eXBlLnJlbmRlciwgJ0ZvcndhcmRSZWYnKTtcblxuICAgICAgY2FzZSBSRUFDVF9NRU1PX1RZUEU6XG4gICAgICAgIHJldHVybiBnZXRDb21wb25lbnROYW1lKHR5cGUudHlwZSk7XG5cbiAgICAgIGNhc2UgUkVBQ1RfQkxPQ0tfVFlQRTpcbiAgICAgICAgcmV0dXJuIGdldENvbXBvbmVudE5hbWUodHlwZS5fcmVuZGVyKTtcblxuICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgbGF6eUNvbXBvbmVudCA9IHR5cGU7XG4gICAgICAgICAgdmFyIHBheWxvYWQgPSBsYXp5Q29tcG9uZW50Ll9wYXlsb2FkO1xuICAgICAgICAgIHZhciBpbml0ID0gbGF6eUNvbXBvbmVudC5faW5pdDtcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0Q29tcG9uZW50TmFtZShpbml0KHBheWxvYWQpKTtcbiAgICAgICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxudmFyIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbnZhciBSRVNFUlZFRF9QUk9QUyA9IHtcbiAga2V5OiB0cnVlLFxuICByZWY6IHRydWUsXG4gIF9fc2VsZjogdHJ1ZSxcbiAgX19zb3VyY2U6IHRydWVcbn07XG52YXIgc3BlY2lhbFByb3BLZXlXYXJuaW5nU2hvd24sIHNwZWNpYWxQcm9wUmVmV2FybmluZ1Nob3duLCBkaWRXYXJuQWJvdXRTdHJpbmdSZWZzO1xuXG57XG4gIGRpZFdhcm5BYm91dFN0cmluZ1JlZnMgPSB7fTtcbn1cblxuZnVuY3Rpb24gaGFzVmFsaWRSZWYoY29uZmlnKSB7XG4gIHtcbiAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChjb25maWcsICdyZWYnKSkge1xuICAgICAgdmFyIGdldHRlciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoY29uZmlnLCAncmVmJykuZ2V0O1xuXG4gICAgICBpZiAoZ2V0dGVyICYmIGdldHRlci5pc1JlYWN0V2FybmluZykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNvbmZpZy5yZWYgIT09IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gaGFzVmFsaWRLZXkoY29uZmlnKSB7XG4gIHtcbiAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChjb25maWcsICdrZXknKSkge1xuICAgICAgdmFyIGdldHRlciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoY29uZmlnLCAna2V5JykuZ2V0O1xuXG4gICAgICBpZiAoZ2V0dGVyICYmIGdldHRlci5pc1JlYWN0V2FybmluZykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNvbmZpZy5rZXkgIT09IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gZGVmaW5lS2V5UHJvcFdhcm5pbmdHZXR0ZXIocHJvcHMsIGRpc3BsYXlOYW1lKSB7XG4gIHZhciB3YXJuQWJvdXRBY2Nlc3NpbmdLZXkgPSBmdW5jdGlvbiAoKSB7XG4gICAge1xuICAgICAgaWYgKCFzcGVjaWFsUHJvcEtleVdhcm5pbmdTaG93bikge1xuICAgICAgICBzcGVjaWFsUHJvcEtleVdhcm5pbmdTaG93biA9IHRydWU7XG5cbiAgICAgICAgZXJyb3IoJyVzOiBga2V5YCBpcyBub3QgYSBwcm9wLiBUcnlpbmcgdG8gYWNjZXNzIGl0IHdpbGwgcmVzdWx0ICcgKyAnaW4gYHVuZGVmaW5lZGAgYmVpbmcgcmV0dXJuZWQuIElmIHlvdSBuZWVkIHRvIGFjY2VzcyB0aGUgc2FtZSAnICsgJ3ZhbHVlIHdpdGhpbiB0aGUgY2hpbGQgY29tcG9uZW50LCB5b3Ugc2hvdWxkIHBhc3MgaXQgYXMgYSBkaWZmZXJlbnQgJyArICdwcm9wLiAoaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3NwZWNpYWwtcHJvcHMpJywgZGlzcGxheU5hbWUpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICB3YXJuQWJvdXRBY2Nlc3NpbmdLZXkuaXNSZWFjdFdhcm5pbmcgPSB0cnVlO1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvcHMsICdrZXknLCB7XG4gICAgZ2V0OiB3YXJuQWJvdXRBY2Nlc3NpbmdLZXksXG4gICAgY29uZmlndXJhYmxlOiB0cnVlXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBkZWZpbmVSZWZQcm9wV2FybmluZ0dldHRlcihwcm9wcywgZGlzcGxheU5hbWUpIHtcbiAgdmFyIHdhcm5BYm91dEFjY2Vzc2luZ1JlZiA9IGZ1bmN0aW9uICgpIHtcbiAgICB7XG4gICAgICBpZiAoIXNwZWNpYWxQcm9wUmVmV2FybmluZ1Nob3duKSB7XG4gICAgICAgIHNwZWNpYWxQcm9wUmVmV2FybmluZ1Nob3duID0gdHJ1ZTtcblxuICAgICAgICBlcnJvcignJXM6IGByZWZgIGlzIG5vdCBhIHByb3AuIFRyeWluZyB0byBhY2Nlc3MgaXQgd2lsbCByZXN1bHQgJyArICdpbiBgdW5kZWZpbmVkYCBiZWluZyByZXR1cm5lZC4gSWYgeW91IG5lZWQgdG8gYWNjZXNzIHRoZSBzYW1lICcgKyAndmFsdWUgd2l0aGluIHRoZSBjaGlsZCBjb21wb25lbnQsIHlvdSBzaG91bGQgcGFzcyBpdCBhcyBhIGRpZmZlcmVudCAnICsgJ3Byb3AuIChodHRwczovL3JlYWN0anMub3JnL2xpbmsvc3BlY2lhbC1wcm9wcyknLCBkaXNwbGF5TmFtZSk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIHdhcm5BYm91dEFjY2Vzc2luZ1JlZi5pc1JlYWN0V2FybmluZyA9IHRydWU7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm9wcywgJ3JlZicsIHtcbiAgICBnZXQ6IHdhcm5BYm91dEFjY2Vzc2luZ1JlZixcbiAgICBjb25maWd1cmFibGU6IHRydWVcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHdhcm5JZlN0cmluZ1JlZkNhbm5vdEJlQXV0b0NvbnZlcnRlZChjb25maWcpIHtcbiAge1xuICAgIGlmICh0eXBlb2YgY29uZmlnLnJlZiA9PT0gJ3N0cmluZycgJiYgUmVhY3RDdXJyZW50T3duZXIuY3VycmVudCAmJiBjb25maWcuX19zZWxmICYmIFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQuc3RhdGVOb2RlICE9PSBjb25maWcuX19zZWxmKSB7XG4gICAgICB2YXIgY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWUoUmVhY3RDdXJyZW50T3duZXIuY3VycmVudC50eXBlKTtcblxuICAgICAgaWYgKCFkaWRXYXJuQWJvdXRTdHJpbmdSZWZzW2NvbXBvbmVudE5hbWVdKSB7XG4gICAgICAgIGVycm9yKCdDb21wb25lbnQgXCIlc1wiIGNvbnRhaW5zIHRoZSBzdHJpbmcgcmVmIFwiJXNcIi4gJyArICdTdXBwb3J0IGZvciBzdHJpbmcgcmVmcyB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgbWFqb3IgcmVsZWFzZS4gJyArICdUaGlzIGNhc2UgY2Fubm90IGJlIGF1dG9tYXRpY2FsbHkgY29udmVydGVkIHRvIGFuIGFycm93IGZ1bmN0aW9uLiAnICsgJ1dlIGFzayB5b3UgdG8gbWFudWFsbHkgZml4IHRoaXMgY2FzZSBieSB1c2luZyB1c2VSZWYoKSBvciBjcmVhdGVSZWYoKSBpbnN0ZWFkLiAnICsgJ0xlYXJuIG1vcmUgYWJvdXQgdXNpbmcgcmVmcyBzYWZlbHkgaGVyZTogJyArICdodHRwczovL3JlYWN0anMub3JnL2xpbmsvc3RyaWN0LW1vZGUtc3RyaW5nLXJlZicsIGNvbXBvbmVudE5hbWUsIGNvbmZpZy5yZWYpO1xuXG4gICAgICAgIGRpZFdhcm5BYm91dFN0cmluZ1JlZnNbY29tcG9uZW50TmFtZV0gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuLyoqXG4gKiBGYWN0b3J5IG1ldGhvZCB0byBjcmVhdGUgYSBuZXcgUmVhY3QgZWxlbWVudC4gVGhpcyBubyBsb25nZXIgYWRoZXJlcyB0b1xuICogdGhlIGNsYXNzIHBhdHRlcm4sIHNvIGRvIG5vdCB1c2UgbmV3IHRvIGNhbGwgaXQuIEFsc28sIGluc3RhbmNlb2YgY2hlY2tcbiAqIHdpbGwgbm90IHdvcmsuIEluc3RlYWQgdGVzdCAkJHR5cGVvZiBmaWVsZCBhZ2FpbnN0IFN5bWJvbC5mb3IoJ3JlYWN0LmVsZW1lbnQnKSB0byBjaGVja1xuICogaWYgc29tZXRoaW5nIGlzIGEgUmVhY3QgRWxlbWVudC5cbiAqXG4gKiBAcGFyYW0geyp9IHR5cGVcbiAqIEBwYXJhbSB7Kn0gcHJvcHNcbiAqIEBwYXJhbSB7Kn0ga2V5XG4gKiBAcGFyYW0ge3N0cmluZ3xvYmplY3R9IHJlZlxuICogQHBhcmFtIHsqfSBvd25lclxuICogQHBhcmFtIHsqfSBzZWxmIEEgKnRlbXBvcmFyeSogaGVscGVyIHRvIGRldGVjdCBwbGFjZXMgd2hlcmUgYHRoaXNgIGlzXG4gKiBkaWZmZXJlbnQgZnJvbSB0aGUgYG93bmVyYCB3aGVuIFJlYWN0LmNyZWF0ZUVsZW1lbnQgaXMgY2FsbGVkLCBzbyB0aGF0IHdlXG4gKiBjYW4gd2Fybi4gV2Ugd2FudCB0byBnZXQgcmlkIG9mIG93bmVyIGFuZCByZXBsYWNlIHN0cmluZyBgcmVmYHMgd2l0aCBhcnJvd1xuICogZnVuY3Rpb25zLCBhbmQgYXMgbG9uZyBhcyBgdGhpc2AgYW5kIG93bmVyIGFyZSB0aGUgc2FtZSwgdGhlcmUgd2lsbCBiZSBub1xuICogY2hhbmdlIGluIGJlaGF2aW9yLlxuICogQHBhcmFtIHsqfSBzb3VyY2UgQW4gYW5ub3RhdGlvbiBvYmplY3QgKGFkZGVkIGJ5IGEgdHJhbnNwaWxlciBvciBvdGhlcndpc2UpXG4gKiBpbmRpY2F0aW5nIGZpbGVuYW1lLCBsaW5lIG51bWJlciwgYW5kL29yIG90aGVyIGluZm9ybWF0aW9uLlxuICogQGludGVybmFsXG4gKi9cblxuXG52YXIgUmVhY3RFbGVtZW50ID0gZnVuY3Rpb24gKHR5cGUsIGtleSwgcmVmLCBzZWxmLCBzb3VyY2UsIG93bmVyLCBwcm9wcykge1xuICB2YXIgZWxlbWVudCA9IHtcbiAgICAvLyBUaGlzIHRhZyBhbGxvd3MgdXMgdG8gdW5pcXVlbHkgaWRlbnRpZnkgdGhpcyBhcyBhIFJlYWN0IEVsZW1lbnRcbiAgICAkJHR5cGVvZjogUkVBQ1RfRUxFTUVOVF9UWVBFLFxuICAgIC8vIEJ1aWx0LWluIHByb3BlcnRpZXMgdGhhdCBiZWxvbmcgb24gdGhlIGVsZW1lbnRcbiAgICB0eXBlOiB0eXBlLFxuICAgIGtleToga2V5LFxuICAgIHJlZjogcmVmLFxuICAgIHByb3BzOiBwcm9wcyxcbiAgICAvLyBSZWNvcmQgdGhlIGNvbXBvbmVudCByZXNwb25zaWJsZSBmb3IgY3JlYXRpbmcgdGhpcyBlbGVtZW50LlxuICAgIF9vd25lcjogb3duZXJcbiAgfTtcblxuICB7XG4gICAgLy8gVGhlIHZhbGlkYXRpb24gZmxhZyBpcyBjdXJyZW50bHkgbXV0YXRpdmUuIFdlIHB1dCBpdCBvblxuICAgIC8vIGFuIGV4dGVybmFsIGJhY2tpbmcgc3RvcmUgc28gdGhhdCB3ZSBjYW4gZnJlZXplIHRoZSB3aG9sZSBvYmplY3QuXG4gICAgLy8gVGhpcyBjYW4gYmUgcmVwbGFjZWQgd2l0aCBhIFdlYWtNYXAgb25jZSB0aGV5IGFyZSBpbXBsZW1lbnRlZCBpblxuICAgIC8vIGNvbW1vbmx5IHVzZWQgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnRzLlxuICAgIGVsZW1lbnQuX3N0b3JlID0ge307IC8vIFRvIG1ha2UgY29tcGFyaW5nIFJlYWN0RWxlbWVudHMgZWFzaWVyIGZvciB0ZXN0aW5nIHB1cnBvc2VzLCB3ZSBtYWtlXG4gICAgLy8gdGhlIHZhbGlkYXRpb24gZmxhZyBub24tZW51bWVyYWJsZSAod2hlcmUgcG9zc2libGUsIHdoaWNoIHNob3VsZFxuICAgIC8vIGluY2x1ZGUgZXZlcnkgZW52aXJvbm1lbnQgd2UgcnVuIHRlc3RzIGluKSwgc28gdGhlIHRlc3QgZnJhbWV3b3JrXG4gICAgLy8gaWdub3JlcyBpdC5cblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlbGVtZW50Ll9zdG9yZSwgJ3ZhbGlkYXRlZCcsIHtcbiAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgdmFsdWU6IGZhbHNlXG4gICAgfSk7IC8vIHNlbGYgYW5kIHNvdXJjZSBhcmUgREVWIG9ubHkgcHJvcGVydGllcy5cblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlbGVtZW50LCAnX3NlbGYnLCB7XG4gICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICB2YWx1ZTogc2VsZlxuICAgIH0pOyAvLyBUd28gZWxlbWVudHMgY3JlYXRlZCBpbiB0d28gZGlmZmVyZW50IHBsYWNlcyBzaG91bGQgYmUgY29uc2lkZXJlZFxuICAgIC8vIGVxdWFsIGZvciB0ZXN0aW5nIHB1cnBvc2VzIGFuZCB0aGVyZWZvcmUgd2UgaGlkZSBpdCBmcm9tIGVudW1lcmF0aW9uLlxuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGVsZW1lbnQsICdfc291cmNlJywge1xuICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgICAgdmFsdWU6IHNvdXJjZVxuICAgIH0pO1xuXG4gICAgaWYgKE9iamVjdC5mcmVlemUpIHtcbiAgICAgIE9iamVjdC5mcmVlemUoZWxlbWVudC5wcm9wcyk7XG4gICAgICBPYmplY3QuZnJlZXplKGVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBlbGVtZW50O1xufTtcbi8qKlxuICogQ3JlYXRlIGFuZCByZXR1cm4gYSBuZXcgUmVhY3RFbGVtZW50IG9mIHRoZSBnaXZlbiB0eXBlLlxuICogU2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9yZWFjdC1hcGkuaHRtbCNjcmVhdGVlbGVtZW50XG4gKi9cblxuZnVuY3Rpb24gY3JlYXRlRWxlbWVudCh0eXBlLCBjb25maWcsIGNoaWxkcmVuKSB7XG4gIHZhciBwcm9wTmFtZTsgLy8gUmVzZXJ2ZWQgbmFtZXMgYXJlIGV4dHJhY3RlZFxuXG4gIHZhciBwcm9wcyA9IHt9O1xuICB2YXIga2V5ID0gbnVsbDtcbiAgdmFyIHJlZiA9IG51bGw7XG4gIHZhciBzZWxmID0gbnVsbDtcbiAgdmFyIHNvdXJjZSA9IG51bGw7XG5cbiAgaWYgKGNvbmZpZyAhPSBudWxsKSB7XG4gICAgaWYgKGhhc1ZhbGlkUmVmKGNvbmZpZykpIHtcbiAgICAgIHJlZiA9IGNvbmZpZy5yZWY7XG5cbiAgICAgIHtcbiAgICAgICAgd2FybklmU3RyaW5nUmVmQ2Fubm90QmVBdXRvQ29udmVydGVkKGNvbmZpZyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGhhc1ZhbGlkS2V5KGNvbmZpZykpIHtcbiAgICAgIGtleSA9ICcnICsgY29uZmlnLmtleTtcbiAgICB9XG5cbiAgICBzZWxmID0gY29uZmlnLl9fc2VsZiA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGNvbmZpZy5fX3NlbGY7XG4gICAgc291cmNlID0gY29uZmlnLl9fc291cmNlID09PSB1bmRlZmluZWQgPyBudWxsIDogY29uZmlnLl9fc291cmNlOyAvLyBSZW1haW5pbmcgcHJvcGVydGllcyBhcmUgYWRkZWQgdG8gYSBuZXcgcHJvcHMgb2JqZWN0XG5cbiAgICBmb3IgKHByb3BOYW1lIGluIGNvbmZpZykge1xuICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoY29uZmlnLCBwcm9wTmFtZSkgJiYgIVJFU0VSVkVEX1BST1BTLmhhc093blByb3BlcnR5KHByb3BOYW1lKSkge1xuICAgICAgICBwcm9wc1twcm9wTmFtZV0gPSBjb25maWdbcHJvcE5hbWVdO1xuICAgICAgfVxuICAgIH1cbiAgfSAvLyBDaGlsZHJlbiBjYW4gYmUgbW9yZSB0aGFuIG9uZSBhcmd1bWVudCwgYW5kIHRob3NlIGFyZSB0cmFuc2ZlcnJlZCBvbnRvXG4gIC8vIHRoZSBuZXdseSBhbGxvY2F0ZWQgcHJvcHMgb2JqZWN0LlxuXG5cbiAgdmFyIGNoaWxkcmVuTGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aCAtIDI7XG5cbiAgaWYgKGNoaWxkcmVuTGVuZ3RoID09PSAxKSB7XG4gICAgcHJvcHMuY2hpbGRyZW4gPSBjaGlsZHJlbjtcbiAgfSBlbHNlIGlmIChjaGlsZHJlbkxlbmd0aCA+IDEpIHtcbiAgICB2YXIgY2hpbGRBcnJheSA9IEFycmF5KGNoaWxkcmVuTGVuZ3RoKTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW5MZW5ndGg7IGkrKykge1xuICAgICAgY2hpbGRBcnJheVtpXSA9IGFyZ3VtZW50c1tpICsgMl07XG4gICAgfVxuXG4gICAge1xuICAgICAgaWYgKE9iamVjdC5mcmVlemUpIHtcbiAgICAgICAgT2JqZWN0LmZyZWV6ZShjaGlsZEFycmF5KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcm9wcy5jaGlsZHJlbiA9IGNoaWxkQXJyYXk7XG4gIH0gLy8gUmVzb2x2ZSBkZWZhdWx0IHByb3BzXG5cblxuICBpZiAodHlwZSAmJiB0eXBlLmRlZmF1bHRQcm9wcykge1xuICAgIHZhciBkZWZhdWx0UHJvcHMgPSB0eXBlLmRlZmF1bHRQcm9wcztcblxuICAgIGZvciAocHJvcE5hbWUgaW4gZGVmYXVsdFByb3BzKSB7XG4gICAgICBpZiAocHJvcHNbcHJvcE5hbWVdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcHJvcHNbcHJvcE5hbWVdID0gZGVmYXVsdFByb3BzW3Byb3BOYW1lXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB7XG4gICAgaWYgKGtleSB8fCByZWYpIHtcbiAgICAgIHZhciBkaXNwbGF5TmFtZSA9IHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nID8gdHlwZS5kaXNwbGF5TmFtZSB8fCB0eXBlLm5hbWUgfHwgJ1Vua25vd24nIDogdHlwZTtcblxuICAgICAgaWYgKGtleSkge1xuICAgICAgICBkZWZpbmVLZXlQcm9wV2FybmluZ0dldHRlcihwcm9wcywgZGlzcGxheU5hbWUpO1xuICAgICAgfVxuXG4gICAgICBpZiAocmVmKSB7XG4gICAgICAgIGRlZmluZVJlZlByb3BXYXJuaW5nR2V0dGVyKHByb3BzLCBkaXNwbGF5TmFtZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFJlYWN0RWxlbWVudCh0eXBlLCBrZXksIHJlZiwgc2VsZiwgc291cmNlLCBSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50LCBwcm9wcyk7XG59XG5mdW5jdGlvbiBjbG9uZUFuZFJlcGxhY2VLZXkob2xkRWxlbWVudCwgbmV3S2V5KSB7XG4gIHZhciBuZXdFbGVtZW50ID0gUmVhY3RFbGVtZW50KG9sZEVsZW1lbnQudHlwZSwgbmV3S2V5LCBvbGRFbGVtZW50LnJlZiwgb2xkRWxlbWVudC5fc2VsZiwgb2xkRWxlbWVudC5fc291cmNlLCBvbGRFbGVtZW50Ll9vd25lciwgb2xkRWxlbWVudC5wcm9wcyk7XG4gIHJldHVybiBuZXdFbGVtZW50O1xufVxuLyoqXG4gKiBDbG9uZSBhbmQgcmV0dXJuIGEgbmV3IFJlYWN0RWxlbWVudCB1c2luZyBlbGVtZW50IGFzIHRoZSBzdGFydGluZyBwb2ludC5cbiAqIFNlZSBodHRwczovL3JlYWN0anMub3JnL2RvY3MvcmVhY3QtYXBpLmh0bWwjY2xvbmVlbGVtZW50XG4gKi9cblxuZnVuY3Rpb24gY2xvbmVFbGVtZW50KGVsZW1lbnQsIGNvbmZpZywgY2hpbGRyZW4pIHtcbiAgaWYgKCEhKGVsZW1lbnQgPT09IG51bGwgfHwgZWxlbWVudCA9PT0gdW5kZWZpbmVkKSkge1xuICAgIHtcbiAgICAgIHRocm93IEVycm9yKCBcIlJlYWN0LmNsb25lRWxlbWVudCguLi4pOiBUaGUgYXJndW1lbnQgbXVzdCBiZSBhIFJlYWN0IGVsZW1lbnQsIGJ1dCB5b3UgcGFzc2VkIFwiICsgZWxlbWVudCArIFwiLlwiICk7XG4gICAgfVxuICB9XG5cbiAgdmFyIHByb3BOYW1lOyAvLyBPcmlnaW5hbCBwcm9wcyBhcmUgY29waWVkXG5cbiAgdmFyIHByb3BzID0gX2Fzc2lnbih7fSwgZWxlbWVudC5wcm9wcyk7IC8vIFJlc2VydmVkIG5hbWVzIGFyZSBleHRyYWN0ZWRcblxuXG4gIHZhciBrZXkgPSBlbGVtZW50LmtleTtcbiAgdmFyIHJlZiA9IGVsZW1lbnQucmVmOyAvLyBTZWxmIGlzIHByZXNlcnZlZCBzaW5jZSB0aGUgb3duZXIgaXMgcHJlc2VydmVkLlxuXG4gIHZhciBzZWxmID0gZWxlbWVudC5fc2VsZjsgLy8gU291cmNlIGlzIHByZXNlcnZlZCBzaW5jZSBjbG9uZUVsZW1lbnQgaXMgdW5saWtlbHkgdG8gYmUgdGFyZ2V0ZWQgYnkgYVxuICAvLyB0cmFuc3BpbGVyLCBhbmQgdGhlIG9yaWdpbmFsIHNvdXJjZSBpcyBwcm9iYWJseSBhIGJldHRlciBpbmRpY2F0b3Igb2YgdGhlXG4gIC8vIHRydWUgb3duZXIuXG5cbiAgdmFyIHNvdXJjZSA9IGVsZW1lbnQuX3NvdXJjZTsgLy8gT3duZXIgd2lsbCBiZSBwcmVzZXJ2ZWQsIHVubGVzcyByZWYgaXMgb3ZlcnJpZGRlblxuXG4gIHZhciBvd25lciA9IGVsZW1lbnQuX293bmVyO1xuXG4gIGlmIChjb25maWcgIT0gbnVsbCkge1xuICAgIGlmIChoYXNWYWxpZFJlZihjb25maWcpKSB7XG4gICAgICAvLyBTaWxlbnRseSBzdGVhbCB0aGUgcmVmIGZyb20gdGhlIHBhcmVudC5cbiAgICAgIHJlZiA9IGNvbmZpZy5yZWY7XG4gICAgICBvd25lciA9IFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQ7XG4gICAgfVxuXG4gICAgaWYgKGhhc1ZhbGlkS2V5KGNvbmZpZykpIHtcbiAgICAgIGtleSA9ICcnICsgY29uZmlnLmtleTtcbiAgICB9IC8vIFJlbWFpbmluZyBwcm9wZXJ0aWVzIG92ZXJyaWRlIGV4aXN0aW5nIHByb3BzXG5cblxuICAgIHZhciBkZWZhdWx0UHJvcHM7XG5cbiAgICBpZiAoZWxlbWVudC50eXBlICYmIGVsZW1lbnQudHlwZS5kZWZhdWx0UHJvcHMpIHtcbiAgICAgIGRlZmF1bHRQcm9wcyA9IGVsZW1lbnQudHlwZS5kZWZhdWx0UHJvcHM7XG4gICAgfVxuXG4gICAgZm9yIChwcm9wTmFtZSBpbiBjb25maWcpIHtcbiAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbmZpZywgcHJvcE5hbWUpICYmICFSRVNFUlZFRF9QUk9QUy5oYXNPd25Qcm9wZXJ0eShwcm9wTmFtZSkpIHtcbiAgICAgICAgaWYgKGNvbmZpZ1twcm9wTmFtZV0gPT09IHVuZGVmaW5lZCAmJiBkZWZhdWx0UHJvcHMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIC8vIFJlc29sdmUgZGVmYXVsdCBwcm9wc1xuICAgICAgICAgIHByb3BzW3Byb3BOYW1lXSA9IGRlZmF1bHRQcm9wc1twcm9wTmFtZV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcHJvcHNbcHJvcE5hbWVdID0gY29uZmlnW3Byb3BOYW1lXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSAvLyBDaGlsZHJlbiBjYW4gYmUgbW9yZSB0aGFuIG9uZSBhcmd1bWVudCwgYW5kIHRob3NlIGFyZSB0cmFuc2ZlcnJlZCBvbnRvXG4gIC8vIHRoZSBuZXdseSBhbGxvY2F0ZWQgcHJvcHMgb2JqZWN0LlxuXG5cbiAgdmFyIGNoaWxkcmVuTGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aCAtIDI7XG5cbiAgaWYgKGNoaWxkcmVuTGVuZ3RoID09PSAxKSB7XG4gICAgcHJvcHMuY2hpbGRyZW4gPSBjaGlsZHJlbjtcbiAgfSBlbHNlIGlmIChjaGlsZHJlbkxlbmd0aCA+IDEpIHtcbiAgICB2YXIgY2hpbGRBcnJheSA9IEFycmF5KGNoaWxkcmVuTGVuZ3RoKTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW5MZW5ndGg7IGkrKykge1xuICAgICAgY2hpbGRBcnJheVtpXSA9IGFyZ3VtZW50c1tpICsgMl07XG4gICAgfVxuXG4gICAgcHJvcHMuY2hpbGRyZW4gPSBjaGlsZEFycmF5O1xuICB9XG5cbiAgcmV0dXJuIFJlYWN0RWxlbWVudChlbGVtZW50LnR5cGUsIGtleSwgcmVmLCBzZWxmLCBzb3VyY2UsIG93bmVyLCBwcm9wcyk7XG59XG4vKipcbiAqIFZlcmlmaWVzIHRoZSBvYmplY3QgaXMgYSBSZWFjdEVsZW1lbnQuXG4gKiBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL3JlYWN0LWFwaS5odG1sI2lzdmFsaWRlbGVtZW50XG4gKiBAcGFyYW0gez9vYmplY3R9IG9iamVjdFxuICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSBpZiBgb2JqZWN0YCBpcyBhIFJlYWN0RWxlbWVudC5cbiAqIEBmaW5hbFxuICovXG5cbmZ1bmN0aW9uIGlzVmFsaWRFbGVtZW50KG9iamVjdCkge1xuICByZXR1cm4gdHlwZW9mIG9iamVjdCA9PT0gJ29iamVjdCcgJiYgb2JqZWN0ICE9PSBudWxsICYmIG9iamVjdC4kJHR5cGVvZiA9PT0gUkVBQ1RfRUxFTUVOVF9UWVBFO1xufVxuXG52YXIgU0VQQVJBVE9SID0gJy4nO1xudmFyIFNVQlNFUEFSQVRPUiA9ICc6Jztcbi8qKlxuICogRXNjYXBlIGFuZCB3cmFwIGtleSBzbyBpdCBpcyBzYWZlIHRvIHVzZSBhcyBhIHJlYWN0aWRcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IHRvIGJlIGVzY2FwZWQuXG4gKiBAcmV0dXJuIHtzdHJpbmd9IHRoZSBlc2NhcGVkIGtleS5cbiAqL1xuXG5mdW5jdGlvbiBlc2NhcGUoa2V5KSB7XG4gIHZhciBlc2NhcGVSZWdleCA9IC9bPTpdL2c7XG4gIHZhciBlc2NhcGVyTG9va3VwID0ge1xuICAgICc9JzogJz0wJyxcbiAgICAnOic6ICc9MidcbiAgfTtcbiAgdmFyIGVzY2FwZWRTdHJpbmcgPSBrZXkucmVwbGFjZShlc2NhcGVSZWdleCwgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgcmV0dXJuIGVzY2FwZXJMb29rdXBbbWF0Y2hdO1xuICB9KTtcbiAgcmV0dXJuICckJyArIGVzY2FwZWRTdHJpbmc7XG59XG4vKipcbiAqIFRPRE86IFRlc3QgdGhhdCBhIHNpbmdsZSBjaGlsZCBhbmQgYW4gYXJyYXkgd2l0aCBvbmUgaXRlbSBoYXZlIHRoZSBzYW1lIGtleVxuICogcGF0dGVybi5cbiAqL1xuXG5cbnZhciBkaWRXYXJuQWJvdXRNYXBzID0gZmFsc2U7XG52YXIgdXNlclByb3ZpZGVkS2V5RXNjYXBlUmVnZXggPSAvXFwvKy9nO1xuXG5mdW5jdGlvbiBlc2NhcGVVc2VyUHJvdmlkZWRLZXkodGV4dCkge1xuICByZXR1cm4gdGV4dC5yZXBsYWNlKHVzZXJQcm92aWRlZEtleUVzY2FwZVJlZ2V4LCAnJCYvJyk7XG59XG4vKipcbiAqIEdlbmVyYXRlIGEga2V5IHN0cmluZyB0aGF0IGlkZW50aWZpZXMgYSBlbGVtZW50IHdpdGhpbiBhIHNldC5cbiAqXG4gKiBAcGFyYW0geyp9IGVsZW1lbnQgQSBlbGVtZW50IHRoYXQgY291bGQgY29udGFpbiBhIG1hbnVhbCBrZXkuXG4gKiBAcGFyYW0ge251bWJlcn0gaW5kZXggSW5kZXggdGhhdCBpcyB1c2VkIGlmIGEgbWFudWFsIGtleSBpcyBub3QgcHJvdmlkZWQuXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cblxuXG5mdW5jdGlvbiBnZXRFbGVtZW50S2V5KGVsZW1lbnQsIGluZGV4KSB7XG4gIC8vIERvIHNvbWUgdHlwZWNoZWNraW5nIGhlcmUgc2luY2Ugd2UgY2FsbCB0aGlzIGJsaW5kbHkuIFdlIHdhbnQgdG8gZW5zdXJlXG4gIC8vIHRoYXQgd2UgZG9uJ3QgYmxvY2sgcG90ZW50aWFsIGZ1dHVyZSBFUyBBUElzLlxuICBpZiAodHlwZW9mIGVsZW1lbnQgPT09ICdvYmplY3QnICYmIGVsZW1lbnQgIT09IG51bGwgJiYgZWxlbWVudC5rZXkgIT0gbnVsbCkge1xuICAgIC8vIEV4cGxpY2l0IGtleVxuICAgIHJldHVybiBlc2NhcGUoJycgKyBlbGVtZW50LmtleSk7XG4gIH0gLy8gSW1wbGljaXQga2V5IGRldGVybWluZWQgYnkgdGhlIGluZGV4IGluIHRoZSBzZXRcblxuXG4gIHJldHVybiBpbmRleC50b1N0cmluZygzNik7XG59XG5cbmZ1bmN0aW9uIG1hcEludG9BcnJheShjaGlsZHJlbiwgYXJyYXksIGVzY2FwZWRQcmVmaXgsIG5hbWVTb0ZhciwgY2FsbGJhY2spIHtcbiAgdmFyIHR5cGUgPSB0eXBlb2YgY2hpbGRyZW47XG5cbiAgaWYgKHR5cGUgPT09ICd1bmRlZmluZWQnIHx8IHR5cGUgPT09ICdib29sZWFuJykge1xuICAgIC8vIEFsbCBvZiB0aGUgYWJvdmUgYXJlIHBlcmNlaXZlZCBhcyBudWxsLlxuICAgIGNoaWxkcmVuID0gbnVsbDtcbiAgfVxuXG4gIHZhciBpbnZva2VDYWxsYmFjayA9IGZhbHNlO1xuXG4gIGlmIChjaGlsZHJlbiA9PT0gbnVsbCkge1xuICAgIGludm9rZUNhbGxiYWNrID0gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICBpbnZva2VDYWxsYmFjayA9IHRydWU7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdvYmplY3QnOlxuICAgICAgICBzd2l0Y2ggKGNoaWxkcmVuLiQkdHlwZW9mKSB7XG4gICAgICAgICAgY2FzZSBSRUFDVF9FTEVNRU5UX1RZUEU6XG4gICAgICAgICAgY2FzZSBSRUFDVF9QT1JUQUxfVFlQRTpcbiAgICAgICAgICAgIGludm9rZUNhbGxiYWNrID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgfVxuICB9XG5cbiAgaWYgKGludm9rZUNhbGxiYWNrKSB7XG4gICAgdmFyIF9jaGlsZCA9IGNoaWxkcmVuO1xuICAgIHZhciBtYXBwZWRDaGlsZCA9IGNhbGxiYWNrKF9jaGlsZCk7IC8vIElmIGl0J3MgdGhlIG9ubHkgY2hpbGQsIHRyZWF0IHRoZSBuYW1lIGFzIGlmIGl0IHdhcyB3cmFwcGVkIGluIGFuIGFycmF5XG4gICAgLy8gc28gdGhhdCBpdCdzIGNvbnNpc3RlbnQgaWYgdGhlIG51bWJlciBvZiBjaGlsZHJlbiBncm93czpcblxuICAgIHZhciBjaGlsZEtleSA9IG5hbWVTb0ZhciA9PT0gJycgPyBTRVBBUkFUT1IgKyBnZXRFbGVtZW50S2V5KF9jaGlsZCwgMCkgOiBuYW1lU29GYXI7XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShtYXBwZWRDaGlsZCkpIHtcbiAgICAgIHZhciBlc2NhcGVkQ2hpbGRLZXkgPSAnJztcblxuICAgICAgaWYgKGNoaWxkS2V5ICE9IG51bGwpIHtcbiAgICAgICAgZXNjYXBlZENoaWxkS2V5ID0gZXNjYXBlVXNlclByb3ZpZGVkS2V5KGNoaWxkS2V5KSArICcvJztcbiAgICAgIH1cblxuICAgICAgbWFwSW50b0FycmF5KG1hcHBlZENoaWxkLCBhcnJheSwgZXNjYXBlZENoaWxkS2V5LCAnJywgZnVuY3Rpb24gKGMpIHtcbiAgICAgICAgcmV0dXJuIGM7XG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKG1hcHBlZENoaWxkICE9IG51bGwpIHtcbiAgICAgIGlmIChpc1ZhbGlkRWxlbWVudChtYXBwZWRDaGlsZCkpIHtcbiAgICAgICAgbWFwcGVkQ2hpbGQgPSBjbG9uZUFuZFJlcGxhY2VLZXkobWFwcGVkQ2hpbGQsIC8vIEtlZXAgYm90aCB0aGUgKG1hcHBlZCkgYW5kIG9sZCBrZXlzIGlmIHRoZXkgZGlmZmVyLCBqdXN0IGFzXG4gICAgICAgIC8vIHRyYXZlcnNlQWxsQ2hpbGRyZW4gdXNlZCB0byBkbyBmb3Igb2JqZWN0cyBhcyBjaGlsZHJlblxuICAgICAgICBlc2NhcGVkUHJlZml4ICsgKCAvLyAkRmxvd0ZpeE1lIEZsb3cgaW5jb3JyZWN0bHkgdGhpbmtzIFJlYWN0LlBvcnRhbCBkb2Vzbid0IGhhdmUgYSBrZXlcbiAgICAgICAgbWFwcGVkQ2hpbGQua2V5ICYmICghX2NoaWxkIHx8IF9jaGlsZC5rZXkgIT09IG1hcHBlZENoaWxkLmtleSkgPyAvLyAkRmxvd0ZpeE1lIEZsb3cgaW5jb3JyZWN0bHkgdGhpbmtzIGV4aXN0aW5nIGVsZW1lbnQncyBrZXkgY2FuIGJlIGEgbnVtYmVyXG4gICAgICAgIGVzY2FwZVVzZXJQcm92aWRlZEtleSgnJyArIG1hcHBlZENoaWxkLmtleSkgKyAnLycgOiAnJykgKyBjaGlsZEtleSk7XG4gICAgICB9XG5cbiAgICAgIGFycmF5LnB1c2gobWFwcGVkQ2hpbGQpO1xuICAgIH1cblxuICAgIHJldHVybiAxO1xuICB9XG5cbiAgdmFyIGNoaWxkO1xuICB2YXIgbmV4dE5hbWU7XG4gIHZhciBzdWJ0cmVlQ291bnQgPSAwOyAvLyBDb3VudCBvZiBjaGlsZHJlbiBmb3VuZCBpbiB0aGUgY3VycmVudCBzdWJ0cmVlLlxuXG4gIHZhciBuZXh0TmFtZVByZWZpeCA9IG5hbWVTb0ZhciA9PT0gJycgPyBTRVBBUkFUT1IgOiBuYW1lU29GYXIgKyBTVUJTRVBBUkFUT1I7XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgY2hpbGQgPSBjaGlsZHJlbltpXTtcbiAgICAgIG5leHROYW1lID0gbmV4dE5hbWVQcmVmaXggKyBnZXRFbGVtZW50S2V5KGNoaWxkLCBpKTtcbiAgICAgIHN1YnRyZWVDb3VudCArPSBtYXBJbnRvQXJyYXkoY2hpbGQsIGFycmF5LCBlc2NhcGVkUHJlZml4LCBuZXh0TmFtZSwgY2FsbGJhY2spO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB2YXIgaXRlcmF0b3JGbiA9IGdldEl0ZXJhdG9yRm4oY2hpbGRyZW4pO1xuXG4gICAgaWYgKHR5cGVvZiBpdGVyYXRvckZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB2YXIgaXRlcmFibGVDaGlsZHJlbiA9IGNoaWxkcmVuO1xuXG4gICAgICB7XG4gICAgICAgIC8vIFdhcm4gYWJvdXQgdXNpbmcgTWFwcyBhcyBjaGlsZHJlblxuICAgICAgICBpZiAoaXRlcmF0b3JGbiA9PT0gaXRlcmFibGVDaGlsZHJlbi5lbnRyaWVzKSB7XG4gICAgICAgICAgaWYgKCFkaWRXYXJuQWJvdXRNYXBzKSB7XG4gICAgICAgICAgICB3YXJuKCdVc2luZyBNYXBzIGFzIGNoaWxkcmVuIGlzIG5vdCBzdXBwb3J0ZWQuICcgKyAnVXNlIGFuIGFycmF5IG9mIGtleWVkIFJlYWN0RWxlbWVudHMgaW5zdGVhZC4nKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBkaWRXYXJuQWJvdXRNYXBzID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB2YXIgaXRlcmF0b3IgPSBpdGVyYXRvckZuLmNhbGwoaXRlcmFibGVDaGlsZHJlbik7XG4gICAgICB2YXIgc3RlcDtcbiAgICAgIHZhciBpaSA9IDA7XG5cbiAgICAgIHdoaWxlICghKHN0ZXAgPSBpdGVyYXRvci5uZXh0KCkpLmRvbmUpIHtcbiAgICAgICAgY2hpbGQgPSBzdGVwLnZhbHVlO1xuICAgICAgICBuZXh0TmFtZSA9IG5leHROYW1lUHJlZml4ICsgZ2V0RWxlbWVudEtleShjaGlsZCwgaWkrKyk7XG4gICAgICAgIHN1YnRyZWVDb3VudCArPSBtYXBJbnRvQXJyYXkoY2hpbGQsIGFycmF5LCBlc2NhcGVkUHJlZml4LCBuZXh0TmFtZSwgY2FsbGJhY2spO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHZhciBjaGlsZHJlblN0cmluZyA9ICcnICsgY2hpbGRyZW47XG5cbiAgICAgIHtcbiAgICAgICAge1xuICAgICAgICAgIHRocm93IEVycm9yKCBcIk9iamVjdHMgYXJlIG5vdCB2YWxpZCBhcyBhIFJlYWN0IGNoaWxkIChmb3VuZDogXCIgKyAoY2hpbGRyZW5TdHJpbmcgPT09ICdbb2JqZWN0IE9iamVjdF0nID8gJ29iamVjdCB3aXRoIGtleXMgeycgKyBPYmplY3Qua2V5cyhjaGlsZHJlbikuam9pbignLCAnKSArICd9JyA6IGNoaWxkcmVuU3RyaW5nKSArIFwiKS4gSWYgeW91IG1lYW50IHRvIHJlbmRlciBhIGNvbGxlY3Rpb24gb2YgY2hpbGRyZW4sIHVzZSBhbiBhcnJheSBpbnN0ZWFkLlwiICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3VidHJlZUNvdW50O1xufVxuXG4vKipcbiAqIE1hcHMgY2hpbGRyZW4gdGhhdCBhcmUgdHlwaWNhbGx5IHNwZWNpZmllZCBhcyBgcHJvcHMuY2hpbGRyZW5gLlxuICpcbiAqIFNlZSBodHRwczovL3JlYWN0anMub3JnL2RvY3MvcmVhY3QtYXBpLmh0bWwjcmVhY3RjaGlsZHJlbm1hcFxuICpcbiAqIFRoZSBwcm92aWRlZCBtYXBGdW5jdGlvbihjaGlsZCwgaW5kZXgpIHdpbGwgYmUgY2FsbGVkIGZvciBlYWNoXG4gKiBsZWFmIGNoaWxkLlxuICpcbiAqIEBwYXJhbSB7Pyp9IGNoaWxkcmVuIENoaWxkcmVuIHRyZWUgY29udGFpbmVyLlxuICogQHBhcmFtIHtmdW5jdGlvbigqLCBpbnQpfSBmdW5jIFRoZSBtYXAgZnVuY3Rpb24uXG4gKiBAcGFyYW0geyp9IGNvbnRleHQgQ29udGV4dCBmb3IgbWFwRnVuY3Rpb24uXG4gKiBAcmV0dXJuIHtvYmplY3R9IE9iamVjdCBjb250YWluaW5nIHRoZSBvcmRlcmVkIG1hcCBvZiByZXN1bHRzLlxuICovXG5mdW5jdGlvbiBtYXBDaGlsZHJlbihjaGlsZHJlbiwgZnVuYywgY29udGV4dCkge1xuICBpZiAoY2hpbGRyZW4gPT0gbnVsbCkge1xuICAgIHJldHVybiBjaGlsZHJlbjtcbiAgfVxuXG4gIHZhciByZXN1bHQgPSBbXTtcbiAgdmFyIGNvdW50ID0gMDtcbiAgbWFwSW50b0FycmF5KGNoaWxkcmVuLCByZXN1bHQsICcnLCAnJywgZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgcmV0dXJuIGZ1bmMuY2FsbChjb250ZXh0LCBjaGlsZCwgY291bnQrKyk7XG4gIH0pO1xuICByZXR1cm4gcmVzdWx0O1xufVxuLyoqXG4gKiBDb3VudCB0aGUgbnVtYmVyIG9mIGNoaWxkcmVuIHRoYXQgYXJlIHR5cGljYWxseSBzcGVjaWZpZWQgYXNcbiAqIGBwcm9wcy5jaGlsZHJlbmAuXG4gKlxuICogU2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9yZWFjdC1hcGkuaHRtbCNyZWFjdGNoaWxkcmVuY291bnRcbiAqXG4gKiBAcGFyYW0gez8qfSBjaGlsZHJlbiBDaGlsZHJlbiB0cmVlIGNvbnRhaW5lci5cbiAqIEByZXR1cm4ge251bWJlcn0gVGhlIG51bWJlciBvZiBjaGlsZHJlbi5cbiAqL1xuXG5cbmZ1bmN0aW9uIGNvdW50Q2hpbGRyZW4oY2hpbGRyZW4pIHtcbiAgdmFyIG4gPSAwO1xuICBtYXBDaGlsZHJlbihjaGlsZHJlbiwgZnVuY3Rpb24gKCkge1xuICAgIG4rKzsgLy8gRG9uJ3QgcmV0dXJuIGFueXRoaW5nXG4gIH0pO1xuICByZXR1cm4gbjtcbn1cblxuLyoqXG4gKiBJdGVyYXRlcyB0aHJvdWdoIGNoaWxkcmVuIHRoYXQgYXJlIHR5cGljYWxseSBzcGVjaWZpZWQgYXMgYHByb3BzLmNoaWxkcmVuYC5cbiAqXG4gKiBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL3JlYWN0LWFwaS5odG1sI3JlYWN0Y2hpbGRyZW5mb3JlYWNoXG4gKlxuICogVGhlIHByb3ZpZGVkIGZvckVhY2hGdW5jKGNoaWxkLCBpbmRleCkgd2lsbCBiZSBjYWxsZWQgZm9yIGVhY2hcbiAqIGxlYWYgY2hpbGQuXG4gKlxuICogQHBhcmFtIHs/Kn0gY2hpbGRyZW4gQ2hpbGRyZW4gdHJlZSBjb250YWluZXIuXG4gKiBAcGFyYW0ge2Z1bmN0aW9uKCosIGludCl9IGZvckVhY2hGdW5jXG4gKiBAcGFyYW0geyp9IGZvckVhY2hDb250ZXh0IENvbnRleHQgZm9yIGZvckVhY2hDb250ZXh0LlxuICovXG5mdW5jdGlvbiBmb3JFYWNoQ2hpbGRyZW4oY2hpbGRyZW4sIGZvckVhY2hGdW5jLCBmb3JFYWNoQ29udGV4dCkge1xuICBtYXBDaGlsZHJlbihjaGlsZHJlbiwgZnVuY3Rpb24gKCkge1xuICAgIGZvckVhY2hGdW5jLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IC8vIERvbid0IHJldHVybiBhbnl0aGluZy5cbiAgfSwgZm9yRWFjaENvbnRleHQpO1xufVxuLyoqXG4gKiBGbGF0dGVuIGEgY2hpbGRyZW4gb2JqZWN0ICh0eXBpY2FsbHkgc3BlY2lmaWVkIGFzIGBwcm9wcy5jaGlsZHJlbmApIGFuZFxuICogcmV0dXJuIGFuIGFycmF5IHdpdGggYXBwcm9wcmlhdGVseSByZS1rZXllZCBjaGlsZHJlbi5cbiAqXG4gKiBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL3JlYWN0LWFwaS5odG1sI3JlYWN0Y2hpbGRyZW50b2FycmF5XG4gKi9cblxuXG5mdW5jdGlvbiB0b0FycmF5KGNoaWxkcmVuKSB7XG4gIHJldHVybiBtYXBDaGlsZHJlbihjaGlsZHJlbiwgZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgcmV0dXJuIGNoaWxkO1xuICB9KSB8fCBbXTtcbn1cbi8qKlxuICogUmV0dXJucyB0aGUgZmlyc3QgY2hpbGQgaW4gYSBjb2xsZWN0aW9uIG9mIGNoaWxkcmVuIGFuZCB2ZXJpZmllcyB0aGF0IHRoZXJlXG4gKiBpcyBvbmx5IG9uZSBjaGlsZCBpbiB0aGUgY29sbGVjdGlvbi5cbiAqXG4gKiBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL3JlYWN0LWFwaS5odG1sI3JlYWN0Y2hpbGRyZW5vbmx5XG4gKlxuICogVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gb2YgdGhpcyBmdW5jdGlvbiBhc3N1bWVzIHRoYXQgYSBzaW5nbGUgY2hpbGQgZ2V0c1xuICogcGFzc2VkIHdpdGhvdXQgYSB3cmFwcGVyLCBidXQgdGhlIHB1cnBvc2Ugb2YgdGhpcyBoZWxwZXIgZnVuY3Rpb24gaXMgdG9cbiAqIGFic3RyYWN0IGF3YXkgdGhlIHBhcnRpY3VsYXIgc3RydWN0dXJlIG9mIGNoaWxkcmVuLlxuICpcbiAqIEBwYXJhbSB7P29iamVjdH0gY2hpbGRyZW4gQ2hpbGQgY29sbGVjdGlvbiBzdHJ1Y3R1cmUuXG4gKiBAcmV0dXJuIHtSZWFjdEVsZW1lbnR9IFRoZSBmaXJzdCBhbmQgb25seSBgUmVhY3RFbGVtZW50YCBjb250YWluZWQgaW4gdGhlXG4gKiBzdHJ1Y3R1cmUuXG4gKi9cblxuXG5mdW5jdGlvbiBvbmx5Q2hpbGQoY2hpbGRyZW4pIHtcbiAgaWYgKCFpc1ZhbGlkRWxlbWVudChjaGlsZHJlbikpIHtcbiAgICB7XG4gICAgICB0aHJvdyBFcnJvciggXCJSZWFjdC5DaGlsZHJlbi5vbmx5IGV4cGVjdGVkIHRvIHJlY2VpdmUgYSBzaW5nbGUgUmVhY3QgZWxlbWVudCBjaGlsZC5cIiApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjaGlsZHJlbjtcbn1cblxuZnVuY3Rpb24gY3JlYXRlQ29udGV4dChkZWZhdWx0VmFsdWUsIGNhbGN1bGF0ZUNoYW5nZWRCaXRzKSB7XG4gIGlmIChjYWxjdWxhdGVDaGFuZ2VkQml0cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgY2FsY3VsYXRlQ2hhbmdlZEJpdHMgPSBudWxsO1xuICB9IGVsc2Uge1xuICAgIHtcbiAgICAgIGlmIChjYWxjdWxhdGVDaGFuZ2VkQml0cyAhPT0gbnVsbCAmJiB0eXBlb2YgY2FsY3VsYXRlQ2hhbmdlZEJpdHMgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgZXJyb3IoJ2NyZWF0ZUNvbnRleHQ6IEV4cGVjdGVkIHRoZSBvcHRpb25hbCBzZWNvbmQgYXJndW1lbnQgdG8gYmUgYSAnICsgJ2Z1bmN0aW9uLiBJbnN0ZWFkIHJlY2VpdmVkOiAlcycsIGNhbGN1bGF0ZUNoYW5nZWRCaXRzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB2YXIgY29udGV4dCA9IHtcbiAgICAkJHR5cGVvZjogUkVBQ1RfQ09OVEVYVF9UWVBFLFxuICAgIF9jYWxjdWxhdGVDaGFuZ2VkQml0czogY2FsY3VsYXRlQ2hhbmdlZEJpdHMsXG4gICAgLy8gQXMgYSB3b3JrYXJvdW5kIHRvIHN1cHBvcnQgbXVsdGlwbGUgY29uY3VycmVudCByZW5kZXJlcnMsIHdlIGNhdGVnb3JpemVcbiAgICAvLyBzb21lIHJlbmRlcmVycyBhcyBwcmltYXJ5IGFuZCBvdGhlcnMgYXMgc2Vjb25kYXJ5LiBXZSBvbmx5IGV4cGVjdFxuICAgIC8vIHRoZXJlIHRvIGJlIHR3byBjb25jdXJyZW50IHJlbmRlcmVycyBhdCBtb3N0OiBSZWFjdCBOYXRpdmUgKHByaW1hcnkpIGFuZFxuICAgIC8vIEZhYnJpYyAoc2Vjb25kYXJ5KTsgUmVhY3QgRE9NIChwcmltYXJ5KSBhbmQgUmVhY3QgQVJUIChzZWNvbmRhcnkpLlxuICAgIC8vIFNlY29uZGFyeSByZW5kZXJlcnMgc3RvcmUgdGhlaXIgY29udGV4dCB2YWx1ZXMgb24gc2VwYXJhdGUgZmllbGRzLlxuICAgIF9jdXJyZW50VmFsdWU6IGRlZmF1bHRWYWx1ZSxcbiAgICBfY3VycmVudFZhbHVlMjogZGVmYXVsdFZhbHVlLFxuICAgIC8vIFVzZWQgdG8gdHJhY2sgaG93IG1hbnkgY29uY3VycmVudCByZW5kZXJlcnMgdGhpcyBjb250ZXh0IGN1cnJlbnRseVxuICAgIC8vIHN1cHBvcnRzIHdpdGhpbiBpbiBhIHNpbmdsZSByZW5kZXJlci4gU3VjaCBhcyBwYXJhbGxlbCBzZXJ2ZXIgcmVuZGVyaW5nLlxuICAgIF90aHJlYWRDb3VudDogMCxcbiAgICAvLyBUaGVzZSBhcmUgY2lyY3VsYXJcbiAgICBQcm92aWRlcjogbnVsbCxcbiAgICBDb25zdW1lcjogbnVsbFxuICB9O1xuICBjb250ZXh0LlByb3ZpZGVyID0ge1xuICAgICQkdHlwZW9mOiBSRUFDVF9QUk9WSURFUl9UWVBFLFxuICAgIF9jb250ZXh0OiBjb250ZXh0XG4gIH07XG4gIHZhciBoYXNXYXJuZWRBYm91dFVzaW5nTmVzdGVkQ29udGV4dENvbnN1bWVycyA9IGZhbHNlO1xuICB2YXIgaGFzV2FybmVkQWJvdXRVc2luZ0NvbnN1bWVyUHJvdmlkZXIgPSBmYWxzZTtcbiAgdmFyIGhhc1dhcm5lZEFib3V0RGlzcGxheU5hbWVPbkNvbnN1bWVyID0gZmFsc2U7XG5cbiAge1xuICAgIC8vIEEgc2VwYXJhdGUgb2JqZWN0LCBidXQgcHJveGllcyBiYWNrIHRvIHRoZSBvcmlnaW5hbCBjb250ZXh0IG9iamVjdCBmb3JcbiAgICAvLyBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS4gSXQgaGFzIGEgZGlmZmVyZW50ICQkdHlwZW9mLCBzbyB3ZSBjYW4gcHJvcGVybHlcbiAgICAvLyB3YXJuIGZvciB0aGUgaW5jb3JyZWN0IHVzYWdlIG9mIENvbnRleHQgYXMgYSBDb25zdW1lci5cbiAgICB2YXIgQ29uc3VtZXIgPSB7XG4gICAgICAkJHR5cGVvZjogUkVBQ1RfQ09OVEVYVF9UWVBFLFxuICAgICAgX2NvbnRleHQ6IGNvbnRleHQsXG4gICAgICBfY2FsY3VsYXRlQ2hhbmdlZEJpdHM6IGNvbnRleHQuX2NhbGN1bGF0ZUNoYW5nZWRCaXRzXG4gICAgfTsgLy8gJEZsb3dGaXhNZTogRmxvdyBjb21wbGFpbnMgYWJvdXQgbm90IHNldHRpbmcgYSB2YWx1ZSwgd2hpY2ggaXMgaW50ZW50aW9uYWwgaGVyZVxuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoQ29uc3VtZXIsIHtcbiAgICAgIFByb3ZpZGVyOiB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGlmICghaGFzV2FybmVkQWJvdXRVc2luZ0NvbnN1bWVyUHJvdmlkZXIpIHtcbiAgICAgICAgICAgIGhhc1dhcm5lZEFib3V0VXNpbmdDb25zdW1lclByb3ZpZGVyID0gdHJ1ZTtcblxuICAgICAgICAgICAgZXJyb3IoJ1JlbmRlcmluZyA8Q29udGV4dC5Db25zdW1lci5Qcm92aWRlcj4gaXMgbm90IHN1cHBvcnRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluICcgKyAnYSBmdXR1cmUgbWFqb3IgcmVsZWFzZS4gRGlkIHlvdSBtZWFuIHRvIHJlbmRlciA8Q29udGV4dC5Qcm92aWRlcj4gaW5zdGVhZD8nKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gY29udGV4dC5Qcm92aWRlcjtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAoX1Byb3ZpZGVyKSB7XG4gICAgICAgICAgY29udGV4dC5Qcm92aWRlciA9IF9Qcm92aWRlcjtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIF9jdXJyZW50VmFsdWU6IHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIGNvbnRleHQuX2N1cnJlbnRWYWx1ZTtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAoX2N1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgIGNvbnRleHQuX2N1cnJlbnRWYWx1ZSA9IF9jdXJyZW50VmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBfY3VycmVudFZhbHVlMjoge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gY29udGV4dC5fY3VycmVudFZhbHVlMjtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAoX2N1cnJlbnRWYWx1ZTIpIHtcbiAgICAgICAgICBjb250ZXh0Ll9jdXJyZW50VmFsdWUyID0gX2N1cnJlbnRWYWx1ZTI7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBfdGhyZWFkQ291bnQ6IHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIGNvbnRleHQuX3RocmVhZENvdW50O1xuICAgICAgICB9LFxuICAgICAgICBzZXQ6IGZ1bmN0aW9uIChfdGhyZWFkQ291bnQpIHtcbiAgICAgICAgICBjb250ZXh0Ll90aHJlYWRDb3VudCA9IF90aHJlYWRDb3VudDtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIENvbnN1bWVyOiB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGlmICghaGFzV2FybmVkQWJvdXRVc2luZ05lc3RlZENvbnRleHRDb25zdW1lcnMpIHtcbiAgICAgICAgICAgIGhhc1dhcm5lZEFib3V0VXNpbmdOZXN0ZWRDb250ZXh0Q29uc3VtZXJzID0gdHJ1ZTtcblxuICAgICAgICAgICAgZXJyb3IoJ1JlbmRlcmluZyA8Q29udGV4dC5Db25zdW1lci5Db25zdW1lcj4gaXMgbm90IHN1cHBvcnRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluICcgKyAnYSBmdXR1cmUgbWFqb3IgcmVsZWFzZS4gRGlkIHlvdSBtZWFuIHRvIHJlbmRlciA8Q29udGV4dC5Db25zdW1lcj4gaW5zdGVhZD8nKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gY29udGV4dC5Db25zdW1lcjtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGRpc3BsYXlOYW1lOiB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBjb250ZXh0LmRpc3BsYXlOYW1lO1xuICAgICAgICB9LFxuICAgICAgICBzZXQ6IGZ1bmN0aW9uIChkaXNwbGF5TmFtZSkge1xuICAgICAgICAgIGlmICghaGFzV2FybmVkQWJvdXREaXNwbGF5TmFtZU9uQ29uc3VtZXIpIHtcbiAgICAgICAgICAgIHdhcm4oJ1NldHRpbmcgYGRpc3BsYXlOYW1lYCBvbiBDb250ZXh0LkNvbnN1bWVyIGhhcyBubyBlZmZlY3QuICcgKyBcIllvdSBzaG91bGQgc2V0IGl0IGRpcmVjdGx5IG9uIHRoZSBjb250ZXh0IHdpdGggQ29udGV4dC5kaXNwbGF5TmFtZSA9ICclcycuXCIsIGRpc3BsYXlOYW1lKTtcblxuICAgICAgICAgICAgaGFzV2FybmVkQWJvdXREaXNwbGF5TmFtZU9uQ29uc3VtZXIgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pOyAvLyAkRmxvd0ZpeE1lOiBGbG93IGNvbXBsYWlucyBhYm91dCBtaXNzaW5nIHByb3BlcnRpZXMgYmVjYXVzZSBpdCBkb2Vzbid0IHVuZGVyc3RhbmQgZGVmaW5lUHJvcGVydHlcblxuICAgIGNvbnRleHQuQ29uc3VtZXIgPSBDb25zdW1lcjtcbiAgfVxuXG4gIHtcbiAgICBjb250ZXh0Ll9jdXJyZW50UmVuZGVyZXIgPSBudWxsO1xuICAgIGNvbnRleHQuX2N1cnJlbnRSZW5kZXJlcjIgPSBudWxsO1xuICB9XG5cbiAgcmV0dXJuIGNvbnRleHQ7XG59XG5cbnZhciBVbmluaXRpYWxpemVkID0gLTE7XG52YXIgUGVuZGluZyA9IDA7XG52YXIgUmVzb2x2ZWQgPSAxO1xudmFyIFJlamVjdGVkID0gMjtcblxuZnVuY3Rpb24gbGF6eUluaXRpYWxpemVyKHBheWxvYWQpIHtcbiAgaWYgKHBheWxvYWQuX3N0YXR1cyA9PT0gVW5pbml0aWFsaXplZCkge1xuICAgIHZhciBjdG9yID0gcGF5bG9hZC5fcmVzdWx0O1xuICAgIHZhciB0aGVuYWJsZSA9IGN0b3IoKTsgLy8gVHJhbnNpdGlvbiB0byB0aGUgbmV4dCBzdGF0ZS5cblxuICAgIHZhciBwZW5kaW5nID0gcGF5bG9hZDtcbiAgICBwZW5kaW5nLl9zdGF0dXMgPSBQZW5kaW5nO1xuICAgIHBlbmRpbmcuX3Jlc3VsdCA9IHRoZW5hYmxlO1xuICAgIHRoZW5hYmxlLnRoZW4oZnVuY3Rpb24gKG1vZHVsZU9iamVjdCkge1xuICAgICAgaWYgKHBheWxvYWQuX3N0YXR1cyA9PT0gUGVuZGluZykge1xuICAgICAgICB2YXIgZGVmYXVsdEV4cG9ydCA9IG1vZHVsZU9iamVjdC5kZWZhdWx0O1xuXG4gICAgICAgIHtcbiAgICAgICAgICBpZiAoZGVmYXVsdEV4cG9ydCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBlcnJvcignbGF6eTogRXhwZWN0ZWQgdGhlIHJlc3VsdCBvZiBhIGR5bmFtaWMgaW1wb3J0KCkgY2FsbC4gJyArICdJbnN0ZWFkIHJlY2VpdmVkOiAlc1xcblxcbllvdXIgY29kZSBzaG91bGQgbG9vayBsaWtlOiBcXG4gICcgKyAvLyBCcmVhayB1cCBpbXBvcnRzIHRvIGF2b2lkIGFjY2lkZW50YWxseSBwYXJzaW5nIHRoZW0gYXMgZGVwZW5kZW5jaWVzLlxuICAgICAgICAgICAgJ2NvbnN0IE15Q29tcG9uZW50ID0gbGF6eSgoKSA9PiBpbXAnICsgXCJvcnQoJy4vTXlDb21wb25lbnQnKSlcIiwgbW9kdWxlT2JqZWN0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gLy8gVHJhbnNpdGlvbiB0byB0aGUgbmV4dCBzdGF0ZS5cblxuXG4gICAgICAgIHZhciByZXNvbHZlZCA9IHBheWxvYWQ7XG4gICAgICAgIHJlc29sdmVkLl9zdGF0dXMgPSBSZXNvbHZlZDtcbiAgICAgICAgcmVzb2x2ZWQuX3Jlc3VsdCA9IGRlZmF1bHRFeHBvcnQ7XG4gICAgICB9XG4gICAgfSwgZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICBpZiAocGF5bG9hZC5fc3RhdHVzID09PSBQZW5kaW5nKSB7XG4gICAgICAgIC8vIFRyYW5zaXRpb24gdG8gdGhlIG5leHQgc3RhdGUuXG4gICAgICAgIHZhciByZWplY3RlZCA9IHBheWxvYWQ7XG4gICAgICAgIHJlamVjdGVkLl9zdGF0dXMgPSBSZWplY3RlZDtcbiAgICAgICAgcmVqZWN0ZWQuX3Jlc3VsdCA9IGVycm9yO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgaWYgKHBheWxvYWQuX3N0YXR1cyA9PT0gUmVzb2x2ZWQpIHtcbiAgICByZXR1cm4gcGF5bG9hZC5fcmVzdWx0O1xuICB9IGVsc2Uge1xuICAgIHRocm93IHBheWxvYWQuX3Jlc3VsdDtcbiAgfVxufVxuXG5mdW5jdGlvbiBsYXp5KGN0b3IpIHtcbiAgdmFyIHBheWxvYWQgPSB7XG4gICAgLy8gV2UgdXNlIHRoZXNlIGZpZWxkcyB0byBzdG9yZSB0aGUgcmVzdWx0LlxuICAgIF9zdGF0dXM6IC0xLFxuICAgIF9yZXN1bHQ6IGN0b3JcbiAgfTtcbiAgdmFyIGxhenlUeXBlID0ge1xuICAgICQkdHlwZW9mOiBSRUFDVF9MQVpZX1RZUEUsXG4gICAgX3BheWxvYWQ6IHBheWxvYWQsXG4gICAgX2luaXQ6IGxhenlJbml0aWFsaXplclxuICB9O1xuXG4gIHtcbiAgICAvLyBJbiBwcm9kdWN0aW9uLCB0aGlzIHdvdWxkIGp1c3Qgc2V0IGl0IG9uIHRoZSBvYmplY3QuXG4gICAgdmFyIGRlZmF1bHRQcm9wcztcbiAgICB2YXIgcHJvcFR5cGVzOyAvLyAkRmxvd0ZpeE1lXG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhsYXp5VHlwZSwge1xuICAgICAgZGVmYXVsdFByb3BzOiB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIGRlZmF1bHRQcm9wcztcbiAgICAgICAgfSxcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAobmV3RGVmYXVsdFByb3BzKSB7XG4gICAgICAgICAgZXJyb3IoJ1JlYWN0LmxhenkoLi4uKTogSXQgaXMgbm90IHN1cHBvcnRlZCB0byBhc3NpZ24gYGRlZmF1bHRQcm9wc2AgdG8gJyArICdhIGxhenkgY29tcG9uZW50IGltcG9ydC4gRWl0aGVyIHNwZWNpZnkgdGhlbSB3aGVyZSB0aGUgY29tcG9uZW50ICcgKyAnaXMgZGVmaW5lZCwgb3IgY3JlYXRlIGEgd3JhcHBpbmcgY29tcG9uZW50IGFyb3VuZCBpdC4nKTtcblxuICAgICAgICAgIGRlZmF1bHRQcm9wcyA9IG5ld0RlZmF1bHRQcm9wczsgLy8gTWF0Y2ggcHJvZHVjdGlvbiBiZWhhdmlvciBtb3JlIGNsb3NlbHk6XG4gICAgICAgICAgLy8gJEZsb3dGaXhNZVxuXG4gICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGxhenlUeXBlLCAnZGVmYXVsdFByb3BzJywge1xuICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgcHJvcFR5cGVzOiB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIHByb3BUeXBlcztcbiAgICAgICAgfSxcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAobmV3UHJvcFR5cGVzKSB7XG4gICAgICAgICAgZXJyb3IoJ1JlYWN0LmxhenkoLi4uKTogSXQgaXMgbm90IHN1cHBvcnRlZCB0byBhc3NpZ24gYHByb3BUeXBlc2AgdG8gJyArICdhIGxhenkgY29tcG9uZW50IGltcG9ydC4gRWl0aGVyIHNwZWNpZnkgdGhlbSB3aGVyZSB0aGUgY29tcG9uZW50ICcgKyAnaXMgZGVmaW5lZCwgb3IgY3JlYXRlIGEgd3JhcHBpbmcgY29tcG9uZW50IGFyb3VuZCBpdC4nKTtcblxuICAgICAgICAgIHByb3BUeXBlcyA9IG5ld1Byb3BUeXBlczsgLy8gTWF0Y2ggcHJvZHVjdGlvbiBiZWhhdmlvciBtb3JlIGNsb3NlbHk6XG4gICAgICAgICAgLy8gJEZsb3dGaXhNZVxuXG4gICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGxhenlUeXBlLCAncHJvcFR5cGVzJywge1xuICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gbGF6eVR5cGU7XG59XG5cbmZ1bmN0aW9uIGZvcndhcmRSZWYocmVuZGVyKSB7XG4gIHtcbiAgICBpZiAocmVuZGVyICE9IG51bGwgJiYgcmVuZGVyLiQkdHlwZW9mID09PSBSRUFDVF9NRU1PX1RZUEUpIHtcbiAgICAgIGVycm9yKCdmb3J3YXJkUmVmIHJlcXVpcmVzIGEgcmVuZGVyIGZ1bmN0aW9uIGJ1dCByZWNlaXZlZCBhIGBtZW1vYCAnICsgJ2NvbXBvbmVudC4gSW5zdGVhZCBvZiBmb3J3YXJkUmVmKG1lbW8oLi4uKSksIHVzZSAnICsgJ21lbW8oZm9yd2FyZFJlZiguLi4pKS4nKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiByZW5kZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGVycm9yKCdmb3J3YXJkUmVmIHJlcXVpcmVzIGEgcmVuZGVyIGZ1bmN0aW9uIGJ1dCB3YXMgZ2l2ZW4gJXMuJywgcmVuZGVyID09PSBudWxsID8gJ251bGwnIDogdHlwZW9mIHJlbmRlcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChyZW5kZXIubGVuZ3RoICE9PSAwICYmIHJlbmRlci5sZW5ndGggIT09IDIpIHtcbiAgICAgICAgZXJyb3IoJ2ZvcndhcmRSZWYgcmVuZGVyIGZ1bmN0aW9ucyBhY2NlcHQgZXhhY3RseSB0d28gcGFyYW1ldGVyczogcHJvcHMgYW5kIHJlZi4gJXMnLCByZW5kZXIubGVuZ3RoID09PSAxID8gJ0RpZCB5b3UgZm9yZ2V0IHRvIHVzZSB0aGUgcmVmIHBhcmFtZXRlcj8nIDogJ0FueSBhZGRpdGlvbmFsIHBhcmFtZXRlciB3aWxsIGJlIHVuZGVmaW5lZC4nKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocmVuZGVyICE9IG51bGwpIHtcbiAgICAgIGlmIChyZW5kZXIuZGVmYXVsdFByb3BzICE9IG51bGwgfHwgcmVuZGVyLnByb3BUeXBlcyAhPSBudWxsKSB7XG4gICAgICAgIGVycm9yKCdmb3J3YXJkUmVmIHJlbmRlciBmdW5jdGlvbnMgZG8gbm90IHN1cHBvcnQgcHJvcFR5cGVzIG9yIGRlZmF1bHRQcm9wcy4gJyArICdEaWQgeW91IGFjY2lkZW50YWxseSBwYXNzIGEgUmVhY3QgY29tcG9uZW50PycpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHZhciBlbGVtZW50VHlwZSA9IHtcbiAgICAkJHR5cGVvZjogUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSxcbiAgICByZW5kZXI6IHJlbmRlclxuICB9O1xuXG4gIHtcbiAgICB2YXIgb3duTmFtZTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZWxlbWVudFR5cGUsICdkaXNwbGF5TmFtZScsIHtcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBvd25OYW1lO1xuICAgICAgfSxcbiAgICAgIHNldDogZnVuY3Rpb24gKG5hbWUpIHtcbiAgICAgICAgb3duTmFtZSA9IG5hbWU7XG5cbiAgICAgICAgaWYgKHJlbmRlci5kaXNwbGF5TmFtZSA9PSBudWxsKSB7XG4gICAgICAgICAgcmVuZGVyLmRpc3BsYXlOYW1lID0gbmFtZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGVsZW1lbnRUeXBlO1xufVxuXG4vLyBGaWx0ZXIgY2VydGFpbiBET00gYXR0cmlidXRlcyAoZS5nLiBzcmMsIGhyZWYpIGlmIHRoZWlyIHZhbHVlcyBhcmUgZW1wdHkgc3RyaW5ncy5cblxudmFyIGVuYWJsZVNjb3BlQVBJID0gZmFsc2U7IC8vIEV4cGVyaW1lbnRhbCBDcmVhdGUgRXZlbnQgSGFuZGxlIEFQSS5cblxuZnVuY3Rpb24gaXNWYWxpZEVsZW1lbnRUeXBlKHR5cGUpIHtcbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiB0cnVlO1xuICB9IC8vIE5vdGU6IHR5cGVvZiBtaWdodCBiZSBvdGhlciB0aGFuICdzeW1ib2wnIG9yICdudW1iZXInIChlLmcuIGlmIGl0J3MgYSBwb2x5ZmlsbCkuXG5cblxuICBpZiAodHlwZSA9PT0gZXhwb3J0cy5GcmFnbWVudCB8fCB0eXBlID09PSBleHBvcnRzLlByb2ZpbGVyIHx8IHR5cGUgPT09IFJFQUNUX0RFQlVHX1RSQUNJTkdfTU9ERV9UWVBFIHx8IHR5cGUgPT09IGV4cG9ydHMuU3RyaWN0TW9kZSB8fCB0eXBlID09PSBleHBvcnRzLlN1c3BlbnNlIHx8IHR5cGUgPT09IFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9MRUdBQ1lfSElEREVOX1RZUEUgfHwgZW5hYmxlU2NvcGVBUEkgKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdvYmplY3QnICYmIHR5cGUgIT09IG51bGwpIHtcbiAgICBpZiAodHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTEFaWV9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX01FTU9fVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9QUk9WSURFUl9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0NPTlRFWFRfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0ZVTkRBTUVOVEFMX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQkxPQ0tfVFlQRSB8fCB0eXBlWzBdID09PSBSRUFDVF9TRVJWRVJfQkxPQ0tfVFlQRSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBtZW1vKHR5cGUsIGNvbXBhcmUpIHtcbiAge1xuICAgIGlmICghaXNWYWxpZEVsZW1lbnRUeXBlKHR5cGUpKSB7XG4gICAgICBlcnJvcignbWVtbzogVGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgYSBjb21wb25lbnQuIEluc3RlYWQgJyArICdyZWNlaXZlZDogJXMnLCB0eXBlID09PSBudWxsID8gJ251bGwnIDogdHlwZW9mIHR5cGUpO1xuICAgIH1cbiAgfVxuXG4gIHZhciBlbGVtZW50VHlwZSA9IHtcbiAgICAkJHR5cGVvZjogUkVBQ1RfTUVNT19UWVBFLFxuICAgIHR5cGU6IHR5cGUsXG4gICAgY29tcGFyZTogY29tcGFyZSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGNvbXBhcmVcbiAgfTtcblxuICB7XG4gICAgdmFyIG93bk5hbWU7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGVsZW1lbnRUeXBlLCAnZGlzcGxheU5hbWUnLCB7XG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gb3duTmFtZTtcbiAgICAgIH0sXG4gICAgICBzZXQ6IGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgICAgIG93bk5hbWUgPSBuYW1lO1xuXG4gICAgICAgIGlmICh0eXBlLmRpc3BsYXlOYW1lID09IG51bGwpIHtcbiAgICAgICAgICB0eXBlLmRpc3BsYXlOYW1lID0gbmFtZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGVsZW1lbnRUeXBlO1xufVxuXG5mdW5jdGlvbiByZXNvbHZlRGlzcGF0Y2hlcigpIHtcbiAgdmFyIGRpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyLmN1cnJlbnQ7XG5cbiAgaWYgKCEoZGlzcGF0Y2hlciAhPT0gbnVsbCkpIHtcbiAgICB7XG4gICAgICB0aHJvdyBFcnJvciggXCJJbnZhbGlkIGhvb2sgY2FsbC4gSG9va3MgY2FuIG9ubHkgYmUgY2FsbGVkIGluc2lkZSBvZiB0aGUgYm9keSBvZiBhIGZ1bmN0aW9uIGNvbXBvbmVudC4gVGhpcyBjb3VsZCBoYXBwZW4gZm9yIG9uZSBvZiB0aGUgZm9sbG93aW5nIHJlYXNvbnM6XFxuMS4gWW91IG1pZ2h0IGhhdmUgbWlzbWF0Y2hpbmcgdmVyc2lvbnMgb2YgUmVhY3QgYW5kIHRoZSByZW5kZXJlciAoc3VjaCBhcyBSZWFjdCBET00pXFxuMi4gWW91IG1pZ2h0IGJlIGJyZWFraW5nIHRoZSBSdWxlcyBvZiBIb29rc1xcbjMuIFlvdSBtaWdodCBoYXZlIG1vcmUgdGhhbiBvbmUgY29weSBvZiBSZWFjdCBpbiB0aGUgc2FtZSBhcHBcXG5TZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL2ludmFsaWQtaG9vay1jYWxsIGZvciB0aXBzIGFib3V0IGhvdyB0byBkZWJ1ZyBhbmQgZml4IHRoaXMgcHJvYmxlbS5cIiApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkaXNwYXRjaGVyO1xufVxuXG5mdW5jdGlvbiB1c2VDb250ZXh0KENvbnRleHQsIHVuc3RhYmxlX29ic2VydmVkQml0cykge1xuICB2YXIgZGlzcGF0Y2hlciA9IHJlc29sdmVEaXNwYXRjaGVyKCk7XG5cbiAge1xuICAgIGlmICh1bnN0YWJsZV9vYnNlcnZlZEJpdHMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgZXJyb3IoJ3VzZUNvbnRleHQoKSBzZWNvbmQgYXJndW1lbnQgaXMgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSAnICsgJ3VzZSBpbiBSZWFjdC4gUGFzc2luZyBpdCBpcyBub3Qgc3VwcG9ydGVkLiAnICsgJ1lvdSBwYXNzZWQ6ICVzLiVzJywgdW5zdGFibGVfb2JzZXJ2ZWRCaXRzLCB0eXBlb2YgdW5zdGFibGVfb2JzZXJ2ZWRCaXRzID09PSAnbnVtYmVyJyAmJiBBcnJheS5pc0FycmF5KGFyZ3VtZW50c1syXSkgPyAnXFxuXFxuRGlkIHlvdSBjYWxsIGFycmF5Lm1hcCh1c2VDb250ZXh0KT8gJyArICdDYWxsaW5nIEhvb2tzIGluc2lkZSBhIGxvb3AgaXMgbm90IHN1cHBvcnRlZC4gJyArICdMZWFybiBtb3JlIGF0IGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9ydWxlcy1vZi1ob29rcycgOiAnJyk7XG4gICAgfSAvLyBUT0RPOiBhZGQgYSBtb3JlIGdlbmVyaWMgd2FybmluZyBmb3IgaW52YWxpZCB2YWx1ZXMuXG5cblxuICAgIGlmIChDb250ZXh0Ll9jb250ZXh0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHZhciByZWFsQ29udGV4dCA9IENvbnRleHQuX2NvbnRleHQ7IC8vIERvbid0IGRlZHVwbGljYXRlIGJlY2F1c2UgdGhpcyBsZWdpdGltYXRlbHkgY2F1c2VzIGJ1Z3NcbiAgICAgIC8vIGFuZCBub2JvZHkgc2hvdWxkIGJlIHVzaW5nIHRoaXMgaW4gZXhpc3RpbmcgY29kZS5cblxuICAgICAgaWYgKHJlYWxDb250ZXh0LkNvbnN1bWVyID09PSBDb250ZXh0KSB7XG4gICAgICAgIGVycm9yKCdDYWxsaW5nIHVzZUNvbnRleHQoQ29udGV4dC5Db25zdW1lcikgaXMgbm90IHN1cHBvcnRlZCwgbWF5IGNhdXNlIGJ1Z3MsIGFuZCB3aWxsIGJlICcgKyAncmVtb3ZlZCBpbiBhIGZ1dHVyZSBtYWpvciByZWxlYXNlLiBEaWQgeW91IG1lYW4gdG8gY2FsbCB1c2VDb250ZXh0KENvbnRleHQpIGluc3RlYWQ/Jyk7XG4gICAgICB9IGVsc2UgaWYgKHJlYWxDb250ZXh0LlByb3ZpZGVyID09PSBDb250ZXh0KSB7XG4gICAgICAgIGVycm9yKCdDYWxsaW5nIHVzZUNvbnRleHQoQ29udGV4dC5Qcm92aWRlcikgaXMgbm90IHN1cHBvcnRlZC4gJyArICdEaWQgeW91IG1lYW4gdG8gY2FsbCB1c2VDb250ZXh0KENvbnRleHQpIGluc3RlYWQ/Jyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlQ29udGV4dChDb250ZXh0LCB1bnN0YWJsZV9vYnNlcnZlZEJpdHMpO1xufVxuZnVuY3Rpb24gdXNlU3RhdGUoaW5pdGlhbFN0YXRlKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlU3RhdGUoaW5pdGlhbFN0YXRlKTtcbn1cbmZ1bmN0aW9uIHVzZVJlZHVjZXIocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCkge1xuICB2YXIgZGlzcGF0Y2hlciA9IHJlc29sdmVEaXNwYXRjaGVyKCk7XG4gIHJldHVybiBkaXNwYXRjaGVyLnVzZVJlZHVjZXIocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCk7XG59XG5mdW5jdGlvbiB1c2VSZWYoaW5pdGlhbFZhbHVlKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlUmVmKGluaXRpYWxWYWx1ZSk7XG59XG5mdW5jdGlvbiB1c2VFZmZlY3QoY3JlYXRlLCBkZXBzKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlRWZmZWN0KGNyZWF0ZSwgZGVwcyk7XG59XG5mdW5jdGlvbiB1c2VMYXlvdXRFZmZlY3QoY3JlYXRlLCBkZXBzKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlTGF5b3V0RWZmZWN0KGNyZWF0ZSwgZGVwcyk7XG59XG5mdW5jdGlvbiB1c2VDYWxsYmFjayhjYWxsYmFjaywgZGVwcykge1xuICB2YXIgZGlzcGF0Y2hlciA9IHJlc29sdmVEaXNwYXRjaGVyKCk7XG4gIHJldHVybiBkaXNwYXRjaGVyLnVzZUNhbGxiYWNrKGNhbGxiYWNrLCBkZXBzKTtcbn1cbmZ1bmN0aW9uIHVzZU1lbW8oY3JlYXRlLCBkZXBzKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlTWVtbyhjcmVhdGUsIGRlcHMpO1xufVxuZnVuY3Rpb24gdXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsIGNyZWF0ZSwgZGVwcykge1xuICB2YXIgZGlzcGF0Y2hlciA9IHJlc29sdmVEaXNwYXRjaGVyKCk7XG4gIHJldHVybiBkaXNwYXRjaGVyLnVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCBjcmVhdGUsIGRlcHMpO1xufVxuZnVuY3Rpb24gdXNlRGVidWdWYWx1ZSh2YWx1ZSwgZm9ybWF0dGVyRm4pIHtcbiAge1xuICAgIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgICByZXR1cm4gZGlzcGF0Y2hlci51c2VEZWJ1Z1ZhbHVlKHZhbHVlLCBmb3JtYXR0ZXJGbik7XG4gIH1cbn1cblxuLy8gSGVscGVycyB0byBwYXRjaCBjb25zb2xlLmxvZ3MgdG8gYXZvaWQgbG9nZ2luZyBkdXJpbmcgc2lkZS1lZmZlY3QgZnJlZVxuLy8gcmVwbGF5aW5nIG9uIHJlbmRlciBmdW5jdGlvbi4gVGhpcyBjdXJyZW50bHkgb25seSBwYXRjaGVzIHRoZSBvYmplY3Rcbi8vIGxhemlseSB3aGljaCB3b24ndCBjb3ZlciBpZiB0aGUgbG9nIGZ1bmN0aW9uIHdhcyBleHRyYWN0ZWQgZWFnZXJseS5cbi8vIFdlIGNvdWxkIGFsc28gZWFnZXJseSBwYXRjaCB0aGUgbWV0aG9kLlxudmFyIGRpc2FibGVkRGVwdGggPSAwO1xudmFyIHByZXZMb2c7XG52YXIgcHJldkluZm87XG52YXIgcHJldldhcm47XG52YXIgcHJldkVycm9yO1xudmFyIHByZXZHcm91cDtcbnZhciBwcmV2R3JvdXBDb2xsYXBzZWQ7XG52YXIgcHJldkdyb3VwRW5kO1xuXG5mdW5jdGlvbiBkaXNhYmxlZExvZygpIHt9XG5cbmRpc2FibGVkTG9nLl9fcmVhY3REaXNhYmxlZExvZyA9IHRydWU7XG5mdW5jdGlvbiBkaXNhYmxlTG9ncygpIHtcbiAge1xuICAgIGlmIChkaXNhYmxlZERlcHRoID09PSAwKSB7XG4gICAgICAvKiBlc2xpbnQtZGlzYWJsZSByZWFjdC1pbnRlcm5hbC9uby1wcm9kdWN0aW9uLWxvZ2dpbmcgKi9cbiAgICAgIHByZXZMb2cgPSBjb25zb2xlLmxvZztcbiAgICAgIHByZXZJbmZvID0gY29uc29sZS5pbmZvO1xuICAgICAgcHJldldhcm4gPSBjb25zb2xlLndhcm47XG4gICAgICBwcmV2RXJyb3IgPSBjb25zb2xlLmVycm9yO1xuICAgICAgcHJldkdyb3VwID0gY29uc29sZS5ncm91cDtcbiAgICAgIHByZXZHcm91cENvbGxhcHNlZCA9IGNvbnNvbGUuZ3JvdXBDb2xsYXBzZWQ7XG4gICAgICBwcmV2R3JvdXBFbmQgPSBjb25zb2xlLmdyb3VwRW5kOyAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzE5MDk5XG5cbiAgICAgIHZhciBwcm9wcyA9IHtcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICB2YWx1ZTogZGlzYWJsZWRMb2csXG4gICAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgICB9OyAvLyAkRmxvd0ZpeE1lIEZsb3cgdGhpbmtzIGNvbnNvbGUgaXMgaW1tdXRhYmxlLlxuXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhjb25zb2xlLCB7XG4gICAgICAgIGluZm86IHByb3BzLFxuICAgICAgICBsb2c6IHByb3BzLFxuICAgICAgICB3YXJuOiBwcm9wcyxcbiAgICAgICAgZXJyb3I6IHByb3BzLFxuICAgICAgICBncm91cDogcHJvcHMsXG4gICAgICAgIGdyb3VwQ29sbGFwc2VkOiBwcm9wcyxcbiAgICAgICAgZ3JvdXBFbmQ6IHByb3BzXG4gICAgICB9KTtcbiAgICAgIC8qIGVzbGludC1lbmFibGUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nICovXG4gICAgfVxuXG4gICAgZGlzYWJsZWREZXB0aCsrO1xuICB9XG59XG5mdW5jdGlvbiByZWVuYWJsZUxvZ3MoKSB7XG4gIHtcbiAgICBkaXNhYmxlZERlcHRoLS07XG5cbiAgICBpZiAoZGlzYWJsZWREZXB0aCA9PT0gMCkge1xuICAgICAgLyogZXNsaW50LWRpc2FibGUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nICovXG4gICAgICB2YXIgcHJvcHMgPSB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgd3JpdGFibGU6IHRydWVcbiAgICAgIH07IC8vICRGbG93Rml4TWUgRmxvdyB0aGlua3MgY29uc29sZSBpcyBpbW11dGFibGUuXG5cbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGNvbnNvbGUsIHtcbiAgICAgICAgbG9nOiBfYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2TG9nXG4gICAgICAgIH0pLFxuICAgICAgICBpbmZvOiBfYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2SW5mb1xuICAgICAgICB9KSxcbiAgICAgICAgd2FybjogX2Fzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldldhcm5cbiAgICAgICAgfSksXG4gICAgICAgIGVycm9yOiBfYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2RXJyb3JcbiAgICAgICAgfSksXG4gICAgICAgIGdyb3VwOiBfYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2R3JvdXBcbiAgICAgICAgfSksXG4gICAgICAgIGdyb3VwQ29sbGFwc2VkOiBfYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2R3JvdXBDb2xsYXBzZWRcbiAgICAgICAgfSksXG4gICAgICAgIGdyb3VwRW5kOiBfYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2R3JvdXBFbmRcbiAgICAgICAgfSlcbiAgICAgIH0pO1xuICAgICAgLyogZXNsaW50LWVuYWJsZSByZWFjdC1pbnRlcm5hbC9uby1wcm9kdWN0aW9uLWxvZ2dpbmcgKi9cbiAgICB9XG5cbiAgICBpZiAoZGlzYWJsZWREZXB0aCA8IDApIHtcbiAgICAgIGVycm9yKCdkaXNhYmxlZERlcHRoIGZlbGwgYmVsb3cgemVyby4gJyArICdUaGlzIGlzIGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nKTtcbiAgICB9XG4gIH1cbn1cblxudmFyIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMSA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0Q3VycmVudERpc3BhdGNoZXI7XG52YXIgcHJlZml4O1xuZnVuY3Rpb24gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUobmFtZSwgc291cmNlLCBvd25lckZuKSB7XG4gIHtcbiAgICBpZiAocHJlZml4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIEV4dHJhY3QgdGhlIFZNIHNwZWNpZmljIHByZWZpeCB1c2VkIGJ5IGVhY2ggbGluZS5cbiAgICAgIHRyeSB7XG4gICAgICAgIHRocm93IEVycm9yKCk7XG4gICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgIHZhciBtYXRjaCA9IHguc3RhY2sudHJpbSgpLm1hdGNoKC9cXG4oICooYXQgKT8pLyk7XG4gICAgICAgIHByZWZpeCA9IG1hdGNoICYmIG1hdGNoWzFdIHx8ICcnO1xuICAgICAgfVxuICAgIH0gLy8gV2UgdXNlIHRoZSBwcmVmaXggdG8gZW5zdXJlIG91ciBzdGFja3MgbGluZSB1cCB3aXRoIG5hdGl2ZSBzdGFjayBmcmFtZXMuXG5cblxuICAgIHJldHVybiAnXFxuJyArIHByZWZpeCArIG5hbWU7XG4gIH1cbn1cbnZhciByZWVudHJ5ID0gZmFsc2U7XG52YXIgY29tcG9uZW50RnJhbWVDYWNoZTtcblxue1xuICB2YXIgUG9zc2libHlXZWFrTWFwID0gdHlwZW9mIFdlYWtNYXAgPT09ICdmdW5jdGlvbicgPyBXZWFrTWFwIDogTWFwO1xuICBjb21wb25lbnRGcmFtZUNhY2hlID0gbmV3IFBvc3NpYmx5V2Vha01hcCgpO1xufVxuXG5mdW5jdGlvbiBkZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lKGZuLCBjb25zdHJ1Y3QpIHtcbiAgLy8gSWYgc29tZXRoaW5nIGFza2VkIGZvciBhIHN0YWNrIGluc2lkZSBhIGZha2UgcmVuZGVyLCBpdCBzaG91bGQgZ2V0IGlnbm9yZWQuXG4gIGlmICghZm4gfHwgcmVlbnRyeSkge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHtcbiAgICB2YXIgZnJhbWUgPSBjb21wb25lbnRGcmFtZUNhY2hlLmdldChmbik7XG5cbiAgICBpZiAoZnJhbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGZyYW1lO1xuICAgIH1cbiAgfVxuXG4gIHZhciBjb250cm9sO1xuICByZWVudHJ5ID0gdHJ1ZTtcbiAgdmFyIHByZXZpb3VzUHJlcGFyZVN0YWNrVHJhY2UgPSBFcnJvci5wcmVwYXJlU3RhY2tUcmFjZTsgLy8gJEZsb3dGaXhNZSBJdCBkb2VzIGFjY2VwdCB1bmRlZmluZWQuXG5cbiAgRXJyb3IucHJlcGFyZVN0YWNrVHJhY2UgPSB1bmRlZmluZWQ7XG4gIHZhciBwcmV2aW91c0Rpc3BhdGNoZXI7XG5cbiAge1xuICAgIHByZXZpb3VzRGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50OyAvLyBTZXQgdGhlIGRpc3BhdGNoZXIgaW4gREVWIGJlY2F1c2UgdGhpcyBtaWdodCBiZSBjYWxsIGluIHRoZSByZW5kZXIgZnVuY3Rpb25cbiAgICAvLyBmb3Igd2FybmluZ3MuXG5cbiAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IG51bGw7XG4gICAgZGlzYWJsZUxvZ3MoKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgLy8gVGhpcyBzaG91bGQgdGhyb3cuXG4gICAgaWYgKGNvbnN0cnVjdCkge1xuICAgICAgLy8gU29tZXRoaW5nIHNob3VsZCBiZSBzZXR0aW5nIHRoZSBwcm9wcyBpbiB0aGUgY29uc3RydWN0b3IuXG4gICAgICB2YXIgRmFrZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoKTtcbiAgICAgIH07IC8vICRGbG93Rml4TWVcblxuXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRmFrZS5wcm90b3R5cGUsICdwcm9wcycsIHtcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgLy8gV2UgdXNlIGEgdGhyb3dpbmcgc2V0dGVyIGluc3RlYWQgb2YgZnJvemVuIG9yIG5vbi13cml0YWJsZSBwcm9wc1xuICAgICAgICAgIC8vIGJlY2F1c2UgdGhhdCB3b24ndCB0aHJvdyBpbiBhIG5vbi1zdHJpY3QgbW9kZSBmdW5jdGlvbi5cbiAgICAgICAgICB0aHJvdyBFcnJvcigpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSAnb2JqZWN0JyAmJiBSZWZsZWN0LmNvbnN0cnVjdCkge1xuICAgICAgICAvLyBXZSBjb25zdHJ1Y3QgYSBkaWZmZXJlbnQgY29udHJvbCBmb3IgdGhpcyBjYXNlIHRvIGluY2x1ZGUgYW55IGV4dHJhXG4gICAgICAgIC8vIGZyYW1lcyBhZGRlZCBieSB0aGUgY29uc3RydWN0IGNhbGwuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgUmVmbGVjdC5jb25zdHJ1Y3QoRmFrZSwgW10pO1xuICAgICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgICAgY29udHJvbCA9IHg7XG4gICAgICAgIH1cblxuICAgICAgICBSZWZsZWN0LmNvbnN0cnVjdChmbiwgW10sIEZha2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBGYWtlLmNhbGwoKTtcbiAgICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICAgIGNvbnRyb2wgPSB4O1xuICAgICAgICB9XG5cbiAgICAgICAgZm4uY2FsbChGYWtlLnByb3RvdHlwZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRocm93IEVycm9yKCk7XG4gICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgIGNvbnRyb2wgPSB4O1xuICAgICAgfVxuXG4gICAgICBmbigpO1xuICAgIH1cbiAgfSBjYXRjaCAoc2FtcGxlKSB7XG4gICAgLy8gVGhpcyBpcyBpbmxpbmVkIG1hbnVhbGx5IGJlY2F1c2UgY2xvc3VyZSBkb2Vzbid0IGRvIGl0IGZvciB1cy5cbiAgICBpZiAoc2FtcGxlICYmIGNvbnRyb2wgJiYgdHlwZW9mIHNhbXBsZS5zdGFjayA9PT0gJ3N0cmluZycpIHtcbiAgICAgIC8vIFRoaXMgZXh0cmFjdHMgdGhlIGZpcnN0IGZyYW1lIGZyb20gdGhlIHNhbXBsZSB0aGF0IGlzbid0IGFsc28gaW4gdGhlIGNvbnRyb2wuXG4gICAgICAvLyBTa2lwcGluZyBvbmUgZnJhbWUgdGhhdCB3ZSBhc3N1bWUgaXMgdGhlIGZyYW1lIHRoYXQgY2FsbHMgdGhlIHR3by5cbiAgICAgIHZhciBzYW1wbGVMaW5lcyA9IHNhbXBsZS5zdGFjay5zcGxpdCgnXFxuJyk7XG4gICAgICB2YXIgY29udHJvbExpbmVzID0gY29udHJvbC5zdGFjay5zcGxpdCgnXFxuJyk7XG4gICAgICB2YXIgcyA9IHNhbXBsZUxpbmVzLmxlbmd0aCAtIDE7XG4gICAgICB2YXIgYyA9IGNvbnRyb2xMaW5lcy5sZW5ndGggLSAxO1xuXG4gICAgICB3aGlsZSAocyA+PSAxICYmIGMgPj0gMCAmJiBzYW1wbGVMaW5lc1tzXSAhPT0gY29udHJvbExpbmVzW2NdKSB7XG4gICAgICAgIC8vIFdlIGV4cGVjdCBhdCBsZWFzdCBvbmUgc3RhY2sgZnJhbWUgdG8gYmUgc2hhcmVkLlxuICAgICAgICAvLyBUeXBpY2FsbHkgdGhpcyB3aWxsIGJlIHRoZSByb290IG1vc3Qgb25lLiBIb3dldmVyLCBzdGFjayBmcmFtZXMgbWF5IGJlXG4gICAgICAgIC8vIGN1dCBvZmYgZHVlIHRvIG1heGltdW0gc3RhY2sgbGltaXRzLiBJbiB0aGlzIGNhc2UsIG9uZSBtYXliZSBjdXQgb2ZmXG4gICAgICAgIC8vIGVhcmxpZXIgdGhhbiB0aGUgb3RoZXIuIFdlIGFzc3VtZSB0aGF0IHRoZSBzYW1wbGUgaXMgbG9uZ2VyIG9yIHRoZSBzYW1lXG4gICAgICAgIC8vIGFuZCB0aGVyZSBmb3IgY3V0IG9mZiBlYXJsaWVyLiBTbyB3ZSBzaG91bGQgZmluZCB0aGUgcm9vdCBtb3N0IGZyYW1lIGluXG4gICAgICAgIC8vIHRoZSBzYW1wbGUgc29tZXdoZXJlIGluIHRoZSBjb250cm9sLlxuICAgICAgICBjLS07XG4gICAgICB9XG5cbiAgICAgIGZvciAoOyBzID49IDEgJiYgYyA+PSAwOyBzLS0sIGMtLSkge1xuICAgICAgICAvLyBOZXh0IHdlIGZpbmQgdGhlIGZpcnN0IG9uZSB0aGF0IGlzbid0IHRoZSBzYW1lIHdoaWNoIHNob3VsZCBiZSB0aGVcbiAgICAgICAgLy8gZnJhbWUgdGhhdCBjYWxsZWQgb3VyIHNhbXBsZSBmdW5jdGlvbiBhbmQgdGhlIGNvbnRyb2wuXG4gICAgICAgIGlmIChzYW1wbGVMaW5lc1tzXSAhPT0gY29udHJvbExpbmVzW2NdKSB7XG4gICAgICAgICAgLy8gSW4gVjgsIHRoZSBmaXJzdCBsaW5lIGlzIGRlc2NyaWJpbmcgdGhlIG1lc3NhZ2UgYnV0IG90aGVyIFZNcyBkb24ndC5cbiAgICAgICAgICAvLyBJZiB3ZSdyZSBhYm91dCB0byByZXR1cm4gdGhlIGZpcnN0IGxpbmUsIGFuZCB0aGUgY29udHJvbCBpcyBhbHNvIG9uIHRoZSBzYW1lXG4gICAgICAgICAgLy8gbGluZSwgdGhhdCdzIGEgcHJldHR5IGdvb2QgaW5kaWNhdG9yIHRoYXQgb3VyIHNhbXBsZSB0aHJldyBhdCBzYW1lIGxpbmUgYXNcbiAgICAgICAgICAvLyB0aGUgY29udHJvbC4gSS5lLiBiZWZvcmUgd2UgZW50ZXJlZCB0aGUgc2FtcGxlIGZyYW1lLiBTbyB3ZSBpZ25vcmUgdGhpcyByZXN1bHQuXG4gICAgICAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIGlmIHlvdSBwYXNzZWQgYSBjbGFzcyB0byBmdW5jdGlvbiBjb21wb25lbnQsIG9yIG5vbi1mdW5jdGlvbi5cbiAgICAgICAgICBpZiAocyAhPT0gMSB8fCBjICE9PSAxKSB7XG4gICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgIHMtLTtcbiAgICAgICAgICAgICAgYy0tOyAvLyBXZSBtYXkgc3RpbGwgaGF2ZSBzaW1pbGFyIGludGVybWVkaWF0ZSBmcmFtZXMgZnJvbSB0aGUgY29uc3RydWN0IGNhbGwuXG4gICAgICAgICAgICAgIC8vIFRoZSBuZXh0IG9uZSB0aGF0IGlzbid0IHRoZSBzYW1lIHNob3VsZCBiZSBvdXIgbWF0Y2ggdGhvdWdoLlxuXG4gICAgICAgICAgICAgIGlmIChjIDwgMCB8fCBzYW1wbGVMaW5lc1tzXSAhPT0gY29udHJvbExpbmVzW2NdKSB7XG4gICAgICAgICAgICAgICAgLy8gVjggYWRkcyBhIFwibmV3XCIgcHJlZml4IGZvciBuYXRpdmUgY2xhc3Nlcy4gTGV0J3MgcmVtb3ZlIGl0IHRvIG1ha2UgaXQgcHJldHRpZXIuXG4gICAgICAgICAgICAgICAgdmFyIF9mcmFtZSA9ICdcXG4nICsgc2FtcGxlTGluZXNbc10ucmVwbGFjZSgnIGF0IG5ldyAnLCAnIGF0ICcpO1xuXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBmbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRGcmFtZUNhY2hlLnNldChmbiwgX2ZyYW1lKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IC8vIFJldHVybiB0aGUgbGluZSB3ZSBmb3VuZC5cblxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIF9mcmFtZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSB3aGlsZSAocyA+PSAxICYmIGMgPj0gMCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0gZmluYWxseSB7XG4gICAgcmVlbnRyeSA9IGZhbHNlO1xuXG4gICAge1xuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBwcmV2aW91c0Rpc3BhdGNoZXI7XG4gICAgICByZWVuYWJsZUxvZ3MoKTtcbiAgICB9XG5cbiAgICBFcnJvci5wcmVwYXJlU3RhY2tUcmFjZSA9IHByZXZpb3VzUHJlcGFyZVN0YWNrVHJhY2U7XG4gIH0gLy8gRmFsbGJhY2sgdG8ganVzdCB1c2luZyB0aGUgbmFtZSBpZiB3ZSBjb3VsZG4ndCBtYWtlIGl0IHRocm93LlxuXG5cbiAgdmFyIG5hbWUgPSBmbiA/IGZuLmRpc3BsYXlOYW1lIHx8IGZuLm5hbWUgOiAnJztcbiAgdmFyIHN5bnRoZXRpY0ZyYW1lID0gbmFtZSA/IGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKG5hbWUpIDogJyc7XG5cbiAge1xuICAgIGlmICh0eXBlb2YgZm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNvbXBvbmVudEZyYW1lQ2FjaGUuc2V0KGZuLCBzeW50aGV0aWNGcmFtZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN5bnRoZXRpY0ZyYW1lO1xufVxuZnVuY3Rpb24gZGVzY3JpYmVGdW5jdGlvbkNvbXBvbmVudEZyYW1lKGZuLCBzb3VyY2UsIG93bmVyRm4pIHtcbiAge1xuICAgIHJldHVybiBkZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lKGZuLCBmYWxzZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gc2hvdWxkQ29uc3RydWN0KENvbXBvbmVudCkge1xuICB2YXIgcHJvdG90eXBlID0gQ29tcG9uZW50LnByb3RvdHlwZTtcbiAgcmV0dXJuICEhKHByb3RvdHlwZSAmJiBwcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudCk7XG59XG5cbmZ1bmN0aW9uIGRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFVih0eXBlLCBzb3VyY2UsIG93bmVyRm4pIHtcblxuICBpZiAodHlwZSA9PSBudWxsKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAge1xuICAgICAgcmV0dXJuIGRlc2NyaWJlTmF0aXZlQ29tcG9uZW50RnJhbWUodHlwZSwgc2hvdWxkQ29uc3RydWN0KHR5cGUpKTtcbiAgICB9XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKHR5cGUpO1xuICB9XG5cbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSBleHBvcnRzLlN1c3BlbnNlOlxuICAgICAgcmV0dXJuIGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKCdTdXNwZW5zZScpO1xuXG4gICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEU6XG4gICAgICByZXR1cm4gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUoJ1N1c3BlbnNlTGlzdCcpO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnb2JqZWN0Jykge1xuICAgIHN3aXRjaCAodHlwZS4kJHR5cGVvZikge1xuICAgICAgY2FzZSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFOlxuICAgICAgICByZXR1cm4gZGVzY3JpYmVGdW5jdGlvbkNvbXBvbmVudEZyYW1lKHR5cGUucmVuZGVyKTtcblxuICAgICAgY2FzZSBSRUFDVF9NRU1PX1RZUEU6XG4gICAgICAgIC8vIE1lbW8gbWF5IGNvbnRhaW4gYW55IGNvbXBvbmVudCB0eXBlIHNvIHdlIHJlY3Vyc2l2ZWx5IHJlc29sdmUgaXQuXG4gICAgICAgIHJldHVybiBkZXNjcmliZVVua25vd25FbGVtZW50VHlwZUZyYW1lSW5ERVYodHlwZS50eXBlLCBzb3VyY2UsIG93bmVyRm4pO1xuXG4gICAgICBjYXNlIFJFQUNUX0JMT0NLX1RZUEU6XG4gICAgICAgIHJldHVybiBkZXNjcmliZUZ1bmN0aW9uQ29tcG9uZW50RnJhbWUodHlwZS5fcmVuZGVyKTtcblxuICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgbGF6eUNvbXBvbmVudCA9IHR5cGU7XG4gICAgICAgICAgdmFyIHBheWxvYWQgPSBsYXp5Q29tcG9uZW50Ll9wYXlsb2FkO1xuICAgICAgICAgIHZhciBpbml0ID0gbGF6eUNvbXBvbmVudC5faW5pdDtcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBMYXp5IG1heSBjb250YWluIGFueSBjb21wb25lbnQgdHlwZSBzbyB3ZSByZWN1cnNpdmVseSByZXNvbHZlIGl0LlxuICAgICAgICAgICAgcmV0dXJuIGRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFVihpbml0KHBheWxvYWQpLCBzb3VyY2UsIG93bmVyRm4pO1xuICAgICAgICAgIH0gY2F0Y2ggKHgpIHt9XG4gICAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gJyc7XG59XG5cbnZhciBsb2dnZWRUeXBlRmFpbHVyZXMgPSB7fTtcbnZhciBSZWFjdERlYnVnQ3VycmVudEZyYW1lJDEgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdERlYnVnQ3VycmVudEZyYW1lO1xuXG5mdW5jdGlvbiBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChlbGVtZW50KSB7XG4gIHtcbiAgICBpZiAoZWxlbWVudCkge1xuICAgICAgdmFyIG93bmVyID0gZWxlbWVudC5fb3duZXI7XG4gICAgICB2YXIgc3RhY2sgPSBkZXNjcmliZVVua25vd25FbGVtZW50VHlwZUZyYW1lSW5ERVYoZWxlbWVudC50eXBlLCBlbGVtZW50Ll9zb3VyY2UsIG93bmVyID8gb3duZXIudHlwZSA6IG51bGwpO1xuICAgICAgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSQxLnNldEV4dHJhU3RhY2tGcmFtZShzdGFjayk7XG4gICAgfSBlbHNlIHtcbiAgICAgIFJlYWN0RGVidWdDdXJyZW50RnJhbWUkMS5zZXRFeHRyYVN0YWNrRnJhbWUobnVsbCk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGNoZWNrUHJvcFR5cGVzKHR5cGVTcGVjcywgdmFsdWVzLCBsb2NhdGlvbiwgY29tcG9uZW50TmFtZSwgZWxlbWVudCkge1xuICB7XG4gICAgLy8gJEZsb3dGaXhNZSBUaGlzIGlzIG9rYXkgYnV0IEZsb3cgZG9lc24ndCBrbm93IGl0LlxuICAgIHZhciBoYXMgPSBGdW5jdGlvbi5jYWxsLmJpbmQoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSk7XG5cbiAgICBmb3IgKHZhciB0eXBlU3BlY05hbWUgaW4gdHlwZVNwZWNzKSB7XG4gICAgICBpZiAoaGFzKHR5cGVTcGVjcywgdHlwZVNwZWNOYW1lKSkge1xuICAgICAgICB2YXIgZXJyb3IkMSA9IHZvaWQgMDsgLy8gUHJvcCB0eXBlIHZhbGlkYXRpb24gbWF5IHRocm93LiBJbiBjYXNlIHRoZXkgZG8sIHdlIGRvbid0IHdhbnQgdG9cbiAgICAgICAgLy8gZmFpbCB0aGUgcmVuZGVyIHBoYXNlIHdoZXJlIGl0IGRpZG4ndCBmYWlsIGJlZm9yZS4gU28gd2UgbG9nIGl0LlxuICAgICAgICAvLyBBZnRlciB0aGVzZSBoYXZlIGJlZW4gY2xlYW5lZCB1cCwgd2UnbGwgbGV0IHRoZW0gdGhyb3cuXG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAvLyBUaGlzIGlzIGludGVudGlvbmFsbHkgYW4gaW52YXJpYW50IHRoYXQgZ2V0cyBjYXVnaHQuIEl0J3MgdGhlIHNhbWVcbiAgICAgICAgICAvLyBiZWhhdmlvciBhcyB3aXRob3V0IHRoaXMgc3RhdGVtZW50IGV4Y2VwdCB3aXRoIGEgYmV0dGVyIG1lc3NhZ2UuXG4gICAgICAgICAgaWYgKHR5cGVvZiB0eXBlU3BlY3NbdHlwZVNwZWNOYW1lXSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdmFyIGVyciA9IEVycm9yKChjb21wb25lbnROYW1lIHx8ICdSZWFjdCBjbGFzcycpICsgJzogJyArIGxvY2F0aW9uICsgJyB0eXBlIGAnICsgdHlwZVNwZWNOYW1lICsgJ2AgaXMgaW52YWxpZDsgJyArICdpdCBtdXN0IGJlIGEgZnVuY3Rpb24sIHVzdWFsbHkgZnJvbSB0aGUgYHByb3AtdHlwZXNgIHBhY2thZ2UsIGJ1dCByZWNlaXZlZCBgJyArIHR5cGVvZiB0eXBlU3BlY3NbdHlwZVNwZWNOYW1lXSArICdgLicgKyAnVGhpcyBvZnRlbiBoYXBwZW5zIGJlY2F1c2Ugb2YgdHlwb3Mgc3VjaCBhcyBgUHJvcFR5cGVzLmZ1bmN0aW9uYCBpbnN0ZWFkIG9mIGBQcm9wVHlwZXMuZnVuY2AuJyk7XG4gICAgICAgICAgICBlcnIubmFtZSA9ICdJbnZhcmlhbnQgVmlvbGF0aW9uJztcbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBlcnJvciQxID0gdHlwZVNwZWNzW3R5cGVTcGVjTmFtZV0odmFsdWVzLCB0eXBlU3BlY05hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBudWxsLCAnU0VDUkVUX0RPX05PVF9QQVNTX1RISVNfT1JfWU9VX1dJTExfQkVfRklSRUQnKTtcbiAgICAgICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgICAgICBlcnJvciQxID0gZXg7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXJyb3IkMSAmJiAhKGVycm9yJDEgaW5zdGFuY2VvZiBFcnJvcikpIHtcbiAgICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChlbGVtZW50KTtcblxuICAgICAgICAgIGVycm9yKCclczogdHlwZSBzcGVjaWZpY2F0aW9uIG9mICVzJyArICcgYCVzYCBpcyBpbnZhbGlkOyB0aGUgdHlwZSBjaGVja2VyICcgKyAnZnVuY3Rpb24gbXVzdCByZXR1cm4gYG51bGxgIG9yIGFuIGBFcnJvcmAgYnV0IHJldHVybmVkIGEgJXMuICcgKyAnWW91IG1heSBoYXZlIGZvcmdvdHRlbiB0byBwYXNzIGFuIGFyZ3VtZW50IHRvIHRoZSB0eXBlIGNoZWNrZXIgJyArICdjcmVhdG9yIChhcnJheU9mLCBpbnN0YW5jZU9mLCBvYmplY3RPZiwgb25lT2YsIG9uZU9mVHlwZSwgYW5kICcgKyAnc2hhcGUgYWxsIHJlcXVpcmUgYW4gYXJndW1lbnQpLicsIGNvbXBvbmVudE5hbWUgfHwgJ1JlYWN0IGNsYXNzJywgbG9jYXRpb24sIHR5cGVTcGVjTmFtZSwgdHlwZW9mIGVycm9yJDEpO1xuXG4gICAgICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQobnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXJyb3IkMSBpbnN0YW5jZW9mIEVycm9yICYmICEoZXJyb3IkMS5tZXNzYWdlIGluIGxvZ2dlZFR5cGVGYWlsdXJlcykpIHtcbiAgICAgICAgICAvLyBPbmx5IG1vbml0b3IgdGhpcyBmYWlsdXJlIG9uY2UgYmVjYXVzZSB0aGVyZSB0ZW5kcyB0byBiZSBhIGxvdCBvZiB0aGVcbiAgICAgICAgICAvLyBzYW1lIGVycm9yLlxuICAgICAgICAgIGxvZ2dlZFR5cGVGYWlsdXJlc1tlcnJvciQxLm1lc3NhZ2VdID0gdHJ1ZTtcbiAgICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChlbGVtZW50KTtcblxuICAgICAgICAgIGVycm9yKCdGYWlsZWQgJXMgdHlwZTogJXMnLCBsb2NhdGlvbiwgZXJyb3IkMS5tZXNzYWdlKTtcblxuICAgICAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50KG51bGwpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50JDEoZWxlbWVudCkge1xuICB7XG4gICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgIHZhciBvd25lciA9IGVsZW1lbnQuX293bmVyO1xuICAgICAgdmFyIHN0YWNrID0gZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWKGVsZW1lbnQudHlwZSwgZWxlbWVudC5fc291cmNlLCBvd25lciA/IG93bmVyLnR5cGUgOiBudWxsKTtcbiAgICAgIHNldEV4dHJhU3RhY2tGcmFtZShzdGFjayk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldEV4dHJhU3RhY2tGcmFtZShudWxsKTtcbiAgICB9XG4gIH1cbn1cblxudmFyIHByb3BUeXBlc01pc3NwZWxsV2FybmluZ1Nob3duO1xuXG57XG4gIHByb3BUeXBlc01pc3NwZWxsV2FybmluZ1Nob3duID0gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIGdldERlY2xhcmF0aW9uRXJyb3JBZGRlbmR1bSgpIHtcbiAgaWYgKFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQpIHtcbiAgICB2YXIgbmFtZSA9IGdldENvbXBvbmVudE5hbWUoUmVhY3RDdXJyZW50T3duZXIuY3VycmVudC50eXBlKTtcblxuICAgIGlmIChuYW1lKSB7XG4gICAgICByZXR1cm4gJ1xcblxcbkNoZWNrIHRoZSByZW5kZXIgbWV0aG9kIG9mIGAnICsgbmFtZSArICdgLic7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuICcnO1xufVxuXG5mdW5jdGlvbiBnZXRTb3VyY2VJbmZvRXJyb3JBZGRlbmR1bShzb3VyY2UpIHtcbiAgaWYgKHNvdXJjZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdmFyIGZpbGVOYW1lID0gc291cmNlLmZpbGVOYW1lLnJlcGxhY2UoL14uKltcXFxcXFwvXS8sICcnKTtcbiAgICB2YXIgbGluZU51bWJlciA9IHNvdXJjZS5saW5lTnVtYmVyO1xuICAgIHJldHVybiAnXFxuXFxuQ2hlY2sgeW91ciBjb2RlIGF0ICcgKyBmaWxlTmFtZSArICc6JyArIGxpbmVOdW1iZXIgKyAnLic7XG4gIH1cblxuICByZXR1cm4gJyc7XG59XG5cbmZ1bmN0aW9uIGdldFNvdXJjZUluZm9FcnJvckFkZGVuZHVtRm9yUHJvcHMoZWxlbWVudFByb3BzKSB7XG4gIGlmIChlbGVtZW50UHJvcHMgIT09IG51bGwgJiYgZWxlbWVudFByb3BzICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gZ2V0U291cmNlSW5mb0Vycm9yQWRkZW5kdW0oZWxlbWVudFByb3BzLl9fc291cmNlKTtcbiAgfVxuXG4gIHJldHVybiAnJztcbn1cbi8qKlxuICogV2FybiBpZiB0aGVyZSdzIG5vIGtleSBleHBsaWNpdGx5IHNldCBvbiBkeW5hbWljIGFycmF5cyBvZiBjaGlsZHJlbiBvclxuICogb2JqZWN0IGtleXMgYXJlIG5vdCB2YWxpZC4gVGhpcyBhbGxvd3MgdXMgdG8ga2VlcCB0cmFjayBvZiBjaGlsZHJlbiBiZXR3ZWVuXG4gKiB1cGRhdGVzLlxuICovXG5cblxudmFyIG93bmVySGFzS2V5VXNlV2FybmluZyA9IHt9O1xuXG5mdW5jdGlvbiBnZXRDdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvKHBhcmVudFR5cGUpIHtcbiAgdmFyIGluZm8gPSBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0oKTtcblxuICBpZiAoIWluZm8pIHtcbiAgICB2YXIgcGFyZW50TmFtZSA9IHR5cGVvZiBwYXJlbnRUeXBlID09PSAnc3RyaW5nJyA/IHBhcmVudFR5cGUgOiBwYXJlbnRUeXBlLmRpc3BsYXlOYW1lIHx8IHBhcmVudFR5cGUubmFtZTtcblxuICAgIGlmIChwYXJlbnROYW1lKSB7XG4gICAgICBpbmZvID0gXCJcXG5cXG5DaGVjayB0aGUgdG9wLWxldmVsIHJlbmRlciBjYWxsIHVzaW5nIDxcIiArIHBhcmVudE5hbWUgKyBcIj4uXCI7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGluZm87XG59XG4vKipcbiAqIFdhcm4gaWYgdGhlIGVsZW1lbnQgZG9lc24ndCBoYXZlIGFuIGV4cGxpY2l0IGtleSBhc3NpZ25lZCB0byBpdC5cbiAqIFRoaXMgZWxlbWVudCBpcyBpbiBhbiBhcnJheS4gVGhlIGFycmF5IGNvdWxkIGdyb3cgYW5kIHNocmluayBvciBiZVxuICogcmVvcmRlcmVkLiBBbGwgY2hpbGRyZW4gdGhhdCBoYXZlbid0IGFscmVhZHkgYmVlbiB2YWxpZGF0ZWQgYXJlIHJlcXVpcmVkIHRvXG4gKiBoYXZlIGEgXCJrZXlcIiBwcm9wZXJ0eSBhc3NpZ25lZCB0byBpdC4gRXJyb3Igc3RhdHVzZXMgYXJlIGNhY2hlZCBzbyBhIHdhcm5pbmdcbiAqIHdpbGwgb25seSBiZSBzaG93biBvbmNlLlxuICpcbiAqIEBpbnRlcm5hbFxuICogQHBhcmFtIHtSZWFjdEVsZW1lbnR9IGVsZW1lbnQgRWxlbWVudCB0aGF0IHJlcXVpcmVzIGEga2V5LlxuICogQHBhcmFtIHsqfSBwYXJlbnRUeXBlIGVsZW1lbnQncyBwYXJlbnQncyB0eXBlLlxuICovXG5cblxuZnVuY3Rpb24gdmFsaWRhdGVFeHBsaWNpdEtleShlbGVtZW50LCBwYXJlbnRUeXBlKSB7XG4gIGlmICghZWxlbWVudC5fc3RvcmUgfHwgZWxlbWVudC5fc3RvcmUudmFsaWRhdGVkIHx8IGVsZW1lbnQua2V5ICE9IG51bGwpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBlbGVtZW50Ll9zdG9yZS52YWxpZGF0ZWQgPSB0cnVlO1xuICB2YXIgY3VycmVudENvbXBvbmVudEVycm9ySW5mbyA9IGdldEN1cnJlbnRDb21wb25lbnRFcnJvckluZm8ocGFyZW50VHlwZSk7XG5cbiAgaWYgKG93bmVySGFzS2V5VXNlV2FybmluZ1tjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvXSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIG93bmVySGFzS2V5VXNlV2FybmluZ1tjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvXSA9IHRydWU7IC8vIFVzdWFsbHkgdGhlIGN1cnJlbnQgb3duZXIgaXMgdGhlIG9mZmVuZGVyLCBidXQgaWYgaXQgYWNjZXB0cyBjaGlsZHJlbiBhcyBhXG4gIC8vIHByb3BlcnR5LCBpdCBtYXkgYmUgdGhlIGNyZWF0b3Igb2YgdGhlIGNoaWxkIHRoYXQncyByZXNwb25zaWJsZSBmb3JcbiAgLy8gYXNzaWduaW5nIGl0IGEga2V5LlxuXG4gIHZhciBjaGlsZE93bmVyID0gJyc7XG5cbiAgaWYgKGVsZW1lbnQgJiYgZWxlbWVudC5fb3duZXIgJiYgZWxlbWVudC5fb3duZXIgIT09IFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQpIHtcbiAgICAvLyBHaXZlIHRoZSBjb21wb25lbnQgdGhhdCBvcmlnaW5hbGx5IGNyZWF0ZWQgdGhpcyBjaGlsZC5cbiAgICBjaGlsZE93bmVyID0gXCIgSXQgd2FzIHBhc3NlZCBhIGNoaWxkIGZyb20gXCIgKyBnZXRDb21wb25lbnROYW1lKGVsZW1lbnQuX293bmVyLnR5cGUpICsgXCIuXCI7XG4gIH1cblxuICB7XG4gICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQkMShlbGVtZW50KTtcblxuICAgIGVycm9yKCdFYWNoIGNoaWxkIGluIGEgbGlzdCBzaG91bGQgaGF2ZSBhIHVuaXF1ZSBcImtleVwiIHByb3AuJyArICclcyVzIFNlZSBodHRwczovL3JlYWN0anMub3JnL2xpbmsvd2FybmluZy1rZXlzIGZvciBtb3JlIGluZm9ybWF0aW9uLicsIGN1cnJlbnRDb21wb25lbnRFcnJvckluZm8sIGNoaWxkT3duZXIpO1xuXG4gICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQkMShudWxsKTtcbiAgfVxufVxuLyoqXG4gKiBFbnN1cmUgdGhhdCBldmVyeSBlbGVtZW50IGVpdGhlciBpcyBwYXNzZWQgaW4gYSBzdGF0aWMgbG9jYXRpb24sIGluIGFuXG4gKiBhcnJheSB3aXRoIGFuIGV4cGxpY2l0IGtleXMgcHJvcGVydHkgZGVmaW5lZCwgb3IgaW4gYW4gb2JqZWN0IGxpdGVyYWxcbiAqIHdpdGggdmFsaWQga2V5IHByb3BlcnR5LlxuICpcbiAqIEBpbnRlcm5hbFxuICogQHBhcmFtIHtSZWFjdE5vZGV9IG5vZGUgU3RhdGljYWxseSBwYXNzZWQgY2hpbGQgb2YgYW55IHR5cGUuXG4gKiBAcGFyYW0geyp9IHBhcmVudFR5cGUgbm9kZSdzIHBhcmVudCdzIHR5cGUuXG4gKi9cblxuXG5mdW5jdGlvbiB2YWxpZGF0ZUNoaWxkS2V5cyhub2RlLCBwYXJlbnRUeXBlKSB7XG4gIGlmICh0eXBlb2Ygbm9kZSAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoQXJyYXkuaXNBcnJheShub2RlKSkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZS5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGNoaWxkID0gbm9kZVtpXTtcblxuICAgICAgaWYgKGlzVmFsaWRFbGVtZW50KGNoaWxkKSkge1xuICAgICAgICB2YWxpZGF0ZUV4cGxpY2l0S2V5KGNoaWxkLCBwYXJlbnRUeXBlKTtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSBpZiAoaXNWYWxpZEVsZW1lbnQobm9kZSkpIHtcbiAgICAvLyBUaGlzIGVsZW1lbnQgd2FzIHBhc3NlZCBpbiBhIHZhbGlkIGxvY2F0aW9uLlxuICAgIGlmIChub2RlLl9zdG9yZSkge1xuICAgICAgbm9kZS5fc3RvcmUudmFsaWRhdGVkID0gdHJ1ZTtcbiAgICB9XG4gIH0gZWxzZSBpZiAobm9kZSkge1xuICAgIHZhciBpdGVyYXRvckZuID0gZ2V0SXRlcmF0b3JGbihub2RlKTtcblxuICAgIGlmICh0eXBlb2YgaXRlcmF0b3JGbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgLy8gRW50cnkgaXRlcmF0b3JzIHVzZWQgdG8gcHJvdmlkZSBpbXBsaWNpdCBrZXlzLFxuICAgICAgLy8gYnV0IG5vdyB3ZSBwcmludCBhIHNlcGFyYXRlIHdhcm5pbmcgZm9yIHRoZW0gbGF0ZXIuXG4gICAgICBpZiAoaXRlcmF0b3JGbiAhPT0gbm9kZS5lbnRyaWVzKSB7XG4gICAgICAgIHZhciBpdGVyYXRvciA9IGl0ZXJhdG9yRm4uY2FsbChub2RlKTtcbiAgICAgICAgdmFyIHN0ZXA7XG5cbiAgICAgICAgd2hpbGUgKCEoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSkuZG9uZSkge1xuICAgICAgICAgIGlmIChpc1ZhbGlkRWxlbWVudChzdGVwLnZhbHVlKSkge1xuICAgICAgICAgICAgdmFsaWRhdGVFeHBsaWNpdEtleShzdGVwLnZhbHVlLCBwYXJlbnRUeXBlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbi8qKlxuICogR2l2ZW4gYW4gZWxlbWVudCwgdmFsaWRhdGUgdGhhdCBpdHMgcHJvcHMgZm9sbG93IHRoZSBwcm9wVHlwZXMgZGVmaW5pdGlvbixcbiAqIHByb3ZpZGVkIGJ5IHRoZSB0eXBlLlxuICpcbiAqIEBwYXJhbSB7UmVhY3RFbGVtZW50fSBlbGVtZW50XG4gKi9cblxuXG5mdW5jdGlvbiB2YWxpZGF0ZVByb3BUeXBlcyhlbGVtZW50KSB7XG4gIHtcbiAgICB2YXIgdHlwZSA9IGVsZW1lbnQudHlwZTtcblxuICAgIGlmICh0eXBlID09PSBudWxsIHx8IHR5cGUgPT09IHVuZGVmaW5lZCB8fCB0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2YXIgcHJvcFR5cGVzO1xuXG4gICAgaWYgKHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBwcm9wVHlwZXMgPSB0eXBlLnByb3BUeXBlcztcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB0eXBlID09PSAnb2JqZWN0JyAmJiAodHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSB8fCAvLyBOb3RlOiBNZW1vIG9ubHkgY2hlY2tzIG91dGVyIHByb3BzIGhlcmUuXG4gICAgLy8gSW5uZXIgcHJvcHMgYXJlIGNoZWNrZWQgaW4gdGhlIHJlY29uY2lsZXIuXG4gICAgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTUVNT19UWVBFKSkge1xuICAgICAgcHJvcFR5cGVzID0gdHlwZS5wcm9wVHlwZXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAocHJvcFR5cGVzKSB7XG4gICAgICAvLyBJbnRlbnRpb25hbGx5IGluc2lkZSB0byBhdm9pZCB0cmlnZ2VyaW5nIGxhenkgaW5pdGlhbGl6ZXJzOlxuICAgICAgdmFyIG5hbWUgPSBnZXRDb21wb25lbnROYW1lKHR5cGUpO1xuICAgICAgY2hlY2tQcm9wVHlwZXMocHJvcFR5cGVzLCBlbGVtZW50LnByb3BzLCAncHJvcCcsIG5hbWUsIGVsZW1lbnQpO1xuICAgIH0gZWxzZSBpZiAodHlwZS5Qcm9wVHlwZXMgIT09IHVuZGVmaW5lZCAmJiAhcHJvcFR5cGVzTWlzc3BlbGxXYXJuaW5nU2hvd24pIHtcbiAgICAgIHByb3BUeXBlc01pc3NwZWxsV2FybmluZ1Nob3duID0gdHJ1ZTsgLy8gSW50ZW50aW9uYWxseSBpbnNpZGUgdG8gYXZvaWQgdHJpZ2dlcmluZyBsYXp5IGluaXRpYWxpemVyczpcblxuICAgICAgdmFyIF9uYW1lID0gZ2V0Q29tcG9uZW50TmFtZSh0eXBlKTtcblxuICAgICAgZXJyb3IoJ0NvbXBvbmVudCAlcyBkZWNsYXJlZCBgUHJvcFR5cGVzYCBpbnN0ZWFkIG9mIGBwcm9wVHlwZXNgLiBEaWQgeW91IG1pc3NwZWxsIHRoZSBwcm9wZXJ0eSBhc3NpZ25tZW50PycsIF9uYW1lIHx8ICdVbmtub3duJyk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB0eXBlLmdldERlZmF1bHRQcm9wcyA9PT0gJ2Z1bmN0aW9uJyAmJiAhdHlwZS5nZXREZWZhdWx0UHJvcHMuaXNSZWFjdENsYXNzQXBwcm92ZWQpIHtcbiAgICAgIGVycm9yKCdnZXREZWZhdWx0UHJvcHMgaXMgb25seSB1c2VkIG9uIGNsYXNzaWMgUmVhY3QuY3JlYXRlQ2xhc3MgJyArICdkZWZpbml0aW9ucy4gVXNlIGEgc3RhdGljIHByb3BlcnR5IG5hbWVkIGBkZWZhdWx0UHJvcHNgIGluc3RlYWQuJyk7XG4gICAgfVxuICB9XG59XG4vKipcbiAqIEdpdmVuIGEgZnJhZ21lbnQsIHZhbGlkYXRlIHRoYXQgaXQgY2FuIG9ubHkgYmUgcHJvdmlkZWQgd2l0aCBmcmFnbWVudCBwcm9wc1xuICogQHBhcmFtIHtSZWFjdEVsZW1lbnR9IGZyYWdtZW50XG4gKi9cblxuXG5mdW5jdGlvbiB2YWxpZGF0ZUZyYWdtZW50UHJvcHMoZnJhZ21lbnQpIHtcbiAge1xuICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoZnJhZ21lbnQucHJvcHMpO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIga2V5ID0ga2V5c1tpXTtcblxuICAgICAgaWYgKGtleSAhPT0gJ2NoaWxkcmVuJyAmJiBrZXkgIT09ICdrZXknKSB7XG4gICAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50JDEoZnJhZ21lbnQpO1xuXG4gICAgICAgIGVycm9yKCdJbnZhbGlkIHByb3AgYCVzYCBzdXBwbGllZCB0byBgUmVhY3QuRnJhZ21lbnRgLiAnICsgJ1JlYWN0LkZyYWdtZW50IGNhbiBvbmx5IGhhdmUgYGtleWAgYW5kIGBjaGlsZHJlbmAgcHJvcHMuJywga2V5KTtcblxuICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudCQxKG51bGwpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZnJhZ21lbnQucmVmICE9PSBudWxsKSB7XG4gICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudCQxKGZyYWdtZW50KTtcblxuICAgICAgZXJyb3IoJ0ludmFsaWQgYXR0cmlidXRlIGByZWZgIHN1cHBsaWVkIHRvIGBSZWFjdC5GcmFnbWVudGAuJyk7XG5cbiAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50JDEobnVsbCk7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBjcmVhdGVFbGVtZW50V2l0aFZhbGlkYXRpb24odHlwZSwgcHJvcHMsIGNoaWxkcmVuKSB7XG4gIHZhciB2YWxpZFR5cGUgPSBpc1ZhbGlkRWxlbWVudFR5cGUodHlwZSk7IC8vIFdlIHdhcm4gaW4gdGhpcyBjYXNlIGJ1dCBkb24ndCB0aHJvdy4gV2UgZXhwZWN0IHRoZSBlbGVtZW50IGNyZWF0aW9uIHRvXG4gIC8vIHN1Y2NlZWQgYW5kIHRoZXJlIHdpbGwgbGlrZWx5IGJlIGVycm9ycyBpbiByZW5kZXIuXG5cbiAgaWYgKCF2YWxpZFR5cGUpIHtcbiAgICB2YXIgaW5mbyA9ICcnO1xuXG4gICAgaWYgKHR5cGUgPT09IHVuZGVmaW5lZCB8fCB0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcgJiYgdHlwZSAhPT0gbnVsbCAmJiBPYmplY3Qua2V5cyh0eXBlKS5sZW5ndGggPT09IDApIHtcbiAgICAgIGluZm8gKz0gJyBZb3UgbGlrZWx5IGZvcmdvdCB0byBleHBvcnQgeW91ciBjb21wb25lbnQgZnJvbSB0aGUgZmlsZSAnICsgXCJpdCdzIGRlZmluZWQgaW4sIG9yIHlvdSBtaWdodCBoYXZlIG1peGVkIHVwIGRlZmF1bHQgYW5kIG5hbWVkIGltcG9ydHMuXCI7XG4gICAgfVxuXG4gICAgdmFyIHNvdXJjZUluZm8gPSBnZXRTb3VyY2VJbmZvRXJyb3JBZGRlbmR1bUZvclByb3BzKHByb3BzKTtcblxuICAgIGlmIChzb3VyY2VJbmZvKSB7XG4gICAgICBpbmZvICs9IHNvdXJjZUluZm87XG4gICAgfSBlbHNlIHtcbiAgICAgIGluZm8gKz0gZ2V0RGVjbGFyYXRpb25FcnJvckFkZGVuZHVtKCk7XG4gICAgfVxuXG4gICAgdmFyIHR5cGVTdHJpbmc7XG5cbiAgICBpZiAodHlwZSA9PT0gbnVsbCkge1xuICAgICAgdHlwZVN0cmluZyA9ICdudWxsJztcbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodHlwZSkpIHtcbiAgICAgIHR5cGVTdHJpbmcgPSAnYXJyYXknO1xuICAgIH0gZWxzZSBpZiAodHlwZSAhPT0gdW5kZWZpbmVkICYmIHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0VMRU1FTlRfVFlQRSkge1xuICAgICAgdHlwZVN0cmluZyA9IFwiPFwiICsgKGdldENvbXBvbmVudE5hbWUodHlwZS50eXBlKSB8fCAnVW5rbm93bicpICsgXCIgLz5cIjtcbiAgICAgIGluZm8gPSAnIERpZCB5b3UgYWNjaWRlbnRhbGx5IGV4cG9ydCBhIEpTWCBsaXRlcmFsIGluc3RlYWQgb2YgYSBjb21wb25lbnQ/JztcbiAgICB9IGVsc2Uge1xuICAgICAgdHlwZVN0cmluZyA9IHR5cGVvZiB0eXBlO1xuICAgIH1cblxuICAgIHtcbiAgICAgIGVycm9yKCdSZWFjdC5jcmVhdGVFbGVtZW50OiB0eXBlIGlzIGludmFsaWQgLS0gZXhwZWN0ZWQgYSBzdHJpbmcgKGZvciAnICsgJ2J1aWx0LWluIGNvbXBvbmVudHMpIG9yIGEgY2xhc3MvZnVuY3Rpb24gKGZvciBjb21wb3NpdGUgJyArICdjb21wb25lbnRzKSBidXQgZ290OiAlcy4lcycsIHR5cGVTdHJpbmcsIGluZm8pO1xuICAgIH1cbiAgfVxuXG4gIHZhciBlbGVtZW50ID0gY3JlYXRlRWxlbWVudC5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyAvLyBUaGUgcmVzdWx0IGNhbiBiZSBudWxsaXNoIGlmIGEgbW9jayBvciBhIGN1c3RvbSBmdW5jdGlvbiBpcyB1c2VkLlxuICAvLyBUT0RPOiBEcm9wIHRoaXMgd2hlbiB0aGVzZSBhcmUgbm8gbG9uZ2VyIGFsbG93ZWQgYXMgdGhlIHR5cGUgYXJndW1lbnQuXG5cbiAgaWYgKGVsZW1lbnQgPT0gbnVsbCkge1xuICAgIHJldHVybiBlbGVtZW50O1xuICB9IC8vIFNraXAga2V5IHdhcm5pbmcgaWYgdGhlIHR5cGUgaXNuJ3QgdmFsaWQgc2luY2Ugb3VyIGtleSB2YWxpZGF0aW9uIGxvZ2ljXG4gIC8vIGRvZXNuJ3QgZXhwZWN0IGEgbm9uLXN0cmluZy9mdW5jdGlvbiB0eXBlIGFuZCBjYW4gdGhyb3cgY29uZnVzaW5nIGVycm9ycy5cbiAgLy8gV2UgZG9uJ3Qgd2FudCBleGNlcHRpb24gYmVoYXZpb3IgdG8gZGlmZmVyIGJldHdlZW4gZGV2IGFuZCBwcm9kLlxuICAvLyAoUmVuZGVyaW5nIHdpbGwgdGhyb3cgd2l0aCBhIGhlbHBmdWwgbWVzc2FnZSBhbmQgYXMgc29vbiBhcyB0aGUgdHlwZSBpc1xuICAvLyBmaXhlZCwgdGhlIGtleSB3YXJuaW5ncyB3aWxsIGFwcGVhci4pXG5cblxuICBpZiAodmFsaWRUeXBlKSB7XG4gICAgZm9yICh2YXIgaSA9IDI7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhbGlkYXRlQ2hpbGRLZXlzKGFyZ3VtZW50c1tpXSwgdHlwZSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGUgPT09IGV4cG9ydHMuRnJhZ21lbnQpIHtcbiAgICB2YWxpZGF0ZUZyYWdtZW50UHJvcHMoZWxlbWVudCk7XG4gIH0gZWxzZSB7XG4gICAgdmFsaWRhdGVQcm9wVHlwZXMoZWxlbWVudCk7XG4gIH1cblxuICByZXR1cm4gZWxlbWVudDtcbn1cbnZhciBkaWRXYXJuQWJvdXREZXByZWNhdGVkQ3JlYXRlRmFjdG9yeSA9IGZhbHNlO1xuZnVuY3Rpb24gY3JlYXRlRmFjdG9yeVdpdGhWYWxpZGF0aW9uKHR5cGUpIHtcbiAgdmFyIHZhbGlkYXRlZEZhY3RvcnkgPSBjcmVhdGVFbGVtZW50V2l0aFZhbGlkYXRpb24uYmluZChudWxsLCB0eXBlKTtcbiAgdmFsaWRhdGVkRmFjdG9yeS50eXBlID0gdHlwZTtcblxuICB7XG4gICAgaWYgKCFkaWRXYXJuQWJvdXREZXByZWNhdGVkQ3JlYXRlRmFjdG9yeSkge1xuICAgICAgZGlkV2FybkFib3V0RGVwcmVjYXRlZENyZWF0ZUZhY3RvcnkgPSB0cnVlO1xuXG4gICAgICB3YXJuKCdSZWFjdC5jcmVhdGVGYWN0b3J5KCkgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluICcgKyAnYSBmdXR1cmUgbWFqb3IgcmVsZWFzZS4gQ29uc2lkZXIgdXNpbmcgSlNYICcgKyAnb3IgdXNlIFJlYWN0LmNyZWF0ZUVsZW1lbnQoKSBkaXJlY3RseSBpbnN0ZWFkLicpO1xuICAgIH0gLy8gTGVnYWN5IGhvb2s6IHJlbW92ZSBpdFxuXG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodmFsaWRhdGVkRmFjdG9yeSwgJ3R5cGUnLCB7XG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICB3YXJuKCdGYWN0b3J5LnR5cGUgaXMgZGVwcmVjYXRlZC4gQWNjZXNzIHRoZSBjbGFzcyBkaXJlY3RseSAnICsgJ2JlZm9yZSBwYXNzaW5nIGl0IHRvIGNyZWF0ZUZhY3RvcnkuJyk7XG5cbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICd0eXBlJywge1xuICAgICAgICAgIHZhbHVlOiB0eXBlXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdHlwZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiB2YWxpZGF0ZWRGYWN0b3J5O1xufVxuZnVuY3Rpb24gY2xvbmVFbGVtZW50V2l0aFZhbGlkYXRpb24oZWxlbWVudCwgcHJvcHMsIGNoaWxkcmVuKSB7XG4gIHZhciBuZXdFbGVtZW50ID0gY2xvbmVFbGVtZW50LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG5cbiAgZm9yICh2YXIgaSA9IDI7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICB2YWxpZGF0ZUNoaWxkS2V5cyhhcmd1bWVudHNbaV0sIG5ld0VsZW1lbnQudHlwZSk7XG4gIH1cblxuICB2YWxpZGF0ZVByb3BUeXBlcyhuZXdFbGVtZW50KTtcbiAgcmV0dXJuIG5ld0VsZW1lbnQ7XG59XG5cbntcblxuICB0cnkge1xuICAgIHZhciBmcm96ZW5PYmplY3QgPSBPYmplY3QuZnJlZXplKHt9KTtcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBuby1uZXcgKi9cblxuICAgIG5ldyBNYXAoW1tmcm96ZW5PYmplY3QsIG51bGxdXSk7XG4gICAgbmV3IFNldChbZnJvemVuT2JqZWN0XSk7XG4gICAgLyogZXNsaW50LWVuYWJsZSBuby1uZXcgKi9cbiAgfSBjYXRjaCAoZSkge1xuICB9XG59XG5cbnZhciBjcmVhdGVFbGVtZW50JDEgPSAgY3JlYXRlRWxlbWVudFdpdGhWYWxpZGF0aW9uIDtcbnZhciBjbG9uZUVsZW1lbnQkMSA9ICBjbG9uZUVsZW1lbnRXaXRoVmFsaWRhdGlvbiA7XG52YXIgY3JlYXRlRmFjdG9yeSA9ICBjcmVhdGVGYWN0b3J5V2l0aFZhbGlkYXRpb24gO1xudmFyIENoaWxkcmVuID0ge1xuICBtYXA6IG1hcENoaWxkcmVuLFxuICBmb3JFYWNoOiBmb3JFYWNoQ2hpbGRyZW4sXG4gIGNvdW50OiBjb3VudENoaWxkcmVuLFxuICB0b0FycmF5OiB0b0FycmF5LFxuICBvbmx5OiBvbmx5Q2hpbGRcbn07XG5cbmV4cG9ydHMuQ2hpbGRyZW4gPSBDaGlsZHJlbjtcbmV4cG9ydHMuQ29tcG9uZW50ID0gQ29tcG9uZW50O1xuZXhwb3J0cy5QdXJlQ29tcG9uZW50ID0gUHVyZUNvbXBvbmVudDtcbmV4cG9ydHMuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQgPSBSZWFjdFNoYXJlZEludGVybmFscztcbmV4cG9ydHMuY2xvbmVFbGVtZW50ID0gY2xvbmVFbGVtZW50JDE7XG5leHBvcnRzLmNyZWF0ZUNvbnRleHQgPSBjcmVhdGVDb250ZXh0O1xuZXhwb3J0cy5jcmVhdGVFbGVtZW50ID0gY3JlYXRlRWxlbWVudCQxO1xuZXhwb3J0cy5jcmVhdGVGYWN0b3J5ID0gY3JlYXRlRmFjdG9yeTtcbmV4cG9ydHMuY3JlYXRlUmVmID0gY3JlYXRlUmVmO1xuZXhwb3J0cy5mb3J3YXJkUmVmID0gZm9yd2FyZFJlZjtcbmV4cG9ydHMuaXNWYWxpZEVsZW1lbnQgPSBpc1ZhbGlkRWxlbWVudDtcbmV4cG9ydHMubGF6eSA9IGxhenk7XG5leHBvcnRzLm1lbW8gPSBtZW1vO1xuZXhwb3J0cy51c2VDYWxsYmFjayA9IHVzZUNhbGxiYWNrO1xuZXhwb3J0cy51c2VDb250ZXh0ID0gdXNlQ29udGV4dDtcbmV4cG9ydHMudXNlRGVidWdWYWx1ZSA9IHVzZURlYnVnVmFsdWU7XG5leHBvcnRzLnVzZUVmZmVjdCA9IHVzZUVmZmVjdDtcbmV4cG9ydHMudXNlSW1wZXJhdGl2ZUhhbmRsZSA9IHVzZUltcGVyYXRpdmVIYW5kbGU7XG5leHBvcnRzLnVzZUxheW91dEVmZmVjdCA9IHVzZUxheW91dEVmZmVjdDtcbmV4cG9ydHMudXNlTWVtbyA9IHVzZU1lbW87XG5leHBvcnRzLnVzZVJlZHVjZXIgPSB1c2VSZWR1Y2VyO1xuZXhwb3J0cy51c2VSZWYgPSB1c2VSZWY7XG5leHBvcnRzLnVzZVN0YXRlID0gdXNlU3RhdGU7XG5leHBvcnRzLnZlcnNpb24gPSBSZWFjdFZlcnNpb247XG4gIH0pKCk7XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react/cjs/react.development.js\n"); + +/***/ }), + +/***/ "./node_modules/react/index.js": +/*!*************************************!*\ + !*** ./node_modules/react/index.js ***! + \*************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react.development.js */ \"./node_modules/react/cjs/react.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsSUFBSSxLQUFxQyxFQUFFLEVBRTFDLENBQUM7QUFDRixFQUFFLHVIQUFzRDtBQUN4RCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmVhY3QvaW5kZXguanM/MWZiMiJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QuZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react/index.js\n"); + +/***/ }), + +/***/ "./node_modules/regenerator-runtime/runtime.js": +/*!*****************************************************!*\ + !*** ./node_modules/regenerator-runtime/runtime.js ***! + \*****************************************************/ +/***/ (function(module) { + +eval("/**\n * Copyright (c) 2014-present, Facebook, Inc.\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\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n true ? module.exports : 0\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVnZW5lcmF0b3ItcnVudGltZS9ydW50aW1lLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZixNQUFNO0FBQ04sZUFBZTtBQUNmO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMERBQTBEO0FBQzFEO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBLFdBQVc7QUFDWDs7QUFFQTtBQUNBO0FBQ0Esd0NBQXdDLFdBQVc7QUFDbkQ7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDRCQUE0QjtBQUM1QjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUEsVUFBVTtBQUNWO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxxQ0FBcUMsY0FBYztBQUNuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7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QUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmVnZW5lcmF0b3ItcnVudGltZS9ydW50aW1lLmpzP2M1NmUiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTQtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG52YXIgcnVudGltZSA9IChmdW5jdGlvbiAoZXhwb3J0cykge1xuICBcInVzZSBzdHJpY3RcIjtcblxuICB2YXIgT3AgPSBPYmplY3QucHJvdG90eXBlO1xuICB2YXIgaGFzT3duID0gT3AuaGFzT3duUHJvcGVydHk7XG4gIHZhciB1bmRlZmluZWQ7IC8vIE1vcmUgY29tcHJlc3NpYmxlIHRoYW4gdm9pZCAwLlxuICB2YXIgJFN5bWJvbCA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiA/IFN5bWJvbCA6IHt9O1xuICB2YXIgaXRlcmF0b3JTeW1ib2wgPSAkU3ltYm9sLml0ZXJhdG9yIHx8IFwiQEBpdGVyYXRvclwiO1xuICB2YXIgYXN5bmNJdGVyYXRvclN5bWJvbCA9ICRTeW1ib2wuYXN5bmNJdGVyYXRvciB8fCBcIkBAYXN5bmNJdGVyYXRvclwiO1xuICB2YXIgdG9TdHJpbmdUYWdTeW1ib2wgPSAkU3ltYm9sLnRvU3RyaW5nVGFnIHx8IFwiQEB0b1N0cmluZ1RhZ1wiO1xuXG4gIGZ1bmN0aW9uIHdyYXAoaW5uZXJGbiwgb3V0ZXJGbiwgc2VsZiwgdHJ5TG9jc0xpc3QpIHtcbiAgICAvLyBJZiBvdXRlckZuIHByb3ZpZGVkIGFuZCBvdXRlckZuLnByb3RvdHlwZSBpcyBhIEdlbmVyYXRvciwgdGhlbiBvdXRlckZuLnByb3RvdHlwZSBpbnN0YW5jZW9mIEdlbmVyYXRvci5cbiAgICB2YXIgcHJvdG9HZW5lcmF0b3IgPSBvdXRlckZuICYmIG91dGVyRm4ucHJvdG90eXBlIGluc3RhbmNlb2YgR2VuZXJhdG9yID8gb3V0ZXJGbiA6IEdlbmVyYXRvcjtcbiAgICB2YXIgZ2VuZXJhdG9yID0gT2JqZWN0LmNyZWF0ZShwcm90b0dlbmVyYXRvci5wcm90b3R5cGUpO1xuICAgIHZhciBjb250ZXh0ID0gbmV3IENvbnRleHQodHJ5TG9jc0xpc3QgfHwgW10pO1xuXG4gICAgLy8gVGhlIC5faW52b2tlIG1ldGhvZCB1bmlmaWVzIHRoZSBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlIC5uZXh0LFxuICAgIC8vIC50aHJvdywgYW5kIC5yZXR1cm4gbWV0aG9kcy5cbiAgICBnZW5lcmF0b3IuX2ludm9rZSA9IG1ha2VJbnZva2VNZXRob2QoaW5uZXJGbiwgc2VsZiwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gZ2VuZXJhdG9yO1xuICB9XG4gIGV4cG9ydHMud3JhcCA9IHdyYXA7XG5cbiAgLy8gVHJ5L2NhdGNoIGhlbHBlciB0byBtaW5pbWl6ZSBkZW9wdGltaXphdGlvbnMuIFJldHVybnMgYSBjb21wbGV0aW9uXG4gIC8vIHJlY29yZCBsaWtlIGNvbnRleHQudHJ5RW50cmllc1tpXS5jb21wbGV0aW9uLiBUaGlzIGludGVyZmFjZSBjb3VsZFxuICAvLyBoYXZlIGJlZW4gKGFuZCB3YXMgcHJldmlvdXNseSkgZGVzaWduZWQgdG8gdGFrZSBhIGNsb3N1cmUgdG8gYmVcbiAgLy8gaW52b2tlZCB3aXRob3V0IGFyZ3VtZW50cywgYnV0IGluIGFsbCB0aGUgY2FzZXMgd2UgY2FyZSBhYm91dCB3ZVxuICAvLyBhbHJlYWR5IGhhdmUgYW4gZXhpc3RpbmcgbWV0aG9kIHdlIHdhbnQgdG8gY2FsbCwgc28gdGhlcmUncyBubyBuZWVkXG4gIC8vIHRvIGNyZWF0ZSBhIG5ldyBmdW5jdGlvbiBvYmplY3QuIFdlIGNhbiBldmVuIGdldCBhd2F5IHdpdGggYXNzdW1pbmdcbiAgLy8gdGhlIG1ldGhvZCB0YWtlcyBleGFjdGx5IG9uZSBhcmd1bWVudCwgc2luY2UgdGhhdCBoYXBwZW5zIHRvIGJlIHRydWVcbiAgLy8gaW4gZXZlcnkgY2FzZSwgc28gd2UgZG9uJ3QgaGF2ZSB0byB0b3VjaCB0aGUgYXJndW1lbnRzIG9iamVjdC4gVGhlXG4gIC8vIG9ubHkgYWRkaXRpb25hbCBhbGxvY2F0aW9uIHJlcXVpcmVkIGlzIHRoZSBjb21wbGV0aW9uIHJlY29yZCwgd2hpY2hcbiAgLy8gaGFzIGEgc3RhYmxlIHNoYXBlIGFuZCBzbyBob3BlZnVsbHkgc2hvdWxkIGJlIGNoZWFwIHRvIGFsbG9jYXRlLlxuICBmdW5jdGlvbiB0cnlDYXRjaChmbiwgb2JqLCBhcmcpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHsgdHlwZTogXCJub3JtYWxcIiwgYXJnOiBmbi5jYWxsKG9iaiwgYXJnKSB9O1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgcmV0dXJuIHsgdHlwZTogXCJ0aHJvd1wiLCBhcmc6IGVyciB9O1xuICAgIH1cbiAgfVxuXG4gIHZhciBHZW5TdGF0ZVN1c3BlbmRlZFN0YXJ0ID0gXCJzdXNwZW5kZWRTdGFydFwiO1xuICB2YXIgR2VuU3RhdGVTdXNwZW5kZWRZaWVsZCA9IFwic3VzcGVuZGVkWWllbGRcIjtcbiAgdmFyIEdlblN0YXRlRXhlY3V0aW5nID0gXCJleGVjdXRpbmdcIjtcbiAgdmFyIEdlblN0YXRlQ29tcGxldGVkID0gXCJjb21wbGV0ZWRcIjtcblxuICAvLyBSZXR1cm5pbmcgdGhpcyBvYmplY3QgZnJvbSB0aGUgaW5uZXJGbiBoYXMgdGhlIHNhbWUgZWZmZWN0IGFzXG4gIC8vIGJyZWFraW5nIG91dCBvZiB0aGUgZGlzcGF0Y2ggc3dpdGNoIHN0YXRlbWVudC5cbiAgdmFyIENvbnRpbnVlU2VudGluZWwgPSB7fTtcblxuICAvLyBEdW1teSBjb25zdHJ1Y3RvciBmdW5jdGlvbnMgdGhhdCB3ZSB1c2UgYXMgdGhlIC5jb25zdHJ1Y3RvciBhbmRcbiAgLy8gLmNvbnN0cnVjdG9yLnByb3RvdHlwZSBwcm9wZXJ0aWVzIGZvciBmdW5jdGlvbnMgdGhhdCByZXR1cm4gR2VuZXJhdG9yXG4gIC8vIG9iamVjdHMuIEZvciBmdWxsIHNwZWMgY29tcGxpYW5jZSwgeW91IG1heSB3aXNoIHRvIGNvbmZpZ3VyZSB5b3VyXG4gIC8vIG1pbmlmaWVyIG5vdCB0byBtYW5nbGUgdGhlIG5hbWVzIG9mIHRoZXNlIHR3byBmdW5jdGlvbnMuXG4gIGZ1bmN0aW9uIEdlbmVyYXRvcigpIHt9XG4gIGZ1bmN0aW9uIEdlbmVyYXRvckZ1bmN0aW9uKCkge31cbiAgZnVuY3Rpb24gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUoKSB7fVxuXG4gIC8vIFRoaXMgaXMgYSBwb2x5ZmlsbCBmb3IgJUl0ZXJhdG9yUHJvdG90eXBlJSBmb3IgZW52aXJvbm1lbnRzIHRoYXRcbiAgLy8gZG9uJ3QgbmF0aXZlbHkgc3VwcG9ydCBpdC5cbiAgdmFyIEl0ZXJhdG9yUHJvdG90eXBlID0ge307XG4gIEl0ZXJhdG9yUHJvdG90eXBlW2l0ZXJhdG9yU3ltYm9sXSA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICB2YXIgZ2V0UHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Y7XG4gIHZhciBOYXRpdmVJdGVyYXRvclByb3RvdHlwZSA9IGdldFByb3RvICYmIGdldFByb3RvKGdldFByb3RvKHZhbHVlcyhbXSkpKTtcbiAgaWYgKE5hdGl2ZUl0ZXJhdG9yUHJvdG90eXBlICYmXG4gICAgICBOYXRpdmVJdGVyYXRvclByb3RvdHlwZSAhPT0gT3AgJiZcbiAgICAgIGhhc093bi5jYWxsKE5hdGl2ZUl0ZXJhdG9yUHJvdG90eXBlLCBpdGVyYXRvclN5bWJvbCkpIHtcbiAgICAvLyBUaGlzIGVudmlyb25tZW50IGhhcyBhIG5hdGl2ZSAlSXRlcmF0b3JQcm90b3R5cGUlOyB1c2UgaXQgaW5zdGVhZFxuICAgIC8vIG9mIHRoZSBwb2x5ZmlsbC5cbiAgICBJdGVyYXRvclByb3RvdHlwZSA9IE5hdGl2ZUl0ZXJhdG9yUHJvdG90eXBlO1xuICB9XG5cbiAgdmFyIEdwID0gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUucHJvdG90eXBlID1cbiAgICBHZW5lcmF0b3IucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShJdGVyYXRvclByb3RvdHlwZSk7XG4gIEdlbmVyYXRvckZ1bmN0aW9uLnByb3RvdHlwZSA9IEdwLmNvbnN0cnVjdG9yID0gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGU7XG4gIEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLmNvbnN0cnVjdG9yID0gR2VuZXJhdG9yRnVuY3Rpb247XG4gIEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlW3RvU3RyaW5nVGFnU3ltYm9sXSA9XG4gICAgR2VuZXJhdG9yRnVuY3Rpb24uZGlzcGxheU5hbWUgPSBcIkdlbmVyYXRvckZ1bmN0aW9uXCI7XG5cbiAgLy8gSGVscGVyIGZvciBkZWZpbmluZyB0aGUgLm5leHQsIC50aHJvdywgYW5kIC5yZXR1cm4gbWV0aG9kcyBvZiB0aGVcbiAgLy8gSXRlcmF0b3IgaW50ZXJmYWNlIGluIHRlcm1zIG9mIGEgc2luZ2xlIC5faW52b2tlIG1ldGhvZC5cbiAgZnVuY3Rpb24gZGVmaW5lSXRlcmF0b3JNZXRob2RzKHByb3RvdHlwZSkge1xuICAgIFtcIm5leHRcIiwgXCJ0aHJvd1wiLCBcInJldHVyblwiXS5mb3JFYWNoKGZ1bmN0aW9uKG1ldGhvZCkge1xuICAgICAgcHJvdG90eXBlW21ldGhvZF0gPSBmdW5jdGlvbihhcmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ludm9rZShtZXRob2QsIGFyZyk7XG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgZXhwb3J0cy5pc0dlbmVyYXRvckZ1bmN0aW9uID0gZnVuY3Rpb24oZ2VuRnVuKSB7XG4gICAgdmFyIGN0b3IgPSB0eXBlb2YgZ2VuRnVuID09PSBcImZ1bmN0aW9uXCIgJiYgZ2VuRnVuLmNvbnN0cnVjdG9yO1xuICAgIHJldHVybiBjdG9yXG4gICAgICA/IGN0b3IgPT09IEdlbmVyYXRvckZ1bmN0aW9uIHx8XG4gICAgICAgIC8vIEZvciB0aGUgbmF0aXZlIEdlbmVyYXRvckZ1bmN0aW9uIGNvbnN0cnVjdG9yLCB0aGUgYmVzdCB3ZSBjYW5cbiAgICAgICAgLy8gZG8gaXMgdG8gY2hlY2sgaXRzIC5uYW1lIHByb3BlcnR5LlxuICAgICAgICAoY3Rvci5kaXNwbGF5TmFtZSB8fCBjdG9yLm5hbWUpID09PSBcIkdlbmVyYXRvckZ1bmN0aW9uXCJcbiAgICAgIDogZmFsc2U7XG4gIH07XG5cbiAgZXhwb3J0cy5tYXJrID0gZnVuY3Rpb24oZ2VuRnVuKSB7XG4gICAgaWYgKE9iamVjdC5zZXRQcm90b3R5cGVPZikge1xuICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKGdlbkZ1biwgR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBnZW5GdW4uX19wcm90b19fID0gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGU7XG4gICAgICBpZiAoISh0b1N0cmluZ1RhZ1N5bWJvbCBpbiBnZW5GdW4pKSB7XG4gICAgICAgIGdlbkZ1blt0b1N0cmluZ1RhZ1N5bWJvbF0gPSBcIkdlbmVyYXRvckZ1bmN0aW9uXCI7XG4gICAgICB9XG4gICAgfVxuICAgIGdlbkZ1bi5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKEdwKTtcbiAgICByZXR1cm4gZ2VuRnVuO1xuICB9O1xuXG4gIC8vIFdpdGhpbiB0aGUgYm9keSBvZiBhbnkgYXN5bmMgZnVuY3Rpb24sIGBhd2FpdCB4YCBpcyB0cmFuc2Zvcm1lZCB0b1xuICAvLyBgeWllbGQgcmVnZW5lcmF0b3JSdW50aW1lLmF3cmFwKHgpYCwgc28gdGhhdCB0aGUgcnVudGltZSBjYW4gdGVzdFxuICAvLyBgaGFzT3duLmNhbGwodmFsdWUsIFwiX19hd2FpdFwiKWAgdG8gZGV0ZXJtaW5lIGlmIHRoZSB5aWVsZGVkIHZhbHVlIGlzXG4gIC8vIG1lYW50IHRvIGJlIGF3YWl0ZWQuXG4gIGV4cG9ydHMuYXdyYXAgPSBmdW5jdGlvbihhcmcpIHtcbiAgICByZXR1cm4geyBfX2F3YWl0OiBhcmcgfTtcbiAgfTtcblxuICBmdW5jdGlvbiBBc3luY0l0ZXJhdG9yKGdlbmVyYXRvciwgUHJvbWlzZUltcGwpIHtcbiAgICBmdW5jdGlvbiBpbnZva2UobWV0aG9kLCBhcmcsIHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgdmFyIHJlY29yZCA9IHRyeUNhdGNoKGdlbmVyYXRvclttZXRob2RdLCBnZW5lcmF0b3IsIGFyZyk7XG4gICAgICBpZiAocmVjb3JkLnR5cGUgPT09IFwidGhyb3dcIikge1xuICAgICAgICByZWplY3QocmVjb3JkLmFyZyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgcmVzdWx0ID0gcmVjb3JkLmFyZztcbiAgICAgICAgdmFyIHZhbHVlID0gcmVzdWx0LnZhbHVlO1xuICAgICAgICBpZiAodmFsdWUgJiZcbiAgICAgICAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJlxuICAgICAgICAgICAgaGFzT3duLmNhbGwodmFsdWUsIFwiX19hd2FpdFwiKSkge1xuICAgICAgICAgIHJldHVybiBQcm9taXNlSW1wbC5yZXNvbHZlKHZhbHVlLl9fYXdhaXQpLnRoZW4oZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgICAgICAgIGludm9rZShcIm5leHRcIiwgdmFsdWUsIHJlc29sdmUsIHJlamVjdCk7XG4gICAgICAgICAgfSwgZnVuY3Rpb24oZXJyKSB7XG4gICAgICAgICAgICBpbnZva2UoXCJ0aHJvd1wiLCBlcnIsIHJlc29sdmUsIHJlamVjdCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gUHJvbWlzZUltcGwucmVzb2x2ZSh2YWx1ZSkudGhlbihmdW5jdGlvbih1bndyYXBwZWQpIHtcbiAgICAgICAgICAvLyBXaGVuIGEgeWllbGRlZCBQcm9taXNlIGlzIHJlc29sdmVkLCBpdHMgZmluYWwgdmFsdWUgYmVjb21lc1xuICAgICAgICAgIC8vIHRoZSAudmFsdWUgb2YgdGhlIFByb21pc2U8e3ZhbHVlLGRvbmV9PiByZXN1bHQgZm9yIHRoZVxuICAgICAgICAgIC8vIGN1cnJlbnQgaXRlcmF0aW9uLlxuICAgICAgICAgIHJlc3VsdC52YWx1ZSA9IHVud3JhcHBlZDtcbiAgICAgICAgICByZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgIH0sIGZ1bmN0aW9uKGVycm9yKSB7XG4gICAgICAgICAgLy8gSWYgYSByZWplY3RlZCBQcm9taXNlIHdhcyB5aWVsZGVkLCB0aHJvdyB0aGUgcmVqZWN0aW9uIGJhY2tcbiAgICAgICAgICAvLyBpbnRvIHRoZSBhc3luYyBnZW5lcmF0b3IgZnVuY3Rpb24gc28gaXQgY2FuIGJlIGhhbmRsZWQgdGhlcmUuXG4gICAgICAgICAgcmV0dXJuIGludm9rZShcInRocm93XCIsIGVycm9yLCByZXNvbHZlLCByZWplY3QpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgcHJldmlvdXNQcm9taXNlO1xuXG4gICAgZnVuY3Rpb24gZW5xdWV1ZShtZXRob2QsIGFyZykge1xuICAgICAgZnVuY3Rpb24gY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmcoKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZUltcGwoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgaW52b2tlKG1ldGhvZCwgYXJnLCByZXNvbHZlLCByZWplY3QpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHByZXZpb3VzUHJvbWlzZSA9XG4gICAgICAgIC8vIElmIGVucXVldWUgaGFzIGJlZW4gY2FsbGVkIGJlZm9yZSwgdGhlbiB3ZSB3YW50IHRvIHdhaXQgdW50aWxcbiAgICAgICAgLy8gYWxsIHByZXZpb3VzIFByb21pc2VzIGhhdmUgYmVlbiByZXNvbHZlZCBiZWZvcmUgY2FsbGluZyBpbnZva2UsXG4gICAgICAgIC8vIHNvIHRoYXQgcmVzdWx0cyBhcmUgYWx3YXlzIGRlbGl2ZXJlZCBpbiB0aGUgY29ycmVjdCBvcmRlci4gSWZcbiAgICAgICAgLy8gZW5xdWV1ZSBoYXMgbm90IGJlZW4gY2FsbGVkIGJlZm9yZSwgdGhlbiBpdCBpcyBpbXBvcnRhbnQgdG9cbiAgICAgICAgLy8gY2FsbCBpbnZva2UgaW1tZWRpYXRlbHksIHdpdGhvdXQgd2FpdGluZyBvbiBhIGNhbGxiYWNrIHRvIGZpcmUsXG4gICAgICAgIC8vIHNvIHRoYXQgdGhlIGFzeW5jIGdlbmVyYXRvciBmdW5jdGlvbiBoYXMgdGhlIG9wcG9ydHVuaXR5IHRvIGRvXG4gICAgICAgIC8vIGFueSBuZWNlc3Nhcnkgc2V0dXAgaW4gYSBwcmVkaWN0YWJsZSB3YXkuIFRoaXMgcHJlZGljdGFiaWxpdHlcbiAgICAgICAgLy8gaXMgd2h5IHRoZSBQcm9taXNlIGNvbnN0cnVjdG9yIHN5bmNocm9ub3VzbHkgaW52b2tlcyBpdHNcbiAgICAgICAgLy8gZXhlY3V0b3IgY2FsbGJhY2ssIGFuZCB3aHkgYXN5bmMgZnVuY3Rpb25zIHN5bmNocm9ub3VzbHlcbiAgICAgICAgLy8gZXhlY3V0ZSBjb2RlIGJlZm9yZSB0aGUgZmlyc3QgYXdhaXQuIFNpbmNlIHdlIGltcGxlbWVudCBzaW1wbGVcbiAgICAgICAgLy8gYXN5bmMgZnVuY3Rpb25zIGluIHRlcm1zIG9mIGFzeW5jIGdlbmVyYXRvcnMsIGl0IGlzIGVzcGVjaWFsbHlcbiAgICAgICAgLy8gaW1wb3J0YW50IHRvIGdldCB0aGlzIHJpZ2h0LCBldmVuIHRob3VnaCBpdCByZXF1aXJlcyBjYXJlLlxuICAgICAgICBwcmV2aW91c1Byb21pc2UgPyBwcmV2aW91c1Byb21pc2UudGhlbihcbiAgICAgICAgICBjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZyxcbiAgICAgICAgICAvLyBBdm9pZCBwcm9wYWdhdGluZyBmYWlsdXJlcyB0byBQcm9taXNlcyByZXR1cm5lZCBieSBsYXRlclxuICAgICAgICAgIC8vIGludm9jYXRpb25zIG9mIHRoZSBpdGVyYXRvci5cbiAgICAgICAgICBjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZ1xuICAgICAgICApIDogY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmcoKTtcbiAgICB9XG5cbiAgICAvLyBEZWZpbmUgdGhlIHVuaWZpZWQgaGVscGVyIG1ldGhvZCB0aGF0IGlzIHVzZWQgdG8gaW1wbGVtZW50IC5uZXh0LFxuICAgIC8vIC50aHJvdywgYW5kIC5yZXR1cm4gKHNlZSBkZWZpbmVJdGVyYXRvck1ldGhvZHMpLlxuICAgIHRoaXMuX2ludm9rZSA9IGVucXVldWU7XG4gIH1cblxuICBkZWZpbmVJdGVyYXRvck1ldGhvZHMoQXN5bmNJdGVyYXRvci5wcm90b3R5cGUpO1xuICBBc3luY0l0ZXJhdG9yLnByb3RvdHlwZVthc3luY0l0ZXJhdG9yU3ltYm9sXSA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcbiAgZXhwb3J0cy5Bc3luY0l0ZXJhdG9yID0gQXN5bmNJdGVyYXRvcjtcblxuICAvLyBOb3RlIHRoYXQgc2ltcGxlIGFzeW5jIGZ1bmN0aW9ucyBhcmUgaW1wbGVtZW50ZWQgb24gdG9wIG9mXG4gIC8vIEFzeW5jSXRlcmF0b3Igb2JqZWN0czsgdGhleSBqdXN0IHJldHVybiBhIFByb21pc2UgZm9yIHRoZSB2YWx1ZSBvZlxuICAvLyB0aGUgZmluYWwgcmVzdWx0IHByb2R1Y2VkIGJ5IHRoZSBpdGVyYXRvci5cbiAgZXhwb3J0cy5hc3luYyA9IGZ1bmN0aW9uKGlubmVyRm4sIG91dGVyRm4sIHNlbGYsIHRyeUxvY3NMaXN0LCBQcm9taXNlSW1wbCkge1xuICAgIGlmIChQcm9taXNlSW1wbCA9PT0gdm9pZCAwKSBQcm9taXNlSW1wbCA9IFByb21pc2U7XG5cbiAgICB2YXIgaXRlciA9IG5ldyBBc3luY0l0ZXJhdG9yKFxuICAgICAgd3JhcChpbm5lckZuLCBvdXRlckZuLCBzZWxmLCB0cnlMb2NzTGlzdCksXG4gICAgICBQcm9taXNlSW1wbFxuICAgICk7XG5cbiAgICByZXR1cm4gZXhwb3J0cy5pc0dlbmVyYXRvckZ1bmN0aW9uKG91dGVyRm4pXG4gICAgICA/IGl0ZXIgLy8gSWYgb3V0ZXJGbiBpcyBhIGdlbmVyYXRvciwgcmV0dXJuIHRoZSBmdWxsIGl0ZXJhdG9yLlxuICAgICAgOiBpdGVyLm5leHQoKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkge1xuICAgICAgICAgIHJldHVybiByZXN1bHQuZG9uZSA/IHJlc3VsdC52YWx1ZSA6IGl0ZXIubmV4dCgpO1xuICAgICAgICB9KTtcbiAgfTtcblxuICBmdW5jdGlvbiBtYWtlSW52b2tlTWV0aG9kKGlubmVyRm4sIHNlbGYsIGNvbnRleHQpIHtcbiAgICB2YXIgc3RhdGUgPSBHZW5TdGF0ZVN1c3BlbmRlZFN0YXJ0O1xuXG4gICAgcmV0dXJuIGZ1bmN0aW9uIGludm9rZShtZXRob2QsIGFyZykge1xuICAgICAgaWYgKHN0YXRlID09PSBHZW5TdGF0ZUV4ZWN1dGluZykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nXCIpO1xuICAgICAgfVxuXG4gICAgICBpZiAoc3RhdGUgPT09IEdlblN0YXRlQ29tcGxldGVkKSB7XG4gICAgICAgIGlmIChtZXRob2QgPT09IFwidGhyb3dcIikge1xuICAgICAgICAgIHRocm93IGFyZztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEJlIGZvcmdpdmluZywgcGVyIDI1LjMuMy4zLjMgb2YgdGhlIHNwZWM6XG4gICAgICAgIC8vIGh0dHBzOi8vcGVvcGxlLm1vemlsbGEub3JnL35qb3JlbmRvcmZmL2VzNi1kcmFmdC5odG1sI3NlYy1nZW5lcmF0b3JyZXN1bWVcbiAgICAgICAgcmV0dXJuIGRvbmVSZXN1bHQoKTtcbiAgICAgIH1cblxuICAgICAgY29udGV4dC5tZXRob2QgPSBtZXRob2Q7XG4gICAgICBjb250ZXh0LmFyZyA9IGFyZztcblxuICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgdmFyIGRlbGVnYXRlID0gY29udGV4dC5kZWxlZ2F0ZTtcbiAgICAgICAgaWYgKGRlbGVnYXRlKSB7XG4gICAgICAgICAgdmFyIGRlbGVnYXRlUmVzdWx0ID0gbWF5YmVJbnZva2VEZWxlZ2F0ZShkZWxlZ2F0ZSwgY29udGV4dCk7XG4gICAgICAgICAgaWYgKGRlbGVnYXRlUmVzdWx0KSB7XG4gICAgICAgICAgICBpZiAoZGVsZWdhdGVSZXN1bHQgPT09IENvbnRpbnVlU2VudGluZWwpIGNvbnRpbnVlO1xuICAgICAgICAgICAgcmV0dXJuIGRlbGVnYXRlUmVzdWx0O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb250ZXh0Lm1ldGhvZCA9PT0gXCJuZXh0XCIpIHtcbiAgICAgICAgICAvLyBTZXR0aW5nIGNvbnRleHQuX3NlbnQgZm9yIGxlZ2FjeSBzdXBwb3J0IG9mIEJhYmVsJ3NcbiAgICAgICAgICAvLyBmdW5jdGlvbi5zZW50IGltcGxlbWVudGF0aW9uLlxuICAgICAgICAgIGNvbnRleHQuc2VudCA9IGNvbnRleHQuX3NlbnQgPSBjb250ZXh0LmFyZztcblxuICAgICAgICB9IGVsc2UgaWYgKGNvbnRleHQubWV0aG9kID09PSBcInRocm93XCIpIHtcbiAgICAgICAgICBpZiAoc3RhdGUgPT09IEdlblN0YXRlU3VzcGVuZGVkU3RhcnQpIHtcbiAgICAgICAgICAgIHN0YXRlID0gR2VuU3RhdGVDb21wbGV0ZWQ7XG4gICAgICAgICAgICB0aHJvdyBjb250ZXh0LmFyZztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb250ZXh0LmRpc3BhdGNoRXhjZXB0aW9uKGNvbnRleHQuYXJnKTtcblxuICAgICAgICB9IGVsc2UgaWYgKGNvbnRleHQubWV0aG9kID09PSBcInJldHVyblwiKSB7XG4gICAgICAgICAgY29udGV4dC5hYnJ1cHQoXCJyZXR1cm5cIiwgY29udGV4dC5hcmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RhdGUgPSBHZW5TdGF0ZUV4ZWN1dGluZztcblxuICAgICAgICB2YXIgcmVjb3JkID0gdHJ5Q2F0Y2goaW5uZXJGbiwgc2VsZiwgY29udGV4dCk7XG4gICAgICAgIGlmIChyZWNvcmQudHlwZSA9PT0gXCJub3JtYWxcIikge1xuICAgICAgICAgIC8vIElmIGFuIGV4Y2VwdGlvbiBpcyB0aHJvd24gZnJvbSBpbm5lckZuLCB3ZSBsZWF2ZSBzdGF0ZSA9PT1cbiAgICAgICAgICAvLyBHZW5TdGF0ZUV4ZWN1dGluZyBhbmQgbG9vcCBiYWNrIGZvciBhbm90aGVyIGludm9jYXRpb24uXG4gICAgICAgICAgc3RhdGUgPSBjb250ZXh0LmRvbmVcbiAgICAgICAgICAgID8gR2VuU3RhdGVDb21wbGV0ZWRcbiAgICAgICAgICAgIDogR2VuU3RhdGVTdXNwZW5kZWRZaWVsZDtcblxuICAgICAgICAgIGlmIChyZWNvcmQuYXJnID09PSBDb250aW51ZVNlbnRpbmVsKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdmFsdWU6IHJlY29yZC5hcmcsXG4gICAgICAgICAgICBkb25lOiBjb250ZXh0LmRvbmVcbiAgICAgICAgICB9O1xuXG4gICAgICAgIH0gZWxzZSBpZiAocmVjb3JkLnR5cGUgPT09IFwidGhyb3dcIikge1xuICAgICAgICAgIHN0YXRlID0gR2VuU3RhdGVDb21wbGV0ZWQ7XG4gICAgICAgICAgLy8gRGlzcGF0Y2ggdGhlIGV4Y2VwdGlvbiBieSBsb29waW5nIGJhY2sgYXJvdW5kIHRvIHRoZVxuICAgICAgICAgIC8vIGNvbnRleHQuZGlzcGF0Y2hFeGNlcHRpb24oY29udGV4dC5hcmcpIGNhbGwgYWJvdmUuXG4gICAgICAgICAgY29udGV4dC5tZXRob2QgPSBcInRocm93XCI7XG4gICAgICAgICAgY29udGV4dC5hcmcgPSByZWNvcmQuYXJnO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIC8vIENhbGwgZGVsZWdhdGUuaXRlcmF0b3JbY29udGV4dC5tZXRob2RdKGNvbnRleHQuYXJnKSBhbmQgaGFuZGxlIHRoZVxuICAvLyByZXN1bHQsIGVpdGhlciBieSByZXR1cm5pbmcgYSB7IHZhbHVlLCBkb25lIH0gcmVzdWx0IGZyb20gdGhlXG4gIC8vIGRlbGVnYXRlIGl0ZXJhdG9yLCBvciBieSBtb2RpZnlpbmcgY29udGV4dC5tZXRob2QgYW5kIGNvbnRleHQuYXJnLFxuICAvLyBzZXR0aW5nIGNvbnRleHQuZGVsZWdhdGUgdG8gbnVsbCwgYW5kIHJldHVybmluZyB0aGUgQ29udGludWVTZW50aW5lbC5cbiAgZnVuY3Rpb24gbWF5YmVJbnZva2VEZWxlZ2F0ZShkZWxlZ2F0ZSwgY29udGV4dCkge1xuICAgIHZhciBtZXRob2QgPSBkZWxlZ2F0ZS5pdGVyYXRvcltjb250ZXh0Lm1ldGhvZF07XG4gICAgaWYgKG1ldGhvZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBBIC50aHJvdyBvciAucmV0dXJuIHdoZW4gdGhlIGRlbGVnYXRlIGl0ZXJhdG9yIGhhcyBubyAudGhyb3dcbiAgICAgIC8vIG1ldGhvZCBhbHdheXMgdGVybWluYXRlcyB0aGUgeWllbGQqIGxvb3AuXG4gICAgICBjb250ZXh0LmRlbGVnYXRlID0gbnVsbDtcblxuICAgICAgaWYgKGNvbnRleHQubWV0aG9kID09PSBcInRocm93XCIpIHtcbiAgICAgICAgLy8gTm90ZTogW1wicmV0dXJuXCJdIG11c3QgYmUgdXNlZCBmb3IgRVMzIHBhcnNpbmcgY29tcGF0aWJpbGl0eS5cbiAgICAgICAgaWYgKGRlbGVnYXRlLml0ZXJhdG9yW1wicmV0dXJuXCJdKSB7XG4gICAgICAgICAgLy8gSWYgdGhlIGRlbGVnYXRlIGl0ZXJhdG9yIGhhcyBhIHJldHVybiBtZXRob2QsIGdpdmUgaXQgYVxuICAgICAgICAgIC8vIGNoYW5jZSB0byBjbGVhbiB1cC5cbiAgICAgICAgICBjb250ZXh0Lm1ldGhvZCA9IFwicmV0dXJuXCI7XG4gICAgICAgICAgY29udGV4dC5hcmcgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgbWF5YmVJbnZva2VEZWxlZ2F0ZShkZWxlZ2F0ZSwgY29udGV4dCk7XG5cbiAgICAgICAgICBpZiAoY29udGV4dC5tZXRob2QgPT09IFwidGhyb3dcIikge1xuICAgICAgICAgICAgLy8gSWYgbWF5YmVJbnZva2VEZWxlZ2F0ZShjb250ZXh0KSBjaGFuZ2VkIGNvbnRleHQubWV0aG9kIGZyb21cbiAgICAgICAgICAgIC8vIFwicmV0dXJuXCIgdG8gXCJ0aHJvd1wiLCBsZXQgdGhhdCBvdmVycmlkZSB0aGUgVHlwZUVycm9yIGJlbG93LlxuICAgICAgICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29udGV4dC5tZXRob2QgPSBcInRocm93XCI7XG4gICAgICAgIGNvbnRleHQuYXJnID0gbmV3IFR5cGVFcnJvcihcbiAgICAgICAgICBcIlRoZSBpdGVyYXRvciBkb2VzIG5vdCBwcm92aWRlIGEgJ3Rocm93JyBtZXRob2RcIik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBDb250aW51ZVNlbnRpbmVsO1xuICAgIH1cblxuICAgIHZhciByZWNvcmQgPSB0cnlDYXRjaChtZXRob2QsIGRlbGVnYXRlLml0ZXJhdG9yLCBjb250ZXh0LmFyZyk7XG5cbiAgICBpZiAocmVjb3JkLnR5cGUgPT09IFwidGhyb3dcIikge1xuICAgICAgY29udGV4dC5tZXRob2QgPSBcInRocm93XCI7XG4gICAgICBjb250ZXh0LmFyZyA9IHJlY29yZC5hcmc7XG4gICAgICBjb250ZXh0LmRlbGVnYXRlID0gbnVsbDtcbiAgICAgIHJldHVybiBDb250aW51ZVNlbnRpbmVsO1xuICAgIH1cblxuICAgIHZhciBpbmZvID0gcmVjb3JkLmFyZztcblxuICAgIGlmICghIGluZm8pIHtcbiAgICAgIGNvbnRleHQubWV0aG9kID0gXCJ0aHJvd1wiO1xuICAgICAgY29udGV4dC5hcmcgPSBuZXcgVHlwZUVycm9yKFwiaXRlcmF0b3IgcmVzdWx0IGlzIG5vdCBhbiBvYmplY3RcIik7XG4gICAgICBjb250ZXh0LmRlbGVnYXRlID0gbnVsbDtcbiAgICAgIHJldHVybiBDb250aW51ZVNlbnRpbmVsO1xuICAgIH1cblxuICAgIGlmIChpbmZvLmRvbmUpIHtcbiAgICAgIC8vIEFzc2lnbiB0aGUgcmVzdWx0IG9mIHRoZSBmaW5pc2hlZCBkZWxlZ2F0ZSB0byB0aGUgdGVtcG9yYXJ5XG4gICAgICAvLyB2YXJpYWJsZSBzcGVjaWZpZWQgYnkgZGVsZWdhdGUucmVzdWx0TmFtZSAoc2VlIGRlbGVnYXRlWWllbGQpLlxuICAgICAgY29udGV4dFtkZWxlZ2F0ZS5yZXN1bHROYW1lXSA9IGluZm8udmFsdWU7XG5cbiAgICAgIC8vIFJlc3VtZSBleGVjdXRpb24gYXQgdGhlIGRlc2lyZWQgbG9jYXRpb24gKHNlZSBkZWxlZ2F0ZVlpZWxkKS5cbiAgICAgIGNvbnRleHQubmV4dCA9IGRlbGVnYXRlLm5leHRMb2M7XG5cbiAgICAgIC8vIElmIGNvbnRleHQubWV0aG9kIHdhcyBcInRocm93XCIgYnV0IHRoZSBkZWxlZ2F0ZSBoYW5kbGVkIHRoZVxuICAgICAgLy8gZXhjZXB0aW9uLCBsZXQgdGhlIG91dGVyIGdlbmVyYXRvciBwcm9jZWVkIG5vcm1hbGx5LiBJZlxuICAgICAgLy8gY29udGV4dC5tZXRob2Qgd2FzIFwibmV4dFwiLCBmb3JnZXQgY29udGV4dC5hcmcgc2luY2UgaXQgaGFzIGJlZW5cbiAgICAgIC8vIFwiY29uc3VtZWRcIiBieSB0aGUgZGVsZWdhdGUgaXRlcmF0b3IuIElmIGNvbnRleHQubWV0aG9kIHdhc1xuICAgICAgLy8gXCJyZXR1cm5cIiwgYWxsb3cgdGhlIG9yaWdpbmFsIC5yZXR1cm4gY2FsbCB0byBjb250aW51ZSBpbiB0aGVcbiAgICAgIC8vIG91dGVyIGdlbmVyYXRvci5cbiAgICAgIGlmIChjb250ZXh0Lm1ldGhvZCAhPT0gXCJyZXR1cm5cIikge1xuICAgICAgICBjb250ZXh0Lm1ldGhvZCA9IFwibmV4dFwiO1xuICAgICAgICBjb250ZXh0LmFyZyA9IHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBSZS15aWVsZCB0aGUgcmVzdWx0IHJldHVybmVkIGJ5IHRoZSBkZWxlZ2F0ZSBtZXRob2QuXG4gICAgICByZXR1cm4gaW5mbztcbiAgICB9XG5cbiAgICAvLyBUaGUgZGVsZWdhdGUgaXRlcmF0b3IgaXMgZmluaXNoZWQsIHNvIGZvcmdldCBpdCBhbmQgY29udGludWUgd2l0aFxuICAgIC8vIHRoZSBvdXRlciBnZW5lcmF0b3IuXG4gICAgY29udGV4dC5kZWxlZ2F0ZSA9IG51bGw7XG4gICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gIH1cblxuICAvLyBEZWZpbmUgR2VuZXJhdG9yLnByb3RvdHlwZS57bmV4dCx0aHJvdyxyZXR1cm59IGluIHRlcm1zIG9mIHRoZVxuICAvLyB1bmlmaWVkIC5faW52b2tlIGhlbHBlciBtZXRob2QuXG4gIGRlZmluZUl0ZXJhdG9yTWV0aG9kcyhHcCk7XG5cbiAgR3BbdG9TdHJpbmdUYWdTeW1ib2xdID0gXCJHZW5lcmF0b3JcIjtcblxuICAvLyBBIEdlbmVyYXRvciBzaG91bGQgYWx3YXlzIHJldHVybiBpdHNlbGYgYXMgdGhlIGl0ZXJhdG9yIG9iamVjdCB3aGVuIHRoZVxuICAvLyBAQGl0ZXJhdG9yIGZ1bmN0aW9uIGlzIGNhbGxlZCBvbiBpdC4gU29tZSBicm93c2VycycgaW1wbGVtZW50YXRpb25zIG9mIHRoZVxuICAvLyBpdGVyYXRvciBwcm90b3R5cGUgY2hhaW4gaW5jb3JyZWN0bHkgaW1wbGVtZW50IHRoaXMsIGNhdXNpbmcgdGhlIEdlbmVyYXRvclxuICAvLyBvYmplY3QgdG8gbm90IGJlIHJldHVybmVkIGZyb20gdGhpcyBjYWxsLiBUaGlzIGVuc3VyZXMgdGhhdCBkb2Vzbid0IGhhcHBlbi5cbiAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWdlbmVyYXRvci9pc3N1ZXMvMjc0IGZvciBtb3JlIGRldGFpbHMuXG4gIEdwW2l0ZXJhdG9yU3ltYm9sXSA9IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIEdwLnRvU3RyaW5nID0gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIFwiW29iamVjdCBHZW5lcmF0b3JdXCI7XG4gIH07XG5cbiAgZnVuY3Rpb24gcHVzaFRyeUVudHJ5KGxvY3MpIHtcbiAgICB2YXIgZW50cnkgPSB7IHRyeUxvYzogbG9jc1swXSB9O1xuXG4gICAgaWYgKDEgaW4gbG9jcykge1xuICAgICAgZW50cnkuY2F0Y2hMb2MgPSBsb2NzWzFdO1xuICAgIH1cblxuICAgIGlmICgyIGluIGxvY3MpIHtcbiAgICAgIGVudHJ5LmZpbmFsbHlMb2MgPSBsb2NzWzJdO1xuICAgICAgZW50cnkuYWZ0ZXJMb2MgPSBsb2NzWzNdO1xuICAgIH1cblxuICAgIHRoaXMudHJ5RW50cmllcy5wdXNoKGVudHJ5KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlc2V0VHJ5RW50cnkoZW50cnkpIHtcbiAgICB2YXIgcmVjb3JkID0gZW50cnkuY29tcGxldGlvbiB8fCB7fTtcbiAgICByZWNvcmQudHlwZSA9IFwibm9ybWFsXCI7XG4gICAgZGVsZXRlIHJlY29yZC5hcmc7XG4gICAgZW50cnkuY29tcGxldGlvbiA9IHJlY29yZDtcbiAgfVxuXG4gIGZ1bmN0aW9uIENvbnRleHQodHJ5TG9jc0xpc3QpIHtcbiAgICAvLyBUaGUgcm9vdCBlbnRyeSBvYmplY3QgKGVmZmVjdGl2ZWx5IGEgdHJ5IHN0YXRlbWVudCB3aXRob3V0IGEgY2F0Y2hcbiAgICAvLyBvciBhIGZpbmFsbHkgYmxvY2spIGdpdmVzIHVzIGEgcGxhY2UgdG8gc3RvcmUgdmFsdWVzIHRocm93biBmcm9tXG4gICAgLy8gbG9jYXRpb25zIHdoZXJlIHRoZXJlIGlzIG5vIGVuY2xvc2luZyB0cnkgc3RhdGVtZW50LlxuICAgIHRoaXMudHJ5RW50cmllcyA9IFt7IHRyeUxvYzogXCJyb290XCIgfV07XG4gICAgdHJ5TG9jc0xpc3QuZm9yRWFjaChwdXNoVHJ5RW50cnksIHRoaXMpO1xuICAgIHRoaXMucmVzZXQodHJ1ZSk7XG4gIH1cblxuICBleHBvcnRzLmtleXMgPSBmdW5jdGlvbihvYmplY3QpIHtcbiAgICB2YXIga2V5cyA9IFtdO1xuICAgIGZvciAodmFyIGtleSBpbiBvYmplY3QpIHtcbiAgICAgIGtleXMucHVzaChrZXkpO1xuICAgIH1cbiAgICBrZXlzLnJldmVyc2UoKTtcblxuICAgIC8vIFJhdGhlciB0aGFuIHJldHVybmluZyBhbiBvYmplY3Qgd2l0aCBhIG5leHQgbWV0aG9kLCB3ZSBrZWVwXG4gICAgLy8gdGhpbmdzIHNpbXBsZSBhbmQgcmV0dXJuIHRoZSBuZXh0IGZ1bmN0aW9uIGl0c2VsZi5cbiAgICByZXR1cm4gZnVuY3Rpb24gbmV4dCgpIHtcbiAgICAgIHdoaWxlIChrZXlzLmxlbmd0aCkge1xuICAgICAgICB2YXIga2V5ID0ga2V5cy5wb3AoKTtcbiAgICAgICAgaWYgKGtleSBpbiBvYmplY3QpIHtcbiAgICAgICAgICBuZXh0LnZhbHVlID0ga2V5O1xuICAgICAgICAgIG5leHQuZG9uZSA9IGZhbHNlO1xuICAgICAgICAgIHJldHVybiBuZXh0O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFRvIGF2b2lkIGNyZWF0aW5nIGFuIGFkZGl0aW9uYWwgb2JqZWN0LCB3ZSBqdXN0IGhhbmcgdGhlIC52YWx1ZVxuICAgICAgLy8gYW5kIC5kb25lIHByb3BlcnRpZXMgb2ZmIHRoZSBuZXh0IGZ1bmN0aW9uIG9iamVjdCBpdHNlbGYuIFRoaXNcbiAgICAgIC8vIGFsc28gZW5zdXJlcyB0aGF0IHRoZSBtaW5pZmllciB3aWxsIG5vdCBhbm9ueW1pemUgdGhlIGZ1bmN0aW9uLlxuICAgICAgbmV4dC5kb25lID0gdHJ1ZTtcbiAgICAgIHJldHVybiBuZXh0O1xuICAgIH07XG4gIH07XG5cbiAgZnVuY3Rpb24gdmFsdWVzKGl0ZXJhYmxlKSB7XG4gICAgaWYgKGl0ZXJhYmxlKSB7XG4gICAgICB2YXIgaXRlcmF0b3JNZXRob2QgPSBpdGVyYWJsZVtpdGVyYXRvclN5bWJvbF07XG4gICAgICBpZiAoaXRlcmF0b3JNZXRob2QpIHtcbiAgICAgICAgcmV0dXJuIGl0ZXJhdG9yTWV0aG9kLmNhbGwoaXRlcmFibGUpO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIGl0ZXJhYmxlLm5leHQgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICByZXR1cm4gaXRlcmFibGU7XG4gICAgICB9XG5cbiAgICAgIGlmICghaXNOYU4oaXRlcmFibGUubGVuZ3RoKSkge1xuICAgICAgICB2YXIgaSA9IC0xLCBuZXh0ID0gZnVuY3Rpb24gbmV4dCgpIHtcbiAgICAgICAgICB3aGlsZSAoKytpIDwgaXRlcmFibGUubGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAoaGFzT3duLmNhbGwoaXRlcmFibGUsIGkpKSB7XG4gICAgICAgICAgICAgIG5leHQudmFsdWUgPSBpdGVyYWJsZVtpXTtcbiAgICAgICAgICAgICAgbmV4dC5kb25lID0gZmFsc2U7XG4gICAgICAgICAgICAgIHJldHVybiBuZXh0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIG5leHQudmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgbmV4dC5kb25lID0gdHJ1ZTtcblxuICAgICAgICAgIHJldHVybiBuZXh0O1xuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBuZXh0Lm5leHQgPSBuZXh0O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJldHVybiBhbiBpdGVyYXRvciB3aXRoIG5vIHZhbHVlcy5cbiAgICByZXR1cm4geyBuZXh0OiBkb25lUmVzdWx0IH07XG4gIH1cbiAgZXhwb3J0cy52YWx1ZXMgPSB2YWx1ZXM7XG5cbiAgZnVuY3Rpb24gZG9uZVJlc3VsdCgpIHtcbiAgICByZXR1cm4geyB2YWx1ZTogdW5kZWZpbmVkLCBkb25lOiB0cnVlIH07XG4gIH1cblxuICBDb250ZXh0LnByb3RvdHlwZSA9IHtcbiAgICBjb25zdHJ1Y3RvcjogQ29udGV4dCxcblxuICAgIHJlc2V0OiBmdW5jdGlvbihza2lwVGVtcFJlc2V0KSB7XG4gICAgICB0aGlzLnByZXYgPSAwO1xuICAgICAgdGhpcy5uZXh0ID0gMDtcbiAgICAgIC8vIFJlc2V0dGluZyBjb250ZXh0Ll9zZW50IGZvciBsZWdhY3kgc3VwcG9ydCBvZiBCYWJlbCdzXG4gICAgICAvLyBmdW5jdGlvbi5zZW50IGltcGxlbWVudGF0aW9uLlxuICAgICAgdGhpcy5zZW50ID0gdGhpcy5fc2VudCA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuZG9uZSA9IGZhbHNlO1xuICAgICAgdGhpcy5kZWxlZ2F0ZSA9IG51bGw7XG5cbiAgICAgIHRoaXMubWV0aG9kID0gXCJuZXh0XCI7XG4gICAgICB0aGlzLmFyZyA9IHVuZGVmaW5lZDtcblxuICAgICAgdGhpcy50cnlFbnRyaWVzLmZvckVhY2gocmVzZXRUcnlFbnRyeSk7XG5cbiAgICAgIGlmICghc2tpcFRlbXBSZXNldCkge1xuICAgICAgICBmb3IgKHZhciBuYW1lIGluIHRoaXMpIHtcbiAgICAgICAgICAvLyBOb3Qgc3VyZSBhYm91dCB0aGUgb3B0aW1hbCBvcmRlciBvZiB0aGVzZSBjb25kaXRpb25zOlxuICAgICAgICAgIGlmIChuYW1lLmNoYXJBdCgwKSA9PT0gXCJ0XCIgJiZcbiAgICAgICAgICAgICAgaGFzT3duLmNhbGwodGhpcywgbmFtZSkgJiZcbiAgICAgICAgICAgICAgIWlzTmFOKCtuYW1lLnNsaWNlKDEpKSkge1xuICAgICAgICAgICAgdGhpc1tuYW1lXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuXG4gICAgc3RvcDogZnVuY3Rpb24oKSB7XG4gICAgICB0aGlzLmRvbmUgPSB0cnVlO1xuXG4gICAgICB2YXIgcm9vdEVudHJ5ID0gdGhpcy50cnlFbnRyaWVzWzBdO1xuICAgICAgdmFyIHJvb3RSZWNvcmQgPSByb290RW50cnkuY29tcGxldGlvbjtcbiAgICAgIGlmIChyb290UmVjb3JkLnR5cGUgPT09IFwidGhyb3dcIikge1xuICAgICAgICB0aHJvdyByb290UmVjb3JkLmFyZztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMucnZhbDtcbiAgICB9LFxuXG4gICAgZGlzcGF0Y2hFeGNlcHRpb246IGZ1bmN0aW9uKGV4Y2VwdGlvbikge1xuICAgICAgaWYgKHRoaXMuZG9uZSkge1xuICAgICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgICB9XG5cbiAgICAgIHZhciBjb250ZXh0ID0gdGhpcztcbiAgICAgIGZ1bmN0aW9uIGhhbmRsZShsb2MsIGNhdWdodCkge1xuICAgICAgICByZWNvcmQudHlwZSA9IFwidGhyb3dcIjtcbiAgICAgICAgcmVjb3JkLmFyZyA9IGV4Y2VwdGlvbjtcbiAgICAgICAgY29udGV4dC5uZXh0ID0gbG9jO1xuXG4gICAgICAgIGlmIChjYXVnaHQpIHtcbiAgICAgICAgICAvLyBJZiB0aGUgZGlzcGF0Y2hlZCBleGNlcHRpb24gd2FzIGNhdWdodCBieSBhIGNhdGNoIGJsb2NrLFxuICAgICAgICAgIC8vIHRoZW4gbGV0IHRoYXQgY2F0Y2ggYmxvY2sgaGFuZGxlIHRoZSBleGNlcHRpb24gbm9ybWFsbHkuXG4gICAgICAgICAgY29udGV4dC5tZXRob2QgPSBcIm5leHRcIjtcbiAgICAgICAgICBjb250ZXh0LmFyZyA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAhISBjYXVnaHQ7XG4gICAgICB9XG5cbiAgICAgIGZvciAodmFyIGkgPSB0aGlzLnRyeUVudHJpZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyAtLWkpIHtcbiAgICAgICAgdmFyIGVudHJ5ID0gdGhpcy50cnlFbnRyaWVzW2ldO1xuICAgICAgICB2YXIgcmVjb3JkID0gZW50cnkuY29tcGxldGlvbjtcblxuICAgICAgICBpZiAoZW50cnkudHJ5TG9jID09PSBcInJvb3RcIikge1xuICAgICAgICAgIC8vIEV4Y2VwdGlvbiB0aHJvd24gb3V0c2lkZSBvZiBhbnkgdHJ5IGJsb2NrIHRoYXQgY291bGQgaGFuZGxlXG4gICAgICAgICAgLy8gaXQsIHNvIHNldCB0aGUgY29tcGxldGlvbiB2YWx1ZSBvZiB0aGUgZW50aXJlIGZ1bmN0aW9uIHRvXG4gICAgICAgICAgLy8gdGhyb3cgdGhlIGV4Y2VwdGlvbi5cbiAgICAgICAgICByZXR1cm4gaGFuZGxlKFwiZW5kXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGVudHJ5LnRyeUxvYyA8PSB0aGlzLnByZXYpIHtcbiAgICAgICAgICB2YXIgaGFzQ2F0Y2ggPSBoYXNPd24uY2FsbChlbnRyeSwgXCJjYXRjaExvY1wiKTtcbiAgICAgICAgICB2YXIgaGFzRmluYWxseSA9IGhhc093bi5jYWxsKGVudHJ5LCBcImZpbmFsbHlMb2NcIik7XG5cbiAgICAgICAgICBpZiAoaGFzQ2F0Y2ggJiYgaGFzRmluYWxseSkge1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGVudHJ5LmNhdGNoTG9jKSB7XG4gICAgICAgICAgICAgIHJldHVybiBoYW5kbGUoZW50cnkuY2F0Y2hMb2MsIHRydWUpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnByZXYgPCBlbnRyeS5maW5hbGx5TG9jKSB7XG4gICAgICAgICAgICAgIHJldHVybiBoYW5kbGUoZW50cnkuZmluYWxseUxvYyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICB9IGVsc2UgaWYgKGhhc0NhdGNoKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5wcmV2IDwgZW50cnkuY2F0Y2hMb2MpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGhhbmRsZShlbnRyeS5jYXRjaExvYywgdHJ1ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICB9IGVsc2UgaWYgKGhhc0ZpbmFsbHkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnByZXYgPCBlbnRyeS5maW5hbGx5TG9jKSB7XG4gICAgICAgICAgICAgIHJldHVybiBoYW5kbGUoZW50cnkuZmluYWxseUxvYyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwidHJ5IHN0YXRlbWVudCB3aXRob3V0IGNhdGNoIG9yIGZpbmFsbHlcIik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcblxuICAgIGFicnVwdDogZnVuY3Rpb24odHlwZSwgYXJnKSB7XG4gICAgICBmb3IgKHZhciBpID0gdGhpcy50cnlFbnRyaWVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgLS1pKSB7XG4gICAgICAgIHZhciBlbnRyeSA9IHRoaXMudHJ5RW50cmllc1tpXTtcbiAgICAgICAgaWYgKGVudHJ5LnRyeUxvYyA8PSB0aGlzLnByZXYgJiZcbiAgICAgICAgICAgIGhhc093bi5jYWxsKGVudHJ5LCBcImZpbmFsbHlMb2NcIikgJiZcbiAgICAgICAgICAgIHRoaXMucHJldiA8IGVudHJ5LmZpbmFsbHlMb2MpIHtcbiAgICAgICAgICB2YXIgZmluYWxseUVudHJ5ID0gZW50cnk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGZpbmFsbHlFbnRyeSAmJlxuICAgICAgICAgICh0eXBlID09PSBcImJyZWFrXCIgfHxcbiAgICAgICAgICAgdHlwZSA9PT0gXCJjb250aW51ZVwiKSAmJlxuICAgICAgICAgIGZpbmFsbHlFbnRyeS50cnlMb2MgPD0gYXJnICYmXG4gICAgICAgICAgYXJnIDw9IGZpbmFsbHlFbnRyeS5maW5hbGx5TG9jKSB7XG4gICAgICAgIC8vIElnbm9yZSB0aGUgZmluYWxseSBlbnRyeSBpZiBjb250cm9sIGlzIG5vdCBqdW1waW5nIHRvIGFcbiAgICAgICAgLy8gbG9jYXRpb24gb3V0c2lkZSB0aGUgdHJ5L2NhdGNoIGJsb2NrLlxuICAgICAgICBmaW5hbGx5RW50cnkgPSBudWxsO1xuICAgICAgfVxuXG4gICAgICB2YXIgcmVjb3JkID0gZmluYWxseUVudHJ5ID8gZmluYWxseUVudHJ5LmNvbXBsZXRpb24gOiB7fTtcbiAgICAgIHJlY29yZC50eXBlID0gdHlwZTtcbiAgICAgIHJlY29yZC5hcmcgPSBhcmc7XG5cbiAgICAgIGlmIChmaW5hbGx5RW50cnkpIHtcbiAgICAgICAgdGhpcy5tZXRob2QgPSBcIm5leHRcIjtcbiAgICAgICAgdGhpcy5uZXh0ID0gZmluYWxseUVudHJ5LmZpbmFsbHlMb2M7XG4gICAgICAgIHJldHVybiBDb250aW51ZVNlbnRpbmVsO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5jb21wbGV0ZShyZWNvcmQpO1xuICAgIH0sXG5cbiAgICBjb21wbGV0ZTogZnVuY3Rpb24ocmVjb3JkLCBhZnRlckxvYykge1xuICAgICAgaWYgKHJlY29yZC50eXBlID09PSBcInRocm93XCIpIHtcbiAgICAgICAgdGhyb3cgcmVjb3JkLmFyZztcbiAgICAgIH1cblxuICAgICAgaWYgKHJlY29yZC50eXBlID09PSBcImJyZWFrXCIgfHxcbiAgICAgICAgICByZWNvcmQudHlwZSA9PT0gXCJjb250aW51ZVwiKSB7XG4gICAgICAgIHRoaXMubmV4dCA9IHJlY29yZC5hcmc7XG4gICAgICB9IGVsc2UgaWYgKHJlY29yZC50eXBlID09PSBcInJldHVyblwiKSB7XG4gICAgICAgIHRoaXMucnZhbCA9IHRoaXMuYXJnID0gcmVjb3JkLmFyZztcbiAgICAgICAgdGhpcy5tZXRob2QgPSBcInJldHVyblwiO1xuICAgICAgICB0aGlzLm5leHQgPSBcImVuZFwiO1xuICAgICAgfSBlbHNlIGlmIChyZWNvcmQudHlwZSA9PT0gXCJub3JtYWxcIiAmJiBhZnRlckxvYykge1xuICAgICAgICB0aGlzLm5leHQgPSBhZnRlckxvYztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gICAgfSxcblxuICAgIGZpbmlzaDogZnVuY3Rpb24oZmluYWxseUxvYykge1xuICAgICAgZm9yICh2YXIgaSA9IHRoaXMudHJ5RW50cmllcy5sZW5ndGggLSAxOyBpID49IDA7IC0taSkge1xuICAgICAgICB2YXIgZW50cnkgPSB0aGlzLnRyeUVudHJpZXNbaV07XG4gICAgICAgIGlmIChlbnRyeS5maW5hbGx5TG9jID09PSBmaW5hbGx5TG9jKSB7XG4gICAgICAgICAgdGhpcy5jb21wbGV0ZShlbnRyeS5jb21wbGV0aW9uLCBlbnRyeS5hZnRlckxvYyk7XG4gICAgICAgICAgcmVzZXRUcnlFbnRyeShlbnRyeSk7XG4gICAgICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuXG4gICAgXCJjYXRjaFwiOiBmdW5jdGlvbih0cnlMb2MpIHtcbiAgICAgIGZvciAodmFyIGkgPSB0aGlzLnRyeUVudHJpZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyAtLWkpIHtcbiAgICAgICAgdmFyIGVudHJ5ID0gdGhpcy50cnlFbnRyaWVzW2ldO1xuICAgICAgICBpZiAoZW50cnkudHJ5TG9jID09PSB0cnlMb2MpIHtcbiAgICAgICAgICB2YXIgcmVjb3JkID0gZW50cnkuY29tcGxldGlvbjtcbiAgICAgICAgICBpZiAocmVjb3JkLnR5cGUgPT09IFwidGhyb3dcIikge1xuICAgICAgICAgICAgdmFyIHRocm93biA9IHJlY29yZC5hcmc7XG4gICAgICAgICAgICByZXNldFRyeUVudHJ5KGVudHJ5KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRocm93bjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBUaGUgY29udGV4dC5jYXRjaCBtZXRob2QgbXVzdCBvbmx5IGJlIGNhbGxlZCB3aXRoIGEgbG9jYXRpb25cbiAgICAgIC8vIGFyZ3VtZW50IHRoYXQgY29ycmVzcG9uZHMgdG8gYSBrbm93biBjYXRjaCBibG9jay5cbiAgICAgIHRocm93IG5ldyBFcnJvcihcImlsbGVnYWwgY2F0Y2ggYXR0ZW1wdFwiKTtcbiAgICB9LFxuXG4gICAgZGVsZWdhdGVZaWVsZDogZnVuY3Rpb24oaXRlcmFibGUsIHJlc3VsdE5hbWUsIG5leHRMb2MpIHtcbiAgICAgIHRoaXMuZGVsZWdhdGUgPSB7XG4gICAgICAgIGl0ZXJhdG9yOiB2YWx1ZXMoaXRlcmFibGUpLFxuICAgICAgICByZXN1bHROYW1lOiByZXN1bHROYW1lLFxuICAgICAgICBuZXh0TG9jOiBuZXh0TG9jXG4gICAgICB9O1xuXG4gICAgICBpZiAodGhpcy5tZXRob2QgPT09IFwibmV4dFwiKSB7XG4gICAgICAgIC8vIERlbGliZXJhdGVseSBmb3JnZXQgdGhlIGxhc3Qgc2VudCB2YWx1ZSBzbyB0aGF0IHdlIGRvbid0XG4gICAgICAgIC8vIGFjY2lkZW50YWxseSBwYXNzIGl0IG9uIHRvIHRoZSBkZWxlZ2F0ZS5cbiAgICAgICAgdGhpcy5hcmcgPSB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBDb250aW51ZVNlbnRpbmVsO1xuICAgIH1cbiAgfTtcblxuICAvLyBSZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhpcyBzY3JpcHQgaXMgZXhlY3V0aW5nIGFzIGEgQ29tbW9uSlMgbW9kdWxlXG4gIC8vIG9yIG5vdCwgcmV0dXJuIHRoZSBydW50aW1lIG9iamVjdCBzbyB0aGF0IHdlIGNhbiBkZWNsYXJlIHRoZSB2YXJpYWJsZVxuICAvLyByZWdlbmVyYXRvclJ1bnRpbWUgaW4gdGhlIG91dGVyIHNjb3BlLCB3aGljaCBhbGxvd3MgdGhpcyBtb2R1bGUgdG8gYmVcbiAgLy8gaW5qZWN0ZWQgZWFzaWx5IGJ5IGBiaW4vcmVnZW5lcmF0b3IgLS1pbmNsdWRlLXJ1bnRpbWUgc2NyaXB0LmpzYC5cbiAgcmV0dXJuIGV4cG9ydHM7XG5cbn0oXG4gIC8vIElmIHRoaXMgc2NyaXB0IGlzIGV4ZWN1dGluZyBhcyBhIENvbW1vbkpTIG1vZHVsZSwgdXNlIG1vZHVsZS5leHBvcnRzXG4gIC8vIGFzIHRoZSByZWdlbmVyYXRvclJ1bnRpbWUgbmFtZXNwYWNlLiBPdGhlcndpc2UgY3JlYXRlIGEgbmV3IGVtcHR5XG4gIC8vIG9iamVjdC4gRWl0aGVyIHdheSwgdGhlIHJlc3VsdGluZyBvYmplY3Qgd2lsbCBiZSB1c2VkIHRvIGluaXRpYWxpemVcbiAgLy8gdGhlIHJlZ2VuZXJhdG9yUnVudGltZSB2YXJpYWJsZSBhdCB0aGUgdG9wIG9mIHRoaXMgZmlsZS5cbiAgdHlwZW9mIG1vZHVsZSA9PT0gXCJvYmplY3RcIiA/IG1vZHVsZS5leHBvcnRzIDoge31cbikpO1xuXG50cnkge1xuICByZWdlbmVyYXRvclJ1bnRpbWUgPSBydW50aW1lO1xufSBjYXRjaCAoYWNjaWRlbnRhbFN0cmljdE1vZGUpIHtcbiAgLy8gVGhpcyBtb2R1bGUgc2hvdWxkIG5vdCBiZSBydW5uaW5nIGluIHN0cmljdCBtb2RlLCBzbyB0aGUgYWJvdmVcbiAgLy8gYXNzaWdubWVudCBzaG91bGQgYWx3YXlzIHdvcmsgdW5sZXNzIHNvbWV0aGluZyBpcyBtaXNjb25maWd1cmVkLiBKdXN0XG4gIC8vIGluIGNhc2UgcnVudGltZS5qcyBhY2NpZGVudGFsbHkgcnVucyBpbiBzdHJpY3QgbW9kZSwgd2UgY2FuIGVzY2FwZVxuICAvLyBzdHJpY3QgbW9kZSB1c2luZyBhIGdsb2JhbCBGdW5jdGlvbiBjYWxsLiBUaGlzIGNvdWxkIGNvbmNlaXZhYmx5IGZhaWxcbiAgLy8gaWYgYSBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBmb3JiaWRzIHVzaW5nIEZ1bmN0aW9uLCBidXQgaW4gdGhhdCBjYXNlXG4gIC8vIHRoZSBwcm9wZXIgc29sdXRpb24gaXMgdG8gZml4IHRoZSBhY2NpZGVudGFsIHN0cmljdCBtb2RlIHByb2JsZW0uIElmXG4gIC8vIHlvdSd2ZSBtaXNjb25maWd1cmVkIHlvdXIgYnVuZGxlciB0byBmb3JjZSBzdHJpY3QgbW9kZSBhbmQgYXBwbGllZCBhXG4gIC8vIENTUCB0byBmb3JiaWQgRnVuY3Rpb24sIGFuZCB5b3UncmUgbm90IHdpbGxpbmcgdG8gZml4IGVpdGhlciBvZiB0aG9zZVxuICAvLyBwcm9ibGVtcywgcGxlYXNlIGRldGFpbCB5b3VyIHVuaXF1ZSBwcmVkaWNhbWVudCBpbiBhIEdpdEh1YiBpc3N1ZS5cbiAgRnVuY3Rpb24oXCJyXCIsIFwicmVnZW5lcmF0b3JSdW50aW1lID0gclwiKShydW50aW1lKTtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/regenerator-runtime/runtime.js\n"); + +/***/ }), + +/***/ "?506d": +/*!******************************************!*\ + !*** ./utils/resolve-rewrites (ignored) ***! + \******************************************/ +/***/ (function() { + +/* (ignored) */ + +/***/ }) + +}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); } +/******/ var __webpack_exports__ = (__webpack_exec__("./node_modules/next/dist/client/dev/amp-dev.js")); +/******/ _N_E = __webpack_exports__; +/******/ } +]); \ No newline at end of file diff --git a/.next/static/chunks/fallback/amp.js b/.next/static/chunks/fallback/amp.js new file mode 100644 index 0000000..95b9cdd --- /dev/null +++ b/.next/static/chunks/fallback/amp.js @@ -0,0 +1,576 @@ +/* + * 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/). + */ +(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["amp"],{ + +/***/ "./node_modules/@babel/runtime/helpers/arrayLikeToArray.js": +/*!*****************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/arrayLikeToArray.js ***! + \*****************************************************************/ +/***/ (function(module) { + +eval("function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hcnJheUxpa2VUb0FycmF5LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7O0FBRUEseUNBQXlDLFNBQVM7QUFDbEQ7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLG1CQUFtQix5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvYXJyYXlMaWtlVG9BcnJheS5qcz9jZjA5Il0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9hcnJheUxpa2VUb0FycmF5KGFyciwgbGVuKSB7XG4gIGlmIChsZW4gPT0gbnVsbCB8fCBsZW4gPiBhcnIubGVuZ3RoKSBsZW4gPSBhcnIubGVuZ3RoO1xuXG4gIGZvciAodmFyIGkgPSAwLCBhcnIyID0gbmV3IEFycmF5KGxlbik7IGkgPCBsZW47IGkrKykge1xuICAgIGFycjJbaV0gPSBhcnJbaV07XG4gIH1cblxuICByZXR1cm4gYXJyMjtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfYXJyYXlMaWtlVG9BcnJheTtcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/arrayLikeToArray.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/arrayWithHoles.js": +/*!***************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/arrayWithHoles.js ***! + \***************************************************************/ +/***/ (function(module) { + +eval("function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hcnJheVdpdGhIb2xlcy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSx5QkFBeUIsbUJBQW1CLHlCQUF5QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hcnJheVdpdGhIb2xlcy5qcz9hNTI1Il0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9hcnJheVdpdGhIb2xlcyhhcnIpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoYXJyKSkgcmV0dXJuIGFycjtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfYXJyYXlXaXRoSG9sZXM7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/arrayWithHoles.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/assertThisInitialized.js": +/*!**********************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/assertThisInitialized.js ***! + \**********************************************************************/ +/***/ (function(module) { + +eval("function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQuanMuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLHlCQUF5QixtQkFBbUIseUJBQXlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2Fzc2VydFRoaXNJbml0aWFsaXplZC5qcz8yMDE1Il0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikge1xuICBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7XG4gICAgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpO1xuICB9XG5cbiAgcmV0dXJuIHNlbGY7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX2Fzc2VydFRoaXNJbml0aWFsaXplZDtcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/assertThisInitialized.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/asyncToGenerator.js": +/*!*****************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/asyncToGenerator.js ***! + \*****************************************************************/ +/***/ (function(module) { + +eval("function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hc3luY1RvR2VuZXJhdG9yLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLG1CQUFtQix5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvYXN5bmNUb0dlbmVyYXRvci5qcz9kMzEyIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGFzeW5jR2VuZXJhdG9yU3RlcChnZW4sIHJlc29sdmUsIHJlamVjdCwgX25leHQsIF90aHJvdywga2V5LCBhcmcpIHtcbiAgdHJ5IHtcbiAgICB2YXIgaW5mbyA9IGdlbltrZXldKGFyZyk7XG4gICAgdmFyIHZhbHVlID0gaW5mby52YWx1ZTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZWplY3QoZXJyb3IpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChpbmZvLmRvbmUpIHtcbiAgICByZXNvbHZlKHZhbHVlKTtcbiAgfSBlbHNlIHtcbiAgICBQcm9taXNlLnJlc29sdmUodmFsdWUpLnRoZW4oX25leHQsIF90aHJvdyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gX2FzeW5jVG9HZW5lcmF0b3IoZm4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICAgIGFyZ3MgPSBhcmd1bWVudHM7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgIHZhciBnZW4gPSBmbi5hcHBseShzZWxmLCBhcmdzKTtcblxuICAgICAgZnVuY3Rpb24gX25leHQodmFsdWUpIHtcbiAgICAgICAgYXN5bmNHZW5lcmF0b3JTdGVwKGdlbiwgcmVzb2x2ZSwgcmVqZWN0LCBfbmV4dCwgX3Rocm93LCBcIm5leHRcIiwgdmFsdWUpO1xuICAgICAgfVxuXG4gICAgICBmdW5jdGlvbiBfdGhyb3coZXJyKSB7XG4gICAgICAgIGFzeW5jR2VuZXJhdG9yU3RlcChnZW4sIHJlc29sdmUsIHJlamVjdCwgX25leHQsIF90aHJvdywgXCJ0aHJvd1wiLCBlcnIpO1xuICAgICAgfVxuXG4gICAgICBfbmV4dCh1bmRlZmluZWQpO1xuICAgIH0pO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9hc3luY1RvR2VuZXJhdG9yO1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/asyncToGenerator.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/classCallCheck.js": +/*!***************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/classCallCheck.js ***! + \***************************************************************/ +/***/ (function(module) { + +eval("function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9jbGFzc0NhbGxDaGVjay5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLG1CQUFtQix5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvY2xhc3NDYWxsQ2hlY2suanM/YjdhZSJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7XG4gIGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9jbGFzc0NhbGxDaGVjaztcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/classCallCheck.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/construct.js": +/*!**********************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/construct.js ***! + \**********************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ \"./node_modules/@babel/runtime/helpers/setPrototypeOf.js\");\n\nvar isNativeReflectConstruct = __webpack_require__(/*! ./isNativeReflectConstruct.js */ \"./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js\");\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct;\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9jb25zdHJ1Y3QuanMuanMiLCJtYXBwaW5ncyI6IkFBQUEscUJBQXFCLG1CQUFPLENBQUMsb0ZBQXFCOztBQUVsRCwrQkFBK0IsbUJBQU8sQ0FBQyx3R0FBK0I7O0FBRXRFO0FBQ0E7QUFDQTtBQUNBLElBQUkseUJBQXlCLG1CQUFtQix5QkFBeUI7QUFDekUsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsSUFBSSx5QkFBeUIsbUJBQW1CLHlCQUF5QjtBQUN6RTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLG1CQUFtQix5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvY29uc3RydWN0LmpzPzI5MWUiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIHNldFByb3RvdHlwZU9mID0gcmVxdWlyZShcIi4vc2V0UHJvdG90eXBlT2YuanNcIik7XG5cbnZhciBpc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSByZXF1aXJlKFwiLi9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QuanNcIik7XG5cbmZ1bmN0aW9uIF9jb25zdHJ1Y3QoUGFyZW50LCBhcmdzLCBDbGFzcykge1xuICBpZiAoaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkpIHtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IF9jb25zdHJ1Y3QgPSBSZWZsZWN0LmNvbnN0cnVjdDtcbiAgICBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG4gIH0gZWxzZSB7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBfY29uc3RydWN0ID0gZnVuY3Rpb24gX2NvbnN0cnVjdChQYXJlbnQsIGFyZ3MsIENsYXNzKSB7XG4gICAgICB2YXIgYSA9IFtudWxsXTtcbiAgICAgIGEucHVzaC5hcHBseShhLCBhcmdzKTtcbiAgICAgIHZhciBDb25zdHJ1Y3RvciA9IEZ1bmN0aW9uLmJpbmQuYXBwbHkoUGFyZW50LCBhKTtcbiAgICAgIHZhciBpbnN0YW5jZSA9IG5ldyBDb25zdHJ1Y3RvcigpO1xuICAgICAgaWYgKENsYXNzKSBzZXRQcm90b3R5cGVPZihpbnN0YW5jZSwgQ2xhc3MucHJvdG90eXBlKTtcbiAgICAgIHJldHVybiBpbnN0YW5jZTtcbiAgICB9O1xuXG4gICAgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIF9jb25zdHJ1Y3QuYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfY29uc3RydWN0O1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/construct.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/createClass.js": +/*!************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/createClass.js ***! + \************************************************************/ +/***/ (function(module) { + +eval("function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9jcmVhdGVDbGFzcy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBLGtCQUFrQixrQkFBa0I7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHlCQUF5QixtQkFBbUIseUJBQXlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2NyZWF0ZUNsYXNzLmpzPzU0NmIiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTtcbiAgICBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7XG4gICAgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlO1xuICAgIGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpO1xuICB9XG59XG5cbmZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHtcbiAgaWYgKHByb3RvUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7XG4gIGlmIChzdGF0aWNQcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTtcbiAgcmV0dXJuIENvbnN0cnVjdG9yO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9jcmVhdGVDbGFzcztcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/createClass.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/defineProperty.js": +/*!***************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/defineProperty.js ***! + \***************************************************************/ +/***/ (function(module) { + +eval("function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9kZWZpbmVQcm9wZXJ0eS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxJQUFJO0FBQ0o7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLG1CQUFtQix5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZGVmaW5lUHJvcGVydHkuanM/ZDk0NiJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHZhbHVlKSB7XG4gIGlmIChrZXkgaW4gb2JqKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7XG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgd3JpdGFibGU6IHRydWVcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBvYmpba2V5XSA9IHZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIG9iajtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfZGVmaW5lUHJvcGVydHk7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/defineProperty.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js": +/*!***************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/getPrototypeOf.js ***! + \***************************************************************/ +/***/ (function(module) { + +eval("function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9nZXRQcm90b3R5cGVPZi5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUseUJBQXlCLG1CQUFtQix5QkFBeUI7QUFDdkU7QUFDQTs7QUFFQTtBQUNBLHlCQUF5QixtQkFBbUIseUJBQXlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2dldFByb3RvdHlwZU9mLmpzPzkwMDMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2Yobykge1xuICAgIHJldHVybiBvLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2Yobyk7XG4gIH07XG4gIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbiAgcmV0dXJuIF9nZXRQcm90b3R5cGVPZihvKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfZ2V0UHJvdG90eXBlT2Y7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/getPrototypeOf.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/inherits.js": +/*!*********************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/inherits.js ***! + \*********************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ \"./node_modules/@babel/runtime/helpers/setPrototypeOf.js\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbmhlcml0cy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQSxxQkFBcUIsbUJBQU8sQ0FBQyxvRkFBcUI7O0FBRWxEO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLG1CQUFtQix5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW5oZXJpdHMuanM/ZjM1YiJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgc2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKFwiLi9zZXRQcm90b3R5cGVPZi5qc1wiKTtcblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7XG4gIGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7XG4gIH1cblxuICBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHtcbiAgICBjb25zdHJ1Y3Rvcjoge1xuICAgICAgdmFsdWU6IHN1YkNsYXNzLFxuICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9XG4gIH0pO1xuICBpZiAoc3VwZXJDbGFzcykgc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9pbmhlcml0cztcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/inherits.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/isNativeFunction.js": +/*!*****************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/isNativeFunction.js ***! + \*****************************************************************/ +/***/ (function(module) { + +eval("function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nmodule.exports = _isNativeFunction;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pc05hdGl2ZUZ1bmN0aW9uLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHlCQUF5QixtQkFBbUIseUJBQXlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2lzTmF0aXZlRnVuY3Rpb24uanM/OGM4NSJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfaXNOYXRpdmVGdW5jdGlvbihmbikge1xuICByZXR1cm4gRnVuY3Rpb24udG9TdHJpbmcuY2FsbChmbikuaW5kZXhPZihcIltuYXRpdmUgY29kZV1cIikgIT09IC0xO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9pc05hdGl2ZUZ1bmN0aW9uO1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/isNativeFunction.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js": +/*!*************************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js ***! + \*************************************************************************/ +/***/ (function(module) { + +eval("function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nmodule.exports = _isNativeReflectConstruct;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QuanMuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxnRkFBZ0Y7QUFDaEY7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLG1CQUFtQix5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0LmpzPzFkNTQiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHtcbiAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiIHx8ICFSZWZsZWN0LmNvbnN0cnVjdCkgcmV0dXJuIGZhbHNlO1xuICBpZiAoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSkgcmV0dXJuIGZhbHNlO1xuICBpZiAodHlwZW9mIFByb3h5ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB0cnVlO1xuXG4gIHRyeSB7XG4gICAgQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sIFtdLCBmdW5jdGlvbiAoKSB7fSkpO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdDtcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js ***! + \*********************************************************************/ +/***/ (function(module) { + +eval("function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pdGVyYWJsZVRvQXJyYXlMaW1pdC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0EsNEJBQTRCLCtCQUErQjtBQUMzRDs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLHlCQUF5QixtQkFBbUIseUJBQXlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2l0ZXJhYmxlVG9BcnJheUxpbWl0LmpzP2FmZTciXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2l0ZXJhYmxlVG9BcnJheUxpbWl0KGFyciwgaSkge1xuICB2YXIgX2kgPSBhcnIgPT0gbnVsbCA/IG51bGwgOiB0eXBlb2YgU3ltYm9sICE9PSBcInVuZGVmaW5lZFwiICYmIGFycltTeW1ib2wuaXRlcmF0b3JdIHx8IGFycltcIkBAaXRlcmF0b3JcIl07XG5cbiAgaWYgKF9pID09IG51bGwpIHJldHVybjtcbiAgdmFyIF9hcnIgPSBbXTtcbiAgdmFyIF9uID0gdHJ1ZTtcbiAgdmFyIF9kID0gZmFsc2U7XG5cbiAgdmFyIF9zLCBfZTtcblxuICB0cnkge1xuICAgIGZvciAoX2kgPSBfaS5jYWxsKGFycik7ICEoX24gPSAoX3MgPSBfaS5uZXh0KCkpLmRvbmUpOyBfbiA9IHRydWUpIHtcbiAgICAgIF9hcnIucHVzaChfcy52YWx1ZSk7XG5cbiAgICAgIGlmIChpICYmIF9hcnIubGVuZ3RoID09PSBpKSBicmVhaztcbiAgICB9XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIF9kID0gdHJ1ZTtcbiAgICBfZSA9IGVycjtcbiAgfSBmaW5hbGx5IHtcbiAgICB0cnkge1xuICAgICAgaWYgKCFfbiAmJiBfaVtcInJldHVyblwiXSAhPSBudWxsKSBfaVtcInJldHVyblwiXSgpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAoX2QpIHRocm93IF9lO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBfYXJyO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9pdGVyYWJsZVRvQXJyYXlMaW1pdDtcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/nonIterableRest.js": +/*!****************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/nonIterableRest.js ***! + \****************************************************************/ +/***/ (function(module) { + +eval("function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableRest;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9ub25JdGVyYWJsZVJlc3QuanMuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLG1CQUFtQix5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvbm9uSXRlcmFibGVSZXN0LmpzPzRjMjAiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX25vbkl0ZXJhYmxlUmVzdCgpIHtcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfbm9uSXRlcmFibGVSZXN0O1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/nonIterableRest.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js": +/*!**************************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js ***! + \**************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var _typeof = (__webpack_require__(/*! @babel/runtime/helpers/typeof */ \"./node_modules/@babel/runtime/helpers/typeof.js\")[\"default\"]);\n\nvar assertThisInitialized = __webpack_require__(/*! ./assertThisInitialized.js */ \"./node_modules/@babel/runtime/helpers/assertThisInitialized.js\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0hBQW1EOztBQUVqRSw0QkFBNEIsbUJBQU8sQ0FBQyxrR0FBNEI7O0FBRWhFO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSx5QkFBeUIsbUJBQW1CLHlCQUF5QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuLmpzPzBlYjkiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIF90eXBlb2YgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2ZcIilbXCJkZWZhdWx0XCJdO1xuXG52YXIgYXNzZXJ0VGhpc0luaXRpYWxpemVkID0gcmVxdWlyZShcIi4vYXNzZXJ0VGhpc0luaXRpYWxpemVkLmpzXCIpO1xuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7XG4gIGlmIChjYWxsICYmIChfdHlwZW9mKGNhbGwpID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpKSB7XG4gICAgcmV0dXJuIGNhbGw7XG4gIH0gZWxzZSBpZiAoY2FsbCAhPT0gdm9pZCAwKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkXCIpO1xuICB9XG5cbiAgcmV0dXJuIGFzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjtcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/setPrototypeOf.js": +/*!***************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/setPrototypeOf.js ***! + \***************************************************************/ +/***/ (function(module) { + +eval("function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9zZXRQcm90b3R5cGVPZi5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLEVBQUUseUJBQXlCLG1CQUFtQix5QkFBeUI7QUFDdkU7QUFDQTs7QUFFQTtBQUNBLHlCQUF5QixtQkFBbUIseUJBQXlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3NldFByb3RvdHlwZU9mLmpzPzA1MjYiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSBfc2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHtcbiAgICBvLl9fcHJvdG9fXyA9IHA7XG4gICAgcmV0dXJuIG87XG4gIH07XG5cbiAgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuICByZXR1cm4gX3NldFByb3RvdHlwZU9mKG8sIHApO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9zZXRQcm90b3R5cGVPZjtcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/setPrototypeOf.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/slicedToArray.js": +/*!**************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/slicedToArray.js ***! + \**************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var arrayWithHoles = __webpack_require__(/*! ./arrayWithHoles.js */ \"./node_modules/@babel/runtime/helpers/arrayWithHoles.js\");\n\nvar iterableToArrayLimit = __webpack_require__(/*! ./iterableToArrayLimit.js */ \"./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js\");\n\nvar unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ \"./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js\");\n\nvar nonIterableRest = __webpack_require__(/*! ./nonIterableRest.js */ \"./node_modules/@babel/runtime/helpers/nonIterableRest.js\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9zbGljZWRUb0FycmF5LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBLHFCQUFxQixtQkFBTyxDQUFDLG9GQUFxQjs7QUFFbEQsMkJBQTJCLG1CQUFPLENBQUMsZ0dBQTJCOztBQUU5RCxpQ0FBaUMsbUJBQU8sQ0FBQyw0R0FBaUM7O0FBRTFFLHNCQUFzQixtQkFBTyxDQUFDLHNGQUFzQjs7QUFFcEQ7QUFDQTtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLG1CQUFtQix5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvc2xpY2VkVG9BcnJheS5qcz9mNTBjIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBhcnJheVdpdGhIb2xlcyA9IHJlcXVpcmUoXCIuL2FycmF5V2l0aEhvbGVzLmpzXCIpO1xuXG52YXIgaXRlcmFibGVUb0FycmF5TGltaXQgPSByZXF1aXJlKFwiLi9pdGVyYWJsZVRvQXJyYXlMaW1pdC5qc1wiKTtcblxudmFyIHVuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5ID0gcmVxdWlyZShcIi4vdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkuanNcIik7XG5cbnZhciBub25JdGVyYWJsZVJlc3QgPSByZXF1aXJlKFwiLi9ub25JdGVyYWJsZVJlc3QuanNcIik7XG5cbmZ1bmN0aW9uIF9zbGljZWRUb0FycmF5KGFyciwgaSkge1xuICByZXR1cm4gYXJyYXlXaXRoSG9sZXMoYXJyKSB8fCBpdGVyYWJsZVRvQXJyYXlMaW1pdChhcnIsIGkpIHx8IHVuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KGFyciwgaSkgfHwgbm9uSXRlcmFibGVSZXN0KCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX3NsaWNlZFRvQXJyYXk7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/slicedToArray.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/typeof.js": +/*!*******************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/typeof.js ***! + \*******************************************************/ +/***/ (function(module) { + +eval("function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2YuanMuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxJQUFJLHlCQUF5QixtQkFBbUIseUJBQXlCO0FBQ3pFLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUEsSUFBSSx5QkFBeUIsbUJBQW1CLHlCQUF5QjtBQUN6RTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLG1CQUFtQix5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvdHlwZW9mLmpzP2YzM2UiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX3R5cGVvZihvYmopIHtcbiAgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiO1xuXG4gIGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikge1xuICAgIG1vZHVsZS5leHBvcnRzID0gX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7XG4gICAgICByZXR1cm4gdHlwZW9mIG9iajtcbiAgICB9O1xuXG4gICAgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuICB9IGVsc2Uge1xuICAgIG1vZHVsZS5leHBvcnRzID0gX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7XG4gICAgICByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajtcbiAgICB9O1xuXG4gICAgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIF90eXBlb2Yob2JqKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfdHlwZW9mO1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/typeof.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js": +/*!***************************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js ***! + \***************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ \"./node_modules/@babel/runtime/helpers/arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQSx1QkFBdUIsbUJBQU8sQ0FBQyx3RkFBdUI7O0FBRXREO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSx5QkFBeUIsbUJBQW1CLHlCQUF5QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheS5qcz9kYTU3Il0sInNvdXJjZXNDb250ZW50IjpbInZhciBhcnJheUxpa2VUb0FycmF5ID0gcmVxdWlyZShcIi4vYXJyYXlMaWtlVG9BcnJheS5qc1wiKTtcblxuZnVuY3Rpb24gX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KG8sIG1pbkxlbikge1xuICBpZiAoIW8pIHJldHVybjtcbiAgaWYgKHR5cGVvZiBvID09PSBcInN0cmluZ1wiKSByZXR1cm4gYXJyYXlMaWtlVG9BcnJheShvLCBtaW5MZW4pO1xuICB2YXIgbiA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvKS5zbGljZSg4LCAtMSk7XG4gIGlmIChuID09PSBcIk9iamVjdFwiICYmIG8uY29uc3RydWN0b3IpIG4gPSBvLmNvbnN0cnVjdG9yLm5hbWU7XG4gIGlmIChuID09PSBcIk1hcFwiIHx8IG4gPT09IFwiU2V0XCIpIHJldHVybiBBcnJheS5mcm9tKG8pO1xuICBpZiAobiA9PT0gXCJBcmd1bWVudHNcIiB8fCAvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSkgcmV0dXJuIGFycmF5TGlrZVRvQXJyYXkobywgbWluTGVuKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXk7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/wrapNativeSuper.js": +/*!****************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/wrapNativeSuper.js ***! + \****************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var getPrototypeOf = __webpack_require__(/*! ./getPrototypeOf.js */ \"./node_modules/@babel/runtime/helpers/getPrototypeOf.js\");\n\nvar setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ \"./node_modules/@babel/runtime/helpers/setPrototypeOf.js\");\n\nvar isNativeFunction = __webpack_require__(/*! ./isNativeFunction.js */ \"./node_modules/@babel/runtime/helpers/isNativeFunction.js\");\n\nvar construct = __webpack_require__(/*! ./construct.js */ \"./node_modules/@babel/runtime/helpers/construct.js\");\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _wrapNativeSuper(Class);\n}\n\nmodule.exports = _wrapNativeSuper;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy93cmFwTmF0aXZlU3VwZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQUEscUJBQXFCLG1CQUFPLENBQUMsb0ZBQXFCOztBQUVsRCxxQkFBcUIsbUJBQU8sQ0FBQyxvRkFBcUI7O0FBRWxELHVCQUF1QixtQkFBTyxDQUFDLHdGQUF1Qjs7QUFFdEQsZ0JBQWdCLG1CQUFPLENBQUMsMEVBQWdCOztBQUV4QztBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQSxFQUFFLHlCQUF5QixtQkFBbUIseUJBQXlCO0FBQ3ZFO0FBQ0E7O0FBRUE7QUFDQSx5QkFBeUIsbUJBQW1CLHlCQUF5QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy93cmFwTmF0aXZlU3VwZXIuanM/ZjUyMSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZ2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKFwiLi9nZXRQcm90b3R5cGVPZi5qc1wiKTtcblxudmFyIHNldFByb3RvdHlwZU9mID0gcmVxdWlyZShcIi4vc2V0UHJvdG90eXBlT2YuanNcIik7XG5cbnZhciBpc05hdGl2ZUZ1bmN0aW9uID0gcmVxdWlyZShcIi4vaXNOYXRpdmVGdW5jdGlvbi5qc1wiKTtcblxudmFyIGNvbnN0cnVjdCA9IHJlcXVpcmUoXCIuL2NvbnN0cnVjdC5qc1wiKTtcblxuZnVuY3Rpb24gX3dyYXBOYXRpdmVTdXBlcihDbGFzcykge1xuICB2YXIgX2NhY2hlID0gdHlwZW9mIE1hcCA9PT0gXCJmdW5jdGlvblwiID8gbmV3IE1hcCgpIDogdW5kZWZpbmVkO1xuXG4gIG1vZHVsZS5leHBvcnRzID0gX3dyYXBOYXRpdmVTdXBlciA9IGZ1bmN0aW9uIF93cmFwTmF0aXZlU3VwZXIoQ2xhc3MpIHtcbiAgICBpZiAoQ2xhc3MgPT09IG51bGwgfHwgIWlzTmF0aXZlRnVuY3Rpb24oQ2xhc3MpKSByZXR1cm4gQ2xhc3M7XG5cbiAgICBpZiAodHlwZW9mIENsYXNzICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvblwiKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIF9jYWNoZSAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgaWYgKF9jYWNoZS5oYXMoQ2xhc3MpKSByZXR1cm4gX2NhY2hlLmdldChDbGFzcyk7XG5cbiAgICAgIF9jYWNoZS5zZXQoQ2xhc3MsIFdyYXBwZXIpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIFdyYXBwZXIoKSB7XG4gICAgICByZXR1cm4gY29uc3RydWN0KENsYXNzLCBhcmd1bWVudHMsIGdldFByb3RvdHlwZU9mKHRoaXMpLmNvbnN0cnVjdG9yKTtcbiAgICB9XG5cbiAgICBXcmFwcGVyLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoQ2xhc3MucHJvdG90eXBlLCB7XG4gICAgICBjb25zdHJ1Y3Rvcjoge1xuICAgICAgICB2YWx1ZTogV3JhcHBlcixcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gc2V0UHJvdG90eXBlT2YoV3JhcHBlciwgQ2xhc3MpO1xuICB9O1xuXG4gIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbiAgcmV0dXJuIF93cmFwTmF0aXZlU3VwZXIoQ2xhc3MpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF93cmFwTmF0aXZlU3VwZXI7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/wrapNativeSuper.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/regenerator/index.js": +/*!**********************************************************!*\ + !*** ./node_modules/@babel/runtime/regenerator/index.js ***! + \**********************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("module.exports = __webpack_require__(/*! regenerator-runtime */ \"./node_modules/regenerator-runtime/runtime.js\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvcmVnZW5lcmF0b3IvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQUEsZ0hBQStDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9yZWdlbmVyYXRvci9pbmRleC5qcz84MTQ0Il0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcInJlZ2VuZXJhdG9yLXJ1bnRpbWVcIik7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/regenerator/index.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/dev/amp-dev.js": +/*!******************************************************!*\ + !*** ./node_modules/next/dist/client/dev/amp-dev.js ***! + \******************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _regeneratorRuntime = __webpack_require__(/*! ./node_modules/@babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n\nvar _fouc = __webpack_require__(/*! ./fouc */ \"./node_modules/next/dist/client/dev/fouc.js\");\n\nvar _onDemandEntriesClient = _interopRequireDefault(__webpack_require__(/*! ./on-demand-entries-client */ \"./node_modules/next/dist/client/dev/on-demand-entries-client.js\"));\n\nvar _websocket = __webpack_require__(/*! ./error-overlay/websocket */ \"./node_modules/next/dist/client/dev/error-overlay/websocket.js\");\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar data = JSON.parse(document.getElementById('__NEXT_DATA__').textContent);\nvar assetPrefix = data.assetPrefix,\n page = data.page;\nassetPrefix = assetPrefix || '';\nvar mostRecentHash = null;\n/* eslint-disable-next-line */\n\nvar curHash = __webpack_require__.h();\nvar hotUpdatePath = assetPrefix + (assetPrefix.endsWith('/') ? '' : '/') + '_next/static/webpack/'; // Is there a newer version of this code available?\n\nfunction isUpdateAvailable() {\n // __webpack_hash__ is the hash of the current compilation.\n // It's a global variable injected by Webpack.\n\n /* eslint-disable-next-line */\n return mostRecentHash !== __webpack_require__.h();\n} // Webpack disallows updates in other states.\n\n\nfunction canApplyUpdates() {\n return module.hot.status() === 'idle';\n}\n\nfunction _tryApplyUpdates() {\n _tryApplyUpdates = // This function reads code updates on the fly and hard\n // reloads the page when it has changed.\n _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var res, jsonData, curPage, pageUpdated;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!(!isUpdateAvailable() || !canApplyUpdates())) {\n _context.next = 2;\n break;\n }\n\n return _context.abrupt(\"return\");\n\n case 2:\n _context.prev = 2;\n _context.next = 5;\n return fetch(typeof __webpack_require__.j !== 'undefined' ? \"\".concat(hotUpdatePath).concat(curHash, \".\").concat(__webpack_require__.j, \".hot-update.json\") : \"\".concat(hotUpdatePath).concat(curHash, \".hot-update.json\"));\n\n case 5:\n res = _context.sent;\n _context.next = 8;\n return res.json();\n\n case 8:\n jsonData = _context.sent;\n curPage = page === '/' ? 'index' : page; // webpack 5 uses an array instead\n\n pageUpdated = (Array.isArray(jsonData.c) ? jsonData.c : Object.keys(jsonData.c)).some(function (mod) {\n return mod.indexOf(\"pages\".concat(curPage.substr(0, 1) === '/' ? curPage : \"/\".concat(curPage))) !== -1 || mod.indexOf(\"pages\".concat(curPage.substr(0, 1) === '/' ? curPage : \"/\".concat(curPage)).replace(/\\//g, '\\\\')) !== -1;\n });\n\n if (pageUpdated) {\n document.location.reload(true);\n } else {\n curHash = mostRecentHash;\n }\n\n _context.next = 18;\n break;\n\n case 14:\n _context.prev = 14;\n _context.t0 = _context[\"catch\"](2);\n console.error('Error occurred checking for update', _context.t0);\n document.location.reload(true);\n\n case 18:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[2, 14]]);\n }));\n return _tryApplyUpdates.apply(this, arguments);\n}\n\nfunction tryApplyUpdates() {\n return _tryApplyUpdates.apply(this, arguments);\n}\n\n(0, _websocket).addMessageListener(function (event) {\n if (event.data === \"\\uD83D\\uDC93\") {\n return;\n }\n\n try {\n var message = JSON.parse(event.data);\n\n if (message.action === 'sync' || message.action === 'built') {\n if (!message.hash) {\n return;\n }\n\n mostRecentHash = message.hash;\n tryApplyUpdates();\n } else if (message.action === 'reloadPage') {\n document.location.reload(true);\n }\n } catch (ex) {\n console.warn('Invalid HMR message: ' + event.data + '\\n' + ex);\n }\n});\n(0, _websocket).connectHMR({\n assetPrefix: assetPrefix,\n path: '/_next/webpack-hmr'\n});\n(0, _fouc).displayContent();\n(0, _onDemandEntriesClient)[\"default\"]();\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvYW1wLWRldi5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7Ozs7QUFDYixJQUFJQSxLQUFLLEdBQUdDLG1CQUFPLENBQUMsMkRBQUQsQ0FBbkI7O0FBQ0EsSUFBSUMsc0JBQXNCLEdBQUdDLHNCQUFzQixDQUFDRixtQkFBTyxDQUFDLG1HQUFELENBQVIsQ0FBbkQ7O0FBQ0EsSUFBSUcsVUFBVSxHQUFHSCxtQkFBTyxDQUFDLGlHQUFELENBQXhCOztBQUNBLFNBQVNJLGtCQUFULENBQTRCQyxHQUE1QixFQUFpQ0MsT0FBakMsRUFBMENDLE1BQTFDLEVBQWtEQyxLQUFsRCxFQUF5REMsTUFBekQsRUFBaUVDLEdBQWpFLEVBQXNFQyxHQUF0RSxFQUEyRTtBQUN2RSxNQUFJO0FBQ0EsUUFBSUMsSUFBSSxHQUFHUCxHQUFHLENBQUNLLEdBQUQsQ0FBSCxDQUFTQyxHQUFULENBQVg7QUFDQSxRQUFJRSxLQUFLLEdBQUdELElBQUksQ0FBQ0MsS0FBakI7QUFDSCxHQUhELENBR0UsT0FBT0MsS0FBUCxFQUFjO0FBQ1pQLElBQUFBLE1BQU0sQ0FBQ08sS0FBRCxDQUFOO0FBQ0E7QUFDSDs7QUFDRCxNQUFJRixJQUFJLENBQUNHLElBQVQsRUFBZTtBQUNYVCxJQUFBQSxPQUFPLENBQUNPLEtBQUQsQ0FBUDtBQUNILEdBRkQsTUFFTztBQUNIRyxJQUFBQSxPQUFPLENBQUNWLE9BQVIsQ0FBZ0JPLEtBQWhCLEVBQXVCSSxJQUF2QixDQUE0QlQsS0FBNUIsRUFBbUNDLE1BQW5DO0FBQ0g7QUFDSjs7QUFDRCxTQUFTUyxpQkFBVCxDQUEyQkMsRUFBM0IsRUFBK0I7QUFDM0IsU0FBTyxZQUFXO0FBQ2QsUUFBSUMsSUFBSSxHQUFHLElBQVg7QUFBQSxRQUFpQkMsSUFBSSxHQUFHQyxTQUF4QjtBQUNBLFdBQU8sSUFBSU4sT0FBSixDQUFZLFVBQVNWLE9BQVQsRUFBa0JDLE1BQWxCLEVBQTBCO0FBQ3pDLFVBQUlGLEdBQUcs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QWpCLENBQWhCOztBQUNBLFFBQUkwQyxPQUFPLENBQUNDLE1BQVIsS0FBbUIsTUFBbkIsSUFBNkJELE9BQU8sQ0FBQ0MsTUFBUixLQUFtQixPQUFwRCxFQUE2RDtBQUN6RCxVQUFJLENBQUNELE9BQU8sQ0FBQ0UsSUFBYixFQUFtQjtBQUNmO0FBQ0g7O0FBQ0RwQyxNQUFBQSxjQUFjLEdBQUdrQyxPQUFPLENBQUNFLElBQXpCO0FBQ0FMLE1BQUFBLGVBQWU7QUFDbEIsS0FORCxNQU1PLElBQUlHLE9BQU8sQ0FBQ0MsTUFBUixLQUFtQixZQUF2QixFQUFxQztBQUN4Q3hDLE1BQUFBLFFBQVEsQ0FBQ2lDLFFBQVQsQ0FBa0JDLE1BQWxCLENBQXlCLElBQXpCO0FBQ0g7QUFDSixHQVhELENBV0UsT0FBT1EsRUFBUCxFQUFXO0FBQ1RQLElBQUFBLE9BQU8sQ0FBQ1EsSUFBUixDQUFhLDBCQUEwQkwsS0FBSyxDQUFDekMsSUFBaEMsR0FBdUMsSUFBdkMsR0FBOEM2QyxFQUEzRDtBQUNIO0FBQ0osQ0FsQkQ7QUFtQkEsQ0FBQyxHQUFHdEUsVUFBSixFQUFnQndFLFVBQWhCLENBQTJCO0FBQ3ZCekMsRUFBQUEsV0FBVyxFQUFYQSxXQUR1QjtBQUV2QjBDLEVBQUFBLElBQUksRUFBRTtBQUZpQixDQUEzQjtBQUlBLENBQUMsR0FBRzdFLEtBQUosRUFBVzhFLGNBQVg7QUFDQSxDQUFDLEdBQUc1RSxzQkFBSiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvYW1wLWRldi5qcz81Y2NmIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9mb3VjID0gcmVxdWlyZShcIi4vZm91Y1wiKTtcbnZhciBfb25EZW1hbmRFbnRyaWVzQ2xpZW50ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9vbi1kZW1hbmQtZW50cmllcy1jbGllbnRcIikpO1xudmFyIF93ZWJzb2NrZXQgPSByZXF1aXJlKFwiLi9lcnJvci1vdmVybGF5L3dlYnNvY2tldFwiKTtcbmZ1bmN0aW9uIGFzeW5jR2VuZXJhdG9yU3RlcChnZW4sIHJlc29sdmUsIHJlamVjdCwgX25leHQsIF90aHJvdywga2V5LCBhcmcpIHtcbiAgICB0cnkge1xuICAgICAgICB2YXIgaW5mbyA9IGdlbltrZXldKGFyZyk7XG4gICAgICAgIHZhciB2YWx1ZSA9IGluZm8udmFsdWU7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoaW5mby5kb25lKSB7XG4gICAgICAgIHJlc29sdmUodmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIFByb21pc2UucmVzb2x2ZSh2YWx1ZSkudGhlbihfbmV4dCwgX3Rocm93KTtcbiAgICB9XG59XG5mdW5jdGlvbiBfYXN5bmNUb0dlbmVyYXRvcihmbikge1xuICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIHNlbGYgPSB0aGlzLCBhcmdzID0gYXJndW1lbnRzO1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgICB2YXIgZ2VuID0gZm4uYXBwbHkoc2VsZiwgYXJncyk7XG4gICAgICAgICAgICBmdW5jdGlvbiBfbmV4dCh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIGFzeW5jR2VuZXJhdG9yU3RlcChnZW4sIHJlc29sdmUsIHJlamVjdCwgX25leHQsIF90aHJvdywgXCJuZXh0XCIsIHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZ1bmN0aW9uIF90aHJvdyhlcnIpIHtcbiAgICAgICAgICAgICAgICBhc3luY0dlbmVyYXRvclN0ZXAoZ2VuLCByZXNvbHZlLCByZWplY3QsIF9uZXh0LCBfdGhyb3csIFwidGhyb3dcIiwgZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF9uZXh0KHVuZGVmaW5lZCk7XG4gICAgICAgIH0pO1xuICAgIH07XG59XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5jb25zdCBkYXRhID0gSlNPTi5wYXJzZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnX19ORVhUX0RBVEFfXycpLnRleHRDb250ZW50KTtcbmxldCB7IGFzc2V0UHJlZml4ICwgcGFnZSAgfSA9IGRhdGE7XG5hc3NldFByZWZpeCA9IGFzc2V0UHJlZml4IHx8ICcnO1xubGV0IG1vc3RSZWNlbnRIYXNoID0gbnVsbDtcbi8qIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSAqLyBsZXQgY3VySGFzaCA9IF9fd2VicGFja19oYXNoX187XG5jb25zdCBob3RVcGRhdGVQYXRoID0gYXNzZXRQcmVmaXggKyAoYXNzZXRQcmVmaXguZW5kc1dpdGgoJy8nKSA/ICcnIDogJy8nKSArICdfbmV4dC9zdGF0aWMvd2VicGFjay8nO1xuLy8gSXMgdGhlcmUgYSBuZXdlciB2ZXJzaW9uIG9mIHRoaXMgY29kZSBhdmFpbGFibGU/XG5mdW5jdGlvbiBpc1VwZGF0ZUF2YWlsYWJsZSgpIHtcbiAgICAvLyBfX3dlYnBhY2tfaGFzaF9fIGlzIHRoZSBoYXNoIG9mIHRoZSBjdXJyZW50IGNvbXBpbGF0aW9uLlxuICAgIC8vIEl0J3MgYSBnbG9iYWwgdmFyaWFibGUgaW5qZWN0ZWQgYnkgV2VicGFjay5cbiAgICAvKiBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgKi8gcmV0dXJuIG1vc3RSZWNlbnRIYXNoICE9PSBfX3dlYnBhY2tfaGFzaF9fO1xufVxuLy8gV2VicGFjayBkaXNhbGxvd3MgdXBkYXRlcyBpbiBvdGhlciBzdGF0ZXMuXG5mdW5jdGlvbiBjYW5BcHBseVVwZGF0ZXMoKSB7XG4gICAgcmV0dXJuIG1vZHVsZS5ob3Quc3RhdHVzKCkgPT09ICdpZGxlJztcbn1cbmZ1bmN0aW9uIF90cnlBcHBseVVwZGF0ZXMoKSB7XG4gICAgX3RyeUFwcGx5VXBkYXRlcyA9IC8vIFRoaXMgZnVuY3Rpb24gcmVhZHMgY29kZSB1cGRhdGVzIG9uIHRoZSBmbHkgYW5kIGhhcmRcbiAgICAvLyByZWxvYWRzIHRoZSBwYWdlIHdoZW4gaXQgaGFzIGNoYW5nZWQuXG4gICAgX2FzeW5jVG9HZW5lcmF0b3IoZnVuY3Rpb24qKCkge1xuICAgICAgICBpZiAoIWlzVXBkYXRlQXZhaWxhYmxlKCkgfHwgIWNhbkFwcGx5VXBkYXRlcygpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlcyA9IHlpZWxkIGZldGNoKHR5cGVvZiBfX3dlYnBhY2tfcnVudGltZV9pZF9fICE9PSAndW5kZWZpbmVkJyA/IGAke2hvdFVwZGF0ZVBhdGh9JHtjdXJIYXNofS4ke19fd2VicGFja19ydW50aW1lX2lkX199LmhvdC11cGRhdGUuanNvbmAgOiBgJHtob3RVcGRhdGVQYXRofSR7Y3VySGFzaH0uaG90LXVwZGF0ZS5qc29uYCk7XG4gICAgICAgICAgICBjb25zdCBqc29uRGF0YSA9IHlpZWxkIHJlcy5qc29uKCk7XG4gICAgICAgICAgICBjb25zdCBjdXJQYWdlID0gcGFnZSA9PT0gJy8nID8gJ2luZGV4JyA6IHBhZ2U7XG4gICAgICAgICAgICAvLyB3ZWJwYWNrIDUgdXNlcyBhbiBhcnJheSBpbnN0ZWFkXG4gICAgICAgICAgICBjb25zdCBwYWdlVXBkYXRlZCA9IChBcnJheS5pc0FycmF5KGpzb25EYXRhLmMpID8ganNvbkRhdGEuYyA6IE9iamVjdC5rZXlzKGpzb25EYXRhLmMpKS5zb21lKChtb2QpPT57XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vZC5pbmRleE9mKGBwYWdlcyR7Y3VyUGFnZS5zdWJzdHIoMCwgMSkgPT09ICcvJyA/IGN1clBhZ2UgOiBgLyR7Y3VyUGFnZX1gfWApICE9PSAtMSB8fCBtb2QuaW5kZXhPZihgcGFnZXMke2N1clBhZ2Uuc3Vic3RyKDAsIDEpID09PSAnLycgPyBjdXJQYWdlIDogYC8ke2N1clBhZ2V9YH1gLnJlcGxhY2UoL1xcLy9nLCAnXFxcXCcpKSAhPT0gLTE7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChwYWdlVXBkYXRlZCkge1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLnJlbG9hZCh0cnVlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY3VySGFzaCA9IG1vc3RSZWNlbnRIYXNoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIG9jY3VycmVkIGNoZWNraW5nIGZvciB1cGRhdGUnLCBlcnIpO1xuICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24ucmVsb2FkKHRydWUpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIF90cnlBcHBseVVwZGF0ZXMuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cbmZ1bmN0aW9uIHRyeUFwcGx5VXBkYXRlcygpIHtcbiAgICByZXR1cm4gX3RyeUFwcGx5VXBkYXRlcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufVxuKDAsIF93ZWJzb2NrZXQpLmFkZE1lc3NhZ2VMaXN0ZW5lcigoZXZlbnQpPT57XG4gICAgaWYgKGV2ZW50LmRhdGEgPT09ICdcXHVEODNEXFx1REM5MycpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gSlNPTi5wYXJzZShldmVudC5kYXRhKTtcbiAgICAgICAgaWYgKG1lc3NhZ2UuYWN0aW9uID09PSAnc3luYycgfHwgbWVzc2FnZS5hY3Rpb24gPT09ICdidWlsdCcpIHtcbiAgICAgICAgICAgIGlmICghbWVzc2FnZS5oYXNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbW9zdFJlY2VudEhhc2ggPSBtZXNzYWdlLmhhc2g7XG4gICAgICAgICAgICB0cnlBcHBseVVwZGF0ZXMoKTtcbiAgICAgICAgfSBlbHNlIGlmIChtZXNzYWdlLmFjdGlvbiA9PT0gJ3JlbG9hZFBhZ2UnKSB7XG4gICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5yZWxvYWQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICB9IGNhdGNoIChleCkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ0ludmFsaWQgSE1SIG1lc3NhZ2U6ICcgKyBldmVudC5kYXRhICsgJ1xcbicgKyBleCk7XG4gICAgfVxufSk7XG4oMCwgX3dlYnNvY2tldCkuY29ubmVjdEhNUih7XG4gICAgYXNzZXRQcmVmaXgsXG4gICAgcGF0aDogJy9fbmV4dC93ZWJwYWNrLWhtcidcbn0pO1xuKDAsIF9mb3VjKS5kaXNwbGF5Q29udGVudCgpO1xuKDAsIF9vbkRlbWFuZEVudHJpZXNDbGllbnQpLmRlZmF1bHQoKTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YW1wLWRldi5qcy5tYXAiXSwibmFtZXMiOlsiX2ZvdWMiLCJyZXF1aXJlIiwiX29uRGVtYW5kRW50cmllc0NsaWVudCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfd2Vic29ja2V0IiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwicmVzb2x2ZSIsInJlamVjdCIsIl9uZXh0IiwiX3Rocm93Iiwia2V5IiwiYXJnIiwiaW5mbyIsInZhbHVlIiwiZXJyb3IiLCJkb25lIiwiUHJvbWlzZSIsInRoZW4iLCJfYXN5bmNUb0dlbmVyYXRvciIsImZuIiwic2VsZiIsImFyZ3MiLCJhcmd1bWVudHMiLCJhcHBseSIsImVyciIsInVuZGVmaW5lZCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkYXRhIiwiSlNPTiIsInBhcnNlIiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsInRleHRDb250ZW50IiwiYXNzZXRQcmVmaXgiLCJwYWdlIiwibW9zdFJlY2VudEhhc2giLCJjdXJIYXNoIiwiX193ZWJwYWNrX2hhc2hfXyIsImhvdFVwZGF0ZVBhdGgiLCJlbmRzV2l0aCIsImlzVXBkYXRlQXZhaWxhYmxlIiwiY2FuQXBwbHlVcGRhdGVzIiwibW9kdWxlIiwiaG90Iiwic3RhdHVzIiwiX3RyeUFwcGx5VXBkYXRlcyIsImZldGNoIiwiX193ZWJwYWNrX3J1bnRpbWVfaWRfXyIsInJlcyIsImpzb24iLCJqc29uRGF0YSIsImN1clBhZ2UiLCJwYWdlVXBkYXRlZCIsIkFycmF5IiwiaXNBcnJheSIsImMiLCJPYmplY3QiLCJrZXlzIiwic29tZSIsIm1vZCIsImluZGV4T2YiLCJzdWJzdHIiLCJyZXBsYWNlIiwibG9jYXRpb24iLCJyZWxvYWQiLCJjb25zb2xlIiwidHJ5QXBwbHlVcGRhdGVzIiwiYWRkTWVzc2FnZUxpc3RlbmVyIiwiZXZlbnQiLCJtZXNzYWdlIiwiYWN0aW9uIiwiaGFzaCIsImV4Iiwid2FybiIsImNvbm5lY3RITVIiLCJwYXRoIiwiZGlzcGxheUNvbnRlbnQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/amp-dev.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/dev/error-overlay/websocket.js": +/*!**********************************************************************!*\ + !*** ./node_modules/next/dist/client/dev/error-overlay/websocket.js ***! + \**********************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.addMessageListener = addMessageListener;\nexports.sendMessage = sendMessage;\nexports.connectHMR = connectHMR;\nvar source;\nvar eventCallbacks = [];\nvar lastActivity = Date.now();\n\nfunction getSocketProtocol(assetPrefix) {\n var protocol = location.protocol;\n\n try {\n // assetPrefix is a url\n protocol = new URL(assetPrefix).protocol;\n } catch (_) {}\n\n return protocol === 'http:' ? 'ws' : 'wss';\n}\n\nfunction addMessageListener(cb) {\n eventCallbacks.push(cb);\n}\n\nfunction sendMessage(data) {\n if (!source || source.readyState !== source.OPEN) return;\n return source.send(data);\n}\n\nfunction connectHMR(options) {\n if (!options.timeout) {\n options.timeout = 5 * 1000;\n }\n\n init();\n var timer = setInterval(function () {\n if (Date.now() - lastActivity > options.timeout) {\n handleDisconnect();\n }\n }, options.timeout / 2);\n\n function init() {\n if (source) source.close();\n var _location = location,\n hostname = _location.hostname,\n port = _location.port;\n var protocol = getSocketProtocol(options.assetPrefix || '');\n var assetPrefix = options.assetPrefix.replace(/^\\/+/, '');\n var url = \"\".concat(protocol, \"://\").concat(hostname, \":\").concat(port).concat(assetPrefix ? \"/\".concat(assetPrefix) : '');\n\n if (assetPrefix.startsWith('http')) {\n url = \"\".concat(protocol, \"://\").concat(assetPrefix.split('://')[1]);\n }\n\n source = new window.WebSocket(\"\".concat(url).concat(options.path));\n source.onopen = handleOnline;\n source.onerror = handleDisconnect;\n source.onmessage = handleMessage;\n }\n\n function handleOnline() {\n if (options.log) console.log('[HMR] connected');\n lastActivity = Date.now();\n }\n\n function handleMessage(event) {\n lastActivity = Date.now();\n eventCallbacks.forEach(function (cb) {\n cb(event);\n });\n }\n\n function handleDisconnect() {\n clearInterval(timer);\n source.close();\n setTimeout(init, options.timeout);\n }\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvZXJyb3Itb3ZlcmxheS93ZWJzb2NrZXQuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCwwQkFBQSxHQUE2QkUsa0JBQTdCO0FBQ0FGLG1CQUFBLEdBQXNCRyxXQUF0QjtBQUNBSCxrQkFBQSxHQUFxQkksVUFBckI7QUFDQSxJQUFJQyxNQUFKO0FBQ0EsSUFBTUMsY0FBYyxHQUFHLEVBQXZCO0FBQ0EsSUFBSUMsWUFBWSxHQUFHQyxJQUFJLENBQUNDLEdBQUwsRUFBbkI7O0FBQ0EsU0FBU0MsaUJBQVQsQ0FBMkJDLFdBQTNCLEVBQXdDO0FBQ3BDLE1BQUlDLFFBQVEsR0FBR0MsUUFBUSxDQUFDRCxRQUF4Qjs7QUFDQSxNQUFJO0FBQ0E7QUFDQUEsSUFBQUEsUUFBUSxHQUFHLElBQUlFLEdBQUosQ0FBUUgsV0FBUixFQUFxQkMsUUFBaEM7QUFDSCxHQUhELENBR0UsT0FBT0csQ0FBUCxFQUFVLENBQ1g7O0FBQ0QsU0FBT0gsUUFBUSxLQUFLLE9BQWIsR0FBdUIsSUFBdkIsR0FBOEIsS0FBckM7QUFDSDs7QUFDRCxTQUFTVixrQkFBVCxDQUE0QmMsRUFBNUIsRUFBZ0M7QUFDNUJWLEVBQUFBLGNBQWMsQ0FBQ1csSUFBZixDQUFvQkQsRUFBcEI7QUFDSDs7QUFDRCxTQUFTYixXQUFULENBQXFCZSxJQUFyQixFQUEyQjtBQUN2QixNQUFJLENBQUNiLE1BQUQsSUFBV0EsTUFBTSxDQUFDYyxVQUFQLEtBQXNCZCxNQUFNLENBQUNlLElBQTVDLEVBQWtEO0FBQ2xELFNBQU9mLE1BQU0sQ0FBQ2dCLElBQVAsQ0FBWUgsSUFBWixDQUFQO0FBQ0g7O0FBQ0QsU0FBU2QsVUFBVCxDQUFvQmtCLE9BQXBCLEVBQTZCO0FBQ3pCLE1BQUksQ0FBQ0EsT0FBTyxDQUFDQyxPQUFiLEVBQXNCO0FBQ2xCRCxJQUFBQSxPQUFPLENBQUNDLE9BQVIsR0FBa0IsSUFBSSxJQUF0QjtBQUNIOztBQUNEQyxFQUFBQSxJQUFJO0FBQ0osTUFBSUMsS0FBSyxHQUFHQyxXQUFXLENBQUMsWUFBVztBQUMvQixRQUFJbEIsSUFBSSxDQUFDQyxHQUFMLEtBQWFGLFlBQWIsR0FBNEJlLE9BQU8sQ0FBQ0MsT0FBeEMsRUFBaUQ7QUFDN0NJLE1BQUFBLGdCQUFnQjtBQUNuQjtBQUNKLEdBSnNCLEVBSXBCTCxPQUFPLENBQUNDLE9BQVIsR0FBa0IsQ0FKRSxDQUF2Qjs7QUFLQSxXQUFTQyxJQUFULEdBQWdCO0FBQ1osUUFBSW5CLE1BQUosRUFBWUEsTUFBTSxDQUFDdUIsS0FBUDtBQUNaLG9CQUE2QmYsUUFBN0I7QUFBQSxRQUFRZ0IsUUFBUixhQUFRQSxRQUFSO0FBQUEsUUFBbUJDLElBQW5CLGFBQW1CQSxJQUFuQjtBQUNBLFFBQU1sQixRQUFRLEdBQUdGLGlCQUFpQixDQUFDWSxPQUFPLENBQUNYLFdBQVIsSUFBdUIsRUFBeEIsQ0FBbEM7QUFDQSxRQUFNQSxXQUFXLEdBQUdXLE9BQU8sQ0FBQ1gsV0FBUixDQUFvQm9CLE9BQXBCLENBQTRCLE1BQTVCLEVBQW9DLEVBQXBDLENBQXBCO0FBQ0EsUUFBSUMsR0FBRyxhQUFNcEIsUUFBTixnQkFBb0JpQixRQUFwQixjQUFnQ0MsSUFBaEMsU0FBdUNuQixXQUFXLGNBQU9BLFdBQVAsSUFBdUIsRUFBekUsQ0FBUDs7QUFDQSxRQUFJQSxXQUFXLENBQUNzQixVQUFaLENBQXVCLE1BQXZCLENBQUosRUFBb0M7QUFDaENELE1BQUFBLEdBQUcsYUFBTXBCLFFBQU4sZ0JBQW9CRCxXQUFXLENBQUN1QixLQUFaLENBQWtCLEtBQWxCLEVBQXlCLENBQXpCLENBQXBCLENBQUg7QUFDSDs7QUFDRDdCLElBQUFBLE1BQU0sR0FBRyxJQUFJOEIsTUFBTSxDQUFDQyxTQUFYLFdBQXdCSixHQUF4QixTQUE4QlYsT0FBTyxDQUFDZSxJQUF0QyxFQUFUO0FBQ0FoQyxJQUFBQSxNQUFNLENBQUNpQyxNQUFQLEdBQWdCQyxZQUFoQjtBQUNBbEMsSUFBQUEsTUFBTSxDQUFDbUMsT0FBUCxHQUFpQmIsZ0JBQWpCO0FBQ0F0QixJQUFBQSxNQUFNLENBQUNvQyxTQUFQLEdBQW1CQyxhQUFuQjtBQUNIOztBQUNELFdBQVNILFlBQVQsR0FBd0I7QUFDcEIsUUFBSWpCLE9BQU8sQ0FBQ3FCLEdBQVosRUFBaUJDLE9BQU8sQ0FBQ0QsR0FBUixDQUFZLGlCQUFaO0FBQ2pCcEMsSUFBQUEsWUFBWSxHQUFHQyxJQUFJLENBQUNDLEdBQUwsRUFBZjtBQUNIOztBQUNELFdBQVNpQyxhQUFULENBQXVCRyxLQUF2QixFQUE4QjtBQUMxQnRDLElBQUFBLFlBQVksR0FBR0MsSUFBSSxDQUFDQyxHQUFMLEVBQWY7QUFDQUgsSUFBQUEsY0FBYyxDQUFDd0MsT0FBZixDQUF1QixVQUFDOUIsRUFBRCxFQUFNO0FBQ3pCQSxNQUFBQSxFQUFFLENBQUM2QixLQUFELENBQUY7QUFDSCxLQUZEO0FBR0g7O0FBQ0QsV0FBU2xCLGdCQUFULEdBQTRCO0FBQ3hCb0IsSUFBQUEsYUFBYSxDQUFDdEIsS0FBRCxDQUFiO0FBQ0FwQixJQUFBQSxNQUFNLENBQUN1QixLQUFQO0FBQ0FvQixJQUFBQSxVQUFVLENBQUN4QixJQUFELEVBQU9GLE9BQU8sQ0FBQ0MsT0FBZixDQUFWO0FBQ0g7QUFDSiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvZXJyb3Itb3ZlcmxheS93ZWJzb2NrZXQuanM/YTliZSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuYWRkTWVzc2FnZUxpc3RlbmVyID0gYWRkTWVzc2FnZUxpc3RlbmVyO1xuZXhwb3J0cy5zZW5kTWVzc2FnZSA9IHNlbmRNZXNzYWdlO1xuZXhwb3J0cy5jb25uZWN0SE1SID0gY29ubmVjdEhNUjtcbmxldCBzb3VyY2U7XG5jb25zdCBldmVudENhbGxiYWNrcyA9IFtdO1xubGV0IGxhc3RBY3Rpdml0eSA9IERhdGUubm93KCk7XG5mdW5jdGlvbiBnZXRTb2NrZXRQcm90b2NvbChhc3NldFByZWZpeCkge1xuICAgIGxldCBwcm90b2NvbCA9IGxvY2F0aW9uLnByb3RvY29sO1xuICAgIHRyeSB7XG4gICAgICAgIC8vIGFzc2V0UHJlZml4IGlzIGEgdXJsXG4gICAgICAgIHByb3RvY29sID0gbmV3IFVSTChhc3NldFByZWZpeCkucHJvdG9jb2w7XG4gICAgfSBjYXRjaCAoXykge1xuICAgIH1cbiAgICByZXR1cm4gcHJvdG9jb2wgPT09ICdodHRwOicgPyAnd3MnIDogJ3dzcyc7XG59XG5mdW5jdGlvbiBhZGRNZXNzYWdlTGlzdGVuZXIoY2IpIHtcbiAgICBldmVudENhbGxiYWNrcy5wdXNoKGNiKTtcbn1cbmZ1bmN0aW9uIHNlbmRNZXNzYWdlKGRhdGEpIHtcbiAgICBpZiAoIXNvdXJjZSB8fCBzb3VyY2UucmVhZHlTdGF0ZSAhPT0gc291cmNlLk9QRU4pIHJldHVybjtcbiAgICByZXR1cm4gc291cmNlLnNlbmQoZGF0YSk7XG59XG5mdW5jdGlvbiBjb25uZWN0SE1SKG9wdGlvbnMpIHtcbiAgICBpZiAoIW9wdGlvbnMudGltZW91dCkge1xuICAgICAgICBvcHRpb25zLnRpbWVvdXQgPSA1ICogMTAwMDtcbiAgICB9XG4gICAgaW5pdCgpO1xuICAgIGxldCB0aW1lciA9IHNldEludGVydmFsKGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAoRGF0ZS5ub3coKSAtIGxhc3RBY3Rpdml0eSA+IG9wdGlvbnMudGltZW91dCkge1xuICAgICAgICAgICAgaGFuZGxlRGlzY29ubmVjdCgpO1xuICAgICAgICB9XG4gICAgfSwgb3B0aW9ucy50aW1lb3V0IC8gMik7XG4gICAgZnVuY3Rpb24gaW5pdCgpIHtcbiAgICAgICAgaWYgKHNvdXJjZSkgc291cmNlLmNsb3NlKCk7XG4gICAgICAgIGNvbnN0IHsgaG9zdG5hbWUgLCBwb3J0ICB9ID0gbG9jYXRpb247XG4gICAgICAgIGNvbnN0IHByb3RvY29sID0gZ2V0U29ja2V0UHJvdG9jb2wob3B0aW9ucy5hc3NldFByZWZpeCB8fCAnJyk7XG4gICAgICAgIGNvbnN0IGFzc2V0UHJlZml4ID0gb3B0aW9ucy5hc3NldFByZWZpeC5yZXBsYWNlKC9eXFwvKy8sICcnKTtcbiAgICAgICAgbGV0IHVybCA9IGAke3Byb3RvY29sfTovLyR7aG9zdG5hbWV9OiR7cG9ydH0ke2Fzc2V0UHJlZml4ID8gYC8ke2Fzc2V0UHJlZml4fWAgOiAnJ31gO1xuICAgICAgICBpZiAoYXNzZXRQcmVmaXguc3RhcnRzV2l0aCgnaHR0cCcpKSB7XG4gICAgICAgICAgICB1cmwgPSBgJHtwcm90b2NvbH06Ly8ke2Fzc2V0UHJlZml4LnNwbGl0KCc6Ly8nKVsxXX1gO1xuICAgICAgICB9XG4gICAgICAgIHNvdXJjZSA9IG5ldyB3aW5kb3cuV2ViU29ja2V0KGAke3VybH0ke29wdGlvbnMucGF0aH1gKTtcbiAgICAgICAgc291cmNlLm9ub3BlbiA9IGhhbmRsZU9ubGluZTtcbiAgICAgICAgc291cmNlLm9uZXJyb3IgPSBoYW5kbGVEaXNjb25uZWN0O1xuICAgICAgICBzb3VyY2Uub25tZXNzYWdlID0gaGFuZGxlTWVzc2FnZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaGFuZGxlT25saW5lKCkge1xuICAgICAgICBpZiAob3B0aW9ucy5sb2cpIGNvbnNvbGUubG9nKCdbSE1SXSBjb25uZWN0ZWQnKTtcbiAgICAgICAgbGFzdEFjdGl2aXR5ID0gRGF0ZS5ub3coKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaGFuZGxlTWVzc2FnZShldmVudCkge1xuICAgICAgICBsYXN0QWN0aXZpdHkgPSBEYXRlLm5vdygpO1xuICAgICAgICBldmVudENhbGxiYWNrcy5mb3JFYWNoKChjYik9PntcbiAgICAgICAgICAgIGNiKGV2ZW50KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGhhbmRsZURpc2Nvbm5lY3QoKSB7XG4gICAgICAgIGNsZWFySW50ZXJ2YWwodGltZXIpO1xuICAgICAgICBzb3VyY2UuY2xvc2UoKTtcbiAgICAgICAgc2V0VGltZW91dChpbml0LCBvcHRpb25zLnRpbWVvdXQpO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9d2Vic29ja2V0LmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImFkZE1lc3NhZ2VMaXN0ZW5lciIsInNlbmRNZXNzYWdlIiwiY29ubmVjdEhNUiIsInNvdXJjZSIsImV2ZW50Q2FsbGJhY2tzIiwibGFzdEFjdGl2aXR5IiwiRGF0ZSIsIm5vdyIsImdldFNvY2tldFByb3RvY29sIiwiYXNzZXRQcmVmaXgiLCJwcm90b2NvbCIsImxvY2F0aW9uIiwiVVJMIiwiXyIsImNiIiwicHVzaCIsImRhdGEiLCJyZWFkeVN0YXRlIiwiT1BFTiIsInNlbmQiLCJvcHRpb25zIiwidGltZW91dCIsImluaXQiLCJ0aW1lciIsInNldEludGVydmFsIiwiaGFuZGxlRGlzY29ubmVjdCIsImNsb3NlIiwiaG9zdG5hbWUiLCJwb3J0IiwicmVwbGFjZSIsInVybCIsInN0YXJ0c1dpdGgiLCJzcGxpdCIsIndpbmRvdyIsIldlYlNvY2tldCIsInBhdGgiLCJvbm9wZW4iLCJoYW5kbGVPbmxpbmUiLCJvbmVycm9yIiwib25tZXNzYWdlIiwiaGFuZGxlTWVzc2FnZSIsImxvZyIsImNvbnNvbGUiLCJldmVudCIsImZvckVhY2giLCJjbGVhckludGVydmFsIiwic2V0VGltZW91dCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/error-overlay/websocket.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/dev/fouc.js": +/*!***************************************************!*\ + !*** ./node_modules/next/dist/client/dev/fouc.js ***! + \***************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.displayContent = displayContent;\n\nfunction displayContent(callback) {\n (window.requestAnimationFrame || setTimeout)(function () {\n for (var x = document.querySelectorAll('[data-next-hide-fouc]'), i = x.length; i--;) {\n x[i].parentNode.removeChild(x[i]);\n }\n\n if (callback) {\n callback();\n }\n });\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvZm91Yy5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELHNCQUFBLEdBQXlCRSxjQUF6Qjs7QUFDQSxTQUFTQSxjQUFULENBQXdCQyxRQUF4QixFQUFrQztBQUM5QixHQUFDQyxNQUFNLENBQUNDLHFCQUFQLElBQWdDQyxVQUFqQyxFQUE2QyxZQUFXO0FBQ3BELFNBQUksSUFBSUMsQ0FBQyxHQUFHQyxRQUFRLENBQUNDLGdCQUFULENBQTBCLHVCQUExQixDQUFSLEVBQTREQyxDQUFDLEdBQUdILENBQUMsQ0FBQ0ksTUFBdEUsRUFBOEVELENBQUMsRUFBL0UsR0FBbUY7QUFDL0VILE1BQUFBLENBQUMsQ0FBQ0csQ0FBRCxDQUFELENBQUtFLFVBQUwsQ0FBZ0JDLFdBQWhCLENBQTRCTixDQUFDLENBQUNHLENBQUQsQ0FBN0I7QUFDSDs7QUFDRCxRQUFJUCxRQUFKLEVBQWM7QUFDVkEsTUFBQUEsUUFBUTtBQUNYO0FBQ0osR0FQRDtBQVFIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2Rldi9mb3VjLmpzPzAwODciXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRpc3BsYXlDb250ZW50ID0gZGlzcGxheUNvbnRlbnQ7XG5mdW5jdGlvbiBkaXNwbGF5Q29udGVudChjYWxsYmFjaykge1xuICAgICh3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lIHx8IHNldFRpbWVvdXQpKGZ1bmN0aW9uKCkge1xuICAgICAgICBmb3IodmFyIHggPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1uZXh0LWhpZGUtZm91Y10nKSwgaSA9IHgubGVuZ3RoOyBpLS07KXtcbiAgICAgICAgICAgIHhbaV0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh4W2ldKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Zm91Yy5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJkaXNwbGF5Q29udGVudCIsImNhbGxiYWNrIiwid2luZG93IiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwic2V0VGltZW91dCIsIngiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJpIiwibGVuZ3RoIiwicGFyZW50Tm9kZSIsInJlbW92ZUNoaWxkIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/fouc.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/dev/on-demand-entries-client.js": +/*!***********************************************************************!*\ + !*** ./node_modules/next/dist/client/dev/on-demand-entries-client.js ***! + \***********************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _regeneratorRuntime = __webpack_require__(/*! ./node_modules/@babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _router = _interopRequireDefault(__webpack_require__(/*! next/router */ \"./node_modules/next/router.js\"));\n\nvar _websocket = __webpack_require__(/*! ./error-overlay/websocket */ \"./node_modules/next/dist/client/dev/error-overlay/websocket.js\");\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar _default = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n setInterval(function () {\n (0, _websocket).sendMessage(JSON.stringify({\n event: 'ping',\n page: _router[\"default\"].pathname\n }));\n }, 2500);\n (0, _websocket).addMessageListener(function (event) {\n if (event.data.indexOf('{') === -1) return;\n\n try {\n var payload = JSON.parse(event.data); // don't attempt fetching the page if we're already showing\n // the dev overlay as this can cause the error to be triggered\n // repeatedly\n\n if (payload.event === 'pong' && payload.invalid && !self.__NEXT_DATA__.err) {\n // Payload can be invalid even if the page does exist.\n // So, we check if it can be created.\n fetch(location.href, {\n credentials: 'same-origin'\n }).then(function (pageRes) {\n if (pageRes.status === 200) {\n // Page exists now, reload\n location.reload();\n } else {\n // Page doesn't exist\n if (self.__NEXT_DATA__.page === _router[\"default\"].pathname && _router[\"default\"].pathname !== '/_error') {\n // We are still on the page,\n // reload to show 404 error page\n location.reload();\n }\n }\n });\n }\n } catch (err) {\n console.error('on-demand-entries failed to parse response', err);\n }\n });\n\n case 2:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n}));\n\nexports[\"default\"] = _default;\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvb24tZGVtYW5kLWVudHJpZXMtY2xpZW50LmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7OztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxrQkFBQSxHQUFrQixLQUFLLENBQXZCOztBQUNBLElBQUlFLE9BQU8sR0FBR0Msc0JBQXNCLENBQUNDLG1CQUFPLENBQUMsa0RBQUQsQ0FBUixDQUFwQzs7QUFDQSxJQUFJQyxVQUFVLEdBQUdELG1CQUFPLENBQUMsaUdBQUQsQ0FBeEI7O0FBQ0EsU0FBU0Usa0JBQVQsQ0FBNEJDLEdBQTVCLEVBQWlDQyxPQUFqQyxFQUEwQ0MsTUFBMUMsRUFBa0RDLEtBQWxELEVBQXlEQyxNQUF6RCxFQUFpRUMsR0FBakUsRUFBc0VDLEdBQXRFLEVBQTJFO0FBQ3ZFLE1BQUk7QUFDQSxRQUFJQyxJQUFJLEdBQUdQLEdBQUcsQ0FBQ0ssR0FBRCxDQUFILENBQVNDLEdBQVQsQ0FBWDtBQUNBLFFBQUlaLEtBQUssR0FBR2EsSUFBSSxDQUFDYixLQUFqQjtBQUNILEdBSEQsQ0FHRSxPQUFPYyxLQUFQLEVBQWM7QUFDWk4sSUFBQUEsTUFBTSxDQUFDTSxLQUFELENBQU47QUFDQTtBQUNIOztBQUNELE1BQUlELElBQUksQ0FBQ0UsSUFBVCxFQUFlO0FBQ1hSLElBQUFBLE9BQU8sQ0FBQ1AsS0FBRCxDQUFQO0FBQ0gsR0FGRCxNQUVPO0FBQ0hnQixJQUFBQSxPQUFPLENBQUNULE9BQVIsQ0FBZ0JQLEtBQWhCLEVBQXVCaUIsSUFBdkIsQ0FBNEJSLEtBQTVCLEVBQW1DQyxNQUFuQztBQUNIO0FBQ0o7O0FBQ0QsU0FBU1EsaUJBQVQsQ0FBMkJDLEVBQTNCLEVBQStCO0FBQzNCLFNBQU8sWUFBVztBQUNkLFFBQUlDLElBQUksR0FBRyxJQUFYO0FBQUEsUUFBaUJDLElBQUksR0FBR0MsU0FBeEI7QUFDQSxXQUFPLElBQUlOLE9BQUosQ0FB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NkIsUUFBbEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvZGV2L29uLWRlbWFuZC1lbnRyaWVzLWNsaWVudC5qcz84NDVjIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gdm9pZCAwO1xudmFyIF9yb3V0ZXIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJuZXh0L3JvdXRlclwiKSk7XG52YXIgX3dlYnNvY2tldCA9IHJlcXVpcmUoXCIuL2Vycm9yLW92ZXJsYXkvd2Vic29ja2V0XCIpO1xuZnVuY3Rpb24gYXN5bmNHZW5lcmF0b3JTdGVwKGdlbiwgcmVzb2x2ZSwgcmVqZWN0LCBfbmV4dCwgX3Rocm93LCBrZXksIGFyZykge1xuICAgIHRyeSB7XG4gICAgICAgIHZhciBpbmZvID0gZ2VuW2tleV0oYXJnKTtcbiAgICAgICAgdmFyIHZhbHVlID0gaW5mby52YWx1ZTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChpbmZvLmRvbmUpIHtcbiAgICAgICAgcmVzb2x2ZSh2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKHZhbHVlKS50aGVuKF9uZXh0LCBfdGhyb3cpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIF9hc3luY1RvR2VuZXJhdG9yKGZuKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgc2VsZiA9IHRoaXMsIGFyZ3MgPSBhcmd1bWVudHM7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgICAgIHZhciBnZW4gPSBmbi5hcHBseShzZWxmLCBhcmdzKTtcbiAgICAgICAgICAgIGZ1bmN0aW9uIF9uZXh0KHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgYXN5bmNHZW5lcmF0b3JTdGVwKGdlbiwgcmVzb2x2ZSwgcmVqZWN0LCBfbmV4dCwgX3Rocm93LCBcIm5leHRcIiwgdmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZnVuY3Rpb24gX3Rocm93KGVycikge1xuICAgICAgICAgICAgICAgIGFzeW5jR2VuZXJhdG9yU3RlcChnZW4sIHJlc29sdmUsIHJlamVjdCwgX25leHQsIF90aHJvdywgXCJ0aHJvd1wiLCBlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgX25leHQodW5kZWZpbmVkKTtcbiAgICAgICAgfSk7XG4gICAgfTtcbn1cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbnZhciBfZGVmYXVsdCA9IF9hc3luY1RvR2VuZXJhdG9yKGZ1bmN0aW9uKigpIHtcbiAgICBzZXRJbnRlcnZhbCgoKT0+e1xuICAgICAgICAoMCwgX3dlYnNvY2tldCkuc2VuZE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgZXZlbnQ6ICdwaW5nJyxcbiAgICAgICAgICAgIHBhZ2U6IF9yb3V0ZXIuZGVmYXVsdC5wYXRobmFtZVxuICAgICAgICB9KSk7XG4gICAgfSwgMjUwMCk7XG4gICAgKDAsIF93ZWJzb2NrZXQpLmFkZE1lc3NhZ2VMaXN0ZW5lcigoZXZlbnQpPT57XG4gICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoJ3snKSA9PT0gLTEpIHJldHVybjtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHBheWxvYWQgPSBKU09OLnBhcnNlKGV2ZW50LmRhdGEpO1xuICAgICAgICAgICAgLy8gZG9uJ3QgYXR0ZW1wdCBmZXRjaGluZyB0aGUgcGFnZSBpZiB3ZSdyZSBhbHJlYWR5IHNob3dpbmdcbiAgICAgICAgICAgIC8vIHRoZSBkZXYgb3ZlcmxheSBhcyB0aGlzIGNhbiBjYXVzZSB0aGUgZXJyb3IgdG8gYmUgdHJpZ2dlcmVkXG4gICAgICAgICAgICAvLyByZXBlYXRlZGx5XG4gICAgICAgICAgICBpZiAocGF5bG9hZC5ldmVudCA9PT0gJ3BvbmcnICYmIHBheWxvYWQuaW52YWxpZCAmJiAhc2VsZi5fX05FWFRfREFUQV9fLmVycikge1xuICAgICAgICAgICAgICAgIC8vIFBheWxvYWQgY2FuIGJlIGludmFsaWQgZXZlbiBpZiB0aGUgcGFnZSBkb2VzIGV4aXN0LlxuICAgICAgICAgICAgICAgIC8vIFNvLCB3ZSBjaGVjayBpZiBpdCBjYW4gYmUgY3JlYXRlZC5cbiAgICAgICAgICAgICAgICBmZXRjaChsb2NhdGlvbi5ocmVmLCB7XG4gICAgICAgICAgICAgICAgICAgIGNyZWRlbnRpYWxzOiAnc2FtZS1vcmlnaW4nXG4gICAgICAgICAgICAgICAgfSkudGhlbigocGFnZVJlcyk9PntcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBhZ2VSZXMuc3RhdHVzID09PSAyMDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBhZ2UgZXhpc3RzIG5vdywgcmVsb2FkXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBhZ2UgZG9lc24ndCBleGlzdFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGYuX19ORVhUX0RBVEFfXy5wYWdlID09PSBfcm91dGVyLmRlZmF1bHQucGF0aG5hbWUgJiYgX3JvdXRlci5kZWZhdWx0LnBhdGhuYW1lICE9PSAnL19lcnJvcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBhcmUgc3RpbGwgb24gdGhlIHBhZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVsb2FkIHRvIHNob3cgNDA0IGVycm9yIHBhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ29uLWRlbWFuZC1lbnRyaWVzIGZhaWxlZCB0byBwYXJzZSByZXNwb25zZScsIGVycik7XG4gICAgICAgIH1cbiAgICB9KTtcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW9uLWRlbWFuZC1lbnRyaWVzLWNsaWVudC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJfcm91dGVyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfd2Vic29ja2V0IiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwicmVzb2x2ZSIsInJlamVjdCIsIl9uZXh0IiwiX3Rocm93Iiwia2V5IiwiYXJnIiwiaW5mbyIsImVycm9yIiwiZG9uZSIsIlByb21pc2UiLCJ0aGVuIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJmbiIsInNlbGYiLCJhcmdzIiwiYXJndW1lbnRzIiwiYXBwbHkiLCJlcnIiLCJ1bmRlZmluZWQiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX2RlZmF1bHQiLCJzZXRJbnRlcnZhbCIsInNlbmRNZXNzYWdlIiwiSlNPTiIsInN0cmluZ2lmeSIsImV2ZW50IiwicGFnZSIsInBhdGhuYW1lIiwiYWRkTWVzc2FnZUxpc3RlbmVyIiwiZGF0YSIsImluZGV4T2YiLCJwYXlsb2FkIiwicGFyc2UiLCJpbnZhbGlkIiwiX19ORVhUX0RBVEFfXyIsImZldGNoIiwibG9jYXRpb24iLCJocmVmIiwiY3JlZGVudGlhbHMiLCJwYWdlUmVzIiwic3RhdHVzIiwicmVsb2FkIiwiY29uc29sZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/on-demand-entries-client.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/normalize-trailing-slash.js": +/*!*******************************************************************!*\ + !*** ./node_modules/next/dist/client/normalize-trailing-slash.js ***! + \*******************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.removePathTrailingSlash = removePathTrailingSlash;\nexports.normalizePathTrailingSlash = void 0;\n\nfunction removePathTrailingSlash(path) {\n return path.endsWith('/') && path !== '/' ? path.slice(0, -1) : path;\n}\n\nvar normalizePathTrailingSlash = true ? function (path) {\n if (/\\.[^/]+\\/?$/.test(path)) {\n return removePathTrailingSlash(path);\n } else if (path.endsWith('/')) {\n return path;\n } else {\n return path + '/';\n }\n} : 0;\nexports.normalizePathTrailingSlash = normalizePathTrailingSlash;\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9ub3JtYWxpemUtdHJhaWxpbmctc2xhc2guanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCwrQkFBQSxHQUFrQ0UsdUJBQWxDO0FBQ0FGLGtDQUFBLEdBQXFDLEtBQUssQ0FBMUM7O0FBQ0EsU0FBU0UsdUJBQVQsQ0FBaUNFLElBQWpDLEVBQXVDO0FBQ25DLFNBQU9BLElBQUksQ0FBQ0MsUUFBTCxDQUFjLEdBQWQsS0FBc0JELElBQUksS0FBSyxHQUEvQixHQUFxQ0EsSUFBSSxDQUFDRSxLQUFMLENBQVcsQ0FBWCxFQUFjLENBQUMsQ0FBZixDQUFyQyxHQUF5REYsSUFBaEU7QUFDSDs7QUFDRCxJQUFNRCwwQkFBMEIsR0FBR0ksS0FBQSxHQUFvQyxVQUFDSCxJQUFELEVBQVE7QUFDM0UsTUFBSSxjQUFjTSxJQUFkLENBQW1CTixJQUFuQixDQUFKLEVBQThCO0FBQzFCLFdBQU9GLHVCQUF1QixDQUFDRSxJQUFELENBQTlCO0FBQ0gsR0FGRCxNQUVPLElBQUlBLElBQUksQ0FBQ0MsUUFBTCxDQUFjLEdBQWQsQ0FBSixFQUF3QjtBQUMzQixXQUFPRCxJQUFQO0FBQ0gsR0FGTSxNQUVBO0FBQ0gsV0FBT0EsSUFBSSxHQUFHLEdBQWQ7QUFDSDtBQUNKLENBUmtDLEdBUS9CRixDQVJKO0FBU0FGLGtDQUFBLEdBQXFDRywwQkFBckMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvbm9ybWFsaXplLXRyYWlsaW5nLXNsYXNoLmpzPzRjMmUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLnJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoID0gcmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2g7XG5leHBvcnRzLm5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoID0gdm9pZCAwO1xuZnVuY3Rpb24gcmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2gocGF0aCkge1xuICAgIHJldHVybiBwYXRoLmVuZHNXaXRoKCcvJykgJiYgcGF0aCAhPT0gJy8nID8gcGF0aC5zbGljZSgwLCAtMSkgOiBwYXRoO1xufVxuY29uc3Qgbm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2ggPSBwcm9jZXNzLmVudi5fX05FWFRfVFJBSUxJTkdfU0xBU0ggPyAocGF0aCk9PntcbiAgICBpZiAoL1xcLlteL10rXFwvPyQvLnRlc3QocGF0aCkpIHtcbiAgICAgICAgcmV0dXJuIHJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoKHBhdGgpO1xuICAgIH0gZWxzZSBpZiAocGF0aC5lbmRzV2l0aCgnLycpKSB7XG4gICAgICAgIHJldHVybiBwYXRoO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBwYXRoICsgJy8nO1xuICAgIH1cbn0gOiByZW1vdmVQYXRoVHJhaWxpbmdTbGFzaDtcbmV4cG9ydHMubm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2ggPSBub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaDtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bm9ybWFsaXplLXRyYWlsaW5nLXNsYXNoLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsInJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoIiwibm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2giLCJwYXRoIiwiZW5kc1dpdGgiLCJzbGljZSIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfVFJBSUxJTkdfU0xBU0giLCJ0ZXN0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/normalize-trailing-slash.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/request-idle-callback.js": +/*!****************************************************************!*\ + !*** ./node_modules/next/dist/client/request-idle-callback.js ***! + \****************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.cancelIdleCallback = exports.requestIdleCallback = void 0;\n\nvar requestIdleCallback = typeof self !== 'undefined' && self.requestIdleCallback && self.requestIdleCallback.bind(window) || function (cb) {\n var start = Date.now();\n return setTimeout(function () {\n cb({\n didTimeout: false,\n timeRemaining: function timeRemaining() {\n return Math.max(0, 50 - (Date.now() - start));\n }\n });\n }, 1);\n};\n\nexports.requestIdleCallback = requestIdleCallback;\n\nvar cancelIdleCallback = typeof self !== 'undefined' && self.cancelIdleCallback && self.cancelIdleCallback.bind(window) || function (id) {\n return clearTimeout(id);\n};\n\nexports.cancelIdleCallback = cancelIdleCallback;\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yZXF1ZXN0LWlkbGUtY2FsbGJhY2suanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCwwQkFBQSxHQUE2QkEsMkJBQUEsR0FBOEIsS0FBSyxDQUFoRTs7QUFDQSxJQUFNRyxtQkFBbUIsR0FBRyxPQUFPQyxJQUFQLEtBQWdCLFdBQWhCLElBQStCQSxJQUFJLENBQUNELG1CQUFwQyxJQUEyREMsSUFBSSxDQUFDRCxtQkFBTCxDQUF5QkUsSUFBekIsQ0FBOEJDLE1BQTlCLENBQTNELElBQW9HLFVBQVNDLEVBQVQsRUFBYTtBQUN6SSxNQUFJQyxLQUFLLEdBQUdDLElBQUksQ0FBQ0MsR0FBTCxFQUFaO0FBQ0EsU0FBT0MsVUFBVSxDQUFDLFlBQVc7QUFDekJKLElBQUFBLEVBQUUsQ0FBQztBQUNDSyxNQUFBQSxVQUFVLEVBQUUsS0FEYjtBQUVDQyxNQUFBQSxhQUFhLEVBQUUseUJBQVc7QUFDdEIsZUFBT0MsSUFBSSxDQUFDQyxHQUFMLENBQVMsQ0FBVCxFQUFZLE1BQU1OLElBQUksQ0FBQ0MsR0FBTCxLQUFhRixLQUFuQixDQUFaLENBQVA7QUFDSDtBQUpGLEtBQUQsQ0FBRjtBQU1ILEdBUGdCLEVBT2QsQ0FQYyxDQUFqQjtBQVFILENBVkQ7O0FBV0FSLDJCQUFBLEdBQThCRyxtQkFBOUI7O0FBQ0EsSUFBTUQsa0JBQWtCLEdBQUcsT0FBT0UsSUFBUCxLQUFnQixXQUFoQixJQUErQkEsSUFBSSxDQUFDRixrQkFBcEMsSUFBMERFLElBQUksQ0FBQ0Ysa0JBQUwsQ0FBd0JHLElBQXhCLENBQTZCQyxNQUE3QixDQUExRCxJQUFrRyxVQUFTVSxFQUFULEVBQWE7QUFDdEksU0FBT0MsWUFBWSxDQUFDRCxFQUFELENBQW5CO0FBQ0gsQ0FGRDs7QUFHQWhCLDBCQUFBLEdBQTZCRSxrQkFBN0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvcmVxdWVzdC1pZGxlLWNhbGxiYWNrLmpzPzFlMjAiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmNhbmNlbElkbGVDYWxsYmFjayA9IGV4cG9ydHMucmVxdWVzdElkbGVDYWxsYmFjayA9IHZvaWQgMDtcbmNvbnN0IHJlcXVlc3RJZGxlQ2FsbGJhY2sgPSB0eXBlb2Ygc2VsZiAhPT0gJ3VuZGVmaW5lZCcgJiYgc2VsZi5yZXF1ZXN0SWRsZUNhbGxiYWNrICYmIHNlbGYucmVxdWVzdElkbGVDYWxsYmFjay5iaW5kKHdpbmRvdykgfHwgZnVuY3Rpb24oY2IpIHtcbiAgICBsZXQgc3RhcnQgPSBEYXRlLm5vdygpO1xuICAgIHJldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICBjYih7XG4gICAgICAgICAgICBkaWRUaW1lb3V0OiBmYWxzZSxcbiAgICAgICAgICAgIHRpbWVSZW1haW5pbmc6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBNYXRoLm1heCgwLCA1MCAtIChEYXRlLm5vdygpIC0gc3RhcnQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSwgMSk7XG59O1xuZXhwb3J0cy5yZXF1ZXN0SWRsZUNhbGxiYWNrID0gcmVxdWVzdElkbGVDYWxsYmFjaztcbmNvbnN0IGNhbmNlbElkbGVDYWxsYmFjayA9IHR5cGVvZiBzZWxmICE9PSAndW5kZWZpbmVkJyAmJiBzZWxmLmNhbmNlbElkbGVDYWxsYmFjayAmJiBzZWxmLmNhbmNlbElkbGVDYWxsYmFjay5iaW5kKHdpbmRvdykgfHwgZnVuY3Rpb24oaWQpIHtcbiAgICByZXR1cm4gY2xlYXJUaW1lb3V0KGlkKTtcbn07XG5leHBvcnRzLmNhbmNlbElkbGVDYWxsYmFjayA9IGNhbmNlbElkbGVDYWxsYmFjaztcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVxdWVzdC1pZGxlLWNhbGxiYWNrLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImNhbmNlbElkbGVDYWxsYmFjayIsInJlcXVlc3RJZGxlQ2FsbGJhY2siLCJzZWxmIiwiYmluZCIsIndpbmRvdyIsImNiIiwic3RhcnQiLCJEYXRlIiwibm93Iiwic2V0VGltZW91dCIsImRpZFRpbWVvdXQiLCJ0aW1lUmVtYWluaW5nIiwiTWF0aCIsIm1heCIsImlkIiwiY2xlYXJUaW1lb3V0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/request-idle-callback.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/route-loader.js": +/*!*******************************************************!*\ + !*** ./node_modules/next/dist/client/route-loader.js ***! + \*******************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.markAssetError = markAssetError;\nexports.isAssetError = isAssetError;\nexports.getClientBuildManifest = getClientBuildManifest;\nexports.getMiddlewareManifest = getMiddlewareManifest;\nexports.createRouteLoader = createRouteLoader;\n\nvar _getAssetPathFromRoute = _interopRequireDefault(__webpack_require__(/*! ../shared/lib/router/utils/get-asset-path-from-route */ \"./node_modules/next/dist/shared/lib/router/utils/get-asset-path-from-route.js\"));\n\nvar _requestIdleCallback = __webpack_require__(/*! ./request-idle-callback */ \"./node_modules/next/dist/client/request-idle-callback.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n} // 3.8s was arbitrarily chosen as it's what https://web.dev/interactive\n// considers as \"Good\" time-to-interactive. We must assume something went\n// wrong beyond this point, and then fall-back to a full page transition to\n// show the user something of value.\n\n\nvar MS_MAX_IDLE_DELAY = 3800;\n\nfunction withFuture(key, map, generator) {\n var entry = map.get(key);\n\n if (entry) {\n if ('future' in entry) {\n return entry.future;\n }\n\n return Promise.resolve(entry);\n }\n\n var resolver;\n var prom = new Promise(function (resolve) {\n resolver = resolve;\n });\n map.set(key, entry = {\n resolve: resolver,\n future: prom\n });\n return generator ? generator() // eslint-disable-next-line no-sequences\n .then(function (value) {\n return resolver(value), value;\n })[\"catch\"](function (err) {\n map[\"delete\"](key);\n throw err;\n }) : prom;\n}\n\nfunction hasPrefetch(link) {\n try {\n link = document.createElement('link');\n return (// detect IE11 since it supports prefetch but isn't detected\n // with relList.support\n !!window.MSInputMethodContext && !!document.documentMode || link.relList.supports('prefetch')\n );\n } catch (e) {\n return false;\n }\n}\n\nvar canPrefetch = hasPrefetch();\n\nfunction prefetchViaDom(href, as, link) {\n return new Promise(function (res, rej) {\n var selector = \"\\n link[rel=\\\"prefetch\\\"][href^=\\\"\".concat(href, \"\\\"],\\n link[rel=\\\"preload\\\"][href^=\\\"\").concat(href, \"\\\"],\\n script[src^=\\\"\").concat(href, \"\\\"]\");\n\n if (document.querySelector(selector)) {\n return res();\n }\n\n link = document.createElement('link'); // The order of property assignment here is intentional:\n\n if (as) link.as = as;\n link.rel = \"prefetch\";\n link.crossOrigin = undefined;\n link.onload = res;\n link.onerror = rej; // `href` should always be last:\n\n link.href = href;\n document.head.appendChild(link);\n });\n}\n\nvar ASSET_LOAD_ERROR = Symbol('ASSET_LOAD_ERROR');\n\nfunction markAssetError(err) {\n return Object.defineProperty(err, ASSET_LOAD_ERROR, {});\n}\n\nfunction isAssetError(err) {\n return err && ASSET_LOAD_ERROR in err;\n}\n\nfunction appendScript(src, script) {\n return new Promise(function (resolve, reject) {\n script = document.createElement('script'); // The order of property assignment here is intentional.\n // 1. Setup success/failure hooks in case the browser synchronously\n // executes when `src` is set.\n\n script.onload = resolve;\n\n script.onerror = function () {\n return reject(markAssetError(new Error(\"Failed to load script: \".concat(src))));\n }; // 2. Configure the cross-origin attribute before setting `src` in case the\n // browser begins to fetch.\n\n\n script.crossOrigin = undefined; // 3. Finally, set the source and inject into the DOM in case the child\n // must be appended for fetching to start.\n\n script.src = src;\n document.body.appendChild(script);\n });\n} // We wait for pages to be built in dev before we start the route transition\n// timeout to prevent an un-necessary hard navigation in development.\n\n\nvar devBuildPromise; // Resolve a promise that times out after given amount of milliseconds.\n\nfunction resolvePromiseWithTimeout(p, ms, err) {\n return new Promise(function (resolve, reject) {\n var cancelled = false;\n p.then(function (r) {\n // Resolved, cancel the timeout\n cancelled = true;\n resolve(r);\n })[\"catch\"](reject); // We wrap these checks separately for better dead-code elimination in\n // production bundles.\n\n if (true) {\n (devBuildPromise || Promise.resolve()).then(function () {\n (0, _requestIdleCallback).requestIdleCallback(function () {\n return setTimeout(function () {\n if (!cancelled) {\n reject(err);\n }\n }, ms);\n });\n });\n }\n\n if (false) {}\n });\n}\n\nfunction getClientBuildManifest() {\n if (self.__BUILD_MANIFEST) {\n return Promise.resolve(self.__BUILD_MANIFEST);\n }\n\n var onBuildManifest = new Promise(function (resolve) {\n // Mandatory because this is not concurrent safe:\n var cb = self.__BUILD_MANIFEST_CB;\n\n self.__BUILD_MANIFEST_CB = function () {\n resolve(self.__BUILD_MANIFEST);\n cb && cb();\n };\n });\n return resolvePromiseWithTimeout(onBuildManifest, MS_MAX_IDLE_DELAY, markAssetError(new Error('Failed to load client build manifest')));\n}\n\nfunction getMiddlewareManifest() {\n if (self.__MIDDLEWARE_MANIFEST) {\n return Promise.resolve(self.__MIDDLEWARE_MANIFEST);\n }\n\n var onMiddlewareManifest = new Promise(function (resolve) {\n var cb = self.__MIDDLEWARE_MANIFEST_CB;\n\n self.__MIDDLEWARE_MANIFEST_CB = function () {\n resolve(self.__MIDDLEWARE_MANIFEST);\n cb && cb();\n };\n });\n return resolvePromiseWithTimeout(onMiddlewareManifest, MS_MAX_IDLE_DELAY, markAssetError(new Error('Failed to load client middleware manifest')));\n}\n\nfunction getFilesForRoute(assetPrefix, route) {\n if (true) {\n return Promise.resolve({\n scripts: [assetPrefix + '/_next/static/chunks/pages' + encodeURI((0, _getAssetPathFromRoute)[\"default\"](route, '.js'))],\n // Styles are handled by `style-loader` in development:\n css: []\n });\n }\n\n return getClientBuildManifest().then(function (manifest) {\n if (!(route in manifest)) {\n throw markAssetError(new Error(\"Failed to lookup route: \".concat(route)));\n }\n\n var allFiles = manifest[route].map(function (entry) {\n return assetPrefix + '/_next/' + encodeURI(entry);\n });\n return {\n scripts: allFiles.filter(function (v) {\n return v.endsWith('.js');\n }),\n css: allFiles.filter(function (v) {\n return v.endsWith('.css');\n })\n };\n });\n}\n\nfunction createRouteLoader(assetPrefix) {\n var entrypoints = new Map();\n var loadedScripts = new Map();\n var styleSheets = new Map();\n var routes = new Map();\n\n function maybeExecuteScript(src) {\n // With HMR we might need to \"reload\" scripts when they are\n // disposed and readded. Executing scripts twice has no functional\n // differences\n if (false) { var prom; } else {\n return appendScript(src);\n }\n }\n\n function fetchStyleSheet(href) {\n var prom = styleSheets.get(href);\n\n if (prom) {\n return prom;\n }\n\n styleSheets.set(href, prom = fetch(href).then(function (res) {\n if (!res.ok) {\n throw new Error(\"Failed to load stylesheet: \".concat(href));\n }\n\n return res.text().then(function (text) {\n return {\n href: href,\n content: text\n };\n });\n })[\"catch\"](function (err) {\n throw markAssetError(err);\n }));\n return prom;\n }\n\n return {\n whenEntrypoint: function whenEntrypoint(route) {\n return withFuture(route, entrypoints);\n },\n onEntrypoint: function onEntrypoint(route, execute) {\n (execute ? Promise.resolve().then(function () {\n return execute();\n }).then(function (exports) {\n return {\n component: exports && exports[\"default\"] || exports,\n exports: exports\n };\n }, function (err) {\n return {\n error: err\n };\n }) : Promise.resolve(undefined)).then(function (input) {\n var old = entrypoints.get(route);\n\n if (old && 'resolve' in old) {\n if (input) {\n entrypoints.set(route, input);\n old.resolve(input);\n }\n } else {\n if (input) {\n entrypoints.set(route, input);\n } else {\n entrypoints[\"delete\"](route);\n } // when this entrypoint has been resolved before\n // the route is outdated and we want to invalidate\n // this cache entry\n\n\n routes[\"delete\"](route);\n }\n });\n },\n loadRoute: function loadRoute(route, prefetch) {\n var _this = this;\n\n return withFuture(route, routes, function () {\n var routeFilesPromise = getFilesForRoute(assetPrefix, route).then(function (_ref) {\n var scripts = _ref.scripts,\n css = _ref.css;\n return Promise.all([entrypoints.has(route) ? [] : Promise.all(scripts.map(maybeExecuteScript)), Promise.all(css.map(fetchStyleSheet))]);\n }).then(function (res) {\n return _this.whenEntrypoint(route).then(function (entrypoint) {\n return {\n entrypoint: entrypoint,\n styles: res[1]\n };\n });\n });\n\n if (true) {\n devBuildPromise = new Promise(function (resolve) {\n if (routeFilesPromise) {\n return routeFilesPromise[\"finally\"](function () {\n resolve();\n });\n }\n });\n }\n\n return resolvePromiseWithTimeout(routeFilesPromise, MS_MAX_IDLE_DELAY, markAssetError(new Error(\"Route did not complete loading: \".concat(route)))).then(function (_ref2) {\n var entrypoint = _ref2.entrypoint,\n styles = _ref2.styles;\n var res = Object.assign({\n styles: styles\n }, entrypoint);\n return 'error' in entrypoint ? entrypoint : res;\n })[\"catch\"](function (err) {\n if (prefetch) {\n // we don't want to cache errors during prefetch\n throw err;\n }\n\n return {\n error: err\n };\n });\n });\n },\n prefetch: function prefetch(route) {\n var _this2 = this;\n\n // https://github.com/GoogleChromeLabs/quicklink/blob/453a661fa1fa940e2d2e044452398e38c67a98fb/src/index.mjs#L115-L118\n // License: Apache 2.0\n var cn;\n\n if (cn = navigator.connection) {\n // Don't prefetch if using 2G or if Save-Data is enabled.\n if (cn.saveData || /2g/.test(cn.effectiveType)) return Promise.resolve();\n }\n\n return getFilesForRoute(assetPrefix, route).then(function (output) {\n return Promise.all(canPrefetch ? output.scripts.map(function (script) {\n return prefetchViaDom(script, 'script');\n }) : []);\n }).then(function () {\n (0, _requestIdleCallback).requestIdleCallback(function () {\n return _this2.loadRoute(route, true)[\"catch\"](function () {});\n });\n })[\"catch\"]( // swallow prefetch errors\n function () {});\n }\n };\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yb3V0ZS1sb2FkZXIuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxzQkFBQSxHQUF5QkUsY0FBekI7QUFDQUYsb0JBQUEsR0FBdUJHLFlBQXZCO0FBQ0FILDhCQUFBLEdBQWlDSSxzQkFBakM7QUFDQUosNkJBQUEsR0FBZ0NLLHFCQUFoQztBQUNBTCx5QkFBQSxHQUE0Qk0saUJBQTVCOztBQUNBLElBQUlDLHNCQUFzQixHQUFHQyxzQkFBc0IsQ0FBQ0MsbUJBQU8sQ0FBQywySUFBRCxDQUFSLENBQW5EOztBQUNBLElBQUlDLG9CQUFvQixHQUFHRCxtQkFBTyxDQUFDLHlGQUFELENBQWxDOztBQUNBLFNBQVNELHNCQUFULENBQWdDRyxHQUFoQyxFQUFxQztBQUNqQyxTQUFPQSxHQUFHLElBQUlBLEdBQUcsQ0FBQ0MsVUFBWCxHQUF3QkQsR0FBeEIsR0FBOEI7QUFDakMsZUFBU0E7QUFEd0IsR0FBckM7QUFHSCxFQUNEO0FBQ0E7QUFDQTtBQUNBOzs7QUFDQSxJQUFNRSxpQkFBaUIsR0FBRyxJQUExQjs7QUFDQSxTQUFTQyxVQUFULENBQW9CQyxHQUFwQixFQUF5QkMsR0FBekIsRUFBOEJDLFNBQTlCLEVBQXlDO0FBQ3JDLE1BQUlDLEtBQUssR0FBR0YsR0FBRyxDQUFDRyxHQUFKLENBQVFKLEdBQVIsQ0FBWjs7QUFDQSxNQUFJRyxLQUFKLEVBQVc7QUFDUCxRQUFJLFlBQVlBLEtBQWhCLEVBQXVCO0FBQ25CLGFBQU9BLEtBQUssQ0FBQ0UsTUFBYjtBQUNIOztBQUNELFdBQU9DLE9BQU8sQ0FBQ0MsT0FBUixDQUFnQkosS0FBaEIsQ0FBUDtBQUNIOztBQUNELE1BQUlLLFFBQUo7QUFDQSxNQUFNQyxJQUFJLEdBQUcsSUFBSUgsT0FBSixDQUFZLFVBQUNDLE9BQUQsRUFBVztBQUNoQ0MsSUFBQUEsUUFBUSxHQUFH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QUFuQixFQUErQjtBQUMzQjtBQUNBLFlBQUlGLEVBQUUsQ0FBQ0csUUFBSCxJQUFlLEtBQUtDLElBQUwsQ0FBVUosRUFBRSxDQUFDSyxhQUFiLENBQW5CLEVBQWdELE9BQU9yRyxPQUFPLENBQUNDLE9BQVIsRUFBUDtBQUNuRDs7QUFDRCxhQUFPeUQsZ0JBQWdCLENBQUNDLFdBQUQsRUFBY0MsS0FBZCxDQUFoQixDQUFxQ3ZELElBQXJDLENBQTBDLFVBQUNpRyxNQUFEO0FBQUEsZUFBVXRHLE9BQU8sQ0FBQzJGLEdBQVIsQ0FBWTFFLFdBQVcsR0FBR3FGLE1BQU0sQ0FBQ3pDLE9BQVAsQ0FBZWxFLEdBQWYsQ0FBbUIsVUFBQzJDLE1BQUQ7QUFBQSxpQkFBVXBCLGNBQWMsQ0FBQ29CLE1BQUQsRUFBUyxRQUFULENBQXhCO0FBQUEsU0FBbkIsQ0FBSCxHQUMxRSxFQURtRCxDQUFWO0FBQUEsT0FBMUMsRUFFTGpDLElBRkssQ0FFQSxZQUFJO0FBQ1AsU0FBQyxHQUFHaEIsb0JBQUosRUFBMEIyRCxtQkFBMUIsQ0FBOEM7QUFBQSxpQkFBSSxNQUFJLENBQUN3QyxTQUFMLENBQWU1QixLQUFmLEVBQXNCLElBQXRCLFdBQWtDLFlBQUksQ0FDbkYsQ0FENkMsQ0FBSjtBQUFBLFNBQTlDO0FBR0gsT0FOTSxZQU1FO0FBQ1Qsa0JBQUksQ0FDSCxDQVJNLENBQVA7QUFTSDtBQXpGRSxHQUFQO0FBMkZIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3JvdXRlLWxvYWRlci5qcz9lYTM0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5tYXJrQXNzZXRFcnJvciA9IG1hcmtBc3NldEVycm9yO1xuZXhwb3J0cy5pc0Fzc2V0RXJyb3IgPSBpc0Fzc2V0RXJyb3I7XG5leHBvcnRzLmdldENsaWVudEJ1aWxkTWFuaWZlc3QgPSBnZXRDbGllbnRCdWlsZE1hbmlmZXN0O1xuZXhwb3J0cy5nZXRNaWRkbGV3YXJlTWFuaWZlc3QgPSBnZXRNaWRkbGV3YXJlTWFuaWZlc3Q7XG5leHBvcnRzLmNyZWF0ZVJvdXRlTG9hZGVyID0gY3JlYXRlUm91dGVMb2FkZXI7XG52YXIgX2dldEFzc2V0UGF0aEZyb21Sb3V0ZSA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2dldC1hc3NldC1wYXRoLWZyb20tcm91dGVcIikpO1xudmFyIF9yZXF1ZXN0SWRsZUNhbGxiYWNrID0gcmVxdWlyZShcIi4vcmVxdWVzdC1pZGxlLWNhbGxiYWNrXCIpO1xuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuLy8gMy44cyB3YXMgYXJiaXRyYXJpbHkgY2hvc2VuIGFzIGl0J3Mgd2hhdCBodHRwczovL3dlYi5kZXYvaW50ZXJhY3RpdmVcbi8vIGNvbnNpZGVycyBhcyBcIkdvb2RcIiB0aW1lLXRvLWludGVyYWN0aXZlLiBXZSBtdXN0IGFzc3VtZSBzb21ldGhpbmcgd2VudFxuLy8gd3JvbmcgYmV5b25kIHRoaXMgcG9pbnQsIGFuZCB0aGVuIGZhbGwtYmFjayB0byBhIGZ1bGwgcGFnZSB0cmFuc2l0aW9uIHRvXG4vLyBzaG93IHRoZSB1c2VyIHNvbWV0aGluZyBvZiB2YWx1ZS5cbmNvbnN0IE1TX01BWF9JRExFX0RFTEFZID0gMzgwMDtcbmZ1bmN0aW9uIHdpdGhGdXR1cmUoa2V5LCBtYXAsIGdlbmVyYXRvcikge1xuICAgIGxldCBlbnRyeSA9IG1hcC5nZXQoa2V5KTtcbiAgICBpZiAoZW50cnkpIHtcbiAgICAgICAgaWYgKCdmdXR1cmUnIGluIGVudHJ5KSB7XG4gICAgICAgICAgICByZXR1cm4gZW50cnkuZnV0dXJlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZW50cnkpO1xuICAgIH1cbiAgICBsZXQgcmVzb2x2ZXI7XG4gICAgY29uc3QgcHJvbSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKT0+e1xuICAgICAgICByZXNvbHZlciA9IHJlc29sdmU7XG4gICAgfSk7XG4gICAgbWFwLnNldChrZXksIGVudHJ5ID0ge1xuICAgICAgICByZXNvbHZlOiByZXNvbHZlcixcbiAgICAgICAgZnV0dXJlOiBwcm9tXG4gICAgfSk7XG4gICAgcmV0dXJuIGdlbmVyYXRvciA/IGdlbmVyYXRvcigpLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlcXVlbmNlc1xuICAgIC50aGVuKCh2YWx1ZSk9PihyZXNvbHZlcih2YWx1ZSksIHZhbHVlKVxuICAgICkuY2F0Y2goKGVycik9PntcbiAgICAgICAgbWFwLmRlbGV0ZShrZXkpO1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgfSkgOiBwcm9tO1xufVxuZnVuY3Rpb24gaGFzUHJlZmV0Y2gobGluaykge1xuICAgIHRyeSB7XG4gICAgICAgIGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XG4gICAgICAgIHJldHVybigvLyBkZXRlY3QgSUUxMSBzaW5jZSBpdCBzdXBwb3J0cyBwcmVmZXRjaCBidXQgaXNuJ3QgZGV0ZWN0ZWRcbiAgICAgICAgLy8gd2l0aCByZWxMaXN0LnN1cHBvcnRcbiAgICAgICAgKCEhd2luZG93Lk1TSW5wdXRNZXRob2RDb250ZXh0ICYmICEhZG9jdW1lbnQuZG9jdW1lbnRNb2RlKSB8fCBsaW5rLnJlbExpc3Quc3VwcG9ydHMoJ3ByZWZldGNoJykpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cbmNvbnN0IGNhblByZWZldGNoID0gaGFzUHJlZmV0Y2goKTtcbmZ1bmN0aW9uIHByZWZldGNoVmlhRG9tKGhyZWYsIGFzLCBsaW5rKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXMsIHJlaik9PntcbiAgICAgICAgY29uc3Qgc2VsZWN0b3IgPSBgXG4gICAgICBsaW5rW3JlbD1cInByZWZldGNoXCJdW2hyZWZePVwiJHtocmVmfVwiXSxcbiAgICAgIGxpbmtbcmVsPVwicHJlbG9hZFwiXVtocmVmXj1cIiR7aHJlZn1cIl0sXG4gICAgICBzY3JpcHRbc3JjXj1cIiR7aHJlZn1cIl1gO1xuICAgICAgICBpZiAoZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzZWxlY3RvcikpIHtcbiAgICAgICAgICAgIHJldHVybiByZXMoKTtcbiAgICAgICAgfVxuICAgICAgICBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpO1xuICAgICAgICAvLyBUaGUgb3JkZXIgb2YgcHJvcGVydHkgYXNzaWdubWVudCBoZXJlIGlzIGludGVudGlvbmFsOlxuICAgICAgICBpZiAoYXMpIGxpbmsuYXMgPSBhcztcbiAgICAgICAgbGluay5yZWwgPSBgcHJlZmV0Y2hgO1xuICAgICAgICBsaW5rLmNyb3NzT3JpZ2luID0gcHJvY2Vzcy5lbnYuX19ORVhUX0NST1NTX09SSUdJTjtcbiAgICAgICAgbGluay5vbmxvYWQgPSByZXM7XG4gICAgICAgIGxpbmsub25lcnJvciA9IHJlajtcbiAgICAgICAgLy8gYGhyZWZgIHNob3VsZCBhbHdheXMgYmUgbGFzdDpcbiAgICAgICAgbGluay5ocmVmID0gaHJlZjtcbiAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChsaW5rKTtcbiAgICB9KTtcbn1cbmNvbnN0IEFTU0VUX0xPQURfRVJST1IgPSBTeW1ib2woJ0FTU0VUX0xPQURfRVJST1InKTtcbmZ1bmN0aW9uIG1hcmtBc3NldEVycm9yKGVycikge1xuICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXJyLCBBU1NFVF9MT0FEX0VSUk9SLCB7XG4gICAgfSk7XG59XG5mdW5jdGlvbiBpc0Fzc2V0RXJyb3IoZXJyKSB7XG4gICAgcmV0dXJuIGVyciAmJiBBU1NFVF9MT0FEX0VSUk9SIGluIGVycjtcbn1cbmZ1bmN0aW9uIGFwcGVuZFNjcmlwdChzcmMsIHNjcmlwdCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KT0+e1xuICAgICAgICBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICAgICAgLy8gVGhlIG9yZGVyIG9mIHByb3BlcnR5IGFzc2lnbm1lbnQgaGVyZSBpcyBpbnRlbnRpb25hbC5cbiAgICAgICAgLy8gMS4gU2V0dXAgc3VjY2Vzcy9mYWlsdXJlIGhvb2tzIGluIGNhc2UgdGhlIGJyb3dzZXIgc3luY2hyb25vdXNseVxuICAgICAgICAvLyAgICBleGVjdXRlcyB3aGVuIGBzcmNgIGlzIHNldC5cbiAgICAgICAgc2NyaXB0Lm9ubG9hZCA9IHJlc29sdmU7XG4gICAgICAgIHNjcmlwdC5vbmVycm9yID0gKCk9PnJlamVjdChtYXJrQXNzZXRFcnJvcihuZXcgRXJyb3IoYEZhaWxlZCB0byBsb2FkIHNjcmlwdDogJHtzcmN9YCkpKVxuICAgICAgICA7XG4gICAgICAgIC8vIDIuIENvbmZpZ3VyZSB0aGUgY3Jvc3Mtb3JpZ2luIGF0dHJpYnV0ZSBiZWZvcmUgc2V0dGluZyBgc3JjYCBpbiBjYXNlIHRoZVxuICAgICAgICAvLyAgICBicm93c2VyIGJlZ2lucyB0byBmZXRjaC5cbiAgICAgICAgc2NyaXB0LmNyb3NzT3JpZ2luID0gcHJvY2Vzcy5lbnYuX19ORVhUX0NST1NTX09SSUdJTjtcbiAgICAgICAgLy8gMy4gRmluYWxseSwgc2V0IHRoZSBzb3VyY2UgYW5kIGluamVjdCBpbnRvIHRoZSBET00gaW4gY2FzZSB0aGUgY2hpbGRcbiAgICAgICAgLy8gICAgbXVzdCBiZSBhcHBlbmRlZCBmb3IgZmV0Y2hpbmcgdG8gc3RhcnQuXG4gICAgICAgIHNjcmlwdC5zcmMgPSBzcmM7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbiAgICB9KTtcbn1cbi8vIFdlIHdhaXQgZm9yIHBhZ2VzIHRvIGJlIGJ1aWx0IGluIGRldiBiZWZvcmUgd2Ugc3RhcnQgdGhlIHJvdXRlIHRyYW5zaXRpb25cbi8vIHRpbWVvdXQgdG8gcHJldmVudCBhbiB1bi1uZWNlc3NhcnkgaGFyZCBuYXZpZ2F0aW9uIGluIGRldmVsb3BtZW50LlxubGV0IGRldkJ1aWxkUHJvbWlzZTtcbi8vIFJlc29sdmUgYSBwcm9taXNlIHRoYXQgdGltZXMgb3V0IGFmdGVyIGdpdmVuIGFtb3VudCBvZiBtaWxsaXNlY29uZHMuXG5mdW5jdGlvbiByZXNvbHZlUHJvbWlzZVdpdGhUaW1lb3V0KHAsIG1zLCBlcnIpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCk9PntcbiAgICAgICAgbGV0IGNhbmNlbGxlZCA9IGZhbHNlO1xuICAgICAgICBwLnRoZW4oKHIpPT57XG4gICAgICAgICAgICAvLyBSZXNvbHZlZCwgY2FuY2VsIHRoZSB0aW1lb3V0XG4gICAgICAgICAgICBjYW5jZWxsZWQgPSB0cnVlO1xuICAgICAgICAgICAgcmVzb2x2ZShyKTtcbiAgICAgICAgfSkuY2F0Y2gocmVqZWN0KTtcbiAgICAgICAgLy8gV2Ugd3JhcCB0aGVzZSBjaGVja3Mgc2VwYXJhdGVseSBmb3IgYmV0dGVyIGRlYWQtY29kZSBlbGltaW5hdGlvbiBpblxuICAgICAgICAvLyBwcm9kdWN0aW9uIGJ1bmRsZXMuXG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgKGRldkJ1aWxkUHJvbWlzZSB8fCBQcm9taXNlLnJlc29sdmUoKSkudGhlbigoKT0+e1xuICAgICAgICAgICAgICAgICgwLCBfcmVxdWVzdElkbGVDYWxsYmFjaykucmVxdWVzdElkbGVDYWxsYmFjaygoKT0+c2V0VGltZW91dCgoKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjYW5jZWxsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSwgbXMpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgKDAsIF9yZXF1ZXN0SWRsZUNhbGxiYWNrKS5yZXF1ZXN0SWRsZUNhbGxiYWNrKCgpPT5zZXRUaW1lb3V0KCgpPT57XG4gICAgICAgICAgICAgICAgICAgIGlmICghY2FuY2VsbGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sIG1zKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuZnVuY3Rpb24gZ2V0Q2xpZW50QnVpbGRNYW5pZmVzdCgpIHtcbiAgICBpZiAoc2VsZi5fX0JVSUxEX01BTklGRVNUKSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoc2VsZi5fX0JVSUxEX01BTklGRVNUKTtcbiAgICB9XG4gICAgY29uc3Qgb25CdWlsZE1hbmlmZXN0ID0gbmV3IFByb21pc2UoKHJlc29sdmUpPT57XG4gICAgICAgIC8vIE1hbmRhdG9yeSBiZWNhdXNlIHRoaXMgaXMgbm90IGNvbmN1cnJlbnQgc2FmZTpcbiAgICAgICAgY29uc3QgY2IgPSBzZWxmLl9fQlVJTERfTUFOSUZFU1RfQ0I7XG4gICAgICAgIHNlbGYuX19CVUlMRF9NQU5JRkVTVF9DQiA9ICgpPT57XG4gICAgICAgICAgICByZXNvbHZlKHNlbGYuX19CVUlMRF9NQU5JRkVTVCk7XG4gICAgICAgICAgICBjYiAmJiBjYigpO1xuICAgICAgICB9O1xuICAgIH0pO1xuICAgIHJldHVybiByZXNvbHZlUHJvbWlzZVdpdGhUaW1lb3V0KG9uQnVpbGRNYW5pZmVzdCwgTVNfTUFYX0lETEVfREVMQVksIG1hcmtBc3NldEVycm9yKG5ldyBFcnJvcignRmFpbGVkIHRvIGxvYWQgY2xpZW50IGJ1aWxkIG1hbmlmZXN0JykpKTtcbn1cbmZ1bmN0aW9uIGdldE1pZGRsZXdhcmVNYW5pZmVzdCgpIHtcbiAgICBpZiAoc2VsZi5fX01JRERMRVdBUkVfTUFOSUZFU1QpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShzZWxmLl9fTUlERExFV0FSRV9NQU5JRkVTVCk7XG4gICAgfVxuICAgIGNvbnN0IG9uTWlkZGxld2FyZU1hbmlmZXN0ID0gbmV3IFByb21pc2UoKHJlc29sdmUpPT57XG4gICAgICAgIGNvbnN0IGNiID0gc2VsZi5fX01JRERMRVdBUkVfTUFOSUZFU1RfQ0I7XG4gICAgICAgIHNlbGYuX19NSURETEVXQVJFX01BTklGRVNUX0NCID0gKCk9PntcbiAgICAgICAgICAgIHJlc29sdmUoc2VsZi5fX01JRERMRVdBUkVfTUFOSUZFU1QpO1xuICAgICAgICAgICAgY2IgJiYgY2IoKTtcbiAgICAgICAgfTtcbiAgICB9KTtcbiAgICByZXR1cm4gcmVzb2x2ZVByb21pc2VXaXRoVGltZW91dChvbk1pZGRsZXdhcmVNYW5pZmVzdCwgTVNfTUFYX0lETEVfREVMQVksIG1hcmtBc3NldEVycm9yKG5ldyBFcnJvcignRmFpbGVkIHRvIGxvYWQgY2xpZW50IG1pZGRsZXdhcmUgbWFuaWZlc3QnKSkpO1xufVxuZnVuY3Rpb24gZ2V0RmlsZXNGb3JSb3V0ZShhc3NldFByZWZpeCwgcm91dGUpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7XG4gICAgICAgICAgICBzY3JpcHRzOiBbXG4gICAgICAgICAgICAgICAgYXNzZXRQcmVmaXggKyAnL19uZXh0L3N0YXRpYy9jaHVua3MvcGFnZXMnICsgZW5jb2RlVVJJKCgwLCBfZ2V0QXNzZXRQYXRoRnJvbVJvdXRlKS5kZWZhdWx0KHJvdXRlLCAnLmpzJykpLCBcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAvLyBTdHlsZXMgYXJlIGhhbmRsZWQgYnkgYHN0eWxlLWxvYWRlcmAgaW4gZGV2ZWxvcG1lbnQ6XG4gICAgICAgICAgICBjc3M6IFtdXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gZ2V0Q2xpZW50QnVpbGRNYW5pZmVzdCgpLnRoZW4oKG1hbmlmZXN0KT0+e1xuICAgICAgICBpZiAoIShyb3V0ZSBpbiBtYW5pZmVzdCkpIHtcbiAgICAgICAgICAgIHRocm93IG1hcmtBc3NldEVycm9yKG5ldyBFcnJvcihgRmFpbGVkIHRvIGxvb2t1cCByb3V0ZTogJHtyb3V0ZX1gKSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYWxsRmlsZXMgPSBtYW5pZmVzdFtyb3V0ZV0ubWFwKChlbnRyeSk9PmFzc2V0UHJlZml4ICsgJy9fbmV4dC8nICsgZW5jb2RlVVJJKGVudHJ5KVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc2NyaXB0czogYWxsRmlsZXMuZmlsdGVyKCh2KT0+di5lbmRzV2l0aCgnLmpzJylcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBjc3M6IGFsbEZpbGVzLmZpbHRlcigodik9PnYuZW5kc1dpdGgoJy5jc3MnKVxuICAgICAgICAgICAgKVxuICAgICAgICB9O1xuICAgIH0pO1xufVxuZnVuY3Rpb24gY3JlYXRlUm91dGVMb2FkZXIoYXNzZXRQcmVmaXgpIHtcbiAgICBjb25zdCBlbnRyeXBvaW50cyA9IG5ldyBNYXAoKTtcbiAgICBjb25zdCBsb2FkZWRTY3JpcHRzID0gbmV3IE1hcCgpO1xuICAgIGNvbnN0IHN0eWxlU2hlZXRzID0gbmV3IE1hcCgpO1xuICAgIGNvbnN0IHJvdXRlcyA9IG5ldyBNYXAoKTtcbiAgICBmdW5jdGlvbiBtYXliZUV4ZWN1dGVTY3JpcHQoc3JjKSB7XG4gICAgICAgIC8vIFdpdGggSE1SIHdlIG1pZ2h0IG5lZWQgdG8gXCJyZWxvYWRcIiBzY3JpcHRzIHdoZW4gdGhleSBhcmVcbiAgICAgICAgLy8gZGlzcG9zZWQgYW5kIHJlYWRkZWQuIEV4ZWN1dGluZyBzY3JpcHRzIHR3aWNlIGhhcyBubyBmdW5jdGlvbmFsXG4gICAgICAgIC8vIGRpZmZlcmVuY2VzXG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgbGV0IHByb20gPSBsb2FkZWRTY3JpcHRzLmdldChzcmMpO1xuICAgICAgICAgICAgaWYgKHByb20pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJvbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFNraXAgZXhlY3V0aW5nIHNjcmlwdCBpZiBpdCdzIGFscmVhZHkgaW4gdGhlIERPTTpcbiAgICAgICAgICAgIGlmIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBzY3JpcHRbc3JjXj1cIiR7c3JjfVwiXWApKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbG9hZGVkU2NyaXB0cy5zZXQoc3JjLCBwcm9tID0gYXBwZW5kU2NyaXB0KHNyYykpO1xuICAgICAgICAgICAgcmV0dXJuIHByb207XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gYXBwZW5kU2NyaXB0KHNyYyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZmV0Y2hTdHlsZVNoZWV0KGhyZWYpIHtcbiAgICAgICAgbGV0IHByb20gPSBzdHlsZVNoZWV0cy5nZXQoaHJlZik7XG4gICAgICAgIGlmIChwcm9tKSB7XG4gICAgICAgICAgICByZXR1cm4gcHJvbTtcbiAgICAgICAgfVxuICAgICAgICBzdHlsZVNoZWV0cy5zZXQoaHJlZiwgcHJvbSA9IGZldGNoKGhyZWYpLnRoZW4oKHJlcyk9PntcbiAgICAgICAgICAgIGlmICghcmVzLm9rKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gbG9hZCBzdHlsZXNoZWV0OiAke2hyZWZ9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzLnRleHQoKS50aGVuKCh0ZXh0KT0+KHtcbiAgICAgICAgICAgICAgICAgICAgaHJlZjogaHJlZixcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogdGV4dFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9KS5jYXRjaCgoZXJyKT0+e1xuICAgICAgICAgICAgdGhyb3cgbWFya0Fzc2V0RXJyb3IoZXJyKTtcbiAgICAgICAgfSkpO1xuICAgICAgICByZXR1cm4gcHJvbTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgd2hlbkVudHJ5cG9pbnQgKHJvdXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gd2l0aEZ1dHVyZShyb3V0ZSwgZW50cnlwb2ludHMpO1xuICAgICAgICB9LFxuICAgICAgICBvbkVudHJ5cG9pbnQgKHJvdXRlLCBleGVjdXRlKSB7XG4gICAgICAgICAgICAoZXhlY3V0ZSA/IFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PmV4ZWN1dGUoKVxuICAgICAgICAgICAgKS50aGVuKChleHBvcnRzKT0+KHtcbiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50OiBleHBvcnRzICYmIGV4cG9ydHMuZGVmYXVsdCB8fCBleHBvcnRzLFxuICAgICAgICAgICAgICAgICAgICBleHBvcnRzOiBleHBvcnRzXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICwgKGVycik9Pih7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yOiBlcnJcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSA6IFByb21pc2UucmVzb2x2ZSh1bmRlZmluZWQpKS50aGVuKChpbnB1dCk9PntcbiAgICAgICAgICAgICAgICBjb25zdCBvbGQgPSBlbnRyeXBvaW50cy5nZXQocm91dGUpO1xuICAgICAgICAgICAgICAgIGlmIChvbGQgJiYgJ3Jlc29sdmUnIGluIG9sZCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW5wdXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5cG9pbnRzLnNldChyb3V0ZSwgaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgb2xkLnJlc29sdmUoaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlucHV0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbnRyeXBvaW50cy5zZXQocm91dGUsIGlucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5cG9pbnRzLmRlbGV0ZShyb3V0ZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gd2hlbiB0aGlzIGVudHJ5cG9pbnQgaGFzIGJlZW4gcmVzb2x2ZWQgYmVmb3JlXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoZSByb3V0ZSBpcyBvdXRkYXRlZCBhbmQgd2Ugd2FudCB0byBpbnZhbGlkYXRlXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgY2FjaGUgZW50cnlcbiAgICAgICAgICAgICAgICAgICAgcm91dGVzLmRlbGV0ZShyb3V0ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIGxvYWRSb3V0ZSAocm91dGUsIHByZWZldGNoKSB7XG4gICAgICAgICAgICByZXR1cm4gd2l0aEZ1dHVyZShyb3V0ZSwgcm91dGVzLCAoKT0+e1xuICAgICAgICAgICAgICAgIGNvbnN0IHJvdXRlRmlsZXNQcm9taXNlID0gZ2V0RmlsZXNGb3JSb3V0ZShhc3NldFByZWZpeCwgcm91dGUpLnRoZW4oKHsgc2NyaXB0cyAsIGNzcyAgfSk9PntcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5cG9pbnRzLmhhcyhyb3V0ZSkgPyBbXSA6IFByb21pc2UuYWxsKHNjcmlwdHMubWFwKG1heWJlRXhlY3V0ZVNjcmlwdCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgUHJvbWlzZS5hbGwoY3NzLm1hcChmZXRjaFN0eWxlU2hlZXQpKSwgXG4gICAgICAgICAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgICAgIH0pLnRoZW4oKHJlcyk9PntcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMud2hlbkVudHJ5cG9pbnQocm91dGUpLnRoZW4oKGVudHJ5cG9pbnQpPT4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5cG9pbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGVzOiByZXNbMV1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGRldkJ1aWxkUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJvdXRlRmlsZXNQcm9taXNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJvdXRlRmlsZXNQcm9taXNlLmZpbmFsbHkoKCk9PntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVQcm9taXNlV2l0aFRpbWVvdXQocm91dGVGaWxlc1Byb21pc2UsIE1TX01BWF9JRExFX0RFTEFZLCBtYXJrQXNzZXRFcnJvcihuZXcgRXJyb3IoYFJvdXRlIGRpZCBub3QgY29tcGxldGUgbG9hZGluZzogJHtyb3V0ZX1gKSkpLnRoZW4oKHsgZW50cnlwb2ludCAsIHN0eWxlcyAgfSk9PntcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzID0gT2JqZWN0LmFzc2lnbih7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZXM6IHN0eWxlc1xuICAgICAgICAgICAgICAgICAgICB9LCBlbnRyeXBvaW50KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdlcnJvcicgaW4gZW50cnlwb2ludCA/IGVudHJ5cG9pbnQgOiByZXM7XG4gICAgICAgICAgICAgICAgfSkuY2F0Y2goKGVycik9PntcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByZWZldGNoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBkb24ndCB3YW50IHRvIGNhY2hlIGVycm9ycyBkdXJpbmcgcHJlZmV0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I6IGVyclxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHByZWZldGNoIChyb3V0ZSkge1xuICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL0dvb2dsZUNocm9tZUxhYnMvcXVpY2tsaW5rL2Jsb2IvNDUzYTY2MWZhMWZhOTQwZTJkMmUwNDQ0NTIzOThlMzhjNjdhOThmYi9zcmMvaW5kZXgubWpzI0wxMTUtTDExOFxuICAgICAgICAgICAgLy8gTGljZW5zZTogQXBhY2hlIDIuMFxuICAgICAgICAgICAgbGV0IGNuO1xuICAgICAgICAgICAgaWYgKGNuID0gbmF2aWdhdG9yLmNvbm5lY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAvLyBEb24ndCBwcmVmZXRjaCBpZiB1c2luZyAyRyBvciBpZiBTYXZlLURhdGEgaXMgZW5hYmxlZC5cbiAgICAgICAgICAgICAgICBpZiAoY24uc2F2ZURhdGEgfHwgLzJnLy50ZXN0KGNuLmVmZmVjdGl2ZVR5cGUpKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZ2V0RmlsZXNGb3JSb3V0ZShhc3NldFByZWZpeCwgcm91dGUpLnRoZW4oKG91dHB1dCk9PlByb21pc2UuYWxsKGNhblByZWZldGNoID8gb3V0cHV0LnNjcmlwdHMubWFwKChzY3JpcHQpPT5wcmVmZXRjaFZpYURvbShzY3JpcHQsICdzY3JpcHQnKVxuICAgICAgICAgICAgICAgICkgOiBbXSlcbiAgICAgICAgICAgICkudGhlbigoKT0+e1xuICAgICAgICAgICAgICAgICgwLCBfcmVxdWVzdElkbGVDYWxsYmFjaykucmVxdWVzdElkbGVDYWxsYmFjaygoKT0+dGhpcy5sb2FkUm91dGUocm91dGUsIHRydWUpLmNhdGNoKCgpPT57XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pLmNhdGNoKC8vIHN3YWxsb3cgcHJlZmV0Y2ggZXJyb3JzXG4gICAgICAgICAgICAoKT0+e1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yb3V0ZS1sb2FkZXIuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwibWFya0Fzc2V0RXJyb3IiLCJpc0Fzc2V0RXJyb3IiLCJnZXRDbGllbnRCdWlsZE1hbmlmZXN0IiwiZ2V0TWlkZGxld2FyZU1hbmlmZXN0IiwiY3JlYXRlUm91dGVMb2FkZXIiLCJfZ2V0QXNzZXRQYXRoRnJvbVJvdXRlIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcmVxdWVzdElkbGVDYWxsYmFjayIsIm9iaiIsIl9fZXNNb2R1bGUiLCJNU19NQVhfSURMRV9ERUxBWSIsIndpdGhGdXR1cmUiLCJrZXkiLCJtYXAiLCJnZW5lcmF0b3IiLCJlbnRyeSIsImdldCIsImZ1dHVyZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVzb2x2ZXIiLCJwcm9tIiwic2V0IiwidGhlbiIsImVyciIsImhhc1ByZWZldGNoIiwibGluayIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsIndpbmRvdyIsIk1TSW5wdXRNZXRob2RDb250ZXh0IiwiZG9jdW1lbnRNb2RlIiwicmVsTGlzdCIsInN1cHBvcnRzIiwiZSIsImNhblByZWZldGNoIiwicHJlZmV0Y2hWaWFEb20iLCJocmVmIiwiYXMiLCJyZXMiLCJyZWoiLCJzZWxlY3RvciIsInF1ZXJ5U2VsZWN0b3IiLCJyZWwiLCJjcm9zc09yaWdpbiIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfQ1JPU1NfT1JJR0lOIiwib25sb2FkIiwib25lcnJvciIsImhlYWQiLCJhcHBlbmRDaGlsZCIsIkFTU0VUX0xPQURfRVJST1IiLCJTeW1ib2wiLCJhcHBlbmRTY3JpcHQiLCJzcmMiLCJzY3JpcHQiLCJyZWplY3QiLCJFcnJvciIsImJvZHkiLCJkZXZCdWlsZFByb21pc2UiLCJyZXNvbHZlUHJvbWlzZVdpdGhUaW1lb3V0IiwicCIsIm1zIiwiY2FuY2VsbGVkIiwiciIsInJlcXVlc3RJZGxlQ2FsbGJhY2siLCJzZXRUaW1lb3V0Iiwic2VsZiIsIl9fQlVJTERfTUFOSUZFU1QiLCJvbkJ1aWxkTWFuaWZlc3QiLCJjYiIsIl9fQlVJTERfTUFOSUZFU1RfQ0IiLCJfX01JRERMRVdBUkVfTUFOSUZFU1QiLCJvbk1pZGRsZXdhcmVNYW5pZmVzdCIsIl9fTUlERExFV0FSRV9NQU5JRkVTVF9DQiIsImdldEZpbGVzRm9yUm91dGUiLCJhc3NldFByZWZpeCIsInJvdXRlIiwic2NyaXB0cyIsImVuY29kZVVSSSIsImNzcyIsIm1hbmlmZXN0IiwiYWxsRmlsZXMiLCJmaWx0ZXIiLCJ2IiwiZW5kc1dpdGgiLCJlbnRyeXBvaW50cyIsIk1hcCIsImxvYWRlZFNjcmlwdHMiLCJzdHlsZVNoZWV0cyIsInJvdXRlcyIsIm1heWJlRXhlY3V0ZVNjcmlwdCIsImZldGNoU3R5bGVTaGVldCIsImZldGNoIiwib2siLCJ0ZXh0IiwiY29udGVudCIsIndoZW5FbnRyeXBvaW50Iiwib25FbnRyeXBvaW50IiwiZXhlY3V0ZSIsImNvbXBvbmVudCIsImVycm9yIiwidW5kZWZpbmVkIiwiaW5wdXQiLCJvbGQiLCJsb2FkUm91dGUiLCJwcmVmZXRjaCIsInJvdXRlRmlsZXNQcm9taXNlIiwiYWxsIiwiaGFzIiwiZW50cnlwb2ludCIsInN0eWxlcyIsImFzc2lnbiIsImNuIiwibmF2aWdhdG9yIiwiY29ubmVjdGlvbiIsInNhdmVEYXRhIiwidGVzdCIsImVmZmVjdGl2ZVR5cGUiLCJvdXRwdXQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/route-loader.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/router.js": +/*!*************************************************!*\ + !*** ./node_modules/next/dist/client/router.js ***! + \*************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _construct = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/construct */ \"./node_modules/@babel/runtime/helpers/construct.js\");\n\nvar _s = $RefreshSig$();\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"Router\", ({\n enumerable: true,\n get: function get() {\n return _router[\"default\"];\n }\n}));\nObject.defineProperty(exports, \"withRouter\", ({\n enumerable: true,\n get: function get() {\n return _withRouter[\"default\"];\n }\n}));\nexports.useRouter = useRouter;\nexports.createRouter = createRouter;\nexports.makePublicRouterInstance = makePublicRouterInstance;\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _router = _interopRequireDefault(__webpack_require__(/*! ../shared/lib/router/router */ \"./node_modules/next/dist/shared/lib/router/router.js\"));\n\nvar _routerContext = __webpack_require__(/*! ../shared/lib/router-context */ \"./node_modules/next/dist/shared/lib/router-context.js\");\n\nvar _isError = _interopRequireDefault(__webpack_require__(/*! ../lib/is-error */ \"./node_modules/next/dist/lib/is-error.js\"));\n\nvar _withRouter = _interopRequireDefault(__webpack_require__(/*! ./with-router */ \"./node_modules/next/dist/client/with-router.js\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar singletonRouter = {\n router: null,\n readyCallbacks: [],\n ready: function ready(cb) {\n if (this.router) return cb();\n\n if (true) {\n this.readyCallbacks.push(cb);\n }\n }\n}; // Create public properties and methods of the router in the singletonRouter\n\nvar urlPropertyFields = ['pathname', 'route', 'query', 'asPath', 'components', 'isFallback', 'basePath', 'locale', 'locales', 'defaultLocale', 'isReady', 'isPreview', 'isLocaleDomain', 'domainLocales'];\nvar routerEvents = ['routeChangeStart', 'beforeHistoryChange', 'routeChangeComplete', 'routeChangeError', 'hashChangeStart', 'hashChangeComplete'];\nvar coreMethodFields = ['push', 'replace', 'reload', 'back', 'prefetch', 'beforePopState']; // Events is a static property on the router, the router doesn't have to be initialized to use it\n\nObject.defineProperty(singletonRouter, 'events', {\n get: function get() {\n return _router[\"default\"].events;\n }\n});\nurlPropertyFields.forEach(function (field) {\n // Here we need to use Object.defineProperty because we need to return\n // the property assigned to the actual router\n // The value might get changed as we change routes and this is the\n // proper way to access it\n Object.defineProperty(singletonRouter, field, {\n get: function get() {\n var router = getRouter();\n return router[field];\n }\n });\n});\ncoreMethodFields.forEach(function (field) {\n singletonRouter[field] = function () {\n var router = getRouter();\n return router[field].apply(router, arguments);\n };\n});\nrouterEvents.forEach(function (event) {\n singletonRouter.ready(function () {\n _router[\"default\"].events.on(event, function () {\n var eventField = \"on\".concat(event.charAt(0).toUpperCase()).concat(event.substring(1));\n var _singletonRouter = singletonRouter;\n\n if (_singletonRouter[eventField]) {\n try {\n _singletonRouter[eventField].apply(_singletonRouter, arguments);\n } catch (err) {\n console.error(\"Error when running the Router event: \".concat(eventField));\n console.error((0, _isError)[\"default\"](err) ? \"\".concat(err.message, \"\\n\").concat(err.stack) : err + '');\n }\n }\n });\n });\n});\n\nfunction getRouter() {\n if (!singletonRouter.router) {\n var message = 'No router instance found.\\n' + 'You should only use \"next/router\" on the client side of your app.\\n';\n throw new Error(message);\n }\n\n return singletonRouter.router;\n}\n\nvar _default = singletonRouter;\nexports[\"default\"] = _default;\n\nfunction useRouter() {\n _s();\n\n return _react[\"default\"].useContext(_routerContext.RouterContext);\n}\n\n_s(useRouter, \"gDsCjeeItUuvgOWf1v4qoK9RF6k=\");\n\nfunction createRouter() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n singletonRouter.router = _construct(_router[\"default\"], args);\n singletonRouter.readyCallbacks.forEach(function (cb) {\n return cb();\n });\n singletonRouter.readyCallbacks = [];\n return singletonRouter.router;\n}\n\nfunction makePublicRouterInstance(router) {\n var scopedRouter = router;\n var instance = {};\n\n var _iterator = _createForOfIteratorHelper(urlPropertyFields),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var property = _step.value;\n\n if (typeof scopedRouter[property] === 'object') {\n instance[property] = Object.assign(Array.isArray(scopedRouter[property]) ? [] : {}, scopedRouter[property]) // makes sure query is not stateful\n ;\n continue;\n }\n\n instance[property] = scopedRouter[property];\n } // Events is a static property on the router, the router doesn't have to be initialized to use it\n\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n instance.events = _router[\"default\"].events;\n coreMethodFields.forEach(function (field) {\n instance[field] = function () {\n return scopedRouter[field].apply(scopedRouter, arguments);\n };\n });\n return instance;\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yb3V0ZXIuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOzs7Ozs7Ozs7Ozs7QUFDYkEsOENBQTZDO0FBQ3pDRyxFQUFBQSxLQUFLLEVBQUU7QUFEa0MsQ0FBN0M7QUFHQUgsMENBQXlDO0FBQ3JDSSxFQUFBQSxVQUFVLEVBQUUsSUFEeUI7QUFFckNDLEVBQUFBLEdBQUcsRUFBRSxlQUFXO0FBQ1osV0FBT0MsT0FBTyxXQUFkO0FBQ0g7QUFKb0MsQ0FBekM7QUFNQU4sOENBQTZDO0FBQ3pDSSxFQUFBQSxVQUFVLEVBQUUsSUFENkI7QUFFekNDLEVBQUFBLEdBQUcsRUFBRSxlQUFXO0FBQ1osV0FBT0UsV0FBVyxXQUFsQjtBQUNIO0FBSndDLENBQTdDO0FBTUFMLGlCQUFBLEdBQW9CTSxTQUFwQjtBQUNBTixvQkFBQSxHQUF1Qk8sWUFBdkI7QUFDQVAsZ0NBQUEsR0FBbUNRLHdCQUFuQztBQUNBUixrQkFBQSxHQUFrQixLQUFLLENBQXZCOztBQUNBLElBQUlTLE1BQU0sR0FBR0Msc0JBQXNCLENBQUNDLG1CQUFPLENBQUMsNENBQUQsQ0FBUixDQUFuQzs7QUFDQSxJQUFJUCxPQUFPLEdBQUdNLHNCQUFzQixDQUFDQyxtQkFBTyxDQUFDLHlGQUFELENBQVIsQ0FBcEM7O0FBQ0EsSUFBSUMsY0FBYyxHQUFHRCxtQkFBTyxDQUFDLDJGQUFELENBQTVCOztBQUNBLElBQUlFLFFBQVEsR0FBR0gsc0JBQXNCLENBQUNDLG1CQUFPLENBQUMsaUVBQUQsQ0FBUixDQUFyQzs7QUFDQSxJQUFJTixXQUFXLEdBQUdLLHNCQUFzQixDQUFDQyxtQkFBTyxDQUFDLHFFQUFELENBQVIsQ0FBeEM7O0FBQ0EsU0FBU0Qsc0JBQVQsQ0FBZ0NJLEdBQWhDLEVBQXFDO0FBQ2pDLFNBQU9BLEdBQUcsSUFBSUEsR0FBRyxDQUFDQyxVQUFYLEdBQXdCRCxHQUF4QixHQUE4QjtBQUNqQyxlQUFTQTtBQUR3QixHQUFyQztBQUdIOztBQUNELElB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LENBQUNFLFFBQUQsQ0FBbkIsS0FBa0MsUUFBdEMsRUFBZ0Q7QUFDNUNELFFBQUFBLFFBQVEsQ0FBQ0MsUUFBRCxDQUFSLEdBQXFCbEQsTUFBTSxDQUFDbUQsTUFBUCxDQUFjQyxLQUFLLENBQUNDLE9BQU4sQ0FBY0wsWUFBWSxDQUFDRSxRQUFELENBQTFCLElBQXdDLEVBQXhDLEdBQTZDLEVBQTNELEVBQ2xCRixZQUFZLENBQUNFLFFBQUQsQ0FETSxDQUFyQixDQUMyQjtBQUQzQjtBQUdBO0FBQ0g7O0FBQ0RELE1BQUFBLFFBQVEsQ0FBQ0MsUUFBRCxDQUFSLEdBQXFCRixZQUFZLENBQUNFLFFBQUQsQ0FBakM7QUFDSCxLQVpxQyxDQWF0Qzs7QUFic0M7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFjdENELEVBQUFBLFFBQVEsQ0FBQ3RCLE1BQVQsR0FBa0JyQixPQUFPLFdBQVAsQ0FBZ0JxQixNQUFsQztBQUNBRCxFQUFBQSxnQkFBZ0IsQ0FBQ0UsT0FBakIsQ0FBeUIsVUFBQ0MsS0FBRCxFQUFTO0FBQzlCb0IsSUFBQUEsUUFBUSxDQUFDcEIsS0FBRCxDQUFSLEdBQWtCLFlBQVc7QUFDekIsYUFBT21CLFlBQVksQ0FBQ25CLEtBQUQsQ0FBWixPQUFBbUIsWUFBWSxZQUFuQjtBQUNILEtBRkQ7QUFHSCxHQUpEO0FBS0EsU0FBT0MsUUFBUDtBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3JvdXRlci5qcz8zMWZjIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiUm91dGVyXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfcm91dGVyLmRlZmF1bHQ7XG4gICAgfVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJ3aXRoUm91dGVyXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfd2l0aFJvdXRlci5kZWZhdWx0O1xuICAgIH1cbn0pO1xuZXhwb3J0cy51c2VSb3V0ZXIgPSB1c2VSb3V0ZXI7XG5leHBvcnRzLmNyZWF0ZVJvdXRlciA9IGNyZWF0ZVJvdXRlcjtcbmV4cG9ydHMubWFrZVB1YmxpY1JvdXRlckluc3RhbmNlID0gbWFrZVB1YmxpY1JvdXRlckluc3RhbmNlO1xuZXhwb3J0cy5kZWZhdWx0ID0gdm9pZCAwO1xudmFyIF9yZWFjdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJlYWN0XCIpKTtcbnZhciBfcm91dGVyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9yb3V0ZXIvcm91dGVyXCIpKTtcbnZhciBfcm91dGVyQ29udGV4dCA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3JvdXRlci1jb250ZXh0XCIpO1xudmFyIF9pc0Vycm9yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vbGliL2lzLWVycm9yXCIpKTtcbnZhciBfd2l0aFJvdXRlciA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vd2l0aC1yb3V0ZXJcIikpO1xuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuY29uc3Qgc2luZ2xldG9uUm91dGVyID0ge1xuICAgIHJvdXRlcjogbnVsbCxcbiAgICByZWFkeUNhbGxiYWNrczogW10sXG4gICAgcmVhZHkgKGNiKSB7XG4gICAgICAgIGlmICh0aGlzLnJvdXRlcikgcmV0dXJuIGNiKCk7XG4gICAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgdGhpcy5yZWFkeUNhbGxiYWNrcy5wdXNoKGNiKTtcbiAgICAgICAgfVxuICAgIH1cbn07XG4vLyBDcmVhdGUgcHVibGljIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMgb2YgdGhlIHJvdXRlciBpbiB0aGUgc2luZ2xldG9uUm91dGVyXG5jb25zdCB1cmxQcm9wZXJ0eUZpZWxkcyA9IFtcbiAgICAncGF0aG5hbWUnLFxuICAgICdyb3V0ZScsXG4gICAgJ3F1ZXJ5JyxcbiAgICAnYXNQYXRoJyxcbiAgICAnY29tcG9uZW50cycsXG4gICAgJ2lzRmFsbGJhY2snLFxuICAgICdiYXNlUGF0aCcsXG4gICAgJ2xvY2FsZScsXG4gICAgJ2xvY2FsZXMnLFxuICAgICdkZWZhdWx0TG9jYWxlJyxcbiAgICAnaXNSZWFkeScsXG4gICAgJ2lzUHJldmlldycsXG4gICAgJ2lzTG9jYWxlRG9tYWluJyxcbiAgICAnZG9tYWluTG9jYWxlcycsIFxuXTtcbmNvbnN0IHJvdXRlckV2ZW50cyA9IFtcbiAgICAncm91dGVDaGFuZ2VTdGFydCcsXG4gICAgJ2JlZm9yZUhpc3RvcnlDaGFuZ2UnLFxuICAgICdyb3V0ZUNoYW5nZUNvbXBsZXRlJyxcbiAgICAncm91dGVDaGFuZ2VFcnJvcicsXG4gICAgJ2hhc2hDaGFuZ2VTdGFydCcsXG4gICAgJ2hhc2hDaGFuZ2VDb21wbGV0ZScsIFxuXTtcbmNvbnN0IGNvcmVNZXRob2RGaWVsZHMgPSBbXG4gICAgJ3B1c2gnLFxuICAgICdyZXBsYWNlJyxcbiAgICAncmVsb2FkJyxcbiAgICAnYmFjaycsXG4gICAgJ3ByZWZldGNoJyxcbiAgICAnYmVmb3JlUG9wU3RhdGUnLCBcbl07XG4vLyBFdmVudHMgaXMgYSBzdGF0aWMgcHJvcGVydHkgb24gdGhlIHJvdXRlciwgdGhlIHJvdXRlciBkb2Vzbid0IGhhdmUgdG8gYmUgaW5pdGlhbGl6ZWQgdG8gdXNlIGl0XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoc2luZ2xldG9uUm91dGVyLCAnZXZlbnRzJywge1xuICAgIGdldCAoKSB7XG4gICAgICAgIHJldHVybiBfcm91dGVyLmRlZmF1bHQuZXZlbnRzO1xuICAgIH1cbn0pO1xudXJsUHJvcGVydHlGaWVsZHMuZm9yRWFjaCgoZmllbGQpPT57XG4gICAgLy8gSGVyZSB3ZSBuZWVkIHRvIHVzZSBPYmplY3QuZGVmaW5lUHJvcGVydHkgYmVjYXVzZSB3ZSBuZWVkIHRvIHJldHVyblxuICAgIC8vIHRoZSBwcm9wZXJ0eSBhc3NpZ25lZCB0byB0aGUgYWN0dWFsIHJvdXRlclxuICAgIC8vIFRoZSB2YWx1ZSBtaWdodCBnZXQgY2hhbmdlZCBhcyB3ZSBjaGFuZ2Ugcm91dGVzIGFuZCB0aGlzIGlzIHRoZVxuICAgIC8vIHByb3BlciB3YXkgdG8gYWNjZXNzIGl0XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHNpbmdsZXRvblJvdXRlciwgZmllbGQsIHtcbiAgICAgICAgZ2V0ICgpIHtcbiAgICAgICAgICAgIGNvbnN0IHJvdXRlciA9IGdldFJvdXRlcigpO1xuICAgICAgICAgICAgcmV0dXJuIHJvdXRlcltmaWVsZF07XG4gICAgICAgIH1cbiAgICB9KTtcbn0pO1xuY29yZU1ldGhvZEZpZWxkcy5mb3JFYWNoKChmaWVsZCk9PntcbiAgICBzaW5nbGV0b25Sb3V0ZXJbZmllbGRdID0gKC4uLmFyZ3MpPT57XG4gICAgICAgIGNvbnN0IHJvdXRlciA9IGdldFJvdXRlcigpO1xuICAgICAgICByZXR1cm4gcm91dGVyW2ZpZWxkXSguLi5hcmdzKTtcbiAgICB9O1xufSk7XG5yb3V0ZXJFdmVudHMuZm9yRWFjaCgoZXZlbnQpPT57XG4gICAgc2luZ2xldG9uUm91dGVyLnJlYWR5KCgpPT57XG4gICAgICAgIF9yb3V0ZXIuZGVmYXVsdC5ldmVudHMub24oZXZlbnQsICguLi5hcmdzKT0+e1xuICAgICAgICAgICAgY29uc3QgZXZlbnRGaWVsZCA9IGBvbiR7ZXZlbnQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCl9JHtldmVudC5zdWJzdHJpbmcoMSl9YDtcbiAgICAgICAgICAgIGNvbnN0IF9zaW5nbGV0b25Sb3V0ZXIgPSBzaW5nbGV0b25Sb3V0ZXI7XG4gICAgICAgICAgICBpZiAoX3NpbmdsZXRvblJvdXRlcltldmVudEZpZWxkXSkge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIF9zaW5nbGV0b25Sb3V0ZXJbZXZlbnRGaWVsZF0oLi4uYXJncyk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEVycm9yIHdoZW4gcnVubmluZyB0aGUgUm91dGVyIGV2ZW50OiAke2V2ZW50RmllbGR9YCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoKDAsIF9pc0Vycm9yKS5kZWZhdWx0KGVycikgPyBgJHtlcnIubWVzc2FnZX1cXG4ke2Vyci5zdGFja31gIDogZXJyICsgJycpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSk7XG59KTtcbmZ1bmN0aW9uIGdldFJvdXRlcigpIHtcbiAgICBpZiAoIXNpbmdsZXRvblJvdXRlci5yb3V0ZXIpIHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9ICdObyByb3V0ZXIgaW5zdGFuY2UgZm91bmQuXFxuJyArICdZb3Ugc2hvdWxkIG9ubHkgdXNlIFwibmV4dC9yb3V0ZXJcIiBvbiB0aGUgY2xpZW50IHNpZGUgb2YgeW91ciBhcHAuXFxuJztcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICByZXR1cm4gc2luZ2xldG9uUm91dGVyLnJvdXRlcjtcbn1cbnZhciBfZGVmYXVsdCA9IHNpbmdsZXRvblJvdXRlcjtcbmV4cG9ydHMuZGVmYXVsdCA9IF9kZWZhdWx0O1xuZnVuY3Rpb24gdXNlUm91dGVyKCkge1xuICAgIHJldHVybiBfcmVhY3QuZGVmYXVsdC51c2VDb250ZXh0KF9yb3V0ZXJDb250ZXh0LlJvdXRlckNvbnRleHQpO1xufVxuZnVuY3Rpb24gY3JlYXRlUm91dGVyKC4uLmFyZ3MpIHtcbiAgICBzaW5nbGV0b25Sb3V0ZXIucm91dGVyID0gbmV3IF9yb3V0ZXIuZGVmYXVsdCguLi5hcmdzKTtcbiAgICBzaW5nbGV0b25Sb3V0ZXIucmVhZHlDYWxsYmFja3MuZm9yRWFjaCgoY2IpPT5jYigpXG4gICAgKTtcbiAgICBzaW5nbGV0b25Sb3V0ZXIucmVhZHlDYWxsYmFja3MgPSBbXTtcbiAgICByZXR1cm4gc2luZ2xldG9uUm91dGVyLnJvdXRlcjtcbn1cbmZ1bmN0aW9uIG1ha2VQdWJsaWNSb3V0ZXJJbnN0YW5jZShyb3V0ZXIpIHtcbiAgICBjb25zdCBzY29wZWRSb3V0ZXIgPSByb3V0ZXI7XG4gICAgY29uc3QgaW5zdGFuY2UgPSB7XG4gICAgfTtcbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHVybFByb3BlcnR5RmllbGRzKXtcbiAgICAgICAgaWYgKHR5cGVvZiBzY29wZWRSb3V0ZXJbcHJvcGVydHldID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgaW5zdGFuY2VbcHJvcGVydHldID0gT2JqZWN0LmFzc2lnbihBcnJheS5pc0FycmF5KHNjb3BlZFJvdXRlcltwcm9wZXJ0eV0pID8gW10gOiB7XG4gICAgICAgICAgICB9LCBzY29wZWRSb3V0ZXJbcHJvcGVydHldKSAvLyBtYWtlcyBzdXJlIHF1ZXJ5IGlzIG5vdCBzdGF0ZWZ1bFxuICAgICAgICAgICAgO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaW5zdGFuY2VbcHJvcGVydHldID0gc2NvcGVkUm91dGVyW3Byb3BlcnR5XTtcbiAgICB9XG4gICAgLy8gRXZlbnRzIGlzIGEgc3RhdGljIHByb3BlcnR5IG9uIHRoZSByb3V0ZXIsIHRoZSByb3V0ZXIgZG9lc24ndCBoYXZlIHRvIGJlIGluaXRpYWxpemVkIHRvIHVzZSBpdFxuICAgIGluc3RhbmNlLmV2ZW50cyA9IF9yb3V0ZXIuZGVmYXVsdC5ldmVudHM7XG4gICAgY29yZU1ldGhvZEZpZWxkcy5mb3JFYWNoKChmaWVsZCk9PntcbiAgICAgICAgaW5zdGFuY2VbZmllbGRdID0gKC4uLmFyZ3MpPT57XG4gICAgICAgICAgICByZXR1cm4gc2NvcGVkUm91dGVyW2ZpZWxkXSguLi5hcmdzKTtcbiAgICAgICAgfTtcbiAgICB9KTtcbiAgICByZXR1cm4gaW5zdGFuY2U7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJvdXRlci5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiX3JvdXRlciIsIl93aXRoUm91dGVyIiwidXNlUm91dGVyIiwiY3JlYXRlUm91dGVyIiwibWFrZVB1YmxpY1JvdXRlckluc3RhbmNlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcm91dGVyQ29udGV4dCIsIl9pc0Vycm9yIiwib2JqIiwiX19lc01vZHVsZSIsInNpbmdsZXRvblJvdXRlciIsInJvdXRlciIsInJlYWR5Q2FsbGJhY2tzIiwicmVhZHkiLCJjYiIsInB1c2giLCJ1cmxQcm9wZXJ0eUZpZWxkcyIsInJvdXRlckV2ZW50cyIsImNvcmVNZXRob2RGaWVsZHMiLCJldmVudHMiLCJmb3JFYWNoIiwiZmllbGQiLCJnZXRSb3V0ZXIiLCJldmVudCIsIm9uIiwiZXZlbnRGaWVsZCIsImNoYXJBdCIsInRvVXBwZXJDYXNlIiwic3Vic3RyaW5nIiwiX3NpbmdsZXRvblJvdXRlciIsImVyciIsImNvbnNvbGUiLCJlcnJvciIsIm1lc3NhZ2UiLCJzdGFjayIsIkVycm9yIiwiX2RlZmF1bHQiLCJ1c2VDb250ZXh0IiwiUm91dGVyQ29udGV4dCIsImFyZ3MiLCJzY29wZWRSb3V0ZXIiLCJpbnN0YW5jZSIsInByb3BlcnR5IiwiYXNzaWduIiwiQXJyYXkiLCJpc0FycmF5Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/router.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/with-router.js": +/*!******************************************************!*\ + !*** ./node_modules/next/dist/client/with-router.js ***! + \******************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = withRouter;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _router = __webpack_require__(/*! ./router */ \"./node_modules/next/dist/client/router.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction withRouter(ComposedComponent) {\n var _s = $RefreshSig$();\n\n function WithRouterWrapper(props) {\n _s();\n\n return /*#__PURE__*/_react[\"default\"].createElement(ComposedComponent, Object.assign({\n router: (0, _router).useRouter()\n }, props));\n }\n\n _s(WithRouterWrapper, \"CeygcqajjFExIxFEzW4x/gfWEGQ=\", true);\n\n WithRouterWrapper.getInitialProps = ComposedComponent.getInitialProps;\n WithRouterWrapper.origGetInitialProps = ComposedComponent.origGetInitialProps;\n\n if (true) {\n var name = ComposedComponent.displayName || ComposedComponent.name || 'Unknown';\n WithRouterWrapper.displayName = \"withRouter(\".concat(name, \")\");\n }\n\n return WithRouterWrapper;\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC93aXRoLXJvdXRlci5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELGtCQUFBLEdBQWtCRSxVQUFsQjs7QUFDQSxJQUFJQyxNQUFNLEdBQUdDLHNCQUFzQixDQUFDQyxtQkFBTyxDQUFDLDRDQUFELENBQVIsQ0FBbkM7O0FBQ0EsSUFBSUMsT0FBTyxHQUFHRCxtQkFBTyxDQUFDLDJEQUFELENBQXJCOztBQUNBLFNBQVNELHNCQUFULENBQWdDRyxHQUFoQyxFQUFxQztBQUNqQyxTQUFPQSxHQUFHLElBQUlBLEdBQUcsQ0FBQ0MsVUFBWCxHQUF3QkQsR0FBeEIsR0FBOEI7QUFDakMsZUFBU0E7QUFEd0IsR0FBckM7QUFHSDs7QUFDRCxTQUFTTCxVQUFULENBQW9CTyxpQkFBcEIsRUFBdUM7QUFBQTs7QUFDbkMsV0FBU0MsaUJBQVQsQ0FBMkJDLEtBQTNCLEVBQWtDO0FBQUE7O0FBQzlCLFdBQU8sYUFBY1IsTUFBTSxXQUFOLENBQWVTLGFBQWYsQ0FBNkJILGlCQUE3QixFQUFnRFgsTUFBTSxDQUFDZSxNQUFQLENBQWM7QUFDL0VDLE1BQUFBLE1BQU0sRUFBRSxDQUFDLEdBQUdSLE9BQUosRUFBYVMsU0FBYjtBQUR1RSxLQUFkLEVBRWxFSixLQUZrRSxDQUFoRCxDQUFyQjtBQUdIOztBQUxrQyxLQUMxQkQsaUJBRDBCOztBQU1uQ0EsRUFBQUEsaUJBQWlCLENBQUNNLGVBQWxCLEdBQW9DUCxpQkFBaUIsQ0FBQ08sZUFBdEQ7QUFDQU4sRUFBQUEsaUJBQWlCLENBQUNPLG1CQUFsQixHQUF3Q1IsaUJBQWlCLENBQUNRLG1CQUExRDs7QUFDQSxZQUEyQztBQUN2QyxRQUFNQyxJQUFJLEdBQUdULGlCQUFpQixDQUFDVSxXQUFsQixJQUFpQ1YsaUJBQWlCLENBQUNTLElBQW5ELElBQTJELFNBQXhFO0FBQ0FSLElBQUFBLGlCQUFpQixDQUFDUyxXQUFsQix3QkFBOENELElBQTlDO0FBQ0g7O0FBQ0QsU0FBT1IsaUJBQVA7QUFDSCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC93aXRoLXJvdXRlci5qcz9hYzdjIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gd2l0aFJvdXRlcjtcbnZhciBfcmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG52YXIgX3JvdXRlciA9IHJlcXVpcmUoXCIuL3JvdXRlclwiKTtcbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbmZ1bmN0aW9uIHdpdGhSb3V0ZXIoQ29tcG9zZWRDb21wb25lbnQpIHtcbiAgICBmdW5jdGlvbiBXaXRoUm91dGVyV3JhcHBlcihwcm9wcykge1xuICAgICAgICByZXR1cm4oLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KENvbXBvc2VkQ29tcG9uZW50LCBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgICAgIHJvdXRlcjogKDAsIF9yb3V0ZXIpLnVzZVJvdXRlcigpXG4gICAgICAgIH0sIHByb3BzKSkpO1xuICAgIH1cbiAgICBXaXRoUm91dGVyV3JhcHBlci5nZXRJbml0aWFsUHJvcHMgPSBDb21wb3NlZENvbXBvbmVudC5nZXRJbml0aWFsUHJvcHM7XG4gICAgV2l0aFJvdXRlcldyYXBwZXIub3JpZ0dldEluaXRpYWxQcm9wcyA9IENvbXBvc2VkQ29tcG9uZW50Lm9yaWdHZXRJbml0aWFsUHJvcHM7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgY29uc3QgbmFtZSA9IENvbXBvc2VkQ29tcG9uZW50LmRpc3BsYXlOYW1lIHx8IENvbXBvc2VkQ29tcG9uZW50Lm5hbWUgfHwgJ1Vua25vd24nO1xuICAgICAgICBXaXRoUm91dGVyV3JhcHBlci5kaXNwbGF5TmFtZSA9IGB3aXRoUm91dGVyKCR7bmFtZX0pYDtcbiAgICB9XG4gICAgcmV0dXJuIFdpdGhSb3V0ZXJXcmFwcGVyO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD13aXRoLXJvdXRlci5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJ3aXRoUm91dGVyIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcm91dGVyIiwib2JqIiwiX19lc01vZHVsZSIsIkNvbXBvc2VkQ29tcG9uZW50IiwiV2l0aFJvdXRlcldyYXBwZXIiLCJwcm9wcyIsImNyZWF0ZUVsZW1lbnQiLCJhc3NpZ24iLCJyb3V0ZXIiLCJ1c2VSb3V0ZXIiLCJnZXRJbml0aWFsUHJvcHMiLCJvcmlnR2V0SW5pdGlhbFByb3BzIiwibmFtZSIsImRpc3BsYXlOYW1lIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/with-router.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js": +/*!*************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js ***! + \*************************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.normalizeLocalePath = normalizeLocalePath;\n\nfunction normalizeLocalePath(pathname, locales) {\n var detectedLocale; // first item will be empty string from splitting at first char\n\n var pathnameParts = pathname.split('/');\n (locales || []).some(function (locale) {\n if (pathnameParts[1] && pathnameParts[1].toLowerCase() === locale.toLowerCase()) {\n detectedLocale = locale;\n pathnameParts.splice(1, 1);\n pathname = pathnameParts.join('/') || '/';\n return true;\n }\n\n return false;\n });\n return {\n pathname: pathname,\n detectedLocale: detectedLocale\n };\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaTE4bi9ub3JtYWxpemUtbG9jYWxlLXBhdGguanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCwyQkFBQSxHQUE4QkUsbUJBQTlCOztBQUNBLFNBQVNBLG1CQUFULENBQTZCQyxRQUE3QixFQUF1Q0MsT0FBdkMsRUFBZ0Q7QUFDNUMsTUFBSUMsY0FBSixDQUQ0QyxDQUU1Qzs7QUFDQSxNQUFNQyxhQUFhLEdBQUdILFFBQVEsQ0FBQ0ksS0FBVCxDQUFlLEdBQWYsQ0FBdEI7QUFDQSxHQUFDSCxPQUFPLElBQUksRUFBWixFQUFnQkksSUFBaEIsQ0FBcUIsVUFBQ0MsTUFBRCxFQUFVO0FBQzNCLFFBQUlILGFBQWEsQ0FBQyxDQUFELENBQWIsSUFBb0JBLGFBQWEsQ0FBQyxDQUFELENBQWIsQ0FBaUJJLFdBQWpCLE9BQW1DRCxNQUFNLENBQUNDLFdBQVAsRUFBM0QsRUFBaUY7QUFDN0VMLE1BQUFBLGNBQWMsR0FBR0ksTUFBakI7QUFDQUgsTUFBQUEsYUFBYSxDQUFDSyxNQUFkLENBQXFCLENBQXJCLEVBQXdCLENBQXhCO0FBQ0FSLE1BQUFBLFFBQVEsR0FBR0csYUFBYSxDQUFDTSxJQUFkLENBQW1CLEdBQW5CLEtBQTJCLEdBQXRDO0FBQ0EsYUFBTyxJQUFQO0FBQ0g7O0FBQ0QsV0FBTyxLQUFQO0FBQ0gsR0FSRDtBQVNBLFNBQU87QUFDSFQsSUFBQUEsUUFBUSxFQUFSQSxRQURHO0FBRUhFLElBQUFBLGNBQWMsRUFBZEE7QUFGRyxHQUFQO0FBSUgiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zaGFyZWQvbGliL2kxOG4vbm9ybWFsaXplLWxvY2FsZS1wYXRoLmpzPzA0M2IiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLm5vcm1hbGl6ZUxvY2FsZVBhdGggPSBub3JtYWxpemVMb2NhbGVQYXRoO1xuZnVuY3Rpb24gbm9ybWFsaXplTG9jYWxlUGF0aChwYXRobmFtZSwgbG9jYWxlcykge1xuICAgIGxldCBkZXRlY3RlZExvY2FsZTtcbiAgICAvLyBmaXJzdCBpdGVtIHdpbGwgYmUgZW1wdHkgc3RyaW5nIGZyb20gc3BsaXR0aW5nIGF0IGZpcnN0IGNoYXJcbiAgICBjb25zdCBwYXRobmFtZVBhcnRzID0gcGF0aG5hbWUuc3BsaXQoJy8nKTtcbiAgICAobG9jYWxlcyB8fCBbXSkuc29tZSgobG9jYWxlKT0+e1xuICAgICAgICBpZiAocGF0aG5hbWVQYXJ0c1sxXSAmJiBwYXRobmFtZVBhcnRzWzFdLnRvTG93ZXJDYXNlKCkgPT09IGxvY2FsZS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgICAgICBkZXRlY3RlZExvY2FsZSA9IGxvY2FsZTtcbiAgICAgICAgICAgIHBhdGhuYW1lUGFydHMuc3BsaWNlKDEsIDEpO1xuICAgICAgICAgICAgcGF0aG5hbWUgPSBwYXRobmFtZVBhcnRzLmpvaW4oJy8nKSB8fCAnLyc7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcGF0aG5hbWUsXG4gICAgICAgIGRldGVjdGVkTG9jYWxlXG4gICAgfTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bm9ybWFsaXplLWxvY2FsZS1wYXRoLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsIm5vcm1hbGl6ZUxvY2FsZVBhdGgiLCJwYXRobmFtZSIsImxvY2FsZXMiLCJkZXRlY3RlZExvY2FsZSIsInBhdGhuYW1lUGFydHMiLCJzcGxpdCIsInNvbWUiLCJsb2NhbGUiLCJ0b0xvd2VyQ2FzZSIsInNwbGljZSIsImpvaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/mitt.js": +/*!***************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/mitt.js ***! + \***************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = mitt;\n\nfunction mitt() {\n var all = Object.create(null);\n return {\n on: function on(type, handler) {\n (all[type] || (all[type] = [])).push(handler);\n },\n off: function off(type, handler) {\n if (all[type]) {\n all[type].splice(all[type].indexOf(handler) >>> 0, 1);\n }\n },\n emit: function emit(type) {\n for (var _len = arguments.length, evts = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n evts[_key - 1] = arguments[_key];\n }\n\n (all[type] || []).slice().map(function (handler) {\n handler.apply(void 0, evts);\n });\n }\n };\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvbWl0dC5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELGtCQUFBLEdBQWtCRSxJQUFsQjs7QUFDQSxTQUFTQSxJQUFULEdBQWdCO0FBQ1osTUFBTUMsR0FBRyxHQUFHTCxNQUFNLENBQUNNLE1BQVAsQ0FBYyxJQUFkLENBQVo7QUFDQSxTQUFPO0FBQ0hDLElBQUFBLEVBREcsY0FDQ0MsSUFERCxFQUNPQyxPQURQLEVBQ2dCO0FBQ2YsT0FBQ0osR0FBRyxDQUFDRyxJQUFELENBQUgsS0FBY0gsR0FBRyxDQUFDRyxJQUFELENBQUgsR0FBWSxFQUExQixDQUFELEVBQWdDRSxJQUFoQyxDQUFxQ0QsT0FBckM7QUFDSCxLQUhFO0FBSUhFLElBQUFBLEdBSkcsZUFJRUgsSUFKRixFQUlRQyxPQUpSLEVBSWlCO0FBQ2hCLFVBQUlKLEdBQUcsQ0FBQ0csSUFBRCxDQUFQLEVBQWU7QUFDWEgsUUFBQUEsR0FBRyxDQUFDRyxJQUFELENBQUgsQ0FBVUksTUFBVixDQUFpQlAsR0FBRyxDQUFDRyxJQUFELENBQUgsQ0FBVUssT0FBVixDQUFrQkosT0FBbEIsTUFBK0IsQ0FBaEQsRUFBbUQsQ0FBbkQ7QUFDSDtBQUNKLEtBUkU7QUFTSEssSUFBQUEsSUFURyxnQkFTR04sSUFUSCxFQVNrQjtBQUFBLHdDQUFOTyxJQUFNO0FBQU5BLFFBQUFBLElBQU07QUFBQTs7QUFDakIsT0FBQ1YsR0FBRyxDQUFDRyxJQUFELENBQUgsSUFBYSxFQUFkLEVBQWtCUSxLQUFsQixHQUEwQkMsR0FBMUIsQ0FBOEIsVUFBQ1IsT0FBRCxFQUFXO0FBQ3JDQSxRQUFBQSxPQUFPLE1BQVAsU0FBV00sSUFBWDtBQUNILE9BRkQ7QUFHSDtBQWJFLEdBQVA7QUFlSCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvbWl0dC5qcz84NTFkIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gbWl0dDtcbmZ1bmN0aW9uIG1pdHQoKSB7XG4gICAgY29uc3QgYWxsID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICByZXR1cm4ge1xuICAgICAgICBvbiAodHlwZSwgaGFuZGxlcikge1xuICAgICAgICAgICAgKGFsbFt0eXBlXSB8fCAoYWxsW3R5cGVdID0gW10pKS5wdXNoKGhhbmRsZXIpO1xuICAgICAgICB9LFxuICAgICAgICBvZmYgKHR5cGUsIGhhbmRsZXIpIHtcbiAgICAgICAgICAgIGlmIChhbGxbdHlwZV0pIHtcbiAgICAgICAgICAgICAgICBhbGxbdHlwZV0uc3BsaWNlKGFsbFt0eXBlXS5pbmRleE9mKGhhbmRsZXIpID4+PiAwLCAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZW1pdCAodHlwZSwgLi4uZXZ0cykge1xuICAgICAgICAgICAgKGFsbFt0eXBlXSB8fCBbXSkuc2xpY2UoKS5tYXAoKGhhbmRsZXIpPT57XG4gICAgICAgICAgICAgICAgaGFuZGxlciguLi5ldnRzKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bWl0dC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJtaXR0IiwiYWxsIiwiY3JlYXRlIiwib24iLCJ0eXBlIiwiaGFuZGxlciIsInB1c2giLCJvZmYiLCJzcGxpY2UiLCJpbmRleE9mIiwiZW1pdCIsImV2dHMiLCJzbGljZSIsIm1hcCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/mitt.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router-context.js": +/*!*************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router-context.js ***! + \*************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.RouterContext = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar RouterContext = _react[\"default\"].createContext(null);\n\nexports.RouterContext = RouterContext;\n\nif (true) {\n RouterContext.displayName = 'RouterContext';\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyLWNvbnRleHQuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxxQkFBQSxHQUF3QixLQUFLLENBQTdCOztBQUNBLElBQUlHLE1BQU0sR0FBR0Msc0JBQXNCLENBQUNDLG1CQUFPLENBQUMsNENBQUQsQ0FBUixDQUFuQzs7QUFDQSxTQUFTRCxzQkFBVCxDQUFnQ0UsR0FBaEMsRUFBcUM7QUFDakMsU0FBT0EsR0FBRyxJQUFJQSxHQUFHLENBQUNDLFVBQVgsR0FBd0JELEdBQXhCLEdBQThCO0FBQ2pDLGVBQVNBO0FBRHdCLEdBQXJDO0FBR0g7O0FBQ0QsSUFBTUosYUFBYSxHQUFHQyxNQUFNLFdBQU4sQ0FBZUssYUFBZixDQUE2QixJQUE3QixDQUF0Qjs7QUFDQVIscUJBQUEsR0FBd0JFLGFBQXhCOztBQUNBLElBQUksTUFBdUM7QUFDdkNBLEVBQUFBLGFBQWEsQ0FBQ08sV0FBZCxHQUE0QixlQUE1QjtBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXItY29udGV4dC5qcz81ZTkwIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5Sb3V0ZXJDb250ZXh0ID0gdm9pZCAwO1xudmFyIF9yZWFjdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJlYWN0XCIpKTtcbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbmNvbnN0IFJvdXRlckNvbnRleHQgPSBfcmVhY3QuZGVmYXVsdC5jcmVhdGVDb250ZXh0KG51bGwpO1xuZXhwb3J0cy5Sb3V0ZXJDb250ZXh0ID0gUm91dGVyQ29udGV4dDtcbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgUm91dGVyQ29udGV4dC5kaXNwbGF5TmFtZSA9ICdSb3V0ZXJDb250ZXh0Jztcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cm91dGVyLWNvbnRleHQuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiUm91dGVyQ29udGV4dCIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwib2JqIiwiX19lc01vZHVsZSIsImNyZWF0ZUNvbnRleHQiLCJkaXNwbGF5TmFtZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router-context.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/router.js": +/*!************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/router.js ***! + \************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _regeneratorRuntime = __webpack_require__(/*! ./node_modules/@babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n\nvar _defineProperty = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/defineProperty.js\");\n\nvar _asyncToGenerator = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/asyncToGenerator.js\");\n\nvar _classCallCheck = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\");\n\nvar _createClass = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\");\n\nvar _slicedToArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.getDomainLocale = getDomainLocale;\nexports.addLocale = addLocale;\nexports.delLocale = delLocale;\nexports.hasBasePath = hasBasePath;\nexports.addBasePath = addBasePath;\nexports.delBasePath = delBasePath;\nexports.isLocalURL = isLocalURL;\nexports.interpolateAs = interpolateAs;\nexports.resolveHref = resolveHref;\nexports[\"default\"] = void 0;\n\nvar _normalizeTrailingSlash = __webpack_require__(/*! ../../../client/normalize-trailing-slash */ \"./node_modules/next/dist/client/normalize-trailing-slash.js\");\n\nvar _routeLoader = __webpack_require__(/*! ../../../client/route-loader */ \"./node_modules/next/dist/client/route-loader.js\");\n\nvar _isError = _interopRequireDefault(__webpack_require__(/*! ../../../lib/is-error */ \"./node_modules/next/dist/lib/is-error.js\"));\n\nvar _denormalizePagePath = __webpack_require__(/*! ../../../server/denormalize-page-path */ \"./node_modules/next/dist/server/denormalize-page-path.js\");\n\nvar _normalizeLocalePath = __webpack_require__(/*! ../i18n/normalize-locale-path */ \"./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js\");\n\nvar _mitt = _interopRequireDefault(__webpack_require__(/*! ../mitt */ \"./node_modules/next/dist/shared/lib/mitt.js\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./node_modules/next/dist/shared/lib/utils.js\");\n\nvar _isDynamic = __webpack_require__(/*! ./utils/is-dynamic */ \"./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js\");\n\nvar _parseRelativeUrl = __webpack_require__(/*! ./utils/parse-relative-url */ \"./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js\");\n\nvar _querystring = __webpack_require__(/*! ./utils/querystring */ \"./node_modules/next/dist/shared/lib/router/utils/querystring.js\");\n\nvar _resolveRewrites = _interopRequireDefault(__webpack_require__(/*! ./utils/resolve-rewrites */ \"?506d\"));\n\nvar _routeMatcher = __webpack_require__(/*! ./utils/route-matcher */ \"./node_modules/next/dist/shared/lib/router/utils/route-matcher.js\");\n\nvar _routeRegex = __webpack_require__(/*! ./utils/route-regex */ \"./node_modules/next/dist/shared/lib/router/utils/route-regex.js\");\n\nvar _getMiddlewareRegex = __webpack_require__(/*! ./utils/get-middleware-regex */ \"./node_modules/next/dist/shared/lib/router/utils/get-middleware-regex.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar detectDomainLocale;\n\nif (false) {}\n\nvar basePath = false || '';\n\nfunction buildCancellationError() {\n return Object.assign(new Error('Route Cancelled'), {\n cancelled: true\n });\n}\n\nfunction addPathPrefix(path, prefix) {\n if (!path.startsWith('/') || !prefix) {\n return path;\n }\n\n var pathname = pathNoQueryHash(path);\n return (0, _normalizeTrailingSlash).normalizePathTrailingSlash(\"\".concat(prefix).concat(pathname)) + path.substr(pathname.length);\n}\n\nfunction getDomainLocale(path, locale, locales, domainLocales) {\n if (false) { var detectedDomain; } else {\n return false;\n }\n}\n\nfunction addLocale(path, locale, defaultLocale) {\n if (false) { var localeLower, pathLower, pathname; }\n\n return path;\n}\n\nfunction delLocale(path, locale) {\n if (false) { var localeLower, pathLower, pathname; }\n\n return path;\n}\n\nfunction pathNoQueryHash(path) {\n var queryIndex = path.indexOf('?');\n var hashIndex = path.indexOf('#');\n\n if (queryIndex > -1 || hashIndex > -1) {\n path = path.substring(0, queryIndex > -1 ? queryIndex : hashIndex);\n }\n\n return path;\n}\n\nfunction hasBasePath(path) {\n path = pathNoQueryHash(path);\n return path === basePath || path.startsWith(basePath + '/');\n}\n\nfunction addBasePath(path) {\n // we only add the basepath on relative urls\n return addPathPrefix(path, basePath);\n}\n\nfunction delBasePath(path) {\n path = path.slice(basePath.length);\n if (!path.startsWith('/')) path = \"/\".concat(path);\n return path;\n}\n\nfunction isLocalURL(url) {\n // prevent a hydration mismatch on href for url with anchor refs\n if (url.startsWith('/') || url.startsWith('#') || url.startsWith('?')) return true;\n\n try {\n // absolute urls can be local if they are on the same origin\n var locationOrigin = (0, _utils).getLocationOrigin();\n var resolved = new URL(url, locationOrigin);\n return resolved.origin === locationOrigin && hasBasePath(resolved.pathname);\n } catch (_) {\n return false;\n }\n}\n\nfunction interpolateAs(route, asPathname, query) {\n var interpolatedRoute = '';\n var dynamicRegex = (0, _routeRegex).getRouteRegex(route);\n var dynamicGroups = dynamicRegex.groups;\n var dynamicMatches = // Try to match the dynamic route against the asPath\n (asPathname !== route ? (0, _routeMatcher).getRouteMatcher(dynamicRegex)(asPathname) : '') || // Fall back to reading the values from the href\n // TODO: should this take priority; also need to change in the router.\n query;\n interpolatedRoute = route;\n var params = Object.keys(dynamicGroups);\n\n if (!params.every(function (param) {\n var value = dynamicMatches[param] || '';\n var _dynamicGroups$param = dynamicGroups[param],\n repeat = _dynamicGroups$param.repeat,\n optional = _dynamicGroups$param.optional; // support single-level catch-all\n // TODO: more robust handling for user-error (passing `/`)\n\n var replaced = \"[\".concat(repeat ? '...' : '').concat(param, \"]\");\n\n if (optional) {\n replaced = \"\".concat(!value ? '/' : '', \"[\").concat(replaced, \"]\");\n }\n\n if (repeat && !Array.isArray(value)) value = [value];\n return (optional || param in dynamicMatches) && (interpolatedRoute = interpolatedRoute.replace(replaced, repeat ? value.map( // these values should be fully encoded instead of just\n // path delimiter escaped since they are being inserted\n // into the URL and we expect URL encoded segments\n // when parsing dynamic route params\n function (segment) {\n return encodeURIComponent(segment);\n }).join('/') : encodeURIComponent(value)) || '/');\n })) {\n interpolatedRoute = '' // did not satisfy all requirements\n ; // n.b. We ignore this error because we handle warning for this case in\n // development in the `<Link>` component directly.\n }\n\n return {\n params: params,\n result: interpolatedRoute\n };\n}\n\nfunction omitParmsFromQuery(query, params) {\n var filteredQuery = {};\n Object.keys(query).forEach(function (key) {\n if (!params.includes(key)) {\n filteredQuery[key] = query[key];\n }\n });\n return filteredQuery;\n}\n\nfunction resolveHref(router, href, resolveAs) {\n // we use a dummy base url for relative urls\n var base;\n var urlAsString = typeof href === 'string' ? href : (0, _utils).formatWithValidation(href); // repeated slashes and backslashes in the URL are considered\n // invalid and will never match a Next.js page/file\n\n var urlProtoMatch = urlAsString.match(/^[a-zA-Z]{1,}:\\/\\//);\n var urlAsStringNoProto = urlProtoMatch ? urlAsString.substr(urlProtoMatch[0].length) : urlAsString;\n var urlParts = urlAsStringNoProto.split('?');\n\n if ((urlParts[0] || '').match(/(\\/\\/|\\\\)/)) {\n console.error(\"Invalid href passed to next/router: \".concat(urlAsString, \", repeated forward-slashes (//) or backslashes \\\\ are not valid in the href\"));\n var normalizedUrl = (0, _utils).normalizeRepeatedSlashes(urlAsStringNoProto);\n urlAsString = (urlProtoMatch ? urlProtoMatch[0] : '') + normalizedUrl;\n } // Return because it cannot be routed by the Next.js router\n\n\n if (!isLocalURL(urlAsString)) {\n return resolveAs ? [urlAsString] : urlAsString;\n }\n\n try {\n base = new URL(urlAsString.startsWith('#') ? router.asPath : router.pathname, 'http://n');\n } catch (_) {\n // fallback to / for invalid asPath values e.g. //\n base = new URL('/', 'http://n');\n }\n\n try {\n var finalUrl = new URL(urlAsString, base);\n finalUrl.pathname = (0, _normalizeTrailingSlash).normalizePathTrailingSlash(finalUrl.pathname);\n var interpolatedAs = '';\n\n if ((0, _isDynamic).isDynamicRoute(finalUrl.pathname) && finalUrl.searchParams && resolveAs) {\n var query = (0, _querystring).searchParamsToUrlQuery(finalUrl.searchParams);\n\n var _interpolateAs = interpolateAs(finalUrl.pathname, finalUrl.pathname, query),\n result = _interpolateAs.result,\n params = _interpolateAs.params;\n\n if (result) {\n interpolatedAs = (0, _utils).formatWithValidation({\n pathname: result,\n hash: finalUrl.hash,\n query: omitParmsFromQuery(query, params)\n });\n }\n } // if the origin didn't change, it means we received a relative href\n\n\n var resolvedHref = finalUrl.origin === base.origin ? finalUrl.href.slice(finalUrl.origin.length) : finalUrl.href;\n return resolveAs ? [resolvedHref, interpolatedAs || resolvedHref] : resolvedHref;\n } catch (_1) {\n return resolveAs ? [urlAsString] : urlAsString;\n }\n}\n\nfunction stripOrigin(url) {\n var origin = (0, _utils).getLocationOrigin();\n return url.startsWith(origin) ? url.substring(origin.length) : url;\n}\n\nfunction prepareUrlAs(router, url, as) {\n // If url and as provided as an object representation,\n // we'll format them into the string version here.\n var _resolveHref = resolveHref(router, url, true),\n _resolveHref2 = _slicedToArray(_resolveHref, 2),\n resolvedHref = _resolveHref2[0],\n resolvedAs = _resolveHref2[1];\n\n var origin = (0, _utils).getLocationOrigin();\n var hrefHadOrigin = resolvedHref.startsWith(origin);\n var asHadOrigin = resolvedAs && resolvedAs.startsWith(origin);\n resolvedHref = stripOrigin(resolvedHref);\n resolvedAs = resolvedAs ? stripOrigin(resolvedAs) : resolvedAs;\n var preparedUrl = hrefHadOrigin ? resolvedHref : addBasePath(resolvedHref);\n var preparedAs = as ? stripOrigin(resolveHref(router, as)) : resolvedAs || resolvedHref;\n return {\n url: preparedUrl,\n as: asHadOrigin ? preparedAs : addBasePath(preparedAs)\n };\n}\n\nfunction resolveDynamicRoute(pathname, pages) {\n var cleanPathname = (0, _normalizeTrailingSlash).removePathTrailingSlash((0, _denormalizePagePath).denormalizePagePath(pathname));\n\n if (cleanPathname === '/404' || cleanPathname === '/_error') {\n return pathname;\n } // handle resolving href for dynamic routes\n\n\n if (!pages.includes(cleanPathname)) {\n // eslint-disable-next-line array-callback-return\n pages.some(function (page) {\n if ((0, _isDynamic).isDynamicRoute(page) && (0, _routeRegex).getRouteRegex(page).re.test(cleanPathname)) {\n pathname = page;\n return true;\n }\n });\n }\n\n return (0, _normalizeTrailingSlash).removePathTrailingSlash(pathname);\n}\n\nvar manualScrollRestoration = false && 0;\nvar SSG_DATA_NOT_FOUND = Symbol('SSG_DATA_NOT_FOUND');\n\nfunction fetchRetry(url, attempts, opts) {\n return fetch(url, {\n // Cookies are required to be present for Next.js' SSG \"Preview Mode\".\n // Cookies may also be required for `getServerSideProps`.\n //\n // > `fetch` won’t send cookies, unless you set the credentials init\n // > option.\n // https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch\n //\n // > For maximum browser compatibility when it comes to sending &\n // > receiving cookies, always supply the `credentials: 'same-origin'`\n // > option instead of relying on the default.\n // https://github.com/github/fetch#caveats\n credentials: 'same-origin'\n }).then(function (res) {\n if (!res.ok) {\n if (attempts > 1 && res.status >= 500) {\n return fetchRetry(url, attempts - 1, opts);\n }\n\n if (res.status === 404) {\n return res.json().then(function (data) {\n if (data.notFound) {\n return {\n notFound: SSG_DATA_NOT_FOUND\n };\n }\n\n throw new Error(\"Failed to load static props\");\n });\n }\n\n throw new Error(\"Failed to load static props\");\n }\n\n return opts.text ? res.text() : res.json();\n });\n}\n\nfunction fetchNextData(dataHref, isServerRender, text, inflightCache, persistCache) {\n var _URL = new URL(dataHref, window.location.href),\n cacheKey = _URL.href;\n\n if (inflightCache[cacheKey] !== undefined) {\n return inflightCache[cacheKey];\n }\n\n return inflightCache[cacheKey] = fetchRetry(dataHref, isServerRender ? 3 : 1, {\n text: text\n })[\"catch\"](function (err) {\n // We should only trigger a server-side transition if this was caused\n // on a client-side transition. Otherwise, we'd get into an infinite\n // loop.\n if (!isServerRender) {\n (0, _routeLoader).markAssetError(err);\n }\n\n throw err;\n }).then(function (data) {\n if (!persistCache || true) {\n delete inflightCache[cacheKey];\n }\n\n return data;\n })[\"catch\"](function (err) {\n delete inflightCache[cacheKey];\n throw err;\n });\n}\n\nvar Router = /*#__PURE__*/function () {\n function Router(pathname, query, as, _ref) {\n var _this = this;\n\n var initialProps = _ref.initialProps,\n pageLoader = _ref.pageLoader,\n App = _ref.App,\n wrapApp = _ref.wrapApp,\n Component = _ref.Component,\n err = _ref.err,\n subscription = _ref.subscription,\n isFallback = _ref.isFallback,\n locale = _ref.locale,\n locales = _ref.locales,\n defaultLocale = _ref.defaultLocale,\n domainLocales = _ref.domainLocales,\n isPreview = _ref.isPreview;\n\n _classCallCheck(this, Router);\n\n // Static Data Cache\n this.sdc = {}; // In-flight Server Data Requests, for deduping\n\n this.sdr = {}; // In-flight middleware preflight requests\n\n this.sde = {};\n this._idx = 0;\n\n this.onPopState = function (e) {\n var state = e.state;\n\n if (!state) {\n // We get state as undefined for two reasons.\n // 1. With older safari (< 8) and older chrome (< 34)\n // 2. When the URL changed with #\n //\n // In the both cases, we don't need to proceed and change the route.\n // (as it's already changed)\n // But we can simply replace the state with the new changes.\n // Actually, for (1) we don't need to nothing. But it's hard to detect that event.\n // So, doing the following for (1) does no harm.\n var _pathname = _this.pathname,\n _query = _this.query;\n\n _this.changeState('replaceState', (0, _utils).formatWithValidation({\n pathname: addBasePath(_pathname),\n query: _query\n }), (0, _utils).getURL());\n\n return;\n }\n\n if (!state.__N) {\n return;\n }\n\n var forcedScroll;\n var url = state.url,\n as = state.as,\n options = state.options,\n idx = state.idx;\n\n if (false) { var v; }\n\n _this._idx = idx;\n\n var _parseRelativeUrl2 = (0, _parseRelativeUrl).parseRelativeUrl(url),\n pathname = _parseRelativeUrl2.pathname; // Make sure we don't re-render on initial load,\n // can be caused by navigating back from an external site\n\n\n if (_this.isSsr && as === _this.asPath && pathname === _this.pathname) {\n return;\n } // If the downstream application returns falsy, return.\n // They will then be responsible for handling the event.\n\n\n if (_this._bps && !_this._bps(state)) {\n return;\n }\n\n _this.change('replaceState', url, as, Object.assign({}, options, {\n shallow: options.shallow && _this._shallow,\n locale: options.locale || _this.defaultLocale\n }), forcedScroll);\n }; // represents the current component key\n\n\n this.route = (0, _normalizeTrailingSlash).removePathTrailingSlash(pathname); // set up the component cache (by route keys)\n\n this.components = {}; // We should not keep the cache, if there's an error\n // Otherwise, this cause issues when when going back and\n // come again to the errored page.\n\n if (pathname !== '/_error') {\n var ref;\n this.components[this.route] = {\n Component: Component,\n initial: true,\n props: initialProps,\n err: err,\n __N_SSG: initialProps && initialProps.__N_SSG,\n __N_SSP: initialProps && initialProps.__N_SSP,\n __N_RSC: !!((ref = Component) === null || ref === void 0 ? void 0 : ref.__next_rsc__)\n };\n }\n\n this.components['/_app'] = {\n Component: App,\n styleSheets: []\n }; // Backwards compat for Router.router.events\n // TODO: Should be remove the following major version as it was never documented\n\n this.events = Router.events;\n this.pageLoader = pageLoader;\n this.pathname = pathname;\n this.query = query; // if auto prerendered and dynamic route wait to update asPath\n // until after mount to prevent hydration mismatch\n\n var autoExportDynamic = (0, _isDynamic).isDynamicRoute(pathname) && self.__NEXT_DATA__.autoExport;\n\n this.asPath = autoExportDynamic ? pathname : as;\n this.basePath = basePath;\n this.sub = subscription;\n this.clc = null;\n this._wrapApp = wrapApp; // make sure to ignore extra popState in safari on navigating\n // back from external site\n\n this.isSsr = true;\n this.isFallback = isFallback;\n this.isReady = !!(self.__NEXT_DATA__.gssp || self.__NEXT_DATA__.gip || self.__NEXT_DATA__.appGip && !self.__NEXT_DATA__.gsp || !autoExportDynamic && !self.location.search && !false);\n this.isPreview = !!isPreview;\n this.isLocaleDomain = false;\n\n if (false) {}\n\n if (true) {\n // make sure \"as\" doesn't start with double slashes or else it can\n // throw an error as it's considered invalid\n if (as.substr(0, 2) !== '//') {\n // in order for `e.state` to work on the `onpopstate` event\n // we have to register the initial route upon initialization\n var options = {\n locale: locale\n };\n options._shouldResolveHref = as !== pathname;\n this.changeState('replaceState', (0, _utils).formatWithValidation({\n pathname: addBasePath(pathname),\n query: query\n }), (0, _utils).getURL(), options);\n }\n\n window.addEventListener('popstate', this.onPopState); // enable custom scroll restoration handling when available\n // otherwise fallback to browser's default handling\n\n if (false) {}\n }\n }\n\n _createClass(Router, [{\n key: \"reload\",\n value: function reload() {\n window.location.reload();\n }\n /**\n * Go back in history\n */\n\n }, {\n key: \"back\",\n value: function back() {\n window.history.back();\n }\n /**\n * Performs a `pushState` with arguments\n * @param url of the route\n * @param as masks `url` for the browser\n * @param options object you can define `shallow` and other options\n */\n\n }, {\n key: \"push\",\n value: function push(url, as) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (false) {}\n\n var _prepareUrlAs = prepareUrlAs(this, url, as);\n\n url = _prepareUrlAs.url;\n as = _prepareUrlAs.as;\n return this.change('pushState', url, as, options);\n }\n /**\n * Performs a `replaceState` with arguments\n * @param url of the route\n * @param as masks `url` for the browser\n * @param options object you can define `shallow` and other options\n */\n\n }, {\n key: \"replace\",\n value: function replace(url, as) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var _prepareUrlAs2 = prepareUrlAs(this, url, as);\n\n url = _prepareUrlAs2.url;\n as = _prepareUrlAs2.as;\n return this.change('replaceState', url, as, options);\n }\n }, {\n key: \"change\",\n value: function () {\n var _change = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(method, url, as, options, forcedScroll) {\n var shouldResolveHref, prevLocale, parsedAs, localePathResult, didNavigate, ref, detectedDomain, asNoBasePath, _options$shallow, shallow, routeProps, cleanedAs, localeChange, parsed, pathname, query, pages, rewrites, _yield$Promise$all, _yield$Promise$all2, resolvedAs, rewritesResult, effect, route, _parsedAs, asPathname, routeRegex, routeMatch, shouldInterpolate, interpolatedAs, missingParams, ref1, routeInfo, _routeInfo, error, props, __N_SSG, __N_SSP, destination, parsedHref, _prepareUrlAs3, newUrl, newAs, notFoundRoute, isValidShallowRoute, _scroll, shouldScroll, resetScroll;\n\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (isLocalURL(url)) {\n _context.next = 3;\n break;\n }\n\n window.location.href = url;\n return _context.abrupt(\"return\", false);\n\n case 3:\n shouldResolveHref = options._h || options._shouldResolveHref || pathNoQueryHash(url) === pathNoQueryHash(as); // for static pages with query params in the URL we delay\n // marking the router ready until after the query is updated\n\n if (options._h) {\n this.isReady = true;\n }\n\n prevLocale = this.locale;\n\n if (true) {\n _context.next = 18;\n break;\n }\n\n this.locale = options.locale === false ? this.defaultLocale : options.locale || this.locale;\n\n if (typeof options.locale === 'undefined') {\n options.locale = this.locale;\n }\n\n parsedAs = (0, _parseRelativeUrl).parseRelativeUrl(hasBasePath(as) ? delBasePath(as) : as);\n localePathResult = (0, _normalizeLocalePath).normalizeLocalePath(parsedAs.pathname, this.locales);\n\n if (localePathResult.detectedLocale) {\n this.locale = localePathResult.detectedLocale;\n parsedAs.pathname = addBasePath(parsedAs.pathname);\n as = (0, _utils).formatWithValidation(parsedAs);\n url = addBasePath((0, _normalizeLocalePath).normalizeLocalePath(hasBasePath(url) ? delBasePath(url) : url, this.locales).pathname);\n }\n\n didNavigate = false; // we need to wrap this in the env check again since regenerator runtime\n // moves this on its own due to the return\n\n if (false) {}\n\n detectedDomain = detectDomainLocale(this.domainLocales, undefined, this.locale); // we need to wrap this in the env check again since regenerator runtime\n // moves this on its own due to the return\n\n if (false) {}\n\n if (!didNavigate) {\n _context.next = 18;\n break;\n }\n\n return _context.abrupt(\"return\", new Promise(function () {}));\n\n case 18:\n if (!options._h) {\n this.isSsr = false;\n } // marking route changes as a navigation start entry\n\n\n if (_utils.ST) {\n performance.mark('routeChange');\n }\n\n _options$shallow = options.shallow, shallow = _options$shallow === void 0 ? false : _options$shallow;\n routeProps = {\n shallow: shallow\n };\n\n if (this._inFlightRoute) {\n this.abortComponentLoad(this._inFlightRoute, routeProps);\n }\n\n as = addBasePath(addLocale(hasBasePath(as) ? delBasePath(as) : as, options.locale, this.defaultLocale));\n cleanedAs = delLocale(hasBasePath(as) ? delBasePath(as) : as, this.locale);\n this._inFlightRoute = as;\n localeChange = prevLocale !== this.locale; // If the url change is only related to a hash change\n // We should not proceed. We should only change the state.\n // WARNING: `_h` is an internal option for handing Next.js client-side\n // hydration. Your app should _never_ use this property. It may change at\n // any time without notice.\n\n if (!(!options._h && this.onlyAHashChange(cleanedAs) && !localeChange)) {\n _context.next = 35;\n break;\n }\n\n this.asPath = cleanedAs;\n Router.events.emit('hashChangeStart', as, routeProps); // TODO: do we need the resolved href when only a hash change?\n\n this.changeState(method, url, as, options);\n this.scrollToHash(cleanedAs);\n this.notify(this.components[this.route], null);\n Router.events.emit('hashChangeComplete', as, routeProps);\n return _context.abrupt(\"return\", true);\n\n case 35:\n parsed = (0, _parseRelativeUrl).parseRelativeUrl(url);\n pathname = parsed.pathname, query = parsed.query; // The build manifest needs to be loaded before auto-static dynamic pages\n // get their query parameters to allow ensuring they can be parsed properly\n // when rewritten to\n\n _context.prev = 37;\n _context.next = 40;\n return Promise.all([this.pageLoader.getPageList(), (0, _routeLoader).getClientBuildManifest(), this.pageLoader.getMiddlewareList()]);\n\n case 40:\n _yield$Promise$all = _context.sent;\n _yield$Promise$all2 = _slicedToArray(_yield$Promise$all, 2);\n pages = _yield$Promise$all2[0];\n rewrites = _yield$Promise$all2[1].__rewrites;\n _context.next = 50;\n break;\n\n case 46:\n _context.prev = 46;\n _context.t0 = _context[\"catch\"](37);\n // If we fail to resolve the page list or client-build manifest, we must\n // do a server-side transition:\n window.location.href = as;\n return _context.abrupt(\"return\", false);\n\n case 50:\n // If asked to change the current URL we should reload the current page\n // (not location.reload() but reload getInitialProps and other Next.js stuffs)\n // We also need to set the method = replaceState always\n // as this should not go into the history (That's how browsers work)\n // We should compare the new asPath to the current asPath, not the url\n if (!this.urlIsNew(cleanedAs) && !localeChange) {\n method = 'replaceState';\n } // we need to resolve the as value using rewrites for dynamic SSG\n // pages to allow building the data URL correctly\n\n\n resolvedAs = as; // url and as should always be prefixed with basePath by this\n // point by either next/link or router.push/replace so strip the\n // basePath from the pathname to match the pages dir 1-to-1\n\n pathname = pathname ? (0, _normalizeTrailingSlash).removePathTrailingSlash(delBasePath(pathname)) : pathname;\n\n if (shouldResolveHref && pathname !== '/_error') {\n options._shouldResolveHref = true;\n\n if (false) {} else {\n parsed.pathname = resolveDynamicRoute(pathname, pages);\n\n if (parsed.pathname !== pathname) {\n pathname = parsed.pathname;\n parsed.pathname = addBasePath(pathname);\n url = (0, _utils).formatWithValidation(parsed);\n }\n }\n }\n\n if (isLocalURL(as)) {\n _context.next = 59;\n break;\n }\n\n if (false) {}\n\n throw new Error(\"Invalid href: \\\"\".concat(url, \"\\\" and as: \\\"\").concat(as, \"\\\", received relative href and external as\") + \"\\nSee more info: https://nextjs.org/docs/messages/invalid-relative-url-external-as\");\n\n case 57:\n window.location.href = as;\n return _context.abrupt(\"return\", false);\n\n case 59:\n resolvedAs = delLocale(delBasePath(resolvedAs), this.locale);\n _context.next = 62;\n return this._preflightRequest({\n as: as,\n cache: false,\n pages: pages,\n pathname: pathname,\n query: query\n });\n\n case 62:\n effect = _context.sent;\n\n if (!(effect.type === 'rewrite')) {\n _context.next = 71;\n break;\n }\n\n query = _objectSpread(_objectSpread({}, query), effect.parsedAs.query);\n resolvedAs = effect.asPath;\n pathname = effect.resolvedHref;\n parsed.pathname = effect.resolvedHref;\n url = (0, _utils).formatWithValidation(parsed);\n _context.next = 83;\n break;\n\n case 71:\n if (!(effect.type === 'redirect' && effect.newAs)) {\n _context.next = 75;\n break;\n }\n\n return _context.abrupt(\"return\", this.change(method, effect.newUrl, effect.newAs, options));\n\n case 75:\n if (!(effect.type === 'redirect' && effect.destination)) {\n _context.next = 80;\n break;\n }\n\n window.location.href = effect.destination;\n return _context.abrupt(\"return\", new Promise(function () {}));\n\n case 80:\n if (!(effect.type === 'refresh')) {\n _context.next = 83;\n break;\n }\n\n window.location.href = as;\n return _context.abrupt(\"return\", new Promise(function () {}));\n\n case 83:\n route = (0, _normalizeTrailingSlash).removePathTrailingSlash(pathname);\n\n if (!(0, _isDynamic).isDynamicRoute(route)) {\n _context.next = 99;\n break;\n }\n\n _parsedAs = (0, _parseRelativeUrl).parseRelativeUrl(resolvedAs);\n asPathname = _parsedAs.pathname;\n routeRegex = (0, _routeRegex).getRouteRegex(route);\n routeMatch = (0, _routeMatcher).getRouteMatcher(routeRegex)(asPathname);\n shouldInterpolate = route === asPathname;\n interpolatedAs = shouldInterpolate ? interpolateAs(route, asPathname, query) : {};\n\n if (!(!routeMatch || shouldInterpolate && !interpolatedAs.result)) {\n _context.next = 98;\n break;\n }\n\n missingParams = Object.keys(routeRegex.groups).filter(function (param) {\n return !query[param];\n });\n\n if (!(missingParams.length > 0)) {\n _context.next = 96;\n break;\n }\n\n if (true) {\n console.warn(\"\".concat(shouldInterpolate ? \"Interpolating href\" : \"Mismatching `as` and `href`\", \" failed to manually provide \") + \"the params: \".concat(missingParams.join(', '), \" in the `href`'s `query`\"));\n }\n\n throw new Error((shouldInterpolate ? \"The provided `href` (\".concat(url, \") value is missing query values (\").concat(missingParams.join(', '), \") to be interpolated properly. \") : \"The provided `as` value (\".concat(asPathname, \") is incompatible with the `href` value (\").concat(route, \"). \")) + \"Read more: https://nextjs.org/docs/messages/\".concat(shouldInterpolate ? 'href-interpolation-failed' : 'incompatible-href-as'));\n\n case 96:\n _context.next = 99;\n break;\n\n case 98:\n if (shouldInterpolate) {\n as = (0, _utils).formatWithValidation(Object.assign({}, _parsedAs, {\n pathname: interpolatedAs.result,\n query: omitParmsFromQuery(query, interpolatedAs.params)\n }));\n } else {\n // Merge params into `query`, overwriting any specified in search\n Object.assign(query, routeMatch);\n }\n\n case 99:\n Router.events.emit('routeChangeStart', as, routeProps);\n _context.prev = 100;\n _context.next = 103;\n return this.getRouteInfo(route, pathname, query, as, resolvedAs, routeProps);\n\n case 103:\n routeInfo = _context.sent;\n _routeInfo = routeInfo, error = _routeInfo.error, props = _routeInfo.props, __N_SSG = _routeInfo.__N_SSG, __N_SSP = _routeInfo.__N_SSP; // handle redirect on client-transition\n\n if (!((__N_SSG || __N_SSP) && props)) {\n _context.next = 129;\n break;\n }\n\n if (!(props.pageProps && props.pageProps.__N_REDIRECT)) {\n _context.next = 115;\n break;\n }\n\n destination = props.pageProps.__N_REDIRECT; // check if destination is internal (resolves to a page) and attempt\n // client-navigation if it is falling back to hard navigation if\n // it's not\n\n if (!(destination.startsWith('/') && props.pageProps.__N_REDIRECT_BASE_PATH !== false)) {\n _context.next = 113;\n break;\n }\n\n parsedHref = (0, _parseRelativeUrl).parseRelativeUrl(destination);\n parsedHref.pathname = resolveDynamicRoute(parsedHref.pathname, pages);\n _prepareUrlAs3 = prepareUrlAs(this, destination, destination), newUrl = _prepareUrlAs3.url, newAs = _prepareUrlAs3.as;\n return _context.abrupt(\"return\", this.change(method, newUrl, newAs, options));\n\n case 113:\n window.location.href = destination;\n return _context.abrupt(\"return\", new Promise(function () {}));\n\n case 115:\n this.isPreview = !!props.__N_PREVIEW; // handle SSG data 404\n\n if (!(props.notFound === SSG_DATA_NOT_FOUND)) {\n _context.next = 129;\n break;\n }\n\n _context.prev = 117;\n _context.next = 120;\n return this.fetchComponent('/404');\n\n case 120:\n notFoundRoute = '/404';\n _context.next = 126;\n break;\n\n case 123:\n _context.prev = 123;\n _context.t1 = _context[\"catch\"](117);\n notFoundRoute = '/_error';\n\n case 126:\n _context.next = 128;\n return this.getRouteInfo(notFoundRoute, notFoundRoute, query, as, resolvedAs, {\n shallow: false\n });\n\n case 128:\n routeInfo = _context.sent;\n\n case 129:\n Router.events.emit('beforeHistoryChange', as, routeProps);\n this.changeState(method, url, as, options);\n\n if (options._h && pathname === '/_error' && ((ref = self.__NEXT_DATA__.props) === null || ref === void 0 ? void 0 : (ref1 = ref.pageProps) === null || ref1 === void 0 ? void 0 : ref1.statusCode) === 500 && (props === null || props === void 0 ? void 0 : props.pageProps)) {\n // ensure statusCode is still correct for static 500 page\n // when updating query information\n props.pageProps.statusCode = 500;\n } // shallow routing is only allowed for same page URL changes.\n\n\n isValidShallowRoute = options.shallow && this.route === route;\n shouldScroll = (_scroll = options.scroll) !== null && _scroll !== void 0 ? _scroll : !isValidShallowRoute;\n resetScroll = shouldScroll ? {\n x: 0,\n y: 0\n } : null;\n _context.next = 137;\n return this.set(route, pathname, query, cleanedAs, routeInfo, forcedScroll !== null && forcedScroll !== void 0 ? forcedScroll : resetScroll)[\"catch\"](function (e) {\n if (e.cancelled) error = error || e;else throw e;\n });\n\n case 137:\n if (!error) {\n _context.next = 140;\n break;\n }\n\n Router.events.emit('routeChangeError', error, cleanedAs, routeProps);\n throw error;\n\n case 140:\n if (false) {}\n\n Router.events.emit('routeChangeComplete', as, routeProps);\n return _context.abrupt(\"return\", true);\n\n case 145:\n _context.prev = 145;\n _context.t2 = _context[\"catch\"](100);\n\n if (!((0, _isError)[\"default\"](_context.t2) && _context.t2.cancelled)) {\n _context.next = 149;\n break;\n }\n\n return _context.abrupt(\"return\", false);\n\n case 149:\n throw _context.t2;\n\n case 150:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this, [[37, 46], [100, 145], [117, 123]]);\n }));\n\n function change(_x, _x2, _x3, _x4, _x5) {\n return _change.apply(this, arguments);\n }\n\n return change;\n }()\n }, {\n key: \"changeState\",\n value: function changeState(method, url, as) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n if (true) {\n if (typeof window.history === 'undefined') {\n console.error(\"Warning: window.history is not available.\");\n return;\n }\n\n if (typeof window.history[method] === 'undefined') {\n console.error(\"Warning: window.history.\".concat(method, \" is not available\"));\n return;\n }\n }\n\n if (method !== 'pushState' || (0, _utils).getURL() !== as) {\n this._shallow = options.shallow;\n window.history[method]({\n url: url,\n as: as,\n options: options,\n __N: true,\n idx: this._idx = method !== 'pushState' ? this._idx : this._idx + 1\n }, // Most browsers currently ignores this parameter, although they may use it in the future.\n // Passing the empty string here should be safe against future changes to the method.\n // https://developer.mozilla.org/en-US/docs/Web/API/History/replaceState\n '', as);\n }\n }\n }, {\n key: \"handleRouteInfoError\",\n value: function () {\n var _handleRouteInfoError = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(err, pathname, query, as, routeProps, loadErrorFail) {\n var Component, styleSheets, props, _yield$this$fetchComp, routeInfo;\n\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (!err.cancelled) {\n _context2.next = 2;\n break;\n }\n\n throw err;\n\n case 2:\n if (!((0, _routeLoader).isAssetError(err) || loadErrorFail)) {\n _context2.next = 6;\n break;\n }\n\n Router.events.emit('routeChangeError', err, as, routeProps); // If we can't load the page it could be one of following reasons\n // 1. Page doesn't exists\n // 2. Page does exist in a different zone\n // 3. Internal error while loading the page\n // So, doing a hard reload is the proper way to deal with this.\n\n window.location.href = as; // Changing the URL doesn't block executing the current code path.\n // So let's throw a cancellation error stop the routing logic.\n\n throw buildCancellationError();\n\n case 6:\n _context2.prev = 6;\n\n if (!(typeof Component === 'undefined' || typeof styleSheets === 'undefined')) {\n _context2.next = 13;\n break;\n }\n\n _context2.next = 10;\n return this.fetchComponent('/_error');\n\n case 10:\n _yield$this$fetchComp = _context2.sent;\n Component = _yield$this$fetchComp.page;\n styleSheets = _yield$this$fetchComp.styleSheets;\n\n case 13:\n routeInfo = {\n props: props,\n Component: Component,\n styleSheets: styleSheets,\n err: err,\n error: err\n };\n\n if (routeInfo.props) {\n _context2.next = 25;\n break;\n }\n\n _context2.prev = 15;\n _context2.next = 18;\n return this.getInitialProps(Component, {\n err: err,\n pathname: pathname,\n query: query\n });\n\n case 18:\n routeInfo.props = _context2.sent;\n _context2.next = 25;\n break;\n\n case 21:\n _context2.prev = 21;\n _context2.t0 = _context2[\"catch\"](15);\n console.error('Error in error page `getInitialProps`: ', _context2.t0);\n routeInfo.props = {};\n\n case 25:\n return _context2.abrupt(\"return\", routeInfo);\n\n case 28:\n _context2.prev = 28;\n _context2.t1 = _context2[\"catch\"](6);\n return _context2.abrupt(\"return\", this.handleRouteInfoError((0, _isError)[\"default\"](_context2.t1) ? _context2.t1 : new Error(_context2.t1 + ''), pathname, query, as, routeProps, true));\n\n case 31:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this, [[6, 28], [15, 21]]);\n }));\n\n function handleRouteInfoError(_x6, _x7, _x8, _x9, _x10, _x11) {\n return _handleRouteInfoError.apply(this, arguments);\n }\n\n return handleRouteInfoError;\n }()\n }, {\n key: \"getRouteInfo\",\n value: function () {\n var _getRouteInfo = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(route, pathname, query, as, resolvedAs, routeProps) {\n var _this2 = this;\n\n var existingRouteInfo, cachedRouteInfo, routeInfo, Component, __N_SSG, __N_SSP, __N_RSC, _require, isValidElementType, dataHref, props, _yield$this$_getData, fresh, data;\n\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _context3.prev = 0;\n existingRouteInfo = this.components[route];\n\n if (!(routeProps.shallow && existingRouteInfo && this.route === route)) {\n _context3.next = 4;\n break;\n }\n\n return _context3.abrupt(\"return\", existingRouteInfo);\n\n case 4:\n cachedRouteInfo = undefined; // can only use non-initial route info\n // cannot reuse route info in development since it can change after HMR\n\n if (false) {}\n\n _context3.t0 = cachedRouteInfo;\n\n if (_context3.t0) {\n _context3.next = 11;\n break;\n }\n\n _context3.next = 10;\n return this.fetchComponent(route).then(function (res) {\n return {\n Component: res.page,\n styleSheets: res.styleSheets,\n __N_SSG: res.mod.__N_SSG,\n __N_SSP: res.mod.__N_SSP,\n __N_RSC: !!res.page.__next_rsc__\n };\n });\n\n case 10:\n _context3.t0 = _context3.sent;\n\n case 11:\n routeInfo = _context3.t0;\n Component = routeInfo.Component, __N_SSG = routeInfo.__N_SSG, __N_SSP = routeInfo.__N_SSP, __N_RSC = routeInfo.__N_RSC;\n\n if (false) {}\n\n _require = __webpack_require__(/*! react-is */ \"./node_modules/react-is/index.js\"), isValidElementType = _require.isValidElementType;\n\n if (isValidElementType(Component)) {\n _context3.next = 17;\n break;\n }\n\n throw new Error(\"The default export is not a React Component in page: \\\"\".concat(pathname, \"\\\"\"));\n\n case 17:\n if (__N_SSG || __N_SSP || __N_RSC) {\n dataHref = this.pageLoader.getDataHref({\n href: (0, _utils).formatWithValidation({\n pathname: pathname,\n query: query\n }),\n asPath: resolvedAs,\n ssg: __N_SSG,\n rsc: __N_RSC,\n locale: this.locale\n });\n }\n\n _context3.next = 20;\n return this._getData(function () {\n return __N_SSG || __N_SSP ? fetchNextData(dataHref, _this2.isSsr, false, __N_SSG ? _this2.sdc : _this2.sdr, !!__N_SSG && !_this2.isPreview) : _this2.getInitialProps(Component, // we provide AppTree later so this needs to be `any`\n {\n pathname: pathname,\n query: query,\n asPath: as,\n locale: _this2.locale,\n locales: _this2.locales,\n defaultLocale: _this2.defaultLocale\n });\n });\n\n case 20:\n props = _context3.sent;\n\n if (!__N_RSC) {\n _context3.next = 28;\n break;\n }\n\n _context3.next = 24;\n return this._getData(function () {\n return _this2._getFlightData(dataHref);\n });\n\n case 24:\n _yield$this$_getData = _context3.sent;\n fresh = _yield$this$_getData.fresh;\n data = _yield$this$_getData.data;\n props.pageProps = Object.assign(props.pageProps, {\n __flight_serialized__: data,\n __flight_fresh__: fresh\n });\n\n case 28:\n routeInfo.props = props;\n this.components[route] = routeInfo;\n return _context3.abrupt(\"return\", routeInfo);\n\n case 33:\n _context3.prev = 33;\n _context3.t1 = _context3[\"catch\"](0);\n return _context3.abrupt(\"return\", this.handleRouteInfoError((0, _isError)[\"default\"](_context3.t1) ? _context3.t1 : new Error(_context3.t1 + ''), pathname, query, as, routeProps));\n\n case 36:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, this, [[0, 33]]);\n }));\n\n function getRouteInfo(_x12, _x13, _x14, _x15, _x16, _x17) {\n return _getRouteInfo.apply(this, arguments);\n }\n\n return getRouteInfo;\n }()\n }, {\n key: \"set\",\n value: function set(route, pathname, query, as, data, resetScroll) {\n this.isFallback = false;\n this.route = route;\n this.pathname = pathname;\n this.query = query;\n this.asPath = as;\n return this.notify(data, resetScroll);\n }\n /**\n * Callback to execute before replacing router state\n * @param cb callback to be executed\n */\n\n }, {\n key: \"beforePopState\",\n value: function beforePopState(cb) {\n this._bps = cb;\n }\n }, {\n key: \"onlyAHashChange\",\n value: function onlyAHashChange(as) {\n if (!this.asPath) return false;\n\n var _this$asPath$split = this.asPath.split('#'),\n _this$asPath$split2 = _slicedToArray(_this$asPath$split, 2),\n oldUrlNoHash = _this$asPath$split2[0],\n oldHash = _this$asPath$split2[1];\n\n var _as$split = as.split('#'),\n _as$split2 = _slicedToArray(_as$split, 2),\n newUrlNoHash = _as$split2[0],\n newHash = _as$split2[1]; // Makes sure we scroll to the provided hash if the url/hash are the same\n\n\n if (newHash && oldUrlNoHash === newUrlNoHash && oldHash === newHash) {\n return true;\n } // If the urls are change, there's more than a hash change\n\n\n if (oldUrlNoHash !== newUrlNoHash) {\n return false;\n } // If the hash has changed, then it's a hash only change.\n // This check is necessary to handle both the enter and\n // leave hash === '' cases. The identity case falls through\n // and is treated as a next reload.\n\n\n return oldHash !== newHash;\n }\n }, {\n key: \"scrollToHash\",\n value: function scrollToHash(as) {\n var _as$split3 = as.split('#'),\n _as$split4 = _slicedToArray(_as$split3, 2),\n hash = _as$split4[1]; // Scroll to top if the hash is just `#` with no value or `#top`\n // To mirror browsers\n\n\n if (hash === '' || hash === 'top') {\n window.scrollTo(0, 0);\n return;\n } // First we check if the element by id is found\n\n\n var idEl = document.getElementById(hash);\n\n if (idEl) {\n idEl.scrollIntoView();\n return;\n } // If there's no element with the id, we check the `name` property\n // To mirror browsers\n\n\n var nameEl = document.getElementsByName(hash)[0];\n\n if (nameEl) {\n nameEl.scrollIntoView();\n }\n }\n }, {\n key: \"urlIsNew\",\n value: function urlIsNew(asPath) {\n return this.asPath !== asPath;\n }\n /**\n * Prefetch page code, you may wait for the data during page rendering.\n * This feature only works in production!\n * @param url the href of prefetched page\n * @param asPath the as path of the prefetched page\n */\n\n }, {\n key: \"prefetch\",\n value: function () {\n var _prefetch = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(url) {\n var _this3 = this;\n\n var asPath,\n options,\n parsed,\n pathname,\n query,\n parsedAs,\n localePathResult,\n pages,\n resolvedAs,\n rewrites,\n _yield$getClientBuild,\n rewritesResult,\n effects,\n route,\n _args4 = arguments;\n\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n asPath = _args4.length > 1 && _args4[1] !== undefined ? _args4[1] : url;\n options = _args4.length > 2 && _args4[2] !== undefined ? _args4[2] : {};\n parsed = (0, _parseRelativeUrl).parseRelativeUrl(url);\n pathname = parsed.pathname, query = parsed.query;\n\n if (false) {}\n\n _context4.next = 7;\n return this.pageLoader.getPageList();\n\n case 7:\n pages = _context4.sent;\n resolvedAs = asPath;\n\n if (true) {\n _context4.next = 19;\n break;\n }\n\n _context4.next = 12;\n return (0, _routeLoader).getClientBuildManifest();\n\n case 12:\n _yield$getClientBuild = _context4.sent;\n rewrites = _yield$getClientBuild.__rewrites;\n rewritesResult = (0, _resolveRewrites)[\"default\"](addBasePath(addLocale(asPath, this.locale)), pages, rewrites, parsed.query, function (p) {\n return resolveDynamicRoute(p, pages);\n }, this.locales);\n resolvedAs = delLocale(delBasePath(rewritesResult.asPath), this.locale);\n\n if (rewritesResult.matchedPage && rewritesResult.resolvedHref) {\n // if this directly matches a page we need to update the href to\n // allow the correct page chunk to be loaded\n pathname = rewritesResult.resolvedHref;\n parsed.pathname = pathname;\n url = (0, _utils).formatWithValidation(parsed);\n }\n\n _context4.next = 21;\n break;\n\n case 19:\n parsed.pathname = resolveDynamicRoute(parsed.pathname, pages);\n\n if (parsed.pathname !== pathname) {\n pathname = parsed.pathname;\n parsed.pathname = pathname;\n url = (0, _utils).formatWithValidation(parsed);\n }\n\n case 21:\n if (false) {}\n\n return _context4.abrupt(\"return\");\n\n case 23:\n _context4.next = 25;\n return this._preflightRequest({\n as: addBasePath(asPath),\n cache: true,\n pages: pages,\n pathname: pathname,\n query: query\n });\n\n case 25:\n effects = _context4.sent;\n\n if (effects.type === 'rewrite') {\n parsed.pathname = effects.resolvedHref;\n pathname = effects.resolvedHref;\n query = _objectSpread(_objectSpread({}, query), effects.parsedAs.query);\n resolvedAs = effects.asPath;\n url = (0, _utils).formatWithValidation(parsed);\n }\n\n route = (0, _normalizeTrailingSlash).removePathTrailingSlash(pathname);\n _context4.next = 30;\n return Promise.all([this.pageLoader._isSsg(route).then(function (isSsg) {\n return isSsg ? fetchNextData(_this3.pageLoader.getDataHref({\n href: url,\n asPath: resolvedAs,\n ssg: true,\n locale: typeof options.locale !== 'undefined' ? options.locale : _this3.locale\n }), false, false, _this3.sdc, true) : false;\n }), this.pageLoader[options.priority ? 'loadPage' : 'prefetch'](route)]);\n\n case 30:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n\n function prefetch(_x18) {\n return _prefetch.apply(this, arguments);\n }\n\n return prefetch;\n }()\n }, {\n key: \"fetchComponent\",\n value: function () {\n var _fetchComponent = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(route) {\n var _this4 = this;\n\n var cancelled, cancel, handleCancelled, componentResult;\n return _regeneratorRuntime.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n cancelled = false;\n\n cancel = this.clc = function () {\n cancelled = true;\n };\n\n handleCancelled = function handleCancelled() {\n if (cancelled) {\n var error = new Error(\"Abort fetching component for route: \\\"\".concat(route, \"\\\"\"));\n error.cancelled = true;\n throw error;\n }\n\n if (cancel === _this4.clc) {\n _this4.clc = null;\n }\n };\n\n _context5.prev = 3;\n _context5.next = 6;\n return this.pageLoader.loadPage(route);\n\n case 6:\n componentResult = _context5.sent;\n handleCancelled();\n return _context5.abrupt(\"return\", componentResult);\n\n case 11:\n _context5.prev = 11;\n _context5.t0 = _context5[\"catch\"](3);\n handleCancelled();\n throw _context5.t0;\n\n case 15:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5, this, [[3, 11]]);\n }));\n\n function fetchComponent(_x19) {\n return _fetchComponent.apply(this, arguments);\n }\n\n return fetchComponent;\n }()\n }, {\n key: \"_getData\",\n value: function _getData(fn) {\n var _this5 = this;\n\n var cancelled = false;\n\n var cancel = function cancel() {\n cancelled = true;\n };\n\n this.clc = cancel;\n return fn().then(function (data) {\n if (cancel === _this5.clc) {\n _this5.clc = null;\n }\n\n if (cancelled) {\n var err = new Error('Loading initial props cancelled');\n err.cancelled = true;\n throw err;\n }\n\n return data;\n });\n }\n }, {\n key: \"_getFlightData\",\n value: function _getFlightData(dataHref) {\n var _this6 = this;\n\n var _URL2 = new URL(dataHref, window.location.href),\n cacheKey = _URL2.href;\n\n if (!this.isPreview && this.sdc[cacheKey]) {\n return Promise.resolve({\n fresh: false,\n data: this.sdc[cacheKey]\n });\n }\n\n return fetchNextData(dataHref, true, true, this.sdc, false).then(function (serialized) {\n _this6.sdc[cacheKey] = serialized;\n return {\n fresh: true,\n data: serialized\n };\n });\n }\n }, {\n key: \"_preflightRequest\",\n value: function () {\n var _preflightRequest2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6(options) {\n var ref, cleanedAs, fns, requiresPreflight, preflight, parsed, fsPathname, matchedPage, resolvedHref, cleanRedirect, _prepareUrlAs4, newUrl, newAs;\n\n return _regeneratorRuntime.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n cleanedAs = delLocale(hasBasePath(options.as) ? delBasePath(options.as) : options.as, this.locale);\n _context6.next = 3;\n return this.pageLoader.getMiddlewareList();\n\n case 3:\n fns = _context6.sent;\n requiresPreflight = fns.some(function (_ref2) {\n var _ref3 = _slicedToArray(_ref2, 2),\n middleware = _ref3[0],\n isSSR = _ref3[1];\n\n return (0, _routeMatcher).getRouteMatcher((0, _getMiddlewareRegex).getMiddlewareRegex(middleware, !isSSR))(cleanedAs);\n });\n\n if (requiresPreflight) {\n _context6.next = 7;\n break;\n }\n\n return _context6.abrupt(\"return\", {\n type: 'next'\n });\n\n case 7:\n _context6.next = 9;\n return this._getPreflightData({\n preflightHref: options.as,\n shouldCache: options.cache\n });\n\n case 9:\n preflight = _context6.sent;\n\n if (!((ref = preflight.rewrite) === null || ref === void 0 ? void 0 : ref.startsWith('/'))) {\n _context6.next = 15;\n break;\n }\n\n parsed = (0, _parseRelativeUrl).parseRelativeUrl((0, _normalizeLocalePath).normalizeLocalePath(hasBasePath(preflight.rewrite) ? delBasePath(preflight.rewrite) : preflight.rewrite, this.locales).pathname);\n fsPathname = (0, _normalizeTrailingSlash).removePathTrailingSlash(parsed.pathname);\n\n if (options.pages.includes(fsPathname)) {\n matchedPage = true;\n resolvedHref = fsPathname;\n } else {\n resolvedHref = resolveDynamicRoute(fsPathname, options.pages);\n\n if (resolvedHref !== parsed.pathname && options.pages.includes(resolvedHref)) {\n matchedPage = true;\n }\n }\n\n return _context6.abrupt(\"return\", {\n type: 'rewrite',\n asPath: parsed.pathname,\n parsedAs: parsed,\n matchedPage: matchedPage,\n resolvedHref: resolvedHref\n });\n\n case 15:\n if (!preflight.redirect) {\n _context6.next = 21;\n break;\n }\n\n if (!preflight.redirect.startsWith('/')) {\n _context6.next = 20;\n break;\n }\n\n cleanRedirect = (0, _normalizeTrailingSlash).removePathTrailingSlash((0, _normalizeLocalePath).normalizeLocalePath(hasBasePath(preflight.redirect) ? delBasePath(preflight.redirect) : preflight.redirect, this.locales).pathname);\n _prepareUrlAs4 = prepareUrlAs(this, cleanRedirect, cleanRedirect), newUrl = _prepareUrlAs4.url, newAs = _prepareUrlAs4.as;\n return _context6.abrupt(\"return\", {\n type: 'redirect',\n newUrl: newUrl,\n newAs: newAs\n });\n\n case 20:\n return _context6.abrupt(\"return\", {\n type: 'redirect',\n destination: preflight.redirect\n });\n\n case 21:\n if (!(preflight.refresh && !preflight.ssr)) {\n _context6.next = 23;\n break;\n }\n\n return _context6.abrupt(\"return\", {\n type: 'refresh'\n });\n\n case 23:\n return _context6.abrupt(\"return\", {\n type: 'next'\n });\n\n case 24:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6, this);\n }));\n\n function _preflightRequest(_x20) {\n return _preflightRequest2.apply(this, arguments);\n }\n\n return _preflightRequest;\n }()\n }, {\n key: \"_getPreflightData\",\n value: function _getPreflightData(params) {\n var _this7 = this;\n\n var preflightHref = params.preflightHref,\n _params$shouldCache = params.shouldCache,\n shouldCache = _params$shouldCache === void 0 ? false : _params$shouldCache;\n\n var _URL3 = new URL(preflightHref, window.location.href),\n cacheKey = _URL3.href;\n\n if (false) {}\n\n return fetch(preflightHref, {\n method: 'HEAD',\n credentials: 'same-origin',\n headers: {\n 'x-middleware-preflight': '1'\n }\n }).then(function (res) {\n if (!res.ok) {\n throw new Error(\"Failed to preflight request\");\n }\n\n return {\n redirect: res.headers.get('Location'),\n refresh: res.headers.has('x-middleware-refresh'),\n rewrite: res.headers.get('x-middleware-rewrite'),\n ssr: !!res.headers.get('x-middleware-ssr')\n };\n }).then(function (data) {\n if (shouldCache) {\n _this7.sde[cacheKey] = data;\n }\n\n return data;\n })[\"catch\"](function (err) {\n delete _this7.sde[cacheKey];\n throw err;\n });\n }\n }, {\n key: \"getInitialProps\",\n value: function getInitialProps(Component, ctx) {\n var App = this.components['/_app'].Component;\n\n var AppTree = this._wrapApp(App);\n\n ctx.AppTree = AppTree;\n return (0, _utils).loadGetInitialProps(App, {\n AppTree: AppTree,\n Component: Component,\n router: this,\n ctx: ctx\n });\n }\n }, {\n key: \"abortComponentLoad\",\n value: function abortComponentLoad(as, routeProps) {\n if (this.clc) {\n Router.events.emit('routeChangeError', buildCancellationError(), as, routeProps);\n this.clc();\n this.clc = null;\n }\n }\n }, {\n key: \"notify\",\n value: function notify(data, resetScroll) {\n return this.sub(data, this.components['/_app'].Component, resetScroll);\n }\n }]);\n\n return Router;\n}();\n\nRouter.events = (0, _mitt)[\"default\"]();\nexports[\"default\"] = Router;\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3JvdXRlci5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCx1QkFBQSxHQUEwQkUsZUFBMUI7QUFDQUYsaUJBQUEsR0FBb0JHLFNBQXBCO0FBQ0FILGlCQUFBLEdBQW9CSSxTQUFwQjtBQUNBSixtQkFBQSxHQUFzQkssV0FBdEI7QUFDQUwsbUJBQUEsR0FBc0JNLFdBQXRCO0FBQ0FOLG1CQUFBLEdBQXNCTyxXQUF0QjtBQUNBUCxrQkFBQSxHQUFxQlEsVUFBckI7QUFDQVIscUJBQUEsR0FBd0JTLGFBQXhCO0FBQ0FULG1CQUFBLEdBQXNCVSxXQUF0QjtBQUNBVixrQkFBQSxHQUFrQixLQUFLLENBQXZCOztBQUNBLElBQUlXLHVCQUF1QixHQUFHQyxtQkFBTyxDQUFDLDZHQUFELENBQXJDOztBQUNBLElBQUlDLFlBQVksR0FBR0QsbUJBQU8sQ0FBQyxxRkFBRCxDQUExQjs7QUFDQSxJQUFJRSxRQUFRLEdBQUdDLHNCQUFzQixDQUFDSCxtQkFBTyxDQUFDLHVFQUFELENBQVIsQ0FBckM7O0FBQ0EsSUFBSUksb0JBQW9CLEdBQUdKLG1CQUFPLENBQUMsdUdBQUQsQ0FBbEM7O0FBQ0EsSUFBSUssb0JBQW9CLEdBQUdMLG1CQUFPLENBQUMsd0dBQUQsQ0FBbEM7O0FBQ0EsSUFBSU0sS0FBSyxHQUFHSCxzQkFBc0IsQ0FBQ0gsbUJBQU8sQ0FBQyw0REFBRCxDQUFSLENBQWxDOztBQUNBLElBQUlPLE1BQU0sR0FBR1AsbUJBQU8sQ0FBQyw4REFBRCxDQUFwQjs7QUFDQSxJQUFJUSxVQUFVLEdBQUdSLG1CQUFPLENBQUMsMEZBQUQsQ0FBeEI7O0FBQ0EsSUFBSVMsaUJBQWlCLEdBQUdULG1CQUFPLENBQUMsMEdBQUQsQ0FBL0I7O0FBQ0EsSUFBSVUsWUFBWSxHQUFHVixtQkFB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QUs1QixHQUFULEVBQWM7QUFDVm5ELFFBQUFBLE1BQU0sQ0FBQzhDLE1BQVAsQ0FBY3VDLElBQWQsQ0FBbUIsa0JBQW5CLEVBQXVDbk8sc0JBQXNCLEVBQTdELEVBQWlFOEYsRUFBakUsRUFBcUUrSCxVQUFyRTtBQUNBLGFBQUs1QixHQUFMO0FBQ0EsYUFBS0EsR0FBTCxHQUFXLElBQVg7QUFDSDtBQUNKOzs7V0FDRCxnQkFBTy9ELElBQVAsRUFBYTJJLFdBQWIsRUFBMEI7QUFDdEIsYUFBTyxLQUFLN0UsR0FBTCxDQUFTOUQsSUFBVCxFQUFlLEtBQUtpRCxVQUFMLENBQWdCLE9BQWhCLEVBQXlCaEMsU0FBeEMsRUFBbUQwSCxXQUFuRCxDQUFQO0FBQ0g7Ozs7OztBQUVML0gsTUFBTSxDQUFDOEMsTUFBUCxHQUFnQixDQUFDLEdBQUc3TSxLQUFKLGNBQWhCO0FBQ0FsQixrQkFBQSxHQUFrQmlMLE1BQWxCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvcm91dGVyLmpzPzg2ODQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmdldERvbWFpbkxvY2FsZSA9IGdldERvbWFpbkxvY2FsZTtcbmV4cG9ydHMuYWRkTG9jYWxlID0gYWRkTG9jYWxlO1xuZXhwb3J0cy5kZWxMb2NhbGUgPSBkZWxMb2NhbGU7XG5leHBvcnRzLmhhc0Jhc2VQYXRoID0gaGFzQmFzZVBhdGg7XG5leHBvcnRzLmFkZEJhc2VQYXRoID0gYWRkQmFzZVBhdGg7XG5leHBvcnRzLmRlbEJhc2VQYXRoID0gZGVsQmFzZVBhdGg7XG5leHBvcnRzLmlzTG9jYWxVUkwgPSBpc0xvY2FsVVJMO1xuZXhwb3J0cy5pbnRlcnBvbGF0ZUFzID0gaW50ZXJwb2xhdGVBcztcbmV4cG9ydHMucmVzb2x2ZUhyZWYgPSByZXNvbHZlSHJlZjtcbmV4cG9ydHMuZGVmYXVsdCA9IHZvaWQgMDtcbnZhciBfbm9ybWFsaXplVHJhaWxpbmdTbGFzaCA9IHJlcXVpcmUoXCIuLi8uLi8uLi9jbGllbnQvbm9ybWFsaXplLXRyYWlsaW5nLXNsYXNoXCIpO1xudmFyIF9yb3V0ZUxvYWRlciA9IHJlcXVpcmUoXCIuLi8uLi8uLi9jbGllbnQvcm91dGUtbG9hZGVyXCIpO1xudmFyIF9pc0Vycm9yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vLi4vLi4vbGliL2lzLWVycm9yXCIpKTtcbnZhciBfZGVub3JtYWxpemVQYWdlUGF0aCA9IHJlcXVpcmUoXCIuLi8uLi8uLi9zZXJ2ZXIvZGVub3JtYWxpemUtcGFnZS1wYXRoXCIpO1xudmFyIF9ub3JtYWxpemVMb2NhbGVQYXRoID0gcmVxdWlyZShcIi4uL2kxOG4vbm9ybWFsaXplLWxvY2FsZS1wYXRoXCIpO1xudmFyIF9taXR0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vbWl0dFwiKSk7XG52YXIgX3V0aWxzID0gcmVxdWlyZShcIi4uL3V0aWxzXCIpO1xudmFyIF9pc0R5bmFtaWMgPSByZXF1aXJlKFwiLi91dGlscy9pcy1keW5hbWljXCIpO1xudmFyIF9wYXJzZVJlbGF0aXZlVXJsID0gcmVxdWlyZShcIi4vdXRpbHMvcGFyc2UtcmVsYXRpdmUtdXJsXCIpO1xudmFyIF9xdWVyeXN0cmluZyA9IHJlcXVpcmUoXCIuL3V0aWxzL3F1ZXJ5c3RyaW5nXCIpO1xudmFyIF9yZXNvbHZlUmV3cml0ZXMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL3V0aWxzL3Jlc29sdmUtcmV3cml0ZXNcIikpO1xudmFyIF9yb3V0ZU1hdGNoZXIgPSByZXF1aXJlKFwiLi91dGlscy9yb3V0ZS1tYXRjaGVyXCIpO1xudmFyIF9yb3V0ZVJlZ2V4ID0gcmVxdWlyZShcIi4vdXRpbHMvcm91dGUtcmVnZXhcIik7XG52YXIgX2dldE1pZGRsZXdhcmVSZWdleCA9IHJlcXVpcmUoXCIuL3V0aWxzL2dldC1taWRkbGV3YXJlLXJlZ2V4XCIpO1xuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxubGV0IGRldGVjdERvbWFpbkxvY2FsZTtcbmlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgZGV0ZWN0RG9tYWluTG9jYWxlID0gcmVxdWlyZSgnLi4vaTE4bi9kZXRlY3QtZG9tYWluLWxvY2FsZScpLmRldGVjdERvbWFpbkxvY2FsZTtcbn1cbmNvbnN0IGJhc2VQYXRoID0gcHJvY2Vzcy5lbnYuX19ORVhUX1JPVVRFUl9CQVNFUEFUSCB8fCAnJztcbmZ1bmN0aW9uIGJ1aWxkQ2FuY2VsbGF0aW9uRXJyb3IoKSB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IEVycm9yKCdSb3V0ZSBDYW5jZWxsZWQnKSwge1xuICAgICAgICBjYW5jZWxsZWQ6IHRydWVcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGFkZFBhdGhQcmVmaXgocGF0aCwgcHJlZml4KSB7XG4gICAgaWYgKCFwYXRoLnN0YXJ0c1dpdGgoJy8nKSB8fCAhcHJlZml4KSB7XG4gICAgICAgIHJldHVybiBwYXRoO1xuICAgIH1cbiAgICBjb25zdCBwYXRobmFtZSA9IHBhdGhOb1F1ZXJ5SGFzaChwYXRoKTtcbiAgICByZXR1cm4gKDAsIF9ub3JtYWxpemVUcmFpbGluZ1NsYXNoKS5ub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaChgJHtwcmVmaXh9JHtwYXRobmFtZX1gKSArIHBhdGguc3Vic3RyKHBhdGhuYW1lLmxlbmd0aCk7XG59XG5mdW5jdGlvbiBnZXREb21haW5Mb2NhbGUocGF0aCwgbG9jYWxlLCBsb2NhbGVzLCBkb21haW5Mb2NhbGVzKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9JMThOX1NVUFBPUlQpIHtcbiAgICAgICAgbG9jYWxlID0gbG9jYWxlIHx8ICgwLCBfbm9ybWFsaXplTG9jYWxlUGF0aCkubm9ybWFsaXplTG9jYWxlUGF0aChwYXRoLCBsb2NhbGVzKS5kZXRlY3RlZExvY2FsZTtcbiAgICAgICAgY29uc3QgZGV0ZWN0ZWREb21haW4gPSBkZXRlY3REb21haW5Mb2NhbGUoZG9tYWluTG9jYWxlcywgdW5kZWZpbmVkLCBsb2NhbGUpO1xuICAgICAgICBpZiAoZGV0ZWN0ZWREb21haW4pIHtcbiAgICAgICAgICAgIHJldHVybiBgaHR0cCR7ZGV0ZWN0ZWREb21haW4uaHR0cCA/ICcnIDogJ3MnfTovLyR7ZGV0ZWN0ZWREb21haW4uZG9tYWlufSR7YmFzZVBhdGggfHwgJyd9JHtsb2NhbGUgPT09IGRldGVjdGVkRG9tYWluLmRlZmF1bHRMb2NhbGUgPyAnJyA6IGAvJHtsb2NhbGV9YH0ke3BhdGh9YDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGFkZExvY2FsZShwYXRoLCBsb2NhbGUsIGRlZmF1bHRMb2NhbGUpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0kxOE5fU1VQUE9SVCkge1xuICAgICAgICBjb25zdCBwYXRobmFtZSA9IHBhdGhOb1F1ZXJ5SGFzaChwYXRoKTtcbiAgICAgICAgY29uc3QgcGF0aExvd2VyID0gcGF0aG5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgY29uc3QgbG9jYWxlTG93ZXIgPSBsb2NhbGUgJiYgbG9jYWxlLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIHJldHVybiBsb2NhbGUgJiYgbG9jYWxlICE9PSBkZWZhdWx0TG9jYWxlICYmICFwYXRoTG93ZXIuc3RhcnRzV2l0aCgnLycgKyBsb2NhbGVMb3dlciArICcvJykgJiYgcGF0aExvd2VyICE9PSAnLycgKyBsb2NhbGVMb3dlciA/IGFkZFBhdGhQcmVmaXgocGF0aCwgJy8nICsgbG9jYWxlKSA6IHBhdGg7XG4gICAgfVxuICAgIHJldHVybiBwYXRoO1xufVxuZnVuY3Rpb24gZGVsTG9jYWxlKHBhdGgsIGxvY2FsZSkge1xuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgICAgIGNvbnN0IHBhdGhuYW1lID0gcGF0aE5vUXVlcnlIYXNoKHBhdGgpO1xuICAgICAgICBjb25zdCBwYXRoTG93ZXIgPSBwYXRobmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBjb25zdCBsb2NhbGVMb3dlciA9IGxvY2FsZSAmJiBsb2NhbGUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgcmV0dXJuIGxvY2FsZSAmJiAocGF0aExvd2VyLnN0YXJ0c1dpdGgoJy8nICsgbG9jYWxlTG93ZXIgKyAnLycpIHx8IHBhdGhMb3dlciA9PT0gJy8nICsgbG9jYWxlTG93ZXIpID8gKHBhdGhuYW1lLmxlbmd0aCA9PT0gbG9jYWxlLmxlbmd0aCArIDEgPyAnLycgOiAnJykgKyBwYXRoLnN1YnN0cihsb2NhbGUubGVuZ3RoICsgMSkgOiBwYXRoO1xuICAgIH1cbiAgICByZXR1cm4gcGF0aDtcbn1cbmZ1bmN0aW9uIHBhdGhOb1F1ZXJ5SGFzaChwYXRoKSB7XG4gICAgY29uc3QgcXVlcnlJbmRleCA9IHBhdGguaW5kZXhPZignPycpO1xuICAgIGNvbnN0IGhhc2hJbmRleCA9IHBhdGguaW5kZXhPZignIycpO1xuICAgIGlmIChxdWVyeUluZGV4ID4gLTEgfHwgaGFzaEluZGV4ID4gLTEpIHtcbiAgICAgICAgcGF0aCA9IHBhdGguc3Vic3RyaW5nKDAsIHF1ZXJ5SW5kZXggPiAtMSA/IHF1ZXJ5SW5kZXggOiBoYXNoSW5kZXgpO1xuICAgIH1cbiAgICByZXR1cm4gcGF0aDtcbn1cbmZ1bmN0aW9uIGhhc0Jhc2VQYXRoKHBhdGgpIHtcbiAgICBwYXRoID0gcGF0aE5vUXVlcnlIYXNoKHBhdGgpO1xuICAgIHJldHVybiBwYXRoID09PSBiYXNlUGF0aCB8fCBwYXRoLnN0YXJ0c1dpdGgoYmFzZVBhdGggKyAnLycpO1xufVxuZnVuY3Rpb24gYWRkQmFzZVBhdGgocGF0aCkge1xuICAgIC8vIHdlIG9ubHkgYWRkIHRoZSBiYXNlcGF0aCBvbiByZWxhdGl2ZSB1cmxzXG4gICAgcmV0dXJuIGFkZFBhdGhQcmVmaXgocGF0aCwgYmFzZVBhdGgpO1xufVxuZnVuY3Rpb24gZGVsQmFzZVBhdGgocGF0aCkge1xuICAgIHBhdGggPSBwYXRoLnNsaWNlKGJhc2VQYXRoLmxlbmd0aCk7XG4gICAgaWYgKCFwYXRoLnN0YXJ0c1dpdGgoJy8nKSkgcGF0aCA9IGAvJHtwYXRofWA7XG4gICAgcmV0dXJuIHBhdGg7XG59XG5mdW5jdGlvbiBpc0xvY2FsVVJMKHVybCkge1xuICAgIC8vIHByZXZlbnQgYSBoeWRyYXRpb24gbWlzbWF0Y2ggb24gaHJlZiBmb3IgdXJsIHdpdGggYW5jaG9yIHJlZnNcbiAgICBpZiAodXJsLnN0YXJ0c1dpdGgoJy8nKSB8fCB1cmwuc3RhcnRzV2l0aCgnIycpIHx8IHVybC5zdGFydHNXaXRoKCc/JykpIHJldHVybiB0cnVlO1xuICAgIHRyeSB7XG4gICAgICAgIC8vIGFic29sdXRlIHVybHMgY2FuIGJlIGxvY2FsIGlmIHRoZXkgYXJlIG9uIHRoZSBzYW1lIG9yaWdpblxuICAgICAgICBjb25zdCBsb2NhdGlvbk9yaWdpbiA9ICgwLCBfdXRpbHMpLmdldExvY2F0aW9uT3JpZ2luKCk7XG4gICAgICAgIGNvbnN0IHJlc29sdmVkID0gbmV3IFVSTCh1cmwsIGxvY2F0aW9uT3JpZ2luKTtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVkLm9yaWdpbiA9PT0gbG9jYXRpb25PcmlnaW4gJiYgaGFzQmFzZVBhdGgocmVzb2x2ZWQucGF0aG5hbWUpO1xuICAgIH0gY2F0Y2ggKF8pIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGludGVycG9sYXRlQXMocm91dGUsIGFzUGF0aG5hbWUsIHF1ZXJ5KSB7XG4gICAgbGV0IGludGVycG9sYXRlZFJvdXRlID0gJyc7XG4gICAgY29uc3QgZHluYW1pY1JlZ2V4ID0gKDAsIF9yb3V0ZVJlZ2V4KS5nZXRSb3V0ZVJlZ2V4KHJvdXRlKTtcbiAgICBjb25zdCBkeW5hbWljR3JvdXBzID0gZHluYW1pY1JlZ2V4Lmdyb3VwcztcbiAgICBjb25zdCBkeW5hbWljTWF0Y2hlcyA9IC8vIFRyeSB0byBtYXRjaCB0aGUgZHluYW1pYyByb3V0ZSBhZ2FpbnN0IHRoZSBhc1BhdGhcbiAgICAoYXNQYXRobmFtZSAhPT0gcm91dGUgPyAoMCwgX3JvdXRlTWF0Y2hlcikuZ2V0Um91dGVNYXRjaGVyKGR5bmFtaWNSZWdleCkoYXNQYXRobmFtZSkgOiAnJykgfHwgLy8gRmFsbCBiYWNrIHRvIHJlYWRpbmcgdGhlIHZhbHVlcyBmcm9tIHRoZSBocmVmXG4gICAgLy8gVE9ETzogc2hvdWxkIHRoaXMgdGFrZSBwcmlvcml0eTsgYWxzbyBuZWVkIHRvIGNoYW5nZSBpbiB0aGUgcm91dGVyLlxuICAgIHF1ZXJ5O1xuICAgIGludGVycG9sYXRlZFJvdXRlID0gcm91dGU7XG4gICAgY29uc3QgcGFyYW1zID0gT2JqZWN0LmtleXMoZHluYW1pY0dyb3Vwcyk7XG4gICAgaWYgKCFwYXJhbXMuZXZlcnkoKHBhcmFtKT0+e1xuICAgICAgICBsZXQgdmFsdWUgPSBkeW5hbWljTWF0Y2hlc1twYXJhbV0gfHwgJyc7XG4gICAgICAgIGNvbnN0IHsgcmVwZWF0ICwgb3B0aW9uYWwgIH0gPSBkeW5hbWljR3JvdXBzW3BhcmFtXTtcbiAgICAgICAgLy8gc3VwcG9ydCBzaW5nbGUtbGV2ZWwgY2F0Y2gtYWxsXG4gICAgICAgIC8vIFRPRE86IG1vcmUgcm9idXN0IGhhbmRsaW5nIGZvciB1c2VyLWVycm9yIChwYXNzaW5nIGAvYClcbiAgICAgICAgbGV0IHJlcGxhY2VkID0gYFske3JlcGVhdCA/ICcuLi4nIDogJyd9JHtwYXJhbX1dYDtcbiAgICAgICAgaWYgKG9wdGlvbmFsKSB7XG4gICAgICAgICAgICByZXBsYWNlZCA9IGAkeyF2YWx1ZSA/ICcvJyA6ICcnfVske3JlcGxhY2VkfV1gO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZXBlYXQgJiYgIUFycmF5LmlzQXJyYXkodmFsdWUpKSB2YWx1ZSA9IFtcbiAgICAgICAgICAgIHZhbHVlXG4gICAgICAgIF07XG4gICAgICAgIHJldHVybiAob3B0aW9uYWwgfHwgcGFyYW0gaW4gZHluYW1pY01hdGNoZXMpICYmIC8vIEludGVycG9sYXRlIGdyb3VwIGludG8gZGF0YSBVUkwgaWYgcHJlc2VudFxuICAgICAgICAoaW50ZXJwb2xhdGVkUm91dGUgPSBpbnRlcnBvbGF0ZWRSb3V0ZS5yZXBsYWNlKHJlcGxhY2VkLCByZXBlYXQgPyB2YWx1ZS5tYXAoLy8gdGhlc2UgdmFsdWVzIHNob3VsZCBiZSBmdWxseSBlbmNvZGVkIGluc3RlYWQgb2YganVzdFxuICAgICAgICAvLyBwYXRoIGRlbGltaXRlciBlc2NhcGVkIHNpbmNlIHRoZXkgYXJlIGJlaW5nIGluc2VydGVkXG4gICAgICAgIC8vIGludG8gdGhlIFVSTCBhbmQgd2UgZXhwZWN0IFVSTCBlbmNvZGVkIHNlZ21lbnRzXG4gICAgICAgIC8vIHdoZW4gcGFyc2luZyBkeW5hbWljIHJvdXRlIHBhcmFtc1xuICAgICAgICAoc2VnbWVudCk9PmVuY29kZVVSSUNvbXBvbmVudChzZWdtZW50KVxuICAgICAgICApLmpvaW4oJy8nKSA6IGVuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSkpIHx8ICcvJyk7XG4gICAgfSkpIHtcbiAgICAgICAgaW50ZXJwb2xhdGVkUm91dGUgPSAnJyAvLyBkaWQgbm90IHNhdGlzZnkgYWxsIHJlcXVpcmVtZW50c1xuICAgICAgICA7XG4gICAgLy8gbi5iLiBXZSBpZ25vcmUgdGhpcyBlcnJvciBiZWNhdXNlIHdlIGhhbmRsZSB3YXJuaW5nIGZvciB0aGlzIGNhc2UgaW5cbiAgICAvLyBkZXZlbG9wbWVudCBpbiB0aGUgYDxMaW5rPmAgY29tcG9uZW50IGRpcmVjdGx5LlxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBwYXJhbXMsXG4gICAgICAgIHJlc3VsdDogaW50ZXJwb2xhdGVkUm91dGVcbiAgICB9O1xufVxuZnVuY3Rpb24gb21pdFBhcm1zRnJvbVF1ZXJ5KHF1ZXJ5LCBwYXJhbXMpIHtcbiAgICBjb25zdCBmaWx0ZXJlZFF1ZXJ5ID0ge1xuICAgIH07XG4gICAgT2JqZWN0LmtleXMocXVlcnkpLmZvckVhY2goKGtleSk9PntcbiAgICAgICAgaWYgKCFwYXJhbXMuaW5jbHVkZXMoa2V5KSkge1xuICAgICAgICAgICAgZmlsdGVyZWRRdWVyeVtrZXldID0gcXVlcnlba2V5XTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBmaWx0ZXJlZFF1ZXJ5O1xufVxuZnVuY3Rpb24gcmVzb2x2ZUhyZWYocm91dGVyLCBocmVmLCByZXNvbHZlQXMpIHtcbiAgICAvLyB3ZSB1c2UgYSBkdW1teSBiYXNlIHVybCBmb3IgcmVsYXRpdmUgdXJsc1xuICAgIGxldCBiYXNlO1xuICAgIGxldCB1cmxBc1N0cmluZyA9IHR5cGVvZiBocmVmID09PSAnc3RyaW5nJyA/IGhyZWYgOiAoMCwgX3V0aWxzKS5mb3JtYXRXaXRoVmFsaWRhdGlvbihocmVmKTtcbiAgICAvLyByZXBlYXRlZCBzbGFzaGVzIGFuZCBiYWNrc2xhc2hlcyBpbiB0aGUgVVJMIGFyZSBjb25zaWRlcmVkXG4gICAgLy8gaW52YWxpZCBhbmQgd2lsbCBuZXZlciBtYXRjaCBhIE5leHQuanMgcGFnZS9maWxlXG4gICAgY29uc3QgdXJsUHJvdG9NYXRjaCA9IHVybEFzU3RyaW5nLm1hdGNoKC9eW2EtekEtWl17MSx9OlxcL1xcLy8pO1xuICAgIGNvbnN0IHVybEFzU3RyaW5nTm9Qcm90byA9IHVybFByb3RvTWF0Y2ggPyB1cmxBc1N0cmluZy5zdWJzdHIodXJsUHJvdG9NYXRjaFswXS5sZW5ndGgpIDogdXJsQXNTdHJpbmc7XG4gICAgY29uc3QgdXJsUGFydHMgPSB1cmxBc1N0cmluZ05vUHJvdG8uc3BsaXQoJz8nKTtcbiAgICBpZiAoKHVybFBhcnRzWzBdIHx8ICcnKS5tYXRjaCgvKFxcL1xcL3xcXFxcKS8pKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYEludmFsaWQgaHJlZiBwYXNzZWQgdG8gbmV4dC9yb3V0ZXI6ICR7dXJsQXNTdHJpbmd9LCByZXBlYXRlZCBmb3J3YXJkLXNsYXNoZXMgKC8vKSBvciBiYWNrc2xhc2hlcyBcXFxcIGFyZSBub3QgdmFsaWQgaW4gdGhlIGhyZWZgKTtcbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZFVybCA9ICgwLCBfdXRpbHMpLm5vcm1hbGl6ZVJlcGVhdGVkU2xhc2hlcyh1cmxBc1N0cmluZ05vUHJvdG8pO1xuICAgICAgICB1cmxBc1N0cmluZyA9ICh1cmxQcm90b01hdGNoID8gdXJsUHJvdG9NYXRjaFswXSA6ICcnKSArIG5vcm1hbGl6ZWRVcmw7XG4gICAgfVxuICAgIC8vIFJldHVybiBiZWNhdXNlIGl0IGNhbm5vdCBiZSByb3V0ZWQgYnkgdGhlIE5leHQuanMgcm91dGVyXG4gICAgaWYgKCFpc0xvY2FsVVJMKHVybEFzU3RyaW5nKSkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZUFzID8gW1xuICAgICAgICAgICAgdXJsQXNTdHJpbmdcbiAgICAgICAgXSA6IHVybEFzU3RyaW5nO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICBiYXNlID0gbmV3IFVSTCh1cmxBc1N0cmluZy5zdGFydHNXaXRoKCcjJykgPyByb3V0ZXIuYXNQYXRoIDogcm91dGVyLnBhdGhuYW1lLCAnaHR0cDovL24nKTtcbiAgICB9IGNhdGNoIChfKSB7XG4gICAgICAgIC8vIGZhbGxiYWNrIHRvIC8gZm9yIGludmFsaWQgYXNQYXRoIHZhbHVlcyBlLmcuIC8vXG4gICAgICAgIGJhc2UgPSBuZXcgVVJMKCcvJywgJ2h0dHA6Ly9uJyk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGZpbmFsVXJsID0gbmV3IFVSTCh1cmxBc1N0cmluZywgYmFzZSk7XG4gICAgICAgIGZpbmFsVXJsLnBhdGhuYW1lID0gKDAsIF9ub3JtYWxpemVUcmFpbGluZ1NsYXNoKS5ub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaChmaW5hbFVybC5wYXRobmFtZSk7XG4gICAgICAgIGxldCBpbnRlcnBvbGF0ZWRBcyA9ICcnO1xuICAgICAgICBpZiAoKDAsIF9pc0R5bmFtaWMpLmlzRHluYW1pY1JvdXRlKGZpbmFsVXJsLnBhdGhuYW1lKSAmJiBmaW5hbFVybC5zZWFyY2hQYXJhbXMgJiYgcmVzb2x2ZUFzKSB7XG4gICAgICAgICAgICBjb25zdCBxdWVyeSA9ICgwLCBfcXVlcnlzdHJpbmcpLnNlYXJjaFBhcmFtc1RvVXJsUXVlcnkoZmluYWxVcmwuc2VhcmNoUGFyYW1zKTtcbiAgICAgICAgICAgIGNvbnN0IHsgcmVzdWx0ICwgcGFyYW1zICB9ID0gaW50ZXJwb2xhdGVBcyhmaW5hbFVybC5wYXRobmFtZSwgZmluYWxVcmwucGF0aG5hbWUsIHF1ZXJ5KTtcbiAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICBpbnRlcnBvbGF0ZWRBcyA9ICgwLCBfdXRpbHMpLmZvcm1hdFdpdGhWYWxpZGF0aW9uKHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWU6IHJlc3VsdCxcbiAgICAgICAgICAgICAgICAgICAgaGFzaDogZmluYWxVcmwuaGFzaCxcbiAgICAgICAgICAgICAgICAgICAgcXVlcnk6IG9taXRQYXJtc0Zyb21RdWVyeShxdWVyeSwgcGFyYW1zKVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIGlmIHRoZSBvcmlnaW4gZGlkbid0IGNoYW5nZSwgaXQgbWVhbnMgd2UgcmVjZWl2ZWQgYSByZWxhdGl2ZSBocmVmXG4gICAgICAgIGNvbnN0IHJlc29sdmVkSHJlZiA9IGZpbmFsVXJsLm9yaWdpbiA9PT0gYmFzZS5vcmlnaW4gPyBmaW5hbFVybC5ocmVmLnNsaWNlKGZpbmFsVXJsLm9yaWdpbi5sZW5ndGgpIDogZmluYWxVcmwuaHJlZjtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVBcyA/IFtcbiAgICAgICAgICAgIHJlc29sdmVkSHJlZixcbiAgICAgICAgICAgIGludGVycG9sYXRlZEFzIHx8IHJlc29sdmVkSHJlZlxuICAgICAgICBdIDogcmVzb2x2ZWRIcmVmO1xuICAgIH0gY2F0Y2ggKF8xKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlQXMgPyBbXG4gICAgICAgICAgICB1cmxBc1N0cmluZ1xuICAgICAgICBdIDogdXJsQXNTdHJpbmc7XG4gICAgfVxufVxuZnVuY3Rpb24gc3RyaXBPcmlnaW4odXJsKSB7XG4gICAgY29uc3Qgb3JpZ2luID0gKDAsIF91dGlscykuZ2V0TG9jYXRpb25PcmlnaW4oKTtcbiAgICByZXR1cm4gdXJsLnN0YXJ0c1dpdGgob3JpZ2luKSA/IHVybC5zdWJzdHJpbmcob3JpZ2luLmxlbmd0aCkgOiB1cmw7XG59XG5mdW5jdGlvbiBwcmVwYXJlVXJsQXMocm91dGVyLCB1cmwsIGFzKSB7XG4gICAgLy8gSWYgdXJsIGFuZCBhcyBwcm92aWRlZCBhcyBhbiBvYmplY3QgcmVwcmVzZW50YXRpb24sXG4gICAgLy8gd2UnbGwgZm9ybWF0IHRoZW0gaW50byB0aGUgc3RyaW5nIHZlcnNpb24gaGVyZS5cbiAgICBsZXQgW3Jlc29sdmVkSHJlZiwgcmVzb2x2ZWRBc10gPSByZXNvbHZlSHJlZihyb3V0ZXIsIHVybCwgdHJ1ZSk7XG4gICAgY29uc3Qgb3JpZ2luID0gKDAsIF91dGlscykuZ2V0TG9jYXRpb25PcmlnaW4oKTtcbiAgICBjb25zdCBocmVmSGFkT3JpZ2luID0gcmVzb2x2ZWRIcmVmLnN0YXJ0c1dpdGgob3JpZ2luKTtcbiAgICBjb25zdCBhc0hhZE9yaWdpbiA9IHJlc29sdmVkQXMgJiYgcmVzb2x2ZWRBcy5zdGFydHNXaXRoKG9yaWdpbik7XG4gICAgcmVzb2x2ZWRIcmVmID0gc3RyaXBPcmlnaW4ocmVzb2x2ZWRIcmVmKTtcbiAgICByZXNvbHZlZEFzID0gcmVzb2x2ZWRBcyA/IHN0cmlwT3JpZ2luKHJlc29sdmVkQXMpIDogcmVzb2x2ZWRBcztcbiAgICBjb25zdCBwcmVwYXJlZFVybCA9IGhyZWZIYWRPcmlnaW4gPyByZXNvbHZlZEhyZWYgOiBhZGRCYXNlUGF0aChyZXNvbHZlZEhyZWYpO1xuICAgIGNvbnN0IHByZXBhcmVkQXMgPSBhcyA/IHN0cmlwT3JpZ2luKHJlc29sdmVIcmVmKHJvdXRlciwgYXMpKSA6IHJlc29sdmVkQXMgfHwgcmVzb2x2ZWRIcmVmO1xuICAgIHJldHVybiB7XG4gICAgICAgIHVybDogcHJlcGFyZWRVcmwsXG4gICAgICAgIGFzOiBhc0hhZE9yaWdpbiA/IHByZXBhcmVkQXMgOiBhZGRCYXNlUGF0aChwcmVwYXJlZEFzKVxuICAgIH07XG59XG5mdW5jdGlvbiByZXNvbHZlRHluYW1pY1JvdXRlKHBhdGhuYW1lLCBwYWdlcykge1xuICAgIGNvbnN0IGNsZWFuUGF0aG5hbWUgPSAoMCwgX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2gpLnJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoKCgwLCBfZGVub3JtYWxpemVQYWdlUGF0aCkuZGVub3JtYWxpemVQYWdlUGF0aChwYXRobmFtZSkpO1xuICAgIGlmIChjbGVhblBhdGhuYW1lID09PSAnLzQwNCcgfHwgY2xlYW5QYXRobmFtZSA9PT0gJy9fZXJyb3InKSB7XG4gICAgICAgIHJldHVybiBwYXRobmFtZTtcbiAgICB9XG4gICAgLy8gaGFuZGxlIHJlc29sdmluZyBocmVmIGZvciBkeW5hbWljIHJvdXRlc1xuICAgIGlmICghcGFnZXMuaW5jbHVkZXMoY2xlYW5QYXRobmFtZSkpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGFycmF5LWNhbGxiYWNrLXJldHVyblxuICAgICAgICBwYWdlcy5zb21lKChwYWdlKT0+e1xuICAgICAgICAgICAgaWYgKCgwLCBfaXNEeW5hbWljKS5pc0R5bmFtaWNSb3V0ZShwYWdlKSAmJiAoMCwgX3JvdXRlUmVnZXgpLmdldFJvdXRlUmVnZXgocGFnZSkucmUudGVzdChjbGVhblBhdGhuYW1lKSkge1xuICAgICAgICAgICAgICAgIHBhdGhuYW1lID0gcGFnZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiAoMCwgX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2gpLnJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoKHBhdGhuYW1lKTtcbn1cbmNvbnN0IG1hbnVhbFNjcm9sbFJlc3RvcmF0aW9uID0gcHJvY2Vzcy5lbnYuX19ORVhUX1NDUk9MTF9SRVNUT1JBVElPTiAmJiB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiAnc2Nyb2xsUmVzdG9yYXRpb24nIGluIHdpbmRvdy5oaXN0b3J5ICYmICEhZnVuY3Rpb24oKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgbGV0IHYgPSAnX19uZXh0JztcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlcXVlbmNlc1xuICAgICAgICByZXR1cm4gc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh2LCB2KSwgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSh2KSwgdHJ1ZTtcbiAgICB9IGNhdGNoIChuKSB7XG4gICAgfVxufSgpO1xuY29uc3QgU1NHX0RBVEFfTk9UX0ZPVU5EID0gU3ltYm9sKCdTU0dfREFUQV9OT1RfRk9VTkQnKTtcbmZ1bmN0aW9uIGZldGNoUmV0cnkodXJsLCBhdHRlbXB0cywgb3B0cykge1xuICAgIHJldHVybiBmZXRjaCh1cmwsIHtcbiAgICAgICAgLy8gQ29va2llcyBhcmUgcmVxdWlyZWQgdG8gYmUgcHJlc2VudCBmb3IgTmV4dC5qcycgU1NHIFwiUHJldmlldyBNb2RlXCIuXG4gICAgICAgIC8vIENvb2tpZXMgbWF5IGFsc28gYmUgcmVxdWlyZWQgZm9yIGBnZXRTZXJ2ZXJTaWRlUHJvcHNgLlxuICAgICAgICAvL1xuICAgICAgICAvLyA+IGBmZXRjaGAgd29u4oCZdCBzZW5kIGNvb2tpZXMsIHVubGVzcyB5b3Ugc2V0IHRoZSBjcmVkZW50aWFscyBpbml0XG4gICAgICAgIC8vID4gb3B0aW9uLlxuICAgICAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRmV0Y2hfQVBJL1VzaW5nX0ZldGNoXG4gICAgICAgIC8vXG4gICAgICAgIC8vID4gRm9yIG1heGltdW0gYnJvd3NlciBjb21wYXRpYmlsaXR5IHdoZW4gaXQgY29tZXMgdG8gc2VuZGluZyAmXG4gICAgICAgIC8vID4gcmVjZWl2aW5nIGNvb2tpZXMsIGFsd2F5cyBzdXBwbHkgdGhlIGBjcmVkZW50aWFsczogJ3NhbWUtb3JpZ2luJ2BcbiAgICAgICAgLy8gPiBvcHRpb24gaW5zdGVhZCBvZiByZWx5aW5nIG9uIHRoZSBkZWZhdWx0LlxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZ2l0aHViL2ZldGNoI2NhdmVhdHNcbiAgICAgICAgY3JlZGVudGlhbHM6ICdzYW1lLW9yaWdpbidcbiAgICB9KS50aGVuKChyZXMpPT57XG4gICAgICAgIGlmICghcmVzLm9rKSB7XG4gICAgICAgICAgICBpZiAoYXR0ZW1wdHMgPiAxICYmIHJlcy5zdGF0dXMgPj0gNTAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZldGNoUmV0cnkodXJsLCBhdHRlbXB0cyAtIDEsIG9wdHMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT09IDQwNCkge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXMuanNvbigpLnRoZW4oKGRhdGEpPT57XG4gICAgICAgICAgICAgICAgICAgIGlmIChkYXRhLm5vdEZvdW5kKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdEZvdW5kOiBTU0dfREFUQV9OT1RfRk9VTkRcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gbG9hZCBzdGF0aWMgcHJvcHNgKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGxvYWQgc3RhdGljIHByb3BzYCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9wdHMudGV4dCA/IHJlcy50ZXh0KCkgOiByZXMuanNvbigpO1xuICAgIH0pO1xufVxuZnVuY3Rpb24gZmV0Y2hOZXh0RGF0YShkYXRhSHJlZiwgaXNTZXJ2ZXJSZW5kZXIsIHRleHQsIGluZmxpZ2h0Q2FjaGUsIHBlcnNpc3RDYWNoZSkge1xuICAgIGNvbnN0IHsgaHJlZjogY2FjaGVLZXkgIH0gPSBuZXcgVVJMKGRhdGFIcmVmLCB3aW5kb3cubG9jYXRpb24uaHJlZik7XG4gICAgaWYgKGluZmxpZ2h0Q2FjaGVbY2FjaGVLZXldICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIGluZmxpZ2h0Q2FjaGVbY2FjaGVLZXldO1xuICAgIH1cbiAgICByZXR1cm4gaW5mbGlnaHRDYWNoZVtjYWNoZUtleV0gPSBmZXRjaFJldHJ5KGRhdGFIcmVmLCBpc1NlcnZlclJlbmRlciA/IDMgOiAxLCB7XG4gICAgICAgIHRleHRcbiAgICB9KS5jYXRjaCgoZXJyKT0+e1xuICAgICAgICAvLyBXZSBzaG91bGQgb25seSB0cmlnZ2VyIGEgc2VydmVyLXNpZGUgdHJhbnNpdGlvbiBpZiB0aGlzIHdhcyBjYXVzZWRcbiAgICAgICAgLy8gb24gYSBjbGllbnQtc2lkZSB0cmFuc2l0aW9uLiBPdGhlcndpc2UsIHdlJ2QgZ2V0IGludG8gYW4gaW5maW5pdGVcbiAgICAgICAgLy8gbG9vcC5cbiAgICAgICAgaWYgKCFpc1NlcnZlclJlbmRlcikge1xuICAgICAgICAgICAgKDAsIF9yb3V0ZUxvYWRlcikubWFya0Fzc2V0RXJyb3IoZXJyKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBlcnI7XG4gICAgfSkudGhlbigoZGF0YSk9PntcbiAgICAgICAgaWYgKCFwZXJzaXN0Q2FjaGUgfHwgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgZGVsZXRlIGluZmxpZ2h0Q2FjaGVbY2FjaGVLZXldO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH0pLmNhdGNoKChlcnIpPT57XG4gICAgICAgIGRlbGV0ZSBpbmZsaWdodENhY2hlW2NhY2hlS2V5XTtcbiAgICAgICAgdGhyb3cgZXJyO1xuICAgIH0pO1xufVxuY2xhc3MgUm91dGVyIHtcbiAgICBjb25zdHJ1Y3RvcihwYXRobmFtZSwgcXVlcnksIGFzLCB7IGluaXRpYWxQcm9wcyAsIHBhZ2VMb2FkZXIgLCBBcHAgLCB3cmFwQXBwICwgQ29tcG9uZW50ICwgZXJyICwgc3Vic2NyaXB0aW9uICwgaXNGYWxsYmFjayAsIGxvY2FsZSAsIGxvY2FsZXMgLCBkZWZhdWx0TG9jYWxlICwgZG9tYWluTG9jYWxlcyAsIGlzUHJldmlldyAgfSl7XG4gICAgICAgIC8vIFN0YXRpYyBEYXRhIENhY2hlXG4gICAgICAgIHRoaXMuc2RjID0ge1xuICAgICAgICB9O1xuICAgICAgICAvLyBJbi1mbGlnaHQgU2VydmVyIERhdGEgUmVxdWVzdHMsIGZvciBkZWR1cGluZ1xuICAgICAgICB0aGlzLnNkciA9IHtcbiAgICAgICAgfTtcbiAgICAgICAgLy8gSW4tZmxpZ2h0IG1pZGRsZXdhcmUgcHJlZmxpZ2h0IHJlcXVlc3RzXG4gICAgICAgIHRoaXMuc2RlID0ge1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLl9pZHggPSAwO1xuICAgICAgICB0aGlzLm9uUG9wU3RhdGUgPSAoZSk9PntcbiAgICAgICAgICAgIGNvbnN0IHN0YXRlID0gZS5zdGF0ZTtcbiAgICAgICAgICAgIGlmICghc3RhdGUpIHtcbiAgICAgICAgICAgICAgICAvLyBXZSBnZXQgc3RhdGUgYXMgdW5kZWZpbmVkIGZvciB0d28gcmVhc29ucy5cbiAgICAgICAgICAgICAgICAvLyAgMS4gV2l0aCBvbGRlciBzYWZhcmkgKDwgOCkgYW5kIG9sZGVyIGNocm9tZSAoPCAzNClcbiAgICAgICAgICAgICAgICAvLyAgMi4gV2hlbiB0aGUgVVJMIGNoYW5nZWQgd2l0aCAjXG4gICAgICAgICAgICAgICAgLy9cbiAgICAgICAgICAgICAgICAvLyBJbiB0aGUgYm90aCBjYXNlcywgd2UgZG9uJ3QgbmVlZCB0byBwcm9jZWVkIGFuZCBjaGFuZ2UgdGhlIHJvdXRlLlxuICAgICAgICAgICAgICAgIC8vIChhcyBpdCdzIGFscmVhZHkgY2hhbmdlZClcbiAgICAgICAgICAgICAgICAvLyBCdXQgd2UgY2FuIHNpbXBseSByZXBsYWNlIHRoZSBzdGF0ZSB3aXRoIHRoZSBuZXcgY2hhbmdlcy5cbiAgICAgICAgICAgICAgICAvLyBBY3R1YWxseSwgZm9yICgxKSB3ZSBkb24ndCBuZWVkIHRvIG5vdGhpbmcuIEJ1dCBpdCdzIGhhcmQgdG8gZGV0ZWN0IHRoYXQgZXZlbnQuXG4gICAgICAgICAgICAgICAgLy8gU28sIGRvaW5nIHRoZSBmb2xsb3dpbmcgZm9yICgxKSBkb2VzIG5vIGhhcm0uXG4gICAgICAgICAgICAgICAgY29uc3QgeyBwYXRobmFtZSAsIHF1ZXJ5ICB9ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZVN0YXRlKCdyZXBsYWNlU3RhdGUnLCAoMCwgX3V0aWxzKS5mb3JtYXRXaXRoVmFsaWRhdGlvbih7XG4gICAgICAgICAgICAgICAgICAgIHBhdGhuYW1lOiBhZGRCYXNlUGF0aChwYXRobmFtZSksXG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5XG4gICAgICAgICAgICAgICAgfSksICgwLCBfdXRpbHMpLmdldFVSTCgpKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXN0YXRlLl9fTikge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBmb3JjZWRTY3JvbGw7XG4gICAgICAgICAgICBjb25zdCB7IHVybCAsIGFzICwgb3B0aW9ucyAsIGlkeCAgfSA9IHN0YXRlO1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9TQ1JPTExfUkVTVE9SQVRJT04pIHtcbiAgICAgICAgICAgICAgICBpZiAobWFudWFsU2Nyb2xsUmVzdG9yYXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2lkeCAhPT0gaWR4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTbmFwc2hvdCBjdXJyZW50IHNjcm9sbCBwb3NpdGlvbjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnX19uZXh0X3Njcm9sbF8nICsgdGhpcy5faWR4LCBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHg6IHNlbGYucGFnZVhPZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHk6IHNlbGYucGFnZVlPZmZzZXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoICB7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBSZXN0b3JlIG9sZCBzY3JvbGwgcG9zaXRpb246XG4gICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHYgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdfX25leHRfc2Nyb2xsXycgKyBpZHgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmNlZFNjcm9sbCA9IEpTT04ucGFyc2Uodik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yY2VkU2Nyb2xsID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4OiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5OiAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX2lkeCA9IGlkeDtcbiAgICAgICAgICAgIGNvbnN0IHsgcGF0aG5hbWUgIH0gPSAoMCwgX3BhcnNlUmVsYXRpdmVVcmwpLnBhcnNlUmVsYXRpdmVVcmwodXJsKTtcbiAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBkb24ndCByZS1yZW5kZXIgb24gaW5pdGlhbCBsb2FkLFxuICAgICAgICAgICAgLy8gY2FuIGJlIGNhdXNlZCBieSBuYXZpZ2F0aW5nIGJhY2sgZnJvbSBhbiBleHRlcm5hbCBzaXRlXG4gICAgICAgICAgICBpZiAodGhpcy5pc1NzciAmJiBhcyA9PT0gdGhpcy5hc1BhdGggJiYgcGF0aG5hbWUgPT09IHRoaXMucGF0aG5hbWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBJZiB0aGUgZG93bnN0cmVhbSBhcHBsaWNhdGlvbiByZXR1cm5zIGZhbHN5LCByZXR1cm4uXG4gICAgICAgICAgICAvLyBUaGV5IHdpbGwgdGhlbiBiZSByZXNwb25zaWJsZSBmb3IgaGFuZGxpbmcgdGhlIGV2ZW50LlxuICAgICAgICAgICAgaWYgKHRoaXMuX2JwcyAmJiAhdGhpcy5fYnBzKHN0YXRlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY2hhbmdlKCdyZXBsYWNlU3RhdGUnLCB1cmwsIGFzLCBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgICAgIH0sIG9wdGlvbnMsIHtcbiAgICAgICAgICAgICAgICBzaGFsbG93OiBvcHRpb25zLnNoYWxsb3cgJiYgdGhpcy5fc2hhbGxvdyxcbiAgICAgICAgICAgICAgICBsb2NhbGU6IG9wdGlvbnMubG9jYWxlIHx8IHRoaXMuZGVmYXVsdExvY2FsZVxuICAgICAgICAgICAgfSksIGZvcmNlZFNjcm9sbCk7XG4gICAgICAgIH07XG4gICAgICAgIC8vIHJlcHJlc2VudHMgdGhlIGN1cnJlbnQgY29tcG9uZW50IGtleVxuICAgICAgICB0aGlzLnJvdXRlID0gKDAsIF9ub3JtYWxpemVUcmFpbGluZ1NsYXNoKS5yZW1vdmVQYXRoVHJhaWxpbmdTbGFzaChwYXRobmFtZSk7XG4gICAgICAgIC8vIHNldCB1cCB0aGUgY29tcG9uZW50IGNhY2hlIChieSByb3V0ZSBrZXlzKVxuICAgICAgICB0aGlzLmNvbXBvbmVudHMgPSB7XG4gICAgICAgIH07XG4gICAgICAgIC8vIFdlIHNob3VsZCBub3Qga2VlcCB0aGUgY2FjaGUsIGlmIHRoZXJlJ3MgYW4gZXJyb3JcbiAgICAgICAgLy8gT3RoZXJ3aXNlLCB0aGlzIGNhdXNlIGlzc3VlcyB3aGVuIHdoZW4gZ29pbmcgYmFjayBhbmRcbiAgICAgICAgLy8gY29tZSBhZ2FpbiB0byB0aGUgZXJyb3JlZCBwYWdlLlxuICAgICAgICBpZiAocGF0aG5hbWUgIT09ICcvX2Vycm9yJykge1xuICAgICAgICAgICAgdmFyIHJlZjtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50c1t0aGlzLnJvdXRlXSA9IHtcbiAgICAgICAgICAgICAgICBDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgaW5pdGlhbDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBwcm9wczogaW5pdGlhbFByb3BzLFxuICAgICAgICAgICAgICAgIGVycixcbiAgICAgICAgICAgICAgICBfX05fU1NHOiBpbml0aWFsUHJvcHMgJiYgaW5pdGlhbFByb3BzLl9fTl9TU0csXG4gICAgICAgICAgICAgICAgX19OX1NTUDogaW5pdGlhbFByb3BzICYmIGluaXRpYWxQcm9wcy5fX05fU1NQLFxuICAgICAgICAgICAgICAgIF9fTl9SU0M6ICEhKChyZWYgPSBDb21wb25lbnQpID09PSBudWxsIHx8IHJlZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVmLl9fbmV4dF9yc2NfXylcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb21wb25lbnRzWycvX2FwcCddID0ge1xuICAgICAgICAgICAgQ29tcG9uZW50OiBBcHAsXG4gICAgICAgICAgICBzdHlsZVNoZWV0czogW11cbiAgICAgICAgfTtcbiAgICAgICAgLy8gQmFja3dhcmRzIGNvbXBhdCBmb3IgUm91dGVyLnJvdXRlci5ldmVudHNcbiAgICAgICAgLy8gVE9ETzogU2hvdWxkIGJlIHJlbW92ZSB0aGUgZm9sbG93aW5nIG1ham9yIHZlcnNpb24gYXMgaXQgd2FzIG5ldmVyIGRvY3VtZW50ZWRcbiAgICAgICAgdGhpcy5ldmVudHMgPSBSb3V0ZXIuZXZlbnRzO1xuICAgICAgICB0aGlzLnBhZ2VMb2FkZXIgPSBwYWdlTG9hZGVyO1xuICAgICAgICB0aGlzLnBhdGhuYW1lID0gcGF0aG5hbWU7XG4gICAgICAgIHRoaXMucXVlcnkgPSBxdWVyeTtcbiAgICAgICAgLy8gaWYgYXV0byBwcmVyZW5kZXJlZCBhbmQgZHluYW1pYyByb3V0ZSB3YWl0IHRvIHVwZGF0ZSBhc1BhdGhcbiAgICAgICAgLy8gdW50aWwgYWZ0ZXIgbW91bnQgdG8gcHJldmVudCBoeWRyYXRpb24gbWlzbWF0Y2hcbiAgICAgICAgY29uc3QgYXV0b0V4cG9ydER5bmFtaWMgPSAoMCwgX2lzRHluYW1pYykuaXNEeW5hbWljUm91dGUocGF0aG5hbWUpICYmIHNlbGYuX19ORVhUX0RBVEFfXy5hdXRvRXhwb3J0O1xuICAgICAgICB0aGlzLmFzUGF0aCA9IGF1dG9FeHBvcnREeW5hbWljID8gcGF0aG5hbWUgOiBhcztcbiAgICAgICAgdGhpcy5iYXNlUGF0aCA9IGJhc2VQYXRoO1xuICAgICAgICB0aGlzLnN1YiA9IHN1YnNjcmlwdGlvbjtcbiAgICAgICAgdGhpcy5jbGMgPSBudWxsO1xuICAgICAgICB0aGlzLl93cmFwQXBwID0gd3JhcEFwcDtcbiAgICAgICAgLy8gbWFrZSBzdXJlIHRvIGlnbm9yZSBleHRyYSBwb3BTdGF0ZSBpbiBzYWZhcmkgb24gbmF2aWdhdGluZ1xuICAgICAgICAvLyBiYWNrIGZyb20gZXh0ZXJuYWwgc2l0ZVxuICAgICAgICB0aGlzLmlzU3NyID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5pc0ZhbGxiYWNrID0gaXNGYWxsYmFjaztcbiAgICAgICAgdGhpcy5pc1JlYWR5ID0gISEoc2VsZi5fX05FWFRfREFUQV9fLmdzc3AgfHwgc2VsZi5fX05FWFRfREFUQV9fLmdpcCB8fCBzZWxmLl9fTkVYVF9EQVRBX18uYXBwR2lwICYmICFzZWxmLl9fTkVYVF9EQVRBX18uZ3NwIHx8ICFhdXRvRXhwb3J0RHluYW1pYyAmJiAhc2VsZi5sb2NhdGlvbi5zZWFyY2ggJiYgIXByb2Nlc3MuZW52Ll9fTkVYVF9IQVNfUkVXUklURVMpO1xuICAgICAgICB0aGlzLmlzUHJldmlldyA9ICEhaXNQcmV2aWV3O1xuICAgICAgICB0aGlzLmlzTG9jYWxlRG9tYWluID0gZmFsc2U7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgICAgICAgICB0aGlzLmxvY2FsZSA9IGxvY2FsZTtcbiAgICAgICAgICAgIHRoaXMubG9jYWxlcyA9IGxvY2FsZXM7XG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRMb2NhbGUgPSBkZWZhdWx0TG9jYWxlO1xuICAgICAgICAgICAgdGhpcy5kb21haW5Mb2NhbGVzID0gZG9tYWluTG9jYWxlcztcbiAgICAgICAgICAgIHRoaXMuaXNMb2NhbGVEb21haW4gPSAhIWRldGVjdERvbWFpbkxvY2FsZShkb21haW5Mb2NhbGVzLCBzZWxmLmxvY2F0aW9uLmhvc3RuYW1lKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSBcImFzXCIgZG9lc24ndCBzdGFydCB3aXRoIGRvdWJsZSBzbGFzaGVzIG9yIGVsc2UgaXQgY2FuXG4gICAgICAgICAgICAvLyB0aHJvdyBhbiBlcnJvciBhcyBpdCdzIGNvbnNpZGVyZWQgaW52YWxpZFxuICAgICAgICAgICAgaWYgKGFzLnN1YnN0cigwLCAyKSAhPT0gJy8vJykge1xuICAgICAgICAgICAgICAgIC8vIGluIG9yZGVyIGZvciBgZS5zdGF0ZWAgdG8gd29yayBvbiB0aGUgYG9ucG9wc3RhdGVgIGV2ZW50XG4gICAgICAgICAgICAgICAgLy8gd2UgaGF2ZSB0byByZWdpc3RlciB0aGUgaW5pdGlhbCByb3V0ZSB1cG9uIGluaXRpYWxpemF0aW9uXG4gICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAgICAgbG9jYWxlXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBvcHRpb25zLl9zaG91bGRSZXNvbHZlSHJlZiA9IGFzICE9PSBwYXRobmFtZTtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZVN0YXRlKCdyZXBsYWNlU3RhdGUnLCAoMCwgX3V0aWxzKS5mb3JtYXRXaXRoVmFsaWRhdGlvbih7XG4gICAgICAgICAgICAgICAgICAgIHBhdGhuYW1lOiBhZGRCYXNlUGF0aChwYXRobmFtZSksXG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5XG4gICAgICAgICAgICAgICAgfSksICgwLCBfdXRpbHMpLmdldFVSTCgpLCBvcHRpb25zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwb3BzdGF0ZScsIHRoaXMub25Qb3BTdGF0ZSk7XG4gICAgICAgICAgICAvLyBlbmFibGUgY3VzdG9tIHNjcm9sbCByZXN0b3JhdGlvbiBoYW5kbGluZyB3aGVuIGF2YWlsYWJsZVxuICAgICAgICAgICAgLy8gb3RoZXJ3aXNlIGZhbGxiYWNrIHRvIGJyb3dzZXIncyBkZWZhdWx0IGhhbmRsaW5nXG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX1NDUk9MTF9SRVNUT1JBVElPTikge1xuICAgICAgICAgICAgICAgIGlmIChtYW51YWxTY3JvbGxSZXN0b3JhdGlvbikge1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuaGlzdG9yeS5zY3JvbGxSZXN0b3JhdGlvbiA9ICdtYW51YWwnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZWxvYWQoKSB7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgICB9XG4gICAgLyoqXG4gICAqIEdvIGJhY2sgaW4gaGlzdG9yeVxuICAgKi8gYmFjaygpIHtcbiAgICAgICAgd2luZG93Lmhpc3RvcnkuYmFjaygpO1xuICAgIH1cbiAgICAvKipcbiAgICogUGVyZm9ybXMgYSBgcHVzaFN0YXRlYCB3aXRoIGFyZ3VtZW50c1xuICAgKiBAcGFyYW0gdXJsIG9mIHRoZSByb3V0ZVxuICAgKiBAcGFyYW0gYXMgbWFza3MgYHVybGAgZm9yIHRoZSBicm93c2VyXG4gICAqIEBwYXJhbSBvcHRpb25zIG9iamVjdCB5b3UgY2FuIGRlZmluZSBgc2hhbGxvd2AgYW5kIG90aGVyIG9wdGlvbnNcbiAgICovIHB1c2godXJsLCBhcywgb3B0aW9ucyA9IHtcbiAgICB9KSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfU0NST0xMX1JFU1RPUkFUSU9OKSB7XG4gICAgICAgICAgICAvLyBUT0RPOiByZW1vdmUgaW4gdGhlIGZ1dHVyZSB3aGVuIHdlIHVwZGF0ZSBoaXN0b3J5IGJlZm9yZSByb3V0ZSBjaGFuZ2VcbiAgICAgICAgICAgIC8vIGlzIGNvbXBsZXRlLCBhcyB0aGUgcG9wc3RhdGUgZXZlbnQgc2hvdWxkIGhhbmRsZSB0aGlzIGNhcHR1cmUuXG4gICAgICAgICAgICBpZiAobWFudWFsU2Nyb2xsUmVzdG9yYXRpb24pIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAvLyBTbmFwc2hvdCBzY3JvbGwgcG9zaXRpb24gcmlnaHQgYmVmb3JlIG5hdmlnYXRpbmcgdG8gYSBuZXcgcGFnZTpcbiAgICAgICAgICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnX19uZXh0X3Njcm9sbF8nICsgdGhpcy5faWR4LCBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICB4OiBzZWxmLnBhZ2VYT2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgICAgICAgeTogc2VsZi5wYWdlWU9mZnNldFxuICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAge1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAoeyB1cmwgLCBhcyAgfSA9IHByZXBhcmVVcmxBcyh0aGlzLCB1cmwsIGFzKSk7XG4gICAgICAgIHJldHVybiB0aGlzLmNoYW5nZSgncHVzaFN0YXRlJywgdXJsLCBhcywgb3B0aW9ucyk7XG4gICAgfVxuICAgIC8qKlxuICAgKiBQZXJmb3JtcyBhIGByZXBsYWNlU3RhdGVgIHdpdGggYXJndW1lbnRzXG4gICAqIEBwYXJhbSB1cmwgb2YgdGhlIHJvdXRlXG4gICAqIEBwYXJhbSBhcyBtYXNrcyBgdXJsYCBmb3IgdGhlIGJyb3dzZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgb2JqZWN0IHlvdSBjYW4gZGVmaW5lIGBzaGFsbG93YCBhbmQgb3RoZXIgb3B0aW9uc1xuICAgKi8gcmVwbGFjZSh1cmwsIGFzLCBvcHRpb25zID0ge1xuICAgIH0pIHtcbiAgICAgICAgKHsgdXJsICwgYXMgIH0gPSBwcmVwYXJlVXJsQXModGhpcywgdXJsLCBhcykpO1xuICAgICAgICByZXR1cm4gdGhpcy5jaGFuZ2UoJ3JlcGxhY2VTdGF0ZScsIHVybCwgYXMsIG9wdGlvbnMpO1xuICAgIH1cbiAgICBhc3luYyBjaGFuZ2UobWV0aG9kLCB1cmwsIGFzLCBvcHRpb25zLCBmb3JjZWRTY3JvbGwpIHtcbiAgICAgICAgaWYgKCFpc0xvY2FsVVJMKHVybCkpIHtcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNob3VsZFJlc29sdmVIcmVmID0gb3B0aW9ucy5faCB8fCBvcHRpb25zLl9zaG91bGRSZXNvbHZlSHJlZiB8fCBwYXRoTm9RdWVyeUhhc2godXJsKSA9PT0gcGF0aE5vUXVlcnlIYXNoKGFzKTtcbiAgICAgICAgLy8gZm9yIHN0YXRpYyBwYWdlcyB3aXRoIHF1ZXJ5IHBhcmFtcyBpbiB0aGUgVVJMIHdlIGRlbGF5XG4gICAgICAgIC8vIG1hcmtpbmcgdGhlIHJvdXRlciByZWFkeSB1bnRpbCBhZnRlciB0aGUgcXVlcnkgaXMgdXBkYXRlZFxuICAgICAgICBpZiAob3B0aW9ucy5faCkge1xuICAgICAgICAgICAgdGhpcy5pc1JlYWR5ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwcmV2TG9jYWxlID0gdGhpcy5sb2NhbGU7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgICAgICAgICB0aGlzLmxvY2FsZSA9IG9wdGlvbnMubG9jYWxlID09PSBmYWxzZSA/IHRoaXMuZGVmYXVsdExvY2FsZSA6IG9wdGlvbnMubG9jYWxlIHx8IHRoaXMubG9jYWxlO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLmxvY2FsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICBvcHRpb25zLmxvY2FsZSA9IHRoaXMubG9jYWxlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgcGFyc2VkQXMgPSAoMCwgX3BhcnNlUmVsYXRpdmVVcmwpLnBhcnNlUmVsYXRpdmVVcmwoaGFzQmFzZVBhdGgoYXMpID8gZGVsQmFzZVBhdGgoYXMpIDogYXMpO1xuICAgICAgICAgICAgY29uc3QgbG9jYWxlUGF0aFJlc3VsdCA9ICgwLCBfbm9ybWFsaXplTG9jYWxlUGF0aCkubm9ybWFsaXplTG9jYWxlUGF0aChwYXJzZWRBcy5wYXRobmFtZSwgdGhpcy5sb2NhbGVzKTtcbiAgICAgICAgICAgIGlmIChsb2NhbGVQYXRoUmVzdWx0LmRldGVjdGVkTG9jYWxlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2NhbGUgPSBsb2NhbGVQYXRoUmVzdWx0LmRldGVjdGVkTG9jYWxlO1xuICAgICAgICAgICAgICAgIHBhcnNlZEFzLnBhdGhuYW1lID0gYWRkQmFzZVBhdGgocGFyc2VkQXMucGF0aG5hbWUpO1xuICAgICAgICAgICAgICAgIGFzID0gKDAsIF91dGlscykuZm9ybWF0V2l0aFZhbGlkYXRpb24ocGFyc2VkQXMpO1xuICAgICAgICAgICAgICAgIHVybCA9IGFkZEJhc2VQYXRoKCgwLCBfbm9ybWFsaXplTG9jYWxlUGF0aCkubm9ybWFsaXplTG9jYWxlUGF0aChoYXNCYXNlUGF0aCh1cmwpID8gZGVsQmFzZVBhdGgodXJsKSA6IHVybCwgdGhpcy5sb2NhbGVzKS5wYXRobmFtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgZGlkTmF2aWdhdGUgPSBmYWxzZTtcbiAgICAgICAgICAgIC8vIHdlIG5lZWQgdG8gd3JhcCB0aGlzIGluIHRoZSBlbnYgY2hlY2sgYWdhaW4gc2luY2UgcmVnZW5lcmF0b3IgcnVudGltZVxuICAgICAgICAgICAgLy8gbW92ZXMgdGhpcyBvbiBpdHMgb3duIGR1ZSB0byB0aGUgcmV0dXJuXG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0kxOE5fU1VQUE9SVCkge1xuICAgICAgICAgICAgICAgIHZhciByZWY7XG4gICAgICAgICAgICAgICAgLy8gaWYgdGhlIGxvY2FsZSBpc24ndCBjb25maWd1cmVkIGhhcmQgbmF2aWdhdGUgdG8gc2hvdyA0MDQgcGFnZVxuICAgICAgICAgICAgICAgIGlmICghKChyZWYgPSB0aGlzLmxvY2FsZXMpID09PSBudWxsIHx8IHJlZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVmLmluY2x1ZGVzKHRoaXMubG9jYWxlKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VkQXMucGF0aG5hbWUgPSBhZGRMb2NhbGUocGFyc2VkQXMucGF0aG5hbWUsIHRoaXMubG9jYWxlKTtcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSAoMCwgX3V0aWxzKS5mb3JtYXRXaXRoVmFsaWRhdGlvbihwYXJzZWRBcyk7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgd2FzIHByZXZpb3VzbHkgYSByZXR1cm4gYnV0IHdhcyByZW1vdmVkIGluIGZhdm9yXG4gICAgICAgICAgICAgICAgICAgIC8vIG9mIGJldHRlciBkZWFkIGNvZGUgZWxpbWluYXRpb24gd2l0aCByZWdlbmVyYXRvciBydW50aW1lXG4gICAgICAgICAgICAgICAgICAgIGRpZE5hdmlnYXRlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBkZXRlY3RlZERvbWFpbiA9IGRldGVjdERvbWFpbkxvY2FsZSh0aGlzLmRvbWFpbkxvY2FsZXMsIHVuZGVmaW5lZCwgdGhpcy5sb2NhbGUpO1xuICAgICAgICAgICAgLy8gd2UgbmVlZCB0byB3cmFwIHRoaXMgaW4gdGhlIGVudiBjaGVjayBhZ2FpbiBzaW5jZSByZWdlbmVyYXRvciBydW50aW1lXG4gICAgICAgICAgICAvLyBtb3ZlcyB0aGlzIG9uIGl0cyBvd24gZHVlIHRvIHRoZSByZXR1cm5cbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgICAgICAgICAgICAgLy8gaWYgd2UgYXJlIG5hdmlnYXRpbmcgdG8gYSBkb21haW4gbG9jYWxlIGVuc3VyZSB3ZSByZWRpcmVjdCB0byB0aGVcbiAgICAgICAgICAgICAgICAvLyBjb3JyZWN0IGRvbWFpblxuICAgICAgICAgICAgICAgIGlmICghZGlkTmF2aWdhdGUgJiYgZGV0ZWN0ZWREb21haW4gJiYgdGhpcy5pc0xvY2FsZURvbWFpbiAmJiBzZWxmLmxvY2F0aW9uLmhvc3RuYW1lICE9PSBkZXRlY3RlZERvbWFpbi5kb21haW4pIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYXNOb0Jhc2VQYXRoID0gZGVsQmFzZVBhdGgoYXMpO1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGBodHRwJHtkZXRlY3RlZERvbWFpbi5odHRwID8gJycgOiAncyd9Oi8vJHtkZXRlY3RlZERvbWFpbi5kb21haW59JHthZGRCYXNlUGF0aChgJHt0aGlzLmxvY2FsZSA9PT0gZGV0ZWN0ZWREb21haW4uZGVmYXVsdExvY2FsZSA/ICcnIDogYC8ke3RoaXMubG9jYWxlfWB9JHthc05vQmFzZVBhdGggPT09ICcvJyA/ICcnIDogYXNOb0Jhc2VQYXRofWAgfHwgJy8nKX1gO1xuICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIHdhcyBwcmV2aW91c2x5IGEgcmV0dXJuIGJ1dCB3YXMgcmVtb3ZlZCBpbiBmYXZvclxuICAgICAgICAgICAgICAgICAgICAvLyBvZiBiZXR0ZXIgZGVhZCBjb2RlIGVsaW1pbmF0aW9uIHdpdGggcmVnZW5lcmF0b3IgcnVudGltZVxuICAgICAgICAgICAgICAgICAgICBkaWROYXZpZ2F0ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRpZE5hdmlnYXRlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKCgpPT57XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFvcHRpb25zLl9oKSB7XG4gICAgICAgICAgICB0aGlzLmlzU3NyID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgLy8gbWFya2luZyByb3V0ZSBjaGFuZ2VzIGFzIGEgbmF2aWdhdGlvbiBzdGFydCBlbnRyeVxuICAgICAgICBpZiAoX3V0aWxzLlNUKSB7XG4gICAgICAgICAgICBwZXJmb3JtYW5jZS5tYXJrKCdyb3V0ZUNoYW5nZScpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgc2hhbGxvdyA9ZmFsc2UgIH0gPSBvcHRpb25zO1xuICAgICAgICBjb25zdCByb3V0ZVByb3BzID0ge1xuICAgICAgICAgICAgc2hhbGxvd1xuICAgICAgICB9O1xuICAgICAgICBpZiAodGhpcy5faW5GbGlnaHRSb3V0ZSkge1xuICAgICAgICAgICAgdGhpcy5hYm9ydENvbXBvbmVudExvYWQodGhpcy5faW5GbGlnaHRSb3V0ZSwgcm91dGVQcm9wcyk7XG4gICAgICAgIH1cbiAgICAgICAgYXMgPSBhZGRCYXNlUGF0aChhZGRMb2NhbGUoaGFzQmFzZVBhdGgoYXMpID8gZGVsQmFzZVBhdGgoYXMpIDogYXMsIG9wdGlvbnMubG9jYWxlLCB0aGlzLmRlZmF1bHRMb2NhbGUpKTtcbiAgICAgICAgY29uc3QgY2xlYW5lZEFzID0gZGVsTG9jYWxlKGhhc0Jhc2VQYXRoKGFzKSA/IGRlbEJhc2VQYXRoKGFzKSA6IGFzLCB0aGlzLmxvY2FsZSk7XG4gICAgICAgIHRoaXMuX2luRmxpZ2h0Um91dGUgPSBhcztcbiAgICAgICAgbGV0IGxvY2FsZUNoYW5nZSA9IHByZXZMb2NhbGUgIT09IHRoaXMubG9jYWxlO1xuICAgICAgICAvLyBJZiB0aGUgdXJsIGNoYW5nZSBpcyBvbmx5IHJlbGF0ZWQgdG8gYSBoYXNoIGNoYW5nZVxuICAgICAgICAvLyBXZSBzaG91bGQgbm90IHByb2NlZWQuIFdlIHNob3VsZCBvbmx5IGNoYW5nZSB0aGUgc3RhdGUuXG4gICAgICAgIC8vIFdBUk5JTkc6IGBfaGAgaXMgYW4gaW50ZXJuYWwgb3B0aW9uIGZvciBoYW5kaW5nIE5leHQuanMgY2xpZW50LXNpZGVcbiAgICAgICAgLy8gaHlkcmF0aW9uLiBZb3VyIGFwcCBzaG91bGQgX25ldmVyXyB1c2UgdGhpcyBwcm9wZXJ0eS4gSXQgbWF5IGNoYW5nZSBhdFxuICAgICAgICAvLyBhbnkgdGltZSB3aXRob3V0IG5vdGljZS5cbiAgICAgICAgaWYgKCFvcHRpb25zLl9oICYmIHRoaXMub25seUFIYXNoQ2hhbmdlKGNsZWFuZWRBcykgJiYgIWxvY2FsZUNoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5hc1BhdGggPSBjbGVhbmVkQXM7XG4gICAgICAgICAgICBSb3V0ZXIuZXZlbnRzLmVtaXQoJ2hhc2hDaGFuZ2VTdGFydCcsIGFzLCByb3V0ZVByb3BzKTtcbiAgICAgICAgICAgIC8vIFRPRE86IGRvIHdlIG5lZWQgdGhlIHJlc29sdmVkIGhyZWYgd2hlbiBvbmx5IGEgaGFzaCBjaGFuZ2U/XG4gICAgICAgICAgICB0aGlzLmNoYW5nZVN0YXRlKG1ldGhvZCwgdXJsLCBhcywgb3B0aW9ucyk7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbFRvSGFzaChjbGVhbmVkQXMpO1xuICAgICAgICAgICAgdGhpcy5ub3RpZnkodGhpcy5jb21wb25lbnRzW3RoaXMucm91dGVdLCBudWxsKTtcbiAgICAgICAgICAgIFJvdXRlci5ldmVudHMuZW1pdCgnaGFzaENoYW5nZUNvbXBsZXRlJywgYXMsIHJvdXRlUHJvcHMpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHBhcnNlZCA9ICgwLCBfcGFyc2VSZWxhdGl2ZVVybCkucGFyc2VSZWxhdGl2ZVVybCh1cmwpO1xuICAgICAgICBsZXQgeyBwYXRobmFtZSAsIHF1ZXJ5ICB9ID0gcGFyc2VkO1xuICAgICAgICAvLyBUaGUgYnVpbGQgbWFuaWZlc3QgbmVlZHMgdG8gYmUgbG9hZGVkIGJlZm9yZSBhdXRvLXN0YXRpYyBkeW5hbWljIHBhZ2VzXG4gICAgICAgIC8vIGdldCB0aGVpciBxdWVyeSBwYXJhbWV0ZXJzIHRvIGFsbG93IGVuc3VyaW5nIHRoZXkgY2FuIGJlIHBhcnNlZCBwcm9wZXJseVxuICAgICAgICAvLyB3aGVuIHJld3JpdHRlbiB0b1xuICAgICAgICBsZXQgcGFnZXMsIHJld3JpdGVzO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgW3BhZ2VzLCB7IF9fcmV3cml0ZXM6IHJld3JpdGVzICB9XSA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgICAgICAgICAgICB0aGlzLnBhZ2VMb2FkZXIuZ2V0UGFnZUxpc3QoKSxcbiAgICAgICAgICAgICAgICAoMCwgX3JvdXRlTG9hZGVyKS5nZXRDbGllbnRCdWlsZE1hbmlmZXN0KCksXG4gICAgICAgICAgICAgICAgdGhpcy5wYWdlTG9hZGVyLmdldE1pZGRsZXdhcmVMaXN0KCksIFxuICAgICAgICAgICAgXSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgLy8gSWYgd2UgZmFpbCB0byByZXNvbHZlIHRoZSBwYWdlIGxpc3Qgb3IgY2xpZW50LWJ1aWxkIG1hbmlmZXN0LCB3ZSBtdXN0XG4gICAgICAgICAgICAvLyBkbyBhIHNlcnZlci1zaWRlIHRyYW5zaXRpb246XG4gICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGFzO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIC8vIElmIGFza2VkIHRvIGNoYW5nZSB0aGUgY3VycmVudCBVUkwgd2Ugc2hvdWxkIHJlbG9hZCB0aGUgY3VycmVudCBwYWdlXG4gICAgICAgIC8vIChub3QgbG9jYXRpb24ucmVsb2FkKCkgYnV0IHJlbG9hZCBnZXRJbml0aWFsUHJvcHMgYW5kIG90aGVyIE5leHQuanMgc3R1ZmZzKVxuICAgICAgICAvLyBXZSBhbHNvIG5lZWQgdG8gc2V0IHRoZSBtZXRob2QgPSByZXBsYWNlU3RhdGUgYWx3YXlzXG4gICAgICAgIC8vIGFzIHRoaXMgc2hvdWxkIG5vdCBnbyBpbnRvIHRoZSBoaXN0b3J5IChUaGF0J3MgaG93IGJyb3dzZXJzIHdvcmspXG4gICAgICAgIC8vIFdlIHNob3VsZCBjb21wYXJlIHRoZSBuZXcgYXNQYXRoIHRvIHRoZSBjdXJyZW50IGFzUGF0aCwgbm90IHRoZSB1cmxcbiAgICAgICAgaWYgKCF0aGlzLnVybElzTmV3KGNsZWFuZWRBcykgJiYgIWxvY2FsZUNoYW5nZSkge1xuICAgICAgICAgICAgbWV0aG9kID0gJ3JlcGxhY2VTdGF0ZSc7XG4gICAgICAgIH1cbiAgICAgICAgLy8gd2UgbmVlZCB0byByZXNvbHZlIHRoZSBhcyB2YWx1ZSB1c2luZyByZXdyaXRlcyBmb3IgZHluYW1pYyBTU0dcbiAgICAgICAgLy8gcGFnZXMgdG8gYWxsb3cgYnVpbGRpbmcgdGhlIGRhdGEgVVJMIGNvcnJlY3RseVxuICAgICAgICBsZXQgcmVzb2x2ZWRBcyA9IGFzO1xuICAgICAgICAvLyB1cmwgYW5kIGFzIHNob3VsZCBhbHdheXMgYmUgcHJlZml4ZWQgd2l0aCBiYXNlUGF0aCBieSB0aGlzXG4gICAgICAgIC8vIHBvaW50IGJ5IGVpdGhlciBuZXh0L2xpbmsgb3Igcm91dGVyLnB1c2gvcmVwbGFjZSBzbyBzdHJpcCB0aGVcbiAgICAgICAgLy8gYmFzZVBhdGggZnJvbSB0aGUgcGF0aG5hbWUgdG8gbWF0Y2ggdGhlIHBhZ2VzIGRpciAxLXRvLTFcbiAgICAgICAgcGF0aG5hbWUgPSBwYXRobmFtZSA/ICgwLCBfbm9ybWFsaXplVHJhaWxpbmdTbGFzaCkucmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2goZGVsQmFzZVBhdGgocGF0aG5hbWUpKSA6IHBhdGhuYW1lO1xuICAgICAgICBpZiAoc2hvdWxkUmVzb2x2ZUhyZWYgJiYgcGF0aG5hbWUgIT09ICcvX2Vycm9yJykge1xuICAgICAgICAgICAgb3B0aW9ucy5fc2hvdWxkUmVzb2x2ZUhyZWYgPSB0cnVlO1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9IQVNfUkVXUklURVMgJiYgYXMuc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmV3cml0ZXNSZXN1bHQgPSAoMCwgX3Jlc29sdmVSZXdyaXRlcykuZGVmYXVsdChhZGRCYXNlUGF0aChhZGRMb2NhbGUoY2xlYW5lZEFzLCB0aGlzLmxvY2FsZSkpLCBwYWdlcywgcmV3cml0ZXMsIHF1ZXJ5LCAocCk9PnJlc29sdmVEeW5hbWljUm91dGUocCwgcGFnZXMpXG4gICAgICAgICAgICAgICAgLCB0aGlzLmxvY2FsZXMpO1xuICAgICAgICAgICAgICAgIHJlc29sdmVkQXMgPSByZXdyaXRlc1Jlc3VsdC5hc1BhdGg7XG4gICAgICAgICAgICAgICAgaWYgKHJld3JpdGVzUmVzdWx0Lm1hdGNoZWRQYWdlICYmIHJld3JpdGVzUmVzdWx0LnJlc29sdmVkSHJlZikge1xuICAgICAgICAgICAgICAgICAgICAvLyBpZiB0aGlzIGRpcmVjdGx5IG1hdGNoZXMgYSBwYWdlIHdlIG5lZWQgdG8gdXBkYXRlIHRoZSBocmVmIHRvXG4gICAgICAgICAgICAgICAgICAgIC8vIGFsbG93IHRoZSBjb3JyZWN0IHBhZ2UgY2h1bmsgdG8gYmUgbG9hZGVkXG4gICAgICAgICAgICAgICAgICAgIHBhdGhuYW1lID0gcmV3cml0ZXNSZXN1bHQucmVzb2x2ZWRIcmVmO1xuICAgICAgICAgICAgICAgICAgICBwYXJzZWQucGF0aG5hbWUgPSBhZGRCYXNlUGF0aChwYXRobmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIHVybCA9ICgwLCBfdXRpbHMpLmZvcm1hdFdpdGhWYWxpZGF0aW9uKHBhcnNlZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwYXJzZWQucGF0aG5hbWUgPSByZXNvbHZlRHluYW1pY1JvdXRlKHBhdGhuYW1lLCBwYWdlcyk7XG4gICAgICAgICAgICAgICAgaWYgKHBhcnNlZC5wYXRobmFtZSAhPT0gcGF0aG5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWUgPSBwYXJzZWQucGF0aG5hbWU7XG4gICAgICAgICAgICAgICAgICAgIHBhcnNlZC5wYXRobmFtZSA9IGFkZEJhc2VQYXRoKHBhdGhuYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdXJsID0gKDAsIF91dGlscykuZm9ybWF0V2l0aFZhbGlkYXRpb24ocGFyc2VkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc0xvY2FsVVJMKGFzKSkge1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgaHJlZjogXCIke3VybH1cIiBhbmQgYXM6IFwiJHthc31cIiwgcmVjZWl2ZWQgcmVsYXRpdmUgaHJlZiBhbmQgZXh0ZXJuYWwgYXNgICsgYFxcblNlZSBtb3JlIGluZm86IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2ludmFsaWQtcmVsYXRpdmUtdXJsLWV4dGVybmFsLWFzYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGFzO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJlc29sdmVkQXMgPSBkZWxMb2NhbGUoZGVsQmFzZVBhdGgocmVzb2x2ZWRBcyksIHRoaXMubG9jYWxlKTtcbiAgICAgICAgY29uc3QgZWZmZWN0ID0gYXdhaXQgdGhpcy5fcHJlZmxpZ2h0UmVxdWVzdCh7XG4gICAgICAgICAgICBhcyxcbiAgICAgICAgICAgIGNhY2hlOiBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nLFxuICAgICAgICAgICAgcGFnZXMsXG4gICAgICAgICAgICBwYXRobmFtZSxcbiAgICAgICAgICAgIHF1ZXJ5XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZWZmZWN0LnR5cGUgPT09ICdyZXdyaXRlJykge1xuICAgICAgICAgICAgcXVlcnkgPSB7XG4gICAgICAgICAgICAgICAgLi4ucXVlcnksXG4gICAgICAgICAgICAgICAgLi4uZWZmZWN0LnBhcnNlZEFzLnF1ZXJ5XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmVzb2x2ZWRBcyA9IGVmZmVjdC5hc1BhdGg7XG4gICAgICAgICAgICBwYXRobmFtZSA9IGVmZmVjdC5yZXNvbHZlZEhyZWY7XG4gICAgICAgICAgICBwYXJzZWQucGF0aG5hbWUgPSBlZmZlY3QucmVzb2x2ZWRIcmVmO1xuICAgICAgICAgICAgdXJsID0gKDAsIF91dGlscykuZm9ybWF0V2l0aFZhbGlkYXRpb24ocGFyc2VkKTtcbiAgICAgICAgfSBlbHNlIGlmIChlZmZlY3QudHlwZSA9PT0gJ3JlZGlyZWN0JyAmJiBlZmZlY3QubmV3QXMpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNoYW5nZShtZXRob2QsIGVmZmVjdC5uZXdVcmwsIGVmZmVjdC5uZXdBcywgb3B0aW9ucyk7XG4gICAgICAgIH0gZWxzZSBpZiAoZWZmZWN0LnR5cGUgPT09ICdyZWRpcmVjdCcgJiYgZWZmZWN0LmRlc3RpbmF0aW9uKSB7XG4gICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGVmZmVjdC5kZXN0aW5hdGlvbjtcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgoKT0+e1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAoZWZmZWN0LnR5cGUgPT09ICdyZWZyZXNoJykge1xuICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBhcztcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgoKT0+e1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgcm91dGUgPSAoMCwgX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2gpLnJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoKHBhdGhuYW1lKTtcbiAgICAgICAgaWYgKCgwLCBfaXNEeW5hbWljKS5pc0R5bmFtaWNSb3V0ZShyb3V0ZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcnNlZEFzID0gKDAsIF9wYXJzZVJlbGF0aXZlVXJsKS5wYXJzZVJlbGF0aXZlVXJsKHJlc29sdmVkQXMpO1xuICAgICAgICAgICAgY29uc3QgYXNQYXRobmFtZSA9IHBhcnNlZEFzLnBhdGhuYW1lO1xuICAgICAgICAgICAgY29uc3Qgcm91dGVSZWdleCA9ICgwLCBfcm91dGVSZWdleCkuZ2V0Um91dGVSZWdleChyb3V0ZSk7XG4gICAgICAgICAgICBjb25zdCByb3V0ZU1hdGNoID0gKDAsIF9yb3V0ZU1hdGNoZXIpLmdldFJvdXRlTWF0Y2hlcihyb3V0ZVJlZ2V4KShhc1BhdGhuYW1lKTtcbiAgICAgICAgICAgIGNvbnN0IHNob3VsZEludGVycG9sYXRlID0gcm91dGUgPT09IGFzUGF0aG5hbWU7XG4gICAgICAgICAgICBjb25zdCBpbnRlcnBvbGF0ZWRBcyA9IHNob3VsZEludGVycG9sYXRlID8gaW50ZXJwb2xhdGVBcyhyb3V0ZSwgYXNQYXRobmFtZSwgcXVlcnkpIDoge1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmICghcm91dGVNYXRjaCB8fCBzaG91bGRJbnRlcnBvbGF0ZSAmJiAhaW50ZXJwb2xhdGVkQXMucmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWlzc2luZ1BhcmFtcyA9IE9iamVjdC5rZXlzKHJvdXRlUmVnZXguZ3JvdXBzKS5maWx0ZXIoKHBhcmFtKT0+IXF1ZXJ5W3BhcmFtXVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgaWYgKG1pc3NpbmdQYXJhbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGAke3Nob3VsZEludGVycG9sYXRlID8gYEludGVycG9sYXRpbmcgaHJlZmAgOiBgTWlzbWF0Y2hpbmcgXFxgYXNcXGAgYW5kIFxcYGhyZWZcXGBgfSBmYWlsZWQgdG8gbWFudWFsbHkgcHJvdmlkZSBgICsgYHRoZSBwYXJhbXM6ICR7bWlzc2luZ1BhcmFtcy5qb2luKCcsICcpfSBpbiB0aGUgXFxgaHJlZlxcYCdzIFxcYHF1ZXJ5XFxgYCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKChzaG91bGRJbnRlcnBvbGF0ZSA/IGBUaGUgcHJvdmlkZWQgXFxgaHJlZlxcYCAoJHt1cmx9KSB2YWx1ZSBpcyBtaXNzaW5nIHF1ZXJ5IHZhbHVlcyAoJHttaXNzaW5nUGFyYW1zLmpvaW4oJywgJyl9KSB0byBiZSBpbnRlcnBvbGF0ZWQgcHJvcGVybHkuIGAgOiBgVGhlIHByb3ZpZGVkIFxcYGFzXFxgIHZhbHVlICgke2FzUGF0aG5hbWV9KSBpcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgXFxgaHJlZlxcYCB2YWx1ZSAoJHtyb3V0ZX0pLiBgKSArIGBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzLyR7c2hvdWxkSW50ZXJwb2xhdGUgPyAnaHJlZi1pbnRlcnBvbGF0aW9uLWZhaWxlZCcgOiAnaW5jb21wYXRpYmxlLWhyZWYtYXMnfWApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoc2hvdWxkSW50ZXJwb2xhdGUpIHtcbiAgICAgICAgICAgICAgICBhcyA9ICgwLCBfdXRpbHMpLmZvcm1hdFdpdGhWYWxpZGF0aW9uKE9iamVjdC5hc3NpZ24oe1xuICAgICAgICAgICAgICAgIH0sIHBhcnNlZEFzLCB7XG4gICAgICAgICAgICAgICAgICAgIHBhdGhuYW1lOiBpbnRlcnBvbGF0ZWRBcy5yZXN1bHQsXG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5OiBvbWl0UGFybXNGcm9tUXVlcnkocXVlcnksIGludGVycG9sYXRlZEFzLnBhcmFtcylcbiAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIE1lcmdlIHBhcmFtcyBpbnRvIGBxdWVyeWAsIG92ZXJ3cml0aW5nIGFueSBzcGVjaWZpZWQgaW4gc2VhcmNoXG4gICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihxdWVyeSwgcm91dGVNYXRjaCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgUm91dGVyLmV2ZW50cy5lbWl0KCdyb3V0ZUNoYW5nZVN0YXJ0JywgYXMsIHJvdXRlUHJvcHMpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdmFyIHJlZiwgcmVmMTtcbiAgICAgICAgICAgIGxldCByb3V0ZUluZm8gPSBhd2FpdCB0aGlzLmdldFJvdXRlSW5mbyhyb3V0ZSwgcGF0aG5hbWUsIHF1ZXJ5LCBhcywgcmVzb2x2ZWRBcywgcm91dGVQcm9wcyk7XG4gICAgICAgICAgICBsZXQgeyBlcnJvciAsIHByb3BzICwgX19OX1NTRyAsIF9fTl9TU1AgIH0gPSByb3V0ZUluZm87XG4gICAgICAgICAgICAvLyBoYW5kbGUgcmVkaXJlY3Qgb24gY2xpZW50LXRyYW5zaXRpb25cbiAgICAgICAgICAgIGlmICgoX19OX1NTRyB8fCBfX05fU1NQKSAmJiBwcm9wcykge1xuICAgICAgICAgICAgICAgIGlmIChwcm9wcy5wYWdlUHJvcHMgJiYgcHJvcHMucGFnZVByb3BzLl9fTl9SRURJUkVDVCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkZXN0aW5hdGlvbiA9IHByb3BzLnBhZ2VQcm9wcy5fX05fUkVESVJFQ1Q7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNoZWNrIGlmIGRlc3RpbmF0aW9uIGlzIGludGVybmFsIChyZXNvbHZlcyB0byBhIHBhZ2UpIGFuZCBhdHRlbXB0XG4gICAgICAgICAgICAgICAgICAgIC8vIGNsaWVudC1uYXZpZ2F0aW9uIGlmIGl0IGlzIGZhbGxpbmcgYmFjayB0byBoYXJkIG5hdmlnYXRpb24gaWZcbiAgICAgICAgICAgICAgICAgICAgLy8gaXQncyBub3RcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRlc3RpbmF0aW9uLnN0YXJ0c1dpdGgoJy8nKSAmJiBwcm9wcy5wYWdlUHJvcHMuX19OX1JFRElSRUNUX0JBU0VfUEFUSCAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcnNlZEhyZWYgPSAoMCwgX3BhcnNlUmVsYXRpdmVVcmwpLnBhcnNlUmVsYXRpdmVVcmwoZGVzdGluYXRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VkSHJlZi5wYXRobmFtZSA9IHJlc29sdmVEeW5hbWljUm91dGUocGFyc2VkSHJlZi5wYXRobmFtZSwgcGFnZXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyB1cmw6IG5ld1VybCAsIGFzOiBuZXdBcyAgfSA9IHByZXBhcmVVcmxBcyh0aGlzLCBkZXN0aW5hdGlvbiwgZGVzdGluYXRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2hhbmdlKG1ldGhvZCwgbmV3VXJsLCBuZXdBcywgb3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBkZXN0aW5hdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKCgpPT57XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmlzUHJldmlldyA9ICEhcHJvcHMuX19OX1BSRVZJRVc7XG4gICAgICAgICAgICAgICAgLy8gaGFuZGxlIFNTRyBkYXRhIDQwNFxuICAgICAgICAgICAgICAgIGlmIChwcm9wcy5ub3RGb3VuZCA9PT0gU1NHX0RBVEFfTk9UX0ZPVU5EKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBub3RGb3VuZFJvdXRlO1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5mZXRjaENvbXBvbmVudCgnLzQwNCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbm90Rm91bmRSb3V0ZSA9ICcvNDA0JztcbiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoXykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbm90Rm91bmRSb3V0ZSA9ICcvX2Vycm9yJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByb3V0ZUluZm8gPSBhd2FpdCB0aGlzLmdldFJvdXRlSW5mbyhub3RGb3VuZFJvdXRlLCBub3RGb3VuZFJvdXRlLCBxdWVyeSwgYXMsIHJlc29sdmVkQXMsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNoYWxsb3c6IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFJvdXRlci5ldmVudHMuZW1pdCgnYmVmb3JlSGlzdG9yeUNoYW5nZScsIGFzLCByb3V0ZVByb3BzKTtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlU3RhdGUobWV0aG9kLCB1cmwsIGFzLCBvcHRpb25zKTtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLl9oICYmIHBhdGhuYW1lID09PSAnL19lcnJvcicgJiYgKChyZWYgPSBzZWxmLl9fTkVYVF9EQVRBX18ucHJvcHMpID09PSBudWxsIHx8IHJlZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogKHJlZjEgPSByZWYucGFnZVByb3BzKSA9PT0gbnVsbCB8fCByZWYxID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZWYxLnN0YXR1c0NvZGUpID09PSA1MDAgJiYgKHByb3BzID09PSBudWxsIHx8IHByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwcm9wcy5wYWdlUHJvcHMpKSB7XG4gICAgICAgICAgICAgICAgLy8gZW5zdXJlIHN0YXR1c0NvZGUgaXMgc3RpbGwgY29ycmVjdCBmb3Igc3RhdGljIDUwMCBwYWdlXG4gICAgICAgICAgICAgICAgLy8gd2hlbiB1cGRhdGluZyBxdWVyeSBpbmZvcm1hdGlvblxuICAgICAgICAgICAgICAgIHByb3BzLnBhZ2VQcm9wcy5zdGF0dXNDb2RlID0gNTAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gc2hhbGxvdyByb3V0aW5nIGlzIG9ubHkgYWxsb3dlZCBmb3Igc2FtZSBwYWdlIFVSTCBjaGFuZ2VzLlxuICAgICAgICAgICAgY29uc3QgaXNWYWxpZFNoYWxsb3dSb3V0ZSA9IG9wdGlvbnMuc2hhbGxvdyAmJiB0aGlzLnJvdXRlID09PSByb3V0ZTtcbiAgICAgICAgICAgIHZhciBfc2Nyb2xsO1xuICAgICAgICAgICAgY29uc3Qgc2hvdWxkU2Nyb2xsID0gKF9zY3JvbGwgPSBvcHRpb25zLnNjcm9sbCkgIT09IG51bGwgJiYgX3Njcm9sbCAhPT0gdm9pZCAwID8gX3Njcm9sbCA6ICFpc1ZhbGlkU2hhbGxvd1JvdXRlO1xuICAgICAgICAgICAgY29uc3QgcmVzZXRTY3JvbGwgPSBzaG91bGRTY3JvbGwgPyB7XG4gICAgICAgICAgICAgICAgeDogMCxcbiAgICAgICAgICAgICAgICB5OiAwXG4gICAgICAgICAgICB9IDogbnVsbDtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuc2V0KHJvdXRlLCBwYXRobmFtZSwgcXVlcnksIGNsZWFuZWRBcywgcm91dGVJbmZvLCBmb3JjZWRTY3JvbGwgIT09IG51bGwgJiYgZm9yY2VkU2Nyb2xsICE9PSB2b2lkIDAgPyBmb3JjZWRTY3JvbGwgOiByZXNldFNjcm9sbCkuY2F0Y2goKGUpPT57XG4gICAgICAgICAgICAgICAgaWYgKGUuY2FuY2VsbGVkKSBlcnJvciA9IGVycm9yIHx8IGU7XG4gICAgICAgICAgICAgICAgZWxzZSB0aHJvdyBlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBSb3V0ZXIuZXZlbnRzLmVtaXQoJ3JvdXRlQ2hhbmdlRXJyb3InLCBlcnJvciwgY2xlYW5lZEFzLCByb3V0ZVByb3BzKTtcbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubG9jYWxlKSB7XG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5sYW5nID0gdGhpcy5sb2NhbGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgUm91dGVyLmV2ZW50cy5lbWl0KCdyb3V0ZUNoYW5nZUNvbXBsZXRlJywgYXMsIHJvdXRlUHJvcHMpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gY2F0Y2ggKGVycjEpIHtcbiAgICAgICAgICAgIGlmICgoMCwgX2lzRXJyb3IpLmRlZmF1bHQoZXJyMSkgJiYgZXJyMS5jYW5jZWxsZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlcnIxO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNoYW5nZVN0YXRlKG1ldGhvZCwgdXJsLCBhcywgb3B0aW9ucyA9IHtcbiAgICB9KSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHdpbmRvdy5oaXN0b3J5ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFdhcm5pbmc6IHdpbmRvdy5oaXN0b3J5IGlzIG5vdCBhdmFpbGFibGUuYCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cuaGlzdG9yeVttZXRob2RdID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFdhcm5pbmc6IHdpbmRvdy5oaXN0b3J5LiR7bWV0aG9kfSBpcyBub3QgYXZhaWxhYmxlYCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChtZXRob2QgIT09ICdwdXNoU3RhdGUnIHx8ICgwLCBfdXRpbHMpLmdldFVSTCgpICE9PSBhcykge1xuICAgICAgICAgICAgdGhpcy5fc2hhbGxvdyA9IG9wdGlvbnMuc2hhbGxvdztcbiAgICAgICAgICAgIHdpbmRvdy5oaXN0b3J5W21ldGhvZF0oe1xuICAgICAgICAgICAgICAgIHVybCxcbiAgICAgICAgICAgICAgICBhcyxcbiAgICAgICAgICAgICAgICBvcHRpb25zLFxuICAgICAgICAgICAgICAgIF9fTjogdHJ1ZSxcbiAgICAgICAgICAgICAgICBpZHg6IHRoaXMuX2lkeCA9IG1ldGhvZCAhPT0gJ3B1c2hTdGF0ZScgPyB0aGlzLl9pZHggOiB0aGlzLl9pZHggKyAxXG4gICAgICAgICAgICB9LCAvLyBNb3N0IGJyb3dzZXJzIGN1cnJlbnRseSBpZ25vcmVzIHRoaXMgcGFyYW1ldGVyLCBhbHRob3VnaCB0aGV5IG1heSB1c2UgaXQgaW4gdGhlIGZ1dHVyZS5cbiAgICAgICAgICAgIC8vIFBhc3NpbmcgdGhlIGVtcHR5IHN0cmluZyBoZXJlIHNob3VsZCBiZSBzYWZlIGFnYWluc3QgZnV0dXJlIGNoYW5nZXMgdG8gdGhlIG1ldGhvZC5cbiAgICAgICAgICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9IaXN0b3J5L3JlcGxhY2VTdGF0ZVxuICAgICAgICAgICAgJycsIGFzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhc3luYyBoYW5kbGVSb3V0ZUluZm9FcnJvcihlcnIsIHBhdGhuYW1lLCBxdWVyeSwgYXMsIHJvdXRlUHJvcHMsIGxvYWRFcnJvckZhaWwpIHtcbiAgICAgICAgaWYgKGVyci5jYW5jZWxsZWQpIHtcbiAgICAgICAgICAgIC8vIGJ1YmJsZSB1cCBjYW5jZWxsYXRpb24gZXJyb3JzXG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCgwLCBfcm91dGVMb2FkZXIpLmlzQXNzZXRFcnJvcihlcnIpIHx8IGxvYWRFcnJvckZhaWwpIHtcbiAgICAgICAgICAgIFJvdXRlci5ldmVudHMuZW1pdCgncm91dGVDaGFuZ2VFcnJvcicsIGVyciwgYXMsIHJvdXRlUHJvcHMpO1xuICAgICAgICAgICAgLy8gSWYgd2UgY2FuJ3QgbG9hZCB0aGUgcGFnZSBpdCBjb3VsZCBiZSBvbmUgb2YgZm9sbG93aW5nIHJlYXNvbnNcbiAgICAgICAgICAgIC8vICAxLiBQYWdlIGRvZXNuJ3QgZXhpc3RzXG4gICAgICAgICAgICAvLyAgMi4gUGFnZSBkb2VzIGV4aXN0IGluIGEgZGlmZmVyZW50IHpvbmVcbiAgICAgICAgICAgIC8vICAzLiBJbnRlcm5hbCBlcnJvciB3aGlsZSBsb2FkaW5nIHRoZSBwYWdlXG4gICAgICAgICAgICAvLyBTbywgZG9pbmcgYSBoYXJkIHJlbG9hZCBpcyB0aGUgcHJvcGVyIHdheSB0byBkZWFsIHdpdGggdGhpcy5cbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYXM7XG4gICAgICAgICAgICAvLyBDaGFuZ2luZyB0aGUgVVJMIGRvZXNuJ3QgYmxvY2sgZXhlY3V0aW5nIHRoZSBjdXJyZW50IGNvZGUgcGF0aC5cbiAgICAgICAgICAgIC8vIFNvIGxldCdzIHRocm93IGEgY2FuY2VsbGF0aW9uIGVycm9yIHN0b3AgdGhlIHJvdXRpbmcgbG9naWMuXG4gICAgICAgICAgICB0aHJvdyBidWlsZENhbmNlbGxhdGlvbkVycm9yKCk7XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGxldCBDb21wb25lbnQ7XG4gICAgICAgICAgICBsZXQgc3R5bGVTaGVldHM7XG4gICAgICAgICAgICBsZXQgcHJvcHM7XG4gICAgICAgICAgICBpZiAodHlwZW9mIENvbXBvbmVudCA9PT0gJ3VuZGVmaW5lZCcgfHwgdHlwZW9mIHN0eWxlU2hlZXRzID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICh7IHBhZ2U6IENvbXBvbmVudCAsIHN0eWxlU2hlZXRzICB9ID0gYXdhaXQgdGhpcy5mZXRjaENvbXBvbmVudCgnL19lcnJvcicpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHJvdXRlSW5mbyA9IHtcbiAgICAgICAgICAgICAgICBwcm9wcyxcbiAgICAgICAgICAgICAgICBDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgc3R5bGVTaGVldHMsXG4gICAgICAgICAgICAgICAgZXJyLFxuICAgICAgICAgICAgICAgIGVycm9yOiBlcnJcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAoIXJvdXRlSW5mby5wcm9wcykge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIHJvdXRlSW5mby5wcm9wcyA9IGF3YWl0IHRoaXMuZ2V0SW5pdGlhbFByb3BzKENvbXBvbmVudCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXJyLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBxdWVyeVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChnaXBFcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gZXJyb3IgcGFnZSBgZ2V0SW5pdGlhbFByb3BzYDogJywgZ2lwRXJyKTtcbiAgICAgICAgICAgICAgICAgICAgcm91dGVJbmZvLnByb3BzID0ge1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByb3V0ZUluZm87XG4gICAgICAgIH0gY2F0Y2ggKHJvdXRlSW5mb0Vycikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlUm91dGVJbmZvRXJyb3IoKDAsIF9pc0Vycm9yKS5kZWZhdWx0KHJvdXRlSW5mb0VycikgPyByb3V0ZUluZm9FcnIgOiBuZXcgRXJyb3Iocm91dGVJbmZvRXJyICsgJycpLCBwYXRobmFtZSwgcXVlcnksIGFzLCByb3V0ZVByb3BzLCB0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhc3luYyBnZXRSb3V0ZUluZm8ocm91dGUsIHBhdGhuYW1lLCBxdWVyeSwgYXMsIHJlc29sdmVkQXMsIHJvdXRlUHJvcHMpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nUm91dGVJbmZvID0gdGhpcy5jb21wb25lbnRzW3JvdXRlXTtcbiAgICAgICAgICAgIGlmIChyb3V0ZVByb3BzLnNoYWxsb3cgJiYgZXhpc3RpbmdSb3V0ZUluZm8gJiYgdGhpcy5yb3V0ZSA9PT0gcm91dGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZXhpc3RpbmdSb3V0ZUluZm87XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgY2FjaGVkUm91dGVJbmZvID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgLy8gY2FuIG9ubHkgdXNlIG5vbi1pbml0aWFsIHJvdXRlIGluZm9cbiAgICAgICAgICAgIC8vIGNhbm5vdCByZXVzZSByb3V0ZSBpbmZvIGluIGRldmVsb3BtZW50IHNpbmNlIGl0IGNhbiBjaGFuZ2UgYWZ0ZXIgSE1SXG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdkZXZlbG9wbWVudCcgJiYgZXhpc3RpbmdSb3V0ZUluZm8gJiYgISgnaW5pdGlhbCcgaW4gZXhpc3RpbmdSb3V0ZUluZm8pKSB7XG4gICAgICAgICAgICAgICAgY2FjaGVkUm91dGVJbmZvID0gZXhpc3RpbmdSb3V0ZUluZm87XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCByb3V0ZUluZm8gPSBjYWNoZWRSb3V0ZUluZm8gfHwgYXdhaXQgdGhpcy5mZXRjaENvbXBvbmVudChyb3V0ZSkudGhlbigocmVzKT0+KHtcbiAgICAgICAgICAgICAgICAgICAgQ29tcG9uZW50OiByZXMucGFnZSxcbiAgICAgICAgICAgICAgICAgICAgc3R5bGVTaGVldHM6IHJlcy5zdHlsZVNoZWV0cyxcbiAgICAgICAgICAgICAgICAgICAgX19OX1NTRzogcmVzLm1vZC5fX05fU1NHLFxuICAgICAgICAgICAgICAgICAgICBfX05fU1NQOiByZXMubW9kLl9fTl9TU1AsXG4gICAgICAgICAgICAgICAgICAgIF9fTl9SU0M6ICEhcmVzLnBhZ2UuX19uZXh0X3JzY19fXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjb25zdCB7IENvbXBvbmVudCAsIF9fTl9TU0cgLCBfX05fU1NQICwgX19OX1JTQyAgfSA9IHJvdXRlSW5mbztcbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBpc1ZhbGlkRWxlbWVudFR5cGUgIH0gPSByZXF1aXJlKCdyZWFjdC1pcycpO1xuICAgICAgICAgICAgICAgIGlmICghaXNWYWxpZEVsZW1lbnRUeXBlKENvbXBvbmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgZGVmYXVsdCBleHBvcnQgaXMgbm90IGEgUmVhY3QgQ29tcG9uZW50IGluIHBhZ2U6IFwiJHtwYXRobmFtZX1cImApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBkYXRhSHJlZjtcbiAgICAgICAgICAgIGlmIChfX05fU1NHIHx8IF9fTl9TU1AgfHwgX19OX1JTQykge1xuICAgICAgICAgICAgICAgIGRhdGFIcmVmID0gdGhpcy5wYWdlTG9hZGVyLmdldERhdGFIcmVmKHtcbiAgICAgICAgICAgICAgICAgICAgaHJlZjogKDAsIF91dGlscykuZm9ybWF0V2l0aFZhbGlkYXRpb24oe1xuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBxdWVyeVxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgYXNQYXRoOiByZXNvbHZlZEFzLFxuICAgICAgICAgICAgICAgICAgICBzc2c6IF9fTl9TU0csXG4gICAgICAgICAgICAgICAgICAgIHJzYzogX19OX1JTQyxcbiAgICAgICAgICAgICAgICAgICAgbG9jYWxlOiB0aGlzLmxvY2FsZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgcHJvcHMgPSBhd2FpdCB0aGlzLl9nZXREYXRhKCgpPT5fX05fU1NHIHx8IF9fTl9TU1AgPyBmZXRjaE5leHREYXRhKGRhdGFIcmVmLCB0aGlzLmlzU3NyLCBmYWxzZSwgX19OX1NTRyA/IHRoaXMuc2RjIDogdGhpcy5zZHIsICEhX19OX1NTRyAmJiAhdGhpcy5pc1ByZXZpZXcpIDogdGhpcy5nZXRJbml0aWFsUHJvcHMoQ29tcG9uZW50LCAvLyB3ZSBwcm92aWRlIEFwcFRyZWUgbGF0ZXIgc28gdGhpcyBuZWVkcyB0byBiZSBgYW55YFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5LFxuICAgICAgICAgICAgICAgICAgICBhc1BhdGg6IGFzLFxuICAgICAgICAgICAgICAgICAgICBsb2NhbGU6IHRoaXMubG9jYWxlLFxuICAgICAgICAgICAgICAgICAgICBsb2NhbGVzOiB0aGlzLmxvY2FsZXMsXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRMb2NhbGU6IHRoaXMuZGVmYXVsdExvY2FsZVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKF9fTl9SU0MpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGZyZXNoICwgZGF0YSAgfSA9IGF3YWl0IHRoaXMuX2dldERhdGEoKCk9PnRoaXMuX2dldEZsaWdodERhdGEoZGF0YUhyZWYpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBwcm9wcy5wYWdlUHJvcHMgPSBPYmplY3QuYXNzaWduKHByb3BzLnBhZ2VQcm9wcywge1xuICAgICAgICAgICAgICAgICAgICBfX2ZsaWdodF9zZXJpYWxpemVkX186IGRhdGEsXG4gICAgICAgICAgICAgICAgICAgIF9fZmxpZ2h0X2ZyZXNoX186IGZyZXNoXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByb3V0ZUluZm8ucHJvcHMgPSBwcm9wcztcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50c1tyb3V0ZV0gPSByb3V0ZUluZm87XG4gICAgICAgICAgICByZXR1cm4gcm91dGVJbmZvO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmhhbmRsZVJvdXRlSW5mb0Vycm9yKCgwLCBfaXNFcnJvcikuZGVmYXVsdChlcnIpID8gZXJyIDogbmV3IEVycm9yKGVyciArICcnKSwgcGF0aG5hbWUsIHF1ZXJ5LCBhcywgcm91dGVQcm9wcyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc2V0KHJvdXRlLCBwYXRobmFtZSwgcXVlcnksIGFzLCBkYXRhLCByZXNldFNjcm9sbCkge1xuICAgICAgICB0aGlzLmlzRmFsbGJhY2sgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5yb3V0ZSA9IHJvdXRlO1xuICAgICAgICB0aGlzLnBhdGhuYW1lID0gcGF0aG5hbWU7XG4gICAgICAgIHRoaXMucXVlcnkgPSBxdWVyeTtcbiAgICAgICAgdGhpcy5hc1BhdGggPSBhcztcbiAgICAgICAgcmV0dXJuIHRoaXMubm90aWZ5KGRhdGEsIHJlc2V0U2Nyb2xsKTtcbiAgICB9XG4gICAgLyoqXG4gICAqIENhbGxiYWNrIHRvIGV4ZWN1dGUgYmVmb3JlIHJlcGxhY2luZyByb3V0ZXIgc3RhdGVcbiAgICogQHBhcmFtIGNiIGNhbGxiYWNrIHRvIGJlIGV4ZWN1dGVkXG4gICAqLyBiZWZvcmVQb3BTdGF0ZShjYikge1xuICAgICAgICB0aGlzLl9icHMgPSBjYjtcbiAgICB9XG4gICAgb25seUFIYXNoQ2hhbmdlKGFzKSB7XG4gICAgICAgIGlmICghdGhpcy5hc1BhdGgpIHJldHVybiBmYWxzZTtcbiAgICAgICAgY29uc3QgW29sZFVybE5vSGFzaCwgb2xkSGFzaF0gPSB0aGlzLmFzUGF0aC5zcGxpdCgnIycpO1xuICAgICAgICBjb25zdCBbbmV3VXJsTm9IYXNoLCBuZXdIYXNoXSA9IGFzLnNwbGl0KCcjJyk7XG4gICAgICAgIC8vIE1ha2VzIHN1cmUgd2Ugc2Nyb2xsIHRvIHRoZSBwcm92aWRlZCBoYXNoIGlmIHRoZSB1cmwvaGFzaCBhcmUgdGhlIHNhbWVcbiAgICAgICAgaWYgKG5ld0hhc2ggJiYgb2xkVXJsTm9IYXNoID09PSBuZXdVcmxOb0hhc2ggJiYgb2xkSGFzaCA9PT0gbmV3SGFzaCkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYgdGhlIHVybHMgYXJlIGNoYW5nZSwgdGhlcmUncyBtb3JlIHRoYW4gYSBoYXNoIGNoYW5nZVxuICAgICAgICBpZiAob2xkVXJsTm9IYXNoICE9PSBuZXdVcmxOb0hhc2gpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBJZiB0aGUgaGFzaCBoYXMgY2hhbmdlZCwgdGhlbiBpdCdzIGEgaGFzaCBvbmx5IGNoYW5nZS5cbiAgICAgICAgLy8gVGhpcyBjaGVjayBpcyBuZWNlc3NhcnkgdG8gaGFuZGxlIGJvdGggdGhlIGVudGVyIGFuZFxuICAgICAgICAvLyBsZWF2ZSBoYXNoID09PSAnJyBjYXNlcy4gVGhlIGlkZW50aXR5IGNhc2UgZmFsbHMgdGhyb3VnaFxuICAgICAgICAvLyBhbmQgaXMgdHJlYXRlZCBhcyBhIG5leHQgcmVsb2FkLlxuICAgICAgICByZXR1cm4gb2xkSGFzaCAhPT0gbmV3SGFzaDtcbiAgICB9XG4gICAgc2Nyb2xsVG9IYXNoKGFzKSB7XG4gICAgICAgIGNvbnN0IFssIGhhc2hdID0gYXMuc3BsaXQoJyMnKTtcbiAgICAgICAgLy8gU2Nyb2xsIHRvIHRvcCBpZiB0aGUgaGFzaCBpcyBqdXN0IGAjYCB3aXRoIG5vIHZhbHVlIG9yIGAjdG9wYFxuICAgICAgICAvLyBUbyBtaXJyb3IgYnJvd3NlcnNcbiAgICAgICAgaWYgKGhhc2ggPT09ICcnIHx8IGhhc2ggPT09ICd0b3AnKSB7XG4gICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgMCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gRmlyc3Qgd2UgY2hlY2sgaWYgdGhlIGVsZW1lbnQgYnkgaWQgaXMgZm91bmRcbiAgICAgICAgY29uc3QgaWRFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGhhc2gpO1xuICAgICAgICBpZiAoaWRFbCkge1xuICAgICAgICAgICAgaWRFbC5zY3JvbGxJbnRvVmlldygpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIElmIHRoZXJlJ3Mgbm8gZWxlbWVudCB3aXRoIHRoZSBpZCwgd2UgY2hlY2sgdGhlIGBuYW1lYCBwcm9wZXJ0eVxuICAgICAgICAvLyBUbyBtaXJyb3IgYnJvd3NlcnNcbiAgICAgICAgY29uc3QgbmFtZUVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoaGFzaClbMF07XG4gICAgICAgIGlmIChuYW1lRWwpIHtcbiAgICAgICAgICAgIG5hbWVFbC5zY3JvbGxJbnRvVmlldygpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHVybElzTmV3KGFzUGF0aCkge1xuICAgICAgICByZXR1cm4gdGhpcy5hc1BhdGggIT09IGFzUGF0aDtcbiAgICB9XG4gICAgLyoqXG4gICAqIFByZWZldGNoIHBhZ2UgY29kZSwgeW91IG1heSB3YWl0IGZvciB0aGUgZGF0YSBkdXJpbmcgcGFnZSByZW5kZXJpbmcuXG4gICAqIFRoaXMgZmVhdHVyZSBvbmx5IHdvcmtzIGluIHByb2R1Y3Rpb24hXG4gICAqIEBwYXJhbSB1cmwgdGhlIGhyZWYgb2YgcHJlZmV0Y2hlZCBwYWdlXG4gICAqIEBwYXJhbSBhc1BhdGggdGhlIGFzIHBhdGggb2YgdGhlIHByZWZldGNoZWQgcGFnZVxuICAgKi8gYXN5bmMgcHJlZmV0Y2godXJsLCBhc1BhdGggPSB1cmwsIG9wdGlvbnMgPSB7XG4gICAgfSkge1xuICAgICAgICBsZXQgcGFyc2VkID0gKDAsIF9wYXJzZVJlbGF0aXZlVXJsKS5wYXJzZVJlbGF0aXZlVXJsKHVybCk7XG4gICAgICAgIGxldCB7IHBhdGhuYW1lICwgcXVlcnkgIH0gPSBwYXJzZWQ7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5sb2NhbGUgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgcGF0aG5hbWUgPSAoMCwgX25vcm1hbGl6ZUxvY2FsZVBhdGgpLm5vcm1hbGl6ZUxvY2FsZVBhdGgocGF0aG5hbWUsIHRoaXMubG9jYWxlcykucGF0aG5hbWU7XG4gICAgICAgICAgICAgICAgcGFyc2VkLnBhdGhuYW1lID0gcGF0aG5hbWU7XG4gICAgICAgICAgICAgICAgdXJsID0gKDAsIF91dGlscykuZm9ybWF0V2l0aFZhbGlkYXRpb24ocGFyc2VkKTtcbiAgICAgICAgICAgICAgICBsZXQgcGFyc2VkQXMgPSAoMCwgX3BhcnNlUmVsYXRpdmVVcmwpLnBhcnNlUmVsYXRpdmVVcmwoYXNQYXRoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBsb2NhbGVQYXRoUmVzdWx0ID0gKDAsIF9ub3JtYWxpemVMb2NhbGVQYXRoKS5ub3JtYWxpemVMb2NhbGVQYXRoKHBhcnNlZEFzLnBhdGhuYW1lLCB0aGlzLmxvY2FsZXMpO1xuICAgICAgICAgICAgICAgIHBhcnNlZEFzLnBhdGhuYW1lID0gbG9jYWxlUGF0aFJlc3VsdC5wYXRobmFtZTtcbiAgICAgICAgICAgICAgICBvcHRpb25zLmxvY2FsZSA9IGxvY2FsZVBhdGhSZXN1bHQuZGV0ZWN0ZWRMb2NhbGUgfHwgdGhpcy5kZWZhdWx0TG9jYWxlO1xuICAgICAgICAgICAgICAgIGFzUGF0aCA9ICgwLCBfdXRpbHMpLmZvcm1hdFdpdGhWYWxpZGF0aW9uKHBhcnNlZEFzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYWdlcyA9IGF3YWl0IHRoaXMucGFnZUxvYWRlci5nZXRQYWdlTGlzdCgpO1xuICAgICAgICBsZXQgcmVzb2x2ZWRBcyA9IGFzUGF0aDtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9IQVNfUkVXUklURVMgJiYgYXNQYXRoLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgICAgICAgbGV0IHJld3JpdGVzO1xuICAgICAgICAgICAgKHsgX19yZXdyaXRlczogcmV3cml0ZXMgIH0gPSBhd2FpdCAoMCwgX3JvdXRlTG9hZGVyKS5nZXRDbGllbnRCdWlsZE1hbmlmZXN0KCkpO1xuICAgICAgICAgICAgY29uc3QgcmV3cml0ZXNSZXN1bHQgPSAoMCwgX3Jlc29sdmVSZXdyaXRlcykuZGVmYXVsdChhZGRCYXNlUGF0aChhZGRMb2NhbGUoYXNQYXRoLCB0aGlzLmxvY2FsZSkpLCBwYWdlcywgcmV3cml0ZXMsIHBhcnNlZC5xdWVyeSwgKHApPT5yZXNvbHZlRHluYW1pY1JvdXRlKHAsIHBhZ2VzKVxuICAgICAgICAgICAgLCB0aGlzLmxvY2FsZXMpO1xuICAgICAgICAgICAgcmVzb2x2ZWRBcyA9IGRlbExvY2FsZShkZWxCYXNlUGF0aChyZXdyaXRlc1Jlc3VsdC5hc1BhdGgpLCB0aGlzLmxvY2FsZSk7XG4gICAgICAgICAgICBpZiAocmV3cml0ZXNSZXN1bHQubWF0Y2hlZFBhZ2UgJiYgcmV3cml0ZXNSZXN1bHQucmVzb2x2ZWRIcmVmKSB7XG4gICAgICAgICAgICAgICAgLy8gaWYgdGhpcyBkaXJlY3RseSBtYXRjaGVzIGEgcGFnZSB3ZSBuZWVkIHRvIHVwZGF0ZSB0aGUgaHJlZiB0b1xuICAgICAgICAgICAgICAgIC8vIGFsbG93IHRoZSBjb3JyZWN0IHBhZ2UgY2h1bmsgdG8gYmUgbG9hZGVkXG4gICAgICAgICAgICAgICAgcGF0aG5hbWUgPSByZXdyaXRlc1Jlc3VsdC5yZXNvbHZlZEhyZWY7XG4gICAgICAgICAgICAgICAgcGFyc2VkLnBhdGhuYW1lID0gcGF0aG5hbWU7XG4gICAgICAgICAgICAgICAgdXJsID0gKDAsIF91dGlscykuZm9ybWF0V2l0aFZhbGlkYXRpb24ocGFyc2VkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBhcnNlZC5wYXRobmFtZSA9IHJlc29sdmVEeW5hbWljUm91dGUocGFyc2VkLnBhdGhuYW1lLCBwYWdlcyk7XG4gICAgICAgICAgICBpZiAocGFyc2VkLnBhdGhuYW1lICE9PSBwYXRobmFtZSkge1xuICAgICAgICAgICAgICAgIHBhdGhuYW1lID0gcGFyc2VkLnBhdGhuYW1lO1xuICAgICAgICAgICAgICAgIHBhcnNlZC5wYXRobmFtZSA9IHBhdGhuYW1lO1xuICAgICAgICAgICAgICAgIHVybCA9ICgwLCBfdXRpbHMpLmZvcm1hdFdpdGhWYWxpZGF0aW9uKHBhcnNlZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gUHJlZmV0Y2ggaXMgbm90IHN1cHBvcnRlZCBpbiBkZXZlbG9wbWVudCBtb2RlIGJlY2F1c2UgaXQgd291bGQgdHJpZ2dlciBvbi1kZW1hbmQtZW50cmllc1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVmZmVjdHMgPSBhd2FpdCB0aGlzLl9wcmVmbGlnaHRSZXF1ZXN0KHtcbiAgICAgICAgICAgIGFzOiBhZGRCYXNlUGF0aChhc1BhdGgpLFxuICAgICAgICAgICAgY2FjaGU6IHRydWUsXG4gICAgICAgICAgICBwYWdlcyxcbiAgICAgICAgICAgIHBhdGhuYW1lLFxuICAgICAgICAgICAgcXVlcnlcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChlZmZlY3RzLnR5cGUgPT09ICdyZXdyaXRlJykge1xuICAgICAgICAgICAgcGFyc2VkLnBhdGhuYW1lID0gZWZmZWN0cy5yZXNvbHZlZEhyZWY7XG4gICAgICAgICAgICBwYXRobmFtZSA9IGVmZmVjdHMucmVzb2x2ZWRIcmVmO1xuICAgICAgICAgICAgcXVlcnkgPSB7XG4gICAgICAgICAgICAgICAgLi4ucXVlcnksXG4gICAgICAgICAgICAgICAgLi4uZWZmZWN0cy5wYXJzZWRBcy5xdWVyeVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJlc29sdmVkQXMgPSBlZmZlY3RzLmFzUGF0aDtcbiAgICAgICAgICAgIHVybCA9ICgwLCBfdXRpbHMpLmZvcm1hdFdpdGhWYWxpZGF0aW9uKHBhcnNlZCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgcm91dGUgPSAoMCwgX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2gpLnJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoKHBhdGhuYW1lKTtcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgICAgICAgdGhpcy5wYWdlTG9hZGVyLl9pc1NzZyhyb3V0ZSkudGhlbigoaXNTc2cpPT57XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzU3NnID8gZmV0Y2hOZXh0RGF0YSh0aGlzLnBhZ2VMb2FkZXIuZ2V0RGF0YUhyZWYoe1xuICAgICAgICAgICAgICAgICAgICBocmVmOiB1cmwsXG4gICAgICAgICAgICAgICAgICAgIGFzUGF0aDogcmVzb2x2ZWRBcyxcbiAgICAgICAgICAgICAgICAgICAgc3NnOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBsb2NhbGU6IHR5cGVvZiBvcHRpb25zLmxvY2FsZSAhPT0gJ3VuZGVmaW5lZCcgPyBvcHRpb25zLmxvY2FsZSA6IHRoaXMubG9jYWxlXG4gICAgICAgICAgICAgICAgfSksIGZhbHNlLCBmYWxzZSwgdGhpcy5zZGMsIHRydWUpIDogZmFsc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHRoaXMucGFnZUxvYWRlcltvcHRpb25zLnByaW9yaXR5ID8gJ2xvYWRQYWdlJyA6ICdwcmVmZXRjaCddKHJvdXRlKSwgXG4gICAgICAgIF0pO1xuICAgIH1cbiAgICBhc3luYyBmZXRjaENvbXBvbmVudChyb3V0ZSkge1xuICAgICAgICBsZXQgY2FuY2VsbGVkID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IGNhbmNlbCA9IHRoaXMuY2xjID0gKCk9PntcbiAgICAgICAgICAgIGNhbmNlbGxlZCA9IHRydWU7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGhhbmRsZUNhbmNlbGxlZCA9ICgpPT57XG4gICAgICAgICAgICBpZiAoY2FuY2VsbGVkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoYEFib3J0IGZldGNoaW5nIGNvbXBvbmVudCBmb3Igcm91dGU6IFwiJHtyb3V0ZX1cImApO1xuICAgICAgICAgICAgICAgIGVycm9yLmNhbmNlbGxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY2FuY2VsID09PSB0aGlzLmNsYykge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xjID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudFJlc3VsdCA9IGF3YWl0IHRoaXMucGFnZUxvYWRlci5sb2FkUGFnZShyb3V0ZSk7XG4gICAgICAgICAgICBoYW5kbGVDYW5jZWxsZWQoKTtcbiAgICAgICAgICAgIHJldHVybiBjb21wb25lbnRSZXN1bHQ7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgaGFuZGxlQ2FuY2VsbGVkKCk7XG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2dldERhdGEoZm4pIHtcbiAgICAgICAgbGV0IGNhbmNlbGxlZCA9IGZhbHNlO1xuICAgICAgICBjb25zdCBjYW5jZWwgPSAoKT0+e1xuICAgICAgICAgICAgY2FuY2VsbGVkID0gdHJ1ZTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5jbGMgPSBjYW5jZWw7XG4gICAgICAgIHJldHVybiBmbigpLnRoZW4oKGRhdGEpPT57XG4gICAgICAgICAgICBpZiAoY2FuY2VsID09PSB0aGlzLmNsYykge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xjID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjYW5jZWxsZWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlcnIgPSBuZXcgRXJyb3IoJ0xvYWRpbmcgaW5pdGlhbCBwcm9wcyBjYW5jZWxsZWQnKTtcbiAgICAgICAgICAgICAgICBlcnIuY2FuY2VsbGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIF9nZXRGbGlnaHREYXRhKGRhdGFIcmVmKSB7XG4gICAgICAgIGNvbnN0IHsgaHJlZjogY2FjaGVLZXkgIH0gPSBuZXcgVVJMKGRhdGFIcmVmLCB3aW5kb3cubG9jYXRpb24uaHJlZik7XG4gICAgICAgIGlmICghdGhpcy5pc1ByZXZpZXcgJiYgdGhpcy5zZGNbY2FjaGVLZXldKSB7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgICAgICAgICAgICBmcmVzaDogZmFsc2UsXG4gICAgICAgICAgICAgICAgZGF0YTogdGhpcy5zZGNbY2FjaGVLZXldXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmV0Y2hOZXh0RGF0YShkYXRhSHJlZiwgdHJ1ZSwgdHJ1ZSwgdGhpcy5zZGMsIGZhbHNlKS50aGVuKChzZXJpYWxpemVkKT0+e1xuICAgICAgICAgICAgdGhpcy5zZGNbY2FjaGVLZXldID0gc2VyaWFsaXplZDtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgZnJlc2g6IHRydWUsXG4gICAgICAgICAgICAgICAgZGF0YTogc2VyaWFsaXplZFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGFzeW5jIF9wcmVmbGlnaHRSZXF1ZXN0KG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIHJlZjtcbiAgICAgICAgY29uc3QgY2xlYW5lZEFzID0gZGVsTG9jYWxlKGhhc0Jhc2VQYXRoKG9wdGlvbnMuYXMpID8gZGVsQmFzZVBhdGgob3B0aW9ucy5hcykgOiBvcHRpb25zLmFzLCB0aGlzLmxvY2FsZSk7XG4gICAgICAgIGNvbnN0IGZucyA9IGF3YWl0IHRoaXMucGFnZUxvYWRlci5nZXRNaWRkbGV3YXJlTGlzdCgpO1xuICAgICAgICBjb25zdCByZXF1aXJlc1ByZWZsaWdodCA9IGZucy5zb21lKChbbWlkZGxld2FyZSwgaXNTU1JdKT0+e1xuICAgICAgICAgICAgcmV0dXJuICgwLCBfcm91dGVNYXRjaGVyKS5nZXRSb3V0ZU1hdGNoZXIoKDAsIF9nZXRNaWRkbGV3YXJlUmVnZXgpLmdldE1pZGRsZXdhcmVSZWdleChtaWRkbGV3YXJlLCAhaXNTU1IpKShjbGVhbmVkQXMpO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKCFyZXF1aXJlc1ByZWZsaWdodCkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnbmV4dCdcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcHJlZmxpZ2h0ID0gYXdhaXQgdGhpcy5fZ2V0UHJlZmxpZ2h0RGF0YSh7XG4gICAgICAgICAgICBwcmVmbGlnaHRIcmVmOiBvcHRpb25zLmFzLFxuICAgICAgICAgICAgc2hvdWxkQ2FjaGU6IG9wdGlvbnMuY2FjaGVcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICgocmVmID0gcHJlZmxpZ2h0LnJld3JpdGUpID09PSBudWxsIHx8IHJlZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVmLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgICAgICAgY29uc3QgcGFyc2VkID0gKDAsIF9wYXJzZVJlbGF0aXZlVXJsKS5wYXJzZVJlbGF0aXZlVXJsKCgwLCBfbm9ybWFsaXplTG9jYWxlUGF0aCkubm9ybWFsaXplTG9jYWxlUGF0aChoYXNCYXNlUGF0aChwcmVmbGlnaHQucmV3cml0ZSkgPyBkZWxCYXNlUGF0aChwcmVmbGlnaHQucmV3cml0ZSkgOiBwcmVmbGlnaHQucmV3cml0ZSwgdGhpcy5sb2NhbGVzKS5wYXRobmFtZSk7XG4gICAgICAgICAgICBjb25zdCBmc1BhdGhuYW1lID0gKDAsIF9ub3JtYWxpemVUcmFpbGluZ1NsYXNoKS5yZW1vdmVQYXRoVHJhaWxpbmdTbGFzaChwYXJzZWQucGF0aG5hbWUpO1xuICAgICAgICAgICAgbGV0IG1hdGNoZWRQYWdlO1xuICAgICAgICAgICAgbGV0IHJlc29sdmVkSHJlZjtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLnBhZ2VzLmluY2x1ZGVzKGZzUGF0aG5hbWUpKSB7XG4gICAgICAgICAgICAgICAgbWF0Y2hlZFBhZ2UgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHJlc29sdmVkSHJlZiA9IGZzUGF0aG5hbWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlc29sdmVkSHJlZiA9IHJlc29sdmVEeW5hbWljUm91dGUoZnNQYXRobmFtZSwgb3B0aW9ucy5wYWdlcyk7XG4gICAgICAgICAgICAgICAgaWYgKHJlc29sdmVkSHJlZiAhPT0gcGFyc2VkLnBhdGhuYW1lICYmIG9wdGlvbnMucGFnZXMuaW5jbHVkZXMocmVzb2x2ZWRIcmVmKSkge1xuICAgICAgICAgICAgICAgICAgICBtYXRjaGVkUGFnZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB0eXBlOiAncmV3cml0ZScsXG4gICAgICAgICAgICAgICAgYXNQYXRoOiBwYXJzZWQucGF0aG5hbWUsXG4gICAgICAgICAgICAgICAgcGFyc2VkQXM6IHBhcnNlZCxcbiAgICAgICAgICAgICAgICBtYXRjaGVkUGFnZSxcbiAgICAgICAgICAgICAgICByZXNvbHZlZEhyZWZcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByZWZsaWdodC5yZWRpcmVjdCkge1xuICAgICAgICAgICAgaWYgKHByZWZsaWdodC5yZWRpcmVjdC5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjbGVhblJlZGlyZWN0ID0gKDAsIF9ub3JtYWxpemVUcmFpbGluZ1NsYXNoKS5yZW1vdmVQYXRoVHJhaWxpbmdTbGFzaCgoMCwgX25vcm1hbGl6ZUxvY2FsZVBhdGgpLm5vcm1hbGl6ZUxvY2FsZVBhdGgoaGFzQmFzZVBhdGgocHJlZmxpZ2h0LnJlZGlyZWN0KSA/IGRlbEJhc2VQYXRoKHByZWZsaWdodC5yZWRpcmVjdCkgOiBwcmVmbGlnaHQucmVkaXJlY3QsIHRoaXMubG9jYWxlcykucGF0aG5hbWUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgdXJsOiBuZXdVcmwgLCBhczogbmV3QXMgIH0gPSBwcmVwYXJlVXJsQXModGhpcywgY2xlYW5SZWRpcmVjdCwgY2xlYW5SZWRpcmVjdCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3JlZGlyZWN0JyxcbiAgICAgICAgICAgICAgICAgICAgbmV3VXJsLFxuICAgICAgICAgICAgICAgICAgICBuZXdBc1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdyZWRpcmVjdCcsXG4gICAgICAgICAgICAgICAgZGVzdGluYXRpb246IHByZWZsaWdodC5yZWRpcmVjdFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICAvLyBGb3IgU1NSIHJlcXVlc3RzLCB0aGV5IHdpbGwgYmUgaGFuZGxlZCBsaWtlIG5vcm1hbCBwYWdlcy5cbiAgICAgICAgaWYgKHByZWZsaWdodC5yZWZyZXNoICYmICFwcmVmbGlnaHQuc3NyKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdyZWZyZXNoJ1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogJ25leHQnXG4gICAgICAgIH07XG4gICAgfVxuICAgIF9nZXRQcmVmbGlnaHREYXRhKHBhcmFtcykge1xuICAgICAgICBjb25zdCB7IHByZWZsaWdodEhyZWYgLCBzaG91bGRDYWNoZSA9ZmFsc2UgIH0gPSBwYXJhbXM7XG4gICAgICAgIGNvbnN0IHsgaHJlZjogY2FjaGVLZXkgIH0gPSBuZXcgVVJMKHByZWZsaWdodEhyZWYsIHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicgJiYgIXRoaXMuaXNQcmV2aWV3ICYmIHNob3VsZENhY2hlICYmIHRoaXMuc2RlW2NhY2hlS2V5XSkge1xuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLnNkZVtjYWNoZUtleV0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmZXRjaChwcmVmbGlnaHRIcmVmLCB7XG4gICAgICAgICAgICBtZXRob2Q6ICdIRUFEJyxcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzOiAnc2FtZS1vcmlnaW4nLFxuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICd4LW1pZGRsZXdhcmUtcHJlZmxpZ2h0JzogJzEnXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLnRoZW4oKHJlcyk9PntcbiAgICAgICAgICAgIGlmICghcmVzLm9rKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gcHJlZmxpZ2h0IHJlcXVlc3RgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVkaXJlY3Q6IHJlcy5oZWFkZXJzLmdldCgnTG9jYXRpb24nKSxcbiAgICAgICAgICAgICAgICByZWZyZXNoOiByZXMuaGVhZGVycy5oYXMoJ3gtbWlkZGxld2FyZS1yZWZyZXNoJyksXG4gICAgICAgICAgICAgICAgcmV3cml0ZTogcmVzLmhlYWRlcnMuZ2V0KCd4LW1pZGRsZXdhcmUtcmV3cml0ZScpLFxuICAgICAgICAgICAgICAgIHNzcjogISFyZXMuaGVhZGVycy5nZXQoJ3gtbWlkZGxld2FyZS1zc3InKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSkudGhlbigoZGF0YSk9PntcbiAgICAgICAgICAgIGlmIChzaG91bGRDYWNoZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2RlW2NhY2hlS2V5XSA9IGRhdGE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgICAgfSkuY2F0Y2goKGVycik9PntcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnNkZVtjYWNoZUtleV07XG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBnZXRJbml0aWFsUHJvcHMoQ29tcG9uZW50LCBjdHgpIHtcbiAgICAgICAgY29uc3QgeyBDb21wb25lbnQ6IEFwcCAgfSA9IHRoaXMuY29tcG9uZW50c1snL19hcHAnXTtcbiAgICAgICAgY29uc3QgQXBwVHJlZSA9IHRoaXMuX3dyYXBBcHAoQXBwKTtcbiAgICAgICAgY3R4LkFwcFRyZWUgPSBBcHBUcmVlO1xuICAgICAgICByZXR1cm4gKDAsIF91dGlscykubG9hZEdldEluaXRpYWxQcm9wcyhBcHAsIHtcbiAgICAgICAgICAgIEFwcFRyZWUsXG4gICAgICAgICAgICBDb21wb25lbnQsXG4gICAgICAgICAgICByb3V0ZXI6IHRoaXMsXG4gICAgICAgICAgICBjdHhcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGFib3J0Q29tcG9uZW50TG9hZChhcywgcm91dGVQcm9wcykge1xuICAgICAgICBpZiAodGhpcy5jbGMpIHtcbiAgICAgICAgICAgIFJvdXRlci5ldmVudHMuZW1pdCgncm91dGVDaGFuZ2VFcnJvcicsIGJ1aWxkQ2FuY2VsbGF0aW9uRXJyb3IoKSwgYXMsIHJvdXRlUHJvcHMpO1xuICAgICAgICAgICAgdGhpcy5jbGMoKTtcbiAgICAgICAgICAgIHRoaXMuY2xjID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBub3RpZnkoZGF0YSwgcmVzZXRTY3JvbGwpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3ViKGRhdGEsIHRoaXMuY29tcG9uZW50c1snL19hcHAnXS5Db21wb25lbnQsIHJlc2V0U2Nyb2xsKTtcbiAgICB9XG59XG5Sb3V0ZXIuZXZlbnRzID0gKDAsIF9taXR0KS5kZWZhdWx0KCk7XG5leHBvcnRzLmRlZmF1bHQgPSBSb3V0ZXI7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJvdXRlci5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJnZXREb21haW5Mb2NhbGUiLCJhZGRMb2NhbGUiLCJkZWxMb2NhbGUiLCJoYXNCYXNlUGF0aCIsImFkZEJhc2VQYXRoIiwiZGVsQmFzZVBhdGgiLCJpc0xvY2FsVVJMIiwiaW50ZXJwb2xhdGVBcyIsInJlc29sdmVIcmVmIiwiX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2giLCJyZXF1aXJlIiwiX3JvdXRlTG9hZGVyIiwiX2lzRXJyb3IiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2Rlbm9ybWFsaXplUGFnZVBhdGgiLCJfbm9ybWFsaXplTG9jYWxlUGF0aCIsIl9taXR0IiwiX3V0aWxzIiwiX2lzRHluYW1pYyIsIl9wYXJzZVJlbGF0aXZlVXJsIiwiX3F1ZXJ5c3RyaW5nIiwiX3Jlc29sdmVSZXdyaXRlcyIsIl9yb3V0ZU1hdGNoZXIiLCJfcm91dGVSZWdleCIsIl9nZXRNaWRkbGV3YXJlUmVnZXgiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGV0ZWN0RG9tYWluTG9jYWxlIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9JMThOX1NVUFBPUlQiLCJiYXNlUGF0aCIsIl9fTkVYVF9ST1VURVJfQkFTRVBBVEgiLCJidWlsZENhbmNlbGxhdGlvbkVycm9yIiwiYXNzaWduIiwiRXJyb3IiLCJjYW5jZWxsZWQiLCJhZGRQYXRoUHJlZml4IiwicGF0aCIsInByZWZpeCIsInN0YXJ0c1dpdGgiLCJwYXRobmFtZSIsInBhdGhOb1F1ZXJ5SGFzaCIsIm5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoIiwic3Vic3RyIiwibGVuZ3RoIiwibG9jYWxlIiwibG9jYWxlcyIsImRvbWFpbkxvY2FsZXMiLCJub3JtYWxpemVMb2NhbGVQYXRoIiwiZGV0ZWN0ZWRMb2NhbGUiLCJkZXRlY3RlZERvbWFpbiIsInVuZGVmaW5lZCIsImh0dHAiLCJkb21haW4iLCJkZWZhdWx0TG9jYWxlIiwicGF0aExvd2VyIiwidG9Mb3dlckNhc2UiLCJsb2NhbGVMb3dlciIsInF1ZXJ5SW5kZXgiLCJpbmRleE9mIiwiaGFzaEluZGV4Iiwic3Vic3RyaW5nIiwic2xpY2UiLCJ1cmwiLCJsb2NhdGlvbk9yaWdpbiIsImdldExvY2F0aW9uT3JpZ2luIiwicmVzb2x2ZWQiLCJVUkwiLCJvcmlnaW4iLCJfIiwicm91dGUiLCJhc1BhdGhuYW1lIiwicXVlcnkiLCJpbnRlcnBvbGF0ZWRSb3V0ZSIsImR5bmFtaWNSZWdleCIsImdldFJvdXRlUmVnZXgiLCJkeW5hbWljR3JvdXBzIiwiZ3JvdXBzIiwiZHluYW1pY01hdGNoZXMiLCJnZXRSb3V0ZU1hdGNoZXIiLCJwYXJhbXMiLCJrZXlzIiwiZXZlcnkiLCJwYXJhbSIsInJlcGVhdCIsIm9wdGlvbmFsIiwicmVwbGFjZWQiLCJBcnJheSIsImlzQXJyYXkiLCJyZXBsYWNlIiwibWFwIiwic2VnbWVudCIsImVuY29kZVVSSUNvbXBvbmVudCIsImpvaW4iLCJyZXN1bHQiLCJvbWl0UGFybXNGcm9tUXVlcnkiLCJmaWx0ZXJlZFF1ZXJ5IiwiZm9yRWFjaCIsImtleSIsImluY2x1ZGVzIiwicm91dGVyIiwiaHJlZiIsInJlc29sdmVBcyIsImJhc2UiLCJ1cmxBc1N0cmluZyIsImZvcm1hdFdpdGhWYWxpZGF0aW9uIiwidXJsUHJvdG9NYXRjaCIsIm1hdGNoIiwidXJsQXNTdHJpbmdOb1Byb3RvIiwidXJsUGFydHMiLCJzcGxpdCIsImNvbnNvbGUiLCJlcnJvciIsIm5vcm1hbGl6ZWRVcmwiLCJub3JtYWxpemVSZXBlYXRlZFNsYXNoZXMiLCJhc1BhdGgiLCJmaW5hbFVybCIsImludGVycG9sYXRlZEFzIiwiaXNEeW5hbWljUm91dGUiLCJzZWFyY2hQYXJhbXMiLCJzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5IiwiaGFzaCIsInJlc29sdmVkSHJlZiIsIl8xIiwic3RyaXBPcmlnaW4iLCJwcmVwYXJlVXJsQXMiLCJhcyIsInJlc29sdmVkQXMiLCJocmVmSGFkT3JpZ2luIiwiYXNIYWRPcmlnaW4iLCJwcmVwYXJlZFVybCIsInByZXBhcmVkQXMiLCJyZXNvbHZlRHluYW1pY1JvdXRlIiwicGFnZXMiLCJjbGVhblBhdGhuYW1lIiwicmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2giLCJkZW5vcm1hbGl6ZVBhZ2VQYXRoIiwic29tZSIsInBhZ2UiLCJyZSIsInRlc3QiLCJtYW51YWxTY3JvbGxSZXN0b3JhdGlvbiIsIl9fTkVYVF9TQ1JPTExfUkVTVE9SQVRJT04iLCJ3aW5kb3ciLCJoaXN0b3J5IiwidiIsInNlc3Npb25TdG9yYWdlIiwic2V0SXRlbSIsInJlbW92ZUl0ZW0iLCJuIiwiU1NHX0RBVEFfTk9UX0ZPVU5EIiwiU3ltYm9sIiwiZmV0Y2hSZXRyeSIsImF0dGVtcHRzIiwib3B0cyIsImZldGNoIiwiY3JlZGVudGlhbHMiLCJ0aGVuIiwicmVzIiwib2siLCJzdGF0dXMiLCJqc29uIiwiZGF0YSIsIm5vdEZvdW5kIiwidGV4dCIsImZldGNoTmV4dERhdGEiLCJkYXRhSHJlZiIsImlzU2VydmVyUmVuZGVyIiwiaW5mbGlnaHRDYWNoZSIsInBlcnNpc3RDYWNoZSIsImxvY2F0aW9uIiwiY2FjaGVLZXkiLCJlcnIiLCJtYXJrQXNzZXRFcnJvciIsIlJvdXRlciIsImluaXRpYWxQcm9wcyIsInBhZ2VMb2FkZXIiLCJBcHAiLCJ3cmFwQXBwIiwiQ29tcG9uZW50Iiwic3Vic2NyaXB0aW9uIiwiaXNGYWxsYmFjayIsImlzUHJldmlldyIsInNkYyIsInNkciIsInNkZSIsIl9pZHgiLCJvblBvcFN0YXRlIiwiZSIsInN0YXRlIiwiY2hhbmdlU3RhdGUiLCJnZXRVUkwiLCJfX04iLCJmb3JjZWRTY3JvbGwiLCJvcHRpb25zIiwiaWR4IiwiSlNPTiIsInN0cmluZ2lmeSIsIngiLCJzZWxmIiwicGFnZVhPZmZzZXQiLCJ5IiwicGFnZVlPZmZzZXQiLCJnZXRJdGVtIiwicGFyc2UiLCJwYXJzZVJlbGF0aXZlVXJsIiwiaXNTc3IiLCJfYnBzIiwiY2hhbmdlIiwic2hhbGxvdyIsIl9zaGFsbG93IiwiY29tcG9uZW50cyIsInJlZiIsImluaXRpYWwiLCJwcm9wcyIsIl9fTl9TU0ciLCJfX05fU1NQIiwiX19OX1JTQyIsIl9fbmV4dF9yc2NfXyIsInN0eWxlU2hlZXRzIiwiZXZlbnRzIiwiYXV0b0V4cG9ydER5bmFtaWMiLCJfX05FWFRfREFUQV9fIiwiYXV0b0V4cG9ydCIsInN1YiIsImNsYyIsIl93cmFwQXBwIiwiaXNSZWFkeSIsImdzc3AiLCJnaXAiLCJhcHBHaXAiLCJnc3AiLCJzZWFyY2giLCJfX05FWFRfSEFTX1JFV1JJVEVTIiwiaXNMb2NhbGVEb21haW4iLCJob3N0bmFtZSIsIl9zaG91bGRSZXNvbHZlSHJlZiIsImFkZEV2ZW50TGlzdGVuZXIiLCJzY3JvbGxSZXN0b3JhdGlvbiIsInJlbG9hZCIsImJhY2siLCJtZXRob2QiLCJzaG91bGRSZXNvbHZlSHJlZiIsIl9oIiwicHJldkxvY2FsZSIsInBhcnNlZEFzIiwibG9jYWxlUGF0aFJlc3VsdCIsImRpZE5hdmlnYXRlIiwiYXNOb0Jhc2VQYXRoIiwiUHJvbWlzZSIsIlNUIiwicGVyZm9ybWFuY2UiLCJtYXJrIiwicm91dGVQcm9wcyIsIl9pbkZsaWdodFJvdXRlIiwiYWJvcnRDb21wb25lbnRMb2FkIiwiY2xlYW5lZEFzIiwibG9jYWxlQ2hhbmdlIiwib25seUFIYXNoQ2hhbmdlIiwiZW1pdCIsInNjcm9sbFRvSGFzaCIsIm5vdGlmeSIsInBhcnNlZCIsImFsbCIsImdldFBhZ2VMaXN0IiwiZ2V0Q2xpZW50QnVpbGRNYW5pZmVzdCIsImdldE1pZGRsZXdhcmVMaXN0IiwicmV3cml0ZXMiLCJfX3Jld3JpdGVzIiwidXJsSXNOZXciLCJyZXdyaXRlc1Jlc3VsdCIsInAiLCJtYXRjaGVkUGFnZSIsIl9wcmVmbGlnaHRSZXF1ZXN0IiwiY2FjaGUiLCJlZmZlY3QiLCJ0eXBlIiwibmV3QXMiLCJuZXdVcmwiLCJkZXN0aW5hdGlvbiIsInJvdXRlUmVnZXgiLCJyb3V0ZU1hdGNoIiwic2hvdWxkSW50ZXJwb2xhdGUiLCJtaXNzaW5nUGFyYW1zIiwiZmlsdGVyIiwid2FybiIsImdldFJvdXRlSW5mbyIsInJvdXRlSW5mbyIsInBhZ2VQcm9wcyIsIl9fTl9SRURJUkVDVCIsIl9fTl9SRURJUkVDVF9CQVNFX1BBVEgiLCJwYXJzZWRIcmVmIiwiX19OX1BSRVZJRVciLCJmZXRjaENvbXBvbmVudCIsIm5vdEZvdW5kUm91dGUiLCJyZWYxIiwic3RhdHVzQ29kZSIsImlzVmFsaWRTaGFsbG93Um91dGUiLCJzaG91bGRTY3JvbGwiLCJfc2Nyb2xsIiwic2Nyb2xsIiwicmVzZXRTY3JvbGwiLCJzZXQiLCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIsImxhbmciLCJsb2FkRXJyb3JGYWlsIiwiaXNBc3NldEVycm9yIiwiZ2V0SW5pdGlhbFByb3BzIiwiaGFuZGxlUm91dGVJbmZvRXJyb3IiLCJleGlzdGluZ1JvdXRlSW5mbyIsImNhY2hlZFJvdXRlSW5mbyIsIm1vZCIsImlzVmFsaWRFbGVtZW50VHlwZSIsImdldERhdGFIcmVmIiwic3NnIiwicnNjIiwiX2dldERhdGEiLCJfZ2V0RmxpZ2h0RGF0YSIsImZyZXNoIiwiX19mbGlnaHRfc2VyaWFsaXplZF9fIiwiX19mbGlnaHRfZnJlc2hfXyIsImNiIiwib2xkVXJsTm9IYXNoIiwib2xkSGFzaCIsIm5ld1VybE5vSGFzaCIsIm5ld0hhc2giLCJzY3JvbGxUbyIsImlkRWwiLCJnZXRFbGVtZW50QnlJZCIsInNjcm9sbEludG9WaWV3IiwibmFtZUVsIiwiZ2V0RWxlbWVudHNCeU5hbWUiLCJlZmZlY3RzIiwiX2lzU3NnIiwiaXNTc2ciLCJwcmlvcml0eSIsImNhbmNlbCIsImhhbmRsZUNhbmNlbGxlZCIsImxvYWRQYWdlIiwiY29tcG9uZW50UmVzdWx0IiwiZm4iLCJyZXNvbHZlIiwic2VyaWFsaXplZCIsImZucyIsInJlcXVpcmVzUHJlZmxpZ2h0IiwibWlkZGxld2FyZSIsImlzU1NSIiwiZ2V0TWlkZGxld2FyZVJlZ2V4IiwiX2dldFByZWZsaWdodERhdGEiLCJwcmVmbGlnaHRIcmVmIiwic2hvdWxkQ2FjaGUiLCJwcmVmbGlnaHQiLCJyZXdyaXRlIiwiZnNQYXRobmFtZSIsInJlZGlyZWN0IiwiY2xlYW5SZWRpcmVjdCIsInJlZnJlc2giLCJzc3IiLCJoZWFkZXJzIiwiZ2V0IiwiaGFzIiwiY3R4IiwiQXBwVHJlZSIsImxvYWRHZXRJbml0aWFsUHJvcHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/router.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/format-url.js": +/*!**********************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/format-url.js ***! + \**********************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.formatUrl = formatUrl;\n\nvar querystring = _interopRequireWildcard(__webpack_require__(/*! ./querystring */ \"./node_modules/next/dist/shared/lib/router/utils/querystring.js\"));\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n return newObj;\n }\n}\n\nvar slashedProtocols = /https?|ftp|gopher|file/;\n\nfunction formatUrl(urlObj) {\n var auth = urlObj.auth,\n hostname = urlObj.hostname;\n var protocol = urlObj.protocol || '';\n var pathname = urlObj.pathname || '';\n var hash = urlObj.hash || '';\n var query = urlObj.query || '';\n var host = false;\n auth = auth ? encodeURIComponent(auth).replace(/%3A/i, ':') + '@' : '';\n\n if (urlObj.host) {\n host = auth + urlObj.host;\n } else if (hostname) {\n host = auth + (~hostname.indexOf(':') ? \"[\".concat(hostname, \"]\") : hostname);\n\n if (urlObj.port) {\n host += ':' + urlObj.port;\n }\n }\n\n if (query && typeof query === 'object') {\n query = String(querystring.urlQueryToSearchParams(query));\n }\n\n var search = urlObj.search || query && \"?\".concat(query) || '';\n if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\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\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 \"\".concat(protocol).concat(host).concat(pathname).concat(search).concat(hash);\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Zvcm1hdC11cmwuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxpQkFBQSxHQUFvQkUsU0FBcEI7O0FBQ0EsSUFBSUMsV0FBVyxHQUFHQyx1QkFBdUIsQ0FBQ0MsbUJBQU8sQ0FBQyxzRkFBRCxDQUFSLENBQXpDOztBQUNBLFNBQVNELHVCQUFULENBQWlDRSxHQUFqQyxFQUFzQztBQUNsQyxNQUFJQSxHQUFHLElBQUlBLEdBQUcsQ0FBQ0MsVUFBZixFQUEyQjtBQUN2QixXQUFPRCxHQUFQO0FBQ0gsR0FGRCxNQUVPO0FBQ0gsUUFBSUUsTUFBTSxHQUFHLEVBQWI7O0FBRUEsUUFBSUYsR0FBRyxJQUFJLElBQVgsRUFBaUI7QUFDYixXQUFJLElBQUlHLEdBQVIsSUFBZUgsR0FBZixFQUFtQjtBQUNmLFlBQUlSLE1BQU0sQ0FBQ1ksU0FBUCxDQUFpQkMsY0FBakIsQ0FBZ0NDLElBQWhDLENBQXFDTixHQUFyQyxFQUEwQ0csR0FBMUMsQ0FBSixFQUFvRDtBQUNoRCxjQUFJSSxJQUFJLEdBQUdmLE1BQU0sQ0FBQ0MsY0FBUCxJQUF5QkQsTUFBTSxDQUFDZ0Isd0JBQWhDLEdBQTJEaEIsTUFBTSxDQUFDZ0Isd0JBQVAsQ0FBZ0NSLEdBQWhDLEVBQXFDRyxHQUFyQyxDQUEzRCxHQUF1RyxFQUFsSDs7QUFFQSxjQUFJSSxJQUFJLENBQUNFLEdBQUwsSUFBWUYsSUFBSSxDQUFDRyxHQUFyQixFQUEwQjtBQUN0QmxCLFlBQUFBLE1BQU0sQ0FBQ0MsY0FBUCxDQUFzQlMsTUFBdEIsRUFBOEJDLEdBQTlCLEVBQW1DSSxJQUFuQztBQUNILFdBRkQsTUFFTztBQUNITCxZQUFBQSxNQUFNLENBQUNDLEdBQUQsQ0FBTixHQUFjSCxHQUFHLENBQUNHLEdBQUQsQ0FBakI7QUFDSDtBQUNKO0FBQ0o7QUFD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LG1CQUFVTixRQUFWLFNBQXFCSSxJQUFyQixTQUE0QkgsUUFBNUIsU0FBdUNVLE1BQXZDLFNBQWdEVCxJQUFoRDtBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZm9ybWF0LXVybC5qcz83YjUzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5mb3JtYXRVcmwgPSBmb3JtYXRVcmw7XG52YXIgcXVlcnlzdHJpbmcgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwiLi9xdWVyeXN0cmluZ1wiKSk7XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHtcbiAgICBpZiAob2JqICYmIG9iai5fX2VzTW9kdWxlKSB7XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIG5ld09iaiA9IHtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKG9iaiAhPSBudWxsKSB7XG4gICAgICAgICAgICBmb3IodmFyIGtleSBpbiBvYmope1xuICAgICAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBkZXNjID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IHtcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3T2JqW2tleV0gPSBvYmpba2V5XTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBuZXdPYmouZGVmYXVsdCA9IG9iajtcbiAgICAgICAgcmV0dXJuIG5ld09iajtcbiAgICB9XG59XG5jb25zdCBzbGFzaGVkUHJvdG9jb2xzID0gL2h0dHBzP3xmdHB8Z29waGVyfGZpbGUvO1xuZnVuY3Rpb24gZm9ybWF0VXJsKHVybE9iaikge1xuICAgIGxldCB7IGF1dGggLCBob3N0bmFtZSAgfSA9IHVybE9iajtcbiAgICBsZXQgcHJvdG9jb2wgPSB1cmxPYmoucHJvdG9jb2wgfHwgJyc7XG4gICAgbGV0IHBhdGhuYW1lID0gdXJsT2JqLnBhdGhuYW1lIHx8ICcnO1xuICAgIGxldCBoYXNoID0gdXJsT2JqLmhhc2ggfHwgJyc7XG4gICAgbGV0IHF1ZXJ5ID0gdXJsT2JqLnF1ZXJ5IHx8ICcnO1xuICAgIGxldCBob3N0ID0gZmFsc2U7XG4gICAgYXV0aCA9IGF1dGggPyBlbmNvZGVVUklDb21wb25lbnQoYXV0aCkucmVwbGFjZSgvJTNBL2ksICc6JykgKyAnQCcgOiAnJztcbiAgICBpZiAodXJsT2JqLmhvc3QpIHtcbiAgICAgICAgaG9zdCA9IGF1dGggKyB1cmxPYmouaG9zdDtcbiAgICB9IGVsc2UgaWYgKGhvc3RuYW1lKSB7XG4gICAgICAgIGhvc3QgPSBhdXRoICsgKH5ob3N0bmFtZS5pbmRleE9mKCc6JykgPyBgWyR7aG9zdG5hbWV9XWAgOiBob3N0bmFtZSk7XG4gICAgICAgIGlmICh1cmxPYmoucG9ydCkge1xuICAgICAgICAgICAgaG9zdCArPSAnOicgKyB1cmxPYmoucG9ydDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAocXVlcnkgJiYgdHlwZW9mIHF1ZXJ5ID09PSAnb2JqZWN0Jykge1xuICAgICAgICBxdWVyeSA9IFN0cmluZyhxdWVyeXN0cmluZy51cmxRdWVyeVRvU2VhcmNoUGFyYW1zKHF1ZXJ5KSk7XG4gICAgfVxuICAgIGxldCBzZWFyY2ggPSB1cmxPYmouc2VhcmNoIHx8IHF1ZXJ5ICYmIGA/JHtxdWVyeX1gIHx8ICcnO1xuICAgIGlmIChwcm90b2NvbCAmJiBwcm90b2NvbC5zdWJzdHIoLTEpICE9PSAnOicpIHByb3RvY29sICs9ICc6JztcbiAgICBpZiAodXJsT2JqLnNsYXNoZXMgfHwgKCFwcm90b2NvbCB8fCBzbGFzaGVkUHJvdG9jb2xzLnRlc3QocHJvdG9jb2wpKSAmJiBob3N0ICE9PSBmYWxzZSkge1xuICAgICAgICBob3N0ID0gJy8vJyArIChob3N0IHx8ICcnKTtcbiAgICAgICAgaWYgKHBhdGhuYW1lICYmIHBhdGhuYW1lWzBdICE9PSAnLycpIHBhdGhuYW1lID0gJy8nICsgcGF0aG5hbWU7XG4gICAgfSBlbHNlIGlmICghaG9zdCkge1xuICAgICAgICBob3N0ID0gJyc7XG4gICAgfVxuICAgIGlmIChoYXNoICYmIGhhc2hbMF0gIT09ICcjJykgaGFzaCA9ICcjJyArIGhhc2g7XG4gICAgaWYgKHNlYXJjaCAmJiBzZWFyY2hbMF0gIT09ICc/Jykgc2VhcmNoID0gJz8nICsgc2VhcmNoO1xuICAgIHBhdGhuYW1lID0gcGF0aG5hbWUucmVwbGFjZSgvWz8jXS9nLCBlbmNvZGVVUklDb21wb25lbnQpO1xuICAgIHNlYXJjaCA9IHNlYXJjaC5yZXBsYWNlKCcjJywgJyUyMycpO1xuICAgIHJldHVybiBgJHtwcm90b2NvbH0ke2hvc3R9JHtwYXRobmFtZX0ke3NlYXJjaH0ke2hhc2h9YDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Zm9ybWF0LXVybC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJmb3JtYXRVcmwiLCJxdWVyeXN0cmluZyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIm9iaiIsIl9fZXNNb2R1bGUiLCJuZXdPYmoiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZ2V0Iiwic2V0Iiwic2xhc2hlZFByb3RvY29scyIsInVybE9iaiIsImF1dGgiLCJob3N0bmFtZSIsInByb3RvY29sIiwicGF0aG5hbWUiLCJoYXNoIiwicXVlcnkiLCJob3N0IiwiZW5jb2RlVVJJQ29tcG9uZW50IiwicmVwbGFjZSIsImluZGV4T2YiLCJwb3J0IiwiU3RyaW5nIiwidXJsUXVlcnlUb1NlYXJjaFBhcmFtcyIsInNlYXJjaCIsInN1YnN0ciIsInNsYXNoZXMiLCJ0ZXN0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/format-url.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/get-asset-path-from-route.js": +/*!*************************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/get-asset-path-from-route.js ***! + \*************************************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = getAssetPathFromRoute;\n\nfunction getAssetPathFromRoute(route) {\n var ext = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var path = route === '/' ? '/index' : /^\\/index(\\/|$)/.test(route) ? \"/index\".concat(route) : \"\".concat(route);\n return path + ext;\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2dldC1hc3NldC1wYXRoLWZyb20tcm91dGUuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxrQkFBQSxHQUFrQkUscUJBQWxCOztBQUNBLFNBQVNBLHFCQUFULENBQStCQyxLQUEvQixFQUFnRDtBQUFBLE1BQVZDLEdBQVUsdUVBQUosRUFBSTtBQUM1QyxNQUFNQyxJQUFJLEdBQUdGLEtBQUssS0FBSyxHQUFWLEdBQWdCLFFBQWhCLEdBQTJCLGlCQUFpQkcsSUFBakIsQ0FBc0JILEtBQXRCLG9CQUF3Q0EsS0FBeEMsY0FBcURBLEtBQXJELENBQXhDO0FBQ0EsU0FBT0UsSUFBSSxHQUFHRCxHQUFkO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zaGFyZWQvbGliL3JvdXRlci91dGlscy9nZXQtYXNzZXQtcGF0aC1mcm9tLXJvdXRlLmpzP2E2ZmYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSBnZXRBc3NldFBhdGhGcm9tUm91dGU7XG5mdW5jdGlvbiBnZXRBc3NldFBhdGhGcm9tUm91dGUocm91dGUsIGV4dCA9ICcnKSB7XG4gICAgY29uc3QgcGF0aCA9IHJvdXRlID09PSAnLycgPyAnL2luZGV4JyA6IC9eXFwvaW5kZXgoXFwvfCQpLy50ZXN0KHJvdXRlKSA/IGAvaW5kZXgke3JvdXRlfWAgOiBgJHtyb3V0ZX1gO1xuICAgIHJldHVybiBwYXRoICsgZXh0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1nZXQtYXNzZXQtcGF0aC1mcm9tLXJvdXRlLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImdldEFzc2V0UGF0aEZyb21Sb3V0ZSIsInJvdXRlIiwiZXh0IiwicGF0aCIsInRlc3QiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/get-asset-path-from-route.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/get-middleware-regex.js": +/*!********************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/get-middleware-regex.js ***! + \********************************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.getMiddlewareRegex = getMiddlewareRegex;\n\nvar _routeRegex = __webpack_require__(/*! ./route-regex */ \"./node_modules/next/dist/shared/lib/router/utils/route-regex.js\");\n\nfunction getMiddlewareRegex(normalizedRoute) {\n var catchAll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var result = (0, _routeRegex).getParametrizedRoute(normalizedRoute);\n var catchAllRegex = catchAll ? '(?!_next).*' : '';\n var catchAllGroupedRegex = catchAll ? '(?:(/.*)?)' : '';\n\n if ('routeKeys' in result) {\n if (result.parameterizedRoute === '/') {\n return {\n groups: {},\n namedRegex: \"^/\".concat(catchAllRegex, \"$\"),\n re: new RegExp(\"^/\".concat(catchAllRegex, \"$\")),\n routeKeys: {}\n };\n }\n\n return {\n groups: result.groups,\n namedRegex: \"^\".concat(result.namedParameterizedRoute).concat(catchAllGroupedRegex, \"$\"),\n re: new RegExp(\"^\".concat(result.parameterizedRoute).concat(catchAllGroupedRegex, \"$\")),\n routeKeys: result.routeKeys\n };\n }\n\n if (result.parameterizedRoute === '/') {\n return {\n groups: {},\n re: new RegExp(\"^/\".concat(catchAllRegex, \"$\"))\n };\n }\n\n return {\n groups: {},\n re: new RegExp(\"^\".concat(result.parameterizedRoute).concat(catchAllGroupedRegex, \"$\"))\n };\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2dldC1taWRkbGV3YXJlLXJlZ2V4LmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7QUFDYkEsOENBQTZDO0FBQ3pDRyxFQUFBQSxLQUFLLEVBQUU7QUFEa0MsQ0FBN0M7QUFHQUQsMEJBQUEsR0FBNkJFLGtCQUE3Qjs7QUFDQSxJQUFJQyxXQUFXLEdBQUdDLG1CQUFPLENBQUMsc0ZBQUQsQ0FBekI7O0FBQ0EsU0FBU0Ysa0JBQVQsQ0FBNEJHLGVBQTVCLEVBQThEO0FBQUEsTUFBakJDLFFBQWlCLHVFQUFOLElBQU07QUFDMUQsTUFBTUMsTUFBTSxHQUFHLENBQUMsR0FBR0osV0FBSixFQUFpQkssb0JBQWpCLENBQXNDSCxlQUF0QyxDQUFmO0FBQ0EsTUFBSUksYUFBYSxHQUFHSCxRQUFRLEdBQUcsYUFBSCxHQUFtQixFQUEvQztBQUNBLE1BQUlJLG9CQUFvQixHQUFHSixRQUFRLEdBQUcsWUFBSCxHQUFrQixFQUFyRDs7QUFDQSxNQUFJLGVBQWVDLE1BQW5CLEVBQTJCO0FBQ3ZCLFFBQUlBLE1BQU0sQ0FBQ0ksa0JBQVAsS0FBOEIsR0FBbEMsRUFBdUM7QUFDbkMsYUFBTztBQUNIQyxRQUFBQSxNQUFNLEVBQUUsRUFETDtBQUdIQyxRQUFBQSxVQUFVLGNBQU9KLGFBQVAsTUFIUDtBQUlISyxRQUFBQSxFQUFFLEVBQUUsSUFBSUMsTUFBSixhQUFnQk4sYUFBaEIsT0FKRDtBQUtITyxRQUFBQSxTQUFTLEVBQUU7QUFMUixPQUFQO0FBUUg7O0FBQ0QsV0FBTztBQUNISixNQUFBQSxNQUFNLEVBQUVMLE1BQU0sQ0FBQ0ssTUFEWjtBQUVIQyxNQUFBQSxVQUFVLGFBQU1OLE1BQU0sQ0FBQ1UsdUJBQWIsU0FBdUNQLG9CQUF2QyxNQUZQO0FBR0hJLE1BQUFBLEVBQUUsRUFBRSxJQUFJQyxNQUFKLFlBQWVSLE1BQU0sQ0FBQ0ksa0JBQXRCLFNBQTJDRCxvQkFBM0MsT0FIRDtBQUlITSxNQUFBQSxTQUFTLEVBQUVULE1BQU0sQ0FBQ1M7QUFKZixLQUFQO0FBTUg7O0FBQ0QsTUFBSVQsTUFBTSxDQUFDSSxrQkFBUCxLQUE4QixHQUFsQyxFQUF1QztBQUNuQyxXQUFPO0FBQ0hDLE1BQUFBLE1BQU0sRUFBRSxFQURMO0FBR0hFLE1BQUFBLEVBQUUsRUFBRSxJQUFJQyxNQUFKLGFBQWdCTixhQUFoQjtBQUhELEtBQVA7QUFLSDs7QUFDRCxTQUFPO0FBQ0hHLElBQUFBLE1BQU0sRUFBRSxFQURMO0FBR0hFLElBQUFBLEVBQUUsRUFBRSxJQUFJQyxNQUFKLFlBQWVSLE1BQU0sQ0FBQ0ksa0JBQXRCLFNBQTJDRCxvQkFBM0M7QUFIRCxHQUFQO0FBS0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zaGFyZWQvbGliL3JvdXRlci91dGlscy9nZXQtbWlkZGxld2FyZS1yZWdleC5qcz8wNDUyIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5nZXRNaWRkbGV3YXJlUmVnZXggPSBnZXRNaWRkbGV3YXJlUmVnZXg7XG52YXIgX3JvdXRlUmVnZXggPSByZXF1aXJlKFwiLi9yb3V0ZS1yZWdleFwiKTtcbmZ1bmN0aW9uIGdldE1pZGRsZXdhcmVSZWdleChub3JtYWxpemVkUm91dGUsIGNhdGNoQWxsID0gdHJ1ZSkge1xuICAgIGNvbnN0IHJlc3VsdCA9ICgwLCBfcm91dGVSZWdleCkuZ2V0UGFyYW1ldHJpemVkUm91dGUobm9ybWFsaXplZFJvdXRlKTtcbiAgICBsZXQgY2F0Y2hBbGxSZWdleCA9IGNhdGNoQWxsID8gJyg/IV9uZXh0KS4qJyA6ICcnO1xuICAgIGxldCBjYXRjaEFsbEdyb3VwZWRSZWdleCA9IGNhdGNoQWxsID8gJyg/OigvLiopPyknIDogJyc7XG4gICAgaWYgKCdyb3V0ZUtleXMnIGluIHJlc3VsdCkge1xuICAgICAgICBpZiAocmVzdWx0LnBhcmFtZXRlcml6ZWRSb3V0ZSA9PT0gJy8nKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGdyb3Vwczoge1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgbmFtZWRSZWdleDogYF4vJHtjYXRjaEFsbFJlZ2V4fSRgLFxuICAgICAgICAgICAgICAgIHJlOiBuZXcgUmVnRXhwKGBeLyR7Y2F0Y2hBbGxSZWdleH0kYCksXG4gICAgICAgICAgICAgICAgcm91dGVLZXlzOiB7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZ3JvdXBzOiByZXN1bHQuZ3JvdXBzLFxuICAgICAgICAgICAgbmFtZWRSZWdleDogYF4ke3Jlc3VsdC5uYW1lZFBhcmFtZXRlcml6ZWRSb3V0ZX0ke2NhdGNoQWxsR3JvdXBlZFJlZ2V4fSRgLFxuICAgICAgICAgICAgcmU6IG5ldyBSZWdFeHAoYF4ke3Jlc3VsdC5wYXJhbWV0ZXJpemVkUm91dGV9JHtjYXRjaEFsbEdyb3VwZWRSZWdleH0kYCksXG4gICAgICAgICAgICByb3V0ZUtleXM6IHJlc3VsdC5yb3V0ZUtleXNcbiAgICAgICAgfTtcbiAgICB9XG4gICAgaWYgKHJlc3VsdC5wYXJhbWV0ZXJpemVkUm91dGUgPT09ICcvJykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZ3JvdXBzOiB7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmU6IG5ldyBSZWdFeHAoYF4vJHtjYXRjaEFsbFJlZ2V4fSRgKVxuICAgICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBncm91cHM6IHtcbiAgICAgICAgfSxcbiAgICAgICAgcmU6IG5ldyBSZWdFeHAoYF4ke3Jlc3VsdC5wYXJhbWV0ZXJpemVkUm91dGV9JHtjYXRjaEFsbEdyb3VwZWRSZWdleH0kYClcbiAgICB9O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1nZXQtbWlkZGxld2FyZS1yZWdleC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJnZXRNaWRkbGV3YXJlUmVnZXgiLCJfcm91dGVSZWdleCIsInJlcXVpcmUiLCJub3JtYWxpemVkUm91dGUiLCJjYXRjaEFsbCIsInJlc3VsdCIsImdldFBhcmFtZXRyaXplZFJvdXRlIiwiY2F0Y2hBbGxSZWdleCIsImNhdGNoQWxsR3JvdXBlZFJlZ2V4IiwicGFyYW1ldGVyaXplZFJvdXRlIiwiZ3JvdXBzIiwibmFtZWRSZWdleCIsInJlIiwiUmVnRXhwIiwicm91dGVLZXlzIiwibmFtZWRQYXJhbWV0ZXJpemVkUm91dGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/get-middleware-regex.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js": +/*!**********************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js ***! + \**********************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.isDynamicRoute = isDynamicRoute; // Identify /[param]/ in route string\n\nvar TEST_ROUTE = /\\/\\[[^/]+?\\](?=\\/|$)/;\n\nfunction isDynamicRoute(route) {\n return TEST_ROUTE.test(route);\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWR5bmFtaWMuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxzQkFBQSxHQUF5QkUsY0FBekIsRUFDQTs7QUFDQSxJQUFNQyxVQUFVLEdBQUcsc0JBQW5COztBQUNBLFNBQVNELGNBQVQsQ0FBd0JFLEtBQXhCLEVBQStCO0FBQzNCLFNBQU9ELFVBQVUsQ0FBQ0UsSUFBWCxDQUFnQkQsS0FBaEIsQ0FBUDtBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaXMtZHluYW1pYy5qcz80NmY5Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5pc0R5bmFtaWNSb3V0ZSA9IGlzRHluYW1pY1JvdXRlO1xuLy8gSWRlbnRpZnkgL1twYXJhbV0vIGluIHJvdXRlIHN0cmluZ1xuY29uc3QgVEVTVF9ST1VURSA9IC9cXC9cXFtbXi9dKz9cXF0oPz1cXC98JCkvO1xuZnVuY3Rpb24gaXNEeW5hbWljUm91dGUocm91dGUpIHtcbiAgICByZXR1cm4gVEVTVF9ST1VURS50ZXN0KHJvdXRlKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXMtZHluYW1pYy5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJpc0R5bmFtaWNSb3V0ZSIsIlRFU1RfUk9VVEUiLCJyb3V0ZSIsInRlc3QiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js": +/*!******************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js ***! + \******************************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.parseRelativeUrl = parseRelativeUrl;\n\nvar _utils = __webpack_require__(/*! ../../utils */ \"./node_modules/next/dist/shared/lib/utils.js\");\n\nvar _querystring = __webpack_require__(/*! ./querystring */ \"./node_modules/next/dist/shared/lib/router/utils/querystring.js\");\n\nfunction parseRelativeUrl(url, base) {\n var globalBase = new URL( false ? 0 : (0, _utils).getLocationOrigin());\n var resolvedBase = base ? new URL(base, globalBase) : globalBase;\n\n var _URL = new URL(url, resolvedBase),\n pathname = _URL.pathname,\n searchParams = _URL.searchParams,\n search = _URL.search,\n hash = _URL.hash,\n href = _URL.href,\n origin = _URL.origin;\n\n if (origin !== globalBase.origin) {\n throw new Error(\"invariant: invalid relative URL, router received \".concat(url));\n }\n\n return {\n pathname: pathname,\n query: (0, _querystring).searchParamsToUrlQuery(searchParams),\n search: search,\n hash: hash,\n href: href.slice(globalBase.origin.length)\n };\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhcnNlLXJlbGF0aXZlLXVybC5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELHdCQUFBLEdBQTJCRSxnQkFBM0I7O0FBQ0EsSUFBSUMsTUFBTSxHQUFHQyxtQkFBTyxDQUFDLGlFQUFELENBQXBCOztBQUNBLElBQUlDLFlBQVksR0FBR0QsbUJBQU8sQ0FBQyxzRkFBRCxDQUExQjs7QUFDQSxTQUFTRixnQkFBVCxDQUEwQkksR0FBMUIsRUFBK0JDLElBQS9CLEVBQXFDO0FBQ2pDLE1BQU1DLFVBQVUsR0FBRyxJQUFJQyxHQUFKLENBQVEsU0FBZ0MsQ0FBaEMsR0FBNkMsQ0FBQyxHQUFHTixNQUFKLEVBQVlPLGlCQUFaLEVBQXJELENBQW5CO0FBQ0EsTUFBTUMsWUFBWSxHQUFHSixJQUFJLEdBQUcsSUFBSUUsR0FBSixDQUFRRixJQUFSLEVBQWNDLFVBQWQsQ0FBSCxHQUErQkEsVUFBeEQ7O0FBQ0EsYUFBcUUsSUFBSUMsR0FBSixDQUFRSCxHQUFSLEVBQWFLLFlBQWIsQ0FBckU7QUFBQSxNQUFRQyxRQUFSLFFBQVFBLFFBQVI7QUFBQSxNQUFtQkMsWUFBbkIsUUFBbUJBLFlBQW5CO0FBQUEsTUFBa0NDLE1BQWxDLFFBQWtDQSxNQUFsQztBQUFBLE1BQTJDQyxJQUEzQyxRQUEyQ0EsSUFBM0M7QUFBQSxNQUFrREMsSUFBbEQsUUFBa0RBLElBQWxEO0FBQUEsTUFBeURDLE1BQXpELFFBQXlEQSxNQUF6RDs7QUFDQSxNQUFJQSxNQUFNLEtBQUtULFVBQVUsQ0FBQ1MsTUFBMUIsRUFBa0M7QUFDOUIsVUFBTSxJQUFJQyxLQUFKLDREQUE4RFosR0FBOUQsRUFBTjtBQUNIOztBQUNELFNBQU87QUFDSE0sSUFBQUEsUUFBUSxFQUFSQSxRQURHO0FBRUhPLElBQUFBLEtBQUssRUFBRSxDQUFDLEdBQUdkLFlBQUosRUFBa0JlLHNCQUFsQixDQUF5Q1AsWUFBekMsQ0FGSjtBQUdIQyxJQUFBQSxNQUFNLEVBQU5BLE1BSEc7QUFJSEMsSUFBQUEsSUFBSSxFQUFKQSxJQUpHO0FBS0hDLElBQUFBLElBQUksRUFBRUEsSUFBSSxDQUFDSyxLQUFMLENBQVdiLFVBQVUsQ0FBQ1MsTUFBWCxDQUFrQkssTUFBN0I7QUFMSCxHQUFQO0FBT0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zaGFyZWQvbGliL3JvdXRlci91dGlscy9wYXJzZS1yZWxhdGl2ZS11cmwuanM/NGVkZiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMucGFyc2VSZWxhdGl2ZVVybCA9IHBhcnNlUmVsYXRpdmVVcmw7XG52YXIgX3V0aWxzID0gcmVxdWlyZShcIi4uLy4uL3V0aWxzXCIpO1xudmFyIF9xdWVyeXN0cmluZyA9IHJlcXVpcmUoXCIuL3F1ZXJ5c3RyaW5nXCIpO1xuZnVuY3Rpb24gcGFyc2VSZWxhdGl2ZVVybCh1cmwsIGJhc2UpIHtcbiAgICBjb25zdCBnbG9iYWxCYXNlID0gbmV3IFVSTCh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyA/ICdodHRwOi8vbicgOiAoMCwgX3V0aWxzKS5nZXRMb2NhdGlvbk9yaWdpbigpKTtcbiAgICBjb25zdCByZXNvbHZlZEJhc2UgPSBiYXNlID8gbmV3IFVSTChiYXNlLCBnbG9iYWxCYXNlKSA6IGdsb2JhbEJhc2U7XG4gICAgY29uc3QgeyBwYXRobmFtZSAsIHNlYXJjaFBhcmFtcyAsIHNlYXJjaCAsIGhhc2ggLCBocmVmICwgb3JpZ2luICB9ID0gbmV3IFVSTCh1cmwsIHJlc29sdmVkQmFzZSk7XG4gICAgaWYgKG9yaWdpbiAhPT0gZ2xvYmFsQmFzZS5vcmlnaW4pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhcmlhbnQ6IGludmFsaWQgcmVsYXRpdmUgVVJMLCByb3V0ZXIgcmVjZWl2ZWQgJHt1cmx9YCk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHBhdGhuYW1lLFxuICAgICAgICBxdWVyeTogKDAsIF9xdWVyeXN0cmluZykuc2VhcmNoUGFyYW1zVG9VcmxRdWVyeShzZWFyY2hQYXJhbXMpLFxuICAgICAgICBzZWFyY2gsXG4gICAgICAgIGhhc2gsXG4gICAgICAgIGhyZWY6IGhyZWYuc2xpY2UoZ2xvYmFsQmFzZS5vcmlnaW4ubGVuZ3RoKVxuICAgIH07XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBhcnNlLXJlbGF0aXZlLXVybC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJwYXJzZVJlbGF0aXZlVXJsIiwiX3V0aWxzIiwicmVxdWlyZSIsIl9xdWVyeXN0cmluZyIsInVybCIsImJhc2UiLCJnbG9iYWxCYXNlIiwiVVJMIiwiZ2V0TG9jYXRpb25PcmlnaW4iLCJyZXNvbHZlZEJhc2UiLCJwYXRobmFtZSIsInNlYXJjaFBhcmFtcyIsInNlYXJjaCIsImhhc2giLCJocmVmIiwib3JpZ2luIiwiRXJyb3IiLCJxdWVyeSIsInNlYXJjaFBhcmFtc1RvVXJsUXVlcnkiLCJzbGljZSIsImxlbmd0aCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/querystring.js": +/*!***********************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/querystring.js ***! + \***********************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _slicedToArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.searchParamsToUrlQuery = searchParamsToUrlQuery;\nexports.urlQueryToSearchParams = urlQueryToSearchParams;\nexports.assign = assign;\n\nfunction searchParamsToUrlQuery(searchParams) {\n var query = {};\n searchParams.forEach(function (value, key) {\n if (typeof query[key] === 'undefined') {\n query[key] = value;\n } else if (Array.isArray(query[key])) {\n query[key].push(value);\n } else {\n query[key] = [query[key], value];\n }\n });\n return query;\n}\n\nfunction stringifyUrlQueryParam(param) {\n if (typeof param === 'string' || typeof param === 'number' && !isNaN(param) || typeof param === 'boolean') {\n return String(param);\n } else {\n return '';\n }\n}\n\nfunction urlQueryToSearchParams(urlQuery) {\n var result = new URLSearchParams();\n Object.entries(urlQuery).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n\n if (Array.isArray(value)) {\n value.forEach(function (item) {\n return result.append(key, stringifyUrlQueryParam(item));\n });\n } else {\n result.set(key, stringifyUrlQueryParam(value));\n }\n });\n return result;\n}\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\n searchParamsList.forEach(function (searchParams) {\n Array.from(searchParams.keys()).forEach(function (key) {\n return target[\"delete\"](key);\n });\n searchParams.forEach(function (value, key) {\n return target.append(key, value);\n });\n });\n return target;\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3F1ZXJ5c3RyaW5nLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7OztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCw4QkFBQSxHQUFpQ0Usc0JBQWpDO0FBQ0FGLDhCQUFBLEdBQWlDRyxzQkFBakM7QUFDQUgsY0FBQSxHQUFpQkksTUFBakI7O0FBQ0EsU0FBU0Ysc0JBQVQsQ0FBZ0NHLFlBQWhDLEVBQThDO0FBQzFDLE1BQU1DLEtBQUssR0FBRyxFQUFkO0FBRUFELEVBQUFBLFlBQVksQ0FBQ0UsT0FBYixDQUFxQixVQUFDTixLQUFELEVBQVFPLEdBQVIsRUFBYztBQUMvQixRQUFJLE9BQU9GLEtBQUssQ0FBQ0UsR0FBRCxDQUFaLEtBQXNCLFdBQTFCLEVBQXVDO0FBQ25DRixNQUFBQSxLQUFLLENBQUNFLEdBQUQsQ0FBTCxHQUFhUCxLQUFiO0FBQ0gsS0FGRCxNQUVPLElBQUlRLEtBQUssQ0FBQ0MsT0FBTixDQUFjSixLQUFLLENBQUNFLEdBQUQsQ0FBbkIsQ0FBSixFQUErQjtBQUNsQ0YsTUFBQUEsS0FBSyxDQUFDRSxHQUFELENBQUwsQ0FBV0csSUFBWCxDQUFnQlYsS0FBaEI7QUFDSCxLQUZNLE1BRUE7QUFDSEssTUFBQUEsS0FBSyxDQUFDRSxHQUFELENBQUwsR0FBYSxDQUNURixLQUFLLENBQUNFLEdBQUQsQ0FESSxFQUVUUCxLQUZTLENBQWI7QUFJSDtBQUNKLEdBWEQ7QUFZQSxTQUFPSyxLQUFQO0FBQ0g7O0FBQ0QsU0FBU00sc0JBQVQsQ0FBZ0NDLEtBQWhDLEVBQXVDO0FBQ25DLE1BQUksT0FBT0EsS0FBUCxLQUFpQixRQUFqQixJQUE2QixPQUFPQSxLQUFQLEtBQWlCLFFBQWpCLElBQTZCLENBQUNDLEtBQUssQ0FBQ0QsS0FBRCxDQUFoRSxJQUEyRSxPQUFPQSxLQUFQLEtBQWlCLFNBQWhHLEVBQTJHO0FBQ3ZHLFdBQU9FLE1BQU0sQ0FBQ0YsS0FBRCxDQUFiO0FBQ0gsR0FGRCxNQUVPO0FBQ0gsV0FBTyxFQUFQO0FBQ0g7QUFDSjs7QUFDRCxTQUFTVixzQkFBVCxDQUFnQ2EsUUFBaEMsRUFBMEM7QUFDdEMsTUFBTUMsTUFBTSxHQUFHLElBQUlDLGVBQUosRUFBZjtBQUNBcEIsRUFBQUEsTUFBTSxDQUFDcUIsT0FBUCxDQUFlSCxRQUFmLEVBQXlCVCxPQUF6QixDQUFpQyxnQkFBZ0I7QUFBQTtBQUFBLFFBQWRDLEdBQWM7QUFBQSxRQUFUUCxLQUFTOztBQUM3QyxRQUFJUSxLQUFLLENBQUNDLE9BQU4sQ0FBY1QsS0FBZCxDQUFKLEVBQTBCO0FBQ3RCQSxNQUFBQSxLQUFLLENBQUNNLE9BQU4sQ0FBYyxVQUFDYSxJQUFEO0FBQUEsZUFBUUgsTUFBTSxDQUFDSSxNQUFQLENBQWNiLEdBQWQsRUFBbUJJLHNCQUFzQixDQUFDUSxJQUFELENBQXpDLENBQVI7QUFBQSxPQUFkO0FBRUgsS0FIRCxNQUdPO0FBQ0hILE1BQUFBLE1BQU0sQ0FBQ0ssR0FBUCxDQUFXZCxHQUFYLEVBQWdCSSxzQkFBc0IsQ0FBQ1gsS0FBRCxDQUF0QztBQUNIO0FBQ0osR0FQRDtBQVFBLFNBQU9nQixNQUFQO0FBQ0g7O0FBQ0QsU0FBU2IsTUFBVCxDQUFnQm1CLE1BQWhCLEVBQTZDO0FBQUEsb0NBQWxCQyxnQkFBa0I7QUFBbEJBLElBQUFBLGdCQUFrQjtBQUFBOztBQUN6Q0EsRUFBQUEsZ0JBQWdCLENBQUNqQixPQUFqQixDQUF5QixVQUFDRixZQUFELEVBQWdCO0FBQ3JDSSxJQUFBQSxLQUFLLENBQUNnQixJQUFOLENBQVdwQixZQUFZLENBQUNxQixJQUFiLEVBQVgsRUFBZ0NuQixPQUFoQyxDQUF3QyxVQUFDQyxHQUFEO0FBQUEsYUFBT2UsTUFBTSxVQUFOLENBQWNmLEdBQWQsQ0FBUDtBQUFBLEtBQXhDO0FBRUFILElBQUFBLFlBQVksQ0FBQ0UsT0FBYixDQUFxQixVQUFDTixLQUFELEVBQVFPLEdBQVI7QUFBQSxhQUFjZSxNQUFNLENBQUNGLE1BQVAsQ0FBY2IsR0FBZCxFQUFtQlAsS0FBbkIsQ0FBZDtBQUFBLEtBQXJCO0FBRUgsR0FMRDtBQU1BLFNBQU9zQixNQUFQO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zaGFyZWQvbGliL3JvdXRlci91dGlscy9xdWVyeXN0cmluZy5qcz8wMTQ5Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5zZWFyY2hQYXJhbXNUb1VybFF1ZXJ5ID0gc2VhcmNoUGFyYW1zVG9VcmxRdWVyeTtcbmV4cG9ydHMudXJsUXVlcnlUb1NlYXJjaFBhcmFtcyA9IHVybFF1ZXJ5VG9TZWFyY2hQYXJhbXM7XG5leHBvcnRzLmFzc2lnbiA9IGFzc2lnbjtcbmZ1bmN0aW9uIHNlYXJjaFBhcmFtc1RvVXJsUXVlcnkoc2VhcmNoUGFyYW1zKSB7XG4gICAgY29uc3QgcXVlcnkgPSB7XG4gICAgfTtcbiAgICBzZWFyY2hQYXJhbXMuZm9yRWFjaCgodmFsdWUsIGtleSk9PntcbiAgICAgICAgaWYgKHR5cGVvZiBxdWVyeVtrZXldID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgcXVlcnlba2V5XSA9IHZhbHVlO1xuICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkocXVlcnlba2V5XSkpIHtcbiAgICAgICAgICAgIHF1ZXJ5W2tleV0ucHVzaCh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBxdWVyeVtrZXldID0gW1xuICAgICAgICAgICAgICAgIHF1ZXJ5W2tleV0sXG4gICAgICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICAgIF07XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcXVlcnk7XG59XG5mdW5jdGlvbiBzdHJpbmdpZnlVcmxRdWVyeVBhcmFtKHBhcmFtKSB7XG4gICAgaWYgKHR5cGVvZiBwYXJhbSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHBhcmFtID09PSAnbnVtYmVyJyAmJiAhaXNOYU4ocGFyYW0pIHx8IHR5cGVvZiBwYXJhbSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgIHJldHVybiBTdHJpbmcocGFyYW0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG59XG5mdW5jdGlvbiB1cmxRdWVyeVRvU2VhcmNoUGFyYW1zKHVybFF1ZXJ5KSB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICAgIE9iamVjdC5lbnRyaWVzKHVybFF1ZXJ5KS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pPT57XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgdmFsdWUuZm9yRWFjaCgoaXRlbSk9PnJlc3VsdC5hcHBlbmQoa2V5LCBzdHJpbmdpZnlVcmxRdWVyeVBhcmFtKGl0ZW0pKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc3VsdC5zZXQoa2V5LCBzdHJpbmdpZnlVcmxRdWVyeVBhcmFtKHZhbHVlKSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xufVxuZnVuY3Rpb24gYXNzaWduKHRhcmdldCwgLi4uc2VhcmNoUGFyYW1zTGlzdCkge1xuICAgIHNlYXJjaFBhcmFtc0xpc3QuZm9yRWFjaCgoc2VhcmNoUGFyYW1zKT0+e1xuICAgICAgICBBcnJheS5mcm9tKHNlYXJjaFBhcmFtcy5rZXlzKCkpLmZvckVhY2goKGtleSk9PnRhcmdldC5kZWxldGUoa2V5KVxuICAgICAgICApO1xuICAgICAgICBzZWFyY2hQYXJhbXMuZm9yRWFjaCgodmFsdWUsIGtleSk9PnRhcmdldC5hcHBlbmQoa2V5LCB2YWx1ZSlcbiAgICAgICAgKTtcbiAgICB9KTtcbiAgICByZXR1cm4gdGFyZ2V0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1xdWVyeXN0cmluZy5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5IiwidXJsUXVlcnlUb1NlYXJjaFBhcmFtcyIsImFzc2lnbiIsInNlYXJjaFBhcmFtcyIsInF1ZXJ5IiwiZm9yRWFjaCIsImtleSIsIkFycmF5IiwiaXNBcnJheSIsInB1c2giLCJzdHJpbmdpZnlVcmxRdWVyeVBhcmFtIiwicGFyYW0iLCJpc05hTiIsIlN0cmluZyIsInVybFF1ZXJ5IiwicmVzdWx0IiwiVVJMU2VhcmNoUGFyYW1zIiwiZW50cmllcyIsIml0ZW0iLCJhcHBlbmQiLCJzZXQiLCJ0YXJnZXQiLCJzZWFyY2hQYXJhbXNMaXN0IiwiZnJvbSIsImtleXMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/querystring.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/route-matcher.js": +/*!*************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/route-matcher.js ***! + \*************************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.getRouteMatcher = getRouteMatcher;\n\nvar _utils = __webpack_require__(/*! ../../utils */ \"./node_modules/next/dist/shared/lib/utils.js\");\n\nfunction getRouteMatcher(routeRegex) {\n var re = routeRegex.re,\n groups = routeRegex.groups;\n return function (pathname) {\n var routeMatch = re.exec(pathname);\n\n if (!routeMatch) {\n return false;\n }\n\n var decode = function decode(param) {\n try {\n return decodeURIComponent(param);\n } catch (_) {\n throw new _utils.DecodeError('failed to decode param');\n }\n };\n\n var params = {};\n Object.keys(groups).forEach(function (slugName) {\n var g = groups[slugName];\n var m = routeMatch[g.pos];\n\n if (m !== undefined) {\n params[slugName] = ~m.indexOf('/') ? m.split('/').map(function (entry) {\n return decode(entry);\n }) : g.repeat ? [decode(m)] : decode(m);\n }\n });\n return params;\n };\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JvdXRlLW1hdGNoZXIuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCx1QkFBQSxHQUEwQkUsZUFBMUI7O0FBQ0EsSUFBSUMsTUFBTSxHQUFHQyxtQkFBTyxDQUFDLGlFQUFELENBQXBCOztBQUNBLFNBQVNGLGVBQVQsQ0FBeUJHLFVBQXpCLEVBQXFDO0FBQ2pDLE1BQVFDLEVBQVIsR0FBeUJELFVBQXpCLENBQVFDLEVBQVI7QUFBQSxNQUFhQyxNQUFiLEdBQXlCRixVQUF6QixDQUFhRSxNQUFiO0FBQ0EsU0FBTyxVQUFDQyxRQUFELEVBQVk7QUFDZixRQUFNQyxVQUFVLEdBQUdILEVBQUUsQ0FBQ0ksSUFBSCxDQUFRRixRQUFSLENBQW5COztBQUNBLFFBQUksQ0FBQ0MsVUFBTCxFQUFpQjtBQUNiLGFBQU8sS0FBUDtBQUNIOztBQUNELFFBQU1FLE1BQU0sR0FBRyxTQUFUQSxNQUFTLENBQUNDLEtBQUQsRUFBUztBQUNwQixVQUFJO0FBQ0EsZUFBT0Msa0JBQWtCLENBQUNELEtBQUQsQ0FBekI7QUFDSCxPQUZELENBRUUsT0FBT0UsQ0FBUCxFQUFVO0FBQ1IsY0FBTSxJQUFJWCxNQUFNLENBQUNZLFdBQVgsQ0FBdUIsd0JBQXZCLENBQU47QUFDSDtBQUNKLEtBTkQ7O0FBT0EsUUFBTUMsTUFBTSxHQUFHLEVBQWY7QUFFQWxCLElBQUFBLE1BQU0sQ0FBQ21CLElBQVAsQ0FBWVYsTUFBWixFQUFvQlcsT0FBcEIsQ0FBNEIsVUFBQ0MsUUFBRCxFQUFZO0FBQ3BDLFVBQU1DLENBQUMsR0FBR2IsTUFBTSxDQUFDWSxRQUFELENBQWhCO0FBQ0EsVUFBTUUsQ0FBQyxHQUFHWixVQUFVLENBQUNXLENBQUMsQ0FBQ0UsR0FBSCxDQUFwQjs7QUFDQSxVQUFJRCxDQUFDLEtBQUtFLFNBQVYsRUFBcUI7QUFDakJQLFFBQUFBLE1BQU0sQ0FBQ0csUUFBRCxDQUFOLEdBQW1CLENBQUNFLENBQUMsQ0FBQ0csT0FBRixDQUFVLEdBQVYsQ0FBRCxHQUFrQkgsQ0FBQyxDQUFDSSxLQUFGLENBQVEsR0FBUixFQUFhQyxHQUFiLENBQWlCLFVBQUNDLEtBQUQ7QUFBQSxpQkFBU2hCLE1BQU0sQ0FBQ2dCLEtBQUQsQ0FBZjtBQUFBLFNBQWpCLENBQWxCLEdBQ2ZQLENBQUMsQ0FBQ1EsTUFBRixHQUFXLENBQ1hqQixNQUFNLENBQUNVLENBQUQsQ0FESyxDQUFYLEdBRUFWLE1BQU0sQ0FBQ1UsQ0FBRCxDQUhWO0FBSUg7QUFDSixLQVREO0FBVUEsV0FBT0wsTUFBUDtBQUNILEdBekJEO0FBMEJIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcm91dGUtbWF0Y2hlci5qcz9jODZjIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5nZXRSb3V0ZU1hdGNoZXIgPSBnZXRSb3V0ZU1hdGNoZXI7XG52YXIgX3V0aWxzID0gcmVxdWlyZShcIi4uLy4uL3V0aWxzXCIpO1xuZnVuY3Rpb24gZ2V0Um91dGVNYXRjaGVyKHJvdXRlUmVnZXgpIHtcbiAgICBjb25zdCB7IHJlICwgZ3JvdXBzICB9ID0gcm91dGVSZWdleDtcbiAgICByZXR1cm4gKHBhdGhuYW1lKT0+e1xuICAgICAgICBjb25zdCByb3V0ZU1hdGNoID0gcmUuZXhlYyhwYXRobmFtZSk7XG4gICAgICAgIGlmICghcm91dGVNYXRjaCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRlY29kZSA9IChwYXJhbSk9PntcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChwYXJhbSk7XG4gICAgICAgICAgICB9IGNhdGNoIChfKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IF91dGlscy5EZWNvZGVFcnJvcignZmFpbGVkIHRvIGRlY29kZSBwYXJhbScpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICAgIH07XG4gICAgICAgIE9iamVjdC5rZXlzKGdyb3VwcykuZm9yRWFjaCgoc2x1Z05hbWUpPT57XG4gICAgICAgICAgICBjb25zdCBnID0gZ3JvdXBzW3NsdWdOYW1lXTtcbiAgICAgICAgICAgIGNvbnN0IG0gPSByb3V0ZU1hdGNoW2cucG9zXTtcbiAgICAgICAgICAgIGlmIChtICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBwYXJhbXNbc2x1Z05hbWVdID0gfm0uaW5kZXhPZignLycpID8gbS5zcGxpdCgnLycpLm1hcCgoZW50cnkpPT5kZWNvZGUoZW50cnkpXG4gICAgICAgICAgICAgICAgKSA6IGcucmVwZWF0ID8gW1xuICAgICAgICAgICAgICAgICAgICBkZWNvZGUobSlcbiAgICAgICAgICAgICAgICBdIDogZGVjb2RlKG0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHBhcmFtcztcbiAgICB9O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yb3V0ZS1tYXRjaGVyLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImdldFJvdXRlTWF0Y2hlciIsIl91dGlscyIsInJlcXVpcmUiLCJyb3V0ZVJlZ2V4IiwicmUiLCJncm91cHMiLCJwYXRobmFtZSIsInJvdXRlTWF0Y2giLCJleGVjIiwiZGVjb2RlIiwicGFyYW0iLCJkZWNvZGVVUklDb21wb25lbnQiLCJfIiwiRGVjb2RlRXJyb3IiLCJwYXJhbXMiLCJrZXlzIiwiZm9yRWFjaCIsInNsdWdOYW1lIiwiZyIsIm0iLCJwb3MiLCJ1bmRlZmluZWQiLCJpbmRleE9mIiwic3BsaXQiLCJtYXAiLCJlbnRyeSIsInJlcGVhdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/route-matcher.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/route-regex.js": +/*!***********************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/route-regex.js ***! + \***********************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.getParametrizedRoute = getParametrizedRoute;\nexports.getRouteRegex = getRouteRegex; // this isn't importing the escape-string-regex module\n// to reduce bytes\n\nfunction escapeRegex(str) {\n return str.replace(/[|\\\\{}()[\\]^$+*?.-]/g, '\\\\$&');\n}\n\nfunction parseParameter(param) {\n var optional = param.startsWith('[') && param.endsWith(']');\n\n if (optional) {\n param = param.slice(1, -1);\n }\n\n var repeat = param.startsWith('...');\n\n if (repeat) {\n param = param.slice(3);\n }\n\n return {\n key: param,\n repeat: repeat,\n optional: optional\n };\n}\n\nfunction getParametrizedRoute(route) {\n var segments = (route.replace(/\\/$/, '') || '/').slice(1).split('/');\n var groups = {};\n var groupIndex = 1;\n var parameterizedRoute = segments.map(function (segment) {\n if (segment.startsWith('[') && segment.endsWith(']')) {\n var _parseParameter = parseParameter(segment.slice(1, -1)),\n key = _parseParameter.key,\n optional = _parseParameter.optional,\n repeat = _parseParameter.repeat;\n\n groups[key] = {\n pos: groupIndex++,\n repeat: repeat,\n optional: optional\n };\n return repeat ? optional ? '(?:/(.+?))?' : '/(.+?)' : '/([^/]+?)';\n } else {\n return \"/\".concat(escapeRegex(segment));\n }\n }).join(''); // dead code eliminate for browser since it's only needed\n // while generating routes-manifest\n\n if (false) { var namedParameterizedRoute, routeKeys, getSafeRouteKey, routeKeyCharLength, routeKeyCharCode; }\n\n return {\n parameterizedRoute: parameterizedRoute,\n groups: groups\n };\n}\n\nfunction getRouteRegex(normalizedRoute) {\n var result = getParametrizedRoute(normalizedRoute);\n\n if ('routeKeys' in result) {\n return {\n re: new RegExp(\"^\".concat(result.parameterizedRoute, \"(?:/)?$\")),\n groups: result.groups,\n routeKeys: result.routeKeys,\n namedRegex: \"^\".concat(result.namedParameterizedRoute, \"(?:/)?$\")\n };\n }\n\n return {\n re: new RegExp(\"^\".concat(result.parameterizedRoute, \"(?:/)?$\")),\n groups: result.groups\n };\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JvdXRlLXJlZ2V4LmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7QUFDYkEsOENBQTZDO0FBQ3pDRyxFQUFBQSxLQUFLLEVBQUU7QUFEa0MsQ0FBN0M7QUFHQUQsNEJBQUEsR0FBK0JFLG9CQUEvQjtBQUNBRixxQkFBQSxHQUF3QkcsYUFBeEIsRUFDQTtBQUNBOztBQUNBLFNBQVNDLFdBQVQsQ0FBcUJDLEdBQXJCLEVBQTBCO0FBQ3RCLFNBQU9BLEdBQUcsQ0FBQ0MsT0FBSixDQUFZLHNCQUFaLEVBQW9DLE1BQXBDLENBQVA7QUFDSDs7QUFDRCxTQUFTQyxjQUFULENBQXdCQyxLQUF4QixFQUErQjtBQUMzQixNQUFNQyxRQUFRLEdBQUdELEtBQUssQ0FBQ0UsVUFBTixDQUFpQixHQUFqQixLQUF5QkYsS0FBSyxDQUFDRyxRQUFOLENBQWUsR0FBZixDQUExQzs7QUFDQSxNQUFJRixRQUFKLEVBQWM7QUFDVkQsSUFBQUEsS0FBSyxHQUFHQSxLQUFLLENBQUNJLEtBQU4sQ0FBWSxDQUFaLEVBQWUsQ0FBQyxDQUFoQixDQUFSO0FBQ0g7O0FBQ0QsTUFBTUMsTUFBTSxHQUFHTCxLQUFLLENBQUNFLFVBQU4sQ0FBaUIsS0FBakIsQ0FBZjs7QUFDQSxNQUFJRyxNQUFKLEVBQVk7QUFDUkwsSUFBQUEsS0FBSyxHQUFHQSxLQUFLLENBQUNJLEtBQU4sQ0FBWSxDQUFaLENBQVI7QUFDSDs7QUFDRCxTQUFPO0FBQ0hFLElBQUFBLEdBQUcsRUFBRU4sS0FERjtBQUVISyxJQUFBQSxNQUFNLEVBQU5BLE1BRkc7QUFHSEosSUFBQUEsUUFBUSxFQUFSQTtBQUhHLEdBQVA7QUFLSDs7QUFDRCxTQUFTUCxvQkFBVCxDQUE4QmEsS0FBOUIsRUFBcUM7QUFDakMsTUFBTUMsUUFBUSxHQUFHLENBQUNELEtBQUssQ0FBQ1QsT0FBTixDQUFjLEtBQWQsRUFBcUIsRUFBckIsS0FBNEIsR0FBN0IsRUFBa0NNLEtBQWxDLENBQXdDLENBQXhDLEVBQTJDSyxLQUEzQyxDQUFpRCxHQUFqRCxDQUFqQjtBQUNBLE1BQU1DLE1BQU0sR0FBRyxFQUFmO0FBRUEsTUFBSUMsVUFBVSxHQUFHLENBQWpCO0FBQ0EsTUFBTUMsa0JBQWtCLEdBQUdKLFFBQVEsQ0FBQ0ssR0FBVCxDQUFhLFVBQUNDLE9BQUQsRUFBVztBQUMvQyxRQUFJQSxPQUFPLENBQUNaLFVBQVIsQ0FBbUIsR0FBbkIsS0FBMkJZLE9BQU8sQ0FBQ1gsUUFBUixDQUFpQixHQUFqQixDQUEvQixFQUFzRDtBQUNsRCw0QkFBcUNKLGNBQWMsQ0FBQ2UsT0FBTyxDQUFDVixLQUFSLENBQWMsQ0FBZCxFQUFpQixDQUFDLENBQWxCLENBQUQsQ0FBbkQ7QUFBQSxVQUFRRSxHQUFSLG1CQUFRQSxHQUFSO0FBQUEsVUFBY0wsUUFBZCxtQkFBY0EsUUFBZDtBQUFBLFVBQXlCSSxNQUF6QixtQkFBeUJBLE1BQXpCOztBQUNBSyxNQUFBQSxNQUFNLENBQUNKLEdBQUQsQ0FBTixHQUFjO0FBQ1ZTLFFBQUFBLEdBQUcsRUFBRUosVUFBVSxFQURMO0FBRVZOLFFBQUFBLE1BQU0sRUFBTkEsTUFGVTtBQUdWSixRQUFBQSxRQUFRLEVBQVJBO0FBSFUsT0FBZDtBQUtBLGFBQU9JLE1BQU0sR0FBR0osUUFBUSxHQUFHLGFBQUgsR0FBbUIsUUFBOUIsR0FBeUMsV0FBdEQ7QUFDSCxLQVJELE1BUU87QUFDSCx3QkFBV0wsV0FBVyxDQUFDa0IsT0FBRCxDQUF0QjtBQUNIO0FBQ0osR0FaMEIsRUFZeEJFLElBWndCLENBWW5CLEVBWm1CLENBQTNCLENBTGlDLENBa0JqQztBQUNBOztBQUNBLGFBQW1DLGtHQWdEbEM7O0FBQ0QsU0FBTztBQUNISixJQUFBQSxrQkFBa0IsRUFBbEJBLGtCQURHO0FBRUhGLElBQUFBLE1BQU0sRUFBTkE7QUFGRyxHQUFQO0FBSUg7O0FBQ0QsU0FBU2YsYUFBVCxDQUF1QnFDLGVBQXZCLEVBQXdDO0FBQ3BDLE1BQU1DLE1BQU0sR0FBR3ZDLG9CQUFvQixDQUFDc0MsZUFBRCxDQUFuQzs7QUFDQSxNQUFJLGVBQWVDLE1BQW5CLEVBQTJCO0FBQ3ZCLFdBQU87QUFDSEMsTUFBQUEsRUFBRSxFQUFFLElBQUlDLE1BQUosWUFBZUYsTUFBTSxDQUFDckIsa0JBQXRCLGFBREQ7QUFFSEYsTUFBQUEsTUFBTSxFQUFFdUIsTUFBTSxDQUFDdkIsTUFGWjtBQUdIYyxNQUFBQSxTQUFTLEVBQUVTLE1BQU0sQ0FBQ1QsU0FIZjtBQUlIWSxNQUFBQSxVQUFVLGFBQU1ILE1BQU0sQ0FBQ1IsdUJBQWI7QUFKUCxLQUFQO0FBTUg7O0FBQ0QsU0FBTztBQUNIUyxJQUFBQSxFQUFFLEVBQUUsSUFBSUMsTUFBSixZQUFlRixNQUFNLENBQUNyQixrQkFBdEIsYUFERDtBQUVIRixJQUFBQSxNQUFNLEVBQUV1QixNQUFNLENBQUN2QjtBQUZaLEdBQVA7QUFJSCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JvdXRlLXJlZ2V4LmpzP2VhYzIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmdldFBhcmFtZXRyaXplZFJvdXRlID0gZ2V0UGFyYW1ldHJpemVkUm91dGU7XG5leHBvcnRzLmdldFJvdXRlUmVnZXggPSBnZXRSb3V0ZVJlZ2V4O1xuLy8gdGhpcyBpc24ndCBpbXBvcnRpbmcgdGhlIGVzY2FwZS1zdHJpbmctcmVnZXggbW9kdWxlXG4vLyB0byByZWR1Y2UgYnl0ZXNcbmZ1bmN0aW9uIGVzY2FwZVJlZ2V4KHN0cikge1xuICAgIHJldHVybiBzdHIucmVwbGFjZSgvW3xcXFxce30oKVtcXF1eJCsqPy4tXS9nLCAnXFxcXCQmJyk7XG59XG5mdW5jdGlvbiBwYXJzZVBhcmFtZXRlcihwYXJhbSkge1xuICAgIGNvbnN0IG9wdGlvbmFsID0gcGFyYW0uc3RhcnRzV2l0aCgnWycpICYmIHBhcmFtLmVuZHNXaXRoKCddJyk7XG4gICAgaWYgKG9wdGlvbmFsKSB7XG4gICAgICAgIHBhcmFtID0gcGFyYW0uc2xpY2UoMSwgLTEpO1xuICAgIH1cbiAgICBjb25zdCByZXBlYXQgPSBwYXJhbS5zdGFydHNXaXRoKCcuLi4nKTtcbiAgICBpZiAocmVwZWF0KSB7XG4gICAgICAgIHBhcmFtID0gcGFyYW0uc2xpY2UoMyk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIGtleTogcGFyYW0sXG4gICAgICAgIHJlcGVhdCxcbiAgICAgICAgb3B0aW9uYWxcbiAgICB9O1xufVxuZnVuY3Rpb24gZ2V0UGFyYW1ldHJpemVkUm91dGUocm91dGUpIHtcbiAgICBjb25zdCBzZWdtZW50cyA9IChyb3V0ZS5yZXBsYWNlKC9cXC8kLywgJycpIHx8ICcvJykuc2xpY2UoMSkuc3BsaXQoJy8nKTtcbiAgICBjb25zdCBncm91cHMgPSB7XG4gICAgfTtcbiAgICBsZXQgZ3JvdXBJbmRleCA9IDE7XG4gICAgY29uc3QgcGFyYW1ldGVyaXplZFJvdXRlID0gc2VnbWVudHMubWFwKChzZWdtZW50KT0+e1xuICAgICAgICBpZiAoc2VnbWVudC5zdGFydHNXaXRoKCdbJykgJiYgc2VnbWVudC5lbmRzV2l0aCgnXScpKSB7XG4gICAgICAgICAgICBjb25zdCB7IGtleSAsIG9wdGlvbmFsICwgcmVwZWF0ICB9ID0gcGFyc2VQYXJhbWV0ZXIoc2VnbWVudC5zbGljZSgxLCAtMSkpO1xuICAgICAgICAgICAgZ3JvdXBzW2tleV0gPSB7XG4gICAgICAgICAgICAgICAgcG9zOiBncm91cEluZGV4KyssXG4gICAgICAgICAgICAgICAgcmVwZWF0LFxuICAgICAgICAgICAgICAgIG9wdGlvbmFsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmV0dXJuIHJlcGVhdCA/IG9wdGlvbmFsID8gJyg/Oi8oLis/KSk/JyA6ICcvKC4rPyknIDogJy8oW14vXSs/KSc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gYC8ke2VzY2FwZVJlZ2V4KHNlZ21lbnQpfWA7XG4gICAgICAgIH1cbiAgICB9KS5qb2luKCcnKTtcbiAgICAvLyBkZWFkIGNvZGUgZWxpbWluYXRlIGZvciBicm93c2VyIHNpbmNlIGl0J3Mgb25seSBuZWVkZWRcbiAgICAvLyB3aGlsZSBnZW5lcmF0aW5nIHJvdXRlcy1tYW5pZmVzdFxuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICBsZXQgcm91dGVLZXlDaGFyQ29kZSA9IDk3O1xuICAgICAgICBsZXQgcm91dGVLZXlDaGFyTGVuZ3RoID0gMTtcbiAgICAgICAgLy8gYnVpbGRzIGEgbWluaW1hbCByb3V0ZUtleSB1c2luZyBvbmx5IGEteiBhbmQgbWluaW1hbCBudW1iZXIgb2YgY2hhcmFjdGVyc1xuICAgICAgICBjb25zdCBnZXRTYWZlUm91dGVLZXkgPSAoKT0+e1xuICAgICAgICAgICAgbGV0IHJvdXRlS2V5ID0gJyc7XG4gICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgcm91dGVLZXlDaGFyTGVuZ3RoOyBpKyspe1xuICAgICAgICAgICAgICAgIHJvdXRlS2V5ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUocm91dGVLZXlDaGFyQ29kZSk7XG4gICAgICAgICAgICAgICAgcm91dGVLZXlDaGFyQ29kZSsrO1xuICAgICAgICAgICAgICAgIGlmIChyb3V0ZUtleUNoYXJDb2RlID4gMTIyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJvdXRlS2V5Q2hhckxlbmd0aCsrO1xuICAgICAgICAgICAgICAgICAgICByb3V0ZUtleUNoYXJDb2RlID0gOTc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJvdXRlS2V5O1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCByb3V0ZUtleXMgPSB7XG4gICAgICAgIH07XG4gICAgICAgIGxldCBuYW1lZFBhcmFtZXRlcml6ZWRSb3V0ZSA9IHNlZ21lbnRzLm1hcCgoc2VnbWVudCk9PntcbiAgICAgICAgICAgIGlmIChzZWdtZW50LnN0YXJ0c1dpdGgoJ1snKSAmJiBzZWdtZW50LmVuZHNXaXRoKCddJykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGtleSAsIG9wdGlvbmFsICwgcmVwZWF0ICB9ID0gcGFyc2VQYXJhbWV0ZXIoc2VnbWVudC5zbGljZSgxLCAtMSkpO1xuICAgICAgICAgICAgICAgIC8vIHJlcGxhY2UgYW55IG5vbi13b3JkIGNoYXJhY3RlcnMgc2luY2UgdGhleSBjYW4gYnJlYWtcbiAgICAgICAgICAgICAgICAvLyB0aGUgbmFtZWQgcmVnZXhcbiAgICAgICAgICAgICAgICBsZXQgY2xlYW5lZEtleSA9IGtleS5yZXBsYWNlKC9cXFcvZywgJycpO1xuICAgICAgICAgICAgICAgIGxldCBpbnZhbGlkS2V5ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgLy8gY2hlY2sgaWYgdGhlIGtleSBpcyBzdGlsbCBpbnZhbGlkIGFuZCBmYWxsYmFjayB0byB1c2luZyBhIGtub3duXG4gICAgICAgICAgICAgICAgLy8gc2FmZSBrZXlcbiAgICAgICAgICAgICAgICBpZiAoY2xlYW5lZEtleS5sZW5ndGggPT09IDAgfHwgY2xlYW5lZEtleS5sZW5ndGggPiAzMCkge1xuICAgICAgICAgICAgICAgICAgICBpbnZhbGlkS2V5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKCFpc05hTihwYXJzZUludChjbGVhbmVkS2V5LnN1YnN0cigwLCAxKSkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGludmFsaWRLZXkgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaW52YWxpZEtleSkge1xuICAgICAgICAgICAgICAgICAgICBjbGVhbmVkS2V5ID0gZ2V0U2FmZVJvdXRlS2V5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJvdXRlS2V5c1tjbGVhbmVkS2V5XSA9IGtleTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVwZWF0ID8gb3B0aW9uYWwgPyBgKD86Lyg/PCR7Y2xlYW5lZEtleX0+Lis/KSk/YCA6IGAvKD88JHtjbGVhbmVkS2V5fT4uKz8pYCA6IGAvKD88JHtjbGVhbmVkS2V5fT5bXi9dKz8pYDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGAvJHtlc2NhcGVSZWdleChzZWdtZW50KX1gO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KS5qb2luKCcnKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHBhcmFtZXRlcml6ZWRSb3V0ZSxcbiAgICAgICAgICAgIG5hbWVkUGFyYW1ldGVyaXplZFJvdXRlLFxuICAgICAgICAgICAgZ3JvdXBzLFxuICAgICAgICAgICAgcm91dGVLZXlzXG4gICAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHBhcmFtZXRlcml6ZWRSb3V0ZSxcbiAgICAgICAgZ3JvdXBzXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGdldFJvdXRlUmVnZXgobm9ybWFsaXplZFJvdXRlKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gZ2V0UGFyYW1ldHJpemVkUm91dGUobm9ybWFsaXplZFJvdXRlKTtcbiAgICBpZiAoJ3JvdXRlS2V5cycgaW4gcmVzdWx0KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICByZTogbmV3IFJlZ0V4cChgXiR7cmVzdWx0LnBhcmFtZXRlcml6ZWRSb3V0ZX0oPzovKT8kYCksXG4gICAgICAgICAgICBncm91cHM6IHJlc3VsdC5ncm91cHMsXG4gICAgICAgICAgICByb3V0ZUtleXM6IHJlc3VsdC5yb3V0ZUtleXMsXG4gICAgICAgICAgICBuYW1lZFJlZ2V4OiBgXiR7cmVzdWx0Lm5hbWVkUGFyYW1ldGVyaXplZFJvdXRlfSg/Oi8pPyRgXG4gICAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHJlOiBuZXcgUmVnRXhwKGBeJHtyZXN1bHQucGFyYW1ldGVyaXplZFJvdXRlfSg/Oi8pPyRgKSxcbiAgICAgICAgZ3JvdXBzOiByZXN1bHQuZ3JvdXBzXG4gICAgfTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cm91dGUtcmVnZXguanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiZ2V0UGFyYW1ldHJpemVkUm91dGUiLCJnZXRSb3V0ZVJlZ2V4IiwiZXNjYXBlUmVnZXgiLCJzdHIiLCJyZXBsYWNlIiwicGFyc2VQYXJhbWV0ZXIiLCJwYXJhbSIsIm9wdGlvbmFsIiwic3RhcnRzV2l0aCIsImVuZHNXaXRoIiwic2xpY2UiLCJyZXBlYXQiLCJrZXkiLCJyb3V0ZSIsInNlZ21lbnRzIiwic3BsaXQiLCJncm91cHMiLCJncm91cEluZGV4IiwicGFyYW1ldGVyaXplZFJvdXRlIiwibWFwIiwic2VnbWVudCIsInBvcyIsImpvaW4iLCJyb3V0ZUtleUNoYXJDb2RlIiwicm91dGVLZXlDaGFyTGVuZ3RoIiwiZ2V0U2FmZVJvdXRlS2V5Iiwicm91dGVLZXkiLCJpIiwiU3RyaW5nIiwiZnJvbUNoYXJDb2RlIiwicm91dGVLZXlzIiwibmFtZWRQYXJhbWV0ZXJpemVkUm91dGUiLCJjbGVhbmVkS2V5IiwiaW52YWxpZEtleSIsImxlbmd0aCIsImlzTmFOIiwicGFyc2VJbnQiLCJzdWJzdHIiLCJub3JtYWxpemVkUm91dGUiLCJyZXN1bHQiLCJyZSIsIlJlZ0V4cCIsIm5hbWVkUmVnZXgiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/route-regex.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/utils.js": +/*!****************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/utils.js ***! + \****************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _regeneratorRuntime = __webpack_require__(/*! ./node_modules/@babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n\nvar _classCallCheck = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\");\n\nvar _inherits = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/inherits */ \"./node_modules/@babel/runtime/helpers/inherits.js\");\n\nvar _possibleConstructorReturn = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/possibleConstructorReturn */ \"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\");\n\nvar _getPrototypeOf = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/getPrototypeOf */ \"./node_modules/@babel/runtime/helpers/getPrototypeOf.js\");\n\nvar _wrapNativeSuper = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/wrapNativeSuper */ \"./node_modules/@babel/runtime/helpers/wrapNativeSuper.js\");\n\nvar _asyncToGenerator = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/asyncToGenerator.js\");\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.execOnce = execOnce;\nexports.getLocationOrigin = getLocationOrigin;\nexports.getURL = getURL;\nexports.getDisplayName = getDisplayName;\nexports.isResSent = isResSent;\nexports.normalizeRepeatedSlashes = normalizeRepeatedSlashes;\nexports.loadGetInitialProps = loadGetInitialProps;\nexports.formatWithValidation = formatWithValidation;\nexports.HtmlContext = exports.ST = exports.SP = exports.urlObjectKeys = void 0;\n\nvar _formatUrl = __webpack_require__(/*! ./router/utils/format-url */ \"./node_modules/next/dist/shared/lib/router/utils/format-url.js\");\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nfunction execOnce(fn) {\n var used = false;\n var result;\n return function () {\n if (!used) {\n used = true;\n result = fn.apply(void 0, arguments);\n }\n\n return result;\n };\n}\n\nfunction getLocationOrigin() {\n var _window$location = window.location,\n protocol = _window$location.protocol,\n hostname = _window$location.hostname,\n port = _window$location.port;\n return \"\".concat(protocol, \"//\").concat(hostname).concat(port ? ':' + port : '');\n}\n\nfunction getURL() {\n var href = window.location.href;\n var origin = getLocationOrigin();\n return href.substring(origin.length);\n}\n\nfunction getDisplayName(Component) {\n return typeof Component === 'string' ? Component : Component.displayName || Component.name || 'Unknown';\n}\n\nfunction isResSent(res) {\n return res.finished || res.headersSent;\n}\n\nfunction normalizeRepeatedSlashes(url) {\n var urlParts = url.split('?');\n var 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] ? \"?\".concat(urlParts.slice(1).join('?')) : '');\n}\n\nfunction loadGetInitialProps(_x, _x2) {\n return _loadGetInitialProps.apply(this, arguments);\n}\n\nfunction _loadGetInitialProps() {\n _loadGetInitialProps = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(App, ctx) {\n var ref, message, res, props, _message;\n\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (false) {}\n\n if (!((ref = App.prototype) === null || ref === void 0 ? void 0 : ref.getInitialProps)) {\n _context.next = 4;\n break;\n }\n\n message = \"\\\"\".concat(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 new Error(message);\n\n case 4:\n // when called from _app `ctx` is nested in `ctx`\n res = ctx.res || ctx.ctx && ctx.ctx.res;\n\n if (App.getInitialProps) {\n _context.next = 12;\n break;\n }\n\n if (!(ctx.ctx && ctx.Component)) {\n _context.next = 11;\n break;\n }\n\n _context.next = 9;\n return loadGetInitialProps(ctx.Component, ctx.ctx);\n\n case 9:\n _context.t0 = _context.sent;\n return _context.abrupt(\"return\", {\n pageProps: _context.t0\n });\n\n case 11:\n return _context.abrupt(\"return\", {});\n\n case 12:\n _context.next = 14;\n return App.getInitialProps(ctx);\n\n case 14:\n props = _context.sent;\n\n if (!(res && isResSent(res))) {\n _context.next = 17;\n break;\n }\n\n return _context.abrupt(\"return\", props);\n\n case 17:\n if (props) {\n _context.next = 20;\n break;\n }\n\n _message = \"\\\"\".concat(getDisplayName(App), \".getInitialProps()\\\" should resolve to an object. But found \\\"\").concat(props, \"\\\" instead.\");\n throw new Error(_message);\n\n case 20:\n if (true) {\n if (Object.keys(props).length === 0 && !ctx.ctx) {\n console.warn(\"\".concat(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\n return _context.abrupt(\"return\", props);\n\n case 22:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n return _loadGetInitialProps.apply(this, arguments);\n}\n\nvar urlObjectKeys = ['auth', 'hash', 'host', 'hostname', 'href', 'path', 'pathname', 'port', 'protocol', 'query', 'search', 'slashes'];\nexports.urlObjectKeys = urlObjectKeys;\n\nfunction formatWithValidation(url) {\n if (true) {\n if (url !== null && typeof url === 'object') {\n Object.keys(url).forEach(function (key) {\n if (urlObjectKeys.indexOf(key) === -1) {\n console.warn(\"Unknown key passed via urlObject into url.format: \".concat(key));\n }\n });\n }\n }\n\n return (0, _formatUrl).formatUrl(url);\n}\n\nvar SP = typeof performance !== 'undefined';\nexports.SP = SP;\nvar ST = SP && typeof performance.mark === 'function' && typeof performance.measure === 'function';\nexports.ST = ST;\n\nvar DecodeError = /*#__PURE__*/function (_Error) {\n _inherits(DecodeError, _Error);\n\n var _super = _createSuper(DecodeError);\n\n function DecodeError() {\n _classCallCheck(this, DecodeError);\n\n return _super.apply(this, arguments);\n }\n\n return DecodeError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nexports.DecodeError = DecodeError;\nvar HtmlContext = (0, _react).createContext(null);\nexports.HtmlContext = HtmlContext;\n\nif (true) {\n HtmlContext.displayName = 'HtmlContext';\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvdXRpbHMuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxnQkFBQSxHQUFtQkUsUUFBbkI7QUFDQUYseUJBQUEsR0FBNEJHLGlCQUE1QjtBQUNBSCxjQUFBLEdBQWlCSSxNQUFqQjtBQUNBSixzQkFBQSxHQUF5QkssY0FBekI7QUFDQUwsaUJBQUEsR0FBb0JNLFNBQXBCO0FBQ0FOLGdDQUFBLEdBQW1DTyx3QkFBbkM7QUFDQVAsMkJBQUEsR0FBOEJRLG1CQUE5QjtBQUNBUiw0QkFBQSxHQUErQlMsb0JBQS9CO0FBQ0FULG1CQUFBLEdBQXNCQSxVQUFBLEdBQWFBLFVBQUEsR0FBYUEscUJBQUEsR0FBd0IsS0FBSyxDQUE3RTs7QUFDQSxJQUFJYyxVQUFVLEdBQUdDLG1CQUFPLENBQUMsaUdBQUQsQ0FBeEI7O0FBQ0EsSUFBSUMsTUFBTSxHQUFHRCxtQkFBTyxDQUFDLDRDQUFELENBQXBCOztBQUNBLFNBQVNiLFFBQVQsQ0FBa0JlLEVBQWxCLEVBQXNCO0FBQ2xCLE1BQUlDLElBQUksR0FBRyxLQUFYO0FBQ0EsTUFBSUMsTUFBSjtBQUNBLFNBQU8sWUFBVztBQUNkLFFBQUksQ0FBQ0QsSUFBTCxFQUFXO0FBQ1BBLE1BQUFBLElBQUksR0FBRyxJQUFQO0FBQ0FDLE1BQUFBLE1BQU0sR0FBR0YsRUFBRSxNQUFGLG1CQUFUO0FBQ0g7O0FBQ0QsV0FBT0UsTUFBUDtBQUNILEdBTkQ7QUFPSDs7QUFDRCxTQUFTaEIsaUJBQVQsR0FBNkI7QUFDekIseUJBQXdDaUIsTUFBTSxDQUFDQyxRQUEvQztBQUFBLE1BQVFDLFFBQVIsb0JBQVFBLFFBQVI7QUFBQSxNQUFtQkMsUUFBbkIsb0JBQW1CQSxRQUFuQjtBQUFBLE1BQThCQyxJQUE5QixvQkFBOEJBLElBQTlCO0FBQ0EsbUJBQVVGLFFB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QWxDO0FBQ0ExRCxVQUFBLEdBQWFZLEVBQWI7QUFDQSxJQUFNRCxFQUFFLEdBQUdDLEVBQUUsSUFBSSxPQUFPOEMsV0FBVyxDQUFDQyxJQUFuQixLQUE0QixVQUFsQyxJQUFnRCxPQUFPRCxXQUFXLENBQUNFLE9BQW5CLEtBQStCLFVBQTFGO0FBQ0E1RCxVQUFBLEdBQWFXLEVBQWI7O0lBQ01rRDs7Ozs7Ozs7Ozs7O2lDQUFvQmI7O0FBRTFCaEQsbUJBQUEsR0FBc0I2RCxXQUF0QjtBQUNBLElBQU1uRCxXQUFXLEdBQUcsQ0FBQyxHQUFHTSxNQUFKLEVBQVk4QyxhQUFaLENBQTBCLElBQTFCLENBQXBCO0FBQ0E5RCxtQkFBQSxHQUFzQlUsV0FBdEI7O0FBQ0EsSUFBSSxNQUF1QztBQUN2Q0EsRUFBQUEsV0FBVyxDQUFDb0IsV0FBWixHQUEwQixhQUExQjtBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi91dGlscy5qcz9lN2ZmIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5leGVjT25jZSA9IGV4ZWNPbmNlO1xuZXhwb3J0cy5nZXRMb2NhdGlvbk9yaWdpbiA9IGdldExvY2F0aW9uT3JpZ2luO1xuZXhwb3J0cy5nZXRVUkwgPSBnZXRVUkw7XG5leHBvcnRzLmdldERpc3BsYXlOYW1lID0gZ2V0RGlzcGxheU5hbWU7XG5leHBvcnRzLmlzUmVzU2VudCA9IGlzUmVzU2VudDtcbmV4cG9ydHMubm9ybWFsaXplUmVwZWF0ZWRTbGFzaGVzID0gbm9ybWFsaXplUmVwZWF0ZWRTbGFzaGVzO1xuZXhwb3J0cy5sb2FkR2V0SW5pdGlhbFByb3BzID0gbG9hZEdldEluaXRpYWxQcm9wcztcbmV4cG9ydHMuZm9ybWF0V2l0aFZhbGlkYXRpb24gPSBmb3JtYXRXaXRoVmFsaWRhdGlvbjtcbmV4cG9ydHMuSHRtbENvbnRleHQgPSBleHBvcnRzLlNUID0gZXhwb3J0cy5TUCA9IGV4cG9ydHMudXJsT2JqZWN0S2V5cyA9IHZvaWQgMDtcbnZhciBfZm9ybWF0VXJsID0gcmVxdWlyZShcIi4vcm91dGVyL3V0aWxzL2Zvcm1hdC11cmxcIik7XG52YXIgX3JlYWN0ID0gcmVxdWlyZShcInJlYWN0XCIpO1xuZnVuY3Rpb24gZXhlY09uY2UoZm4pIHtcbiAgICBsZXQgdXNlZCA9IGZhbHNlO1xuICAgIGxldCByZXN1bHQ7XG4gICAgcmV0dXJuICguLi5hcmdzKT0+e1xuICAgICAgICBpZiAoIXVzZWQpIHtcbiAgICAgICAgICAgIHVzZWQgPSB0cnVlO1xuICAgICAgICAgICAgcmVzdWx0ID0gZm4oLi4uYXJncyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xufVxuZnVuY3Rpb24gZ2V0TG9jYXRpb25PcmlnaW4oKSB7XG4gICAgY29uc3QgeyBwcm90b2NvbCAsIGhvc3RuYW1lICwgcG9ydCAgfSA9IHdpbmRvdy5sb2NhdGlvbjtcbiAgICByZXR1cm4gYCR7cHJvdG9jb2x9Ly8ke2hvc3RuYW1lfSR7cG9ydCA/ICc6JyArIHBvcnQgOiAnJ31gO1xufVxuZnVuY3Rpb24gZ2V0VVJMKCkge1xuICAgIGNvbnN0IHsgaHJlZiAgfSA9IHdpbmRvdy5sb2NhdGlvbjtcbiAgICBjb25zdCBvcmlnaW4gPSBnZXRMb2NhdGlvbk9yaWdpbigpO1xuICAgIHJldHVybiBocmVmLnN1YnN0cmluZyhvcmlnaW4ubGVuZ3RoKTtcbn1cbmZ1bmN0aW9uIGdldERpc3BsYXlOYW1lKENvbXBvbmVudCkge1xuICAgIHJldHVybiB0eXBlb2YgQ29tcG9uZW50ID09PSAnc3RyaW5nJyA/IENvbXBvbmVudCA6IENvbXBvbmVudC5kaXNwbGF5TmFtZSB8fCBDb21wb25lbnQubmFtZSB8fCAnVW5rbm93bic7XG59XG5mdW5jdGlvbiBpc1Jlc1NlbnQocmVzKSB7XG4gICAgcmV0dXJuIHJlcy5maW5pc2hlZCB8fCByZXMuaGVhZGVyc1NlbnQ7XG59XG5mdW5jdGlvbiBub3JtYWxpemVSZXBlYXRlZFNsYXNoZXModXJsKSB7XG4gICAgY29uc3QgdXJsUGFydHMgPSB1cmwuc3BsaXQoJz8nKTtcbiAgICBjb25zdCB1cmxOb1F1ZXJ5ID0gdXJsUGFydHNbMF07XG4gICAgcmV0dXJuIHVybE5vUXVlcnkvLyBmaXJzdCB3ZSByZXBsYWNlIGFueSBub24tZW5jb2RlZCBiYWNrc2xhc2hlcyB3aXRoIGZvcndhcmRcbiAgICAvLyB0aGVuIG5vcm1hbGl6ZSByZXBlYXRlZCBmb3J3YXJkIHNsYXNoZXNcbiAgICAucmVwbGFjZSgvXFxcXC9nLCAnLycpLnJlcGxhY2UoL1xcL1xcLysvZywgJy8nKSArICh1cmxQYXJ0c1sxXSA/IGA/JHt1cmxQYXJ0cy5zbGljZSgxKS5qb2luKCc/Jyl9YCA6ICcnKTtcbn1cbmFzeW5jIGZ1bmN0aW9uIGxvYWRHZXRJbml0aWFsUHJvcHMoQXBwLCBjdHgpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICB2YXIgcmVmO1xuICAgICAgICBpZiAoKHJlZiA9IEFwcC5wcm90b3R5cGUpID09PSBudWxsIHx8IHJlZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVmLmdldEluaXRpYWxQcm9wcykge1xuICAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGBcIiR7Z2V0RGlzcGxheU5hbWUoQXBwKX0uZ2V0SW5pdGlhbFByb3BzKClcIiBpcyBkZWZpbmVkIGFzIGFuIGluc3RhbmNlIG1ldGhvZCAtIHZpc2l0IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2dldC1pbml0aWFsLXByb3BzLWFzLWFuLWluc3RhbmNlLW1ldGhvZCBmb3IgbW9yZSBpbmZvcm1hdGlvbi5gO1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIHdoZW4gY2FsbGVkIGZyb20gX2FwcCBgY3R4YCBpcyBuZXN0ZWQgaW4gYGN0eGBcbiAgICBjb25zdCByZXMgPSBjdHgucmVzIHx8IGN0eC5jdHggJiYgY3R4LmN0eC5yZXM7XG4gICAgaWYgKCFBcHAuZ2V0SW5pdGlhbFByb3BzKSB7XG4gICAgICAgIGlmIChjdHguY3R4ICYmIGN0eC5Db21wb25lbnQpIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmUgcGFnZVByb3BzIGRlZmF1bHRcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcGFnZVByb3BzOiBhd2FpdCBsb2FkR2V0SW5pdGlhbFByb3BzKGN0eC5Db21wb25lbnQsIGN0eC5jdHgpXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IHByb3BzID0gYXdhaXQgQXBwLmdldEluaXRpYWxQcm9wcyhjdHgpO1xuICAgIGlmIChyZXMgJiYgaXNSZXNTZW50KHJlcykpIHtcbiAgICAgICAgcmV0dXJuIHByb3BzO1xuICAgIH1cbiAgICBpZiAoIXByb3BzKSB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgXCIke2dldERpc3BsYXlOYW1lKEFwcCl9LmdldEluaXRpYWxQcm9wcygpXCIgc2hvdWxkIHJlc29sdmUgdG8gYW4gb2JqZWN0LiBCdXQgZm91bmQgXCIke3Byb3BzfVwiIGluc3RlYWQuYDtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBpZiAoT2JqZWN0LmtleXMocHJvcHMpLmxlbmd0aCA9PT0gMCAmJiAhY3R4LmN0eCkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGAke2dldERpc3BsYXlOYW1lKEFwcCl9IHJldHVybmVkIGFuIGVtcHR5IG9iamVjdCBmcm9tIFxcYGdldEluaXRpYWxQcm9wc1xcYC4gVGhpcyBkZS1vcHRpbWl6ZXMgYW5kIHByZXZlbnRzIGF1dG9tYXRpYyBzdGF0aWMgb3B0aW1pemF0aW9uLiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9lbXB0eS1vYmplY3QtZ2V0SW5pdGlhbFByb3BzYCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHByb3BzO1xufVxuY29uc3QgdXJsT2JqZWN0S2V5cyA9IFtcbiAgICAnYXV0aCcsXG4gICAgJ2hhc2gnLFxuICAgICdob3N0JyxcbiAgICAnaG9zdG5hbWUnLFxuICAgICdocmVmJyxcbiAgICAncGF0aCcsXG4gICAgJ3BhdGhuYW1lJyxcbiAgICAncG9ydCcsXG4gICAgJ3Byb3RvY29sJyxcbiAgICAncXVlcnknLFxuICAgICdzZWFyY2gnLFxuICAgICdzbGFzaGVzJywgXG5dO1xuZXhwb3J0cy51cmxPYmplY3RLZXlzID0gdXJsT2JqZWN0S2V5cztcbmZ1bmN0aW9uIGZvcm1hdFdpdGhWYWxpZGF0aW9uKHVybCkge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICBpZiAodXJsICE9PSBudWxsICYmIHR5cGVvZiB1cmwgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICBPYmplY3Qua2V5cyh1cmwpLmZvckVhY2goKGtleSk9PntcbiAgICAgICAgICAgICAgICBpZiAodXJsT2JqZWN0S2V5cy5pbmRleE9mKGtleSkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgVW5rbm93biBrZXkgcGFzc2VkIHZpYSB1cmxPYmplY3QgaW50byB1cmwuZm9ybWF0OiAke2tleX1gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gKDAsIF9mb3JtYXRVcmwpLmZvcm1hdFVybCh1cmwpO1xufVxuY29uc3QgU1AgPSB0eXBlb2YgcGVyZm9ybWFuY2UgIT09ICd1bmRlZmluZWQnO1xuZXhwb3J0cy5TUCA9IFNQO1xuY29uc3QgU1QgPSBTUCAmJiB0eXBlb2YgcGVyZm9ybWFuY2UubWFyayA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgcGVyZm9ybWFuY2UubWVhc3VyZSA9PT0gJ2Z1bmN0aW9uJztcbmV4cG9ydHMuU1QgPSBTVDtcbmNsYXNzIERlY29kZUVycm9yIGV4dGVuZHMgRXJyb3Ige1xufVxuZXhwb3J0cy5EZWNvZGVFcnJvciA9IERlY29kZUVycm9yO1xuY29uc3QgSHRtbENvbnRleHQgPSAoMCwgX3JlYWN0KS5jcmVhdGVDb250ZXh0KG51bGwpO1xuZXhwb3J0cy5IdG1sQ29udGV4dCA9IEh0bWxDb250ZXh0O1xuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBIdG1sQ29udGV4dC5kaXNwbGF5TmFtZSA9ICdIdG1sQ29udGV4dCc7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXV0aWxzLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImV4ZWNPbmNlIiwiZ2V0TG9jYXRpb25PcmlnaW4iLCJnZXRVUkwiLCJnZXREaXNwbGF5TmFtZSIsImlzUmVzU2VudCIsIm5vcm1hbGl6ZVJlcGVhdGVkU2xhc2hlcyIsImxvYWRHZXRJbml0aWFsUHJvcHMiLCJmb3JtYXRXaXRoVmFsaWRhdGlvbiIsIkh0bWxDb250ZXh0IiwiU1QiLCJTUCIsInVybE9iamVjdEtleXMiLCJfZm9ybWF0VXJsIiwicmVxdWlyZSIsIl9yZWFjdCIsImZuIiwidXNlZCIsInJlc3VsdCIsIndpbmRvdyIsImxvY2F0aW9uIiwicHJvdG9jb2wiLCJob3N0bmFtZSIsInBvcnQiLCJocmVmIiwib3JpZ2luIiwic3Vic3RyaW5nIiwibGVuZ3RoIiwiQ29tcG9uZW50IiwiZGlzcGxheU5hbWUiLCJuYW1lIiwicmVzIiwiZmluaXNoZWQiLCJoZWFkZXJzU2VudCIsInVybCIsInVybFBhcnRzIiwic3BsaXQiLCJ1cmxOb1F1ZXJ5IiwicmVwbGFjZSIsInNsaWNlIiwiam9pbiIsIkFwcCIsImN0eCIsInJlZiIsInByb3RvdHlwZSIsImdldEluaXRpYWxQcm9wcyIsIm1lc3NhZ2UiLCJFcnJvciIsInBhZ2VQcm9wcyIsInByb3BzIiwia2V5cyIsImNvbnNvbGUiLCJ3YXJuIiwiZm9yRWFjaCIsImtleSIsImluZGV4T2YiLCJmb3JtYXRVcmwiLCJwZXJmb3JtYW5jZSIsIm1hcmsiLCJtZWFzdXJlIiwiRGVjb2RlRXJyb3IiLCJjcmVhdGVDb250ZXh0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/utils.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/polyfills/object-assign.js": +/*!*****************************************************************!*\ + !*** ./node_modules/next/dist/build/polyfills/object-assign.js ***! + \*****************************************************************/ +/***/ (function(module) { + +"use strict"; +eval("\nvar assign = Object.assign.bind(Object);\nmodule.exports = assign;\nmodule.exports[\"default\"] = module.exports;\n\n//# sourceMappingURL=object-assign.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3BvbHlmaWxscy9vYmplY3QtYXNzaWduLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQTtBQUNBLHlCQUFzQjs7QUFFdEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC9wb2x5ZmlsbHMvb2JqZWN0LWFzc2lnbi5qcz9lN2QxIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIGFzc2lnbiA9IE9iamVjdC5hc3NpZ24uYmluZChPYmplY3QpO1xubW9kdWxlLmV4cG9ydHMgPSBhc3NpZ247XG5tb2R1bGUuZXhwb3J0cy5kZWZhdWx0ID0gbW9kdWxlLmV4cG9ydHM7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW9iamVjdC1hc3NpZ24uanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/polyfills/object-assign.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/lib/is-error.js": +/*!************************************************!*\ + !*** ./node_modules/next/dist/lib/is-error.js ***! + \************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = isError;\nfunction isError(err) {\n return typeof err === 'object' && err !== null && 'name' in err && 'message' in err;\n}\n\n//# sourceMappingURL=is-error.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9pcy1lcnJvci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGtCQUFlO0FBQ2Y7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL2lzLWVycm9yLmpzPzE3OGUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSBpc0Vycm9yO1xuZnVuY3Rpb24gaXNFcnJvcihlcnIpIHtcbiAgICByZXR1cm4gdHlwZW9mIGVyciA9PT0gJ29iamVjdCcgJiYgZXJyICE9PSBudWxsICYmICduYW1lJyBpbiBlcnIgJiYgJ21lc3NhZ2UnIGluIGVycjtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXMtZXJyb3IuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/lib/is-error.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/server/denormalize-page-path.js": +/*!****************************************************************!*\ + !*** ./node_modules/next/dist/server/denormalize-page-path.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.normalizePathSep = normalizePathSep;\nexports.denormalizePagePath = denormalizePagePath;\nfunction normalizePathSep(path) {\n return path.replace(/\\\\/g, '/');\n}\nfunction denormalizePagePath(page) {\n page = normalizePathSep(page);\n if (page.startsWith('/index/')) {\n page = page.slice(6);\n } else if (page === '/index') {\n page = '/';\n }\n return page;\n}\n\n//# sourceMappingURL=denormalize-page-path.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9kZW5vcm1hbGl6ZS1wYWdlLXBhdGguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRix3QkFBd0I7QUFDeEIsMkJBQTJCO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2Rlbm9ybWFsaXplLXBhZ2UtcGF0aC5qcz82NzhhIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5ub3JtYWxpemVQYXRoU2VwID0gbm9ybWFsaXplUGF0aFNlcDtcbmV4cG9ydHMuZGVub3JtYWxpemVQYWdlUGF0aCA9IGRlbm9ybWFsaXplUGFnZVBhdGg7XG5mdW5jdGlvbiBub3JtYWxpemVQYXRoU2VwKHBhdGgpIHtcbiAgICByZXR1cm4gcGF0aC5yZXBsYWNlKC9cXFxcL2csICcvJyk7XG59XG5mdW5jdGlvbiBkZW5vcm1hbGl6ZVBhZ2VQYXRoKHBhZ2UpIHtcbiAgICBwYWdlID0gbm9ybWFsaXplUGF0aFNlcChwYWdlKTtcbiAgICBpZiAocGFnZS5zdGFydHNXaXRoKCcvaW5kZXgvJykpIHtcbiAgICAgICAgcGFnZSA9IHBhZ2Uuc2xpY2UoNik7XG4gICAgfSBlbHNlIGlmIChwYWdlID09PSAnL2luZGV4Jykge1xuICAgICAgICBwYWdlID0gJy8nO1xuICAgIH1cbiAgICByZXR1cm4gcGFnZTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGVub3JtYWxpemUtcGFnZS1wYXRoLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/denormalize-page-path.js\n"); + +/***/ }), + +/***/ "./node_modules/next/router.js": +/*!*************************************!*\ + !*** ./node_modules/next/router.js ***! + \*************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("module.exports = __webpack_require__(/*! ./dist/client/router */ \"./node_modules/next/dist/client/router.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9yb3V0ZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQUEsNkdBQWdEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L3JvdXRlci5qcz8xYmI2Il0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9kaXN0L2NsaWVudC9yb3V0ZXInKVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/router.js\n"); + +/***/ }), + +/***/ "./node_modules/react-is/cjs/react-is.development.js": +/*!***********************************************************!*\ + !*** ./node_modules/react-is/cjs/react-is.development.js ***! + \***********************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("/** @license React v17.0.2\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its 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\n\n\nif (true) {\n (function() {\n'use strict';\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar REACT_ELEMENT_TYPE = 0xeac7;\nvar REACT_PORTAL_TYPE = 0xeaca;\nvar REACT_FRAGMENT_TYPE = 0xeacb;\nvar REACT_STRICT_MODE_TYPE = 0xeacc;\nvar REACT_PROFILER_TYPE = 0xead2;\nvar REACT_PROVIDER_TYPE = 0xeacd;\nvar REACT_CONTEXT_TYPE = 0xeace;\nvar REACT_FORWARD_REF_TYPE = 0xead0;\nvar REACT_SUSPENSE_TYPE = 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = 0xead8;\nvar REACT_MEMO_TYPE = 0xead3;\nvar REACT_LAZY_TYPE = 0xead4;\nvar REACT_BLOCK_TYPE = 0xead9;\nvar REACT_SERVER_BLOCK_TYPE = 0xeada;\nvar REACT_FUNDAMENTAL_TYPE = 0xead5;\nvar REACT_SCOPE_TYPE = 0xead7;\nvar REACT_OPAQUE_ID_TYPE = 0xeae0;\nvar REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1;\nvar REACT_OFFSCREEN_TYPE = 0xeae2;\nvar REACT_LEGACY_HIDDEN_TYPE = 0xeae3;\n\nif (typeof Symbol === 'function' && Symbol.for) {\n var symbolFor = Symbol.for;\n REACT_ELEMENT_TYPE = symbolFor('react.element');\n REACT_PORTAL_TYPE = symbolFor('react.portal');\n REACT_FRAGMENT_TYPE = symbolFor('react.fragment');\n REACT_STRICT_MODE_TYPE = symbolFor('react.strict_mode');\n REACT_PROFILER_TYPE = symbolFor('react.profiler');\n REACT_PROVIDER_TYPE = symbolFor('react.provider');\n REACT_CONTEXT_TYPE = symbolFor('react.context');\n REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref');\n REACT_SUSPENSE_TYPE = symbolFor('react.suspense');\n REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list');\n REACT_MEMO_TYPE = symbolFor('react.memo');\n REACT_LAZY_TYPE = symbolFor('react.lazy');\n REACT_BLOCK_TYPE = symbolFor('react.block');\n REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block');\n REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental');\n REACT_SCOPE_TYPE = symbolFor('react.scope');\n REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id');\n REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode');\n REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen');\n REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden');\n}\n\n// Filter certain DOM attributes (e.g. src, href) if their values are empty strings.\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || type === REACT_DEBUG_TRACING_MODE_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_LEGACY_HIDDEN_TYPE || enableScopeAPI ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_BLOCK_TYPE || type[0] === REACT_SERVER_BLOCK_TYPE) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\nvar hasWarnedAboutDeprecatedIsConcurrentMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isConcurrentMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsConcurrentMode) {\n hasWarnedAboutDeprecatedIsConcurrentMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isConcurrentMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtaXMvY2pzL3JlYWN0LWlzLmRldmVsb3BtZW50LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWE7O0FBRWIsSUFBSSxJQUFxQztBQUN6QztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUEsNEJBQTRCOztBQUU1QjtBQUNBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNEQUFzRDs7QUFFdEQ7QUFDQTtBQUNBO0FBQ0Esa0RBQWtEOztBQUVsRDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVEQUF1RDs7QUFFdkQ7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsdUJBQXVCO0FBQ3ZCLHVCQUF1QjtBQUN2QixlQUFlO0FBQ2Ysa0JBQWtCO0FBQ2xCLGdCQUFnQjtBQUNoQixZQUFZO0FBQ1osWUFBWTtBQUNaLGNBQWM7QUFDZCxnQkFBZ0I7QUFDaEIsa0JBQWtCO0FBQ2xCLGdCQUFnQjtBQUNoQixtQkFBbUI7QUFDbkIsd0JBQXdCO0FBQ3hCLHlCQUF5QjtBQUN6Qix5QkFBeUI7QUFDekIsaUJBQWlCO0FBQ2pCLG9CQUFvQjtBQUNwQixrQkFBa0I7QUFDbEIsY0FBYztBQUNkLGNBQWM7QUFDZCxnQkFBZ0I7QUFDaEIsa0JBQWtCO0FBQ2xCLG9CQUFvQjtBQUNwQixrQkFBa0I7QUFDbEIsMEJBQTBCO0FBQzFCLGNBQWM7QUFDZCxHQUFHO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWlzL2Nqcy9yZWFjdC1pcy5kZXZlbG9wbWVudC5qcz80OTZhIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBAbGljZW5zZSBSZWFjdCB2MTcuMC4yXG4gKiByZWFjdC1pcy5kZXZlbG9wbWVudC5qc1xuICpcbiAqIENvcHlyaWdodCAoYykgRmFjZWJvb2ssIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAoZnVuY3Rpb24oKSB7XG4ndXNlIHN0cmljdCc7XG5cbi8vIEFUVEVOVElPTlxuLy8gV2hlbiBhZGRpbmcgbmV3IHN5bWJvbHMgdG8gdGhpcyBmaWxlLFxuLy8gUGxlYXNlIGNvbnNpZGVyIGFsc28gYWRkaW5nIHRvICdyZWFjdC1kZXZ0b29scy1zaGFyZWQvc3JjL2JhY2tlbmQvUmVhY3RTeW1ib2xzJ1xuLy8gVGhlIFN5bWJvbCB1c2VkIHRvIHRhZyB0aGUgUmVhY3RFbGVtZW50LWxpa2UgdHlwZXMuIElmIHRoZXJlIGlzIG5vIG5hdGl2ZSBTeW1ib2xcbi8vIG5vciBwb2x5ZmlsbCwgdGhlbiBhIHBsYWluIG51bWJlciBpcyB1c2VkIGZvciBwZXJmb3JtYW5jZS5cbnZhciBSRUFDVF9FTEVNRU5UX1RZUEUgPSAweGVhYzc7XG52YXIgUkVBQ1RfUE9SVEFMX1RZUEUgPSAweGVhY2E7XG52YXIgUkVBQ1RfRlJBR01FTlRfVFlQRSA9IDB4ZWFjYjtcbnZhciBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFID0gMHhlYWNjO1xudmFyIFJFQUNUX1BST0ZJTEVSX1RZUEUgPSAweGVhZDI7XG52YXIgUkVBQ1RfUFJPVklERVJfVFlQRSA9IDB4ZWFjZDtcbnZhciBSRUFDVF9DT05URVhUX1RZUEUgPSAweGVhY2U7XG52YXIgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSA9IDB4ZWFkMDtcbnZhciBSRUFDVF9TVVNQRU5TRV9UWVBFID0gMHhlYWQxO1xudmFyIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSA9IDB4ZWFkODtcbnZhciBSRUFDVF9NRU1PX1RZUEUgPSAweGVhZDM7XG52YXIgUkVBQ1RfTEFaWV9UWVBFID0gMHhlYWQ0O1xudmFyIFJFQUNUX0JMT0NLX1RZUEUgPSAweGVhZDk7XG52YXIgUkVBQ1RfU0VSVkVSX0JMT0NLX1RZUEUgPSAweGVhZGE7XG52YXIgUkVBQ1RfRlVOREFNRU5UQUxfVFlQRSA9IDB4ZWFkNTtcbnZhciBSRUFDVF9TQ09QRV9UWVBFID0gMHhlYWQ3O1xudmFyIFJFQUNUX09QQVFVRV9JRF9UWVBFID0gMHhlYWUwO1xudmFyIFJFQUNUX0RFQlVHX1RSQUNJTkdfTU9ERV9UWVBFID0gMHhlYWUxO1xudmFyIFJFQUNUX09GRlNDUkVFTl9UWVBFID0gMHhlYWUyO1xudmFyIFJFQUNUX0xFR0FDWV9ISURERU5fVFlQRSA9IDB4ZWFlMztcblxuaWYgKHR5cGVvZiBTeW1ib2wgPT09ICdmdW5jdGlvbicgJiYgU3ltYm9sLmZvcikge1xuICB2YXIgc3ltYm9sRm9yID0gU3ltYm9sLmZvcjtcbiAgUkVBQ1RfRUxFTUVOVF9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5lbGVtZW50Jyk7XG4gIFJFQUNUX1BPUlRBTF9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5wb3J0YWwnKTtcbiAgUkVBQ1RfRlJBR01FTlRfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QuZnJhZ21lbnQnKTtcbiAgUkVBQ1RfU1RSSUNUX01PREVfVFlQRSA9IHN5bWJvbEZvcigncmVhY3Quc3RyaWN0X21vZGUnKTtcbiAgUkVBQ1RfUFJPRklMRVJfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QucHJvZmlsZXInKTtcbiAgUkVBQ1RfUFJPVklERVJfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QucHJvdmlkZXInKTtcbiAgUkVBQ1RfQ09OVEVYVF9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5jb250ZXh0Jyk7XG4gIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LmZvcndhcmRfcmVmJyk7XG4gIFJFQUNUX1NVU1BFTlNFX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LnN1c3BlbnNlJyk7XG4gIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSA9IHN5bWJvbEZvcigncmVhY3Quc3VzcGVuc2VfbGlzdCcpO1xuICBSRUFDVF9NRU1PX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0Lm1lbW8nKTtcbiAgUkVBQ1RfTEFaWV9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5sYXp5Jyk7XG4gIFJFQUNUX0JMT0NLX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LmJsb2NrJyk7XG4gIFJFQUNUX1NFUlZFUl9CTE9DS19UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5zZXJ2ZXIuYmxvY2snKTtcbiAgUkVBQ1RfRlVOREFNRU5UQUxfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QuZnVuZGFtZW50YWwnKTtcbiAgUkVBQ1RfU0NPUEVfVFlQRSA9IHN5bWJvbEZvcigncmVhY3Quc2NvcGUnKTtcbiAgUkVBQ1RfT1BBUVVFX0lEX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0Lm9wYXF1ZS5pZCcpO1xuICBSRUFDVF9ERUJVR19UUkFDSU5HX01PREVfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QuZGVidWdfdHJhY2VfbW9kZScpO1xuICBSRUFDVF9PRkZTQ1JFRU5fVFlQRSA9IHN5bWJvbEZvcigncmVhY3Qub2Zmc2NyZWVuJyk7XG4gIFJFQUNUX0xFR0FDWV9ISURERU5fVFlQRSA9IHN5bWJvbEZvcigncmVhY3QubGVnYWN5X2hpZGRlbicpO1xufVxuXG4vLyBGaWx0ZXIgY2VydGFpbiBET00gYXR0cmlidXRlcyAoZS5nLiBzcmMsIGhyZWYpIGlmIHRoZWlyIHZhbHVlcyBhcmUgZW1wdHkgc3RyaW5ncy5cblxudmFyIGVuYWJsZVNjb3BlQVBJID0gZmFsc2U7IC8vIEV4cGVyaW1lbnRhbCBDcmVhdGUgRXZlbnQgSGFuZGxlIEFQSS5cblxuZnVuY3Rpb24gaXNWYWxpZEVsZW1lbnRUeXBlKHR5cGUpIHtcbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiB0cnVlO1xuICB9IC8vIE5vdGU6IHR5cGVvZiBtaWdodCBiZSBvdGhlciB0aGFuICdzeW1ib2wnIG9yICdudW1iZXInIChlLmcuIGlmIGl0J3MgYSBwb2x5ZmlsbCkuXG5cblxuICBpZiAodHlwZSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9QUk9GSUxFUl9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX0RFQlVHX1RSQUNJTkdfTU9ERV9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgfHwgdHlwZSA9PT0gUkVBQ1RfU1VTUEVOU0VfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUgfHwgdHlwZSA9PT0gUkVBQ1RfTEVHQUNZX0hJRERFTl9UWVBFIHx8IGVuYWJsZVNjb3BlQVBJICkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnb2JqZWN0JyAmJiB0eXBlICE9PSBudWxsKSB7XG4gICAgaWYgKHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0xBWllfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9NRU1PX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfUFJPVklERVJfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9DT05URVhUX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9GVU5EQU1FTlRBTF9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0JMT0NLX1RZUEUgfHwgdHlwZVswXSA9PT0gUkVBQ1RfU0VSVkVSX0JMT0NLX1RZUEUpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gdHlwZU9mKG9iamVjdCkge1xuICBpZiAodHlwZW9mIG9iamVjdCA9PT0gJ29iamVjdCcgJiYgb2JqZWN0ICE9PSBudWxsKSB7XG4gICAgdmFyICQkdHlwZW9mID0gb2JqZWN0LiQkdHlwZW9mO1xuXG4gICAgc3dpdGNoICgkJHR5cGVvZikge1xuICAgICAgY2FzZSBSRUFDVF9FTEVNRU5UX1RZUEU6XG4gICAgICAgIHZhciB0eXBlID0gb2JqZWN0LnR5cGU7XG5cbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgY2FzZSBSRUFDVF9GUkFHTUVOVF9UWVBFOlxuICAgICAgICAgIGNhc2UgUkVBQ1RfUFJPRklMRVJfVFlQRTpcbiAgICAgICAgICBjYXNlIFJFQUNUX1NUUklDVF9NT0RFX1RZUEU6XG4gICAgICAgICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9UWVBFOlxuICAgICAgICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFOlxuICAgICAgICAgICAgcmV0dXJuIHR5cGU7XG5cbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdmFyICQkdHlwZW9mVHlwZSA9IHR5cGUgJiYgdHlwZS4kJHR5cGVvZjtcblxuICAgICAgICAgICAgc3dpdGNoICgkJHR5cGVvZlR5cGUpIHtcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9DT05URVhUX1RZUEU6XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTpcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOlxuICAgICAgICAgICAgICBjYXNlIFJFQUNUX1BST1ZJREVSX1RZUEU6XG4gICAgICAgICAgICAgICAgcmV0dXJuICQkdHlwZW9mVHlwZTtcblxuICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiAkJHR5cGVvZjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgIGNhc2UgUkVBQ1RfUE9SVEFMX1RZUEU6XG4gICAgICAgIHJldHVybiAkJHR5cGVvZjtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxudmFyIENvbnRleHRDb25zdW1lciA9IFJFQUNUX0NPTlRFWFRfVFlQRTtcbnZhciBDb250ZXh0UHJvdmlkZXIgPSBSRUFDVF9QUk9WSURFUl9UWVBFO1xudmFyIEVsZW1lbnQgPSBSRUFDVF9FTEVNRU5UX1RZUEU7XG52YXIgRm9yd2FyZFJlZiA9IFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU7XG52YXIgRnJhZ21lbnQgPSBSRUFDVF9GUkFHTUVOVF9UWVBFO1xudmFyIExhenkgPSBSRUFDVF9MQVpZX1RZUEU7XG52YXIgTWVtbyA9IFJFQUNUX01FTU9fVFlQRTtcbnZhciBQb3J0YWwgPSBSRUFDVF9QT1JUQUxfVFlQRTtcbnZhciBQcm9maWxlciA9IFJFQUNUX1BST0ZJTEVSX1RZUEU7XG52YXIgU3RyaWN0TW9kZSA9IFJFQUNUX1NUUklDVF9NT0RFX1RZUEU7XG52YXIgU3VzcGVuc2UgPSBSRUFDVF9TVVNQRU5TRV9UWVBFO1xudmFyIGhhc1dhcm5lZEFib3V0RGVwcmVjYXRlZElzQXN5bmNNb2RlID0gZmFsc2U7XG52YXIgaGFzV2FybmVkQWJvdXREZXByZWNhdGVkSXNDb25jdXJyZW50TW9kZSA9IGZhbHNlOyAvLyBBc3luY01vZGUgc2hvdWxkIGJlIGRlcHJlY2F0ZWRcblxuZnVuY3Rpb24gaXNBc3luY01vZGUob2JqZWN0KSB7XG4gIHtcbiAgICBpZiAoIWhhc1dhcm5lZEFib3V0RGVwcmVjYXRlZElzQXN5bmNNb2RlKSB7XG4gICAgICBoYXNXYXJuZWRBYm91dERlcHJlY2F0ZWRJc0FzeW5jTW9kZSA9IHRydWU7IC8vIFVzaW5nIGNvbnNvbGVbJ3dhcm4nXSB0byBldmFkZSBCYWJlbCBhbmQgRVNMaW50XG5cbiAgICAgIGNvbnNvbGVbJ3dhcm4nXSgnVGhlIFJlYWN0SXMuaXNBc3luY01vZGUoKSBhbGlhcyBoYXMgYmVlbiBkZXByZWNhdGVkLCAnICsgJ2FuZCB3aWxsIGJlIHJlbW92ZWQgaW4gUmVhY3QgMTgrLicpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cbmZ1bmN0aW9uIGlzQ29uY3VycmVudE1vZGUob2JqZWN0KSB7XG4gIHtcbiAgICBpZiAoIWhhc1dhcm5lZEFib3V0RGVwcmVjYXRlZElzQ29uY3VycmVudE1vZGUpIHtcbiAgICAgIGhhc1dhcm5lZEFib3V0RGVwcmVjYXRlZElzQ29uY3VycmVudE1vZGUgPSB0cnVlOyAvLyBVc2luZyBjb25zb2xlWyd3YXJuJ10gdG8gZXZhZGUgQmFiZWwgYW5kIEVTTGludFxuXG4gICAgICBjb25zb2xlWyd3YXJuJ10oJ1RoZSBSZWFjdElzLmlzQ29uY3VycmVudE1vZGUoKSBhbGlhcyBoYXMgYmVlbiBkZXByZWNhdGVkLCAnICsgJ2FuZCB3aWxsIGJlIHJlbW92ZWQgaW4gUmVhY3QgMTgrLicpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cbmZ1bmN0aW9uIGlzQ29udGV4dENvbnN1bWVyKG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX0NPTlRFWFRfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzQ29udGV4dFByb3ZpZGVyKG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX1BST1ZJREVSX1RZUEU7XG59XG5mdW5jdGlvbiBpc0VsZW1lbnQob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlb2Ygb2JqZWN0ID09PSAnb2JqZWN0JyAmJiBvYmplY3QgIT09IG51bGwgJiYgb2JqZWN0LiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEU7XG59XG5mdW5jdGlvbiBpc0ZvcndhcmRSZWYob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzRnJhZ21lbnQob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzTGF6eShvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9MQVpZX1RZUEU7XG59XG5mdW5jdGlvbiBpc01lbW8ob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfTUVNT19UWVBFO1xufVxuZnVuY3Rpb24gaXNQb3J0YWwob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfUE9SVEFMX1RZUEU7XG59XG5mdW5jdGlvbiBpc1Byb2ZpbGVyKG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX1BST0ZJTEVSX1RZUEU7XG59XG5mdW5jdGlvbiBpc1N0cmljdE1vZGUob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfU1RSSUNUX01PREVfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzU3VzcGVuc2Uob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfU1VTUEVOU0VfVFlQRTtcbn1cblxuZXhwb3J0cy5Db250ZXh0Q29uc3VtZXIgPSBDb250ZXh0Q29uc3VtZXI7XG5leHBvcnRzLkNvbnRleHRQcm92aWRlciA9IENvbnRleHRQcm92aWRlcjtcbmV4cG9ydHMuRWxlbWVudCA9IEVsZW1lbnQ7XG5leHBvcnRzLkZvcndhcmRSZWYgPSBGb3J3YXJkUmVmO1xuZXhwb3J0cy5GcmFnbWVudCA9IEZyYWdtZW50O1xuZXhwb3J0cy5MYXp5ID0gTGF6eTtcbmV4cG9ydHMuTWVtbyA9IE1lbW87XG5leHBvcnRzLlBvcnRhbCA9IFBvcnRhbDtcbmV4cG9ydHMuUHJvZmlsZXIgPSBQcm9maWxlcjtcbmV4cG9ydHMuU3RyaWN0TW9kZSA9IFN0cmljdE1vZGU7XG5leHBvcnRzLlN1c3BlbnNlID0gU3VzcGVuc2U7XG5leHBvcnRzLmlzQXN5bmNNb2RlID0gaXNBc3luY01vZGU7XG5leHBvcnRzLmlzQ29uY3VycmVudE1vZGUgPSBpc0NvbmN1cnJlbnRNb2RlO1xuZXhwb3J0cy5pc0NvbnRleHRDb25zdW1lciA9IGlzQ29udGV4dENvbnN1bWVyO1xuZXhwb3J0cy5pc0NvbnRleHRQcm92aWRlciA9IGlzQ29udGV4dFByb3ZpZGVyO1xuZXhwb3J0cy5pc0VsZW1lbnQgPSBpc0VsZW1lbnQ7XG5leHBvcnRzLmlzRm9yd2FyZFJlZiA9IGlzRm9yd2FyZFJlZjtcbmV4cG9ydHMuaXNGcmFnbWVudCA9IGlzRnJhZ21lbnQ7XG5leHBvcnRzLmlzTGF6eSA9IGlzTGF6eTtcbmV4cG9ydHMuaXNNZW1vID0gaXNNZW1vO1xuZXhwb3J0cy5pc1BvcnRhbCA9IGlzUG9ydGFsO1xuZXhwb3J0cy5pc1Byb2ZpbGVyID0gaXNQcm9maWxlcjtcbmV4cG9ydHMuaXNTdHJpY3RNb2RlID0gaXNTdHJpY3RNb2RlO1xuZXhwb3J0cy5pc1N1c3BlbnNlID0gaXNTdXNwZW5zZTtcbmV4cG9ydHMuaXNWYWxpZEVsZW1lbnRUeXBlID0gaXNWYWxpZEVsZW1lbnRUeXBlO1xuZXhwb3J0cy50eXBlT2YgPSB0eXBlT2Y7XG4gIH0pKCk7XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-is/cjs/react-is.development.js\n"); + +/***/ }), + +/***/ "./node_modules/react-is/index.js": +/*!****************************************!*\ + !*** ./node_modules/react-is/index.js ***! + \****************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ \"./node_modules/react-is/cjs/react-is.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtaXMvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsSUFBSSxLQUFxQyxFQUFFLEVBRTFDLENBQUM7QUFDRixFQUFFLGdJQUF5RDtBQUMzRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmVhY3QtaXMvaW5kZXguanM/YjMxMyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtaXMucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtaXMuZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-is/index.js\n"); + +/***/ }), + +/***/ "./node_modules/react/cjs/react.development.js": +/*!*****************************************************!*\ + !*** ./node_modules/react/cjs/react.development.js ***! + \*****************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("/** @license React v17.0.2\n * react.development.js\n *\n * Copyright (c) Facebook, Inc. and its 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\n\n\nif (true) {\n (function() {\n'use strict';\n\nvar _assign = __webpack_require__(/*! object-assign */ \"./node_modules/next/dist/build/polyfills/object-assign.js\");\n\n// TODO: this is special because it gets imported during build.\nvar ReactVersion = '17.0.2';\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar REACT_ELEMENT_TYPE = 0xeac7;\nvar REACT_PORTAL_TYPE = 0xeaca;\nexports.Fragment = 0xeacb;\nexports.StrictMode = 0xeacc;\nexports.Profiler = 0xead2;\nvar REACT_PROVIDER_TYPE = 0xeacd;\nvar REACT_CONTEXT_TYPE = 0xeace;\nvar REACT_FORWARD_REF_TYPE = 0xead0;\nexports.Suspense = 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = 0xead8;\nvar REACT_MEMO_TYPE = 0xead3;\nvar REACT_LAZY_TYPE = 0xead4;\nvar REACT_BLOCK_TYPE = 0xead9;\nvar REACT_SERVER_BLOCK_TYPE = 0xeada;\nvar REACT_FUNDAMENTAL_TYPE = 0xead5;\nvar REACT_SCOPE_TYPE = 0xead7;\nvar REACT_OPAQUE_ID_TYPE = 0xeae0;\nvar REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1;\nvar REACT_OFFSCREEN_TYPE = 0xeae2;\nvar REACT_LEGACY_HIDDEN_TYPE = 0xeae3;\n\nif (typeof Symbol === 'function' && Symbol.for) {\n var symbolFor = Symbol.for;\n REACT_ELEMENT_TYPE = symbolFor('react.element');\n REACT_PORTAL_TYPE = symbolFor('react.portal');\n exports.Fragment = symbolFor('react.fragment');\n exports.StrictMode = symbolFor('react.strict_mode');\n exports.Profiler = symbolFor('react.profiler');\n REACT_PROVIDER_TYPE = symbolFor('react.provider');\n REACT_CONTEXT_TYPE = symbolFor('react.context');\n REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref');\n exports.Suspense = symbolFor('react.suspense');\n REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list');\n REACT_MEMO_TYPE = symbolFor('react.memo');\n REACT_LAZY_TYPE = symbolFor('react.lazy');\n REACT_BLOCK_TYPE = symbolFor('react.block');\n REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block');\n REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental');\n REACT_SCOPE_TYPE = symbolFor('react.scope');\n REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id');\n REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode');\n REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen');\n REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden');\n}\n\nvar MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\n return null;\n }\n\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n\n return null;\n}\n\n/**\n * Keeps track of the current dispatcher.\n */\nvar ReactCurrentDispatcher = {\n /**\n * @internal\n * @type {ReactComponent}\n */\n current: null\n};\n\n/**\n * Keeps track of the current batch's configuration such as how long an update\n * should suspend for if it needs to.\n */\nvar ReactCurrentBatchConfig = {\n transition: 0\n};\n\n/**\n * Keeps track of the current owner.\n *\n * The current owner is the component who should own any components that are\n * currently being constructed.\n */\nvar ReactCurrentOwner = {\n /**\n * @internal\n * @type {ReactComponent}\n */\n current: null\n};\n\nvar ReactDebugCurrentFrame = {};\nvar currentExtraStackFrame = null;\nfunction setExtraStackFrame(stack) {\n {\n currentExtraStackFrame = stack;\n }\n}\n\n{\n ReactDebugCurrentFrame.setExtraStackFrame = function (stack) {\n {\n currentExtraStackFrame = stack;\n }\n }; // Stack implementation injected by the current renderer.\n\n\n ReactDebugCurrentFrame.getCurrentStack = null;\n\n ReactDebugCurrentFrame.getStackAddendum = function () {\n var stack = ''; // Add an extra top frame while an element is being validated\n\n if (currentExtraStackFrame) {\n stack += currentExtraStackFrame;\n } // Delegate to the injected renderer-specific implementation\n\n\n var impl = ReactDebugCurrentFrame.getCurrentStack;\n\n if (impl) {\n stack += impl() || '';\n }\n\n return stack;\n };\n}\n\n/**\n * Used by act() to track whether you're inside an act() scope.\n */\nvar IsSomeRendererActing = {\n current: false\n};\n\nvar ReactSharedInternals = {\n ReactCurrentDispatcher: ReactCurrentDispatcher,\n ReactCurrentBatchConfig: ReactCurrentBatchConfig,\n ReactCurrentOwner: ReactCurrentOwner,\n IsSomeRendererActing: IsSomeRendererActing,\n // Used by renderers to avoid bundling object-assign twice in UMD bundles:\n assign: _assign\n};\n\n{\n ReactSharedInternals.ReactDebugCurrentFrame = ReactDebugCurrentFrame;\n}\n\n// by calls to these methods by a Babel plugin.\n//\n// In PROD (or in packages without access to React internals),\n// they are left as they are instead.\n\nfunction warn(format) {\n {\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\n printWarning('warn', format, args);\n }\n}\nfunction error(format) {\n {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n printWarning('error', format, args);\n }\n}\n\nfunction printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n }\n\n var argsWithFormat = args.map(function (item) {\n return '' + item;\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n}\n\nvar didWarnStateUpdateForUnmountedComponent = {};\n\nfunction warnNoop(publicInstance, callerName) {\n {\n var _constructor = publicInstance.constructor;\n var componentName = _constructor && (_constructor.displayName || _constructor.name) || 'ReactClass';\n var warningKey = componentName + \".\" + callerName;\n\n if (didWarnStateUpdateForUnmountedComponent[warningKey]) {\n return;\n }\n\n error(\"Can't call %s on a component that is not yet mounted. \" + 'This is a no-op, but it might indicate a bug in your application. ' + 'Instead, assign to `this.state` directly or define a `state = {};` ' + 'class property with the desired state in the %s component.', callerName, componentName);\n\n didWarnStateUpdateForUnmountedComponent[warningKey] = true;\n }\n}\n/**\n * This is the abstract API for an update queue.\n */\n\n\nvar ReactNoopUpdateQueue = {\n /**\n * Checks whether or not this composite component is mounted.\n * @param {ReactClass} publicInstance The instance we want to test.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function (publicInstance) {\n return false;\n },\n\n /**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {?function} callback Called after component is updated.\n * @param {?string} callerName name of the calling function in the public API.\n * @internal\n */\n enqueueForceUpdate: function (publicInstance, callback, callerName) {\n warnNoop(publicInstance, 'forceUpdate');\n },\n\n /**\n * Replaces all of the state. Always use this or `setState` to mutate state.\n * You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} completeState Next state.\n * @param {?function} callback Called after component is updated.\n * @param {?string} callerName name of the calling function in the public API.\n * @internal\n */\n enqueueReplaceState: function (publicInstance, completeState, callback, callerName) {\n warnNoop(publicInstance, 'replaceState');\n },\n\n /**\n * Sets a subset of the state. This only exists because _pendingState is\n * internal. This provides a merging strategy that is not available to deep\n * properties which is confusing. TODO: Expose pendingState or don't use it\n * during the merge.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} partialState Next partial state to be merged with state.\n * @param {?function} callback Called after component is updated.\n * @param {?string} Name of the calling function in the public API.\n * @internal\n */\n enqueueSetState: function (publicInstance, partialState, callback, callerName) {\n warnNoop(publicInstance, 'setState');\n }\n};\n\nvar emptyObject = {};\n\n{\n Object.freeze(emptyObject);\n}\n/**\n * Base class helpers for the updating state of a component.\n */\n\n\nfunction Component(props, context, updater) {\n this.props = props;\n this.context = context; // If a component has string refs, we will assign a different object later.\n\n this.refs = emptyObject; // We initialize the default updater but the real one gets injected by the\n // renderer.\n\n this.updater = updater || ReactNoopUpdateQueue;\n}\n\nComponent.prototype.isReactComponent = {};\n/**\n * Sets a subset of the state. Always use this to mutate\n * state. You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * There is no guarantee that calls to `setState` will run synchronously,\n * as they may eventually be batched together. You can provide an optional\n * callback that will be executed when the call to setState is actually\n * completed.\n *\n * When a function is provided to setState, it will be called at some point in\n * the future (not synchronously). It will be called with the up to date\n * component arguments (state, props, context). These values can be different\n * from this.* because your function may be called after receiveProps but before\n * shouldComponentUpdate, and this new state, props, and context will not yet be\n * assigned to this.\n *\n * @param {object|function} partialState Next partial state or function to\n * produce next partial state to be merged with current state.\n * @param {?function} callback Called after state is updated.\n * @final\n * @protected\n */\n\nComponent.prototype.setState = function (partialState, callback) {\n if (!(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null)) {\n {\n throw Error( \"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\" );\n }\n }\n\n this.updater.enqueueSetState(this, partialState, callback, 'setState');\n};\n/**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {?function} callback Called after update is complete.\n * @final\n * @protected\n */\n\n\nComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, 'forceUpdate');\n};\n/**\n * Deprecated APIs. These APIs used to exist on classic React classes but since\n * we would like to deprecate them, we're not going to move them over to this\n * modern base class. Instead, we define a getter that warns if it's accessed.\n */\n\n\n{\n var deprecatedAPIs = {\n isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],\n replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).']\n };\n\n var defineDeprecationWarning = function (methodName, info) {\n Object.defineProperty(Component.prototype, methodName, {\n get: function () {\n warn('%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]);\n\n return undefined;\n }\n });\n };\n\n for (var fnName in deprecatedAPIs) {\n if (deprecatedAPIs.hasOwnProperty(fnName)) {\n defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n }\n }\n}\n\nfunction ComponentDummy() {}\n\nComponentDummy.prototype = Component.prototype;\n/**\n * Convenience component with default shallow equality check for sCU.\n */\n\nfunction PureComponent(props, context, updater) {\n this.props = props;\n this.context = context; // If a component has string refs, we will assign a different object later.\n\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\n\nvar pureComponentPrototype = PureComponent.prototype = new ComponentDummy();\npureComponentPrototype.constructor = PureComponent; // Avoid an extra prototype jump for these methods.\n\n_assign(pureComponentPrototype, Component.prototype);\n\npureComponentPrototype.isPureReactComponent = true;\n\n// an immutable object with a single mutable value\nfunction createRef() {\n var refObject = {\n current: null\n };\n\n {\n Object.seal(refObject);\n }\n\n return refObject;\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var functionName = innerType.displayName || innerType.name || '';\n return outerType.displayName || (functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName);\n}\n\nfunction getContextName(type) {\n return type.displayName || 'Context';\n}\n\nfunction getComponentName(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n\n {\n if (typeof type.tag === 'number') {\n error('Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.');\n }\n }\n\n if (typeof type === 'function') {\n return type.displayName || type.name || null;\n }\n\n if (typeof type === 'string') {\n return type;\n }\n\n switch (type) {\n case exports.Fragment:\n return 'Fragment';\n\n case REACT_PORTAL_TYPE:\n return 'Portal';\n\n case exports.Profiler:\n return 'Profiler';\n\n case exports.StrictMode:\n return 'StrictMode';\n\n case exports.Suspense:\n return 'Suspense';\n\n case REACT_SUSPENSE_LIST_TYPE:\n return 'SuspenseList';\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + '.Consumer';\n\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + '.Provider';\n\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, 'ForwardRef');\n\n case REACT_MEMO_TYPE:\n return getComponentName(type.type);\n\n case REACT_BLOCK_TYPE:\n return getComponentName(type._render);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n return getComponentName(init(payload));\n } catch (x) {\n return null;\n }\n }\n }\n }\n\n return null;\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n};\nvar specialPropKeyWarningShown, specialPropRefWarningShown, didWarnAboutStringRefs;\n\n{\n didWarnAboutStringRefs = {};\n}\n\nfunction hasValidRef(config) {\n {\n if (hasOwnProperty.call(config, 'ref')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n {\n if (hasOwnProperty.call(config, 'key')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.key !== undefined;\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n var warnAboutAccessingKey = function () {\n {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n\n error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n }\n };\n\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n var warnAboutAccessingRef = function () {\n {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n\n error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n }\n };\n\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n}\n\nfunction warnIfStringRefCannotBeAutoConverted(config) {\n {\n if (typeof config.ref === 'string' && ReactCurrentOwner.current && config.__self && ReactCurrentOwner.current.stateNode !== config.__self) {\n var componentName = getComponentName(ReactCurrentOwner.current.type);\n\n if (!didWarnAboutStringRefs[componentName]) {\n error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', componentName, config.ref);\n\n didWarnAboutStringRefs[componentName] = true;\n }\n }\n }\n}\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */\n\n\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allows us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n // Record the component responsible for creating this element.\n _owner: owner\n };\n\n {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n\n Object.defineProperty(element._store, 'validated', {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n }); // self and source are DEV only properties.\n\n Object.defineProperty(element, '_self', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n }); // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n\n Object.defineProperty(element, '_source', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n\n return element;\n};\n/**\n * Create and return a new ReactElement of the given type.\n * See https://reactjs.org/docs/react-api.html#createelement\n */\n\nfunction createElement(type, config, children) {\n var propName; // Reserved names are extracted\n\n var props = {};\n var key = null;\n var ref = null;\n var self = null;\n var source = null;\n\n if (config != null) {\n if (hasValidRef(config)) {\n ref = config.ref;\n\n {\n warnIfStringRefCannotBeAutoConverted(config);\n }\n }\n\n if (hasValidKey(config)) {\n key = '' + config.key;\n }\n\n self = config.__self === undefined ? null : config.__self;\n source = config.__source === undefined ? null : config.__source; // Remaining properties are added to a new props object\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n }\n } // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n\n\n var childrenLength = arguments.length - 2;\n\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 2];\n }\n\n {\n if (Object.freeze) {\n Object.freeze(childArray);\n }\n }\n\n props.children = childArray;\n } // Resolve default props\n\n\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n\n {\n if (key || ref) {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n }\n\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n}\nfunction cloneAndReplaceKey(oldElement, newKey) {\n var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props);\n return newElement;\n}\n/**\n * Clone and return a new ReactElement using element as the starting point.\n * See https://reactjs.org/docs/react-api.html#cloneelement\n */\n\nfunction cloneElement(element, config, children) {\n if (!!(element === null || element === undefined)) {\n {\n throw Error( \"React.cloneElement(...): The argument must be a React element, but you passed \" + element + \".\" );\n }\n }\n\n var propName; // Original props are copied\n\n var props = _assign({}, element.props); // Reserved names are extracted\n\n\n var key = element.key;\n var ref = element.ref; // Self is preserved since the owner is preserved.\n\n var self = element._self; // Source is preserved since cloneElement is unlikely to be targeted by a\n // transpiler, and the original source is probably a better indicator of the\n // true owner.\n\n var source = element._source; // Owner will be preserved, unless ref is overridden\n\n var owner = element._owner;\n\n if (config != null) {\n if (hasValidRef(config)) {\n // Silently steal the ref from the parent.\n ref = config.ref;\n owner = ReactCurrentOwner.current;\n }\n\n if (hasValidKey(config)) {\n key = '' + config.key;\n } // Remaining properties override existing props\n\n\n var defaultProps;\n\n if (element.type && element.type.defaultProps) {\n defaultProps = element.type.defaultProps;\n }\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n if (config[propName] === undefined && defaultProps !== undefined) {\n // Resolve default props\n props[propName] = defaultProps[propName];\n } else {\n props[propName] = config[propName];\n }\n }\n }\n } // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n\n\n var childrenLength = arguments.length - 2;\n\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 2];\n }\n\n props.children = childArray;\n }\n\n return ReactElement(element.type, key, ref, self, source, owner, props);\n}\n/**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */\n\nfunction isValidElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\n\nvar SEPARATOR = '.';\nvar SUBSEPARATOR = ':';\n/**\n * Escape and wrap key so it is safe to use as a reactid\n *\n * @param {string} key to be escaped.\n * @return {string} the escaped key.\n */\n\nfunction escape(key) {\n var escapeRegex = /[=:]/g;\n var escaperLookup = {\n '=': '=0',\n ':': '=2'\n };\n var escapedString = key.replace(escapeRegex, function (match) {\n return escaperLookup[match];\n });\n return '$' + escapedString;\n}\n/**\n * TODO: Test that a single child and an array with one item have the same key\n * pattern.\n */\n\n\nvar didWarnAboutMaps = false;\nvar userProvidedKeyEscapeRegex = /\\/+/g;\n\nfunction escapeUserProvidedKey(text) {\n return text.replace(userProvidedKeyEscapeRegex, '$&/');\n}\n/**\n * Generate a key string that identifies a element within a set.\n *\n * @param {*} element A element that could contain a manual key.\n * @param {number} index Index that is used if a manual key is not provided.\n * @return {string}\n */\n\n\nfunction getElementKey(element, index) {\n // Do some typechecking here since we call this blindly. We want to ensure\n // that we don't block potential future ES APIs.\n if (typeof element === 'object' && element !== null && element.key != null) {\n // Explicit key\n return escape('' + element.key);\n } // Implicit key determined by the index in the set\n\n\n return index.toString(36);\n}\n\nfunction mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n\n if (type === 'undefined' || type === 'boolean') {\n // All of the above are perceived as null.\n children = null;\n }\n\n var invokeCallback = false;\n\n if (children === null) {\n invokeCallback = true;\n } else {\n switch (type) {\n case 'string':\n case 'number':\n invokeCallback = true;\n break;\n\n case 'object':\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = true;\n }\n\n }\n }\n\n if (invokeCallback) {\n var _child = children;\n var mappedChild = callback(_child); // If it's the only child, treat the name as if it was wrapped in an array\n // so that it's consistent if the number of children grows:\n\n var childKey = nameSoFar === '' ? SEPARATOR + getElementKey(_child, 0) : nameSoFar;\n\n if (Array.isArray(mappedChild)) {\n var escapedChildKey = '';\n\n if (childKey != null) {\n escapedChildKey = escapeUserProvidedKey(childKey) + '/';\n }\n\n mapIntoArray(mappedChild, array, escapedChildKey, '', function (c) {\n return c;\n });\n } else if (mappedChild != null) {\n if (isValidElement(mappedChild)) {\n mappedChild = cloneAndReplaceKey(mappedChild, // Keep both the (mapped) and old keys if they differ, just as\n // traverseAllChildren used to do for objects as children\n escapedPrefix + ( // $FlowFixMe Flow incorrectly thinks React.Portal doesn't have a key\n mappedChild.key && (!_child || _child.key !== mappedChild.key) ? // $FlowFixMe Flow incorrectly thinks existing element's key can be a number\n escapeUserProvidedKey('' + mappedChild.key) + '/' : '') + childKey);\n }\n\n array.push(mappedChild);\n }\n\n return 1;\n }\n\n var child;\n var nextName;\n var subtreeCount = 0; // Count of children found in the current subtree.\n\n var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR;\n\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n nextName = nextNamePrefix + getElementKey(child, i);\n subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback);\n }\n } else {\n var iteratorFn = getIteratorFn(children);\n\n if (typeof iteratorFn === 'function') {\n var iterableChildren = children;\n\n {\n // Warn about using Maps as children\n if (iteratorFn === iterableChildren.entries) {\n if (!didWarnAboutMaps) {\n warn('Using Maps as children is not supported. ' + 'Use an array of keyed ReactElements instead.');\n }\n\n didWarnAboutMaps = true;\n }\n }\n\n var iterator = iteratorFn.call(iterableChildren);\n var step;\n var ii = 0;\n\n while (!(step = iterator.next()).done) {\n child = step.value;\n nextName = nextNamePrefix + getElementKey(child, ii++);\n subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback);\n }\n } else if (type === 'object') {\n var childrenString = '' + children;\n\n {\n {\n throw Error( \"Objects are not valid as a React child (found: \" + (childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString) + \"). If you meant to render a collection of children, use an array instead.\" );\n }\n }\n }\n }\n\n return subtreeCount;\n}\n\n/**\n * Maps children that are typically specified as `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenmap\n *\n * The provided mapFunction(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} func The map function.\n * @param {*} context Context for mapFunction.\n * @return {object} Object containing the ordered map of results.\n */\nfunction mapChildren(children, func, context) {\n if (children == null) {\n return children;\n }\n\n var result = [];\n var count = 0;\n mapIntoArray(children, result, '', '', function (child) {\n return func.call(context, child, count++);\n });\n return result;\n}\n/**\n * Count the number of children that are typically specified as\n * `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrencount\n *\n * @param {?*} children Children tree container.\n * @return {number} The number of children.\n */\n\n\nfunction countChildren(children) {\n var n = 0;\n mapChildren(children, function () {\n n++; // Don't return anything\n });\n return n;\n}\n\n/**\n * Iterates through children that are typically specified as `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenforeach\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} forEachFunc\n * @param {*} forEachContext Context for forEachContext.\n */\nfunction forEachChildren(children, forEachFunc, forEachContext) {\n mapChildren(children, function () {\n forEachFunc.apply(this, arguments); // Don't return anything.\n }, forEachContext);\n}\n/**\n * Flatten a children object (typically specified as `props.children`) and\n * return an array with appropriately re-keyed children.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrentoarray\n */\n\n\nfunction toArray(children) {\n return mapChildren(children, function (child) {\n return child;\n }) || [];\n}\n/**\n * Returns the first child in a collection of children and verifies that there\n * is only one child in the collection.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenonly\n *\n * The current implementation of this function assumes that a single child gets\n * passed without a wrapper, but the purpose of this helper function is to\n * abstract away the particular structure of children.\n *\n * @param {?object} children Child collection structure.\n * @return {ReactElement} The first and only `ReactElement` contained in the\n * structure.\n */\n\n\nfunction onlyChild(children) {\n if (!isValidElement(children)) {\n {\n throw Error( \"React.Children.only expected to receive a single React element child.\" );\n }\n }\n\n return children;\n}\n\nfunction createContext(defaultValue, calculateChangedBits) {\n if (calculateChangedBits === undefined) {\n calculateChangedBits = null;\n } else {\n {\n if (calculateChangedBits !== null && typeof calculateChangedBits !== 'function') {\n error('createContext: Expected the optional second argument to be a ' + 'function. Instead received: %s', calculateChangedBits);\n }\n }\n }\n\n var context = {\n $$typeof: REACT_CONTEXT_TYPE,\n _calculateChangedBits: calculateChangedBits,\n // As a workaround to support multiple concurrent renderers, we categorize\n // some renderers as primary and others as secondary. We only expect\n // there to be two concurrent renderers at most: React Native (primary) and\n // Fabric (secondary); React DOM (primary) and React ART (secondary).\n // Secondary renderers store their context values on separate fields.\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n // Used to track how many concurrent renderers this context currently\n // supports within in a single renderer. Such as parallel server rendering.\n _threadCount: 0,\n // These are circular\n Provider: null,\n Consumer: null\n };\n context.Provider = {\n $$typeof: REACT_PROVIDER_TYPE,\n _context: context\n };\n var hasWarnedAboutUsingNestedContextConsumers = false;\n var hasWarnedAboutUsingConsumerProvider = false;\n var hasWarnedAboutDisplayNameOnConsumer = false;\n\n {\n // A separate object, but proxies back to the original context object for\n // backwards compatibility. It has a different $$typeof, so we can properly\n // warn for the incorrect usage of Context as a Consumer.\n var Consumer = {\n $$typeof: REACT_CONTEXT_TYPE,\n _context: context,\n _calculateChangedBits: context._calculateChangedBits\n }; // $FlowFixMe: Flow complains about not setting a value, which is intentional here\n\n Object.defineProperties(Consumer, {\n Provider: {\n get: function () {\n if (!hasWarnedAboutUsingConsumerProvider) {\n hasWarnedAboutUsingConsumerProvider = true;\n\n error('Rendering <Context.Consumer.Provider> is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Provider> instead?');\n }\n\n return context.Provider;\n },\n set: function (_Provider) {\n context.Provider = _Provider;\n }\n },\n _currentValue: {\n get: function () {\n return context._currentValue;\n },\n set: function (_currentValue) {\n context._currentValue = _currentValue;\n }\n },\n _currentValue2: {\n get: function () {\n return context._currentValue2;\n },\n set: function (_currentValue2) {\n context._currentValue2 = _currentValue2;\n }\n },\n _threadCount: {\n get: function () {\n return context._threadCount;\n },\n set: function (_threadCount) {\n context._threadCount = _threadCount;\n }\n },\n Consumer: {\n get: function () {\n if (!hasWarnedAboutUsingNestedContextConsumers) {\n hasWarnedAboutUsingNestedContextConsumers = true;\n\n error('Rendering <Context.Consumer.Consumer> is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Consumer> instead?');\n }\n\n return context.Consumer;\n }\n },\n displayName: {\n get: function () {\n return context.displayName;\n },\n set: function (displayName) {\n if (!hasWarnedAboutDisplayNameOnConsumer) {\n warn('Setting `displayName` on Context.Consumer has no effect. ' + \"You should set it directly on the context with Context.displayName = '%s'.\", displayName);\n\n hasWarnedAboutDisplayNameOnConsumer = true;\n }\n }\n }\n }); // $FlowFixMe: Flow complains about missing properties because it doesn't understand defineProperty\n\n context.Consumer = Consumer;\n }\n\n {\n context._currentRenderer = null;\n context._currentRenderer2 = null;\n }\n\n return context;\n}\n\nvar Uninitialized = -1;\nvar Pending = 0;\nvar Resolved = 1;\nvar Rejected = 2;\n\nfunction lazyInitializer(payload) {\n if (payload._status === Uninitialized) {\n var ctor = payload._result;\n var thenable = ctor(); // Transition to the next state.\n\n var pending = payload;\n pending._status = Pending;\n pending._result = thenable;\n thenable.then(function (moduleObject) {\n if (payload._status === Pending) {\n var defaultExport = moduleObject.default;\n\n {\n if (defaultExport === undefined) {\n error('lazy: Expected the result of a dynamic import() call. ' + 'Instead received: %s\\n\\nYour code should look like: \\n ' + // Break up imports to avoid accidentally parsing them as dependencies.\n 'const MyComponent = lazy(() => imp' + \"ort('./MyComponent'))\", moduleObject);\n }\n } // Transition to the next state.\n\n\n var resolved = payload;\n resolved._status = Resolved;\n resolved._result = defaultExport;\n }\n }, function (error) {\n if (payload._status === Pending) {\n // Transition to the next state.\n var rejected = payload;\n rejected._status = Rejected;\n rejected._result = error;\n }\n });\n }\n\n if (payload._status === Resolved) {\n return payload._result;\n } else {\n throw payload._result;\n }\n}\n\nfunction lazy(ctor) {\n var payload = {\n // We use these fields to store the result.\n _status: -1,\n _result: ctor\n };\n var lazyType = {\n $$typeof: REACT_LAZY_TYPE,\n _payload: payload,\n _init: lazyInitializer\n };\n\n {\n // In production, this would just set it on the object.\n var defaultProps;\n var propTypes; // $FlowFixMe\n\n Object.defineProperties(lazyType, {\n defaultProps: {\n configurable: true,\n get: function () {\n return defaultProps;\n },\n set: function (newDefaultProps) {\n error('React.lazy(...): It is not supported to assign `defaultProps` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.');\n\n defaultProps = newDefaultProps; // Match production behavior more closely:\n // $FlowFixMe\n\n Object.defineProperty(lazyType, 'defaultProps', {\n enumerable: true\n });\n }\n },\n propTypes: {\n configurable: true,\n get: function () {\n return propTypes;\n },\n set: function (newPropTypes) {\n error('React.lazy(...): It is not supported to assign `propTypes` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.');\n\n propTypes = newPropTypes; // Match production behavior more closely:\n // $FlowFixMe\n\n Object.defineProperty(lazyType, 'propTypes', {\n enumerable: true\n });\n }\n }\n });\n }\n\n return lazyType;\n}\n\nfunction forwardRef(render) {\n {\n if (render != null && render.$$typeof === REACT_MEMO_TYPE) {\n error('forwardRef requires a render function but received a `memo` ' + 'component. Instead of forwardRef(memo(...)), use ' + 'memo(forwardRef(...)).');\n } else if (typeof render !== 'function') {\n error('forwardRef requires a render function but was given %s.', render === null ? 'null' : typeof render);\n } else {\n if (render.length !== 0 && render.length !== 2) {\n error('forwardRef render functions accept exactly two parameters: props and ref. %s', render.length === 1 ? 'Did you forget to use the ref parameter?' : 'Any additional parameter will be undefined.');\n }\n }\n\n if (render != null) {\n if (render.defaultProps != null || render.propTypes != null) {\n error('forwardRef render functions do not support propTypes or defaultProps. ' + 'Did you accidentally pass a React component?');\n }\n }\n }\n\n var elementType = {\n $$typeof: REACT_FORWARD_REF_TYPE,\n render: render\n };\n\n {\n var ownName;\n Object.defineProperty(elementType, 'displayName', {\n enumerable: false,\n configurable: true,\n get: function () {\n return ownName;\n },\n set: function (name) {\n ownName = name;\n\n if (render.displayName == null) {\n render.displayName = name;\n }\n }\n });\n }\n\n return elementType;\n}\n\n// Filter certain DOM attributes (e.g. src, href) if their values are empty strings.\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === exports.Fragment || type === exports.Profiler || type === REACT_DEBUG_TRACING_MODE_TYPE || type === exports.StrictMode || type === exports.Suspense || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_LEGACY_HIDDEN_TYPE || enableScopeAPI ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_BLOCK_TYPE || type[0] === REACT_SERVER_BLOCK_TYPE) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction memo(type, compare) {\n {\n if (!isValidElementType(type)) {\n error('memo: The first argument must be a component. Instead ' + 'received: %s', type === null ? 'null' : typeof type);\n }\n }\n\n var elementType = {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: compare === undefined ? null : compare\n };\n\n {\n var ownName;\n Object.defineProperty(elementType, 'displayName', {\n enumerable: false,\n configurable: true,\n get: function () {\n return ownName;\n },\n set: function (name) {\n ownName = name;\n\n if (type.displayName == null) {\n type.displayName = name;\n }\n }\n });\n }\n\n return elementType;\n}\n\nfunction resolveDispatcher() {\n var dispatcher = ReactCurrentDispatcher.current;\n\n if (!(dispatcher !== null)) {\n {\n throw Error( \"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.\" );\n }\n }\n\n return dispatcher;\n}\n\nfunction useContext(Context, unstable_observedBits) {\n var dispatcher = resolveDispatcher();\n\n {\n if (unstable_observedBits !== undefined) {\n error('useContext() second argument is reserved for future ' + 'use in React. Passing it is not supported. ' + 'You passed: %s.%s', unstable_observedBits, typeof unstable_observedBits === 'number' && Array.isArray(arguments[2]) ? '\\n\\nDid you call array.map(useContext)? ' + 'Calling Hooks inside a loop is not supported. ' + 'Learn more at https://reactjs.org/link/rules-of-hooks' : '');\n } // TODO: add a more generic warning for invalid values.\n\n\n if (Context._context !== undefined) {\n var realContext = Context._context; // Don't deduplicate because this legitimately causes bugs\n // and nobody should be using this in existing code.\n\n if (realContext.Consumer === Context) {\n error('Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be ' + 'removed in a future major release. Did you mean to call useContext(Context) instead?');\n } else if (realContext.Provider === Context) {\n error('Calling useContext(Context.Provider) is not supported. ' + 'Did you mean to call useContext(Context) instead?');\n }\n }\n }\n\n return dispatcher.useContext(Context, unstable_observedBits);\n}\nfunction useState(initialState) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useState(initialState);\n}\nfunction useReducer(reducer, initialArg, init) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useReducer(reducer, initialArg, init);\n}\nfunction useRef(initialValue) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useRef(initialValue);\n}\nfunction useEffect(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useEffect(create, deps);\n}\nfunction useLayoutEffect(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useLayoutEffect(create, deps);\n}\nfunction useCallback(callback, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useCallback(callback, deps);\n}\nfunction useMemo(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useMemo(create, deps);\n}\nfunction useImperativeHandle(ref, create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useImperativeHandle(ref, create, deps);\n}\nfunction useDebugValue(value, formatterFn) {\n {\n var dispatcher = resolveDispatcher();\n return dispatcher.useDebugValue(value, formatterFn);\n }\n}\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n disabledDepth++;\n }\n}\nfunction reenableLogs() {\n {\n disabledDepth--;\n\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n log: _assign({}, props, {\n value: prevLog\n }),\n info: _assign({}, props, {\n value: prevInfo\n }),\n warn: _assign({}, props, {\n value: prevWarn\n }),\n error: _assign({}, props, {\n value: prevError\n }),\n group: _assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: _assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: _assign({}, props, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n if (disabledDepth < 0) {\n error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n }\n }\n}\n\nvar ReactCurrentDispatcher$1 = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || '';\n }\n } // We use the prefix to ensure our stacks line up with native stack frames.\n\n\n return '\\n' + prefix + name;\n }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n}\n\nfunction describeNativeComponentFrame(fn, construct) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if (!fn || reentry) {\n return '';\n }\n\n {\n var frame = componentFrameCache.get(fn);\n\n if (frame !== undefined) {\n return frame;\n }\n }\n\n var control;\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n\n {\n previousDispatcher = ReactCurrentDispatcher$1.current; // Set the dispatcher in DEV because this might be call in the render function\n // for warnings.\n\n ReactCurrentDispatcher$1.current = null;\n disableLogs();\n }\n\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function () {\n throw Error();\n }; // $FlowFixMe\n\n\n Object.defineProperty(Fake.prototype, 'props', {\n set: function () {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n\n if (typeof Reflect === 'object' && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n }\n\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n }\n\n fn();\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === 'string') {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sample.stack.split('\\n');\n var controlLines = control.stack.split('\\n');\n var s = sampleLines.length - 1;\n var c = controlLines.length - 1;\n\n while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n\n for (; s >= 1 && c >= 0; s--, c--) {\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at ');\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, _frame);\n }\n } // Return the line we found.\n\n\n return _frame;\n }\n } while (s >= 1 && c >= 0);\n }\n\n break;\n }\n }\n }\n } finally {\n reentry = false;\n\n {\n ReactCurrentDispatcher$1.current = previousDispatcher;\n reenableLogs();\n }\n\n Error.prepareStackTrace = previousPrepareStackTrace;\n } // Fallback to just using the name if we couldn't make it throw.\n\n\n var name = fn ? fn.displayName || fn.name : '';\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n\n return syntheticFrame;\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n}\n\nfunction shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n if (type == null) {\n return '';\n }\n\n if (typeof type === 'function') {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n\n if (typeof type === 'string') {\n return describeBuiltInComponentFrame(type);\n }\n\n switch (type) {\n case exports.Suspense:\n return describeBuiltInComponentFrame('Suspense');\n\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame('SuspenseList');\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n\n case REACT_MEMO_TYPE:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n case REACT_BLOCK_TYPE:\n return describeFunctionComponentFrame(type._render);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n\n return '';\n}\n\nvar loggedTypeFailures = {};\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n }\n }\n}\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\n {\n // $FlowFixMe This is okay but Flow doesn't know it.\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n } catch (ex) {\n error$1 = ex;\n }\n\n if (error$1 && !(error$1 instanceof Error)) {\n setCurrentlyValidatingElement(element);\n\n error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n\n setCurrentlyValidatingElement(null);\n }\n\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error$1.message] = true;\n setCurrentlyValidatingElement(element);\n\n error('Failed %s type: %s', location, error$1.message);\n\n setCurrentlyValidatingElement(null);\n }\n }\n }\n }\n}\n\nfunction setCurrentlyValidatingElement$1(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n setExtraStackFrame(stack);\n } else {\n setExtraStackFrame(null);\n }\n }\n}\n\nvar propTypesMisspellWarningShown;\n\n{\n propTypesMisspellWarningShown = false;\n}\n\nfunction getDeclarationErrorAddendum() {\n if (ReactCurrentOwner.current) {\n var name = getComponentName(ReactCurrentOwner.current.type);\n\n if (name) {\n return '\\n\\nCheck the render method of `' + name + '`.';\n }\n }\n\n return '';\n}\n\nfunction getSourceInfoErrorAddendum(source) {\n if (source !== undefined) {\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n var lineNumber = source.lineNumber;\n return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n }\n\n return '';\n}\n\nfunction getSourceInfoErrorAddendumForProps(elementProps) {\n if (elementProps !== null && elementProps !== undefined) {\n return getSourceInfoErrorAddendum(elementProps.__source);\n }\n\n return '';\n}\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n\n\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n var info = getDeclarationErrorAddendum();\n\n if (!info) {\n var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n\n if (parentName) {\n info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n }\n }\n\n return info;\n}\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\n\n\nfunction validateExplicitKey(element, parentType) {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n\n element._store.validated = true;\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n return;\n }\n\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n\n var childOwner = '';\n\n if (element && element._owner && element._owner !== ReactCurrentOwner.current) {\n // Give the component that originally created this child.\n childOwner = \" It was passed a child from \" + getComponentName(element._owner.type) + \".\";\n }\n\n {\n setCurrentlyValidatingElement$1(element);\n\n error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\n\n setCurrentlyValidatingElement$1(null);\n }\n}\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\n\n\nfunction validateChildKeys(node, parentType) {\n if (typeof node !== 'object') {\n return;\n }\n\n if (Array.isArray(node)) {\n for (var i = 0; i < node.length; i++) {\n var child = node[i];\n\n if (isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else if (node) {\n var iteratorFn = getIteratorFn(node);\n\n if (typeof iteratorFn === 'function') {\n // Entry iterators used to provide implicit keys,\n // but now we print a separate warning for them later.\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n\n while (!(step = iterator.next()).done) {\n if (isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n}\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\n\n\nfunction validatePropTypes(element) {\n {\n var type = element.type;\n\n if (type === null || type === undefined || typeof type === 'string') {\n return;\n }\n\n var propTypes;\n\n if (typeof type === 'function') {\n propTypes = type.propTypes;\n } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n // Inner props are checked in the reconciler.\n type.$$typeof === REACT_MEMO_TYPE)) {\n propTypes = type.propTypes;\n } else {\n return;\n }\n\n if (propTypes) {\n // Intentionally inside to avoid triggering lazy initializers:\n var name = getComponentName(type);\n checkPropTypes(propTypes, element.props, 'prop', name, element);\n } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n\n var _name = getComponentName(type);\n\n error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');\n }\n\n if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\n error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\n }\n }\n}\n/**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\n\n\nfunction validateFragmentProps(fragment) {\n {\n var keys = Object.keys(fragment.props);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (key !== 'children' && key !== 'key') {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n\n setCurrentlyValidatingElement$1(null);\n break;\n }\n }\n\n if (fragment.ref !== null) {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid attribute `ref` supplied to `React.Fragment`.');\n\n setCurrentlyValidatingElement$1(null);\n }\n }\n}\nfunction createElementWithValidation(type, props, children) {\n var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n\n if (!validType) {\n var info = '';\n\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n }\n\n var sourceInfo = getSourceInfoErrorAddendumForProps(props);\n\n if (sourceInfo) {\n info += sourceInfo;\n } else {\n info += getDeclarationErrorAddendum();\n }\n\n var typeString;\n\n if (type === null) {\n typeString = 'null';\n } else if (Array.isArray(type)) {\n typeString = 'array';\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n typeString = \"<\" + (getComponentName(type.type) || 'Unknown') + \" />\";\n info = ' Did you accidentally export a JSX literal instead of a component?';\n } else {\n typeString = typeof type;\n }\n\n {\n error('React.createElement: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n }\n }\n\n var element = createElement.apply(this, arguments); // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n\n if (element == null) {\n return element;\n } // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n\n\n if (validType) {\n for (var i = 2; i < arguments.length; i++) {\n validateChildKeys(arguments[i], type);\n }\n }\n\n if (type === exports.Fragment) {\n validateFragmentProps(element);\n } else {\n validatePropTypes(element);\n }\n\n return element;\n}\nvar didWarnAboutDeprecatedCreateFactory = false;\nfunction createFactoryWithValidation(type) {\n var validatedFactory = createElementWithValidation.bind(null, type);\n validatedFactory.type = type;\n\n {\n if (!didWarnAboutDeprecatedCreateFactory) {\n didWarnAboutDeprecatedCreateFactory = true;\n\n warn('React.createFactory() is deprecated and will be removed in ' + 'a future major release. Consider using JSX ' + 'or use React.createElement() directly instead.');\n } // Legacy hook: remove it\n\n\n Object.defineProperty(validatedFactory, 'type', {\n enumerable: false,\n get: function () {\n warn('Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.');\n\n Object.defineProperty(this, 'type', {\n value: type\n });\n return type;\n }\n });\n }\n\n return validatedFactory;\n}\nfunction cloneElementWithValidation(element, props, children) {\n var newElement = cloneElement.apply(this, arguments);\n\n for (var i = 2; i < arguments.length; i++) {\n validateChildKeys(arguments[i], newElement.type);\n }\n\n validatePropTypes(newElement);\n return newElement;\n}\n\n{\n\n try {\n var frozenObject = Object.freeze({});\n /* eslint-disable no-new */\n\n new Map([[frozenObject, null]]);\n new Set([frozenObject]);\n /* eslint-enable no-new */\n } catch (e) {\n }\n}\n\nvar createElement$1 = createElementWithValidation ;\nvar cloneElement$1 = cloneElementWithValidation ;\nvar createFactory = createFactoryWithValidation ;\nvar Children = {\n map: mapChildren,\n forEach: forEachChildren,\n count: countChildren,\n toArray: toArray,\n only: onlyChild\n};\n\nexports.Children = Children;\nexports.Component = Component;\nexports.PureComponent = PureComponent;\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactSharedInternals;\nexports.cloneElement = cloneElement$1;\nexports.createContext = createContext;\nexports.createElement = createElement$1;\nexports.createFactory = createFactory;\nexports.createRef = createRef;\nexports.forwardRef = forwardRef;\nexports.isValidElement = isValidElement;\nexports.lazy = lazy;\nexports.memo = memo;\nexports.useCallback = useCallback;\nexports.useContext = useContext;\nexports.useDebugValue = useDebugValue;\nexports.useEffect = useEffect;\nexports.useImperativeHandle = useImperativeHandle;\nexports.useLayoutEffect = useLayoutEffect;\nexports.useMemo = useMemo;\nexports.useReducer = useReducer;\nexports.useRef = useRef;\nexports.useState = useState;\nexports.version = ReactVersion;\n })();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QvY2pzL3JlYWN0LmRldmVsb3BtZW50LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWE7O0FBRWIsSUFBSSxJQUFxQztBQUN6QztBQUNBOztBQUVBLGNBQWMsbUJBQU8sQ0FBQyxnRkFBZTs7QUFFckM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQixrQkFBa0I7QUFDbEIsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRSxnQkFBZ0I7QUFDbEIsRUFBRSxrQkFBa0I7QUFDcEIsRUFBRSxnQkFBZ0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0EsRUFBRSxnQkFBZ0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7OztBQUdMOztBQUVBO0FBQ0Esb0JBQW9COztBQUVwQjtBQUNBO0FBQ0EsTUFBTTs7O0FBR047O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLDJGQUEyRixhQUFhO0FBQ3hHO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtGQUErRixlQUFlO0FBQzlHO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSyxHQUFHOztBQUVSLGtEQUFrRDtBQUNsRDtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSw4TUFBOE07O0FBRTlNO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxZQUFZO0FBQ3pCLGNBQWMsU0FBUztBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsWUFBWTtBQUN6QixhQUFhLFdBQVc7QUFDeEIsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsWUFBWTtBQUN6QixhQUFhLFFBQVE7QUFDckIsYUFBYSxXQUFXO0FBQ3hCLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxZQUFZO0FBQ3pCLGFBQWEsUUFBUTtBQUNyQixhQUFhLFdBQVc7QUFDeEIsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQSwwQkFBMEI7O0FBRTFCLDJCQUEyQjtBQUMzQjs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLGlCQUFpQjtBQUM1QjtBQUNBLFdBQVcsV0FBVztBQUN0QjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsV0FBVztBQUN0QjtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLDBCQUEwQjs7QUFFMUI7QUFDQTtBQUNBOztBQUVBO0FBQ0Esb0RBQW9EOztBQUVwRDs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxXQUFXLEdBQUc7QUFDZCxXQUFXLEdBQUc7QUFDZCxXQUFXLGVBQWU7QUFDMUIsV0FBVyxHQUFHO0FBQ2QsV0FBVyxHQUFHO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZDtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSyxHQUFHOztBQUVSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLLEdBQUc7QUFDUjs7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QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBOztBQUVBOztBQUVBLDRCQUE0Qjs7QUFFNUI7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNOzs7QUFHTjtBQUNBLDBDQUEwQztBQUMxQzs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUNBQXVDOztBQUV2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUzs7QUFFVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7O0FBRVQ7QUFDQSx1QkFBdUI7QUFDdkI7QUFDQSxTQUFTO0FBQ1Qsd0JBQXdCO0FBQ3hCO0FBQ0EsU0FBUztBQUNULHdCQUF3QjtBQUN4QjtBQUNBLFNBQVM7QUFDVCx5QkFBeUI7QUFDekI7QUFDQSxTQUFTO0FBQ1QseUJBQXlCO0FBQ3pCO0FBQ0EsU0FBUztBQUNULGtDQUFrQztBQUNsQztBQUNBLFNBQVM7QUFDVCw0QkFBNEI7QUFDNUI7QUFDQSxTQUFTO0FBQ1QsT0FBTztBQUNQO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBLE1BQU07OztBQUdOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSwyREFBMkQ7O0FBRTNEO0FBQ0E7O0FBRUE7QUFDQSwyREFBMkQ7QUFDM0Q7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7OztBQUdUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87O0FBRVA7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBOztBQUVBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGFBQWEsa0JBQWtCO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCOzs7QUFHbEI7QUFDQTtBQUNBLGNBQWM7QUFDZDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLElBQUk7OztBQUdKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSwySEFBMkg7QUFDM0g7QUFDQTtBQUNBOztBQUVBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSxvRUFBb0U7O0FBRXBFO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxjQUFjO0FBQ3pCLFdBQVcsR0FBRztBQUNkOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSwyREFBMkQ7QUFDM0Q7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsV0FBVztBQUN0QixXQUFXLEdBQUc7QUFDZDs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxvQkFBb0IsaUJBQWlCO0FBQ3JDOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsY0FBYztBQUN6Qjs7O0FBR0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOLDRDQUE0Qzs7QUFFNUM7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsY0FBYztBQUN6Qjs7O0FBR0E7QUFDQTtBQUNBOztBQUVBLG9CQUFvQixpQkFBaUI7QUFDckM7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0Q0FBNEM7QUFDNUM7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLHNEQUFzRDtBQUN0RDs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBLG9CQUFvQixzQkFBc0I7QUFDMUM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsTUFBTTs7O0FBR047QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGtCQUFrQixzQkFBc0I7QUFDeEM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQSx1Q0FBdUM7QUFDdkM7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsZ0JBQWdCO0FBQ2hCLGlCQUFpQjtBQUNqQixxQkFBcUI7QUFDckIsMERBQTBEO0FBQzFELG9CQUFvQjtBQUNwQixxQkFBcUI7QUFDckIscUJBQXFCO0FBQ3JCLHFCQUFxQjtBQUNyQixpQkFBaUI7QUFDakIsa0JBQWtCO0FBQ2xCLHNCQUFzQjtBQUN0QixZQUFZO0FBQ1osWUFBWTtBQUNaLG1CQUFtQjtBQUNuQixrQkFBa0I7QUFDbEIscUJBQXFCO0FBQ3JCLGlCQUFpQjtBQUNqQiwyQkFBMkI7QUFDM0IsdUJBQXVCO0FBQ3ZCLGVBQWU7QUFDZixrQkFBa0I7QUFDbEIsY0FBYztBQUNkLGdCQUFnQjtBQUNoQixlQUFlO0FBQ2YsR0FBRztBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9yZWFjdC9janMvcmVhY3QuZGV2ZWxvcG1lbnQuanM/MWI3ZSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQGxpY2Vuc2UgUmVhY3QgdjE3LjAuMlxuICogcmVhY3QuZGV2ZWxvcG1lbnQuanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIEZhY2Vib29rLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgKGZ1bmN0aW9uKCkge1xuJ3VzZSBzdHJpY3QnO1xuXG52YXIgX2Fzc2lnbiA9IHJlcXVpcmUoJ29iamVjdC1hc3NpZ24nKTtcblxuLy8gVE9ETzogdGhpcyBpcyBzcGVjaWFsIGJlY2F1c2UgaXQgZ2V0cyBpbXBvcnRlZCBkdXJpbmcgYnVpbGQuXG52YXIgUmVhY3RWZXJzaW9uID0gJzE3LjAuMic7XG5cbi8vIEFUVEVOVElPTlxuLy8gV2hlbiBhZGRpbmcgbmV3IHN5bWJvbHMgdG8gdGhpcyBmaWxlLFxuLy8gUGxlYXNlIGNvbnNpZGVyIGFsc28gYWRkaW5nIHRvICdyZWFjdC1kZXZ0b29scy1zaGFyZWQvc3JjL2JhY2tlbmQvUmVhY3RTeW1ib2xzJ1xuLy8gVGhlIFN5bWJvbCB1c2VkIHRvIHRhZyB0aGUgUmVhY3RFbGVtZW50LWxpa2UgdHlwZXMuIElmIHRoZXJlIGlzIG5vIG5hdGl2ZSBTeW1ib2xcbi8vIG5vciBwb2x5ZmlsbCwgdGhlbiBhIHBsYWluIG51bWJlciBpcyB1c2VkIGZvciBwZXJmb3JtYW5jZS5cbnZhciBSRUFDVF9FTEVNRU5UX1RZUEUgPSAweGVhYzc7XG52YXIgUkVBQ1RfUE9SVEFMX1RZUEUgPSAweGVhY2E7XG5leHBvcnRzLkZyYWdtZW50ID0gMHhlYWNiO1xuZXhwb3J0cy5TdHJpY3RNb2RlID0gMHhlYWNjO1xuZXhwb3J0cy5Qcm9maWxlciA9IDB4ZWFkMjtcbnZhciBSRUFDVF9QUk9WSURFUl9UWVBFID0gMHhlYWNkO1xudmFyIFJFQUNUX0NPTlRFWFRfVFlQRSA9IDB4ZWFjZTtcbnZhciBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFID0gMHhlYWQwO1xuZXhwb3J0cy5TdXNwZW5zZSA9IDB4ZWFkMTtcbnZhciBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUgPSAweGVhZDg7XG52YXIgUkVBQ1RfTUVNT19UWVBFID0gMHhlYWQzO1xudmFyIFJFQUNUX0xBWllfVFlQRSA9IDB4ZWFkNDtcbnZhciBSRUFDVF9CTE9DS19UWVBFID0gMHhlYWQ5O1xudmFyIFJFQUNUX1NFUlZFUl9CTE9DS19UWVBFID0gMHhlYWRhO1xudmFyIFJFQUNUX0ZVTkRBTUVOVEFMX1RZUEUgPSAweGVhZDU7XG52YXIgUkVBQ1RfU0NPUEVfVFlQRSA9IDB4ZWFkNztcbnZhciBSRUFDVF9PUEFRVUVfSURfVFlQRSA9IDB4ZWFlMDtcbnZhciBSRUFDVF9ERUJVR19UUkFDSU5HX01PREVfVFlQRSA9IDB4ZWFlMTtcbnZhciBSRUFDVF9PRkZTQ1JFRU5fVFlQRSA9IDB4ZWFlMjtcbnZhciBSRUFDVF9MRUdBQ1lfSElEREVOX1RZUEUgPSAweGVhZTM7XG5cbmlmICh0eXBlb2YgU3ltYm9sID09PSAnZnVuY3Rpb24nICYmIFN5bWJvbC5mb3IpIHtcbiAgdmFyIHN5bWJvbEZvciA9IFN5bWJvbC5mb3I7XG4gIFJFQUNUX0VMRU1FTlRfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QuZWxlbWVudCcpO1xuICBSRUFDVF9QT1JUQUxfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QucG9ydGFsJyk7XG4gIGV4cG9ydHMuRnJhZ21lbnQgPSBzeW1ib2xGb3IoJ3JlYWN0LmZyYWdtZW50Jyk7XG4gIGV4cG9ydHMuU3RyaWN0TW9kZSA9IHN5bWJvbEZvcigncmVhY3Quc3RyaWN0X21vZGUnKTtcbiAgZXhwb3J0cy5Qcm9maWxlciA9IHN5bWJvbEZvcigncmVhY3QucHJvZmlsZXInKTtcbiAgUkVBQ1RfUFJPVklERVJfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QucHJvdmlkZXInKTtcbiAgUkVBQ1RfQ09OVEVYVF9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5jb250ZXh0Jyk7XG4gIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LmZvcndhcmRfcmVmJyk7XG4gIGV4cG9ydHMuU3VzcGVuc2UgPSBzeW1ib2xGb3IoJ3JlYWN0LnN1c3BlbnNlJyk7XG4gIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSA9IHN5bWJvbEZvcigncmVhY3Quc3VzcGVuc2VfbGlzdCcpO1xuICBSRUFDVF9NRU1PX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0Lm1lbW8nKTtcbiAgUkVBQ1RfTEFaWV9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5sYXp5Jyk7XG4gIFJFQUNUX0JMT0NLX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LmJsb2NrJyk7XG4gIFJFQUNUX1NFUlZFUl9CTE9DS19UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5zZXJ2ZXIuYmxvY2snKTtcbiAgUkVBQ1RfRlVOREFNRU5UQUxfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QuZnVuZGFtZW50YWwnKTtcbiAgUkVBQ1RfU0NPUEVfVFlQRSA9IHN5bWJvbEZvcigncmVhY3Quc2NvcGUnKTtcbiAgUkVBQ1RfT1BBUVVFX0lEX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0Lm9wYXF1ZS5pZCcpO1xuICBSRUFDVF9ERUJVR19UUkFDSU5HX01PREVfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QuZGVidWdfdHJhY2VfbW9kZScpO1xuICBSRUFDVF9PRkZTQ1JFRU5fVFlQRSA9IHN5bWJvbEZvcigncmVhY3Qub2Zmc2NyZWVuJyk7XG4gIFJFQUNUX0xFR0FDWV9ISURERU5fVFlQRSA9IHN5bWJvbEZvcigncmVhY3QubGVnYWN5X2hpZGRlbicpO1xufVxuXG52YXIgTUFZQkVfSVRFUkFUT1JfU1lNQk9MID0gdHlwZW9mIFN5bWJvbCA9PT0gJ2Z1bmN0aW9uJyAmJiBTeW1ib2wuaXRlcmF0b3I7XG52YXIgRkFVWF9JVEVSQVRPUl9TWU1CT0wgPSAnQEBpdGVyYXRvcic7XG5mdW5jdGlvbiBnZXRJdGVyYXRvckZuKG1heWJlSXRlcmFibGUpIHtcbiAgaWYgKG1heWJlSXRlcmFibGUgPT09IG51bGwgfHwgdHlwZW9mIG1heWJlSXRlcmFibGUgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICB2YXIgbWF5YmVJdGVyYXRvciA9IE1BWUJFX0lURVJBVE9SX1NZTUJPTCAmJiBtYXliZUl0ZXJhYmxlW01BWUJFX0lURVJBVE9SX1NZTUJPTF0gfHwgbWF5YmVJdGVyYWJsZVtGQVVYX0lURVJBVE9SX1NZTUJPTF07XG5cbiAgaWYgKHR5cGVvZiBtYXliZUl0ZXJhdG9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIG1heWJlSXRlcmF0b3I7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBLZWVwcyB0cmFjayBvZiB0aGUgY3VycmVudCBkaXNwYXRjaGVyLlxuICovXG52YXIgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciA9IHtcbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBAdHlwZSB7UmVhY3RDb21wb25lbnR9XG4gICAqL1xuICBjdXJyZW50OiBudWxsXG59O1xuXG4vKipcbiAqIEtlZXBzIHRyYWNrIG9mIHRoZSBjdXJyZW50IGJhdGNoJ3MgY29uZmlndXJhdGlvbiBzdWNoIGFzIGhvdyBsb25nIGFuIHVwZGF0ZVxuICogc2hvdWxkIHN1c3BlbmQgZm9yIGlmIGl0IG5lZWRzIHRvLlxuICovXG52YXIgUmVhY3RDdXJyZW50QmF0Y2hDb25maWcgPSB7XG4gIHRyYW5zaXRpb246IDBcbn07XG5cbi8qKlxuICogS2VlcHMgdHJhY2sgb2YgdGhlIGN1cnJlbnQgb3duZXIuXG4gKlxuICogVGhlIGN1cnJlbnQgb3duZXIgaXMgdGhlIGNvbXBvbmVudCB3aG8gc2hvdWxkIG93biBhbnkgY29tcG9uZW50cyB0aGF0IGFyZVxuICogY3VycmVudGx5IGJlaW5nIGNvbnN0cnVjdGVkLlxuICovXG52YXIgUmVhY3RDdXJyZW50T3duZXIgPSB7XG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogQHR5cGUge1JlYWN0Q29tcG9uZW50fVxuICAgKi9cbiAgY3VycmVudDogbnVsbFxufTtcblxudmFyIFJlYWN0RGVidWdDdXJyZW50RnJhbWUgPSB7fTtcbnZhciBjdXJyZW50RXh0cmFTdGFja0ZyYW1lID0gbnVsbDtcbmZ1bmN0aW9uIHNldEV4dHJhU3RhY2tGcmFtZShzdGFjaykge1xuICB7XG4gICAgY3VycmVudEV4dHJhU3RhY2tGcmFtZSA9IHN0YWNrO1xuICB9XG59XG5cbntcbiAgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZS5zZXRFeHRyYVN0YWNrRnJhbWUgPSBmdW5jdGlvbiAoc3RhY2spIHtcbiAgICB7XG4gICAgICBjdXJyZW50RXh0cmFTdGFja0ZyYW1lID0gc3RhY2s7XG4gICAgfVxuICB9OyAvLyBTdGFjayBpbXBsZW1lbnRhdGlvbiBpbmplY3RlZCBieSB0aGUgY3VycmVudCByZW5kZXJlci5cblxuXG4gIFJlYWN0RGVidWdDdXJyZW50RnJhbWUuZ2V0Q3VycmVudFN0YWNrID0gbnVsbDtcblxuICBSZWFjdERlYnVnQ3VycmVudEZyYW1lLmdldFN0YWNrQWRkZW5kdW0gPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHN0YWNrID0gJyc7IC8vIEFkZCBhbiBleHRyYSB0b3AgZnJhbWUgd2hpbGUgYW4gZWxlbWVudCBpcyBiZWluZyB2YWxpZGF0ZWRcblxuICAgIGlmIChjdXJyZW50RXh0cmFTdGFja0ZyYW1lKSB7XG4gICAgICBzdGFjayArPSBjdXJyZW50RXh0cmFTdGFja0ZyYW1lO1xuICAgIH0gLy8gRGVsZWdhdGUgdG8gdGhlIGluamVjdGVkIHJlbmRlcmVyLXNwZWNpZmljIGltcGxlbWVudGF0aW9uXG5cblxuICAgIHZhciBpbXBsID0gUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZS5nZXRDdXJyZW50U3RhY2s7XG5cbiAgICBpZiAoaW1wbCkge1xuICAgICAgc3RhY2sgKz0gaW1wbCgpIHx8ICcnO1xuICAgIH1cblxuICAgIHJldHVybiBzdGFjaztcbiAgfTtcbn1cblxuLyoqXG4gKiBVc2VkIGJ5IGFjdCgpIHRvIHRyYWNrIHdoZXRoZXIgeW91J3JlIGluc2lkZSBhbiBhY3QoKSBzY29wZS5cbiAqL1xudmFyIElzU29tZVJlbmRlcmVyQWN0aW5nID0ge1xuICBjdXJyZW50OiBmYWxzZVxufTtcblxudmFyIFJlYWN0U2hhcmVkSW50ZXJuYWxzID0ge1xuICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyOiBSZWFjdEN1cnJlbnREaXNwYXRjaGVyLFxuICBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZzogUmVhY3RDdXJyZW50QmF0Y2hDb25maWcsXG4gIFJlYWN0Q3VycmVudE93bmVyOiBSZWFjdEN1cnJlbnRPd25lcixcbiAgSXNTb21lUmVuZGVyZXJBY3Rpbmc6IElzU29tZVJlbmRlcmVyQWN0aW5nLFxuICAvLyBVc2VkIGJ5IHJlbmRlcmVycyB0byBhdm9pZCBidW5kbGluZyBvYmplY3QtYXNzaWduIHR3aWNlIGluIFVNRCBidW5kbGVzOlxuICBhc3NpZ246IF9hc3NpZ25cbn07XG5cbntcbiAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSA9IFJlYWN0RGVidWdDdXJyZW50RnJhbWU7XG59XG5cbi8vIGJ5IGNhbGxzIHRvIHRoZXNlIG1ldGhvZHMgYnkgYSBCYWJlbCBwbHVnaW4uXG4vL1xuLy8gSW4gUFJPRCAob3IgaW4gcGFja2FnZXMgd2l0aG91dCBhY2Nlc3MgdG8gUmVhY3QgaW50ZXJuYWxzKSxcbi8vIHRoZXkgYXJlIGxlZnQgYXMgdGhleSBhcmUgaW5zdGVhZC5cblxuZnVuY3Rpb24gd2Fybihmb3JtYXQpIHtcbiAge1xuICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4gPiAxID8gX2xlbiAtIDEgOiAwKSwgX2tleSA9IDE7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgIGFyZ3NbX2tleSAtIDFdID0gYXJndW1lbnRzW19rZXldO1xuICAgIH1cblxuICAgIHByaW50V2FybmluZygnd2FybicsIGZvcm1hdCwgYXJncyk7XG4gIH1cbn1cbmZ1bmN0aW9uIGVycm9yKGZvcm1hdCkge1xuICB7XG4gICAgZm9yICh2YXIgX2xlbjIgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4yID4gMSA/IF9sZW4yIC0gMSA6IDApLCBfa2V5MiA9IDE7IF9rZXkyIDwgX2xlbjI7IF9rZXkyKyspIHtcbiAgICAgIGFyZ3NbX2tleTIgLSAxXSA9IGFyZ3VtZW50c1tfa2V5Ml07XG4gICAgfVxuXG4gICAgcHJpbnRXYXJuaW5nKCdlcnJvcicsIGZvcm1hdCwgYXJncyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcHJpbnRXYXJuaW5nKGxldmVsLCBmb3JtYXQsIGFyZ3MpIHtcbiAgLy8gV2hlbiBjaGFuZ2luZyB0aGlzIGxvZ2ljLCB5b3UgbWlnaHQgd2FudCB0byBhbHNvXG4gIC8vIHVwZGF0ZSBjb25zb2xlV2l0aFN0YWNrRGV2Lnd3dy5qcyBhcyB3ZWxsLlxuICB7XG4gICAgdmFyIFJlYWN0RGVidWdDdXJyZW50RnJhbWUgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdERlYnVnQ3VycmVudEZyYW1lO1xuICAgIHZhciBzdGFjayA9IFJlYWN0RGVidWdDdXJyZW50RnJhbWUuZ2V0U3RhY2tBZGRlbmR1bSgpO1xuXG4gICAgaWYgKHN0YWNrICE9PSAnJykge1xuICAgICAgZm9ybWF0ICs9ICclcyc7XG4gICAgICBhcmdzID0gYXJncy5jb25jYXQoW3N0YWNrXSk7XG4gICAgfVxuXG4gICAgdmFyIGFyZ3NXaXRoRm9ybWF0ID0gYXJncy5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgIHJldHVybiAnJyArIGl0ZW07XG4gICAgfSk7IC8vIENhcmVmdWw6IFJOIGN1cnJlbnRseSBkZXBlbmRzIG9uIHRoaXMgcHJlZml4XG5cbiAgICBhcmdzV2l0aEZvcm1hdC51bnNoaWZ0KCdXYXJuaW5nOiAnICsgZm9ybWF0KTsgLy8gV2UgaW50ZW50aW9uYWxseSBkb24ndCB1c2Ugc3ByZWFkIChvciAuYXBwbHkpIGRpcmVjdGx5IGJlY2F1c2UgaXRcbiAgICAvLyBicmVha3MgSUU5OiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzEzNjEwXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL25vLXByb2R1Y3Rpb24tbG9nZ2luZ1xuXG4gICAgRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5LmNhbGwoY29uc29sZVtsZXZlbF0sIGNvbnNvbGUsIGFyZ3NXaXRoRm9ybWF0KTtcbiAgfVxufVxuXG52YXIgZGlkV2FyblN0YXRlVXBkYXRlRm9yVW5tb3VudGVkQ29tcG9uZW50ID0ge307XG5cbmZ1bmN0aW9uIHdhcm5Ob29wKHB1YmxpY0luc3RhbmNlLCBjYWxsZXJOYW1lKSB7XG4gIHtcbiAgICB2YXIgX2NvbnN0cnVjdG9yID0gcHVibGljSW5zdGFuY2UuY29uc3RydWN0b3I7XG4gICAgdmFyIGNvbXBvbmVudE5hbWUgPSBfY29uc3RydWN0b3IgJiYgKF9jb25zdHJ1Y3Rvci5kaXNwbGF5TmFtZSB8fCBfY29uc3RydWN0b3IubmFtZSkgfHwgJ1JlYWN0Q2xhc3MnO1xuICAgIHZhciB3YXJuaW5nS2V5ID0gY29tcG9uZW50TmFtZSArIFwiLlwiICsgY2FsbGVyTmFtZTtcblxuICAgIGlmIChkaWRXYXJuU3RhdGVVcGRhdGVGb3JVbm1vdW50ZWRDb21wb25lbnRbd2FybmluZ0tleV0pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBlcnJvcihcIkNhbid0IGNhbGwgJXMgb24gYSBjb21wb25lbnQgdGhhdCBpcyBub3QgeWV0IG1vdW50ZWQuIFwiICsgJ1RoaXMgaXMgYSBuby1vcCwgYnV0IGl0IG1pZ2h0IGluZGljYXRlIGEgYnVnIGluIHlvdXIgYXBwbGljYXRpb24uICcgKyAnSW5zdGVhZCwgYXNzaWduIHRvIGB0aGlzLnN0YXRlYCBkaXJlY3RseSBvciBkZWZpbmUgYSBgc3RhdGUgPSB7fTtgICcgKyAnY2xhc3MgcHJvcGVydHkgd2l0aCB0aGUgZGVzaXJlZCBzdGF0ZSBpbiB0aGUgJXMgY29tcG9uZW50LicsIGNhbGxlck5hbWUsIGNvbXBvbmVudE5hbWUpO1xuXG4gICAgZGlkV2FyblN0YXRlVXBkYXRlRm9yVW5tb3VudGVkQ29tcG9uZW50W3dhcm5pbmdLZXldID0gdHJ1ZTtcbiAgfVxufVxuLyoqXG4gKiBUaGlzIGlzIHRoZSBhYnN0cmFjdCBBUEkgZm9yIGFuIHVwZGF0ZSBxdWV1ZS5cbiAqL1xuXG5cbnZhciBSZWFjdE5vb3BVcGRhdGVRdWV1ZSA9IHtcbiAgLyoqXG4gICAqIENoZWNrcyB3aGV0aGVyIG9yIG5vdCB0aGlzIGNvbXBvc2l0ZSBjb21wb25lbnQgaXMgbW91bnRlZC5cbiAgICogQHBhcmFtIHtSZWFjdENsYXNzfSBwdWJsaWNJbnN0YW5jZSBUaGUgaW5zdGFuY2Ugd2Ugd2FudCB0byB0ZXN0LlxuICAgKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIGlmIG1vdW50ZWQsIGZhbHNlIG90aGVyd2lzZS5cbiAgICogQHByb3RlY3RlZFxuICAgKiBAZmluYWxcbiAgICovXG4gIGlzTW91bnRlZDogZnVuY3Rpb24gKHB1YmxpY0luc3RhbmNlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9LFxuXG4gIC8qKlxuICAgKiBGb3JjZXMgYW4gdXBkYXRlLiBUaGlzIHNob3VsZCBvbmx5IGJlIGludm9rZWQgd2hlbiBpdCBpcyBrbm93biB3aXRoXG4gICAqIGNlcnRhaW50eSB0aGF0IHdlIGFyZSAqKm5vdCoqIGluIGEgRE9NIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBZb3UgbWF5IHdhbnQgdG8gY2FsbCB0aGlzIHdoZW4geW91IGtub3cgdGhhdCBzb21lIGRlZXBlciBhc3BlY3Qgb2YgdGhlXG4gICAqIGNvbXBvbmVudCdzIHN0YXRlIGhhcyBjaGFuZ2VkIGJ1dCBgc2V0U3RhdGVgIHdhcyBub3QgY2FsbGVkLlxuICAgKlxuICAgKiBUaGlzIHdpbGwgbm90IGludm9rZSBgc2hvdWxkQ29tcG9uZW50VXBkYXRlYCwgYnV0IGl0IHdpbGwgaW52b2tlXG4gICAqIGBjb21wb25lbnRXaWxsVXBkYXRlYCBhbmQgYGNvbXBvbmVudERpZFVwZGF0ZWAuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVhY3RDbGFzc30gcHVibGljSW5zdGFuY2UgVGhlIGluc3RhbmNlIHRoYXQgc2hvdWxkIHJlcmVuZGVyLlxuICAgKiBAcGFyYW0gez9mdW5jdGlvbn0gY2FsbGJhY2sgQ2FsbGVkIGFmdGVyIGNvbXBvbmVudCBpcyB1cGRhdGVkLlxuICAgKiBAcGFyYW0gez9zdHJpbmd9IGNhbGxlck5hbWUgbmFtZSBvZiB0aGUgY2FsbGluZyBmdW5jdGlvbiBpbiB0aGUgcHVibGljIEFQSS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBlbnF1ZXVlRm9yY2VVcGRhdGU6IGZ1bmN0aW9uIChwdWJsaWNJbnN0YW5jZSwgY2FsbGJhY2ssIGNhbGxlck5hbWUpIHtcbiAgICB3YXJuTm9vcChwdWJsaWNJbnN0YW5jZSwgJ2ZvcmNlVXBkYXRlJyk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlcGxhY2VzIGFsbCBvZiB0aGUgc3RhdGUuIEFsd2F5cyB1c2UgdGhpcyBvciBgc2V0U3RhdGVgIHRvIG11dGF0ZSBzdGF0ZS5cbiAgICogWW91IHNob3VsZCB0cmVhdCBgdGhpcy5zdGF0ZWAgYXMgaW1tdXRhYmxlLlxuICAgKlxuICAgKiBUaGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBgdGhpcy5zdGF0ZWAgd2lsbCBiZSBpbW1lZGlhdGVseSB1cGRhdGVkLCBzb1xuICAgKiBhY2Nlc3NpbmcgYHRoaXMuc3RhdGVgIGFmdGVyIGNhbGxpbmcgdGhpcyBtZXRob2QgbWF5IHJldHVybiB0aGUgb2xkIHZhbHVlLlxuICAgKlxuICAgKiBAcGFyYW0ge1JlYWN0Q2xhc3N9IHB1YmxpY0luc3RhbmNlIFRoZSBpbnN0YW5jZSB0aGF0IHNob3VsZCByZXJlbmRlci5cbiAgICogQHBhcmFtIHtvYmplY3R9IGNvbXBsZXRlU3RhdGUgTmV4dCBzdGF0ZS5cbiAgICogQHBhcmFtIHs/ZnVuY3Rpb259IGNhbGxiYWNrIENhbGxlZCBhZnRlciBjb21wb25lbnQgaXMgdXBkYXRlZC5cbiAgICogQHBhcmFtIHs/c3RyaW5nfSBjYWxsZXJOYW1lIG5hbWUgb2YgdGhlIGNhbGxpbmcgZnVuY3Rpb24gaW4gdGhlIHB1YmxpYyBBUEkuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZW5xdWV1ZVJlcGxhY2VTdGF0ZTogZnVuY3Rpb24gKHB1YmxpY0luc3RhbmNlLCBjb21wbGV0ZVN0YXRlLCBjYWxsYmFjaywgY2FsbGVyTmFtZSkge1xuICAgIHdhcm5Ob29wKHB1YmxpY0luc3RhbmNlLCAncmVwbGFjZVN0YXRlJyk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFNldHMgYSBzdWJzZXQgb2YgdGhlIHN0YXRlLiBUaGlzIG9ubHkgZXhpc3RzIGJlY2F1c2UgX3BlbmRpbmdTdGF0ZSBpc1xuICAgKiBpbnRlcm5hbC4gVGhpcyBwcm92aWRlcyBhIG1lcmdpbmcgc3RyYXRlZ3kgdGhhdCBpcyBub3QgYXZhaWxhYmxlIHRvIGRlZXBcbiAgICogcHJvcGVydGllcyB3aGljaCBpcyBjb25mdXNpbmcuIFRPRE86IEV4cG9zZSBwZW5kaW5nU3RhdGUgb3IgZG9uJ3QgdXNlIGl0XG4gICAqIGR1cmluZyB0aGUgbWVyZ2UuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVhY3RDbGFzc30gcHVibGljSW5zdGFuY2UgVGhlIGluc3RhbmNlIHRoYXQgc2hvdWxkIHJlcmVuZGVyLlxuICAgKiBAcGFyYW0ge29iamVjdH0gcGFydGlhbFN0YXRlIE5leHQgcGFydGlhbCBzdGF0ZSB0byBiZSBtZXJnZWQgd2l0aCBzdGF0ZS5cbiAgICogQHBhcmFtIHs/ZnVuY3Rpb259IGNhbGxiYWNrIENhbGxlZCBhZnRlciBjb21wb25lbnQgaXMgdXBkYXRlZC5cbiAgICogQHBhcmFtIHs/c3RyaW5nfSBOYW1lIG9mIHRoZSBjYWxsaW5nIGZ1bmN0aW9uIGluIHRoZSBwdWJsaWMgQVBJLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGVucXVldWVTZXRTdGF0ZTogZnVuY3Rpb24gKHB1YmxpY0luc3RhbmNlLCBwYXJ0aWFsU3RhdGUsIGNhbGxiYWNrLCBjYWxsZXJOYW1lKSB7XG4gICAgd2Fybk5vb3AocHVibGljSW5zdGFuY2UsICdzZXRTdGF0ZScpO1xuICB9XG59O1xuXG52YXIgZW1wdHlPYmplY3QgPSB7fTtcblxue1xuICBPYmplY3QuZnJlZXplKGVtcHR5T2JqZWN0KTtcbn1cbi8qKlxuICogQmFzZSBjbGFzcyBoZWxwZXJzIGZvciB0aGUgdXBkYXRpbmcgc3RhdGUgb2YgYSBjb21wb25lbnQuXG4gKi9cblxuXG5mdW5jdGlvbiBDb21wb25lbnQocHJvcHMsIGNvbnRleHQsIHVwZGF0ZXIpIHtcbiAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICB0aGlzLmNvbnRleHQgPSBjb250ZXh0OyAvLyBJZiBhIGNvbXBvbmVudCBoYXMgc3RyaW5nIHJlZnMsIHdlIHdpbGwgYXNzaWduIGEgZGlmZmVyZW50IG9iamVjdCBsYXRlci5cblxuICB0aGlzLnJlZnMgPSBlbXB0eU9iamVjdDsgLy8gV2UgaW5pdGlhbGl6ZSB0aGUgZGVmYXVsdCB1cGRhdGVyIGJ1dCB0aGUgcmVhbCBvbmUgZ2V0cyBpbmplY3RlZCBieSB0aGVcbiAgLy8gcmVuZGVyZXIuXG5cbiAgdGhpcy51cGRhdGVyID0gdXBkYXRlciB8fCBSZWFjdE5vb3BVcGRhdGVRdWV1ZTtcbn1cblxuQ29tcG9uZW50LnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50ID0ge307XG4vKipcbiAqIFNldHMgYSBzdWJzZXQgb2YgdGhlIHN0YXRlLiBBbHdheXMgdXNlIHRoaXMgdG8gbXV0YXRlXG4gKiBzdGF0ZS4gWW91IHNob3VsZCB0cmVhdCBgdGhpcy5zdGF0ZWAgYXMgaW1tdXRhYmxlLlxuICpcbiAqIFRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IGB0aGlzLnN0YXRlYCB3aWxsIGJlIGltbWVkaWF0ZWx5IHVwZGF0ZWQsIHNvXG4gKiBhY2Nlc3NpbmcgYHRoaXMuc3RhdGVgIGFmdGVyIGNhbGxpbmcgdGhpcyBtZXRob2QgbWF5IHJldHVybiB0aGUgb2xkIHZhbHVlLlxuICpcbiAqIFRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IGNhbGxzIHRvIGBzZXRTdGF0ZWAgd2lsbCBydW4gc3luY2hyb25vdXNseSxcbiAqIGFzIHRoZXkgbWF5IGV2ZW50dWFsbHkgYmUgYmF0Y2hlZCB0b2dldGhlci4gIFlvdSBjYW4gcHJvdmlkZSBhbiBvcHRpb25hbFxuICogY2FsbGJhY2sgdGhhdCB3aWxsIGJlIGV4ZWN1dGVkIHdoZW4gdGhlIGNhbGwgdG8gc2V0U3RhdGUgaXMgYWN0dWFsbHlcbiAqIGNvbXBsZXRlZC5cbiAqXG4gKiBXaGVuIGEgZnVuY3Rpb24gaXMgcHJvdmlkZWQgdG8gc2V0U3RhdGUsIGl0IHdpbGwgYmUgY2FsbGVkIGF0IHNvbWUgcG9pbnQgaW5cbiAqIHRoZSBmdXR1cmUgKG5vdCBzeW5jaHJvbm91c2x5KS4gSXQgd2lsbCBiZSBjYWxsZWQgd2l0aCB0aGUgdXAgdG8gZGF0ZVxuICogY29tcG9uZW50IGFyZ3VtZW50cyAoc3RhdGUsIHByb3BzLCBjb250ZXh0KS4gVGhlc2UgdmFsdWVzIGNhbiBiZSBkaWZmZXJlbnRcbiAqIGZyb20gdGhpcy4qIGJlY2F1c2UgeW91ciBmdW5jdGlvbiBtYXkgYmUgY2FsbGVkIGFmdGVyIHJlY2VpdmVQcm9wcyBidXQgYmVmb3JlXG4gKiBzaG91bGRDb21wb25lbnRVcGRhdGUsIGFuZCB0aGlzIG5ldyBzdGF0ZSwgcHJvcHMsIGFuZCBjb250ZXh0IHdpbGwgbm90IHlldCBiZVxuICogYXNzaWduZWQgdG8gdGhpcy5cbiAqXG4gKiBAcGFyYW0ge29iamVjdHxmdW5jdGlvbn0gcGFydGlhbFN0YXRlIE5leHQgcGFydGlhbCBzdGF0ZSBvciBmdW5jdGlvbiB0b1xuICogICAgICAgIHByb2R1Y2UgbmV4dCBwYXJ0aWFsIHN0YXRlIHRvIGJlIG1lcmdlZCB3aXRoIGN1cnJlbnQgc3RhdGUuXG4gKiBAcGFyYW0gez9mdW5jdGlvbn0gY2FsbGJhY2sgQ2FsbGVkIGFmdGVyIHN0YXRlIGlzIHVwZGF0ZWQuXG4gKiBAZmluYWxcbiAqIEBwcm90ZWN0ZWRcbiAqL1xuXG5Db21wb25lbnQucHJvdG90eXBlLnNldFN0YXRlID0gZnVuY3Rpb24gKHBhcnRpYWxTdGF0ZSwgY2FsbGJhY2spIHtcbiAgaWYgKCEodHlwZW9mIHBhcnRpYWxTdGF0ZSA9PT0gJ29iamVjdCcgfHwgdHlwZW9mIHBhcnRpYWxTdGF0ZSA9PT0gJ2Z1bmN0aW9uJyB8fCBwYXJ0aWFsU3RhdGUgPT0gbnVsbCkpIHtcbiAgICB7XG4gICAgICB0aHJvdyBFcnJvciggXCJzZXRTdGF0ZSguLi4pOiB0YWtlcyBhbiBvYmplY3Qgb2Ygc3RhdGUgdmFyaWFibGVzIHRvIHVwZGF0ZSBvciBhIGZ1bmN0aW9uIHdoaWNoIHJldHVybnMgYW4gb2JqZWN0IG9mIHN0YXRlIHZhcmlhYmxlcy5cIiApO1xuICAgIH1cbiAgfVxuXG4gIHRoaXMudXBkYXRlci5lbnF1ZXVlU2V0U3RhdGUodGhpcywgcGFydGlhbFN0YXRlLCBjYWxsYmFjaywgJ3NldFN0YXRlJyk7XG59O1xuLyoqXG4gKiBGb3JjZXMgYW4gdXBkYXRlLiBUaGlzIHNob3VsZCBvbmx5IGJlIGludm9rZWQgd2hlbiBpdCBpcyBrbm93biB3aXRoXG4gKiBjZXJ0YWludHkgdGhhdCB3ZSBhcmUgKipub3QqKiBpbiBhIERPTSB0cmFuc2FjdGlvbi5cbiAqXG4gKiBZb3UgbWF5IHdhbnQgdG8gY2FsbCB0aGlzIHdoZW4geW91IGtub3cgdGhhdCBzb21lIGRlZXBlciBhc3BlY3Qgb2YgdGhlXG4gKiBjb21wb25lbnQncyBzdGF0ZSBoYXMgY2hhbmdlZCBidXQgYHNldFN0YXRlYCB3YXMgbm90IGNhbGxlZC5cbiAqXG4gKiBUaGlzIHdpbGwgbm90IGludm9rZSBgc2hvdWxkQ29tcG9uZW50VXBkYXRlYCwgYnV0IGl0IHdpbGwgaW52b2tlXG4gKiBgY29tcG9uZW50V2lsbFVwZGF0ZWAgYW5kIGBjb21wb25lbnREaWRVcGRhdGVgLlxuICpcbiAqIEBwYXJhbSB7P2Z1bmN0aW9ufSBjYWxsYmFjayBDYWxsZWQgYWZ0ZXIgdXBkYXRlIGlzIGNvbXBsZXRlLlxuICogQGZpbmFsXG4gKiBAcHJvdGVjdGVkXG4gKi9cblxuXG5Db21wb25lbnQucHJvdG90eXBlLmZvcmNlVXBkYXRlID0gZnVuY3Rpb24gKGNhbGxiYWNrKSB7XG4gIHRoaXMudXBkYXRlci5lbnF1ZXVlRm9yY2VVcGRhdGUodGhpcywgY2FsbGJhY2ssICdmb3JjZVVwZGF0ZScpO1xufTtcbi8qKlxuICogRGVwcmVjYXRlZCBBUElzLiBUaGVzZSBBUElzIHVzZWQgdG8gZXhpc3Qgb24gY2xhc3NpYyBSZWFjdCBjbGFzc2VzIGJ1dCBzaW5jZVxuICogd2Ugd291bGQgbGlrZSB0byBkZXByZWNhdGUgdGhlbSwgd2UncmUgbm90IGdvaW5nIHRvIG1vdmUgdGhlbSBvdmVyIHRvIHRoaXNcbiAqIG1vZGVybiBiYXNlIGNsYXNzLiBJbnN0ZWFkLCB3ZSBkZWZpbmUgYSBnZXR0ZXIgdGhhdCB3YXJucyBpZiBpdCdzIGFjY2Vzc2VkLlxuICovXG5cblxue1xuICB2YXIgZGVwcmVjYXRlZEFQSXMgPSB7XG4gICAgaXNNb3VudGVkOiBbJ2lzTW91bnRlZCcsICdJbnN0ZWFkLCBtYWtlIHN1cmUgdG8gY2xlYW4gdXAgc3Vic2NyaXB0aW9ucyBhbmQgcGVuZGluZyByZXF1ZXN0cyBpbiAnICsgJ2NvbXBvbmVudFdpbGxVbm1vdW50IHRvIHByZXZlbnQgbWVtb3J5IGxlYWtzLiddLFxuICAgIHJlcGxhY2VTdGF0ZTogWydyZXBsYWNlU3RhdGUnLCAnUmVmYWN0b3IgeW91ciBjb2RlIHRvIHVzZSBzZXRTdGF0ZSBpbnN0ZWFkIChzZWUgJyArICdodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzMyMzYpLiddXG4gIH07XG5cbiAgdmFyIGRlZmluZURlcHJlY2F0aW9uV2FybmluZyA9IGZ1bmN0aW9uIChtZXRob2ROYW1lLCBpbmZvKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KENvbXBvbmVudC5wcm90b3R5cGUsIG1ldGhvZE5hbWUsIHtcbiAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICB3YXJuKCclcyguLi4pIGlzIGRlcHJlY2F0ZWQgaW4gcGxhaW4gSmF2YVNjcmlwdCBSZWFjdCBjbGFzc2VzLiAlcycsIGluZm9bMF0sIGluZm9bMV0pO1xuXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgfSk7XG4gIH07XG5cbiAgZm9yICh2YXIgZm5OYW1lIGluIGRlcHJlY2F0ZWRBUElzKSB7XG4gICAgaWYgKGRlcHJlY2F0ZWRBUElzLmhhc093blByb3BlcnR5KGZuTmFtZSkpIHtcbiAgICAgIGRlZmluZURlcHJlY2F0aW9uV2FybmluZyhmbk5hbWUsIGRlcHJlY2F0ZWRBUElzW2ZuTmFtZV0pO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBDb21wb25lbnREdW1teSgpIHt9XG5cbkNvbXBvbmVudER1bW15LnByb3RvdHlwZSA9IENvbXBvbmVudC5wcm90b3R5cGU7XG4vKipcbiAqIENvbnZlbmllbmNlIGNvbXBvbmVudCB3aXRoIGRlZmF1bHQgc2hhbGxvdyBlcXVhbGl0eSBjaGVjayBmb3Igc0NVLlxuICovXG5cbmZ1bmN0aW9uIFB1cmVDb21wb25lbnQocHJvcHMsIGNvbnRleHQsIHVwZGF0ZXIpIHtcbiAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICB0aGlzLmNvbnRleHQgPSBjb250ZXh0OyAvLyBJZiBhIGNvbXBvbmVudCBoYXMgc3RyaW5nIHJlZnMsIHdlIHdpbGwgYXNzaWduIGEgZGlmZmVyZW50IG9iamVjdCBsYXRlci5cblxuICB0aGlzLnJlZnMgPSBlbXB0eU9iamVjdDtcbiAgdGhpcy51cGRhdGVyID0gdXBkYXRlciB8fCBSZWFjdE5vb3BVcGRhdGVRdWV1ZTtcbn1cblxudmFyIHB1cmVDb21wb25lbnRQcm90b3R5cGUgPSBQdXJlQ29tcG9uZW50LnByb3RvdHlwZSA9IG5ldyBDb21wb25lbnREdW1teSgpO1xucHVyZUNvbXBvbmVudFByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IFB1cmVDb21wb25lbnQ7IC8vIEF2b2lkIGFuIGV4dHJhIHByb3RvdHlwZSBqdW1wIGZvciB0aGVzZSBtZXRob2RzLlxuXG5fYXNzaWduKHB1cmVDb21wb25lbnRQcm90b3R5cGUsIENvbXBvbmVudC5wcm90b3R5cGUpO1xuXG5wdXJlQ29tcG9uZW50UHJvdG90eXBlLmlzUHVyZVJlYWN0Q29tcG9uZW50ID0gdHJ1ZTtcblxuLy8gYW4gaW1tdXRhYmxlIG9iamVjdCB3aXRoIGEgc2luZ2xlIG11dGFibGUgdmFsdWVcbmZ1bmN0aW9uIGNyZWF0ZVJlZigpIHtcbiAgdmFyIHJlZk9iamVjdCA9IHtcbiAgICBjdXJyZW50OiBudWxsXG4gIH07XG5cbiAge1xuICAgIE9iamVjdC5zZWFsKHJlZk9iamVjdCk7XG4gIH1cblxuICByZXR1cm4gcmVmT2JqZWN0O1xufVxuXG5mdW5jdGlvbiBnZXRXcmFwcGVkTmFtZShvdXRlclR5cGUsIGlubmVyVHlwZSwgd3JhcHBlck5hbWUpIHtcbiAgdmFyIGZ1bmN0aW9uTmFtZSA9IGlubmVyVHlwZS5kaXNwbGF5TmFtZSB8fCBpbm5lclR5cGUubmFtZSB8fCAnJztcbiAgcmV0dXJuIG91dGVyVHlwZS5kaXNwbGF5TmFtZSB8fCAoZnVuY3Rpb25OYW1lICE9PSAnJyA/IHdyYXBwZXJOYW1lICsgXCIoXCIgKyBmdW5jdGlvbk5hbWUgKyBcIilcIiA6IHdyYXBwZXJOYW1lKTtcbn1cblxuZnVuY3Rpb24gZ2V0Q29udGV4dE5hbWUodHlwZSkge1xuICByZXR1cm4gdHlwZS5kaXNwbGF5TmFtZSB8fCAnQ29udGV4dCc7XG59XG5cbmZ1bmN0aW9uIGdldENvbXBvbmVudE5hbWUodHlwZSkge1xuICBpZiAodHlwZSA9PSBudWxsKSB7XG4gICAgLy8gSG9zdCByb290LCB0ZXh0IG5vZGUgb3IganVzdCBpbnZhbGlkIHR5cGUuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICB7XG4gICAgaWYgKHR5cGVvZiB0eXBlLnRhZyA9PT0gJ251bWJlcicpIHtcbiAgICAgIGVycm9yKCdSZWNlaXZlZCBhbiB1bmV4cGVjdGVkIG9iamVjdCBpbiBnZXRDb21wb25lbnROYW1lKCkuICcgKyAnVGhpcyBpcyBsaWtlbHkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicpO1xuICAgIH1cbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiB0eXBlLmRpc3BsYXlOYW1lIHx8IHR5cGUubmFtZSB8fCBudWxsO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB0eXBlO1xuICB9XG5cbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSBleHBvcnRzLkZyYWdtZW50OlxuICAgICAgcmV0dXJuICdGcmFnbWVudCc7XG5cbiAgICBjYXNlIFJFQUNUX1BPUlRBTF9UWVBFOlxuICAgICAgcmV0dXJuICdQb3J0YWwnO1xuXG4gICAgY2FzZSBleHBvcnRzLlByb2ZpbGVyOlxuICAgICAgcmV0dXJuICdQcm9maWxlcic7XG5cbiAgICBjYXNlIGV4cG9ydHMuU3RyaWN0TW9kZTpcbiAgICAgIHJldHVybiAnU3RyaWN0TW9kZSc7XG5cbiAgICBjYXNlIGV4cG9ydHMuU3VzcGVuc2U6XG4gICAgICByZXR1cm4gJ1N1c3BlbnNlJztcblxuICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFOlxuICAgICAgcmV0dXJuICdTdXNwZW5zZUxpc3QnO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnb2JqZWN0Jykge1xuICAgIHN3aXRjaCAodHlwZS4kJHR5cGVvZikge1xuICAgICAgY2FzZSBSRUFDVF9DT05URVhUX1RZUEU6XG4gICAgICAgIHZhciBjb250ZXh0ID0gdHlwZTtcbiAgICAgICAgcmV0dXJuIGdldENvbnRleHROYW1lKGNvbnRleHQpICsgJy5Db25zdW1lcic7XG5cbiAgICAgIGNhc2UgUkVBQ1RfUFJPVklERVJfVFlQRTpcbiAgICAgICAgdmFyIHByb3ZpZGVyID0gdHlwZTtcbiAgICAgICAgcmV0dXJuIGdldENvbnRleHROYW1lKHByb3ZpZGVyLl9jb250ZXh0KSArICcuUHJvdmlkZXInO1xuXG4gICAgICBjYXNlIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU6XG4gICAgICAgIHJldHVybiBnZXRXcmFwcGVkTmFtZSh0eXBlLCB0eXBlLnJlbmRlciwgJ0ZvcndhcmRSZWYnKTtcblxuICAgICAgY2FzZSBSRUFDVF9NRU1PX1RZUEU6XG4gICAgICAgIHJldHVybiBnZXRDb21wb25lbnROYW1lKHR5cGUudHlwZSk7XG5cbiAgICAgIGNhc2UgUkVBQ1RfQkxPQ0tfVFlQRTpcbiAgICAgICAgcmV0dXJuIGdldENvbXBvbmVudE5hbWUodHlwZS5fcmVuZGVyKTtcblxuICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgbGF6eUNvbXBvbmVudCA9IHR5cGU7XG4gICAgICAgICAgdmFyIHBheWxvYWQgPSBsYXp5Q29tcG9uZW50Ll9wYXlsb2FkO1xuICAgICAgICAgIHZhciBpbml0ID0gbGF6eUNvbXBvbmVudC5faW5pdDtcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0Q29tcG9uZW50TmFtZShpbml0KHBheWxvYWQpKTtcbiAgICAgICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxudmFyIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbnZhciBSRVNFUlZFRF9QUk9QUyA9IHtcbiAga2V5OiB0cnVlLFxuICByZWY6IHRydWUsXG4gIF9fc2VsZjogdHJ1ZSxcbiAgX19zb3VyY2U6IHRydWVcbn07XG52YXIgc3BlY2lhbFByb3BLZXlXYXJuaW5nU2hvd24sIHNwZWNpYWxQcm9wUmVmV2FybmluZ1Nob3duLCBkaWRXYXJuQWJvdXRTdHJpbmdSZWZzO1xuXG57XG4gIGRpZFdhcm5BYm91dFN0cmluZ1JlZnMgPSB7fTtcbn1cblxuZnVuY3Rpb24gaGFzVmFsaWRSZWYoY29uZmlnKSB7XG4gIHtcbiAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChjb25maWcsICdyZWYnKSkge1xuICAgICAgdmFyIGdldHRlciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoY29uZmlnLCAncmVmJykuZ2V0O1xuXG4gICAgICBpZiAoZ2V0dGVyICYmIGdldHRlci5pc1JlYWN0V2FybmluZykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNvbmZpZy5yZWYgIT09IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gaGFzVmFsaWRLZXkoY29uZmlnKSB7XG4gIHtcbiAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChjb25maWcsICdrZXknKSkge1xuICAgICAgdmFyIGdldHRlciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoY29uZmlnLCAna2V5JykuZ2V0O1xuXG4gICAgICBpZiAoZ2V0dGVyICYmIGdldHRlci5pc1JlYWN0V2FybmluZykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNvbmZpZy5rZXkgIT09IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gZGVmaW5lS2V5UHJvcFdhcm5pbmdHZXR0ZXIocHJvcHMsIGRpc3BsYXlOYW1lKSB7XG4gIHZhciB3YXJuQWJvdXRBY2Nlc3NpbmdLZXkgPSBmdW5jdGlvbiAoKSB7XG4gICAge1xuICAgICAgaWYgKCFzcGVjaWFsUHJvcEtleVdhcm5pbmdTaG93bikge1xuICAgICAgICBzcGVjaWFsUHJvcEtleVdhcm5pbmdTaG93biA9IHRydWU7XG5cbiAgICAgICAgZXJyb3IoJyVzOiBga2V5YCBpcyBub3QgYSBwcm9wLiBUcnlpbmcgdG8gYWNjZXNzIGl0IHdpbGwgcmVzdWx0ICcgKyAnaW4gYHVuZGVmaW5lZGAgYmVpbmcgcmV0dXJuZWQuIElmIHlvdSBuZWVkIHRvIGFjY2VzcyB0aGUgc2FtZSAnICsgJ3ZhbHVlIHdpdGhpbiB0aGUgY2hpbGQgY29tcG9uZW50LCB5b3Ugc2hvdWxkIHBhc3MgaXQgYXMgYSBkaWZmZXJlbnQgJyArICdwcm9wLiAoaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3NwZWNpYWwtcHJvcHMpJywgZGlzcGxheU5hbWUpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICB3YXJuQWJvdXRBY2Nlc3NpbmdLZXkuaXNSZWFjdFdhcm5pbmcgPSB0cnVlO1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvcHMsICdrZXknLCB7XG4gICAgZ2V0OiB3YXJuQWJvdXRBY2Nlc3NpbmdLZXksXG4gICAgY29uZmlndXJhYmxlOiB0cnVlXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBkZWZpbmVSZWZQcm9wV2FybmluZ0dldHRlcihwcm9wcywgZGlzcGxheU5hbWUpIHtcbiAgdmFyIHdhcm5BYm91dEFjY2Vzc2luZ1JlZiA9IGZ1bmN0aW9uICgpIHtcbiAgICB7XG4gICAgICBpZiAoIXNwZWNpYWxQcm9wUmVmV2FybmluZ1Nob3duKSB7XG4gICAgICAgIHNwZWNpYWxQcm9wUmVmV2FybmluZ1Nob3duID0gdHJ1ZTtcblxuICAgICAgICBlcnJvcignJXM6IGByZWZgIGlzIG5vdCBhIHByb3AuIFRyeWluZyB0byBhY2Nlc3MgaXQgd2lsbCByZXN1bHQgJyArICdpbiBgdW5kZWZpbmVkYCBiZWluZyByZXR1cm5lZC4gSWYgeW91IG5lZWQgdG8gYWNjZXNzIHRoZSBzYW1lICcgKyAndmFsdWUgd2l0aGluIHRoZSBjaGlsZCBjb21wb25lbnQsIHlvdSBzaG91bGQgcGFzcyBpdCBhcyBhIGRpZmZlcmVudCAnICsgJ3Byb3AuIChodHRwczovL3JlYWN0anMub3JnL2xpbmsvc3BlY2lhbC1wcm9wcyknLCBkaXNwbGF5TmFtZSk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIHdhcm5BYm91dEFjY2Vzc2luZ1JlZi5pc1JlYWN0V2FybmluZyA9IHRydWU7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm9wcywgJ3JlZicsIHtcbiAgICBnZXQ6IHdhcm5BYm91dEFjY2Vzc2luZ1JlZixcbiAgICBjb25maWd1cmFibGU6IHRydWVcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHdhcm5JZlN0cmluZ1JlZkNhbm5vdEJlQXV0b0NvbnZlcnRlZChjb25maWcpIHtcbiAge1xuICAgIGlmICh0eXBlb2YgY29uZmlnLnJlZiA9PT0gJ3N0cmluZycgJiYgUmVhY3RDdXJyZW50T3duZXIuY3VycmVudCAmJiBjb25maWcuX19zZWxmICYmIFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQuc3RhdGVOb2RlICE9PSBjb25maWcuX19zZWxmKSB7XG4gICAgICB2YXIgY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWUoUmVhY3RDdXJyZW50T3duZXIuY3VycmVudC50eXBlKTtcblxuICAgICAgaWYgKCFkaWRXYXJuQWJvdXRTdHJpbmdSZWZzW2NvbXBvbmVudE5hbWVdKSB7XG4gICAgICAgIGVycm9yKCdDb21wb25lbnQgXCIlc1wiIGNvbnRhaW5zIHRoZSBzdHJpbmcgcmVmIFwiJXNcIi4gJyArICdTdXBwb3J0IGZvciBzdHJpbmcgcmVmcyB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgbWFqb3IgcmVsZWFzZS4gJyArICdUaGlzIGNhc2UgY2Fubm90IGJlIGF1dG9tYXRpY2FsbHkgY29udmVydGVkIHRvIGFuIGFycm93IGZ1bmN0aW9uLiAnICsgJ1dlIGFzayB5b3UgdG8gbWFudWFsbHkgZml4IHRoaXMgY2FzZSBieSB1c2luZyB1c2VSZWYoKSBvciBjcmVhdGVSZWYoKSBpbnN0ZWFkLiAnICsgJ0xlYXJuIG1vcmUgYWJvdXQgdXNpbmcgcmVmcyBzYWZlbHkgaGVyZTogJyArICdodHRwczovL3JlYWN0anMub3JnL2xpbmsvc3RyaWN0LW1vZGUtc3RyaW5nLXJlZicsIGNvbXBvbmVudE5hbWUsIGNvbmZpZy5yZWYpO1xuXG4gICAgICAgIGRpZFdhcm5BYm91dFN0cmluZ1JlZnNbY29tcG9uZW50TmFtZV0gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuLyoqXG4gKiBGYWN0b3J5IG1ldGhvZCB0byBjcmVhdGUgYSBuZXcgUmVhY3QgZWxlbWVudC4gVGhpcyBubyBsb25nZXIgYWRoZXJlcyB0b1xuICogdGhlIGNsYXNzIHBhdHRlcm4sIHNvIGRvIG5vdCB1c2UgbmV3IHRvIGNhbGwgaXQuIEFsc28sIGluc3RhbmNlb2YgY2hlY2tcbiAqIHdpbGwgbm90IHdvcmsuIEluc3RlYWQgdGVzdCAkJHR5cGVvZiBmaWVsZCBhZ2FpbnN0IFN5bWJvbC5mb3IoJ3JlYWN0LmVsZW1lbnQnKSB0byBjaGVja1xuICogaWYgc29tZXRoaW5nIGlzIGEgUmVhY3QgRWxlbWVudC5cbiAqXG4gKiBAcGFyYW0geyp9IHR5cGVcbiAqIEBwYXJhbSB7Kn0gcHJvcHNcbiAqIEBwYXJhbSB7Kn0ga2V5XG4gKiBAcGFyYW0ge3N0cmluZ3xvYmplY3R9IHJlZlxuICogQHBhcmFtIHsqfSBvd25lclxuICogQHBhcmFtIHsqfSBzZWxmIEEgKnRlbXBvcmFyeSogaGVscGVyIHRvIGRldGVjdCBwbGFjZXMgd2hlcmUgYHRoaXNgIGlzXG4gKiBkaWZmZXJlbnQgZnJvbSB0aGUgYG93bmVyYCB3aGVuIFJlYWN0LmNyZWF0ZUVsZW1lbnQgaXMgY2FsbGVkLCBzbyB0aGF0IHdlXG4gKiBjYW4gd2Fybi4gV2Ugd2FudCB0byBnZXQgcmlkIG9mIG93bmVyIGFuZCByZXBsYWNlIHN0cmluZyBgcmVmYHMgd2l0aCBhcnJvd1xuICogZnVuY3Rpb25zLCBhbmQgYXMgbG9uZyBhcyBgdGhpc2AgYW5kIG93bmVyIGFyZSB0aGUgc2FtZSwgdGhlcmUgd2lsbCBiZSBub1xuICogY2hhbmdlIGluIGJlaGF2aW9yLlxuICogQHBhcmFtIHsqfSBzb3VyY2UgQW4gYW5ub3RhdGlvbiBvYmplY3QgKGFkZGVkIGJ5IGEgdHJhbnNwaWxlciBvciBvdGhlcndpc2UpXG4gKiBpbmRpY2F0aW5nIGZpbGVuYW1lLCBsaW5lIG51bWJlciwgYW5kL29yIG90aGVyIGluZm9ybWF0aW9uLlxuICogQGludGVybmFsXG4gKi9cblxuXG52YXIgUmVhY3RFbGVtZW50ID0gZnVuY3Rpb24gKHR5cGUsIGtleSwgcmVmLCBzZWxmLCBzb3VyY2UsIG93bmVyLCBwcm9wcykge1xuICB2YXIgZWxlbWVudCA9IHtcbiAgICAvLyBUaGlzIHRhZyBhbGxvd3MgdXMgdG8gdW5pcXVlbHkgaWRlbnRpZnkgdGhpcyBhcyBhIFJlYWN0IEVsZW1lbnRcbiAgICAkJHR5cGVvZjogUkVBQ1RfRUxFTUVOVF9UWVBFLFxuICAgIC8vIEJ1aWx0LWluIHByb3BlcnRpZXMgdGhhdCBiZWxvbmcgb24gdGhlIGVsZW1lbnRcbiAgICB0eXBlOiB0eXBlLFxuICAgIGtleToga2V5LFxuICAgIHJlZjogcmVmLFxuICAgIHByb3BzOiBwcm9wcyxcbiAgICAvLyBSZWNvcmQgdGhlIGNvbXBvbmVudCByZXNwb25zaWJsZSBmb3IgY3JlYXRpbmcgdGhpcyBlbGVtZW50LlxuICAgIF9vd25lcjogb3duZXJcbiAgfTtcblxuICB7XG4gICAgLy8gVGhlIHZhbGlkYXRpb24gZmxhZyBpcyBjdXJyZW50bHkgbXV0YXRpdmUuIFdlIHB1dCBpdCBvblxuICAgIC8vIGFuIGV4dGVybmFsIGJhY2tpbmcgc3RvcmUgc28gdGhhdCB3ZSBjYW4gZnJlZXplIHRoZSB3aG9sZSBvYmplY3QuXG4gICAgLy8gVGhpcyBjYW4gYmUgcmVwbGFjZWQgd2l0aCBhIFdlYWtNYXAgb25jZSB0aGV5IGFyZSBpbXBsZW1lbnRlZCBpblxuICAgIC8vIGNvbW1vbmx5IHVzZWQgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnRzLlxuICAgIGVsZW1lbnQuX3N0b3JlID0ge307IC8vIFRvIG1ha2UgY29tcGFyaW5nIFJlYWN0RWxlbWVudHMgZWFzaWVyIGZvciB0ZXN0aW5nIHB1cnBvc2VzLCB3ZSBtYWtlXG4gICAgLy8gdGhlIHZhbGlkYXRpb24gZmxhZyBub24tZW51bWVyYWJsZSAod2hlcmUgcG9zc2libGUsIHdoaWNoIHNob3VsZFxuICAgIC8vIGluY2x1ZGUgZXZlcnkgZW52aXJvbm1lbnQgd2UgcnVuIHRlc3RzIGluKSwgc28gdGhlIHRlc3QgZnJhbWV3b3JrXG4gICAgLy8gaWdub3JlcyBpdC5cblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlbGVtZW50Ll9zdG9yZSwgJ3ZhbGlkYXRlZCcsIHtcbiAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgdmFsdWU6IGZhbHNlXG4gICAgfSk7IC8vIHNlbGYgYW5kIHNvdXJjZSBhcmUgREVWIG9ubHkgcHJvcGVydGllcy5cblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlbGVtZW50LCAnX3NlbGYnLCB7XG4gICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICB2YWx1ZTogc2VsZlxuICAgIH0pOyAvLyBUd28gZWxlbWVudHMgY3JlYXRlZCBpbiB0d28gZGlmZmVyZW50IHBsYWNlcyBzaG91bGQgYmUgY29uc2lkZXJlZFxuICAgIC8vIGVxdWFsIGZvciB0ZXN0aW5nIHB1cnBvc2VzIGFuZCB0aGVyZWZvcmUgd2UgaGlkZSBpdCBmcm9tIGVudW1lcmF0aW9uLlxuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGVsZW1lbnQsICdfc291cmNlJywge1xuICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgICAgdmFsdWU6IHNvdXJjZVxuICAgIH0pO1xuXG4gICAgaWYgKE9iamVjdC5mcmVlemUpIHtcbiAgICAgIE9iamVjdC5mcmVlemUoZWxlbWVudC5wcm9wcyk7XG4gICAgICBPYmplY3QuZnJlZXplKGVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBlbGVtZW50O1xufTtcbi8qKlxuICogQ3JlYXRlIGFuZCByZXR1cm4gYSBuZXcgUmVhY3RFbGVtZW50IG9mIHRoZSBnaXZlbiB0eXBlLlxuICogU2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9yZWFjdC1hcGkuaHRtbCNjcmVhdGVlbGVtZW50XG4gKi9cblxuZnVuY3Rpb24gY3JlYXRlRWxlbWVudCh0eXBlLCBjb25maWcsIGNoaWxkcmVuKSB7XG4gIHZhciBwcm9wTmFtZTsgLy8gUmVzZXJ2ZWQgbmFtZXMgYXJlIGV4dHJhY3RlZFxuXG4gIHZhciBwcm9wcyA9IHt9O1xuICB2YXIga2V5ID0gbnVsbDtcbiAgdmFyIHJlZiA9IG51bGw7XG4gIHZhciBzZWxmID0gbnVsbDtcbiAgdmFyIHNvdXJjZSA9IG51bGw7XG5cbiAgaWYgKGNvbmZpZyAhPSBudWxsKSB7XG4gICAgaWYgKGhhc1ZhbGlkUmVmKGNvbmZpZykpIHtcbiAgICAgIHJlZiA9IGNvbmZpZy5yZWY7XG5cbiAgICAgIHtcbiAgICAgICAgd2FybklmU3RyaW5nUmVmQ2Fubm90QmVBdXRvQ29udmVydGVkKGNvbmZpZyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGhhc1ZhbGlkS2V5KGNvbmZpZykpIHtcbiAgICAgIGtleSA9ICcnICsgY29uZmlnLmtleTtcbiAgICB9XG5cbiAgICBzZWxmID0gY29uZmlnLl9fc2VsZiA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGNvbmZpZy5fX3NlbGY7XG4gICAgc291cmNlID0gY29uZmlnLl9fc291cmNlID09PSB1bmRlZmluZWQgPyBudWxsIDogY29uZmlnLl9fc291cmNlOyAvLyBSZW1haW5pbmcgcHJvcGVydGllcyBhcmUgYWRkZWQgdG8gYSBuZXcgcHJvcHMgb2JqZWN0XG5cbiAgICBmb3IgKHByb3BOYW1lIGluIGNvbmZpZykge1xuICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoY29uZmlnLCBwcm9wTmFtZSkgJiYgIVJFU0VSVkVEX1BST1BTLmhhc093blByb3BlcnR5KHByb3BOYW1lKSkge1xuICAgICAgICBwcm9wc1twcm9wTmFtZV0gPSBjb25maWdbcHJvcE5hbWVdO1xuICAgICAgfVxuICAgIH1cbiAgfSAvLyBDaGlsZHJlbiBjYW4gYmUgbW9yZSB0aGFuIG9uZSBhcmd1bWVudCwgYW5kIHRob3NlIGFyZSB0cmFuc2ZlcnJlZCBvbnRvXG4gIC8vIHRoZSBuZXdseSBhbGxvY2F0ZWQgcHJvcHMgb2JqZWN0LlxuXG5cbiAgdmFyIGNoaWxkcmVuTGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aCAtIDI7XG5cbiAgaWYgKGNoaWxkcmVuTGVuZ3RoID09PSAxKSB7XG4gICAgcHJvcHMuY2hpbGRyZW4gPSBjaGlsZHJlbjtcbiAgfSBlbHNlIGlmIChjaGlsZHJlbkxlbmd0aCA+IDEpIHtcbiAgICB2YXIgY2hpbGRBcnJheSA9IEFycmF5KGNoaWxkcmVuTGVuZ3RoKTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW5MZW5ndGg7IGkrKykge1xuICAgICAgY2hpbGRBcnJheVtpXSA9IGFyZ3VtZW50c1tpICsgMl07XG4gICAgfVxuXG4gICAge1xuICAgICAgaWYgKE9iamVjdC5mcmVlemUpIHtcbiAgICAgICAgT2JqZWN0LmZyZWV6ZShjaGlsZEFycmF5KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcm9wcy5jaGlsZHJlbiA9IGNoaWxkQXJyYXk7XG4gIH0gLy8gUmVzb2x2ZSBkZWZhdWx0IHByb3BzXG5cblxuICBpZiAodHlwZSAmJiB0eXBlLmRlZmF1bHRQcm9wcykge1xuICAgIHZhciBkZWZhdWx0UHJvcHMgPSB0eXBlLmRlZmF1bHRQcm9wcztcblxuICAgIGZvciAocHJvcE5hbWUgaW4gZGVmYXVsdFByb3BzKSB7XG4gICAgICBpZiAocHJvcHNbcHJvcE5hbWVdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcHJvcHNbcHJvcE5hbWVdID0gZGVmYXVsdFByb3BzW3Byb3BOYW1lXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB7XG4gICAgaWYgKGtleSB8fCByZWYpIHtcbiAgICAgIHZhciBkaXNwbGF5TmFtZSA9IHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nID8gdHlwZS5kaXNwbGF5TmFtZSB8fCB0eXBlLm5hbWUgfHwgJ1Vua25vd24nIDogdHlwZTtcblxuICAgICAgaWYgKGtleSkge1xuICAgICAgICBkZWZpbmVLZXlQcm9wV2FybmluZ0dldHRlcihwcm9wcywgZGlzcGxheU5hbWUpO1xuICAgICAgfVxuXG4gICAgICBpZiAocmVmKSB7XG4gICAgICAgIGRlZmluZVJlZlByb3BXYXJuaW5nR2V0dGVyKHByb3BzLCBkaXNwbGF5TmFtZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFJlYWN0RWxlbWVudCh0eXBlLCBrZXksIHJlZiwgc2VsZiwgc291cmNlLCBSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50LCBwcm9wcyk7XG59XG5mdW5jdGlvbiBjbG9uZUFuZFJlcGxhY2VLZXkob2xkRWxlbWVudCwgbmV3S2V5KSB7XG4gIHZhciBuZXdFbGVtZW50ID0gUmVhY3RFbGVtZW50KG9sZEVsZW1lbnQudHlwZSwgbmV3S2V5LCBvbGRFbGVtZW50LnJlZiwgb2xkRWxlbWVudC5fc2VsZiwgb2xkRWxlbWVudC5fc291cmNlLCBvbGRFbGVtZW50Ll9vd25lciwgb2xkRWxlbWVudC5wcm9wcyk7XG4gIHJldHVybiBuZXdFbGVtZW50O1xufVxuLyoqXG4gKiBDbG9uZSBhbmQgcmV0dXJuIGEgbmV3IFJlYWN0RWxlbWVudCB1c2luZyBlbGVtZW50IGFzIHRoZSBzdGFydGluZyBwb2ludC5cbiAqIFNlZSBodHRwczovL3JlYWN0anMub3JnL2RvY3MvcmVhY3QtYXBpLmh0bWwjY2xvbmVlbGVtZW50XG4gKi9cblxuZnVuY3Rpb24gY2xvbmVFbGVtZW50KGVsZW1lbnQsIGNvbmZpZywgY2hpbGRyZW4pIHtcbiAgaWYgKCEhKGVsZW1lbnQgPT09IG51bGwgfHwgZWxlbWVudCA9PT0gdW5kZWZpbmVkKSkge1xuICAgIHtcbiAgICAgIHRocm93IEVycm9yKCBcIlJlYWN0LmNsb25lRWxlbWVudCguLi4pOiBUaGUgYXJndW1lbnQgbXVzdCBiZSBhIFJlYWN0IGVsZW1lbnQsIGJ1dCB5b3UgcGFzc2VkIFwiICsgZWxlbWVudCArIFwiLlwiICk7XG4gICAgfVxuICB9XG5cbiAgdmFyIHByb3BOYW1lOyAvLyBPcmlnaW5hbCBwcm9wcyBhcmUgY29waWVkXG5cbiAgdmFyIHByb3BzID0gX2Fzc2lnbih7fSwgZWxlbWVudC5wcm9wcyk7IC8vIFJlc2VydmVkIG5hbWVzIGFyZSBleHRyYWN0ZWRcblxuXG4gIHZhciBrZXkgPSBlbGVtZW50LmtleTtcbiAgdmFyIHJlZiA9IGVsZW1lbnQucmVmOyAvLyBTZWxmIGlzIHByZXNlcnZlZCBzaW5jZSB0aGUgb3duZXIgaXMgcHJlc2VydmVkLlxuXG4gIHZhciBzZWxmID0gZWxlbWVudC5fc2VsZjsgLy8gU291cmNlIGlzIHByZXNlcnZlZCBzaW5jZSBjbG9uZUVsZW1lbnQgaXMgdW5saWtlbHkgdG8gYmUgdGFyZ2V0ZWQgYnkgYVxuICAvLyB0cmFuc3BpbGVyLCBhbmQgdGhlIG9yaWdpbmFsIHNvdXJjZSBpcyBwcm9iYWJseSBhIGJldHRlciBpbmRpY2F0b3Igb2YgdGhlXG4gIC8vIHRydWUgb3duZXIuXG5cbiAgdmFyIHNvdXJjZSA9IGVsZW1lbnQuX3NvdXJjZTsgLy8gT3duZXIgd2lsbCBiZSBwcmVzZXJ2ZWQsIHVubGVzcyByZWYgaXMgb3ZlcnJpZGRlblxuXG4gIHZhciBvd25lciA9IGVsZW1lbnQuX293bmVyO1xuXG4gIGlmIChjb25maWcgIT0gbnVsbCkge1xuICAgIGlmIChoYXNWYWxpZFJlZihjb25maWcpKSB7XG4gICAgICAvLyBTaWxlbnRseSBzdGVhbCB0aGUgcmVmIGZyb20gdGhlIHBhcmVudC5cbiAgICAgIHJlZiA9IGNvbmZpZy5yZWY7XG4gICAgICBvd25lciA9IFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQ7XG4gICAgfVxuXG4gICAgaWYgKGhhc1ZhbGlkS2V5KGNvbmZpZykpIHtcbiAgICAgIGtleSA9ICcnICsgY29uZmlnLmtleTtcbiAgICB9IC8vIFJlbWFpbmluZyBwcm9wZXJ0aWVzIG92ZXJyaWRlIGV4aXN0aW5nIHByb3BzXG5cblxuICAgIHZhciBkZWZhdWx0UHJvcHM7XG5cbiAgICBpZiAoZWxlbWVudC50eXBlICYmIGVsZW1lbnQudHlwZS5kZWZhdWx0UHJvcHMpIHtcbiAgICAgIGRlZmF1bHRQcm9wcyA9IGVsZW1lbnQudHlwZS5kZWZhdWx0UHJvcHM7XG4gICAgfVxuXG4gICAgZm9yIChwcm9wTmFtZSBpbiBjb25maWcpIHtcbiAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbmZpZywgcHJvcE5hbWUpICYmICFSRVNFUlZFRF9QUk9QUy5oYXNPd25Qcm9wZXJ0eShwcm9wTmFtZSkpIHtcbiAgICAgICAgaWYgKGNvbmZpZ1twcm9wTmFtZV0gPT09IHVuZGVmaW5lZCAmJiBkZWZhdWx0UHJvcHMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIC8vIFJlc29sdmUgZGVmYXVsdCBwcm9wc1xuICAgICAgICAgIHByb3BzW3Byb3BOYW1lXSA9IGRlZmF1bHRQcm9wc1twcm9wTmFtZV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcHJvcHNbcHJvcE5hbWVdID0gY29uZmlnW3Byb3BOYW1lXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSAvLyBDaGlsZHJlbiBjYW4gYmUgbW9yZSB0aGFuIG9uZSBhcmd1bWVudCwgYW5kIHRob3NlIGFyZSB0cmFuc2ZlcnJlZCBvbnRvXG4gIC8vIHRoZSBuZXdseSBhbGxvY2F0ZWQgcHJvcHMgb2JqZWN0LlxuXG5cbiAgdmFyIGNoaWxkcmVuTGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aCAtIDI7XG5cbiAgaWYgKGNoaWxkcmVuTGVuZ3RoID09PSAxKSB7XG4gICAgcHJvcHMuY2hpbGRyZW4gPSBjaGlsZHJlbjtcbiAgfSBlbHNlIGlmIChjaGlsZHJlbkxlbmd0aCA+IDEpIHtcbiAgICB2YXIgY2hpbGRBcnJheSA9IEFycmF5KGNoaWxkcmVuTGVuZ3RoKTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW5MZW5ndGg7IGkrKykge1xuICAgICAgY2hpbGRBcnJheVtpXSA9IGFyZ3VtZW50c1tpICsgMl07XG4gICAgfVxuXG4gICAgcHJvcHMuY2hpbGRyZW4gPSBjaGlsZEFycmF5O1xuICB9XG5cbiAgcmV0dXJuIFJlYWN0RWxlbWVudChlbGVtZW50LnR5cGUsIGtleSwgcmVmLCBzZWxmLCBzb3VyY2UsIG93bmVyLCBwcm9wcyk7XG59XG4vKipcbiAqIFZlcmlmaWVzIHRoZSBvYmplY3QgaXMgYSBSZWFjdEVsZW1lbnQuXG4gKiBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL3JlYWN0LWFwaS5odG1sI2lzdmFsaWRlbGVtZW50XG4gKiBAcGFyYW0gez9vYmplY3R9IG9iamVjdFxuICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSBpZiBgb2JqZWN0YCBpcyBhIFJlYWN0RWxlbWVudC5cbiAqIEBmaW5hbFxuICovXG5cbmZ1bmN0aW9uIGlzVmFsaWRFbGVtZW50KG9iamVjdCkge1xuICByZXR1cm4gdHlwZW9mIG9iamVjdCA9PT0gJ29iamVjdCcgJiYgb2JqZWN0ICE9PSBudWxsICYmIG9iamVjdC4kJHR5cGVvZiA9PT0gUkVBQ1RfRUxFTUVOVF9UWVBFO1xufVxuXG52YXIgU0VQQVJBVE9SID0gJy4nO1xudmFyIFNVQlNFUEFSQVRPUiA9ICc6Jztcbi8qKlxuICogRXNjYXBlIGFuZCB3cmFwIGtleSBzbyBpdCBpcyBzYWZlIHRvIHVzZSBhcyBhIHJlYWN0aWRcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IHRvIGJlIGVzY2FwZWQuXG4gKiBAcmV0dXJuIHtzdHJpbmd9IHRoZSBlc2NhcGVkIGtleS5cbiAqL1xuXG5mdW5jdGlvbiBlc2NhcGUoa2V5KSB7XG4gIHZhciBlc2NhcGVSZWdleCA9IC9bPTpdL2c7XG4gIHZhciBlc2NhcGVyTG9va3VwID0ge1xuICAgICc9JzogJz0wJyxcbiAgICAnOic6ICc9MidcbiAgfTtcbiAgdmFyIGVzY2FwZWRTdHJpbmcgPSBrZXkucmVwbGFjZShlc2NhcGVSZWdleCwgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgcmV0dXJuIGVzY2FwZXJMb29rdXBbbWF0Y2hdO1xuICB9KTtcbiAgcmV0dXJuICckJyArIGVzY2FwZWRTdHJpbmc7XG59XG4vKipcbiAqIFRPRE86IFRlc3QgdGhhdCBhIHNpbmdsZSBjaGlsZCBhbmQgYW4gYXJyYXkgd2l0aCBvbmUgaXRlbSBoYXZlIHRoZSBzYW1lIGtleVxuICogcGF0dGVybi5cbiAqL1xuXG5cbnZhciBkaWRXYXJuQWJvdXRNYXBzID0gZmFsc2U7XG52YXIgdXNlclByb3ZpZGVkS2V5RXNjYXBlUmVnZXggPSAvXFwvKy9nO1xuXG5mdW5jdGlvbiBlc2NhcGVVc2VyUHJvdmlkZWRLZXkodGV4dCkge1xuICByZXR1cm4gdGV4dC5yZXBsYWNlKHVzZXJQcm92aWRlZEtleUVzY2FwZVJlZ2V4LCAnJCYvJyk7XG59XG4vKipcbiAqIEdlbmVyYXRlIGEga2V5IHN0cmluZyB0aGF0IGlkZW50aWZpZXMgYSBlbGVtZW50IHdpdGhpbiBhIHNldC5cbiAqXG4gKiBAcGFyYW0geyp9IGVsZW1lbnQgQSBlbGVtZW50IHRoYXQgY291bGQgY29udGFpbiBhIG1hbnVhbCBrZXkuXG4gKiBAcGFyYW0ge251bWJlcn0gaW5kZXggSW5kZXggdGhhdCBpcyB1c2VkIGlmIGEgbWFudWFsIGtleSBpcyBub3QgcHJvdmlkZWQuXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cblxuXG5mdW5jdGlvbiBnZXRFbGVtZW50S2V5KGVsZW1lbnQsIGluZGV4KSB7XG4gIC8vIERvIHNvbWUgdHlwZWNoZWNraW5nIGhlcmUgc2luY2Ugd2UgY2FsbCB0aGlzIGJsaW5kbHkuIFdlIHdhbnQgdG8gZW5zdXJlXG4gIC8vIHRoYXQgd2UgZG9uJ3QgYmxvY2sgcG90ZW50aWFsIGZ1dHVyZSBFUyBBUElzLlxuICBpZiAodHlwZW9mIGVsZW1lbnQgPT09ICdvYmplY3QnICYmIGVsZW1lbnQgIT09IG51bGwgJiYgZWxlbWVudC5rZXkgIT0gbnVsbCkge1xuICAgIC8vIEV4cGxpY2l0IGtleVxuICAgIHJldHVybiBlc2NhcGUoJycgKyBlbGVtZW50LmtleSk7XG4gIH0gLy8gSW1wbGljaXQga2V5IGRldGVybWluZWQgYnkgdGhlIGluZGV4IGluIHRoZSBzZXRcblxuXG4gIHJldHVybiBpbmRleC50b1N0cmluZygzNik7XG59XG5cbmZ1bmN0aW9uIG1hcEludG9BcnJheShjaGlsZHJlbiwgYXJyYXksIGVzY2FwZWRQcmVmaXgsIG5hbWVTb0ZhciwgY2FsbGJhY2spIHtcbiAgdmFyIHR5cGUgPSB0eXBlb2YgY2hpbGRyZW47XG5cbiAgaWYgKHR5cGUgPT09ICd1bmRlZmluZWQnIHx8IHR5cGUgPT09ICdib29sZWFuJykge1xuICAgIC8vIEFsbCBvZiB0aGUgYWJvdmUgYXJlIHBlcmNlaXZlZCBhcyBudWxsLlxuICAgIGNoaWxkcmVuID0gbnVsbDtcbiAgfVxuXG4gIHZhciBpbnZva2VDYWxsYmFjayA9IGZhbHNlO1xuXG4gIGlmIChjaGlsZHJlbiA9PT0gbnVsbCkge1xuICAgIGludm9rZUNhbGxiYWNrID0gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICBpbnZva2VDYWxsYmFjayA9IHRydWU7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdvYmplY3QnOlxuICAgICAgICBzd2l0Y2ggKGNoaWxkcmVuLiQkdHlwZW9mKSB7XG4gICAgICAgICAgY2FzZSBSRUFDVF9FTEVNRU5UX1RZUEU6XG4gICAgICAgICAgY2FzZSBSRUFDVF9QT1JUQUxfVFlQRTpcbiAgICAgICAgICAgIGludm9rZUNhbGxiYWNrID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgfVxuICB9XG5cbiAgaWYgKGludm9rZUNhbGxiYWNrKSB7XG4gICAgdmFyIF9jaGlsZCA9IGNoaWxkcmVuO1xuICAgIHZhciBtYXBwZWRDaGlsZCA9IGNhbGxiYWNrKF9jaGlsZCk7IC8vIElmIGl0J3MgdGhlIG9ubHkgY2hpbGQsIHRyZWF0IHRoZSBuYW1lIGFzIGlmIGl0IHdhcyB3cmFwcGVkIGluIGFuIGFycmF5XG4gICAgLy8gc28gdGhhdCBpdCdzIGNvbnNpc3RlbnQgaWYgdGhlIG51bWJlciBvZiBjaGlsZHJlbiBncm93czpcblxuICAgIHZhciBjaGlsZEtleSA9IG5hbWVTb0ZhciA9PT0gJycgPyBTRVBBUkFUT1IgKyBnZXRFbGVtZW50S2V5KF9jaGlsZCwgMCkgOiBuYW1lU29GYXI7XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShtYXBwZWRDaGlsZCkpIHtcbiAgICAgIHZhciBlc2NhcGVkQ2hpbGRLZXkgPSAnJztcblxuICAgICAgaWYgKGNoaWxkS2V5ICE9IG51bGwpIHtcbiAgICAgICAgZXNjYXBlZENoaWxkS2V5ID0gZXNjYXBlVXNlclByb3ZpZGVkS2V5KGNoaWxkS2V5KSArICcvJztcbiAgICAgIH1cblxuICAgICAgbWFwSW50b0FycmF5KG1hcHBlZENoaWxkLCBhcnJheSwgZXNjYXBlZENoaWxkS2V5LCAnJywgZnVuY3Rpb24gKGMpIHtcbiAgICAgICAgcmV0dXJuIGM7XG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKG1hcHBlZENoaWxkICE9IG51bGwpIHtcbiAgICAgIGlmIChpc1ZhbGlkRWxlbWVudChtYXBwZWRDaGlsZCkpIHtcbiAgICAgICAgbWFwcGVkQ2hpbGQgPSBjbG9uZUFuZFJlcGxhY2VLZXkobWFwcGVkQ2hpbGQsIC8vIEtlZXAgYm90aCB0aGUgKG1hcHBlZCkgYW5kIG9sZCBrZXlzIGlmIHRoZXkgZGlmZmVyLCBqdXN0IGFzXG4gICAgICAgIC8vIHRyYXZlcnNlQWxsQ2hpbGRyZW4gdXNlZCB0byBkbyBmb3Igb2JqZWN0cyBhcyBjaGlsZHJlblxuICAgICAgICBlc2NhcGVkUHJlZml4ICsgKCAvLyAkRmxvd0ZpeE1lIEZsb3cgaW5jb3JyZWN0bHkgdGhpbmtzIFJlYWN0LlBvcnRhbCBkb2Vzbid0IGhhdmUgYSBrZXlcbiAgICAgICAgbWFwcGVkQ2hpbGQua2V5ICYmICghX2NoaWxkIHx8IF9jaGlsZC5rZXkgIT09IG1hcHBlZENoaWxkLmtleSkgPyAvLyAkRmxvd0ZpeE1lIEZsb3cgaW5jb3JyZWN0bHkgdGhpbmtzIGV4aXN0aW5nIGVsZW1lbnQncyBrZXkgY2FuIGJlIGEgbnVtYmVyXG4gICAgICAgIGVzY2FwZVVzZXJQcm92aWRlZEtleSgnJyArIG1hcHBlZENoaWxkLmtleSkgKyAnLycgOiAnJykgKyBjaGlsZEtleSk7XG4gICAgICB9XG5cbiAgICAgIGFycmF5LnB1c2gobWFwcGVkQ2hpbGQpO1xuICAgIH1cblxuICAgIHJldHVybiAxO1xuICB9XG5cbiAgdmFyIGNoaWxkO1xuICB2YXIgbmV4dE5hbWU7XG4gIHZhciBzdWJ0cmVlQ291bnQgPSAwOyAvLyBDb3VudCBvZiBjaGlsZHJlbiBmb3VuZCBpbiB0aGUgY3VycmVudCBzdWJ0cmVlLlxuXG4gIHZhciBuZXh0TmFtZVByZWZpeCA9IG5hbWVTb0ZhciA9PT0gJycgPyBTRVBBUkFUT1IgOiBuYW1lU29GYXIgKyBTVUJTRVBBUkFUT1I7XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgY2hpbGQgPSBjaGlsZHJlbltpXTtcbiAgICAgIG5leHROYW1lID0gbmV4dE5hbWVQcmVmaXggKyBnZXRFbGVtZW50S2V5KGNoaWxkLCBpKTtcbiAgICAgIHN1YnRyZWVDb3VudCArPSBtYXBJbnRvQXJyYXkoY2hpbGQsIGFycmF5LCBlc2NhcGVkUHJlZml4LCBuZXh0TmFtZSwgY2FsbGJhY2spO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB2YXIgaXRlcmF0b3JGbiA9IGdldEl0ZXJhdG9yRm4oY2hpbGRyZW4pO1xuXG4gICAgaWYgKHR5cGVvZiBpdGVyYXRvckZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB2YXIgaXRlcmFibGVDaGlsZHJlbiA9IGNoaWxkcmVuO1xuXG4gICAgICB7XG4gICAgICAgIC8vIFdhcm4gYWJvdXQgdXNpbmcgTWFwcyBhcyBjaGlsZHJlblxuICAgICAgICBpZiAoaXRlcmF0b3JGbiA9PT0gaXRlcmFibGVDaGlsZHJlbi5lbnRyaWVzKSB7XG4gICAgICAgICAgaWYgKCFkaWRXYXJuQWJvdXRNYXBzKSB7XG4gICAgICAgICAgICB3YXJuKCdVc2luZyBNYXBzIGFzIGNoaWxkcmVuIGlzIG5vdCBzdXBwb3J0ZWQuICcgKyAnVXNlIGFuIGFycmF5IG9mIGtleWVkIFJlYWN0RWxlbWVudHMgaW5zdGVhZC4nKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBkaWRXYXJuQWJvdXRNYXBzID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB2YXIgaXRlcmF0b3IgPSBpdGVyYXRvckZuLmNhbGwoaXRlcmFibGVDaGlsZHJlbik7XG4gICAgICB2YXIgc3RlcDtcbiAgICAgIHZhciBpaSA9IDA7XG5cbiAgICAgIHdoaWxlICghKHN0ZXAgPSBpdGVyYXRvci5uZXh0KCkpLmRvbmUpIHtcbiAgICAgICAgY2hpbGQgPSBzdGVwLnZhbHVlO1xuICAgICAgICBuZXh0TmFtZSA9IG5leHROYW1lUHJlZml4ICsgZ2V0RWxlbWVudEtleShjaGlsZCwgaWkrKyk7XG4gICAgICAgIHN1YnRyZWVDb3VudCArPSBtYXBJbnRvQXJyYXkoY2hpbGQsIGFycmF5LCBlc2NhcGVkUHJlZml4LCBuZXh0TmFtZSwgY2FsbGJhY2spO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHZhciBjaGlsZHJlblN0cmluZyA9ICcnICsgY2hpbGRyZW47XG5cbiAgICAgIHtcbiAgICAgICAge1xuICAgICAgICAgIHRocm93IEVycm9yKCBcIk9iamVjdHMgYXJlIG5vdCB2YWxpZCBhcyBhIFJlYWN0IGNoaWxkIChmb3VuZDogXCIgKyAoY2hpbGRyZW5TdHJpbmcgPT09ICdbb2JqZWN0IE9iamVjdF0nID8gJ29iamVjdCB3aXRoIGtleXMgeycgKyBPYmplY3Qua2V5cyhjaGlsZHJlbikuam9pbignLCAnKSArICd9JyA6IGNoaWxkcmVuU3RyaW5nKSArIFwiKS4gSWYgeW91IG1lYW50IHRvIHJlbmRlciBhIGNvbGxlY3Rpb24gb2YgY2hpbGRyZW4sIHVzZSBhbiBhcnJheSBpbnN0ZWFkLlwiICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3VidHJlZUNvdW50O1xufVxuXG4vKipcbiAqIE1hcHMgY2hpbGRyZW4gdGhhdCBhcmUgdHlwaWNhbGx5IHNwZWNpZmllZCBhcyBgcHJvcHMuY2hpbGRyZW5gLlxuICpcbiAqIFNlZSBodHRwczovL3JlYWN0anMub3JnL2RvY3MvcmVhY3QtYXBpLmh0bWwjcmVhY3RjaGlsZHJlbm1hcFxuICpcbiAqIFRoZSBwcm92aWRlZCBtYXBGdW5jdGlvbihjaGlsZCwgaW5kZXgpIHdpbGwgYmUgY2FsbGVkIGZvciBlYWNoXG4gKiBsZWFmIGNoaWxkLlxuICpcbiAqIEBwYXJhbSB7Pyp9IGNoaWxkcmVuIENoaWxkcmVuIHRyZWUgY29udGFpbmVyLlxuICogQHBhcmFtIHtmdW5jdGlvbigqLCBpbnQpfSBmdW5jIFRoZSBtYXAgZnVuY3Rpb24uXG4gKiBAcGFyYW0geyp9IGNvbnRleHQgQ29udGV4dCBmb3IgbWFwRnVuY3Rpb24uXG4gKiBAcmV0dXJuIHtvYmplY3R9IE9iamVjdCBjb250YWluaW5nIHRoZSBvcmRlcmVkIG1hcCBvZiByZXN1bHRzLlxuICovXG5mdW5jdGlvbiBtYXBDaGlsZHJlbihjaGlsZHJlbiwgZnVuYywgY29udGV4dCkge1xuICBpZiAoY2hpbGRyZW4gPT0gbnVsbCkge1xuICAgIHJldHVybiBjaGlsZHJlbjtcbiAgfVxuXG4gIHZhciByZXN1bHQgPSBbXTtcbiAgdmFyIGNvdW50ID0gMDtcbiAgbWFwSW50b0FycmF5KGNoaWxkcmVuLCByZXN1bHQsICcnLCAnJywgZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgcmV0dXJuIGZ1bmMuY2FsbChjb250ZXh0LCBjaGlsZCwgY291bnQrKyk7XG4gIH0pO1xuICByZXR1cm4gcmVzdWx0O1xufVxuLyoqXG4gKiBDb3VudCB0aGUgbnVtYmVyIG9mIGNoaWxkcmVuIHRoYXQgYXJlIHR5cGljYWxseSBzcGVjaWZpZWQgYXNcbiAqIGBwcm9wcy5jaGlsZHJlbmAuXG4gKlxuICogU2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9yZWFjdC1hcGkuaHRtbCNyZWFjdGNoaWxkcmVuY291bnRcbiAqXG4gKiBAcGFyYW0gez8qfSBjaGlsZHJlbiBDaGlsZHJlbiB0cmVlIGNvbnRhaW5lci5cbiAqIEByZXR1cm4ge251bWJlcn0gVGhlIG51bWJlciBvZiBjaGlsZHJlbi5cbiAqL1xuXG5cbmZ1bmN0aW9uIGNvdW50Q2hpbGRyZW4oY2hpbGRyZW4pIHtcbiAgdmFyIG4gPSAwO1xuICBtYXBDaGlsZHJlbihjaGlsZHJlbiwgZnVuY3Rpb24gKCkge1xuICAgIG4rKzsgLy8gRG9uJ3QgcmV0dXJuIGFueXRoaW5nXG4gIH0pO1xuICByZXR1cm4gbjtcbn1cblxuLyoqXG4gKiBJdGVyYXRlcyB0aHJvdWdoIGNoaWxkcmVuIHRoYXQgYXJlIHR5cGljYWxseSBzcGVjaWZpZWQgYXMgYHByb3BzLmNoaWxkcmVuYC5cbiAqXG4gKiBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL3JlYWN0LWFwaS5odG1sI3JlYWN0Y2hpbGRyZW5mb3JlYWNoXG4gKlxuICogVGhlIHByb3ZpZGVkIGZvckVhY2hGdW5jKGNoaWxkLCBpbmRleCkgd2lsbCBiZSBjYWxsZWQgZm9yIGVhY2hcbiAqIGxlYWYgY2hpbGQuXG4gKlxuICogQHBhcmFtIHs/Kn0gY2hpbGRyZW4gQ2hpbGRyZW4gdHJlZSBjb250YWluZXIuXG4gKiBAcGFyYW0ge2Z1bmN0aW9uKCosIGludCl9IGZvckVhY2hGdW5jXG4gKiBAcGFyYW0geyp9IGZvckVhY2hDb250ZXh0IENvbnRleHQgZm9yIGZvckVhY2hDb250ZXh0LlxuICovXG5mdW5jdGlvbiBmb3JFYWNoQ2hpbGRyZW4oY2hpbGRyZW4sIGZvckVhY2hGdW5jLCBmb3JFYWNoQ29udGV4dCkge1xuICBtYXBDaGlsZHJlbihjaGlsZHJlbiwgZnVuY3Rpb24gKCkge1xuICAgIGZvckVhY2hGdW5jLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IC8vIERvbid0IHJldHVybiBhbnl0aGluZy5cbiAgfSwgZm9yRWFjaENvbnRleHQpO1xufVxuLyoqXG4gKiBGbGF0dGVuIGEgY2hpbGRyZW4gb2JqZWN0ICh0eXBpY2FsbHkgc3BlY2lmaWVkIGFzIGBwcm9wcy5jaGlsZHJlbmApIGFuZFxuICogcmV0dXJuIGFuIGFycmF5IHdpdGggYXBwcm9wcmlhdGVseSByZS1rZXllZCBjaGlsZHJlbi5cbiAqXG4gKiBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL3JlYWN0LWFwaS5odG1sI3JlYWN0Y2hpbGRyZW50b2FycmF5XG4gKi9cblxuXG5mdW5jdGlvbiB0b0FycmF5KGNoaWxkcmVuKSB7XG4gIHJldHVybiBtYXBDaGlsZHJlbihjaGlsZHJlbiwgZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgcmV0dXJuIGNoaWxkO1xuICB9KSB8fCBbXTtcbn1cbi8qKlxuICogUmV0dXJucyB0aGUgZmlyc3QgY2hpbGQgaW4gYSBjb2xsZWN0aW9uIG9mIGNoaWxkcmVuIGFuZCB2ZXJpZmllcyB0aGF0IHRoZXJlXG4gKiBpcyBvbmx5IG9uZSBjaGlsZCBpbiB0aGUgY29sbGVjdGlvbi5cbiAqXG4gKiBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL3JlYWN0LWFwaS5odG1sI3JlYWN0Y2hpbGRyZW5vbmx5XG4gKlxuICogVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gb2YgdGhpcyBmdW5jdGlvbiBhc3N1bWVzIHRoYXQgYSBzaW5nbGUgY2hpbGQgZ2V0c1xuICogcGFzc2VkIHdpdGhvdXQgYSB3cmFwcGVyLCBidXQgdGhlIHB1cnBvc2Ugb2YgdGhpcyBoZWxwZXIgZnVuY3Rpb24gaXMgdG9cbiAqIGFic3RyYWN0IGF3YXkgdGhlIHBhcnRpY3VsYXIgc3RydWN0dXJlIG9mIGNoaWxkcmVuLlxuICpcbiAqIEBwYXJhbSB7P29iamVjdH0gY2hpbGRyZW4gQ2hpbGQgY29sbGVjdGlvbiBzdHJ1Y3R1cmUuXG4gKiBAcmV0dXJuIHtSZWFjdEVsZW1lbnR9IFRoZSBmaXJzdCBhbmQgb25seSBgUmVhY3RFbGVtZW50YCBjb250YWluZWQgaW4gdGhlXG4gKiBzdHJ1Y3R1cmUuXG4gKi9cblxuXG5mdW5jdGlvbiBvbmx5Q2hpbGQoY2hpbGRyZW4pIHtcbiAgaWYgKCFpc1ZhbGlkRWxlbWVudChjaGlsZHJlbikpIHtcbiAgICB7XG4gICAgICB0aHJvdyBFcnJvciggXCJSZWFjdC5DaGlsZHJlbi5vbmx5IGV4cGVjdGVkIHRvIHJlY2VpdmUgYSBzaW5nbGUgUmVhY3QgZWxlbWVudCBjaGlsZC5cIiApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjaGlsZHJlbjtcbn1cblxuZnVuY3Rpb24gY3JlYXRlQ29udGV4dChkZWZhdWx0VmFsdWUsIGNhbGN1bGF0ZUNoYW5nZWRCaXRzKSB7XG4gIGlmIChjYWxjdWxhdGVDaGFuZ2VkQml0cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgY2FsY3VsYXRlQ2hhbmdlZEJpdHMgPSBudWxsO1xuICB9IGVsc2Uge1xuICAgIHtcbiAgICAgIGlmIChjYWxjdWxhdGVDaGFuZ2VkQml0cyAhPT0gbnVsbCAmJiB0eXBlb2YgY2FsY3VsYXRlQ2hhbmdlZEJpdHMgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgZXJyb3IoJ2NyZWF0ZUNvbnRleHQ6IEV4cGVjdGVkIHRoZSBvcHRpb25hbCBzZWNvbmQgYXJndW1lbnQgdG8gYmUgYSAnICsgJ2Z1bmN0aW9uLiBJbnN0ZWFkIHJlY2VpdmVkOiAlcycsIGNhbGN1bGF0ZUNoYW5nZWRCaXRzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB2YXIgY29udGV4dCA9IHtcbiAgICAkJHR5cGVvZjogUkVBQ1RfQ09OVEVYVF9UWVBFLFxuICAgIF9jYWxjdWxhdGVDaGFuZ2VkQml0czogY2FsY3VsYXRlQ2hhbmdlZEJpdHMsXG4gICAgLy8gQXMgYSB3b3JrYXJvdW5kIHRvIHN1cHBvcnQgbXVsdGlwbGUgY29uY3VycmVudCByZW5kZXJlcnMsIHdlIGNhdGVnb3JpemVcbiAgICAvLyBzb21lIHJlbmRlcmVycyBhcyBwcmltYXJ5IGFuZCBvdGhlcnMgYXMgc2Vjb25kYXJ5LiBXZSBvbmx5IGV4cGVjdFxuICAgIC8vIHRoZXJlIHRvIGJlIHR3byBjb25jdXJyZW50IHJlbmRlcmVycyBhdCBtb3N0OiBSZWFjdCBOYXRpdmUgKHByaW1hcnkpIGFuZFxuICAgIC8vIEZhYnJpYyAoc2Vjb25kYXJ5KTsgUmVhY3QgRE9NIChwcmltYXJ5KSBhbmQgUmVhY3QgQVJUIChzZWNvbmRhcnkpLlxuICAgIC8vIFNlY29uZGFyeSByZW5kZXJlcnMgc3RvcmUgdGhlaXIgY29udGV4dCB2YWx1ZXMgb24gc2VwYXJhdGUgZmllbGRzLlxuICAgIF9jdXJyZW50VmFsdWU6IGRlZmF1bHRWYWx1ZSxcbiAgICBfY3VycmVudFZhbHVlMjogZGVmYXVsdFZhbHVlLFxuICAgIC8vIFVzZWQgdG8gdHJhY2sgaG93IG1hbnkgY29uY3VycmVudCByZW5kZXJlcnMgdGhpcyBjb250ZXh0IGN1cnJlbnRseVxuICAgIC8vIHN1cHBvcnRzIHdpdGhpbiBpbiBhIHNpbmdsZSByZW5kZXJlci4gU3VjaCBhcyBwYXJhbGxlbCBzZXJ2ZXIgcmVuZGVyaW5nLlxuICAgIF90aHJlYWRDb3VudDogMCxcbiAgICAvLyBUaGVzZSBhcmUgY2lyY3VsYXJcbiAgICBQcm92aWRlcjogbnVsbCxcbiAgICBDb25zdW1lcjogbnVsbFxuICB9O1xuICBjb250ZXh0LlByb3ZpZGVyID0ge1xuICAgICQkdHlwZW9mOiBSRUFDVF9QUk9WSURFUl9UWVBFLFxuICAgIF9jb250ZXh0OiBjb250ZXh0XG4gIH07XG4gIHZhciBoYXNXYXJuZWRBYm91dFVzaW5nTmVzdGVkQ29udGV4dENvbnN1bWVycyA9IGZhbHNlO1xuICB2YXIgaGFzV2FybmVkQWJvdXRVc2luZ0NvbnN1bWVyUHJvdmlkZXIgPSBmYWxzZTtcbiAgdmFyIGhhc1dhcm5lZEFib3V0RGlzcGxheU5hbWVPbkNvbnN1bWVyID0gZmFsc2U7XG5cbiAge1xuICAgIC8vIEEgc2VwYXJhdGUgb2JqZWN0LCBidXQgcHJveGllcyBiYWNrIHRvIHRoZSBvcmlnaW5hbCBjb250ZXh0IG9iamVjdCBmb3JcbiAgICAvLyBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS4gSXQgaGFzIGEgZGlmZmVyZW50ICQkdHlwZW9mLCBzbyB3ZSBjYW4gcHJvcGVybHlcbiAgICAvLyB3YXJuIGZvciB0aGUgaW5jb3JyZWN0IHVzYWdlIG9mIENvbnRleHQgYXMgYSBDb25zdW1lci5cbiAgICB2YXIgQ29uc3VtZXIgPSB7XG4gICAgICAkJHR5cGVvZjogUkVBQ1RfQ09OVEVYVF9UWVBFLFxuICAgICAgX2NvbnRleHQ6IGNvbnRleHQsXG4gICAgICBfY2FsY3VsYXRlQ2hhbmdlZEJpdHM6IGNvbnRleHQuX2NhbGN1bGF0ZUNoYW5nZWRCaXRzXG4gICAgfTsgLy8gJEZsb3dGaXhNZTogRmxvdyBjb21wbGFpbnMgYWJvdXQgbm90IHNldHRpbmcgYSB2YWx1ZSwgd2hpY2ggaXMgaW50ZW50aW9uYWwgaGVyZVxuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoQ29uc3VtZXIsIHtcbiAgICAgIFByb3ZpZGVyOiB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGlmICghaGFzV2FybmVkQWJvdXRVc2luZ0NvbnN1bWVyUHJvdmlkZXIpIHtcbiAgICAgICAgICAgIGhhc1dhcm5lZEFib3V0VXNpbmdDb25zdW1lclByb3ZpZGVyID0gdHJ1ZTtcblxuICAgICAgICAgICAgZXJyb3IoJ1JlbmRlcmluZyA8Q29udGV4dC5Db25zdW1lci5Qcm92aWRlcj4gaXMgbm90IHN1cHBvcnRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluICcgKyAnYSBmdXR1cmUgbWFqb3IgcmVsZWFzZS4gRGlkIHlvdSBtZWFuIHRvIHJlbmRlciA8Q29udGV4dC5Qcm92aWRlcj4gaW5zdGVhZD8nKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gY29udGV4dC5Qcm92aWRlcjtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAoX1Byb3ZpZGVyKSB7XG4gICAgICAgICAgY29udGV4dC5Qcm92aWRlciA9IF9Qcm92aWRlcjtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIF9jdXJyZW50VmFsdWU6IHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIGNvbnRleHQuX2N1cnJlbnRWYWx1ZTtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAoX2N1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgIGNvbnRleHQuX2N1cnJlbnRWYWx1ZSA9IF9jdXJyZW50VmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBfY3VycmVudFZhbHVlMjoge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gY29udGV4dC5fY3VycmVudFZhbHVlMjtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAoX2N1cnJlbnRWYWx1ZTIpIHtcbiAgICAgICAgICBjb250ZXh0Ll9jdXJyZW50VmFsdWUyID0gX2N1cnJlbnRWYWx1ZTI7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBfdGhyZWFkQ291bnQ6IHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIGNvbnRleHQuX3RocmVhZENvdW50O1xuICAgICAgICB9LFxuICAgICAgICBzZXQ6IGZ1bmN0aW9uIChfdGhyZWFkQ291bnQpIHtcbiAgICAgICAgICBjb250ZXh0Ll90aHJlYWRDb3VudCA9IF90aHJlYWRDb3VudDtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIENvbnN1bWVyOiB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGlmICghaGFzV2FybmVkQWJvdXRVc2luZ05lc3RlZENvbnRleHRDb25zdW1lcnMpIHtcbiAgICAgICAgICAgIGhhc1dhcm5lZEFib3V0VXNpbmdOZXN0ZWRDb250ZXh0Q29uc3VtZXJzID0gdHJ1ZTtcblxuICAgICAgICAgICAgZXJyb3IoJ1JlbmRlcmluZyA8Q29udGV4dC5Db25zdW1lci5Db25zdW1lcj4gaXMgbm90IHN1cHBvcnRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluICcgKyAnYSBmdXR1cmUgbWFqb3IgcmVsZWFzZS4gRGlkIHlvdSBtZWFuIHRvIHJlbmRlciA8Q29udGV4dC5Db25zdW1lcj4gaW5zdGVhZD8nKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gY29udGV4dC5Db25zdW1lcjtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGRpc3BsYXlOYW1lOiB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBjb250ZXh0LmRpc3BsYXlOYW1lO1xuICAgICAgICB9LFxuICAgICAgICBzZXQ6IGZ1bmN0aW9uIChkaXNwbGF5TmFtZSkge1xuICAgICAgICAgIGlmICghaGFzV2FybmVkQWJvdXREaXNwbGF5TmFtZU9uQ29uc3VtZXIpIHtcbiAgICAgICAgICAgIHdhcm4oJ1NldHRpbmcgYGRpc3BsYXlOYW1lYCBvbiBDb250ZXh0LkNvbnN1bWVyIGhhcyBubyBlZmZlY3QuICcgKyBcIllvdSBzaG91bGQgc2V0IGl0IGRpcmVjdGx5IG9uIHRoZSBjb250ZXh0IHdpdGggQ29udGV4dC5kaXNwbGF5TmFtZSA9ICclcycuXCIsIGRpc3BsYXlOYW1lKTtcblxuICAgICAgICAgICAgaGFzV2FybmVkQWJvdXREaXNwbGF5TmFtZU9uQ29uc3VtZXIgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pOyAvLyAkRmxvd0ZpeE1lOiBGbG93IGNvbXBsYWlucyBhYm91dCBtaXNzaW5nIHByb3BlcnRpZXMgYmVjYXVzZSBpdCBkb2Vzbid0IHVuZGVyc3RhbmQgZGVmaW5lUHJvcGVydHlcblxuICAgIGNvbnRleHQuQ29uc3VtZXIgPSBDb25zdW1lcjtcbiAgfVxuXG4gIHtcbiAgICBjb250ZXh0Ll9jdXJyZW50UmVuZGVyZXIgPSBudWxsO1xuICAgIGNvbnRleHQuX2N1cnJlbnRSZW5kZXJlcjIgPSBudWxsO1xuICB9XG5cbiAgcmV0dXJuIGNvbnRleHQ7XG59XG5cbnZhciBVbmluaXRpYWxpemVkID0gLTE7XG52YXIgUGVuZGluZyA9IDA7XG52YXIgUmVzb2x2ZWQgPSAxO1xudmFyIFJlamVjdGVkID0gMjtcblxuZnVuY3Rpb24gbGF6eUluaXRpYWxpemVyKHBheWxvYWQpIHtcbiAgaWYgKHBheWxvYWQuX3N0YXR1cyA9PT0gVW5pbml0aWFsaXplZCkge1xuICAgIHZhciBjdG9yID0gcGF5bG9hZC5fcmVzdWx0O1xuICAgIHZhciB0aGVuYWJsZSA9IGN0b3IoKTsgLy8gVHJhbnNpdGlvbiB0byB0aGUgbmV4dCBzdGF0ZS5cblxuICAgIHZhciBwZW5kaW5nID0gcGF5bG9hZDtcbiAgICBwZW5kaW5nLl9zdGF0dXMgPSBQZW5kaW5nO1xuICAgIHBlbmRpbmcuX3Jlc3VsdCA9IHRoZW5hYmxlO1xuICAgIHRoZW5hYmxlLnRoZW4oZnVuY3Rpb24gKG1vZHVsZU9iamVjdCkge1xuICAgICAgaWYgKHBheWxvYWQuX3N0YXR1cyA9PT0gUGVuZGluZykge1xuICAgICAgICB2YXIgZGVmYXVsdEV4cG9ydCA9IG1vZHVsZU9iamVjdC5kZWZhdWx0O1xuXG4gICAgICAgIHtcbiAgICAgICAgICBpZiAoZGVmYXVsdEV4cG9ydCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBlcnJvcignbGF6eTogRXhwZWN0ZWQgdGhlIHJlc3VsdCBvZiBhIGR5bmFtaWMgaW1wb3J0KCkgY2FsbC4gJyArICdJbnN0ZWFkIHJlY2VpdmVkOiAlc1xcblxcbllvdXIgY29kZSBzaG91bGQgbG9vayBsaWtlOiBcXG4gICcgKyAvLyBCcmVhayB1cCBpbXBvcnRzIHRvIGF2b2lkIGFjY2lkZW50YWxseSBwYXJzaW5nIHRoZW0gYXMgZGVwZW5kZW5jaWVzLlxuICAgICAgICAgICAgJ2NvbnN0IE15Q29tcG9uZW50ID0gbGF6eSgoKSA9PiBpbXAnICsgXCJvcnQoJy4vTXlDb21wb25lbnQnKSlcIiwgbW9kdWxlT2JqZWN0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gLy8gVHJhbnNpdGlvbiB0byB0aGUgbmV4dCBzdGF0ZS5cblxuXG4gICAgICAgIHZhciByZXNvbHZlZCA9IHBheWxvYWQ7XG4gICAgICAgIHJlc29sdmVkLl9zdGF0dXMgPSBSZXNvbHZlZDtcbiAgICAgICAgcmVzb2x2ZWQuX3Jlc3VsdCA9IGRlZmF1bHRFeHBvcnQ7XG4gICAgICB9XG4gICAgfSwgZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICBpZiAocGF5bG9hZC5fc3RhdHVzID09PSBQZW5kaW5nKSB7XG4gICAgICAgIC8vIFRyYW5zaXRpb24gdG8gdGhlIG5leHQgc3RhdGUuXG4gICAgICAgIHZhciByZWplY3RlZCA9IHBheWxvYWQ7XG4gICAgICAgIHJlamVjdGVkLl9zdGF0dXMgPSBSZWplY3RlZDtcbiAgICAgICAgcmVqZWN0ZWQuX3Jlc3VsdCA9IGVycm9yO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgaWYgKHBheWxvYWQuX3N0YXR1cyA9PT0gUmVzb2x2ZWQpIHtcbiAgICByZXR1cm4gcGF5bG9hZC5fcmVzdWx0O1xuICB9IGVsc2Uge1xuICAgIHRocm93IHBheWxvYWQuX3Jlc3VsdDtcbiAgfVxufVxuXG5mdW5jdGlvbiBsYXp5KGN0b3IpIHtcbiAgdmFyIHBheWxvYWQgPSB7XG4gICAgLy8gV2UgdXNlIHRoZXNlIGZpZWxkcyB0byBzdG9yZSB0aGUgcmVzdWx0LlxuICAgIF9zdGF0dXM6IC0xLFxuICAgIF9yZXN1bHQ6IGN0b3JcbiAgfTtcbiAgdmFyIGxhenlUeXBlID0ge1xuICAgICQkdHlwZW9mOiBSRUFDVF9MQVpZX1RZUEUsXG4gICAgX3BheWxvYWQ6IHBheWxvYWQsXG4gICAgX2luaXQ6IGxhenlJbml0aWFsaXplclxuICB9O1xuXG4gIHtcbiAgICAvLyBJbiBwcm9kdWN0aW9uLCB0aGlzIHdvdWxkIGp1c3Qgc2V0IGl0IG9uIHRoZSBvYmplY3QuXG4gICAgdmFyIGRlZmF1bHRQcm9wcztcbiAgICB2YXIgcHJvcFR5cGVzOyAvLyAkRmxvd0ZpeE1lXG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhsYXp5VHlwZSwge1xuICAgICAgZGVmYXVsdFByb3BzOiB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIGRlZmF1bHRQcm9wcztcbiAgICAgICAgfSxcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAobmV3RGVmYXVsdFByb3BzKSB7XG4gICAgICAgICAgZXJyb3IoJ1JlYWN0LmxhenkoLi4uKTogSXQgaXMgbm90IHN1cHBvcnRlZCB0byBhc3NpZ24gYGRlZmF1bHRQcm9wc2AgdG8gJyArICdhIGxhenkgY29tcG9uZW50IGltcG9ydC4gRWl0aGVyIHNwZWNpZnkgdGhlbSB3aGVyZSB0aGUgY29tcG9uZW50ICcgKyAnaXMgZGVmaW5lZCwgb3IgY3JlYXRlIGEgd3JhcHBpbmcgY29tcG9uZW50IGFyb3VuZCBpdC4nKTtcblxuICAgICAgICAgIGRlZmF1bHRQcm9wcyA9IG5ld0RlZmF1bHRQcm9wczsgLy8gTWF0Y2ggcHJvZHVjdGlvbiBiZWhhdmlvciBtb3JlIGNsb3NlbHk6XG4gICAgICAgICAgLy8gJEZsb3dGaXhNZVxuXG4gICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGxhenlUeXBlLCAnZGVmYXVsdFByb3BzJywge1xuICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgcHJvcFR5cGVzOiB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIHByb3BUeXBlcztcbiAgICAgICAgfSxcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAobmV3UHJvcFR5cGVzKSB7XG4gICAgICAgICAgZXJyb3IoJ1JlYWN0LmxhenkoLi4uKTogSXQgaXMgbm90IHN1cHBvcnRlZCB0byBhc3NpZ24gYHByb3BUeXBlc2AgdG8gJyArICdhIGxhenkgY29tcG9uZW50IGltcG9ydC4gRWl0aGVyIHNwZWNpZnkgdGhlbSB3aGVyZSB0aGUgY29tcG9uZW50ICcgKyAnaXMgZGVmaW5lZCwgb3IgY3JlYXRlIGEgd3JhcHBpbmcgY29tcG9uZW50IGFyb3VuZCBpdC4nKTtcblxuICAgICAgICAgIHByb3BUeXBlcyA9IG5ld1Byb3BUeXBlczsgLy8gTWF0Y2ggcHJvZHVjdGlvbiBiZWhhdmlvciBtb3JlIGNsb3NlbHk6XG4gICAgICAgICAgLy8gJEZsb3dGaXhNZVxuXG4gICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGxhenlUeXBlLCAncHJvcFR5cGVzJywge1xuICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gbGF6eVR5cGU7XG59XG5cbmZ1bmN0aW9uIGZvcndhcmRSZWYocmVuZGVyKSB7XG4gIHtcbiAgICBpZiAocmVuZGVyICE9IG51bGwgJiYgcmVuZGVyLiQkdHlwZW9mID09PSBSRUFDVF9NRU1PX1RZUEUpIHtcbiAgICAgIGVycm9yKCdmb3J3YXJkUmVmIHJlcXVpcmVzIGEgcmVuZGVyIGZ1bmN0aW9uIGJ1dCByZWNlaXZlZCBhIGBtZW1vYCAnICsgJ2NvbXBvbmVudC4gSW5zdGVhZCBvZiBmb3J3YXJkUmVmKG1lbW8oLi4uKSksIHVzZSAnICsgJ21lbW8oZm9yd2FyZFJlZiguLi4pKS4nKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiByZW5kZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGVycm9yKCdmb3J3YXJkUmVmIHJlcXVpcmVzIGEgcmVuZGVyIGZ1bmN0aW9uIGJ1dCB3YXMgZ2l2ZW4gJXMuJywgcmVuZGVyID09PSBudWxsID8gJ251bGwnIDogdHlwZW9mIHJlbmRlcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChyZW5kZXIubGVuZ3RoICE9PSAwICYmIHJlbmRlci5sZW5ndGggIT09IDIpIHtcbiAgICAgICAgZXJyb3IoJ2ZvcndhcmRSZWYgcmVuZGVyIGZ1bmN0aW9ucyBhY2NlcHQgZXhhY3RseSB0d28gcGFyYW1ldGVyczogcHJvcHMgYW5kIHJlZi4gJXMnLCByZW5kZXIubGVuZ3RoID09PSAxID8gJ0RpZCB5b3UgZm9yZ2V0IHRvIHVzZSB0aGUgcmVmIHBhcmFtZXRlcj8nIDogJ0FueSBhZGRpdGlvbmFsIHBhcmFtZXRlciB3aWxsIGJlIHVuZGVmaW5lZC4nKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocmVuZGVyICE9IG51bGwpIHtcbiAgICAgIGlmIChyZW5kZXIuZGVmYXVsdFByb3BzICE9IG51bGwgfHwgcmVuZGVyLnByb3BUeXBlcyAhPSBudWxsKSB7XG4gICAgICAgIGVycm9yKCdmb3J3YXJkUmVmIHJlbmRlciBmdW5jdGlvbnMgZG8gbm90IHN1cHBvcnQgcHJvcFR5cGVzIG9yIGRlZmF1bHRQcm9wcy4gJyArICdEaWQgeW91IGFjY2lkZW50YWxseSBwYXNzIGEgUmVhY3QgY29tcG9uZW50PycpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHZhciBlbGVtZW50VHlwZSA9IHtcbiAgICAkJHR5cGVvZjogUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSxcbiAgICByZW5kZXI6IHJlbmRlclxuICB9O1xuXG4gIHtcbiAgICB2YXIgb3duTmFtZTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZWxlbWVudFR5cGUsICdkaXNwbGF5TmFtZScsIHtcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBvd25OYW1lO1xuICAgICAgfSxcbiAgICAgIHNldDogZnVuY3Rpb24gKG5hbWUpIHtcbiAgICAgICAgb3duTmFtZSA9IG5hbWU7XG5cbiAgICAgICAgaWYgKHJlbmRlci5kaXNwbGF5TmFtZSA9PSBudWxsKSB7XG4gICAgICAgICAgcmVuZGVyLmRpc3BsYXlOYW1lID0gbmFtZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGVsZW1lbnRUeXBlO1xufVxuXG4vLyBGaWx0ZXIgY2VydGFpbiBET00gYXR0cmlidXRlcyAoZS5nLiBzcmMsIGhyZWYpIGlmIHRoZWlyIHZhbHVlcyBhcmUgZW1wdHkgc3RyaW5ncy5cblxudmFyIGVuYWJsZVNjb3BlQVBJID0gZmFsc2U7IC8vIEV4cGVyaW1lbnRhbCBDcmVhdGUgRXZlbnQgSGFuZGxlIEFQSS5cblxuZnVuY3Rpb24gaXNWYWxpZEVsZW1lbnRUeXBlKHR5cGUpIHtcbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiB0cnVlO1xuICB9IC8vIE5vdGU6IHR5cGVvZiBtaWdodCBiZSBvdGhlciB0aGFuICdzeW1ib2wnIG9yICdudW1iZXInIChlLmcuIGlmIGl0J3MgYSBwb2x5ZmlsbCkuXG5cblxuICBpZiAodHlwZSA9PT0gZXhwb3J0cy5GcmFnbWVudCB8fCB0eXBlID09PSBleHBvcnRzLlByb2ZpbGVyIHx8IHR5cGUgPT09IFJFQUNUX0RFQlVHX1RSQUNJTkdfTU9ERV9UWVBFIHx8IHR5cGUgPT09IGV4cG9ydHMuU3RyaWN0TW9kZSB8fCB0eXBlID09PSBleHBvcnRzLlN1c3BlbnNlIHx8IHR5cGUgPT09IFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9MRUdBQ1lfSElEREVOX1RZUEUgfHwgZW5hYmxlU2NvcGVBUEkgKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdvYmplY3QnICYmIHR5cGUgIT09IG51bGwpIHtcbiAgICBpZiAodHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTEFaWV9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX01FTU9fVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9QUk9WSURFUl9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0NPTlRFWFRfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0ZVTkRBTUVOVEFMX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQkxPQ0tfVFlQRSB8fCB0eXBlWzBdID09PSBSRUFDVF9TRVJWRVJfQkxPQ0tfVFlQRSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBtZW1vKHR5cGUsIGNvbXBhcmUpIHtcbiAge1xuICAgIGlmICghaXNWYWxpZEVsZW1lbnRUeXBlKHR5cGUpKSB7XG4gICAgICBlcnJvcignbWVtbzogVGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgYSBjb21wb25lbnQuIEluc3RlYWQgJyArICdyZWNlaXZlZDogJXMnLCB0eXBlID09PSBudWxsID8gJ251bGwnIDogdHlwZW9mIHR5cGUpO1xuICAgIH1cbiAgfVxuXG4gIHZhciBlbGVtZW50VHlwZSA9IHtcbiAgICAkJHR5cGVvZjogUkVBQ1RfTUVNT19UWVBFLFxuICAgIHR5cGU6IHR5cGUsXG4gICAgY29tcGFyZTogY29tcGFyZSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGNvbXBhcmVcbiAgfTtcblxuICB7XG4gICAgdmFyIG93bk5hbWU7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGVsZW1lbnRUeXBlLCAnZGlzcGxheU5hbWUnLCB7XG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gb3duTmFtZTtcbiAgICAgIH0sXG4gICAgICBzZXQ6IGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgICAgIG93bk5hbWUgPSBuYW1lO1xuXG4gICAgICAgIGlmICh0eXBlLmRpc3BsYXlOYW1lID09IG51bGwpIHtcbiAgICAgICAgICB0eXBlLmRpc3BsYXlOYW1lID0gbmFtZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGVsZW1lbnRUeXBlO1xufVxuXG5mdW5jdGlvbiByZXNvbHZlRGlzcGF0Y2hlcigpIHtcbiAgdmFyIGRpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyLmN1cnJlbnQ7XG5cbiAgaWYgKCEoZGlzcGF0Y2hlciAhPT0gbnVsbCkpIHtcbiAgICB7XG4gICAgICB0aHJvdyBFcnJvciggXCJJbnZhbGlkIGhvb2sgY2FsbC4gSG9va3MgY2FuIG9ubHkgYmUgY2FsbGVkIGluc2lkZSBvZiB0aGUgYm9keSBvZiBhIGZ1bmN0aW9uIGNvbXBvbmVudC4gVGhpcyBjb3VsZCBoYXBwZW4gZm9yIG9uZSBvZiB0aGUgZm9sbG93aW5nIHJlYXNvbnM6XFxuMS4gWW91IG1pZ2h0IGhhdmUgbWlzbWF0Y2hpbmcgdmVyc2lvbnMgb2YgUmVhY3QgYW5kIHRoZSByZW5kZXJlciAoc3VjaCBhcyBSZWFjdCBET00pXFxuMi4gWW91IG1pZ2h0IGJlIGJyZWFraW5nIHRoZSBSdWxlcyBvZiBIb29rc1xcbjMuIFlvdSBtaWdodCBoYXZlIG1vcmUgdGhhbiBvbmUgY29weSBvZiBSZWFjdCBpbiB0aGUgc2FtZSBhcHBcXG5TZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL2ludmFsaWQtaG9vay1jYWxsIGZvciB0aXBzIGFib3V0IGhvdyB0byBkZWJ1ZyBhbmQgZml4IHRoaXMgcHJvYmxlbS5cIiApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkaXNwYXRjaGVyO1xufVxuXG5mdW5jdGlvbiB1c2VDb250ZXh0KENvbnRleHQsIHVuc3RhYmxlX29ic2VydmVkQml0cykge1xuICB2YXIgZGlzcGF0Y2hlciA9IHJlc29sdmVEaXNwYXRjaGVyKCk7XG5cbiAge1xuICAgIGlmICh1bnN0YWJsZV9vYnNlcnZlZEJpdHMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgZXJyb3IoJ3VzZUNvbnRleHQoKSBzZWNvbmQgYXJndW1lbnQgaXMgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSAnICsgJ3VzZSBpbiBSZWFjdC4gUGFzc2luZyBpdCBpcyBub3Qgc3VwcG9ydGVkLiAnICsgJ1lvdSBwYXNzZWQ6ICVzLiVzJywgdW5zdGFibGVfb2JzZXJ2ZWRCaXRzLCB0eXBlb2YgdW5zdGFibGVfb2JzZXJ2ZWRCaXRzID09PSAnbnVtYmVyJyAmJiBBcnJheS5pc0FycmF5KGFyZ3VtZW50c1syXSkgPyAnXFxuXFxuRGlkIHlvdSBjYWxsIGFycmF5Lm1hcCh1c2VDb250ZXh0KT8gJyArICdDYWxsaW5nIEhvb2tzIGluc2lkZSBhIGxvb3AgaXMgbm90IHN1cHBvcnRlZC4gJyArICdMZWFybiBtb3JlIGF0IGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9ydWxlcy1vZi1ob29rcycgOiAnJyk7XG4gICAgfSAvLyBUT0RPOiBhZGQgYSBtb3JlIGdlbmVyaWMgd2FybmluZyBmb3IgaW52YWxpZCB2YWx1ZXMuXG5cblxuICAgIGlmIChDb250ZXh0Ll9jb250ZXh0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHZhciByZWFsQ29udGV4dCA9IENvbnRleHQuX2NvbnRleHQ7IC8vIERvbid0IGRlZHVwbGljYXRlIGJlY2F1c2UgdGhpcyBsZWdpdGltYXRlbHkgY2F1c2VzIGJ1Z3NcbiAgICAgIC8vIGFuZCBub2JvZHkgc2hvdWxkIGJlIHVzaW5nIHRoaXMgaW4gZXhpc3RpbmcgY29kZS5cblxuICAgICAgaWYgKHJlYWxDb250ZXh0LkNvbnN1bWVyID09PSBDb250ZXh0KSB7XG4gICAgICAgIGVycm9yKCdDYWxsaW5nIHVzZUNvbnRleHQoQ29udGV4dC5Db25zdW1lcikgaXMgbm90IHN1cHBvcnRlZCwgbWF5IGNhdXNlIGJ1Z3MsIGFuZCB3aWxsIGJlICcgKyAncmVtb3ZlZCBpbiBhIGZ1dHVyZSBtYWpvciByZWxlYXNlLiBEaWQgeW91IG1lYW4gdG8gY2FsbCB1c2VDb250ZXh0KENvbnRleHQpIGluc3RlYWQ/Jyk7XG4gICAgICB9IGVsc2UgaWYgKHJlYWxDb250ZXh0LlByb3ZpZGVyID09PSBDb250ZXh0KSB7XG4gICAgICAgIGVycm9yKCdDYWxsaW5nIHVzZUNvbnRleHQoQ29udGV4dC5Qcm92aWRlcikgaXMgbm90IHN1cHBvcnRlZC4gJyArICdEaWQgeW91IG1lYW4gdG8gY2FsbCB1c2VDb250ZXh0KENvbnRleHQpIGluc3RlYWQ/Jyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlQ29udGV4dChDb250ZXh0LCB1bnN0YWJsZV9vYnNlcnZlZEJpdHMpO1xufVxuZnVuY3Rpb24gdXNlU3RhdGUoaW5pdGlhbFN0YXRlKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlU3RhdGUoaW5pdGlhbFN0YXRlKTtcbn1cbmZ1bmN0aW9uIHVzZVJlZHVjZXIocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCkge1xuICB2YXIgZGlzcGF0Y2hlciA9IHJlc29sdmVEaXNwYXRjaGVyKCk7XG4gIHJldHVybiBkaXNwYXRjaGVyLnVzZVJlZHVjZXIocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCk7XG59XG5mdW5jdGlvbiB1c2VSZWYoaW5pdGlhbFZhbHVlKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlUmVmKGluaXRpYWxWYWx1ZSk7XG59XG5mdW5jdGlvbiB1c2VFZmZlY3QoY3JlYXRlLCBkZXBzKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlRWZmZWN0KGNyZWF0ZSwgZGVwcyk7XG59XG5mdW5jdGlvbiB1c2VMYXlvdXRFZmZlY3QoY3JlYXRlLCBkZXBzKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlTGF5b3V0RWZmZWN0KGNyZWF0ZSwgZGVwcyk7XG59XG5mdW5jdGlvbiB1c2VDYWxsYmFjayhjYWxsYmFjaywgZGVwcykge1xuICB2YXIgZGlzcGF0Y2hlciA9IHJlc29sdmVEaXNwYXRjaGVyKCk7XG4gIHJldHVybiBkaXNwYXRjaGVyLnVzZUNhbGxiYWNrKGNhbGxiYWNrLCBkZXBzKTtcbn1cbmZ1bmN0aW9uIHVzZU1lbW8oY3JlYXRlLCBkZXBzKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlTWVtbyhjcmVhdGUsIGRlcHMpO1xufVxuZnVuY3Rpb24gdXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsIGNyZWF0ZSwgZGVwcykge1xuICB2YXIgZGlzcGF0Y2hlciA9IHJlc29sdmVEaXNwYXRjaGVyKCk7XG4gIHJldHVybiBkaXNwYXRjaGVyLnVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCBjcmVhdGUsIGRlcHMpO1xufVxuZnVuY3Rpb24gdXNlRGVidWdWYWx1ZSh2YWx1ZSwgZm9ybWF0dGVyRm4pIHtcbiAge1xuICAgIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgICByZXR1cm4gZGlzcGF0Y2hlci51c2VEZWJ1Z1ZhbHVlKHZhbHVlLCBmb3JtYXR0ZXJGbik7XG4gIH1cbn1cblxuLy8gSGVscGVycyB0byBwYXRjaCBjb25zb2xlLmxvZ3MgdG8gYXZvaWQgbG9nZ2luZyBkdXJpbmcgc2lkZS1lZmZlY3QgZnJlZVxuLy8gcmVwbGF5aW5nIG9uIHJlbmRlciBmdW5jdGlvbi4gVGhpcyBjdXJyZW50bHkgb25seSBwYXRjaGVzIHRoZSBvYmplY3Rcbi8vIGxhemlseSB3aGljaCB3b24ndCBjb3ZlciBpZiB0aGUgbG9nIGZ1bmN0aW9uIHdhcyBleHRyYWN0ZWQgZWFnZXJseS5cbi8vIFdlIGNvdWxkIGFsc28gZWFnZXJseSBwYXRjaCB0aGUgbWV0aG9kLlxudmFyIGRpc2FibGVkRGVwdGggPSAwO1xudmFyIHByZXZMb2c7XG52YXIgcHJldkluZm87XG52YXIgcHJldldhcm47XG52YXIgcHJldkVycm9yO1xudmFyIHByZXZHcm91cDtcbnZhciBwcmV2R3JvdXBDb2xsYXBzZWQ7XG52YXIgcHJldkdyb3VwRW5kO1xuXG5mdW5jdGlvbiBkaXNhYmxlZExvZygpIHt9XG5cbmRpc2FibGVkTG9nLl9fcmVhY3REaXNhYmxlZExvZyA9IHRydWU7XG5mdW5jdGlvbiBkaXNhYmxlTG9ncygpIHtcbiAge1xuICAgIGlmIChkaXNhYmxlZERlcHRoID09PSAwKSB7XG4gICAgICAvKiBlc2xpbnQtZGlzYWJsZSByZWFjdC1pbnRlcm5hbC9uby1wcm9kdWN0aW9uLWxvZ2dpbmcgKi9cbiAgICAgIHByZXZMb2cgPSBjb25zb2xlLmxvZztcbiAgICAgIHByZXZJbmZvID0gY29uc29sZS5pbmZvO1xuICAgICAgcHJldldhcm4gPSBjb25zb2xlLndhcm47XG4gICAgICBwcmV2RXJyb3IgPSBjb25zb2xlLmVycm9yO1xuICAgICAgcHJldkdyb3VwID0gY29uc29sZS5ncm91cDtcbiAgICAgIHByZXZHcm91cENvbGxhcHNlZCA9IGNvbnNvbGUuZ3JvdXBDb2xsYXBzZWQ7XG4gICAgICBwcmV2R3JvdXBFbmQgPSBjb25zb2xlLmdyb3VwRW5kOyAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzE5MDk5XG5cbiAgICAgIHZhciBwcm9wcyA9IHtcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICB2YWx1ZTogZGlzYWJsZWRMb2csXG4gICAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgICB9OyAvLyAkRmxvd0ZpeE1lIEZsb3cgdGhpbmtzIGNvbnNvbGUgaXMgaW1tdXRhYmxlLlxuXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhjb25zb2xlLCB7XG4gICAgICAgIGluZm86IHByb3BzLFxuICAgICAgICBsb2c6IHByb3BzLFxuICAgICAgICB3YXJuOiBwcm9wcyxcbiAgICAgICAgZXJyb3I6IHByb3BzLFxuICAgICAgICBncm91cDogcHJvcHMsXG4gICAgICAgIGdyb3VwQ29sbGFwc2VkOiBwcm9wcyxcbiAgICAgICAgZ3JvdXBFbmQ6IHByb3BzXG4gICAgICB9KTtcbiAgICAgIC8qIGVzbGludC1lbmFibGUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nICovXG4gICAgfVxuXG4gICAgZGlzYWJsZWREZXB0aCsrO1xuICB9XG59XG5mdW5jdGlvbiByZWVuYWJsZUxvZ3MoKSB7XG4gIHtcbiAgICBkaXNhYmxlZERlcHRoLS07XG5cbiAgICBpZiAoZGlzYWJsZWREZXB0aCA9PT0gMCkge1xuICAgICAgLyogZXNsaW50LWRpc2FibGUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nICovXG4gICAgICB2YXIgcHJvcHMgPSB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgd3JpdGFibGU6IHRydWVcbiAgICAgIH07IC8vICRGbG93Rml4TWUgRmxvdyB0aGlua3MgY29uc29sZSBpcyBpbW11dGFibGUuXG5cbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGNvbnNvbGUsIHtcbiAgICAgICAgbG9nOiBfYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2TG9nXG4gICAgICAgIH0pLFxuICAgICAgICBpbmZvOiBfYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2SW5mb1xuICAgICAgICB9KSxcbiAgICAgICAgd2FybjogX2Fzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldldhcm5cbiAgICAgICAgfSksXG4gICAgICAgIGVycm9yOiBfYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2RXJyb3JcbiAgICAgICAgfSksXG4gICAgICAgIGdyb3VwOiBfYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2R3JvdXBcbiAgICAgICAgfSksXG4gICAgICAgIGdyb3VwQ29sbGFwc2VkOiBfYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2R3JvdXBDb2xsYXBzZWRcbiAgICAgICAgfSksXG4gICAgICAgIGdyb3VwRW5kOiBfYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2R3JvdXBFbmRcbiAgICAgICAgfSlcbiAgICAgIH0pO1xuICAgICAgLyogZXNsaW50LWVuYWJsZSByZWFjdC1pbnRlcm5hbC9uby1wcm9kdWN0aW9uLWxvZ2dpbmcgKi9cbiAgICB9XG5cbiAgICBpZiAoZGlzYWJsZWREZXB0aCA8IDApIHtcbiAgICAgIGVycm9yKCdkaXNhYmxlZERlcHRoIGZlbGwgYmVsb3cgemVyby4gJyArICdUaGlzIGlzIGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nKTtcbiAgICB9XG4gIH1cbn1cblxudmFyIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMSA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0Q3VycmVudERpc3BhdGNoZXI7XG52YXIgcHJlZml4O1xuZnVuY3Rpb24gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUobmFtZSwgc291cmNlLCBvd25lckZuKSB7XG4gIHtcbiAgICBpZiAocHJlZml4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIEV4dHJhY3QgdGhlIFZNIHNwZWNpZmljIHByZWZpeCB1c2VkIGJ5IGVhY2ggbGluZS5cbiAgICAgIHRyeSB7XG4gICAgICAgIHRocm93IEVycm9yKCk7XG4gICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgIHZhciBtYXRjaCA9IHguc3RhY2sudHJpbSgpLm1hdGNoKC9cXG4oICooYXQgKT8pLyk7XG4gICAgICAgIHByZWZpeCA9IG1hdGNoICYmIG1hdGNoWzFdIHx8ICcnO1xuICAgICAgfVxuICAgIH0gLy8gV2UgdXNlIHRoZSBwcmVmaXggdG8gZW5zdXJlIG91ciBzdGFja3MgbGluZSB1cCB3aXRoIG5hdGl2ZSBzdGFjayBmcmFtZXMuXG5cblxuICAgIHJldHVybiAnXFxuJyArIHByZWZpeCArIG5hbWU7XG4gIH1cbn1cbnZhciByZWVudHJ5ID0gZmFsc2U7XG52YXIgY29tcG9uZW50RnJhbWVDYWNoZTtcblxue1xuICB2YXIgUG9zc2libHlXZWFrTWFwID0gdHlwZW9mIFdlYWtNYXAgPT09ICdmdW5jdGlvbicgPyBXZWFrTWFwIDogTWFwO1xuICBjb21wb25lbnRGcmFtZUNhY2hlID0gbmV3IFBvc3NpYmx5V2Vha01hcCgpO1xufVxuXG5mdW5jdGlvbiBkZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lKGZuLCBjb25zdHJ1Y3QpIHtcbiAgLy8gSWYgc29tZXRoaW5nIGFza2VkIGZvciBhIHN0YWNrIGluc2lkZSBhIGZha2UgcmVuZGVyLCBpdCBzaG91bGQgZ2V0IGlnbm9yZWQuXG4gIGlmICghZm4gfHwgcmVlbnRyeSkge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHtcbiAgICB2YXIgZnJhbWUgPSBjb21wb25lbnRGcmFtZUNhY2hlLmdldChmbik7XG5cbiAgICBpZiAoZnJhbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGZyYW1lO1xuICAgIH1cbiAgfVxuXG4gIHZhciBjb250cm9sO1xuICByZWVudHJ5ID0gdHJ1ZTtcbiAgdmFyIHByZXZpb3VzUHJlcGFyZVN0YWNrVHJhY2UgPSBFcnJvci5wcmVwYXJlU3RhY2tUcmFjZTsgLy8gJEZsb3dGaXhNZSBJdCBkb2VzIGFjY2VwdCB1bmRlZmluZWQuXG5cbiAgRXJyb3IucHJlcGFyZVN0YWNrVHJhY2UgPSB1bmRlZmluZWQ7XG4gIHZhciBwcmV2aW91c0Rpc3BhdGNoZXI7XG5cbiAge1xuICAgIHByZXZpb3VzRGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50OyAvLyBTZXQgdGhlIGRpc3BhdGNoZXIgaW4gREVWIGJlY2F1c2UgdGhpcyBtaWdodCBiZSBjYWxsIGluIHRoZSByZW5kZXIgZnVuY3Rpb25cbiAgICAvLyBmb3Igd2FybmluZ3MuXG5cbiAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IG51bGw7XG4gICAgZGlzYWJsZUxvZ3MoKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgLy8gVGhpcyBzaG91bGQgdGhyb3cuXG4gICAgaWYgKGNvbnN0cnVjdCkge1xuICAgICAgLy8gU29tZXRoaW5nIHNob3VsZCBiZSBzZXR0aW5nIHRoZSBwcm9wcyBpbiB0aGUgY29uc3RydWN0b3IuXG4gICAgICB2YXIgRmFrZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoKTtcbiAgICAgIH07IC8vICRGbG93Rml4TWVcblxuXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRmFrZS5wcm90b3R5cGUsICdwcm9wcycsIHtcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgLy8gV2UgdXNlIGEgdGhyb3dpbmcgc2V0dGVyIGluc3RlYWQgb2YgZnJvemVuIG9yIG5vbi13cml0YWJsZSBwcm9wc1xuICAgICAgICAgIC8vIGJlY2F1c2UgdGhhdCB3b24ndCB0aHJvdyBpbiBhIG5vbi1zdHJpY3QgbW9kZSBmdW5jdGlvbi5cbiAgICAgICAgICB0aHJvdyBFcnJvcigpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSAnb2JqZWN0JyAmJiBSZWZsZWN0LmNvbnN0cnVjdCkge1xuICAgICAgICAvLyBXZSBjb25zdHJ1Y3QgYSBkaWZmZXJlbnQgY29udHJvbCBmb3IgdGhpcyBjYXNlIHRvIGluY2x1ZGUgYW55IGV4dHJhXG4gICAgICAgIC8vIGZyYW1lcyBhZGRlZCBieSB0aGUgY29uc3RydWN0IGNhbGwuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgUmVmbGVjdC5jb25zdHJ1Y3QoRmFrZSwgW10pO1xuICAgICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgICAgY29udHJvbCA9IHg7XG4gICAgICAgIH1cblxuICAgICAgICBSZWZsZWN0LmNvbnN0cnVjdChmbiwgW10sIEZha2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBGYWtlLmNhbGwoKTtcbiAgICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICAgIGNvbnRyb2wgPSB4O1xuICAgICAgICB9XG5cbiAgICAgICAgZm4uY2FsbChGYWtlLnByb3RvdHlwZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRocm93IEVycm9yKCk7XG4gICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgIGNvbnRyb2wgPSB4O1xuICAgICAgfVxuXG4gICAgICBmbigpO1xuICAgIH1cbiAgfSBjYXRjaCAoc2FtcGxlKSB7XG4gICAgLy8gVGhpcyBpcyBpbmxpbmVkIG1hbnVhbGx5IGJlY2F1c2UgY2xvc3VyZSBkb2Vzbid0IGRvIGl0IGZvciB1cy5cbiAgICBpZiAoc2FtcGxlICYmIGNvbnRyb2wgJiYgdHlwZW9mIHNhbXBsZS5zdGFjayA9PT0gJ3N0cmluZycpIHtcbiAgICAgIC8vIFRoaXMgZXh0cmFjdHMgdGhlIGZpcnN0IGZyYW1lIGZyb20gdGhlIHNhbXBsZSB0aGF0IGlzbid0IGFsc28gaW4gdGhlIGNvbnRyb2wuXG4gICAgICAvLyBTa2lwcGluZyBvbmUgZnJhbWUgdGhhdCB3ZSBhc3N1bWUgaXMgdGhlIGZyYW1lIHRoYXQgY2FsbHMgdGhlIHR3by5cbiAgICAgIHZhciBzYW1wbGVMaW5lcyA9IHNhbXBsZS5zdGFjay5zcGxpdCgnXFxuJyk7XG4gICAgICB2YXIgY29udHJvbExpbmVzID0gY29udHJvbC5zdGFjay5zcGxpdCgnXFxuJyk7XG4gICAgICB2YXIgcyA9IHNhbXBsZUxpbmVzLmxlbmd0aCAtIDE7XG4gICAgICB2YXIgYyA9IGNvbnRyb2xMaW5lcy5sZW5ndGggLSAxO1xuXG4gICAgICB3aGlsZSAocyA+PSAxICYmIGMgPj0gMCAmJiBzYW1wbGVMaW5lc1tzXSAhPT0gY29udHJvbExpbmVzW2NdKSB7XG4gICAgICAgIC8vIFdlIGV4cGVjdCBhdCBsZWFzdCBvbmUgc3RhY2sgZnJhbWUgdG8gYmUgc2hhcmVkLlxuICAgICAgICAvLyBUeXBpY2FsbHkgdGhpcyB3aWxsIGJlIHRoZSByb290IG1vc3Qgb25lLiBIb3dldmVyLCBzdGFjayBmcmFtZXMgbWF5IGJlXG4gICAgICAgIC8vIGN1dCBvZmYgZHVlIHRvIG1heGltdW0gc3RhY2sgbGltaXRzLiBJbiB0aGlzIGNhc2UsIG9uZSBtYXliZSBjdXQgb2ZmXG4gICAgICAgIC8vIGVhcmxpZXIgdGhhbiB0aGUgb3RoZXIuIFdlIGFzc3VtZSB0aGF0IHRoZSBzYW1wbGUgaXMgbG9uZ2VyIG9yIHRoZSBzYW1lXG4gICAgICAgIC8vIGFuZCB0aGVyZSBmb3IgY3V0IG9mZiBlYXJsaWVyLiBTbyB3ZSBzaG91bGQgZmluZCB0aGUgcm9vdCBtb3N0IGZyYW1lIGluXG4gICAgICAgIC8vIHRoZSBzYW1wbGUgc29tZXdoZXJlIGluIHRoZSBjb250cm9sLlxuICAgICAgICBjLS07XG4gICAgICB9XG5cbiAgICAgIGZvciAoOyBzID49IDEgJiYgYyA+PSAwOyBzLS0sIGMtLSkge1xuICAgICAgICAvLyBOZXh0IHdlIGZpbmQgdGhlIGZpcnN0IG9uZSB0aGF0IGlzbid0IHRoZSBzYW1lIHdoaWNoIHNob3VsZCBiZSB0aGVcbiAgICAgICAgLy8gZnJhbWUgdGhhdCBjYWxsZWQgb3VyIHNhbXBsZSBmdW5jdGlvbiBhbmQgdGhlIGNvbnRyb2wuXG4gICAgICAgIGlmIChzYW1wbGVMaW5lc1tzXSAhPT0gY29udHJvbExpbmVzW2NdKSB7XG4gICAgICAgICAgLy8gSW4gVjgsIHRoZSBmaXJzdCBsaW5lIGlzIGRlc2NyaWJpbmcgdGhlIG1lc3NhZ2UgYnV0IG90aGVyIFZNcyBkb24ndC5cbiAgICAgICAgICAvLyBJZiB3ZSdyZSBhYm91dCB0byByZXR1cm4gdGhlIGZpcnN0IGxpbmUsIGFuZCB0aGUgY29udHJvbCBpcyBhbHNvIG9uIHRoZSBzYW1lXG4gICAgICAgICAgLy8gbGluZSwgdGhhdCdzIGEgcHJldHR5IGdvb2QgaW5kaWNhdG9yIHRoYXQgb3VyIHNhbXBsZSB0aHJldyBhdCBzYW1lIGxpbmUgYXNcbiAgICAgICAgICAvLyB0aGUgY29udHJvbC4gSS5lLiBiZWZvcmUgd2UgZW50ZXJlZCB0aGUgc2FtcGxlIGZyYW1lLiBTbyB3ZSBpZ25vcmUgdGhpcyByZXN1bHQuXG4gICAgICAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIGlmIHlvdSBwYXNzZWQgYSBjbGFzcyB0byBmdW5jdGlvbiBjb21wb25lbnQsIG9yIG5vbi1mdW5jdGlvbi5cbiAgICAgICAgICBpZiAocyAhPT0gMSB8fCBjICE9PSAxKSB7XG4gICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgIHMtLTtcbiAgICAgICAgICAgICAgYy0tOyAvLyBXZSBtYXkgc3RpbGwgaGF2ZSBzaW1pbGFyIGludGVybWVkaWF0ZSBmcmFtZXMgZnJvbSB0aGUgY29uc3RydWN0IGNhbGwuXG4gICAgICAgICAgICAgIC8vIFRoZSBuZXh0IG9uZSB0aGF0IGlzbid0IHRoZSBzYW1lIHNob3VsZCBiZSBvdXIgbWF0Y2ggdGhvdWdoLlxuXG4gICAgICAgICAgICAgIGlmIChjIDwgMCB8fCBzYW1wbGVMaW5lc1tzXSAhPT0gY29udHJvbExpbmVzW2NdKSB7XG4gICAgICAgICAgICAgICAgLy8gVjggYWRkcyBhIFwibmV3XCIgcHJlZml4IGZvciBuYXRpdmUgY2xhc3Nlcy4gTGV0J3MgcmVtb3ZlIGl0IHRvIG1ha2UgaXQgcHJldHRpZXIuXG4gICAgICAgICAgICAgICAgdmFyIF9mcmFtZSA9ICdcXG4nICsgc2FtcGxlTGluZXNbc10ucmVwbGFjZSgnIGF0IG5ldyAnLCAnIGF0ICcpO1xuXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBmbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRGcmFtZUNhY2hlLnNldChmbiwgX2ZyYW1lKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IC8vIFJldHVybiB0aGUgbGluZSB3ZSBmb3VuZC5cblxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIF9mcmFtZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSB3aGlsZSAocyA+PSAxICYmIGMgPj0gMCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0gZmluYWxseSB7XG4gICAgcmVlbnRyeSA9IGZhbHNlO1xuXG4gICAge1xuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBwcmV2aW91c0Rpc3BhdGNoZXI7XG4gICAgICByZWVuYWJsZUxvZ3MoKTtcbiAgICB9XG5cbiAgICBFcnJvci5wcmVwYXJlU3RhY2tUcmFjZSA9IHByZXZpb3VzUHJlcGFyZVN0YWNrVHJhY2U7XG4gIH0gLy8gRmFsbGJhY2sgdG8ganVzdCB1c2luZyB0aGUgbmFtZSBpZiB3ZSBjb3VsZG4ndCBtYWtlIGl0IHRocm93LlxuXG5cbiAgdmFyIG5hbWUgPSBmbiA/IGZuLmRpc3BsYXlOYW1lIHx8IGZuLm5hbWUgOiAnJztcbiAgdmFyIHN5bnRoZXRpY0ZyYW1lID0gbmFtZSA/IGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKG5hbWUpIDogJyc7XG5cbiAge1xuICAgIGlmICh0eXBlb2YgZm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNvbXBvbmVudEZyYW1lQ2FjaGUuc2V0KGZuLCBzeW50aGV0aWNGcmFtZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN5bnRoZXRpY0ZyYW1lO1xufVxuZnVuY3Rpb24gZGVzY3JpYmVGdW5jdGlvbkNvbXBvbmVudEZyYW1lKGZuLCBzb3VyY2UsIG93bmVyRm4pIHtcbiAge1xuICAgIHJldHVybiBkZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lKGZuLCBmYWxzZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gc2hvdWxkQ29uc3RydWN0KENvbXBvbmVudCkge1xuICB2YXIgcHJvdG90eXBlID0gQ29tcG9uZW50LnByb3RvdHlwZTtcbiAgcmV0dXJuICEhKHByb3RvdHlwZSAmJiBwcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudCk7XG59XG5cbmZ1bmN0aW9uIGRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFVih0eXBlLCBzb3VyY2UsIG93bmVyRm4pIHtcblxuICBpZiAodHlwZSA9PSBudWxsKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAge1xuICAgICAgcmV0dXJuIGRlc2NyaWJlTmF0aXZlQ29tcG9uZW50RnJhbWUodHlwZSwgc2hvdWxkQ29uc3RydWN0KHR5cGUpKTtcbiAgICB9XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKHR5cGUpO1xuICB9XG5cbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSBleHBvcnRzLlN1c3BlbnNlOlxuICAgICAgcmV0dXJuIGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKCdTdXNwZW5zZScpO1xuXG4gICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEU6XG4gICAgICByZXR1cm4gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUoJ1N1c3BlbnNlTGlzdCcpO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnb2JqZWN0Jykge1xuICAgIHN3aXRjaCAodHlwZS4kJHR5cGVvZikge1xuICAgICAgY2FzZSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFOlxuICAgICAgICByZXR1cm4gZGVzY3JpYmVGdW5jdGlvbkNvbXBvbmVudEZyYW1lKHR5cGUucmVuZGVyKTtcblxuICAgICAgY2FzZSBSRUFDVF9NRU1PX1RZUEU6XG4gICAgICAgIC8vIE1lbW8gbWF5IGNvbnRhaW4gYW55IGNvbXBvbmVudCB0eXBlIHNvIHdlIHJlY3Vyc2l2ZWx5IHJlc29sdmUgaXQuXG4gICAgICAgIHJldHVybiBkZXNjcmliZVVua25vd25FbGVtZW50VHlwZUZyYW1lSW5ERVYodHlwZS50eXBlLCBzb3VyY2UsIG93bmVyRm4pO1xuXG4gICAgICBjYXNlIFJFQUNUX0JMT0NLX1RZUEU6XG4gICAgICAgIHJldHVybiBkZXNjcmliZUZ1bmN0aW9uQ29tcG9uZW50RnJhbWUodHlwZS5fcmVuZGVyKTtcblxuICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgbGF6eUNvbXBvbmVudCA9IHR5cGU7XG4gICAgICAgICAgdmFyIHBheWxvYWQgPSBsYXp5Q29tcG9uZW50Ll9wYXlsb2FkO1xuICAgICAgICAgIHZhciBpbml0ID0gbGF6eUNvbXBvbmVudC5faW5pdDtcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBMYXp5IG1heSBjb250YWluIGFueSBjb21wb25lbnQgdHlwZSBzbyB3ZSByZWN1cnNpdmVseSByZXNvbHZlIGl0LlxuICAgICAgICAgICAgcmV0dXJuIGRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFVihpbml0KHBheWxvYWQpLCBzb3VyY2UsIG93bmVyRm4pO1xuICAgICAgICAgIH0gY2F0Y2ggKHgpIHt9XG4gICAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gJyc7XG59XG5cbnZhciBsb2dnZWRUeXBlRmFpbHVyZXMgPSB7fTtcbnZhciBSZWFjdERlYnVnQ3VycmVudEZyYW1lJDEgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdERlYnVnQ3VycmVudEZyYW1lO1xuXG5mdW5jdGlvbiBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChlbGVtZW50KSB7XG4gIHtcbiAgICBpZiAoZWxlbWVudCkge1xuICAgICAgdmFyIG93bmVyID0gZWxlbWVudC5fb3duZXI7XG4gICAgICB2YXIgc3RhY2sgPSBkZXNjcmliZVVua25vd25FbGVtZW50VHlwZUZyYW1lSW5ERVYoZWxlbWVudC50eXBlLCBlbGVtZW50Ll9zb3VyY2UsIG93bmVyID8gb3duZXIudHlwZSA6IG51bGwpO1xuICAgICAgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSQxLnNldEV4dHJhU3RhY2tGcmFtZShzdGFjayk7XG4gICAgfSBlbHNlIHtcbiAgICAgIFJlYWN0RGVidWdDdXJyZW50RnJhbWUkMS5zZXRFeHRyYVN0YWNrRnJhbWUobnVsbCk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGNoZWNrUHJvcFR5cGVzKHR5cGVTcGVjcywgdmFsdWVzLCBsb2NhdGlvbiwgY29tcG9uZW50TmFtZSwgZWxlbWVudCkge1xuICB7XG4gICAgLy8gJEZsb3dGaXhNZSBUaGlzIGlzIG9rYXkgYnV0IEZsb3cgZG9lc24ndCBrbm93IGl0LlxuICAgIHZhciBoYXMgPSBGdW5jdGlvbi5jYWxsLmJpbmQoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSk7XG5cbiAgICBmb3IgKHZhciB0eXBlU3BlY05hbWUgaW4gdHlwZVNwZWNzKSB7XG4gICAgICBpZiAoaGFzKHR5cGVTcGVjcywgdHlwZVNwZWNOYW1lKSkge1xuICAgICAgICB2YXIgZXJyb3IkMSA9IHZvaWQgMDsgLy8gUHJvcCB0eXBlIHZhbGlkYXRpb24gbWF5IHRocm93LiBJbiBjYXNlIHRoZXkgZG8sIHdlIGRvbid0IHdhbnQgdG9cbiAgICAgICAgLy8gZmFpbCB0aGUgcmVuZGVyIHBoYXNlIHdoZXJlIGl0IGRpZG4ndCBmYWlsIGJlZm9yZS4gU28gd2UgbG9nIGl0LlxuICAgICAgICAvLyBBZnRlciB0aGVzZSBoYXZlIGJlZW4gY2xlYW5lZCB1cCwgd2UnbGwgbGV0IHRoZW0gdGhyb3cuXG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAvLyBUaGlzIGlzIGludGVudGlvbmFsbHkgYW4gaW52YXJpYW50IHRoYXQgZ2V0cyBjYXVnaHQuIEl0J3MgdGhlIHNhbWVcbiAgICAgICAgICAvLyBiZWhhdmlvciBhcyB3aXRob3V0IHRoaXMgc3RhdGVtZW50IGV4Y2VwdCB3aXRoIGEgYmV0dGVyIG1lc3NhZ2UuXG4gICAgICAgICAgaWYgKHR5cGVvZiB0eXBlU3BlY3NbdHlwZVNwZWNOYW1lXSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdmFyIGVyciA9IEVycm9yKChjb21wb25lbnROYW1lIHx8ICdSZWFjdCBjbGFzcycpICsgJzogJyArIGxvY2F0aW9uICsgJyB0eXBlIGAnICsgdHlwZVNwZWNOYW1lICsgJ2AgaXMgaW52YWxpZDsgJyArICdpdCBtdXN0IGJlIGEgZnVuY3Rpb24sIHVzdWFsbHkgZnJvbSB0aGUgYHByb3AtdHlwZXNgIHBhY2thZ2UsIGJ1dCByZWNlaXZlZCBgJyArIHR5cGVvZiB0eXBlU3BlY3NbdHlwZVNwZWNOYW1lXSArICdgLicgKyAnVGhpcyBvZnRlbiBoYXBwZW5zIGJlY2F1c2Ugb2YgdHlwb3Mgc3VjaCBhcyBgUHJvcFR5cGVzLmZ1bmN0aW9uYCBpbnN0ZWFkIG9mIGBQcm9wVHlwZXMuZnVuY2AuJyk7XG4gICAgICAgICAgICBlcnIubmFtZSA9ICdJbnZhcmlhbnQgVmlvbGF0aW9uJztcbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBlcnJvciQxID0gdHlwZVNwZWNzW3R5cGVTcGVjTmFtZV0odmFsdWVzLCB0eXBlU3BlY05hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBudWxsLCAnU0VDUkVUX0RPX05PVF9QQVNTX1RISVNfT1JfWU9VX1dJTExfQkVfRklSRUQnKTtcbiAgICAgICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgICAgICBlcnJvciQxID0gZXg7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXJyb3IkMSAmJiAhKGVycm9yJDEgaW5zdGFuY2VvZiBFcnJvcikpIHtcbiAgICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChlbGVtZW50KTtcblxuICAgICAgICAgIGVycm9yKCclczogdHlwZSBzcGVjaWZpY2F0aW9uIG9mICVzJyArICcgYCVzYCBpcyBpbnZhbGlkOyB0aGUgdHlwZSBjaGVja2VyICcgKyAnZnVuY3Rpb24gbXVzdCByZXR1cm4gYG51bGxgIG9yIGFuIGBFcnJvcmAgYnV0IHJldHVybmVkIGEgJXMuICcgKyAnWW91IG1heSBoYXZlIGZvcmdvdHRlbiB0byBwYXNzIGFuIGFyZ3VtZW50IHRvIHRoZSB0eXBlIGNoZWNrZXIgJyArICdjcmVhdG9yIChhcnJheU9mLCBpbnN0YW5jZU9mLCBvYmplY3RPZiwgb25lT2YsIG9uZU9mVHlwZSwgYW5kICcgKyAnc2hhcGUgYWxsIHJlcXVpcmUgYW4gYXJndW1lbnQpLicsIGNvbXBvbmVudE5hbWUgfHwgJ1JlYWN0IGNsYXNzJywgbG9jYXRpb24sIHR5cGVTcGVjTmFtZSwgdHlwZW9mIGVycm9yJDEpO1xuXG4gICAgICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQobnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXJyb3IkMSBpbnN0YW5jZW9mIEVycm9yICYmICEoZXJyb3IkMS5tZXNzYWdlIGluIGxvZ2dlZFR5cGVGYWlsdXJlcykpIHtcbiAgICAgICAgICAvLyBPbmx5IG1vbml0b3IgdGhpcyBmYWlsdXJlIG9uY2UgYmVjYXVzZSB0aGVyZSB0ZW5kcyB0byBiZSBhIGxvdCBvZiB0aGVcbiAgICAgICAgICAvLyBzYW1lIGVycm9yLlxuICAgICAgICAgIGxvZ2dlZFR5cGVGYWlsdXJlc1tlcnJvciQxLm1lc3NhZ2VdID0gdHJ1ZTtcbiAgICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChlbGVtZW50KTtcblxuICAgICAgICAgIGVycm9yKCdGYWlsZWQgJXMgdHlwZTogJXMnLCBsb2NhdGlvbiwgZXJyb3IkMS5tZXNzYWdlKTtcblxuICAgICAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50KG51bGwpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50JDEoZWxlbWVudCkge1xuICB7XG4gICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgIHZhciBvd25lciA9IGVsZW1lbnQuX293bmVyO1xuICAgICAgdmFyIHN0YWNrID0gZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWKGVsZW1lbnQudHlwZSwgZWxlbWVudC5fc291cmNlLCBvd25lciA/IG93bmVyLnR5cGUgOiBudWxsKTtcbiAgICAgIHNldEV4dHJhU3RhY2tGcmFtZShzdGFjayk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldEV4dHJhU3RhY2tGcmFtZShudWxsKTtcbiAgICB9XG4gIH1cbn1cblxudmFyIHByb3BUeXBlc01pc3NwZWxsV2FybmluZ1Nob3duO1xuXG57XG4gIHByb3BUeXBlc01pc3NwZWxsV2FybmluZ1Nob3duID0gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIGdldERlY2xhcmF0aW9uRXJyb3JBZGRlbmR1bSgpIHtcbiAgaWYgKFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQpIHtcbiAgICB2YXIgbmFtZSA9IGdldENvbXBvbmVudE5hbWUoUmVhY3RDdXJyZW50T3duZXIuY3VycmVudC50eXBlKTtcblxuICAgIGlmIChuYW1lKSB7XG4gICAgICByZXR1cm4gJ1xcblxcbkNoZWNrIHRoZSByZW5kZXIgbWV0aG9kIG9mIGAnICsgbmFtZSArICdgLic7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuICcnO1xufVxuXG5mdW5jdGlvbiBnZXRTb3VyY2VJbmZvRXJyb3JBZGRlbmR1bShzb3VyY2UpIHtcbiAgaWYgKHNvdXJjZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdmFyIGZpbGVOYW1lID0gc291cmNlLmZpbGVOYW1lLnJlcGxhY2UoL14uKltcXFxcXFwvXS8sICcnKTtcbiAgICB2YXIgbGluZU51bWJlciA9IHNvdXJjZS5saW5lTnVtYmVyO1xuICAgIHJldHVybiAnXFxuXFxuQ2hlY2sgeW91ciBjb2RlIGF0ICcgKyBmaWxlTmFtZSArICc6JyArIGxpbmVOdW1iZXIgKyAnLic7XG4gIH1cblxuICByZXR1cm4gJyc7XG59XG5cbmZ1bmN0aW9uIGdldFNvdXJjZUluZm9FcnJvckFkZGVuZHVtRm9yUHJvcHMoZWxlbWVudFByb3BzKSB7XG4gIGlmIChlbGVtZW50UHJvcHMgIT09IG51bGwgJiYgZWxlbWVudFByb3BzICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gZ2V0U291cmNlSW5mb0Vycm9yQWRkZW5kdW0oZWxlbWVudFByb3BzLl9fc291cmNlKTtcbiAgfVxuXG4gIHJldHVybiAnJztcbn1cbi8qKlxuICogV2FybiBpZiB0aGVyZSdzIG5vIGtleSBleHBsaWNpdGx5IHNldCBvbiBkeW5hbWljIGFycmF5cyBvZiBjaGlsZHJlbiBvclxuICogb2JqZWN0IGtleXMgYXJlIG5vdCB2YWxpZC4gVGhpcyBhbGxvd3MgdXMgdG8ga2VlcCB0cmFjayBvZiBjaGlsZHJlbiBiZXR3ZWVuXG4gKiB1cGRhdGVzLlxuICovXG5cblxudmFyIG93bmVySGFzS2V5VXNlV2FybmluZyA9IHt9O1xuXG5mdW5jdGlvbiBnZXRDdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvKHBhcmVudFR5cGUpIHtcbiAgdmFyIGluZm8gPSBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0oKTtcblxuICBpZiAoIWluZm8pIHtcbiAgICB2YXIgcGFyZW50TmFtZSA9IHR5cGVvZiBwYXJlbnRUeXBlID09PSAnc3RyaW5nJyA/IHBhcmVudFR5cGUgOiBwYXJlbnRUeXBlLmRpc3BsYXlOYW1lIHx8IHBhcmVudFR5cGUubmFtZTtcblxuICAgIGlmIChwYXJlbnROYW1lKSB7XG4gICAgICBpbmZvID0gXCJcXG5cXG5DaGVjayB0aGUgdG9wLWxldmVsIHJlbmRlciBjYWxsIHVzaW5nIDxcIiArIHBhcmVudE5hbWUgKyBcIj4uXCI7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGluZm87XG59XG4vKipcbiAqIFdhcm4gaWYgdGhlIGVsZW1lbnQgZG9lc24ndCBoYXZlIGFuIGV4cGxpY2l0IGtleSBhc3NpZ25lZCB0byBpdC5cbiAqIFRoaXMgZWxlbWVudCBpcyBpbiBhbiBhcnJheS4gVGhlIGFycmF5IGNvdWxkIGdyb3cgYW5kIHNocmluayBvciBiZVxuICogcmVvcmRlcmVkLiBBbGwgY2hpbGRyZW4gdGhhdCBoYXZlbid0IGFscmVhZHkgYmVlbiB2YWxpZGF0ZWQgYXJlIHJlcXVpcmVkIHRvXG4gKiBoYXZlIGEgXCJrZXlcIiBwcm9wZXJ0eSBhc3NpZ25lZCB0byBpdC4gRXJyb3Igc3RhdHVzZXMgYXJlIGNhY2hlZCBzbyBhIHdhcm5pbmdcbiAqIHdpbGwgb25seSBiZSBzaG93biBvbmNlLlxuICpcbiAqIEBpbnRlcm5hbFxuICogQHBhcmFtIHtSZWFjdEVsZW1lbnR9IGVsZW1lbnQgRWxlbWVudCB0aGF0IHJlcXVpcmVzIGEga2V5LlxuICogQHBhcmFtIHsqfSBwYXJlbnRUeXBlIGVsZW1lbnQncyBwYXJlbnQncyB0eXBlLlxuICovXG5cblxuZnVuY3Rpb24gdmFsaWRhdGVFeHBsaWNpdEtleShlbGVtZW50LCBwYXJlbnRUeXBlKSB7XG4gIGlmICghZWxlbWVudC5fc3RvcmUgfHwgZWxlbWVudC5fc3RvcmUudmFsaWRhdGVkIHx8IGVsZW1lbnQua2V5ICE9IG51bGwpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBlbGVtZW50Ll9zdG9yZS52YWxpZGF0ZWQgPSB0cnVlO1xuICB2YXIgY3VycmVudENvbXBvbmVudEVycm9ySW5mbyA9IGdldEN1cnJlbnRDb21wb25lbnRFcnJvckluZm8ocGFyZW50VHlwZSk7XG5cbiAgaWYgKG93bmVySGFzS2V5VXNlV2FybmluZ1tjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvXSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIG93bmVySGFzS2V5VXNlV2FybmluZ1tjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvXSA9IHRydWU7IC8vIFVzdWFsbHkgdGhlIGN1cnJlbnQgb3duZXIgaXMgdGhlIG9mZmVuZGVyLCBidXQgaWYgaXQgYWNjZXB0cyBjaGlsZHJlbiBhcyBhXG4gIC8vIHByb3BlcnR5LCBpdCBtYXkgYmUgdGhlIGNyZWF0b3Igb2YgdGhlIGNoaWxkIHRoYXQncyByZXNwb25zaWJsZSBmb3JcbiAgLy8gYXNzaWduaW5nIGl0IGEga2V5LlxuXG4gIHZhciBjaGlsZE93bmVyID0gJyc7XG5cbiAgaWYgKGVsZW1lbnQgJiYgZWxlbWVudC5fb3duZXIgJiYgZWxlbWVudC5fb3duZXIgIT09IFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQpIHtcbiAgICAvLyBHaXZlIHRoZSBjb21wb25lbnQgdGhhdCBvcmlnaW5hbGx5IGNyZWF0ZWQgdGhpcyBjaGlsZC5cbiAgICBjaGlsZE93bmVyID0gXCIgSXQgd2FzIHBhc3NlZCBhIGNoaWxkIGZyb20gXCIgKyBnZXRDb21wb25lbnROYW1lKGVsZW1lbnQuX293bmVyLnR5cGUpICsgXCIuXCI7XG4gIH1cblxuICB7XG4gICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQkMShlbGVtZW50KTtcblxuICAgIGVycm9yKCdFYWNoIGNoaWxkIGluIGEgbGlzdCBzaG91bGQgaGF2ZSBhIHVuaXF1ZSBcImtleVwiIHByb3AuJyArICclcyVzIFNlZSBodHRwczovL3JlYWN0anMub3JnL2xpbmsvd2FybmluZy1rZXlzIGZvciBtb3JlIGluZm9ybWF0aW9uLicsIGN1cnJlbnRDb21wb25lbnRFcnJvckluZm8sIGNoaWxkT3duZXIpO1xuXG4gICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQkMShudWxsKTtcbiAgfVxufVxuLyoqXG4gKiBFbnN1cmUgdGhhdCBldmVyeSBlbGVtZW50IGVpdGhlciBpcyBwYXNzZWQgaW4gYSBzdGF0aWMgbG9jYXRpb24sIGluIGFuXG4gKiBhcnJheSB3aXRoIGFuIGV4cGxpY2l0IGtleXMgcHJvcGVydHkgZGVmaW5lZCwgb3IgaW4gYW4gb2JqZWN0IGxpdGVyYWxcbiAqIHdpdGggdmFsaWQga2V5IHByb3BlcnR5LlxuICpcbiAqIEBpbnRlcm5hbFxuICogQHBhcmFtIHtSZWFjdE5vZGV9IG5vZGUgU3RhdGljYWxseSBwYXNzZWQgY2hpbGQgb2YgYW55IHR5cGUuXG4gKiBAcGFyYW0geyp9IHBhcmVudFR5cGUgbm9kZSdzIHBhcmVudCdzIHR5cGUuXG4gKi9cblxuXG5mdW5jdGlvbiB2YWxpZGF0ZUNoaWxkS2V5cyhub2RlLCBwYXJlbnRUeXBlKSB7XG4gIGlmICh0eXBlb2Ygbm9kZSAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoQXJyYXkuaXNBcnJheShub2RlKSkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZS5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGNoaWxkID0gbm9kZVtpXTtcblxuICAgICAgaWYgKGlzVmFsaWRFbGVtZW50KGNoaWxkKSkge1xuICAgICAgICB2YWxpZGF0ZUV4cGxpY2l0S2V5KGNoaWxkLCBwYXJlbnRUeXBlKTtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSBpZiAoaXNWYWxpZEVsZW1lbnQobm9kZSkpIHtcbiAgICAvLyBUaGlzIGVsZW1lbnQgd2FzIHBhc3NlZCBpbiBhIHZhbGlkIGxvY2F0aW9uLlxuICAgIGlmIChub2RlLl9zdG9yZSkge1xuICAgICAgbm9kZS5fc3RvcmUudmFsaWRhdGVkID0gdHJ1ZTtcbiAgICB9XG4gIH0gZWxzZSBpZiAobm9kZSkge1xuICAgIHZhciBpdGVyYXRvckZuID0gZ2V0SXRlcmF0b3JGbihub2RlKTtcblxuICAgIGlmICh0eXBlb2YgaXRlcmF0b3JGbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgLy8gRW50cnkgaXRlcmF0b3JzIHVzZWQgdG8gcHJvdmlkZSBpbXBsaWNpdCBrZXlzLFxuICAgICAgLy8gYnV0IG5vdyB3ZSBwcmludCBhIHNlcGFyYXRlIHdhcm5pbmcgZm9yIHRoZW0gbGF0ZXIuXG4gICAgICBpZiAoaXRlcmF0b3JGbiAhPT0gbm9kZS5lbnRyaWVzKSB7XG4gICAgICAgIHZhciBpdGVyYXRvciA9IGl0ZXJhdG9yRm4uY2FsbChub2RlKTtcbiAgICAgICAgdmFyIHN0ZXA7XG5cbiAgICAgICAgd2hpbGUgKCEoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSkuZG9uZSkge1xuICAgICAgICAgIGlmIChpc1ZhbGlkRWxlbWVudChzdGVwLnZhbHVlKSkge1xuICAgICAgICAgICAgdmFsaWRhdGVFeHBsaWNpdEtleShzdGVwLnZhbHVlLCBwYXJlbnRUeXBlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbi8qKlxuICogR2l2ZW4gYW4gZWxlbWVudCwgdmFsaWRhdGUgdGhhdCBpdHMgcHJvcHMgZm9sbG93IHRoZSBwcm9wVHlwZXMgZGVmaW5pdGlvbixcbiAqIHByb3ZpZGVkIGJ5IHRoZSB0eXBlLlxuICpcbiAqIEBwYXJhbSB7UmVhY3RFbGVtZW50fSBlbGVtZW50XG4gKi9cblxuXG5mdW5jdGlvbiB2YWxpZGF0ZVByb3BUeXBlcyhlbGVtZW50KSB7XG4gIHtcbiAgICB2YXIgdHlwZSA9IGVsZW1lbnQudHlwZTtcblxuICAgIGlmICh0eXBlID09PSBudWxsIHx8IHR5cGUgPT09IHVuZGVmaW5lZCB8fCB0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2YXIgcHJvcFR5cGVzO1xuXG4gICAgaWYgKHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBwcm9wVHlwZXMgPSB0eXBlLnByb3BUeXBlcztcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB0eXBlID09PSAnb2JqZWN0JyAmJiAodHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSB8fCAvLyBOb3RlOiBNZW1vIG9ubHkgY2hlY2tzIG91dGVyIHByb3BzIGhlcmUuXG4gICAgLy8gSW5uZXIgcHJvcHMgYXJlIGNoZWNrZWQgaW4gdGhlIHJlY29uY2lsZXIuXG4gICAgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTUVNT19UWVBFKSkge1xuICAgICAgcHJvcFR5cGVzID0gdHlwZS5wcm9wVHlwZXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAocHJvcFR5cGVzKSB7XG4gICAgICAvLyBJbnRlbnRpb25hbGx5IGluc2lkZSB0byBhdm9pZCB0cmlnZ2VyaW5nIGxhenkgaW5pdGlhbGl6ZXJzOlxuICAgICAgdmFyIG5hbWUgPSBnZXRDb21wb25lbnROYW1lKHR5cGUpO1xuICAgICAgY2hlY2tQcm9wVHlwZXMocHJvcFR5cGVzLCBlbGVtZW50LnByb3BzLCAncHJvcCcsIG5hbWUsIGVsZW1lbnQpO1xuICAgIH0gZWxzZSBpZiAodHlwZS5Qcm9wVHlwZXMgIT09IHVuZGVmaW5lZCAmJiAhcHJvcFR5cGVzTWlzc3BlbGxXYXJuaW5nU2hvd24pIHtcbiAgICAgIHByb3BUeXBlc01pc3NwZWxsV2FybmluZ1Nob3duID0gdHJ1ZTsgLy8gSW50ZW50aW9uYWxseSBpbnNpZGUgdG8gYXZvaWQgdHJpZ2dlcmluZyBsYXp5IGluaXRpYWxpemVyczpcblxuICAgICAgdmFyIF9uYW1lID0gZ2V0Q29tcG9uZW50TmFtZSh0eXBlKTtcblxuICAgICAgZXJyb3IoJ0NvbXBvbmVudCAlcyBkZWNsYXJlZCBgUHJvcFR5cGVzYCBpbnN0ZWFkIG9mIGBwcm9wVHlwZXNgLiBEaWQgeW91IG1pc3NwZWxsIHRoZSBwcm9wZXJ0eSBhc3NpZ25tZW50PycsIF9uYW1lIHx8ICdVbmtub3duJyk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB0eXBlLmdldERlZmF1bHRQcm9wcyA9PT0gJ2Z1bmN0aW9uJyAmJiAhdHlwZS5nZXREZWZhdWx0UHJvcHMuaXNSZWFjdENsYXNzQXBwcm92ZWQpIHtcbiAgICAgIGVycm9yKCdnZXREZWZhdWx0UHJvcHMgaXMgb25seSB1c2VkIG9uIGNsYXNzaWMgUmVhY3QuY3JlYXRlQ2xhc3MgJyArICdkZWZpbml0aW9ucy4gVXNlIGEgc3RhdGljIHByb3BlcnR5IG5hbWVkIGBkZWZhdWx0UHJvcHNgIGluc3RlYWQuJyk7XG4gICAgfVxuICB9XG59XG4vKipcbiAqIEdpdmVuIGEgZnJhZ21lbnQsIHZhbGlkYXRlIHRoYXQgaXQgY2FuIG9ubHkgYmUgcHJvdmlkZWQgd2l0aCBmcmFnbWVudCBwcm9wc1xuICogQHBhcmFtIHtSZWFjdEVsZW1lbnR9IGZyYWdtZW50XG4gKi9cblxuXG5mdW5jdGlvbiB2YWxpZGF0ZUZyYWdtZW50UHJvcHMoZnJhZ21lbnQpIHtcbiAge1xuICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoZnJhZ21lbnQucHJvcHMpO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIga2V5ID0ga2V5c1tpXTtcblxuICAgICAgaWYgKGtleSAhPT0gJ2NoaWxkcmVuJyAmJiBrZXkgIT09ICdrZXknKSB7XG4gICAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50JDEoZnJhZ21lbnQpO1xuXG4gICAgICAgIGVycm9yKCdJbnZhbGlkIHByb3AgYCVzYCBzdXBwbGllZCB0byBgUmVhY3QuRnJhZ21lbnRgLiAnICsgJ1JlYWN0LkZyYWdtZW50IGNhbiBvbmx5IGhhdmUgYGtleWAgYW5kIGBjaGlsZHJlbmAgcHJvcHMuJywga2V5KTtcblxuICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudCQxKG51bGwpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZnJhZ21lbnQucmVmICE9PSBudWxsKSB7XG4gICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudCQxKGZyYWdtZW50KTtcblxuICAgICAgZXJyb3IoJ0ludmFsaWQgYXR0cmlidXRlIGByZWZgIHN1cHBsaWVkIHRvIGBSZWFjdC5GcmFnbWVudGAuJyk7XG5cbiAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50JDEobnVsbCk7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBjcmVhdGVFbGVtZW50V2l0aFZhbGlkYXRpb24odHlwZSwgcHJvcHMsIGNoaWxkcmVuKSB7XG4gIHZhciB2YWxpZFR5cGUgPSBpc1ZhbGlkRWxlbWVudFR5cGUodHlwZSk7IC8vIFdlIHdhcm4gaW4gdGhpcyBjYXNlIGJ1dCBkb24ndCB0aHJvdy4gV2UgZXhwZWN0IHRoZSBlbGVtZW50IGNyZWF0aW9uIHRvXG4gIC8vIHN1Y2NlZWQgYW5kIHRoZXJlIHdpbGwgbGlrZWx5IGJlIGVycm9ycyBpbiByZW5kZXIuXG5cbiAgaWYgKCF2YWxpZFR5cGUpIHtcbiAgICB2YXIgaW5mbyA9ICcnO1xuXG4gICAgaWYgKHR5cGUgPT09IHVuZGVmaW5lZCB8fCB0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcgJiYgdHlwZSAhPT0gbnVsbCAmJiBPYmplY3Qua2V5cyh0eXBlKS5sZW5ndGggPT09IDApIHtcbiAgICAgIGluZm8gKz0gJyBZb3UgbGlrZWx5IGZvcmdvdCB0byBleHBvcnQgeW91ciBjb21wb25lbnQgZnJvbSB0aGUgZmlsZSAnICsgXCJpdCdzIGRlZmluZWQgaW4sIG9yIHlvdSBtaWdodCBoYXZlIG1peGVkIHVwIGRlZmF1bHQgYW5kIG5hbWVkIGltcG9ydHMuXCI7XG4gICAgfVxuXG4gICAgdmFyIHNvdXJjZUluZm8gPSBnZXRTb3VyY2VJbmZvRXJyb3JBZGRlbmR1bUZvclByb3BzKHByb3BzKTtcblxuICAgIGlmIChzb3VyY2VJbmZvKSB7XG4gICAgICBpbmZvICs9IHNvdXJjZUluZm87XG4gICAgfSBlbHNlIHtcbiAgICAgIGluZm8gKz0gZ2V0RGVjbGFyYXRpb25FcnJvckFkZGVuZHVtKCk7XG4gICAgfVxuXG4gICAgdmFyIHR5cGVTdHJpbmc7XG5cbiAgICBpZiAodHlwZSA9PT0gbnVsbCkge1xuICAgICAgdHlwZVN0cmluZyA9ICdudWxsJztcbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodHlwZSkpIHtcbiAgICAgIHR5cGVTdHJpbmcgPSAnYXJyYXknO1xuICAgIH0gZWxzZSBpZiAodHlwZSAhPT0gdW5kZWZpbmVkICYmIHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0VMRU1FTlRfVFlQRSkge1xuICAgICAgdHlwZVN0cmluZyA9IFwiPFwiICsgKGdldENvbXBvbmVudE5hbWUodHlwZS50eXBlKSB8fCAnVW5rbm93bicpICsgXCIgLz5cIjtcbiAgICAgIGluZm8gPSAnIERpZCB5b3UgYWNjaWRlbnRhbGx5IGV4cG9ydCBhIEpTWCBsaXRlcmFsIGluc3RlYWQgb2YgYSBjb21wb25lbnQ/JztcbiAgICB9IGVsc2Uge1xuICAgICAgdHlwZVN0cmluZyA9IHR5cGVvZiB0eXBlO1xuICAgIH1cblxuICAgIHtcbiAgICAgIGVycm9yKCdSZWFjdC5jcmVhdGVFbGVtZW50OiB0eXBlIGlzIGludmFsaWQgLS0gZXhwZWN0ZWQgYSBzdHJpbmcgKGZvciAnICsgJ2J1aWx0LWluIGNvbXBvbmVudHMpIG9yIGEgY2xhc3MvZnVuY3Rpb24gKGZvciBjb21wb3NpdGUgJyArICdjb21wb25lbnRzKSBidXQgZ290OiAlcy4lcycsIHR5cGVTdHJpbmcsIGluZm8pO1xuICAgIH1cbiAgfVxuXG4gIHZhciBlbGVtZW50ID0gY3JlYXRlRWxlbWVudC5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyAvLyBUaGUgcmVzdWx0IGNhbiBiZSBudWxsaXNoIGlmIGEgbW9jayBvciBhIGN1c3RvbSBmdW5jdGlvbiBpcyB1c2VkLlxuICAvLyBUT0RPOiBEcm9wIHRoaXMgd2hlbiB0aGVzZSBhcmUgbm8gbG9uZ2VyIGFsbG93ZWQgYXMgdGhlIHR5cGUgYXJndW1lbnQuXG5cbiAgaWYgKGVsZW1lbnQgPT0gbnVsbCkge1xuICAgIHJldHVybiBlbGVtZW50O1xuICB9IC8vIFNraXAga2V5IHdhcm5pbmcgaWYgdGhlIHR5cGUgaXNuJ3QgdmFsaWQgc2luY2Ugb3VyIGtleSB2YWxpZGF0aW9uIGxvZ2ljXG4gIC8vIGRvZXNuJ3QgZXhwZWN0IGEgbm9uLXN0cmluZy9mdW5jdGlvbiB0eXBlIGFuZCBjYW4gdGhyb3cgY29uZnVzaW5nIGVycm9ycy5cbiAgLy8gV2UgZG9uJ3Qgd2FudCBleGNlcHRpb24gYmVoYXZpb3IgdG8gZGlmZmVyIGJldHdlZW4gZGV2IGFuZCBwcm9kLlxuICAvLyAoUmVuZGVyaW5nIHdpbGwgdGhyb3cgd2l0aCBhIGhlbHBmdWwgbWVzc2FnZSBhbmQgYXMgc29vbiBhcyB0aGUgdHlwZSBpc1xuICAvLyBmaXhlZCwgdGhlIGtleSB3YXJuaW5ncyB3aWxsIGFwcGVhci4pXG5cblxuICBpZiAodmFsaWRUeXBlKSB7XG4gICAgZm9yICh2YXIgaSA9IDI7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhbGlkYXRlQ2hpbGRLZXlzKGFyZ3VtZW50c1tpXSwgdHlwZSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGUgPT09IGV4cG9ydHMuRnJhZ21lbnQpIHtcbiAgICB2YWxpZGF0ZUZyYWdtZW50UHJvcHMoZWxlbWVudCk7XG4gIH0gZWxzZSB7XG4gICAgdmFsaWRhdGVQcm9wVHlwZXMoZWxlbWVudCk7XG4gIH1cblxuICByZXR1cm4gZWxlbWVudDtcbn1cbnZhciBkaWRXYXJuQWJvdXREZXByZWNhdGVkQ3JlYXRlRmFjdG9yeSA9IGZhbHNlO1xuZnVuY3Rpb24gY3JlYXRlRmFjdG9yeVdpdGhWYWxpZGF0aW9uKHR5cGUpIHtcbiAgdmFyIHZhbGlkYXRlZEZhY3RvcnkgPSBjcmVhdGVFbGVtZW50V2l0aFZhbGlkYXRpb24uYmluZChudWxsLCB0eXBlKTtcbiAgdmFsaWRhdGVkRmFjdG9yeS50eXBlID0gdHlwZTtcblxuICB7XG4gICAgaWYgKCFkaWRXYXJuQWJvdXREZXByZWNhdGVkQ3JlYXRlRmFjdG9yeSkge1xuICAgICAgZGlkV2FybkFib3V0RGVwcmVjYXRlZENyZWF0ZUZhY3RvcnkgPSB0cnVlO1xuXG4gICAgICB3YXJuKCdSZWFjdC5jcmVhdGVGYWN0b3J5KCkgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluICcgKyAnYSBmdXR1cmUgbWFqb3IgcmVsZWFzZS4gQ29uc2lkZXIgdXNpbmcgSlNYICcgKyAnb3IgdXNlIFJlYWN0LmNyZWF0ZUVsZW1lbnQoKSBkaXJlY3RseSBpbnN0ZWFkLicpO1xuICAgIH0gLy8gTGVnYWN5IGhvb2s6IHJlbW92ZSBpdFxuXG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodmFsaWRhdGVkRmFjdG9yeSwgJ3R5cGUnLCB7XG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICB3YXJuKCdGYWN0b3J5LnR5cGUgaXMgZGVwcmVjYXRlZC4gQWNjZXNzIHRoZSBjbGFzcyBkaXJlY3RseSAnICsgJ2JlZm9yZSBwYXNzaW5nIGl0IHRvIGNyZWF0ZUZhY3RvcnkuJyk7XG5cbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICd0eXBlJywge1xuICAgICAgICAgIHZhbHVlOiB0eXBlXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdHlwZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiB2YWxpZGF0ZWRGYWN0b3J5O1xufVxuZnVuY3Rpb24gY2xvbmVFbGVtZW50V2l0aFZhbGlkYXRpb24oZWxlbWVudCwgcHJvcHMsIGNoaWxkcmVuKSB7XG4gIHZhciBuZXdFbGVtZW50ID0gY2xvbmVFbGVtZW50LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG5cbiAgZm9yICh2YXIgaSA9IDI7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICB2YWxpZGF0ZUNoaWxkS2V5cyhhcmd1bWVudHNbaV0sIG5ld0VsZW1lbnQudHlwZSk7XG4gIH1cblxuICB2YWxpZGF0ZVByb3BUeXBlcyhuZXdFbGVtZW50KTtcbiAgcmV0dXJuIG5ld0VsZW1lbnQ7XG59XG5cbntcblxuICB0cnkge1xuICAgIHZhciBmcm96ZW5PYmplY3QgPSBPYmplY3QuZnJlZXplKHt9KTtcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBuby1uZXcgKi9cblxuICAgIG5ldyBNYXAoW1tmcm96ZW5PYmplY3QsIG51bGxdXSk7XG4gICAgbmV3IFNldChbZnJvemVuT2JqZWN0XSk7XG4gICAgLyogZXNsaW50LWVuYWJsZSBuby1uZXcgKi9cbiAgfSBjYXRjaCAoZSkge1xuICB9XG59XG5cbnZhciBjcmVhdGVFbGVtZW50JDEgPSAgY3JlYXRlRWxlbWVudFdpdGhWYWxpZGF0aW9uIDtcbnZhciBjbG9uZUVsZW1lbnQkMSA9ICBjbG9uZUVsZW1lbnRXaXRoVmFsaWRhdGlvbiA7XG52YXIgY3JlYXRlRmFjdG9yeSA9ICBjcmVhdGVGYWN0b3J5V2l0aFZhbGlkYXRpb24gO1xudmFyIENoaWxkcmVuID0ge1xuICBtYXA6IG1hcENoaWxkcmVuLFxuICBmb3JFYWNoOiBmb3JFYWNoQ2hpbGRyZW4sXG4gIGNvdW50OiBjb3VudENoaWxkcmVuLFxuICB0b0FycmF5OiB0b0FycmF5LFxuICBvbmx5OiBvbmx5Q2hpbGRcbn07XG5cbmV4cG9ydHMuQ2hpbGRyZW4gPSBDaGlsZHJlbjtcbmV4cG9ydHMuQ29tcG9uZW50ID0gQ29tcG9uZW50O1xuZXhwb3J0cy5QdXJlQ29tcG9uZW50ID0gUHVyZUNvbXBvbmVudDtcbmV4cG9ydHMuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQgPSBSZWFjdFNoYXJlZEludGVybmFscztcbmV4cG9ydHMuY2xvbmVFbGVtZW50ID0gY2xvbmVFbGVtZW50JDE7XG5leHBvcnRzLmNyZWF0ZUNvbnRleHQgPSBjcmVhdGVDb250ZXh0O1xuZXhwb3J0cy5jcmVhdGVFbGVtZW50ID0gY3JlYXRlRWxlbWVudCQxO1xuZXhwb3J0cy5jcmVhdGVGYWN0b3J5ID0gY3JlYXRlRmFjdG9yeTtcbmV4cG9ydHMuY3JlYXRlUmVmID0gY3JlYXRlUmVmO1xuZXhwb3J0cy5mb3J3YXJkUmVmID0gZm9yd2FyZFJlZjtcbmV4cG9ydHMuaXNWYWxpZEVsZW1lbnQgPSBpc1ZhbGlkRWxlbWVudDtcbmV4cG9ydHMubGF6eSA9IGxhenk7XG5leHBvcnRzLm1lbW8gPSBtZW1vO1xuZXhwb3J0cy51c2VDYWxsYmFjayA9IHVzZUNhbGxiYWNrO1xuZXhwb3J0cy51c2VDb250ZXh0ID0gdXNlQ29udGV4dDtcbmV4cG9ydHMudXNlRGVidWdWYWx1ZSA9IHVzZURlYnVnVmFsdWU7XG5leHBvcnRzLnVzZUVmZmVjdCA9IHVzZUVmZmVjdDtcbmV4cG9ydHMudXNlSW1wZXJhdGl2ZUhhbmRsZSA9IHVzZUltcGVyYXRpdmVIYW5kbGU7XG5leHBvcnRzLnVzZUxheW91dEVmZmVjdCA9IHVzZUxheW91dEVmZmVjdDtcbmV4cG9ydHMudXNlTWVtbyA9IHVzZU1lbW87XG5leHBvcnRzLnVzZVJlZHVjZXIgPSB1c2VSZWR1Y2VyO1xuZXhwb3J0cy51c2VSZWYgPSB1c2VSZWY7XG5leHBvcnRzLnVzZVN0YXRlID0gdXNlU3RhdGU7XG5leHBvcnRzLnZlcnNpb24gPSBSZWFjdFZlcnNpb247XG4gIH0pKCk7XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react/cjs/react.development.js\n"); + +/***/ }), + +/***/ "./node_modules/react/index.js": +/*!*************************************!*\ + !*** ./node_modules/react/index.js ***! + \*************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react.development.js */ \"./node_modules/react/cjs/react.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsSUFBSSxLQUFxQyxFQUFFLEVBRTFDLENBQUM7QUFDRixFQUFFLHVIQUFzRDtBQUN4RCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmVhY3QvaW5kZXguanM/MWZiMiJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QuZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react/index.js\n"); + +/***/ }), + +/***/ "./node_modules/regenerator-runtime/runtime.js": +/*!*****************************************************!*\ + !*** ./node_modules/regenerator-runtime/runtime.js ***! + \*****************************************************/ +/***/ (function(module) { + +eval("/**\n * Copyright (c) 2014-present, Facebook, Inc.\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\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n true ? module.exports : 0\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVnZW5lcmF0b3ItcnVudGltZS9ydW50aW1lLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZixNQUFNO0FBQ04sZUFBZTtBQUNmO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMERBQTBEO0FBQzFEO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBLFdBQVc7QUFDWDs7QUFFQTtBQUNBO0FBQ0Esd0NBQXdDLFdBQVc7QUFDbkQ7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDRCQUE0QjtBQUM1QjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUEsVUFBVTtBQUNWO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxxQ0FBcUMsY0FBYztBQUNuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7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QUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmVnZW5lcmF0b3ItcnVudGltZS9ydW50aW1lLmpzP2M1NmUiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTQtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG52YXIgcnVudGltZSA9IChmdW5jdGlvbiAoZXhwb3J0cykge1xuICBcInVzZSBzdHJpY3RcIjtcblxuICB2YXIgT3AgPSBPYmplY3QucHJvdG90eXBlO1xuICB2YXIgaGFzT3duID0gT3AuaGFzT3duUHJvcGVydHk7XG4gIHZhciB1bmRlZmluZWQ7IC8vIE1vcmUgY29tcHJlc3NpYmxlIHRoYW4gdm9pZCAwLlxuICB2YXIgJFN5bWJvbCA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiA/IFN5bWJvbCA6IHt9O1xuICB2YXIgaXRlcmF0b3JTeW1ib2wgPSAkU3ltYm9sLml0ZXJhdG9yIHx8IFwiQEBpdGVyYXRvclwiO1xuICB2YXIgYXN5bmNJdGVyYXRvclN5bWJvbCA9ICRTeW1ib2wuYXN5bmNJdGVyYXRvciB8fCBcIkBAYXN5bmNJdGVyYXRvclwiO1xuICB2YXIgdG9TdHJpbmdUYWdTeW1ib2wgPSAkU3ltYm9sLnRvU3RyaW5nVGFnIHx8IFwiQEB0b1N0cmluZ1RhZ1wiO1xuXG4gIGZ1bmN0aW9uIHdyYXAoaW5uZXJGbiwgb3V0ZXJGbiwgc2VsZiwgdHJ5TG9jc0xpc3QpIHtcbiAgICAvLyBJZiBvdXRlckZuIHByb3ZpZGVkIGFuZCBvdXRlckZuLnByb3RvdHlwZSBpcyBhIEdlbmVyYXRvciwgdGhlbiBvdXRlckZuLnByb3RvdHlwZSBpbnN0YW5jZW9mIEdlbmVyYXRvci5cbiAgICB2YXIgcHJvdG9HZW5lcmF0b3IgPSBvdXRlckZuICYmIG91dGVyRm4ucHJvdG90eXBlIGluc3RhbmNlb2YgR2VuZXJhdG9yID8gb3V0ZXJGbiA6IEdlbmVyYXRvcjtcbiAgICB2YXIgZ2VuZXJhdG9yID0gT2JqZWN0LmNyZWF0ZShwcm90b0dlbmVyYXRvci5wcm90b3R5cGUpO1xuICAgIHZhciBjb250ZXh0ID0gbmV3IENvbnRleHQodHJ5TG9jc0xpc3QgfHwgW10pO1xuXG4gICAgLy8gVGhlIC5faW52b2tlIG1ldGhvZCB1bmlmaWVzIHRoZSBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlIC5uZXh0LFxuICAgIC8vIC50aHJvdywgYW5kIC5yZXR1cm4gbWV0aG9kcy5cbiAgICBnZW5lcmF0b3IuX2ludm9rZSA9IG1ha2VJbnZva2VNZXRob2QoaW5uZXJGbiwgc2VsZiwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gZ2VuZXJhdG9yO1xuICB9XG4gIGV4cG9ydHMud3JhcCA9IHdyYXA7XG5cbiAgLy8gVHJ5L2NhdGNoIGhlbHBlciB0byBtaW5pbWl6ZSBkZW9wdGltaXphdGlvbnMuIFJldHVybnMgYSBjb21wbGV0aW9uXG4gIC8vIHJlY29yZCBsaWtlIGNvbnRleHQudHJ5RW50cmllc1tpXS5jb21wbGV0aW9uLiBUaGlzIGludGVyZmFjZSBjb3VsZFxuICAvLyBoYXZlIGJlZW4gKGFuZCB3YXMgcHJldmlvdXNseSkgZGVzaWduZWQgdG8gdGFrZSBhIGNsb3N1cmUgdG8gYmVcbiAgLy8gaW52b2tlZCB3aXRob3V0IGFyZ3VtZW50cywgYnV0IGluIGFsbCB0aGUgY2FzZXMgd2UgY2FyZSBhYm91dCB3ZVxuICAvLyBhbHJlYWR5IGhhdmUgYW4gZXhpc3RpbmcgbWV0aG9kIHdlIHdhbnQgdG8gY2FsbCwgc28gdGhlcmUncyBubyBuZWVkXG4gIC8vIHRvIGNyZWF0ZSBhIG5ldyBmdW5jdGlvbiBvYmplY3QuIFdlIGNhbiBldmVuIGdldCBhd2F5IHdpdGggYXNzdW1pbmdcbiAgLy8gdGhlIG1ldGhvZCB0YWtlcyBleGFjdGx5IG9uZSBhcmd1bWVudCwgc2luY2UgdGhhdCBoYXBwZW5zIHRvIGJlIHRydWVcbiAgLy8gaW4gZXZlcnkgY2FzZSwgc28gd2UgZG9uJ3QgaGF2ZSB0byB0b3VjaCB0aGUgYXJndW1lbnRzIG9iamVjdC4gVGhlXG4gIC8vIG9ubHkgYWRkaXRpb25hbCBhbGxvY2F0aW9uIHJlcXVpcmVkIGlzIHRoZSBjb21wbGV0aW9uIHJlY29yZCwgd2hpY2hcbiAgLy8gaGFzIGEgc3RhYmxlIHNoYXBlIGFuZCBzbyBob3BlZnVsbHkgc2hvdWxkIGJlIGNoZWFwIHRvIGFsbG9jYXRlLlxuICBmdW5jdGlvbiB0cnlDYXRjaChmbiwgb2JqLCBhcmcpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHsgdHlwZTogXCJub3JtYWxcIiwgYXJnOiBmbi5jYWxsKG9iaiwgYXJnKSB9O1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgcmV0dXJuIHsgdHlwZTogXCJ0aHJvd1wiLCBhcmc6IGVyciB9O1xuICAgIH1cbiAgfVxuXG4gIHZhciBHZW5TdGF0ZVN1c3BlbmRlZFN0YXJ0ID0gXCJzdXNwZW5kZWRTdGFydFwiO1xuICB2YXIgR2VuU3RhdGVTdXNwZW5kZWRZaWVsZCA9IFwic3VzcGVuZGVkWWllbGRcIjtcbiAgdmFyIEdlblN0YXRlRXhlY3V0aW5nID0gXCJleGVjdXRpbmdcIjtcbiAgdmFyIEdlblN0YXRlQ29tcGxldGVkID0gXCJjb21wbGV0ZWRcIjtcblxuICAvLyBSZXR1cm5pbmcgdGhpcyBvYmplY3QgZnJvbSB0aGUgaW5uZXJGbiBoYXMgdGhlIHNhbWUgZWZmZWN0IGFzXG4gIC8vIGJyZWFraW5nIG91dCBvZiB0aGUgZGlzcGF0Y2ggc3dpdGNoIHN0YXRlbWVudC5cbiAgdmFyIENvbnRpbnVlU2VudGluZWwgPSB7fTtcblxuICAvLyBEdW1teSBjb25zdHJ1Y3RvciBmdW5jdGlvbnMgdGhhdCB3ZSB1c2UgYXMgdGhlIC5jb25zdHJ1Y3RvciBhbmRcbiAgLy8gLmNvbnN0cnVjdG9yLnByb3RvdHlwZSBwcm9wZXJ0aWVzIGZvciBmdW5jdGlvbnMgdGhhdCByZXR1cm4gR2VuZXJhdG9yXG4gIC8vIG9iamVjdHMuIEZvciBmdWxsIHNwZWMgY29tcGxpYW5jZSwgeW91IG1heSB3aXNoIHRvIGNvbmZpZ3VyZSB5b3VyXG4gIC8vIG1pbmlmaWVyIG5vdCB0byBtYW5nbGUgdGhlIG5hbWVzIG9mIHRoZXNlIHR3byBmdW5jdGlvbnMuXG4gIGZ1bmN0aW9uIEdlbmVyYXRvcigpIHt9XG4gIGZ1bmN0aW9uIEdlbmVyYXRvckZ1bmN0aW9uKCkge31cbiAgZnVuY3Rpb24gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUoKSB7fVxuXG4gIC8vIFRoaXMgaXMgYSBwb2x5ZmlsbCBmb3IgJUl0ZXJhdG9yUHJvdG90eXBlJSBmb3IgZW52aXJvbm1lbnRzIHRoYXRcbiAgLy8gZG9uJ3QgbmF0aXZlbHkgc3VwcG9ydCBpdC5cbiAgdmFyIEl0ZXJhdG9yUHJvdG90eXBlID0ge307XG4gIEl0ZXJhdG9yUHJvdG90eXBlW2l0ZXJhdG9yU3ltYm9sXSA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICB2YXIgZ2V0UHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Y7XG4gIHZhciBOYXRpdmVJdGVyYXRvclByb3RvdHlwZSA9IGdldFByb3RvICYmIGdldFByb3RvKGdldFByb3RvKHZhbHVlcyhbXSkpKTtcbiAgaWYgKE5hdGl2ZUl0ZXJhdG9yUHJvdG90eXBlICYmXG4gICAgICBOYXRpdmVJdGVyYXRvclByb3RvdHlwZSAhPT0gT3AgJiZcbiAgICAgIGhhc093bi5jYWxsKE5hdGl2ZUl0ZXJhdG9yUHJvdG90eXBlLCBpdGVyYXRvclN5bWJvbCkpIHtcbiAgICAvLyBUaGlzIGVudmlyb25tZW50IGhhcyBhIG5hdGl2ZSAlSXRlcmF0b3JQcm90b3R5cGUlOyB1c2UgaXQgaW5zdGVhZFxuICAgIC8vIG9mIHRoZSBwb2x5ZmlsbC5cbiAgICBJdGVyYXRvclByb3RvdHlwZSA9IE5hdGl2ZUl0ZXJhdG9yUHJvdG90eXBlO1xuICB9XG5cbiAgdmFyIEdwID0gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUucHJvdG90eXBlID1cbiAgICBHZW5lcmF0b3IucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShJdGVyYXRvclByb3RvdHlwZSk7XG4gIEdlbmVyYXRvckZ1bmN0aW9uLnByb3RvdHlwZSA9IEdwLmNvbnN0cnVjdG9yID0gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGU7XG4gIEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLmNvbnN0cnVjdG9yID0gR2VuZXJhdG9yRnVuY3Rpb247XG4gIEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlW3RvU3RyaW5nVGFnU3ltYm9sXSA9XG4gICAgR2VuZXJhdG9yRnVuY3Rpb24uZGlzcGxheU5hbWUgPSBcIkdlbmVyYXRvckZ1bmN0aW9uXCI7XG5cbiAgLy8gSGVscGVyIGZvciBkZWZpbmluZyB0aGUgLm5leHQsIC50aHJvdywgYW5kIC5yZXR1cm4gbWV0aG9kcyBvZiB0aGVcbiAgLy8gSXRlcmF0b3IgaW50ZXJmYWNlIGluIHRlcm1zIG9mIGEgc2luZ2xlIC5faW52b2tlIG1ldGhvZC5cbiAgZnVuY3Rpb24gZGVmaW5lSXRlcmF0b3JNZXRob2RzKHByb3RvdHlwZSkge1xuICAgIFtcIm5leHRcIiwgXCJ0aHJvd1wiLCBcInJldHVyblwiXS5mb3JFYWNoKGZ1bmN0aW9uKG1ldGhvZCkge1xuICAgICAgcHJvdG90eXBlW21ldGhvZF0gPSBmdW5jdGlvbihhcmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ludm9rZShtZXRob2QsIGFyZyk7XG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgZXhwb3J0cy5pc0dlbmVyYXRvckZ1bmN0aW9uID0gZnVuY3Rpb24oZ2VuRnVuKSB7XG4gICAgdmFyIGN0b3IgPSB0eXBlb2YgZ2VuRnVuID09PSBcImZ1bmN0aW9uXCIgJiYgZ2VuRnVuLmNvbnN0cnVjdG9yO1xuICAgIHJldHVybiBjdG9yXG4gICAgICA/IGN0b3IgPT09IEdlbmVyYXRvckZ1bmN0aW9uIHx8XG4gICAgICAgIC8vIEZvciB0aGUgbmF0aXZlIEdlbmVyYXRvckZ1bmN0aW9uIGNvbnN0cnVjdG9yLCB0aGUgYmVzdCB3ZSBjYW5cbiAgICAgICAgLy8gZG8gaXMgdG8gY2hlY2sgaXRzIC5uYW1lIHByb3BlcnR5LlxuICAgICAgICAoY3Rvci5kaXNwbGF5TmFtZSB8fCBjdG9yLm5hbWUpID09PSBcIkdlbmVyYXRvckZ1bmN0aW9uXCJcbiAgICAgIDogZmFsc2U7XG4gIH07XG5cbiAgZXhwb3J0cy5tYXJrID0gZnVuY3Rpb24oZ2VuRnVuKSB7XG4gICAgaWYgKE9iamVjdC5zZXRQcm90b3R5cGVPZikge1xuICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKGdlbkZ1biwgR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBnZW5GdW4uX19wcm90b19fID0gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGU7XG4gICAgICBpZiAoISh0b1N0cmluZ1RhZ1N5bWJvbCBpbiBnZW5GdW4pKSB7XG4gICAgICAgIGdlbkZ1blt0b1N0cmluZ1RhZ1N5bWJvbF0gPSBcIkdlbmVyYXRvckZ1bmN0aW9uXCI7XG4gICAgICB9XG4gICAgfVxuICAgIGdlbkZ1bi5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKEdwKTtcbiAgICByZXR1cm4gZ2VuRnVuO1xuICB9O1xuXG4gIC8vIFdpdGhpbiB0aGUgYm9keSBvZiBhbnkgYXN5bmMgZnVuY3Rpb24sIGBhd2FpdCB4YCBpcyB0cmFuc2Zvcm1lZCB0b1xuICAvLyBgeWllbGQgcmVnZW5lcmF0b3JSdW50aW1lLmF3cmFwKHgpYCwgc28gdGhhdCB0aGUgcnVudGltZSBjYW4gdGVzdFxuICAvLyBgaGFzT3duLmNhbGwodmFsdWUsIFwiX19hd2FpdFwiKWAgdG8gZGV0ZXJtaW5lIGlmIHRoZSB5aWVsZGVkIHZhbHVlIGlzXG4gIC8vIG1lYW50IHRvIGJlIGF3YWl0ZWQuXG4gIGV4cG9ydHMuYXdyYXAgPSBmdW5jdGlvbihhcmcpIHtcbiAgICByZXR1cm4geyBfX2F3YWl0OiBhcmcgfTtcbiAgfTtcblxuICBmdW5jdGlvbiBBc3luY0l0ZXJhdG9yKGdlbmVyYXRvciwgUHJvbWlzZUltcGwpIHtcbiAgICBmdW5jdGlvbiBpbnZva2UobWV0aG9kLCBhcmcsIHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgdmFyIHJlY29yZCA9IHRyeUNhdGNoKGdlbmVyYXRvclttZXRob2RdLCBnZW5lcmF0b3IsIGFyZyk7XG4gICAgICBpZiAocmVjb3JkLnR5cGUgPT09IFwidGhyb3dcIikge1xuICAgICAgICByZWplY3QocmVjb3JkLmFyZyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgcmVzdWx0ID0gcmVjb3JkLmFyZztcbiAgICAgICAgdmFyIHZhbHVlID0gcmVzdWx0LnZhbHVlO1xuICAgICAgICBpZiAodmFsdWUgJiZcbiAgICAgICAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJlxuICAgICAgICAgICAgaGFzT3duLmNhbGwodmFsdWUsIFwiX19hd2FpdFwiKSkge1xuICAgICAgICAgIHJldHVybiBQcm9taXNlSW1wbC5yZXNvbHZlKHZhbHVlLl9fYXdhaXQpLnRoZW4oZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgICAgICAgIGludm9rZShcIm5leHRcIiwgdmFsdWUsIHJlc29sdmUsIHJlamVjdCk7XG4gICAgICAgICAgfSwgZnVuY3Rpb24oZXJyKSB7XG4gICAgICAgICAgICBpbnZva2UoXCJ0aHJvd1wiLCBlcnIsIHJlc29sdmUsIHJlamVjdCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gUHJvbWlzZUltcGwucmVzb2x2ZSh2YWx1ZSkudGhlbihmdW5jdGlvbih1bndyYXBwZWQpIHtcbiAgICAgICAgICAvLyBXaGVuIGEgeWllbGRlZCBQcm9taXNlIGlzIHJlc29sdmVkLCBpdHMgZmluYWwgdmFsdWUgYmVjb21lc1xuICAgICAgICAgIC8vIHRoZSAudmFsdWUgb2YgdGhlIFByb21pc2U8e3ZhbHVlLGRvbmV9PiByZXN1bHQgZm9yIHRoZVxuICAgICAgICAgIC8vIGN1cnJlbnQgaXRlcmF0aW9uLlxuICAgICAgICAgIHJlc3VsdC52YWx1ZSA9IHVud3JhcHBlZDtcbiAgICAgICAgICByZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgIH0sIGZ1bmN0aW9uKGVycm9yKSB7XG4gICAgICAgICAgLy8gSWYgYSByZWplY3RlZCBQcm9taXNlIHdhcyB5aWVsZGVkLCB0aHJvdyB0aGUgcmVqZWN0aW9uIGJhY2tcbiAgICAgICAgICAvLyBpbnRvIHRoZSBhc3luYyBnZW5lcmF0b3IgZnVuY3Rpb24gc28gaXQgY2FuIGJlIGhhbmRsZWQgdGhlcmUuXG4gICAgICAgICAgcmV0dXJuIGludm9rZShcInRocm93XCIsIGVycm9yLCByZXNvbHZlLCByZWplY3QpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgcHJldmlvdXNQcm9taXNlO1xuXG4gICAgZnVuY3Rpb24gZW5xdWV1ZShtZXRob2QsIGFyZykge1xuICAgICAgZnVuY3Rpb24gY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmcoKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZUltcGwoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgaW52b2tlKG1ldGhvZCwgYXJnLCByZXNvbHZlLCByZWplY3QpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHByZXZpb3VzUHJvbWlzZSA9XG4gICAgICAgIC8vIElmIGVucXVldWUgaGFzIGJlZW4gY2FsbGVkIGJlZm9yZSwgdGhlbiB3ZSB3YW50IHRvIHdhaXQgdW50aWxcbiAgICAgICAgLy8gYWxsIHByZXZpb3VzIFByb21pc2VzIGhhdmUgYmVlbiByZXNvbHZlZCBiZWZvcmUgY2FsbGluZyBpbnZva2UsXG4gICAgICAgIC8vIHNvIHRoYXQgcmVzdWx0cyBhcmUgYWx3YXlzIGRlbGl2ZXJlZCBpbiB0aGUgY29ycmVjdCBvcmRlci4gSWZcbiAgICAgICAgLy8gZW5xdWV1ZSBoYXMgbm90IGJlZW4gY2FsbGVkIGJlZm9yZSwgdGhlbiBpdCBpcyBpbXBvcnRhbnQgdG9cbiAgICAgICAgLy8gY2FsbCBpbnZva2UgaW1tZWRpYXRlbHksIHdpdGhvdXQgd2FpdGluZyBvbiBhIGNhbGxiYWNrIHRvIGZpcmUsXG4gICAgICAgIC8vIHNvIHRoYXQgdGhlIGFzeW5jIGdlbmVyYXRvciBmdW5jdGlvbiBoYXMgdGhlIG9wcG9ydHVuaXR5IHRvIGRvXG4gICAgICAgIC8vIGFueSBuZWNlc3Nhcnkgc2V0dXAgaW4gYSBwcmVkaWN0YWJsZSB3YXkuIFRoaXMgcHJlZGljdGFiaWxpdHlcbiAgICAgICAgLy8gaXMgd2h5IHRoZSBQcm9taXNlIGNvbnN0cnVjdG9yIHN5bmNocm9ub3VzbHkgaW52b2tlcyBpdHNcbiAgICAgICAgLy8gZXhlY3V0b3IgY2FsbGJhY2ssIGFuZCB3aHkgYXN5bmMgZnVuY3Rpb25zIHN5bmNocm9ub3VzbHlcbiAgICAgICAgLy8gZXhlY3V0ZSBjb2RlIGJlZm9yZSB0aGUgZmlyc3QgYXdhaXQuIFNpbmNlIHdlIGltcGxlbWVudCBzaW1wbGVcbiAgICAgICAgLy8gYXN5bmMgZnVuY3Rpb25zIGluIHRlcm1zIG9mIGFzeW5jIGdlbmVyYXRvcnMsIGl0IGlzIGVzcGVjaWFsbHlcbiAgICAgICAgLy8gaW1wb3J0YW50IHRvIGdldCB0aGlzIHJpZ2h0LCBldmVuIHRob3VnaCBpdCByZXF1aXJlcyBjYXJlLlxuICAgICAgICBwcmV2aW91c1Byb21pc2UgPyBwcmV2aW91c1Byb21pc2UudGhlbihcbiAgICAgICAgICBjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZyxcbiAgICAgICAgICAvLyBBdm9pZCBwcm9wYWdhdGluZyBmYWlsdXJlcyB0byBQcm9taXNlcyByZXR1cm5lZCBieSBsYXRlclxuICAgICAgICAgIC8vIGludm9jYXRpb25zIG9mIHRoZSBpdGVyYXRvci5cbiAgICAgICAgICBjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZ1xuICAgICAgICApIDogY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmcoKTtcbiAgICB9XG5cbiAgICAvLyBEZWZpbmUgdGhlIHVuaWZpZWQgaGVscGVyIG1ldGhvZCB0aGF0IGlzIHVzZWQgdG8gaW1wbGVtZW50IC5uZXh0LFxuICAgIC8vIC50aHJvdywgYW5kIC5yZXR1cm4gKHNlZSBkZWZpbmVJdGVyYXRvck1ldGhvZHMpLlxuICAgIHRoaXMuX2ludm9rZSA9IGVucXVldWU7XG4gIH1cblxuICBkZWZpbmVJdGVyYXRvck1ldGhvZHMoQXN5bmNJdGVyYXRvci5wcm90b3R5cGUpO1xuICBBc3luY0l0ZXJhdG9yLnByb3RvdHlwZVthc3luY0l0ZXJhdG9yU3ltYm9sXSA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcbiAgZXhwb3J0cy5Bc3luY0l0ZXJhdG9yID0gQXN5bmNJdGVyYXRvcjtcblxuICAvLyBOb3RlIHRoYXQgc2ltcGxlIGFzeW5jIGZ1bmN0aW9ucyBhcmUgaW1wbGVtZW50ZWQgb24gdG9wIG9mXG4gIC8vIEFzeW5jSXRlcmF0b3Igb2JqZWN0czsgdGhleSBqdXN0IHJldHVybiBhIFByb21pc2UgZm9yIHRoZSB2YWx1ZSBvZlxuICAvLyB0aGUgZmluYWwgcmVzdWx0IHByb2R1Y2VkIGJ5IHRoZSBpdGVyYXRvci5cbiAgZXhwb3J0cy5hc3luYyA9IGZ1bmN0aW9uKGlubmVyRm4sIG91dGVyRm4sIHNlbGYsIHRyeUxvY3NMaXN0LCBQcm9taXNlSW1wbCkge1xuICAgIGlmIChQcm9taXNlSW1wbCA9PT0gdm9pZCAwKSBQcm9taXNlSW1wbCA9IFByb21pc2U7XG5cbiAgICB2YXIgaXRlciA9IG5ldyBBc3luY0l0ZXJhdG9yKFxuICAgICAgd3JhcChpbm5lckZuLCBvdXRlckZuLCBzZWxmLCB0cnlMb2NzTGlzdCksXG4gICAgICBQcm9taXNlSW1wbFxuICAgICk7XG5cbiAgICByZXR1cm4gZXhwb3J0cy5pc0dlbmVyYXRvckZ1bmN0aW9uKG91dGVyRm4pXG4gICAgICA/IGl0ZXIgLy8gSWYgb3V0ZXJGbiBpcyBhIGdlbmVyYXRvciwgcmV0dXJuIHRoZSBmdWxsIGl0ZXJhdG9yLlxuICAgICAgOiBpdGVyLm5leHQoKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkge1xuICAgICAgICAgIHJldHVybiByZXN1bHQuZG9uZSA/IHJlc3VsdC52YWx1ZSA6IGl0ZXIubmV4dCgpO1xuICAgICAgICB9KTtcbiAgfTtcblxuICBmdW5jdGlvbiBtYWtlSW52b2tlTWV0aG9kKGlubmVyRm4sIHNlbGYsIGNvbnRleHQpIHtcbiAgICB2YXIgc3RhdGUgPSBHZW5TdGF0ZVN1c3BlbmRlZFN0YXJ0O1xuXG4gICAgcmV0dXJuIGZ1bmN0aW9uIGludm9rZShtZXRob2QsIGFyZykge1xuICAgICAgaWYgKHN0YXRlID09PSBHZW5TdGF0ZUV4ZWN1dGluZykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nXCIpO1xuICAgICAgfVxuXG4gICAgICBpZiAoc3RhdGUgPT09IEdlblN0YXRlQ29tcGxldGVkKSB7XG4gICAgICAgIGlmIChtZXRob2QgPT09IFwidGhyb3dcIikge1xuICAgICAgICAgIHRocm93IGFyZztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEJlIGZvcmdpdmluZywgcGVyIDI1LjMuMy4zLjMgb2YgdGhlIHNwZWM6XG4gICAgICAgIC8vIGh0dHBzOi8vcGVvcGxlLm1vemlsbGEub3JnL35qb3JlbmRvcmZmL2VzNi1kcmFmdC5odG1sI3NlYy1nZW5lcmF0b3JyZXN1bWVcbiAgICAgICAgcmV0dXJuIGRvbmVSZXN1bHQoKTtcbiAgICAgIH1cblxuICAgICAgY29udGV4dC5tZXRob2QgPSBtZXRob2Q7XG4gICAgICBjb250ZXh0LmFyZyA9IGFyZztcblxuICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgdmFyIGRlbGVnYXRlID0gY29udGV4dC5kZWxlZ2F0ZTtcbiAgICAgICAgaWYgKGRlbGVnYXRlKSB7XG4gICAgICAgICAgdmFyIGRlbGVnYXRlUmVzdWx0ID0gbWF5YmVJbnZva2VEZWxlZ2F0ZShkZWxlZ2F0ZSwgY29udGV4dCk7XG4gICAgICAgICAgaWYgKGRlbGVnYXRlUmVzdWx0KSB7XG4gICAgICAgICAgICBpZiAoZGVsZWdhdGVSZXN1bHQgPT09IENvbnRpbnVlU2VudGluZWwpIGNvbnRpbnVlO1xuICAgICAgICAgICAgcmV0dXJuIGRlbGVnYXRlUmVzdWx0O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb250ZXh0Lm1ldGhvZCA9PT0gXCJuZXh0XCIpIHtcbiAgICAgICAgICAvLyBTZXR0aW5nIGNvbnRleHQuX3NlbnQgZm9yIGxlZ2FjeSBzdXBwb3J0IG9mIEJhYmVsJ3NcbiAgICAgICAgICAvLyBmdW5jdGlvbi5zZW50IGltcGxlbWVudGF0aW9uLlxuICAgICAgICAgIGNvbnRleHQuc2VudCA9IGNvbnRleHQuX3NlbnQgPSBjb250ZXh0LmFyZztcblxuICAgICAgICB9IGVsc2UgaWYgKGNvbnRleHQubWV0aG9kID09PSBcInRocm93XCIpIHtcbiAgICAgICAgICBpZiAoc3RhdGUgPT09IEdlblN0YXRlU3VzcGVuZGVkU3RhcnQpIHtcbiAgICAgICAgICAgIHN0YXRlID0gR2VuU3RhdGVDb21wbGV0ZWQ7XG4gICAgICAgICAgICB0aHJvdyBjb250ZXh0LmFyZztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb250ZXh0LmRpc3BhdGNoRXhjZXB0aW9uKGNvbnRleHQuYXJnKTtcblxuICAgICAgICB9IGVsc2UgaWYgKGNvbnRleHQubWV0aG9kID09PSBcInJldHVyblwiKSB7XG4gICAgICAgICAgY29udGV4dC5hYnJ1cHQoXCJyZXR1cm5cIiwgY29udGV4dC5hcmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RhdGUgPSBHZW5TdGF0ZUV4ZWN1dGluZztcblxuICAgICAgICB2YXIgcmVjb3JkID0gdHJ5Q2F0Y2goaW5uZXJGbiwgc2VsZiwgY29udGV4dCk7XG4gICAgICAgIGlmIChyZWNvcmQudHlwZSA9PT0gXCJub3JtYWxcIikge1xuICAgICAgICAgIC8vIElmIGFuIGV4Y2VwdGlvbiBpcyB0aHJvd24gZnJvbSBpbm5lckZuLCB3ZSBsZWF2ZSBzdGF0ZSA9PT1cbiAgICAgICAgICAvLyBHZW5TdGF0ZUV4ZWN1dGluZyBhbmQgbG9vcCBiYWNrIGZvciBhbm90aGVyIGludm9jYXRpb24uXG4gICAgICAgICAgc3RhdGUgPSBjb250ZXh0LmRvbmVcbiAgICAgICAgICAgID8gR2VuU3RhdGVDb21wbGV0ZWRcbiAgICAgICAgICAgIDogR2VuU3RhdGVTdXNwZW5kZWRZaWVsZDtcblxuICAgICAgICAgIGlmIChyZWNvcmQuYXJnID09PSBDb250aW51ZVNlbnRpbmVsKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdmFsdWU6IHJlY29yZC5hcmcsXG4gICAgICAgICAgICBkb25lOiBjb250ZXh0LmRvbmVcbiAgICAgICAgICB9O1xuXG4gICAgICAgIH0gZWxzZSBpZiAocmVjb3JkLnR5cGUgPT09IFwidGhyb3dcIikge1xuICAgICAgICAgIHN0YXRlID0gR2VuU3RhdGVDb21wbGV0ZWQ7XG4gICAgICAgICAgLy8gRGlzcGF0Y2ggdGhlIGV4Y2VwdGlvbiBieSBsb29waW5nIGJhY2sgYXJvdW5kIHRvIHRoZVxuICAgICAgICAgIC8vIGNvbnRleHQuZGlzcGF0Y2hFeGNlcHRpb24oY29udGV4dC5hcmcpIGNhbGwgYWJvdmUuXG4gICAgICAgICAgY29udGV4dC5tZXRob2QgPSBcInRocm93XCI7XG4gICAgICAgICAgY29udGV4dC5hcmcgPSByZWNvcmQuYXJnO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIC8vIENhbGwgZGVsZWdhdGUuaXRlcmF0b3JbY29udGV4dC5tZXRob2RdKGNvbnRleHQuYXJnKSBhbmQgaGFuZGxlIHRoZVxuICAvLyByZXN1bHQsIGVpdGhlciBieSByZXR1cm5pbmcgYSB7IHZhbHVlLCBkb25lIH0gcmVzdWx0IGZyb20gdGhlXG4gIC8vIGRlbGVnYXRlIGl0ZXJhdG9yLCBvciBieSBtb2RpZnlpbmcgY29udGV4dC5tZXRob2QgYW5kIGNvbnRleHQuYXJnLFxuICAvLyBzZXR0aW5nIGNvbnRleHQuZGVsZWdhdGUgdG8gbnVsbCwgYW5kIHJldHVybmluZyB0aGUgQ29udGludWVTZW50aW5lbC5cbiAgZnVuY3Rpb24gbWF5YmVJbnZva2VEZWxlZ2F0ZShkZWxlZ2F0ZSwgY29udGV4dCkge1xuICAgIHZhciBtZXRob2QgPSBkZWxlZ2F0ZS5pdGVyYXRvcltjb250ZXh0Lm1ldGhvZF07XG4gICAgaWYgKG1ldGhvZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBBIC50aHJvdyBvciAucmV0dXJuIHdoZW4gdGhlIGRlbGVnYXRlIGl0ZXJhdG9yIGhhcyBubyAudGhyb3dcbiAgICAgIC8vIG1ldGhvZCBhbHdheXMgdGVybWluYXRlcyB0aGUgeWllbGQqIGxvb3AuXG4gICAgICBjb250ZXh0LmRlbGVnYXRlID0gbnVsbDtcblxuICAgICAgaWYgKGNvbnRleHQubWV0aG9kID09PSBcInRocm93XCIpIHtcbiAgICAgICAgLy8gTm90ZTogW1wicmV0dXJuXCJdIG11c3QgYmUgdXNlZCBmb3IgRVMzIHBhcnNpbmcgY29tcGF0aWJpbGl0eS5cbiAgICAgICAgaWYgKGRlbGVnYXRlLml0ZXJhdG9yW1wicmV0dXJuXCJdKSB7XG4gICAgICAgICAgLy8gSWYgdGhlIGRlbGVnYXRlIGl0ZXJhdG9yIGhhcyBhIHJldHVybiBtZXRob2QsIGdpdmUgaXQgYVxuICAgICAgICAgIC8vIGNoYW5jZSB0byBjbGVhbiB1cC5cbiAgICAgICAgICBjb250ZXh0Lm1ldGhvZCA9IFwicmV0dXJuXCI7XG4gICAgICAgICAgY29udGV4dC5hcmcgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgbWF5YmVJbnZva2VEZWxlZ2F0ZShkZWxlZ2F0ZSwgY29udGV4dCk7XG5cbiAgICAgICAgICBpZiAoY29udGV4dC5tZXRob2QgPT09IFwidGhyb3dcIikge1xuICAgICAgICAgICAgLy8gSWYgbWF5YmVJbnZva2VEZWxlZ2F0ZShjb250ZXh0KSBjaGFuZ2VkIGNvbnRleHQubWV0aG9kIGZyb21cbiAgICAgICAgICAgIC8vIFwicmV0dXJuXCIgdG8gXCJ0aHJvd1wiLCBsZXQgdGhhdCBvdmVycmlkZSB0aGUgVHlwZUVycm9yIGJlbG93LlxuICAgICAgICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29udGV4dC5tZXRob2QgPSBcInRocm93XCI7XG4gICAgICAgIGNvbnRleHQuYXJnID0gbmV3IFR5cGVFcnJvcihcbiAgICAgICAgICBcIlRoZSBpdGVyYXRvciBkb2VzIG5vdCBwcm92aWRlIGEgJ3Rocm93JyBtZXRob2RcIik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBDb250aW51ZVNlbnRpbmVsO1xuICAgIH1cblxuICAgIHZhciByZWNvcmQgPSB0cnlDYXRjaChtZXRob2QsIGRlbGVnYXRlLml0ZXJhdG9yLCBjb250ZXh0LmFyZyk7XG5cbiAgICBpZiAocmVjb3JkLnR5cGUgPT09IFwidGhyb3dcIikge1xuICAgICAgY29udGV4dC5tZXRob2QgPSBcInRocm93XCI7XG4gICAgICBjb250ZXh0LmFyZyA9IHJlY29yZC5hcmc7XG4gICAgICBjb250ZXh0LmRlbGVnYXRlID0gbnVsbDtcbiAgICAgIHJldHVybiBDb250aW51ZVNlbnRpbmVsO1xuICAgIH1cblxuICAgIHZhciBpbmZvID0gcmVjb3JkLmFyZztcblxuICAgIGlmICghIGluZm8pIHtcbiAgICAgIGNvbnRleHQubWV0aG9kID0gXCJ0aHJvd1wiO1xuICAgICAgY29udGV4dC5hcmcgPSBuZXcgVHlwZUVycm9yKFwiaXRlcmF0b3IgcmVzdWx0IGlzIG5vdCBhbiBvYmplY3RcIik7XG4gICAgICBjb250ZXh0LmRlbGVnYXRlID0gbnVsbDtcbiAgICAgIHJldHVybiBDb250aW51ZVNlbnRpbmVsO1xuICAgIH1cblxuICAgIGlmIChpbmZvLmRvbmUpIHtcbiAgICAgIC8vIEFzc2lnbiB0aGUgcmVzdWx0IG9mIHRoZSBmaW5pc2hlZCBkZWxlZ2F0ZSB0byB0aGUgdGVtcG9yYXJ5XG4gICAgICAvLyB2YXJpYWJsZSBzcGVjaWZpZWQgYnkgZGVsZWdhdGUucmVzdWx0TmFtZSAoc2VlIGRlbGVnYXRlWWllbGQpLlxuICAgICAgY29udGV4dFtkZWxlZ2F0ZS5yZXN1bHROYW1lXSA9IGluZm8udmFsdWU7XG5cbiAgICAgIC8vIFJlc3VtZSBleGVjdXRpb24gYXQgdGhlIGRlc2lyZWQgbG9jYXRpb24gKHNlZSBkZWxlZ2F0ZVlpZWxkKS5cbiAgICAgIGNvbnRleHQubmV4dCA9IGRlbGVnYXRlLm5leHRMb2M7XG5cbiAgICAgIC8vIElmIGNvbnRleHQubWV0aG9kIHdhcyBcInRocm93XCIgYnV0IHRoZSBkZWxlZ2F0ZSBoYW5kbGVkIHRoZVxuICAgICAgLy8gZXhjZXB0aW9uLCBsZXQgdGhlIG91dGVyIGdlbmVyYXRvciBwcm9jZWVkIG5vcm1hbGx5LiBJZlxuICAgICAgLy8gY29udGV4dC5tZXRob2Qgd2FzIFwibmV4dFwiLCBmb3JnZXQgY29udGV4dC5hcmcgc2luY2UgaXQgaGFzIGJlZW5cbiAgICAgIC8vIFwiY29uc3VtZWRcIiBieSB0aGUgZGVsZWdhdGUgaXRlcmF0b3IuIElmIGNvbnRleHQubWV0aG9kIHdhc1xuICAgICAgLy8gXCJyZXR1cm5cIiwgYWxsb3cgdGhlIG9yaWdpbmFsIC5yZXR1cm4gY2FsbCB0byBjb250aW51ZSBpbiB0aGVcbiAgICAgIC8vIG91dGVyIGdlbmVyYXRvci5cbiAgICAgIGlmIChjb250ZXh0Lm1ldGhvZCAhPT0gXCJyZXR1cm5cIikge1xuICAgICAgICBjb250ZXh0Lm1ldGhvZCA9IFwibmV4dFwiO1xuICAgICAgICBjb250ZXh0LmFyZyA9IHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBSZS15aWVsZCB0aGUgcmVzdWx0IHJldHVybmVkIGJ5IHRoZSBkZWxlZ2F0ZSBtZXRob2QuXG4gICAgICByZXR1cm4gaW5mbztcbiAgICB9XG5cbiAgICAvLyBUaGUgZGVsZWdhdGUgaXRlcmF0b3IgaXMgZmluaXNoZWQsIHNvIGZvcmdldCBpdCBhbmQgY29udGludWUgd2l0aFxuICAgIC8vIHRoZSBvdXRlciBnZW5lcmF0b3IuXG4gICAgY29udGV4dC5kZWxlZ2F0ZSA9IG51bGw7XG4gICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gIH1cblxuICAvLyBEZWZpbmUgR2VuZXJhdG9yLnByb3RvdHlwZS57bmV4dCx0aHJvdyxyZXR1cm59IGluIHRlcm1zIG9mIHRoZVxuICAvLyB1bmlmaWVkIC5faW52b2tlIGhlbHBlciBtZXRob2QuXG4gIGRlZmluZUl0ZXJhdG9yTWV0aG9kcyhHcCk7XG5cbiAgR3BbdG9TdHJpbmdUYWdTeW1ib2xdID0gXCJHZW5lcmF0b3JcIjtcblxuICAvLyBBIEdlbmVyYXRvciBzaG91bGQgYWx3YXlzIHJldHVybiBpdHNlbGYgYXMgdGhlIGl0ZXJhdG9yIG9iamVjdCB3aGVuIHRoZVxuICAvLyBAQGl0ZXJhdG9yIGZ1bmN0aW9uIGlzIGNhbGxlZCBvbiBpdC4gU29tZSBicm93c2VycycgaW1wbGVtZW50YXRpb25zIG9mIHRoZVxuICAvLyBpdGVyYXRvciBwcm90b3R5cGUgY2hhaW4gaW5jb3JyZWN0bHkgaW1wbGVtZW50IHRoaXMsIGNhdXNpbmcgdGhlIEdlbmVyYXRvclxuICAvLyBvYmplY3QgdG8gbm90IGJlIHJldHVybmVkIGZyb20gdGhpcyBjYWxsLiBUaGlzIGVuc3VyZXMgdGhhdCBkb2Vzbid0IGhhcHBlbi5cbiAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWdlbmVyYXRvci9pc3N1ZXMvMjc0IGZvciBtb3JlIGRldGFpbHMuXG4gIEdwW2l0ZXJhdG9yU3ltYm9sXSA9IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIEdwLnRvU3RyaW5nID0gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIFwiW29iamVjdCBHZW5lcmF0b3JdXCI7XG4gIH07XG5cbiAgZnVuY3Rpb24gcHVzaFRyeUVudHJ5KGxvY3MpIHtcbiAgICB2YXIgZW50cnkgPSB7IHRyeUxvYzogbG9jc1swXSB9O1xuXG4gICAgaWYgKDEgaW4gbG9jcykge1xuICAgICAgZW50cnkuY2F0Y2hMb2MgPSBsb2NzWzFdO1xuICAgIH1cblxuICAgIGlmICgyIGluIGxvY3MpIHtcbiAgICAgIGVudHJ5LmZpbmFsbHlMb2MgPSBsb2NzWzJdO1xuICAgICAgZW50cnkuYWZ0ZXJMb2MgPSBsb2NzWzNdO1xuICAgIH1cblxuICAgIHRoaXMudHJ5RW50cmllcy5wdXNoKGVudHJ5KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlc2V0VHJ5RW50cnkoZW50cnkpIHtcbiAgICB2YXIgcmVjb3JkID0gZW50cnkuY29tcGxldGlvbiB8fCB7fTtcbiAgICByZWNvcmQudHlwZSA9IFwibm9ybWFsXCI7XG4gICAgZGVsZXRlIHJlY29yZC5hcmc7XG4gICAgZW50cnkuY29tcGxldGlvbiA9IHJlY29yZDtcbiAgfVxuXG4gIGZ1bmN0aW9uIENvbnRleHQodHJ5TG9jc0xpc3QpIHtcbiAgICAvLyBUaGUgcm9vdCBlbnRyeSBvYmplY3QgKGVmZmVjdGl2ZWx5IGEgdHJ5IHN0YXRlbWVudCB3aXRob3V0IGEgY2F0Y2hcbiAgICAvLyBvciBhIGZpbmFsbHkgYmxvY2spIGdpdmVzIHVzIGEgcGxhY2UgdG8gc3RvcmUgdmFsdWVzIHRocm93biBmcm9tXG4gICAgLy8gbG9jYXRpb25zIHdoZXJlIHRoZXJlIGlzIG5vIGVuY2xvc2luZyB0cnkgc3RhdGVtZW50LlxuICAgIHRoaXMudHJ5RW50cmllcyA9IFt7IHRyeUxvYzogXCJyb290XCIgfV07XG4gICAgdHJ5TG9jc0xpc3QuZm9yRWFjaChwdXNoVHJ5RW50cnksIHRoaXMpO1xuICAgIHRoaXMucmVzZXQodHJ1ZSk7XG4gIH1cblxuICBleHBvcnRzLmtleXMgPSBmdW5jdGlvbihvYmplY3QpIHtcbiAgICB2YXIga2V5cyA9IFtdO1xuICAgIGZvciAodmFyIGtleSBpbiBvYmplY3QpIHtcbiAgICAgIGtleXMucHVzaChrZXkpO1xuICAgIH1cbiAgICBrZXlzLnJldmVyc2UoKTtcblxuICAgIC8vIFJhdGhlciB0aGFuIHJldHVybmluZyBhbiBvYmplY3Qgd2l0aCBhIG5leHQgbWV0aG9kLCB3ZSBrZWVwXG4gICAgLy8gdGhpbmdzIHNpbXBsZSBhbmQgcmV0dXJuIHRoZSBuZXh0IGZ1bmN0aW9uIGl0c2VsZi5cbiAgICByZXR1cm4gZnVuY3Rpb24gbmV4dCgpIHtcbiAgICAgIHdoaWxlIChrZXlzLmxlbmd0aCkge1xuICAgICAgICB2YXIga2V5ID0ga2V5cy5wb3AoKTtcbiAgICAgICAgaWYgKGtleSBpbiBvYmplY3QpIHtcbiAgICAgICAgICBuZXh0LnZhbHVlID0ga2V5O1xuICAgICAgICAgIG5leHQuZG9uZSA9IGZhbHNlO1xuICAgICAgICAgIHJldHVybiBuZXh0O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFRvIGF2b2lkIGNyZWF0aW5nIGFuIGFkZGl0aW9uYWwgb2JqZWN0LCB3ZSBqdXN0IGhhbmcgdGhlIC52YWx1ZVxuICAgICAgLy8gYW5kIC5kb25lIHByb3BlcnRpZXMgb2ZmIHRoZSBuZXh0IGZ1bmN0aW9uIG9iamVjdCBpdHNlbGYuIFRoaXNcbiAgICAgIC8vIGFsc28gZW5zdXJlcyB0aGF0IHRoZSBtaW5pZmllciB3aWxsIG5vdCBhbm9ueW1pemUgdGhlIGZ1bmN0aW9uLlxuICAgICAgbmV4dC5kb25lID0gdHJ1ZTtcbiAgICAgIHJldHVybiBuZXh0O1xuICAgIH07XG4gIH07XG5cbiAgZnVuY3Rpb24gdmFsdWVzKGl0ZXJhYmxlKSB7XG4gICAgaWYgKGl0ZXJhYmxlKSB7XG4gICAgICB2YXIgaXRlcmF0b3JNZXRob2QgPSBpdGVyYWJsZVtpdGVyYXRvclN5bWJvbF07XG4gICAgICBpZiAoaXRlcmF0b3JNZXRob2QpIHtcbiAgICAgICAgcmV0dXJuIGl0ZXJhdG9yTWV0aG9kLmNhbGwoaXRlcmFibGUpO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIGl0ZXJhYmxlLm5leHQgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICByZXR1cm4gaXRlcmFibGU7XG4gICAgICB9XG5cbiAgICAgIGlmICghaXNOYU4oaXRlcmFibGUubGVuZ3RoKSkge1xuICAgICAgICB2YXIgaSA9IC0xLCBuZXh0ID0gZnVuY3Rpb24gbmV4dCgpIHtcbiAgICAgICAgICB3aGlsZSAoKytpIDwgaXRlcmFibGUubGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAoaGFzT3duLmNhbGwoaXRlcmFibGUsIGkpKSB7XG4gICAgICAgICAgICAgIG5leHQudmFsdWUgPSBpdGVyYWJsZVtpXTtcbiAgICAgICAgICAgICAgbmV4dC5kb25lID0gZmFsc2U7XG4gICAgICAgICAgICAgIHJldHVybiBuZXh0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIG5leHQudmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgbmV4dC5kb25lID0gdHJ1ZTtcblxuICAgICAgICAgIHJldHVybiBuZXh0O1xuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBuZXh0Lm5leHQgPSBuZXh0O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJldHVybiBhbiBpdGVyYXRvciB3aXRoIG5vIHZhbHVlcy5cbiAgICByZXR1cm4geyBuZXh0OiBkb25lUmVzdWx0IH07XG4gIH1cbiAgZXhwb3J0cy52YWx1ZXMgPSB2YWx1ZXM7XG5cbiAgZnVuY3Rpb24gZG9uZVJlc3VsdCgpIHtcbiAgICByZXR1cm4geyB2YWx1ZTogdW5kZWZpbmVkLCBkb25lOiB0cnVlIH07XG4gIH1cblxuICBDb250ZXh0LnByb3RvdHlwZSA9IHtcbiAgICBjb25zdHJ1Y3RvcjogQ29udGV4dCxcblxuICAgIHJlc2V0OiBmdW5jdGlvbihza2lwVGVtcFJlc2V0KSB7XG4gICAgICB0aGlzLnByZXYgPSAwO1xuICAgICAgdGhpcy5uZXh0ID0gMDtcbiAgICAgIC8vIFJlc2V0dGluZyBjb250ZXh0Ll9zZW50IGZvciBsZWdhY3kgc3VwcG9ydCBvZiBCYWJlbCdzXG4gICAgICAvLyBmdW5jdGlvbi5zZW50IGltcGxlbWVudGF0aW9uLlxuICAgICAgdGhpcy5zZW50ID0gdGhpcy5fc2VudCA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuZG9uZSA9IGZhbHNlO1xuICAgICAgdGhpcy5kZWxlZ2F0ZSA9IG51bGw7XG5cbiAgICAgIHRoaXMubWV0aG9kID0gXCJuZXh0XCI7XG4gICAgICB0aGlzLmFyZyA9IHVuZGVmaW5lZDtcblxuICAgICAgdGhpcy50cnlFbnRyaWVzLmZvckVhY2gocmVzZXRUcnlFbnRyeSk7XG5cbiAgICAgIGlmICghc2tpcFRlbXBSZXNldCkge1xuICAgICAgICBmb3IgKHZhciBuYW1lIGluIHRoaXMpIHtcbiAgICAgICAgICAvLyBOb3Qgc3VyZSBhYm91dCB0aGUgb3B0aW1hbCBvcmRlciBvZiB0aGVzZSBjb25kaXRpb25zOlxuICAgICAgICAgIGlmIChuYW1lLmNoYXJBdCgwKSA9PT0gXCJ0XCIgJiZcbiAgICAgICAgICAgICAgaGFzT3duLmNhbGwodGhpcywgbmFtZSkgJiZcbiAgICAgICAgICAgICAgIWlzTmFOKCtuYW1lLnNsaWNlKDEpKSkge1xuICAgICAgICAgICAgdGhpc1tuYW1lXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuXG4gICAgc3RvcDogZnVuY3Rpb24oKSB7XG4gICAgICB0aGlzLmRvbmUgPSB0cnVlO1xuXG4gICAgICB2YXIgcm9vdEVudHJ5ID0gdGhpcy50cnlFbnRyaWVzWzBdO1xuICAgICAgdmFyIHJvb3RSZWNvcmQgPSByb290RW50cnkuY29tcGxldGlvbjtcbiAgICAgIGlmIChyb290UmVjb3JkLnR5cGUgPT09IFwidGhyb3dcIikge1xuICAgICAgICB0aHJvdyByb290UmVjb3JkLmFyZztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMucnZhbDtcbiAgICB9LFxuXG4gICAgZGlzcGF0Y2hFeGNlcHRpb246IGZ1bmN0aW9uKGV4Y2VwdGlvbikge1xuICAgICAgaWYgKHRoaXMuZG9uZSkge1xuICAgICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgICB9XG5cbiAgICAgIHZhciBjb250ZXh0ID0gdGhpcztcbiAgICAgIGZ1bmN0aW9uIGhhbmRsZShsb2MsIGNhdWdodCkge1xuICAgICAgICByZWNvcmQudHlwZSA9IFwidGhyb3dcIjtcbiAgICAgICAgcmVjb3JkLmFyZyA9IGV4Y2VwdGlvbjtcbiAgICAgICAgY29udGV4dC5uZXh0ID0gbG9jO1xuXG4gICAgICAgIGlmIChjYXVnaHQpIHtcbiAgICAgICAgICAvLyBJZiB0aGUgZGlzcGF0Y2hlZCBleGNlcHRpb24gd2FzIGNhdWdodCBieSBhIGNhdGNoIGJsb2NrLFxuICAgICAgICAgIC8vIHRoZW4gbGV0IHRoYXQgY2F0Y2ggYmxvY2sgaGFuZGxlIHRoZSBleGNlcHRpb24gbm9ybWFsbHkuXG4gICAgICAgICAgY29udGV4dC5tZXRob2QgPSBcIm5leHRcIjtcbiAgICAgICAgICBjb250ZXh0LmFyZyA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAhISBjYXVnaHQ7XG4gICAgICB9XG5cbiAgICAgIGZvciAodmFyIGkgPSB0aGlzLnRyeUVudHJpZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyAtLWkpIHtcbiAgICAgICAgdmFyIGVudHJ5ID0gdGhpcy50cnlFbnRyaWVzW2ldO1xuICAgICAgICB2YXIgcmVjb3JkID0gZW50cnkuY29tcGxldGlvbjtcblxuICAgICAgICBpZiAoZW50cnkudHJ5TG9jID09PSBcInJvb3RcIikge1xuICAgICAgICAgIC8vIEV4Y2VwdGlvbiB0aHJvd24gb3V0c2lkZSBvZiBhbnkgdHJ5IGJsb2NrIHRoYXQgY291bGQgaGFuZGxlXG4gICAgICAgICAgLy8gaXQsIHNvIHNldCB0aGUgY29tcGxldGlvbiB2YWx1ZSBvZiB0aGUgZW50aXJlIGZ1bmN0aW9uIHRvXG4gICAgICAgICAgLy8gdGhyb3cgdGhlIGV4Y2VwdGlvbi5cbiAgICAgICAgICByZXR1cm4gaGFuZGxlKFwiZW5kXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGVudHJ5LnRyeUxvYyA8PSB0aGlzLnByZXYpIHtcbiAgICAgICAgICB2YXIgaGFzQ2F0Y2ggPSBoYXNPd24uY2FsbChlbnRyeSwgXCJjYXRjaExvY1wiKTtcbiAgICAgICAgICB2YXIgaGFzRmluYWxseSA9IGhhc093bi5jYWxsKGVudHJ5LCBcImZpbmFsbHlMb2NcIik7XG5cbiAgICAgICAgICBpZiAoaGFzQ2F0Y2ggJiYgaGFzRmluYWxseSkge1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGVudHJ5LmNhdGNoTG9jKSB7XG4gICAgICAgICAgICAgIHJldHVybiBoYW5kbGUoZW50cnkuY2F0Y2hMb2MsIHRydWUpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnByZXYgPCBlbnRyeS5maW5hbGx5TG9jKSB7XG4gICAgICAgICAgICAgIHJldHVybiBoYW5kbGUoZW50cnkuZmluYWxseUxvYyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICB9IGVsc2UgaWYgKGhhc0NhdGNoKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5wcmV2IDwgZW50cnkuY2F0Y2hMb2MpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGhhbmRsZShlbnRyeS5jYXRjaExvYywgdHJ1ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICB9IGVsc2UgaWYgKGhhc0ZpbmFsbHkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnByZXYgPCBlbnRyeS5maW5hbGx5TG9jKSB7XG4gICAgICAgICAgICAgIHJldHVybiBoYW5kbGUoZW50cnkuZmluYWxseUxvYyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwidHJ5IHN0YXRlbWVudCB3aXRob3V0IGNhdGNoIG9yIGZpbmFsbHlcIik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcblxuICAgIGFicnVwdDogZnVuY3Rpb24odHlwZSwgYXJnKSB7XG4gICAgICBmb3IgKHZhciBpID0gdGhpcy50cnlFbnRyaWVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgLS1pKSB7XG4gICAgICAgIHZhciBlbnRyeSA9IHRoaXMudHJ5RW50cmllc1tpXTtcbiAgICAgICAgaWYgKGVudHJ5LnRyeUxvYyA8PSB0aGlzLnByZXYgJiZcbiAgICAgICAgICAgIGhhc093bi5jYWxsKGVudHJ5LCBcImZpbmFsbHlMb2NcIikgJiZcbiAgICAgICAgICAgIHRoaXMucHJldiA8IGVudHJ5LmZpbmFsbHlMb2MpIHtcbiAgICAgICAgICB2YXIgZmluYWxseUVudHJ5ID0gZW50cnk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGZpbmFsbHlFbnRyeSAmJlxuICAgICAgICAgICh0eXBlID09PSBcImJyZWFrXCIgfHxcbiAgICAgICAgICAgdHlwZSA9PT0gXCJjb250aW51ZVwiKSAmJlxuICAgICAgICAgIGZpbmFsbHlFbnRyeS50cnlMb2MgPD0gYXJnICYmXG4gICAgICAgICAgYXJnIDw9IGZpbmFsbHlFbnRyeS5maW5hbGx5TG9jKSB7XG4gICAgICAgIC8vIElnbm9yZSB0aGUgZmluYWxseSBlbnRyeSBpZiBjb250cm9sIGlzIG5vdCBqdW1waW5nIHRvIGFcbiAgICAgICAgLy8gbG9jYXRpb24gb3V0c2lkZSB0aGUgdHJ5L2NhdGNoIGJsb2NrLlxuICAgICAgICBmaW5hbGx5RW50cnkgPSBudWxsO1xuICAgICAgfVxuXG4gICAgICB2YXIgcmVjb3JkID0gZmluYWxseUVudHJ5ID8gZmluYWxseUVudHJ5LmNvbXBsZXRpb24gOiB7fTtcbiAgICAgIHJlY29yZC50eXBlID0gdHlwZTtcbiAgICAgIHJlY29yZC5hcmcgPSBhcmc7XG5cbiAgICAgIGlmIChmaW5hbGx5RW50cnkpIHtcbiAgICAgICAgdGhpcy5tZXRob2QgPSBcIm5leHRcIjtcbiAgICAgICAgdGhpcy5uZXh0ID0gZmluYWxseUVudHJ5LmZpbmFsbHlMb2M7XG4gICAgICAgIHJldHVybiBDb250aW51ZVNlbnRpbmVsO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5jb21wbGV0ZShyZWNvcmQpO1xuICAgIH0sXG5cbiAgICBjb21wbGV0ZTogZnVuY3Rpb24ocmVjb3JkLCBhZnRlckxvYykge1xuICAgICAgaWYgKHJlY29yZC50eXBlID09PSBcInRocm93XCIpIHtcbiAgICAgICAgdGhyb3cgcmVjb3JkLmFyZztcbiAgICAgIH1cblxuICAgICAgaWYgKHJlY29yZC50eXBlID09PSBcImJyZWFrXCIgfHxcbiAgICAgICAgICByZWNvcmQudHlwZSA9PT0gXCJjb250aW51ZVwiKSB7XG4gICAgICAgIHRoaXMubmV4dCA9IHJlY29yZC5hcmc7XG4gICAgICB9IGVsc2UgaWYgKHJlY29yZC50eXBlID09PSBcInJldHVyblwiKSB7XG4gICAgICAgIHRoaXMucnZhbCA9IHRoaXMuYXJnID0gcmVjb3JkLmFyZztcbiAgICAgICAgdGhpcy5tZXRob2QgPSBcInJldHVyblwiO1xuICAgICAgICB0aGlzLm5leHQgPSBcImVuZFwiO1xuICAgICAgfSBlbHNlIGlmIChyZWNvcmQudHlwZSA9PT0gXCJub3JtYWxcIiAmJiBhZnRlckxvYykge1xuICAgICAgICB0aGlzLm5leHQgPSBhZnRlckxvYztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gICAgfSxcblxuICAgIGZpbmlzaDogZnVuY3Rpb24oZmluYWxseUxvYykge1xuICAgICAgZm9yICh2YXIgaSA9IHRoaXMudHJ5RW50cmllcy5sZW5ndGggLSAxOyBpID49IDA7IC0taSkge1xuICAgICAgICB2YXIgZW50cnkgPSB0aGlzLnRyeUVudHJpZXNbaV07XG4gICAgICAgIGlmIChlbnRyeS5maW5hbGx5TG9jID09PSBmaW5hbGx5TG9jKSB7XG4gICAgICAgICAgdGhpcy5jb21wbGV0ZShlbnRyeS5jb21wbGV0aW9uLCBlbnRyeS5hZnRlckxvYyk7XG4gICAgICAgICAgcmVzZXRUcnlFbnRyeShlbnRyeSk7XG4gICAgICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuXG4gICAgXCJjYXRjaFwiOiBmdW5jdGlvbih0cnlMb2MpIHtcbiAgICAgIGZvciAodmFyIGkgPSB0aGlzLnRyeUVudHJpZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyAtLWkpIHtcbiAgICAgICAgdmFyIGVudHJ5ID0gdGhpcy50cnlFbnRyaWVzW2ldO1xuICAgICAgICBpZiAoZW50cnkudHJ5TG9jID09PSB0cnlMb2MpIHtcbiAgICAgICAgICB2YXIgcmVjb3JkID0gZW50cnkuY29tcGxldGlvbjtcbiAgICAgICAgICBpZiAocmVjb3JkLnR5cGUgPT09IFwidGhyb3dcIikge1xuICAgICAgICAgICAgdmFyIHRocm93biA9IHJlY29yZC5hcmc7XG4gICAgICAgICAgICByZXNldFRyeUVudHJ5KGVudHJ5KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRocm93bjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBUaGUgY29udGV4dC5jYXRjaCBtZXRob2QgbXVzdCBvbmx5IGJlIGNhbGxlZCB3aXRoIGEgbG9jYXRpb25cbiAgICAgIC8vIGFyZ3VtZW50IHRoYXQgY29ycmVzcG9uZHMgdG8gYSBrbm93biBjYXRjaCBibG9jay5cbiAgICAgIHRocm93IG5ldyBFcnJvcihcImlsbGVnYWwgY2F0Y2ggYXR0ZW1wdFwiKTtcbiAgICB9LFxuXG4gICAgZGVsZWdhdGVZaWVsZDogZnVuY3Rpb24oaXRlcmFibGUsIHJlc3VsdE5hbWUsIG5leHRMb2MpIHtcbiAgICAgIHRoaXMuZGVsZWdhdGUgPSB7XG4gICAgICAgIGl0ZXJhdG9yOiB2YWx1ZXMoaXRlcmFibGUpLFxuICAgICAgICByZXN1bHROYW1lOiByZXN1bHROYW1lLFxuICAgICAgICBuZXh0TG9jOiBuZXh0TG9jXG4gICAgICB9O1xuXG4gICAgICBpZiAodGhpcy5tZXRob2QgPT09IFwibmV4dFwiKSB7XG4gICAgICAgIC8vIERlbGliZXJhdGVseSBmb3JnZXQgdGhlIGxhc3Qgc2VudCB2YWx1ZSBzbyB0aGF0IHdlIGRvbid0XG4gICAgICAgIC8vIGFjY2lkZW50YWxseSBwYXNzIGl0IG9uIHRvIHRoZSBkZWxlZ2F0ZS5cbiAgICAgICAgdGhpcy5hcmcgPSB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBDb250aW51ZVNlbnRpbmVsO1xuICAgIH1cbiAgfTtcblxuICAvLyBSZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhpcyBzY3JpcHQgaXMgZXhlY3V0aW5nIGFzIGEgQ29tbW9uSlMgbW9kdWxlXG4gIC8vIG9yIG5vdCwgcmV0dXJuIHRoZSBydW50aW1lIG9iamVjdCBzbyB0aGF0IHdlIGNhbiBkZWNsYXJlIHRoZSB2YXJpYWJsZVxuICAvLyByZWdlbmVyYXRvclJ1bnRpbWUgaW4gdGhlIG91dGVyIHNjb3BlLCB3aGljaCBhbGxvd3MgdGhpcyBtb2R1bGUgdG8gYmVcbiAgLy8gaW5qZWN0ZWQgZWFzaWx5IGJ5IGBiaW4vcmVnZW5lcmF0b3IgLS1pbmNsdWRlLXJ1bnRpbWUgc2NyaXB0LmpzYC5cbiAgcmV0dXJuIGV4cG9ydHM7XG5cbn0oXG4gIC8vIElmIHRoaXMgc2NyaXB0IGlzIGV4ZWN1dGluZyBhcyBhIENvbW1vbkpTIG1vZHVsZSwgdXNlIG1vZHVsZS5leHBvcnRzXG4gIC8vIGFzIHRoZSByZWdlbmVyYXRvclJ1bnRpbWUgbmFtZXNwYWNlLiBPdGhlcndpc2UgY3JlYXRlIGEgbmV3IGVtcHR5XG4gIC8vIG9iamVjdC4gRWl0aGVyIHdheSwgdGhlIHJlc3VsdGluZyBvYmplY3Qgd2lsbCBiZSB1c2VkIHRvIGluaXRpYWxpemVcbiAgLy8gdGhlIHJlZ2VuZXJhdG9yUnVudGltZSB2YXJpYWJsZSBhdCB0aGUgdG9wIG9mIHRoaXMgZmlsZS5cbiAgdHlwZW9mIG1vZHVsZSA9PT0gXCJvYmplY3RcIiA/IG1vZHVsZS5leHBvcnRzIDoge31cbikpO1xuXG50cnkge1xuICByZWdlbmVyYXRvclJ1bnRpbWUgPSBydW50aW1lO1xufSBjYXRjaCAoYWNjaWRlbnRhbFN0cmljdE1vZGUpIHtcbiAgLy8gVGhpcyBtb2R1bGUgc2hvdWxkIG5vdCBiZSBydW5uaW5nIGluIHN0cmljdCBtb2RlLCBzbyB0aGUgYWJvdmVcbiAgLy8gYXNzaWdubWVudCBzaG91bGQgYWx3YXlzIHdvcmsgdW5sZXNzIHNvbWV0aGluZyBpcyBtaXNjb25maWd1cmVkLiBKdXN0XG4gIC8vIGluIGNhc2UgcnVudGltZS5qcyBhY2NpZGVudGFsbHkgcnVucyBpbiBzdHJpY3QgbW9kZSwgd2UgY2FuIGVzY2FwZVxuICAvLyBzdHJpY3QgbW9kZSB1c2luZyBhIGdsb2JhbCBGdW5jdGlvbiBjYWxsLiBUaGlzIGNvdWxkIGNvbmNlaXZhYmx5IGZhaWxcbiAgLy8gaWYgYSBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBmb3JiaWRzIHVzaW5nIEZ1bmN0aW9uLCBidXQgaW4gdGhhdCBjYXNlXG4gIC8vIHRoZSBwcm9wZXIgc29sdXRpb24gaXMgdG8gZml4IHRoZSBhY2NpZGVudGFsIHN0cmljdCBtb2RlIHByb2JsZW0uIElmXG4gIC8vIHlvdSd2ZSBtaXNjb25maWd1cmVkIHlvdXIgYnVuZGxlciB0byBmb3JjZSBzdHJpY3QgbW9kZSBhbmQgYXBwbGllZCBhXG4gIC8vIENTUCB0byBmb3JiaWQgRnVuY3Rpb24sIGFuZCB5b3UncmUgbm90IHdpbGxpbmcgdG8gZml4IGVpdGhlciBvZiB0aG9zZVxuICAvLyBwcm9ibGVtcywgcGxlYXNlIGRldGFpbCB5b3VyIHVuaXF1ZSBwcmVkaWNhbWVudCBpbiBhIEdpdEh1YiBpc3N1ZS5cbiAgRnVuY3Rpb24oXCJyXCIsIFwicmVnZW5lcmF0b3JSdW50aW1lID0gclwiKShydW50aW1lKTtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/regenerator-runtime/runtime.js\n"); + +/***/ }), + +/***/ "?506d": +/*!******************************************!*\ + !*** ./utils/resolve-rewrites (ignored) ***! + \******************************************/ +/***/ (function() { + +/* (ignored) */ + +/***/ }) + +}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); } +/******/ var __webpack_exports__ = (__webpack_exec__("./node_modules/next/dist/client/dev/amp-dev.js")); +/******/ _N_E = __webpack_exports__; +/******/ } +]); \ No newline at end of file diff --git a/.next/static/chunks/fallback/main.js b/.next/static/chunks/fallback/main.js new file mode 100644 index 0000000..27d6de4 --- /dev/null +++ b/.next/static/chunks/fallback/main.js @@ -0,0 +1,1434 @@ +/* + * 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/). + */ +(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["main"],{ + +/***/ "./node_modules/@babel/runtime/helpers/arrayLikeToArray.js": +/*!*****************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/arrayLikeToArray.js ***! + \*****************************************************************/ +/***/ (function(module) { + +eval("function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hcnJheUxpa2VUb0FycmF5LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7O0FBRUEseUNBQXlDLFNBQVM7QUFDbEQ7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLG1CQUFtQix5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvYXJyYXlMaWtlVG9BcnJheS5qcz9jZjA5Il0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9hcnJheUxpa2VUb0FycmF5KGFyciwgbGVuKSB7XG4gIGlmIChsZW4gPT0gbnVsbCB8fCBsZW4gPiBhcnIubGVuZ3RoKSBsZW4gPSBhcnIubGVuZ3RoO1xuXG4gIGZvciAodmFyIGkgPSAwLCBhcnIyID0gbmV3IEFycmF5KGxlbik7IGkgPCBsZW47IGkrKykge1xuICAgIGFycjJbaV0gPSBhcnJbaV07XG4gIH1cblxuICByZXR1cm4gYXJyMjtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfYXJyYXlMaWtlVG9BcnJheTtcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/arrayLikeToArray.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/arrayWithHoles.js": +/*!***************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/arrayWithHoles.js ***! + \***************************************************************/ +/***/ (function(module) { + +eval("function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hcnJheVdpdGhIb2xlcy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSx5QkFBeUIsbUJBQW1CLHlCQUF5QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hcnJheVdpdGhIb2xlcy5qcz9hNTI1Il0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9hcnJheVdpdGhIb2xlcyhhcnIpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoYXJyKSkgcmV0dXJuIGFycjtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfYXJyYXlXaXRoSG9sZXM7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/arrayWithHoles.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js": +/*!******************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js ***! + \******************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ \"./node_modules/@babel/runtime/helpers/arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hcnJheVdpdGhvdXRIb2xlcy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQSx1QkFBdUIsbUJBQU8sQ0FBQyx3RkFBdUI7O0FBRXREO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHlCQUF5QixtQkFBbUIseUJBQXlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2FycmF5V2l0aG91dEhvbGVzLmpzP2Y5OTgiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGFycmF5TGlrZVRvQXJyYXkgPSByZXF1aXJlKFwiLi9hcnJheUxpa2VUb0FycmF5LmpzXCIpO1xuXG5mdW5jdGlvbiBfYXJyYXlXaXRob3V0SG9sZXMoYXJyKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGFycikpIHJldHVybiBhcnJheUxpa2VUb0FycmF5KGFycik7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX2FycmF5V2l0aG91dEhvbGVzO1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/assertThisInitialized.js": +/*!**********************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/assertThisInitialized.js ***! + \**********************************************************************/ +/***/ (function(module) { + +eval("function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQuanMuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLHlCQUF5QixtQkFBbUIseUJBQXlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2Fzc2VydFRoaXNJbml0aWFsaXplZC5qcz8yMDE1Il0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikge1xuICBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7XG4gICAgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpO1xuICB9XG5cbiAgcmV0dXJuIHNlbGY7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX2Fzc2VydFRoaXNJbml0aWFsaXplZDtcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/assertThisInitialized.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/asyncToGenerator.js": +/*!*****************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/asyncToGenerator.js ***! + \*****************************************************************/ +/***/ (function(module) { + +eval("function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hc3luY1RvR2VuZXJhdG9yLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLG1CQUFtQix5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvYXN5bmNUb0dlbmVyYXRvci5qcz9kMzEyIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGFzeW5jR2VuZXJhdG9yU3RlcChnZW4sIHJlc29sdmUsIHJlamVjdCwgX25leHQsIF90aHJvdywga2V5LCBhcmcpIHtcbiAgdHJ5IHtcbiAgICB2YXIgaW5mbyA9IGdlbltrZXldKGFyZyk7XG4gICAgdmFyIHZhbHVlID0gaW5mby52YWx1ZTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZWplY3QoZXJyb3IpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChpbmZvLmRvbmUpIHtcbiAgICByZXNvbHZlKHZhbHVlKTtcbiAgfSBlbHNlIHtcbiAgICBQcm9taXNlLnJlc29sdmUodmFsdWUpLnRoZW4oX25leHQsIF90aHJvdyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gX2FzeW5jVG9HZW5lcmF0b3IoZm4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICAgIGFyZ3MgPSBhcmd1bWVudHM7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgIHZhciBnZW4gPSBmbi5hcHBseShzZWxmLCBhcmdzKTtcblxuICAgICAgZnVuY3Rpb24gX25leHQodmFsdWUpIHtcbiAgICAgICAgYXN5bmNHZW5lcmF0b3JTdGVwKGdlbiwgcmVzb2x2ZSwgcmVqZWN0LCBfbmV4dCwgX3Rocm93LCBcIm5leHRcIiwgdmFsdWUpO1xuICAgICAgfVxuXG4gICAgICBmdW5jdGlvbiBfdGhyb3coZXJyKSB7XG4gICAgICAgIGFzeW5jR2VuZXJhdG9yU3RlcChnZW4sIHJlc29sdmUsIHJlamVjdCwgX25leHQsIF90aHJvdywgXCJ0aHJvd1wiLCBlcnIpO1xuICAgICAgfVxuXG4gICAgICBfbmV4dCh1bmRlZmluZWQpO1xuICAgIH0pO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9hc3luY1RvR2VuZXJhdG9yO1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/asyncToGenerator.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/classCallCheck.js": +/*!***************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/classCallCheck.js ***! + \***************************************************************/ +/***/ (function(module) { + +eval("function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9jbGFzc0NhbGxDaGVjay5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLG1CQUFtQix5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvY2xhc3NDYWxsQ2hlY2suanM/YjdhZSJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7XG4gIGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9jbGFzc0NhbGxDaGVjaztcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/classCallCheck.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/construct.js": +/*!**********************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/construct.js ***! + \**********************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ \"./node_modules/@babel/runtime/helpers/setPrototypeOf.js\");\n\nvar isNativeReflectConstruct = __webpack_require__(/*! ./isNativeReflectConstruct.js */ \"./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js\");\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct;\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9jb25zdHJ1Y3QuanMuanMiLCJtYXBwaW5ncyI6IkFBQUEscUJBQXFCLG1CQUFPLENBQUMsb0ZBQXFCOztBQUVsRCwrQkFBK0IsbUJBQU8sQ0FBQyx3R0FBK0I7O0FBRXRFO0FBQ0E7QUFDQTtBQUNBLElBQUkseUJBQXlCLG1CQUFtQix5QkFBeUI7QUFDekUsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsSUFBSSx5QkFBeUIsbUJBQW1CLHlCQUF5QjtBQUN6RTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLG1CQUFtQix5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvY29uc3RydWN0LmpzPzI5MWUiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIHNldFByb3RvdHlwZU9mID0gcmVxdWlyZShcIi4vc2V0UHJvdG90eXBlT2YuanNcIik7XG5cbnZhciBpc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSByZXF1aXJlKFwiLi9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QuanNcIik7XG5cbmZ1bmN0aW9uIF9jb25zdHJ1Y3QoUGFyZW50LCBhcmdzLCBDbGFzcykge1xuICBpZiAoaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkpIHtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IF9jb25zdHJ1Y3QgPSBSZWZsZWN0LmNvbnN0cnVjdDtcbiAgICBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG4gIH0gZWxzZSB7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBfY29uc3RydWN0ID0gZnVuY3Rpb24gX2NvbnN0cnVjdChQYXJlbnQsIGFyZ3MsIENsYXNzKSB7XG4gICAgICB2YXIgYSA9IFtudWxsXTtcbiAgICAgIGEucHVzaC5hcHBseShhLCBhcmdzKTtcbiAgICAgIHZhciBDb25zdHJ1Y3RvciA9IEZ1bmN0aW9uLmJpbmQuYXBwbHkoUGFyZW50LCBhKTtcbiAgICAgIHZhciBpbnN0YW5jZSA9IG5ldyBDb25zdHJ1Y3RvcigpO1xuICAgICAgaWYgKENsYXNzKSBzZXRQcm90b3R5cGVPZihpbnN0YW5jZSwgQ2xhc3MucHJvdG90eXBlKTtcbiAgICAgIHJldHVybiBpbnN0YW5jZTtcbiAgICB9O1xuXG4gICAgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIF9jb25zdHJ1Y3QuYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfY29uc3RydWN0O1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/construct.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/createClass.js": +/*!************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/createClass.js ***! + \************************************************************/ +/***/ (function(module) { + +eval("function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9jcmVhdGVDbGFzcy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBLGtCQUFrQixrQkFBa0I7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHlCQUF5QixtQkFBbUIseUJBQXlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2NyZWF0ZUNsYXNzLmpzPzU0NmIiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTtcbiAgICBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7XG4gICAgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlO1xuICAgIGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpO1xuICB9XG59XG5cbmZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHtcbiAgaWYgKHByb3RvUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7XG4gIGlmIChzdGF0aWNQcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTtcbiAgcmV0dXJuIENvbnN0cnVjdG9yO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9jcmVhdGVDbGFzcztcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/createClass.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/defineProperty.js": +/*!***************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/defineProperty.js ***! + \***************************************************************/ +/***/ (function(module) { + +eval("function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9kZWZpbmVQcm9wZXJ0eS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxJQUFJO0FBQ0o7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLG1CQUFtQix5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZGVmaW5lUHJvcGVydHkuanM/ZDk0NiJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHZhbHVlKSB7XG4gIGlmIChrZXkgaW4gb2JqKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7XG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgd3JpdGFibGU6IHRydWVcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBvYmpba2V5XSA9IHZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIG9iajtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfZGVmaW5lUHJvcGVydHk7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/defineProperty.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js": +/*!***************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/getPrototypeOf.js ***! + \***************************************************************/ +/***/ (function(module) { + +eval("function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9nZXRQcm90b3R5cGVPZi5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUseUJBQXlCLG1CQUFtQix5QkFBeUI7QUFDdkU7QUFDQTs7QUFFQTtBQUNBLHlCQUF5QixtQkFBbUIseUJBQXlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2dldFByb3RvdHlwZU9mLmpzPzkwMDMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2Yobykge1xuICAgIHJldHVybiBvLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2Yobyk7XG4gIH07XG4gIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbiAgcmV0dXJuIF9nZXRQcm90b3R5cGVPZihvKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfZ2V0UHJvdG90eXBlT2Y7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/getPrototypeOf.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/inherits.js": +/*!*********************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/inherits.js ***! + \*********************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ \"./node_modules/@babel/runtime/helpers/setPrototypeOf.js\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbmhlcml0cy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQSxxQkFBcUIsbUJBQU8sQ0FBQyxvRkFBcUI7O0FBRWxEO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLG1CQUFtQix5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW5oZXJpdHMuanM/ZjM1YiJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgc2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKFwiLi9zZXRQcm90b3R5cGVPZi5qc1wiKTtcblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7XG4gIGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7XG4gIH1cblxuICBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHtcbiAgICBjb25zdHJ1Y3Rvcjoge1xuICAgICAgdmFsdWU6IHN1YkNsYXNzLFxuICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9XG4gIH0pO1xuICBpZiAoc3VwZXJDbGFzcykgc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9pbmhlcml0cztcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/inherits.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/isNativeFunction.js": +/*!*****************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/isNativeFunction.js ***! + \*****************************************************************/ +/***/ (function(module) { + +eval("function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nmodule.exports = _isNativeFunction;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pc05hdGl2ZUZ1bmN0aW9uLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHlCQUF5QixtQkFBbUIseUJBQXlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2lzTmF0aXZlRnVuY3Rpb24uanM/OGM4NSJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfaXNOYXRpdmVGdW5jdGlvbihmbikge1xuICByZXR1cm4gRnVuY3Rpb24udG9TdHJpbmcuY2FsbChmbikuaW5kZXhPZihcIltuYXRpdmUgY29kZV1cIikgIT09IC0xO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9pc05hdGl2ZUZ1bmN0aW9uO1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/isNativeFunction.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js": +/*!*************************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js ***! + \*************************************************************************/ +/***/ (function(module) { + +eval("function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nmodule.exports = _isNativeReflectConstruct;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QuanMuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxnRkFBZ0Y7QUFDaEY7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLG1CQUFtQix5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0LmpzPzFkNTQiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHtcbiAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiIHx8ICFSZWZsZWN0LmNvbnN0cnVjdCkgcmV0dXJuIGZhbHNlO1xuICBpZiAoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSkgcmV0dXJuIGZhbHNlO1xuICBpZiAodHlwZW9mIFByb3h5ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB0cnVlO1xuXG4gIHRyeSB7XG4gICAgQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sIFtdLCBmdW5jdGlvbiAoKSB7fSkpO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdDtcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/iterableToArray.js": +/*!****************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/iterableToArray.js ***! + \****************************************************************/ +/***/ (function(module) { + +eval("function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pdGVyYWJsZVRvQXJyYXkuanMuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLG1CQUFtQix5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaXRlcmFibGVUb0FycmF5LmpzPzgyNTEiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2l0ZXJhYmxlVG9BcnJheShpdGVyKSB7XG4gIGlmICh0eXBlb2YgU3ltYm9sICE9PSBcInVuZGVmaW5lZFwiICYmIGl0ZXJbU3ltYm9sLml0ZXJhdG9yXSAhPSBudWxsIHx8IGl0ZXJbXCJAQGl0ZXJhdG9yXCJdICE9IG51bGwpIHJldHVybiBBcnJheS5mcm9tKGl0ZXIpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9pdGVyYWJsZVRvQXJyYXk7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/iterableToArray.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js ***! + \*********************************************************************/ +/***/ (function(module) { + +eval("function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pdGVyYWJsZVRvQXJyYXlMaW1pdC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0EsNEJBQTRCLCtCQUErQjtBQUMzRDs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLHlCQUF5QixtQkFBbUIseUJBQXlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2l0ZXJhYmxlVG9BcnJheUxpbWl0LmpzP2FmZTciXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2l0ZXJhYmxlVG9BcnJheUxpbWl0KGFyciwgaSkge1xuICB2YXIgX2kgPSBhcnIgPT0gbnVsbCA/IG51bGwgOiB0eXBlb2YgU3ltYm9sICE9PSBcInVuZGVmaW5lZFwiICYmIGFycltTeW1ib2wuaXRlcmF0b3JdIHx8IGFycltcIkBAaXRlcmF0b3JcIl07XG5cbiAgaWYgKF9pID09IG51bGwpIHJldHVybjtcbiAgdmFyIF9hcnIgPSBbXTtcbiAgdmFyIF9uID0gdHJ1ZTtcbiAgdmFyIF9kID0gZmFsc2U7XG5cbiAgdmFyIF9zLCBfZTtcblxuICB0cnkge1xuICAgIGZvciAoX2kgPSBfaS5jYWxsKGFycik7ICEoX24gPSAoX3MgPSBfaS5uZXh0KCkpLmRvbmUpOyBfbiA9IHRydWUpIHtcbiAgICAgIF9hcnIucHVzaChfcy52YWx1ZSk7XG5cbiAgICAgIGlmIChpICYmIF9hcnIubGVuZ3RoID09PSBpKSBicmVhaztcbiAgICB9XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIF9kID0gdHJ1ZTtcbiAgICBfZSA9IGVycjtcbiAgfSBmaW5hbGx5IHtcbiAgICB0cnkge1xuICAgICAgaWYgKCFfbiAmJiBfaVtcInJldHVyblwiXSAhPSBudWxsKSBfaVtcInJldHVyblwiXSgpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAoX2QpIHRocm93IF9lO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBfYXJyO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9pdGVyYWJsZVRvQXJyYXlMaW1pdDtcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/nonIterableRest.js": +/*!****************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/nonIterableRest.js ***! + \****************************************************************/ +/***/ (function(module) { + +eval("function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableRest;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9ub25JdGVyYWJsZVJlc3QuanMuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLG1CQUFtQix5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvbm9uSXRlcmFibGVSZXN0LmpzPzRjMjAiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX25vbkl0ZXJhYmxlUmVzdCgpIHtcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfbm9uSXRlcmFibGVSZXN0O1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/nonIterableRest.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/nonIterableSpread.js": +/*!******************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/nonIterableSpread.js ***! + \******************************************************************/ +/***/ (function(module) { + +eval("function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9ub25JdGVyYWJsZVNwcmVhZC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSx5QkFBeUIsbUJBQW1CLHlCQUF5QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9ub25JdGVyYWJsZVNwcmVhZC5qcz9kMmZhIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9ub25JdGVyYWJsZVNwcmVhZCgpIHtcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIik7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX25vbkl0ZXJhYmxlU3ByZWFkO1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/nonIterableSpread.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js": +/*!**************************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js ***! + \**************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var _typeof = (__webpack_require__(/*! @babel/runtime/helpers/typeof */ \"./node_modules/@babel/runtime/helpers/typeof.js\")[\"default\"]);\n\nvar assertThisInitialized = __webpack_require__(/*! ./assertThisInitialized.js */ \"./node_modules/@babel/runtime/helpers/assertThisInitialized.js\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0hBQW1EOztBQUVqRSw0QkFBNEIsbUJBQU8sQ0FBQyxrR0FBNEI7O0FBRWhFO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSx5QkFBeUIsbUJBQW1CLHlCQUF5QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuLmpzPzBlYjkiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIF90eXBlb2YgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2ZcIilbXCJkZWZhdWx0XCJdO1xuXG52YXIgYXNzZXJ0VGhpc0luaXRpYWxpemVkID0gcmVxdWlyZShcIi4vYXNzZXJ0VGhpc0luaXRpYWxpemVkLmpzXCIpO1xuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7XG4gIGlmIChjYWxsICYmIChfdHlwZW9mKGNhbGwpID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpKSB7XG4gICAgcmV0dXJuIGNhbGw7XG4gIH0gZWxzZSBpZiAoY2FsbCAhPT0gdm9pZCAwKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkXCIpO1xuICB9XG5cbiAgcmV0dXJuIGFzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjtcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/setPrototypeOf.js": +/*!***************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/setPrototypeOf.js ***! + \***************************************************************/ +/***/ (function(module) { + +eval("function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9zZXRQcm90b3R5cGVPZi5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLEVBQUUseUJBQXlCLG1CQUFtQix5QkFBeUI7QUFDdkU7QUFDQTs7QUFFQTtBQUNBLHlCQUF5QixtQkFBbUIseUJBQXlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3NldFByb3RvdHlwZU9mLmpzPzA1MjYiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSBfc2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHtcbiAgICBvLl9fcHJvdG9fXyA9IHA7XG4gICAgcmV0dXJuIG87XG4gIH07XG5cbiAgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuICByZXR1cm4gX3NldFByb3RvdHlwZU9mKG8sIHApO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9zZXRQcm90b3R5cGVPZjtcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/setPrototypeOf.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/slicedToArray.js": +/*!**************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/slicedToArray.js ***! + \**************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var arrayWithHoles = __webpack_require__(/*! ./arrayWithHoles.js */ \"./node_modules/@babel/runtime/helpers/arrayWithHoles.js\");\n\nvar iterableToArrayLimit = __webpack_require__(/*! ./iterableToArrayLimit.js */ \"./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js\");\n\nvar unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ \"./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js\");\n\nvar nonIterableRest = __webpack_require__(/*! ./nonIterableRest.js */ \"./node_modules/@babel/runtime/helpers/nonIterableRest.js\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9zbGljZWRUb0FycmF5LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBLHFCQUFxQixtQkFBTyxDQUFDLG9GQUFxQjs7QUFFbEQsMkJBQTJCLG1CQUFPLENBQUMsZ0dBQTJCOztBQUU5RCxpQ0FBaUMsbUJBQU8sQ0FBQyw0R0FBaUM7O0FBRTFFLHNCQUFzQixtQkFBTyxDQUFDLHNGQUFzQjs7QUFFcEQ7QUFDQTtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLG1CQUFtQix5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvc2xpY2VkVG9BcnJheS5qcz9mNTBjIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBhcnJheVdpdGhIb2xlcyA9IHJlcXVpcmUoXCIuL2FycmF5V2l0aEhvbGVzLmpzXCIpO1xuXG52YXIgaXRlcmFibGVUb0FycmF5TGltaXQgPSByZXF1aXJlKFwiLi9pdGVyYWJsZVRvQXJyYXlMaW1pdC5qc1wiKTtcblxudmFyIHVuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5ID0gcmVxdWlyZShcIi4vdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkuanNcIik7XG5cbnZhciBub25JdGVyYWJsZVJlc3QgPSByZXF1aXJlKFwiLi9ub25JdGVyYWJsZVJlc3QuanNcIik7XG5cbmZ1bmN0aW9uIF9zbGljZWRUb0FycmF5KGFyciwgaSkge1xuICByZXR1cm4gYXJyYXlXaXRoSG9sZXMoYXJyKSB8fCBpdGVyYWJsZVRvQXJyYXlMaW1pdChhcnIsIGkpIHx8IHVuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KGFyciwgaSkgfHwgbm9uSXRlcmFibGVSZXN0KCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX3NsaWNlZFRvQXJyYXk7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/slicedToArray.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/toConsumableArray.js": +/*!******************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/toConsumableArray.js ***! + \******************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var arrayWithoutHoles = __webpack_require__(/*! ./arrayWithoutHoles.js */ \"./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js\");\n\nvar iterableToArray = __webpack_require__(/*! ./iterableToArray.js */ \"./node_modules/@babel/runtime/helpers/iterableToArray.js\");\n\nvar unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ \"./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js\");\n\nvar nonIterableSpread = __webpack_require__(/*! ./nonIterableSpread.js */ \"./node_modules/@babel/runtime/helpers/nonIterableSpread.js\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy90b0NvbnN1bWFibGVBcnJheS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQSx3QkFBd0IsbUJBQU8sQ0FBQywwRkFBd0I7O0FBRXhELHNCQUFzQixtQkFBTyxDQUFDLHNGQUFzQjs7QUFFcEQsaUNBQWlDLG1CQUFPLENBQUMsNEdBQWlDOztBQUUxRSx3QkFBd0IsbUJBQU8sQ0FBQywwRkFBd0I7O0FBRXhEO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHlCQUF5QixtQkFBbUIseUJBQXlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3RvQ29uc3VtYWJsZUFycmF5LmpzPzdlYmQiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGFycmF5V2l0aG91dEhvbGVzID0gcmVxdWlyZShcIi4vYXJyYXlXaXRob3V0SG9sZXMuanNcIik7XG5cbnZhciBpdGVyYWJsZVRvQXJyYXkgPSByZXF1aXJlKFwiLi9pdGVyYWJsZVRvQXJyYXkuanNcIik7XG5cbnZhciB1bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSA9IHJlcXVpcmUoXCIuL3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5LmpzXCIpO1xuXG52YXIgbm9uSXRlcmFibGVTcHJlYWQgPSByZXF1aXJlKFwiLi9ub25JdGVyYWJsZVNwcmVhZC5qc1wiKTtcblxuZnVuY3Rpb24gX3RvQ29uc3VtYWJsZUFycmF5KGFycikge1xuICByZXR1cm4gYXJyYXlXaXRob3V0SG9sZXMoYXJyKSB8fCBpdGVyYWJsZVRvQXJyYXkoYXJyKSB8fCB1bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShhcnIpIHx8IG5vbkl0ZXJhYmxlU3ByZWFkKCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX3RvQ29uc3VtYWJsZUFycmF5O1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/toConsumableArray.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/typeof.js": +/*!*******************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/typeof.js ***! + \*******************************************************/ +/***/ (function(module) { + +eval("function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2YuanMuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxJQUFJLHlCQUF5QixtQkFBbUIseUJBQXlCO0FBQ3pFLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUEsSUFBSSx5QkFBeUIsbUJBQW1CLHlCQUF5QjtBQUN6RTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLG1CQUFtQix5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvdHlwZW9mLmpzP2YzM2UiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX3R5cGVvZihvYmopIHtcbiAgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiO1xuXG4gIGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikge1xuICAgIG1vZHVsZS5leHBvcnRzID0gX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7XG4gICAgICByZXR1cm4gdHlwZW9mIG9iajtcbiAgICB9O1xuXG4gICAgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuICB9IGVsc2Uge1xuICAgIG1vZHVsZS5leHBvcnRzID0gX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7XG4gICAgICByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajtcbiAgICB9O1xuXG4gICAgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIF90eXBlb2Yob2JqKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfdHlwZW9mO1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/typeof.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js": +/*!***************************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js ***! + \***************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ \"./node_modules/@babel/runtime/helpers/arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQSx1QkFBdUIsbUJBQU8sQ0FBQyx3RkFBdUI7O0FBRXREO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSx5QkFBeUIsbUJBQW1CLHlCQUF5QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheS5qcz9kYTU3Il0sInNvdXJjZXNDb250ZW50IjpbInZhciBhcnJheUxpa2VUb0FycmF5ID0gcmVxdWlyZShcIi4vYXJyYXlMaWtlVG9BcnJheS5qc1wiKTtcblxuZnVuY3Rpb24gX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KG8sIG1pbkxlbikge1xuICBpZiAoIW8pIHJldHVybjtcbiAgaWYgKHR5cGVvZiBvID09PSBcInN0cmluZ1wiKSByZXR1cm4gYXJyYXlMaWtlVG9BcnJheShvLCBtaW5MZW4pO1xuICB2YXIgbiA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvKS5zbGljZSg4LCAtMSk7XG4gIGlmIChuID09PSBcIk9iamVjdFwiICYmIG8uY29uc3RydWN0b3IpIG4gPSBvLmNvbnN0cnVjdG9yLm5hbWU7XG4gIGlmIChuID09PSBcIk1hcFwiIHx8IG4gPT09IFwiU2V0XCIpIHJldHVybiBBcnJheS5mcm9tKG8pO1xuICBpZiAobiA9PT0gXCJBcmd1bWVudHNcIiB8fCAvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSkgcmV0dXJuIGFycmF5TGlrZVRvQXJyYXkobywgbWluTGVuKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXk7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/wrapNativeSuper.js": +/*!****************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/wrapNativeSuper.js ***! + \****************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var getPrototypeOf = __webpack_require__(/*! ./getPrototypeOf.js */ \"./node_modules/@babel/runtime/helpers/getPrototypeOf.js\");\n\nvar setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ \"./node_modules/@babel/runtime/helpers/setPrototypeOf.js\");\n\nvar isNativeFunction = __webpack_require__(/*! ./isNativeFunction.js */ \"./node_modules/@babel/runtime/helpers/isNativeFunction.js\");\n\nvar construct = __webpack_require__(/*! ./construct.js */ \"./node_modules/@babel/runtime/helpers/construct.js\");\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _wrapNativeSuper(Class);\n}\n\nmodule.exports = _wrapNativeSuper;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy93cmFwTmF0aXZlU3VwZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQUEscUJBQXFCLG1CQUFPLENBQUMsb0ZBQXFCOztBQUVsRCxxQkFBcUIsbUJBQU8sQ0FBQyxvRkFBcUI7O0FBRWxELHVCQUF1QixtQkFBTyxDQUFDLHdGQUF1Qjs7QUFFdEQsZ0JBQWdCLG1CQUFPLENBQUMsMEVBQWdCOztBQUV4QztBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQSxFQUFFLHlCQUF5QixtQkFBbUIseUJBQXlCO0FBQ3ZFO0FBQ0E7O0FBRUE7QUFDQSx5QkFBeUIsbUJBQW1CLHlCQUF5QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy93cmFwTmF0aXZlU3VwZXIuanM/ZjUyMSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZ2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKFwiLi9nZXRQcm90b3R5cGVPZi5qc1wiKTtcblxudmFyIHNldFByb3RvdHlwZU9mID0gcmVxdWlyZShcIi4vc2V0UHJvdG90eXBlT2YuanNcIik7XG5cbnZhciBpc05hdGl2ZUZ1bmN0aW9uID0gcmVxdWlyZShcIi4vaXNOYXRpdmVGdW5jdGlvbi5qc1wiKTtcblxudmFyIGNvbnN0cnVjdCA9IHJlcXVpcmUoXCIuL2NvbnN0cnVjdC5qc1wiKTtcblxuZnVuY3Rpb24gX3dyYXBOYXRpdmVTdXBlcihDbGFzcykge1xuICB2YXIgX2NhY2hlID0gdHlwZW9mIE1hcCA9PT0gXCJmdW5jdGlvblwiID8gbmV3IE1hcCgpIDogdW5kZWZpbmVkO1xuXG4gIG1vZHVsZS5leHBvcnRzID0gX3dyYXBOYXRpdmVTdXBlciA9IGZ1bmN0aW9uIF93cmFwTmF0aXZlU3VwZXIoQ2xhc3MpIHtcbiAgICBpZiAoQ2xhc3MgPT09IG51bGwgfHwgIWlzTmF0aXZlRnVuY3Rpb24oQ2xhc3MpKSByZXR1cm4gQ2xhc3M7XG5cbiAgICBpZiAodHlwZW9mIENsYXNzICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvblwiKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIF9jYWNoZSAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgaWYgKF9jYWNoZS5oYXMoQ2xhc3MpKSByZXR1cm4gX2NhY2hlLmdldChDbGFzcyk7XG5cbiAgICAgIF9jYWNoZS5zZXQoQ2xhc3MsIFdyYXBwZXIpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIFdyYXBwZXIoKSB7XG4gICAgICByZXR1cm4gY29uc3RydWN0KENsYXNzLCBhcmd1bWVudHMsIGdldFByb3RvdHlwZU9mKHRoaXMpLmNvbnN0cnVjdG9yKTtcbiAgICB9XG5cbiAgICBXcmFwcGVyLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoQ2xhc3MucHJvdG90eXBlLCB7XG4gICAgICBjb25zdHJ1Y3Rvcjoge1xuICAgICAgICB2YWx1ZTogV3JhcHBlcixcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gc2V0UHJvdG90eXBlT2YoV3JhcHBlciwgQ2xhc3MpO1xuICB9O1xuXG4gIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbiAgcmV0dXJuIF93cmFwTmF0aXZlU3VwZXIoQ2xhc3MpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF93cmFwTmF0aXZlU3VwZXI7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/wrapNativeSuper.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/regenerator/index.js": +/*!**********************************************************!*\ + !*** ./node_modules/@babel/runtime/regenerator/index.js ***! + \**********************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("module.exports = __webpack_require__(/*! regenerator-runtime */ \"./node_modules/regenerator-runtime/runtime.js\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvcmVnZW5lcmF0b3IvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQUEsZ0hBQStDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9yZWdlbmVyYXRvci9pbmRleC5qcz84MTQ0Il0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcInJlZ2VuZXJhdG9yLXJ1bnRpbWVcIik7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/regenerator/index.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/polyfill-module/dist/polyfill-module.js": +/*!********************************************************************!*\ + !*** ./node_modules/@next/polyfill-module/dist/polyfill-module.js ***! + \********************************************************************/ +/***/ (function() { + +eval("\"trimStart\"in String.prototype||(String.prototype.trimStart=String.prototype.trimLeft),\"trimEnd\"in String.prototype||(String.prototype.trimEnd=String.prototype.trimRight),\"description\"in Symbol.prototype||Object.defineProperty(Symbol.prototype,\"description\",{configurable:!0,get:function(){var t=/\\((.*)\\)/.exec(this.toString());return t?t[1]:void 0}}),Array.prototype.flat||(Array.prototype.flat=function(t,r){return r=this.concat.apply([],this),t>1&&r.some(Array.isArray)?r.flat(t-1):r},Array.prototype.flatMap=function(t,r){return this.map(t,r).flat()}),Promise.prototype.finally||(Promise.prototype.finally=function(t){if(\"function\"!=typeof t)return this.then(t,t);var r=this.constructor||Promise;return this.then(function(o){return r.resolve(t()).then(function(){return o})},function(o){return r.resolve(t()).then(function(){throw o})})});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcG9seWZpbGwtbW9kdWxlL2Rpc3QvcG9seWZpbGwtbW9kdWxlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBLG1RQUFtUSwrQkFBK0IsdUNBQXVDLHNCQUFzQiw0REFBNEQsNkVBQTZFLHVDQUF1Qyw0QkFBNEIsb0VBQW9FLDhDQUE4QyxnQ0FBZ0MsNkJBQTZCLHNDQUFzQyxTQUFTLEVBQUUsYUFBYSxzQ0FBc0MsUUFBUSxFQUFFLEVBQUUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BuZXh0L3BvbHlmaWxsLW1vZHVsZS9kaXN0L3BvbHlmaWxsLW1vZHVsZS5qcz9kNjg3Il0sInNvdXJjZXNDb250ZW50IjpbIlwidHJpbVN0YXJ0XCJpbiBTdHJpbmcucHJvdG90eXBlfHwoU3RyaW5nLnByb3RvdHlwZS50cmltU3RhcnQ9U3RyaW5nLnByb3RvdHlwZS50cmltTGVmdCksXCJ0cmltRW5kXCJpbiBTdHJpbmcucHJvdG90eXBlfHwoU3RyaW5nLnByb3RvdHlwZS50cmltRW5kPVN0cmluZy5wcm90b3R5cGUudHJpbVJpZ2h0KSxcImRlc2NyaXB0aW9uXCJpbiBTeW1ib2wucHJvdG90eXBlfHxPYmplY3QuZGVmaW5lUHJvcGVydHkoU3ltYm9sLnByb3RvdHlwZSxcImRlc2NyaXB0aW9uXCIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXt2YXIgdD0vXFwoKC4qKVxcKS8uZXhlYyh0aGlzLnRvU3RyaW5nKCkpO3JldHVybiB0P3RbMV06dm9pZCAwfX0pLEFycmF5LnByb3RvdHlwZS5mbGF0fHwoQXJyYXkucHJvdG90eXBlLmZsYXQ9ZnVuY3Rpb24odCxyKXtyZXR1cm4gcj10aGlzLmNvbmNhdC5hcHBseShbXSx0aGlzKSx0PjEmJnIuc29tZShBcnJheS5pc0FycmF5KT9yLmZsYXQodC0xKTpyfSxBcnJheS5wcm90b3R5cGUuZmxhdE1hcD1mdW5jdGlvbih0LHIpe3JldHVybiB0aGlzLm1hcCh0LHIpLmZsYXQoKX0pLFByb21pc2UucHJvdG90eXBlLmZpbmFsbHl8fChQcm9taXNlLnByb3RvdHlwZS5maW5hbGx5PWZ1bmN0aW9uKHQpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIHQpcmV0dXJuIHRoaXMudGhlbih0LHQpO3ZhciByPXRoaXMuY29uc3RydWN0b3J8fFByb21pc2U7cmV0dXJuIHRoaXMudGhlbihmdW5jdGlvbihvKXtyZXR1cm4gci5yZXNvbHZlKHQoKSkudGhlbihmdW5jdGlvbigpe3JldHVybiBvfSl9LGZ1bmN0aW9uKG8pe3JldHVybiByLnJlc29sdmUodCgpKS50aGVuKGZ1bmN0aW9uKCl7dGhyb3cgb30pfSl9KTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@next/polyfill-module/dist/polyfill-module.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/client.js": +/*!************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/client.js ***! + \************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nexports.__esModule = true;\nexports.onRefresh = exports.unregister = exports.register = exports.onBuildError = exports.onBuildOk = exports.ReactDevOverlay = exports.getNodeError = void 0;\nvar Bus = __importStar(__webpack_require__(/*! ./internal/bus */ \"./node_modules/@next/react-dev-overlay/lib/internal/bus.js\"));\nvar parseStack_1 = __webpack_require__(/*! ./internal/helpers/parseStack */ \"./node_modules/@next/react-dev-overlay/lib/internal/helpers/parseStack.js\");\nvar isRegistered = false;\nvar stackTraceLimit = undefined;\nfunction onUnhandledError(ev) {\n var error = ev === null || ev === void 0 ? void 0 : ev.error;\n if (!error || !(error instanceof Error) || typeof error.stack !== 'string') {\n // A non-error was thrown, we don't have anything to show. :-(\n return;\n }\n var e = error;\n Bus.emit({\n type: Bus.TYPE_UNHANDLED_ERROR,\n reason: error,\n frames: (0, parseStack_1.parseStack)(e.stack)\n });\n}\nfunction onUnhandledRejection(ev) {\n var reason = ev === null || ev === void 0 ? void 0 : ev.reason;\n if (!reason ||\n !(reason instanceof Error) ||\n typeof reason.stack !== 'string') {\n // A non-error was thrown, we don't have anything to show. :-(\n return;\n }\n var e = reason;\n Bus.emit({\n type: Bus.TYPE_UNHANDLED_REJECTION,\n reason: reason,\n frames: (0, parseStack_1.parseStack)(e.stack)\n });\n}\nfunction register() {\n if (isRegistered) {\n return;\n }\n isRegistered = true;\n try {\n var limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 50;\n stackTraceLimit = limit;\n }\n catch (_a) { }\n window.addEventListener('error', onUnhandledError);\n window.addEventListener('unhandledrejection', onUnhandledRejection);\n}\nexports.register = register;\nfunction unregister() {\n if (!isRegistered) {\n return;\n }\n isRegistered = false;\n if (stackTraceLimit !== undefined) {\n try {\n Error.stackTraceLimit = stackTraceLimit;\n }\n catch (_a) { }\n stackTraceLimit = undefined;\n }\n window.removeEventListener('error', onUnhandledError);\n window.removeEventListener('unhandledrejection', onUnhandledRejection);\n}\nexports.unregister = unregister;\nfunction onBuildOk() {\n Bus.emit({ type: Bus.TYPE_BUILD_OK });\n}\nexports.onBuildOk = onBuildOk;\nfunction onBuildError(message) {\n Bus.emit({ type: Bus.TYPE_BUILD_ERROR, message: message });\n}\nexports.onBuildError = onBuildError;\nfunction onRefresh() {\n Bus.emit({ type: Bus.TYPE_REFFRESH });\n}\nexports.onRefresh = onRefresh;\nvar nodeStackFrames_1 = __webpack_require__(/*! ./internal/helpers/nodeStackFrames */ \"./node_modules/@next/react-dev-overlay/lib/internal/helpers/nodeStackFrames.js\");\n__createBinding(exports, nodeStackFrames_1, \"getNodeError\");\nvar ReactDevOverlay_1 = __webpack_require__(/*! ./internal/ReactDevOverlay */ \"./node_modules/@next/react-dev-overlay/lib/internal/ReactDevOverlay.js\");\n__createBinding(exports, ReactDevOverlay_1, \"default\", \"ReactDevOverlay\");\n//# sourceMappingURL=client.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2NsaWVudC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0E7QUFDQSxtQ0FBbUMsb0NBQW9DLGdCQUFnQjtBQUN2RixDQUFDO0FBQ0Q7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBLDBDQUEwQyw0QkFBNEI7QUFDdEUsQ0FBQztBQUNEO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCLGlCQUFpQixHQUFHLGtCQUFrQixHQUFHLGdCQUFnQixHQUFHLG9CQUFvQixHQUFHLGlCQUFpQixHQUFHLHVCQUF1QixHQUFHLG9CQUFvQjtBQUNySix1QkFBdUIsbUJBQU8sQ0FBQyxrRkFBZ0I7QUFDL0MsbUJBQW1CLG1CQUFPLENBQUMsZ0hBQStCO0FBQzFEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBLGVBQWUseUJBQXlCO0FBQ3hDO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsZUFBZSw4Q0FBOEM7QUFDN0Q7QUFDQSxvQkFBb0I7QUFDcEI7QUFDQSxlQUFlLHlCQUF5QjtBQUN4QztBQUNBLGlCQUFpQjtBQUNqQix3QkFBd0IsbUJBQU8sQ0FBQywwSEFBb0M7QUFDcEU7QUFDQSx3QkFBd0IsbUJBQU8sQ0FBQywwR0FBNEI7QUFDNUQ7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2NsaWVudC5qcz80M2RkIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9fY3JlYXRlQmluZGluZyA9ICh0aGlzICYmIHRoaXMuX19jcmVhdGVCaW5kaW5nKSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH0pO1xufSkgOiAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIG9bazJdID0gbVtrXTtcbn0pKTtcbnZhciBfX3NldE1vZHVsZURlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9fc2V0TW9kdWxlRGVmYXVsdCkgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgdikge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBcImRlZmF1bHRcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdiB9KTtcbn0pIDogZnVuY3Rpb24obywgdikge1xuICAgIG9bXCJkZWZhdWx0XCJdID0gdjtcbn0pO1xudmFyIF9faW1wb3J0U3RhciA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnRTdGFyKSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDtcbiAgICB2YXIgcmVzdWx0ID0ge307XG4gICAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrIGluIG1vZCkgaWYgKGsgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChtb2QsIGspKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGspO1xuICAgIF9fc2V0TW9kdWxlRGVmYXVsdChyZXN1bHQsIG1vZCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5vblJlZnJlc2ggPSBleHBvcnRzLnVucmVnaXN0ZXIgPSBleHBvcnRzLnJlZ2lzdGVyID0gZXhwb3J0cy5vbkJ1aWxkRXJyb3IgPSBleHBvcnRzLm9uQnVpbGRPayA9IGV4cG9ydHMuUmVhY3REZXZPdmVybGF5ID0gZXhwb3J0cy5nZXROb2RlRXJyb3IgPSB2b2lkIDA7XG52YXIgQnVzID0gX19pbXBvcnRTdGFyKHJlcXVpcmUoXCIuL2ludGVybmFsL2J1c1wiKSk7XG52YXIgcGFyc2VTdGFja18xID0gcmVxdWlyZShcIi4vaW50ZXJuYWwvaGVscGVycy9wYXJzZVN0YWNrXCIpO1xudmFyIGlzUmVnaXN0ZXJlZCA9IGZhbHNlO1xudmFyIHN0YWNrVHJhY2VMaW1pdCA9IHVuZGVmaW5lZDtcbmZ1bmN0aW9uIG9uVW5oYW5kbGVkRXJyb3IoZXYpIHtcbiAgICB2YXIgZXJyb3IgPSBldiA9PT0gbnVsbCB8fCBldiA9PT0gdm9pZCAwID8gdm9pZCAwIDogZXYuZXJyb3I7XG4gICAgaWYgKCFlcnJvciB8fCAhKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHx8IHR5cGVvZiBlcnJvci5zdGFjayAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgLy8gQSBub24tZXJyb3Igd2FzIHRocm93biwgd2UgZG9uJ3QgaGF2ZSBhbnl0aGluZyB0byBzaG93LiA6LShcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2YXIgZSA9IGVycm9yO1xuICAgIEJ1cy5lbWl0KHtcbiAgICAgICAgdHlwZTogQnVzLlRZUEVfVU5IQU5ETEVEX0VSUk9SLFxuICAgICAgICByZWFzb246IGVycm9yLFxuICAgICAgICBmcmFtZXM6ICgwLCBwYXJzZVN0YWNrXzEucGFyc2VTdGFjaykoZS5zdGFjaylcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIG9uVW5oYW5kbGVkUmVqZWN0aW9uKGV2KSB7XG4gICAgdmFyIHJlYXNvbiA9IGV2ID09PSBudWxsIHx8IGV2ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBldi5yZWFzb247XG4gICAgaWYgKCFyZWFzb24gfHxcbiAgICAgICAgIShyZWFzb24gaW5zdGFuY2VvZiBFcnJvcikgfHxcbiAgICAgICAgdHlwZW9mIHJlYXNvbi5zdGFjayAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgLy8gQSBub24tZXJyb3Igd2FzIHRocm93biwgd2UgZG9uJ3QgaGF2ZSBhbnl0aGluZyB0byBzaG93LiA6LShcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2YXIgZSA9IHJlYXNvbjtcbiAgICBCdXMuZW1pdCh7XG4gICAgICAgIHR5cGU6IEJ1cy5UWVBFX1VOSEFORExFRF9SRUpFQ1RJT04sXG4gICAgICAgIHJlYXNvbjogcmVhc29uLFxuICAgICAgICBmcmFtZXM6ICgwLCBwYXJzZVN0YWNrXzEucGFyc2VTdGFjaykoZS5zdGFjaylcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIHJlZ2lzdGVyKCkge1xuICAgIGlmIChpc1JlZ2lzdGVyZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpc1JlZ2lzdGVyZWQgPSB0cnVlO1xuICAgIHRyeSB7XG4gICAgICAgIHZhciBsaW1pdCA9IEVycm9yLnN0YWNrVHJhY2VMaW1pdDtcbiAgICAgICAgRXJyb3Iuc3RhY2tUcmFjZUxpbWl0ID0gNTA7XG4gICAgICAgIHN0YWNrVHJhY2VMaW1pdCA9IGxpbWl0O1xuICAgIH1cbiAgICBjYXRjaCAoX2EpIHsgfVxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIG9uVW5oYW5kbGVkRXJyb3IpO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd1bmhhbmRsZWRyZWplY3Rpb24nLCBvblVuaGFuZGxlZFJlamVjdGlvbik7XG59XG5leHBvcnRzLnJlZ2lzdGVyID0gcmVnaXN0ZXI7XG5mdW5jdGlvbiB1bnJlZ2lzdGVyKCkge1xuICAgIGlmICghaXNSZWdpc3RlcmVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaXNSZWdpc3RlcmVkID0gZmFsc2U7XG4gICAgaWYgKHN0YWNrVHJhY2VMaW1pdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBFcnJvci5zdGFja1RyYWNlTGltaXQgPSBzdGFja1RyYWNlTGltaXQ7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKF9hKSB7IH1cbiAgICAgICAgc3RhY2tUcmFjZUxpbWl0ID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignZXJyb3InLCBvblVuaGFuZGxlZEVycm9yKTtcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigndW5oYW5kbGVkcmVqZWN0aW9uJywgb25VbmhhbmRsZWRSZWplY3Rpb24pO1xufVxuZXhwb3J0cy51bnJlZ2lzdGVyID0gdW5yZWdpc3RlcjtcbmZ1bmN0aW9uIG9uQnVpbGRPaygpIHtcbiAgICBCdXMuZW1pdCh7IHR5cGU6IEJ1cy5UWVBFX0JVSUxEX09LIH0pO1xufVxuZXhwb3J0cy5vbkJ1aWxkT2sgPSBvbkJ1aWxkT2s7XG5mdW5jdGlvbiBvbkJ1aWxkRXJyb3IobWVzc2FnZSkge1xuICAgIEJ1cy5lbWl0KHsgdHlwZTogQnVzLlRZUEVfQlVJTERfRVJST1IsIG1lc3NhZ2U6IG1lc3NhZ2UgfSk7XG59XG5leHBvcnRzLm9uQnVpbGRFcnJvciA9IG9uQnVpbGRFcnJvcjtcbmZ1bmN0aW9uIG9uUmVmcmVzaCgpIHtcbiAgICBCdXMuZW1pdCh7IHR5cGU6IEJ1cy5UWVBFX1JFRkZSRVNIIH0pO1xufVxuZXhwb3J0cy5vblJlZnJlc2ggPSBvblJlZnJlc2g7XG52YXIgbm9kZVN0YWNrRnJhbWVzXzEgPSByZXF1aXJlKFwiLi9pbnRlcm5hbC9oZWxwZXJzL25vZGVTdGFja0ZyYW1lc1wiKTtcbl9fY3JlYXRlQmluZGluZyhleHBvcnRzLCBub2RlU3RhY2tGcmFtZXNfMSwgXCJnZXROb2RlRXJyb3JcIik7XG52YXIgUmVhY3REZXZPdmVybGF5XzEgPSByZXF1aXJlKFwiLi9pbnRlcm5hbC9SZWFjdERldk92ZXJsYXlcIik7XG5fX2NyZWF0ZUJpbmRpbmcoZXhwb3J0cywgUmVhY3REZXZPdmVybGF5XzEsIFwiZGVmYXVsdFwiLCBcIlJlYWN0RGV2T3ZlcmxheVwiKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNsaWVudC5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/client.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/ErrorBoundary.js": +/*!****************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/ErrorBoundary.js ***! + \****************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nexports.__esModule = true;\nexports.ErrorBoundary = void 0;\nvar react_1 = __importDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nvar ErrorBoundary = /** @class */ (function (_super) {\n __extends(ErrorBoundary, _super);\n function ErrorBoundary() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.state = { error: null };\n return _this;\n }\n ErrorBoundary.prototype.componentDidCatch = function (error, \n // Loosely typed because it depends on the React version and was\n // accidentally excluded in some versions.\n errorInfo) {\n this.props.onError(error, (errorInfo === null || errorInfo === void 0 ? void 0 : errorInfo.componentStack) || null);\n this.setState({ error: error });\n };\n ErrorBoundary.prototype.render = function () {\n return this.state.error\n ? // The component has to be unmounted or else it would continue to error\n null\n : this.props.children;\n };\n return ErrorBoundary;\n}(react_1[\"default\"].PureComponent));\nexports.ErrorBoundary = ErrorBoundary;\n//# sourceMappingURL=ErrorBoundary.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL0Vycm9yQm91bmRhcnkuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxlQUFlLGdCQUFnQixzQ0FBc0Msa0JBQWtCO0FBQ3ZGLDhCQUE4QjtBQUM5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0I7QUFDeEI7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBLDZDQUE2QztBQUM3QztBQUNBLGtCQUFrQjtBQUNsQixxQkFBcUI7QUFDckIsOEJBQThCLG1CQUFPLENBQUMsNENBQU87QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0I7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsY0FBYztBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELHFCQUFxQjtBQUNyQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL0Vycm9yQm91bmRhcnkuanM/ZjJiNSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2V4dGVuZHMgPSAodGhpcyAmJiB0aGlzLl9fZXh0ZW5kcykgfHwgKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZXh0ZW5kU3RhdGljcyA9IGZ1bmN0aW9uIChkLCBiKSB7XG4gICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcbiAgICAgICAgICAgICh7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uIChkLCBiKSB7IGQuX19wcm90b19fID0gYjsgfSkgfHxcbiAgICAgICAgICAgIGZ1bmN0aW9uIChkLCBiKSB7IGZvciAodmFyIHAgaW4gYikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiLCBwKSkgZFtwXSA9IGJbcF07IH07XG4gICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpO1xuICAgIH07XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7XG4gICAgICAgIGlmICh0eXBlb2YgYiAhPT0gXCJmdW5jdGlvblwiICYmIGIgIT09IG51bGwpXG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSBcIiArIFN0cmluZyhiKSArIFwiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGxcIik7XG4gICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7XG4gICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfVxuICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XG4gICAgfTtcbn0pKCk7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5FcnJvckJvdW5kYXJ5ID0gdm9pZCAwO1xudmFyIHJlYWN0XzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcInJlYWN0XCIpKTtcbnZhciBFcnJvckJvdW5kYXJ5ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhFcnJvckJvdW5kYXJ5LCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIEVycm9yQm91bmRhcnkoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlciAhPT0gbnVsbCAmJiBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5zdGF0ZSA9IHsgZXJyb3I6IG51bGwgfTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBFcnJvckJvdW5kYXJ5LnByb3RvdHlwZS5jb21wb25lbnREaWRDYXRjaCA9IGZ1bmN0aW9uIChlcnJvciwgXG4gICAgLy8gTG9vc2VseSB0eXBlZCBiZWNhdXNlIGl0IGRlcGVuZHMgb24gdGhlIFJlYWN0IHZlcnNpb24gYW5kIHdhc1xuICAgIC8vIGFjY2lkZW50YWxseSBleGNsdWRlZCBpbiBzb21lIHZlcnNpb25zLlxuICAgIGVycm9ySW5mbykge1xuICAgICAgICB0aGlzLnByb3BzLm9uRXJyb3IoZXJyb3IsIChlcnJvckluZm8gPT09IG51bGwgfHwgZXJyb3JJbmZvID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlcnJvckluZm8uY29tcG9uZW50U3RhY2spIHx8IG51bGwpO1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgZXJyb3I6IGVycm9yIH0pO1xuICAgIH07XG4gICAgRXJyb3JCb3VuZGFyeS5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZS5lcnJvclxuICAgICAgICAgICAgPyAvLyBUaGUgY29tcG9uZW50IGhhcyB0byBiZSB1bm1vdW50ZWQgb3IgZWxzZSBpdCB3b3VsZCBjb250aW51ZSB0byBlcnJvclxuICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgIDogdGhpcy5wcm9wcy5jaGlsZHJlbjtcbiAgICB9O1xuICAgIHJldHVybiBFcnJvckJvdW5kYXJ5O1xufShyZWFjdF8xW1wiZGVmYXVsdFwiXS5QdXJlQ29tcG9uZW50KSk7XG5leHBvcnRzLkVycm9yQm91bmRhcnkgPSBFcnJvckJvdW5kYXJ5O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RXJyb3JCb3VuZGFyeS5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/ErrorBoundary.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/ReactDevOverlay.js": +/*!******************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/ReactDevOverlay.js ***! + \******************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nexports.__esModule = true;\nvar React = __importStar(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nvar Bus = __importStar(__webpack_require__(/*! ./bus */ \"./node_modules/@next/react-dev-overlay/lib/internal/bus.js\"));\nvar ShadowPortal_1 = __webpack_require__(/*! ./components/ShadowPortal */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/ShadowPortal.js\");\nvar Errors_1 = __webpack_require__(/*! ./container/Errors */ \"./node_modules/@next/react-dev-overlay/lib/internal/container/Errors.js\");\nvar BuildError_1 = __webpack_require__(/*! ./container/BuildError */ \"./node_modules/@next/react-dev-overlay/lib/internal/container/BuildError.js\");\nvar ErrorBoundary_1 = __webpack_require__(/*! ./ErrorBoundary */ \"./node_modules/@next/react-dev-overlay/lib/internal/ErrorBoundary.js\");\nvar Base_1 = __webpack_require__(/*! ./styles/Base */ \"./node_modules/@next/react-dev-overlay/lib/internal/styles/Base.js\");\nvar ComponentStyles_1 = __webpack_require__(/*! ./styles/ComponentStyles */ \"./node_modules/@next/react-dev-overlay/lib/internal/styles/ComponentStyles.js\");\nvar CssReset_1 = __webpack_require__(/*! ./styles/CssReset */ \"./node_modules/@next/react-dev-overlay/lib/internal/styles/CssReset.js\");\nfunction reducer(state, ev) {\n switch (ev.type) {\n case Bus.TYPE_BUILD_OK: {\n return __assign(__assign({}, state), { buildError: null });\n }\n case Bus.TYPE_BUILD_ERROR: {\n return __assign(__assign({}, state), { buildError: ev.message });\n }\n case Bus.TYPE_REFFRESH: {\n return __assign(__assign({}, state), { buildError: null, errors: [] });\n }\n case Bus.TYPE_UNHANDLED_ERROR:\n case Bus.TYPE_UNHANDLED_REJECTION: {\n return __assign(__assign({}, state), { nextId: state.nextId + 1, errors: __spreadArray(__spreadArray([], __read(state.errors), false), [{ id: state.nextId, event: ev }], false) });\n }\n default: {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var _1 = ev;\n return state;\n }\n }\n}\nvar ReactDevOverlay = function ReactDevOverlay(_a) {\n var children = _a.children;\n var _b = __read(React.useReducer(reducer, { nextId: 1, buildError: null, errors: [] }), 2), state = _b[0], dispatch = _b[1];\n React.useEffect(function () {\n Bus.on(dispatch);\n return function () {\n Bus.off(dispatch);\n };\n }, [dispatch]);\n var onComponentError = React.useCallback(function (_error, _componentStack) {\n // TODO: special handling\n }, []);\n var hasBuildError = state.buildError != null;\n var hasRuntimeErrors = Boolean(state.errors.length);\n var isMounted = hasBuildError || hasRuntimeErrors;\n return (React.createElement(React.Fragment, null,\n React.createElement(ErrorBoundary_1.ErrorBoundary, { onError: onComponentError }, children !== null && children !== void 0 ? children : null),\n isMounted ? (React.createElement(ShadowPortal_1.ShadowPortal, null,\n React.createElement(CssReset_1.CssReset, null),\n React.createElement(Base_1.Base, null),\n React.createElement(ComponentStyles_1.ComponentStyles, null),\n hasBuildError ? (React.createElement(BuildError_1.BuildError, { message: state.buildError })) : hasRuntimeErrors ? (React.createElement(Errors_1.Errors, { errors: state.errors })) : undefined)) : undefined));\n};\nexports[\"default\"] = ReactDevOverlay;\n//# sourceMappingURL=ReactDevOverlay.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL1JlYWN0RGV2T3ZlcmxheS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0E7QUFDQSxpREFBaUQsT0FBTztBQUN4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQyxvQ0FBb0MsZ0JBQWdCO0FBQ3ZGLENBQUM7QUFDRDtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0EsMENBQTBDLDRCQUE0QjtBQUN0RSxDQUFDO0FBQ0Q7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixNQUFNO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkVBQTZFLE9BQU87QUFDcEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEIseUJBQXlCLG1CQUFPLENBQUMsNENBQU87QUFDeEMsdUJBQXVCLG1CQUFPLENBQUMseUVBQU87QUFDdEMscUJBQXFCLG1CQUFPLENBQUMsaUhBQTJCO0FBQ3hELGVBQWUsbUJBQU8sQ0FBQyxtR0FBb0I7QUFDM0MsbUJBQW1CLG1CQUFPLENBQUMsMkdBQXdCO0FBQ25ELHNCQUFzQixtQkFBTyxDQUFDLDZGQUFpQjtBQUMvQyxhQUFhLG1CQUFPLENBQUMseUZBQWU7QUFDcEMsd0JBQXdCLG1CQUFPLENBQUMsK0dBQTBCO0FBQzFELGlCQUFpQixtQkFBTyxDQUFDLGlHQUFtQjtBQUM1QztBQUNBO0FBQ0E7QUFDQSx1Q0FBdUMsWUFBWSxrQkFBa0I7QUFDckU7QUFDQTtBQUNBLHVDQUF1QyxZQUFZLHdCQUF3QjtBQUMzRTtBQUNBO0FBQ0EsdUNBQXVDLFlBQVksOEJBQThCO0FBQ2pGO0FBQ0E7QUFDQTtBQUNBLHVDQUF1QyxZQUFZLG1HQUFtRyw2QkFBNkIsV0FBVztBQUM5TDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdEQUFnRCx5Q0FBeUM7QUFDekY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkRBQTZELDJCQUEyQjtBQUN4RjtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRFQUE0RSwyQkFBMkIsZ0VBQWdFLHNCQUFzQjtBQUM3TDtBQUNBLGtCQUFrQjtBQUNsQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL1JlYWN0RGV2T3ZlcmxheS5qcz8zNTU1Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbnZhciBfX2NyZWF0ZUJpbmRpbmcgPSAodGhpcyAmJiB0aGlzLl9fY3JlYXRlQmluZGluZykgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gbVtrXTsgfSB9KTtcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBvW2syXSA9IG1ba107XG59KSk7XG52YXIgX19zZXRNb2R1bGVEZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX3NldE1vZHVsZURlZmF1bHQpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIHYpIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgXCJkZWZhdWx0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7XG59KSA6IGZ1bmN0aW9uKG8sIHYpIHtcbiAgICBvW1wiZGVmYXVsdFwiXSA9IHY7XG59KTtcbnZhciBfX2ltcG9ydFN0YXIgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0U3RhcikgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpIHJldHVybiBtb2Q7XG4gICAgdmFyIHJlc3VsdCA9IHt9O1xuICAgIGlmIChtb2QgIT0gbnVsbCkgZm9yICh2YXIgayBpbiBtb2QpIGlmIChrICE9PSBcImRlZmF1bHRcIiAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobW9kLCBrKSkgX19jcmVhdGVCaW5kaW5nKHJlc3VsdCwgbW9kLCBrKTtcbiAgICBfX3NldE1vZHVsZURlZmF1bHQocmVzdWx0LCBtb2QpO1xuICAgIHJldHVybiByZXN1bHQ7XG59O1xudmFyIF9fcmVhZCA9ICh0aGlzICYmIHRoaXMuX19yZWFkKSB8fCBmdW5jdGlvbiAobywgbikge1xuICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9bU3ltYm9sLml0ZXJhdG9yXTtcbiAgICBpZiAoIW0pIHJldHVybiBvO1xuICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlO1xuICAgIHRyeSB7XG4gICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpO1xuICAgIH1cbiAgICBjYXRjaCAoZXJyb3IpIHsgZSA9IHsgZXJyb3I6IGVycm9yIH07IH1cbiAgICBmaW5hbGx5IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpW1wicmV0dXJuXCJdKSkgbS5jYWxsKGkpO1xuICAgICAgICB9XG4gICAgICAgIGZpbmFsbHkgeyBpZiAoZSkgdGhyb3cgZS5lcnJvcjsgfVxuICAgIH1cbiAgICByZXR1cm4gYXI7XG59O1xudmFyIF9fc3ByZWFkQXJyYXkgPSAodGhpcyAmJiB0aGlzLl9fc3ByZWFkQXJyYXkpIHx8IGZ1bmN0aW9uICh0bywgZnJvbSwgcGFjaykge1xuICAgIGlmIChwYWNrIHx8IGFyZ3VtZW50cy5sZW5ndGggPT09IDIpIGZvciAodmFyIGkgPSAwLCBsID0gZnJvbS5sZW5ndGgsIGFyOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgIGlmIChhciB8fCAhKGkgaW4gZnJvbSkpIHtcbiAgICAgICAgICAgIGlmICghYXIpIGFyID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZnJvbSwgMCwgaSk7XG4gICAgICAgICAgICBhcltpXSA9IGZyb21baV07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRvLmNvbmNhdChhciB8fCBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChmcm9tKSk7XG59O1xuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbnZhciBSZWFjdCA9IF9faW1wb3J0U3RhcihyZXF1aXJlKFwicmVhY3RcIikpO1xudmFyIEJ1cyA9IF9faW1wb3J0U3RhcihyZXF1aXJlKFwiLi9idXNcIikpO1xudmFyIFNoYWRvd1BvcnRhbF8xID0gcmVxdWlyZShcIi4vY29tcG9uZW50cy9TaGFkb3dQb3J0YWxcIik7XG52YXIgRXJyb3JzXzEgPSByZXF1aXJlKFwiLi9jb250YWluZXIvRXJyb3JzXCIpO1xudmFyIEJ1aWxkRXJyb3JfMSA9IHJlcXVpcmUoXCIuL2NvbnRhaW5lci9CdWlsZEVycm9yXCIpO1xudmFyIEVycm9yQm91bmRhcnlfMSA9IHJlcXVpcmUoXCIuL0Vycm9yQm91bmRhcnlcIik7XG52YXIgQmFzZV8xID0gcmVxdWlyZShcIi4vc3R5bGVzL0Jhc2VcIik7XG52YXIgQ29tcG9uZW50U3R5bGVzXzEgPSByZXF1aXJlKFwiLi9zdHlsZXMvQ29tcG9uZW50U3R5bGVzXCIpO1xudmFyIENzc1Jlc2V0XzEgPSByZXF1aXJlKFwiLi9zdHlsZXMvQ3NzUmVzZXRcIik7XG5mdW5jdGlvbiByZWR1Y2VyKHN0YXRlLCBldikge1xuICAgIHN3aXRjaCAoZXYudHlwZSkge1xuICAgICAgICBjYXNlIEJ1cy5UWVBFX0JVSUxEX09LOiB7XG4gICAgICAgICAgICByZXR1cm4gX19hc3NpZ24oX19hc3NpZ24oe30sIHN0YXRlKSwgeyBidWlsZEVycm9yOiBudWxsIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgQnVzLlRZUEVfQlVJTERfRVJST1I6IHtcbiAgICAgICAgICAgIHJldHVybiBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgc3RhdGUpLCB7IGJ1aWxkRXJyb3I6IGV2Lm1lc3NhZ2UgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBCdXMuVFlQRV9SRUZGUkVTSDoge1xuICAgICAgICAgICAgcmV0dXJuIF9fYXNzaWduKF9fYXNzaWduKHt9LCBzdGF0ZSksIHsgYnVpbGRFcnJvcjogbnVsbCwgZXJyb3JzOiBbXSB9KTtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIEJ1cy5UWVBFX1VOSEFORExFRF9FUlJPUjpcbiAgICAgICAgY2FzZSBCdXMuVFlQRV9VTkhBTkRMRURfUkVKRUNUSU9OOiB7XG4gICAgICAgICAgICByZXR1cm4gX19hc3NpZ24oX19hc3NpZ24oe30sIHN0YXRlKSwgeyBuZXh0SWQ6IHN0YXRlLm5leHRJZCArIDEsIGVycm9yczogX19zcHJlYWRBcnJheShfX3NwcmVhZEFycmF5KFtdLCBfX3JlYWQoc3RhdGUuZXJyb3JzKSwgZmFsc2UpLCBbeyBpZDogc3RhdGUubmV4dElkLCBldmVudDogZXYgfV0sIGZhbHNlKSB9KTtcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgICAgICAgICB2YXIgXzEgPSBldjtcbiAgICAgICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbnZhciBSZWFjdERldk92ZXJsYXkgPSBmdW5jdGlvbiBSZWFjdERldk92ZXJsYXkoX2EpIHtcbiAgICB2YXIgY2hpbGRyZW4gPSBfYS5jaGlsZHJlbjtcbiAgICB2YXIgX2IgPSBfX3JlYWQoUmVhY3QudXNlUmVkdWNlcihyZWR1Y2VyLCB7IG5leHRJZDogMSwgYnVpbGRFcnJvcjogbnVsbCwgZXJyb3JzOiBbXSB9KSwgMiksIHN0YXRlID0gX2JbMF0sIGRpc3BhdGNoID0gX2JbMV07XG4gICAgUmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgQnVzLm9uKGRpc3BhdGNoKTtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIEJ1cy5vZmYoZGlzcGF0Y2gpO1xuICAgICAgICB9O1xuICAgIH0sIFtkaXNwYXRjaF0pO1xuICAgIHZhciBvbkNvbXBvbmVudEVycm9yID0gUmVhY3QudXNlQ2FsbGJhY2soZnVuY3Rpb24gKF9lcnJvciwgX2NvbXBvbmVudFN0YWNrKSB7XG4gICAgICAgIC8vIFRPRE86IHNwZWNpYWwgaGFuZGxpbmdcbiAgICB9LCBbXSk7XG4gICAgdmFyIGhhc0J1aWxkRXJyb3IgPSBzdGF0ZS5idWlsZEVycm9yICE9IG51bGw7XG4gICAgdmFyIGhhc1J1bnRpbWVFcnJvcnMgPSBCb29sZWFuKHN0YXRlLmVycm9ycy5sZW5ndGgpO1xuICAgIHZhciBpc01vdW50ZWQgPSBoYXNCdWlsZEVycm9yIHx8IGhhc1J1bnRpbWVFcnJvcnM7XG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFJlYWN0LkZyYWdtZW50LCBudWxsLFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEVycm9yQm91bmRhcnlfMS5FcnJvckJvdW5kYXJ5LCB7IG9uRXJyb3I6IG9uQ29tcG9uZW50RXJyb3IgfSwgY2hpbGRyZW4gIT09IG51bGwgJiYgY2hpbGRyZW4gIT09IHZvaWQgMCA/IGNoaWxkcmVuIDogbnVsbCksXG4gICAgICAgIGlzTW91bnRlZCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KFNoYWRvd1BvcnRhbF8xLlNoYWRvd1BvcnRhbCwgbnVsbCxcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ3NzUmVzZXRfMS5Dc3NSZXNldCwgbnVsbCksXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEJhc2VfMS5CYXNlLCBudWxsKSxcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ29tcG9uZW50U3R5bGVzXzEuQ29tcG9uZW50U3R5bGVzLCBudWxsKSxcbiAgICAgICAgICAgIGhhc0J1aWxkRXJyb3IgPyAoUmVhY3QuY3JlYXRlRWxlbWVudChCdWlsZEVycm9yXzEuQnVpbGRFcnJvciwgeyBtZXNzYWdlOiBzdGF0ZS5idWlsZEVycm9yIH0pKSA6IGhhc1J1bnRpbWVFcnJvcnMgPyAoUmVhY3QuY3JlYXRlRWxlbWVudChFcnJvcnNfMS5FcnJvcnMsIHsgZXJyb3JzOiBzdGF0ZS5lcnJvcnMgfSkpIDogdW5kZWZpbmVkKSkgOiB1bmRlZmluZWQpKTtcbn07XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IFJlYWN0RGV2T3ZlcmxheTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVJlYWN0RGV2T3ZlcmxheS5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/ReactDevOverlay.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/bus.js": +/*!******************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/bus.js ***! + \******************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nexports.__esModule = true;\nexports.off = exports.on = exports.emit = exports.TYPE_UNHANDLED_REJECTION = exports.TYPE_UNHANDLED_ERROR = exports.TYPE_REFFRESH = exports.TYPE_BUILD_ERROR = exports.TYPE_BUILD_OK = void 0;\nexports.TYPE_BUILD_OK = 'build-ok';\nexports.TYPE_BUILD_ERROR = 'build-error';\nexports.TYPE_REFFRESH = 'fast-refresh';\nexports.TYPE_UNHANDLED_ERROR = 'unhandled-error';\nexports.TYPE_UNHANDLED_REJECTION = 'unhandled-rejection';\nvar handlers = new Set();\nvar queue = [];\nfunction drain() {\n // Draining should never happen synchronously in case multiple handlers are\n // registered.\n setTimeout(function () {\n var _loop_1 = function () {\n var ev = queue.shift();\n handlers.forEach(function (handler) { return handler(ev); });\n };\n while (\n // Until we are out of events:\n Boolean(queue.length) &&\n // Or, if all handlers removed themselves as a result of handling the\n // event(s)\n Boolean(handlers.size)) {\n _loop_1();\n }\n }, 1);\n}\nfunction emit(ev) {\n queue.push(Object.freeze(__assign({}, ev)));\n drain();\n}\nexports.emit = emit;\nfunction on(fn) {\n if (handlers.has(fn)) {\n return false;\n }\n handlers.add(fn);\n drain();\n return true;\n}\nexports.on = on;\nfunction off(fn) {\n if (handlers.has(fn)) {\n handlers[\"delete\"](fn);\n return true;\n }\n return false;\n}\nexports.off = off;\n//# sourceMappingURL=bus.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2J1cy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0E7QUFDQSxpREFBaUQsT0FBTztBQUN4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCLFdBQVcsR0FBRyxVQUFVLEdBQUcsWUFBWSxHQUFHLGdDQUFnQyxHQUFHLDRCQUE0QixHQUFHLHFCQUFxQixHQUFHLHdCQUF3QixHQUFHLHFCQUFxQjtBQUNwTCxxQkFBcUI7QUFDckIsd0JBQXdCO0FBQ3hCLHFCQUFxQjtBQUNyQiw0QkFBNEI7QUFDNUIsZ0NBQWdDO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrREFBa0QscUJBQXFCO0FBQ3ZFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0Esd0NBQXdDO0FBQ3hDO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2J1cy5qcz84NGM3Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLm9mZiA9IGV4cG9ydHMub24gPSBleHBvcnRzLmVtaXQgPSBleHBvcnRzLlRZUEVfVU5IQU5ETEVEX1JFSkVDVElPTiA9IGV4cG9ydHMuVFlQRV9VTkhBTkRMRURfRVJST1IgPSBleHBvcnRzLlRZUEVfUkVGRlJFU0ggPSBleHBvcnRzLlRZUEVfQlVJTERfRVJST1IgPSBleHBvcnRzLlRZUEVfQlVJTERfT0sgPSB2b2lkIDA7XG5leHBvcnRzLlRZUEVfQlVJTERfT0sgPSAnYnVpbGQtb2snO1xuZXhwb3J0cy5UWVBFX0JVSUxEX0VSUk9SID0gJ2J1aWxkLWVycm9yJztcbmV4cG9ydHMuVFlQRV9SRUZGUkVTSCA9ICdmYXN0LXJlZnJlc2gnO1xuZXhwb3J0cy5UWVBFX1VOSEFORExFRF9FUlJPUiA9ICd1bmhhbmRsZWQtZXJyb3InO1xuZXhwb3J0cy5UWVBFX1VOSEFORExFRF9SRUpFQ1RJT04gPSAndW5oYW5kbGVkLXJlamVjdGlvbic7XG52YXIgaGFuZGxlcnMgPSBuZXcgU2V0KCk7XG52YXIgcXVldWUgPSBbXTtcbmZ1bmN0aW9uIGRyYWluKCkge1xuICAgIC8vIERyYWluaW5nIHNob3VsZCBuZXZlciBoYXBwZW4gc3luY2hyb25vdXNseSBpbiBjYXNlIG11bHRpcGxlIGhhbmRsZXJzIGFyZVxuICAgIC8vIHJlZ2lzdGVyZWQuXG4gICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBfbG9vcF8xID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIGV2ID0gcXVldWUuc2hpZnQoKTtcbiAgICAgICAgICAgIGhhbmRsZXJzLmZvckVhY2goZnVuY3Rpb24gKGhhbmRsZXIpIHsgcmV0dXJuIGhhbmRsZXIoZXYpOyB9KTtcbiAgICAgICAgfTtcbiAgICAgICAgd2hpbGUgKFxuICAgICAgICAvLyBVbnRpbCB3ZSBhcmUgb3V0IG9mIGV2ZW50czpcbiAgICAgICAgQm9vbGVhbihxdWV1ZS5sZW5ndGgpICYmXG4gICAgICAgICAgICAvLyBPciwgaWYgYWxsIGhhbmRsZXJzIHJlbW92ZWQgdGhlbXNlbHZlcyBhcyBhIHJlc3VsdCBvZiBoYW5kbGluZyB0aGVcbiAgICAgICAgICAgIC8vIGV2ZW50KHMpXG4gICAgICAgICAgICBCb29sZWFuKGhhbmRsZXJzLnNpemUpKSB7XG4gICAgICAgICAgICBfbG9vcF8xKCk7XG4gICAgICAgIH1cbiAgICB9LCAxKTtcbn1cbmZ1bmN0aW9uIGVtaXQoZXYpIHtcbiAgICBxdWV1ZS5wdXNoKE9iamVjdC5mcmVlemUoX19hc3NpZ24oe30sIGV2KSkpO1xuICAgIGRyYWluKCk7XG59XG5leHBvcnRzLmVtaXQgPSBlbWl0O1xuZnVuY3Rpb24gb24oZm4pIHtcbiAgICBpZiAoaGFuZGxlcnMuaGFzKGZuKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGhhbmRsZXJzLmFkZChmbik7XG4gICAgZHJhaW4oKTtcbiAgICByZXR1cm4gdHJ1ZTtcbn1cbmV4cG9ydHMub24gPSBvbjtcbmZ1bmN0aW9uIG9mZihmbikge1xuICAgIGlmIChoYW5kbGVycy5oYXMoZm4pKSB7XG4gICAgICAgIGhhbmRsZXJzW1wiZGVsZXRlXCJdKGZuKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cbmV4cG9ydHMub2ZmID0gb2ZmO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YnVzLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/bus.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/CodeFrame/CodeFrame.js": +/*!*********************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/CodeFrame/CodeFrame.js ***! + \*********************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nexports.__esModule = true;\nexports.CodeFrame = void 0;\nvar anser_1 = __importDefault(__webpack_require__(/*! anser */ \"./node_modules/anser/lib/index.js\"));\nvar React = __importStar(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nvar strip_ansi_1 = __importDefault(__webpack_require__(/*! strip-ansi */ \"./node_modules/strip-ansi/index.js\"));\nvar stack_frame_1 = __webpack_require__(/*! ../../helpers/stack-frame */ \"./node_modules/@next/react-dev-overlay/lib/internal/helpers/stack-frame.js\");\nvar CodeFrame = function CodeFrame(_a) {\n var stackFrame = _a.stackFrame, codeFrame = _a.codeFrame;\n // Strip leading spaces out of the code frame:\n var formattedFrame = React.useMemo(function () {\n var lines = codeFrame.split(/\\r?\\n/g);\n var prefixLength = lines\n .map(function (line) { return /^>? +\\d+ +\\| ( *)/.exec((0, strip_ansi_1[\"default\"])(line)); })\n .filter(Boolean)\n .map(function (v) { return v.pop(); })\n .reduce(function (c, n) { return (isNaN(c) ? n.length : Math.min(c, n.length)); }, NaN);\n if (prefixLength > 1) {\n var p_1 = ' '.repeat(prefixLength);\n return lines\n .map(function (line, a) {\n return ~(a = line.indexOf('|'))\n ? line.substring(0, a) + line.substring(a).replace(p_1, '')\n : line;\n })\n .join('\\n');\n }\n return lines.join('\\n');\n }, [codeFrame]);\n var decoded = React.useMemo(function () {\n return anser_1[\"default\"].ansiToJson(formattedFrame, {\n json: true,\n use_classes: true,\n remove_empty: true\n });\n }, [formattedFrame]);\n var open = React.useCallback(function () {\n var _a;\n var params = new URLSearchParams();\n for (var key in stackFrame) {\n params.append(key, ((_a = stackFrame[key]) !== null && _a !== void 0 ? _a : '').toString());\n }\n self\n .fetch(( false || '') + \"/__nextjs_launch-editor?\" + params.toString())\n .then(function () { }, function () {\n // TODO: report error\n });\n }, [stackFrame]);\n // TODO: make the caret absolute\n return (React.createElement(\"div\", { \"data-nextjs-codeframe\": true },\n React.createElement(\"div\", null,\n React.createElement(\"p\", { role: \"link\", onClick: open, tabIndex: 1, title: \"Click to open in your editor\" },\n React.createElement(\"span\", null,\n (0, stack_frame_1.getFrameSource)(stackFrame),\n \" @ \",\n stackFrame.methodName),\n React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 24 24\", fill: \"none\", stroke: \"currentColor\", strokeWidth: \"2\", strokeLinecap: \"round\", strokeLinejoin: \"round\" },\n React.createElement(\"path\", { d: \"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\" }),\n React.createElement(\"polyline\", { points: \"15 3 21 3 21 9\" }),\n React.createElement(\"line\", { x1: \"10\", y1: \"14\", x2: \"21\", y2: \"3\" })))),\n React.createElement(\"pre\", null, decoded.map(function (entry, index) { return (React.createElement(\"span\", { key: \"frame-\" + index, style: __assign({ color: entry.fg ? \"var(--color-\" + entry.fg + \")\" : undefined }, (entry.decoration === 'bold'\n ? { fontWeight: 800 }\n : entry.decoration === 'italic'\n ? { fontStyle: 'italic' }\n : undefined)) }, entry.content)); }))));\n};\nexports.CodeFrame = CodeFrame;\n//# sourceMappingURL=CodeFrame.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvQ29kZUZyYW1lL0NvZGVGcmFtZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0E7QUFDQSxpREFBaUQsT0FBTztBQUN4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQyxvQ0FBb0MsZ0JBQWdCO0FBQ3ZGLENBQUM7QUFDRDtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0EsMENBQTBDLDRCQUE0QjtBQUN0RSxDQUFDO0FBQ0Q7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZDQUE2QztBQUM3QztBQUNBLGtCQUFrQjtBQUNsQixpQkFBaUI7QUFDakIsOEJBQThCLG1CQUFPLENBQUMsZ0RBQU87QUFDN0MseUJBQXlCLG1CQUFPLENBQUMsNENBQU87QUFDeEMsbUNBQW1DLG1CQUFPLENBQUMsc0RBQVk7QUFDdkQsb0JBQW9CLG1CQUFPLENBQUMsNkdBQTJCO0FBQ3ZEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQyxzRUFBc0U7QUFDekc7QUFDQSxnQ0FBZ0MsaUJBQWlCO0FBQ2pELHNDQUFzQyx1REFBdUQ7QUFDN0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLE1BQWtDO0FBQ3RELGlDQUFpQztBQUNqQztBQUNBLFNBQVM7QUFDVCxLQUFLO0FBQ0w7QUFDQSx5Q0FBeUMsK0JBQStCO0FBQ3hFO0FBQ0EsdUNBQXVDLGlGQUFpRjtBQUN4SDtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZDQUE2QyxvS0FBb0s7QUFDak4sa0RBQWtELCtEQUErRDtBQUNqSCxzREFBc0QsMEJBQTBCO0FBQ2hGLGtEQUFrRCx1Q0FBdUM7QUFDekYsK0VBQStFLHNDQUFzQyx5Q0FBeUMsK0RBQStEO0FBQzdOLG9CQUFvQjtBQUNwQjtBQUNBLHdCQUF3QjtBQUN4QixtQ0FBbUMsb0JBQW9CO0FBQ3ZEO0FBQ0EsaUJBQWlCO0FBQ2pCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AbmV4dC9yZWFjdC1kZXYtb3ZlcmxheS9saWIvaW50ZXJuYWwvY29tcG9uZW50cy9Db2RlRnJhbWUvQ29kZUZyYW1lLmpzPzlmY2EiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19hc3NpZ24gPSAodGhpcyAmJiB0aGlzLl9fYXNzaWduKSB8fCBmdW5jdGlvbiAoKSB7XG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKVxuICAgICAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0O1xuICAgIH07XG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59O1xudmFyIF9fY3JlYXRlQmluZGluZyA9ICh0aGlzICYmIHRoaXMuX19jcmVhdGVCaW5kaW5nKSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH0pO1xufSkgOiAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIG9bazJdID0gbVtrXTtcbn0pKTtcbnZhciBfX3NldE1vZHVsZURlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9fc2V0TW9kdWxlRGVmYXVsdCkgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgdikge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBcImRlZmF1bHRcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdiB9KTtcbn0pIDogZnVuY3Rpb24obywgdikge1xuICAgIG9bXCJkZWZhdWx0XCJdID0gdjtcbn0pO1xudmFyIF9faW1wb3J0U3RhciA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnRTdGFyKSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDtcbiAgICB2YXIgcmVzdWx0ID0ge307XG4gICAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrIGluIG1vZCkgaWYgKGsgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChtb2QsIGspKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGspO1xuICAgIF9fc2V0TW9kdWxlRGVmYXVsdChyZXN1bHQsIG1vZCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5Db2RlRnJhbWUgPSB2b2lkIDA7XG52YXIgYW5zZXJfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiYW5zZXJcIikpO1xudmFyIFJlYWN0ID0gX19pbXBvcnRTdGFyKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG52YXIgc3RyaXBfYW5zaV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJzdHJpcC1hbnNpXCIpKTtcbnZhciBzdGFja19mcmFtZV8xID0gcmVxdWlyZShcIi4uLy4uL2hlbHBlcnMvc3RhY2stZnJhbWVcIik7XG52YXIgQ29kZUZyYW1lID0gZnVuY3Rpb24gQ29kZUZyYW1lKF9hKSB7XG4gICAgdmFyIHN0YWNrRnJhbWUgPSBfYS5zdGFja0ZyYW1lLCBjb2RlRnJhbWUgPSBfYS5jb2RlRnJhbWU7XG4gICAgLy8gU3RyaXAgbGVhZGluZyBzcGFjZXMgb3V0IG9mIHRoZSBjb2RlIGZyYW1lOlxuICAgIHZhciBmb3JtYXR0ZWRGcmFtZSA9IFJlYWN0LnVzZU1lbW8oZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgbGluZXMgPSBjb2RlRnJhbWUuc3BsaXQoL1xccj9cXG4vZyk7XG4gICAgICAgIHZhciBwcmVmaXhMZW5ndGggPSBsaW5lc1xuICAgICAgICAgICAgLm1hcChmdW5jdGlvbiAobGluZSkgeyByZXR1cm4gL14+PyArXFxkKyArXFx8ICggKikvLmV4ZWMoKDAsIHN0cmlwX2Fuc2lfMVtcImRlZmF1bHRcIl0pKGxpbmUpKTsgfSlcbiAgICAgICAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgICAgICAgIC5tYXAoZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHYucG9wKCk7IH0pXG4gICAgICAgICAgICAucmVkdWNlKGZ1bmN0aW9uIChjLCBuKSB7IHJldHVybiAoaXNOYU4oYykgPyBuLmxlbmd0aCA6IE1hdGgubWluKGMsIG4ubGVuZ3RoKSk7IH0sIE5hTik7XG4gICAgICAgIGlmIChwcmVmaXhMZW5ndGggPiAxKSB7XG4gICAgICAgICAgICB2YXIgcF8xID0gJyAnLnJlcGVhdChwcmVmaXhMZW5ndGgpO1xuICAgICAgICAgICAgcmV0dXJuIGxpbmVzXG4gICAgICAgICAgICAgICAgLm1hcChmdW5jdGlvbiAobGluZSwgYSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB+KGEgPSBsaW5lLmluZGV4T2YoJ3wnKSlcbiAgICAgICAgICAgICAgICAgICAgPyBsaW5lLnN1YnN0cmluZygwLCBhKSArIGxpbmUuc3Vic3RyaW5nKGEpLnJlcGxhY2UocF8xLCAnJylcbiAgICAgICAgICAgICAgICAgICAgOiBsaW5lO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuam9pbignXFxuJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxpbmVzLmpvaW4oJ1xcbicpO1xuICAgIH0sIFtjb2RlRnJhbWVdKTtcbiAgICB2YXIgZGVjb2RlZCA9IFJlYWN0LnVzZU1lbW8oZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gYW5zZXJfMVtcImRlZmF1bHRcIl0uYW5zaVRvSnNvbihmb3JtYXR0ZWRGcmFtZSwge1xuICAgICAgICAgICAganNvbjogdHJ1ZSxcbiAgICAgICAgICAgIHVzZV9jbGFzc2VzOiB0cnVlLFxuICAgICAgICAgICAgcmVtb3ZlX2VtcHR5OiB0cnVlXG4gICAgICAgIH0pO1xuICAgIH0sIFtmb3JtYXR0ZWRGcmFtZV0pO1xuICAgIHZhciBvcGVuID0gUmVhY3QudXNlQ2FsbGJhY2soZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIHZhciBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG4gICAgICAgIGZvciAodmFyIGtleSBpbiBzdGFja0ZyYW1lKSB7XG4gICAgICAgICAgICBwYXJhbXMuYXBwZW5kKGtleSwgKChfYSA9IHN0YWNrRnJhbWVba2V5XSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJycpLnRvU3RyaW5nKCkpO1xuICAgICAgICB9XG4gICAgICAgIHNlbGZcbiAgICAgICAgICAgIC5mZXRjaCgocHJvY2Vzcy5lbnYuX19ORVhUX1JPVVRFUl9CQVNFUEFUSCB8fCAnJykgKyBcIi9fX25leHRqc19sYXVuY2gtZWRpdG9yP1wiICsgcGFyYW1zLnRvU3RyaW5nKCkpXG4gICAgICAgICAgICAudGhlbihmdW5jdGlvbiAoKSB7IH0sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIC8vIFRPRE86IHJlcG9ydCBlcnJvclxuICAgICAgICB9KTtcbiAgICB9LCBbc3RhY2tGcmFtZV0pO1xuICAgIC8vIFRPRE86IG1ha2UgdGhlIGNhcmV0IGFic29sdXRlXG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgXCJkYXRhLW5leHRqcy1jb2RlZnJhbWVcIjogdHJ1ZSB9LFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIG51bGwsXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwicFwiLCB7IHJvbGU6IFwibGlua1wiLCBvbkNsaWNrOiBvcGVuLCB0YWJJbmRleDogMSwgdGl0bGU6IFwiQ2xpY2sgdG8gb3BlbiBpbiB5b3VyIGVkaXRvclwiIH0sXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwgbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgKDAsIHN0YWNrX2ZyYW1lXzEuZ2V0RnJhbWVTb3VyY2UpKHN0YWNrRnJhbWUpLFxuICAgICAgICAgICAgICAgICAgICBcIiBAIFwiLFxuICAgICAgICAgICAgICAgICAgICBzdGFja0ZyYW1lLm1ldGhvZE5hbWUpLFxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgeyB4bWxuczogXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLCB2aWV3Qm94OiBcIjAgMCAyNCAyNFwiLCBmaWxsOiBcIm5vbmVcIiwgc3Ryb2tlOiBcImN1cnJlbnRDb2xvclwiLCBzdHJva2VXaWR0aDogXCIyXCIsIHN0cm9rZUxpbmVjYXA6IFwicm91bmRcIiwgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIiB9LFxuICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7IGQ6IFwiTTE4IDEzdjZhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDZcIiB9KSxcbiAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInBvbHlsaW5lXCIsIHsgcG9pbnRzOiBcIjE1IDMgMjEgMyAyMSA5XCIgfSksXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJsaW5lXCIsIHsgeDE6IFwiMTBcIiwgeTE6IFwiMTRcIiwgeDI6IFwiMjFcIiwgeTI6IFwiM1wiIH0pKSkpLFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwicHJlXCIsIG51bGwsIGRlY29kZWQubWFwKGZ1bmN0aW9uIChlbnRyeSwgaW5kZXgpIHsgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7IGtleTogXCJmcmFtZS1cIiArIGluZGV4LCBzdHlsZTogX19hc3NpZ24oeyBjb2xvcjogZW50cnkuZmcgPyBcInZhcigtLWNvbG9yLVwiICsgZW50cnkuZmcgKyBcIilcIiA6IHVuZGVmaW5lZCB9LCAoZW50cnkuZGVjb3JhdGlvbiA9PT0gJ2JvbGQnXG4gICAgICAgICAgICAgICAgPyB7IGZvbnRXZWlnaHQ6IDgwMCB9XG4gICAgICAgICAgICAgICAgOiBlbnRyeS5kZWNvcmF0aW9uID09PSAnaXRhbGljJ1xuICAgICAgICAgICAgICAgICAgICA/IHsgZm9udFN0eWxlOiAnaXRhbGljJyB9XG4gICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkKSkgfSwgZW50cnkuY29udGVudCkpOyB9KSkpKTtcbn07XG5leHBvcnRzLkNvZGVGcmFtZSA9IENvZGVGcmFtZTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUNvZGVGcmFtZS5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/CodeFrame/CodeFrame.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/CodeFrame/index.js": +/*!*****************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/CodeFrame/index.js ***! + \*****************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nexports.__esModule = true;\nexports.CodeFrame = void 0;\nvar CodeFrame_1 = __webpack_require__(/*! ./CodeFrame */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/CodeFrame/CodeFrame.js\");\n__createBinding(exports, CodeFrame_1, \"CodeFrame\");\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvQ29kZUZyYW1lL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQTtBQUNBLG1DQUFtQyxvQ0FBb0MsZ0JBQWdCO0FBQ3ZGLENBQUM7QUFDRDtBQUNBO0FBQ0EsQ0FBQztBQUNELGtCQUFrQjtBQUNsQixpQkFBaUI7QUFDakIsa0JBQWtCLG1CQUFPLENBQUMsMEdBQWE7QUFDdkM7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvQ29kZUZyYW1lL2luZGV4LmpzP2E0MjUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19jcmVhdGVCaW5kaW5nID0gKHRoaXMgJiYgdGhpcy5fX2NyZWF0ZUJpbmRpbmcpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfSk7XG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgb1trMl0gPSBtW2tdO1xufSkpO1xuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHMuQ29kZUZyYW1lID0gdm9pZCAwO1xudmFyIENvZGVGcmFtZV8xID0gcmVxdWlyZShcIi4vQ29kZUZyYW1lXCIpO1xuX19jcmVhdGVCaW5kaW5nKGV4cG9ydHMsIENvZGVGcmFtZV8xLCBcIkNvZGVGcmFtZVwiKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/CodeFrame/index.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/CodeFrame/styles.js": +/*!******************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/CodeFrame/styles.js ***! + \******************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nexports.__esModule = true;\nexports.styles = void 0;\nvar noop_template_1 = __webpack_require__(/*! ../../helpers/noop-template */ \"./node_modules/@next/react-dev-overlay/lib/internal/helpers/noop-template.js\");\nvar styles = (0, noop_template_1.noop)(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\n [data-nextjs-codeframe] {\\n overflow: auto;\\n border-radius: var(--size-gap-half);\\n background-color: var(--color-ansi-bg);\\n color: var(--color-ansi-fg);\\n }\\n [data-nextjs-codeframe]::selection,\\n [data-nextjs-codeframe] *::selection {\\n background-color: var(--color-ansi-selection);\\n }\\n [data-nextjs-codeframe] * {\\n color: inherit;\\n background-color: transparent;\\n font-family: var(--font-stack-monospace);\\n }\\n\\n [data-nextjs-codeframe] > * {\\n margin: 0;\\n padding: calc(var(--size-gap) + var(--size-gap-half))\\n calc(var(--size-gap-double) + var(--size-gap-half));\\n }\\n [data-nextjs-codeframe] > div {\\n display: inline-block;\\n width: auto;\\n min-width: 100%;\\n border-bottom: 1px solid var(--color-ansi-bright-black);\\n }\\n [data-nextjs-codeframe] > div > p {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n cursor: pointer;\\n margin: 0;\\n }\\n [data-nextjs-codeframe] > div > p:hover {\\n text-decoration: underline dotted;\\n }\\n [data-nextjs-codeframe] div > p > svg {\\n width: auto;\\n height: 1em;\\n margin-left: 8px;\\n }\\n [data-nextjs-codeframe] div > pre {\\n overflow: hidden;\\n display: inline-block;\\n }\\n\"], [\"\\n [data-nextjs-codeframe] {\\n overflow: auto;\\n border-radius: var(--size-gap-half);\\n background-color: var(--color-ansi-bg);\\n color: var(--color-ansi-fg);\\n }\\n [data-nextjs-codeframe]::selection,\\n [data-nextjs-codeframe] *::selection {\\n background-color: var(--color-ansi-selection);\\n }\\n [data-nextjs-codeframe] * {\\n color: inherit;\\n background-color: transparent;\\n font-family: var(--font-stack-monospace);\\n }\\n\\n [data-nextjs-codeframe] > * {\\n margin: 0;\\n padding: calc(var(--size-gap) + var(--size-gap-half))\\n calc(var(--size-gap-double) + var(--size-gap-half));\\n }\\n [data-nextjs-codeframe] > div {\\n display: inline-block;\\n width: auto;\\n min-width: 100%;\\n border-bottom: 1px solid var(--color-ansi-bright-black);\\n }\\n [data-nextjs-codeframe] > div > p {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n cursor: pointer;\\n margin: 0;\\n }\\n [data-nextjs-codeframe] > div > p:hover {\\n text-decoration: underline dotted;\\n }\\n [data-nextjs-codeframe] div > p > svg {\\n width: auto;\\n height: 1em;\\n margin-left: 8px;\\n }\\n [data-nextjs-codeframe] div > pre {\\n overflow: hidden;\\n display: inline-block;\\n }\\n\"])));\nexports.styles = styles;\nvar templateObject_1;\n//# sourceMappingURL=styles.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvQ29kZUZyYW1lL3N0eWxlcy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0EsaUNBQWlDLHVDQUF1QyxZQUFZLEtBQUssT0FBTztBQUNoRztBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCLGNBQWM7QUFDZCxzQkFBc0IsbUJBQU8sQ0FBQyxpSEFBNkI7QUFDM0QsbUlBQW1JLHFCQUFxQiwwQ0FBMEMsNkNBQTZDLGtDQUFrQyxLQUFLLGlGQUFpRixvREFBb0QsS0FBSywrQkFBK0IscUJBQXFCLG9DQUFvQywrQ0FBK0MsS0FBSyxtQ0FBbUMsZ0JBQWdCLHVIQUF1SCxLQUFLLG1DQUFtQyw0QkFBNEIsa0JBQWtCLHNCQUFzQiw4REFBOEQsS0FBSyx1Q0FBdUMsb0JBQW9CLDBCQUEwQixxQ0FBcUMsc0JBQXNCLGdCQUFnQixLQUFLLDZDQUE2Qyx3Q0FBd0MsS0FBSywyQ0FBMkMsa0JBQWtCLGtCQUFrQix1QkFBdUIsS0FBSyx1Q0FBdUMsdUJBQXVCLDRCQUE0QixLQUFLLHFDQUFxQyxxQkFBcUIsMENBQTBDLDZDQUE2QyxrQ0FBa0MsS0FBSyxpRkFBaUYsb0RBQW9ELEtBQUssK0JBQStCLHFCQUFxQixvQ0FBb0MsK0NBQStDLEtBQUssbUNBQW1DLGdCQUFnQix1SEFBdUgsS0FBSyxtQ0FBbUMsNEJBQTRCLGtCQUFrQixzQkFBc0IsOERBQThELEtBQUssdUNBQXVDLG9CQUFvQiwwQkFBMEIscUNBQXFDLHNCQUFzQixnQkFBZ0IsS0FBSyw2Q0FBNkMsd0NBQXdDLEtBQUssMkNBQTJDLGtCQUFrQixrQkFBa0IsdUJBQXVCLEtBQUssdUNBQXVDLHVCQUF1Qiw0QkFBNEIsS0FBSztBQUM5akYsY0FBYztBQUNkO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BuZXh0L3JlYWN0LWRldi1vdmVybGF5L2xpYi9pbnRlcm5hbC9jb21wb25lbnRzL0NvZGVGcmFtZS9zdHlsZXMuanM/NDk1MyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX21ha2VUZW1wbGF0ZU9iamVjdCA9ICh0aGlzICYmIHRoaXMuX19tYWtlVGVtcGxhdGVPYmplY3QpIHx8IGZ1bmN0aW9uIChjb29rZWQsIHJhdykge1xuICAgIGlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvb2tlZCwgXCJyYXdcIiwgeyB2YWx1ZTogcmF3IH0pOyB9IGVsc2UgeyBjb29rZWQucmF3ID0gcmF3OyB9XG4gICAgcmV0dXJuIGNvb2tlZDtcbn07XG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5zdHlsZXMgPSB2b2lkIDA7XG52YXIgbm9vcF90ZW1wbGF0ZV8xID0gcmVxdWlyZShcIi4uLy4uL2hlbHBlcnMvbm9vcC10ZW1wbGF0ZVwiKTtcbnZhciBzdHlsZXMgPSAoMCwgbm9vcF90ZW1wbGF0ZV8xLm5vb3ApKHRlbXBsYXRlT2JqZWN0XzEgfHwgKHRlbXBsYXRlT2JqZWN0XzEgPSBfX21ha2VUZW1wbGF0ZU9iamVjdChbXCJcXG4gIFtkYXRhLW5leHRqcy1jb2RlZnJhbWVdIHtcXG4gICAgb3ZlcmZsb3c6IGF1dG87XFxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXNpemUtZ2FwLWhhbGYpO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLWJnKTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktZmcpO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZV06OnNlbGVjdGlvbixcXG4gIFtkYXRhLW5leHRqcy1jb2RlZnJhbWVdICo6OnNlbGVjdGlvbiB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktc2VsZWN0aW9uKTtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1jb2RlZnJhbWVdICoge1xcbiAgICBjb2xvcjogaW5oZXJpdDtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXN0YWNrLW1vbm9zcGFjZSk7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lXSA+ICoge1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IGNhbGModmFyKC0tc2l6ZS1nYXApICsgdmFyKC0tc2l6ZS1nYXAtaGFsZikpXFxuICAgICAgY2FsYyh2YXIoLS1zaXplLWdhcC1kb3VibGUpICsgdmFyKC0tc2l6ZS1nYXAtaGFsZikpO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZV0gPiBkaXYge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgICBtaW4td2lkdGg6IDEwMCU7XFxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jb2xvci1hbnNpLWJyaWdodC1ibGFjayk7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lXSA+IGRpdiA+IHAge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgbWFyZ2luOiAwO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZV0gPiBkaXYgPiBwOmhvdmVyIHtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZV0gZGl2ID4gcCA+IHN2ZyB7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgICBoZWlnaHQ6IDFlbTtcXG4gICAgbWFyZ2luLWxlZnQ6IDhweDtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1jb2RlZnJhbWVdIGRpdiA+IHByZSB7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIH1cXG5cIl0sIFtcIlxcbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZV0ge1xcbiAgICBvdmVyZmxvdzogYXV0bztcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2l6ZS1nYXAtaGFsZik7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktYmcpO1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItYW5zaS1mZyk7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lXTo6c2VsZWN0aW9uLFxcbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZV0gKjo6c2VsZWN0aW9uIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYW5zaS1zZWxlY3Rpb24pO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZV0gKiB7XFxuICAgIGNvbG9yOiBpbmhlcml0O1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc3RhY2stbW9ub3NwYWNlKTtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1jb2RlZnJhbWVdID4gKiB7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogY2FsYyh2YXIoLS1zaXplLWdhcCkgKyB2YXIoLS1zaXplLWdhcC1oYWxmKSlcXG4gICAgICBjYWxjKHZhcigtLXNpemUtZ2FwLWRvdWJsZSkgKyB2YXIoLS1zaXplLWdhcC1oYWxmKSk7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lXSA+IGRpdiB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgd2lkdGg6IGF1dG87XFxuICAgIG1pbi13aWR0aDogMTAwJTtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWFuc2ktYnJpZ2h0LWJsYWNrKTtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1jb2RlZnJhbWVdID4gZGl2ID4gcCB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICBtYXJnaW46IDA7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lXSA+IGRpdiA+IHA6aG92ZXIge1xcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lXSBkaXYgPiBwID4gc3ZnIHtcXG4gICAgd2lkdGg6IGF1dG87XFxuICAgIGhlaWdodDogMWVtO1xcbiAgICBtYXJnaW4tbGVmdDogOHB4O1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZV0gZGl2ID4gcHJlIHtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgfVxcblwiXSkpKTtcbmV4cG9ydHMuc3R5bGVzID0gc3R5bGVzO1xudmFyIHRlbXBsYXRlT2JqZWN0XzE7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1zdHlsZXMuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/CodeFrame/styles.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/Dialog.js": +/*!***************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/Dialog.js ***! + \***************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nexports.__esModule = true;\nexports.Dialog = void 0;\nvar React = __importStar(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nvar use_on_click_outside_1 = __webpack_require__(/*! ../../hooks/use-on-click-outside */ \"./node_modules/@next/react-dev-overlay/lib/internal/hooks/use-on-click-outside.js\");\nvar Dialog = function Dialog(_a) {\n var children = _a.children, type = _a.type, onClose = _a.onClose, props = __rest(_a, [\"children\", \"type\", \"onClose\"]);\n var _b = __read(React.useState(null), 2), dialog = _b[0], setDialog = _b[1];\n var onDialog = React.useCallback(function (node) {\n setDialog(node);\n }, []);\n (0, use_on_click_outside_1.useOnClickOutside)(dialog, onClose);\n // Make HTMLElements with `role=link` accessible to be triggered by the\n // keyboard, i.e. [Enter].\n React.useEffect(function () {\n if (dialog == null) {\n return;\n }\n var root = dialog.getRootNode();\n // Always true, but we do this for TypeScript:\n if (!(root instanceof ShadowRoot)) {\n return;\n }\n var shadowRoot = root;\n function handler(e) {\n var el = shadowRoot.activeElement;\n if (e.key === 'Enter' &&\n el instanceof HTMLElement &&\n el.getAttribute('role') === 'link') {\n e.preventDefault();\n e.stopPropagation();\n el.click();\n }\n }\n shadowRoot.addEventListener('keydown', handler);\n return function () {\n return shadowRoot.removeEventListener('keydown', handler);\n };\n }, [dialog]);\n return (React.createElement(\"div\", { ref: onDialog, \"data-nextjs-dialog\": true, tabIndex: -1, role: \"dialog\", \"aria-labelledby\": props['aria-labelledby'], \"aria-describedby\": props['aria-describedby'], \"aria-modal\": \"true\" },\n React.createElement(\"div\", { \"data-nextjs-dialog-banner\": true, className: \"banner-\" + type }),\n children));\n};\nexports.Dialog = Dialog;\n//# sourceMappingURL=Dialog.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvRGlhbG9nL0RpYWxvZy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0E7QUFDQSxtQ0FBbUMsb0NBQW9DLGdCQUFnQjtBQUN2RixDQUFDO0FBQ0Q7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBLDBDQUEwQyw0QkFBNEI7QUFDdEUsQ0FBQztBQUNEO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZEQUE2RCxjQUFjO0FBQzNFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixNQUFNO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQixjQUFjO0FBQ2QseUJBQXlCLG1CQUFPLENBQUMsNENBQU87QUFDeEMsNkJBQTZCLG1CQUFPLENBQUMsMkhBQWtDO0FBQ3ZFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLHlDQUF5QywyTEFBMkw7QUFDcE8scUNBQXFDLGdFQUFnRTtBQUNyRztBQUNBO0FBQ0EsY0FBYztBQUNkIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AbmV4dC9yZWFjdC1kZXYtb3ZlcmxheS9saWIvaW50ZXJuYWwvY29tcG9uZW50cy9EaWFsb2cvRGlhbG9nLmpzPzY0MGIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19jcmVhdGVCaW5kaW5nID0gKHRoaXMgJiYgdGhpcy5fX2NyZWF0ZUJpbmRpbmcpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfSk7XG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgb1trMl0gPSBtW2tdO1xufSkpO1xudmFyIF9fc2V0TW9kdWxlRGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19zZXRNb2R1bGVEZWZhdWx0KSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCB2KSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIFwiZGVmYXVsdFwiLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2IH0pO1xufSkgOiBmdW5jdGlvbihvLCB2KSB7XG4gICAgb1tcImRlZmF1bHRcIl0gPSB2O1xufSk7XG52YXIgX19pbXBvcnRTdGFyID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydFN0YXIpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSByZXR1cm4gbW9kO1xuICAgIHZhciByZXN1bHQgPSB7fTtcbiAgICBpZiAobW9kICE9IG51bGwpIGZvciAodmFyIGsgaW4gbW9kKSBpZiAoayAhPT0gXCJkZWZhdWx0XCIgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG1vZCwgaykpIF9fY3JlYXRlQmluZGluZyhyZXN1bHQsIG1vZCwgayk7XG4gICAgX19zZXRNb2R1bGVEZWZhdWx0KHJlc3VsdCwgbW9kKTtcbiAgICByZXR1cm4gcmVzdWx0O1xufTtcbnZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbnZhciBfX3JlYWQgPSAodGhpcyAmJiB0aGlzLl9fcmVhZCkgfHwgZnVuY3Rpb24gKG8sIG4pIHtcbiAgICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07XG4gICAgaWYgKCFtKSByZXR1cm4gbztcbiAgICB2YXIgaSA9IG0uY2FsbChvKSwgciwgYXIgPSBbXSwgZTtcbiAgICB0cnkge1xuICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycm9yKSB7IGUgPSB7IGVycm9yOiBlcnJvciB9OyB9XG4gICAgZmluYWxseSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVtcInJldHVyblwiXSkpIG0uY2FsbChpKTtcbiAgICAgICAgfVxuICAgICAgICBmaW5hbGx5IHsgaWYgKGUpIHRocm93IGUuZXJyb3I7IH1cbiAgICB9XG4gICAgcmV0dXJuIGFyO1xufTtcbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLkRpYWxvZyA9IHZvaWQgMDtcbnZhciBSZWFjdCA9IF9faW1wb3J0U3RhcihyZXF1aXJlKFwicmVhY3RcIikpO1xudmFyIHVzZV9vbl9jbGlja19vdXRzaWRlXzEgPSByZXF1aXJlKFwiLi4vLi4vaG9va3MvdXNlLW9uLWNsaWNrLW91dHNpZGVcIik7XG52YXIgRGlhbG9nID0gZnVuY3Rpb24gRGlhbG9nKF9hKSB7XG4gICAgdmFyIGNoaWxkcmVuID0gX2EuY2hpbGRyZW4sIHR5cGUgPSBfYS50eXBlLCBvbkNsb3NlID0gX2Eub25DbG9zZSwgcHJvcHMgPSBfX3Jlc3QoX2EsIFtcImNoaWxkcmVuXCIsIFwidHlwZVwiLCBcIm9uQ2xvc2VcIl0pO1xuICAgIHZhciBfYiA9IF9fcmVhZChSZWFjdC51c2VTdGF0ZShudWxsKSwgMiksIGRpYWxvZyA9IF9iWzBdLCBzZXREaWFsb2cgPSBfYlsxXTtcbiAgICB2YXIgb25EaWFsb2cgPSBSZWFjdC51c2VDYWxsYmFjayhmdW5jdGlvbiAobm9kZSkge1xuICAgICAgICBzZXREaWFsb2cobm9kZSk7XG4gICAgfSwgW10pO1xuICAgICgwLCB1c2Vfb25fY2xpY2tfb3V0c2lkZV8xLnVzZU9uQ2xpY2tPdXRzaWRlKShkaWFsb2csIG9uQ2xvc2UpO1xuICAgIC8vIE1ha2UgSFRNTEVsZW1lbnRzIHdpdGggYHJvbGU9bGlua2AgYWNjZXNzaWJsZSB0byBiZSB0cmlnZ2VyZWQgYnkgdGhlXG4gICAgLy8ga2V5Ym9hcmQsIGkuZS4gW0VudGVyXS5cbiAgICBSZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoZGlhbG9nID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcm9vdCA9IGRpYWxvZy5nZXRSb290Tm9kZSgpO1xuICAgICAgICAvLyBBbHdheXMgdHJ1ZSwgYnV0IHdlIGRvIHRoaXMgZm9yIFR5cGVTY3JpcHQ6XG4gICAgICAgIGlmICghKHJvb3QgaW5zdGFuY2VvZiBTaGFkb3dSb290KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhciBzaGFkb3dSb290ID0gcm9vdDtcbiAgICAgICAgZnVuY3Rpb24gaGFuZGxlcihlKSB7XG4gICAgICAgICAgICB2YXIgZWwgPSBzaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicgJiZcbiAgICAgICAgICAgICAgICBlbCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ICYmXG4gICAgICAgICAgICAgICAgZWwuZ2V0QXR0cmlidXRlKCdyb2xlJykgPT09ICdsaW5rJykge1xuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIGVsLmNsaWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgc2hhZG93Um9vdC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgaGFuZGxlcik7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gc2hhZG93Um9vdC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgaGFuZGxlcik7XG4gICAgICAgIH07XG4gICAgfSwgW2RpYWxvZ10pO1xuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IHJlZjogb25EaWFsb2csIFwiZGF0YS1uZXh0anMtZGlhbG9nXCI6IHRydWUsIHRhYkluZGV4OiAtMSwgcm9sZTogXCJkaWFsb2dcIiwgXCJhcmlhLWxhYmVsbGVkYnlcIjogcHJvcHNbJ2FyaWEtbGFiZWxsZWRieSddLCBcImFyaWEtZGVzY3JpYmVkYnlcIjogcHJvcHNbJ2FyaWEtZGVzY3JpYmVkYnknXSwgXCJhcmlhLW1vZGFsXCI6IFwidHJ1ZVwiIH0sXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyBcImRhdGEtbmV4dGpzLWRpYWxvZy1iYW5uZXJcIjogdHJ1ZSwgY2xhc3NOYW1lOiBcImJhbm5lci1cIiArIHR5cGUgfSksXG4gICAgICAgIGNoaWxkcmVuKSk7XG59O1xuZXhwb3J0cy5EaWFsb2cgPSBEaWFsb2c7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1EaWFsb2cuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/Dialog.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/DialogBody.js": +/*!*******************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/DialogBody.js ***! + \*******************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nexports.__esModule = true;\nexports.DialogBody = void 0;\nvar React = __importStar(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nvar DialogBody = function DialogBody(_a) {\n var children = _a.children, className = _a.className;\n return (React.createElement(\"div\", { \"data-nextjs-dialog-body\": true, className: className }, children));\n};\nexports.DialogBody = DialogBody;\n//# sourceMappingURL=DialogBody.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvRGlhbG9nL0RpYWxvZ0JvZHkuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBO0FBQ0EsbUNBQW1DLG9DQUFvQyxnQkFBZ0I7QUFDdkYsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQSwwQ0FBMEMsNEJBQTRCO0FBQ3RFLENBQUM7QUFDRDtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQixrQkFBa0I7QUFDbEIseUJBQXlCLG1CQUFPLENBQUMsNENBQU87QUFDeEM7QUFDQTtBQUNBLHlDQUF5Qyx1REFBdUQ7QUFDaEc7QUFDQSxrQkFBa0I7QUFDbEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BuZXh0L3JlYWN0LWRldi1vdmVybGF5L2xpYi9pbnRlcm5hbC9jb21wb25lbnRzL0RpYWxvZy9EaWFsb2dCb2R5LmpzP2Q3NzIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19jcmVhdGVCaW5kaW5nID0gKHRoaXMgJiYgdGhpcy5fX2NyZWF0ZUJpbmRpbmcpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfSk7XG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgb1trMl0gPSBtW2tdO1xufSkpO1xudmFyIF9fc2V0TW9kdWxlRGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19zZXRNb2R1bGVEZWZhdWx0KSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCB2KSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIFwiZGVmYXVsdFwiLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2IH0pO1xufSkgOiBmdW5jdGlvbihvLCB2KSB7XG4gICAgb1tcImRlZmF1bHRcIl0gPSB2O1xufSk7XG52YXIgX19pbXBvcnRTdGFyID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydFN0YXIpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSByZXR1cm4gbW9kO1xuICAgIHZhciByZXN1bHQgPSB7fTtcbiAgICBpZiAobW9kICE9IG51bGwpIGZvciAodmFyIGsgaW4gbW9kKSBpZiAoayAhPT0gXCJkZWZhdWx0XCIgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG1vZCwgaykpIF9fY3JlYXRlQmluZGluZyhyZXN1bHQsIG1vZCwgayk7XG4gICAgX19zZXRNb2R1bGVEZWZhdWx0KHJlc3VsdCwgbW9kKTtcbiAgICByZXR1cm4gcmVzdWx0O1xufTtcbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLkRpYWxvZ0JvZHkgPSB2b2lkIDA7XG52YXIgUmVhY3QgPSBfX2ltcG9ydFN0YXIocmVxdWlyZShcInJlYWN0XCIpKTtcbnZhciBEaWFsb2dCb2R5ID0gZnVuY3Rpb24gRGlhbG9nQm9keShfYSkge1xuICAgIHZhciBjaGlsZHJlbiA9IF9hLmNoaWxkcmVuLCBjbGFzc05hbWUgPSBfYS5jbGFzc05hbWU7XG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgXCJkYXRhLW5leHRqcy1kaWFsb2ctYm9keVwiOiB0cnVlLCBjbGFzc05hbWU6IGNsYXNzTmFtZSB9LCBjaGlsZHJlbikpO1xufTtcbmV4cG9ydHMuRGlhbG9nQm9keSA9IERpYWxvZ0JvZHk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1EaWFsb2dCb2R5LmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/DialogBody.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/DialogContent.js": +/*!**********************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/DialogContent.js ***! + \**********************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nexports.__esModule = true;\nexports.DialogContent = void 0;\nvar React = __importStar(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nvar DialogContent = function DialogContent(_a) {\n var children = _a.children, className = _a.className;\n return (React.createElement(\"div\", { \"data-nextjs-dialog-content\": true, className: className }, children));\n};\nexports.DialogContent = DialogContent;\n//# sourceMappingURL=DialogContent.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvRGlhbG9nL0RpYWxvZ0NvbnRlbnQuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBO0FBQ0EsbUNBQW1DLG9DQUFvQyxnQkFBZ0I7QUFDdkYsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQSwwQ0FBMEMsNEJBQTRCO0FBQ3RFLENBQUM7QUFDRDtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQixxQkFBcUI7QUFDckIseUJBQXlCLG1CQUFPLENBQUMsNENBQU87QUFDeEM7QUFDQTtBQUNBLHlDQUF5QywwREFBMEQ7QUFDbkc7QUFDQSxxQkFBcUI7QUFDckIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BuZXh0L3JlYWN0LWRldi1vdmVybGF5L2xpYi9pbnRlcm5hbC9jb21wb25lbnRzL0RpYWxvZy9EaWFsb2dDb250ZW50LmpzPzk5NGYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19jcmVhdGVCaW5kaW5nID0gKHRoaXMgJiYgdGhpcy5fX2NyZWF0ZUJpbmRpbmcpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfSk7XG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgb1trMl0gPSBtW2tdO1xufSkpO1xudmFyIF9fc2V0TW9kdWxlRGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19zZXRNb2R1bGVEZWZhdWx0KSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCB2KSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIFwiZGVmYXVsdFwiLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2IH0pO1xufSkgOiBmdW5jdGlvbihvLCB2KSB7XG4gICAgb1tcImRlZmF1bHRcIl0gPSB2O1xufSk7XG52YXIgX19pbXBvcnRTdGFyID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydFN0YXIpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSByZXR1cm4gbW9kO1xuICAgIHZhciByZXN1bHQgPSB7fTtcbiAgICBpZiAobW9kICE9IG51bGwpIGZvciAodmFyIGsgaW4gbW9kKSBpZiAoayAhPT0gXCJkZWZhdWx0XCIgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG1vZCwgaykpIF9fY3JlYXRlQmluZGluZyhyZXN1bHQsIG1vZCwgayk7XG4gICAgX19zZXRNb2R1bGVEZWZhdWx0KHJlc3VsdCwgbW9kKTtcbiAgICByZXR1cm4gcmVzdWx0O1xufTtcbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLkRpYWxvZ0NvbnRlbnQgPSB2b2lkIDA7XG52YXIgUmVhY3QgPSBfX2ltcG9ydFN0YXIocmVxdWlyZShcInJlYWN0XCIpKTtcbnZhciBEaWFsb2dDb250ZW50ID0gZnVuY3Rpb24gRGlhbG9nQ29udGVudChfYSkge1xuICAgIHZhciBjaGlsZHJlbiA9IF9hLmNoaWxkcmVuLCBjbGFzc05hbWUgPSBfYS5jbGFzc05hbWU7XG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgXCJkYXRhLW5leHRqcy1kaWFsb2ctY29udGVudFwiOiB0cnVlLCBjbGFzc05hbWU6IGNsYXNzTmFtZSB9LCBjaGlsZHJlbikpO1xufTtcbmV4cG9ydHMuRGlhbG9nQ29udGVudCA9IERpYWxvZ0NvbnRlbnQ7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1EaWFsb2dDb250ZW50LmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/DialogContent.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/DialogHeader.js": +/*!*********************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/DialogHeader.js ***! + \*********************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nexports.__esModule = true;\nexports.DialogHeader = void 0;\nvar React = __importStar(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nvar DialogHeader = function DialogHeader(_a) {\n var children = _a.children, className = _a.className;\n return (React.createElement(\"div\", { \"data-nextjs-dialog-header\": true, className: className }, children));\n};\nexports.DialogHeader = DialogHeader;\n//# sourceMappingURL=DialogHeader.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvRGlhbG9nL0RpYWxvZ0hlYWRlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0E7QUFDQSxtQ0FBbUMsb0NBQW9DLGdCQUFnQjtBQUN2RixDQUFDO0FBQ0Q7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBLDBDQUEwQyw0QkFBNEI7QUFDdEUsQ0FBQztBQUNEO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCLG9CQUFvQjtBQUNwQix5QkFBeUIsbUJBQU8sQ0FBQyw0Q0FBTztBQUN4QztBQUNBO0FBQ0EseUNBQXlDLHlEQUF5RDtBQUNsRztBQUNBLG9CQUFvQjtBQUNwQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvRGlhbG9nL0RpYWxvZ0hlYWRlci5qcz9kNTAwIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9fY3JlYXRlQmluZGluZyA9ICh0aGlzICYmIHRoaXMuX19jcmVhdGVCaW5kaW5nKSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH0pO1xufSkgOiAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIG9bazJdID0gbVtrXTtcbn0pKTtcbnZhciBfX3NldE1vZHVsZURlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9fc2V0TW9kdWxlRGVmYXVsdCkgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgdikge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBcImRlZmF1bHRcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdiB9KTtcbn0pIDogZnVuY3Rpb24obywgdikge1xuICAgIG9bXCJkZWZhdWx0XCJdID0gdjtcbn0pO1xudmFyIF9faW1wb3J0U3RhciA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnRTdGFyKSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDtcbiAgICB2YXIgcmVzdWx0ID0ge307XG4gICAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrIGluIG1vZCkgaWYgKGsgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChtb2QsIGspKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGspO1xuICAgIF9fc2V0TW9kdWxlRGVmYXVsdChyZXN1bHQsIG1vZCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5EaWFsb2dIZWFkZXIgPSB2b2lkIDA7XG52YXIgUmVhY3QgPSBfX2ltcG9ydFN0YXIocmVxdWlyZShcInJlYWN0XCIpKTtcbnZhciBEaWFsb2dIZWFkZXIgPSBmdW5jdGlvbiBEaWFsb2dIZWFkZXIoX2EpIHtcbiAgICB2YXIgY2hpbGRyZW4gPSBfYS5jaGlsZHJlbiwgY2xhc3NOYW1lID0gX2EuY2xhc3NOYW1lO1xuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IFwiZGF0YS1uZXh0anMtZGlhbG9nLWhlYWRlclwiOiB0cnVlLCBjbGFzc05hbWU6IGNsYXNzTmFtZSB9LCBjaGlsZHJlbikpO1xufTtcbmV4cG9ydHMuRGlhbG9nSGVhZGVyID0gRGlhbG9nSGVhZGVyO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RGlhbG9nSGVhZGVyLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/DialogHeader.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/index.js": +/*!**************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/index.js ***! + \**************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nexports.__esModule = true;\nexports.styles = exports.DialogHeader = exports.DialogContent = exports.DialogBody = exports.Dialog = void 0;\nvar Dialog_1 = __webpack_require__(/*! ./Dialog */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/Dialog.js\");\n__createBinding(exports, Dialog_1, \"Dialog\");\nvar DialogBody_1 = __webpack_require__(/*! ./DialogBody */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/DialogBody.js\");\n__createBinding(exports, DialogBody_1, \"DialogBody\");\nvar DialogContent_1 = __webpack_require__(/*! ./DialogContent */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/DialogContent.js\");\n__createBinding(exports, DialogContent_1, \"DialogContent\");\nvar DialogHeader_1 = __webpack_require__(/*! ./DialogHeader */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/DialogHeader.js\");\n__createBinding(exports, DialogHeader_1, \"DialogHeader\");\nvar styles_1 = __webpack_require__(/*! ./styles */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/styles.js\");\n__createBinding(exports, styles_1, \"styles\");\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvRGlhbG9nL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQTtBQUNBLG1DQUFtQyxvQ0FBb0MsZ0JBQWdCO0FBQ3ZGLENBQUM7QUFDRDtBQUNBO0FBQ0EsQ0FBQztBQUNELGtCQUFrQjtBQUNsQixjQUFjLEdBQUcsb0JBQW9CLEdBQUcscUJBQXFCLEdBQUcsa0JBQWtCLEdBQUcsY0FBYztBQUNuRyxlQUFlLG1CQUFPLENBQUMsaUdBQVU7QUFDakM7QUFDQSxtQkFBbUIsbUJBQU8sQ0FBQyx5R0FBYztBQUN6QztBQUNBLHNCQUFzQixtQkFBTyxDQUFDLCtHQUFpQjtBQUMvQztBQUNBLHFCQUFxQixtQkFBTyxDQUFDLDZHQUFnQjtBQUM3QztBQUNBLGVBQWUsbUJBQU8sQ0FBQyxpR0FBVTtBQUNqQztBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AbmV4dC9yZWFjdC1kZXYtb3ZlcmxheS9saWIvaW50ZXJuYWwvY29tcG9uZW50cy9EaWFsb2cvaW5kZXguanM/ZmI3YiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2NyZWF0ZUJpbmRpbmcgPSAodGhpcyAmJiB0aGlzLl9fY3JlYXRlQmluZGluZykgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gbVtrXTsgfSB9KTtcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBvW2syXSA9IG1ba107XG59KSk7XG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5zdHlsZXMgPSBleHBvcnRzLkRpYWxvZ0hlYWRlciA9IGV4cG9ydHMuRGlhbG9nQ29udGVudCA9IGV4cG9ydHMuRGlhbG9nQm9keSA9IGV4cG9ydHMuRGlhbG9nID0gdm9pZCAwO1xudmFyIERpYWxvZ18xID0gcmVxdWlyZShcIi4vRGlhbG9nXCIpO1xuX19jcmVhdGVCaW5kaW5nKGV4cG9ydHMsIERpYWxvZ18xLCBcIkRpYWxvZ1wiKTtcbnZhciBEaWFsb2dCb2R5XzEgPSByZXF1aXJlKFwiLi9EaWFsb2dCb2R5XCIpO1xuX19jcmVhdGVCaW5kaW5nKGV4cG9ydHMsIERpYWxvZ0JvZHlfMSwgXCJEaWFsb2dCb2R5XCIpO1xudmFyIERpYWxvZ0NvbnRlbnRfMSA9IHJlcXVpcmUoXCIuL0RpYWxvZ0NvbnRlbnRcIik7XG5fX2NyZWF0ZUJpbmRpbmcoZXhwb3J0cywgRGlhbG9nQ29udGVudF8xLCBcIkRpYWxvZ0NvbnRlbnRcIik7XG52YXIgRGlhbG9nSGVhZGVyXzEgPSByZXF1aXJlKFwiLi9EaWFsb2dIZWFkZXJcIik7XG5fX2NyZWF0ZUJpbmRpbmcoZXhwb3J0cywgRGlhbG9nSGVhZGVyXzEsIFwiRGlhbG9nSGVhZGVyXCIpO1xudmFyIHN0eWxlc18xID0gcmVxdWlyZShcIi4vc3R5bGVzXCIpO1xuX19jcmVhdGVCaW5kaW5nKGV4cG9ydHMsIHN0eWxlc18xLCBcInN0eWxlc1wiKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/index.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/styles.js": +/*!***************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/styles.js ***! + \***************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nexports.__esModule = true;\nexports.styles = void 0;\nvar noop_template_1 = __webpack_require__(/*! ../../helpers/noop-template */ \"./node_modules/@next/react-dev-overlay/lib/internal/helpers/noop-template.js\");\nvar styles = (0, noop_template_1.noop)(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\n [data-nextjs-dialog] {\\n display: flex;\\n flex-direction: column;\\n width: 100%;\\n margin-right: auto;\\n margin-left: auto;\\n outline: none;\\n background: white;\\n border-radius: var(--size-gap);\\n box-shadow: 0 var(--size-gap-half) var(--size-gap-double)\\n rgba(0, 0, 0, 0.25);\\n max-height: calc(100% - 56px);\\n overflow-y: hidden;\\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] {\\n max-width: 540px;\\n box-shadow: 0 var(--size-gap) var(--size-gap-quad) rgba(0, 0, 0, 0.25);\\n }\\n }\\n\\n @media (min-width: 768px) {\\n [data-nextjs-dialog] {\\n max-width: 720px;\\n }\\n }\\n\\n @media (min-width: 992px) {\\n [data-nextjs-dialog] {\\n max-width: 960px;\\n }\\n }\\n\\n [data-nextjs-dialog-banner] {\\n position: relative;\\n }\\n [data-nextjs-dialog-banner].banner-warning {\\n border-color: var(--color-ansi-yellow);\\n }\\n [data-nextjs-dialog-banner].banner-error {\\n border-color: var(--color-ansi-red);\\n }\\n\\n [data-nextjs-dialog-banner]::after {\\n z-index: 2;\\n content: '';\\n position: absolute;\\n top: 0;\\n right: 0;\\n width: 100%;\\n /* banner width: */\\n border-top-width: var(--size-gap-half);\\n border-bottom-width: 0;\\n border-top-style: solid;\\n border-bottom-style: solid;\\n border-top-color: inherit;\\n border-bottom-color: transparent;\\n }\\n\\n [data-nextjs-dialog-content] {\\n overflow-y: auto;\\n border: none;\\n margin: 0;\\n /* calc(padding + banner width offset) */\\n padding: calc(var(--size-gap-double) + var(--size-gap-half))\\n var(--size-gap-double);\\n height: 100%;\\n display: flex;\\n flex-direction: column;\\n }\\n [data-nextjs-dialog-content] > [data-nextjs-dialog-header] {\\n flex-shrink: 0;\\n margin-bottom: var(--size-gap-double);\\n }\\n [data-nextjs-dialog-content] > [data-nextjs-dialog-body] {\\n position: relative;\\n flex: 1 1 auto;\\n }\\n\"], [\"\\n [data-nextjs-dialog] {\\n display: flex;\\n flex-direction: column;\\n width: 100%;\\n margin-right: auto;\\n margin-left: auto;\\n outline: none;\\n background: white;\\n border-radius: var(--size-gap);\\n box-shadow: 0 var(--size-gap-half) var(--size-gap-double)\\n rgba(0, 0, 0, 0.25);\\n max-height: calc(100% - 56px);\\n overflow-y: hidden;\\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] {\\n max-width: 540px;\\n box-shadow: 0 var(--size-gap) var(--size-gap-quad) rgba(0, 0, 0, 0.25);\\n }\\n }\\n\\n @media (min-width: 768px) {\\n [data-nextjs-dialog] {\\n max-width: 720px;\\n }\\n }\\n\\n @media (min-width: 992px) {\\n [data-nextjs-dialog] {\\n max-width: 960px;\\n }\\n }\\n\\n [data-nextjs-dialog-banner] {\\n position: relative;\\n }\\n [data-nextjs-dialog-banner].banner-warning {\\n border-color: var(--color-ansi-yellow);\\n }\\n [data-nextjs-dialog-banner].banner-error {\\n border-color: var(--color-ansi-red);\\n }\\n\\n [data-nextjs-dialog-banner]::after {\\n z-index: 2;\\n content: '';\\n position: absolute;\\n top: 0;\\n right: 0;\\n width: 100%;\\n /* banner width: */\\n border-top-width: var(--size-gap-half);\\n border-bottom-width: 0;\\n border-top-style: solid;\\n border-bottom-style: solid;\\n border-top-color: inherit;\\n border-bottom-color: transparent;\\n }\\n\\n [data-nextjs-dialog-content] {\\n overflow-y: auto;\\n border: none;\\n margin: 0;\\n /* calc(padding + banner width offset) */\\n padding: calc(var(--size-gap-double) + var(--size-gap-half))\\n var(--size-gap-double);\\n height: 100%;\\n display: flex;\\n flex-direction: column;\\n }\\n [data-nextjs-dialog-content] > [data-nextjs-dialog-header] {\\n flex-shrink: 0;\\n margin-bottom: var(--size-gap-double);\\n }\\n [data-nextjs-dialog-content] > [data-nextjs-dialog-body] {\\n position: relative;\\n flex: 1 1 auto;\\n }\\n\"])));\nexports.styles = styles;\nvar templateObject_1;\n//# sourceMappingURL=styles.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvRGlhbG9nL3N0eWxlcy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0EsaUNBQWlDLHVDQUF1QyxZQUFZLEtBQUssT0FBTztBQUNoRztBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCLGNBQWM7QUFDZCxzQkFBc0IsbUJBQU8sQ0FBQyxpSEFBNkI7QUFDM0QsZ0lBQWdJLG9CQUFvQiw2QkFBNkIsa0JBQWtCLHlCQUF5Qix3QkFBd0Isb0JBQW9CLHdCQUF3QixxQ0FBcUMsMkZBQTJGLG9DQUFvQyx5QkFBeUIsS0FBSyxrQ0FBa0Msb0NBQW9DLHNDQUFzQyxPQUFPLEtBQUssaUNBQWlDLDRCQUE0Qix5QkFBeUIsK0VBQStFLE9BQU8sS0FBSyxpQ0FBaUMsNEJBQTRCLHlCQUF5QixPQUFPLEtBQUssaUNBQWlDLDRCQUE0Qix5QkFBeUIsT0FBTyxLQUFLLG1DQUFtQyx5QkFBeUIsS0FBSyxnREFBZ0QsNkNBQTZDLEtBQUssOENBQThDLDBDQUEwQyxLQUFLLDBDQUEwQyxpQkFBaUIsa0JBQWtCLHlCQUF5QixhQUFhLGVBQWUsa0JBQWtCLHNFQUFzRSw2QkFBNkIsOEJBQThCLGlDQUFpQyxnQ0FBZ0MsdUNBQXVDLEtBQUssb0NBQW9DLHVCQUF1QixtQkFBbUIsZ0JBQWdCLGdKQUFnSixtQkFBbUIsb0JBQW9CLDZCQUE2QixLQUFLLGdFQUFnRSxxQkFBcUIsNENBQTRDLEtBQUssOERBQThELHlCQUF5QixxQkFBcUIsS0FBSyxrQ0FBa0Msb0JBQW9CLDZCQUE2QixrQkFBa0IseUJBQXlCLHdCQUF3QixvQkFBb0Isd0JBQXdCLHFDQUFxQywyRkFBMkYsb0NBQW9DLHlCQUF5QixLQUFLLGtDQUFrQyxvQ0FBb0Msc0NBQXNDLE9BQU8sS0FBSyxpQ0FBaUMsNEJBQTRCLHlCQUF5QiwrRUFBK0UsT0FBTyxLQUFLLGlDQUFpQyw0QkFBNEIseUJBQXlCLE9BQU8sS0FBSyxpQ0FBaUMsNEJBQTRCLHlCQUF5QixPQUFPLEtBQUssbUNBQW1DLHlCQUF5QixLQUFLLGdEQUFnRCw2Q0FBNkMsS0FBSyw4Q0FBOEMsMENBQTBDLEtBQUssMENBQTBDLGlCQUFpQixrQkFBa0IseUJBQXlCLGFBQWEsZUFBZSxrQkFBa0Isc0VBQXNFLDZCQUE2Qiw4QkFBOEIsaUNBQWlDLGdDQUFnQyx1Q0FBdUMsS0FBSyxvQ0FBb0MsdUJBQXVCLG1CQUFtQixnQkFBZ0IsZ0pBQWdKLG1CQUFtQixvQkFBb0IsNkJBQTZCLEtBQUssZ0VBQWdFLHFCQUFxQiw0Q0FBNEMsS0FBSyw4REFBOEQseUJBQXlCLHFCQUFxQixLQUFLO0FBQ2hxSSxjQUFjO0FBQ2Q7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvRGlhbG9nL3N0eWxlcy5qcz9jYWE2Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9fbWFrZVRlbXBsYXRlT2JqZWN0ID0gKHRoaXMgJiYgdGhpcy5fX21ha2VUZW1wbGF0ZU9iamVjdCkgfHwgZnVuY3Rpb24gKGNvb2tlZCwgcmF3KSB7XG4gICAgaWYgKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29va2VkLCBcInJhd1wiLCB7IHZhbHVlOiByYXcgfSk7IH0gZWxzZSB7IGNvb2tlZC5yYXcgPSByYXc7IH1cbiAgICByZXR1cm4gY29va2VkO1xufTtcbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLnN0eWxlcyA9IHZvaWQgMDtcbnZhciBub29wX3RlbXBsYXRlXzEgPSByZXF1aXJlKFwiLi4vLi4vaGVscGVycy9ub29wLXRlbXBsYXRlXCIpO1xudmFyIHN0eWxlcyA9ICgwLCBub29wX3RlbXBsYXRlXzEubm9vcCkodGVtcGxhdGVPYmplY3RfMSB8fCAodGVtcGxhdGVPYmplY3RfMSA9IF9fbWFrZVRlbXBsYXRlT2JqZWN0KFtcIlxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZ10ge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcXG4gICAgb3V0bGluZTogbm9uZTtcXG4gICAgYmFja2dyb3VuZDogd2hpdGU7XFxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXNpemUtZ2FwKTtcXG4gICAgYm94LXNoYWRvdzogMCB2YXIoLS1zaXplLWdhcC1oYWxmKSB2YXIoLS1zaXplLWdhcC1kb3VibGUpXFxuICAgICAgcmdiYSgwLCAwLCAwLCAwLjI1KTtcXG4gICAgbWF4LWhlaWdodDogY2FsYygxMDAlIC0gNTZweCk7XFxuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcXG4gIH1cXG5cXG4gIEBtZWRpYSAobWF4LWhlaWdodDogODEycHgpIHtcXG4gICAgW2RhdGEtbmV4dGpzLWRpYWxvZy1vdmVybGF5XSB7XFxuICAgICAgbWF4LWhlaWdodDogY2FsYygxMDAlIC0gMTVweCk7XFxuICAgIH1cXG4gIH1cXG5cXG4gIEBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkge1xcbiAgICBbZGF0YS1uZXh0anMtZGlhbG9nXSB7XFxuICAgICAgbWF4LXdpZHRoOiA1NDBweDtcXG4gICAgICBib3gtc2hhZG93OiAwIHZhcigtLXNpemUtZ2FwKSB2YXIoLS1zaXplLWdhcC1xdWFkKSByZ2JhKDAsIDAsIDAsIDAuMjUpO1xcbiAgICB9XFxuICB9XFxuXFxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcXG4gICAgW2RhdGEtbmV4dGpzLWRpYWxvZ10ge1xcbiAgICAgIG1heC13aWR0aDogNzIwcHg7XFxuICAgIH1cXG4gIH1cXG5cXG4gIEBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xcbiAgICBbZGF0YS1uZXh0anMtZGlhbG9nXSB7XFxuICAgICAgbWF4LXdpZHRoOiA5NjBweDtcXG4gICAgfVxcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1iYW5uZXJdIHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1iYW5uZXJdLmJhbm5lci13YXJuaW5nIHtcXG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLXllbGxvdyk7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWJhbm5lcl0uYmFubmVyLWVycm9yIHtcXG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLXJlZCk7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWJhbm5lcl06OmFmdGVyIHtcXG4gICAgei1pbmRleDogMjtcXG4gICAgY29udGVudDogJyc7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdG9wOiAwO1xcbiAgICByaWdodDogMDtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIC8qIGJhbm5lciB3aWR0aDogKi9cXG4gICAgYm9yZGVyLXRvcC13aWR0aDogdmFyKC0tc2l6ZS1nYXAtaGFsZik7XFxuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XFxuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcXG4gICAgYm9yZGVyLXRvcC1jb2xvcjogaW5oZXJpdDtcXG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWNvbnRlbnRdIHtcXG4gICAgb3ZlcmZsb3cteTogYXV0bztcXG4gICAgYm9yZGVyOiBub25lO1xcbiAgICBtYXJnaW46IDA7XFxuICAgIC8qIGNhbGMocGFkZGluZyArIGJhbm5lciB3aWR0aCBvZmZzZXQpICovXFxuICAgIHBhZGRpbmc6IGNhbGModmFyKC0tc2l6ZS1nYXAtZG91YmxlKSArIHZhcigtLXNpemUtZ2FwLWhhbGYpKVxcbiAgICAgIHZhcigtLXNpemUtZ2FwLWRvdWJsZSk7XFxuICAgIGhlaWdodDogMTAwJTtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctY29udGVudF0gPiBbZGF0YS1uZXh0anMtZGlhbG9nLWhlYWRlcl0ge1xcbiAgICBmbGV4LXNocmluazogMDtcXG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc2l6ZS1nYXAtZG91YmxlKTtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctY29udGVudF0gPiBbZGF0YS1uZXh0anMtZGlhbG9nLWJvZHldIHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICBmbGV4OiAxIDEgYXV0bztcXG4gIH1cXG5cIl0sIFtcIlxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZ10ge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcXG4gICAgb3V0bGluZTogbm9uZTtcXG4gICAgYmFja2dyb3VuZDogd2hpdGU7XFxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXNpemUtZ2FwKTtcXG4gICAgYm94LXNoYWRvdzogMCB2YXIoLS1zaXplLWdhcC1oYWxmKSB2YXIoLS1zaXplLWdhcC1kb3VibGUpXFxuICAgICAgcmdiYSgwLCAwLCAwLCAwLjI1KTtcXG4gICAgbWF4LWhlaWdodDogY2FsYygxMDAlIC0gNTZweCk7XFxuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcXG4gIH1cXG5cXG4gIEBtZWRpYSAobWF4LWhlaWdodDogODEycHgpIHtcXG4gICAgW2RhdGEtbmV4dGpzLWRpYWxvZy1vdmVybGF5XSB7XFxuICAgICAgbWF4LWhlaWdodDogY2FsYygxMDAlIC0gMTVweCk7XFxuICAgIH1cXG4gIH1cXG5cXG4gIEBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkge1xcbiAgICBbZGF0YS1uZXh0anMtZGlhbG9nXSB7XFxuICAgICAgbWF4LXdpZHRoOiA1NDBweDtcXG4gICAgICBib3gtc2hhZG93OiAwIHZhcigtLXNpemUtZ2FwKSB2YXIoLS1zaXplLWdhcC1xdWFkKSByZ2JhKDAsIDAsIDAsIDAuMjUpO1xcbiAgICB9XFxuICB9XFxuXFxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcXG4gICAgW2RhdGEtbmV4dGpzLWRpYWxvZ10ge1xcbiAgICAgIG1heC13aWR0aDogNzIwcHg7XFxuICAgIH1cXG4gIH1cXG5cXG4gIEBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xcbiAgICBbZGF0YS1uZXh0anMtZGlhbG9nXSB7XFxuICAgICAgbWF4LXdpZHRoOiA5NjBweDtcXG4gICAgfVxcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1iYW5uZXJdIHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1iYW5uZXJdLmJhbm5lci13YXJuaW5nIHtcXG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLXllbGxvdyk7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWJhbm5lcl0uYmFubmVyLWVycm9yIHtcXG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLXJlZCk7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWJhbm5lcl06OmFmdGVyIHtcXG4gICAgei1pbmRleDogMjtcXG4gICAgY29udGVudDogJyc7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdG9wOiAwO1xcbiAgICByaWdodDogMDtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIC8qIGJhbm5lciB3aWR0aDogKi9cXG4gICAgYm9yZGVyLXRvcC13aWR0aDogdmFyKC0tc2l6ZS1nYXAtaGFsZik7XFxuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XFxuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcXG4gICAgYm9yZGVyLXRvcC1jb2xvcjogaW5oZXJpdDtcXG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWNvbnRlbnRdIHtcXG4gICAgb3ZlcmZsb3cteTogYXV0bztcXG4gICAgYm9yZGVyOiBub25lO1xcbiAgICBtYXJnaW46IDA7XFxuICAgIC8qIGNhbGMocGFkZGluZyArIGJhbm5lciB3aWR0aCBvZmZzZXQpICovXFxuICAgIHBhZGRpbmc6IGNhbGModmFyKC0tc2l6ZS1nYXAtZG91YmxlKSArIHZhcigtLXNpemUtZ2FwLWhhbGYpKVxcbiAgICAgIHZhcigtLXNpemUtZ2FwLWRvdWJsZSk7XFxuICAgIGhlaWdodDogMTAwJTtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctY29udGVudF0gPiBbZGF0YS1uZXh0anMtZGlhbG9nLWhlYWRlcl0ge1xcbiAgICBmbGV4LXNocmluazogMDtcXG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc2l6ZS1nYXAtZG91YmxlKTtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctY29udGVudF0gPiBbZGF0YS1uZXh0anMtZGlhbG9nLWJvZHldIHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICBmbGV4OiAxIDEgYXV0bztcXG4gIH1cXG5cIl0pKSk7XG5leHBvcnRzLnN0eWxlcyA9IHN0eWxlcztcbnZhciB0ZW1wbGF0ZU9iamVjdF8xO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c3R5bGVzLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/styles.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/LeftRightDialogHeader/LeftRightDialogHeader.js": +/*!*********************************************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/LeftRightDialogHeader/LeftRightDialogHeader.js ***! + \*********************************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nexports.__esModule = true;\nexports.LeftRightDialogHeader = void 0;\nvar React = __importStar(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nvar LeftRightDialogHeader = function LeftRightDialogHeader(_a) {\n var children = _a.children, className = _a.className, previous = _a.previous, next = _a.next, close = _a.close;\n var buttonLeft = React.useRef(null);\n var buttonRight = React.useRef(null);\n var buttonClose = React.useRef(null);\n var _b = __read(React.useState(null), 2), nav = _b[0], setNav = _b[1];\n var onNav = React.useCallback(function (el) {\n setNav(el);\n }, []);\n React.useEffect(function () {\n if (nav == null) {\n return;\n }\n var root = nav.getRootNode();\n var d = self.document;\n function handler(e) {\n if (e.key === 'ArrowLeft') {\n e.stopPropagation();\n if (buttonLeft.current) {\n buttonLeft.current.focus();\n }\n previous && previous();\n }\n else if (e.key === 'ArrowRight') {\n e.stopPropagation();\n if (buttonRight.current) {\n buttonRight.current.focus();\n }\n next && next();\n }\n else if (e.key === 'Escape') {\n e.stopPropagation();\n if (root instanceof ShadowRoot) {\n var a = root.activeElement;\n if (a && a !== buttonClose.current && a instanceof HTMLElement) {\n a.blur();\n return;\n }\n }\n if (close) {\n close();\n }\n }\n }\n root.addEventListener('keydown', handler);\n if (root !== d) {\n d.addEventListener('keydown', handler);\n }\n return function () {\n root.removeEventListener('keydown', handler);\n if (root !== d) {\n d.removeEventListener('keydown', handler);\n }\n };\n }, [close, nav, next, previous]);\n // Unlock focus for browsers like Firefox, that break all user focus if the\n // currently focused item becomes disabled.\n React.useEffect(function () {\n if (nav == null) {\n return;\n }\n var root = nav.getRootNode();\n // Always true, but we do this for TypeScript:\n if (root instanceof ShadowRoot) {\n var a = root.activeElement;\n if (previous == null) {\n if (buttonLeft.current && a === buttonLeft.current) {\n buttonLeft.current.blur();\n }\n }\n else if (next == null) {\n if (buttonRight.current && a === buttonRight.current) {\n buttonRight.current.blur();\n }\n }\n }\n }, [nav, next, previous]);\n return (React.createElement(\"div\", { \"data-nextjs-dialog-left-right\": true, className: className },\n React.createElement(\"nav\", { ref: onNav },\n React.createElement(\"button\", { ref: buttonLeft, type: \"button\", disabled: previous == null ? true : undefined, \"aria-disabled\": previous == null ? true : undefined, onClick: previous !== null && previous !== void 0 ? previous : undefined },\n React.createElement(\"svg\", { viewBox: \"0 0 14 14\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n React.createElement(\"path\", { d: \"M6.99996 1.16666L1.16663 6.99999L6.99996 12.8333M12.8333 6.99999H1.99996H12.8333Z\", stroke: \"currentColor\", strokeWidth: \"2\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }))),\n React.createElement(\"button\", { ref: buttonRight, type: \"button\", disabled: next == null ? true : undefined, \"aria-disabled\": next == null ? true : undefined, onClick: next !== null && next !== void 0 ? next : undefined },\n React.createElement(\"svg\", { viewBox: \"0 0 14 14\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n React.createElement(\"path\", { d: \"M6.99996 1.16666L12.8333 6.99999L6.99996 12.8333M1.16663 6.99999H12H1.16663Z\", stroke: \"currentColor\", strokeWidth: \"2\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }))),\n \"\\u00A0\",\n children),\n close ? (React.createElement(\"button\", { ref: buttonClose, type: \"button\", onClick: close, \"aria-label\": \"Close\" },\n React.createElement(\"span\", { \"aria-hidden\": \"true\" },\n React.createElement(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n React.createElement(\"path\", { d: \"M18 6L6 18\", stroke: \"currentColor\", strokeWidth: \"2\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }),\n React.createElement(\"path\", { d: \"M6 6L18 18\", stroke: \"currentColor\", strokeWidth: \"2\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }))))) : null));\n};\nexports.LeftRightDialogHeader = LeftRightDialogHeader;\n//# sourceMappingURL=LeftRightDialogHeader.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvTGVmdFJpZ2h0RGlhbG9nSGVhZGVyL0xlZnRSaWdodERpYWxvZ0hlYWRlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0E7QUFDQSxtQ0FBbUMsb0NBQW9DLGdCQUFnQjtBQUN2RixDQUFDO0FBQ0Q7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBLDBDQUEwQyw0QkFBNEI7QUFDdEUsQ0FBQztBQUNEO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsTUFBTTtBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEIsNkJBQTZCO0FBQzdCLHlCQUF5QixtQkFBTyxDQUFDLDRDQUFPO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCx5Q0FBeUMsNkRBQTZEO0FBQ3RHLHFDQUFxQyxZQUFZO0FBQ2pELDRDQUE0QyxnTkFBZ047QUFDNVAsNkNBQTZDLHlFQUF5RTtBQUN0SCxrREFBa0QsbUxBQW1MO0FBQ3JPLDRDQUE0Qyw2TEFBNkw7QUFDek8sNkNBQTZDLHlFQUF5RTtBQUN0SCxrREFBa0QsOEtBQThLO0FBQ2hPO0FBQ0E7QUFDQSxpREFBaUQseUVBQXlFO0FBQzFILDBDQUEwQyx1QkFBdUI7QUFDakUsNkNBQTZDLG9HQUFvRztBQUNqSixrREFBa0QsNEdBQTRHO0FBQzlKLGtEQUFrRCw0R0FBNEc7QUFDOUo7QUFDQSw2QkFBNkI7QUFDN0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BuZXh0L3JlYWN0LWRldi1vdmVybGF5L2xpYi9pbnRlcm5hbC9jb21wb25lbnRzL0xlZnRSaWdodERpYWxvZ0hlYWRlci9MZWZ0UmlnaHREaWFsb2dIZWFkZXIuanM/NjJjNCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2NyZWF0ZUJpbmRpbmcgPSAodGhpcyAmJiB0aGlzLl9fY3JlYXRlQmluZGluZykgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gbVtrXTsgfSB9KTtcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBvW2syXSA9IG1ba107XG59KSk7XG52YXIgX19zZXRNb2R1bGVEZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX3NldE1vZHVsZURlZmF1bHQpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIHYpIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgXCJkZWZhdWx0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7XG59KSA6IGZ1bmN0aW9uKG8sIHYpIHtcbiAgICBvW1wiZGVmYXVsdFwiXSA9IHY7XG59KTtcbnZhciBfX2ltcG9ydFN0YXIgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0U3RhcikgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpIHJldHVybiBtb2Q7XG4gICAgdmFyIHJlc3VsdCA9IHt9O1xuICAgIGlmIChtb2QgIT0gbnVsbCkgZm9yICh2YXIgayBpbiBtb2QpIGlmIChrICE9PSBcImRlZmF1bHRcIiAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobW9kLCBrKSkgX19jcmVhdGVCaW5kaW5nKHJlc3VsdCwgbW9kLCBrKTtcbiAgICBfX3NldE1vZHVsZURlZmF1bHQocmVzdWx0LCBtb2QpO1xuICAgIHJldHVybiByZXN1bHQ7XG59O1xudmFyIF9fcmVhZCA9ICh0aGlzICYmIHRoaXMuX19yZWFkKSB8fCBmdW5jdGlvbiAobywgbikge1xuICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9bU3ltYm9sLml0ZXJhdG9yXTtcbiAgICBpZiAoIW0pIHJldHVybiBvO1xuICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlO1xuICAgIHRyeSB7XG4gICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpO1xuICAgIH1cbiAgICBjYXRjaCAoZXJyb3IpIHsgZSA9IHsgZXJyb3I6IGVycm9yIH07IH1cbiAgICBmaW5hbGx5IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpW1wicmV0dXJuXCJdKSkgbS5jYWxsKGkpO1xuICAgICAgICB9XG4gICAgICAgIGZpbmFsbHkgeyBpZiAoZSkgdGhyb3cgZS5lcnJvcjsgfVxuICAgIH1cbiAgICByZXR1cm4gYXI7XG59O1xuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHMuTGVmdFJpZ2h0RGlhbG9nSGVhZGVyID0gdm9pZCAwO1xudmFyIFJlYWN0ID0gX19pbXBvcnRTdGFyKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG52YXIgTGVmdFJpZ2h0RGlhbG9nSGVhZGVyID0gZnVuY3Rpb24gTGVmdFJpZ2h0RGlhbG9nSGVhZGVyKF9hKSB7XG4gICAgdmFyIGNoaWxkcmVuID0gX2EuY2hpbGRyZW4sIGNsYXNzTmFtZSA9IF9hLmNsYXNzTmFtZSwgcHJldmlvdXMgPSBfYS5wcmV2aW91cywgbmV4dCA9IF9hLm5leHQsIGNsb3NlID0gX2EuY2xvc2U7XG4gICAgdmFyIGJ1dHRvbkxlZnQgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgdmFyIGJ1dHRvblJpZ2h0ID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIHZhciBidXR0b25DbG9zZSA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICB2YXIgX2IgPSBfX3JlYWQoUmVhY3QudXNlU3RhdGUobnVsbCksIDIpLCBuYXYgPSBfYlswXSwgc2V0TmF2ID0gX2JbMV07XG4gICAgdmFyIG9uTmF2ID0gUmVhY3QudXNlQ2FsbGJhY2soZnVuY3Rpb24gKGVsKSB7XG4gICAgICAgIHNldE5hdihlbCk7XG4gICAgfSwgW10pO1xuICAgIFJlYWN0LnVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmIChuYXYgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhciByb290ID0gbmF2LmdldFJvb3ROb2RlKCk7XG4gICAgICAgIHZhciBkID0gc2VsZi5kb2N1bWVudDtcbiAgICAgICAgZnVuY3Rpb24gaGFuZGxlcihlKSB7XG4gICAgICAgICAgICBpZiAoZS5rZXkgPT09ICdBcnJvd0xlZnQnKSB7XG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBpZiAoYnV0dG9uTGVmdC5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvbkxlZnQuY3VycmVudC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwcmV2aW91cyAmJiBwcmV2aW91cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoZS5rZXkgPT09ICdBcnJvd1JpZ2h0Jykge1xuICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgaWYgKGJ1dHRvblJpZ2h0LmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgYnV0dG9uUmlnaHQuY3VycmVudC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBuZXh0ICYmIG5leHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGUua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgaWYgKHJvb3QgaW5zdGFuY2VvZiBTaGFkb3dSb290KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBhID0gcm9vdC5hY3RpdmVFbGVtZW50O1xuICAgICAgICAgICAgICAgICAgICBpZiAoYSAmJiBhICE9PSBidXR0b25DbG9zZS5jdXJyZW50ICYmIGEgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYS5ibHVyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGNsb3NlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNsb3NlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJvb3QuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGhhbmRsZXIpO1xuICAgICAgICBpZiAocm9vdCAhPT0gZCkge1xuICAgICAgICAgICAgZC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgaGFuZGxlcik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJvb3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGhhbmRsZXIpO1xuICAgICAgICAgICAgaWYgKHJvb3QgIT09IGQpIHtcbiAgICAgICAgICAgICAgICBkLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBoYW5kbGVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9LCBbY2xvc2UsIG5hdiwgbmV4dCwgcHJldmlvdXNdKTtcbiAgICAvLyBVbmxvY2sgZm9jdXMgZm9yIGJyb3dzZXJzIGxpa2UgRmlyZWZveCwgdGhhdCBicmVhayBhbGwgdXNlciBmb2N1cyBpZiB0aGVcbiAgICAvLyBjdXJyZW50bHkgZm9jdXNlZCBpdGVtIGJlY29tZXMgZGlzYWJsZWQuXG4gICAgUmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKG5hdiA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHJvb3QgPSBuYXYuZ2V0Um9vdE5vZGUoKTtcbiAgICAgICAgLy8gQWx3YXlzIHRydWUsIGJ1dCB3ZSBkbyB0aGlzIGZvciBUeXBlU2NyaXB0OlxuICAgICAgICBpZiAocm9vdCBpbnN0YW5jZW9mIFNoYWRvd1Jvb3QpIHtcbiAgICAgICAgICAgIHZhciBhID0gcm9vdC5hY3RpdmVFbGVtZW50O1xuICAgICAgICAgICAgaWYgKHByZXZpb3VzID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBpZiAoYnV0dG9uTGVmdC5jdXJyZW50ICYmIGEgPT09IGJ1dHRvbkxlZnQuY3VycmVudCkge1xuICAgICAgICAgICAgICAgICAgICBidXR0b25MZWZ0LmN1cnJlbnQuYmx1cigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKG5leHQgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGlmIChidXR0b25SaWdodC5jdXJyZW50ICYmIGEgPT09IGJ1dHRvblJpZ2h0LmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgYnV0dG9uUmlnaHQuY3VycmVudC5ibHVyKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSwgW25hdiwgbmV4dCwgcHJldmlvdXNdKTtcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyBcImRhdGEtbmV4dGpzLWRpYWxvZy1sZWZ0LXJpZ2h0XCI6IHRydWUsIGNsYXNzTmFtZTogY2xhc3NOYW1lIH0sXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJuYXZcIiwgeyByZWY6IG9uTmF2IH0sXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiYnV0dG9uXCIsIHsgcmVmOiBidXR0b25MZWZ0LCB0eXBlOiBcImJ1dHRvblwiLCBkaXNhYmxlZDogcHJldmlvdXMgPT0gbnVsbCA/IHRydWUgOiB1bmRlZmluZWQsIFwiYXJpYS1kaXNhYmxlZFwiOiBwcmV2aW91cyA9PSBudWxsID8gdHJ1ZSA6IHVuZGVmaW5lZCwgb25DbGljazogcHJldmlvdXMgIT09IG51bGwgJiYgcHJldmlvdXMgIT09IHZvaWQgMCA/IHByZXZpb3VzIDogdW5kZWZpbmVkIH0sXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInN2Z1wiLCB7IHZpZXdCb3g6IFwiMCAwIDE0IDE0XCIsIGZpbGw6IFwibm9uZVwiLCB4bWxuczogXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHsgZDogXCJNNi45OTk5NiAxLjE2NjY2TDEuMTY2NjMgNi45OTk5OUw2Ljk5OTk2IDEyLjgzMzNNMTIuODMzMyA2Ljk5OTk5SDEuOTk5OTZIMTIuODMzM1pcIiwgc3Ryb2tlOiBcImN1cnJlbnRDb2xvclwiLCBzdHJva2VXaWR0aDogXCIyXCIsIHN0cm9rZUxpbmVjYXA6IFwicm91bmRcIiwgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIiB9KSkpLFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImJ1dHRvblwiLCB7IHJlZjogYnV0dG9uUmlnaHQsIHR5cGU6IFwiYnV0dG9uXCIsIGRpc2FibGVkOiBuZXh0ID09IG51bGwgPyB0cnVlIDogdW5kZWZpbmVkLCBcImFyaWEtZGlzYWJsZWRcIjogbmV4dCA9PSBudWxsID8gdHJ1ZSA6IHVuZGVmaW5lZCwgb25DbGljazogbmV4dCAhPT0gbnVsbCAmJiBuZXh0ICE9PSB2b2lkIDAgPyBuZXh0IDogdW5kZWZpbmVkIH0sXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInN2Z1wiLCB7IHZpZXdCb3g6IFwiMCAwIDE0IDE0XCIsIGZpbGw6IFwibm9uZVwiLCB4bWxuczogXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHsgZDogXCJNNi45OTk5NiAxLjE2NjY2TDEyLjgzMzMgNi45OTk5OUw2Ljk5OTk2IDEyLjgzMzNNMS4xNjY2MyA2Ljk5OTk5SDEySDEuMTY2NjNaXCIsIHN0cm9rZTogXCJjdXJyZW50Q29sb3JcIiwgc3Ryb2tlV2lkdGg6IFwiMlwiLCBzdHJva2VMaW5lY2FwOiBcInJvdW5kXCIsIHN0cm9rZUxpbmVqb2luOiBcInJvdW5kXCIgfSkpKSxcbiAgICAgICAgICAgIFwiXFx1MDBBMFwiLFxuICAgICAgICAgICAgY2hpbGRyZW4pLFxuICAgICAgICBjbG9zZSA/IChSZWFjdC5jcmVhdGVFbGVtZW50KFwiYnV0dG9uXCIsIHsgcmVmOiBidXR0b25DbG9zZSwgdHlwZTogXCJidXR0b25cIiwgb25DbGljazogY2xvc2UsIFwiYXJpYS1sYWJlbFwiOiBcIkNsb3NlXCIgfSxcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHsgXCJhcmlhLWhpZGRlblwiOiBcInRydWVcIiB9LFxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgeyB3aWR0aDogXCIyNFwiLCBoZWlnaHQ6IFwiMjRcIiwgdmlld0JveDogXCIwIDAgMjQgMjRcIiwgZmlsbDogXCJub25lXCIsIHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwgeyBkOiBcIk0xOCA2TDYgMThcIiwgc3Ryb2tlOiBcImN1cnJlbnRDb2xvclwiLCBzdHJva2VXaWR0aDogXCIyXCIsIHN0cm9rZUxpbmVjYXA6IFwicm91bmRcIiwgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIiB9KSxcbiAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwgeyBkOiBcIk02IDZMMTggMThcIiwgc3Ryb2tlOiBcImN1cnJlbnRDb2xvclwiLCBzdHJva2VXaWR0aDogXCIyXCIsIHN0cm9rZUxpbmVjYXA6IFwicm91bmRcIiwgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIiB9KSkpKSkgOiBudWxsKSk7XG59O1xuZXhwb3J0cy5MZWZ0UmlnaHREaWFsb2dIZWFkZXIgPSBMZWZ0UmlnaHREaWFsb2dIZWFkZXI7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1MZWZ0UmlnaHREaWFsb2dIZWFkZXIuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/LeftRightDialogHeader/LeftRightDialogHeader.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/LeftRightDialogHeader/index.js": +/*!*****************************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/LeftRightDialogHeader/index.js ***! + \*****************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nexports.__esModule = true;\nexports.styles = exports.LeftRightDialogHeader = void 0;\nvar LeftRightDialogHeader_1 = __webpack_require__(/*! ./LeftRightDialogHeader */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/LeftRightDialogHeader/LeftRightDialogHeader.js\");\n__createBinding(exports, LeftRightDialogHeader_1, \"LeftRightDialogHeader\");\nvar styles_1 = __webpack_require__(/*! ./styles */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/LeftRightDialogHeader/styles.js\");\n__createBinding(exports, styles_1, \"styles\");\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvTGVmdFJpZ2h0RGlhbG9nSGVhZGVyL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQTtBQUNBLG1DQUFtQyxvQ0FBb0MsZ0JBQWdCO0FBQ3ZGLENBQUM7QUFDRDtBQUNBO0FBQ0EsQ0FBQztBQUNELGtCQUFrQjtBQUNsQixjQUFjLEdBQUcsNkJBQTZCO0FBQzlDLDhCQUE4QixtQkFBTyxDQUFDLDhJQUF5QjtBQUMvRDtBQUNBLGVBQWUsbUJBQU8sQ0FBQyxnSEFBVTtBQUNqQztBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AbmV4dC9yZWFjdC1kZXYtb3ZlcmxheS9saWIvaW50ZXJuYWwvY29tcG9uZW50cy9MZWZ0UmlnaHREaWFsb2dIZWFkZXIvaW5kZXguanM/OWNlZCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2NyZWF0ZUJpbmRpbmcgPSAodGhpcyAmJiB0aGlzLl9fY3JlYXRlQmluZGluZykgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gbVtrXTsgfSB9KTtcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBvW2syXSA9IG1ba107XG59KSk7XG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5zdHlsZXMgPSBleHBvcnRzLkxlZnRSaWdodERpYWxvZ0hlYWRlciA9IHZvaWQgMDtcbnZhciBMZWZ0UmlnaHREaWFsb2dIZWFkZXJfMSA9IHJlcXVpcmUoXCIuL0xlZnRSaWdodERpYWxvZ0hlYWRlclwiKTtcbl9fY3JlYXRlQmluZGluZyhleHBvcnRzLCBMZWZ0UmlnaHREaWFsb2dIZWFkZXJfMSwgXCJMZWZ0UmlnaHREaWFsb2dIZWFkZXJcIik7XG52YXIgc3R5bGVzXzEgPSByZXF1aXJlKFwiLi9zdHlsZXNcIik7XG5fX2NyZWF0ZUJpbmRpbmcoZXhwb3J0cywgc3R5bGVzXzEsIFwic3R5bGVzXCIpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/LeftRightDialogHeader/index.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/LeftRightDialogHeader/styles.js": +/*!******************************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/LeftRightDialogHeader/styles.js ***! + \******************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nexports.__esModule = true;\nexports.styles = void 0;\nvar noop_template_1 = __webpack_require__(/*! ../../helpers/noop-template */ \"./node_modules/@next/react-dev-overlay/lib/internal/helpers/noop-template.js\");\nvar styles = (0, noop_template_1.noop)(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\n [data-nextjs-dialog-left-right] {\\n display: flex;\\n flex-direction: row;\\n align-content: center;\\n align-items: center;\\n justify-content: space-between;\\n }\\n [data-nextjs-dialog-left-right] > nav > button {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n\\n width: calc(var(--size-gap-double) + var(--size-gap));\\n height: calc(var(--size-gap-double) + var(--size-gap));\\n font-size: 0;\\n border: none;\\n background-color: rgba(255, 85, 85, 0.1);\\n color: var(--color-ansi-red);\\n cursor: pointer;\\n transition: background-color 0.25s ease;\\n }\\n [data-nextjs-dialog-left-right] > nav > button > svg {\\n width: auto;\\n height: calc(var(--size-gap) + var(--size-gap-half));\\n }\\n [data-nextjs-dialog-left-right] > nav > button:hover {\\n background-color: rgba(255, 85, 85, 0.2);\\n }\\n [data-nextjs-dialog-left-right] > nav > button:disabled {\\n background-color: rgba(255, 85, 85, 0.1);\\n color: rgba(255, 85, 85, 0.4);\\n cursor: not-allowed;\\n }\\n\\n [data-nextjs-dialog-left-right] > nav > button:first-of-type {\\n border-radius: var(--size-gap-half) 0 0 var(--size-gap-half);\\n margin-right: 1px;\\n }\\n [data-nextjs-dialog-left-right] > nav > button:last-of-type {\\n border-radius: 0 var(--size-gap-half) var(--size-gap-half) 0;\\n }\\n\\n [data-nextjs-dialog-left-right] > button:last-of-type {\\n border: 0;\\n padding: 0;\\n\\n background-color: transparent;\\n appearance: none;\\n\\n opacity: 0.4;\\n transition: opacity 0.25s ease;\\n }\\n [data-nextjs-dialog-left-right] > button:last-of-type:hover {\\n opacity: 0.7;\\n }\\n\"], [\"\\n [data-nextjs-dialog-left-right] {\\n display: flex;\\n flex-direction: row;\\n align-content: center;\\n align-items: center;\\n justify-content: space-between;\\n }\\n [data-nextjs-dialog-left-right] > nav > button {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n\\n width: calc(var(--size-gap-double) + var(--size-gap));\\n height: calc(var(--size-gap-double) + var(--size-gap));\\n font-size: 0;\\n border: none;\\n background-color: rgba(255, 85, 85, 0.1);\\n color: var(--color-ansi-red);\\n cursor: pointer;\\n transition: background-color 0.25s ease;\\n }\\n [data-nextjs-dialog-left-right] > nav > button > svg {\\n width: auto;\\n height: calc(var(--size-gap) + var(--size-gap-half));\\n }\\n [data-nextjs-dialog-left-right] > nav > button:hover {\\n background-color: rgba(255, 85, 85, 0.2);\\n }\\n [data-nextjs-dialog-left-right] > nav > button:disabled {\\n background-color: rgba(255, 85, 85, 0.1);\\n color: rgba(255, 85, 85, 0.4);\\n cursor: not-allowed;\\n }\\n\\n [data-nextjs-dialog-left-right] > nav > button:first-of-type {\\n border-radius: var(--size-gap-half) 0 0 var(--size-gap-half);\\n margin-right: 1px;\\n }\\n [data-nextjs-dialog-left-right] > nav > button:last-of-type {\\n border-radius: 0 var(--size-gap-half) var(--size-gap-half) 0;\\n }\\n\\n [data-nextjs-dialog-left-right] > button:last-of-type {\\n border: 0;\\n padding: 0;\\n\\n background-color: transparent;\\n appearance: none;\\n\\n opacity: 0.4;\\n transition: opacity 0.25s ease;\\n }\\n [data-nextjs-dialog-left-right] > button:last-of-type:hover {\\n opacity: 0.7;\\n }\\n\"])));\nexports.styles = styles;\nvar templateObject_1;\n//# sourceMappingURL=styles.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvTGVmdFJpZ2h0RGlhbG9nSGVhZGVyL3N0eWxlcy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0EsaUNBQWlDLHVDQUF1QyxZQUFZLEtBQUssT0FBTztBQUNoRztBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCLGNBQWM7QUFDZCxzQkFBc0IsbUJBQU8sQ0FBQyxpSEFBNkI7QUFDM0QsMklBQTJJLG9CQUFvQiwwQkFBMEIsNEJBQTRCLDBCQUEwQixxQ0FBcUMsS0FBSyxvREFBb0QsMkJBQTJCLDBCQUEwQiw4QkFBOEIsOERBQThELDZEQUE2RCxtQkFBbUIsbUJBQW1CLCtDQUErQyxtQ0FBbUMsc0JBQXNCLDhDQUE4QyxLQUFLLDBEQUEwRCxrQkFBa0IsMkRBQTJELEtBQUssMERBQTBELCtDQUErQyxLQUFLLDZEQUE2RCwrQ0FBK0Msb0NBQW9DLDBCQUEwQixLQUFLLG9FQUFvRSxtRUFBbUUsd0JBQXdCLEtBQUssaUVBQWlFLG1FQUFtRSxLQUFLLDZEQUE2RCxnQkFBZ0IsaUJBQWlCLHNDQUFzQyx1QkFBdUIscUJBQXFCLHFDQUFxQyxLQUFLLGlFQUFpRSxtQkFBbUIsS0FBSyw2Q0FBNkMsb0JBQW9CLDBCQUEwQiw0QkFBNEIsMEJBQTBCLHFDQUFxQyxLQUFLLG9EQUFvRCwyQkFBMkIsMEJBQTBCLDhCQUE4Qiw4REFBOEQsNkRBQTZELG1CQUFtQixtQkFBbUIsK0NBQStDLG1DQUFtQyxzQkFBc0IsOENBQThDLEtBQUssMERBQTBELGtCQUFrQiwyREFBMkQsS0FBSywwREFBMEQsK0NBQStDLEtBQUssNkRBQTZELCtDQUErQyxvQ0FBb0MsMEJBQTBCLEtBQUssb0VBQW9FLG1FQUFtRSx3QkFBd0IsS0FBSyxpRUFBaUUsbUVBQW1FLEtBQUssNkRBQTZELGdCQUFnQixpQkFBaUIsc0NBQXNDLHVCQUF1QixxQkFBcUIscUNBQXFDLEtBQUssaUVBQWlFLG1CQUFtQixLQUFLO0FBQzUyRyxjQUFjO0FBQ2Q7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvTGVmdFJpZ2h0RGlhbG9nSGVhZGVyL3N0eWxlcy5qcz9mOTJkIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9fbWFrZVRlbXBsYXRlT2JqZWN0ID0gKHRoaXMgJiYgdGhpcy5fX21ha2VUZW1wbGF0ZU9iamVjdCkgfHwgZnVuY3Rpb24gKGNvb2tlZCwgcmF3KSB7XG4gICAgaWYgKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29va2VkLCBcInJhd1wiLCB7IHZhbHVlOiByYXcgfSk7IH0gZWxzZSB7IGNvb2tlZC5yYXcgPSByYXc7IH1cbiAgICByZXR1cm4gY29va2VkO1xufTtcbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLnN0eWxlcyA9IHZvaWQgMDtcbnZhciBub29wX3RlbXBsYXRlXzEgPSByZXF1aXJlKFwiLi4vLi4vaGVscGVycy9ub29wLXRlbXBsYXRlXCIpO1xudmFyIHN0eWxlcyA9ICgwLCBub29wX3RlbXBsYXRlXzEubm9vcCkodGVtcGxhdGVPYmplY3RfMSB8fCAodGVtcGxhdGVPYmplY3RfMSA9IF9fbWFrZVRlbXBsYXRlT2JqZWN0KFtcIlxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1sZWZ0LXJpZ2h0XSB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XFxuICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1sZWZ0LXJpZ2h0XSA+IG5hdiA+IGJ1dHRvbiB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG5cXG4gICAgd2lkdGg6IGNhbGModmFyKC0tc2l6ZS1nYXAtZG91YmxlKSArIHZhcigtLXNpemUtZ2FwKSk7XFxuICAgIGhlaWdodDogY2FsYyh2YXIoLS1zaXplLWdhcC1kb3VibGUpICsgdmFyKC0tc2l6ZS1nYXApKTtcXG4gICAgZm9udC1zaXplOiAwO1xcbiAgICBib3JkZXI6IG5vbmU7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCA4NSwgODUsIDAuMSk7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLXJlZCk7XFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1sZWZ0LXJpZ2h0XSA+IG5hdiA+IGJ1dHRvbiA+IHN2ZyB7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgICBoZWlnaHQ6IGNhbGModmFyKC0tc2l6ZS1nYXApICsgdmFyKC0tc2l6ZS1nYXAtaGFsZikpO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1sZWZ0LXJpZ2h0XSA+IG5hdiA+IGJ1dHRvbjpob3ZlciB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCA4NSwgODUsIDAuMik7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWxlZnQtcmlnaHRdID4gbmF2ID4gYnV0dG9uOmRpc2FibGVkIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDg1LCA4NSwgMC4xKTtcXG4gICAgY29sb3I6IHJnYmEoMjU1LCA4NSwgODUsIDAuNCk7XFxuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWxlZnQtcmlnaHRdID4gbmF2ID4gYnV0dG9uOmZpcnN0LW9mLXR5cGUge1xcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zaXplLWdhcC1oYWxmKSAwIDAgdmFyKC0tc2l6ZS1nYXAtaGFsZik7XFxuICAgIG1hcmdpbi1yaWdodDogMXB4O1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1sZWZ0LXJpZ2h0XSA+IG5hdiA+IGJ1dHRvbjpsYXN0LW9mLXR5cGUge1xcbiAgICBib3JkZXItcmFkaXVzOiAwIHZhcigtLXNpemUtZ2FwLWhhbGYpIHZhcigtLXNpemUtZ2FwLWhhbGYpIDA7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWxlZnQtcmlnaHRdID4gYnV0dG9uOmxhc3Qtb2YtdHlwZSB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgcGFkZGluZzogMDtcXG5cXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAgIGFwcGVhcmFuY2U6IG5vbmU7XFxuXFxuICAgIG9wYWNpdHk6IDAuNDtcXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjI1cyBlYXNlO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1sZWZ0LXJpZ2h0XSA+IGJ1dHRvbjpsYXN0LW9mLXR5cGU6aG92ZXIge1xcbiAgICBvcGFjaXR5OiAwLjc7XFxuICB9XFxuXCJdLCBbXCJcXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctbGVmdC1yaWdodF0ge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xcbiAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctbGVmdC1yaWdodF0gPiBuYXYgPiBidXR0b24ge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuXFxuICAgIHdpZHRoOiBjYWxjKHZhcigtLXNpemUtZ2FwLWRvdWJsZSkgKyB2YXIoLS1zaXplLWdhcCkpO1xcbiAgICBoZWlnaHQ6IGNhbGModmFyKC0tc2l6ZS1nYXAtZG91YmxlKSArIHZhcigtLXNpemUtZ2FwKSk7XFxuICAgIGZvbnQtc2l6ZTogMDtcXG4gICAgYm9yZGVyOiBub25lO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgODUsIDg1LCAwLjEpO1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItYW5zaS1yZWQpO1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZTtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctbGVmdC1yaWdodF0gPiBuYXYgPiBidXR0b24gPiBzdmcge1xcbiAgICB3aWR0aDogYXV0bztcXG4gICAgaGVpZ2h0OiBjYWxjKHZhcigtLXNpemUtZ2FwKSArIHZhcigtLXNpemUtZ2FwLWhhbGYpKTtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctbGVmdC1yaWdodF0gPiBuYXYgPiBidXR0b246aG92ZXIge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgODUsIDg1LCAwLjIpO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1sZWZ0LXJpZ2h0XSA+IG5hdiA+IGJ1dHRvbjpkaXNhYmxlZCB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCA4NSwgODUsIDAuMSk7XFxuICAgIGNvbG9yOiByZ2JhKDI1NSwgODUsIDg1LCAwLjQpO1xcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1sZWZ0LXJpZ2h0XSA+IG5hdiA+IGJ1dHRvbjpmaXJzdC1vZi10eXBlIHtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2l6ZS1nYXAtaGFsZikgMCAwIHZhcigtLXNpemUtZ2FwLWhhbGYpO1xcbiAgICBtYXJnaW4tcmlnaHQ6IDFweDtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctbGVmdC1yaWdodF0gPiBuYXYgPiBidXR0b246bGFzdC1vZi10eXBlIHtcXG4gICAgYm9yZGVyLXJhZGl1czogMCB2YXIoLS1zaXplLWdhcC1oYWxmKSB2YXIoLS1zaXplLWdhcC1oYWxmKSAwO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1sZWZ0LXJpZ2h0XSA+IGJ1dHRvbjpsYXN0LW9mLXR5cGUge1xcbiAgICBib3JkZXI6IDA7XFxuICAgIHBhZGRpbmc6IDA7XFxuXFxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICBhcHBlYXJhbmNlOiBub25lO1xcblxcbiAgICBvcGFjaXR5OiAwLjQ7XFxuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yNXMgZWFzZTtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctbGVmdC1yaWdodF0gPiBidXR0b246bGFzdC1vZi10eXBlOmhvdmVyIHtcXG4gICAgb3BhY2l0eTogMC43O1xcbiAgfVxcblwiXSkpKTtcbmV4cG9ydHMuc3R5bGVzID0gc3R5bGVzO1xudmFyIHRlbXBsYXRlT2JqZWN0XzE7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1zdHlsZXMuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/LeftRightDialogHeader/styles.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/Overlay/Overlay.js": +/*!*****************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/Overlay/Overlay.js ***! + \*****************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nexports.__esModule = true;\nexports.Overlay = void 0;\n// @ts-ignore\nvar maintain__tab_focus_1 = __importDefault(__webpack_require__(/*! ./maintain--tab-focus */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/Overlay/maintain--tab-focus.js\"));\nvar React = __importStar(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nvar body_locker_1 = __webpack_require__(/*! ./body-locker */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/Overlay/body-locker.js\");\nvar Overlay = function Overlay(_a) {\n var className = _a.className, children = _a.children, fixed = _a.fixed;\n React.useEffect(function () {\n (0, body_locker_1.lock)();\n return function () {\n (0, body_locker_1.unlock)();\n };\n }, []);\n var _b = __read(React.useState(null), 2), overlay = _b[0], setOverlay = _b[1];\n var onOverlay = React.useCallback(function (el) {\n setOverlay(el);\n }, []);\n React.useEffect(function () {\n if (overlay == null) {\n return;\n }\n var handle2 = (0, maintain__tab_focus_1[\"default\"])({ context: overlay });\n return function () {\n handle2.disengage();\n };\n }, [overlay]);\n return (React.createElement(\"div\", { \"data-nextjs-dialog-overlay\": true, className: className, ref: onOverlay },\n React.createElement(\"div\", { \"data-nextjs-dialog-backdrop\": true, \"data-nextjs-dialog-backdrop-fixed\": fixed ? true : undefined }),\n children));\n};\nexports.Overlay = Overlay;\n//# sourceMappingURL=Overlay.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvT3ZlcmxheS9PdmVybGF5LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQTtBQUNBLG1DQUFtQyxvQ0FBb0MsZ0JBQWdCO0FBQ3ZGLENBQUM7QUFDRDtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0EsMENBQTBDLDRCQUE0QjtBQUN0RSxDQUFDO0FBQ0Q7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixNQUFNO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkNBQTZDO0FBQzdDO0FBQ0Esa0JBQWtCO0FBQ2xCLGVBQWU7QUFDZjtBQUNBLDRDQUE0QyxtQkFBTyxDQUFDLDRIQUF1QjtBQUMzRSx5QkFBeUIsbUJBQU8sQ0FBQyw0Q0FBTztBQUN4QyxvQkFBb0IsbUJBQU8sQ0FBQyw0R0FBZTtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4REFBOEQsa0JBQWtCO0FBQ2hGO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCx5Q0FBeUMsMEVBQTBFO0FBQ25ILHFDQUFxQyxvR0FBb0c7QUFDekk7QUFDQTtBQUNBLGVBQWU7QUFDZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvT3ZlcmxheS9PdmVybGF5LmpzP2M0ZjQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19jcmVhdGVCaW5kaW5nID0gKHRoaXMgJiYgdGhpcy5fX2NyZWF0ZUJpbmRpbmcpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfSk7XG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgb1trMl0gPSBtW2tdO1xufSkpO1xudmFyIF9fc2V0TW9kdWxlRGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19zZXRNb2R1bGVEZWZhdWx0KSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCB2KSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIFwiZGVmYXVsdFwiLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2IH0pO1xufSkgOiBmdW5jdGlvbihvLCB2KSB7XG4gICAgb1tcImRlZmF1bHRcIl0gPSB2O1xufSk7XG52YXIgX19pbXBvcnRTdGFyID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydFN0YXIpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSByZXR1cm4gbW9kO1xuICAgIHZhciByZXN1bHQgPSB7fTtcbiAgICBpZiAobW9kICE9IG51bGwpIGZvciAodmFyIGsgaW4gbW9kKSBpZiAoayAhPT0gXCJkZWZhdWx0XCIgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG1vZCwgaykpIF9fY3JlYXRlQmluZGluZyhyZXN1bHQsIG1vZCwgayk7XG4gICAgX19zZXRNb2R1bGVEZWZhdWx0KHJlc3VsdCwgbW9kKTtcbiAgICByZXR1cm4gcmVzdWx0O1xufTtcbnZhciBfX3JlYWQgPSAodGhpcyAmJiB0aGlzLl9fcmVhZCkgfHwgZnVuY3Rpb24gKG8sIG4pIHtcbiAgICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07XG4gICAgaWYgKCFtKSByZXR1cm4gbztcbiAgICB2YXIgaSA9IG0uY2FsbChvKSwgciwgYXIgPSBbXSwgZTtcbiAgICB0cnkge1xuICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycm9yKSB7IGUgPSB7IGVycm9yOiBlcnJvciB9OyB9XG4gICAgZmluYWxseSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVtcInJldHVyblwiXSkpIG0uY2FsbChpKTtcbiAgICAgICAgfVxuICAgICAgICBmaW5hbGx5IHsgaWYgKGUpIHRocm93IGUuZXJyb3I7IH1cbiAgICB9XG4gICAgcmV0dXJuIGFyO1xufTtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLk92ZXJsYXkgPSB2b2lkIDA7XG4vLyBAdHMtaWdub3JlXG52YXIgbWFpbnRhaW5fX3RhYl9mb2N1c18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL21haW50YWluLS10YWItZm9jdXNcIikpO1xudmFyIFJlYWN0ID0gX19pbXBvcnRTdGFyKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG52YXIgYm9keV9sb2NrZXJfMSA9IHJlcXVpcmUoXCIuL2JvZHktbG9ja2VyXCIpO1xudmFyIE92ZXJsYXkgPSBmdW5jdGlvbiBPdmVybGF5KF9hKSB7XG4gICAgdmFyIGNsYXNzTmFtZSA9IF9hLmNsYXNzTmFtZSwgY2hpbGRyZW4gPSBfYS5jaGlsZHJlbiwgZml4ZWQgPSBfYS5maXhlZDtcbiAgICBSZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgICAoMCwgYm9keV9sb2NrZXJfMS5sb2NrKSgpO1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgKDAsIGJvZHlfbG9ja2VyXzEudW5sb2NrKSgpO1xuICAgICAgICB9O1xuICAgIH0sIFtdKTtcbiAgICB2YXIgX2IgPSBfX3JlYWQoUmVhY3QudXNlU3RhdGUobnVsbCksIDIpLCBvdmVybGF5ID0gX2JbMF0sIHNldE92ZXJsYXkgPSBfYlsxXTtcbiAgICB2YXIgb25PdmVybGF5ID0gUmVhY3QudXNlQ2FsbGJhY2soZnVuY3Rpb24gKGVsKSB7XG4gICAgICAgIHNldE92ZXJsYXkoZWwpO1xuICAgIH0sIFtdKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAob3ZlcmxheSA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGhhbmRsZTIgPSAoMCwgbWFpbnRhaW5fX3RhYl9mb2N1c18xW1wiZGVmYXVsdFwiXSkoeyBjb250ZXh0OiBvdmVybGF5IH0pO1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgaGFuZGxlMi5kaXNlbmdhZ2UoKTtcbiAgICAgICAgfTtcbiAgICB9LCBbb3ZlcmxheV0pO1xuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IFwiZGF0YS1uZXh0anMtZGlhbG9nLW92ZXJsYXlcIjogdHJ1ZSwgY2xhc3NOYW1lOiBjbGFzc05hbWUsIHJlZjogb25PdmVybGF5IH0sXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyBcImRhdGEtbmV4dGpzLWRpYWxvZy1iYWNrZHJvcFwiOiB0cnVlLCBcImRhdGEtbmV4dGpzLWRpYWxvZy1iYWNrZHJvcC1maXhlZFwiOiBmaXhlZCA/IHRydWUgOiB1bmRlZmluZWQgfSksXG4gICAgICAgIGNoaWxkcmVuKSk7XG59O1xuZXhwb3J0cy5PdmVybGF5ID0gT3ZlcmxheTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPU92ZXJsYXkuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/Overlay/Overlay.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/Overlay/body-locker.js": +/*!*********************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/Overlay/body-locker.js ***! + \*********************************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nexports.__esModule = true;\nexports.unlock = exports.lock = void 0;\nvar previousBodyPaddingRight;\nvar previousBodyOverflowSetting;\nvar activeLocks = 0;\nfunction lock() {\n setTimeout(function () {\n if (activeLocks++ > 0) {\n return;\n }\n var scrollBarGap = window.innerWidth - document.documentElement.clientWidth;\n if (scrollBarGap > 0) {\n previousBodyPaddingRight = document.body.style.paddingRight;\n document.body.style.paddingRight = scrollBarGap + \"px\";\n }\n previousBodyOverflowSetting = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n });\n}\nexports.lock = lock;\nfunction unlock() {\n setTimeout(function () {\n if (activeLocks === 0 || --activeLocks !== 0) {\n return;\n }\n if (previousBodyPaddingRight !== undefined) {\n document.body.style.paddingRight = previousBodyPaddingRight;\n previousBodyPaddingRight = undefined;\n }\n if (previousBodyOverflowSetting !== undefined) {\n document.body.style.overflow = previousBodyOverflowSetting;\n previousBodyOverflowSetting = undefined;\n }\n });\n}\nexports.unlock = unlock;\n//# sourceMappingURL=body-locker.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvT3ZlcmxheS9ib2R5LWxvY2tlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLGtCQUFrQjtBQUNsQixjQUFjLEdBQUcsWUFBWTtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxjQUFjO0FBQ2QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BuZXh0L3JlYWN0LWRldi1vdmVybGF5L2xpYi9pbnRlcm5hbC9jb21wb25lbnRzL092ZXJsYXkvYm9keS1sb2NrZXIuanM/YWQ1MyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLnVubG9jayA9IGV4cG9ydHMubG9jayA9IHZvaWQgMDtcbnZhciBwcmV2aW91c0JvZHlQYWRkaW5nUmlnaHQ7XG52YXIgcHJldmlvdXNCb2R5T3ZlcmZsb3dTZXR0aW5nO1xudmFyIGFjdGl2ZUxvY2tzID0gMDtcbmZ1bmN0aW9uIGxvY2soKSB7XG4gICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmIChhY3RpdmVMb2NrcysrID4gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhciBzY3JvbGxCYXJHYXAgPSB3aW5kb3cuaW5uZXJXaWR0aCAtIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aDtcbiAgICAgICAgaWYgKHNjcm9sbEJhckdhcCA+IDApIHtcbiAgICAgICAgICAgIHByZXZpb3VzQm9keVBhZGRpbmdSaWdodCA9IGRvY3VtZW50LmJvZHkuc3R5bGUucGFkZGluZ1JpZ2h0O1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5wYWRkaW5nUmlnaHQgPSBzY3JvbGxCYXJHYXAgKyBcInB4XCI7XG4gICAgICAgIH1cbiAgICAgICAgcHJldmlvdXNCb2R5T3ZlcmZsb3dTZXR0aW5nID0gZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdztcbiAgICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nO1xuICAgIH0pO1xufVxuZXhwb3J0cy5sb2NrID0gbG9jaztcbmZ1bmN0aW9uIHVubG9jaygpIHtcbiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKGFjdGl2ZUxvY2tzID09PSAwIHx8IC0tYWN0aXZlTG9ja3MgIT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAocHJldmlvdXNCb2R5UGFkZGluZ1JpZ2h0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUucGFkZGluZ1JpZ2h0ID0gcHJldmlvdXNCb2R5UGFkZGluZ1JpZ2h0O1xuICAgICAgICAgICAgcHJldmlvdXNCb2R5UGFkZGluZ1JpZ2h0ID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwcmV2aW91c0JvZHlPdmVyZmxvd1NldHRpbmcgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9IHByZXZpb3VzQm9keU92ZXJmbG93U2V0dGluZztcbiAgICAgICAgICAgIHByZXZpb3VzQm9keU92ZXJmbG93U2V0dGluZyA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuZXhwb3J0cy51bmxvY2sgPSB1bmxvY2s7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1ib2R5LWxvY2tlci5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/Overlay/body-locker.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/Overlay/index.js": +/*!***************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/Overlay/index.js ***! + \***************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nexports.__esModule = true;\nexports.Overlay = void 0;\nvar Overlay_1 = __webpack_require__(/*! ./Overlay */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/Overlay/Overlay.js\");\n__createBinding(exports, Overlay_1, \"Overlay\");\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvT3ZlcmxheS9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0E7QUFDQSxtQ0FBbUMsb0NBQW9DLGdCQUFnQjtBQUN2RixDQUFDO0FBQ0Q7QUFDQTtBQUNBLENBQUM7QUFDRCxrQkFBa0I7QUFDbEIsZUFBZTtBQUNmLGdCQUFnQixtQkFBTyxDQUFDLG9HQUFXO0FBQ25DO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BuZXh0L3JlYWN0LWRldi1vdmVybGF5L2xpYi9pbnRlcm5hbC9jb21wb25lbnRzL092ZXJsYXkvaW5kZXguanM/MjNiNyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2NyZWF0ZUJpbmRpbmcgPSAodGhpcyAmJiB0aGlzLl9fY3JlYXRlQmluZGluZykgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gbVtrXTsgfSB9KTtcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBvW2syXSA9IG1ba107XG59KSk7XG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5PdmVybGF5ID0gdm9pZCAwO1xudmFyIE92ZXJsYXlfMSA9IHJlcXVpcmUoXCIuL092ZXJsYXlcIik7XG5fX2NyZWF0ZUJpbmRpbmcoZXhwb3J0cywgT3ZlcmxheV8xLCBcIk92ZXJsYXlcIik7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/Overlay/index.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/Overlay/maintain--tab-focus.js": +/*!*****************************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/Overlay/maintain--tab-focus.js ***! + \*****************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n/* eslint-disable */\n// @ts-nocheck\n// Copied from https://github.com/medialize/ally.js\n// License: MIT\n// Copyright (c) 2015 Rodney Rehm\n//\n// Entrypoint: ally.js/maintain/tab-focus\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nexports.__esModule = true;\nvar platform_1 = __importDefault(__webpack_require__(/*! platform */ \"./node_modules/platform/platform.js\"));\nvar css_escape_1 = __importDefault(__webpack_require__(/*! css.escape */ \"./node_modules/css.escape/css.escape.js\"));\n// input may be undefined, selector-tring, Node, NodeList, HTMLCollection, array of Nodes\n// yes, to some extent this is a bad replica of jQuery's constructor function\nfunction nodeArray(input) {\n if (!input) {\n return [];\n }\n if (Array.isArray(input)) {\n return input;\n }\n // instanceof Node - does not work with iframes\n if (input.nodeType !== undefined) {\n return [input];\n }\n if (typeof input === 'string') {\n input = document.querySelectorAll(input);\n }\n if (input.length !== undefined) {\n return [].slice.call(input, 0);\n }\n throw new TypeError('unexpected input ' + String(input));\n}\nfunction contextToElement(_ref) {\n var context = _ref.context, _ref$label = _ref.label, label = _ref$label === undefined ? 'context-to-element' : _ref$label, resolveDocument = _ref.resolveDocument, defaultToDocument = _ref.defaultToDocument;\n var element = nodeArray(context)[0];\n if (resolveDocument && element && element.nodeType === Node.DOCUMENT_NODE) {\n element = element.documentElement;\n }\n if (!element && defaultToDocument) {\n return document.documentElement;\n }\n if (!element) {\n throw new TypeError(label + ' requires valid options.context');\n }\n if (element.nodeType !== Node.ELEMENT_NODE &&\n element.nodeType !== Node.DOCUMENT_FRAGMENT_NODE) {\n throw new TypeError(label + ' requires options.context to be an Element');\n }\n return element;\n}\nfunction getShadowHost() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context;\n var element = contextToElement({\n label: 'get/shadow-host',\n context: context\n });\n // walk up to the root\n var container = null;\n while (element) {\n container = element;\n element = element.parentNode;\n }\n // https://developer.mozilla.org/en-US/docs/Web/API/Node.nodeType\n // NOTE: Firefox 34 does not expose ShadowRoot.host (but 37 does)\n if (container.nodeType === container.DOCUMENT_FRAGMENT_NODE &&\n container.host) {\n // the root is attached to a fragment node that has a host\n return container.host;\n }\n return null;\n}\nfunction getDocument(node) {\n if (!node) {\n return document;\n }\n if (node.nodeType === Node.DOCUMENT_NODE) {\n return node;\n }\n return node.ownerDocument || document;\n}\nfunction isActiveElement(context) {\n var element = contextToElement({\n label: 'is/active-element',\n resolveDocument: true,\n context: context\n });\n var _document = getDocument(element);\n if (_document.activeElement === element) {\n return true;\n }\n var shadowHost = getShadowHost({ context: element });\n if (shadowHost && shadowHost.shadowRoot.activeElement === element) {\n return true;\n }\n return false;\n}\n// [elem, elem.parent, elem.parent.parent, …, html]\n// will not contain the shadowRoot (DOCUMENT_FRAGMENT_NODE) and shadowHost\nfunction getParents() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context;\n var list = [];\n var element = contextToElement({\n label: 'get/parents',\n context: context\n });\n while (element) {\n list.push(element);\n // IE does know support parentElement on SVGElement\n element = element.parentNode;\n if (element && element.nodeType !== Node.ELEMENT_NODE) {\n element = null;\n }\n }\n return list;\n}\n// Element.prototype.matches may be available at a different name\n// https://developer.mozilla.org/en/docs/Web/API/Element/matches\nvar names = [\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n];\nvar name = null;\nfunction findMethodName(element) {\n names.some(function (_name) {\n if (!element[_name]) {\n return false;\n }\n name = _name;\n return true;\n });\n}\nfunction elementMatches(element, selector) {\n if (!name) {\n findMethodName(element);\n }\n return element[name](selector);\n}\n// deep clone of original platform\nvar platform = JSON.parse(JSON.stringify(platform_1[\"default\"]));\n// operating system\nvar os = platform.os.family || '';\nvar ANDROID = os === 'Android';\nvar WINDOWS = os.slice(0, 7) === 'Windows';\nvar OSX = os === 'OS X';\nvar IOS = os === 'iOS';\n// layout\nvar BLINK = platform.layout === 'Blink';\nvar GECKO = platform.layout === 'Gecko';\nvar TRIDENT = platform.layout === 'Trident';\nvar EDGE = platform.layout === 'EdgeHTML';\nvar WEBKIT = platform.layout === 'WebKit';\n// browser version (not layout engine version!)\nvar version = parseFloat(platform.version);\nvar majorVersion = Math.floor(version);\nplatform.majorVersion = majorVersion;\nplatform.is = {\n // operating system\n ANDROID: ANDROID,\n WINDOWS: WINDOWS,\n OSX: OSX,\n IOS: IOS,\n // layout\n BLINK: BLINK,\n GECKO: GECKO,\n TRIDENT: TRIDENT,\n EDGE: EDGE,\n WEBKIT: WEBKIT,\n // INTERNET EXPLORERS\n IE9: TRIDENT && majorVersion === 9,\n IE10: TRIDENT && majorVersion === 10,\n IE11: TRIDENT && majorVersion === 11\n};\nfunction before() {\n var data = {\n // remember what had focus to restore after test\n activeElement: document.activeElement,\n // remember scroll positions to restore after test\n windowScrollTop: window.scrollTop,\n windowScrollLeft: window.scrollLeft,\n bodyScrollTop: document.body.scrollTop,\n bodyScrollLeft: document.body.scrollLeft\n };\n // wrap tests in an element hidden from screen readers to prevent them\n // from announcing focus, which can be quite irritating to the user\n var iframe = document.createElement('iframe');\n iframe.setAttribute('style', 'position:absolute; position:fixed; top:0; left:-2px; width:1px; height:1px; overflow:hidden;');\n iframe.setAttribute('aria-live', 'off');\n iframe.setAttribute('aria-busy', 'true');\n iframe.setAttribute('aria-hidden', 'true');\n document.body.appendChild(iframe);\n var _window = iframe.contentWindow;\n var _document = _window.document;\n _document.open();\n _document.close();\n var wrapper = _document.createElement('div');\n _document.body.appendChild(wrapper);\n data.iframe = iframe;\n data.wrapper = wrapper;\n data.window = _window;\n data.document = _document;\n return data;\n}\n// options.element:\n// {string} element name\n// {function} callback(wrapper, document) to generate an element\n// options.mutate: (optional)\n// {function} callback(element, wrapper, document) to manipulate element prior to focus-test.\n// Can return DOMElement to define focus target (default: element)\n// options.validate: (optional)\n// {function} callback(element, focusTarget, document) to manipulate test-result\nfunction test(data, options) {\n // make sure we operate on a clean slate\n data.wrapper.innerHTML = '';\n // create dummy element to test focusability of\n var element = typeof options.element === 'string'\n ? data.document.createElement(options.element)\n : options.element(data.wrapper, data.document);\n // allow callback to further specify dummy element\n // and optionally define element to focus\n var focus = options.mutate && options.mutate(element, data.wrapper, data.document);\n if (!focus && focus !== false) {\n focus = element;\n }\n // element needs to be part of the DOM to be focusable\n !element.parentNode && data.wrapper.appendChild(element);\n // test if the element with invalid tabindex can be focused\n focus && focus.focus && focus.focus();\n // validate test's result\n return options.validate\n ? options.validate(element, focus, data.document)\n : data.document.activeElement === focus;\n}\nfunction after(data) {\n // restore focus to what it was before test and cleanup\n if (data.activeElement === document.body) {\n document.activeElement &&\n document.activeElement.blur &&\n document.activeElement.blur();\n if (platform.is.IE10) {\n // IE10 does not redirect focus to <body> when the activeElement is removed\n document.body.focus();\n }\n }\n else {\n data.activeElement && data.activeElement.focus && data.activeElement.focus();\n }\n document.body.removeChild(data.iframe);\n // restore scroll position\n window.scrollTop = data.windowScrollTop;\n window.scrollLeft = data.windowScrollLeft;\n document.body.scrollTop = data.bodyScrollTop;\n document.body.scrollLeft = data.bodyScrollLeft;\n}\nfunction detectFocus(tests) {\n var data = before();\n var results = {};\n Object.keys(tests).map(function (key) {\n results[key] = test(data, tests[key]);\n });\n after(data);\n return results;\n}\n// this file is overwritten by `npm run build:pre`\nvar version$1 = '1.4.1';\n/*\n Facility to cache test results in localStorage.\n\n USAGE:\n cache.get('key');\n cache.set('key', 'value');\n */\nfunction readLocalStorage(key) {\n // allow reading from storage to retrieve previous support results\n // even while the document does not have focus\n var data = void 0;\n try {\n data = window.localStorage && window.localStorage.getItem(key);\n data = data ? JSON.parse(data) : {};\n }\n catch (e) {\n data = {};\n }\n return data;\n}\nfunction writeLocalStorage(key, value) {\n if (!document.hasFocus()) {\n // if the document does not have focus when tests are executed, focus() may\n // not be handled properly and events may not be dispatched immediately.\n // This can happen when a document is reloaded while Developer Tools have focus.\n try {\n window.localStorage && window.localStorage.removeItem(key);\n }\n catch (e) {\n // ignore\n }\n return;\n }\n try {\n window.localStorage &&\n window.localStorage.setItem(key, JSON.stringify(value));\n }\n catch (e) {\n // ignore\n }\n}\nvar userAgent = (typeof window !== 'undefined' && window.navigator.userAgent) || '';\nvar cacheKey = 'ally-supports-cache';\nvar cache = readLocalStorage(cacheKey);\n// update the cache if ally or the user agent changed (newer version, etc)\nif (cache.userAgent !== userAgent || cache.version !== version$1) {\n cache = {};\n}\ncache.userAgent = userAgent;\ncache.version = version$1;\nvar cache$1 = {\n get: function get() {\n return cache;\n },\n set: function set(values) {\n Object.keys(values).forEach(function (key) {\n cache[key] = values[key];\n });\n cache.time = new Date().toISOString();\n writeLocalStorage(cacheKey, cache);\n }\n};\nfunction cssShadowPiercingDeepCombinator() {\n var combinator = void 0;\n // see https://dev.w3.org/csswg/css-scoping-1/#deep-combinator\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1117572\n // https://code.google.com/p/chromium/issues/detail?id=446051\n try {\n document.querySelector('html >>> :first-child');\n combinator = '>>>';\n }\n catch (noArrowArrowArrow) {\n try {\n // old syntax supported at least up to Chrome 41\n // https://code.google.com/p/chromium/issues/detail?id=446051\n document.querySelector('html /deep/ :first-child');\n combinator = '/deep/';\n }\n catch (noDeep) {\n combinator = '';\n }\n }\n return combinator;\n}\nvar gif = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attr-usemap\nvar focusAreaImgTabindex = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML =\n '<map name=\"image-map-tabindex-test\">' +\n '<area shape=\"rect\" coords=\"63,19,144,45\"></map>' +\n '<img usemap=\"#image-map-tabindex-test\" tabindex=\"-1\" alt=\"\" src=\"' +\n gif +\n '\">';\n return element.querySelector('area');\n }\n};\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attr-usemap\nvar focusAreaTabindex = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML =\n '<map name=\"image-map-tabindex-test\">' +\n '<area href=\"#void\" tabindex=\"-1\" shape=\"rect\" coords=\"63,19,144,45\"></map>' +\n '<img usemap=\"#image-map-tabindex-test\" alt=\"\" src=\"' +\n gif +\n '\">';\n return false;\n },\n validate: function validate(element, focusTarget, _document) {\n if (platform.is.GECKO) {\n // fixes https://github.com/medialize/ally.js/issues/35\n // Firefox loads the DataURI asynchronously, causing a false-negative\n return true;\n }\n var focus = element.querySelector('area');\n focus.focus();\n return _document.activeElement === focus;\n }\n};\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attr-usemap\nvar focusAreaWithoutHref = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML =\n '<map name=\"image-map-area-href-test\">' +\n '<area shape=\"rect\" coords=\"63,19,144,45\"></map>' +\n '<img usemap=\"#image-map-area-href-test\" alt=\"\" src=\"' +\n gif +\n '\">';\n return element.querySelector('area');\n },\n validate: function validate(element, focusTarget, _document) {\n if (platform.is.GECKO) {\n // fixes https://github.com/medialize/ally.js/issues/35\n // Firefox loads the DataURI asynchronously, causing a false-negative\n return true;\n }\n return _document.activeElement === focusTarget;\n }\n};\nvar focusAudioWithoutControls = {\n name: 'can-focus-audio-without-controls',\n element: 'audio',\n mutate: function mutate(element) {\n try {\n // invalid media file can trigger warning in console, data-uri to prevent HTTP request\n element.setAttribute('src', gif);\n }\n catch (e) {\n // IE9 may throw \"Error: Not implemented\"\n }\n }\n};\nvar invalidGif = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ';\n// NOTE: https://github.com/medialize/ally.js/issues/35\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attr-usemap\nvar focusBrokenImageMap = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML =\n '<map name=\"broken-image-map-test\"><area href=\"#void\" shape=\"rect\" coords=\"63,19,144,45\"></map>' +\n '<img usemap=\"#broken-image-map-test\" alt=\"\" src=\"' +\n invalidGif +\n '\">';\n return element.querySelector('area');\n }\n};\n// Children of focusable elements with display:flex are focusable in IE10-11\nvar focusChildrenOfFocusableFlexbox = {\n element: 'div',\n mutate: function mutate(element) {\n element.setAttribute('tabindex', '-1');\n element.setAttribute('style', 'display: -webkit-flex; display: -ms-flexbox; display: flex;');\n element.innerHTML = '<span style=\"display: block;\">hello</span>';\n return element.querySelector('span');\n }\n};\n// fieldset[tabindex=0][disabled] should not be focusable, but Blink and WebKit disagree\n// @specification https://www.w3.org/TR/html5/disabled-elements.html#concept-element-disabled\n// @browser-issue Chromium https://crbug.com/453847\n// @browser-issue WebKit https://bugs.webkit.org/show_bug.cgi?id=141086\nvar focusFieldsetDisabled = {\n element: 'fieldset',\n mutate: function mutate(element) {\n element.setAttribute('tabindex', 0);\n element.setAttribute('disabled', 'disabled');\n }\n};\nvar focusFieldset = {\n element: 'fieldset',\n mutate: function mutate(element) {\n element.innerHTML = '<legend>legend</legend><p>content</p>';\n }\n};\n// elements with display:flex are focusable in IE10-11\nvar focusFlexboxContainer = {\n element: 'span',\n mutate: function mutate(element) {\n element.setAttribute('style', 'display: -webkit-flex; display: -ms-flexbox; display: flex;');\n element.innerHTML = '<span style=\"display: block;\">hello</span>';\n }\n};\n// form[tabindex=0][disabled] should be focusable as the\n// specification doesn't know the disabled attribute on the form element\n// @specification https://www.w3.org/TR/html5/forms.html#the-form-element\nvar focusFormDisabled = {\n element: 'form',\n mutate: function mutate(element) {\n element.setAttribute('tabindex', 0);\n element.setAttribute('disabled', 'disabled');\n }\n};\n// NOTE: https://github.com/medialize/ally.js/issues/35\n// fixes https://github.com/medialize/ally.js/issues/20\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attr-ismap\nvar focusImgIsmap = {\n element: 'a',\n mutate: function mutate(element) {\n element.href = '#void';\n element.innerHTML = '<img ismap src=\"' + gif + '\" alt=\"\">';\n return element.querySelector('img');\n }\n};\n// NOTE: https://github.com/medialize/ally.js/issues/35\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attr-usemap\nvar focusImgUsemapTabindex = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML =\n '<map name=\"image-map-tabindex-test\"><area href=\"#void\" shape=\"rect\" coords=\"63,19,144,45\"></map>' +\n '<img usemap=\"#image-map-tabindex-test\" tabindex=\"-1\" alt=\"\" ' +\n 'src=\"' +\n gif +\n '\">';\n return element.querySelector('img');\n }\n};\nvar focusInHiddenIframe = {\n element: function element(wrapper, _document) {\n var iframe = _document.createElement('iframe');\n // iframe must be part of the DOM before accessing the contentWindow is possible\n wrapper.appendChild(iframe);\n // create the iframe's default document (<html><head></head><body></body></html>)\n var iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.close();\n return iframe;\n },\n mutate: function mutate(iframe) {\n iframe.style.visibility = 'hidden';\n var iframeDocument = iframe.contentWindow.document;\n var input = iframeDocument.createElement('input');\n iframeDocument.body.appendChild(input);\n return input;\n },\n validate: function validate(iframe) {\n var iframeDocument = iframe.contentWindow.document;\n var focus = iframeDocument.querySelector('input');\n return iframeDocument.activeElement === focus;\n }\n};\nvar result = !platform.is.WEBKIT;\nfunction focusInZeroDimensionObject() {\n return result;\n}\n// Firefox allows *any* value and treats invalid values like tabindex=\"-1\"\n// @browser-issue Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=1128054\nvar focusInvalidTabindex = {\n element: 'div',\n mutate: function mutate(element) {\n element.setAttribute('tabindex', 'invalid-value');\n }\n};\nvar focusLabelTabindex = {\n element: 'label',\n mutate: function mutate(element) {\n element.setAttribute('tabindex', '-1');\n },\n validate: function validate(element, focusTarget, _document) {\n // force layout in Chrome 49, otherwise the element won't be focusable\n /* eslint-disable no-unused-vars */\n var variableToPreventDeadCodeElimination = element.offsetHeight;\n /* eslint-enable no-unused-vars */\n element.focus();\n return _document.activeElement === element;\n }\n};\nvar svg = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtb' +\n 'G5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBpZD0ic3ZnIj48dGV4dCB4PSIxMCIgeT0iMjAiIGlkPSJ' +\n 'zdmctbGluay10ZXh0Ij50ZXh0PC90ZXh0Pjwvc3ZnPg==';\n// Note: IE10 on BrowserStack does not like this test\nvar focusObjectSvgHidden = {\n element: 'object',\n mutate: function mutate(element) {\n element.setAttribute('type', 'image/svg+xml');\n element.setAttribute('data', svg);\n element.setAttribute('width', '200');\n element.setAttribute('height', '50');\n element.style.visibility = 'hidden';\n }\n};\n// Note: IE10 on BrowserStack does not like this test\nvar focusObjectSvg = {\n name: 'can-focus-object-svg',\n element: 'object',\n mutate: function mutate(element) {\n element.setAttribute('type', 'image/svg+xml');\n element.setAttribute('data', svg);\n element.setAttribute('width', '200');\n element.setAttribute('height', '50');\n },\n validate: function validate(element, focusTarget, _document) {\n if (platform.is.GECKO) {\n // Firefox seems to be handling the object creation asynchronously and thereby produces a false negative test result.\n // Because we know Firefox is able to focus object elements referencing SVGs, we simply cheat by sniffing the user agent string\n return true;\n }\n return _document.activeElement === element;\n }\n};\n// Every Environment except IE9 considers SWF objects focusable\nvar result$1 = !platform.is.IE9;\nfunction focusObjectSwf() {\n return result$1;\n}\nvar focusRedirectImgUsemap = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML =\n '<map name=\"focus-redirect-img-usemap\"><area href=\"#void\" shape=\"rect\" coords=\"63,19,144,45\"></map>' +\n '<img usemap=\"#focus-redirect-img-usemap\" alt=\"\" ' +\n 'src=\"' +\n gif +\n '\">';\n // focus the <img>, not the <div>\n return element.querySelector('img');\n },\n validate: function validate(element, focusTarget, _document) {\n var target = element.querySelector('area');\n return _document.activeElement === target;\n }\n};\n// see https://jsbin.com/nenirisage/edit?html,js,console,output\nvar focusRedirectLegend = {\n element: 'fieldset',\n mutate: function mutate(element) {\n element.innerHTML =\n '<legend>legend</legend><input tabindex=\"-1\"><input tabindex=\"0\">';\n // take care of focus in validate();\n return false;\n },\n validate: function validate(element, focusTarget, _document) {\n var focusable = element.querySelector('input[tabindex=\"-1\"]');\n var tabbable = element.querySelector('input[tabindex=\"0\"]');\n // Firefox requires this test to focus the <fieldset> first, while this is not necessary in\n // https://jsbin.com/nenirisage/edit?html,js,console,output\n element.focus();\n element.querySelector('legend').focus();\n return ((_document.activeElement === focusable && 'focusable') ||\n (_document.activeElement === tabbable && 'tabbable') ||\n '');\n }\n};\n// https://github.com/medialize/ally.js/issues/21\nvar focusScrollBody = {\n element: 'div',\n mutate: function mutate(element) {\n element.setAttribute('style', 'width: 100px; height: 50px; overflow: auto;');\n element.innerHTML =\n '<div style=\"width: 500px; height: 40px;\">scrollable content</div>';\n return element.querySelector('div');\n }\n};\n// https://github.com/medialize/ally.js/issues/21\nvar focusScrollContainerWithoutOverflow = {\n element: 'div',\n mutate: function mutate(element) {\n element.setAttribute('style', 'width: 100px; height: 50px;');\n element.innerHTML =\n '<div style=\"width: 500px; height: 40px;\">scrollable content</div>';\n }\n};\n// https://github.com/medialize/ally.js/issues/21\nvar focusScrollContainer = {\n element: 'div',\n mutate: function mutate(element) {\n element.setAttribute('style', 'width: 100px; height: 50px; overflow: auto;');\n element.innerHTML =\n '<div style=\"width: 500px; height: 40px;\">scrollable content</div>';\n }\n};\nvar focusSummary = {\n element: 'details',\n mutate: function mutate(element) {\n element.innerHTML = '<summary>foo</summary><p>content</p>';\n return element.firstElementChild;\n }\n};\nfunction makeFocusableForeignObject() {\n var fragment = document.createElement('div');\n fragment.innerHTML =\n '<svg><foreignObject width=\"30\" height=\"30\">\\n <input type=\"text\"/>\\n </foreignObject></svg>';\n return fragment.firstChild.firstChild;\n}\nfunction focusSvgForeignObjectHack(element) {\n // Edge13, Edge14: foreignObject focus hack\n // https://jsbin.com/kunehinugi/edit?html,js,output\n // https://jsbin.com/fajagi/3/edit?html,js,output\n var isSvgElement = element.ownerSVGElement || element.nodeName.toLowerCase() === 'svg';\n if (!isSvgElement) {\n return false;\n }\n // inject and focus an <input> element into the SVG element to receive focus\n var foreignObject = makeFocusableForeignObject();\n element.appendChild(foreignObject);\n var input = foreignObject.querySelector('input');\n input.focus();\n // upon disabling the activeElement, IE and Edge\n // will not shift focus to <body> like all the other\n // browsers, but instead find the first focusable\n // ancestor and shift focus to that\n input.disabled = true;\n // clean up\n element.removeChild(foreignObject);\n return true;\n}\nfunction generate(element) {\n return ('<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">' +\n element +\n '</svg>');\n}\nfunction focus(element) {\n if (element.focus) {\n return;\n }\n try {\n HTMLElement.prototype.focus.call(element);\n }\n catch (e) {\n focusSvgForeignObjectHack(element);\n }\n}\nfunction validate(element, focusTarget, _document) {\n focus(focusTarget);\n return _document.activeElement === focusTarget;\n}\nvar focusSvgFocusableAttribute = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML = generate('<text focusable=\"true\">a</text>');\n return element.querySelector('text');\n },\n validate: validate\n};\nvar focusSvgTabindexAttribute = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML = generate('<text tabindex=\"0\">a</text>');\n return element.querySelector('text');\n },\n validate: validate\n};\nvar focusSvgNegativeTabindexAttribute = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML = generate('<text tabindex=\"-1\">a</text>');\n return element.querySelector('text');\n },\n validate: validate\n};\nvar focusSvgUseTabindex = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML = generate([\n '<g id=\"ally-test-target\"><a xlink:href=\"#void\"><text>link</text></a></g>',\n '<use xlink:href=\"#ally-test-target\" x=\"0\" y=\"0\" tabindex=\"-1\" />',\n ].join(''));\n return element.querySelector('use');\n },\n validate: validate\n};\nvar focusSvgForeignobjectTabindex = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML = generate('<foreignObject tabindex=\"-1\"><input type=\"text\" /></foreignObject>');\n // Safari 8's quersSelector() can't identify foreignObject, but getElementyByTagName() can\n return (element.querySelector('foreignObject') ||\n element.getElementsByTagName('foreignObject')[0]);\n },\n validate: validate\n};\n// Firefox seems to be handling the SVG-document-in-iframe creation asynchronously\n// and thereby produces a false negative test result. Thus the test is pointless\n// and we resort to UA sniffing once again.\n// see http://jsbin.com/vunadohoko/1/edit?js,console,output\nvar result$2 = Boolean(platform.is.GECKO &&\n typeof SVGElement !== 'undefined' &&\n SVGElement.prototype.focus);\nfunction focusSvgInIframe() {\n return result$2;\n}\nvar focusSvg = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML = generate('');\n return element.firstChild;\n },\n validate: validate\n};\n// Firefox allows *any* value and treats invalid values like tabindex=\"-1\"\n// @browser-issue Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=1128054\nvar focusTabindexTrailingCharacters = {\n element: 'div',\n mutate: function mutate(element) {\n element.setAttribute('tabindex', '3x');\n }\n};\nvar focusTable = {\n element: 'table',\n mutate: function mutate(element, wrapper, _document) {\n // IE9 has a problem replacing TBODY contents with innerHTML.\n // https://stackoverflow.com/a/8097055/515124\n // element.innerHTML = '<tr><td>cell</td></tr>';\n var fragment = _document.createDocumentFragment();\n fragment.innerHTML = '<tr><td>cell</td></tr>';\n element.appendChild(fragment);\n }\n};\nvar focusVideoWithoutControls = {\n element: 'video',\n mutate: function mutate(element) {\n try {\n // invalid media file can trigger warning in console, data-uri to prevent HTTP request\n element.setAttribute('src', gif);\n }\n catch (e) {\n // IE9 may throw \"Error: Not implemented\"\n }\n }\n};\n// https://jsbin.com/vafaba/3/edit?html,js,console,output\nvar result$3 = platform.is.GECKO || platform.is.TRIDENT || platform.is.EDGE;\nfunction tabsequenceAreaAtImgPosition() {\n return result$3;\n}\nvar testCallbacks = {\n cssShadowPiercingDeepCombinator: cssShadowPiercingDeepCombinator,\n focusInZeroDimensionObject: focusInZeroDimensionObject,\n focusObjectSwf: focusObjectSwf,\n focusSvgInIframe: focusSvgInIframe,\n tabsequenceAreaAtImgPosition: tabsequenceAreaAtImgPosition\n};\nvar testDescriptions = {\n focusAreaImgTabindex: focusAreaImgTabindex,\n focusAreaTabindex: focusAreaTabindex,\n focusAreaWithoutHref: focusAreaWithoutHref,\n focusAudioWithoutControls: focusAudioWithoutControls,\n focusBrokenImageMap: focusBrokenImageMap,\n focusChildrenOfFocusableFlexbox: focusChildrenOfFocusableFlexbox,\n focusFieldsetDisabled: focusFieldsetDisabled,\n focusFieldset: focusFieldset,\n focusFlexboxContainer: focusFlexboxContainer,\n focusFormDisabled: focusFormDisabled,\n focusImgIsmap: focusImgIsmap,\n focusImgUsemapTabindex: focusImgUsemapTabindex,\n focusInHiddenIframe: focusInHiddenIframe,\n focusInvalidTabindex: focusInvalidTabindex,\n focusLabelTabindex: focusLabelTabindex,\n focusObjectSvg: focusObjectSvg,\n focusObjectSvgHidden: focusObjectSvgHidden,\n focusRedirectImgUsemap: focusRedirectImgUsemap,\n focusRedirectLegend: focusRedirectLegend,\n focusScrollBody: focusScrollBody,\n focusScrollContainerWithoutOverflow: focusScrollContainerWithoutOverflow,\n focusScrollContainer: focusScrollContainer,\n focusSummary: focusSummary,\n focusSvgFocusableAttribute: focusSvgFocusableAttribute,\n focusSvgTabindexAttribute: focusSvgTabindexAttribute,\n focusSvgNegativeTabindexAttribute: focusSvgNegativeTabindexAttribute,\n focusSvgUseTabindex: focusSvgUseTabindex,\n focusSvgForeignobjectTabindex: focusSvgForeignobjectTabindex,\n focusSvg: focusSvg,\n focusTabindexTrailingCharacters: focusTabindexTrailingCharacters,\n focusTable: focusTable,\n focusVideoWithoutControls: focusVideoWithoutControls\n};\nfunction executeTests() {\n var results = detectFocus(testDescriptions);\n Object.keys(testCallbacks).forEach(function (key) {\n results[key] = testCallbacks[key]();\n });\n return results;\n}\nvar supportsCache = null;\nfunction _supports() {\n if (supportsCache) {\n return supportsCache;\n }\n supportsCache = cache$1.get();\n if (!supportsCache.time) {\n cache$1.set(executeTests());\n supportsCache = cache$1.get();\n }\n return supportsCache;\n}\nvar supports = void 0;\n// https://www.w3.org/TR/html5/infrastructure.html#rules-for-parsing-integers\n// NOTE: all browsers agree to allow trailing spaces as well\nvar validIntegerPatternNoTrailing = /^\\s*(-|\\+)?[0-9]+\\s*$/;\nvar validIntegerPatternWithTrailing = /^\\s*(-|\\+)?[0-9]+.*$/;\nfunction isValidTabindex(context) {\n if (!supports) {\n supports = _supports();\n }\n var validIntegerPattern = supports.focusTabindexTrailingCharacters\n ? validIntegerPatternWithTrailing\n : validIntegerPatternNoTrailing;\n var element = contextToElement({\n label: 'is/valid-tabindex',\n resolveDocument: true,\n context: context\n });\n // Edge 14 has a capitalization problem on SVG elements,\n // see https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/9282058/\n var hasTabindex = element.hasAttribute('tabindex');\n var hasTabIndex = element.hasAttribute('tabIndex');\n if (!hasTabindex && !hasTabIndex) {\n return false;\n }\n // older Firefox and Internet Explorer don't support tabindex on SVG elements\n var isSvgElement = element.ownerSVGElement || element.nodeName.toLowerCase() === 'svg';\n if (isSvgElement && !supports.focusSvgTabindexAttribute) {\n return false;\n }\n // @browser-issue Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=1128054\n if (supports.focusInvalidTabindex) {\n return true;\n }\n // an element matches the tabindex selector even if its value is invalid\n var tabindex = element.getAttribute(hasTabindex ? 'tabindex' : 'tabIndex');\n // IE11 parses tabindex=\"\" as the value \"-32768\"\n // @browser-issue Trident https://connect.microsoft.com/IE/feedback/details/1072965\n if (tabindex === '-32768') {\n return false;\n }\n return Boolean(tabindex && validIntegerPattern.test(tabindex));\n}\nfunction tabindexValue(element) {\n if (!isValidTabindex(element)) {\n return null;\n }\n // Edge 14 has a capitalization problem on SVG elements,\n // see https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/9282058/\n var hasTabindex = element.hasAttribute('tabindex');\n var attributeName = hasTabindex ? 'tabindex' : 'tabIndex';\n // @browser-issue Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=1128054\n var tabindex = parseInt(element.getAttribute(attributeName), 10);\n return isNaN(tabindex) ? -1 : tabindex;\n}\n// this is a shared utility file for focus-relevant.js and tabbable.js\n// separate testing of this file's functions is not necessary,\n// as they're implicitly tested by way of the consumers\nfunction isUserModifyWritable(style) {\n // https://www.w3.org/TR/1999/WD-css3-userint-19990916#user-modify\n // https://github.com/medialize/ally.js/issues/17\n var userModify = style.webkitUserModify || '';\n return Boolean(userModify && userModify.indexOf('write') !== -1);\n}\nfunction hasCssOverflowScroll(style) {\n return [\n style.getPropertyValue('overflow'),\n style.getPropertyValue('overflow-x'),\n style.getPropertyValue('overflow-y'),\n ].some(function (overflow) {\n return overflow === 'auto' || overflow === 'scroll';\n });\n}\nfunction hasCssDisplayFlex(style) {\n return style.display.indexOf('flex') > -1;\n}\nfunction isScrollableContainer(element, nodeName, parentNodeName, parentStyle) {\n if (nodeName !== 'div' && nodeName !== 'span') {\n // Internet Explorer advances scrollable containers and bodies to focusable\n // only if the scrollable container is <div> or <span> - this does *not*\n // happen for <section>, <article>, …\n return false;\n }\n if (parentNodeName &&\n parentNodeName !== 'div' &&\n parentNodeName !== 'span' &&\n !hasCssOverflowScroll(parentStyle)) {\n return false;\n }\n return (element.offsetHeight < element.scrollHeight ||\n element.offsetWidth < element.scrollWidth);\n}\nvar supports$1 = void 0;\nfunction isFocusRelevantRules() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, _ref$except = _ref.except, except = _ref$except === undefined\n ? {\n flexbox: false,\n scrollable: false,\n shadow: false\n }\n : _ref$except;\n if (!supports$1) {\n supports$1 = _supports();\n }\n var element = contextToElement({\n label: 'is/focus-relevant',\n resolveDocument: true,\n context: context\n });\n if (!except.shadow && element.shadowRoot) {\n // a ShadowDOM host receives focus when the focus moves to its content\n return true;\n }\n var nodeName = element.nodeName.toLowerCase();\n if (nodeName === 'input' && element.type === 'hidden') {\n // input[type=\"hidden\"] supports.cannot be focused\n return false;\n }\n if (nodeName === 'input' ||\n nodeName === 'select' ||\n nodeName === 'button' ||\n nodeName === 'textarea') {\n return true;\n }\n if (nodeName === 'legend' && supports$1.focusRedirectLegend) {\n // specifics filtered in is/focusable\n return true;\n }\n if (nodeName === 'label') {\n // specifics filtered in is/focusable\n return true;\n }\n if (nodeName === 'area') {\n // specifics filtered in is/focusable\n return true;\n }\n if (nodeName === 'a' && element.hasAttribute('href')) {\n return true;\n }\n if (nodeName === 'object' && element.hasAttribute('usemap')) {\n // object[usemap] is not focusable in any browser\n return false;\n }\n if (nodeName === 'object') {\n var svgType = element.getAttribute('type');\n if (!supports$1.focusObjectSvg && svgType === 'image/svg+xml') {\n // object[type=\"image/svg+xml\"] is not focusable in Internet Explorer\n return false;\n }\n else if (!supports$1.focusObjectSwf &&\n svgType === 'application/x-shockwave-flash') {\n // object[type=\"application/x-shockwave-flash\"] is not focusable in Internet Explorer 9\n return false;\n }\n }\n if (nodeName === 'iframe' || nodeName === 'object') {\n // browsing context containers\n return true;\n }\n if (nodeName === 'embed' || nodeName === 'keygen') {\n // embed is considered focus-relevant but not focusable\n // see https://github.com/medialize/ally.js/issues/82\n return true;\n }\n if (element.hasAttribute('contenteditable')) {\n // also see CSS property user-modify below\n return true;\n }\n if (nodeName === 'audio' &&\n (supports$1.focusAudioWithoutControls || element.hasAttribute('controls'))) {\n return true;\n }\n if (nodeName === 'video' &&\n (supports$1.focusVideoWithoutControls || element.hasAttribute('controls'))) {\n return true;\n }\n if (supports$1.focusSummary && nodeName === 'summary') {\n return true;\n }\n var validTabindex = isValidTabindex(element);\n if (nodeName === 'img' && element.hasAttribute('usemap')) {\n // Gecko, Trident and Edge do not allow an image with an image map and tabindex to be focused,\n // it appears the tabindex is overruled so focus is still forwarded to the <map>\n return ((validTabindex && supports$1.focusImgUsemapTabindex) ||\n supports$1.focusRedirectImgUsemap);\n }\n if (supports$1.focusTable && (nodeName === 'table' || nodeName === 'td')) {\n // IE10-11 supports.can focus <table> and <td>\n return true;\n }\n if (supports$1.focusFieldset && nodeName === 'fieldset') {\n // IE10-11 supports.can focus <fieldset>\n return true;\n }\n var isSvgElement = nodeName === 'svg';\n var isSvgContent = element.ownerSVGElement;\n var focusableAttribute = element.getAttribute('focusable');\n var tabindex = tabindexValue(element);\n if (nodeName === 'use' &&\n tabindex !== null &&\n !supports$1.focusSvgUseTabindex) {\n // <use> cannot be made focusable by adding a tabindex attribute anywhere but Blink and WebKit\n return false;\n }\n if (nodeName === 'foreignobject') {\n // <use> can only be made focusable in Blink and WebKit\n return tabindex !== null && supports$1.focusSvgForeignobjectTabindex;\n }\n if (elementMatches(element, 'svg a') && element.hasAttribute('xlink:href')) {\n return true;\n }\n if ((isSvgElement || isSvgContent) &&\n element.focus &&\n !supports$1.focusSvgNegativeTabindexAttribute &&\n tabindex < 0) {\n // Firefox 51 and 52 treat any natively tabbable SVG element with\n // tabindex=\"-1\" as tabbable and everything else as inert\n // see https://bugzilla.mozilla.org/show_bug.cgi?id=1302340\n return false;\n }\n if (isSvgElement) {\n return (validTabindex ||\n supports$1.focusSvg ||\n supports$1.focusSvgInIframe ||\n // Internet Explorer understands the focusable attribute introduced in SVG Tiny 1.2\n Boolean(supports$1.focusSvgFocusableAttribute &&\n focusableAttribute &&\n focusableAttribute === 'true'));\n }\n if (isSvgContent) {\n if (supports$1.focusSvgTabindexAttribute && validTabindex) {\n return true;\n }\n if (supports$1.focusSvgFocusableAttribute) {\n // Internet Explorer understands the focusable attribute introduced in SVG Tiny 1.2\n return focusableAttribute === 'true';\n }\n }\n // https://www.w3.org/TR/html5/editing.html#sequential-focus-navigation-and-the-tabindex-attribute\n if (validTabindex) {\n return true;\n }\n var style = window.getComputedStyle(element, null);\n if (isUserModifyWritable(style)) {\n return true;\n }\n if (supports$1.focusImgIsmap &&\n nodeName === 'img' &&\n element.hasAttribute('ismap')) {\n // IE10-11 considers the <img> in <a href><img ismap> focusable\n // https://github.com/medialize/ally.js/issues/20\n var hasLinkParent = getParents({ context: element }).some(function (parent) {\n return (parent.nodeName.toLowerCase() === 'a' && parent.hasAttribute('href'));\n });\n if (hasLinkParent) {\n return true;\n }\n }\n // https://github.com/medialize/ally.js/issues/21\n if (!except.scrollable && supports$1.focusScrollContainer) {\n if (supports$1.focusScrollContainerWithoutOverflow) {\n // Internet Explorer does will consider the scrollable area focusable\n // if the element is a <div> or a <span> and it is in fact scrollable,\n // regardless of the CSS overflow property\n if (isScrollableContainer(element, nodeName)) {\n return true;\n }\n }\n else if (hasCssOverflowScroll(style)) {\n // Firefox requires proper overflow setting, IE does not necessarily\n // https://developer.mozilla.org/en-US/docs/Web/CSS/overflow\n return true;\n }\n }\n if (!except.flexbox &&\n supports$1.focusFlexboxContainer &&\n hasCssDisplayFlex(style)) {\n // elements with display:flex are focusable in IE10-11\n return true;\n }\n var parent = element.parentElement;\n if (!except.scrollable && parent) {\n var parentNodeName = parent.nodeName.toLowerCase();\n var parentStyle = window.getComputedStyle(parent, null);\n if (supports$1.focusScrollBody &&\n isScrollableContainer(parent, nodeName, parentNodeName, parentStyle)) {\n // scrollable bodies are focusable Internet Explorer\n // https://github.com/medialize/ally.js/issues/21\n return true;\n }\n // Children of focusable elements with display:flex are focusable in IE10-11\n if (supports$1.focusChildrenOfFocusableFlexbox) {\n if (hasCssDisplayFlex(parentStyle)) {\n return true;\n }\n }\n }\n // NOTE: elements marked as inert are not focusable,\n // but that property is not exposed to the DOM\n // https://www.w3.org/TR/html5/editing.html#inert\n return false;\n}\n// bind exceptions to an iterator callback\nisFocusRelevantRules.except = function () {\n var except = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var isFocusRelevant = function isFocusRelevant(context) {\n return isFocusRelevantRules({\n context: context,\n except: except\n });\n };\n isFocusRelevant.rules = isFocusRelevantRules;\n return isFocusRelevant;\n};\n// provide isFocusRelevant(context) as default iterator callback\nvar isFocusRelevant = isFocusRelevantRules.except({});\nfunction findIndex(array, callback) {\n // attempt to use native or polyfilled Array#findIndex first\n if (array.findIndex) {\n return array.findIndex(callback);\n }\n var length = array.length;\n // shortcut if the array is empty\n if (length === 0) {\n return -1;\n }\n // otherwise loop over array\n for (var i = 0; i < length; i++) {\n if (callback(array[i], i, array)) {\n return i;\n }\n }\n return -1;\n}\nfunction getContentDocument(node) {\n try {\n // works on <object> and <iframe>\n return (node.contentDocument ||\n // works on <object> and <iframe>\n (node.contentWindow && node.contentWindow.document) ||\n // works on <object> and <iframe> that contain SVG\n (node.getSVGDocument && node.getSVGDocument()) ||\n null);\n }\n catch (e) {\n // SecurityError: Failed to read the 'contentDocument' property from 'HTMLObjectElement'\n // also IE may throw member not found exception e.g. on <object type=\"image/png\">\n return null;\n }\n}\nfunction getWindow(node) {\n var _document = getDocument(node);\n return _document.defaultView || window;\n}\nvar shadowPrefix = void 0;\nfunction selectInShadows(selector) {\n if (typeof shadowPrefix !== 'string') {\n var operator = cssShadowPiercingDeepCombinator();\n if (operator) {\n shadowPrefix = ', html ' + operator + ' ';\n }\n }\n if (!shadowPrefix) {\n return selector;\n }\n return (selector +\n shadowPrefix +\n selector\n .replace(/\\s*,\\s*/g, ',')\n .split(',')\n .join(shadowPrefix));\n}\nvar selector = void 0;\nfunction findDocumentHostElement(_window) {\n if (!selector) {\n selector = selectInShadows('object, iframe');\n }\n if (_window._frameElement !== undefined) {\n return _window._frameElement;\n }\n _window._frameElement = null;\n var potentialHosts = _window.parent.document.querySelectorAll(selector);\n [].some.call(potentialHosts, function (element) {\n var _document = getContentDocument(element);\n if (_document !== _window.document) {\n return false;\n }\n _window._frameElement = element;\n return true;\n });\n return _window._frameElement;\n}\nfunction getFrameElement(element) {\n var _window = getWindow(element);\n if (!_window.parent || _window.parent === _window) {\n // if there is no parent browsing context,\n // we're not going to get a frameElement either way\n return null;\n }\n try {\n // see https://developer.mozilla.org/en-US/docs/Web/API/Window/frameElement\n // does not work within <embed> anywhere, and not within in <object> in IE\n return _window.frameElement || findDocumentHostElement(_window);\n }\n catch (e) {\n return null;\n }\n}\n// https://www.w3.org/TR/html5/rendering.html#being-rendered\n// <area> is not rendered, but we *consider* it visible to simplfiy this function's usage\nvar notRenderedElementsPattern = /^(area)$/;\nfunction computedStyle(element, property) {\n return window.getComputedStyle(element, null).getPropertyValue(property);\n}\nfunction notDisplayed(_path) {\n return _path.some(function (element) {\n // display:none is not visible (optimized away at layout)\n return computedStyle(element, 'display') === 'none';\n });\n}\nfunction notVisible(_path) {\n // https://github.com/jquery/jquery-ui/blob/master/ui/core.js#L109-L114\n // NOTE: a nested element can reverse visibility:hidden|collapse by explicitly setting visibility:visible\n // NOTE: visibility can be [\"\", \"visible\", \"hidden\", \"collapse\"]\n var hidden = findIndex(_path, function (element) {\n var visibility = computedStyle(element, 'visibility');\n return visibility === 'hidden' || visibility === 'collapse';\n });\n if (hidden === -1) {\n // there is no hidden element\n return false;\n }\n var visible = findIndex(_path, function (element) {\n return computedStyle(element, 'visibility') === 'visible';\n });\n if (visible === -1) {\n // there is no visible element (but a hidden element)\n return true;\n }\n if (hidden < visible) {\n // there is a hidden element and it's closer than the first visible element\n return true;\n }\n // there may be a hidden element, but the closest element is visible\n return false;\n}\nfunction collapsedParent(_path) {\n var offset = 1;\n if (_path[0].nodeName.toLowerCase() === 'summary') {\n offset = 2;\n }\n return _path.slice(offset).some(function (element) {\n // \"content children\" of a closed details element are not visible\n return (element.nodeName.toLowerCase() === 'details' && element.open === false);\n });\n}\nfunction isVisibleRules() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, _ref$except = _ref.except, except = _ref$except === undefined\n ? {\n notRendered: false,\n cssDisplay: false,\n cssVisibility: false,\n detailsElement: false,\n browsingContext: false\n }\n : _ref$except;\n var element = contextToElement({\n label: 'is/visible',\n resolveDocument: true,\n context: context\n });\n var nodeName = element.nodeName.toLowerCase();\n if (!except.notRendered && notRenderedElementsPattern.test(nodeName)) {\n return true;\n }\n var _path = getParents({ context: element });\n // in Internet Explorer <audio> has a default display: none, where others have display: inline\n // but IE allows focusing <audio style=\"display:none\">, but not <div display:none><audio>\n // this is irrelevant to other browsers, as the controls attribute is required to make <audio> focusable\n var isAudioWithoutControls = nodeName === 'audio' && !element.hasAttribute('controls');\n if (!except.cssDisplay &&\n notDisplayed(isAudioWithoutControls ? _path.slice(1) : _path)) {\n return false;\n }\n if (!except.cssVisibility && notVisible(_path)) {\n return false;\n }\n if (!except.detailsElement && collapsedParent(_path)) {\n return false;\n }\n if (!except.browsingContext) {\n // elements within a browsing context are affected by the\n // browsing context host element's visibility and tabindex\n var frameElement = getFrameElement(element);\n var _isVisible = isVisibleRules.except(except);\n if (frameElement && !_isVisible(frameElement)) {\n return false;\n }\n }\n return true;\n}\n// bind exceptions to an iterator callback\nisVisibleRules.except = function () {\n var except = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var isVisible = function isVisible(context) {\n return isVisibleRules({\n context: context,\n except: except\n });\n };\n isVisible.rules = isVisibleRules;\n return isVisible;\n};\n// provide isVisible(context) as default iterator callback\nvar isVisible = isVisibleRules.except({});\nfunction getMapByName(name, _document) {\n // apparently getElementsByName() also considers id attribute in IE & opera\n // https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByName\n var map = _document.querySelector('map[name=\"' + (0, css_escape_1[\"default\"])(name) + '\"]');\n return map || null;\n}\nfunction getImageOfArea(element) {\n var map = element.parentElement;\n if (!map.name || map.nodeName.toLowerCase() !== 'map') {\n return null;\n }\n // NOTE: image maps can also be applied to <object> with image content,\n // but no browser supports this at the moment\n // HTML5 specifies HTMLMapElement.images to be an HTMLCollection of all\n // <img> and <object> referencing the <map> element, but no browser implements this\n // https://www.w3.org/TR/html5/embedded-content-0.html#the-map-element\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLMapElement\n // the image must be valid and loaded for the map to take effect\n var _document = getDocument(element);\n return (_document.querySelector('img[usemap=\"#' + (0, css_escape_1[\"default\"])(map.name) + '\"]') ||\n null);\n}\nvar supports$2 = void 0;\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/map\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attr-usemap\n// https://github.com/jquery/jquery-ui/blob/master/ui/core.js#L88-L107\nfunction isValidArea(context) {\n if (!supports$2) {\n supports$2 = _supports();\n }\n var element = contextToElement({\n label: 'is/valid-area',\n context: context\n });\n var nodeName = element.nodeName.toLowerCase();\n if (nodeName !== 'area') {\n return false;\n }\n var hasTabindex = element.hasAttribute('tabindex');\n if (!supports$2.focusAreaTabindex && hasTabindex) {\n // Blink and WebKit do not consider <area tabindex=\"-1\" href=\"#void\"> focusable\n return false;\n }\n var img = getImageOfArea(element);\n if (!img || !isVisible(img)) {\n return false;\n }\n // Firefox only allows fully loaded images to reference image maps\n // https://stereochro.me/ideas/detecting-broken-images-js\n if (!supports$2.focusBrokenImageMap &&\n (!img.complete ||\n !img.naturalHeight ||\n img.offsetWidth <= 0 ||\n img.offsetHeight <= 0)) {\n return false;\n }\n // Firefox supports.can focus area elements even if they don't have an href attribute\n if (!supports$2.focusAreaWithoutHref && !element.href) {\n // Internet explorer supports.can focus area elements without href if either\n // the area element or the image element has a tabindex attribute\n return ((supports$2.focusAreaTabindex && hasTabindex) ||\n (supports$2.focusAreaImgTabindex && img.hasAttribute('tabindex')));\n }\n // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attr-usemap\n var childOfInteractive = getParents({ context: img })\n .slice(1)\n .some(function (_element) {\n var name = _element.nodeName.toLowerCase();\n return name === 'button' || name === 'a';\n });\n if (childOfInteractive) {\n return false;\n }\n return true;\n}\nvar supports$3 = void 0;\n// https://www.w3.org/TR/html5/disabled-elements.html#concept-element-disabled\nvar disabledElementsPattern = void 0;\nvar disabledElements = {\n input: true,\n select: true,\n textarea: true,\n button: true,\n fieldset: true,\n form: true\n};\nfunction isNativeDisabledSupported(context) {\n if (!supports$3) {\n supports$3 = _supports();\n if (supports$3.focusFieldsetDisabled) {\n delete disabledElements.fieldset;\n }\n if (supports$3.focusFormDisabled) {\n delete disabledElements.form;\n }\n disabledElementsPattern = new RegExp('^(' + Object.keys(disabledElements).join('|') + ')$');\n }\n var element = contextToElement({\n label: 'is/native-disabled-supported',\n context: context\n });\n var nodeName = element.nodeName.toLowerCase();\n return Boolean(disabledElementsPattern.test(nodeName));\n}\nvar supports$4 = void 0;\nfunction isDisabledFieldset(element) {\n var nodeName = element.nodeName.toLowerCase();\n return nodeName === 'fieldset' && element.disabled;\n}\nfunction isDisabledForm(element) {\n var nodeName = element.nodeName.toLowerCase();\n return nodeName === 'form' && element.disabled;\n}\nfunction isDisabled(context) {\n if (!supports$4) {\n supports$4 = _supports();\n }\n var element = contextToElement({\n label: 'is/disabled',\n context: context\n });\n if (element.hasAttribute('data-ally-disabled')) {\n // treat ally's element/disabled like the DOM native element.disabled\n return true;\n }\n if (!isNativeDisabledSupported(element)) {\n // non-form elements do not support the disabled attribute\n return false;\n }\n if (element.disabled) {\n // the element itself is disabled\n return true;\n }\n var parents = getParents({ context: element });\n if (parents.some(isDisabledFieldset)) {\n // a parental <fieldset> is disabld and inherits the state onto this element\n return true;\n }\n if (!supports$4.focusFormDisabled && parents.some(isDisabledForm)) {\n // a parental <form> is disabld and inherits the state onto this element\n return true;\n }\n return false;\n}\nfunction isOnlyTabbableRules() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, _ref$except = _ref.except, except = _ref$except === undefined\n ? {\n onlyFocusableBrowsingContext: false,\n visible: false\n }\n : _ref$except;\n var element = contextToElement({\n label: 'is/only-tabbable',\n resolveDocument: true,\n context: context\n });\n if (!except.visible && !isVisible(element)) {\n return false;\n }\n if (!except.onlyFocusableBrowsingContext &&\n (platform.is.GECKO || platform.is.TRIDENT || platform.is.EDGE)) {\n var frameElement = getFrameElement(element);\n if (frameElement) {\n if (tabindexValue(frameElement) < 0) {\n // iframe[tabindex=\"-1\"] and object[tabindex=\"-1\"] inherit the\n // tabbable demotion onto elements of their browsing contexts\n return false;\n }\n }\n }\n var nodeName = element.nodeName.toLowerCase();\n var tabindex = tabindexValue(element);\n if (nodeName === 'label' && platform.is.GECKO) {\n // Firefox cannot focus, but tab to: label[tabindex=0]\n return tabindex !== null && tabindex >= 0;\n }\n // SVG Elements were keyboard focusable but not script focusable before Firefox 51.\n // Firefox 51 added the focus management DOM API (.focus and .blur) to SVGElement,\n // see https://bugzilla.mozilla.org/show_bug.cgi?id=778654\n if (platform.is.GECKO && element.ownerSVGElement && !element.focus) {\n if (nodeName === 'a' && element.hasAttribute('xlink:href')) {\n // any focusable child of <svg> cannot be focused, but tabbed to\n if (platform.is.GECKO) {\n return true;\n }\n }\n }\n return false;\n}\n// bind exceptions to an iterator callback\nisOnlyTabbableRules.except = function () {\n var except = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var isOnlyTabbable = function isOnlyTabbable(context) {\n return isOnlyTabbableRules({\n context: context,\n except: except\n });\n };\n isOnlyTabbable.rules = isOnlyTabbableRules;\n return isOnlyTabbable;\n};\n// provide isOnlyTabbable(context) as default iterator callback\nvar isOnlyTabbable = isOnlyTabbableRules.except({});\nvar supports$5 = void 0;\nfunction isOnlyFocusRelevant(element) {\n var nodeName = element.nodeName.toLowerCase();\n if (nodeName === 'embed' || nodeName === 'keygen') {\n // embed is considered focus-relevant but not focusable\n // see https://github.com/medialize/ally.js/issues/82\n return true;\n }\n var _tabindex = tabindexValue(element);\n if (element.shadowRoot && _tabindex === null) {\n // ShadowDOM host elements *may* receive focus\n // even though they are not considered focuable\n return true;\n }\n if (nodeName === 'label') {\n // <label tabindex=\"0\"> is only tabbable in Firefox, not script-focusable\n // there's no way to make an element focusable other than by adding a tabindex,\n // and focus behavior of the label element seems hard-wired to ignore tabindex\n // in some browsers (like Gecko, Blink and WebKit)\n return !supports$5.focusLabelTabindex || _tabindex === null;\n }\n if (nodeName === 'legend') {\n return _tabindex === null;\n }\n if (supports$5.focusSvgFocusableAttribute &&\n (element.ownerSVGElement || nodeName === 'svg')) {\n // Internet Explorer understands the focusable attribute introduced in SVG Tiny 1.2\n var focusableAttribute = element.getAttribute('focusable');\n return focusableAttribute && focusableAttribute === 'false';\n }\n if (nodeName === 'img' && element.hasAttribute('usemap')) {\n // Gecko, Trident and Edge do not allow an image with an image map and tabindex to be focused,\n // it appears the tabindex is overruled so focus is still forwarded to the <map>\n return _tabindex === null || !supports$5.focusImgUsemapTabindex;\n }\n if (nodeName === 'area') {\n // all <area>s are considered relevant,\n // but only the valid <area>s are focusable\n return !isValidArea(element);\n }\n return false;\n}\nfunction isFocusableRules() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, _ref$except = _ref.except, except = _ref$except === undefined\n ? {\n disabled: false,\n visible: false,\n onlyTabbable: false\n }\n : _ref$except;\n if (!supports$5) {\n supports$5 = _supports();\n }\n var _isOnlyTabbable = isOnlyTabbable.rules.except({\n onlyFocusableBrowsingContext: true,\n visible: except.visible\n });\n var element = contextToElement({\n label: 'is/focusable',\n resolveDocument: true,\n context: context\n });\n var focusRelevant = isFocusRelevant.rules({\n context: element,\n except: except\n });\n if (!focusRelevant || isOnlyFocusRelevant(element)) {\n return false;\n }\n if (!except.disabled && isDisabled(element)) {\n return false;\n }\n if (!except.onlyTabbable && _isOnlyTabbable(element)) {\n // some elements may be keyboard focusable, but not script focusable\n return false;\n }\n // elements that are not rendered, cannot be focused\n if (!except.visible) {\n var visibilityOptions = {\n context: element,\n except: {}\n };\n if (supports$5.focusInHiddenIframe) {\n // WebKit and Blink can focus content in hidden <iframe> and <object>\n visibilityOptions.except.browsingContext = true;\n }\n if (supports$5.focusObjectSvgHidden) {\n // Blink allows focusing the object element, even if it has visibility: hidden;\n // @browser-issue Blink https://code.google.com/p/chromium/issues/detail?id=586191\n var _nodeName2 = element.nodeName.toLowerCase();\n if (_nodeName2 === 'object') {\n visibilityOptions.except.cssVisibility = true;\n }\n }\n if (!isVisible.rules(visibilityOptions)) {\n return false;\n }\n }\n var frameElement = getFrameElement(element);\n if (frameElement) {\n var _nodeName = frameElement.nodeName.toLowerCase();\n if (_nodeName === 'object' && !supports$5.focusInZeroDimensionObject) {\n if (!frameElement.offsetWidth || !frameElement.offsetHeight) {\n // WebKit can not focus content in <object> if it doesn't have dimensions\n return false;\n }\n }\n }\n var nodeName = element.nodeName.toLowerCase();\n if (nodeName === 'svg' &&\n supports$5.focusSvgInIframe &&\n !frameElement &&\n element.getAttribute('tabindex') === null) {\n return false;\n }\n return true;\n}\n// bind exceptions to an iterator callback\nisFocusableRules.except = function () {\n var except = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var isFocusable = function isFocusable(context) {\n return isFocusableRules({\n context: context,\n except: except\n });\n };\n isFocusable.rules = isFocusableRules;\n return isFocusable;\n};\n// provide isFocusRelevant(context) as default iterator callback\nvar isFocusable = isFocusableRules.except({});\nfunction createFilter(condition) {\n // see https://developer.mozilla.org/en-US/docs/Web/API/NodeFilter\n var filter = function filter(node) {\n if (node.shadowRoot) {\n // return ShadowRoot elements regardless of them being focusable,\n // so they can be walked recursively later\n return NodeFilter.FILTER_ACCEPT;\n }\n if (condition(node)) {\n // finds elements that could have been found by document.querySelectorAll()\n return NodeFilter.FILTER_ACCEPT;\n }\n return NodeFilter.FILTER_SKIP;\n };\n // IE requires a function, Browsers require {acceptNode: function}\n // see http://www.bennadel.com/blog/2607-finding-html-comment-nodes-in-the-dom-using-treewalker.htm\n filter.acceptNode = filter;\n return filter;\n}\nvar PossiblyFocusableFilter = createFilter(isFocusRelevant);\nfunction queryFocusableStrict() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, includeContext = _ref.includeContext, includeOnlyTabbable = _ref.includeOnlyTabbable, strategy = _ref.strategy;\n if (!context) {\n context = document.documentElement;\n }\n var _isFocusable = isFocusable.rules.except({\n onlyTabbable: includeOnlyTabbable\n });\n var _document = getDocument(context);\n // see https://developer.mozilla.org/en-US/docs/Web/API/Document/createTreeWalker\n var walker = _document.createTreeWalker(\n // root element to start search in\n context, \n // element type filter\n NodeFilter.SHOW_ELEMENT, \n // custom NodeFilter filter\n strategy === 'all' ? PossiblyFocusableFilter : createFilter(_isFocusable), \n // deprecated, but IE requires it\n false);\n var list = [];\n while (walker.nextNode()) {\n if (walker.currentNode.shadowRoot) {\n if (_isFocusable(walker.currentNode)) {\n list.push(walker.currentNode);\n }\n list = list.concat(queryFocusableStrict({\n context: walker.currentNode.shadowRoot,\n includeOnlyTabbable: includeOnlyTabbable,\n strategy: strategy\n }));\n }\n else {\n list.push(walker.currentNode);\n }\n }\n // add context if requested and focusable\n if (includeContext) {\n if (strategy === 'all') {\n if (isFocusRelevant(context)) {\n list.unshift(context);\n }\n }\n else if (_isFocusable(context)) {\n list.unshift(context);\n }\n }\n return list;\n}\n// NOTE: this selector MUST *never* be used directly,\nvar supports$6 = void 0;\nvar selector$1 = void 0;\nfunction selector$2() {\n if (!supports$6) {\n supports$6 = _supports();\n }\n if (typeof selector$1 === 'string') {\n return selector$1;\n }\n // https://www.w3.org/TR/html5/editing.html#sequential-focus-navigation-and-the-tabindex-attribute\n selector$1 =\n '' +\n // IE11 supports.can focus <table> and <td>\n (supports$6.focusTable ? 'table, td,' : '') +\n // IE11 supports.can focus <fieldset>\n (supports$6.focusFieldset ? 'fieldset,' : '') +\n // Namespace problems of [xlink:href] explained in https://stackoverflow.com/a/23047888/515124\n // svg a[*|href] does not match in IE9, but since we're filtering\n // through is/focusable we can include all <a> from SVG\n 'svg a,' +\n // may behave as 'svg, svg *,' in chrome as *every* svg element with a focus event listener is focusable\n // navigational elements\n 'a[href],' +\n // validity determined by is/valid-area.js\n 'area[href],' +\n // validity determined by is/disabled.js\n 'input, select, textarea, button,' +\n // browsing context containers\n 'iframe, object, embed,' +\n // interactive content\n 'keygen,' +\n (supports$6.focusAudioWithoutControls ? 'audio,' : 'audio[controls],') +\n (supports$6.focusVideoWithoutControls ? 'video,' : 'video[controls],') +\n (supports$6.focusSummary ? 'summary,' : '') +\n // validity determined by is/valid-tabindex.js\n '[tabindex],' +\n // editing hosts\n '[contenteditable]';\n // where ShadowDOM is supported, we also want the shadowed focusable elements (via \">>>\" or \"/deep/\")\n selector$1 = selectInShadows(selector$1);\n return selector$1;\n}\nfunction queryFocusableQuick() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, includeContext = _ref.includeContext, includeOnlyTabbable = _ref.includeOnlyTabbable;\n var _selector = selector$2();\n var elements = context.querySelectorAll(_selector);\n // the selector potentially matches more than really is focusable\n var _isFocusable = isFocusable.rules.except({\n onlyTabbable: includeOnlyTabbable\n });\n var result = [].filter.call(elements, _isFocusable);\n // add context if requested and focusable\n if (includeContext && _isFocusable(context)) {\n result.unshift(context);\n }\n return result;\n}\nfunction queryFocusable() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, includeContext = _ref.includeContext, includeOnlyTabbable = _ref.includeOnlyTabbable, _ref$strategy = _ref.strategy, strategy = _ref$strategy === undefined ? 'quick' : _ref$strategy;\n var element = contextToElement({\n label: 'query/focusable',\n resolveDocument: true,\n defaultToDocument: true,\n context: context\n });\n var options = {\n context: element,\n includeContext: includeContext,\n includeOnlyTabbable: includeOnlyTabbable,\n strategy: strategy\n };\n if (strategy === 'quick') {\n return queryFocusableQuick(options);\n }\n else if (strategy === 'strict' || strategy === 'all') {\n return queryFocusableStrict(options);\n }\n throw new TypeError('query/focusable requires option.strategy to be one of [\"quick\", \"strict\", \"all\"]');\n}\nvar supports$7 = void 0;\n// Internet Explorer 11 considers fieldset, table, td focusable, but not tabbable\n// Internet Explorer 11 considers body to have [tabindex=0], but does not allow tabbing to it\nvar focusableElementsPattern = /^(fieldset|table|td|body)$/;\nfunction isTabbableRules() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, _ref$except = _ref.except, except = _ref$except === undefined\n ? {\n flexbox: false,\n scrollable: false,\n shadow: false,\n visible: false,\n onlyTabbable: false\n }\n : _ref$except;\n if (!supports$7) {\n supports$7 = _supports();\n }\n var element = contextToElement({\n label: 'is/tabbable',\n resolveDocument: true,\n context: context\n });\n if (platform.is.BLINK && platform.is.ANDROID && platform.majorVersion > 42) {\n // External keyboard support worked fine in CHrome 42, but stopped working in Chrome 45.\n // The on-screen keyboard does not provide a way to focus the next input element (like iOS does).\n // That leaves us with no option to advance focus by keyboard, ergo nothing is tabbable (keyboard focusable).\n return false;\n }\n var frameElement = getFrameElement(element);\n if (frameElement) {\n if (platform.is.WEBKIT && platform.is.IOS) {\n // iOS only does not consider anything from another browsing context keyboard focusable\n return false;\n }\n // iframe[tabindex=\"-1\"] and object[tabindex=\"-1\"] inherit the\n // tabbable demotion onto elements of their browsing contexts\n if (tabindexValue(frameElement) < 0) {\n return false;\n }\n if (!except.visible &&\n (platform.is.BLINK || platform.is.WEBKIT) &&\n !isVisible(frameElement)) {\n // Blink and WebKit consider elements in hidden browsing contexts focusable, but not tabbable\n return false;\n }\n // Webkit and Blink don't consider anything in <object> tabbable\n // Blink fixed that fixed in Chrome 54, Opera 41\n var frameNodeName = frameElement.nodeName.toLowerCase();\n if (frameNodeName === 'object') {\n var isFixedBlink = (platform.name === 'Chrome' && platform.majorVersion >= 54) ||\n (platform.name === 'Opera' && platform.majorVersion >= 41);\n if (platform.is.WEBKIT || (platform.is.BLINK && !isFixedBlink)) {\n return false;\n }\n }\n }\n var nodeName = element.nodeName.toLowerCase();\n var _tabindex = tabindexValue(element);\n var tabindex = _tabindex === null ? null : _tabindex >= 0;\n if (platform.is.EDGE &&\n platform.majorVersion >= 14 &&\n frameElement &&\n element.ownerSVGElement &&\n _tabindex < 0) {\n // Edge 14+ considers <a xlink:href=\"…\" tabindex=\"-1\"> keyboard focusable\n // if the element is in a nested browsing context\n return true;\n }\n var hasTabbableTabindexOrNone = tabindex !== false;\n var hasTabbableTabindex = _tabindex !== null && _tabindex >= 0;\n // NOTE: Firefox 31 considers [contenteditable] to have [tabindex=-1], but allows tabbing to it\n // fixed in Firefox 40 the latest - https://bugzilla.mozilla.org/show_bug.cgi?id=1185657\n if (element.hasAttribute('contenteditable')) {\n // tabbing can still be disabled by explicitly providing [tabindex=\"-1\"]\n return hasTabbableTabindexOrNone;\n }\n if (focusableElementsPattern.test(nodeName) && tabindex !== true) {\n return false;\n }\n if (platform.is.WEBKIT && platform.is.IOS) {\n // iOS only considers a hand full of elements tabbable (keyboard focusable)\n // this holds true even with external keyboards\n var potentiallyTabbable = (nodeName === 'input' && element.type === 'text') ||\n element.type === 'password' ||\n nodeName === 'select' ||\n nodeName === 'textarea' ||\n element.hasAttribute('contenteditable');\n if (!potentiallyTabbable) {\n var style = window.getComputedStyle(element, null);\n potentiallyTabbable = isUserModifyWritable(style);\n }\n if (!potentiallyTabbable) {\n return false;\n }\n }\n if (nodeName === 'use' && _tabindex !== null) {\n if (platform.is.BLINK ||\n (platform.is.WEBKIT && platform.majorVersion === 9)) {\n // In Chrome and Safari 9 the <use> element is keyboard focusable even for tabindex=\"-1\"\n return true;\n }\n }\n if (elementMatches(element, 'svg a') && element.hasAttribute('xlink:href')) {\n if (hasTabbableTabindexOrNone) {\n // in Trident and Gecko SVGElement does not handle the tabIndex property properly\n return true;\n }\n if (element.focus && !supports$7.focusSvgNegativeTabindexAttribute) {\n // Firefox 51 and 52 treat any natively tabbable SVG element with\n // tabindex=\"-1\" as tabbable and everything else as inert\n // see https://bugzilla.mozilla.org/show_bug.cgi?id=1302340\n return true;\n }\n }\n if (nodeName === 'svg' &&\n supports$7.focusSvgInIframe &&\n hasTabbableTabindexOrNone) {\n return true;\n }\n if (platform.is.TRIDENT || platform.is.EDGE) {\n if (nodeName === 'svg') {\n if (supports$7.focusSvg) {\n // older Internet Explorers consider <svg> keyboard focusable\n // unless they have focsable=\"false\", but then they wouldn't\n // be focusable and thus not even reach this filter\n return true;\n }\n // elements that have [focusable] are automatically keyboard focusable regardless of the attribute's value\n return element.hasAttribute('focusable') || hasTabbableTabindex;\n }\n if (element.ownerSVGElement) {\n if (supports$7.focusSvgTabindexAttribute && hasTabbableTabindex) {\n return true;\n }\n // elements that have [focusable] are automatically keyboard focusable regardless of the attribute's value\n return element.hasAttribute('focusable');\n }\n }\n if (element.tabIndex === undefined) {\n return Boolean(except.onlyTabbable);\n }\n if (nodeName === 'audio') {\n if (!element.hasAttribute('controls')) {\n // In Internet Explorer the <audio> element is focusable, but not tabbable, and tabIndex property is wrong\n return false;\n }\n else if (platform.is.BLINK) {\n // In Chrome <audio controls tabindex=\"-1\"> remains keyboard focusable\n return true;\n }\n }\n if (nodeName === 'video') {\n if (!element.hasAttribute('controls')) {\n if (platform.is.TRIDENT || platform.is.EDGE) {\n // In Internet Explorer and Edge the <video> element is focusable, but not tabbable, and tabIndex property is wrong\n return false;\n }\n }\n else if (platform.is.BLINK || platform.is.GECKO) {\n // In Chrome and Firefox <video controls tabindex=\"-1\"> remains keyboard focusable\n return true;\n }\n }\n if (nodeName === 'object') {\n if (platform.is.BLINK || platform.is.WEBKIT) {\n // In all Blink and WebKit based browsers <embed> and <object> are never keyboard focusable, even with tabindex=\"0\" set\n return false;\n }\n }\n if (nodeName === 'iframe') {\n // In Internet Explorer all iframes are only focusable\n // In WebKit, Blink and Gecko iframes may be tabbable depending on content.\n // Since we can't reliably investigate iframe documents because of the\n // SameOriginPolicy, we're declaring everything only focusable.\n return false;\n }\n if (!except.scrollable && platform.is.GECKO) {\n // Firefox considers scrollable containers keyboard focusable,\n // even though their tabIndex property is -1\n var _style = window.getComputedStyle(element, null);\n if (hasCssOverflowScroll(_style)) {\n return hasTabbableTabindexOrNone;\n }\n }\n if (platform.is.TRIDENT || platform.is.EDGE) {\n // IE and Edge degrade <area> to script focusable, if the image\n // using the <map> has been given tabindex=\"-1\"\n if (nodeName === 'area') {\n var img = getImageOfArea(element);\n if (img && tabindexValue(img) < 0) {\n return false;\n }\n }\n var _style2 = window.getComputedStyle(element, null);\n if (isUserModifyWritable(_style2)) {\n // prevent being swallowed by the overzealous isScrollableContainer() below\n return element.tabIndex >= 0;\n }\n if (!except.flexbox && hasCssDisplayFlex(_style2)) {\n if (_tabindex !== null) {\n return hasTabbableTabindex;\n }\n return (isFocusRelevantWithoutFlexbox(element) &&\n isTabbableWithoutFlexbox(element));\n }\n // IE considers scrollable containers script focusable only,\n // even though their tabIndex property is 0\n if (isScrollableContainer(element, nodeName)) {\n return false;\n }\n var parent = element.parentElement;\n if (parent) {\n var parentNodeName = parent.nodeName.toLowerCase();\n var parentStyle = window.getComputedStyle(parent, null);\n // IE considers scrollable bodies script focusable only,\n if (isScrollableContainer(parent, nodeName, parentNodeName, parentStyle)) {\n return false;\n }\n // Children of focusable elements with display:flex are focusable in IE10-11,\n // even though their tabIndex property suggests otherwise\n if (hasCssDisplayFlex(parentStyle)) {\n // value of tabindex takes precedence\n return hasTabbableTabindex;\n }\n }\n }\n // https://www.w3.org/WAI/PF/aria-practices/#focus_tabindex\n return element.tabIndex >= 0;\n}\n// bind exceptions to an iterator callback\nisTabbableRules.except = function () {\n var except = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var isTabbable = function isTabbable(context) {\n return isTabbableRules({\n context: context,\n except: except\n });\n };\n isTabbable.rules = isTabbableRules;\n return isTabbable;\n};\nvar isFocusRelevantWithoutFlexbox = isFocusRelevant.rules.except({\n flexbox: true\n});\nvar isTabbableWithoutFlexbox = isTabbableRules.except({ flexbox: true });\n// provide isTabbable(context) as default iterator callback\nvar isTabbable = isTabbableRules.except({});\nfunction queryTabbable() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, includeContext = _ref.includeContext, includeOnlyTabbable = _ref.includeOnlyTabbable, strategy = _ref.strategy;\n var _isTabbable = isTabbable.rules.except({\n onlyTabbable: includeOnlyTabbable\n });\n return queryFocusable({\n context: context,\n includeContext: includeContext,\n includeOnlyTabbable: includeOnlyTabbable,\n strategy: strategy\n }).filter(_isTabbable);\n}\n// sorts a list of elements according to their order in the DOM\nfunction compareDomPosition(a, b) {\n return a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING\n ? -1\n : 1;\n}\nfunction sortDomOrder(elements) {\n return elements.sort(compareDomPosition);\n}\nfunction getFirstSuccessorOffset(list, target) {\n // find the first element that comes AFTER the target element\n return findIndex(list, function (element) {\n return (target.compareDocumentPosition(element) & Node.DOCUMENT_POSITION_FOLLOWING);\n });\n}\nfunction findInsertionOffsets(list, elements, resolveElement) {\n // instead of mutating the elements list directly, remember position and map\n // to inject later, when we can do this more efficiently\n var insertions = [];\n elements.forEach(function (element) {\n var replace = true;\n var offset = list.indexOf(element);\n if (offset === -1) {\n // element is not in target list\n offset = getFirstSuccessorOffset(list, element);\n replace = false;\n }\n if (offset === -1) {\n // there is no successor in the tabsequence,\n // meaning the image must be the last element\n offset = list.length;\n }\n // allow the consumer to replace the injected element\n var injections = nodeArray(resolveElement ? resolveElement(element) : element);\n if (!injections.length) {\n // we can't inject zero elements\n return;\n }\n insertions.push({\n offset: offset,\n replace: replace,\n elements: injections\n });\n });\n return insertions;\n}\nfunction insertElementsAtOffsets(list, insertions) {\n // remember the number of elements we have already injected\n // so we account for the caused index offset\n var inserted = 0;\n // make sure that we insert the elements in sequence,\n // otherwise the offset compensation won't work\n insertions.sort(function (a, b) {\n return a.offset - b.offset;\n });\n insertions.forEach(function (insertion) {\n // array.splice has an annoying function signature :(\n var remove = insertion.replace ? 1 : 0;\n var args = [insertion.offset + inserted, remove].concat(insertion.elements);\n list.splice.apply(list, args);\n inserted += insertion.elements.length - remove;\n });\n}\nfunction mergeInDomOrder() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, list = _ref.list, elements = _ref.elements, resolveElement = _ref.resolveElement;\n // operate on a copy so we don't mutate the original array\n var _list = list.slice(0);\n // make sure the elements we're injecting are provided in DOM order\n var _elements = nodeArray(elements).slice(0);\n sortDomOrder(_elements);\n // find the offsets within the target array (list) at which to inject\n // each individual element (from elements)\n var insertions = findInsertionOffsets(_list, _elements, resolveElement);\n // actually inject the elements into the target array at the identified positions\n insertElementsAtOffsets(_list, insertions);\n return _list;\n}\nvar _createClass = (function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n})();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Maps = (function () {\n function Maps(context) {\n _classCallCheck(this, Maps);\n this._document = getDocument(context);\n this.maps = {};\n }\n _createClass(Maps, [\n {\n key: 'getAreasFor',\n value: function getAreasFor(name) {\n if (!this.maps[name]) {\n // the map is not defined within the context, so we\n // have to go find it elsewhere in the document\n this.addMapByName(name);\n }\n return this.maps[name];\n }\n },\n {\n key: 'addMapByName',\n value: function addMapByName(name) {\n var map = getMapByName(name, this._document);\n if (!map) {\n // if there is no map, the img[usemap] wasn't doing anything anyway\n return;\n }\n this.maps[map.name] = queryTabbable({ context: map });\n }\n },\n {\n key: 'extractAreasFromList',\n value: function extractAreasFromList(elements) {\n // remove all <area> elements from the elements list,\n // but put them the map for later retrieval\n return elements.filter(function (element) {\n var nodeName = element.nodeName.toLowerCase();\n if (nodeName !== 'area') {\n return true;\n }\n var map = element.parentNode;\n if (!this.maps[map.name]) {\n this.maps[map.name] = [];\n }\n this.maps[map.name].push(element);\n return false;\n }, this);\n }\n },\n ]);\n return Maps;\n})();\nfunction sortArea(elements, context) {\n // images - unless they are focusable themselves, likely not\n // part of the elements list, so we'll have to find them and\n // sort them into the elements list manually\n var usemaps = context.querySelectorAll('img[usemap]');\n var maps = new Maps(context);\n // remove all <area> elements from the elements list,\n // but put them the map for later retrieval\n var _elements = maps.extractAreasFromList(elements);\n if (!usemaps.length) {\n // the context does not contain any <area>s so no need\n // to replace anything, just remove any maps\n return _elements;\n }\n return mergeInDomOrder({\n list: _elements,\n elements: usemaps,\n resolveElement: function resolveElement(image) {\n var name = image.getAttribute('usemap').slice(1);\n return maps.getAreasFor(name);\n }\n });\n}\nvar _createClass$1 = (function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n})();\nfunction _classCallCheck$1(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Shadows = (function () {\n function Shadows(context, sortElements) {\n _classCallCheck$1(this, Shadows);\n // document context we're working with\n this.context = context;\n // callback that sorts an array of elements\n this.sortElements = sortElements;\n // reference to create unique IDs for each ShadowHost\n this.hostCounter = 1;\n // reference map for child-ShadowHosts of a ShadowHost\n this.inHost = {};\n // reference map for child-ShadowHost of the document\n this.inDocument = [];\n // reference map for ShadowHosts\n this.hosts = {};\n // reference map for tabbable elements of a ShadowHost\n this.elements = {};\n }\n // remember which hosts we have to sort within later\n _createClass$1(Shadows, [\n {\n key: '_registerHost',\n value: function _registerHost(host) {\n if (host._sortingId) {\n return;\n }\n // make the ShadowHost identifiable (see cleanup() for undo)\n host._sortingId = 'shadow-' + this.hostCounter++;\n this.hosts[host._sortingId] = host;\n // hosts may contain other hosts\n var parentHost = getShadowHost({ context: host });\n if (parentHost) {\n this._registerHost(parentHost);\n this._registerHostParent(host, parentHost);\n }\n else {\n this.inDocument.push(host);\n }\n }\n },\n {\n key: '_registerHostParent',\n value: function _registerHostParent(host, parent) {\n if (!this.inHost[parent._sortingId]) {\n this.inHost[parent._sortingId] = [];\n }\n this.inHost[parent._sortingId].push(host);\n }\n },\n {\n key: '_registerElement',\n value: function _registerElement(element, host) {\n if (!this.elements[host._sortingId]) {\n this.elements[host._sortingId] = [];\n }\n this.elements[host._sortingId].push(element);\n }\n },\n {\n key: 'extractElements',\n value: function extractElements(elements) {\n return elements.filter(function (element) {\n var host = getShadowHost({ context: element });\n if (!host) {\n return true;\n }\n this._registerHost(host);\n this._registerElement(element, host);\n return false;\n }, this);\n }\n },\n {\n key: 'sort',\n value: function sort(elements) {\n var _elements = this._injectHosts(elements);\n _elements = this._replaceHosts(_elements);\n this._cleanup();\n return _elements;\n }\n },\n {\n key: '_injectHosts',\n value: function _injectHosts(elements) {\n Object.keys(this.hosts).forEach(function (_sortingId) {\n var _list = this.elements[_sortingId];\n var _elements = this.inHost[_sortingId];\n var _context = this.hosts[_sortingId].shadowRoot;\n this.elements[_sortingId] = this._merge(_list, _elements, _context);\n }, this);\n return this._merge(elements, this.inDocument, this.context);\n }\n },\n {\n key: '_merge',\n value: function _merge(list, elements, context) {\n var merged = mergeInDomOrder({\n list: list,\n elements: elements\n });\n return this.sortElements(merged, context);\n }\n },\n {\n key: '_replaceHosts',\n value: function _replaceHosts(elements) {\n return mergeInDomOrder({\n list: elements,\n elements: this.inDocument,\n resolveElement: this._resolveHostElement.bind(this)\n });\n }\n },\n {\n key: '_resolveHostElement',\n value: function _resolveHostElement(host) {\n var merged = mergeInDomOrder({\n list: this.elements[host._sortingId],\n elements: this.inHost[host._sortingId],\n resolveElement: this._resolveHostElement.bind(this)\n });\n var _tabindex = tabindexValue(host);\n if (_tabindex !== null && _tabindex > -1) {\n return [host].concat(merged);\n }\n return merged;\n }\n },\n {\n key: '_cleanup',\n value: function _cleanup() {\n // remove those identifers we put on the ShadowHost to avoid using Map()\n Object.keys(this.hosts).forEach(function (key) {\n delete this.hosts[key]._sortingId;\n }, this);\n }\n },\n ]);\n return Shadows;\n})();\nfunction sortShadowed(elements, context, sortElements) {\n var shadows = new Shadows(context, sortElements);\n var _elements = shadows.extractElements(elements);\n if (_elements.length === elements.length) {\n // no shadowed content found, no need to continue\n return sortElements(elements);\n }\n return shadows.sort(_elements);\n}\nfunction sortTabindex(elements) {\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.tabIndex\n // elements with tabIndex \"0\" (including tabbableElements without tabIndex) should be navigated in the order they appear.\n // elements with a positive tabIndex:\n // Elements that have identical tabIndexes should be navigated in the order they appear.\n // Navigation proceeds from the lowest tabIndex to the highest tabIndex.\n // NOTE: sort implementation may be unstable and thus mess up DOM order,\n // that's why we build a map that's being sorted instead. If we were able to rely\n // on a stable sorting algorithm, sortTabindex() could be as simple as\n // elements.sort(function(a, b) { return a.tabIndex - b.tabIndex; });\n // at this time Chrome does not use a stable sorting algorithm\n // see http://blog.rodneyrehm.de/archives/14-Sorting-Were-Doing-It-Wrong.html#stability\n // NOTE: compareDocumentPosition seemed like more overhead than just sorting this with buckets\n // https://developer.mozilla.org/en-US/docs/Web/API/Node.compareDocumentPosition\n var map = {};\n var indexes = [];\n var normal = elements.filter(function (element) {\n // in Trident and Gecko SVGElement does not know about the tabIndex property\n var tabIndex = element.tabIndex;\n if (tabIndex === undefined) {\n tabIndex = tabindexValue(element);\n }\n // extract elements that don't need sorting\n if (tabIndex <= 0 || tabIndex === null || tabIndex === undefined) {\n return true;\n }\n if (!map[tabIndex]) {\n // create sortable bucket for dom-order-preservation of elements with the same tabIndex\n map[tabIndex] = [];\n // maintain a list of unique tabIndexes\n indexes.push(tabIndex);\n }\n // sort element into the proper bucket\n map[tabIndex].push(element);\n // element moved to sorting map, so not \"normal\" anymore\n return false;\n });\n // sort the tabindex ascending,\n // then resolve them to their appropriate buckets,\n // then flatten the array of arrays to an array\n var _elements = indexes\n .sort()\n .map(function (tabIndex) {\n return map[tabIndex];\n })\n .reduceRight(function (previous, current) {\n return current.concat(previous);\n }, normal);\n return _elements;\n}\nvar supports$8 = void 0;\nfunction moveContextToBeginning(elements, context) {\n var pos = elements.indexOf(context);\n if (pos > 0) {\n var tmp = elements.splice(pos, 1);\n return tmp.concat(elements);\n }\n return elements;\n}\nfunction sortElements(elements, _context) {\n if (supports$8.tabsequenceAreaAtImgPosition) {\n // Some browsers sort <area> in DOM order, some place the <area>s\n // where the <img> referecing them would've been in DOM order.\n // https://github.com/medialize/ally.js/issues/5\n elements = sortArea(elements, _context);\n }\n elements = sortTabindex(elements);\n return elements;\n}\nfunction queryTabsequence() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, includeContext = _ref.includeContext, includeOnlyTabbable = _ref.includeOnlyTabbable, strategy = _ref.strategy;\n if (!supports$8) {\n supports$8 = _supports();\n }\n var _context = nodeArray(context)[0] || document.documentElement;\n var elements = queryTabbable({\n context: _context,\n includeContext: includeContext,\n includeOnlyTabbable: includeOnlyTabbable,\n strategy: strategy\n });\n if (document.body.createShadowRoot && platform.is.BLINK) {\n // sort tabindex localized to shadow dom\n // see https://github.com/medialize/ally.js/issues/6\n elements = sortShadowed(elements, _context, sortElements);\n }\n else {\n elements = sortElements(elements, _context);\n }\n if (includeContext) {\n // if we include the context itself, it has to be the first\n // element of the sequence\n elements = moveContextToBeginning(elements, _context);\n }\n return elements;\n}\n// codes mostly cloned from https://github.com/keithamus/jwerty/blob/master/jwerty.js\n// deliberately not exposing characters like <,.-#* because they vary *wildly*\n// across keyboard layouts and may cause various problems\n// (e.g. \"*\" is \"Shift +\" on a German Mac keyboard)\n// (e.g. \"@\" is \"Alt L\" on a German Mac keyboard)\nvar keycode = {\n // Element Focus\n tab: 9,\n // Navigation\n left: 37,\n up: 38,\n right: 39,\n down: 40,\n pageUp: 33,\n 'page-up': 33,\n pageDown: 34,\n 'page-down': 34,\n end: 35,\n home: 36,\n // Action\n enter: 13,\n escape: 27,\n space: 32,\n // Modifier\n shift: 16,\n capsLock: 20,\n 'caps-lock': 20,\n ctrl: 17,\n alt: 18,\n meta: 91,\n // in firefox: 224\n // on mac (chrome): meta-left=91, meta-right=93\n // on win (IE11): meta-left=91, meta-right=92\n pause: 19,\n // Content Manipulation\n insert: 45,\n \"delete\": 46,\n backspace: 8,\n // the same logical key may be identified through different keyCodes\n _alias: {\n 91: [92, 93, 224]\n }\n};\n// Function keys (112 - 137)\n// NOTE: not every keyboard knows F13+\nfor (var n = 1; n < 26; n++) {\n keycode['f' + n] = n + 111;\n}\n// Number keys (48-57, numpad 96-105)\n// NOTE: not every keyboard knows num-0+\nfor (var _n = 0; _n < 10; _n++) {\n var code = _n + 48;\n var numCode = _n + 96;\n keycode[_n] = code;\n keycode['num-' + _n] = numCode;\n keycode._alias[code] = [numCode];\n}\n// Latin characters (65 - 90)\nfor (var _n2 = 0; _n2 < 26; _n2++) {\n var _code = _n2 + 65;\n var name$1 = String.fromCharCode(_code).toLowerCase();\n keycode[name$1] = _code;\n}\nvar modifier = {\n alt: 'altKey',\n ctrl: 'ctrlKey',\n meta: 'metaKey',\n shift: 'shiftKey'\n};\nvar modifierSequence = Object.keys(modifier).map(function (name) {\n return modifier[name];\n});\nfunction createExpectedModifiers(ignoreModifiers) {\n var value = ignoreModifiers ? null : false;\n return {\n altKey: value,\n ctrlKey: value,\n metaKey: value,\n shiftKey: value\n };\n}\nfunction resolveModifiers(modifiers) {\n var ignoreModifiers = modifiers.indexOf('*') !== -1;\n var expected = createExpectedModifiers(ignoreModifiers);\n modifiers.forEach(function (token) {\n if (token === '*') {\n // we've already covered the all-in operator\n return;\n }\n // we want the modifier pressed\n var value = true;\n var operator = token.slice(0, 1);\n if (operator === '?') {\n // we don't care if the modifier is pressed\n value = null;\n }\n else if (operator === '!') {\n // we do not want the modifier pressed\n value = false;\n }\n if (value !== true) {\n // compensate for the modifier's operator\n token = token.slice(1);\n }\n var propertyName = modifier[token];\n if (!propertyName) {\n throw new TypeError('Unknown modifier \"' + token + '\"');\n }\n expected[propertyName] = value;\n });\n return expected;\n}\nfunction resolveKey(key) {\n var code = keycode[key] || parseInt(key, 10);\n if (!code || typeof code !== 'number' || isNaN(code)) {\n throw new TypeError('Unknown key \"' + key + '\"');\n }\n return [code].concat(keycode._alias[code] || []);\n}\nfunction matchModifiers(expected, event) {\n // returns true on match\n return !modifierSequence.some(function (prop) {\n // returns true on mismatch\n return (typeof expected[prop] === 'boolean' &&\n Boolean(event[prop]) !== expected[prop]);\n });\n}\nfunction keyBinding(text) {\n return text.split(/\\s+/).map(function (_text) {\n var tokens = _text.split('+');\n var _modifiers = resolveModifiers(tokens.slice(0, -1));\n var _keyCodes = resolveKey(tokens.slice(-1));\n return {\n keyCodes: _keyCodes,\n modifiers: _modifiers,\n matchModifiers: matchModifiers.bind(null, _modifiers)\n };\n });\n}\n// Node.compareDocumentPosition is available since IE9\n// see https://developer.mozilla.org/en-US/docs/Web/API/Node.compareDocumentPosition\n// callback returns true when element is contained by parent or is the parent suited for use with Array.some()\n/*\n USAGE:\n var isChildOf = getParentComparator({parent: someNode});\n listOfElements.some(isChildOf)\n*/\nfunction getParentComparator() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, parent = _ref.parent, element = _ref.element, includeSelf = _ref.includeSelf;\n if (parent) {\n return function isChildOf(node) {\n return Boolean((includeSelf && node === parent) ||\n parent.compareDocumentPosition(node) &\n Node.DOCUMENT_POSITION_CONTAINED_BY);\n };\n }\n else if (element) {\n return function isParentOf(node) {\n return Boolean((includeSelf && element === node) ||\n node.compareDocumentPosition(element) &\n Node.DOCUMENT_POSITION_CONTAINED_BY);\n };\n }\n throw new TypeError('util/compare-position#getParentComparator required either options.parent or options.element');\n}\n// Bug 286933 - Key events in the autocomplete popup should be hidden from page scripts\n// @browser-issue Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=286933\nfunction whenKey() {\n var map = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var bindings = {};\n var context = nodeArray(map.context)[0] || document.documentElement;\n delete map.context;\n var filter = nodeArray(map.filter);\n delete map.filter;\n var mapKeys = Object.keys(map);\n if (!mapKeys.length) {\n throw new TypeError('when/key requires at least one option key');\n }\n var registerBinding = function registerBinding(event) {\n event.keyCodes.forEach(function (code) {\n if (!bindings[code]) {\n bindings[code] = [];\n }\n bindings[code].push(event);\n });\n };\n mapKeys.forEach(function (text) {\n if (typeof map[text] !== 'function') {\n throw new TypeError('when/key requires option[\"' + text + '\"] to be a function');\n }\n var addCallback = function addCallback(event) {\n event.callback = map[text];\n return event;\n };\n keyBinding(text).map(addCallback).forEach(registerBinding);\n });\n var handleKeyDown = function handleKeyDown(event) {\n if (event.defaultPrevented) {\n return;\n }\n if (filter.length) {\n // ignore elements within the exempted sub-trees\n var isParentOfElement = getParentComparator({\n element: event.target,\n includeSelf: true\n });\n if (filter.some(isParentOfElement)) {\n return;\n }\n }\n var key = event.keyCode || event.which;\n if (!bindings[key]) {\n return;\n }\n bindings[key].forEach(function (_event) {\n if (!_event.matchModifiers(event)) {\n return;\n }\n _event.callback.call(context, event, disengage);\n });\n };\n context.addEventListener('keydown', handleKeyDown, false);\n var disengage = function disengage() {\n context.removeEventListener('keydown', handleKeyDown, false);\n };\n return { disengage: disengage };\n}\nfunction default_1(_a) {\n var _b = _a === void 0 ? {} : _a, context = _b.context;\n if (!context) {\n context = document.documentElement;\n }\n // Make sure the supports tests are run before intercepting the Tab key,\n // or IE10 and IE11 will fail to process the first Tab key event. Not\n // limiting this warm-up to IE because it may be a problem elsewhere, too.\n queryTabsequence();\n return whenKey({\n // Safari on OSX may require ALT+TAB to reach links,\n // see https://github.com/medialize/ally.js/issues/146\n '?alt+?shift+tab': function altShiftTab(event) {\n // we're completely taking over the Tab key handling\n event.preventDefault();\n var sequence = queryTabsequence({\n context: context\n });\n var backward = event.shiftKey;\n var first = sequence[0];\n var last = sequence[sequence.length - 1];\n // wrap around first to last, last to first\n var source = backward ? first : last;\n var target = backward ? last : first;\n if (isActiveElement(source)) {\n target.focus();\n return;\n }\n // find current position in tabsequence\n var currentIndex = void 0;\n var found = sequence.some(function (element, index) {\n if (!isActiveElement(element)) {\n return false;\n }\n currentIndex = index;\n return true;\n });\n if (!found) {\n // redirect to first as we're not in our tabsequence\n first.focus();\n return;\n }\n // shift focus to previous/next element in the sequence\n var offset = backward ? -1 : 1;\n sequence[currentIndex + offset].focus();\n }\n });\n}\nexports[\"default\"] = default_1;\n//# sourceMappingURL=maintain--tab-focus.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvT3ZlcmxheS9tYWludGFpbi0tdGFiLWZvY3VzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZDQUE2QztBQUM3QztBQUNBLGtCQUFrQjtBQUNsQixpQ0FBaUMsbUJBQU8sQ0FBQyxxREFBVTtBQUNuRCxtQ0FBbUMsbUJBQU8sQ0FBQywyREFBWTtBQUN2RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFGQUFxRjtBQUNyRjtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFDQUFxQyxrQkFBa0I7QUFDdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFGQUFxRjtBQUNyRjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscURBQXFELGdCQUFnQixPQUFPLFdBQVcsV0FBVyxZQUFZLGdCQUFnQjtBQUM5SDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSyxRQUFRO0FBQ2IsS0FBSyxVQUFVO0FBQ2Y7QUFDQSxLQUFLLFVBQVU7QUFDZjtBQUNBO0FBQ0EsS0FBSyxVQUFVO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEI7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhEQUE4RCxzQkFBc0IsY0FBYztBQUNsRyx5REFBeUQ7QUFDekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOERBQThELHNCQUFzQixjQUFjO0FBQ2xHLHlEQUF5RDtBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4QkFBOEI7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxREFBcUQsY0FBYyxlQUFlO0FBQ2xGO0FBQ0EsdUNBQXVDLGFBQWE7QUFDcEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxREFBcUQsYUFBYTtBQUNsRTtBQUNBLHVDQUF1QyxhQUFhO0FBQ3BEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFEQUFxRCxjQUFjLGVBQWU7QUFDbEY7QUFDQSx1Q0FBdUMsYUFBYTtBQUNwRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxRkFBcUY7QUFDckY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5Q0FBeUMsa0JBQWtCO0FBQzNEO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvREFBb0Q7QUFDcEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixZQUFZO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxxRkFBcUY7QUFDckY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCLGtCQUFrQjtBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3Q0FBd0M7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBDQUEwQyxjQUFjO0FBQ3hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQkFBK0Isa0JBQWtCO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxRkFBcUY7QUFDckY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrREFBa0Q7QUFDbEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxRkFBcUY7QUFDckY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNENBQTRDO0FBQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpREFBaUQ7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUZBQXFGO0FBQ3JGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxRkFBcUY7QUFDckY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUZBQXFGO0FBQ3JGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxRkFBcUY7QUFDckY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCx3REFBd0QsZUFBZTtBQUN2RTtBQUNBLDBDQUEwQztBQUMxQztBQUNBLHFGQUFxRjtBQUNyRjtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxxRkFBcUY7QUFDckY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixrQkFBa0I7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzREFBc0QsY0FBYztBQUNwRTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSx3QkFBd0Isa0JBQWtCO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaURBQWlELGVBQWU7QUFDaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0Msa0JBQWtCO0FBQ2pFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0NBQXNDLGlDQUFpQztBQUN2RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxRkFBcUY7QUFDckY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixRQUFRO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLFNBQVM7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IsVUFBVTtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUNBQXlDLGlCQUFpQjtBQUMxRDtBQUNBO0FBQ0E7QUFDQSxxRkFBcUY7QUFDckY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0EsZ0NBQWdDO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0Esa0JBQWtCO0FBQ2xCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AbmV4dC9yZWFjdC1kZXYtb3ZlcmxheS9saWIvaW50ZXJuYWwvY29tcG9uZW50cy9PdmVybGF5L21haW50YWluLS10YWItZm9jdXMuanM/NDA5ZSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbi8qIGVzbGludC1kaXNhYmxlICovXG4vLyBAdHMtbm9jaGVja1xuLy8gQ29waWVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL21lZGlhbGl6ZS9hbGx5LmpzXG4vLyBMaWNlbnNlOiBNSVRcbi8vIENvcHlyaWdodCAoYykgMjAxNSBSb2RuZXkgUmVobVxuLy9cbi8vIEVudHJ5cG9pbnQ6IGFsbHkuanMvbWFpbnRhaW4vdGFiLWZvY3VzXG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xudmFyIHBsYXRmb3JtXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcInBsYXRmb3JtXCIpKTtcbnZhciBjc3NfZXNjYXBlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcImNzcy5lc2NhcGVcIikpO1xuLy8gaW5wdXQgbWF5IGJlIHVuZGVmaW5lZCwgc2VsZWN0b3ItdHJpbmcsIE5vZGUsIE5vZGVMaXN0LCBIVE1MQ29sbGVjdGlvbiwgYXJyYXkgb2YgTm9kZXNcbi8vIHllcywgdG8gc29tZSBleHRlbnQgdGhpcyBpcyBhIGJhZCByZXBsaWNhIG9mIGpRdWVyeSdzIGNvbnN0cnVjdG9yIGZ1bmN0aW9uXG5mdW5jdGlvbiBub2RlQXJyYXkoaW5wdXQpIHtcbiAgICBpZiAoIWlucHV0KSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaW5wdXQpKSB7XG4gICAgICAgIHJldHVybiBpbnB1dDtcbiAgICB9XG4gICAgLy8gaW5zdGFuY2VvZiBOb2RlIC0gZG9lcyBub3Qgd29yayB3aXRoIGlmcmFtZXNcbiAgICBpZiAoaW5wdXQubm9kZVR5cGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gW2lucHV0XTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgaW5wdXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGlucHV0KTtcbiAgICB9XG4gICAgaWYgKGlucHV0Lmxlbmd0aCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBbXS5zbGljZS5jYWxsKGlucHV0LCAwKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcigndW5leHBlY3RlZCBpbnB1dCAnICsgU3RyaW5nKGlucHV0KSk7XG59XG5mdW5jdGlvbiBjb250ZXh0VG9FbGVtZW50KF9yZWYpIHtcbiAgICB2YXIgY29udGV4dCA9IF9yZWYuY29udGV4dCwgX3JlZiRsYWJlbCA9IF9yZWYubGFiZWwsIGxhYmVsID0gX3JlZiRsYWJlbCA9PT0gdW5kZWZpbmVkID8gJ2NvbnRleHQtdG8tZWxlbWVudCcgOiBfcmVmJGxhYmVsLCByZXNvbHZlRG9jdW1lbnQgPSBfcmVmLnJlc29sdmVEb2N1bWVudCwgZGVmYXVsdFRvRG9jdW1lbnQgPSBfcmVmLmRlZmF1bHRUb0RvY3VtZW50O1xuICAgIHZhciBlbGVtZW50ID0gbm9kZUFycmF5KGNvbnRleHQpWzBdO1xuICAgIGlmIChyZXNvbHZlRG9jdW1lbnQgJiYgZWxlbWVudCAmJiBlbGVtZW50Lm5vZGVUeXBlID09PSBOb2RlLkRPQ1VNRU5UX05PREUpIHtcbiAgICAgICAgZWxlbWVudCA9IGVsZW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuICAgIH1cbiAgICBpZiAoIWVsZW1lbnQgJiYgZGVmYXVsdFRvRG9jdW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiAgICB9XG4gICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IobGFiZWwgKyAnIHJlcXVpcmVzIHZhbGlkIG9wdGlvbnMuY29udGV4dCcpO1xuICAgIH1cbiAgICBpZiAoZWxlbWVudC5ub2RlVHlwZSAhPT0gTm9kZS5FTEVNRU5UX05PREUgJiZcbiAgICAgICAgZWxlbWVudC5ub2RlVHlwZSAhPT0gTm9kZS5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IobGFiZWwgKyAnIHJlcXVpcmVzIG9wdGlvbnMuY29udGV4dCB0byBiZSBhbiBFbGVtZW50Jyk7XG4gICAgfVxuICAgIHJldHVybiBlbGVtZW50O1xufVxuZnVuY3Rpb24gZ2V0U2hhZG93SG9zdCgpIHtcbiAgICB2YXIgX3JlZiA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge30sIGNvbnRleHQgPSBfcmVmLmNvbnRleHQ7XG4gICAgdmFyIGVsZW1lbnQgPSBjb250ZXh0VG9FbGVtZW50KHtcbiAgICAgICAgbGFiZWw6ICdnZXQvc2hhZG93LWhvc3QnLFxuICAgICAgICBjb250ZXh0OiBjb250ZXh0XG4gICAgfSk7XG4gICAgLy8gd2FsayB1cCB0byB0aGUgcm9vdFxuICAgIHZhciBjb250YWluZXIgPSBudWxsO1xuICAgIHdoaWxlIChlbGVtZW50KSB7XG4gICAgICAgIGNvbnRhaW5lciA9IGVsZW1lbnQ7XG4gICAgICAgIGVsZW1lbnQgPSBlbGVtZW50LnBhcmVudE5vZGU7XG4gICAgfVxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9Ob2RlLm5vZGVUeXBlXG4gICAgLy8gTk9URTogRmlyZWZveCAzNCBkb2VzIG5vdCBleHBvc2UgU2hhZG93Um9vdC5ob3N0IChidXQgMzcgZG9lcylcbiAgICBpZiAoY29udGFpbmVyLm5vZGVUeXBlID09PSBjb250YWluZXIuRE9DVU1FTlRfRlJBR01FTlRfTk9ERSAmJlxuICAgICAgICBjb250YWluZXIuaG9zdCkge1xuICAgICAgICAvLyB0aGUgcm9vdCBpcyBhdHRhY2hlZCB0byBhIGZyYWdtZW50IG5vZGUgdGhhdCBoYXMgYSBob3N0XG4gICAgICAgIHJldHVybiBjb250YWluZXIuaG9zdDtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59XG5mdW5jdGlvbiBnZXREb2N1bWVudChub2RlKSB7XG4gICAgaWYgKCFub2RlKSB7XG4gICAgICAgIHJldHVybiBkb2N1bWVudDtcbiAgICB9XG4gICAgaWYgKG5vZGUubm9kZVR5cGUgPT09IE5vZGUuRE9DVU1FTlRfTk9ERSkge1xuICAgICAgICByZXR1cm4gbm9kZTtcbiAgICB9XG4gICAgcmV0dXJuIG5vZGUub3duZXJEb2N1bWVudCB8fCBkb2N1bWVudDtcbn1cbmZ1bmN0aW9uIGlzQWN0aXZlRWxlbWVudChjb250ZXh0KSB7XG4gICAgdmFyIGVsZW1lbnQgPSBjb250ZXh0VG9FbGVtZW50KHtcbiAgICAgICAgbGFiZWw6ICdpcy9hY3RpdmUtZWxlbWVudCcsXG4gICAgICAgIHJlc29sdmVEb2N1bWVudDogdHJ1ZSxcbiAgICAgICAgY29udGV4dDogY29udGV4dFxuICAgIH0pO1xuICAgIHZhciBfZG9jdW1lbnQgPSBnZXREb2N1bWVudChlbGVtZW50KTtcbiAgICBpZiAoX2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHZhciBzaGFkb3dIb3N0ID0gZ2V0U2hhZG93SG9zdCh7IGNvbnRleHQ6IGVsZW1lbnQgfSk7XG4gICAgaWYgKHNoYWRvd0hvc3QgJiYgc2hhZG93SG9zdC5zaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQgPT09IGVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cbi8vIFtlbGVtLCBlbGVtLnBhcmVudCwgZWxlbS5wYXJlbnQucGFyZW50LCDigKYsIGh0bWxdXG4vLyB3aWxsIG5vdCBjb250YWluIHRoZSBzaGFkb3dSb290IChET0NVTUVOVF9GUkFHTUVOVF9OT0RFKSBhbmQgc2hhZG93SG9zdFxuZnVuY3Rpb24gZ2V0UGFyZW50cygpIHtcbiAgICB2YXIgX3JlZiA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge30sIGNvbnRleHQgPSBfcmVmLmNvbnRleHQ7XG4gICAgdmFyIGxpc3QgPSBbXTtcbiAgICB2YXIgZWxlbWVudCA9IGNvbnRleHRUb0VsZW1lbnQoe1xuICAgICAgICBsYWJlbDogJ2dldC9wYXJlbnRzJyxcbiAgICAgICAgY29udGV4dDogY29udGV4dFxuICAgIH0pO1xuICAgIHdoaWxlIChlbGVtZW50KSB7XG4gICAgICAgIGxpc3QucHVzaChlbGVtZW50KTtcbiAgICAgICAgLy8gSUUgZG9lcyBrbm93IHN1cHBvcnQgcGFyZW50RWxlbWVudCBvbiBTVkdFbGVtZW50XG4gICAgICAgIGVsZW1lbnQgPSBlbGVtZW50LnBhcmVudE5vZGU7XG4gICAgICAgIGlmIChlbGVtZW50ICYmIGVsZW1lbnQubm9kZVR5cGUgIT09IE5vZGUuRUxFTUVOVF9OT0RFKSB7XG4gICAgICAgICAgICBlbGVtZW50ID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbGlzdDtcbn1cbi8vIEVsZW1lbnQucHJvdG90eXBlLm1hdGNoZXMgbWF5IGJlIGF2YWlsYWJsZSBhdCBhIGRpZmZlcmVudCBuYW1lXG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi9kb2NzL1dlYi9BUEkvRWxlbWVudC9tYXRjaGVzXG52YXIgbmFtZXMgPSBbXG4gICAgJ21hdGNoZXMnLFxuICAgICd3ZWJraXRNYXRjaGVzU2VsZWN0b3InLFxuICAgICdtb3pNYXRjaGVzU2VsZWN0b3InLFxuICAgICdtc01hdGNoZXNTZWxlY3RvcicsXG5dO1xudmFyIG5hbWUgPSBudWxsO1xuZnVuY3Rpb24gZmluZE1ldGhvZE5hbWUoZWxlbWVudCkge1xuICAgIG5hbWVzLnNvbWUoZnVuY3Rpb24gKF9uYW1lKSB7XG4gICAgICAgIGlmICghZWxlbWVudFtfbmFtZV0pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBuYW1lID0gX25hbWU7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH0pO1xufVxuZnVuY3Rpb24gZWxlbWVudE1hdGNoZXMoZWxlbWVudCwgc2VsZWN0b3IpIHtcbiAgICBpZiAoIW5hbWUpIHtcbiAgICAgICAgZmluZE1ldGhvZE5hbWUoZWxlbWVudCk7XG4gICAgfVxuICAgIHJldHVybiBlbGVtZW50W25hbWVdKHNlbGVjdG9yKTtcbn1cbi8vIGRlZXAgY2xvbmUgb2Ygb3JpZ2luYWwgcGxhdGZvcm1cbnZhciBwbGF0Zm9ybSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkocGxhdGZvcm1fMVtcImRlZmF1bHRcIl0pKTtcbi8vIG9wZXJhdGluZyBzeXN0ZW1cbnZhciBvcyA9IHBsYXRmb3JtLm9zLmZhbWlseSB8fCAnJztcbnZhciBBTkRST0lEID0gb3MgPT09ICdBbmRyb2lkJztcbnZhciBXSU5ET1dTID0gb3Muc2xpY2UoMCwgNykgPT09ICdXaW5kb3dzJztcbnZhciBPU1ggPSBvcyA9PT0gJ09TIFgnO1xudmFyIElPUyA9IG9zID09PSAnaU9TJztcbi8vIGxheW91dFxudmFyIEJMSU5LID0gcGxhdGZvcm0ubGF5b3V0ID09PSAnQmxpbmsnO1xudmFyIEdFQ0tPID0gcGxhdGZvcm0ubGF5b3V0ID09PSAnR2Vja28nO1xudmFyIFRSSURFTlQgPSBwbGF0Zm9ybS5sYXlvdXQgPT09ICdUcmlkZW50JztcbnZhciBFREdFID0gcGxhdGZvcm0ubGF5b3V0ID09PSAnRWRnZUhUTUwnO1xudmFyIFdFQktJVCA9IHBsYXRmb3JtLmxheW91dCA9PT0gJ1dlYktpdCc7XG4vLyBicm93c2VyIHZlcnNpb24gKG5vdCBsYXlvdXQgZW5naW5lIHZlcnNpb24hKVxudmFyIHZlcnNpb24gPSBwYXJzZUZsb2F0KHBsYXRmb3JtLnZlcnNpb24pO1xudmFyIG1ham9yVmVyc2lvbiA9IE1hdGguZmxvb3IodmVyc2lvbik7XG5wbGF0Zm9ybS5tYWpvclZlcnNpb24gPSBtYWpvclZlcnNpb247XG5wbGF0Zm9ybS5pcyA9IHtcbiAgICAvLyBvcGVyYXRpbmcgc3lzdGVtXG4gICAgQU5EUk9JRDogQU5EUk9JRCxcbiAgICBXSU5ET1dTOiBXSU5ET1dTLFxuICAgIE9TWDogT1NYLFxuICAgIElPUzogSU9TLFxuICAgIC8vIGxheW91dFxuICAgIEJMSU5LOiBCTElOSyxcbiAgICBHRUNLTzogR0VDS08sXG4gICAgVFJJREVOVDogVFJJREVOVCxcbiAgICBFREdFOiBFREdFLFxuICAgIFdFQktJVDogV0VCS0lULFxuICAgIC8vIElOVEVSTkVUIEVYUExPUkVSU1xuICAgIElFOTogVFJJREVOVCAmJiBtYWpvclZlcnNpb24gPT09IDksXG4gICAgSUUxMDogVFJJREVOVCAmJiBtYWpvclZlcnNpb24gPT09IDEwLFxuICAgIElFMTE6IFRSSURFTlQgJiYgbWFqb3JWZXJzaW9uID09PSAxMVxufTtcbmZ1bmN0aW9uIGJlZm9yZSgpIHtcbiAgICB2YXIgZGF0YSA9IHtcbiAgICAgICAgLy8gcmVtZW1iZXIgd2hhdCBoYWQgZm9jdXMgdG8gcmVzdG9yZSBhZnRlciB0ZXN0XG4gICAgICAgIGFjdGl2ZUVsZW1lbnQ6IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQsXG4gICAgICAgIC8vIHJlbWVtYmVyIHNjcm9sbCBwb3NpdGlvbnMgdG8gcmVzdG9yZSBhZnRlciB0ZXN0XG4gICAgICAgIHdpbmRvd1Njcm9sbFRvcDogd2luZG93LnNjcm9sbFRvcCxcbiAgICAgICAgd2luZG93U2Nyb2xsTGVmdDogd2luZG93LnNjcm9sbExlZnQsXG4gICAgICAgIGJvZHlTY3JvbGxUb3A6IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wLFxuICAgICAgICBib2R5U2Nyb2xsTGVmdDogZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0XG4gICAgfTtcbiAgICAvLyB3cmFwIHRlc3RzIGluIGFuIGVsZW1lbnQgaGlkZGVuIGZyb20gc2NyZWVuIHJlYWRlcnMgdG8gcHJldmVudCB0aGVtXG4gICAgLy8gZnJvbSBhbm5vdW5jaW5nIGZvY3VzLCB3aGljaCBjYW4gYmUgcXVpdGUgaXJyaXRhdGluZyB0byB0aGUgdXNlclxuICAgIHZhciBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTtcbiAgICBpZnJhbWUuc2V0QXR0cmlidXRlKCdzdHlsZScsICdwb3NpdGlvbjphYnNvbHV0ZTsgcG9zaXRpb246Zml4ZWQ7IHRvcDowOyBsZWZ0Oi0ycHg7IHdpZHRoOjFweDsgaGVpZ2h0OjFweDsgb3ZlcmZsb3c6aGlkZGVuOycpO1xuICAgIGlmcmFtZS5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGl2ZScsICdvZmYnKTtcbiAgICBpZnJhbWUuc2V0QXR0cmlidXRlKCdhcmlhLWJ1c3knLCAndHJ1ZScpO1xuICAgIGlmcmFtZS5zZXRBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJywgJ3RydWUnKTtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7XG4gICAgdmFyIF93aW5kb3cgPSBpZnJhbWUuY29udGVudFdpbmRvdztcbiAgICB2YXIgX2RvY3VtZW50ID0gX3dpbmRvdy5kb2N1bWVudDtcbiAgICBfZG9jdW1lbnQub3BlbigpO1xuICAgIF9kb2N1bWVudC5jbG9zZSgpO1xuICAgIHZhciB3cmFwcGVyID0gX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIF9kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHdyYXBwZXIpO1xuICAgIGRhdGEuaWZyYW1lID0gaWZyYW1lO1xuICAgIGRhdGEud3JhcHBlciA9IHdyYXBwZXI7XG4gICAgZGF0YS53aW5kb3cgPSBfd2luZG93O1xuICAgIGRhdGEuZG9jdW1lbnQgPSBfZG9jdW1lbnQ7XG4gICAgcmV0dXJuIGRhdGE7XG59XG4vLyBvcHRpb25zLmVsZW1lbnQ6XG4vLyAge3N0cmluZ30gZWxlbWVudCBuYW1lXG4vLyAge2Z1bmN0aW9ufSBjYWxsYmFjayh3cmFwcGVyLCBkb2N1bWVudCkgdG8gZ2VuZXJhdGUgYW4gZWxlbWVudFxuLy8gb3B0aW9ucy5tdXRhdGU6IChvcHRpb25hbClcbi8vICB7ZnVuY3Rpb259IGNhbGxiYWNrKGVsZW1lbnQsIHdyYXBwZXIsIGRvY3VtZW50KSB0byBtYW5pcHVsYXRlIGVsZW1lbnQgcHJpb3IgdG8gZm9jdXMtdGVzdC5cbi8vICAgICAgICAgICAgIENhbiByZXR1cm4gRE9NRWxlbWVudCB0byBkZWZpbmUgZm9jdXMgdGFyZ2V0IChkZWZhdWx0OiBlbGVtZW50KVxuLy8gb3B0aW9ucy52YWxpZGF0ZTogKG9wdGlvbmFsKVxuLy8gIHtmdW5jdGlvbn0gY2FsbGJhY2soZWxlbWVudCwgZm9jdXNUYXJnZXQsIGRvY3VtZW50KSB0byBtYW5pcHVsYXRlIHRlc3QtcmVzdWx0XG5mdW5jdGlvbiB0ZXN0KGRhdGEsIG9wdGlvbnMpIHtcbiAgICAvLyBtYWtlIHN1cmUgd2Ugb3BlcmF0ZSBvbiBhIGNsZWFuIHNsYXRlXG4gICAgZGF0YS53cmFwcGVyLmlubmVySFRNTCA9ICcnO1xuICAgIC8vIGNyZWF0ZSBkdW1teSBlbGVtZW50IHRvIHRlc3QgZm9jdXNhYmlsaXR5IG9mXG4gICAgdmFyIGVsZW1lbnQgPSB0eXBlb2Ygb3B0aW9ucy5lbGVtZW50ID09PSAnc3RyaW5nJ1xuICAgICAgICA/IGRhdGEuZG9jdW1lbnQuY3JlYXRlRWxlbWVudChvcHRpb25zLmVsZW1lbnQpXG4gICAgICAgIDogb3B0aW9ucy5lbGVtZW50KGRhdGEud3JhcHBlciwgZGF0YS5kb2N1bWVudCk7XG4gICAgLy8gYWxsb3cgY2FsbGJhY2sgdG8gZnVydGhlciBzcGVjaWZ5IGR1bW15IGVsZW1lbnRcbiAgICAvLyBhbmQgb3B0aW9uYWxseSBkZWZpbmUgZWxlbWVudCB0byBmb2N1c1xuICAgIHZhciBmb2N1cyA9IG9wdGlvbnMubXV0YXRlICYmIG9wdGlvbnMubXV0YXRlKGVsZW1lbnQsIGRhdGEud3JhcHBlciwgZGF0YS5kb2N1bWVudCk7XG4gICAgaWYgKCFmb2N1cyAmJiBmb2N1cyAhPT0gZmFsc2UpIHtcbiAgICAgICAgZm9jdXMgPSBlbGVtZW50O1xuICAgIH1cbiAgICAvLyBlbGVtZW50IG5lZWRzIHRvIGJlIHBhcnQgb2YgdGhlIERPTSB0byBiZSBmb2N1c2FibGVcbiAgICAhZWxlbWVudC5wYXJlbnROb2RlICYmIGRhdGEud3JhcHBlci5hcHBlbmRDaGlsZChlbGVtZW50KTtcbiAgICAvLyB0ZXN0IGlmIHRoZSBlbGVtZW50IHdpdGggaW52YWxpZCB0YWJpbmRleCBjYW4gYmUgZm9jdXNlZFxuICAgIGZvY3VzICYmIGZvY3VzLmZvY3VzICYmIGZvY3VzLmZvY3VzKCk7XG4gICAgLy8gdmFsaWRhdGUgdGVzdCdzIHJlc3VsdFxuICAgIHJldHVybiBvcHRpb25zLnZhbGlkYXRlXG4gICAgICAgID8gb3B0aW9ucy52YWxpZGF0ZShlbGVtZW50LCBmb2N1cywgZGF0YS5kb2N1bWVudClcbiAgICAgICAgOiBkYXRhLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGZvY3VzO1xufVxuZnVuY3Rpb24gYWZ0ZXIoZGF0YSkge1xuICAgIC8vIHJlc3RvcmUgZm9jdXMgdG8gd2hhdCBpdCB3YXMgYmVmb3JlIHRlc3QgYW5kIGNsZWFudXBcbiAgICBpZiAoZGF0YS5hY3RpdmVFbGVtZW50ID09PSBkb2N1bWVudC5ib2R5KSB7XG4gICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgJiZcbiAgICAgICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuYmx1ciAmJlxuICAgICAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5ibHVyKCk7XG4gICAgICAgIGlmIChwbGF0Zm9ybS5pcy5JRTEwKSB7XG4gICAgICAgICAgICAvLyBJRTEwIGRvZXMgbm90IHJlZGlyZWN0IGZvY3VzIHRvIDxib2R5PiB3aGVuIHRoZSBhY3RpdmVFbGVtZW50IGlzIHJlbW92ZWRcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgZGF0YS5hY3RpdmVFbGVtZW50ICYmIGRhdGEuYWN0aXZlRWxlbWVudC5mb2N1cyAmJiBkYXRhLmFjdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkYXRhLmlmcmFtZSk7XG4gICAgLy8gcmVzdG9yZSBzY3JvbGwgcG9zaXRpb25cbiAgICB3aW5kb3cuc2Nyb2xsVG9wID0gZGF0YS53aW5kb3dTY3JvbGxUb3A7XG4gICAgd2luZG93LnNjcm9sbExlZnQgPSBkYXRhLndpbmRvd1Njcm9sbExlZnQ7XG4gICAgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgPSBkYXRhLmJvZHlTY3JvbGxUb3A7XG4gICAgZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0ID0gZGF0YS5ib2R5U2Nyb2xsTGVmdDtcbn1cbmZ1bmN0aW9uIGRldGVjdEZvY3VzKHRlc3RzKSB7XG4gICAgdmFyIGRhdGEgPSBiZWZvcmUoKTtcbiAgICB2YXIgcmVzdWx0cyA9IHt9O1xuICAgIE9iamVjdC5rZXlzKHRlc3RzKS5tYXAoZnVuY3Rpb24gKGtleSkge1xuICAgICAgICByZXN1bHRzW2tleV0gPSB0ZXN0KGRhdGEsIHRlc3RzW2tleV0pO1xuICAgIH0pO1xuICAgIGFmdGVyKGRhdGEpO1xuICAgIHJldHVybiByZXN1bHRzO1xufVxuLy8gdGhpcyBmaWxlIGlzIG92ZXJ3cml0dGVuIGJ5IGBucG0gcnVuIGJ1aWxkOnByZWBcbnZhciB2ZXJzaW9uJDEgPSAnMS40LjEnO1xuLypcbiAgICBGYWNpbGl0eSB0byBjYWNoZSB0ZXN0IHJlc3VsdHMgaW4gbG9jYWxTdG9yYWdlLlxuXG4gICAgVVNBR0U6XG4gICAgICBjYWNoZS5nZXQoJ2tleScpO1xuICAgICAgY2FjaGUuc2V0KCdrZXknLCAndmFsdWUnKTtcbiAqL1xuZnVuY3Rpb24gcmVhZExvY2FsU3RvcmFnZShrZXkpIHtcbiAgICAvLyBhbGxvdyByZWFkaW5nIGZyb20gc3RvcmFnZSB0byByZXRyaWV2ZSBwcmV2aW91cyBzdXBwb3J0IHJlc3VsdHNcbiAgICAvLyBldmVuIHdoaWxlIHRoZSBkb2N1bWVudCBkb2VzIG5vdCBoYXZlIGZvY3VzXG4gICAgdmFyIGRhdGEgPSB2b2lkIDA7XG4gICAgdHJ5IHtcbiAgICAgICAgZGF0YSA9IHdpbmRvdy5sb2NhbFN0b3JhZ2UgJiYgd2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSk7XG4gICAgICAgIGRhdGEgPSBkYXRhID8gSlNPTi5wYXJzZShkYXRhKSA6IHt9O1xuICAgIH1cbiAgICBjYXRjaCAoZSkge1xuICAgICAgICBkYXRhID0ge307XG4gICAgfVxuICAgIHJldHVybiBkYXRhO1xufVxuZnVuY3Rpb24gd3JpdGVMb2NhbFN0b3JhZ2Uoa2V5LCB2YWx1ZSkge1xuICAgIGlmICghZG9jdW1lbnQuaGFzRm9jdXMoKSkge1xuICAgICAgICAvLyBpZiB0aGUgZG9jdW1lbnQgZG9lcyBub3QgaGF2ZSBmb2N1cyB3aGVuIHRlc3RzIGFyZSBleGVjdXRlZCwgZm9jdXMoKSBtYXlcbiAgICAgICAgLy8gbm90IGJlIGhhbmRsZWQgcHJvcGVybHkgYW5kIGV2ZW50cyBtYXkgbm90IGJlIGRpc3BhdGNoZWQgaW1tZWRpYXRlbHkuXG4gICAgICAgIC8vIFRoaXMgY2FuIGhhcHBlbiB3aGVuIGEgZG9jdW1lbnQgaXMgcmVsb2FkZWQgd2hpbGUgRGV2ZWxvcGVyIFRvb2xzIGhhdmUgZm9jdXMuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB3aW5kb3cubG9jYWxTdG9yYWdlICYmIHdpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAvLyBpZ25vcmVcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2UgJiZcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShrZXksIEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7XG4gICAgfVxuICAgIGNhdGNoIChlKSB7XG4gICAgICAgIC8vIGlnbm9yZVxuICAgIH1cbn1cbnZhciB1c2VyQWdlbnQgPSAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQpIHx8ICcnO1xudmFyIGNhY2hlS2V5ID0gJ2FsbHktc3VwcG9ydHMtY2FjaGUnO1xudmFyIGNhY2hlID0gcmVhZExvY2FsU3RvcmFnZShjYWNoZUtleSk7XG4vLyB1cGRhdGUgdGhlIGNhY2hlIGlmIGFsbHkgb3IgdGhlIHVzZXIgYWdlbnQgY2hhbmdlZCAobmV3ZXIgdmVyc2lvbiwgZXRjKVxuaWYgKGNhY2hlLnVzZXJBZ2VudCAhPT0gdXNlckFnZW50IHx8IGNhY2hlLnZlcnNpb24gIT09IHZlcnNpb24kMSkge1xuICAgIGNhY2hlID0ge307XG59XG5jYWNoZS51c2VyQWdlbnQgPSB1c2VyQWdlbnQ7XG5jYWNoZS52ZXJzaW9uID0gdmVyc2lvbiQxO1xudmFyIGNhY2hlJDEgPSB7XG4gICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgICAgIHJldHVybiBjYWNoZTtcbiAgICB9LFxuICAgIHNldDogZnVuY3Rpb24gc2V0KHZhbHVlcykge1xuICAgICAgICBPYmplY3Qua2V5cyh2YWx1ZXMpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgICAgICAgY2FjaGVba2V5XSA9IHZhbHVlc1trZXldO1xuICAgICAgICB9KTtcbiAgICAgICAgY2FjaGUudGltZSA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKTtcbiAgICAgICAgd3JpdGVMb2NhbFN0b3JhZ2UoY2FjaGVLZXksIGNhY2hlKTtcbiAgICB9XG59O1xuZnVuY3Rpb24gY3NzU2hhZG93UGllcmNpbmdEZWVwQ29tYmluYXRvcigpIHtcbiAgICB2YXIgY29tYmluYXRvciA9IHZvaWQgMDtcbiAgICAvLyBzZWUgaHR0cHM6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzcy1zY29waW5nLTEvI2RlZXAtY29tYmluYXRvclxuICAgIC8vIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTExMTc1NzJcbiAgICAvLyBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9NDQ2MDUxXG4gICAgdHJ5IHtcbiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaHRtbCA+Pj4gOmZpcnN0LWNoaWxkJyk7XG4gICAgICAgIGNvbWJpbmF0b3IgPSAnPj4+JztcbiAgICB9XG4gICAgY2F0Y2ggKG5vQXJyb3dBcnJvd0Fycm93KSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBvbGQgc3ludGF4IHN1cHBvcnRlZCBhdCBsZWFzdCB1cCB0byBDaHJvbWUgNDFcbiAgICAgICAgICAgIC8vIGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD00NDYwNTFcbiAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2h0bWwgL2RlZXAvIDpmaXJzdC1jaGlsZCcpO1xuICAgICAgICAgICAgY29tYmluYXRvciA9ICcvZGVlcC8nO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChub0RlZXApIHtcbiAgICAgICAgICAgIGNvbWJpbmF0b3IgPSAnJztcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY29tYmluYXRvcjtcbn1cbnZhciBnaWYgPSAnZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoQVFBQkFJQUFBQUFBQVAvLy95SDVCQUVBQUFBQUxBQUFBQUFCQUFFQUFBSUJSQUE3Jztcbi8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0hUTUwvRWxlbWVudC9pbWcjYXR0ci11c2VtYXBcbnZhciBmb2N1c0FyZWFJbWdUYWJpbmRleCA9IHtcbiAgICBlbGVtZW50OiAnZGl2JyxcbiAgICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID1cbiAgICAgICAgICAgICc8bWFwIG5hbWU9XCJpbWFnZS1tYXAtdGFiaW5kZXgtdGVzdFwiPicgK1xuICAgICAgICAgICAgICAgICc8YXJlYSBzaGFwZT1cInJlY3RcIiBjb29yZHM9XCI2MywxOSwxNDQsNDVcIj48L21hcD4nICtcbiAgICAgICAgICAgICAgICAnPGltZyB1c2VtYXA9XCIjaW1hZ2UtbWFwLXRhYmluZGV4LXRlc3RcIiB0YWJpbmRleD1cIi0xXCIgYWx0PVwiXCIgc3JjPVwiJyArXG4gICAgICAgICAgICAgICAgZ2lmICtcbiAgICAgICAgICAgICAgICAnXCI+JztcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQucXVlcnlTZWxlY3RvcignYXJlYScpO1xuICAgIH1cbn07XG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVE1ML0VsZW1lbnQvaW1nI2F0dHItdXNlbWFwXG52YXIgZm9jdXNBcmVhVGFiaW5kZXggPSB7XG4gICAgZWxlbWVudDogJ2RpdicsXG4gICAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9XG4gICAgICAgICAgICAnPG1hcCBuYW1lPVwiaW1hZ2UtbWFwLXRhYmluZGV4LXRlc3RcIj4nICtcbiAgICAgICAgICAgICAgICAnPGFyZWEgaHJlZj1cIiN2b2lkXCIgdGFiaW5kZXg9XCItMVwiIHNoYXBlPVwicmVjdFwiIGNvb3Jkcz1cIjYzLDE5LDE0NCw0NVwiPjwvbWFwPicgK1xuICAgICAgICAgICAgICAgICc8aW1nIHVzZW1hcD1cIiNpbWFnZS1tYXAtdGFiaW5kZXgtdGVzdFwiIGFsdD1cIlwiIHNyYz1cIicgK1xuICAgICAgICAgICAgICAgIGdpZiArXG4gICAgICAgICAgICAgICAgJ1wiPic7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9LFxuICAgIHZhbGlkYXRlOiBmdW5jdGlvbiB2YWxpZGF0ZShlbGVtZW50LCBmb2N1c1RhcmdldCwgX2RvY3VtZW50KSB7XG4gICAgICAgIGlmIChwbGF0Zm9ybS5pcy5HRUNLTykge1xuICAgICAgICAgICAgLy8gZml4ZXMgaHR0cHM6Ly9naXRodWIuY29tL21lZGlhbGl6ZS9hbGx5LmpzL2lzc3Vlcy8zNVxuICAgICAgICAgICAgLy8gRmlyZWZveCBsb2FkcyB0aGUgRGF0YVVSSSBhc3luY2hyb25vdXNseSwgY2F1c2luZyBhIGZhbHNlLW5lZ2F0aXZlXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZm9jdXMgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2FyZWEnKTtcbiAgICAgICAgZm9jdXMuZm9jdXMoKTtcbiAgICAgICAgcmV0dXJuIF9kb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBmb2N1cztcbiAgICB9XG59O1xuLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSFRNTC9FbGVtZW50L2ltZyNhdHRyLXVzZW1hcFxudmFyIGZvY3VzQXJlYVdpdGhvdXRIcmVmID0ge1xuICAgIGVsZW1lbnQ6ICdkaXYnLFxuICAgIG11dGF0ZTogZnVuY3Rpb24gbXV0YXRlKGVsZW1lbnQpIHtcbiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPVxuICAgICAgICAgICAgJzxtYXAgbmFtZT1cImltYWdlLW1hcC1hcmVhLWhyZWYtdGVzdFwiPicgK1xuICAgICAgICAgICAgICAgICc8YXJlYSBzaGFwZT1cInJlY3RcIiBjb29yZHM9XCI2MywxOSwxNDQsNDVcIj48L21hcD4nICtcbiAgICAgICAgICAgICAgICAnPGltZyB1c2VtYXA9XCIjaW1hZ2UtbWFwLWFyZWEtaHJlZi10ZXN0XCIgYWx0PVwiXCIgc3JjPVwiJyArXG4gICAgICAgICAgICAgICAgZ2lmICtcbiAgICAgICAgICAgICAgICAnXCI+JztcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQucXVlcnlTZWxlY3RvcignYXJlYScpO1xuICAgIH0sXG4gICAgdmFsaWRhdGU6IGZ1bmN0aW9uIHZhbGlkYXRlKGVsZW1lbnQsIGZvY3VzVGFyZ2V0LCBfZG9jdW1lbnQpIHtcbiAgICAgICAgaWYgKHBsYXRmb3JtLmlzLkdFQ0tPKSB7XG4gICAgICAgICAgICAvLyBmaXhlcyBodHRwczovL2dpdGh1Yi5jb20vbWVkaWFsaXplL2FsbHkuanMvaXNzdWVzLzM1XG4gICAgICAgICAgICAvLyBGaXJlZm94IGxvYWRzIHRoZSBEYXRhVVJJIGFzeW5jaHJvbm91c2x5LCBjYXVzaW5nIGEgZmFsc2UtbmVnYXRpdmVcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBfZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZm9jdXNUYXJnZXQ7XG4gICAgfVxufTtcbnZhciBmb2N1c0F1ZGlvV2l0aG91dENvbnRyb2xzID0ge1xuICAgIG5hbWU6ICdjYW4tZm9jdXMtYXVkaW8td2l0aG91dC1jb250cm9scycsXG4gICAgZWxlbWVudDogJ2F1ZGlvJyxcbiAgICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBpbnZhbGlkIG1lZGlhIGZpbGUgY2FuIHRyaWdnZXIgd2FybmluZyBpbiBjb25zb2xlLCBkYXRhLXVyaSB0byBwcmV2ZW50IEhUVFAgcmVxdWVzdFxuICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3NyYycsIGdpZik7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIC8vIElFOSBtYXkgdGhyb3cgXCJFcnJvcjogTm90IGltcGxlbWVudGVkXCJcbiAgICAgICAgfVxuICAgIH1cbn07XG52YXIgaW52YWxpZEdpZiA9ICdkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhBUUFCQUlBQUFBQUFBUC8vL1paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlonO1xuLy8gTk9URTogaHR0cHM6Ly9naXRodWIuY29tL21lZGlhbGl6ZS9hbGx5LmpzL2lzc3Vlcy8zNVxuLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSFRNTC9FbGVtZW50L2ltZyNhdHRyLXVzZW1hcFxudmFyIGZvY3VzQnJva2VuSW1hZ2VNYXAgPSB7XG4gICAgZWxlbWVudDogJ2RpdicsXG4gICAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9XG4gICAgICAgICAgICAnPG1hcCBuYW1lPVwiYnJva2VuLWltYWdlLW1hcC10ZXN0XCI+PGFyZWEgaHJlZj1cIiN2b2lkXCIgc2hhcGU9XCJyZWN0XCIgY29vcmRzPVwiNjMsMTksMTQ0LDQ1XCI+PC9tYXA+JyArXG4gICAgICAgICAgICAgICAgJzxpbWcgdXNlbWFwPVwiI2Jyb2tlbi1pbWFnZS1tYXAtdGVzdFwiIGFsdD1cIlwiIHNyYz1cIicgK1xuICAgICAgICAgICAgICAgIGludmFsaWRHaWYgK1xuICAgICAgICAgICAgICAgICdcIj4nO1xuICAgICAgICByZXR1cm4gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCdhcmVhJyk7XG4gICAgfVxufTtcbi8vIENoaWxkcmVuIG9mIGZvY3VzYWJsZSBlbGVtZW50cyB3aXRoIGRpc3BsYXk6ZmxleCBhcmUgZm9jdXNhYmxlIGluIElFMTAtMTFcbnZhciBmb2N1c0NoaWxkcmVuT2ZGb2N1c2FibGVGbGV4Ym94ID0ge1xuICAgIGVsZW1lbnQ6ICdkaXYnLFxuICAgIG11dGF0ZTogZnVuY3Rpb24gbXV0YXRlKGVsZW1lbnQpIHtcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJy0xJyk7XG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdzdHlsZScsICdkaXNwbGF5OiAtd2Via2l0LWZsZXg7IGRpc3BsYXk6IC1tcy1mbGV4Ym94OyBkaXNwbGF5OiBmbGV4OycpO1xuICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9ICc8c3BhbiBzdHlsZT1cImRpc3BsYXk6IGJsb2NrO1wiPmhlbGxvPC9zcGFuPic7XG4gICAgICAgIHJldHVybiBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ3NwYW4nKTtcbiAgICB9XG59O1xuLy8gZmllbGRzZXRbdGFiaW5kZXg9MF1bZGlzYWJsZWRdIHNob3VsZCBub3QgYmUgZm9jdXNhYmxlLCBidXQgQmxpbmsgYW5kIFdlYktpdCBkaXNhZ3JlZVxuLy8gQHNwZWNpZmljYXRpb24gaHR0cHM6Ly93d3cudzMub3JnL1RSL2h0bWw1L2Rpc2FibGVkLWVsZW1lbnRzLmh0bWwjY29uY2VwdC1lbGVtZW50LWRpc2FibGVkXG4vLyBAYnJvd3Nlci1pc3N1ZSBDaHJvbWl1bSBodHRwczovL2NyYnVnLmNvbS80NTM4NDdcbi8vIEBicm93c2VyLWlzc3VlIFdlYktpdCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQxMDg2XG52YXIgZm9jdXNGaWVsZHNldERpc2FibGVkID0ge1xuICAgIGVsZW1lbnQ6ICdmaWVsZHNldCcsXG4gICAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAwKTtcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJywgJ2Rpc2FibGVkJyk7XG4gICAgfVxufTtcbnZhciBmb2N1c0ZpZWxkc2V0ID0ge1xuICAgIGVsZW1lbnQ6ICdmaWVsZHNldCcsXG4gICAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9ICc8bGVnZW5kPmxlZ2VuZDwvbGVnZW5kPjxwPmNvbnRlbnQ8L3A+JztcbiAgICB9XG59O1xuLy8gZWxlbWVudHMgd2l0aCBkaXNwbGF5OmZsZXggYXJlIGZvY3VzYWJsZSBpbiBJRTEwLTExXG52YXIgZm9jdXNGbGV4Ym94Q29udGFpbmVyID0ge1xuICAgIGVsZW1lbnQ6ICdzcGFuJyxcbiAgICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdzdHlsZScsICdkaXNwbGF5OiAtd2Via2l0LWZsZXg7IGRpc3BsYXk6IC1tcy1mbGV4Ym94OyBkaXNwbGF5OiBmbGV4OycpO1xuICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9ICc8c3BhbiBzdHlsZT1cImRpc3BsYXk6IGJsb2NrO1wiPmhlbGxvPC9zcGFuPic7XG4gICAgfVxufTtcbi8vIGZvcm1bdGFiaW5kZXg9MF1bZGlzYWJsZWRdIHNob3VsZCBiZSBmb2N1c2FibGUgYXMgdGhlXG4vLyBzcGVjaWZpY2F0aW9uIGRvZXNuJ3Qga25vdyB0aGUgZGlzYWJsZWQgYXR0cmlidXRlIG9uIHRoZSBmb3JtIGVsZW1lbnRcbi8vIEBzcGVjaWZpY2F0aW9uIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9odG1sNS9mb3Jtcy5odG1sI3RoZS1mb3JtLWVsZW1lbnRcbnZhciBmb2N1c0Zvcm1EaXNhYmxlZCA9IHtcbiAgICBlbGVtZW50OiAnZm9ybScsXG4gICAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAwKTtcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJywgJ2Rpc2FibGVkJyk7XG4gICAgfVxufTtcbi8vIE5PVEU6IGh0dHBzOi8vZ2l0aHViLmNvbS9tZWRpYWxpemUvYWxseS5qcy9pc3N1ZXMvMzVcbi8vIGZpeGVzIGh0dHBzOi8vZ2l0aHViLmNvbS9tZWRpYWxpemUvYWxseS5qcy9pc3N1ZXMvMjBcbi8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0hUTUwvRWxlbWVudC9pbWcjYXR0ci1pc21hcFxudmFyIGZvY3VzSW1nSXNtYXAgPSB7XG4gICAgZWxlbWVudDogJ2EnLFxuICAgIG11dGF0ZTogZnVuY3Rpb24gbXV0YXRlKGVsZW1lbnQpIHtcbiAgICAgICAgZWxlbWVudC5ocmVmID0gJyN2b2lkJztcbiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSAnPGltZyBpc21hcCBzcmM9XCInICsgZ2lmICsgJ1wiIGFsdD1cIlwiPic7XG4gICAgICAgIHJldHVybiBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2ltZycpO1xuICAgIH1cbn07XG4vLyBOT1RFOiBodHRwczovL2dpdGh1Yi5jb20vbWVkaWFsaXplL2FsbHkuanMvaXNzdWVzLzM1XG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVE1ML0VsZW1lbnQvaW1nI2F0dHItdXNlbWFwXG52YXIgZm9jdXNJbWdVc2VtYXBUYWJpbmRleCA9IHtcbiAgICBlbGVtZW50OiAnZGl2JyxcbiAgICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID1cbiAgICAgICAgICAgICc8bWFwIG5hbWU9XCJpbWFnZS1tYXAtdGFiaW5kZXgtdGVzdFwiPjxhcmVhIGhyZWY9XCIjdm9pZFwiIHNoYXBlPVwicmVjdFwiIGNvb3Jkcz1cIjYzLDE5LDE0NCw0NVwiPjwvbWFwPicgK1xuICAgICAgICAgICAgICAgICc8aW1nIHVzZW1hcD1cIiNpbWFnZS1tYXAtdGFiaW5kZXgtdGVzdFwiIHRhYmluZGV4PVwiLTFcIiBhbHQ9XCJcIiAnICtcbiAgICAgICAgICAgICAgICAnc3JjPVwiJyArXG4gICAgICAgICAgICAgICAgZ2lmICtcbiAgICAgICAgICAgICAgICAnXCI+JztcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQucXVlcnlTZWxlY3RvcignaW1nJyk7XG4gICAgfVxufTtcbnZhciBmb2N1c0luSGlkZGVuSWZyYW1lID0ge1xuICAgIGVsZW1lbnQ6IGZ1bmN0aW9uIGVsZW1lbnQod3JhcHBlciwgX2RvY3VtZW50KSB7XG4gICAgICAgIHZhciBpZnJhbWUgPSBfZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7XG4gICAgICAgIC8vIGlmcmFtZSBtdXN0IGJlIHBhcnQgb2YgdGhlIERPTSBiZWZvcmUgYWNjZXNzaW5nIHRoZSBjb250ZW50V2luZG93IGlzIHBvc3NpYmxlXG4gICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQoaWZyYW1lKTtcbiAgICAgICAgLy8gY3JlYXRlIHRoZSBpZnJhbWUncyBkZWZhdWx0IGRvY3VtZW50ICg8aHRtbD48aGVhZD48L2hlYWQ+PGJvZHk+PC9ib2R5PjwvaHRtbD4pXG4gICAgICAgIHZhciBpZnJhbWVEb2N1bWVudCA9IGlmcmFtZS5jb250ZW50V2luZG93LmRvY3VtZW50O1xuICAgICAgICBpZnJhbWVEb2N1bWVudC5vcGVuKCk7XG4gICAgICAgIGlmcmFtZURvY3VtZW50LmNsb3NlKCk7XG4gICAgICAgIHJldHVybiBpZnJhbWU7XG4gICAgfSxcbiAgICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShpZnJhbWUpIHtcbiAgICAgICAgaWZyYW1lLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcbiAgICAgICAgdmFyIGlmcmFtZURvY3VtZW50ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ7XG4gICAgICAgIHZhciBpbnB1dCA9IGlmcmFtZURvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgICAgIGlmcmFtZURvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW5wdXQpO1xuICAgICAgICByZXR1cm4gaW5wdXQ7XG4gICAgfSxcbiAgICB2YWxpZGF0ZTogZnVuY3Rpb24gdmFsaWRhdGUoaWZyYW1lKSB7XG4gICAgICAgIHZhciBpZnJhbWVEb2N1bWVudCA9IGlmcmFtZS5jb250ZW50V2luZG93LmRvY3VtZW50O1xuICAgICAgICB2YXIgZm9jdXMgPSBpZnJhbWVEb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpO1xuICAgICAgICByZXR1cm4gaWZyYW1lRG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZm9jdXM7XG4gICAgfVxufTtcbnZhciByZXN1bHQgPSAhcGxhdGZvcm0uaXMuV0VCS0lUO1xuZnVuY3Rpb24gZm9jdXNJblplcm9EaW1lbnNpb25PYmplY3QoKSB7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbi8vIEZpcmVmb3ggYWxsb3dzICphbnkqIHZhbHVlIGFuZCB0cmVhdHMgaW52YWxpZCB2YWx1ZXMgbGlrZSB0YWJpbmRleD1cIi0xXCJcbi8vIEBicm93c2VyLWlzc3VlIEdlY2tvIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTExMjgwNTRcbnZhciBmb2N1c0ludmFsaWRUYWJpbmRleCA9IHtcbiAgICBlbGVtZW50OiAnZGl2JyxcbiAgICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICdpbnZhbGlkLXZhbHVlJyk7XG4gICAgfVxufTtcbnZhciBmb2N1c0xhYmVsVGFiaW5kZXggPSB7XG4gICAgZWxlbWVudDogJ2xhYmVsJyxcbiAgICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICctMScpO1xuICAgIH0sXG4gICAgdmFsaWRhdGU6IGZ1bmN0aW9uIHZhbGlkYXRlKGVsZW1lbnQsIGZvY3VzVGFyZ2V0LCBfZG9jdW1lbnQpIHtcbiAgICAgICAgLy8gZm9yY2UgbGF5b3V0IGluIENocm9tZSA0OSwgb3RoZXJ3aXNlIHRoZSBlbGVtZW50IHdvbid0IGJlIGZvY3VzYWJsZVxuICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xuICAgICAgICB2YXIgdmFyaWFibGVUb1ByZXZlbnREZWFkQ29kZUVsaW1pbmF0aW9uID0gZWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gICAgICAgIC8qIGVzbGludC1lbmFibGUgbm8tdW51c2VkLXZhcnMgKi9cbiAgICAgICAgZWxlbWVudC5mb2N1cygpO1xuICAgICAgICByZXR1cm4gX2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGVsZW1lbnQ7XG4gICAgfVxufTtcbnZhciBzdmcgPSAnZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhodGInICtcbiAgICAnRzV6T25oc2FXNXJQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUwzaHNhVzVySWlCcFpEMGljM1puSWo0OGRHVjRkQ0I0UFNJeE1DSWdlVDBpTWpBaUlHbGtQU0onICtcbiAgICAnemRtY3RiR2x1YXkxMFpYaDBJajUwWlhoMFBDOTBaWGgwUGp3dmMzWm5QZz09Jztcbi8vIE5vdGU6IElFMTAgb24gQnJvd3NlclN0YWNrIGRvZXMgbm90IGxpa2UgdGhpcyB0ZXN0XG52YXIgZm9jdXNPYmplY3RTdmdIaWRkZW4gPSB7XG4gICAgZWxlbWVudDogJ29iamVjdCcsXG4gICAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgndHlwZScsICdpbWFnZS9zdmcreG1sJyk7XG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdkYXRhJywgc3ZnKTtcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3dpZHRoJywgJzIwMCcpO1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnaGVpZ2h0JywgJzUwJyk7XG4gICAgICAgIGVsZW1lbnQuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xuICAgIH1cbn07XG4vLyBOb3RlOiBJRTEwIG9uIEJyb3dzZXJTdGFjayBkb2VzIG5vdCBsaWtlIHRoaXMgdGVzdFxudmFyIGZvY3VzT2JqZWN0U3ZnID0ge1xuICAgIG5hbWU6ICdjYW4tZm9jdXMtb2JqZWN0LXN2ZycsXG4gICAgZWxlbWVudDogJ29iamVjdCcsXG4gICAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgndHlwZScsICdpbWFnZS9zdmcreG1sJyk7XG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdkYXRhJywgc3ZnKTtcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3dpZHRoJywgJzIwMCcpO1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnaGVpZ2h0JywgJzUwJyk7XG4gICAgfSxcbiAgICB2YWxpZGF0ZTogZnVuY3Rpb24gdmFsaWRhdGUoZWxlbWVudCwgZm9jdXNUYXJnZXQsIF9kb2N1bWVudCkge1xuICAgICAgICBpZiAocGxhdGZvcm0uaXMuR0VDS08pIHtcbiAgICAgICAgICAgIC8vIEZpcmVmb3ggc2VlbXMgdG8gYmUgaGFuZGxpbmcgdGhlIG9iamVjdCBjcmVhdGlvbiBhc3luY2hyb25vdXNseSBhbmQgdGhlcmVieSBwcm9kdWNlcyBhIGZhbHNlIG5lZ2F0aXZlIHRlc3QgcmVzdWx0LlxuICAgICAgICAgICAgLy8gQmVjYXVzZSB3ZSBrbm93IEZpcmVmb3ggaXMgYWJsZSB0byBmb2N1cyBvYmplY3QgZWxlbWVudHMgcmVmZXJlbmNpbmcgU1ZHcywgd2Ugc2ltcGx5IGNoZWF0IGJ5IHNuaWZmaW5nIHRoZSB1c2VyIGFnZW50IHN0cmluZ1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIF9kb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBlbGVtZW50O1xuICAgIH1cbn07XG4vLyBFdmVyeSBFbnZpcm9ubWVudCBleGNlcHQgSUU5IGNvbnNpZGVycyBTV0Ygb2JqZWN0cyBmb2N1c2FibGVcbnZhciByZXN1bHQkMSA9ICFwbGF0Zm9ybS5pcy5JRTk7XG5mdW5jdGlvbiBmb2N1c09iamVjdFN3ZigpIHtcbiAgICByZXR1cm4gcmVzdWx0JDE7XG59XG52YXIgZm9jdXNSZWRpcmVjdEltZ1VzZW1hcCA9IHtcbiAgICBlbGVtZW50OiAnZGl2JyxcbiAgICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID1cbiAgICAgICAgICAgICc8bWFwIG5hbWU9XCJmb2N1cy1yZWRpcmVjdC1pbWctdXNlbWFwXCI+PGFyZWEgaHJlZj1cIiN2b2lkXCIgc2hhcGU9XCJyZWN0XCIgY29vcmRzPVwiNjMsMTksMTQ0LDQ1XCI+PC9tYXA+JyArXG4gICAgICAgICAgICAgICAgJzxpbWcgdXNlbWFwPVwiI2ZvY3VzLXJlZGlyZWN0LWltZy11c2VtYXBcIiBhbHQ9XCJcIiAnICtcbiAgICAgICAgICAgICAgICAnc3JjPVwiJyArXG4gICAgICAgICAgICAgICAgZ2lmICtcbiAgICAgICAgICAgICAgICAnXCI+JztcbiAgICAgICAgLy8gZm9jdXMgdGhlIDxpbWc+LCBub3QgdGhlIDxkaXY+XG4gICAgICAgIHJldHVybiBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2ltZycpO1xuICAgIH0sXG4gICAgdmFsaWRhdGU6IGZ1bmN0aW9uIHZhbGlkYXRlKGVsZW1lbnQsIGZvY3VzVGFyZ2V0LCBfZG9jdW1lbnQpIHtcbiAgICAgICAgdmFyIHRhcmdldCA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcignYXJlYScpO1xuICAgICAgICByZXR1cm4gX2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IHRhcmdldDtcbiAgICB9XG59O1xuLy8gc2VlIGh0dHBzOi8vanNiaW4uY29tL25lbmlyaXNhZ2UvZWRpdD9odG1sLGpzLGNvbnNvbGUsb3V0cHV0XG52YXIgZm9jdXNSZWRpcmVjdExlZ2VuZCA9IHtcbiAgICBlbGVtZW50OiAnZmllbGRzZXQnLFxuICAgIG11dGF0ZTogZnVuY3Rpb24gbXV0YXRlKGVsZW1lbnQpIHtcbiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPVxuICAgICAgICAgICAgJzxsZWdlbmQ+bGVnZW5kPC9sZWdlbmQ+PGlucHV0IHRhYmluZGV4PVwiLTFcIj48aW5wdXQgdGFiaW5kZXg9XCIwXCI+JztcbiAgICAgICAgLy8gdGFrZSBjYXJlIG9mIGZvY3VzIGluIHZhbGlkYXRlKCk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9LFxuICAgIHZhbGlkYXRlOiBmdW5jdGlvbiB2YWxpZGF0ZShlbGVtZW50LCBmb2N1c1RhcmdldCwgX2RvY3VtZW50KSB7XG4gICAgICAgIHZhciBmb2N1c2FibGUgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3RhYmluZGV4PVwiLTFcIl0nKTtcbiAgICAgICAgdmFyIHRhYmJhYmxlID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0YWJpbmRleD1cIjBcIl0nKTtcbiAgICAgICAgLy8gRmlyZWZveCByZXF1aXJlcyB0aGlzIHRlc3QgdG8gZm9jdXMgdGhlIDxmaWVsZHNldD4gZmlyc3QsIHdoaWxlIHRoaXMgaXMgbm90IG5lY2Vzc2FyeSBpblxuICAgICAgICAvLyBodHRwczovL2pzYmluLmNvbS9uZW5pcmlzYWdlL2VkaXQ/aHRtbCxqcyxjb25zb2xlLG91dHB1dFxuICAgICAgICBlbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIGVsZW1lbnQucXVlcnlTZWxlY3RvcignbGVnZW5kJykuZm9jdXMoKTtcbiAgICAgICAgcmV0dXJuICgoX2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGZvY3VzYWJsZSAmJiAnZm9jdXNhYmxlJykgfHxcbiAgICAgICAgICAgIChfZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gdGFiYmFibGUgJiYgJ3RhYmJhYmxlJykgfHxcbiAgICAgICAgICAgICcnKTtcbiAgICB9XG59O1xuLy8gaHR0cHM6Ly9naXRodWIuY29tL21lZGlhbGl6ZS9hbGx5LmpzL2lzc3Vlcy8yMVxudmFyIGZvY3VzU2Nyb2xsQm9keSA9IHtcbiAgICBlbGVtZW50OiAnZGl2JyxcbiAgICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdzdHlsZScsICd3aWR0aDogMTAwcHg7IGhlaWdodDogNTBweDsgb3ZlcmZsb3c6IGF1dG87Jyk7XG4gICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID1cbiAgICAgICAgICAgICc8ZGl2IHN0eWxlPVwid2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDQwcHg7XCI+c2Nyb2xsYWJsZSBjb250ZW50PC9kaXY+JztcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQucXVlcnlTZWxlY3RvcignZGl2Jyk7XG4gICAgfVxufTtcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tZWRpYWxpemUvYWxseS5qcy9pc3N1ZXMvMjFcbnZhciBmb2N1c1Njcm9sbENvbnRhaW5lcldpdGhvdXRPdmVyZmxvdyA9IHtcbiAgICBlbGVtZW50OiAnZGl2JyxcbiAgICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdzdHlsZScsICd3aWR0aDogMTAwcHg7IGhlaWdodDogNTBweDsnKTtcbiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPVxuICAgICAgICAgICAgJzxkaXYgc3R5bGU9XCJ3aWR0aDogNTAwcHg7IGhlaWdodDogNDBweDtcIj5zY3JvbGxhYmxlIGNvbnRlbnQ8L2Rpdj4nO1xuICAgIH1cbn07XG4vLyBodHRwczovL2dpdGh1Yi5jb20vbWVkaWFsaXplL2FsbHkuanMvaXNzdWVzLzIxXG52YXIgZm9jdXNTY3JvbGxDb250YWluZXIgPSB7XG4gICAgZWxlbWVudDogJ2RpdicsXG4gICAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwcHg7IG92ZXJmbG93OiBhdXRvOycpO1xuICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9XG4gICAgICAgICAgICAnPGRpdiBzdHlsZT1cIndpZHRoOiA1MDBweDsgaGVpZ2h0OiA0MHB4O1wiPnNjcm9sbGFibGUgY29udGVudDwvZGl2Pic7XG4gICAgfVxufTtcbnZhciBmb2N1c1N1bW1hcnkgPSB7XG4gICAgZWxlbWVudDogJ2RldGFpbHMnLFxuICAgIG11dGF0ZTogZnVuY3Rpb24gbXV0YXRlKGVsZW1lbnQpIHtcbiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSAnPHN1bW1hcnk+Zm9vPC9zdW1tYXJ5PjxwPmNvbnRlbnQ8L3A+JztcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQ7XG4gICAgfVxufTtcbmZ1bmN0aW9uIG1ha2VGb2N1c2FibGVGb3JlaWduT2JqZWN0KCkge1xuICAgIHZhciBmcmFnbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIGZyYWdtZW50LmlubmVySFRNTCA9XG4gICAgICAgICc8c3ZnPjxmb3JlaWduT2JqZWN0IHdpZHRoPVwiMzBcIiBoZWlnaHQ9XCIzMFwiPlxcbiAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiLz5cXG4gIDwvZm9yZWlnbk9iamVjdD48L3N2Zz4nO1xuICAgIHJldHVybiBmcmFnbWVudC5maXJzdENoaWxkLmZpcnN0Q2hpbGQ7XG59XG5mdW5jdGlvbiBmb2N1c1N2Z0ZvcmVpZ25PYmplY3RIYWNrKGVsZW1lbnQpIHtcbiAgICAvLyBFZGdlMTMsIEVkZ2UxNDogZm9yZWlnbk9iamVjdCBmb2N1cyBoYWNrXG4gICAgLy8gaHR0cHM6Ly9qc2Jpbi5jb20va3VuZWhpbnVnaS9lZGl0P2h0bWwsanMsb3V0cHV0XG4gICAgLy8gaHR0cHM6Ly9qc2Jpbi5jb20vZmFqYWdpLzMvZWRpdD9odG1sLGpzLG91dHB1dFxuICAgIHZhciBpc1N2Z0VsZW1lbnQgPSBlbGVtZW50Lm93bmVyU1ZHRWxlbWVudCB8fCBlbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdzdmcnO1xuICAgIGlmICghaXNTdmdFbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgLy8gaW5qZWN0IGFuZCBmb2N1cyBhbiA8aW5wdXQ+IGVsZW1lbnQgaW50byB0aGUgU1ZHIGVsZW1lbnQgdG8gcmVjZWl2ZSBmb2N1c1xuICAgIHZhciBmb3JlaWduT2JqZWN0ID0gbWFrZUZvY3VzYWJsZUZvcmVpZ25PYmplY3QoKTtcbiAgICBlbGVtZW50LmFwcGVuZENoaWxkKGZvcmVpZ25PYmplY3QpO1xuICAgIHZhciBpbnB1dCA9IGZvcmVpZ25PYmplY3QucXVlcnlTZWxlY3RvcignaW5wdXQnKTtcbiAgICBpbnB1dC5mb2N1cygpO1xuICAgIC8vIHVwb24gZGlzYWJsaW5nIHRoZSBhY3RpdmVFbGVtZW50LCBJRSBhbmQgRWRnZVxuICAgIC8vIHdpbGwgbm90IHNoaWZ0IGZvY3VzIHRvIDxib2R5PiBsaWtlIGFsbCB0aGUgb3RoZXJcbiAgICAvLyBicm93c2VycywgYnV0IGluc3RlYWQgZmluZCB0aGUgZmlyc3QgZm9jdXNhYmxlXG4gICAgLy8gYW5jZXN0b3IgYW5kIHNoaWZ0IGZvY3VzIHRvIHRoYXRcbiAgICBpbnB1dC5kaXNhYmxlZCA9IHRydWU7XG4gICAgLy8gY2xlYW4gdXBcbiAgICBlbGVtZW50LnJlbW92ZUNoaWxkKGZvcmVpZ25PYmplY3QpO1xuICAgIHJldHVybiB0cnVlO1xufVxuZnVuY3Rpb24gZ2VuZXJhdGUoZWxlbWVudCkge1xuICAgIHJldHVybiAoJzxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiPicgK1xuICAgICAgICBlbGVtZW50ICtcbiAgICAgICAgJzwvc3ZnPicpO1xufVxuZnVuY3Rpb24gZm9jdXMoZWxlbWVudCkge1xuICAgIGlmIChlbGVtZW50LmZvY3VzKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgSFRNTEVsZW1lbnQucHJvdG90eXBlLmZvY3VzLmNhbGwoZWxlbWVudCk7XG4gICAgfVxuICAgIGNhdGNoIChlKSB7XG4gICAgICAgIGZvY3VzU3ZnRm9yZWlnbk9iamVjdEhhY2soZWxlbWVudCk7XG4gICAgfVxufVxuZnVuY3Rpb24gdmFsaWRhdGUoZWxlbWVudCwgZm9jdXNUYXJnZXQsIF9kb2N1bWVudCkge1xuICAgIGZvY3VzKGZvY3VzVGFyZ2V0KTtcbiAgICByZXR1cm4gX2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGZvY3VzVGFyZ2V0O1xufVxudmFyIGZvY3VzU3ZnRm9jdXNhYmxlQXR0cmlidXRlID0ge1xuICAgIGVsZW1lbnQ6ICdkaXYnLFxuICAgIG11dGF0ZTogZnVuY3Rpb24gbXV0YXRlKGVsZW1lbnQpIHtcbiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBnZW5lcmF0ZSgnPHRleHQgZm9jdXNhYmxlPVwidHJ1ZVwiPmE8L3RleHQ+Jyk7XG4gICAgICAgIHJldHVybiBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ3RleHQnKTtcbiAgICB9LFxuICAgIHZhbGlkYXRlOiB2YWxpZGF0ZVxufTtcbnZhciBmb2N1c1N2Z1RhYmluZGV4QXR0cmlidXRlID0ge1xuICAgIGVsZW1lbnQ6ICdkaXYnLFxuICAgIG11dGF0ZTogZnVuY3Rpb24gbXV0YXRlKGVsZW1lbnQpIHtcbiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBnZW5lcmF0ZSgnPHRleHQgdGFiaW5kZXg9XCIwXCI+YTwvdGV4dD4nKTtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQucXVlcnlTZWxlY3RvcigndGV4dCcpO1xuICAgIH0sXG4gICAgdmFsaWRhdGU6IHZhbGlkYXRlXG59O1xudmFyIGZvY3VzU3ZnTmVnYXRpdmVUYWJpbmRleEF0dHJpYnV0ZSA9IHtcbiAgICBlbGVtZW50OiAnZGl2JyxcbiAgICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZ2VuZXJhdGUoJzx0ZXh0IHRhYmluZGV4PVwiLTFcIj5hPC90ZXh0PicpO1xuICAgICAgICByZXR1cm4gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCd0ZXh0Jyk7XG4gICAgfSxcbiAgICB2YWxpZGF0ZTogdmFsaWRhdGVcbn07XG52YXIgZm9jdXNTdmdVc2VUYWJpbmRleCA9IHtcbiAgICBlbGVtZW50OiAnZGl2JyxcbiAgICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZ2VuZXJhdGUoW1xuICAgICAgICAgICAgJzxnIGlkPVwiYWxseS10ZXN0LXRhcmdldFwiPjxhIHhsaW5rOmhyZWY9XCIjdm9pZFwiPjx0ZXh0Pmxpbms8L3RleHQ+PC9hPjwvZz4nLFxuICAgICAgICAgICAgJzx1c2UgeGxpbms6aHJlZj1cIiNhbGx5LXRlc3QtdGFyZ2V0XCIgeD1cIjBcIiB5PVwiMFwiIHRhYmluZGV4PVwiLTFcIiAvPicsXG4gICAgICAgIF0uam9pbignJykpO1xuICAgICAgICByZXR1cm4gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCd1c2UnKTtcbiAgICB9LFxuICAgIHZhbGlkYXRlOiB2YWxpZGF0ZVxufTtcbnZhciBmb2N1c1N2Z0ZvcmVpZ25vYmplY3RUYWJpbmRleCA9IHtcbiAgICBlbGVtZW50OiAnZGl2JyxcbiAgICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZ2VuZXJhdGUoJzxmb3JlaWduT2JqZWN0IHRhYmluZGV4PVwiLTFcIj48aW5wdXQgdHlwZT1cInRleHRcIiAvPjwvZm9yZWlnbk9iamVjdD4nKTtcbiAgICAgICAgLy8gU2FmYXJpIDgncyBxdWVyc1NlbGVjdG9yKCkgY2FuJ3QgaWRlbnRpZnkgZm9yZWlnbk9iamVjdCwgYnV0IGdldEVsZW1lbnR5QnlUYWdOYW1lKCkgY2FuXG4gICAgICAgIHJldHVybiAoZWxlbWVudC5xdWVyeVNlbGVjdG9yKCdmb3JlaWduT2JqZWN0JykgfHxcbiAgICAgICAgICAgIGVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2ZvcmVpZ25PYmplY3QnKVswXSk7XG4gICAgfSxcbiAgICB2YWxpZGF0ZTogdmFsaWRhdGVcbn07XG4vLyBGaXJlZm94IHNlZW1zIHRvIGJlIGhhbmRsaW5nIHRoZSBTVkctZG9jdW1lbnQtaW4taWZyYW1lIGNyZWF0aW9uIGFzeW5jaHJvbm91c2x5XG4vLyBhbmQgdGhlcmVieSBwcm9kdWNlcyBhIGZhbHNlIG5lZ2F0aXZlIHRlc3QgcmVzdWx0LiBUaHVzIHRoZSB0ZXN0IGlzIHBvaW50bGVzc1xuLy8gYW5kIHdlIHJlc29ydCB0byBVQSBzbmlmZmluZyBvbmNlIGFnYWluLlxuLy8gc2VlIGh0dHA6Ly9qc2Jpbi5jb20vdnVuYWRvaG9rby8xL2VkaXQ/anMsY29uc29sZSxvdXRwdXRcbnZhciByZXN1bHQkMiA9IEJvb2xlYW4ocGxhdGZvcm0uaXMuR0VDS08gJiZcbiAgICB0eXBlb2YgU1ZHRWxlbWVudCAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICBTVkdFbGVtZW50LnByb3RvdHlwZS5mb2N1cyk7XG5mdW5jdGlvbiBmb2N1c1N2Z0luSWZyYW1lKCkge1xuICAgIHJldHVybiByZXN1bHQkMjtcbn1cbnZhciBmb2N1c1N2ZyA9IHtcbiAgICBlbGVtZW50OiAnZGl2JyxcbiAgICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZ2VuZXJhdGUoJycpO1xuICAgICAgICByZXR1cm4gZWxlbWVudC5maXJzdENoaWxkO1xuICAgIH0sXG4gICAgdmFsaWRhdGU6IHZhbGlkYXRlXG59O1xuLy8gRmlyZWZveCBhbGxvd3MgKmFueSogdmFsdWUgYW5kIHRyZWF0cyBpbnZhbGlkIHZhbHVlcyBsaWtlIHRhYmluZGV4PVwiLTFcIlxuLy8gQGJyb3dzZXItaXNzdWUgR2Vja28gaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyODA1NFxudmFyIGZvY3VzVGFiaW5kZXhUcmFpbGluZ0NoYXJhY3RlcnMgPSB7XG4gICAgZWxlbWVudDogJ2RpdicsXG4gICAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAnM3gnKTtcbiAgICB9XG59O1xudmFyIGZvY3VzVGFibGUgPSB7XG4gICAgZWxlbWVudDogJ3RhYmxlJyxcbiAgICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50LCB3cmFwcGVyLCBfZG9jdW1lbnQpIHtcbiAgICAgICAgLy8gSUU5IGhhcyBhIHByb2JsZW0gcmVwbGFjaW5nIFRCT0RZIGNvbnRlbnRzIHdpdGggaW5uZXJIVE1MLlxuICAgICAgICAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvODA5NzA1NS81MTUxMjRcbiAgICAgICAgLy8gZWxlbWVudC5pbm5lckhUTUwgPSAnPHRyPjx0ZD5jZWxsPC90ZD48L3RyPic7XG4gICAgICAgIHZhciBmcmFnbWVudCA9IF9kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7XG4gICAgICAgIGZyYWdtZW50LmlubmVySFRNTCA9ICc8dHI+PHRkPmNlbGw8L3RkPjwvdHI+JztcbiAgICAgICAgZWxlbWVudC5hcHBlbmRDaGlsZChmcmFnbWVudCk7XG4gICAgfVxufTtcbnZhciBmb2N1c1ZpZGVvV2l0aG91dENvbnRyb2xzID0ge1xuICAgIGVsZW1lbnQ6ICd2aWRlbycsXG4gICAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gaW52YWxpZCBtZWRpYSBmaWxlIGNhbiB0cmlnZ2VyIHdhcm5pbmcgaW4gY29uc29sZSwgZGF0YS11cmkgdG8gcHJldmVudCBIVFRQIHJlcXVlc3RcbiAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdzcmMnLCBnaWYpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAvLyBJRTkgbWF5IHRocm93IFwiRXJyb3I6IE5vdCBpbXBsZW1lbnRlZFwiXG4gICAgICAgIH1cbiAgICB9XG59O1xuLy8gaHR0cHM6Ly9qc2Jpbi5jb20vdmFmYWJhLzMvZWRpdD9odG1sLGpzLGNvbnNvbGUsb3V0cHV0XG52YXIgcmVzdWx0JDMgPSBwbGF0Zm9ybS5pcy5HRUNLTyB8fCBwbGF0Zm9ybS5pcy5UUklERU5UIHx8IHBsYXRmb3JtLmlzLkVER0U7XG5mdW5jdGlvbiB0YWJzZXF1ZW5jZUFyZWFBdEltZ1Bvc2l0aW9uKCkge1xuICAgIHJldHVybiByZXN1bHQkMztcbn1cbnZhciB0ZXN0Q2FsbGJhY2tzID0ge1xuICAgIGNzc1NoYWRvd1BpZXJjaW5nRGVlcENvbWJpbmF0b3I6IGNzc1NoYWRvd1BpZXJjaW5nRGVlcENvbWJpbmF0b3IsXG4gICAgZm9jdXNJblplcm9EaW1lbnNpb25PYmplY3Q6IGZvY3VzSW5aZXJvRGltZW5zaW9uT2JqZWN0LFxuICAgIGZvY3VzT2JqZWN0U3dmOiBmb2N1c09iamVjdFN3ZixcbiAgICBmb2N1c1N2Z0luSWZyYW1lOiBmb2N1c1N2Z0luSWZyYW1lLFxuICAgIHRhYnNlcXVlbmNlQXJlYUF0SW1nUG9zaXRpb246IHRhYnNlcXVlbmNlQXJlYUF0SW1nUG9zaXRpb25cbn07XG52YXIgdGVzdERlc2NyaXB0aW9ucyA9IHtcbiAgICBmb2N1c0FyZWFJbWdUYWJpbmRleDogZm9jdXNBcmVhSW1nVGFiaW5kZXgsXG4gICAgZm9jdXNBcmVhVGFiaW5kZXg6IGZvY3VzQXJlYVRhYmluZGV4LFxuICAgIGZvY3VzQXJlYVdpdGhvdXRIcmVmOiBmb2N1c0FyZWFXaXRob3V0SHJlZixcbiAgICBmb2N1c0F1ZGlvV2l0aG91dENvbnRyb2xzOiBmb2N1c0F1ZGlvV2l0aG91dENvbnRyb2xzLFxuICAgIGZvY3VzQnJva2VuSW1hZ2VNYXA6IGZvY3VzQnJva2VuSW1hZ2VNYXAsXG4gICAgZm9jdXNDaGlsZHJlbk9mRm9jdXNhYmxlRmxleGJveDogZm9jdXNDaGlsZHJlbk9mRm9jdXNhYmxlRmxleGJveCxcbiAgICBmb2N1c0ZpZWxkc2V0RGlzYWJsZWQ6IGZvY3VzRmllbGRzZXREaXNhYmxlZCxcbiAgICBmb2N1c0ZpZWxkc2V0OiBmb2N1c0ZpZWxkc2V0LFxuICAgIGZvY3VzRmxleGJveENvbnRhaW5lcjogZm9jdXNGbGV4Ym94Q29udGFpbmVyLFxuICAgIGZvY3VzRm9ybURpc2FibGVkOiBmb2N1c0Zvcm1EaXNhYmxlZCxcbiAgICBmb2N1c0ltZ0lzbWFwOiBmb2N1c0ltZ0lzbWFwLFxuICAgIGZvY3VzSW1nVXNlbWFwVGFiaW5kZXg6IGZvY3VzSW1nVXNlbWFwVGFiaW5kZXgsXG4gICAgZm9jdXNJbkhpZGRlbklmcmFtZTogZm9jdXNJbkhpZGRlbklmcmFtZSxcbiAgICBmb2N1c0ludmFsaWRUYWJpbmRleDogZm9jdXNJbnZhbGlkVGFiaW5kZXgsXG4gICAgZm9jdXNMYWJlbFRhYmluZGV4OiBmb2N1c0xhYmVsVGFiaW5kZXgsXG4gICAgZm9jdXNPYmplY3RTdmc6IGZvY3VzT2JqZWN0U3ZnLFxuICAgIGZvY3VzT2JqZWN0U3ZnSGlkZGVuOiBmb2N1c09iamVjdFN2Z0hpZGRlbixcbiAgICBmb2N1c1JlZGlyZWN0SW1nVXNlbWFwOiBmb2N1c1JlZGlyZWN0SW1nVXNlbWFwLFxuICAgIGZvY3VzUmVkaXJlY3RMZWdlbmQ6IGZvY3VzUmVkaXJlY3RMZWdlbmQsXG4gICAgZm9jdXNTY3JvbGxCb2R5OiBmb2N1c1Njcm9sbEJvZHksXG4gICAgZm9jdXNTY3JvbGxDb250YWluZXJXaXRob3V0T3ZlcmZsb3c6IGZvY3VzU2Nyb2xsQ29udGFpbmVyV2l0aG91dE92ZXJmbG93LFxuICAgIGZvY3VzU2Nyb2xsQ29udGFpbmVyOiBmb2N1c1Njcm9sbENvbnRhaW5lcixcbiAgICBmb2N1c1N1bW1hcnk6IGZvY3VzU3VtbWFyeSxcbiAgICBmb2N1c1N2Z0ZvY3VzYWJsZUF0dHJpYnV0ZTogZm9jdXNTdmdGb2N1c2FibGVBdHRyaWJ1dGUsXG4gICAgZm9jdXNTdmdUYWJpbmRleEF0dHJpYnV0ZTogZm9jdXNTdmdUYWJpbmRleEF0dHJpYnV0ZSxcbiAgICBmb2N1c1N2Z05lZ2F0aXZlVGFiaW5kZXhBdHRyaWJ1dGU6IGZvY3VzU3ZnTmVnYXRpdmVUYWJpbmRleEF0dHJpYnV0ZSxcbiAgICBmb2N1c1N2Z1VzZVRhYmluZGV4OiBmb2N1c1N2Z1VzZVRhYmluZGV4LFxuICAgIGZvY3VzU3ZnRm9yZWlnbm9iamVjdFRhYmluZGV4OiBmb2N1c1N2Z0ZvcmVpZ25vYmplY3RUYWJpbmRleCxcbiAgICBmb2N1c1N2ZzogZm9jdXNTdmcsXG4gICAgZm9jdXNUYWJpbmRleFRyYWlsaW5nQ2hhcmFjdGVyczogZm9jdXNUYWJpbmRleFRyYWlsaW5nQ2hhcmFjdGVycyxcbiAgICBmb2N1c1RhYmxlOiBmb2N1c1RhYmxlLFxuICAgIGZvY3VzVmlkZW9XaXRob3V0Q29udHJvbHM6IGZvY3VzVmlkZW9XaXRob3V0Q29udHJvbHNcbn07XG5mdW5jdGlvbiBleGVjdXRlVGVzdHMoKSB7XG4gICAgdmFyIHJlc3VsdHMgPSBkZXRlY3RGb2N1cyh0ZXN0RGVzY3JpcHRpb25zKTtcbiAgICBPYmplY3Qua2V5cyh0ZXN0Q2FsbGJhY2tzKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgcmVzdWx0c1trZXldID0gdGVzdENhbGxiYWNrc1trZXldKCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdHM7XG59XG52YXIgc3VwcG9ydHNDYWNoZSA9IG51bGw7XG5mdW5jdGlvbiBfc3VwcG9ydHMoKSB7XG4gICAgaWYgKHN1cHBvcnRzQ2FjaGUpIHtcbiAgICAgICAgcmV0dXJuIHN1cHBvcnRzQ2FjaGU7XG4gICAgfVxuICAgIHN1cHBvcnRzQ2FjaGUgPSBjYWNoZSQxLmdldCgpO1xuICAgIGlmICghc3VwcG9ydHNDYWNoZS50aW1lKSB7XG4gICAgICAgIGNhY2hlJDEuc2V0KGV4ZWN1dGVUZXN0cygpKTtcbiAgICAgICAgc3VwcG9ydHNDYWNoZSA9IGNhY2hlJDEuZ2V0KCk7XG4gICAgfVxuICAgIHJldHVybiBzdXBwb3J0c0NhY2hlO1xufVxudmFyIHN1cHBvcnRzID0gdm9pZCAwO1xuLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2h0bWw1L2luZnJhc3RydWN0dXJlLmh0bWwjcnVsZXMtZm9yLXBhcnNpbmctaW50ZWdlcnNcbi8vIE5PVEU6IGFsbCBicm93c2VycyBhZ3JlZSB0byBhbGxvdyB0cmFpbGluZyBzcGFjZXMgYXMgd2VsbFxudmFyIHZhbGlkSW50ZWdlclBhdHRlcm5Ob1RyYWlsaW5nID0gL15cXHMqKC18XFwrKT9bMC05XStcXHMqJC87XG52YXIgdmFsaWRJbnRlZ2VyUGF0dGVybldpdGhUcmFpbGluZyA9IC9eXFxzKigtfFxcKyk/WzAtOV0rLiokLztcbmZ1bmN0aW9uIGlzVmFsaWRUYWJpbmRleChjb250ZXh0KSB7XG4gICAgaWYgKCFzdXBwb3J0cykge1xuICAgICAgICBzdXBwb3J0cyA9IF9zdXBwb3J0cygpO1xuICAgIH1cbiAgICB2YXIgdmFsaWRJbnRlZ2VyUGF0dGVybiA9IHN1cHBvcnRzLmZvY3VzVGFiaW5kZXhUcmFpbGluZ0NoYXJhY3RlcnNcbiAgICAgICAgPyB2YWxpZEludGVnZXJQYXR0ZXJuV2l0aFRyYWlsaW5nXG4gICAgICAgIDogdmFsaWRJbnRlZ2VyUGF0dGVybk5vVHJhaWxpbmc7XG4gICAgdmFyIGVsZW1lbnQgPSBjb250ZXh0VG9FbGVtZW50KHtcbiAgICAgICAgbGFiZWw6ICdpcy92YWxpZC10YWJpbmRleCcsXG4gICAgICAgIHJlc29sdmVEb2N1bWVudDogdHJ1ZSxcbiAgICAgICAgY29udGV4dDogY29udGV4dFxuICAgIH0pO1xuICAgIC8vIEVkZ2UgMTQgaGFzIGEgY2FwaXRhbGl6YXRpb24gcHJvYmxlbSBvbiBTVkcgZWxlbWVudHMsXG4gICAgLy8gc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1pY3Jvc29mdC5jb20vZW4tdXMvbWljcm9zb2Z0LWVkZ2UvcGxhdGZvcm0vaXNzdWVzLzkyODIwNTgvXG4gICAgdmFyIGhhc1RhYmluZGV4ID0gZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3RhYmluZGV4Jyk7XG4gICAgdmFyIGhhc1RhYkluZGV4ID0gZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3RhYkluZGV4Jyk7XG4gICAgaWYgKCFoYXNUYWJpbmRleCAmJiAhaGFzVGFiSW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvLyBvbGRlciBGaXJlZm94IGFuZCBJbnRlcm5ldCBFeHBsb3JlciBkb24ndCBzdXBwb3J0IHRhYmluZGV4IG9uIFNWRyBlbGVtZW50c1xuICAgIHZhciBpc1N2Z0VsZW1lbnQgPSBlbGVtZW50Lm93bmVyU1ZHRWxlbWVudCB8fCBlbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdzdmcnO1xuICAgIGlmIChpc1N2Z0VsZW1lbnQgJiYgIXN1cHBvcnRzLmZvY3VzU3ZnVGFiaW5kZXhBdHRyaWJ1dGUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvLyBAYnJvd3Nlci1pc3N1ZSBHZWNrbyBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTI4MDU0XG4gICAgaWYgKHN1cHBvcnRzLmZvY3VzSW52YWxpZFRhYmluZGV4KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICAvLyBhbiBlbGVtZW50IG1hdGNoZXMgdGhlIHRhYmluZGV4IHNlbGVjdG9yIGV2ZW4gaWYgaXRzIHZhbHVlIGlzIGludmFsaWRcbiAgICB2YXIgdGFiaW5kZXggPSBlbGVtZW50LmdldEF0dHJpYnV0ZShoYXNUYWJpbmRleCA/ICd0YWJpbmRleCcgOiAndGFiSW5kZXgnKTtcbiAgICAvLyBJRTExIHBhcnNlcyB0YWJpbmRleD1cIlwiIGFzIHRoZSB2YWx1ZSBcIi0zMjc2OFwiXG4gICAgLy8gQGJyb3dzZXItaXNzdWUgVHJpZGVudCBodHRwczovL2Nvbm5lY3QubWljcm9zb2Z0LmNvbS9JRS9mZWVkYmFjay9kZXRhaWxzLzEwNzI5NjVcbiAgICBpZiAodGFiaW5kZXggPT09ICctMzI3NjgnKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIEJvb2xlYW4odGFiaW5kZXggJiYgdmFsaWRJbnRlZ2VyUGF0dGVybi50ZXN0KHRhYmluZGV4KSk7XG59XG5mdW5jdGlvbiB0YWJpbmRleFZhbHVlKGVsZW1lbnQpIHtcbiAgICBpZiAoIWlzVmFsaWRUYWJpbmRleChlbGVtZW50KSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgLy8gRWRnZSAxNCBoYXMgYSBjYXBpdGFsaXphdGlvbiBwcm9ibGVtIG9uIFNWRyBlbGVtZW50cyxcbiAgICAvLyBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubWljcm9zb2Z0LmNvbS9lbi11cy9taWNyb3NvZnQtZWRnZS9wbGF0Zm9ybS9pc3N1ZXMvOTI4MjA1OC9cbiAgICB2YXIgaGFzVGFiaW5kZXggPSBlbGVtZW50Lmhhc0F0dHJpYnV0ZSgndGFiaW5kZXgnKTtcbiAgICB2YXIgYXR0cmlidXRlTmFtZSA9IGhhc1RhYmluZGV4ID8gJ3RhYmluZGV4JyA6ICd0YWJJbmRleCc7XG4gICAgLy8gQGJyb3dzZXItaXNzdWUgR2Vja28gaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyODA1NFxuICAgIHZhciB0YWJpbmRleCA9IHBhcnNlSW50KGVsZW1lbnQuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpLCAxMCk7XG4gICAgcmV0dXJuIGlzTmFOKHRhYmluZGV4KSA/IC0xIDogdGFiaW5kZXg7XG59XG4vLyB0aGlzIGlzIGEgc2hhcmVkIHV0aWxpdHkgZmlsZSBmb3IgZm9jdXMtcmVsZXZhbnQuanMgYW5kIHRhYmJhYmxlLmpzXG4vLyBzZXBhcmF0ZSB0ZXN0aW5nIG9mIHRoaXMgZmlsZSdzIGZ1bmN0aW9ucyBpcyBub3QgbmVjZXNzYXJ5LFxuLy8gYXMgdGhleSdyZSBpbXBsaWNpdGx5IHRlc3RlZCBieSB3YXkgb2YgdGhlIGNvbnN1bWVyc1xuZnVuY3Rpb24gaXNVc2VyTW9kaWZ5V3JpdGFibGUoc3R5bGUpIHtcbiAgICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvMTk5OS9XRC1jc3MzLXVzZXJpbnQtMTk5OTA5MTYjdXNlci1tb2RpZnlcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbWVkaWFsaXplL2FsbHkuanMvaXNzdWVzLzE3XG4gICAgdmFyIHVzZXJNb2RpZnkgPSBzdHlsZS53ZWJraXRVc2VyTW9kaWZ5IHx8ICcnO1xuICAgIHJldHVybiBCb29sZWFuKHVzZXJNb2RpZnkgJiYgdXNlck1vZGlmeS5pbmRleE9mKCd3cml0ZScpICE9PSAtMSk7XG59XG5mdW5jdGlvbiBoYXNDc3NPdmVyZmxvd1Njcm9sbChzdHlsZSkge1xuICAgIHJldHVybiBbXG4gICAgICAgIHN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ292ZXJmbG93JyksXG4gICAgICAgIHN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ292ZXJmbG93LXgnKSxcbiAgICAgICAgc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnb3ZlcmZsb3cteScpLFxuICAgIF0uc29tZShmdW5jdGlvbiAob3ZlcmZsb3cpIHtcbiAgICAgICAgcmV0dXJuIG92ZXJmbG93ID09PSAnYXV0bycgfHwgb3ZlcmZsb3cgPT09ICdzY3JvbGwnO1xuICAgIH0pO1xufVxuZnVuY3Rpb24gaGFzQ3NzRGlzcGxheUZsZXgoc3R5bGUpIHtcbiAgICByZXR1cm4gc3R5bGUuZGlzcGxheS5pbmRleE9mKCdmbGV4JykgPiAtMTtcbn1cbmZ1bmN0aW9uIGlzU2Nyb2xsYWJsZUNvbnRhaW5lcihlbGVtZW50LCBub2RlTmFtZSwgcGFyZW50Tm9kZU5hbWUsIHBhcmVudFN0eWxlKSB7XG4gICAgaWYgKG5vZGVOYW1lICE9PSAnZGl2JyAmJiBub2RlTmFtZSAhPT0gJ3NwYW4nKSB7XG4gICAgICAgIC8vIEludGVybmV0IEV4cGxvcmVyIGFkdmFuY2VzIHNjcm9sbGFibGUgY29udGFpbmVycyBhbmQgYm9kaWVzIHRvIGZvY3VzYWJsZVxuICAgICAgICAvLyBvbmx5IGlmIHRoZSBzY3JvbGxhYmxlIGNvbnRhaW5lciBpcyA8ZGl2PiBvciA8c3Bhbj4gLSB0aGlzIGRvZXMgKm5vdCpcbiAgICAgICAgLy8gaGFwcGVuIGZvciA8c2VjdGlvbj4sIDxhcnRpY2xlPiwg4oCmXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHBhcmVudE5vZGVOYW1lICYmXG4gICAgICAgIHBhcmVudE5vZGVOYW1lICE9PSAnZGl2JyAmJlxuICAgICAgICBwYXJlbnROb2RlTmFtZSAhPT0gJ3NwYW4nICYmXG4gICAgICAgICFoYXNDc3NPdmVyZmxvd1Njcm9sbChwYXJlbnRTdHlsZSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gKGVsZW1lbnQub2Zmc2V0SGVpZ2h0IDwgZWxlbWVudC5zY3JvbGxIZWlnaHQgfHxcbiAgICAgICAgZWxlbWVudC5vZmZzZXRXaWR0aCA8IGVsZW1lbnQuc2Nyb2xsV2lkdGgpO1xufVxudmFyIHN1cHBvcnRzJDEgPSB2b2lkIDA7XG5mdW5jdGlvbiBpc0ZvY3VzUmVsZXZhbnRSdWxlcygpIHtcbiAgICB2YXIgX3JlZiA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge30sIGNvbnRleHQgPSBfcmVmLmNvbnRleHQsIF9yZWYkZXhjZXB0ID0gX3JlZi5leGNlcHQsIGV4Y2VwdCA9IF9yZWYkZXhjZXB0ID09PSB1bmRlZmluZWRcbiAgICAgICAgPyB7XG4gICAgICAgICAgICBmbGV4Ym94OiBmYWxzZSxcbiAgICAgICAgICAgIHNjcm9sbGFibGU6IGZhbHNlLFxuICAgICAgICAgICAgc2hhZG93OiBmYWxzZVxuICAgICAgICB9XG4gICAgICAgIDogX3JlZiRleGNlcHQ7XG4gICAgaWYgKCFzdXBwb3J0cyQxKSB7XG4gICAgICAgIHN1cHBvcnRzJDEgPSBfc3VwcG9ydHMoKTtcbiAgICB9XG4gICAgdmFyIGVsZW1lbnQgPSBjb250ZXh0VG9FbGVtZW50KHtcbiAgICAgICAgbGFiZWw6ICdpcy9mb2N1cy1yZWxldmFudCcsXG4gICAgICAgIHJlc29sdmVEb2N1bWVudDogdHJ1ZSxcbiAgICAgICAgY29udGV4dDogY29udGV4dFxuICAgIH0pO1xuICAgIGlmICghZXhjZXB0LnNoYWRvdyAmJiBlbGVtZW50LnNoYWRvd1Jvb3QpIHtcbiAgICAgICAgLy8gYSBTaGFkb3dET00gaG9zdCByZWNlaXZlcyBmb2N1cyB3aGVuIHRoZSBmb2N1cyBtb3ZlcyB0byBpdHMgY29udGVudFxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgdmFyIG5vZGVOYW1lID0gZWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIGlmIChub2RlTmFtZSA9PT0gJ2lucHV0JyAmJiBlbGVtZW50LnR5cGUgPT09ICdoaWRkZW4nKSB7XG4gICAgICAgIC8vIGlucHV0W3R5cGU9XCJoaWRkZW5cIl0gc3VwcG9ydHMuY2Fubm90IGJlIGZvY3VzZWRcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAobm9kZU5hbWUgPT09ICdpbnB1dCcgfHxcbiAgICAgICAgbm9kZU5hbWUgPT09ICdzZWxlY3QnIHx8XG4gICAgICAgIG5vZGVOYW1lID09PSAnYnV0dG9uJyB8fFxuICAgICAgICBub2RlTmFtZSA9PT0gJ3RleHRhcmVhJykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKG5vZGVOYW1lID09PSAnbGVnZW5kJyAmJiBzdXBwb3J0cyQxLmZvY3VzUmVkaXJlY3RMZWdlbmQpIHtcbiAgICAgICAgLy8gc3BlY2lmaWNzIGZpbHRlcmVkIGluIGlzL2ZvY3VzYWJsZVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKG5vZGVOYW1lID09PSAnbGFiZWwnKSB7XG4gICAgICAgIC8vIHNwZWNpZmljcyBmaWx0ZXJlZCBpbiBpcy9mb2N1c2FibGVcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChub2RlTmFtZSA9PT0gJ2FyZWEnKSB7XG4gICAgICAgIC8vIHNwZWNpZmljcyBmaWx0ZXJlZCBpbiBpcy9mb2N1c2FibGVcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChub2RlTmFtZSA9PT0gJ2EnICYmIGVsZW1lbnQuaGFzQXR0cmlidXRlKCdocmVmJykpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChub2RlTmFtZSA9PT0gJ29iamVjdCcgJiYgZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3VzZW1hcCcpKSB7XG4gICAgICAgIC8vIG9iamVjdFt1c2VtYXBdIGlzIG5vdCBmb2N1c2FibGUgaW4gYW55IGJyb3dzZXJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAobm9kZU5hbWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIHZhciBzdmdUeXBlID0gZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3R5cGUnKTtcbiAgICAgICAgaWYgKCFzdXBwb3J0cyQxLmZvY3VzT2JqZWN0U3ZnICYmIHN2Z1R5cGUgPT09ICdpbWFnZS9zdmcreG1sJykge1xuICAgICAgICAgICAgLy8gb2JqZWN0W3R5cGU9XCJpbWFnZS9zdmcreG1sXCJdIGlzIG5vdCBmb2N1c2FibGUgaW4gSW50ZXJuZXQgRXhwbG9yZXJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICghc3VwcG9ydHMkMS5mb2N1c09iamVjdFN3ZiAmJlxuICAgICAgICAgICAgc3ZnVHlwZSA9PT0gJ2FwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoJykge1xuICAgICAgICAgICAgLy8gb2JqZWN0W3R5cGU9XCJhcHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaFwiXSBpcyBub3QgZm9jdXNhYmxlIGluIEludGVybmV0IEV4cGxvcmVyIDlcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAobm9kZU5hbWUgPT09ICdpZnJhbWUnIHx8IG5vZGVOYW1lID09PSAnb2JqZWN0Jykge1xuICAgICAgICAvLyBicm93c2luZyBjb250ZXh0IGNvbnRhaW5lcnNcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChub2RlTmFtZSA9PT0gJ2VtYmVkJyB8fCBub2RlTmFtZSA9PT0gJ2tleWdlbicpIHtcbiAgICAgICAgLy8gZW1iZWQgaXMgY29uc2lkZXJlZCBmb2N1cy1yZWxldmFudCBidXQgbm90IGZvY3VzYWJsZVxuICAgICAgICAvLyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL21lZGlhbGl6ZS9hbGx5LmpzL2lzc3Vlcy84MlxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKGVsZW1lbnQuaGFzQXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnKSkge1xuICAgICAgICAvLyBhbHNvIHNlZSBDU1MgcHJvcGVydHkgdXNlci1tb2RpZnkgYmVsb3dcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChub2RlTmFtZSA9PT0gJ2F1ZGlvJyAmJlxuICAgICAgICAoc3VwcG9ydHMkMS5mb2N1c0F1ZGlvV2l0aG91dENvbnRyb2xzIHx8IGVsZW1lbnQuaGFzQXR0cmlidXRlKCdjb250cm9scycpKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKG5vZGVOYW1lID09PSAndmlkZW8nICYmXG4gICAgICAgIChzdXBwb3J0cyQxLmZvY3VzVmlkZW9XaXRob3V0Q29udHJvbHMgfHwgZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2NvbnRyb2xzJykpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoc3VwcG9ydHMkMS5mb2N1c1N1bW1hcnkgJiYgbm9kZU5hbWUgPT09ICdzdW1tYXJ5Jykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgdmFyIHZhbGlkVGFiaW5kZXggPSBpc1ZhbGlkVGFiaW5kZXgoZWxlbWVudCk7XG4gICAgaWYgKG5vZGVOYW1lID09PSAnaW1nJyAmJiBlbGVtZW50Lmhhc0F0dHJpYnV0ZSgndXNlbWFwJykpIHtcbiAgICAgICAgLy8gR2Vja28sIFRyaWRlbnQgYW5kIEVkZ2UgZG8gbm90IGFsbG93IGFuIGltYWdlIHdpdGggYW4gaW1hZ2UgbWFwIGFuZCB0YWJpbmRleCB0byBiZSBmb2N1c2VkLFxuICAgICAgICAvLyBpdCBhcHBlYXJzIHRoZSB0YWJpbmRleCBpcyBvdmVycnVsZWQgc28gZm9jdXMgaXMgc3RpbGwgZm9yd2FyZGVkIHRvIHRoZSA8bWFwPlxuICAgICAgICByZXR1cm4gKCh2YWxpZFRhYmluZGV4ICYmIHN1cHBvcnRzJDEuZm9jdXNJbWdVc2VtYXBUYWJpbmRleCkgfHxcbiAgICAgICAgICAgIHN1cHBvcnRzJDEuZm9jdXNSZWRpcmVjdEltZ1VzZW1hcCk7XG4gICAgfVxuICAgIGlmIChzdXBwb3J0cyQxLmZvY3VzVGFibGUgJiYgKG5vZGVOYW1lID09PSAndGFibGUnIHx8IG5vZGVOYW1lID09PSAndGQnKSkge1xuICAgICAgICAvLyBJRTEwLTExIHN1cHBvcnRzLmNhbiBmb2N1cyA8dGFibGU+IGFuZCA8dGQ+XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoc3VwcG9ydHMkMS5mb2N1c0ZpZWxkc2V0ICYmIG5vZGVOYW1lID09PSAnZmllbGRzZXQnKSB7XG4gICAgICAgIC8vIElFMTAtMTEgc3VwcG9ydHMuY2FuIGZvY3VzIDxmaWVsZHNldD5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHZhciBpc1N2Z0VsZW1lbnQgPSBub2RlTmFtZSA9PT0gJ3N2Zyc7XG4gICAgdmFyIGlzU3ZnQ29udGVudCA9IGVsZW1lbnQub3duZXJTVkdFbGVtZW50O1xuICAgIHZhciBmb2N1c2FibGVBdHRyaWJ1dGUgPSBlbGVtZW50LmdldEF0dHJpYnV0ZSgnZm9jdXNhYmxlJyk7XG4gICAgdmFyIHRhYmluZGV4ID0gdGFiaW5kZXhWYWx1ZShlbGVtZW50KTtcbiAgICBpZiAobm9kZU5hbWUgPT09ICd1c2UnICYmXG4gICAgICAgIHRhYmluZGV4ICE9PSBudWxsICYmXG4gICAgICAgICFzdXBwb3J0cyQxLmZvY3VzU3ZnVXNlVGFiaW5kZXgpIHtcbiAgICAgICAgLy8gPHVzZT4gY2Fubm90IGJlIG1hZGUgZm9jdXNhYmxlIGJ5IGFkZGluZyBhIHRhYmluZGV4IGF0dHJpYnV0ZSBhbnl3aGVyZSBidXQgQmxpbmsgYW5kIFdlYktpdFxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChub2RlTmFtZSA9PT0gJ2ZvcmVpZ25vYmplY3QnKSB7XG4gICAgICAgIC8vIDx1c2U+IGNhbiBvbmx5IGJlIG1hZGUgZm9jdXNhYmxlIGluIEJsaW5rIGFuZCBXZWJLaXRcbiAgICAgICAgcmV0dXJuIHRhYmluZGV4ICE9PSBudWxsICYmIHN1cHBvcnRzJDEuZm9jdXNTdmdGb3JlaWdub2JqZWN0VGFiaW5kZXg7XG4gICAgfVxuICAgIGlmIChlbGVtZW50TWF0Y2hlcyhlbGVtZW50LCAnc3ZnIGEnKSAmJiBlbGVtZW50Lmhhc0F0dHJpYnV0ZSgneGxpbms6aHJlZicpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoKGlzU3ZnRWxlbWVudCB8fCBpc1N2Z0NvbnRlbnQpICYmXG4gICAgICAgIGVsZW1lbnQuZm9jdXMgJiZcbiAgICAgICAgIXN1cHBvcnRzJDEuZm9jdXNTdmdOZWdhdGl2ZVRhYmluZGV4QXR0cmlidXRlICYmXG4gICAgICAgIHRhYmluZGV4IDwgMCkge1xuICAgICAgICAvLyBGaXJlZm94IDUxIGFuZCA1MiB0cmVhdCBhbnkgbmF0aXZlbHkgdGFiYmFibGUgU1ZHIGVsZW1lbnQgd2l0aFxuICAgICAgICAvLyB0YWJpbmRleD1cIi0xXCIgYXMgdGFiYmFibGUgYW5kIGV2ZXJ5dGhpbmcgZWxzZSBhcyBpbmVydFxuICAgICAgICAvLyBzZWUgaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwMjM0MFxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChpc1N2Z0VsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuICh2YWxpZFRhYmluZGV4IHx8XG4gICAgICAgICAgICBzdXBwb3J0cyQxLmZvY3VzU3ZnIHx8XG4gICAgICAgICAgICBzdXBwb3J0cyQxLmZvY3VzU3ZnSW5JZnJhbWUgfHxcbiAgICAgICAgICAgIC8vIEludGVybmV0IEV4cGxvcmVyIHVuZGVyc3RhbmRzIHRoZSBmb2N1c2FibGUgYXR0cmlidXRlIGludHJvZHVjZWQgaW4gU1ZHIFRpbnkgMS4yXG4gICAgICAgICAgICBCb29sZWFuKHN1cHBvcnRzJDEuZm9jdXNTdmdGb2N1c2FibGVBdHRyaWJ1dGUgJiZcbiAgICAgICAgICAgICAgICBmb2N1c2FibGVBdHRyaWJ1dGUgJiZcbiAgICAgICAgICAgICAgICBmb2N1c2FibGVBdHRyaWJ1dGUgPT09ICd0cnVlJykpO1xuICAgIH1cbiAgICBpZiAoaXNTdmdDb250ZW50KSB7XG4gICAgICAgIGlmIChzdXBwb3J0cyQxLmZvY3VzU3ZnVGFiaW5kZXhBdHRyaWJ1dGUgJiYgdmFsaWRUYWJpbmRleCkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN1cHBvcnRzJDEuZm9jdXNTdmdGb2N1c2FibGVBdHRyaWJ1dGUpIHtcbiAgICAgICAgICAgIC8vIEludGVybmV0IEV4cGxvcmVyIHVuZGVyc3RhbmRzIHRoZSBmb2N1c2FibGUgYXR0cmlidXRlIGludHJvZHVjZWQgaW4gU1ZHIFRpbnkgMS4yXG4gICAgICAgICAgICByZXR1cm4gZm9jdXNhYmxlQXR0cmlidXRlID09PSAndHJ1ZSc7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2h0bWw1L2VkaXRpbmcuaHRtbCNzZXF1ZW50aWFsLWZvY3VzLW5hdmlnYXRpb24tYW5kLXRoZS10YWJpbmRleC1hdHRyaWJ1dGVcbiAgICBpZiAodmFsaWRUYWJpbmRleCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgdmFyIHN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgbnVsbCk7XG4gICAgaWYgKGlzVXNlck1vZGlmeVdyaXRhYmxlKHN0eWxlKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHN1cHBvcnRzJDEuZm9jdXNJbWdJc21hcCAmJlxuICAgICAgICBub2RlTmFtZSA9PT0gJ2ltZycgJiZcbiAgICAgICAgZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2lzbWFwJykpIHtcbiAgICAgICAgLy8gSUUxMC0xMSBjb25zaWRlcnMgdGhlIDxpbWc+IGluIDxhIGhyZWY+PGltZyBpc21hcD4gZm9jdXNhYmxlXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tZWRpYWxpemUvYWxseS5qcy9pc3N1ZXMvMjBcbiAgICAgICAgdmFyIGhhc0xpbmtQYXJlbnQgPSBnZXRQYXJlbnRzKHsgY29udGV4dDogZWxlbWVudCB9KS5zb21lKGZ1bmN0aW9uIChwYXJlbnQpIHtcbiAgICAgICAgICAgIHJldHVybiAocGFyZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdhJyAmJiBwYXJlbnQuaGFzQXR0cmlidXRlKCdocmVmJykpO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGhhc0xpbmtQYXJlbnQpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tZWRpYWxpemUvYWxseS5qcy9pc3N1ZXMvMjFcbiAgICBpZiAoIWV4Y2VwdC5zY3JvbGxhYmxlICYmIHN1cHBvcnRzJDEuZm9jdXNTY3JvbGxDb250YWluZXIpIHtcbiAgICAgICAgaWYgKHN1cHBvcnRzJDEuZm9jdXNTY3JvbGxDb250YWluZXJXaXRob3V0T3ZlcmZsb3cpIHtcbiAgICAgICAgICAgIC8vIEludGVybmV0IEV4cGxvcmVyIGRvZXMgd2lsbCBjb25zaWRlciB0aGUgc2Nyb2xsYWJsZSBhcmVhIGZvY3VzYWJsZVxuICAgICAgICAgICAgLy8gaWYgdGhlIGVsZW1lbnQgaXMgYSA8ZGl2PiBvciBhIDxzcGFuPiBhbmQgaXQgaXMgaW4gZmFjdCBzY3JvbGxhYmxlLFxuICAgICAgICAgICAgLy8gcmVnYXJkbGVzcyBvZiB0aGUgQ1NTIG92ZXJmbG93IHByb3BlcnR5XG4gICAgICAgICAgICBpZiAoaXNTY3JvbGxhYmxlQ29udGFpbmVyKGVsZW1lbnQsIG5vZGVOYW1lKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGhhc0Nzc092ZXJmbG93U2Nyb2xsKHN0eWxlKSkge1xuICAgICAgICAgICAgLy8gRmlyZWZveCByZXF1aXJlcyBwcm9wZXIgb3ZlcmZsb3cgc2V0dGluZywgSUUgZG9lcyBub3QgbmVjZXNzYXJpbHlcbiAgICAgICAgICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9vdmVyZmxvd1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFleGNlcHQuZmxleGJveCAmJlxuICAgICAgICBzdXBwb3J0cyQxLmZvY3VzRmxleGJveENvbnRhaW5lciAmJlxuICAgICAgICBoYXNDc3NEaXNwbGF5RmxleChzdHlsZSkpIHtcbiAgICAgICAgLy8gZWxlbWVudHMgd2l0aCBkaXNwbGF5OmZsZXggYXJlIGZvY3VzYWJsZSBpbiBJRTEwLTExXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICB2YXIgcGFyZW50ID0gZWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICAgIGlmICghZXhjZXB0LnNjcm9sbGFibGUgJiYgcGFyZW50KSB7XG4gICAgICAgIHZhciBwYXJlbnROb2RlTmFtZSA9IHBhcmVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICB2YXIgcGFyZW50U3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShwYXJlbnQsIG51bGwpO1xuICAgICAgICBpZiAoc3VwcG9ydHMkMS5mb2N1c1Njcm9sbEJvZHkgJiZcbiAgICAgICAgICAgIGlzU2Nyb2xsYWJsZUNvbnRhaW5lcihwYXJlbnQsIG5vZGVOYW1lLCBwYXJlbnROb2RlTmFtZSwgcGFyZW50U3R5bGUpKSB7XG4gICAgICAgICAgICAvLyBzY3JvbGxhYmxlIGJvZGllcyBhcmUgZm9jdXNhYmxlIEludGVybmV0IEV4cGxvcmVyXG4gICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbWVkaWFsaXplL2FsbHkuanMvaXNzdWVzLzIxXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBDaGlsZHJlbiBvZiBmb2N1c2FibGUgZWxlbWVudHMgd2l0aCBkaXNwbGF5OmZsZXggYXJlIGZvY3VzYWJsZSBpbiBJRTEwLTExXG4gICAgICAgIGlmIChzdXBwb3J0cyQxLmZvY3VzQ2hpbGRyZW5PZkZvY3VzYWJsZUZsZXhib3gpIHtcbiAgICAgICAgICAgIGlmIChoYXNDc3NEaXNwbGF5RmxleChwYXJlbnRTdHlsZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBOT1RFOiBlbGVtZW50cyBtYXJrZWQgYXMgaW5lcnQgYXJlIG5vdCBmb2N1c2FibGUsXG4gICAgLy8gYnV0IHRoYXQgcHJvcGVydHkgaXMgbm90IGV4cG9zZWQgdG8gdGhlIERPTVxuICAgIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9odG1sNS9lZGl0aW5nLmh0bWwjaW5lcnRcbiAgICByZXR1cm4gZmFsc2U7XG59XG4vLyBiaW5kIGV4Y2VwdGlvbnMgdG8gYW4gaXRlcmF0b3IgY2FsbGJhY2tcbmlzRm9jdXNSZWxldmFudFJ1bGVzLmV4Y2VwdCA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZXhjZXB0ID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fTtcbiAgICB2YXIgaXNGb2N1c1JlbGV2YW50ID0gZnVuY3Rpb24gaXNGb2N1c1JlbGV2YW50KGNvbnRleHQpIHtcbiAgICAgICAgcmV0dXJuIGlzRm9jdXNSZWxldmFudFJ1bGVzKHtcbiAgICAgICAgICAgIGNvbnRleHQ6IGNvbnRleHQsXG4gICAgICAgICAgICBleGNlcHQ6IGV4Y2VwdFxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIGlzRm9jdXNSZWxldmFudC5ydWxlcyA9IGlzRm9jdXNSZWxldmFudFJ1bGVzO1xuICAgIHJldHVybiBpc0ZvY3VzUmVsZXZhbnQ7XG59O1xuLy8gcHJvdmlkZSBpc0ZvY3VzUmVsZXZhbnQoY29udGV4dCkgYXMgZGVmYXVsdCBpdGVyYXRvciBjYWxsYmFja1xudmFyIGlzRm9jdXNSZWxldmFudCA9IGlzRm9jdXNSZWxldmFudFJ1bGVzLmV4Y2VwdCh7fSk7XG5mdW5jdGlvbiBmaW5kSW5kZXgoYXJyYXksIGNhbGxiYWNrKSB7XG4gICAgLy8gYXR0ZW1wdCB0byB1c2UgbmF0aXZlIG9yIHBvbHlmaWxsZWQgQXJyYXkjZmluZEluZGV4IGZpcnN0XG4gICAgaWYgKGFycmF5LmZpbmRJbmRleCkge1xuICAgICAgICByZXR1cm4gYXJyYXkuZmluZEluZGV4KGNhbGxiYWNrKTtcbiAgICB9XG4gICAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcbiAgICAvLyBzaG9ydGN1dCBpZiB0aGUgYXJyYXkgaXMgZW1wdHlcbiAgICBpZiAobGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiAtMTtcbiAgICB9XG4gICAgLy8gb3RoZXJ3aXNlIGxvb3Agb3ZlciBhcnJheVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKGNhbGxiYWNrKGFycmF5W2ldLCBpLCBhcnJheSkpIHtcbiAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiAtMTtcbn1cbmZ1bmN0aW9uIGdldENvbnRlbnREb2N1bWVudChub2RlKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgLy8gd29ya3Mgb24gPG9iamVjdD4gYW5kIDxpZnJhbWU+XG4gICAgICAgIHJldHVybiAobm9kZS5jb250ZW50RG9jdW1lbnQgfHxcbiAgICAgICAgICAgIC8vIHdvcmtzIG9uIDxvYmplY3Q+IGFuZCA8aWZyYW1lPlxuICAgICAgICAgICAgKG5vZGUuY29udGVudFdpbmRvdyAmJiBub2RlLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQpIHx8XG4gICAgICAgICAgICAvLyB3b3JrcyBvbiA8b2JqZWN0PiBhbmQgPGlmcmFtZT4gdGhhdCBjb250YWluIFNWR1xuICAgICAgICAgICAgKG5vZGUuZ2V0U1ZHRG9jdW1lbnQgJiYgbm9kZS5nZXRTVkdEb2N1bWVudCgpKSB8fFxuICAgICAgICAgICAgbnVsbCk7XG4gICAgfVxuICAgIGNhdGNoIChlKSB7XG4gICAgICAgIC8vIFNlY3VyaXR5RXJyb3I6IEZhaWxlZCB0byByZWFkIHRoZSAnY29udGVudERvY3VtZW50JyBwcm9wZXJ0eSBmcm9tICdIVE1MT2JqZWN0RWxlbWVudCdcbiAgICAgICAgLy8gYWxzbyBJRSBtYXkgdGhyb3cgbWVtYmVyIG5vdCBmb3VuZCBleGNlcHRpb24gZS5nLiBvbiA8b2JqZWN0IHR5cGU9XCJpbWFnZS9wbmdcIj5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxufVxuZnVuY3Rpb24gZ2V0V2luZG93KG5vZGUpIHtcbiAgICB2YXIgX2RvY3VtZW50ID0gZ2V0RG9jdW1lbnQobm9kZSk7XG4gICAgcmV0dXJuIF9kb2N1bWVudC5kZWZhdWx0VmlldyB8fCB3aW5kb3c7XG59XG52YXIgc2hhZG93UHJlZml4ID0gdm9pZCAwO1xuZnVuY3Rpb24gc2VsZWN0SW5TaGFkb3dzKHNlbGVjdG9yKSB7XG4gICAgaWYgKHR5cGVvZiBzaGFkb3dQcmVmaXggIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHZhciBvcGVyYXRvciA9IGNzc1NoYWRvd1BpZXJjaW5nRGVlcENvbWJpbmF0b3IoKTtcbiAgICAgICAgaWYgKG9wZXJhdG9yKSB7XG4gICAgICAgICAgICBzaGFkb3dQcmVmaXggPSAnLCBodG1sICcgKyBvcGVyYXRvciArICcgJztcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoIXNoYWRvd1ByZWZpeCkge1xuICAgICAgICByZXR1cm4gc2VsZWN0b3I7XG4gICAgfVxuICAgIHJldHVybiAoc2VsZWN0b3IgK1xuICAgICAgICBzaGFkb3dQcmVmaXggK1xuICAgICAgICBzZWxlY3RvclxuICAgICAgICAgICAgLnJlcGxhY2UoL1xccyosXFxzKi9nLCAnLCcpXG4gICAgICAgICAgICAuc3BsaXQoJywnKVxuICAgICAgICAgICAgLmpvaW4oc2hhZG93UHJlZml4KSk7XG59XG52YXIgc2VsZWN0b3IgPSB2b2lkIDA7XG5mdW5jdGlvbiBmaW5kRG9jdW1lbnRIb3N0RWxlbWVudChfd2luZG93KSB7XG4gICAgaWYgKCFzZWxlY3Rvcikge1xuICAgICAgICBzZWxlY3RvciA9IHNlbGVjdEluU2hhZG93cygnb2JqZWN0LCBpZnJhbWUnKTtcbiAgICB9XG4gICAgaWYgKF93aW5kb3cuX2ZyYW1lRWxlbWVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBfd2luZG93Ll9mcmFtZUVsZW1lbnQ7XG4gICAgfVxuICAgIF93aW5kb3cuX2ZyYW1lRWxlbWVudCA9IG51bGw7XG4gICAgdmFyIHBvdGVudGlhbEhvc3RzID0gX3dpbmRvdy5wYXJlbnQuZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7XG4gICAgW10uc29tZS5jYWxsKHBvdGVudGlhbEhvc3RzLCBmdW5jdGlvbiAoZWxlbWVudCkge1xuICAgICAgICB2YXIgX2RvY3VtZW50ID0gZ2V0Q29udGVudERvY3VtZW50KGVsZW1lbnQpO1xuICAgICAgICBpZiAoX2RvY3VtZW50ICE9PSBfd2luZG93LmRvY3VtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgX3dpbmRvdy5fZnJhbWVFbGVtZW50ID0gZWxlbWVudDtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSk7XG4gICAgcmV0dXJuIF93aW5kb3cuX2ZyYW1lRWxlbWVudDtcbn1cbmZ1bmN0aW9uIGdldEZyYW1lRWxlbWVudChlbGVtZW50KSB7XG4gICAgdmFyIF93aW5kb3cgPSBnZXRXaW5kb3coZWxlbWVudCk7XG4gICAgaWYgKCFfd2luZG93LnBhcmVudCB8fCBfd2luZG93LnBhcmVudCA9PT0gX3dpbmRvdykge1xuICAgICAgICAvLyBpZiB0aGVyZSBpcyBubyBwYXJlbnQgYnJvd3NpbmcgY29udGV4dCxcbiAgICAgICAgLy8gd2UncmUgbm90IGdvaW5nIHRvIGdldCBhIGZyYW1lRWxlbWVudCBlaXRoZXIgd2F5XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICAvLyBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1dpbmRvdy9mcmFtZUVsZW1lbnRcbiAgICAgICAgLy8gZG9lcyBub3Qgd29yayB3aXRoaW4gPGVtYmVkPiBhbnl3aGVyZSwgYW5kIG5vdCB3aXRoaW4gaW4gPG9iamVjdD4gaW4gSUVcbiAgICAgICAgcmV0dXJuIF93aW5kb3cuZnJhbWVFbGVtZW50IHx8IGZpbmREb2N1bWVudEhvc3RFbGVtZW50KF93aW5kb3cpO1xuICAgIH1cbiAgICBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG59XG4vLyBodHRwczovL3d3dy53My5vcmcvVFIvaHRtbDUvcmVuZGVyaW5nLmh0bWwjYmVpbmctcmVuZGVyZWRcbi8vIDxhcmVhPiBpcyBub3QgcmVuZGVyZWQsIGJ1dCB3ZSAqY29uc2lkZXIqIGl0IHZpc2libGUgdG8gc2ltcGxmaXkgdGhpcyBmdW5jdGlvbidzIHVzYWdlXG52YXIgbm90UmVuZGVyZWRFbGVtZW50c1BhdHRlcm4gPSAvXihhcmVhKSQvO1xuZnVuY3Rpb24gY29tcHV0ZWRTdHlsZShlbGVtZW50LCBwcm9wZXJ0eSkge1xuICAgIHJldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5KTtcbn1cbmZ1bmN0aW9uIG5vdERpc3BsYXllZChfcGF0aCkge1xuICAgIHJldHVybiBfcGF0aC5zb21lKGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gICAgICAgIC8vIGRpc3BsYXk6bm9uZSBpcyBub3QgdmlzaWJsZSAob3B0aW1pemVkIGF3YXkgYXQgbGF5b3V0KVxuICAgICAgICByZXR1cm4gY29tcHV0ZWRTdHlsZShlbGVtZW50LCAnZGlzcGxheScpID09PSAnbm9uZSc7XG4gICAgfSk7XG59XG5mdW5jdGlvbiBub3RWaXNpYmxlKF9wYXRoKSB7XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2pxdWVyeS9qcXVlcnktdWkvYmxvYi9tYXN0ZXIvdWkvY29yZS5qcyNMMTA5LUwxMTRcbiAgICAvLyBOT1RFOiBhIG5lc3RlZCBlbGVtZW50IGNhbiByZXZlcnNlIHZpc2liaWxpdHk6aGlkZGVufGNvbGxhcHNlIGJ5IGV4cGxpY2l0bHkgc2V0dGluZyB2aXNpYmlsaXR5OnZpc2libGVcbiAgICAvLyBOT1RFOiB2aXNpYmlsaXR5IGNhbiBiZSBbXCJcIiwgXCJ2aXNpYmxlXCIsIFwiaGlkZGVuXCIsIFwiY29sbGFwc2VcIl1cbiAgICB2YXIgaGlkZGVuID0gZmluZEluZGV4KF9wYXRoLCBmdW5jdGlvbiAoZWxlbWVudCkge1xuICAgICAgICB2YXIgdmlzaWJpbGl0eSA9IGNvbXB1dGVkU3R5bGUoZWxlbWVudCwgJ3Zpc2liaWxpdHknKTtcbiAgICAgICAgcmV0dXJuIHZpc2liaWxpdHkgPT09ICdoaWRkZW4nIHx8IHZpc2liaWxpdHkgPT09ICdjb2xsYXBzZSc7XG4gICAgfSk7XG4gICAgaWYgKGhpZGRlbiA9PT0gLTEpIHtcbiAgICAgICAgLy8gdGhlcmUgaXMgbm8gaGlkZGVuIGVsZW1lbnRcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB2YXIgdmlzaWJsZSA9IGZpbmRJbmRleChfcGF0aCwgZnVuY3Rpb24gKGVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIGNvbXB1dGVkU3R5bGUoZWxlbWVudCwgJ3Zpc2liaWxpdHknKSA9PT0gJ3Zpc2libGUnO1xuICAgIH0pO1xuICAgIGlmICh2aXNpYmxlID09PSAtMSkge1xuICAgICAgICAvLyB0aGVyZSBpcyBubyB2aXNpYmxlIGVsZW1lbnQgKGJ1dCBhIGhpZGRlbiBlbGVtZW50KVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKGhpZGRlbiA8IHZpc2libGUpIHtcbiAgICAgICAgLy8gdGhlcmUgaXMgYSBoaWRkZW4gZWxlbWVudCBhbmQgaXQncyBjbG9zZXIgdGhhbiB0aGUgZmlyc3QgdmlzaWJsZSBlbGVtZW50XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICAvLyB0aGVyZSBtYXkgYmUgYSBoaWRkZW4gZWxlbWVudCwgYnV0IHRoZSBjbG9zZXN0IGVsZW1lbnQgaXMgdmlzaWJsZVxuICAgIHJldHVybiBmYWxzZTtcbn1cbmZ1bmN0aW9uIGNvbGxhcHNlZFBhcmVudChfcGF0aCkge1xuICAgIHZhciBvZmZzZXQgPSAxO1xuICAgIGlmIChfcGF0aFswXS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnc3VtbWFyeScpIHtcbiAgICAgICAgb2Zmc2V0ID0gMjtcbiAgICB9XG4gICAgcmV0dXJuIF9wYXRoLnNsaWNlKG9mZnNldCkuc29tZShmdW5jdGlvbiAoZWxlbWVudCkge1xuICAgICAgICAvLyBcImNvbnRlbnQgY2hpbGRyZW5cIiBvZiBhIGNsb3NlZCBkZXRhaWxzIGVsZW1lbnQgYXJlIG5vdCB2aXNpYmxlXG4gICAgICAgIHJldHVybiAoZWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnZGV0YWlscycgJiYgZWxlbWVudC5vcGVuID09PSBmYWxzZSk7XG4gICAgfSk7XG59XG5mdW5jdGlvbiBpc1Zpc2libGVSdWxlcygpIHtcbiAgICB2YXIgX3JlZiA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge30sIGNvbnRleHQgPSBfcmVmLmNvbnRleHQsIF9yZWYkZXhjZXB0ID0gX3JlZi5leGNlcHQsIGV4Y2VwdCA9IF9yZWYkZXhjZXB0ID09PSB1bmRlZmluZWRcbiAgICAgICAgPyB7XG4gICAgICAgICAgICBub3RSZW5kZXJlZDogZmFsc2UsXG4gICAgICAgICAgICBjc3NEaXNwbGF5OiBmYWxzZSxcbiAgICAgICAgICAgIGNzc1Zpc2liaWxpdHk6IGZhbHNlLFxuICAgICAgICAgICAgZGV0YWlsc0VsZW1lbnQ6IGZhbHNlLFxuICAgICAgICAgICAgYnJvd3NpbmdDb250ZXh0OiBmYWxzZVxuICAgICAgICB9XG4gICAgICAgIDogX3JlZiRleGNlcHQ7XG4gICAgdmFyIGVsZW1lbnQgPSBjb250ZXh0VG9FbGVtZW50KHtcbiAgICAgICAgbGFiZWw6ICdpcy92aXNpYmxlJyxcbiAgICAgICAgcmVzb2x2ZURvY3VtZW50OiB0cnVlLFxuICAgICAgICBjb250ZXh0OiBjb250ZXh0XG4gICAgfSk7XG4gICAgdmFyIG5vZGVOYW1lID0gZWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIGlmICghZXhjZXB0Lm5vdFJlbmRlcmVkICYmIG5vdFJlbmRlcmVkRWxlbWVudHNQYXR0ZXJuLnRlc3Qobm9kZU5hbWUpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICB2YXIgX3BhdGggPSBnZXRQYXJlbnRzKHsgY29udGV4dDogZWxlbWVudCB9KTtcbiAgICAvLyBpbiBJbnRlcm5ldCBFeHBsb3JlciA8YXVkaW8+IGhhcyBhIGRlZmF1bHQgZGlzcGxheTogbm9uZSwgd2hlcmUgb3RoZXJzIGhhdmUgZGlzcGxheTogaW5saW5lXG4gICAgLy8gYnV0IElFIGFsbG93cyBmb2N1c2luZyA8YXVkaW8gc3R5bGU9XCJkaXNwbGF5Om5vbmVcIj4sIGJ1dCBub3QgPGRpdiBkaXNwbGF5Om5vbmU+PGF1ZGlvPlxuICAgIC8vIHRoaXMgaXMgaXJyZWxldmFudCB0byBvdGhlciBicm93c2VycywgYXMgdGhlIGNvbnRyb2xzIGF0dHJpYnV0ZSBpcyByZXF1aXJlZCB0byBtYWtlIDxhdWRpbz4gZm9jdXNhYmxlXG4gICAgdmFyIGlzQXVkaW9XaXRob3V0Q29udHJvbHMgPSBub2RlTmFtZSA9PT0gJ2F1ZGlvJyAmJiAhZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2NvbnRyb2xzJyk7XG4gICAgaWYgKCFleGNlcHQuY3NzRGlzcGxheSAmJlxuICAgICAgICBub3REaXNwbGF5ZWQoaXNBdWRpb1dpdGhvdXRDb250cm9scyA/IF9wYXRoLnNsaWNlKDEpIDogX3BhdGgpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKCFleGNlcHQuY3NzVmlzaWJpbGl0eSAmJiBub3RWaXNpYmxlKF9wYXRoKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICghZXhjZXB0LmRldGFpbHNFbGVtZW50ICYmIGNvbGxhcHNlZFBhcmVudChfcGF0aCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoIWV4Y2VwdC5icm93c2luZ0NvbnRleHQpIHtcbiAgICAgICAgLy8gZWxlbWVudHMgd2l0aGluIGEgYnJvd3NpbmcgY29udGV4dCBhcmUgYWZmZWN0ZWQgYnkgdGhlXG4gICAgICAgIC8vIGJyb3dzaW5nIGNvbnRleHQgaG9zdCBlbGVtZW50J3MgdmlzaWJpbGl0eSBhbmQgdGFiaW5kZXhcbiAgICAgICAgdmFyIGZyYW1lRWxlbWVudCA9IGdldEZyYW1lRWxlbWVudChlbGVtZW50KTtcbiAgICAgICAgdmFyIF9pc1Zpc2libGUgPSBpc1Zpc2libGVSdWxlcy5leGNlcHQoZXhjZXB0KTtcbiAgICAgICAgaWYgKGZyYW1lRWxlbWVudCAmJiAhX2lzVmlzaWJsZShmcmFtZUVsZW1lbnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG59XG4vLyBiaW5kIGV4Y2VwdGlvbnMgdG8gYW4gaXRlcmF0b3IgY2FsbGJhY2tcbmlzVmlzaWJsZVJ1bGVzLmV4Y2VwdCA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZXhjZXB0ID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fTtcbiAgICB2YXIgaXNWaXNpYmxlID0gZnVuY3Rpb24gaXNWaXNpYmxlKGNvbnRleHQpIHtcbiAgICAgICAgcmV0dXJuIGlzVmlzaWJsZVJ1bGVzKHtcbiAgICAgICAgICAgIGNvbnRleHQ6IGNvbnRleHQsXG4gICAgICAgICAgICBleGNlcHQ6IGV4Y2VwdFxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIGlzVmlzaWJsZS5ydWxlcyA9IGlzVmlzaWJsZVJ1bGVzO1xuICAgIHJldHVybiBpc1Zpc2libGU7XG59O1xuLy8gcHJvdmlkZSBpc1Zpc2libGUoY29udGV4dCkgYXMgZGVmYXVsdCBpdGVyYXRvciBjYWxsYmFja1xudmFyIGlzVmlzaWJsZSA9IGlzVmlzaWJsZVJ1bGVzLmV4Y2VwdCh7fSk7XG5mdW5jdGlvbiBnZXRNYXBCeU5hbWUobmFtZSwgX2RvY3VtZW50KSB7XG4gICAgLy8gYXBwYXJlbnRseSBnZXRFbGVtZW50c0J5TmFtZSgpIGFsc28gY29uc2lkZXJzIGlkIGF0dHJpYnV0ZSBpbiBJRSAmIG9wZXJhXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0RvY3VtZW50L2dldEVsZW1lbnRzQnlOYW1lXG4gICAgdmFyIG1hcCA9IF9kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdtYXBbbmFtZT1cIicgKyAoMCwgY3NzX2VzY2FwZV8xW1wiZGVmYXVsdFwiXSkobmFtZSkgKyAnXCJdJyk7XG4gICAgcmV0dXJuIG1hcCB8fCBudWxsO1xufVxuZnVuY3Rpb24gZ2V0SW1hZ2VPZkFyZWEoZWxlbWVudCkge1xuICAgIHZhciBtYXAgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQ7XG4gICAgaWYgKCFtYXAubmFtZSB8fCBtYXAubm9kZU5hbWUudG9Mb3dlckNhc2UoKSAhPT0gJ21hcCcpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIC8vIE5PVEU6IGltYWdlIG1hcHMgY2FuIGFsc28gYmUgYXBwbGllZCB0byA8b2JqZWN0PiB3aXRoIGltYWdlIGNvbnRlbnQsXG4gICAgLy8gYnV0IG5vIGJyb3dzZXIgc3VwcG9ydHMgdGhpcyBhdCB0aGUgbW9tZW50XG4gICAgLy8gSFRNTDUgc3BlY2lmaWVzIEhUTUxNYXBFbGVtZW50LmltYWdlcyB0byBiZSBhbiBIVE1MQ29sbGVjdGlvbiBvZiBhbGxcbiAgICAvLyA8aW1nPiBhbmQgPG9iamVjdD4gcmVmZXJlbmNpbmcgdGhlIDxtYXA+IGVsZW1lbnQsIGJ1dCBubyBicm93c2VyIGltcGxlbWVudHMgdGhpc1xuICAgIC8vICAgaHR0cHM6Ly93d3cudzMub3JnL1RSL2h0bWw1L2VtYmVkZGVkLWNvbnRlbnQtMC5odG1sI3RoZS1tYXAtZWxlbWVudFxuICAgIC8vICAgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0hUTUxNYXBFbGVtZW50XG4gICAgLy8gdGhlIGltYWdlIG11c3QgYmUgdmFsaWQgYW5kIGxvYWRlZCBmb3IgdGhlIG1hcCB0byB0YWtlIGVmZmVjdFxuICAgIHZhciBfZG9jdW1lbnQgPSBnZXREb2N1bWVudChlbGVtZW50KTtcbiAgICByZXR1cm4gKF9kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbWdbdXNlbWFwPVwiIycgKyAoMCwgY3NzX2VzY2FwZV8xW1wiZGVmYXVsdFwiXSkobWFwLm5hbWUpICsgJ1wiXScpIHx8XG4gICAgICAgIG51bGwpO1xufVxudmFyIHN1cHBvcnRzJDIgPSB2b2lkIDA7XG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVE1ML0VsZW1lbnQvbWFwXG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVE1ML0VsZW1lbnQvaW1nI2F0dHItdXNlbWFwXG4vLyBodHRwczovL2dpdGh1Yi5jb20vanF1ZXJ5L2pxdWVyeS11aS9ibG9iL21hc3Rlci91aS9jb3JlLmpzI0w4OC1MMTA3XG5mdW5jdGlvbiBpc1ZhbGlkQXJlYShjb250ZXh0KSB7XG4gICAgaWYgKCFzdXBwb3J0cyQyKSB7XG4gICAgICAgIHN1cHBvcnRzJDIgPSBfc3VwcG9ydHMoKTtcbiAgICB9XG4gICAgdmFyIGVsZW1lbnQgPSBjb250ZXh0VG9FbGVtZW50KHtcbiAgICAgICAgbGFiZWw6ICdpcy92YWxpZC1hcmVhJyxcbiAgICAgICAgY29udGV4dDogY29udGV4dFxuICAgIH0pO1xuICAgIHZhciBub2RlTmFtZSA9IGVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAobm9kZU5hbWUgIT09ICdhcmVhJykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHZhciBoYXNUYWJpbmRleCA9IGVsZW1lbnQuaGFzQXR0cmlidXRlKCd0YWJpbmRleCcpO1xuICAgIGlmICghc3VwcG9ydHMkMi5mb2N1c0FyZWFUYWJpbmRleCAmJiBoYXNUYWJpbmRleCkge1xuICAgICAgICAvLyBCbGluayBhbmQgV2ViS2l0IGRvIG5vdCBjb25zaWRlciA8YXJlYSB0YWJpbmRleD1cIi0xXCIgaHJlZj1cIiN2b2lkXCI+IGZvY3VzYWJsZVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHZhciBpbWcgPSBnZXRJbWFnZU9mQXJlYShlbGVtZW50KTtcbiAgICBpZiAoIWltZyB8fCAhaXNWaXNpYmxlKGltZykpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvLyBGaXJlZm94IG9ubHkgYWxsb3dzIGZ1bGx5IGxvYWRlZCBpbWFnZXMgdG8gcmVmZXJlbmNlIGltYWdlIG1hcHNcbiAgICAvLyBodHRwczovL3N0ZXJlb2Nocm8ubWUvaWRlYXMvZGV0ZWN0aW5nLWJyb2tlbi1pbWFnZXMtanNcbiAgICBpZiAoIXN1cHBvcnRzJDIuZm9jdXNCcm9rZW5JbWFnZU1hcCAmJlxuICAgICAgICAoIWltZy5jb21wbGV0ZSB8fFxuICAgICAgICAgICAgIWltZy5uYXR1cmFsSGVpZ2h0IHx8XG4gICAgICAgICAgICBpbWcub2Zmc2V0V2lkdGggPD0gMCB8fFxuICAgICAgICAgICAgaW1nLm9mZnNldEhlaWdodCA8PSAwKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIC8vIEZpcmVmb3ggc3VwcG9ydHMuY2FuIGZvY3VzIGFyZWEgZWxlbWVudHMgZXZlbiBpZiB0aGV5IGRvbid0IGhhdmUgYW4gaHJlZiBhdHRyaWJ1dGVcbiAgICBpZiAoIXN1cHBvcnRzJDIuZm9jdXNBcmVhV2l0aG91dEhyZWYgJiYgIWVsZW1lbnQuaHJlZikge1xuICAgICAgICAvLyBJbnRlcm5ldCBleHBsb3JlciBzdXBwb3J0cy5jYW4gZm9jdXMgYXJlYSBlbGVtZW50cyB3aXRob3V0IGhyZWYgaWYgZWl0aGVyXG4gICAgICAgIC8vIHRoZSBhcmVhIGVsZW1lbnQgb3IgdGhlIGltYWdlIGVsZW1lbnQgaGFzIGEgdGFiaW5kZXggYXR0cmlidXRlXG4gICAgICAgIHJldHVybiAoKHN1cHBvcnRzJDIuZm9jdXNBcmVhVGFiaW5kZXggJiYgaGFzVGFiaW5kZXgpIHx8XG4gICAgICAgICAgICAoc3VwcG9ydHMkMi5mb2N1c0FyZWFJbWdUYWJpbmRleCAmJiBpbWcuaGFzQXR0cmlidXRlKCd0YWJpbmRleCcpKSk7XG4gICAgfVxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0hUTUwvRWxlbWVudC9pbWcjYXR0ci11c2VtYXBcbiAgICB2YXIgY2hpbGRPZkludGVyYWN0aXZlID0gZ2V0UGFyZW50cyh7IGNvbnRleHQ6IGltZyB9KVxuICAgICAgICAuc2xpY2UoMSlcbiAgICAgICAgLnNvbWUoZnVuY3Rpb24gKF9lbGVtZW50KSB7XG4gICAgICAgIHZhciBuYW1lID0gX2VsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgcmV0dXJuIG5hbWUgPT09ICdidXR0b24nIHx8IG5hbWUgPT09ICdhJztcbiAgICB9KTtcbiAgICBpZiAoY2hpbGRPZkludGVyYWN0aXZlKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG59XG52YXIgc3VwcG9ydHMkMyA9IHZvaWQgMDtcbi8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9odG1sNS9kaXNhYmxlZC1lbGVtZW50cy5odG1sI2NvbmNlcHQtZWxlbWVudC1kaXNhYmxlZFxudmFyIGRpc2FibGVkRWxlbWVudHNQYXR0ZXJuID0gdm9pZCAwO1xudmFyIGRpc2FibGVkRWxlbWVudHMgPSB7XG4gICAgaW5wdXQ6IHRydWUsXG4gICAgc2VsZWN0OiB0cnVlLFxuICAgIHRleHRhcmVhOiB0cnVlLFxuICAgIGJ1dHRvbjogdHJ1ZSxcbiAgICBmaWVsZHNldDogdHJ1ZSxcbiAgICBmb3JtOiB0cnVlXG59O1xuZnVuY3Rpb24gaXNOYXRpdmVEaXNhYmxlZFN1cHBvcnRlZChjb250ZXh0KSB7XG4gICAgaWYgKCFzdXBwb3J0cyQzKSB7XG4gICAgICAgIHN1cHBvcnRzJDMgPSBfc3VwcG9ydHMoKTtcbiAgICAgICAgaWYgKHN1cHBvcnRzJDMuZm9jdXNGaWVsZHNldERpc2FibGVkKSB7XG4gICAgICAgICAgICBkZWxldGUgZGlzYWJsZWRFbGVtZW50cy5maWVsZHNldDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3VwcG9ydHMkMy5mb2N1c0Zvcm1EaXNhYmxlZCkge1xuICAgICAgICAgICAgZGVsZXRlIGRpc2FibGVkRWxlbWVudHMuZm9ybTtcbiAgICAgICAgfVxuICAgICAgICBkaXNhYmxlZEVsZW1lbnRzUGF0dGVybiA9IG5ldyBSZWdFeHAoJ14oJyArIE9iamVjdC5rZXlzKGRpc2FibGVkRWxlbWVudHMpLmpvaW4oJ3wnKSArICcpJCcpO1xuICAgIH1cbiAgICB2YXIgZWxlbWVudCA9IGNvbnRleHRUb0VsZW1lbnQoe1xuICAgICAgICBsYWJlbDogJ2lzL25hdGl2ZS1kaXNhYmxlZC1zdXBwb3J0ZWQnLFxuICAgICAgICBjb250ZXh0OiBjb250ZXh0XG4gICAgfSk7XG4gICAgdmFyIG5vZGVOYW1lID0gZWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIHJldHVybiBCb29sZWFuKGRpc2FibGVkRWxlbWVudHNQYXR0ZXJuLnRlc3Qobm9kZU5hbWUpKTtcbn1cbnZhciBzdXBwb3J0cyQ0ID0gdm9pZCAwO1xuZnVuY3Rpb24gaXNEaXNhYmxlZEZpZWxkc2V0KGVsZW1lbnQpIHtcbiAgICB2YXIgbm9kZU5hbWUgPSBlbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgcmV0dXJuIG5vZGVOYW1lID09PSAnZmllbGRzZXQnICYmIGVsZW1lbnQuZGlzYWJsZWQ7XG59XG5mdW5jdGlvbiBpc0Rpc2FibGVkRm9ybShlbGVtZW50KSB7XG4gICAgdmFyIG5vZGVOYW1lID0gZWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIHJldHVybiBub2RlTmFtZSA9PT0gJ2Zvcm0nICYmIGVsZW1lbnQuZGlzYWJsZWQ7XG59XG5mdW5jdGlvbiBpc0Rpc2FibGVkKGNvbnRleHQpIHtcbiAgICBpZiAoIXN1cHBvcnRzJDQpIHtcbiAgICAgICAgc3VwcG9ydHMkNCA9IF9zdXBwb3J0cygpO1xuICAgIH1cbiAgICB2YXIgZWxlbWVudCA9IGNvbnRleHRUb0VsZW1lbnQoe1xuICAgICAgICBsYWJlbDogJ2lzL2Rpc2FibGVkJyxcbiAgICAgICAgY29udGV4dDogY29udGV4dFxuICAgIH0pO1xuICAgIGlmIChlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnZGF0YS1hbGx5LWRpc2FibGVkJykpIHtcbiAgICAgICAgLy8gdHJlYXQgYWxseSdzIGVsZW1lbnQvZGlzYWJsZWQgbGlrZSB0aGUgRE9NIG5hdGl2ZSBlbGVtZW50LmRpc2FibGVkXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoIWlzTmF0aXZlRGlzYWJsZWRTdXBwb3J0ZWQoZWxlbWVudCkpIHtcbiAgICAgICAgLy8gbm9uLWZvcm0gZWxlbWVudHMgZG8gbm90IHN1cHBvcnQgdGhlIGRpc2FibGVkIGF0dHJpYnV0ZVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChlbGVtZW50LmRpc2FibGVkKSB7XG4gICAgICAgIC8vIHRoZSBlbGVtZW50IGl0c2VsZiBpcyBkaXNhYmxlZFxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgdmFyIHBhcmVudHMgPSBnZXRQYXJlbnRzKHsgY29udGV4dDogZWxlbWVudCB9KTtcbiAgICBpZiAocGFyZW50cy5zb21lKGlzRGlzYWJsZWRGaWVsZHNldCkpIHtcbiAgICAgICAgLy8gYSBwYXJlbnRhbCA8ZmllbGRzZXQ+IGlzIGRpc2FibGQgYW5kIGluaGVyaXRzIHRoZSBzdGF0ZSBvbnRvIHRoaXMgZWxlbWVudFxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKCFzdXBwb3J0cyQ0LmZvY3VzRm9ybURpc2FibGVkICYmIHBhcmVudHMuc29tZShpc0Rpc2FibGVkRm9ybSkpIHtcbiAgICAgICAgLy8gYSBwYXJlbnRhbCA8Zm9ybT4gaXMgZGlzYWJsZCBhbmQgaW5oZXJpdHMgdGhlIHN0YXRlIG9udG8gdGhpcyBlbGVtZW50XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59XG5mdW5jdGlvbiBpc09ubHlUYWJiYWJsZVJ1bGVzKCkge1xuICAgIHZhciBfcmVmID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fSwgY29udGV4dCA9IF9yZWYuY29udGV4dCwgX3JlZiRleGNlcHQgPSBfcmVmLmV4Y2VwdCwgZXhjZXB0ID0gX3JlZiRleGNlcHQgPT09IHVuZGVmaW5lZFxuICAgICAgICA/IHtcbiAgICAgICAgICAgIG9ubHlGb2N1c2FibGVCcm93c2luZ0NvbnRleHQ6IGZhbHNlLFxuICAgICAgICAgICAgdmlzaWJsZTogZmFsc2VcbiAgICAgICAgfVxuICAgICAgICA6IF9yZWYkZXhjZXB0O1xuICAgIHZhciBlbGVtZW50ID0gY29udGV4dFRvRWxlbWVudCh7XG4gICAgICAgIGxhYmVsOiAnaXMvb25seS10YWJiYWJsZScsXG4gICAgICAgIHJlc29sdmVEb2N1bWVudDogdHJ1ZSxcbiAgICAgICAgY29udGV4dDogY29udGV4dFxuICAgIH0pO1xuICAgIGlmICghZXhjZXB0LnZpc2libGUgJiYgIWlzVmlzaWJsZShlbGVtZW50KSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICghZXhjZXB0Lm9ubHlGb2N1c2FibGVCcm93c2luZ0NvbnRleHQgJiZcbiAgICAgICAgKHBsYXRmb3JtLmlzLkdFQ0tPIHx8IHBsYXRmb3JtLmlzLlRSSURFTlQgfHwgcGxhdGZvcm0uaXMuRURHRSkpIHtcbiAgICAgICAgdmFyIGZyYW1lRWxlbWVudCA9IGdldEZyYW1lRWxlbWVudChlbGVtZW50KTtcbiAgICAgICAgaWYgKGZyYW1lRWxlbWVudCkge1xuICAgICAgICAgICAgaWYgKHRhYmluZGV4VmFsdWUoZnJhbWVFbGVtZW50KSA8IDApIHtcbiAgICAgICAgICAgICAgICAvLyBpZnJhbWVbdGFiaW5kZXg9XCItMVwiXSBhbmQgb2JqZWN0W3RhYmluZGV4PVwiLTFcIl0gaW5oZXJpdCB0aGVcbiAgICAgICAgICAgICAgICAvLyB0YWJiYWJsZSBkZW1vdGlvbiBvbnRvIGVsZW1lbnRzIG9mIHRoZWlyIGJyb3dzaW5nIGNvbnRleHRzXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHZhciBub2RlTmFtZSA9IGVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICB2YXIgdGFiaW5kZXggPSB0YWJpbmRleFZhbHVlKGVsZW1lbnQpO1xuICAgIGlmIChub2RlTmFtZSA9PT0gJ2xhYmVsJyAmJiBwbGF0Zm9ybS5pcy5HRUNLTykge1xuICAgICAgICAvLyBGaXJlZm94IGNhbm5vdCBmb2N1cywgYnV0IHRhYiB0bzogbGFiZWxbdGFiaW5kZXg9MF1cbiAgICAgICAgcmV0dXJuIHRhYmluZGV4ICE9PSBudWxsICYmIHRhYmluZGV4ID49IDA7XG4gICAgfVxuICAgIC8vIFNWRyBFbGVtZW50cyB3ZXJlIGtleWJvYXJkIGZvY3VzYWJsZSBidXQgbm90IHNjcmlwdCBmb2N1c2FibGUgYmVmb3JlIEZpcmVmb3ggNTEuXG4gICAgLy8gRmlyZWZveCA1MSBhZGRlZCB0aGUgZm9jdXMgbWFuYWdlbWVudCBET00gQVBJICguZm9jdXMgYW5kIC5ibHVyKSB0byBTVkdFbGVtZW50LFxuICAgIC8vIHNlZSBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD03Nzg2NTRcbiAgICBpZiAocGxhdGZvcm0uaXMuR0VDS08gJiYgZWxlbWVudC5vd25lclNWR0VsZW1lbnQgJiYgIWVsZW1lbnQuZm9jdXMpIHtcbiAgICAgICAgaWYgKG5vZGVOYW1lID09PSAnYScgJiYgZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3hsaW5rOmhyZWYnKSkge1xuICAgICAgICAgICAgLy8gYW55IGZvY3VzYWJsZSBjaGlsZCBvZiA8c3ZnPiBjYW5ub3QgYmUgZm9jdXNlZCwgYnV0IHRhYmJlZCB0b1xuICAgICAgICAgICAgaWYgKHBsYXRmb3JtLmlzLkdFQ0tPKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuLy8gYmluZCBleGNlcHRpb25zIHRvIGFuIGl0ZXJhdG9yIGNhbGxiYWNrXG5pc09ubHlUYWJiYWJsZVJ1bGVzLmV4Y2VwdCA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZXhjZXB0ID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fTtcbiAgICB2YXIgaXNPbmx5VGFiYmFibGUgPSBmdW5jdGlvbiBpc09ubHlUYWJiYWJsZShjb250ZXh0KSB7XG4gICAgICAgIHJldHVybiBpc09ubHlUYWJiYWJsZVJ1bGVzKHtcbiAgICAgICAgICAgIGNvbnRleHQ6IGNvbnRleHQsXG4gICAgICAgICAgICBleGNlcHQ6IGV4Y2VwdFxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIGlzT25seVRhYmJhYmxlLnJ1bGVzID0gaXNPbmx5VGFiYmFibGVSdWxlcztcbiAgICByZXR1cm4gaXNPbmx5VGFiYmFibGU7XG59O1xuLy8gcHJvdmlkZSBpc09ubHlUYWJiYWJsZShjb250ZXh0KSBhcyBkZWZhdWx0IGl0ZXJhdG9yIGNhbGxiYWNrXG52YXIgaXNPbmx5VGFiYmFibGUgPSBpc09ubHlUYWJiYWJsZVJ1bGVzLmV4Y2VwdCh7fSk7XG52YXIgc3VwcG9ydHMkNSA9IHZvaWQgMDtcbmZ1bmN0aW9uIGlzT25seUZvY3VzUmVsZXZhbnQoZWxlbWVudCkge1xuICAgIHZhciBub2RlTmFtZSA9IGVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAobm9kZU5hbWUgPT09ICdlbWJlZCcgfHwgbm9kZU5hbWUgPT09ICdrZXlnZW4nKSB7XG4gICAgICAgIC8vIGVtYmVkIGlzIGNvbnNpZGVyZWQgZm9jdXMtcmVsZXZhbnQgYnV0IG5vdCBmb2N1c2FibGVcbiAgICAgICAgLy8gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9tZWRpYWxpemUvYWxseS5qcy9pc3N1ZXMvODJcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHZhciBfdGFiaW5kZXggPSB0YWJpbmRleFZhbHVlKGVsZW1lbnQpO1xuICAgIGlmIChlbGVtZW50LnNoYWRvd1Jvb3QgJiYgX3RhYmluZGV4ID09PSBudWxsKSB7XG4gICAgICAgIC8vIFNoYWRvd0RPTSBob3N0IGVsZW1lbnRzICptYXkqIHJlY2VpdmUgZm9jdXNcbiAgICAgICAgLy8gZXZlbiB0aG91Z2ggdGhleSBhcmUgbm90IGNvbnNpZGVyZWQgZm9jdWFibGVcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChub2RlTmFtZSA9PT0gJ2xhYmVsJykge1xuICAgICAgICAvLyA8bGFiZWwgdGFiaW5kZXg9XCIwXCI+IGlzIG9ubHkgdGFiYmFibGUgaW4gRmlyZWZveCwgbm90IHNjcmlwdC1mb2N1c2FibGVcbiAgICAgICAgLy8gdGhlcmUncyBubyB3YXkgdG8gbWFrZSBhbiBlbGVtZW50IGZvY3VzYWJsZSBvdGhlciB0aGFuIGJ5IGFkZGluZyBhIHRhYmluZGV4LFxuICAgICAgICAvLyBhbmQgZm9jdXMgYmVoYXZpb3Igb2YgdGhlIGxhYmVsIGVsZW1lbnQgc2VlbXMgaGFyZC13aXJlZCB0byBpZ25vcmUgdGFiaW5kZXhcbiAgICAgICAgLy8gaW4gc29tZSBicm93c2VycyAobGlrZSBHZWNrbywgQmxpbmsgYW5kIFdlYktpdClcbiAgICAgICAgcmV0dXJuICFzdXBwb3J0cyQ1LmZvY3VzTGFiZWxUYWJpbmRleCB8fCBfdGFiaW5kZXggPT09IG51bGw7XG4gICAgfVxuICAgIGlmIChub2RlTmFtZSA9PT0gJ2xlZ2VuZCcpIHtcbiAgICAgICAgcmV0dXJuIF90YWJpbmRleCA9PT0gbnVsbDtcbiAgICB9XG4gICAgaWYgKHN1cHBvcnRzJDUuZm9jdXNTdmdGb2N1c2FibGVBdHRyaWJ1dGUgJiZcbiAgICAgICAgKGVsZW1lbnQub3duZXJTVkdFbGVtZW50IHx8IG5vZGVOYW1lID09PSAnc3ZnJykpIHtcbiAgICAgICAgLy8gSW50ZXJuZXQgRXhwbG9yZXIgdW5kZXJzdGFuZHMgdGhlIGZvY3VzYWJsZSBhdHRyaWJ1dGUgaW50cm9kdWNlZCBpbiBTVkcgVGlueSAxLjJcbiAgICAgICAgdmFyIGZvY3VzYWJsZUF0dHJpYnV0ZSA9IGVsZW1lbnQuZ2V0QXR0cmlidXRlKCdmb2N1c2FibGUnKTtcbiAgICAgICAgcmV0dXJuIGZvY3VzYWJsZUF0dHJpYnV0ZSAmJiBmb2N1c2FibGVBdHRyaWJ1dGUgPT09ICdmYWxzZSc7XG4gICAgfVxuICAgIGlmIChub2RlTmFtZSA9PT0gJ2ltZycgJiYgZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3VzZW1hcCcpKSB7XG4gICAgICAgIC8vIEdlY2tvLCBUcmlkZW50IGFuZCBFZGdlIGRvIG5vdCBhbGxvdyBhbiBpbWFnZSB3aXRoIGFuIGltYWdlIG1hcCBhbmQgdGFiaW5kZXggdG8gYmUgZm9jdXNlZCxcbiAgICAgICAgLy8gaXQgYXBwZWFycyB0aGUgdGFiaW5kZXggaXMgb3ZlcnJ1bGVkIHNvIGZvY3VzIGlzIHN0aWxsIGZvcndhcmRlZCB0byB0aGUgPG1hcD5cbiAgICAgICAgcmV0dXJuIF90YWJpbmRleCA9PT0gbnVsbCB8fCAhc3VwcG9ydHMkNS5mb2N1c0ltZ1VzZW1hcFRhYmluZGV4O1xuICAgIH1cbiAgICBpZiAobm9kZU5hbWUgPT09ICdhcmVhJykge1xuICAgICAgICAvLyBhbGwgPGFyZWE+cyBhcmUgY29uc2lkZXJlZCByZWxldmFudCxcbiAgICAgICAgLy8gYnV0IG9ubHkgdGhlIHZhbGlkIDxhcmVhPnMgYXJlIGZvY3VzYWJsZVxuICAgICAgICByZXR1cm4gIWlzVmFsaWRBcmVhKGVsZW1lbnQpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59XG5mdW5jdGlvbiBpc0ZvY3VzYWJsZVJ1bGVzKCkge1xuICAgIHZhciBfcmVmID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fSwgY29udGV4dCA9IF9yZWYuY29udGV4dCwgX3JlZiRleGNlcHQgPSBfcmVmLmV4Y2VwdCwgZXhjZXB0ID0gX3JlZiRleGNlcHQgPT09IHVuZGVmaW5lZFxuICAgICAgICA/IHtcbiAgICAgICAgICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICAgICAgICAgIHZpc2libGU6IGZhbHNlLFxuICAgICAgICAgICAgb25seVRhYmJhYmxlOiBmYWxzZVxuICAgICAgICB9XG4gICAgICAgIDogX3JlZiRleGNlcHQ7XG4gICAgaWYgKCFzdXBwb3J0cyQ1KSB7XG4gICAgICAgIHN1cHBvcnRzJDUgPSBfc3VwcG9ydHMoKTtcbiAgICB9XG4gICAgdmFyIF9pc09ubHlUYWJiYWJsZSA9IGlzT25seVRhYmJhYmxlLnJ1bGVzLmV4Y2VwdCh7XG4gICAgICAgIG9ubHlGb2N1c2FibGVCcm93c2luZ0NvbnRleHQ6IHRydWUsXG4gICAgICAgIHZpc2libGU6IGV4Y2VwdC52aXNpYmxlXG4gICAgfSk7XG4gICAgdmFyIGVsZW1lbnQgPSBjb250ZXh0VG9FbGVtZW50KHtcbiAgICAgICAgbGFiZWw6ICdpcy9mb2N1c2FibGUnLFxuICAgICAgICByZXNvbHZlRG9jdW1lbnQ6IHRydWUsXG4gICAgICAgIGNvbnRleHQ6IGNvbnRleHRcbiAgICB9KTtcbiAgICB2YXIgZm9jdXNSZWxldmFudCA9IGlzRm9jdXNSZWxldmFudC5ydWxlcyh7XG4gICAgICAgIGNvbnRleHQ6IGVsZW1lbnQsXG4gICAgICAgIGV4Y2VwdDogZXhjZXB0XG4gICAgfSk7XG4gICAgaWYgKCFmb2N1c1JlbGV2YW50IHx8IGlzT25seUZvY3VzUmVsZXZhbnQoZWxlbWVudCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoIWV4Y2VwdC5kaXNhYmxlZCAmJiBpc0Rpc2FibGVkKGVsZW1lbnQpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKCFleGNlcHQub25seVRhYmJhYmxlICYmIF9pc09ubHlUYWJiYWJsZShlbGVtZW50KSkge1xuICAgICAgICAvLyBzb21lIGVsZW1lbnRzIG1heSBiZSBrZXlib2FyZCBmb2N1c2FibGUsIGJ1dCBub3Qgc2NyaXB0IGZvY3VzYWJsZVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIC8vIGVsZW1lbnRzIHRoYXQgYXJlIG5vdCByZW5kZXJlZCwgY2Fubm90IGJlIGZvY3VzZWRcbiAgICBpZiAoIWV4Y2VwdC52aXNpYmxlKSB7XG4gICAgICAgIHZhciB2aXNpYmlsaXR5T3B0aW9ucyA9IHtcbiAgICAgICAgICAgIGNvbnRleHQ6IGVsZW1lbnQsXG4gICAgICAgICAgICBleGNlcHQ6IHt9XG4gICAgICAgIH07XG4gICAgICAgIGlmIChzdXBwb3J0cyQ1LmZvY3VzSW5IaWRkZW5JZnJhbWUpIHtcbiAgICAgICAgICAgIC8vIFdlYktpdCBhbmQgQmxpbmsgY2FuIGZvY3VzIGNvbnRlbnQgaW4gaGlkZGVuIDxpZnJhbWU+IGFuZCA8b2JqZWN0PlxuICAgICAgICAgICAgdmlzaWJpbGl0eU9wdGlvbnMuZXhjZXB0LmJyb3dzaW5nQ29udGV4dCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN1cHBvcnRzJDUuZm9jdXNPYmplY3RTdmdIaWRkZW4pIHtcbiAgICAgICAgICAgIC8vIEJsaW5rIGFsbG93cyBmb2N1c2luZyB0aGUgb2JqZWN0IGVsZW1lbnQsIGV2ZW4gaWYgaXQgaGFzIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIC8vIEBicm93c2VyLWlzc3VlIEJsaW5rIGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD01ODYxOTFcbiAgICAgICAgICAgIHZhciBfbm9kZU5hbWUyID0gZWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgaWYgKF9ub2RlTmFtZTIgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eU9wdGlvbnMuZXhjZXB0LmNzc1Zpc2liaWxpdHkgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghaXNWaXNpYmxlLnJ1bGVzKHZpc2liaWxpdHlPcHRpb25zKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHZhciBmcmFtZUVsZW1lbnQgPSBnZXRGcmFtZUVsZW1lbnQoZWxlbWVudCk7XG4gICAgaWYgKGZyYW1lRWxlbWVudCkge1xuICAgICAgICB2YXIgX25vZGVOYW1lID0gZnJhbWVFbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmIChfbm9kZU5hbWUgPT09ICdvYmplY3QnICYmICFzdXBwb3J0cyQ1LmZvY3VzSW5aZXJvRGltZW5zaW9uT2JqZWN0KSB7XG4gICAgICAgICAgICBpZiAoIWZyYW1lRWxlbWVudC5vZmZzZXRXaWR0aCB8fCAhZnJhbWVFbGVtZW50Lm9mZnNldEhlaWdodCkge1xuICAgICAgICAgICAgICAgIC8vIFdlYktpdCBjYW4gbm90IGZvY3VzIGNvbnRlbnQgaW4gPG9iamVjdD4gaWYgaXQgZG9lc24ndCBoYXZlIGRpbWVuc2lvbnNcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgdmFyIG5vZGVOYW1lID0gZWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIGlmIChub2RlTmFtZSA9PT0gJ3N2ZycgJiZcbiAgICAgICAgc3VwcG9ydHMkNS5mb2N1c1N2Z0luSWZyYW1lICYmXG4gICAgICAgICFmcmFtZUVsZW1lbnQgJiZcbiAgICAgICAgZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JykgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn1cbi8vIGJpbmQgZXhjZXB0aW9ucyB0byBhbiBpdGVyYXRvciBjYWxsYmFja1xuaXNGb2N1c2FibGVSdWxlcy5leGNlcHQgPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGV4Y2VwdCA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge307XG4gICAgdmFyIGlzRm9jdXNhYmxlID0gZnVuY3Rpb24gaXNGb2N1c2FibGUoY29udGV4dCkge1xuICAgICAgICByZXR1cm4gaXNGb2N1c2FibGVSdWxlcyh7XG4gICAgICAgICAgICBjb250ZXh0OiBjb250ZXh0LFxuICAgICAgICAgICAgZXhjZXB0OiBleGNlcHRcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBpc0ZvY3VzYWJsZS5ydWxlcyA9IGlzRm9jdXNhYmxlUnVsZXM7XG4gICAgcmV0dXJuIGlzRm9jdXNhYmxlO1xufTtcbi8vIHByb3ZpZGUgaXNGb2N1c1JlbGV2YW50KGNvbnRleHQpIGFzIGRlZmF1bHQgaXRlcmF0b3IgY2FsbGJhY2tcbnZhciBpc0ZvY3VzYWJsZSA9IGlzRm9jdXNhYmxlUnVsZXMuZXhjZXB0KHt9KTtcbmZ1bmN0aW9uIGNyZWF0ZUZpbHRlcihjb25kaXRpb24pIHtcbiAgICAvLyBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL05vZGVGaWx0ZXJcbiAgICB2YXIgZmlsdGVyID0gZnVuY3Rpb24gZmlsdGVyKG5vZGUpIHtcbiAgICAgICAgaWYgKG5vZGUuc2hhZG93Um9vdCkge1xuICAgICAgICAgICAgLy8gcmV0dXJuIFNoYWRvd1Jvb3QgZWxlbWVudHMgcmVnYXJkbGVzcyBvZiB0aGVtIGJlaW5nIGZvY3VzYWJsZSxcbiAgICAgICAgICAgIC8vIHNvIHRoZXkgY2FuIGJlIHdhbGtlZCByZWN1cnNpdmVseSBsYXRlclxuICAgICAgICAgICAgcmV0dXJuIE5vZGVGaWx0ZXIuRklMVEVSX0FDQ0VQVDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY29uZGl0aW9uKG5vZGUpKSB7XG4gICAgICAgICAgICAvLyBmaW5kcyBlbGVtZW50cyB0aGF0IGNvdWxkIGhhdmUgYmVlbiBmb3VuZCBieSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKClcbiAgICAgICAgICAgIHJldHVybiBOb2RlRmlsdGVyLkZJTFRFUl9BQ0NFUFQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIE5vZGVGaWx0ZXIuRklMVEVSX1NLSVA7XG4gICAgfTtcbiAgICAvLyBJRSByZXF1aXJlcyBhIGZ1bmN0aW9uLCBCcm93c2VycyByZXF1aXJlIHthY2NlcHROb2RlOiBmdW5jdGlvbn1cbiAgICAvLyBzZWUgaHR0cDovL3d3dy5iZW5uYWRlbC5jb20vYmxvZy8yNjA3LWZpbmRpbmctaHRtbC1jb21tZW50LW5vZGVzLWluLXRoZS1kb20tdXNpbmctdHJlZXdhbGtlci5odG1cbiAgICBmaWx0ZXIuYWNjZXB0Tm9kZSA9IGZpbHRlcjtcbiAgICByZXR1cm4gZmlsdGVyO1xufVxudmFyIFBvc3NpYmx5Rm9jdXNhYmxlRmlsdGVyID0gY3JlYXRlRmlsdGVyKGlzRm9jdXNSZWxldmFudCk7XG5mdW5jdGlvbiBxdWVyeUZvY3VzYWJsZVN0cmljdCgpIHtcbiAgICB2YXIgX3JlZiA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge30sIGNvbnRleHQgPSBfcmVmLmNvbnRleHQsIGluY2x1ZGVDb250ZXh0ID0gX3JlZi5pbmNsdWRlQ29udGV4dCwgaW5jbHVkZU9ubHlUYWJiYWJsZSA9IF9yZWYuaW5jbHVkZU9ubHlUYWJiYWJsZSwgc3RyYXRlZ3kgPSBfcmVmLnN0cmF0ZWd5O1xuICAgIGlmICghY29udGV4dCkge1xuICAgICAgICBjb250ZXh0ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuICAgIH1cbiAgICB2YXIgX2lzRm9jdXNhYmxlID0gaXNGb2N1c2FibGUucnVsZXMuZXhjZXB0KHtcbiAgICAgICAgb25seVRhYmJhYmxlOiBpbmNsdWRlT25seVRhYmJhYmxlXG4gICAgfSk7XG4gICAgdmFyIF9kb2N1bWVudCA9IGdldERvY3VtZW50KGNvbnRleHQpO1xuICAgIC8vIHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRG9jdW1lbnQvY3JlYXRlVHJlZVdhbGtlclxuICAgIHZhciB3YWxrZXIgPSBfZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihcbiAgICAvLyByb290IGVsZW1lbnQgdG8gc3RhcnQgc2VhcmNoIGluXG4gICAgY29udGV4dCwgXG4gICAgLy8gZWxlbWVudCB0eXBlIGZpbHRlclxuICAgIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBcbiAgICAvLyBjdXN0b20gTm9kZUZpbHRlciBmaWx0ZXJcbiAgICBzdHJhdGVneSA9PT0gJ2FsbCcgPyBQb3NzaWJseUZvY3VzYWJsZUZpbHRlciA6IGNyZWF0ZUZpbHRlcihfaXNGb2N1c2FibGUpLCBcbiAgICAvLyBkZXByZWNhdGVkLCBidXQgSUUgcmVxdWlyZXMgaXRcbiAgICBmYWxzZSk7XG4gICAgdmFyIGxpc3QgPSBbXTtcbiAgICB3aGlsZSAod2Fsa2VyLm5leHROb2RlKCkpIHtcbiAgICAgICAgaWYgKHdhbGtlci5jdXJyZW50Tm9kZS5zaGFkb3dSb290KSB7XG4gICAgICAgICAgICBpZiAoX2lzRm9jdXNhYmxlKHdhbGtlci5jdXJyZW50Tm9kZSkpIHtcbiAgICAgICAgICAgICAgICBsaXN0LnB1c2god2Fsa2VyLmN1cnJlbnROb2RlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxpc3QgPSBsaXN0LmNvbmNhdChxdWVyeUZvY3VzYWJsZVN0cmljdCh7XG4gICAgICAgICAgICAgICAgY29udGV4dDogd2Fsa2VyLmN1cnJlbnROb2RlLnNoYWRvd1Jvb3QsXG4gICAgICAgICAgICAgICAgaW5jbHVkZU9ubHlUYWJiYWJsZTogaW5jbHVkZU9ubHlUYWJiYWJsZSxcbiAgICAgICAgICAgICAgICBzdHJhdGVneTogc3RyYXRlZ3lcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGxpc3QucHVzaCh3YWxrZXIuY3VycmVudE5vZGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIGFkZCBjb250ZXh0IGlmIHJlcXVlc3RlZCBhbmQgZm9jdXNhYmxlXG4gICAgaWYgKGluY2x1ZGVDb250ZXh0KSB7XG4gICAgICAgIGlmIChzdHJhdGVneSA9PT0gJ2FsbCcpIHtcbiAgICAgICAgICAgIGlmIChpc0ZvY3VzUmVsZXZhbnQoY29udGV4dCkpIHtcbiAgICAgICAgICAgICAgICBsaXN0LnVuc2hpZnQoY29udGV4dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoX2lzRm9jdXNhYmxlKGNvbnRleHQpKSB7XG4gICAgICAgICAgICBsaXN0LnVuc2hpZnQoY29udGV4dCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGxpc3Q7XG59XG4vLyBOT1RFOiB0aGlzIHNlbGVjdG9yIE1VU1QgKm5ldmVyKiBiZSB1c2VkIGRpcmVjdGx5LFxudmFyIHN1cHBvcnRzJDYgPSB2b2lkIDA7XG52YXIgc2VsZWN0b3IkMSA9IHZvaWQgMDtcbmZ1bmN0aW9uIHNlbGVjdG9yJDIoKSB7XG4gICAgaWYgKCFzdXBwb3J0cyQ2KSB7XG4gICAgICAgIHN1cHBvcnRzJDYgPSBfc3VwcG9ydHMoKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBzZWxlY3RvciQxID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gc2VsZWN0b3IkMTtcbiAgICB9XG4gICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2h0bWw1L2VkaXRpbmcuaHRtbCNzZXF1ZW50aWFsLWZvY3VzLW5hdmlnYXRpb24tYW5kLXRoZS10YWJpbmRleC1hdHRyaWJ1dGVcbiAgICBzZWxlY3RvciQxID1cbiAgICAgICAgJycgK1xuICAgICAgICAgICAgLy8gSUUxMSBzdXBwb3J0cy5jYW4gZm9jdXMgPHRhYmxlPiBhbmQgPHRkPlxuICAgICAgICAgICAgKHN1cHBvcnRzJDYuZm9jdXNUYWJsZSA/ICd0YWJsZSwgdGQsJyA6ICcnKSArXG4gICAgICAgICAgICAvLyBJRTExIHN1cHBvcnRzLmNhbiBmb2N1cyA8ZmllbGRzZXQ+XG4gICAgICAgICAgICAoc3VwcG9ydHMkNi5mb2N1c0ZpZWxkc2V0ID8gJ2ZpZWxkc2V0LCcgOiAnJykgK1xuICAgICAgICAgICAgLy8gTmFtZXNwYWNlIHByb2JsZW1zIG9mIFt4bGluazpocmVmXSBleHBsYWluZWQgaW4gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzIzMDQ3ODg4LzUxNTEyNFxuICAgICAgICAgICAgLy8gc3ZnIGFbKnxocmVmXSBkb2VzIG5vdCBtYXRjaCBpbiBJRTksIGJ1dCBzaW5jZSB3ZSdyZSBmaWx0ZXJpbmdcbiAgICAgICAgICAgIC8vIHRocm91Z2ggaXMvZm9jdXNhYmxlIHdlIGNhbiBpbmNsdWRlIGFsbCA8YT4gZnJvbSBTVkdcbiAgICAgICAgICAgICdzdmcgYSwnICtcbiAgICAgICAgICAgIC8vIG1heSBiZWhhdmUgYXMgJ3N2Zywgc3ZnICosJyBpbiBjaHJvbWUgYXMgKmV2ZXJ5KiBzdmcgZWxlbWVudCB3aXRoIGEgZm9jdXMgZXZlbnQgbGlzdGVuZXIgaXMgZm9jdXNhYmxlXG4gICAgICAgICAgICAvLyBuYXZpZ2F0aW9uYWwgZWxlbWVudHNcbiAgICAgICAgICAgICdhW2hyZWZdLCcgK1xuICAgICAgICAgICAgLy8gdmFsaWRpdHkgZGV0ZXJtaW5lZCBieSBpcy92YWxpZC1hcmVhLmpzXG4gICAgICAgICAgICAnYXJlYVtocmVmXSwnICtcbiAgICAgICAgICAgIC8vIHZhbGlkaXR5IGRldGVybWluZWQgYnkgaXMvZGlzYWJsZWQuanNcbiAgICAgICAgICAgICdpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSwgYnV0dG9uLCcgK1xuICAgICAgICAgICAgLy8gYnJvd3NpbmcgY29udGV4dCBjb250YWluZXJzXG4gICAgICAgICAgICAnaWZyYW1lLCBvYmplY3QsIGVtYmVkLCcgK1xuICAgICAgICAgICAgLy8gaW50ZXJhY3RpdmUgY29udGVudFxuICAgICAgICAgICAgJ2tleWdlbiwnICtcbiAgICAgICAgICAgIChzdXBwb3J0cyQ2LmZvY3VzQXVkaW9XaXRob3V0Q29udHJvbHMgPyAnYXVkaW8sJyA6ICdhdWRpb1tjb250cm9sc10sJykgK1xuICAgICAgICAgICAgKHN1cHBvcnRzJDYuZm9jdXNWaWRlb1dpdGhvdXRDb250cm9scyA/ICd2aWRlbywnIDogJ3ZpZGVvW2NvbnRyb2xzXSwnKSArXG4gICAgICAgICAgICAoc3VwcG9ydHMkNi5mb2N1c1N1bW1hcnkgPyAnc3VtbWFyeSwnIDogJycpICtcbiAgICAgICAgICAgIC8vIHZhbGlkaXR5IGRldGVybWluZWQgYnkgaXMvdmFsaWQtdGFiaW5kZXguanNcbiAgICAgICAgICAgICdbdGFiaW5kZXhdLCcgK1xuICAgICAgICAgICAgLy8gZWRpdGluZyBob3N0c1xuICAgICAgICAgICAgJ1tjb250ZW50ZWRpdGFibGVdJztcbiAgICAvLyB3aGVyZSBTaGFkb3dET00gaXMgc3VwcG9ydGVkLCB3ZSBhbHNvIHdhbnQgdGhlIHNoYWRvd2VkIGZvY3VzYWJsZSBlbGVtZW50cyAodmlhIFwiPj4+XCIgb3IgXCIvZGVlcC9cIilcbiAgICBzZWxlY3RvciQxID0gc2VsZWN0SW5TaGFkb3dzKHNlbGVjdG9yJDEpO1xuICAgIHJldHVybiBzZWxlY3RvciQxO1xufVxuZnVuY3Rpb24gcXVlcnlGb2N1c2FibGVRdWljaygpIHtcbiAgICB2YXIgX3JlZiA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge30sIGNvbnRleHQgPSBfcmVmLmNvbnRleHQsIGluY2x1ZGVDb250ZXh0ID0gX3JlZi5pbmNsdWRlQ29udGV4dCwgaW5jbHVkZU9ubHlUYWJiYWJsZSA9IF9yZWYuaW5jbHVkZU9ubHlUYWJiYWJsZTtcbiAgICB2YXIgX3NlbGVjdG9yID0gc2VsZWN0b3IkMigpO1xuICAgIHZhciBlbGVtZW50cyA9IGNvbnRleHQucXVlcnlTZWxlY3RvckFsbChfc2VsZWN0b3IpO1xuICAgIC8vIHRoZSBzZWxlY3RvciBwb3RlbnRpYWxseSBtYXRjaGVzIG1vcmUgdGhhbiByZWFsbHkgaXMgZm9jdXNhYmxlXG4gICAgdmFyIF9pc0ZvY3VzYWJsZSA9IGlzRm9jdXNhYmxlLnJ1bGVzLmV4Y2VwdCh7XG4gICAgICAgIG9ubHlUYWJiYWJsZTogaW5jbHVkZU9ubHlUYWJiYWJsZVxuICAgIH0pO1xuICAgIHZhciByZXN1bHQgPSBbXS5maWx0ZXIuY2FsbChlbGVtZW50cywgX2lzRm9jdXNhYmxlKTtcbiAgICAvLyBhZGQgY29udGV4dCBpZiByZXF1ZXN0ZWQgYW5kIGZvY3VzYWJsZVxuICAgIGlmIChpbmNsdWRlQ29udGV4dCAmJiBfaXNGb2N1c2FibGUoY29udGV4dCkpIHtcbiAgICAgICAgcmVzdWx0LnVuc2hpZnQoY29udGV4dCk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59XG5mdW5jdGlvbiBxdWVyeUZvY3VzYWJsZSgpIHtcbiAgICB2YXIgX3JlZiA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge30sIGNvbnRleHQgPSBfcmVmLmNvbnRleHQsIGluY2x1ZGVDb250ZXh0ID0gX3JlZi5pbmNsdWRlQ29udGV4dCwgaW5jbHVkZU9ubHlUYWJiYWJsZSA9IF9yZWYuaW5jbHVkZU9ubHlUYWJiYWJsZSwgX3JlZiRzdHJhdGVneSA9IF9yZWYuc3RyYXRlZ3ksIHN0cmF0ZWd5ID0gX3JlZiRzdHJhdGVneSA9PT0gdW5kZWZpbmVkID8gJ3F1aWNrJyA6IF9yZWYkc3RyYXRlZ3k7XG4gICAgdmFyIGVsZW1lbnQgPSBjb250ZXh0VG9FbGVtZW50KHtcbiAgICAgICAgbGFiZWw6ICdxdWVyeS9mb2N1c2FibGUnLFxuICAgICAgICByZXNvbHZlRG9jdW1lbnQ6IHRydWUsXG4gICAgICAgIGRlZmF1bHRUb0RvY3VtZW50OiB0cnVlLFxuICAgICAgICBjb250ZXh0OiBjb250ZXh0XG4gICAgfSk7XG4gICAgdmFyIG9wdGlvbnMgPSB7XG4gICAgICAgIGNvbnRleHQ6IGVsZW1lbnQsXG4gICAgICAgIGluY2x1ZGVDb250ZXh0OiBpbmNsdWRlQ29udGV4dCxcbiAgICAgICAgaW5jbHVkZU9ubHlUYWJiYWJsZTogaW5jbHVkZU9ubHlUYWJiYWJsZSxcbiAgICAgICAgc3RyYXRlZ3k6IHN0cmF0ZWd5XG4gICAgfTtcbiAgICBpZiAoc3RyYXRlZ3kgPT09ICdxdWljaycpIHtcbiAgICAgICAgcmV0dXJuIHF1ZXJ5Rm9jdXNhYmxlUXVpY2sob3B0aW9ucyk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHN0cmF0ZWd5ID09PSAnc3RyaWN0JyB8fCBzdHJhdGVneSA9PT0gJ2FsbCcpIHtcbiAgICAgICAgcmV0dXJuIHF1ZXJ5Rm9jdXNhYmxlU3RyaWN0KG9wdGlvbnMpO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdxdWVyeS9mb2N1c2FibGUgcmVxdWlyZXMgb3B0aW9uLnN0cmF0ZWd5IHRvIGJlIG9uZSBvZiBbXCJxdWlja1wiLCBcInN0cmljdFwiLCBcImFsbFwiXScpO1xufVxudmFyIHN1cHBvcnRzJDcgPSB2b2lkIDA7XG4vLyBJbnRlcm5ldCBFeHBsb3JlciAxMSBjb25zaWRlcnMgZmllbGRzZXQsIHRhYmxlLCB0ZCBmb2N1c2FibGUsIGJ1dCBub3QgdGFiYmFibGVcbi8vIEludGVybmV0IEV4cGxvcmVyIDExIGNvbnNpZGVycyBib2R5IHRvIGhhdmUgW3RhYmluZGV4PTBdLCBidXQgZG9lcyBub3QgYWxsb3cgdGFiYmluZyB0byBpdFxudmFyIGZvY3VzYWJsZUVsZW1lbnRzUGF0dGVybiA9IC9eKGZpZWxkc2V0fHRhYmxlfHRkfGJvZHkpJC87XG5mdW5jdGlvbiBpc1RhYmJhYmxlUnVsZXMoKSB7XG4gICAgdmFyIF9yZWYgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9LCBjb250ZXh0ID0gX3JlZi5jb250ZXh0LCBfcmVmJGV4Y2VwdCA9IF9yZWYuZXhjZXB0LCBleGNlcHQgPSBfcmVmJGV4Y2VwdCA9PT0gdW5kZWZpbmVkXG4gICAgICAgID8ge1xuICAgICAgICAgICAgZmxleGJveDogZmFsc2UsXG4gICAgICAgICAgICBzY3JvbGxhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIHNoYWRvdzogZmFsc2UsXG4gICAgICAgICAgICB2aXNpYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIG9ubHlUYWJiYWJsZTogZmFsc2VcbiAgICAgICAgfVxuICAgICAgICA6IF9yZWYkZXhjZXB0O1xuICAgIGlmICghc3VwcG9ydHMkNykge1xuICAgICAgICBzdXBwb3J0cyQ3ID0gX3N1cHBvcnRzKCk7XG4gICAgfVxuICAgIHZhciBlbGVtZW50ID0gY29udGV4dFRvRWxlbWVudCh7XG4gICAgICAgIGxhYmVsOiAnaXMvdGFiYmFibGUnLFxuICAgICAgICByZXNvbHZlRG9jdW1lbnQ6IHRydWUsXG4gICAgICAgIGNvbnRleHQ6IGNvbnRleHRcbiAgICB9KTtcbiAgICBpZiAocGxhdGZvcm0uaXMuQkxJTksgJiYgcGxhdGZvcm0uaXMuQU5EUk9JRCAmJiBwbGF0Zm9ybS5tYWpvclZlcnNpb24gPiA0Mikge1xuICAgICAgICAvLyBFeHRlcm5hbCBrZXlib2FyZCBzdXBwb3J0IHdvcmtlZCBmaW5lIGluIENIcm9tZSA0MiwgYnV0IHN0b3BwZWQgd29ya2luZyBpbiBDaHJvbWUgNDUuXG4gICAgICAgIC8vIFRoZSBvbi1zY3JlZW4ga2V5Ym9hcmQgZG9lcyBub3QgcHJvdmlkZSBhIHdheSB0byBmb2N1cyB0aGUgbmV4dCBpbnB1dCBlbGVtZW50IChsaWtlIGlPUyBkb2VzKS5cbiAgICAgICAgLy8gVGhhdCBsZWF2ZXMgdXMgd2l0aCBubyBvcHRpb24gdG8gYWR2YW5jZSBmb2N1cyBieSBrZXlib2FyZCwgZXJnbyBub3RoaW5nIGlzIHRhYmJhYmxlIChrZXlib2FyZCBmb2N1c2FibGUpLlxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHZhciBmcmFtZUVsZW1lbnQgPSBnZXRGcmFtZUVsZW1lbnQoZWxlbWVudCk7XG4gICAgaWYgKGZyYW1lRWxlbWVudCkge1xuICAgICAgICBpZiAocGxhdGZvcm0uaXMuV0VCS0lUICYmIHBsYXRmb3JtLmlzLklPUykge1xuICAgICAgICAgICAgLy8gaU9TIG9ubHkgZG9lcyBub3QgY29uc2lkZXIgYW55dGhpbmcgZnJvbSBhbm90aGVyIGJyb3dzaW5nIGNvbnRleHQga2V5Ym9hcmQgZm9jdXNhYmxlXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgLy8gaWZyYW1lW3RhYmluZGV4PVwiLTFcIl0gYW5kIG9iamVjdFt0YWJpbmRleD1cIi0xXCJdIGluaGVyaXQgdGhlXG4gICAgICAgIC8vIHRhYmJhYmxlIGRlbW90aW9uIG9udG8gZWxlbWVudHMgb2YgdGhlaXIgYnJvd3NpbmcgY29udGV4dHNcbiAgICAgICAgaWYgKHRhYmluZGV4VmFsdWUoZnJhbWVFbGVtZW50KSA8IDApIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWV4Y2VwdC52aXNpYmxlICYmXG4gICAgICAgICAgICAocGxhdGZvcm0uaXMuQkxJTksgfHwgcGxhdGZvcm0uaXMuV0VCS0lUKSAmJlxuICAgICAgICAgICAgIWlzVmlzaWJsZShmcmFtZUVsZW1lbnQpKSB7XG4gICAgICAgICAgICAvLyBCbGluayBhbmQgV2ViS2l0IGNvbnNpZGVyIGVsZW1lbnRzIGluIGhpZGRlbiBicm93c2luZyBjb250ZXh0cyBmb2N1c2FibGUsIGJ1dCBub3QgdGFiYmFibGVcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBXZWJraXQgYW5kIEJsaW5rIGRvbid0IGNvbnNpZGVyIGFueXRoaW5nIGluIDxvYmplY3Q+IHRhYmJhYmxlXG4gICAgICAgIC8vIEJsaW5rIGZpeGVkIHRoYXQgZml4ZWQgaW4gQ2hyb21lIDU0LCBPcGVyYSA0MVxuICAgICAgICB2YXIgZnJhbWVOb2RlTmFtZSA9IGZyYW1lRWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAoZnJhbWVOb2RlTmFtZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIHZhciBpc0ZpeGVkQmxpbmsgPSAocGxhdGZvcm0ubmFtZSA9PT0gJ0Nocm9tZScgJiYgcGxhdGZvcm0ubWFqb3JWZXJzaW9uID49IDU0KSB8fFxuICAgICAgICAgICAgICAgIChwbGF0Zm9ybS5uYW1lID09PSAnT3BlcmEnICYmIHBsYXRmb3JtLm1ham9yVmVyc2lvbiA+PSA0MSk7XG4gICAgICAgICAgICBpZiAocGxhdGZvcm0uaXMuV0VCS0lUIHx8IChwbGF0Zm9ybS5pcy5CTElOSyAmJiAhaXNGaXhlZEJsaW5rKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICB2YXIgbm9kZU5hbWUgPSBlbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgdmFyIF90YWJpbmRleCA9IHRhYmluZGV4VmFsdWUoZWxlbWVudCk7XG4gICAgdmFyIHRhYmluZGV4ID0gX3RhYmluZGV4ID09PSBudWxsID8gbnVsbCA6IF90YWJpbmRleCA+PSAwO1xuICAgIGlmIChwbGF0Zm9ybS5pcy5FREdFICYmXG4gICAgICAgIHBsYXRmb3JtLm1ham9yVmVyc2lvbiA+PSAxNCAmJlxuICAgICAgICBmcmFtZUVsZW1lbnQgJiZcbiAgICAgICAgZWxlbWVudC5vd25lclNWR0VsZW1lbnQgJiZcbiAgICAgICAgX3RhYmluZGV4IDwgMCkge1xuICAgICAgICAvLyBFZGdlIDE0KyBjb25zaWRlcnMgPGEgeGxpbms6aHJlZj1cIuKAplwiIHRhYmluZGV4PVwiLTFcIj4ga2V5Ym9hcmQgZm9jdXNhYmxlXG4gICAgICAgIC8vIGlmIHRoZSBlbGVtZW50IGlzIGluIGEgbmVzdGVkIGJyb3dzaW5nIGNvbnRleHRcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHZhciBoYXNUYWJiYWJsZVRhYmluZGV4T3JOb25lID0gdGFiaW5kZXggIT09IGZhbHNlO1xuICAgIHZhciBoYXNUYWJiYWJsZVRhYmluZGV4ID0gX3RhYmluZGV4ICE9PSBudWxsICYmIF90YWJpbmRleCA+PSAwO1xuICAgIC8vIE5PVEU6IEZpcmVmb3ggMzEgY29uc2lkZXJzIFtjb250ZW50ZWRpdGFibGVdIHRvIGhhdmUgW3RhYmluZGV4PS0xXSwgYnV0IGFsbG93cyB0YWJiaW5nIHRvIGl0XG4gICAgLy8gZml4ZWQgaW4gRmlyZWZveCA0MCB0aGUgbGF0ZXN0IC0gaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4NTY1N1xuICAgIGlmIChlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJykpIHtcbiAgICAgICAgLy8gdGFiYmluZyBjYW4gc3RpbGwgYmUgZGlzYWJsZWQgYnkgZXhwbGljaXRseSBwcm92aWRpbmcgW3RhYmluZGV4PVwiLTFcIl1cbiAgICAgICAgcmV0dXJuIGhhc1RhYmJhYmxlVGFiaW5kZXhPck5vbmU7XG4gICAgfVxuICAgIGlmIChmb2N1c2FibGVFbGVtZW50c1BhdHRlcm4udGVzdChub2RlTmFtZSkgJiYgdGFiaW5kZXggIT09IHRydWUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAocGxhdGZvcm0uaXMuV0VCS0lUICYmIHBsYXRmb3JtLmlzLklPUykge1xuICAgICAgICAvLyBpT1Mgb25seSBjb25zaWRlcnMgYSBoYW5kIGZ1bGwgb2YgZWxlbWVudHMgdGFiYmFibGUgKGtleWJvYXJkIGZvY3VzYWJsZSlcbiAgICAgICAgLy8gdGhpcyBob2xkcyB0cnVlIGV2ZW4gd2l0aCBleHRlcm5hbCBrZXlib2FyZHNcbiAgICAgICAgdmFyIHBvdGVudGlhbGx5VGFiYmFibGUgPSAobm9kZU5hbWUgPT09ICdpbnB1dCcgJiYgZWxlbWVudC50eXBlID09PSAndGV4dCcpIHx8XG4gICAgICAgICAgICBlbGVtZW50LnR5cGUgPT09ICdwYXNzd29yZCcgfHxcbiAgICAgICAgICAgIG5vZGVOYW1lID09PSAnc2VsZWN0JyB8fFxuICAgICAgICAgICAgbm9kZU5hbWUgPT09ICd0ZXh0YXJlYScgfHxcbiAgICAgICAgICAgIGVsZW1lbnQuaGFzQXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnKTtcbiAgICAgICAgaWYgKCFwb3RlbnRpYWxseVRhYmJhYmxlKSB7XG4gICAgICAgICAgICB2YXIgc3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCBudWxsKTtcbiAgICAgICAgICAgIHBvdGVudGlhbGx5VGFiYmFibGUgPSBpc1VzZXJNb2RpZnlXcml0YWJsZShzdHlsZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFwb3RlbnRpYWxseVRhYmJhYmxlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKG5vZGVOYW1lID09PSAndXNlJyAmJiBfdGFiaW5kZXggIT09IG51bGwpIHtcbiAgICAgICAgaWYgKHBsYXRmb3JtLmlzLkJMSU5LIHx8XG4gICAgICAgICAgICAocGxhdGZvcm0uaXMuV0VCS0lUICYmIHBsYXRmb3JtLm1ham9yVmVyc2lvbiA9PT0gOSkpIHtcbiAgICAgICAgICAgIC8vIEluIENocm9tZSBhbmQgU2FmYXJpIDkgdGhlIDx1c2U+IGVsZW1lbnQgaXMga2V5Ym9hcmQgZm9jdXNhYmxlIGV2ZW4gZm9yIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKGVsZW1lbnRNYXRjaGVzKGVsZW1lbnQsICdzdmcgYScpICYmIGVsZW1lbnQuaGFzQXR0cmlidXRlKCd4bGluazpocmVmJykpIHtcbiAgICAgICAgaWYgKGhhc1RhYmJhYmxlVGFiaW5kZXhPck5vbmUpIHtcbiAgICAgICAgICAgIC8vIGluIFRyaWRlbnQgYW5kIEdlY2tvIFNWR0VsZW1lbnQgZG9lcyBub3QgaGFuZGxlIHRoZSB0YWJJbmRleCBwcm9wZXJ0eSBwcm9wZXJseVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVsZW1lbnQuZm9jdXMgJiYgIXN1cHBvcnRzJDcuZm9jdXNTdmdOZWdhdGl2ZVRhYmluZGV4QXR0cmlidXRlKSB7XG4gICAgICAgICAgICAvLyBGaXJlZm94IDUxIGFuZCA1MiB0cmVhdCBhbnkgbmF0aXZlbHkgdGFiYmFibGUgU1ZHIGVsZW1lbnQgd2l0aFxuICAgICAgICAgICAgLy8gdGFiaW5kZXg9XCItMVwiIGFzIHRhYmJhYmxlIGFuZCBldmVyeXRoaW5nIGVsc2UgYXMgaW5lcnRcbiAgICAgICAgICAgIC8vIHNlZSBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzAyMzQwXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAobm9kZU5hbWUgPT09ICdzdmcnICYmXG4gICAgICAgIHN1cHBvcnRzJDcuZm9jdXNTdmdJbklmcmFtZSAmJlxuICAgICAgICBoYXNUYWJiYWJsZVRhYmluZGV4T3JOb25lKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAocGxhdGZvcm0uaXMuVFJJREVOVCB8fCBwbGF0Zm9ybS5pcy5FREdFKSB7XG4gICAgICAgIGlmIChub2RlTmFtZSA9PT0gJ3N2ZycpIHtcbiAgICAgICAgICAgIGlmIChzdXBwb3J0cyQ3LmZvY3VzU3ZnKSB7XG4gICAgICAgICAgICAgICAgLy8gb2xkZXIgSW50ZXJuZXQgRXhwbG9yZXJzIGNvbnNpZGVyIDxzdmc+IGtleWJvYXJkIGZvY3VzYWJsZVxuICAgICAgICAgICAgICAgIC8vIHVubGVzcyB0aGV5IGhhdmUgZm9jc2FibGU9XCJmYWxzZVwiLCBidXQgdGhlbiB0aGV5IHdvdWxkbid0XG4gICAgICAgICAgICAgICAgLy8gYmUgZm9jdXNhYmxlIGFuZCB0aHVzIG5vdCBldmVuIHJlYWNoIHRoaXMgZmlsdGVyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBlbGVtZW50cyB0aGF0IGhhdmUgW2ZvY3VzYWJsZV0gYXJlIGF1dG9tYXRpY2FsbHkga2V5Ym9hcmQgZm9jdXNhYmxlIHJlZ2FyZGxlc3Mgb2YgdGhlIGF0dHJpYnV0ZSdzIHZhbHVlXG4gICAgICAgICAgICByZXR1cm4gZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2ZvY3VzYWJsZScpIHx8IGhhc1RhYmJhYmxlVGFiaW5kZXg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVsZW1lbnQub3duZXJTVkdFbGVtZW50KSB7XG4gICAgICAgICAgICBpZiAoc3VwcG9ydHMkNy5mb2N1c1N2Z1RhYmluZGV4QXR0cmlidXRlICYmIGhhc1RhYmJhYmxlVGFiaW5kZXgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGVsZW1lbnRzIHRoYXQgaGF2ZSBbZm9jdXNhYmxlXSBhcmUgYXV0b21hdGljYWxseSBrZXlib2FyZCBmb2N1c2FibGUgcmVnYXJkbGVzcyBvZiB0aGUgYXR0cmlidXRlJ3MgdmFsdWVcbiAgICAgICAgICAgIHJldHVybiBlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnZm9jdXNhYmxlJyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKGVsZW1lbnQudGFiSW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gQm9vbGVhbihleGNlcHQub25seVRhYmJhYmxlKTtcbiAgICB9XG4gICAgaWYgKG5vZGVOYW1lID09PSAnYXVkaW8nKSB7XG4gICAgICAgIGlmICghZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2NvbnRyb2xzJykpIHtcbiAgICAgICAgICAgIC8vIEluIEludGVybmV0IEV4cGxvcmVyIHRoZSA8YXVkaW8+IGVsZW1lbnQgaXMgZm9jdXNhYmxlLCBidXQgbm90IHRhYmJhYmxlLCBhbmQgdGFiSW5kZXggcHJvcGVydHkgaXMgd3JvbmdcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChwbGF0Zm9ybS5pcy5CTElOSykge1xuICAgICAgICAgICAgLy8gSW4gQ2hyb21lIDxhdWRpbyBjb250cm9scyB0YWJpbmRleD1cIi0xXCI+IHJlbWFpbnMga2V5Ym9hcmQgZm9jdXNhYmxlXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAobm9kZU5hbWUgPT09ICd2aWRlbycpIHtcbiAgICAgICAgaWYgKCFlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnY29udHJvbHMnKSkge1xuICAgICAgICAgICAgaWYgKHBsYXRmb3JtLmlzLlRSSURFTlQgfHwgcGxhdGZvcm0uaXMuRURHRSkge1xuICAgICAgICAgICAgICAgIC8vIEluIEludGVybmV0IEV4cGxvcmVyIGFuZCBFZGdlIHRoZSA8dmlkZW8+IGVsZW1lbnQgaXMgZm9jdXNhYmxlLCBidXQgbm90IHRhYmJhYmxlLCBhbmQgdGFiSW5kZXggcHJvcGVydHkgaXMgd3JvbmdcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAocGxhdGZvcm0uaXMuQkxJTksgfHwgcGxhdGZvcm0uaXMuR0VDS08pIHtcbiAgICAgICAgICAgIC8vIEluIENocm9tZSBhbmQgRmlyZWZveCA8dmlkZW8gY29udHJvbHMgdGFiaW5kZXg9XCItMVwiPiByZW1haW5zIGtleWJvYXJkIGZvY3VzYWJsZVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKG5vZGVOYW1lID09PSAnb2JqZWN0Jykge1xuICAgICAgICBpZiAocGxhdGZvcm0uaXMuQkxJTksgfHwgcGxhdGZvcm0uaXMuV0VCS0lUKSB7XG4gICAgICAgICAgICAvLyBJbiBhbGwgQmxpbmsgYW5kIFdlYktpdCBiYXNlZCBicm93c2VycyA8ZW1iZWQ+IGFuZCA8b2JqZWN0PiBhcmUgbmV2ZXIga2V5Ym9hcmQgZm9jdXNhYmxlLCBldmVuIHdpdGggdGFiaW5kZXg9XCIwXCIgc2V0XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKG5vZGVOYW1lID09PSAnaWZyYW1lJykge1xuICAgICAgICAvLyBJbiBJbnRlcm5ldCBFeHBsb3JlciBhbGwgaWZyYW1lcyBhcmUgb25seSBmb2N1c2FibGVcbiAgICAgICAgLy8gSW4gV2ViS2l0LCBCbGluayBhbmQgR2Vja28gaWZyYW1lcyBtYXkgYmUgdGFiYmFibGUgZGVwZW5kaW5nIG9uIGNvbnRlbnQuXG4gICAgICAgIC8vIFNpbmNlIHdlIGNhbid0IHJlbGlhYmx5IGludmVzdGlnYXRlIGlmcmFtZSBkb2N1bWVudHMgYmVjYXVzZSBvZiB0aGVcbiAgICAgICAgLy8gU2FtZU9yaWdpblBvbGljeSwgd2UncmUgZGVjbGFyaW5nIGV2ZXJ5dGhpbmcgb25seSBmb2N1c2FibGUuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKCFleGNlcHQuc2Nyb2xsYWJsZSAmJiBwbGF0Zm9ybS5pcy5HRUNLTykge1xuICAgICAgICAvLyBGaXJlZm94IGNvbnNpZGVycyBzY3JvbGxhYmxlIGNvbnRhaW5lcnMga2V5Ym9hcmQgZm9jdXNhYmxlLFxuICAgICAgICAvLyBldmVuIHRob3VnaCB0aGVpciB0YWJJbmRleCBwcm9wZXJ0eSBpcyAtMVxuICAgICAgICB2YXIgX3N0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgbnVsbCk7XG4gICAgICAgIGlmIChoYXNDc3NPdmVyZmxvd1Njcm9sbChfc3R5bGUpKSB7XG4gICAgICAgICAgICByZXR1cm4gaGFzVGFiYmFibGVUYWJpbmRleE9yTm9uZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAocGxhdGZvcm0uaXMuVFJJREVOVCB8fCBwbGF0Zm9ybS5pcy5FREdFKSB7XG4gICAgICAgIC8vIElFIGFuZCBFZGdlIGRlZ3JhZGUgPGFyZWE+IHRvIHNjcmlwdCBmb2N1c2FibGUsIGlmIHRoZSBpbWFnZVxuICAgICAgICAvLyB1c2luZyB0aGUgPG1hcD4gaGFzIGJlZW4gZ2l2ZW4gdGFiaW5kZXg9XCItMVwiXG4gICAgICAgIGlmIChub2RlTmFtZSA9PT0gJ2FyZWEnKSB7XG4gICAgICAgICAgICB2YXIgaW1nID0gZ2V0SW1hZ2VPZkFyZWEoZWxlbWVudCk7XG4gICAgICAgICAgICBpZiAoaW1nICYmIHRhYmluZGV4VmFsdWUoaW1nKSA8IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdmFyIF9zdHlsZTIgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCBudWxsKTtcbiAgICAgICAgaWYgKGlzVXNlck1vZGlmeVdyaXRhYmxlKF9zdHlsZTIpKSB7XG4gICAgICAgICAgICAvLyBwcmV2ZW50IGJlaW5nIHN3YWxsb3dlZCBieSB0aGUgb3ZlcnplYWxvdXMgaXNTY3JvbGxhYmxlQ29udGFpbmVyKCkgYmVsb3dcbiAgICAgICAgICAgIHJldHVybiBlbGVtZW50LnRhYkluZGV4ID49IDA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFleGNlcHQuZmxleGJveCAmJiBoYXNDc3NEaXNwbGF5RmxleChfc3R5bGUyKSkge1xuICAgICAgICAgICAgaWYgKF90YWJpbmRleCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBoYXNUYWJiYWJsZVRhYmluZGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIChpc0ZvY3VzUmVsZXZhbnRXaXRob3V0RmxleGJveChlbGVtZW50KSAmJlxuICAgICAgICAgICAgICAgIGlzVGFiYmFibGVXaXRob3V0RmxleGJveChlbGVtZW50KSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSUUgY29uc2lkZXJzIHNjcm9sbGFibGUgY29udGFpbmVycyBzY3JpcHQgZm9jdXNhYmxlIG9ubHksXG4gICAgICAgIC8vIGV2ZW4gdGhvdWdoIHRoZWlyIHRhYkluZGV4IHByb3BlcnR5IGlzIDBcbiAgICAgICAgaWYgKGlzU2Nyb2xsYWJsZUNvbnRhaW5lcihlbGVtZW50LCBub2RlTmFtZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcGFyZW50ID0gZWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICAgICAgICBpZiAocGFyZW50KSB7XG4gICAgICAgICAgICB2YXIgcGFyZW50Tm9kZU5hbWUgPSBwYXJlbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIHZhciBwYXJlbnRTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHBhcmVudCwgbnVsbCk7XG4gICAgICAgICAgICAvLyBJRSBjb25zaWRlcnMgc2Nyb2xsYWJsZSBib2RpZXMgc2NyaXB0IGZvY3VzYWJsZSBvbmx5LFxuICAgICAgICAgICAgaWYgKGlzU2Nyb2xsYWJsZUNvbnRhaW5lcihwYXJlbnQsIG5vZGVOYW1lLCBwYXJlbnROb2RlTmFtZSwgcGFyZW50U3R5bGUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gQ2hpbGRyZW4gb2YgZm9jdXNhYmxlIGVsZW1lbnRzIHdpdGggZGlzcGxheTpmbGV4IGFyZSBmb2N1c2FibGUgaW4gSUUxMC0xMSxcbiAgICAgICAgICAgIC8vIGV2ZW4gdGhvdWdoIHRoZWlyIHRhYkluZGV4IHByb3BlcnR5IHN1Z2dlc3RzIG90aGVyd2lzZVxuICAgICAgICAgICAgaWYgKGhhc0Nzc0Rpc3BsYXlGbGV4KHBhcmVudFN0eWxlKSkge1xuICAgICAgICAgICAgICAgIC8vIHZhbHVlIG9mIHRhYmluZGV4IHRha2VzIHByZWNlZGVuY2VcbiAgICAgICAgICAgICAgICByZXR1cm4gaGFzVGFiYmFibGVUYWJpbmRleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBodHRwczovL3d3dy53My5vcmcvV0FJL1BGL2FyaWEtcHJhY3RpY2VzLyNmb2N1c190YWJpbmRleFxuICAgIHJldHVybiBlbGVtZW50LnRhYkluZGV4ID49IDA7XG59XG4vLyBiaW5kIGV4Y2VwdGlvbnMgdG8gYW4gaXRlcmF0b3IgY2FsbGJhY2tcbmlzVGFiYmFibGVSdWxlcy5leGNlcHQgPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGV4Y2VwdCA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge307XG4gICAgdmFyIGlzVGFiYmFibGUgPSBmdW5jdGlvbiBpc1RhYmJhYmxlKGNvbnRleHQpIHtcbiAgICAgICAgcmV0dXJuIGlzVGFiYmFibGVSdWxlcyh7XG4gICAgICAgICAgICBjb250ZXh0OiBjb250ZXh0LFxuICAgICAgICAgICAgZXhjZXB0OiBleGNlcHRcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBpc1RhYmJhYmxlLnJ1bGVzID0gaXNUYWJiYWJsZVJ1bGVzO1xuICAgIHJldHVybiBpc1RhYmJhYmxlO1xufTtcbnZhciBpc0ZvY3VzUmVsZXZhbnRXaXRob3V0RmxleGJveCA9IGlzRm9jdXNSZWxldmFudC5ydWxlcy5leGNlcHQoe1xuICAgIGZsZXhib3g6IHRydWVcbn0pO1xudmFyIGlzVGFiYmFibGVXaXRob3V0RmxleGJveCA9IGlzVGFiYmFibGVSdWxlcy5leGNlcHQoeyBmbGV4Ym94OiB0cnVlIH0pO1xuLy8gcHJvdmlkZSBpc1RhYmJhYmxlKGNvbnRleHQpIGFzIGRlZmF1bHQgaXRlcmF0b3IgY2FsbGJhY2tcbnZhciBpc1RhYmJhYmxlID0gaXNUYWJiYWJsZVJ1bGVzLmV4Y2VwdCh7fSk7XG5mdW5jdGlvbiBxdWVyeVRhYmJhYmxlKCkge1xuICAgIHZhciBfcmVmID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fSwgY29udGV4dCA9IF9yZWYuY29udGV4dCwgaW5jbHVkZUNvbnRleHQgPSBfcmVmLmluY2x1ZGVDb250ZXh0LCBpbmNsdWRlT25seVRhYmJhYmxlID0gX3JlZi5pbmNsdWRlT25seVRhYmJhYmxlLCBzdHJhdGVneSA9IF9yZWYuc3RyYXRlZ3k7XG4gICAgdmFyIF9pc1RhYmJhYmxlID0gaXNUYWJiYWJsZS5ydWxlcy5leGNlcHQoe1xuICAgICAgICBvbmx5VGFiYmFibGU6IGluY2x1ZGVPbmx5VGFiYmFibGVcbiAgICB9KTtcbiAgICByZXR1cm4gcXVlcnlGb2N1c2FibGUoe1xuICAgICAgICBjb250ZXh0OiBjb250ZXh0LFxuICAgICAgICBpbmNsdWRlQ29udGV4dDogaW5jbHVkZUNvbnRleHQsXG4gICAgICAgIGluY2x1ZGVPbmx5VGFiYmFibGU6IGluY2x1ZGVPbmx5VGFiYmFibGUsXG4gICAgICAgIHN0cmF0ZWd5OiBzdHJhdGVneVxuICAgIH0pLmZpbHRlcihfaXNUYWJiYWJsZSk7XG59XG4vLyBzb3J0cyBhIGxpc3Qgb2YgZWxlbWVudHMgYWNjb3JkaW5nIHRvIHRoZWlyIG9yZGVyIGluIHRoZSBET01cbmZ1bmN0aW9uIGNvbXBhcmVEb21Qb3NpdGlvbihhLCBiKSB7XG4gICAgcmV0dXJuIGEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYikgJiBOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0ZPTExPV0lOR1xuICAgICAgICA/IC0xXG4gICAgICAgIDogMTtcbn1cbmZ1bmN0aW9uIHNvcnREb21PcmRlcihlbGVtZW50cykge1xuICAgIHJldHVybiBlbGVtZW50cy5zb3J0KGNvbXBhcmVEb21Qb3NpdGlvbik7XG59XG5mdW5jdGlvbiBnZXRGaXJzdFN1Y2Nlc3Nvck9mZnNldChsaXN0LCB0YXJnZXQpIHtcbiAgICAvLyBmaW5kIHRoZSBmaXJzdCBlbGVtZW50IHRoYXQgY29tZXMgQUZURVIgdGhlIHRhcmdldCBlbGVtZW50XG4gICAgcmV0dXJuIGZpbmRJbmRleChsaXN0LCBmdW5jdGlvbiAoZWxlbWVudCkge1xuICAgICAgICByZXR1cm4gKHRhcmdldC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihlbGVtZW50KSAmIE5vZGUuRE9DVU1FTlRfUE9TSVRJT05fRk9MTE9XSU5HKTtcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGZpbmRJbnNlcnRpb25PZmZzZXRzKGxpc3QsIGVsZW1lbnRzLCByZXNvbHZlRWxlbWVudCkge1xuICAgIC8vIGluc3RlYWQgb2YgbXV0YXRpbmcgdGhlIGVsZW1lbnRzIGxpc3QgZGlyZWN0bHksIHJlbWVtYmVyIHBvc2l0aW9uIGFuZCBtYXBcbiAgICAvLyB0byBpbmplY3QgbGF0ZXIsIHdoZW4gd2UgY2FuIGRvIHRoaXMgbW9yZSBlZmZpY2llbnRseVxuICAgIHZhciBpbnNlcnRpb25zID0gW107XG4gICAgZWxlbWVudHMuZm9yRWFjaChmdW5jdGlvbiAoZWxlbWVudCkge1xuICAgICAgICB2YXIgcmVwbGFjZSA9IHRydWU7XG4gICAgICAgIHZhciBvZmZzZXQgPSBsaXN0LmluZGV4T2YoZWxlbWVudCk7XG4gICAgICAgIGlmIChvZmZzZXQgPT09IC0xKSB7XG4gICAgICAgICAgICAvLyBlbGVtZW50IGlzIG5vdCBpbiB0YXJnZXQgbGlzdFxuICAgICAgICAgICAgb2Zmc2V0ID0gZ2V0Rmlyc3RTdWNjZXNzb3JPZmZzZXQobGlzdCwgZWxlbWVudCk7XG4gICAgICAgICAgICByZXBsYWNlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9mZnNldCA9PT0gLTEpIHtcbiAgICAgICAgICAgIC8vIHRoZXJlIGlzIG5vIHN1Y2Nlc3NvciBpbiB0aGUgdGFic2VxdWVuY2UsXG4gICAgICAgICAgICAvLyBtZWFuaW5nIHRoZSBpbWFnZSBtdXN0IGJlIHRoZSBsYXN0IGVsZW1lbnRcbiAgICAgICAgICAgIG9mZnNldCA9IGxpc3QubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIC8vIGFsbG93IHRoZSBjb25zdW1lciB0byByZXBsYWNlIHRoZSBpbmplY3RlZCBlbGVtZW50XG4gICAgICAgIHZhciBpbmplY3Rpb25zID0gbm9kZUFycmF5KHJlc29sdmVFbGVtZW50ID8gcmVzb2x2ZUVsZW1lbnQoZWxlbWVudCkgOiBlbGVtZW50KTtcbiAgICAgICAgaWYgKCFpbmplY3Rpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgLy8gd2UgY2FuJ3QgaW5qZWN0IHplcm8gZWxlbWVudHNcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpbnNlcnRpb25zLnB1c2goe1xuICAgICAgICAgICAgb2Zmc2V0OiBvZmZzZXQsXG4gICAgICAgICAgICByZXBsYWNlOiByZXBsYWNlLFxuICAgICAgICAgICAgZWxlbWVudHM6IGluamVjdGlvbnNcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGluc2VydGlvbnM7XG59XG5mdW5jdGlvbiBpbnNlcnRFbGVtZW50c0F0T2Zmc2V0cyhsaXN0LCBpbnNlcnRpb25zKSB7XG4gICAgLy8gcmVtZW1iZXIgdGhlIG51bWJlciBvZiBlbGVtZW50cyB3ZSBoYXZlIGFscmVhZHkgaW5qZWN0ZWRcbiAgICAvLyBzbyB3ZSBhY2NvdW50IGZvciB0aGUgY2F1c2VkIGluZGV4IG9mZnNldFxuICAgIHZhciBpbnNlcnRlZCA9IDA7XG4gICAgLy8gbWFrZSBzdXJlIHRoYXQgd2UgaW5zZXJ0IHRoZSBlbGVtZW50cyBpbiBzZXF1ZW5jZSxcbiAgICAvLyBvdGhlcndpc2UgdGhlIG9mZnNldCBjb21wZW5zYXRpb24gd29uJ3Qgd29ya1xuICAgIGluc2VydGlvbnMuc29ydChmdW5jdGlvbiAoYSwgYikge1xuICAgICAgICByZXR1cm4gYS5vZmZzZXQgLSBiLm9mZnNldDtcbiAgICB9KTtcbiAgICBpbnNlcnRpb25zLmZvckVhY2goZnVuY3Rpb24gKGluc2VydGlvbikge1xuICAgICAgICAvLyBhcnJheS5zcGxpY2UgaGFzIGFuIGFubm95aW5nIGZ1bmN0aW9uIHNpZ25hdHVyZSA6KFxuICAgICAgICB2YXIgcmVtb3ZlID0gaW5zZXJ0aW9uLnJlcGxhY2UgPyAxIDogMDtcbiAgICAgICAgdmFyIGFyZ3MgPSBbaW5zZXJ0aW9uLm9mZnNldCArIGluc2VydGVkLCByZW1vdmVdLmNvbmNhdChpbnNlcnRpb24uZWxlbWVudHMpO1xuICAgICAgICBsaXN0LnNwbGljZS5hcHBseShsaXN0LCBhcmdzKTtcbiAgICAgICAgaW5zZXJ0ZWQgKz0gaW5zZXJ0aW9uLmVsZW1lbnRzLmxlbmd0aCAtIHJlbW92ZTtcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIG1lcmdlSW5Eb21PcmRlcigpIHtcbiAgICB2YXIgX3JlZiA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge30sIGxpc3QgPSBfcmVmLmxpc3QsIGVsZW1lbnRzID0gX3JlZi5lbGVtZW50cywgcmVzb2x2ZUVsZW1lbnQgPSBfcmVmLnJlc29sdmVFbGVtZW50O1xuICAgIC8vIG9wZXJhdGUgb24gYSBjb3B5IHNvIHdlIGRvbid0IG11dGF0ZSB0aGUgb3JpZ2luYWwgYXJyYXlcbiAgICB2YXIgX2xpc3QgPSBsaXN0LnNsaWNlKDApO1xuICAgIC8vIG1ha2Ugc3VyZSB0aGUgZWxlbWVudHMgd2UncmUgaW5qZWN0aW5nIGFyZSBwcm92aWRlZCBpbiBET00gb3JkZXJcbiAgICB2YXIgX2VsZW1lbnRzID0gbm9kZUFycmF5KGVsZW1lbnRzKS5zbGljZSgwKTtcbiAgICBzb3J0RG9tT3JkZXIoX2VsZW1lbnRzKTtcbiAgICAvLyBmaW5kIHRoZSBvZmZzZXRzIHdpdGhpbiB0aGUgdGFyZ2V0IGFycmF5IChsaXN0KSBhdCB3aGljaCB0byBpbmplY3RcbiAgICAvLyBlYWNoIGluZGl2aWR1YWwgZWxlbWVudCAoZnJvbSBlbGVtZW50cylcbiAgICB2YXIgaW5zZXJ0aW9ucyA9IGZpbmRJbnNlcnRpb25PZmZzZXRzKF9saXN0LCBfZWxlbWVudHMsIHJlc29sdmVFbGVtZW50KTtcbiAgICAvLyBhY3R1YWxseSBpbmplY3QgdGhlIGVsZW1lbnRzIGludG8gdGhlIHRhcmdldCBhcnJheSBhdCB0aGUgaWRlbnRpZmllZCBwb3NpdGlvbnNcbiAgICBpbnNlcnRFbGVtZW50c0F0T2Zmc2V0cyhfbGlzdCwgaW5zZXJ0aW9ucyk7XG4gICAgcmV0dXJuIF9saXN0O1xufVxudmFyIF9jcmVhdGVDbGFzcyA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07XG4gICAgICAgICAgICBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7XG4gICAgICAgICAgICBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7XG4gICAgICAgICAgICBpZiAoJ3ZhbHVlJyBpbiBkZXNjcmlwdG9yKVxuICAgICAgICAgICAgICAgIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlO1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmdW5jdGlvbiAoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7XG4gICAgICAgIGlmIChwcm90b1Byb3BzKVxuICAgICAgICAgICAgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpO1xuICAgICAgICBpZiAoc3RhdGljUHJvcHMpXG4gICAgICAgICAgICBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7XG4gICAgICAgIHJldHVybiBDb25zdHJ1Y3RvcjtcbiAgICB9O1xufSkoKTtcbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHtcbiAgICBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTtcbiAgICB9XG59XG52YXIgTWFwcyA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gTWFwcyhjb250ZXh0KSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBNYXBzKTtcbiAgICAgICAgdGhpcy5fZG9jdW1lbnQgPSBnZXREb2N1bWVudChjb250ZXh0KTtcbiAgICAgICAgdGhpcy5tYXBzID0ge307XG4gICAgfVxuICAgIF9jcmVhdGVDbGFzcyhNYXBzLCBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ2dldEFyZWFzRm9yJyxcbiAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRBcmVhc0ZvcihuYW1lKSB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLm1hcHNbbmFtZV0pIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhlIG1hcCBpcyBub3QgZGVmaW5lZCB3aXRoaW4gdGhlIGNvbnRleHQsIHNvIHdlXG4gICAgICAgICAgICAgICAgICAgIC8vIGhhdmUgdG8gZ28gZmluZCBpdCBlbHNld2hlcmUgaW4gdGhlIGRvY3VtZW50XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkTWFwQnlOYW1lKG5hbWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5tYXBzW25hbWVdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICdhZGRNYXBCeU5hbWUnLFxuICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIGFkZE1hcEJ5TmFtZShuYW1lKSB7XG4gICAgICAgICAgICAgICAgdmFyIG1hcCA9IGdldE1hcEJ5TmFtZShuYW1lLCB0aGlzLl9kb2N1bWVudCk7XG4gICAgICAgICAgICAgICAgaWYgKCFtYXApIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlcmUgaXMgbm8gbWFwLCB0aGUgaW1nW3VzZW1hcF0gd2Fzbid0IGRvaW5nIGFueXRoaW5nIGFueXdheVxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMubWFwc1ttYXAubmFtZV0gPSBxdWVyeVRhYmJhYmxlKHsgY29udGV4dDogbWFwIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICdleHRyYWN0QXJlYXNGcm9tTGlzdCcsXG4gICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gZXh0cmFjdEFyZWFzRnJvbUxpc3QoZWxlbWVudHMpIHtcbiAgICAgICAgICAgICAgICAvLyByZW1vdmUgYWxsIDxhcmVhPiBlbGVtZW50cyBmcm9tIHRoZSBlbGVtZW50cyBsaXN0LFxuICAgICAgICAgICAgICAgIC8vIGJ1dCBwdXQgdGhlbSB0aGUgbWFwIGZvciBsYXRlciByZXRyaWV2YWxcbiAgICAgICAgICAgICAgICByZXR1cm4gZWxlbWVudHMuZmlsdGVyKGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBub2RlTmFtZSA9IGVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5vZGVOYW1lICE9PSAnYXJlYScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHZhciBtYXAgPSBlbGVtZW50LnBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5tYXBzW21hcC5uYW1lXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXBzW21hcC5uYW1lXSA9IFtdO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWFwc1ttYXAubmFtZV0ucHVzaChlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH0sIHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgIF0pO1xuICAgIHJldHVybiBNYXBzO1xufSkoKTtcbmZ1bmN0aW9uIHNvcnRBcmVhKGVsZW1lbnRzLCBjb250ZXh0KSB7XG4gICAgLy8gaW1hZ2VzIC0gdW5sZXNzIHRoZXkgYXJlIGZvY3VzYWJsZSB0aGVtc2VsdmVzLCBsaWtlbHkgbm90XG4gICAgLy8gcGFydCBvZiB0aGUgZWxlbWVudHMgbGlzdCwgc28gd2UnbGwgaGF2ZSB0byBmaW5kIHRoZW0gYW5kXG4gICAgLy8gc29ydCB0aGVtIGludG8gdGhlIGVsZW1lbnRzIGxpc3QgbWFudWFsbHlcbiAgICB2YXIgdXNlbWFwcyA9IGNvbnRleHQucXVlcnlTZWxlY3RvckFsbCgnaW1nW3VzZW1hcF0nKTtcbiAgICB2YXIgbWFwcyA9IG5ldyBNYXBzKGNvbnRleHQpO1xuICAgIC8vIHJlbW92ZSBhbGwgPGFyZWE+IGVsZW1lbnRzIGZyb20gdGhlIGVsZW1lbnRzIGxpc3QsXG4gICAgLy8gYnV0IHB1dCB0aGVtIHRoZSBtYXAgZm9yIGxhdGVyIHJldHJpZXZhbFxuICAgIHZhciBfZWxlbWVudHMgPSBtYXBzLmV4dHJhY3RBcmVhc0Zyb21MaXN0KGVsZW1lbnRzKTtcbiAgICBpZiAoIXVzZW1hcHMubGVuZ3RoKSB7XG4gICAgICAgIC8vIHRoZSBjb250ZXh0IGRvZXMgbm90IGNvbnRhaW4gYW55IDxhcmVhPnMgc28gbm8gbmVlZFxuICAgICAgICAvLyB0byByZXBsYWNlIGFueXRoaW5nLCBqdXN0IHJlbW92ZSBhbnkgbWFwc1xuICAgICAgICByZXR1cm4gX2VsZW1lbnRzO1xuICAgIH1cbiAgICByZXR1cm4gbWVyZ2VJbkRvbU9yZGVyKHtcbiAgICAgICAgbGlzdDogX2VsZW1lbnRzLFxuICAgICAgICBlbGVtZW50czogdXNlbWFwcyxcbiAgICAgICAgcmVzb2x2ZUVsZW1lbnQ6IGZ1bmN0aW9uIHJlc29sdmVFbGVtZW50KGltYWdlKSB7XG4gICAgICAgICAgICB2YXIgbmFtZSA9IGltYWdlLmdldEF0dHJpYnV0ZSgndXNlbWFwJykuc2xpY2UoMSk7XG4gICAgICAgICAgICByZXR1cm4gbWFwcy5nZXRBcmVhc0ZvcihuYW1lKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxudmFyIF9jcmVhdGVDbGFzcyQxID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTtcbiAgICAgICAgICAgIGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTtcbiAgICAgICAgICAgIGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmICgndmFsdWUnIGluIGRlc2NyaXB0b3IpXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHtcbiAgICAgICAgaWYgKHByb3RvUHJvcHMpXG4gICAgICAgICAgICBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7XG4gICAgICAgIGlmIChzdGF0aWNQcm9wcylcbiAgICAgICAgICAgIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTtcbiAgICAgICAgcmV0dXJuIENvbnN0cnVjdG9yO1xuICAgIH07XG59KSgpO1xuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrJDEoaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7XG4gICAgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7XG4gICAgfVxufVxudmFyIFNoYWRvd3MgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIFNoYWRvd3MoY29udGV4dCwgc29ydEVsZW1lbnRzKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayQxKHRoaXMsIFNoYWRvd3MpO1xuICAgICAgICAvLyBkb2N1bWVudCBjb250ZXh0IHdlJ3JlIHdvcmtpbmcgd2l0aFxuICAgICAgICB0aGlzLmNvbnRleHQgPSBjb250ZXh0O1xuICAgICAgICAvLyBjYWxsYmFjayB0aGF0IHNvcnRzIGFuIGFycmF5IG9mIGVsZW1lbnRzXG4gICAgICAgIHRoaXMuc29ydEVsZW1lbnRzID0gc29ydEVsZW1lbnRzO1xuICAgICAgICAvLyByZWZlcmVuY2UgdG8gY3JlYXRlIHVuaXF1ZSBJRHMgZm9yIGVhY2ggU2hhZG93SG9zdFxuICAgICAgICB0aGlzLmhvc3RDb3VudGVyID0gMTtcbiAgICAgICAgLy8gcmVmZXJlbmNlIG1hcCBmb3IgY2hpbGQtU2hhZG93SG9zdHMgb2YgYSBTaGFkb3dIb3N0XG4gICAgICAgIHRoaXMuaW5Ib3N0ID0ge307XG4gICAgICAgIC8vIHJlZmVyZW5jZSBtYXAgZm9yIGNoaWxkLVNoYWRvd0hvc3Qgb2YgdGhlIGRvY3VtZW50XG4gICAgICAgIHRoaXMuaW5Eb2N1bWVudCA9IFtdO1xuICAgICAgICAvLyByZWZlcmVuY2UgbWFwIGZvciBTaGFkb3dIb3N0c1xuICAgICAgICB0aGlzLmhvc3RzID0ge307XG4gICAgICAgIC8vIHJlZmVyZW5jZSBtYXAgZm9yIHRhYmJhYmxlIGVsZW1lbnRzIG9mIGEgU2hhZG93SG9zdFxuICAgICAgICB0aGlzLmVsZW1lbnRzID0ge307XG4gICAgfVxuICAgIC8vIHJlbWVtYmVyIHdoaWNoIGhvc3RzIHdlIGhhdmUgdG8gc29ydCB3aXRoaW4gbGF0ZXJcbiAgICBfY3JlYXRlQ2xhc3MkMShTaGFkb3dzLCBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ19yZWdpc3Rlckhvc3QnLFxuICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9yZWdpc3Rlckhvc3QoaG9zdCkge1xuICAgICAgICAgICAgICAgIGlmIChob3N0Ll9zb3J0aW5nSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBtYWtlIHRoZSBTaGFkb3dIb3N0IGlkZW50aWZpYWJsZSAoc2VlIGNsZWFudXAoKSBmb3IgdW5kbylcbiAgICAgICAgICAgICAgICBob3N0Ll9zb3J0aW5nSWQgPSAnc2hhZG93LScgKyB0aGlzLmhvc3RDb3VudGVyKys7XG4gICAgICAgICAgICAgICAgdGhpcy5ob3N0c1tob3N0Ll9zb3J0aW5nSWRdID0gaG9zdDtcbiAgICAgICAgICAgICAgICAvLyBob3N0cyBtYXkgY29udGFpbiBvdGhlciBob3N0c1xuICAgICAgICAgICAgICAgIHZhciBwYXJlbnRIb3N0ID0gZ2V0U2hhZG93SG9zdCh7IGNvbnRleHQ6IGhvc3QgfSk7XG4gICAgICAgICAgICAgICAgaWYgKHBhcmVudEhvc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmVnaXN0ZXJIb3N0KHBhcmVudEhvc3QpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9yZWdpc3Rlckhvc3RQYXJlbnQoaG9zdCwgcGFyZW50SG9zdCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluRG9jdW1lbnQucHVzaChob3N0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ19yZWdpc3Rlckhvc3RQYXJlbnQnLFxuICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9yZWdpc3Rlckhvc3RQYXJlbnQoaG9zdCwgcGFyZW50KSB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmluSG9zdFtwYXJlbnQuX3NvcnRpbmdJZF0pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbkhvc3RbcGFyZW50Ll9zb3J0aW5nSWRdID0gW107XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuaW5Ib3N0W3BhcmVudC5fc29ydGluZ0lkXS5wdXNoKGhvc3QpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICdfcmVnaXN0ZXJFbGVtZW50JyxcbiAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBfcmVnaXN0ZXJFbGVtZW50KGVsZW1lbnQsIGhvc3QpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZWxlbWVudHNbaG9zdC5fc29ydGluZ0lkXSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRzW2hvc3QuX3NvcnRpbmdJZF0gPSBbXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50c1tob3N0Ll9zb3J0aW5nSWRdLnB1c2goZWxlbWVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ2V4dHJhY3RFbGVtZW50cycsXG4gICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gZXh0cmFjdEVsZW1lbnRzKGVsZW1lbnRzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRzLmZpbHRlcihmdW5jdGlvbiAoZWxlbWVudCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgaG9zdCA9IGdldFNoYWRvd0hvc3QoeyBjb250ZXh0OiBlbGVtZW50IH0pO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWhvc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3JlZ2lzdGVySG9zdChob3N0KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmVnaXN0ZXJFbGVtZW50KGVsZW1lbnQsIGhvc3QpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSwgdGhpcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ3NvcnQnLFxuICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIHNvcnQoZWxlbWVudHMpIHtcbiAgICAgICAgICAgICAgICB2YXIgX2VsZW1lbnRzID0gdGhpcy5faW5qZWN0SG9zdHMoZWxlbWVudHMpO1xuICAgICAgICAgICAgICAgIF9lbGVtZW50cyA9IHRoaXMuX3JlcGxhY2VIb3N0cyhfZWxlbWVudHMpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2NsZWFudXAoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gX2VsZW1lbnRzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICdfaW5qZWN0SG9zdHMnLFxuICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9pbmplY3RIb3N0cyhlbGVtZW50cykge1xuICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKHRoaXMuaG9zdHMpLmZvckVhY2goZnVuY3Rpb24gKF9zb3J0aW5nSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9saXN0ID0gdGhpcy5lbGVtZW50c1tfc29ydGluZ0lkXTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9lbGVtZW50cyA9IHRoaXMuaW5Ib3N0W19zb3J0aW5nSWRdO1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2NvbnRleHQgPSB0aGlzLmhvc3RzW19zb3J0aW5nSWRdLnNoYWRvd1Jvb3Q7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudHNbX3NvcnRpbmdJZF0gPSB0aGlzLl9tZXJnZShfbGlzdCwgX2VsZW1lbnRzLCBfY29udGV4dCk7XG4gICAgICAgICAgICAgICAgfSwgdGhpcyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21lcmdlKGVsZW1lbnRzLCB0aGlzLmluRG9jdW1lbnQsIHRoaXMuY29udGV4dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ19tZXJnZScsXG4gICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gX21lcmdlKGxpc3QsIGVsZW1lbnRzLCBjb250ZXh0KSB7XG4gICAgICAgICAgICAgICAgdmFyIG1lcmdlZCA9IG1lcmdlSW5Eb21PcmRlcih7XG4gICAgICAgICAgICAgICAgICAgIGxpc3Q6IGxpc3QsXG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzOiBlbGVtZW50c1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNvcnRFbGVtZW50cyhtZXJnZWQsIGNvbnRleHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICdfcmVwbGFjZUhvc3RzJyxcbiAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBfcmVwbGFjZUhvc3RzKGVsZW1lbnRzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1lcmdlSW5Eb21PcmRlcih7XG4gICAgICAgICAgICAgICAgICAgIGxpc3Q6IGVsZW1lbnRzLFxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50czogdGhpcy5pbkRvY3VtZW50LFxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlRWxlbWVudDogdGhpcy5fcmVzb2x2ZUhvc3RFbGVtZW50LmJpbmQodGhpcylcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiAnX3Jlc29sdmVIb3N0RWxlbWVudCcsXG4gICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gX3Jlc29sdmVIb3N0RWxlbWVudChob3N0KSB7XG4gICAgICAgICAgICAgICAgdmFyIG1lcmdlZCA9IG1lcmdlSW5Eb21PcmRlcih7XG4gICAgICAgICAgICAgICAgICAgIGxpc3Q6IHRoaXMuZWxlbWVudHNbaG9zdC5fc29ydGluZ0lkXSxcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudHM6IHRoaXMuaW5Ib3N0W2hvc3QuX3NvcnRpbmdJZF0sXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmVFbGVtZW50OiB0aGlzLl9yZXNvbHZlSG9zdEVsZW1lbnQuYmluZCh0aGlzKVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHZhciBfdGFiaW5kZXggPSB0YWJpbmRleFZhbHVlKGhvc3QpO1xuICAgICAgICAgICAgICAgIGlmIChfdGFiaW5kZXggIT09IG51bGwgJiYgX3RhYmluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtob3N0XS5jb25jYXQobWVyZ2VkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1lcmdlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiAnX2NsZWFudXAnLFxuICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9jbGVhbnVwKCkge1xuICAgICAgICAgICAgICAgIC8vIHJlbW92ZSB0aG9zZSBpZGVudGlmZXJzIHdlIHB1dCBvbiB0aGUgU2hhZG93SG9zdCB0byBhdm9pZCB1c2luZyBNYXAoKVxuICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKHRoaXMuaG9zdHMpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5ob3N0c1trZXldLl9zb3J0aW5nSWQ7XG4gICAgICAgICAgICAgICAgfSwgdGhpcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgXSk7XG4gICAgcmV0dXJuIFNoYWRvd3M7XG59KSgpO1xuZnVuY3Rpb24gc29ydFNoYWRvd2VkKGVsZW1lbnRzLCBjb250ZXh0LCBzb3J0RWxlbWVudHMpIHtcbiAgICB2YXIgc2hhZG93cyA9IG5ldyBTaGFkb3dzKGNvbnRleHQsIHNvcnRFbGVtZW50cyk7XG4gICAgdmFyIF9lbGVtZW50cyA9IHNoYWRvd3MuZXh0cmFjdEVsZW1lbnRzKGVsZW1lbnRzKTtcbiAgICBpZiAoX2VsZW1lbnRzLmxlbmd0aCA9PT0gZWxlbWVudHMubGVuZ3RoKSB7XG4gICAgICAgIC8vIG5vIHNoYWRvd2VkIGNvbnRlbnQgZm91bmQsIG5vIG5lZWQgdG8gY29udGludWVcbiAgICAgICAgcmV0dXJuIHNvcnRFbGVtZW50cyhlbGVtZW50cyk7XG4gICAgfVxuICAgIHJldHVybiBzaGFkb3dzLnNvcnQoX2VsZW1lbnRzKTtcbn1cbmZ1bmN0aW9uIHNvcnRUYWJpbmRleChlbGVtZW50cykge1xuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9IVE1MRWxlbWVudC50YWJJbmRleFxuICAgIC8vIGVsZW1lbnRzIHdpdGggdGFiSW5kZXggXCIwXCIgKGluY2x1ZGluZyB0YWJiYWJsZUVsZW1lbnRzIHdpdGhvdXQgdGFiSW5kZXgpIHNob3VsZCBiZSBuYXZpZ2F0ZWQgaW4gdGhlIG9yZGVyIHRoZXkgYXBwZWFyLlxuICAgIC8vIGVsZW1lbnRzIHdpdGggYSBwb3NpdGl2ZSB0YWJJbmRleDpcbiAgICAvLyAgIEVsZW1lbnRzIHRoYXQgaGF2ZSBpZGVudGljYWwgdGFiSW5kZXhlcyBzaG91bGQgYmUgbmF2aWdhdGVkIGluIHRoZSBvcmRlciB0aGV5IGFwcGVhci5cbiAgICAvLyAgIE5hdmlnYXRpb24gcHJvY2VlZHMgZnJvbSB0aGUgbG93ZXN0IHRhYkluZGV4IHRvIHRoZSBoaWdoZXN0IHRhYkluZGV4LlxuICAgIC8vIE5PVEU6IHNvcnQgaW1wbGVtZW50YXRpb24gbWF5IGJlIHVuc3RhYmxlIGFuZCB0aHVzIG1lc3MgdXAgRE9NIG9yZGVyLFxuICAgIC8vIHRoYXQncyB3aHkgd2UgYnVpbGQgYSBtYXAgdGhhdCdzIGJlaW5nIHNvcnRlZCBpbnN0ZWFkLiBJZiB3ZSB3ZXJlIGFibGUgdG8gcmVseVxuICAgIC8vIG9uIGEgc3RhYmxlIHNvcnRpbmcgYWxnb3JpdGhtLCBzb3J0VGFiaW5kZXgoKSBjb3VsZCBiZSBhcyBzaW1wbGUgYXNcbiAgICAvLyBlbGVtZW50cy5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsgcmV0dXJuIGEudGFiSW5kZXggLSBiLnRhYkluZGV4OyB9KTtcbiAgICAvLyBhdCB0aGlzIHRpbWUgQ2hyb21lIGRvZXMgbm90IHVzZSBhIHN0YWJsZSBzb3J0aW5nIGFsZ29yaXRobVxuICAgIC8vIHNlZSBodHRwOi8vYmxvZy5yb2RuZXlyZWhtLmRlL2FyY2hpdmVzLzE0LVNvcnRpbmctV2VyZS1Eb2luZy1JdC1Xcm9uZy5odG1sI3N0YWJpbGl0eVxuICAgIC8vIE5PVEU6IGNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIHNlZW1lZCBsaWtlIG1vcmUgb3ZlcmhlYWQgdGhhbiBqdXN0IHNvcnRpbmcgdGhpcyB3aXRoIGJ1Y2tldHNcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvTm9kZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvblxuICAgIHZhciBtYXAgPSB7fTtcbiAgICB2YXIgaW5kZXhlcyA9IFtdO1xuICAgIHZhciBub3JtYWwgPSBlbGVtZW50cy5maWx0ZXIoZnVuY3Rpb24gKGVsZW1lbnQpIHtcbiAgICAgICAgLy8gaW4gVHJpZGVudCBhbmQgR2Vja28gU1ZHRWxlbWVudCBkb2VzIG5vdCBrbm93IGFib3V0IHRoZSB0YWJJbmRleCBwcm9wZXJ0eVxuICAgICAgICB2YXIgdGFiSW5kZXggPSBlbGVtZW50LnRhYkluZGV4O1xuICAgICAgICBpZiAodGFiSW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGFiSW5kZXggPSB0YWJpbmRleFZhbHVlKGVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGV4dHJhY3QgZWxlbWVudHMgdGhhdCBkb24ndCBuZWVkIHNvcnRpbmdcbiAgICAgICAgaWYgKHRhYkluZGV4IDw9IDAgfHwgdGFiSW5kZXggPT09IG51bGwgfHwgdGFiSW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFtYXBbdGFiSW5kZXhdKSB7XG4gICAgICAgICAgICAvLyBjcmVhdGUgc29ydGFibGUgYnVja2V0IGZvciBkb20tb3JkZXItcHJlc2VydmF0aW9uIG9mIGVsZW1lbnRzIHdpdGggdGhlIHNhbWUgdGFiSW5kZXhcbiAgICAgICAgICAgIG1hcFt0YWJJbmRleF0gPSBbXTtcbiAgICAgICAgICAgIC8vIG1haW50YWluIGEgbGlzdCBvZiB1bmlxdWUgdGFiSW5kZXhlc1xuICAgICAgICAgICAgaW5kZXhlcy5wdXNoKHRhYkluZGV4KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBzb3J0IGVsZW1lbnQgaW50byB0aGUgcHJvcGVyIGJ1Y2tldFxuICAgICAgICBtYXBbdGFiSW5kZXhdLnB1c2goZWxlbWVudCk7XG4gICAgICAgIC8vIGVsZW1lbnQgbW92ZWQgdG8gc29ydGluZyBtYXAsIHNvIG5vdCBcIm5vcm1hbFwiIGFueW1vcmVcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0pO1xuICAgIC8vIHNvcnQgdGhlIHRhYmluZGV4IGFzY2VuZGluZyxcbiAgICAvLyB0aGVuIHJlc29sdmUgdGhlbSB0byB0aGVpciBhcHByb3ByaWF0ZSBidWNrZXRzLFxuICAgIC8vIHRoZW4gZmxhdHRlbiB0aGUgYXJyYXkgb2YgYXJyYXlzIHRvIGFuIGFycmF5XG4gICAgdmFyIF9lbGVtZW50cyA9IGluZGV4ZXNcbiAgICAgICAgLnNvcnQoKVxuICAgICAgICAubWFwKGZ1bmN0aW9uICh0YWJJbmRleCkge1xuICAgICAgICByZXR1cm4gbWFwW3RhYkluZGV4XTtcbiAgICB9KVxuICAgICAgICAucmVkdWNlUmlnaHQoZnVuY3Rpb24gKHByZXZpb3VzLCBjdXJyZW50KSB7XG4gICAgICAgIHJldHVybiBjdXJyZW50LmNvbmNhdChwcmV2aW91cyk7XG4gICAgfSwgbm9ybWFsKTtcbiAgICByZXR1cm4gX2VsZW1lbnRzO1xufVxudmFyIHN1cHBvcnRzJDggPSB2b2lkIDA7XG5mdW5jdGlvbiBtb3ZlQ29udGV4dFRvQmVnaW5uaW5nKGVsZW1lbnRzLCBjb250ZXh0KSB7XG4gICAgdmFyIHBvcyA9IGVsZW1lbnRzLmluZGV4T2YoY29udGV4dCk7XG4gICAgaWYgKHBvcyA+IDApIHtcbiAgICAgICAgdmFyIHRtcCA9IGVsZW1lbnRzLnNwbGljZShwb3MsIDEpO1xuICAgICAgICByZXR1cm4gdG1wLmNvbmNhdChlbGVtZW50cyk7XG4gICAgfVxuICAgIHJldHVybiBlbGVtZW50cztcbn1cbmZ1bmN0aW9uIHNvcnRFbGVtZW50cyhlbGVtZW50cywgX2NvbnRleHQpIHtcbiAgICBpZiAoc3VwcG9ydHMkOC50YWJzZXF1ZW5jZUFyZWFBdEltZ1Bvc2l0aW9uKSB7XG4gICAgICAgIC8vIFNvbWUgYnJvd3NlcnMgc29ydCA8YXJlYT4gaW4gRE9NIG9yZGVyLCBzb21lIHBsYWNlIHRoZSA8YXJlYT5zXG4gICAgICAgIC8vIHdoZXJlIHRoZSA8aW1nPiByZWZlcmVjaW5nIHRoZW0gd291bGQndmUgYmVlbiBpbiBET00gb3JkZXIuXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tZWRpYWxpemUvYWxseS5qcy9pc3N1ZXMvNVxuICAgICAgICBlbGVtZW50cyA9IHNvcnRBcmVhKGVsZW1lbnRzLCBfY29udGV4dCk7XG4gICAgfVxuICAgIGVsZW1lbnRzID0gc29ydFRhYmluZGV4KGVsZW1lbnRzKTtcbiAgICByZXR1cm4gZWxlbWVudHM7XG59XG5mdW5jdGlvbiBxdWVyeVRhYnNlcXVlbmNlKCkge1xuICAgIHZhciBfcmVmID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fSwgY29udGV4dCA9IF9yZWYuY29udGV4dCwgaW5jbHVkZUNvbnRleHQgPSBfcmVmLmluY2x1ZGVDb250ZXh0LCBpbmNsdWRlT25seVRhYmJhYmxlID0gX3JlZi5pbmNsdWRlT25seVRhYmJhYmxlLCBzdHJhdGVneSA9IF9yZWYuc3RyYXRlZ3k7XG4gICAgaWYgKCFzdXBwb3J0cyQ4KSB7XG4gICAgICAgIHN1cHBvcnRzJDggPSBfc3VwcG9ydHMoKTtcbiAgICB9XG4gICAgdmFyIF9jb250ZXh0ID0gbm9kZUFycmF5KGNvbnRleHQpWzBdIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiAgICB2YXIgZWxlbWVudHMgPSBxdWVyeVRhYmJhYmxlKHtcbiAgICAgICAgY29udGV4dDogX2NvbnRleHQsXG4gICAgICAgIGluY2x1ZGVDb250ZXh0OiBpbmNsdWRlQ29udGV4dCxcbiAgICAgICAgaW5jbHVkZU9ubHlUYWJiYWJsZTogaW5jbHVkZU9ubHlUYWJiYWJsZSxcbiAgICAgICAgc3RyYXRlZ3k6IHN0cmF0ZWd5XG4gICAgfSk7XG4gICAgaWYgKGRvY3VtZW50LmJvZHkuY3JlYXRlU2hhZG93Um9vdCAmJiBwbGF0Zm9ybS5pcy5CTElOSykge1xuICAgICAgICAvLyBzb3J0IHRhYmluZGV4IGxvY2FsaXplZCB0byBzaGFkb3cgZG9tXG4gICAgICAgIC8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vbWVkaWFsaXplL2FsbHkuanMvaXNzdWVzLzZcbiAgICAgICAgZWxlbWVudHMgPSBzb3J0U2hhZG93ZWQoZWxlbWVudHMsIF9jb250ZXh0LCBzb3J0RWxlbWVudHMpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgZWxlbWVudHMgPSBzb3J0RWxlbWVudHMoZWxlbWVudHMsIF9jb250ZXh0KTtcbiAgICB9XG4gICAgaWYgKGluY2x1ZGVDb250ZXh0KSB7XG4gICAgICAgIC8vIGlmIHdlIGluY2x1ZGUgdGhlIGNvbnRleHQgaXRzZWxmLCBpdCBoYXMgdG8gYmUgdGhlIGZpcnN0XG4gICAgICAgIC8vIGVsZW1lbnQgb2YgdGhlIHNlcXVlbmNlXG4gICAgICAgIGVsZW1lbnRzID0gbW92ZUNvbnRleHRUb0JlZ2lubmluZyhlbGVtZW50cywgX2NvbnRleHQpO1xuICAgIH1cbiAgICByZXR1cm4gZWxlbWVudHM7XG59XG4vLyBjb2RlcyBtb3N0bHkgY2xvbmVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2tlaXRoYW11cy9qd2VydHkvYmxvYi9tYXN0ZXIvandlcnR5LmpzXG4vLyBkZWxpYmVyYXRlbHkgbm90IGV4cG9zaW5nIGNoYXJhY3RlcnMgbGlrZSA8LC4tIyogYmVjYXVzZSB0aGV5IHZhcnkgKndpbGRseSpcbi8vIGFjcm9zcyBrZXlib2FyZCBsYXlvdXRzIGFuZCBtYXkgY2F1c2UgdmFyaW91cyBwcm9ibGVtc1xuLy8gKGUuZy4gXCIqXCIgaXMgXCJTaGlmdCArXCIgb24gYSBHZXJtYW4gTWFjIGtleWJvYXJkKVxuLy8gKGUuZy4gXCJAXCIgaXMgXCJBbHQgTFwiIG9uIGEgR2VybWFuIE1hYyBrZXlib2FyZClcbnZhciBrZXljb2RlID0ge1xuICAgIC8vIEVsZW1lbnQgRm9jdXNcbiAgICB0YWI6IDksXG4gICAgLy8gTmF2aWdhdGlvblxuICAgIGxlZnQ6IDM3LFxuICAgIHVwOiAzOCxcbiAgICByaWdodDogMzksXG4gICAgZG93bjogNDAsXG4gICAgcGFnZVVwOiAzMyxcbiAgICAncGFnZS11cCc6IDMzLFxuICAgIHBhZ2VEb3duOiAzNCxcbiAgICAncGFnZS1kb3duJzogMzQsXG4gICAgZW5kOiAzNSxcbiAgICBob21lOiAzNixcbiAgICAvLyBBY3Rpb25cbiAgICBlbnRlcjogMTMsXG4gICAgZXNjYXBlOiAyNyxcbiAgICBzcGFjZTogMzIsXG4gICAgLy8gTW9kaWZpZXJcbiAgICBzaGlmdDogMTYsXG4gICAgY2Fwc0xvY2s6IDIwLFxuICAgICdjYXBzLWxvY2snOiAyMCxcbiAgICBjdHJsOiAxNyxcbiAgICBhbHQ6IDE4LFxuICAgIG1ldGE6IDkxLFxuICAgIC8vIGluIGZpcmVmb3g6IDIyNFxuICAgIC8vIG9uIG1hYyAoY2hyb21lKTogbWV0YS1sZWZ0PTkxLCBtZXRhLXJpZ2h0PTkzXG4gICAgLy8gb24gd2luIChJRTExKTogbWV0YS1sZWZ0PTkxLCBtZXRhLXJpZ2h0PTkyXG4gICAgcGF1c2U6IDE5LFxuICAgIC8vIENvbnRlbnQgTWFuaXB1bGF0aW9uXG4gICAgaW5zZXJ0OiA0NSxcbiAgICBcImRlbGV0ZVwiOiA0NixcbiAgICBiYWNrc3BhY2U6IDgsXG4gICAgLy8gdGhlIHNhbWUgbG9naWNhbCBrZXkgbWF5IGJlIGlkZW50aWZpZWQgdGhyb3VnaCBkaWZmZXJlbnQga2V5Q29kZXNcbiAgICBfYWxpYXM6IHtcbiAgICAgICAgOTE6IFs5MiwgOTMsIDIyNF1cbiAgICB9XG59O1xuLy8gRnVuY3Rpb24ga2V5cyAoMTEyIC0gMTM3KVxuLy8gTk9URTogbm90IGV2ZXJ5IGtleWJvYXJkIGtub3dzIEYxMytcbmZvciAodmFyIG4gPSAxOyBuIDwgMjY7IG4rKykge1xuICAgIGtleWNvZGVbJ2YnICsgbl0gPSBuICsgMTExO1xufVxuLy8gTnVtYmVyIGtleXMgKDQ4LTU3LCBudW1wYWQgOTYtMTA1KVxuLy8gTk9URTogbm90IGV2ZXJ5IGtleWJvYXJkIGtub3dzIG51bS0wK1xuZm9yICh2YXIgX24gPSAwOyBfbiA8IDEwOyBfbisrKSB7XG4gICAgdmFyIGNvZGUgPSBfbiArIDQ4O1xuICAgIHZhciBudW1Db2RlID0gX24gKyA5NjtcbiAgICBrZXljb2RlW19uXSA9IGNvZGU7XG4gICAga2V5Y29kZVsnbnVtLScgKyBfbl0gPSBudW1Db2RlO1xuICAgIGtleWNvZGUuX2FsaWFzW2NvZGVdID0gW251bUNvZGVdO1xufVxuLy8gTGF0aW4gY2hhcmFjdGVycyAoNjUgLSA5MClcbmZvciAodmFyIF9uMiA9IDA7IF9uMiA8IDI2OyBfbjIrKykge1xuICAgIHZhciBfY29kZSA9IF9uMiArIDY1O1xuICAgIHZhciBuYW1lJDEgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKF9jb2RlKS50b0xvd2VyQ2FzZSgpO1xuICAgIGtleWNvZGVbbmFtZSQxXSA9IF9jb2RlO1xufVxudmFyIG1vZGlmaWVyID0ge1xuICAgIGFsdDogJ2FsdEtleScsXG4gICAgY3RybDogJ2N0cmxLZXknLFxuICAgIG1ldGE6ICdtZXRhS2V5JyxcbiAgICBzaGlmdDogJ3NoaWZ0S2V5J1xufTtcbnZhciBtb2RpZmllclNlcXVlbmNlID0gT2JqZWN0LmtleXMobW9kaWZpZXIpLm1hcChmdW5jdGlvbiAobmFtZSkge1xuICAgIHJldHVybiBtb2RpZmllcltuYW1lXTtcbn0pO1xuZnVuY3Rpb24gY3JlYXRlRXhwZWN0ZWRNb2RpZmllcnMoaWdub3JlTW9kaWZpZXJzKSB7XG4gICAgdmFyIHZhbHVlID0gaWdub3JlTW9kaWZpZXJzID8gbnVsbCA6IGZhbHNlO1xuICAgIHJldHVybiB7XG4gICAgICAgIGFsdEtleTogdmFsdWUsXG4gICAgICAgIGN0cmxLZXk6IHZhbHVlLFxuICAgICAgICBtZXRhS2V5OiB2YWx1ZSxcbiAgICAgICAgc2hpZnRLZXk6IHZhbHVlXG4gICAgfTtcbn1cbmZ1bmN0aW9uIHJlc29sdmVNb2RpZmllcnMobW9kaWZpZXJzKSB7XG4gICAgdmFyIGlnbm9yZU1vZGlmaWVycyA9IG1vZGlmaWVycy5pbmRleE9mKCcqJykgIT09IC0xO1xuICAgIHZhciBleHBlY3RlZCA9IGNyZWF0ZUV4cGVjdGVkTW9kaWZpZXJzKGlnbm9yZU1vZGlmaWVycyk7XG4gICAgbW9kaWZpZXJzLmZvckVhY2goZnVuY3Rpb24gKHRva2VuKSB7XG4gICAgICAgIGlmICh0b2tlbiA9PT0gJyonKSB7XG4gICAgICAgICAgICAvLyB3ZSd2ZSBhbHJlYWR5IGNvdmVyZWQgdGhlIGFsbC1pbiBvcGVyYXRvclxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIHdlIHdhbnQgdGhlIG1vZGlmaWVyIHByZXNzZWRcbiAgICAgICAgdmFyIHZhbHVlID0gdHJ1ZTtcbiAgICAgICAgdmFyIG9wZXJhdG9yID0gdG9rZW4uc2xpY2UoMCwgMSk7XG4gICAgICAgIGlmIChvcGVyYXRvciA9PT0gJz8nKSB7XG4gICAgICAgICAgICAvLyB3ZSBkb24ndCBjYXJlIGlmIHRoZSBtb2RpZmllciBpcyBwcmVzc2VkXG4gICAgICAgICAgICB2YWx1ZSA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAob3BlcmF0b3IgPT09ICchJykge1xuICAgICAgICAgICAgLy8gd2UgZG8gbm90IHdhbnQgdGhlIG1vZGlmaWVyIHByZXNzZWRcbiAgICAgICAgICAgIHZhbHVlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlICE9PSB0cnVlKSB7XG4gICAgICAgICAgICAvLyBjb21wZW5zYXRlIGZvciB0aGUgbW9kaWZpZXIncyBvcGVyYXRvclxuICAgICAgICAgICAgdG9rZW4gPSB0b2tlbi5zbGljZSgxKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcHJvcGVydHlOYW1lID0gbW9kaWZpZXJbdG9rZW5dO1xuICAgICAgICBpZiAoIXByb3BlcnR5TmFtZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVW5rbm93biBtb2RpZmllciBcIicgKyB0b2tlbiArICdcIicpO1xuICAgICAgICB9XG4gICAgICAgIGV4cGVjdGVkW3Byb3BlcnR5TmFtZV0gPSB2YWx1ZTtcbiAgICB9KTtcbiAgICByZXR1cm4gZXhwZWN0ZWQ7XG59XG5mdW5jdGlvbiByZXNvbHZlS2V5KGtleSkge1xuICAgIHZhciBjb2RlID0ga2V5Y29kZVtrZXldIHx8IHBhcnNlSW50KGtleSwgMTApO1xuICAgIGlmICghY29kZSB8fCB0eXBlb2YgY29kZSAhPT0gJ251bWJlcicgfHwgaXNOYU4oY29kZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVW5rbm93biBrZXkgXCInICsga2V5ICsgJ1wiJyk7XG4gICAgfVxuICAgIHJldHVybiBbY29kZV0uY29uY2F0KGtleWNvZGUuX2FsaWFzW2NvZGVdIHx8IFtdKTtcbn1cbmZ1bmN0aW9uIG1hdGNoTW9kaWZpZXJzKGV4cGVjdGVkLCBldmVudCkge1xuICAgIC8vIHJldHVybnMgdHJ1ZSBvbiBtYXRjaFxuICAgIHJldHVybiAhbW9kaWZpZXJTZXF1ZW5jZS5zb21lKGZ1bmN0aW9uIChwcm9wKSB7XG4gICAgICAgIC8vIHJldHVybnMgdHJ1ZSBvbiBtaXNtYXRjaFxuICAgICAgICByZXR1cm4gKHR5cGVvZiBleHBlY3RlZFtwcm9wXSA9PT0gJ2Jvb2xlYW4nICYmXG4gICAgICAgICAgICBCb29sZWFuKGV2ZW50W3Byb3BdKSAhPT0gZXhwZWN0ZWRbcHJvcF0pO1xuICAgIH0pO1xufVxuZnVuY3Rpb24ga2V5QmluZGluZyh0ZXh0KSB7XG4gICAgcmV0dXJuIHRleHQuc3BsaXQoL1xccysvKS5tYXAoZnVuY3Rpb24gKF90ZXh0KSB7XG4gICAgICAgIHZhciB0b2tlbnMgPSBfdGV4dC5zcGxpdCgnKycpO1xuICAgICAgICB2YXIgX21vZGlmaWVycyA9IHJlc29sdmVNb2RpZmllcnModG9rZW5zLnNsaWNlKDAsIC0xKSk7XG4gICAgICAgIHZhciBfa2V5Q29kZXMgPSByZXNvbHZlS2V5KHRva2Vucy5zbGljZSgtMSkpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAga2V5Q29kZXM6IF9rZXlDb2RlcyxcbiAgICAgICAgICAgIG1vZGlmaWVyczogX21vZGlmaWVycyxcbiAgICAgICAgICAgIG1hdGNoTW9kaWZpZXJzOiBtYXRjaE1vZGlmaWVycy5iaW5kKG51bGwsIF9tb2RpZmllcnMpXG4gICAgICAgIH07XG4gICAgfSk7XG59XG4vLyBOb2RlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIGlzIGF2YWlsYWJsZSBzaW5jZSBJRTlcbi8vIHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvTm9kZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvblxuLy8gY2FsbGJhY2sgcmV0dXJucyB0cnVlIHdoZW4gZWxlbWVudCBpcyBjb250YWluZWQgYnkgcGFyZW50IG9yIGlzIHRoZSBwYXJlbnQgc3VpdGVkIGZvciB1c2Ugd2l0aCBBcnJheS5zb21lKClcbi8qXG4gIFVTQUdFOlxuICAgIHZhciBpc0NoaWxkT2YgPSBnZXRQYXJlbnRDb21wYXJhdG9yKHtwYXJlbnQ6IHNvbWVOb2RlfSk7XG4gICAgbGlzdE9mRWxlbWVudHMuc29tZShpc0NoaWxkT2YpXG4qL1xuZnVuY3Rpb24gZ2V0UGFyZW50Q29tcGFyYXRvcigpIHtcbiAgICB2YXIgX3JlZiA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge30sIHBhcmVudCA9IF9yZWYucGFyZW50LCBlbGVtZW50ID0gX3JlZi5lbGVtZW50LCBpbmNsdWRlU2VsZiA9IF9yZWYuaW5jbHVkZVNlbGY7XG4gICAgaWYgKHBhcmVudCkge1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gaXNDaGlsZE9mKG5vZGUpIHtcbiAgICAgICAgICAgIHJldHVybiBCb29sZWFuKChpbmNsdWRlU2VsZiAmJiBub2RlID09PSBwYXJlbnQpIHx8XG4gICAgICAgICAgICAgICAgcGFyZW50LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKG5vZGUpICZcbiAgICAgICAgICAgICAgICAgICAgTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9DT05UQUlORURfQlkpO1xuICAgICAgICB9O1xuICAgIH1cbiAgICBlbHNlIGlmIChlbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiBpc1BhcmVudE9mKG5vZGUpIHtcbiAgICAgICAgICAgIHJldHVybiBCb29sZWFuKChpbmNsdWRlU2VsZiAmJiBlbGVtZW50ID09PSBub2RlKSB8fFxuICAgICAgICAgICAgICAgIG5vZGUuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZWxlbWVudCkgJlxuICAgICAgICAgICAgICAgICAgICBOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0NPTlRBSU5FRF9CWSk7XG4gICAgICAgIH07XG4gICAgfVxuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ3V0aWwvY29tcGFyZS1wb3NpdGlvbiNnZXRQYXJlbnRDb21wYXJhdG9yIHJlcXVpcmVkIGVpdGhlciBvcHRpb25zLnBhcmVudCBvciBvcHRpb25zLmVsZW1lbnQnKTtcbn1cbi8vIEJ1ZyAyODY5MzMgLSBLZXkgZXZlbnRzIGluIHRoZSBhdXRvY29tcGxldGUgcG9wdXAgc2hvdWxkIGJlIGhpZGRlbiBmcm9tIHBhZ2Ugc2NyaXB0c1xuLy8gQGJyb3dzZXItaXNzdWUgR2Vja28gaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjg2OTMzXG5mdW5jdGlvbiB3aGVuS2V5KCkge1xuICAgIHZhciBtYXAgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9O1xuICAgIHZhciBiaW5kaW5ncyA9IHt9O1xuICAgIHZhciBjb250ZXh0ID0gbm9kZUFycmF5KG1hcC5jb250ZXh0KVswXSB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG4gICAgZGVsZXRlIG1hcC5jb250ZXh0O1xuICAgIHZhciBmaWx0ZXIgPSBub2RlQXJyYXkobWFwLmZpbHRlcik7XG4gICAgZGVsZXRlIG1hcC5maWx0ZXI7XG4gICAgdmFyIG1hcEtleXMgPSBPYmplY3Qua2V5cyhtYXApO1xuICAgIGlmICghbWFwS2V5cy5sZW5ndGgpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignd2hlbi9rZXkgcmVxdWlyZXMgYXQgbGVhc3Qgb25lIG9wdGlvbiBrZXknKTtcbiAgICB9XG4gICAgdmFyIHJlZ2lzdGVyQmluZGluZyA9IGZ1bmN0aW9uIHJlZ2lzdGVyQmluZGluZyhldmVudCkge1xuICAgICAgICBldmVudC5rZXlDb2Rlcy5mb3JFYWNoKGZ1bmN0aW9uIChjb2RlKSB7XG4gICAgICAgICAgICBpZiAoIWJpbmRpbmdzW2NvZGVdKSB7XG4gICAgICAgICAgICAgICAgYmluZGluZ3NbY29kZV0gPSBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJpbmRpbmdzW2NvZGVdLnB1c2goZXZlbnQpO1xuICAgICAgICB9KTtcbiAgICB9O1xuICAgIG1hcEtleXMuZm9yRWFjaChmdW5jdGlvbiAodGV4dCkge1xuICAgICAgICBpZiAodHlwZW9mIG1hcFt0ZXh0XSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignd2hlbi9rZXkgcmVxdWlyZXMgb3B0aW9uW1wiJyArIHRleHQgKyAnXCJdIHRvIGJlIGEgZnVuY3Rpb24nKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgYWRkQ2FsbGJhY2sgPSBmdW5jdGlvbiBhZGRDYWxsYmFjayhldmVudCkge1xuICAgICAgICAgICAgZXZlbnQuY2FsbGJhY2sgPSBtYXBbdGV4dF07XG4gICAgICAgICAgICByZXR1cm4gZXZlbnQ7XG4gICAgICAgIH07XG4gICAgICAgIGtleUJpbmRpbmcodGV4dCkubWFwKGFkZENhbGxiYWNrKS5mb3JFYWNoKHJlZ2lzdGVyQmluZGluZyk7XG4gICAgfSk7XG4gICAgdmFyIGhhbmRsZUtleURvd24gPSBmdW5jdGlvbiBoYW5kbGVLZXlEb3duKGV2ZW50KSB7XG4gICAgICAgIGlmIChldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZpbHRlci5sZW5ndGgpIHtcbiAgICAgICAgICAgIC8vIGlnbm9yZSBlbGVtZW50cyB3aXRoaW4gdGhlIGV4ZW1wdGVkIHN1Yi10cmVlc1xuICAgICAgICAgICAgdmFyIGlzUGFyZW50T2ZFbGVtZW50ID0gZ2V0UGFyZW50Q29tcGFyYXRvcih7XG4gICAgICAgICAgICAgICAgZWxlbWVudDogZXZlbnQudGFyZ2V0LFxuICAgICAgICAgICAgICAgIGluY2x1ZGVTZWxmOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChmaWx0ZXIuc29tZShpc1BhcmVudE9mRWxlbWVudCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGtleSA9IGV2ZW50LmtleUNvZGUgfHwgZXZlbnQud2hpY2g7XG4gICAgICAgIGlmICghYmluZGluZ3Nba2V5XSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGJpbmRpbmdzW2tleV0uZm9yRWFjaChmdW5jdGlvbiAoX2V2ZW50KSB7XG4gICAgICAgICAgICBpZiAoIV9ldmVudC5tYXRjaE1vZGlmaWVycyhldmVudCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBfZXZlbnQuY2FsbGJhY2suY2FsbChjb250ZXh0LCBldmVudCwgZGlzZW5nYWdlKTtcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBjb250ZXh0LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBoYW5kbGVLZXlEb3duLCBmYWxzZSk7XG4gICAgdmFyIGRpc2VuZ2FnZSA9IGZ1bmN0aW9uIGRpc2VuZ2FnZSgpIHtcbiAgICAgICAgY29udGV4dC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgaGFuZGxlS2V5RG93biwgZmFsc2UpO1xuICAgIH07XG4gICAgcmV0dXJuIHsgZGlzZW5nYWdlOiBkaXNlbmdhZ2UgfTtcbn1cbmZ1bmN0aW9uIGRlZmF1bHRfMShfYSkge1xuICAgIHZhciBfYiA9IF9hID09PSB2b2lkIDAgPyB7fSA6IF9hLCBjb250ZXh0ID0gX2IuY29udGV4dDtcbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgICAgY29udGV4dCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiAgICB9XG4gICAgLy8gTWFrZSBzdXJlIHRoZSBzdXBwb3J0cyB0ZXN0cyBhcmUgcnVuIGJlZm9yZSBpbnRlcmNlcHRpbmcgdGhlIFRhYiBrZXksXG4gICAgLy8gb3IgSUUxMCBhbmQgSUUxMSB3aWxsIGZhaWwgdG8gcHJvY2VzcyB0aGUgZmlyc3QgVGFiIGtleSBldmVudC4gTm90XG4gICAgLy8gbGltaXRpbmcgdGhpcyB3YXJtLXVwIHRvIElFIGJlY2F1c2UgaXQgbWF5IGJlIGEgcHJvYmxlbSBlbHNld2hlcmUsIHRvby5cbiAgICBxdWVyeVRhYnNlcXVlbmNlKCk7XG4gICAgcmV0dXJuIHdoZW5LZXkoe1xuICAgICAgICAvLyBTYWZhcmkgb24gT1NYIG1heSByZXF1aXJlIEFMVCtUQUIgdG8gcmVhY2ggbGlua3MsXG4gICAgICAgIC8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vbWVkaWFsaXplL2FsbHkuanMvaXNzdWVzLzE0NlxuICAgICAgICAnP2FsdCs/c2hpZnQrdGFiJzogZnVuY3Rpb24gYWx0U2hpZnRUYWIoZXZlbnQpIHtcbiAgICAgICAgICAgIC8vIHdlJ3JlIGNvbXBsZXRlbHkgdGFraW5nIG92ZXIgdGhlIFRhYiBrZXkgaGFuZGxpbmdcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB2YXIgc2VxdWVuY2UgPSBxdWVyeVRhYnNlcXVlbmNlKHtcbiAgICAgICAgICAgICAgICBjb250ZXh0OiBjb250ZXh0XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHZhciBiYWNrd2FyZCA9IGV2ZW50LnNoaWZ0S2V5O1xuICAgICAgICAgICAgdmFyIGZpcnN0ID0gc2VxdWVuY2VbMF07XG4gICAgICAgICAgICB2YXIgbGFzdCA9IHNlcXVlbmNlW3NlcXVlbmNlLmxlbmd0aCAtIDFdO1xuICAgICAgICAgICAgLy8gd3JhcCBhcm91bmQgZmlyc3QgdG8gbGFzdCwgbGFzdCB0byBmaXJzdFxuICAgICAgICAgICAgdmFyIHNvdXJjZSA9IGJhY2t3YXJkID8gZmlyc3QgOiBsYXN0O1xuICAgICAgICAgICAgdmFyIHRhcmdldCA9IGJhY2t3YXJkID8gbGFzdCA6IGZpcnN0O1xuICAgICAgICAgICAgaWYgKGlzQWN0aXZlRWxlbWVudChzb3VyY2UpKSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gZmluZCBjdXJyZW50IHBvc2l0aW9uIGluIHRhYnNlcXVlbmNlXG4gICAgICAgICAgICB2YXIgY3VycmVudEluZGV4ID0gdm9pZCAwO1xuICAgICAgICAgICAgdmFyIGZvdW5kID0gc2VxdWVuY2Uuc29tZShmdW5jdGlvbiAoZWxlbWVudCwgaW5kZXgpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWlzQWN0aXZlRWxlbWVudChlbGVtZW50KSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGN1cnJlbnRJbmRleCA9IGluZGV4O1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoIWZvdW5kKSB7XG4gICAgICAgICAgICAgICAgLy8gcmVkaXJlY3QgdG8gZmlyc3QgYXMgd2UncmUgbm90IGluIG91ciB0YWJzZXF1ZW5jZVxuICAgICAgICAgICAgICAgIGZpcnN0LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gc2hpZnQgZm9jdXMgdG8gcHJldmlvdXMvbmV4dCBlbGVtZW50IGluIHRoZSBzZXF1ZW5jZVxuICAgICAgICAgICAgdmFyIG9mZnNldCA9IGJhY2t3YXJkID8gLTEgOiAxO1xuICAgICAgICAgICAgc2VxdWVuY2VbY3VycmVudEluZGV4ICsgb2Zmc2V0XS5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IGRlZmF1bHRfMTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW1haW50YWluLS10YWItZm9jdXMuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/Overlay/maintain--tab-focus.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/Overlay/styles.js": +/*!****************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/Overlay/styles.js ***! + \****************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nexports.__esModule = true;\nexports.styles = void 0;\nvar noop_template_1 = __webpack_require__(/*! ../../helpers/noop-template */ \"./node_modules/@next/react-dev-overlay/lib/internal/helpers/noop-template.js\");\nvar styles = (0, noop_template_1.noop)(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\n [data-nextjs-dialog-overlay] {\\n position: fixed;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n overflow: auto;\\n z-index: 9000;\\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: rgba(17, 17, 17, 0.2);\\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\"], [\"\\n [data-nextjs-dialog-overlay] {\\n position: fixed;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n overflow: auto;\\n z-index: 9000;\\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: rgba(17, 17, 17, 0.2);\\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\"])));\nexports.styles = styles;\nvar templateObject_1;\n//# sourceMappingURL=styles.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvT3ZlcmxheS9zdHlsZXMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBLGlDQUFpQyx1Q0FBdUMsWUFBWSxLQUFLLE9BQU87QUFDaEc7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQixjQUFjO0FBQ2Qsc0JBQXNCLG1CQUFPLENBQUMsaUhBQTZCO0FBQzNELHdJQUF3SSxzQkFBc0IsYUFBYSxlQUFlLGdCQUFnQixjQUFjLHFCQUFxQixvQkFBb0Isc0JBQXNCLDRCQUE0QiwwQkFBMEIsNkJBQTZCLDJCQUEyQixLQUFLLGtDQUFrQyxvQ0FBb0MsNkJBQTZCLE9BQU8sS0FBSyxxQ0FBcUMsc0JBQXNCLGFBQWEsZUFBZSxnQkFBZ0IsY0FBYyw4Q0FBOEMsMEJBQTBCLGtCQUFrQixLQUFLLDJDQUEyQywwQkFBMEIseUNBQXlDLGlDQUFpQyxLQUFLLDBDQUEwQyxzQkFBc0IsYUFBYSxlQUFlLGdCQUFnQixjQUFjLHFCQUFxQixvQkFBb0Isc0JBQXNCLDRCQUE0QiwwQkFBMEIsNkJBQTZCLDJCQUEyQixLQUFLLGtDQUFrQyxvQ0FBb0MsNkJBQTZCLE9BQU8sS0FBSyxxQ0FBcUMsc0JBQXNCLGFBQWEsZUFBZSxnQkFBZ0IsY0FBYyw4Q0FBOEMsMEJBQTBCLGtCQUFrQixLQUFLLDJDQUEyQywwQkFBMEIseUNBQXlDLGlDQUFpQyxLQUFLO0FBQ3BtRCxjQUFjO0FBQ2Q7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvT3ZlcmxheS9zdHlsZXMuanM/YTA4YyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX21ha2VUZW1wbGF0ZU9iamVjdCA9ICh0aGlzICYmIHRoaXMuX19tYWtlVGVtcGxhdGVPYmplY3QpIHx8IGZ1bmN0aW9uIChjb29rZWQsIHJhdykge1xuICAgIGlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvb2tlZCwgXCJyYXdcIiwgeyB2YWx1ZTogcmF3IH0pOyB9IGVsc2UgeyBjb29rZWQucmF3ID0gcmF3OyB9XG4gICAgcmV0dXJuIGNvb2tlZDtcbn07XG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5zdHlsZXMgPSB2b2lkIDA7XG52YXIgbm9vcF90ZW1wbGF0ZV8xID0gcmVxdWlyZShcIi4uLy4uL2hlbHBlcnMvbm9vcC10ZW1wbGF0ZVwiKTtcbnZhciBzdHlsZXMgPSAoMCwgbm9vcF90ZW1wbGF0ZV8xLm5vb3ApKHRlbXBsYXRlT2JqZWN0XzEgfHwgKHRlbXBsYXRlT2JqZWN0XzEgPSBfX21ha2VUZW1wbGF0ZU9iamVjdChbXCJcXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctb3ZlcmxheV0ge1xcbiAgICBwb3NpdGlvbjogZml4ZWQ7XFxuICAgIHRvcDogMDtcXG4gICAgcmlnaHQ6IDA7XFxuICAgIGJvdHRvbTogMDtcXG4gICAgbGVmdDogMDtcXG4gICAgb3ZlcmZsb3c6IGF1dG87XFxuICAgIHotaW5kZXg6IDkwMDA7XFxuXFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgcGFkZGluZzogMTB2aCAxNXB4IDA7XFxuICB9XFxuXFxuICBAbWVkaWEgKG1heC1oZWlnaHQ6IDgxMnB4KSB7XFxuICAgIFtkYXRhLW5leHRqcy1kaWFsb2ctb3ZlcmxheV0ge1xcbiAgICAgIHBhZGRpbmc6IDE1cHggMTVweCAwO1xcbiAgICB9XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWJhY2tkcm9wXSB7XFxuICAgIHBvc2l0aW9uOiBmaXhlZDtcXG4gICAgdG9wOiAwO1xcbiAgICByaWdodDogMDtcXG4gICAgYm90dG9tOiAwO1xcbiAgICBsZWZ0OiAwO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE3LCAxNywgMTcsIDAuMik7XFxuICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XFxuICAgIHotaW5kZXg6IC0xO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1iYWNrZHJvcC1maXhlZF0ge1xcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xcbiAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpO1xcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTtcXG4gIH1cXG5cIl0sIFtcIlxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1vdmVybGF5XSB7XFxuICAgIHBvc2l0aW9uOiBmaXhlZDtcXG4gICAgdG9wOiAwO1xcbiAgICByaWdodDogMDtcXG4gICAgYm90dG9tOiAwO1xcbiAgICBsZWZ0OiAwO1xcbiAgICBvdmVyZmxvdzogYXV0bztcXG4gICAgei1pbmRleDogOTAwMDtcXG5cXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24tY29udGVudDogY2VudGVyO1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICBwYWRkaW5nOiAxMHZoIDE1cHggMDtcXG4gIH1cXG5cXG4gIEBtZWRpYSAobWF4LWhlaWdodDogODEycHgpIHtcXG4gICAgW2RhdGEtbmV4dGpzLWRpYWxvZy1vdmVybGF5XSB7XFxuICAgICAgcGFkZGluZzogMTVweCAxNXB4IDA7XFxuICAgIH1cXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctYmFja2Ryb3BdIHtcXG4gICAgcG9zaXRpb246IGZpeGVkO1xcbiAgICB0b3A6IDA7XFxuICAgIHJpZ2h0OiAwO1xcbiAgICBib3R0b206IDA7XFxuICAgIGxlZnQ6IDA7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTcsIDE3LCAxNywgMC4yKTtcXG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDtcXG4gICAgei1pbmRleDogLTE7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWJhY2tkcm9wLWZpeGVkXSB7XFxuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxuICAgIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDhweCk7XFxuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpO1xcbiAgfVxcblwiXSkpKTtcbmV4cG9ydHMuc3R5bGVzID0gc3R5bGVzO1xudmFyIHRlbXBsYXRlT2JqZWN0XzE7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1zdHlsZXMuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/Overlay/styles.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/ShadowPortal.js": +/*!**************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/ShadowPortal.js ***! + \**************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nexports.__esModule = true;\nexports.ShadowPortal = void 0;\nvar React = __importStar(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nvar react_dom_1 = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\nvar ShadowPortal = function Portal(_a) {\n var children = _a.children;\n var mountNode = React.useRef(null);\n var portalNode = React.useRef(null);\n var shadowNode = React.useRef(null);\n var _b = __read(React.useState(), 2), forceUpdate = _b[1];\n React.useLayoutEffect(function () {\n var ownerDocument = mountNode.current.ownerDocument;\n portalNode.current = ownerDocument.createElement('nextjs-portal');\n shadowNode.current = portalNode.current.attachShadow({ mode: 'open' });\n ownerDocument.body.appendChild(portalNode.current);\n forceUpdate({});\n return function () {\n if (portalNode.current && portalNode.current.ownerDocument) {\n portalNode.current.ownerDocument.body.removeChild(portalNode.current);\n }\n };\n }, []);\n return shadowNode.current ? ((0, react_dom_1.createPortal)(children, shadowNode.current)) : (React.createElement(\"span\", { ref: mountNode }));\n};\nexports.ShadowPortal = ShadowPortal;\n//# sourceMappingURL=ShadowPortal.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvU2hhZG93UG9ydGFsLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQTtBQUNBLG1DQUFtQyxvQ0FBb0MsZ0JBQWdCO0FBQ3ZGLENBQUM7QUFDRDtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0EsMENBQTBDLDRCQUE0QjtBQUN0RSxDQUFDO0FBQ0Q7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixNQUFNO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQixvQkFBb0I7QUFDcEIseUJBQXlCLG1CQUFPLENBQUMsNENBQU87QUFDeEMsa0JBQWtCLG1CQUFPLENBQUMsb0RBQVc7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0RBQStELGNBQWM7QUFDN0U7QUFDQSxzQkFBc0I7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCwrSEFBK0gsZ0JBQWdCO0FBQy9JO0FBQ0Esb0JBQW9CO0FBQ3BCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AbmV4dC9yZWFjdC1kZXYtb3ZlcmxheS9saWIvaW50ZXJuYWwvY29tcG9uZW50cy9TaGFkb3dQb3J0YWwuanM/ZGYxMiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2NyZWF0ZUJpbmRpbmcgPSAodGhpcyAmJiB0aGlzLl9fY3JlYXRlQmluZGluZykgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gbVtrXTsgfSB9KTtcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBvW2syXSA9IG1ba107XG59KSk7XG52YXIgX19zZXRNb2R1bGVEZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX3NldE1vZHVsZURlZmF1bHQpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIHYpIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgXCJkZWZhdWx0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7XG59KSA6IGZ1bmN0aW9uKG8sIHYpIHtcbiAgICBvW1wiZGVmYXVsdFwiXSA9IHY7XG59KTtcbnZhciBfX2ltcG9ydFN0YXIgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0U3RhcikgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpIHJldHVybiBtb2Q7XG4gICAgdmFyIHJlc3VsdCA9IHt9O1xuICAgIGlmIChtb2QgIT0gbnVsbCkgZm9yICh2YXIgayBpbiBtb2QpIGlmIChrICE9PSBcImRlZmF1bHRcIiAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobW9kLCBrKSkgX19jcmVhdGVCaW5kaW5nKHJlc3VsdCwgbW9kLCBrKTtcbiAgICBfX3NldE1vZHVsZURlZmF1bHQocmVzdWx0LCBtb2QpO1xuICAgIHJldHVybiByZXN1bHQ7XG59O1xudmFyIF9fcmVhZCA9ICh0aGlzICYmIHRoaXMuX19yZWFkKSB8fCBmdW5jdGlvbiAobywgbikge1xuICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9bU3ltYm9sLml0ZXJhdG9yXTtcbiAgICBpZiAoIW0pIHJldHVybiBvO1xuICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlO1xuICAgIHRyeSB7XG4gICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpO1xuICAgIH1cbiAgICBjYXRjaCAoZXJyb3IpIHsgZSA9IHsgZXJyb3I6IGVycm9yIH07IH1cbiAgICBmaW5hbGx5IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpW1wicmV0dXJuXCJdKSkgbS5jYWxsKGkpO1xuICAgICAgICB9XG4gICAgICAgIGZpbmFsbHkgeyBpZiAoZSkgdGhyb3cgZS5lcnJvcjsgfVxuICAgIH1cbiAgICByZXR1cm4gYXI7XG59O1xuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHMuU2hhZG93UG9ydGFsID0gdm9pZCAwO1xudmFyIFJlYWN0ID0gX19pbXBvcnRTdGFyKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG52YXIgcmVhY3RfZG9tXzEgPSByZXF1aXJlKFwicmVhY3QtZG9tXCIpO1xudmFyIFNoYWRvd1BvcnRhbCA9IGZ1bmN0aW9uIFBvcnRhbChfYSkge1xuICAgIHZhciBjaGlsZHJlbiA9IF9hLmNoaWxkcmVuO1xuICAgIHZhciBtb3VudE5vZGUgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgdmFyIHBvcnRhbE5vZGUgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgdmFyIHNoYWRvd05vZGUgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgdmFyIF9iID0gX19yZWFkKFJlYWN0LnVzZVN0YXRlKCksIDIpLCBmb3JjZVVwZGF0ZSA9IF9iWzFdO1xuICAgIFJlYWN0LnVzZUxheW91dEVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBvd25lckRvY3VtZW50ID0gbW91bnROb2RlLmN1cnJlbnQub3duZXJEb2N1bWVudDtcbiAgICAgICAgcG9ydGFsTm9kZS5jdXJyZW50ID0gb3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCduZXh0anMtcG9ydGFsJyk7XG4gICAgICAgIHNoYWRvd05vZGUuY3VycmVudCA9IHBvcnRhbE5vZGUuY3VycmVudC5hdHRhY2hTaGFkb3coeyBtb2RlOiAnb3BlbicgfSk7XG4gICAgICAgIG93bmVyRG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChwb3J0YWxOb2RlLmN1cnJlbnQpO1xuICAgICAgICBmb3JjZVVwZGF0ZSh7fSk7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpZiAocG9ydGFsTm9kZS5jdXJyZW50ICYmIHBvcnRhbE5vZGUuY3VycmVudC5vd25lckRvY3VtZW50KSB7XG4gICAgICAgICAgICAgICAgcG9ydGFsTm9kZS5jdXJyZW50Lm93bmVyRG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChwb3J0YWxOb2RlLmN1cnJlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH0sIFtdKTtcbiAgICByZXR1cm4gc2hhZG93Tm9kZS5jdXJyZW50ID8gKCgwLCByZWFjdF9kb21fMS5jcmVhdGVQb3J0YWwpKGNoaWxkcmVuLCBzaGFkb3dOb2RlLmN1cnJlbnQpKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7IHJlZjogbW91bnROb2RlIH0pKTtcbn07XG5leHBvcnRzLlNoYWRvd1BvcnRhbCA9IFNoYWRvd1BvcnRhbDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVNoYWRvd1BvcnRhbC5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/ShadowPortal.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/Terminal/Terminal.js": +/*!*******************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/Terminal/Terminal.js ***! + \*******************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nexports.__esModule = true;\nexports.Terminal = void 0;\nvar anser_1 = __importDefault(__webpack_require__(/*! anser */ \"./node_modules/anser/lib/index.js\"));\nvar React = __importStar(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nvar Terminal = function Terminal(_a) {\n var content = _a.content;\n var decoded = React.useMemo(function () {\n return anser_1[\"default\"].ansiToJson(content, {\n json: true,\n use_classes: true,\n remove_empty: true\n });\n }, [content]);\n return (React.createElement(\"div\", { \"data-nextjs-terminal\": true },\n React.createElement(\"pre\", null, decoded.map(function (entry, index) { return (React.createElement(\"span\", { key: \"terminal-entry-\" + index, style: __assign({ color: entry.fg ? \"var(--color-\" + entry.fg + \")\" : undefined }, (entry.decoration === 'bold'\n ? { fontWeight: 800 }\n : entry.decoration === 'italic'\n ? { fontStyle: 'italic' }\n : undefined)) }, entry.content)); }))));\n};\nexports.Terminal = Terminal;\n//# sourceMappingURL=Terminal.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvVGVybWluYWwvVGVybWluYWwuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBO0FBQ0EsaURBQWlELE9BQU87QUFDeEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMsb0NBQW9DLGdCQUFnQjtBQUN2RixDQUFDO0FBQ0Q7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBLDBDQUEwQyw0QkFBNEI7QUFDdEUsQ0FBQztBQUNEO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2Q0FBNkM7QUFDN0M7QUFDQSxrQkFBa0I7QUFDbEIsZ0JBQWdCO0FBQ2hCLDhCQUE4QixtQkFBTyxDQUFDLGdEQUFPO0FBQzdDLHlCQUF5QixtQkFBTyxDQUFDLDRDQUFPO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULEtBQUs7QUFDTCx5Q0FBeUMsOEJBQThCO0FBQ3ZFLCtFQUErRSxzQ0FBc0Msa0RBQWtELCtEQUErRDtBQUN0TyxvQkFBb0I7QUFDcEI7QUFDQSx3QkFBd0I7QUFDeEIsbUNBQW1DLG9CQUFvQjtBQUN2RDtBQUNBLGdCQUFnQjtBQUNoQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvVGVybWluYWwvVGVybWluYWwuanM/MTdhZCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2Fzc2lnbiA9ICh0aGlzICYmIHRoaXMuX19hc3NpZ24pIHx8IGZ1bmN0aW9uICgpIHtcbiAgICBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24odCkge1xuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpXG4gICAgICAgICAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHQ7XG4gICAgfTtcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn07XG52YXIgX19jcmVhdGVCaW5kaW5nID0gKHRoaXMgJiYgdGhpcy5fX2NyZWF0ZUJpbmRpbmcpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfSk7XG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgb1trMl0gPSBtW2tdO1xufSkpO1xudmFyIF9fc2V0TW9kdWxlRGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19zZXRNb2R1bGVEZWZhdWx0KSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCB2KSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIFwiZGVmYXVsdFwiLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2IH0pO1xufSkgOiBmdW5jdGlvbihvLCB2KSB7XG4gICAgb1tcImRlZmF1bHRcIl0gPSB2O1xufSk7XG52YXIgX19pbXBvcnRTdGFyID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydFN0YXIpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSByZXR1cm4gbW9kO1xuICAgIHZhciByZXN1bHQgPSB7fTtcbiAgICBpZiAobW9kICE9IG51bGwpIGZvciAodmFyIGsgaW4gbW9kKSBpZiAoayAhPT0gXCJkZWZhdWx0XCIgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG1vZCwgaykpIF9fY3JlYXRlQmluZGluZyhyZXN1bHQsIG1vZCwgayk7XG4gICAgX19zZXRNb2R1bGVEZWZhdWx0KHJlc3VsdCwgbW9kKTtcbiAgICByZXR1cm4gcmVzdWx0O1xufTtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLlRlcm1pbmFsID0gdm9pZCAwO1xudmFyIGFuc2VyXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcImFuc2VyXCIpKTtcbnZhciBSZWFjdCA9IF9faW1wb3J0U3RhcihyZXF1aXJlKFwicmVhY3RcIikpO1xudmFyIFRlcm1pbmFsID0gZnVuY3Rpb24gVGVybWluYWwoX2EpIHtcbiAgICB2YXIgY29udGVudCA9IF9hLmNvbnRlbnQ7XG4gICAgdmFyIGRlY29kZWQgPSBSZWFjdC51c2VNZW1vKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGFuc2VyXzFbXCJkZWZhdWx0XCJdLmFuc2lUb0pzb24oY29udGVudCwge1xuICAgICAgICAgICAganNvbjogdHJ1ZSxcbiAgICAgICAgICAgIHVzZV9jbGFzc2VzOiB0cnVlLFxuICAgICAgICAgICAgcmVtb3ZlX2VtcHR5OiB0cnVlXG4gICAgICAgIH0pO1xuICAgIH0sIFtjb250ZW50XSk7XG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgXCJkYXRhLW5leHRqcy10ZXJtaW5hbFwiOiB0cnVlIH0sXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwcmVcIiwgbnVsbCwgZGVjb2RlZC5tYXAoZnVuY3Rpb24gKGVudHJ5LCBpbmRleCkgeyByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHsga2V5OiBcInRlcm1pbmFsLWVudHJ5LVwiICsgaW5kZXgsIHN0eWxlOiBfX2Fzc2lnbih7IGNvbG9yOiBlbnRyeS5mZyA/IFwidmFyKC0tY29sb3ItXCIgKyBlbnRyeS5mZyArIFwiKVwiIDogdW5kZWZpbmVkIH0sIChlbnRyeS5kZWNvcmF0aW9uID09PSAnYm9sZCdcbiAgICAgICAgICAgICAgICA/IHsgZm9udFdlaWdodDogODAwIH1cbiAgICAgICAgICAgICAgICA6IGVudHJ5LmRlY29yYXRpb24gPT09ICdpdGFsaWMnXG4gICAgICAgICAgICAgICAgICAgID8geyBmb250U3R5bGU6ICdpdGFsaWMnIH1cbiAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQpKSB9LCBlbnRyeS5jb250ZW50KSk7IH0pKSkpO1xufTtcbmV4cG9ydHMuVGVybWluYWwgPSBUZXJtaW5hbDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRlcm1pbmFsLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/Terminal/Terminal.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/Terminal/index.js": +/*!****************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/Terminal/index.js ***! + \****************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nexports.__esModule = true;\nexports.Terminal = void 0;\nvar Terminal_1 = __webpack_require__(/*! ./Terminal */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/Terminal/Terminal.js\");\n__createBinding(exports, Terminal_1, \"Terminal\");\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvVGVybWluYWwvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBO0FBQ0EsbUNBQW1DLG9DQUFvQyxnQkFBZ0I7QUFDdkYsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Qsa0JBQWtCO0FBQ2xCLGdCQUFnQjtBQUNoQixpQkFBaUIsbUJBQU8sQ0FBQyx1R0FBWTtBQUNyQztBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AbmV4dC9yZWFjdC1kZXYtb3ZlcmxheS9saWIvaW50ZXJuYWwvY29tcG9uZW50cy9UZXJtaW5hbC9pbmRleC5qcz8wMjhmIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9fY3JlYXRlQmluZGluZyA9ICh0aGlzICYmIHRoaXMuX19jcmVhdGVCaW5kaW5nKSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH0pO1xufSkgOiAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIG9bazJdID0gbVtrXTtcbn0pKTtcbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLlRlcm1pbmFsID0gdm9pZCAwO1xudmFyIFRlcm1pbmFsXzEgPSByZXF1aXJlKFwiLi9UZXJtaW5hbFwiKTtcbl9fY3JlYXRlQmluZGluZyhleHBvcnRzLCBUZXJtaW5hbF8xLCBcIlRlcm1pbmFsXCIpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/Terminal/index.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/Terminal/styles.js": +/*!*****************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/Terminal/styles.js ***! + \*****************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nexports.__esModule = true;\nexports.styles = void 0;\nvar noop_template_1 = __webpack_require__(/*! ../../helpers/noop-template */ \"./node_modules/@next/react-dev-overlay/lib/internal/helpers/noop-template.js\");\nvar styles = (0, noop_template_1.noop)(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\n [data-nextjs-terminal] {\\n border-radius: var(--size-gap-half);\\n background-color: var(--color-ansi-bg);\\n color: var(--color-ansi-fg);\\n }\\n [data-nextjs-terminal]::selection,\\n [data-nextjs-terminal] *::selection {\\n background-color: var(--color-ansi-selection);\\n }\\n [data-nextjs-terminal] * {\\n color: inherit;\\n background-color: transparent;\\n font-family: var(--font-stack-monospace);\\n }\\n [data-nextjs-terminal] > * {\\n margin: 0;\\n padding: calc(var(--size-gap) + var(--size-gap-half))\\n calc(var(--size-gap-double) + var(--size-gap-half));\\n }\\n\\n [data-nextjs-terminal] pre {\\n white-space: pre-wrap;\\n word-break: break-word;\\n }\\n\"], [\"\\n [data-nextjs-terminal] {\\n border-radius: var(--size-gap-half);\\n background-color: var(--color-ansi-bg);\\n color: var(--color-ansi-fg);\\n }\\n [data-nextjs-terminal]::selection,\\n [data-nextjs-terminal] *::selection {\\n background-color: var(--color-ansi-selection);\\n }\\n [data-nextjs-terminal] * {\\n color: inherit;\\n background-color: transparent;\\n font-family: var(--font-stack-monospace);\\n }\\n [data-nextjs-terminal] > * {\\n margin: 0;\\n padding: calc(var(--size-gap) + var(--size-gap-half))\\n calc(var(--size-gap-double) + var(--size-gap-half));\\n }\\n\\n [data-nextjs-terminal] pre {\\n white-space: pre-wrap;\\n word-break: break-word;\\n }\\n\"])));\nexports.styles = styles;\nvar templateObject_1;\n//# sourceMappingURL=styles.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvVGVybWluYWwvc3R5bGVzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQSxpQ0FBaUMsdUNBQXVDLFlBQVksS0FBSyxPQUFPO0FBQ2hHO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEIsY0FBYztBQUNkLHNCQUFzQixtQkFBTyxDQUFDLGlIQUE2QjtBQUMzRCxrSUFBa0ksMENBQTBDLDZDQUE2QyxrQ0FBa0MsS0FBSywrRUFBK0Usb0RBQW9ELEtBQUssOEJBQThCLHFCQUFxQixvQ0FBb0MsK0NBQStDLEtBQUssZ0NBQWdDLGdCQUFnQix1SEFBdUgsS0FBSyxrQ0FBa0MsNEJBQTRCLDZCQUE2QixLQUFLLG9DQUFvQywwQ0FBMEMsNkNBQTZDLGtDQUFrQyxLQUFLLCtFQUErRSxvREFBb0QsS0FBSyw4QkFBOEIscUJBQXFCLG9DQUFvQywrQ0FBK0MsS0FBSyxnQ0FBZ0MsZ0JBQWdCLHVIQUF1SCxLQUFLLGtDQUFrQyw0QkFBNEIsNkJBQTZCLEtBQUs7QUFDaCtDLGNBQWM7QUFDZDtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AbmV4dC9yZWFjdC1kZXYtb3ZlcmxheS9saWIvaW50ZXJuYWwvY29tcG9uZW50cy9UZXJtaW5hbC9zdHlsZXMuanM/NjBlZSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX21ha2VUZW1wbGF0ZU9iamVjdCA9ICh0aGlzICYmIHRoaXMuX19tYWtlVGVtcGxhdGVPYmplY3QpIHx8IGZ1bmN0aW9uIChjb29rZWQsIHJhdykge1xuICAgIGlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvb2tlZCwgXCJyYXdcIiwgeyB2YWx1ZTogcmF3IH0pOyB9IGVsc2UgeyBjb29rZWQucmF3ID0gcmF3OyB9XG4gICAgcmV0dXJuIGNvb2tlZDtcbn07XG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5zdHlsZXMgPSB2b2lkIDA7XG52YXIgbm9vcF90ZW1wbGF0ZV8xID0gcmVxdWlyZShcIi4uLy4uL2hlbHBlcnMvbm9vcC10ZW1wbGF0ZVwiKTtcbnZhciBzdHlsZXMgPSAoMCwgbm9vcF90ZW1wbGF0ZV8xLm5vb3ApKHRlbXBsYXRlT2JqZWN0XzEgfHwgKHRlbXBsYXRlT2JqZWN0XzEgPSBfX21ha2VUZW1wbGF0ZU9iamVjdChbXCJcXG4gIFtkYXRhLW5leHRqcy10ZXJtaW5hbF0ge1xcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zaXplLWdhcC1oYWxmKTtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYW5zaS1iZyk7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLWZnKTtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy10ZXJtaW5hbF06OnNlbGVjdGlvbixcXG4gIFtkYXRhLW5leHRqcy10ZXJtaW5hbF0gKjo6c2VsZWN0aW9uIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYW5zaS1zZWxlY3Rpb24pO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLXRlcm1pbmFsXSAqIHtcXG4gICAgY29sb3I6IGluaGVyaXQ7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1tb25vc3BhY2UpO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLXRlcm1pbmFsXSA+ICoge1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IGNhbGModmFyKC0tc2l6ZS1nYXApICsgdmFyKC0tc2l6ZS1nYXAtaGFsZikpXFxuICAgICAgY2FsYyh2YXIoLS1zaXplLWdhcC1kb3VibGUpICsgdmFyKC0tc2l6ZS1nYXAtaGFsZikpO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLXRlcm1pbmFsXSBwcmUge1xcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XFxuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XFxuICB9XFxuXCJdLCBbXCJcXG4gIFtkYXRhLW5leHRqcy10ZXJtaW5hbF0ge1xcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zaXplLWdhcC1oYWxmKTtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYW5zaS1iZyk7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLWZnKTtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy10ZXJtaW5hbF06OnNlbGVjdGlvbixcXG4gIFtkYXRhLW5leHRqcy10ZXJtaW5hbF0gKjo6c2VsZWN0aW9uIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYW5zaS1zZWxlY3Rpb24pO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLXRlcm1pbmFsXSAqIHtcXG4gICAgY29sb3I6IGluaGVyaXQ7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1tb25vc3BhY2UpO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLXRlcm1pbmFsXSA+ICoge1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IGNhbGModmFyKC0tc2l6ZS1nYXApICsgdmFyKC0tc2l6ZS1nYXAtaGFsZikpXFxuICAgICAgY2FsYyh2YXIoLS1zaXplLWdhcC1kb3VibGUpICsgdmFyKC0tc2l6ZS1nYXAtaGFsZikpO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLXRlcm1pbmFsXSBwcmUge1xcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XFxuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XFxuICB9XFxuXCJdKSkpO1xuZXhwb3J0cy5zdHlsZXMgPSBzdHlsZXM7XG52YXIgdGVtcGxhdGVPYmplY3RfMTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXN0eWxlcy5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/Terminal/styles.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/Toast/Toast.js": +/*!*************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/Toast/Toast.js ***! + \*************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nexports.__esModule = true;\nexports.Toast = void 0;\nvar React = __importStar(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nvar Toast = function Toast(_a) {\n var onClick = _a.onClick, children = _a.children, className = _a.className;\n return (React.createElement(\"div\", { \"data-nextjs-toast\": true, onClick: onClick, className: className },\n React.createElement(\"div\", { \"data-nextjs-toast-wrapper\": true }, children)));\n};\nexports.Toast = Toast;\n//# sourceMappingURL=Toast.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvVG9hc3QvVG9hc3QuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBO0FBQ0EsbUNBQW1DLG9DQUFvQyxnQkFBZ0I7QUFDdkYsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQSwwQ0FBMEMsNEJBQTRCO0FBQ3RFLENBQUM7QUFDRDtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQixhQUFhO0FBQ2IseUJBQXlCLG1CQUFPLENBQUMsNENBQU87QUFDeEM7QUFDQTtBQUNBLHlDQUF5QyxtRUFBbUU7QUFDNUcscUNBQXFDLG1DQUFtQztBQUN4RTtBQUNBLGFBQWE7QUFDYiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvVG9hc3QvVG9hc3QuanM/Y2RlNyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2NyZWF0ZUJpbmRpbmcgPSAodGhpcyAmJiB0aGlzLl9fY3JlYXRlQmluZGluZykgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gbVtrXTsgfSB9KTtcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBvW2syXSA9IG1ba107XG59KSk7XG52YXIgX19zZXRNb2R1bGVEZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX3NldE1vZHVsZURlZmF1bHQpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIHYpIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgXCJkZWZhdWx0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7XG59KSA6IGZ1bmN0aW9uKG8sIHYpIHtcbiAgICBvW1wiZGVmYXVsdFwiXSA9IHY7XG59KTtcbnZhciBfX2ltcG9ydFN0YXIgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0U3RhcikgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpIHJldHVybiBtb2Q7XG4gICAgdmFyIHJlc3VsdCA9IHt9O1xuICAgIGlmIChtb2QgIT0gbnVsbCkgZm9yICh2YXIgayBpbiBtb2QpIGlmIChrICE9PSBcImRlZmF1bHRcIiAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobW9kLCBrKSkgX19jcmVhdGVCaW5kaW5nKHJlc3VsdCwgbW9kLCBrKTtcbiAgICBfX3NldE1vZHVsZURlZmF1bHQocmVzdWx0LCBtb2QpO1xuICAgIHJldHVybiByZXN1bHQ7XG59O1xuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHMuVG9hc3QgPSB2b2lkIDA7XG52YXIgUmVhY3QgPSBfX2ltcG9ydFN0YXIocmVxdWlyZShcInJlYWN0XCIpKTtcbnZhciBUb2FzdCA9IGZ1bmN0aW9uIFRvYXN0KF9hKSB7XG4gICAgdmFyIG9uQ2xpY2sgPSBfYS5vbkNsaWNrLCBjaGlsZHJlbiA9IF9hLmNoaWxkcmVuLCBjbGFzc05hbWUgPSBfYS5jbGFzc05hbWU7XG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgXCJkYXRhLW5leHRqcy10b2FzdFwiOiB0cnVlLCBvbkNsaWNrOiBvbkNsaWNrLCBjbGFzc05hbWU6IGNsYXNzTmFtZSB9LFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgXCJkYXRhLW5leHRqcy10b2FzdC13cmFwcGVyXCI6IHRydWUgfSwgY2hpbGRyZW4pKSk7XG59O1xuZXhwb3J0cy5Ub2FzdCA9IFRvYXN0O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9VG9hc3QuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/Toast/Toast.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/Toast/index.js": +/*!*************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/Toast/index.js ***! + \*************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nexports.__esModule = true;\nexports.Toast = exports.styles = void 0;\nvar styles_1 = __webpack_require__(/*! ./styles */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/Toast/styles.js\");\n__createBinding(exports, styles_1, \"styles\");\nvar Toast_1 = __webpack_require__(/*! ./Toast */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/Toast/Toast.js\");\n__createBinding(exports, Toast_1, \"Toast\");\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvVG9hc3QvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBO0FBQ0EsbUNBQW1DLG9DQUFvQyxnQkFBZ0I7QUFDdkYsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Qsa0JBQWtCO0FBQ2xCLGFBQWEsR0FBRyxjQUFjO0FBQzlCLGVBQWUsbUJBQU8sQ0FBQyxnR0FBVTtBQUNqQztBQUNBLGNBQWMsbUJBQU8sQ0FBQyw4RkFBUztBQUMvQjtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AbmV4dC9yZWFjdC1kZXYtb3ZlcmxheS9saWIvaW50ZXJuYWwvY29tcG9uZW50cy9Ub2FzdC9pbmRleC5qcz85MDE0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9fY3JlYXRlQmluZGluZyA9ICh0aGlzICYmIHRoaXMuX19jcmVhdGVCaW5kaW5nKSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH0pO1xufSkgOiAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIG9bazJdID0gbVtrXTtcbn0pKTtcbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLlRvYXN0ID0gZXhwb3J0cy5zdHlsZXMgPSB2b2lkIDA7XG52YXIgc3R5bGVzXzEgPSByZXF1aXJlKFwiLi9zdHlsZXNcIik7XG5fX2NyZWF0ZUJpbmRpbmcoZXhwb3J0cywgc3R5bGVzXzEsIFwic3R5bGVzXCIpO1xudmFyIFRvYXN0XzEgPSByZXF1aXJlKFwiLi9Ub2FzdFwiKTtcbl9fY3JlYXRlQmluZGluZyhleHBvcnRzLCBUb2FzdF8xLCBcIlRvYXN0XCIpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/Toast/index.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/Toast/styles.js": +/*!**************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/Toast/styles.js ***! + \**************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nexports.__esModule = true;\nexports.styles = void 0;\nvar noop_template_1 = __webpack_require__(/*! ../../helpers/noop-template */ \"./node_modules/@next/react-dev-overlay/lib/internal/helpers/noop-template.js\");\nvar styles = (0, noop_template_1.noop)(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\n [data-nextjs-toast] {\\n position: fixed;\\n bottom: var(--size-gap-double);\\n left: var(--size-gap-double);\\n max-width: 420px;\\n z-index: 9000;\\n }\\n\\n @media (max-width: 440px) {\\n [data-nextjs-toast] {\\n max-width: 90vw;\\n left: 5vw;\\n }\\n }\\n\\n [data-nextjs-toast-wrapper] {\\n padding: 16px;\\n border-radius: var(--size-gap-half);\\n font-weight: 500;\\n color: var(--color-ansi-bright-white);\\n background-color: var(--color-ansi-red);\\n box-shadow: 0px var(--size-gap-double) var(--size-gap-quad)\\n rgba(0, 0, 0, 0.25);\\n }\\n\"], [\"\\n [data-nextjs-toast] {\\n position: fixed;\\n bottom: var(--size-gap-double);\\n left: var(--size-gap-double);\\n max-width: 420px;\\n z-index: 9000;\\n }\\n\\n @media (max-width: 440px) {\\n [data-nextjs-toast] {\\n max-width: 90vw;\\n left: 5vw;\\n }\\n }\\n\\n [data-nextjs-toast-wrapper] {\\n padding: 16px;\\n border-radius: var(--size-gap-half);\\n font-weight: 500;\\n color: var(--color-ansi-bright-white);\\n background-color: var(--color-ansi-red);\\n box-shadow: 0px var(--size-gap-double) var(--size-gap-quad)\\n rgba(0, 0, 0, 0.25);\\n }\\n\"])));\nexports.styles = styles;\nvar templateObject_1;\n//# sourceMappingURL=styles.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvVG9hc3Qvc3R5bGVzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQSxpQ0FBaUMsdUNBQXVDLFlBQVksS0FBSyxPQUFPO0FBQ2hHO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEIsY0FBYztBQUNkLHNCQUFzQixtQkFBTyxDQUFDLGlIQUE2QjtBQUMzRCwrSEFBK0gsc0JBQXNCLHFDQUFxQyxtQ0FBbUMsdUJBQXVCLG9CQUFvQixLQUFLLGlDQUFpQywyQkFBMkIsd0JBQXdCLGtCQUFrQixPQUFPLEtBQUssbUNBQW1DLG9CQUFvQiwwQ0FBMEMsdUJBQXVCLDRDQUE0Qyw4Q0FBOEMsNkZBQTZGLEtBQUssaUNBQWlDLHNCQUFzQixxQ0FBcUMsbUNBQW1DLHVCQUF1QixvQkFBb0IsS0FBSyxpQ0FBaUMsMkJBQTJCLHdCQUF3QixrQkFBa0IsT0FBTyxLQUFLLG1DQUFtQyxvQkFBb0IsMENBQTBDLHVCQUF1Qiw0Q0FBNEMsOENBQThDLDZGQUE2RixLQUFLO0FBQ3h3QyxjQUFjO0FBQ2Q7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvVG9hc3Qvc3R5bGVzLmpzPzczOWIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19tYWtlVGVtcGxhdGVPYmplY3QgPSAodGhpcyAmJiB0aGlzLl9fbWFrZVRlbXBsYXRlT2JqZWN0KSB8fCBmdW5jdGlvbiAoY29va2VkLCByYXcpIHtcbiAgICBpZiAoT2JqZWN0LmRlZmluZVByb3BlcnR5KSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb29rZWQsIFwicmF3XCIsIHsgdmFsdWU6IHJhdyB9KTsgfSBlbHNlIHsgY29va2VkLnJhdyA9IHJhdzsgfVxuICAgIHJldHVybiBjb29rZWQ7XG59O1xuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHMuc3R5bGVzID0gdm9pZCAwO1xudmFyIG5vb3BfdGVtcGxhdGVfMSA9IHJlcXVpcmUoXCIuLi8uLi9oZWxwZXJzL25vb3AtdGVtcGxhdGVcIik7XG52YXIgc3R5bGVzID0gKDAsIG5vb3BfdGVtcGxhdGVfMS5ub29wKSh0ZW1wbGF0ZU9iamVjdF8xIHx8ICh0ZW1wbGF0ZU9iamVjdF8xID0gX19tYWtlVGVtcGxhdGVPYmplY3QoW1wiXFxuICBbZGF0YS1uZXh0anMtdG9hc3RdIHtcXG4gICAgcG9zaXRpb246IGZpeGVkO1xcbiAgICBib3R0b206IHZhcigtLXNpemUtZ2FwLWRvdWJsZSk7XFxuICAgIGxlZnQ6IHZhcigtLXNpemUtZ2FwLWRvdWJsZSk7XFxuICAgIG1heC13aWR0aDogNDIwcHg7XFxuICAgIHotaW5kZXg6IDkwMDA7XFxuICB9XFxuXFxuICBAbWVkaWEgKG1heC13aWR0aDogNDQwcHgpIHtcXG4gICAgW2RhdGEtbmV4dGpzLXRvYXN0XSB7XFxuICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xcbiAgICAgIGxlZnQ6IDV2dztcXG4gICAgfVxcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLXRvYXN0LXdyYXBwZXJdIHtcXG4gICAgcGFkZGluZzogMTZweDtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2l6ZS1nYXAtaGFsZik7XFxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLWJyaWdodC13aGl0ZSk7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktcmVkKTtcXG4gICAgYm94LXNoYWRvdzogMHB4IHZhcigtLXNpemUtZ2FwLWRvdWJsZSkgdmFyKC0tc2l6ZS1nYXAtcXVhZClcXG4gICAgICByZ2JhKDAsIDAsIDAsIDAuMjUpO1xcbiAgfVxcblwiXSwgW1wiXFxuICBbZGF0YS1uZXh0anMtdG9hc3RdIHtcXG4gICAgcG9zaXRpb246IGZpeGVkO1xcbiAgICBib3R0b206IHZhcigtLXNpemUtZ2FwLWRvdWJsZSk7XFxuICAgIGxlZnQ6IHZhcigtLXNpemUtZ2FwLWRvdWJsZSk7XFxuICAgIG1heC13aWR0aDogNDIwcHg7XFxuICAgIHotaW5kZXg6IDkwMDA7XFxuICB9XFxuXFxuICBAbWVkaWEgKG1heC13aWR0aDogNDQwcHgpIHtcXG4gICAgW2RhdGEtbmV4dGpzLXRvYXN0XSB7XFxuICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xcbiAgICAgIGxlZnQ6IDV2dztcXG4gICAgfVxcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLXRvYXN0LXdyYXBwZXJdIHtcXG4gICAgcGFkZGluZzogMTZweDtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2l6ZS1nYXAtaGFsZik7XFxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLWJyaWdodC13aGl0ZSk7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktcmVkKTtcXG4gICAgYm94LXNoYWRvdzogMHB4IHZhcigtLXNpemUtZ2FwLWRvdWJsZSkgdmFyKC0tc2l6ZS1nYXAtcXVhZClcXG4gICAgICByZ2JhKDAsIDAsIDAsIDAuMjUpO1xcbiAgfVxcblwiXSkpKTtcbmV4cG9ydHMuc3R5bGVzID0gc3R5bGVzO1xudmFyIHRlbXBsYXRlT2JqZWN0XzE7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1zdHlsZXMuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/Toast/styles.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/container/BuildError.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/container/BuildError.js ***! + \***********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nexports.__esModule = true;\nexports.styles = exports.BuildError = void 0;\nvar React = __importStar(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nvar Dialog_1 = __webpack_require__(/*! ../components/Dialog */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/index.js\");\nvar Overlay_1 = __webpack_require__(/*! ../components/Overlay */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/Overlay/index.js\");\nvar Terminal_1 = __webpack_require__(/*! ../components/Terminal */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/Terminal/index.js\");\nvar noop_template_1 = __webpack_require__(/*! ../helpers/noop-template */ \"./node_modules/@next/react-dev-overlay/lib/internal/helpers/noop-template.js\");\nvar BuildError = function BuildError(_a) {\n var message = _a.message;\n var noop = React.useCallback(function () { }, []);\n return (React.createElement(Overlay_1.Overlay, { fixed: true },\n React.createElement(Dialog_1.Dialog, { type: \"error\", \"aria-labelledby\": \"nextjs__container_build_error_label\", \"aria-describedby\": \"nextjs__container_build_error_desc\", onClose: noop },\n React.createElement(Dialog_1.DialogContent, null,\n React.createElement(Dialog_1.DialogHeader, { className: \"nextjs-container-build-error-header\" },\n React.createElement(\"h4\", { id: \"nextjs__container_build_error_label\" }, \"Failed to compile\")),\n React.createElement(Dialog_1.DialogBody, { className: \"nextjs-container-build-error-body\" },\n React.createElement(Terminal_1.Terminal, { content: message }),\n React.createElement(\"footer\", null,\n React.createElement(\"p\", { id: \"nextjs__container_build_error_desc\" },\n React.createElement(\"small\", null, \"This error occurred during the build process and can only be dismissed by fixing the error.\"))))))));\n};\nexports.BuildError = BuildError;\nexports.styles = (0, noop_template_1.noop)(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\n .nextjs-container-build-error-header > h4 {\\n line-height: 1.5;\\n margin: 0;\\n padding: 0;\\n }\\n\\n .nextjs-container-build-error-body footer {\\n margin-top: var(--size-gap);\\n }\\n .nextjs-container-build-error-body footer p {\\n margin: 0;\\n }\\n\\n .nextjs-container-build-error-body small {\\n color: #757575;\\n }\\n\"], [\"\\n .nextjs-container-build-error-header > h4 {\\n line-height: 1.5;\\n margin: 0;\\n padding: 0;\\n }\\n\\n .nextjs-container-build-error-body footer {\\n margin-top: var(--size-gap);\\n }\\n .nextjs-container-build-error-body footer p {\\n margin: 0;\\n }\\n\\n .nextjs-container-build-error-body small {\\n color: #757575;\\n }\\n\"])));\nvar templateObject_1;\n//# sourceMappingURL=BuildError.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbnRhaW5lci9CdWlsZEVycm9yLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQSxpQ0FBaUMsdUNBQXVDLFlBQVksS0FBSyxPQUFPO0FBQ2hHO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLG9DQUFvQyxnQkFBZ0I7QUFDdkYsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQSwwQ0FBMEMsNEJBQTRCO0FBQ3RFLENBQUM7QUFDRDtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQixjQUFjLEdBQUcsa0JBQWtCO0FBQ25DLHlCQUF5QixtQkFBTyxDQUFDLDRDQUFPO0FBQ3hDLGVBQWUsbUJBQU8sQ0FBQyw0R0FBc0I7QUFDN0MsZ0JBQWdCLG1CQUFPLENBQUMsOEdBQXVCO0FBQy9DLGlCQUFpQixtQkFBTyxDQUFDLGdIQUF3QjtBQUNqRCxzQkFBc0IsbUJBQU8sQ0FBQyw4R0FBMEI7QUFDeEQ7QUFDQTtBQUNBLGdEQUFnRDtBQUNoRCxxREFBcUQsYUFBYTtBQUNsRSwrQ0FBK0Msa0pBQWtKO0FBQ2pNO0FBQ0EsNkRBQTZELGtEQUFrRDtBQUMvRyxnREFBZ0QsMkNBQTJDO0FBQzNGLDJEQUEyRCxnREFBZ0Q7QUFDM0csK0RBQStELGtCQUFrQjtBQUNqRjtBQUNBLG1EQUFtRCwwQ0FBMEM7QUFDN0Y7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQixjQUFjLDJJQUEySSx1QkFBdUIsZ0JBQWdCLGlCQUFpQixLQUFLLGlEQUFpRCxrQ0FBa0MsS0FBSyxpREFBaUQsZ0JBQWdCLEtBQUssZ0RBQWdELHFCQUFxQixLQUFLLHVEQUF1RCx1QkFBdUIsZ0JBQWdCLGlCQUFpQixLQUFLLGlEQUFpRCxrQ0FBa0MsS0FBSyxpREFBaUQsZ0JBQWdCLEtBQUssZ0RBQWdELHFCQUFxQixLQUFLO0FBQzF4QjtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AbmV4dC9yZWFjdC1kZXYtb3ZlcmxheS9saWIvaW50ZXJuYWwvY29udGFpbmVyL0J1aWxkRXJyb3IuanM/N2YyYyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX21ha2VUZW1wbGF0ZU9iamVjdCA9ICh0aGlzICYmIHRoaXMuX19tYWtlVGVtcGxhdGVPYmplY3QpIHx8IGZ1bmN0aW9uIChjb29rZWQsIHJhdykge1xuICAgIGlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvb2tlZCwgXCJyYXdcIiwgeyB2YWx1ZTogcmF3IH0pOyB9IGVsc2UgeyBjb29rZWQucmF3ID0gcmF3OyB9XG4gICAgcmV0dXJuIGNvb2tlZDtcbn07XG52YXIgX19jcmVhdGVCaW5kaW5nID0gKHRoaXMgJiYgdGhpcy5fX2NyZWF0ZUJpbmRpbmcpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfSk7XG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgb1trMl0gPSBtW2tdO1xufSkpO1xudmFyIF9fc2V0TW9kdWxlRGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19zZXRNb2R1bGVEZWZhdWx0KSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCB2KSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIFwiZGVmYXVsdFwiLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2IH0pO1xufSkgOiBmdW5jdGlvbihvLCB2KSB7XG4gICAgb1tcImRlZmF1bHRcIl0gPSB2O1xufSk7XG52YXIgX19pbXBvcnRTdGFyID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydFN0YXIpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSByZXR1cm4gbW9kO1xuICAgIHZhciByZXN1bHQgPSB7fTtcbiAgICBpZiAobW9kICE9IG51bGwpIGZvciAodmFyIGsgaW4gbW9kKSBpZiAoayAhPT0gXCJkZWZhdWx0XCIgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG1vZCwgaykpIF9fY3JlYXRlQmluZGluZyhyZXN1bHQsIG1vZCwgayk7XG4gICAgX19zZXRNb2R1bGVEZWZhdWx0KHJlc3VsdCwgbW9kKTtcbiAgICByZXR1cm4gcmVzdWx0O1xufTtcbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLnN0eWxlcyA9IGV4cG9ydHMuQnVpbGRFcnJvciA9IHZvaWQgMDtcbnZhciBSZWFjdCA9IF9faW1wb3J0U3RhcihyZXF1aXJlKFwicmVhY3RcIikpO1xudmFyIERpYWxvZ18xID0gcmVxdWlyZShcIi4uL2NvbXBvbmVudHMvRGlhbG9nXCIpO1xudmFyIE92ZXJsYXlfMSA9IHJlcXVpcmUoXCIuLi9jb21wb25lbnRzL092ZXJsYXlcIik7XG52YXIgVGVybWluYWxfMSA9IHJlcXVpcmUoXCIuLi9jb21wb25lbnRzL1Rlcm1pbmFsXCIpO1xudmFyIG5vb3BfdGVtcGxhdGVfMSA9IHJlcXVpcmUoXCIuLi9oZWxwZXJzL25vb3AtdGVtcGxhdGVcIik7XG52YXIgQnVpbGRFcnJvciA9IGZ1bmN0aW9uIEJ1aWxkRXJyb3IoX2EpIHtcbiAgICB2YXIgbWVzc2FnZSA9IF9hLm1lc3NhZ2U7XG4gICAgdmFyIG5vb3AgPSBSZWFjdC51c2VDYWxsYmFjayhmdW5jdGlvbiAoKSB7IH0sIFtdKTtcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoT3ZlcmxheV8xLk92ZXJsYXksIHsgZml4ZWQ6IHRydWUgfSxcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChEaWFsb2dfMS5EaWFsb2csIHsgdHlwZTogXCJlcnJvclwiLCBcImFyaWEtbGFiZWxsZWRieVwiOiBcIm5leHRqc19fY29udGFpbmVyX2J1aWxkX2Vycm9yX2xhYmVsXCIsIFwiYXJpYS1kZXNjcmliZWRieVwiOiBcIm5leHRqc19fY29udGFpbmVyX2J1aWxkX2Vycm9yX2Rlc2NcIiwgb25DbG9zZTogbm9vcCB9LFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChEaWFsb2dfMS5EaWFsb2dDb250ZW50LCBudWxsLFxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRGlhbG9nXzEuRGlhbG9nSGVhZGVyLCB7IGNsYXNzTmFtZTogXCJuZXh0anMtY29udGFpbmVyLWJ1aWxkLWVycm9yLWhlYWRlclwiIH0sXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJoNFwiLCB7IGlkOiBcIm5leHRqc19fY29udGFpbmVyX2J1aWxkX2Vycm9yX2xhYmVsXCIgfSwgXCJGYWlsZWQgdG8gY29tcGlsZVwiKSksXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChEaWFsb2dfMS5EaWFsb2dCb2R5LCB7IGNsYXNzTmFtZTogXCJuZXh0anMtY29udGFpbmVyLWJ1aWxkLWVycm9yLWJvZHlcIiB9LFxuICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRlcm1pbmFsXzEuVGVybWluYWwsIHsgY29udGVudDogbWVzc2FnZSB9KSxcbiAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImZvb3RlclwiLCBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInBcIiwgeyBpZDogXCJuZXh0anNfX2NvbnRhaW5lcl9idWlsZF9lcnJvcl9kZXNjXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic21hbGxcIiwgbnVsbCwgXCJUaGlzIGVycm9yIG9jY3VycmVkIGR1cmluZyB0aGUgYnVpbGQgcHJvY2VzcyBhbmQgY2FuIG9ubHkgYmUgZGlzbWlzc2VkIGJ5IGZpeGluZyB0aGUgZXJyb3IuXCIpKSkpKSkpKTtcbn07XG5leHBvcnRzLkJ1aWxkRXJyb3IgPSBCdWlsZEVycm9yO1xuZXhwb3J0cy5zdHlsZXMgPSAoMCwgbm9vcF90ZW1wbGF0ZV8xLm5vb3ApKHRlbXBsYXRlT2JqZWN0XzEgfHwgKHRlbXBsYXRlT2JqZWN0XzEgPSBfX21ha2VUZW1wbGF0ZU9iamVjdChbXCJcXG4gIC5uZXh0anMtY29udGFpbmVyLWJ1aWxkLWVycm9yLWhlYWRlciA+IGg0IHtcXG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgfVxcblxcbiAgLm5leHRqcy1jb250YWluZXItYnVpbGQtZXJyb3ItYm9keSBmb290ZXIge1xcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1zaXplLWdhcCk7XFxuICB9XFxuICAubmV4dGpzLWNvbnRhaW5lci1idWlsZC1lcnJvci1ib2R5IGZvb3RlciBwIHtcXG4gICAgbWFyZ2luOiAwO1xcbiAgfVxcblxcbiAgLm5leHRqcy1jb250YWluZXItYnVpbGQtZXJyb3ItYm9keSBzbWFsbCB7XFxuICAgIGNvbG9yOiAjNzU3NTc1O1xcbiAgfVxcblwiXSwgW1wiXFxuICAubmV4dGpzLWNvbnRhaW5lci1idWlsZC1lcnJvci1oZWFkZXIgPiBoNCB7XFxuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogMDtcXG4gIH1cXG5cXG4gIC5uZXh0anMtY29udGFpbmVyLWJ1aWxkLWVycm9yLWJvZHkgZm9vdGVyIHtcXG4gICAgbWFyZ2luLXRvcDogdmFyKC0tc2l6ZS1nYXApO1xcbiAgfVxcbiAgLm5leHRqcy1jb250YWluZXItYnVpbGQtZXJyb3ItYm9keSBmb290ZXIgcCB7XFxuICAgIG1hcmdpbjogMDtcXG4gIH1cXG5cXG4gIC5uZXh0anMtY29udGFpbmVyLWJ1aWxkLWVycm9yLWJvZHkgc21hbGwge1xcbiAgICBjb2xvcjogIzc1NzU3NTtcXG4gIH1cXG5cIl0pKSk7XG52YXIgdGVtcGxhdGVPYmplY3RfMTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUJ1aWxkRXJyb3IuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/container/BuildError.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/container/Errors.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/container/Errors.js ***! + \*******************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nexports.__esModule = true;\nexports.styles = exports.Errors = void 0;\nvar React = __importStar(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nvar bus_1 = __webpack_require__(/*! ../bus */ \"./node_modules/@next/react-dev-overlay/lib/internal/bus.js\");\nvar Dialog_1 = __webpack_require__(/*! ../components/Dialog */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/index.js\");\nvar LeftRightDialogHeader_1 = __webpack_require__(/*! ../components/LeftRightDialogHeader */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/LeftRightDialogHeader/index.js\");\nvar Overlay_1 = __webpack_require__(/*! ../components/Overlay */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/Overlay/index.js\");\nvar Toast_1 = __webpack_require__(/*! ../components/Toast */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/Toast/index.js\");\nvar nodeStackFrames_1 = __webpack_require__(/*! ../helpers/nodeStackFrames */ \"./node_modules/@next/react-dev-overlay/lib/internal/helpers/nodeStackFrames.js\");\nvar noop_template_1 = __webpack_require__(/*! ../helpers/noop-template */ \"./node_modules/@next/react-dev-overlay/lib/internal/helpers/noop-template.js\");\nvar stack_frame_1 = __webpack_require__(/*! ../helpers/stack-frame */ \"./node_modules/@next/react-dev-overlay/lib/internal/helpers/stack-frame.js\");\nvar RuntimeError_1 = __webpack_require__(/*! ./RuntimeError */ \"./node_modules/@next/react-dev-overlay/lib/internal/container/RuntimeError.js\");\nfunction getErrorSignature(ev) {\n var event = ev.event;\n switch (event.type) {\n case bus_1.TYPE_UNHANDLED_ERROR:\n case bus_1.TYPE_UNHANDLED_REJECTION: {\n return event.reason.name + \"::\" + event.reason.message + \"::\" + event.reason.stack;\n }\n default: {\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var _ = event;\n return '';\n}\nvar HotlinkedText = function HotlinkedText(props) {\n var text = props.text;\n var linkRegex = /https?:\\/\\/[^\\s/$.?#].[^\\s\"]*/i;\n return (React.createElement(React.Fragment, null, linkRegex.test(text)\n ? text.split(' ').map(function (word, index, array) {\n if (linkRegex.test(word)) {\n return (React.createElement(React.Fragment, { key: \"link-\" + index },\n React.createElement(\"a\", { href: word }, word),\n index === array.length - 1 ? '' : ' '));\n }\n return index === array.length - 1 ? (React.createElement(React.Fragment, { key: \"text-\" + index }, word)) : (React.createElement(React.Fragment, { key: \"text-\" + index },\n word,\n \" \"));\n })\n : text));\n};\nfunction getErrorByType(ev) {\n return __awaiter(this, void 0, void 0, function () {\n var id, event, _a, _;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n id = ev.id, event = ev.event;\n _a = event.type;\n switch (_a) {\n case bus_1.TYPE_UNHANDLED_ERROR: return [3 /*break*/, 1];\n case bus_1.TYPE_UNHANDLED_REJECTION: return [3 /*break*/, 1];\n }\n return [3 /*break*/, 3];\n case 1:\n _b = {\n id: id,\n runtime: true,\n error: event.reason\n };\n return [4 /*yield*/, (0, stack_frame_1.getOriginalStackFrames)((0, nodeStackFrames_1.isNodeError)(event.reason), event.frames)];\n case 2: return [2 /*return*/, (_b.frames = _c.sent(),\n _b)];\n case 3:\n {\n return [3 /*break*/, 4];\n }\n _c.label = 4;\n case 4:\n _ = event;\n throw new Error('type system invariant violation');\n }\n });\n });\n}\nvar Errors = function Errors(_a) {\n var errors = _a.errors;\n var _b = __read(React.useState({}), 2), lookups = _b[0], setLookups = _b[1];\n var _c = __read(React.useMemo(function () {\n var ready = [];\n var next = null;\n // Ensure errors are displayed in the order they occurred in:\n for (var idx = 0; idx < errors.length; ++idx) {\n var e = errors[idx];\n var id = e.id;\n if (id in lookups) {\n ready.push(lookups[id]);\n continue;\n }\n // Check for duplicate errors\n if (idx > 0) {\n var prev = errors[idx - 1];\n if (getErrorSignature(prev) === getErrorSignature(e)) {\n continue;\n }\n }\n next = e;\n break;\n }\n return [ready, next];\n }, [errors, lookups]), 2), readyErrors = _c[0], nextError = _c[1];\n var isLoading = React.useMemo(function () {\n return readyErrors.length < 1 && Boolean(errors.length);\n }, [errors.length, readyErrors.length]);\n React.useEffect(function () {\n if (nextError == null) {\n return;\n }\n var mounted = true;\n getErrorByType(nextError).then(function (resolved) {\n // We don't care if the desired error changed while we were resolving,\n // thus we're not tracking it using a ref. Once the work has been done,\n // we'll store it.\n if (mounted) {\n setLookups(function (m) {\n var _a;\n return (__assign(__assign({}, m), (_a = {}, _a[resolved.id] = resolved, _a)));\n });\n }\n }, function () {\n // TODO: handle this, though an edge case\n });\n return function () {\n mounted = false;\n };\n }, [nextError]);\n var _d = __read(React.useState(false), 2), isMinimized = _d[0], setMinimized = _d[1];\n var _e = __read(React.useState(0), 2), activeIdx = _e[0], setActiveIndex = _e[1];\n var previous = React.useCallback(function (e) {\n e === null || e === void 0 ? void 0 : e.preventDefault();\n setActiveIndex(function (v) { return Math.max(0, v - 1); });\n }, []);\n var next = React.useCallback(function (e) {\n e === null || e === void 0 ? void 0 : e.preventDefault();\n setActiveIndex(function (v) {\n return Math.max(0, Math.min(readyErrors.length - 1, v + 1));\n });\n }, [readyErrors.length]);\n var activeError = React.useMemo(function () { var _a; return (_a = readyErrors[activeIdx]) !== null && _a !== void 0 ? _a : null; }, [activeIdx, readyErrors]);\n // Reset component state when there are no errors to be displayed.\n // This should never happen, but lets handle it.\n React.useEffect(function () {\n if (errors.length < 1) {\n setLookups({});\n setMinimized(false);\n setActiveIndex(0);\n }\n }, [errors.length]);\n var minimize = React.useCallback(function (e) {\n e === null || e === void 0 ? void 0 : e.preventDefault();\n setMinimized(true);\n }, []);\n var reopen = React.useCallback(function (e) {\n e === null || e === void 0 ? void 0 : e.preventDefault();\n setMinimized(false);\n }, []);\n // This component shouldn't be rendered with no errors, but if it is, let's\n // handle it gracefully by rendering nothing.\n if (errors.length < 1 || activeError == null) {\n return null;\n }\n if (isLoading) {\n // TODO: better loading state\n return React.createElement(Overlay_1.Overlay, null);\n }\n if (isMinimized) {\n return (React.createElement(Toast_1.Toast, { className: \"nextjs-toast-errors-parent\", onClick: reopen },\n React.createElement(\"div\", { className: \"nextjs-toast-errors\" },\n React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", stroke: \"currentColor\", strokeWidth: \"2\", strokeLinecap: \"round\", strokeLinejoin: \"round\" },\n React.createElement(\"circle\", { cx: \"12\", cy: \"12\", r: \"10\" }),\n React.createElement(\"line\", { x1: \"12\", y1: \"8\", x2: \"12\", y2: \"12\" }),\n React.createElement(\"line\", { x1: \"12\", y1: \"16\", x2: \"12.01\", y2: \"16\" })),\n React.createElement(\"span\", null,\n readyErrors.length,\n \" error\",\n readyErrors.length > 1 ? 's' : ''))));\n }\n var isServerError = (0, nodeStackFrames_1.isNodeError)(activeError.error);\n return (React.createElement(Overlay_1.Overlay, null,\n React.createElement(Dialog_1.Dialog, { type: \"error\", \"aria-labelledby\": \"nextjs__container_errors_label\", \"aria-describedby\": \"nextjs__container_errors_desc\", onClose: isServerError ? undefined : minimize },\n React.createElement(Dialog_1.DialogContent, null,\n React.createElement(Dialog_1.DialogHeader, { className: \"nextjs-container-errors-header\" },\n React.createElement(LeftRightDialogHeader_1.LeftRightDialogHeader, { previous: activeIdx > 0 ? previous : null, next: activeIdx < readyErrors.length - 1 ? next : null, close: isServerError ? undefined : minimize },\n React.createElement(\"small\", null,\n React.createElement(\"span\", null, activeIdx + 1),\n \" of\",\n ' ',\n React.createElement(\"span\", null, readyErrors.length),\n \" unhandled error\",\n readyErrors.length < 2 ? '' : 's')),\n React.createElement(\"h1\", { id: \"nextjs__container_errors_label\" }, isServerError ? 'Server Error' : 'Unhandled Runtime Error'),\n React.createElement(\"p\", { id: \"nextjs__container_errors_desc\" },\n activeError.error.name,\n \":\",\n ' ',\n React.createElement(HotlinkedText, { text: activeError.error.message })),\n isServerError ? (React.createElement(\"div\", null,\n React.createElement(\"small\", null, \"This error happened while generating the page. Any console logs will be displayed in the terminal window.\"))) : undefined),\n React.createElement(Dialog_1.DialogBody, { className: \"nextjs-container-errors-body\" },\n React.createElement(RuntimeError_1.RuntimeError, { key: activeError.id.toString(), error: activeError }))))));\n};\nexports.Errors = Errors;\nexports.styles = (0, noop_template_1.noop)(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\n .nextjs-container-errors-header > h1 {\\n font-size: var(--size-font-big);\\n line-height: var(--size-font-bigger);\\n font-weight: bold;\\n margin: 0;\\n margin-top: calc(var(--size-gap-double) + var(--size-gap-half));\\n }\\n .nextjs-container-errors-header small {\\n font-size: var(--size-font-small);\\n color: var(--color-accents-1);\\n margin-left: var(--size-gap-double);\\n }\\n .nextjs-container-errors-header small > span {\\n font-family: var(--font-stack-monospace);\\n }\\n .nextjs-container-errors-header > p {\\n font-family: var(--font-stack-monospace);\\n font-size: var(--size-font-small);\\n line-height: var(--size-font-big);\\n font-weight: bold;\\n margin: 0;\\n margin-top: var(--size-gap-half);\\n color: var(--color-ansi-red);\\n white-space: pre-wrap;\\n }\\n .nextjs-container-errors-header > div > small {\\n margin: 0;\\n margin-top: var(--size-gap-half);\\n }\\n .nextjs-container-errors-header > p > a {\\n color: var(--color-ansi-red);\\n }\\n\\n .nextjs-container-errors-body > h5:not(:first-child) {\\n margin-top: calc(var(--size-gap-double) + var(--size-gap));\\n }\\n .nextjs-container-errors-body > h5 {\\n margin-bottom: var(--size-gap);\\n }\\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: var(--size-gap);\\n }\\n\"], [\"\\n .nextjs-container-errors-header > h1 {\\n font-size: var(--size-font-big);\\n line-height: var(--size-font-bigger);\\n font-weight: bold;\\n margin: 0;\\n margin-top: calc(var(--size-gap-double) + var(--size-gap-half));\\n }\\n .nextjs-container-errors-header small {\\n font-size: var(--size-font-small);\\n color: var(--color-accents-1);\\n margin-left: var(--size-gap-double);\\n }\\n .nextjs-container-errors-header small > span {\\n font-family: var(--font-stack-monospace);\\n }\\n .nextjs-container-errors-header > p {\\n font-family: var(--font-stack-monospace);\\n font-size: var(--size-font-small);\\n line-height: var(--size-font-big);\\n font-weight: bold;\\n margin: 0;\\n margin-top: var(--size-gap-half);\\n color: var(--color-ansi-red);\\n white-space: pre-wrap;\\n }\\n .nextjs-container-errors-header > div > small {\\n margin: 0;\\n margin-top: var(--size-gap-half);\\n }\\n .nextjs-container-errors-header > p > a {\\n color: var(--color-ansi-red);\\n }\\n\\n .nextjs-container-errors-body > h5:not(:first-child) {\\n margin-top: calc(var(--size-gap-double) + var(--size-gap));\\n }\\n .nextjs-container-errors-body > h5 {\\n margin-bottom: var(--size-gap);\\n }\\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: var(--size-gap);\\n }\\n\"])));\nvar templateObject_1;\n//# sourceMappingURL=Errors.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbnRhaW5lci9FcnJvcnMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBLGlDQUFpQyx1Q0FBdUMsWUFBWSxLQUFLLE9BQU87QUFDaEc7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpREFBaUQsT0FBTztBQUN4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQyxvQ0FBb0MsZ0JBQWdCO0FBQ3ZGLENBQUM7QUFDRDtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0EsMENBQTBDLDRCQUE0QjtBQUN0RSxDQUFDO0FBQ0Q7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QiwrREFBK0QsaUJBQWlCO0FBQzVHO0FBQ0Esb0NBQW9DLE1BQU0sK0JBQStCLFlBQVk7QUFDckYsbUNBQW1DLE1BQU0sbUNBQW1DLFlBQVk7QUFDeEYsZ0NBQWdDO0FBQ2hDO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxjQUFjLDZCQUE2QiwwQkFBMEIsY0FBYyxxQkFBcUI7QUFDeEcsaUJBQWlCLG9EQUFvRCxxRUFBcUUsY0FBYztBQUN4Six1QkFBdUIsc0JBQXNCO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdDQUF3QztBQUN4QyxtQ0FBbUMsU0FBUztBQUM1QyxtQ0FBbUMsV0FBVyxVQUFVO0FBQ3hELDBDQUEwQyxjQUFjO0FBQ3hEO0FBQ0EsOEdBQThHLE9BQU87QUFDckgsaUZBQWlGLGlCQUFpQjtBQUNsRyx5REFBeUQsZ0JBQWdCLFFBQVE7QUFDakYsK0NBQStDLGdCQUFnQixnQkFBZ0I7QUFDL0U7QUFDQSxrQ0FBa0M7QUFDbEM7QUFDQTtBQUNBLFVBQVUsWUFBWSxhQUFhLFNBQVMsVUFBVTtBQUN0RCxvQ0FBb0MsU0FBUztBQUM3QztBQUNBO0FBQ0E7QUFD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RDtBQUMzSDtBQUNBLGNBQWM7QUFDZCxjQUFjLHNJQUFzSSxzQ0FBc0MsMkNBQTJDLHdCQUF3QixnQkFBZ0Isc0VBQXNFLEtBQUssMkNBQTJDLHdDQUF3QyxvQ0FBb0MsMENBQTBDLEtBQUssa0RBQWtELCtDQUErQyxLQUFLLHlDQUF5QywrQ0FBK0Msd0NBQXdDLHdDQUF3Qyx3QkFBd0IsZ0JBQWdCLHVDQUF1QyxtQ0FBbUMsNEJBQTRCLEtBQUssbURBQW1ELGdCQUFnQix1Q0FBdUMsS0FBSyw2Q0FBNkMsbUNBQW1DLEtBQUssNERBQTRELGlFQUFpRSxLQUFLLHdDQUF3QyxxQ0FBcUMsS0FBSyxtQ0FBbUMsc0JBQXNCLHNDQUFzQyxLQUFLLHVDQUF1Qyw0QkFBNEIsS0FBSywwQkFBMEIsb0JBQW9CLDBCQUEwQixrQ0FBa0MsS0FBSyxnQ0FBZ0Msb0NBQW9DLEtBQUssa0RBQWtELHNDQUFzQywyQ0FBMkMsd0JBQXdCLGdCQUFnQixzRUFBc0UsS0FBSywyQ0FBMkMsd0NBQXdDLG9DQUFvQywwQ0FBMEMsS0FBSyxrREFBa0QsK0NBQStDLEtBQUsseUNBQXlDLCtDQUErQyx3Q0FBd0Msd0NBQXdDLHdCQUF3QixnQkFBZ0IsdUNBQXVDLG1DQUFtQyw0QkFBNEIsS0FBSyxtREFBbUQsZ0JBQWdCLHVDQUF1QyxLQUFLLDZDQUE2QyxtQ0FBbUMsS0FBSyw0REFBNEQsaUVBQWlFLEtBQUssd0NBQXdDLHFDQUFxQyxLQUFLLG1DQUFtQyxzQkFBc0Isc0NBQXNDLEtBQUssdUNBQXVDLDRCQUE0QixLQUFLLDBCQUEwQixvQkFBb0IsMEJBQTBCLGtDQUFrQyxLQUFLLGdDQUFnQyxvQ0FBb0MsS0FBSztBQUNwdEc7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbnRhaW5lci9FcnJvcnMuanM/MTc2YiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX21ha2VUZW1wbGF0ZU9iamVjdCA9ICh0aGlzICYmIHRoaXMuX19tYWtlVGVtcGxhdGVPYmplY3QpIHx8IGZ1bmN0aW9uIChjb29rZWQsIHJhdykge1xuICAgIGlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvb2tlZCwgXCJyYXdcIiwgeyB2YWx1ZTogcmF3IH0pOyB9IGVsc2UgeyBjb29rZWQucmF3ID0gcmF3OyB9XG4gICAgcmV0dXJuIGNvb2tlZDtcbn07XG52YXIgX19hc3NpZ24gPSAodGhpcyAmJiB0aGlzLl9fYXNzaWduKSB8fCBmdW5jdGlvbiAoKSB7XG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKVxuICAgICAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0O1xuICAgIH07XG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59O1xudmFyIF9fY3JlYXRlQmluZGluZyA9ICh0aGlzICYmIHRoaXMuX19jcmVhdGVCaW5kaW5nKSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH0pO1xufSkgOiAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIG9bazJdID0gbVtrXTtcbn0pKTtcbnZhciBfX3NldE1vZHVsZURlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9fc2V0TW9kdWxlRGVmYXVsdCkgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgdikge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBcImRlZmF1bHRcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdiB9KTtcbn0pIDogZnVuY3Rpb24obywgdikge1xuICAgIG9bXCJkZWZhdWx0XCJdID0gdjtcbn0pO1xudmFyIF9faW1wb3J0U3RhciA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnRTdGFyKSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDtcbiAgICB2YXIgcmVzdWx0ID0ge307XG4gICAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrIGluIG1vZCkgaWYgKGsgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChtb2QsIGspKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGspO1xuICAgIF9fc2V0TW9kdWxlRGVmYXVsdChyZXN1bHQsIG1vZCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG52YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbnZhciBfX2dlbmVyYXRvciA9ICh0aGlzICYmIHRoaXMuX19nZW5lcmF0b3IpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBib2R5KSB7XG4gICAgdmFyIF8gPSB7IGxhYmVsOiAwLCBzZW50OiBmdW5jdGlvbigpIHsgaWYgKHRbMF0gJiAxKSB0aHJvdyB0WzFdOyByZXR1cm4gdFsxXTsgfSwgdHJ5czogW10sIG9wczogW10gfSwgZiwgeSwgdCwgZztcbiAgICByZXR1cm4gZyA9IHsgbmV4dDogdmVyYigwKSwgXCJ0aHJvd1wiOiB2ZXJiKDEpLCBcInJldHVyblwiOiB2ZXJiKDIpIH0sIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzOyB9KSwgZztcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgcmV0dXJuIGZ1bmN0aW9uICh2KSB7IHJldHVybiBzdGVwKFtuLCB2XSk7IH07IH1cbiAgICBmdW5jdGlvbiBzdGVwKG9wKSB7XG4gICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcbiAgICAgICAgd2hpbGUgKF8pIHRyeSB7XG4gICAgICAgICAgICBpZiAoZiA9IDEsIHkgJiYgKHQgPSBvcFswXSAmIDIgPyB5W1wicmV0dXJuXCJdIDogb3BbMF0gPyB5W1widGhyb3dcIl0gfHwgKCh0ID0geVtcInJldHVyblwiXSkgJiYgdC5jYWxsKHkpLCAwKSA6IHkubmV4dCkgJiYgISh0ID0gdC5jYWxsKHksIG9wWzFdKSkuZG9uZSkgcmV0dXJuIHQ7XG4gICAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gW29wWzBdICYgMiwgdC52YWx1ZV07XG4gICAgICAgICAgICBzd2l0Y2ggKG9wWzBdKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAwOiBjYXNlIDE6IHQgPSBvcDsgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSA0OiBfLmxhYmVsKys7IHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTtcbiAgICAgICAgICAgICAgICBjYXNlIDU6IF8ubGFiZWwrKzsgeSA9IG9wWzFdOyBvcCA9IFswXTsgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSA3OiBvcCA9IF8ub3BzLnBvcCgpOyBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIGlmICghKHQgPSBfLnRyeXMsIHQgPSB0Lmxlbmd0aCA+IDAgJiYgdFt0Lmxlbmd0aCAtIDFdKSAmJiAob3BbMF0gPT09IDYgfHwgb3BbMF0gPT09IDIpKSB7IF8gPSAwOyBjb250aW51ZTsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDMgJiYgKCF0IHx8IChvcFsxXSA+IHRbMF0gJiYgb3BbMV0gPCB0WzNdKSkpIHsgXy5sYWJlbCA9IG9wWzFdOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDYgJiYgXy5sYWJlbCA8IHRbMV0pIHsgXy5sYWJlbCA9IHRbMV07IHQgPSBvcDsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHQgJiYgXy5sYWJlbCA8IHRbMl0pIHsgXy5sYWJlbCA9IHRbMl07IF8ub3BzLnB1c2gob3ApOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodFsyXSkgXy5vcHMucG9wKCk7XG4gICAgICAgICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcCA9IGJvZHkuY2FsbCh0aGlzQXJnLCBfKTtcbiAgICAgICAgfSBjYXRjaCAoZSkgeyBvcCA9IFs2LCBlXTsgeSA9IDA7IH0gZmluYWxseSB7IGYgPSB0ID0gMDsgfVxuICAgICAgICBpZiAob3BbMF0gJiA1KSB0aHJvdyBvcFsxXTsgcmV0dXJuIHsgdmFsdWU6IG9wWzBdID8gb3BbMV0gOiB2b2lkIDAsIGRvbmU6IHRydWUgfTtcbiAgICB9XG59O1xudmFyIF9fcmVhZCA9ICh0aGlzICYmIHRoaXMuX19yZWFkKSB8fCBmdW5jdGlvbiAobywgbikge1xuICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9bU3ltYm9sLml0ZXJhdG9yXTtcbiAgICBpZiAoIW0pIHJldHVybiBvO1xuICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlO1xuICAgIHRyeSB7XG4gICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpO1xuICAgIH1cbiAgICBjYXRjaCAoZXJyb3IpIHsgZSA9IHsgZXJyb3I6IGVycm9yIH07IH1cbiAgICBmaW5hbGx5IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpW1wicmV0dXJuXCJdKSkgbS5jYWxsKGkpO1xuICAgICAgICB9XG4gICAgICAgIGZpbmFsbHkgeyBpZiAoZSkgdGhyb3cgZS5lcnJvcjsgfVxuICAgIH1cbiAgICByZXR1cm4gYXI7XG59O1xuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHMuc3R5bGVzID0gZXhwb3J0cy5FcnJvcnMgPSB2b2lkIDA7XG52YXIgUmVhY3QgPSBfX2ltcG9ydFN0YXIocmVxdWlyZShcInJlYWN0XCIpKTtcbnZhciBidXNfMSA9IHJlcXVpcmUoXCIuLi9idXNcIik7XG52YXIgRGlhbG9nXzEgPSByZXF1aXJlKFwiLi4vY29tcG9uZW50cy9EaWFsb2dcIik7XG52YXIgTGVmdFJpZ2h0RGlhbG9nSGVhZGVyXzEgPSByZXF1aXJlKFwiLi4vY29tcG9uZW50cy9MZWZ0UmlnaHREaWFsb2dIZWFkZXJcIik7XG52YXIgT3ZlcmxheV8xID0gcmVxdWlyZShcIi4uL2NvbXBvbmVudHMvT3ZlcmxheVwiKTtcbnZhciBUb2FzdF8xID0gcmVxdWlyZShcIi4uL2NvbXBvbmVudHMvVG9hc3RcIik7XG52YXIgbm9kZVN0YWNrRnJhbWVzXzEgPSByZXF1aXJlKFwiLi4vaGVscGVycy9ub2RlU3RhY2tGcmFtZXNcIik7XG52YXIgbm9vcF90ZW1wbGF0ZV8xID0gcmVxdWlyZShcIi4uL2hlbHBlcnMvbm9vcC10ZW1wbGF0ZVwiKTtcbnZhciBzdGFja19mcmFtZV8xID0gcmVxdWlyZShcIi4uL2hlbHBlcnMvc3RhY2stZnJhbWVcIik7XG52YXIgUnVudGltZUVycm9yXzEgPSByZXF1aXJlKFwiLi9SdW50aW1lRXJyb3JcIik7XG5mdW5jdGlvbiBnZXRFcnJvclNpZ25hdHVyZShldikge1xuICAgIHZhciBldmVudCA9IGV2LmV2ZW50O1xuICAgIHN3aXRjaCAoZXZlbnQudHlwZSkge1xuICAgICAgICBjYXNlIGJ1c18xLlRZUEVfVU5IQU5ETEVEX0VSUk9SOlxuICAgICAgICBjYXNlIGJ1c18xLlRZUEVfVU5IQU5ETEVEX1JFSkVDVElPTjoge1xuICAgICAgICAgICAgcmV0dXJuIGV2ZW50LnJlYXNvbi5uYW1lICsgXCI6OlwiICsgZXZlbnQucmVhc29uLm1lc3NhZ2UgKyBcIjo6XCIgKyBldmVudC5yZWFzb24uc3RhY2s7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICB2YXIgXyA9IGV2ZW50O1xuICAgIHJldHVybiAnJztcbn1cbnZhciBIb3RsaW5rZWRUZXh0ID0gZnVuY3Rpb24gSG90bGlua2VkVGV4dChwcm9wcykge1xuICAgIHZhciB0ZXh0ID0gcHJvcHMudGV4dDtcbiAgICB2YXIgbGlua1JlZ2V4ID0gL2h0dHBzPzpcXC9cXC9bXlxccy8kLj8jXS5bXlxcc1wiXSovaTtcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3QuRnJhZ21lbnQsIG51bGwsIGxpbmtSZWdleC50ZXN0KHRleHQpXG4gICAgICAgID8gdGV4dC5zcGxpdCgnICcpLm1hcChmdW5jdGlvbiAod29yZCwgaW5kZXgsIGFycmF5KSB7XG4gICAgICAgICAgICBpZiAobGlua1JlZ2V4LnRlc3Qod29yZCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3QuRnJhZ21lbnQsIHsga2V5OiBcImxpbmstXCIgKyBpbmRleCB9LFxuICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiYVwiLCB7IGhyZWY6IHdvcmQgfSwgd29yZCksXG4gICAgICAgICAgICAgICAgICAgIGluZGV4ID09PSBhcnJheS5sZW5ndGggLSAxID8gJycgOiAnICcpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBpbmRleCA9PT0gYXJyYXkubGVuZ3RoIC0gMSA/IChSZWFjdC5jcmVhdGVFbGVtZW50KFJlYWN0LkZyYWdtZW50LCB7IGtleTogXCJ0ZXh0LVwiICsgaW5kZXggfSwgd29yZCkpIDogKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3QuRnJhZ21lbnQsIHsga2V5OiBcInRleHQtXCIgKyBpbmRleCB9LFxuICAgICAgICAgICAgICAgIHdvcmQsXG4gICAgICAgICAgICAgICAgXCIgXCIpKTtcbiAgICAgICAgfSlcbiAgICAgICAgOiB0ZXh0KSk7XG59O1xuZnVuY3Rpb24gZ2V0RXJyb3JCeVR5cGUoZXYpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBpZCwgZXZlbnQsIF9hLCBfO1xuICAgICAgICB2YXIgX2I7XG4gICAgICAgIHJldHVybiBfX2dlbmVyYXRvcih0aGlzLCBmdW5jdGlvbiAoX2MpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoX2MubGFiZWwpIHtcbiAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgIGlkID0gZXYuaWQsIGV2ZW50ID0gZXYuZXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgIF9hID0gZXZlbnQudHlwZTtcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChfYSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBidXNfMS5UWVBFX1VOSEFORExFRF9FUlJPUjogcmV0dXJuIFszIC8qYnJlYWsqLywgMV07XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIGJ1c18xLlRZUEVfVU5IQU5ETEVEX1JFSkVDVElPTjogcmV0dXJuIFszIC8qYnJlYWsqLywgMV07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFszIC8qYnJlYWsqLywgM107XG4gICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICBfYiA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJ1bnRpbWU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogZXZlbnQucmVhc29uXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbNCAvKnlpZWxkKi8sICgwLCBzdGFja19mcmFtZV8xLmdldE9yaWdpbmFsU3RhY2tGcmFtZXMpKCgwLCBub2RlU3RhY2tGcmFtZXNfMS5pc05vZGVFcnJvcikoZXZlbnQucmVhc29uKSwgZXZlbnQuZnJhbWVzKV07XG4gICAgICAgICAgICAgICAgY2FzZSAyOiByZXR1cm4gWzIgLypyZXR1cm4qLywgKF9iLmZyYW1lcyA9IF9jLnNlbnQoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF9iKV07XG4gICAgICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzMgLypicmVhayovLCA0XTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBfYy5sYWJlbCA9IDQ7XG4gICAgICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgICAgICAgICBfID0gZXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigndHlwZSBzeXN0ZW0gaW52YXJpYW50IHZpb2xhdGlvbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcbn1cbnZhciBFcnJvcnMgPSBmdW5jdGlvbiBFcnJvcnMoX2EpIHtcbiAgICB2YXIgZXJyb3JzID0gX2EuZXJyb3JzO1xuICAgIHZhciBfYiA9IF9fcmVhZChSZWFjdC51c2VTdGF0ZSh7fSksIDIpLCBsb29rdXBzID0gX2JbMF0sIHNldExvb2t1cHMgPSBfYlsxXTtcbiAgICB2YXIgX2MgPSBfX3JlYWQoUmVhY3QudXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciByZWFkeSA9IFtdO1xuICAgICAgICB2YXIgbmV4dCA9IG51bGw7XG4gICAgICAgIC8vIEVuc3VyZSBlcnJvcnMgYXJlIGRpc3BsYXllZCBpbiB0aGUgb3JkZXIgdGhleSBvY2N1cnJlZCBpbjpcbiAgICAgICAgZm9yICh2YXIgaWR4ID0gMDsgaWR4IDwgZXJyb3JzLmxlbmd0aDsgKytpZHgpIHtcbiAgICAgICAgICAgIHZhciBlID0gZXJyb3JzW2lkeF07XG4gICAgICAgICAgICB2YXIgaWQgPSBlLmlkO1xuICAgICAgICAgICAgaWYgKGlkIGluIGxvb2t1cHMpIHtcbiAgICAgICAgICAgICAgICByZWFkeS5wdXNoKGxvb2t1cHNbaWRdKTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIENoZWNrIGZvciBkdXBsaWNhdGUgZXJyb3JzXG4gICAgICAgICAgICBpZiAoaWR4ID4gMCkge1xuICAgICAgICAgICAgICAgIHZhciBwcmV2ID0gZXJyb3JzW2lkeCAtIDFdO1xuICAgICAgICAgICAgICAgIGlmIChnZXRFcnJvclNpZ25hdHVyZShwcmV2KSA9PT0gZ2V0RXJyb3JTaWduYXR1cmUoZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbmV4dCA9IGU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW3JlYWR5LCBuZXh0XTtcbiAgICB9LCBbZXJyb3JzLCBsb29rdXBzXSksIDIpLCByZWFkeUVycm9ycyA9IF9jWzBdLCBuZXh0RXJyb3IgPSBfY1sxXTtcbiAgICB2YXIgaXNMb2FkaW5nID0gUmVhY3QudXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiByZWFkeUVycm9ycy5sZW5ndGggPCAxICYmIEJvb2xlYW4oZXJyb3JzLmxlbmd0aCk7XG4gICAgfSwgW2Vycm9ycy5sZW5ndGgsIHJlYWR5RXJyb3JzLmxlbmd0aF0pO1xuICAgIFJlYWN0LnVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmIChuZXh0RXJyb3IgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhciBtb3VudGVkID0gdHJ1ZTtcbiAgICAgICAgZ2V0RXJyb3JCeVR5cGUobmV4dEVycm9yKS50aGVuKGZ1bmN0aW9uIChyZXNvbHZlZCkge1xuICAgICAgICAgICAgLy8gV2UgZG9uJ3QgY2FyZSBpZiB0aGUgZGVzaXJlZCBlcnJvciBjaGFuZ2VkIHdoaWxlIHdlIHdlcmUgcmVzb2x2aW5nLFxuICAgICAgICAgICAgLy8gdGh1cyB3ZSdyZSBub3QgdHJhY2tpbmcgaXQgdXNpbmcgYSByZWYuIE9uY2UgdGhlIHdvcmsgaGFzIGJlZW4gZG9uZSxcbiAgICAgICAgICAgIC8vIHdlJ2xsIHN0b3JlIGl0LlxuICAgICAgICAgICAgaWYgKG1vdW50ZWQpIHtcbiAgICAgICAgICAgICAgICBzZXRMb29rdXBzKGZ1bmN0aW9uIChtKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChfX2Fzc2lnbihfX2Fzc2lnbih7fSwgbSksIChfYSA9IHt9LCBfYVtyZXNvbHZlZC5pZF0gPSByZXNvbHZlZCwgX2EpKSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIC8vIFRPRE86IGhhbmRsZSB0aGlzLCB0aG91Z2ggYW4gZWRnZSBjYXNlXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgbW91bnRlZCA9IGZhbHNlO1xuICAgICAgICB9O1xuICAgIH0sIFtuZXh0RXJyb3JdKTtcbiAgICB2YXIgX2QgPSBfX3JlYWQoUmVhY3QudXNlU3RhdGUoZmFsc2UpLCAyKSwgaXNNaW5pbWl6ZWQgPSBfZFswXSwgc2V0TWluaW1pemVkID0gX2RbMV07XG4gICAgdmFyIF9lID0gX19yZWFkKFJlYWN0LnVzZVN0YXRlKDApLCAyKSwgYWN0aXZlSWR4ID0gX2VbMF0sIHNldEFjdGl2ZUluZGV4ID0gX2VbMV07XG4gICAgdmFyIHByZXZpb3VzID0gUmVhY3QudXNlQ2FsbGJhY2soZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgZSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHNldEFjdGl2ZUluZGV4KGZ1bmN0aW9uICh2KSB7IHJldHVybiBNYXRoLm1heCgwLCB2IC0gMSk7IH0pO1xuICAgIH0sIFtdKTtcbiAgICB2YXIgbmV4dCA9IFJlYWN0LnVzZUNhbGxiYWNrKGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIGUgPT09IG51bGwgfHwgZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBzZXRBY3RpdmVJbmRleChmdW5jdGlvbiAodikge1xuICAgICAgICAgICAgcmV0dXJuIE1hdGgubWF4KDAsIE1hdGgubWluKHJlYWR5RXJyb3JzLmxlbmd0aCAtIDEsIHYgKyAxKSk7XG4gICAgICAgIH0pO1xuICAgIH0sIFtyZWFkeUVycm9ycy5sZW5ndGhdKTtcbiAgICB2YXIgYWN0aXZlRXJyb3IgPSBSZWFjdC51c2VNZW1vKGZ1bmN0aW9uICgpIHsgdmFyIF9hOyByZXR1cm4gKF9hID0gcmVhZHlFcnJvcnNbYWN0aXZlSWR4XSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogbnVsbDsgfSwgW2FjdGl2ZUlkeCwgcmVhZHlFcnJvcnNdKTtcbiAgICAvLyBSZXNldCBjb21wb25lbnQgc3RhdGUgd2hlbiB0aGVyZSBhcmUgbm8gZXJyb3JzIHRvIGJlIGRpc3BsYXllZC5cbiAgICAvLyBUaGlzIHNob3VsZCBuZXZlciBoYXBwZW4sIGJ1dCBsZXRzIGhhbmRsZSBpdC5cbiAgICBSZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoZXJyb3JzLmxlbmd0aCA8IDEpIHtcbiAgICAgICAgICAgIHNldExvb2t1cHMoe30pO1xuICAgICAgICAgICAgc2V0TWluaW1pemVkKGZhbHNlKTtcbiAgICAgICAgICAgIHNldEFjdGl2ZUluZGV4KDApO1xuICAgICAgICB9XG4gICAgfSwgW2Vycm9ycy5sZW5ndGhdKTtcbiAgICB2YXIgbWluaW1pemUgPSBSZWFjdC51c2VDYWxsYmFjayhmdW5jdGlvbiAoZSkge1xuICAgICAgICBlID09PSBudWxsIHx8IGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgc2V0TWluaW1pemVkKHRydWUpO1xuICAgIH0sIFtdKTtcbiAgICB2YXIgcmVvcGVuID0gUmVhY3QudXNlQ2FsbGJhY2soZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgZSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHNldE1pbmltaXplZChmYWxzZSk7XG4gICAgfSwgW10pO1xuICAgIC8vIFRoaXMgY29tcG9uZW50IHNob3VsZG4ndCBiZSByZW5kZXJlZCB3aXRoIG5vIGVycm9ycywgYnV0IGlmIGl0IGlzLCBsZXQnc1xuICAgIC8vIGhhbmRsZSBpdCBncmFjZWZ1bGx5IGJ5IHJlbmRlcmluZyBub3RoaW5nLlxuICAgIGlmIChlcnJvcnMubGVuZ3RoIDwgMSB8fCBhY3RpdmVFcnJvciA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBpZiAoaXNMb2FkaW5nKSB7XG4gICAgICAgIC8vIFRPRE86IGJldHRlciBsb2FkaW5nIHN0YXRlXG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KE92ZXJsYXlfMS5PdmVybGF5LCBudWxsKTtcbiAgICB9XG4gICAgaWYgKGlzTWluaW1pemVkKSB7XG4gICAgICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChUb2FzdF8xLlRvYXN0LCB7IGNsYXNzTmFtZTogXCJuZXh0anMtdG9hc3QtZXJyb3JzLXBhcmVudFwiLCBvbkNsaWNrOiByZW9wZW4gfSxcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyBjbGFzc05hbWU6IFwibmV4dGpzLXRvYXN0LWVycm9yc1wiIH0sXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInN2Z1wiLCB7IHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsIHdpZHRoOiBcIjI0XCIsIGhlaWdodDogXCIyNFwiLCB2aWV3Qm94OiBcIjAgMCAyNCAyNFwiLCBmaWxsOiBcIm5vbmVcIiwgc3Ryb2tlOiBcImN1cnJlbnRDb2xvclwiLCBzdHJva2VXaWR0aDogXCIyXCIsIHN0cm9rZUxpbmVjYXA6IFwicm91bmRcIiwgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIiB9LFxuICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiY2lyY2xlXCIsIHsgY3g6IFwiMTJcIiwgY3k6IFwiMTJcIiwgcjogXCIxMFwiIH0pLFxuICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwibGluZVwiLCB7IHgxOiBcIjEyXCIsIHkxOiBcIjhcIiwgeDI6IFwiMTJcIiwgeTI6IFwiMTJcIiB9KSxcbiAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImxpbmVcIiwgeyB4MTogXCIxMlwiLCB5MTogXCIxNlwiLCB4MjogXCIxMi4wMVwiLCB5MjogXCIxNlwiIH0pKSxcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCBudWxsLFxuICAgICAgICAgICAgICAgICAgICByZWFkeUVycm9ycy5sZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgIFwiIGVycm9yXCIsXG4gICAgICAgICAgICAgICAgICAgIHJlYWR5RXJyb3JzLmxlbmd0aCA+IDEgPyAncycgOiAnJykpKSk7XG4gICAgfVxuICAgIHZhciBpc1NlcnZlckVycm9yID0gKDAsIG5vZGVTdGFja0ZyYW1lc18xLmlzTm9kZUVycm9yKShhY3RpdmVFcnJvci5lcnJvcik7XG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KE92ZXJsYXlfMS5PdmVybGF5LCBudWxsLFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KERpYWxvZ18xLkRpYWxvZywgeyB0eXBlOiBcImVycm9yXCIsIFwiYXJpYS1sYWJlbGxlZGJ5XCI6IFwibmV4dGpzX19jb250YWluZXJfZXJyb3JzX2xhYmVsXCIsIFwiYXJpYS1kZXNjcmliZWRieVwiOiBcIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19kZXNjXCIsIG9uQ2xvc2U6IGlzU2VydmVyRXJyb3IgPyB1bmRlZmluZWQgOiBtaW5pbWl6ZSB9LFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChEaWFsb2dfMS5EaWFsb2dDb250ZW50LCBudWxsLFxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRGlhbG9nXzEuRGlhbG9nSGVhZGVyLCB7IGNsYXNzTmFtZTogXCJuZXh0anMtY29udGFpbmVyLWVycm9ycy1oZWFkZXJcIiB9LFxuICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KExlZnRSaWdodERpYWxvZ0hlYWRlcl8xLkxlZnRSaWdodERpYWxvZ0hlYWRlciwgeyBwcmV2aW91czogYWN0aXZlSWR4ID4gMCA/IHByZXZpb3VzIDogbnVsbCwgbmV4dDogYWN0aXZlSWR4IDwgcmVhZHlFcnJvcnMubGVuZ3RoIC0gMSA/IG5leHQgOiBudWxsLCBjbG9zZTogaXNTZXJ2ZXJFcnJvciA/IHVuZGVmaW5lZCA6IG1pbmltaXplIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic21hbGxcIiwgbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCBudWxsLCBhY3RpdmVJZHggKyAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiBvZlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCBudWxsLCByZWFkeUVycm9ycy5sZW5ndGgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiIHVuaGFuZGxlZCBlcnJvclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWR5RXJyb3JzLmxlbmd0aCA8IDIgPyAnJyA6ICdzJykpLFxuICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaDFcIiwgeyBpZDogXCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfbGFiZWxcIiB9LCBpc1NlcnZlckVycm9yID8gJ1NlcnZlciBFcnJvcicgOiAnVW5oYW5kbGVkIFJ1bnRpbWUgRXJyb3InKSxcbiAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInBcIiwgeyBpZDogXCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfZGVzY1wiIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVFcnJvci5lcnJvci5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCI6XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAnICcsXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEhvdGxpbmtlZFRleHQsIHsgdGV4dDogYWN0aXZlRXJyb3IuZXJyb3IubWVzc2FnZSB9KSksXG4gICAgICAgICAgICAgICAgICAgIGlzU2VydmVyRXJyb3IgPyAoUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInNtYWxsXCIsIG51bGwsIFwiVGhpcyBlcnJvciBoYXBwZW5lZCB3aGlsZSBnZW5lcmF0aW5nIHRoZSBwYWdlLiBBbnkgY29uc29sZSBsb2dzIHdpbGwgYmUgZGlzcGxheWVkIGluIHRoZSB0ZXJtaW5hbCB3aW5kb3cuXCIpKSkgOiB1bmRlZmluZWQpLFxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRGlhbG9nXzEuRGlhbG9nQm9keSwgeyBjbGFzc05hbWU6IFwibmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtYm9keVwiIH0sXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoUnVudGltZUVycm9yXzEuUnVudGltZUVycm9yLCB7IGtleTogYWN0aXZlRXJyb3IuaWQudG9TdHJpbmcoKSwgZXJyb3I6IGFjdGl2ZUVycm9yIH0pKSkpKSk7XG59O1xuZXhwb3J0cy5FcnJvcnMgPSBFcnJvcnM7XG5leHBvcnRzLnN0eWxlcyA9ICgwLCBub29wX3RlbXBsYXRlXzEubm9vcCkodGVtcGxhdGVPYmplY3RfMSB8fCAodGVtcGxhdGVPYmplY3RfMSA9IF9fbWFrZVRlbXBsYXRlT2JqZWN0KFtcIlxcbiAgLm5leHRqcy1jb250YWluZXItZXJyb3JzLWhlYWRlciA+IGgxIHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLWZvbnQtYmlnKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLXNpemUtZm9udC1iaWdnZXIpO1xcbiAgICBmb250LXdlaWdodDogYm9sZDtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBtYXJnaW4tdG9wOiBjYWxjKHZhcigtLXNpemUtZ2FwLWRvdWJsZSkgKyB2YXIoLS1zaXplLWdhcC1oYWxmKSk7XFxuICB9XFxuICAubmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtaGVhZGVyIHNtYWxsIHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLWZvbnQtc21hbGwpO1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItYWNjZW50cy0xKTtcXG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLXNpemUtZ2FwLWRvdWJsZSk7XFxuICB9XFxuICAubmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtaGVhZGVyIHNtYWxsID4gc3BhbiB7XFxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXN0YWNrLW1vbm9zcGFjZSk7XFxuICB9XFxuICAubmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtaGVhZGVyID4gcCB7XFxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXN0YWNrLW1vbm9zcGFjZSk7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS1mb250LXNtYWxsKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLXNpemUtZm9udC1iaWcpO1xcbiAgICBmb250LXdlaWdodDogYm9sZDtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1zaXplLWdhcC1oYWxmKTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktcmVkKTtcXG4gICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xcbiAgfVxcbiAgLm5leHRqcy1jb250YWluZXItZXJyb3JzLWhlYWRlciA+IGRpdiA+IHNtYWxsIHtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1zaXplLWdhcC1oYWxmKTtcXG4gIH1cXG4gIC5uZXh0anMtY29udGFpbmVyLWVycm9ycy1oZWFkZXIgPiBwID4gYSB7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLXJlZCk7XFxuICB9XFxuXFxuICAubmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtYm9keSA+IGg1Om5vdCg6Zmlyc3QtY2hpbGQpIHtcXG4gICAgbWFyZ2luLXRvcDogY2FsYyh2YXIoLS1zaXplLWdhcC1kb3VibGUpICsgdmFyKC0tc2l6ZS1nYXApKTtcXG4gIH1cXG4gIC5uZXh0anMtY29udGFpbmVyLWVycm9ycy1ib2R5ID4gaDUge1xcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zaXplLWdhcCk7XFxuICB9XFxuXFxuICAubmV4dGpzLXRvYXN0LWVycm9ycy1wYXJlbnQge1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7XFxuICB9XFxuICAubmV4dGpzLXRvYXN0LWVycm9ycy1wYXJlbnQ6aG92ZXIge1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XFxuICB9XFxuICAubmV4dGpzLXRvYXN0LWVycm9ycyB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcXG4gIH1cXG4gIC5uZXh0anMtdG9hc3QtZXJyb3JzID4gc3ZnIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1zaXplLWdhcCk7XFxuICB9XFxuXCJdLCBbXCJcXG4gIC5uZXh0anMtY29udGFpbmVyLWVycm9ycy1oZWFkZXIgPiBoMSB7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS1mb250LWJpZyk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1zaXplLWZvbnQtYmlnZ2VyKTtcXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgbWFyZ2luLXRvcDogY2FsYyh2YXIoLS1zaXplLWdhcC1kb3VibGUpICsgdmFyKC0tc2l6ZS1nYXAtaGFsZikpO1xcbiAgfVxcbiAgLm5leHRqcy1jb250YWluZXItZXJyb3JzLWhlYWRlciBzbWFsbCB7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS1mb250LXNtYWxsKTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudHMtMSk7XFxuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1zaXplLWdhcC1kb3VibGUpO1xcbiAgfVxcbiAgLm5leHRqcy1jb250YWluZXItZXJyb3JzLWhlYWRlciBzbWFsbCA+IHNwYW4ge1xcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1tb25vc3BhY2UpO1xcbiAgfVxcbiAgLm5leHRqcy1jb250YWluZXItZXJyb3JzLWhlYWRlciA+IHAge1xcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1tb25vc3BhY2UpO1xcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtZm9udC1zbWFsbCk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1zaXplLWZvbnQtYmlnKTtcXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgbWFyZ2luLXRvcDogdmFyKC0tc2l6ZS1nYXAtaGFsZik7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLXJlZCk7XFxuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcXG4gIH1cXG4gIC5uZXh0anMtY29udGFpbmVyLWVycm9ycy1oZWFkZXIgPiBkaXYgPiBzbWFsbCB7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgbWFyZ2luLXRvcDogdmFyKC0tc2l6ZS1nYXAtaGFsZik7XFxuICB9XFxuICAubmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtaGVhZGVyID4gcCA+IGEge1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItYW5zaS1yZWQpO1xcbiAgfVxcblxcbiAgLm5leHRqcy1jb250YWluZXItZXJyb3JzLWJvZHkgPiBoNTpub3QoOmZpcnN0LWNoaWxkKSB7XFxuICAgIG1hcmdpbi10b3A6IGNhbGModmFyKC0tc2l6ZS1nYXAtZG91YmxlKSArIHZhcigtLXNpemUtZ2FwKSk7XFxuICB9XFxuICAubmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtYm9keSA+IGg1IHtcXG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc2l6ZS1nYXApO1xcbiAgfVxcblxcbiAgLm5leHRqcy10b2FzdC1lcnJvcnMtcGFyZW50IHtcXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xcbiAgfVxcbiAgLm5leHRqcy10b2FzdC1lcnJvcnMtcGFyZW50OmhvdmVyIHtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xcbiAgfVxcbiAgLm5leHRqcy10b2FzdC1lcnJvcnMge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XFxuICB9XFxuICAubmV4dGpzLXRvYXN0LWVycm9ycyA+IHN2ZyB7XFxuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tc2l6ZS1nYXApO1xcbiAgfVxcblwiXSkpKTtcbnZhciB0ZW1wbGF0ZU9iamVjdF8xO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RXJyb3JzLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/container/Errors.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/container/RuntimeError.js": +/*!*************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/container/RuntimeError.js ***! + \*************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nexports.__esModule = true;\nexports.RuntimeError = exports.styles = void 0;\nvar React = __importStar(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nvar CodeFrame_1 = __webpack_require__(/*! ../components/CodeFrame */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/CodeFrame/index.js\");\nvar noop_template_1 = __webpack_require__(/*! ../helpers/noop-template */ \"./node_modules/@next/react-dev-overlay/lib/internal/helpers/noop-template.js\");\nvar stack_frame_1 = __webpack_require__(/*! ../helpers/stack-frame */ \"./node_modules/@next/react-dev-overlay/lib/internal/helpers/stack-frame.js\");\nvar CallStackFrame = function CallStackFrame(_a) {\n // TODO: ability to expand resolved frames\n // TODO: render error or external indicator\n var _b;\n var frame = _a.frame;\n var f = (_b = frame.originalStackFrame) !== null && _b !== void 0 ? _b : frame.sourceStackFrame;\n var hasSource = Boolean(frame.originalCodeFrame);\n var open = React.useCallback(function () {\n var _a;\n if (!hasSource)\n return;\n var params = new URLSearchParams();\n for (var key in f) {\n params.append(key, ((_a = f[key]) !== null && _a !== void 0 ? _a : '').toString());\n }\n self\n .fetch(( false || '') + \"/__nextjs_launch-editor?\" + params.toString())\n .then(function () { }, function () {\n // TODO: report error\n });\n }, [hasSource, f]);\n return (React.createElement(\"div\", { \"data-nextjs-call-stack-frame\": true },\n React.createElement(\"h6\", { \"data-nextjs-frame-expanded\": Boolean(frame.expanded) }, f.methodName),\n React.createElement(\"div\", { \"data-has-source\": hasSource ? 'true' : undefined, tabIndex: hasSource ? 10 : undefined, role: hasSource ? 'link' : undefined, onClick: open, title: hasSource ? 'Click to open in your editor' : undefined },\n React.createElement(\"span\", null, (0, stack_frame_1.getFrameSource)(f)),\n React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 24 24\", fill: \"none\", stroke: \"currentColor\", strokeWidth: \"2\", strokeLinecap: \"round\", strokeLinejoin: \"round\" },\n React.createElement(\"path\", { d: \"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\" }),\n React.createElement(\"polyline\", { points: \"15 3 21 3 21 9\" }),\n React.createElement(\"line\", { x1: \"10\", y1: \"14\", x2: \"21\", y2: \"3\" })))));\n};\nvar RuntimeError = function RuntimeError(_a) {\n var error = _a.error;\n var firstFirstPartyFrameIndex = React.useMemo(function () {\n return error.frames.findIndex(function (entry) {\n return entry.expanded &&\n Boolean(entry.originalCodeFrame) &&\n Boolean(entry.originalStackFrame);\n });\n }, [error.frames]);\n var firstFrame = React.useMemo(function () {\n var _a;\n return (_a = error.frames[firstFirstPartyFrameIndex]) !== null && _a !== void 0 ? _a : null;\n }, [error.frames, firstFirstPartyFrameIndex]);\n var allLeadingFrames = React.useMemo(function () {\n return firstFirstPartyFrameIndex < 0\n ? []\n : error.frames.slice(0, firstFirstPartyFrameIndex);\n }, [error.frames, firstFirstPartyFrameIndex]);\n var _b = __read(React.useState(firstFrame == null), 2), all = _b[0], setAll = _b[1];\n var toggleAll = React.useCallback(function () {\n setAll(function (v) { return !v; });\n }, []);\n var leadingFrames = React.useMemo(function () { return allLeadingFrames.filter(function (f) { return f.expanded || all; }); }, [all, allLeadingFrames]);\n var allCallStackFrames = React.useMemo(function () { return error.frames.slice(firstFirstPartyFrameIndex + 1); }, [error.frames, firstFirstPartyFrameIndex]);\n var visibleCallStackFrames = React.useMemo(function () { return allCallStackFrames.filter(function (f) { return f.expanded || all; }); }, [all, allCallStackFrames]);\n var canShowMore = React.useMemo(function () {\n return (allCallStackFrames.length !== visibleCallStackFrames.length ||\n (all && firstFrame != null));\n }, [\n all,\n allCallStackFrames.length,\n firstFrame,\n visibleCallStackFrames.length,\n ]);\n return (React.createElement(React.Fragment, null,\n firstFrame ? (React.createElement(React.Fragment, null,\n React.createElement(\"h5\", null, \"Source\"),\n leadingFrames.map(function (frame, index) { return (React.createElement(CallStackFrame, { key: \"leading-frame-\" + index + \"-\" + all, frame: frame })); }),\n React.createElement(CodeFrame_1.CodeFrame, { stackFrame: firstFrame.originalStackFrame, codeFrame: firstFrame.originalCodeFrame }))) : undefined,\n visibleCallStackFrames.length ? (React.createElement(React.Fragment, null,\n React.createElement(\"h5\", null, \"Call Stack\"),\n visibleCallStackFrames.map(function (frame, index) { return (React.createElement(CallStackFrame, { key: \"call-stack-\" + index + \"-\" + all, frame: frame })); }))) : undefined,\n canShowMore ? (React.createElement(React.Fragment, null,\n React.createElement(\"button\", { tabIndex: 10, \"data-nextjs-data-runtime-error-collapsed-action\": true, type: \"button\", onClick: toggleAll },\n all ? 'Hide' : 'Show',\n \" collapsed frames\"))) : undefined));\n};\nexports.RuntimeError = RuntimeError;\nexports.styles = (0, noop_template_1.noop)(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\n button[data-nextjs-data-runtime-error-collapsed-action] {\\n background: none;\\n border: none;\\n padding: 0;\\n font-size: var(--size-font-small);\\n line-height: var(--size-font-bigger);\\n color: var(--color-accents-3);\\n }\\n\\n [data-nextjs-call-stack-frame]:not(:last-child) {\\n margin-bottom: var(--size-gap-double);\\n }\\n\\n [data-nextjs-call-stack-frame] > h6 {\\n margin-top: 0;\\n margin-bottom: var(--size-gap);\\n font-family: var(--font-stack-monospace);\\n color: #222;\\n }\\n [data-nextjs-call-stack-frame] > h6[data-nextjs-frame-expanded='false'] {\\n color: #666;\\n }\\n [data-nextjs-call-stack-frame] > div {\\n display: flex;\\n align-items: center;\\n padding-left: calc(var(--size-gap) + var(--size-gap-half));\\n font-size: var(--size-font-small);\\n color: #999;\\n }\\n [data-nextjs-call-stack-frame] > div > svg {\\n width: auto;\\n height: var(--size-font-small);\\n margin-left: var(--size-gap);\\n\\n display: none;\\n }\\n\\n [data-nextjs-call-stack-frame] > div[data-has-source] {\\n cursor: pointer;\\n }\\n [data-nextjs-call-stack-frame] > div[data-has-source]:hover {\\n text-decoration: underline dotted;\\n }\\n [data-nextjs-call-stack-frame] > div[data-has-source] > svg {\\n display: unset;\\n }\\n\"], [\"\\n button[data-nextjs-data-runtime-error-collapsed-action] {\\n background: none;\\n border: none;\\n padding: 0;\\n font-size: var(--size-font-small);\\n line-height: var(--size-font-bigger);\\n color: var(--color-accents-3);\\n }\\n\\n [data-nextjs-call-stack-frame]:not(:last-child) {\\n margin-bottom: var(--size-gap-double);\\n }\\n\\n [data-nextjs-call-stack-frame] > h6 {\\n margin-top: 0;\\n margin-bottom: var(--size-gap);\\n font-family: var(--font-stack-monospace);\\n color: #222;\\n }\\n [data-nextjs-call-stack-frame] > h6[data-nextjs-frame-expanded='false'] {\\n color: #666;\\n }\\n [data-nextjs-call-stack-frame] > div {\\n display: flex;\\n align-items: center;\\n padding-left: calc(var(--size-gap) + var(--size-gap-half));\\n font-size: var(--size-font-small);\\n color: #999;\\n }\\n [data-nextjs-call-stack-frame] > div > svg {\\n width: auto;\\n height: var(--size-font-small);\\n margin-left: var(--size-gap);\\n\\n display: none;\\n }\\n\\n [data-nextjs-call-stack-frame] > div[data-has-source] {\\n cursor: pointer;\\n }\\n [data-nextjs-call-stack-frame] > div[data-has-source]:hover {\\n text-decoration: underline dotted;\\n }\\n [data-nextjs-call-stack-frame] > div[data-has-source] > svg {\\n display: unset;\\n }\\n\"])));\nvar templateObject_1;\n//# sourceMappingURL=RuntimeError.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbnRhaW5lci9SdW50aW1lRXJyb3IuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBLGlDQUFpQyx1Q0FBdUMsWUFBWSxLQUFLLE9BQU87QUFDaEc7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMsb0NBQW9DLGdCQUFnQjtBQUN2RixDQUFDO0FBQ0Q7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBLDBDQUEwQyw0QkFBNEI7QUFDdEUsQ0FBQztBQUNEO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsTUFBTTtBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEIsb0JBQW9CLEdBQUcsY0FBYztBQUNyQyx5QkFBeUIsbUJBQU8sQ0FBQyw0Q0FBTztBQUN4QyxrQkFBa0IsbUJBQU8sQ0FBQyxrSEFBeUI7QUFDbkQsc0JBQXNCLG1CQUFPLENBQUMsOEdBQTBCO0FBQ3hELG9CQUFvQixtQkFBTyxDQUFDLDBHQUF3QjtBQUNwRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixNQUFrQztBQUN0RCxpQ0FBaUM7QUFDakM7QUFDQSxTQUFTO0FBQ1QsS0FBSztBQUNMLHlDQUF5QyxzQ0FBc0M7QUFDL0Usb0NBQW9DLHVEQUF1RDtBQUMzRixxQ0FBcUMsNk1BQTZNO0FBQ2xQO0FBQ0EseUNBQXlDLG9LQUFvSztBQUM3TSw4Q0FBOEMsK0RBQStEO0FBQzdHLGtEQUFrRCwwQkFBMEI7QUFDNUUsOENBQThDLHVDQUF1QztBQUNyRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLDhCQUE4QixZQUFZO0FBQzFDLEtBQUs7QUFDTCxvREFBb0QsOENBQThDLDJCQUEyQixJQUFJO0FBQ2pJLHlEQUF5RCwyREFBMkQ7QUFDcEgsNkRBQTZELGdEQUFnRCwyQkFBMkIsSUFBSTtBQUM1STtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdEQUF3RCw4Q0FBOEMseURBQXlELEtBQUs7QUFDcEsseURBQXlELG9GQUFvRjtBQUM3STtBQUNBO0FBQ0EsaUVBQWlFLDhDQUE4QyxzREFBc0QsS0FBSztBQUMxSztBQUNBLDRDQUE0QywyR0FBMkc7QUFDdko7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCLGNBQWMseUpBQXlKLHVCQUF1QixtQkFBbUIsaUJBQWlCLHdDQUF3QywyQ0FBMkMsb0NBQW9DLEtBQUssdURBQXVELDRDQUE0QyxLQUFLLDJDQUEyQyxvQkFBb0IscUNBQXFDLCtDQUErQyxrQkFBa0IsS0FBSyw2RUFBNkUsa0JBQWtCLEtBQUssMENBQTBDLG9CQUFvQiwwQkFBMEIsaUVBQWlFLHdDQUF3QyxrQkFBa0IsS0FBSyxnREFBZ0Qsa0JBQWtCLHFDQUFxQyxtQ0FBbUMsc0JBQXNCLEtBQUssNkRBQTZELHNCQUFzQixLQUFLLGlFQUFpRSx3Q0FBd0MsS0FBSyxpRUFBaUUscUJBQXFCLEtBQUsscUVBQXFFLHVCQUF1QixtQkFBbUIsaUJBQWlCLHdDQUF3QywyQ0FBMkMsb0NBQW9DLEtBQUssdURBQXVELDRDQUE0QyxLQUFLLDJDQUEyQyxvQkFBb0IscUNBQXFDLCtDQUErQyxrQkFBa0IsS0FBSyw2RUFBNkUsa0JBQWtCLEtBQUssMENBQTBDLG9CQUFvQiwwQkFBMEIsaUVBQWlFLHdDQUF3QyxrQkFBa0IsS0FBSyxnREFBZ0Qsa0JBQWtCLHFDQUFxQyxtQ0FBbUMsc0JBQXNCLEtBQUssNkRBQTZELHNCQUFzQixLQUFLLGlFQUFpRSx3Q0FBd0MsS0FBSyxpRUFBaUUscUJBQXFCLEtBQUs7QUFDbG9GO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BuZXh0L3JlYWN0LWRldi1vdmVybGF5L2xpYi9pbnRlcm5hbC9jb250YWluZXIvUnVudGltZUVycm9yLmpzP2MyMDYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19tYWtlVGVtcGxhdGVPYmplY3QgPSAodGhpcyAmJiB0aGlzLl9fbWFrZVRlbXBsYXRlT2JqZWN0KSB8fCBmdW5jdGlvbiAoY29va2VkLCByYXcpIHtcbiAgICBpZiAoT2JqZWN0LmRlZmluZVByb3BlcnR5KSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb29rZWQsIFwicmF3XCIsIHsgdmFsdWU6IHJhdyB9KTsgfSBlbHNlIHsgY29va2VkLnJhdyA9IHJhdzsgfVxuICAgIHJldHVybiBjb29rZWQ7XG59O1xudmFyIF9fY3JlYXRlQmluZGluZyA9ICh0aGlzICYmIHRoaXMuX19jcmVhdGVCaW5kaW5nKSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH0pO1xufSkgOiAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIG9bazJdID0gbVtrXTtcbn0pKTtcbnZhciBfX3NldE1vZHVsZURlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9fc2V0TW9kdWxlRGVmYXVsdCkgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgdikge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBcImRlZmF1bHRcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdiB9KTtcbn0pIDogZnVuY3Rpb24obywgdikge1xuICAgIG9bXCJkZWZhdWx0XCJdID0gdjtcbn0pO1xudmFyIF9faW1wb3J0U3RhciA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnRTdGFyKSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDtcbiAgICB2YXIgcmVzdWx0ID0ge307XG4gICAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrIGluIG1vZCkgaWYgKGsgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChtb2QsIGspKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGspO1xuICAgIF9fc2V0TW9kdWxlRGVmYXVsdChyZXN1bHQsIG1vZCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG52YXIgX19yZWFkID0gKHRoaXMgJiYgdGhpcy5fX3JlYWQpIHx8IGZ1bmN0aW9uIChvLCBuKSB7XG4gICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdO1xuICAgIGlmICghbSkgcmV0dXJuIG87XG4gICAgdmFyIGkgPSBtLmNhbGwobyksIHIsIGFyID0gW10sIGU7XG4gICAgdHJ5IHtcbiAgICAgICAgd2hpbGUgKChuID09PSB2b2lkIDAgfHwgbi0tID4gMCkgJiYgIShyID0gaS5uZXh0KCkpLmRvbmUpIGFyLnB1c2goci52YWx1ZSk7XG4gICAgfVxuICAgIGNhdGNoIChlcnJvcikgeyBlID0geyBlcnJvcjogZXJyb3IgfTsgfVxuICAgIGZpbmFsbHkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbXCJyZXR1cm5cIl0pKSBtLmNhbGwoaSk7XG4gICAgICAgIH1cbiAgICAgICAgZmluYWxseSB7IGlmIChlKSB0aHJvdyBlLmVycm9yOyB9XG4gICAgfVxuICAgIHJldHVybiBhcjtcbn07XG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5SdW50aW1lRXJyb3IgPSBleHBvcnRzLnN0eWxlcyA9IHZvaWQgMDtcbnZhciBSZWFjdCA9IF9faW1wb3J0U3RhcihyZXF1aXJlKFwicmVhY3RcIikpO1xudmFyIENvZGVGcmFtZV8xID0gcmVxdWlyZShcIi4uL2NvbXBvbmVudHMvQ29kZUZyYW1lXCIpO1xudmFyIG5vb3BfdGVtcGxhdGVfMSA9IHJlcXVpcmUoXCIuLi9oZWxwZXJzL25vb3AtdGVtcGxhdGVcIik7XG52YXIgc3RhY2tfZnJhbWVfMSA9IHJlcXVpcmUoXCIuLi9oZWxwZXJzL3N0YWNrLWZyYW1lXCIpO1xudmFyIENhbGxTdGFja0ZyYW1lID0gZnVuY3Rpb24gQ2FsbFN0YWNrRnJhbWUoX2EpIHtcbiAgICAvLyBUT0RPOiBhYmlsaXR5IHRvIGV4cGFuZCByZXNvbHZlZCBmcmFtZXNcbiAgICAvLyBUT0RPOiByZW5kZXIgZXJyb3Igb3IgZXh0ZXJuYWwgaW5kaWNhdG9yXG4gICAgdmFyIF9iO1xuICAgIHZhciBmcmFtZSA9IF9hLmZyYW1lO1xuICAgIHZhciBmID0gKF9iID0gZnJhbWUub3JpZ2luYWxTdGFja0ZyYW1lKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBmcmFtZS5zb3VyY2VTdGFja0ZyYW1lO1xuICAgIHZhciBoYXNTb3VyY2UgPSBCb29sZWFuKGZyYW1lLm9yaWdpbmFsQ29kZUZyYW1lKTtcbiAgICB2YXIgb3BlbiA9IFJlYWN0LnVzZUNhbGxiYWNrKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoIWhhc1NvdXJjZSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgdmFyIHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgICAgICAgZm9yICh2YXIga2V5IGluIGYpIHtcbiAgICAgICAgICAgIHBhcmFtcy5hcHBlbmQoa2V5LCAoKF9hID0gZltrZXldKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAnJykudG9TdHJpbmcoKSk7XG4gICAgICAgIH1cbiAgICAgICAgc2VsZlxuICAgICAgICAgICAgLmZldGNoKChwcm9jZXNzLmVudi5fX05FWFRfUk9VVEVSX0JBU0VQQVRIIHx8ICcnKSArIFwiL19fbmV4dGpzX2xhdW5jaC1lZGl0b3I/XCIgKyBwYXJhbXMudG9TdHJpbmcoKSlcbiAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uICgpIHsgfSwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgLy8gVE9ETzogcmVwb3J0IGVycm9yXG4gICAgICAgIH0pO1xuICAgIH0sIFtoYXNTb3VyY2UsIGZdKTtcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyBcImRhdGEtbmV4dGpzLWNhbGwtc3RhY2stZnJhbWVcIjogdHJ1ZSB9LFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaDZcIiwgeyBcImRhdGEtbmV4dGpzLWZyYW1lLWV4cGFuZGVkXCI6IEJvb2xlYW4oZnJhbWUuZXhwYW5kZWQpIH0sIGYubWV0aG9kTmFtZSksXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyBcImRhdGEtaGFzLXNvdXJjZVwiOiBoYXNTb3VyY2UgPyAndHJ1ZScgOiB1bmRlZmluZWQsIHRhYkluZGV4OiBoYXNTb3VyY2UgPyAxMCA6IHVuZGVmaW5lZCwgcm9sZTogaGFzU291cmNlID8gJ2xpbmsnIDogdW5kZWZpbmVkLCBvbkNsaWNrOiBvcGVuLCB0aXRsZTogaGFzU291cmNlID8gJ0NsaWNrIHRvIG9wZW4gaW4geW91ciBlZGl0b3InIDogdW5kZWZpbmVkIH0sXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCBudWxsLCAoMCwgc3RhY2tfZnJhbWVfMS5nZXRGcmFtZVNvdXJjZSkoZikpLFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInN2Z1wiLCB7IHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsIHZpZXdCb3g6IFwiMCAwIDI0IDI0XCIsIGZpbGw6IFwibm9uZVwiLCBzdHJva2U6IFwiY3VycmVudENvbG9yXCIsIHN0cm9rZVdpZHRoOiBcIjJcIiwgc3Ryb2tlTGluZWNhcDogXCJyb3VuZFwiLCBzdHJva2VMaW5lam9pbjogXCJyb3VuZFwiIH0sXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwgeyBkOiBcIk0xOCAxM3Y2YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmg2XCIgfSksXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInBvbHlsaW5lXCIsIHsgcG9pbnRzOiBcIjE1IDMgMjEgMyAyMSA5XCIgfSksXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImxpbmVcIiwgeyB4MTogXCIxMFwiLCB5MTogXCIxNFwiLCB4MjogXCIyMVwiLCB5MjogXCIzXCIgfSkpKSkpO1xufTtcbnZhciBSdW50aW1lRXJyb3IgPSBmdW5jdGlvbiBSdW50aW1lRXJyb3IoX2EpIHtcbiAgICB2YXIgZXJyb3IgPSBfYS5lcnJvcjtcbiAgICB2YXIgZmlyc3RGaXJzdFBhcnR5RnJhbWVJbmRleCA9IFJlYWN0LnVzZU1lbW8oZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gZXJyb3IuZnJhbWVzLmZpbmRJbmRleChmdW5jdGlvbiAoZW50cnkpIHtcbiAgICAgICAgICAgIHJldHVybiBlbnRyeS5leHBhbmRlZCAmJlxuICAgICAgICAgICAgICAgIEJvb2xlYW4oZW50cnkub3JpZ2luYWxDb2RlRnJhbWUpICYmXG4gICAgICAgICAgICAgICAgQm9vbGVhbihlbnRyeS5vcmlnaW5hbFN0YWNrRnJhbWUpO1xuICAgICAgICB9KTtcbiAgICB9LCBbZXJyb3IuZnJhbWVzXSk7XG4gICAgdmFyIGZpcnN0RnJhbWUgPSBSZWFjdC51c2VNZW1vKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICByZXR1cm4gKF9hID0gZXJyb3IuZnJhbWVzW2ZpcnN0Rmlyc3RQYXJ0eUZyYW1lSW5kZXhdKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBudWxsO1xuICAgIH0sIFtlcnJvci5mcmFtZXMsIGZpcnN0Rmlyc3RQYXJ0eUZyYW1lSW5kZXhdKTtcbiAgICB2YXIgYWxsTGVhZGluZ0ZyYW1lcyA9IFJlYWN0LnVzZU1lbW8oZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gZmlyc3RGaXJzdFBhcnR5RnJhbWVJbmRleCA8IDBcbiAgICAgICAgICAgID8gW11cbiAgICAgICAgICAgIDogZXJyb3IuZnJhbWVzLnNsaWNlKDAsIGZpcnN0Rmlyc3RQYXJ0eUZyYW1lSW5kZXgpO1xuICAgIH0sIFtlcnJvci5mcmFtZXMsIGZpcnN0Rmlyc3RQYXJ0eUZyYW1lSW5kZXhdKTtcbiAgICB2YXIgX2IgPSBfX3JlYWQoUmVhY3QudXNlU3RhdGUoZmlyc3RGcmFtZSA9PSBudWxsKSwgMiksIGFsbCA9IF9iWzBdLCBzZXRBbGwgPSBfYlsxXTtcbiAgICB2YXIgdG9nZ2xlQWxsID0gUmVhY3QudXNlQ2FsbGJhY2soZnVuY3Rpb24gKCkge1xuICAgICAgICBzZXRBbGwoZnVuY3Rpb24gKHYpIHsgcmV0dXJuICF2OyB9KTtcbiAgICB9LCBbXSk7XG4gICAgdmFyIGxlYWRpbmdGcmFtZXMgPSBSZWFjdC51c2VNZW1vKGZ1bmN0aW9uICgpIHsgcmV0dXJuIGFsbExlYWRpbmdGcmFtZXMuZmlsdGVyKGZ1bmN0aW9uIChmKSB7IHJldHVybiBmLmV4cGFuZGVkIHx8IGFsbDsgfSk7IH0sIFthbGwsIGFsbExlYWRpbmdGcmFtZXNdKTtcbiAgICB2YXIgYWxsQ2FsbFN0YWNrRnJhbWVzID0gUmVhY3QudXNlTWVtbyhmdW5jdGlvbiAoKSB7IHJldHVybiBlcnJvci5mcmFtZXMuc2xpY2UoZmlyc3RGaXJzdFBhcnR5RnJhbWVJbmRleCArIDEpOyB9LCBbZXJyb3IuZnJhbWVzLCBmaXJzdEZpcnN0UGFydHlGcmFtZUluZGV4XSk7XG4gICAgdmFyIHZpc2libGVDYWxsU3RhY2tGcmFtZXMgPSBSZWFjdC51c2VNZW1vKGZ1bmN0aW9uICgpIHsgcmV0dXJuIGFsbENhbGxTdGFja0ZyYW1lcy5maWx0ZXIoZnVuY3Rpb24gKGYpIHsgcmV0dXJuIGYuZXhwYW5kZWQgfHwgYWxsOyB9KTsgfSwgW2FsbCwgYWxsQ2FsbFN0YWNrRnJhbWVzXSk7XG4gICAgdmFyIGNhblNob3dNb3JlID0gUmVhY3QudXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAoYWxsQ2FsbFN0YWNrRnJhbWVzLmxlbmd0aCAhPT0gdmlzaWJsZUNhbGxTdGFja0ZyYW1lcy5sZW5ndGggfHxcbiAgICAgICAgICAgIChhbGwgJiYgZmlyc3RGcmFtZSAhPSBudWxsKSk7XG4gICAgfSwgW1xuICAgICAgICBhbGwsXG4gICAgICAgIGFsbENhbGxTdGFja0ZyYW1lcy5sZW5ndGgsXG4gICAgICAgIGZpcnN0RnJhbWUsXG4gICAgICAgIHZpc2libGVDYWxsU3RhY2tGcmFtZXMubGVuZ3RoLFxuICAgIF0pO1xuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChSZWFjdC5GcmFnbWVudCwgbnVsbCxcbiAgICAgICAgZmlyc3RGcmFtZSA/IChSZWFjdC5jcmVhdGVFbGVtZW50KFJlYWN0LkZyYWdtZW50LCBudWxsLFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImg1XCIsIG51bGwsIFwiU291cmNlXCIpLFxuICAgICAgICAgICAgbGVhZGluZ0ZyYW1lcy5tYXAoZnVuY3Rpb24gKGZyYW1lLCBpbmRleCkgeyByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2FsbFN0YWNrRnJhbWUsIHsga2V5OiBcImxlYWRpbmctZnJhbWUtXCIgKyBpbmRleCArIFwiLVwiICsgYWxsLCBmcmFtZTogZnJhbWUgfSkpOyB9KSxcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ29kZUZyYW1lXzEuQ29kZUZyYW1lLCB7IHN0YWNrRnJhbWU6IGZpcnN0RnJhbWUub3JpZ2luYWxTdGFja0ZyYW1lLCBjb2RlRnJhbWU6IGZpcnN0RnJhbWUub3JpZ2luYWxDb2RlRnJhbWUgfSkpKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgdmlzaWJsZUNhbGxTdGFja0ZyYW1lcy5sZW5ndGggPyAoUmVhY3QuY3JlYXRlRWxlbWVudChSZWFjdC5GcmFnbWVudCwgbnVsbCxcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJoNVwiLCBudWxsLCBcIkNhbGwgU3RhY2tcIiksXG4gICAgICAgICAgICB2aXNpYmxlQ2FsbFN0YWNrRnJhbWVzLm1hcChmdW5jdGlvbiAoZnJhbWUsIGluZGV4KSB7IHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChDYWxsU3RhY2tGcmFtZSwgeyBrZXk6IFwiY2FsbC1zdGFjay1cIiArIGluZGV4ICsgXCItXCIgKyBhbGwsIGZyYW1lOiBmcmFtZSB9KSk7IH0pKSkgOiB1bmRlZmluZWQsXG4gICAgICAgIGNhblNob3dNb3JlID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3QuRnJhZ21lbnQsIG51bGwsXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiYnV0dG9uXCIsIHsgdGFiSW5kZXg6IDEwLCBcImRhdGEtbmV4dGpzLWRhdGEtcnVudGltZS1lcnJvci1jb2xsYXBzZWQtYWN0aW9uXCI6IHRydWUsIHR5cGU6IFwiYnV0dG9uXCIsIG9uQ2xpY2s6IHRvZ2dsZUFsbCB9LFxuICAgICAgICAgICAgICAgIGFsbCA/ICdIaWRlJyA6ICdTaG93JyxcbiAgICAgICAgICAgICAgICBcIiBjb2xsYXBzZWQgZnJhbWVzXCIpKSkgOiB1bmRlZmluZWQpKTtcbn07XG5leHBvcnRzLlJ1bnRpbWVFcnJvciA9IFJ1bnRpbWVFcnJvcjtcbmV4cG9ydHMuc3R5bGVzID0gKDAsIG5vb3BfdGVtcGxhdGVfMS5ub29wKSh0ZW1wbGF0ZU9iamVjdF8xIHx8ICh0ZW1wbGF0ZU9iamVjdF8xID0gX19tYWtlVGVtcGxhdGVPYmplY3QoW1wiXFxuICBidXR0b25bZGF0YS1uZXh0anMtZGF0YS1ydW50aW1lLWVycm9yLWNvbGxhcHNlZC1hY3Rpb25dIHtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgYm9yZGVyOiBub25lO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtZm9udC1zbWFsbCk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1zaXplLWZvbnQtYmlnZ2VyKTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudHMtMyk7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZV06bm90KDpsYXN0LWNoaWxkKSB7XFxuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNpemUtZ2FwLWRvdWJsZSk7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZV0gPiBoNiB7XFxuICAgIG1hcmdpbi10b3A6IDA7XFxuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNpemUtZ2FwKTtcXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc3RhY2stbW9ub3NwYWNlKTtcXG4gICAgY29sb3I6ICMyMjI7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZV0gPiBoNltkYXRhLW5leHRqcy1mcmFtZS1leHBhbmRlZD0nZmFsc2UnXSB7XFxuICAgIGNvbG9yOiAjNjY2O1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWNhbGwtc3RhY2stZnJhbWVdID4gZGl2IHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgcGFkZGluZy1sZWZ0OiBjYWxjKHZhcigtLXNpemUtZ2FwKSArIHZhcigtLXNpemUtZ2FwLWhhbGYpKTtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLWZvbnQtc21hbGwpO1xcbiAgICBjb2xvcjogIzk5OTtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWZyYW1lXSA+IGRpdiA+IHN2ZyB7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgICBoZWlnaHQ6IHZhcigtLXNpemUtZm9udC1zbWFsbCk7XFxuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1zaXplLWdhcCk7XFxuXFxuICAgIGRpc3BsYXk6IG5vbmU7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZV0gPiBkaXZbZGF0YS1oYXMtc291cmNlXSB7XFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWZyYW1lXSA+IGRpdltkYXRhLWhhcy1zb3VyY2VdOmhvdmVyIHtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWNhbGwtc3RhY2stZnJhbWVdID4gZGl2W2RhdGEtaGFzLXNvdXJjZV0gPiBzdmcge1xcbiAgICBkaXNwbGF5OiB1bnNldDtcXG4gIH1cXG5cIl0sIFtcIlxcbiAgYnV0dG9uW2RhdGEtbmV4dGpzLWRhdGEtcnVudGltZS1lcnJvci1jb2xsYXBzZWQtYWN0aW9uXSB7XFxuICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIGJvcmRlcjogbm9uZTtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLWZvbnQtc21hbGwpO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tc2l6ZS1mb250LWJpZ2dlcik7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnRzLTMpO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWNhbGwtc3RhY2stZnJhbWVdOm5vdCg6bGFzdC1jaGlsZCkge1xcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zaXplLWdhcC1kb3VibGUpO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWNhbGwtc3RhY2stZnJhbWVdID4gaDYge1xcbiAgICBtYXJnaW4tdG9wOiAwO1xcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zaXplLWdhcCk7XFxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXN0YWNrLW1vbm9zcGFjZSk7XFxuICAgIGNvbG9yOiAjMjIyO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWNhbGwtc3RhY2stZnJhbWVdID4gaDZbZGF0YS1uZXh0anMtZnJhbWUtZXhwYW5kZWQ9J2ZhbHNlJ10ge1xcbiAgICBjb2xvcjogIzY2NjtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWZyYW1lXSA+IGRpdiB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIHBhZGRpbmctbGVmdDogY2FsYyh2YXIoLS1zaXplLWdhcCkgKyB2YXIoLS1zaXplLWdhcC1oYWxmKSk7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS1mb250LXNtYWxsKTtcXG4gICAgY29sb3I6ICM5OTk7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZV0gPiBkaXYgPiBzdmcge1xcbiAgICB3aWR0aDogYXV0bztcXG4gICAgaGVpZ2h0OiB2YXIoLS1zaXplLWZvbnQtc21hbGwpO1xcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tc2l6ZS1nYXApO1xcblxcbiAgICBkaXNwbGF5OiBub25lO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWNhbGwtc3RhY2stZnJhbWVdID4gZGl2W2RhdGEtaGFzLXNvdXJjZV0ge1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZV0gPiBkaXZbZGF0YS1oYXMtc291cmNlXTpob3ZlciB7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWZyYW1lXSA+IGRpdltkYXRhLWhhcy1zb3VyY2VdID4gc3ZnIHtcXG4gICAgZGlzcGxheTogdW5zZXQ7XFxuICB9XFxuXCJdKSkpO1xudmFyIHRlbXBsYXRlT2JqZWN0XzE7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1SdW50aW1lRXJyb3IuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/container/RuntimeError.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/helpers/nodeStackFrames.js": +/*!**************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/helpers/nodeStackFrames.js ***! + \**************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nexports.__esModule = true;\nexports.getNodeError = exports.isNodeError = exports.getFilesystemFrame = void 0;\nvar stacktrace_parser_1 = __webpack_require__(/*! stacktrace-parser */ \"./node_modules/stacktrace-parser/dist/stack-trace-parser.esm.js\");\nfunction getFilesystemFrame(frame) {\n var f = __assign({}, frame);\n if (typeof f.file === 'string') {\n if (\n // Posix:\n f.file.startsWith('/') ||\n // Win32:\n /^[a-z]:\\\\/i.test(f.file) ||\n // Win32 UNC:\n f.file.startsWith('\\\\\\\\')) {\n f.file = \"file://\" + f.file;\n }\n }\n return f;\n}\nexports.getFilesystemFrame = getFilesystemFrame;\nvar symbolNodeError = Symbol('NextjsNodeError');\nfunction isNodeError(error) {\n return symbolNodeError in error;\n}\nexports.isNodeError = isNodeError;\nfunction getNodeError(error) {\n var n;\n try {\n throw new Error(error.message);\n }\n catch (e) {\n n = e;\n }\n n.name = error.name;\n try {\n n.stack = (0, stacktrace_parser_1.parse)(error.stack)\n .map(getFilesystemFrame)\n .map(function (f) {\n var str = \" at \" + f.methodName;\n if (f.file) {\n var loc = f.file;\n if (f.lineNumber) {\n loc += \":\" + f.lineNumber;\n if (f.column) {\n loc += \":\" + f.column;\n }\n }\n str += \" (\" + loc + \")\";\n }\n return str;\n })\n .join('\\n');\n }\n catch (_a) {\n n.stack = error.stack;\n }\n Object.defineProperty(n, symbolNodeError, {\n writable: false,\n enumerable: false,\n configurable: false\n });\n return n;\n}\nexports.getNodeError = getNodeError;\n//# sourceMappingURL=nodeStackFrames.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2hlbHBlcnMvbm9kZVN0YWNrRnJhbWVzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQTtBQUNBLGlEQUFpRCxPQUFPO0FBQ3hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEIsb0JBQW9CLEdBQUcsbUJBQW1CLEdBQUcsMEJBQTBCO0FBQ3ZFLDBCQUEwQixtQkFBTyxDQUFDLDBGQUFtQjtBQUNyRDtBQUNBLHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQjtBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQjtBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2hlbHBlcnMvbm9kZVN0YWNrRnJhbWVzLmpzPzIyOTAiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19hc3NpZ24gPSAodGhpcyAmJiB0aGlzLl9fYXNzaWduKSB8fCBmdW5jdGlvbiAoKSB7XG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKVxuICAgICAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0O1xuICAgIH07XG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59O1xuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHMuZ2V0Tm9kZUVycm9yID0gZXhwb3J0cy5pc05vZGVFcnJvciA9IGV4cG9ydHMuZ2V0RmlsZXN5c3RlbUZyYW1lID0gdm9pZCAwO1xudmFyIHN0YWNrdHJhY2VfcGFyc2VyXzEgPSByZXF1aXJlKFwic3RhY2t0cmFjZS1wYXJzZXJcIik7XG5mdW5jdGlvbiBnZXRGaWxlc3lzdGVtRnJhbWUoZnJhbWUpIHtcbiAgICB2YXIgZiA9IF9fYXNzaWduKHt9LCBmcmFtZSk7XG4gICAgaWYgKHR5cGVvZiBmLmZpbGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgLy8gUG9zaXg6XG4gICAgICAgIGYuZmlsZS5zdGFydHNXaXRoKCcvJykgfHxcbiAgICAgICAgICAgIC8vIFdpbjMyOlxuICAgICAgICAgICAgL15bYS16XTpcXFxcL2kudGVzdChmLmZpbGUpIHx8XG4gICAgICAgICAgICAvLyBXaW4zMiBVTkM6XG4gICAgICAgICAgICBmLmZpbGUuc3RhcnRzV2l0aCgnXFxcXFxcXFwnKSkge1xuICAgICAgICAgICAgZi5maWxlID0gXCJmaWxlOi8vXCIgKyBmLmZpbGU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGY7XG59XG5leHBvcnRzLmdldEZpbGVzeXN0ZW1GcmFtZSA9IGdldEZpbGVzeXN0ZW1GcmFtZTtcbnZhciBzeW1ib2xOb2RlRXJyb3IgPSBTeW1ib2woJ05leHRqc05vZGVFcnJvcicpO1xuZnVuY3Rpb24gaXNOb2RlRXJyb3IoZXJyb3IpIHtcbiAgICByZXR1cm4gc3ltYm9sTm9kZUVycm9yIGluIGVycm9yO1xufVxuZXhwb3J0cy5pc05vZGVFcnJvciA9IGlzTm9kZUVycm9yO1xuZnVuY3Rpb24gZ2V0Tm9kZUVycm9yKGVycm9yKSB7XG4gICAgdmFyIG47XG4gICAgdHJ5IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yLm1lc3NhZ2UpO1xuICAgIH1cbiAgICBjYXRjaCAoZSkge1xuICAgICAgICBuID0gZTtcbiAgICB9XG4gICAgbi5uYW1lID0gZXJyb3IubmFtZTtcbiAgICB0cnkge1xuICAgICAgICBuLnN0YWNrID0gKDAsIHN0YWNrdHJhY2VfcGFyc2VyXzEucGFyc2UpKGVycm9yLnN0YWNrKVxuICAgICAgICAgICAgLm1hcChnZXRGaWxlc3lzdGVtRnJhbWUpXG4gICAgICAgICAgICAubWFwKGZ1bmN0aW9uIChmKSB7XG4gICAgICAgICAgICB2YXIgc3RyID0gXCIgICAgYXQgXCIgKyBmLm1ldGhvZE5hbWU7XG4gICAgICAgICAgICBpZiAoZi5maWxlKSB7XG4gICAgICAgICAgICAgICAgdmFyIGxvYyA9IGYuZmlsZTtcbiAgICAgICAgICAgICAgICBpZiAoZi5saW5lTnVtYmVyKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvYyArPSBcIjpcIiArIGYubGluZU51bWJlcjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGYuY29sdW1uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2MgKz0gXCI6XCIgKyBmLmNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzdHIgKz0gXCIgKFwiICsgbG9jICsgXCIpXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gc3RyO1xuICAgICAgICB9KVxuICAgICAgICAgICAgLmpvaW4oJ1xcbicpO1xuICAgIH1cbiAgICBjYXRjaCAoX2EpIHtcbiAgICAgICAgbi5zdGFjayA9IGVycm9yLnN0YWNrO1xuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobiwgc3ltYm9sTm9kZUVycm9yLCB7XG4gICAgICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2VcbiAgICB9KTtcbiAgICByZXR1cm4gbjtcbn1cbmV4cG9ydHMuZ2V0Tm9kZUVycm9yID0gZ2V0Tm9kZUVycm9yO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bm9kZVN0YWNrRnJhbWVzLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/helpers/nodeStackFrames.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/helpers/noop-template.js": +/*!************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/helpers/noop-template.js ***! + \************************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nexports.__esModule = true;\nexports.noop = void 0;\nfunction noop(strings) {\n var keys = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n keys[_i - 1] = arguments[_i];\n }\n var lastIndex = strings.length - 1;\n return (strings.slice(0, lastIndex).reduce(function (p, s, i) { return p + s + keys[i]; }, '') +\n strings[lastIndex]);\n}\nexports.noop = noop;\n//# sourceMappingURL=noop-template.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2hlbHBlcnMvbm9vcC10ZW1wbGF0ZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLGtCQUFrQjtBQUNsQixZQUFZO0FBQ1o7QUFDQTtBQUNBLHFCQUFxQix1QkFBdUI7QUFDNUM7QUFDQTtBQUNBO0FBQ0Esb0VBQW9FLHlCQUF5QjtBQUM3RjtBQUNBO0FBQ0EsWUFBWTtBQUNaIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AbmV4dC9yZWFjdC1kZXYtb3ZlcmxheS9saWIvaW50ZXJuYWwvaGVscGVycy9ub29wLXRlbXBsYXRlLmpzP2Y1ZTEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5ub29wID0gdm9pZCAwO1xuZnVuY3Rpb24gbm9vcChzdHJpbmdzKSB7XG4gICAgdmFyIGtleXMgPSBbXTtcbiAgICBmb3IgKHZhciBfaSA9IDE7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykge1xuICAgICAgICBrZXlzW19pIC0gMV0gPSBhcmd1bWVudHNbX2ldO1xuICAgIH1cbiAgICB2YXIgbGFzdEluZGV4ID0gc3RyaW5ncy5sZW5ndGggLSAxO1xuICAgIHJldHVybiAoc3RyaW5ncy5zbGljZSgwLCBsYXN0SW5kZXgpLnJlZHVjZShmdW5jdGlvbiAocCwgcywgaSkgeyByZXR1cm4gcCArIHMgKyBrZXlzW2ldOyB9LCAnJykgK1xuICAgICAgICBzdHJpbmdzW2xhc3RJbmRleF0pO1xufVxuZXhwb3J0cy5ub29wID0gbm9vcDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW5vb3AtdGVtcGxhdGUuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/helpers/noop-template.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/helpers/parseStack.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/helpers/parseStack.js ***! + \*********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nexports.__esModule = true;\nexports.parseStack = void 0;\nvar stacktrace_parser_1 = __webpack_require__(/*! stacktrace-parser */ \"./node_modules/stacktrace-parser/dist/stack-trace-parser.esm.js\");\nvar regexNextStatic = /\\/_next(\\/static\\/.+)/g;\nfunction parseStack(stack) {\n var frames = (0, stacktrace_parser_1.parse)(stack);\n return frames.map(function (frame) {\n var _a, _b;\n try {\n var url = new URL(frame.file);\n var res = regexNextStatic.exec(url.pathname);\n if (res) {\n var distDir = (_b = (_a = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\.next\") === null || _a === void 0 ? void 0 : _a.replace(/\\\\/g, '/')) === null || _b === void 0 ? void 0 : _b.replace(/\\/$/, '');\n if (distDir) {\n frame.file = 'file://' + distDir.concat(res.pop());\n }\n }\n }\n catch (_c) { }\n return frame;\n });\n}\nexports.parseStack = parseStack;\n//# sourceMappingURL=parseStack.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2hlbHBlcnMvcGFyc2VTdGFjay5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLGtCQUFrQjtBQUNsQixrQkFBa0I7QUFDbEIsMEJBQTBCLG1CQUFPLENBQUMsMEZBQW1CO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBDQUEwQyw2Q0FBMkI7QUFDckU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxrQkFBa0I7QUFDbEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BuZXh0L3JlYWN0LWRldi1vdmVybGF5L2xpYi9pbnRlcm5hbC9oZWxwZXJzL3BhcnNlU3RhY2suanM/OTg2MCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLnBhcnNlU3RhY2sgPSB2b2lkIDA7XG52YXIgc3RhY2t0cmFjZV9wYXJzZXJfMSA9IHJlcXVpcmUoXCJzdGFja3RyYWNlLXBhcnNlclwiKTtcbnZhciByZWdleE5leHRTdGF0aWMgPSAvXFwvX25leHQoXFwvc3RhdGljXFwvLispL2c7XG5mdW5jdGlvbiBwYXJzZVN0YWNrKHN0YWNrKSB7XG4gICAgdmFyIGZyYW1lcyA9ICgwLCBzdGFja3RyYWNlX3BhcnNlcl8xLnBhcnNlKShzdGFjayk7XG4gICAgcmV0dXJuIGZyYW1lcy5tYXAoZnVuY3Rpb24gKGZyYW1lKSB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB2YXIgdXJsID0gbmV3IFVSTChmcmFtZS5maWxlKTtcbiAgICAgICAgICAgIHZhciByZXMgPSByZWdleE5leHRTdGF0aWMuZXhlYyh1cmwucGF0aG5hbWUpO1xuICAgICAgICAgICAgaWYgKHJlcykge1xuICAgICAgICAgICAgICAgIHZhciBkaXN0RGlyID0gKF9iID0gKF9hID0gcHJvY2Vzcy5lbnYuX19ORVhUX0RJU1RfRElSKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EucmVwbGFjZSgvXFxcXC9nLCAnLycpKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IucmVwbGFjZSgvXFwvJC8sICcnKTtcbiAgICAgICAgICAgICAgICBpZiAoZGlzdERpcikge1xuICAgICAgICAgICAgICAgICAgICBmcmFtZS5maWxlID0gJ2ZpbGU6Ly8nICsgZGlzdERpci5jb25jYXQocmVzLnBvcCgpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKF9jKSB7IH1cbiAgICAgICAgcmV0dXJuIGZyYW1lO1xuICAgIH0pO1xufVxuZXhwb3J0cy5wYXJzZVN0YWNrID0gcGFyc2VTdGFjaztcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBhcnNlU3RhY2suanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/helpers/parseStack.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/helpers/stack-frame.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/helpers/stack-frame.js ***! + \**********************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nexports.__esModule = true;\nexports.getFrameSource = exports.getOriginalStackFrame = exports.getOriginalStackFrames = void 0;\nfunction getOriginalStackFrames(isServerSide, frames) {\n return Promise.all(frames.map(function (frame) { return getOriginalStackFrame(isServerSide, frame); }));\n}\nexports.getOriginalStackFrames = getOriginalStackFrames;\nfunction getOriginalStackFrame(isServerSide, source) {\n var _a, _b;\n function _getOriginalStackFrame() {\n var _a, _b, _c, _d, _e;\n return __awaiter(this, void 0, void 0, function () {\n var params, key, controller, tm, res, _f, _g, _h, body;\n return __generator(this, function (_j) {\n switch (_j.label) {\n case 0:\n params = new URLSearchParams();\n params.append('isServerSide', String(isServerSide));\n for (key in source) {\n params.append(key, ((_a = source[key]) !== null && _a !== void 0 ? _a : '').toString());\n }\n controller = new AbortController();\n tm = setTimeout(function () { return controller.abort(); }, 3000);\n return [4 /*yield*/, self\n .fetch(( false || '') + \"/__nextjs_original-stack-frame?\" + params.toString(), {\n signal: controller.signal\n })[\"finally\"](function () {\n clearTimeout(tm);\n })];\n case 1:\n res = _j.sent();\n if (!(!res.ok || res.status === 204)) return [3 /*break*/, 3];\n _g = (_f = Promise).reject;\n _h = Error.bind;\n return [4 /*yield*/, res.text()];\n case 2: return [2 /*return*/, _g.apply(_f, [new (_h.apply(Error, [void 0, _j.sent()]))()])];\n case 3: return [4 /*yield*/, res.json()];\n case 4:\n body = _j.sent();\n return [2 /*return*/, {\n error: false,\n reason: null,\n external: false,\n expanded: !Boolean(\n /* collapsed */\n (_e = (((_b = source.file) === null || _b === void 0 ? void 0 : _b.includes('node_modules')) ||\n ((_d = (_c = body.originalStackFrame) === null || _c === void 0 ? void 0 : _c.file) === null || _d === void 0 ? void 0 : _d.includes('node_modules')))) !== null && _e !== void 0 ? _e : true),\n sourceStackFrame: source,\n originalStackFrame: body.originalStackFrame,\n originalCodeFrame: body.originalCodeFrame || null\n }];\n }\n });\n });\n }\n if (!(((_a = source.file) === null || _a === void 0 ? void 0 : _a.startsWith('webpack-internal:')) ||\n ((_b = source.file) === null || _b === void 0 ? void 0 : _b.startsWith('file:')))) {\n return Promise.resolve({\n error: false,\n reason: null,\n external: true,\n expanded: false,\n sourceStackFrame: source,\n originalStackFrame: null,\n originalCodeFrame: null\n });\n }\n return _getOriginalStackFrame()[\"catch\"](function (err) {\n var _a, _b;\n return ({\n error: true,\n reason: (_b = (_a = err === null || err === void 0 ? void 0 : err.message) !== null && _a !== void 0 ? _a : err === null || err === void 0 ? void 0 : err.toString()) !== null && _b !== void 0 ? _b : 'Unknown Error',\n external: false,\n expanded: false,\n sourceStackFrame: source,\n originalStackFrame: null,\n originalCodeFrame: null\n });\n });\n}\nexports.getOriginalStackFrame = getOriginalStackFrame;\nfunction getFrameSource(frame) {\n var _a;\n var str = '';\n try {\n var u = new URL(frame.file);\n // Strip the origin for same-origin scripts.\n if (typeof globalThis !== 'undefined' &&\n ((_a = globalThis.location) === null || _a === void 0 ? void 0 : _a.origin) !== u.origin) {\n // URLs can be valid without an `origin`, so long as they have a\n // `protocol`. However, `origin` is preferred.\n if (u.origin === 'null') {\n str += u.protocol;\n }\n else {\n str += u.origin;\n }\n }\n // Strip query string information as it's typically too verbose to be\n // meaningful.\n str += u.pathname;\n str += ' ';\n }\n catch (_b) {\n str += (frame.file || '(unknown)') + ' ';\n }\n if (frame.lineNumber != null) {\n if (frame.column != null) {\n str += \"(\" + frame.lineNumber + \":\" + frame.column + \") \";\n }\n else {\n str += \"(\" + frame.lineNumber + \") \";\n }\n }\n return str.slice(0, -1);\n}\nexports.getFrameSource = getFrameSource;\n//# sourceMappingURL=stack-frame.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2hlbHBlcnMvc3RhY2stZnJhbWUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBLDRCQUE0QiwrREFBK0QsaUJBQWlCO0FBQzVHO0FBQ0Esb0NBQW9DLE1BQU0sK0JBQStCLFlBQVk7QUFDckYsbUNBQW1DLE1BQU0sbUNBQW1DLFlBQVk7QUFDeEYsZ0NBQWdDO0FBQ2hDO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxjQUFjLDZCQUE2QiwwQkFBMEIsY0FBYyxxQkFBcUI7QUFDeEcsaUJBQWlCLG9EQUFvRCxxRUFBcUUsY0FBYztBQUN4Six1QkFBdUIsc0JBQXNCO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdDQUF3QztBQUN4QyxtQ0FBbUMsU0FBUztBQUM1QyxtQ0FBbUMsV0FBVyxVQUFVO0FBQ3hELDBDQUEwQyxjQUFjO0FBQ3hEO0FBQ0EsOEdBQThHLE9BQU87QUFDckgsaUZBQWlGLGlCQUFpQjtBQUNsRyx5REFBeUQsZ0JBQWdCLFFBQVE7QUFDakYsK0NBQStDLGdCQUFnQixnQkFBZ0I7QUFDL0U7QUFDQSxrQ0FBa0M7QUFDbEM7QUFDQTtBQUNBLFVBQVUsWUFBWSxhQUFhLFNBQVMsVUFBVTtBQUN0RCxvQ0FBb0MsU0FBUztBQUM3QztBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCLHNCQUFzQixHQUFHLDZCQUE2QixHQUFHLDhCQUE4QjtBQUN2RjtBQUNBLHFEQUFxRCxvREFBb0Q7QUFDekc7QUFDQSw4QkFBOEI7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0RBQXNELDRCQUE0QjtBQUNsRjtBQUNBLHdDQUF3QyxNQUFrQztBQUMxRTtBQUNBLDZCQUE2QjtBQUM3QjtBQUNBLDZCQUE2QjtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkI7QUFDN0I7QUFDQSxhQUFhO0FBQ2IsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxLQUFLO0FBQ0w7QUFDQSw2QkFBNkI7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQjtBQUN0QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2hlbHBlcnMvc3RhY2stZnJhbWUuanM/MDNhYyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xudmFyIF9fZ2VuZXJhdG9yID0gKHRoaXMgJiYgdGhpcy5fX2dlbmVyYXRvcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIGJvZHkpIHtcbiAgICB2YXIgXyA9IHsgbGFiZWw6IDAsIHNlbnQ6IGZ1bmN0aW9uKCkgeyBpZiAodFswXSAmIDEpIHRocm93IHRbMV07IHJldHVybiB0WzFdOyB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCBmLCB5LCB0LCBnO1xuICAgIHJldHVybiBnID0geyBuZXh0OiB2ZXJiKDApLCBcInRocm93XCI6IHZlcmIoMSksIFwicmV0dXJuXCI6IHZlcmIoMikgfSwgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIChnW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbigpIHsgcmV0dXJuIHRoaXM7IH0pLCBnO1xuICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxuICAgIGZ1bmN0aW9uIHN0ZXAob3ApIHtcbiAgICAgICAgaWYgKGYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuXCIpO1xuICAgICAgICB3aGlsZSAoXykgdHJ5IHtcbiAgICAgICAgICAgIGlmIChmID0gMSwgeSAmJiAodCA9IG9wWzBdICYgMiA/IHlbXCJyZXR1cm5cIl0gOiBvcFswXSA/IHlbXCJ0aHJvd1wiXSB8fCAoKHQgPSB5W1wicmV0dXJuXCJdKSAmJiB0LmNhbGwoeSksIDApIDogeS5uZXh0KSAmJiAhKHQgPSB0LmNhbGwoeSwgb3BbMV0pKS5kb25lKSByZXR1cm4gdDtcbiAgICAgICAgICAgIGlmICh5ID0gMCwgdCkgb3AgPSBbb3BbMF0gJiAyLCB0LnZhbHVlXTtcbiAgICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHtcbiAgICAgICAgICAgICAgICBjYXNlIDA6IGNhc2UgMTogdCA9IG9wOyBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDQ6IF8ubGFiZWwrKzsgcmV0dXJuIHsgdmFsdWU6IG9wWzFdLCBkb25lOiBmYWxzZSB9O1xuICAgICAgICAgICAgICAgIGNhc2UgNTogXy5sYWJlbCsrOyB5ID0gb3BbMV07IG9wID0gWzBdOyBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjYXNlIDc6IG9wID0gXy5vcHMucG9wKCk7IF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEodCA9IF8udHJ5cywgdCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmIChvcFswXSA9PT0gNiB8fCBvcFswXSA9PT0gMikpIHsgXyA9IDA7IGNvbnRpbnVlOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gMyAmJiAoIXQgfHwgKG9wWzFdID4gdFswXSAmJiBvcFsxXSA8IHRbM10pKSkgeyBfLmxhYmVsID0gb3BbMV07IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gNiAmJiBfLmxhYmVsIDwgdFsxXSkgeyBfLmxhYmVsID0gdFsxXTsgdCA9IG9wOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkgeyBfLmxhYmVsID0gdFsyXTsgXy5vcHMucHVzaChvcCk7IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0WzJdKSBfLm9wcy5wb3AoKTtcbiAgICAgICAgICAgICAgICAgICAgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wID0gYm9keS5jYWxsKHRoaXNBcmcsIF8pO1xuICAgICAgICB9IGNhdGNoIChlKSB7IG9wID0gWzYsIGVdOyB5ID0gMDsgfSBmaW5hbGx5IHsgZiA9IHQgPSAwOyB9XG4gICAgICAgIGlmIChvcFswXSAmIDUpIHRocm93IG9wWzFdOyByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xuICAgIH1cbn07XG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5nZXRGcmFtZVNvdXJjZSA9IGV4cG9ydHMuZ2V0T3JpZ2luYWxTdGFja0ZyYW1lID0gZXhwb3J0cy5nZXRPcmlnaW5hbFN0YWNrRnJhbWVzID0gdm9pZCAwO1xuZnVuY3Rpb24gZ2V0T3JpZ2luYWxTdGFja0ZyYW1lcyhpc1NlcnZlclNpZGUsIGZyYW1lcykge1xuICAgIHJldHVybiBQcm9taXNlLmFsbChmcmFtZXMubWFwKGZ1bmN0aW9uIChmcmFtZSkgeyByZXR1cm4gZ2V0T3JpZ2luYWxTdGFja0ZyYW1lKGlzU2VydmVyU2lkZSwgZnJhbWUpOyB9KSk7XG59XG5leHBvcnRzLmdldE9yaWdpbmFsU3RhY2tGcmFtZXMgPSBnZXRPcmlnaW5hbFN0YWNrRnJhbWVzO1xuZnVuY3Rpb24gZ2V0T3JpZ2luYWxTdGFja0ZyYW1lKGlzU2VydmVyU2lkZSwgc291cmNlKSB7XG4gICAgdmFyIF9hLCBfYjtcbiAgICBmdW5jdGlvbiBfZ2V0T3JpZ2luYWxTdGFja0ZyYW1lKCkge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2QsIF9lO1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgcGFyYW1zLCBrZXksIGNvbnRyb2xsZXIsIHRtLCByZXMsIF9mLCBfZywgX2gsIGJvZHk7XG4gICAgICAgICAgICByZXR1cm4gX19nZW5lcmF0b3IodGhpcywgZnVuY3Rpb24gKF9qKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChfai5sYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMuYXBwZW5kKCdpc1NlcnZlclNpZGUnLCBTdHJpbmcoaXNTZXJ2ZXJTaWRlKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGtleSBpbiBzb3VyY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMuYXBwZW5kKGtleSwgKChfYSA9IHNvdXJjZVtrZXldKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAnJykudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdG0gPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgcmV0dXJuIGNvbnRyb2xsZXIuYWJvcnQoKTsgfSwgMzAwMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzQgLyp5aWVsZCovLCBzZWxmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5mZXRjaCgocHJvY2Vzcy5lbnYuX19ORVhUX1JPVVRFUl9CQVNFUEFUSCB8fCAnJykgKyBcIi9fX25leHRqc19vcmlnaW5hbC1zdGFjay1mcmFtZT9cIiArIHBhcmFtcy50b1N0cmluZygpLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25hbDogY29udHJvbGxlci5zaWduYWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVtcImZpbmFsbHlcIl0oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQodG0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXTtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gX2ouc2VudCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEoIXJlcy5vayB8fCByZXMuc3RhdHVzID09PSAyMDQpKSByZXR1cm4gWzMgLypicmVhayovLCAzXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIF9nID0gKF9mID0gUHJvbWlzZSkucmVqZWN0O1xuICAgICAgICAgICAgICAgICAgICAgICAgX2ggPSBFcnJvci5iaW5kO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFs0IC8qeWllbGQqLywgcmVzLnRleHQoKV07XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMjogcmV0dXJuIFsyIC8qcmV0dXJuKi8sIF9nLmFwcGx5KF9mLCBbbmV3IChfaC5hcHBseShFcnJvciwgW3ZvaWQgMCwgX2ouc2VudCgpXSkpKCldKV07XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMzogcmV0dXJuIFs0IC8qeWllbGQqLywgcmVzLmpzb24oKV07XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvZHkgPSBfai5zZW50KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzIgLypyZXR1cm4qLywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWw6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBhbmRlZDogIUJvb2xlYW4oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNvbGxhcHNlZCAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX2UgPSAoKChfYiA9IHNvdXJjZS5maWxlKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuaW5jbHVkZXMoJ25vZGVfbW9kdWxlcycpKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChfZCA9IChfYyA9IGJvZHkub3JpZ2luYWxTdGFja0ZyYW1lKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MuZmlsZSkgPT09IG51bGwgfHwgX2QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9kLmluY2x1ZGVzKCdub2RlX21vZHVsZXMnKSkpKSAhPT0gbnVsbCAmJiBfZSAhPT0gdm9pZCAwID8gX2UgOiB0cnVlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlU3RhY2tGcmFtZTogc291cmNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5hbFN0YWNrRnJhbWU6IGJvZHkub3JpZ2luYWxTdGFja0ZyYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5hbENvZGVGcmFtZTogYm9keS5vcmlnaW5hbENvZGVGcmFtZSB8fCBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAoISgoKF9hID0gc291cmNlLmZpbGUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5zdGFydHNXaXRoKCd3ZWJwYWNrLWludGVybmFsOicpKSB8fFxuICAgICAgICAoKF9iID0gc291cmNlLmZpbGUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5zdGFydHNXaXRoKCdmaWxlOicpKSkpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7XG4gICAgICAgICAgICBlcnJvcjogZmFsc2UsXG4gICAgICAgICAgICByZWFzb246IG51bGwsXG4gICAgICAgICAgICBleHRlcm5hbDogdHJ1ZSxcbiAgICAgICAgICAgIGV4cGFuZGVkOiBmYWxzZSxcbiAgICAgICAgICAgIHNvdXJjZVN0YWNrRnJhbWU6IHNvdXJjZSxcbiAgICAgICAgICAgIG9yaWdpbmFsU3RhY2tGcmFtZTogbnVsbCxcbiAgICAgICAgICAgIG9yaWdpbmFsQ29kZUZyYW1lOiBudWxsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gX2dldE9yaWdpbmFsU3RhY2tGcmFtZSgpW1wiY2F0Y2hcIl0oZnVuY3Rpb24gKGVycikge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICByZXR1cm4gKHtcbiAgICAgICAgICAgIGVycm9yOiB0cnVlLFxuICAgICAgICAgICAgcmVhc29uOiAoX2IgPSAoX2EgPSBlcnIgPT09IG51bGwgfHwgZXJyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlcnIubWVzc2FnZSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogZXJyID09PSBudWxsIHx8IGVyciA9PT0gdm9pZCAwID8gdm9pZCAwIDogZXJyLnRvU3RyaW5nKCkpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6ICdVbmtub3duIEVycm9yJyxcbiAgICAgICAgICAgIGV4dGVybmFsOiBmYWxzZSxcbiAgICAgICAgICAgIGV4cGFuZGVkOiBmYWxzZSxcbiAgICAgICAgICAgIHNvdXJjZVN0YWNrRnJhbWU6IHNvdXJjZSxcbiAgICAgICAgICAgIG9yaWdpbmFsU3RhY2tGcmFtZTogbnVsbCxcbiAgICAgICAgICAgIG9yaWdpbmFsQ29kZUZyYW1lOiBudWxsXG4gICAgICAgIH0pO1xuICAgIH0pO1xufVxuZXhwb3J0cy5nZXRPcmlnaW5hbFN0YWNrRnJhbWUgPSBnZXRPcmlnaW5hbFN0YWNrRnJhbWU7XG5mdW5jdGlvbiBnZXRGcmFtZVNvdXJjZShmcmFtZSkge1xuICAgIHZhciBfYTtcbiAgICB2YXIgc3RyID0gJyc7XG4gICAgdHJ5IHtcbiAgICAgICAgdmFyIHUgPSBuZXcgVVJMKGZyYW1lLmZpbGUpO1xuICAgICAgICAvLyBTdHJpcCB0aGUgb3JpZ2luIGZvciBzYW1lLW9yaWdpbiBzY3JpcHRzLlxuICAgICAgICBpZiAodHlwZW9mIGdsb2JhbFRoaXMgIT09ICd1bmRlZmluZWQnICYmXG4gICAgICAgICAgICAoKF9hID0gZ2xvYmFsVGhpcy5sb2NhdGlvbikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm9yaWdpbikgIT09IHUub3JpZ2luKSB7XG4gICAgICAgICAgICAvLyBVUkxzIGNhbiBiZSB2YWxpZCB3aXRob3V0IGFuIGBvcmlnaW5gLCBzbyBsb25nIGFzIHRoZXkgaGF2ZSBhXG4gICAgICAgICAgICAvLyBgcHJvdG9jb2xgLiBIb3dldmVyLCBgb3JpZ2luYCBpcyBwcmVmZXJyZWQuXG4gICAgICAgICAgICBpZiAodS5vcmlnaW4gPT09ICdudWxsJykge1xuICAgICAgICAgICAgICAgIHN0ciArPSB1LnByb3RvY29sO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgc3RyICs9IHUub3JpZ2luO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIFN0cmlwIHF1ZXJ5IHN0cmluZyBpbmZvcm1hdGlvbiBhcyBpdCdzIHR5cGljYWxseSB0b28gdmVyYm9zZSB0byBiZVxuICAgICAgICAvLyBtZWFuaW5nZnVsLlxuICAgICAgICBzdHIgKz0gdS5wYXRobmFtZTtcbiAgICAgICAgc3RyICs9ICcgJztcbiAgICB9XG4gICAgY2F0Y2ggKF9iKSB7XG4gICAgICAgIHN0ciArPSAoZnJhbWUuZmlsZSB8fCAnKHVua25vd24pJykgKyAnICc7XG4gICAgfVxuICAgIGlmIChmcmFtZS5saW5lTnVtYmVyICE9IG51bGwpIHtcbiAgICAgICAgaWYgKGZyYW1lLmNvbHVtbiAhPSBudWxsKSB7XG4gICAgICAgICAgICBzdHIgKz0gXCIoXCIgKyBmcmFtZS5saW5lTnVtYmVyICsgXCI6XCIgKyBmcmFtZS5jb2x1bW4gKyBcIikgXCI7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBzdHIgKz0gXCIoXCIgKyBmcmFtZS5saW5lTnVtYmVyICsgXCIpIFwiO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBzdHIuc2xpY2UoMCwgLTEpO1xufVxuZXhwb3J0cy5nZXRGcmFtZVNvdXJjZSA9IGdldEZyYW1lU291cmNlO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c3RhY2stZnJhbWUuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/helpers/stack-frame.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/hooks/use-on-click-outside.js": +/*!*****************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/hooks/use-on-click-outside.js ***! + \*****************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nexports.__esModule = true;\nexports.useOnClickOutside = void 0;\nvar React = __importStar(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nfunction useOnClickOutside(el, handler) {\n React.useEffect(function () {\n if (el == null || handler == null) {\n return;\n }\n var listener = function (e) {\n // Do nothing if clicking ref's element or descendent elements\n if (!el || el.contains(e.target)) {\n return;\n }\n handler(e);\n };\n var root = el.getRootNode();\n root.addEventListener('mousedown', listener);\n root.addEventListener('touchstart', listener);\n return function () {\n root.removeEventListener('mousedown', listener);\n root.removeEventListener('touchstart', listener);\n };\n }, [handler, el]);\n}\nexports.useOnClickOutside = useOnClickOutside;\n//# sourceMappingURL=use-on-click-outside.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2hvb2tzL3VzZS1vbi1jbGljay1vdXRzaWRlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQTtBQUNBLG1DQUFtQyxvQ0FBb0MsZ0JBQWdCO0FBQ3ZGLENBQUM7QUFDRDtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0EsMENBQTBDLDRCQUE0QjtBQUN0RSxDQUFDO0FBQ0Q7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEIseUJBQXlCO0FBQ3pCLHlCQUF5QixtQkFBTyxDQUFDLDRDQUFPO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EseUJBQXlCO0FBQ3pCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AbmV4dC9yZWFjdC1kZXYtb3ZlcmxheS9saWIvaW50ZXJuYWwvaG9va3MvdXNlLW9uLWNsaWNrLW91dHNpZGUuanM/ODYyMCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2NyZWF0ZUJpbmRpbmcgPSAodGhpcyAmJiB0aGlzLl9fY3JlYXRlQmluZGluZykgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gbVtrXTsgfSB9KTtcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBvW2syXSA9IG1ba107XG59KSk7XG52YXIgX19zZXRNb2R1bGVEZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX3NldE1vZHVsZURlZmF1bHQpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIHYpIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgXCJkZWZhdWx0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7XG59KSA6IGZ1bmN0aW9uKG8sIHYpIHtcbiAgICBvW1wiZGVmYXVsdFwiXSA9IHY7XG59KTtcbnZhciBfX2ltcG9ydFN0YXIgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0U3RhcikgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpIHJldHVybiBtb2Q7XG4gICAgdmFyIHJlc3VsdCA9IHt9O1xuICAgIGlmIChtb2QgIT0gbnVsbCkgZm9yICh2YXIgayBpbiBtb2QpIGlmIChrICE9PSBcImRlZmF1bHRcIiAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobW9kLCBrKSkgX19jcmVhdGVCaW5kaW5nKHJlc3VsdCwgbW9kLCBrKTtcbiAgICBfX3NldE1vZHVsZURlZmF1bHQocmVzdWx0LCBtb2QpO1xuICAgIHJldHVybiByZXN1bHQ7XG59O1xuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHMudXNlT25DbGlja091dHNpZGUgPSB2b2lkIDA7XG52YXIgUmVhY3QgPSBfX2ltcG9ydFN0YXIocmVxdWlyZShcInJlYWN0XCIpKTtcbmZ1bmN0aW9uIHVzZU9uQ2xpY2tPdXRzaWRlKGVsLCBoYW5kbGVyKSB7XG4gICAgUmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKGVsID09IG51bGwgfHwgaGFuZGxlciA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGxpc3RlbmVyID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIC8vIERvIG5vdGhpbmcgaWYgY2xpY2tpbmcgcmVmJ3MgZWxlbWVudCBvciBkZXNjZW5kZW50IGVsZW1lbnRzXG4gICAgICAgICAgICBpZiAoIWVsIHx8IGVsLmNvbnRhaW5zKGUudGFyZ2V0KSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGhhbmRsZXIoZSk7XG4gICAgICAgIH07XG4gICAgICAgIHZhciByb290ID0gZWwuZ2V0Um9vdE5vZGUoKTtcbiAgICAgICAgcm9vdC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBsaXN0ZW5lcik7XG4gICAgICAgIHJvb3QuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIGxpc3RlbmVyKTtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJvb3QucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgbGlzdGVuZXIpO1xuICAgICAgICAgICAgcm9vdC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgbGlzdGVuZXIpO1xuICAgICAgICB9O1xuICAgIH0sIFtoYW5kbGVyLCBlbF0pO1xufVxuZXhwb3J0cy51c2VPbkNsaWNrT3V0c2lkZSA9IHVzZU9uQ2xpY2tPdXRzaWRlO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXNlLW9uLWNsaWNrLW91dHNpZGUuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/hooks/use-on-click-outside.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/styles/Base.js": +/*!**************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/styles/Base.js ***! + \**************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nexports.__esModule = true;\nexports.Base = void 0;\nvar React = __importStar(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nvar noop_template_1 = __webpack_require__(/*! ../helpers/noop-template */ \"./node_modules/@next/react-dev-overlay/lib/internal/helpers/noop-template.js\");\nfunction Base() {\n return (React.createElement(\"style\", { dangerouslySetInnerHTML: {\n __html: (0, noop_template_1.noop)(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\n :host {\\n --size-gap-half: 4px;\\n --size-gap: 8px;\\n --size-gap-double: 16px;\\n --size-gap-quad: 32px;\\n\\n --size-font-small: 14px;\\n --size-font: 16px;\\n --size-font-big: 20px;\\n --size-font-bigger: 24px;\\n\\n --color-accents-1: #808080;\\n --color-accents-2: #222222;\\n --color-accents-3: #404040;\\n\\n --font-stack-monospace: 'SFMono-Regular', Consolas,\\n 'Liberation Mono', Menlo, Courier, monospace;\\n\\n --color-ansi-selection: rgba(95, 126, 151, 0.48);\\n --color-ansi-bg: #111111;\\n --color-ansi-fg: #cccccc;\\n\\n --color-ansi-white: #777777;\\n --color-ansi-black: #141414;\\n --color-ansi-blue: #00aaff;\\n --color-ansi-cyan: #88ddff;\\n --color-ansi-green: #98ec65;\\n --color-ansi-magenta: #aa88ff;\\n --color-ansi-red: #ff5555;\\n --color-ansi-yellow: #ffcc33;\\n --color-ansi-bright-white: #ffffff;\\n --color-ansi-bright-black: #777777;\\n --color-ansi-bright-blue: #33bbff;\\n --color-ansi-bright-cyan: #bbecff;\\n --color-ansi-bright-green: #b6f292;\\n --color-ansi-bright-magenta: #cebbff;\\n --color-ansi-bright-red: #ff8888;\\n --color-ansi-bright-yellow: #ffd966;\\n }\\n\\n .mono {\\n font-family: var(--font-stack-monospace);\\n }\\n\\n h1,\\n h2,\\n h3,\\n h4,\\n h5,\\n h6 {\\n margin-bottom: var(--size-gap);\\n font-weight: 500;\\n line-height: 1.5;\\n }\\n\\n h1 {\\n font-size: 40px;\\n }\\n h2 {\\n font-size: 32px;\\n }\\n h3 {\\n font-size: 28px;\\n }\\n h4 {\\n font-size: 24px;\\n }\\n h5 {\\n font-size: 20px;\\n }\\n h6 {\\n font-size: 16px;\\n }\\n \"], [\"\\n :host {\\n --size-gap-half: 4px;\\n --size-gap: 8px;\\n --size-gap-double: 16px;\\n --size-gap-quad: 32px;\\n\\n --size-font-small: 14px;\\n --size-font: 16px;\\n --size-font-big: 20px;\\n --size-font-bigger: 24px;\\n\\n --color-accents-1: #808080;\\n --color-accents-2: #222222;\\n --color-accents-3: #404040;\\n\\n --font-stack-monospace: 'SFMono-Regular', Consolas,\\n 'Liberation Mono', Menlo, Courier, monospace;\\n\\n --color-ansi-selection: rgba(95, 126, 151, 0.48);\\n --color-ansi-bg: #111111;\\n --color-ansi-fg: #cccccc;\\n\\n --color-ansi-white: #777777;\\n --color-ansi-black: #141414;\\n --color-ansi-blue: #00aaff;\\n --color-ansi-cyan: #88ddff;\\n --color-ansi-green: #98ec65;\\n --color-ansi-magenta: #aa88ff;\\n --color-ansi-red: #ff5555;\\n --color-ansi-yellow: #ffcc33;\\n --color-ansi-bright-white: #ffffff;\\n --color-ansi-bright-black: #777777;\\n --color-ansi-bright-blue: #33bbff;\\n --color-ansi-bright-cyan: #bbecff;\\n --color-ansi-bright-green: #b6f292;\\n --color-ansi-bright-magenta: #cebbff;\\n --color-ansi-bright-red: #ff8888;\\n --color-ansi-bright-yellow: #ffd966;\\n }\\n\\n .mono {\\n font-family: var(--font-stack-monospace);\\n }\\n\\n h1,\\n h2,\\n h3,\\n h4,\\n h5,\\n h6 {\\n margin-bottom: var(--size-gap);\\n font-weight: 500;\\n line-height: 1.5;\\n }\\n\\n h1 {\\n font-size: 40px;\\n }\\n h2 {\\n font-size: 32px;\\n }\\n h3 {\\n font-size: 28px;\\n }\\n h4 {\\n font-size: 24px;\\n }\\n h5 {\\n font-size: 20px;\\n }\\n h6 {\\n font-size: 16px;\\n }\\n \"])))\n } }));\n}\nexports.Base = Base;\nvar templateObject_1;\n//# sourceMappingURL=Base.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL3N0eWxlcy9CYXNlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQSxpQ0FBaUMsdUNBQXVDLFlBQVksS0FBSyxPQUFPO0FBQ2hHO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLG9DQUFvQyxnQkFBZ0I7QUFDdkYsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQSwwQ0FBMEMsNEJBQTRCO0FBQ3RFLENBQUM7QUFDRDtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQixZQUFZO0FBQ1oseUJBQXlCLG1CQUFPLENBQUMsNENBQU87QUFDeEMsc0JBQXNCLG1CQUFPLENBQUMsOEdBQTBCO0FBQ3hEO0FBQ0EsMkNBQTJDO0FBQzNDLGdJQUFnSSxtQ0FBbUMsOEJBQThCLHNDQUFzQyxvQ0FBb0Msd0NBQXdDLGdDQUFnQyxvQ0FBb0MsdUNBQXVDLDJDQUEyQyx5Q0FBeUMseUNBQXlDLGdJQUFnSSxpRUFBaUUsdUNBQXVDLHVDQUF1Qyw0Q0FBNEMsMENBQTBDLHlDQUF5Qyx5Q0FBeUMsMENBQTBDLDRDQUE0Qyx3Q0FBd0MsMkNBQTJDLGlEQUFpRCxpREFBaUQsZ0RBQWdELGdEQUFnRCxpREFBaUQsbURBQW1ELCtDQUErQyxrREFBa0QsYUFBYSxxQkFBcUIsdURBQXVELGFBQWEsNkZBQTZGLDZDQUE2QywrQkFBK0IsK0JBQStCLGFBQWEsa0JBQWtCLDhCQUE4QixhQUFhLGdCQUFnQiw4QkFBOEIsYUFBYSxnQkFBZ0IsOEJBQThCLGFBQWEsZ0JBQWdCLDhCQUE4QixhQUFhLGdCQUFnQiw4QkFBOEIsYUFBYSxnQkFBZ0IsOEJBQThCLGFBQWEsbUNBQW1DLG1DQUFtQyw4QkFBOEIsc0NBQXNDLG9DQUFvQyx3Q0FBd0MsZ0NBQWdDLG9DQUFvQyx1Q0FBdUMsMkNBQTJDLHlDQUF5Qyx5Q0FBeUMsZ0lBQWdJLGlFQUFpRSx1Q0FBdUMsdUNBQXVDLDRDQUE0QywwQ0FBMEMseUNBQXlDLHlDQUF5QywwQ0FBMEMsNENBQTRDLHdDQUF3QywyQ0FBMkMsaURBQWlELGlEQUFpRCxnREFBZ0QsZ0RBQWdELGlEQUFpRCxtREFBbUQsK0NBQStDLGtEQUFrRCxhQUFhLHFCQUFxQix1REFBdUQsYUFBYSw2RkFBNkYsNkNBQTZDLCtCQUErQiwrQkFBK0IsYUFBYSxrQkFBa0IsOEJBQThCLGFBQWEsZ0JBQWdCLDhCQUE4QixhQUFhLGdCQUFnQiw4QkFBOEIsYUFBYSxnQkFBZ0IsOEJBQThCLGFBQWEsZ0JBQWdCLDhCQUE4QixhQUFhLGdCQUFnQiw4QkFBOEIsYUFBYTtBQUNydUksV0FBVztBQUNYO0FBQ0EsWUFBWTtBQUNaO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BuZXh0L3JlYWN0LWRldi1vdmVybGF5L2xpYi9pbnRlcm5hbC9zdHlsZXMvQmFzZS5qcz80NDI3Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9fbWFrZVRlbXBsYXRlT2JqZWN0ID0gKHRoaXMgJiYgdGhpcy5fX21ha2VUZW1wbGF0ZU9iamVjdCkgfHwgZnVuY3Rpb24gKGNvb2tlZCwgcmF3KSB7XG4gICAgaWYgKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29va2VkLCBcInJhd1wiLCB7IHZhbHVlOiByYXcgfSk7IH0gZWxzZSB7IGNvb2tlZC5yYXcgPSByYXc7IH1cbiAgICByZXR1cm4gY29va2VkO1xufTtcbnZhciBfX2NyZWF0ZUJpbmRpbmcgPSAodGhpcyAmJiB0aGlzLl9fY3JlYXRlQmluZGluZykgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gbVtrXTsgfSB9KTtcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBvW2syXSA9IG1ba107XG59KSk7XG52YXIgX19zZXRNb2R1bGVEZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX3NldE1vZHVsZURlZmF1bHQpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIHYpIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgXCJkZWZhdWx0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7XG59KSA6IGZ1bmN0aW9uKG8sIHYpIHtcbiAgICBvW1wiZGVmYXVsdFwiXSA9IHY7XG59KTtcbnZhciBfX2ltcG9ydFN0YXIgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0U3RhcikgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpIHJldHVybiBtb2Q7XG4gICAgdmFyIHJlc3VsdCA9IHt9O1xuICAgIGlmIChtb2QgIT0gbnVsbCkgZm9yICh2YXIgayBpbiBtb2QpIGlmIChrICE9PSBcImRlZmF1bHRcIiAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobW9kLCBrKSkgX19jcmVhdGVCaW5kaW5nKHJlc3VsdCwgbW9kLCBrKTtcbiAgICBfX3NldE1vZHVsZURlZmF1bHQocmVzdWx0LCBtb2QpO1xuICAgIHJldHVybiByZXN1bHQ7XG59O1xuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHMuQmFzZSA9IHZvaWQgMDtcbnZhciBSZWFjdCA9IF9faW1wb3J0U3RhcihyZXF1aXJlKFwicmVhY3RcIikpO1xudmFyIG5vb3BfdGVtcGxhdGVfMSA9IHJlcXVpcmUoXCIuLi9oZWxwZXJzL25vb3AtdGVtcGxhdGVcIik7XG5mdW5jdGlvbiBCYXNlKCkge1xuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChcInN0eWxlXCIsIHsgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6IHtcbiAgICAgICAgICAgIF9faHRtbDogKDAsIG5vb3BfdGVtcGxhdGVfMS5ub29wKSh0ZW1wbGF0ZU9iamVjdF8xIHx8ICh0ZW1wbGF0ZU9iamVjdF8xID0gX19tYWtlVGVtcGxhdGVPYmplY3QoW1wiXFxuICAgICAgICAgIDpob3N0IHtcXG4gICAgICAgICAgICAtLXNpemUtZ2FwLWhhbGY6IDRweDtcXG4gICAgICAgICAgICAtLXNpemUtZ2FwOiA4cHg7XFxuICAgICAgICAgICAgLS1zaXplLWdhcC1kb3VibGU6IDE2cHg7XFxuICAgICAgICAgICAgLS1zaXplLWdhcC1xdWFkOiAzMnB4O1xcblxcbiAgICAgICAgICAgIC0tc2l6ZS1mb250LXNtYWxsOiAxNHB4O1xcbiAgICAgICAgICAgIC0tc2l6ZS1mb250OiAxNnB4O1xcbiAgICAgICAgICAgIC0tc2l6ZS1mb250LWJpZzogMjBweDtcXG4gICAgICAgICAgICAtLXNpemUtZm9udC1iaWdnZXI6IDI0cHg7XFxuXFxuICAgICAgICAgICAgLS1jb2xvci1hY2NlbnRzLTE6ICM4MDgwODA7XFxuICAgICAgICAgICAgLS1jb2xvci1hY2NlbnRzLTI6ICMyMjIyMjI7XFxuICAgICAgICAgICAgLS1jb2xvci1hY2NlbnRzLTM6ICM0MDQwNDA7XFxuXFxuICAgICAgICAgICAgLS1mb250LXN0YWNrLW1vbm9zcGFjZTogJ1NGTW9uby1SZWd1bGFyJywgQ29uc29sYXMsXFxuICAgICAgICAgICAgICAnTGliZXJhdGlvbiBNb25vJywgTWVubG8sIENvdXJpZXIsIG1vbm9zcGFjZTtcXG5cXG4gICAgICAgICAgICAtLWNvbG9yLWFuc2ktc2VsZWN0aW9uOiByZ2JhKDk1LCAxMjYsIDE1MSwgMC40OCk7XFxuICAgICAgICAgICAgLS1jb2xvci1hbnNpLWJnOiAjMTExMTExO1xcbiAgICAgICAgICAgIC0tY29sb3ItYW5zaS1mZzogI2NjY2NjYztcXG5cXG4gICAgICAgICAgICAtLWNvbG9yLWFuc2ktd2hpdGU6ICM3Nzc3Nzc7XFxuICAgICAgICAgICAgLS1jb2xvci1hbnNpLWJsYWNrOiAjMTQxNDE0O1xcbiAgICAgICAgICAgIC0tY29sb3ItYW5zaS1ibHVlOiAjMDBhYWZmO1xcbiAgICAgICAgICAgIC0tY29sb3ItYW5zaS1jeWFuOiAjODhkZGZmO1xcbiAgICAgICAgICAgIC0tY29sb3ItYW5zaS1ncmVlbjogIzk4ZWM2NTtcXG4gICAgICAgICAgICAtLWNvbG9yLWFuc2ktbWFnZW50YTogI2FhODhmZjtcXG4gICAgICAgICAgICAtLWNvbG9yLWFuc2ktcmVkOiAjZmY1NTU1O1xcbiAgICAgICAgICAgIC0tY29sb3ItYW5zaS15ZWxsb3c6ICNmZmNjMzM7XFxuICAgICAgICAgICAgLS1jb2xvci1hbnNpLWJyaWdodC13aGl0ZTogI2ZmZmZmZjtcXG4gICAgICAgICAgICAtLWNvbG9yLWFuc2ktYnJpZ2h0LWJsYWNrOiAjNzc3Nzc3O1xcbiAgICAgICAgICAgIC0tY29sb3ItYW5zaS1icmlnaHQtYmx1ZTogIzMzYmJmZjtcXG4gICAgICAgICAgICAtLWNvbG9yLWFuc2ktYnJpZ2h0LWN5YW46ICNiYmVjZmY7XFxuICAgICAgICAgICAgLS1jb2xvci1hbnNpLWJyaWdodC1ncmVlbjogI2I2ZjI5MjtcXG4gICAgICAgICAgICAtLWNvbG9yLWFuc2ktYnJpZ2h0LW1hZ2VudGE6ICNjZWJiZmY7XFxuICAgICAgICAgICAgLS1jb2xvci1hbnNpLWJyaWdodC1yZWQ6ICNmZjg4ODg7XFxuICAgICAgICAgICAgLS1jb2xvci1hbnNpLWJyaWdodC15ZWxsb3c6ICNmZmQ5NjY7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgLm1vbm8ge1xcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXN0YWNrLW1vbm9zcGFjZSk7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgaDEsXFxuICAgICAgICAgIGgyLFxcbiAgICAgICAgICBoMyxcXG4gICAgICAgICAgaDQsXFxuICAgICAgICAgIGg1LFxcbiAgICAgICAgICBoNiB7XFxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc2l6ZS1nYXApO1xcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBoMSB7XFxuICAgICAgICAgICAgZm9udC1zaXplOiA0MHB4O1xcbiAgICAgICAgICB9XFxuICAgICAgICAgIGgyIHtcXG4gICAgICAgICAgICBmb250LXNpemU6IDMycHg7XFxuICAgICAgICAgIH1cXG4gICAgICAgICAgaDMge1xcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjhweDtcXG4gICAgICAgICAgfVxcbiAgICAgICAgICBoNCB7XFxuICAgICAgICAgICAgZm9udC1zaXplOiAyNHB4O1xcbiAgICAgICAgICB9XFxuICAgICAgICAgIGg1IHtcXG4gICAgICAgICAgICBmb250LXNpemU6IDIwcHg7XFxuICAgICAgICAgIH1cXG4gICAgICAgICAgaDYge1xcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcXG4gICAgICAgICAgfVxcbiAgICAgICAgXCJdLCBbXCJcXG4gICAgICAgICAgOmhvc3Qge1xcbiAgICAgICAgICAgIC0tc2l6ZS1nYXAtaGFsZjogNHB4O1xcbiAgICAgICAgICAgIC0tc2l6ZS1nYXA6IDhweDtcXG4gICAgICAgICAgICAtLXNpemUtZ2FwLWRvdWJsZTogMTZweDtcXG4gICAgICAgICAgICAtLXNpemUtZ2FwLXF1YWQ6IDMycHg7XFxuXFxuICAgICAgICAgICAgLS1zaXplLWZvbnQtc21hbGw6IDE0cHg7XFxuICAgICAgICAgICAgLS1zaXplLWZvbnQ6IDE2cHg7XFxuICAgICAgICAgICAgLS1zaXplLWZvbnQtYmlnOiAyMHB4O1xcbiAgICAgICAgICAgIC0tc2l6ZS1mb250LWJpZ2dlcjogMjRweDtcXG5cXG4gICAgICAgICAgICAtLWNvbG9yLWFjY2VudHMtMTogIzgwODA4MDtcXG4gICAgICAgICAgICAtLWNvbG9yLWFjY2VudHMtMjogIzIyMjIyMjtcXG4gICAgICAgICAgICAtLWNvbG9yLWFjY2VudHMtMzogIzQwNDA0MDtcXG5cXG4gICAgICAgICAgICAtLWZvbnQtc3RhY2stbW9ub3NwYWNlOiAnU0ZNb25vLVJlZ3VsYXInLCBDb25zb2xhcyxcXG4gICAgICAgICAgICAgICdMaWJlcmF0aW9uIE1vbm8nLCBNZW5sbywgQ291cmllciwgbW9ub3NwYWNlO1xcblxcbiAgICAgICAgICAgIC0tY29sb3ItYW5zaS1zZWxlY3Rpb246IHJnYmEoOTUsIDEyNiwgMTUxLCAwLjQ4KTtcXG4gICAgICAgICAgICAtLWNvbG9yLWFuc2ktYmc6ICMxMTExMTE7XFxuICAgICAgICAgICAgLS1jb2xvci1hbnNpLWZnOiAjY2NjY2NjO1xcblxcbiAgICAgICAgICAgIC0tY29sb3ItYW5zaS13aGl0ZTogIzc3Nzc3NztcXG4gICAgICAgICAgICAtLWNvbG9yLWFuc2ktYmxhY2s6ICMxNDE0MTQ7XFxuICAgICAgICAgICAgLS1jb2xvci1hbnNpLWJsdWU6ICMwMGFhZmY7XFxuICAgICAgICAgICAgLS1jb2xvci1hbnNpLWN5YW46ICM4OGRkZmY7XFxuICAgICAgICAgICAgLS1jb2xvci1hbnNpLWdyZWVuOiAjOThlYzY1O1xcbiAgICAgICAgICAgIC0tY29sb3ItYW5zaS1tYWdlbnRhOiAjYWE4OGZmO1xcbiAgICAgICAgICAgIC0tY29sb3ItYW5zaS1yZWQ6ICNmZjU1NTU7XFxuICAgICAgICAgICAgLS1jb2xvci1hbnNpLXllbGxvdzogI2ZmY2MzMztcXG4gICAgICAgICAgICAtLWNvbG9yLWFuc2ktYnJpZ2h0LXdoaXRlOiAjZmZmZmZmO1xcbiAgICAgICAgICAgIC0tY29sb3ItYW5zaS1icmlnaHQtYmxhY2s6ICM3Nzc3Nzc7XFxuICAgICAgICAgICAgLS1jb2xvci1hbnNpLWJyaWdodC1ibHVlOiAjMzNiYmZmO1xcbiAgICAgICAgICAgIC0tY29sb3ItYW5zaS1icmlnaHQtY3lhbjogI2JiZWNmZjtcXG4gICAgICAgICAgICAtLWNvbG9yLWFuc2ktYnJpZ2h0LWdyZWVuOiAjYjZmMjkyO1xcbiAgICAgICAgICAgIC0tY29sb3ItYW5zaS1icmlnaHQtbWFnZW50YTogI2NlYmJmZjtcXG4gICAgICAgICAgICAtLWNvbG9yLWFuc2ktYnJpZ2h0LXJlZDogI2ZmODg4ODtcXG4gICAgICAgICAgICAtLWNvbG9yLWFuc2ktYnJpZ2h0LXllbGxvdzogI2ZmZDk2NjtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICAubW9ubyB7XFxuICAgICAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc3RhY2stbW9ub3NwYWNlKTtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBoMSxcXG4gICAgICAgICAgaDIsXFxuICAgICAgICAgIGgzLFxcbiAgICAgICAgICBoNCxcXG4gICAgICAgICAgaDUsXFxuICAgICAgICAgIGg2IHtcXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zaXplLWdhcCk7XFxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS41O1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIGgxIHtcXG4gICAgICAgICAgICBmb250LXNpemU6IDQwcHg7XFxuICAgICAgICAgIH1cXG4gICAgICAgICAgaDIge1xcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMzJweDtcXG4gICAgICAgICAgfVxcbiAgICAgICAgICBoMyB7XFxuICAgICAgICAgICAgZm9udC1zaXplOiAyOHB4O1xcbiAgICAgICAgICB9XFxuICAgICAgICAgIGg0IHtcXG4gICAgICAgICAgICBmb250LXNpemU6IDI0cHg7XFxuICAgICAgICAgIH1cXG4gICAgICAgICAgaDUge1xcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDtcXG4gICAgICAgICAgfVxcbiAgICAgICAgICBoNiB7XFxuICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xcbiAgICAgICAgICB9XFxuICAgICAgICBcIl0pKSlcbiAgICAgICAgfSB9KSk7XG59XG5leHBvcnRzLkJhc2UgPSBCYXNlO1xudmFyIHRlbXBsYXRlT2JqZWN0XzE7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1CYXNlLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/styles/Base.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/styles/ComponentStyles.js": +/*!*************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/styles/ComponentStyles.js ***! + \*************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nexports.__esModule = true;\nexports.ComponentStyles = void 0;\nvar React = __importStar(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nvar styles_1 = __webpack_require__(/*! ../components/CodeFrame/styles */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/CodeFrame/styles.js\");\nvar Dialog_1 = __webpack_require__(/*! ../components/Dialog */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/index.js\");\nvar styles_2 = __webpack_require__(/*! ../components/LeftRightDialogHeader/styles */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/LeftRightDialogHeader/styles.js\");\nvar styles_3 = __webpack_require__(/*! ../components/Overlay/styles */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/Overlay/styles.js\");\nvar styles_4 = __webpack_require__(/*! ../components/Terminal/styles */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/Terminal/styles.js\");\nvar Toast_1 = __webpack_require__(/*! ../components/Toast */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/Toast/index.js\");\nvar BuildError_1 = __webpack_require__(/*! ../container/BuildError */ \"./node_modules/@next/react-dev-overlay/lib/internal/container/BuildError.js\");\nvar Errors_1 = __webpack_require__(/*! ../container/Errors */ \"./node_modules/@next/react-dev-overlay/lib/internal/container/Errors.js\");\nvar RuntimeError_1 = __webpack_require__(/*! ../container/RuntimeError */ \"./node_modules/@next/react-dev-overlay/lib/internal/container/RuntimeError.js\");\nvar noop_template_1 = __webpack_require__(/*! ../helpers/noop-template */ \"./node_modules/@next/react-dev-overlay/lib/internal/helpers/noop-template.js\");\nfunction ComponentStyles() {\n return (React.createElement(\"style\", { dangerouslySetInnerHTML: {\n __html: (0, noop_template_1.noop)(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\n \", \"\\n \", \"\\n \", \"\\n \", \"\\n \", \"\\n \", \"\\n\\n \", \"\\n \", \"\\n \", \"\\n \"], [\"\\n \", \"\\n \", \"\\n \", \"\\n \", \"\\n \", \"\\n \", \"\\n\\n \", \"\\n \", \"\\n \", \"\\n \"])), styles_3.styles, Toast_1.styles, Dialog_1.styles, styles_2.styles, styles_1.styles, styles_4.styles, BuildError_1.styles, Errors_1.styles, RuntimeError_1.styles)\n } }));\n}\nexports.ComponentStyles = ComponentStyles;\nvar templateObject_1;\n//# sourceMappingURL=ComponentStyles.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL3N0eWxlcy9Db21wb25lbnRTdHlsZXMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBLGlDQUFpQyx1Q0FBdUMsWUFBWSxLQUFLLE9BQU87QUFDaEc7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMsb0NBQW9DLGdCQUFnQjtBQUN2RixDQUFDO0FBQ0Q7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBLDBDQUEwQyw0QkFBNEI7QUFDdEUsQ0FBQztBQUNEO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCLHVCQUF1QjtBQUN2Qix5QkFBeUIsbUJBQU8sQ0FBQyw0Q0FBTztBQUN4QyxlQUFlLG1CQUFPLENBQUMsMEhBQWdDO0FBQ3ZELGVBQWUsbUJBQU8sQ0FBQyw0R0FBc0I7QUFDN0MsZUFBZSxtQkFBTyxDQUFDLGtKQUE0QztBQUNuRSxlQUFlLG1CQUFPLENBQUMsc0hBQThCO0FBQ3JELGVBQWUsbUJBQU8sQ0FBQyx3SEFBK0I7QUFDdEQsY0FBYyxtQkFBTyxDQUFDLDBHQUFxQjtBQUMzQyxtQkFBbUIsbUJBQU8sQ0FBQyw0R0FBeUI7QUFDcEQsZUFBZSxtQkFBTyxDQUFDLG9HQUFxQjtBQUM1QyxxQkFBcUIsbUJBQU8sQ0FBQyxnSEFBMkI7QUFDeEQsc0JBQXNCLG1CQUFPLENBQUMsOEdBQTBCO0FBQ3hEO0FBQ0EsMkNBQTJDO0FBQzNDO0FBQ0EsV0FBVztBQUNYO0FBQ0EsdUJBQXVCO0FBQ3ZCO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BuZXh0L3JlYWN0LWRldi1vdmVybGF5L2xpYi9pbnRlcm5hbC9zdHlsZXMvQ29tcG9uZW50U3R5bGVzLmpzPzhlODgiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19tYWtlVGVtcGxhdGVPYmplY3QgPSAodGhpcyAmJiB0aGlzLl9fbWFrZVRlbXBsYXRlT2JqZWN0KSB8fCBmdW5jdGlvbiAoY29va2VkLCByYXcpIHtcbiAgICBpZiAoT2JqZWN0LmRlZmluZVByb3BlcnR5KSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb29rZWQsIFwicmF3XCIsIHsgdmFsdWU6IHJhdyB9KTsgfSBlbHNlIHsgY29va2VkLnJhdyA9IHJhdzsgfVxuICAgIHJldHVybiBjb29rZWQ7XG59O1xudmFyIF9fY3JlYXRlQmluZGluZyA9ICh0aGlzICYmIHRoaXMuX19jcmVhdGVCaW5kaW5nKSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH0pO1xufSkgOiAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIG9bazJdID0gbVtrXTtcbn0pKTtcbnZhciBfX3NldE1vZHVsZURlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9fc2V0TW9kdWxlRGVmYXVsdCkgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgdikge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBcImRlZmF1bHRcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdiB9KTtcbn0pIDogZnVuY3Rpb24obywgdikge1xuICAgIG9bXCJkZWZhdWx0XCJdID0gdjtcbn0pO1xudmFyIF9faW1wb3J0U3RhciA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnRTdGFyKSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDtcbiAgICB2YXIgcmVzdWx0ID0ge307XG4gICAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrIGluIG1vZCkgaWYgKGsgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChtb2QsIGspKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGspO1xuICAgIF9fc2V0TW9kdWxlRGVmYXVsdChyZXN1bHQsIG1vZCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5Db21wb25lbnRTdHlsZXMgPSB2b2lkIDA7XG52YXIgUmVhY3QgPSBfX2ltcG9ydFN0YXIocmVxdWlyZShcInJlYWN0XCIpKTtcbnZhciBzdHlsZXNfMSA9IHJlcXVpcmUoXCIuLi9jb21wb25lbnRzL0NvZGVGcmFtZS9zdHlsZXNcIik7XG52YXIgRGlhbG9nXzEgPSByZXF1aXJlKFwiLi4vY29tcG9uZW50cy9EaWFsb2dcIik7XG52YXIgc3R5bGVzXzIgPSByZXF1aXJlKFwiLi4vY29tcG9uZW50cy9MZWZ0UmlnaHREaWFsb2dIZWFkZXIvc3R5bGVzXCIpO1xudmFyIHN0eWxlc18zID0gcmVxdWlyZShcIi4uL2NvbXBvbmVudHMvT3ZlcmxheS9zdHlsZXNcIik7XG52YXIgc3R5bGVzXzQgPSByZXF1aXJlKFwiLi4vY29tcG9uZW50cy9UZXJtaW5hbC9zdHlsZXNcIik7XG52YXIgVG9hc3RfMSA9IHJlcXVpcmUoXCIuLi9jb21wb25lbnRzL1RvYXN0XCIpO1xudmFyIEJ1aWxkRXJyb3JfMSA9IHJlcXVpcmUoXCIuLi9jb250YWluZXIvQnVpbGRFcnJvclwiKTtcbnZhciBFcnJvcnNfMSA9IHJlcXVpcmUoXCIuLi9jb250YWluZXIvRXJyb3JzXCIpO1xudmFyIFJ1bnRpbWVFcnJvcl8xID0gcmVxdWlyZShcIi4uL2NvbnRhaW5lci9SdW50aW1lRXJyb3JcIik7XG52YXIgbm9vcF90ZW1wbGF0ZV8xID0gcmVxdWlyZShcIi4uL2hlbHBlcnMvbm9vcC10ZW1wbGF0ZVwiKTtcbmZ1bmN0aW9uIENvbXBvbmVudFN0eWxlcygpIHtcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiLCB7IGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MOiB7XG4gICAgICAgICAgICBfX2h0bWw6ICgwLCBub29wX3RlbXBsYXRlXzEubm9vcCkodGVtcGxhdGVPYmplY3RfMSB8fCAodGVtcGxhdGVPYmplY3RfMSA9IF9fbWFrZVRlbXBsYXRlT2JqZWN0KFtcIlxcbiAgICAgICAgICBcIiwgXCJcXG4gICAgICAgICAgXCIsIFwiXFxuICAgICAgICAgIFwiLCBcIlxcbiAgICAgICAgICBcIiwgXCJcXG4gICAgICAgICAgXCIsIFwiXFxuICAgICAgICAgIFwiLCBcIlxcblxcbiAgICAgICAgICBcIiwgXCJcXG4gICAgICAgICAgXCIsIFwiXFxuICAgICAgICAgIFwiLCBcIlxcbiAgICAgICAgXCJdLCBbXCJcXG4gICAgICAgICAgXCIsIFwiXFxuICAgICAgICAgIFwiLCBcIlxcbiAgICAgICAgICBcIiwgXCJcXG4gICAgICAgICAgXCIsIFwiXFxuICAgICAgICAgIFwiLCBcIlxcbiAgICAgICAgICBcIiwgXCJcXG5cXG4gICAgICAgICAgXCIsIFwiXFxuICAgICAgICAgIFwiLCBcIlxcbiAgICAgICAgICBcIiwgXCJcXG4gICAgICAgIFwiXSkpLCBzdHlsZXNfMy5zdHlsZXMsIFRvYXN0XzEuc3R5bGVzLCBEaWFsb2dfMS5zdHlsZXMsIHN0eWxlc18yLnN0eWxlcywgc3R5bGVzXzEuc3R5bGVzLCBzdHlsZXNfNC5zdHlsZXMsIEJ1aWxkRXJyb3JfMS5zdHlsZXMsIEVycm9yc18xLnN0eWxlcywgUnVudGltZUVycm9yXzEuc3R5bGVzKVxuICAgICAgICB9IH0pKTtcbn1cbmV4cG9ydHMuQ29tcG9uZW50U3R5bGVzID0gQ29tcG9uZW50U3R5bGVzO1xudmFyIHRlbXBsYXRlT2JqZWN0XzE7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Db21wb25lbnRTdHlsZXMuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/styles/ComponentStyles.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/styles/CssReset.js": +/*!******************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/styles/CssReset.js ***! + \******************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nexports.__esModule = true;\nexports.CssReset = void 0;\nvar React = __importStar(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nvar noop_template_1 = __webpack_require__(/*! ../helpers/noop-template */ \"./node_modules/@next/react-dev-overlay/lib/internal/helpers/noop-template.js\");\nfunction CssReset() {\n return (React.createElement(\"style\", { dangerouslySetInnerHTML: {\n __html: (0, noop_template_1.noop)(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\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: #212529;\\n text-align: left;\\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 }\\n\\n button:focus {\\n outline: 1px dotted;\\n outline: 5px auto -webkit-focus-ring-color;\\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 :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: #212529;\\n text-align: left;\\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 }\\n\\n button:focus {\\n outline: 1px dotted;\\n outline: 5px auto -webkit-focus-ring-color;\\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}\nexports.CssReset = CssReset;\nvar templateObject_1;\n//# sourceMappingURL=CssReset.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL3N0eWxlcy9Dc3NSZXNldC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0EsaUNBQWlDLHVDQUF1QyxZQUFZLEtBQUssT0FBTztBQUNoRztBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQyxvQ0FBb0MsZ0JBQWdCO0FBQ3ZGLENBQUM7QUFDRDtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0EsMENBQTBDLDRCQUE0QjtBQUN0RSxDQUFDO0FBQ0Q7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEIsZ0JBQWdCO0FBQ2hCLHlCQUF5QixtQkFBTyxDQUFDLDRDQUFPO0FBQ3hDLHNCQUFzQixtQkFBTyxDQUFDLDhHQUEwQjtBQUN4RDtBQUNBLDJDQUEyQztBQUMzQyxnSUFBZ0ksMkJBQTJCLCtGQUErRixhQUFhLHFkQUFxZCxxQ0FBcUMsYUFBYSxxQkFBcUIsc0NBQXNDLGdDQUFnQyw2Q0FBNkMsNERBQTRELGFBQWEsaU1BQWlNLDZCQUE2QixhQUFhLHFCQUFxQix3QkFBd0IsOFBBQThQLDhCQUE4QiwrQkFBK0IsK0JBQStCLDZCQUE2QiwrQkFBK0IscUNBQXFDLGFBQWEseURBQXlELG9DQUFvQyxhQUFhLGtCQUFrQixzQ0FBc0Msd0JBQXdCLGdDQUFnQyxhQUFhLDZGQUE2Riw0QkFBNEIsaUNBQWlDLGFBQWEsaUJBQWlCLDRCQUE0QixrQ0FBa0MsYUFBYSxpRUFBaUUseUNBQXlDLHdEQUF3RCxnREFBZ0QsMkJBQTJCLCtCQUErQixxREFBcUQsNkNBQTZDLGFBQWEsdUJBQXVCLGtDQUFrQyxpQ0FBaUMsbUNBQW1DLGFBQWEsZ0RBQWdELDRCQUE0QixrQ0FBa0MsYUFBYSwyRUFBMkUsK0JBQStCLGFBQWEsa0JBQWtCLCtCQUErQixhQUFhLGtCQUFrQixpQ0FBaUMsNkJBQTZCLGFBQWEsMEJBQTBCLCtCQUErQixh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bnRlcm5hbC9zdHlsZXMvQ3NzUmVzZXQuanM/OTFiYyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX21ha2VUZW1wbGF0ZU9iamVjdCA9ICh0aGlzICYmIHRoaXMuX19tYWtlVGVtcGxhdGVPYmplY3QpIHx8IGZ1bmN0aW9uIChjb29rZWQsIHJhdykge1xuICAgIGlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvb2tlZCwgXCJyYXdcIiwgeyB2YWx1ZTogcmF3IH0pOyB9IGVsc2UgeyBjb29rZWQucmF3ID0gcmF3OyB9XG4gICAgcmV0dXJuIGNvb2tlZDtcbn07XG52YXIgX19jcmVhdGVCaW5kaW5nID0gKHRoaXMgJiYgdGhpcy5fX2NyZWF0ZUJpbmRpbmcpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfSk7XG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgb1trMl0gPSBtW2tdO1xufSkpO1xudmFyIF9fc2V0TW9kdWxlRGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19zZXRNb2R1bGVEZWZhdWx0KSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCB2KSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIFwiZGVmYXVsdFwiLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2IH0pO1xufSkgOiBmdW5jdGlvbihvLCB2KSB7XG4gICAgb1tcImRlZmF1bHRcIl0gPSB2O1xufSk7XG52YXIgX19pbXBvcnRTdGFyID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydFN0YXIpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSByZXR1cm4gbW9kO1xuICAgIHZhciByZXN1bHQgPSB7fTtcbiAgICBpZiAobW9kICE9IG51bGwpIGZvciAodmFyIGsgaW4gbW9kKSBpZiAoayAhPT0gXCJkZWZhdWx0XCIgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG1vZCwgaykpIF9fY3JlYXRlQmluZGluZyhyZXN1bHQsIG1vZCwgayk7XG4gICAgX19zZXRNb2R1bGVEZWZhdWx0KHJlc3VsdCwgbW9kKTtcbiAgICByZXR1cm4gcmVzdWx0O1xufTtcbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLkNzc1Jlc2V0ID0gdm9pZCAwO1xudmFyIFJlYWN0ID0gX19pbXBvcnRTdGFyKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG52YXIgbm9vcF90ZW1wbGF0ZV8xID0gcmVxdWlyZShcIi4uL2hlbHBlcnMvbm9vcC10ZW1wbGF0ZVwiKTtcbmZ1bmN0aW9uIENzc1Jlc2V0KCkge1xuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChcInN0eWxlXCIsIHsgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6IHtcbiAgICAgICAgICAgIF9faHRtbDogKDAsIG5vb3BfdGVtcGxhdGVfMS5ub29wKSh0ZW1wbGF0ZU9iamVjdF8xIHx8ICh0ZW1wbGF0ZU9iamVjdF8xID0gX19tYWtlVGVtcGxhdGVPYmplY3QoW1wiXFxuICAgICAgICAgIDpob3N0IHtcXG4gICAgICAgICAgICBhbGw6IGluaXRpYWw7XFxuXFxuICAgICAgICAgICAgLyogdGhlIGRpcmVjdGlvbiBwcm9wZXJ0eSBpcyBub3QgcmVzZXQgYnkgJ2FsbCcgKi9cXG4gICAgICAgICAgICBkaXJlY3Rpb246IGx0cjtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICAvKiFcXG4gICAgICAgICAgICogQm9vdHN0cmFwIFJlYm9vdCB2NC40LjEgKGh0dHBzOi8vZ2V0Ym9vdHN0cmFwLmNvbS8pXFxuICAgICAgICAgICAqIENvcHlyaWdodCAyMDExLTIwMTkgVGhlIEJvb3RzdHJhcCBBdXRob3JzXFxuICAgICAgICAgICAqIENvcHlyaWdodCAyMDExLTIwMTkgVHdpdHRlciwgSW5jLlxcbiAgICAgICAgICAgKiBMaWNlbnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL21hc3Rlci9MSUNFTlNFKVxcbiAgICAgICAgICAgKiBGb3JrZWQgZnJvbSBOb3JtYWxpemUuY3NzLCBsaWNlbnNlZCBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MvYmxvYi9tYXN0ZXIvTElDRU5TRS5tZClcXG4gICAgICAgICAgICovXFxuICAgICAgICAgICosXFxuICAgICAgICAgICo6OmJlZm9yZSxcXG4gICAgICAgICAgKjo6YWZ0ZXIge1xcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgOmhvc3Qge1xcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE1O1xcbiAgICAgICAgICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcXG4gICAgICAgICAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgYXJ0aWNsZSxcXG4gICAgICAgICAgYXNpZGUsXFxuICAgICAgICAgIGZpZ2NhcHRpb24sXFxuICAgICAgICAgIGZpZ3VyZSxcXG4gICAgICAgICAgZm9vdGVyLFxcbiAgICAgICAgICBoZWFkZXIsXFxuICAgICAgICAgIGhncm91cCxcXG4gICAgICAgICAgbWFpbixcXG4gICAgICAgICAgbmF2LFxcbiAgICAgICAgICBzZWN0aW9uIHtcXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICA6aG9zdCB7XFxuICAgICAgICAgICAgbWFyZ2luOiAwO1xcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90byxcXG4gICAgICAgICAgICAgICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCAnTm90byBTYW5zJywgc2Fucy1zZXJpZixcXG4gICAgICAgICAgICAgICdBcHBsZSBDb2xvciBFbW9qaScsICdTZWdvZSBVSSBFbW9qaScsICdTZWdvZSBVSSBTeW1ib2wnLFxcbiAgICAgICAgICAgICAgJ05vdG8gQ29sb3IgRW1vamknO1xcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcXG4gICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XFxuICAgICAgICAgICAgY29sb3I6ICMyMTI1Mjk7XFxuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIFt0YWJpbmRleD0nLTEnXTpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcXG4gICAgICAgICAgICBvdXRsaW5lOiAwICFpbXBvcnRhbnQ7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgaHIge1xcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xcbiAgICAgICAgICAgIGhlaWdodDogMDtcXG4gICAgICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBoMSxcXG4gICAgICAgICAgaDIsXFxuICAgICAgICAgIGgzLFxcbiAgICAgICAgICBoNCxcXG4gICAgICAgICAgaDUsXFxuICAgICAgICAgIGg2IHtcXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBwIHtcXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgYWJiclt0aXRsZV0sXFxuICAgICAgICAgIGFiYnJbZGF0YS1vcmlnaW5hbC10aXRsZV0ge1xcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xcbiAgICAgICAgICAgIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcXG4gICAgICAgICAgICBjdXJzb3I6IGhlbHA7XFxuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcXG4gICAgICAgICAgICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwLWluazogbm9uZTtcXG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb24tc2tpcC1pbms6IG5vbmU7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgYWRkcmVzcyB7XFxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcXG4gICAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XFxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgb2wsXFxuICAgICAgICAgIHVsLFxcbiAgICAgICAgICBkbCB7XFxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIG9sIG9sLFxcbiAgICAgICAgICB1bCB1bCxcXG4gICAgICAgICAgb2wgdWwsXFxuICAgICAgICAgIHVsIG9sIHtcXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIGR0IHtcXG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIGRkIHtcXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XFxuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgYmxvY2txdW90ZSB7XFxuICAgICAgICAgICAgbWFyZ2luOiAwIDAgMTZweDtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBiLFxcbiAgICAgICAgICBzdHJvbmcge1xcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkZXI7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgc21hbGwge1xcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogODAlO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIHN1YixcXG4gICAgICAgICAgc3VwIHtcXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgICAgICAgICAgZm9udC1zaXplOiA3NSU7XFxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XFxuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIHN1YiB7XFxuICAgICAgICAgICAgYm90dG9tOiAtMC4yNWVtO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIHN1cCB7XFxuICAgICAgICAgICAgdG9wOiAtMC41ZW07XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgYSB7XFxuICAgICAgICAgICAgY29sb3I6ICMwMDdiZmY7XFxuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIGE6aG92ZXIge1xcbiAgICAgICAgICAgIGNvbG9yOiAjMDA1NmIzO1xcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIGE6bm90KFtocmVmXSkge1xcbiAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBhOm5vdChbaHJlZl0pOmhvdmVyIHtcXG4gICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcXG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgcHJlLFxcbiAgICAgICAgICBjb2RlLFxcbiAgICAgICAgICBrYmQsXFxuICAgICAgICAgIHNhbXAge1xcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBTRk1vbm8tUmVndWxhciwgTWVubG8sIE1vbmFjbywgQ29uc29sYXMsXFxuICAgICAgICAgICAgICAnTGliZXJhdGlvbiBNb25vJywgJ0NvdXJpZXIgTmV3JywgbW9ub3NwYWNlO1xcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMWVtO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIHByZSB7XFxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIGZpZ3VyZSB7XFxuICAgICAgICAgICAgbWFyZ2luOiAwIDAgMTZweDtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBpbWcge1xcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgICAgICAgICAgYm9yZGVyLXN0eWxlOiBub25lO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIHN2ZyB7XFxuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIHRhYmxlIHtcXG4gICAgICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIGNhcHRpb24ge1xcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAxMnB4O1xcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxMnB4O1xcbiAgICAgICAgICAgIGNvbG9yOiAjNmM3NTdkO1xcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XFxuICAgICAgICAgICAgY2FwdGlvbi1zaWRlOiBib3R0b207XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgdGgge1xcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGluaGVyaXQ7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgbGFiZWwge1xcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgYnV0dG9uIHtcXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIGJ1dHRvbjpmb2N1cyB7XFxuICAgICAgICAgICAgb3V0bGluZTogMXB4IGRvdHRlZDtcXG4gICAgICAgICAgICBvdXRsaW5lOiA1cHggYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgaW5wdXQsXFxuICAgICAgICAgIGJ1dHRvbixcXG4gICAgICAgICAgc2VsZWN0LFxcbiAgICAgICAgICBvcHRncm91cCxcXG4gICAgICAgICAgdGV4dGFyZWEge1xcbiAgICAgICAgICAgIG1hcmdpbjogMDtcXG4gICAgICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDtcXG4gICAgICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XFxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgYnV0dG9uLFxcbiAgICAgICAgICBpbnB1dCB7XFxuICAgICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgYnV0dG9uLFxcbiAgICAgICAgICBzZWxlY3Qge1xcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIHNlbGVjdCB7XFxuICAgICAgICAgICAgd29yZC13cmFwOiBub3JtYWw7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgYnV0dG9uLFxcbiAgICAgICAgICBbdHlwZT0nYnV0dG9uJ10sXFxuICAgICAgICAgIFt0eXBlPSdyZXNldCddLFxcbiAgICAgICAgICBbdHlwZT0nc3VibWl0J10ge1xcbiAgICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIGJ1dHRvbjpub3QoOmRpc2FibGVkKSxcXG4gICAgICAgICAgW3R5cGU9J2J1dHRvbiddOm5vdCg6ZGlzYWJsZWQpLFxcbiAgICAgICAgICBbdHlwZT0ncmVzZXQnXTpub3QoOmRpc2FibGVkKSxcXG4gICAgICAgICAgW3R5cGU9J3N1Ym1pdCddOm5vdCg6ZGlzYWJsZWQpIHtcXG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxcbiAgICAgICAgICBbdHlwZT0nYnV0dG9uJ106Oi1tb3otZm9jdXMtaW5uZXIsXFxuICAgICAgICAgIFt0eXBlPSdyZXNldCddOjotbW96LWZvY3VzLWlubmVyLFxcbiAgICAgICAgICBbdHlwZT0nc3VibWl0J106Oi1tb3otZm9jdXMtaW5uZXIge1xcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XFxuICAgICAgICAgICAgYm9yZGVyLXN0eWxlOiBub25lO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIGlucHV0W3R5cGU9J3JhZGlvJ10sXFxuICAgICAgICAgIGlucHV0W3R5cGU9J2NoZWNrYm94J10ge1xcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgICAgICAgICAgcGFkZGluZzogMDtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBpbnB1dFt0eXBlPSdkYXRlJ10sXFxuICAgICAgICAgIGlucHV0W3R5cGU9J3RpbWUnXSxcXG4gICAgICAgICAgaW5wdXRbdHlwZT0nZGF0ZXRpbWUtbG9jYWwnXSxcXG4gICAgICAgICAgaW5wdXRbdHlwZT0nbW9udGgnXSB7XFxuICAgICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBsaXN0Ym94O1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIHRleHRhcmVhIHtcXG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcXG4gICAgICAgICAgICByZXNpemU6IHZlcnRpY2FsO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIGZpZWxkc2V0IHtcXG4gICAgICAgICAgICBtaW4td2lkdGg6IDA7XFxuICAgICAgICAgICAgcGFkZGluZzogMDtcXG4gICAgICAgICAgICBtYXJnaW46IDA7XFxuICAgICAgICAgICAgYm9yZGVyOiAwO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIGxlZ2VuZCB7XFxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XFxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XFxuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XFxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjRweDtcXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcXG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIHByb2dyZXNzIHtcXG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgW3R5cGU9J251bWJlciddOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxcbiAgICAgICAgICBbdHlwZT0nbnVtYmVyJ106Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBbdHlwZT0nc2VhcmNoJ10ge1xcbiAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xcbiAgICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBbdHlwZT0nc2VhcmNoJ106Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xcbiAgICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICA6Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcXG4gICAgICAgICAgICBmb250OiBpbmhlcml0O1xcbiAgICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIG91dHB1dCB7XFxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIHN1bW1hcnkge1xcbiAgICAgICAgICAgIGRpc3BsYXk6IGxpc3QtaXRlbTtcXG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgdGVtcGxhdGUge1xcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgW2hpZGRlbl0ge1xcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG4gICAgICAgICAgfVxcbiAgICAgICAgXCJdLCBbXCJcXG4gICAgICAgICAgOmhvc3Qge1xcbiAgICAgICAgICAgIGFsbDogaW5pdGlhbDtcXG5cXG4gICAgICAgICAgICAvKiB0aGUgZGlyZWN0aW9uIHByb3BlcnR5IGlzIG5vdCByZXNldCBieSAnYWxsJyAqL1xcbiAgICAgICAgICAgIGRpcmVjdGlvbjogbHRyO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIC8qIVxcbiAgICAgICAgICAgKiBCb290c3RyYXAgUmVib290IHY0LjQuMSAoaHR0cHM6Ly9nZXRib290c3RyYXAuY29tLylcXG4gICAgICAgICAgICogQ29weXJpZ2h0IDIwMTEtMjAxOSBUaGUgQm9vdHN0cmFwIEF1dGhvcnNcXG4gICAgICAgICAgICogQ29weXJpZ2h0IDIwMTEtMjAxOSBUd2l0dGVyLCBJbmMuXFxuICAgICAgICAgICAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFzdGVyL0xJQ0VOU0UpXFxuICAgICAgICAgICAqIEZvcmtlZCBmcm9tIE5vcm1hbGl6ZS5jc3MsIGxpY2Vuc2VkIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcy9ibG9iL21hc3Rlci9MSUNFTlNFLm1kKVxcbiAgICAgICAgICAgKi9cXG4gICAgICAgICAgKixcXG4gICAgICAgICAgKjo6YmVmb3JlLFxcbiAgICAgICAgICAqOjphZnRlciB7XFxuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICA6aG9zdCB7XFxuICAgICAgICAgICAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XFxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTU7XFxuICAgICAgICAgICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xcbiAgICAgICAgICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBhcnRpY2xlLFxcbiAgICAgICAgICBhc2lkZSxcXG4gICAgICAgICAgZmlnY2FwdGlvbixcXG4gICAgICAgICAgZmlndXJlLFxcbiAgICAgICAgICBmb290ZXIsXFxuICAgICAgICAgIGhlYWRlcixcXG4gICAgICAgICAgaGdyb3VwLFxcbiAgICAgICAgICBtYWluLFxcbiAgICAgICAgICBuYXYsXFxuICAgICAgICAgIHNlY3Rpb24ge1xcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIDpob3N0IHtcXG4gICAgICAgICAgICBtYXJnaW46IDA7XFxuICAgICAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLFxcbiAgICAgICAgICAgICAgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsICdOb3RvIFNhbnMnLCBzYW5zLXNlcmlmLFxcbiAgICAgICAgICAgICAgJ0FwcGxlIENvbG9yIEVtb2ppJywgJ1NlZ29lIFVJIEVtb2ppJywgJ1NlZ29lIFVJIFN5bWJvbCcsXFxuICAgICAgICAgICAgICAnTm90byBDb2xvciBFbW9qaSc7XFxuICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcXG4gICAgICAgICAgICBjb2xvcjogIzIxMjUyOTtcXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgW3RhYmluZGV4PSctMSddOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSkge1xcbiAgICAgICAgICAgIG91dGxpbmU6IDAgIWltcG9ydGFudDtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBociB7XFxuICAgICAgICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XFxuICAgICAgICAgICAgaGVpZ2h0OiAwO1xcbiAgICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIGgxLFxcbiAgICAgICAgICBoMixcXG4gICAgICAgICAgaDMsXFxuICAgICAgICAgIGg0LFxcbiAgICAgICAgICBoNSxcXG4gICAgICAgICAgaDYge1xcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XFxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIHAge1xcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XFxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBhYmJyW3RpdGxlXSxcXG4gICAgICAgICAgYWJicltkYXRhLW9yaWdpbmFsLXRpdGxlXSB7XFxuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XFxuICAgICAgICAgICAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XFxuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xcbiAgICAgICAgICAgIGN1cnNvcjogaGVscDtcXG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xcbiAgICAgICAgICAgIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rOiBub25lO1xcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbi1za2lwLWluazogbm9uZTtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBhZGRyZXNzIHtcXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBvbCxcXG4gICAgICAgICAgdWwsXFxuICAgICAgICAgIGRsIHtcXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgb2wgb2wsXFxuICAgICAgICAgIHVsIHVsLFxcbiAgICAgICAgICBvbCB1bCxcXG4gICAgICAgICAgdWwgb2wge1xcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgZHQge1xcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgZGQge1xcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBibG9ja3F1b3RlIHtcXG4gICAgICAgICAgICBtYXJnaW46IDAgMCAxNnB4O1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIGIsXFxuICAgICAgICAgIHN0cm9uZyB7XFxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBzbWFsbCB7XFxuICAgICAgICAgICAgZm9udC1zaXplOiA4MCU7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgc3ViLFxcbiAgICAgICAgICBzdXAge1xcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgICAgICAgICBmb250LXNpemU6IDc1JTtcXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcXG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgc3ViIHtcXG4gICAgICAgICAgICBib3R0b206IC0wLjI1ZW07XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgc3VwIHtcXG4gICAgICAgICAgICB0b3A6IC0wLjVlbTtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBhIHtcXG4gICAgICAgICAgICBjb2xvcjogIzAwN2JmZjtcXG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgYTpob3ZlciB7XFxuICAgICAgICAgICAgY29sb3I6ICMwMDU2YjM7XFxuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgYTpub3QoW2hyZWZdKSB7XFxuICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XFxuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIGE6bm90KFtocmVmXSk6aG92ZXIge1xcbiAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBwcmUsXFxuICAgICAgICAgIGNvZGUsXFxuICAgICAgICAgIGtiZCxcXG4gICAgICAgICAgc2FtcCB7XFxuICAgICAgICAgICAgZm9udC1mYW1pbHk6IFNGTW9uby1SZWd1bGFyLCBNZW5sbywgTW9uYWNvLCBDb25zb2xhcyxcXG4gICAgICAgICAgICAgICdMaWJlcmF0aW9uIE1vbm8nLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2U7XFxuICAgICAgICAgICAgZm9udC1zaXplOiAxZW07XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgcHJlIHtcXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XFxuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgZmlndXJlIHtcXG4gICAgICAgICAgICBtYXJnaW46IDAgMCAxNnB4O1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIGltZyB7XFxuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgICAgICAgICBib3JkZXItc3R5bGU6IG5vbmU7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgc3ZnIHtcXG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgdGFibGUge1xcbiAgICAgICAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgY2FwdGlvbiB7XFxuICAgICAgICAgICAgcGFkZGluZy10b3A6IDEycHg7XFxuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDEycHg7XFxuICAgICAgICAgICAgY29sb3I6ICM2Yzc1N2Q7XFxuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcXG4gICAgICAgICAgICBjYXB0aW9uLXNpZGU6IGJvdHRvbTtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICB0aCB7XFxuICAgICAgICAgICAgdGV4dC1hbGlnbjogaW5oZXJpdDtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBsYWJlbCB7XFxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBidXR0b24ge1xcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgYnV0dG9uOmZvY3VzIHtcXG4gICAgICAgICAgICBvdXRsaW5lOiAxcHggZG90dGVkO1xcbiAgICAgICAgICAgIG91dGxpbmU6IDVweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBpbnB1dCxcXG4gICAgICAgICAgYnV0dG9uLFxcbiAgICAgICAgICBzZWxlY3QsXFxuICAgICAgICAgIG9wdGdyb3VwLFxcbiAgICAgICAgICB0ZXh0YXJlYSB7XFxuICAgICAgICAgICAgbWFyZ2luOiAwO1xcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBidXR0b24sXFxuICAgICAgICAgIGlucHV0IHtcXG4gICAgICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBidXR0b24sXFxuICAgICAgICAgIHNlbGVjdCB7XFxuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgc2VsZWN0IHtcXG4gICAgICAgICAgICB3b3JkLXdyYXA6IG5vcm1hbDtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBidXR0b24sXFxuICAgICAgICAgIFt0eXBlPSdidXR0b24nXSxcXG4gICAgICAgICAgW3R5cGU9J3Jlc2V0J10sXFxuICAgICAgICAgIFt0eXBlPSdzdWJtaXQnXSB7XFxuICAgICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgYnV0dG9uOm5vdCg6ZGlzYWJsZWQpLFxcbiAgICAgICAgICBbdHlwZT0nYnV0dG9uJ106bm90KDpkaXNhYmxlZCksXFxuICAgICAgICAgIFt0eXBlPSdyZXNldCddOm5vdCg6ZGlzYWJsZWQpLFxcbiAgICAgICAgICBbdHlwZT0nc3VibWl0J106bm90KDpkaXNhYmxlZCkge1xcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBidXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXFxuICAgICAgICAgIFt0eXBlPSdidXR0b24nXTo6LW1vei1mb2N1cy1pbm5lcixcXG4gICAgICAgICAgW3R5cGU9J3Jlc2V0J106Oi1tb3otZm9jdXMtaW5uZXIsXFxuICAgICAgICAgIFt0eXBlPSdzdWJtaXQnXTo6LW1vei1mb2N1cy1pbm5lciB7XFxuICAgICAgICAgICAgcGFkZGluZzogMDtcXG4gICAgICAgICAgICBib3JkZXItc3R5bGU6IG5vbmU7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgaW5wdXRbdHlwZT0ncmFkaW8nXSxcXG4gICAgICAgICAgaW5wdXRbdHlwZT0nY2hlY2tib3gnXSB7XFxuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIGlucHV0W3R5cGU9J2RhdGUnXSxcXG4gICAgICAgICAgaW5wdXRbdHlwZT0ndGltZSddLFxcbiAgICAgICAgICBpbnB1dFt0eXBlPSdkYXRldGltZS1sb2NhbCddLFxcbiAgICAgICAgICBpbnB1dFt0eXBlPSdtb250aCddIHtcXG4gICAgICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGxpc3Rib3g7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgdGV4dGFyZWEge1xcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xcbiAgICAgICAgICAgIHJlc2l6ZTogdmVydGljYWw7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgZmllbGRzZXQge1xcbiAgICAgICAgICAgIG1pbi13aWR0aDogMDtcXG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xcbiAgICAgICAgICAgIG1hcmdpbjogMDtcXG4gICAgICAgICAgICBib3JkZXI6IDA7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgbGVnZW5kIHtcXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XFxuICAgICAgICAgICAgcGFkZGluZzogMDtcXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XFxuICAgICAgICAgICAgZm9udC1zaXplOiAyNHB4O1xcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbiAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgcHJvZ3Jlc3Mge1xcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBbdHlwZT0nbnVtYmVyJ106Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXFxuICAgICAgICAgIFt0eXBlPSdudW1iZXInXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XFxuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIFt0eXBlPSdzZWFyY2gnXSB7XFxuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XFxuICAgICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIFt0eXBlPSdzZWFyY2gnXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XFxuICAgICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIDo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xcbiAgICAgICAgICAgIGZvbnQ6IGluaGVyaXQ7XFxuICAgICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgb3V0cHV0IHtcXG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgc3VtbWFyeSB7XFxuICAgICAgICAgICAgZGlzcGxheTogbGlzdC1pdGVtO1xcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICB0ZW1wbGF0ZSB7XFxuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBbaGlkZGVuXSB7XFxuICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbiAgICAgICAgICB9XFxuICAgICAgICBcIl0pKSlcbiAgICAgICAgfSB9KSk7XG59XG5leHBvcnRzLkNzc1Jlc2V0ID0gQ3NzUmVzZXQ7XG52YXIgdGVtcGxhdGVPYmplY3RfMTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUNzc1Jlc2V0LmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/styles/CssReset.js\n"); + +/***/ }), + +/***/ "./node_modules/ansi-regex/index.js": +/*!******************************************!*\ + !*** ./node_modules/ansi-regex/index.js ***! + \******************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nmodule.exports = function () {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$onlyFirst = _ref.onlyFirst,\n onlyFirst = _ref$onlyFirst === void 0 ? false : _ref$onlyFirst;\n\n var pattern = [\"[\\\\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=><~]))'].join('|');\n return new RegExp(pattern, onlyFirst ? undefined : 'g');\n};\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYW5zaS1yZWdleC9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7O0FBRWJBLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQixZQUE4QjtBQUFBLGlGQUFQLEVBQU87QUFBQSw0QkFBNUJDLFNBQTRCO0FBQUEsTUFBNUJBLFNBQTRCLCtCQUFoQixLQUFnQjs7QUFDOUMsTUFBTUMsT0FBTyxHQUFHLENBQ2YsOEhBRGUsRUFFZiwwREFGZSxFQUdkQyxJQUhjLENBR1QsR0FIUyxDQUFoQjtBQUtBLFNBQU8sSUFBSUMsTUFBSixDQUFXRixPQUFYLEVBQW9CRCxTQUFTLEdBQUdJLFNBQUgsR0FBZSxHQUE1QyxDQUFQO0FBQ0EsQ0FQRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvYW5zaS1yZWdleC9pbmRleC5qcz85MmIzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxubW9kdWxlLmV4cG9ydHMgPSAoe29ubHlGaXJzdCA9IGZhbHNlfSA9IHt9KSA9PiB7XG5cdGNvbnN0IHBhdHRlcm4gPSBbXG5cdFx0J1tcXFxcdTAwMUJcXFxcdTAwOUJdW1tcXFxcXSgpIzs/XSooPzooPzooPzooPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10rKSp8W2EtekEtWlxcXFxkXSsoPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10qKSopP1xcXFx1MDAwNyknLFxuXHRcdCcoPzooPzpcXFxcZHsxLDR9KD86O1xcXFxkezAsNH0pKik/W1xcXFxkQS1QUi1UWmNmLW50cXJ5PT48fl0pKSdcblx0XS5qb2luKCd8Jyk7XG5cblx0cmV0dXJuIG5ldyBSZWdFeHAocGF0dGVybiwgb25seUZpcnN0ID8gdW5kZWZpbmVkIDogJ2cnKTtcbn07XG4iXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIm9ubHlGaXJzdCIsInBhdHRlcm4iLCJqb2luIiwiUmVnRXhwIiwidW5kZWZpbmVkIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/ansi-regex/index.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/dev/dev-build-watcher.js": +/*!****************************************************************!*\ + !*** ./node_modules/next/dist/client/dev/dev-build-watcher.js ***! + \****************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = initializeBuildWatcher;\n\nvar _websocket = __webpack_require__(/*! ./error-overlay/websocket */ \"./node_modules/next/dist/client/dev/error-overlay/websocket.js\");\n\nfunction initializeBuildWatcher(toggleCallback) {\n var position = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'bottom-right';\n var shadowHost = document.createElement('div');\n shadowHost.id = '__next-build-watcher'; // Make sure container is fixed and on a high zIndex so it shows\n\n shadowHost.style.position = 'fixed'; // Ensure container's position to be top or bottom (default)\n\n if (['top-left', 'top-right'].indexOf(position) > -1) {\n shadowHost.style.top = '10px';\n } else {\n shadowHost.style.bottom = '10px';\n } // Ensure container's position to be left or right (default)\n\n\n if (['bottom-left', 'top-left'].indexOf(position) > -1) {\n shadowHost.style.left = '20px';\n } else {\n shadowHost.style.right = '20px';\n }\n\n shadowHost.style.width = 0;\n shadowHost.style.height = 0;\n shadowHost.style.zIndex = 99999;\n document.body.appendChild(shadowHost);\n var shadowRoot;\n var prefix = '';\n\n if (shadowHost.attachShadow) {\n shadowRoot = shadowHost.attachShadow({\n mode: 'open'\n });\n } else {\n // If attachShadow is undefined then the browser does not support\n // the Shadow DOM, we need to prefix all the names so there\n // will be no conflicts\n shadowRoot = shadowHost;\n prefix = '__next-build-watcher-';\n } // Container\n\n\n var container = createContainer(prefix);\n shadowRoot.appendChild(container); // CSS\n\n var css = createCss(prefix);\n shadowRoot.appendChild(css); // State\n\n var isVisible = false;\n var isBuilding = false;\n var timeoutId = null; // Handle events\n\n (0, _websocket).addMessageListener(function (event) {\n // This is the heartbeat event\n if (event.data === \"\\uD83D\\uDC93\") {\n return;\n }\n\n try {\n handleMessage(event);\n } catch (e) {}\n });\n\n function handleMessage(event) {\n var obj = typeof event === 'string' ? {\n action: event\n } : JSON.parse(event.data); // eslint-disable-next-line default-case\n\n switch (obj.action) {\n case 'building':\n timeoutId && clearTimeout(timeoutId);\n isVisible = true;\n isBuilding = true;\n updateContainer();\n break;\n\n case 'built':\n case 'sync':\n isBuilding = false; // Wait for the fade out transition to complete\n\n timeoutId = setTimeout(function () {\n isVisible = false;\n updateContainer();\n }, 100);\n updateContainer();\n break;\n }\n }\n\n toggleCallback(handleMessage);\n\n function updateContainer() {\n if (isBuilding) {\n container.classList.add(\"\".concat(prefix, \"building\"));\n } else {\n container.classList.remove(\"\".concat(prefix, \"building\"));\n }\n\n if (isVisible) {\n container.classList.add(\"\".concat(prefix, \"visible\"));\n } else {\n container.classList.remove(\"\".concat(prefix, \"visible\"));\n }\n }\n}\n\nfunction createContainer(prefix) {\n var container = document.createElement('div');\n container.id = \"\".concat(prefix, \"container\");\n container.innerHTML = \"\\n <div id=\\\"\".concat(prefix, \"icon-wrapper\\\">\\n <svg viewBox=\\\"0 0 226 200\\\">\\n <defs>\\n <linearGradient\\n x1=\\\"114.720775%\\\"\\n y1=\\\"181.283245%\\\"\\n x2=\\\"39.5399306%\\\"\\n y2=\\\"100%\\\"\\n id=\\\"\").concat(prefix, \"linear-gradient\\\"\\n >\\n <stop stop-color=\\\"#000000\\\" offset=\\\"0%\\\" />\\n <stop stop-color=\\\"#FFFFFF\\\" offset=\\\"100%\\\" />\\n </linearGradient>\\n </defs>\\n <g id=\\\"\").concat(prefix, \"icon-group\\\" fill=\\\"none\\\" stroke=\\\"url(#\").concat(prefix, \"linear-gradient)\\\" stroke-width=\\\"18\\\">\\n <path d=\\\"M113,5.08219117 L4.28393801,197.5 L221.716062,197.5 L113,5.08219117 Z\\\" />\\n </g>\\n </svg>\\n </div>\\n \");\n return container;\n}\n\nfunction createCss(prefix) {\n var css = document.createElement('style');\n css.textContent = \"\\n #\".concat(prefix, \"container {\\n position: absolute;\\n bottom: 10px;\\n right: 30px;\\n\\n border-radius: 3px;\\n background: #000;\\n color: #fff;\\n font: initial;\\n cursor: initial;\\n letter-spacing: initial;\\n text-shadow: initial;\\n text-transform: initial;\\n visibility: initial;\\n\\n padding: 7px 10px 8px 10px;\\n align-items: center;\\n box-shadow: 0 11px 40px 0 rgba(0, 0, 0, 0.25), 0 2px 10px 0 rgba(0, 0, 0, 0.12);\\n\\n display: none;\\n opacity: 0;\\n transition: opacity 0.1s ease, bottom 0.1s ease;\\n animation: \").concat(prefix, \"fade-in 0.1s ease-in-out;\\n }\\n\\n #\").concat(prefix, \"container.\").concat(prefix, \"visible {\\n display: flex;\\n }\\n\\n #\").concat(prefix, \"container.\").concat(prefix, \"building {\\n bottom: 20px;\\n opacity: 1;\\n }\\n\\n #\").concat(prefix, \"icon-wrapper {\\n width: 16px;\\n height: 16px;\\n }\\n\\n #\").concat(prefix, \"icon-wrapper > svg {\\n width: 100%;\\n height: 100%;\\n }\\n\\n #\").concat(prefix, \"icon-group {\\n animation: \").concat(prefix, \"strokedash 1s ease-in-out both infinite;\\n }\\n\\n @keyframes \").concat(prefix, \"fade-in {\\n from {\\n bottom: 10px;\\n opacity: 0;\\n }\\n to {\\n bottom: 20px;\\n opacity: 1;\\n }\\n }\\n\\n @keyframes \").concat(prefix, \"strokedash {\\n 0% {\\n stroke-dasharray: 0 226;\\n }\\n 80%,\\n 100% {\\n stroke-dasharray: 659 226;\\n }\\n }\\n \");\n return css;\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvZGV2LWJ1aWxkLXdhdGNoZXIuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxrQkFBQSxHQUFrQkUsc0JBQWxCOztBQUNBLElBQUlDLFVBQVUsR0FBR0MsbUJBQU8sQ0FBQyxpR0FBRCxDQUF4Qjs7QUFDQSxTQUFTRixzQkFBVCxDQUFnQ0csY0FBaEMsRUFBMkU7QUFBQSxNQUEzQkMsUUFBMkIsdUVBQWhCLGNBQWdCO0FBQ3ZFLE1BQU1DLFVBQVUsR0FBR0MsUUFBUSxDQUFDQyxhQUFULENBQXVCLEtBQXZCLENBQW5CO0FBQ0FGLEVBQUFBLFVBQVUsQ0FBQ0csRUFBWCxHQUFnQixzQkFBaEIsQ0FGdUUsQ0FHdkU7O0FBQ0FILEVBQUFBLFVBQVUsQ0FBQ0ksS0FBWCxDQUFpQkwsUUFBakIsR0FBNEIsT0FBNUIsQ0FKdUUsQ0FLdkU7O0FBQ0EsTUFBSSxDQUNBLFVBREEsRUFFQSxXQUZBLEVBR0ZNLE9BSEUsQ0FHTU4sUUFITixJQUdrQixDQUFDLENBSHZCLEVBRzBCO0FBQ3RCQyxJQUFBQSxVQUFVLENBQUNJLEtBQVgsQ0FBaUJFLEdBQWpCLEdBQXVCLE1BQXZCO0FBQ0gsR0FMRCxNQUtPO0FBQ0hOLElBQUFBLFVBQVUsQ0FBQ0ksS0FBWCxDQUFpQkcsTUFBakIsR0FBMEIsTUFBMUI7QUFDSCxHQWJzRSxDQWN2RTs7O0FBQ0EsTUFBSSxDQUNBLGFBREEsRUFFQSxVQUZBLEVBR0ZGLE9BSEUsQ0FHTU4sUUFITixJQUdrQixDQUFDLENBSHZCLEVBRzBCO0FBQ3RCQyxJQUFBQSxVQUFVLENBQUNJLEtBQVgsQ0FBaUJJLElBQWpCLEdBQXdCLE1BQXhCO0FBQ0gsR0FMRCxNQUtPO0FBQ0hSLElBQUFBLFVBQVUsQ0FBQ0ksS0FBWCxDQUFpQkssS0FBakIsR0FBeUIsTUFBekI7QUFDSDs7QUFDRFQsRUFBQUEsVUFB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U0FBVixDQUFvQkMsR0FBcEIsV0FBMkJ2QixNQUEzQjtBQUNILEtBRkQsTUFFTztBQUNIRyxNQUFBQSxTQUFTLENBQUNtQixTQUFWLENBQW9CRSxNQUFwQixXQUE4QnhCLE1BQTlCO0FBQ0g7QUFDSjtBQUNKOztBQUNELFNBQVNJLGVBQVQsQ0FBeUJKLE1BQXpCLEVBQWlDO0FBQzdCLE1BQU1HLFNBQVMsR0FBR2xCLFFBQVEsQ0FBQ0MsYUFBVCxDQUF1QixLQUF2QixDQUFsQjtBQUNBaUIsRUFBQUEsU0FBUyxDQUFDaEIsRUFBVixhQUFrQmEsTUFBbEI7QUFDQUcsRUFBQUEsU0FBUyxDQUFDc0IsU0FBViw2QkFDV3pCLE1BRFgsd1BBU2NBLE1BVGQsbU9BZWFBLE1BZmIsc0RBZTJEQSxNQWYzRDtBQXFCQSxTQUFPRyxTQUFQO0FBQ0g7O0FBQ0QsU0FBU0csU0FBVCxDQUFtQk4sTUFBbkIsRUFBMkI7QUFDdkIsTUFBTUssR0FBRyxHQUFHcEIsUUFBUSxDQUFDQyxhQUFULENBQXVCLE9BQXZCLENBQVo7QUFDQW1CLEVBQUFBLEdBQUcsQ0FBQ3FCLFdBQUosb0JBQ0cxQixNQURILDRsQkF1QmVBLE1BdkJmLHNEQTBCR0EsTUExQkgsdUJBMEJzQkEsTUExQnRCLDREQThCR0EsTUE5QkgsdUJBOEJzQkEsTUE5QnRCLCtFQW1DR0EsTUFuQ0gsb0ZBd0NHQSxNQXhDSCwwRkE2Q0dBLE1BN0NILDRDQThDZUEsTUE5Q2YsK0VBaURhQSxNQWpEYixvTEE0RGFBLE1BNURiO0FBc0VBLFNBQU9LLEdBQVA7QUFDSCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvZGV2LWJ1aWxkLXdhdGNoZXIuanM/N2IzNCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IGluaXRpYWxpemVCdWlsZFdhdGNoZXI7XG52YXIgX3dlYnNvY2tldCA9IHJlcXVpcmUoXCIuL2Vycm9yLW92ZXJsYXkvd2Vic29ja2V0XCIpO1xuZnVuY3Rpb24gaW5pdGlhbGl6ZUJ1aWxkV2F0Y2hlcih0b2dnbGVDYWxsYmFjaywgcG9zaXRpb24gPSAnYm90dG9tLXJpZ2h0Jykge1xuICAgIGNvbnN0IHNoYWRvd0hvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICBzaGFkb3dIb3N0LmlkID0gJ19fbmV4dC1idWlsZC13YXRjaGVyJztcbiAgICAvLyBNYWtlIHN1cmUgY29udGFpbmVyIGlzIGZpeGVkIGFuZCBvbiBhIGhpZ2ggekluZGV4IHNvIGl0IHNob3dzXG4gICAgc2hhZG93SG9zdC5zdHlsZS5wb3NpdGlvbiA9ICdmaXhlZCc7XG4gICAgLy8gRW5zdXJlIGNvbnRhaW5lcidzIHBvc2l0aW9uIHRvIGJlIHRvcCBvciBib3R0b20gKGRlZmF1bHQpXG4gICAgaWYgKFtcbiAgICAgICAgJ3RvcC1sZWZ0JyxcbiAgICAgICAgJ3RvcC1yaWdodCdcbiAgICBdLmluZGV4T2YocG9zaXRpb24pID4gLTEpIHtcbiAgICAgICAgc2hhZG93SG9zdC5zdHlsZS50b3AgPSAnMTBweCc7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgc2hhZG93SG9zdC5zdHlsZS5ib3R0b20gPSAnMTBweCc7XG4gICAgfVxuICAgIC8vIEVuc3VyZSBjb250YWluZXIncyBwb3NpdGlvbiB0byBiZSBsZWZ0IG9yIHJpZ2h0IChkZWZhdWx0KVxuICAgIGlmIChbXG4gICAgICAgICdib3R0b20tbGVmdCcsXG4gICAgICAgICd0b3AtbGVmdCdcbiAgICBdLmluZGV4T2YocG9zaXRpb24pID4gLTEpIHtcbiAgICAgICAgc2hhZG93SG9zdC5zdHlsZS5sZWZ0ID0gJzIwcHgnO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHNoYWRvd0hvc3Quc3R5bGUucmlnaHQgPSAnMjBweCc7XG4gICAgfVxuICAgIHNoYWRvd0hvc3Quc3R5bGUud2lkdGggPSAwO1xuICAgIHNoYWRvd0hvc3Quc3R5bGUuaGVpZ2h0ID0gMDtcbiAgICBzaGFkb3dIb3N0LnN0eWxlLnpJbmRleCA9IDk5OTk5O1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2hhZG93SG9zdCk7XG4gICAgbGV0IHNoYWRvd1Jvb3Q7XG4gICAgbGV0IHByZWZpeCA9ICcnO1xuICAgIGlmIChzaGFkb3dIb3N0LmF0dGFjaFNoYWRvdykge1xuICAgICAgICBzaGFkb3dSb290ID0gc2hhZG93SG9zdC5hdHRhY2hTaGFkb3coe1xuICAgICAgICAgICAgbW9kZTogJ29wZW4nXG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIElmIGF0dGFjaFNoYWRvdyBpcyB1bmRlZmluZWQgdGhlbiB0aGUgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0XG4gICAgICAgIC8vIHRoZSBTaGFkb3cgRE9NLCB3ZSBuZWVkIHRvIHByZWZpeCBhbGwgdGhlIG5hbWVzIHNvIHRoZXJlXG4gICAgICAgIC8vIHdpbGwgYmUgbm8gY29uZmxpY3RzXG4gICAgICAgIHNoYWRvd1Jvb3QgPSBzaGFkb3dIb3N0O1xuICAgICAgICBwcmVmaXggPSAnX19uZXh0LWJ1aWxkLXdhdGNoZXItJztcbiAgICB9XG4gICAgLy8gQ29udGFpbmVyXG4gICAgY29uc3QgY29udGFpbmVyID0gY3JlYXRlQ29udGFpbmVyKHByZWZpeCk7XG4gICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChjb250YWluZXIpO1xuICAgIC8vIENTU1xuICAgIGNvbnN0IGNzcyA9IGNyZWF0ZUNzcyhwcmVmaXgpO1xuICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoY3NzKTtcbiAgICAvLyBTdGF0ZVxuICAgIGxldCBpc1Zpc2libGUgPSBmYWxzZTtcbiAgICBsZXQgaXNCdWlsZGluZyA9IGZhbHNlO1xuICAgIGxldCB0aW1lb3V0SWQgPSBudWxsO1xuICAgIC8vIEhhbmRsZSBldmVudHNcbiAgICAoMCwgX3dlYnNvY2tldCkuYWRkTWVzc2FnZUxpc3RlbmVyKChldmVudCk9PntcbiAgICAgICAgLy8gVGhpcyBpcyB0aGUgaGVhcnRiZWF0IGV2ZW50XG4gICAgICAgIGlmIChldmVudC5kYXRhID09PSAnXFx1RDgzRFxcdURDOTMnKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGhhbmRsZU1lc3NhZ2UoZXZlbnQpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBmdW5jdGlvbiBoYW5kbGVNZXNzYWdlKGV2ZW50KSB7XG4gICAgICAgIGNvbnN0IG9iaiA9IHR5cGVvZiBldmVudCA9PT0gJ3N0cmluZycgPyB7XG4gICAgICAgICAgICBhY3Rpb246IGV2ZW50XG4gICAgICAgIH0gOiBKU09OLnBhcnNlKGV2ZW50LmRhdGEpO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZGVmYXVsdC1jYXNlXG4gICAgICAgIHN3aXRjaChvYmouYWN0aW9uKXtcbiAgICAgICAgICAgIGNhc2UgJ2J1aWxkaW5nJzpcbiAgICAgICAgICAgICAgICB0aW1lb3V0SWQgJiYgY2xlYXJUaW1lb3V0KHRpbWVvdXRJZCk7XG4gICAgICAgICAgICAgICAgaXNWaXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBpc0J1aWxkaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB1cGRhdGVDb250YWluZXIoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2J1aWx0JzpcbiAgICAgICAgICAgIGNhc2UgJ3N5bmMnOlxuICAgICAgICAgICAgICAgIGlzQnVpbGRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAvLyBXYWl0IGZvciB0aGUgZmFkZSBvdXQgdHJhbnNpdGlvbiB0byBjb21wbGV0ZVxuICAgICAgICAgICAgICAgIHRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCk9PntcbiAgICAgICAgICAgICAgICAgICAgaXNWaXNpYmxlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZUNvbnRhaW5lcigpO1xuICAgICAgICAgICAgICAgIH0sIDEwMCk7XG4gICAgICAgICAgICAgICAgdXBkYXRlQ29udGFpbmVyKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgdG9nZ2xlQ2FsbGJhY2soaGFuZGxlTWVzc2FnZSk7XG4gICAgZnVuY3Rpb24gdXBkYXRlQ29udGFpbmVyKCkge1xuICAgICAgICBpZiAoaXNCdWlsZGluZykge1xuICAgICAgICAgICAgY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoYCR7cHJlZml4fWJ1aWxkaW5nYCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb250YWluZXIuY2xhc3NMaXN0LnJlbW92ZShgJHtwcmVmaXh9YnVpbGRpbmdgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNWaXNpYmxlKSB7XG4gICAgICAgICAgICBjb250YWluZXIuY2xhc3NMaXN0LmFkZChgJHtwcmVmaXh9dmlzaWJsZWApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoYCR7cHJlZml4fXZpc2libGVgKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGNyZWF0ZUNvbnRhaW5lcihwcmVmaXgpIHtcbiAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICBjb250YWluZXIuaWQgPSBgJHtwcmVmaXh9Y29udGFpbmVyYDtcbiAgICBjb250YWluZXIuaW5uZXJIVE1MID0gYFxuICAgIDxkaXYgaWQ9XCIke3ByZWZpeH1pY29uLXdyYXBwZXJcIj5cbiAgICAgIDxzdmcgdmlld0JveD1cIjAgMCAyMjYgMjAwXCI+XG4gICAgICAgIDxkZWZzPlxuICAgICAgICAgIDxsaW5lYXJHcmFkaWVudFxuICAgICAgICAgICAgeDE9XCIxMTQuNzIwNzc1JVwiXG4gICAgICAgICAgICB5MT1cIjE4MS4yODMyNDUlXCJcbiAgICAgICAgICAgIHgyPVwiMzkuNTM5OTMwNiVcIlxuICAgICAgICAgICAgeTI9XCIxMDAlXCJcbiAgICAgICAgICAgIGlkPVwiJHtwcmVmaXh9bGluZWFyLWdyYWRpZW50XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPVwiIzAwMDAwMFwiIG9mZnNldD1cIjAlXCIgLz5cbiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9XCIjRkZGRkZGXCIgb2Zmc2V0PVwiMTAwJVwiIC8+XG4gICAgICAgICAgPC9saW5lYXJHcmFkaWVudD5cbiAgICAgICAgPC9kZWZzPlxuICAgICAgICA8ZyBpZD1cIiR7cHJlZml4fWljb24tZ3JvdXBcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cInVybCgjJHtwcmVmaXh9bGluZWFyLWdyYWRpZW50KVwiIHN0cm9rZS13aWR0aD1cIjE4XCI+XG4gICAgICAgICAgPHBhdGggZD1cIk0xMTMsNS4wODIxOTExNyBMNC4yODM5MzgwMSwxOTcuNSBMMjIxLjcxNjA2MiwxOTcuNSBMMTEzLDUuMDgyMTkxMTcgWlwiIC8+XG4gICAgICAgIDwvZz5cbiAgICAgIDwvc3ZnPlxuICAgIDwvZGl2PlxuICBgO1xuICAgIHJldHVybiBjb250YWluZXI7XG59XG5mdW5jdGlvbiBjcmVhdGVDc3MocHJlZml4KSB7XG4gICAgY29uc3QgY3NzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcbiAgICBjc3MudGV4dENvbnRlbnQgPSBgXG4gICAgIyR7cHJlZml4fWNvbnRhaW5lciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDEwcHg7XG4gICAgICByaWdodDogMzBweDtcblxuICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgYmFja2dyb3VuZDogIzAwMDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgZm9udDogaW5pdGlhbDtcbiAgICAgIGN1cnNvcjogaW5pdGlhbDtcbiAgICAgIGxldHRlci1zcGFjaW5nOiBpbml0aWFsO1xuICAgICAgdGV4dC1zaGFkb3c6IGluaXRpYWw7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogaW5pdGlhbDtcbiAgICAgIHZpc2liaWxpdHk6IGluaXRpYWw7XG5cbiAgICAgIHBhZGRpbmc6IDdweCAxMHB4IDhweCAxMHB4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGJveC1zaGFkb3c6IDAgMTFweCA0MHB4IDAgcmdiYSgwLCAwLCAwLCAwLjI1KSwgMCAycHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XG5cbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjFzIGVhc2UsIGJvdHRvbSAwLjFzIGVhc2U7XG4gICAgICBhbmltYXRpb246ICR7cHJlZml4fWZhZGUtaW4gMC4xcyBlYXNlLWluLW91dDtcbiAgICB9XG5cbiAgICAjJHtwcmVmaXh9Y29udGFpbmVyLiR7cHJlZml4fXZpc2libGUge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG5cbiAgICAjJHtwcmVmaXh9Y29udGFpbmVyLiR7cHJlZml4fWJ1aWxkaW5nIHtcbiAgICAgIGJvdHRvbTogMjBweDtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgIyR7cHJlZml4fWljb24td3JhcHBlciB7XG4gICAgICB3aWR0aDogMTZweDtcbiAgICAgIGhlaWdodDogMTZweDtcbiAgICB9XG5cbiAgICAjJHtwcmVmaXh9aWNvbi13cmFwcGVyID4gc3ZnIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgICMke3ByZWZpeH1pY29uLWdyb3VwIHtcbiAgICAgIGFuaW1hdGlvbjogJHtwcmVmaXh9c3Ryb2tlZGFzaCAxcyBlYXNlLWluLW91dCBib3RoIGluZmluaXRlO1xuICAgIH1cblxuICAgIEBrZXlmcmFtZXMgJHtwcmVmaXh9ZmFkZS1pbiB7XG4gICAgICBmcm9tIHtcbiAgICAgICAgYm90dG9tOiAxMHB4O1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgICAgdG8ge1xuICAgICAgICBib3R0b206IDIwcHg7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGtleWZyYW1lcyAke3ByZWZpeH1zdHJva2VkYXNoIHtcbiAgICAgIDAlIHtcbiAgICAgICAgc3Ryb2tlLWRhc2hhcnJheTogMCAyMjY7XG4gICAgICB9XG4gICAgICA4MCUsXG4gICAgICAxMDAlIHtcbiAgICAgICAgc3Ryb2tlLWRhc2hhcnJheTogNjU5IDIyNjtcbiAgICAgIH1cbiAgICB9XG4gIGA7XG4gICAgcmV0dXJuIGNzcztcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGV2LWJ1aWxkLXdhdGNoZXIuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiaW5pdGlhbGl6ZUJ1aWxkV2F0Y2hlciIsIl93ZWJzb2NrZXQiLCJyZXF1aXJlIiwidG9nZ2xlQ2FsbGJhY2siLCJwb3NpdGlvbiIsInNoYWRvd0hvc3QiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJpZCIsInN0eWxlIiwiaW5kZXhPZiIsInRvcCIsImJvdHRvbSIsImxlZnQiLCJyaWdodCIsIndpZHRoIiwiaGVpZ2h0IiwiekluZGV4IiwiYm9keSIsImFwcGVuZENoaWxkIiwic2hhZG93Um9vdCIsInByZWZpeCIsImF0dGFjaFNoYWRvdyIsIm1vZGUiLCJjb250YWluZXIiLCJjcmVhdGVDb250YWluZXIiLCJjc3MiLCJjcmVhdGVDc3MiLCJpc1Zpc2libGUiLCJpc0J1aWxkaW5nIiwidGltZW91dElkIiwiYWRkTWVzc2FnZUxpc3RlbmVyIiwiZXZlbnQiLCJkYXRhIiwiaGFuZGxlTWVzc2FnZSIsImUiLCJvYmoiLCJhY3Rpb24iLCJKU09OIiwicGFyc2UiLCJjbGVhclRpbWVvdXQiLCJ1cGRhdGVDb250YWluZXIiLCJzZXRUaW1lb3V0IiwiY2xhc3NMaXN0IiwiYWRkIiwicmVtb3ZlIiwiaW5uZXJIVE1MIiwidGV4dENvbnRlbnQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/dev-build-watcher.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/dev/error-overlay/format-webpack-messages.js": +/*!************************************************************************************!*\ + !*** ./node_modules/next/dist/client/dev/error-overlay/format-webpack-messages.js ***! + \************************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _toConsumableArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/toConsumableArray.js\");\n\nvar _slicedToArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nvar _stripAnsi = _interopRequireDefault(__webpack_require__(/*! next/dist/compiled/strip-ansi */ \"./node_modules/next/dist/compiled/strip-ansi/index.js\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\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\n\n\nvar friendlySyntaxErrorLabel = 'Syntax error:';\n\nfunction isLikelyASyntaxError(message) {\n return (0, _stripAnsi)[\"default\"](message).indexOf(friendlySyntaxErrorLabel) !== -1;\n} // Cleans up webpack error messages.\n\n\nfunction formatMessage(message, verbose) {\n // TODO: Replace this once webpack 5 is stable\n if (typeof message === 'object' && message.message) {\n var filteredModuleTrace = message.moduleTrace && message.moduleTrace.filter(function (trace) {\n return !/next-(middleware|client-pages|flight-(client|server))-loader\\.js/.test(trace.originName);\n });\n message = (message.moduleName ? (0, _stripAnsi)[\"default\"](message.moduleName) + '\\n' : '') + (message.file ? (0, _stripAnsi)[\"default\"](message.file) + '\\n' : '') + message.message + (message.details && verbose ? '\\n' + message.details : '') + (filteredModuleTrace && filteredModuleTrace.length && verbose ? '\\n\\nImport trace for requested module:' + filteredModuleTrace.map(function (trace) {\n return \"\\n\".concat(trace.originName);\n }).join('') : '') + (message.stack && verbose ? '\\n' + message.stack : '');\n }\n\n var lines = message.split('\\n'); // Strip Webpack-added headers off errors/warnings\n // https://github.com/webpack/webpack/blob/master/lib/ModuleError.js\n\n lines = lines.filter(function (line) {\n return !/Module [A-z ]+\\(from/.test(line);\n }); // Transform parsing error into syntax error\n // TODO: move this to our ESLint formatter?\n\n lines = lines.map(function (line) {\n var parsingError = /Line (\\d+):(?:(\\d+):)?\\s*Parsing error: (.+)$/.exec(line);\n\n if (!parsingError) {\n return line;\n }\n\n var _parsingError = _slicedToArray(parsingError, 4),\n errorLine = _parsingError[1],\n errorColumn = _parsingError[2],\n errorMessage = _parsingError[3];\n\n return \"\".concat(friendlySyntaxErrorLabel, \" \").concat(errorMessage, \" (\").concat(errorLine, \":\").concat(errorColumn, \")\");\n });\n message = lines.join('\\n'); // Smoosh syntax errors (commonly found in CSS)\n\n message = message.replace(/SyntaxError\\s+\\((\\d+):(\\d+)\\)\\s*(.+?)\\n/g, \"\".concat(friendlySyntaxErrorLabel, \" $3 ($1:$2)\\n\")); // Clean up export errors\n\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'); // Remove leading newline\n\n if (lines.length > 2 && lines[1].trim() === '') {\n lines.splice(1, 1);\n } // Cleans up verbose \"module not found\" messages for files and packages.\n\n\n if (lines[1] && lines[1].indexOf('Module not found: ') === 0) {\n lines = [lines[0], lines[1].replace('Error: ', '').replace('Module not found: Cannot find file:', 'Cannot find file:')].concat(_toConsumableArray(lines.slice(2)));\n } // Add helpful message for users trying to use Sass for the first time\n\n\n if (lines[1] && lines[1].match(/Cannot find module.+node-sass/)) {\n // ./file.module.scss (<<loader info>>) => ./file.module.scss\n lines[0] = lines[0].replace(/(.+) \\(.+?(?=\\?\\?).+?\\)/, '$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 }\n\n if (!verbose) {\n message = lines.join('\\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\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 lines = message.split('\\n');\n } // Remove duplicated newlines\n\n\n lines = lines.filter(function (line, index, arr) {\n return index === 0 || line.trim() !== '' || line.trim() !== arr[index - 1].trim();\n }); // Reassemble the message\n\n message = lines.join('\\n');\n return message.trim();\n}\n\nfunction formatWebpackMessages(json, verbose) {\n var formattedErrors = json.errors.map(function (message) {\n return formatMessage(message, verbose);\n });\n var formattedWarnings = json.warnings.map(function (message) {\n return formatMessage(message, verbose);\n });\n var result = {\n errors: formattedErrors,\n warnings: formattedWarnings\n };\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\n return result;\n}\n\nmodule.exports = formatWebpackMessages;\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvZXJyb3Itb3ZlcmxheS9mb3JtYXQtd2VicGFjay1tZXNzYWdlcy5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7Ozs7OztBQUNiLElBQUlBLFVBQVUsR0FBR0Msc0JBQXNCLENBQUNDLG1CQUFPLENBQUMsNEZBQUQsQ0FBUixDQUF2Qzs7QUFDQSxTQUFTRCxzQkFBVCxDQUFnQ0UsR0FBaEMsRUFBcUM7QUFDakMsU0FBT0EsR0FBRyxJQUFJQSxHQUFHLENBQUNDLFVBQVgsR0FBd0JELEdBQXhCLEdBQThCO0FBQ2pDLGVBQVNBO0FBRHdCLEdBQXJDO0FBR0gsRUFDRDtBQUNBOzs7QUFDQSxJQUFNRSx3QkFBd0IsR0FBRyxlQUFqQzs7QUFDQSxTQUFTQyxvQkFBVCxDQUE4QkMsT0FBOUIsRUFBdUM7QUFDbkMsU0FBTyxDQUFDLEdBQUdQLFVBQUosYUFBd0JPLE9BQXhCLEVBQWlDQyxPQUFqQyxDQUF5Q0gsd0JBQXpDLE1BQXVFLENBQUMsQ0FBL0U7QUFDSCxFQUNEOzs7QUFDQSxTQUFTSSxhQUFULENBQXVCRixPQUF2QixFQUFnQ0csT0FBaEMsRUFBeUM7QUFDckM7QUFDQSxNQUFJLE9BQU9ILE9BQVAsS0FBbUIsUUFBbkIsSUFBK0JBLE9BQU8sQ0FBQ0EsT0FBM0MsRUFBb0Q7QUFDaEQsUUFBTUksbUJBQW1CLEdBQUdKLE9BQU8sQ0FBQ0ssV0FBUixJQUF1QkwsT0FBTyxDQUFDSyxXQUFSLENBQW9CQyxNQUFwQixDQUEyQixVQUFDQyxLQUFEO0FBQUEsYUFBUyxDQUFDLG1FQUFtRUMsSUFBbkUsQ0FBd0VELEtBQUssQ0FBQ0UsVUFBOUUsQ0FBVjtBQUFBLEtBQTNCLENBQW5EO0FBRUFULElBQUFBLE9BQU8sR0FBRyxDQUFDQSxPQUFPLENBQUNVLFVBQVIsR0FBcUIsQ0FBQyxHQUFHakIsVUFBSixhQUF3Qk8sT0FBTyxDQUFDVSxVQUFoQyxJQUE4QyxJQUFuRSxHQUEwRSxFQUEzRSxLQUFrRlYsT0FBTyxD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bm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvZGV2L2Vycm9yLW92ZXJsYXkvZm9ybWF0LXdlYnBhY2stbWVzc2FnZXMuanM/NzVlYyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfc3RyaXBBbnNpID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL3N0cmlwLWFuc2lcIikpO1xuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuLy8gVGhpcyBmaWxlIGlzIGJhc2VkIG9uIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9jcmVhdGUtcmVhY3QtYXBwL2Jsb2IvN2IxYTMyYmU2ZWM5Zjk5YTZjOWEzYzY2ODEzZjNhYzA5YzQ3MzZiOS9wYWNrYWdlcy9yZWFjdC1kZXYtdXRpbHMvZm9ybWF0V2VicGFja01lc3NhZ2VzLmpzXG4vLyBJdCdzIGJlZW4gZWRpdGVkIHRvIHJlbW92ZSBjaGFsayBhbmQgQ1JBLXNwZWNpZmljIGxvZ2ljXG5jb25zdCBmcmllbmRseVN5bnRheEVycm9yTGFiZWwgPSAnU3ludGF4IGVycm9yOic7XG5mdW5jdGlvbiBpc0xpa2VseUFTeW50YXhFcnJvcihtZXNzYWdlKSB7XG4gICAgcmV0dXJuICgwLCBfc3RyaXBBbnNpKS5kZWZhdWx0KG1lc3NhZ2UpLmluZGV4T2YoZnJpZW5kbHlTeW50YXhFcnJvckxhYmVsKSAhPT0gLTE7XG59XG4vLyBDbGVhbnMgdXAgd2VicGFjayBlcnJvciBtZXNzYWdlcy5cbmZ1bmN0aW9uIGZvcm1hdE1lc3NhZ2UobWVzc2FnZSwgdmVyYm9zZSkge1xuICAgIC8vIFRPRE86IFJlcGxhY2UgdGhpcyBvbmNlIHdlYnBhY2sgNSBpcyBzdGFibGVcbiAgICBpZiAodHlwZW9mIG1lc3NhZ2UgPT09ICdvYmplY3QnICYmIG1lc3NhZ2UubWVzc2FnZSkge1xuICAgICAgICBjb25zdCBmaWx0ZXJlZE1vZHVsZVRyYWNlID0gbWVzc2FnZS5tb2R1bGVUcmFjZSAmJiBtZXNzYWdlLm1vZHVsZVRyYWNlLmZpbHRlcigodHJhY2UpPT4hL25leHQtKG1pZGRsZXdhcmV8Y2xpZW50LXBhZ2VzfGZsaWdodC0oY2xpZW50fHNlcnZlcikpLWxvYWRlclxcLmpzLy50ZXN0KHRyYWNlLm9yaWdpbk5hbWUpXG4gICAgICAgICk7XG4gICAgICAgIG1lc3NhZ2UgPSAobWVzc2FnZS5tb2R1bGVOYW1lID8gKDAsIF9zdHJpcEFuc2kpLmRlZmF1bHQobWVzc2FnZS5tb2R1bGVOYW1lKSArICdcXG4nIDogJycpICsgKG1lc3NhZ2UuZmlsZSA/ICgwLCBfc3RyaXBBbnNpKS5kZWZhdWx0KG1lc3NhZ2UuZmlsZSkgKyAnXFxuJyA6ICcnKSArIG1lc3NhZ2UubWVzc2FnZSArIChtZXNzYWdlLmRldGFpbHMgJiYgdmVyYm9zZSA/ICdcXG4nICsgbWVzc2FnZS5kZXRhaWxzIDogJycpICsgKGZpbHRlcmVkTW9kdWxlVHJhY2UgJiYgZmlsdGVyZWRNb2R1bGVUcmFjZS5sZW5ndGggJiYgdmVyYm9zZSA/ICdcXG5cXG5JbXBvcnQgdHJhY2UgZm9yIHJlcXVlc3RlZCBtb2R1bGU6JyArIGZpbHRlcmVkTW9kdWxlVHJhY2UubWFwKCh0cmFjZSk9PmBcXG4ke3RyYWNlLm9yaWdpbk5hbWV9YFxuICAgICAgICApLmpvaW4oJycpIDogJycpICsgKG1lc3NhZ2Uuc3RhY2sgJiYgdmVyYm9zZSA/ICdcXG4nICsgbWVzc2FnZS5zdGFjayA6ICcnKTtcbiAgICB9XG4gICAgbGV0IGxpbmVzID0gbWVzc2FnZS5zcGxpdCgnXFxuJyk7XG4gICAgLy8gU3RyaXAgV2VicGFjay1hZGRlZCBoZWFkZXJzIG9mZiBlcnJvcnMvd2FybmluZ3NcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vd2VicGFjay93ZWJwYWNrL2Jsb2IvbWFzdGVyL2xpYi9Nb2R1bGVFcnJvci5qc1xuICAgIGxpbmVzID0gbGluZXMuZmlsdGVyKChsaW5lKT0+IS9Nb2R1bGUgW0EteiBdK1xcKGZyb20vLnRlc3QobGluZSlcbiAgICApO1xuICAgIC8vIFRyYW5zZm9ybSBwYXJzaW5nIGVycm9yIGludG8gc3ludGF4IGVycm9yXG4gICAgLy8gVE9ETzogbW92ZSB0aGlzIHRvIG91ciBFU0xpbnQgZm9ybWF0dGVyP1xuICAgIGxpbmVzID0gbGluZXMubWFwKChsaW5lKT0+e1xuICAgICAgICBjb25zdCBwYXJzaW5nRXJyb3IgPSAvTGluZSAoXFxkKyk6KD86KFxcZCspOik/XFxzKlBhcnNpbmcgZXJyb3I6ICguKykkLy5leGVjKGxpbmUpO1xuICAgICAgICBpZiAoIXBhcnNpbmdFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIGxpbmU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgWywgZXJyb3JMaW5lLCBlcnJvckNvbHVtbiwgZXJyb3JNZXNzYWdlXSA9IHBhcnNpbmdFcnJvcjtcbiAgICAgICAgcmV0dXJuIGAke2ZyaWVuZGx5U3ludGF4RXJyb3JMYWJlbH0gJHtlcnJvck1lc3NhZ2V9ICgke2Vycm9yTGluZX06JHtlcnJvckNvbHVtbn0pYDtcbiAgICB9KTtcbiAgICBtZXNzYWdlID0gbGluZXMuam9pbignXFxuJyk7XG4gICAgLy8gU21vb3NoIHN5bnRheCBlcnJvcnMgKGNvbW1vbmx5IGZvdW5kIGluIENTUylcbiAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKC9TeW50YXhFcnJvclxccytcXCgoXFxkKyk6KFxcZCspXFwpXFxzKiguKz8pXFxuL2csIGAke2ZyaWVuZGx5U3ludGF4RXJyb3JMYWJlbH0gJDMgKCQxOiQyKVxcbmApO1xuICAgIC8vIENsZWFuIHVwIGV4cG9ydCBlcnJvcnNcbiAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKC9eLipleHBvcnQgJyguKz8pJyB3YXMgbm90IGZvdW5kIGluICcoLis/KScuKiQvZ20sIGBBdHRlbXB0ZWQgaW1wb3J0IGVycm9yOiAnJDEnIGlzIG5vdCBleHBvcnRlZCBmcm9tICckMicuYCk7XG4gICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZSgvXi4qZXhwb3J0ICdkZWZhdWx0JyBcXChpbXBvcnRlZCBhcyAnKC4rPyknXFwpIHdhcyBub3QgZm91bmQgaW4gJyguKz8pJy4qJC9nbSwgYEF0dGVtcHRlZCBpbXBvcnQgZXJyb3I6ICckMicgZG9lcyBub3QgY29udGFpbiBhIGRlZmF1bHQgZXhwb3J0IChpbXBvcnRlZCBhcyAnJDEnKS5gKTtcbiAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKC9eLipleHBvcnQgJyguKz8pJyBcXChpbXBvcnRlZCBhcyAnKC4rPyknXFwpIHdhcyBub3QgZm91bmQgaW4gJyguKz8pJy4qJC9nbSwgYEF0dGVtcHRlZCBpbXBvcnQgZXJyb3I6ICckMScgaXMgbm90IGV4cG9ydGVkIGZyb20gJyQzJyAoaW1wb3J0ZWQgYXMgJyQyJykuYCk7XG4gICAgbGluZXMgPSBtZXNzYWdlLnNwbGl0KCdcXG4nKTtcbiAgICAvLyBSZW1vdmUgbGVhZGluZyBuZXdsaW5lXG4gICAgaWYgKGxpbmVzLmxlbmd0aCA+IDIgJiYgbGluZXNbMV0udHJpbSgpID09PSAnJykge1xuICAgICAgICBsaW5lcy5zcGxpY2UoMSwgMSk7XG4gICAgfVxuICAgIC8vIENsZWFucyB1cCB2ZXJib3NlIFwibW9kdWxlIG5vdCBmb3VuZFwiIG1lc3NhZ2VzIGZvciBmaWxlcyBhbmQgcGFja2FnZXMuXG4gICAgaWYgKGxpbmVzWzFdICYmIGxpbmVzWzFdLmluZGV4T2YoJ01vZHVsZSBub3QgZm91bmQ6ICcpID09PSAwKSB7XG4gICAgICAgIGxpbmVzID0gW1xuICAgICAgICAgICAgbGluZXNbMF0sXG4gICAgICAgICAgICBsaW5lc1sxXS5yZXBsYWNlKCdFcnJvcjogJywgJycpLnJlcGxhY2UoJ01vZHVsZSBub3QgZm91bmQ6IENhbm5vdCBmaW5kIGZpbGU6JywgJ0Nhbm5vdCBmaW5kIGZpbGU6JyksXG4gICAgICAgICAgICAuLi5saW5lcy5zbGljZSgyKSwgXG4gICAgICAgIF07XG4gICAgfVxuICAgIC8vIEFkZCBoZWxwZnVsIG1lc3NhZ2UgZm9yIHVzZXJzIHRyeWluZyB0byB1c2UgU2FzcyBmb3IgdGhlIGZpcnN0IHRpbWVcbiAgICBpZiAobGluZXNbMV0gJiYgbGluZXNbMV0ubWF0Y2goL0Nhbm5vdCBmaW5kIG1vZHVsZS4rbm9kZS1zYXNzLykpIHtcbiAgICAgICAgLy8gLi9maWxlLm1vZHVsZS5zY3NzICg8PGxvYWRlciBpbmZvPj4pID0+IC4vZmlsZS5tb2R1bGUuc2Nzc1xuICAgICAgICBsaW5lc1swXSA9IGxpbmVzWzBdLnJlcGxhY2UoLyguKykgXFwoLis/KD89XFw/XFw/KS4rP1xcKS8sICckMScpO1xuICAgICAgICBsaW5lc1sxXSA9IFwiVG8gdXNlIE5leHQuanMnIGJ1aWx0LWluIFNhc3Mgc3VwcG9ydCwgeW91IGZpcnN0IG5lZWQgdG8gaW5zdGFsbCBgc2Fzc2AuXFxuXCI7XG4gICAgICAgIGxpbmVzWzFdICs9ICdSdW4gYG5wbSBpIHNhc3NgIG9yIGB5YXJuIGFkZCBzYXNzYCBpbnNpZGUgeW91ciB3b3Jrc3BhY2UuXFxuJztcbiAgICAgICAgbGluZXNbMV0gKz0gJ1xcbkxlYXJuIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2luc3RhbGwtc2Fzcyc7XG4gICAgfVxuICAgIGlmICghdmVyYm9zZSkge1xuICAgICAgICBtZXNzYWdlID0gbGluZXMuam9pbignXFxuJyk7XG4gICAgICAgIC8vIEludGVybmFsIHN0YWNrcyBhcmUgZ2VuZXJhbGx5IHVzZWxlc3Mgc28gd2Ugc3RyaXAgdGhlbS4uLiB3aXRoIHRoZVxuICAgICAgICAvLyBleGNlcHRpb24gb2Ygc3RhY2tzIGNvbnRhaW5pbmcgYHdlYnBhY2s6YCBiZWNhdXNlIHRoZXkncmUgbm9ybWFsbHlcbiAgICAgICAgLy8gZnJvbSB1c2VyIGNvZGUgZ2VuZXJhdGVkIGJ5IFdlYnBhY2suIEZvciBtb3JlIGluZm9ybWF0aW9uIHNlZVxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svY3JlYXRlLXJlYWN0LWFwcC9wdWxsLzEwNTBcbiAgICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZSgvXlxccyphdFxccygoPyF3ZWJwYWNrOikuKSo6XFxkKzpcXGQrW1xccyldKihcXG58JCkvZ20sICcnKSAvLyBhdCAuLi4gLi4uOng6eVxuICAgICAgICA7XG4gICAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoL15cXHMqYXRcXHM8YW5vbnltb3VzPihcXG58JCkvZ20sICcnKSAvLyBhdCA8YW5vbnltb3VzPlxuICAgICAgICA7XG4gICAgICAgIGxpbmVzID0gbWVzc2FnZS5zcGxpdCgnXFxuJyk7XG4gICAgfVxuICAgIC8vIFJlbW92ZSBkdXBsaWNhdGVkIG5ld2xpbmVzXG4gICAgbGluZXMgPSBsaW5lcy5maWx0ZXIoKGxpbmUsIGluZGV4LCBhcnIpPT5pbmRleCA9PT0gMCB8fCBsaW5lLnRyaW0oKSAhPT0gJycgfHwgbGluZS50cmltKCkgIT09IGFycltpbmRleCAtIDFdLnRyaW0oKVxuICAgICk7XG4gICAgLy8gUmVhc3NlbWJsZSB0aGUgbWVzc2FnZVxuICAgIG1lc3NhZ2UgPSBsaW5lcy5qb2luKCdcXG4nKTtcbiAgICByZXR1cm4gbWVzc2FnZS50cmltKCk7XG59XG5mdW5jdGlvbiBmb3JtYXRXZWJwYWNrTWVzc2FnZXMoanNvbiwgdmVyYm9zZSkge1xuICAgIGNvbnN0IGZvcm1hdHRlZEVycm9ycyA9IGpzb24uZXJyb3JzLm1hcChmdW5jdGlvbihtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiBmb3JtYXRNZXNzYWdlKG1lc3NhZ2UsIHZlcmJvc2UpO1xuICAgIH0pO1xuICAgIGNvbnN0IGZvcm1hdHRlZFdhcm5pbmdzID0ganNvbi53YXJuaW5ncy5tYXAoZnVuY3Rpb24obWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gZm9ybWF0TWVzc2FnZShtZXNzYWdlLCB2ZXJib3NlKTtcbiAgICB9KTtcbiAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICAgIGVycm9yczogZm9ybWF0dGVkRXJyb3JzLFxuICAgICAgICB3YXJuaW5nczogZm9ybWF0dGVkV2FybmluZ3NcbiAgICB9O1xuICAgIGlmICghdmVyYm9zZSAmJiByZXN1bHQuZXJyb3JzLnNvbWUoaXNMaWtlbHlBU3ludGF4RXJyb3IpKSB7XG4gICAgICAgIC8vIElmIHRoZXJlIGFyZSBhbnkgc3ludGF4IGVycm9ycywgc2hvdyBqdXN0IHRoZW0uXG4gICAgICAgIHJlc3VsdC5lcnJvcnMgPSByZXN1bHQuZXJyb3JzLmZpbHRlcihpc0xpa2VseUFTeW50YXhFcnJvcik7XG4gICAgICAgIHJlc3VsdC53YXJuaW5ncyA9IFtdO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufVxubW9kdWxlLmV4cG9ydHMgPSBmb3JtYXRXZWJwYWNrTWVzc2FnZXM7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWZvcm1hdC13ZWJwYWNrLW1lc3NhZ2VzLmpzLm1hcCJdLCJuYW1lcyI6WyJfc3RyaXBBbnNpIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZnJpZW5kbHlTeW50YXhFcnJvckxhYmVsIiwiaXNMaWtlbHlBU3ludGF4RXJyb3IiLCJtZXNzYWdlIiwiaW5kZXhPZiIsImZvcm1hdE1lc3NhZ2UiLCJ2ZXJib3NlIiwiZmlsdGVyZWRNb2R1bGVUcmFjZSIsIm1vZHVsZVRyYWNlIiwiZmlsdGVyIiwidHJhY2UiLCJ0ZXN0Iiwib3JpZ2luTmFtZSIsIm1vZHVsZU5hbWUiLCJmaWxlIiwiZGV0YWlscyIsImxlbmd0aCIsIm1hcCIsImpvaW4iLCJzdGFjayIsImxpbmVzIiwic3BsaXQiLCJsaW5lIiwicGFyc2luZ0Vycm9yIiwiZXhlYyIsImVycm9yTGluZSIsImVycm9yQ29sdW1uIiwiZXJyb3JNZXNzYWdlIiwicmVwbGFjZSIsInRyaW0iLCJzcGxpY2UiLCJzbGljZSIsIm1hdGNoIiwiaW5kZXgiLCJhcnIiLCJmb3JtYXRXZWJwYWNrTWVzc2FnZXMiLCJqc29uIiwiZm9ybWF0dGVkRXJyb3JzIiwiZXJyb3JzIiwiZm9ybWF0dGVkV2FybmluZ3MiLCJ3YXJuaW5ncyIsInJlc3VsdCIsInNvbWUiLCJtb2R1bGUiLCJleHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/error-overlay/format-webpack-messages.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/dev/error-overlay/hot-dev-client.js": +/*!***************************************************************************!*\ + !*** ./node_modules/next/dist/client/dev/error-overlay/hot-dev-client.js ***! + \***************************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = connect;\n\nvar _client = __webpack_require__(/*! @next/react-dev-overlay/lib/client */ \"./node_modules/@next/react-dev-overlay/lib/client.js\");\n\nvar _stripAnsi = _interopRequireDefault(__webpack_require__(/*! next/dist/compiled/strip-ansi */ \"./node_modules/next/dist/compiled/strip-ansi/index.js\"));\n\nvar _websocket = __webpack_require__(/*! ./websocket */ \"./node_modules/next/dist/client/dev/error-overlay/websocket.js\");\n\nvar _formatWebpackMessages = _interopRequireDefault(__webpack_require__(/*! ./format-webpack-messages */ \"./node_modules/next/dist/client/dev/error-overlay/format-webpack-messages.js\"));\n\nvar _router = _interopRequireDefault(__webpack_require__(/*! next/router */ \"./node_modules/next/router.js\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n} // This alternative WebpackDevServer combines the functionality of:\n// https://github.com/webpack/webpack-dev-server/blob/webpack-1/client/index.js\n// https://github.com/webpack/webpack/blob/webpack-1/hot/dev-server.js\n// It only supports their simplest configuration (hot updates on same server).\n// It makes some opinionated choices on top, like adding a syntax error overlay\n// that looks similar to our console output. The error overlay is inspired by:\n// https://github.com/glenjamin/webpack-hot-middleware\n\n\nvar hadRuntimeError = false;\nvar customHmrEventHandler;\n\nfunction connect() {\n (0, _client).register();\n (0, _websocket).addMessageListener(function (event) {\n if (event.data.indexOf('action') === -1) return;\n\n try {\n processMessage(event);\n } catch (ex) {\n console.warn('Invalid HMR message: ' + event.data + '\\n' + ex);\n }\n });\n return {\n subscribeToHmrEvent: function subscribeToHmrEvent(handler) {\n customHmrEventHandler = handler;\n },\n onUnrecoverableError: function onUnrecoverableError() {\n hadRuntimeError = true;\n }\n };\n} // Remember some state related to hot module replacement.\n\n\nvar isFirstCompilation = true;\nvar mostRecentCompilationHash = null;\nvar hasCompileErrors = false;\n\nfunction clearOutdatedErrors() {\n // Clean up outdated compile errors, if any.\n if (typeof console !== 'undefined' && typeof console.clear === 'function') {\n if (hasCompileErrors) {\n console.clear();\n }\n }\n} // Successful compilation.\n\n\nfunction handleSuccess() {\n clearOutdatedErrors();\n var isHotUpdate = !isFirstCompilation || _router[\"default\"].pathname !== '/_error' && isUpdateAvailable();\n isFirstCompilation = false;\n hasCompileErrors = false; // Attempt to apply hot updates or reload.\n\n if (isHotUpdate) {\n tryApplyUpdates(function onSuccessfulHotUpdate(hasUpdates) {\n // Only dismiss it when we're sure it's a hot update.\n // Otherwise it would flicker right before the reload.\n onFastRefresh(hasUpdates);\n });\n }\n} // Compilation with warnings (e.g. ESLint).\n\n\nfunction handleWarnings(warnings) {\n clearOutdatedErrors();\n var isHotUpdate = !isFirstCompilation;\n isFirstCompilation = false;\n hasCompileErrors = false;\n\n function printWarnings() {\n // Print warnings to the console.\n var formatted = (0, _formatWebpackMessages)[\"default\"]({\n warnings: warnings,\n errors: []\n });\n\n if (typeof console !== 'undefined' && typeof console.warn === 'function') {\n for (var i = 0; i < formatted.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\n console.warn((0, _stripAnsi)[\"default\"](formatted.warnings[i]));\n }\n }\n }\n\n printWarnings(); // Attempt to apply hot updates or reload.\n\n if (isHotUpdate) {\n tryApplyUpdates(function onSuccessfulHotUpdate(hasUpdates) {\n // Only dismiss it when we're sure it's a hot update.\n // Otherwise it would flicker right before the reload.\n onFastRefresh(hasUpdates);\n });\n }\n} // Compilation with errors (e.g. syntax error or missing modules).\n\n\nfunction handleErrors(errors) {\n clearOutdatedErrors();\n isFirstCompilation = false;\n hasCompileErrors = true; // \"Massage\" webpack messages.\n\n var formatted = (0, _formatWebpackMessages)[\"default\"]({\n errors: errors,\n warnings: []\n }); // Only show the first error.\n\n (0, _client).onBuildError(formatted.errors[0]); // Also log them to the console.\n\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n for (var 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\n\n if (undefined) {\n if (self.__NEXT_HMR_CB) {\n self.__NEXT_HMR_CB(formatted.errors[0]);\n\n self.__NEXT_HMR_CB = null;\n }\n }\n}\n\nvar startLatency = undefined;\n\nfunction onFastRefresh(hasUpdates) {\n (0, _client).onBuildOk();\n\n if (hasUpdates) {\n (0, _client).onRefresh();\n }\n\n if (startLatency) {\n var latency = Date.now() - startLatency;\n console.log(\"[Fast Refresh] done in \".concat(latency, \"ms\"));\n\n if (self.__NEXT_HMR_LATENCY_CB) {\n self.__NEXT_HMR_LATENCY_CB(latency);\n }\n }\n} // There is a newer version of the code available.\n\n\nfunction handleAvailableHash(hash) {\n // Update last known compilation hash.\n mostRecentCompilationHash = hash;\n} // Handle messages from the server.\n\n\nfunction processMessage(e) {\n var obj = JSON.parse(e.data);\n\n switch (obj.action) {\n case 'building':\n {\n startLatency = Date.now();\n console.log('[Fast Refresh] rebuilding');\n break;\n }\n\n case 'built':\n case 'sync':\n {\n if (obj.hash) {\n handleAvailableHash(obj.hash);\n }\n\n var errors = obj.errors,\n warnings = obj.warnings;\n var hasErrors = Boolean(errors && errors.length);\n\n if (hasErrors) {\n return handleErrors(errors);\n }\n\n var hasWarnings = Boolean(warnings && warnings.length);\n\n if (hasWarnings) {\n return handleWarnings(warnings);\n }\n\n return handleSuccess();\n }\n\n default:\n {\n if (customHmrEventHandler) {\n customHmrEventHandler(obj);\n break;\n }\n\n break;\n }\n }\n} // Is there a newer version of this code available?\n\n\nfunction isUpdateAvailable() {\n /* globals __webpack_hash__ */\n // __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} // Webpack disallows updates in other states.\n\n\nfunction canApplyUpdates() {\n return module.hot.status() === 'idle';\n}\n\nfunction afterApplyUpdates(fn) {\n if (canApplyUpdates()) {\n fn();\n } else {\n var handler = function handler(status) {\n if (status === 'idle') {\n module.hot.removeStatusHandler(handler);\n fn();\n }\n };\n\n module.hot.addStatusHandler(handler);\n }\n} // Attempt to update code on the fly, fall back to a hard reload.\n\n\nfunction tryApplyUpdates(onHotUpdateSuccess) {\n if (false) {}\n\n if (!isUpdateAvailable() || !canApplyUpdates()) {\n (0, _client).onBuildOk();\n return;\n }\n\n function handleApplyUpdates(err, updatedModules) {\n if (err || hadRuntimeError || !updatedModules) {\n if (err) {\n console.warn('[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.');\n } else if (hadRuntimeError) {\n console.warn('[Fast Refresh] performing full reload because your application had an unrecoverable error');\n }\n\n window.location.reload();\n return;\n }\n\n var hasUpdates = Boolean(updatedModules.length);\n\n if (typeof onHotUpdateSuccess === 'function') {\n // Maybe we want to do something.\n onHotUpdateSuccess(hasUpdates);\n }\n\n if (isUpdateAvailable()) {\n // While we were updating, there was a new update! Do it again.\n tryApplyUpdates(hasUpdates ? _client.onBuildOk : onHotUpdateSuccess);\n } else {\n (0, _client).onBuildOk();\n\n if (undefined) {\n afterApplyUpdates(function () {\n if (self.__NEXT_HMR_CB) {\n self.__NEXT_HMR_CB();\n\n self.__NEXT_HMR_CB = null;\n }\n });\n }\n }\n } // https://webpack.js.org/api/hot-module-replacement/#check\n\n\n module.hot.check(\n /* autoApply */\n true).then(function (updatedModules) {\n handleApplyUpdates(null, updatedModules);\n }, function (err) {\n handleApplyUpdates(err, null);\n });\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvZXJyb3Itb3ZlcmxheS9ob3QtZGV2LWNsaWVudC5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELGtCQUFBLEdBQWtCRSxPQUFsQjs7QUFDQSxJQUFJQyxPQUFPLEdBQUdDLG1CQUFPLENBQUMsZ0dBQUQsQ0FBckI7O0FBQ0EsSUFBSUMsVUFBVSxHQUFHQyxzQkFBc0IsQ0FBQ0YsbUJBQU8sQ0FBQyw0RkFBRCxDQUFSLENBQXZDOztBQUNBLElBQUlHLFVBQVUsR0FBR0gsbUJBQU8sQ0FBQyxtRkFBRCxDQUF4Qjs7QUFDQSxJQUFJSSxzQkFBc0IsR0FBR0Ysc0JBQXNCLENBQUNGLG1CQUFPLENBQUMsK0dBQUQsQ0FBUixDQUFuRDs7QUFDQSxJQUFJSyxPQUFPLEdBQUdILHNCQUFzQixDQUFDRixtQkFBTyxDQUFDLGtEQUFELENBQVIsQ0FBcEM7O0FBQ0EsU0FBU0Usc0JBQVQsQ0FBZ0NJLEdBQWhDLEVBQXFDO0FBQ2pDLFNBQU9BLEdBQUcsSUFBSUEsR0FBRyxDQUFDQyxVQUFYLEdBQXdCRCxHQUF4QixHQUE4QjtBQUNqQyxlQUFTQTtBQUR3QixHQUFyQztBQUdILEVBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNBLElBQUlFLGVBQWUsR0FBRyxLQUF0QjtBQUNBLElBQUlDLHFCQUFKOztBQUNBLFNBQVNYLE9BQVQsR0FBbUI7QUFDZixHQUFDLEdBQUdDLE9BQUosRUFBYVcsUUFBYjtBQUNBLEdBQUMsR0FBR1AsVUFBSixFQUFnQlEsa0JBQWhCLENBQW1DLFVBQUNDLEtBQUQsRUFBUztBQUN4QyxRQUFJQSxLQUFLLENBQUNDLElBQU4sQ0FBV0MsT0FBWCxDQUFtQixRQUFuQixNQUFpQyxDQUFDLENBQXRDLEVBQXlDOztBQUN6QyxRQUFJO0FBQ0FDLE1BQUFBLGNBQWMsQ0FBQ0gsS0FB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RCxZQUFBQSxJQUFJLENBQUNDLGFBQUw7O0FBQ0FELFlBQUFBLElBQUksQ0FBQ0MsYUFBTCxHQUFxQixJQUFyQjtBQUNIO0FBQ0osU0FMZ0IsQ0FBakI7QUFNSDtBQUNKO0FBQ0osR0F4Q3dDLENBeUN6Qzs7O0FBQ0FxQixFQUFBQSxVQUFBLENBQVdjLEtBQVg7QUFBaUI7QUFBZ0IsTUFBakMsRUFBdUNDLElBQXZDLENBQTRDLFVBQUNMLGNBQUQsRUFBa0I7QUFDMURGLElBQUFBLGtCQUFrQixDQUFDLElBQUQsRUFBT0UsY0FBUCxDQUFsQjtBQUNILEdBRkQsRUFFRyxVQUFDRCxHQUFELEVBQU87QUFDTkQsSUFBQUEsa0JBQWtCLENBQUNDLEdBQUQsRUFBTSxJQUFOLENBQWxCO0FBQ0gsR0FKRDtBQUtIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2Rldi9lcnJvci1vdmVybGF5L2hvdC1kZXYtY2xpZW50LmpzPzE2MDAiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSBjb25uZWN0O1xudmFyIF9jbGllbnQgPSByZXF1aXJlKFwiQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2NsaWVudFwiKTtcbnZhciBfc3RyaXBBbnNpID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL3N0cmlwLWFuc2lcIikpO1xudmFyIF93ZWJzb2NrZXQgPSByZXF1aXJlKFwiLi93ZWJzb2NrZXRcIik7XG52YXIgX2Zvcm1hdFdlYnBhY2tNZXNzYWdlcyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vZm9ybWF0LXdlYnBhY2stbWVzc2FnZXNcIikpO1xudmFyIF9yb3V0ZXIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJuZXh0L3JvdXRlclwiKSk7XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG4vLyBUaGlzIGFsdGVybmF0aXZlIFdlYnBhY2tEZXZTZXJ2ZXIgY29tYmluZXMgdGhlIGZ1bmN0aW9uYWxpdHkgb2Y6XG4vLyBodHRwczovL2dpdGh1Yi5jb20vd2VicGFjay93ZWJwYWNrLWRldi1zZXJ2ZXIvYmxvYi93ZWJwYWNrLTEvY2xpZW50L2luZGV4LmpzXG4vLyBodHRwczovL2dpdGh1Yi5jb20vd2VicGFjay93ZWJwYWNrL2Jsb2Ivd2VicGFjay0xL2hvdC9kZXYtc2VydmVyLmpzXG4vLyBJdCBvbmx5IHN1cHBvcnRzIHRoZWlyIHNpbXBsZXN0IGNvbmZpZ3VyYXRpb24gKGhvdCB1cGRhdGVzIG9uIHNhbWUgc2VydmVyKS5cbi8vIEl0IG1ha2VzIHNvbWUgb3BpbmlvbmF0ZWQgY2hvaWNlcyBvbiB0b3AsIGxpa2UgYWRkaW5nIGEgc3ludGF4IGVycm9yIG92ZXJsYXlcbi8vIHRoYXQgbG9va3Mgc2ltaWxhciB0byBvdXIgY29uc29sZSBvdXRwdXQuIFRoZSBlcnJvciBvdmVybGF5IGlzIGluc3BpcmVkIGJ5OlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2dsZW5qYW1pbi93ZWJwYWNrLWhvdC1taWRkbGV3YXJlXG5sZXQgaGFkUnVudGltZUVycm9yID0gZmFsc2U7XG5sZXQgY3VzdG9tSG1yRXZlbnRIYW5kbGVyO1xuZnVuY3Rpb24gY29ubmVjdCgpIHtcbiAgICAoMCwgX2NsaWVudCkucmVnaXN0ZXIoKTtcbiAgICAoMCwgX3dlYnNvY2tldCkuYWRkTWVzc2FnZUxpc3RlbmVyKChldmVudCk9PntcbiAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZignYWN0aW9uJykgPT09IC0xKSByZXR1cm47XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBwcm9jZXNzTWVzc2FnZShldmVudCk7XG4gICAgICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ0ludmFsaWQgSE1SIG1lc3NhZ2U6ICcgKyBldmVudC5kYXRhICsgJ1xcbicgKyBleCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgICBzdWJzY3JpYmVUb0htckV2ZW50IChoYW5kbGVyKSB7XG4gICAgICAgICAgICBjdXN0b21IbXJFdmVudEhhbmRsZXIgPSBoYW5kbGVyO1xuICAgICAgICB9LFxuICAgICAgICBvblVucmVjb3ZlcmFibGVFcnJvciAoKSB7XG4gICAgICAgICAgICBoYWRSdW50aW1lRXJyb3IgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfTtcbn1cbi8vIFJlbWVtYmVyIHNvbWUgc3RhdGUgcmVsYXRlZCB0byBob3QgbW9kdWxlIHJlcGxhY2VtZW50LlxudmFyIGlzRmlyc3RDb21waWxhdGlvbiA9IHRydWU7XG52YXIgbW9zdFJlY2VudENvbXBpbGF0aW9uSGFzaCA9IG51bGw7XG52YXIgaGFzQ29tcGlsZUVycm9ycyA9IGZhbHNlO1xuZnVuY3Rpb24gY2xlYXJPdXRkYXRlZEVycm9ycygpIHtcbiAgICAvLyBDbGVhbiB1cCBvdXRkYXRlZCBjb21waWxlIGVycm9ycywgaWYgYW55LlxuICAgIGlmICh0eXBlb2YgY29uc29sZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIGNvbnNvbGUuY2xlYXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgaWYgKGhhc0NvbXBpbGVFcnJvcnMpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuY2xlYXIoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIFN1Y2Nlc3NmdWwgY29tcGlsYXRpb24uXG5mdW5jdGlvbiBoYW5kbGVTdWNjZXNzKCkge1xuICAgIGNsZWFyT3V0ZGF0ZWRFcnJvcnMoKTtcbiAgICBjb25zdCBpc0hvdFVwZGF0ZSA9ICFpc0ZpcnN0Q29tcGlsYXRpb24gfHwgX3JvdXRlci5kZWZhdWx0LnBhdGhuYW1lICE9PSAnL19lcnJvcicgJiYgaXNVcGRhdGVBdmFpbGFibGUoKTtcbiAgICBpc0ZpcnN0Q29tcGlsYXRpb24gPSBmYWxzZTtcbiAgICBoYXNDb21waWxlRXJyb3JzID0gZmFsc2U7XG4gICAgLy8gQXR0ZW1wdCB0byBhcHBseSBob3QgdXBkYXRlcyBvciByZWxvYWQuXG4gICAgaWYgKGlzSG90VXBkYXRlKSB7XG4gICAgICAgIHRyeUFwcGx5VXBkYXRlcyhmdW5jdGlvbiBvblN1Y2Nlc3NmdWxIb3RVcGRhdGUoaGFzVXBkYXRlcykge1xuICAgICAgICAgICAgLy8gT25seSBkaXNtaXNzIGl0IHdoZW4gd2UncmUgc3VyZSBpdCdzIGEgaG90IHVwZGF0ZS5cbiAgICAgICAgICAgIC8vIE90aGVyd2lzZSBpdCB3b3VsZCBmbGlja2VyIHJpZ2h0IGJlZm9yZSB0aGUgcmVsb2FkLlxuICAgICAgICAgICAgb25GYXN0UmVmcmVzaChoYXNVcGRhdGVzKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuLy8gQ29tcGlsYXRpb24gd2l0aCB3YXJuaW5ncyAoZS5nLiBFU0xpbnQpLlxuZnVuY3Rpb24gaGFuZGxlV2FybmluZ3Mod2FybmluZ3MpIHtcbiAgICBjbGVhck91dGRhdGVkRXJyb3JzKCk7XG4gICAgY29uc3QgaXNIb3RVcGRhdGUgPSAhaXNGaXJzdENvbXBpbGF0aW9uO1xuICAgIGlzRmlyc3RDb21waWxhdGlvbiA9IGZhbHNlO1xuICAgIGhhc0NvbXBpbGVFcnJvcnMgPSBmYWxzZTtcbiAgICBmdW5jdGlvbiBwcmludFdhcm5pbmdzKCkge1xuICAgICAgICAvLyBQcmludCB3YXJuaW5ncyB0byB0aGUgY29uc29sZS5cbiAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gKDAsIF9mb3JtYXRXZWJwYWNrTWVzc2FnZXMpLmRlZmF1bHQoe1xuICAgICAgICAgICAgd2FybmluZ3M6IHdhcm5pbmdzLFxuICAgICAgICAgICAgZXJyb3JzOiBbXVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgY29uc29sZS53YXJuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgZm9ybWF0dGVkLndhcm5pbmdzLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgICAgICAgICBpZiAoaSA9PT0gNSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ1RoZXJlIHdlcmUgbW9yZSB3YXJuaW5ncyBpbiBvdGhlciBmaWxlcy5cXG4nICsgJ1lvdSBjYW4gZmluZCBhIGNvbXBsZXRlIGxvZyBpbiB0aGUgdGVybWluYWwuJyk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oKDAsIF9zdHJpcEFuc2kpLmRlZmF1bHQoZm9ybWF0dGVkLndhcm5pbmdzW2ldKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHJpbnRXYXJuaW5ncygpO1xuICAgIC8vIEF0dGVtcHQgdG8gYXBwbHkgaG90IHVwZGF0ZXMgb3IgcmVsb2FkLlxuICAgIGlmIChpc0hvdFVwZGF0ZSkge1xuICAgICAgICB0cnlBcHBseVVwZGF0ZXMoZnVuY3Rpb24gb25TdWNjZXNzZnVsSG90VXBkYXRlKGhhc1VwZGF0ZXMpIHtcbiAgICAgICAgICAgIC8vIE9ubHkgZGlzbWlzcyBpdCB3aGVuIHdlJ3JlIHN1cmUgaXQncyBhIGhvdCB1cGRhdGUuXG4gICAgICAgICAgICAvLyBPdGhlcndpc2UgaXQgd291bGQgZmxpY2tlciByaWdodCBiZWZvcmUgdGhlIHJlbG9hZC5cbiAgICAgICAgICAgIG9uRmFzdFJlZnJlc2goaGFzVXBkYXRlcyk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbi8vIENvbXBpbGF0aW9uIHdpdGggZXJyb3JzIChlLmcuIHN5bnRheCBlcnJvciBvciBtaXNzaW5nIG1vZHVsZXMpLlxuZnVuY3Rpb24gaGFuZGxlRXJyb3JzKGVycm9ycykge1xuICAgIGNsZWFyT3V0ZGF0ZWRFcnJvcnMoKTtcbiAgICBpc0ZpcnN0Q29tcGlsYXRpb24gPSBmYWxzZTtcbiAgICBoYXNDb21waWxlRXJyb3JzID0gdHJ1ZTtcbiAgICAvLyBcIk1hc3NhZ2VcIiB3ZWJwYWNrIG1lc3NhZ2VzLlxuICAgIHZhciBmb3JtYXR0ZWQgPSAoMCwgX2Zvcm1hdFdlYnBhY2tNZXNzYWdlcykuZGVmYXVsdCh7XG4gICAgICAgIGVycm9yczogZXJyb3JzLFxuICAgICAgICB3YXJuaW5nczogW11cbiAgICB9KTtcbiAgICAvLyBPbmx5IHNob3cgdGhlIGZpcnN0IGVycm9yLlxuICAgICgwLCBfY2xpZW50KS5vbkJ1aWxkRXJyb3IoZm9ybWF0dGVkLmVycm9yc1swXSk7XG4gICAgLy8gQWxzbyBsb2cgdGhlbSB0byB0aGUgY29uc29sZS5cbiAgICBpZiAodHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBjb25zb2xlLmVycm9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCBmb3JtYXR0ZWQuZXJyb3JzLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoKDAsIF9zdHJpcEFuc2kpLmRlZmF1bHQoZm9ybWF0dGVkLmVycm9yc1tpXSkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIERvIG5vdCBhdHRlbXB0IHRvIHJlbG9hZCBub3cuXG4gICAgLy8gV2Ugd2lsbCByZWxvYWQgb24gbmV4dCBzdWNjZXNzIGluc3RlYWQuXG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9URVNUX01PREUpIHtcbiAgICAgICAgaWYgKHNlbGYuX19ORVhUX0hNUl9DQikge1xuICAgICAgICAgICAgc2VsZi5fX05FWFRfSE1SX0NCKGZvcm1hdHRlZC5lcnJvcnNbMF0pO1xuICAgICAgICAgICAgc2VsZi5fX05FWFRfSE1SX0NCID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbn1cbmxldCBzdGFydExhdGVuY3kgPSB1bmRlZmluZWQ7XG5mdW5jdGlvbiBvbkZhc3RSZWZyZXNoKGhhc1VwZGF0ZXMpIHtcbiAgICAoMCwgX2NsaWVudCkub25CdWlsZE9rKCk7XG4gICAgaWYgKGhhc1VwZGF0ZXMpIHtcbiAgICAgICAgKDAsIF9jbGllbnQpLm9uUmVmcmVzaCgpO1xuICAgIH1cbiAgICBpZiAoc3RhcnRMYXRlbmN5KSB7XG4gICAgICAgIGNvbnN0IGxhdGVuY3kgPSBEYXRlLm5vdygpIC0gc3RhcnRMYXRlbmN5O1xuICAgICAgICBjb25zb2xlLmxvZyhgW0Zhc3QgUmVmcmVzaF0gZG9uZSBpbiAke2xhdGVuY3l9bXNgKTtcbiAgICAgICAgaWYgKHNlbGYuX19ORVhUX0hNUl9MQVRFTkNZX0NCKSB7XG4gICAgICAgICAgICBzZWxmLl9fTkVYVF9ITVJfTEFURU5DWV9DQihsYXRlbmN5KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIFRoZXJlIGlzIGEgbmV3ZXIgdmVyc2lvbiBvZiB0aGUgY29kZSBhdmFpbGFibGUuXG5mdW5jdGlvbiBoYW5kbGVBdmFpbGFibGVIYXNoKGhhc2gpIHtcbiAgICAvLyBVcGRhdGUgbGFzdCBrbm93biBjb21waWxhdGlvbiBoYXNoLlxuICAgIG1vc3RSZWNlbnRDb21waWxhdGlvbkhhc2ggPSBoYXNoO1xufVxuLy8gSGFuZGxlIG1lc3NhZ2VzIGZyb20gdGhlIHNlcnZlci5cbmZ1bmN0aW9uIHByb2Nlc3NNZXNzYWdlKGUpIHtcbiAgICBjb25zdCBvYmogPSBKU09OLnBhcnNlKGUuZGF0YSk7XG4gICAgc3dpdGNoKG9iai5hY3Rpb24pe1xuICAgICAgICBjYXNlICdidWlsZGluZyc6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc3RhcnRMYXRlbmN5ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnW0Zhc3QgUmVmcmVzaF0gcmVidWlsZGluZycpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICBjYXNlICdidWlsdCc6XG4gICAgICAgIGNhc2UgJ3N5bmMnOlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGlmIChvYmouaGFzaCkge1xuICAgICAgICAgICAgICAgICAgICBoYW5kbGVBdmFpbGFibGVIYXNoKG9iai5oYXNoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgeyBlcnJvcnMgLCB3YXJuaW5ncyAgfSA9IG9iajtcbiAgICAgICAgICAgICAgICBjb25zdCBoYXNFcnJvcnMgPSBCb29sZWFuKGVycm9ycyAmJiBlcnJvcnMubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICBpZiAoaGFzRXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBoYW5kbGVFcnJvcnMoZXJyb3JzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgaGFzV2FybmluZ3MgPSBCb29sZWFuKHdhcm5pbmdzICYmIHdhcm5pbmdzLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgaWYgKGhhc1dhcm5pbmdzKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBoYW5kbGVXYXJuaW5ncyh3YXJuaW5ncyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBoYW5kbGVTdWNjZXNzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWYgKGN1c3RvbUhtckV2ZW50SGFuZGxlcikge1xuICAgICAgICAgICAgICAgICAgICBjdXN0b21IbXJFdmVudEhhbmRsZXIob2JqKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgIH1cbn1cbi8vIElzIHRoZXJlIGEgbmV3ZXIgdmVyc2lvbiBvZiB0aGlzIGNvZGUgYXZhaWxhYmxlP1xuZnVuY3Rpb24gaXNVcGRhdGVBdmFpbGFibGUoKSB7XG4gICAgLyogZ2xvYmFscyBfX3dlYnBhY2tfaGFzaF9fICovIC8vIF9fd2VicGFja19oYXNoX18gaXMgdGhlIGhhc2ggb2YgdGhlIGN1cnJlbnQgY29tcGlsYXRpb24uXG4gICAgLy8gSXQncyBhIGdsb2JhbCB2YXJpYWJsZSBpbmplY3RlZCBieSBXZWJwYWNrLlxuICAgIHJldHVybiBtb3N0UmVjZW50Q29tcGlsYXRpb25IYXNoICE9PSBfX3dlYnBhY2tfaGFzaF9fO1xufVxuLy8gV2VicGFjayBkaXNhbGxvd3MgdXBkYXRlcyBpbiBvdGhlciBzdGF0ZXMuXG5mdW5jdGlvbiBjYW5BcHBseVVwZGF0ZXMoKSB7XG4gICAgcmV0dXJuIG1vZHVsZS5ob3Quc3RhdHVzKCkgPT09ICdpZGxlJztcbn1cbmZ1bmN0aW9uIGFmdGVyQXBwbHlVcGRhdGVzKGZuKSB7XG4gICAgaWYgKGNhbkFwcGx5VXBkYXRlcygpKSB7XG4gICAgICAgIGZuKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgZnVuY3Rpb24gaGFuZGxlcihzdGF0dXMpIHtcbiAgICAgICAgICAgIGlmIChzdGF0dXMgPT09ICdpZGxlJykge1xuICAgICAgICAgICAgICAgIG1vZHVsZS5ob3QucmVtb3ZlU3RhdHVzSGFuZGxlcihoYW5kbGVyKTtcbiAgICAgICAgICAgICAgICBmbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIG1vZHVsZS5ob3QuYWRkU3RhdHVzSGFuZGxlcihoYW5kbGVyKTtcbiAgICB9XG59XG4vLyBBdHRlbXB0IHRvIHVwZGF0ZSBjb2RlIG9uIHRoZSBmbHksIGZhbGwgYmFjayB0byBhIGhhcmQgcmVsb2FkLlxuZnVuY3Rpb24gdHJ5QXBwbHlVcGRhdGVzKG9uSG90VXBkYXRlU3VjY2Vzcykge1xuICAgIGlmICghbW9kdWxlLmhvdCkge1xuICAgICAgICAvLyBIb3RNb2R1bGVSZXBsYWNlbWVudFBsdWdpbiBpcyBub3QgaW4gV2VicGFjayBjb25maWd1cmF0aW9uLlxuICAgICAgICBjb25zb2xlLmVycm9yKCdIb3RNb2R1bGVSZXBsYWNlbWVudFBsdWdpbiBpcyBub3QgaW4gV2VicGFjayBjb25maWd1cmF0aW9uLicpO1xuICAgICAgICAvLyB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCFpc1VwZGF0ZUF2YWlsYWJsZSgpIHx8ICFjYW5BcHBseVVwZGF0ZXMoKSkge1xuICAgICAgICAoMCwgX2NsaWVudCkub25CdWlsZE9rKCk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZnVuY3Rpb24gaGFuZGxlQXBwbHlVcGRhdGVzKGVyciwgdXBkYXRlZE1vZHVsZXMpIHtcbiAgICAgICAgaWYgKGVyciB8fCBoYWRSdW50aW1lRXJyb3IgfHwgIXVwZGF0ZWRNb2R1bGVzKSB7XG4gICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdbRmFzdCBSZWZyZXNoXSBwZXJmb3JtaW5nIGZ1bGwgcmVsb2FkXFxuXFxuJyArIFwiRmFzdCBSZWZyZXNoIHdpbGwgcGVyZm9ybSBhIGZ1bGwgcmVsb2FkIHdoZW4geW91IGVkaXQgYSBmaWxlIHRoYXQncyBpbXBvcnRlZCBieSBtb2R1bGVzIG91dHNpZGUgb2YgdGhlIFJlYWN0IHJlbmRlcmluZyB0cmVlLlxcblwiICsgJ1lvdSBtaWdodCBoYXZlIGEgZmlsZSB3aGljaCBleHBvcnRzIGEgUmVhY3QgY29tcG9uZW50IGJ1dCBhbHNvIGV4cG9ydHMgYSB2YWx1ZSB0aGF0IGlzIGltcG9ydGVkIGJ5IGEgbm9uLVJlYWN0IGNvbXBvbmVudCBmaWxlLlxcbicgKyAnQ29uc2lkZXIgbWlncmF0aW5nIHRoZSBub24tUmVhY3QgY29tcG9uZW50IGV4cG9ydCB0byBhIHNlcGFyYXRlIGZpbGUgYW5kIGltcG9ydGluZyBpdCBpbnRvIGJvdGggZmlsZXMuXFxuXFxuJyArICdJdCBpcyBhbHNvIHBvc3NpYmxlIHRoZSBwYXJlbnQgY29tcG9uZW50IG9mIHRoZSBjb21wb25lbnQgeW91IGVkaXRlZCBpcyBhIGNsYXNzIGNvbXBvbmVudCwgd2hpY2ggZGlzYWJsZXMgRmFzdCBSZWZyZXNoLlxcbicgKyAnRmFzdCBSZWZyZXNoIHJlcXVpcmVzIGF0IGxlYXN0IG9uZSBwYXJlbnQgZnVuY3Rpb24gY29tcG9uZW50IGluIHlvdXIgUmVhY3QgdHJlZS4nKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaGFkUnVudGltZUVycm9yKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdbRmFzdCBSZWZyZXNoXSBwZXJmb3JtaW5nIGZ1bGwgcmVsb2FkIGJlY2F1c2UgeW91ciBhcHBsaWNhdGlvbiBoYWQgYW4gdW5yZWNvdmVyYWJsZSBlcnJvcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGhhc1VwZGF0ZXMgPSBCb29sZWFuKHVwZGF0ZWRNb2R1bGVzLmxlbmd0aCk7XG4gICAgICAgIGlmICh0eXBlb2Ygb25Ib3RVcGRhdGVTdWNjZXNzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAvLyBNYXliZSB3ZSB3YW50IHRvIGRvIHNvbWV0aGluZy5cbiAgICAgICAgICAgIG9uSG90VXBkYXRlU3VjY2VzcyhoYXNVcGRhdGVzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNVcGRhdGVBdmFpbGFibGUoKSkge1xuICAgICAgICAgICAgLy8gV2hpbGUgd2Ugd2VyZSB1cGRhdGluZywgdGhlcmUgd2FzIGEgbmV3IHVwZGF0ZSEgRG8gaXQgYWdhaW4uXG4gICAgICAgICAgICB0cnlBcHBseVVwZGF0ZXMoaGFzVXBkYXRlcyA/IF9jbGllbnQub25CdWlsZE9rIDogb25Ib3RVcGRhdGVTdWNjZXNzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICgwLCBfY2xpZW50KS5vbkJ1aWxkT2soKTtcbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfVEVTVF9NT0RFKSB7XG4gICAgICAgICAgICAgICAgYWZ0ZXJBcHBseVVwZGF0ZXMoKCk9PntcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGYuX19ORVhUX0hNUl9DQikge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fX05FWFRfSE1SX0NCKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9fTkVYVF9ITVJfQ0IgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gaHR0cHM6Ly93ZWJwYWNrLmpzLm9yZy9hcGkvaG90LW1vZHVsZS1yZXBsYWNlbWVudC8jY2hlY2tcbiAgICBtb2R1bGUuaG90LmNoZWNrKC8qIGF1dG9BcHBseSAqLyB0cnVlKS50aGVuKCh1cGRhdGVkTW9kdWxlcyk9PntcbiAgICAgICAgaGFuZGxlQXBwbHlVcGRhdGVzKG51bGwsIHVwZGF0ZWRNb2R1bGVzKTtcbiAgICB9LCAoZXJyKT0+e1xuICAgICAgICBoYW5kbGVBcHBseVVwZGF0ZXMoZXJyLCBudWxsKTtcbiAgICB9KTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aG90LWRldi1jbGllbnQuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiY29ubmVjdCIsIl9jbGllbnQiLCJyZXF1aXJlIiwiX3N0cmlwQW5zaSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfd2Vic29ja2V0IiwiX2Zvcm1hdFdlYnBhY2tNZXNzYWdlcyIsIl9yb3V0ZXIiLCJvYmoiLCJfX2VzTW9kdWxlIiwiaGFkUnVudGltZUVycm9yIiwiY3VzdG9tSG1yRXZlbnRIYW5kbGVyIiwicmVnaXN0ZXIiLCJhZGRNZXNzYWdlTGlzdGVuZXIiLCJldmVudCIsImRhdGEiLCJpbmRleE9mIiwicHJvY2Vzc01lc3NhZ2UiLCJleCIsImNvbnNvbGUiLCJ3YXJuIiwic3Vic2NyaWJlVG9IbXJFdmVudCIsImhhbmRsZXIiLCJvblVucmVjb3ZlcmFibGVFcnJvciIsImlzRmlyc3RDb21waWxhdGlvbiIsIm1vc3RSZWNlbnRDb21waWxhdGlvbkhhc2giLCJoYXNDb21waWxlRXJyb3JzIiwiY2xlYXJPdXRkYXRlZEVycm9ycyIsImNsZWFyIiwiaGFuZGxlU3VjY2VzcyIsImlzSG90VXBkYXRlIiwicGF0aG5hbWUiLCJpc1VwZGF0ZUF2YWlsYWJsZSIsInRyeUFwcGx5VXBkYXRlcyIsIm9uU3VjY2Vzc2Z1bEhvdFVwZGF0ZSIsImhhc1VwZGF0ZXMiLCJvbkZhc3RSZWZyZXNoIiwiaGFuZGxlV2FybmluZ3MiLCJ3YXJuaW5ncyIsInByaW50V2FybmluZ3MiLCJmb3JtYXR0ZWQiLCJlcnJvcnMiLCJpIiwibGVuZ3RoIiwiaGFuZGxlRXJyb3JzIiwib25CdWlsZEVycm9yIiwiZXJyb3IiLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX1RFU1RfTU9ERSIsInNlbGYiLCJfX05FWFRfSE1SX0NCIiwic3RhcnRMYXRlbmN5IiwidW5kZWZpbmVkIiwib25CdWlsZE9rIiwib25SZWZyZXNoIiwibGF0ZW5jeSIsIkRhdGUiLCJub3ciLCJsb2ciLCJfX05FWFRfSE1SX0xBVEVOQ1lfQ0IiLCJoYW5kbGVBdmFpbGFibGVIYXNoIiwiaGFzaCIsImUiLCJKU09OIiwicGFyc2UiLCJhY3Rpb24iLCJoYXNFcnJvcnMiLCJCb29sZWFuIiwiaGFzV2FybmluZ3MiLCJfX3dlYnBhY2tfaGFzaF9fIiwiY2FuQXBwbHlVcGRhdGVzIiwibW9kdWxlIiwiaG90Iiwic3RhdHVzIiwiYWZ0ZXJBcHBseVVwZGF0ZXMiLCJmbiIsInJlbW92ZVN0YXR1c0hhbmRsZXIiLCJhZGRTdGF0dXNIYW5kbGVyIiwib25Ib3RVcGRhdGVTdWNjZXNzIiwiaGFuZGxlQXBwbHlVcGRhdGVzIiwiZXJyIiwidXBkYXRlZE1vZHVsZXMiLCJ3aW5kb3ciLCJsb2NhdGlvbiIsInJlbG9hZCIsImNoZWNrIiwidGhlbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/error-overlay/hot-dev-client.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/dev/error-overlay/websocket.js": +/*!**********************************************************************!*\ + !*** ./node_modules/next/dist/client/dev/error-overlay/websocket.js ***! + \**********************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.addMessageListener = addMessageListener;\nexports.sendMessage = sendMessage;\nexports.connectHMR = connectHMR;\nvar source;\nvar eventCallbacks = [];\nvar lastActivity = Date.now();\n\nfunction getSocketProtocol(assetPrefix) {\n var protocol = location.protocol;\n\n try {\n // assetPrefix is a url\n protocol = new URL(assetPrefix).protocol;\n } catch (_) {}\n\n return protocol === 'http:' ? 'ws' : 'wss';\n}\n\nfunction addMessageListener(cb) {\n eventCallbacks.push(cb);\n}\n\nfunction sendMessage(data) {\n if (!source || source.readyState !== source.OPEN) return;\n return source.send(data);\n}\n\nfunction connectHMR(options) {\n if (!options.timeout) {\n options.timeout = 5 * 1000;\n }\n\n init();\n var timer = setInterval(function () {\n if (Date.now() - lastActivity > options.timeout) {\n handleDisconnect();\n }\n }, options.timeout / 2);\n\n function init() {\n if (source) source.close();\n var _location = location,\n hostname = _location.hostname,\n port = _location.port;\n var protocol = getSocketProtocol(options.assetPrefix || '');\n var assetPrefix = options.assetPrefix.replace(/^\\/+/, '');\n var url = \"\".concat(protocol, \"://\").concat(hostname, \":\").concat(port).concat(assetPrefix ? \"/\".concat(assetPrefix) : '');\n\n if (assetPrefix.startsWith('http')) {\n url = \"\".concat(protocol, \"://\").concat(assetPrefix.split('://')[1]);\n }\n\n source = new window.WebSocket(\"\".concat(url).concat(options.path));\n source.onopen = handleOnline;\n source.onerror = handleDisconnect;\n source.onmessage = handleMessage;\n }\n\n function handleOnline() {\n if (options.log) console.log('[HMR] connected');\n lastActivity = Date.now();\n }\n\n function handleMessage(event) {\n lastActivity = Date.now();\n eventCallbacks.forEach(function (cb) {\n cb(event);\n });\n }\n\n function handleDisconnect() {\n clearInterval(timer);\n source.close();\n setTimeout(init, options.timeout);\n }\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvZXJyb3Itb3ZlcmxheS93ZWJzb2NrZXQuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCwwQkFBQSxHQUE2QkUsa0JBQTdCO0FBQ0FGLG1CQUFBLEdBQXNCRyxXQUF0QjtBQUNBSCxrQkFBQSxHQUFxQkksVUFBckI7QUFDQSxJQUFJQyxNQUFKO0FBQ0EsSUFBTUMsY0FBYyxHQUFHLEVBQXZCO0FBQ0EsSUFBSUMsWUFBWSxHQUFHQyxJQUFJLENBQUNDLEdBQUwsRUFBbkI7O0FBQ0EsU0FBU0MsaUJBQVQsQ0FBMkJDLFdBQTNCLEVBQXdDO0FBQ3BDLE1BQUlDLFFBQVEsR0FBR0MsUUFBUSxDQUFDRCxRQUF4Qjs7QUFDQSxNQUFJO0FBQ0E7QUFDQUEsSUFBQUEsUUFBUSxHQUFHLElBQUlFLEdBQUosQ0FBUUgsV0FBUixFQUFxQkMsUUFBaEM7QUFDSCxHQUhELENBR0UsT0FBT0csQ0FBUCxFQUFVLENBQ1g7O0FBQ0QsU0FBT0gsUUFBUSxLQUFLLE9BQWIsR0FBdUIsSUFBdkIsR0FBOEIsS0FBckM7QUFDSDs7QUFDRCxTQUFTVixrQkFBVCxDQUE0QmMsRUFBNUIsRUFBZ0M7QUFDNUJWLEVBQUFBLGNBQWMsQ0FBQ1csSUFBZixDQUFvQkQsRUFBcEI7QUFDSDs7QUFDRCxTQUFTYixXQUFULENBQXFCZSxJQUFyQixFQUEyQjtBQUN2QixNQUFJLENBQUNiLE1BQUQsSUFBV0EsTUFBTSxDQUFDYyxVQUFQLEtBQXNCZCxNQUFNLENBQUNlLElBQTVDLEVBQWtEO0FBQ2xELFNBQU9mLE1BQU0sQ0FBQ2dCLElBQVAsQ0FBWUgsSUFBWixDQUFQO0FBQ0g7O0FBQ0QsU0FBU2QsVUFBVCxDQUFvQmtCLE9BQXBCLEVBQTZCO0FBQ3pCLE1BQUksQ0FBQ0EsT0FBTyxDQUFDQyxPQUFiLEVBQXNCO0FBQ2xCRCxJQUFBQSxPQUFPLENBQUNDLE9BQVIsR0FBa0IsSUFBSSxJQUF0QjtBQUNIOztBQUNEQyxFQUFBQSxJQUFJO0FBQ0osTUFBSUMsS0FBSyxHQUFHQyxXQUFXLENBQUMsWUFBVztBQUMvQixRQUFJbEIsSUFBSSxDQUFDQyxHQUFMLEtBQWFGLFlBQWIsR0FBNEJlLE9BQU8sQ0FBQ0MsT0FBeEMsRUFBaUQ7QUFDN0NJLE1BQUFBLGdCQUFnQjtBQUNuQjtBQUNKLEdBSnNCLEVBSXBCTCxPQUFPLENBQUNDLE9BQVIsR0FBa0IsQ0FKRSxDQUF2Qjs7QUFLQSxXQUFTQyxJQUFULEdBQWdCO0FBQ1osUUFBSW5CLE1BQUosRUFBWUEsTUFBTSxDQUFDdUIsS0FBUDtBQUNaLG9CQUE2QmYsUUFBN0I7QUFBQSxRQUFRZ0IsUUFBUixhQUFRQSxRQUFSO0FBQUEsUUFBbUJDLElBQW5CLGFBQW1CQSxJQUFuQjtBQUNBLFFBQU1sQixRQUFRLEdBQUdGLGlCQUFpQixDQUFDWSxPQUFPLENBQUNYLFdBQVIsSUFBdUIsRUFBeEIsQ0FBbEM7QUFDQSxRQUFNQSxXQUFXLEdBQUdXLE9BQU8sQ0FBQ1gsV0FBUixDQUFvQm9CLE9BQXBCLENBQTRCLE1BQTVCLEVBQW9DLEVBQXBDLENBQXBCO0FBQ0EsUUFBSUMsR0FBRyxhQUFNcEIsUUFBTixnQkFBb0JpQixRQUFwQixjQUFnQ0MsSUFBaEMsU0FBdUNuQixXQUFXLGNBQU9BLFdBQVAsSUFBdUIsRUFBekUsQ0FBUDs7QUFDQSxRQUFJQSxXQUFXLENBQUNzQixVQUFaLENBQXVCLE1BQXZCLENBQUosRUFBb0M7QUFDaENELE1BQUFBLEdBQUcsYUFBTXBCLFFBQU4sZ0JBQW9CRCxXQUFXLENBQUN1QixLQUFaLENBQWtCLEtBQWxCLEVBQXlCLENBQXpCLENBQXBCLENBQUg7QUFDSDs7QUFDRDdCLElBQUFBLE1BQU0sR0FBRyxJQUFJOEIsTUFBTSxDQUFDQyxTQUFYLFdBQXdCSixHQUF4QixTQUE4QlYsT0FBTyxDQUFDZSxJQUF0QyxFQUFUO0FBQ0FoQyxJQUFBQSxNQUFNLENBQUNpQyxNQUFQLEdBQWdCQyxZQUFoQjtBQUNBbEMsSUFBQUEsTUFBTSxDQUFDbUMsT0FBUCxHQUFpQmIsZ0JBQWpCO0FBQ0F0QixJQUFBQSxNQUFNLENBQUNvQyxTQUFQLEdBQW1CQyxhQUFuQjtBQUNIOztBQUNELFdBQVNILFlBQVQsR0FBd0I7QUFDcEIsUUFBSWpCLE9BQU8sQ0FBQ3FCLEdBQVosRUFBaUJDLE9BQU8sQ0FBQ0QsR0FBUixDQUFZLGlCQUFaO0FBQ2pCcEMsSUFBQUEsWUFBWSxHQUFHQyxJQUFJLENBQUNDLEdBQUwsRUFBZjtBQUNIOztBQUNELFdBQVNpQyxhQUFULENBQXVCRyxLQUF2QixFQUE4QjtBQUMxQnRDLElBQUFBLFlBQVksR0FBR0MsSUFBSSxDQUFDQyxHQUFMLEVBQWY7QUFDQUgsSUFBQUEsY0FBYyxDQUFDd0MsT0FBZixDQUF1QixVQUFDOUIsRUFBRCxFQUFNO0FBQ3pCQSxNQUFBQSxFQUFFLENBQUM2QixLQUFELENBQUY7QUFDSCxLQUZEO0FBR0g7O0FBQ0QsV0FBU2xCLGdCQUFULEdBQTRCO0FBQ3hCb0IsSUFBQUEsYUFBYSxDQUFDdEIsS0FBRCxDQUFiO0FBQ0FwQixJQUFBQSxNQUFNLENBQUN1QixLQUFQO0FBQ0FvQixJQUFBQSxVQUFVLENBQUN4QixJQUFELEVBQU9GLE9BQU8sQ0FBQ0MsT0FBZixDQUFWO0FBQ0g7QUFDSiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvZXJyb3Itb3ZlcmxheS93ZWJzb2NrZXQuanM/YTliZSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuYWRkTWVzc2FnZUxpc3RlbmVyID0gYWRkTWVzc2FnZUxpc3RlbmVyO1xuZXhwb3J0cy5zZW5kTWVzc2FnZSA9IHNlbmRNZXNzYWdlO1xuZXhwb3J0cy5jb25uZWN0SE1SID0gY29ubmVjdEhNUjtcbmxldCBzb3VyY2U7XG5jb25zdCBldmVudENhbGxiYWNrcyA9IFtdO1xubGV0IGxhc3RBY3Rpdml0eSA9IERhdGUubm93KCk7XG5mdW5jdGlvbiBnZXRTb2NrZXRQcm90b2NvbChhc3NldFByZWZpeCkge1xuICAgIGxldCBwcm90b2NvbCA9IGxvY2F0aW9uLnByb3RvY29sO1xuICAgIHRyeSB7XG4gICAgICAgIC8vIGFzc2V0UHJlZml4IGlzIGEgdXJsXG4gICAgICAgIHByb3RvY29sID0gbmV3IFVSTChhc3NldFByZWZpeCkucHJvdG9jb2w7XG4gICAgfSBjYXRjaCAoXykge1xuICAgIH1cbiAgICByZXR1cm4gcHJvdG9jb2wgPT09ICdodHRwOicgPyAnd3MnIDogJ3dzcyc7XG59XG5mdW5jdGlvbiBhZGRNZXNzYWdlTGlzdGVuZXIoY2IpIHtcbiAgICBldmVudENhbGxiYWNrcy5wdXNoKGNiKTtcbn1cbmZ1bmN0aW9uIHNlbmRNZXNzYWdlKGRhdGEpIHtcbiAgICBpZiAoIXNvdXJjZSB8fCBzb3VyY2UucmVhZHlTdGF0ZSAhPT0gc291cmNlLk9QRU4pIHJldHVybjtcbiAgICByZXR1cm4gc291cmNlLnNlbmQoZGF0YSk7XG59XG5mdW5jdGlvbiBjb25uZWN0SE1SKG9wdGlvbnMpIHtcbiAgICBpZiAoIW9wdGlvbnMudGltZW91dCkge1xuICAgICAgICBvcHRpb25zLnRpbWVvdXQgPSA1ICogMTAwMDtcbiAgICB9XG4gICAgaW5pdCgpO1xuICAgIGxldCB0aW1lciA9IHNldEludGVydmFsKGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAoRGF0ZS5ub3coKSAtIGxhc3RBY3Rpdml0eSA+IG9wdGlvbnMudGltZW91dCkge1xuICAgICAgICAgICAgaGFuZGxlRGlzY29ubmVjdCgpO1xuICAgICAgICB9XG4gICAgfSwgb3B0aW9ucy50aW1lb3V0IC8gMik7XG4gICAgZnVuY3Rpb24gaW5pdCgpIHtcbiAgICAgICAgaWYgKHNvdXJjZSkgc291cmNlLmNsb3NlKCk7XG4gICAgICAgIGNvbnN0IHsgaG9zdG5hbWUgLCBwb3J0ICB9ID0gbG9jYXRpb247XG4gICAgICAgIGNvbnN0IHByb3RvY29sID0gZ2V0U29ja2V0UHJvdG9jb2wob3B0aW9ucy5hc3NldFByZWZpeCB8fCAnJyk7XG4gICAgICAgIGNvbnN0IGFzc2V0UHJlZml4ID0gb3B0aW9ucy5hc3NldFByZWZpeC5yZXBsYWNlKC9eXFwvKy8sICcnKTtcbiAgICAgICAgbGV0IHVybCA9IGAke3Byb3RvY29sfTovLyR7aG9zdG5hbWV9OiR7cG9ydH0ke2Fzc2V0UHJlZml4ID8gYC8ke2Fzc2V0UHJlZml4fWAgOiAnJ31gO1xuICAgICAgICBpZiAoYXNzZXRQcmVmaXguc3RhcnRzV2l0aCgnaHR0cCcpKSB7XG4gICAgICAgICAgICB1cmwgPSBgJHtwcm90b2NvbH06Ly8ke2Fzc2V0UHJlZml4LnNwbGl0KCc6Ly8nKVsxXX1gO1xuICAgICAgICB9XG4gICAgICAgIHNvdXJjZSA9IG5ldyB3aW5kb3cuV2ViU29ja2V0KGAke3VybH0ke29wdGlvbnMucGF0aH1gKTtcbiAgICAgICAgc291cmNlLm9ub3BlbiA9IGhhbmRsZU9ubGluZTtcbiAgICAgICAgc291cmNlLm9uZXJyb3IgPSBoYW5kbGVEaXNjb25uZWN0O1xuICAgICAgICBzb3VyY2Uub25tZXNzYWdlID0gaGFuZGxlTWVzc2FnZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaGFuZGxlT25saW5lKCkge1xuICAgICAgICBpZiAob3B0aW9ucy5sb2cpIGNvbnNvbGUubG9nKCdbSE1SXSBjb25uZWN0ZWQnKTtcbiAgICAgICAgbGFzdEFjdGl2aXR5ID0gRGF0ZS5ub3coKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaGFuZGxlTWVzc2FnZShldmVudCkge1xuICAgICAgICBsYXN0QWN0aXZpdHkgPSBEYXRlLm5vdygpO1xuICAgICAgICBldmVudENhbGxiYWNrcy5mb3JFYWNoKChjYik9PntcbiAgICAgICAgICAgIGNiKGV2ZW50KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGhhbmRsZURpc2Nvbm5lY3QoKSB7XG4gICAgICAgIGNsZWFySW50ZXJ2YWwodGltZXIpO1xuICAgICAgICBzb3VyY2UuY2xvc2UoKTtcbiAgICAgICAgc2V0VGltZW91dChpbml0LCBvcHRpb25zLnRpbWVvdXQpO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9d2Vic29ja2V0LmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImFkZE1lc3NhZ2VMaXN0ZW5lciIsInNlbmRNZXNzYWdlIiwiY29ubmVjdEhNUiIsInNvdXJjZSIsImV2ZW50Q2FsbGJhY2tzIiwibGFzdEFjdGl2aXR5IiwiRGF0ZSIsIm5vdyIsImdldFNvY2tldFByb3RvY29sIiwiYXNzZXRQcmVmaXgiLCJwcm90b2NvbCIsImxvY2F0aW9uIiwiVVJMIiwiXyIsImNiIiwicHVzaCIsImRhdGEiLCJyZWFkeVN0YXRlIiwiT1BFTiIsInNlbmQiLCJvcHRpb25zIiwidGltZW91dCIsImluaXQiLCJ0aW1lciIsInNldEludGVydmFsIiwiaGFuZGxlRGlzY29ubmVjdCIsImNsb3NlIiwiaG9zdG5hbWUiLCJwb3J0IiwicmVwbGFjZSIsInVybCIsInN0YXJ0c1dpdGgiLCJzcGxpdCIsIndpbmRvdyIsIldlYlNvY2tldCIsInBhdGgiLCJvbm9wZW4iLCJoYW5kbGVPbmxpbmUiLCJvbmVycm9yIiwib25tZXNzYWdlIiwiaGFuZGxlTWVzc2FnZSIsImxvZyIsImNvbnNvbGUiLCJldmVudCIsImZvckVhY2giLCJjbGVhckludGVydmFsIiwic2V0VGltZW91dCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/error-overlay/websocket.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/dev/fouc.js": +/*!***************************************************!*\ + !*** ./node_modules/next/dist/client/dev/fouc.js ***! + \***************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.displayContent = displayContent;\n\nfunction displayContent(callback) {\n (window.requestAnimationFrame || setTimeout)(function () {\n for (var x = document.querySelectorAll('[data-next-hide-fouc]'), i = x.length; i--;) {\n x[i].parentNode.removeChild(x[i]);\n }\n\n if (callback) {\n callback();\n }\n });\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvZm91Yy5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELHNCQUFBLEdBQXlCRSxjQUF6Qjs7QUFDQSxTQUFTQSxjQUFULENBQXdCQyxRQUF4QixFQUFrQztBQUM5QixHQUFDQyxNQUFNLENBQUNDLHFCQUFQLElBQWdDQyxVQUFqQyxFQUE2QyxZQUFXO0FBQ3BELFNBQUksSUFBSUMsQ0FBQyxHQUFHQyxRQUFRLENBQUNDLGdCQUFULENBQTBCLHVCQUExQixDQUFSLEVBQTREQyxDQUFDLEdBQUdILENBQUMsQ0FBQ0ksTUFBdEUsRUFBOEVELENBQUMsRUFBL0UsR0FBbUY7QUFDL0VILE1BQUFBLENBQUMsQ0FBQ0csQ0FBRCxDQUFELENBQUtFLFVBQUwsQ0FBZ0JDLFdBQWhCLENBQTRCTixDQUFDLENBQUNHLENBQUQsQ0FBN0I7QUFDSDs7QUFDRCxRQUFJUCxRQUFKLEVBQWM7QUFDVkEsTUFBQUEsUUFBUTtBQUNYO0FBQ0osR0FQRDtBQVFIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2Rldi9mb3VjLmpzPzAwODciXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRpc3BsYXlDb250ZW50ID0gZGlzcGxheUNvbnRlbnQ7XG5mdW5jdGlvbiBkaXNwbGF5Q29udGVudChjYWxsYmFjaykge1xuICAgICh3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lIHx8IHNldFRpbWVvdXQpKGZ1bmN0aW9uKCkge1xuICAgICAgICBmb3IodmFyIHggPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1uZXh0LWhpZGUtZm91Y10nKSwgaSA9IHgubGVuZ3RoOyBpLS07KXtcbiAgICAgICAgICAgIHhbaV0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh4W2ldKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Zm91Yy5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJkaXNwbGF5Q29udGVudCIsImNhbGxiYWNrIiwid2luZG93IiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwic2V0VGltZW91dCIsIngiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJpIiwibGVuZ3RoIiwicGFyZW50Tm9kZSIsInJlbW92ZUNoaWxkIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/fouc.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/dev/on-demand-entries-client.js": +/*!***********************************************************************!*\ + !*** ./node_modules/next/dist/client/dev/on-demand-entries-client.js ***! + \***********************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _regeneratorRuntime = __webpack_require__(/*! ./node_modules/@babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _router = _interopRequireDefault(__webpack_require__(/*! next/router */ \"./node_modules/next/router.js\"));\n\nvar _websocket = __webpack_require__(/*! ./error-overlay/websocket */ \"./node_modules/next/dist/client/dev/error-overlay/websocket.js\");\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar _default = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n setInterval(function () {\n (0, _websocket).sendMessage(JSON.stringify({\n event: 'ping',\n page: _router[\"default\"].pathname\n }));\n }, 2500);\n (0, _websocket).addMessageListener(function (event) {\n if (event.data.indexOf('{') === -1) return;\n\n try {\n var payload = JSON.parse(event.data); // don't attempt fetching the page if we're already showing\n // the dev overlay as this can cause the error to be triggered\n // repeatedly\n\n if (payload.event === 'pong' && payload.invalid && !self.__NEXT_DATA__.err) {\n // Payload can be invalid even if the page does exist.\n // So, we check if it can be created.\n fetch(location.href, {\n credentials: 'same-origin'\n }).then(function (pageRes) {\n if (pageRes.status === 200) {\n // Page exists now, reload\n location.reload();\n } else {\n // Page doesn't exist\n if (self.__NEXT_DATA__.page === _router[\"default\"].pathname && _router[\"default\"].pathname !== '/_error') {\n // We are still on the page,\n // reload to show 404 error page\n location.reload();\n }\n }\n });\n }\n } catch (err) {\n console.error('on-demand-entries failed to parse response', err);\n }\n });\n\n case 2:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n}));\n\nexports[\"default\"] = _default;\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvb24tZGVtYW5kLWVudHJpZXMtY2xpZW50LmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7OztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxrQkFBQSxHQUFrQixLQUFLLENBQXZCOztBQUNBLElBQUlFLE9BQU8sR0FBR0Msc0JBQXNCLENBQUNDLG1CQUFPLENBQUMsa0RBQUQsQ0FBUixDQUFwQzs7QUFDQSxJQUFJQyxVQUFVLEdBQUdELG1CQUFPLENBQUMsaUdBQUQsQ0FBeEI7O0FBQ0EsU0FBU0Usa0JBQVQsQ0FBNEJDLEdBQTVCLEVBQWlDQyxPQUFqQyxFQUEwQ0MsTUFBMUMsRUFBa0RDLEtBQWxELEVBQXlEQyxNQUF6RCxFQUFpRUMsR0FBakUsRUFBc0VDLEdBQXRFLEVBQTJFO0FBQ3ZFLE1BQUk7QUFDQSxRQUFJQyxJQUFJLEdBQUdQLEdBQUcsQ0FBQ0ssR0FBRCxDQUFILENBQVNDLEdBQVQsQ0FBWDtBQUNBLFFBQUlaLEtBQUssR0FBR2EsSUFBSSxDQUFDYixLQUFqQjtBQUNILEdBSEQsQ0FHRSxPQUFPYyxLQUFQLEVBQWM7QUFDWk4sSUFBQUEsTUFBTSxDQUFDTSxLQUFELENBQU47QUFDQTtBQUNIOztBQUNELE1BQUlELElBQUksQ0FBQ0UsSUFBVCxFQUFlO0FBQ1hSLElBQUFBLE9BQU8sQ0FBQ1AsS0FBRCxDQUFQO0FBQ0gsR0FGRCxNQUVPO0FBQ0hnQixJQUFBQSxPQUFPLENBQUNULE9BQVIsQ0FBZ0JQLEtBQWhCLEVBQXVCaUIsSUFBdkIsQ0FBNEJSLEtBQTVCLEVBQW1DQyxNQUFuQztBQUNIO0FBQ0o7O0FBQ0QsU0FBU1EsaUJBQVQsQ0FBMkJDLEVBQTNCLEVBQStCO0FBQzNCLFNBQU8sWUFBVztBQUNkLFFBQUlDLElBQUksR0FBRyxJQUFYO0FBQUEsUUFBaUJDLElBQUksR0FBR0MsU0FBeEI7QUFDQSxXQUFPLElBQUlOLE9BQUosQ0FB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NkIsUUFBbEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvZGV2L29uLWRlbWFuZC1lbnRyaWVzLWNsaWVudC5qcz84NDVjIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gdm9pZCAwO1xudmFyIF9yb3V0ZXIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJuZXh0L3JvdXRlclwiKSk7XG52YXIgX3dlYnNvY2tldCA9IHJlcXVpcmUoXCIuL2Vycm9yLW92ZXJsYXkvd2Vic29ja2V0XCIpO1xuZnVuY3Rpb24gYXN5bmNHZW5lcmF0b3JTdGVwKGdlbiwgcmVzb2x2ZSwgcmVqZWN0LCBfbmV4dCwgX3Rocm93LCBrZXksIGFyZykge1xuICAgIHRyeSB7XG4gICAgICAgIHZhciBpbmZvID0gZ2VuW2tleV0oYXJnKTtcbiAgICAgICAgdmFyIHZhbHVlID0gaW5mby52YWx1ZTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChpbmZvLmRvbmUpIHtcbiAgICAgICAgcmVzb2x2ZSh2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKHZhbHVlKS50aGVuKF9uZXh0LCBfdGhyb3cpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIF9hc3luY1RvR2VuZXJhdG9yKGZuKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgc2VsZiA9IHRoaXMsIGFyZ3MgPSBhcmd1bWVudHM7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgICAgIHZhciBnZW4gPSBmbi5hcHBseShzZWxmLCBhcmdzKTtcbiAgICAgICAgICAgIGZ1bmN0aW9uIF9uZXh0KHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgYXN5bmNHZW5lcmF0b3JTdGVwKGdlbiwgcmVzb2x2ZSwgcmVqZWN0LCBfbmV4dCwgX3Rocm93LCBcIm5leHRcIiwgdmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZnVuY3Rpb24gX3Rocm93KGVycikge1xuICAgICAgICAgICAgICAgIGFzeW5jR2VuZXJhdG9yU3RlcChnZW4sIHJlc29sdmUsIHJlamVjdCwgX25leHQsIF90aHJvdywgXCJ0aHJvd1wiLCBlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgX25leHQodW5kZWZpbmVkKTtcbiAgICAgICAgfSk7XG4gICAgfTtcbn1cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbnZhciBfZGVmYXVsdCA9IF9hc3luY1RvR2VuZXJhdG9yKGZ1bmN0aW9uKigpIHtcbiAgICBzZXRJbnRlcnZhbCgoKT0+e1xuICAgICAgICAoMCwgX3dlYnNvY2tldCkuc2VuZE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgZXZlbnQ6ICdwaW5nJyxcbiAgICAgICAgICAgIHBhZ2U6IF9yb3V0ZXIuZGVmYXVsdC5wYXRobmFtZVxuICAgICAgICB9KSk7XG4gICAgfSwgMjUwMCk7XG4gICAgKDAsIF93ZWJzb2NrZXQpLmFkZE1lc3NhZ2VMaXN0ZW5lcigoZXZlbnQpPT57XG4gICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoJ3snKSA9PT0gLTEpIHJldHVybjtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHBheWxvYWQgPSBKU09OLnBhcnNlKGV2ZW50LmRhdGEpO1xuICAgICAgICAgICAgLy8gZG9uJ3QgYXR0ZW1wdCBmZXRjaGluZyB0aGUgcGFnZSBpZiB3ZSdyZSBhbHJlYWR5IHNob3dpbmdcbiAgICAgICAgICAgIC8vIHRoZSBkZXYgb3ZlcmxheSBhcyB0aGlzIGNhbiBjYXVzZSB0aGUgZXJyb3IgdG8gYmUgdHJpZ2dlcmVkXG4gICAgICAgICAgICAvLyByZXBlYXRlZGx5XG4gICAgICAgICAgICBpZiAocGF5bG9hZC5ldmVudCA9PT0gJ3BvbmcnICYmIHBheWxvYWQuaW52YWxpZCAmJiAhc2VsZi5fX05FWFRfREFUQV9fLmVycikge1xuICAgICAgICAgICAgICAgIC8vIFBheWxvYWQgY2FuIGJlIGludmFsaWQgZXZlbiBpZiB0aGUgcGFnZSBkb2VzIGV4aXN0LlxuICAgICAgICAgICAgICAgIC8vIFNvLCB3ZSBjaGVjayBpZiBpdCBjYW4gYmUgY3JlYXRlZC5cbiAgICAgICAgICAgICAgICBmZXRjaChsb2NhdGlvbi5ocmVmLCB7XG4gICAgICAgICAgICAgICAgICAgIGNyZWRlbnRpYWxzOiAnc2FtZS1vcmlnaW4nXG4gICAgICAgICAgICAgICAgfSkudGhlbigocGFnZVJlcyk9PntcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBhZ2VSZXMuc3RhdHVzID09PSAyMDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBhZ2UgZXhpc3RzIG5vdywgcmVsb2FkXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBhZ2UgZG9lc24ndCBleGlzdFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGYuX19ORVhUX0RBVEFfXy5wYWdlID09PSBfcm91dGVyLmRlZmF1bHQucGF0aG5hbWUgJiYgX3JvdXRlci5kZWZhdWx0LnBhdGhuYW1lICE9PSAnL19lcnJvcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBhcmUgc3RpbGwgb24gdGhlIHBhZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVsb2FkIHRvIHNob3cgNDA0IGVycm9yIHBhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ29uLWRlbWFuZC1lbnRyaWVzIGZhaWxlZCB0byBwYXJzZSByZXNwb25zZScsIGVycik7XG4gICAgICAgIH1cbiAgICB9KTtcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW9uLWRlbWFuZC1lbnRyaWVzLWNsaWVudC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJfcm91dGVyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfd2Vic29ja2V0IiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwicmVzb2x2ZSIsInJlamVjdCIsIl9uZXh0IiwiX3Rocm93Iiwia2V5IiwiYXJnIiwiaW5mbyIsImVycm9yIiwiZG9uZSIsIlByb21pc2UiLCJ0aGVuIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJmbiIsInNlbGYiLCJhcmdzIiwiYXJndW1lbnRzIiwiYXBwbHkiLCJlcnIiLCJ1bmRlZmluZWQiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX2RlZmF1bHQiLCJzZXRJbnRlcnZhbCIsInNlbmRNZXNzYWdlIiwiSlNPTiIsInN0cmluZ2lmeSIsImV2ZW50IiwicGFnZSIsInBhdGhuYW1lIiwiYWRkTWVzc2FnZUxpc3RlbmVyIiwiZGF0YSIsImluZGV4T2YiLCJwYXlsb2FkIiwicGFyc2UiLCJpbnZhbGlkIiwiX19ORVhUX0RBVEFfXyIsImZldGNoIiwibG9jYXRpb24iLCJocmVmIiwiY3JlZGVudGlhbHMiLCJwYWdlUmVzIiwic3RhdHVzIiwicmVsb2FkIiwiY29uc29sZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/on-demand-entries-client.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/dev/webpack-hot-middleware-client.js": +/*!****************************************************************************!*\ + !*** ./node_modules/next/dist/client/dev/webpack-hot-middleware-client.js ***! + \****************************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _slicedToArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _hotDevClient = _interopRequireDefault(__webpack_require__(/*! ./error-overlay/hot-dev-client */ \"./node_modules/next/dist/client/dev/error-overlay/hot-dev-client.js\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar _default = function _default() {\n var devClient = (0, _hotDevClient)[\"default\"]();\n devClient.subscribeToHmrEvent(function (obj) {\n if (obj.action === 'reloadPage') {\n return window.location.reload();\n }\n\n if (obj.action === 'removedPage') {\n var _obj$data = _slicedToArray(obj.data, 1),\n page = _obj$data[0];\n\n if (page === window.next.router.pathname) {\n return window.location.reload();\n }\n\n return;\n }\n\n if (obj.action === 'addedPage') {\n var _obj$data2 = _slicedToArray(obj.data, 1),\n _page = _obj$data2[0];\n\n if (_page === window.next.router.pathname && typeof window.next.router.components[_page] === 'undefined') {\n return window.location.reload();\n }\n\n return;\n }\n\n throw new Error('Unexpected action ' + obj.action);\n });\n return devClient;\n};\n\nexports[\"default\"] = _default;\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvd2VicGFjay1ob3QtbWlkZGxld2FyZS1jbGllbnQuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOzs7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELGtCQUFBLEdBQWtCLEtBQUssQ0FBdkI7O0FBQ0EsSUFBSUUsYUFBYSxHQUFHQyxzQkFBc0IsQ0FBQ0MsbUJBQU8sQ0FBQywyR0FBRCxDQUFSLENBQTFDOztBQUNBLFNBQVNELHNCQUFULENBQWdDRSxHQUFoQyxFQUFxQztBQUNqQyxTQUFPQSxHQUFHLElBQUlBLEdBQUcsQ0FBQ0MsVUFBWCxHQUF3QkQsR0FBeEIsR0FBOEI7QUFDakMsZUFBU0E7QUFEd0IsR0FBckM7QUFHSDs7QUFDRCxJQUFJRSxRQUFRLEdBQUcsU0FBWEEsUUFBVyxHQUFJO0FBQ2YsTUFBTUMsU0FBUyxHQUFHLENBQUMsR0FBR04sYUFBSixjQUFsQjtBQUNBTSxFQUFBQSxTQUFTLENBQUNDLG1CQUFWLENBQThCLFVBQUNKLEdBQUQsRUFBTztBQUNqQyxRQUFJQSxHQUFHLENBQUNLLE1BQUosS0FBZSxZQUFuQixFQUFpQztBQUM3QixhQUFPQyxNQUFNLENBQUNDLFFBQVAsQ0FBZ0JDLE1BQWhCLEVBQVA7QUFDSDs7QUFDRCxRQUFJUixHQUFHLENBQUNLLE1BQUosS0FBZSxhQUFuQixFQUFrQztBQUM5QixxQ0FBZUwsR0FBRyxDQUFDUyxJQUFuQjtBQUFBLFVBQU9DLElBQVA7O0FBQ0EsVUFBSUEsSUFBSSxLQUFLSixNQUFNLENBQUNLLElBQVAsQ0FBWUMsTUFBWixDQUFtQkMsUUFBaEMsRUFBMEM7QUFDdEMsZUFBT1AsTUFBTSxDQUFDQyxRQUFQLENBQWdCQyxNQUFoQixFQUFQO0FBQ0g7O0FBQ0Q7QUFDSDs7QUFDRCxRQUFJUixHQUFHLENBQUNLLE1BQUosS0FBZSxXQUFuQixFQUFnQztBQUM1QixzQ0FBZUwsR0FBRyxDQUFDUyxJQUFuQjtBQUFBLFVBQU9DLEtBQVA7O0FBQ0EsVUFBSUEsS0FBSSxLQUFLSixNQUFNLENBQUNLLElBQVAsQ0FBWUMsTUFBWixDQUFtQkMsUUFBNUIsSUFBd0MsT0FBT1AsTUFBTSxDQUFDSyxJQUFQLENBQVlDLE1BQVosQ0FBbUJFLFVBQW5CLENBQThCSixLQUE5QixDQUFQLEtBQStDLFdBQTNGLEVBQXdHO0FBQ3BHLGVBQU9KLE1BQU0sQ0FBQ0MsUUFBUCxDQUFnQkMsTUFBaEIsRUFBUDtBQUNIOztBQUNEO0FBQ0g7O0FBQ0QsVUFBTSxJQUFJTyxLQUFKLENBQVUsdUJBQXVCZixHQUFHLENBQUNLLE1BQXJDLENBQU47QUFDSCxHQW5CRDtBQW9CQSxTQUFPRixTQUFQO0FBQ0gsQ0F2QkQ7O0FBd0JBUixrQkFBQSxHQUFrQk8sUUFBbEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvZGV2L3dlYnBhY2staG90LW1pZGRsZXdhcmUtY2xpZW50LmpzPzlhZDIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7XG52YXIgX2hvdERldkNsaWVudCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vZXJyb3Itb3ZlcmxheS9ob3QtZGV2LWNsaWVudFwiKSk7XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG52YXIgX2RlZmF1bHQgPSAoKT0+e1xuICAgIGNvbnN0IGRldkNsaWVudCA9ICgwLCBfaG90RGV2Q2xpZW50KS5kZWZhdWx0KCk7XG4gICAgZGV2Q2xpZW50LnN1YnNjcmliZVRvSG1yRXZlbnQoKG9iaik9PntcbiAgICAgICAgaWYgKG9iai5hY3Rpb24gPT09ICdyZWxvYWRQYWdlJykge1xuICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob2JqLmFjdGlvbiA9PT0gJ3JlbW92ZWRQYWdlJykge1xuICAgICAgICAgICAgY29uc3QgW3BhZ2VdID0gb2JqLmRhdGE7XG4gICAgICAgICAgICBpZiAocGFnZSA9PT0gd2luZG93Lm5leHQucm91dGVyLnBhdGhuYW1lKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAob2JqLmFjdGlvbiA9PT0gJ2FkZGVkUGFnZScpIHtcbiAgICAgICAgICAgIGNvbnN0IFtwYWdlXSA9IG9iai5kYXRhO1xuICAgICAgICAgICAgaWYgKHBhZ2UgPT09IHdpbmRvdy5uZXh0LnJvdXRlci5wYXRobmFtZSAmJiB0eXBlb2Ygd2luZG93Lm5leHQucm91dGVyLmNvbXBvbmVudHNbcGFnZV0gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuZXhwZWN0ZWQgYWN0aW9uICcgKyBvYmouYWN0aW9uKTtcbiAgICB9KTtcbiAgICByZXR1cm4gZGV2Q2xpZW50O1xufTtcbmV4cG9ydHMuZGVmYXVsdCA9IF9kZWZhdWx0O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD13ZWJwYWNrLWhvdC1taWRkbGV3YXJlLWNsaWVudC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJfaG90RGV2Q2xpZW50IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX2RlZmF1bHQiLCJkZXZDbGllbnQiLCJzdWJzY3JpYmVUb0htckV2ZW50IiwiYWN0aW9uIiwid2luZG93IiwibG9jYXRpb24iLCJyZWxvYWQiLCJkYXRhIiwicGFnZSIsIm5leHQiLCJyb3V0ZXIiLCJwYXRobmFtZSIsImNvbXBvbmVudHMiLCJFcnJvciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/webpack-hot-middleware-client.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/head-manager.js": +/*!*******************************************************!*\ + !*** ./node_modules/next/dist/client/head-manager.js ***! + \*******************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.isEqualNode = isEqualNode;\nexports[\"default\"] = initHeadManager;\nexports.DOMAttributeNames = void 0;\nvar DOMAttributeNames = {\n acceptCharset: 'accept-charset',\n className: 'class',\n htmlFor: 'for',\n httpEquiv: 'http-equiv',\n noModule: 'noModule'\n};\nexports.DOMAttributeNames = DOMAttributeNames;\n\nfunction reactElementToDOM(_ref) {\n var type = _ref.type,\n props = _ref.props;\n var el = document.createElement(type);\n\n for (var p in props) {\n if (!props.hasOwnProperty(p)) continue;\n if (p === 'children' || p === 'dangerouslySetInnerHTML') continue; // we don't render undefined props to the DOM\n\n if (props[p] === undefined) continue;\n var attr = DOMAttributeNames[p] || p.toLowerCase();\n\n if (type === 'script' && (attr === 'async' || attr === 'defer' || attr === 'noModule')) {\n el[attr] = !!props[p];\n } else {\n el.setAttribute(attr, props[p]);\n }\n }\n\n var children = props.children,\n dangerouslySetInnerHTML = props.dangerouslySetInnerHTML;\n\n if (dangerouslySetInnerHTML) {\n el.innerHTML = dangerouslySetInnerHTML.__html || '';\n } else if (children) {\n el.textContent = typeof children === 'string' ? children : Array.isArray(children) ? children.join('') : '';\n }\n\n return el;\n}\n\nfunction isEqualNode(oldTag, newTag) {\n if (oldTag instanceof HTMLElement && newTag instanceof HTMLElement) {\n var nonce = newTag.getAttribute('nonce'); // Only strip the nonce if `oldTag` has had it stripped. An element's nonce attribute will not\n // be stripped if there is no content security policy response header that includes a nonce.\n\n if (nonce && !oldTag.getAttribute('nonce')) {\n var cloneTag = newTag.cloneNode(true);\n cloneTag.setAttribute('nonce', '');\n cloneTag.nonce = nonce;\n return nonce === oldTag.nonce && oldTag.isEqualNode(cloneTag);\n }\n }\n\n return oldTag.isEqualNode(newTag);\n}\n\nfunction updateElements(type, components) {\n var headEl = document.getElementsByTagName('head')[0];\n var headCountEl = headEl.querySelector('meta[name=next-head-count]');\n\n if (true) {\n if (!headCountEl) {\n console.error('Warning: next-head-count is missing. https://nextjs.org/docs/messages/next-head-count-missing');\n return;\n }\n }\n\n var headCount = Number(headCountEl.content);\n var oldTags = [];\n\n for (var i = 0, j = headCountEl.previousElementSibling; i < headCount; i++, j = (j === null || j === void 0 ? void 0 : j.previousElementSibling) || null) {\n var ref;\n\n if ((j === null || j === void 0 ? void 0 : (ref = j.tagName) === null || ref === void 0 ? void 0 : ref.toLowerCase()) === type) {\n oldTags.push(j);\n }\n }\n\n var newTags = components.map(reactElementToDOM).filter(function (newTag) {\n for (var k = 0, len = oldTags.length; k < len; k++) {\n var oldTag = oldTags[k];\n\n if (isEqualNode(oldTag, newTag)) {\n oldTags.splice(k, 1);\n return false;\n }\n }\n\n return true;\n });\n oldTags.forEach(function (t) {\n var ref;\n return (ref = t.parentNode) === null || ref === void 0 ? void 0 : ref.removeChild(t);\n });\n newTags.forEach(function (t) {\n return headEl.insertBefore(t, headCountEl);\n });\n headCountEl.content = (headCount - oldTags.length + newTags.length).toString();\n}\n\nfunction initHeadManager() {\n var updatePromise = null;\n return {\n mountedInstances: new Set(),\n updateHead: function updateHead(head) {\n var promise = updatePromise = Promise.resolve().then(function () {\n if (promise !== updatePromise) return;\n updatePromise = null;\n var tags = {};\n head.forEach(function (h) {\n if ( // If the font tag is loaded only on client navigation\n // it won't be inlined. In this case revert to the original behavior\n h.type === 'link' && h.props['data-optimized-fonts']) {\n if (document.querySelector(\"style[data-href=\\\"\".concat(h.props['data-href'], \"\\\"]\"))) {\n return;\n } else {\n h.props.href = h.props['data-href'];\n h.props['data-href'] = undefined;\n }\n }\n\n var components = tags[h.type] || [];\n components.push(h);\n tags[h.type] = components;\n });\n var titleComponent = tags.title ? tags.title[0] : null;\n var title = '';\n\n if (titleComponent) {\n var children = titleComponent.props.children;\n title = typeof children === 'string' ? children : Array.isArray(children) ? children.join('') : '';\n }\n\n if (title !== document.title) document.title = title;\n ['meta', 'base', 'link', 'style', 'script'].forEach(function (type) {\n updateElements(type, tags[type] || []);\n });\n });\n }\n };\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9oZWFkLW1hbmFnZXIuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxtQkFBQSxHQUFzQkUsV0FBdEI7QUFDQUYsa0JBQUEsR0FBa0JHLGVBQWxCO0FBQ0FILHlCQUFBLEdBQTRCLEtBQUssQ0FBakM7QUFDQSxJQUFNSSxpQkFBaUIsR0FBRztBQUN0QkMsRUFBQUEsYUFBYSxFQUFFLGdCQURPO0FBRXRCQyxFQUFBQSxTQUFTLEVBQUUsT0FGVztBQUd0QkMsRUFBQUEsT0FBTyxFQUFFLEtBSGE7QUFJdEJDLEVBQUFBLFNBQVMsRUFBRSxZQUpXO0FBS3RCQyxFQUFBQSxRQUFRLEVBQUU7QUFMWSxDQUExQjtBQU9BVCx5QkFBQSxHQUE0QkksaUJBQTVCOztBQUNBLFNBQVNNLGlCQUFULE9BQThDO0FBQUEsTUFBakJDLElBQWlCLFFBQWpCQSxJQUFpQjtBQUFBLE1BQVZDLEtBQVUsUUFBVkEsS0FBVTtBQUMxQyxNQUFNQyxFQUFFLEdBQUdDLFFBQVEsQ0FBQ0MsYUFBVCxDQUF1QkosSUFBdkIsQ0FBWDs7QUFDQSxPQUFJLElBQU1LLENBQVYsSUFBZUosS0FBZixFQUFxQjtBQUNqQixRQUFJLENBQUNBLEtBQUssQ0FBQ0ssY0FBTixDQUFxQkQsQ0FBckIsQ0FBTCxFQUE4QjtBQUM5QixRQUFJQSxDQUFDLEtBQUssVUFBTixJQUFvQkEsQ0FBQyxLQUFLLHlCQUE5QixFQUF5RCxTQUZ4QyxDQUdqQjs7QUFDQSxRQUFJSixLQUFLLENBQUNJLENBQUQsQ0FBTCxLQUFhRSxTQUFqQixFQUE0QjtBQUM1QixRQUFNQyxJQUFJLEdBQUdmLGlCQUFpQixDQUFDWSxDQUFELENBQWpCLElBQXdCQSxDQUFDLENBQUNJLFdBQUYsRUFBckM7O0FBQ0EsUUFBSVQsSUFBSSxLQUFLLFFBQVQsS0FBc0JRLElBQUksS0FBSyxPQUFULElBQW9C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O0FBQ0QsY0FBTW9CLFVBQVUsR0FBR3VDLElBQUksQ0FBQ0MsQ0FBQyxDQUFDbkUsSUFBSCxDQUFKLElBQWdCLEVBQW5DO0FBQ0EyQixVQUFBQSxVQUFVLENBQUNnQixJQUFYLENBQWdCd0IsQ0FBaEI7QUFDQUQsVUFBQUEsSUFBSSxDQUFDQyxDQUFDLENBQUNuRSxJQUFILENBQUosR0FBZTJCLFVBQWY7QUFDSCxTQWREO0FBZUEsWUFBTTBDLGNBQWMsR0FBR0gsSUFBSSxDQUFDSSxLQUFMLEdBQWFKLElBQUksQ0FBQ0ksS0FBTCxDQUFXLENBQVgsQ0FBYixHQUE2QixJQUFwRDtBQUNBLFlBQUlBLEtBQUssR0FBRyxFQUFaOztBQUNBLFlBQUlELGNBQUosRUFBb0I7QUFDaEIsY0FBUTFELFFBQVIsR0FBc0IwRCxjQUFjLENBQUNwRSxLQUFyQyxDQUFRVSxRQUFSO0FBQ0EyRCxVQUFBQSxLQUFLLEdBQUcsT0FBTzNELFFBQVAsS0FBb0IsUUFBcEIsR0FBK0JBLFFBQS9CLEdBQTBDSyxLQUFLLENBQUNDLE9BQU4sQ0FBY04sUUFBZCxJQUEwQkEsUUFBUSxDQUFDTyxJQUFULENBQWMsRUFBZCxDQUExQixHQUE4QyxFQUFoRztBQUNIOztBQUNELFlBQUlvRCxLQUFLLEtBQUtuRSxRQUFRLENBQUNtRSxLQUF2QixFQUE4Qm5FLFFBQVEsQ0FBQ21FLEtBQVQsR0FBaUJBLEtBQWpCO0FBQzlCLFNBQ0ksTUFESixFQUVJLE1BRkosRUFHSSxNQUhKLEVBSUksT0FKSixFQUtJLFFBTEosRUFNRW5CLE9BTkYsQ0FNVSxVQUFDbkQsSUFBRCxFQUFRO0FBQ2QwQixVQUFBQSxjQUFjLENBQUMxQixJQUFELEVBQU9rRSxJQUFJLENBQUNsRSxJQUFELENBQUosSUFBYyxFQUFyQixDQUFkO0FBQ0gsU0FSRDtBQVNILE9BcEMrQixDQUFoQztBQXFDSDtBQXhDRSxHQUFQO0FBMENIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2hlYWQtbWFuYWdlci5qcz9jYTRhIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5pc0VxdWFsTm9kZSA9IGlzRXF1YWxOb2RlO1xuZXhwb3J0cy5kZWZhdWx0ID0gaW5pdEhlYWRNYW5hZ2VyO1xuZXhwb3J0cy5ET01BdHRyaWJ1dGVOYW1lcyA9IHZvaWQgMDtcbmNvbnN0IERPTUF0dHJpYnV0ZU5hbWVzID0ge1xuICAgIGFjY2VwdENoYXJzZXQ6ICdhY2NlcHQtY2hhcnNldCcsXG4gICAgY2xhc3NOYW1lOiAnY2xhc3MnLFxuICAgIGh0bWxGb3I6ICdmb3InLFxuICAgIGh0dHBFcXVpdjogJ2h0dHAtZXF1aXYnLFxuICAgIG5vTW9kdWxlOiAnbm9Nb2R1bGUnXG59O1xuZXhwb3J0cy5ET01BdHRyaWJ1dGVOYW1lcyA9IERPTUF0dHJpYnV0ZU5hbWVzO1xuZnVuY3Rpb24gcmVhY3RFbGVtZW50VG9ET00oeyB0eXBlICwgcHJvcHMgIH0pIHtcbiAgICBjb25zdCBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodHlwZSk7XG4gICAgZm9yKGNvbnN0IHAgaW4gcHJvcHMpe1xuICAgICAgICBpZiAoIXByb3BzLmhhc093blByb3BlcnR5KHApKSBjb250aW51ZTtcbiAgICAgICAgaWYgKHAgPT09ICdjaGlsZHJlbicgfHwgcCA9PT0gJ2Rhbmdlcm91c2x5U2V0SW5uZXJIVE1MJykgY29udGludWU7XG4gICAgICAgIC8vIHdlIGRvbid0IHJlbmRlciB1bmRlZmluZWQgcHJvcHMgdG8gdGhlIERPTVxuICAgICAgICBpZiAocHJvcHNbcF0gPT09IHVuZGVmaW5lZCkgY29udGludWU7XG4gICAgICAgIGNvbnN0IGF0dHIgPSBET01BdHRyaWJ1dGVOYW1lc1twXSB8fCBwLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmICh0eXBlID09PSAnc2NyaXB0JyAmJiAoYXR0ciA9PT0gJ2FzeW5jJyB8fCBhdHRyID09PSAnZGVmZXInIHx8IGF0dHIgPT09ICdub01vZHVsZScpKSB7XG4gICAgICAgICAgICBlbFthdHRyXSA9ICEhcHJvcHNbcF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlbC5zZXRBdHRyaWJ1dGUoYXR0ciwgcHJvcHNbcF0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHsgY2hpbGRyZW4gLCBkYW5nZXJvdXNseVNldElubmVySFRNTCAgfSA9IHByb3BzO1xuICAgIGlmIChkYW5nZXJvdXNseVNldElubmVySFRNTCkge1xuICAgICAgICBlbC5pbm5lckhUTUwgPSBkYW5nZXJvdXNseVNldElubmVySFRNTC5fX2h0bWwgfHwgJyc7XG4gICAgfSBlbHNlIGlmIChjaGlsZHJlbikge1xuICAgICAgICBlbC50ZXh0Q29udGVudCA9IHR5cGVvZiBjaGlsZHJlbiA9PT0gJ3N0cmluZycgPyBjaGlsZHJlbiA6IEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pID8gY2hpbGRyZW4uam9pbignJykgOiAnJztcbiAgICB9XG4gICAgcmV0dXJuIGVsO1xufVxuZnVuY3Rpb24gaXNFcXVhbE5vZGUob2xkVGFnLCBuZXdUYWcpIHtcbiAgICBpZiAob2xkVGFnIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQgJiYgbmV3VGFnIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3Qgbm9uY2UgPSBuZXdUYWcuZ2V0QXR0cmlidXRlKCdub25jZScpO1xuICAgICAgICAvLyBPbmx5IHN0cmlwIHRoZSBub25jZSBpZiBgb2xkVGFnYCBoYXMgaGFkIGl0IHN0cmlwcGVkLiBBbiBlbGVtZW50J3Mgbm9uY2UgYXR0cmlidXRlIHdpbGwgbm90XG4gICAgICAgIC8vIGJlIHN0cmlwcGVkIGlmIHRoZXJlIGlzIG5vIGNvbnRlbnQgc2VjdXJpdHkgcG9saWN5IHJlc3BvbnNlIGhlYWRlciB0aGF0IGluY2x1ZGVzIGEgbm9uY2UuXG4gICAgICAgIGlmIChub25jZSAmJiAhb2xkVGFnLmdldEF0dHJpYnV0ZSgnbm9uY2UnKSkge1xuICAgICAgICAgICAgY29uc3QgY2xvbmVUYWcgPSBuZXdUYWcuY2xvbmVOb2RlKHRydWUpO1xuICAgICAgICAgICAgY2xvbmVUYWcuc2V0QXR0cmlidXRlKCdub25jZScsICcnKTtcbiAgICAgICAgICAgIGNsb25lVGFnLm5vbmNlID0gbm9uY2U7XG4gICAgICAgICAgICByZXR1cm4gbm9uY2UgPT09IG9sZFRhZy5ub25jZSAmJiBvbGRUYWcuaXNFcXVhbE5vZGUoY2xvbmVUYWcpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBvbGRUYWcuaXNFcXVhbE5vZGUobmV3VGFnKTtcbn1cbmZ1bmN0aW9uIHVwZGF0ZUVsZW1lbnRzKHR5cGUsIGNvbXBvbmVudHMpIHtcbiAgICBjb25zdCBoZWFkRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdO1xuICAgIGNvbnN0IGhlYWRDb3VudEVsID0gaGVhZEVsLnF1ZXJ5U2VsZWN0b3IoJ21ldGFbbmFtZT1uZXh0LWhlYWQtY291bnRdJyk7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgaWYgKCFoZWFkQ291bnRFbCkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignV2FybmluZzogbmV4dC1oZWFkLWNvdW50IGlzIG1pc3NpbmcuIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25leHQtaGVhZC1jb3VudC1taXNzaW5nJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgaGVhZENvdW50ID0gTnVtYmVyKGhlYWRDb3VudEVsLmNvbnRlbnQpO1xuICAgIGNvbnN0IG9sZFRhZ3MgPSBbXTtcbiAgICBmb3IobGV0IGkgPSAwLCBqID0gaGVhZENvdW50RWwucHJldmlvdXNFbGVtZW50U2libGluZzsgaSA8IGhlYWRDb3VudDsgaSsrLCBqID0gKGogPT09IG51bGwgfHwgaiA9PT0gdm9pZCAwID8gdm9pZCAwIDogai5wcmV2aW91c0VsZW1lbnRTaWJsaW5nKSB8fCBudWxsKXtcbiAgICAgICAgdmFyIHJlZjtcbiAgICAgICAgaWYgKChqID09PSBudWxsIHx8IGogPT09IHZvaWQgMCA/IHZvaWQgMCA6IChyZWYgPSBqLnRhZ05hbWUpID09PSBudWxsIHx8IHJlZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVmLnRvTG93ZXJDYXNlKCkpID09PSB0eXBlKSB7XG4gICAgICAgICAgICBvbGRUYWdzLnB1c2goaik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgbmV3VGFncyA9IGNvbXBvbmVudHMubWFwKHJlYWN0RWxlbWVudFRvRE9NKS5maWx0ZXIoKG5ld1RhZyk9PntcbiAgICAgICAgZm9yKGxldCBrID0gMCwgbGVuID0gb2xkVGFncy5sZW5ndGg7IGsgPCBsZW47IGsrKyl7XG4gICAgICAgICAgICBjb25zdCBvbGRUYWcgPSBvbGRUYWdzW2tdO1xuICAgICAgICAgICAgaWYgKGlzRXF1YWxOb2RlKG9sZFRhZywgbmV3VGFnKSkge1xuICAgICAgICAgICAgICAgIG9sZFRhZ3Muc3BsaWNlKGssIDEpO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9KTtcbiAgICBvbGRUYWdzLmZvckVhY2goKHQpPT57XG4gICAgICAgIHZhciByZWY7XG4gICAgICAgIHJldHVybiAocmVmID0gdC5wYXJlbnROb2RlKSA9PT0gbnVsbCB8fCByZWYgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlZi5yZW1vdmVDaGlsZCh0KTtcbiAgICB9KTtcbiAgICBuZXdUYWdzLmZvckVhY2goKHQpPT5oZWFkRWwuaW5zZXJ0QmVmb3JlKHQsIGhlYWRDb3VudEVsKVxuICAgICk7XG4gICAgaGVhZENvdW50RWwuY29udGVudCA9IChoZWFkQ291bnQgLSBvbGRUYWdzLmxlbmd0aCArIG5ld1RhZ3MubGVuZ3RoKS50b1N0cmluZygpO1xufVxuZnVuY3Rpb24gaW5pdEhlYWRNYW5hZ2VyKCkge1xuICAgIGxldCB1cGRhdGVQcm9taXNlID0gbnVsbDtcbiAgICByZXR1cm4ge1xuICAgICAgICBtb3VudGVkSW5zdGFuY2VzOiBuZXcgU2V0KCksXG4gICAgICAgIHVwZGF0ZUhlYWQ6IChoZWFkKT0+e1xuICAgICAgICAgICAgY29uc3QgcHJvbWlzZSA9IHVwZGF0ZVByb21pc2UgPSBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57XG4gICAgICAgICAgICAgICAgaWYgKHByb21pc2UgIT09IHVwZGF0ZVByb21pc2UpIHJldHVybjtcbiAgICAgICAgICAgICAgICB1cGRhdGVQcm9taXNlID0gbnVsbDtcbiAgICAgICAgICAgICAgICBjb25zdCB0YWdzID0ge1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgaGVhZC5mb3JFYWNoKChoKT0+e1xuICAgICAgICAgICAgICAgICAgICBpZiAoLy8gSWYgdGhlIGZvbnQgdGFnIGlzIGxvYWRlZCBvbmx5IG9uIGNsaWVudCBuYXZpZ2F0aW9uXG4gICAgICAgICAgICAgICAgICAgIC8vIGl0IHdvbid0IGJlIGlubGluZWQuIEluIHRoaXMgY2FzZSByZXZlcnQgdG8gdGhlIG9yaWdpbmFsIGJlaGF2aW9yXG4gICAgICAgICAgICAgICAgICAgIGgudHlwZSA9PT0gJ2xpbmsnICYmIGgucHJvcHNbJ2RhdGEtb3B0aW1pemVkLWZvbnRzJ10pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBzdHlsZVtkYXRhLWhyZWY9XCIke2gucHJvcHNbJ2RhdGEtaHJlZiddfVwiXWApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoLnByb3BzLmhyZWYgPSBoLnByb3BzWydkYXRhLWhyZWYnXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoLnByb3BzWydkYXRhLWhyZWYnXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb21wb25lbnRzID0gdGFnc1toLnR5cGVdIHx8IFtdO1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRzLnB1c2goaCk7XG4gICAgICAgICAgICAgICAgICAgIHRhZ3NbaC50eXBlXSA9IGNvbXBvbmVudHM7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgY29uc3QgdGl0bGVDb21wb25lbnQgPSB0YWdzLnRpdGxlID8gdGFncy50aXRsZVswXSA6IG51bGw7XG4gICAgICAgICAgICAgICAgbGV0IHRpdGxlID0gJyc7XG4gICAgICAgICAgICAgICAgaWYgKHRpdGxlQ29tcG9uZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgY2hpbGRyZW4gIH0gPSB0aXRsZUNvbXBvbmVudC5wcm9wcztcbiAgICAgICAgICAgICAgICAgICAgdGl0bGUgPSB0eXBlb2YgY2hpbGRyZW4gPT09ICdzdHJpbmcnID8gY2hpbGRyZW4gOiBBcnJheS5pc0FycmF5KGNoaWxkcmVuKSA/IGNoaWxkcmVuLmpvaW4oJycpIDogJyc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0aXRsZSAhPT0gZG9jdW1lbnQudGl0bGUpIGRvY3VtZW50LnRpdGxlID0gdGl0bGU7XG4gICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAnbWV0YScsXG4gICAgICAgICAgICAgICAgICAgICdiYXNlJyxcbiAgICAgICAgICAgICAgICAgICAgJ2xpbmsnLFxuICAgICAgICAgICAgICAgICAgICAnc3R5bGUnLFxuICAgICAgICAgICAgICAgICAgICAnc2NyaXB0J1xuICAgICAgICAgICAgICAgIF0uZm9yRWFjaCgodHlwZSk9PntcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlRWxlbWVudHModHlwZSwgdGFnc1t0eXBlXSB8fCBbXSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH07XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhlYWQtbWFuYWdlci5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJpc0VxdWFsTm9kZSIsImluaXRIZWFkTWFuYWdlciIsIkRPTUF0dHJpYnV0ZU5hbWVzIiwiYWNjZXB0Q2hhcnNldCIsImNsYXNzTmFtZSIsImh0bWxGb3IiLCJodHRwRXF1aXYiLCJub01vZHVsZSIsInJlYWN0RWxlbWVudFRvRE9NIiwidHlwZSIsInByb3BzIiwiZWwiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJwIiwiaGFzT3duUHJvcGVydHkiLCJ1bmRlZmluZWQiLCJhdHRyIiwidG9Mb3dlckNhc2UiLCJzZXRBdHRyaWJ1dGUiLCJjaGlsZHJlbiIsImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIiwiaW5uZXJIVE1MIiwiX19odG1sIiwidGV4dENvbnRlbnQiLCJBcnJheSIsImlzQXJyYXkiLCJqb2luIiwib2xkVGFnIiwibmV3VGFnIiwiSFRNTEVsZW1lbnQiLCJub25jZSIsImdldEF0dHJpYnV0ZSIsImNsb25lVGFnIiwiY2xvbmVOb2RlIiwidXBkYXRlRWxlbWVudHMiLCJjb21wb25lbnRzIiwiaGVhZEVsIiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJoZWFkQ291bnRFbCIsInF1ZXJ5U2VsZWN0b3IiLCJjb25zb2xlIiwiZXJyb3IiLCJoZWFkQ291bnQiLCJOdW1iZXIiLCJjb250ZW50Iiwib2xkVGFncyIsImkiLCJqIiwicHJldmlvdXNFbGVtZW50U2libGluZyIsInJlZiIsInRhZ05hbWUiLCJwdXNoIiwibmV3VGFncyIsIm1hcCIsImZpbHRlciIsImsiLCJsZW4iLCJsZW5ndGgiLCJzcGxpY2UiLCJmb3JFYWNoIiwidCIsInBhcmVudE5vZGUiLCJyZW1vdmVDaGlsZCIsImluc2VydEJlZm9yZSIsInRvU3RyaW5nIiwidXBkYXRlUHJvbWlzZSIsIm1vdW50ZWRJbnN0YW5jZXMiLCJTZXQiLCJ1cGRhdGVIZWFkIiwiaGVhZCIsInByb21pc2UiLCJQcm9taXNlIiwicmVzb2x2ZSIsInRoZW4iLCJ0YWdzIiwiaCIsImhyZWYiLCJ0aXRsZUNvbXBvbmVudCIsInRpdGxlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/head-manager.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/index.js": +/*!************************************************!*\ + !*** ./node_modules/next/dist/client/index.js ***! + \************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _regeneratorRuntime = __webpack_require__(/*! ./node_modules/@babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n\nvar _classCallCheck = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\");\n\nvar _createClass = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\");\n\nvar _inherits = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/inherits */ \"./node_modules/@babel/runtime/helpers/inherits.js\");\n\nvar _possibleConstructorReturn = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/possibleConstructorReturn */ \"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\");\n\nvar _getPrototypeOf = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/getPrototypeOf */ \"./node_modules/@babel/runtime/helpers/getPrototypeOf.js\");\n\nvar _slicedToArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nvar _s2 = $RefreshSig$(),\n _s3 = $RefreshSig$();\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.initNext = initNext;\nexports.render = render;\nexports.renderError = renderError;\nexports.emitter = exports.router = exports.version = void 0;\n\n__webpack_require__(/*! @next/polyfill-module */ \"./node_modules/@next/polyfill-module/dist/polyfill-module.js\");\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _reactDom = _interopRequireDefault(__webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\"));\n\nvar _styledJsx = __webpack_require__(/*! styled-jsx */ \"./node_modules/styled-jsx/index.js\");\n\nvar _headManagerContext = __webpack_require__(/*! ../shared/lib/head-manager-context */ \"./node_modules/next/dist/shared/lib/head-manager-context.js\");\n\nvar _mitt = _interopRequireDefault(__webpack_require__(/*! ../shared/lib/mitt */ \"./node_modules/next/dist/shared/lib/mitt.js\"));\n\nvar _routerContext = __webpack_require__(/*! ../shared/lib/router-context */ \"./node_modules/next/dist/shared/lib/router-context.js\");\n\nvar _router = __webpack_require__(/*! ../shared/lib/router/router */ \"./node_modules/next/dist/shared/lib/router/router.js\");\n\nvar _isDynamic = __webpack_require__(/*! ../shared/lib/router/utils/is-dynamic */ \"./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js\");\n\nvar _querystring = __webpack_require__(/*! ../shared/lib/router/utils/querystring */ \"./node_modules/next/dist/shared/lib/router/utils/querystring.js\");\n\nvar _runtimeConfig = __webpack_require__(/*! ../shared/lib/runtime-config */ \"./node_modules/next/dist/shared/lib/runtime-config.js\");\n\nvar _utils = __webpack_require__(/*! ../shared/lib/utils */ \"./node_modules/next/dist/shared/lib/utils.js\");\n\nvar _portal = __webpack_require__(/*! ./portal */ \"./node_modules/next/dist/client/portal/index.js\");\n\nvar _headManager = _interopRequireDefault(__webpack_require__(/*! ./head-manager */ \"./node_modules/next/dist/client/head-manager.js\"));\n\nvar _pageLoader = _interopRequireDefault(__webpack_require__(/*! ./page-loader */ \"./node_modules/next/dist/client/page-loader.js\"));\n\nvar _performanceRelayer = _interopRequireDefault(__webpack_require__(/*! ./performance-relayer */ \"./node_modules/next/dist/client/performance-relayer.js\"));\n\nvar _routeAnnouncer = __webpack_require__(/*! ./route-announcer */ \"./node_modules/next/dist/client/route-announcer.js\");\n\nvar _router1 = __webpack_require__(/*! ./router */ \"./node_modules/next/dist/client/router.js\");\n\nvar _isError = _interopRequireDefault(__webpack_require__(/*! ../lib/is-error */ \"./node_modules/next/dist/lib/is-error.js\"));\n\nvar _vitals = __webpack_require__(/*! ./vitals */ \"./node_modules/next/dist/client/vitals.js\");\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n return newObj;\n }\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nvar data = JSON.parse(document.getElementById('__NEXT_DATA__').textContent);\nwindow.__NEXT_DATA__ = data;\nvar version = \"12.0.4\";\nexports.version = version;\n\nvar looseToArray = function looseToArray(input) {\n return [].slice.call(input);\n};\n\nvar hydrateProps = data.props,\n hydrateErr = data.err,\n page = data.page,\n query = data.query,\n buildId = data.buildId,\n assetPrefix = data.assetPrefix,\n runtimeConfig = data.runtimeConfig,\n dynamicIds = data.dynamicIds,\n isFallback = data.isFallback,\n locale = data.locale,\n locales = data.locales,\n domainLocales = data.domainLocales,\n isPreview = data.isPreview,\n rsc = data.rsc;\nvar defaultLocale = data.defaultLocale;\nvar prefix = assetPrefix || ''; // With dynamic assetPrefix it's no longer possible to set assetPrefix at the build time\n// So, this is how we do it in the client side at runtime\n\n__webpack_require__.p = \"\".concat(prefix, \"/_next/\") //eslint-disable-line\n; // Initialize next/config with the environment configuration\n\n(0, _runtimeConfig).setConfig({\n serverRuntimeConfig: {},\n publicRuntimeConfig: runtimeConfig || {}\n});\nvar asPath = (0, _utils).getURL(); // make sure not to attempt stripping basePath for 404s\n\nif ((0, _router).hasBasePath(asPath)) {\n asPath = (0, _router).delBasePath(asPath);\n}\n\nif (false) { var detectedDomain, localePathResult, parsedAs, _require4, formatUrl, _require3, parseRelativeUrl, _require2, detectDomainLocale, _require, normalizeLocalePath; }\n\nif (data.scriptLoader) {\n var _require5 = __webpack_require__(/*! ./script */ \"./node_modules/next/dist/client/script.js\"),\n initScriptLoader = _require5.initScriptLoader;\n\n initScriptLoader(data.scriptLoader);\n}\n\nvar pageLoader = new _pageLoader[\"default\"](buildId, prefix);\n\nvar register = function register(_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n r = _ref2[0],\n f = _ref2[1];\n\n return pageLoader.routeLoader.onEntrypoint(r, f);\n};\n\nif (window.__NEXT_P) {\n // Defer page registration for another tick. This will increase the overall\n // latency in hydrating the page, but reduce the total blocking time.\n window.__NEXT_P.map(function (p) {\n return setTimeout(function () {\n return register(p);\n }, 0);\n });\n}\n\nwindow.__NEXT_P = [];\nwindow.__NEXT_P.push = register;\nvar headManager = (0, _headManager)[\"default\"]();\nvar appElement = document.getElementById('__next');\n\nvar _lastRenderReject;\n\nvar webpackHMR;\nvar router;\nexports.router = router;\nvar CachedApp, onPerfEntry;\n\nheadManager.getIsSsr = function () {\n return router.isSsr;\n};\n\nvar Container = /*#__PURE__*/function (_react$default$Compon) {\n _inherits(Container, _react$default$Compon);\n\n var _super = _createSuper(Container);\n\n function Container() {\n _classCallCheck(this, Container);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Container, [{\n key: \"componentDidCatch\",\n value: function componentDidCatch(componentErr, info) {\n this.props.fn(componentErr, info);\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.scrollToHash(); // We need to replace the router state if:\n // - the page was (auto) exported and has a query string or search (hash)\n // - it was auto exported and is a dynamic route (to provide params)\n // - if it is a client-side skeleton (fallback render)\n\n if (router.isSsr && // We don't update for 404 requests as this can modify\n // the asPath unexpectedly e.g. adding basePath when\n // it wasn't originally present\n page !== '/404' && page !== '/_error' && (isFallback || data.nextExport && ((0, _isDynamic).isDynamicRoute(router.pathname) || location.search || false) || hydrateProps && hydrateProps.__N_SSG && (location.search || false))) {\n // update query on mount for exported pages\n router.replace(router.pathname + '?' + String((0, _querystring).assign((0, _querystring).urlQueryToSearchParams(router.query), new URLSearchParams(location.search))), asPath, {\n // @ts-ignore\n // WARNING: `_h` is an internal option for handing Next.js\n // client-side hydration. Your app should _never_ use this property.\n // It may change at any time without notice.\n _h: 1,\n // Fallback pages must trigger the data fetch, so the transition is\n // not shallow.\n // Other pages (strictly updating query) happens shallowly, as data\n // requirements would already be present.\n shallow: !isFallback\n });\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.scrollToHash();\n }\n }, {\n key: \"scrollToHash\",\n value: function scrollToHash() {\n var _location = location,\n hash = _location.hash;\n hash = hash && hash.substring(1);\n if (!hash) return;\n var el = document.getElementById(hash);\n if (!el) return; // If we call scrollIntoView() in here without a setTimeout\n // it won't scroll properly.\n\n setTimeout(function () {\n return el.scrollIntoView();\n }, 0);\n }\n }, {\n key: \"render\",\n value: function render() {\n if (false) {} else {\n var _require6 = __webpack_require__(/*! @next/react-dev-overlay/lib/client */ \"./node_modules/@next/react-dev-overlay/lib/client.js\"),\n ReactDevOverlay = _require6.ReactDevOverlay;\n\n return /*#__PURE__*/_react[\"default\"].createElement(ReactDevOverlay, null, this.props.children);\n }\n }\n }]);\n\n return Container;\n}(_react[\"default\"].Component);\n\nvar emitter = (0, _mitt)[\"default\"]();\nexports.emitter = emitter;\nvar CachedComponent;\n\nfunction _initNext() {\n _initNext = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var opts,\n initialErr,\n appEntrypoint,\n app,\n mod,\n exportedReportWebVitals,\n pageEntrypoint,\n _require7,\n isValidElementType,\n _require8,\n getNodeError,\n renderCtx,\n _args = arguments;\n\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n opts = _args.length > 0 && _args[0] !== undefined ? _args[0] : {};\n\n // This makes sure this specific lines are removed in production\n if (true) {\n webpackHMR = opts.webpackHMR;\n }\n\n initialErr = hydrateErr;\n _context.prev = 3;\n _context.next = 6;\n return pageLoader.routeLoader.whenEntrypoint('/_app');\n\n case 6:\n appEntrypoint = _context.sent;\n\n if (!('error' in appEntrypoint)) {\n _context.next = 9;\n break;\n }\n\n throw appEntrypoint.error;\n\n case 9:\n app = appEntrypoint.component, mod = appEntrypoint.exports;\n CachedApp = app;\n exportedReportWebVitals = mod && mod.reportWebVitals;\n\n onPerfEntry = function onPerfEntry(_ref3) {\n var id = _ref3.id,\n name = _ref3.name,\n startTime = _ref3.startTime,\n value = _ref3.value,\n duration = _ref3.duration,\n entryType = _ref3.entryType,\n entries = _ref3.entries;\n // Combines timestamp with random number for unique ID\n var uniqueID = \"\".concat(Date.now(), \"-\").concat(Math.floor(Math.random() * (9000000000000 - 1)) + 1000000000000);\n var perfStartEntry;\n\n if (entries && entries.length) {\n perfStartEntry = entries[0].startTime;\n }\n\n var webVitals = {\n id: id || uniqueID,\n name: name,\n startTime: startTime || perfStartEntry,\n value: value == null ? duration : value,\n label: entryType === 'mark' || entryType === 'measure' ? 'custom' : 'web-vital'\n };\n exportedReportWebVitals === null || exportedReportWebVitals === void 0 ? void 0 : exportedReportWebVitals(webVitals);\n (0, _vitals).trackWebVitalMetric(webVitals);\n };\n\n if (!( true && hydrateErr)) {\n _context.next = 17;\n break;\n }\n\n _context.t0 = {\n error: hydrateErr\n };\n _context.next = 20;\n break;\n\n case 17:\n _context.next = 19;\n return pageLoader.routeLoader.whenEntrypoint(page);\n\n case 19:\n _context.t0 = _context.sent;\n\n case 20:\n pageEntrypoint = _context.t0;\n\n if (!('error' in pageEntrypoint)) {\n _context.next = 23;\n break;\n }\n\n throw pageEntrypoint.error;\n\n case 23:\n CachedComponent = pageEntrypoint.component;\n\n if (false) {}\n\n _require7 = __webpack_require__(/*! react-is */ \"./node_modules/react-is/index.js\"), isValidElementType = _require7.isValidElementType;\n\n if (isValidElementType(CachedComponent)) {\n _context.next = 28;\n break;\n }\n\n throw new Error(\"The default export is not a React Component in page: \\\"\".concat(page, \"\\\"\"));\n\n case 28:\n _context.next = 33;\n break;\n\n case 30:\n _context.prev = 30;\n _context.t1 = _context[\"catch\"](3);\n // This catches errors like throwing in the top level of a module\n initialErr = (0, _isError)[\"default\"](_context.t1) ? _context.t1 : new Error(_context.t1 + '');\n\n case 33:\n if (true) {\n _require8 = __webpack_require__(/*! @next/react-dev-overlay/lib/client */ \"./node_modules/@next/react-dev-overlay/lib/client.js\"), getNodeError = _require8.getNodeError; // Server-side runtime errors need to be re-thrown on the client-side so\n // that the overlay is rendered.\n\n if (initialErr) {\n if (initialErr === hydrateErr) {\n setTimeout(function () {\n var error;\n\n try {\n // Generate a new error object. We `throw` it because some browsers\n // will set the `stack` when thrown, and we want to ensure ours is\n // not overridden when we re-throw it below.\n throw new Error(initialErr.message);\n } catch (e) {\n error = e;\n }\n\n error.name = initialErr.name;\n error.stack = initialErr.stack; // Errors from the middleware are reported as client-side errors\n // since the middleware is compiled using the client compiler\n\n if ('middleware' in hydrateErr) {\n throw error;\n }\n\n var node = getNodeError(error);\n throw node;\n });\n } else {\n setTimeout(function () {\n throw initialErr;\n });\n }\n }\n }\n\n if (!window.__NEXT_PRELOADREADY) {\n _context.next = 37;\n break;\n }\n\n _context.next = 37;\n return window.__NEXT_PRELOADREADY(dynamicIds);\n\n case 37:\n exports.router = router = (0, _router1).createRouter(page, query, asPath, {\n initialProps: hydrateProps,\n pageLoader: pageLoader,\n App: CachedApp,\n Component: CachedComponent,\n wrapApp: wrapApp,\n err: initialErr,\n isFallback: Boolean(isFallback),\n subscription: function subscription(info, App, scroll) {\n return render(Object.assign({}, info, {\n App: App,\n scroll: scroll\n }));\n },\n locale: locale,\n locales: locales,\n defaultLocale: defaultLocale,\n domainLocales: domainLocales,\n isPreview: isPreview\n });\n renderCtx = {\n App: CachedApp,\n initial: true,\n Component: CachedComponent,\n props: hydrateProps,\n err: initialErr\n };\n\n if (true) {\n _context.next = 44;\n break;\n }\n\n render(renderCtx);\n return _context.abrupt(\"return\", emitter);\n\n case 44:\n return _context.abrupt(\"return\", {\n emitter: emitter,\n renderCtx: renderCtx\n });\n\n case 45:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[3, 30]]);\n }));\n return _initNext.apply(this, arguments);\n}\n\nfunction initNext() {\n return _initNext.apply(this, arguments);\n}\n\nfunction _render() {\n _render = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(renderingProps) {\n var renderErr;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (!renderingProps.err) {\n _context2.next = 4;\n break;\n }\n\n _context2.next = 3;\n return renderError(renderingProps);\n\n case 3:\n return _context2.abrupt(\"return\");\n\n case 4:\n _context2.prev = 4;\n _context2.next = 7;\n return doRender(renderingProps);\n\n case 7:\n _context2.next = 17;\n break;\n\n case 9:\n _context2.prev = 9;\n _context2.t0 = _context2[\"catch\"](4);\n renderErr = _context2.t0 instanceof Error ? _context2.t0 : new Error(_context2.t0 + ''); // bubble up cancelation errors\n\n if (!renderErr.cancelled) {\n _context2.next = 14;\n break;\n }\n\n throw renderErr;\n\n case 14:\n if (true) {\n // Ensure this error is displayed in the overlay in development\n setTimeout(function () {\n throw renderErr;\n });\n }\n\n _context2.next = 17;\n return renderError(_objectSpread({}, renderingProps, {\n err: renderErr\n }));\n\n case 17:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, null, [[4, 9]]);\n }));\n return _render.apply(this, arguments);\n}\n\nfunction render(renderingProps) {\n return _render.apply(this, arguments);\n}\n\nfunction renderError(renderErrorProps) {\n var App = renderErrorProps.App,\n err = renderErrorProps.err; // In development runtime errors are caught by our overlay\n // In production we catch runtime errors using componentDidCatch which will trigger renderError\n\n if (true) {\n // A Next.js rendering runtime error is always unrecoverable\n // FIXME: let's make this recoverable (error in GIP client-transition)\n webpackHMR.onUnrecoverableError(); // We need to render an empty <App> so that the `<ReactDevOverlay>` can\n // render itself.\n\n return doRender({\n App: function App() {\n return null;\n },\n props: {},\n Component: function Component() {\n return null;\n },\n styleSheets: []\n });\n } // Make sure we log the error to the console, otherwise users can't track down issues.\n\n\n console.error(err);\n console.error(\"A client-side exception has occurred, see here for more info: https://nextjs.org/docs/messages/client-side-exception-occurred\");\n return pageLoader.loadPage('/_error').then(function (_ref4) {\n var ErrorComponent = _ref4.page,\n styleSheets = _ref4.styleSheets;\n return (lastAppProps === null || lastAppProps === void 0 ? void 0 : lastAppProps.Component) === ErrorComponent ? __webpack_require__.e(/*! import() */ \"node_modules_next_dist_pages__error_js\").then(__webpack_require__.t.bind(__webpack_require__, /*! ../pages/_error */ \"./node_modules/next/dist/pages/_error.js\", 23)).then(function (m) {\n return {\n ErrorComponent: m[\"default\"],\n styleSheets: []\n };\n }) : {\n ErrorComponent: ErrorComponent,\n styleSheets: styleSheets\n };\n }).then(function (_ref5) {\n var ErrorComponent = _ref5.ErrorComponent,\n styleSheets = _ref5.styleSheets;\n // In production we do a normal render with the `ErrorComponent` as component.\n // If we've gotten here upon initial render, we can use the props from the server.\n // Otherwise, we need to call `getInitialProps` on `App` before mounting.\n var AppTree = wrapApp(App);\n var appCtx = {\n Component: ErrorComponent,\n AppTree: AppTree,\n router: router,\n ctx: {\n err: err,\n pathname: page,\n query: query,\n asPath: asPath,\n AppTree: AppTree\n }\n };\n return Promise.resolve(renderErrorProps.props ? renderErrorProps.props : (0, _utils).loadGetInitialProps(App, appCtx)).then(function (initProps) {\n return doRender(_objectSpread({}, renderErrorProps, {\n err: err,\n Component: ErrorComponent,\n styleSheets: styleSheets,\n props: initProps\n }));\n });\n });\n}\n\nvar reactRoot = null; // On initial render a hydrate should always happen\n\nvar shouldHydrate = true;\n\nfunction renderReactElement(domEl, fn) {\n // mark start of hydrate/render\n if (_utils.ST) {\n performance.mark('beforeRender');\n }\n\n var reactEl = fn(shouldHydrate ? markHydrateComplete : markRenderComplete);\n\n if (false) {} else {\n // The check for `.hydrate` is there to support React alternatives like preact\n if (shouldHydrate) {\n _reactDom[\"default\"].hydrate(reactEl, domEl);\n\n shouldHydrate = false;\n } else {\n _reactDom[\"default\"].render(reactEl, domEl);\n }\n }\n}\n\nfunction markHydrateComplete() {\n if (!_utils.ST) return;\n performance.mark('afterHydrate') // mark end of hydration\n ;\n performance.measure('Next.js-before-hydration', 'navigationStart', 'beforeRender');\n performance.measure('Next.js-hydration', 'beforeRender', 'afterHydrate');\n\n if (onPerfEntry) {\n performance.getEntriesByName('Next.js-hydration').forEach(onPerfEntry);\n }\n\n clearMarks();\n}\n\nfunction markRenderComplete() {\n if (!_utils.ST) return;\n performance.mark('afterRender') // mark end of render\n ;\n var navStartEntries = performance.getEntriesByName('routeChange', 'mark');\n if (!navStartEntries.length) return;\n performance.measure('Next.js-route-change-to-render', navStartEntries[0].name, 'beforeRender');\n performance.measure('Next.js-render', 'beforeRender', 'afterRender');\n\n if (onPerfEntry) {\n performance.getEntriesByName('Next.js-render').forEach(onPerfEntry);\n performance.getEntriesByName('Next.js-route-change-to-render').forEach(onPerfEntry);\n }\n\n clearMarks();\n ['Next.js-route-change-to-render', 'Next.js-render'].forEach(function (measure) {\n return performance.clearMeasures(measure);\n });\n}\n\nfunction clearMarks() {\n ['beforeRender', 'afterHydrate', 'afterRender', 'routeChange'].forEach(function (mark) {\n return performance.clearMarks(mark);\n });\n}\n\nfunction AppContainer(_ref6) {\n var children = _ref6.children;\n return /*#__PURE__*/_react[\"default\"].createElement(Container, {\n fn: function fn(error) {\n return renderError({\n App: CachedApp,\n err: error\n })[\"catch\"](function (err) {\n return console.error('Error rendering page: ', err);\n });\n }\n }, /*#__PURE__*/_react[\"default\"].createElement(_routerContext.RouterContext.Provider, {\n value: (0, _router1).makePublicRouterInstance(router)\n }, /*#__PURE__*/_react[\"default\"].createElement(_headManagerContext.HeadManagerContext.Provider, {\n value: headManager\n }, /*#__PURE__*/_react[\"default\"].createElement(_styledJsx.StyleRegistry, null, children))));\n}\n\n_c = AppContainer;\n\nvar wrapApp = function wrapApp(App) {\n return function (wrappedAppProps) {\n var appProps = _objectSpread({}, wrappedAppProps, {\n Component: CachedComponent,\n err: hydrateErr,\n router: router\n });\n\n return /*#__PURE__*/_react[\"default\"].createElement(AppContainer, null, /*#__PURE__*/_react[\"default\"].createElement(App, Object.assign({}, appProps)));\n };\n};\n\nvar RSCComponent;\n\nif (false) { var RSCWrapper, rscCache, createResponseCache, _s; }\n\nvar lastAppProps;\n\nfunction doRender(input) {\n var App = input.App,\n Component = input.Component,\n props = input.props,\n err = input.err,\n __N_RSC = input.__N_RSC;\n var styleSheets = 'initial' in input ? undefined : input.styleSheets;\n Component = Component || lastAppProps.Component;\n props = props || lastAppProps.props;\n var isRSC = false ? 0 : !!__N_RSC;\n\n var appProps = _objectSpread({}, props, {\n Component: isRSC ? RSCComponent : Component,\n err: err,\n router: router\n }); // lastAppProps has to be set before ReactDom.render to account for ReactDom throwing an error.\n\n\n lastAppProps = appProps;\n var canceled = false;\n var resolvePromise;\n var renderPromise = new Promise(function (resolve, reject) {\n if (_lastRenderReject) {\n _lastRenderReject();\n }\n\n resolvePromise = function resolvePromise() {\n _lastRenderReject = null;\n resolve();\n };\n\n _lastRenderReject = function lastRenderReject() {\n canceled = true;\n _lastRenderReject = null;\n var error = new Error('Cancel rendering route');\n error.cancelled = true;\n reject(error);\n };\n }); // This function has a return type to ensure it doesn't start returning a\n // Promise. It should remain synchronous.\n\n function onStart() {\n if (!styleSheets || // We use `style-loader` in development, so we don't need to do anything\n // unless we're in production:\n true) {\n return false;\n }\n\n var currentStyleTags = looseToArray(document.querySelectorAll('style[data-n-href]'));\n var currentHrefs = new Set(currentStyleTags.map(function (tag) {\n return tag.getAttribute('data-n-href');\n }));\n var noscript = document.querySelector('noscript[data-n-css]');\n var nonce = noscript === null || noscript === void 0 ? void 0 : noscript.getAttribute('data-n-css');\n styleSheets.forEach(function (_ref8) {\n var href = _ref8.href,\n text = _ref8.text;\n\n if (!currentHrefs.has(href)) {\n var styleTag = document.createElement('style');\n styleTag.setAttribute('data-n-href', href);\n styleTag.setAttribute('media', 'x');\n\n if (nonce) {\n styleTag.setAttribute('nonce', nonce);\n }\n\n document.head.appendChild(styleTag);\n styleTag.appendChild(document.createTextNode(text));\n }\n });\n return true;\n }\n\n function onHeadCommit() {\n if ( // We use `style-loader` in development, so we don't need to do anything\n // unless we're in production:\n false) { var referenceNode, idx, currentHrefs, currentStyleTags, desiredHrefs; }\n\n if (input.scroll) {\n window.scrollTo(input.scroll.x, input.scroll.y);\n }\n }\n\n function onRootCommit() {\n resolvePromise();\n }\n\n onStart();\n\n var elem = /*#__PURE__*/_react[\"default\"].createElement(_react[\"default\"].Fragment, null, /*#__PURE__*/_react[\"default\"].createElement(Head, {\n callback: onHeadCommit\n }), /*#__PURE__*/_react[\"default\"].createElement(AppContainer, null, /*#__PURE__*/_react[\"default\"].createElement(App, Object.assign({}, appProps)), /*#__PURE__*/_react[\"default\"].createElement(_portal.Portal, {\n type: \"next-route-announcer\"\n }, /*#__PURE__*/_react[\"default\"].createElement(_routeAnnouncer.RouteAnnouncer, null)))); // We catch runtime errors using componentDidCatch which will trigger renderError\n\n\n renderReactElement(appElement, function (callback) {\n return /*#__PURE__*/_react[\"default\"].createElement(Root, {\n callbacks: [callback, onRootCommit]\n }, true ? /*#__PURE__*/_react[\"default\"].createElement(_react[\"default\"].StrictMode, null, elem) : 0);\n });\n return renderPromise;\n}\n\nfunction Root(_ref10) {\n _s2();\n\n var callbacks = _ref10.callbacks,\n children = _ref10.children;\n\n // We use `useLayoutEffect` to guarantee the callbacks are executed\n // as soon as React flushes the update\n _react[\"default\"].useLayoutEffect(function () {\n return callbacks.forEach(function (callback) {\n return callback();\n });\n }, [callbacks]);\n\n if (undefined) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n _react[\"default\"].useEffect(function () {\n window.__NEXT_HYDRATED = true;\n\n if (window.__NEXT_HYDRATED_CB) {\n window.__NEXT_HYDRATED_CB();\n }\n }, []);\n } // We should ask to measure the Web Vitals after rendering completes so we\n // don't cause any hydration delay:\n\n\n _react[\"default\"].useEffect(function () {\n (0, _performanceRelayer)[\"default\"](onPerfEntry);\n }, []);\n\n return children;\n} // Dummy component that we render as a child of Root so that we can\n// toggle the correct styles before the page is rendered.\n\n\n_s2(Root, \"KDoBXdlwSU+O+uFsByO25XxhKDU=\");\n\n_c2 = Root;\n\nfunction Head(_ref11) {\n _s3();\n\n var callback = _ref11.callback;\n\n // We use `useLayoutEffect` to guarantee the callback is executed\n // as soon as React flushes the update.\n _react[\"default\"].useLayoutEffect(function () {\n return callback();\n }, [callback]);\n\n return null;\n}\n\n_s3(Head, \"n7/vCynhJvM+pLkyL2DMQUF0odM=\");\n\n_c3 = Head;\n\nvar _c, _c2, _c3;\n\n$RefreshReg$(_c, \"AppContainer\");\n$RefreshReg$(_c2, \"Root\");\n$RefreshReg$(_c3, \"Head\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELGdCQUFBLEdBQW1CRSxRQUFuQjtBQUNBRixjQUFBLEdBQWlCRyxNQUFqQjtBQUNBSCxtQkFBQSxHQUFzQkksV0FBdEI7QUFDQUosZUFBQSxHQUFrQkEsY0FBQSxHQUFpQkEsZUFBQSxHQUFrQixLQUFLLENBQTFEOztBQUNBUSxtQkFBTyxDQUFDLDJGQUFELENBQVA7O0FBQ0EsSUFBSUMsTUFBTSxHQUFHQyxzQkFBc0IsQ0FBQ0YsbUJBQU8sQ0FBQyw0Q0FBRCxDQUFSLENBQW5DOztBQUNBLElBQUlHLFNBQVMsR0FBR0Qsc0JBQXNCLENBQUNGLG1CQUFPLENBQUMsb0RBQUQsQ0FBUixDQUF0Qzs7QUFDQSxJQUFJSSxVQUFVLEdBQUdKLG1CQUFPLENBQUMsc0RBQUQsQ0FBeEI7O0FBQ0EsSUFBSUssbUJBQW1CLEdBQUdMLG1CQUFPLENBQUMsdUdBQUQsQ0FBakM7O0FBQ0EsSUFBSU0sS0FBSyxHQUFHSixzQkFBc0IsQ0FBQ0YsbUJBQU8sQ0FBQyx1RUFBRCxDQUFSLENBQWxDOztBQUNBLElBQUlPLGNBQWMsR0FBR1AsbUJBQU8sQ0FBQywyRkFBRCxDQUE1Qjs7QUFDQSxJQUFJUSxPQUFPLEdBQUdSLG1CQUFPLENBQUMseUZBQUQsQ0FBckI7O0FBQ0EsSUFBSVMsVUFBVSxHQUFHVCxtQkFBTyxDQUFDLDZHQUFELENBQXhCOztBQUNBLElBQUlVLFlBQVksR0FBR1YsbUJBQU8sQ0FBQywrR0FBRCxDQUExQjs7QUFDQSxJQUFJVyxjQUFjLEdBQUdYLG1CQUFPLENBQUMsMkZBQUQsQ0FBNUI7O0FBQ0EsSUFBSVksTUFBTSxHQUFHWixtQkFBTyxDQUFDLHlFQUFELENBQXBCOztBQUNBLElBQUlhLE9BQU8sR0FBR2IsbUJBQU8s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QTs7QUFBQSxNQUFiQyxRQUFhLFVBQWJBLFFBQWE7O0FBQ3pCO0FBQ0E7QUFDQWpVLEVBQUFBLE1BQU0sV0FBTixDQUFleVUsZUFBZixDQUErQjtBQUFBLFdBQUlSLFFBQVEsRUFBWjtBQUFBLEdBQS9CLEVBQ0UsQ0FDRUEsUUFERixDQURGOztBQUlBLFNBQU8sSUFBUDtBQUNIOztJQVJRRDs7TUFBQUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvaW5kZXguanM/NDZjYiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuaW5pdE5leHQgPSBpbml0TmV4dDtcbmV4cG9ydHMucmVuZGVyID0gcmVuZGVyO1xuZXhwb3J0cy5yZW5kZXJFcnJvciA9IHJlbmRlckVycm9yO1xuZXhwb3J0cy5lbWl0dGVyID0gZXhwb3J0cy5yb3V0ZXIgPSBleHBvcnRzLnZlcnNpb24gPSB2b2lkIDA7XG5yZXF1aXJlKFwiQG5leHQvcG9seWZpbGwtbW9kdWxlXCIpO1xudmFyIF9yZWFjdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJlYWN0XCIpKTtcbnZhciBfcmVhY3REb20gPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyZWFjdC1kb21cIikpO1xudmFyIF9zdHlsZWRKc3ggPSByZXF1aXJlKFwic3R5bGVkLWpzeFwiKTtcbnZhciBfaGVhZE1hbmFnZXJDb250ZXh0ID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvaGVhZC1tYW5hZ2VyLWNvbnRleHRcIik7XG52YXIgX21pdHQgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL21pdHRcIikpO1xudmFyIF9yb3V0ZXJDb250ZXh0ID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyLWNvbnRleHRcIik7XG52YXIgX3JvdXRlciA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3JvdXRlci9yb3V0ZXJcIik7XG52YXIgX2lzRHluYW1pYyA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9pcy1keW5hbWljXCIpO1xudmFyIF9xdWVyeXN0cmluZyA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9xdWVyeXN0cmluZ1wiKTtcbnZhciBfcnVudGltZUNvbmZpZyA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3J1bnRpbWUtY29uZmlnXCIpO1xudmFyIF91dGlscyA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3V0aWxzXCIpO1xudmFyIF9wb3J0YWwgPSByZXF1aXJlKFwiLi9wb3J0YWxcIik7XG52YXIgX2hlYWRNYW5hZ2VyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9oZWFkLW1hbmFnZXJcIikpO1xudmFyIF9wYWdlTG9hZGVyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9wYWdlLWxvYWRlclwiKSk7XG52YXIgX3BlcmZvcm1hbmNlUmVsYXllciA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vcGVyZm9ybWFuY2UtcmVsYXllclwiKSk7XG52YXIgX3JvdXRlQW5ub3VuY2VyID0gcmVxdWlyZShcIi4vcm91dGUtYW5ub3VuY2VyXCIpO1xudmFyIF9yb3V0ZXIxID0gcmVxdWlyZShcIi4vcm91dGVyXCIpO1xudmFyIF9pc0Vycm9yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vbGliL2lzLWVycm9yXCIpKTtcbnZhciBfdml0YWxzID0gcmVxdWlyZShcIi4vdml0YWxzXCIpO1xuZnVuY3Rpb24gYXN5bmNHZW5lcmF0b3JTdGVwKGdlbiwgcmVzb2x2ZSwgcmVqZWN0LCBfbmV4dCwgX3Rocm93LCBrZXksIGFyZykge1xuICAgIHRyeSB7XG4gICAgICAgIHZhciBpbmZvID0gZ2VuW2tleV0oYXJnKTtcbiAgICAgICAgdmFyIHZhbHVlID0gaW5mby52YWx1ZTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChpbmZvLmRvbmUpIHtcbiAgICAgICAgcmVzb2x2ZSh2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKHZhbHVlKS50aGVuKF9uZXh0LCBfdGhyb3cpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIF9hc3luY1RvR2VuZXJhdG9yKGZuKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgc2VsZiA9IHRoaXMsIGFyZ3MgPSBhcmd1bWVudHM7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgICAgIHZhciBnZW4gPSBmbi5hcHBseShzZWxmLCBhcmdzKTtcbiAgICAgICAgICAgIGZ1bmN0aW9uIF9uZXh0KHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgYXN5bmNHZW5lcmF0b3JTdGVwKGdlbiwgcmVzb2x2ZSwgcmVqZWN0LCBfbmV4dCwgX3Rocm93LCBcIm5leHRcIiwgdmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZnVuY3Rpb24gX3Rocm93KGVycikge1xuICAgICAgICAgICAgICAgIGFzeW5jR2VuZXJhdG9yU3RlcChnZW4sIHJlc29sdmUsIHJlamVjdCwgX25leHQsIF90aHJvdywgXCJ0aHJvd1wiLCBlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgX25leHQodW5kZWZpbmVkKTtcbiAgICAgICAgfSk7XG4gICAgfTtcbn1cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHtcbiAgICBpZiAoa2V5IGluIG9iaikge1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHtcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgICAgICB3cml0YWJsZTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBvYmpba2V5XSA9IHZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gb2JqO1xufVxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7XG4gICAgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkge1xuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBuZXdPYmogPSB7XG4gICAgICAgIH07XG4gICAgICAgIGlmIChvYmogIT0gbnVsbCkge1xuICAgICAgICAgICAgZm9yKHZhciBrZXkgaW4gb2JqKXtcbiAgICAgICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiB7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGlmIChkZXNjLmdldCB8fCBkZXNjLnNldCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld09ialtrZXldID0gb2JqW2tleV07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbmV3T2JqLmRlZmF1bHQgPSBvYmo7XG4gICAgICAgIHJldHVybiBuZXdPYmo7XG4gICAgfVxufVxuZnVuY3Rpb24gX29iamVjdFNwcmVhZCh0YXJnZXQpIHtcbiAgICBmb3IodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXSAhPSBudWxsID8gYXJndW1lbnRzW2ldIDoge1xuICAgICAgICB9O1xuICAgICAgICB2YXIgb3duS2V5cyA9IE9iamVjdC5rZXlzKHNvdXJjZSk7XG4gICAgICAgIGlmICh0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICBvd25LZXlzID0gb3duS2V5cy5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzb3VyY2UpLmZpbHRlcihmdW5jdGlvbihzeW0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzb3VyY2UsIHN5bSkuZW51bWVyYWJsZTtcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgfVxuICAgICAgICBvd25LZXlzLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7XG4gICAgICAgICAgICBfZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHNvdXJjZVtrZXldKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB0YXJnZXQ7XG59XG5jb25zdCBkYXRhID0gSlNPTi5wYXJzZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnX19ORVhUX0RBVEFfXycpLnRleHRDb250ZW50KTtcbndpbmRvdy5fX05FWFRfREFUQV9fID0gZGF0YTtcbmNvbnN0IHZlcnNpb24gPSBcIjEyLjAuNFwiO1xuZXhwb3J0cy52ZXJzaW9uID0gdmVyc2lvbjtcbmNvbnN0IGxvb3NlVG9BcnJheSA9IChpbnB1dCk9PltdLnNsaWNlLmNhbGwoaW5wdXQpXG47XG5jb25zdCB7IHByb3BzOiBoeWRyYXRlUHJvcHMgLCBlcnI6IGh5ZHJhdGVFcnIgLCBwYWdlICwgcXVlcnkgLCBidWlsZElkICwgYXNzZXRQcmVmaXggLCBydW50aW1lQ29uZmlnICwgZHluYW1pY0lkcyAsIGlzRmFsbGJhY2sgLCBsb2NhbGUgLCBsb2NhbGVzICwgZG9tYWluTG9jYWxlcyAsIGlzUHJldmlldyAsIHJzYyAsICB9ID0gZGF0YTtcbmxldCB7IGRlZmF1bHRMb2NhbGUgIH0gPSBkYXRhO1xuY29uc3QgcHJlZml4ID0gYXNzZXRQcmVmaXggfHwgJyc7XG4vLyBXaXRoIGR5bmFtaWMgYXNzZXRQcmVmaXggaXQncyBubyBsb25nZXIgcG9zc2libGUgdG8gc2V0IGFzc2V0UHJlZml4IGF0IHRoZSBidWlsZCB0aW1lXG4vLyBTbywgdGhpcyBpcyBob3cgd2UgZG8gaXQgaW4gdGhlIGNsaWVudCBzaWRlIGF0IHJ1bnRpbWVcbl9fd2VicGFja19wdWJsaWNfcGF0aF9fID0gYCR7cHJlZml4fS9fbmV4dC9gIC8vZXNsaW50LWRpc2FibGUtbGluZVxuO1xuLy8gSW5pdGlhbGl6ZSBuZXh0L2NvbmZpZyB3aXRoIHRoZSBlbnZpcm9ubWVudCBjb25maWd1cmF0aW9uXG4oMCwgX3J1bnRpbWVDb25maWcpLnNldENvbmZpZyh7XG4gICAgc2VydmVyUnVudGltZUNvbmZpZzoge1xuICAgIH0sXG4gICAgcHVibGljUnVudGltZUNvbmZpZzogcnVudGltZUNvbmZpZyB8fCB7XG4gICAgfVxufSk7XG5sZXQgYXNQYXRoID0gKDAsIF91dGlscykuZ2V0VVJMKCk7XG4vLyBtYWtlIHN1cmUgbm90IHRvIGF0dGVtcHQgc3RyaXBwaW5nIGJhc2VQYXRoIGZvciA0MDRzXG5pZiAoKDAsIF9yb3V0ZXIpLmhhc0Jhc2VQYXRoKGFzUGF0aCkpIHtcbiAgICBhc1BhdGggPSAoMCwgX3JvdXRlcikuZGVsQmFzZVBhdGgoYXNQYXRoKTtcbn1cbmlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgY29uc3QgeyBub3JtYWxpemVMb2NhbGVQYXRoICB9ID0gcmVxdWlyZSgnLi4vc2hhcmVkL2xpYi9pMThuL25vcm1hbGl6ZS1sb2NhbGUtcGF0aCcpO1xuICAgIGNvbnN0IHsgZGV0ZWN0RG9tYWluTG9jYWxlICB9ID0gcmVxdWlyZSgnLi4vc2hhcmVkL2xpYi9pMThuL2RldGVjdC1kb21haW4tbG9jYWxlJyk7XG4gICAgY29uc3QgeyBwYXJzZVJlbGF0aXZlVXJsICB9ID0gcmVxdWlyZSgnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGFyc2UtcmVsYXRpdmUtdXJsJyk7XG4gICAgY29uc3QgeyBmb3JtYXRVcmwgIH0gPSByZXF1aXJlKCcuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9mb3JtYXQtdXJsJyk7XG4gICAgaWYgKGxvY2FsZXMpIHtcbiAgICAgICAgY29uc3QgcGFyc2VkQXMgPSBwYXJzZVJlbGF0aXZlVXJsKGFzUGF0aCk7XG4gICAgICAgIGNvbnN0IGxvY2FsZVBhdGhSZXN1bHQgPSBub3JtYWxpemVMb2NhbGVQYXRoKHBhcnNlZEFzLnBhdGhuYW1lLCBsb2NhbGVzKTtcbiAgICAgICAgaWYgKGxvY2FsZVBhdGhSZXN1bHQuZGV0ZWN0ZWRMb2NhbGUpIHtcbiAgICAgICAgICAgIHBhcnNlZEFzLnBhdGhuYW1lID0gbG9jYWxlUGF0aFJlc3VsdC5wYXRobmFtZTtcbiAgICAgICAgICAgIGFzUGF0aCA9IGZvcm1hdFVybChwYXJzZWRBcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBkZXJpdmUgdGhlIGRlZmF1bHQgbG9jYWxlIGlmIGl0IHdhc24ndCBkZXRlY3RlZCBpbiB0aGUgYXNQYXRoXG4gICAgICAgICAgICAvLyBzaW5jZSB3ZSBkb24ndCBwcmVyZW5kZXIgc3RhdGljIHBhZ2VzIHdpdGggYWxsIHBvc3NpYmxlIGRlZmF1bHRcbiAgICAgICAgICAgIC8vIGxvY2FsZXNcbiAgICAgICAgICAgIGRlZmF1bHRMb2NhbGUgPSBsb2NhbGU7XG4gICAgICAgIH1cbiAgICAgICAgLy8gYXR0ZW1wdCBkZXRlY3RpbmcgZGVmYXVsdCBsb2NhbGUgYmFzZWQgb24gaG9zdG5hbWVcbiAgICAgICAgY29uc3QgZGV0ZWN0ZWREb21haW4gPSBkZXRlY3REb21haW5Mb2NhbGUocHJvY2Vzcy5lbnYuX19ORVhUX0kxOE5fRE9NQUlOUywgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lKTtcbiAgICAgICAgLy8gVE9ETzogaW52ZXN0aWdhdGUgaWYgZGVmYXVsdExvY2FsZSBuZWVkcyB0byBiZSBwb3B1bGF0ZWQgYWZ0ZXJcbiAgICAgICAgLy8gaHlkcmF0aW9uIHRvIHByZXZlbnQgbWlzbWF0Y2hlZCByZW5kZXJzXG4gICAgICAgIGlmIChkZXRlY3RlZERvbWFpbikge1xuICAgICAgICAgICAgZGVmYXVsdExvY2FsZSA9IGRldGVjdGVkRG9tYWluLmRlZmF1bHRMb2NhbGU7XG4gICAgICAgIH1cbiAgICB9XG59XG5pZiAoZGF0YS5zY3JpcHRMb2FkZXIpIHtcbiAgICBjb25zdCB7IGluaXRTY3JpcHRMb2FkZXIgIH0gPSByZXF1aXJlKCcuL3NjcmlwdCcpO1xuICAgIGluaXRTY3JpcHRMb2FkZXIoZGF0YS5zY3JpcHRMb2FkZXIpO1xufVxuY29uc3QgcGFnZUxvYWRlciA9IG5ldyBfcGFnZUxvYWRlci5kZWZhdWx0KGJ1aWxkSWQsIHByZWZpeCk7XG5jb25zdCByZWdpc3RlciA9IChbciwgZl0pPT5wYWdlTG9hZGVyLnJvdXRlTG9hZGVyLm9uRW50cnlwb2ludChyLCBmKVxuO1xuaWYgKHdpbmRvdy5fX05FWFRfUCkge1xuICAgIC8vIERlZmVyIHBhZ2UgcmVnaXN0cmF0aW9uIGZvciBhbm90aGVyIHRpY2suIFRoaXMgd2lsbCBpbmNyZWFzZSB0aGUgb3ZlcmFsbFxuICAgIC8vIGxhdGVuY3kgaW4gaHlkcmF0aW5nIHRoZSBwYWdlLCBidXQgcmVkdWNlIHRoZSB0b3RhbCBibG9ja2luZyB0aW1lLlxuICAgIHdpbmRvdy5fX05FWFRfUC5tYXAoKHApPT5zZXRUaW1lb3V0KCgpPT5yZWdpc3RlcihwKVxuICAgICAgICAsIDApXG4gICAgKTtcbn1cbndpbmRvdy5fX05FWFRfUCA9IFtdO1xud2luZG93Ll9fTkVYVF9QLnB1c2ggPSByZWdpc3RlcjtcbmNvbnN0IGhlYWRNYW5hZ2VyID0gKDAsIF9oZWFkTWFuYWdlcikuZGVmYXVsdCgpO1xuY29uc3QgYXBwRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdfX25leHQnKTtcbmxldCBsYXN0UmVuZGVyUmVqZWN0O1xubGV0IHdlYnBhY2tITVI7XG5sZXQgcm91dGVyO1xuZXhwb3J0cy5yb3V0ZXIgPSByb3V0ZXI7XG5sZXQgQ2FjaGVkQXBwLCBvblBlcmZFbnRyeTtcbmhlYWRNYW5hZ2VyLmdldElzU3NyID0gKCk9PntcbiAgICByZXR1cm4gcm91dGVyLmlzU3NyO1xufTtcbmNsYXNzIENvbnRhaW5lciBleHRlbmRzIF9yZWFjdC5kZWZhdWx0LkNvbXBvbmVudCB7XG4gICAgY29tcG9uZW50RGlkQ2F0Y2goY29tcG9uZW50RXJyLCBpbmZvKSB7XG4gICAgICAgIHRoaXMucHJvcHMuZm4oY29tcG9uZW50RXJyLCBpbmZvKTtcbiAgICB9XG4gICAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICAgIHRoaXMuc2Nyb2xsVG9IYXNoKCk7XG4gICAgICAgIC8vIFdlIG5lZWQgdG8gcmVwbGFjZSB0aGUgcm91dGVyIHN0YXRlIGlmOlxuICAgICAgICAvLyAtIHRoZSBwYWdlIHdhcyAoYXV0bykgZXhwb3J0ZWQgYW5kIGhhcyBhIHF1ZXJ5IHN0cmluZyBvciBzZWFyY2ggKGhhc2gpXG4gICAgICAgIC8vIC0gaXQgd2FzIGF1dG8gZXhwb3J0ZWQgYW5kIGlzIGEgZHluYW1pYyByb3V0ZSAodG8gcHJvdmlkZSBwYXJhbXMpXG4gICAgICAgIC8vIC0gaWYgaXQgaXMgYSBjbGllbnQtc2lkZSBza2VsZXRvbiAoZmFsbGJhY2sgcmVuZGVyKVxuICAgICAgICBpZiAocm91dGVyLmlzU3NyICYmIC8vIFdlIGRvbid0IHVwZGF0ZSBmb3IgNDA0IHJlcXVlc3RzIGFzIHRoaXMgY2FuIG1vZGlmeVxuICAgICAgICAvLyB0aGUgYXNQYXRoIHVuZXhwZWN0ZWRseSBlLmcuIGFkZGluZyBiYXNlUGF0aCB3aGVuXG4gICAgICAgIC8vIGl0IHdhc24ndCBvcmlnaW5hbGx5IHByZXNlbnRcbiAgICAgICAgcGFnZSAhPT0gJy80MDQnICYmIHBhZ2UgIT09ICcvX2Vycm9yJyAmJiAoaXNGYWxsYmFjayB8fCBkYXRhLm5leHRFeHBvcnQgJiYgKCgwLCBfaXNEeW5hbWljKS5pc0R5bmFtaWNSb3V0ZShyb3V0ZXIucGF0aG5hbWUpIHx8IGxvY2F0aW9uLnNlYXJjaCB8fCBwcm9jZXNzLmVudi5fX05FWFRfSEFTX1JFV1JJVEVTKSB8fCBoeWRyYXRlUHJvcHMgJiYgaHlkcmF0ZVByb3BzLl9fTl9TU0cgJiYgKGxvY2F0aW9uLnNlYXJjaCB8fCBwcm9jZXNzLmVudi5fX05FWFRfSEFTX1JFV1JJVEVTKSkpIHtcbiAgICAgICAgICAgIC8vIHVwZGF0ZSBxdWVyeSBvbiBtb3VudCBmb3IgZXhwb3J0ZWQgcGFnZXNcbiAgICAgICAgICAgIHJvdXRlci5yZXBsYWNlKHJvdXRlci5wYXRobmFtZSArICc/JyArIFN0cmluZygoMCwgX3F1ZXJ5c3RyaW5nKS5hc3NpZ24oKDAsIF9xdWVyeXN0cmluZykudXJsUXVlcnlUb1NlYXJjaFBhcmFtcyhyb3V0ZXIucXVlcnkpLCBuZXcgVVJMU2VhcmNoUGFyYW1zKGxvY2F0aW9uLnNlYXJjaCkpKSwgYXNQYXRoLCB7XG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIC8vIFdBUk5JTkc6IGBfaGAgaXMgYW4gaW50ZXJuYWwgb3B0aW9uIGZvciBoYW5kaW5nIE5leHQuanNcbiAgICAgICAgICAgICAgICAvLyBjbGllbnQtc2lkZSBoeWRyYXRpb24uIFlvdXIgYXBwIHNob3VsZCBfbmV2ZXJfIHVzZSB0aGlzIHByb3BlcnR5LlxuICAgICAgICAgICAgICAgIC8vIEl0IG1heSBjaGFuZ2UgYXQgYW55IHRpbWUgd2l0aG91dCBub3RpY2UuXG4gICAgICAgICAgICAgICAgX2g6IDEsXG4gICAgICAgICAgICAgICAgLy8gRmFsbGJhY2sgcGFnZXMgbXVzdCB0cmlnZ2VyIHRoZSBkYXRhIGZldGNoLCBzbyB0aGUgdHJhbnNpdGlvbiBpc1xuICAgICAgICAgICAgICAgIC8vIG5vdCBzaGFsbG93LlxuICAgICAgICAgICAgICAgIC8vIE90aGVyIHBhZ2VzIChzdHJpY3RseSB1cGRhdGluZyBxdWVyeSkgaGFwcGVucyBzaGFsbG93bHksIGFzIGRhdGFcbiAgICAgICAgICAgICAgICAvLyByZXF1aXJlbWVudHMgd291bGQgYWxyZWFkeSBiZSBwcmVzZW50LlxuICAgICAgICAgICAgICAgIHNoYWxsb3c6ICFpc0ZhbGxiYWNrXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb21wb25lbnREaWRVcGRhdGUoKSB7XG4gICAgICAgIHRoaXMuc2Nyb2xsVG9IYXNoKCk7XG4gICAgfVxuICAgIHNjcm9sbFRvSGFzaCgpIHtcbiAgICAgICAgbGV0IHsgaGFzaCAgfSA9IGxvY2F0aW9uO1xuICAgICAgICBoYXNoID0gaGFzaCAmJiBoYXNoLnN1YnN0cmluZygxKTtcbiAgICAgICAgaWYgKCFoYXNoKSByZXR1cm47XG4gICAgICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaGFzaCk7XG4gICAgICAgIGlmICghZWwpIHJldHVybjtcbiAgICAgICAgLy8gSWYgd2UgY2FsbCBzY3JvbGxJbnRvVmlldygpIGluIGhlcmUgd2l0aG91dCBhIHNldFRpbWVvdXRcbiAgICAgICAgLy8gaXQgd29uJ3Qgc2Nyb2xsIHByb3Blcmx5LlxuICAgICAgICBzZXRUaW1lb3V0KCgpPT5lbC5zY3JvbGxJbnRvVmlldygpXG4gICAgICAgICwgMCk7XG4gICAgfVxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb3BzLmNoaWxkcmVuO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgeyBSZWFjdERldk92ZXJsYXkgIH0gPSByZXF1aXJlKCdAbmV4dC9yZWFjdC1kZXYtb3ZlcmxheS9saWIvY2xpZW50Jyk7XG4gICAgICAgICAgICByZXR1cm4oLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFJlYWN0RGV2T3ZlcmxheSwgbnVsbCwgdGhpcy5wcm9wcy5jaGlsZHJlbikpO1xuICAgICAgICB9XG4gICAgfVxufVxuY29uc3QgZW1pdHRlciA9ICgwLCBfbWl0dCkuZGVmYXVsdCgpO1xuZXhwb3J0cy5lbWl0dGVyID0gZW1pdHRlcjtcbmxldCBDYWNoZWRDb21wb25lbnQ7XG5mdW5jdGlvbiBfaW5pdE5leHQoKSB7XG4gICAgX2luaXROZXh0ID0gX2FzeW5jVG9HZW5lcmF0b3IoZnVuY3Rpb24qKG9wdHMgPSB7XG4gICAgfSkge1xuICAgICAgICAvLyBUaGlzIG1ha2VzIHN1cmUgdGhpcyBzcGVjaWZpYyBsaW5lcyBhcmUgcmVtb3ZlZCBpbiBwcm9kdWN0aW9uXG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgd2VicGFja0hNUiA9IG9wdHMud2VicGFja0hNUjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgaW5pdGlhbEVyciA9IGh5ZHJhdGVFcnI7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBhcHBFbnRyeXBvaW50ID0geWllbGQgcGFnZUxvYWRlci5yb3V0ZUxvYWRlci53aGVuRW50cnlwb2ludCgnL19hcHAnKTtcbiAgICAgICAgICAgIGlmICgnZXJyb3InIGluIGFwcEVudHJ5cG9pbnQpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBhcHBFbnRyeXBvaW50LmVycm9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgeyBjb21wb25lbnQ6IGFwcCAsIGV4cG9ydHM6IG1vZCAgfSA9IGFwcEVudHJ5cG9pbnQ7XG4gICAgICAgICAgICBDYWNoZWRBcHAgPSBhcHA7XG4gICAgICAgICAgICBjb25zdCBleHBvcnRlZFJlcG9ydFdlYlZpdGFscyA9IG1vZCAmJiBtb2QucmVwb3J0V2ViVml0YWxzO1xuICAgICAgICAgICAgb25QZXJmRW50cnkgPSAoeyBpZCAsIG5hbWUgLCBzdGFydFRpbWUgLCB2YWx1ZSAsIGR1cmF0aW9uICwgZW50cnlUeXBlICwgZW50cmllcyAgfSk9PntcbiAgICAgICAgICAgICAgICAvLyBDb21iaW5lcyB0aW1lc3RhbXAgd2l0aCByYW5kb20gbnVtYmVyIGZvciB1bmlxdWUgSURcbiAgICAgICAgICAgICAgICBjb25zdCB1bmlxdWVJRCA9IGAke0RhdGUubm93KCl9LSR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKDkwMDAwMDAwMDAwMDAgLSAxKSkgKyAxMDAwMDAwMDAwMDAwfWA7XG4gICAgICAgICAgICAgICAgbGV0IHBlcmZTdGFydEVudHJ5O1xuICAgICAgICAgICAgICAgIGlmIChlbnRyaWVzICYmIGVudHJpZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHBlcmZTdGFydEVudHJ5ID0gZW50cmllc1swXS5zdGFydFRpbWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHdlYlZpdGFscyA9IHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6IGlkIHx8IHVuaXF1ZUlELFxuICAgICAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgICAgICBzdGFydFRpbWU6IHN0YXJ0VGltZSB8fCBwZXJmU3RhcnRFbnRyeSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHZhbHVlID09IG51bGwgPyBkdXJhdGlvbiA6IHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogZW50cnlUeXBlID09PSAnbWFyaycgfHwgZW50cnlUeXBlID09PSAnbWVhc3VyZScgPyAnY3VzdG9tJyA6ICd3ZWItdml0YWwnXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBleHBvcnRlZFJlcG9ydFdlYlZpdGFscyA9PT0gbnVsbCB8fCBleHBvcnRlZFJlcG9ydFdlYlZpdGFscyA9PT0gdm9pZCAwID8gdm9pZCAwIDogZXhwb3J0ZWRSZXBvcnRXZWJWaXRhbHMod2ViVml0YWxzKTtcbiAgICAgICAgICAgICAgICAoMCwgX3ZpdGFscykudHJhY2tXZWJWaXRhbE1ldHJpYyh3ZWJWaXRhbHMpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0IHBhZ2VFbnRyeXBvaW50ID0gLy8gVGhlIGRldiBzZXJ2ZXIgZmFpbHMgdG8gc2VydmUgc2NyaXB0IGFzc2V0cyB3aGVuIHRoZXJlJ3MgYSBoeWRyYXRpb25cbiAgICAgICAgICAgIC8vIGVycm9yLCBzbyB3ZSBuZWVkIHRvIHNraXAgd2FpdGluZyBmb3IgdGhlIGVudHJ5cG9pbnQuXG4gICAgICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50JyAmJiBoeWRyYXRlRXJyID8ge1xuICAgICAgICAgICAgICAgIGVycm9yOiBoeWRyYXRlRXJyXG4gICAgICAgICAgICB9IDogeWllbGQgcGFnZUxvYWRlci5yb3V0ZUxvYWRlci53aGVuRW50cnlwb2ludChwYWdlKTtcbiAgICAgICAgICAgIGlmICgnZXJyb3InIGluIHBhZ2VFbnRyeXBvaW50KSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgcGFnZUVudHJ5cG9pbnQuZXJyb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBDYWNoZWRDb21wb25lbnQgPSBwYWdlRW50cnlwb2ludC5jb21wb25lbnQ7XG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgaXNWYWxpZEVsZW1lbnRUeXBlICB9ID0gcmVxdWlyZSgncmVhY3QtaXMnKTtcbiAgICAgICAgICAgICAgICBpZiAoIWlzVmFsaWRFbGVtZW50VHlwZShDYWNoZWRDb21wb25lbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlIGRlZmF1bHQgZXhwb3J0IGlzIG5vdCBhIFJlYWN0IENvbXBvbmVudCBpbiBwYWdlOiBcIiR7cGFnZX1cImApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIC8vIFRoaXMgY2F0Y2hlcyBlcnJvcnMgbGlrZSB0aHJvd2luZyBpbiB0aGUgdG9wIGxldmVsIG9mIGEgbW9kdWxlXG4gICAgICAgICAgICBpbml0aWFsRXJyID0gKDAsIF9pc0Vycm9yKS5kZWZhdWx0KGVycm9yKSA/IGVycm9yIDogbmV3IEVycm9yKGVycm9yICsgJycpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgY29uc3QgeyBnZXROb2RlRXJyb3IgIH0gPSByZXF1aXJlKCdAbmV4dC9yZWFjdC1kZXYtb3ZlcmxheS9saWIvY2xpZW50Jyk7XG4gICAgICAgICAgICAvLyBTZXJ2ZXItc2lkZSBydW50aW1lIGVycm9ycyBuZWVkIHRvIGJlIHJlLXRocm93biBvbiB0aGUgY2xpZW50LXNpZGUgc29cbiAgICAgICAgICAgIC8vIHRoYXQgdGhlIG92ZXJsYXkgaXMgcmVuZGVyZWQuXG4gICAgICAgICAgICBpZiAoaW5pdGlhbEVycikge1xuICAgICAgICAgICAgICAgIGlmIChpbml0aWFsRXJyID09PSBoeWRyYXRlRXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCk9PntcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBlcnJvcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gR2VuZXJhdGUgYSBuZXcgZXJyb3Igb2JqZWN0LiBXZSBgdGhyb3dgIGl0IGJlY2F1c2Ugc29tZSBicm93c2Vyc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdpbGwgc2V0IHRoZSBgc3RhY2tgIHdoZW4gdGhyb3duLCBhbmQgd2Ugd2FudCB0byBlbnN1cmUgb3VycyBpc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vdCBvdmVycmlkZGVuIHdoZW4gd2UgcmUtdGhyb3cgaXQgYmVsb3cuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGluaXRpYWxFcnIubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSBlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IubmFtZSA9IGluaXRpYWxFcnIubmFtZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yLnN0YWNrID0gaW5pdGlhbEVyci5zdGFjaztcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEVycm9ycyBmcm9tIHRoZSBtaWRkbGV3YXJlIGFyZSByZXBvcnRlZCBhcyBjbGllbnQtc2lkZSBlcnJvcnNcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNpbmNlIHRoZSBtaWRkbGV3YXJlIGlzIGNvbXBpbGVkIHVzaW5nIHRoZSBjbGllbnQgY29tcGlsZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgnbWlkZGxld2FyZScgaW4gaHlkcmF0ZUVycikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgbm9kZSA9IGdldE5vZGVFcnJvcihlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBub2RlO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBpbml0aWFsRXJyO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHdpbmRvdy5fX05FWFRfUFJFTE9BRFJFQURZKSB7XG4gICAgICAgICAgICB5aWVsZCB3aW5kb3cuX19ORVhUX1BSRUxPQURSRUFEWShkeW5hbWljSWRzKTtcbiAgICAgICAgfVxuICAgICAgICBleHBvcnRzLnJvdXRlciA9IHJvdXRlciA9ICgwLCBfcm91dGVyMSkuY3JlYXRlUm91dGVyKHBhZ2UsIHF1ZXJ5LCBhc1BhdGgsIHtcbiAgICAgICAgICAgIGluaXRpYWxQcm9wczogaHlkcmF0ZVByb3BzLFxuICAgICAgICAgICAgcGFnZUxvYWRlcixcbiAgICAgICAgICAgIEFwcDogQ2FjaGVkQXBwLFxuICAgICAgICAgICAgQ29tcG9uZW50OiBDYWNoZWRDb21wb25lbnQsXG4gICAgICAgICAgICB3cmFwQXBwLFxuICAgICAgICAgICAgZXJyOiBpbml0aWFsRXJyLFxuICAgICAgICAgICAgaXNGYWxsYmFjazogQm9vbGVhbihpc0ZhbGxiYWNrKSxcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbjogKGluZm8sIEFwcCwgc2Nyb2xsKT0+cmVuZGVyKE9iamVjdC5hc3NpZ24oe1xuICAgICAgICAgICAgICAgIH0sIGluZm8sIHtcbiAgICAgICAgICAgICAgICAgICAgQXBwLFxuICAgICAgICAgICAgICAgICAgICBzY3JvbGxcbiAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICxcbiAgICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICAgIGxvY2FsZXMsXG4gICAgICAgICAgICBkZWZhdWx0TG9jYWxlLFxuICAgICAgICAgICAgZG9tYWluTG9jYWxlcyxcbiAgICAgICAgICAgIGlzUHJldmlld1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgcmVuZGVyQ3R4ID0ge1xuICAgICAgICAgICAgQXBwOiBDYWNoZWRBcHAsXG4gICAgICAgICAgICBpbml0aWFsOiB0cnVlLFxuICAgICAgICAgICAgQ29tcG9uZW50OiBDYWNoZWRDb21wb25lbnQsXG4gICAgICAgICAgICBwcm9wczogaHlkcmF0ZVByb3BzLFxuICAgICAgICAgICAgZXJyOiBpbml0aWFsRXJyXG4gICAgICAgIH07XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICByZW5kZXIocmVuZGVyQ3R4KTtcbiAgICAgICAgICAgIHJldHVybiBlbWl0dGVyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBlbWl0dGVyLFxuICAgICAgICAgICAgICAgIHJlbmRlckN0eFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBfaW5pdE5leHQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cbmZ1bmN0aW9uIGluaXROZXh0KCkge1xuICAgIHJldHVybiBfaW5pdE5leHQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cbmZ1bmN0aW9uIF9yZW5kZXIoKSB7XG4gICAgX3JlbmRlciA9IF9hc3luY1RvR2VuZXJhdG9yKGZ1bmN0aW9uKihyZW5kZXJpbmdQcm9wcykge1xuICAgICAgICBpZiAocmVuZGVyaW5nUHJvcHMuZXJyKSB7XG4gICAgICAgICAgICB5aWVsZCByZW5kZXJFcnJvcihyZW5kZXJpbmdQcm9wcyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHlpZWxkIGRvUmVuZGVyKHJlbmRlcmluZ1Byb3BzKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICBjb25zdCByZW5kZXJFcnIgPSBlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyciA6IG5ldyBFcnJvcihlcnIgKyAnJyk7XG4gICAgICAgICAgICAvLyBidWJibGUgdXAgY2FuY2VsYXRpb24gZXJyb3JzXG4gICAgICAgICAgICBpZiAocmVuZGVyRXJyLmNhbmNlbGxlZCkge1xuICAgICAgICAgICAgICAgIHRocm93IHJlbmRlckVycjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgICAgIC8vIEVuc3VyZSB0aGlzIGVycm9yIGlzIGRpc3BsYXllZCBpbiB0aGUgb3ZlcmxheSBpbiBkZXZlbG9wbWVudFxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCk9PntcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVuZGVyRXJyO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgeWllbGQgcmVuZGVyRXJyb3IoX29iamVjdFNwcmVhZCh7XG4gICAgICAgICAgICB9LCByZW5kZXJpbmdQcm9wcywge1xuICAgICAgICAgICAgICAgIGVycjogcmVuZGVyRXJyXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gX3JlbmRlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufVxuZnVuY3Rpb24gcmVuZGVyKHJlbmRlcmluZ1Byb3BzKSB7XG4gICAgcmV0dXJuIF9yZW5kZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cbmZ1bmN0aW9uIHJlbmRlckVycm9yKHJlbmRlckVycm9yUHJvcHMpIHtcbiAgICBjb25zdCB7IEFwcCAsIGVyciAgfSA9IHJlbmRlckVycm9yUHJvcHM7XG4gICAgLy8gSW4gZGV2ZWxvcG1lbnQgcnVudGltZSBlcnJvcnMgYXJlIGNhdWdodCBieSBvdXIgb3ZlcmxheVxuICAgIC8vIEluIHByb2R1Y3Rpb24gd2UgY2F0Y2ggcnVudGltZSBlcnJvcnMgdXNpbmcgY29tcG9uZW50RGlkQ2F0Y2ggd2hpY2ggd2lsbCB0cmlnZ2VyIHJlbmRlckVycm9yXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgLy8gQSBOZXh0LmpzIHJlbmRlcmluZyBydW50aW1lIGVycm9yIGlzIGFsd2F5cyB1bnJlY292ZXJhYmxlXG4gICAgICAgIC8vIEZJWE1FOiBsZXQncyBtYWtlIHRoaXMgcmVjb3ZlcmFibGUgKGVycm9yIGluIEdJUCBjbGllbnQtdHJhbnNpdGlvbilcbiAgICAgICAgd2VicGFja0hNUi5vblVucmVjb3ZlcmFibGVFcnJvcigpO1xuICAgICAgICAvLyBXZSBuZWVkIHRvIHJlbmRlciBhbiBlbXB0eSA8QXBwPiBzbyB0aGF0IHRoZSBgPFJlYWN0RGV2T3ZlcmxheT5gIGNhblxuICAgICAgICAvLyByZW5kZXIgaXRzZWxmLlxuICAgICAgICByZXR1cm4gZG9SZW5kZXIoe1xuICAgICAgICAgICAgQXBwOiAoKT0+bnVsbFxuICAgICAgICAgICAgLFxuICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBDb21wb25lbnQ6ICgpPT5udWxsXG4gICAgICAgICAgICAsXG4gICAgICAgICAgICBzdHlsZVNoZWV0czogW11cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8vIE1ha2Ugc3VyZSB3ZSBsb2cgdGhlIGVycm9yIHRvIHRoZSBjb25zb2xlLCBvdGhlcndpc2UgdXNlcnMgY2FuJ3QgdHJhY2sgZG93biBpc3N1ZXMuXG4gICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgIGNvbnNvbGUuZXJyb3IoYEEgY2xpZW50LXNpZGUgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZCwgc2VlIGhlcmUgZm9yIG1vcmUgaW5mbzogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvY2xpZW50LXNpZGUtZXhjZXB0aW9uLW9jY3VycmVkYCk7XG4gICAgcmV0dXJuIHBhZ2VMb2FkZXIubG9hZFBhZ2UoJy9fZXJyb3InKS50aGVuKCh7IHBhZ2U6IEVycm9yQ29tcG9uZW50ICwgc3R5bGVTaGVldHMgIH0pPT57XG4gICAgICAgIHJldHVybiAobGFzdEFwcFByb3BzID09PSBudWxsIHx8IGxhc3RBcHBQcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogbGFzdEFwcFByb3BzLkNvbXBvbmVudCkgPT09IEVycm9yQ29tcG9uZW50ID8gaW1wb3J0KCcuLi9wYWdlcy9fZXJyb3InKS50aGVuKChtKT0+KHtcbiAgICAgICAgICAgICAgICBFcnJvckNvbXBvbmVudDogbS5kZWZhdWx0LFxuICAgICAgICAgICAgICAgIHN0eWxlU2hlZXRzOiBbXVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKSA6IHtcbiAgICAgICAgICAgIEVycm9yQ29tcG9uZW50LFxuICAgICAgICAgICAgc3R5bGVTaGVldHNcbiAgICAgICAgfTtcbiAgICB9KS50aGVuKCh7IEVycm9yQ29tcG9uZW50ICwgc3R5bGVTaGVldHMgIH0pPT57XG4gICAgICAgIC8vIEluIHByb2R1Y3Rpb24gd2UgZG8gYSBub3JtYWwgcmVuZGVyIHdpdGggdGhlIGBFcnJvckNvbXBvbmVudGAgYXMgY29tcG9uZW50LlxuICAgICAgICAvLyBJZiB3ZSd2ZSBnb3R0ZW4gaGVyZSB1cG9uIGluaXRpYWwgcmVuZGVyLCB3ZSBjYW4gdXNlIHRoZSBwcm9wcyBmcm9tIHRoZSBzZXJ2ZXIuXG4gICAgICAgIC8vIE90aGVyd2lzZSwgd2UgbmVlZCB0byBjYWxsIGBnZXRJbml0aWFsUHJvcHNgIG9uIGBBcHBgIGJlZm9yZSBtb3VudGluZy5cbiAgICAgICAgY29uc3QgQXBwVHJlZSA9IHdyYXBBcHAoQXBwKTtcbiAgICAgICAgY29uc3QgYXBwQ3R4ID0ge1xuICAgICAgICAgICAgQ29tcG9uZW50OiBFcnJvckNvbXBvbmVudCxcbiAgICAgICAgICAgIEFwcFRyZWUsXG4gICAgICAgICAgICByb3V0ZXIsXG4gICAgICAgICAgICBjdHg6IHtcbiAgICAgICAgICAgICAgICBlcnIsXG4gICAgICAgICAgICAgICAgcGF0aG5hbWU6IHBhZ2UsXG4gICAgICAgICAgICAgICAgcXVlcnksXG4gICAgICAgICAgICAgICAgYXNQYXRoLFxuICAgICAgICAgICAgICAgIEFwcFRyZWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZW5kZXJFcnJvclByb3BzLnByb3BzID8gcmVuZGVyRXJyb3JQcm9wcy5wcm9wcyA6ICgwLCBfdXRpbHMpLmxvYWRHZXRJbml0aWFsUHJvcHMoQXBwLCBhcHBDdHgpKS50aGVuKChpbml0UHJvcHMpPT5kb1JlbmRlcihfb2JqZWN0U3ByZWFkKHtcbiAgICAgICAgICAgIH0sIHJlbmRlckVycm9yUHJvcHMsIHtcbiAgICAgICAgICAgICAgICBlcnIsXG4gICAgICAgICAgICAgICAgQ29tcG9uZW50OiBFcnJvckNvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBzdHlsZVNoZWV0cyxcbiAgICAgICAgICAgICAgICBwcm9wczogaW5pdFByb3BzXG4gICAgICAgICAgICB9KSlcbiAgICAgICAgKTtcbiAgICB9KTtcbn1cbmxldCByZWFjdFJvb3QgPSBudWxsO1xuLy8gT24gaW5pdGlhbCByZW5kZXIgYSBoeWRyYXRlIHNob3VsZCBhbHdheXMgaGFwcGVuXG5sZXQgc2hvdWxkSHlkcmF0ZSA9IHRydWU7XG5mdW5jdGlvbiByZW5kZXJSZWFjdEVsZW1lbnQoZG9tRWwsIGZuKSB7XG4gICAgLy8gbWFyayBzdGFydCBvZiBoeWRyYXRlL3JlbmRlclxuICAgIGlmIChfdXRpbHMuU1QpIHtcbiAgICAgICAgcGVyZm9ybWFuY2UubWFyaygnYmVmb3JlUmVuZGVyJyk7XG4gICAgfVxuICAgIGNvbnN0IHJlYWN0RWwgPSBmbihzaG91bGRIeWRyYXRlID8gbWFya0h5ZHJhdGVDb21wbGV0ZSA6IG1hcmtSZW5kZXJDb21wbGV0ZSk7XG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9SRUFDVF9ST09UKSB7XG4gICAgICAgIGlmICghcmVhY3RSb290KSB7XG4gICAgICAgICAgICAvLyBVbmxpa2Ugd2l0aCBjcmVhdGVSb290LCB5b3UgZG9uJ3QgbmVlZCBhIHNlcGFyYXRlIHJvb3QucmVuZGVyKCkgY2FsbCBoZXJlXG4gICAgICAgICAgICByZWFjdFJvb3QgPSBfcmVhY3REb20uZGVmYXVsdC5oeWRyYXRlUm9vdChkb21FbCwgcmVhY3RFbCk7XG4gICAgICAgICAgICAvLyBUT0RPOiBSZW1vdmUgc2hvdWxkSHlkcmF0ZSB2YXJpYWJsZSB3aGVuIFJlYWN0IDE4IGlzIHN0YWJsZSBhcyBpdCBjYW4gZGVwZW5kIG9uIGByZWFjdFJvb3RgIGV4aXN0aW5nXG4gICAgICAgICAgICBzaG91bGRIeWRyYXRlID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZWFjdFJvb3QucmVuZGVyKHJlYWN0RWwpO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgLy8gVGhlIGNoZWNrIGZvciBgLmh5ZHJhdGVgIGlzIHRoZXJlIHRvIHN1cHBvcnQgUmVhY3QgYWx0ZXJuYXRpdmVzIGxpa2UgcHJlYWN0XG4gICAgICAgIGlmIChzaG91bGRIeWRyYXRlKSB7XG4gICAgICAgICAgICBfcmVhY3REb20uZGVmYXVsdC5oeWRyYXRlKHJlYWN0RWwsIGRvbUVsKTtcbiAgICAgICAgICAgIHNob3VsZEh5ZHJhdGUgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIF9yZWFjdERvbS5kZWZhdWx0LnJlbmRlcihyZWFjdEVsLCBkb21FbCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBtYXJrSHlkcmF0ZUNvbXBsZXRlKCkge1xuICAgIGlmICghX3V0aWxzLlNUKSByZXR1cm47XG4gICAgcGVyZm9ybWFuY2UubWFyaygnYWZ0ZXJIeWRyYXRlJykgLy8gbWFyayBlbmQgb2YgaHlkcmF0aW9uXG4gICAgO1xuICAgIHBlcmZvcm1hbmNlLm1lYXN1cmUoJ05leHQuanMtYmVmb3JlLWh5ZHJhdGlvbicsICduYXZpZ2F0aW9uU3RhcnQnLCAnYmVmb3JlUmVuZGVyJyk7XG4gICAgcGVyZm9ybWFuY2UubWVhc3VyZSgnTmV4dC5qcy1oeWRyYXRpb24nLCAnYmVmb3JlUmVuZGVyJywgJ2FmdGVySHlkcmF0ZScpO1xuICAgIGlmIChvblBlcmZFbnRyeSkge1xuICAgICAgICBwZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlOYW1lKCdOZXh0LmpzLWh5ZHJhdGlvbicpLmZvckVhY2gob25QZXJmRW50cnkpO1xuICAgIH1cbiAgICBjbGVhck1hcmtzKCk7XG59XG5mdW5jdGlvbiBtYXJrUmVuZGVyQ29tcGxldGUoKSB7XG4gICAgaWYgKCFfdXRpbHMuU1QpIHJldHVybjtcbiAgICBwZXJmb3JtYW5jZS5tYXJrKCdhZnRlclJlbmRlcicpIC8vIG1hcmsgZW5kIG9mIHJlbmRlclxuICAgIDtcbiAgICBjb25zdCBuYXZTdGFydEVudHJpZXMgPSBwZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlOYW1lKCdyb3V0ZUNoYW5nZScsICdtYXJrJyk7XG4gICAgaWYgKCFuYXZTdGFydEVudHJpZXMubGVuZ3RoKSByZXR1cm47XG4gICAgcGVyZm9ybWFuY2UubWVhc3VyZSgnTmV4dC5qcy1yb3V0ZS1jaGFuZ2UtdG8tcmVuZGVyJywgbmF2U3RhcnRFbnRyaWVzWzBdLm5hbWUsICdiZWZvcmVSZW5kZXInKTtcbiAgICBwZXJmb3JtYW5jZS5tZWFzdXJlKCdOZXh0LmpzLXJlbmRlcicsICdiZWZvcmVSZW5kZXInLCAnYWZ0ZXJSZW5kZXInKTtcbiAgICBpZiAob25QZXJmRW50cnkpIHtcbiAgICAgICAgcGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5TmFtZSgnTmV4dC5qcy1yZW5kZXInKS5mb3JFYWNoKG9uUGVyZkVudHJ5KTtcbiAgICAgICAgcGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5TmFtZSgnTmV4dC5qcy1yb3V0ZS1jaGFuZ2UtdG8tcmVuZGVyJykuZm9yRWFjaChvblBlcmZFbnRyeSk7XG4gICAgfVxuICAgIGNsZWFyTWFya3MoKTtcbiAgICBbXG4gICAgICAgICdOZXh0LmpzLXJvdXRlLWNoYW5nZS10by1yZW5kZXInLFxuICAgICAgICAnTmV4dC5qcy1yZW5kZXInXG4gICAgXS5mb3JFYWNoKChtZWFzdXJlKT0+cGVyZm9ybWFuY2UuY2xlYXJNZWFzdXJlcyhtZWFzdXJlKVxuICAgICk7XG59XG5mdW5jdGlvbiBjbGVhck1hcmtzKCkge1xuICAgIFtcbiAgICAgICAgJ2JlZm9yZVJlbmRlcicsXG4gICAgICAgICdhZnRlckh5ZHJhdGUnLFxuICAgICAgICAnYWZ0ZXJSZW5kZXInLFxuICAgICAgICAncm91dGVDaGFuZ2UnXG4gICAgXS5mb3JFYWNoKChtYXJrKT0+cGVyZm9ybWFuY2UuY2xlYXJNYXJrcyhtYXJrKVxuICAgICk7XG59XG5mdW5jdGlvbiBBcHBDb250YWluZXIoeyBjaGlsZHJlbiAgfSkge1xuICAgIHJldHVybigvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoQ29udGFpbmVyLCB7XG4gICAgICAgIGZuOiAoZXJyb3IpPT5yZW5kZXJFcnJvcih7XG4gICAgICAgICAgICAgICAgQXBwOiBDYWNoZWRBcHAsXG4gICAgICAgICAgICAgICAgZXJyOiBlcnJvclxuICAgICAgICAgICAgfSkuY2F0Y2goKGVycik9PmNvbnNvbGUuZXJyb3IoJ0Vycm9yIHJlbmRlcmluZyBwYWdlOiAnLCBlcnIpXG4gICAgICAgICAgICApXG4gICAgfSwgLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KF9yb3V0ZXJDb250ZXh0LlJvdXRlckNvbnRleHQuUHJvdmlkZXIsIHtcbiAgICAgICAgdmFsdWU6ICgwLCBfcm91dGVyMSkubWFrZVB1YmxpY1JvdXRlckluc3RhbmNlKHJvdXRlcilcbiAgICB9LCAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoX2hlYWRNYW5hZ2VyQ29udGV4dC5IZWFkTWFuYWdlckNvbnRleHQuUHJvdmlkZXIsIHtcbiAgICAgICAgdmFsdWU6IGhlYWRNYW5hZ2VyXG4gICAgfSwgLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KF9zdHlsZWRKc3guU3R5bGVSZWdpc3RyeSwgbnVsbCwgY2hpbGRyZW4pKSkpKTtcbn1cbmNvbnN0IHdyYXBBcHAgPSAoQXBwKT0+KHdyYXBwZWRBcHBQcm9wcyk9PntcbiAgICAgICAgY29uc3QgYXBwUHJvcHMgPSBfb2JqZWN0U3ByZWFkKHtcbiAgICAgICAgfSwgd3JhcHBlZEFwcFByb3BzLCB7XG4gICAgICAgICAgICBDb21wb25lbnQ6IENhY2hlZENvbXBvbmVudCxcbiAgICAgICAgICAgIGVycjogaHlkcmF0ZUVycixcbiAgICAgICAgICAgIHJvdXRlclxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChBcHBDb250YWluZXIsIG51bGwsIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChBcHAsIE9iamVjdC5hc3NpZ24oe1xuICAgICAgICB9LCBhcHBQcm9wcykpKSk7XG4gICAgfVxuO1xubGV0IFJTQ0NvbXBvbmVudDtcbmlmIChwcm9jZXNzLmVudi5fX05FWFRfUlNDKSB7XG4gICAgZnVuY3Rpb24gY3JlYXRlUmVzcG9uc2VDYWNoZSgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXAoKTtcbiAgICB9XG4gICAgY29uc3QgcnNjQ2FjaGUgPSBjcmVhdGVSZXNwb25zZUNhY2hlKCk7XG4gICAgY29uc3QgUlNDV3JhcHBlciA9ICh7IGNhY2hlS2V5ICwgc2VyaWFsaXplZCAsIF9mcmVzaCAgfSk9PntcbiAgICAgICAgY29uc3QgeyBjcmVhdGVGcm9tRmV0Y2ggLCAgfSA9IHJlcXVpcmUoJ25leHQvZGlzdC9jb21waWxlZC9yZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2snKTtcbiAgICAgICAgbGV0IHJlc3BvbnNlID0gcnNjQ2FjaGUuZ2V0KGNhY2hlS2V5KTtcbiAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gY2FjaGUsIG9yIHRoZXJlIGlzIHNlcmlhbGl6ZWQgZGF0YSBhbHJlYWR5XG4gICAgICAgIGlmICghcmVzcG9uc2UpIHtcbiAgICAgICAgICAgIHJlc3BvbnNlID0gY3JlYXRlRnJvbUZldGNoKHNlcmlhbGl6ZWQgPyAoKCk9PntcbiAgICAgICAgICAgICAgICBjb25zdCB0ID0gbmV3IFRyYW5zZm9ybVN0cmVhbSgpO1xuICAgICAgICAgICAgICAgIHQud3JpdGFibGUuZ2V0V3JpdGVyKCkud3JpdGUobmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKHNlcmlhbGl6ZWQpKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgICAgICAgICAgICAgICAgYm9keTogdC5yZWFkYWJsZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSkoKSA6ICgoKT0+e1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlYXJjaCA9IGxvY2F0aW9uLnNlYXJjaDtcbiAgICAgICAgICAgICAgICBjb25zdCBmbGlnaHRSZXFVcmwgPSBsb2NhdGlvbi5wYXRobmFtZSArIHNlYXJjaCArIChzZWFyY2ggPyAnJl9fZmxpZ2h0X18nIDogJz9fX2ZsaWdodF9fJyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZldGNoKGZsaWdodFJlcVVybCk7XG4gICAgICAgICAgICB9KSgpKTtcbiAgICAgICAgICAgIHJzY0NhY2hlLnNldChjYWNoZUtleSwgcmVzcG9uc2UpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJvb3QgPSByZXNwb25zZS5yZWFkUm9vdCgpO1xuICAgICAgICByZXR1cm4gcm9vdDtcbiAgICB9O1xuICAgIFJTQ0NvbXBvbmVudCA9IChwcm9wcyk9PntcbiAgICAgICAgY29uc3QgeyBhc1BhdGg6IGNhY2hlS2V5ICB9ID0gKDAsIF9yb3V0ZXIxKS51c2VSb3V0ZXIoKTtcbiAgICAgICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChfcmVhY3QuZGVmYXVsdC5TdXNwZW5zZSwge1xuICAgICAgICAgICAgZmFsbGJhY2s6IG51bGxcbiAgICAgICAgfSwgLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFJTQ1dyYXBwZXIsIHtcbiAgICAgICAgICAgIGNhY2hlS2V5OiBjYWNoZUtleSxcbiAgICAgICAgICAgIHNlcmlhbGl6ZWQ6IHByb3BzLl9fZmxpZ2h0X3NlcmlhbGl6ZWRfXyxcbiAgICAgICAgICAgIF9mcmVzaDogcHJvcHMuX19mbGlnaHRfZnJlc2hfX1xuICAgICAgICB9KSkpO1xuICAgIH07XG59XG5sZXQgbGFzdEFwcFByb3BzO1xuZnVuY3Rpb24gZG9SZW5kZXIoaW5wdXQpIHtcbiAgICBsZXQgeyBBcHAgLCBDb21wb25lbnQgLCBwcm9wcyAsIGVyciAsIF9fTl9SU0MgIH0gPSBpbnB1dDtcbiAgICBsZXQgc3R5bGVTaGVldHMgPSAnaW5pdGlhbCcgaW4gaW5wdXQgPyB1bmRlZmluZWQgOiBpbnB1dC5zdHlsZVNoZWV0cztcbiAgICBDb21wb25lbnQgPSBDb21wb25lbnQgfHwgbGFzdEFwcFByb3BzLkNvbXBvbmVudDtcbiAgICBwcm9wcyA9IHByb3BzIHx8IGxhc3RBcHBQcm9wcy5wcm9wcztcbiAgICBjb25zdCBpc1JTQyA9IHByb2Nlc3MuZW52Ll9fTkVYVF9SU0MgJiYgJ2luaXRpYWwnIGluIGlucHV0ID8gISFyc2MgOiAhIV9fTl9SU0M7XG4gICAgY29uc3QgYXBwUHJvcHMgPSBfb2JqZWN0U3ByZWFkKHtcbiAgICB9LCBwcm9wcywge1xuICAgICAgICBDb21wb25lbnQ6IGlzUlNDID8gUlNDQ29tcG9uZW50IDogQ29tcG9uZW50LFxuICAgICAgICBlcnIsXG4gICAgICAgIHJvdXRlclxuICAgIH0pO1xuICAgIC8vIGxhc3RBcHBQcm9wcyBoYXMgdG8gYmUgc2V0IGJlZm9yZSBSZWFjdERvbS5yZW5kZXIgdG8gYWNjb3VudCBmb3IgUmVhY3REb20gdGhyb3dpbmcgYW4gZXJyb3IuXG4gICAgbGFzdEFwcFByb3BzID0gYXBwUHJvcHM7XG4gICAgbGV0IGNhbmNlbGVkID0gZmFsc2U7XG4gICAgbGV0IHJlc29sdmVQcm9taXNlO1xuICAgIGNvbnN0IHJlbmRlclByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KT0+e1xuICAgICAgICBpZiAobGFzdFJlbmRlclJlamVjdCkge1xuICAgICAgICAgICAgbGFzdFJlbmRlclJlamVjdCgpO1xuICAgICAgICB9XG4gICAgICAgIHJlc29sdmVQcm9taXNlID0gKCk9PntcbiAgICAgICAgICAgIGxhc3RSZW5kZXJSZWplY3QgPSBudWxsO1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICB9O1xuICAgICAgICBsYXN0UmVuZGVyUmVqZWN0ID0gKCk9PntcbiAgICAgICAgICAgIGNhbmNlbGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGxhc3RSZW5kZXJSZWplY3QgPSBudWxsO1xuICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoJ0NhbmNlbCByZW5kZXJpbmcgcm91dGUnKTtcbiAgICAgICAgICAgIGVycm9yLmNhbmNlbGxlZCA9IHRydWU7XG4gICAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICB9O1xuICAgIH0pO1xuICAgIC8vIFRoaXMgZnVuY3Rpb24gaGFzIGEgcmV0dXJuIHR5cGUgdG8gZW5zdXJlIGl0IGRvZXNuJ3Qgc3RhcnQgcmV0dXJuaW5nIGFcbiAgICAvLyBQcm9taXNlLiBJdCBzaG91bGQgcmVtYWluIHN5bmNocm9ub3VzLlxuICAgIGZ1bmN0aW9uIG9uU3RhcnQoKSB7XG4gICAgICAgIGlmICghc3R5bGVTaGVldHMgfHwgLy8gV2UgdXNlIGBzdHlsZS1sb2FkZXJgIGluIGRldmVsb3BtZW50LCBzbyB3ZSBkb24ndCBuZWVkIHRvIGRvIGFueXRoaW5nXG4gICAgICAgIC8vIHVubGVzcyB3ZSdyZSBpbiBwcm9kdWN0aW9uOlxuICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY3VycmVudFN0eWxlVGFncyA9IGxvb3NlVG9BcnJheShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdzdHlsZVtkYXRhLW4taHJlZl0nKSk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRIcmVmcyA9IG5ldyBTZXQoY3VycmVudFN0eWxlVGFncy5tYXAoKHRhZyk9PnRhZy5nZXRBdHRyaWJ1dGUoJ2RhdGEtbi1ocmVmJylcbiAgICAgICAgKSk7XG4gICAgICAgIGNvbnN0IG5vc2NyaXB0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcignbm9zY3JpcHRbZGF0YS1uLWNzc10nKTtcbiAgICAgICAgY29uc3Qgbm9uY2UgPSBub3NjcmlwdCA9PT0gbnVsbCB8fCBub3NjcmlwdCA9PT0gdm9pZCAwID8gdm9pZCAwIDogbm9zY3JpcHQuZ2V0QXR0cmlidXRlKCdkYXRhLW4tY3NzJyk7XG4gICAgICAgIHN0eWxlU2hlZXRzLmZvckVhY2goKHsgaHJlZiAsIHRleHQgIH0pPT57XG4gICAgICAgICAgICBpZiAoIWN1cnJlbnRIcmVmcy5oYXMoaHJlZikpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdHlsZVRhZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gICAgICAgICAgICAgICAgc3R5bGVUYWcuc2V0QXR0cmlidXRlKCdkYXRhLW4taHJlZicsIGhyZWYpO1xuICAgICAgICAgICAgICAgIHN0eWxlVGFnLnNldEF0dHJpYnV0ZSgnbWVkaWEnLCAneCcpO1xuICAgICAgICAgICAgICAgIGlmIChub25jZSkge1xuICAgICAgICAgICAgICAgICAgICBzdHlsZVRhZy5zZXRBdHRyaWJ1dGUoJ25vbmNlJywgbm9uY2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0eWxlVGFnKTtcbiAgICAgICAgICAgICAgICBzdHlsZVRhZy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZXh0KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gb25IZWFkQ29tbWl0KCkge1xuICAgICAgICBpZiAoLy8gV2UgdXNlIGBzdHlsZS1sb2FkZXJgIGluIGRldmVsb3BtZW50LCBzbyB3ZSBkb24ndCBuZWVkIHRvIGRvIGFueXRoaW5nXG4gICAgICAgIC8vIHVubGVzcyB3ZSdyZSBpbiBwcm9kdWN0aW9uOlxuICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nICYmIC8vIFdlIGNhbiBza2lwIHRoaXMgZHVyaW5nIGh5ZHJhdGlvbi4gUnVubmluZyBpdCB3b250IGNhdXNlIGFueSBoYXJtLCBidXRcbiAgICAgICAgLy8gd2UgbWF5IGFzIHdlbGwgc2F2ZSB0aGUgQ1BVIGN5Y2xlczpcbiAgICAgICAgc3R5bGVTaGVldHMgJiYgLy8gRW5zdXJlIHRoaXMgcmVuZGVyIHdhcyBub3QgY2FuY2VsZWRcbiAgICAgICAgIWNhbmNlbGVkKSB7XG4gICAgICAgICAgICBjb25zdCBkZXNpcmVkSHJlZnMgPSBuZXcgU2V0KHN0eWxlU2hlZXRzLm1hcCgocyk9PnMuaHJlZlxuICAgICAgICAgICAgKSk7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50U3R5bGVUYWdzID0gbG9vc2VUb0FycmF5KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3N0eWxlW2RhdGEtbi1ocmVmXScpKTtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRIcmVmcyA9IGN1cnJlbnRTdHlsZVRhZ3MubWFwKCh0YWcpPT50YWcuZ2V0QXR0cmlidXRlKCdkYXRhLW4taHJlZicpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgLy8gVG9nZ2xlIGA8c3R5bGU+YCB0YWdzIG9uIG9yIG9mZiBkZXBlbmRpbmcgb24gaWYgdGhleSdyZSBuZWVkZWQ6XG4gICAgICAgICAgICBmb3IobGV0IGlkeCA9IDA7IGlkeCA8IGN1cnJlbnRIcmVmcy5sZW5ndGg7ICsraWR4KXtcbiAgICAgICAgICAgICAgICBpZiAoZGVzaXJlZEhyZWZzLmhhcyhjdXJyZW50SHJlZnNbaWR4XSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFN0eWxlVGFnc1tpZHhdLnJlbW92ZUF0dHJpYnV0ZSgnbWVkaWEnKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50U3R5bGVUYWdzW2lkeF0uc2V0QXR0cmlidXRlKCdtZWRpYScsICd4Jyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gUmVvcmRlciBzdHlsZXMgaW50byBpbnRlbmRlZCBvcmRlcjpcbiAgICAgICAgICAgIGxldCByZWZlcmVuY2VOb2RlID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcignbm9zY3JpcHRbZGF0YS1uLWNzc10nKTtcbiAgICAgICAgICAgIGlmICgvLyBUaGlzIHNob3VsZCBiZSBhbiBpbnZhcmlhbnQ6XG4gICAgICAgICAgICByZWZlcmVuY2VOb2RlKSB7XG4gICAgICAgICAgICAgICAgc3R5bGVTaGVldHMuZm9yRWFjaCgoeyBocmVmICB9KT0+e1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXRUYWcgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBzdHlsZVtkYXRhLW4taHJlZj1cIiR7aHJlZn1cIl1gKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKC8vIFRoaXMgc2hvdWxkIGJlIGFuIGludmFyaWFudDpcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0VGFnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2VOb2RlLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRhcmdldFRhZywgcmVmZXJlbmNlTm9kZS5uZXh0U2libGluZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2VOb2RlID0gdGFyZ2V0VGFnO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBGaW5hbGx5LCBjbGVhbiB1cCBzZXJ2ZXIgcmVuZGVyZWQgc3R5bGVzaGVldHM6XG4gICAgICAgICAgICBsb29zZVRvQXJyYXkoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnbGlua1tkYXRhLW4tcF0nKSkuZm9yRWFjaCgoZWwpPT57XG4gICAgICAgICAgICAgICAgZWwucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlbCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5wdXQuc2Nyb2xsKSB7XG4gICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oaW5wdXQuc2Nyb2xsLngsIGlucHV0LnNjcm9sbC55KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBvblJvb3RDb21taXQoKSB7XG4gICAgICAgIHJlc29sdmVQcm9taXNlKCk7XG4gICAgfVxuICAgIG9uU3RhcnQoKTtcbiAgICBjb25zdCBlbGVtID0gLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KF9yZWFjdC5kZWZhdWx0LkZyYWdtZW50LCBudWxsLCAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoSGVhZCwge1xuICAgICAgICBjYWxsYmFjazogb25IZWFkQ29tbWl0XG4gICAgfSksIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChBcHBDb250YWluZXIsIG51bGwsIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChBcHAsIE9iamVjdC5hc3NpZ24oe1xuICAgIH0sIGFwcFByb3BzKSksIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChfcG9ydGFsLlBvcnRhbCwge1xuICAgICAgICB0eXBlOiBcIm5leHQtcm91dGUtYW5ub3VuY2VyXCJcbiAgICB9LCAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoX3JvdXRlQW5ub3VuY2VyLlJvdXRlQW5ub3VuY2VyLCBudWxsKSkpKTtcbiAgICAvLyBXZSBjYXRjaCBydW50aW1lIGVycm9ycyB1c2luZyBjb21wb25lbnREaWRDYXRjaCB3aGljaCB3aWxsIHRyaWdnZXIgcmVuZGVyRXJyb3JcbiAgICByZW5kZXJSZWFjdEVsZW1lbnQoYXBwRWxlbWVudCwgKGNhbGxiYWNrKT0+LyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFJvb3QsIHtcbiAgICAgICAgICAgIGNhbGxiYWNrczogW1xuICAgICAgICAgICAgICAgIGNhbGxiYWNrLFxuICAgICAgICAgICAgICAgIG9uUm9vdENvbW1pdFxuICAgICAgICAgICAgXVxuICAgICAgICB9LCBwcm9jZXNzLmVudi5fX05FWFRfU1RSSUNUX01PREUgPyAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoX3JlYWN0LmRlZmF1bHQuU3RyaWN0TW9kZSwgbnVsbCwgZWxlbSkgOiBlbGVtKVxuICAgICk7XG4gICAgcmV0dXJuIHJlbmRlclByb21pc2U7XG59XG5mdW5jdGlvbiBSb290KHsgY2FsbGJhY2tzICwgY2hpbGRyZW4gIH0pIHtcbiAgICAvLyBXZSB1c2UgYHVzZUxheW91dEVmZmVjdGAgdG8gZ3VhcmFudGVlIHRoZSBjYWxsYmFja3MgYXJlIGV4ZWN1dGVkXG4gICAgLy8gYXMgc29vbiBhcyBSZWFjdCBmbHVzaGVzIHRoZSB1cGRhdGVcbiAgICBfcmVhY3QuZGVmYXVsdC51c2VMYXlvdXRFZmZlY3QoKCk9PmNhbGxiYWNrcy5mb3JFYWNoKChjYWxsYmFjayk9PmNhbGxiYWNrKClcbiAgICAgICAgKVxuICAgICwgW1xuICAgICAgICBjYWxsYmFja3NcbiAgICBdKTtcbiAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX1RFU1RfTU9ERSkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgICAgICAgX3JlYWN0LmRlZmF1bHQudXNlRWZmZWN0KCgpPT57XG4gICAgICAgICAgICB3aW5kb3cuX19ORVhUX0hZRFJBVEVEID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmICh3aW5kb3cuX19ORVhUX0hZRFJBVEVEX0NCKSB7XG4gICAgICAgICAgICAgICAgd2luZG93Ll9fTkVYVF9IWURSQVRFRF9DQigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCBbXSk7XG4gICAgfVxuICAgIC8vIFdlIHNob3VsZCBhc2sgdG8gbWVhc3VyZSB0aGUgV2ViIFZpdGFscyBhZnRlciByZW5kZXJpbmcgY29tcGxldGVzIHNvIHdlXG4gICAgLy8gZG9uJ3QgY2F1c2UgYW55IGh5ZHJhdGlvbiBkZWxheTpcbiAgICBfcmVhY3QuZGVmYXVsdC51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgKDAsIF9wZXJmb3JtYW5jZVJlbGF5ZXIpLmRlZmF1bHQob25QZXJmRW50cnkpO1xuICAgIH0sIFtdKTtcbiAgICByZXR1cm4gY2hpbGRyZW47XG59XG4vLyBEdW1teSBjb21wb25lbnQgdGhhdCB3ZSByZW5kZXIgYXMgYSBjaGlsZCBvZiBSb290IHNvIHRoYXQgd2UgY2FuXG4vLyB0b2dnbGUgdGhlIGNvcnJlY3Qgc3R5bGVzIGJlZm9yZSB0aGUgcGFnZSBpcyByZW5kZXJlZC5cbmZ1bmN0aW9uIEhlYWQoeyBjYWxsYmFjayAgfSkge1xuICAgIC8vIFdlIHVzZSBgdXNlTGF5b3V0RWZmZWN0YCB0byBndWFyYW50ZWUgdGhlIGNhbGxiYWNrIGlzIGV4ZWN1dGVkXG4gICAgLy8gYXMgc29vbiBhcyBSZWFjdCBmbHVzaGVzIHRoZSB1cGRhdGUuXG4gICAgX3JlYWN0LmRlZmF1bHQudXNlTGF5b3V0RWZmZWN0KCgpPT5jYWxsYmFjaygpXG4gICAgLCBbXG4gICAgICAgIGNhbGxiYWNrXG4gICAgXSk7XG4gICAgcmV0dXJuIG51bGw7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImluaXROZXh0IiwicmVuZGVyIiwicmVuZGVyRXJyb3IiLCJlbWl0dGVyIiwicm91dGVyIiwidmVyc2lvbiIsInJlcXVpcmUiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3JlYWN0RG9tIiwiX3N0eWxlZEpzeCIsIl9oZWFkTWFuYWdlckNvbnRleHQiLCJfbWl0dCIsIl9yb3V0ZXJDb250ZXh0IiwiX3JvdXRlciIsIl9pc0R5bmFtaWMiLCJfcXVlcnlzdHJpbmciLCJfcnVudGltZUNvbmZpZyIsIl91dGlscyIsIl9wb3J0YWwiLCJfaGVhZE1hbmFnZXIiLCJfcGFnZUxvYWRlciIsIl9wZXJmb3JtYW5jZVJlbGF5ZXIiLCJfcm91dGVBbm5vdW5jZXIiLCJfcm91dGVyMSIsIl9pc0Vycm9yIiwiX3ZpdGFscyIsImFzeW5jR2VuZXJhdG9yU3RlcCIsImdlbiIsInJlc29sdmUiLCJyZWplY3QiLCJfbmV4dCIsIl90aHJvdyIsImtleSIsImFyZyIsImluZm8iLCJlcnJvciIsImRvbmUiLCJQcm9taXNlIiwidGhlbiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiZm4iLCJzZWxmIiwiYXJncyIsImFyZ3VtZW50cyIsImFwcGx5IiwiZXJyIiwidW5kZWZpbmVkIiwiX2RlZmluZVByb3BlcnR5Iiwib2JqIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiX19lc01vZHVsZSIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwibmV3T2JqIiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImdldCIsInNldCIsIl9vYmplY3RTcHJlYWQiLCJ0YXJnZXQiLCJpIiwibGVuZ3RoIiwic291cmNlIiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJjb25jYXQiLCJmaWx0ZXIiLCJzeW0iLCJmb3JFYWNoIiwiZGF0YSIsIkpTT04iLCJwYXJzZSIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJ0ZXh0Q29udGVudCIsIndpbmRvdyIsIl9fTkVYVF9EQVRBX18iLCJsb29zZVRvQXJyYXkiLCJpbnB1dCIsInNsaWNlIiwiaHlkcmF0ZVByb3BzIiwicHJvcHMiLCJoeWRyYXRlRXJyIiwicGFnZSIsInF1ZXJ5IiwiYnVpbGRJZCIsImFzc2V0UHJlZml4IiwicnVudGltZUNvbmZpZyIsImR5bmFtaWNJZHMiLCJpc0ZhbGxiYWNrIiwibG9jYWxlIiwibG9jYWxlcyIsImRvbWFpbkxvY2FsZXMiLCJpc1ByZXZpZXciLCJyc2MiLCJkZWZhdWx0TG9jYWxlIiwicHJlZml4IiwiX193ZWJwYWNrX3B1YmxpY19wYXRoX18iLCJzZXRDb25maWciLCJzZXJ2ZXJSdW50aW1lQ29uZmlnIiwicHVibGljUnVudGltZUNvbmZpZyIsImFzUGF0aCIsImdldFVSTCIsImhhc0Jhc2VQYXRoIiwiZGVsQmFzZVBhdGgiLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX0kxOE5fU1VQUE9SVCIsIm5vcm1hbGl6ZUxvY2FsZVBhdGgiLCJkZXRlY3REb21haW5Mb2NhbGUiLCJwYXJzZVJlbGF0aXZlVXJsIiwiZm9ybWF0VXJsIiwicGFyc2VkQXMiLCJsb2NhbGVQYXRoUmVzdWx0IiwicGF0aG5hbWUiLCJkZXRlY3RlZExvY2FsZSIsImRldGVjdGVkRG9tYWluIiwiX19ORVhUX0kxOE5fRE9NQUlOUyIsImxvY2F0aW9uIiwiaG9zdG5hbWUiLCJzY3JpcHRMb2FkZXIiLCJpbml0U2NyaXB0TG9hZGVyIiwicGFnZUxvYWRlciIsInJlZ2lzdGVyIiwiciIsImYiLCJyb3V0ZUxvYWRlciIsIm9uRW50cnlwb2ludCIsIl9fTkVYVF9QIiwibWFwIiwicCIsInNldFRpbWVvdXQiLCJwdXNoIiwiaGVhZE1hbmFnZXIiLCJhcHBFbGVtZW50IiwibGFzdFJlbmRlclJlamVjdCIsIndlYnBhY2tITVIiLCJDYWNoZWRBcHAiLCJvblBlcmZFbnRyeSIsImdldElzU3NyIiwiaXNTc3IiLCJDb250YWluZXIiLCJjb21wb25lbnRFcnIiLCJzY3JvbGxUb0hhc2giLCJuZXh0RXhwb3J0IiwiaXNEeW5hbWljUm91dGUiLCJzZWFyY2giLCJfX05FWFRfSEFTX1JFV1JJVEVTIiwiX19OX1NTRyIsInJlcGxhY2UiLCJTdHJpbmciLCJhc3NpZ24iLCJ1cmxRdWVyeVRvU2VhcmNoUGFyYW1zIiwiVVJMU2VhcmNoUGFyYW1zIiwiX2giLCJzaGFsbG93IiwiaGFzaCIsInN1YnN0cmluZyIsImVsIiwic2Nyb2xsSW50b1ZpZXciLCJjaGlsZHJlbiIsIlJlYWN0RGV2T3ZlcmxheSIsImNyZWF0ZUVsZW1lbnQiLCJDb21wb25lbnQiLCJDYWNoZWRDb21wb25lbnQiLCJfaW5pdE5leHQiLCJvcHRzIiwiaW5pdGlhbEVyciIsIndoZW5FbnRyeXBvaW50IiwiYXBwRW50cnlwb2ludCIsImFwcCIsImNvbXBvbmVudCIsIm1vZCIsImV4cG9ydGVkUmVwb3J0V2ViVml0YWxzIiwicmVwb3J0V2ViVml0YWxzIiwiaWQiLCJuYW1lIiwic3RhcnRUaW1lIiwiZHVyYXRpb24iLCJlbnRyeVR5cGUiLCJlbnRyaWVzIiwidW5pcXVlSUQiLCJEYXRlIiwibm93IiwiTWF0aCIsImZsb29yIiwicmFuZG9tIiwicGVyZlN0YXJ0RW50cnkiLCJ3ZWJWaXRhbHMiLCJsYWJlbCIsInRyYWNrV2ViVml0YWxNZXRyaWMiLCJwYWdlRW50cnlwb2ludCIsImlzVmFsaWRFbGVtZW50VHlwZSIsIkVycm9yIiwiZ2V0Tm9kZUVycm9yIiwibWVzc2FnZSIsImUiLCJzdGFjayIsIm5vZGUiLCJfX05FWFRfUFJFTE9BRFJFQURZIiwiY3JlYXRlUm91dGVyIiwiaW5pdGlhbFByb3BzIiwiQXBwIiwid3JhcEFwcCIsIkJvb2xlYW4iLCJzdWJzY3JpcHRpb24iLCJzY3JvbGwiLCJyZW5kZXJDdHgiLCJpbml0aWFsIiwiX3JlbmRlciIsInJlbmRlcmluZ1Byb3BzIiwiZG9SZW5kZXIiLCJyZW5kZXJFcnIiLCJjYW5jZWxsZWQiLCJyZW5kZXJFcnJvclByb3BzIiwib25VbnJlY292ZXJhYmxlRXJyb3IiLCJzdHlsZVNoZWV0cyIsImNvbnNvbGUiLCJsb2FkUGFnZSIsIkVycm9yQ29tcG9uZW50IiwibGFzdEFwcFByb3BzIiwibSIsIkFwcFRyZWUiLCJhcHBDdHgiLCJjdHgiLCJsb2FkR2V0SW5pdGlhbFByb3BzIiwiaW5pdFByb3BzIiwicmVhY3RSb290Iiwic2hvdWxkSHlkcmF0ZSIsInJlbmRlclJlYWN0RWxlbWVudCIsImRvbUVsIiwiU1QiLCJwZXJmb3JtYW5jZSIsIm1hcmsiLCJyZWFjdEVsIiwibWFya0h5ZHJhdGVDb21wbGV0ZSIsIm1hcmtSZW5kZXJDb21wbGV0ZSIsIl9fTkVYVF9SRUFDVF9ST09UIiwiaHlkcmF0ZVJvb3QiLCJoeWRyYXRlIiwibWVhc3VyZSIsImdldEVudHJpZXNCeU5hbWUiLCJjbGVhck1hcmtzIiwibmF2U3RhcnRFbnRyaWVzIiwiY2xlYXJNZWFzdXJlcyIsIkFwcENvbnRhaW5lciIsIlJvdXRlckNvbnRleHQiLCJQcm92aWRlciIsIm1ha2VQdWJsaWNSb3V0ZXJJbnN0YW5jZSIsIkhlYWRNYW5hZ2VyQ29udGV4dCIsIlN0eWxlUmVnaXN0cnkiLCJ3cmFwcGVkQXBwUHJvcHMiLCJhcHBQcm9wcyIsIlJTQ0NvbXBvbmVudCIsIl9fTkVYVF9SU0MiLCJjcmVhdGVSZXNwb25zZUNhY2hlIiwiTWFwIiwicnNjQ2FjaGUiLCJSU0NXcmFwcGVyIiwiY2FjaGVLZXkiLCJzZXJpYWxpemVkIiwiX2ZyZXNoIiwiY3JlYXRlRnJvbUZldGNoIiwicmVzcG9uc2UiLCJ0IiwiVHJhbnNmb3JtU3RyZWFtIiwiZ2V0V3JpdGVyIiwid3JpdGUiLCJUZXh0RW5jb2RlciIsImVuY29kZSIsImJvZHkiLCJyZWFkYWJsZSIsImZsaWdodFJlcVVybCIsImZldGNoIiwicm9vdCIsInJlYWRSb290IiwidXNlUm91dGVyIiwiU3VzcGVuc2UiLCJmYWxsYmFjayIsIl9fZmxpZ2h0X3NlcmlhbGl6ZWRfXyIsIl9fZmxpZ2h0X2ZyZXNoX18iLCJfX05fUlNDIiwiaXNSU0MiLCJjYW5jZWxlZCIsInJlc29sdmVQcm9taXNlIiwicmVuZGVyUHJvbWlzZSIsIm9uU3RhcnQiLCJjdXJyZW50U3R5bGVUYWdzIiwicXVlcnlTZWxlY3RvckFsbCIsImN1cnJlbnRIcmVmcyIsIlNldCIsInRhZyIsImdldEF0dHJpYnV0ZSIsIm5vc2NyaXB0IiwicXVlcnlTZWxlY3RvciIsIm5vbmNlIiwiaHJlZiIsInRleHQiLCJoYXMiLCJzdHlsZVRhZyIsInNldEF0dHJpYnV0ZSIsImhlYWQiLCJhcHBlbmRDaGlsZCIsImNyZWF0ZVRleHROb2RlIiwib25IZWFkQ29tbWl0IiwiZGVzaXJlZEhyZWZzIiwicyIsImlkeCIsInJlbW92ZUF0dHJpYnV0ZSIsInJlZmVyZW5jZU5vZGUiLCJ0YXJnZXRUYWciLCJwYXJlbnROb2RlIiwiaW5zZXJ0QmVmb3JlIiwibmV4dFNpYmxpbmciLCJyZW1vdmVDaGlsZCIsInNjcm9sbFRvIiwieCIsInkiLCJvblJvb3RDb21taXQiLCJlbGVtIiwiRnJhZ21lbnQiLCJIZWFkIiwiY2FsbGJhY2siLCJQb3J0YWwiLCJ0eXBlIiwiUm91dGVBbm5vdW5jZXIiLCJSb290IiwiY2FsbGJhY2tzIiwiX19ORVhUX1NUUklDVF9NT0RFIiwiU3RyaWN0TW9kZSIsInVzZUxheW91dEVmZmVjdCIsIl9fTkVYVF9URVNUX01PREUiLCJ1c2VFZmZlY3QiLCJfX05FWFRfSFlEUkFURUQiLCJfX05FWFRfSFlEUkFURURfQ0IiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/index.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/next-dev.js": +/*!***************************************************!*\ + !*** ./node_modules/next/dist/client/next-dev.js ***! + \***************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _ = __webpack_require__(/*! ./ */ \"./node_modules/next/dist/client/index.js\");\n\nvar _onDemandEntriesClient = _interopRequireDefault(__webpack_require__(/*! ./dev/on-demand-entries-client */ \"./node_modules/next/dist/client/dev/on-demand-entries-client.js\"));\n\nvar _webpackHotMiddlewareClient = _interopRequireDefault(__webpack_require__(/*! ./dev/webpack-hot-middleware-client */ \"./node_modules/next/dist/client/dev/webpack-hot-middleware-client.js\"));\n\nvar _devBuildWatcher = _interopRequireDefault(__webpack_require__(/*! ./dev/dev-build-watcher */ \"./node_modules/next/dist/client/dev/dev-build-watcher.js\"));\n\nvar _fouc = __webpack_require__(/*! ./dev/fouc */ \"./node_modules/next/dist/client/dev/fouc.js\");\n\nvar _websocket = __webpack_require__(/*! ./dev/error-overlay/websocket */ \"./node_modules/next/dist/client/dev/error-overlay/websocket.js\");\n\nvar _querystring = __webpack_require__(/*! ../shared/lib/router/utils/querystring */ \"./node_modules/next/dist/shared/lib/router/utils/querystring.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n} // Temporary workaround for the issue described here:\n// https://github.com/vercel/next.js/issues/3775#issuecomment-407438123\n// The runtimeChunk doesn't have dynamic import handling code when there hasn't been a dynamic import\n// The runtimeChunk can't hot reload itself currently to correct it when adding pages using on-demand-entries\n// eslint-disable-next-line no-unused-expressions\n\n\n__webpack_require__.e(/*! import() */ \"node_modules_next_dist_client_dev_noop_js\").then(__webpack_require__.t.bind(__webpack_require__, /*! ./dev/noop */ \"./node_modules/next/dist/client/dev/noop.js\", 23));\n;\nvar _window = window,\n assetPrefix = _window.__NEXT_DATA__.assetPrefix;\nvar prefix = assetPrefix || '';\nvar webpackHMR = (0, _webpackHotMiddlewareClient)[\"default\"]();\n(0, _websocket).connectHMR({\n assetPrefix: prefix,\n path: '/_next/webpack-hmr'\n});\nwindow.next = {\n version: _.version,\n\n // router is initialized later so it has to be live-binded\n get router() {\n return _.router;\n },\n\n emitter: _.emitter,\n render: _.render,\n renderError: _.renderError\n};\n(0, _).initNext({\n webpackHMR: webpackHMR\n}).then(function (_ref) {\n var renderCtx = _ref.renderCtx;\n (0, _onDemandEntriesClient)[\"default\"]();\n\n var buildIndicatorHandler = function buildIndicatorHandler() {};\n\n function devPagesManifestListener(event) {\n if (event.data.indexOf('devPagesManifest') !== -1) {\n fetch(\"\".concat(prefix, \"/_next/static/development/_devPagesManifest.json\")).then(function (res) {\n return res.json();\n }).then(function (manifest) {\n window.__DEV_PAGES_MANIFEST = manifest;\n })[\"catch\"](function (err) {\n console.log(\"Failed to fetch devPagesManifest\", err);\n });\n } else if (event.data.indexOf('middlewareChanges') !== -1) {\n return window.location.reload();\n } else if (event.data.indexOf('serverOnlyChanges') !== -1) {\n var _JSON$parse = JSON.parse(event.data),\n pages = _JSON$parse.pages; // Make sure to reload when the dev-overlay is showing for an\n // API route\n\n\n if (pages.includes(_.router.query.__NEXT_PAGE)) {\n return window.location.reload();\n }\n\n if (!_.router.clc && pages.includes(_.router.pathname)) {\n console.log('Refreshing page data due to server-side change');\n buildIndicatorHandler('building');\n\n var clearIndicator = function clearIndicator() {\n return buildIndicatorHandler('built');\n };\n\n _.router.replace(_.router.pathname + '?' + String((0, _querystring).assign((0, _querystring).urlQueryToSearchParams(_.router.query), new URLSearchParams(location.search))), _.router.asPath)[\"finally\"](clearIndicator);\n }\n }\n }\n\n (0, _websocket).addMessageListener(devPagesManifestListener);\n\n if (false) {} // delay rendering until after styles have been applied in development\n\n\n (0, _fouc).displayContent(function () {\n (0, _).render(renderCtx);\n });\n})[\"catch\"](function (err) {\n console.error('Error was not caught', err);\n});\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9uZXh0LWRldi5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7O0FBQ2IsSUFBSUEsQ0FBQyxHQUFHQyxtQkFBTyxDQUFDLG9EQUFELENBQWY7O0FBQ0EsSUFBSUMsc0JBQXNCLEdBQUdDLHNCQUFzQixDQUFDRixtQkFBTyxDQUFDLHVHQUFELENBQVIsQ0FBbkQ7O0FBQ0EsSUFBSUcsMkJBQTJCLEdBQUdELHNCQUFzQixDQUFDRixtQkFBTyxDQUFDLGlIQUFELENBQVIsQ0FBeEQ7O0FBQ0EsSUFBSUksZ0JBQWdCLEdBQUdGLHNCQUFzQixDQUFDRixtQkFBTyxDQUFDLHlGQUFELENBQVIsQ0FBN0M7O0FBQ0EsSUFBSUssS0FBSyxHQUFHTCxtQkFBTyxDQUFDLCtEQUFELENBQW5COztBQUNBLElBQUlNLFVBQVUsR0FBR04sbUJBQU8sQ0FBQyxxR0FBRCxDQUF4Qjs7QUFDQSxJQUFJTyxZQUFZLEdBQUdQLG1CQUFPLENBQUMsK0dBQUQsQ0FBMUI7O0FBQ0EsU0FBU0Usc0JBQVQsQ0FBZ0NNLEdBQWhDLEVBQXFDO0FBQ2pDLFNBQU9BLEdBQUcsSUFBSUEsR0FBRyxDQUFDQyxVQUFYLEdBQXdCRCxHQUF4QixHQUE4QjtBQUNqQyxlQUFTQTtBQUR3QixHQUFyQztBQUdILEVBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0E7QUFBcUI7QUFDckIsY0FBK0NFLE1BQS9DO0FBQUEsSUFBeUJDLFdBQXpCLFdBQVFDLGFBQVIsQ0FBeUJELFdBQXpCO0FBQ0EsSUFBTUUsTUFBTSxHQUFHRixXQUFXLElBQUksRUFBOUI7QUFDQSxJQUFNRyxVQUFVLEdBQUcsQ0FBQyxHQUFHWCwyQkFBSixjQUFuQjtBQUNBLENBQUMsR0FBR0csVUFBSixFQUFnQlMsVUFBaEIsQ0FBMkI7QUFDdkJKLEVBQUFBLFdBQVcsRUFBRUUsTUFEVTtBQUV2QkcsRUFBQUEsSUFBSSxFQUFFO0FBRmlCLENBQTNCO0FBSUFOLE1BQU0sQ0FBQ08sSUFBUCxH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QUNnQixNQUE3QixDQUFuRixDQUFELENBQWpELEVBQTZLeEQsQ0FBQyxDQUFDb0IsTUFBRixDQUFTcUMsTUFBdEwsYUFBc01QLGNBQXRNO0FBQ0g7QUFDSjtBQUNKOztBQUNELEdBQUMsR0FBRzNDLFVBQUosRUFBZ0JtRCxrQkFBaEIsQ0FBbUM5Qix3QkFBbkM7O0FBQ0EsTUFBSStCLEtBQUosRUFBd0MsRUEvQmxCLENBb0N0Qjs7O0FBQ0EsR0FBQyxHQUFHckQsS0FBSixFQUFXMEQsY0FBWCxDQUEwQixZQUFJO0FBQzFCLEtBQUMsR0FBR2hFLENBQUosRUFBT3NCLE1BQVAsQ0FBY0ksU0FBZDtBQUNILEdBRkQ7QUFHSCxDQTFDRCxXQTBDUyxVQUFDVyxHQUFELEVBQU87QUFDWkMsRUFBQUEsT0FBTyxDQUFDMkIsS0FBUixDQUFjLHNCQUFkLEVBQXNDNUIsR0FBdEM7QUFDSCxDQTVDRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9uZXh0LWRldi5qcz8zNTE1Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF8gPSByZXF1aXJlKFwiLi9cIik7XG52YXIgX29uRGVtYW5kRW50cmllc0NsaWVudCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vZGV2L29uLWRlbWFuZC1lbnRyaWVzLWNsaWVudFwiKSk7XG52YXIgX3dlYnBhY2tIb3RNaWRkbGV3YXJlQ2xpZW50ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9kZXYvd2VicGFjay1ob3QtbWlkZGxld2FyZS1jbGllbnRcIikpO1xudmFyIF9kZXZCdWlsZFdhdGNoZXIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL2Rldi9kZXYtYnVpbGQtd2F0Y2hlclwiKSk7XG52YXIgX2ZvdWMgPSByZXF1aXJlKFwiLi9kZXYvZm91Y1wiKTtcbnZhciBfd2Vic29ja2V0ID0gcmVxdWlyZShcIi4vZGV2L2Vycm9yLW92ZXJsYXkvd2Vic29ja2V0XCIpO1xudmFyIF9xdWVyeXN0cmluZyA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9xdWVyeXN0cmluZ1wiKTtcbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbi8vIFRlbXBvcmFyeSB3b3JrYXJvdW5kIGZvciB0aGUgaXNzdWUgZGVzY3JpYmVkIGhlcmU6XG4vLyBodHRwczovL2dpdGh1Yi5jb20vdmVyY2VsL25leHQuanMvaXNzdWVzLzM3NzUjaXNzdWVjb21tZW50LTQwNzQzODEyM1xuLy8gVGhlIHJ1bnRpbWVDaHVuayBkb2Vzbid0IGhhdmUgZHluYW1pYyBpbXBvcnQgaGFuZGxpbmcgY29kZSB3aGVuIHRoZXJlIGhhc24ndCBiZWVuIGEgZHluYW1pYyBpbXBvcnRcbi8vIFRoZSBydW50aW1lQ2h1bmsgY2FuJ3QgaG90IHJlbG9hZCBpdHNlbGYgY3VycmVudGx5IHRvIGNvcnJlY3QgaXQgd2hlbiBhZGRpbmcgcGFnZXMgdXNpbmcgb24tZGVtYW5kLWVudHJpZXNcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtZXhwcmVzc2lvbnNcbmltcG9ydCgnLi9kZXYvbm9vcCcpOztcbmNvbnN0IHsgX19ORVhUX0RBVEFfXzogeyBhc3NldFByZWZpeCAgfSAsICB9ID0gd2luZG93O1xuY29uc3QgcHJlZml4ID0gYXNzZXRQcmVmaXggfHwgJyc7XG5jb25zdCB3ZWJwYWNrSE1SID0gKDAsIF93ZWJwYWNrSG90TWlkZGxld2FyZUNsaWVudCkuZGVmYXVsdCgpO1xuKDAsIF93ZWJzb2NrZXQpLmNvbm5lY3RITVIoe1xuICAgIGFzc2V0UHJlZml4OiBwcmVmaXgsXG4gICAgcGF0aDogJy9fbmV4dC93ZWJwYWNrLWhtcidcbn0pO1xud2luZG93Lm5leHQgPSB7XG4gICAgdmVyc2lvbjogXy52ZXJzaW9uLFxuICAgIC8vIHJvdXRlciBpcyBpbml0aWFsaXplZCBsYXRlciBzbyBpdCBoYXMgdG8gYmUgbGl2ZS1iaW5kZWRcbiAgICBnZXQgcm91dGVyICgpIHtcbiAgICAgICAgcmV0dXJuIF8ucm91dGVyO1xuICAgIH0sXG4gICAgZW1pdHRlcjogXy5lbWl0dGVyLFxuICAgIHJlbmRlcjogXy5yZW5kZXIsXG4gICAgcmVuZGVyRXJyb3I6IF8ucmVuZGVyRXJyb3Jcbn07XG4oMCwgXykuaW5pdE5leHQoe1xuICAgIHdlYnBhY2tITVJcbn0pLnRoZW4oKHsgcmVuZGVyQ3R4ICB9KT0+e1xuICAgICgwLCBfb25EZW1hbmRFbnRyaWVzQ2xpZW50KS5kZWZhdWx0KCk7XG4gICAgbGV0IGJ1aWxkSW5kaWNhdG9ySGFuZGxlciA9ICgpPT57XG4gICAgfTtcbiAgICBmdW5jdGlvbiBkZXZQYWdlc01hbmlmZXN0TGlzdGVuZXIoZXZlbnQpIHtcbiAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZignZGV2UGFnZXNNYW5pZmVzdCcpICE9PSAtMSkge1xuICAgICAgICAgICAgZmV0Y2goYCR7cHJlZml4fS9fbmV4dC9zdGF0aWMvZGV2ZWxvcG1lbnQvX2RldlBhZ2VzTWFuaWZlc3QuanNvbmApLnRoZW4oKHJlcyk9PnJlcy5qc29uKClcbiAgICAgICAgICAgICkudGhlbigobWFuaWZlc3QpPT57XG4gICAgICAgICAgICAgICAgd2luZG93Ll9fREVWX1BBR0VTX01BTklGRVNUID0gbWFuaWZlc3Q7XG4gICAgICAgICAgICB9KS5jYXRjaCgoZXJyKT0+e1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBGYWlsZWQgdG8gZmV0Y2ggZGV2UGFnZXNNYW5pZmVzdGAsIGVycik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChldmVudC5kYXRhLmluZGV4T2YoJ21pZGRsZXdhcmVDaGFuZ2VzJykgIT09IC0xKSB7XG4gICAgICAgICAgICByZXR1cm4gd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZignc2VydmVyT25seUNoYW5nZXMnKSAhPT0gLTEpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgcGFnZXMgIH0gPSBKU09OLnBhcnNlKGV2ZW50LmRhdGEpO1xuICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHRvIHJlbG9hZCB3aGVuIHRoZSBkZXYtb3ZlcmxheSBpcyBzaG93aW5nIGZvciBhblxuICAgICAgICAgICAgLy8gQVBJIHJvdXRlXG4gICAgICAgICAgICBpZiAocGFnZXMuaW5jbHVkZXMoXy5yb3V0ZXIucXVlcnkuX19ORVhUX1BBR0UpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghXy5yb3V0ZXIuY2xjICYmIHBhZ2VzLmluY2x1ZGVzKF8ucm91dGVyLnBhdGhuYW1lKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdSZWZyZXNoaW5nIHBhZ2UgZGF0YSBkdWUgdG8gc2VydmVyLXNpZGUgY2hhbmdlJyk7XG4gICAgICAgICAgICAgICAgYnVpbGRJbmRpY2F0b3JIYW5kbGVyKCdidWlsZGluZycpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNsZWFySW5kaWNhdG9yID0gKCk9PmJ1aWxkSW5kaWNhdG9ySGFuZGxlcignYnVpbHQnKVxuICAgICAgICAgICAgICAgIDtcbiAgICAgICAgICAgICAgICBfLnJvdXRlci5yZXBsYWNlKF8ucm91dGVyLnBhdGhuYW1lICsgJz8nICsgU3RyaW5nKCgwLCBfcXVlcnlzdHJpbmcpLmFzc2lnbigoMCwgX3F1ZXJ5c3RyaW5nKS51cmxRdWVyeVRvU2VhcmNoUGFyYW1zKF8ucm91dGVyLnF1ZXJ5KSwgbmV3IFVSTFNlYXJjaFBhcmFtcyhsb2NhdGlvbi5zZWFyY2gpKSksIF8ucm91dGVyLmFzUGF0aCkuZmluYWxseShjbGVhckluZGljYXRvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgKDAsIF93ZWJzb2NrZXQpLmFkZE1lc3NhZ2VMaXN0ZW5lcihkZXZQYWdlc01hbmlmZXN0TGlzdGVuZXIpO1xuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfQlVJTERfSU5ESUNBVE9SKSB7XG4gICAgICAgICgwLCBfZGV2QnVpbGRXYXRjaGVyKS5kZWZhdWx0KChoYW5kbGVyKT0+e1xuICAgICAgICAgICAgYnVpbGRJbmRpY2F0b3JIYW5kbGVyID0gaGFuZGxlcjtcbiAgICAgICAgfSwgcHJvY2Vzcy5lbnYuX19ORVhUX0JVSUxEX0lORElDQVRPUl9QT1NJVElPTik7XG4gICAgfVxuICAgIC8vIGRlbGF5IHJlbmRlcmluZyB1bnRpbCBhZnRlciBzdHlsZXMgaGF2ZSBiZWVuIGFwcGxpZWQgaW4gZGV2ZWxvcG1lbnRcbiAgICAoMCwgX2ZvdWMpLmRpc3BsYXlDb250ZW50KCgpPT57XG4gICAgICAgICgwLCBfKS5yZW5kZXIocmVuZGVyQ3R4KTtcbiAgICB9KTtcbn0pLmNhdGNoKChlcnIpPT57XG4gICAgY29uc29sZS5lcnJvcignRXJyb3Igd2FzIG5vdCBjYXVnaHQnLCBlcnIpO1xufSk7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW5leHQtZGV2LmpzLm1hcCJdLCJuYW1lcyI6WyJfIiwicmVxdWlyZSIsIl9vbkRlbWFuZEVudHJpZXNDbGllbnQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3dlYnBhY2tIb3RNaWRkbGV3YXJlQ2xpZW50IiwiX2RldkJ1aWxkV2F0Y2hlciIsIl9mb3VjIiwiX3dlYnNvY2tldCIsIl9xdWVyeXN0cmluZyIsIm9iaiIsIl9fZXNNb2R1bGUiLCJ3aW5kb3ciLCJhc3NldFByZWZpeCIsIl9fTkVYVF9EQVRBX18iLCJwcmVmaXgiLCJ3ZWJwYWNrSE1SIiwiY29ubmVjdEhNUiIsInBhdGgiLCJuZXh0IiwidmVyc2lvbiIsInJvdXRlciIsImVtaXR0ZXIiLCJyZW5kZXIiLCJyZW5kZXJFcnJvciIsImluaXROZXh0IiwidGhlbiIsInJlbmRlckN0eCIsImJ1aWxkSW5kaWNhdG9ySGFuZGxlciIsImRldlBhZ2VzTWFuaWZlc3RMaXN0ZW5lciIsImV2ZW50IiwiZGF0YSIsImluZGV4T2YiLCJmZXRjaCIsInJlcyIsImpzb24iLCJtYW5pZmVzdCIsIl9fREVWX1BBR0VTX01BTklGRVNUIiwiZXJyIiwiY29uc29sZSIsImxvZyIsImxvY2F0aW9uIiwicmVsb2FkIiwiSlNPTiIsInBhcnNlIiwicGFnZXMiLCJpbmNsdWRlcyIsInF1ZXJ5IiwiX19ORVhUX1BBR0UiLCJjbGMiLCJwYXRobmFtZSIsImNsZWFySW5kaWNhdG9yIiwicmVwbGFjZSIsIlN0cmluZyIsImFzc2lnbiIsInVybFF1ZXJ5VG9TZWFyY2hQYXJhbXMiLCJVUkxTZWFyY2hQYXJhbXMiLCJzZWFyY2giLCJhc1BhdGgiLCJhZGRNZXNzYWdlTGlzdGVuZXIiLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX0JVSUxEX0lORElDQVRPUiIsImhhbmRsZXIiLCJfX05FWFRfQlVJTERfSU5ESUNBVE9SX1BPU0lUSU9OIiwiZGlzcGxheUNvbnRlbnQiLCJlcnJvciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/next-dev.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/normalize-trailing-slash.js": +/*!*******************************************************************!*\ + !*** ./node_modules/next/dist/client/normalize-trailing-slash.js ***! + \*******************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.removePathTrailingSlash = removePathTrailingSlash;\nexports.normalizePathTrailingSlash = void 0;\n\nfunction removePathTrailingSlash(path) {\n return path.endsWith('/') && path !== '/' ? path.slice(0, -1) : path;\n}\n\nvar normalizePathTrailingSlash = true ? function (path) {\n if (/\\.[^/]+\\/?$/.test(path)) {\n return removePathTrailingSlash(path);\n } else if (path.endsWith('/')) {\n return path;\n } else {\n return path + '/';\n }\n} : 0;\nexports.normalizePathTrailingSlash = normalizePathTrailingSlash;\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9ub3JtYWxpemUtdHJhaWxpbmctc2xhc2guanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCwrQkFBQSxHQUFrQ0UsdUJBQWxDO0FBQ0FGLGtDQUFBLEdBQXFDLEtBQUssQ0FBMUM7O0FBQ0EsU0FBU0UsdUJBQVQsQ0FBaUNFLElBQWpDLEVBQXVDO0FBQ25DLFNBQU9BLElBQUksQ0FBQ0MsUUFBTCxDQUFjLEdBQWQsS0FBc0JELElBQUksS0FBSyxHQUEvQixHQUFxQ0EsSUFBSSxDQUFDRSxLQUFMLENBQVcsQ0FBWCxFQUFjLENBQUMsQ0FBZixDQUFyQyxHQUF5REYsSUFBaEU7QUFDSDs7QUFDRCxJQUFNRCwwQkFBMEIsR0FBR0ksS0FBQSxHQUFvQyxVQUFDSCxJQUFELEVBQVE7QUFDM0UsTUFBSSxjQUFjTSxJQUFkLENBQW1CTixJQUFuQixDQUFKLEVBQThCO0FBQzFCLFdBQU9GLHVCQUF1QixDQUFDRSxJQUFELENBQTlCO0FBQ0gsR0FGRCxNQUVPLElBQUlBLElBQUksQ0FBQ0MsUUFBTCxDQUFjLEdBQWQsQ0FBSixFQUF3QjtBQUMzQixXQUFPRCxJQUFQO0FBQ0gsR0FGTSxNQUVBO0FBQ0gsV0FBT0EsSUFBSSxHQUFHLEdBQWQ7QUFDSDtBQUNKLENBUmtDLEdBUS9CRixDQVJKO0FBU0FGLGtDQUFBLEdBQXFDRywwQkFBckMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvbm9ybWFsaXplLXRyYWlsaW5nLXNsYXNoLmpzPzRjMmUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLnJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoID0gcmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2g7XG5leHBvcnRzLm5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoID0gdm9pZCAwO1xuZnVuY3Rpb24gcmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2gocGF0aCkge1xuICAgIHJldHVybiBwYXRoLmVuZHNXaXRoKCcvJykgJiYgcGF0aCAhPT0gJy8nID8gcGF0aC5zbGljZSgwLCAtMSkgOiBwYXRoO1xufVxuY29uc3Qgbm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2ggPSBwcm9jZXNzLmVudi5fX05FWFRfVFJBSUxJTkdfU0xBU0ggPyAocGF0aCk9PntcbiAgICBpZiAoL1xcLlteL10rXFwvPyQvLnRlc3QocGF0aCkpIHtcbiAgICAgICAgcmV0dXJuIHJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoKHBhdGgpO1xuICAgIH0gZWxzZSBpZiAocGF0aC5lbmRzV2l0aCgnLycpKSB7XG4gICAgICAgIHJldHVybiBwYXRoO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBwYXRoICsgJy8nO1xuICAgIH1cbn0gOiByZW1vdmVQYXRoVHJhaWxpbmdTbGFzaDtcbmV4cG9ydHMubm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2ggPSBub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaDtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bm9ybWFsaXplLXRyYWlsaW5nLXNsYXNoLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsInJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoIiwibm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2giLCJwYXRoIiwiZW5kc1dpdGgiLCJzbGljZSIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfVFJBSUxJTkdfU0xBU0giLCJ0ZXN0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/normalize-trailing-slash.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/page-loader.js": +/*!******************************************************!*\ + !*** ./node_modules/next/dist/client/page-loader.js ***! + \******************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _classCallCheck = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\");\n\nvar _createClass = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\");\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _router = __webpack_require__(/*! ../shared/lib/router/router */ \"./node_modules/next/dist/shared/lib/router/router.js\");\n\nvar _getAssetPathFromRoute = _interopRequireDefault(__webpack_require__(/*! ../shared/lib/router/utils/get-asset-path-from-route */ \"./node_modules/next/dist/shared/lib/router/utils/get-asset-path-from-route.js\"));\n\nvar _isDynamic = __webpack_require__(/*! ../shared/lib/router/utils/is-dynamic */ \"./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js\");\n\nvar _parseRelativeUrl = __webpack_require__(/*! ../shared/lib/router/utils/parse-relative-url */ \"./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js\");\n\nvar _normalizeTrailingSlash = __webpack_require__(/*! ./normalize-trailing-slash */ \"./node_modules/next/dist/client/normalize-trailing-slash.js\");\n\nvar _routeLoader = __webpack_require__(/*! ./route-loader */ \"./node_modules/next/dist/client/route-loader.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction normalizeRoute(route) {\n if (route[0] !== '/') {\n throw new Error(\"Route name should start with a \\\"/\\\", got \\\"\".concat(route, \"\\\"\"));\n }\n\n if (route === '/') return route;\n return route.replace(/\\/$/, '');\n}\n\nvar PageLoader = /*#__PURE__*/function () {\n function PageLoader(buildId, assetPrefix) {\n _classCallCheck(this, PageLoader);\n\n this.routeLoader = (0, _routeLoader).createRouteLoader(assetPrefix);\n this.buildId = buildId;\n this.assetPrefix = assetPrefix;\n /** @type {Promise<Set<string>>} */\n\n this.promisedSsgManifest = new Promise(function (resolve) {\n if (window.__SSG_MANIFEST) {\n resolve(window.__SSG_MANIFEST);\n } else {\n window.__SSG_MANIFEST_CB = function () {\n resolve(window.__SSG_MANIFEST);\n };\n }\n });\n }\n\n _createClass(PageLoader, [{\n key: \"getPageList\",\n value: function getPageList() {\n if (false) {} else {\n if (window.__DEV_PAGES_MANIFEST) {\n return window.__DEV_PAGES_MANIFEST.pages;\n } else {\n if (!this.promisedDevPagesManifest) {\n this.promisedDevPagesManifest = fetch(\"\".concat(this.assetPrefix, \"/_next/static/development/_devPagesManifest.json\")).then(function (res) {\n return res.json();\n }).then(function (manifest) {\n window.__DEV_PAGES_MANIFEST = manifest;\n return manifest.pages;\n })[\"catch\"](function (err) {\n console.log(\"Failed to fetch devPagesManifest\", err);\n });\n }\n\n return this.promisedDevPagesManifest;\n }\n }\n }\n }, {\n key: \"getMiddlewareList\",\n value: function getMiddlewareList() {\n if (false) {} else {\n if (window.__DEV_MIDDLEWARE_MANIFEST) {\n return window.__DEV_MIDDLEWARE_MANIFEST;\n } else {\n if (!this.promisedMiddlewareManifest) {\n this.promisedMiddlewareManifest = fetch(\"\".concat(this.assetPrefix, \"/_next/static/\").concat(this.buildId, \"/_devMiddlewareManifest.json\")).then(function (res) {\n return res.json();\n }).then(function (manifest) {\n window.__DEV_MIDDLEWARE_MANIFEST = manifest;\n return manifest;\n })[\"catch\"](function (err) {\n console.log(\"Failed to fetch _devMiddlewareManifest\", err);\n });\n }\n\n return this.promisedMiddlewareManifest;\n }\n }\n }\n /**\n * @param {string} href the route href (file-system path)\n * @param {string} asPath the URL as shown in browser (virtual path); used for dynamic routes\n * @returns {string}\n */\n\n }, {\n key: \"getDataHref\",\n value: function getDataHref(_ref) {\n var _this = this;\n\n var href = _ref.href,\n asPath = _ref.asPath,\n ssg = _ref.ssg,\n rsc = _ref.rsc,\n locale = _ref.locale;\n\n var _parseRelativeUrl2 = (0, _parseRelativeUrl).parseRelativeUrl(href),\n hrefPathname = _parseRelativeUrl2.pathname,\n query = _parseRelativeUrl2.query,\n search = _parseRelativeUrl2.search;\n\n var _parseRelativeUrl3 = (0, _parseRelativeUrl).parseRelativeUrl(asPath),\n asPathname = _parseRelativeUrl3.pathname;\n\n var route = normalizeRoute(hrefPathname);\n\n var getHrefForSlug = function getHrefForSlug(path) {\n if (rsc) return path + '?__flight__';\n var dataRoute = (0, _getAssetPathFromRoute)[\"default\"]((0, _normalizeTrailingSlash).removePathTrailingSlash((0, _router).addLocale(path, locale)), '.json');\n return (0, _router).addBasePath(\"/_next/data/\".concat(_this.buildId).concat(dataRoute).concat(ssg ? '' : search));\n };\n\n var isDynamic = (0, _isDynamic).isDynamicRoute(route);\n var interpolatedRoute = isDynamic ? (0, _router).interpolateAs(hrefPathname, asPathname, query).result : '';\n return isDynamic ? interpolatedRoute && getHrefForSlug(interpolatedRoute) : getHrefForSlug(route);\n }\n /**\n * @param {string} route - the route (file-system path)\n */\n\n }, {\n key: \"_isSsg\",\n value: function _isSsg(route) {\n return this.promisedSsgManifest.then(function (s) {\n return s.has(route);\n });\n }\n }, {\n key: \"loadPage\",\n value: function loadPage(route) {\n return this.routeLoader.loadRoute(route).then(function (res) {\n if ('component' in res) {\n return {\n page: res.component,\n mod: res.exports,\n styleSheets: res.styles.map(function (o) {\n return {\n href: o.href,\n text: o.content\n };\n })\n };\n }\n\n throw res.error;\n });\n }\n }, {\n key: \"prefetch\",\n value: function prefetch(route) {\n return this.routeLoader.prefetch(route);\n }\n }]);\n\n return PageLoader;\n}();\n\nexports[\"default\"] = PageLoader;\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9wYWdlLWxvYWRlci5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7Ozs7OztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxrQkFBQSxHQUFrQixLQUFLLENBQXZCOztBQUNBLElBQUlFLE9BQU8sR0FBR0MsbUJBQU8sQ0FBQyx5RkFBRCxDQUFyQjs7QUFDQSxJQUFJQyxzQkFBc0IsR0FBR0Msc0JBQXNCLENBQUNGLG1CQUFPLENBQUMsMklBQUQsQ0FBUixDQUFuRDs7QUFDQSxJQUFJRyxVQUFVLEdBQUdILG1CQUFPLENBQUMsNkdBQUQsQ0FBeEI7O0FBQ0EsSUFBSUksaUJBQWlCLEdBQUdKLG1CQUFPLENBQUMsNkhBQUQsQ0FBL0I7O0FBQ0EsSUFBSUssdUJBQXVCLEdBQUdMLG1CQUFPLENBQUMsK0ZBQUQsQ0FBckM7O0FBQ0EsSUFBSU0sWUFBWSxHQUFHTixtQkFBTyxDQUFDLHVFQUFELENBQTFCOztBQUNBLFNBQVNFLHNCQUFULENBQWdDSyxHQUFoQyxFQUFxQztBQUNqQyxTQUFPQSxHQUFHLElBQUlBLEdBQUcsQ0FBQ0MsVUFBWCxHQUF3QkQsR0FBeEIsR0FBOEI7QUFDakMsZUFBU0E7QUFEd0IsR0FBckM7QUFHSDs7QUFDRCxTQUFTRSxjQUFULENBQXdCQyxLQUF4QixFQUErQjtBQUMzQixNQUFJQSxLQUFLLENBQUMsQ0FBRCxDQUFMLEtBQWEsR0FBakIsRUFBc0I7QUFDbEIsVUFBTSxJQUFJQyxLQUFKLHVEQUFzREQsS0FBdEQsUUFBTjtBQUNIOztBQUNELE1BQUlBLEtBQUssS0FBSyxHQUFkLEVBQW1CLE9BQU9BLEtBQVA7QUFDbkIsU0FBT0EsS0FBSyxDQUFDRSxPQUFOLENBQWMsS0FBZCxFQUFxQixFQUFyQixDQUFQO0FBQ0g7O0lBQ0tDO0FBb0ZGLHNCQUFZQyxPQUFaLEVBQXFCQyxXQUFyQixFQUFpQztBQUFBOztBQUM3QixTQUFLQyxXQUFMLEdB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Qk8sSUFBekIsQ0FBOEIsVUFBQ3FDLENBQUQ7QUFBQSxlQUFLQSxDQUFDLENBQUNDLEdBQUYsQ0FBTXJELEtBQU4sQ0FBTDtBQUFBLE9BQTlCLENBQVA7QUFFSDs7O1dBQ0Qsa0JBQVNBLEtBQVQsRUFBZ0I7QUFDWixhQUFPLEtBQUtNLFdBQUwsQ0FBaUJnRCxTQUFqQixDQUEyQnRELEtBQTNCLEVBQWtDZSxJQUFsQyxDQUF1QyxVQUFDTyxHQUFELEVBQU87QUFDakQsWUFBSSxlQUFlQSxHQUFuQixFQUF3QjtBQUNwQixpQkFBTztBQUNIaUMsWUFBQUEsSUFBSSxFQUFFakMsR0FBRyxDQUFDa0MsU0FEUDtBQUVIQyxZQUFBQSxHQUFHLEVBQUVuQyxHQUFHLENBQUNuQyxPQUZOO0FBR0h1RSxZQUFBQSxXQUFXLEVBQUVwQyxHQUFHLENBQUNxQyxNQUFKLENBQVdDLEdBQVgsQ0FBZSxVQUFDQyxDQUFEO0FBQUEscUJBQU07QUFDMUIvQixnQkFBQUEsSUFBSSxFQUFFK0IsQ0FBQyxDQUFDL0IsSUFEa0I7QUFFMUJnQyxnQkFBQUEsSUFBSSxFQUFFRCxDQUFDLENBQUNFO0FBRmtCLGVBQU47QUFBQSxhQUFmO0FBSFYsV0FBUDtBQVNIOztBQUNELGNBQU16QyxHQUFHLENBQUMwQyxLQUFWO0FBQ0gsT0FiTSxDQUFQO0FBY0g7OztXQUNELGtCQUFTaEUsS0FBVCxFQUFnQjtBQUNaLGFBQU8sS0FBS00sV0FBTCxDQUFpQjJELFFBQWpCLENBQTBCakUsS0FBMUIsQ0FBUDtBQUNIOzs7Ozs7QUFnQkxiLGtCQUFBLEdBQWtCZ0IsVUFBbEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvcGFnZS1sb2FkZXIuanM/ZTg3YSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IHZvaWQgMDtcbnZhciBfcm91dGVyID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyL3JvdXRlclwiKTtcbnZhciBfZ2V0QXNzZXRQYXRoRnJvbVJvdXRlID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZ2V0LWFzc2V0LXBhdGgtZnJvbS1yb3V0ZVwiKSk7XG52YXIgX2lzRHluYW1pYyA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9pcy1keW5hbWljXCIpO1xudmFyIF9wYXJzZVJlbGF0aXZlVXJsID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhcnNlLXJlbGF0aXZlLXVybFwiKTtcbnZhciBfbm9ybWFsaXplVHJhaWxpbmdTbGFzaCA9IHJlcXVpcmUoXCIuL25vcm1hbGl6ZS10cmFpbGluZy1zbGFzaFwiKTtcbnZhciBfcm91dGVMb2FkZXIgPSByZXF1aXJlKFwiLi9yb3V0ZS1sb2FkZXJcIik7XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5mdW5jdGlvbiBub3JtYWxpemVSb3V0ZShyb3V0ZSkge1xuICAgIGlmIChyb3V0ZVswXSAhPT0gJy8nKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgUm91dGUgbmFtZSBzaG91bGQgc3RhcnQgd2l0aCBhIFwiL1wiLCBnb3QgXCIke3JvdXRlfVwiYCk7XG4gICAgfVxuICAgIGlmIChyb3V0ZSA9PT0gJy8nKSByZXR1cm4gcm91dGU7XG4gICAgcmV0dXJuIHJvdXRlLnJlcGxhY2UoL1xcLyQvLCAnJyk7XG59XG5jbGFzcyBQYWdlTG9hZGVyIHtcbiAgICBnZXRQYWdlTGlzdCgpIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiAoMCwgX3JvdXRlTG9hZGVyKS5nZXRDbGllbnRCdWlsZE1hbmlmZXN0KCkudGhlbigobWFuaWZlc3QpPT5tYW5pZmVzdC5zb3J0ZWRQYWdlc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh3aW5kb3cuX19ERVZfUEFHRVNfTUFOSUZFU1QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93Ll9fREVWX1BBR0VTX01BTklGRVNULnBhZ2VzO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMucHJvbWlzZWREZXZQYWdlc01hbmlmZXN0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvbWlzZWREZXZQYWdlc01hbmlmZXN0ID0gZmV0Y2goYCR7dGhpcy5hc3NldFByZWZpeH0vX25leHQvc3RhdGljL2RldmVsb3BtZW50L19kZXZQYWdlc01hbmlmZXN0Lmpzb25gKS50aGVuKChyZXMpPT5yZXMuanNvbigpXG4gICAgICAgICAgICAgICAgICAgICkudGhlbigobWFuaWZlc3QpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cuX19ERVZfUEFHRVNfTUFOSUZFU1QgPSBtYW5pZmVzdDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtYW5pZmVzdC5wYWdlcztcbiAgICAgICAgICAgICAgICAgICAgfSkuY2F0Y2goKGVycik9PntcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBGYWlsZWQgdG8gZmV0Y2ggZGV2UGFnZXNNYW5pZmVzdGAsIGVycik7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9taXNlZERldlBhZ2VzTWFuaWZlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0TWlkZGxld2FyZUxpc3QoKSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICByZXR1cm4gKDAsIF9yb3V0ZUxvYWRlcikuZ2V0TWlkZGxld2FyZU1hbmlmZXN0KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAod2luZG93Ll9fREVWX01JRERMRVdBUkVfTUFOSUZFU1QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93Ll9fREVWX01JRERMRVdBUkVfTUFOSUZFU1Q7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5wcm9taXNlZE1pZGRsZXdhcmVNYW5pZmVzdCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb21pc2VkTWlkZGxld2FyZU1hbmlmZXN0ID0gZmV0Y2goYCR7dGhpcy5hc3NldFByZWZpeH0vX25leHQvc3RhdGljLyR7dGhpcy5idWlsZElkfS9fZGV2TWlkZGxld2FyZU1hbmlmZXN0Lmpzb25gKS50aGVuKChyZXMpPT5yZXMuanNvbigpXG4gICAgICAgICAgICAgICAgICAgICkudGhlbigobWFuaWZlc3QpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cuX19ERVZfTUlERExFV0FSRV9NQU5JRkVTVCA9IG1hbmlmZXN0O1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1hbmlmZXN0O1xuICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaCgoZXJyKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coYEZhaWxlZCB0byBmZXRjaCBfZGV2TWlkZGxld2FyZU1hbmlmZXN0YCwgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnByb21pc2VkTWlkZGxld2FyZU1hbmlmZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gaHJlZiB0aGUgcm91dGUgaHJlZiAoZmlsZS1zeXN0ZW0gcGF0aClcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFzUGF0aCB0aGUgVVJMIGFzIHNob3duIGluIGJyb3dzZXIgKHZpcnR1YWwgcGF0aCk7IHVzZWQgZm9yIGR5bmFtaWMgcm91dGVzXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAqLyBnZXREYXRhSHJlZih7IGhyZWYgLCBhc1BhdGggLCBzc2cgLCByc2MgLCBsb2NhbGUgIH0pIHtcbiAgICAgICAgY29uc3QgeyBwYXRobmFtZTogaHJlZlBhdGhuYW1lICwgcXVlcnkgLCBzZWFyY2ggIH0gPSAoMCwgX3BhcnNlUmVsYXRpdmVVcmwpLnBhcnNlUmVsYXRpdmVVcmwoaHJlZik7XG4gICAgICAgIGNvbnN0IHsgcGF0aG5hbWU6IGFzUGF0aG5hbWUgIH0gPSAoMCwgX3BhcnNlUmVsYXRpdmVVcmwpLnBhcnNlUmVsYXRpdmVVcmwoYXNQYXRoKTtcbiAgICAgICAgY29uc3Qgcm91dGUgPSBub3JtYWxpemVSb3V0ZShocmVmUGF0aG5hbWUpO1xuICAgICAgICBjb25zdCBnZXRIcmVmRm9yU2x1ZyA9IChwYXRoKT0+e1xuICAgICAgICAgICAgaWYgKHJzYykgcmV0dXJuIHBhdGggKyAnP19fZmxpZ2h0X18nO1xuICAgICAgICAgICAgY29uc3QgZGF0YVJvdXRlID0gKDAsIF9nZXRBc3NldFBhdGhGcm9tUm91dGUpLmRlZmF1bHQoKDAsIF9ub3JtYWxpemVUcmFpbGluZ1NsYXNoKS5yZW1vdmVQYXRoVHJhaWxpbmdTbGFzaCgoMCwgX3JvdXRlcikuYWRkTG9jYWxlKHBhdGgsIGxvY2FsZSkpLCAnLmpzb24nKTtcbiAgICAgICAgICAgIHJldHVybiAoMCwgX3JvdXRlcikuYWRkQmFzZVBhdGgoYC9fbmV4dC9kYXRhLyR7dGhpcy5idWlsZElkfSR7ZGF0YVJvdXRlfSR7c3NnID8gJycgOiBzZWFyY2h9YCk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGlzRHluYW1pYyA9ICgwLCBfaXNEeW5hbWljKS5pc0R5bmFtaWNSb3V0ZShyb3V0ZSk7XG4gICAgICAgIGNvbnN0IGludGVycG9sYXRlZFJvdXRlID0gaXNEeW5hbWljID8gKDAsIF9yb3V0ZXIpLmludGVycG9sYXRlQXMoaHJlZlBhdGhuYW1lLCBhc1BhdGhuYW1lLCBxdWVyeSkucmVzdWx0IDogJyc7XG4gICAgICAgIHJldHVybiBpc0R5bmFtaWMgPyBpbnRlcnBvbGF0ZWRSb3V0ZSAmJiBnZXRIcmVmRm9yU2x1ZyhpbnRlcnBvbGF0ZWRSb3V0ZSkgOiBnZXRIcmVmRm9yU2x1Zyhyb3V0ZSk7XG4gICAgfVxuICAgIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcm91dGUgLSB0aGUgcm91dGUgKGZpbGUtc3lzdGVtIHBhdGgpXG4gICAqLyBfaXNTc2cocm91dGUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvbWlzZWRTc2dNYW5pZmVzdC50aGVuKChzKT0+cy5oYXMocm91dGUpXG4gICAgICAgICk7XG4gICAgfVxuICAgIGxvYWRQYWdlKHJvdXRlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJvdXRlTG9hZGVyLmxvYWRSb3V0ZShyb3V0ZSkudGhlbigocmVzKT0+e1xuICAgICAgICAgICAgaWYgKCdjb21wb25lbnQnIGluIHJlcykge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHBhZ2U6IHJlcy5jb21wb25lbnQsXG4gICAgICAgICAgICAgICAgICAgIG1vZDogcmVzLmV4cG9ydHMsXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlU2hlZXRzOiByZXMuc3R5bGVzLm1hcCgobyk9Pih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZjogby5ocmVmLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6IG8uY29udGVudFxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyByZXMuZXJyb3I7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBwcmVmZXRjaChyb3V0ZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5yb3V0ZUxvYWRlci5wcmVmZXRjaChyb3V0ZSk7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKGJ1aWxkSWQsIGFzc2V0UHJlZml4KXtcbiAgICAgICAgdGhpcy5yb3V0ZUxvYWRlciA9ICgwLCBfcm91dGVMb2FkZXIpLmNyZWF0ZVJvdXRlTG9hZGVyKGFzc2V0UHJlZml4KTtcbiAgICAgICAgdGhpcy5idWlsZElkID0gYnVpbGRJZDtcbiAgICAgICAgdGhpcy5hc3NldFByZWZpeCA9IGFzc2V0UHJlZml4O1xuICAgICAgICAvKiogQHR5cGUge1Byb21pc2U8U2V0PHN0cmluZz4+fSAqLyB0aGlzLnByb21pc2VkU3NnTWFuaWZlc3QgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSk9PntcbiAgICAgICAgICAgIGlmICh3aW5kb3cuX19TU0dfTUFOSUZFU1QpIHtcbiAgICAgICAgICAgICAgICByZXNvbHZlKHdpbmRvdy5fX1NTR19NQU5JRkVTVCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5fX1NTR19NQU5JRkVTVF9DQiA9ICgpPT57XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUod2luZG93Ll9fU1NHX01BTklGRVNUKTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG5leHBvcnRzLmRlZmF1bHQgPSBQYWdlTG9hZGVyO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1wYWdlLWxvYWRlci5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJfcm91dGVyIiwicmVxdWlyZSIsIl9nZXRBc3NldFBhdGhGcm9tUm91dGUiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2lzRHluYW1pYyIsIl9wYXJzZVJlbGF0aXZlVXJsIiwiX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2giLCJfcm91dGVMb2FkZXIiLCJvYmoiLCJfX2VzTW9kdWxlIiwibm9ybWFsaXplUm91dGUiLCJyb3V0ZSIsIkVycm9yIiwicmVwbGFjZSIsIlBhZ2VMb2FkZXIiLCJidWlsZElkIiwiYXNzZXRQcmVmaXgiLCJyb3V0ZUxvYWRlciIsImNyZWF0ZVJvdXRlTG9hZGVyIiwicHJvbWlzZWRTc2dNYW5pZmVzdCIsIlByb21pc2UiLCJyZXNvbHZlIiwid2luZG93IiwiX19TU0dfTUFOSUZFU1QiLCJfX1NTR19NQU5JRkVTVF9DQiIsImdldENsaWVudEJ1aWxkTWFuaWZlc3QiLCJ0aGVuIiwibWFuaWZlc3QiLCJzb3J0ZWRQYWdlcyIsIl9fREVWX1BBR0VTX01BTklGRVNUIiwicGFnZXMiLCJwcm9taXNlZERldlBhZ2VzTWFuaWZlc3QiLCJmZXRjaCIsInJlcyIsImpzb24iLCJlcnIiLCJjb25zb2xlIiwibG9nIiwiZ2V0TWlkZGxld2FyZU1hbmlmZXN0IiwiX19ERVZfTUlERExFV0FSRV9NQU5JRkVTVCIsInByb21pc2VkTWlkZGxld2FyZU1hbmlmZXN0IiwiaHJlZiIsImFzUGF0aCIsInNzZyIsInJzYyIsImxvY2FsZSIsInBhcnNlUmVsYXRpdmVVcmwiLCJocmVmUGF0aG5hbWUiLCJwYXRobmFtZSIsInF1ZXJ5Iiwic2VhcmNoIiwiYXNQYXRobmFtZSIsImdldEhyZWZGb3JTbHVnIiwicGF0aCIsImRhdGFSb3V0ZSIsInJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoIiwiYWRkTG9jYWxlIiwiYWRkQmFzZVBhdGgiLCJpc0R5bmFtaWMiLCJpc0R5bmFtaWNSb3V0ZSIsImludGVycG9sYXRlZFJvdXRlIiwiaW50ZXJwb2xhdGVBcyIsInJlc3VsdCIsInMiLCJoYXMiLCJsb2FkUm91dGUiLCJwYWdlIiwiY29tcG9uZW50IiwibW9kIiwic3R5bGVTaGVldHMiLCJzdHlsZXMiLCJtYXAiLCJvIiwidGV4dCIsImNvbnRlbnQiLCJlcnJvciIsInByZWZldGNoIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/page-loader.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/performance-relayer.js": +/*!**************************************************************!*\ + !*** ./node_modules/next/dist/client/performance-relayer.js ***! + \**************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _webVitals = __webpack_require__(/*! next/dist/compiled/web-vitals */ \"./node_modules/next/dist/compiled/web-vitals/web-vitals.umd.js\");\n\nvar initialHref = location.href;\nvar isRegistered = false;\nvar userReportHandler;\n\nfunction onReport(metric) {\n if (userReportHandler) {\n userReportHandler(metric);\n } // This code is not shipped, executed, or present in the client-side\n // JavaScript bundle unless explicitly enabled in your application.\n //\n // When this feature is enabled, we'll make it very clear by printing a\n // message during the build (`next build`).\n\n\n if (false) { var send, vitalsUrl, blob, body, fallbackSend; }\n}\n\nvar _default = function _default(onPerfEntry) {\n // Update function if it changes:\n userReportHandler = onPerfEntry; // Only register listeners once:\n\n if (isRegistered) {\n return;\n }\n\n isRegistered = true;\n (0, _webVitals).getCLS(onReport);\n (0, _webVitals).getFID(onReport);\n (0, _webVitals).getFCP(onReport);\n (0, _webVitals).getLCP(onReport);\n (0, _webVitals).getTTFB(onReport);\n};\n\nexports[\"default\"] = _default;\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9wZXJmb3JtYW5jZS1yZWxheWVyLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7QUFDYkEsOENBQTZDO0FBQ3pDRyxFQUFBQSxLQUFLLEVBQUU7QUFEa0MsQ0FBN0M7QUFHQUQsa0JBQUEsR0FBa0IsS0FBSyxDQUF2Qjs7QUFDQSxJQUFJRSxVQUFVLEdBQUdDLG1CQUFPLENBQUMscUdBQUQsQ0FBeEI7O0FBQ0EsSUFBTUMsV0FBVyxHQUFHQyxRQUFRLENBQUNDLElBQTdCO0FBQ0EsSUFBSUMsWUFBWSxHQUFHLEtBQW5CO0FBQ0EsSUFBSUMsaUJBQUo7O0FBQ0EsU0FBU0MsUUFBVCxDQUFrQkMsTUFBbEIsRUFBMEI7QUFDdEIsTUFBSUYsaUJBQUosRUFBdUI7QUFDbkJBLElBQUFBLGlCQUFpQixDQUFDRSxNQUFELENBQWpCO0FBQ0gsR0FIcUIsQ0FJdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0EsTUFBSSxLQUFKLEVBQ2lDLGtEQWtDaEM7QUFDSjs7QUFDRCxJQUFJK0IsUUFBUSxHQUFHLFNBQVhBLFFBQVcsQ0FBQ0MsV0FBRCxFQUFlO0FBQzFCO0FBQ0FsQyxFQUFBQSxpQkFBaUIsR0FBR2tDLFdBQXBCLENBRjBCLENBRzFCOztBQUNBLE1BQUluQyxZQUFKLEVBQWtCO0FBQ2Q7QUFDSDs7QUFDREEsRUFBQUEsWUFBWSxHQUFHLElBQWY7QUFDQSxHQUFDLEdBQUdMLFVBQUosRUFBZ0J5QyxNQUFoQixDQUF1QmxDLFFBQXZCO0FBQ0EsR0FBQyxHQUFHUCxVQUFKLEVBQWdCMEMsTUFBaEIsQ0FBdUJuQyxRQUF2QjtBQUNBLEdBQUMsR0FBR1AsVUFBSixFQUFnQjJDLE1BQWhCLENBQXVCcEMsUUFBdkI7QUFDQSxHQUFDLEdBQUdQLFVBQUosRUFBZ0I0QyxNQUFoQixDQUF1QnJDLFFBQXZCO0FBQ0EsR0FBQyxHQUFHUCxVQUFKLEVBQWdCNkMsT0FBaEIsQ0FBd0J0QyxRQUF4QjtBQUNILENBYkQ7O0FBY0FULGtCQUFBLEdBQWtCeUMsUUFBbEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvcGVyZm9ybWFuY2UtcmVsYXllci5qcz9lZjcxIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gdm9pZCAwO1xudmFyIF93ZWJWaXRhbHMgPSByZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL3dlYi12aXRhbHNcIik7XG5jb25zdCBpbml0aWFsSHJlZiA9IGxvY2F0aW9uLmhyZWY7XG5sZXQgaXNSZWdpc3RlcmVkID0gZmFsc2U7XG5sZXQgdXNlclJlcG9ydEhhbmRsZXI7XG5mdW5jdGlvbiBvblJlcG9ydChtZXRyaWMpIHtcbiAgICBpZiAodXNlclJlcG9ydEhhbmRsZXIpIHtcbiAgICAgICAgdXNlclJlcG9ydEhhbmRsZXIobWV0cmljKTtcbiAgICB9XG4gICAgLy8gVGhpcyBjb2RlIGlzIG5vdCBzaGlwcGVkLCBleGVjdXRlZCwgb3IgcHJlc2VudCBpbiB0aGUgY2xpZW50LXNpZGVcbiAgICAvLyBKYXZhU2NyaXB0IGJ1bmRsZSB1bmxlc3MgZXhwbGljaXRseSBlbmFibGVkIGluIHlvdXIgYXBwbGljYXRpb24uXG4gICAgLy9cbiAgICAvLyBXaGVuIHRoaXMgZmVhdHVyZSBpcyBlbmFibGVkLCB3ZSdsbCBtYWtlIGl0IHZlcnkgY2xlYXIgYnkgcHJpbnRpbmcgYVxuICAgIC8vIG1lc3NhZ2UgZHVyaW5nIHRoZSBidWlsZCAoYG5leHQgYnVpbGRgKS5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJyAmJiAvLyBUaGlzIGZpZWxkIGlzIGVtcHR5IHVubGVzcyB5b3UgZXhwbGljaXRseSBjb25maWd1cmUgaXQ6XG4gICAgcHJvY2Vzcy5lbnYuX19ORVhUX0FOQUxZVElDU19JRCkge1xuICAgICAgICBjb25zdCBib2R5ID0ge1xuICAgICAgICAgICAgZHNuOiBwcm9jZXNzLmVudi5fX05FWFRfQU5BTFlUSUNTX0lELFxuICAgICAgICAgICAgaWQ6IG1ldHJpYy5pZCxcbiAgICAgICAgICAgIHBhZ2U6IHdpbmRvdy5fX05FWFRfREFUQV9fLnBhZ2UsXG4gICAgICAgICAgICBocmVmOiBpbml0aWFsSHJlZixcbiAgICAgICAgICAgIGV2ZW50X25hbWU6IG1ldHJpYy5uYW1lLFxuICAgICAgICAgICAgdmFsdWU6IG1ldHJpYy52YWx1ZS50b1N0cmluZygpLFxuICAgICAgICAgICAgc3BlZWQ6ICdjb25uZWN0aW9uJyBpbiBuYXZpZ2F0b3IgJiYgbmF2aWdhdG9yWydjb25uZWN0aW9uJ10gJiYgJ2VmZmVjdGl2ZVR5cGUnIGluIG5hdmlnYXRvclsnY29ubmVjdGlvbiddID8gbmF2aWdhdG9yWydjb25uZWN0aW9uJ11bJ2VmZmVjdGl2ZVR5cGUnXSA6ICcnXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbXG4gICAgICAgICAgICBuZXcgVVJMU2VhcmNoUGFyYW1zKGJvZHkpLnRvU3RyaW5nKClcbiAgICAgICAgXSwge1xuICAgICAgICAgICAgLy8gVGhpcyBjb250ZW50IHR5cGUgaXMgbmVjZXNzYXJ5IGZvciBgc2VuZEJlYWNvbmA6XG4gICAgICAgICAgICB0eXBlOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJ1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3Qgdml0YWxzVXJsID0gJ2h0dHBzOi8vdml0YWxzLnZlcmNlbC1pbnNpZ2h0cy5jb20vdjEvdml0YWxzJztcbiAgICAgICAgLy8gTmF2aWdhdG9yIGhhcyB0byBiZSBib3VuZCB0byBlbnN1cmUgaXQgZG9lcyBub3QgZXJyb3IgaW4gc29tZSBicm93c2Vyc1xuICAgICAgICAvLyBodHRwczovL3hnd2FuZy5tZS9wb3N0cy95b3UtbWF5LW5vdC1rbm93LWJlYWNvbi8jaXQtbWF5LXRocm93LWVycm9yJTJDLWJlLXN1cmUtdG8tY2F0Y2hcbiAgICAgICAgY29uc3Qgc2VuZCA9IG5hdmlnYXRvci5zZW5kQmVhY29uICYmIG5hdmlnYXRvci5zZW5kQmVhY29uLmJpbmQobmF2aWdhdG9yKTtcbiAgICAgICAgZnVuY3Rpb24gZmFsbGJhY2tTZW5kKCkge1xuICAgICAgICAgICAgZmV0Y2godml0YWxzVXJsLCB7XG4gICAgICAgICAgICAgICAgYm9keTogYmxvYixcbiAgICAgICAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgICAgICAgICBjcmVkZW50aWFsczogJ29taXQnLFxuICAgICAgICAgICAgICAgIGtlZXBhbGl2ZTogdHJ1ZVxuICAgICAgICAgICAgfSkuY2F0Y2goY29uc29sZS5lcnJvcik7XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIC8vIElmIHNlbmQgaXMgdW5kZWZpbmVkIGl0J2xsIHRocm93IGFzIHdlbGwuIFRoaXMgcmVkdWNlcyBvdXRwdXQgY29kZSBzaXplLlxuICAgICAgICAgICAgc2VuZCh2aXRhbHNVcmwsIGJsb2IpIHx8IGZhbGxiYWNrU2VuZCgpO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIGZhbGxiYWNrU2VuZCgpO1xuICAgICAgICB9XG4gICAgfVxufVxudmFyIF9kZWZhdWx0ID0gKG9uUGVyZkVudHJ5KT0+e1xuICAgIC8vIFVwZGF0ZSBmdW5jdGlvbiBpZiBpdCBjaGFuZ2VzOlxuICAgIHVzZXJSZXBvcnRIYW5kbGVyID0gb25QZXJmRW50cnk7XG4gICAgLy8gT25seSByZWdpc3RlciBsaXN0ZW5lcnMgb25jZTpcbiAgICBpZiAoaXNSZWdpc3RlcmVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaXNSZWdpc3RlcmVkID0gdHJ1ZTtcbiAgICAoMCwgX3dlYlZpdGFscykuZ2V0Q0xTKG9uUmVwb3J0KTtcbiAgICAoMCwgX3dlYlZpdGFscykuZ2V0RklEKG9uUmVwb3J0KTtcbiAgICAoMCwgX3dlYlZpdGFscykuZ2V0RkNQKG9uUmVwb3J0KTtcbiAgICAoMCwgX3dlYlZpdGFscykuZ2V0TENQKG9uUmVwb3J0KTtcbiAgICAoMCwgX3dlYlZpdGFscykuZ2V0VFRGQihvblJlcG9ydCk7XG59O1xuZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBlcmZvcm1hbmNlLXJlbGF5ZXIuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiX3dlYlZpdGFscyIsInJlcXVpcmUiLCJpbml0aWFsSHJlZiIsImxvY2F0aW9uIiwiaHJlZiIsImlzUmVnaXN0ZXJlZCIsInVzZXJSZXBvcnRIYW5kbGVyIiwib25SZXBvcnQiLCJtZXRyaWMiLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX0FOQUxZVElDU19JRCIsImZhbGxiYWNrU2VuZCIsImZldGNoIiwidml0YWxzVXJsIiwiYm9keSIsImJsb2IiLCJtZXRob2QiLCJjcmVkZW50aWFscyIsImtlZXBhbGl2ZSIsImNvbnNvbGUiLCJlcnJvciIsImRzbiIsImlkIiwicGFnZSIsIndpbmRvdyIsIl9fTkVYVF9EQVRBX18iLCJldmVudF9uYW1lIiwibmFtZSIsInRvU3RyaW5nIiwic3BlZWQiLCJuYXZpZ2F0b3IiLCJCbG9iIiwiVVJMU2VhcmNoUGFyYW1zIiwidHlwZSIsInNlbmQiLCJzZW5kQmVhY29uIiwiYmluZCIsImVyciIsIl9kZWZhdWx0Iiwib25QZXJmRW50cnkiLCJnZXRDTFMiLCJnZXRGSUQiLCJnZXRGQ1AiLCJnZXRMQ1AiLCJnZXRUVEZCIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/performance-relayer.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/portal/index.js": +/*!*******************************************************!*\ + !*** ./node_modules/next/dist/client/portal/index.js ***! + \*******************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _slicedToArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nvar _s = $RefreshSig$();\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.Portal = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _reactDom = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar Portal = function Portal(_ref) {\n _s();\n\n var children = _ref.children,\n type = _ref.type;\n\n var portalNode = _react[\"default\"].useRef(null);\n\n var _react$default$useSta = _react[\"default\"].useState(),\n _react$default$useSta2 = _slicedToArray(_react$default$useSta, 2),\n forceUpdate = _react$default$useSta2[1];\n\n _react[\"default\"].useEffect(function () {\n portalNode.current = document.createElement(type);\n document.body.appendChild(portalNode.current);\n forceUpdate({});\n return function () {\n if (portalNode.current) {\n document.body.removeChild(portalNode.current);\n }\n };\n }, [type]);\n\n return portalNode.current ? /*#__PURE__*/(0, _reactDom).createPortal(children, portalNode.current) : null;\n};\n\n_s(Portal, \"2G1G/n0Mrpmd7ljT9Y3X5peSz9o=\");\n\n_c = Portal;\nexports.Portal = Portal;\n\nvar _c;\n\n$RefreshReg$(_c, \"Portal\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9wb3J0YWwvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOzs7Ozs7QUFDYkEsOENBQTZDO0FBQ3pDRyxFQUFBQSxLQUFLLEVBQUU7QUFEa0MsQ0FBN0M7QUFHQUQsY0FBQSxHQUFpQixLQUFLLENBQXRCOztBQUNBLElBQUlHLE1BQU0sR0FBR0Msc0JBQXNCLENBQUNDLG1CQUFPLENBQUMsNENBQUQsQ0FBUixDQUFuQzs7QUFDQSxJQUFJQyxTQUFTLEdBQUdELG1CQUFPLENBQUMsb0RBQUQsQ0FBdkI7O0FBQ0EsU0FBU0Qsc0JBQVQsQ0FBZ0NHLEdBQWhDLEVBQXFDO0FBQ2pDLFNBQU9BLEdBQUcsSUFBSUEsR0FBRyxDQUFDQyxVQUFYLEdBQXdCRCxHQUF4QixHQUE4QjtBQUNqQyxlQUFTQTtBQUR3QixHQUFyQztBQUdIOztBQUNELElBQU1MLE1BQU0sR0FBRyxTQUFUQSxNQUFTLE9BQXdCO0FBQUE7O0FBQUEsTUFBckJPLFFBQXFCLFFBQXJCQSxRQUFxQjtBQUFBLE1BQVZDLElBQVUsUUFBVkEsSUFBVTs7QUFDbkMsTUFBSUMsVUFBVSxHQUFHUixNQUFNLFdBQU4sQ0FBZVMsTUFBZixDQUFzQixJQUF0QixDQUFqQjs7QUFDQSw4QkFBc0JULE1BQU0sV0FBTixDQUFlVSxRQUFmLEVBQXRCO0FBQUE7QUFBQSxNQUFPQyxXQUFQOztBQUNBWCxFQUFBQSxNQUFNLFdBQU4sQ0FBZVksU0FBZixDQUF5QixZQUFJO0FBQ3pCSixJQUFBQSxVQUFVLENBQUNLLE9BQVgsR0FBcUJDLFFBQVEsQ0FBQ0MsYUFBVCxDQUF1QlIsSUFBdkIsQ0FBckI7QUFDQU8sSUFBQUEsUUFBUSxDQUFDRSxJQUFULENBQWNDLFdBQWQsQ0FBMEJULFVBQVUsQ0FBQ0ssT0FBckM7QUFDQUYsSUFBQUEsV0FBVyxDQUFDLEVBQUQsQ0FBWDtBQUVBLFdBQU8sWUFBSTtBQUNQLFVBQUlILFVBQVUsQ0FBQ0ssT0FBZixFQUF3QjtBQUNwQkMsUUFBQUEsUUFBUSxDQUFDRSxJQUFULENBQWNFLFdBQWQsQ0FBMEJWLFVBQVUsQ0FBQ0ssT0FBckM7QUFDSDtBQUNKLEtBSkQ7QUFLSCxHQVZELEVBVUcsQ0FDQ04sSUFERCxDQVZIOztBQWFBLFNBQU9DLFVBQVUsQ0FBQ0ssT0FBWCxHQUFxQixhQUFjLENBQUMsR0FBR1YsU0FBSixFQUFlZ0IsWUFBZixDQUE0QmIsUUFBNUIsRUFBc0NFLFVBQVUsQ0FBQ0ssT0FBakQsQ0FBbkMsR0FBK0YsSUFBdEc7QUFDSCxDQWpCRDs7R0FBTWQ7O0tBQUFBO0FBa0JORixjQUFBLEdBQWlCRSxNQUFqQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9wb3J0YWwvaW5kZXguanM/MzFhMiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuUG9ydGFsID0gdm9pZCAwO1xudmFyIF9yZWFjdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJlYWN0XCIpKTtcbnZhciBfcmVhY3REb20gPSByZXF1aXJlKFwicmVhY3QtZG9tXCIpO1xuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuY29uc3QgUG9ydGFsID0gKHsgY2hpbGRyZW4gLCB0eXBlICB9KT0+e1xuICAgIGxldCBwb3J0YWxOb2RlID0gX3JlYWN0LmRlZmF1bHQudXNlUmVmKG51bGwpO1xuICAgIGxldCBbLCBmb3JjZVVwZGF0ZV0gPSBfcmVhY3QuZGVmYXVsdC51c2VTdGF0ZSgpO1xuICAgIF9yZWFjdC5kZWZhdWx0LnVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBwb3J0YWxOb2RlLmN1cnJlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHR5cGUpO1xuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHBvcnRhbE5vZGUuY3VycmVudCk7XG4gICAgICAgIGZvcmNlVXBkYXRlKHtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiAoKT0+e1xuICAgICAgICAgICAgaWYgKHBvcnRhbE5vZGUuY3VycmVudCkge1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQocG9ydGFsTm9kZS5jdXJyZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9LCBbXG4gICAgICAgIHR5cGVcbiAgICBdKTtcbiAgICByZXR1cm4gcG9ydGFsTm9kZS5jdXJyZW50ID8gLyojX19QVVJFX18qLyAoMCwgX3JlYWN0RG9tKS5jcmVhdGVQb3J0YWwoY2hpbGRyZW4sIHBvcnRhbE5vZGUuY3VycmVudCkgOiBudWxsO1xufTtcbmV4cG9ydHMuUG9ydGFsID0gUG9ydGFsO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJQb3J0YWwiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdERvbSIsIm9iaiIsIl9fZXNNb2R1bGUiLCJjaGlsZHJlbiIsInR5cGUiLCJwb3J0YWxOb2RlIiwidXNlUmVmIiwidXNlU3RhdGUiLCJmb3JjZVVwZGF0ZSIsInVzZUVmZmVjdCIsImN1cnJlbnQiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJib2R5IiwiYXBwZW5kQ2hpbGQiLCJyZW1vdmVDaGlsZCIsImNyZWF0ZVBvcnRhbCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/portal/index.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/request-idle-callback.js": +/*!****************************************************************!*\ + !*** ./node_modules/next/dist/client/request-idle-callback.js ***! + \****************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.cancelIdleCallback = exports.requestIdleCallback = void 0;\n\nvar requestIdleCallback = typeof self !== 'undefined' && self.requestIdleCallback && self.requestIdleCallback.bind(window) || function (cb) {\n var start = Date.now();\n return setTimeout(function () {\n cb({\n didTimeout: false,\n timeRemaining: function timeRemaining() {\n return Math.max(0, 50 - (Date.now() - start));\n }\n });\n }, 1);\n};\n\nexports.requestIdleCallback = requestIdleCallback;\n\nvar cancelIdleCallback = typeof self !== 'undefined' && self.cancelIdleCallback && self.cancelIdleCallback.bind(window) || function (id) {\n return clearTimeout(id);\n};\n\nexports.cancelIdleCallback = cancelIdleCallback;\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yZXF1ZXN0LWlkbGUtY2FsbGJhY2suanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCwwQkFBQSxHQUE2QkEsMkJBQUEsR0FBOEIsS0FBSyxDQUFoRTs7QUFDQSxJQUFNRyxtQkFBbUIsR0FBRyxPQUFPQyxJQUFQLEtBQWdCLFdBQWhCLElBQStCQSxJQUFJLENBQUNELG1CQUFwQyxJQUEyREMsSUFBSSxDQUFDRCxtQkFBTCxDQUF5QkUsSUFBekIsQ0FBOEJDLE1BQTlCLENBQTNELElBQW9HLFVBQVNDLEVBQVQsRUFBYTtBQUN6SSxNQUFJQyxLQUFLLEdBQUdDLElBQUksQ0FBQ0MsR0FBTCxFQUFaO0FBQ0EsU0FBT0MsVUFBVSxDQUFDLFlBQVc7QUFDekJKLElBQUFBLEVBQUUsQ0FBQztBQUNDSyxNQUFBQSxVQUFVLEVBQUUsS0FEYjtBQUVDQyxNQUFBQSxhQUFhLEVBQUUseUJBQVc7QUFDdEIsZUFBT0MsSUFBSSxDQUFDQyxHQUFMLENBQVMsQ0FBVCxFQUFZLE1BQU1OLElBQUksQ0FBQ0MsR0FBTCxLQUFhRixLQUFuQixDQUFaLENBQVA7QUFDSDtBQUpGLEtBQUQsQ0FBRjtBQU1ILEdBUGdCLEVBT2QsQ0FQYyxDQUFqQjtBQVFILENBVkQ7O0FBV0FSLDJCQUFBLEdBQThCRyxtQkFBOUI7O0FBQ0EsSUFBTUQsa0JBQWtCLEdBQUcsT0FBT0UsSUFBUCxLQUFnQixXQUFoQixJQUErQkEsSUFBSSxDQUFDRixrQkFBcEMsSUFBMERFLElBQUksQ0FBQ0Ysa0JBQUwsQ0FBd0JHLElBQXhCLENBQTZCQyxNQUE3QixDQUExRCxJQUFrRyxVQUFTVSxFQUFULEVBQWE7QUFDdEksU0FBT0MsWUFBWSxDQUFDRCxFQUFELENBQW5CO0FBQ0gsQ0FGRDs7QUFHQWhCLDBCQUFBLEdBQTZCRSxrQkFBN0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvcmVxdWVzdC1pZGxlLWNhbGxiYWNrLmpzPzFlMjAiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmNhbmNlbElkbGVDYWxsYmFjayA9IGV4cG9ydHMucmVxdWVzdElkbGVDYWxsYmFjayA9IHZvaWQgMDtcbmNvbnN0IHJlcXVlc3RJZGxlQ2FsbGJhY2sgPSB0eXBlb2Ygc2VsZiAhPT0gJ3VuZGVmaW5lZCcgJiYgc2VsZi5yZXF1ZXN0SWRsZUNhbGxiYWNrICYmIHNlbGYucmVxdWVzdElkbGVDYWxsYmFjay5iaW5kKHdpbmRvdykgfHwgZnVuY3Rpb24oY2IpIHtcbiAgICBsZXQgc3RhcnQgPSBEYXRlLm5vdygpO1xuICAgIHJldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICBjYih7XG4gICAgICAgICAgICBkaWRUaW1lb3V0OiBmYWxzZSxcbiAgICAgICAgICAgIHRpbWVSZW1haW5pbmc6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBNYXRoLm1heCgwLCA1MCAtIChEYXRlLm5vdygpIC0gc3RhcnQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSwgMSk7XG59O1xuZXhwb3J0cy5yZXF1ZXN0SWRsZUNhbGxiYWNrID0gcmVxdWVzdElkbGVDYWxsYmFjaztcbmNvbnN0IGNhbmNlbElkbGVDYWxsYmFjayA9IHR5cGVvZiBzZWxmICE9PSAndW5kZWZpbmVkJyAmJiBzZWxmLmNhbmNlbElkbGVDYWxsYmFjayAmJiBzZWxmLmNhbmNlbElkbGVDYWxsYmFjay5iaW5kKHdpbmRvdykgfHwgZnVuY3Rpb24oaWQpIHtcbiAgICByZXR1cm4gY2xlYXJUaW1lb3V0KGlkKTtcbn07XG5leHBvcnRzLmNhbmNlbElkbGVDYWxsYmFjayA9IGNhbmNlbElkbGVDYWxsYmFjaztcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVxdWVzdC1pZGxlLWNhbGxiYWNrLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImNhbmNlbElkbGVDYWxsYmFjayIsInJlcXVlc3RJZGxlQ2FsbGJhY2siLCJzZWxmIiwiYmluZCIsIndpbmRvdyIsImNiIiwic3RhcnQiLCJEYXRlIiwibm93Iiwic2V0VGltZW91dCIsImRpZFRpbWVvdXQiLCJ0aW1lUmVtYWluaW5nIiwiTWF0aCIsIm1heCIsImlkIiwiY2xlYXJUaW1lb3V0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/request-idle-callback.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/route-announcer.js": +/*!**********************************************************!*\ + !*** ./node_modules/next/dist/client/route-announcer.js ***! + \**********************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _slicedToArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nvar _s = $RefreshSig$();\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.RouteAnnouncer = RouteAnnouncer;\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _router = __webpack_require__(/*! ./router */ \"./node_modules/next/dist/client/router.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction RouteAnnouncer() {\n _s();\n\n var _useRouter = (0, _router).useRouter(),\n asPath = _useRouter.asPath;\n\n var _react$default$useSta = _react[\"default\"].useState(''),\n _react$default$useSta2 = _slicedToArray(_react$default$useSta, 2),\n routeAnnouncement = _react$default$useSta2[0],\n setRouteAnnouncement = _react$default$useSta2[1]; // Only announce the path change, but not for the first load because screen\n // reader will do that automatically.\n\n\n var initialPathLoaded = _react[\"default\"].useRef(false); // Every time the path changes, announce the new page’s title following this\n // priority: first the document title (from head), otherwise the first h1, or\n // if none of these exist, then the pathname from the URL. This methodology is\n // inspired by Marcy Sutton’s accessible client routing user testing. More\n // information can be found here:\n // https://www.gatsbyjs.com/blog/2019-07-11-user-testing-accessible-client-routing/\n\n\n _react[\"default\"].useEffect(function () {\n if (!initialPathLoaded.current) {\n initialPathLoaded.current = true;\n return;\n }\n\n if (document.title) {\n setRouteAnnouncement(document.title);\n } else {\n var pageHeader = document.querySelector('h1');\n var ref;\n var content = (ref = pageHeader === null || pageHeader === void 0 ? void 0 : pageHeader.innerText) !== null && ref !== void 0 ? ref : pageHeader === null || pageHeader === void 0 ? void 0 : pageHeader.textContent;\n setRouteAnnouncement(content || asPath);\n }\n }, // TODO: switch to pathname + query object of dynamic route requirements\n [asPath]);\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"p\", {\n \"aria-live\": \"assertive\" // Make the announcement immediately.\n ,\n id: \"__next-route-announcer__\",\n role: \"alert\",\n style: {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n width: '1px',\n // https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe\n whiteSpace: 'nowrap',\n wordWrap: 'normal'\n }\n }, routeAnnouncement);\n}\n\n_s(RouteAnnouncer, \"lpE1qTfKkoN0hZau61j+whW+4H0=\", true);\n\n_c = RouteAnnouncer;\nvar _default = RouteAnnouncer;\nexports[\"default\"] = _default;\n\nvar _c;\n\n$RefreshReg$(_c, \"RouteAnnouncer\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yb3V0ZS1hbm5vdW5jZXIuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOzs7Ozs7QUFDYkEsOENBQTZDO0FBQ3pDRyxFQUFBQSxLQUFLLEVBQUU7QUFEa0MsQ0FBN0M7QUFHQUQsc0JBQUEsR0FBeUJFLGNBQXpCO0FBQ0FGLGtCQUFBLEdBQWtCLEtBQUssQ0FBdkI7O0FBQ0EsSUFBSUcsTUFBTSxHQUFHQyxzQkFBc0IsQ0FBQ0MsbUJBQU8sQ0FBQyw0Q0FBRCxDQUFSLENBQW5DOztBQUNBLElBQUlDLE9BQU8sR0FBR0QsbUJBQU8sQ0FBQywyREFBRCxDQUFyQjs7QUFDQSxTQUFTRCxzQkFBVCxDQUFnQ0csR0FBaEMsRUFBcUM7QUFDakMsU0FBT0EsR0FBRyxJQUFJQSxHQUFHLENBQUNDLFVBQVgsR0FBd0JELEdBQXhCLEdBQThCO0FBQ2pDLGVBQVNBO0FBRHdCLEdBQXJDO0FBR0g7O0FBQ0QsU0FBU0wsY0FBVCxHQUEwQjtBQUFBOztBQUN0QixtQkFBb0IsQ0FBQyxHQUFHSSxPQUFKLEVBQWFHLFNBQWIsRUFBcEI7QUFBQSxNQUFRQyxNQUFSLGNBQVFBLE1BQVI7O0FBQ0EsOEJBQWtEUCxNQUFNLFdBQU4sQ0FBZVEsUUFBZixDQUF3QixFQUF4QixDQUFsRDtBQUFBO0FBQUEsTUFBT0MsaUJBQVA7QUFBQSxNQUEwQkMsb0JBQTFCLDZCQUZzQixDQUd0QjtBQUNBOzs7QUFDQSxNQUFNQyxpQkFBaUIsR0FBR1gsTUFBTSxXQUFOLENBQWVZLE1BQWYsQ0FBc0IsS0FBdEIsQ0FBMUIsQ0FMc0IsQ0FNdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDQVosRUFBQUEsTUFBTSxXQUFOLENBQWVhLFNBQWYsQ0FBeUIsWUFBSTtBQUN6QixRQUFJLENBQUNGLGlCQUFpQixDQUFDRyxPQUF2QixFQUFnQztBQUM1QkgsTUFBQUEsaUJBQWlCLENBQUNHLE9BQWxCLEdBQTRCLElBQTVCO0FBQ0E7QUFDSDs7QUFDRCxRQUFJQyxRQUFRLENBQUNDLEtBQWIsRUFBb0I7QUFDaEJOLE1BQUFBLG9CQUFvQixDQUFDSyxRQUFRLENBQUNDLEtBQVYsQ0FBcEI7QUFDSCxLQUZELE1BRU87QUFDSCxVQUFNQyxVQUFVLEdBQUdGLFFBQVEsQ0FBQ0csYUFBVCxDQUF1QixJQUF2QixDQUFuQjtBQUNBLFVBQUlDLEdBQUo7QUFDQSxVQUFNQyxPQUFPLEdBQUcsQ0FBQ0QsR0FBRyxHQUFHRixVQUFVLEtBQUssSUFBZixJQUF1QkEsVUFBVSxLQUFLLEtBQUssQ0FBM0MsR0FBK0MsS0FBSyxDQUFwRCxHQUF3REEsVUFBVSxDQUFDSSxTQUExRSxNQUF5RixJQUF6RixJQUFpR0YsR0FBRyxLQUFLLEtBQUssQ0FBOUcsR0FBa0hBLEdBQWxILEdBQXdIRixVQUFVLEtBQUssSUFBZixJQUF1QkEsVUFBVSxLQUFLLEtBQUssQ0FBM0MsR0FBK0MsS0FBSyxDQUFwRCxHQUF3REEsVUFBVSxDQUFDSyxXQUEzTTtBQUNBWixNQUFBQSxvQkFBb0IsQ0FBQ1UsT0FBTyxJQUFJYixNQUFaLENBQXBCO0FBQ0g7QUFDSixHQWJELEVBYUc7QUFDSCxHQUNJQSxNQURKLENBZEE7O0FBaUJBLFNBQU8sYUFBY1AsTUFBTSxXQUFOLENBQWV1QixhQUFmLENBQTZCLEdBQTdCLEVBQWtDO0FBQ25ELGlCQUFhLFdBRHNDLENBQzFCO0FBRDBCO0FBR25EQyxJQUFBQSxFQUFFLEVBQUUsMEJBSCtDO0FBSW5EQyxJQUFBQSxJQUFJLEVBQUUsT0FKNkM7QUFLbkRDLElBQUFBLEtBQUssRUFBRTtBQUNIQyxNQUFBQSxNQUFNLEVBQUUsQ0FETDtBQUVIQyxNQUFBQSxJQUFJLEVBQUUsZUFGSDtBQUdIQyxNQUFBQSxNQUFNLEVBQUUsS0FITDtBQUlIQyxNQUFBQSxNQUFNLEVBQUUsTUFKTDtBQUtIQyxNQUFBQSxRQUFRLEVBQUUsUUFMUDtBQU1IQyxNQUFBQSxPQUFPLEVBQUUsQ0FOTjtBQU9IQyxNQUFBQSxRQUFRLEVBQUUsVUFQUDtBQVFIQyxNQUFBQSxLQUFLLEVBQUUsS0FSSjtBQVNIO0FBQ0FDLE1BQUFBLFVBQVUsRUFBRSxRQVZUO0FBV0hDLE1BQUFBLFFBQVEsRUFBRTtBQVhQO0FBTDRDLEdBQWxDLEVBa0JsQjNCLGlCQWxCa0IsQ0FBckI7QUFtQkg7O0dBaERRVjs7S0FBQUE7QUFpRFQsSUFBSXNDLFFBQVEsR0FBR3RDLGNBQWY7QUFDQUYsa0JBQUEsR0FBa0J3QyxRQUFsQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yb3V0ZS1hbm5vdW5jZXIuanM/NTgyNyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuUm91dGVBbm5vdW5jZXIgPSBSb3V0ZUFubm91bmNlcjtcbmV4cG9ydHMuZGVmYXVsdCA9IHZvaWQgMDtcbnZhciBfcmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG52YXIgX3JvdXRlciA9IHJlcXVpcmUoXCIuL3JvdXRlclwiKTtcbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbmZ1bmN0aW9uIFJvdXRlQW5ub3VuY2VyKCkge1xuICAgIGNvbnN0IHsgYXNQYXRoICB9ID0gKDAsIF9yb3V0ZXIpLnVzZVJvdXRlcigpO1xuICAgIGNvbnN0IFtyb3V0ZUFubm91bmNlbWVudCwgc2V0Um91dGVBbm5vdW5jZW1lbnRdID0gX3JlYWN0LmRlZmF1bHQudXNlU3RhdGUoJycpO1xuICAgIC8vIE9ubHkgYW5ub3VuY2UgdGhlIHBhdGggY2hhbmdlLCBidXQgbm90IGZvciB0aGUgZmlyc3QgbG9hZCBiZWNhdXNlIHNjcmVlblxuICAgIC8vIHJlYWRlciB3aWxsIGRvIHRoYXQgYXV0b21hdGljYWxseS5cbiAgICBjb25zdCBpbml0aWFsUGF0aExvYWRlZCA9IF9yZWFjdC5kZWZhdWx0LnVzZVJlZihmYWxzZSk7XG4gICAgLy8gRXZlcnkgdGltZSB0aGUgcGF0aCBjaGFuZ2VzLCBhbm5vdW5jZSB0aGUgbmV3IHBhZ2XigJlzIHRpdGxlIGZvbGxvd2luZyB0aGlzXG4gICAgLy8gcHJpb3JpdHk6IGZpcnN0IHRoZSBkb2N1bWVudCB0aXRsZSAoZnJvbSBoZWFkKSwgb3RoZXJ3aXNlIHRoZSBmaXJzdCBoMSwgb3JcbiAgICAvLyBpZiBub25lIG9mIHRoZXNlIGV4aXN0LCB0aGVuIHRoZSBwYXRobmFtZSBmcm9tIHRoZSBVUkwuIFRoaXMgbWV0aG9kb2xvZ3kgaXNcbiAgICAvLyBpbnNwaXJlZCBieSBNYXJjeSBTdXR0b27igJlzIGFjY2Vzc2libGUgY2xpZW50IHJvdXRpbmcgdXNlciB0ZXN0aW5nLiBNb3JlXG4gICAgLy8gaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGhlcmU6XG4gICAgLy8gaHR0cHM6Ly93d3cuZ2F0c2J5anMuY29tL2Jsb2cvMjAxOS0wNy0xMS11c2VyLXRlc3RpbmctYWNjZXNzaWJsZS1jbGllbnQtcm91dGluZy9cbiAgICBfcmVhY3QuZGVmYXVsdC51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgaWYgKCFpbml0aWFsUGF0aExvYWRlZC5jdXJyZW50KSB7XG4gICAgICAgICAgICBpbml0aWFsUGF0aExvYWRlZC5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZG9jdW1lbnQudGl0bGUpIHtcbiAgICAgICAgICAgIHNldFJvdXRlQW5ub3VuY2VtZW50KGRvY3VtZW50LnRpdGxlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHBhZ2VIZWFkZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdoMScpO1xuICAgICAgICAgICAgdmFyIHJlZjtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSAocmVmID0gcGFnZUhlYWRlciA9PT0gbnVsbCB8fCBwYWdlSGVhZGVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwYWdlSGVhZGVyLmlubmVyVGV4dCkgIT09IG51bGwgJiYgcmVmICE9PSB2b2lkIDAgPyByZWYgOiBwYWdlSGVhZGVyID09PSBudWxsIHx8IHBhZ2VIZWFkZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBhZ2VIZWFkZXIudGV4dENvbnRlbnQ7XG4gICAgICAgICAgICBzZXRSb3V0ZUFubm91bmNlbWVudChjb250ZW50IHx8IGFzUGF0aCk7XG4gICAgICAgIH1cbiAgICB9LCAvLyBUT0RPOiBzd2l0Y2ggdG8gcGF0aG5hbWUgKyBxdWVyeSBvYmplY3Qgb2YgZHluYW1pYyByb3V0ZSByZXF1aXJlbWVudHNcbiAgICBbXG4gICAgICAgIGFzUGF0aFxuICAgIF0pO1xuICAgIHJldHVybigvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJwXCIsIHtcbiAgICAgICAgXCJhcmlhLWxpdmVcIjogXCJhc3NlcnRpdmVcIiAvLyBNYWtlIHRoZSBhbm5vdW5jZW1lbnQgaW1tZWRpYXRlbHkuXG4gICAgICAgICxcbiAgICAgICAgaWQ6IFwiX19uZXh0LXJvdXRlLWFubm91bmNlcl9fXCIsXG4gICAgICAgIHJvbGU6IFwiYWxlcnRcIixcbiAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgIGJvcmRlcjogMCxcbiAgICAgICAgICAgIGNsaXA6ICdyZWN0KDAgMCAwIDApJyxcbiAgICAgICAgICAgIGhlaWdodDogJzFweCcsXG4gICAgICAgICAgICBtYXJnaW46ICctMXB4JyxcbiAgICAgICAgICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgICAgICAgICAgIHBhZGRpbmc6IDAsXG4gICAgICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgICAgIHdpZHRoOiAnMXB4JyxcbiAgICAgICAgICAgIC8vIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAgICAgICAgICAgIHdoaXRlU3BhY2U6ICdub3dyYXAnLFxuICAgICAgICAgICAgd29yZFdyYXA6ICdub3JtYWwnXG4gICAgICAgIH1cbiAgICB9LCByb3V0ZUFubm91bmNlbWVudCkpO1xufVxudmFyIF9kZWZhdWx0ID0gUm91dGVBbm5vdW5jZXI7XG5leHBvcnRzLmRlZmF1bHQgPSBfZGVmYXVsdDtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cm91dGUtYW5ub3VuY2VyLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsIlJvdXRlQW5ub3VuY2VyIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcm91dGVyIiwib2JqIiwiX19lc01vZHVsZSIsInVzZVJvdXRlciIsImFzUGF0aCIsInVzZVN0YXRlIiwicm91dGVBbm5vdW5jZW1lbnQiLCJzZXRSb3V0ZUFubm91bmNlbWVudCIsImluaXRpYWxQYXRoTG9hZGVkIiwidXNlUmVmIiwidXNlRWZmZWN0IiwiY3VycmVudCIsImRvY3VtZW50IiwidGl0bGUiLCJwYWdlSGVhZGVyIiwicXVlcnlTZWxlY3RvciIsInJlZiIsImNvbnRlbnQiLCJpbm5lclRleHQiLCJ0ZXh0Q29udGVudCIsImNyZWF0ZUVsZW1lbnQiLCJpZCIsInJvbGUiLCJzdHlsZSIsImJvcmRlciIsImNsaXAiLCJoZWlnaHQiLCJtYXJnaW4iLCJvdmVyZmxvdyIsInBhZGRpbmciLCJwb3NpdGlvbiIsIndpZHRoIiwid2hpdGVTcGFjZSIsIndvcmRXcmFwIiwiX2RlZmF1bHQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/route-announcer.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/route-loader.js": +/*!*******************************************************!*\ + !*** ./node_modules/next/dist/client/route-loader.js ***! + \*******************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.markAssetError = markAssetError;\nexports.isAssetError = isAssetError;\nexports.getClientBuildManifest = getClientBuildManifest;\nexports.getMiddlewareManifest = getMiddlewareManifest;\nexports.createRouteLoader = createRouteLoader;\n\nvar _getAssetPathFromRoute = _interopRequireDefault(__webpack_require__(/*! ../shared/lib/router/utils/get-asset-path-from-route */ \"./node_modules/next/dist/shared/lib/router/utils/get-asset-path-from-route.js\"));\n\nvar _requestIdleCallback = __webpack_require__(/*! ./request-idle-callback */ \"./node_modules/next/dist/client/request-idle-callback.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n} // 3.8s was arbitrarily chosen as it's what https://web.dev/interactive\n// considers as \"Good\" time-to-interactive. We must assume something went\n// wrong beyond this point, and then fall-back to a full page transition to\n// show the user something of value.\n\n\nvar MS_MAX_IDLE_DELAY = 3800;\n\nfunction withFuture(key, map, generator) {\n var entry = map.get(key);\n\n if (entry) {\n if ('future' in entry) {\n return entry.future;\n }\n\n return Promise.resolve(entry);\n }\n\n var resolver;\n var prom = new Promise(function (resolve) {\n resolver = resolve;\n });\n map.set(key, entry = {\n resolve: resolver,\n future: prom\n });\n return generator ? generator() // eslint-disable-next-line no-sequences\n .then(function (value) {\n return resolver(value), value;\n })[\"catch\"](function (err) {\n map[\"delete\"](key);\n throw err;\n }) : prom;\n}\n\nfunction hasPrefetch(link) {\n try {\n link = document.createElement('link');\n return (// detect IE11 since it supports prefetch but isn't detected\n // with relList.support\n !!window.MSInputMethodContext && !!document.documentMode || link.relList.supports('prefetch')\n );\n } catch (e) {\n return false;\n }\n}\n\nvar canPrefetch = hasPrefetch();\n\nfunction prefetchViaDom(href, as, link) {\n return new Promise(function (res, rej) {\n var selector = \"\\n link[rel=\\\"prefetch\\\"][href^=\\\"\".concat(href, \"\\\"],\\n link[rel=\\\"preload\\\"][href^=\\\"\").concat(href, \"\\\"],\\n script[src^=\\\"\").concat(href, \"\\\"]\");\n\n if (document.querySelector(selector)) {\n return res();\n }\n\n link = document.createElement('link'); // The order of property assignment here is intentional:\n\n if (as) link.as = as;\n link.rel = \"prefetch\";\n link.crossOrigin = undefined;\n link.onload = res;\n link.onerror = rej; // `href` should always be last:\n\n link.href = href;\n document.head.appendChild(link);\n });\n}\n\nvar ASSET_LOAD_ERROR = Symbol('ASSET_LOAD_ERROR');\n\nfunction markAssetError(err) {\n return Object.defineProperty(err, ASSET_LOAD_ERROR, {});\n}\n\nfunction isAssetError(err) {\n return err && ASSET_LOAD_ERROR in err;\n}\n\nfunction appendScript(src, script) {\n return new Promise(function (resolve, reject) {\n script = document.createElement('script'); // The order of property assignment here is intentional.\n // 1. Setup success/failure hooks in case the browser synchronously\n // executes when `src` is set.\n\n script.onload = resolve;\n\n script.onerror = function () {\n return reject(markAssetError(new Error(\"Failed to load script: \".concat(src))));\n }; // 2. Configure the cross-origin attribute before setting `src` in case the\n // browser begins to fetch.\n\n\n script.crossOrigin = undefined; // 3. Finally, set the source and inject into the DOM in case the child\n // must be appended for fetching to start.\n\n script.src = src;\n document.body.appendChild(script);\n });\n} // We wait for pages to be built in dev before we start the route transition\n// timeout to prevent an un-necessary hard navigation in development.\n\n\nvar devBuildPromise; // Resolve a promise that times out after given amount of milliseconds.\n\nfunction resolvePromiseWithTimeout(p, ms, err) {\n return new Promise(function (resolve, reject) {\n var cancelled = false;\n p.then(function (r) {\n // Resolved, cancel the timeout\n cancelled = true;\n resolve(r);\n })[\"catch\"](reject); // We wrap these checks separately for better dead-code elimination in\n // production bundles.\n\n if (true) {\n (devBuildPromise || Promise.resolve()).then(function () {\n (0, _requestIdleCallback).requestIdleCallback(function () {\n return setTimeout(function () {\n if (!cancelled) {\n reject(err);\n }\n }, ms);\n });\n });\n }\n\n if (false) {}\n });\n}\n\nfunction getClientBuildManifest() {\n if (self.__BUILD_MANIFEST) {\n return Promise.resolve(self.__BUILD_MANIFEST);\n }\n\n var onBuildManifest = new Promise(function (resolve) {\n // Mandatory because this is not concurrent safe:\n var cb = self.__BUILD_MANIFEST_CB;\n\n self.__BUILD_MANIFEST_CB = function () {\n resolve(self.__BUILD_MANIFEST);\n cb && cb();\n };\n });\n return resolvePromiseWithTimeout(onBuildManifest, MS_MAX_IDLE_DELAY, markAssetError(new Error('Failed to load client build manifest')));\n}\n\nfunction getMiddlewareManifest() {\n if (self.__MIDDLEWARE_MANIFEST) {\n return Promise.resolve(self.__MIDDLEWARE_MANIFEST);\n }\n\n var onMiddlewareManifest = new Promise(function (resolve) {\n var cb = self.__MIDDLEWARE_MANIFEST_CB;\n\n self.__MIDDLEWARE_MANIFEST_CB = function () {\n resolve(self.__MIDDLEWARE_MANIFEST);\n cb && cb();\n };\n });\n return resolvePromiseWithTimeout(onMiddlewareManifest, MS_MAX_IDLE_DELAY, markAssetError(new Error('Failed to load client middleware manifest')));\n}\n\nfunction getFilesForRoute(assetPrefix, route) {\n if (true) {\n return Promise.resolve({\n scripts: [assetPrefix + '/_next/static/chunks/pages' + encodeURI((0, _getAssetPathFromRoute)[\"default\"](route, '.js'))],\n // Styles are handled by `style-loader` in development:\n css: []\n });\n }\n\n return getClientBuildManifest().then(function (manifest) {\n if (!(route in manifest)) {\n throw markAssetError(new Error(\"Failed to lookup route: \".concat(route)));\n }\n\n var allFiles = manifest[route].map(function (entry) {\n return assetPrefix + '/_next/' + encodeURI(entry);\n });\n return {\n scripts: allFiles.filter(function (v) {\n return v.endsWith('.js');\n }),\n css: allFiles.filter(function (v) {\n return v.endsWith('.css');\n })\n };\n });\n}\n\nfunction createRouteLoader(assetPrefix) {\n var entrypoints = new Map();\n var loadedScripts = new Map();\n var styleSheets = new Map();\n var routes = new Map();\n\n function maybeExecuteScript(src) {\n // With HMR we might need to \"reload\" scripts when they are\n // disposed and readded. Executing scripts twice has no functional\n // differences\n if (false) { var prom; } else {\n return appendScript(src);\n }\n }\n\n function fetchStyleSheet(href) {\n var prom = styleSheets.get(href);\n\n if (prom) {\n return prom;\n }\n\n styleSheets.set(href, prom = fetch(href).then(function (res) {\n if (!res.ok) {\n throw new Error(\"Failed to load stylesheet: \".concat(href));\n }\n\n return res.text().then(function (text) {\n return {\n href: href,\n content: text\n };\n });\n })[\"catch\"](function (err) {\n throw markAssetError(err);\n }));\n return prom;\n }\n\n return {\n whenEntrypoint: function whenEntrypoint(route) {\n return withFuture(route, entrypoints);\n },\n onEntrypoint: function onEntrypoint(route, execute) {\n (execute ? Promise.resolve().then(function () {\n return execute();\n }).then(function (exports) {\n return {\n component: exports && exports[\"default\"] || exports,\n exports: exports\n };\n }, function (err) {\n return {\n error: err\n };\n }) : Promise.resolve(undefined)).then(function (input) {\n var old = entrypoints.get(route);\n\n if (old && 'resolve' in old) {\n if (input) {\n entrypoints.set(route, input);\n old.resolve(input);\n }\n } else {\n if (input) {\n entrypoints.set(route, input);\n } else {\n entrypoints[\"delete\"](route);\n } // when this entrypoint has been resolved before\n // the route is outdated and we want to invalidate\n // this cache entry\n\n\n routes[\"delete\"](route);\n }\n });\n },\n loadRoute: function loadRoute(route, prefetch) {\n var _this = this;\n\n return withFuture(route, routes, function () {\n var routeFilesPromise = getFilesForRoute(assetPrefix, route).then(function (_ref) {\n var scripts = _ref.scripts,\n css = _ref.css;\n return Promise.all([entrypoints.has(route) ? [] : Promise.all(scripts.map(maybeExecuteScript)), Promise.all(css.map(fetchStyleSheet))]);\n }).then(function (res) {\n return _this.whenEntrypoint(route).then(function (entrypoint) {\n return {\n entrypoint: entrypoint,\n styles: res[1]\n };\n });\n });\n\n if (true) {\n devBuildPromise = new Promise(function (resolve) {\n if (routeFilesPromise) {\n return routeFilesPromise[\"finally\"](function () {\n resolve();\n });\n }\n });\n }\n\n return resolvePromiseWithTimeout(routeFilesPromise, MS_MAX_IDLE_DELAY, markAssetError(new Error(\"Route did not complete loading: \".concat(route)))).then(function (_ref2) {\n var entrypoint = _ref2.entrypoint,\n styles = _ref2.styles;\n var res = Object.assign({\n styles: styles\n }, entrypoint);\n return 'error' in entrypoint ? entrypoint : res;\n })[\"catch\"](function (err) {\n if (prefetch) {\n // we don't want to cache errors during prefetch\n throw err;\n }\n\n return {\n error: err\n };\n });\n });\n },\n prefetch: function prefetch(route) {\n var _this2 = this;\n\n // https://github.com/GoogleChromeLabs/quicklink/blob/453a661fa1fa940e2d2e044452398e38c67a98fb/src/index.mjs#L115-L118\n // License: Apache 2.0\n var cn;\n\n if (cn = navigator.connection) {\n // Don't prefetch if using 2G or if Save-Data is enabled.\n if (cn.saveData || /2g/.test(cn.effectiveType)) return Promise.resolve();\n }\n\n return getFilesForRoute(assetPrefix, route).then(function (output) {\n return Promise.all(canPrefetch ? output.scripts.map(function (script) {\n return prefetchViaDom(script, 'script');\n }) : []);\n }).then(function () {\n (0, _requestIdleCallback).requestIdleCallback(function () {\n return _this2.loadRoute(route, true)[\"catch\"](function () {});\n });\n })[\"catch\"]( // swallow prefetch errors\n function () {});\n }\n };\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yb3V0ZS1sb2FkZXIuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxzQkFBQSxHQUF5QkUsY0FBekI7QUFDQUYsb0JBQUEsR0FBdUJHLFlBQXZCO0FBQ0FILDhCQUFBLEdBQWlDSSxzQkFBakM7QUFDQUosNkJBQUEsR0FBZ0NLLHFCQUFoQztBQUNBTCx5QkFBQSxHQUE0Qk0saUJBQTVCOztBQUNBLElBQUlDLHNCQUFzQixHQUFHQyxzQkFBc0IsQ0FBQ0MsbUJBQU8sQ0FBQywySUFBRCxDQUFSLENBQW5EOztBQUNBLElBQUlDLG9CQUFvQixHQUFHRCxtQkFBTyxDQUFDLHlGQUFELENBQWxDOztBQUNBLFNBQVNELHNCQUFULENBQWdDRyxHQUFoQyxFQUFxQztBQUNqQyxTQUFPQSxHQUFHLElBQUlBLEdBQUcsQ0FBQ0MsVUFBWCxHQUF3QkQsR0FBeEIsR0FBOEI7QUFDakMsZUFBU0E7QUFEd0IsR0FBckM7QUFHSCxFQUNEO0FBQ0E7QUFDQTtBQUNBOzs7QUFDQSxJQUFNRSxpQkFBaUIsR0FBRyxJQUExQjs7QUFDQSxTQUFTQyxVQUFULENBQW9CQyxHQUFwQixFQUF5QkMsR0FBekIsRUFBOEJDLFNBQTlCLEVBQXlDO0FBQ3JDLE1BQUlDLEtBQUssR0FBR0YsR0FBRyxDQUFDRyxHQUFKLENBQVFKLEdBQVIsQ0FBWjs7QUFDQSxNQUFJRyxLQUFKLEVBQVc7QUFDUCxRQUFJLFlBQVlBLEtBQWhCLEVBQXVCO0FBQ25CLGFBQU9BLEtBQUssQ0FBQ0UsTUFBYjtBQUNIOztBQUNELFdBQU9DLE9BQU8sQ0FBQ0MsT0FBUixDQUFnQkosS0FBaEIsQ0FBUDtBQUNIOztBQUNELE1BQUlLLFFBQUo7QUFDQSxNQUFNQyxJQUFJLEdBQUcsSUFBSUgsT0FBSixDQUFZLFVBQUNDLE9BQUQsRUFBVztBQUNoQ0MsSUFBQUEsUUFBUSxHQUFH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QUFuQixFQUErQjtBQUMzQjtBQUNBLFlBQUlGLEVBQUUsQ0FBQ0csUUFBSCxJQUFlLEtBQUtDLElBQUwsQ0FBVUosRUFBRSxDQUFDSyxhQUFiLENBQW5CLEVBQWdELE9BQU9yRyxPQUFPLENBQUNDLE9BQVIsRUFBUDtBQUNuRDs7QUFDRCxhQUFPeUQsZ0JBQWdCLENBQUNDLFdBQUQsRUFBY0MsS0FBZCxDQUFoQixDQUFxQ3ZELElBQXJDLENBQTBDLFVBQUNpRyxNQUFEO0FBQUEsZUFBVXRHLE9BQU8sQ0FBQzJGLEdBQVIsQ0FBWTFFLFdBQVcsR0FBR3FGLE1BQU0sQ0FBQ3pDLE9BQVAsQ0FBZWxFLEdBQWYsQ0FBbUIsVUFBQzJDLE1BQUQ7QUFBQSxpQkFBVXBCLGNBQWMsQ0FBQ29CLE1BQUQsRUFBUyxRQUFULENBQXhCO0FBQUEsU0FBbkIsQ0FBSCxHQUMxRSxFQURtRCxDQUFWO0FBQUEsT0FBMUMsRUFFTGpDLElBRkssQ0FFQSxZQUFJO0FBQ1AsU0FBQyxHQUFHaEIsb0JBQUosRUFBMEIyRCxtQkFBMUIsQ0FBOEM7QUFBQSxpQkFBSSxNQUFJLENBQUN3QyxTQUFMLENBQWU1QixLQUFmLEVBQXNCLElBQXRCLFdBQWtDLFlBQUksQ0FDbkYsQ0FENkMsQ0FBSjtBQUFBLFNBQTlDO0FBR0gsT0FOTSxZQU1FO0FBQ1Qsa0JBQUksQ0FDSCxDQVJNLENBQVA7QUFTSDtBQXpGRSxHQUFQO0FBMkZIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3JvdXRlLWxvYWRlci5qcz9lYTM0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5tYXJrQXNzZXRFcnJvciA9IG1hcmtBc3NldEVycm9yO1xuZXhwb3J0cy5pc0Fzc2V0RXJyb3IgPSBpc0Fzc2V0RXJyb3I7XG5leHBvcnRzLmdldENsaWVudEJ1aWxkTWFuaWZlc3QgPSBnZXRDbGllbnRCdWlsZE1hbmlmZXN0O1xuZXhwb3J0cy5nZXRNaWRkbGV3YXJlTWFuaWZlc3QgPSBnZXRNaWRkbGV3YXJlTWFuaWZlc3Q7XG5leHBvcnRzLmNyZWF0ZVJvdXRlTG9hZGVyID0gY3JlYXRlUm91dGVMb2FkZXI7XG52YXIgX2dldEFzc2V0UGF0aEZyb21Sb3V0ZSA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2dldC1hc3NldC1wYXRoLWZyb20tcm91dGVcIikpO1xudmFyIF9yZXF1ZXN0SWRsZUNhbGxiYWNrID0gcmVxdWlyZShcIi4vcmVxdWVzdC1pZGxlLWNhbGxiYWNrXCIpO1xuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuLy8gMy44cyB3YXMgYXJiaXRyYXJpbHkgY2hvc2VuIGFzIGl0J3Mgd2hhdCBodHRwczovL3dlYi5kZXYvaW50ZXJhY3RpdmVcbi8vIGNvbnNpZGVycyBhcyBcIkdvb2RcIiB0aW1lLXRvLWludGVyYWN0aXZlLiBXZSBtdXN0IGFzc3VtZSBzb21ldGhpbmcgd2VudFxuLy8gd3JvbmcgYmV5b25kIHRoaXMgcG9pbnQsIGFuZCB0aGVuIGZhbGwtYmFjayB0byBhIGZ1bGwgcGFnZSB0cmFuc2l0aW9uIHRvXG4vLyBzaG93IHRoZSB1c2VyIHNvbWV0aGluZyBvZiB2YWx1ZS5cbmNvbnN0IE1TX01BWF9JRExFX0RFTEFZID0gMzgwMDtcbmZ1bmN0aW9uIHdpdGhGdXR1cmUoa2V5LCBtYXAsIGdlbmVyYXRvcikge1xuICAgIGxldCBlbnRyeSA9IG1hcC5nZXQoa2V5KTtcbiAgICBpZiAoZW50cnkpIHtcbiAgICAgICAgaWYgKCdmdXR1cmUnIGluIGVudHJ5KSB7XG4gICAgICAgICAgICByZXR1cm4gZW50cnkuZnV0dXJlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZW50cnkpO1xuICAgIH1cbiAgICBsZXQgcmVzb2x2ZXI7XG4gICAgY29uc3QgcHJvbSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKT0+e1xuICAgICAgICByZXNvbHZlciA9IHJlc29sdmU7XG4gICAgfSk7XG4gICAgbWFwLnNldChrZXksIGVudHJ5ID0ge1xuICAgICAgICByZXNvbHZlOiByZXNvbHZlcixcbiAgICAgICAgZnV0dXJlOiBwcm9tXG4gICAgfSk7XG4gICAgcmV0dXJuIGdlbmVyYXRvciA/IGdlbmVyYXRvcigpLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlcXVlbmNlc1xuICAgIC50aGVuKCh2YWx1ZSk9PihyZXNvbHZlcih2YWx1ZSksIHZhbHVlKVxuICAgICkuY2F0Y2goKGVycik9PntcbiAgICAgICAgbWFwLmRlbGV0ZShrZXkpO1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgfSkgOiBwcm9tO1xufVxuZnVuY3Rpb24gaGFzUHJlZmV0Y2gobGluaykge1xuICAgIHRyeSB7XG4gICAgICAgIGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XG4gICAgICAgIHJldHVybigvLyBkZXRlY3QgSUUxMSBzaW5jZSBpdCBzdXBwb3J0cyBwcmVmZXRjaCBidXQgaXNuJ3QgZGV0ZWN0ZWRcbiAgICAgICAgLy8gd2l0aCByZWxMaXN0LnN1cHBvcnRcbiAgICAgICAgKCEhd2luZG93Lk1TSW5wdXRNZXRob2RDb250ZXh0ICYmICEhZG9jdW1lbnQuZG9jdW1lbnRNb2RlKSB8fCBsaW5rLnJlbExpc3Quc3VwcG9ydHMoJ3ByZWZldGNoJykpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cbmNvbnN0IGNhblByZWZldGNoID0gaGFzUHJlZmV0Y2goKTtcbmZ1bmN0aW9uIHByZWZldGNoVmlhRG9tKGhyZWYsIGFzLCBsaW5rKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXMsIHJlaik9PntcbiAgICAgICAgY29uc3Qgc2VsZWN0b3IgPSBgXG4gICAgICBsaW5rW3JlbD1cInByZWZldGNoXCJdW2hyZWZePVwiJHtocmVmfVwiXSxcbiAgICAgIGxpbmtbcmVsPVwicHJlbG9hZFwiXVtocmVmXj1cIiR7aHJlZn1cIl0sXG4gICAgICBzY3JpcHRbc3JjXj1cIiR7aHJlZn1cIl1gO1xuICAgICAgICBpZiAoZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzZWxlY3RvcikpIHtcbiAgICAgICAgICAgIHJldHVybiByZXMoKTtcbiAgICAgICAgfVxuICAgICAgICBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpO1xuICAgICAgICAvLyBUaGUgb3JkZXIgb2YgcHJvcGVydHkgYXNzaWdubWVudCBoZXJlIGlzIGludGVudGlvbmFsOlxuICAgICAgICBpZiAoYXMpIGxpbmsuYXMgPSBhcztcbiAgICAgICAgbGluay5yZWwgPSBgcHJlZmV0Y2hgO1xuICAgICAgICBsaW5rLmNyb3NzT3JpZ2luID0gcHJvY2Vzcy5lbnYuX19ORVhUX0NST1NTX09SSUdJTjtcbiAgICAgICAgbGluay5vbmxvYWQgPSByZXM7XG4gICAgICAgIGxpbmsub25lcnJvciA9IHJlajtcbiAgICAgICAgLy8gYGhyZWZgIHNob3VsZCBhbHdheXMgYmUgbGFzdDpcbiAgICAgICAgbGluay5ocmVmID0gaHJlZjtcbiAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChsaW5rKTtcbiAgICB9KTtcbn1cbmNvbnN0IEFTU0VUX0xPQURfRVJST1IgPSBTeW1ib2woJ0FTU0VUX0xPQURfRVJST1InKTtcbmZ1bmN0aW9uIG1hcmtBc3NldEVycm9yKGVycikge1xuICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXJyLCBBU1NFVF9MT0FEX0VSUk9SLCB7XG4gICAgfSk7XG59XG5mdW5jdGlvbiBpc0Fzc2V0RXJyb3IoZXJyKSB7XG4gICAgcmV0dXJuIGVyciAmJiBBU1NFVF9MT0FEX0VSUk9SIGluIGVycjtcbn1cbmZ1bmN0aW9uIGFwcGVuZFNjcmlwdChzcmMsIHNjcmlwdCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KT0+e1xuICAgICAgICBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICAgICAgLy8gVGhlIG9yZGVyIG9mIHByb3BlcnR5IGFzc2lnbm1lbnQgaGVyZSBpcyBpbnRlbnRpb25hbC5cbiAgICAgICAgLy8gMS4gU2V0dXAgc3VjY2Vzcy9mYWlsdXJlIGhvb2tzIGluIGNhc2UgdGhlIGJyb3dzZXIgc3luY2hyb25vdXNseVxuICAgICAgICAvLyAgICBleGVjdXRlcyB3aGVuIGBzcmNgIGlzIHNldC5cbiAgICAgICAgc2NyaXB0Lm9ubG9hZCA9IHJlc29sdmU7XG4gICAgICAgIHNjcmlwdC5vbmVycm9yID0gKCk9PnJlamVjdChtYXJrQXNzZXRFcnJvcihuZXcgRXJyb3IoYEZhaWxlZCB0byBsb2FkIHNjcmlwdDogJHtzcmN9YCkpKVxuICAgICAgICA7XG4gICAgICAgIC8vIDIuIENvbmZpZ3VyZSB0aGUgY3Jvc3Mtb3JpZ2luIGF0dHJpYnV0ZSBiZWZvcmUgc2V0dGluZyBgc3JjYCBpbiBjYXNlIHRoZVxuICAgICAgICAvLyAgICBicm93c2VyIGJlZ2lucyB0byBmZXRjaC5cbiAgICAgICAgc2NyaXB0LmNyb3NzT3JpZ2luID0gcHJvY2Vzcy5lbnYuX19ORVhUX0NST1NTX09SSUdJTjtcbiAgICAgICAgLy8gMy4gRmluYWxseSwgc2V0IHRoZSBzb3VyY2UgYW5kIGluamVjdCBpbnRvIHRoZSBET00gaW4gY2FzZSB0aGUgY2hpbGRcbiAgICAgICAgLy8gICAgbXVzdCBiZSBhcHBlbmRlZCBmb3IgZmV0Y2hpbmcgdG8gc3RhcnQuXG4gICAgICAgIHNjcmlwdC5zcmMgPSBzcmM7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbiAgICB9KTtcbn1cbi8vIFdlIHdhaXQgZm9yIHBhZ2VzIHRvIGJlIGJ1aWx0IGluIGRldiBiZWZvcmUgd2Ugc3RhcnQgdGhlIHJvdXRlIHRyYW5zaXRpb25cbi8vIHRpbWVvdXQgdG8gcHJldmVudCBhbiB1bi1uZWNlc3NhcnkgaGFyZCBuYXZpZ2F0aW9uIGluIGRldmVsb3BtZW50LlxubGV0IGRldkJ1aWxkUHJvbWlzZTtcbi8vIFJlc29sdmUgYSBwcm9taXNlIHRoYXQgdGltZXMgb3V0IGFmdGVyIGdpdmVuIGFtb3VudCBvZiBtaWxsaXNlY29uZHMuXG5mdW5jdGlvbiByZXNvbHZlUHJvbWlzZVdpdGhUaW1lb3V0KHAsIG1zLCBlcnIpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCk9PntcbiAgICAgICAgbGV0IGNhbmNlbGxlZCA9IGZhbHNlO1xuICAgICAgICBwLnRoZW4oKHIpPT57XG4gICAgICAgICAgICAvLyBSZXNvbHZlZCwgY2FuY2VsIHRoZSB0aW1lb3V0XG4gICAgICAgICAgICBjYW5jZWxsZWQgPSB0cnVlO1xuICAgICAgICAgICAgcmVzb2x2ZShyKTtcbiAgICAgICAgfSkuY2F0Y2gocmVqZWN0KTtcbiAgICAgICAgLy8gV2Ugd3JhcCB0aGVzZSBjaGVja3Mgc2VwYXJhdGVseSBmb3IgYmV0dGVyIGRlYWQtY29kZSBlbGltaW5hdGlvbiBpblxuICAgICAgICAvLyBwcm9kdWN0aW9uIGJ1bmRsZXMuXG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgKGRldkJ1aWxkUHJvbWlzZSB8fCBQcm9taXNlLnJlc29sdmUoKSkudGhlbigoKT0+e1xuICAgICAgICAgICAgICAgICgwLCBfcmVxdWVzdElkbGVDYWxsYmFjaykucmVxdWVzdElkbGVDYWxsYmFjaygoKT0+c2V0VGltZW91dCgoKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjYW5jZWxsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSwgbXMpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgKDAsIF9yZXF1ZXN0SWRsZUNhbGxiYWNrKS5yZXF1ZXN0SWRsZUNhbGxiYWNrKCgpPT5zZXRUaW1lb3V0KCgpPT57XG4gICAgICAgICAgICAgICAgICAgIGlmICghY2FuY2VsbGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sIG1zKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuZnVuY3Rpb24gZ2V0Q2xpZW50QnVpbGRNYW5pZmVzdCgpIHtcbiAgICBpZiAoc2VsZi5fX0JVSUxEX01BTklGRVNUKSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoc2VsZi5fX0JVSUxEX01BTklGRVNUKTtcbiAgICB9XG4gICAgY29uc3Qgb25CdWlsZE1hbmlmZXN0ID0gbmV3IFByb21pc2UoKHJlc29sdmUpPT57XG4gICAgICAgIC8vIE1hbmRhdG9yeSBiZWNhdXNlIHRoaXMgaXMgbm90IGNvbmN1cnJlbnQgc2FmZTpcbiAgICAgICAgY29uc3QgY2IgPSBzZWxmLl9fQlVJTERfTUFOSUZFU1RfQ0I7XG4gICAgICAgIHNlbGYuX19CVUlMRF9NQU5JRkVTVF9DQiA9ICgpPT57XG4gICAgICAgICAgICByZXNvbHZlKHNlbGYuX19CVUlMRF9NQU5JRkVTVCk7XG4gICAgICAgICAgICBjYiAmJiBjYigpO1xuICAgICAgICB9O1xuICAgIH0pO1xuICAgIHJldHVybiByZXNvbHZlUHJvbWlzZVdpdGhUaW1lb3V0KG9uQnVpbGRNYW5pZmVzdCwgTVNfTUFYX0lETEVfREVMQVksIG1hcmtBc3NldEVycm9yKG5ldyBFcnJvcignRmFpbGVkIHRvIGxvYWQgY2xpZW50IGJ1aWxkIG1hbmlmZXN0JykpKTtcbn1cbmZ1bmN0aW9uIGdldE1pZGRsZXdhcmVNYW5pZmVzdCgpIHtcbiAgICBpZiAoc2VsZi5fX01JRERMRVdBUkVfTUFOSUZFU1QpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShzZWxmLl9fTUlERExFV0FSRV9NQU5JRkVTVCk7XG4gICAgfVxuICAgIGNvbnN0IG9uTWlkZGxld2FyZU1hbmlmZXN0ID0gbmV3IFByb21pc2UoKHJlc29sdmUpPT57XG4gICAgICAgIGNvbnN0IGNiID0gc2VsZi5fX01JRERMRVdBUkVfTUFOSUZFU1RfQ0I7XG4gICAgICAgIHNlbGYuX19NSURETEVXQVJFX01BTklGRVNUX0NCID0gKCk9PntcbiAgICAgICAgICAgIHJlc29sdmUoc2VsZi5fX01JRERMRVdBUkVfTUFOSUZFU1QpO1xuICAgICAgICAgICAgY2IgJiYgY2IoKTtcbiAgICAgICAgfTtcbiAgICB9KTtcbiAgICByZXR1cm4gcmVzb2x2ZVByb21pc2VXaXRoVGltZW91dChvbk1pZGRsZXdhcmVNYW5pZmVzdCwgTVNfTUFYX0lETEVfREVMQVksIG1hcmtBc3NldEVycm9yKG5ldyBFcnJvcignRmFpbGVkIHRvIGxvYWQgY2xpZW50IG1pZGRsZXdhcmUgbWFuaWZlc3QnKSkpO1xufVxuZnVuY3Rpb24gZ2V0RmlsZXNGb3JSb3V0ZShhc3NldFByZWZpeCwgcm91dGUpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7XG4gICAgICAgICAgICBzY3JpcHRzOiBbXG4gICAgICAgICAgICAgICAgYXNzZXRQcmVmaXggKyAnL19uZXh0L3N0YXRpYy9jaHVua3MvcGFnZXMnICsgZW5jb2RlVVJJKCgwLCBfZ2V0QXNzZXRQYXRoRnJvbVJvdXRlKS5kZWZhdWx0KHJvdXRlLCAnLmpzJykpLCBcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAvLyBTdHlsZXMgYXJlIGhhbmRsZWQgYnkgYHN0eWxlLWxvYWRlcmAgaW4gZGV2ZWxvcG1lbnQ6XG4gICAgICAgICAgICBjc3M6IFtdXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gZ2V0Q2xpZW50QnVpbGRNYW5pZmVzdCgpLnRoZW4oKG1hbmlmZXN0KT0+e1xuICAgICAgICBpZiAoIShyb3V0ZSBpbiBtYW5pZmVzdCkpIHtcbiAgICAgICAgICAgIHRocm93IG1hcmtBc3NldEVycm9yKG5ldyBFcnJvcihgRmFpbGVkIHRvIGxvb2t1cCByb3V0ZTogJHtyb3V0ZX1gKSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYWxsRmlsZXMgPSBtYW5pZmVzdFtyb3V0ZV0ubWFwKChlbnRyeSk9PmFzc2V0UHJlZml4ICsgJy9fbmV4dC8nICsgZW5jb2RlVVJJKGVudHJ5KVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc2NyaXB0czogYWxsRmlsZXMuZmlsdGVyKCh2KT0+di5lbmRzV2l0aCgnLmpzJylcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBjc3M6IGFsbEZpbGVzLmZpbHRlcigodik9PnYuZW5kc1dpdGgoJy5jc3MnKVxuICAgICAgICAgICAgKVxuICAgICAgICB9O1xuICAgIH0pO1xufVxuZnVuY3Rpb24gY3JlYXRlUm91dGVMb2FkZXIoYXNzZXRQcmVmaXgpIHtcbiAgICBjb25zdCBlbnRyeXBvaW50cyA9IG5ldyBNYXAoKTtcbiAgICBjb25zdCBsb2FkZWRTY3JpcHRzID0gbmV3IE1hcCgpO1xuICAgIGNvbnN0IHN0eWxlU2hlZXRzID0gbmV3IE1hcCgpO1xuICAgIGNvbnN0IHJvdXRlcyA9IG5ldyBNYXAoKTtcbiAgICBmdW5jdGlvbiBtYXliZUV4ZWN1dGVTY3JpcHQoc3JjKSB7XG4gICAgICAgIC8vIFdpdGggSE1SIHdlIG1pZ2h0IG5lZWQgdG8gXCJyZWxvYWRcIiBzY3JpcHRzIHdoZW4gdGhleSBhcmVcbiAgICAgICAgLy8gZGlzcG9zZWQgYW5kIHJlYWRkZWQuIEV4ZWN1dGluZyBzY3JpcHRzIHR3aWNlIGhhcyBubyBmdW5jdGlvbmFsXG4gICAgICAgIC8vIGRpZmZlcmVuY2VzXG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgbGV0IHByb20gPSBsb2FkZWRTY3JpcHRzLmdldChzcmMpO1xuICAgICAgICAgICAgaWYgKHByb20pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJvbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFNraXAgZXhlY3V0aW5nIHNjcmlwdCBpZiBpdCdzIGFscmVhZHkgaW4gdGhlIERPTTpcbiAgICAgICAgICAgIGlmIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBzY3JpcHRbc3JjXj1cIiR7c3JjfVwiXWApKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbG9hZGVkU2NyaXB0cy5zZXQoc3JjLCBwcm9tID0gYXBwZW5kU2NyaXB0KHNyYykpO1xuICAgICAgICAgICAgcmV0dXJuIHByb207XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gYXBwZW5kU2NyaXB0KHNyYyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZmV0Y2hTdHlsZVNoZWV0KGhyZWYpIHtcbiAgICAgICAgbGV0IHByb20gPSBzdHlsZVNoZWV0cy5nZXQoaHJlZik7XG4gICAgICAgIGlmIChwcm9tKSB7XG4gICAgICAgICAgICByZXR1cm4gcHJvbTtcbiAgICAgICAgfVxuICAgICAgICBzdHlsZVNoZWV0cy5zZXQoaHJlZiwgcHJvbSA9IGZldGNoKGhyZWYpLnRoZW4oKHJlcyk9PntcbiAgICAgICAgICAgIGlmICghcmVzLm9rKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gbG9hZCBzdHlsZXNoZWV0OiAke2hyZWZ9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzLnRleHQoKS50aGVuKCh0ZXh0KT0+KHtcbiAgICAgICAgICAgICAgICAgICAgaHJlZjogaHJlZixcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogdGV4dFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9KS5jYXRjaCgoZXJyKT0+e1xuICAgICAgICAgICAgdGhyb3cgbWFya0Fzc2V0RXJyb3IoZXJyKTtcbiAgICAgICAgfSkpO1xuICAgICAgICByZXR1cm4gcHJvbTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgd2hlbkVudHJ5cG9pbnQgKHJvdXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gd2l0aEZ1dHVyZShyb3V0ZSwgZW50cnlwb2ludHMpO1xuICAgICAgICB9LFxuICAgICAgICBvbkVudHJ5cG9pbnQgKHJvdXRlLCBleGVjdXRlKSB7XG4gICAgICAgICAgICAoZXhlY3V0ZSA/IFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PmV4ZWN1dGUoKVxuICAgICAgICAgICAgKS50aGVuKChleHBvcnRzKT0+KHtcbiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50OiBleHBvcnRzICYmIGV4cG9ydHMuZGVmYXVsdCB8fCBleHBvcnRzLFxuICAgICAgICAgICAgICAgICAgICBleHBvcnRzOiBleHBvcnRzXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICwgKGVycik9Pih7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yOiBlcnJcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSA6IFByb21pc2UucmVzb2x2ZSh1bmRlZmluZWQpKS50aGVuKChpbnB1dCk9PntcbiAgICAgICAgICAgICAgICBjb25zdCBvbGQgPSBlbnRyeXBvaW50cy5nZXQocm91dGUpO1xuICAgICAgICAgICAgICAgIGlmIChvbGQgJiYgJ3Jlc29sdmUnIGluIG9sZCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW5wdXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5cG9pbnRzLnNldChyb3V0ZSwgaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgb2xkLnJlc29sdmUoaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlucHV0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbnRyeXBvaW50cy5zZXQocm91dGUsIGlucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5cG9pbnRzLmRlbGV0ZShyb3V0ZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gd2hlbiB0aGlzIGVudHJ5cG9pbnQgaGFzIGJlZW4gcmVzb2x2ZWQgYmVmb3JlXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoZSByb3V0ZSBpcyBvdXRkYXRlZCBhbmQgd2Ugd2FudCB0byBpbnZhbGlkYXRlXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgY2FjaGUgZW50cnlcbiAgICAgICAgICAgICAgICAgICAgcm91dGVzLmRlbGV0ZShyb3V0ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIGxvYWRSb3V0ZSAocm91dGUsIHByZWZldGNoKSB7XG4gICAgICAgICAgICByZXR1cm4gd2l0aEZ1dHVyZShyb3V0ZSwgcm91dGVzLCAoKT0+e1xuICAgICAgICAgICAgICAgIGNvbnN0IHJvdXRlRmlsZXNQcm9taXNlID0gZ2V0RmlsZXNGb3JSb3V0ZShhc3NldFByZWZpeCwgcm91dGUpLnRoZW4oKHsgc2NyaXB0cyAsIGNzcyAgfSk9PntcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5cG9pbnRzLmhhcyhyb3V0ZSkgPyBbXSA6IFByb21pc2UuYWxsKHNjcmlwdHMubWFwKG1heWJlRXhlY3V0ZVNjcmlwdCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgUHJvbWlzZS5hbGwoY3NzLm1hcChmZXRjaFN0eWxlU2hlZXQpKSwgXG4gICAgICAgICAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgICAgIH0pLnRoZW4oKHJlcyk9PntcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMud2hlbkVudHJ5cG9pbnQocm91dGUpLnRoZW4oKGVudHJ5cG9pbnQpPT4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5cG9pbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGVzOiByZXNbMV1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGRldkJ1aWxkUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJvdXRlRmlsZXNQcm9taXNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJvdXRlRmlsZXNQcm9taXNlLmZpbmFsbHkoKCk9PntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVQcm9taXNlV2l0aFRpbWVvdXQocm91dGVGaWxlc1Byb21pc2UsIE1TX01BWF9JRExFX0RFTEFZLCBtYXJrQXNzZXRFcnJvcihuZXcgRXJyb3IoYFJvdXRlIGRpZCBub3QgY29tcGxldGUgbG9hZGluZzogJHtyb3V0ZX1gKSkpLnRoZW4oKHsgZW50cnlwb2ludCAsIHN0eWxlcyAgfSk9PntcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzID0gT2JqZWN0LmFzc2lnbih7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZXM6IHN0eWxlc1xuICAgICAgICAgICAgICAgICAgICB9LCBlbnRyeXBvaW50KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdlcnJvcicgaW4gZW50cnlwb2ludCA/IGVudHJ5cG9pbnQgOiByZXM7XG4gICAgICAgICAgICAgICAgfSkuY2F0Y2goKGVycik9PntcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByZWZldGNoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBkb24ndCB3YW50IHRvIGNhY2hlIGVycm9ycyBkdXJpbmcgcHJlZmV0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I6IGVyclxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHByZWZldGNoIChyb3V0ZSkge1xuICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL0dvb2dsZUNocm9tZUxhYnMvcXVpY2tsaW5rL2Jsb2IvNDUzYTY2MWZhMWZhOTQwZTJkMmUwNDQ0NTIzOThlMzhjNjdhOThmYi9zcmMvaW5kZXgubWpzI0wxMTUtTDExOFxuICAgICAgICAgICAgLy8gTGljZW5zZTogQXBhY2hlIDIuMFxuICAgICAgICAgICAgbGV0IGNuO1xuICAgICAgICAgICAgaWYgKGNuID0gbmF2aWdhdG9yLmNvbm5lY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAvLyBEb24ndCBwcmVmZXRjaCBpZiB1c2luZyAyRyBvciBpZiBTYXZlLURhdGEgaXMgZW5hYmxlZC5cbiAgICAgICAgICAgICAgICBpZiAoY24uc2F2ZURhdGEgfHwgLzJnLy50ZXN0KGNuLmVmZmVjdGl2ZVR5cGUpKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZ2V0RmlsZXNGb3JSb3V0ZShhc3NldFByZWZpeCwgcm91dGUpLnRoZW4oKG91dHB1dCk9PlByb21pc2UuYWxsKGNhblByZWZldGNoID8gb3V0cHV0LnNjcmlwdHMubWFwKChzY3JpcHQpPT5wcmVmZXRjaFZpYURvbShzY3JpcHQsICdzY3JpcHQnKVxuICAgICAgICAgICAgICAgICkgOiBbXSlcbiAgICAgICAgICAgICkudGhlbigoKT0+e1xuICAgICAgICAgICAgICAgICgwLCBfcmVxdWVzdElkbGVDYWxsYmFjaykucmVxdWVzdElkbGVDYWxsYmFjaygoKT0+dGhpcy5sb2FkUm91dGUocm91dGUsIHRydWUpLmNhdGNoKCgpPT57XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pLmNhdGNoKC8vIHN3YWxsb3cgcHJlZmV0Y2ggZXJyb3JzXG4gICAgICAgICAgICAoKT0+e1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yb3V0ZS1sb2FkZXIuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwibWFya0Fzc2V0RXJyb3IiLCJpc0Fzc2V0RXJyb3IiLCJnZXRDbGllbnRCdWlsZE1hbmlmZXN0IiwiZ2V0TWlkZGxld2FyZU1hbmlmZXN0IiwiY3JlYXRlUm91dGVMb2FkZXIiLCJfZ2V0QXNzZXRQYXRoRnJvbVJvdXRlIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcmVxdWVzdElkbGVDYWxsYmFjayIsIm9iaiIsIl9fZXNNb2R1bGUiLCJNU19NQVhfSURMRV9ERUxBWSIsIndpdGhGdXR1cmUiLCJrZXkiLCJtYXAiLCJnZW5lcmF0b3IiLCJlbnRyeSIsImdldCIsImZ1dHVyZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVzb2x2ZXIiLCJwcm9tIiwic2V0IiwidGhlbiIsImVyciIsImhhc1ByZWZldGNoIiwibGluayIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsIndpbmRvdyIsIk1TSW5wdXRNZXRob2RDb250ZXh0IiwiZG9jdW1lbnRNb2RlIiwicmVsTGlzdCIsInN1cHBvcnRzIiwiZSIsImNhblByZWZldGNoIiwicHJlZmV0Y2hWaWFEb20iLCJocmVmIiwiYXMiLCJyZXMiLCJyZWoiLCJzZWxlY3RvciIsInF1ZXJ5U2VsZWN0b3IiLCJyZWwiLCJjcm9zc09yaWdpbiIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfQ1JPU1NfT1JJR0lOIiwib25sb2FkIiwib25lcnJvciIsImhlYWQiLCJhcHBlbmRDaGlsZCIsIkFTU0VUX0xPQURfRVJST1IiLCJTeW1ib2wiLCJhcHBlbmRTY3JpcHQiLCJzcmMiLCJzY3JpcHQiLCJyZWplY3QiLCJFcnJvciIsImJvZHkiLCJkZXZCdWlsZFByb21pc2UiLCJyZXNvbHZlUHJvbWlzZVdpdGhUaW1lb3V0IiwicCIsIm1zIiwiY2FuY2VsbGVkIiwiciIsInJlcXVlc3RJZGxlQ2FsbGJhY2siLCJzZXRUaW1lb3V0Iiwic2VsZiIsIl9fQlVJTERfTUFOSUZFU1QiLCJvbkJ1aWxkTWFuaWZlc3QiLCJjYiIsIl9fQlVJTERfTUFOSUZFU1RfQ0IiLCJfX01JRERMRVdBUkVfTUFOSUZFU1QiLCJvbk1pZGRsZXdhcmVNYW5pZmVzdCIsIl9fTUlERExFV0FSRV9NQU5JRkVTVF9DQiIsImdldEZpbGVzRm9yUm91dGUiLCJhc3NldFByZWZpeCIsInJvdXRlIiwic2NyaXB0cyIsImVuY29kZVVSSSIsImNzcyIsIm1hbmlmZXN0IiwiYWxsRmlsZXMiLCJmaWx0ZXIiLCJ2IiwiZW5kc1dpdGgiLCJlbnRyeXBvaW50cyIsIk1hcCIsImxvYWRlZFNjcmlwdHMiLCJzdHlsZVNoZWV0cyIsInJvdXRlcyIsIm1heWJlRXhlY3V0ZVNjcmlwdCIsImZldGNoU3R5bGVTaGVldCIsImZldGNoIiwib2siLCJ0ZXh0IiwiY29udGVudCIsIndoZW5FbnRyeXBvaW50Iiwib25FbnRyeXBvaW50IiwiZXhlY3V0ZSIsImNvbXBvbmVudCIsImVycm9yIiwidW5kZWZpbmVkIiwiaW5wdXQiLCJvbGQiLCJsb2FkUm91dGUiLCJwcmVmZXRjaCIsInJvdXRlRmlsZXNQcm9taXNlIiwiYWxsIiwiaGFzIiwiZW50cnlwb2ludCIsInN0eWxlcyIsImFzc2lnbiIsImNuIiwibmF2aWdhdG9yIiwiY29ubmVjdGlvbiIsInNhdmVEYXRhIiwidGVzdCIsImVmZmVjdGl2ZVR5cGUiLCJvdXRwdXQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/route-loader.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/router.js": +/*!*************************************************!*\ + !*** ./node_modules/next/dist/client/router.js ***! + \*************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _construct = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/construct */ \"./node_modules/@babel/runtime/helpers/construct.js\");\n\nvar _s = $RefreshSig$();\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"Router\", ({\n enumerable: true,\n get: function get() {\n return _router[\"default\"];\n }\n}));\nObject.defineProperty(exports, \"withRouter\", ({\n enumerable: true,\n get: function get() {\n return _withRouter[\"default\"];\n }\n}));\nexports.useRouter = useRouter;\nexports.createRouter = createRouter;\nexports.makePublicRouterInstance = makePublicRouterInstance;\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _router = _interopRequireDefault(__webpack_require__(/*! ../shared/lib/router/router */ \"./node_modules/next/dist/shared/lib/router/router.js\"));\n\nvar _routerContext = __webpack_require__(/*! ../shared/lib/router-context */ \"./node_modules/next/dist/shared/lib/router-context.js\");\n\nvar _isError = _interopRequireDefault(__webpack_require__(/*! ../lib/is-error */ \"./node_modules/next/dist/lib/is-error.js\"));\n\nvar _withRouter = _interopRequireDefault(__webpack_require__(/*! ./with-router */ \"./node_modules/next/dist/client/with-router.js\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar singletonRouter = {\n router: null,\n readyCallbacks: [],\n ready: function ready(cb) {\n if (this.router) return cb();\n\n if (true) {\n this.readyCallbacks.push(cb);\n }\n }\n}; // Create public properties and methods of the router in the singletonRouter\n\nvar urlPropertyFields = ['pathname', 'route', 'query', 'asPath', 'components', 'isFallback', 'basePath', 'locale', 'locales', 'defaultLocale', 'isReady', 'isPreview', 'isLocaleDomain', 'domainLocales'];\nvar routerEvents = ['routeChangeStart', 'beforeHistoryChange', 'routeChangeComplete', 'routeChangeError', 'hashChangeStart', 'hashChangeComplete'];\nvar coreMethodFields = ['push', 'replace', 'reload', 'back', 'prefetch', 'beforePopState']; // Events is a static property on the router, the router doesn't have to be initialized to use it\n\nObject.defineProperty(singletonRouter, 'events', {\n get: function get() {\n return _router[\"default\"].events;\n }\n});\nurlPropertyFields.forEach(function (field) {\n // Here we need to use Object.defineProperty because we need to return\n // the property assigned to the actual router\n // The value might get changed as we change routes and this is the\n // proper way to access it\n Object.defineProperty(singletonRouter, field, {\n get: function get() {\n var router = getRouter();\n return router[field];\n }\n });\n});\ncoreMethodFields.forEach(function (field) {\n singletonRouter[field] = function () {\n var router = getRouter();\n return router[field].apply(router, arguments);\n };\n});\nrouterEvents.forEach(function (event) {\n singletonRouter.ready(function () {\n _router[\"default\"].events.on(event, function () {\n var eventField = \"on\".concat(event.charAt(0).toUpperCase()).concat(event.substring(1));\n var _singletonRouter = singletonRouter;\n\n if (_singletonRouter[eventField]) {\n try {\n _singletonRouter[eventField].apply(_singletonRouter, arguments);\n } catch (err) {\n console.error(\"Error when running the Router event: \".concat(eventField));\n console.error((0, _isError)[\"default\"](err) ? \"\".concat(err.message, \"\\n\").concat(err.stack) : err + '');\n }\n }\n });\n });\n});\n\nfunction getRouter() {\n if (!singletonRouter.router) {\n var message = 'No router instance found.\\n' + 'You should only use \"next/router\" on the client side of your app.\\n';\n throw new Error(message);\n }\n\n return singletonRouter.router;\n}\n\nvar _default = singletonRouter;\nexports[\"default\"] = _default;\n\nfunction useRouter() {\n _s();\n\n return _react[\"default\"].useContext(_routerContext.RouterContext);\n}\n\n_s(useRouter, \"gDsCjeeItUuvgOWf1v4qoK9RF6k=\");\n\nfunction createRouter() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n singletonRouter.router = _construct(_router[\"default\"], args);\n singletonRouter.readyCallbacks.forEach(function (cb) {\n return cb();\n });\n singletonRouter.readyCallbacks = [];\n return singletonRouter.router;\n}\n\nfunction makePublicRouterInstance(router) {\n var scopedRouter = router;\n var instance = {};\n\n var _iterator = _createForOfIteratorHelper(urlPropertyFields),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var property = _step.value;\n\n if (typeof scopedRouter[property] === 'object') {\n instance[property] = Object.assign(Array.isArray(scopedRouter[property]) ? [] : {}, scopedRouter[property]) // makes sure query is not stateful\n ;\n continue;\n }\n\n instance[property] = scopedRouter[property];\n } // Events is a static property on the router, the router doesn't have to be initialized to use it\n\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n instance.events = _router[\"default\"].events;\n coreMethodFields.forEach(function (field) {\n instance[field] = function () {\n return scopedRouter[field].apply(scopedRouter, arguments);\n };\n });\n return instance;\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yb3V0ZXIuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOzs7Ozs7Ozs7Ozs7QUFDYkEsOENBQTZDO0FBQ3pDRyxFQUFBQSxLQUFLLEVBQUU7QUFEa0MsQ0FBN0M7QUFHQUgsMENBQXlDO0FBQ3JDSSxFQUFBQSxVQUFVLEVBQUUsSUFEeUI7QUFFckNDLEVBQUFBLEdBQUcsRUFBRSxlQUFXO0FBQ1osV0FBT0MsT0FBTyxXQUFkO0FBQ0g7QUFKb0MsQ0FBekM7QUFNQU4sOENBQTZDO0FBQ3pDSSxFQUFBQSxVQUFVLEVBQUUsSUFENkI7QUFFekNDLEVBQUFBLEdBQUcsRUFBRSxlQUFXO0FBQ1osV0FBT0UsV0FBVyxXQUFsQjtBQUNIO0FBSndDLENBQTdDO0FBTUFMLGlCQUFBLEdBQW9CTSxTQUFwQjtBQUNBTixvQkFBQSxHQUF1Qk8sWUFBdkI7QUFDQVAsZ0NBQUEsR0FBbUNRLHdCQUFuQztBQUNBUixrQkFBQSxHQUFrQixLQUFLLENBQXZCOztBQUNBLElBQUlTLE1BQU0sR0FBR0Msc0JBQXNCLENBQUNDLG1CQUFPLENBQUMsNENBQUQsQ0FBUixDQUFuQzs7QUFDQSxJQUFJUCxPQUFPLEdBQUdNLHNCQUFzQixDQUFDQyxtQkFBTyxDQUFDLHlGQUFELENBQVIsQ0FBcEM7O0FBQ0EsSUFBSUMsY0FBYyxHQUFHRCxtQkFBTyxDQUFDLDJGQUFELENBQTVCOztBQUNBLElBQUlFLFFBQVEsR0FBR0gsc0JBQXNCLENBQUNDLG1CQUFPLENBQUMsaUVBQUQsQ0FBUixDQUFyQzs7QUFDQSxJQUFJTixXQUFXLEdBQUdLLHNCQUFzQixDQUFDQyxtQkFBTyxDQUFDLHFFQUFELENBQVIsQ0FBeEM7O0FBQ0EsU0FBU0Qsc0JBQVQsQ0FBZ0NJLEdBQWhDLEVBQXFDO0FBQ2pDLFNBQU9BLEdBQUcsSUFBSUEsR0FBRyxDQUFDQyxVQUFYLEdBQXdCRCxHQUF4QixHQUE4QjtBQUNqQyxlQUFTQTtBQUR3QixHQUFyQztBQUdIOztBQUNELElB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LENBQUNFLFFBQUQsQ0FBbkIsS0FBa0MsUUFBdEMsRUFBZ0Q7QUFDNUNELFFBQUFBLFFBQVEsQ0FBQ0MsUUFBRCxDQUFSLEdBQXFCbEQsTUFBTSxDQUFDbUQsTUFBUCxDQUFjQyxLQUFLLENBQUNDLE9BQU4sQ0FBY0wsWUFBWSxDQUFDRSxRQUFELENBQTFCLElBQXdDLEVBQXhDLEdBQTZDLEVBQTNELEVBQ2xCRixZQUFZLENBQUNFLFFBQUQsQ0FETSxDQUFyQixDQUMyQjtBQUQzQjtBQUdBO0FBQ0g7O0FBQ0RELE1BQUFBLFFBQVEsQ0FBQ0MsUUFBRCxDQUFSLEdBQXFCRixZQUFZLENBQUNFLFFBQUQsQ0FBakM7QUFDSCxLQVpxQyxDQWF0Qzs7QUFic0M7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFjdENELEVBQUFBLFFBQVEsQ0FBQ3RCLE1BQVQsR0FBa0JyQixPQUFPLFdBQVAsQ0FBZ0JxQixNQUFsQztBQUNBRCxFQUFBQSxnQkFBZ0IsQ0FBQ0UsT0FBakIsQ0FBeUIsVUFBQ0MsS0FBRCxFQUFTO0FBQzlCb0IsSUFBQUEsUUFBUSxDQUFDcEIsS0FBRCxDQUFSLEdBQWtCLFlBQVc7QUFDekIsYUFBT21CLFlBQVksQ0FBQ25CLEtBQUQsQ0FBWixPQUFBbUIsWUFBWSxZQUFuQjtBQUNILEtBRkQ7QUFHSCxHQUpEO0FBS0EsU0FBT0MsUUFBUDtBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3JvdXRlci5qcz8zMWZjIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiUm91dGVyXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfcm91dGVyLmRlZmF1bHQ7XG4gICAgfVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJ3aXRoUm91dGVyXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfd2l0aFJvdXRlci5kZWZhdWx0O1xuICAgIH1cbn0pO1xuZXhwb3J0cy51c2VSb3V0ZXIgPSB1c2VSb3V0ZXI7XG5leHBvcnRzLmNyZWF0ZVJvdXRlciA9IGNyZWF0ZVJvdXRlcjtcbmV4cG9ydHMubWFrZVB1YmxpY1JvdXRlckluc3RhbmNlID0gbWFrZVB1YmxpY1JvdXRlckluc3RhbmNlO1xuZXhwb3J0cy5kZWZhdWx0ID0gdm9pZCAwO1xudmFyIF9yZWFjdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJlYWN0XCIpKTtcbnZhciBfcm91dGVyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9yb3V0ZXIvcm91dGVyXCIpKTtcbnZhciBfcm91dGVyQ29udGV4dCA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3JvdXRlci1jb250ZXh0XCIpO1xudmFyIF9pc0Vycm9yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vbGliL2lzLWVycm9yXCIpKTtcbnZhciBfd2l0aFJvdXRlciA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vd2l0aC1yb3V0ZXJcIikpO1xuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuY29uc3Qgc2luZ2xldG9uUm91dGVyID0ge1xuICAgIHJvdXRlcjogbnVsbCxcbiAgICByZWFkeUNhbGxiYWNrczogW10sXG4gICAgcmVhZHkgKGNiKSB7XG4gICAgICAgIGlmICh0aGlzLnJvdXRlcikgcmV0dXJuIGNiKCk7XG4gICAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgdGhpcy5yZWFkeUNhbGxiYWNrcy5wdXNoKGNiKTtcbiAgICAgICAgfVxuICAgIH1cbn07XG4vLyBDcmVhdGUgcHVibGljIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMgb2YgdGhlIHJvdXRlciBpbiB0aGUgc2luZ2xldG9uUm91dGVyXG5jb25zdCB1cmxQcm9wZXJ0eUZpZWxkcyA9IFtcbiAgICAncGF0aG5hbWUnLFxuICAgICdyb3V0ZScsXG4gICAgJ3F1ZXJ5JyxcbiAgICAnYXNQYXRoJyxcbiAgICAnY29tcG9uZW50cycsXG4gICAgJ2lzRmFsbGJhY2snLFxuICAgICdiYXNlUGF0aCcsXG4gICAgJ2xvY2FsZScsXG4gICAgJ2xvY2FsZXMnLFxuICAgICdkZWZhdWx0TG9jYWxlJyxcbiAgICAnaXNSZWFkeScsXG4gICAgJ2lzUHJldmlldycsXG4gICAgJ2lzTG9jYWxlRG9tYWluJyxcbiAgICAnZG9tYWluTG9jYWxlcycsIFxuXTtcbmNvbnN0IHJvdXRlckV2ZW50cyA9IFtcbiAgICAncm91dGVDaGFuZ2VTdGFydCcsXG4gICAgJ2JlZm9yZUhpc3RvcnlDaGFuZ2UnLFxuICAgICdyb3V0ZUNoYW5nZUNvbXBsZXRlJyxcbiAgICAncm91dGVDaGFuZ2VFcnJvcicsXG4gICAgJ2hhc2hDaGFuZ2VTdGFydCcsXG4gICAgJ2hhc2hDaGFuZ2VDb21wbGV0ZScsIFxuXTtcbmNvbnN0IGNvcmVNZXRob2RGaWVsZHMgPSBbXG4gICAgJ3B1c2gnLFxuICAgICdyZXBsYWNlJyxcbiAgICAncmVsb2FkJyxcbiAgICAnYmFjaycsXG4gICAgJ3ByZWZldGNoJyxcbiAgICAnYmVmb3JlUG9wU3RhdGUnLCBcbl07XG4vLyBFdmVudHMgaXMgYSBzdGF0aWMgcHJvcGVydHkgb24gdGhlIHJvdXRlciwgdGhlIHJvdXRlciBkb2Vzbid0IGhhdmUgdG8gYmUgaW5pdGlhbGl6ZWQgdG8gdXNlIGl0XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoc2luZ2xldG9uUm91dGVyLCAnZXZlbnRzJywge1xuICAgIGdldCAoKSB7XG4gICAgICAgIHJldHVybiBfcm91dGVyLmRlZmF1bHQuZXZlbnRzO1xuICAgIH1cbn0pO1xudXJsUHJvcGVydHlGaWVsZHMuZm9yRWFjaCgoZmllbGQpPT57XG4gICAgLy8gSGVyZSB3ZSBuZWVkIHRvIHVzZSBPYmplY3QuZGVmaW5lUHJvcGVydHkgYmVjYXVzZSB3ZSBuZWVkIHRvIHJldHVyblxuICAgIC8vIHRoZSBwcm9wZXJ0eSBhc3NpZ25lZCB0byB0aGUgYWN0dWFsIHJvdXRlclxuICAgIC8vIFRoZSB2YWx1ZSBtaWdodCBnZXQgY2hhbmdlZCBhcyB3ZSBjaGFuZ2Ugcm91dGVzIGFuZCB0aGlzIGlzIHRoZVxuICAgIC8vIHByb3BlciB3YXkgdG8gYWNjZXNzIGl0XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHNpbmdsZXRvblJvdXRlciwgZmllbGQsIHtcbiAgICAgICAgZ2V0ICgpIHtcbiAgICAgICAgICAgIGNvbnN0IHJvdXRlciA9IGdldFJvdXRlcigpO1xuICAgICAgICAgICAgcmV0dXJuIHJvdXRlcltmaWVsZF07XG4gICAgICAgIH1cbiAgICB9KTtcbn0pO1xuY29yZU1ldGhvZEZpZWxkcy5mb3JFYWNoKChmaWVsZCk9PntcbiAgICBzaW5nbGV0b25Sb3V0ZXJbZmllbGRdID0gKC4uLmFyZ3MpPT57XG4gICAgICAgIGNvbnN0IHJvdXRlciA9IGdldFJvdXRlcigpO1xuICAgICAgICByZXR1cm4gcm91dGVyW2ZpZWxkXSguLi5hcmdzKTtcbiAgICB9O1xufSk7XG5yb3V0ZXJFdmVudHMuZm9yRWFjaCgoZXZlbnQpPT57XG4gICAgc2luZ2xldG9uUm91dGVyLnJlYWR5KCgpPT57XG4gICAgICAgIF9yb3V0ZXIuZGVmYXVsdC5ldmVudHMub24oZXZlbnQsICguLi5hcmdzKT0+e1xuICAgICAgICAgICAgY29uc3QgZXZlbnRGaWVsZCA9IGBvbiR7ZXZlbnQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCl9JHtldmVudC5zdWJzdHJpbmcoMSl9YDtcbiAgICAgICAgICAgIGNvbnN0IF9zaW5nbGV0b25Sb3V0ZXIgPSBzaW5nbGV0b25Sb3V0ZXI7XG4gICAgICAgICAgICBpZiAoX3NpbmdsZXRvblJvdXRlcltldmVudEZpZWxkXSkge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIF9zaW5nbGV0b25Sb3V0ZXJbZXZlbnRGaWVsZF0oLi4uYXJncyk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEVycm9yIHdoZW4gcnVubmluZyB0aGUgUm91dGVyIGV2ZW50OiAke2V2ZW50RmllbGR9YCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoKDAsIF9pc0Vycm9yKS5kZWZhdWx0KGVycikgPyBgJHtlcnIubWVzc2FnZX1cXG4ke2Vyci5zdGFja31gIDogZXJyICsgJycpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSk7XG59KTtcbmZ1bmN0aW9uIGdldFJvdXRlcigpIHtcbiAgICBpZiAoIXNpbmdsZXRvblJvdXRlci5yb3V0ZXIpIHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9ICdObyByb3V0ZXIgaW5zdGFuY2UgZm91bmQuXFxuJyArICdZb3Ugc2hvdWxkIG9ubHkgdXNlIFwibmV4dC9yb3V0ZXJcIiBvbiB0aGUgY2xpZW50IHNpZGUgb2YgeW91ciBhcHAuXFxuJztcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICByZXR1cm4gc2luZ2xldG9uUm91dGVyLnJvdXRlcjtcbn1cbnZhciBfZGVmYXVsdCA9IHNpbmdsZXRvblJvdXRlcjtcbmV4cG9ydHMuZGVmYXVsdCA9IF9kZWZhdWx0O1xuZnVuY3Rpb24gdXNlUm91dGVyKCkge1xuICAgIHJldHVybiBfcmVhY3QuZGVmYXVsdC51c2VDb250ZXh0KF9yb3V0ZXJDb250ZXh0LlJvdXRlckNvbnRleHQpO1xufVxuZnVuY3Rpb24gY3JlYXRlUm91dGVyKC4uLmFyZ3MpIHtcbiAgICBzaW5nbGV0b25Sb3V0ZXIucm91dGVyID0gbmV3IF9yb3V0ZXIuZGVmYXVsdCguLi5hcmdzKTtcbiAgICBzaW5nbGV0b25Sb3V0ZXIucmVhZHlDYWxsYmFja3MuZm9yRWFjaCgoY2IpPT5jYigpXG4gICAgKTtcbiAgICBzaW5nbGV0b25Sb3V0ZXIucmVhZHlDYWxsYmFja3MgPSBbXTtcbiAgICByZXR1cm4gc2luZ2xldG9uUm91dGVyLnJvdXRlcjtcbn1cbmZ1bmN0aW9uIG1ha2VQdWJsaWNSb3V0ZXJJbnN0YW5jZShyb3V0ZXIpIHtcbiAgICBjb25zdCBzY29wZWRSb3V0ZXIgPSByb3V0ZXI7XG4gICAgY29uc3QgaW5zdGFuY2UgPSB7XG4gICAgfTtcbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHVybFByb3BlcnR5RmllbGRzKXtcbiAgICAgICAgaWYgKHR5cGVvZiBzY29wZWRSb3V0ZXJbcHJvcGVydHldID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgaW5zdGFuY2VbcHJvcGVydHldID0gT2JqZWN0LmFzc2lnbihBcnJheS5pc0FycmF5KHNjb3BlZFJvdXRlcltwcm9wZXJ0eV0pID8gW10gOiB7XG4gICAgICAgICAgICB9LCBzY29wZWRSb3V0ZXJbcHJvcGVydHldKSAvLyBtYWtlcyBzdXJlIHF1ZXJ5IGlzIG5vdCBzdGF0ZWZ1bFxuICAgICAgICAgICAgO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaW5zdGFuY2VbcHJvcGVydHldID0gc2NvcGVkUm91dGVyW3Byb3BlcnR5XTtcbiAgICB9XG4gICAgLy8gRXZlbnRzIGlzIGEgc3RhdGljIHByb3BlcnR5IG9uIHRoZSByb3V0ZXIsIHRoZSByb3V0ZXIgZG9lc24ndCBoYXZlIHRvIGJlIGluaXRpYWxpemVkIHRvIHVzZSBpdFxuICAgIGluc3RhbmNlLmV2ZW50cyA9IF9yb3V0ZXIuZGVmYXVsdC5ldmVudHM7XG4gICAgY29yZU1ldGhvZEZpZWxkcy5mb3JFYWNoKChmaWVsZCk9PntcbiAgICAgICAgaW5zdGFuY2VbZmllbGRdID0gKC4uLmFyZ3MpPT57XG4gICAgICAgICAgICByZXR1cm4gc2NvcGVkUm91dGVyW2ZpZWxkXSguLi5hcmdzKTtcbiAgICAgICAgfTtcbiAgICB9KTtcbiAgICByZXR1cm4gaW5zdGFuY2U7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJvdXRlci5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiX3JvdXRlciIsIl93aXRoUm91dGVyIiwidXNlUm91dGVyIiwiY3JlYXRlUm91dGVyIiwibWFrZVB1YmxpY1JvdXRlckluc3RhbmNlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcm91dGVyQ29udGV4dCIsIl9pc0Vycm9yIiwib2JqIiwiX19lc01vZHVsZSIsInNpbmdsZXRvblJvdXRlciIsInJvdXRlciIsInJlYWR5Q2FsbGJhY2tzIiwicmVhZHkiLCJjYiIsInB1c2giLCJ1cmxQcm9wZXJ0eUZpZWxkcyIsInJvdXRlckV2ZW50cyIsImNvcmVNZXRob2RGaWVsZHMiLCJldmVudHMiLCJmb3JFYWNoIiwiZmllbGQiLCJnZXRSb3V0ZXIiLCJldmVudCIsIm9uIiwiZXZlbnRGaWVsZCIsImNoYXJBdCIsInRvVXBwZXJDYXNlIiwic3Vic3RyaW5nIiwiX3NpbmdsZXRvblJvdXRlciIsImVyciIsImNvbnNvbGUiLCJlcnJvciIsIm1lc3NhZ2UiLCJzdGFjayIsIkVycm9yIiwiX2RlZmF1bHQiLCJ1c2VDb250ZXh0IiwiUm91dGVyQ29udGV4dCIsImFyZ3MiLCJzY29wZWRSb3V0ZXIiLCJpbnN0YW5jZSIsInByb3BlcnR5IiwiYXNzaWduIiwiQXJyYXkiLCJpc0FycmF5Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/router.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/script.js": +/*!*************************************************!*\ + !*** ./node_modules/next/dist/client/script.js ***! + \*************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _slicedToArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nvar _s = $RefreshSig$();\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.initScriptLoader = initScriptLoader;\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _headManagerContext = __webpack_require__(/*! ../shared/lib/head-manager-context */ \"./node_modules/next/dist/shared/lib/head-manager-context.js\");\n\nvar _headManager = __webpack_require__(/*! ./head-manager */ \"./node_modules/next/dist/client/head-manager.js\");\n\nvar _requestIdleCallback = __webpack_require__(/*! ./request-idle-callback */ \"./node_modules/next/dist/client/request-idle-callback.js\");\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n return newObj;\n }\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nvar ScriptCache = new Map();\nvar LoadCache = new Set();\nvar ignoreProps = ['onLoad', 'dangerouslySetInnerHTML', 'children', 'onError', 'strategy'];\n\nvar loadScript = function loadScript(props) {\n var src = props.src,\n id = props.id,\n _props$onLoad = props.onLoad,\n onLoad = _props$onLoad === void 0 ? function () {} : _props$onLoad,\n dangerouslySetInnerHTML = props.dangerouslySetInnerHTML,\n _props$children = props.children,\n children = _props$children === void 0 ? '' : _props$children,\n _props$strategy = props.strategy,\n strategy = _props$strategy === void 0 ? 'afterInteractive' : _props$strategy,\n onError = props.onError;\n var cacheKey = id || src; // Script has already loaded\n\n if (cacheKey && LoadCache.has(cacheKey)) {\n return;\n } // Contents of this script are already loading/loaded\n\n\n if (ScriptCache.has(src)) {\n LoadCache.add(cacheKey); // Execute onLoad since the script loading has begun\n\n ScriptCache.get(src).then(onLoad, onError);\n return;\n }\n\n var el = document.createElement('script');\n var loadPromise = new Promise(function (resolve, reject) {\n el.addEventListener('load', function (e) {\n resolve();\n\n if (onLoad) {\n onLoad.call(this, e);\n }\n });\n el.addEventListener('error', function (e) {\n reject(e);\n });\n })[\"catch\"](function (e) {\n if (onError) {\n onError(e);\n }\n });\n\n if (src) {\n ScriptCache.set(src, loadPromise);\n }\n\n LoadCache.add(cacheKey);\n\n if (dangerouslySetInnerHTML) {\n el.innerHTML = dangerouslySetInnerHTML.__html || '';\n } else if (children) {\n el.textContent = typeof children === 'string' ? children : Array.isArray(children) ? children.join('') : '';\n } else if (src) {\n el.src = src;\n }\n\n for (var _i = 0, _Object$entries = Object.entries(props); _i < _Object$entries.length; _i++) {\n var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),\n k = _Object$entries$_i[0],\n value = _Object$entries$_i[1];\n\n if (value === undefined || ignoreProps.includes(k)) {\n continue;\n }\n\n var attr = _headManager.DOMAttributeNames[k] || k.toLowerCase();\n el.setAttribute(attr, value);\n }\n\n el.setAttribute('data-nscript', strategy);\n document.body.appendChild(el);\n};\n\nfunction handleClientScriptLoad(props) {\n var _props$strategy2 = props.strategy,\n strategy = _props$strategy2 === void 0 ? 'afterInteractive' : _props$strategy2;\n\n if (strategy === 'afterInteractive') {\n loadScript(props);\n } else if (strategy === 'lazyOnload') {\n window.addEventListener('load', function () {\n (0, _requestIdleCallback).requestIdleCallback(function () {\n return loadScript(props);\n });\n });\n }\n}\n\nfunction loadLazyScript(props) {\n if (document.readyState === 'complete') {\n (0, _requestIdleCallback).requestIdleCallback(function () {\n return loadScript(props);\n });\n } else {\n window.addEventListener('load', function () {\n (0, _requestIdleCallback).requestIdleCallback(function () {\n return loadScript(props);\n });\n });\n }\n}\n\nfunction initScriptLoader(scriptLoaderItems) {\n scriptLoaderItems.forEach(handleClientScriptLoad);\n}\n\nfunction Script(props) {\n _s();\n\n var _props$src = props.src,\n src = _props$src === void 0 ? '' : _props$src,\n _props$onLoad2 = props.onLoad,\n onLoad = _props$onLoad2 === void 0 ? function () {} : _props$onLoad2,\n dangerouslySetInnerHTML = props.dangerouslySetInnerHTML,\n _props$strategy3 = props.strategy,\n strategy = _props$strategy3 === void 0 ? 'afterInteractive' : _props$strategy3,\n onError = props.onError,\n restProps = _objectWithoutProperties(props, [\"src\", \"onLoad\", \"dangerouslySetInnerHTML\", \"strategy\", \"onError\"]); // Context is available only during SSR\n\n\n var _useContext = (0, _react).useContext(_headManagerContext.HeadManagerContext),\n updateScripts = _useContext.updateScripts,\n scripts = _useContext.scripts,\n getIsSsr = _useContext.getIsSsr;\n\n (0, _react).useEffect(function () {\n if (strategy === 'afterInteractive') {\n loadScript(props);\n } else if (strategy === 'lazyOnload') {\n loadLazyScript(props);\n }\n }, [props, strategy]);\n\n if (strategy === 'beforeInteractive') {\n if (updateScripts) {\n scripts.beforeInteractive = (scripts.beforeInteractive || []).concat([_objectSpread({\n src: src,\n onLoad: onLoad,\n onError: onError\n }, restProps)]);\n updateScripts(scripts);\n } else if (getIsSsr && getIsSsr()) {\n // Script has already loaded during SSR\n LoadCache.add(restProps.id || src);\n } else if (getIsSsr && !getIsSsr()) {\n loadScript(props);\n }\n }\n\n return null;\n}\n\n_s(Script, \"e8WGedLHPLUuZjHFS2+Zt0avCrA=\");\n\n_c = Script;\nvar _default = Script;\nexports[\"default\"] = _default;\n\nvar _c;\n\n$RefreshReg$(_c, \"Script\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9zY3JpcHQuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOzs7Ozs7QUFDYkEsOENBQTZDO0FBQ3pDRyxFQUFBQSxLQUFLLEVBQUU7QUFEa0MsQ0FBN0M7QUFHQUQsd0JBQUEsR0FBMkJFLGdCQUEzQjtBQUNBRixrQkFBQSxHQUFrQixLQUFLLENBQXZCOztBQUNBLElBQUlHLE1BQU0sR0FBR0MsdUJBQXVCLENBQUNDLG1CQUFPLENBQUMsNENBQUQsQ0FBUixDQUFwQzs7QUFDQSxJQUFJQyxtQkFBbUIsR0FBR0QsbUJBQU8sQ0FBQyx1R0FBRCxDQUFqQzs7QUFDQSxJQUFJRSxZQUFZLEdBQUdGLG1CQUFPLENBQUMsdUVBQUQsQ0FBMUI7O0FBQ0EsSUFBSUcsb0JBQW9CLEdBQUdILG1CQUFPLENBQUMseUZBQUQsQ0FBbEM7O0FBQ0EsU0FBU0ksZUFBVCxDQUF5QkMsR0FBekIsRUFBOEJDLEdBQTlCLEVBQW1DVixLQUFuQyxFQUEwQztBQUN0QyxNQUFJVSxHQUFHLElBQUlELEdBQVgsRUFBZ0I7QUFDWlosSUFBQUEsTUFBTSxDQUFDQyxjQUFQLENBQXNCVyxHQUF0QixFQUEyQkMsR0FBM0IsRUFBZ0M7QUFDNUJWLE1BQUFBLEtBQUssRUFBRUEsS0FEcUI7QUFFNUJXLE1BQUFBLFVBQVUsRUFBRSxJQUZnQjtBQUc1QkMsTUFBQUEsWUFBWSxFQUFFLElBSGM7QUFJNUJDLE1BQUFBLFFBQVEsRUFBRTtBQUprQixLQUFoQztBQU1ILEdBUEQsTUFPTztBQUNISixJQUFBQSxHQUFHLENBQUNDLEdBQUQsQ0FBSCxHQUFXVixLQUFYO0FBQ0g7O0FBQ0QsU0FBT1MsR0FBUDtBQUNIOztBQUNELFNBQVNOLHVCQUFULENBQWlDTSxHQUFqQyxFQUFzQztBQUNsQyxNQUFJQSxHQUFHLElBQUlBLEdBQUcsQ0FBQ0ssVUFBZixFQUEyQjtBQUN2QixXQUFPTCxHQUFQO0FBQ0gsR0FGRCxNQUVPO0FBQ0gsUUFBSU0sTUFBTSxHQUFHLEVB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c2NyaXB0LmpzP2JkNmEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmluaXRTY3JpcHRMb2FkZXIgPSBpbml0U2NyaXB0TG9hZGVyO1xuZXhwb3J0cy5kZWZhdWx0ID0gdm9pZCAwO1xudmFyIF9yZWFjdCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG52YXIgX2hlYWRNYW5hZ2VyQ29udGV4dCA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL2hlYWQtbWFuYWdlci1jb250ZXh0XCIpO1xudmFyIF9oZWFkTWFuYWdlciA9IHJlcXVpcmUoXCIuL2hlYWQtbWFuYWdlclwiKTtcbnZhciBfcmVxdWVzdElkbGVDYWxsYmFjayA9IHJlcXVpcmUoXCIuL3JlcXVlc3QtaWRsZS1jYWxsYmFja1wiKTtcbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHtcbiAgICBpZiAoa2V5IGluIG9iaikge1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHtcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgICAgICB3cml0YWJsZTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBvYmpba2V5XSA9IHZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gb2JqO1xufVxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7XG4gICAgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkge1xuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBuZXdPYmogPSB7XG4gICAgICAgIH07XG4gICAgICAgIGlmIChvYmogIT0gbnVsbCkge1xuICAgICAgICAgICAgZm9yKHZhciBrZXkgaW4gb2JqKXtcbiAgICAgICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiB7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGlmIChkZXNjLmdldCB8fCBkZXNjLnNldCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld09ialtrZXldID0gb2JqW2tleV07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbmV3T2JqLmRlZmF1bHQgPSBvYmo7XG4gICAgICAgIHJldHVybiBuZXdPYmo7XG4gICAgfVxufVxuZnVuY3Rpb24gX29iamVjdFNwcmVhZCh0YXJnZXQpIHtcbiAgICBmb3IodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXSAhPSBudWxsID8gYXJndW1lbnRzW2ldIDoge1xuICAgICAgICB9O1xuICAgICAgICB2YXIgb3duS2V5cyA9IE9iamVjdC5rZXlzKHNvdXJjZSk7XG4gICAgICAgIGlmICh0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICBvd25LZXlzID0gb3duS2V5cy5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzb3VyY2UpLmZpbHRlcihmdW5jdGlvbihzeW0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzb3VyY2UsIHN5bSkuZW51bWVyYWJsZTtcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgfVxuICAgICAgICBvd25LZXlzLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7XG4gICAgICAgICAgICBfZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHNvdXJjZVtrZXldKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB0YXJnZXQ7XG59XG5mdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoc291cmNlLCBleGNsdWRlZCkge1xuICAgIGlmIChzb3VyY2UgPT0gbnVsbCkgcmV0dXJuIHtcbiAgICB9O1xuICAgIHZhciB0YXJnZXQgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShzb3VyY2UsIGV4Y2x1ZGVkKTtcbiAgICB2YXIga2V5LCBpO1xuICAgIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG4gICAgICAgIHZhciBzb3VyY2VTeW1ib2xLZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzb3VyY2UpO1xuICAgICAgICBmb3IoaSA9IDA7IGkgPCBzb3VyY2VTeW1ib2xLZXlzLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgICAgIGtleSA9IHNvdXJjZVN5bWJvbEtleXNbaV07XG4gICAgICAgICAgICBpZiAoZXhjbHVkZWQuaW5kZXhPZihrZXkpID49IDApIGNvbnRpbnVlO1xuICAgICAgICAgICAgaWYgKCFPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoc291cmNlLCBrZXkpKSBjb250aW51ZTtcbiAgICAgICAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRhcmdldDtcbn1cbmZ1bmN0aW9uIF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKHNvdXJjZSwgZXhjbHVkZWQpIHtcbiAgICBpZiAoc291cmNlID09IG51bGwpIHJldHVybiB7XG4gICAgfTtcbiAgICB2YXIgdGFyZ2V0ID0ge1xuICAgIH07XG4gICAgdmFyIHNvdXJjZUtleXMgPSBPYmplY3Qua2V5cyhzb3VyY2UpO1xuICAgIHZhciBrZXksIGk7XG4gICAgZm9yKGkgPSAwOyBpIDwgc291cmNlS2V5cy5sZW5ndGg7IGkrKyl7XG4gICAgICAgIGtleSA9IHNvdXJjZUtleXNbaV07XG4gICAgICAgIGlmIChleGNsdWRlZC5pbmRleE9mKGtleSkgPj0gMCkgY29udGludWU7XG4gICAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV07XG4gICAgfVxuICAgIHJldHVybiB0YXJnZXQ7XG59XG5jb25zdCBTY3JpcHRDYWNoZSA9IG5ldyBNYXAoKTtcbmNvbnN0IExvYWRDYWNoZSA9IG5ldyBTZXQoKTtcbmNvbnN0IGlnbm9yZVByb3BzID0gW1xuICAgICdvbkxvYWQnLFxuICAgICdkYW5nZXJvdXNseVNldElubmVySFRNTCcsXG4gICAgJ2NoaWxkcmVuJyxcbiAgICAnb25FcnJvcicsXG4gICAgJ3N0cmF0ZWd5JywgXG5dO1xuY29uc3QgbG9hZFNjcmlwdCA9IChwcm9wcyk9PntcbiAgICBjb25zdCB7IHNyYyAsIGlkICwgb25Mb2FkID0oKT0+e1xuICAgIH0gLCBkYW5nZXJvdXNseVNldElubmVySFRNTCAsIGNoaWxkcmVuID0nJyAsIHN0cmF0ZWd5ID0nYWZ0ZXJJbnRlcmFjdGl2ZScgLCBvbkVycm9yICwgIH0gPSBwcm9wcztcbiAgICBjb25zdCBjYWNoZUtleSA9IGlkIHx8IHNyYztcbiAgICAvLyBTY3JpcHQgaGFzIGFscmVhZHkgbG9hZGVkXG4gICAgaWYgKGNhY2hlS2V5ICYmIExvYWRDYWNoZS5oYXMoY2FjaGVLZXkpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gQ29udGVudHMgb2YgdGhpcyBzY3JpcHQgYXJlIGFscmVhZHkgbG9hZGluZy9sb2FkZWRcbiAgICBpZiAoU2NyaXB0Q2FjaGUuaGFzKHNyYykpIHtcbiAgICAgICAgTG9hZENhY2hlLmFkZChjYWNoZUtleSk7XG4gICAgICAgIC8vIEV4ZWN1dGUgb25Mb2FkIHNpbmNlIHRoZSBzY3JpcHQgbG9hZGluZyBoYXMgYmVndW5cbiAgICAgICAgU2NyaXB0Q2FjaGUuZ2V0KHNyYykudGhlbihvbkxvYWQsIG9uRXJyb3IpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgY29uc3QgbG9hZFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KT0+e1xuICAgICAgICBlbC5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgaWYgKG9uTG9hZCkge1xuICAgICAgICAgICAgICAgIG9uTG9hZC5jYWxsKHRoaXMsIGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgIH0pO1xuICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgaWYgKG9uRXJyb3IpIHtcbiAgICAgICAgICAgIG9uRXJyb3IoZSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAoc3JjKSB7XG4gICAgICAgIFNjcmlwdENhY2hlLnNldChzcmMsIGxvYWRQcm9taXNlKTtcbiAgICB9XG4gICAgTG9hZENhY2hlLmFkZChjYWNoZUtleSk7XG4gICAgaWYgKGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MKSB7XG4gICAgICAgIGVsLmlubmVySFRNTCA9IGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLl9faHRtbCB8fCAnJztcbiAgICB9IGVsc2UgaWYgKGNoaWxkcmVuKSB7XG4gICAgICAgIGVsLnRleHRDb250ZW50ID0gdHlwZW9mIGNoaWxkcmVuID09PSAnc3RyaW5nJyA/IGNoaWxkcmVuIDogQXJyYXkuaXNBcnJheShjaGlsZHJlbikgPyBjaGlsZHJlbi5qb2luKCcnKSA6ICcnO1xuICAgIH0gZWxzZSBpZiAoc3JjKSB7XG4gICAgICAgIGVsLnNyYyA9IHNyYztcbiAgICB9XG4gICAgZm9yIChjb25zdCBbaywgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHByb3BzKSl7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IGlnbm9yZVByb3BzLmluY2x1ZGVzKGspKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhdHRyID0gX2hlYWRNYW5hZ2VyLkRPTUF0dHJpYnV0ZU5hbWVzW2tdIHx8IGsudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgZWwuc2V0QXR0cmlidXRlKGF0dHIsIHZhbHVlKTtcbiAgICB9XG4gICAgZWwuc2V0QXR0cmlidXRlKCdkYXRhLW5zY3JpcHQnLCBzdHJhdGVneSk7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbCk7XG59O1xuZnVuY3Rpb24gaGFuZGxlQ2xpZW50U2NyaXB0TG9hZChwcm9wcykge1xuICAgIGNvbnN0IHsgc3RyYXRlZ3kgPSdhZnRlckludGVyYWN0aXZlJyAgfSA9IHByb3BzO1xuICAgIGlmIChzdHJhdGVneSA9PT0gJ2FmdGVySW50ZXJhY3RpdmUnKSB7XG4gICAgICAgIGxvYWRTY3JpcHQocHJvcHMpO1xuICAgIH0gZWxzZSBpZiAoc3RyYXRlZ3kgPT09ICdsYXp5T25sb2FkJykge1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsICgpPT57XG4gICAgICAgICAgICAoMCwgX3JlcXVlc3RJZGxlQ2FsbGJhY2spLnJlcXVlc3RJZGxlQ2FsbGJhY2soKCk9PmxvYWRTY3JpcHQocHJvcHMpXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5mdW5jdGlvbiBsb2FkTGF6eVNjcmlwdChwcm9wcykge1xuICAgIGlmIChkb2N1bWVudC5yZWFkeVN0YXRlID09PSAnY29tcGxldGUnKSB7XG4gICAgICAgICgwLCBfcmVxdWVzdElkbGVDYWxsYmFjaykucmVxdWVzdElkbGVDYWxsYmFjaygoKT0+bG9hZFNjcmlwdChwcm9wcylcbiAgICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsICgpPT57XG4gICAgICAgICAgICAoMCwgX3JlcXVlc3RJZGxlQ2FsbGJhY2spLnJlcXVlc3RJZGxlQ2FsbGJhY2soKCk9PmxvYWRTY3JpcHQocHJvcHMpXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5mdW5jdGlvbiBpbml0U2NyaXB0TG9hZGVyKHNjcmlwdExvYWRlckl0ZW1zKSB7XG4gICAgc2NyaXB0TG9hZGVySXRlbXMuZm9yRWFjaChoYW5kbGVDbGllbnRTY3JpcHRMb2FkKTtcbn1cbmZ1bmN0aW9uIFNjcmlwdChwcm9wcykge1xuICAgIGNvbnN0IHsgc3JjID0nJyAsIG9uTG9hZCA9KCk9PntcbiAgICB9ICwgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgLCBzdHJhdGVneSA9J2FmdGVySW50ZXJhY3RpdmUnICwgb25FcnJvciAgfSA9IHByb3BzLCByZXN0UHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMocHJvcHMsIFtcInNyY1wiLCBcIm9uTG9hZFwiLCBcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCIsIFwic3RyYXRlZ3lcIiwgXCJvbkVycm9yXCJdKTtcbiAgICAvLyBDb250ZXh0IGlzIGF2YWlsYWJsZSBvbmx5IGR1cmluZyBTU1JcbiAgICBjb25zdCB7IHVwZGF0ZVNjcmlwdHMgLCBzY3JpcHRzICwgZ2V0SXNTc3IgIH0gPSAoMCwgX3JlYWN0KS51c2VDb250ZXh0KF9oZWFkTWFuYWdlckNvbnRleHQuSGVhZE1hbmFnZXJDb250ZXh0KTtcbiAgICAoMCwgX3JlYWN0KS51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgaWYgKHN0cmF0ZWd5ID09PSAnYWZ0ZXJJbnRlcmFjdGl2ZScpIHtcbiAgICAgICAgICAgIGxvYWRTY3JpcHQocHJvcHMpO1xuICAgICAgICB9IGVsc2UgaWYgKHN0cmF0ZWd5ID09PSAnbGF6eU9ubG9hZCcpIHtcbiAgICAgICAgICAgIGxvYWRMYXp5U2NyaXB0KHByb3BzKTtcbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgcHJvcHMsXG4gICAgICAgIHN0cmF0ZWd5XG4gICAgXSk7XG4gICAgaWYgKHN0cmF0ZWd5ID09PSAnYmVmb3JlSW50ZXJhY3RpdmUnKSB7XG4gICAgICAgIGlmICh1cGRhdGVTY3JpcHRzKSB7XG4gICAgICAgICAgICBzY3JpcHRzLmJlZm9yZUludGVyYWN0aXZlID0gKHNjcmlwdHMuYmVmb3JlSW50ZXJhY3RpdmUgfHwgW10pLmNvbmNhdChbXG4gICAgICAgICAgICAgICAgX29iamVjdFNwcmVhZCh7XG4gICAgICAgICAgICAgICAgICAgIHNyYyxcbiAgICAgICAgICAgICAgICAgICAgb25Mb2FkLFxuICAgICAgICAgICAgICAgICAgICBvbkVycm9yXG4gICAgICAgICAgICAgICAgfSwgcmVzdFByb3BzKSwgXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgICAgIHVwZGF0ZVNjcmlwdHMoc2NyaXB0cyk7XG4gICAgICAgIH0gZWxzZSBpZiAoZ2V0SXNTc3IgJiYgZ2V0SXNTc3IoKSkge1xuICAgICAgICAgICAgLy8gU2NyaXB0IGhhcyBhbHJlYWR5IGxvYWRlZCBkdXJpbmcgU1NSXG4gICAgICAgICAgICBMb2FkQ2FjaGUuYWRkKHJlc3RQcm9wcy5pZCB8fCBzcmMpO1xuICAgICAgICB9IGVsc2UgaWYgKGdldElzU3NyICYmICFnZXRJc1NzcigpKSB7XG4gICAgICAgICAgICBsb2FkU2NyaXB0KHByb3BzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn1cbnZhciBfZGVmYXVsdCA9IFNjcmlwdDtcbmV4cG9ydHMuZGVmYXVsdCA9IF9kZWZhdWx0O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zY3JpcHQuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiaW5pdFNjcmlwdExvYWRlciIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIl9oZWFkTWFuYWdlckNvbnRleHQiLCJfaGVhZE1hbmFnZXIiLCJfcmVxdWVzdElkbGVDYWxsYmFjayIsIl9kZWZpbmVQcm9wZXJ0eSIsIm9iaiIsImtleSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIl9fZXNNb2R1bGUiLCJuZXdPYmoiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZ2V0Iiwic2V0IiwiX29iamVjdFNwcmVhZCIsInRhcmdldCIsImkiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJzb3VyY2UiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImNvbmNhdCIsImZpbHRlciIsInN5bSIsImZvckVhY2giLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJleGNsdWRlZCIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlIiwic291cmNlU3ltYm9sS2V5cyIsImluZGV4T2YiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsInNvdXJjZUtleXMiLCJTY3JpcHRDYWNoZSIsIk1hcCIsIkxvYWRDYWNoZSIsIlNldCIsImlnbm9yZVByb3BzIiwibG9hZFNjcmlwdCIsInByb3BzIiwic3JjIiwiaWQiLCJvbkxvYWQiLCJkYW5nZXJvdXNseVNldElubmVySFRNTCIsImNoaWxkcmVuIiwic3RyYXRlZ3kiLCJvbkVycm9yIiwiY2FjaGVLZXkiLCJoYXMiLCJhZGQiLCJ0aGVuIiwiZWwiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJsb2FkUHJvbWlzZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiYWRkRXZlbnRMaXN0ZW5lciIsImUiLCJpbm5lckhUTUwiLCJfX2h0bWwiLCJ0ZXh0Q29udGVudCIsIkFycmF5IiwiaXNBcnJheSIsImpvaW4iLCJlbnRyaWVzIiwiayIsInVuZGVmaW5lZCIsImluY2x1ZGVzIiwiYXR0ciIsIkRPTUF0dHJpYnV0ZU5hbWVzIiwidG9Mb3dlckNhc2UiLCJzZXRBdHRyaWJ1dGUiLCJib2R5IiwiYXBwZW5kQ2hpbGQiLCJoYW5kbGVDbGllbnRTY3JpcHRMb2FkIiwid2luZG93IiwicmVxdWVzdElkbGVDYWxsYmFjayIsImxvYWRMYXp5U2NyaXB0IiwicmVhZHlTdGF0ZSIsInNjcmlwdExvYWRlckl0ZW1zIiwiU2NyaXB0IiwicmVzdFByb3BzIiwidXNlQ29udGV4dCIsIkhlYWRNYW5hZ2VyQ29udGV4dCIsInVwZGF0ZVNjcmlwdHMiLCJzY3JpcHRzIiwiZ2V0SXNTc3IiLCJ1c2VFZmZlY3QiLCJiZWZvcmVJbnRlcmFjdGl2ZSIsIl9kZWZhdWx0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/script.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/vitals.js": +/*!*************************************************!*\ + !*** ./node_modules/next/dist/client/vitals.js ***! + \*************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _s = $RefreshSig$();\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.trackWebVitalMetric = trackWebVitalMetric;\nexports.useExperimentalWebVitalsReport = useExperimentalWebVitalsReport;\nexports.webVitalsCallbacks = void 0;\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nvar webVitalsCallbacks = new Set();\nexports.webVitalsCallbacks = webVitalsCallbacks;\nvar metrics = [];\n\nfunction trackWebVitalMetric(metric) {\n metrics.push(metric);\n webVitalsCallbacks.forEach(function (callback) {\n return callback(metric);\n });\n}\n\nfunction useExperimentalWebVitalsReport(callback) {\n _s();\n\n var metricIndexRef = (0, _react).useRef(0);\n (0, _react).useEffect(function () {\n // Flush calculated metrics\n var reportMetric = function reportMetric(metric) {\n callback(metric);\n metricIndexRef.current = metrics.length;\n };\n\n for (var i = metricIndexRef.current; i < metrics.length; i++) {\n reportMetric(metrics[i]);\n }\n\n webVitalsCallbacks.add(reportMetric);\n return function () {\n webVitalsCallbacks[\"delete\"](reportMetric);\n };\n }, [callback]);\n}\n\n_s(useExperimentalWebVitalsReport, \"27OgJci6R6u+BNzu04R3TrX4wbY=\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC92aXRhbHMuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOzs7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELDJCQUFBLEdBQThCRSxtQkFBOUI7QUFDQUYsc0NBQUEsR0FBeUNHLDhCQUF6QztBQUNBSCwwQkFBQSxHQUE2QixLQUFLLENBQWxDOztBQUNBLElBQUlLLE1BQU0sR0FBR0MsbUJBQU8sQ0FBQyw0Q0FBRCxDQUFwQjs7QUFDQSxJQUFNRixrQkFBa0IsR0FBRyxJQUFJRyxHQUFKLEVBQTNCO0FBQ0FQLDBCQUFBLEdBQTZCSSxrQkFBN0I7QUFDQSxJQUFNSSxPQUFPLEdBQUcsRUFBaEI7O0FBQ0EsU0FBU04sbUJBQVQsQ0FBNkJPLE1BQTdCLEVBQXFDO0FBQ2pDRCxFQUFBQSxPQUFPLENBQUNFLElBQVIsQ0FBYUQsTUFBYjtBQUNBTCxFQUFBQSxrQkFBa0IsQ0FBQ08sT0FBbkIsQ0FBMkIsVUFBQ0MsUUFBRDtBQUFBLFdBQVlBLFFBQVEsQ0FBQ0gsTUFBRCxDQUFwQjtBQUFBLEdBQTNCO0FBRUg7O0FBQ0QsU0FBU04sOEJBQVQsQ0FBd0NTLFFBQXhDLEVBQWtEO0FBQUE7O0FBQzlDLE1BQU1DLGNBQWMsR0FBRyxDQUFDLEdBQUdSLE1BQUosRUFBWVMsTUFBWixDQUFtQixDQUFuQixDQUF2QjtBQUNBLEdBQUMsR0FBR1QsTUFBSixFQUFZVSxTQUFaLENBQXNCLFlBQUk7QUFDdEI7QUFDQSxRQUFNQyxZQUFZLEdBQUcsU0FBZkEsWUFBZSxDQUFDUCxNQUFELEVBQVU7QUFDM0JHLE1BQUFBLFFBQVEsQ0FBQ0gsTUFBRCxDQUFSO0FBQ0FJLE1BQUFBLGNBQWMsQ0FBQ0ksT0FBZixHQUF5QlQsT0FBTyxDQUFDVSxNQUFqQztBQUNILEtBSEQ7O0FBSUEsU0FBSSxJQUFJQyxDQUFDLEdBQUdOLGNBQWMsQ0FBQ0ksT0FBM0IsRUFBb0NFLENBQUMsR0FBR1gsT0FBTyxDQUFDVSxNQUFoRCxFQUF3REMsQ0FBQyxFQUF6RCxFQUE0RDtBQUN4REgsTUFBQUEsWUFBWSxDQUFDUixPQUFPLENBQUNXLENBQUQsQ0FBUixDQUFaO0FBQ0g7O0FBQ0RmLElBQUFBLGtCQUFrQixDQUFDZ0IsR0FBbkIsQ0FBdUJKLFlBQXZCO0FBQ0EsV0FBTyxZQUFJO0FBQ1BaLE1BQUFBLGtCQUFrQixVQUFsQixDQUEwQlksWUFBMUI7QUFDSCxLQUZEO0FBR0gsR0FiRCxFQWFHLENBQ0NKLFFBREQsQ0FiSDtBQWdCSDs7R0FsQlFUIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3ZpdGFscy5qcz85NzJiIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy50cmFja1dlYlZpdGFsTWV0cmljID0gdHJhY2tXZWJWaXRhbE1ldHJpYztcbmV4cG9ydHMudXNlRXhwZXJpbWVudGFsV2ViVml0YWxzUmVwb3J0ID0gdXNlRXhwZXJpbWVudGFsV2ViVml0YWxzUmVwb3J0O1xuZXhwb3J0cy53ZWJWaXRhbHNDYWxsYmFja3MgPSB2b2lkIDA7XG52YXIgX3JlYWN0ID0gcmVxdWlyZShcInJlYWN0XCIpO1xuY29uc3Qgd2ViVml0YWxzQ2FsbGJhY2tzID0gbmV3IFNldCgpO1xuZXhwb3J0cy53ZWJWaXRhbHNDYWxsYmFja3MgPSB3ZWJWaXRhbHNDYWxsYmFja3M7XG5jb25zdCBtZXRyaWNzID0gW107XG5mdW5jdGlvbiB0cmFja1dlYlZpdGFsTWV0cmljKG1ldHJpYykge1xuICAgIG1ldHJpY3MucHVzaChtZXRyaWMpO1xuICAgIHdlYlZpdGFsc0NhbGxiYWNrcy5mb3JFYWNoKChjYWxsYmFjayk9PmNhbGxiYWNrKG1ldHJpYylcbiAgICApO1xufVxuZnVuY3Rpb24gdXNlRXhwZXJpbWVudGFsV2ViVml0YWxzUmVwb3J0KGNhbGxiYWNrKSB7XG4gICAgY29uc3QgbWV0cmljSW5kZXhSZWYgPSAoMCwgX3JlYWN0KS51c2VSZWYoMCk7XG4gICAgKDAsIF9yZWFjdCkudXNlRWZmZWN0KCgpPT57XG4gICAgICAgIC8vIEZsdXNoIGNhbGN1bGF0ZWQgbWV0cmljc1xuICAgICAgICBjb25zdCByZXBvcnRNZXRyaWMgPSAobWV0cmljKT0+e1xuICAgICAgICAgICAgY2FsbGJhY2sobWV0cmljKTtcbiAgICAgICAgICAgIG1ldHJpY0luZGV4UmVmLmN1cnJlbnQgPSBtZXRyaWNzLmxlbmd0aDtcbiAgICAgICAgfTtcbiAgICAgICAgZm9yKGxldCBpID0gbWV0cmljSW5kZXhSZWYuY3VycmVudDsgaSA8IG1ldHJpY3MubGVuZ3RoOyBpKyspe1xuICAgICAgICAgICAgcmVwb3J0TWV0cmljKG1ldHJpY3NbaV0pO1xuICAgICAgICB9XG4gICAgICAgIHdlYlZpdGFsc0NhbGxiYWNrcy5hZGQocmVwb3J0TWV0cmljKTtcbiAgICAgICAgcmV0dXJuICgpPT57XG4gICAgICAgICAgICB3ZWJWaXRhbHNDYWxsYmFja3MuZGVsZXRlKHJlcG9ydE1ldHJpYyk7XG4gICAgICAgIH07XG4gICAgfSwgW1xuICAgICAgICBjYWxsYmFja1xuICAgIF0pO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD12aXRhbHMuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwidHJhY2tXZWJWaXRhbE1ldHJpYyIsInVzZUV4cGVyaW1lbnRhbFdlYlZpdGFsc1JlcG9ydCIsIndlYlZpdGFsc0NhbGxiYWNrcyIsIl9yZWFjdCIsInJlcXVpcmUiLCJTZXQiLCJtZXRyaWNzIiwibWV0cmljIiwicHVzaCIsImZvckVhY2giLCJjYWxsYmFjayIsIm1ldHJpY0luZGV4UmVmIiwidXNlUmVmIiwidXNlRWZmZWN0IiwicmVwb3J0TWV0cmljIiwiY3VycmVudCIsImxlbmd0aCIsImkiLCJhZGQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/vitals.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/with-router.js": +/*!******************************************************!*\ + !*** ./node_modules/next/dist/client/with-router.js ***! + \******************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = withRouter;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _router = __webpack_require__(/*! ./router */ \"./node_modules/next/dist/client/router.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction withRouter(ComposedComponent) {\n var _s = $RefreshSig$();\n\n function WithRouterWrapper(props) {\n _s();\n\n return /*#__PURE__*/_react[\"default\"].createElement(ComposedComponent, Object.assign({\n router: (0, _router).useRouter()\n }, props));\n }\n\n _s(WithRouterWrapper, \"CeygcqajjFExIxFEzW4x/gfWEGQ=\", true);\n\n WithRouterWrapper.getInitialProps = ComposedComponent.getInitialProps;\n WithRouterWrapper.origGetInitialProps = ComposedComponent.origGetInitialProps;\n\n if (true) {\n var name = ComposedComponent.displayName || ComposedComponent.name || 'Unknown';\n WithRouterWrapper.displayName = \"withRouter(\".concat(name, \")\");\n }\n\n return WithRouterWrapper;\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC93aXRoLXJvdXRlci5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELGtCQUFBLEdBQWtCRSxVQUFsQjs7QUFDQSxJQUFJQyxNQUFNLEdBQUdDLHNCQUFzQixDQUFDQyxtQkFBTyxDQUFDLDRDQUFELENBQVIsQ0FBbkM7O0FBQ0EsSUFBSUMsT0FBTyxHQUFHRCxtQkFBTyxDQUFDLDJEQUFELENBQXJCOztBQUNBLFNBQVNELHNCQUFULENBQWdDRyxHQUFoQyxFQUFxQztBQUNqQyxTQUFPQSxHQUFHLElBQUlBLEdBQUcsQ0FBQ0MsVUFBWCxHQUF3QkQsR0FBeEIsR0FBOEI7QUFDakMsZUFBU0E7QUFEd0IsR0FBckM7QUFHSDs7QUFDRCxTQUFTTCxVQUFULENBQW9CTyxpQkFBcEIsRUFBdUM7QUFBQTs7QUFDbkMsV0FBU0MsaUJBQVQsQ0FBMkJDLEtBQTNCLEVBQWtDO0FBQUE7O0FBQzlCLFdBQU8sYUFBY1IsTUFBTSxXQUFOLENBQWVTLGFBQWYsQ0FBNkJILGlCQUE3QixFQUFnRFgsTUFBTSxDQUFDZSxNQUFQLENBQWM7QUFDL0VDLE1BQUFBLE1BQU0sRUFBRSxDQUFDLEdBQUdSLE9BQUosRUFBYVMsU0FBYjtBQUR1RSxLQUFkLEVBRWxFSixLQUZrRSxDQUFoRCxDQUFyQjtBQUdIOztBQUxrQyxLQUMxQkQsaUJBRDBCOztBQU1uQ0EsRUFBQUEsaUJBQWlCLENBQUNNLGVBQWxCLEdBQW9DUCxpQkFBaUIsQ0FBQ08sZUFBdEQ7QUFDQU4sRUFBQUEsaUJBQWlCLENBQUNPLG1CQUFsQixHQUF3Q1IsaUJBQWlCLENBQUNRLG1CQUExRDs7QUFDQSxZQUEyQztBQUN2QyxRQUFNQyxJQUFJLEdBQUdULGlCQUFpQixDQUFDVSxXQUFsQixJQUFpQ1YsaUJBQWlCLENBQUNTLElBQW5ELElBQTJELFNBQXhFO0FBQ0FSLElBQUFBLGlCQUFpQixDQUFDUyxXQUFsQix3QkFBOENELElBQTlDO0FBQ0g7O0FBQ0QsU0FBT1IsaUJBQVA7QUFDSCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC93aXRoLXJvdXRlci5qcz9hYzdjIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gd2l0aFJvdXRlcjtcbnZhciBfcmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG52YXIgX3JvdXRlciA9IHJlcXVpcmUoXCIuL3JvdXRlclwiKTtcbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbmZ1bmN0aW9uIHdpdGhSb3V0ZXIoQ29tcG9zZWRDb21wb25lbnQpIHtcbiAgICBmdW5jdGlvbiBXaXRoUm91dGVyV3JhcHBlcihwcm9wcykge1xuICAgICAgICByZXR1cm4oLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KENvbXBvc2VkQ29tcG9uZW50LCBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgICAgIHJvdXRlcjogKDAsIF9yb3V0ZXIpLnVzZVJvdXRlcigpXG4gICAgICAgIH0sIHByb3BzKSkpO1xuICAgIH1cbiAgICBXaXRoUm91dGVyV3JhcHBlci5nZXRJbml0aWFsUHJvcHMgPSBDb21wb3NlZENvbXBvbmVudC5nZXRJbml0aWFsUHJvcHM7XG4gICAgV2l0aFJvdXRlcldyYXBwZXIub3JpZ0dldEluaXRpYWxQcm9wcyA9IENvbXBvc2VkQ29tcG9uZW50Lm9yaWdHZXRJbml0aWFsUHJvcHM7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgY29uc3QgbmFtZSA9IENvbXBvc2VkQ29tcG9uZW50LmRpc3BsYXlOYW1lIHx8IENvbXBvc2VkQ29tcG9uZW50Lm5hbWUgfHwgJ1Vua25vd24nO1xuICAgICAgICBXaXRoUm91dGVyV3JhcHBlci5kaXNwbGF5TmFtZSA9IGB3aXRoUm91dGVyKCR7bmFtZX0pYDtcbiAgICB9XG4gICAgcmV0dXJuIFdpdGhSb3V0ZXJXcmFwcGVyO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD13aXRoLXJvdXRlci5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJ3aXRoUm91dGVyIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcm91dGVyIiwib2JqIiwiX19lc01vZHVsZSIsIkNvbXBvc2VkQ29tcG9uZW50IiwiV2l0aFJvdXRlcldyYXBwZXIiLCJwcm9wcyIsImNyZWF0ZUVsZW1lbnQiLCJhc3NpZ24iLCJyb3V0ZXIiLCJ1c2VSb3V0ZXIiLCJnZXRJbml0aWFsUHJvcHMiLCJvcmlnR2V0SW5pdGlhbFByb3BzIiwibmFtZSIsImRpc3BsYXlOYW1lIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/with-router.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/compiled/strip-ansi/index.js": +/*!*************************************************************!*\ + !*** ./node_modules/next/dist/compiled/strip-ansi/index.js ***! + \*************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var __dirname = \"/\";\n/* module decorator */ module = __webpack_require__.nmd(module);\nmodule.exports = function () {\n \"use strict\";\n\n var e = {\n 161: function _(e) {\n e.exports = function () {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$onlyFirst = _ref.onlyFirst,\n e = _ref$onlyFirst === void 0 ? false : _ref$onlyFirst;\n\n var r = [\"[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:[a-zA-Z\\\\d]*(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)\", \"(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-ntqry=><~]))\"].join(\"|\");\n return new RegExp(r, e ? undefined : \"g\");\n };\n },\n 301: function _(e, r, t) {\n var _ = t(161);\n\n e.exports = function (e) {\n return typeof e === \"string\" ? e.replace(_(), \"\") : e;\n };\n }\n };\n var r = {};\n\n function __nccwpck_require__(t) {\n if (r[t]) {\n return r[t].exports;\n }\n\n var _ = r[t] = {\n exports: {}\n };\n\n var n = true;\n\n try {\n e[t](_, _.exports, __nccwpck_require__);\n n = false;\n } finally {\n if (n) delete r[t];\n }\n\n return _.exports;\n }\n\n __nccwpck_require__.ab = __dirname + \"/\";\n return __nccwpck_require__(301);\n}();\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3N0cmlwLWFuc2kvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBQUEsTUFBTSxDQUFDQyxPQUFQLEdBQWdCLFlBQUk7QUFBQzs7QUFBYSxNQUFJQyxDQUFDLEdBQUM7QUFBQyxTQUFJLFdBQUFBLENBQUMsRUFBRTtBQUFDQSxNQUFBQSxDQUFDLENBQUNELE9BQUYsR0FBVyxZQUEwQjtBQUFBLHVGQUFMLEVBQUs7QUFBQSxrQ0FBeEJFLFNBQXdCO0FBQUEsWUFBZEQsQ0FBYywrQkFBWixLQUFZOztBQUFDLFlBQU1FLENBQUMsR0FBQyxDQUFDLDZGQUFELEVBQStGLDBEQUEvRixFQUEySkMsSUFBM0osQ0FBZ0ssR0FBaEssQ0FBUjtBQUE2SyxlQUFPLElBQUlDLE1BQUosQ0FBV0YsQ0FBWCxFQUFhRixDQUFDLEdBQUNLLFNBQUQsR0FBVyxHQUF6QixDQUFQO0FBQXFDLE9BQXhQO0FBQTBQLEtBQW5RO0FBQW9RLFNBQUksV0FBQ0wsQ0FBRCxFQUFHRSxDQUFILEVBQUtJLENBQUwsRUFBUztBQUFDLFVBQU1DLENBQUMsR0FBQ0QsQ0FBQyxDQUFDLEdBQUQsQ0FBVDs7QUFBZU4sTUFBQUEsQ0FBQyxDQUFDRCxPQUFGLEdBQVcsVUFBQUMsQ0FBQztBQUFBLGVBQUUsT0FBT0EsQ0FBUCxLQUFXLFFBQVgsR0FBb0JBLENBQUMsQ0FBQ1EsT0FBRixDQUFVRCxDQUFDLEVBQVgsRUFBYyxFQUFkLENBQXBCLEdBQXNDUCxDQUF4QztBQUFBLE9BQVo7QUFBdUQ7QUFBeFYsR0FBTjtBQUFnVyxNQUFJRSxDQUFDLEdBQUMsRUFBTjs7QUFBUyxXQUFTTyxtQkFBVCxDQUE2QkgsQ0FBN0IsRUFBK0I7QUFBQyxRQUFHSixDQUFDLENBQUNJLENBQUQsQ0FBSixFQUFRO0FBQUMsYUFBT0osQ0FBQyxDQUFDSSxDQUFELENBQUQsQ0FBS1AsT0FBWjtBQUFvQjs7QUFBQSxRQUFJUSxDQUFDLEdBQUNMLENBQUMsQ0FBQ0ksQ0FBRCxDQUFELEdBQUs7QUFBQ1AsTUFBQUEsT0FBTyxFQUFDO0FBQVQsS0FBWDs7QUFBd0IsUUFBSVcsQ0FBQyxHQUFDLElBQU47O0FBQVcsUUFBRztBQUFDVixNQUFBQSxDQUFDLENBQUNNLENBQUQsQ0FBRCxDQUFLQyxDQUFMLEVBQU9BLENBQUMsQ0FBQ1IsT0FBVCxFQUFpQlUsbUJBQWpCO0FBQXNDQyxNQUFBQSxDQUFDLEdBQUMsS0FBRjtBQUFRLEtBQWxELFNBQXlEO0FBQUMsVUFBR0EsQ0FBSCxFQUFLLE9BQU9SLENBQUMsQ0FBQ0ksQ0FBRCxDQUFSO0FBQVk7O0FBQUEsV0FBT0MsQ0FBQyxDQUFDUixPQUFUO0FBQWlCOztBQUFBVSxFQUFBQSxtQkFBbUIsQ0FBQ0UsRUFBcEIsR0FBdUJDLFNBQVMsR0FBQyxHQUFqQztBQUFxQyxTQUFPSCxtQkFBbUIsQ0FBQyxHQUFELENBQTFCO0FBQWdDLENBQTduQixFQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvc3RyaXAtYW5zaS9pbmRleC5qcz8xMWZhIl0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzPSgoKT0+e1widXNlIHN0cmljdFwiO3ZhciBlPXsxNjE6ZT0+e2UuZXhwb3J0cz0oKHtvbmx5Rmlyc3Q6ZT1mYWxzZX09e30pPT57Y29uc3Qgcj1bXCJbXFxcXHUwMDFCXFxcXHUwMDlCXVtbXFxcXF0oKSM7P10qKD86KD86KD86W2EtekEtWlxcXFxkXSooPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10qKSopP1xcXFx1MDAwNylcIixcIig/Oig/OlxcXFxkezEsNH0oPzo7XFxcXGR7MCw0fSkqKT9bXFxcXGRBLVBSLVRaY2YtbnRxcnk9Pjx+XSkpXCJdLmpvaW4oXCJ8XCIpO3JldHVybiBuZXcgUmVnRXhwKHIsZT91bmRlZmluZWQ6XCJnXCIpfSl9LDMwMTooZSxyLHQpPT57Y29uc3QgXz10KDE2MSk7ZS5leHBvcnRzPShlPT50eXBlb2YgZT09PVwic3RyaW5nXCI/ZS5yZXBsYWNlKF8oKSxcIlwiKTplKX19O3ZhciByPXt9O2Z1bmN0aW9uIF9fbmNjd3Bja19yZXF1aXJlX18odCl7aWYoclt0XSl7cmV0dXJuIHJbdF0uZXhwb3J0c312YXIgXz1yW3RdPXtleHBvcnRzOnt9fTt2YXIgbj10cnVlO3RyeXtlW3RdKF8sXy5leHBvcnRzLF9fbmNjd3Bja19yZXF1aXJlX18pO249ZmFsc2V9ZmluYWxseXtpZihuKWRlbGV0ZSByW3RdfXJldHVybiBfLmV4cG9ydHN9X19uY2N3cGNrX3JlcXVpcmVfXy5hYj1fX2Rpcm5hbWUrXCIvXCI7cmV0dXJuIF9fbmNjd3Bja19yZXF1aXJlX18oMzAxKX0pKCk7Il0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJlIiwib25seUZpcnN0IiwiciIsImpvaW4iLCJSZWdFeHAiLCJ1bmRlZmluZWQiLCJ0IiwiXyIsInJlcGxhY2UiLCJfX25jY3dwY2tfcmVxdWlyZV9fIiwibiIsImFiIiwiX19kaXJuYW1lIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/compiled/strip-ansi/index.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/head-manager-context.js": +/*!*******************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/head-manager-context.js ***! + \*******************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.HeadManagerContext = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar HeadManagerContext = _react[\"default\"].createContext({});\n\nexports.HeadManagerContext = HeadManagerContext;\n\nif (true) {\n HeadManagerContext.displayName = 'HeadManagerContext';\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaGVhZC1tYW5hZ2VyLWNvbnRleHQuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCwwQkFBQSxHQUE2QixLQUFLLENBQWxDOztBQUNBLElBQUlHLE1BQU0sR0FBR0Msc0JBQXNCLENBQUNDLG1CQUFPLENBQUMsNENBQUQsQ0FBUixDQUFuQzs7QUFDQSxTQUFTRCxzQkFBVCxDQUFnQ0UsR0FBaEMsRUFBcUM7QUFDakMsU0FBT0EsR0FBRyxJQUFJQSxHQUFHLENBQUNDLFVBQVgsR0FBd0JELEdBQXhCLEdBQThCO0FBQ2pDLGVBQVNBO0FBRHdCLEdBQXJDO0FBR0g7O0FBQ0QsSUFBTUosa0JBQWtCLEdBQUdDLE1BQU0sV0FBTixDQUFlSyxhQUFmLENBQTZCLEVBQTdCLENBQTNCOztBQUVBUiwwQkFBQSxHQUE2QkUsa0JBQTdCOztBQUNBLElBQUksTUFBdUM7QUFDdkNBLEVBQUFBLGtCQUFrQixDQUFDTyxXQUFuQixHQUFpQyxvQkFBakM7QUFDSCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaGVhZC1tYW5hZ2VyLWNvbnRleHQuanM/NzZlYiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuSGVhZE1hbmFnZXJDb250ZXh0ID0gdm9pZCAwO1xudmFyIF9yZWFjdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJlYWN0XCIpKTtcbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbmNvbnN0IEhlYWRNYW5hZ2VyQ29udGV4dCA9IF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUNvbnRleHQoe1xufSk7XG5leHBvcnRzLkhlYWRNYW5hZ2VyQ29udGV4dCA9IEhlYWRNYW5hZ2VyQ29udGV4dDtcbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgSGVhZE1hbmFnZXJDb250ZXh0LmRpc3BsYXlOYW1lID0gJ0hlYWRNYW5hZ2VyQ29udGV4dCc7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhlYWQtbWFuYWdlci1jb250ZXh0LmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsIkhlYWRNYW5hZ2VyQ29udGV4dCIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwib2JqIiwiX19lc01vZHVsZSIsImNyZWF0ZUNvbnRleHQiLCJkaXNwbGF5TmFtZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/head-manager-context.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js": +/*!*************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js ***! + \*************************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.normalizeLocalePath = normalizeLocalePath;\n\nfunction normalizeLocalePath(pathname, locales) {\n var detectedLocale; // first item will be empty string from splitting at first char\n\n var pathnameParts = pathname.split('/');\n (locales || []).some(function (locale) {\n if (pathnameParts[1] && pathnameParts[1].toLowerCase() === locale.toLowerCase()) {\n detectedLocale = locale;\n pathnameParts.splice(1, 1);\n pathname = pathnameParts.join('/') || '/';\n return true;\n }\n\n return false;\n });\n return {\n pathname: pathname,\n detectedLocale: detectedLocale\n };\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaTE4bi9ub3JtYWxpemUtbG9jYWxlLXBhdGguanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCwyQkFBQSxHQUE4QkUsbUJBQTlCOztBQUNBLFNBQVNBLG1CQUFULENBQTZCQyxRQUE3QixFQUF1Q0MsT0FBdkMsRUFBZ0Q7QUFDNUMsTUFBSUMsY0FBSixDQUQ0QyxDQUU1Qzs7QUFDQSxNQUFNQyxhQUFhLEdBQUdILFFBQVEsQ0FBQ0ksS0FBVCxDQUFlLEdBQWYsQ0FBdEI7QUFDQSxHQUFDSCxPQUFPLElBQUksRUFBWixFQUFnQkksSUFBaEIsQ0FBcUIsVUFBQ0MsTUFBRCxFQUFVO0FBQzNCLFFBQUlILGFBQWEsQ0FBQyxDQUFELENBQWIsSUFBb0JBLGFBQWEsQ0FBQyxDQUFELENBQWIsQ0FBaUJJLFdBQWpCLE9BQW1DRCxNQUFNLENBQUNDLFdBQVAsRUFBM0QsRUFBaUY7QUFDN0VMLE1BQUFBLGNBQWMsR0FBR0ksTUFBakI7QUFDQUgsTUFBQUEsYUFBYSxDQUFDSyxNQUFkLENBQXFCLENBQXJCLEVBQXdCLENBQXhCO0FBQ0FSLE1BQUFBLFFBQVEsR0FBR0csYUFBYSxDQUFDTSxJQUFkLENBQW1CLEdBQW5CLEtBQTJCLEdBQXRDO0FBQ0EsYUFBTyxJQUFQO0FBQ0g7O0FBQ0QsV0FBTyxLQUFQO0FBQ0gsR0FSRDtBQVNBLFNBQU87QUFDSFQsSUFBQUEsUUFBUSxFQUFSQSxRQURHO0FBRUhFLElBQUFBLGNBQWMsRUFBZEE7QUFGRyxHQUFQO0FBSUgiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zaGFyZWQvbGliL2kxOG4vbm9ybWFsaXplLWxvY2FsZS1wYXRoLmpzPzA0M2IiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLm5vcm1hbGl6ZUxvY2FsZVBhdGggPSBub3JtYWxpemVMb2NhbGVQYXRoO1xuZnVuY3Rpb24gbm9ybWFsaXplTG9jYWxlUGF0aChwYXRobmFtZSwgbG9jYWxlcykge1xuICAgIGxldCBkZXRlY3RlZExvY2FsZTtcbiAgICAvLyBmaXJzdCBpdGVtIHdpbGwgYmUgZW1wdHkgc3RyaW5nIGZyb20gc3BsaXR0aW5nIGF0IGZpcnN0IGNoYXJcbiAgICBjb25zdCBwYXRobmFtZVBhcnRzID0gcGF0aG5hbWUuc3BsaXQoJy8nKTtcbiAgICAobG9jYWxlcyB8fCBbXSkuc29tZSgobG9jYWxlKT0+e1xuICAgICAgICBpZiAocGF0aG5hbWVQYXJ0c1sxXSAmJiBwYXRobmFtZVBhcnRzWzFdLnRvTG93ZXJDYXNlKCkgPT09IGxvY2FsZS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgICAgICBkZXRlY3RlZExvY2FsZSA9IGxvY2FsZTtcbiAgICAgICAgICAgIHBhdGhuYW1lUGFydHMuc3BsaWNlKDEsIDEpO1xuICAgICAgICAgICAgcGF0aG5hbWUgPSBwYXRobmFtZVBhcnRzLmpvaW4oJy8nKSB8fCAnLyc7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcGF0aG5hbWUsXG4gICAgICAgIGRldGVjdGVkTG9jYWxlXG4gICAgfTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bm9ybWFsaXplLWxvY2FsZS1wYXRoLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsIm5vcm1hbGl6ZUxvY2FsZVBhdGgiLCJwYXRobmFtZSIsImxvY2FsZXMiLCJkZXRlY3RlZExvY2FsZSIsInBhdGhuYW1lUGFydHMiLCJzcGxpdCIsInNvbWUiLCJsb2NhbGUiLCJ0b0xvd2VyQ2FzZSIsInNwbGljZSIsImpvaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/mitt.js": +/*!***************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/mitt.js ***! + \***************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = mitt;\n\nfunction mitt() {\n var all = Object.create(null);\n return {\n on: function on(type, handler) {\n (all[type] || (all[type] = [])).push(handler);\n },\n off: function off(type, handler) {\n if (all[type]) {\n all[type].splice(all[type].indexOf(handler) >>> 0, 1);\n }\n },\n emit: function emit(type) {\n for (var _len = arguments.length, evts = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n evts[_key - 1] = arguments[_key];\n }\n\n (all[type] || []).slice().map(function (handler) {\n handler.apply(void 0, evts);\n });\n }\n };\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvbWl0dC5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELGtCQUFBLEdBQWtCRSxJQUFsQjs7QUFDQSxTQUFTQSxJQUFULEdBQWdCO0FBQ1osTUFBTUMsR0FBRyxHQUFHTCxNQUFNLENBQUNNLE1BQVAsQ0FBYyxJQUFkLENBQVo7QUFDQSxTQUFPO0FBQ0hDLElBQUFBLEVBREcsY0FDQ0MsSUFERCxFQUNPQyxPQURQLEVBQ2dCO0FBQ2YsT0FBQ0osR0FBRyxDQUFDRyxJQUFELENBQUgsS0FBY0gsR0FBRyxDQUFDRyxJQUFELENBQUgsR0FBWSxFQUExQixDQUFELEVBQWdDRSxJQUFoQyxDQUFxQ0QsT0FBckM7QUFDSCxLQUhFO0FBSUhFLElBQUFBLEdBSkcsZUFJRUgsSUFKRixFQUlRQyxPQUpSLEVBSWlCO0FBQ2hCLFVBQUlKLEdBQUcsQ0FBQ0csSUFBRCxDQUFQLEVBQWU7QUFDWEgsUUFBQUEsR0FBRyxDQUFDRyxJQUFELENBQUgsQ0FBVUksTUFBVixDQUFpQlAsR0FBRyxDQUFDRyxJQUFELENBQUgsQ0FBVUssT0FBVixDQUFrQkosT0FBbEIsTUFBK0IsQ0FBaEQsRUFBbUQsQ0FBbkQ7QUFDSDtBQUNKLEtBUkU7QUFTSEssSUFBQUEsSUFURyxnQkFTR04sSUFUSCxFQVNrQjtBQUFBLHdDQUFOTyxJQUFNO0FBQU5BLFFBQUFBLElBQU07QUFBQTs7QUFDakIsT0FBQ1YsR0FBRyxDQUFDRyxJQUFELENBQUgsSUFBYSxFQUFkLEVBQWtCUSxLQUFsQixHQUEwQkMsR0FBMUIsQ0FBOEIsVUFBQ1IsT0FBRCxFQUFXO0FBQ3JDQSxRQUFBQSxPQUFPLE1BQVAsU0FBV00sSUFBWDtBQUNILE9BRkQ7QUFHSDtBQWJFLEdBQVA7QUFlSCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvbWl0dC5qcz84NTFkIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gbWl0dDtcbmZ1bmN0aW9uIG1pdHQoKSB7XG4gICAgY29uc3QgYWxsID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICByZXR1cm4ge1xuICAgICAgICBvbiAodHlwZSwgaGFuZGxlcikge1xuICAgICAgICAgICAgKGFsbFt0eXBlXSB8fCAoYWxsW3R5cGVdID0gW10pKS5wdXNoKGhhbmRsZXIpO1xuICAgICAgICB9LFxuICAgICAgICBvZmYgKHR5cGUsIGhhbmRsZXIpIHtcbiAgICAgICAgICAgIGlmIChhbGxbdHlwZV0pIHtcbiAgICAgICAgICAgICAgICBhbGxbdHlwZV0uc3BsaWNlKGFsbFt0eXBlXS5pbmRleE9mKGhhbmRsZXIpID4+PiAwLCAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZW1pdCAodHlwZSwgLi4uZXZ0cykge1xuICAgICAgICAgICAgKGFsbFt0eXBlXSB8fCBbXSkuc2xpY2UoKS5tYXAoKGhhbmRsZXIpPT57XG4gICAgICAgICAgICAgICAgaGFuZGxlciguLi5ldnRzKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bWl0dC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJtaXR0IiwiYWxsIiwiY3JlYXRlIiwib24iLCJ0eXBlIiwiaGFuZGxlciIsInB1c2giLCJvZmYiLCJzcGxpY2UiLCJpbmRleE9mIiwiZW1pdCIsImV2dHMiLCJzbGljZSIsIm1hcCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/mitt.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router-context.js": +/*!*************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router-context.js ***! + \*************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.RouterContext = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar RouterContext = _react[\"default\"].createContext(null);\n\nexports.RouterContext = RouterContext;\n\nif (true) {\n RouterContext.displayName = 'RouterContext';\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyLWNvbnRleHQuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxxQkFBQSxHQUF3QixLQUFLLENBQTdCOztBQUNBLElBQUlHLE1BQU0sR0FBR0Msc0JBQXNCLENBQUNDLG1CQUFPLENBQUMsNENBQUQsQ0FBUixDQUFuQzs7QUFDQSxTQUFTRCxzQkFBVCxDQUFnQ0UsR0FBaEMsRUFBcUM7QUFDakMsU0FBT0EsR0FBRyxJQUFJQSxHQUFHLENBQUNDLFVBQVgsR0FBd0JELEdBQXhCLEdBQThCO0FBQ2pDLGVBQVNBO0FBRHdCLEdBQXJDO0FBR0g7O0FBQ0QsSUFBTUosYUFBYSxHQUFHQyxNQUFNLFdBQU4sQ0FBZUssYUFBZixDQUE2QixJQUE3QixDQUF0Qjs7QUFDQVIscUJBQUEsR0FBd0JFLGFBQXhCOztBQUNBLElBQUksTUFBdUM7QUFDdkNBLEVBQUFBLGFBQWEsQ0FBQ08sV0FBZCxHQUE0QixlQUE1QjtBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXItY29udGV4dC5qcz81ZTkwIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5Sb3V0ZXJDb250ZXh0ID0gdm9pZCAwO1xudmFyIF9yZWFjdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJlYWN0XCIpKTtcbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbmNvbnN0IFJvdXRlckNvbnRleHQgPSBfcmVhY3QuZGVmYXVsdC5jcmVhdGVDb250ZXh0KG51bGwpO1xuZXhwb3J0cy5Sb3V0ZXJDb250ZXh0ID0gUm91dGVyQ29udGV4dDtcbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgUm91dGVyQ29udGV4dC5kaXNwbGF5TmFtZSA9ICdSb3V0ZXJDb250ZXh0Jztcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cm91dGVyLWNvbnRleHQuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiUm91dGVyQ29udGV4dCIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwib2JqIiwiX19lc01vZHVsZSIsImNyZWF0ZUNvbnRleHQiLCJkaXNwbGF5TmFtZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router-context.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/router.js": +/*!************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/router.js ***! + \************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _regeneratorRuntime = __webpack_require__(/*! ./node_modules/@babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n\nvar _defineProperty = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/defineProperty.js\");\n\nvar _asyncToGenerator = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/asyncToGenerator.js\");\n\nvar _classCallCheck = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\");\n\nvar _createClass = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\");\n\nvar _slicedToArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.getDomainLocale = getDomainLocale;\nexports.addLocale = addLocale;\nexports.delLocale = delLocale;\nexports.hasBasePath = hasBasePath;\nexports.addBasePath = addBasePath;\nexports.delBasePath = delBasePath;\nexports.isLocalURL = isLocalURL;\nexports.interpolateAs = interpolateAs;\nexports.resolveHref = resolveHref;\nexports[\"default\"] = void 0;\n\nvar _normalizeTrailingSlash = __webpack_require__(/*! ../../../client/normalize-trailing-slash */ \"./node_modules/next/dist/client/normalize-trailing-slash.js\");\n\nvar _routeLoader = __webpack_require__(/*! ../../../client/route-loader */ \"./node_modules/next/dist/client/route-loader.js\");\n\nvar _isError = _interopRequireDefault(__webpack_require__(/*! ../../../lib/is-error */ \"./node_modules/next/dist/lib/is-error.js\"));\n\nvar _denormalizePagePath = __webpack_require__(/*! ../../../server/denormalize-page-path */ \"./node_modules/next/dist/server/denormalize-page-path.js\");\n\nvar _normalizeLocalePath = __webpack_require__(/*! ../i18n/normalize-locale-path */ \"./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js\");\n\nvar _mitt = _interopRequireDefault(__webpack_require__(/*! ../mitt */ \"./node_modules/next/dist/shared/lib/mitt.js\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./node_modules/next/dist/shared/lib/utils.js\");\n\nvar _isDynamic = __webpack_require__(/*! ./utils/is-dynamic */ \"./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js\");\n\nvar _parseRelativeUrl = __webpack_require__(/*! ./utils/parse-relative-url */ \"./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js\");\n\nvar _querystring = __webpack_require__(/*! ./utils/querystring */ \"./node_modules/next/dist/shared/lib/router/utils/querystring.js\");\n\nvar _resolveRewrites = _interopRequireDefault(__webpack_require__(/*! ./utils/resolve-rewrites */ \"?506d\"));\n\nvar _routeMatcher = __webpack_require__(/*! ./utils/route-matcher */ \"./node_modules/next/dist/shared/lib/router/utils/route-matcher.js\");\n\nvar _routeRegex = __webpack_require__(/*! ./utils/route-regex */ \"./node_modules/next/dist/shared/lib/router/utils/route-regex.js\");\n\nvar _getMiddlewareRegex = __webpack_require__(/*! ./utils/get-middleware-regex */ \"./node_modules/next/dist/shared/lib/router/utils/get-middleware-regex.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar detectDomainLocale;\n\nif (false) {}\n\nvar basePath = false || '';\n\nfunction buildCancellationError() {\n return Object.assign(new Error('Route Cancelled'), {\n cancelled: true\n });\n}\n\nfunction addPathPrefix(path, prefix) {\n if (!path.startsWith('/') || !prefix) {\n return path;\n }\n\n var pathname = pathNoQueryHash(path);\n return (0, _normalizeTrailingSlash).normalizePathTrailingSlash(\"\".concat(prefix).concat(pathname)) + path.substr(pathname.length);\n}\n\nfunction getDomainLocale(path, locale, locales, domainLocales) {\n if (false) { var detectedDomain; } else {\n return false;\n }\n}\n\nfunction addLocale(path, locale, defaultLocale) {\n if (false) { var localeLower, pathLower, pathname; }\n\n return path;\n}\n\nfunction delLocale(path, locale) {\n if (false) { var localeLower, pathLower, pathname; }\n\n return path;\n}\n\nfunction pathNoQueryHash(path) {\n var queryIndex = path.indexOf('?');\n var hashIndex = path.indexOf('#');\n\n if (queryIndex > -1 || hashIndex > -1) {\n path = path.substring(0, queryIndex > -1 ? queryIndex : hashIndex);\n }\n\n return path;\n}\n\nfunction hasBasePath(path) {\n path = pathNoQueryHash(path);\n return path === basePath || path.startsWith(basePath + '/');\n}\n\nfunction addBasePath(path) {\n // we only add the basepath on relative urls\n return addPathPrefix(path, basePath);\n}\n\nfunction delBasePath(path) {\n path = path.slice(basePath.length);\n if (!path.startsWith('/')) path = \"/\".concat(path);\n return path;\n}\n\nfunction isLocalURL(url) {\n // prevent a hydration mismatch on href for url with anchor refs\n if (url.startsWith('/') || url.startsWith('#') || url.startsWith('?')) return true;\n\n try {\n // absolute urls can be local if they are on the same origin\n var locationOrigin = (0, _utils).getLocationOrigin();\n var resolved = new URL(url, locationOrigin);\n return resolved.origin === locationOrigin && hasBasePath(resolved.pathname);\n } catch (_) {\n return false;\n }\n}\n\nfunction interpolateAs(route, asPathname, query) {\n var interpolatedRoute = '';\n var dynamicRegex = (0, _routeRegex).getRouteRegex(route);\n var dynamicGroups = dynamicRegex.groups;\n var dynamicMatches = // Try to match the dynamic route against the asPath\n (asPathname !== route ? (0, _routeMatcher).getRouteMatcher(dynamicRegex)(asPathname) : '') || // Fall back to reading the values from the href\n // TODO: should this take priority; also need to change in the router.\n query;\n interpolatedRoute = route;\n var params = Object.keys(dynamicGroups);\n\n if (!params.every(function (param) {\n var value = dynamicMatches[param] || '';\n var _dynamicGroups$param = dynamicGroups[param],\n repeat = _dynamicGroups$param.repeat,\n optional = _dynamicGroups$param.optional; // support single-level catch-all\n // TODO: more robust handling for user-error (passing `/`)\n\n var replaced = \"[\".concat(repeat ? '...' : '').concat(param, \"]\");\n\n if (optional) {\n replaced = \"\".concat(!value ? '/' : '', \"[\").concat(replaced, \"]\");\n }\n\n if (repeat && !Array.isArray(value)) value = [value];\n return (optional || param in dynamicMatches) && (interpolatedRoute = interpolatedRoute.replace(replaced, repeat ? value.map( // these values should be fully encoded instead of just\n // path delimiter escaped since they are being inserted\n // into the URL and we expect URL encoded segments\n // when parsing dynamic route params\n function (segment) {\n return encodeURIComponent(segment);\n }).join('/') : encodeURIComponent(value)) || '/');\n })) {\n interpolatedRoute = '' // did not satisfy all requirements\n ; // n.b. We ignore this error because we handle warning for this case in\n // development in the `<Link>` component directly.\n }\n\n return {\n params: params,\n result: interpolatedRoute\n };\n}\n\nfunction omitParmsFromQuery(query, params) {\n var filteredQuery = {};\n Object.keys(query).forEach(function (key) {\n if (!params.includes(key)) {\n filteredQuery[key] = query[key];\n }\n });\n return filteredQuery;\n}\n\nfunction resolveHref(router, href, resolveAs) {\n // we use a dummy base url for relative urls\n var base;\n var urlAsString = typeof href === 'string' ? href : (0, _utils).formatWithValidation(href); // repeated slashes and backslashes in the URL are considered\n // invalid and will never match a Next.js page/file\n\n var urlProtoMatch = urlAsString.match(/^[a-zA-Z]{1,}:\\/\\//);\n var urlAsStringNoProto = urlProtoMatch ? urlAsString.substr(urlProtoMatch[0].length) : urlAsString;\n var urlParts = urlAsStringNoProto.split('?');\n\n if ((urlParts[0] || '').match(/(\\/\\/|\\\\)/)) {\n console.error(\"Invalid href passed to next/router: \".concat(urlAsString, \", repeated forward-slashes (//) or backslashes \\\\ are not valid in the href\"));\n var normalizedUrl = (0, _utils).normalizeRepeatedSlashes(urlAsStringNoProto);\n urlAsString = (urlProtoMatch ? urlProtoMatch[0] : '') + normalizedUrl;\n } // Return because it cannot be routed by the Next.js router\n\n\n if (!isLocalURL(urlAsString)) {\n return resolveAs ? [urlAsString] : urlAsString;\n }\n\n try {\n base = new URL(urlAsString.startsWith('#') ? router.asPath : router.pathname, 'http://n');\n } catch (_) {\n // fallback to / for invalid asPath values e.g. //\n base = new URL('/', 'http://n');\n }\n\n try {\n var finalUrl = new URL(urlAsString, base);\n finalUrl.pathname = (0, _normalizeTrailingSlash).normalizePathTrailingSlash(finalUrl.pathname);\n var interpolatedAs = '';\n\n if ((0, _isDynamic).isDynamicRoute(finalUrl.pathname) && finalUrl.searchParams && resolveAs) {\n var query = (0, _querystring).searchParamsToUrlQuery(finalUrl.searchParams);\n\n var _interpolateAs = interpolateAs(finalUrl.pathname, finalUrl.pathname, query),\n result = _interpolateAs.result,\n params = _interpolateAs.params;\n\n if (result) {\n interpolatedAs = (0, _utils).formatWithValidation({\n pathname: result,\n hash: finalUrl.hash,\n query: omitParmsFromQuery(query, params)\n });\n }\n } // if the origin didn't change, it means we received a relative href\n\n\n var resolvedHref = finalUrl.origin === base.origin ? finalUrl.href.slice(finalUrl.origin.length) : finalUrl.href;\n return resolveAs ? [resolvedHref, interpolatedAs || resolvedHref] : resolvedHref;\n } catch (_1) {\n return resolveAs ? [urlAsString] : urlAsString;\n }\n}\n\nfunction stripOrigin(url) {\n var origin = (0, _utils).getLocationOrigin();\n return url.startsWith(origin) ? url.substring(origin.length) : url;\n}\n\nfunction prepareUrlAs(router, url, as) {\n // If url and as provided as an object representation,\n // we'll format them into the string version here.\n var _resolveHref = resolveHref(router, url, true),\n _resolveHref2 = _slicedToArray(_resolveHref, 2),\n resolvedHref = _resolveHref2[0],\n resolvedAs = _resolveHref2[1];\n\n var origin = (0, _utils).getLocationOrigin();\n var hrefHadOrigin = resolvedHref.startsWith(origin);\n var asHadOrigin = resolvedAs && resolvedAs.startsWith(origin);\n resolvedHref = stripOrigin(resolvedHref);\n resolvedAs = resolvedAs ? stripOrigin(resolvedAs) : resolvedAs;\n var preparedUrl = hrefHadOrigin ? resolvedHref : addBasePath(resolvedHref);\n var preparedAs = as ? stripOrigin(resolveHref(router, as)) : resolvedAs || resolvedHref;\n return {\n url: preparedUrl,\n as: asHadOrigin ? preparedAs : addBasePath(preparedAs)\n };\n}\n\nfunction resolveDynamicRoute(pathname, pages) {\n var cleanPathname = (0, _normalizeTrailingSlash).removePathTrailingSlash((0, _denormalizePagePath).denormalizePagePath(pathname));\n\n if (cleanPathname === '/404' || cleanPathname === '/_error') {\n return pathname;\n } // handle resolving href for dynamic routes\n\n\n if (!pages.includes(cleanPathname)) {\n // eslint-disable-next-line array-callback-return\n pages.some(function (page) {\n if ((0, _isDynamic).isDynamicRoute(page) && (0, _routeRegex).getRouteRegex(page).re.test(cleanPathname)) {\n pathname = page;\n return true;\n }\n });\n }\n\n return (0, _normalizeTrailingSlash).removePathTrailingSlash(pathname);\n}\n\nvar manualScrollRestoration = false && 0;\nvar SSG_DATA_NOT_FOUND = Symbol('SSG_DATA_NOT_FOUND');\n\nfunction fetchRetry(url, attempts, opts) {\n return fetch(url, {\n // Cookies are required to be present for Next.js' SSG \"Preview Mode\".\n // Cookies may also be required for `getServerSideProps`.\n //\n // > `fetch` won’t send cookies, unless you set the credentials init\n // > option.\n // https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch\n //\n // > For maximum browser compatibility when it comes to sending &\n // > receiving cookies, always supply the `credentials: 'same-origin'`\n // > option instead of relying on the default.\n // https://github.com/github/fetch#caveats\n credentials: 'same-origin'\n }).then(function (res) {\n if (!res.ok) {\n if (attempts > 1 && res.status >= 500) {\n return fetchRetry(url, attempts - 1, opts);\n }\n\n if (res.status === 404) {\n return res.json().then(function (data) {\n if (data.notFound) {\n return {\n notFound: SSG_DATA_NOT_FOUND\n };\n }\n\n throw new Error(\"Failed to load static props\");\n });\n }\n\n throw new Error(\"Failed to load static props\");\n }\n\n return opts.text ? res.text() : res.json();\n });\n}\n\nfunction fetchNextData(dataHref, isServerRender, text, inflightCache, persistCache) {\n var _URL = new URL(dataHref, window.location.href),\n cacheKey = _URL.href;\n\n if (inflightCache[cacheKey] !== undefined) {\n return inflightCache[cacheKey];\n }\n\n return inflightCache[cacheKey] = fetchRetry(dataHref, isServerRender ? 3 : 1, {\n text: text\n })[\"catch\"](function (err) {\n // We should only trigger a server-side transition if this was caused\n // on a client-side transition. Otherwise, we'd get into an infinite\n // loop.\n if (!isServerRender) {\n (0, _routeLoader).markAssetError(err);\n }\n\n throw err;\n }).then(function (data) {\n if (!persistCache || true) {\n delete inflightCache[cacheKey];\n }\n\n return data;\n })[\"catch\"](function (err) {\n delete inflightCache[cacheKey];\n throw err;\n });\n}\n\nvar Router = /*#__PURE__*/function () {\n function Router(pathname, query, as, _ref) {\n var _this = this;\n\n var initialProps = _ref.initialProps,\n pageLoader = _ref.pageLoader,\n App = _ref.App,\n wrapApp = _ref.wrapApp,\n Component = _ref.Component,\n err = _ref.err,\n subscription = _ref.subscription,\n isFallback = _ref.isFallback,\n locale = _ref.locale,\n locales = _ref.locales,\n defaultLocale = _ref.defaultLocale,\n domainLocales = _ref.domainLocales,\n isPreview = _ref.isPreview;\n\n _classCallCheck(this, Router);\n\n // Static Data Cache\n this.sdc = {}; // In-flight Server Data Requests, for deduping\n\n this.sdr = {}; // In-flight middleware preflight requests\n\n this.sde = {};\n this._idx = 0;\n\n this.onPopState = function (e) {\n var state = e.state;\n\n if (!state) {\n // We get state as undefined for two reasons.\n // 1. With older safari (< 8) and older chrome (< 34)\n // 2. When the URL changed with #\n //\n // In the both cases, we don't need to proceed and change the route.\n // (as it's already changed)\n // But we can simply replace the state with the new changes.\n // Actually, for (1) we don't need to nothing. But it's hard to detect that event.\n // So, doing the following for (1) does no harm.\n var _pathname = _this.pathname,\n _query = _this.query;\n\n _this.changeState('replaceState', (0, _utils).formatWithValidation({\n pathname: addBasePath(_pathname),\n query: _query\n }), (0, _utils).getURL());\n\n return;\n }\n\n if (!state.__N) {\n return;\n }\n\n var forcedScroll;\n var url = state.url,\n as = state.as,\n options = state.options,\n idx = state.idx;\n\n if (false) { var v; }\n\n _this._idx = idx;\n\n var _parseRelativeUrl2 = (0, _parseRelativeUrl).parseRelativeUrl(url),\n pathname = _parseRelativeUrl2.pathname; // Make sure we don't re-render on initial load,\n // can be caused by navigating back from an external site\n\n\n if (_this.isSsr && as === _this.asPath && pathname === _this.pathname) {\n return;\n } // If the downstream application returns falsy, return.\n // They will then be responsible for handling the event.\n\n\n if (_this._bps && !_this._bps(state)) {\n return;\n }\n\n _this.change('replaceState', url, as, Object.assign({}, options, {\n shallow: options.shallow && _this._shallow,\n locale: options.locale || _this.defaultLocale\n }), forcedScroll);\n }; // represents the current component key\n\n\n this.route = (0, _normalizeTrailingSlash).removePathTrailingSlash(pathname); // set up the component cache (by route keys)\n\n this.components = {}; // We should not keep the cache, if there's an error\n // Otherwise, this cause issues when when going back and\n // come again to the errored page.\n\n if (pathname !== '/_error') {\n var ref;\n this.components[this.route] = {\n Component: Component,\n initial: true,\n props: initialProps,\n err: err,\n __N_SSG: initialProps && initialProps.__N_SSG,\n __N_SSP: initialProps && initialProps.__N_SSP,\n __N_RSC: !!((ref = Component) === null || ref === void 0 ? void 0 : ref.__next_rsc__)\n };\n }\n\n this.components['/_app'] = {\n Component: App,\n styleSheets: []\n }; // Backwards compat for Router.router.events\n // TODO: Should be remove the following major version as it was never documented\n\n this.events = Router.events;\n this.pageLoader = pageLoader;\n this.pathname = pathname;\n this.query = query; // if auto prerendered and dynamic route wait to update asPath\n // until after mount to prevent hydration mismatch\n\n var autoExportDynamic = (0, _isDynamic).isDynamicRoute(pathname) && self.__NEXT_DATA__.autoExport;\n\n this.asPath = autoExportDynamic ? pathname : as;\n this.basePath = basePath;\n this.sub = subscription;\n this.clc = null;\n this._wrapApp = wrapApp; // make sure to ignore extra popState in safari on navigating\n // back from external site\n\n this.isSsr = true;\n this.isFallback = isFallback;\n this.isReady = !!(self.__NEXT_DATA__.gssp || self.__NEXT_DATA__.gip || self.__NEXT_DATA__.appGip && !self.__NEXT_DATA__.gsp || !autoExportDynamic && !self.location.search && !false);\n this.isPreview = !!isPreview;\n this.isLocaleDomain = false;\n\n if (false) {}\n\n if (true) {\n // make sure \"as\" doesn't start with double slashes or else it can\n // throw an error as it's considered invalid\n if (as.substr(0, 2) !== '//') {\n // in order for `e.state` to work on the `onpopstate` event\n // we have to register the initial route upon initialization\n var options = {\n locale: locale\n };\n options._shouldResolveHref = as !== pathname;\n this.changeState('replaceState', (0, _utils).formatWithValidation({\n pathname: addBasePath(pathname),\n query: query\n }), (0, _utils).getURL(), options);\n }\n\n window.addEventListener('popstate', this.onPopState); // enable custom scroll restoration handling when available\n // otherwise fallback to browser's default handling\n\n if (false) {}\n }\n }\n\n _createClass(Router, [{\n key: \"reload\",\n value: function reload() {\n window.location.reload();\n }\n /**\n * Go back in history\n */\n\n }, {\n key: \"back\",\n value: function back() {\n window.history.back();\n }\n /**\n * Performs a `pushState` with arguments\n * @param url of the route\n * @param as masks `url` for the browser\n * @param options object you can define `shallow` and other options\n */\n\n }, {\n key: \"push\",\n value: function push(url, as) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (false) {}\n\n var _prepareUrlAs = prepareUrlAs(this, url, as);\n\n url = _prepareUrlAs.url;\n as = _prepareUrlAs.as;\n return this.change('pushState', url, as, options);\n }\n /**\n * Performs a `replaceState` with arguments\n * @param url of the route\n * @param as masks `url` for the browser\n * @param options object you can define `shallow` and other options\n */\n\n }, {\n key: \"replace\",\n value: function replace(url, as) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var _prepareUrlAs2 = prepareUrlAs(this, url, as);\n\n url = _prepareUrlAs2.url;\n as = _prepareUrlAs2.as;\n return this.change('replaceState', url, as, options);\n }\n }, {\n key: \"change\",\n value: function () {\n var _change = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(method, url, as, options, forcedScroll) {\n var shouldResolveHref, prevLocale, parsedAs, localePathResult, didNavigate, ref, detectedDomain, asNoBasePath, _options$shallow, shallow, routeProps, cleanedAs, localeChange, parsed, pathname, query, pages, rewrites, _yield$Promise$all, _yield$Promise$all2, resolvedAs, rewritesResult, effect, route, _parsedAs, asPathname, routeRegex, routeMatch, shouldInterpolate, interpolatedAs, missingParams, ref1, routeInfo, _routeInfo, error, props, __N_SSG, __N_SSP, destination, parsedHref, _prepareUrlAs3, newUrl, newAs, notFoundRoute, isValidShallowRoute, _scroll, shouldScroll, resetScroll;\n\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (isLocalURL(url)) {\n _context.next = 3;\n break;\n }\n\n window.location.href = url;\n return _context.abrupt(\"return\", false);\n\n case 3:\n shouldResolveHref = options._h || options._shouldResolveHref || pathNoQueryHash(url) === pathNoQueryHash(as); // for static pages with query params in the URL we delay\n // marking the router ready until after the query is updated\n\n if (options._h) {\n this.isReady = true;\n }\n\n prevLocale = this.locale;\n\n if (true) {\n _context.next = 18;\n break;\n }\n\n this.locale = options.locale === false ? this.defaultLocale : options.locale || this.locale;\n\n if (typeof options.locale === 'undefined') {\n options.locale = this.locale;\n }\n\n parsedAs = (0, _parseRelativeUrl).parseRelativeUrl(hasBasePath(as) ? delBasePath(as) : as);\n localePathResult = (0, _normalizeLocalePath).normalizeLocalePath(parsedAs.pathname, this.locales);\n\n if (localePathResult.detectedLocale) {\n this.locale = localePathResult.detectedLocale;\n parsedAs.pathname = addBasePath(parsedAs.pathname);\n as = (0, _utils).formatWithValidation(parsedAs);\n url = addBasePath((0, _normalizeLocalePath).normalizeLocalePath(hasBasePath(url) ? delBasePath(url) : url, this.locales).pathname);\n }\n\n didNavigate = false; // we need to wrap this in the env check again since regenerator runtime\n // moves this on its own due to the return\n\n if (false) {}\n\n detectedDomain = detectDomainLocale(this.domainLocales, undefined, this.locale); // we need to wrap this in the env check again since regenerator runtime\n // moves this on its own due to the return\n\n if (false) {}\n\n if (!didNavigate) {\n _context.next = 18;\n break;\n }\n\n return _context.abrupt(\"return\", new Promise(function () {}));\n\n case 18:\n if (!options._h) {\n this.isSsr = false;\n } // marking route changes as a navigation start entry\n\n\n if (_utils.ST) {\n performance.mark('routeChange');\n }\n\n _options$shallow = options.shallow, shallow = _options$shallow === void 0 ? false : _options$shallow;\n routeProps = {\n shallow: shallow\n };\n\n if (this._inFlightRoute) {\n this.abortComponentLoad(this._inFlightRoute, routeProps);\n }\n\n as = addBasePath(addLocale(hasBasePath(as) ? delBasePath(as) : as, options.locale, this.defaultLocale));\n cleanedAs = delLocale(hasBasePath(as) ? delBasePath(as) : as, this.locale);\n this._inFlightRoute = as;\n localeChange = prevLocale !== this.locale; // If the url change is only related to a hash change\n // We should not proceed. We should only change the state.\n // WARNING: `_h` is an internal option for handing Next.js client-side\n // hydration. Your app should _never_ use this property. It may change at\n // any time without notice.\n\n if (!(!options._h && this.onlyAHashChange(cleanedAs) && !localeChange)) {\n _context.next = 35;\n break;\n }\n\n this.asPath = cleanedAs;\n Router.events.emit('hashChangeStart', as, routeProps); // TODO: do we need the resolved href when only a hash change?\n\n this.changeState(method, url, as, options);\n this.scrollToHash(cleanedAs);\n this.notify(this.components[this.route], null);\n Router.events.emit('hashChangeComplete', as, routeProps);\n return _context.abrupt(\"return\", true);\n\n case 35:\n parsed = (0, _parseRelativeUrl).parseRelativeUrl(url);\n pathname = parsed.pathname, query = parsed.query; // The build manifest needs to be loaded before auto-static dynamic pages\n // get their query parameters to allow ensuring they can be parsed properly\n // when rewritten to\n\n _context.prev = 37;\n _context.next = 40;\n return Promise.all([this.pageLoader.getPageList(), (0, _routeLoader).getClientBuildManifest(), this.pageLoader.getMiddlewareList()]);\n\n case 40:\n _yield$Promise$all = _context.sent;\n _yield$Promise$all2 = _slicedToArray(_yield$Promise$all, 2);\n pages = _yield$Promise$all2[0];\n rewrites = _yield$Promise$all2[1].__rewrites;\n _context.next = 50;\n break;\n\n case 46:\n _context.prev = 46;\n _context.t0 = _context[\"catch\"](37);\n // If we fail to resolve the page list or client-build manifest, we must\n // do a server-side transition:\n window.location.href = as;\n return _context.abrupt(\"return\", false);\n\n case 50:\n // If asked to change the current URL we should reload the current page\n // (not location.reload() but reload getInitialProps and other Next.js stuffs)\n // We also need to set the method = replaceState always\n // as this should not go into the history (That's how browsers work)\n // We should compare the new asPath to the current asPath, not the url\n if (!this.urlIsNew(cleanedAs) && !localeChange) {\n method = 'replaceState';\n } // we need to resolve the as value using rewrites for dynamic SSG\n // pages to allow building the data URL correctly\n\n\n resolvedAs = as; // url and as should always be prefixed with basePath by this\n // point by either next/link or router.push/replace so strip the\n // basePath from the pathname to match the pages dir 1-to-1\n\n pathname = pathname ? (0, _normalizeTrailingSlash).removePathTrailingSlash(delBasePath(pathname)) : pathname;\n\n if (shouldResolveHref && pathname !== '/_error') {\n options._shouldResolveHref = true;\n\n if (false) {} else {\n parsed.pathname = resolveDynamicRoute(pathname, pages);\n\n if (parsed.pathname !== pathname) {\n pathname = parsed.pathname;\n parsed.pathname = addBasePath(pathname);\n url = (0, _utils).formatWithValidation(parsed);\n }\n }\n }\n\n if (isLocalURL(as)) {\n _context.next = 59;\n break;\n }\n\n if (false) {}\n\n throw new Error(\"Invalid href: \\\"\".concat(url, \"\\\" and as: \\\"\").concat(as, \"\\\", received relative href and external as\") + \"\\nSee more info: https://nextjs.org/docs/messages/invalid-relative-url-external-as\");\n\n case 57:\n window.location.href = as;\n return _context.abrupt(\"return\", false);\n\n case 59:\n resolvedAs = delLocale(delBasePath(resolvedAs), this.locale);\n _context.next = 62;\n return this._preflightRequest({\n as: as,\n cache: false,\n pages: pages,\n pathname: pathname,\n query: query\n });\n\n case 62:\n effect = _context.sent;\n\n if (!(effect.type === 'rewrite')) {\n _context.next = 71;\n break;\n }\n\n query = _objectSpread(_objectSpread({}, query), effect.parsedAs.query);\n resolvedAs = effect.asPath;\n pathname = effect.resolvedHref;\n parsed.pathname = effect.resolvedHref;\n url = (0, _utils).formatWithValidation(parsed);\n _context.next = 83;\n break;\n\n case 71:\n if (!(effect.type === 'redirect' && effect.newAs)) {\n _context.next = 75;\n break;\n }\n\n return _context.abrupt(\"return\", this.change(method, effect.newUrl, effect.newAs, options));\n\n case 75:\n if (!(effect.type === 'redirect' && effect.destination)) {\n _context.next = 80;\n break;\n }\n\n window.location.href = effect.destination;\n return _context.abrupt(\"return\", new Promise(function () {}));\n\n case 80:\n if (!(effect.type === 'refresh')) {\n _context.next = 83;\n break;\n }\n\n window.location.href = as;\n return _context.abrupt(\"return\", new Promise(function () {}));\n\n case 83:\n route = (0, _normalizeTrailingSlash).removePathTrailingSlash(pathname);\n\n if (!(0, _isDynamic).isDynamicRoute(route)) {\n _context.next = 99;\n break;\n }\n\n _parsedAs = (0, _parseRelativeUrl).parseRelativeUrl(resolvedAs);\n asPathname = _parsedAs.pathname;\n routeRegex = (0, _routeRegex).getRouteRegex(route);\n routeMatch = (0, _routeMatcher).getRouteMatcher(routeRegex)(asPathname);\n shouldInterpolate = route === asPathname;\n interpolatedAs = shouldInterpolate ? interpolateAs(route, asPathname, query) : {};\n\n if (!(!routeMatch || shouldInterpolate && !interpolatedAs.result)) {\n _context.next = 98;\n break;\n }\n\n missingParams = Object.keys(routeRegex.groups).filter(function (param) {\n return !query[param];\n });\n\n if (!(missingParams.length > 0)) {\n _context.next = 96;\n break;\n }\n\n if (true) {\n console.warn(\"\".concat(shouldInterpolate ? \"Interpolating href\" : \"Mismatching `as` and `href`\", \" failed to manually provide \") + \"the params: \".concat(missingParams.join(', '), \" in the `href`'s `query`\"));\n }\n\n throw new Error((shouldInterpolate ? \"The provided `href` (\".concat(url, \") value is missing query values (\").concat(missingParams.join(', '), \") to be interpolated properly. \") : \"The provided `as` value (\".concat(asPathname, \") is incompatible with the `href` value (\").concat(route, \"). \")) + \"Read more: https://nextjs.org/docs/messages/\".concat(shouldInterpolate ? 'href-interpolation-failed' : 'incompatible-href-as'));\n\n case 96:\n _context.next = 99;\n break;\n\n case 98:\n if (shouldInterpolate) {\n as = (0, _utils).formatWithValidation(Object.assign({}, _parsedAs, {\n pathname: interpolatedAs.result,\n query: omitParmsFromQuery(query, interpolatedAs.params)\n }));\n } else {\n // Merge params into `query`, overwriting any specified in search\n Object.assign(query, routeMatch);\n }\n\n case 99:\n Router.events.emit('routeChangeStart', as, routeProps);\n _context.prev = 100;\n _context.next = 103;\n return this.getRouteInfo(route, pathname, query, as, resolvedAs, routeProps);\n\n case 103:\n routeInfo = _context.sent;\n _routeInfo = routeInfo, error = _routeInfo.error, props = _routeInfo.props, __N_SSG = _routeInfo.__N_SSG, __N_SSP = _routeInfo.__N_SSP; // handle redirect on client-transition\n\n if (!((__N_SSG || __N_SSP) && props)) {\n _context.next = 129;\n break;\n }\n\n if (!(props.pageProps && props.pageProps.__N_REDIRECT)) {\n _context.next = 115;\n break;\n }\n\n destination = props.pageProps.__N_REDIRECT; // check if destination is internal (resolves to a page) and attempt\n // client-navigation if it is falling back to hard navigation if\n // it's not\n\n if (!(destination.startsWith('/') && props.pageProps.__N_REDIRECT_BASE_PATH !== false)) {\n _context.next = 113;\n break;\n }\n\n parsedHref = (0, _parseRelativeUrl).parseRelativeUrl(destination);\n parsedHref.pathname = resolveDynamicRoute(parsedHref.pathname, pages);\n _prepareUrlAs3 = prepareUrlAs(this, destination, destination), newUrl = _prepareUrlAs3.url, newAs = _prepareUrlAs3.as;\n return _context.abrupt(\"return\", this.change(method, newUrl, newAs, options));\n\n case 113:\n window.location.href = destination;\n return _context.abrupt(\"return\", new Promise(function () {}));\n\n case 115:\n this.isPreview = !!props.__N_PREVIEW; // handle SSG data 404\n\n if (!(props.notFound === SSG_DATA_NOT_FOUND)) {\n _context.next = 129;\n break;\n }\n\n _context.prev = 117;\n _context.next = 120;\n return this.fetchComponent('/404');\n\n case 120:\n notFoundRoute = '/404';\n _context.next = 126;\n break;\n\n case 123:\n _context.prev = 123;\n _context.t1 = _context[\"catch\"](117);\n notFoundRoute = '/_error';\n\n case 126:\n _context.next = 128;\n return this.getRouteInfo(notFoundRoute, notFoundRoute, query, as, resolvedAs, {\n shallow: false\n });\n\n case 128:\n routeInfo = _context.sent;\n\n case 129:\n Router.events.emit('beforeHistoryChange', as, routeProps);\n this.changeState(method, url, as, options);\n\n if (options._h && pathname === '/_error' && ((ref = self.__NEXT_DATA__.props) === null || ref === void 0 ? void 0 : (ref1 = ref.pageProps) === null || ref1 === void 0 ? void 0 : ref1.statusCode) === 500 && (props === null || props === void 0 ? void 0 : props.pageProps)) {\n // ensure statusCode is still correct for static 500 page\n // when updating query information\n props.pageProps.statusCode = 500;\n } // shallow routing is only allowed for same page URL changes.\n\n\n isValidShallowRoute = options.shallow && this.route === route;\n shouldScroll = (_scroll = options.scroll) !== null && _scroll !== void 0 ? _scroll : !isValidShallowRoute;\n resetScroll = shouldScroll ? {\n x: 0,\n y: 0\n } : null;\n _context.next = 137;\n return this.set(route, pathname, query, cleanedAs, routeInfo, forcedScroll !== null && forcedScroll !== void 0 ? forcedScroll : resetScroll)[\"catch\"](function (e) {\n if (e.cancelled) error = error || e;else throw e;\n });\n\n case 137:\n if (!error) {\n _context.next = 140;\n break;\n }\n\n Router.events.emit('routeChangeError', error, cleanedAs, routeProps);\n throw error;\n\n case 140:\n if (false) {}\n\n Router.events.emit('routeChangeComplete', as, routeProps);\n return _context.abrupt(\"return\", true);\n\n case 145:\n _context.prev = 145;\n _context.t2 = _context[\"catch\"](100);\n\n if (!((0, _isError)[\"default\"](_context.t2) && _context.t2.cancelled)) {\n _context.next = 149;\n break;\n }\n\n return _context.abrupt(\"return\", false);\n\n case 149:\n throw _context.t2;\n\n case 150:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this, [[37, 46], [100, 145], [117, 123]]);\n }));\n\n function change(_x, _x2, _x3, _x4, _x5) {\n return _change.apply(this, arguments);\n }\n\n return change;\n }()\n }, {\n key: \"changeState\",\n value: function changeState(method, url, as) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n if (true) {\n if (typeof window.history === 'undefined') {\n console.error(\"Warning: window.history is not available.\");\n return;\n }\n\n if (typeof window.history[method] === 'undefined') {\n console.error(\"Warning: window.history.\".concat(method, \" is not available\"));\n return;\n }\n }\n\n if (method !== 'pushState' || (0, _utils).getURL() !== as) {\n this._shallow = options.shallow;\n window.history[method]({\n url: url,\n as: as,\n options: options,\n __N: true,\n idx: this._idx = method !== 'pushState' ? this._idx : this._idx + 1\n }, // Most browsers currently ignores this parameter, although they may use it in the future.\n // Passing the empty string here should be safe against future changes to the method.\n // https://developer.mozilla.org/en-US/docs/Web/API/History/replaceState\n '', as);\n }\n }\n }, {\n key: \"handleRouteInfoError\",\n value: function () {\n var _handleRouteInfoError = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(err, pathname, query, as, routeProps, loadErrorFail) {\n var Component, styleSheets, props, _yield$this$fetchComp, routeInfo;\n\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (!err.cancelled) {\n _context2.next = 2;\n break;\n }\n\n throw err;\n\n case 2:\n if (!((0, _routeLoader).isAssetError(err) || loadErrorFail)) {\n _context2.next = 6;\n break;\n }\n\n Router.events.emit('routeChangeError', err, as, routeProps); // If we can't load the page it could be one of following reasons\n // 1. Page doesn't exists\n // 2. Page does exist in a different zone\n // 3. Internal error while loading the page\n // So, doing a hard reload is the proper way to deal with this.\n\n window.location.href = as; // Changing the URL doesn't block executing the current code path.\n // So let's throw a cancellation error stop the routing logic.\n\n throw buildCancellationError();\n\n case 6:\n _context2.prev = 6;\n\n if (!(typeof Component === 'undefined' || typeof styleSheets === 'undefined')) {\n _context2.next = 13;\n break;\n }\n\n _context2.next = 10;\n return this.fetchComponent('/_error');\n\n case 10:\n _yield$this$fetchComp = _context2.sent;\n Component = _yield$this$fetchComp.page;\n styleSheets = _yield$this$fetchComp.styleSheets;\n\n case 13:\n routeInfo = {\n props: props,\n Component: Component,\n styleSheets: styleSheets,\n err: err,\n error: err\n };\n\n if (routeInfo.props) {\n _context2.next = 25;\n break;\n }\n\n _context2.prev = 15;\n _context2.next = 18;\n return this.getInitialProps(Component, {\n err: err,\n pathname: pathname,\n query: query\n });\n\n case 18:\n routeInfo.props = _context2.sent;\n _context2.next = 25;\n break;\n\n case 21:\n _context2.prev = 21;\n _context2.t0 = _context2[\"catch\"](15);\n console.error('Error in error page `getInitialProps`: ', _context2.t0);\n routeInfo.props = {};\n\n case 25:\n return _context2.abrupt(\"return\", routeInfo);\n\n case 28:\n _context2.prev = 28;\n _context2.t1 = _context2[\"catch\"](6);\n return _context2.abrupt(\"return\", this.handleRouteInfoError((0, _isError)[\"default\"](_context2.t1) ? _context2.t1 : new Error(_context2.t1 + ''), pathname, query, as, routeProps, true));\n\n case 31:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this, [[6, 28], [15, 21]]);\n }));\n\n function handleRouteInfoError(_x6, _x7, _x8, _x9, _x10, _x11) {\n return _handleRouteInfoError.apply(this, arguments);\n }\n\n return handleRouteInfoError;\n }()\n }, {\n key: \"getRouteInfo\",\n value: function () {\n var _getRouteInfo = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(route, pathname, query, as, resolvedAs, routeProps) {\n var _this2 = this;\n\n var existingRouteInfo, cachedRouteInfo, routeInfo, Component, __N_SSG, __N_SSP, __N_RSC, _require, isValidElementType, dataHref, props, _yield$this$_getData, fresh, data;\n\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _context3.prev = 0;\n existingRouteInfo = this.components[route];\n\n if (!(routeProps.shallow && existingRouteInfo && this.route === route)) {\n _context3.next = 4;\n break;\n }\n\n return _context3.abrupt(\"return\", existingRouteInfo);\n\n case 4:\n cachedRouteInfo = undefined; // can only use non-initial route info\n // cannot reuse route info in development since it can change after HMR\n\n if (false) {}\n\n _context3.t0 = cachedRouteInfo;\n\n if (_context3.t0) {\n _context3.next = 11;\n break;\n }\n\n _context3.next = 10;\n return this.fetchComponent(route).then(function (res) {\n return {\n Component: res.page,\n styleSheets: res.styleSheets,\n __N_SSG: res.mod.__N_SSG,\n __N_SSP: res.mod.__N_SSP,\n __N_RSC: !!res.page.__next_rsc__\n };\n });\n\n case 10:\n _context3.t0 = _context3.sent;\n\n case 11:\n routeInfo = _context3.t0;\n Component = routeInfo.Component, __N_SSG = routeInfo.__N_SSG, __N_SSP = routeInfo.__N_SSP, __N_RSC = routeInfo.__N_RSC;\n\n if (false) {}\n\n _require = __webpack_require__(/*! react-is */ \"./node_modules/react-is/index.js\"), isValidElementType = _require.isValidElementType;\n\n if (isValidElementType(Component)) {\n _context3.next = 17;\n break;\n }\n\n throw new Error(\"The default export is not a React Component in page: \\\"\".concat(pathname, \"\\\"\"));\n\n case 17:\n if (__N_SSG || __N_SSP || __N_RSC) {\n dataHref = this.pageLoader.getDataHref({\n href: (0, _utils).formatWithValidation({\n pathname: pathname,\n query: query\n }),\n asPath: resolvedAs,\n ssg: __N_SSG,\n rsc: __N_RSC,\n locale: this.locale\n });\n }\n\n _context3.next = 20;\n return this._getData(function () {\n return __N_SSG || __N_SSP ? fetchNextData(dataHref, _this2.isSsr, false, __N_SSG ? _this2.sdc : _this2.sdr, !!__N_SSG && !_this2.isPreview) : _this2.getInitialProps(Component, // we provide AppTree later so this needs to be `any`\n {\n pathname: pathname,\n query: query,\n asPath: as,\n locale: _this2.locale,\n locales: _this2.locales,\n defaultLocale: _this2.defaultLocale\n });\n });\n\n case 20:\n props = _context3.sent;\n\n if (!__N_RSC) {\n _context3.next = 28;\n break;\n }\n\n _context3.next = 24;\n return this._getData(function () {\n return _this2._getFlightData(dataHref);\n });\n\n case 24:\n _yield$this$_getData = _context3.sent;\n fresh = _yield$this$_getData.fresh;\n data = _yield$this$_getData.data;\n props.pageProps = Object.assign(props.pageProps, {\n __flight_serialized__: data,\n __flight_fresh__: fresh\n });\n\n case 28:\n routeInfo.props = props;\n this.components[route] = routeInfo;\n return _context3.abrupt(\"return\", routeInfo);\n\n case 33:\n _context3.prev = 33;\n _context3.t1 = _context3[\"catch\"](0);\n return _context3.abrupt(\"return\", this.handleRouteInfoError((0, _isError)[\"default\"](_context3.t1) ? _context3.t1 : new Error(_context3.t1 + ''), pathname, query, as, routeProps));\n\n case 36:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, this, [[0, 33]]);\n }));\n\n function getRouteInfo(_x12, _x13, _x14, _x15, _x16, _x17) {\n return _getRouteInfo.apply(this, arguments);\n }\n\n return getRouteInfo;\n }()\n }, {\n key: \"set\",\n value: function set(route, pathname, query, as, data, resetScroll) {\n this.isFallback = false;\n this.route = route;\n this.pathname = pathname;\n this.query = query;\n this.asPath = as;\n return this.notify(data, resetScroll);\n }\n /**\n * Callback to execute before replacing router state\n * @param cb callback to be executed\n */\n\n }, {\n key: \"beforePopState\",\n value: function beforePopState(cb) {\n this._bps = cb;\n }\n }, {\n key: \"onlyAHashChange\",\n value: function onlyAHashChange(as) {\n if (!this.asPath) return false;\n\n var _this$asPath$split = this.asPath.split('#'),\n _this$asPath$split2 = _slicedToArray(_this$asPath$split, 2),\n oldUrlNoHash = _this$asPath$split2[0],\n oldHash = _this$asPath$split2[1];\n\n var _as$split = as.split('#'),\n _as$split2 = _slicedToArray(_as$split, 2),\n newUrlNoHash = _as$split2[0],\n newHash = _as$split2[1]; // Makes sure we scroll to the provided hash if the url/hash are the same\n\n\n if (newHash && oldUrlNoHash === newUrlNoHash && oldHash === newHash) {\n return true;\n } // If the urls are change, there's more than a hash change\n\n\n if (oldUrlNoHash !== newUrlNoHash) {\n return false;\n } // If the hash has changed, then it's a hash only change.\n // This check is necessary to handle both the enter and\n // leave hash === '' cases. The identity case falls through\n // and is treated as a next reload.\n\n\n return oldHash !== newHash;\n }\n }, {\n key: \"scrollToHash\",\n value: function scrollToHash(as) {\n var _as$split3 = as.split('#'),\n _as$split4 = _slicedToArray(_as$split3, 2),\n hash = _as$split4[1]; // Scroll to top if the hash is just `#` with no value or `#top`\n // To mirror browsers\n\n\n if (hash === '' || hash === 'top') {\n window.scrollTo(0, 0);\n return;\n } // First we check if the element by id is found\n\n\n var idEl = document.getElementById(hash);\n\n if (idEl) {\n idEl.scrollIntoView();\n return;\n } // If there's no element with the id, we check the `name` property\n // To mirror browsers\n\n\n var nameEl = document.getElementsByName(hash)[0];\n\n if (nameEl) {\n nameEl.scrollIntoView();\n }\n }\n }, {\n key: \"urlIsNew\",\n value: function urlIsNew(asPath) {\n return this.asPath !== asPath;\n }\n /**\n * Prefetch page code, you may wait for the data during page rendering.\n * This feature only works in production!\n * @param url the href of prefetched page\n * @param asPath the as path of the prefetched page\n */\n\n }, {\n key: \"prefetch\",\n value: function () {\n var _prefetch = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(url) {\n var _this3 = this;\n\n var asPath,\n options,\n parsed,\n pathname,\n query,\n parsedAs,\n localePathResult,\n pages,\n resolvedAs,\n rewrites,\n _yield$getClientBuild,\n rewritesResult,\n effects,\n route,\n _args4 = arguments;\n\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n asPath = _args4.length > 1 && _args4[1] !== undefined ? _args4[1] : url;\n options = _args4.length > 2 && _args4[2] !== undefined ? _args4[2] : {};\n parsed = (0, _parseRelativeUrl).parseRelativeUrl(url);\n pathname = parsed.pathname, query = parsed.query;\n\n if (false) {}\n\n _context4.next = 7;\n return this.pageLoader.getPageList();\n\n case 7:\n pages = _context4.sent;\n resolvedAs = asPath;\n\n if (true) {\n _context4.next = 19;\n break;\n }\n\n _context4.next = 12;\n return (0, _routeLoader).getClientBuildManifest();\n\n case 12:\n _yield$getClientBuild = _context4.sent;\n rewrites = _yield$getClientBuild.__rewrites;\n rewritesResult = (0, _resolveRewrites)[\"default\"](addBasePath(addLocale(asPath, this.locale)), pages, rewrites, parsed.query, function (p) {\n return resolveDynamicRoute(p, pages);\n }, this.locales);\n resolvedAs = delLocale(delBasePath(rewritesResult.asPath), this.locale);\n\n if (rewritesResult.matchedPage && rewritesResult.resolvedHref) {\n // if this directly matches a page we need to update the href to\n // allow the correct page chunk to be loaded\n pathname = rewritesResult.resolvedHref;\n parsed.pathname = pathname;\n url = (0, _utils).formatWithValidation(parsed);\n }\n\n _context4.next = 21;\n break;\n\n case 19:\n parsed.pathname = resolveDynamicRoute(parsed.pathname, pages);\n\n if (parsed.pathname !== pathname) {\n pathname = parsed.pathname;\n parsed.pathname = pathname;\n url = (0, _utils).formatWithValidation(parsed);\n }\n\n case 21:\n if (false) {}\n\n return _context4.abrupt(\"return\");\n\n case 23:\n _context4.next = 25;\n return this._preflightRequest({\n as: addBasePath(asPath),\n cache: true,\n pages: pages,\n pathname: pathname,\n query: query\n });\n\n case 25:\n effects = _context4.sent;\n\n if (effects.type === 'rewrite') {\n parsed.pathname = effects.resolvedHref;\n pathname = effects.resolvedHref;\n query = _objectSpread(_objectSpread({}, query), effects.parsedAs.query);\n resolvedAs = effects.asPath;\n url = (0, _utils).formatWithValidation(parsed);\n }\n\n route = (0, _normalizeTrailingSlash).removePathTrailingSlash(pathname);\n _context4.next = 30;\n return Promise.all([this.pageLoader._isSsg(route).then(function (isSsg) {\n return isSsg ? fetchNextData(_this3.pageLoader.getDataHref({\n href: url,\n asPath: resolvedAs,\n ssg: true,\n locale: typeof options.locale !== 'undefined' ? options.locale : _this3.locale\n }), false, false, _this3.sdc, true) : false;\n }), this.pageLoader[options.priority ? 'loadPage' : 'prefetch'](route)]);\n\n case 30:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n\n function prefetch(_x18) {\n return _prefetch.apply(this, arguments);\n }\n\n return prefetch;\n }()\n }, {\n key: \"fetchComponent\",\n value: function () {\n var _fetchComponent = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(route) {\n var _this4 = this;\n\n var cancelled, cancel, handleCancelled, componentResult;\n return _regeneratorRuntime.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n cancelled = false;\n\n cancel = this.clc = function () {\n cancelled = true;\n };\n\n handleCancelled = function handleCancelled() {\n if (cancelled) {\n var error = new Error(\"Abort fetching component for route: \\\"\".concat(route, \"\\\"\"));\n error.cancelled = true;\n throw error;\n }\n\n if (cancel === _this4.clc) {\n _this4.clc = null;\n }\n };\n\n _context5.prev = 3;\n _context5.next = 6;\n return this.pageLoader.loadPage(route);\n\n case 6:\n componentResult = _context5.sent;\n handleCancelled();\n return _context5.abrupt(\"return\", componentResult);\n\n case 11:\n _context5.prev = 11;\n _context5.t0 = _context5[\"catch\"](3);\n handleCancelled();\n throw _context5.t0;\n\n case 15:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5, this, [[3, 11]]);\n }));\n\n function fetchComponent(_x19) {\n return _fetchComponent.apply(this, arguments);\n }\n\n return fetchComponent;\n }()\n }, {\n key: \"_getData\",\n value: function _getData(fn) {\n var _this5 = this;\n\n var cancelled = false;\n\n var cancel = function cancel() {\n cancelled = true;\n };\n\n this.clc = cancel;\n return fn().then(function (data) {\n if (cancel === _this5.clc) {\n _this5.clc = null;\n }\n\n if (cancelled) {\n var err = new Error('Loading initial props cancelled');\n err.cancelled = true;\n throw err;\n }\n\n return data;\n });\n }\n }, {\n key: \"_getFlightData\",\n value: function _getFlightData(dataHref) {\n var _this6 = this;\n\n var _URL2 = new URL(dataHref, window.location.href),\n cacheKey = _URL2.href;\n\n if (!this.isPreview && this.sdc[cacheKey]) {\n return Promise.resolve({\n fresh: false,\n data: this.sdc[cacheKey]\n });\n }\n\n return fetchNextData(dataHref, true, true, this.sdc, false).then(function (serialized) {\n _this6.sdc[cacheKey] = serialized;\n return {\n fresh: true,\n data: serialized\n };\n });\n }\n }, {\n key: \"_preflightRequest\",\n value: function () {\n var _preflightRequest2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6(options) {\n var ref, cleanedAs, fns, requiresPreflight, preflight, parsed, fsPathname, matchedPage, resolvedHref, cleanRedirect, _prepareUrlAs4, newUrl, newAs;\n\n return _regeneratorRuntime.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n cleanedAs = delLocale(hasBasePath(options.as) ? delBasePath(options.as) : options.as, this.locale);\n _context6.next = 3;\n return this.pageLoader.getMiddlewareList();\n\n case 3:\n fns = _context6.sent;\n requiresPreflight = fns.some(function (_ref2) {\n var _ref3 = _slicedToArray(_ref2, 2),\n middleware = _ref3[0],\n isSSR = _ref3[1];\n\n return (0, _routeMatcher).getRouteMatcher((0, _getMiddlewareRegex).getMiddlewareRegex(middleware, !isSSR))(cleanedAs);\n });\n\n if (requiresPreflight) {\n _context6.next = 7;\n break;\n }\n\n return _context6.abrupt(\"return\", {\n type: 'next'\n });\n\n case 7:\n _context6.next = 9;\n return this._getPreflightData({\n preflightHref: options.as,\n shouldCache: options.cache\n });\n\n case 9:\n preflight = _context6.sent;\n\n if (!((ref = preflight.rewrite) === null || ref === void 0 ? void 0 : ref.startsWith('/'))) {\n _context6.next = 15;\n break;\n }\n\n parsed = (0, _parseRelativeUrl).parseRelativeUrl((0, _normalizeLocalePath).normalizeLocalePath(hasBasePath(preflight.rewrite) ? delBasePath(preflight.rewrite) : preflight.rewrite, this.locales).pathname);\n fsPathname = (0, _normalizeTrailingSlash).removePathTrailingSlash(parsed.pathname);\n\n if (options.pages.includes(fsPathname)) {\n matchedPage = true;\n resolvedHref = fsPathname;\n } else {\n resolvedHref = resolveDynamicRoute(fsPathname, options.pages);\n\n if (resolvedHref !== parsed.pathname && options.pages.includes(resolvedHref)) {\n matchedPage = true;\n }\n }\n\n return _context6.abrupt(\"return\", {\n type: 'rewrite',\n asPath: parsed.pathname,\n parsedAs: parsed,\n matchedPage: matchedPage,\n resolvedHref: resolvedHref\n });\n\n case 15:\n if (!preflight.redirect) {\n _context6.next = 21;\n break;\n }\n\n if (!preflight.redirect.startsWith('/')) {\n _context6.next = 20;\n break;\n }\n\n cleanRedirect = (0, _normalizeTrailingSlash).removePathTrailingSlash((0, _normalizeLocalePath).normalizeLocalePath(hasBasePath(preflight.redirect) ? delBasePath(preflight.redirect) : preflight.redirect, this.locales).pathname);\n _prepareUrlAs4 = prepareUrlAs(this, cleanRedirect, cleanRedirect), newUrl = _prepareUrlAs4.url, newAs = _prepareUrlAs4.as;\n return _context6.abrupt(\"return\", {\n type: 'redirect',\n newUrl: newUrl,\n newAs: newAs\n });\n\n case 20:\n return _context6.abrupt(\"return\", {\n type: 'redirect',\n destination: preflight.redirect\n });\n\n case 21:\n if (!(preflight.refresh && !preflight.ssr)) {\n _context6.next = 23;\n break;\n }\n\n return _context6.abrupt(\"return\", {\n type: 'refresh'\n });\n\n case 23:\n return _context6.abrupt(\"return\", {\n type: 'next'\n });\n\n case 24:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6, this);\n }));\n\n function _preflightRequest(_x20) {\n return _preflightRequest2.apply(this, arguments);\n }\n\n return _preflightRequest;\n }()\n }, {\n key: \"_getPreflightData\",\n value: function _getPreflightData(params) {\n var _this7 = this;\n\n var preflightHref = params.preflightHref,\n _params$shouldCache = params.shouldCache,\n shouldCache = _params$shouldCache === void 0 ? false : _params$shouldCache;\n\n var _URL3 = new URL(preflightHref, window.location.href),\n cacheKey = _URL3.href;\n\n if (false) {}\n\n return fetch(preflightHref, {\n method: 'HEAD',\n credentials: 'same-origin',\n headers: {\n 'x-middleware-preflight': '1'\n }\n }).then(function (res) {\n if (!res.ok) {\n throw new Error(\"Failed to preflight request\");\n }\n\n return {\n redirect: res.headers.get('Location'),\n refresh: res.headers.has('x-middleware-refresh'),\n rewrite: res.headers.get('x-middleware-rewrite'),\n ssr: !!res.headers.get('x-middleware-ssr')\n };\n }).then(function (data) {\n if (shouldCache) {\n _this7.sde[cacheKey] = data;\n }\n\n return data;\n })[\"catch\"](function (err) {\n delete _this7.sde[cacheKey];\n throw err;\n });\n }\n }, {\n key: \"getInitialProps\",\n value: function getInitialProps(Component, ctx) {\n var App = this.components['/_app'].Component;\n\n var AppTree = this._wrapApp(App);\n\n ctx.AppTree = AppTree;\n return (0, _utils).loadGetInitialProps(App, {\n AppTree: AppTree,\n Component: Component,\n router: this,\n ctx: ctx\n });\n }\n }, {\n key: \"abortComponentLoad\",\n value: function abortComponentLoad(as, routeProps) {\n if (this.clc) {\n Router.events.emit('routeChangeError', buildCancellationError(), as, routeProps);\n this.clc();\n this.clc = null;\n }\n }\n }, {\n key: \"notify\",\n value: function notify(data, resetScroll) {\n return this.sub(data, this.components['/_app'].Component, resetScroll);\n }\n }]);\n\n return Router;\n}();\n\nRouter.events = (0, _mitt)[\"default\"]();\nexports[\"default\"] = Router;\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3JvdXRlci5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCx1QkFBQSxHQUEwQkUsZUFBMUI7QUFDQUYsaUJBQUEsR0FBb0JHLFNBQXBCO0FBQ0FILGlCQUFBLEdBQW9CSSxTQUFwQjtBQUNBSixtQkFBQSxHQUFzQkssV0FBdEI7QUFDQUwsbUJBQUEsR0FBc0JNLFdBQXRCO0FBQ0FOLG1CQUFBLEdBQXNCTyxXQUF0QjtBQUNBUCxrQkFBQSxHQUFxQlEsVUFBckI7QUFDQVIscUJBQUEsR0FBd0JTLGFBQXhCO0FBQ0FULG1CQUFBLEdBQXNCVSxXQUF0QjtBQUNBVixrQkFBQSxHQUFrQixLQUFLLENBQXZCOztBQUNBLElBQUlXLHVCQUF1QixHQUFHQyxtQkFBTyxDQUFDLDZHQUFELENBQXJDOztBQUNBLElBQUlDLFlBQVksR0FBR0QsbUJBQU8sQ0FBQyxxRkFBRCxDQUExQjs7QUFDQSxJQUFJRSxRQUFRLEdBQUdDLHNCQUFzQixDQUFDSCxtQkFBTyxDQUFDLHVFQUFELENBQVIsQ0FBckM7O0FBQ0EsSUFBSUksb0JBQW9CLEdBQUdKLG1CQUFPLENBQUMsdUdBQUQsQ0FBbEM7O0FBQ0EsSUFBSUssb0JBQW9CLEdBQUdMLG1CQUFPLENBQUMsd0dBQUQsQ0FBbEM7O0FBQ0EsSUFBSU0sS0FBSyxHQUFHSCxzQkFBc0IsQ0FBQ0gsbUJBQU8sQ0FBQyw0REFBRCxDQUFSLENBQWxDOztBQUNBLElBQUlPLE1BQU0sR0FBR1AsbUJBQU8sQ0FBQyw4REFBRCxDQUFwQjs7QUFDQSxJQUFJUSxVQUFVLEdBQUdSLG1CQUFPLENBQUMsMEZBQUQsQ0FBeEI7O0FBQ0EsSUFBSVMsaUJBQWlCLEdBQUdULG1CQUFPLENBQUMsMEdBQUQsQ0FBL0I7O0FBQ0EsSUFBSVUsWUFBWSxHQUFHVixtQkFB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QUs1QixHQUFULEVBQWM7QUFDVm5ELFFBQUFBLE1BQU0sQ0FBQzhDLE1BQVAsQ0FBY3VDLElBQWQsQ0FBbUIsa0JBQW5CLEVBQXVDbk8sc0JBQXNCLEVBQTdELEVBQWlFOEYsRUFBakUsRUFBcUUrSCxVQUFyRTtBQUNBLGFBQUs1QixHQUFMO0FBQ0EsYUFBS0EsR0FBTCxHQUFXLElBQVg7QUFDSDtBQUNKOzs7V0FDRCxnQkFBTy9ELElBQVAsRUFBYTJJLFdBQWIsRUFBMEI7QUFDdEIsYUFBTyxLQUFLN0UsR0FBTCxDQUFTOUQsSUFBVCxFQUFlLEtBQUtpRCxVQUFMLENBQWdCLE9BQWhCLEVBQXlCaEMsU0FBeEMsRUFBbUQwSCxXQUFuRCxDQUFQO0FBQ0g7Ozs7OztBQUVML0gsTUFBTSxDQUFDOEMsTUFBUCxHQUFnQixDQUFDLEdBQUc3TSxLQUFKLGNBQWhCO0FBQ0FsQixrQkFBQSxHQUFrQmlMLE1BQWxCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvcm91dGVyLmpzPzg2ODQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmdldERvbWFpbkxvY2FsZSA9IGdldERvbWFpbkxvY2FsZTtcbmV4cG9ydHMuYWRkTG9jYWxlID0gYWRkTG9jYWxlO1xuZXhwb3J0cy5kZWxMb2NhbGUgPSBkZWxMb2NhbGU7XG5leHBvcnRzLmhhc0Jhc2VQYXRoID0gaGFzQmFzZVBhdGg7XG5leHBvcnRzLmFkZEJhc2VQYXRoID0gYWRkQmFzZVBhdGg7XG5leHBvcnRzLmRlbEJhc2VQYXRoID0gZGVsQmFzZVBhdGg7XG5leHBvcnRzLmlzTG9jYWxVUkwgPSBpc0xvY2FsVVJMO1xuZXhwb3J0cy5pbnRlcnBvbGF0ZUFzID0gaW50ZXJwb2xhdGVBcztcbmV4cG9ydHMucmVzb2x2ZUhyZWYgPSByZXNvbHZlSHJlZjtcbmV4cG9ydHMuZGVmYXVsdCA9IHZvaWQgMDtcbnZhciBfbm9ybWFsaXplVHJhaWxpbmdTbGFzaCA9IHJlcXVpcmUoXCIuLi8uLi8uLi9jbGllbnQvbm9ybWFsaXplLXRyYWlsaW5nLXNsYXNoXCIpO1xudmFyIF9yb3V0ZUxvYWRlciA9IHJlcXVpcmUoXCIuLi8uLi8uLi9jbGllbnQvcm91dGUtbG9hZGVyXCIpO1xudmFyIF9pc0Vycm9yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vLi4vLi4vbGliL2lzLWVycm9yXCIpKTtcbnZhciBfZGVub3JtYWxpemVQYWdlUGF0aCA9IHJlcXVpcmUoXCIuLi8uLi8uLi9zZXJ2ZXIvZGVub3JtYWxpemUtcGFnZS1wYXRoXCIpO1xudmFyIF9ub3JtYWxpemVMb2NhbGVQYXRoID0gcmVxdWlyZShcIi4uL2kxOG4vbm9ybWFsaXplLWxvY2FsZS1wYXRoXCIpO1xudmFyIF9taXR0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vbWl0dFwiKSk7XG52YXIgX3V0aWxzID0gcmVxdWlyZShcIi4uL3V0aWxzXCIpO1xudmFyIF9pc0R5bmFtaWMgPSByZXF1aXJlKFwiLi91dGlscy9pcy1keW5hbWljXCIpO1xudmFyIF9wYXJzZVJlbGF0aXZlVXJsID0gcmVxdWlyZShcIi4vdXRpbHMvcGFyc2UtcmVsYXRpdmUtdXJsXCIpO1xudmFyIF9xdWVyeXN0cmluZyA9IHJlcXVpcmUoXCIuL3V0aWxzL3F1ZXJ5c3RyaW5nXCIpO1xudmFyIF9yZXNvbHZlUmV3cml0ZXMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL3V0aWxzL3Jlc29sdmUtcmV3cml0ZXNcIikpO1xudmFyIF9yb3V0ZU1hdGNoZXIgPSByZXF1aXJlKFwiLi91dGlscy9yb3V0ZS1tYXRjaGVyXCIpO1xudmFyIF9yb3V0ZVJlZ2V4ID0gcmVxdWlyZShcIi4vdXRpbHMvcm91dGUtcmVnZXhcIik7XG52YXIgX2dldE1pZGRsZXdhcmVSZWdleCA9IHJlcXVpcmUoXCIuL3V0aWxzL2dldC1taWRkbGV3YXJlLXJlZ2V4XCIpO1xuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxubGV0IGRldGVjdERvbWFpbkxvY2FsZTtcbmlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgZGV0ZWN0RG9tYWluTG9jYWxlID0gcmVxdWlyZSgnLi4vaTE4bi9kZXRlY3QtZG9tYWluLWxvY2FsZScpLmRldGVjdERvbWFpbkxvY2FsZTtcbn1cbmNvbnN0IGJhc2VQYXRoID0gcHJvY2Vzcy5lbnYuX19ORVhUX1JPVVRFUl9CQVNFUEFUSCB8fCAnJztcbmZ1bmN0aW9uIGJ1aWxkQ2FuY2VsbGF0aW9uRXJyb3IoKSB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IEVycm9yKCdSb3V0ZSBDYW5jZWxsZWQnKSwge1xuICAgICAgICBjYW5jZWxsZWQ6IHRydWVcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGFkZFBhdGhQcmVmaXgocGF0aCwgcHJlZml4KSB7XG4gICAgaWYgKCFwYXRoLnN0YXJ0c1dpdGgoJy8nKSB8fCAhcHJlZml4KSB7XG4gICAgICAgIHJldHVybiBwYXRoO1xuICAgIH1cbiAgICBjb25zdCBwYXRobmFtZSA9IHBhdGhOb1F1ZXJ5SGFzaChwYXRoKTtcbiAgICByZXR1cm4gKDAsIF9ub3JtYWxpemVUcmFpbGluZ1NsYXNoKS5ub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaChgJHtwcmVmaXh9JHtwYXRobmFtZX1gKSArIHBhdGguc3Vic3RyKHBhdGhuYW1lLmxlbmd0aCk7XG59XG5mdW5jdGlvbiBnZXREb21haW5Mb2NhbGUocGF0aCwgbG9jYWxlLCBsb2NhbGVzLCBkb21haW5Mb2NhbGVzKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9JMThOX1NVUFBPUlQpIHtcbiAgICAgICAgbG9jYWxlID0gbG9jYWxlIHx8ICgwLCBfbm9ybWFsaXplTG9jYWxlUGF0aCkubm9ybWFsaXplTG9jYWxlUGF0aChwYXRoLCBsb2NhbGVzKS5kZXRlY3RlZExvY2FsZTtcbiAgICAgICAgY29uc3QgZGV0ZWN0ZWREb21haW4gPSBkZXRlY3REb21haW5Mb2NhbGUoZG9tYWluTG9jYWxlcywgdW5kZWZpbmVkLCBsb2NhbGUpO1xuICAgICAgICBpZiAoZGV0ZWN0ZWREb21haW4pIHtcbiAgICAgICAgICAgIHJldHVybiBgaHR0cCR7ZGV0ZWN0ZWREb21haW4uaHR0cCA/ICcnIDogJ3MnfTovLyR7ZGV0ZWN0ZWREb21haW4uZG9tYWlufSR7YmFzZVBhdGggfHwgJyd9JHtsb2NhbGUgPT09IGRldGVjdGVkRG9tYWluLmRlZmF1bHRMb2NhbGUgPyAnJyA6IGAvJHtsb2NhbGV9YH0ke3BhdGh9YDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGFkZExvY2FsZShwYXRoLCBsb2NhbGUsIGRlZmF1bHRMb2NhbGUpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0kxOE5fU1VQUE9SVCkge1xuICAgICAgICBjb25zdCBwYXRobmFtZSA9IHBhdGhOb1F1ZXJ5SGFzaChwYXRoKTtcbiAgICAgICAgY29uc3QgcGF0aExvd2VyID0gcGF0aG5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgY29uc3QgbG9jYWxlTG93ZXIgPSBsb2NhbGUgJiYgbG9jYWxlLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIHJldHVybiBsb2NhbGUgJiYgbG9jYWxlICE9PSBkZWZhdWx0TG9jYWxlICYmICFwYXRoTG93ZXIuc3RhcnRzV2l0aCgnLycgKyBsb2NhbGVMb3dlciArICcvJykgJiYgcGF0aExvd2VyICE9PSAnLycgKyBsb2NhbGVMb3dlciA/IGFkZFBhdGhQcmVmaXgocGF0aCwgJy8nICsgbG9jYWxlKSA6IHBhdGg7XG4gICAgfVxuICAgIHJldHVybiBwYXRoO1xufVxuZnVuY3Rpb24gZGVsTG9jYWxlKHBhdGgsIGxvY2FsZSkge1xuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgICAgIGNvbnN0IHBhdGhuYW1lID0gcGF0aE5vUXVlcnlIYXNoKHBhdGgpO1xuICAgICAgICBjb25zdCBwYXRoTG93ZXIgPSBwYXRobmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBjb25zdCBsb2NhbGVMb3dlciA9IGxvY2FsZSAmJiBsb2NhbGUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgcmV0dXJuIGxvY2FsZSAmJiAocGF0aExvd2VyLnN0YXJ0c1dpdGgoJy8nICsgbG9jYWxlTG93ZXIgKyAnLycpIHx8IHBhdGhMb3dlciA9PT0gJy8nICsgbG9jYWxlTG93ZXIpID8gKHBhdGhuYW1lLmxlbmd0aCA9PT0gbG9jYWxlLmxlbmd0aCArIDEgPyAnLycgOiAnJykgKyBwYXRoLnN1YnN0cihsb2NhbGUubGVuZ3RoICsgMSkgOiBwYXRoO1xuICAgIH1cbiAgICByZXR1cm4gcGF0aDtcbn1cbmZ1bmN0aW9uIHBhdGhOb1F1ZXJ5SGFzaChwYXRoKSB7XG4gICAgY29uc3QgcXVlcnlJbmRleCA9IHBhdGguaW5kZXhPZignPycpO1xuICAgIGNvbnN0IGhhc2hJbmRleCA9IHBhdGguaW5kZXhPZignIycpO1xuICAgIGlmIChxdWVyeUluZGV4ID4gLTEgfHwgaGFzaEluZGV4ID4gLTEpIHtcbiAgICAgICAgcGF0aCA9IHBhdGguc3Vic3RyaW5nKDAsIHF1ZXJ5SW5kZXggPiAtMSA/IHF1ZXJ5SW5kZXggOiBoYXNoSW5kZXgpO1xuICAgIH1cbiAgICByZXR1cm4gcGF0aDtcbn1cbmZ1bmN0aW9uIGhhc0Jhc2VQYXRoKHBhdGgpIHtcbiAgICBwYXRoID0gcGF0aE5vUXVlcnlIYXNoKHBhdGgpO1xuICAgIHJldHVybiBwYXRoID09PSBiYXNlUGF0aCB8fCBwYXRoLnN0YXJ0c1dpdGgoYmFzZVBhdGggKyAnLycpO1xufVxuZnVuY3Rpb24gYWRkQmFzZVBhdGgocGF0aCkge1xuICAgIC8vIHdlIG9ubHkgYWRkIHRoZSBiYXNlcGF0aCBvbiByZWxhdGl2ZSB1cmxzXG4gICAgcmV0dXJuIGFkZFBhdGhQcmVmaXgocGF0aCwgYmFzZVBhdGgpO1xufVxuZnVuY3Rpb24gZGVsQmFzZVBhdGgocGF0aCkge1xuICAgIHBhdGggPSBwYXRoLnNsaWNlKGJhc2VQYXRoLmxlbmd0aCk7XG4gICAgaWYgKCFwYXRoLnN0YXJ0c1dpdGgoJy8nKSkgcGF0aCA9IGAvJHtwYXRofWA7XG4gICAgcmV0dXJuIHBhdGg7XG59XG5mdW5jdGlvbiBpc0xvY2FsVVJMKHVybCkge1xuICAgIC8vIHByZXZlbnQgYSBoeWRyYXRpb24gbWlzbWF0Y2ggb24gaHJlZiBmb3IgdXJsIHdpdGggYW5jaG9yIHJlZnNcbiAgICBpZiAodXJsLnN0YXJ0c1dpdGgoJy8nKSB8fCB1cmwuc3RhcnRzV2l0aCgnIycpIHx8IHVybC5zdGFydHNXaXRoKCc/JykpIHJldHVybiB0cnVlO1xuICAgIHRyeSB7XG4gICAgICAgIC8vIGFic29sdXRlIHVybHMgY2FuIGJlIGxvY2FsIGlmIHRoZXkgYXJlIG9uIHRoZSBzYW1lIG9yaWdpblxuICAgICAgICBjb25zdCBsb2NhdGlvbk9yaWdpbiA9ICgwLCBfdXRpbHMpLmdldExvY2F0aW9uT3JpZ2luKCk7XG4gICAgICAgIGNvbnN0IHJlc29sdmVkID0gbmV3IFVSTCh1cmwsIGxvY2F0aW9uT3JpZ2luKTtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVkLm9yaWdpbiA9PT0gbG9jYXRpb25PcmlnaW4gJiYgaGFzQmFzZVBhdGgocmVzb2x2ZWQucGF0aG5hbWUpO1xuICAgIH0gY2F0Y2ggKF8pIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGludGVycG9sYXRlQXMocm91dGUsIGFzUGF0aG5hbWUsIHF1ZXJ5KSB7XG4gICAgbGV0IGludGVycG9sYXRlZFJvdXRlID0gJyc7XG4gICAgY29uc3QgZHluYW1pY1JlZ2V4ID0gKDAsIF9yb3V0ZVJlZ2V4KS5nZXRSb3V0ZVJlZ2V4KHJvdXRlKTtcbiAgICBjb25zdCBkeW5hbWljR3JvdXBzID0gZHluYW1pY1JlZ2V4Lmdyb3VwcztcbiAgICBjb25zdCBkeW5hbWljTWF0Y2hlcyA9IC8vIFRyeSB0byBtYXRjaCB0aGUgZHluYW1pYyByb3V0ZSBhZ2FpbnN0IHRoZSBhc1BhdGhcbiAgICAoYXNQYXRobmFtZSAhPT0gcm91dGUgPyAoMCwgX3JvdXRlTWF0Y2hlcikuZ2V0Um91dGVNYXRjaGVyKGR5bmFtaWNSZWdleCkoYXNQYXRobmFtZSkgOiAnJykgfHwgLy8gRmFsbCBiYWNrIHRvIHJlYWRpbmcgdGhlIHZhbHVlcyBmcm9tIHRoZSBocmVmXG4gICAgLy8gVE9ETzogc2hvdWxkIHRoaXMgdGFrZSBwcmlvcml0eTsgYWxzbyBuZWVkIHRvIGNoYW5nZSBpbiB0aGUgcm91dGVyLlxuICAgIHF1ZXJ5O1xuICAgIGludGVycG9sYXRlZFJvdXRlID0gcm91dGU7XG4gICAgY29uc3QgcGFyYW1zID0gT2JqZWN0LmtleXMoZHluYW1pY0dyb3Vwcyk7XG4gICAgaWYgKCFwYXJhbXMuZXZlcnkoKHBhcmFtKT0+e1xuICAgICAgICBsZXQgdmFsdWUgPSBkeW5hbWljTWF0Y2hlc1twYXJhbV0gfHwgJyc7XG4gICAgICAgIGNvbnN0IHsgcmVwZWF0ICwgb3B0aW9uYWwgIH0gPSBkeW5hbWljR3JvdXBzW3BhcmFtXTtcbiAgICAgICAgLy8gc3VwcG9ydCBzaW5nbGUtbGV2ZWwgY2F0Y2gtYWxsXG4gICAgICAgIC8vIFRPRE86IG1vcmUgcm9idXN0IGhhbmRsaW5nIGZvciB1c2VyLWVycm9yIChwYXNzaW5nIGAvYClcbiAgICAgICAgbGV0IHJlcGxhY2VkID0gYFske3JlcGVhdCA/ICcuLi4nIDogJyd9JHtwYXJhbX1dYDtcbiAgICAgICAgaWYgKG9wdGlvbmFsKSB7XG4gICAgICAgICAgICByZXBsYWNlZCA9IGAkeyF2YWx1ZSA/ICcvJyA6ICcnfVske3JlcGxhY2VkfV1gO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZXBlYXQgJiYgIUFycmF5LmlzQXJyYXkodmFsdWUpKSB2YWx1ZSA9IFtcbiAgICAgICAgICAgIHZhbHVlXG4gICAgICAgIF07XG4gICAgICAgIHJldHVybiAob3B0aW9uYWwgfHwgcGFyYW0gaW4gZHluYW1pY01hdGNoZXMpICYmIC8vIEludGVycG9sYXRlIGdyb3VwIGludG8gZGF0YSBVUkwgaWYgcHJlc2VudFxuICAgICAgICAoaW50ZXJwb2xhdGVkUm91dGUgPSBpbnRlcnBvbGF0ZWRSb3V0ZS5yZXBsYWNlKHJlcGxhY2VkLCByZXBlYXQgPyB2YWx1ZS5tYXAoLy8gdGhlc2UgdmFsdWVzIHNob3VsZCBiZSBmdWxseSBlbmNvZGVkIGluc3RlYWQgb2YganVzdFxuICAgICAgICAvLyBwYXRoIGRlbGltaXRlciBlc2NhcGVkIHNpbmNlIHRoZXkgYXJlIGJlaW5nIGluc2VydGVkXG4gICAgICAgIC8vIGludG8gdGhlIFVSTCBhbmQgd2UgZXhwZWN0IFVSTCBlbmNvZGVkIHNlZ21lbnRzXG4gICAgICAgIC8vIHdoZW4gcGFyc2luZyBkeW5hbWljIHJvdXRlIHBhcmFtc1xuICAgICAgICAoc2VnbWVudCk9PmVuY29kZVVSSUNvbXBvbmVudChzZWdtZW50KVxuICAgICAgICApLmpvaW4oJy8nKSA6IGVuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSkpIHx8ICcvJyk7XG4gICAgfSkpIHtcbiAgICAgICAgaW50ZXJwb2xhdGVkUm91dGUgPSAnJyAvLyBkaWQgbm90IHNhdGlzZnkgYWxsIHJlcXVpcmVtZW50c1xuICAgICAgICA7XG4gICAgLy8gbi5iLiBXZSBpZ25vcmUgdGhpcyBlcnJvciBiZWNhdXNlIHdlIGhhbmRsZSB3YXJuaW5nIGZvciB0aGlzIGNhc2UgaW5cbiAgICAvLyBkZXZlbG9wbWVudCBpbiB0aGUgYDxMaW5rPmAgY29tcG9uZW50IGRpcmVjdGx5LlxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBwYXJhbXMsXG4gICAgICAgIHJlc3VsdDogaW50ZXJwb2xhdGVkUm91dGVcbiAgICB9O1xufVxuZnVuY3Rpb24gb21pdFBhcm1zRnJvbVF1ZXJ5KHF1ZXJ5LCBwYXJhbXMpIHtcbiAgICBjb25zdCBmaWx0ZXJlZFF1ZXJ5ID0ge1xuICAgIH07XG4gICAgT2JqZWN0LmtleXMocXVlcnkpLmZvckVhY2goKGtleSk9PntcbiAgICAgICAgaWYgKCFwYXJhbXMuaW5jbHVkZXMoa2V5KSkge1xuICAgICAgICAgICAgZmlsdGVyZWRRdWVyeVtrZXldID0gcXVlcnlba2V5XTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBmaWx0ZXJlZFF1ZXJ5O1xufVxuZnVuY3Rpb24gcmVzb2x2ZUhyZWYocm91dGVyLCBocmVmLCByZXNvbHZlQXMpIHtcbiAgICAvLyB3ZSB1c2UgYSBkdW1teSBiYXNlIHVybCBmb3IgcmVsYXRpdmUgdXJsc1xuICAgIGxldCBiYXNlO1xuICAgIGxldCB1cmxBc1N0cmluZyA9IHR5cGVvZiBocmVmID09PSAnc3RyaW5nJyA/IGhyZWYgOiAoMCwgX3V0aWxzKS5mb3JtYXRXaXRoVmFsaWRhdGlvbihocmVmKTtcbiAgICAvLyByZXBlYXRlZCBzbGFzaGVzIGFuZCBiYWNrc2xhc2hlcyBpbiB0aGUgVVJMIGFyZSBjb25zaWRlcmVkXG4gICAgLy8gaW52YWxpZCBhbmQgd2lsbCBuZXZlciBtYXRjaCBhIE5leHQuanMgcGFnZS9maWxlXG4gICAgY29uc3QgdXJsUHJvdG9NYXRjaCA9IHVybEFzU3RyaW5nLm1hdGNoKC9eW2EtekEtWl17MSx9OlxcL1xcLy8pO1xuICAgIGNvbnN0IHVybEFzU3RyaW5nTm9Qcm90byA9IHVybFByb3RvTWF0Y2ggPyB1cmxBc1N0cmluZy5zdWJzdHIodXJsUHJvdG9NYXRjaFswXS5sZW5ndGgpIDogdXJsQXNTdHJpbmc7XG4gICAgY29uc3QgdXJsUGFydHMgPSB1cmxBc1N0cmluZ05vUHJvdG8uc3BsaXQoJz8nKTtcbiAgICBpZiAoKHVybFBhcnRzWzBdIHx8ICcnKS5tYXRjaCgvKFxcL1xcL3xcXFxcKS8pKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYEludmFsaWQgaHJlZiBwYXNzZWQgdG8gbmV4dC9yb3V0ZXI6ICR7dXJsQXNTdHJpbmd9LCByZXBlYXRlZCBmb3J3YXJkLXNsYXNoZXMgKC8vKSBvciBiYWNrc2xhc2hlcyBcXFxcIGFyZSBub3QgdmFsaWQgaW4gdGhlIGhyZWZgKTtcbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZFVybCA9ICgwLCBfdXRpbHMpLm5vcm1hbGl6ZVJlcGVhdGVkU2xhc2hlcyh1cmxBc1N0cmluZ05vUHJvdG8pO1xuICAgICAgICB1cmxBc1N0cmluZyA9ICh1cmxQcm90b01hdGNoID8gdXJsUHJvdG9NYXRjaFswXSA6ICcnKSArIG5vcm1hbGl6ZWRVcmw7XG4gICAgfVxuICAgIC8vIFJldHVybiBiZWNhdXNlIGl0IGNhbm5vdCBiZSByb3V0ZWQgYnkgdGhlIE5leHQuanMgcm91dGVyXG4gICAgaWYgKCFpc0xvY2FsVVJMKHVybEFzU3RyaW5nKSkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZUFzID8gW1xuICAgICAgICAgICAgdXJsQXNTdHJpbmdcbiAgICAgICAgXSA6IHVybEFzU3RyaW5nO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICBiYXNlID0gbmV3IFVSTCh1cmxBc1N0cmluZy5zdGFydHNXaXRoKCcjJykgPyByb3V0ZXIuYXNQYXRoIDogcm91dGVyLnBhdGhuYW1lLCAnaHR0cDovL24nKTtcbiAgICB9IGNhdGNoIChfKSB7XG4gICAgICAgIC8vIGZhbGxiYWNrIHRvIC8gZm9yIGludmFsaWQgYXNQYXRoIHZhbHVlcyBlLmcuIC8vXG4gICAgICAgIGJhc2UgPSBuZXcgVVJMKCcvJywgJ2h0dHA6Ly9uJyk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGZpbmFsVXJsID0gbmV3IFVSTCh1cmxBc1N0cmluZywgYmFzZSk7XG4gICAgICAgIGZpbmFsVXJsLnBhdGhuYW1lID0gKDAsIF9ub3JtYWxpemVUcmFpbGluZ1NsYXNoKS5ub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaChmaW5hbFVybC5wYXRobmFtZSk7XG4gICAgICAgIGxldCBpbnRlcnBvbGF0ZWRBcyA9ICcnO1xuICAgICAgICBpZiAoKDAsIF9pc0R5bmFtaWMpLmlzRHluYW1pY1JvdXRlKGZpbmFsVXJsLnBhdGhuYW1lKSAmJiBmaW5hbFVybC5zZWFyY2hQYXJhbXMgJiYgcmVzb2x2ZUFzKSB7XG4gICAgICAgICAgICBjb25zdCBxdWVyeSA9ICgwLCBfcXVlcnlzdHJpbmcpLnNlYXJjaFBhcmFtc1RvVXJsUXVlcnkoZmluYWxVcmwuc2VhcmNoUGFyYW1zKTtcbiAgICAgICAgICAgIGNvbnN0IHsgcmVzdWx0ICwgcGFyYW1zICB9ID0gaW50ZXJwb2xhdGVBcyhmaW5hbFVybC5wYXRobmFtZSwgZmluYWxVcmwucGF0aG5hbWUsIHF1ZXJ5KTtcbiAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICBpbnRlcnBvbGF0ZWRBcyA9ICgwLCBfdXRpbHMpLmZvcm1hdFdpdGhWYWxpZGF0aW9uKHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWU6IHJlc3VsdCxcbiAgICAgICAgICAgICAgICAgICAgaGFzaDogZmluYWxVcmwuaGFzaCxcbiAgICAgICAgICAgICAgICAgICAgcXVlcnk6IG9taXRQYXJtc0Zyb21RdWVyeShxdWVyeSwgcGFyYW1zKVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIGlmIHRoZSBvcmlnaW4gZGlkbid0IGNoYW5nZSwgaXQgbWVhbnMgd2UgcmVjZWl2ZWQgYSByZWxhdGl2ZSBocmVmXG4gICAgICAgIGNvbnN0IHJlc29sdmVkSHJlZiA9IGZpbmFsVXJsLm9yaWdpbiA9PT0gYmFzZS5vcmlnaW4gPyBmaW5hbFVybC5ocmVmLnNsaWNlKGZpbmFsVXJsLm9yaWdpbi5sZW5ndGgpIDogZmluYWxVcmwuaHJlZjtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVBcyA/IFtcbiAgICAgICAgICAgIHJlc29sdmVkSHJlZixcbiAgICAgICAgICAgIGludGVycG9sYXRlZEFzIHx8IHJlc29sdmVkSHJlZlxuICAgICAgICBdIDogcmVzb2x2ZWRIcmVmO1xuICAgIH0gY2F0Y2ggKF8xKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlQXMgPyBbXG4gICAgICAgICAgICB1cmxBc1N0cmluZ1xuICAgICAgICBdIDogdXJsQXNTdHJpbmc7XG4gICAgfVxufVxuZnVuY3Rpb24gc3RyaXBPcmlnaW4odXJsKSB7XG4gICAgY29uc3Qgb3JpZ2luID0gKDAsIF91dGlscykuZ2V0TG9jYXRpb25PcmlnaW4oKTtcbiAgICByZXR1cm4gdXJsLnN0YXJ0c1dpdGgob3JpZ2luKSA/IHVybC5zdWJzdHJpbmcob3JpZ2luLmxlbmd0aCkgOiB1cmw7XG59XG5mdW5jdGlvbiBwcmVwYXJlVXJsQXMocm91dGVyLCB1cmwsIGFzKSB7XG4gICAgLy8gSWYgdXJsIGFuZCBhcyBwcm92aWRlZCBhcyBhbiBvYmplY3QgcmVwcmVzZW50YXRpb24sXG4gICAgLy8gd2UnbGwgZm9ybWF0IHRoZW0gaW50byB0aGUgc3RyaW5nIHZlcnNpb24gaGVyZS5cbiAgICBsZXQgW3Jlc29sdmVkSHJlZiwgcmVzb2x2ZWRBc10gPSByZXNvbHZlSHJlZihyb3V0ZXIsIHVybCwgdHJ1ZSk7XG4gICAgY29uc3Qgb3JpZ2luID0gKDAsIF91dGlscykuZ2V0TG9jYXRpb25PcmlnaW4oKTtcbiAgICBjb25zdCBocmVmSGFkT3JpZ2luID0gcmVzb2x2ZWRIcmVmLnN0YXJ0c1dpdGgob3JpZ2luKTtcbiAgICBjb25zdCBhc0hhZE9yaWdpbiA9IHJlc29sdmVkQXMgJiYgcmVzb2x2ZWRBcy5zdGFydHNXaXRoKG9yaWdpbik7XG4gICAgcmVzb2x2ZWRIcmVmID0gc3RyaXBPcmlnaW4ocmVzb2x2ZWRIcmVmKTtcbiAgICByZXNvbHZlZEFzID0gcmVzb2x2ZWRBcyA/IHN0cmlwT3JpZ2luKHJlc29sdmVkQXMpIDogcmVzb2x2ZWRBcztcbiAgICBjb25zdCBwcmVwYXJlZFVybCA9IGhyZWZIYWRPcmlnaW4gPyByZXNvbHZlZEhyZWYgOiBhZGRCYXNlUGF0aChyZXNvbHZlZEhyZWYpO1xuICAgIGNvbnN0IHByZXBhcmVkQXMgPSBhcyA/IHN0cmlwT3JpZ2luKHJlc29sdmVIcmVmKHJvdXRlciwgYXMpKSA6IHJlc29sdmVkQXMgfHwgcmVzb2x2ZWRIcmVmO1xuICAgIHJldHVybiB7XG4gICAgICAgIHVybDogcHJlcGFyZWRVcmwsXG4gICAgICAgIGFzOiBhc0hhZE9yaWdpbiA/IHByZXBhcmVkQXMgOiBhZGRCYXNlUGF0aChwcmVwYXJlZEFzKVxuICAgIH07XG59XG5mdW5jdGlvbiByZXNvbHZlRHluYW1pY1JvdXRlKHBhdGhuYW1lLCBwYWdlcykge1xuICAgIGNvbnN0IGNsZWFuUGF0aG5hbWUgPSAoMCwgX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2gpLnJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoKCgwLCBfZGVub3JtYWxpemVQYWdlUGF0aCkuZGVub3JtYWxpemVQYWdlUGF0aChwYXRobmFtZSkpO1xuICAgIGlmIChjbGVhblBhdGhuYW1lID09PSAnLzQwNCcgfHwgY2xlYW5QYXRobmFtZSA9PT0gJy9fZXJyb3InKSB7XG4gICAgICAgIHJldHVybiBwYXRobmFtZTtcbiAgICB9XG4gICAgLy8gaGFuZGxlIHJlc29sdmluZyBocmVmIGZvciBkeW5hbWljIHJvdXRlc1xuICAgIGlmICghcGFnZXMuaW5jbHVkZXMoY2xlYW5QYXRobmFtZSkpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGFycmF5LWNhbGxiYWNrLXJldHVyblxuICAgICAgICBwYWdlcy5zb21lKChwYWdlKT0+e1xuICAgICAgICAgICAgaWYgKCgwLCBfaXNEeW5hbWljKS5pc0R5bmFtaWNSb3V0ZShwYWdlKSAmJiAoMCwgX3JvdXRlUmVnZXgpLmdldFJvdXRlUmVnZXgocGFnZSkucmUudGVzdChjbGVhblBhdGhuYW1lKSkge1xuICAgICAgICAgICAgICAgIHBhdGhuYW1lID0gcGFnZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiAoMCwgX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2gpLnJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoKHBhdGhuYW1lKTtcbn1cbmNvbnN0IG1hbnVhbFNjcm9sbFJlc3RvcmF0aW9uID0gcHJvY2Vzcy5lbnYuX19ORVhUX1NDUk9MTF9SRVNUT1JBVElPTiAmJiB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiAnc2Nyb2xsUmVzdG9yYXRpb24nIGluIHdpbmRvdy5oaXN0b3J5ICYmICEhZnVuY3Rpb24oKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgbGV0IHYgPSAnX19uZXh0JztcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlcXVlbmNlc1xuICAgICAgICByZXR1cm4gc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh2LCB2KSwgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSh2KSwgdHJ1ZTtcbiAgICB9IGNhdGNoIChuKSB7XG4gICAgfVxufSgpO1xuY29uc3QgU1NHX0RBVEFfTk9UX0ZPVU5EID0gU3ltYm9sKCdTU0dfREFUQV9OT1RfRk9VTkQnKTtcbmZ1bmN0aW9uIGZldGNoUmV0cnkodXJsLCBhdHRlbXB0cywgb3B0cykge1xuICAgIHJldHVybiBmZXRjaCh1cmwsIHtcbiAgICAgICAgLy8gQ29va2llcyBhcmUgcmVxdWlyZWQgdG8gYmUgcHJlc2VudCBmb3IgTmV4dC5qcycgU1NHIFwiUHJldmlldyBNb2RlXCIuXG4gICAgICAgIC8vIENvb2tpZXMgbWF5IGFsc28gYmUgcmVxdWlyZWQgZm9yIGBnZXRTZXJ2ZXJTaWRlUHJvcHNgLlxuICAgICAgICAvL1xuICAgICAgICAvLyA+IGBmZXRjaGAgd29u4oCZdCBzZW5kIGNvb2tpZXMsIHVubGVzcyB5b3Ugc2V0IHRoZSBjcmVkZW50aWFscyBpbml0XG4gICAgICAgIC8vID4gb3B0aW9uLlxuICAgICAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRmV0Y2hfQVBJL1VzaW5nX0ZldGNoXG4gICAgICAgIC8vXG4gICAgICAgIC8vID4gRm9yIG1heGltdW0gYnJvd3NlciBjb21wYXRpYmlsaXR5IHdoZW4gaXQgY29tZXMgdG8gc2VuZGluZyAmXG4gICAgICAgIC8vID4gcmVjZWl2aW5nIGNvb2tpZXMsIGFsd2F5cyBzdXBwbHkgdGhlIGBjcmVkZW50aWFsczogJ3NhbWUtb3JpZ2luJ2BcbiAgICAgICAgLy8gPiBvcHRpb24gaW5zdGVhZCBvZiByZWx5aW5nIG9uIHRoZSBkZWZhdWx0LlxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZ2l0aHViL2ZldGNoI2NhdmVhdHNcbiAgICAgICAgY3JlZGVudGlhbHM6ICdzYW1lLW9yaWdpbidcbiAgICB9KS50aGVuKChyZXMpPT57XG4gICAgICAgIGlmICghcmVzLm9rKSB7XG4gICAgICAgICAgICBpZiAoYXR0ZW1wdHMgPiAxICYmIHJlcy5zdGF0dXMgPj0gNTAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZldGNoUmV0cnkodXJsLCBhdHRlbXB0cyAtIDEsIG9wdHMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT09IDQwNCkge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXMuanNvbigpLnRoZW4oKGRhdGEpPT57XG4gICAgICAgICAgICAgICAgICAgIGlmIChkYXRhLm5vdEZvdW5kKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdEZvdW5kOiBTU0dfREFUQV9OT1RfRk9VTkRcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gbG9hZCBzdGF0aWMgcHJvcHNgKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGxvYWQgc3RhdGljIHByb3BzYCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9wdHMudGV4dCA/IHJlcy50ZXh0KCkgOiByZXMuanNvbigpO1xuICAgIH0pO1xufVxuZnVuY3Rpb24gZmV0Y2hOZXh0RGF0YShkYXRhSHJlZiwgaXNTZXJ2ZXJSZW5kZXIsIHRleHQsIGluZmxpZ2h0Q2FjaGUsIHBlcnNpc3RDYWNoZSkge1xuICAgIGNvbnN0IHsgaHJlZjogY2FjaGVLZXkgIH0gPSBuZXcgVVJMKGRhdGFIcmVmLCB3aW5kb3cubG9jYXRpb24uaHJlZik7XG4gICAgaWYgKGluZmxpZ2h0Q2FjaGVbY2FjaGVLZXldICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIGluZmxpZ2h0Q2FjaGVbY2FjaGVLZXldO1xuICAgIH1cbiAgICByZXR1cm4gaW5mbGlnaHRDYWNoZVtjYWNoZUtleV0gPSBmZXRjaFJldHJ5KGRhdGFIcmVmLCBpc1NlcnZlclJlbmRlciA/IDMgOiAxLCB7XG4gICAgICAgIHRleHRcbiAgICB9KS5jYXRjaCgoZXJyKT0+e1xuICAgICAgICAvLyBXZSBzaG91bGQgb25seSB0cmlnZ2VyIGEgc2VydmVyLXNpZGUgdHJhbnNpdGlvbiBpZiB0aGlzIHdhcyBjYXVzZWRcbiAgICAgICAgLy8gb24gYSBjbGllbnQtc2lkZSB0cmFuc2l0aW9uLiBPdGhlcndpc2UsIHdlJ2QgZ2V0IGludG8gYW4gaW5maW5pdGVcbiAgICAgICAgLy8gbG9vcC5cbiAgICAgICAgaWYgKCFpc1NlcnZlclJlbmRlcikge1xuICAgICAgICAgICAgKDAsIF9yb3V0ZUxvYWRlcikubWFya0Fzc2V0RXJyb3IoZXJyKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBlcnI7XG4gICAgfSkudGhlbigoZGF0YSk9PntcbiAgICAgICAgaWYgKCFwZXJzaXN0Q2FjaGUgfHwgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgZGVsZXRlIGluZmxpZ2h0Q2FjaGVbY2FjaGVLZXldO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH0pLmNhdGNoKChlcnIpPT57XG4gICAgICAgIGRlbGV0ZSBpbmZsaWdodENhY2hlW2NhY2hlS2V5XTtcbiAgICAgICAgdGhyb3cgZXJyO1xuICAgIH0pO1xufVxuY2xhc3MgUm91dGVyIHtcbiAgICBjb25zdHJ1Y3RvcihwYXRobmFtZSwgcXVlcnksIGFzLCB7IGluaXRpYWxQcm9wcyAsIHBhZ2VMb2FkZXIgLCBBcHAgLCB3cmFwQXBwICwgQ29tcG9uZW50ICwgZXJyICwgc3Vic2NyaXB0aW9uICwgaXNGYWxsYmFjayAsIGxvY2FsZSAsIGxvY2FsZXMgLCBkZWZhdWx0TG9jYWxlICwgZG9tYWluTG9jYWxlcyAsIGlzUHJldmlldyAgfSl7XG4gICAgICAgIC8vIFN0YXRpYyBEYXRhIENhY2hlXG4gICAgICAgIHRoaXMuc2RjID0ge1xuICAgICAgICB9O1xuICAgICAgICAvLyBJbi1mbGlnaHQgU2VydmVyIERhdGEgUmVxdWVzdHMsIGZvciBkZWR1cGluZ1xuICAgICAgICB0aGlzLnNkciA9IHtcbiAgICAgICAgfTtcbiAgICAgICAgLy8gSW4tZmxpZ2h0IG1pZGRsZXdhcmUgcHJlZmxpZ2h0IHJlcXVlc3RzXG4gICAgICAgIHRoaXMuc2RlID0ge1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLl9pZHggPSAwO1xuICAgICAgICB0aGlzLm9uUG9wU3RhdGUgPSAoZSk9PntcbiAgICAgICAgICAgIGNvbnN0IHN0YXRlID0gZS5zdGF0ZTtcbiAgICAgICAgICAgIGlmICghc3RhdGUpIHtcbiAgICAgICAgICAgICAgICAvLyBXZSBnZXQgc3RhdGUgYXMgdW5kZWZpbmVkIGZvciB0d28gcmVhc29ucy5cbiAgICAgICAgICAgICAgICAvLyAgMS4gV2l0aCBvbGRlciBzYWZhcmkgKDwgOCkgYW5kIG9sZGVyIGNocm9tZSAoPCAzNClcbiAgICAgICAgICAgICAgICAvLyAgMi4gV2hlbiB0aGUgVVJMIGNoYW5nZWQgd2l0aCAjXG4gICAgICAgICAgICAgICAgLy9cbiAgICAgICAgICAgICAgICAvLyBJbiB0aGUgYm90aCBjYXNlcywgd2UgZG9uJ3QgbmVlZCB0byBwcm9jZWVkIGFuZCBjaGFuZ2UgdGhlIHJvdXRlLlxuICAgICAgICAgICAgICAgIC8vIChhcyBpdCdzIGFscmVhZHkgY2hhbmdlZClcbiAgICAgICAgICAgICAgICAvLyBCdXQgd2UgY2FuIHNpbXBseSByZXBsYWNlIHRoZSBzdGF0ZSB3aXRoIHRoZSBuZXcgY2hhbmdlcy5cbiAgICAgICAgICAgICAgICAvLyBBY3R1YWxseSwgZm9yICgxKSB3ZSBkb24ndCBuZWVkIHRvIG5vdGhpbmcuIEJ1dCBpdCdzIGhhcmQgdG8gZGV0ZWN0IHRoYXQgZXZlbnQuXG4gICAgICAgICAgICAgICAgLy8gU28sIGRvaW5nIHRoZSBmb2xsb3dpbmcgZm9yICgxKSBkb2VzIG5vIGhhcm0uXG4gICAgICAgICAgICAgICAgY29uc3QgeyBwYXRobmFtZSAsIHF1ZXJ5ICB9ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZVN0YXRlKCdyZXBsYWNlU3RhdGUnLCAoMCwgX3V0aWxzKS5mb3JtYXRXaXRoVmFsaWRhdGlvbih7XG4gICAgICAgICAgICAgICAgICAgIHBhdGhuYW1lOiBhZGRCYXNlUGF0aChwYXRobmFtZSksXG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5XG4gICAgICAgICAgICAgICAgfSksICgwLCBfdXRpbHMpLmdldFVSTCgpKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXN0YXRlLl9fTikge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBmb3JjZWRTY3JvbGw7XG4gICAgICAgICAgICBjb25zdCB7IHVybCAsIGFzICwgb3B0aW9ucyAsIGlkeCAgfSA9IHN0YXRlO1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9TQ1JPTExfUkVTVE9SQVRJT04pIHtcbiAgICAgICAgICAgICAgICBpZiAobWFudWFsU2Nyb2xsUmVzdG9yYXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2lkeCAhPT0gaWR4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTbmFwc2hvdCBjdXJyZW50IHNjcm9sbCBwb3NpdGlvbjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnX19uZXh0X3Njcm9sbF8nICsgdGhpcy5faWR4LCBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHg6IHNlbGYucGFnZVhPZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHk6IHNlbGYucGFnZVlPZmZzZXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoICB7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBSZXN0b3JlIG9sZCBzY3JvbGwgcG9zaXRpb246XG4gICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHYgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdfX25leHRfc2Nyb2xsXycgKyBpZHgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmNlZFNjcm9sbCA9IEpTT04ucGFyc2Uodik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yY2VkU2Nyb2xsID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4OiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5OiAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX2lkeCA9IGlkeDtcbiAgICAgICAgICAgIGNvbnN0IHsgcGF0aG5hbWUgIH0gPSAoMCwgX3BhcnNlUmVsYXRpdmVVcmwpLnBhcnNlUmVsYXRpdmVVcmwodXJsKTtcbiAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBkb24ndCByZS1yZW5kZXIgb24gaW5pdGlhbCBsb2FkLFxuICAgICAgICAgICAgLy8gY2FuIGJlIGNhdXNlZCBieSBuYXZpZ2F0aW5nIGJhY2sgZnJvbSBhbiBleHRlcm5hbCBzaXRlXG4gICAgICAgICAgICBpZiAodGhpcy5pc1NzciAmJiBhcyA9PT0gdGhpcy5hc1BhdGggJiYgcGF0aG5hbWUgPT09IHRoaXMucGF0aG5hbWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBJZiB0aGUgZG93bnN0cmVhbSBhcHBsaWNhdGlvbiByZXR1cm5zIGZhbHN5LCByZXR1cm4uXG4gICAgICAgICAgICAvLyBUaGV5IHdpbGwgdGhlbiBiZSByZXNwb25zaWJsZSBmb3IgaGFuZGxpbmcgdGhlIGV2ZW50LlxuICAgICAgICAgICAgaWYgKHRoaXMuX2JwcyAmJiAhdGhpcy5fYnBzKHN0YXRlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY2hhbmdlKCdyZXBsYWNlU3RhdGUnLCB1cmwsIGFzLCBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgICAgIH0sIG9wdGlvbnMsIHtcbiAgICAgICAgICAgICAgICBzaGFsbG93OiBvcHRpb25zLnNoYWxsb3cgJiYgdGhpcy5fc2hhbGxvdyxcbiAgICAgICAgICAgICAgICBsb2NhbGU6IG9wdGlvbnMubG9jYWxlIHx8IHRoaXMuZGVmYXVsdExvY2FsZVxuICAgICAgICAgICAgfSksIGZvcmNlZFNjcm9sbCk7XG4gICAgICAgIH07XG4gICAgICAgIC8vIHJlcHJlc2VudHMgdGhlIGN1cnJlbnQgY29tcG9uZW50IGtleVxuICAgICAgICB0aGlzLnJvdXRlID0gKDAsIF9ub3JtYWxpemVUcmFpbGluZ1NsYXNoKS5yZW1vdmVQYXRoVHJhaWxpbmdTbGFzaChwYXRobmFtZSk7XG4gICAgICAgIC8vIHNldCB1cCB0aGUgY29tcG9uZW50IGNhY2hlIChieSByb3V0ZSBrZXlzKVxuICAgICAgICB0aGlzLmNvbXBvbmVudHMgPSB7XG4gICAgICAgIH07XG4gICAgICAgIC8vIFdlIHNob3VsZCBub3Qga2VlcCB0aGUgY2FjaGUsIGlmIHRoZXJlJ3MgYW4gZXJyb3JcbiAgICAgICAgLy8gT3RoZXJ3aXNlLCB0aGlzIGNhdXNlIGlzc3VlcyB3aGVuIHdoZW4gZ29pbmcgYmFjayBhbmRcbiAgICAgICAgLy8gY29tZSBhZ2FpbiB0byB0aGUgZXJyb3JlZCBwYWdlLlxuICAgICAgICBpZiAocGF0aG5hbWUgIT09ICcvX2Vycm9yJykge1xuICAgICAgICAgICAgdmFyIHJlZjtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50c1t0aGlzLnJvdXRlXSA9IHtcbiAgICAgICAgICAgICAgICBDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgaW5pdGlhbDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBwcm9wczogaW5pdGlhbFByb3BzLFxuICAgICAgICAgICAgICAgIGVycixcbiAgICAgICAgICAgICAgICBfX05fU1NHOiBpbml0aWFsUHJvcHMgJiYgaW5pdGlhbFByb3BzLl9fTl9TU0csXG4gICAgICAgICAgICAgICAgX19OX1NTUDogaW5pdGlhbFByb3BzICYmIGluaXRpYWxQcm9wcy5fX05fU1NQLFxuICAgICAgICAgICAgICAgIF9fTl9SU0M6ICEhKChyZWYgPSBDb21wb25lbnQpID09PSBudWxsIHx8IHJlZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVmLl9fbmV4dF9yc2NfXylcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb21wb25lbnRzWycvX2FwcCddID0ge1xuICAgICAgICAgICAgQ29tcG9uZW50OiBBcHAsXG4gICAgICAgICAgICBzdHlsZVNoZWV0czogW11cbiAgICAgICAgfTtcbiAgICAgICAgLy8gQmFja3dhcmRzIGNvbXBhdCBmb3IgUm91dGVyLnJvdXRlci5ldmVudHNcbiAgICAgICAgLy8gVE9ETzogU2hvdWxkIGJlIHJlbW92ZSB0aGUgZm9sbG93aW5nIG1ham9yIHZlcnNpb24gYXMgaXQgd2FzIG5ldmVyIGRvY3VtZW50ZWRcbiAgICAgICAgdGhpcy5ldmVudHMgPSBSb3V0ZXIuZXZlbnRzO1xuICAgICAgICB0aGlzLnBhZ2VMb2FkZXIgPSBwYWdlTG9hZGVyO1xuICAgICAgICB0aGlzLnBhdGhuYW1lID0gcGF0aG5hbWU7XG4gICAgICAgIHRoaXMucXVlcnkgPSBxdWVyeTtcbiAgICAgICAgLy8gaWYgYXV0byBwcmVyZW5kZXJlZCBhbmQgZHluYW1pYyByb3V0ZSB3YWl0IHRvIHVwZGF0ZSBhc1BhdGhcbiAgICAgICAgLy8gdW50aWwgYWZ0ZXIgbW91bnQgdG8gcHJldmVudCBoeWRyYXRpb24gbWlzbWF0Y2hcbiAgICAgICAgY29uc3QgYXV0b0V4cG9ydER5bmFtaWMgPSAoMCwgX2lzRHluYW1pYykuaXNEeW5hbWljUm91dGUocGF0aG5hbWUpICYmIHNlbGYuX19ORVhUX0RBVEFfXy5hdXRvRXhwb3J0O1xuICAgICAgICB0aGlzLmFzUGF0aCA9IGF1dG9FeHBvcnREeW5hbWljID8gcGF0aG5hbWUgOiBhcztcbiAgICAgICAgdGhpcy5iYXNlUGF0aCA9IGJhc2VQYXRoO1xuICAgICAgICB0aGlzLnN1YiA9IHN1YnNjcmlwdGlvbjtcbiAgICAgICAgdGhpcy5jbGMgPSBudWxsO1xuICAgICAgICB0aGlzLl93cmFwQXBwID0gd3JhcEFwcDtcbiAgICAgICAgLy8gbWFrZSBzdXJlIHRvIGlnbm9yZSBleHRyYSBwb3BTdGF0ZSBpbiBzYWZhcmkgb24gbmF2aWdhdGluZ1xuICAgICAgICAvLyBiYWNrIGZyb20gZXh0ZXJuYWwgc2l0ZVxuICAgICAgICB0aGlzLmlzU3NyID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5pc0ZhbGxiYWNrID0gaXNGYWxsYmFjaztcbiAgICAgICAgdGhpcy5pc1JlYWR5ID0gISEoc2VsZi5fX05FWFRfREFUQV9fLmdzc3AgfHwgc2VsZi5fX05FWFRfREFUQV9fLmdpcCB8fCBzZWxmLl9fTkVYVF9EQVRBX18uYXBwR2lwICYmICFzZWxmLl9fTkVYVF9EQVRBX18uZ3NwIHx8ICFhdXRvRXhwb3J0RHluYW1pYyAmJiAhc2VsZi5sb2NhdGlvbi5zZWFyY2ggJiYgIXByb2Nlc3MuZW52Ll9fTkVYVF9IQVNfUkVXUklURVMpO1xuICAgICAgICB0aGlzLmlzUHJldmlldyA9ICEhaXNQcmV2aWV3O1xuICAgICAgICB0aGlzLmlzTG9jYWxlRG9tYWluID0gZmFsc2U7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgICAgICAgICB0aGlzLmxvY2FsZSA9IGxvY2FsZTtcbiAgICAgICAgICAgIHRoaXMubG9jYWxlcyA9IGxvY2FsZXM7XG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRMb2NhbGUgPSBkZWZhdWx0TG9jYWxlO1xuICAgICAgICAgICAgdGhpcy5kb21haW5Mb2NhbGVzID0gZG9tYWluTG9jYWxlcztcbiAgICAgICAgICAgIHRoaXMuaXNMb2NhbGVEb21haW4gPSAhIWRldGVjdERvbWFpbkxvY2FsZShkb21haW5Mb2NhbGVzLCBzZWxmLmxvY2F0aW9uLmhvc3RuYW1lKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSBcImFzXCIgZG9lc24ndCBzdGFydCB3aXRoIGRvdWJsZSBzbGFzaGVzIG9yIGVsc2UgaXQgY2FuXG4gICAgICAgICAgICAvLyB0aHJvdyBhbiBlcnJvciBhcyBpdCdzIGNvbnNpZGVyZWQgaW52YWxpZFxuICAgICAgICAgICAgaWYgKGFzLnN1YnN0cigwLCAyKSAhPT0gJy8vJykge1xuICAgICAgICAgICAgICAgIC8vIGluIG9yZGVyIGZvciBgZS5zdGF0ZWAgdG8gd29yayBvbiB0aGUgYG9ucG9wc3RhdGVgIGV2ZW50XG4gICAgICAgICAgICAgICAgLy8gd2UgaGF2ZSB0byByZWdpc3RlciB0aGUgaW5pdGlhbCByb3V0ZSB1cG9uIGluaXRpYWxpemF0aW9uXG4gICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAgICAgbG9jYWxlXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBvcHRpb25zLl9zaG91bGRSZXNvbHZlSHJlZiA9IGFzICE9PSBwYXRobmFtZTtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZVN0YXRlKCdyZXBsYWNlU3RhdGUnLCAoMCwgX3V0aWxzKS5mb3JtYXRXaXRoVmFsaWRhdGlvbih7XG4gICAgICAgICAgICAgICAgICAgIHBhdGhuYW1lOiBhZGRCYXNlUGF0aChwYXRobmFtZSksXG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5XG4gICAgICAgICAgICAgICAgfSksICgwLCBfdXRpbHMpLmdldFVSTCgpLCBvcHRpb25zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwb3BzdGF0ZScsIHRoaXMub25Qb3BTdGF0ZSk7XG4gICAgICAgICAgICAvLyBlbmFibGUgY3VzdG9tIHNjcm9sbCByZXN0b3JhdGlvbiBoYW5kbGluZyB3aGVuIGF2YWlsYWJsZVxuICAgICAgICAgICAgLy8gb3RoZXJ3aXNlIGZhbGxiYWNrIHRvIGJyb3dzZXIncyBkZWZhdWx0IGhhbmRsaW5nXG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX1NDUk9MTF9SRVNUT1JBVElPTikge1xuICAgICAgICAgICAgICAgIGlmIChtYW51YWxTY3JvbGxSZXN0b3JhdGlvbikge1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuaGlzdG9yeS5zY3JvbGxSZXN0b3JhdGlvbiA9ICdtYW51YWwnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZWxvYWQoKSB7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgICB9XG4gICAgLyoqXG4gICAqIEdvIGJhY2sgaW4gaGlzdG9yeVxuICAgKi8gYmFjaygpIHtcbiAgICAgICAgd2luZG93Lmhpc3RvcnkuYmFjaygpO1xuICAgIH1cbiAgICAvKipcbiAgICogUGVyZm9ybXMgYSBgcHVzaFN0YXRlYCB3aXRoIGFyZ3VtZW50c1xuICAgKiBAcGFyYW0gdXJsIG9mIHRoZSByb3V0ZVxuICAgKiBAcGFyYW0gYXMgbWFza3MgYHVybGAgZm9yIHRoZSBicm93c2VyXG4gICAqIEBwYXJhbSBvcHRpb25zIG9iamVjdCB5b3UgY2FuIGRlZmluZSBgc2hhbGxvd2AgYW5kIG90aGVyIG9wdGlvbnNcbiAgICovIHB1c2godXJsLCBhcywgb3B0aW9ucyA9IHtcbiAgICB9KSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfU0NST0xMX1JFU1RPUkFUSU9OKSB7XG4gICAgICAgICAgICAvLyBUT0RPOiByZW1vdmUgaW4gdGhlIGZ1dHVyZSB3aGVuIHdlIHVwZGF0ZSBoaXN0b3J5IGJlZm9yZSByb3V0ZSBjaGFuZ2VcbiAgICAgICAgICAgIC8vIGlzIGNvbXBsZXRlLCBhcyB0aGUgcG9wc3RhdGUgZXZlbnQgc2hvdWxkIGhhbmRsZSB0aGlzIGNhcHR1cmUuXG4gICAgICAgICAgICBpZiAobWFudWFsU2Nyb2xsUmVzdG9yYXRpb24pIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAvLyBTbmFwc2hvdCBzY3JvbGwgcG9zaXRpb24gcmlnaHQgYmVmb3JlIG5hdmlnYXRpbmcgdG8gYSBuZXcgcGFnZTpcbiAgICAgICAgICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnX19uZXh0X3Njcm9sbF8nICsgdGhpcy5faWR4LCBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICB4OiBzZWxmLnBhZ2VYT2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgICAgICAgeTogc2VsZi5wYWdlWU9mZnNldFxuICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAge1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAoeyB1cmwgLCBhcyAgfSA9IHByZXBhcmVVcmxBcyh0aGlzLCB1cmwsIGFzKSk7XG4gICAgICAgIHJldHVybiB0aGlzLmNoYW5nZSgncHVzaFN0YXRlJywgdXJsLCBhcywgb3B0aW9ucyk7XG4gICAgfVxuICAgIC8qKlxuICAgKiBQZXJmb3JtcyBhIGByZXBsYWNlU3RhdGVgIHdpdGggYXJndW1lbnRzXG4gICAqIEBwYXJhbSB1cmwgb2YgdGhlIHJvdXRlXG4gICAqIEBwYXJhbSBhcyBtYXNrcyBgdXJsYCBmb3IgdGhlIGJyb3dzZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgb2JqZWN0IHlvdSBjYW4gZGVmaW5lIGBzaGFsbG93YCBhbmQgb3RoZXIgb3B0aW9uc1xuICAgKi8gcmVwbGFjZSh1cmwsIGFzLCBvcHRpb25zID0ge1xuICAgIH0pIHtcbiAgICAgICAgKHsgdXJsICwgYXMgIH0gPSBwcmVwYXJlVXJsQXModGhpcywgdXJsLCBhcykpO1xuICAgICAgICByZXR1cm4gdGhpcy5jaGFuZ2UoJ3JlcGxhY2VTdGF0ZScsIHVybCwgYXMsIG9wdGlvbnMpO1xuICAgIH1cbiAgICBhc3luYyBjaGFuZ2UobWV0aG9kLCB1cmwsIGFzLCBvcHRpb25zLCBmb3JjZWRTY3JvbGwpIHtcbiAgICAgICAgaWYgKCFpc0xvY2FsVVJMKHVybCkpIHtcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNob3VsZFJlc29sdmVIcmVmID0gb3B0aW9ucy5faCB8fCBvcHRpb25zLl9zaG91bGRSZXNvbHZlSHJlZiB8fCBwYXRoTm9RdWVyeUhhc2godXJsKSA9PT0gcGF0aE5vUXVlcnlIYXNoKGFzKTtcbiAgICAgICAgLy8gZm9yIHN0YXRpYyBwYWdlcyB3aXRoIHF1ZXJ5IHBhcmFtcyBpbiB0aGUgVVJMIHdlIGRlbGF5XG4gICAgICAgIC8vIG1hcmtpbmcgdGhlIHJvdXRlciByZWFkeSB1bnRpbCBhZnRlciB0aGUgcXVlcnkgaXMgdXBkYXRlZFxuICAgICAgICBpZiAob3B0aW9ucy5faCkge1xuICAgICAgICAgICAgdGhpcy5pc1JlYWR5ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwcmV2TG9jYWxlID0gdGhpcy5sb2NhbGU7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgICAgICAgICB0aGlzLmxvY2FsZSA9IG9wdGlvbnMubG9jYWxlID09PSBmYWxzZSA/IHRoaXMuZGVmYXVsdExvY2FsZSA6IG9wdGlvbnMubG9jYWxlIHx8IHRoaXMubG9jYWxlO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLmxvY2FsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICBvcHRpb25zLmxvY2FsZSA9IHRoaXMubG9jYWxlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgcGFyc2VkQXMgPSAoMCwgX3BhcnNlUmVsYXRpdmVVcmwpLnBhcnNlUmVsYXRpdmVVcmwoaGFzQmFzZVBhdGgoYXMpID8gZGVsQmFzZVBhdGgoYXMpIDogYXMpO1xuICAgICAgICAgICAgY29uc3QgbG9jYWxlUGF0aFJlc3VsdCA9ICgwLCBfbm9ybWFsaXplTG9jYWxlUGF0aCkubm9ybWFsaXplTG9jYWxlUGF0aChwYXJzZWRBcy5wYXRobmFtZSwgdGhpcy5sb2NhbGVzKTtcbiAgICAgICAgICAgIGlmIChsb2NhbGVQYXRoUmVzdWx0LmRldGVjdGVkTG9jYWxlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2NhbGUgPSBsb2NhbGVQYXRoUmVzdWx0LmRldGVjdGVkTG9jYWxlO1xuICAgICAgICAgICAgICAgIHBhcnNlZEFzLnBhdGhuYW1lID0gYWRkQmFzZVBhdGgocGFyc2VkQXMucGF0aG5hbWUpO1xuICAgICAgICAgICAgICAgIGFzID0gKDAsIF91dGlscykuZm9ybWF0V2l0aFZhbGlkYXRpb24ocGFyc2VkQXMpO1xuICAgICAgICAgICAgICAgIHVybCA9IGFkZEJhc2VQYXRoKCgwLCBfbm9ybWFsaXplTG9jYWxlUGF0aCkubm9ybWFsaXplTG9jYWxlUGF0aChoYXNCYXNlUGF0aCh1cmwpID8gZGVsQmFzZVBhdGgodXJsKSA6IHVybCwgdGhpcy5sb2NhbGVzKS5wYXRobmFtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgZGlkTmF2aWdhdGUgPSBmYWxzZTtcbiAgICAgICAgICAgIC8vIHdlIG5lZWQgdG8gd3JhcCB0aGlzIGluIHRoZSBlbnYgY2hlY2sgYWdhaW4gc2luY2UgcmVnZW5lcmF0b3IgcnVudGltZVxuICAgICAgICAgICAgLy8gbW92ZXMgdGhpcyBvbiBpdHMgb3duIGR1ZSB0byB0aGUgcmV0dXJuXG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0kxOE5fU1VQUE9SVCkge1xuICAgICAgICAgICAgICAgIHZhciByZWY7XG4gICAgICAgICAgICAgICAgLy8gaWYgdGhlIGxvY2FsZSBpc24ndCBjb25maWd1cmVkIGhhcmQgbmF2aWdhdGUgdG8gc2hvdyA0MDQgcGFnZVxuICAgICAgICAgICAgICAgIGlmICghKChyZWYgPSB0aGlzLmxvY2FsZXMpID09PSBudWxsIHx8IHJlZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVmLmluY2x1ZGVzKHRoaXMubG9jYWxlKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VkQXMucGF0aG5hbWUgPSBhZGRMb2NhbGUocGFyc2VkQXMucGF0aG5hbWUsIHRoaXMubG9jYWxlKTtcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSAoMCwgX3V0aWxzKS5mb3JtYXRXaXRoVmFsaWRhdGlvbihwYXJzZWRBcyk7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgd2FzIHByZXZpb3VzbHkgYSByZXR1cm4gYnV0IHdhcyByZW1vdmVkIGluIGZhdm9yXG4gICAgICAgICAgICAgICAgICAgIC8vIG9mIGJldHRlciBkZWFkIGNvZGUgZWxpbWluYXRpb24gd2l0aCByZWdlbmVyYXRvciBydW50aW1lXG4gICAgICAgICAgICAgICAgICAgIGRpZE5hdmlnYXRlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBkZXRlY3RlZERvbWFpbiA9IGRldGVjdERvbWFpbkxvY2FsZSh0aGlzLmRvbWFpbkxvY2FsZXMsIHVuZGVmaW5lZCwgdGhpcy5sb2NhbGUpO1xuICAgICAgICAgICAgLy8gd2UgbmVlZCB0byB3cmFwIHRoaXMgaW4gdGhlIGVudiBjaGVjayBhZ2FpbiBzaW5jZSByZWdlbmVyYXRvciBydW50aW1lXG4gICAgICAgICAgICAvLyBtb3ZlcyB0aGlzIG9uIGl0cyBvd24gZHVlIHRvIHRoZSByZXR1cm5cbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgICAgICAgICAgICAgLy8gaWYgd2UgYXJlIG5hdmlnYXRpbmcgdG8gYSBkb21haW4gbG9jYWxlIGVuc3VyZSB3ZSByZWRpcmVjdCB0byB0aGVcbiAgICAgICAgICAgICAgICAvLyBjb3JyZWN0IGRvbWFpblxuICAgICAgICAgICAgICAgIGlmICghZGlkTmF2aWdhdGUgJiYgZGV0ZWN0ZWREb21haW4gJiYgdGhpcy5pc0xvY2FsZURvbWFpbiAmJiBzZWxmLmxvY2F0aW9uLmhvc3RuYW1lICE9PSBkZXRlY3RlZERvbWFpbi5kb21haW4pIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYXNOb0Jhc2VQYXRoID0gZGVsQmFzZVBhdGgoYXMpO1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGBodHRwJHtkZXRlY3RlZERvbWFpbi5odHRwID8gJycgOiAncyd9Oi8vJHtkZXRlY3RlZERvbWFpbi5kb21haW59JHthZGRCYXNlUGF0aChgJHt0aGlzLmxvY2FsZSA9PT0gZGV0ZWN0ZWREb21haW4uZGVmYXVsdExvY2FsZSA/ICcnIDogYC8ke3RoaXMubG9jYWxlfWB9JHthc05vQmFzZVBhdGggPT09ICcvJyA/ICcnIDogYXNOb0Jhc2VQYXRofWAgfHwgJy8nKX1gO1xuICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIHdhcyBwcmV2aW91c2x5IGEgcmV0dXJuIGJ1dCB3YXMgcmVtb3ZlZCBpbiBmYXZvclxuICAgICAgICAgICAgICAgICAgICAvLyBvZiBiZXR0ZXIgZGVhZCBjb2RlIGVsaW1pbmF0aW9uIHdpdGggcmVnZW5lcmF0b3IgcnVudGltZVxuICAgICAgICAgICAgICAgICAgICBkaWROYXZpZ2F0ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRpZE5hdmlnYXRlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKCgpPT57XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFvcHRpb25zLl9oKSB7XG4gICAgICAgICAgICB0aGlzLmlzU3NyID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgLy8gbWFya2luZyByb3V0ZSBjaGFuZ2VzIGFzIGEgbmF2aWdhdGlvbiBzdGFydCBlbnRyeVxuICAgICAgICBpZiAoX3V0aWxzLlNUKSB7XG4gICAgICAgICAgICBwZXJmb3JtYW5jZS5tYXJrKCdyb3V0ZUNoYW5nZScpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgc2hhbGxvdyA9ZmFsc2UgIH0gPSBvcHRpb25zO1xuICAgICAgICBjb25zdCByb3V0ZVByb3BzID0ge1xuICAgICAgICAgICAgc2hhbGxvd1xuICAgICAgICB9O1xuICAgICAgICBpZiAodGhpcy5faW5GbGlnaHRSb3V0ZSkge1xuICAgICAgICAgICAgdGhpcy5hYm9ydENvbXBvbmVudExvYWQodGhpcy5faW5GbGlnaHRSb3V0ZSwgcm91dGVQcm9wcyk7XG4gICAgICAgIH1cbiAgICAgICAgYXMgPSBhZGRCYXNlUGF0aChhZGRMb2NhbGUoaGFzQmFzZVBhdGgoYXMpID8gZGVsQmFzZVBhdGgoYXMpIDogYXMsIG9wdGlvbnMubG9jYWxlLCB0aGlzLmRlZmF1bHRMb2NhbGUpKTtcbiAgICAgICAgY29uc3QgY2xlYW5lZEFzID0gZGVsTG9jYWxlKGhhc0Jhc2VQYXRoKGFzKSA/IGRlbEJhc2VQYXRoKGFzKSA6IGFzLCB0aGlzLmxvY2FsZSk7XG4gICAgICAgIHRoaXMuX2luRmxpZ2h0Um91dGUgPSBhcztcbiAgICAgICAgbGV0IGxvY2FsZUNoYW5nZSA9IHByZXZMb2NhbGUgIT09IHRoaXMubG9jYWxlO1xuICAgICAgICAvLyBJZiB0aGUgdXJsIGNoYW5nZSBpcyBvbmx5IHJlbGF0ZWQgdG8gYSBoYXNoIGNoYW5nZVxuICAgICAgICAvLyBXZSBzaG91bGQgbm90IHByb2NlZWQuIFdlIHNob3VsZCBvbmx5IGNoYW5nZSB0aGUgc3RhdGUuXG4gICAgICAgIC8vIFdBUk5JTkc6IGBfaGAgaXMgYW4gaW50ZXJuYWwgb3B0aW9uIGZvciBoYW5kaW5nIE5leHQuanMgY2xpZW50LXNpZGVcbiAgICAgICAgLy8gaHlkcmF0aW9uLiBZb3VyIGFwcCBzaG91bGQgX25ldmVyXyB1c2UgdGhpcyBwcm9wZXJ0eS4gSXQgbWF5IGNoYW5nZSBhdFxuICAgICAgICAvLyBhbnkgdGltZSB3aXRob3V0IG5vdGljZS5cbiAgICAgICAgaWYgKCFvcHRpb25zLl9oICYmIHRoaXMub25seUFIYXNoQ2hhbmdlKGNsZWFuZWRBcykgJiYgIWxvY2FsZUNoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5hc1BhdGggPSBjbGVhbmVkQXM7XG4gICAgICAgICAgICBSb3V0ZXIuZXZlbnRzLmVtaXQoJ2hhc2hDaGFuZ2VTdGFydCcsIGFzLCByb3V0ZVByb3BzKTtcbiAgICAgICAgICAgIC8vIFRPRE86IGRvIHdlIG5lZWQgdGhlIHJlc29sdmVkIGhyZWYgd2hlbiBvbmx5IGEgaGFzaCBjaGFuZ2U/XG4gICAgICAgICAgICB0aGlzLmNoYW5nZVN0YXRlKG1ldGhvZCwgdXJsLCBhcywgb3B0aW9ucyk7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbFRvSGFzaChjbGVhbmVkQXMpO1xuICAgICAgICAgICAgdGhpcy5ub3RpZnkodGhpcy5jb21wb25lbnRzW3RoaXMucm91dGVdLCBudWxsKTtcbiAgICAgICAgICAgIFJvdXRlci5ldmVudHMuZW1pdCgnaGFzaENoYW5nZUNvbXBsZXRlJywgYXMsIHJvdXRlUHJvcHMpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHBhcnNlZCA9ICgwLCBfcGFyc2VSZWxhdGl2ZVVybCkucGFyc2VSZWxhdGl2ZVVybCh1cmwpO1xuICAgICAgICBsZXQgeyBwYXRobmFtZSAsIHF1ZXJ5ICB9ID0gcGFyc2VkO1xuICAgICAgICAvLyBUaGUgYnVpbGQgbWFuaWZlc3QgbmVlZHMgdG8gYmUgbG9hZGVkIGJlZm9yZSBhdXRvLXN0YXRpYyBkeW5hbWljIHBhZ2VzXG4gICAgICAgIC8vIGdldCB0aGVpciBxdWVyeSBwYXJhbWV0ZXJzIHRvIGFsbG93IGVuc3VyaW5nIHRoZXkgY2FuIGJlIHBhcnNlZCBwcm9wZXJseVxuICAgICAgICAvLyB3aGVuIHJld3JpdHRlbiB0b1xuICAgICAgICBsZXQgcGFnZXMsIHJld3JpdGVzO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgW3BhZ2VzLCB7IF9fcmV3cml0ZXM6IHJld3JpdGVzICB9XSA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgICAgICAgICAgICB0aGlzLnBhZ2VMb2FkZXIuZ2V0UGFnZUxpc3QoKSxcbiAgICAgICAgICAgICAgICAoMCwgX3JvdXRlTG9hZGVyKS5nZXRDbGllbnRCdWlsZE1hbmlmZXN0KCksXG4gICAgICAgICAgICAgICAgdGhpcy5wYWdlTG9hZGVyLmdldE1pZGRsZXdhcmVMaXN0KCksIFxuICAgICAgICAgICAgXSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgLy8gSWYgd2UgZmFpbCB0byByZXNvbHZlIHRoZSBwYWdlIGxpc3Qgb3IgY2xpZW50LWJ1aWxkIG1hbmlmZXN0LCB3ZSBtdXN0XG4gICAgICAgICAgICAvLyBkbyBhIHNlcnZlci1zaWRlIHRyYW5zaXRpb246XG4gICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGFzO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIC8vIElmIGFza2VkIHRvIGNoYW5nZSB0aGUgY3VycmVudCBVUkwgd2Ugc2hvdWxkIHJlbG9hZCB0aGUgY3VycmVudCBwYWdlXG4gICAgICAgIC8vIChub3QgbG9jYXRpb24ucmVsb2FkKCkgYnV0IHJlbG9hZCBnZXRJbml0aWFsUHJvcHMgYW5kIG90aGVyIE5leHQuanMgc3R1ZmZzKVxuICAgICAgICAvLyBXZSBhbHNvIG5lZWQgdG8gc2V0IHRoZSBtZXRob2QgPSByZXBsYWNlU3RhdGUgYWx3YXlzXG4gICAgICAgIC8vIGFzIHRoaXMgc2hvdWxkIG5vdCBnbyBpbnRvIHRoZSBoaXN0b3J5IChUaGF0J3MgaG93IGJyb3dzZXJzIHdvcmspXG4gICAgICAgIC8vIFdlIHNob3VsZCBjb21wYXJlIHRoZSBuZXcgYXNQYXRoIHRvIHRoZSBjdXJyZW50IGFzUGF0aCwgbm90IHRoZSB1cmxcbiAgICAgICAgaWYgKCF0aGlzLnVybElzTmV3KGNsZWFuZWRBcykgJiYgIWxvY2FsZUNoYW5nZSkge1xuICAgICAgICAgICAgbWV0aG9kID0gJ3JlcGxhY2VTdGF0ZSc7XG4gICAgICAgIH1cbiAgICAgICAgLy8gd2UgbmVlZCB0byByZXNvbHZlIHRoZSBhcyB2YWx1ZSB1c2luZyByZXdyaXRlcyBmb3IgZHluYW1pYyBTU0dcbiAgICAgICAgLy8gcGFnZXMgdG8gYWxsb3cgYnVpbGRpbmcgdGhlIGRhdGEgVVJMIGNvcnJlY3RseVxuICAgICAgICBsZXQgcmVzb2x2ZWRBcyA9IGFzO1xuICAgICAgICAvLyB1cmwgYW5kIGFzIHNob3VsZCBhbHdheXMgYmUgcHJlZml4ZWQgd2l0aCBiYXNlUGF0aCBieSB0aGlzXG4gICAgICAgIC8vIHBvaW50IGJ5IGVpdGhlciBuZXh0L2xpbmsgb3Igcm91dGVyLnB1c2gvcmVwbGFjZSBzbyBzdHJpcCB0aGVcbiAgICAgICAgLy8gYmFzZVBhdGggZnJvbSB0aGUgcGF0aG5hbWUgdG8gbWF0Y2ggdGhlIHBhZ2VzIGRpciAxLXRvLTFcbiAgICAgICAgcGF0aG5hbWUgPSBwYXRobmFtZSA/ICgwLCBfbm9ybWFsaXplVHJhaWxpbmdTbGFzaCkucmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2goZGVsQmFzZVBhdGgocGF0aG5hbWUpKSA6IHBhdGhuYW1lO1xuICAgICAgICBpZiAoc2hvdWxkUmVzb2x2ZUhyZWYgJiYgcGF0aG5hbWUgIT09ICcvX2Vycm9yJykge1xuICAgICAgICAgICAgb3B0aW9ucy5fc2hvdWxkUmVzb2x2ZUhyZWYgPSB0cnVlO1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9IQVNfUkVXUklURVMgJiYgYXMuc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmV3cml0ZXNSZXN1bHQgPSAoMCwgX3Jlc29sdmVSZXdyaXRlcykuZGVmYXVsdChhZGRCYXNlUGF0aChhZGRMb2NhbGUoY2xlYW5lZEFzLCB0aGlzLmxvY2FsZSkpLCBwYWdlcywgcmV3cml0ZXMsIHF1ZXJ5LCAocCk9PnJlc29sdmVEeW5hbWljUm91dGUocCwgcGFnZXMpXG4gICAgICAgICAgICAgICAgLCB0aGlzLmxvY2FsZXMpO1xuICAgICAgICAgICAgICAgIHJlc29sdmVkQXMgPSByZXdyaXRlc1Jlc3VsdC5hc1BhdGg7XG4gICAgICAgICAgICAgICAgaWYgKHJld3JpdGVzUmVzdWx0Lm1hdGNoZWRQYWdlICYmIHJld3JpdGVzUmVzdWx0LnJlc29sdmVkSHJlZikge1xuICAgICAgICAgICAgICAgICAgICAvLyBpZiB0aGlzIGRpcmVjdGx5IG1hdGNoZXMgYSBwYWdlIHdlIG5lZWQgdG8gdXBkYXRlIHRoZSBocmVmIHRvXG4gICAgICAgICAgICAgICAgICAgIC8vIGFsbG93IHRoZSBjb3JyZWN0IHBhZ2UgY2h1bmsgdG8gYmUgbG9hZGVkXG4gICAgICAgICAgICAgICAgICAgIHBhdGhuYW1lID0gcmV3cml0ZXNSZXN1bHQucmVzb2x2ZWRIcmVmO1xuICAgICAgICAgICAgICAgICAgICBwYXJzZWQucGF0aG5hbWUgPSBhZGRCYXNlUGF0aChwYXRobmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIHVybCA9ICgwLCBfdXRpbHMpLmZvcm1hdFdpdGhWYWxpZGF0aW9uKHBhcnNlZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwYXJzZWQucGF0aG5hbWUgPSByZXNvbHZlRHluYW1pY1JvdXRlKHBhdGhuYW1lLCBwYWdlcyk7XG4gICAgICAgICAgICAgICAgaWYgKHBhcnNlZC5wYXRobmFtZSAhPT0gcGF0aG5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWUgPSBwYXJzZWQucGF0aG5hbWU7XG4gICAgICAgICAgICAgICAgICAgIHBhcnNlZC5wYXRobmFtZSA9IGFkZEJhc2VQYXRoKHBhdGhuYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdXJsID0gKDAsIF91dGlscykuZm9ybWF0V2l0aFZhbGlkYXRpb24ocGFyc2VkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc0xvY2FsVVJMKGFzKSkge1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgaHJlZjogXCIke3VybH1cIiBhbmQgYXM6IFwiJHthc31cIiwgcmVjZWl2ZWQgcmVsYXRpdmUgaHJlZiBhbmQgZXh0ZXJuYWwgYXNgICsgYFxcblNlZSBtb3JlIGluZm86IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2ludmFsaWQtcmVsYXRpdmUtdXJsLWV4dGVybmFsLWFzYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGFzO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJlc29sdmVkQXMgPSBkZWxMb2NhbGUoZGVsQmFzZVBhdGgocmVzb2x2ZWRBcyksIHRoaXMubG9jYWxlKTtcbiAgICAgICAgY29uc3QgZWZmZWN0ID0gYXdhaXQgdGhpcy5fcHJlZmxpZ2h0UmVxdWVzdCh7XG4gICAgICAgICAgICBhcyxcbiAgICAgICAgICAgIGNhY2hlOiBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nLFxuICAgICAgICAgICAgcGFnZXMsXG4gICAgICAgICAgICBwYXRobmFtZSxcbiAgICAgICAgICAgIHF1ZXJ5XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZWZmZWN0LnR5cGUgPT09ICdyZXdyaXRlJykge1xuICAgICAgICAgICAgcXVlcnkgPSB7XG4gICAgICAgICAgICAgICAgLi4ucXVlcnksXG4gICAgICAgICAgICAgICAgLi4uZWZmZWN0LnBhcnNlZEFzLnF1ZXJ5XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmVzb2x2ZWRBcyA9IGVmZmVjdC5hc1BhdGg7XG4gICAgICAgICAgICBwYXRobmFtZSA9IGVmZmVjdC5yZXNvbHZlZEhyZWY7XG4gICAgICAgICAgICBwYXJzZWQucGF0aG5hbWUgPSBlZmZlY3QucmVzb2x2ZWRIcmVmO1xuICAgICAgICAgICAgdXJsID0gKDAsIF91dGlscykuZm9ybWF0V2l0aFZhbGlkYXRpb24ocGFyc2VkKTtcbiAgICAgICAgfSBlbHNlIGlmIChlZmZlY3QudHlwZSA9PT0gJ3JlZGlyZWN0JyAmJiBlZmZlY3QubmV3QXMpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNoYW5nZShtZXRob2QsIGVmZmVjdC5uZXdVcmwsIGVmZmVjdC5uZXdBcywgb3B0aW9ucyk7XG4gICAgICAgIH0gZWxzZSBpZiAoZWZmZWN0LnR5cGUgPT09ICdyZWRpcmVjdCcgJiYgZWZmZWN0LmRlc3RpbmF0aW9uKSB7XG4gICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGVmZmVjdC5kZXN0aW5hdGlvbjtcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgoKT0+e1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAoZWZmZWN0LnR5cGUgPT09ICdyZWZyZXNoJykge1xuICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBhcztcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgoKT0+e1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgcm91dGUgPSAoMCwgX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2gpLnJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoKHBhdGhuYW1lKTtcbiAgICAgICAgaWYgKCgwLCBfaXNEeW5hbWljKS5pc0R5bmFtaWNSb3V0ZShyb3V0ZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcnNlZEFzID0gKDAsIF9wYXJzZVJlbGF0aXZlVXJsKS5wYXJzZVJlbGF0aXZlVXJsKHJlc29sdmVkQXMpO1xuICAgICAgICAgICAgY29uc3QgYXNQYXRobmFtZSA9IHBhcnNlZEFzLnBhdGhuYW1lO1xuICAgICAgICAgICAgY29uc3Qgcm91dGVSZWdleCA9ICgwLCBfcm91dGVSZWdleCkuZ2V0Um91dGVSZWdleChyb3V0ZSk7XG4gICAgICAgICAgICBjb25zdCByb3V0ZU1hdGNoID0gKDAsIF9yb3V0ZU1hdGNoZXIpLmdldFJvdXRlTWF0Y2hlcihyb3V0ZVJlZ2V4KShhc1BhdGhuYW1lKTtcbiAgICAgICAgICAgIGNvbnN0IHNob3VsZEludGVycG9sYXRlID0gcm91dGUgPT09IGFzUGF0aG5hbWU7XG4gICAgICAgICAgICBjb25zdCBpbnRlcnBvbGF0ZWRBcyA9IHNob3VsZEludGVycG9sYXRlID8gaW50ZXJwb2xhdGVBcyhyb3V0ZSwgYXNQYXRobmFtZSwgcXVlcnkpIDoge1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmICghcm91dGVNYXRjaCB8fCBzaG91bGRJbnRlcnBvbGF0ZSAmJiAhaW50ZXJwb2xhdGVkQXMucmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWlzc2luZ1BhcmFtcyA9IE9iamVjdC5rZXlzKHJvdXRlUmVnZXguZ3JvdXBzKS5maWx0ZXIoKHBhcmFtKT0+IXF1ZXJ5W3BhcmFtXVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgaWYgKG1pc3NpbmdQYXJhbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGAke3Nob3VsZEludGVycG9sYXRlID8gYEludGVycG9sYXRpbmcgaHJlZmAgOiBgTWlzbWF0Y2hpbmcgXFxgYXNcXGAgYW5kIFxcYGhyZWZcXGBgfSBmYWlsZWQgdG8gbWFudWFsbHkgcHJvdmlkZSBgICsgYHRoZSBwYXJhbXM6ICR7bWlzc2luZ1BhcmFtcy5qb2luKCcsICcpfSBpbiB0aGUgXFxgaHJlZlxcYCdzIFxcYHF1ZXJ5XFxgYCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKChzaG91bGRJbnRlcnBvbGF0ZSA/IGBUaGUgcHJvdmlkZWQgXFxgaHJlZlxcYCAoJHt1cmx9KSB2YWx1ZSBpcyBtaXNzaW5nIHF1ZXJ5IHZhbHVlcyAoJHttaXNzaW5nUGFyYW1zLmpvaW4oJywgJyl9KSB0byBiZSBpbnRlcnBvbGF0ZWQgcHJvcGVybHkuIGAgOiBgVGhlIHByb3ZpZGVkIFxcYGFzXFxgIHZhbHVlICgke2FzUGF0aG5hbWV9KSBpcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgXFxgaHJlZlxcYCB2YWx1ZSAoJHtyb3V0ZX0pLiBgKSArIGBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzLyR7c2hvdWxkSW50ZXJwb2xhdGUgPyAnaHJlZi1pbnRlcnBvbGF0aW9uLWZhaWxlZCcgOiAnaW5jb21wYXRpYmxlLWhyZWYtYXMnfWApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoc2hvdWxkSW50ZXJwb2xhdGUpIHtcbiAgICAgICAgICAgICAgICBhcyA9ICgwLCBfdXRpbHMpLmZvcm1hdFdpdGhWYWxpZGF0aW9uKE9iamVjdC5hc3NpZ24oe1xuICAgICAgICAgICAgICAgIH0sIHBhcnNlZEFzLCB7XG4gICAgICAgICAgICAgICAgICAgIHBhdGhuYW1lOiBpbnRlcnBvbGF0ZWRBcy5yZXN1bHQsXG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5OiBvbWl0UGFybXNGcm9tUXVlcnkocXVlcnksIGludGVycG9sYXRlZEFzLnBhcmFtcylcbiAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIE1lcmdlIHBhcmFtcyBpbnRvIGBxdWVyeWAsIG92ZXJ3cml0aW5nIGFueSBzcGVjaWZpZWQgaW4gc2VhcmNoXG4gICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihxdWVyeSwgcm91dGVNYXRjaCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgUm91dGVyLmV2ZW50cy5lbWl0KCdyb3V0ZUNoYW5nZVN0YXJ0JywgYXMsIHJvdXRlUHJvcHMpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdmFyIHJlZiwgcmVmMTtcbiAgICAgICAgICAgIGxldCByb3V0ZUluZm8gPSBhd2FpdCB0aGlzLmdldFJvdXRlSW5mbyhyb3V0ZSwgcGF0aG5hbWUsIHF1ZXJ5LCBhcywgcmVzb2x2ZWRBcywgcm91dGVQcm9wcyk7XG4gICAgICAgICAgICBsZXQgeyBlcnJvciAsIHByb3BzICwgX19OX1NTRyAsIF9fTl9TU1AgIH0gPSByb3V0ZUluZm87XG4gICAgICAgICAgICAvLyBoYW5kbGUgcmVkaXJlY3Qgb24gY2xpZW50LXRyYW5zaXRpb25cbiAgICAgICAgICAgIGlmICgoX19OX1NTRyB8fCBfX05fU1NQKSAmJiBwcm9wcykge1xuICAgICAgICAgICAgICAgIGlmIChwcm9wcy5wYWdlUHJvcHMgJiYgcHJvcHMucGFnZVByb3BzLl9fTl9SRURJUkVDVCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkZXN0aW5hdGlvbiA9IHByb3BzLnBhZ2VQcm9wcy5fX05fUkVESVJFQ1Q7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNoZWNrIGlmIGRlc3RpbmF0aW9uIGlzIGludGVybmFsIChyZXNvbHZlcyB0byBhIHBhZ2UpIGFuZCBhdHRlbXB0XG4gICAgICAgICAgICAgICAgICAgIC8vIGNsaWVudC1uYXZpZ2F0aW9uIGlmIGl0IGlzIGZhbGxpbmcgYmFjayB0byBoYXJkIG5hdmlnYXRpb24gaWZcbiAgICAgICAgICAgICAgICAgICAgLy8gaXQncyBub3RcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRlc3RpbmF0aW9uLnN0YXJ0c1dpdGgoJy8nKSAmJiBwcm9wcy5wYWdlUHJvcHMuX19OX1JFRElSRUNUX0JBU0VfUEFUSCAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcnNlZEhyZWYgPSAoMCwgX3BhcnNlUmVsYXRpdmVVcmwpLnBhcnNlUmVsYXRpdmVVcmwoZGVzdGluYXRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VkSHJlZi5wYXRobmFtZSA9IHJlc29sdmVEeW5hbWljUm91dGUocGFyc2VkSHJlZi5wYXRobmFtZSwgcGFnZXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyB1cmw6IG5ld1VybCAsIGFzOiBuZXdBcyAgfSA9IHByZXBhcmVVcmxBcyh0aGlzLCBkZXN0aW5hdGlvbiwgZGVzdGluYXRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2hhbmdlKG1ldGhvZCwgbmV3VXJsLCBuZXdBcywgb3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBkZXN0aW5hdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKCgpPT57XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmlzUHJldmlldyA9ICEhcHJvcHMuX19OX1BSRVZJRVc7XG4gICAgICAgICAgICAgICAgLy8gaGFuZGxlIFNTRyBkYXRhIDQwNFxuICAgICAgICAgICAgICAgIGlmIChwcm9wcy5ub3RGb3VuZCA9PT0gU1NHX0RBVEFfTk9UX0ZPVU5EKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBub3RGb3VuZFJvdXRlO1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5mZXRjaENvbXBvbmVudCgnLzQwNCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbm90Rm91bmRSb3V0ZSA9ICcvNDA0JztcbiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoXykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbm90Rm91bmRSb3V0ZSA9ICcvX2Vycm9yJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByb3V0ZUluZm8gPSBhd2FpdCB0aGlzLmdldFJvdXRlSW5mbyhub3RGb3VuZFJvdXRlLCBub3RGb3VuZFJvdXRlLCBxdWVyeSwgYXMsIHJlc29sdmVkQXMsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNoYWxsb3c6IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFJvdXRlci5ldmVudHMuZW1pdCgnYmVmb3JlSGlzdG9yeUNoYW5nZScsIGFzLCByb3V0ZVByb3BzKTtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlU3RhdGUobWV0aG9kLCB1cmwsIGFzLCBvcHRpb25zKTtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLl9oICYmIHBhdGhuYW1lID09PSAnL19lcnJvcicgJiYgKChyZWYgPSBzZWxmLl9fTkVYVF9EQVRBX18ucHJvcHMpID09PSBudWxsIHx8IHJlZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogKHJlZjEgPSByZWYucGFnZVByb3BzKSA9PT0gbnVsbCB8fCByZWYxID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZWYxLnN0YXR1c0NvZGUpID09PSA1MDAgJiYgKHByb3BzID09PSBudWxsIHx8IHByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwcm9wcy5wYWdlUHJvcHMpKSB7XG4gICAgICAgICAgICAgICAgLy8gZW5zdXJlIHN0YXR1c0NvZGUgaXMgc3RpbGwgY29ycmVjdCBmb3Igc3RhdGljIDUwMCBwYWdlXG4gICAgICAgICAgICAgICAgLy8gd2hlbiB1cGRhdGluZyBxdWVyeSBpbmZvcm1hdGlvblxuICAgICAgICAgICAgICAgIHByb3BzLnBhZ2VQcm9wcy5zdGF0dXNDb2RlID0gNTAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gc2hhbGxvdyByb3V0aW5nIGlzIG9ubHkgYWxsb3dlZCBmb3Igc2FtZSBwYWdlIFVSTCBjaGFuZ2VzLlxuICAgICAgICAgICAgY29uc3QgaXNWYWxpZFNoYWxsb3dSb3V0ZSA9IG9wdGlvbnMuc2hhbGxvdyAmJiB0aGlzLnJvdXRlID09PSByb3V0ZTtcbiAgICAgICAgICAgIHZhciBfc2Nyb2xsO1xuICAgICAgICAgICAgY29uc3Qgc2hvdWxkU2Nyb2xsID0gKF9zY3JvbGwgPSBvcHRpb25zLnNjcm9sbCkgIT09IG51bGwgJiYgX3Njcm9sbCAhPT0gdm9pZCAwID8gX3Njcm9sbCA6ICFpc1ZhbGlkU2hhbGxvd1JvdXRlO1xuICAgICAgICAgICAgY29uc3QgcmVzZXRTY3JvbGwgPSBzaG91bGRTY3JvbGwgPyB7XG4gICAgICAgICAgICAgICAgeDogMCxcbiAgICAgICAgICAgICAgICB5OiAwXG4gICAgICAgICAgICB9IDogbnVsbDtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuc2V0KHJvdXRlLCBwYXRobmFtZSwgcXVlcnksIGNsZWFuZWRBcywgcm91dGVJbmZvLCBmb3JjZWRTY3JvbGwgIT09IG51bGwgJiYgZm9yY2VkU2Nyb2xsICE9PSB2b2lkIDAgPyBmb3JjZWRTY3JvbGwgOiByZXNldFNjcm9sbCkuY2F0Y2goKGUpPT57XG4gICAgICAgICAgICAgICAgaWYgKGUuY2FuY2VsbGVkKSBlcnJvciA9IGVycm9yIHx8IGU7XG4gICAgICAgICAgICAgICAgZWxzZSB0aHJvdyBlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBSb3V0ZXIuZXZlbnRzLmVtaXQoJ3JvdXRlQ2hhbmdlRXJyb3InLCBlcnJvciwgY2xlYW5lZEFzLCByb3V0ZVByb3BzKTtcbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubG9jYWxlKSB7XG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5sYW5nID0gdGhpcy5sb2NhbGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgUm91dGVyLmV2ZW50cy5lbWl0KCdyb3V0ZUNoYW5nZUNvbXBsZXRlJywgYXMsIHJvdXRlUHJvcHMpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gY2F0Y2ggKGVycjEpIHtcbiAgICAgICAgICAgIGlmICgoMCwgX2lzRXJyb3IpLmRlZmF1bHQoZXJyMSkgJiYgZXJyMS5jYW5jZWxsZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlcnIxO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNoYW5nZVN0YXRlKG1ldGhvZCwgdXJsLCBhcywgb3B0aW9ucyA9IHtcbiAgICB9KSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHdpbmRvdy5oaXN0b3J5ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFdhcm5pbmc6IHdpbmRvdy5oaXN0b3J5IGlzIG5vdCBhdmFpbGFibGUuYCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cuaGlzdG9yeVttZXRob2RdID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFdhcm5pbmc6IHdpbmRvdy5oaXN0b3J5LiR7bWV0aG9kfSBpcyBub3QgYXZhaWxhYmxlYCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChtZXRob2QgIT09ICdwdXNoU3RhdGUnIHx8ICgwLCBfdXRpbHMpLmdldFVSTCgpICE9PSBhcykge1xuICAgICAgICAgICAgdGhpcy5fc2hhbGxvdyA9IG9wdGlvbnMuc2hhbGxvdztcbiAgICAgICAgICAgIHdpbmRvdy5oaXN0b3J5W21ldGhvZF0oe1xuICAgICAgICAgICAgICAgIHVybCxcbiAgICAgICAgICAgICAgICBhcyxcbiAgICAgICAgICAgICAgICBvcHRpb25zLFxuICAgICAgICAgICAgICAgIF9fTjogdHJ1ZSxcbiAgICAgICAgICAgICAgICBpZHg6IHRoaXMuX2lkeCA9IG1ldGhvZCAhPT0gJ3B1c2hTdGF0ZScgPyB0aGlzLl9pZHggOiB0aGlzLl9pZHggKyAxXG4gICAgICAgICAgICB9LCAvLyBNb3N0IGJyb3dzZXJzIGN1cnJlbnRseSBpZ25vcmVzIHRoaXMgcGFyYW1ldGVyLCBhbHRob3VnaCB0aGV5IG1heSB1c2UgaXQgaW4gdGhlIGZ1dHVyZS5cbiAgICAgICAgICAgIC8vIFBhc3NpbmcgdGhlIGVtcHR5IHN0cmluZyBoZXJlIHNob3VsZCBiZSBzYWZlIGFnYWluc3QgZnV0dXJlIGNoYW5nZXMgdG8gdGhlIG1ldGhvZC5cbiAgICAgICAgICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9IaXN0b3J5L3JlcGxhY2VTdGF0ZVxuICAgICAgICAgICAgJycsIGFzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhc3luYyBoYW5kbGVSb3V0ZUluZm9FcnJvcihlcnIsIHBhdGhuYW1lLCBxdWVyeSwgYXMsIHJvdXRlUHJvcHMsIGxvYWRFcnJvckZhaWwpIHtcbiAgICAgICAgaWYgKGVyci5jYW5jZWxsZWQpIHtcbiAgICAgICAgICAgIC8vIGJ1YmJsZSB1cCBjYW5jZWxsYXRpb24gZXJyb3JzXG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCgwLCBfcm91dGVMb2FkZXIpLmlzQXNzZXRFcnJvcihlcnIpIHx8IGxvYWRFcnJvckZhaWwpIHtcbiAgICAgICAgICAgIFJvdXRlci5ldmVudHMuZW1pdCgncm91dGVDaGFuZ2VFcnJvcicsIGVyciwgYXMsIHJvdXRlUHJvcHMpO1xuICAgICAgICAgICAgLy8gSWYgd2UgY2FuJ3QgbG9hZCB0aGUgcGFnZSBpdCBjb3VsZCBiZSBvbmUgb2YgZm9sbG93aW5nIHJlYXNvbnNcbiAgICAgICAgICAgIC8vICAxLiBQYWdlIGRvZXNuJ3QgZXhpc3RzXG4gICAgICAgICAgICAvLyAgMi4gUGFnZSBkb2VzIGV4aXN0IGluIGEgZGlmZmVyZW50IHpvbmVcbiAgICAgICAgICAgIC8vICAzLiBJbnRlcm5hbCBlcnJvciB3aGlsZSBsb2FkaW5nIHRoZSBwYWdlXG4gICAgICAgICAgICAvLyBTbywgZG9pbmcgYSBoYXJkIHJlbG9hZCBpcyB0aGUgcHJvcGVyIHdheSB0byBkZWFsIHdpdGggdGhpcy5cbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYXM7XG4gICAgICAgICAgICAvLyBDaGFuZ2luZyB0aGUgVVJMIGRvZXNuJ3QgYmxvY2sgZXhlY3V0aW5nIHRoZSBjdXJyZW50IGNvZGUgcGF0aC5cbiAgICAgICAgICAgIC8vIFNvIGxldCdzIHRocm93IGEgY2FuY2VsbGF0aW9uIGVycm9yIHN0b3AgdGhlIHJvdXRpbmcgbG9naWMuXG4gICAgICAgICAgICB0aHJvdyBidWlsZENhbmNlbGxhdGlvbkVycm9yKCk7XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGxldCBDb21wb25lbnQ7XG4gICAgICAgICAgICBsZXQgc3R5bGVTaGVldHM7XG4gICAgICAgICAgICBsZXQgcHJvcHM7XG4gICAgICAgICAgICBpZiAodHlwZW9mIENvbXBvbmVudCA9PT0gJ3VuZGVmaW5lZCcgfHwgdHlwZW9mIHN0eWxlU2hlZXRzID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICh7IHBhZ2U6IENvbXBvbmVudCAsIHN0eWxlU2hlZXRzICB9ID0gYXdhaXQgdGhpcy5mZXRjaENvbXBvbmVudCgnL19lcnJvcicpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHJvdXRlSW5mbyA9IHtcbiAgICAgICAgICAgICAgICBwcm9wcyxcbiAgICAgICAgICAgICAgICBDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgc3R5bGVTaGVldHMsXG4gICAgICAgICAgICAgICAgZXJyLFxuICAgICAgICAgICAgICAgIGVycm9yOiBlcnJcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAoIXJvdXRlSW5mby5wcm9wcykge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIHJvdXRlSW5mby5wcm9wcyA9IGF3YWl0IHRoaXMuZ2V0SW5pdGlhbFByb3BzKENvbXBvbmVudCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXJyLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBxdWVyeVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChnaXBFcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gZXJyb3IgcGFnZSBgZ2V0SW5pdGlhbFByb3BzYDogJywgZ2lwRXJyKTtcbiAgICAgICAgICAgICAgICAgICAgcm91dGVJbmZvLnByb3BzID0ge1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByb3V0ZUluZm87XG4gICAgICAgIH0gY2F0Y2ggKHJvdXRlSW5mb0Vycikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlUm91dGVJbmZvRXJyb3IoKDAsIF9pc0Vycm9yKS5kZWZhdWx0KHJvdXRlSW5mb0VycikgPyByb3V0ZUluZm9FcnIgOiBuZXcgRXJyb3Iocm91dGVJbmZvRXJyICsgJycpLCBwYXRobmFtZSwgcXVlcnksIGFzLCByb3V0ZVByb3BzLCB0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhc3luYyBnZXRSb3V0ZUluZm8ocm91dGUsIHBhdGhuYW1lLCBxdWVyeSwgYXMsIHJlc29sdmVkQXMsIHJvdXRlUHJvcHMpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nUm91dGVJbmZvID0gdGhpcy5jb21wb25lbnRzW3JvdXRlXTtcbiAgICAgICAgICAgIGlmIChyb3V0ZVByb3BzLnNoYWxsb3cgJiYgZXhpc3RpbmdSb3V0ZUluZm8gJiYgdGhpcy5yb3V0ZSA9PT0gcm91dGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZXhpc3RpbmdSb3V0ZUluZm87XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgY2FjaGVkUm91dGVJbmZvID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgLy8gY2FuIG9ubHkgdXNlIG5vbi1pbml0aWFsIHJvdXRlIGluZm9cbiAgICAgICAgICAgIC8vIGNhbm5vdCByZXVzZSByb3V0ZSBpbmZvIGluIGRldmVsb3BtZW50IHNpbmNlIGl0IGNhbiBjaGFuZ2UgYWZ0ZXIgSE1SXG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdkZXZlbG9wbWVudCcgJiYgZXhpc3RpbmdSb3V0ZUluZm8gJiYgISgnaW5pdGlhbCcgaW4gZXhpc3RpbmdSb3V0ZUluZm8pKSB7XG4gICAgICAgICAgICAgICAgY2FjaGVkUm91dGVJbmZvID0gZXhpc3RpbmdSb3V0ZUluZm87XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCByb3V0ZUluZm8gPSBjYWNoZWRSb3V0ZUluZm8gfHwgYXdhaXQgdGhpcy5mZXRjaENvbXBvbmVudChyb3V0ZSkudGhlbigocmVzKT0+KHtcbiAgICAgICAgICAgICAgICAgICAgQ29tcG9uZW50OiByZXMucGFnZSxcbiAgICAgICAgICAgICAgICAgICAgc3R5bGVTaGVldHM6IHJlcy5zdHlsZVNoZWV0cyxcbiAgICAgICAgICAgICAgICAgICAgX19OX1NTRzogcmVzLm1vZC5fX05fU1NHLFxuICAgICAgICAgICAgICAgICAgICBfX05fU1NQOiByZXMubW9kLl9fTl9TU1AsXG4gICAgICAgICAgICAgICAgICAgIF9fTl9SU0M6ICEhcmVzLnBhZ2UuX19uZXh0X3JzY19fXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjb25zdCB7IENvbXBvbmVudCAsIF9fTl9TU0cgLCBfX05fU1NQICwgX19OX1JTQyAgfSA9IHJvdXRlSW5mbztcbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBpc1ZhbGlkRWxlbWVudFR5cGUgIH0gPSByZXF1aXJlKCdyZWFjdC1pcycpO1xuICAgICAgICAgICAgICAgIGlmICghaXNWYWxpZEVsZW1lbnRUeXBlKENvbXBvbmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgZGVmYXVsdCBleHBvcnQgaXMgbm90IGEgUmVhY3QgQ29tcG9uZW50IGluIHBhZ2U6IFwiJHtwYXRobmFtZX1cImApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBkYXRhSHJlZjtcbiAgICAgICAgICAgIGlmIChfX05fU1NHIHx8IF9fTl9TU1AgfHwgX19OX1JTQykge1xuICAgICAgICAgICAgICAgIGRhdGFIcmVmID0gdGhpcy5wYWdlTG9hZGVyLmdldERhdGFIcmVmKHtcbiAgICAgICAgICAgICAgICAgICAgaHJlZjogKDAsIF91dGlscykuZm9ybWF0V2l0aFZhbGlkYXRpb24oe1xuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBxdWVyeVxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgYXNQYXRoOiByZXNvbHZlZEFzLFxuICAgICAgICAgICAgICAgICAgICBzc2c6IF9fTl9TU0csXG4gICAgICAgICAgICAgICAgICAgIHJzYzogX19OX1JTQyxcbiAgICAgICAgICAgICAgICAgICAgbG9jYWxlOiB0aGlzLmxvY2FsZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgcHJvcHMgPSBhd2FpdCB0aGlzLl9nZXREYXRhKCgpPT5fX05fU1NHIHx8IF9fTl9TU1AgPyBmZXRjaE5leHREYXRhKGRhdGFIcmVmLCB0aGlzLmlzU3NyLCBmYWxzZSwgX19OX1NTRyA/IHRoaXMuc2RjIDogdGhpcy5zZHIsICEhX19OX1NTRyAmJiAhdGhpcy5pc1ByZXZpZXcpIDogdGhpcy5nZXRJbml0aWFsUHJvcHMoQ29tcG9uZW50LCAvLyB3ZSBwcm92aWRlIEFwcFRyZWUgbGF0ZXIgc28gdGhpcyBuZWVkcyB0byBiZSBgYW55YFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5LFxuICAgICAgICAgICAgICAgICAgICBhc1BhdGg6IGFzLFxuICAgICAgICAgICAgICAgICAgICBsb2NhbGU6IHRoaXMubG9jYWxlLFxuICAgICAgICAgICAgICAgICAgICBsb2NhbGVzOiB0aGlzLmxvY2FsZXMsXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRMb2NhbGU6IHRoaXMuZGVmYXVsdExvY2FsZVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKF9fTl9SU0MpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGZyZXNoICwgZGF0YSAgfSA9IGF3YWl0IHRoaXMuX2dldERhdGEoKCk9PnRoaXMuX2dldEZsaWdodERhdGEoZGF0YUhyZWYpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBwcm9wcy5wYWdlUHJvcHMgPSBPYmplY3QuYXNzaWduKHByb3BzLnBhZ2VQcm9wcywge1xuICAgICAgICAgICAgICAgICAgICBfX2ZsaWdodF9zZXJpYWxpemVkX186IGRhdGEsXG4gICAgICAgICAgICAgICAgICAgIF9fZmxpZ2h0X2ZyZXNoX186IGZyZXNoXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByb3V0ZUluZm8ucHJvcHMgPSBwcm9wcztcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50c1tyb3V0ZV0gPSByb3V0ZUluZm87XG4gICAgICAgICAgICByZXR1cm4gcm91dGVJbmZvO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmhhbmRsZVJvdXRlSW5mb0Vycm9yKCgwLCBfaXNFcnJvcikuZGVmYXVsdChlcnIpID8gZXJyIDogbmV3IEVycm9yKGVyciArICcnKSwgcGF0aG5hbWUsIHF1ZXJ5LCBhcywgcm91dGVQcm9wcyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc2V0KHJvdXRlLCBwYXRobmFtZSwgcXVlcnksIGFzLCBkYXRhLCByZXNldFNjcm9sbCkge1xuICAgICAgICB0aGlzLmlzRmFsbGJhY2sgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5yb3V0ZSA9IHJvdXRlO1xuICAgICAgICB0aGlzLnBhdGhuYW1lID0gcGF0aG5hbWU7XG4gICAgICAgIHRoaXMucXVlcnkgPSBxdWVyeTtcbiAgICAgICAgdGhpcy5hc1BhdGggPSBhcztcbiAgICAgICAgcmV0dXJuIHRoaXMubm90aWZ5KGRhdGEsIHJlc2V0U2Nyb2xsKTtcbiAgICB9XG4gICAgLyoqXG4gICAqIENhbGxiYWNrIHRvIGV4ZWN1dGUgYmVmb3JlIHJlcGxhY2luZyByb3V0ZXIgc3RhdGVcbiAgICogQHBhcmFtIGNiIGNhbGxiYWNrIHRvIGJlIGV4ZWN1dGVkXG4gICAqLyBiZWZvcmVQb3BTdGF0ZShjYikge1xuICAgICAgICB0aGlzLl9icHMgPSBjYjtcbiAgICB9XG4gICAgb25seUFIYXNoQ2hhbmdlKGFzKSB7XG4gICAgICAgIGlmICghdGhpcy5hc1BhdGgpIHJldHVybiBmYWxzZTtcbiAgICAgICAgY29uc3QgW29sZFVybE5vSGFzaCwgb2xkSGFzaF0gPSB0aGlzLmFzUGF0aC5zcGxpdCgnIycpO1xuICAgICAgICBjb25zdCBbbmV3VXJsTm9IYXNoLCBuZXdIYXNoXSA9IGFzLnNwbGl0KCcjJyk7XG4gICAgICAgIC8vIE1ha2VzIHN1cmUgd2Ugc2Nyb2xsIHRvIHRoZSBwcm92aWRlZCBoYXNoIGlmIHRoZSB1cmwvaGFzaCBhcmUgdGhlIHNhbWVcbiAgICAgICAgaWYgKG5ld0hhc2ggJiYgb2xkVXJsTm9IYXNoID09PSBuZXdVcmxOb0hhc2ggJiYgb2xkSGFzaCA9PT0gbmV3SGFzaCkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYgdGhlIHVybHMgYXJlIGNoYW5nZSwgdGhlcmUncyBtb3JlIHRoYW4gYSBoYXNoIGNoYW5nZVxuICAgICAgICBpZiAob2xkVXJsTm9IYXNoICE9PSBuZXdVcmxOb0hhc2gpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBJZiB0aGUgaGFzaCBoYXMgY2hhbmdlZCwgdGhlbiBpdCdzIGEgaGFzaCBvbmx5IGNoYW5nZS5cbiAgICAgICAgLy8gVGhpcyBjaGVjayBpcyBuZWNlc3NhcnkgdG8gaGFuZGxlIGJvdGggdGhlIGVudGVyIGFuZFxuICAgICAgICAvLyBsZWF2ZSBoYXNoID09PSAnJyBjYXNlcy4gVGhlIGlkZW50aXR5IGNhc2UgZmFsbHMgdGhyb3VnaFxuICAgICAgICAvLyBhbmQgaXMgdHJlYXRlZCBhcyBhIG5leHQgcmVsb2FkLlxuICAgICAgICByZXR1cm4gb2xkSGFzaCAhPT0gbmV3SGFzaDtcbiAgICB9XG4gICAgc2Nyb2xsVG9IYXNoKGFzKSB7XG4gICAgICAgIGNvbnN0IFssIGhhc2hdID0gYXMuc3BsaXQoJyMnKTtcbiAgICAgICAgLy8gU2Nyb2xsIHRvIHRvcCBpZiB0aGUgaGFzaCBpcyBqdXN0IGAjYCB3aXRoIG5vIHZhbHVlIG9yIGAjdG9wYFxuICAgICAgICAvLyBUbyBtaXJyb3IgYnJvd3NlcnNcbiAgICAgICAgaWYgKGhhc2ggPT09ICcnIHx8IGhhc2ggPT09ICd0b3AnKSB7XG4gICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgMCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gRmlyc3Qgd2UgY2hlY2sgaWYgdGhlIGVsZW1lbnQgYnkgaWQgaXMgZm91bmRcbiAgICAgICAgY29uc3QgaWRFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGhhc2gpO1xuICAgICAgICBpZiAoaWRFbCkge1xuICAgICAgICAgICAgaWRFbC5zY3JvbGxJbnRvVmlldygpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIElmIHRoZXJlJ3Mgbm8gZWxlbWVudCB3aXRoIHRoZSBpZCwgd2UgY2hlY2sgdGhlIGBuYW1lYCBwcm9wZXJ0eVxuICAgICAgICAvLyBUbyBtaXJyb3IgYnJvd3NlcnNcbiAgICAgICAgY29uc3QgbmFtZUVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoaGFzaClbMF07XG4gICAgICAgIGlmIChuYW1lRWwpIHtcbiAgICAgICAgICAgIG5hbWVFbC5zY3JvbGxJbnRvVmlldygpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHVybElzTmV3KGFzUGF0aCkge1xuICAgICAgICByZXR1cm4gdGhpcy5hc1BhdGggIT09IGFzUGF0aDtcbiAgICB9XG4gICAgLyoqXG4gICAqIFByZWZldGNoIHBhZ2UgY29kZSwgeW91IG1heSB3YWl0IGZvciB0aGUgZGF0YSBkdXJpbmcgcGFnZSByZW5kZXJpbmcuXG4gICAqIFRoaXMgZmVhdHVyZSBvbmx5IHdvcmtzIGluIHByb2R1Y3Rpb24hXG4gICAqIEBwYXJhbSB1cmwgdGhlIGhyZWYgb2YgcHJlZmV0Y2hlZCBwYWdlXG4gICAqIEBwYXJhbSBhc1BhdGggdGhlIGFzIHBhdGggb2YgdGhlIHByZWZldGNoZWQgcGFnZVxuICAgKi8gYXN5bmMgcHJlZmV0Y2godXJsLCBhc1BhdGggPSB1cmwsIG9wdGlvbnMgPSB7XG4gICAgfSkge1xuICAgICAgICBsZXQgcGFyc2VkID0gKDAsIF9wYXJzZVJlbGF0aXZlVXJsKS5wYXJzZVJlbGF0aXZlVXJsKHVybCk7XG4gICAgICAgIGxldCB7IHBhdGhuYW1lICwgcXVlcnkgIH0gPSBwYXJzZWQ7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5sb2NhbGUgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgcGF0aG5hbWUgPSAoMCwgX25vcm1hbGl6ZUxvY2FsZVBhdGgpLm5vcm1hbGl6ZUxvY2FsZVBhdGgocGF0aG5hbWUsIHRoaXMubG9jYWxlcykucGF0aG5hbWU7XG4gICAgICAgICAgICAgICAgcGFyc2VkLnBhdGhuYW1lID0gcGF0aG5hbWU7XG4gICAgICAgICAgICAgICAgdXJsID0gKDAsIF91dGlscykuZm9ybWF0V2l0aFZhbGlkYXRpb24ocGFyc2VkKTtcbiAgICAgICAgICAgICAgICBsZXQgcGFyc2VkQXMgPSAoMCwgX3BhcnNlUmVsYXRpdmVVcmwpLnBhcnNlUmVsYXRpdmVVcmwoYXNQYXRoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBsb2NhbGVQYXRoUmVzdWx0ID0gKDAsIF9ub3JtYWxpemVMb2NhbGVQYXRoKS5ub3JtYWxpemVMb2NhbGVQYXRoKHBhcnNlZEFzLnBhdGhuYW1lLCB0aGlzLmxvY2FsZXMpO1xuICAgICAgICAgICAgICAgIHBhcnNlZEFzLnBhdGhuYW1lID0gbG9jYWxlUGF0aFJlc3VsdC5wYXRobmFtZTtcbiAgICAgICAgICAgICAgICBvcHRpb25zLmxvY2FsZSA9IGxvY2FsZVBhdGhSZXN1bHQuZGV0ZWN0ZWRMb2NhbGUgfHwgdGhpcy5kZWZhdWx0TG9jYWxlO1xuICAgICAgICAgICAgICAgIGFzUGF0aCA9ICgwLCBfdXRpbHMpLmZvcm1hdFdpdGhWYWxpZGF0aW9uKHBhcnNlZEFzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYWdlcyA9IGF3YWl0IHRoaXMucGFnZUxvYWRlci5nZXRQYWdlTGlzdCgpO1xuICAgICAgICBsZXQgcmVzb2x2ZWRBcyA9IGFzUGF0aDtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9IQVNfUkVXUklURVMgJiYgYXNQYXRoLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgICAgICAgbGV0IHJld3JpdGVzO1xuICAgICAgICAgICAgKHsgX19yZXdyaXRlczogcmV3cml0ZXMgIH0gPSBhd2FpdCAoMCwgX3JvdXRlTG9hZGVyKS5nZXRDbGllbnRCdWlsZE1hbmlmZXN0KCkpO1xuICAgICAgICAgICAgY29uc3QgcmV3cml0ZXNSZXN1bHQgPSAoMCwgX3Jlc29sdmVSZXdyaXRlcykuZGVmYXVsdChhZGRCYXNlUGF0aChhZGRMb2NhbGUoYXNQYXRoLCB0aGlzLmxvY2FsZSkpLCBwYWdlcywgcmV3cml0ZXMsIHBhcnNlZC5xdWVyeSwgKHApPT5yZXNvbHZlRHluYW1pY1JvdXRlKHAsIHBhZ2VzKVxuICAgICAgICAgICAgLCB0aGlzLmxvY2FsZXMpO1xuICAgICAgICAgICAgcmVzb2x2ZWRBcyA9IGRlbExvY2FsZShkZWxCYXNlUGF0aChyZXdyaXRlc1Jlc3VsdC5hc1BhdGgpLCB0aGlzLmxvY2FsZSk7XG4gICAgICAgICAgICBpZiAocmV3cml0ZXNSZXN1bHQubWF0Y2hlZFBhZ2UgJiYgcmV3cml0ZXNSZXN1bHQucmVzb2x2ZWRIcmVmKSB7XG4gICAgICAgICAgICAgICAgLy8gaWYgdGhpcyBkaXJlY3RseSBtYXRjaGVzIGEgcGFnZSB3ZSBuZWVkIHRvIHVwZGF0ZSB0aGUgaHJlZiB0b1xuICAgICAgICAgICAgICAgIC8vIGFsbG93IHRoZSBjb3JyZWN0IHBhZ2UgY2h1bmsgdG8gYmUgbG9hZGVkXG4gICAgICAgICAgICAgICAgcGF0aG5hbWUgPSByZXdyaXRlc1Jlc3VsdC5yZXNvbHZlZEhyZWY7XG4gICAgICAgICAgICAgICAgcGFyc2VkLnBhdGhuYW1lID0gcGF0aG5hbWU7XG4gICAgICAgICAgICAgICAgdXJsID0gKDAsIF91dGlscykuZm9ybWF0V2l0aFZhbGlkYXRpb24ocGFyc2VkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBhcnNlZC5wYXRobmFtZSA9IHJlc29sdmVEeW5hbWljUm91dGUocGFyc2VkLnBhdGhuYW1lLCBwYWdlcyk7XG4gICAgICAgICAgICBpZiAocGFyc2VkLnBhdGhuYW1lICE9PSBwYXRobmFtZSkge1xuICAgICAgICAgICAgICAgIHBhdGhuYW1lID0gcGFyc2VkLnBhdGhuYW1lO1xuICAgICAgICAgICAgICAgIHBhcnNlZC5wYXRobmFtZSA9IHBhdGhuYW1lO1xuICAgICAgICAgICAgICAgIHVybCA9ICgwLCBfdXRpbHMpLmZvcm1hdFdpdGhWYWxpZGF0aW9uKHBhcnNlZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gUHJlZmV0Y2ggaXMgbm90IHN1cHBvcnRlZCBpbiBkZXZlbG9wbWVudCBtb2RlIGJlY2F1c2UgaXQgd291bGQgdHJpZ2dlciBvbi1kZW1hbmQtZW50cmllc1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVmZmVjdHMgPSBhd2FpdCB0aGlzLl9wcmVmbGlnaHRSZXF1ZXN0KHtcbiAgICAgICAgICAgIGFzOiBhZGRCYXNlUGF0aChhc1BhdGgpLFxuICAgICAgICAgICAgY2FjaGU6IHRydWUsXG4gICAgICAgICAgICBwYWdlcyxcbiAgICAgICAgICAgIHBhdGhuYW1lLFxuICAgICAgICAgICAgcXVlcnlcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChlZmZlY3RzLnR5cGUgPT09ICdyZXdyaXRlJykge1xuICAgICAgICAgICAgcGFyc2VkLnBhdGhuYW1lID0gZWZmZWN0cy5yZXNvbHZlZEhyZWY7XG4gICAgICAgICAgICBwYXRobmFtZSA9IGVmZmVjdHMucmVzb2x2ZWRIcmVmO1xuICAgICAgICAgICAgcXVlcnkgPSB7XG4gICAgICAgICAgICAgICAgLi4ucXVlcnksXG4gICAgICAgICAgICAgICAgLi4uZWZmZWN0cy5wYXJzZWRBcy5xdWVyeVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJlc29sdmVkQXMgPSBlZmZlY3RzLmFzUGF0aDtcbiAgICAgICAgICAgIHVybCA9ICgwLCBfdXRpbHMpLmZvcm1hdFdpdGhWYWxpZGF0aW9uKHBhcnNlZCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgcm91dGUgPSAoMCwgX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2gpLnJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoKHBhdGhuYW1lKTtcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgICAgICAgdGhpcy5wYWdlTG9hZGVyLl9pc1NzZyhyb3V0ZSkudGhlbigoaXNTc2cpPT57XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzU3NnID8gZmV0Y2hOZXh0RGF0YSh0aGlzLnBhZ2VMb2FkZXIuZ2V0RGF0YUhyZWYoe1xuICAgICAgICAgICAgICAgICAgICBocmVmOiB1cmwsXG4gICAgICAgICAgICAgICAgICAgIGFzUGF0aDogcmVzb2x2ZWRBcyxcbiAgICAgICAgICAgICAgICAgICAgc3NnOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBsb2NhbGU6IHR5cGVvZiBvcHRpb25zLmxvY2FsZSAhPT0gJ3VuZGVmaW5lZCcgPyBvcHRpb25zLmxvY2FsZSA6IHRoaXMubG9jYWxlXG4gICAgICAgICAgICAgICAgfSksIGZhbHNlLCBmYWxzZSwgdGhpcy5zZGMsIHRydWUpIDogZmFsc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHRoaXMucGFnZUxvYWRlcltvcHRpb25zLnByaW9yaXR5ID8gJ2xvYWRQYWdlJyA6ICdwcmVmZXRjaCddKHJvdXRlKSwgXG4gICAgICAgIF0pO1xuICAgIH1cbiAgICBhc3luYyBmZXRjaENvbXBvbmVudChyb3V0ZSkge1xuICAgICAgICBsZXQgY2FuY2VsbGVkID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IGNhbmNlbCA9IHRoaXMuY2xjID0gKCk9PntcbiAgICAgICAgICAgIGNhbmNlbGxlZCA9IHRydWU7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGhhbmRsZUNhbmNlbGxlZCA9ICgpPT57XG4gICAgICAgICAgICBpZiAoY2FuY2VsbGVkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoYEFib3J0IGZldGNoaW5nIGNvbXBvbmVudCBmb3Igcm91dGU6IFwiJHtyb3V0ZX1cImApO1xuICAgICAgICAgICAgICAgIGVycm9yLmNhbmNlbGxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY2FuY2VsID09PSB0aGlzLmNsYykge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xjID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudFJlc3VsdCA9IGF3YWl0IHRoaXMucGFnZUxvYWRlci5sb2FkUGFnZShyb3V0ZSk7XG4gICAgICAgICAgICBoYW5kbGVDYW5jZWxsZWQoKTtcbiAgICAgICAgICAgIHJldHVybiBjb21wb25lbnRSZXN1bHQ7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgaGFuZGxlQ2FuY2VsbGVkKCk7XG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2dldERhdGEoZm4pIHtcbiAgICAgICAgbGV0IGNhbmNlbGxlZCA9IGZhbHNlO1xuICAgICAgICBjb25zdCBjYW5jZWwgPSAoKT0+e1xuICAgICAgICAgICAgY2FuY2VsbGVkID0gdHJ1ZTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5jbGMgPSBjYW5jZWw7XG4gICAgICAgIHJldHVybiBmbigpLnRoZW4oKGRhdGEpPT57XG4gICAgICAgICAgICBpZiAoY2FuY2VsID09PSB0aGlzLmNsYykge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xjID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjYW5jZWxsZWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlcnIgPSBuZXcgRXJyb3IoJ0xvYWRpbmcgaW5pdGlhbCBwcm9wcyBjYW5jZWxsZWQnKTtcbiAgICAgICAgICAgICAgICBlcnIuY2FuY2VsbGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIF9nZXRGbGlnaHREYXRhKGRhdGFIcmVmKSB7XG4gICAgICAgIGNvbnN0IHsgaHJlZjogY2FjaGVLZXkgIH0gPSBuZXcgVVJMKGRhdGFIcmVmLCB3aW5kb3cubG9jYXRpb24uaHJlZik7XG4gICAgICAgIGlmICghdGhpcy5pc1ByZXZpZXcgJiYgdGhpcy5zZGNbY2FjaGVLZXldKSB7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgICAgICAgICAgICBmcmVzaDogZmFsc2UsXG4gICAgICAgICAgICAgICAgZGF0YTogdGhpcy5zZGNbY2FjaGVLZXldXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmV0Y2hOZXh0RGF0YShkYXRhSHJlZiwgdHJ1ZSwgdHJ1ZSwgdGhpcy5zZGMsIGZhbHNlKS50aGVuKChzZXJpYWxpemVkKT0+e1xuICAgICAgICAgICAgdGhpcy5zZGNbY2FjaGVLZXldID0gc2VyaWFsaXplZDtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgZnJlc2g6IHRydWUsXG4gICAgICAgICAgICAgICAgZGF0YTogc2VyaWFsaXplZFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGFzeW5jIF9wcmVmbGlnaHRSZXF1ZXN0KG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIHJlZjtcbiAgICAgICAgY29uc3QgY2xlYW5lZEFzID0gZGVsTG9jYWxlKGhhc0Jhc2VQYXRoKG9wdGlvbnMuYXMpID8gZGVsQmFzZVBhdGgob3B0aW9ucy5hcykgOiBvcHRpb25zLmFzLCB0aGlzLmxvY2FsZSk7XG4gICAgICAgIGNvbnN0IGZucyA9IGF3YWl0IHRoaXMucGFnZUxvYWRlci5nZXRNaWRkbGV3YXJlTGlzdCgpO1xuICAgICAgICBjb25zdCByZXF1aXJlc1ByZWZsaWdodCA9IGZucy5zb21lKChbbWlkZGxld2FyZSwgaXNTU1JdKT0+e1xuICAgICAgICAgICAgcmV0dXJuICgwLCBfcm91dGVNYXRjaGVyKS5nZXRSb3V0ZU1hdGNoZXIoKDAsIF9nZXRNaWRkbGV3YXJlUmVnZXgpLmdldE1pZGRsZXdhcmVSZWdleChtaWRkbGV3YXJlLCAhaXNTU1IpKShjbGVhbmVkQXMpO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKCFyZXF1aXJlc1ByZWZsaWdodCkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnbmV4dCdcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcHJlZmxpZ2h0ID0gYXdhaXQgdGhpcy5fZ2V0UHJlZmxpZ2h0RGF0YSh7XG4gICAgICAgICAgICBwcmVmbGlnaHRIcmVmOiBvcHRpb25zLmFzLFxuICAgICAgICAgICAgc2hvdWxkQ2FjaGU6IG9wdGlvbnMuY2FjaGVcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICgocmVmID0gcHJlZmxpZ2h0LnJld3JpdGUpID09PSBudWxsIHx8IHJlZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVmLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgICAgICAgY29uc3QgcGFyc2VkID0gKDAsIF9wYXJzZVJlbGF0aXZlVXJsKS5wYXJzZVJlbGF0aXZlVXJsKCgwLCBfbm9ybWFsaXplTG9jYWxlUGF0aCkubm9ybWFsaXplTG9jYWxlUGF0aChoYXNCYXNlUGF0aChwcmVmbGlnaHQucmV3cml0ZSkgPyBkZWxCYXNlUGF0aChwcmVmbGlnaHQucmV3cml0ZSkgOiBwcmVmbGlnaHQucmV3cml0ZSwgdGhpcy5sb2NhbGVzKS5wYXRobmFtZSk7XG4gICAgICAgICAgICBjb25zdCBmc1BhdGhuYW1lID0gKDAsIF9ub3JtYWxpemVUcmFpbGluZ1NsYXNoKS5yZW1vdmVQYXRoVHJhaWxpbmdTbGFzaChwYXJzZWQucGF0aG5hbWUpO1xuICAgICAgICAgICAgbGV0IG1hdGNoZWRQYWdlO1xuICAgICAgICAgICAgbGV0IHJlc29sdmVkSHJlZjtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLnBhZ2VzLmluY2x1ZGVzKGZzUGF0aG5hbWUpKSB7XG4gICAgICAgICAgICAgICAgbWF0Y2hlZFBhZ2UgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHJlc29sdmVkSHJlZiA9IGZzUGF0aG5hbWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlc29sdmVkSHJlZiA9IHJlc29sdmVEeW5hbWljUm91dGUoZnNQYXRobmFtZSwgb3B0aW9ucy5wYWdlcyk7XG4gICAgICAgICAgICAgICAgaWYgKHJlc29sdmVkSHJlZiAhPT0gcGFyc2VkLnBhdGhuYW1lICYmIG9wdGlvbnMucGFnZXMuaW5jbHVkZXMocmVzb2x2ZWRIcmVmKSkge1xuICAgICAgICAgICAgICAgICAgICBtYXRjaGVkUGFnZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB0eXBlOiAncmV3cml0ZScsXG4gICAgICAgICAgICAgICAgYXNQYXRoOiBwYXJzZWQucGF0aG5hbWUsXG4gICAgICAgICAgICAgICAgcGFyc2VkQXM6IHBhcnNlZCxcbiAgICAgICAgICAgICAgICBtYXRjaGVkUGFnZSxcbiAgICAgICAgICAgICAgICByZXNvbHZlZEhyZWZcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByZWZsaWdodC5yZWRpcmVjdCkge1xuICAgICAgICAgICAgaWYgKHByZWZsaWdodC5yZWRpcmVjdC5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjbGVhblJlZGlyZWN0ID0gKDAsIF9ub3JtYWxpemVUcmFpbGluZ1NsYXNoKS5yZW1vdmVQYXRoVHJhaWxpbmdTbGFzaCgoMCwgX25vcm1hbGl6ZUxvY2FsZVBhdGgpLm5vcm1hbGl6ZUxvY2FsZVBhdGgoaGFzQmFzZVBhdGgocHJlZmxpZ2h0LnJlZGlyZWN0KSA/IGRlbEJhc2VQYXRoKHByZWZsaWdodC5yZWRpcmVjdCkgOiBwcmVmbGlnaHQucmVkaXJlY3QsIHRoaXMubG9jYWxlcykucGF0aG5hbWUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgdXJsOiBuZXdVcmwgLCBhczogbmV3QXMgIH0gPSBwcmVwYXJlVXJsQXModGhpcywgY2xlYW5SZWRpcmVjdCwgY2xlYW5SZWRpcmVjdCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3JlZGlyZWN0JyxcbiAgICAgICAgICAgICAgICAgICAgbmV3VXJsLFxuICAgICAgICAgICAgICAgICAgICBuZXdBc1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdyZWRpcmVjdCcsXG4gICAgICAgICAgICAgICAgZGVzdGluYXRpb246IHByZWZsaWdodC5yZWRpcmVjdFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICAvLyBGb3IgU1NSIHJlcXVlc3RzLCB0aGV5IHdpbGwgYmUgaGFuZGxlZCBsaWtlIG5vcm1hbCBwYWdlcy5cbiAgICAgICAgaWYgKHByZWZsaWdodC5yZWZyZXNoICYmICFwcmVmbGlnaHQuc3NyKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdyZWZyZXNoJ1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogJ25leHQnXG4gICAgICAgIH07XG4gICAgfVxuICAgIF9nZXRQcmVmbGlnaHREYXRhKHBhcmFtcykge1xuICAgICAgICBjb25zdCB7IHByZWZsaWdodEhyZWYgLCBzaG91bGRDYWNoZSA9ZmFsc2UgIH0gPSBwYXJhbXM7XG4gICAgICAgIGNvbnN0IHsgaHJlZjogY2FjaGVLZXkgIH0gPSBuZXcgVVJMKHByZWZsaWdodEhyZWYsIHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicgJiYgIXRoaXMuaXNQcmV2aWV3ICYmIHNob3VsZENhY2hlICYmIHRoaXMuc2RlW2NhY2hlS2V5XSkge1xuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLnNkZVtjYWNoZUtleV0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmZXRjaChwcmVmbGlnaHRIcmVmLCB7XG4gICAgICAgICAgICBtZXRob2Q6ICdIRUFEJyxcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzOiAnc2FtZS1vcmlnaW4nLFxuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICd4LW1pZGRsZXdhcmUtcHJlZmxpZ2h0JzogJzEnXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLnRoZW4oKHJlcyk9PntcbiAgICAgICAgICAgIGlmICghcmVzLm9rKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gcHJlZmxpZ2h0IHJlcXVlc3RgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVkaXJlY3Q6IHJlcy5oZWFkZXJzLmdldCgnTG9jYXRpb24nKSxcbiAgICAgICAgICAgICAgICByZWZyZXNoOiByZXMuaGVhZGVycy5oYXMoJ3gtbWlkZGxld2FyZS1yZWZyZXNoJyksXG4gICAgICAgICAgICAgICAgcmV3cml0ZTogcmVzLmhlYWRlcnMuZ2V0KCd4LW1pZGRsZXdhcmUtcmV3cml0ZScpLFxuICAgICAgICAgICAgICAgIHNzcjogISFyZXMuaGVhZGVycy5nZXQoJ3gtbWlkZGxld2FyZS1zc3InKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSkudGhlbigoZGF0YSk9PntcbiAgICAgICAgICAgIGlmIChzaG91bGRDYWNoZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2RlW2NhY2hlS2V5XSA9IGRhdGE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgICAgfSkuY2F0Y2goKGVycik9PntcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnNkZVtjYWNoZUtleV07XG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBnZXRJbml0aWFsUHJvcHMoQ29tcG9uZW50LCBjdHgpIHtcbiAgICAgICAgY29uc3QgeyBDb21wb25lbnQ6IEFwcCAgfSA9IHRoaXMuY29tcG9uZW50c1snL19hcHAnXTtcbiAgICAgICAgY29uc3QgQXBwVHJlZSA9IHRoaXMuX3dyYXBBcHAoQXBwKTtcbiAgICAgICAgY3R4LkFwcFRyZWUgPSBBcHBUcmVlO1xuICAgICAgICByZXR1cm4gKDAsIF91dGlscykubG9hZEdldEluaXRpYWxQcm9wcyhBcHAsIHtcbiAgICAgICAgICAgIEFwcFRyZWUsXG4gICAgICAgICAgICBDb21wb25lbnQsXG4gICAgICAgICAgICByb3V0ZXI6IHRoaXMsXG4gICAgICAgICAgICBjdHhcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGFib3J0Q29tcG9uZW50TG9hZChhcywgcm91dGVQcm9wcykge1xuICAgICAgICBpZiAodGhpcy5jbGMpIHtcbiAgICAgICAgICAgIFJvdXRlci5ldmVudHMuZW1pdCgncm91dGVDaGFuZ2VFcnJvcicsIGJ1aWxkQ2FuY2VsbGF0aW9uRXJyb3IoKSwgYXMsIHJvdXRlUHJvcHMpO1xuICAgICAgICAgICAgdGhpcy5jbGMoKTtcbiAgICAgICAgICAgIHRoaXMuY2xjID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBub3RpZnkoZGF0YSwgcmVzZXRTY3JvbGwpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3ViKGRhdGEsIHRoaXMuY29tcG9uZW50c1snL19hcHAnXS5Db21wb25lbnQsIHJlc2V0U2Nyb2xsKTtcbiAgICB9XG59XG5Sb3V0ZXIuZXZlbnRzID0gKDAsIF9taXR0KS5kZWZhdWx0KCk7XG5leHBvcnRzLmRlZmF1bHQgPSBSb3V0ZXI7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJvdXRlci5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJnZXREb21haW5Mb2NhbGUiLCJhZGRMb2NhbGUiLCJkZWxMb2NhbGUiLCJoYXNCYXNlUGF0aCIsImFkZEJhc2VQYXRoIiwiZGVsQmFzZVBhdGgiLCJpc0xvY2FsVVJMIiwiaW50ZXJwb2xhdGVBcyIsInJlc29sdmVIcmVmIiwiX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2giLCJyZXF1aXJlIiwiX3JvdXRlTG9hZGVyIiwiX2lzRXJyb3IiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2Rlbm9ybWFsaXplUGFnZVBhdGgiLCJfbm9ybWFsaXplTG9jYWxlUGF0aCIsIl9taXR0IiwiX3V0aWxzIiwiX2lzRHluYW1pYyIsIl9wYXJzZVJlbGF0aXZlVXJsIiwiX3F1ZXJ5c3RyaW5nIiwiX3Jlc29sdmVSZXdyaXRlcyIsIl9yb3V0ZU1hdGNoZXIiLCJfcm91dGVSZWdleCIsIl9nZXRNaWRkbGV3YXJlUmVnZXgiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGV0ZWN0RG9tYWluTG9jYWxlIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9JMThOX1NVUFBPUlQiLCJiYXNlUGF0aCIsIl9fTkVYVF9ST1VURVJfQkFTRVBBVEgiLCJidWlsZENhbmNlbGxhdGlvbkVycm9yIiwiYXNzaWduIiwiRXJyb3IiLCJjYW5jZWxsZWQiLCJhZGRQYXRoUHJlZml4IiwicGF0aCIsInByZWZpeCIsInN0YXJ0c1dpdGgiLCJwYXRobmFtZSIsInBhdGhOb1F1ZXJ5SGFzaCIsIm5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoIiwic3Vic3RyIiwibGVuZ3RoIiwibG9jYWxlIiwibG9jYWxlcyIsImRvbWFpbkxvY2FsZXMiLCJub3JtYWxpemVMb2NhbGVQYXRoIiwiZGV0ZWN0ZWRMb2NhbGUiLCJkZXRlY3RlZERvbWFpbiIsInVuZGVmaW5lZCIsImh0dHAiLCJkb21haW4iLCJkZWZhdWx0TG9jYWxlIiwicGF0aExvd2VyIiwidG9Mb3dlckNhc2UiLCJsb2NhbGVMb3dlciIsInF1ZXJ5SW5kZXgiLCJpbmRleE9mIiwiaGFzaEluZGV4Iiwic3Vic3RyaW5nIiwic2xpY2UiLCJ1cmwiLCJsb2NhdGlvbk9yaWdpbiIsImdldExvY2F0aW9uT3JpZ2luIiwicmVzb2x2ZWQiLCJVUkwiLCJvcmlnaW4iLCJfIiwicm91dGUiLCJhc1BhdGhuYW1lIiwicXVlcnkiLCJpbnRlcnBvbGF0ZWRSb3V0ZSIsImR5bmFtaWNSZWdleCIsImdldFJvdXRlUmVnZXgiLCJkeW5hbWljR3JvdXBzIiwiZ3JvdXBzIiwiZHluYW1pY01hdGNoZXMiLCJnZXRSb3V0ZU1hdGNoZXIiLCJwYXJhbXMiLCJrZXlzIiwiZXZlcnkiLCJwYXJhbSIsInJlcGVhdCIsIm9wdGlvbmFsIiwicmVwbGFjZWQiLCJBcnJheSIsImlzQXJyYXkiLCJyZXBsYWNlIiwibWFwIiwic2VnbWVudCIsImVuY29kZVVSSUNvbXBvbmVudCIsImpvaW4iLCJyZXN1bHQiLCJvbWl0UGFybXNGcm9tUXVlcnkiLCJmaWx0ZXJlZFF1ZXJ5IiwiZm9yRWFjaCIsImtleSIsImluY2x1ZGVzIiwicm91dGVyIiwiaHJlZiIsInJlc29sdmVBcyIsImJhc2UiLCJ1cmxBc1N0cmluZyIsImZvcm1hdFdpdGhWYWxpZGF0aW9uIiwidXJsUHJvdG9NYXRjaCIsIm1hdGNoIiwidXJsQXNTdHJpbmdOb1Byb3RvIiwidXJsUGFydHMiLCJzcGxpdCIsImNvbnNvbGUiLCJlcnJvciIsIm5vcm1hbGl6ZWRVcmwiLCJub3JtYWxpemVSZXBlYXRlZFNsYXNoZXMiLCJhc1BhdGgiLCJmaW5hbFVybCIsImludGVycG9sYXRlZEFzIiwiaXNEeW5hbWljUm91dGUiLCJzZWFyY2hQYXJhbXMiLCJzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5IiwiaGFzaCIsInJlc29sdmVkSHJlZiIsIl8xIiwic3RyaXBPcmlnaW4iLCJwcmVwYXJlVXJsQXMiLCJhcyIsInJlc29sdmVkQXMiLCJocmVmSGFkT3JpZ2luIiwiYXNIYWRPcmlnaW4iLCJwcmVwYXJlZFVybCIsInByZXBhcmVkQXMiLCJyZXNvbHZlRHluYW1pY1JvdXRlIiwicGFnZXMiLCJjbGVhblBhdGhuYW1lIiwicmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2giLCJkZW5vcm1hbGl6ZVBhZ2VQYXRoIiwic29tZSIsInBhZ2UiLCJyZSIsInRlc3QiLCJtYW51YWxTY3JvbGxSZXN0b3JhdGlvbiIsIl9fTkVYVF9TQ1JPTExfUkVTVE9SQVRJT04iLCJ3aW5kb3ciLCJoaXN0b3J5IiwidiIsInNlc3Npb25TdG9yYWdlIiwic2V0SXRlbSIsInJlbW92ZUl0ZW0iLCJuIiwiU1NHX0RBVEFfTk9UX0ZPVU5EIiwiU3ltYm9sIiwiZmV0Y2hSZXRyeSIsImF0dGVtcHRzIiwib3B0cyIsImZldGNoIiwiY3JlZGVudGlhbHMiLCJ0aGVuIiwicmVzIiwib2siLCJzdGF0dXMiLCJqc29uIiwiZGF0YSIsIm5vdEZvdW5kIiwidGV4dCIsImZldGNoTmV4dERhdGEiLCJkYXRhSHJlZiIsImlzU2VydmVyUmVuZGVyIiwiaW5mbGlnaHRDYWNoZSIsInBlcnNpc3RDYWNoZSIsImxvY2F0aW9uIiwiY2FjaGVLZXkiLCJlcnIiLCJtYXJrQXNzZXRFcnJvciIsIlJvdXRlciIsImluaXRpYWxQcm9wcyIsInBhZ2VMb2FkZXIiLCJBcHAiLCJ3cmFwQXBwIiwiQ29tcG9uZW50Iiwic3Vic2NyaXB0aW9uIiwiaXNGYWxsYmFjayIsImlzUHJldmlldyIsInNkYyIsInNkciIsInNkZSIsIl9pZHgiLCJvblBvcFN0YXRlIiwiZSIsInN0YXRlIiwiY2hhbmdlU3RhdGUiLCJnZXRVUkwiLCJfX04iLCJmb3JjZWRTY3JvbGwiLCJvcHRpb25zIiwiaWR4IiwiSlNPTiIsInN0cmluZ2lmeSIsIngiLCJzZWxmIiwicGFnZVhPZmZzZXQiLCJ5IiwicGFnZVlPZmZzZXQiLCJnZXRJdGVtIiwicGFyc2UiLCJwYXJzZVJlbGF0aXZlVXJsIiwiaXNTc3IiLCJfYnBzIiwiY2hhbmdlIiwic2hhbGxvdyIsIl9zaGFsbG93IiwiY29tcG9uZW50cyIsInJlZiIsImluaXRpYWwiLCJwcm9wcyIsIl9fTl9TU0ciLCJfX05fU1NQIiwiX19OX1JTQyIsIl9fbmV4dF9yc2NfXyIsInN0eWxlU2hlZXRzIiwiZXZlbnRzIiwiYXV0b0V4cG9ydER5bmFtaWMiLCJfX05FWFRfREFUQV9fIiwiYXV0b0V4cG9ydCIsInN1YiIsImNsYyIsIl93cmFwQXBwIiwiaXNSZWFkeSIsImdzc3AiLCJnaXAiLCJhcHBHaXAiLCJnc3AiLCJzZWFyY2giLCJfX05FWFRfSEFTX1JFV1JJVEVTIiwiaXNMb2NhbGVEb21haW4iLCJob3N0bmFtZSIsIl9zaG91bGRSZXNvbHZlSHJlZiIsImFkZEV2ZW50TGlzdGVuZXIiLCJzY3JvbGxSZXN0b3JhdGlvbiIsInJlbG9hZCIsImJhY2siLCJtZXRob2QiLCJzaG91bGRSZXNvbHZlSHJlZiIsIl9oIiwicHJldkxvY2FsZSIsInBhcnNlZEFzIiwibG9jYWxlUGF0aFJlc3VsdCIsImRpZE5hdmlnYXRlIiwiYXNOb0Jhc2VQYXRoIiwiUHJvbWlzZSIsIlNUIiwicGVyZm9ybWFuY2UiLCJtYXJrIiwicm91dGVQcm9wcyIsIl9pbkZsaWdodFJvdXRlIiwiYWJvcnRDb21wb25lbnRMb2FkIiwiY2xlYW5lZEFzIiwibG9jYWxlQ2hhbmdlIiwib25seUFIYXNoQ2hhbmdlIiwiZW1pdCIsInNjcm9sbFRvSGFzaCIsIm5vdGlmeSIsInBhcnNlZCIsImFsbCIsImdldFBhZ2VMaXN0IiwiZ2V0Q2xpZW50QnVpbGRNYW5pZmVzdCIsImdldE1pZGRsZXdhcmVMaXN0IiwicmV3cml0ZXMiLCJfX3Jld3JpdGVzIiwidXJsSXNOZXciLCJyZXdyaXRlc1Jlc3VsdCIsInAiLCJtYXRjaGVkUGFnZSIsIl9wcmVmbGlnaHRSZXF1ZXN0IiwiY2FjaGUiLCJlZmZlY3QiLCJ0eXBlIiwibmV3QXMiLCJuZXdVcmwiLCJkZXN0aW5hdGlvbiIsInJvdXRlUmVnZXgiLCJyb3V0ZU1hdGNoIiwic2hvdWxkSW50ZXJwb2xhdGUiLCJtaXNzaW5nUGFyYW1zIiwiZmlsdGVyIiwid2FybiIsImdldFJvdXRlSW5mbyIsInJvdXRlSW5mbyIsInBhZ2VQcm9wcyIsIl9fTl9SRURJUkVDVCIsIl9fTl9SRURJUkVDVF9CQVNFX1BBVEgiLCJwYXJzZWRIcmVmIiwiX19OX1BSRVZJRVciLCJmZXRjaENvbXBvbmVudCIsIm5vdEZvdW5kUm91dGUiLCJyZWYxIiwic3RhdHVzQ29kZSIsImlzVmFsaWRTaGFsbG93Um91dGUiLCJzaG91bGRTY3JvbGwiLCJfc2Nyb2xsIiwic2Nyb2xsIiwicmVzZXRTY3JvbGwiLCJzZXQiLCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIsImxhbmciLCJsb2FkRXJyb3JGYWlsIiwiaXNBc3NldEVycm9yIiwiZ2V0SW5pdGlhbFByb3BzIiwiaGFuZGxlUm91dGVJbmZvRXJyb3IiLCJleGlzdGluZ1JvdXRlSW5mbyIsImNhY2hlZFJvdXRlSW5mbyIsIm1vZCIsImlzVmFsaWRFbGVtZW50VHlwZSIsImdldERhdGFIcmVmIiwic3NnIiwicnNjIiwiX2dldERhdGEiLCJfZ2V0RmxpZ2h0RGF0YSIsImZyZXNoIiwiX19mbGlnaHRfc2VyaWFsaXplZF9fIiwiX19mbGlnaHRfZnJlc2hfXyIsImNiIiwib2xkVXJsTm9IYXNoIiwib2xkSGFzaCIsIm5ld1VybE5vSGFzaCIsIm5ld0hhc2giLCJzY3JvbGxUbyIsImlkRWwiLCJnZXRFbGVtZW50QnlJZCIsInNjcm9sbEludG9WaWV3IiwibmFtZUVsIiwiZ2V0RWxlbWVudHNCeU5hbWUiLCJlZmZlY3RzIiwiX2lzU3NnIiwiaXNTc2ciLCJwcmlvcml0eSIsImNhbmNlbCIsImhhbmRsZUNhbmNlbGxlZCIsImxvYWRQYWdlIiwiY29tcG9uZW50UmVzdWx0IiwiZm4iLCJyZXNvbHZlIiwic2VyaWFsaXplZCIsImZucyIsInJlcXVpcmVzUHJlZmxpZ2h0IiwibWlkZGxld2FyZSIsImlzU1NSIiwiZ2V0TWlkZGxld2FyZVJlZ2V4IiwiX2dldFByZWZsaWdodERhdGEiLCJwcmVmbGlnaHRIcmVmIiwic2hvdWxkQ2FjaGUiLCJwcmVmbGlnaHQiLCJyZXdyaXRlIiwiZnNQYXRobmFtZSIsInJlZGlyZWN0IiwiY2xlYW5SZWRpcmVjdCIsInJlZnJlc2giLCJzc3IiLCJoZWFkZXJzIiwiZ2V0IiwiaGFzIiwiY3R4IiwiQXBwVHJlZSIsImxvYWRHZXRJbml0aWFsUHJvcHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/router.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/format-url.js": +/*!**********************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/format-url.js ***! + \**********************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.formatUrl = formatUrl;\n\nvar querystring = _interopRequireWildcard(__webpack_require__(/*! ./querystring */ \"./node_modules/next/dist/shared/lib/router/utils/querystring.js\"));\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n return newObj;\n }\n}\n\nvar slashedProtocols = /https?|ftp|gopher|file/;\n\nfunction formatUrl(urlObj) {\n var auth = urlObj.auth,\n hostname = urlObj.hostname;\n var protocol = urlObj.protocol || '';\n var pathname = urlObj.pathname || '';\n var hash = urlObj.hash || '';\n var query = urlObj.query || '';\n var host = false;\n auth = auth ? encodeURIComponent(auth).replace(/%3A/i, ':') + '@' : '';\n\n if (urlObj.host) {\n host = auth + urlObj.host;\n } else if (hostname) {\n host = auth + (~hostname.indexOf(':') ? \"[\".concat(hostname, \"]\") : hostname);\n\n if (urlObj.port) {\n host += ':' + urlObj.port;\n }\n }\n\n if (query && typeof query === 'object') {\n query = String(querystring.urlQueryToSearchParams(query));\n }\n\n var search = urlObj.search || query && \"?\".concat(query) || '';\n if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\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\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 \"\".concat(protocol).concat(host).concat(pathname).concat(search).concat(hash);\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Zvcm1hdC11cmwuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxpQkFBQSxHQUFvQkUsU0FBcEI7O0FBQ0EsSUFBSUMsV0FBVyxHQUFHQyx1QkFBdUIsQ0FBQ0MsbUJBQU8sQ0FBQyxzRkFBRCxDQUFSLENBQXpDOztBQUNBLFNBQVNELHVCQUFULENBQWlDRSxHQUFqQyxFQUFzQztBQUNsQyxNQUFJQSxHQUFHLElBQUlBLEdBQUcsQ0FBQ0MsVUFBZixFQUEyQjtBQUN2QixXQUFPRCxHQUFQO0FBQ0gsR0FGRCxNQUVPO0FBQ0gsUUFBSUUsTUFBTSxHQUFHLEVBQWI7O0FBRUEsUUFBSUYsR0FBRyxJQUFJLElBQVgsRUFBaUI7QUFDYixXQUFJLElBQUlHLEdBQVIsSUFBZUgsR0FBZixFQUFtQjtBQUNmLFlBQUlSLE1BQU0sQ0FBQ1ksU0FBUCxDQUFpQkMsY0FBakIsQ0FBZ0NDLElBQWhDLENBQXFDTixHQUFyQyxFQUEwQ0csR0FBMUMsQ0FBSixFQUFvRDtBQUNoRCxjQUFJSSxJQUFJLEdBQUdmLE1BQU0sQ0FBQ0MsY0FBUCxJQUF5QkQsTUFBTSxDQUFDZ0Isd0JBQWhDLEdBQTJEaEIsTUFBTSxDQUFDZ0Isd0JBQVAsQ0FBZ0NSLEdBQWhDLEVBQXFDRyxHQUFyQyxDQUEzRCxHQUF1RyxFQUFsSDs7QUFFQSxjQUFJSSxJQUFJLENBQUNFLEdBQUwsSUFBWUYsSUFBSSxDQUFDRyxHQUFyQixFQUEwQjtBQUN0QmxCLFlBQUFBLE1BQU0sQ0FBQ0MsY0FBUCxDQUFzQlMsTUFBdEIsRUFBOEJDLEdBQTlCLEVBQW1DSSxJQUFuQztBQUNILFdBRkQsTUFFTztBQUNITCxZQUFBQSxNQUFNLENBQUNDLEdBQUQsQ0FBTixHQUFjSCxHQUFHLENBQUNHLEdBQUQsQ0FBakI7QUFDSDtBQUNKO0FBQ0o7QUFD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LG1CQUFVTixRQUFWLFNBQXFCSSxJQUFyQixTQUE0QkgsUUFBNUIsU0FBdUNVLE1BQXZDLFNBQWdEVCxJQUFoRDtBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZm9ybWF0LXVybC5qcz83YjUzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5mb3JtYXRVcmwgPSBmb3JtYXRVcmw7XG52YXIgcXVlcnlzdHJpbmcgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwiLi9xdWVyeXN0cmluZ1wiKSk7XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHtcbiAgICBpZiAob2JqICYmIG9iai5fX2VzTW9kdWxlKSB7XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIG5ld09iaiA9IHtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKG9iaiAhPSBudWxsKSB7XG4gICAgICAgICAgICBmb3IodmFyIGtleSBpbiBvYmope1xuICAgICAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBkZXNjID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IHtcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3T2JqW2tleV0gPSBvYmpba2V5XTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBuZXdPYmouZGVmYXVsdCA9IG9iajtcbiAgICAgICAgcmV0dXJuIG5ld09iajtcbiAgICB9XG59XG5jb25zdCBzbGFzaGVkUHJvdG9jb2xzID0gL2h0dHBzP3xmdHB8Z29waGVyfGZpbGUvO1xuZnVuY3Rpb24gZm9ybWF0VXJsKHVybE9iaikge1xuICAgIGxldCB7IGF1dGggLCBob3N0bmFtZSAgfSA9IHVybE9iajtcbiAgICBsZXQgcHJvdG9jb2wgPSB1cmxPYmoucHJvdG9jb2wgfHwgJyc7XG4gICAgbGV0IHBhdGhuYW1lID0gdXJsT2JqLnBhdGhuYW1lIHx8ICcnO1xuICAgIGxldCBoYXNoID0gdXJsT2JqLmhhc2ggfHwgJyc7XG4gICAgbGV0IHF1ZXJ5ID0gdXJsT2JqLnF1ZXJ5IHx8ICcnO1xuICAgIGxldCBob3N0ID0gZmFsc2U7XG4gICAgYXV0aCA9IGF1dGggPyBlbmNvZGVVUklDb21wb25lbnQoYXV0aCkucmVwbGFjZSgvJTNBL2ksICc6JykgKyAnQCcgOiAnJztcbiAgICBpZiAodXJsT2JqLmhvc3QpIHtcbiAgICAgICAgaG9zdCA9IGF1dGggKyB1cmxPYmouaG9zdDtcbiAgICB9IGVsc2UgaWYgKGhvc3RuYW1lKSB7XG4gICAgICAgIGhvc3QgPSBhdXRoICsgKH5ob3N0bmFtZS5pbmRleE9mKCc6JykgPyBgWyR7aG9zdG5hbWV9XWAgOiBob3N0bmFtZSk7XG4gICAgICAgIGlmICh1cmxPYmoucG9ydCkge1xuICAgICAgICAgICAgaG9zdCArPSAnOicgKyB1cmxPYmoucG9ydDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAocXVlcnkgJiYgdHlwZW9mIHF1ZXJ5ID09PSAnb2JqZWN0Jykge1xuICAgICAgICBxdWVyeSA9IFN0cmluZyhxdWVyeXN0cmluZy51cmxRdWVyeVRvU2VhcmNoUGFyYW1zKHF1ZXJ5KSk7XG4gICAgfVxuICAgIGxldCBzZWFyY2ggPSB1cmxPYmouc2VhcmNoIHx8IHF1ZXJ5ICYmIGA/JHtxdWVyeX1gIHx8ICcnO1xuICAgIGlmIChwcm90b2NvbCAmJiBwcm90b2NvbC5zdWJzdHIoLTEpICE9PSAnOicpIHByb3RvY29sICs9ICc6JztcbiAgICBpZiAodXJsT2JqLnNsYXNoZXMgfHwgKCFwcm90b2NvbCB8fCBzbGFzaGVkUHJvdG9jb2xzLnRlc3QocHJvdG9jb2wpKSAmJiBob3N0ICE9PSBmYWxzZSkge1xuICAgICAgICBob3N0ID0gJy8vJyArIChob3N0IHx8ICcnKTtcbiAgICAgICAgaWYgKHBhdGhuYW1lICYmIHBhdGhuYW1lWzBdICE9PSAnLycpIHBhdGhuYW1lID0gJy8nICsgcGF0aG5hbWU7XG4gICAgfSBlbHNlIGlmICghaG9zdCkge1xuICAgICAgICBob3N0ID0gJyc7XG4gICAgfVxuICAgIGlmIChoYXNoICYmIGhhc2hbMF0gIT09ICcjJykgaGFzaCA9ICcjJyArIGhhc2g7XG4gICAgaWYgKHNlYXJjaCAmJiBzZWFyY2hbMF0gIT09ICc/Jykgc2VhcmNoID0gJz8nICsgc2VhcmNoO1xuICAgIHBhdGhuYW1lID0gcGF0aG5hbWUucmVwbGFjZSgvWz8jXS9nLCBlbmNvZGVVUklDb21wb25lbnQpO1xuICAgIHNlYXJjaCA9IHNlYXJjaC5yZXBsYWNlKCcjJywgJyUyMycpO1xuICAgIHJldHVybiBgJHtwcm90b2NvbH0ke2hvc3R9JHtwYXRobmFtZX0ke3NlYXJjaH0ke2hhc2h9YDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Zm9ybWF0LXVybC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJmb3JtYXRVcmwiLCJxdWVyeXN0cmluZyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIm9iaiIsIl9fZXNNb2R1bGUiLCJuZXdPYmoiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZ2V0Iiwic2V0Iiwic2xhc2hlZFByb3RvY29scyIsInVybE9iaiIsImF1dGgiLCJob3N0bmFtZSIsInByb3RvY29sIiwicGF0aG5hbWUiLCJoYXNoIiwicXVlcnkiLCJob3N0IiwiZW5jb2RlVVJJQ29tcG9uZW50IiwicmVwbGFjZSIsImluZGV4T2YiLCJwb3J0IiwiU3RyaW5nIiwidXJsUXVlcnlUb1NlYXJjaFBhcmFtcyIsInNlYXJjaCIsInN1YnN0ciIsInNsYXNoZXMiLCJ0ZXN0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/format-url.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/get-asset-path-from-route.js": +/*!*************************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/get-asset-path-from-route.js ***! + \*************************************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = getAssetPathFromRoute;\n\nfunction getAssetPathFromRoute(route) {\n var ext = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var path = route === '/' ? '/index' : /^\\/index(\\/|$)/.test(route) ? \"/index\".concat(route) : \"\".concat(route);\n return path + ext;\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2dldC1hc3NldC1wYXRoLWZyb20tcm91dGUuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxrQkFBQSxHQUFrQkUscUJBQWxCOztBQUNBLFNBQVNBLHFCQUFULENBQStCQyxLQUEvQixFQUFnRDtBQUFBLE1BQVZDLEdBQVUsdUVBQUosRUFBSTtBQUM1QyxNQUFNQyxJQUFJLEdBQUdGLEtBQUssS0FBSyxHQUFWLEdBQWdCLFFBQWhCLEdBQTJCLGlCQUFpQkcsSUFBakIsQ0FBc0JILEtBQXRCLG9CQUF3Q0EsS0FBeEMsY0FBcURBLEtBQXJELENBQXhDO0FBQ0EsU0FBT0UsSUFBSSxHQUFHRCxHQUFkO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zaGFyZWQvbGliL3JvdXRlci91dGlscy9nZXQtYXNzZXQtcGF0aC1mcm9tLXJvdXRlLmpzP2E2ZmYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSBnZXRBc3NldFBhdGhGcm9tUm91dGU7XG5mdW5jdGlvbiBnZXRBc3NldFBhdGhGcm9tUm91dGUocm91dGUsIGV4dCA9ICcnKSB7XG4gICAgY29uc3QgcGF0aCA9IHJvdXRlID09PSAnLycgPyAnL2luZGV4JyA6IC9eXFwvaW5kZXgoXFwvfCQpLy50ZXN0KHJvdXRlKSA/IGAvaW5kZXgke3JvdXRlfWAgOiBgJHtyb3V0ZX1gO1xuICAgIHJldHVybiBwYXRoICsgZXh0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1nZXQtYXNzZXQtcGF0aC1mcm9tLXJvdXRlLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImdldEFzc2V0UGF0aEZyb21Sb3V0ZSIsInJvdXRlIiwiZXh0IiwicGF0aCIsInRlc3QiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/get-asset-path-from-route.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/get-middleware-regex.js": +/*!********************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/get-middleware-regex.js ***! + \********************************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.getMiddlewareRegex = getMiddlewareRegex;\n\nvar _routeRegex = __webpack_require__(/*! ./route-regex */ \"./node_modules/next/dist/shared/lib/router/utils/route-regex.js\");\n\nfunction getMiddlewareRegex(normalizedRoute) {\n var catchAll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var result = (0, _routeRegex).getParametrizedRoute(normalizedRoute);\n var catchAllRegex = catchAll ? '(?!_next).*' : '';\n var catchAllGroupedRegex = catchAll ? '(?:(/.*)?)' : '';\n\n if ('routeKeys' in result) {\n if (result.parameterizedRoute === '/') {\n return {\n groups: {},\n namedRegex: \"^/\".concat(catchAllRegex, \"$\"),\n re: new RegExp(\"^/\".concat(catchAllRegex, \"$\")),\n routeKeys: {}\n };\n }\n\n return {\n groups: result.groups,\n namedRegex: \"^\".concat(result.namedParameterizedRoute).concat(catchAllGroupedRegex, \"$\"),\n re: new RegExp(\"^\".concat(result.parameterizedRoute).concat(catchAllGroupedRegex, \"$\")),\n routeKeys: result.routeKeys\n };\n }\n\n if (result.parameterizedRoute === '/') {\n return {\n groups: {},\n re: new RegExp(\"^/\".concat(catchAllRegex, \"$\"))\n };\n }\n\n return {\n groups: {},\n re: new RegExp(\"^\".concat(result.parameterizedRoute).concat(catchAllGroupedRegex, \"$\"))\n };\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2dldC1taWRkbGV3YXJlLXJlZ2V4LmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7QUFDYkEsOENBQTZDO0FBQ3pDRyxFQUFBQSxLQUFLLEVBQUU7QUFEa0MsQ0FBN0M7QUFHQUQsMEJBQUEsR0FBNkJFLGtCQUE3Qjs7QUFDQSxJQUFJQyxXQUFXLEdBQUdDLG1CQUFPLENBQUMsc0ZBQUQsQ0FBekI7O0FBQ0EsU0FBU0Ysa0JBQVQsQ0FBNEJHLGVBQTVCLEVBQThEO0FBQUEsTUFBakJDLFFBQWlCLHVFQUFOLElBQU07QUFDMUQsTUFBTUMsTUFBTSxHQUFHLENBQUMsR0FBR0osV0FBSixFQUFpQkssb0JBQWpCLENBQXNDSCxlQUF0QyxDQUFmO0FBQ0EsTUFBSUksYUFBYSxHQUFHSCxRQUFRLEdBQUcsYUFBSCxHQUFtQixFQUEvQztBQUNBLE1BQUlJLG9CQUFvQixHQUFHSixRQUFRLEdBQUcsWUFBSCxHQUFrQixFQUFyRDs7QUFDQSxNQUFJLGVBQWVDLE1BQW5CLEVBQTJCO0FBQ3ZCLFFBQUlBLE1BQU0sQ0FBQ0ksa0JBQVAsS0FBOEIsR0FBbEMsRUFBdUM7QUFDbkMsYUFBTztBQUNIQyxRQUFBQSxNQUFNLEVBQUUsRUFETDtBQUdIQyxRQUFBQSxVQUFVLGNBQU9KLGFBQVAsTUFIUDtBQUlISyxRQUFBQSxFQUFFLEVBQUUsSUFBSUMsTUFBSixhQUFnQk4sYUFBaEIsT0FKRDtBQUtITyxRQUFBQSxTQUFTLEVBQUU7QUFMUixPQUFQO0FBUUg7O0FBQ0QsV0FBTztBQUNISixNQUFBQSxNQUFNLEVBQUVMLE1BQU0sQ0FBQ0ssTUFEWjtBQUVIQyxNQUFBQSxVQUFVLGFBQU1OLE1BQU0sQ0FBQ1UsdUJBQWIsU0FBdUNQLG9CQUF2QyxNQUZQO0FBR0hJLE1BQUFBLEVBQUUsRUFBRSxJQUFJQyxNQUFKLFlBQWVSLE1BQU0sQ0FBQ0ksa0JBQXRCLFNBQTJDRCxvQkFBM0MsT0FIRDtBQUlITSxNQUFBQSxTQUFTLEVBQUVULE1BQU0sQ0FBQ1M7QUFKZixLQUFQO0FBTUg7O0FBQ0QsTUFBSVQsTUFBTSxDQUFDSSxrQkFBUCxLQUE4QixHQUFsQyxFQUF1QztBQUNuQyxXQUFPO0FBQ0hDLE1BQUFBLE1BQU0sRUFBRSxFQURMO0FBR0hFLE1BQUFBLEVBQUUsRUFBRSxJQUFJQyxNQUFKLGFBQWdCTixhQUFoQjtBQUhELEtBQVA7QUFLSDs7QUFDRCxTQUFPO0FBQ0hHLElBQUFBLE1BQU0sRUFBRSxFQURMO0FBR0hFLElBQUFBLEVBQUUsRUFBRSxJQUFJQyxNQUFKLFlBQWVSLE1BQU0sQ0FBQ0ksa0JBQXRCLFNBQTJDRCxvQkFBM0M7QUFIRCxHQUFQO0FBS0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zaGFyZWQvbGliL3JvdXRlci91dGlscy9nZXQtbWlkZGxld2FyZS1yZWdleC5qcz8wNDUyIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5nZXRNaWRkbGV3YXJlUmVnZXggPSBnZXRNaWRkbGV3YXJlUmVnZXg7XG52YXIgX3JvdXRlUmVnZXggPSByZXF1aXJlKFwiLi9yb3V0ZS1yZWdleFwiKTtcbmZ1bmN0aW9uIGdldE1pZGRsZXdhcmVSZWdleChub3JtYWxpemVkUm91dGUsIGNhdGNoQWxsID0gdHJ1ZSkge1xuICAgIGNvbnN0IHJlc3VsdCA9ICgwLCBfcm91dGVSZWdleCkuZ2V0UGFyYW1ldHJpemVkUm91dGUobm9ybWFsaXplZFJvdXRlKTtcbiAgICBsZXQgY2F0Y2hBbGxSZWdleCA9IGNhdGNoQWxsID8gJyg/IV9uZXh0KS4qJyA6ICcnO1xuICAgIGxldCBjYXRjaEFsbEdyb3VwZWRSZWdleCA9IGNhdGNoQWxsID8gJyg/OigvLiopPyknIDogJyc7XG4gICAgaWYgKCdyb3V0ZUtleXMnIGluIHJlc3VsdCkge1xuICAgICAgICBpZiAocmVzdWx0LnBhcmFtZXRlcml6ZWRSb3V0ZSA9PT0gJy8nKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGdyb3Vwczoge1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgbmFtZWRSZWdleDogYF4vJHtjYXRjaEFsbFJlZ2V4fSRgLFxuICAgICAgICAgICAgICAgIHJlOiBuZXcgUmVnRXhwKGBeLyR7Y2F0Y2hBbGxSZWdleH0kYCksXG4gICAgICAgICAgICAgICAgcm91dGVLZXlzOiB7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZ3JvdXBzOiByZXN1bHQuZ3JvdXBzLFxuICAgICAgICAgICAgbmFtZWRSZWdleDogYF4ke3Jlc3VsdC5uYW1lZFBhcmFtZXRlcml6ZWRSb3V0ZX0ke2NhdGNoQWxsR3JvdXBlZFJlZ2V4fSRgLFxuICAgICAgICAgICAgcmU6IG5ldyBSZWdFeHAoYF4ke3Jlc3VsdC5wYXJhbWV0ZXJpemVkUm91dGV9JHtjYXRjaEFsbEdyb3VwZWRSZWdleH0kYCksXG4gICAgICAgICAgICByb3V0ZUtleXM6IHJlc3VsdC5yb3V0ZUtleXNcbiAgICAgICAgfTtcbiAgICB9XG4gICAgaWYgKHJlc3VsdC5wYXJhbWV0ZXJpemVkUm91dGUgPT09ICcvJykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZ3JvdXBzOiB7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmU6IG5ldyBSZWdFeHAoYF4vJHtjYXRjaEFsbFJlZ2V4fSRgKVxuICAgICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBncm91cHM6IHtcbiAgICAgICAgfSxcbiAgICAgICAgcmU6IG5ldyBSZWdFeHAoYF4ke3Jlc3VsdC5wYXJhbWV0ZXJpemVkUm91dGV9JHtjYXRjaEFsbEdyb3VwZWRSZWdleH0kYClcbiAgICB9O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1nZXQtbWlkZGxld2FyZS1yZWdleC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJnZXRNaWRkbGV3YXJlUmVnZXgiLCJfcm91dGVSZWdleCIsInJlcXVpcmUiLCJub3JtYWxpemVkUm91dGUiLCJjYXRjaEFsbCIsInJlc3VsdCIsImdldFBhcmFtZXRyaXplZFJvdXRlIiwiY2F0Y2hBbGxSZWdleCIsImNhdGNoQWxsR3JvdXBlZFJlZ2V4IiwicGFyYW1ldGVyaXplZFJvdXRlIiwiZ3JvdXBzIiwibmFtZWRSZWdleCIsInJlIiwiUmVnRXhwIiwicm91dGVLZXlzIiwibmFtZWRQYXJhbWV0ZXJpemVkUm91dGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/get-middleware-regex.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js": +/*!**********************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js ***! + \**********************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.isDynamicRoute = isDynamicRoute; // Identify /[param]/ in route string\n\nvar TEST_ROUTE = /\\/\\[[^/]+?\\](?=\\/|$)/;\n\nfunction isDynamicRoute(route) {\n return TEST_ROUTE.test(route);\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWR5bmFtaWMuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxzQkFBQSxHQUF5QkUsY0FBekIsRUFDQTs7QUFDQSxJQUFNQyxVQUFVLEdBQUcsc0JBQW5COztBQUNBLFNBQVNELGNBQVQsQ0FBd0JFLEtBQXhCLEVBQStCO0FBQzNCLFNBQU9ELFVBQVUsQ0FBQ0UsSUFBWCxDQUFnQkQsS0FBaEIsQ0FBUDtBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaXMtZHluYW1pYy5qcz80NmY5Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5pc0R5bmFtaWNSb3V0ZSA9IGlzRHluYW1pY1JvdXRlO1xuLy8gSWRlbnRpZnkgL1twYXJhbV0vIGluIHJvdXRlIHN0cmluZ1xuY29uc3QgVEVTVF9ST1VURSA9IC9cXC9cXFtbXi9dKz9cXF0oPz1cXC98JCkvO1xuZnVuY3Rpb24gaXNEeW5hbWljUm91dGUocm91dGUpIHtcbiAgICByZXR1cm4gVEVTVF9ST1VURS50ZXN0KHJvdXRlKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXMtZHluYW1pYy5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJpc0R5bmFtaWNSb3V0ZSIsIlRFU1RfUk9VVEUiLCJyb3V0ZSIsInRlc3QiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js": +/*!******************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js ***! + \******************************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.parseRelativeUrl = parseRelativeUrl;\n\nvar _utils = __webpack_require__(/*! ../../utils */ \"./node_modules/next/dist/shared/lib/utils.js\");\n\nvar _querystring = __webpack_require__(/*! ./querystring */ \"./node_modules/next/dist/shared/lib/router/utils/querystring.js\");\n\nfunction parseRelativeUrl(url, base) {\n var globalBase = new URL( false ? 0 : (0, _utils).getLocationOrigin());\n var resolvedBase = base ? new URL(base, globalBase) : globalBase;\n\n var _URL = new URL(url, resolvedBase),\n pathname = _URL.pathname,\n searchParams = _URL.searchParams,\n search = _URL.search,\n hash = _URL.hash,\n href = _URL.href,\n origin = _URL.origin;\n\n if (origin !== globalBase.origin) {\n throw new Error(\"invariant: invalid relative URL, router received \".concat(url));\n }\n\n return {\n pathname: pathname,\n query: (0, _querystring).searchParamsToUrlQuery(searchParams),\n search: search,\n hash: hash,\n href: href.slice(globalBase.origin.length)\n };\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhcnNlLXJlbGF0aXZlLXVybC5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELHdCQUFBLEdBQTJCRSxnQkFBM0I7O0FBQ0EsSUFBSUMsTUFBTSxHQUFHQyxtQkFBTyxDQUFDLGlFQUFELENBQXBCOztBQUNBLElBQUlDLFlBQVksR0FBR0QsbUJBQU8sQ0FBQyxzRkFBRCxDQUExQjs7QUFDQSxTQUFTRixnQkFBVCxDQUEwQkksR0FBMUIsRUFBK0JDLElBQS9CLEVBQXFDO0FBQ2pDLE1BQU1DLFVBQVUsR0FBRyxJQUFJQyxHQUFKLENBQVEsU0FBZ0MsQ0FBaEMsR0FBNkMsQ0FBQyxHQUFHTixNQUFKLEVBQVlPLGlCQUFaLEVBQXJELENBQW5CO0FBQ0EsTUFBTUMsWUFBWSxHQUFHSixJQUFJLEdBQUcsSUFBSUUsR0FBSixDQUFRRixJQUFSLEVBQWNDLFVBQWQsQ0FBSCxHQUErQkEsVUFBeEQ7O0FBQ0EsYUFBcUUsSUFBSUMsR0FBSixDQUFRSCxHQUFSLEVBQWFLLFlBQWIsQ0FBckU7QUFBQSxNQUFRQyxRQUFSLFFBQVFBLFFBQVI7QUFBQSxNQUFtQkMsWUFBbkIsUUFBbUJBLFlBQW5CO0FBQUEsTUFBa0NDLE1BQWxDLFFBQWtDQSxNQUFsQztBQUFBLE1BQTJDQyxJQUEzQyxRQUEyQ0EsSUFBM0M7QUFBQSxNQUFrREMsSUFBbEQsUUFBa0RBLElBQWxEO0FBQUEsTUFBeURDLE1BQXpELFFBQXlEQSxNQUF6RDs7QUFDQSxNQUFJQSxNQUFNLEtBQUtULFVBQVUsQ0FBQ1MsTUFBMUIsRUFBa0M7QUFDOUIsVUFBTSxJQUFJQyxLQUFKLDREQUE4RFosR0FBOUQsRUFBTjtBQUNIOztBQUNELFNBQU87QUFDSE0sSUFBQUEsUUFBUSxFQUFSQSxRQURHO0FBRUhPLElBQUFBLEtBQUssRUFBRSxDQUFDLEdBQUdkLFlBQUosRUFBa0JlLHNCQUFsQixDQUF5Q1AsWUFBekMsQ0FGSjtBQUdIQyxJQUFBQSxNQUFNLEVBQU5BLE1BSEc7QUFJSEMsSUFBQUEsSUFBSSxFQUFKQSxJQUpHO0FBS0hDLElBQUFBLElBQUksRUFBRUEsSUFBSSxDQUFDSyxLQUFMLENBQVdiLFVBQVUsQ0FBQ1MsTUFBWCxDQUFrQkssTUFBN0I7QUFMSCxHQUFQO0FBT0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zaGFyZWQvbGliL3JvdXRlci91dGlscy9wYXJzZS1yZWxhdGl2ZS11cmwuanM/NGVkZiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMucGFyc2VSZWxhdGl2ZVVybCA9IHBhcnNlUmVsYXRpdmVVcmw7XG52YXIgX3V0aWxzID0gcmVxdWlyZShcIi4uLy4uL3V0aWxzXCIpO1xudmFyIF9xdWVyeXN0cmluZyA9IHJlcXVpcmUoXCIuL3F1ZXJ5c3RyaW5nXCIpO1xuZnVuY3Rpb24gcGFyc2VSZWxhdGl2ZVVybCh1cmwsIGJhc2UpIHtcbiAgICBjb25zdCBnbG9iYWxCYXNlID0gbmV3IFVSTCh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyA/ICdodHRwOi8vbicgOiAoMCwgX3V0aWxzKS5nZXRMb2NhdGlvbk9yaWdpbigpKTtcbiAgICBjb25zdCByZXNvbHZlZEJhc2UgPSBiYXNlID8gbmV3IFVSTChiYXNlLCBnbG9iYWxCYXNlKSA6IGdsb2JhbEJhc2U7XG4gICAgY29uc3QgeyBwYXRobmFtZSAsIHNlYXJjaFBhcmFtcyAsIHNlYXJjaCAsIGhhc2ggLCBocmVmICwgb3JpZ2luICB9ID0gbmV3IFVSTCh1cmwsIHJlc29sdmVkQmFzZSk7XG4gICAgaWYgKG9yaWdpbiAhPT0gZ2xvYmFsQmFzZS5vcmlnaW4pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhcmlhbnQ6IGludmFsaWQgcmVsYXRpdmUgVVJMLCByb3V0ZXIgcmVjZWl2ZWQgJHt1cmx9YCk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHBhdGhuYW1lLFxuICAgICAgICBxdWVyeTogKDAsIF9xdWVyeXN0cmluZykuc2VhcmNoUGFyYW1zVG9VcmxRdWVyeShzZWFyY2hQYXJhbXMpLFxuICAgICAgICBzZWFyY2gsXG4gICAgICAgIGhhc2gsXG4gICAgICAgIGhyZWY6IGhyZWYuc2xpY2UoZ2xvYmFsQmFzZS5vcmlnaW4ubGVuZ3RoKVxuICAgIH07XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBhcnNlLXJlbGF0aXZlLXVybC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJwYXJzZVJlbGF0aXZlVXJsIiwiX3V0aWxzIiwicmVxdWlyZSIsIl9xdWVyeXN0cmluZyIsInVybCIsImJhc2UiLCJnbG9iYWxCYXNlIiwiVVJMIiwiZ2V0TG9jYXRpb25PcmlnaW4iLCJyZXNvbHZlZEJhc2UiLCJwYXRobmFtZSIsInNlYXJjaFBhcmFtcyIsInNlYXJjaCIsImhhc2giLCJocmVmIiwib3JpZ2luIiwiRXJyb3IiLCJxdWVyeSIsInNlYXJjaFBhcmFtc1RvVXJsUXVlcnkiLCJzbGljZSIsImxlbmd0aCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/querystring.js": +/*!***********************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/querystring.js ***! + \***********************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _slicedToArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.searchParamsToUrlQuery = searchParamsToUrlQuery;\nexports.urlQueryToSearchParams = urlQueryToSearchParams;\nexports.assign = assign;\n\nfunction searchParamsToUrlQuery(searchParams) {\n var query = {};\n searchParams.forEach(function (value, key) {\n if (typeof query[key] === 'undefined') {\n query[key] = value;\n } else if (Array.isArray(query[key])) {\n query[key].push(value);\n } else {\n query[key] = [query[key], value];\n }\n });\n return query;\n}\n\nfunction stringifyUrlQueryParam(param) {\n if (typeof param === 'string' || typeof param === 'number' && !isNaN(param) || typeof param === 'boolean') {\n return String(param);\n } else {\n return '';\n }\n}\n\nfunction urlQueryToSearchParams(urlQuery) {\n var result = new URLSearchParams();\n Object.entries(urlQuery).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n\n if (Array.isArray(value)) {\n value.forEach(function (item) {\n return result.append(key, stringifyUrlQueryParam(item));\n });\n } else {\n result.set(key, stringifyUrlQueryParam(value));\n }\n });\n return result;\n}\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\n searchParamsList.forEach(function (searchParams) {\n Array.from(searchParams.keys()).forEach(function (key) {\n return target[\"delete\"](key);\n });\n searchParams.forEach(function (value, key) {\n return target.append(key, value);\n });\n });\n return target;\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3F1ZXJ5c3RyaW5nLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7OztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCw4QkFBQSxHQUFpQ0Usc0JBQWpDO0FBQ0FGLDhCQUFBLEdBQWlDRyxzQkFBakM7QUFDQUgsY0FBQSxHQUFpQkksTUFBakI7O0FBQ0EsU0FBU0Ysc0JBQVQsQ0FBZ0NHLFlBQWhDLEVBQThDO0FBQzFDLE1BQU1DLEtBQUssR0FBRyxFQUFkO0FBRUFELEVBQUFBLFlBQVksQ0FBQ0UsT0FBYixDQUFxQixVQUFDTixLQUFELEVBQVFPLEdBQVIsRUFBYztBQUMvQixRQUFJLE9BQU9GLEtBQUssQ0FBQ0UsR0FBRCxDQUFaLEtBQXNCLFdBQTFCLEVBQXVDO0FBQ25DRixNQUFBQSxLQUFLLENBQUNFLEdBQUQsQ0FBTCxHQUFhUCxLQUFiO0FBQ0gsS0FGRCxNQUVPLElBQUlRLEtBQUssQ0FBQ0MsT0FBTixDQUFjSixLQUFLLENBQUNFLEdBQUQsQ0FBbkIsQ0FBSixFQUErQjtBQUNsQ0YsTUFBQUEsS0FBSyxDQUFDRSxHQUFELENBQUwsQ0FBV0csSUFBWCxDQUFnQlYsS0FBaEI7QUFDSCxLQUZNLE1BRUE7QUFDSEssTUFBQUEsS0FBSyxDQUFDRSxHQUFELENBQUwsR0FBYSxDQUNURixLQUFLLENBQUNFLEdBQUQsQ0FESSxFQUVUUCxLQUZTLENBQWI7QUFJSDtBQUNKLEdBWEQ7QUFZQSxTQUFPSyxLQUFQO0FBQ0g7O0FBQ0QsU0FBU00sc0JBQVQsQ0FBZ0NDLEtBQWhDLEVBQXVDO0FBQ25DLE1BQUksT0FBT0EsS0FBUCxLQUFpQixRQUFqQixJQUE2QixPQUFPQSxLQUFQLEtBQWlCLFFBQWpCLElBQTZCLENBQUNDLEtBQUssQ0FBQ0QsS0FBRCxDQUFoRSxJQUEyRSxPQUFPQSxLQUFQLEtBQWlCLFNBQWhHLEVBQTJHO0FBQ3ZHLFdBQU9FLE1BQU0sQ0FBQ0YsS0FBRCxDQUFiO0FBQ0gsR0FGRCxNQUVPO0FBQ0gsV0FBTyxFQUFQO0FBQ0g7QUFDSjs7QUFDRCxTQUFTVixzQkFBVCxDQUFnQ2EsUUFBaEMsRUFBMEM7QUFDdEMsTUFBTUMsTUFBTSxHQUFHLElBQUlDLGVBQUosRUFBZjtBQUNBcEIsRUFBQUEsTUFBTSxDQUFDcUIsT0FBUCxDQUFlSCxRQUFmLEVBQXlCVCxPQUF6QixDQUFpQyxnQkFBZ0I7QUFBQTtBQUFBLFFBQWRDLEdBQWM7QUFBQSxRQUFUUCxLQUFTOztBQUM3QyxRQUFJUSxLQUFLLENBQUNDLE9BQU4sQ0FBY1QsS0FBZCxDQUFKLEVBQTBCO0FBQ3RCQSxNQUFBQSxLQUFLLENBQUNNLE9BQU4sQ0FBYyxVQUFDYSxJQUFEO0FBQUEsZUFBUUgsTUFBTSxDQUFDSSxNQUFQLENBQWNiLEdBQWQsRUFBbUJJLHNCQUFzQixDQUFDUSxJQUFELENBQXpDLENBQVI7QUFBQSxPQUFkO0FBRUgsS0FIRCxNQUdPO0FBQ0hILE1BQUFBLE1BQU0sQ0FBQ0ssR0FBUCxDQUFXZCxHQUFYLEVBQWdCSSxzQkFBc0IsQ0FBQ1gsS0FBRCxDQUF0QztBQUNIO0FBQ0osR0FQRDtBQVFBLFNBQU9nQixNQUFQO0FBQ0g7O0FBQ0QsU0FBU2IsTUFBVCxDQUFnQm1CLE1BQWhCLEVBQTZDO0FBQUEsb0NBQWxCQyxnQkFBa0I7QUFBbEJBLElBQUFBLGdCQUFrQjtBQUFBOztBQUN6Q0EsRUFBQUEsZ0JBQWdCLENBQUNqQixPQUFqQixDQUF5QixVQUFDRixZQUFELEVBQWdCO0FBQ3JDSSxJQUFBQSxLQUFLLENBQUNnQixJQUFOLENBQVdwQixZQUFZLENBQUNxQixJQUFiLEVBQVgsRUFBZ0NuQixPQUFoQyxDQUF3QyxVQUFDQyxHQUFEO0FBQUEsYUFBT2UsTUFBTSxVQUFOLENBQWNmLEdBQWQsQ0FBUDtBQUFBLEtBQXhDO0FBRUFILElBQUFBLFlBQVksQ0FBQ0UsT0FBYixDQUFxQixVQUFDTixLQUFELEVBQVFPLEdBQVI7QUFBQSxhQUFjZSxNQUFNLENBQUNGLE1BQVAsQ0FBY2IsR0FBZCxFQUFtQlAsS0FBbkIsQ0FBZDtBQUFBLEtBQXJCO0FBRUgsR0FMRDtBQU1BLFNBQU9zQixNQUFQO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zaGFyZWQvbGliL3JvdXRlci91dGlscy9xdWVyeXN0cmluZy5qcz8wMTQ5Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5zZWFyY2hQYXJhbXNUb1VybFF1ZXJ5ID0gc2VhcmNoUGFyYW1zVG9VcmxRdWVyeTtcbmV4cG9ydHMudXJsUXVlcnlUb1NlYXJjaFBhcmFtcyA9IHVybFF1ZXJ5VG9TZWFyY2hQYXJhbXM7XG5leHBvcnRzLmFzc2lnbiA9IGFzc2lnbjtcbmZ1bmN0aW9uIHNlYXJjaFBhcmFtc1RvVXJsUXVlcnkoc2VhcmNoUGFyYW1zKSB7XG4gICAgY29uc3QgcXVlcnkgPSB7XG4gICAgfTtcbiAgICBzZWFyY2hQYXJhbXMuZm9yRWFjaCgodmFsdWUsIGtleSk9PntcbiAgICAgICAgaWYgKHR5cGVvZiBxdWVyeVtrZXldID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgcXVlcnlba2V5XSA9IHZhbHVlO1xuICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkocXVlcnlba2V5XSkpIHtcbiAgICAgICAgICAgIHF1ZXJ5W2tleV0ucHVzaCh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBxdWVyeVtrZXldID0gW1xuICAgICAgICAgICAgICAgIHF1ZXJ5W2tleV0sXG4gICAgICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICAgIF07XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcXVlcnk7XG59XG5mdW5jdGlvbiBzdHJpbmdpZnlVcmxRdWVyeVBhcmFtKHBhcmFtKSB7XG4gICAgaWYgKHR5cGVvZiBwYXJhbSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHBhcmFtID09PSAnbnVtYmVyJyAmJiAhaXNOYU4ocGFyYW0pIHx8IHR5cGVvZiBwYXJhbSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgIHJldHVybiBTdHJpbmcocGFyYW0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG59XG5mdW5jdGlvbiB1cmxRdWVyeVRvU2VhcmNoUGFyYW1zKHVybFF1ZXJ5KSB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICAgIE9iamVjdC5lbnRyaWVzKHVybFF1ZXJ5KS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pPT57XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgdmFsdWUuZm9yRWFjaCgoaXRlbSk9PnJlc3VsdC5hcHBlbmQoa2V5LCBzdHJpbmdpZnlVcmxRdWVyeVBhcmFtKGl0ZW0pKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc3VsdC5zZXQoa2V5LCBzdHJpbmdpZnlVcmxRdWVyeVBhcmFtKHZhbHVlKSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xufVxuZnVuY3Rpb24gYXNzaWduKHRhcmdldCwgLi4uc2VhcmNoUGFyYW1zTGlzdCkge1xuICAgIHNlYXJjaFBhcmFtc0xpc3QuZm9yRWFjaCgoc2VhcmNoUGFyYW1zKT0+e1xuICAgICAgICBBcnJheS5mcm9tKHNlYXJjaFBhcmFtcy5rZXlzKCkpLmZvckVhY2goKGtleSk9PnRhcmdldC5kZWxldGUoa2V5KVxuICAgICAgICApO1xuICAgICAgICBzZWFyY2hQYXJhbXMuZm9yRWFjaCgodmFsdWUsIGtleSk9PnRhcmdldC5hcHBlbmQoa2V5LCB2YWx1ZSlcbiAgICAgICAgKTtcbiAgICB9KTtcbiAgICByZXR1cm4gdGFyZ2V0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1xdWVyeXN0cmluZy5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5IiwidXJsUXVlcnlUb1NlYXJjaFBhcmFtcyIsImFzc2lnbiIsInNlYXJjaFBhcmFtcyIsInF1ZXJ5IiwiZm9yRWFjaCIsImtleSIsIkFycmF5IiwiaXNBcnJheSIsInB1c2giLCJzdHJpbmdpZnlVcmxRdWVyeVBhcmFtIiwicGFyYW0iLCJpc05hTiIsIlN0cmluZyIsInVybFF1ZXJ5IiwicmVzdWx0IiwiVVJMU2VhcmNoUGFyYW1zIiwiZW50cmllcyIsIml0ZW0iLCJhcHBlbmQiLCJzZXQiLCJ0YXJnZXQiLCJzZWFyY2hQYXJhbXNMaXN0IiwiZnJvbSIsImtleXMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/querystring.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/route-matcher.js": +/*!*************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/route-matcher.js ***! + \*************************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.getRouteMatcher = getRouteMatcher;\n\nvar _utils = __webpack_require__(/*! ../../utils */ \"./node_modules/next/dist/shared/lib/utils.js\");\n\nfunction getRouteMatcher(routeRegex) {\n var re = routeRegex.re,\n groups = routeRegex.groups;\n return function (pathname) {\n var routeMatch = re.exec(pathname);\n\n if (!routeMatch) {\n return false;\n }\n\n var decode = function decode(param) {\n try {\n return decodeURIComponent(param);\n } catch (_) {\n throw new _utils.DecodeError('failed to decode param');\n }\n };\n\n var params = {};\n Object.keys(groups).forEach(function (slugName) {\n var g = groups[slugName];\n var m = routeMatch[g.pos];\n\n if (m !== undefined) {\n params[slugName] = ~m.indexOf('/') ? m.split('/').map(function (entry) {\n return decode(entry);\n }) : g.repeat ? [decode(m)] : decode(m);\n }\n });\n return params;\n };\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JvdXRlLW1hdGNoZXIuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCx1QkFBQSxHQUEwQkUsZUFBMUI7O0FBQ0EsSUFBSUMsTUFBTSxHQUFHQyxtQkFBTyxDQUFDLGlFQUFELENBQXBCOztBQUNBLFNBQVNGLGVBQVQsQ0FBeUJHLFVBQXpCLEVBQXFDO0FBQ2pDLE1BQVFDLEVBQVIsR0FBeUJELFVBQXpCLENBQVFDLEVBQVI7QUFBQSxNQUFhQyxNQUFiLEdBQXlCRixVQUF6QixDQUFhRSxNQUFiO0FBQ0EsU0FBTyxVQUFDQyxRQUFELEVBQVk7QUFDZixRQUFNQyxVQUFVLEdBQUdILEVBQUUsQ0FBQ0ksSUFBSCxDQUFRRixRQUFSLENBQW5COztBQUNBLFFBQUksQ0FBQ0MsVUFBTCxFQUFpQjtBQUNiLGFBQU8sS0FBUDtBQUNIOztBQUNELFFBQU1FLE1BQU0sR0FBRyxTQUFUQSxNQUFTLENBQUNDLEtBQUQsRUFBUztBQUNwQixVQUFJO0FBQ0EsZUFBT0Msa0JBQWtCLENBQUNELEtBQUQsQ0FBekI7QUFDSCxPQUZELENBRUUsT0FBT0UsQ0FBUCxFQUFVO0FBQ1IsY0FBTSxJQUFJWCxNQUFNLENBQUNZLFdBQVgsQ0FBdUIsd0JBQXZCLENBQU47QUFDSDtBQUNKLEtBTkQ7O0FBT0EsUUFBTUMsTUFBTSxHQUFHLEVBQWY7QUFFQWxCLElBQUFBLE1BQU0sQ0FBQ21CLElBQVAsQ0FBWVYsTUFBWixFQUFvQlcsT0FBcEIsQ0FBNEIsVUFBQ0MsUUFBRCxFQUFZO0FBQ3BDLFVBQU1DLENBQUMsR0FBR2IsTUFBTSxDQUFDWSxRQUFELENBQWhCO0FBQ0EsVUFBTUUsQ0FBQyxHQUFHWixVQUFVLENBQUNXLENBQUMsQ0FBQ0UsR0FBSCxDQUFwQjs7QUFDQSxVQUFJRCxDQUFDLEtBQUtFLFNBQVYsRUFBcUI7QUFDakJQLFFBQUFBLE1BQU0sQ0FBQ0csUUFBRCxDQUFOLEdBQW1CLENBQUNFLENBQUMsQ0FBQ0csT0FBRixDQUFVLEdBQVYsQ0FBRCxHQUFrQkgsQ0FBQyxDQUFDSSxLQUFGLENBQVEsR0FBUixFQUFhQyxHQUFiLENBQWlCLFVBQUNDLEtBQUQ7QUFBQSxpQkFBU2hCLE1BQU0sQ0FBQ2dCLEtBQUQsQ0FBZjtBQUFBLFNBQWpCLENBQWxCLEdBQ2ZQLENBQUMsQ0FBQ1EsTUFBRixHQUFXLENBQ1hqQixNQUFNLENBQUNVLENBQUQsQ0FESyxDQUFYLEdBRUFWLE1BQU0sQ0FBQ1UsQ0FBRCxDQUhWO0FBSUg7QUFDSixLQVREO0FBVUEsV0FBT0wsTUFBUDtBQUNILEdBekJEO0FBMEJIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcm91dGUtbWF0Y2hlci5qcz9jODZjIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5nZXRSb3V0ZU1hdGNoZXIgPSBnZXRSb3V0ZU1hdGNoZXI7XG52YXIgX3V0aWxzID0gcmVxdWlyZShcIi4uLy4uL3V0aWxzXCIpO1xuZnVuY3Rpb24gZ2V0Um91dGVNYXRjaGVyKHJvdXRlUmVnZXgpIHtcbiAgICBjb25zdCB7IHJlICwgZ3JvdXBzICB9ID0gcm91dGVSZWdleDtcbiAgICByZXR1cm4gKHBhdGhuYW1lKT0+e1xuICAgICAgICBjb25zdCByb3V0ZU1hdGNoID0gcmUuZXhlYyhwYXRobmFtZSk7XG4gICAgICAgIGlmICghcm91dGVNYXRjaCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRlY29kZSA9IChwYXJhbSk9PntcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChwYXJhbSk7XG4gICAgICAgICAgICB9IGNhdGNoIChfKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IF91dGlscy5EZWNvZGVFcnJvcignZmFpbGVkIHRvIGRlY29kZSBwYXJhbScpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICAgIH07XG4gICAgICAgIE9iamVjdC5rZXlzKGdyb3VwcykuZm9yRWFjaCgoc2x1Z05hbWUpPT57XG4gICAgICAgICAgICBjb25zdCBnID0gZ3JvdXBzW3NsdWdOYW1lXTtcbiAgICAgICAgICAgIGNvbnN0IG0gPSByb3V0ZU1hdGNoW2cucG9zXTtcbiAgICAgICAgICAgIGlmIChtICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBwYXJhbXNbc2x1Z05hbWVdID0gfm0uaW5kZXhPZignLycpID8gbS5zcGxpdCgnLycpLm1hcCgoZW50cnkpPT5kZWNvZGUoZW50cnkpXG4gICAgICAgICAgICAgICAgKSA6IGcucmVwZWF0ID8gW1xuICAgICAgICAgICAgICAgICAgICBkZWNvZGUobSlcbiAgICAgICAgICAgICAgICBdIDogZGVjb2RlKG0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHBhcmFtcztcbiAgICB9O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yb3V0ZS1tYXRjaGVyLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImdldFJvdXRlTWF0Y2hlciIsIl91dGlscyIsInJlcXVpcmUiLCJyb3V0ZVJlZ2V4IiwicmUiLCJncm91cHMiLCJwYXRobmFtZSIsInJvdXRlTWF0Y2giLCJleGVjIiwiZGVjb2RlIiwicGFyYW0iLCJkZWNvZGVVUklDb21wb25lbnQiLCJfIiwiRGVjb2RlRXJyb3IiLCJwYXJhbXMiLCJrZXlzIiwiZm9yRWFjaCIsInNsdWdOYW1lIiwiZyIsIm0iLCJwb3MiLCJ1bmRlZmluZWQiLCJpbmRleE9mIiwic3BsaXQiLCJtYXAiLCJlbnRyeSIsInJlcGVhdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/route-matcher.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/route-regex.js": +/*!***********************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/route-regex.js ***! + \***********************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.getParametrizedRoute = getParametrizedRoute;\nexports.getRouteRegex = getRouteRegex; // this isn't importing the escape-string-regex module\n// to reduce bytes\n\nfunction escapeRegex(str) {\n return str.replace(/[|\\\\{}()[\\]^$+*?.-]/g, '\\\\$&');\n}\n\nfunction parseParameter(param) {\n var optional = param.startsWith('[') && param.endsWith(']');\n\n if (optional) {\n param = param.slice(1, -1);\n }\n\n var repeat = param.startsWith('...');\n\n if (repeat) {\n param = param.slice(3);\n }\n\n return {\n key: param,\n repeat: repeat,\n optional: optional\n };\n}\n\nfunction getParametrizedRoute(route) {\n var segments = (route.replace(/\\/$/, '') || '/').slice(1).split('/');\n var groups = {};\n var groupIndex = 1;\n var parameterizedRoute = segments.map(function (segment) {\n if (segment.startsWith('[') && segment.endsWith(']')) {\n var _parseParameter = parseParameter(segment.slice(1, -1)),\n key = _parseParameter.key,\n optional = _parseParameter.optional,\n repeat = _parseParameter.repeat;\n\n groups[key] = {\n pos: groupIndex++,\n repeat: repeat,\n optional: optional\n };\n return repeat ? optional ? '(?:/(.+?))?' : '/(.+?)' : '/([^/]+?)';\n } else {\n return \"/\".concat(escapeRegex(segment));\n }\n }).join(''); // dead code eliminate for browser since it's only needed\n // while generating routes-manifest\n\n if (false) { var namedParameterizedRoute, routeKeys, getSafeRouteKey, routeKeyCharLength, routeKeyCharCode; }\n\n return {\n parameterizedRoute: parameterizedRoute,\n groups: groups\n };\n}\n\nfunction getRouteRegex(normalizedRoute) {\n var result = getParametrizedRoute(normalizedRoute);\n\n if ('routeKeys' in result) {\n return {\n re: new RegExp(\"^\".concat(result.parameterizedRoute, \"(?:/)?$\")),\n groups: result.groups,\n routeKeys: result.routeKeys,\n namedRegex: \"^\".concat(result.namedParameterizedRoute, \"(?:/)?$\")\n };\n }\n\n return {\n re: new RegExp(\"^\".concat(result.parameterizedRoute, \"(?:/)?$\")),\n groups: result.groups\n };\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JvdXRlLXJlZ2V4LmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7QUFDYkEsOENBQTZDO0FBQ3pDRyxFQUFBQSxLQUFLLEVBQUU7QUFEa0MsQ0FBN0M7QUFHQUQsNEJBQUEsR0FBK0JFLG9CQUEvQjtBQUNBRixxQkFBQSxHQUF3QkcsYUFBeEIsRUFDQTtBQUNBOztBQUNBLFNBQVNDLFdBQVQsQ0FBcUJDLEdBQXJCLEVBQTBCO0FBQ3RCLFNBQU9BLEdBQUcsQ0FBQ0MsT0FBSixDQUFZLHNCQUFaLEVBQW9DLE1BQXBDLENBQVA7QUFDSDs7QUFDRCxTQUFTQyxjQUFULENBQXdCQyxLQUF4QixFQUErQjtBQUMzQixNQUFNQyxRQUFRLEdBQUdELEtBQUssQ0FBQ0UsVUFBTixDQUFpQixHQUFqQixLQUF5QkYsS0FBSyxDQUFDRyxRQUFOLENBQWUsR0FBZixDQUExQzs7QUFDQSxNQUFJRixRQUFKLEVBQWM7QUFDVkQsSUFBQUEsS0FBSyxHQUFHQSxLQUFLLENBQUNJLEtBQU4sQ0FBWSxDQUFaLEVBQWUsQ0FBQyxDQUFoQixDQUFSO0FBQ0g7O0FBQ0QsTUFBTUMsTUFBTSxHQUFHTCxLQUFLLENBQUNFLFVBQU4sQ0FBaUIsS0FBakIsQ0FBZjs7QUFDQSxNQUFJRyxNQUFKLEVBQVk7QUFDUkwsSUFBQUEsS0FBSyxHQUFHQSxLQUFLLENBQUNJLEtBQU4sQ0FBWSxDQUFaLENBQVI7QUFDSDs7QUFDRCxTQUFPO0FBQ0hFLElBQUFBLEdBQUcsRUFBRU4sS0FERjtBQUVISyxJQUFBQSxNQUFNLEVBQU5BLE1BRkc7QUFHSEosSUFBQUEsUUFBUSxFQUFSQTtBQUhHLEdBQVA7QUFLSDs7QUFDRCxTQUFTUCxvQkFBVCxDQUE4QmEsS0FBOUIsRUFBcUM7QUFDakMsTUFBTUMsUUFBUSxHQUFHLENBQUNELEtBQUssQ0FBQ1QsT0FBTixDQUFjLEtBQWQsRUFBcUIsRUFBckIsS0FBNEIsR0FBN0IsRUFBa0NNLEtBQWxDLENBQXdDLENBQXhDLEVBQTJDSyxLQUEzQyxDQUFpRCxHQUFqRCxDQUFqQjtBQUNBLE1BQU1DLE1BQU0sR0FBRyxFQUFmO0FBRUEsTUFBSUMsVUFBVSxHQUFHLENBQWpCO0FBQ0EsTUFBTUMsa0JBQWtCLEdBQUdKLFFBQVEsQ0FBQ0ssR0FBVCxDQUFhLFVBQUNDLE9BQUQsRUFBVztBQUMvQyxRQUFJQSxPQUFPLENBQUNaLFVBQVIsQ0FBbUIsR0FBbkIsS0FBMkJZLE9BQU8sQ0FBQ1gsUUFBUixDQUFpQixHQUFqQixDQUEvQixFQUFzRDtBQUNsRCw0QkFBcUNKLGNBQWMsQ0FBQ2UsT0FBTyxDQUFDVixLQUFSLENBQWMsQ0FBZCxFQUFpQixDQUFDLENBQWxCLENBQUQsQ0FBbkQ7QUFBQSxVQUFRRSxHQUFSLG1CQUFRQSxHQUFSO0FBQUEsVUFBY0wsUUFBZCxtQkFBY0EsUUFBZDtBQUFBLFVBQXlCSSxNQUF6QixtQkFBeUJBLE1BQXpCOztBQUNBSyxNQUFBQSxNQUFNLENBQUNKLEdBQUQsQ0FBTixHQUFjO0FBQ1ZTLFFBQUFBLEdBQUcsRUFBRUosVUFBVSxFQURMO0FBRVZOLFFBQUFBLE1BQU0sRUFBTkEsTUFGVTtBQUdWSixRQUFBQSxRQUFRLEVBQVJBO0FBSFUsT0FBZDtBQUtBLGFBQU9JLE1BQU0sR0FBR0osUUFBUSxHQUFHLGFBQUgsR0FBbUIsUUFBOUIsR0FBeUMsV0FBdEQ7QUFDSCxLQVJELE1BUU87QUFDSCx3QkFBV0wsV0FBVyxDQUFDa0IsT0FBRCxDQUF0QjtBQUNIO0FBQ0osR0FaMEIsRUFZeEJFLElBWndCLENBWW5CLEVBWm1CLENBQTNCLENBTGlDLENBa0JqQztBQUNBOztBQUNBLGFBQW1DLGtHQWdEbEM7O0FBQ0QsU0FBTztBQUNISixJQUFBQSxrQkFBa0IsRUFBbEJBLGtCQURHO0FBRUhGLElBQUFBLE1BQU0sRUFBTkE7QUFGRyxHQUFQO0FBSUg7O0FBQ0QsU0FBU2YsYUFBVCxDQUF1QnFDLGVBQXZCLEVBQXdDO0FBQ3BDLE1BQU1DLE1BQU0sR0FBR3ZDLG9CQUFvQixDQUFDc0MsZUFBRCxDQUFuQzs7QUFDQSxNQUFJLGVBQWVDLE1BQW5CLEVBQTJCO0FBQ3ZCLFdBQU87QUFDSEMsTUFBQUEsRUFBRSxFQUFFLElBQUlDLE1BQUosWUFBZUYsTUFBTSxDQUFDckIsa0JBQXRCLGFBREQ7QUFFSEYsTUFBQUEsTUFBTSxFQUFFdUIsTUFBTSxDQUFDdkIsTUFGWjtBQUdIYyxNQUFBQSxTQUFTLEVBQUVTLE1BQU0sQ0FBQ1QsU0FIZjtBQUlIWSxNQUFBQSxVQUFVLGFBQU1ILE1BQU0sQ0FBQ1IsdUJBQWI7QUFKUCxLQUFQO0FBTUg7O0FBQ0QsU0FBTztBQUNIUyxJQUFBQSxFQUFFLEVBQUUsSUFBSUMsTUFBSixZQUFlRixNQUFNLENBQUNyQixrQkFBdEIsYUFERDtBQUVIRixJQUFBQSxNQUFNLEVBQUV1QixNQUFNLENBQUN2QjtBQUZaLEdBQVA7QUFJSCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JvdXRlLXJlZ2V4LmpzP2VhYzIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmdldFBhcmFtZXRyaXplZFJvdXRlID0gZ2V0UGFyYW1ldHJpemVkUm91dGU7XG5leHBvcnRzLmdldFJvdXRlUmVnZXggPSBnZXRSb3V0ZVJlZ2V4O1xuLy8gdGhpcyBpc24ndCBpbXBvcnRpbmcgdGhlIGVzY2FwZS1zdHJpbmctcmVnZXggbW9kdWxlXG4vLyB0byByZWR1Y2UgYnl0ZXNcbmZ1bmN0aW9uIGVzY2FwZVJlZ2V4KHN0cikge1xuICAgIHJldHVybiBzdHIucmVwbGFjZSgvW3xcXFxce30oKVtcXF1eJCsqPy4tXS9nLCAnXFxcXCQmJyk7XG59XG5mdW5jdGlvbiBwYXJzZVBhcmFtZXRlcihwYXJhbSkge1xuICAgIGNvbnN0IG9wdGlvbmFsID0gcGFyYW0uc3RhcnRzV2l0aCgnWycpICYmIHBhcmFtLmVuZHNXaXRoKCddJyk7XG4gICAgaWYgKG9wdGlvbmFsKSB7XG4gICAgICAgIHBhcmFtID0gcGFyYW0uc2xpY2UoMSwgLTEpO1xuICAgIH1cbiAgICBjb25zdCByZXBlYXQgPSBwYXJhbS5zdGFydHNXaXRoKCcuLi4nKTtcbiAgICBpZiAocmVwZWF0KSB7XG4gICAgICAgIHBhcmFtID0gcGFyYW0uc2xpY2UoMyk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIGtleTogcGFyYW0sXG4gICAgICAgIHJlcGVhdCxcbiAgICAgICAgb3B0aW9uYWxcbiAgICB9O1xufVxuZnVuY3Rpb24gZ2V0UGFyYW1ldHJpemVkUm91dGUocm91dGUpIHtcbiAgICBjb25zdCBzZWdtZW50cyA9IChyb3V0ZS5yZXBsYWNlKC9cXC8kLywgJycpIHx8ICcvJykuc2xpY2UoMSkuc3BsaXQoJy8nKTtcbiAgICBjb25zdCBncm91cHMgPSB7XG4gICAgfTtcbiAgICBsZXQgZ3JvdXBJbmRleCA9IDE7XG4gICAgY29uc3QgcGFyYW1ldGVyaXplZFJvdXRlID0gc2VnbWVudHMubWFwKChzZWdtZW50KT0+e1xuICAgICAgICBpZiAoc2VnbWVudC5zdGFydHNXaXRoKCdbJykgJiYgc2VnbWVudC5lbmRzV2l0aCgnXScpKSB7XG4gICAgICAgICAgICBjb25zdCB7IGtleSAsIG9wdGlvbmFsICwgcmVwZWF0ICB9ID0gcGFyc2VQYXJhbWV0ZXIoc2VnbWVudC5zbGljZSgxLCAtMSkpO1xuICAgICAgICAgICAgZ3JvdXBzW2tleV0gPSB7XG4gICAgICAgICAgICAgICAgcG9zOiBncm91cEluZGV4KyssXG4gICAgICAgICAgICAgICAgcmVwZWF0LFxuICAgICAgICAgICAgICAgIG9wdGlvbmFsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmV0dXJuIHJlcGVhdCA/IG9wdGlvbmFsID8gJyg/Oi8oLis/KSk/JyA6ICcvKC4rPyknIDogJy8oW14vXSs/KSc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gYC8ke2VzY2FwZVJlZ2V4KHNlZ21lbnQpfWA7XG4gICAgICAgIH1cbiAgICB9KS5qb2luKCcnKTtcbiAgICAvLyBkZWFkIGNvZGUgZWxpbWluYXRlIGZvciBicm93c2VyIHNpbmNlIGl0J3Mgb25seSBuZWVkZWRcbiAgICAvLyB3aGlsZSBnZW5lcmF0aW5nIHJvdXRlcy1tYW5pZmVzdFxuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICBsZXQgcm91dGVLZXlDaGFyQ29kZSA9IDk3O1xuICAgICAgICBsZXQgcm91dGVLZXlDaGFyTGVuZ3RoID0gMTtcbiAgICAgICAgLy8gYnVpbGRzIGEgbWluaW1hbCByb3V0ZUtleSB1c2luZyBvbmx5IGEteiBhbmQgbWluaW1hbCBudW1iZXIgb2YgY2hhcmFjdGVyc1xuICAgICAgICBjb25zdCBnZXRTYWZlUm91dGVLZXkgPSAoKT0+e1xuICAgICAgICAgICAgbGV0IHJvdXRlS2V5ID0gJyc7XG4gICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgcm91dGVLZXlDaGFyTGVuZ3RoOyBpKyspe1xuICAgICAgICAgICAgICAgIHJvdXRlS2V5ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUocm91dGVLZXlDaGFyQ29kZSk7XG4gICAgICAgICAgICAgICAgcm91dGVLZXlDaGFyQ29kZSsrO1xuICAgICAgICAgICAgICAgIGlmIChyb3V0ZUtleUNoYXJDb2RlID4gMTIyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJvdXRlS2V5Q2hhckxlbmd0aCsrO1xuICAgICAgICAgICAgICAgICAgICByb3V0ZUtleUNoYXJDb2RlID0gOTc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJvdXRlS2V5O1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCByb3V0ZUtleXMgPSB7XG4gICAgICAgIH07XG4gICAgICAgIGxldCBuYW1lZFBhcmFtZXRlcml6ZWRSb3V0ZSA9IHNlZ21lbnRzLm1hcCgoc2VnbWVudCk9PntcbiAgICAgICAgICAgIGlmIChzZWdtZW50LnN0YXJ0c1dpdGgoJ1snKSAmJiBzZWdtZW50LmVuZHNXaXRoKCddJykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGtleSAsIG9wdGlvbmFsICwgcmVwZWF0ICB9ID0gcGFyc2VQYXJhbWV0ZXIoc2VnbWVudC5zbGljZSgxLCAtMSkpO1xuICAgICAgICAgICAgICAgIC8vIHJlcGxhY2UgYW55IG5vbi13b3JkIGNoYXJhY3RlcnMgc2luY2UgdGhleSBjYW4gYnJlYWtcbiAgICAgICAgICAgICAgICAvLyB0aGUgbmFtZWQgcmVnZXhcbiAgICAgICAgICAgICAgICBsZXQgY2xlYW5lZEtleSA9IGtleS5yZXBsYWNlKC9cXFcvZywgJycpO1xuICAgICAgICAgICAgICAgIGxldCBpbnZhbGlkS2V5ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgLy8gY2hlY2sgaWYgdGhlIGtleSBpcyBzdGlsbCBpbnZhbGlkIGFuZCBmYWxsYmFjayB0byB1c2luZyBhIGtub3duXG4gICAgICAgICAgICAgICAgLy8gc2FmZSBrZXlcbiAgICAgICAgICAgICAgICBpZiAoY2xlYW5lZEtleS5sZW5ndGggPT09IDAgfHwgY2xlYW5lZEtleS5sZW5ndGggPiAzMCkge1xuICAgICAgICAgICAgICAgICAgICBpbnZhbGlkS2V5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKCFpc05hTihwYXJzZUludChjbGVhbmVkS2V5LnN1YnN0cigwLCAxKSkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGludmFsaWRLZXkgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaW52YWxpZEtleSkge1xuICAgICAgICAgICAgICAgICAgICBjbGVhbmVkS2V5ID0gZ2V0U2FmZVJvdXRlS2V5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJvdXRlS2V5c1tjbGVhbmVkS2V5XSA9IGtleTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVwZWF0ID8gb3B0aW9uYWwgPyBgKD86Lyg/PCR7Y2xlYW5lZEtleX0+Lis/KSk/YCA6IGAvKD88JHtjbGVhbmVkS2V5fT4uKz8pYCA6IGAvKD88JHtjbGVhbmVkS2V5fT5bXi9dKz8pYDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGAvJHtlc2NhcGVSZWdleChzZWdtZW50KX1gO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KS5qb2luKCcnKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHBhcmFtZXRlcml6ZWRSb3V0ZSxcbiAgICAgICAgICAgIG5hbWVkUGFyYW1ldGVyaXplZFJvdXRlLFxuICAgICAgICAgICAgZ3JvdXBzLFxuICAgICAgICAgICAgcm91dGVLZXlzXG4gICAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHBhcmFtZXRlcml6ZWRSb3V0ZSxcbiAgICAgICAgZ3JvdXBzXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGdldFJvdXRlUmVnZXgobm9ybWFsaXplZFJvdXRlKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gZ2V0UGFyYW1ldHJpemVkUm91dGUobm9ybWFsaXplZFJvdXRlKTtcbiAgICBpZiAoJ3JvdXRlS2V5cycgaW4gcmVzdWx0KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICByZTogbmV3IFJlZ0V4cChgXiR7cmVzdWx0LnBhcmFtZXRlcml6ZWRSb3V0ZX0oPzovKT8kYCksXG4gICAgICAgICAgICBncm91cHM6IHJlc3VsdC5ncm91cHMsXG4gICAgICAgICAgICByb3V0ZUtleXM6IHJlc3VsdC5yb3V0ZUtleXMsXG4gICAgICAgICAgICBuYW1lZFJlZ2V4OiBgXiR7cmVzdWx0Lm5hbWVkUGFyYW1ldGVyaXplZFJvdXRlfSg/Oi8pPyRgXG4gICAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHJlOiBuZXcgUmVnRXhwKGBeJHtyZXN1bHQucGFyYW1ldGVyaXplZFJvdXRlfSg/Oi8pPyRgKSxcbiAgICAgICAgZ3JvdXBzOiByZXN1bHQuZ3JvdXBzXG4gICAgfTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cm91dGUtcmVnZXguanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiZ2V0UGFyYW1ldHJpemVkUm91dGUiLCJnZXRSb3V0ZVJlZ2V4IiwiZXNjYXBlUmVnZXgiLCJzdHIiLCJyZXBsYWNlIiwicGFyc2VQYXJhbWV0ZXIiLCJwYXJhbSIsIm9wdGlvbmFsIiwic3RhcnRzV2l0aCIsImVuZHNXaXRoIiwic2xpY2UiLCJyZXBlYXQiLCJrZXkiLCJyb3V0ZSIsInNlZ21lbnRzIiwic3BsaXQiLCJncm91cHMiLCJncm91cEluZGV4IiwicGFyYW1ldGVyaXplZFJvdXRlIiwibWFwIiwic2VnbWVudCIsInBvcyIsImpvaW4iLCJyb3V0ZUtleUNoYXJDb2RlIiwicm91dGVLZXlDaGFyTGVuZ3RoIiwiZ2V0U2FmZVJvdXRlS2V5Iiwicm91dGVLZXkiLCJpIiwiU3RyaW5nIiwiZnJvbUNoYXJDb2RlIiwicm91dGVLZXlzIiwibmFtZWRQYXJhbWV0ZXJpemVkUm91dGUiLCJjbGVhbmVkS2V5IiwiaW52YWxpZEtleSIsImxlbmd0aCIsImlzTmFOIiwicGFyc2VJbnQiLCJzdWJzdHIiLCJub3JtYWxpemVkUm91dGUiLCJyZXN1bHQiLCJyZSIsIlJlZ0V4cCIsIm5hbWVkUmVnZXgiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/route-regex.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/runtime-config.js": +/*!*************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/runtime-config.js ***! + \*************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.setConfig = setConfig;\nexports[\"default\"] = void 0;\nvar runtimeConfig;\n\nvar _default = function _default() {\n return runtimeConfig;\n};\n\nexports[\"default\"] = _default;\n\nfunction setConfig(configValue) {\n runtimeConfig = configValue;\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcnVudGltZS1jb25maWcuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxpQkFBQSxHQUFvQkUsU0FBcEI7QUFDQUYsa0JBQUEsR0FBa0IsS0FBSyxDQUF2QjtBQUNBLElBQUlHLGFBQUo7O0FBQ0EsSUFBSUMsUUFBUSxHQUFHLFNBQVhBLFFBQVcsR0FBSTtBQUNmLFNBQU9ELGFBQVA7QUFDSCxDQUZEOztBQUdBSCxrQkFBQSxHQUFrQkksUUFBbEI7O0FBQ0EsU0FBU0YsU0FBVCxDQUFtQkcsV0FBbkIsRUFBZ0M7QUFDNUJGLEVBQUFBLGFBQWEsR0FBR0UsV0FBaEI7QUFDSCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcnVudGltZS1jb25maWcuanM/ZTBhMyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuc2V0Q29uZmlnID0gc2V0Q29uZmlnO1xuZXhwb3J0cy5kZWZhdWx0ID0gdm9pZCAwO1xubGV0IHJ1bnRpbWVDb25maWc7XG52YXIgX2RlZmF1bHQgPSAoKT0+e1xuICAgIHJldHVybiBydW50aW1lQ29uZmlnO1xufTtcbmV4cG9ydHMuZGVmYXVsdCA9IF9kZWZhdWx0O1xuZnVuY3Rpb24gc2V0Q29uZmlnKGNvbmZpZ1ZhbHVlKSB7XG4gICAgcnVudGltZUNvbmZpZyA9IGNvbmZpZ1ZhbHVlO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1ydW50aW1lLWNvbmZpZy5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJzZXRDb25maWciLCJydW50aW1lQ29uZmlnIiwiX2RlZmF1bHQiLCJjb25maWdWYWx1ZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/runtime-config.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/utils.js": +/*!****************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/utils.js ***! + \****************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _regeneratorRuntime = __webpack_require__(/*! ./node_modules/@babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n\nvar _classCallCheck = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\");\n\nvar _inherits = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/inherits */ \"./node_modules/@babel/runtime/helpers/inherits.js\");\n\nvar _possibleConstructorReturn = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/possibleConstructorReturn */ \"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\");\n\nvar _getPrototypeOf = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/getPrototypeOf */ \"./node_modules/@babel/runtime/helpers/getPrototypeOf.js\");\n\nvar _wrapNativeSuper = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/wrapNativeSuper */ \"./node_modules/@babel/runtime/helpers/wrapNativeSuper.js\");\n\nvar _asyncToGenerator = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/asyncToGenerator.js\");\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.execOnce = execOnce;\nexports.getLocationOrigin = getLocationOrigin;\nexports.getURL = getURL;\nexports.getDisplayName = getDisplayName;\nexports.isResSent = isResSent;\nexports.normalizeRepeatedSlashes = normalizeRepeatedSlashes;\nexports.loadGetInitialProps = loadGetInitialProps;\nexports.formatWithValidation = formatWithValidation;\nexports.HtmlContext = exports.ST = exports.SP = exports.urlObjectKeys = void 0;\n\nvar _formatUrl = __webpack_require__(/*! ./router/utils/format-url */ \"./node_modules/next/dist/shared/lib/router/utils/format-url.js\");\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nfunction execOnce(fn) {\n var used = false;\n var result;\n return function () {\n if (!used) {\n used = true;\n result = fn.apply(void 0, arguments);\n }\n\n return result;\n };\n}\n\nfunction getLocationOrigin() {\n var _window$location = window.location,\n protocol = _window$location.protocol,\n hostname = _window$location.hostname,\n port = _window$location.port;\n return \"\".concat(protocol, \"//\").concat(hostname).concat(port ? ':' + port : '');\n}\n\nfunction getURL() {\n var href = window.location.href;\n var origin = getLocationOrigin();\n return href.substring(origin.length);\n}\n\nfunction getDisplayName(Component) {\n return typeof Component === 'string' ? Component : Component.displayName || Component.name || 'Unknown';\n}\n\nfunction isResSent(res) {\n return res.finished || res.headersSent;\n}\n\nfunction normalizeRepeatedSlashes(url) {\n var urlParts = url.split('?');\n var 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] ? \"?\".concat(urlParts.slice(1).join('?')) : '');\n}\n\nfunction loadGetInitialProps(_x, _x2) {\n return _loadGetInitialProps.apply(this, arguments);\n}\n\nfunction _loadGetInitialProps() {\n _loadGetInitialProps = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(App, ctx) {\n var ref, message, res, props, _message;\n\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (false) {}\n\n if (!((ref = App.prototype) === null || ref === void 0 ? void 0 : ref.getInitialProps)) {\n _context.next = 4;\n break;\n }\n\n message = \"\\\"\".concat(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 new Error(message);\n\n case 4:\n // when called from _app `ctx` is nested in `ctx`\n res = ctx.res || ctx.ctx && ctx.ctx.res;\n\n if (App.getInitialProps) {\n _context.next = 12;\n break;\n }\n\n if (!(ctx.ctx && ctx.Component)) {\n _context.next = 11;\n break;\n }\n\n _context.next = 9;\n return loadGetInitialProps(ctx.Component, ctx.ctx);\n\n case 9:\n _context.t0 = _context.sent;\n return _context.abrupt(\"return\", {\n pageProps: _context.t0\n });\n\n case 11:\n return _context.abrupt(\"return\", {});\n\n case 12:\n _context.next = 14;\n return App.getInitialProps(ctx);\n\n case 14:\n props = _context.sent;\n\n if (!(res && isResSent(res))) {\n _context.next = 17;\n break;\n }\n\n return _context.abrupt(\"return\", props);\n\n case 17:\n if (props) {\n _context.next = 20;\n break;\n }\n\n _message = \"\\\"\".concat(getDisplayName(App), \".getInitialProps()\\\" should resolve to an object. But found \\\"\").concat(props, \"\\\" instead.\");\n throw new Error(_message);\n\n case 20:\n if (true) {\n if (Object.keys(props).length === 0 && !ctx.ctx) {\n console.warn(\"\".concat(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\n return _context.abrupt(\"return\", props);\n\n case 22:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n return _loadGetInitialProps.apply(this, arguments);\n}\n\nvar urlObjectKeys = ['auth', 'hash', 'host', 'hostname', 'href', 'path', 'pathname', 'port', 'protocol', 'query', 'search', 'slashes'];\nexports.urlObjectKeys = urlObjectKeys;\n\nfunction formatWithValidation(url) {\n if (true) {\n if (url !== null && typeof url === 'object') {\n Object.keys(url).forEach(function (key) {\n if (urlObjectKeys.indexOf(key) === -1) {\n console.warn(\"Unknown key passed via urlObject into url.format: \".concat(key));\n }\n });\n }\n }\n\n return (0, _formatUrl).formatUrl(url);\n}\n\nvar SP = typeof performance !== 'undefined';\nexports.SP = SP;\nvar ST = SP && typeof performance.mark === 'function' && typeof performance.measure === 'function';\nexports.ST = ST;\n\nvar DecodeError = /*#__PURE__*/function (_Error) {\n _inherits(DecodeError, _Error);\n\n var _super = _createSuper(DecodeError);\n\n function DecodeError() {\n _classCallCheck(this, DecodeError);\n\n return _super.apply(this, arguments);\n }\n\n return DecodeError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nexports.DecodeError = DecodeError;\nvar HtmlContext = (0, _react).createContext(null);\nexports.HtmlContext = HtmlContext;\n\nif (true) {\n HtmlContext.displayName = 'HtmlContext';\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvdXRpbHMuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxnQkFBQSxHQUFtQkUsUUFBbkI7QUFDQUYseUJBQUEsR0FBNEJHLGlCQUE1QjtBQUNBSCxjQUFBLEdBQWlCSSxNQUFqQjtBQUNBSixzQkFBQSxHQUF5QkssY0FBekI7QUFDQUwsaUJBQUEsR0FBb0JNLFNBQXBCO0FBQ0FOLGdDQUFBLEdBQW1DTyx3QkFBbkM7QUFDQVAsMkJBQUEsR0FBOEJRLG1CQUE5QjtBQUNBUiw0QkFBQSxHQUErQlMsb0JBQS9CO0FBQ0FULG1CQUFBLEdBQXNCQSxVQUFBLEdBQWFBLFVBQUEsR0FBYUEscUJBQUEsR0FBd0IsS0FBSyxDQUE3RTs7QUFDQSxJQUFJYyxVQUFVLEdBQUdDLG1CQUFPLENBQUMsaUdBQUQsQ0FBeEI7O0FBQ0EsSUFBSUMsTUFBTSxHQUFHRCxtQkFBTyxDQUFDLDRDQUFELENBQXBCOztBQUNBLFNBQVNiLFFBQVQsQ0FBa0JlLEVBQWxCLEVBQXNCO0FBQ2xCLE1BQUlDLElBQUksR0FBRyxLQUFYO0FBQ0EsTUFBSUMsTUFBSjtBQUNBLFNBQU8sWUFBVztBQUNkLFFBQUksQ0FBQ0QsSUFBTCxFQUFXO0FBQ1BBLE1BQUFBLElBQUksR0FBRyxJQUFQO0FBQ0FDLE1BQUFBLE1BQU0sR0FBR0YsRUFBRSxNQUFGLG1CQUFUO0FBQ0g7O0FBQ0QsV0FBT0UsTUFBUDtBQUNILEdBTkQ7QUFPSDs7QUFDRCxTQUFTaEIsaUJBQVQsR0FBNkI7QUFDekIseUJBQXdDaUIsTUFBTSxDQUFDQyxRQUEvQztBQUFBLE1BQVFDLFFBQVIsb0JBQVFBLFFBQVI7QUFBQSxNQUFtQkMsUUFBbkIsb0JBQW1CQSxRQUFuQjtBQUFBLE1BQThCQyxJQUE5QixvQkFBOEJBLElBQTlCO0FBQ0EsbUJBQVVGLFFB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QWxDO0FBQ0ExRCxVQUFBLEdBQWFZLEVBQWI7QUFDQSxJQUFNRCxFQUFFLEdBQUdDLEVBQUUsSUFBSSxPQUFPOEMsV0FBVyxDQUFDQyxJQUFuQixLQUE0QixVQUFsQyxJQUFnRCxPQUFPRCxXQUFXLENBQUNFLE9BQW5CLEtBQStCLFVBQTFGO0FBQ0E1RCxVQUFBLEdBQWFXLEVBQWI7O0lBQ01rRDs7Ozs7Ozs7Ozs7O2lDQUFvQmI7O0FBRTFCaEQsbUJBQUEsR0FBc0I2RCxXQUF0QjtBQUNBLElBQU1uRCxXQUFXLEdBQUcsQ0FBQyxHQUFHTSxNQUFKLEVBQVk4QyxhQUFaLENBQTBCLElBQTFCLENBQXBCO0FBQ0E5RCxtQkFBQSxHQUFzQlUsV0FBdEI7O0FBQ0EsSUFBSSxNQUF1QztBQUN2Q0EsRUFBQUEsV0FBVyxDQUFDb0IsV0FBWixHQUEwQixhQUExQjtBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi91dGlscy5qcz9lN2ZmIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5leGVjT25jZSA9IGV4ZWNPbmNlO1xuZXhwb3J0cy5nZXRMb2NhdGlvbk9yaWdpbiA9IGdldExvY2F0aW9uT3JpZ2luO1xuZXhwb3J0cy5nZXRVUkwgPSBnZXRVUkw7XG5leHBvcnRzLmdldERpc3BsYXlOYW1lID0gZ2V0RGlzcGxheU5hbWU7XG5leHBvcnRzLmlzUmVzU2VudCA9IGlzUmVzU2VudDtcbmV4cG9ydHMubm9ybWFsaXplUmVwZWF0ZWRTbGFzaGVzID0gbm9ybWFsaXplUmVwZWF0ZWRTbGFzaGVzO1xuZXhwb3J0cy5sb2FkR2V0SW5pdGlhbFByb3BzID0gbG9hZEdldEluaXRpYWxQcm9wcztcbmV4cG9ydHMuZm9ybWF0V2l0aFZhbGlkYXRpb24gPSBmb3JtYXRXaXRoVmFsaWRhdGlvbjtcbmV4cG9ydHMuSHRtbENvbnRleHQgPSBleHBvcnRzLlNUID0gZXhwb3J0cy5TUCA9IGV4cG9ydHMudXJsT2JqZWN0S2V5cyA9IHZvaWQgMDtcbnZhciBfZm9ybWF0VXJsID0gcmVxdWlyZShcIi4vcm91dGVyL3V0aWxzL2Zvcm1hdC11cmxcIik7XG52YXIgX3JlYWN0ID0gcmVxdWlyZShcInJlYWN0XCIpO1xuZnVuY3Rpb24gZXhlY09uY2UoZm4pIHtcbiAgICBsZXQgdXNlZCA9IGZhbHNlO1xuICAgIGxldCByZXN1bHQ7XG4gICAgcmV0dXJuICguLi5hcmdzKT0+e1xuICAgICAgICBpZiAoIXVzZWQpIHtcbiAgICAgICAgICAgIHVzZWQgPSB0cnVlO1xuICAgICAgICAgICAgcmVzdWx0ID0gZm4oLi4uYXJncyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xufVxuZnVuY3Rpb24gZ2V0TG9jYXRpb25PcmlnaW4oKSB7XG4gICAgY29uc3QgeyBwcm90b2NvbCAsIGhvc3RuYW1lICwgcG9ydCAgfSA9IHdpbmRvdy5sb2NhdGlvbjtcbiAgICByZXR1cm4gYCR7cHJvdG9jb2x9Ly8ke2hvc3RuYW1lfSR7cG9ydCA/ICc6JyArIHBvcnQgOiAnJ31gO1xufVxuZnVuY3Rpb24gZ2V0VVJMKCkge1xuICAgIGNvbnN0IHsgaHJlZiAgfSA9IHdpbmRvdy5sb2NhdGlvbjtcbiAgICBjb25zdCBvcmlnaW4gPSBnZXRMb2NhdGlvbk9yaWdpbigpO1xuICAgIHJldHVybiBocmVmLnN1YnN0cmluZyhvcmlnaW4ubGVuZ3RoKTtcbn1cbmZ1bmN0aW9uIGdldERpc3BsYXlOYW1lKENvbXBvbmVudCkge1xuICAgIHJldHVybiB0eXBlb2YgQ29tcG9uZW50ID09PSAnc3RyaW5nJyA/IENvbXBvbmVudCA6IENvbXBvbmVudC5kaXNwbGF5TmFtZSB8fCBDb21wb25lbnQubmFtZSB8fCAnVW5rbm93bic7XG59XG5mdW5jdGlvbiBpc1Jlc1NlbnQocmVzKSB7XG4gICAgcmV0dXJuIHJlcy5maW5pc2hlZCB8fCByZXMuaGVhZGVyc1NlbnQ7XG59XG5mdW5jdGlvbiBub3JtYWxpemVSZXBlYXRlZFNsYXNoZXModXJsKSB7XG4gICAgY29uc3QgdXJsUGFydHMgPSB1cmwuc3BsaXQoJz8nKTtcbiAgICBjb25zdCB1cmxOb1F1ZXJ5ID0gdXJsUGFydHNbMF07XG4gICAgcmV0dXJuIHVybE5vUXVlcnkvLyBmaXJzdCB3ZSByZXBsYWNlIGFueSBub24tZW5jb2RlZCBiYWNrc2xhc2hlcyB3aXRoIGZvcndhcmRcbiAgICAvLyB0aGVuIG5vcm1hbGl6ZSByZXBlYXRlZCBmb3J3YXJkIHNsYXNoZXNcbiAgICAucmVwbGFjZSgvXFxcXC9nLCAnLycpLnJlcGxhY2UoL1xcL1xcLysvZywgJy8nKSArICh1cmxQYXJ0c1sxXSA/IGA/JHt1cmxQYXJ0cy5zbGljZSgxKS5qb2luKCc/Jyl9YCA6ICcnKTtcbn1cbmFzeW5jIGZ1bmN0aW9uIGxvYWRHZXRJbml0aWFsUHJvcHMoQXBwLCBjdHgpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICB2YXIgcmVmO1xuICAgICAgICBpZiAoKHJlZiA9IEFwcC5wcm90b3R5cGUpID09PSBudWxsIHx8IHJlZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVmLmdldEluaXRpYWxQcm9wcykge1xuICAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGBcIiR7Z2V0RGlzcGxheU5hbWUoQXBwKX0uZ2V0SW5pdGlhbFByb3BzKClcIiBpcyBkZWZpbmVkIGFzIGFuIGluc3RhbmNlIG1ldGhvZCAtIHZpc2l0IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2dldC1pbml0aWFsLXByb3BzLWFzLWFuLWluc3RhbmNlLW1ldGhvZCBmb3IgbW9yZSBpbmZvcm1hdGlvbi5gO1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIHdoZW4gY2FsbGVkIGZyb20gX2FwcCBgY3R4YCBpcyBuZXN0ZWQgaW4gYGN0eGBcbiAgICBjb25zdCByZXMgPSBjdHgucmVzIHx8IGN0eC5jdHggJiYgY3R4LmN0eC5yZXM7XG4gICAgaWYgKCFBcHAuZ2V0SW5pdGlhbFByb3BzKSB7XG4gICAgICAgIGlmIChjdHguY3R4ICYmIGN0eC5Db21wb25lbnQpIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmUgcGFnZVByb3BzIGRlZmF1bHRcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcGFnZVByb3BzOiBhd2FpdCBsb2FkR2V0SW5pdGlhbFByb3BzKGN0eC5Db21wb25lbnQsIGN0eC5jdHgpXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IHByb3BzID0gYXdhaXQgQXBwLmdldEluaXRpYWxQcm9wcyhjdHgpO1xuICAgIGlmIChyZXMgJiYgaXNSZXNTZW50KHJlcykpIHtcbiAgICAgICAgcmV0dXJuIHByb3BzO1xuICAgIH1cbiAgICBpZiAoIXByb3BzKSB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgXCIke2dldERpc3BsYXlOYW1lKEFwcCl9LmdldEluaXRpYWxQcm9wcygpXCIgc2hvdWxkIHJlc29sdmUgdG8gYW4gb2JqZWN0LiBCdXQgZm91bmQgXCIke3Byb3BzfVwiIGluc3RlYWQuYDtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBpZiAoT2JqZWN0LmtleXMocHJvcHMpLmxlbmd0aCA9PT0gMCAmJiAhY3R4LmN0eCkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGAke2dldERpc3BsYXlOYW1lKEFwcCl9IHJldHVybmVkIGFuIGVtcHR5IG9iamVjdCBmcm9tIFxcYGdldEluaXRpYWxQcm9wc1xcYC4gVGhpcyBkZS1vcHRpbWl6ZXMgYW5kIHByZXZlbnRzIGF1dG9tYXRpYyBzdGF0aWMgb3B0aW1pemF0aW9uLiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9lbXB0eS1vYmplY3QtZ2V0SW5pdGlhbFByb3BzYCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHByb3BzO1xufVxuY29uc3QgdXJsT2JqZWN0S2V5cyA9IFtcbiAgICAnYXV0aCcsXG4gICAgJ2hhc2gnLFxuICAgICdob3N0JyxcbiAgICAnaG9zdG5hbWUnLFxuICAgICdocmVmJyxcbiAgICAncGF0aCcsXG4gICAgJ3BhdGhuYW1lJyxcbiAgICAncG9ydCcsXG4gICAgJ3Byb3RvY29sJyxcbiAgICAncXVlcnknLFxuICAgICdzZWFyY2gnLFxuICAgICdzbGFzaGVzJywgXG5dO1xuZXhwb3J0cy51cmxPYmplY3RLZXlzID0gdXJsT2JqZWN0S2V5cztcbmZ1bmN0aW9uIGZvcm1hdFdpdGhWYWxpZGF0aW9uKHVybCkge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICBpZiAodXJsICE9PSBudWxsICYmIHR5cGVvZiB1cmwgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICBPYmplY3Qua2V5cyh1cmwpLmZvckVhY2goKGtleSk9PntcbiAgICAgICAgICAgICAgICBpZiAodXJsT2JqZWN0S2V5cy5pbmRleE9mKGtleSkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgVW5rbm93biBrZXkgcGFzc2VkIHZpYSB1cmxPYmplY3QgaW50byB1cmwuZm9ybWF0OiAke2tleX1gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gKDAsIF9mb3JtYXRVcmwpLmZvcm1hdFVybCh1cmwpO1xufVxuY29uc3QgU1AgPSB0eXBlb2YgcGVyZm9ybWFuY2UgIT09ICd1bmRlZmluZWQnO1xuZXhwb3J0cy5TUCA9IFNQO1xuY29uc3QgU1QgPSBTUCAmJiB0eXBlb2YgcGVyZm9ybWFuY2UubWFyayA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgcGVyZm9ybWFuY2UubWVhc3VyZSA9PT0gJ2Z1bmN0aW9uJztcbmV4cG9ydHMuU1QgPSBTVDtcbmNsYXNzIERlY29kZUVycm9yIGV4dGVuZHMgRXJyb3Ige1xufVxuZXhwb3J0cy5EZWNvZGVFcnJvciA9IERlY29kZUVycm9yO1xuY29uc3QgSHRtbENvbnRleHQgPSAoMCwgX3JlYWN0KS5jcmVhdGVDb250ZXh0KG51bGwpO1xuZXhwb3J0cy5IdG1sQ29udGV4dCA9IEh0bWxDb250ZXh0O1xuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBIdG1sQ29udGV4dC5kaXNwbGF5TmFtZSA9ICdIdG1sQ29udGV4dCc7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXV0aWxzLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImV4ZWNPbmNlIiwiZ2V0TG9jYXRpb25PcmlnaW4iLCJnZXRVUkwiLCJnZXREaXNwbGF5TmFtZSIsImlzUmVzU2VudCIsIm5vcm1hbGl6ZVJlcGVhdGVkU2xhc2hlcyIsImxvYWRHZXRJbml0aWFsUHJvcHMiLCJmb3JtYXRXaXRoVmFsaWRhdGlvbiIsIkh0bWxDb250ZXh0IiwiU1QiLCJTUCIsInVybE9iamVjdEtleXMiLCJfZm9ybWF0VXJsIiwicmVxdWlyZSIsIl9yZWFjdCIsImZuIiwidXNlZCIsInJlc3VsdCIsIndpbmRvdyIsImxvY2F0aW9uIiwicHJvdG9jb2wiLCJob3N0bmFtZSIsInBvcnQiLCJocmVmIiwib3JpZ2luIiwic3Vic3RyaW5nIiwibGVuZ3RoIiwiQ29tcG9uZW50IiwiZGlzcGxheU5hbWUiLCJuYW1lIiwicmVzIiwiZmluaXNoZWQiLCJoZWFkZXJzU2VudCIsInVybCIsInVybFBhcnRzIiwic3BsaXQiLCJ1cmxOb1F1ZXJ5IiwicmVwbGFjZSIsInNsaWNlIiwiam9pbiIsIkFwcCIsImN0eCIsInJlZiIsInByb3RvdHlwZSIsImdldEluaXRpYWxQcm9wcyIsIm1lc3NhZ2UiLCJFcnJvciIsInBhZ2VQcm9wcyIsInByb3BzIiwia2V5cyIsImNvbnNvbGUiLCJ3YXJuIiwiZm9yRWFjaCIsImtleSIsImluZGV4T2YiLCJmb3JtYXRVcmwiLCJwZXJmb3JtYW5jZSIsIm1hcmsiLCJtZWFzdXJlIiwiRGVjb2RlRXJyb3IiLCJjcmVhdGVDb250ZXh0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/utils.js\n"); + +/***/ }), + +/***/ "./node_modules/strip-ansi/index.js": +/*!******************************************!*\ + !*** ./node_modules/strip-ansi/index.js ***! + \******************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar ansiRegex = __webpack_require__(/*! ansi-regex */ \"./node_modules/ansi-regex/index.js\");\n\nmodule.exports = function (string) {\n return typeof string === 'string' ? string.replace(ansiRegex(), '') : string;\n};\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3RyaXAtYW5zaS9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7O0FBQ2IsSUFBTUEsU0FBUyxHQUFHQyxtQkFBTyxDQUFDLHNEQUFELENBQXpCOztBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUIsVUFBQUMsTUFBTTtBQUFBLFNBQUksT0FBT0EsTUFBUCxLQUFrQixRQUFsQixHQUE2QkEsTUFBTSxDQUFDQyxPQUFQLENBQWVMLFNBQVMsRUFBeEIsRUFBNEIsRUFBNUIsQ0FBN0IsR0FBK0RJLE1BQW5FO0FBQUEsQ0FBdkIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N0cmlwLWFuc2kvaW5kZXguanM/ZDcyMiJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5jb25zdCBhbnNpUmVnZXggPSByZXF1aXJlKCdhbnNpLXJlZ2V4Jyk7XG5cbm1vZHVsZS5leHBvcnRzID0gc3RyaW5nID0+IHR5cGVvZiBzdHJpbmcgPT09ICdzdHJpbmcnID8gc3RyaW5nLnJlcGxhY2UoYW5zaVJlZ2V4KCksICcnKSA6IHN0cmluZztcbiJdLCJuYW1lcyI6WyJhbnNpUmVnZXgiLCJyZXF1aXJlIiwibW9kdWxlIiwiZXhwb3J0cyIsInN0cmluZyIsInJlcGxhY2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/strip-ansi/index.js\n"); + +/***/ }), + +/***/ "./node_modules/anser/lib/index.js": +/*!*****************************************!*\ + !*** ./node_modules/anser/lib/index.js ***! + \*****************************************/ +/***/ (function(module) { + +"use strict"; +eval("\n\n// This file was originally written by @drudru (https://github.com/drudru/ansi_up), MIT, 2011\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ANSI_COLORS = [[{ 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\" }]];\n\nvar Anser = function () {\n _createClass(Anser, null, [{\n key: \"escapeForHtml\",\n\n\n /**\n * Anser.escapeForHtml\n * Escape the input HTML.\n *\n * This does the minimum escaping of text to make it compliant with HTML.\n * In particular, the '&','<', and '>' characters are escaped. This should\n * be run prior to `ansiToHtml`.\n *\n * @name Anser.escapeForHtml\n * @function\n * @param {String} txt The input text (containing the ANSI snippets).\n * @returns {String} The escaped html.\n */\n value: function escapeForHtml(txt) {\n return new Anser().escapeForHtml(txt);\n }\n\n /**\n * Anser.linkify\n * Adds the links in the HTML.\n *\n * This replaces any links in the text with anchor tags that display the\n * link. The links should have at least one whitespace character\n * surrounding it. Also, you should apply this after you have run\n * `ansiToHtml` on the text.\n *\n * @name Anser.linkify\n * @function\n * @param {String} txt The input text.\n * @returns {String} The HTML containing the <a> tags (unescaped).\n */\n\n }, {\n key: \"linkify\",\n value: function linkify(txt) {\n return new Anser().linkify(txt);\n }\n\n /**\n * Anser.ansiToHtml\n * This replaces ANSI terminal escape codes with SPAN tags that wrap the\n * content.\n *\n * This function only interprets ANSI SGR (Select Graphic Rendition) codes\n * that can be represented in HTML.\n * For example, cursor movement codes are ignored and hidden from output.\n * The default style uses colors that are very close to the prescribed\n * standard. The standard assumes that the text will have a black\n * background. These colors are set as inline styles on the SPAN tags.\n *\n * Another option is to set `use_classes: true` in the options argument.\n * This will instead set classes on the spans so the colors can be set via\n * CSS. The class names used are of the format `ansi-*-fg/bg` and\n * `ansi-bright-*-fg/bg` where `*` is the color name,\n * i.e black/red/green/yellow/blue/magenta/cyan/white.\n *\n * @name Anser.ansiToHtml\n * @function\n * @param {String} txt The input text.\n * @param {Object} options The options passed to the ansiToHTML method.\n * @returns {String} The HTML output.\n */\n\n }, {\n key: \"ansiToHtml\",\n value: function ansiToHtml(txt, options) {\n return new Anser().ansiToHtml(txt, options);\n }\n\n /**\n * Anser.ansiToJson\n * Converts ANSI input into JSON output.\n *\n * @name Anser.ansiToJson\n * @function\n * @param {String} txt The input text.\n * @param {Object} options The options passed to the ansiToHTML method.\n * @returns {String} The HTML output.\n */\n\n }, {\n key: \"ansiToJson\",\n value: function ansiToJson(txt, options) {\n return new Anser().ansiToJson(txt, options);\n }\n\n /**\n * Anser.ansiToText\n * Converts ANSI input into text output.\n *\n * @name Anser.ansiToText\n * @function\n * @param {String} txt The input text.\n * @returns {String} The text output.\n */\n\n }, {\n key: \"ansiToText\",\n value: function ansiToText(txt) {\n return new Anser().ansiToText(txt);\n }\n\n /**\n * Anser\n * The `Anser` class.\n *\n * @name Anser\n * @function\n * @returns {Anser}\n */\n\n }]);\n\n function Anser() {\n _classCallCheck(this, Anser);\n\n this.fg = this.bg = this.fg_truecolor = this.bg_truecolor = null;\n this.bright = 0;\n }\n\n /**\n * setupPalette\n * Sets up the palette.\n *\n * @name setupPalette\n * @function\n */\n\n\n _createClass(Anser, [{\n key: \"setupPalette\",\n value: function setupPalette() {\n this.PALETTE_COLORS = [];\n\n // Index 0..15 : System color\n for (var i = 0; i < 2; ++i) {\n for (var j = 0; j < 8; ++j) {\n this.PALETTE_COLORS.push(ANSI_COLORS[i][j].color);\n }\n }\n\n // Index 16..231 : RGB 6x6x6\n // https://gist.github.com/jasonm23/2868981#file-xterm-256color-yaml\n var levels = [0, 95, 135, 175, 215, 255];\n var format = function format(r, g, b) {\n return levels[r] + \", \" + levels[g] + \", \" + levels[b];\n };\n var r = void 0,\n g = void 0,\n b = void 0;\n for (var _r = 0; _r < 6; ++_r) {\n for (var _g = 0; _g < 6; ++_g) {\n for (var _b = 0; _b < 6; ++_b) {\n this.PALETTE_COLORS.push(format(_r, _g, _b));\n }\n }\n }\n\n // Index 232..255 : Grayscale\n var level = 8;\n for (var _i = 0; _i < 24; ++_i, level += 10) {\n this.PALETTE_COLORS.push(format(level, level, level));\n }\n }\n\n /**\n * escapeForHtml\n * Escapes the input text.\n *\n * @name escapeForHtml\n * @function\n * @param {String} txt The input text.\n * @returns {String} The escpaed HTML output.\n */\n\n }, {\n key: \"escapeForHtml\",\n value: function escapeForHtml(txt) {\n return txt.replace(/[&<>]/gm, function (str) {\n return str == \"&\" ? \"&\" : str == \"<\" ? \"<\" : str == \">\" ? \">\" : \"\";\n });\n }\n\n /**\n * linkify\n * Adds HTML link elements.\n *\n * @name linkify\n * @function\n * @param {String} txt The input text.\n * @returns {String} The HTML output containing link elements.\n */\n\n }, {\n key: \"linkify\",\n value: function linkify(txt) {\n return txt.replace(/(https?:\\/\\/[^\\s]+)/gm, function (str) {\n return \"<a href=\\\"\" + str + \"\\\">\" + str + \"</a>\";\n });\n }\n\n /**\n * ansiToHtml\n * Converts ANSI input into HTML output.\n *\n * @name ansiToHtml\n * @function\n * @param {String} txt The input text.\n * @param {Object} options The options passed ot the `process` method.\n * @returns {String} The HTML output.\n */\n\n }, {\n key: \"ansiToHtml\",\n value: function ansiToHtml(txt, options) {\n return this.process(txt, options, true);\n }\n\n /**\n * ansiToJson\n * Converts ANSI input into HTML output.\n *\n * @name ansiToJson\n * @function\n * @param {String} txt The input text.\n * @param {Object} options The options passed ot the `process` method.\n * @returns {String} The JSON output.\n */\n\n }, {\n key: \"ansiToJson\",\n value: function ansiToJson(txt, options) {\n options = options || {};\n options.json = true;\n options.clearLine = false;\n return this.process(txt, options, true);\n }\n\n /**\n * ansiToText\n * Converts ANSI input into HTML output.\n *\n * @name ansiToText\n * @function\n * @param {String} txt The input text.\n * @returns {String} The text output.\n */\n\n }, {\n key: \"ansiToText\",\n value: function ansiToText(txt) {\n return this.process(txt, {}, false);\n }\n\n /**\n * process\n * Processes the input.\n *\n * @name process\n * @function\n * @param {String} txt The input text.\n * @param {Object} options An object passed to `processChunk` method, extended with:\n *\n * - `json` (Boolean): If `true`, the result will be an object.\n * - `use_classes` (Boolean): If `true`, HTML classes will be appended to the HTML output.\n *\n * @param {Boolean} markup\n */\n\n }, {\n key: \"process\",\n value: function process(txt, options, markup) {\n var _this = this;\n\n var self = this;\n var raw_text_chunks = txt.split(/\\033\\[/);\n var first_chunk = raw_text_chunks.shift(); // the first chunk is not the result of the split\n\n if (options === undefined || options === null) {\n options = {};\n }\n options.clearLine = /\\r/.test(txt); // check for Carriage Return\n var color_chunks = raw_text_chunks.map(function (chunk) {\n return _this.processChunk(chunk, options, markup);\n });\n\n if (options && options.json) {\n var first = self.processChunkJson(\"\");\n first.content = first_chunk;\n first.clearLine = options.clearLine;\n color_chunks.unshift(first);\n if (options.remove_empty) {\n color_chunks = color_chunks.filter(function (c) {\n return !c.isEmpty();\n });\n }\n return color_chunks;\n } else {\n color_chunks.unshift(first_chunk);\n }\n\n return color_chunks.join(\"\");\n }\n\n /**\n * processChunkJson\n * Processes the current chunk into json output.\n *\n * @name processChunkJson\n * @function\n * @param {String} text The input text.\n * @param {Object} options An object containing the following fields:\n *\n * - `json` (Boolean): If `true`, the result will be an object.\n * - `use_classes` (Boolean): If `true`, HTML classes will be appended to the HTML output.\n *\n * @param {Boolean} markup If false, the colors will not be parsed.\n * @return {Object} The result object:\n *\n * - `content` (String): The text.\n * - `fg` (String|null): The foreground color.\n * - `bg` (String|null): The background color.\n * - `fg_truecolor` (String|null): The foreground true color (if 16m color is enabled).\n * - `bg_truecolor` (String|null): The background true color (if 16m color is enabled).\n * - `clearLine` (Boolean): `true` if a carriageReturn \\r was fount at end of line.\n * - `was_processed` (Bolean): `true` if the colors were processed, `false` otherwise.\n * - `isEmpty` (Function): A function returning `true` if the content is empty, or `false` otherwise.\n *\n */\n\n }, {\n key: \"processChunkJson\",\n value: function processChunkJson(text, options, markup) {\n\n // Are we using classes or styles?\n options = typeof options == \"undefined\" ? {} : options;\n var use_classes = options.use_classes = typeof options.use_classes != \"undefined\" && options.use_classes;\n var key = options.key = use_classes ? \"class\" : \"color\";\n\n var result = {\n content: text,\n fg: null,\n bg: null,\n fg_truecolor: null,\n bg_truecolor: null,\n clearLine: options.clearLine,\n decoration: null,\n was_processed: false,\n isEmpty: function isEmpty() {\n return !result.content;\n }\n };\n\n // Each \"chunk\" is the text after the CSI (ESC + \"[\") and before the next CSI/EOF.\n //\n // This regex matches four groups within a chunk.\n //\n // The first and third groups match code type.\n // We supported only SGR command. It has empty first group and \"m\" in third.\n //\n // The second group matches all of the number+semicolon command sequences\n // before the \"m\" (or other trailing) character.\n // These are the graphics or SGR commands.\n //\n // The last group is the text (including newlines) that is colored by\n // the other group\"s commands.\n var matches = text.match(/^([!\\x3c-\\x3f]*)([\\d;]*)([\\x20-\\x2c]*[\\x40-\\x7e])([\\s\\S]*)/m);\n\n if (!matches) return result;\n\n var orig_txt = result.content = matches[4];\n var nums = matches[2].split(\";\");\n\n // We currently support only \"SGR\" (Select Graphic Rendition)\n // Simply ignore if not a SGR command.\n if (matches[1] !== \"\" || matches[3] !== \"m\") {\n return result;\n }\n\n if (!markup) {\n return result;\n }\n\n var self = this;\n\n self.decoration = null;\n\n while (nums.length > 0) {\n var num_str = nums.shift();\n var num = parseInt(num_str);\n\n if (isNaN(num) || num === 0) {\n self.fg = self.bg = self.decoration = null;\n } else if (num === 1) {\n self.decoration = \"bold\";\n } else if (num === 2) {\n self.decoration = \"dim\";\n // Enable code 2 to get string\n } else if (num == 3) {\n self.decoration = \"italic\";\n } else if (num == 4) {\n self.decoration = \"underline\";\n } else if (num == 5) {\n self.decoration = \"blink\";\n } else if (num === 7) {\n self.decoration = \"reverse\";\n } else if (num === 8) {\n self.decoration = \"hidden\";\n // Enable code 9 to get strikethrough\n } else if (num === 9) {\n self.decoration = \"strikethrough\";\n } else if (num == 39) {\n self.fg = null;\n } else if (num == 49) {\n self.bg = null;\n // Foreground color\n } else if (num >= 30 && num < 38) {\n self.fg = ANSI_COLORS[0][num % 10][key];\n // Foreground bright color\n } else if (num >= 90 && num < 98) {\n self.fg = ANSI_COLORS[1][num % 10][key];\n // Background color\n } else if (num >= 40 && num < 48) {\n self.bg = ANSI_COLORS[0][num % 10][key];\n // Background bright color\n } else if (num >= 100 && num < 108) {\n self.bg = ANSI_COLORS[1][num % 10][key];\n } else if (num === 38 || num === 48) {\n // extend color (38=fg, 48=bg)\n var is_foreground = num === 38;\n if (nums.length >= 1) {\n var mode = nums.shift();\n if (mode === \"5\" && nums.length >= 1) {\n // palette color\n var palette_index = parseInt(nums.shift());\n if (palette_index >= 0 && palette_index <= 255) {\n if (!use_classes) {\n if (!this.PALETTE_COLORS) {\n self.setupPalette();\n }\n if (is_foreground) {\n self.fg = this.PALETTE_COLORS[palette_index];\n } else {\n self.bg = this.PALETTE_COLORS[palette_index];\n }\n } else {\n var klass = palette_index >= 16 ? \"ansi-palette-\" + palette_index : ANSI_COLORS[palette_index > 7 ? 1 : 0][palette_index % 8][\"class\"];\n if (is_foreground) {\n self.fg = klass;\n } else {\n self.bg = klass;\n }\n }\n }\n } else if (mode === \"2\" && nums.length >= 3) {\n // true color\n var r = parseInt(nums.shift());\n var g = parseInt(nums.shift());\n var b = parseInt(nums.shift());\n if (r >= 0 && r <= 255 && g >= 0 && g <= 255 && b >= 0 && b <= 255) {\n var color = r + \", \" + g + \", \" + b;\n if (!use_classes) {\n if (is_foreground) {\n self.fg = color;\n } else {\n self.bg = color;\n }\n } else {\n if (is_foreground) {\n self.fg = \"ansi-truecolor\";\n self.fg_truecolor = color;\n } else {\n self.bg = \"ansi-truecolor\";\n self.bg_truecolor = color;\n }\n }\n }\n }\n }\n }\n }\n\n if (self.fg === null && self.bg === null && self.decoration === null) {\n return result;\n } else {\n var styles = [];\n var classes = [];\n var data = {};\n\n result.fg = self.fg;\n result.bg = self.bg;\n result.fg_truecolor = self.fg_truecolor;\n result.bg_truecolor = self.bg_truecolor;\n result.decoration = self.decoration;\n result.was_processed = true;\n\n return result;\n }\n }\n\n /**\n * processChunk\n * Processes the current chunk of text.\n *\n * @name processChunk\n * @function\n * @param {String} text The input text.\n * @param {Object} options An object containing the following fields:\n *\n * - `json` (Boolean): If `true`, the result will be an object.\n * - `use_classes` (Boolean): If `true`, HTML classes will be appended to the HTML output.\n *\n * @param {Boolean} markup If false, the colors will not be parsed.\n * @return {Object|String} The result (object if `json` is wanted back or string otherwise).\n */\n\n }, {\n key: \"processChunk\",\n value: function processChunk(text, options, markup) {\n var _this2 = this;\n\n var self = this;\n options = options || {};\n var jsonChunk = this.processChunkJson(text, options, markup);\n\n if (options.json) {\n return jsonChunk;\n }\n if (jsonChunk.isEmpty()) {\n return \"\";\n }\n if (!jsonChunk.was_processed) {\n return jsonChunk.content;\n }\n\n var use_classes = options.use_classes;\n\n var styles = [];\n var classes = [];\n var data = {};\n var render_data = function render_data(data) {\n var fragments = [];\n var key = void 0;\n for (key in data) {\n if (data.hasOwnProperty(key)) {\n fragments.push(\"data-\" + key + \"=\\\"\" + _this2.escapeForHtml(data[key]) + \"\\\"\");\n }\n }\n return fragments.length > 0 ? \" \" + fragments.join(\" \") : \"\";\n };\n\n if (jsonChunk.fg) {\n if (use_classes) {\n classes.push(jsonChunk.fg + \"-fg\");\n if (jsonChunk.fg_truecolor !== null) {\n data[\"ansi-truecolor-fg\"] = jsonChunk.fg_truecolor;\n jsonChunk.fg_truecolor = null;\n }\n } else {\n styles.push(\"color:rgb(\" + jsonChunk.fg + \")\");\n }\n }\n\n if (jsonChunk.bg) {\n if (use_classes) {\n classes.push(jsonChunk.bg + \"-bg\");\n if (jsonChunk.bg_truecolor !== null) {\n data[\"ansi-truecolor-bg\"] = jsonChunk.bg_truecolor;\n jsonChunk.bg_truecolor = null;\n }\n } else {\n styles.push(\"background-color:rgb(\" + jsonChunk.bg + \")\");\n }\n }\n\n if (jsonChunk.decoration) {\n if (use_classes) {\n classes.push(\"ansi-\" + jsonChunk.decoration);\n } else if (jsonChunk.decoration === \"bold\") {\n styles.push(\"font-weight:bold\");\n } else if (jsonChunk.decoration === \"dim\") {\n styles.push(\"opacity:0.5\");\n } else if (jsonChunk.decoration === \"italic\") {\n styles.push(\"font-style:italic\");\n // underline and blink are treated bellow\n } else if (jsonChunk.decoration === \"reverse\") {\n styles.push(\"filter:invert(100%)\");\n } else if (jsonChunk.decoration === \"hidden\") {\n styles.push(\"visibility:hidden\");\n } else if (jsonChunk.decoration === \"strikethrough\") {\n styles.push(\"text-decoration:line-through\");\n } else {\n styles.push(\"text-decoration:\" + jsonChunk.decoration);\n }\n }\n\n if (use_classes) {\n return \"<span class=\\\"\" + classes.join(\" \") + \"\\\"\" + render_data(data) + \">\" + jsonChunk.content + \"</span>\";\n } else {\n return \"<span style=\\\"\" + styles.join(\";\") + \"\\\"\" + render_data(data) + \">\" + jsonChunk.content + \"</span>\";\n }\n }\n }]);\n\n return Anser;\n}();\n\n;\n\nmodule.exports = Anser;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QzNCLG1CQUFtQixRQUFRO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLFNBQVM7QUFDNUIsb0JBQW9CLGVBQWU7QUFDbkM7O0FBRUEsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Qsd0RBQXdEO0FBQ3hEO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0EsQ0FBQzs7QUFFRDs7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvYW5zZXIvbGliL2luZGV4LmpzP2JjZTciXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbi8vIFRoaXMgZmlsZSB3YXMgb3JpZ2luYWxseSB3cml0dGVuIGJ5IEBkcnVkcnUgKGh0dHBzOi8vZ2l0aHViLmNvbS9kcnVkcnUvYW5zaV91cCksIE1JVCwgMjAxMVxuXG52YXIgX2NyZWF0ZUNsYXNzID0gZnVuY3Rpb24gKCkgeyBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH0gcmV0dXJuIGZ1bmN0aW9uIChDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfTsgfSgpO1xuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG52YXIgQU5TSV9DT0xPUlMgPSBbW3sgY29sb3I6IFwiMCwgMCwgMFwiLCBcImNsYXNzXCI6IFwiYW5zaS1ibGFja1wiIH0sIHsgY29sb3I6IFwiMTg3LCAwLCAwXCIsIFwiY2xhc3NcIjogXCJhbnNpLXJlZFwiIH0sIHsgY29sb3I6IFwiMCwgMTg3LCAwXCIsIFwiY2xhc3NcIjogXCJhbnNpLWdyZWVuXCIgfSwgeyBjb2xvcjogXCIxODcsIDE4NywgMFwiLCBcImNsYXNzXCI6IFwiYW5zaS15ZWxsb3dcIiB9LCB7IGNvbG9yOiBcIjAsIDAsIDE4N1wiLCBcImNsYXNzXCI6IFwiYW5zaS1ibHVlXCIgfSwgeyBjb2xvcjogXCIxODcsIDAsIDE4N1wiLCBcImNsYXNzXCI6IFwiYW5zaS1tYWdlbnRhXCIgfSwgeyBjb2xvcjogXCIwLCAxODcsIDE4N1wiLCBcImNsYXNzXCI6IFwiYW5zaS1jeWFuXCIgfSwgeyBjb2xvcjogXCIyNTUsMjU1LDI1NVwiLCBcImNsYXNzXCI6IFwiYW5zaS13aGl0ZVwiIH1dLCBbeyBjb2xvcjogXCI4NSwgODUsIDg1XCIsIFwiY2xhc3NcIjogXCJhbnNpLWJyaWdodC1ibGFja1wiIH0sIHsgY29sb3I6IFwiMjU1LCA4NSwgODVcIiwgXCJjbGFzc1wiOiBcImFuc2ktYnJpZ2h0LXJlZFwiIH0sIHsgY29sb3I6IFwiMCwgMjU1LCAwXCIsIFwiY2xhc3NcIjogXCJhbnNpLWJyaWdodC1ncmVlblwiIH0sIHsgY29sb3I6IFwiMjU1LCAyNTUsIDg1XCIsIFwiY2xhc3NcIjogXCJhbnNpLWJyaWdodC15ZWxsb3dcIiB9LCB7IGNvbG9yOiBcIjg1LCA4NSwgMjU1XCIsIFwiY2xhc3NcIjogXCJhbnNpLWJyaWdodC1ibHVlXCIgfSwgeyBjb2xvcjogXCIyNTUsIDg1LCAyNTVcIiwgXCJjbGFzc1wiOiBcImFuc2ktYnJpZ2h0LW1hZ2VudGFcIiB9LCB7IGNvbG9yOiBcIjg1LCAyNTUsIDI1NVwiLCBcImNsYXNzXCI6IFwiYW5zaS1icmlnaHQtY3lhblwiIH0sIHsgY29sb3I6IFwiMjU1LCAyNTUsIDI1NVwiLCBcImNsYXNzXCI6IFwiYW5zaS1icmlnaHQtd2hpdGVcIiB9XV07XG5cbnZhciBBbnNlciA9IGZ1bmN0aW9uICgpIHtcbiAgICBfY3JlYXRlQ2xhc3MoQW5zZXIsIG51bGwsIFt7XG4gICAgICAgIGtleTogXCJlc2NhcGVGb3JIdG1sXCIsXG5cblxuICAgICAgICAvKipcbiAgICAgICAgICogQW5zZXIuZXNjYXBlRm9ySHRtbFxuICAgICAgICAgKiBFc2NhcGUgdGhlIGlucHV0IEhUTUwuXG4gICAgICAgICAqXG4gICAgICAgICAqIFRoaXMgZG9lcyB0aGUgbWluaW11bSBlc2NhcGluZyBvZiB0ZXh0IHRvIG1ha2UgaXQgY29tcGxpYW50IHdpdGggSFRNTC5cbiAgICAgICAgICogSW4gcGFydGljdWxhciwgdGhlICcmJywnPCcsIGFuZCAnPicgY2hhcmFjdGVycyBhcmUgZXNjYXBlZC4gVGhpcyBzaG91bGRcbiAgICAgICAgICogYmUgcnVuIHByaW9yIHRvIGBhbnNpVG9IdG1sYC5cbiAgICAgICAgICpcbiAgICAgICAgICogQG5hbWUgQW5zZXIuZXNjYXBlRm9ySHRtbFxuICAgICAgICAgKiBAZnVuY3Rpb25cbiAgICAgICAgICogQHBhcmFtIHtTdHJpbmd9IHR4dCBUaGUgaW5wdXQgdGV4dCAoY29udGFpbmluZyB0aGUgQU5TSSBzbmlwcGV0cykuXG4gICAgICAgICAqIEByZXR1cm5zIHtTdHJpbmd9IFRoZSBlc2NhcGVkIGh0bWwuXG4gICAgICAgICAqL1xuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gZXNjYXBlRm9ySHRtbCh0eHQpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQW5zZXIoKS5lc2NhcGVGb3JIdG1sKHR4dCk7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogQW5zZXIubGlua2lmeVxuICAgICAgICAgKiBBZGRzIHRoZSBsaW5rcyBpbiB0aGUgSFRNTC5cbiAgICAgICAgICpcbiAgICAgICAgICogVGhpcyByZXBsYWNlcyBhbnkgbGlua3MgaW4gdGhlIHRleHQgd2l0aCBhbmNob3IgdGFncyB0aGF0IGRpc3BsYXkgdGhlXG4gICAgICAgICAqIGxpbmsuIFRoZSBsaW5rcyBzaG91bGQgaGF2ZSBhdCBsZWFzdCBvbmUgd2hpdGVzcGFjZSBjaGFyYWN0ZXJcbiAgICAgICAgICogc3Vycm91bmRpbmcgaXQuIEFsc28sIHlvdSBzaG91bGQgYXBwbHkgdGhpcyBhZnRlciB5b3UgaGF2ZSBydW5cbiAgICAgICAgICogYGFuc2lUb0h0bWxgIG9uIHRoZSB0ZXh0LlxuICAgICAgICAgKlxuICAgICAgICAgKiBAbmFtZSBBbnNlci5saW5raWZ5XG4gICAgICAgICAqIEBmdW5jdGlvblxuICAgICAgICAgKiBAcGFyYW0ge1N0cmluZ30gdHh0IFRoZSBpbnB1dCB0ZXh0LlxuICAgICAgICAgKiBAcmV0dXJucyB7U3RyaW5nfSBUaGUgSFRNTCBjb250YWluaW5nIHRoZSA8YT4gdGFncyAodW5lc2NhcGVkKS5cbiAgICAgICAgICovXG5cbiAgICB9LCB7XG4gICAgICAgIGtleTogXCJsaW5raWZ5XCIsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBsaW5raWZ5KHR4dCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBBbnNlcigpLmxpbmtpZnkodHh0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBbnNlci5hbnNpVG9IdG1sXG4gICAgICAgICAqIFRoaXMgcmVwbGFjZXMgQU5TSSB0ZXJtaW5hbCBlc2NhcGUgY29kZXMgd2l0aCBTUEFOIHRhZ3MgdGhhdCB3cmFwIHRoZVxuICAgICAgICAgKiBjb250ZW50LlxuICAgICAgICAgKlxuICAgICAgICAgKiBUaGlzIGZ1bmN0aW9uIG9ubHkgaW50ZXJwcmV0cyBBTlNJIFNHUiAoU2VsZWN0IEdyYXBoaWMgUmVuZGl0aW9uKSBjb2Rlc1xuICAgICAgICAgKiB0aGF0IGNhbiBiZSByZXByZXNlbnRlZCBpbiBIVE1MLlxuICAgICAgICAgKiBGb3IgZXhhbXBsZSwgY3Vyc29yIG1vdmVtZW50IGNvZGVzIGFyZSBpZ25vcmVkIGFuZCBoaWRkZW4gZnJvbSBvdXRwdXQuXG4gICAgICAgICAqIFRoZSBkZWZhdWx0IHN0eWxlIHVzZXMgY29sb3JzIHRoYXQgYXJlIHZlcnkgY2xvc2UgdG8gdGhlIHByZXNjcmliZWRcbiAgICAgICAgICogc3RhbmRhcmQuIFRoZSBzdGFuZGFyZCBhc3N1bWVzIHRoYXQgdGhlIHRleHQgd2lsbCBoYXZlIGEgYmxhY2tcbiAgICAgICAgICogYmFja2dyb3VuZC4gVGhlc2UgY29sb3JzIGFyZSBzZXQgYXMgaW5saW5lIHN0eWxlcyBvbiB0aGUgU1BBTiB0YWdzLlxuICAgICAgICAgKlxuICAgICAgICAgKiBBbm90aGVyIG9wdGlvbiBpcyB0byBzZXQgYHVzZV9jbGFzc2VzOiB0cnVlYCBpbiB0aGUgb3B0aW9ucyBhcmd1bWVudC5cbiAgICAgICAgICogVGhpcyB3aWxsIGluc3RlYWQgc2V0IGNsYXNzZXMgb24gdGhlIHNwYW5zIHNvIHRoZSBjb2xvcnMgY2FuIGJlIHNldCB2aWFcbiAgICAgICAgICogQ1NTLiBUaGUgY2xhc3MgbmFtZXMgdXNlZCBhcmUgb2YgdGhlIGZvcm1hdCBgYW5zaS0qLWZnL2JnYCBhbmRcbiAgICAgICAgICogYGFuc2ktYnJpZ2h0LSotZmcvYmdgIHdoZXJlIGAqYCBpcyB0aGUgY29sb3IgbmFtZSxcbiAgICAgICAgICogaS5lIGJsYWNrL3JlZC9ncmVlbi95ZWxsb3cvYmx1ZS9tYWdlbnRhL2N5YW4vd2hpdGUuXG4gICAgICAgICAqXG4gICAgICAgICAqIEBuYW1lIEFuc2VyLmFuc2lUb0h0bWxcbiAgICAgICAgICogQGZ1bmN0aW9uXG4gICAgICAgICAqIEBwYXJhbSB7U3RyaW5nfSB0eHQgVGhlIGlucHV0IHRleHQuXG4gICAgICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIFRoZSBvcHRpb25zIHBhc3NlZCB0byB0aGUgYW5zaVRvSFRNTCBtZXRob2QuXG4gICAgICAgICAqIEByZXR1cm5zIHtTdHJpbmd9IFRoZSBIVE1MIG91dHB1dC5cbiAgICAgICAgICovXG5cbiAgICB9LCB7XG4gICAgICAgIGtleTogXCJhbnNpVG9IdG1sXCIsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBhbnNpVG9IdG1sKHR4dCwgb3B0aW9ucykge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBBbnNlcigpLmFuc2lUb0h0bWwodHh0LCBvcHRpb25zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBbnNlci5hbnNpVG9Kc29uXG4gICAgICAgICAqIENvbnZlcnRzIEFOU0kgaW5wdXQgaW50byBKU09OIG91dHB1dC5cbiAgICAgICAgICpcbiAgICAgICAgICogQG5hbWUgQW5zZXIuYW5zaVRvSnNvblxuICAgICAgICAgKiBAZnVuY3Rpb25cbiAgICAgICAgICogQHBhcmFtIHtTdHJpbmd9IHR4dCBUaGUgaW5wdXQgdGV4dC5cbiAgICAgICAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgVGhlIG9wdGlvbnMgcGFzc2VkIHRvIHRoZSBhbnNpVG9IVE1MIG1ldGhvZC5cbiAgICAgICAgICogQHJldHVybnMge1N0cmluZ30gVGhlIEhUTUwgb3V0cHV0LlxuICAgICAgICAgKi9cblxuICAgIH0sIHtcbiAgICAgICAga2V5OiBcImFuc2lUb0pzb25cIixcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIGFuc2lUb0pzb24odHh0LCBvcHRpb25zKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEFuc2VyKCkuYW5zaVRvSnNvbih0eHQsIG9wdGlvbnMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEFuc2VyLmFuc2lUb1RleHRcbiAgICAgICAgICogQ29udmVydHMgQU5TSSBpbnB1dCBpbnRvIHRleHQgb3V0cHV0LlxuICAgICAgICAgKlxuICAgICAgICAgKiBAbmFtZSBBbnNlci5hbnNpVG9UZXh0XG4gICAgICAgICAqIEBmdW5jdGlvblxuICAgICAgICAgKiBAcGFyYW0ge1N0cmluZ30gdHh0IFRoZSBpbnB1dCB0ZXh0LlxuICAgICAgICAgKiBAcmV0dXJucyB7U3RyaW5nfSBUaGUgdGV4dCBvdXRwdXQuXG4gICAgICAgICAqL1xuXG4gICAgfSwge1xuICAgICAgICBrZXk6IFwiYW5zaVRvVGV4dFwiLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gYW5zaVRvVGV4dCh0eHQpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQW5zZXIoKS5hbnNpVG9UZXh0KHR4dCk7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogQW5zZXJcbiAgICAgICAgICogVGhlIGBBbnNlcmAgY2xhc3MuXG4gICAgICAgICAqXG4gICAgICAgICAqIEBuYW1lIEFuc2VyXG4gICAgICAgICAqIEBmdW5jdGlvblxuICAgICAgICAgKiBAcmV0dXJucyB7QW5zZXJ9XG4gICAgICAgICAqL1xuXG4gICAgfV0pO1xuXG4gICAgZnVuY3Rpb24gQW5zZXIoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBBbnNlcik7XG5cbiAgICAgICAgdGhpcy5mZyA9IHRoaXMuYmcgPSB0aGlzLmZnX3RydWVjb2xvciA9IHRoaXMuYmdfdHJ1ZWNvbG9yID0gbnVsbDtcbiAgICAgICAgdGhpcy5icmlnaHQgPSAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHNldHVwUGFsZXR0ZVxuICAgICAqIFNldHMgdXAgdGhlIHBhbGV0dGUuXG4gICAgICpcbiAgICAgKiBAbmFtZSBzZXR1cFBhbGV0dGVcbiAgICAgKiBAZnVuY3Rpb25cbiAgICAgKi9cblxuXG4gICAgX2NyZWF0ZUNsYXNzKEFuc2VyLCBbe1xuICAgICAgICBrZXk6IFwic2V0dXBQYWxldHRlXCIsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBzZXR1cFBhbGV0dGUoKSB7XG4gICAgICAgICAgICB0aGlzLlBBTEVUVEVfQ09MT1JTID0gW107XG5cbiAgICAgICAgICAgIC8vIEluZGV4IDAuLjE1IDogU3lzdGVtIGNvbG9yXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDI7ICsraSkge1xuICAgICAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgODsgKytqKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuUEFMRVRURV9DT0xPUlMucHVzaChBTlNJX0NPTE9SU1tpXVtqXS5jb2xvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBJbmRleCAxNi4uMjMxIDogUkdCIDZ4Nng2XG4gICAgICAgICAgICAvLyBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9qYXNvbm0yMy8yODY4OTgxI2ZpbGUteHRlcm0tMjU2Y29sb3IteWFtbFxuICAgICAgICAgICAgdmFyIGxldmVscyA9IFswLCA5NSwgMTM1LCAxNzUsIDIxNSwgMjU1XTtcbiAgICAgICAgICAgIHZhciBmb3JtYXQgPSBmdW5jdGlvbiBmb3JtYXQociwgZywgYikge1xuICAgICAgICAgICAgICAgIHJldHVybiBsZXZlbHNbcl0gKyBcIiwgXCIgKyBsZXZlbHNbZ10gKyBcIiwgXCIgKyBsZXZlbHNbYl07XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdmFyIHIgPSB2b2lkIDAsXG4gICAgICAgICAgICAgICAgZyA9IHZvaWQgMCxcbiAgICAgICAgICAgICAgICBiID0gdm9pZCAwO1xuICAgICAgICAgICAgZm9yICh2YXIgX3IgPSAwOyBfciA8IDY7ICsrX3IpIHtcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBfZyA9IDA7IF9nIDwgNjsgKytfZykge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBfYiA9IDA7IF9iIDwgNjsgKytfYikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5QQUxFVFRFX0NPTE9SUy5wdXNoKGZvcm1hdChfciwgX2csIF9iKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIEluZGV4IDIzMi4uMjU1IDogR3JheXNjYWxlXG4gICAgICAgICAgICB2YXIgbGV2ZWwgPSA4O1xuICAgICAgICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IDI0OyArK19pLCBsZXZlbCArPSAxMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuUEFMRVRURV9DT0xPUlMucHVzaChmb3JtYXQobGV2ZWwsIGxldmVsLCBsZXZlbCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIGVzY2FwZUZvckh0bWxcbiAgICAgICAgICogRXNjYXBlcyB0aGUgaW5wdXQgdGV4dC5cbiAgICAgICAgICpcbiAgICAgICAgICogQG5hbWUgZXNjYXBlRm9ySHRtbFxuICAgICAgICAgKiBAZnVuY3Rpb25cbiAgICAgICAgICogQHBhcmFtIHtTdHJpbmd9IHR4dCBUaGUgaW5wdXQgdGV4dC5cbiAgICAgICAgICogQHJldHVybnMge1N0cmluZ30gVGhlIGVzY3BhZWQgSFRNTCBvdXRwdXQuXG4gICAgICAgICAqL1xuXG4gICAgfSwge1xuICAgICAgICBrZXk6IFwiZXNjYXBlRm9ySHRtbFwiLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gZXNjYXBlRm9ySHRtbCh0eHQpIHtcbiAgICAgICAgICAgIHJldHVybiB0eHQucmVwbGFjZSgvWyY8Pl0vZ20sIGZ1bmN0aW9uIChzdHIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RyID09IFwiJlwiID8gXCImYW1wO1wiIDogc3RyID09IFwiPFwiID8gXCImbHQ7XCIgOiBzdHIgPT0gXCI+XCIgPyBcIiZndDtcIiA6IFwiXCI7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBsaW5raWZ5XG4gICAgICAgICAqIEFkZHMgSFRNTCBsaW5rIGVsZW1lbnRzLlxuICAgICAgICAgKlxuICAgICAgICAgKiBAbmFtZSBsaW5raWZ5XG4gICAgICAgICAqIEBmdW5jdGlvblxuICAgICAgICAgKiBAcGFyYW0ge1N0cmluZ30gdHh0IFRoZSBpbnB1dCB0ZXh0LlxuICAgICAgICAgKiBAcmV0dXJucyB7U3RyaW5nfSBUaGUgSFRNTCBvdXRwdXQgY29udGFpbmluZyBsaW5rIGVsZW1lbnRzLlxuICAgICAgICAgKi9cblxuICAgIH0sIHtcbiAgICAgICAga2V5OiBcImxpbmtpZnlcIixcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIGxpbmtpZnkodHh0KSB7XG4gICAgICAgICAgICByZXR1cm4gdHh0LnJlcGxhY2UoLyhodHRwcz86XFwvXFwvW15cXHNdKykvZ20sIGZ1bmN0aW9uIChzdHIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCI8YSBocmVmPVxcXCJcIiArIHN0ciArIFwiXFxcIj5cIiArIHN0ciArIFwiPC9hPlwiO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogYW5zaVRvSHRtbFxuICAgICAgICAgKiBDb252ZXJ0cyBBTlNJIGlucHV0IGludG8gSFRNTCBvdXRwdXQuXG4gICAgICAgICAqXG4gICAgICAgICAqIEBuYW1lIGFuc2lUb0h0bWxcbiAgICAgICAgICogQGZ1bmN0aW9uXG4gICAgICAgICAqIEBwYXJhbSB7U3RyaW5nfSB0eHQgVGhlIGlucHV0IHRleHQuXG4gICAgICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIFRoZSBvcHRpb25zIHBhc3NlZCBvdCB0aGUgYHByb2Nlc3NgIG1ldGhvZC5cbiAgICAgICAgICogQHJldHVybnMge1N0cmluZ30gVGhlIEhUTUwgb3V0cHV0LlxuICAgICAgICAgKi9cblxuICAgIH0sIHtcbiAgICAgICAga2V5OiBcImFuc2lUb0h0bWxcIixcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIGFuc2lUb0h0bWwodHh0LCBvcHRpb25zKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzKHR4dCwgb3B0aW9ucywgdHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogYW5zaVRvSnNvblxuICAgICAgICAgKiBDb252ZXJ0cyBBTlNJIGlucHV0IGludG8gSFRNTCBvdXRwdXQuXG4gICAgICAgICAqXG4gICAgICAgICAqIEBuYW1lIGFuc2lUb0pzb25cbiAgICAgICAgICogQGZ1bmN0aW9uXG4gICAgICAgICAqIEBwYXJhbSB7U3RyaW5nfSB0eHQgVGhlIGlucHV0IHRleHQuXG4gICAgICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIFRoZSBvcHRpb25zIHBhc3NlZCBvdCB0aGUgYHByb2Nlc3NgIG1ldGhvZC5cbiAgICAgICAgICogQHJldHVybnMge1N0cmluZ30gVGhlIEpTT04gb3V0cHV0LlxuICAgICAgICAgKi9cblxuICAgIH0sIHtcbiAgICAgICAga2V5OiBcImFuc2lUb0pzb25cIixcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIGFuc2lUb0pzb24odHh0LCBvcHRpb25zKSB7XG4gICAgICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgICAgICAgICAgIG9wdGlvbnMuanNvbiA9IHRydWU7XG4gICAgICAgICAgICBvcHRpb25zLmNsZWFyTGluZSA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzcyh0eHQsIG9wdGlvbnMsIHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIGFuc2lUb1RleHRcbiAgICAgICAgICogQ29udmVydHMgQU5TSSBpbnB1dCBpbnRvIEhUTUwgb3V0cHV0LlxuICAgICAgICAgKlxuICAgICAgICAgKiBAbmFtZSBhbnNpVG9UZXh0XG4gICAgICAgICAqIEBmdW5jdGlvblxuICAgICAgICAgKiBAcGFyYW0ge1N0cmluZ30gdHh0IFRoZSBpbnB1dCB0ZXh0LlxuICAgICAgICAgKiBAcmV0dXJucyB7U3RyaW5nfSBUaGUgdGV4dCBvdXRwdXQuXG4gICAgICAgICAqL1xuXG4gICAgfSwge1xuICAgICAgICBrZXk6IFwiYW5zaVRvVGV4dFwiLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gYW5zaVRvVGV4dCh0eHQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3ModHh0LCB7fSwgZmFsc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIHByb2Nlc3NcbiAgICAgICAgICogUHJvY2Vzc2VzIHRoZSBpbnB1dC5cbiAgICAgICAgICpcbiAgICAgICAgICogQG5hbWUgcHJvY2Vzc1xuICAgICAgICAgKiBAZnVuY3Rpb25cbiAgICAgICAgICogQHBhcmFtIHtTdHJpbmd9IHR4dCBUaGUgaW5wdXQgdGV4dC5cbiAgICAgICAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgQW4gb2JqZWN0IHBhc3NlZCB0byBgcHJvY2Vzc0NodW5rYCBtZXRob2QsIGV4dGVuZGVkIHdpdGg6XG4gICAgICAgICAqXG4gICAgICAgICAqICAtIGBqc29uYCAoQm9vbGVhbik6IElmIGB0cnVlYCwgdGhlIHJlc3VsdCB3aWxsIGJlIGFuIG9iamVjdC5cbiAgICAgICAgICogIC0gYHVzZV9jbGFzc2VzYCAoQm9vbGVhbik6IElmIGB0cnVlYCwgSFRNTCBjbGFzc2VzIHdpbGwgYmUgYXBwZW5kZWQgdG8gdGhlIEhUTUwgb3V0cHV0LlxuICAgICAgICAgKlxuICAgICAgICAgKiBAcGFyYW0ge0Jvb2xlYW59IG1hcmt1cFxuICAgICAgICAgKi9cblxuICAgIH0sIHtcbiAgICAgICAga2V5OiBcInByb2Nlc3NcIixcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIHByb2Nlc3ModHh0LCBvcHRpb25zLCBtYXJrdXApIHtcbiAgICAgICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICAgICAgICAgIHZhciBzZWxmID0gdGhpcztcbiAgICAgICAgICAgIHZhciByYXdfdGV4dF9jaHVua3MgPSB0eHQuc3BsaXQoL1xcMDMzXFxbLyk7XG4gICAgICAgICAgICB2YXIgZmlyc3RfY2h1bmsgPSByYXdfdGV4dF9jaHVua3Muc2hpZnQoKTsgLy8gdGhlIGZpcnN0IGNodW5rIGlzIG5vdCB0aGUgcmVzdWx0IG9mIHRoZSBzcGxpdFxuXG4gICAgICAgICAgICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkIHx8IG9wdGlvbnMgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBvcHRpb25zID0ge307XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcHRpb25zLmNsZWFyTGluZSA9IC9cXHIvLnRlc3QodHh0KTsgLy8gY2hlY2sgZm9yIENhcnJpYWdlIFJldHVyblxuICAgICAgICAgICAgdmFyIGNvbG9yX2NodW5rcyA9IHJhd190ZXh0X2NodW5rcy5tYXAoZnVuY3Rpb24gKGNodW5rKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF90aGlzLnByb2Nlc3NDaHVuayhjaHVuaywgb3B0aW9ucywgbWFya3VwKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLmpzb24pIHtcbiAgICAgICAgICAgICAgICB2YXIgZmlyc3QgPSBzZWxmLnByb2Nlc3NDaHVua0pzb24oXCJcIik7XG4gICAgICAgICAgICAgICAgZmlyc3QuY29udGVudCA9IGZpcnN0X2NodW5rO1xuICAgICAgICAgICAgICAgIGZpcnN0LmNsZWFyTGluZSA9IG9wdGlvbnMuY2xlYXJMaW5lO1xuICAgICAgICAgICAgICAgIGNvbG9yX2NodW5rcy51bnNoaWZ0KGZpcnN0KTtcbiAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5yZW1vdmVfZW1wdHkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3JfY2h1bmtzID0gY29sb3JfY2h1bmtzLmZpbHRlcihmdW5jdGlvbiAoYykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICFjLmlzRW1wdHkoKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBjb2xvcl9jaHVua3M7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbG9yX2NodW5rcy51bnNoaWZ0KGZpcnN0X2NodW5rKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGNvbG9yX2NodW5rcy5qb2luKFwiXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIHByb2Nlc3NDaHVua0pzb25cbiAgICAgICAgICogUHJvY2Vzc2VzIHRoZSBjdXJyZW50IGNodW5rIGludG8ganNvbiBvdXRwdXQuXG4gICAgICAgICAqXG4gICAgICAgICAqIEBuYW1lIHByb2Nlc3NDaHVua0pzb25cbiAgICAgICAgICogQGZ1bmN0aW9uXG4gICAgICAgICAqIEBwYXJhbSB7U3RyaW5nfSB0ZXh0IFRoZSBpbnB1dCB0ZXh0LlxuICAgICAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgZm9sbG93aW5nIGZpZWxkczpcbiAgICAgICAgICpcbiAgICAgICAgICogIC0gYGpzb25gIChCb29sZWFuKTogSWYgYHRydWVgLCB0aGUgcmVzdWx0IHdpbGwgYmUgYW4gb2JqZWN0LlxuICAgICAgICAgKiAgLSBgdXNlX2NsYXNzZXNgIChCb29sZWFuKTogSWYgYHRydWVgLCBIVE1MIGNsYXNzZXMgd2lsbCBiZSBhcHBlbmRlZCB0byB0aGUgSFRNTCBvdXRwdXQuXG4gICAgICAgICAqXG4gICAgICAgICAqIEBwYXJhbSB7Qm9vbGVhbn0gbWFya3VwIElmIGZhbHNlLCB0aGUgY29sb3JzIHdpbGwgbm90IGJlIHBhcnNlZC5cbiAgICAgICAgICogQHJldHVybiB7T2JqZWN0fSBUaGUgcmVzdWx0IG9iamVjdDpcbiAgICAgICAgICpcbiAgICAgICAgICogIC0gYGNvbnRlbnRgIChTdHJpbmcpOiBUaGUgdGV4dC5cbiAgICAgICAgICogIC0gYGZnYCAoU3RyaW5nfG51bGwpOiBUaGUgZm9yZWdyb3VuZCBjb2xvci5cbiAgICAgICAgICogIC0gYGJnYCAoU3RyaW5nfG51bGwpOiBUaGUgYmFja2dyb3VuZCBjb2xvci5cbiAgICAgICAgICogIC0gYGZnX3RydWVjb2xvcmAgKFN0cmluZ3xudWxsKTogVGhlIGZvcmVncm91bmQgdHJ1ZSBjb2xvciAoaWYgMTZtIGNvbG9yIGlzIGVuYWJsZWQpLlxuICAgICAgICAgKiAgLSBgYmdfdHJ1ZWNvbG9yYCAoU3RyaW5nfG51bGwpOiBUaGUgYmFja2dyb3VuZCB0cnVlIGNvbG9yIChpZiAxNm0gY29sb3IgaXMgZW5hYmxlZCkuXG4gICAgICAgICAqICAtIGBjbGVhckxpbmVgIChCb29sZWFuKTogYHRydWVgIGlmIGEgY2FycmlhZ2VSZXR1cm4gXFxyIHdhcyBmb3VudCBhdCBlbmQgb2YgbGluZS5cbiAgICAgICAgICogIC0gYHdhc19wcm9jZXNzZWRgIChCb2xlYW4pOiBgdHJ1ZWAgaWYgdGhlIGNvbG9ycyB3ZXJlIHByb2Nlc3NlZCwgYGZhbHNlYCBvdGhlcndpc2UuXG4gICAgICAgICAqICAtIGBpc0VtcHR5YCAoRnVuY3Rpb24pOiBBIGZ1bmN0aW9uIHJldHVybmluZyBgdHJ1ZWAgaWYgdGhlIGNvbnRlbnQgaXMgZW1wdHksIG9yIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICAgICAgICAgKlxuICAgICAgICAgKi9cblxuICAgIH0sIHtcbiAgICAgICAga2V5OiBcInByb2Nlc3NDaHVua0pzb25cIixcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIHByb2Nlc3NDaHVua0pzb24odGV4dCwgb3B0aW9ucywgbWFya3VwKSB7XG5cbiAgICAgICAgICAgIC8vIEFyZSB3ZSB1c2luZyBjbGFzc2VzIG9yIHN0eWxlcz9cbiAgICAgICAgICAgIG9wdGlvbnMgPSB0eXBlb2Ygb3B0aW9ucyA9PSBcInVuZGVmaW5lZFwiID8ge30gOiBvcHRpb25zO1xuICAgICAgICAgICAgdmFyIHVzZV9jbGFzc2VzID0gb3B0aW9ucy51c2VfY2xhc3NlcyA9IHR5cGVvZiBvcHRpb25zLnVzZV9jbGFzc2VzICE9IFwidW5kZWZpbmVkXCIgJiYgb3B0aW9ucy51c2VfY2xhc3NlcztcbiAgICAgICAgICAgIHZhciBrZXkgPSBvcHRpb25zLmtleSA9IHVzZV9jbGFzc2VzID8gXCJjbGFzc1wiIDogXCJjb2xvclwiO1xuXG4gICAgICAgICAgICB2YXIgcmVzdWx0ID0ge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHRleHQsXG4gICAgICAgICAgICAgICAgZmc6IG51bGwsXG4gICAgICAgICAgICAgICAgYmc6IG51bGwsXG4gICAgICAgICAgICAgICAgZmdfdHJ1ZWNvbG9yOiBudWxsLFxuICAgICAgICAgICAgICAgIGJnX3RydWVjb2xvcjogbnVsbCxcbiAgICAgICAgICAgICAgICBjbGVhckxpbmU6IG9wdGlvbnMuY2xlYXJMaW5lLFxuICAgICAgICAgICAgICAgIGRlY29yYXRpb246IG51bGwsXG4gICAgICAgICAgICAgICAgd2FzX3Byb2Nlc3NlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgaXNFbXB0eTogZnVuY3Rpb24gaXNFbXB0eSgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICFyZXN1bHQuY29udGVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAvLyBFYWNoIFwiY2h1bmtcIiBpcyB0aGUgdGV4dCBhZnRlciB0aGUgQ1NJIChFU0MgKyBcIltcIikgYW5kIGJlZm9yZSB0aGUgbmV4dCBDU0kvRU9GLlxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIFRoaXMgcmVnZXggbWF0Y2hlcyBmb3VyIGdyb3VwcyB3aXRoaW4gYSBjaHVuay5cbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyBUaGUgZmlyc3QgYW5kIHRoaXJkIGdyb3VwcyBtYXRjaCBjb2RlIHR5cGUuXG4gICAgICAgICAgICAvLyBXZSBzdXBwb3J0ZWQgb25seSBTR1IgY29tbWFuZC4gSXQgaGFzIGVtcHR5IGZpcnN0IGdyb3VwIGFuZCBcIm1cIiBpbiB0aGlyZC5cbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyBUaGUgc2Vjb25kIGdyb3VwIG1hdGNoZXMgYWxsIG9mIHRoZSBudW1iZXIrc2VtaWNvbG9uIGNvbW1hbmQgc2VxdWVuY2VzXG4gICAgICAgICAgICAvLyBiZWZvcmUgdGhlIFwibVwiIChvciBvdGhlciB0cmFpbGluZykgY2hhcmFjdGVyLlxuICAgICAgICAgICAgLy8gVGhlc2UgYXJlIHRoZSBncmFwaGljcyBvciBTR1IgY29tbWFuZHMuXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gVGhlIGxhc3QgZ3JvdXAgaXMgdGhlIHRleHQgKGluY2x1ZGluZyBuZXdsaW5lcykgdGhhdCBpcyBjb2xvcmVkIGJ5XG4gICAgICAgICAgICAvLyB0aGUgb3RoZXIgZ3JvdXBcInMgY29tbWFuZHMuXG4gICAgICAgICAgICB2YXIgbWF0Y2hlcyA9IHRleHQubWF0Y2goL14oWyFcXHgzYy1cXHgzZl0qKShbXFxkO10qKShbXFx4MjAtXFx4MmNdKltcXHg0MC1cXHg3ZV0pKFtcXHNcXFNdKikvbSk7XG5cbiAgICAgICAgICAgIGlmICghbWF0Y2hlcykgcmV0dXJuIHJlc3VsdDtcblxuICAgICAgICAgICAgdmFyIG9yaWdfdHh0ID0gcmVzdWx0LmNvbnRlbnQgPSBtYXRjaGVzWzRdO1xuICAgICAgICAgICAgdmFyIG51bXMgPSBtYXRjaGVzWzJdLnNwbGl0KFwiO1wiKTtcblxuICAgICAgICAgICAgLy8gV2UgY3VycmVudGx5IHN1cHBvcnQgb25seSBcIlNHUlwiIChTZWxlY3QgR3JhcGhpYyBSZW5kaXRpb24pXG4gICAgICAgICAgICAvLyBTaW1wbHkgaWdub3JlIGlmIG5vdCBhIFNHUiBjb21tYW5kLlxuICAgICAgICAgICAgaWYgKG1hdGNoZXNbMV0gIT09IFwiXCIgfHwgbWF0Y2hlc1szXSAhPT0gXCJtXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIW1hcmt1cCkge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhciBzZWxmID0gdGhpcztcblxuICAgICAgICAgICAgc2VsZi5kZWNvcmF0aW9uID0gbnVsbDtcblxuICAgICAgICAgICAgd2hpbGUgKG51bXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHZhciBudW1fc3RyID0gbnVtcy5zaGlmdCgpO1xuICAgICAgICAgICAgICAgIHZhciBudW0gPSBwYXJzZUludChudW1fc3RyKTtcblxuICAgICAgICAgICAgICAgIGlmIChpc05hTihudW0pIHx8IG51bSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBzZWxmLmZnID0gc2VsZi5iZyA9IHNlbGYuZGVjb3JhdGlvbiA9IG51bGw7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW0gPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZi5kZWNvcmF0aW9uID0gXCJib2xkXCI7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW0gPT09IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZi5kZWNvcmF0aW9uID0gXCJkaW1cIjtcbiAgICAgICAgICAgICAgICAgICAgLy8gRW5hYmxlIGNvZGUgMiB0byBnZXQgc3RyaW5nXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW0gPT0gMykge1xuICAgICAgICAgICAgICAgICAgICBzZWxmLmRlY29yYXRpb24gPSBcIml0YWxpY1wiO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtID09IDQpIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZi5kZWNvcmF0aW9uID0gXCJ1bmRlcmxpbmVcIjtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bSA9PSA1KSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGYuZGVjb3JhdGlvbiA9IFwiYmxpbmtcIjtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bSA9PT0gNykge1xuICAgICAgICAgICAgICAgICAgICBzZWxmLmRlY29yYXRpb24gPSBcInJldmVyc2VcIjtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bSA9PT0gOCkge1xuICAgICAgICAgICAgICAgICAgICBzZWxmLmRlY29yYXRpb24gPSBcImhpZGRlblwiO1xuICAgICAgICAgICAgICAgICAgICAvLyBFbmFibGUgY29kZSA5IHRvIGdldCBzdHJpa2V0aHJvdWdoXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW0gPT09IDkpIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZi5kZWNvcmF0aW9uID0gXCJzdHJpa2V0aHJvdWdoXCI7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW0gPT0gMzkpIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZi5mZyA9IG51bGw7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW0gPT0gNDkpIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZi5iZyA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIC8vIEZvcmVncm91bmQgY29sb3JcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bSA+PSAzMCAmJiBudW0gPCAzOCkge1xuICAgICAgICAgICAgICAgICAgICBzZWxmLmZnID0gQU5TSV9DT0xPUlNbMF1bbnVtICUgMTBdW2tleV07XG4gICAgICAgICAgICAgICAgICAgIC8vIEZvcmVncm91bmQgYnJpZ2h0IGNvbG9yXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW0gPj0gOTAgJiYgbnVtIDwgOTgpIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZi5mZyA9IEFOU0lfQ09MT1JTWzFdW251bSAlIDEwXVtrZXldO1xuICAgICAgICAgICAgICAgICAgICAvLyBCYWNrZ3JvdW5kIGNvbG9yXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW0gPj0gNDAgJiYgbnVtIDwgNDgpIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZi5iZyA9IEFOU0lfQ09MT1JTWzBdW251bSAlIDEwXVtrZXldO1xuICAgICAgICAgICAgICAgICAgICAvLyBCYWNrZ3JvdW5kIGJyaWdodCBjb2xvclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtID49IDEwMCAmJiBudW0gPCAxMDgpIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZi5iZyA9IEFOU0lfQ09MT1JTWzFdW251bSAlIDEwXVtrZXldO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtID09PSAzOCB8fCBudW0gPT09IDQ4KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGV4dGVuZCBjb2xvciAoMzg9ZmcsIDQ4PWJnKVxuICAgICAgICAgICAgICAgICAgICB2YXIgaXNfZm9yZWdyb3VuZCA9IG51bSA9PT0gMzg7XG4gICAgICAgICAgICAgICAgICAgIGlmIChudW1zLmxlbmd0aCA+PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgbW9kZSA9IG51bXMuc2hpZnQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtb2RlID09PSBcIjVcIiAmJiBudW1zLmxlbmd0aCA+PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcGFsZXR0ZSBjb2xvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwYWxldHRlX2luZGV4ID0gcGFyc2VJbnQobnVtcy5zaGlmdCgpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFsZXR0ZV9pbmRleCA+PSAwICYmIHBhbGV0dGVfaW5kZXggPD0gMjU1KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdXNlX2NsYXNzZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5QQUxFVFRFX0NPTE9SUykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2V0dXBQYWxldHRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNfZm9yZWdyb3VuZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZmcgPSB0aGlzLlBBTEVUVEVfQ09MT1JTW3BhbGV0dGVfaW5kZXhdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmJnID0gdGhpcy5QQUxFVFRFX0NPTE9SU1twYWxldHRlX2luZGV4XTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBrbGFzcyA9IHBhbGV0dGVfaW5kZXggPj0gMTYgPyBcImFuc2ktcGFsZXR0ZS1cIiArIHBhbGV0dGVfaW5kZXggOiBBTlNJX0NPTE9SU1twYWxldHRlX2luZGV4ID4gNyA/IDEgOiAwXVtwYWxldHRlX2luZGV4ICUgOF1bXCJjbGFzc1wiXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc19mb3JlZ3JvdW5kKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5mZyA9IGtsYXNzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmJnID0ga2xhc3M7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1vZGUgPT09IFwiMlwiICYmIG51bXMubGVuZ3RoID49IDMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0cnVlIGNvbG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHIgPSBwYXJzZUludChudW1zLnNoaWZ0KCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBnID0gcGFyc2VJbnQobnVtcy5zaGlmdCgpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgYiA9IHBhcnNlSW50KG51bXMuc2hpZnQoKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHIgPj0gMCAmJiByIDw9IDI1NSAmJiBnID49IDAgJiYgZyA8PSAyNTUgJiYgYiA+PSAwICYmIGIgPD0gMjU1KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjb2xvciA9IHIgKyBcIiwgXCIgKyBnICsgXCIsIFwiICsgYjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF1c2VfY2xhc3Nlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzX2ZvcmVncm91bmQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZnID0gY29sb3I7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYmcgPSBjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc19mb3JlZ3JvdW5kKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5mZyA9IFwiYW5zaS10cnVlY29sb3JcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZnX3RydWVjb2xvciA9IGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmJnID0gXCJhbnNpLXRydWVjb2xvclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYmdfdHJ1ZWNvbG9yID0gY29sb3I7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChzZWxmLmZnID09PSBudWxsICYmIHNlbGYuYmcgPT09IG51bGwgJiYgc2VsZi5kZWNvcmF0aW9uID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdmFyIHN0eWxlcyA9IFtdO1xuICAgICAgICAgICAgICAgIHZhciBjbGFzc2VzID0gW107XG4gICAgICAgICAgICAgICAgdmFyIGRhdGEgPSB7fTtcblxuICAgICAgICAgICAgICAgIHJlc3VsdC5mZyA9IHNlbGYuZmc7XG4gICAgICAgICAgICAgICAgcmVzdWx0LmJnID0gc2VsZi5iZztcbiAgICAgICAgICAgICAgICByZXN1bHQuZmdfdHJ1ZWNvbG9yID0gc2VsZi5mZ190cnVlY29sb3I7XG4gICAgICAgICAgICAgICAgcmVzdWx0LmJnX3RydWVjb2xvciA9IHNlbGYuYmdfdHJ1ZWNvbG9yO1xuICAgICAgICAgICAgICAgIHJlc3VsdC5kZWNvcmF0aW9uID0gc2VsZi5kZWNvcmF0aW9uO1xuICAgICAgICAgICAgICAgIHJlc3VsdC53YXNfcHJvY2Vzc2VkID0gdHJ1ZTtcblxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogcHJvY2Vzc0NodW5rXG4gICAgICAgICAqIFByb2Nlc3NlcyB0aGUgY3VycmVudCBjaHVuayBvZiB0ZXh0LlxuICAgICAgICAgKlxuICAgICAgICAgKiBAbmFtZSBwcm9jZXNzQ2h1bmtcbiAgICAgICAgICogQGZ1bmN0aW9uXG4gICAgICAgICAqIEBwYXJhbSB7U3RyaW5nfSB0ZXh0IFRoZSBpbnB1dCB0ZXh0LlxuICAgICAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgZm9sbG93aW5nIGZpZWxkczpcbiAgICAgICAgICpcbiAgICAgICAgICogIC0gYGpzb25gIChCb29sZWFuKTogSWYgYHRydWVgLCB0aGUgcmVzdWx0IHdpbGwgYmUgYW4gb2JqZWN0LlxuICAgICAgICAgKiAgLSBgdXNlX2NsYXNzZXNgIChCb29sZWFuKTogSWYgYHRydWVgLCBIVE1MIGNsYXNzZXMgd2lsbCBiZSBhcHBlbmRlZCB0byB0aGUgSFRNTCBvdXRwdXQuXG4gICAgICAgICAqXG4gICAgICAgICAqIEBwYXJhbSB7Qm9vbGVhbn0gbWFya3VwIElmIGZhbHNlLCB0aGUgY29sb3JzIHdpbGwgbm90IGJlIHBhcnNlZC5cbiAgICAgICAgICogQHJldHVybiB7T2JqZWN0fFN0cmluZ30gVGhlIHJlc3VsdCAob2JqZWN0IGlmIGBqc29uYCBpcyB3YW50ZWQgYmFjayBvciBzdHJpbmcgb3RoZXJ3aXNlKS5cbiAgICAgICAgICovXG5cbiAgICB9LCB7XG4gICAgICAgIGtleTogXCJwcm9jZXNzQ2h1bmtcIixcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIHByb2Nlc3NDaHVuayh0ZXh0LCBvcHRpb25zLCBtYXJrdXApIHtcbiAgICAgICAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICAgICAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgICAgICAgICAgIHZhciBqc29uQ2h1bmsgPSB0aGlzLnByb2Nlc3NDaHVua0pzb24odGV4dCwgb3B0aW9ucywgbWFya3VwKTtcblxuICAgICAgICAgICAgaWYgKG9wdGlvbnMuanNvbikge1xuICAgICAgICAgICAgICAgIHJldHVybiBqc29uQ2h1bms7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoanNvbkNodW5rLmlzRW1wdHkoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFqc29uQ2h1bmsud2FzX3Byb2Nlc3NlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBqc29uQ2h1bmsuY29udGVudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdmFyIHVzZV9jbGFzc2VzID0gb3B0aW9ucy51c2VfY2xhc3NlcztcblxuICAgICAgICAgICAgdmFyIHN0eWxlcyA9IFtdO1xuICAgICAgICAgICAgdmFyIGNsYXNzZXMgPSBbXTtcbiAgICAgICAgICAgIHZhciBkYXRhID0ge307XG4gICAgICAgICAgICB2YXIgcmVuZGVyX2RhdGEgPSBmdW5jdGlvbiByZW5kZXJfZGF0YShkYXRhKSB7XG4gICAgICAgICAgICAgICAgdmFyIGZyYWdtZW50cyA9IFtdO1xuICAgICAgICAgICAgICAgIHZhciBrZXkgPSB2b2lkIDA7XG4gICAgICAgICAgICAgICAgZm9yIChrZXkgaW4gZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmcmFnbWVudHMucHVzaChcImRhdGEtXCIgKyBrZXkgKyBcIj1cXFwiXCIgKyBfdGhpczIuZXNjYXBlRm9ySHRtbChkYXRhW2tleV0pICsgXCJcXFwiXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBmcmFnbWVudHMubGVuZ3RoID4gMCA/IFwiIFwiICsgZnJhZ21lbnRzLmpvaW4oXCIgXCIpIDogXCJcIjtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGlmIChqc29uQ2h1bmsuZmcpIHtcbiAgICAgICAgICAgICAgICBpZiAodXNlX2NsYXNzZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKGpzb25DaHVuay5mZyArIFwiLWZnXCIpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoanNvbkNodW5rLmZnX3RydWVjb2xvciAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVtcImFuc2ktdHJ1ZWNvbG9yLWZnXCJdID0ganNvbkNodW5rLmZnX3RydWVjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGpzb25DaHVuay5mZ190cnVlY29sb3IgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc3R5bGVzLnB1c2goXCJjb2xvcjpyZ2IoXCIgKyBqc29uQ2h1bmsuZmcgKyBcIilcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoanNvbkNodW5rLmJnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHVzZV9jbGFzc2VzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzZXMucHVzaChqc29uQ2h1bmsuYmcgKyBcIi1iZ1wiKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGpzb25DaHVuay5iZ190cnVlY29sb3IgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbXCJhbnNpLXRydWVjb2xvci1iZ1wiXSA9IGpzb25DaHVuay5iZ190cnVlY29sb3I7XG4gICAgICAgICAgICAgICAgICAgICAgICBqc29uQ2h1bmsuYmdfdHJ1ZWNvbG9yID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlcy5wdXNoKFwiYmFja2dyb3VuZC1jb2xvcjpyZ2IoXCIgKyBqc29uQ2h1bmsuYmcgKyBcIilcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoanNvbkNodW5rLmRlY29yYXRpb24pIHtcbiAgICAgICAgICAgICAgICBpZiAodXNlX2NsYXNzZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKFwiYW5zaS1cIiArIGpzb25DaHVuay5kZWNvcmF0aW9uKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGpzb25DaHVuay5kZWNvcmF0aW9uID09PSBcImJvbGRcIikge1xuICAgICAgICAgICAgICAgICAgICBzdHlsZXMucHVzaChcImZvbnQtd2VpZ2h0OmJvbGRcIik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChqc29uQ2h1bmsuZGVjb3JhdGlvbiA9PT0gXCJkaW1cIikge1xuICAgICAgICAgICAgICAgICAgICBzdHlsZXMucHVzaChcIm9wYWNpdHk6MC41XCIpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoanNvbkNodW5rLmRlY29yYXRpb24gPT09IFwiaXRhbGljXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgc3R5bGVzLnB1c2goXCJmb250LXN0eWxlOml0YWxpY1wiKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gdW5kZXJsaW5lIGFuZCBibGluayBhcmUgdHJlYXRlZCBiZWxsb3dcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGpzb25DaHVuay5kZWNvcmF0aW9uID09PSBcInJldmVyc2VcIikge1xuICAgICAgICAgICAgICAgICAgICBzdHlsZXMucHVzaChcImZpbHRlcjppbnZlcnQoMTAwJSlcIik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChqc29uQ2h1bmsuZGVjb3JhdGlvbiA9PT0gXCJoaWRkZW5cIikge1xuICAgICAgICAgICAgICAgICAgICBzdHlsZXMucHVzaChcInZpc2liaWxpdHk6aGlkZGVuXCIpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoanNvbkNodW5rLmRlY29yYXRpb24gPT09IFwic3RyaWtldGhyb3VnaFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlcy5wdXNoKFwidGV4dC1kZWNvcmF0aW9uOmxpbmUtdGhyb3VnaFwiKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzdHlsZXMucHVzaChcInRleHQtZGVjb3JhdGlvbjpcIiArIGpzb25DaHVuay5kZWNvcmF0aW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh1c2VfY2xhc3Nlcykge1xuICAgICAgICAgICAgICAgIHJldHVybiBcIjxzcGFuIGNsYXNzPVxcXCJcIiArIGNsYXNzZXMuam9pbihcIiBcIikgKyBcIlxcXCJcIiArIHJlbmRlcl9kYXRhKGRhdGEpICsgXCI+XCIgKyBqc29uQ2h1bmsuY29udGVudCArIFwiPC9zcGFuPlwiO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCI8c3BhbiBzdHlsZT1cXFwiXCIgKyBzdHlsZXMuam9pbihcIjtcIikgKyBcIlxcXCJcIiArIHJlbmRlcl9kYXRhKGRhdGEpICsgXCI+XCIgKyBqc29uQ2h1bmsuY29udGVudCArIFwiPC9zcGFuPlwiO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfV0pO1xuXG4gICAgcmV0dXJuIEFuc2VyO1xufSgpO1xuXG47XG5cbm1vZHVsZS5leHBvcnRzID0gQW5zZXI7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/anser/lib/index.js\n"); + +/***/ }), + +/***/ "./node_modules/css.escape/css.escape.js": +/*!***********************************************!*\ + !*** ./node_modules/css.escape/css.escape.js ***! + \***********************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("/*! https://mths.be/cssescape v1.5.1 by @mathias | MIT license */\n;(function(root, factory) {\n\t// https://github.com/umdjs/umd/blob/master/returnExports.js\n\tif (true) {\n\t\t// For Node.js.\n\t\tmodule.exports = factory(root);\n\t} else {}\n}(typeof __webpack_require__.g != 'undefined' ? __webpack_require__.g : this, function(root) {\n\n\tif (root.CSS && root.CSS.escape) {\n\t\treturn root.CSS.escape;\n\t}\n\n\t// https://drafts.csswg.org/cssom/#serialize-an-identifier\n\tvar cssEscape = function(value) {\n\t\tif (arguments.length == 0) {\n\t\t\tthrow new TypeError('`CSS.escape` requires an argument.');\n\t\t}\n\t\tvar string = String(value);\n\t\tvar length = string.length;\n\t\tvar index = -1;\n\t\tvar codeUnit;\n\t\tvar result = '';\n\t\tvar firstCodeUnit = string.charCodeAt(0);\n\t\twhile (++index < length) {\n\t\t\tcodeUnit = string.charCodeAt(index);\n\t\t\t// Note: there’s no need to special-case astral symbols, surrogate\n\t\t\t// pairs, or lone surrogates.\n\n\t\t\t// If the character is NULL (U+0000), then the REPLACEMENT CHARACTER\n\t\t\t// (U+FFFD).\n\t\t\tif (codeUnit == 0x0000) {\n\t\t\t\tresult += '\\uFFFD';\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t// If the character is in the range [\\1-\\1F] (U+0001 to U+001F) or is\n\t\t\t\t// U+007F, […]\n\t\t\t\t(codeUnit >= 0x0001 && codeUnit <= 0x001F) || codeUnit == 0x007F ||\n\t\t\t\t// If the character is the first character and is in the range [0-9]\n\t\t\t\t// (U+0030 to U+0039), […]\n\t\t\t\t(index == 0 && codeUnit >= 0x0030 && codeUnit <= 0x0039) ||\n\t\t\t\t// If the character is the second character and is in the range [0-9]\n\t\t\t\t// (U+0030 to U+0039) and the first character is a `-` (U+002D), […]\n\t\t\t\t(\n\t\t\t\t\tindex == 1 &&\n\t\t\t\t\tcodeUnit >= 0x0030 && codeUnit <= 0x0039 &&\n\t\t\t\t\tfirstCodeUnit == 0x002D\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t// https://drafts.csswg.org/cssom/#escape-a-character-as-code-point\n\t\t\t\tresult += '\\\\' + codeUnit.toString(16) + ' ';\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t// If the character is the first character and is a `-` (U+002D), and\n\t\t\t\t// there is no second character, […]\n\t\t\t\tindex == 0 &&\n\t\t\t\tlength == 1 &&\n\t\t\t\tcodeUnit == 0x002D\n\t\t\t) {\n\t\t\t\tresult += '\\\\' + string.charAt(index);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If the character is not handled by one of the above rules and is\n\t\t\t// greater than or equal to U+0080, is `-` (U+002D) or `_` (U+005F), or\n\t\t\t// is in one of the ranges [0-9] (U+0030 to U+0039), [A-Z] (U+0041 to\n\t\t\t// U+005A), or [a-z] (U+0061 to U+007A), […]\n\t\t\tif (\n\t\t\t\tcodeUnit >= 0x0080 ||\n\t\t\t\tcodeUnit == 0x002D ||\n\t\t\t\tcodeUnit == 0x005F ||\n\t\t\t\tcodeUnit >= 0x0030 && codeUnit <= 0x0039 ||\n\t\t\t\tcodeUnit >= 0x0041 && codeUnit <= 0x005A ||\n\t\t\t\tcodeUnit >= 0x0061 && codeUnit <= 0x007A\n\t\t\t) {\n\t\t\t\t// the character itself\n\t\t\t\tresult += string.charAt(index);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Otherwise, the escaped character.\n\t\t\t// https://drafts.csswg.org/cssom/#escape-a-character\n\t\t\tresult += '\\\\' + string.charAt(index);\n\n\t\t}\n\t\treturn result;\n\t};\n\n\tif (!root.CSS) {\n\t\troot.CSS = {};\n\t}\n\n\troot.CSS.escape = cssEscape;\n\treturn cssEscape;\n\n}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvY3NzLmVzY2FwZS9jc3MuZXNjYXBlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0EsQ0FBQztBQUNEO0FBQ0EsS0FBSyxJQUEwQjtBQUMvQjtBQUNBO0FBQ0EsR0FBRyxLQUFLLEVBTU47QUFDRixDQUFDLFFBQVEscUJBQU0sa0JBQWtCLHFCQUFNOztBQUV2QztBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2Nzcy5lc2NhcGUvY3NzLmVzY2FwZS5qcz9iYjk5Il0sInNvdXJjZXNDb250ZW50IjpbIi8qISBodHRwczovL210aHMuYmUvY3NzZXNjYXBlIHYxLjUuMSBieSBAbWF0aGlhcyB8IE1JVCBsaWNlbnNlICovXG47KGZ1bmN0aW9uKHJvb3QsIGZhY3RvcnkpIHtcblx0Ly8gaHR0cHM6Ly9naXRodWIuY29tL3VtZGpzL3VtZC9ibG9iL21hc3Rlci9yZXR1cm5FeHBvcnRzLmpzXG5cdGlmICh0eXBlb2YgZXhwb3J0cyA9PSAnb2JqZWN0Jykge1xuXHRcdC8vIEZvciBOb2RlLmpzLlxuXHRcdG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeShyb290KTtcblx0fSBlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCkge1xuXHRcdC8vIEZvciBBTUQuIFJlZ2lzdGVyIGFzIGFuIGFub255bW91cyBtb2R1bGUuXG5cdFx0ZGVmaW5lKFtdLCBmYWN0b3J5LmJpbmQocm9vdCwgcm9vdCkpO1xuXHR9IGVsc2Uge1xuXHRcdC8vIEZvciBicm93c2VyIGdsb2JhbHMgKG5vdCBleHBvc2luZyB0aGUgZnVuY3Rpb24gc2VwYXJhdGVseSkuXG5cdFx0ZmFjdG9yeShyb290KTtcblx0fVxufSh0eXBlb2YgZ2xvYmFsICE9ICd1bmRlZmluZWQnID8gZ2xvYmFsIDogdGhpcywgZnVuY3Rpb24ocm9vdCkge1xuXG5cdGlmIChyb290LkNTUyAmJiByb290LkNTUy5lc2NhcGUpIHtcblx0XHRyZXR1cm4gcm9vdC5DU1MuZXNjYXBlO1xuXHR9XG5cblx0Ly8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLyNzZXJpYWxpemUtYW4taWRlbnRpZmllclxuXHR2YXIgY3NzRXNjYXBlID0gZnVuY3Rpb24odmFsdWUpIHtcblx0XHRpZiAoYXJndW1lbnRzLmxlbmd0aCA9PSAwKSB7XG5cdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdgQ1NTLmVzY2FwZWAgcmVxdWlyZXMgYW4gYXJndW1lbnQuJyk7XG5cdFx0fVxuXHRcdHZhciBzdHJpbmcgPSBTdHJpbmcodmFsdWUpO1xuXHRcdHZhciBsZW5ndGggPSBzdHJpbmcubGVuZ3RoO1xuXHRcdHZhciBpbmRleCA9IC0xO1xuXHRcdHZhciBjb2RlVW5pdDtcblx0XHR2YXIgcmVzdWx0ID0gJyc7XG5cdFx0dmFyIGZpcnN0Q29kZVVuaXQgPSBzdHJpbmcuY2hhckNvZGVBdCgwKTtcblx0XHR3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuXHRcdFx0Y29kZVVuaXQgPSBzdHJpbmcuY2hhckNvZGVBdChpbmRleCk7XG5cdFx0XHQvLyBOb3RlOiB0aGVyZeKAmXMgbm8gbmVlZCB0byBzcGVjaWFsLWNhc2UgYXN0cmFsIHN5bWJvbHMsIHN1cnJvZ2F0ZVxuXHRcdFx0Ly8gcGFpcnMsIG9yIGxvbmUgc3Vycm9nYXRlcy5cblxuXHRcdFx0Ly8gSWYgdGhlIGNoYXJhY3RlciBpcyBOVUxMIChVKzAwMDApLCB0aGVuIHRoZSBSRVBMQUNFTUVOVCBDSEFSQUNURVJcblx0XHRcdC8vIChVK0ZGRkQpLlxuXHRcdFx0aWYgKGNvZGVVbml0ID09IDB4MDAwMCkge1xuXHRcdFx0XHRyZXN1bHQgKz0gJ1xcdUZGRkQnO1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKFxuXHRcdFx0XHQvLyBJZiB0aGUgY2hhcmFjdGVyIGlzIGluIHRoZSByYW5nZSBbXFwxLVxcMUZdIChVKzAwMDEgdG8gVSswMDFGKSBvciBpc1xuXHRcdFx0XHQvLyBVKzAwN0YsIFvigKZdXG5cdFx0XHRcdChjb2RlVW5pdCA+PSAweDAwMDEgJiYgY29kZVVuaXQgPD0gMHgwMDFGKSB8fCBjb2RlVW5pdCA9PSAweDAwN0YgfHxcblx0XHRcdFx0Ly8gSWYgdGhlIGNoYXJhY3RlciBpcyB0aGUgZmlyc3QgY2hhcmFjdGVyIGFuZCBpcyBpbiB0aGUgcmFuZ2UgWzAtOV1cblx0XHRcdFx0Ly8gKFUrMDAzMCB0byBVKzAwMzkpLCBb4oCmXVxuXHRcdFx0XHQoaW5kZXggPT0gMCAmJiBjb2RlVW5pdCA+PSAweDAwMzAgJiYgY29kZVVuaXQgPD0gMHgwMDM5KSB8fFxuXHRcdFx0XHQvLyBJZiB0aGUgY2hhcmFjdGVyIGlzIHRoZSBzZWNvbmQgY2hhcmFjdGVyIGFuZCBpcyBpbiB0aGUgcmFuZ2UgWzAtOV1cblx0XHRcdFx0Ly8gKFUrMDAzMCB0byBVKzAwMzkpIGFuZCB0aGUgZmlyc3QgY2hhcmFjdGVyIGlzIGEgYC1gIChVKzAwMkQpLCBb4oCmXVxuXHRcdFx0XHQoXG5cdFx0XHRcdFx0aW5kZXggPT0gMSAmJlxuXHRcdFx0XHRcdGNvZGVVbml0ID49IDB4MDAzMCAmJiBjb2RlVW5pdCA8PSAweDAwMzkgJiZcblx0XHRcdFx0XHRmaXJzdENvZGVVbml0ID09IDB4MDAyRFxuXHRcdFx0XHQpXG5cdFx0XHQpIHtcblx0XHRcdFx0Ly8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLyNlc2NhcGUtYS1jaGFyYWN0ZXItYXMtY29kZS1wb2ludFxuXHRcdFx0XHRyZXN1bHQgKz0gJ1xcXFwnICsgY29kZVVuaXQudG9TdHJpbmcoMTYpICsgJyAnO1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKFxuXHRcdFx0XHQvLyBJZiB0aGUgY2hhcmFjdGVyIGlzIHRoZSBmaXJzdCBjaGFyYWN0ZXIgYW5kIGlzIGEgYC1gIChVKzAwMkQpLCBhbmRcblx0XHRcdFx0Ly8gdGhlcmUgaXMgbm8gc2Vjb25kIGNoYXJhY3RlciwgW+KApl1cblx0XHRcdFx0aW5kZXggPT0gMCAmJlxuXHRcdFx0XHRsZW5ndGggPT0gMSAmJlxuXHRcdFx0XHRjb2RlVW5pdCA9PSAweDAwMkRcblx0XHRcdCkge1xuXHRcdFx0XHRyZXN1bHQgKz0gJ1xcXFwnICsgc3RyaW5nLmNoYXJBdChpbmRleCk7XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBJZiB0aGUgY2hhcmFjdGVyIGlzIG5vdCBoYW5kbGVkIGJ5IG9uZSBvZiB0aGUgYWJvdmUgcnVsZXMgYW5kIGlzXG5cdFx0XHQvLyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gVSswMDgwLCBpcyBgLWAgKFUrMDAyRCkgb3IgYF9gIChVKzAwNUYpLCBvclxuXHRcdFx0Ly8gaXMgaW4gb25lIG9mIHRoZSByYW5nZXMgWzAtOV0gKFUrMDAzMCB0byBVKzAwMzkpLCBbQS1aXSAoVSswMDQxIHRvXG5cdFx0XHQvLyBVKzAwNUEpLCBvciBbYS16XSAoVSswMDYxIHRvIFUrMDA3QSksIFvigKZdXG5cdFx0XHRpZiAoXG5cdFx0XHRcdGNvZGVVbml0ID49IDB4MDA4MCB8fFxuXHRcdFx0XHRjb2RlVW5pdCA9PSAweDAwMkQgfHxcblx0XHRcdFx0Y29kZVVuaXQgPT0gMHgwMDVGIHx8XG5cdFx0XHRcdGNvZGVVbml0ID49IDB4MDAzMCAmJiBjb2RlVW5pdCA8PSAweDAwMzkgfHxcblx0XHRcdFx0Y29kZVVuaXQgPj0gMHgwMDQxICYmIGNvZGVVbml0IDw9IDB4MDA1QSB8fFxuXHRcdFx0XHRjb2RlVW5pdCA+PSAweDAwNjEgJiYgY29kZVVuaXQgPD0gMHgwMDdBXG5cdFx0XHQpIHtcblx0XHRcdFx0Ly8gdGhlIGNoYXJhY3RlciBpdHNlbGZcblx0XHRcdFx0cmVzdWx0ICs9IHN0cmluZy5jaGFyQXQoaW5kZXgpO1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gT3RoZXJ3aXNlLCB0aGUgZXNjYXBlZCBjaGFyYWN0ZXIuXG5cdFx0XHQvLyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20vI2VzY2FwZS1hLWNoYXJhY3RlclxuXHRcdFx0cmVzdWx0ICs9ICdcXFxcJyArIHN0cmluZy5jaGFyQXQoaW5kZXgpO1xuXG5cdFx0fVxuXHRcdHJldHVybiByZXN1bHQ7XG5cdH07XG5cblx0aWYgKCFyb290LkNTUykge1xuXHRcdHJvb3QuQ1NTID0ge307XG5cdH1cblxuXHRyb290LkNTUy5lc2NhcGUgPSBjc3NFc2NhcGU7XG5cdHJldHVybiBjc3NFc2NhcGU7XG5cbn0pKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/css.escape/css.escape.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/polyfills/object-assign.js": +/*!*****************************************************************!*\ + !*** ./node_modules/next/dist/build/polyfills/object-assign.js ***! + \*****************************************************************/ +/***/ (function(module) { + +"use strict"; +eval("\nvar assign = Object.assign.bind(Object);\nmodule.exports = assign;\nmodule.exports[\"default\"] = module.exports;\n\n//# sourceMappingURL=object-assign.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3BvbHlmaWxscy9vYmplY3QtYXNzaWduLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQTtBQUNBLHlCQUFzQjs7QUFFdEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC9wb2x5ZmlsbHMvb2JqZWN0LWFzc2lnbi5qcz9lN2QxIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIGFzc2lnbiA9IE9iamVjdC5hc3NpZ24uYmluZChPYmplY3QpO1xubW9kdWxlLmV4cG9ydHMgPSBhc3NpZ247XG5tb2R1bGUuZXhwb3J0cy5kZWZhdWx0ID0gbW9kdWxlLmV4cG9ydHM7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW9iamVjdC1hc3NpZ24uanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/polyfills/object-assign.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/compiled/web-vitals/web-vitals.umd.js": +/*!**********************************************************************!*\ + !*** ./node_modules/next/dist/compiled/web-vitals/web-vitals.umd.js ***! + \**********************************************************************/ +/***/ (function(module) { + +eval("var __dirname = \"/\";\nmodule.exports=function(){var e={770:function(e,t){!function(e,n){ true?n(t):0}(this,function(e){\"use strict\";var t,n,i,r,a=function(e,t){return{name:e,value:void 0===t?-1:t,delta:0,entries:[],id:\"v2-\".concat(Date.now(),\"-\").concat(Math.floor(8999999999999*Math.random())+1e12)}},o=function(e,t){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){if(\"first-input\"===e&&!(\"PerformanceEventTiming\"in self))return;var n=new PerformanceObserver(function(e){return e.getEntries().map(t)});return n.observe({type:e,buffered:!0}),n}}catch(e){}},u=function(e,t){var i=function n(i){\"pagehide\"!==i.type&&\"hidden\"!==document.visibilityState||(e(i),t&&(removeEventListener(\"visibilitychange\",n,!0),removeEventListener(\"pagehide\",n,!0)))};addEventListener(\"visibilitychange\",i,!0),addEventListener(\"pagehide\",i,!0)},c=function(e){addEventListener(\"pageshow\",function(t){t.persisted&&e(t)},!0)},s=function(e,t,n){var i;return function(r){t.value>=0&&(r||n)&&(t.delta=t.value-(i||0),(t.delta||void 0===i)&&(i=t.value,e(t)))}},f=-1,v=function(){return\"hidden\"===document.visibilityState?0:1/0},m=function(){u(function(e){var t=e.timeStamp;f=t},!0)},p=function(){return f<0&&(f=v(),m(),c(function(){setTimeout(function(){f=v(),m()},0)})),{get firstHiddenTime(){return f}}},d=function(e,t){var n,i=p(),r=a(\"FCP\"),u=function(e){\"first-contentful-paint\"===e.name&&(v&&v.disconnect(),e.startTime<i.firstHiddenTime&&(r.value=e.startTime,r.entries.push(e),n(!0)))},f=performance.getEntriesByName&&performance.getEntriesByName(\"first-contentful-paint\")[0],v=f?null:o(\"paint\",u);(f||v)&&(n=s(e,r,t),f&&u(f),c(function(i){r=a(\"FCP\"),n=s(e,r,t),requestAnimationFrame(function(){requestAnimationFrame(function(){r.value=performance.now()-i.timeStamp,n(!0)})})}))},l=!1,g=-1,h={passive:!0,capture:!0},y=new Date,T=function(e,r){t||(t=r,n=e,i=new Date,w(removeEventListener),_())},_=function(){if(n>=0&&n<i-y){var e={entryType:\"first-input\",name:t.type,target:t.target,cancelable:t.cancelable,startTime:t.timeStamp,processingStart:t.timeStamp+n};r.forEach(function(t){t(e)}),r=[]}},E=function(e){if(e.cancelable){var t=(e.timeStamp>1e12?new Date:performance.now())-e.timeStamp;\"pointerdown\"==e.type?function(e,t){var n=function(){T(e,t),r()},i=function(){r()},r=function(){removeEventListener(\"pointerup\",n,h),removeEventListener(\"pointercancel\",i,h)};addEventListener(\"pointerup\",n,h),addEventListener(\"pointercancel\",i,h)}(t,e):T(t,e)}},w=function(e){[\"mousedown\",\"keydown\",\"touchstart\",\"pointerdown\"].forEach(function(t){return e(t,E,h)})},S=new Set;e.getCLS=function(e,t){l||(d(function(e){g=e.value}),l=!0);var n,i=function(t){g>-1&&e(t)},r=a(\"CLS\",0),f=0,v=[],m=function(e){if(!e.hadRecentInput){var t=v[0],i=v[v.length-1];f&&e.startTime-i.startTime<1e3&&e.startTime-t.startTime<5e3?(f+=e.value,v.push(e)):(f=e.value,v=[e]),f>r.value&&(r.value=f,r.entries=v,n())}},p=o(\"layout-shift\",m);p&&(n=s(i,r,t),u(function(){p.takeRecords().map(m),n(!0)}),c(function(){f=0,g=-1,r=a(\"CLS\",0),n=s(i,r,t)}))},e.getFCP=d,e.getFID=function(e,i){var f,v=p(),m=a(\"FID\"),d=function(e){e.startTime<v.firstHiddenTime&&(m.value=e.processingStart-e.startTime,m.entries.push(e),f(!0))},l=o(\"first-input\",d);f=s(e,m,i),l&&u(function(){l.takeRecords().map(d),l.disconnect()},!0),l&&c(function(){var o;m=a(\"FID\"),f=s(e,m,i),r=[],n=-1,t=null,w(addEventListener),o=d,r.push(o),_()})},e.getLCP=function(e,t){var n,i=p(),r=a(\"LCP\"),f=function(e){var t=e.startTime;t<i.firstHiddenTime&&(r.value=t,r.entries.push(e)),n()},v=o(\"largest-contentful-paint\",f);if(v){n=s(e,r,t);var m=function(){S.has(r.id)||(v.takeRecords().map(f),v.disconnect(),S.add(r.id),n(!0))};[\"keydown\",\"click\"].forEach(function(e){addEventListener(e,m,{once:!0,capture:!0})}),u(m,!0),c(function(i){r=a(\"LCP\"),n=s(e,r,t),requestAnimationFrame(function(){requestAnimationFrame(function(){r.value=performance.now()-i.timeStamp,S.add(r.id),n(!0)})})})}},e.getTTFB=function(e){var t,n=a(\"TTFB\");t=function(){try{var t=performance.getEntriesByType(\"navigation\")[0]||function(){var e=performance.timing,t={entryType:\"navigation\",startTime:0};for(var n in e)\"navigationStart\"!==n&&\"toJSON\"!==n&&(t[n]=Math.max(e[n]-e.navigationStart,0));return t}();if(n.value=n.delta=t.responseStart,n.value<0)return;n.entries=[t],e(n)}catch(e){}},\"complete\"===document.readyState?setTimeout(t,0):addEventListener(\"pageshow\",t)},Object.defineProperty(e,\"__esModule\",{value:!0})})}};var t={};function __nccwpck_require__(n){if(t[n]){return t[n].exports}var i=t[n]={exports:{}};var r=true;try{e[n].call(i.exports,i,i.exports,__nccwpck_require__);r=false}finally{if(r)delete t[n]}return i.exports}__nccwpck_require__.ab=__dirname+\"/\";return __nccwpck_require__(770)}();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3dlYi12aXRhbHMvd2ViLXZpdGFscy51bWQuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFBLDBCQUEwQixPQUFPLGtCQUFrQixlQUFlLEtBQUksTUFBTSxDQUFDLENBQUMsa0JBQWtCLGFBQWEsNEJBQTRCLE9BQU8sc0lBQXNJLGlCQUFpQixJQUFJLHdEQUF3RCxnRUFBZ0UsMENBQTBDLDZCQUE2QixFQUFFLGtCQUFrQixtQkFBbUIsS0FBSyxXQUFXLGlCQUFpQixvQkFBb0IseUpBQXlKLDRFQUE0RSxlQUFlLHdDQUF3QyxrQkFBa0IsS0FBSyxtQkFBbUIsTUFBTSxtQkFBbUIsc0ZBQXNGLG1CQUFtQixnREFBZ0QsY0FBYyxjQUFjLGtCQUFrQixJQUFJLEtBQUssY0FBYyxvQ0FBb0Msc0JBQXNCLFVBQVUsSUFBSSxJQUFJLHNCQUFzQixXQUFXLGlCQUFpQixxQ0FBcUMsb0lBQW9JLGlIQUFpSCwwQ0FBMEMsdURBQXVELGlDQUFpQyw0Q0FBNEMsRUFBRSxFQUFFLEdBQUcsY0FBYyxzQkFBc0IsNEJBQTRCLG1EQUFtRCxjQUFjLGdCQUFnQixPQUFPLGlJQUFpSSxzQkFBc0IsS0FBSyxRQUFRLGVBQWUsaUJBQWlCLGdFQUFnRSxvQ0FBb0MsaUJBQWlCLFdBQVcsY0FBYyxJQUFJLGNBQWMsK0VBQStFLHdFQUF3RSxjQUFjLGVBQWUsdUVBQXVFLGdCQUFnQixFQUFFLFdBQVcsdUJBQXVCLGtCQUFrQixVQUFVLFFBQVEsb0JBQW9CLFdBQVcscUNBQXFDLHNCQUFzQiwyQkFBMkIsNklBQTZJLHVCQUF1Qiw0QkFBNEIsNkJBQTZCLGVBQWUsaUNBQWlDLEdBQUcsbUNBQW1DLHFDQUFxQywrRkFBK0Ysc0JBQXNCLDJCQUEyQixzQ0FBc0MscUJBQXFCLE1BQU0sNkVBQTZFLEVBQUUsd0JBQXdCLHFDQUFxQyxrQkFBa0IsdURBQXVELG1DQUFtQyxNQUFNLFdBQVcsaUJBQWlCLHdFQUF3RSx3Q0FBd0Msc0JBQXNCLG1CQUFtQixFQUFFLHdCQUF3Qix1REFBdUQsaUNBQWlDLHdEQUF3RCxFQUFFLEVBQUUsR0FBRyx1QkFBdUIsa0JBQWtCLGFBQWEsSUFBSSxnRUFBZ0UsNEJBQTRCLG9DQUFvQyw4RkFBOEYsU0FBUyxHQUFHLG9EQUFvRCxtQkFBbUIsV0FBVyxpRkFBaUYsdUNBQXVDLFNBQVMsRUFBRSxJQUFJLFNBQVMsZ0NBQWdDLFNBQVMsb0JBQW9CLFlBQVksWUFBWSxXQUFXLElBQUkscURBQXFELFFBQVEsUUFBUSxpQkFBaUIsaUJBQWlCLHVCQUF1QixTQUFTLEtBQUssZ0NBQWdDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvd2ViLXZpdGFscy93ZWItdml0YWxzLnVtZC5qcz81MzNiIl0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKCl7dmFyIGU9ezc3MDpmdW5jdGlvbihlLHQpeyFmdW5jdGlvbihlLG4pe3RydWU/bih0KTowfSh0aGlzLGZ1bmN0aW9uKGUpe1widXNlIHN0cmljdFwiO3ZhciB0LG4saSxyLGE9ZnVuY3Rpb24oZSx0KXtyZXR1cm57bmFtZTplLHZhbHVlOnZvaWQgMD09PXQ/LTE6dCxkZWx0YTowLGVudHJpZXM6W10saWQ6XCJ2Mi1cIi5jb25jYXQoRGF0ZS5ub3coKSxcIi1cIikuY29uY2F0KE1hdGguZmxvb3IoODk5OTk5OTk5OTk5OSpNYXRoLnJhbmRvbSgpKSsxZTEyKX19LG89ZnVuY3Rpb24oZSx0KXt0cnl7aWYoUGVyZm9ybWFuY2VPYnNlcnZlci5zdXBwb3J0ZWRFbnRyeVR5cGVzLmluY2x1ZGVzKGUpKXtpZihcImZpcnN0LWlucHV0XCI9PT1lJiYhKFwiUGVyZm9ybWFuY2VFdmVudFRpbWluZ1wiaW4gc2VsZikpcmV0dXJuO3ZhciBuPW5ldyBQZXJmb3JtYW5jZU9ic2VydmVyKGZ1bmN0aW9uKGUpe3JldHVybiBlLmdldEVudHJpZXMoKS5tYXAodCl9KTtyZXR1cm4gbi5vYnNlcnZlKHt0eXBlOmUsYnVmZmVyZWQ6ITB9KSxufX1jYXRjaChlKXt9fSx1PWZ1bmN0aW9uKGUsdCl7dmFyIGk9ZnVuY3Rpb24gbihpKXtcInBhZ2VoaWRlXCIhPT1pLnR5cGUmJlwiaGlkZGVuXCIhPT1kb2N1bWVudC52aXNpYmlsaXR5U3RhdGV8fChlKGkpLHQmJihyZW1vdmVFdmVudExpc3RlbmVyKFwidmlzaWJpbGl0eWNoYW5nZVwiLG4sITApLHJlbW92ZUV2ZW50TGlzdGVuZXIoXCJwYWdlaGlkZVwiLG4sITApKSl9O2FkZEV2ZW50TGlzdGVuZXIoXCJ2aXNpYmlsaXR5Y2hhbmdlXCIsaSwhMCksYWRkRXZlbnRMaXN0ZW5lcihcInBhZ2VoaWRlXCIsaSwhMCl9LGM9ZnVuY3Rpb24oZSl7YWRkRXZlbnRMaXN0ZW5lcihcInBhZ2VzaG93XCIsZnVuY3Rpb24odCl7dC5wZXJzaXN0ZWQmJmUodCl9LCEwKX0scz1mdW5jdGlvbihlLHQsbil7dmFyIGk7cmV0dXJuIGZ1bmN0aW9uKHIpe3QudmFsdWU+PTAmJihyfHxuKSYmKHQuZGVsdGE9dC52YWx1ZS0oaXx8MCksKHQuZGVsdGF8fHZvaWQgMD09PWkpJiYoaT10LnZhbHVlLGUodCkpKX19LGY9LTEsdj1mdW5jdGlvbigpe3JldHVyblwiaGlkZGVuXCI9PT1kb2N1bWVudC52aXNpYmlsaXR5U3RhdGU/MDoxLzB9LG09ZnVuY3Rpb24oKXt1KGZ1bmN0aW9uKGUpe3ZhciB0PWUudGltZVN0YW1wO2Y9dH0sITApfSxwPWZ1bmN0aW9uKCl7cmV0dXJuIGY8MCYmKGY9digpLG0oKSxjKGZ1bmN0aW9uKCl7c2V0VGltZW91dChmdW5jdGlvbigpe2Y9digpLG0oKX0sMCl9KSkse2dldCBmaXJzdEhpZGRlblRpbWUoKXtyZXR1cm4gZn19fSxkPWZ1bmN0aW9uKGUsdCl7dmFyIG4saT1wKCkscj1hKFwiRkNQXCIpLHU9ZnVuY3Rpb24oZSl7XCJmaXJzdC1jb250ZW50ZnVsLXBhaW50XCI9PT1lLm5hbWUmJih2JiZ2LmRpc2Nvbm5lY3QoKSxlLnN0YXJ0VGltZTxpLmZpcnN0SGlkZGVuVGltZSYmKHIudmFsdWU9ZS5zdGFydFRpbWUsci5lbnRyaWVzLnB1c2goZSksbighMCkpKX0sZj1wZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlOYW1lJiZwZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlOYW1lKFwiZmlyc3QtY29udGVudGZ1bC1wYWludFwiKVswXSx2PWY/bnVsbDpvKFwicGFpbnRcIix1KTsoZnx8dikmJihuPXMoZSxyLHQpLGYmJnUoZiksYyhmdW5jdGlvbihpKXtyPWEoXCJGQ1BcIiksbj1zKGUscix0KSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtyLnZhbHVlPXBlcmZvcm1hbmNlLm5vdygpLWkudGltZVN0YW1wLG4oITApfSl9KX0pKX0sbD0hMSxnPS0xLGg9e3Bhc3NpdmU6ITAsY2FwdHVyZTohMH0seT1uZXcgRGF0ZSxUPWZ1bmN0aW9uKGUscil7dHx8KHQ9cixuPWUsaT1uZXcgRGF0ZSx3KHJlbW92ZUV2ZW50TGlzdGVuZXIpLF8oKSl9LF89ZnVuY3Rpb24oKXtpZihuPj0wJiZuPGkteSl7dmFyIGU9e2VudHJ5VHlwZTpcImZpcnN0LWlucHV0XCIsbmFtZTp0LnR5cGUsdGFyZ2V0OnQudGFyZ2V0LGNhbmNlbGFibGU6dC5jYW5jZWxhYmxlLHN0YXJ0VGltZTp0LnRpbWVTdGFtcCxwcm9jZXNzaW5nU3RhcnQ6dC50aW1lU3RhbXArbn07ci5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QoZSl9KSxyPVtdfX0sRT1mdW5jdGlvbihlKXtpZihlLmNhbmNlbGFibGUpe3ZhciB0PShlLnRpbWVTdGFtcD4xZTEyP25ldyBEYXRlOnBlcmZvcm1hbmNlLm5vdygpKS1lLnRpbWVTdGFtcDtcInBvaW50ZXJkb3duXCI9PWUudHlwZT9mdW5jdGlvbihlLHQpe3ZhciBuPWZ1bmN0aW9uKCl7VChlLHQpLHIoKX0saT1mdW5jdGlvbigpe3IoKX0scj1mdW5jdGlvbigpe3JlbW92ZUV2ZW50TGlzdGVuZXIoXCJwb2ludGVydXBcIixuLGgpLHJlbW92ZUV2ZW50TGlzdGVuZXIoXCJwb2ludGVyY2FuY2VsXCIsaSxoKX07YWRkRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJ1cFwiLG4saCksYWRkRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJjYW5jZWxcIixpLGgpfSh0LGUpOlQodCxlKX19LHc9ZnVuY3Rpb24oZSl7W1wibW91c2Vkb3duXCIsXCJrZXlkb3duXCIsXCJ0b3VjaHN0YXJ0XCIsXCJwb2ludGVyZG93blwiXS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3JldHVybiBlKHQsRSxoKX0pfSxTPW5ldyBTZXQ7ZS5nZXRDTFM9ZnVuY3Rpb24oZSx0KXtsfHwoZChmdW5jdGlvbihlKXtnPWUudmFsdWV9KSxsPSEwKTt2YXIgbixpPWZ1bmN0aW9uKHQpe2c+LTEmJmUodCl9LHI9YShcIkNMU1wiLDApLGY9MCx2PVtdLG09ZnVuY3Rpb24oZSl7aWYoIWUuaGFkUmVjZW50SW5wdXQpe3ZhciB0PXZbMF0saT12W3YubGVuZ3RoLTFdO2YmJmUuc3RhcnRUaW1lLWkuc3RhcnRUaW1lPDFlMyYmZS5zdGFydFRpbWUtdC5zdGFydFRpbWU8NWUzPyhmKz1lLnZhbHVlLHYucHVzaChlKSk6KGY9ZS52YWx1ZSx2PVtlXSksZj5yLnZhbHVlJiYoci52YWx1ZT1mLHIuZW50cmllcz12LG4oKSl9fSxwPW8oXCJsYXlvdXQtc2hpZnRcIixtKTtwJiYobj1zKGkscix0KSx1KGZ1bmN0aW9uKCl7cC50YWtlUmVjb3JkcygpLm1hcChtKSxuKCEwKX0pLGMoZnVuY3Rpb24oKXtmPTAsZz0tMSxyPWEoXCJDTFNcIiwwKSxuPXMoaSxyLHQpfSkpfSxlLmdldEZDUD1kLGUuZ2V0RklEPWZ1bmN0aW9uKGUsaSl7dmFyIGYsdj1wKCksbT1hKFwiRklEXCIpLGQ9ZnVuY3Rpb24oZSl7ZS5zdGFydFRpbWU8di5maXJzdEhpZGRlblRpbWUmJihtLnZhbHVlPWUucHJvY2Vzc2luZ1N0YXJ0LWUuc3RhcnRUaW1lLG0uZW50cmllcy5wdXNoKGUpLGYoITApKX0sbD1vKFwiZmlyc3QtaW5wdXRcIixkKTtmPXMoZSxtLGkpLGwmJnUoZnVuY3Rpb24oKXtsLnRha2VSZWNvcmRzKCkubWFwKGQpLGwuZGlzY29ubmVjdCgpfSwhMCksbCYmYyhmdW5jdGlvbigpe3ZhciBvO209YShcIkZJRFwiKSxmPXMoZSxtLGkpLHI9W10sbj0tMSx0PW51bGwsdyhhZGRFdmVudExpc3RlbmVyKSxvPWQsci5wdXNoKG8pLF8oKX0pfSxlLmdldExDUD1mdW5jdGlvbihlLHQpe3ZhciBuLGk9cCgpLHI9YShcIkxDUFwiKSxmPWZ1bmN0aW9uKGUpe3ZhciB0PWUuc3RhcnRUaW1lO3Q8aS5maXJzdEhpZGRlblRpbWUmJihyLnZhbHVlPXQsci5lbnRyaWVzLnB1c2goZSkpLG4oKX0sdj1vKFwibGFyZ2VzdC1jb250ZW50ZnVsLXBhaW50XCIsZik7aWYodil7bj1zKGUscix0KTt2YXIgbT1mdW5jdGlvbigpe1MuaGFzKHIuaWQpfHwodi50YWtlUmVjb3JkcygpLm1hcChmKSx2LmRpc2Nvbm5lY3QoKSxTLmFkZChyLmlkKSxuKCEwKSl9O1tcImtleWRvd25cIixcImNsaWNrXCJdLmZvckVhY2goZnVuY3Rpb24oZSl7YWRkRXZlbnRMaXN0ZW5lcihlLG0se29uY2U6ITAsY2FwdHVyZTohMH0pfSksdShtLCEwKSxjKGZ1bmN0aW9uKGkpe3I9YShcIkxDUFwiKSxuPXMoZSxyLHQpLHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3JlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3IudmFsdWU9cGVyZm9ybWFuY2Uubm93KCktaS50aW1lU3RhbXAsUy5hZGQoci5pZCksbighMCl9KX0pfSl9fSxlLmdldFRURkI9ZnVuY3Rpb24oZSl7dmFyIHQsbj1hKFwiVFRGQlwiKTt0PWZ1bmN0aW9uKCl7dHJ5e3ZhciB0PXBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGUoXCJuYXZpZ2F0aW9uXCIpWzBdfHxmdW5jdGlvbigpe3ZhciBlPXBlcmZvcm1hbmNlLnRpbWluZyx0PXtlbnRyeVR5cGU6XCJuYXZpZ2F0aW9uXCIsc3RhcnRUaW1lOjB9O2Zvcih2YXIgbiBpbiBlKVwibmF2aWdhdGlvblN0YXJ0XCIhPT1uJiZcInRvSlNPTlwiIT09biYmKHRbbl09TWF0aC5tYXgoZVtuXS1lLm5hdmlnYXRpb25TdGFydCwwKSk7cmV0dXJuIHR9KCk7aWYobi52YWx1ZT1uLmRlbHRhPXQucmVzcG9uc2VTdGFydCxuLnZhbHVlPDApcmV0dXJuO24uZW50cmllcz1bdF0sZShuKX1jYXRjaChlKXt9fSxcImNvbXBsZXRlXCI9PT1kb2N1bWVudC5yZWFkeVN0YXRlP3NldFRpbWVvdXQodCwwKTphZGRFdmVudExpc3RlbmVyKFwicGFnZXNob3dcIix0KX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSl9KX19O3ZhciB0PXt9O2Z1bmN0aW9uIF9fbmNjd3Bja19yZXF1aXJlX18obil7aWYodFtuXSl7cmV0dXJuIHRbbl0uZXhwb3J0c312YXIgaT10W25dPXtleHBvcnRzOnt9fTt2YXIgcj10cnVlO3RyeXtlW25dLmNhbGwoaS5leHBvcnRzLGksaS5leHBvcnRzLF9fbmNjd3Bja19yZXF1aXJlX18pO3I9ZmFsc2V9ZmluYWxseXtpZihyKWRlbGV0ZSB0W25dfXJldHVybiBpLmV4cG9ydHN9X19uY2N3cGNrX3JlcXVpcmVfXy5hYj1fX2Rpcm5hbWUrXCIvXCI7cmV0dXJuIF9fbmNjd3Bja19yZXF1aXJlX18oNzcwKX0oKTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/compiled/web-vitals/web-vitals.umd.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/lib/is-error.js": +/*!************************************************!*\ + !*** ./node_modules/next/dist/lib/is-error.js ***! + \************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = isError;\nfunction isError(err) {\n return typeof err === 'object' && err !== null && 'name' in err && 'message' in err;\n}\n\n//# sourceMappingURL=is-error.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9pcy1lcnJvci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGtCQUFlO0FBQ2Y7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL2lzLWVycm9yLmpzPzE3OGUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSBpc0Vycm9yO1xuZnVuY3Rpb24gaXNFcnJvcihlcnIpIHtcbiAgICByZXR1cm4gdHlwZW9mIGVyciA9PT0gJ29iamVjdCcgJiYgZXJyICE9PSBudWxsICYmICduYW1lJyBpbiBlcnIgJiYgJ21lc3NhZ2UnIGluIGVycjtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXMtZXJyb3IuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/lib/is-error.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/server/denormalize-page-path.js": +/*!****************************************************************!*\ + !*** ./node_modules/next/dist/server/denormalize-page-path.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.normalizePathSep = normalizePathSep;\nexports.denormalizePagePath = denormalizePagePath;\nfunction normalizePathSep(path) {\n return path.replace(/\\\\/g, '/');\n}\nfunction denormalizePagePath(page) {\n page = normalizePathSep(page);\n if (page.startsWith('/index/')) {\n page = page.slice(6);\n } else if (page === '/index') {\n page = '/';\n }\n return page;\n}\n\n//# sourceMappingURL=denormalize-page-path.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9kZW5vcm1hbGl6ZS1wYWdlLXBhdGguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRix3QkFBd0I7QUFDeEIsMkJBQTJCO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2Rlbm9ybWFsaXplLXBhZ2UtcGF0aC5qcz82NzhhIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5ub3JtYWxpemVQYXRoU2VwID0gbm9ybWFsaXplUGF0aFNlcDtcbmV4cG9ydHMuZGVub3JtYWxpemVQYWdlUGF0aCA9IGRlbm9ybWFsaXplUGFnZVBhdGg7XG5mdW5jdGlvbiBub3JtYWxpemVQYXRoU2VwKHBhdGgpIHtcbiAgICByZXR1cm4gcGF0aC5yZXBsYWNlKC9cXFxcL2csICcvJyk7XG59XG5mdW5jdGlvbiBkZW5vcm1hbGl6ZVBhZ2VQYXRoKHBhZ2UpIHtcbiAgICBwYWdlID0gbm9ybWFsaXplUGF0aFNlcChwYWdlKTtcbiAgICBpZiAocGFnZS5zdGFydHNXaXRoKCcvaW5kZXgvJykpIHtcbiAgICAgICAgcGFnZSA9IHBhZ2Uuc2xpY2UoNik7XG4gICAgfSBlbHNlIGlmIChwYWdlID09PSAnL2luZGV4Jykge1xuICAgICAgICBwYWdlID0gJy8nO1xuICAgIH1cbiAgICByZXR1cm4gcGFnZTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGVub3JtYWxpemUtcGFnZS1wYXRoLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/denormalize-page-path.js\n"); + +/***/ }), + +/***/ "./node_modules/next/router.js": +/*!*************************************!*\ + !*** ./node_modules/next/router.js ***! + \*************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("module.exports = __webpack_require__(/*! ./dist/client/router */ \"./node_modules/next/dist/client/router.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9yb3V0ZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQUEsNkdBQWdEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L3JvdXRlci5qcz8xYmI2Il0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9kaXN0L2NsaWVudC9yb3V0ZXInKVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/router.js\n"); + +/***/ }), + +/***/ "./node_modules/platform/platform.js": +/*!*******************************************!*\ + !*** ./node_modules/platform/platform.js ***! + \*******************************************/ +/***/ (function(module, exports, __webpack_require__) { + +eval("/* module decorator */ module = __webpack_require__.nmd(module);\nvar __WEBPACK_AMD_DEFINE_RESULT__;/*!\n * Platform.js v1.3.6\n * Copyright 2014-2020 Benjamin Tan\n * Copyright 2011-2013 John-David Dalton\n * Available under MIT license\n */\n;(function() {\n 'use strict';\n\n /** Used to determine if values are of the language type `Object`. */\n var objectTypes = {\n 'function': true,\n 'object': true\n };\n\n /** Used as a reference to the global object. */\n var root = (objectTypes[typeof window] && window) || this;\n\n /** Backup possible global object. */\n var oldRoot = root;\n\n /** Detect free variable `exports`. */\n var freeExports = objectTypes[typeof exports] && exports;\n\n /** Detect free variable `module`. */\n var freeModule = objectTypes[\"object\"] && module && !module.nodeType && module;\n\n /** Detect free variable `global` from Node.js or Browserified code and use it as `root`. */\n var freeGlobal = freeExports && freeModule && typeof __webpack_require__.g == 'object' && __webpack_require__.g;\n if (freeGlobal && (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal || freeGlobal.self === freeGlobal)) {\n root = freeGlobal;\n }\n\n /**\n * Used as the maximum length of an array-like object.\n * See the [ES6 spec](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength)\n * for more details.\n */\n var maxSafeInteger = Math.pow(2, 53) - 1;\n\n /** Regular expression to detect Opera. */\n var reOpera = /\\bOpera/;\n\n /** Possible global object. */\n var thisBinding = this;\n\n /** Used for native method references. */\n var objectProto = Object.prototype;\n\n /** Used to check for own properties of an object. */\n var hasOwnProperty = objectProto.hasOwnProperty;\n\n /** Used to resolve the internal `[[Class]]` of values. */\n var toString = objectProto.toString;\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Capitalizes a string value.\n *\n * @private\n * @param {string} string The string to capitalize.\n * @returns {string} The capitalized string.\n */\n function capitalize(string) {\n string = String(string);\n return string.charAt(0).toUpperCase() + string.slice(1);\n }\n\n /**\n * A utility function to clean up the OS name.\n *\n * @private\n * @param {string} os The OS name to clean up.\n * @param {string} [pattern] A `RegExp` pattern matching the OS name.\n * @param {string} [label] A label for the OS.\n */\n function cleanupOS(os, pattern, label) {\n // Platform tokens are defined at:\n // http://msdn.microsoft.com/en-us/library/ms537503(VS.85).aspx\n // http://web.archive.org/web/20081122053950/http://msdn.microsoft.com/en-us/library/ms537503(VS.85).aspx\n var data = {\n '10.0': '10',\n '6.4': '10 Technical Preview',\n '6.3': '8.1',\n '6.2': '8',\n '6.1': 'Server 2008 R2 / 7',\n '6.0': 'Server 2008 / Vista',\n '5.2': 'Server 2003 / XP 64-bit',\n '5.1': 'XP',\n '5.01': '2000 SP1',\n '5.0': '2000',\n '4.0': 'NT',\n '4.90': 'ME'\n };\n // Detect Windows version from platform tokens.\n if (pattern && label && /^Win/i.test(os) && !/^Windows Phone /i.test(os) &&\n (data = data[/[\\d.]+$/.exec(os)])) {\n os = 'Windows ' + data;\n }\n // Correct character case and cleanup string.\n os = String(os);\n\n if (pattern && label) {\n os = os.replace(RegExp(pattern, 'i'), label);\n }\n\n os = format(\n os.replace(/ ce$/i, ' CE')\n .replace(/\\bhpw/i, 'web')\n .replace(/\\bMacintosh\\b/, 'Mac OS')\n .replace(/_PowerPC\\b/i, ' OS')\n .replace(/\\b(OS X) [^ \\d]+/i, '$1')\n .replace(/\\bMac (OS X)\\b/, '$1')\n .replace(/\\/(\\d)/, ' $1')\n .replace(/_/g, '.')\n .replace(/(?: BePC|[ .]*fc[ \\d.]+)$/i, '')\n .replace(/\\bx86\\.64\\b/gi, 'x86_64')\n .replace(/\\b(Windows Phone) OS\\b/, '$1')\n .replace(/\\b(Chrome OS \\w+) [\\d.]+\\b/, '$1')\n .split(' on ')[0]\n );\n\n return os;\n }\n\n /**\n * An iteration utility for arrays and objects.\n *\n * @private\n * @param {Array|Object} object The object to iterate over.\n * @param {Function} callback The function called per iteration.\n */\n function each(object, callback) {\n var index = -1,\n length = object ? object.length : 0;\n\n if (typeof length == 'number' && length > -1 && length <= maxSafeInteger) {\n while (++index < length) {\n callback(object[index], index, object);\n }\n } else {\n forOwn(object, callback);\n }\n }\n\n /**\n * Trim and conditionally capitalize string values.\n *\n * @private\n * @param {string} string The string to format.\n * @returns {string} The formatted string.\n */\n function format(string) {\n string = trim(string);\n return /^(?:webOS|i(?:OS|P))/.test(string)\n ? string\n : capitalize(string);\n }\n\n /**\n * Iterates over an object's own properties, executing the `callback` for each.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} callback The function executed per own property.\n */\n function forOwn(object, callback) {\n for (var key in object) {\n if (hasOwnProperty.call(object, key)) {\n callback(object[key], key, object);\n }\n }\n }\n\n /**\n * Gets the internal `[[Class]]` of a value.\n *\n * @private\n * @param {*} value The value.\n * @returns {string} The `[[Class]]`.\n */\n function getClassOf(value) {\n return value == null\n ? capitalize(value)\n : toString.call(value).slice(8, -1);\n }\n\n /**\n * Host objects can return type values that are different from their actual\n * data type. The objects we are concerned with usually return non-primitive\n * types of \"object\", \"function\", or \"unknown\".\n *\n * @private\n * @param {*} object The owner of the property.\n * @param {string} property The property to check.\n * @returns {boolean} Returns `true` if the property value is a non-primitive, else `false`.\n */\n function isHostType(object, property) {\n var type = object != null ? typeof object[property] : 'number';\n return !/^(?:boolean|number|string|undefined)$/.test(type) &&\n (type == 'object' ? !!object[property] : true);\n }\n\n /**\n * Prepares a string for use in a `RegExp` by making hyphens and spaces optional.\n *\n * @private\n * @param {string} string The string to qualify.\n * @returns {string} The qualified string.\n */\n function qualify(string) {\n return String(string).replace(/([ -])(?!$)/g, '$1?');\n }\n\n /**\n * A bare-bones `Array#reduce` like utility function.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function called per iteration.\n * @returns {*} The accumulated result.\n */\n function reduce(array, callback) {\n var accumulator = null;\n each(array, function(value, index) {\n accumulator = callback(accumulator, value, index, array);\n });\n return accumulator;\n }\n\n /**\n * Removes leading and trailing whitespace from a string.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} The trimmed string.\n */\n function trim(string) {\n return String(string).replace(/^ +| +$/g, '');\n }\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Creates a new platform object.\n *\n * @memberOf platform\n * @param {Object|string} [ua=navigator.userAgent] The user agent string or\n * context object.\n * @returns {Object} A platform object.\n */\n function parse(ua) {\n\n /** The environment context object. */\n var context = root;\n\n /** Used to flag when a custom context is provided. */\n var isCustomContext = ua && typeof ua == 'object' && getClassOf(ua) != 'String';\n\n // Juggle arguments.\n if (isCustomContext) {\n context = ua;\n ua = null;\n }\n\n /** Browser navigator object. */\n var nav = context.navigator || {};\n\n /** Browser user agent string. */\n var userAgent = nav.userAgent || '';\n\n ua || (ua = userAgent);\n\n /** Used to flag when `thisBinding` is the [ModuleScope]. */\n var isModuleScope = isCustomContext || thisBinding == oldRoot;\n\n /** Used to detect if browser is like Chrome. */\n var likeChrome = isCustomContext\n ? !!nav.likeChrome\n : /\\bChrome\\b/.test(ua) && !/internal|\\n/i.test(toString.toString());\n\n /** Internal `[[Class]]` value shortcuts. */\n var objectClass = 'Object',\n airRuntimeClass = isCustomContext ? objectClass : 'ScriptBridgingProxyObject',\n enviroClass = isCustomContext ? objectClass : 'Environment',\n javaClass = (isCustomContext && context.java) ? 'JavaPackage' : getClassOf(context.java),\n phantomClass = isCustomContext ? objectClass : 'RuntimeObject';\n\n /** Detect Java environments. */\n var java = /\\bJava/.test(javaClass) && context.java;\n\n /** Detect Rhino. */\n var rhino = java && getClassOf(context.environment) == enviroClass;\n\n /** A character to represent alpha. */\n var alpha = java ? 'a' : '\\u03b1';\n\n /** A character to represent beta. */\n var beta = java ? 'b' : '\\u03b2';\n\n /** Browser document object. */\n var doc = context.document || {};\n\n /**\n * Detect Opera browser (Presto-based).\n * http://www.howtocreate.co.uk/operaStuff/operaObject.html\n * http://dev.opera.com/articles/view/opera-mini-web-content-authoring-guidelines/#operamini\n */\n var opera = context.operamini || context.opera;\n\n /** Opera `[[Class]]`. */\n var operaClass = reOpera.test(operaClass = (isCustomContext && opera) ? opera['[[Class]]'] : getClassOf(opera))\n ? operaClass\n : (opera = null);\n\n /*------------------------------------------------------------------------*/\n\n /** Temporary variable used over the script's lifetime. */\n var data;\n\n /** The CPU architecture. */\n var arch = ua;\n\n /** Platform description array. */\n var description = [];\n\n /** Platform alpha/beta indicator. */\n var prerelease = null;\n\n /** A flag to indicate that environment features should be used to resolve the platform. */\n var useFeatures = ua == userAgent;\n\n /** The browser/environment version. */\n var version = useFeatures && opera && typeof opera.version == 'function' && opera.version();\n\n /** A flag to indicate if the OS ends with \"/ Version\" */\n var isSpecialCasedOS;\n\n /* Detectable layout engines (order is important). */\n var layout = getLayout([\n { 'label': 'EdgeHTML', 'pattern': 'Edge' },\n 'Trident',\n { 'label': 'WebKit', 'pattern': 'AppleWebKit' },\n 'iCab',\n 'Presto',\n 'NetFront',\n 'Tasman',\n 'KHTML',\n 'Gecko'\n ]);\n\n /* Detectable browser names (order is important). */\n var name = getName([\n 'Adobe AIR',\n 'Arora',\n 'Avant Browser',\n 'Breach',\n 'Camino',\n 'Electron',\n 'Epiphany',\n 'Fennec',\n 'Flock',\n 'Galeon',\n 'GreenBrowser',\n 'iCab',\n 'Iceweasel',\n 'K-Meleon',\n 'Konqueror',\n 'Lunascape',\n 'Maxthon',\n { 'label': 'Microsoft Edge', 'pattern': '(?:Edge|Edg|EdgA|EdgiOS)' },\n 'Midori',\n 'Nook Browser',\n 'PaleMoon',\n 'PhantomJS',\n 'Raven',\n 'Rekonq',\n 'RockMelt',\n { 'label': 'Samsung Internet', 'pattern': 'SamsungBrowser' },\n 'SeaMonkey',\n { 'label': 'Silk', 'pattern': '(?:Cloud9|Silk-Accelerated)' },\n 'Sleipnir',\n 'SlimBrowser',\n { 'label': 'SRWare Iron', 'pattern': 'Iron' },\n 'Sunrise',\n 'Swiftfox',\n 'Vivaldi',\n 'Waterfox',\n 'WebPositive',\n { 'label': 'Yandex Browser', 'pattern': 'YaBrowser' },\n { 'label': 'UC Browser', 'pattern': 'UCBrowser' },\n 'Opera Mini',\n { 'label': 'Opera Mini', 'pattern': 'OPiOS' },\n 'Opera',\n { 'label': 'Opera', 'pattern': 'OPR' },\n 'Chromium',\n 'Chrome',\n { 'label': 'Chrome', 'pattern': '(?:HeadlessChrome)' },\n { 'label': 'Chrome Mobile', 'pattern': '(?:CriOS|CrMo)' },\n { 'label': 'Firefox', 'pattern': '(?:Firefox|Minefield)' },\n { 'label': 'Firefox for iOS', 'pattern': 'FxiOS' },\n { 'label': 'IE', 'pattern': 'IEMobile' },\n { 'label': 'IE', 'pattern': 'MSIE' },\n 'Safari'\n ]);\n\n /* Detectable products (order is important). */\n var product = getProduct([\n { 'label': 'BlackBerry', 'pattern': 'BB10' },\n 'BlackBerry',\n { 'label': 'Galaxy S', 'pattern': 'GT-I9000' },\n { 'label': 'Galaxy S2', 'pattern': 'GT-I9100' },\n { 'label': 'Galaxy S3', 'pattern': 'GT-I9300' },\n { 'label': 'Galaxy S4', 'pattern': 'GT-I9500' },\n { 'label': 'Galaxy S5', 'pattern': 'SM-G900' },\n { 'label': 'Galaxy S6', 'pattern': 'SM-G920' },\n { 'label': 'Galaxy S6 Edge', 'pattern': 'SM-G925' },\n { 'label': 'Galaxy S7', 'pattern': 'SM-G930' },\n { 'label': 'Galaxy S7 Edge', 'pattern': 'SM-G935' },\n 'Google TV',\n 'Lumia',\n 'iPad',\n 'iPod',\n 'iPhone',\n 'Kindle',\n { 'label': 'Kindle Fire', 'pattern': '(?:Cloud9|Silk-Accelerated)' },\n 'Nexus',\n 'Nook',\n 'PlayBook',\n 'PlayStation Vita',\n 'PlayStation',\n 'TouchPad',\n 'Transformer',\n { 'label': 'Wii U', 'pattern': 'WiiU' },\n 'Wii',\n 'Xbox One',\n { 'label': 'Xbox 360', 'pattern': 'Xbox' },\n 'Xoom'\n ]);\n\n /* Detectable manufacturers. */\n var manufacturer = getManufacturer({\n 'Apple': { 'iPad': 1, 'iPhone': 1, 'iPod': 1 },\n 'Alcatel': {},\n 'Archos': {},\n 'Amazon': { 'Kindle': 1, 'Kindle Fire': 1 },\n 'Asus': { 'Transformer': 1 },\n 'Barnes & Noble': { 'Nook': 1 },\n 'BlackBerry': { 'PlayBook': 1 },\n 'Google': { 'Google TV': 1, 'Nexus': 1 },\n 'HP': { 'TouchPad': 1 },\n 'HTC': {},\n 'Huawei': {},\n 'Lenovo': {},\n 'LG': {},\n 'Microsoft': { 'Xbox': 1, 'Xbox One': 1 },\n 'Motorola': { 'Xoom': 1 },\n 'Nintendo': { 'Wii U': 1, 'Wii': 1 },\n 'Nokia': { 'Lumia': 1 },\n 'Oppo': {},\n 'Samsung': { 'Galaxy S': 1, 'Galaxy S2': 1, 'Galaxy S3': 1, 'Galaxy S4': 1 },\n 'Sony': { 'PlayStation': 1, 'PlayStation Vita': 1 },\n 'Xiaomi': { 'Mi': 1, 'Redmi': 1 }\n });\n\n /* Detectable operating systems (order is important). */\n var os = getOS([\n 'Windows Phone',\n 'KaiOS',\n 'Android',\n 'CentOS',\n { 'label': 'Chrome OS', 'pattern': 'CrOS' },\n 'Debian',\n { 'label': 'DragonFly BSD', 'pattern': 'DragonFly' },\n 'Fedora',\n 'FreeBSD',\n 'Gentoo',\n 'Haiku',\n 'Kubuntu',\n 'Linux Mint',\n 'OpenBSD',\n 'Red Hat',\n 'SuSE',\n 'Ubuntu',\n 'Xubuntu',\n 'Cygwin',\n 'Symbian OS',\n 'hpwOS',\n 'webOS ',\n 'webOS',\n 'Tablet OS',\n 'Tizen',\n 'Linux',\n 'Mac OS X',\n 'Macintosh',\n 'Mac',\n 'Windows 98;',\n 'Windows '\n ]);\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Picks the layout engine from an array of guesses.\n *\n * @private\n * @param {Array} guesses An array of guesses.\n * @returns {null|string} The detected layout engine.\n */\n function getLayout(guesses) {\n return reduce(guesses, function(result, guess) {\n return result || RegExp('\\\\b' + (\n guess.pattern || qualify(guess)\n ) + '\\\\b', 'i').exec(ua) && (guess.label || guess);\n });\n }\n\n /**\n * Picks the manufacturer from an array of guesses.\n *\n * @private\n * @param {Array} guesses An object of guesses.\n * @returns {null|string} The detected manufacturer.\n */\n function getManufacturer(guesses) {\n return reduce(guesses, function(result, value, key) {\n // Lookup the manufacturer by product or scan the UA for the manufacturer.\n return result || (\n value[product] ||\n value[/^[a-z]+(?: +[a-z]+\\b)*/i.exec(product)] ||\n RegExp('\\\\b' + qualify(key) + '(?:\\\\b|\\\\w*\\\\d)', 'i').exec(ua)\n ) && key;\n });\n }\n\n /**\n * Picks the browser name from an array of guesses.\n *\n * @private\n * @param {Array} guesses An array of guesses.\n * @returns {null|string} The detected browser name.\n */\n function getName(guesses) {\n return reduce(guesses, function(result, guess) {\n return result || RegExp('\\\\b' + (\n guess.pattern || qualify(guess)\n ) + '\\\\b', 'i').exec(ua) && (guess.label || guess);\n });\n }\n\n /**\n * Picks the OS name from an array of guesses.\n *\n * @private\n * @param {Array} guesses An array of guesses.\n * @returns {null|string} The detected OS name.\n */\n function getOS(guesses) {\n return reduce(guesses, function(result, guess) {\n var pattern = guess.pattern || qualify(guess);\n if (!result && (result =\n RegExp('\\\\b' + pattern + '(?:/[\\\\d.]+|[ \\\\w.]*)', 'i').exec(ua)\n )) {\n result = cleanupOS(result, pattern, guess.label || guess);\n }\n return result;\n });\n }\n\n /**\n * Picks the product name from an array of guesses.\n *\n * @private\n * @param {Array} guesses An array of guesses.\n * @returns {null|string} The detected product name.\n */\n function getProduct(guesses) {\n return reduce(guesses, function(result, guess) {\n var pattern = guess.pattern || qualify(guess);\n if (!result && (result =\n RegExp('\\\\b' + pattern + ' *\\\\d+[.\\\\w_]*', 'i').exec(ua) ||\n RegExp('\\\\b' + pattern + ' *\\\\w+-[\\\\w]*', 'i').exec(ua) ||\n RegExp('\\\\b' + pattern + '(?:; *(?:[a-z]+[_-])?[a-z]+\\\\d+|[^ ();-]*)', 'i').exec(ua)\n )) {\n // Split by forward slash and append product version if needed.\n if ((result = String((guess.label && !RegExp(pattern, 'i').test(guess.label)) ? guess.label : result).split('/'))[1] && !/[\\d.]+/.test(result[0])) {\n result[0] += ' ' + result[1];\n }\n // Correct character case and cleanup string.\n guess = guess.label || guess;\n result = format(result[0]\n .replace(RegExp(pattern, 'i'), guess)\n .replace(RegExp('; *(?:' + guess + '[_-])?', 'i'), ' ')\n .replace(RegExp('(' + guess + ')[-_.]?(\\\\w)', 'i'), '$1 $2'));\n }\n return result;\n });\n }\n\n /**\n * Resolves the version using an array of UA patterns.\n *\n * @private\n * @param {Array} patterns An array of UA patterns.\n * @returns {null|string} The detected version.\n */\n function getVersion(patterns) {\n return reduce(patterns, function(result, pattern) {\n return result || (RegExp(pattern +\n '(?:-[\\\\d.]+/|(?: for [\\\\w-]+)?[ /-])([\\\\d.]+[^ ();/_-]*)', 'i').exec(ua) || 0)[1] || null;\n });\n }\n\n /**\n * Returns `platform.description` when the platform object is coerced to a string.\n *\n * @name toString\n * @memberOf platform\n * @returns {string} Returns `platform.description` if available, else an empty string.\n */\n function toStringPlatform() {\n return this.description || '';\n }\n\n /*------------------------------------------------------------------------*/\n\n // Convert layout to an array so we can add extra details.\n layout && (layout = [layout]);\n\n // Detect Android products.\n // Browsers on Android devices typically provide their product IDS after \"Android;\"\n // up to \"Build\" or \") AppleWebKit\".\n // Example:\n // \"Mozilla/5.0 (Linux; Android 8.1.0; Moto G (5) Plus) AppleWebKit/537.36\n // (KHTML, like Gecko) Chrome/70.0.3538.80 Mobile Safari/537.36\"\n if (/\\bAndroid\\b/.test(os) && !product &&\n (data = /\\bAndroid[^;]*;(.*?)(?:Build|\\) AppleWebKit)\\b/i.exec(ua))) {\n product = trim(data[1])\n // Replace any language codes (eg. \"en-US\").\n .replace(/^[a-z]{2}-[a-z]{2};\\s*/i, '')\n || null;\n }\n // Detect product names that contain their manufacturer's name.\n if (manufacturer && !product) {\n product = getProduct([manufacturer]);\n } else if (manufacturer && product) {\n product = product\n .replace(RegExp('^(' + qualify(manufacturer) + ')[-_.\\\\s]', 'i'), manufacturer + ' ')\n .replace(RegExp('^(' + qualify(manufacturer) + ')[-_.]?(\\\\w)', 'i'), manufacturer + ' $2');\n }\n // Clean up Google TV.\n if ((data = /\\bGoogle TV\\b/.exec(product))) {\n product = data[0];\n }\n // Detect simulators.\n if (/\\bSimulator\\b/i.test(ua)) {\n product = (product ? product + ' ' : '') + 'Simulator';\n }\n // Detect Opera Mini 8+ running in Turbo/Uncompressed mode on iOS.\n if (name == 'Opera Mini' && /\\bOPiOS\\b/.test(ua)) {\n description.push('running in Turbo/Uncompressed mode');\n }\n // Detect IE Mobile 11.\n if (name == 'IE' && /\\blike iPhone OS\\b/.test(ua)) {\n data = parse(ua.replace(/like iPhone OS/, ''));\n manufacturer = data.manufacturer;\n product = data.product;\n }\n // Detect iOS.\n else if (/^iP/.test(product)) {\n name || (name = 'Safari');\n os = 'iOS' + ((data = / OS ([\\d_]+)/i.exec(ua))\n ? ' ' + data[1].replace(/_/g, '.')\n : '');\n }\n // Detect Kubuntu.\n else if (name == 'Konqueror' && /^Linux\\b/i.test(os)) {\n os = 'Kubuntu';\n }\n // Detect Android browsers.\n else if ((manufacturer && manufacturer != 'Google' &&\n ((/Chrome/.test(name) && !/\\bMobile Safari\\b/i.test(ua)) || /\\bVita\\b/.test(product))) ||\n (/\\bAndroid\\b/.test(os) && /^Chrome/.test(name) && /\\bVersion\\//i.test(ua))) {\n name = 'Android Browser';\n os = /\\bAndroid\\b/.test(os) ? os : 'Android';\n }\n // Detect Silk desktop/accelerated modes.\n else if (name == 'Silk') {\n if (!/\\bMobi/i.test(ua)) {\n os = 'Android';\n description.unshift('desktop mode');\n }\n if (/Accelerated *= *true/i.test(ua)) {\n description.unshift('accelerated');\n }\n }\n // Detect UC Browser speed mode.\n else if (name == 'UC Browser' && /\\bUCWEB\\b/.test(ua)) {\n description.push('speed mode');\n }\n // Detect PaleMoon identifying as Firefox.\n else if (name == 'PaleMoon' && (data = /\\bFirefox\\/([\\d.]+)\\b/.exec(ua))) {\n description.push('identifying as Firefox ' + data[1]);\n }\n // Detect Firefox OS and products running Firefox.\n else if (name == 'Firefox' && (data = /\\b(Mobile|Tablet|TV)\\b/i.exec(ua))) {\n os || (os = 'Firefox OS');\n product || (product = data[1]);\n }\n // Detect false positives for Firefox/Safari.\n else if (!name || (data = !/\\bMinefield\\b/i.test(ua) && /\\b(?:Firefox|Safari)\\b/.exec(name))) {\n // Escape the `/` for Firefox 1.\n if (name && !product && /[\\/,]|^[^(]+?\\)/.test(ua.slice(ua.indexOf(data + '/') + 8))) {\n // Clear name of false positives.\n name = null;\n }\n // Reassign a generic name.\n if ((data = product || manufacturer || os) &&\n (product || manufacturer || /\\b(?:Android|Symbian OS|Tablet OS|webOS)\\b/.test(os))) {\n name = /[a-z]+(?: Hat)?/i.exec(/\\bAndroid\\b/.test(os) ? os : data) + ' Browser';\n }\n }\n // Add Chrome version to description for Electron.\n else if (name == 'Electron' && (data = (/\\bChrome\\/([\\d.]+)\\b/.exec(ua) || 0)[1])) {\n description.push('Chromium ' + data);\n }\n // Detect non-Opera (Presto-based) versions (order is important).\n if (!version) {\n version = getVersion([\n '(?:Cloud9|CriOS|CrMo|Edge|Edg|EdgA|EdgiOS|FxiOS|HeadlessChrome|IEMobile|Iron|Opera ?Mini|OPiOS|OPR|Raven|SamsungBrowser|Silk(?!/[\\\\d.]+$)|UCBrowser|YaBrowser)',\n 'Version',\n qualify(name),\n '(?:Firefox|Minefield|NetFront)'\n ]);\n }\n // Detect stubborn layout engines.\n if ((data =\n layout == 'iCab' && parseFloat(version) > 3 && 'WebKit' ||\n /\\bOpera\\b/.test(name) && (/\\bOPR\\b/.test(ua) ? 'Blink' : 'Presto') ||\n /\\b(?:Midori|Nook|Safari)\\b/i.test(ua) && !/^(?:Trident|EdgeHTML)$/.test(layout) && 'WebKit' ||\n !layout && /\\bMSIE\\b/i.test(ua) && (os == 'Mac OS' ? 'Tasman' : 'Trident') ||\n layout == 'WebKit' && /\\bPlayStation\\b(?! Vita\\b)/i.test(name) && 'NetFront'\n )) {\n layout = [data];\n }\n // Detect Windows Phone 7 desktop mode.\n if (name == 'IE' && (data = (/; *(?:XBLWP|ZuneWP)(\\d+)/i.exec(ua) || 0)[1])) {\n name += ' Mobile';\n os = 'Windows Phone ' + (/\\+$/.test(data) ? data : data + '.x');\n description.unshift('desktop mode');\n }\n // Detect Windows Phone 8.x desktop mode.\n else if (/\\bWPDesktop\\b/i.test(ua)) {\n name = 'IE Mobile';\n os = 'Windows Phone 8.x';\n description.unshift('desktop mode');\n version || (version = (/\\brv:([\\d.]+)/.exec(ua) || 0)[1]);\n }\n // Detect IE 11 identifying as other browsers.\n else if (name != 'IE' && layout == 'Trident' && (data = /\\brv:([\\d.]+)/.exec(ua))) {\n if (name) {\n description.push('identifying as ' + name + (version ? ' ' + version : ''));\n }\n name = 'IE';\n version = data[1];\n }\n // Leverage environment features.\n if (useFeatures) {\n // Detect server-side environments.\n // Rhino has a global function while others have a global object.\n if (isHostType(context, 'global')) {\n if (java) {\n data = java.lang.System;\n arch = data.getProperty('os.arch');\n os = os || data.getProperty('os.name') + ' ' + data.getProperty('os.version');\n }\n if (rhino) {\n try {\n version = context.require('ringo/engine').version.join('.');\n name = 'RingoJS';\n } catch(e) {\n if ((data = context.system) && data.global.system == context.system) {\n name = 'Narwhal';\n os || (os = data[0].os || null);\n }\n }\n if (!name) {\n name = 'Rhino';\n }\n }\n else if (\n typeof context.process == 'object' && !context.process.browser &&\n (data = context.process)\n ) {\n if (typeof data.versions == 'object') {\n if (typeof data.versions.electron == 'string') {\n description.push('Node ' + data.versions.node);\n name = 'Electron';\n version = data.versions.electron;\n } else if (typeof data.versions.nw == 'string') {\n description.push('Chromium ' + version, 'Node ' + data.versions.node);\n name = 'NW.js';\n version = data.versions.nw;\n }\n }\n if (!name) {\n name = 'Node.js';\n arch = data.arch;\n os = data.platform;\n version = /[\\d.]+/.exec(data.version);\n version = version ? version[0] : null;\n }\n }\n }\n // Detect Adobe AIR.\n else if (getClassOf((data = context.runtime)) == airRuntimeClass) {\n name = 'Adobe AIR';\n os = data.flash.system.Capabilities.os;\n }\n // Detect PhantomJS.\n else if (getClassOf((data = context.phantom)) == phantomClass) {\n name = 'PhantomJS';\n version = (data = data.version || null) && (data.major + '.' + data.minor + '.' + data.patch);\n }\n // Detect IE compatibility modes.\n else if (typeof doc.documentMode == 'number' && (data = /\\bTrident\\/(\\d+)/i.exec(ua))) {\n // We're in compatibility mode when the Trident version + 4 doesn't\n // equal the document mode.\n version = [version, doc.documentMode];\n if ((data = +data[1] + 4) != version[1]) {\n description.push('IE ' + version[1] + ' mode');\n layout && (layout[1] = '');\n version[1] = data;\n }\n version = name == 'IE' ? String(version[1].toFixed(1)) : version[0];\n }\n // Detect IE 11 masking as other browsers.\n else if (typeof doc.documentMode == 'number' && /^(?:Chrome|Firefox)\\b/.test(name)) {\n description.push('masking as ' + name + ' ' + version);\n name = 'IE';\n version = '11.0';\n layout = ['Trident'];\n os = 'Windows';\n }\n os = os && format(os);\n }\n // Detect prerelease phases.\n if (version && (data =\n /(?:[ab]|dp|pre|[ab]\\d+pre)(?:\\d+\\+?)?$/i.exec(version) ||\n /(?:alpha|beta)(?: ?\\d)?/i.exec(ua + ';' + (useFeatures && nav.appMinorVersion)) ||\n /\\bMinefield\\b/i.test(ua) && 'a'\n )) {\n prerelease = /b/i.test(data) ? 'beta' : 'alpha';\n version = version.replace(RegExp(data + '\\\\+?$'), '') +\n (prerelease == 'beta' ? beta : alpha) + (/\\d+\\+?/.exec(data) || '');\n }\n // Detect Firefox Mobile.\n if (name == 'Fennec' || name == 'Firefox' && /\\b(?:Android|Firefox OS|KaiOS)\\b/.test(os)) {\n name = 'Firefox Mobile';\n }\n // Obscure Maxthon's unreliable version.\n else if (name == 'Maxthon' && version) {\n version = version.replace(/\\.[\\d.]+/, '.x');\n }\n // Detect Xbox 360 and Xbox One.\n else if (/\\bXbox\\b/i.test(product)) {\n if (product == 'Xbox 360') {\n os = null;\n }\n if (product == 'Xbox 360' && /\\bIEMobile\\b/.test(ua)) {\n description.unshift('mobile mode');\n }\n }\n // Add mobile postfix.\n else if ((/^(?:Chrome|IE|Opera)$/.test(name) || name && !product && !/Browser|Mobi/.test(name)) &&\n (os == 'Windows CE' || /Mobi/i.test(ua))) {\n name += ' Mobile';\n }\n // Detect IE platform preview.\n else if (name == 'IE' && useFeatures) {\n try {\n if (context.external === null) {\n description.unshift('platform preview');\n }\n } catch(e) {\n description.unshift('embedded');\n }\n }\n // Detect BlackBerry OS version.\n // http://docs.blackberry.com/en/developers/deliverables/18169/HTTP_headers_sent_by_BB_Browser_1234911_11.jsp\n else if ((/\\bBlackBerry\\b/.test(product) || /\\bBB10\\b/.test(ua)) && (data =\n (RegExp(product.replace(/ +/g, ' *') + '/([.\\\\d]+)', 'i').exec(ua) || 0)[1] ||\n version\n )) {\n data = [data, /BB10/.test(ua)];\n os = (data[1] ? (product = null, manufacturer = 'BlackBerry') : 'Device Software') + ' ' + data[0];\n version = null;\n }\n // Detect Opera identifying/masking itself as another browser.\n // http://www.opera.com/support/kb/view/843/\n else if (this != forOwn && product != 'Wii' && (\n (useFeatures && opera) ||\n (/Opera/.test(name) && /\\b(?:MSIE|Firefox)\\b/i.test(ua)) ||\n (name == 'Firefox' && /\\bOS X (?:\\d+\\.){2,}/.test(os)) ||\n (name == 'IE' && (\n (os && !/^Win/.test(os) && version > 5.5) ||\n /\\bWindows XP\\b/.test(os) && version > 8 ||\n version == 8 && !/\\bTrident\\b/.test(ua)\n ))\n ) && !reOpera.test((data = parse.call(forOwn, ua.replace(reOpera, '') + ';'))) && data.name) {\n // When \"identifying\", the UA contains both Opera and the other browser's name.\n data = 'ing as ' + data.name + ((data = data.version) ? ' ' + data : '');\n if (reOpera.test(name)) {\n if (/\\bIE\\b/.test(data) && os == 'Mac OS') {\n os = null;\n }\n data = 'identify' + data;\n }\n // When \"masking\", the UA contains only the other browser's name.\n else {\n data = 'mask' + data;\n if (operaClass) {\n name = format(operaClass.replace(/([a-z])([A-Z])/g, '$1 $2'));\n } else {\n name = 'Opera';\n }\n if (/\\bIE\\b/.test(data)) {\n os = null;\n }\n if (!useFeatures) {\n version = null;\n }\n }\n layout = ['Presto'];\n description.push(data);\n }\n // Detect WebKit Nightly and approximate Chrome/Safari versions.\n if ((data = (/\\bAppleWebKit\\/([\\d.]+\\+?)/i.exec(ua) || 0)[1])) {\n // Correct build number for numeric comparison.\n // (e.g. \"532.5\" becomes \"532.05\")\n data = [parseFloat(data.replace(/\\.(\\d)$/, '.0$1')), data];\n // Nightly builds are postfixed with a \"+\".\n if (name == 'Safari' && data[1].slice(-1) == '+') {\n name = 'WebKit Nightly';\n prerelease = 'alpha';\n version = data[1].slice(0, -1);\n }\n // Clear incorrect browser versions.\n else if (version == data[1] ||\n version == (data[2] = (/\\bSafari\\/([\\d.]+\\+?)/i.exec(ua) || 0)[1])) {\n version = null;\n }\n // Use the full Chrome version when available.\n data[1] = (/\\b(?:Headless)?Chrome\\/([\\d.]+)/i.exec(ua) || 0)[1];\n // Detect Blink layout engine.\n if (data[0] == 537.36 && data[2] == 537.36 && parseFloat(data[1]) >= 28 && layout == 'WebKit') {\n layout = ['Blink'];\n }\n // Detect JavaScriptCore.\n // http://stackoverflow.com/questions/6768474/how-can-i-detect-which-javascript-engine-v8-or-jsc-is-used-at-runtime-in-androi\n if (!useFeatures || (!likeChrome && !data[1])) {\n layout && (layout[1] = 'like Safari');\n data = (data = data[0], data < 400 ? 1 : data < 500 ? 2 : data < 526 ? 3 : data < 533 ? 4 : data < 534 ? '4+' : data < 535 ? 5 : data < 537 ? 6 : data < 538 ? 7 : data < 601 ? 8 : data < 602 ? 9 : data < 604 ? 10 : data < 606 ? 11 : data < 608 ? 12 : '12');\n } else {\n layout && (layout[1] = 'like Chrome');\n data = data[1] || (data = data[0], data < 530 ? 1 : data < 532 ? 2 : data < 532.05 ? 3 : data < 533 ? 4 : data < 534.03 ? 5 : data < 534.07 ? 6 : data < 534.10 ? 7 : data < 534.13 ? 8 : data < 534.16 ? 9 : data < 534.24 ? 10 : data < 534.30 ? 11 : data < 535.01 ? 12 : data < 535.02 ? '13+' : data < 535.07 ? 15 : data < 535.11 ? 16 : data < 535.19 ? 17 : data < 536.05 ? 18 : data < 536.10 ? 19 : data < 537.01 ? 20 : data < 537.11 ? '21+' : data < 537.13 ? 23 : data < 537.18 ? 24 : data < 537.24 ? 25 : data < 537.36 ? 26 : layout != 'Blink' ? '27' : '28');\n }\n // Add the postfix of \".x\" or \"+\" for approximate versions.\n layout && (layout[1] += ' ' + (data += typeof data == 'number' ? '.x' : /[.+]/.test(data) ? '' : '+'));\n // Obscure version for some Safari 1-2 releases.\n if (name == 'Safari' && (!version || parseInt(version) > 45)) {\n version = data;\n } else if (name == 'Chrome' && /\\bHeadlessChrome/i.test(ua)) {\n description.unshift('headless');\n }\n }\n // Detect Opera desktop modes.\n if (name == 'Opera' && (data = /\\bzbov|zvav$/.exec(os))) {\n name += ' ';\n description.unshift('desktop mode');\n if (data == 'zvav') {\n name += 'Mini';\n version = null;\n } else {\n name += 'Mobile';\n }\n os = os.replace(RegExp(' *' + data + '$'), '');\n }\n // Detect Chrome desktop mode.\n else if (name == 'Safari' && /\\bChrome\\b/.exec(layout && layout[1])) {\n description.unshift('desktop mode');\n name = 'Chrome Mobile';\n version = null;\n\n if (/\\bOS X\\b/.test(os)) {\n manufacturer = 'Apple';\n os = 'iOS 4.3+';\n } else {\n os = null;\n }\n }\n // Newer versions of SRWare Iron uses the Chrome tag to indicate its version number.\n else if (/\\bSRWare Iron\\b/.test(name) && !version) {\n version = getVersion('Chrome');\n }\n // Strip incorrect OS versions.\n if (version && version.indexOf((data = /[\\d.]+$/.exec(os))) == 0 &&\n ua.indexOf('/' + data + '-') > -1) {\n os = trim(os.replace(data, ''));\n }\n // Ensure OS does not include the browser name.\n if (os && os.indexOf(name) != -1 && !RegExp(name + ' OS').test(os)) {\n os = os.replace(RegExp(' *' + qualify(name) + ' *'), '');\n }\n // Add layout engine.\n if (layout && !/\\b(?:Avant|Nook)\\b/.test(name) && (\n /Browser|Lunascape|Maxthon/.test(name) ||\n name != 'Safari' && /^iOS/.test(os) && /\\bSafari\\b/.test(layout[1]) ||\n /^(?:Adobe|Arora|Breach|Midori|Opera|Phantom|Rekonq|Rock|Samsung Internet|Sleipnir|SRWare Iron|Vivaldi|Web)/.test(name) && layout[1])) {\n // Don't add layout details to description if they are falsey.\n (data = layout[layout.length - 1]) && description.push(data);\n }\n // Combine contextual information.\n if (description.length) {\n description = ['(' + description.join('; ') + ')'];\n }\n // Append manufacturer to description.\n if (manufacturer && product && product.indexOf(manufacturer) < 0) {\n description.push('on ' + manufacturer);\n }\n // Append product to description.\n if (product) {\n description.push((/^on /.test(description[description.length - 1]) ? '' : 'on ') + product);\n }\n // Parse the OS into an object.\n if (os) {\n data = / ([\\d.+]+)$/.exec(os);\n isSpecialCasedOS = data && os.charAt(os.length - data[0].length - 1) == '/';\n os = {\n 'architecture': 32,\n 'family': (data && !isSpecialCasedOS) ? os.replace(data[0], '') : os,\n 'version': data ? data[1] : null,\n 'toString': function() {\n var version = this.version;\n return this.family + ((version && !isSpecialCasedOS) ? ' ' + version : '') + (this.architecture == 64 ? ' 64-bit' : '');\n }\n };\n }\n // Add browser/OS architecture.\n if ((data = /\\b(?:AMD|IA|Win|WOW|x86_|x)64\\b/i.exec(arch)) && !/\\bi686\\b/i.test(arch)) {\n if (os) {\n os.architecture = 64;\n os.family = os.family.replace(RegExp(' *' + data), '');\n }\n if (\n name && (/\\bWOW64\\b/i.test(ua) ||\n (useFeatures && /\\w(?:86|32)$/.test(nav.cpuClass || nav.platform) && !/\\bWin64; x64\\b/i.test(ua)))\n ) {\n description.unshift('32-bit');\n }\n }\n // Chrome 39 and above on OS X is always 64-bit.\n else if (\n os && /^OS X/.test(os.family) &&\n name == 'Chrome' && parseFloat(version) >= 39\n ) {\n os.architecture = 64;\n }\n\n ua || (ua = null);\n\n /*------------------------------------------------------------------------*/\n\n /**\n * The platform object.\n *\n * @name platform\n * @type Object\n */\n var platform = {};\n\n /**\n * The platform description.\n *\n * @memberOf platform\n * @type string|null\n */\n platform.description = ua;\n\n /**\n * The name of the browser's layout engine.\n *\n * The list of common layout engines include:\n * \"Blink\", \"EdgeHTML\", \"Gecko\", \"Trident\" and \"WebKit\"\n *\n * @memberOf platform\n * @type string|null\n */\n platform.layout = layout && layout[0];\n\n /**\n * The name of the product's manufacturer.\n *\n * The list of manufacturers include:\n * \"Apple\", \"Archos\", \"Amazon\", \"Asus\", \"Barnes & Noble\", \"BlackBerry\",\n * \"Google\", \"HP\", \"HTC\", \"LG\", \"Microsoft\", \"Motorola\", \"Nintendo\",\n * \"Nokia\", \"Samsung\" and \"Sony\"\n *\n * @memberOf platform\n * @type string|null\n */\n platform.manufacturer = manufacturer;\n\n /**\n * The name of the browser/environment.\n *\n * The list of common browser names include:\n * \"Chrome\", \"Electron\", \"Firefox\", \"Firefox for iOS\", \"IE\",\n * \"Microsoft Edge\", \"PhantomJS\", \"Safari\", \"SeaMonkey\", \"Silk\",\n * \"Opera Mini\" and \"Opera\"\n *\n * Mobile versions of some browsers have \"Mobile\" appended to their name:\n * eg. \"Chrome Mobile\", \"Firefox Mobile\", \"IE Mobile\" and \"Opera Mobile\"\n *\n * @memberOf platform\n * @type string|null\n */\n platform.name = name;\n\n /**\n * The alpha/beta release indicator.\n *\n * @memberOf platform\n * @type string|null\n */\n platform.prerelease = prerelease;\n\n /**\n * The name of the product hosting the browser.\n *\n * The list of common products include:\n *\n * \"BlackBerry\", \"Galaxy S4\", \"Lumia\", \"iPad\", \"iPod\", \"iPhone\", \"Kindle\",\n * \"Kindle Fire\", \"Nexus\", \"Nook\", \"PlayBook\", \"TouchPad\" and \"Transformer\"\n *\n * @memberOf platform\n * @type string|null\n */\n platform.product = product;\n\n /**\n * The browser's user agent string.\n *\n * @memberOf platform\n * @type string|null\n */\n platform.ua = ua;\n\n /**\n * The browser/environment version.\n *\n * @memberOf platform\n * @type string|null\n */\n platform.version = name && version;\n\n /**\n * The name of the operating system.\n *\n * @memberOf platform\n * @type Object\n */\n platform.os = os || {\n\n /**\n * The CPU architecture the OS is built for.\n *\n * @memberOf platform.os\n * @type number|null\n */\n 'architecture': null,\n\n /**\n * The family of the OS.\n *\n * Common values include:\n * \"Windows\", \"Windows Server 2008 R2 / 7\", \"Windows Server 2008 / Vista\",\n * \"Windows XP\", \"OS X\", \"Linux\", \"Ubuntu\", \"Debian\", \"Fedora\", \"Red Hat\",\n * \"SuSE\", \"Android\", \"iOS\" and \"Windows Phone\"\n *\n * @memberOf platform.os\n * @type string|null\n */\n 'family': null,\n\n /**\n * The version of the OS.\n *\n * @memberOf platform.os\n * @type string|null\n */\n 'version': null,\n\n /**\n * Returns the OS string.\n *\n * @memberOf platform.os\n * @returns {string} The OS string.\n */\n 'toString': function() { return 'null'; }\n };\n\n platform.parse = parse;\n platform.toString = toStringPlatform;\n\n if (platform.version) {\n description.unshift(version);\n }\n if (platform.name) {\n description.unshift(name);\n }\n if (os && name && !(os == String(os).split(' ')[0] && (os == name.split(' ')[0] || product))) {\n description.push(product ? '(' + os + ')' : 'on ' + os);\n }\n if (description.length) {\n platform.description = description.join(' ');\n }\n return platform;\n }\n\n /*--------------------------------------------------------------------------*/\n\n // Export platform.\n var platform = parse();\n\n // Some AMD build optimizers, like r.js, check for condition patterns like the following:\n if (true) {\n // Expose platform on the global object to prevent errors when platform is\n // loaded by a script tag in the presence of an AMD loader.\n // See http://requirejs.org/docs/errors.html#mismatch for more details.\n root.platform = platform;\n\n // Define as an anonymous module so platform can be aliased through path mapping.\n !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() {\n return platform;\n }).call(exports, __webpack_require__, exports, module),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n }\n // Check for `exports` after `define` in case a build optimizer adds an `exports` object.\n else {}\n}.call(this));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcGxhdGZvcm0vcGxhdGZvcm0uanMuanMiLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EsK0JBQStCLFFBQWE7O0FBRTVDO0FBQ0EsdURBQXVELHFCQUFNLGdCQUFnQixxQkFBTTtBQUNuRjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsUUFBUTtBQUNyQixlQUFlLFFBQVE7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsUUFBUTtBQUNyQixhQUFhLFFBQVE7QUFDckIsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxjQUFjO0FBQzNCLGFBQWEsVUFBVTtBQUN2QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLFFBQVE7QUFDckIsZUFBZSxRQUFRO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxRQUFRO0FBQ3JCLGFBQWEsVUFBVTtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxHQUFHO0FBQ2hCLGVBQWUsUUFBUTtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxHQUFHO0FBQ2hCLGFBQWEsUUFBUTtBQUNyQixlQUFlLFNBQVM7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxRQUFRO0FBQ3JCLGVBQWUsUUFBUTtBQUN2QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsT0FBTztBQUNwQixhQUFhLFVBQVU7QUFDdkIsZUFBZSxHQUFHO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsUUFBUTtBQUNyQixlQUFlLFFBQVE7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLGVBQWU7QUFDNUI7QUFDQSxlQUFlLFFBQVE7QUFDdkI7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7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QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0M7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlEQUFpRDtBQUNqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrREFBa0QsR0FBRztBQUNyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0ZBQWtGO0FBQ2xGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtDQUErQztBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBGQUEwRjtBQUMxRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixRQUFRO0FBQzNCO0FBQ0EsK0JBQStCO0FBQy9COztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EsTUFBTSxJQUEwRTtBQUNoRjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLElBQUksbUNBQU87QUFDWDtBQUNBLEtBQUs7QUFBQSxrR0FBQztBQUNOO0FBQ0E7QUFDQSxPQUFPLEVBU0o7QUFDSCxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9wbGF0Zm9ybS9wbGF0Zm9ybS5qcz85NWJiIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogUGxhdGZvcm0uanMgdjEuMy42XG4gKiBDb3B5cmlnaHQgMjAxNC0yMDIwIEJlbmphbWluIFRhblxuICogQ29weXJpZ2h0IDIwMTEtMjAxMyBKb2huLURhdmlkIERhbHRvblxuICogQXZhaWxhYmxlIHVuZGVyIE1JVCBsaWNlbnNlXG4gKi9cbjsoZnVuY3Rpb24oKSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICAvKiogVXNlZCB0byBkZXRlcm1pbmUgaWYgdmFsdWVzIGFyZSBvZiB0aGUgbGFuZ3VhZ2UgdHlwZSBgT2JqZWN0YC4gKi9cbiAgdmFyIG9iamVjdFR5cGVzID0ge1xuICAgICdmdW5jdGlvbic6IHRydWUsXG4gICAgJ29iamVjdCc6IHRydWVcbiAgfTtcblxuICAvKiogVXNlZCBhcyBhIHJlZmVyZW5jZSB0byB0aGUgZ2xvYmFsIG9iamVjdC4gKi9cbiAgdmFyIHJvb3QgPSAob2JqZWN0VHlwZXNbdHlwZW9mIHdpbmRvd10gJiYgd2luZG93KSB8fCB0aGlzO1xuXG4gIC8qKiBCYWNrdXAgcG9zc2libGUgZ2xvYmFsIG9iamVjdC4gKi9cbiAgdmFyIG9sZFJvb3QgPSByb290O1xuXG4gIC8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgZXhwb3J0c2AuICovXG4gIHZhciBmcmVlRXhwb3J0cyA9IG9iamVjdFR5cGVzW3R5cGVvZiBleHBvcnRzXSAmJiBleHBvcnRzO1xuXG4gIC8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgbW9kdWxlYC4gKi9cbiAgdmFyIGZyZWVNb2R1bGUgPSBvYmplY3RUeXBlc1t0eXBlb2YgbW9kdWxlXSAmJiBtb2R1bGUgJiYgIW1vZHVsZS5ub2RlVHlwZSAmJiBtb2R1bGU7XG5cbiAgLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBnbG9iYWxgIGZyb20gTm9kZS5qcyBvciBCcm93c2VyaWZpZWQgY29kZSBhbmQgdXNlIGl0IGFzIGByb290YC4gKi9cbiAgdmFyIGZyZWVHbG9iYWwgPSBmcmVlRXhwb3J0cyAmJiBmcmVlTW9kdWxlICYmIHR5cGVvZiBnbG9iYWwgPT0gJ29iamVjdCcgJiYgZ2xvYmFsO1xuICBpZiAoZnJlZUdsb2JhbCAmJiAoZnJlZUdsb2JhbC5nbG9iYWwgPT09IGZyZWVHbG9iYWwgfHwgZnJlZUdsb2JhbC53aW5kb3cgPT09IGZyZWVHbG9iYWwgfHwgZnJlZUdsb2JhbC5zZWxmID09PSBmcmVlR2xvYmFsKSkge1xuICAgIHJvb3QgPSBmcmVlR2xvYmFsO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZWQgYXMgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGFuIGFycmF5LWxpa2Ugb2JqZWN0LlxuICAgKiBTZWUgdGhlIFtFUzYgc3BlY10oaHR0cDovL3Blb3BsZS5tb3ppbGxhLm9yZy9+am9yZW5kb3JmZi9lczYtZHJhZnQuaHRtbCNzZWMtdG9sZW5ndGgpXG4gICAqIGZvciBtb3JlIGRldGFpbHMuXG4gICAqL1xuICB2YXIgbWF4U2FmZUludGVnZXIgPSBNYXRoLnBvdygyLCA1MykgLSAxO1xuXG4gIC8qKiBSZWd1bGFyIGV4cHJlc3Npb24gdG8gZGV0ZWN0IE9wZXJhLiAqL1xuICB2YXIgcmVPcGVyYSA9IC9cXGJPcGVyYS87XG5cbiAgLyoqIFBvc3NpYmxlIGdsb2JhbCBvYmplY3QuICovXG4gIHZhciB0aGlzQmluZGluZyA9IHRoaXM7XG5cbiAgLyoqIFVzZWQgZm9yIG5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbiAgdmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuICAvKiogVXNlZCB0byBjaGVjayBmb3Igb3duIHByb3BlcnRpZXMgb2YgYW4gb2JqZWN0LiAqL1xuICB2YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuICAvKiogVXNlZCB0byByZXNvbHZlIHRoZSBpbnRlcm5hbCBgW1tDbGFzc11dYCBvZiB2YWx1ZXMuICovXG4gIHZhciB0b1N0cmluZyA9IG9iamVjdFByb3RvLnRvU3RyaW5nO1xuXG4gIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gIC8qKlxuICAgKiBDYXBpdGFsaXplcyBhIHN0cmluZyB2YWx1ZS5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZyBUaGUgc3RyaW5nIHRvIGNhcGl0YWxpemUuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBjYXBpdGFsaXplZCBzdHJpbmcuXG4gICAqL1xuICBmdW5jdGlvbiBjYXBpdGFsaXplKHN0cmluZykge1xuICAgIHN0cmluZyA9IFN0cmluZyhzdHJpbmcpO1xuICAgIHJldHVybiBzdHJpbmcuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBzdHJpbmcuc2xpY2UoMSk7XG4gIH1cblxuICAvKipcbiAgICogQSB1dGlsaXR5IGZ1bmN0aW9uIHRvIGNsZWFuIHVwIHRoZSBPUyBuYW1lLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3MgVGhlIE9TIG5hbWUgdG8gY2xlYW4gdXAuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbcGF0dGVybl0gQSBgUmVnRXhwYCBwYXR0ZXJuIG1hdGNoaW5nIHRoZSBPUyBuYW1lLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2xhYmVsXSBBIGxhYmVsIGZvciB0aGUgT1MuXG4gICAqL1xuICBmdW5jdGlvbiBjbGVhbnVwT1Mob3MsIHBhdHRlcm4sIGxhYmVsKSB7XG4gICAgLy8gUGxhdGZvcm0gdG9rZW5zIGFyZSBkZWZpbmVkIGF0OlxuICAgIC8vIGh0dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9tczUzNzUwMyhWUy44NSkuYXNweFxuICAgIC8vIGh0dHA6Ly93ZWIuYXJjaGl2ZS5vcmcvd2ViLzIwMDgxMTIyMDUzOTUwL2h0dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9tczUzNzUwMyhWUy44NSkuYXNweFxuICAgIHZhciBkYXRhID0ge1xuICAgICAgJzEwLjAnOiAnMTAnLFxuICAgICAgJzYuNCc6ICAnMTAgVGVjaG5pY2FsIFByZXZpZXcnLFxuICAgICAgJzYuMyc6ICAnOC4xJyxcbiAgICAgICc2LjInOiAgJzgnLFxuICAgICAgJzYuMSc6ICAnU2VydmVyIDIwMDggUjIgLyA3JyxcbiAgICAgICc2LjAnOiAgJ1NlcnZlciAyMDA4IC8gVmlzdGEnLFxuICAgICAgJzUuMic6ICAnU2VydmVyIDIwMDMgLyBYUCA2NC1iaXQnLFxuICAgICAgJzUuMSc6ICAnWFAnLFxuICAgICAgJzUuMDEnOiAnMjAwMCBTUDEnLFxuICAgICAgJzUuMCc6ICAnMjAwMCcsXG4gICAgICAnNC4wJzogICdOVCcsXG4gICAgICAnNC45MCc6ICdNRSdcbiAgICB9O1xuICAgIC8vIERldGVjdCBXaW5kb3dzIHZlcnNpb24gZnJvbSBwbGF0Zm9ybSB0b2tlbnMuXG4gICAgaWYgKHBhdHRlcm4gJiYgbGFiZWwgJiYgL15XaW4vaS50ZXN0KG9zKSAmJiAhL15XaW5kb3dzIFBob25lIC9pLnRlc3Qob3MpICYmXG4gICAgICAgIChkYXRhID0gZGF0YVsvW1xcZC5dKyQvLmV4ZWMob3MpXSkpIHtcbiAgICAgIG9zID0gJ1dpbmRvd3MgJyArIGRhdGE7XG4gICAgfVxuICAgIC8vIENvcnJlY3QgY2hhcmFjdGVyIGNhc2UgYW5kIGNsZWFudXAgc3RyaW5nLlxuICAgIG9zID0gU3RyaW5nKG9zKTtcblxuICAgIGlmIChwYXR0ZXJuICYmIGxhYmVsKSB7XG4gICAgICBvcyA9IG9zLnJlcGxhY2UoUmVnRXhwKHBhdHRlcm4sICdpJyksIGxhYmVsKTtcbiAgICB9XG5cbiAgICBvcyA9IGZvcm1hdChcbiAgICAgIG9zLnJlcGxhY2UoLyBjZSQvaSwgJyBDRScpXG4gICAgICAgIC5yZXBsYWNlKC9cXGJocHcvaSwgJ3dlYicpXG4gICAgICAgIC5yZXBsYWNlKC9cXGJNYWNpbnRvc2hcXGIvLCAnTWFjIE9TJylcbiAgICAgICAgLnJlcGxhY2UoL19Qb3dlclBDXFxiL2ksICcgT1MnKVxuICAgICAgICAucmVwbGFjZSgvXFxiKE9TIFgpIFteIFxcZF0rL2ksICckMScpXG4gICAgICAgIC5yZXBsYWNlKC9cXGJNYWMgKE9TIFgpXFxiLywgJyQxJylcbiAgICAgICAgLnJlcGxhY2UoL1xcLyhcXGQpLywgJyAkMScpXG4gICAgICAgIC5yZXBsYWNlKC9fL2csICcuJylcbiAgICAgICAgLnJlcGxhY2UoLyg/OiBCZVBDfFsgLl0qZmNbIFxcZC5dKykkL2ksICcnKVxuICAgICAgICAucmVwbGFjZSgvXFxieDg2XFwuNjRcXGIvZ2ksICd4ODZfNjQnKVxuICAgICAgICAucmVwbGFjZSgvXFxiKFdpbmRvd3MgUGhvbmUpIE9TXFxiLywgJyQxJylcbiAgICAgICAgLnJlcGxhY2UoL1xcYihDaHJvbWUgT1MgXFx3KykgW1xcZC5dK1xcYi8sICckMScpXG4gICAgICAgIC5zcGxpdCgnIG9uICcpWzBdXG4gICAgKTtcblxuICAgIHJldHVybiBvcztcbiAgfVxuXG4gIC8qKlxuICAgKiBBbiBpdGVyYXRpb24gdXRpbGl0eSBmb3IgYXJyYXlzIGFuZCBvYmplY3RzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFjayBUaGUgZnVuY3Rpb24gY2FsbGVkIHBlciBpdGVyYXRpb24uXG4gICAqL1xuICBmdW5jdGlvbiBlYWNoKG9iamVjdCwgY2FsbGJhY2spIHtcbiAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgbGVuZ3RoID0gb2JqZWN0ID8gb2JqZWN0Lmxlbmd0aCA6IDA7XG5cbiAgICBpZiAodHlwZW9mIGxlbmd0aCA9PSAnbnVtYmVyJyAmJiBsZW5ndGggPiAtMSAmJiBsZW5ndGggPD0gbWF4U2FmZUludGVnZXIpIHtcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIGNhbGxiYWNrKG9iamVjdFtpbmRleF0sIGluZGV4LCBvYmplY3QpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBmb3JPd24ob2JqZWN0LCBjYWxsYmFjayk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRyaW0gYW5kIGNvbmRpdGlvbmFsbHkgY2FwaXRhbGl6ZSBzdHJpbmcgdmFsdWVzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nIFRoZSBzdHJpbmcgdG8gZm9ybWF0LlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgZm9ybWF0dGVkIHN0cmluZy5cbiAgICovXG4gIGZ1bmN0aW9uIGZvcm1hdChzdHJpbmcpIHtcbiAgICBzdHJpbmcgPSB0cmltKHN0cmluZyk7XG4gICAgcmV0dXJuIC9eKD86d2ViT1N8aSg/Ok9TfFApKS8udGVzdChzdHJpbmcpXG4gICAgICA/IHN0cmluZ1xuICAgICAgOiBjYXBpdGFsaXplKHN0cmluZyk7XG4gIH1cblxuICAvKipcbiAgICogSXRlcmF0ZXMgb3ZlciBhbiBvYmplY3QncyBvd24gcHJvcGVydGllcywgZXhlY3V0aW5nIHRoZSBgY2FsbGJhY2tgIGZvciBlYWNoLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFjayBUaGUgZnVuY3Rpb24gZXhlY3V0ZWQgcGVyIG93biBwcm9wZXJ0eS5cbiAgICovXG4gIGZ1bmN0aW9uIGZvck93bihvYmplY3QsIGNhbGxiYWNrKSB7XG4gICAgZm9yICh2YXIga2V5IGluIG9iamVjdCkge1xuICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpKSB7XG4gICAgICAgIGNhbGxiYWNrKG9iamVjdFtrZXldLCBrZXksIG9iamVjdCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGludGVybmFsIGBbW0NsYXNzXV1gIG9mIGEgdmFsdWUuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgYFtbQ2xhc3NdXWAuXG4gICAqL1xuICBmdW5jdGlvbiBnZXRDbGFzc09mKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlID09IG51bGxcbiAgICAgID8gY2FwaXRhbGl6ZSh2YWx1ZSlcbiAgICAgIDogdG9TdHJpbmcuY2FsbCh2YWx1ZSkuc2xpY2UoOCwgLTEpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhvc3Qgb2JqZWN0cyBjYW4gcmV0dXJuIHR5cGUgdmFsdWVzIHRoYXQgYXJlIGRpZmZlcmVudCBmcm9tIHRoZWlyIGFjdHVhbFxuICAgKiBkYXRhIHR5cGUuIFRoZSBvYmplY3RzIHdlIGFyZSBjb25jZXJuZWQgd2l0aCB1c3VhbGx5IHJldHVybiBub24tcHJpbWl0aXZlXG4gICAqIHR5cGVzIG9mIFwib2JqZWN0XCIsIFwiZnVuY3Rpb25cIiwgb3IgXCJ1bmtub3duXCIuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7Kn0gb2JqZWN0IFRoZSBvd25lciBvZiB0aGUgcHJvcGVydHkuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwcm9wZXJ0eSBUaGUgcHJvcGVydHkgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgcHJvcGVydHkgdmFsdWUgaXMgYSBub24tcHJpbWl0aXZlLCBlbHNlIGBmYWxzZWAuXG4gICAqL1xuICBmdW5jdGlvbiBpc0hvc3RUeXBlKG9iamVjdCwgcHJvcGVydHkpIHtcbiAgICB2YXIgdHlwZSA9IG9iamVjdCAhPSBudWxsID8gdHlwZW9mIG9iamVjdFtwcm9wZXJ0eV0gOiAnbnVtYmVyJztcbiAgICByZXR1cm4gIS9eKD86Ym9vbGVhbnxudW1iZXJ8c3RyaW5nfHVuZGVmaW5lZCkkLy50ZXN0KHR5cGUpICYmXG4gICAgICAodHlwZSA9PSAnb2JqZWN0JyA/ICEhb2JqZWN0W3Byb3BlcnR5XSA6IHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFByZXBhcmVzIGEgc3RyaW5nIGZvciB1c2UgaW4gYSBgUmVnRXhwYCBieSBtYWtpbmcgaHlwaGVucyBhbmQgc3BhY2VzIG9wdGlvbmFsLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nIFRoZSBzdHJpbmcgdG8gcXVhbGlmeS5cbiAgICogQHJldHVybnMge3N0cmluZ30gVGhlIHF1YWxpZmllZCBzdHJpbmcuXG4gICAqL1xuICBmdW5jdGlvbiBxdWFsaWZ5KHN0cmluZykge1xuICAgIHJldHVybiBTdHJpbmcoc3RyaW5nKS5yZXBsYWNlKC8oWyAtXSkoPyEkKS9nLCAnJDE/Jyk7XG4gIH1cblxuICAvKipcbiAgICogQSBiYXJlLWJvbmVzIGBBcnJheSNyZWR1Y2VgIGxpa2UgdXRpbGl0eSBmdW5jdGlvbi5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2sgVGhlIGZ1bmN0aW9uIGNhbGxlZCBwZXIgaXRlcmF0aW9uLlxuICAgKiBAcmV0dXJucyB7Kn0gVGhlIGFjY3VtdWxhdGVkIHJlc3VsdC5cbiAgICovXG4gIGZ1bmN0aW9uIHJlZHVjZShhcnJheSwgY2FsbGJhY2spIHtcbiAgICB2YXIgYWNjdW11bGF0b3IgPSBudWxsO1xuICAgIGVhY2goYXJyYXksIGZ1bmN0aW9uKHZhbHVlLCBpbmRleCkge1xuICAgICAgYWNjdW11bGF0b3IgPSBjYWxsYmFjayhhY2N1bXVsYXRvciwgdmFsdWUsIGluZGV4LCBhcnJheSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGFjY3VtdWxhdG9yO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgbGVhZGluZyBhbmQgdHJhaWxpbmcgd2hpdGVzcGFjZSBmcm9tIGEgc3RyaW5nLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nIFRoZSBzdHJpbmcgdG8gdHJpbS5cbiAgICogQHJldHVybnMge3N0cmluZ30gVGhlIHRyaW1tZWQgc3RyaW5nLlxuICAgKi9cbiAgZnVuY3Rpb24gdHJpbShzdHJpbmcpIHtcbiAgICByZXR1cm4gU3RyaW5nKHN0cmluZykucmVwbGFjZSgvXiArfCArJC9nLCAnJyk7XG4gIH1cblxuICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBwbGF0Zm9ybSBvYmplY3QuXG4gICAqXG4gICAqIEBtZW1iZXJPZiBwbGF0Zm9ybVxuICAgKiBAcGFyYW0ge09iamVjdHxzdHJpbmd9IFt1YT1uYXZpZ2F0b3IudXNlckFnZW50XSBUaGUgdXNlciBhZ2VudCBzdHJpbmcgb3JcbiAgICogIGNvbnRleHQgb2JqZWN0LlxuICAgKiBAcmV0dXJucyB7T2JqZWN0fSBBIHBsYXRmb3JtIG9iamVjdC5cbiAgICovXG4gIGZ1bmN0aW9uIHBhcnNlKHVhKSB7XG5cbiAgICAvKiogVGhlIGVudmlyb25tZW50IGNvbnRleHQgb2JqZWN0LiAqL1xuICAgIHZhciBjb250ZXh0ID0gcm9vdDtcblxuICAgIC8qKiBVc2VkIHRvIGZsYWcgd2hlbiBhIGN1c3RvbSBjb250ZXh0IGlzIHByb3ZpZGVkLiAqL1xuICAgIHZhciBpc0N1c3RvbUNvbnRleHQgPSB1YSAmJiB0eXBlb2YgdWEgPT0gJ29iamVjdCcgJiYgZ2V0Q2xhc3NPZih1YSkgIT0gJ1N0cmluZyc7XG5cbiAgICAvLyBKdWdnbGUgYXJndW1lbnRzLlxuICAgIGlmIChpc0N1c3RvbUNvbnRleHQpIHtcbiAgICAgIGNvbnRleHQgPSB1YTtcbiAgICAgIHVhID0gbnVsbDtcbiAgICB9XG5cbiAgICAvKiogQnJvd3NlciBuYXZpZ2F0b3Igb2JqZWN0LiAqL1xuICAgIHZhciBuYXYgPSBjb250ZXh0Lm5hdmlnYXRvciB8fCB7fTtcblxuICAgIC8qKiBCcm93c2VyIHVzZXIgYWdlbnQgc3RyaW5nLiAqL1xuICAgIHZhciB1c2VyQWdlbnQgPSBuYXYudXNlckFnZW50IHx8ICcnO1xuXG4gICAgdWEgfHwgKHVhID0gdXNlckFnZW50KTtcblxuICAgIC8qKiBVc2VkIHRvIGZsYWcgd2hlbiBgdGhpc0JpbmRpbmdgIGlzIHRoZSBbTW9kdWxlU2NvcGVdLiAqL1xuICAgIHZhciBpc01vZHVsZVNjb3BlID0gaXNDdXN0b21Db250ZXh0IHx8IHRoaXNCaW5kaW5nID09IG9sZFJvb3Q7XG5cbiAgICAvKiogVXNlZCB0byBkZXRlY3QgaWYgYnJvd3NlciBpcyBsaWtlIENocm9tZS4gKi9cbiAgICB2YXIgbGlrZUNocm9tZSA9IGlzQ3VzdG9tQ29udGV4dFxuICAgICAgPyAhIW5hdi5saWtlQ2hyb21lXG4gICAgICA6IC9cXGJDaHJvbWVcXGIvLnRlc3QodWEpICYmICEvaW50ZXJuYWx8XFxuL2kudGVzdCh0b1N0cmluZy50b1N0cmluZygpKTtcblxuICAgIC8qKiBJbnRlcm5hbCBgW1tDbGFzc11dYCB2YWx1ZSBzaG9ydGN1dHMuICovXG4gICAgdmFyIG9iamVjdENsYXNzID0gJ09iamVjdCcsXG4gICAgICAgIGFpclJ1bnRpbWVDbGFzcyA9IGlzQ3VzdG9tQ29udGV4dCA/IG9iamVjdENsYXNzIDogJ1NjcmlwdEJyaWRnaW5nUHJveHlPYmplY3QnLFxuICAgICAgICBlbnZpcm9DbGFzcyA9IGlzQ3VzdG9tQ29udGV4dCA/IG9iamVjdENsYXNzIDogJ0Vudmlyb25tZW50JyxcbiAgICAgICAgamF2YUNsYXNzID0gKGlzQ3VzdG9tQ29udGV4dCAmJiBjb250ZXh0LmphdmEpID8gJ0phdmFQYWNrYWdlJyA6IGdldENsYXNzT2YoY29udGV4dC5qYXZhKSxcbiAgICAgICAgcGhhbnRvbUNsYXNzID0gaXNDdXN0b21Db250ZXh0ID8gb2JqZWN0Q2xhc3MgOiAnUnVudGltZU9iamVjdCc7XG5cbiAgICAvKiogRGV0ZWN0IEphdmEgZW52aXJvbm1lbnRzLiAqL1xuICAgIHZhciBqYXZhID0gL1xcYkphdmEvLnRlc3QoamF2YUNsYXNzKSAmJiBjb250ZXh0LmphdmE7XG5cbiAgICAvKiogRGV0ZWN0IFJoaW5vLiAqL1xuICAgIHZhciByaGlubyA9IGphdmEgJiYgZ2V0Q2xhc3NPZihjb250ZXh0LmVudmlyb25tZW50KSA9PSBlbnZpcm9DbGFzcztcblxuICAgIC8qKiBBIGNoYXJhY3RlciB0byByZXByZXNlbnQgYWxwaGEuICovXG4gICAgdmFyIGFscGhhID0gamF2YSA/ICdhJyA6ICdcXHUwM2IxJztcblxuICAgIC8qKiBBIGNoYXJhY3RlciB0byByZXByZXNlbnQgYmV0YS4gKi9cbiAgICB2YXIgYmV0YSA9IGphdmEgPyAnYicgOiAnXFx1MDNiMic7XG5cbiAgICAvKiogQnJvd3NlciBkb2N1bWVudCBvYmplY3QuICovXG4gICAgdmFyIGRvYyA9IGNvbnRleHQuZG9jdW1lbnQgfHwge307XG5cbiAgICAvKipcbiAgICAgKiBEZXRlY3QgT3BlcmEgYnJvd3NlciAoUHJlc3RvLWJhc2VkKS5cbiAgICAgKiBodHRwOi8vd3d3Lmhvd3RvY3JlYXRlLmNvLnVrL29wZXJhU3R1ZmYvb3BlcmFPYmplY3QuaHRtbFxuICAgICAqIGh0dHA6Ly9kZXYub3BlcmEuY29tL2FydGljbGVzL3ZpZXcvb3BlcmEtbWluaS13ZWItY29udGVudC1hdXRob3JpbmctZ3VpZGVsaW5lcy8jb3BlcmFtaW5pXG4gICAgICovXG4gICAgdmFyIG9wZXJhID0gY29udGV4dC5vcGVyYW1pbmkgfHwgY29udGV4dC5vcGVyYTtcblxuICAgIC8qKiBPcGVyYSBgW1tDbGFzc11dYC4gKi9cbiAgICB2YXIgb3BlcmFDbGFzcyA9IHJlT3BlcmEudGVzdChvcGVyYUNsYXNzID0gKGlzQ3VzdG9tQ29udGV4dCAmJiBvcGVyYSkgPyBvcGVyYVsnW1tDbGFzc11dJ10gOiBnZXRDbGFzc09mKG9wZXJhKSlcbiAgICAgID8gb3BlcmFDbGFzc1xuICAgICAgOiAob3BlcmEgPSBudWxsKTtcblxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuICAgIC8qKiBUZW1wb3JhcnkgdmFyaWFibGUgdXNlZCBvdmVyIHRoZSBzY3JpcHQncyBsaWZldGltZS4gKi9cbiAgICB2YXIgZGF0YTtcblxuICAgIC8qKiBUaGUgQ1BVIGFyY2hpdGVjdHVyZS4gKi9cbiAgICB2YXIgYXJjaCA9IHVhO1xuXG4gICAgLyoqIFBsYXRmb3JtIGRlc2NyaXB0aW9uIGFycmF5LiAqL1xuICAgIHZhciBkZXNjcmlwdGlvbiA9IFtdO1xuXG4gICAgLyoqIFBsYXRmb3JtIGFscGhhL2JldGEgaW5kaWNhdG9yLiAqL1xuICAgIHZhciBwcmVyZWxlYXNlID0gbnVsbDtcblxuICAgIC8qKiBBIGZsYWcgdG8gaW5kaWNhdGUgdGhhdCBlbnZpcm9ubWVudCBmZWF0dXJlcyBzaG91bGQgYmUgdXNlZCB0byByZXNvbHZlIHRoZSBwbGF0Zm9ybS4gKi9cbiAgICB2YXIgdXNlRmVhdHVyZXMgPSB1YSA9PSB1c2VyQWdlbnQ7XG5cbiAgICAvKiogVGhlIGJyb3dzZXIvZW52aXJvbm1lbnQgdmVyc2lvbi4gKi9cbiAgICB2YXIgdmVyc2lvbiA9IHVzZUZlYXR1cmVzICYmIG9wZXJhICYmIHR5cGVvZiBvcGVyYS52ZXJzaW9uID09ICdmdW5jdGlvbicgJiYgb3BlcmEudmVyc2lvbigpO1xuXG4gICAgLyoqIEEgZmxhZyB0byBpbmRpY2F0ZSBpZiB0aGUgT1MgZW5kcyB3aXRoIFwiLyBWZXJzaW9uXCIgKi9cbiAgICB2YXIgaXNTcGVjaWFsQ2FzZWRPUztcblxuICAgIC8qIERldGVjdGFibGUgbGF5b3V0IGVuZ2luZXMgKG9yZGVyIGlzIGltcG9ydGFudCkuICovXG4gICAgdmFyIGxheW91dCA9IGdldExheW91dChbXG4gICAgICB7ICdsYWJlbCc6ICdFZGdlSFRNTCcsICdwYXR0ZXJuJzogJ0VkZ2UnIH0sXG4gICAgICAnVHJpZGVudCcsXG4gICAgICB7ICdsYWJlbCc6ICdXZWJLaXQnLCAncGF0dGVybic6ICdBcHBsZVdlYktpdCcgfSxcbiAgICAgICdpQ2FiJyxcbiAgICAgICdQcmVzdG8nLFxuICAgICAgJ05ldEZyb250JyxcbiAgICAgICdUYXNtYW4nLFxuICAgICAgJ0tIVE1MJyxcbiAgICAgICdHZWNrbydcbiAgICBdKTtcblxuICAgIC8qIERldGVjdGFibGUgYnJvd3NlciBuYW1lcyAob3JkZXIgaXMgaW1wb3J0YW50KS4gKi9cbiAgICB2YXIgbmFtZSA9IGdldE5hbWUoW1xuICAgICAgJ0Fkb2JlIEFJUicsXG4gICAgICAnQXJvcmEnLFxuICAgICAgJ0F2YW50IEJyb3dzZXInLFxuICAgICAgJ0JyZWFjaCcsXG4gICAgICAnQ2FtaW5vJyxcbiAgICAgICdFbGVjdHJvbicsXG4gICAgICAnRXBpcGhhbnknLFxuICAgICAgJ0Zlbm5lYycsXG4gICAgICAnRmxvY2snLFxuICAgICAgJ0dhbGVvbicsXG4gICAgICAnR3JlZW5Ccm93c2VyJyxcbiAgICAgICdpQ2FiJyxcbiAgICAgICdJY2V3ZWFzZWwnLFxuICAgICAgJ0stTWVsZW9uJyxcbiAgICAgICdLb25xdWVyb3InLFxuICAgICAgJ0x1bmFzY2FwZScsXG4gICAgICAnTWF4dGhvbicsXG4gICAgICB7ICdsYWJlbCc6ICdNaWNyb3NvZnQgRWRnZScsICdwYXR0ZXJuJzogJyg/OkVkZ2V8RWRnfEVkZ0F8RWRnaU9TKScgfSxcbiAgICAgICdNaWRvcmknLFxuICAgICAgJ05vb2sgQnJvd3NlcicsXG4gICAgICAnUGFsZU1vb24nLFxuICAgICAgJ1BoYW50b21KUycsXG4gICAgICAnUmF2ZW4nLFxuICAgICAgJ1Jla29ucScsXG4gICAgICAnUm9ja01lbHQnLFxuICAgICAgeyAnbGFiZWwnOiAnU2Ftc3VuZyBJbnRlcm5ldCcsICdwYXR0ZXJuJzogJ1NhbXN1bmdCcm93c2VyJyB9LFxuICAgICAgJ1NlYU1vbmtleScsXG4gICAgICB7ICdsYWJlbCc6ICdTaWxrJywgJ3BhdHRlcm4nOiAnKD86Q2xvdWQ5fFNpbGstQWNjZWxlcmF0ZWQpJyB9LFxuICAgICAgJ1NsZWlwbmlyJyxcbiAgICAgICdTbGltQnJvd3NlcicsXG4gICAgICB7ICdsYWJlbCc6ICdTUldhcmUgSXJvbicsICdwYXR0ZXJuJzogJ0lyb24nIH0sXG4gICAgICAnU3VucmlzZScsXG4gICAgICAnU3dpZnRmb3gnLFxuICAgICAgJ1ZpdmFsZGknLFxuICAgICAgJ1dhdGVyZm94JyxcbiAgICAgICdXZWJQb3NpdGl2ZScsXG4gICAgICB7ICdsYWJlbCc6ICdZYW5kZXggQnJvd3NlcicsICdwYXR0ZXJuJzogJ1lhQnJvd3NlcicgfSxcbiAgICAgIHsgJ2xhYmVsJzogJ1VDIEJyb3dzZXInLCAncGF0dGVybic6ICdVQ0Jyb3dzZXInIH0sXG4gICAgICAnT3BlcmEgTWluaScsXG4gICAgICB7ICdsYWJlbCc6ICdPcGVyYSBNaW5pJywgJ3BhdHRlcm4nOiAnT1BpT1MnIH0sXG4gICAgICAnT3BlcmEnLFxuICAgICAgeyAnbGFiZWwnOiAnT3BlcmEnLCAncGF0dGVybic6ICdPUFInIH0sXG4gICAgICAnQ2hyb21pdW0nLFxuICAgICAgJ0Nocm9tZScsXG4gICAgICB7ICdsYWJlbCc6ICdDaHJvbWUnLCAncGF0dGVybic6ICcoPzpIZWFkbGVzc0Nocm9tZSknIH0sXG4gICAgICB7ICdsYWJlbCc6ICdDaHJvbWUgTW9iaWxlJywgJ3BhdHRlcm4nOiAnKD86Q3JpT1N8Q3JNbyknIH0sXG4gICAgICB7ICdsYWJlbCc6ICdGaXJlZm94JywgJ3BhdHRlcm4nOiAnKD86RmlyZWZveHxNaW5lZmllbGQpJyB9LFxuICAgICAgeyAnbGFiZWwnOiAnRmlyZWZveCBmb3IgaU9TJywgJ3BhdHRlcm4nOiAnRnhpT1MnIH0sXG4gICAgICB7ICdsYWJlbCc6ICdJRScsICdwYXR0ZXJuJzogJ0lFTW9iaWxlJyB9LFxuICAgICAgeyAnbGFiZWwnOiAnSUUnLCAncGF0dGVybic6ICdNU0lFJyB9LFxuICAgICAgJ1NhZmFyaSdcbiAgICBdKTtcblxuICAgIC8qIERldGVjdGFibGUgcHJvZHVjdHMgKG9yZGVyIGlzIGltcG9ydGFudCkuICovXG4gICAgdmFyIHByb2R1Y3QgPSBnZXRQcm9kdWN0KFtcbiAgICAgIHsgJ2xhYmVsJzogJ0JsYWNrQmVycnknLCAncGF0dGVybic6ICdCQjEwJyB9LFxuICAgICAgJ0JsYWNrQmVycnknLFxuICAgICAgeyAnbGFiZWwnOiAnR2FsYXh5IFMnLCAncGF0dGVybic6ICdHVC1JOTAwMCcgfSxcbiAgICAgIHsgJ2xhYmVsJzogJ0dhbGF4eSBTMicsICdwYXR0ZXJuJzogJ0dULUk5MTAwJyB9LFxuICAgICAgeyAnbGFiZWwnOiAnR2FsYXh5IFMzJywgJ3BhdHRlcm4nOiAnR1QtSTkzMDAnIH0sXG4gICAgICB7ICdsYWJlbCc6ICdHYWxheHkgUzQnLCAncGF0dGVybic6ICdHVC1JOTUwMCcgfSxcbiAgICAgIHsgJ2xhYmVsJzogJ0dhbGF4eSBTNScsICdwYXR0ZXJuJzogJ1NNLUc5MDAnIH0sXG4gICAgICB7ICdsYWJlbCc6ICdHYWxheHkgUzYnLCAncGF0dGVybic6ICdTTS1HOTIwJyB9LFxuICAgICAgeyAnbGFiZWwnOiAnR2FsYXh5IFM2IEVkZ2UnLCAncGF0dGVybic6ICdTTS1HOTI1JyB9LFxuICAgICAgeyAnbGFiZWwnOiAnR2FsYXh5IFM3JywgJ3BhdHRlcm4nOiAnU00tRzkzMCcgfSxcbiAgICAgIHsgJ2xhYmVsJzogJ0dhbGF4eSBTNyBFZGdlJywgJ3BhdHRlcm4nOiAnU00tRzkzNScgfSxcbiAgICAgICdHb29nbGUgVFYnLFxuICAgICAgJ0x1bWlhJyxcbiAgICAgICdpUGFkJyxcbiAgICAgICdpUG9kJyxcbiAgICAgICdpUGhvbmUnLFxuICAgICAgJ0tpbmRsZScsXG4gICAgICB7ICdsYWJlbCc6ICdLaW5kbGUgRmlyZScsICdwYXR0ZXJuJzogJyg/OkNsb3VkOXxTaWxrLUFjY2VsZXJhdGVkKScgfSxcbiAgICAgICdOZXh1cycsXG4gICAgICAnTm9vaycsXG4gICAgICAnUGxheUJvb2snLFxuICAgICAgJ1BsYXlTdGF0aW9uIFZpdGEnLFxuICAgICAgJ1BsYXlTdGF0aW9uJyxcbiAgICAgICdUb3VjaFBhZCcsXG4gICAgICAnVHJhbnNmb3JtZXInLFxuICAgICAgeyAnbGFiZWwnOiAnV2lpIFUnLCAncGF0dGVybic6ICdXaWlVJyB9LFxuICAgICAgJ1dpaScsXG4gICAgICAnWGJveCBPbmUnLFxuICAgICAgeyAnbGFiZWwnOiAnWGJveCAzNjAnLCAncGF0dGVybic6ICdYYm94JyB9LFxuICAgICAgJ1hvb20nXG4gICAgXSk7XG5cbiAgICAvKiBEZXRlY3RhYmxlIG1hbnVmYWN0dXJlcnMuICovXG4gICAgdmFyIG1hbnVmYWN0dXJlciA9IGdldE1hbnVmYWN0dXJlcih7XG4gICAgICAnQXBwbGUnOiB7ICdpUGFkJzogMSwgJ2lQaG9uZSc6IDEsICdpUG9kJzogMSB9LFxuICAgICAgJ0FsY2F0ZWwnOiB7fSxcbiAgICAgICdBcmNob3MnOiB7fSxcbiAgICAgICdBbWF6b24nOiB7ICdLaW5kbGUnOiAxLCAnS2luZGxlIEZpcmUnOiAxIH0sXG4gICAgICAnQXN1cyc6IHsgJ1RyYW5zZm9ybWVyJzogMSB9LFxuICAgICAgJ0Jhcm5lcyAmIE5vYmxlJzogeyAnTm9vayc6IDEgfSxcbiAgICAgICdCbGFja0JlcnJ5JzogeyAnUGxheUJvb2snOiAxIH0sXG4gICAgICAnR29vZ2xlJzogeyAnR29vZ2xlIFRWJzogMSwgJ05leHVzJzogMSB9LFxuICAgICAgJ0hQJzogeyAnVG91Y2hQYWQnOiAxIH0sXG4gICAgICAnSFRDJzoge30sXG4gICAgICAnSHVhd2VpJzoge30sXG4gICAgICAnTGVub3ZvJzoge30sXG4gICAgICAnTEcnOiB7fSxcbiAgICAgICdNaWNyb3NvZnQnOiB7ICdYYm94JzogMSwgJ1hib3ggT25lJzogMSB9LFxuICAgICAgJ01vdG9yb2xhJzogeyAnWG9vbSc6IDEgfSxcbiAgICAgICdOaW50ZW5kbyc6IHsgJ1dpaSBVJzogMSwgICdXaWknOiAxIH0sXG4gICAgICAnTm9raWEnOiB7ICdMdW1pYSc6IDEgfSxcbiAgICAgICdPcHBvJzoge30sXG4gICAgICAnU2Ftc3VuZyc6IHsgJ0dhbGF4eSBTJzogMSwgJ0dhbGF4eSBTMic6IDEsICdHYWxheHkgUzMnOiAxLCAnR2FsYXh5IFM0JzogMSB9LFxuICAgICAgJ1NvbnknOiB7ICdQbGF5U3RhdGlvbic6IDEsICdQbGF5U3RhdGlvbiBWaXRhJzogMSB9LFxuICAgICAgJ1hpYW9taSc6IHsgJ01pJzogMSwgJ1JlZG1pJzogMSB9XG4gICAgfSk7XG5cbiAgICAvKiBEZXRlY3RhYmxlIG9wZXJhdGluZyBzeXN0ZW1zIChvcmRlciBpcyBpbXBvcnRhbnQpLiAqL1xuICAgIHZhciBvcyA9IGdldE9TKFtcbiAgICAgICdXaW5kb3dzIFBob25lJyxcbiAgICAgICdLYWlPUycsXG4gICAgICAnQW5kcm9pZCcsXG4gICAgICAnQ2VudE9TJyxcbiAgICAgIHsgJ2xhYmVsJzogJ0Nocm9tZSBPUycsICdwYXR0ZXJuJzogJ0NyT1MnIH0sXG4gICAgICAnRGViaWFuJyxcbiAgICAgIHsgJ2xhYmVsJzogJ0RyYWdvbkZseSBCU0QnLCAncGF0dGVybic6ICdEcmFnb25GbHknIH0sXG4gICAgICAnRmVkb3JhJyxcbiAgICAgICdGcmVlQlNEJyxcbiAgICAgICdHZW50b28nLFxuICAgICAgJ0hhaWt1JyxcbiAgICAgICdLdWJ1bnR1JyxcbiAgICAgICdMaW51eCBNaW50JyxcbiAgICAgICdPcGVuQlNEJyxcbiAgICAgICdSZWQgSGF0JyxcbiAgICAgICdTdVNFJyxcbiAgICAgICdVYnVudHUnLFxuICAgICAgJ1h1YnVudHUnLFxuICAgICAgJ0N5Z3dpbicsXG4gICAgICAnU3ltYmlhbiBPUycsXG4gICAgICAnaHB3T1MnLFxuICAgICAgJ3dlYk9TICcsXG4gICAgICAnd2ViT1MnLFxuICAgICAgJ1RhYmxldCBPUycsXG4gICAgICAnVGl6ZW4nLFxuICAgICAgJ0xpbnV4JyxcbiAgICAgICdNYWMgT1MgWCcsXG4gICAgICAnTWFjaW50b3NoJyxcbiAgICAgICdNYWMnLFxuICAgICAgJ1dpbmRvd3MgOTg7JyxcbiAgICAgICdXaW5kb3dzICdcbiAgICBdKTtcblxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuICAgIC8qKlxuICAgICAqIFBpY2tzIHRoZSBsYXlvdXQgZW5naW5lIGZyb20gYW4gYXJyYXkgb2YgZ3Vlc3Nlcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gZ3Vlc3NlcyBBbiBhcnJheSBvZiBndWVzc2VzLlxuICAgICAqIEByZXR1cm5zIHtudWxsfHN0cmluZ30gVGhlIGRldGVjdGVkIGxheW91dCBlbmdpbmUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZ2V0TGF5b3V0KGd1ZXNzZXMpIHtcbiAgICAgIHJldHVybiByZWR1Y2UoZ3Vlc3NlcywgZnVuY3Rpb24ocmVzdWx0LCBndWVzcykge1xuICAgICAgICByZXR1cm4gcmVzdWx0IHx8IFJlZ0V4cCgnXFxcXGInICsgKFxuICAgICAgICAgIGd1ZXNzLnBhdHRlcm4gfHwgcXVhbGlmeShndWVzcylcbiAgICAgICAgKSArICdcXFxcYicsICdpJykuZXhlYyh1YSkgJiYgKGd1ZXNzLmxhYmVsIHx8IGd1ZXNzKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBpY2tzIHRoZSBtYW51ZmFjdHVyZXIgZnJvbSBhbiBhcnJheSBvZiBndWVzc2VzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBndWVzc2VzIEFuIG9iamVjdCBvZiBndWVzc2VzLlxuICAgICAqIEByZXR1cm5zIHtudWxsfHN0cmluZ30gVGhlIGRldGVjdGVkIG1hbnVmYWN0dXJlci5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBnZXRNYW51ZmFjdHVyZXIoZ3Vlc3Nlcykge1xuICAgICAgcmV0dXJuIHJlZHVjZShndWVzc2VzLCBmdW5jdGlvbihyZXN1bHQsIHZhbHVlLCBrZXkpIHtcbiAgICAgICAgLy8gTG9va3VwIHRoZSBtYW51ZmFjdHVyZXIgYnkgcHJvZHVjdCBvciBzY2FuIHRoZSBVQSBmb3IgdGhlIG1hbnVmYWN0dXJlci5cbiAgICAgICAgcmV0dXJuIHJlc3VsdCB8fCAoXG4gICAgICAgICAgdmFsdWVbcHJvZHVjdF0gfHxcbiAgICAgICAgICB2YWx1ZVsvXlthLXpdKyg/OiArW2Etel0rXFxiKSovaS5leGVjKHByb2R1Y3QpXSB8fFxuICAgICAgICAgIFJlZ0V4cCgnXFxcXGInICsgcXVhbGlmeShrZXkpICsgJyg/OlxcXFxifFxcXFx3KlxcXFxkKScsICdpJykuZXhlYyh1YSlcbiAgICAgICAgKSAmJiBrZXk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQaWNrcyB0aGUgYnJvd3NlciBuYW1lIGZyb20gYW4gYXJyYXkgb2YgZ3Vlc3Nlcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gZ3Vlc3NlcyBBbiBhcnJheSBvZiBndWVzc2VzLlxuICAgICAqIEByZXR1cm5zIHtudWxsfHN0cmluZ30gVGhlIGRldGVjdGVkIGJyb3dzZXIgbmFtZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBnZXROYW1lKGd1ZXNzZXMpIHtcbiAgICAgIHJldHVybiByZWR1Y2UoZ3Vlc3NlcywgZnVuY3Rpb24ocmVzdWx0LCBndWVzcykge1xuICAgICAgICByZXR1cm4gcmVzdWx0IHx8IFJlZ0V4cCgnXFxcXGInICsgKFxuICAgICAgICAgIGd1ZXNzLnBhdHRlcm4gfHwgcXVhbGlmeShndWVzcylcbiAgICAgICAgKSArICdcXFxcYicsICdpJykuZXhlYyh1YSkgJiYgKGd1ZXNzLmxhYmVsIHx8IGd1ZXNzKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBpY2tzIHRoZSBPUyBuYW1lIGZyb20gYW4gYXJyYXkgb2YgZ3Vlc3Nlcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gZ3Vlc3NlcyBBbiBhcnJheSBvZiBndWVzc2VzLlxuICAgICAqIEByZXR1cm5zIHtudWxsfHN0cmluZ30gVGhlIGRldGVjdGVkIE9TIG5hbWUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZ2V0T1MoZ3Vlc3Nlcykge1xuICAgICAgcmV0dXJuIHJlZHVjZShndWVzc2VzLCBmdW5jdGlvbihyZXN1bHQsIGd1ZXNzKSB7XG4gICAgICAgIHZhciBwYXR0ZXJuID0gZ3Vlc3MucGF0dGVybiB8fCBxdWFsaWZ5KGd1ZXNzKTtcbiAgICAgICAgaWYgKCFyZXN1bHQgJiYgKHJlc3VsdCA9XG4gICAgICAgICAgICAgIFJlZ0V4cCgnXFxcXGInICsgcGF0dGVybiArICcoPzovW1xcXFxkLl0rfFsgXFxcXHcuXSopJywgJ2knKS5leGVjKHVhKVxuICAgICAgICAgICAgKSkge1xuICAgICAgICAgIHJlc3VsdCA9IGNsZWFudXBPUyhyZXN1bHQsIHBhdHRlcm4sIGd1ZXNzLmxhYmVsIHx8IGd1ZXNzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGlja3MgdGhlIHByb2R1Y3QgbmFtZSBmcm9tIGFuIGFycmF5IG9mIGd1ZXNzZXMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGd1ZXNzZXMgQW4gYXJyYXkgb2YgZ3Vlc3Nlcy5cbiAgICAgKiBAcmV0dXJucyB7bnVsbHxzdHJpbmd9IFRoZSBkZXRlY3RlZCBwcm9kdWN0IG5hbWUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZ2V0UHJvZHVjdChndWVzc2VzKSB7XG4gICAgICByZXR1cm4gcmVkdWNlKGd1ZXNzZXMsIGZ1bmN0aW9uKHJlc3VsdCwgZ3Vlc3MpIHtcbiAgICAgICAgdmFyIHBhdHRlcm4gPSBndWVzcy5wYXR0ZXJuIHx8IHF1YWxpZnkoZ3Vlc3MpO1xuICAgICAgICBpZiAoIXJlc3VsdCAmJiAocmVzdWx0ID1cbiAgICAgICAgICAgICAgUmVnRXhwKCdcXFxcYicgKyBwYXR0ZXJuICsgJyAqXFxcXGQrWy5cXFxcd19dKicsICdpJykuZXhlYyh1YSkgfHxcbiAgICAgICAgICAgICAgUmVnRXhwKCdcXFxcYicgKyBwYXR0ZXJuICsgJyAqXFxcXHcrLVtcXFxcd10qJywgJ2knKS5leGVjKHVhKSB8fFxuICAgICAgICAgICAgICBSZWdFeHAoJ1xcXFxiJyArIHBhdHRlcm4gKyAnKD86OyAqKD86W2Etel0rW18tXSk/W2Etel0rXFxcXGQrfFteICgpOy1dKiknLCAnaScpLmV4ZWModWEpXG4gICAgICAgICAgICApKSB7XG4gICAgICAgICAgLy8gU3BsaXQgYnkgZm9yd2FyZCBzbGFzaCBhbmQgYXBwZW5kIHByb2R1Y3QgdmVyc2lvbiBpZiBuZWVkZWQuXG4gICAgICAgICAgaWYgKChyZXN1bHQgPSBTdHJpbmcoKGd1ZXNzLmxhYmVsICYmICFSZWdFeHAocGF0dGVybiwgJ2knKS50ZXN0KGd1ZXNzLmxhYmVsKSkgPyBndWVzcy5sYWJlbCA6IHJlc3VsdCkuc3BsaXQoJy8nKSlbMV0gJiYgIS9bXFxkLl0rLy50ZXN0KHJlc3VsdFswXSkpIHtcbiAgICAgICAgICAgIHJlc3VsdFswXSArPSAnICcgKyByZXN1bHRbMV07XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIENvcnJlY3QgY2hhcmFjdGVyIGNhc2UgYW5kIGNsZWFudXAgc3RyaW5nLlxuICAgICAgICAgIGd1ZXNzID0gZ3Vlc3MubGFiZWwgfHwgZ3Vlc3M7XG4gICAgICAgICAgcmVzdWx0ID0gZm9ybWF0KHJlc3VsdFswXVxuICAgICAgICAgICAgLnJlcGxhY2UoUmVnRXhwKHBhdHRlcm4sICdpJyksIGd1ZXNzKVxuICAgICAgICAgICAgLnJlcGxhY2UoUmVnRXhwKCc7ICooPzonICsgZ3Vlc3MgKyAnW18tXSk/JywgJ2knKSwgJyAnKVxuICAgICAgICAgICAgLnJlcGxhY2UoUmVnRXhwKCcoJyArIGd1ZXNzICsgJylbLV8uXT8oXFxcXHcpJywgJ2knKSwgJyQxICQyJykpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXNvbHZlcyB0aGUgdmVyc2lvbiB1c2luZyBhbiBhcnJheSBvZiBVQSBwYXR0ZXJucy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gcGF0dGVybnMgQW4gYXJyYXkgb2YgVUEgcGF0dGVybnMuXG4gICAgICogQHJldHVybnMge251bGx8c3RyaW5nfSBUaGUgZGV0ZWN0ZWQgdmVyc2lvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBnZXRWZXJzaW9uKHBhdHRlcm5zKSB7XG4gICAgICByZXR1cm4gcmVkdWNlKHBhdHRlcm5zLCBmdW5jdGlvbihyZXN1bHQsIHBhdHRlcm4pIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdCB8fCAoUmVnRXhwKHBhdHRlcm4gK1xuICAgICAgICAgICcoPzotW1xcXFxkLl0rL3woPzogZm9yIFtcXFxcdy1dKyk/WyAvLV0pKFtcXFxcZC5dK1teICgpOy9fLV0qKScsICdpJykuZXhlYyh1YSkgfHwgMClbMV0gfHwgbnVsbDtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYHBsYXRmb3JtLmRlc2NyaXB0aW9uYCB3aGVuIHRoZSBwbGF0Zm9ybSBvYmplY3QgaXMgY29lcmNlZCB0byBhIHN0cmluZy5cbiAgICAgKlxuICAgICAqIEBuYW1lIHRvU3RyaW5nXG4gICAgICogQG1lbWJlck9mIHBsYXRmb3JtXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyBgcGxhdGZvcm0uZGVzY3JpcHRpb25gIGlmIGF2YWlsYWJsZSwgZWxzZSBhbiBlbXB0eSBzdHJpbmcuXG4gICAgICovXG4gICAgZnVuY3Rpb24gdG9TdHJpbmdQbGF0Zm9ybSgpIHtcbiAgICAgIHJldHVybiB0aGlzLmRlc2NyaXB0aW9uIHx8ICcnO1xuICAgIH1cblxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuICAgIC8vIENvbnZlcnQgbGF5b3V0IHRvIGFuIGFycmF5IHNvIHdlIGNhbiBhZGQgZXh0cmEgZGV0YWlscy5cbiAgICBsYXlvdXQgJiYgKGxheW91dCA9IFtsYXlvdXRdKTtcblxuICAgIC8vIERldGVjdCBBbmRyb2lkIHByb2R1Y3RzLlxuICAgIC8vIEJyb3dzZXJzIG9uIEFuZHJvaWQgZGV2aWNlcyB0eXBpY2FsbHkgcHJvdmlkZSB0aGVpciBwcm9kdWN0IElEUyBhZnRlciBcIkFuZHJvaWQ7XCJcbiAgICAvLyB1cCB0byBcIkJ1aWxkXCIgb3IgXCIpIEFwcGxlV2ViS2l0XCIuXG4gICAgLy8gRXhhbXBsZTpcbiAgICAvLyBcIk1vemlsbGEvNS4wIChMaW51eDsgQW5kcm9pZCA4LjEuMDsgTW90byBHICg1KSBQbHVzKSBBcHBsZVdlYktpdC81MzcuMzZcbiAgICAvLyAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS83MC4wLjM1MzguODAgTW9iaWxlIFNhZmFyaS81MzcuMzZcIlxuICAgIGlmICgvXFxiQW5kcm9pZFxcYi8udGVzdChvcykgJiYgIXByb2R1Y3QgJiZcbiAgICAgICAgKGRhdGEgPSAvXFxiQW5kcm9pZFteO10qOyguKj8pKD86QnVpbGR8XFwpIEFwcGxlV2ViS2l0KVxcYi9pLmV4ZWModWEpKSkge1xuICAgICAgcHJvZHVjdCA9IHRyaW0oZGF0YVsxXSlcbiAgICAgICAgLy8gUmVwbGFjZSBhbnkgbGFuZ3VhZ2UgY29kZXMgKGVnLiBcImVuLVVTXCIpLlxuICAgICAgICAucmVwbGFjZSgvXlthLXpdezJ9LVthLXpdezJ9O1xccyovaSwgJycpXG4gICAgICAgIHx8IG51bGw7XG4gICAgfVxuICAgIC8vIERldGVjdCBwcm9kdWN0IG5hbWVzIHRoYXQgY29udGFpbiB0aGVpciBtYW51ZmFjdHVyZXIncyBuYW1lLlxuICAgIGlmIChtYW51ZmFjdHVyZXIgJiYgIXByb2R1Y3QpIHtcbiAgICAgIHByb2R1Y3QgPSBnZXRQcm9kdWN0KFttYW51ZmFjdHVyZXJdKTtcbiAgICB9IGVsc2UgaWYgKG1hbnVmYWN0dXJlciAmJiBwcm9kdWN0KSB7XG4gICAgICBwcm9kdWN0ID0gcHJvZHVjdFxuICAgICAgICAucmVwbGFjZShSZWdFeHAoJ14oJyArIHF1YWxpZnkobWFudWZhY3R1cmVyKSArICcpWy1fLlxcXFxzXScsICdpJyksIG1hbnVmYWN0dXJlciArICcgJylcbiAgICAgICAgLnJlcGxhY2UoUmVnRXhwKCdeKCcgKyBxdWFsaWZ5KG1hbnVmYWN0dXJlcikgKyAnKVstXy5dPyhcXFxcdyknLCAnaScpLCBtYW51ZmFjdHVyZXIgKyAnICQyJyk7XG4gICAgfVxuICAgIC8vIENsZWFuIHVwIEdvb2dsZSBUVi5cbiAgICBpZiAoKGRhdGEgPSAvXFxiR29vZ2xlIFRWXFxiLy5leGVjKHByb2R1Y3QpKSkge1xuICAgICAgcHJvZHVjdCA9IGRhdGFbMF07XG4gICAgfVxuICAgIC8vIERldGVjdCBzaW11bGF0b3JzLlxuICAgIGlmICgvXFxiU2ltdWxhdG9yXFxiL2kudGVzdCh1YSkpIHtcbiAgICAgIHByb2R1Y3QgPSAocHJvZHVjdCA/IHByb2R1Y3QgKyAnICcgOiAnJykgKyAnU2ltdWxhdG9yJztcbiAgICB9XG4gICAgLy8gRGV0ZWN0IE9wZXJhIE1pbmkgOCsgcnVubmluZyBpbiBUdXJiby9VbmNvbXByZXNzZWQgbW9kZSBvbiBpT1MuXG4gICAgaWYgKG5hbWUgPT0gJ09wZXJhIE1pbmknICYmIC9cXGJPUGlPU1xcYi8udGVzdCh1YSkpIHtcbiAgICAgIGRlc2NyaXB0aW9uLnB1c2goJ3J1bm5pbmcgaW4gVHVyYm8vVW5jb21wcmVzc2VkIG1vZGUnKTtcbiAgICB9XG4gICAgLy8gRGV0ZWN0IElFIE1vYmlsZSAxMS5cbiAgICBpZiAobmFtZSA9PSAnSUUnICYmIC9cXGJsaWtlIGlQaG9uZSBPU1xcYi8udGVzdCh1YSkpIHtcbiAgICAgIGRhdGEgPSBwYXJzZSh1YS5yZXBsYWNlKC9saWtlIGlQaG9uZSBPUy8sICcnKSk7XG4gICAgICBtYW51ZmFjdHVyZXIgPSBkYXRhLm1hbnVmYWN0dXJlcjtcbiAgICAgIHByb2R1Y3QgPSBkYXRhLnByb2R1Y3Q7XG4gICAgfVxuICAgIC8vIERldGVjdCBpT1MuXG4gICAgZWxzZSBpZiAoL15pUC8udGVzdChwcm9kdWN0KSkge1xuICAgICAgbmFtZSB8fCAobmFtZSA9ICdTYWZhcmknKTtcbiAgICAgIG9zID0gJ2lPUycgKyAoKGRhdGEgPSAvIE9TIChbXFxkX10rKS9pLmV4ZWModWEpKVxuICAgICAgICA/ICcgJyArIGRhdGFbMV0ucmVwbGFjZSgvXy9nLCAnLicpXG4gICAgICAgIDogJycpO1xuICAgIH1cbiAgICAvLyBEZXRlY3QgS3VidW50dS5cbiAgICBlbHNlIGlmIChuYW1lID09ICdLb25xdWVyb3InICYmIC9eTGludXhcXGIvaS50ZXN0KG9zKSkge1xuICAgICAgb3MgPSAnS3VidW50dSc7XG4gICAgfVxuICAgIC8vIERldGVjdCBBbmRyb2lkIGJyb3dzZXJzLlxuICAgIGVsc2UgaWYgKChtYW51ZmFjdHVyZXIgJiYgbWFudWZhY3R1cmVyICE9ICdHb29nbGUnICYmXG4gICAgICAgICgoL0Nocm9tZS8udGVzdChuYW1lKSAmJiAhL1xcYk1vYmlsZSBTYWZhcmlcXGIvaS50ZXN0KHVhKSkgfHwgL1xcYlZpdGFcXGIvLnRlc3QocHJvZHVjdCkpKSB8fFxuICAgICAgICAoL1xcYkFuZHJvaWRcXGIvLnRlc3Qob3MpICYmIC9eQ2hyb21lLy50ZXN0KG5hbWUpICYmIC9cXGJWZXJzaW9uXFwvL2kudGVzdCh1YSkpKSB7XG4gICAgICBuYW1lID0gJ0FuZHJvaWQgQnJvd3Nlcic7XG4gICAgICBvcyA9IC9cXGJBbmRyb2lkXFxiLy50ZXN0KG9zKSA/IG9zIDogJ0FuZHJvaWQnO1xuICAgIH1cbiAgICAvLyBEZXRlY3QgU2lsayBkZXNrdG9wL2FjY2VsZXJhdGVkIG1vZGVzLlxuICAgIGVsc2UgaWYgKG5hbWUgPT0gJ1NpbGsnKSB7XG4gICAgICBpZiAoIS9cXGJNb2JpL2kudGVzdCh1YSkpIHtcbiAgICAgICAgb3MgPSAnQW5kcm9pZCc7XG4gICAgICAgIGRlc2NyaXB0aW9uLnVuc2hpZnQoJ2Rlc2t0b3AgbW9kZScpO1xuICAgICAgfVxuICAgICAgaWYgKC9BY2NlbGVyYXRlZCAqPSAqdHJ1ZS9pLnRlc3QodWEpKSB7XG4gICAgICAgIGRlc2NyaXB0aW9uLnVuc2hpZnQoJ2FjY2VsZXJhdGVkJyk7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIERldGVjdCBVQyBCcm93c2VyIHNwZWVkIG1vZGUuXG4gICAgZWxzZSBpZiAobmFtZSA9PSAnVUMgQnJvd3NlcicgJiYgL1xcYlVDV0VCXFxiLy50ZXN0KHVhKSkge1xuICAgICAgZGVzY3JpcHRpb24ucHVzaCgnc3BlZWQgbW9kZScpO1xuICAgIH1cbiAgICAvLyBEZXRlY3QgUGFsZU1vb24gaWRlbnRpZnlpbmcgYXMgRmlyZWZveC5cbiAgICBlbHNlIGlmIChuYW1lID09ICdQYWxlTW9vbicgJiYgKGRhdGEgPSAvXFxiRmlyZWZveFxcLyhbXFxkLl0rKVxcYi8uZXhlYyh1YSkpKSB7XG4gICAgICBkZXNjcmlwdGlvbi5wdXNoKCdpZGVudGlmeWluZyBhcyBGaXJlZm94ICcgKyBkYXRhWzFdKTtcbiAgICB9XG4gICAgLy8gRGV0ZWN0IEZpcmVmb3ggT1MgYW5kIHByb2R1Y3RzIHJ1bm5pbmcgRmlyZWZveC5cbiAgICBlbHNlIGlmIChuYW1lID09ICdGaXJlZm94JyAmJiAoZGF0YSA9IC9cXGIoTW9iaWxlfFRhYmxldHxUVilcXGIvaS5leGVjKHVhKSkpIHtcbiAgICAgIG9zIHx8IChvcyA9ICdGaXJlZm94IE9TJyk7XG4gICAgICBwcm9kdWN0IHx8IChwcm9kdWN0ID0gZGF0YVsxXSk7XG4gICAgfVxuICAgIC8vIERldGVjdCBmYWxzZSBwb3NpdGl2ZXMgZm9yIEZpcmVmb3gvU2FmYXJpLlxuICAgIGVsc2UgaWYgKCFuYW1lIHx8IChkYXRhID0gIS9cXGJNaW5lZmllbGRcXGIvaS50ZXN0KHVhKSAmJiAvXFxiKD86RmlyZWZveHxTYWZhcmkpXFxiLy5leGVjKG5hbWUpKSkge1xuICAgICAgLy8gRXNjYXBlIHRoZSBgL2AgZm9yIEZpcmVmb3ggMS5cbiAgICAgIGlmIChuYW1lICYmICFwcm9kdWN0ICYmIC9bXFwvLF18XlteKF0rP1xcKS8udGVzdCh1YS5zbGljZSh1YS5pbmRleE9mKGRhdGEgKyAnLycpICsgOCkpKSB7XG4gICAgICAgIC8vIENsZWFyIG5hbWUgb2YgZmFsc2UgcG9zaXRpdmVzLlxuICAgICAgICBuYW1lID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIC8vIFJlYXNzaWduIGEgZ2VuZXJpYyBuYW1lLlxuICAgICAgaWYgKChkYXRhID0gcHJvZHVjdCB8fCBtYW51ZmFjdHVyZXIgfHwgb3MpICYmXG4gICAgICAgICAgKHByb2R1Y3QgfHwgbWFudWZhY3R1cmVyIHx8IC9cXGIoPzpBbmRyb2lkfFN5bWJpYW4gT1N8VGFibGV0IE9TfHdlYk9TKVxcYi8udGVzdChvcykpKSB7XG4gICAgICAgIG5hbWUgPSAvW2Etel0rKD86IEhhdCk/L2kuZXhlYygvXFxiQW5kcm9pZFxcYi8udGVzdChvcykgPyBvcyA6IGRhdGEpICsgJyBCcm93c2VyJztcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gQWRkIENocm9tZSB2ZXJzaW9uIHRvIGRlc2NyaXB0aW9uIGZvciBFbGVjdHJvbi5cbiAgICBlbHNlIGlmIChuYW1lID09ICdFbGVjdHJvbicgJiYgKGRhdGEgPSAoL1xcYkNocm9tZVxcLyhbXFxkLl0rKVxcYi8uZXhlYyh1YSkgfHwgMClbMV0pKSB7XG4gICAgICBkZXNjcmlwdGlvbi5wdXNoKCdDaHJvbWl1bSAnICsgZGF0YSk7XG4gICAgfVxuICAgIC8vIERldGVjdCBub24tT3BlcmEgKFByZXN0by1iYXNlZCkgdmVyc2lvbnMgKG9yZGVyIGlzIGltcG9ydGFudCkuXG4gICAgaWYgKCF2ZXJzaW9uKSB7XG4gICAgICB2ZXJzaW9uID0gZ2V0VmVyc2lvbihbXG4gICAgICAgICcoPzpDbG91ZDl8Q3JpT1N8Q3JNb3xFZGdlfEVkZ3xFZGdBfEVkZ2lPU3xGeGlPU3xIZWFkbGVzc0Nocm9tZXxJRU1vYmlsZXxJcm9ufE9wZXJhID9NaW5pfE9QaU9TfE9QUnxSYXZlbnxTYW1zdW5nQnJvd3NlcnxTaWxrKD8hL1tcXFxcZC5dKyQpfFVDQnJvd3NlcnxZYUJyb3dzZXIpJyxcbiAgICAgICAgJ1ZlcnNpb24nLFxuICAgICAgICBxdWFsaWZ5KG5hbWUpLFxuICAgICAgICAnKD86RmlyZWZveHxNaW5lZmllbGR8TmV0RnJvbnQpJ1xuICAgICAgXSk7XG4gICAgfVxuICAgIC8vIERldGVjdCBzdHViYm9ybiBsYXlvdXQgZW5naW5lcy5cbiAgICBpZiAoKGRhdGEgPVxuICAgICAgICAgIGxheW91dCA9PSAnaUNhYicgJiYgcGFyc2VGbG9hdCh2ZXJzaW9uKSA+IDMgJiYgJ1dlYktpdCcgfHxcbiAgICAgICAgICAvXFxiT3BlcmFcXGIvLnRlc3QobmFtZSkgJiYgKC9cXGJPUFJcXGIvLnRlc3QodWEpID8gJ0JsaW5rJyA6ICdQcmVzdG8nKSB8fFxuICAgICAgICAgIC9cXGIoPzpNaWRvcml8Tm9va3xTYWZhcmkpXFxiL2kudGVzdCh1YSkgJiYgIS9eKD86VHJpZGVudHxFZGdlSFRNTCkkLy50ZXN0KGxheW91dCkgJiYgJ1dlYktpdCcgfHxcbiAgICAgICAgICAhbGF5b3V0ICYmIC9cXGJNU0lFXFxiL2kudGVzdCh1YSkgJiYgKG9zID09ICdNYWMgT1MnID8gJ1Rhc21hbicgOiAnVHJpZGVudCcpIHx8XG4gICAgICAgICAgbGF5b3V0ID09ICdXZWJLaXQnICYmIC9cXGJQbGF5U3RhdGlvblxcYig/ISBWaXRhXFxiKS9pLnRlc3QobmFtZSkgJiYgJ05ldEZyb250J1xuICAgICAgICApKSB7XG4gICAgICBsYXlvdXQgPSBbZGF0YV07XG4gICAgfVxuICAgIC8vIERldGVjdCBXaW5kb3dzIFBob25lIDcgZGVza3RvcCBtb2RlLlxuICAgIGlmIChuYW1lID09ICdJRScgJiYgKGRhdGEgPSAoLzsgKig/OlhCTFdQfFp1bmVXUCkoXFxkKykvaS5leGVjKHVhKSB8fCAwKVsxXSkpIHtcbiAgICAgIG5hbWUgKz0gJyBNb2JpbGUnO1xuICAgICAgb3MgPSAnV2luZG93cyBQaG9uZSAnICsgKC9cXCskLy50ZXN0KGRhdGEpID8gZGF0YSA6IGRhdGEgKyAnLngnKTtcbiAgICAgIGRlc2NyaXB0aW9uLnVuc2hpZnQoJ2Rlc2t0b3AgbW9kZScpO1xuICAgIH1cbiAgICAvLyBEZXRlY3QgV2luZG93cyBQaG9uZSA4LnggZGVza3RvcCBtb2RlLlxuICAgIGVsc2UgaWYgKC9cXGJXUERlc2t0b3BcXGIvaS50ZXN0KHVhKSkge1xuICAgICAgbmFtZSA9ICdJRSBNb2JpbGUnO1xuICAgICAgb3MgPSAnV2luZG93cyBQaG9uZSA4LngnO1xuICAgICAgZGVzY3JpcHRpb24udW5zaGlmdCgnZGVza3RvcCBtb2RlJyk7XG4gICAgICB2ZXJzaW9uIHx8ICh2ZXJzaW9uID0gKC9cXGJydjooW1xcZC5dKykvLmV4ZWModWEpIHx8IDApWzFdKTtcbiAgICB9XG4gICAgLy8gRGV0ZWN0IElFIDExIGlkZW50aWZ5aW5nIGFzIG90aGVyIGJyb3dzZXJzLlxuICAgIGVsc2UgaWYgKG5hbWUgIT0gJ0lFJyAmJiBsYXlvdXQgPT0gJ1RyaWRlbnQnICYmIChkYXRhID0gL1xcYnJ2OihbXFxkLl0rKS8uZXhlYyh1YSkpKSB7XG4gICAgICBpZiAobmFtZSkge1xuICAgICAgICBkZXNjcmlwdGlvbi5wdXNoKCdpZGVudGlmeWluZyBhcyAnICsgbmFtZSArICh2ZXJzaW9uID8gJyAnICsgdmVyc2lvbiA6ICcnKSk7XG4gICAgICB9XG4gICAgICBuYW1lID0gJ0lFJztcbiAgICAgIHZlcnNpb24gPSBkYXRhWzFdO1xuICAgIH1cbiAgICAvLyBMZXZlcmFnZSBlbnZpcm9ubWVudCBmZWF0dXJlcy5cbiAgICBpZiAodXNlRmVhdHVyZXMpIHtcbiAgICAgIC8vIERldGVjdCBzZXJ2ZXItc2lkZSBlbnZpcm9ubWVudHMuXG4gICAgICAvLyBSaGlubyBoYXMgYSBnbG9iYWwgZnVuY3Rpb24gd2hpbGUgb3RoZXJzIGhhdmUgYSBnbG9iYWwgb2JqZWN0LlxuICAgICAgaWYgKGlzSG9zdFR5cGUoY29udGV4dCwgJ2dsb2JhbCcpKSB7XG4gICAgICAgIGlmIChqYXZhKSB7XG4gICAgICAgICAgZGF0YSA9IGphdmEubGFuZy5TeXN0ZW07XG4gICAgICAgICAgYXJjaCA9IGRhdGEuZ2V0UHJvcGVydHkoJ29zLmFyY2gnKTtcbiAgICAgICAgICBvcyA9IG9zIHx8IGRhdGEuZ2V0UHJvcGVydHkoJ29zLm5hbWUnKSArICcgJyArIGRhdGEuZ2V0UHJvcGVydHkoJ29zLnZlcnNpb24nKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmhpbm8pIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgdmVyc2lvbiA9IGNvbnRleHQucmVxdWlyZSgncmluZ28vZW5naW5lJykudmVyc2lvbi5qb2luKCcuJyk7XG4gICAgICAgICAgICBuYW1lID0gJ1JpbmdvSlMnO1xuICAgICAgICAgIH0gY2F0Y2goZSkge1xuICAgICAgICAgICAgaWYgKChkYXRhID0gY29udGV4dC5zeXN0ZW0pICYmIGRhdGEuZ2xvYmFsLnN5c3RlbSA9PSBjb250ZXh0LnN5c3RlbSkge1xuICAgICAgICAgICAgICBuYW1lID0gJ05hcndoYWwnO1xuICAgICAgICAgICAgICBvcyB8fCAob3MgPSBkYXRhWzBdLm9zIHx8IG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIW5hbWUpIHtcbiAgICAgICAgICAgIG5hbWUgPSAnUmhpbm8nO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChcbiAgICAgICAgICB0eXBlb2YgY29udGV4dC5wcm9jZXNzID09ICdvYmplY3QnICYmICFjb250ZXh0LnByb2Nlc3MuYnJvd3NlciAmJlxuICAgICAgICAgIChkYXRhID0gY29udGV4dC5wcm9jZXNzKVxuICAgICAgICApIHtcbiAgICAgICAgICBpZiAodHlwZW9mIGRhdGEudmVyc2lvbnMgPT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZGF0YS52ZXJzaW9ucy5lbGVjdHJvbiA9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICBkZXNjcmlwdGlvbi5wdXNoKCdOb2RlICcgKyBkYXRhLnZlcnNpb25zLm5vZGUpO1xuICAgICAgICAgICAgICBuYW1lID0gJ0VsZWN0cm9uJztcbiAgICAgICAgICAgICAgdmVyc2lvbiA9IGRhdGEudmVyc2lvbnMuZWxlY3Ryb247XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBkYXRhLnZlcnNpb25zLm53ID09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uLnB1c2goJ0Nocm9taXVtICcgKyB2ZXJzaW9uLCAnTm9kZSAnICsgZGF0YS52ZXJzaW9ucy5ub2RlKTtcbiAgICAgICAgICAgICAgbmFtZSA9ICdOVy5qcyc7XG4gICAgICAgICAgICAgIHZlcnNpb24gPSBkYXRhLnZlcnNpb25zLm53O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIW5hbWUpIHtcbiAgICAgICAgICAgIG5hbWUgPSAnTm9kZS5qcyc7XG4gICAgICAgICAgICBhcmNoID0gZGF0YS5hcmNoO1xuICAgICAgICAgICAgb3MgPSBkYXRhLnBsYXRmb3JtO1xuICAgICAgICAgICAgdmVyc2lvbiA9IC9bXFxkLl0rLy5leGVjKGRhdGEudmVyc2lvbik7XG4gICAgICAgICAgICB2ZXJzaW9uID0gdmVyc2lvbiA/IHZlcnNpb25bMF0gOiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gRGV0ZWN0IEFkb2JlIEFJUi5cbiAgICAgIGVsc2UgaWYgKGdldENsYXNzT2YoKGRhdGEgPSBjb250ZXh0LnJ1bnRpbWUpKSA9PSBhaXJSdW50aW1lQ2xhc3MpIHtcbiAgICAgICAgbmFtZSA9ICdBZG9iZSBBSVInO1xuICAgICAgICBvcyA9IGRhdGEuZmxhc2guc3lzdGVtLkNhcGFiaWxpdGllcy5vcztcbiAgICAgIH1cbiAgICAgIC8vIERldGVjdCBQaGFudG9tSlMuXG4gICAgICBlbHNlIGlmIChnZXRDbGFzc09mKChkYXRhID0gY29udGV4dC5waGFudG9tKSkgPT0gcGhhbnRvbUNsYXNzKSB7XG4gICAgICAgIG5hbWUgPSAnUGhhbnRvbUpTJztcbiAgICAgICAgdmVyc2lvbiA9IChkYXRhID0gZGF0YS52ZXJzaW9uIHx8IG51bGwpICYmIChkYXRhLm1ham9yICsgJy4nICsgZGF0YS5taW5vciArICcuJyArIGRhdGEucGF0Y2gpO1xuICAgICAgfVxuICAgICAgLy8gRGV0ZWN0IElFIGNvbXBhdGliaWxpdHkgbW9kZXMuXG4gICAgICBlbHNlIGlmICh0eXBlb2YgZG9jLmRvY3VtZW50TW9kZSA9PSAnbnVtYmVyJyAmJiAoZGF0YSA9IC9cXGJUcmlkZW50XFwvKFxcZCspL2kuZXhlYyh1YSkpKSB7XG4gICAgICAgIC8vIFdlJ3JlIGluIGNvbXBhdGliaWxpdHkgbW9kZSB3aGVuIHRoZSBUcmlkZW50IHZlcnNpb24gKyA0IGRvZXNuJ3RcbiAgICAgICAgLy8gZXF1YWwgdGhlIGRvY3VtZW50IG1vZGUuXG4gICAgICAgIHZlcnNpb24gPSBbdmVyc2lvbiwgZG9jLmRvY3VtZW50TW9kZV07XG4gICAgICAgIGlmICgoZGF0YSA9ICtkYXRhWzFdICsgNCkgIT0gdmVyc2lvblsxXSkge1xuICAgICAgICAgIGRlc2NyaXB0aW9uLnB1c2goJ0lFICcgKyB2ZXJzaW9uWzFdICsgJyBtb2RlJyk7XG4gICAgICAgICAgbGF5b3V0ICYmIChsYXlvdXRbMV0gPSAnJyk7XG4gICAgICAgICAgdmVyc2lvblsxXSA9IGRhdGE7XG4gICAgICAgIH1cbiAgICAgICAgdmVyc2lvbiA9IG5hbWUgPT0gJ0lFJyA/IFN0cmluZyh2ZXJzaW9uWzFdLnRvRml4ZWQoMSkpIDogdmVyc2lvblswXTtcbiAgICAgIH1cbiAgICAgIC8vIERldGVjdCBJRSAxMSBtYXNraW5nIGFzIG90aGVyIGJyb3dzZXJzLlxuICAgICAgZWxzZSBpZiAodHlwZW9mIGRvYy5kb2N1bWVudE1vZGUgPT0gJ251bWJlcicgJiYgL14oPzpDaHJvbWV8RmlyZWZveClcXGIvLnRlc3QobmFtZSkpIHtcbiAgICAgICAgZGVzY3JpcHRpb24ucHVzaCgnbWFza2luZyBhcyAnICsgbmFtZSArICcgJyArIHZlcnNpb24pO1xuICAgICAgICBuYW1lID0gJ0lFJztcbiAgICAgICAgdmVyc2lvbiA9ICcxMS4wJztcbiAgICAgICAgbGF5b3V0ID0gWydUcmlkZW50J107XG4gICAgICAgIG9zID0gJ1dpbmRvd3MnO1xuICAgICAgfVxuICAgICAgb3MgPSBvcyAmJiBmb3JtYXQob3MpO1xuICAgIH1cbiAgICAvLyBEZXRlY3QgcHJlcmVsZWFzZSBwaGFzZXMuXG4gICAgaWYgKHZlcnNpb24gJiYgKGRhdGEgPVxuICAgICAgICAgIC8oPzpbYWJdfGRwfHByZXxbYWJdXFxkK3ByZSkoPzpcXGQrXFwrPyk/JC9pLmV4ZWModmVyc2lvbikgfHxcbiAgICAgICAgICAvKD86YWxwaGF8YmV0YSkoPzogP1xcZCk/L2kuZXhlYyh1YSArICc7JyArICh1c2VGZWF0dXJlcyAmJiBuYXYuYXBwTWlub3JWZXJzaW9uKSkgfHxcbiAgICAgICAgICAvXFxiTWluZWZpZWxkXFxiL2kudGVzdCh1YSkgJiYgJ2EnXG4gICAgICAgICkpIHtcbiAgICAgIHByZXJlbGVhc2UgPSAvYi9pLnRlc3QoZGF0YSkgPyAnYmV0YScgOiAnYWxwaGEnO1xuICAgICAgdmVyc2lvbiA9IHZlcnNpb24ucmVwbGFjZShSZWdFeHAoZGF0YSArICdcXFxcKz8kJyksICcnKSArXG4gICAgICAgIChwcmVyZWxlYXNlID09ICdiZXRhJyA/IGJldGEgOiBhbHBoYSkgKyAoL1xcZCtcXCs/Ly5leGVjKGRhdGEpIHx8ICcnKTtcbiAgICB9XG4gICAgLy8gRGV0ZWN0IEZpcmVmb3ggTW9iaWxlLlxuICAgIGlmIChuYW1lID09ICdGZW5uZWMnIHx8IG5hbWUgPT0gJ0ZpcmVmb3gnICYmIC9cXGIoPzpBbmRyb2lkfEZpcmVmb3ggT1N8S2FpT1MpXFxiLy50ZXN0KG9zKSkge1xuICAgICAgbmFtZSA9ICdGaXJlZm94IE1vYmlsZSc7XG4gICAgfVxuICAgIC8vIE9ic2N1cmUgTWF4dGhvbidzIHVucmVsaWFibGUgdmVyc2lvbi5cbiAgICBlbHNlIGlmIChuYW1lID09ICdNYXh0aG9uJyAmJiB2ZXJzaW9uKSB7XG4gICAgICB2ZXJzaW9uID0gdmVyc2lvbi5yZXBsYWNlKC9cXC5bXFxkLl0rLywgJy54Jyk7XG4gICAgfVxuICAgIC8vIERldGVjdCBYYm94IDM2MCBhbmQgWGJveCBPbmUuXG4gICAgZWxzZSBpZiAoL1xcYlhib3hcXGIvaS50ZXN0KHByb2R1Y3QpKSB7XG4gICAgICBpZiAocHJvZHVjdCA9PSAnWGJveCAzNjAnKSB7XG4gICAgICAgIG9zID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIGlmIChwcm9kdWN0ID09ICdYYm94IDM2MCcgJiYgL1xcYklFTW9iaWxlXFxiLy50ZXN0KHVhKSkge1xuICAgICAgICBkZXNjcmlwdGlvbi51bnNoaWZ0KCdtb2JpbGUgbW9kZScpO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBBZGQgbW9iaWxlIHBvc3RmaXguXG4gICAgZWxzZSBpZiAoKC9eKD86Q2hyb21lfElFfE9wZXJhKSQvLnRlc3QobmFtZSkgfHwgbmFtZSAmJiAhcHJvZHVjdCAmJiAhL0Jyb3dzZXJ8TW9iaS8udGVzdChuYW1lKSkgJiZcbiAgICAgICAgKG9zID09ICdXaW5kb3dzIENFJyB8fCAvTW9iaS9pLnRlc3QodWEpKSkge1xuICAgICAgbmFtZSArPSAnIE1vYmlsZSc7XG4gICAgfVxuICAgIC8vIERldGVjdCBJRSBwbGF0Zm9ybSBwcmV2aWV3LlxuICAgIGVsc2UgaWYgKG5hbWUgPT0gJ0lFJyAmJiB1c2VGZWF0dXJlcykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgaWYgKGNvbnRleHQuZXh0ZXJuYWwgPT09IG51bGwpIHtcbiAgICAgICAgICBkZXNjcmlwdGlvbi51bnNoaWZ0KCdwbGF0Zm9ybSBwcmV2aWV3Jyk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2goZSkge1xuICAgICAgICBkZXNjcmlwdGlvbi51bnNoaWZ0KCdlbWJlZGRlZCcpO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBEZXRlY3QgQmxhY2tCZXJyeSBPUyB2ZXJzaW9uLlxuICAgIC8vIGh0dHA6Ly9kb2NzLmJsYWNrYmVycnkuY29tL2VuL2RldmVsb3BlcnMvZGVsaXZlcmFibGVzLzE4MTY5L0hUVFBfaGVhZGVyc19zZW50X2J5X0JCX0Jyb3dzZXJfMTIzNDkxMV8xMS5qc3BcbiAgICBlbHNlIGlmICgoL1xcYkJsYWNrQmVycnlcXGIvLnRlc3QocHJvZHVjdCkgfHwgL1xcYkJCMTBcXGIvLnRlc3QodWEpKSAmJiAoZGF0YSA9XG4gICAgICAgICAgKFJlZ0V4cChwcm9kdWN0LnJlcGxhY2UoLyArL2csICcgKicpICsgJy8oWy5cXFxcZF0rKScsICdpJykuZXhlYyh1YSkgfHwgMClbMV0gfHxcbiAgICAgICAgICB2ZXJzaW9uXG4gICAgICAgICkpIHtcbiAgICAgIGRhdGEgPSBbZGF0YSwgL0JCMTAvLnRlc3QodWEpXTtcbiAgICAgIG9zID0gKGRhdGFbMV0gPyAocHJvZHVjdCA9IG51bGwsIG1hbnVmYWN0dXJlciA9ICdCbGFja0JlcnJ5JykgOiAnRGV2aWNlIFNvZnR3YXJlJykgKyAnICcgKyBkYXRhWzBdO1xuICAgICAgdmVyc2lvbiA9IG51bGw7XG4gICAgfVxuICAgIC8vIERldGVjdCBPcGVyYSBpZGVudGlmeWluZy9tYXNraW5nIGl0c2VsZiBhcyBhbm90aGVyIGJyb3dzZXIuXG4gICAgLy8gaHR0cDovL3d3dy5vcGVyYS5jb20vc3VwcG9ydC9rYi92aWV3Lzg0My9cbiAgICBlbHNlIGlmICh0aGlzICE9IGZvck93biAmJiBwcm9kdWN0ICE9ICdXaWknICYmIChcbiAgICAgICAgICAodXNlRmVhdHVyZXMgJiYgb3BlcmEpIHx8XG4gICAgICAgICAgKC9PcGVyYS8udGVzdChuYW1lKSAmJiAvXFxiKD86TVNJRXxGaXJlZm94KVxcYi9pLnRlc3QodWEpKSB8fFxuICAgICAgICAgIChuYW1lID09ICdGaXJlZm94JyAmJiAvXFxiT1MgWCAoPzpcXGQrXFwuKXsyLH0vLnRlc3Qob3MpKSB8fFxuICAgICAgICAgIChuYW1lID09ICdJRScgJiYgKFxuICAgICAgICAgICAgKG9zICYmICEvXldpbi8udGVzdChvcykgJiYgdmVyc2lvbiA+IDUuNSkgfHxcbiAgICAgICAgICAgIC9cXGJXaW5kb3dzIFhQXFxiLy50ZXN0KG9zKSAmJiB2ZXJzaW9uID4gOCB8fFxuICAgICAgICAgICAgdmVyc2lvbiA9PSA4ICYmICEvXFxiVHJpZGVudFxcYi8udGVzdCh1YSlcbiAgICAgICAgICApKVxuICAgICAgICApICYmICFyZU9wZXJhLnRlc3QoKGRhdGEgPSBwYXJzZS5jYWxsKGZvck93biwgdWEucmVwbGFjZShyZU9wZXJhLCAnJykgKyAnOycpKSkgJiYgZGF0YS5uYW1lKSB7XG4gICAgICAvLyBXaGVuIFwiaWRlbnRpZnlpbmdcIiwgdGhlIFVBIGNvbnRhaW5zIGJvdGggT3BlcmEgYW5kIHRoZSBvdGhlciBicm93c2VyJ3MgbmFtZS5cbiAgICAgIGRhdGEgPSAnaW5nIGFzICcgKyBkYXRhLm5hbWUgKyAoKGRhdGEgPSBkYXRhLnZlcnNpb24pID8gJyAnICsgZGF0YSA6ICcnKTtcbiAgICAgIGlmIChyZU9wZXJhLnRlc3QobmFtZSkpIHtcbiAgICAgICAgaWYgKC9cXGJJRVxcYi8udGVzdChkYXRhKSAmJiBvcyA9PSAnTWFjIE9TJykge1xuICAgICAgICAgIG9zID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBkYXRhID0gJ2lkZW50aWZ5JyArIGRhdGE7XG4gICAgICB9XG4gICAgICAvLyBXaGVuIFwibWFza2luZ1wiLCB0aGUgVUEgY29udGFpbnMgb25seSB0aGUgb3RoZXIgYnJvd3NlcidzIG5hbWUuXG4gICAgICBlbHNlIHtcbiAgICAgICAgZGF0YSA9ICdtYXNrJyArIGRhdGE7XG4gICAgICAgIGlmIChvcGVyYUNsYXNzKSB7XG4gICAgICAgICAgbmFtZSA9IGZvcm1hdChvcGVyYUNsYXNzLnJlcGxhY2UoLyhbYS16XSkoW0EtWl0pL2csICckMSAkMicpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBuYW1lID0gJ09wZXJhJztcbiAgICAgICAgfVxuICAgICAgICBpZiAoL1xcYklFXFxiLy50ZXN0KGRhdGEpKSB7XG4gICAgICAgICAgb3MgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdXNlRmVhdHVyZXMpIHtcbiAgICAgICAgICB2ZXJzaW9uID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGF5b3V0ID0gWydQcmVzdG8nXTtcbiAgICAgIGRlc2NyaXB0aW9uLnB1c2goZGF0YSk7XG4gICAgfVxuICAgIC8vIERldGVjdCBXZWJLaXQgTmlnaHRseSBhbmQgYXBwcm94aW1hdGUgQ2hyb21lL1NhZmFyaSB2ZXJzaW9ucy5cbiAgICBpZiAoKGRhdGEgPSAoL1xcYkFwcGxlV2ViS2l0XFwvKFtcXGQuXStcXCs/KS9pLmV4ZWModWEpIHx8IDApWzFdKSkge1xuICAgICAgLy8gQ29ycmVjdCBidWlsZCBudW1iZXIgZm9yIG51bWVyaWMgY29tcGFyaXNvbi5cbiAgICAgIC8vIChlLmcuIFwiNTMyLjVcIiBiZWNvbWVzIFwiNTMyLjA1XCIpXG4gICAgICBkYXRhID0gW3BhcnNlRmxvYXQoZGF0YS5yZXBsYWNlKC9cXC4oXFxkKSQvLCAnLjAkMScpKSwgZGF0YV07XG4gICAgICAvLyBOaWdodGx5IGJ1aWxkcyBhcmUgcG9zdGZpeGVkIHdpdGggYSBcIitcIi5cbiAgICAgIGlmIChuYW1lID09ICdTYWZhcmknICYmIGRhdGFbMV0uc2xpY2UoLTEpID09ICcrJykge1xuICAgICAgICBuYW1lID0gJ1dlYktpdCBOaWdodGx5JztcbiAgICAgICAgcHJlcmVsZWFzZSA9ICdhbHBoYSc7XG4gICAgICAgIHZlcnNpb24gPSBkYXRhWzFdLnNsaWNlKDAsIC0xKTtcbiAgICAgIH1cbiAgICAgIC8vIENsZWFyIGluY29ycmVjdCBicm93c2VyIHZlcnNpb25zLlxuICAgICAgZWxzZSBpZiAodmVyc2lvbiA9PSBkYXRhWzFdIHx8XG4gICAgICAgICAgdmVyc2lvbiA9PSAoZGF0YVsyXSA9ICgvXFxiU2FmYXJpXFwvKFtcXGQuXStcXCs/KS9pLmV4ZWModWEpIHx8IDApWzFdKSkge1xuICAgICAgICB2ZXJzaW9uID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIC8vIFVzZSB0aGUgZnVsbCBDaHJvbWUgdmVyc2lvbiB3aGVuIGF2YWlsYWJsZS5cbiAgICAgIGRhdGFbMV0gPSAoL1xcYig/OkhlYWRsZXNzKT9DaHJvbWVcXC8oW1xcZC5dKykvaS5leGVjKHVhKSB8fCAwKVsxXTtcbiAgICAgIC8vIERldGVjdCBCbGluayBsYXlvdXQgZW5naW5lLlxuICAgICAgaWYgKGRhdGFbMF0gPT0gNTM3LjM2ICYmIGRhdGFbMl0gPT0gNTM3LjM2ICYmIHBhcnNlRmxvYXQoZGF0YVsxXSkgPj0gMjggJiYgbGF5b3V0ID09ICdXZWJLaXQnKSB7XG4gICAgICAgIGxheW91dCA9IFsnQmxpbmsnXTtcbiAgICAgIH1cbiAgICAgIC8vIERldGVjdCBKYXZhU2NyaXB0Q29yZS5cbiAgICAgIC8vIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNjc2ODQ3NC9ob3ctY2FuLWktZGV0ZWN0LXdoaWNoLWphdmFzY3JpcHQtZW5naW5lLXY4LW9yLWpzYy1pcy11c2VkLWF0LXJ1bnRpbWUtaW4tYW5kcm9pXG4gICAgICBpZiAoIXVzZUZlYXR1cmVzIHx8ICghbGlrZUNocm9tZSAmJiAhZGF0YVsxXSkpIHtcbiAgICAgICAgbGF5b3V0ICYmIChsYXlvdXRbMV0gPSAnbGlrZSBTYWZhcmknKTtcbiAgICAgICAgZGF0YSA9IChkYXRhID0gZGF0YVswXSwgZGF0YSA8IDQwMCA/IDEgOiBkYXRhIDwgNTAwID8gMiA6IGRhdGEgPCA1MjYgPyAzIDogZGF0YSA8IDUzMyA/IDQgOiBkYXRhIDwgNTM0ID8gJzQrJyA6IGRhdGEgPCA1MzUgPyA1IDogZGF0YSA8IDUzNyA/IDYgOiBkYXRhIDwgNTM4ID8gNyA6IGRhdGEgPCA2MDEgPyA4IDogZGF0YSA8IDYwMiA/IDkgOiBkYXRhIDwgNjA0ID8gMTAgOiBkYXRhIDwgNjA2ID8gMTEgOiBkYXRhIDwgNjA4ID8gMTIgOiAnMTInKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxheW91dCAmJiAobGF5b3V0WzFdID0gJ2xpa2UgQ2hyb21lJyk7XG4gICAgICAgIGRhdGEgPSBkYXRhWzFdIHx8IChkYXRhID0gZGF0YVswXSwgZGF0YSA8IDUzMCA/IDEgOiBkYXRhIDwgNTMyID8gMiA6IGRhdGEgPCA1MzIuMDUgPyAzIDogZGF0YSA8IDUzMyA/IDQgOiBkYXRhIDwgNTM0LjAzID8gNSA6IGRhdGEgPCA1MzQuMDcgPyA2IDogZGF0YSA8IDUzNC4xMCA/IDcgOiBkYXRhIDwgNTM0LjEzID8gOCA6IGRhdGEgPCA1MzQuMTYgPyA5IDogZGF0YSA8IDUzNC4yNCA/IDEwIDogZGF0YSA8IDUzNC4zMCA/IDExIDogZGF0YSA8IDUzNS4wMSA/IDEyIDogZGF0YSA8IDUzNS4wMiA/ICcxMysnIDogZGF0YSA8IDUzNS4wNyA/IDE1IDogZGF0YSA8IDUzNS4xMSA/IDE2IDogZGF0YSA8IDUzNS4xOSA/IDE3IDogZGF0YSA8IDUzNi4wNSA/IDE4IDogZGF0YSA8IDUzNi4xMCA/IDE5IDogZGF0YSA8IDUzNy4wMSA/IDIwIDogZGF0YSA8IDUzNy4xMSA/ICcyMSsnIDogZGF0YSA8IDUzNy4xMyA/IDIzIDogZGF0YSA8IDUzNy4xOCA/IDI0IDogZGF0YSA8IDUzNy4yNCA/IDI1IDogZGF0YSA8IDUzNy4zNiA/IDI2IDogbGF5b3V0ICE9ICdCbGluaycgPyAnMjcnIDogJzI4Jyk7XG4gICAgICB9XG4gICAgICAvLyBBZGQgdGhlIHBvc3RmaXggb2YgXCIueFwiIG9yIFwiK1wiIGZvciBhcHByb3hpbWF0ZSB2ZXJzaW9ucy5cbiAgICAgIGxheW91dCAmJiAobGF5b3V0WzFdICs9ICcgJyArIChkYXRhICs9IHR5cGVvZiBkYXRhID09ICdudW1iZXInID8gJy54JyA6IC9bLitdLy50ZXN0KGRhdGEpID8gJycgOiAnKycpKTtcbiAgICAgIC8vIE9ic2N1cmUgdmVyc2lvbiBmb3Igc29tZSBTYWZhcmkgMS0yIHJlbGVhc2VzLlxuICAgICAgaWYgKG5hbWUgPT0gJ1NhZmFyaScgJiYgKCF2ZXJzaW9uIHx8IHBhcnNlSW50KHZlcnNpb24pID4gNDUpKSB7XG4gICAgICAgIHZlcnNpb24gPSBkYXRhO1xuICAgICAgfSBlbHNlIGlmIChuYW1lID09ICdDaHJvbWUnICYmIC9cXGJIZWFkbGVzc0Nocm9tZS9pLnRlc3QodWEpKSB7XG4gICAgICAgIGRlc2NyaXB0aW9uLnVuc2hpZnQoJ2hlYWRsZXNzJyk7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIERldGVjdCBPcGVyYSBkZXNrdG9wIG1vZGVzLlxuICAgIGlmIChuYW1lID09ICdPcGVyYScgJiYgIChkYXRhID0gL1xcYnpib3Z8enZhdiQvLmV4ZWMob3MpKSkge1xuICAgICAgbmFtZSArPSAnICc7XG4gICAgICBkZXNjcmlwdGlvbi51bnNoaWZ0KCdkZXNrdG9wIG1vZGUnKTtcbiAgICAgIGlmIChkYXRhID09ICd6dmF2Jykge1xuICAgICAgICBuYW1lICs9ICdNaW5pJztcbiAgICAgICAgdmVyc2lvbiA9IG51bGw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuYW1lICs9ICdNb2JpbGUnO1xuICAgICAgfVxuICAgICAgb3MgPSBvcy5yZXBsYWNlKFJlZ0V4cCgnIConICsgZGF0YSArICckJyksICcnKTtcbiAgICB9XG4gICAgLy8gRGV0ZWN0IENocm9tZSBkZXNrdG9wIG1vZGUuXG4gICAgZWxzZSBpZiAobmFtZSA9PSAnU2FmYXJpJyAmJiAvXFxiQ2hyb21lXFxiLy5leGVjKGxheW91dCAmJiBsYXlvdXRbMV0pKSB7XG4gICAgICBkZXNjcmlwdGlvbi51bnNoaWZ0KCdkZXNrdG9wIG1vZGUnKTtcbiAgICAgIG5hbWUgPSAnQ2hyb21lIE1vYmlsZSc7XG4gICAgICB2ZXJzaW9uID0gbnVsbDtcblxuICAgICAgaWYgKC9cXGJPUyBYXFxiLy50ZXN0KG9zKSkge1xuICAgICAgICBtYW51ZmFjdHVyZXIgPSAnQXBwbGUnO1xuICAgICAgICBvcyA9ICdpT1MgNC4zKyc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvcyA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIE5ld2VyIHZlcnNpb25zIG9mIFNSV2FyZSBJcm9uIHVzZXMgdGhlIENocm9tZSB0YWcgdG8gaW5kaWNhdGUgaXRzIHZlcnNpb24gbnVtYmVyLlxuICAgIGVsc2UgaWYgKC9cXGJTUldhcmUgSXJvblxcYi8udGVzdChuYW1lKSAmJiAhdmVyc2lvbikge1xuICAgICAgdmVyc2lvbiA9IGdldFZlcnNpb24oJ0Nocm9tZScpO1xuICAgIH1cbiAgICAvLyBTdHJpcCBpbmNvcnJlY3QgT1MgdmVyc2lvbnMuXG4gICAgaWYgKHZlcnNpb24gJiYgdmVyc2lvbi5pbmRleE9mKChkYXRhID0gL1tcXGQuXSskLy5leGVjKG9zKSkpID09IDAgJiZcbiAgICAgICAgdWEuaW5kZXhPZignLycgKyBkYXRhICsgJy0nKSA+IC0xKSB7XG4gICAgICBvcyA9IHRyaW0ob3MucmVwbGFjZShkYXRhLCAnJykpO1xuICAgIH1cbiAgICAvLyBFbnN1cmUgT1MgZG9lcyBub3QgaW5jbHVkZSB0aGUgYnJvd3NlciBuYW1lLlxuICAgIGlmIChvcyAmJiBvcy5pbmRleE9mKG5hbWUpICE9IC0xICYmICFSZWdFeHAobmFtZSArICcgT1MnKS50ZXN0KG9zKSkge1xuICAgICAgb3MgPSBvcy5yZXBsYWNlKFJlZ0V4cCgnIConICsgcXVhbGlmeShuYW1lKSArICcgKicpLCAnJyk7XG4gICAgfVxuICAgIC8vIEFkZCBsYXlvdXQgZW5naW5lLlxuICAgIGlmIChsYXlvdXQgJiYgIS9cXGIoPzpBdmFudHxOb29rKVxcYi8udGVzdChuYW1lKSAmJiAoXG4gICAgICAgIC9Ccm93c2VyfEx1bmFzY2FwZXxNYXh0aG9uLy50ZXN0KG5hbWUpIHx8XG4gICAgICAgIG5hbWUgIT0gJ1NhZmFyaScgJiYgL15pT1MvLnRlc3Qob3MpICYmIC9cXGJTYWZhcmlcXGIvLnRlc3QobGF5b3V0WzFdKSB8fFxuICAgICAgICAvXig/OkFkb2JlfEFyb3JhfEJyZWFjaHxNaWRvcml8T3BlcmF8UGhhbnRvbXxSZWtvbnF8Um9ja3xTYW1zdW5nIEludGVybmV0fFNsZWlwbmlyfFNSV2FyZSBJcm9ufFZpdmFsZGl8V2ViKS8udGVzdChuYW1lKSAmJiBsYXlvdXRbMV0pKSB7XG4gICAgICAvLyBEb24ndCBhZGQgbGF5b3V0IGRldGFpbHMgdG8gZGVzY3JpcHRpb24gaWYgdGhleSBhcmUgZmFsc2V5LlxuICAgICAgKGRhdGEgPSBsYXlvdXRbbGF5b3V0Lmxlbmd0aCAtIDFdKSAmJiBkZXNjcmlwdGlvbi5wdXNoKGRhdGEpO1xuICAgIH1cbiAgICAvLyBDb21iaW5lIGNvbnRleHR1YWwgaW5mb3JtYXRpb24uXG4gICAgaWYgKGRlc2NyaXB0aW9uLmxlbmd0aCkge1xuICAgICAgZGVzY3JpcHRpb24gPSBbJygnICsgZGVzY3JpcHRpb24uam9pbignOyAnKSArICcpJ107XG4gICAgfVxuICAgIC8vIEFwcGVuZCBtYW51ZmFjdHVyZXIgdG8gZGVzY3JpcHRpb24uXG4gICAgaWYgKG1hbnVmYWN0dXJlciAmJiBwcm9kdWN0ICYmIHByb2R1Y3QuaW5kZXhPZihtYW51ZmFjdHVyZXIpIDwgMCkge1xuICAgICAgZGVzY3JpcHRpb24ucHVzaCgnb24gJyArIG1hbnVmYWN0dXJlcik7XG4gICAgfVxuICAgIC8vIEFwcGVuZCBwcm9kdWN0IHRvIGRlc2NyaXB0aW9uLlxuICAgIGlmIChwcm9kdWN0KSB7XG4gICAgICBkZXNjcmlwdGlvbi5wdXNoKCgvXm9uIC8udGVzdChkZXNjcmlwdGlvbltkZXNjcmlwdGlvbi5sZW5ndGggLSAxXSkgPyAnJyA6ICdvbiAnKSArIHByb2R1Y3QpO1xuICAgIH1cbiAgICAvLyBQYXJzZSB0aGUgT1MgaW50byBhbiBvYmplY3QuXG4gICAgaWYgKG9zKSB7XG4gICAgICBkYXRhID0gLyAoW1xcZC4rXSspJC8uZXhlYyhvcyk7XG4gICAgICBpc1NwZWNpYWxDYXNlZE9TID0gZGF0YSAmJiBvcy5jaGFyQXQob3MubGVuZ3RoIC0gZGF0YVswXS5sZW5ndGggLSAxKSA9PSAnLyc7XG4gICAgICBvcyA9IHtcbiAgICAgICAgJ2FyY2hpdGVjdHVyZSc6IDMyLFxuICAgICAgICAnZmFtaWx5JzogKGRhdGEgJiYgIWlzU3BlY2lhbENhc2VkT1MpID8gb3MucmVwbGFjZShkYXRhWzBdLCAnJykgOiBvcyxcbiAgICAgICAgJ3ZlcnNpb24nOiBkYXRhID8gZGF0YVsxXSA6IG51bGwsXG4gICAgICAgICd0b1N0cmluZyc6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHZhciB2ZXJzaW9uID0gdGhpcy52ZXJzaW9uO1xuICAgICAgICAgIHJldHVybiB0aGlzLmZhbWlseSArICgodmVyc2lvbiAmJiAhaXNTcGVjaWFsQ2FzZWRPUykgPyAnICcgKyB2ZXJzaW9uIDogJycpICsgKHRoaXMuYXJjaGl0ZWN0dXJlID09IDY0ID8gJyA2NC1iaXQnIDogJycpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgICAvLyBBZGQgYnJvd3Nlci9PUyBhcmNoaXRlY3R1cmUuXG4gICAgaWYgKChkYXRhID0gL1xcYig/OkFNRHxJQXxXaW58V09XfHg4Nl98eCk2NFxcYi9pLmV4ZWMoYXJjaCkpICYmICEvXFxiaTY4NlxcYi9pLnRlc3QoYXJjaCkpIHtcbiAgICAgIGlmIChvcykge1xuICAgICAgICBvcy5hcmNoaXRlY3R1cmUgPSA2NDtcbiAgICAgICAgb3MuZmFtaWx5ID0gb3MuZmFtaWx5LnJlcGxhY2UoUmVnRXhwKCcgKicgKyBkYXRhKSwgJycpO1xuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICAgIG5hbWUgJiYgKC9cXGJXT1c2NFxcYi9pLnRlc3QodWEpIHx8XG4gICAgICAgICAgKHVzZUZlYXR1cmVzICYmIC9cXHcoPzo4NnwzMikkLy50ZXN0KG5hdi5jcHVDbGFzcyB8fCBuYXYucGxhdGZvcm0pICYmICEvXFxiV2luNjQ7IHg2NFxcYi9pLnRlc3QodWEpKSlcbiAgICAgICkge1xuICAgICAgICBkZXNjcmlwdGlvbi51bnNoaWZ0KCczMi1iaXQnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gQ2hyb21lIDM5IGFuZCBhYm92ZSBvbiBPUyBYIGlzIGFsd2F5cyA2NC1iaXQuXG4gICAgZWxzZSBpZiAoXG4gICAgICAgIG9zICYmIC9eT1MgWC8udGVzdChvcy5mYW1pbHkpICYmXG4gICAgICAgIG5hbWUgPT0gJ0Nocm9tZScgJiYgcGFyc2VGbG9hdCh2ZXJzaW9uKSA+PSAzOVxuICAgICkge1xuICAgICAgb3MuYXJjaGl0ZWN0dXJlID0gNjQ7XG4gICAgfVxuXG4gICAgdWEgfHwgKHVhID0gbnVsbCk7XG5cbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgICAvKipcbiAgICAgKiBUaGUgcGxhdGZvcm0gb2JqZWN0LlxuICAgICAqXG4gICAgICogQG5hbWUgcGxhdGZvcm1cbiAgICAgKiBAdHlwZSBPYmplY3RcbiAgICAgKi9cbiAgICB2YXIgcGxhdGZvcm0gPSB7fTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBwbGF0Zm9ybSBkZXNjcmlwdGlvbi5cbiAgICAgKlxuICAgICAqIEBtZW1iZXJPZiBwbGF0Zm9ybVxuICAgICAqIEB0eXBlIHN0cmluZ3xudWxsXG4gICAgICovXG4gICAgcGxhdGZvcm0uZGVzY3JpcHRpb24gPSB1YTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBuYW1lIG9mIHRoZSBicm93c2VyJ3MgbGF5b3V0IGVuZ2luZS5cbiAgICAgKlxuICAgICAqIFRoZSBsaXN0IG9mIGNvbW1vbiBsYXlvdXQgZW5naW5lcyBpbmNsdWRlOlxuICAgICAqIFwiQmxpbmtcIiwgXCJFZGdlSFRNTFwiLCBcIkdlY2tvXCIsIFwiVHJpZGVudFwiIGFuZCBcIldlYktpdFwiXG4gICAgICpcbiAgICAgKiBAbWVtYmVyT2YgcGxhdGZvcm1cbiAgICAgKiBAdHlwZSBzdHJpbmd8bnVsbFxuICAgICAqL1xuICAgIHBsYXRmb3JtLmxheW91dCA9IGxheW91dCAmJiBsYXlvdXRbMF07XG5cbiAgICAvKipcbiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgcHJvZHVjdCdzIG1hbnVmYWN0dXJlci5cbiAgICAgKlxuICAgICAqIFRoZSBsaXN0IG9mIG1hbnVmYWN0dXJlcnMgaW5jbHVkZTpcbiAgICAgKiBcIkFwcGxlXCIsIFwiQXJjaG9zXCIsIFwiQW1hem9uXCIsIFwiQXN1c1wiLCBcIkJhcm5lcyAmIE5vYmxlXCIsIFwiQmxhY2tCZXJyeVwiLFxuICAgICAqIFwiR29vZ2xlXCIsIFwiSFBcIiwgXCJIVENcIiwgXCJMR1wiLCBcIk1pY3Jvc29mdFwiLCBcIk1vdG9yb2xhXCIsIFwiTmludGVuZG9cIixcbiAgICAgKiBcIk5va2lhXCIsIFwiU2Ftc3VuZ1wiIGFuZCBcIlNvbnlcIlxuICAgICAqXG4gICAgICogQG1lbWJlck9mIHBsYXRmb3JtXG4gICAgICogQHR5cGUgc3RyaW5nfG51bGxcbiAgICAgKi9cbiAgICBwbGF0Zm9ybS5tYW51ZmFjdHVyZXIgPSBtYW51ZmFjdHVyZXI7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgYnJvd3Nlci9lbnZpcm9ubWVudC5cbiAgICAgKlxuICAgICAqIFRoZSBsaXN0IG9mIGNvbW1vbiBicm93c2VyIG5hbWVzIGluY2x1ZGU6XG4gICAgICogXCJDaHJvbWVcIiwgXCJFbGVjdHJvblwiLCBcIkZpcmVmb3hcIiwgXCJGaXJlZm94IGZvciBpT1NcIiwgXCJJRVwiLFxuICAgICAqIFwiTWljcm9zb2Z0IEVkZ2VcIiwgXCJQaGFudG9tSlNcIiwgXCJTYWZhcmlcIiwgXCJTZWFNb25rZXlcIiwgXCJTaWxrXCIsXG4gICAgICogXCJPcGVyYSBNaW5pXCIgYW5kIFwiT3BlcmFcIlxuICAgICAqXG4gICAgICogTW9iaWxlIHZlcnNpb25zIG9mIHNvbWUgYnJvd3NlcnMgaGF2ZSBcIk1vYmlsZVwiIGFwcGVuZGVkIHRvIHRoZWlyIG5hbWU6XG4gICAgICogZWcuIFwiQ2hyb21lIE1vYmlsZVwiLCBcIkZpcmVmb3ggTW9iaWxlXCIsIFwiSUUgTW9iaWxlXCIgYW5kIFwiT3BlcmEgTW9iaWxlXCJcbiAgICAgKlxuICAgICAqIEBtZW1iZXJPZiBwbGF0Zm9ybVxuICAgICAqIEB0eXBlIHN0cmluZ3xudWxsXG4gICAgICovXG4gICAgcGxhdGZvcm0ubmFtZSA9IG5hbWU7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYWxwaGEvYmV0YSByZWxlYXNlIGluZGljYXRvci5cbiAgICAgKlxuICAgICAqIEBtZW1iZXJPZiBwbGF0Zm9ybVxuICAgICAqIEB0eXBlIHN0cmluZ3xudWxsXG4gICAgICovXG4gICAgcGxhdGZvcm0ucHJlcmVsZWFzZSA9IHByZXJlbGVhc2U7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgcHJvZHVjdCBob3N0aW5nIHRoZSBicm93c2VyLlxuICAgICAqXG4gICAgICogVGhlIGxpc3Qgb2YgY29tbW9uIHByb2R1Y3RzIGluY2x1ZGU6XG4gICAgICpcbiAgICAgKiBcIkJsYWNrQmVycnlcIiwgXCJHYWxheHkgUzRcIiwgXCJMdW1pYVwiLCBcImlQYWRcIiwgXCJpUG9kXCIsIFwiaVBob25lXCIsIFwiS2luZGxlXCIsXG4gICAgICogXCJLaW5kbGUgRmlyZVwiLCBcIk5leHVzXCIsIFwiTm9va1wiLCBcIlBsYXlCb29rXCIsIFwiVG91Y2hQYWRcIiBhbmQgXCJUcmFuc2Zvcm1lclwiXG4gICAgICpcbiAgICAgKiBAbWVtYmVyT2YgcGxhdGZvcm1cbiAgICAgKiBAdHlwZSBzdHJpbmd8bnVsbFxuICAgICAqL1xuICAgIHBsYXRmb3JtLnByb2R1Y3QgPSBwcm9kdWN0O1xuXG4gICAgLyoqXG4gICAgICogVGhlIGJyb3dzZXIncyB1c2VyIGFnZW50IHN0cmluZy5cbiAgICAgKlxuICAgICAqIEBtZW1iZXJPZiBwbGF0Zm9ybVxuICAgICAqIEB0eXBlIHN0cmluZ3xudWxsXG4gICAgICovXG4gICAgcGxhdGZvcm0udWEgPSB1YTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBicm93c2VyL2Vudmlyb25tZW50IHZlcnNpb24uXG4gICAgICpcbiAgICAgKiBAbWVtYmVyT2YgcGxhdGZvcm1cbiAgICAgKiBAdHlwZSBzdHJpbmd8bnVsbFxuICAgICAqL1xuICAgIHBsYXRmb3JtLnZlcnNpb24gPSBuYW1lICYmIHZlcnNpb247XG5cbiAgICAvKipcbiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgb3BlcmF0aW5nIHN5c3RlbS5cbiAgICAgKlxuICAgICAqIEBtZW1iZXJPZiBwbGF0Zm9ybVxuICAgICAqIEB0eXBlIE9iamVjdFxuICAgICAqL1xuICAgIHBsYXRmb3JtLm9zID0gb3MgfHwge1xuXG4gICAgICAvKipcbiAgICAgICAqIFRoZSBDUFUgYXJjaGl0ZWN0dXJlIHRoZSBPUyBpcyBidWlsdCBmb3IuXG4gICAgICAgKlxuICAgICAgICogQG1lbWJlck9mIHBsYXRmb3JtLm9zXG4gICAgICAgKiBAdHlwZSBudW1iZXJ8bnVsbFxuICAgICAgICovXG4gICAgICAnYXJjaGl0ZWN0dXJlJzogbnVsbCxcblxuICAgICAgLyoqXG4gICAgICAgKiBUaGUgZmFtaWx5IG9mIHRoZSBPUy5cbiAgICAgICAqXG4gICAgICAgKiBDb21tb24gdmFsdWVzIGluY2x1ZGU6XG4gICAgICAgKiBcIldpbmRvd3NcIiwgXCJXaW5kb3dzIFNlcnZlciAyMDA4IFIyIC8gN1wiLCBcIldpbmRvd3MgU2VydmVyIDIwMDggLyBWaXN0YVwiLFxuICAgICAgICogXCJXaW5kb3dzIFhQXCIsIFwiT1MgWFwiLCBcIkxpbnV4XCIsIFwiVWJ1bnR1XCIsIFwiRGViaWFuXCIsIFwiRmVkb3JhXCIsIFwiUmVkIEhhdFwiLFxuICAgICAgICogXCJTdVNFXCIsIFwiQW5kcm9pZFwiLCBcImlPU1wiIGFuZCBcIldpbmRvd3MgUGhvbmVcIlxuICAgICAgICpcbiAgICAgICAqIEBtZW1iZXJPZiBwbGF0Zm9ybS5vc1xuICAgICAgICogQHR5cGUgc3RyaW5nfG51bGxcbiAgICAgICAqL1xuICAgICAgJ2ZhbWlseSc6IG51bGwsXG5cbiAgICAgIC8qKlxuICAgICAgICogVGhlIHZlcnNpb24gb2YgdGhlIE9TLlxuICAgICAgICpcbiAgICAgICAqIEBtZW1iZXJPZiBwbGF0Zm9ybS5vc1xuICAgICAgICogQHR5cGUgc3RyaW5nfG51bGxcbiAgICAgICAqL1xuICAgICAgJ3ZlcnNpb24nOiBudWxsLFxuXG4gICAgICAvKipcbiAgICAgICAqIFJldHVybnMgdGhlIE9TIHN0cmluZy5cbiAgICAgICAqXG4gICAgICAgKiBAbWVtYmVyT2YgcGxhdGZvcm0ub3NcbiAgICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBPUyBzdHJpbmcuXG4gICAgICAgKi9cbiAgICAgICd0b1N0cmluZyc6IGZ1bmN0aW9uKCkgeyByZXR1cm4gJ251bGwnOyB9XG4gICAgfTtcblxuICAgIHBsYXRmb3JtLnBhcnNlID0gcGFyc2U7XG4gICAgcGxhdGZvcm0udG9TdHJpbmcgPSB0b1N0cmluZ1BsYXRmb3JtO1xuXG4gICAgaWYgKHBsYXRmb3JtLnZlcnNpb24pIHtcbiAgICAgIGRlc2NyaXB0aW9uLnVuc2hpZnQodmVyc2lvbik7XG4gICAgfVxuICAgIGlmIChwbGF0Zm9ybS5uYW1lKSB7XG4gICAgICBkZXNjcmlwdGlvbi51bnNoaWZ0KG5hbWUpO1xuICAgIH1cbiAgICBpZiAob3MgJiYgbmFtZSAmJiAhKG9zID09IFN0cmluZyhvcykuc3BsaXQoJyAnKVswXSAmJiAob3MgPT0gbmFtZS5zcGxpdCgnICcpWzBdIHx8IHByb2R1Y3QpKSkge1xuICAgICAgZGVzY3JpcHRpb24ucHVzaChwcm9kdWN0ID8gJygnICsgb3MgKyAnKScgOiAnb24gJyArIG9zKTtcbiAgICB9XG4gICAgaWYgKGRlc2NyaXB0aW9uLmxlbmd0aCkge1xuICAgICAgcGxhdGZvcm0uZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbi5qb2luKCcgJyk7XG4gICAgfVxuICAgIHJldHVybiBwbGF0Zm9ybTtcbiAgfVxuXG4gIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gIC8vIEV4cG9ydCBwbGF0Zm9ybS5cbiAgdmFyIHBsYXRmb3JtID0gcGFyc2UoKTtcblxuICAvLyBTb21lIEFNRCBidWlsZCBvcHRpbWl6ZXJzLCBsaWtlIHIuanMsIGNoZWNrIGZvciBjb25kaXRpb24gcGF0dGVybnMgbGlrZSB0aGUgZm9sbG93aW5nOlxuICBpZiAodHlwZW9mIGRlZmluZSA9PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBkZWZpbmUuYW1kID09ICdvYmplY3QnICYmIGRlZmluZS5hbWQpIHtcbiAgICAvLyBFeHBvc2UgcGxhdGZvcm0gb24gdGhlIGdsb2JhbCBvYmplY3QgdG8gcHJldmVudCBlcnJvcnMgd2hlbiBwbGF0Zm9ybSBpc1xuICAgIC8vIGxvYWRlZCBieSBhIHNjcmlwdCB0YWcgaW4gdGhlIHByZXNlbmNlIG9mIGFuIEFNRCBsb2FkZXIuXG4gICAgLy8gU2VlIGh0dHA6Ly9yZXF1aXJlanMub3JnL2RvY3MvZXJyb3JzLmh0bWwjbWlzbWF0Y2ggZm9yIG1vcmUgZGV0YWlscy5cbiAgICByb290LnBsYXRmb3JtID0gcGxhdGZvcm07XG5cbiAgICAvLyBEZWZpbmUgYXMgYW4gYW5vbnltb3VzIG1vZHVsZSBzbyBwbGF0Zm9ybSBjYW4gYmUgYWxpYXNlZCB0aHJvdWdoIHBhdGggbWFwcGluZy5cbiAgICBkZWZpbmUoZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gcGxhdGZvcm07XG4gICAgfSk7XG4gIH1cbiAgLy8gQ2hlY2sgZm9yIGBleHBvcnRzYCBhZnRlciBgZGVmaW5lYCBpbiBjYXNlIGEgYnVpbGQgb3B0aW1pemVyIGFkZHMgYW4gYGV4cG9ydHNgIG9iamVjdC5cbiAgZWxzZSBpZiAoZnJlZUV4cG9ydHMgJiYgZnJlZU1vZHVsZSkge1xuICAgIC8vIEV4cG9ydCBmb3IgQ29tbW9uSlMgc3VwcG9ydC5cbiAgICBmb3JPd24ocGxhdGZvcm0sIGZ1bmN0aW9uKHZhbHVlLCBrZXkpIHtcbiAgICAgIGZyZWVFeHBvcnRzW2tleV0gPSB2YWx1ZTtcbiAgICB9KTtcbiAgfVxuICBlbHNlIHtcbiAgICAvLyBFeHBvcnQgdG8gdGhlIGdsb2JhbCBvYmplY3QuXG4gICAgcm9vdC5wbGF0Zm9ybSA9IHBsYXRmb3JtO1xuICB9XG59LmNhbGwodGhpcykpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/platform/platform.js\n"); + +/***/ }), + +/***/ "./node_modules/process/browser.js": +/*!*****************************************!*\ + !*** ./node_modules/process/browser.js ***! + \*****************************************/ +/***/ (function(module) { + +eval("// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcHJvY2Vzcy9icm93c2VyLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0Isc0JBQXNCO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxzQ0FBc0M7O0FBRXRDO0FBQ0E7QUFDQTs7QUFFQSw0QkFBNEI7QUFDNUI7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9wcm9jZXNzL2Jyb3dzZXIuanM/NWNiMyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzaGltIGZvciB1c2luZyBwcm9jZXNzIGluIGJyb3dzZXJcbnZhciBwcm9jZXNzID0gbW9kdWxlLmV4cG9ydHMgPSB7fTtcblxuLy8gY2FjaGVkIGZyb20gd2hhdGV2ZXIgZ2xvYmFsIGlzIHByZXNlbnQgc28gdGhhdCB0ZXN0IHJ1bm5lcnMgdGhhdCBzdHViIGl0XG4vLyBkb24ndCBicmVhayB0aGluZ3MuICBCdXQgd2UgbmVlZCB0byB3cmFwIGl0IGluIGEgdHJ5IGNhdGNoIGluIGNhc2UgaXQgaXNcbi8vIHdyYXBwZWQgaW4gc3RyaWN0IG1vZGUgY29kZSB3aGljaCBkb2Vzbid0IGRlZmluZSBhbnkgZ2xvYmFscy4gIEl0J3MgaW5zaWRlIGFcbi8vIGZ1bmN0aW9uIGJlY2F1c2UgdHJ5L2NhdGNoZXMgZGVvcHRpbWl6ZSBpbiBjZXJ0YWluIGVuZ2luZXMuXG5cbnZhciBjYWNoZWRTZXRUaW1lb3V0O1xudmFyIGNhY2hlZENsZWFyVGltZW91dDtcblxuZnVuY3Rpb24gZGVmYXVsdFNldFRpbW91dCgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3NldFRpbWVvdXQgaGFzIG5vdCBiZWVuIGRlZmluZWQnKTtcbn1cbmZ1bmN0aW9uIGRlZmF1bHRDbGVhclRpbWVvdXQgKCkge1xuICAgIHRocm93IG5ldyBFcnJvcignY2xlYXJUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkJyk7XG59XG4oZnVuY3Rpb24gKCkge1xuICAgIHRyeSB7XG4gICAgICAgIGlmICh0eXBlb2Ygc2V0VGltZW91dCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgY2FjaGVkU2V0VGltZW91dCA9IHNldFRpbWVvdXQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjYWNoZWRTZXRUaW1lb3V0ID0gZGVmYXVsdFNldFRpbW91dDtcbiAgICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY2FjaGVkU2V0VGltZW91dCA9IGRlZmF1bHRTZXRUaW1vdXQ7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIGlmICh0eXBlb2YgY2xlYXJUaW1lb3V0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBjYWNoZWRDbGVhclRpbWVvdXQgPSBjbGVhclRpbWVvdXQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjYWNoZWRDbGVhclRpbWVvdXQgPSBkZWZhdWx0Q2xlYXJUaW1lb3V0O1xuICAgICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjYWNoZWRDbGVhclRpbWVvdXQgPSBkZWZhdWx0Q2xlYXJUaW1lb3V0O1xuICAgIH1cbn0gKCkpXG5mdW5jdGlvbiBydW5UaW1lb3V0KGZ1bikge1xuICAgIGlmIChjYWNoZWRTZXRUaW1lb3V0ID09PSBzZXRUaW1lb3V0KSB7XG4gICAgICAgIC8vbm9ybWFsIGVudmlyb21lbnRzIGluIHNhbmUgc2l0dWF0aW9uc1xuICAgICAgICByZXR1cm4gc2V0VGltZW91dChmdW4sIDApO1xuICAgIH1cbiAgICAvLyBpZiBzZXRUaW1lb3V0IHdhc24ndCBhdmFpbGFibGUgYnV0IHdhcyBsYXR0ZXIgZGVmaW5lZFxuICAgIGlmICgoY2FjaGVkU2V0VGltZW91dCA9PT0gZGVmYXVsdFNldFRpbW91dCB8fCAhY2FjaGVkU2V0VGltZW91dCkgJiYgc2V0VGltZW91dCkge1xuICAgICAgICBjYWNoZWRTZXRUaW1lb3V0ID0gc2V0VGltZW91dDtcbiAgICAgICAgcmV0dXJuIHNldFRpbWVvdXQoZnVuLCAwKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgLy8gd2hlbiB3aGVuIHNvbWVib2R5IGhhcyBzY3Jld2VkIHdpdGggc2V0VGltZW91dCBidXQgbm8gSS5FLiBtYWRkbmVzc1xuICAgICAgICByZXR1cm4gY2FjaGVkU2V0VGltZW91dChmdW4sIDApO1xuICAgIH0gY2F0Y2goZSl7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBXaGVuIHdlIGFyZSBpbiBJLkUuIGJ1dCB0aGUgc2NyaXB0IGhhcyBiZWVuIGV2YWxlZCBzbyBJLkUuIGRvZXNuJ3QgdHJ1c3QgdGhlIGdsb2JhbCBvYmplY3Qgd2hlbiBjYWxsZWQgbm9ybWFsbHlcbiAgICAgICAgICAgIHJldHVybiBjYWNoZWRTZXRUaW1lb3V0LmNhbGwobnVsbCwgZnVuLCAwKTtcbiAgICAgICAgfSBjYXRjaChlKXtcbiAgICAgICAgICAgIC8vIHNhbWUgYXMgYWJvdmUgYnV0IHdoZW4gaXQncyBhIHZlcnNpb24gb2YgSS5FLiB0aGF0IG11c3QgaGF2ZSB0aGUgZ2xvYmFsIG9iamVjdCBmb3IgJ3RoaXMnLCBob3BmdWxseSBvdXIgY29udGV4dCBjb3JyZWN0IG90aGVyd2lzZSBpdCB3aWxsIHRocm93IGEgZ2xvYmFsIGVycm9yXG4gICAgICAgICAgICByZXR1cm4gY2FjaGVkU2V0VGltZW91dC5jYWxsKHRoaXMsIGZ1biwgMCk7XG4gICAgICAgIH1cbiAgICB9XG5cblxufVxuZnVuY3Rpb24gcnVuQ2xlYXJUaW1lb3V0KG1hcmtlcikge1xuICAgIGlmIChjYWNoZWRDbGVhclRpbWVvdXQgPT09IGNsZWFyVGltZW91dCkge1xuICAgICAgICAvL25vcm1hbCBlbnZpcm9tZW50cyBpbiBzYW5lIHNpdHVhdGlvbnNcbiAgICAgICAgcmV0dXJuIGNsZWFyVGltZW91dChtYXJrZXIpO1xuICAgIH1cbiAgICAvLyBpZiBjbGVhclRpbWVvdXQgd2Fzbid0IGF2YWlsYWJsZSBidXQgd2FzIGxhdHRlciBkZWZpbmVkXG4gICAgaWYgKChjYWNoZWRDbGVhclRpbWVvdXQgPT09IGRlZmF1bHRDbGVhclRpbWVvdXQgfHwgIWNhY2hlZENsZWFyVGltZW91dCkgJiYgY2xlYXJUaW1lb3V0KSB7XG4gICAgICAgIGNhY2hlZENsZWFyVGltZW91dCA9IGNsZWFyVGltZW91dDtcbiAgICAgICAgcmV0dXJuIGNsZWFyVGltZW91dChtYXJrZXIpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICAvLyB3aGVuIHdoZW4gc29tZWJvZHkgaGFzIHNjcmV3ZWQgd2l0aCBzZXRUaW1lb3V0IGJ1dCBubyBJLkUuIG1hZGRuZXNzXG4gICAgICAgIHJldHVybiBjYWNoZWRDbGVhclRpbWVvdXQobWFya2VyKTtcbiAgICB9IGNhdGNoIChlKXtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIC8vIFdoZW4gd2UgYXJlIGluIEkuRS4gYnV0IHRoZSBzY3JpcHQgaGFzIGJlZW4gZXZhbGVkIHNvIEkuRS4gZG9lc24ndCAgdHJ1c3QgdGhlIGdsb2JhbCBvYmplY3Qgd2hlbiBjYWxsZWQgbm9ybWFsbHlcbiAgICAgICAgICAgIHJldHVybiBjYWNoZWRDbGVhclRpbWVvdXQuY2FsbChudWxsLCBtYXJrZXIpO1xuICAgICAgICB9IGNhdGNoIChlKXtcbiAgICAgICAgICAgIC8vIHNhbWUgYXMgYWJvdmUgYnV0IHdoZW4gaXQncyBhIHZlcnNpb24gb2YgSS5FLiB0aGF0IG11c3QgaGF2ZSB0aGUgZ2xvYmFsIG9iamVjdCBmb3IgJ3RoaXMnLCBob3BmdWxseSBvdXIgY29udGV4dCBjb3JyZWN0IG90aGVyd2lzZSBpdCB3aWxsIHRocm93IGEgZ2xvYmFsIGVycm9yLlxuICAgICAgICAgICAgLy8gU29tZSB2ZXJzaW9ucyBvZiBJLkUuIGhhdmUgZGlmZmVyZW50IHJ1bGVzIGZvciBjbGVhclRpbWVvdXQgdnMgc2V0VGltZW91dFxuICAgICAgICAgICAgcmV0dXJuIGNhY2hlZENsZWFyVGltZW91dC5jYWxsKHRoaXMsIG1hcmtlcik7XG4gICAgICAgIH1cbiAgICB9XG5cblxuXG59XG52YXIgcXVldWUgPSBbXTtcbnZhciBkcmFpbmluZyA9IGZhbHNlO1xudmFyIGN1cnJlbnRRdWV1ZTtcbnZhciBxdWV1ZUluZGV4ID0gLTE7XG5cbmZ1bmN0aW9uIGNsZWFuVXBOZXh0VGljaygpIHtcbiAgICBpZiAoIWRyYWluaW5nIHx8ICFjdXJyZW50UXVldWUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBkcmFpbmluZyA9IGZhbHNlO1xuICAgIGlmIChjdXJyZW50UXVldWUubGVuZ3RoKSB7XG4gICAgICAgIHF1ZXVlID0gY3VycmVudFF1ZXVlLmNvbmNhdChxdWV1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcXVldWVJbmRleCA9IC0xO1xuICAgIH1cbiAgICBpZiAocXVldWUubGVuZ3RoKSB7XG4gICAgICAgIGRyYWluUXVldWUoKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGRyYWluUXVldWUoKSB7XG4gICAgaWYgKGRyYWluaW5nKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmFyIHRpbWVvdXQgPSBydW5UaW1lb3V0KGNsZWFuVXBOZXh0VGljayk7XG4gICAgZHJhaW5pbmcgPSB0cnVlO1xuXG4gICAgdmFyIGxlbiA9IHF1ZXVlLmxlbmd0aDtcbiAgICB3aGlsZShsZW4pIHtcbiAgICAgICAgY3VycmVudFF1ZXVlID0gcXVldWU7XG4gICAgICAgIHF1ZXVlID0gW107XG4gICAgICAgIHdoaWxlICgrK3F1ZXVlSW5kZXggPCBsZW4pIHtcbiAgICAgICAgICAgIGlmIChjdXJyZW50UXVldWUpIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50UXVldWVbcXVldWVJbmRleF0ucnVuKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcXVldWVJbmRleCA9IC0xO1xuICAgICAgICBsZW4gPSBxdWV1ZS5sZW5ndGg7XG4gICAgfVxuICAgIGN1cnJlbnRRdWV1ZSA9IG51bGw7XG4gICAgZHJhaW5pbmcgPSBmYWxzZTtcbiAgICBydW5DbGVhclRpbWVvdXQodGltZW91dCk7XG59XG5cbnByb2Nlc3MubmV4dFRpY2sgPSBmdW5jdGlvbiAoZnVuKSB7XG4gICAgdmFyIGFyZ3MgPSBuZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aCAtIDEpO1xuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID4gMSkge1xuICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgYXJnc1tpIC0gMV0gPSBhcmd1bWVudHNbaV07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcXVldWUucHVzaChuZXcgSXRlbShmdW4sIGFyZ3MpKTtcbiAgICBpZiAocXVldWUubGVuZ3RoID09PSAxICYmICFkcmFpbmluZykge1xuICAgICAgICBydW5UaW1lb3V0KGRyYWluUXVldWUpO1xuICAgIH1cbn07XG5cbi8vIHY4IGxpa2VzIHByZWRpY3RpYmxlIG9iamVjdHNcbmZ1bmN0aW9uIEl0ZW0oZnVuLCBhcnJheSkge1xuICAgIHRoaXMuZnVuID0gZnVuO1xuICAgIHRoaXMuYXJyYXkgPSBhcnJheTtcbn1cbkl0ZW0ucHJvdG90eXBlLnJ1biA9IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLmZ1bi5hcHBseShudWxsLCB0aGlzLmFycmF5KTtcbn07XG5wcm9jZXNzLnRpdGxlID0gJ2Jyb3dzZXInO1xucHJvY2Vzcy5icm93c2VyID0gdHJ1ZTtcbnByb2Nlc3MuZW52ID0ge307XG5wcm9jZXNzLmFyZ3YgPSBbXTtcbnByb2Nlc3MudmVyc2lvbiA9ICcnOyAvLyBlbXB0eSBzdHJpbmcgdG8gYXZvaWQgcmVnZXhwIGlzc3Vlc1xucHJvY2Vzcy52ZXJzaW9ucyA9IHt9O1xuXG5mdW5jdGlvbiBub29wKCkge31cblxucHJvY2Vzcy5vbiA9IG5vb3A7XG5wcm9jZXNzLmFkZExpc3RlbmVyID0gbm9vcDtcbnByb2Nlc3Mub25jZSA9IG5vb3A7XG5wcm9jZXNzLm9mZiA9IG5vb3A7XG5wcm9jZXNzLnJlbW92ZUxpc3RlbmVyID0gbm9vcDtcbnByb2Nlc3MucmVtb3ZlQWxsTGlzdGVuZXJzID0gbm9vcDtcbnByb2Nlc3MuZW1pdCA9IG5vb3A7XG5wcm9jZXNzLnByZXBlbmRMaXN0ZW5lciA9IG5vb3A7XG5wcm9jZXNzLnByZXBlbmRPbmNlTGlzdGVuZXIgPSBub29wO1xuXG5wcm9jZXNzLmxpc3RlbmVycyA9IGZ1bmN0aW9uIChuYW1lKSB7IHJldHVybiBbXSB9XG5cbnByb2Nlc3MuYmluZGluZyA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdwcm9jZXNzLmJpbmRpbmcgaXMgbm90IHN1cHBvcnRlZCcpO1xufTtcblxucHJvY2Vzcy5jd2QgPSBmdW5jdGlvbiAoKSB7IHJldHVybiAnLycgfTtcbnByb2Nlc3MuY2hkaXIgPSBmdW5jdGlvbiAoZGlyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdwcm9jZXNzLmNoZGlyIGlzIG5vdCBzdXBwb3J0ZWQnKTtcbn07XG5wcm9jZXNzLnVtYXNrID0gZnVuY3Rpb24oKSB7IHJldHVybiAwOyB9O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/process/browser.js\n"); + +/***/ }), + +/***/ "./node_modules/react-dom/cjs/react-dom.development.js": +/*!*************************************************************!*\ + !*** ./node_modules/react-dom/cjs/react-dom.development.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("/** @license React v17.0.2\n * react-dom.development.js\n *\n * Copyright (c) Facebook, Inc. and its 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\n\n\nif (true) {\n (function() {\n'use strict';\n\nvar React = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\nvar _assign = __webpack_require__(/*! object-assign */ \"./node_modules/next/dist/build/polyfills/object-assign.js\");\nvar Scheduler = __webpack_require__(/*! scheduler */ \"./node_modules/scheduler/index.js\");\nvar tracing = __webpack_require__(/*! scheduler/tracing */ \"./node_modules/scheduler/tracing.js\");\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\n// by calls to these methods by a Babel plugin.\n//\n// In PROD (or in packages without access to React internals),\n// they are left as they are instead.\n\nfunction warn(format) {\n {\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\n printWarning('warn', format, args);\n }\n}\nfunction error(format) {\n {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n printWarning('error', format, args);\n }\n}\n\nfunction printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n }\n\n var argsWithFormat = args.map(function (item) {\n return '' + item;\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n}\n\nif (!React) {\n {\n throw Error( \"ReactDOM was loaded before React. Make sure you load the React package before loading ReactDOM.\" );\n }\n}\n\nvar FunctionComponent = 0;\nvar ClassComponent = 1;\nvar IndeterminateComponent = 2; // Before we know whether it is function or class\n\nvar HostRoot = 3; // Root of a host tree. Could be nested inside another node.\n\nvar HostPortal = 4; // A subtree. Could be an entry point to a different renderer.\n\nvar HostComponent = 5;\nvar HostText = 6;\nvar Fragment = 7;\nvar Mode = 8;\nvar ContextConsumer = 9;\nvar ContextProvider = 10;\nvar ForwardRef = 11;\nvar Profiler = 12;\nvar SuspenseComponent = 13;\nvar MemoComponent = 14;\nvar SimpleMemoComponent = 15;\nvar LazyComponent = 16;\nvar IncompleteClassComponent = 17;\nvar DehydratedFragment = 18;\nvar SuspenseListComponent = 19;\nvar FundamentalComponent = 20;\nvar ScopeComponent = 21;\nvar Block = 22;\nvar OffscreenComponent = 23;\nvar LegacyHiddenComponent = 24;\n\n// Filter certain DOM attributes (e.g. src, href) if their values are empty strings.\n\nvar enableProfilerTimer = true; // Record durations for commit and passive effects phases.\n\nvar enableFundamentalAPI = false; // Experimental Scope support.\nvar enableNewReconciler = false; // Errors that are thrown while unmounting (or after in the case of passive effects)\nvar warnAboutStringRefs = false;\n\nvar allNativeEvents = new Set();\n/**\n * Mapping from registration name to event name\n */\n\n\nvar registrationNameDependencies = {};\n/**\n * Mapping from lowercase registration names to the properly cased version,\n * used to warn in the case of missing event handlers. Available\n * only in true.\n * @type {Object}\n */\n\nvar possibleRegistrationNames = {} ; // Trust the developer to only use possibleRegistrationNames in true\n\nfunction registerTwoPhaseEvent(registrationName, dependencies) {\n registerDirectEvent(registrationName, dependencies);\n registerDirectEvent(registrationName + 'Capture', dependencies);\n}\nfunction registerDirectEvent(registrationName, dependencies) {\n {\n if (registrationNameDependencies[registrationName]) {\n error('EventRegistry: More than one plugin attempted to publish the same ' + 'registration name, `%s`.', registrationName);\n }\n }\n\n registrationNameDependencies[registrationName] = dependencies;\n\n {\n var lowerCasedName = registrationName.toLowerCase();\n possibleRegistrationNames[lowerCasedName] = registrationName;\n\n if (registrationName === 'onDoubleClick') {\n possibleRegistrationNames.ondblclick = registrationName;\n }\n }\n\n for (var i = 0; i < dependencies.length; i++) {\n allNativeEvents.add(dependencies[i]);\n }\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined');\n\n// A reserved attribute.\n// It is handled by React separately and shouldn't be written to the DOM.\nvar RESERVED = 0; // A simple string attribute.\n// Attributes that aren't in the filter are presumed to have this type.\n\nvar STRING = 1; // A string attribute that accepts booleans in React. In HTML, these are called\n// \"enumerated\" attributes with \"true\" and \"false\" as possible values.\n// When true, it should be set to a \"true\" string.\n// When false, it should be set to a \"false\" string.\n\nvar BOOLEANISH_STRING = 2; // A real boolean attribute.\n// When true, it should be present (set either to an empty string or its name).\n// When false, it should be omitted.\n\nvar BOOLEAN = 3; // An attribute that can be used as a flag as well as with a value.\n// When true, it should be present (set either to an empty string or its name).\n// When false, it should be omitted.\n// For any other value, should be present with that value.\n\nvar OVERLOADED_BOOLEAN = 4; // An attribute that must be numeric or parse as a numeric.\n// When falsy, it should be removed.\n\nvar NUMERIC = 5; // An attribute that must be positive numeric or parse as a positive numeric.\n// When falsy, it should be removed.\n\nvar POSITIVE_NUMERIC = 6;\n\n/* eslint-disable max-len */\nvar ATTRIBUTE_NAME_START_CHAR = \":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\";\n/* eslint-enable max-len */\n\nvar ATTRIBUTE_NAME_CHAR = ATTRIBUTE_NAME_START_CHAR + \"\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040\";\nvar ROOT_ATTRIBUTE_NAME = 'data-reactroot';\nvar VALID_ATTRIBUTE_NAME_REGEX = new RegExp('^[' + ATTRIBUTE_NAME_START_CHAR + '][' + ATTRIBUTE_NAME_CHAR + ']*$');\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar illegalAttributeNameCache = {};\nvar validatedAttributeNameCache = {};\nfunction isAttributeNameSafe(attributeName) {\n if (hasOwnProperty.call(validatedAttributeNameCache, attributeName)) {\n return true;\n }\n\n if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) {\n return false;\n }\n\n if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) {\n validatedAttributeNameCache[attributeName] = true;\n return true;\n }\n\n illegalAttributeNameCache[attributeName] = true;\n\n {\n error('Invalid attribute name: `%s`', attributeName);\n }\n\n return false;\n}\nfunction shouldIgnoreAttribute(name, propertyInfo, isCustomComponentTag) {\n if (propertyInfo !== null) {\n return propertyInfo.type === RESERVED;\n }\n\n if (isCustomComponentTag) {\n return false;\n }\n\n if (name.length > 2 && (name[0] === 'o' || name[0] === 'O') && (name[1] === 'n' || name[1] === 'N')) {\n return true;\n }\n\n return false;\n}\nfunction shouldRemoveAttributeWithWarning(name, value, propertyInfo, isCustomComponentTag) {\n if (propertyInfo !== null && propertyInfo.type === RESERVED) {\n return false;\n }\n\n switch (typeof value) {\n case 'function': // $FlowIssue symbol is perfectly valid here\n\n case 'symbol':\n // eslint-disable-line\n return true;\n\n case 'boolean':\n {\n if (isCustomComponentTag) {\n return false;\n }\n\n if (propertyInfo !== null) {\n return !propertyInfo.acceptsBooleans;\n } else {\n var prefix = name.toLowerCase().slice(0, 5);\n return prefix !== 'data-' && prefix !== 'aria-';\n }\n }\n\n default:\n return false;\n }\n}\nfunction shouldRemoveAttribute(name, value, propertyInfo, isCustomComponentTag) {\n if (value === null || typeof value === 'undefined') {\n return true;\n }\n\n if (shouldRemoveAttributeWithWarning(name, value, propertyInfo, isCustomComponentTag)) {\n return true;\n }\n\n if (isCustomComponentTag) {\n return false;\n }\n\n if (propertyInfo !== null) {\n\n switch (propertyInfo.type) {\n case BOOLEAN:\n return !value;\n\n case OVERLOADED_BOOLEAN:\n return value === false;\n\n case NUMERIC:\n return isNaN(value);\n\n case POSITIVE_NUMERIC:\n return isNaN(value) || value < 1;\n }\n }\n\n return false;\n}\nfunction getPropertyInfo(name) {\n return properties.hasOwnProperty(name) ? properties[name] : null;\n}\n\nfunction PropertyInfoRecord(name, type, mustUseProperty, attributeName, attributeNamespace, sanitizeURL, removeEmptyString) {\n this.acceptsBooleans = type === BOOLEANISH_STRING || type === BOOLEAN || type === OVERLOADED_BOOLEAN;\n this.attributeName = attributeName;\n this.attributeNamespace = attributeNamespace;\n this.mustUseProperty = mustUseProperty;\n this.propertyName = name;\n this.type = type;\n this.sanitizeURL = sanitizeURL;\n this.removeEmptyString = removeEmptyString;\n} // When adding attributes to this list, be sure to also add them to\n// the `possibleStandardNames` module to ensure casing and incorrect\n// name warnings.\n\n\nvar properties = {}; // These props are reserved by React. They shouldn't be written to the DOM.\n\nvar reservedProps = ['children', 'dangerouslySetInnerHTML', // TODO: This prevents the assignment of defaultValue to regular\n// elements (not just inputs). Now that ReactDOMInput assigns to the\n// defaultValue property -- do we need this?\n'defaultValue', 'defaultChecked', 'innerHTML', 'suppressContentEditableWarning', 'suppressHydrationWarning', 'style'];\nreservedProps.forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, RESERVED, false, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // A few React string attributes have a different name.\n// This is a mapping from React prop names to the attribute names.\n\n[['acceptCharset', 'accept-charset'], ['className', 'class'], ['htmlFor', 'for'], ['httpEquiv', 'http-equiv']].forEach(function (_ref) {\n var name = _ref[0],\n attributeName = _ref[1];\n properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n attributeName, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These are \"enumerated\" HTML attributes that accept \"true\" and \"false\".\n// In React, we let users pass `true` and `false` even though technically\n// these aren't boolean attributes (they are coerced to strings).\n\n['contentEditable', 'draggable', 'spellCheck', 'value'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, BOOLEANISH_STRING, false, // mustUseProperty\n name.toLowerCase(), // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These are \"enumerated\" SVG attributes that accept \"true\" and \"false\".\n// In React, we let users pass `true` and `false` even though technically\n// these aren't boolean attributes (they are coerced to strings).\n// Since these are SVG attributes, their attribute names are case-sensitive.\n\n['autoReverse', 'externalResourcesRequired', 'focusable', 'preserveAlpha'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, BOOLEANISH_STRING, false, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These are HTML boolean attributes.\n\n['allowFullScreen', 'async', // Note: there is a special case that prevents it from being written to the DOM\n// on the client side because the browsers are inconsistent. Instead we call focus().\n'autoFocus', 'autoPlay', 'controls', 'default', 'defer', 'disabled', 'disablePictureInPicture', 'disableRemotePlayback', 'formNoValidate', 'hidden', 'loop', 'noModule', 'noValidate', 'open', 'playsInline', 'readOnly', 'required', 'reversed', 'scoped', 'seamless', // Microdata\n'itemScope'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, BOOLEAN, false, // mustUseProperty\n name.toLowerCase(), // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These are the few React props that we set as DOM properties\n// rather than attributes. These are all booleans.\n\n['checked', // Note: `option.selected` is not updated if `select.multiple` is\n// disabled with `removeAttribute`. We have special logic for handling this.\n'multiple', 'muted', 'selected' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, BOOLEAN, true, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These are HTML attributes that are \"overloaded booleans\": they behave like\n// booleans, but can also accept a string value.\n\n['capture', 'download' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, OVERLOADED_BOOLEAN, false, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These are HTML attributes that must be positive numbers.\n\n['cols', 'rows', 'size', 'span' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, POSITIVE_NUMERIC, false, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These are HTML attributes that must be numbers.\n\n['rowSpan', 'start'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, NUMERIC, false, // mustUseProperty\n name.toLowerCase(), // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n});\nvar CAMELIZE = /[\\-\\:]([a-z])/g;\n\nvar capitalize = function (token) {\n return token[1].toUpperCase();\n}; // This is a list of all SVG attributes that need special casing, namespacing,\n// or boolean value assignment. Regular attributes that just accept strings\n// and have the same names are omitted, just like in the HTML attribute filter.\n// Some of these attributes can be hard to find. This list was created by\n// scraping the MDN documentation.\n\n\n['accent-height', 'alignment-baseline', 'arabic-form', 'baseline-shift', 'cap-height', 'clip-path', 'clip-rule', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'dominant-baseline', 'enable-background', 'fill-opacity', 'fill-rule', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'glyph-name', 'glyph-orientation-horizontal', 'glyph-orientation-vertical', 'horiz-adv-x', 'horiz-origin-x', 'image-rendering', 'letter-spacing', 'lighting-color', 'marker-end', 'marker-mid', 'marker-start', 'overline-position', 'overline-thickness', 'paint-order', 'panose-1', 'pointer-events', 'rendering-intent', 'shape-rendering', 'stop-color', 'stop-opacity', 'strikethrough-position', 'strikethrough-thickness', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke-width', 'text-anchor', 'text-decoration', 'text-rendering', 'underline-position', 'underline-thickness', 'unicode-bidi', 'unicode-range', 'units-per-em', 'v-alphabetic', 'v-hanging', 'v-ideographic', 'v-mathematical', 'vector-effect', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'word-spacing', 'writing-mode', 'xmlns:xlink', 'x-height' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (attributeName) {\n var name = attributeName.replace(CAMELIZE, capitalize);\n properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n attributeName, null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // String SVG attributes with the xlink namespace.\n\n['xlink:actuate', 'xlink:arcrole', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (attributeName) {\n var name = attributeName.replace(CAMELIZE, capitalize);\n properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n attributeName, 'http://www.w3.org/1999/xlink', false, // sanitizeURL\n false);\n}); // String SVG attributes with the xml namespace.\n\n['xml:base', 'xml:lang', 'xml:space' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (attributeName) {\n var name = attributeName.replace(CAMELIZE, capitalize);\n properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n attributeName, 'http://www.w3.org/XML/1998/namespace', false, // sanitizeURL\n false);\n}); // These attribute exists both in HTML and SVG.\n// The attribute name is case-sensitive in SVG so we can't just use\n// the React name like we do for attributes that exist only in HTML.\n\n['tabIndex', 'crossOrigin'].forEach(function (attributeName) {\n properties[attributeName] = new PropertyInfoRecord(attributeName, STRING, false, // mustUseProperty\n attributeName.toLowerCase(), // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These attributes accept URLs. These must not allow javascript: URLS.\n// These will also need to accept Trusted Types object in the future.\n\nvar xlinkHref = 'xlinkHref';\nproperties[xlinkHref] = new PropertyInfoRecord('xlinkHref', STRING, false, // mustUseProperty\n'xlink:href', 'http://www.w3.org/1999/xlink', true, // sanitizeURL\nfalse);\n['src', 'href', 'action', 'formAction'].forEach(function (attributeName) {\n properties[attributeName] = new PropertyInfoRecord(attributeName, STRING, false, // mustUseProperty\n attributeName.toLowerCase(), // attributeName\n null, // attributeNamespace\n true, // sanitizeURL\n true);\n});\n\n// and any newline or tab are filtered out as if they're not part of the URL.\n// https://url.spec.whatwg.org/#url-parsing\n// Tab or newline are defined as \\r\\n\\t:\n// https://infra.spec.whatwg.org/#ascii-tab-or-newline\n// A C0 control is a code point in the range \\u0000 NULL to \\u001F\n// INFORMATION SEPARATOR ONE, inclusive:\n// https://infra.spec.whatwg.org/#c0-control-or-space\n\n/* eslint-disable max-len */\n\nvar isJavaScriptProtocol = /^[\\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;\nvar didWarn = false;\n\nfunction sanitizeURL(url) {\n {\n if (!didWarn && isJavaScriptProtocol.test(url)) {\n didWarn = true;\n\n error('A future version of React will block javascript: URLs as a security precaution. ' + 'Use event handlers instead if you can. If you need to generate unsafe HTML try ' + 'using dangerouslySetInnerHTML instead. React was passed %s.', JSON.stringify(url));\n }\n }\n}\n\n/**\n * Get the value for a property on a node. Only used in DEV for SSR validation.\n * The \"expected\" argument is used as a hint of what the expected value is.\n * Some properties have multiple equivalent values.\n */\nfunction getValueForProperty(node, name, expected, propertyInfo) {\n {\n if (propertyInfo.mustUseProperty) {\n var propertyName = propertyInfo.propertyName;\n return node[propertyName];\n } else {\n if ( propertyInfo.sanitizeURL) {\n // If we haven't fully disabled javascript: URLs, and if\n // the hydration is successful of a javascript: URL, we\n // still want to warn on the client.\n sanitizeURL('' + expected);\n }\n\n var attributeName = propertyInfo.attributeName;\n var stringValue = null;\n\n if (propertyInfo.type === OVERLOADED_BOOLEAN) {\n if (node.hasAttribute(attributeName)) {\n var value = node.getAttribute(attributeName);\n\n if (value === '') {\n return true;\n }\n\n if (shouldRemoveAttribute(name, expected, propertyInfo, false)) {\n return value;\n }\n\n if (value === '' + expected) {\n return expected;\n }\n\n return value;\n }\n } else if (node.hasAttribute(attributeName)) {\n if (shouldRemoveAttribute(name, expected, propertyInfo, false)) {\n // We had an attribute but shouldn't have had one, so read it\n // for the error message.\n return node.getAttribute(attributeName);\n }\n\n if (propertyInfo.type === BOOLEAN) {\n // If this was a boolean, it doesn't matter what the value is\n // the fact that we have it is the same as the expected.\n return expected;\n } // Even if this property uses a namespace we use getAttribute\n // because we assume its namespaced name is the same as our config.\n // To use getAttributeNS we need the local name which we don't have\n // in our config atm.\n\n\n stringValue = node.getAttribute(attributeName);\n }\n\n if (shouldRemoveAttribute(name, expected, propertyInfo, false)) {\n return stringValue === null ? expected : stringValue;\n } else if (stringValue === '' + expected) {\n return expected;\n } else {\n return stringValue;\n }\n }\n }\n}\n/**\n * Get the value for a attribute on a node. Only used in DEV for SSR validation.\n * The third argument is used as a hint of what the expected value is. Some\n * attributes have multiple equivalent values.\n */\n\nfunction getValueForAttribute(node, name, expected) {\n {\n if (!isAttributeNameSafe(name)) {\n return;\n } // If the object is an opaque reference ID, it's expected that\n // the next prop is different than the server value, so just return\n // expected\n\n\n if (isOpaqueHydratingObject(expected)) {\n return expected;\n }\n\n if (!node.hasAttribute(name)) {\n return expected === undefined ? undefined : null;\n }\n\n var value = node.getAttribute(name);\n\n if (value === '' + expected) {\n return expected;\n }\n\n return value;\n }\n}\n/**\n * Sets the value for a property on a node.\n *\n * @param {DOMElement} node\n * @param {string} name\n * @param {*} value\n */\n\nfunction setValueForProperty(node, name, value, isCustomComponentTag) {\n var propertyInfo = getPropertyInfo(name);\n\n if (shouldIgnoreAttribute(name, propertyInfo, isCustomComponentTag)) {\n return;\n }\n\n if (shouldRemoveAttribute(name, value, propertyInfo, isCustomComponentTag)) {\n value = null;\n } // If the prop isn't in the special list, treat it as a simple attribute.\n\n\n if (isCustomComponentTag || propertyInfo === null) {\n if (isAttributeNameSafe(name)) {\n var _attributeName = name;\n\n if (value === null) {\n node.removeAttribute(_attributeName);\n } else {\n node.setAttribute(_attributeName, '' + value);\n }\n }\n\n return;\n }\n\n var mustUseProperty = propertyInfo.mustUseProperty;\n\n if (mustUseProperty) {\n var propertyName = propertyInfo.propertyName;\n\n if (value === null) {\n var type = propertyInfo.type;\n node[propertyName] = type === BOOLEAN ? false : '';\n } else {\n // Contrary to `setAttribute`, object properties are properly\n // `toString`ed by IE8/9.\n node[propertyName] = value;\n }\n\n return;\n } // The rest are treated as attributes with special cases.\n\n\n var attributeName = propertyInfo.attributeName,\n attributeNamespace = propertyInfo.attributeNamespace;\n\n if (value === null) {\n node.removeAttribute(attributeName);\n } else {\n var _type = propertyInfo.type;\n var attributeValue;\n\n if (_type === BOOLEAN || _type === OVERLOADED_BOOLEAN && value === true) {\n // If attribute type is boolean, we know for sure it won't be an execution sink\n // and we won't require Trusted Type here.\n attributeValue = '';\n } else {\n // `setAttribute` with objects becomes only `[object]` in IE8/9,\n // ('' + value) makes it output the correct toString()-value.\n {\n attributeValue = '' + value;\n }\n\n if (propertyInfo.sanitizeURL) {\n sanitizeURL(attributeValue.toString());\n }\n }\n\n if (attributeNamespace) {\n node.setAttributeNS(attributeNamespace, attributeName, attributeValue);\n } else {\n node.setAttribute(attributeName, attributeValue);\n }\n }\n}\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar REACT_ELEMENT_TYPE = 0xeac7;\nvar REACT_PORTAL_TYPE = 0xeaca;\nvar REACT_FRAGMENT_TYPE = 0xeacb;\nvar REACT_STRICT_MODE_TYPE = 0xeacc;\nvar REACT_PROFILER_TYPE = 0xead2;\nvar REACT_PROVIDER_TYPE = 0xeacd;\nvar REACT_CONTEXT_TYPE = 0xeace;\nvar REACT_FORWARD_REF_TYPE = 0xead0;\nvar REACT_SUSPENSE_TYPE = 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = 0xead8;\nvar REACT_MEMO_TYPE = 0xead3;\nvar REACT_LAZY_TYPE = 0xead4;\nvar REACT_BLOCK_TYPE = 0xead9;\nvar REACT_SERVER_BLOCK_TYPE = 0xeada;\nvar REACT_FUNDAMENTAL_TYPE = 0xead5;\nvar REACT_SCOPE_TYPE = 0xead7;\nvar REACT_OPAQUE_ID_TYPE = 0xeae0;\nvar REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1;\nvar REACT_OFFSCREEN_TYPE = 0xeae2;\nvar REACT_LEGACY_HIDDEN_TYPE = 0xeae3;\n\nif (typeof Symbol === 'function' && Symbol.for) {\n var symbolFor = Symbol.for;\n REACT_ELEMENT_TYPE = symbolFor('react.element');\n REACT_PORTAL_TYPE = symbolFor('react.portal');\n REACT_FRAGMENT_TYPE = symbolFor('react.fragment');\n REACT_STRICT_MODE_TYPE = symbolFor('react.strict_mode');\n REACT_PROFILER_TYPE = symbolFor('react.profiler');\n REACT_PROVIDER_TYPE = symbolFor('react.provider');\n REACT_CONTEXT_TYPE = symbolFor('react.context');\n REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref');\n REACT_SUSPENSE_TYPE = symbolFor('react.suspense');\n REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list');\n REACT_MEMO_TYPE = symbolFor('react.memo');\n REACT_LAZY_TYPE = symbolFor('react.lazy');\n REACT_BLOCK_TYPE = symbolFor('react.block');\n REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block');\n REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental');\n REACT_SCOPE_TYPE = symbolFor('react.scope');\n REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id');\n REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode');\n REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen');\n REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden');\n}\n\nvar MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\n return null;\n }\n\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n\n return null;\n}\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n disabledDepth++;\n }\n}\nfunction reenableLogs() {\n {\n disabledDepth--;\n\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n log: _assign({}, props, {\n value: prevLog\n }),\n info: _assign({}, props, {\n value: prevInfo\n }),\n warn: _assign({}, props, {\n value: prevWarn\n }),\n error: _assign({}, props, {\n value: prevError\n }),\n group: _assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: _assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: _assign({}, props, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n if (disabledDepth < 0) {\n error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n }\n }\n}\n\nvar ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || '';\n }\n } // We use the prefix to ensure our stacks line up with native stack frames.\n\n\n return '\\n' + prefix + name;\n }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n}\n\nfunction describeNativeComponentFrame(fn, construct) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if (!fn || reentry) {\n return '';\n }\n\n {\n var frame = componentFrameCache.get(fn);\n\n if (frame !== undefined) {\n return frame;\n }\n }\n\n var control;\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n\n {\n previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function\n // for warnings.\n\n ReactCurrentDispatcher.current = null;\n disableLogs();\n }\n\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function () {\n throw Error();\n }; // $FlowFixMe\n\n\n Object.defineProperty(Fake.prototype, 'props', {\n set: function () {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n\n if (typeof Reflect === 'object' && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n }\n\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n }\n\n fn();\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === 'string') {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sample.stack.split('\\n');\n var controlLines = control.stack.split('\\n');\n var s = sampleLines.length - 1;\n var c = controlLines.length - 1;\n\n while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n\n for (; s >= 1 && c >= 0; s--, c--) {\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at ');\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, _frame);\n }\n } // Return the line we found.\n\n\n return _frame;\n }\n } while (s >= 1 && c >= 0);\n }\n\n break;\n }\n }\n }\n } finally {\n reentry = false;\n\n {\n ReactCurrentDispatcher.current = previousDispatcher;\n reenableLogs();\n }\n\n Error.prepareStackTrace = previousPrepareStackTrace;\n } // Fallback to just using the name if we couldn't make it throw.\n\n\n var name = fn ? fn.displayName || fn.name : '';\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n\n return syntheticFrame;\n}\n\nfunction describeClassComponentFrame(ctor, source, ownerFn) {\n {\n return describeNativeComponentFrame(ctor, true);\n }\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n}\n\nfunction shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n if (type == null) {\n return '';\n }\n\n if (typeof type === 'function') {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n\n if (typeof type === 'string') {\n return describeBuiltInComponentFrame(type);\n }\n\n switch (type) {\n case REACT_SUSPENSE_TYPE:\n return describeBuiltInComponentFrame('Suspense');\n\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame('SuspenseList');\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n\n case REACT_MEMO_TYPE:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n case REACT_BLOCK_TYPE:\n return describeFunctionComponentFrame(type._render);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n\n return '';\n}\n\nfunction describeFiber(fiber) {\n var owner = fiber._debugOwner ? fiber._debugOwner.type : null ;\n var source = fiber._debugSource ;\n\n switch (fiber.tag) {\n case HostComponent:\n return describeBuiltInComponentFrame(fiber.type);\n\n case LazyComponent:\n return describeBuiltInComponentFrame('Lazy');\n\n case SuspenseComponent:\n return describeBuiltInComponentFrame('Suspense');\n\n case SuspenseListComponent:\n return describeBuiltInComponentFrame('SuspenseList');\n\n case FunctionComponent:\n case IndeterminateComponent:\n case SimpleMemoComponent:\n return describeFunctionComponentFrame(fiber.type);\n\n case ForwardRef:\n return describeFunctionComponentFrame(fiber.type.render);\n\n case Block:\n return describeFunctionComponentFrame(fiber.type._render);\n\n case ClassComponent:\n return describeClassComponentFrame(fiber.type);\n\n default:\n return '';\n }\n}\n\nfunction getStackByFiberInDevAndProd(workInProgress) {\n try {\n var info = '';\n var node = workInProgress;\n\n do {\n info += describeFiber(node);\n node = node.return;\n } while (node);\n\n return info;\n } catch (x) {\n return '\\nError generating stack: ' + x.message + '\\n' + x.stack;\n }\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var functionName = innerType.displayName || innerType.name || '';\n return outerType.displayName || (functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName);\n}\n\nfunction getContextName(type) {\n return type.displayName || 'Context';\n}\n\nfunction getComponentName(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n\n {\n if (typeof type.tag === 'number') {\n error('Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.');\n }\n }\n\n if (typeof type === 'function') {\n return type.displayName || type.name || null;\n }\n\n if (typeof type === 'string') {\n return type;\n }\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return 'Fragment';\n\n case REACT_PORTAL_TYPE:\n return 'Portal';\n\n case REACT_PROFILER_TYPE:\n return 'Profiler';\n\n case REACT_STRICT_MODE_TYPE:\n return 'StrictMode';\n\n case REACT_SUSPENSE_TYPE:\n return 'Suspense';\n\n case REACT_SUSPENSE_LIST_TYPE:\n return 'SuspenseList';\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + '.Consumer';\n\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + '.Provider';\n\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, 'ForwardRef');\n\n case REACT_MEMO_TYPE:\n return getComponentName(type.type);\n\n case REACT_BLOCK_TYPE:\n return getComponentName(type._render);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n return getComponentName(init(payload));\n } catch (x) {\n return null;\n }\n }\n }\n }\n\n return null;\n}\n\nvar ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\nvar current = null;\nvar isRendering = false;\nfunction getCurrentFiberOwnerNameInDevOrNull() {\n {\n if (current === null) {\n return null;\n }\n\n var owner = current._debugOwner;\n\n if (owner !== null && typeof owner !== 'undefined') {\n return getComponentName(owner.type);\n }\n }\n\n return null;\n}\n\nfunction getCurrentFiberStackInDev() {\n {\n if (current === null) {\n return '';\n } // Safe because if current fiber exists, we are reconciling,\n // and it is guaranteed to be the work-in-progress version.\n\n\n return getStackByFiberInDevAndProd(current);\n }\n}\n\nfunction resetCurrentFiber() {\n {\n ReactDebugCurrentFrame.getCurrentStack = null;\n current = null;\n isRendering = false;\n }\n}\nfunction setCurrentFiber(fiber) {\n {\n ReactDebugCurrentFrame.getCurrentStack = getCurrentFiberStackInDev;\n current = fiber;\n isRendering = false;\n }\n}\nfunction setIsRendering(rendering) {\n {\n isRendering = rendering;\n }\n}\nfunction getIsRendering() {\n {\n return isRendering;\n }\n}\n\n// Flow does not allow string concatenation of most non-string types. To work\n// around this limitation, we use an opaque type that can only be obtained by\n// passing the value through getToStringValue first.\nfunction toString(value) {\n return '' + value;\n}\nfunction getToStringValue(value) {\n switch (typeof value) {\n case 'boolean':\n case 'number':\n case 'object':\n case 'string':\n case 'undefined':\n return value;\n\n default:\n // function, symbol are assigned as empty strings\n return '';\n }\n}\n\nvar hasReadOnlyValue = {\n button: true,\n checkbox: true,\n image: true,\n hidden: true,\n radio: true,\n reset: true,\n submit: true\n};\nfunction checkControlledValueProps(tagName, props) {\n {\n if (!(hasReadOnlyValue[props.type] || props.onChange || props.onInput || props.readOnly || props.disabled || props.value == null)) {\n error('You provided a `value` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultValue`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n }\n\n if (!(props.onChange || props.readOnly || props.disabled || props.checked == null)) {\n error('You provided a `checked` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultChecked`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n }\n }\n}\n\nfunction isCheckable(elem) {\n var type = elem.type;\n var nodeName = elem.nodeName;\n return nodeName && nodeName.toLowerCase() === 'input' && (type === 'checkbox' || type === 'radio');\n}\n\nfunction getTracker(node) {\n return node._valueTracker;\n}\n\nfunction detachTracker(node) {\n node._valueTracker = null;\n}\n\nfunction getValueFromNode(node) {\n var value = '';\n\n if (!node) {\n return value;\n }\n\n if (isCheckable(node)) {\n value = node.checked ? 'true' : 'false';\n } else {\n value = node.value;\n }\n\n return value;\n}\n\nfunction trackValueOnNode(node) {\n var valueField = isCheckable(node) ? 'checked' : 'value';\n var descriptor = Object.getOwnPropertyDescriptor(node.constructor.prototype, valueField);\n var currentValue = '' + node[valueField]; // if someone has already defined a value or Safari, then bail\n // and don't track value will cause over reporting of changes,\n // but it's better then a hard failure\n // (needed for certain tests that spyOn input values and Safari)\n\n if (node.hasOwnProperty(valueField) || typeof descriptor === 'undefined' || typeof descriptor.get !== 'function' || typeof descriptor.set !== 'function') {\n return;\n }\n\n var get = descriptor.get,\n set = descriptor.set;\n Object.defineProperty(node, valueField, {\n configurable: true,\n get: function () {\n return get.call(this);\n },\n set: function (value) {\n currentValue = '' + value;\n set.call(this, value);\n }\n }); // We could've passed this the first time\n // but it triggers a bug in IE11 and Edge 14/15.\n // Calling defineProperty() again should be equivalent.\n // https://github.com/facebook/react/issues/11768\n\n Object.defineProperty(node, valueField, {\n enumerable: descriptor.enumerable\n });\n var tracker = {\n getValue: function () {\n return currentValue;\n },\n setValue: function (value) {\n currentValue = '' + value;\n },\n stopTracking: function () {\n detachTracker(node);\n delete node[valueField];\n }\n };\n return tracker;\n}\n\nfunction track(node) {\n if (getTracker(node)) {\n return;\n } // TODO: Once it's just Fiber we can move this to node._wrapperState\n\n\n node._valueTracker = trackValueOnNode(node);\n}\nfunction updateValueIfChanged(node) {\n if (!node) {\n return false;\n }\n\n var tracker = getTracker(node); // if there is no tracker at this point it's unlikely\n // that trying again will succeed\n\n if (!tracker) {\n return true;\n }\n\n var lastValue = tracker.getValue();\n var nextValue = getValueFromNode(node);\n\n if (nextValue !== lastValue) {\n tracker.setValue(nextValue);\n return true;\n }\n\n return false;\n}\n\nfunction getActiveElement(doc) {\n doc = doc || (typeof document !== 'undefined' ? document : undefined);\n\n if (typeof doc === 'undefined') {\n return null;\n }\n\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\n\nvar didWarnValueDefaultValue = false;\nvar didWarnCheckedDefaultChecked = false;\nvar didWarnControlledToUncontrolled = false;\nvar didWarnUncontrolledToControlled = false;\n\nfunction isControlled(props) {\n var usesChecked = props.type === 'checkbox' || props.type === 'radio';\n return usesChecked ? props.checked != null : props.value != null;\n}\n/**\n * Implements an <input> host component that allows setting these optional\n * props: `checked`, `value`, `defaultChecked`, and `defaultValue`.\n *\n * If `checked` or `value` are not supplied (or null/undefined), user actions\n * that affect the checked state or value will trigger updates to the element.\n *\n * If they are supplied (and not null/undefined), the rendered element will not\n * trigger updates to the element. Instead, the props must change in order for\n * the rendered element to be updated.\n *\n * The rendered element will be initialized as unchecked (or `defaultChecked`)\n * with an empty value (or `defaultValue`).\n *\n * See http://www.w3.org/TR/2012/WD-html5-20121025/the-input-element.html\n */\n\n\nfunction getHostProps(element, props) {\n var node = element;\n var checked = props.checked;\n\n var hostProps = _assign({}, props, {\n defaultChecked: undefined,\n defaultValue: undefined,\n value: undefined,\n checked: checked != null ? checked : node._wrapperState.initialChecked\n });\n\n return hostProps;\n}\nfunction initWrapperState(element, props) {\n {\n checkControlledValueProps('input', props);\n\n if (props.checked !== undefined && props.defaultChecked !== undefined && !didWarnCheckedDefaultChecked) {\n error('%s contains an input of type %s with both checked and defaultChecked props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the checked prop, or the defaultChecked prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://reactjs.org/link/controlled-components', getCurrentFiberOwnerNameInDevOrNull() || 'A component', props.type);\n\n didWarnCheckedDefaultChecked = true;\n }\n\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) {\n error('%s contains an input of type %s with both value and defaultValue props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://reactjs.org/link/controlled-components', getCurrentFiberOwnerNameInDevOrNull() || 'A component', props.type);\n\n didWarnValueDefaultValue = true;\n }\n }\n\n var node = element;\n var defaultValue = props.defaultValue == null ? '' : props.defaultValue;\n node._wrapperState = {\n initialChecked: props.checked != null ? props.checked : props.defaultChecked,\n initialValue: getToStringValue(props.value != null ? props.value : defaultValue),\n controlled: isControlled(props)\n };\n}\nfunction updateChecked(element, props) {\n var node = element;\n var checked = props.checked;\n\n if (checked != null) {\n setValueForProperty(node, 'checked', checked, false);\n }\n}\nfunction updateWrapper(element, props) {\n var node = element;\n\n {\n var controlled = isControlled(props);\n\n if (!node._wrapperState.controlled && controlled && !didWarnUncontrolledToControlled) {\n error('A component is changing an uncontrolled input to be controlled. ' + 'This is likely caused by the value changing from undefined to ' + 'a defined value, which should not happen. ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://reactjs.org/link/controlled-components');\n\n didWarnUncontrolledToControlled = true;\n }\n\n if (node._wrapperState.controlled && !controlled && !didWarnControlledToUncontrolled) {\n error('A component is changing a controlled input to be uncontrolled. ' + 'This is likely caused by the value changing from a defined to ' + 'undefined, which should not happen. ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://reactjs.org/link/controlled-components');\n\n didWarnControlledToUncontrolled = true;\n }\n }\n\n updateChecked(element, props);\n var value = getToStringValue(props.value);\n var type = props.type;\n\n if (value != null) {\n if (type === 'number') {\n if (value === 0 && node.value === '' || // We explicitly want to coerce to number here if possible.\n // eslint-disable-next-line\n node.value != value) {\n node.value = toString(value);\n }\n } else if (node.value !== toString(value)) {\n node.value = toString(value);\n }\n } else if (type === 'submit' || type === 'reset') {\n // Submit/reset inputs need the attribute removed completely to avoid\n // blank-text buttons.\n node.removeAttribute('value');\n return;\n }\n\n {\n // When syncing the value attribute, the value comes from a cascade of\n // properties:\n // 1. The value React property\n // 2. The defaultValue React property\n // 3. Otherwise there should be no change\n if (props.hasOwnProperty('value')) {\n setDefaultValue(node, props.type, value);\n } else if (props.hasOwnProperty('defaultValue')) {\n setDefaultValue(node, props.type, getToStringValue(props.defaultValue));\n }\n }\n\n {\n // When syncing the checked attribute, it only changes when it needs\n // to be removed, such as transitioning from a checkbox into a text input\n if (props.checked == null && props.defaultChecked != null) {\n node.defaultChecked = !!props.defaultChecked;\n }\n }\n}\nfunction postMountWrapper(element, props, isHydrating) {\n var node = element; // Do not assign value if it is already set. This prevents user text input\n // from being lost during SSR hydration.\n\n if (props.hasOwnProperty('value') || props.hasOwnProperty('defaultValue')) {\n var type = props.type;\n var isButton = type === 'submit' || type === 'reset'; // Avoid setting value attribute on submit/reset inputs as it overrides the\n // default value provided by the browser. See: #12872\n\n if (isButton && (props.value === undefined || props.value === null)) {\n return;\n }\n\n var initialValue = toString(node._wrapperState.initialValue); // Do not assign value if it is already set. This prevents user text input\n // from being lost during SSR hydration.\n\n if (!isHydrating) {\n {\n // When syncing the value attribute, the value property should use\n // the wrapperState._initialValue property. This uses:\n //\n // 1. The value React property when present\n // 2. The defaultValue React property when present\n // 3. An empty string\n if (initialValue !== node.value) {\n node.value = initialValue;\n }\n }\n }\n\n {\n // Otherwise, the value attribute is synchronized to the property,\n // so we assign defaultValue to the same thing as the value property\n // assignment step above.\n node.defaultValue = initialValue;\n }\n } // Normally, we'd just do `node.checked = node.checked` upon initial mount, less this bug\n // this is needed to work around a chrome bug where setting defaultChecked\n // will sometimes influence the value of checked (even after detachment).\n // Reference: https://bugs.chromium.org/p/chromium/issues/detail?id=608416\n // We need to temporarily unset name to avoid disrupting radio button groups.\n\n\n var name = node.name;\n\n if (name !== '') {\n node.name = '';\n }\n\n {\n // When syncing the checked attribute, both the checked property and\n // attribute are assigned at the same time using defaultChecked. This uses:\n //\n // 1. The checked React property when present\n // 2. The defaultChecked React property when present\n // 3. Otherwise, false\n node.defaultChecked = !node.defaultChecked;\n node.defaultChecked = !!node._wrapperState.initialChecked;\n }\n\n if (name !== '') {\n node.name = name;\n }\n}\nfunction restoreControlledState(element, props) {\n var node = element;\n updateWrapper(node, props);\n updateNamedCousins(node, props);\n}\n\nfunction updateNamedCousins(rootNode, props) {\n var name = props.name;\n\n if (props.type === 'radio' && name != null) {\n var queryRoot = rootNode;\n\n while (queryRoot.parentNode) {\n queryRoot = queryRoot.parentNode;\n } // If `rootNode.form` was non-null, then we could try `form.elements`,\n // but that sometimes behaves strangely in IE8. We could also try using\n // `form.getElementsByName`, but that will only return direct children\n // and won't include inputs that use the HTML5 `form=` attribute. Since\n // the input might not even be in a form. It might not even be in the\n // document. Let's just use the local `querySelectorAll` to ensure we don't\n // miss anything.\n\n\n var group = queryRoot.querySelectorAll('input[name=' + JSON.stringify('' + name) + '][type=\"radio\"]');\n\n for (var i = 0; i < group.length; i++) {\n var otherNode = group[i];\n\n if (otherNode === rootNode || otherNode.form !== rootNode.form) {\n continue;\n } // This will throw if radio buttons rendered by different copies of React\n // and the same name are rendered into the same form (same as #1939).\n // That's probably okay; we don't support it just as we don't support\n // mixing React radio buttons with non-React ones.\n\n\n var otherProps = getFiberCurrentPropsFromNode(otherNode);\n\n if (!otherProps) {\n {\n throw Error( \"ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported.\" );\n }\n } // We need update the tracked value on the named cousin since the value\n // was changed but the input saw no event or value set\n\n\n updateValueIfChanged(otherNode); // If this is a controlled radio button group, forcing the input that\n // was previously checked to update will cause it to be come re-checked\n // as appropriate.\n\n updateWrapper(otherNode, otherProps);\n }\n }\n} // In Chrome, assigning defaultValue to certain input types triggers input validation.\n// For number inputs, the display value loses trailing decimal points. For email inputs,\n// Chrome raises \"The specified value <x> is not a valid email address\".\n//\n// Here we check to see if the defaultValue has actually changed, avoiding these problems\n// when the user is inputting text\n//\n// https://github.com/facebook/react/issues/7253\n\n\nfunction setDefaultValue(node, type, value) {\n if ( // Focused number inputs synchronize on blur. See ChangeEventPlugin.js\n type !== 'number' || getActiveElement(node.ownerDocument) !== node) {\n if (value == null) {\n node.defaultValue = toString(node._wrapperState.initialValue);\n } else if (node.defaultValue !== toString(value)) {\n node.defaultValue = toString(value);\n }\n }\n}\n\nvar didWarnSelectedSetOnOption = false;\nvar didWarnInvalidChild = false;\n\nfunction flattenChildren(children) {\n var content = ''; // Flatten children. We'll warn if they are invalid\n // during validateProps() which runs for hydration too.\n // Note that this would throw on non-element objects.\n // Elements are stringified (which is normally irrelevant\n // but matters for <fbt>).\n\n React.Children.forEach(children, function (child) {\n if (child == null) {\n return;\n }\n\n content += child; // Note: we don't warn about invalid children here.\n // Instead, this is done separately below so that\n // it happens during the hydration code path too.\n });\n return content;\n}\n/**\n * Implements an <option> host component that warns when `selected` is set.\n */\n\n\nfunction validateProps(element, props) {\n {\n // This mirrors the code path above, but runs for hydration too.\n // Warn about invalid children here so that client and hydration are consistent.\n // TODO: this seems like it could cause a DEV-only throw for hydration\n // if children contains a non-element object. We should try to avoid that.\n if (typeof props.children === 'object' && props.children !== null) {\n React.Children.forEach(props.children, function (child) {\n if (child == null) {\n return;\n }\n\n if (typeof child === 'string' || typeof child === 'number') {\n return;\n }\n\n if (typeof child.type !== 'string') {\n return;\n }\n\n if (!didWarnInvalidChild) {\n didWarnInvalidChild = true;\n\n error('Only strings and numbers are supported as <option> children.');\n }\n });\n } // TODO: Remove support for `selected` in <option>.\n\n\n if (props.selected != null && !didWarnSelectedSetOnOption) {\n error('Use the `defaultValue` or `value` props on <select> instead of ' + 'setting `selected` on <option>.');\n\n didWarnSelectedSetOnOption = true;\n }\n }\n}\nfunction postMountWrapper$1(element, props) {\n // value=\"\" should make a value attribute (#6219)\n if (props.value != null) {\n element.setAttribute('value', toString(getToStringValue(props.value)));\n }\n}\nfunction getHostProps$1(element, props) {\n var hostProps = _assign({\n children: undefined\n }, props);\n\n var content = flattenChildren(props.children);\n\n if (content) {\n hostProps.children = content;\n }\n\n return hostProps;\n}\n\nvar didWarnValueDefaultValue$1;\n\n{\n didWarnValueDefaultValue$1 = false;\n}\n\nfunction getDeclarationErrorAddendum() {\n var ownerName = getCurrentFiberOwnerNameInDevOrNull();\n\n if (ownerName) {\n return '\\n\\nCheck the render method of `' + ownerName + '`.';\n }\n\n return '';\n}\n\nvar valuePropNames = ['value', 'defaultValue'];\n/**\n * Validation function for `value` and `defaultValue`.\n */\n\nfunction checkSelectPropTypes(props) {\n {\n checkControlledValueProps('select', props);\n\n for (var i = 0; i < valuePropNames.length; i++) {\n var propName = valuePropNames[i];\n\n if (props[propName] == null) {\n continue;\n }\n\n var isArray = Array.isArray(props[propName]);\n\n if (props.multiple && !isArray) {\n error('The `%s` prop supplied to <select> must be an array if ' + '`multiple` is true.%s', propName, getDeclarationErrorAddendum());\n } else if (!props.multiple && isArray) {\n error('The `%s` prop supplied to <select> must be a scalar ' + 'value if `multiple` is false.%s', propName, getDeclarationErrorAddendum());\n }\n }\n }\n}\n\nfunction updateOptions(node, multiple, propValue, setDefaultSelected) {\n var options = node.options;\n\n if (multiple) {\n var selectedValues = propValue;\n var selectedValue = {};\n\n for (var i = 0; i < selectedValues.length; i++) {\n // Prefix to avoid chaos with special keys.\n selectedValue['$' + selectedValues[i]] = true;\n }\n\n for (var _i = 0; _i < options.length; _i++) {\n var selected = selectedValue.hasOwnProperty('$' + options[_i].value);\n\n if (options[_i].selected !== selected) {\n options[_i].selected = selected;\n }\n\n if (selected && setDefaultSelected) {\n options[_i].defaultSelected = true;\n }\n }\n } else {\n // Do not set `select.value` as exact behavior isn't consistent across all\n // browsers for all cases.\n var _selectedValue = toString(getToStringValue(propValue));\n\n var defaultSelected = null;\n\n for (var _i2 = 0; _i2 < options.length; _i2++) {\n if (options[_i2].value === _selectedValue) {\n options[_i2].selected = true;\n\n if (setDefaultSelected) {\n options[_i2].defaultSelected = true;\n }\n\n return;\n }\n\n if (defaultSelected === null && !options[_i2].disabled) {\n defaultSelected = options[_i2];\n }\n }\n\n if (defaultSelected !== null) {\n defaultSelected.selected = true;\n }\n }\n}\n/**\n * Implements a <select> host component that allows optionally setting the\n * props `value` and `defaultValue`. If `multiple` is false, the prop must be a\n * stringable. If `multiple` is true, the prop must be an array of stringables.\n *\n * If `value` is not supplied (or null/undefined), user actions that change the\n * selected option will trigger updates to the rendered options.\n *\n * If it is supplied (and not null/undefined), the rendered options will not\n * update in response to user actions. Instead, the `value` prop must change in\n * order for the rendered options to update.\n *\n * If `defaultValue` is provided, any options with the supplied values will be\n * selected.\n */\n\n\nfunction getHostProps$2(element, props) {\n return _assign({}, props, {\n value: undefined\n });\n}\nfunction initWrapperState$1(element, props) {\n var node = element;\n\n {\n checkSelectPropTypes(props);\n }\n\n node._wrapperState = {\n wasMultiple: !!props.multiple\n };\n\n {\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue$1) {\n error('Select elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled select ' + 'element and remove one of these props. More info: ' + 'https://reactjs.org/link/controlled-components');\n\n didWarnValueDefaultValue$1 = true;\n }\n }\n}\nfunction postMountWrapper$2(element, props) {\n var node = element;\n node.multiple = !!props.multiple;\n var value = props.value;\n\n if (value != null) {\n updateOptions(node, !!props.multiple, value, false);\n } else if (props.defaultValue != null) {\n updateOptions(node, !!props.multiple, props.defaultValue, true);\n }\n}\nfunction postUpdateWrapper(element, props) {\n var node = element;\n var wasMultiple = node._wrapperState.wasMultiple;\n node._wrapperState.wasMultiple = !!props.multiple;\n var value = props.value;\n\n if (value != null) {\n updateOptions(node, !!props.multiple, value, false);\n } else if (wasMultiple !== !!props.multiple) {\n // For simplicity, reapply `defaultValue` if `multiple` is toggled.\n if (props.defaultValue != null) {\n updateOptions(node, !!props.multiple, props.defaultValue, true);\n } else {\n // Revert the select back to its default unselected state.\n updateOptions(node, !!props.multiple, props.multiple ? [] : '', false);\n }\n }\n}\nfunction restoreControlledState$1(element, props) {\n var node = element;\n var value = props.value;\n\n if (value != null) {\n updateOptions(node, !!props.multiple, value, false);\n }\n}\n\nvar didWarnValDefaultVal = false;\n\n/**\n * Implements a <textarea> host component that allows setting `value`, and\n * `defaultValue`. This differs from the traditional DOM API because value is\n * usually set as PCDATA children.\n *\n * If `value` is not supplied (or null/undefined), user actions that affect the\n * value will trigger updates to the element.\n *\n * If `value` is supplied (and not null/undefined), the rendered element will\n * not trigger updates to the element. Instead, the `value` prop must change in\n * order for the rendered element to be updated.\n *\n * The rendered element will be initialized with an empty value, the prop\n * `defaultValue` if specified, or the children content (deprecated).\n */\nfunction getHostProps$3(element, props) {\n var node = element;\n\n if (!(props.dangerouslySetInnerHTML == null)) {\n {\n throw Error( \"`dangerouslySetInnerHTML` does not make sense on <textarea>.\" );\n }\n } // Always set children to the same thing. In IE9, the selection range will\n // get reset if `textContent` is mutated. We could add a check in setTextContent\n // to only set the value if/when the value differs from the node value (which would\n // completely solve this IE9 bug), but Sebastian+Sophie seemed to like this\n // solution. The value can be a boolean or object so that's why it's forced\n // to be a string.\n\n\n var hostProps = _assign({}, props, {\n value: undefined,\n defaultValue: undefined,\n children: toString(node._wrapperState.initialValue)\n });\n\n return hostProps;\n}\nfunction initWrapperState$2(element, props) {\n var node = element;\n\n {\n checkControlledValueProps('textarea', props);\n\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValDefaultVal) {\n error('%s contains a textarea with both value and defaultValue props. ' + 'Textarea elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled textarea ' + 'and remove one of these props. More info: ' + 'https://reactjs.org/link/controlled-components', getCurrentFiberOwnerNameInDevOrNull() || 'A component');\n\n didWarnValDefaultVal = true;\n }\n }\n\n var initialValue = props.value; // Only bother fetching default value if we're going to use it\n\n if (initialValue == null) {\n var children = props.children,\n defaultValue = props.defaultValue;\n\n if (children != null) {\n {\n error('Use the `defaultValue` or `value` props instead of setting ' + 'children on <textarea>.');\n }\n\n {\n if (!(defaultValue == null)) {\n {\n throw Error( \"If you supply `defaultValue` on a <textarea>, do not pass children.\" );\n }\n }\n\n if (Array.isArray(children)) {\n if (!(children.length <= 1)) {\n {\n throw Error( \"<textarea> can only have at most one child.\" );\n }\n }\n\n children = children[0];\n }\n\n defaultValue = children;\n }\n }\n\n if (defaultValue == null) {\n defaultValue = '';\n }\n\n initialValue = defaultValue;\n }\n\n node._wrapperState = {\n initialValue: getToStringValue(initialValue)\n };\n}\nfunction updateWrapper$1(element, props) {\n var node = element;\n var value = getToStringValue(props.value);\n var defaultValue = getToStringValue(props.defaultValue);\n\n if (value != null) {\n // Cast `value` to a string to ensure the value is set correctly. While\n // browsers typically do this as necessary, jsdom doesn't.\n var newValue = toString(value); // To avoid side effects (such as losing text selection), only set value if changed\n\n if (newValue !== node.value) {\n node.value = newValue;\n }\n\n if (props.defaultValue == null && node.defaultValue !== newValue) {\n node.defaultValue = newValue;\n }\n }\n\n if (defaultValue != null) {\n node.defaultValue = toString(defaultValue);\n }\n}\nfunction postMountWrapper$3(element, props) {\n var node = element; // This is in postMount because we need access to the DOM node, which is not\n // available until after the component has mounted.\n\n var textContent = node.textContent; // Only set node.value if textContent is equal to the expected\n // initial value. In IE10/IE11 there is a bug where the placeholder attribute\n // will populate textContent as well.\n // https://developer.microsoft.com/microsoft-edge/platform/issues/101525/\n\n if (textContent === node._wrapperState.initialValue) {\n if (textContent !== '' && textContent !== null) {\n node.value = textContent;\n }\n }\n}\nfunction restoreControlledState$2(element, props) {\n // DOM component is still mounted; update\n updateWrapper$1(element, props);\n}\n\nvar HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\nvar MATH_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\nvar SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\nvar Namespaces = {\n html: HTML_NAMESPACE,\n mathml: MATH_NAMESPACE,\n svg: SVG_NAMESPACE\n}; // Assumes there is no parent namespace.\n\nfunction getIntrinsicNamespace(type) {\n switch (type) {\n case 'svg':\n return SVG_NAMESPACE;\n\n case 'math':\n return MATH_NAMESPACE;\n\n default:\n return HTML_NAMESPACE;\n }\n}\nfunction getChildNamespace(parentNamespace, type) {\n if (parentNamespace == null || parentNamespace === HTML_NAMESPACE) {\n // No (or default) parent namespace: potential entry point.\n return getIntrinsicNamespace(type);\n }\n\n if (parentNamespace === SVG_NAMESPACE && type === 'foreignObject') {\n // We're leaving SVG.\n return HTML_NAMESPACE;\n } // By default, pass namespace below.\n\n\n return parentNamespace;\n}\n\n/* globals MSApp */\n\n/**\n * Create a function which has 'unsafe' privileges (required by windows8 apps)\n */\nvar createMicrosoftUnsafeLocalFunction = function (func) {\n if (typeof MSApp !== 'undefined' && MSApp.execUnsafeLocalFunction) {\n return function (arg0, arg1, arg2, arg3) {\n MSApp.execUnsafeLocalFunction(function () {\n return func(arg0, arg1, arg2, arg3);\n });\n };\n } else {\n return func;\n }\n};\n\nvar reusableSVGContainer;\n/**\n * Set the innerHTML property of a node\n *\n * @param {DOMElement} node\n * @param {string} html\n * @internal\n */\n\nvar setInnerHTML = createMicrosoftUnsafeLocalFunction(function (node, html) {\n if (node.namespaceURI === Namespaces.svg) {\n\n if (!('innerHTML' in node)) {\n // IE does not have innerHTML for SVG nodes, so instead we inject the\n // new markup in a temp node and then move the child nodes across into\n // the target node\n reusableSVGContainer = reusableSVGContainer || document.createElement('div');\n reusableSVGContainer.innerHTML = '<svg>' + html.valueOf().toString() + '</svg>';\n var svgNode = reusableSVGContainer.firstChild;\n\n while (node.firstChild) {\n node.removeChild(node.firstChild);\n }\n\n while (svgNode.firstChild) {\n node.appendChild(svgNode.firstChild);\n }\n\n return;\n }\n }\n\n node.innerHTML = html;\n});\n\n/**\n * HTML nodeType values that represent the type of the node\n */\nvar ELEMENT_NODE = 1;\nvar TEXT_NODE = 3;\nvar COMMENT_NODE = 8;\nvar DOCUMENT_NODE = 9;\nvar DOCUMENT_FRAGMENT_NODE = 11;\n\n/**\n * Set the textContent property of a node. For text updates, it's faster\n * to set the `nodeValue` of the Text node directly instead of using\n * `.textContent` which will remove the existing node and create a new one.\n *\n * @param {DOMElement} node\n * @param {string} text\n * @internal\n */\n\nvar setTextContent = function (node, text) {\n if (text) {\n var firstChild = node.firstChild;\n\n if (firstChild && firstChild === node.lastChild && firstChild.nodeType === TEXT_NODE) {\n firstChild.nodeValue = text;\n return;\n }\n }\n\n node.textContent = text;\n};\n\n// List derived from Gecko source code:\n// https://github.com/mozilla/gecko-dev/blob/4e638efc71/layout/style/test/property_database.js\nvar shorthandToLonghand = {\n animation: ['animationDelay', 'animationDirection', 'animationDuration', 'animationFillMode', 'animationIterationCount', 'animationName', 'animationPlayState', 'animationTimingFunction'],\n background: ['backgroundAttachment', 'backgroundClip', 'backgroundColor', 'backgroundImage', 'backgroundOrigin', 'backgroundPositionX', 'backgroundPositionY', 'backgroundRepeat', 'backgroundSize'],\n backgroundPosition: ['backgroundPositionX', 'backgroundPositionY'],\n border: ['borderBottomColor', 'borderBottomStyle', 'borderBottomWidth', 'borderImageOutset', 'borderImageRepeat', 'borderImageSlice', 'borderImageSource', 'borderImageWidth', 'borderLeftColor', 'borderLeftStyle', 'borderLeftWidth', 'borderRightColor', 'borderRightStyle', 'borderRightWidth', 'borderTopColor', 'borderTopStyle', 'borderTopWidth'],\n borderBlockEnd: ['borderBlockEndColor', 'borderBlockEndStyle', 'borderBlockEndWidth'],\n borderBlockStart: ['borderBlockStartColor', 'borderBlockStartStyle', 'borderBlockStartWidth'],\n borderBottom: ['borderBottomColor', 'borderBottomStyle', 'borderBottomWidth'],\n borderColor: ['borderBottomColor', 'borderLeftColor', 'borderRightColor', 'borderTopColor'],\n borderImage: ['borderImageOutset', 'borderImageRepeat', 'borderImageSlice', 'borderImageSource', 'borderImageWidth'],\n borderInlineEnd: ['borderInlineEndColor', 'borderInlineEndStyle', 'borderInlineEndWidth'],\n borderInlineStart: ['borderInlineStartColor', 'borderInlineStartStyle', 'borderInlineStartWidth'],\n borderLeft: ['borderLeftColor', 'borderLeftStyle', 'borderLeftWidth'],\n borderRadius: ['borderBottomLeftRadius', 'borderBottomRightRadius', 'borderTopLeftRadius', 'borderTopRightRadius'],\n borderRight: ['borderRightColor', 'borderRightStyle', 'borderRightWidth'],\n borderStyle: ['borderBottomStyle', 'borderLeftStyle', 'borderRightStyle', 'borderTopStyle'],\n borderTop: ['borderTopColor', 'borderTopStyle', 'borderTopWidth'],\n borderWidth: ['borderBottomWidth', 'borderLeftWidth', 'borderRightWidth', 'borderTopWidth'],\n columnRule: ['columnRuleColor', 'columnRuleStyle', 'columnRuleWidth'],\n columns: ['columnCount', 'columnWidth'],\n flex: ['flexBasis', 'flexGrow', 'flexShrink'],\n flexFlow: ['flexDirection', 'flexWrap'],\n font: ['fontFamily', 'fontFeatureSettings', 'fontKerning', 'fontLanguageOverride', 'fontSize', 'fontSizeAdjust', 'fontStretch', 'fontStyle', 'fontVariant', 'fontVariantAlternates', 'fontVariantCaps', 'fontVariantEastAsian', 'fontVariantLigatures', 'fontVariantNumeric', 'fontVariantPosition', 'fontWeight', 'lineHeight'],\n fontVariant: ['fontVariantAlternates', 'fontVariantCaps', 'fontVariantEastAsian', 'fontVariantLigatures', 'fontVariantNumeric', 'fontVariantPosition'],\n gap: ['columnGap', 'rowGap'],\n grid: ['gridAutoColumns', 'gridAutoFlow', 'gridAutoRows', 'gridTemplateAreas', 'gridTemplateColumns', 'gridTemplateRows'],\n gridArea: ['gridColumnEnd', 'gridColumnStart', 'gridRowEnd', 'gridRowStart'],\n gridColumn: ['gridColumnEnd', 'gridColumnStart'],\n gridColumnGap: ['columnGap'],\n gridGap: ['columnGap', 'rowGap'],\n gridRow: ['gridRowEnd', 'gridRowStart'],\n gridRowGap: ['rowGap'],\n gridTemplate: ['gridTemplateAreas', 'gridTemplateColumns', 'gridTemplateRows'],\n listStyle: ['listStyleImage', 'listStylePosition', 'listStyleType'],\n margin: ['marginBottom', 'marginLeft', 'marginRight', 'marginTop'],\n marker: ['markerEnd', 'markerMid', 'markerStart'],\n mask: ['maskClip', 'maskComposite', 'maskImage', 'maskMode', 'maskOrigin', 'maskPositionX', 'maskPositionY', 'maskRepeat', 'maskSize'],\n maskPosition: ['maskPositionX', 'maskPositionY'],\n outline: ['outlineColor', 'outlineStyle', 'outlineWidth'],\n overflow: ['overflowX', 'overflowY'],\n padding: ['paddingBottom', 'paddingLeft', 'paddingRight', 'paddingTop'],\n placeContent: ['alignContent', 'justifyContent'],\n placeItems: ['alignItems', 'justifyItems'],\n placeSelf: ['alignSelf', 'justifySelf'],\n textDecoration: ['textDecorationColor', 'textDecorationLine', 'textDecorationStyle'],\n textEmphasis: ['textEmphasisColor', 'textEmphasisStyle'],\n transition: ['transitionDelay', 'transitionDuration', 'transitionProperty', 'transitionTimingFunction'],\n wordWrap: ['overflowWrap']\n};\n\n/**\n * CSS properties which accept numbers but are not in units of \"px\".\n */\nvar isUnitlessNumber = {\n animationIterationCount: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n columns: true,\n flex: true,\n flexGrow: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n flexOrder: true,\n gridArea: true,\n gridRow: true,\n gridRowEnd: true,\n gridRowSpan: true,\n gridRowStart: true,\n gridColumn: true,\n gridColumnEnd: true,\n gridColumnSpan: true,\n gridColumnStart: true,\n fontWeight: true,\n lineClamp: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n // SVG-related properties\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true\n};\n/**\n * @param {string} prefix vendor-specific prefix, eg: Webkit\n * @param {string} key style name, eg: transitionDuration\n * @return {string} style name prefixed with `prefix`, properly camelCased, eg:\n * WebkitTransitionDuration\n */\n\nfunction prefixKey(prefix, key) {\n return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n}\n/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */\n\n\nvar prefixes = ['Webkit', 'ms', 'Moz', 'O']; // Using Object.keys here, or else the vanilla for-in loop makes IE8 go into an\n// infinite loop, because it iterates over the newly added props too.\n\nObject.keys(isUnitlessNumber).forEach(function (prop) {\n prefixes.forEach(function (prefix) {\n isUnitlessNumber[prefixKey(prefix, prop)] = isUnitlessNumber[prop];\n });\n});\n\n/**\n * Convert a value into the proper css writable value. The style name `name`\n * should be logical (no hyphens), as specified\n * in `CSSProperty.isUnitlessNumber`.\n *\n * @param {string} name CSS property name such as `topMargin`.\n * @param {*} value CSS property value such as `10px`.\n * @return {string} Normalized style value with dimensions applied.\n */\n\nfunction dangerousStyleValue(name, value, isCustomProperty) {\n // Note that we've removed escapeTextForBrowser() calls here since the\n // whole string will be escaped when the attribute is injected into\n // the markup. If you provide unsafe user data here they can inject\n // arbitrary CSS which may be problematic (I couldn't repro this):\n // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet\n // http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/\n // This is not an XSS hole but instead a potential CSS injection issue\n // which has lead to a greater discussion about how we're going to\n // trust URLs moving forward. See #2115901\n var isEmpty = value == null || typeof value === 'boolean' || value === '';\n\n if (isEmpty) {\n return '';\n }\n\n if (!isCustomProperty && typeof value === 'number' && value !== 0 && !(isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name])) {\n return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers\n }\n\n return ('' + value).trim();\n}\n\nvar uppercasePattern = /([A-Z])/g;\nvar msPattern = /^ms-/;\n/**\n * Hyphenates a camelcased CSS property name, for example:\n *\n * > hyphenateStyleName('backgroundColor')\n * < \"background-color\"\n * > hyphenateStyleName('MozTransition')\n * < \"-moz-transition\"\n * > hyphenateStyleName('msTransition')\n * < \"-ms-transition\"\n *\n * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix\n * is converted to `-ms-`.\n */\n\nfunction hyphenateStyleName(name) {\n return name.replace(uppercasePattern, '-$1').toLowerCase().replace(msPattern, '-ms-');\n}\n\nvar warnValidStyle = function () {};\n\n{\n // 'msTransform' is correct, but the other prefixes should be capitalized\n var badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/;\n var msPattern$1 = /^-ms-/;\n var hyphenPattern = /-(.)/g; // style values shouldn't contain a semicolon\n\n var badStyleValueWithSemicolonPattern = /;\\s*$/;\n var warnedStyleNames = {};\n var warnedStyleValues = {};\n var warnedForNaNValue = false;\n var warnedForInfinityValue = false;\n\n var camelize = function (string) {\n return string.replace(hyphenPattern, function (_, character) {\n return character.toUpperCase();\n });\n };\n\n var warnHyphenatedStyleName = function (name) {\n if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n return;\n }\n\n warnedStyleNames[name] = true;\n\n error('Unsupported style property %s. Did you mean %s?', name, // As Andi Smith suggests\n // (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix\n // is converted to lowercase `ms`.\n camelize(name.replace(msPattern$1, 'ms-')));\n };\n\n var warnBadVendoredStyleName = function (name) {\n if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n return;\n }\n\n warnedStyleNames[name] = true;\n\n error('Unsupported vendor-prefixed style property %s. Did you mean %s?', name, name.charAt(0).toUpperCase() + name.slice(1));\n };\n\n var warnStyleValueWithSemicolon = function (name, value) {\n if (warnedStyleValues.hasOwnProperty(value) && warnedStyleValues[value]) {\n return;\n }\n\n warnedStyleValues[value] = true;\n\n error(\"Style property values shouldn't contain a semicolon. \" + 'Try \"%s: %s\" instead.', name, value.replace(badStyleValueWithSemicolonPattern, ''));\n };\n\n var warnStyleValueIsNaN = function (name, value) {\n if (warnedForNaNValue) {\n return;\n }\n\n warnedForNaNValue = true;\n\n error('`NaN` is an invalid value for the `%s` css style property.', name);\n };\n\n var warnStyleValueIsInfinity = function (name, value) {\n if (warnedForInfinityValue) {\n return;\n }\n\n warnedForInfinityValue = true;\n\n error('`Infinity` is an invalid value for the `%s` css style property.', name);\n };\n\n warnValidStyle = function (name, value) {\n if (name.indexOf('-') > -1) {\n warnHyphenatedStyleName(name);\n } else if (badVendoredStyleNamePattern.test(name)) {\n warnBadVendoredStyleName(name);\n } else if (badStyleValueWithSemicolonPattern.test(value)) {\n warnStyleValueWithSemicolon(name, value);\n }\n\n if (typeof value === 'number') {\n if (isNaN(value)) {\n warnStyleValueIsNaN(name, value);\n } else if (!isFinite(value)) {\n warnStyleValueIsInfinity(name, value);\n }\n }\n };\n}\n\nvar warnValidStyle$1 = warnValidStyle;\n\n/**\n * Operations for dealing with CSS properties.\n */\n\n/**\n * This creates a string that is expected to be equivalent to the style\n * attribute generated by server-side rendering. It by-passes warnings and\n * security checks so it's not safe to use this value for anything other than\n * comparison. It is only used in DEV for SSR validation.\n */\n\nfunction createDangerousStringForStyles(styles) {\n {\n var serialized = '';\n var delimiter = '';\n\n for (var styleName in styles) {\n if (!styles.hasOwnProperty(styleName)) {\n continue;\n }\n\n var styleValue = styles[styleName];\n\n if (styleValue != null) {\n var isCustomProperty = styleName.indexOf('--') === 0;\n serialized += delimiter + (isCustomProperty ? styleName : hyphenateStyleName(styleName)) + ':';\n serialized += dangerousStyleValue(styleName, styleValue, isCustomProperty);\n delimiter = ';';\n }\n }\n\n return serialized || null;\n }\n}\n/**\n * Sets the value for multiple styles on a node. If a value is specified as\n * '' (empty string), the corresponding style property will be unset.\n *\n * @param {DOMElement} node\n * @param {object} styles\n */\n\nfunction setValueForStyles(node, styles) {\n var style = node.style;\n\n for (var styleName in styles) {\n if (!styles.hasOwnProperty(styleName)) {\n continue;\n }\n\n var isCustomProperty = styleName.indexOf('--') === 0;\n\n {\n if (!isCustomProperty) {\n warnValidStyle$1(styleName, styles[styleName]);\n }\n }\n\n var styleValue = dangerousStyleValue(styleName, styles[styleName], isCustomProperty);\n\n if (styleName === 'float') {\n styleName = 'cssFloat';\n }\n\n if (isCustomProperty) {\n style.setProperty(styleName, styleValue);\n } else {\n style[styleName] = styleValue;\n }\n }\n}\n\nfunction isValueEmpty(value) {\n return value == null || typeof value === 'boolean' || value === '';\n}\n/**\n * Given {color: 'red', overflow: 'hidden'} returns {\n * color: 'color',\n * overflowX: 'overflow',\n * overflowY: 'overflow',\n * }. This can be read as \"the overflowY property was set by the overflow\n * shorthand\". That is, the values are the property that each was derived from.\n */\n\n\nfunction expandShorthandMap(styles) {\n var expanded = {};\n\n for (var key in styles) {\n var longhands = shorthandToLonghand[key] || [key];\n\n for (var i = 0; i < longhands.length; i++) {\n expanded[longhands[i]] = key;\n }\n }\n\n return expanded;\n}\n/**\n * When mixing shorthand and longhand property names, we warn during updates if\n * we expect an incorrect result to occur. In particular, we warn for:\n *\n * Updating a shorthand property (longhand gets overwritten):\n * {font: 'foo', fontVariant: 'bar'} -> {font: 'baz', fontVariant: 'bar'}\n * becomes .style.font = 'baz'\n * Removing a shorthand property (longhand gets lost too):\n * {font: 'foo', fontVariant: 'bar'} -> {fontVariant: 'bar'}\n * becomes .style.font = ''\n * Removing a longhand property (should revert to shorthand; doesn't):\n * {font: 'foo', fontVariant: 'bar'} -> {font: 'foo'}\n * becomes .style.fontVariant = ''\n */\n\n\nfunction validateShorthandPropertyCollisionInDev(styleUpdates, nextStyles) {\n {\n if (!nextStyles) {\n return;\n }\n\n var expandedUpdates = expandShorthandMap(styleUpdates);\n var expandedStyles = expandShorthandMap(nextStyles);\n var warnedAbout = {};\n\n for (var key in expandedUpdates) {\n var originalKey = expandedUpdates[key];\n var correctOriginalKey = expandedStyles[key];\n\n if (correctOriginalKey && originalKey !== correctOriginalKey) {\n var warningKey = originalKey + ',' + correctOriginalKey;\n\n if (warnedAbout[warningKey]) {\n continue;\n }\n\n warnedAbout[warningKey] = true;\n\n error('%s a style property during rerender (%s) when a ' + 'conflicting property is set (%s) can lead to styling bugs. To ' + \"avoid this, don't mix shorthand and non-shorthand properties \" + 'for the same value; instead, replace the shorthand with ' + 'separate values.', isValueEmpty(styleUpdates[originalKey]) ? 'Removing' : 'Updating', originalKey, correctOriginalKey);\n }\n }\n }\n}\n\n// For HTML, certain tags should omit their close tag. We keep a list for\n// those special-case tags.\nvar omittedCloseTags = {\n area: true,\n base: true,\n br: true,\n col: true,\n embed: true,\n hr: true,\n img: true,\n input: true,\n keygen: true,\n link: true,\n meta: true,\n param: true,\n source: true,\n track: true,\n wbr: true // NOTE: menuitem's close tag should be omitted, but that causes problems.\n\n};\n\n// `omittedCloseTags` except that `menuitem` should still have its closing tag.\n\nvar voidElementTags = _assign({\n menuitem: true\n}, omittedCloseTags);\n\nvar HTML = '__html';\n\nfunction assertValidProps(tag, props) {\n if (!props) {\n return;\n } // Note the use of `==` which checks for null or undefined.\n\n\n if (voidElementTags[tag]) {\n if (!(props.children == null && props.dangerouslySetInnerHTML == null)) {\n {\n throw Error( tag + \" is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.\" );\n }\n }\n }\n\n if (props.dangerouslySetInnerHTML != null) {\n if (!(props.children == null)) {\n {\n throw Error( \"Can only set one of `children` or `props.dangerouslySetInnerHTML`.\" );\n }\n }\n\n if (!(typeof props.dangerouslySetInnerHTML === 'object' && HTML in props.dangerouslySetInnerHTML)) {\n {\n throw Error( \"`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://reactjs.org/link/dangerously-set-inner-html for more information.\" );\n }\n }\n }\n\n {\n if (!props.suppressContentEditableWarning && props.contentEditable && props.children != null) {\n error('A component is `contentEditable` and contains `children` managed by ' + 'React. It is now your responsibility to guarantee that none of ' + 'those nodes are unexpectedly modified or duplicated. This is ' + 'probably not intentional.');\n }\n }\n\n if (!(props.style == null || typeof props.style === 'object')) {\n {\n throw Error( \"The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + 'em'}} when using JSX.\" );\n }\n }\n}\n\nfunction isCustomComponent(tagName, props) {\n if (tagName.indexOf('-') === -1) {\n return typeof props.is === 'string';\n }\n\n switch (tagName) {\n // These are reserved SVG and MathML elements.\n // We don't mind this list too much because we expect it to never grow.\n // The alternative is to track the namespace in a few places which is convoluted.\n // https://w3c.github.io/webcomponents/spec/custom/#custom-elements-core-concepts\n case 'annotation-xml':\n case 'color-profile':\n case 'font-face':\n case 'font-face-src':\n case 'font-face-uri':\n case 'font-face-format':\n case 'font-face-name':\n case 'missing-glyph':\n return false;\n\n default:\n return true;\n }\n}\n\n// When adding attributes to the HTML or SVG allowed attribute list, be sure to\n// also add them to this module to ensure casing and incorrect name\n// warnings.\nvar possibleStandardNames = {\n // HTML\n accept: 'accept',\n acceptcharset: 'acceptCharset',\n 'accept-charset': 'acceptCharset',\n accesskey: 'accessKey',\n action: 'action',\n allowfullscreen: 'allowFullScreen',\n alt: 'alt',\n as: 'as',\n async: 'async',\n autocapitalize: 'autoCapitalize',\n autocomplete: 'autoComplete',\n autocorrect: 'autoCorrect',\n autofocus: 'autoFocus',\n autoplay: 'autoPlay',\n autosave: 'autoSave',\n capture: 'capture',\n cellpadding: 'cellPadding',\n cellspacing: 'cellSpacing',\n challenge: 'challenge',\n charset: 'charSet',\n checked: 'checked',\n children: 'children',\n cite: 'cite',\n class: 'className',\n classid: 'classID',\n classname: 'className',\n cols: 'cols',\n colspan: 'colSpan',\n content: 'content',\n contenteditable: 'contentEditable',\n contextmenu: 'contextMenu',\n controls: 'controls',\n controlslist: 'controlsList',\n coords: 'coords',\n crossorigin: 'crossOrigin',\n dangerouslysetinnerhtml: 'dangerouslySetInnerHTML',\n data: 'data',\n datetime: 'dateTime',\n default: 'default',\n defaultchecked: 'defaultChecked',\n defaultvalue: 'defaultValue',\n defer: 'defer',\n dir: 'dir',\n disabled: 'disabled',\n disablepictureinpicture: 'disablePictureInPicture',\n disableremoteplayback: 'disableRemotePlayback',\n download: 'download',\n draggable: 'draggable',\n enctype: 'encType',\n enterkeyhint: 'enterKeyHint',\n for: 'htmlFor',\n form: 'form',\n formmethod: 'formMethod',\n formaction: 'formAction',\n formenctype: 'formEncType',\n formnovalidate: 'formNoValidate',\n formtarget: 'formTarget',\n frameborder: 'frameBorder',\n headers: 'headers',\n height: 'height',\n hidden: 'hidden',\n high: 'high',\n href: 'href',\n hreflang: 'hrefLang',\n htmlfor: 'htmlFor',\n httpequiv: 'httpEquiv',\n 'http-equiv': 'httpEquiv',\n icon: 'icon',\n id: 'id',\n innerhtml: 'innerHTML',\n inputmode: 'inputMode',\n integrity: 'integrity',\n is: 'is',\n itemid: 'itemID',\n itemprop: 'itemProp',\n itemref: 'itemRef',\n itemscope: 'itemScope',\n itemtype: 'itemType',\n keyparams: 'keyParams',\n keytype: 'keyType',\n kind: 'kind',\n label: 'label',\n lang: 'lang',\n list: 'list',\n loop: 'loop',\n low: 'low',\n manifest: 'manifest',\n marginwidth: 'marginWidth',\n marginheight: 'marginHeight',\n max: 'max',\n maxlength: 'maxLength',\n media: 'media',\n mediagroup: 'mediaGroup',\n method: 'method',\n min: 'min',\n minlength: 'minLength',\n multiple: 'multiple',\n muted: 'muted',\n name: 'name',\n nomodule: 'noModule',\n nonce: 'nonce',\n novalidate: 'noValidate',\n open: 'open',\n optimum: 'optimum',\n pattern: 'pattern',\n placeholder: 'placeholder',\n playsinline: 'playsInline',\n poster: 'poster',\n preload: 'preload',\n profile: 'profile',\n radiogroup: 'radioGroup',\n readonly: 'readOnly',\n referrerpolicy: 'referrerPolicy',\n rel: 'rel',\n required: 'required',\n reversed: 'reversed',\n role: 'role',\n rows: 'rows',\n rowspan: 'rowSpan',\n sandbox: 'sandbox',\n scope: 'scope',\n scoped: 'scoped',\n scrolling: 'scrolling',\n seamless: 'seamless',\n selected: 'selected',\n shape: 'shape',\n size: 'size',\n sizes: 'sizes',\n span: 'span',\n spellcheck: 'spellCheck',\n src: 'src',\n srcdoc: 'srcDoc',\n srclang: 'srcLang',\n srcset: 'srcSet',\n start: 'start',\n step: 'step',\n style: 'style',\n summary: 'summary',\n tabindex: 'tabIndex',\n target: 'target',\n title: 'title',\n type: 'type',\n usemap: 'useMap',\n value: 'value',\n width: 'width',\n wmode: 'wmode',\n wrap: 'wrap',\n // SVG\n about: 'about',\n accentheight: 'accentHeight',\n 'accent-height': 'accentHeight',\n accumulate: 'accumulate',\n additive: 'additive',\n alignmentbaseline: 'alignmentBaseline',\n 'alignment-baseline': 'alignmentBaseline',\n allowreorder: 'allowReorder',\n alphabetic: 'alphabetic',\n amplitude: 'amplitude',\n arabicform: 'arabicForm',\n 'arabic-form': 'arabicForm',\n ascent: 'ascent',\n attributename: 'attributeName',\n attributetype: 'attributeType',\n autoreverse: 'autoReverse',\n azimuth: 'azimuth',\n basefrequency: 'baseFrequency',\n baselineshift: 'baselineShift',\n 'baseline-shift': 'baselineShift',\n baseprofile: 'baseProfile',\n bbox: 'bbox',\n begin: 'begin',\n bias: 'bias',\n by: 'by',\n calcmode: 'calcMode',\n capheight: 'capHeight',\n 'cap-height': 'capHeight',\n clip: 'clip',\n clippath: 'clipPath',\n 'clip-path': 'clipPath',\n clippathunits: 'clipPathUnits',\n cliprule: 'clipRule',\n 'clip-rule': 'clipRule',\n color: 'color',\n colorinterpolation: 'colorInterpolation',\n 'color-interpolation': 'colorInterpolation',\n colorinterpolationfilters: 'colorInterpolationFilters',\n 'color-interpolation-filters': 'colorInterpolationFilters',\n colorprofile: 'colorProfile',\n 'color-profile': 'colorProfile',\n colorrendering: 'colorRendering',\n 'color-rendering': 'colorRendering',\n contentscripttype: 'contentScriptType',\n contentstyletype: 'contentStyleType',\n cursor: 'cursor',\n cx: 'cx',\n cy: 'cy',\n d: 'd',\n datatype: 'datatype',\n decelerate: 'decelerate',\n descent: 'descent',\n diffuseconstant: 'diffuseConstant',\n direction: 'direction',\n display: 'display',\n divisor: 'divisor',\n dominantbaseline: 'dominantBaseline',\n 'dominant-baseline': 'dominantBaseline',\n dur: 'dur',\n dx: 'dx',\n dy: 'dy',\n edgemode: 'edgeMode',\n elevation: 'elevation',\n enablebackground: 'enableBackground',\n 'enable-background': 'enableBackground',\n end: 'end',\n exponent: 'exponent',\n externalresourcesrequired: 'externalResourcesRequired',\n fill: 'fill',\n fillopacity: 'fillOpacity',\n 'fill-opacity': 'fillOpacity',\n fillrule: 'fillRule',\n 'fill-rule': 'fillRule',\n filter: 'filter',\n filterres: 'filterRes',\n filterunits: 'filterUnits',\n floodopacity: 'floodOpacity',\n 'flood-opacity': 'floodOpacity',\n floodcolor: 'floodColor',\n 'flood-color': 'floodColor',\n focusable: 'focusable',\n fontfamily: 'fontFamily',\n 'font-family': 'fontFamily',\n fontsize: 'fontSize',\n 'font-size': 'fontSize',\n fontsizeadjust: 'fontSizeAdjust',\n 'font-size-adjust': 'fontSizeAdjust',\n fontstretch: 'fontStretch',\n 'font-stretch': 'fontStretch',\n fontstyle: 'fontStyle',\n 'font-style': 'fontStyle',\n fontvariant: 'fontVariant',\n 'font-variant': 'fontVariant',\n fontweight: 'fontWeight',\n 'font-weight': 'fontWeight',\n format: 'format',\n from: 'from',\n fx: 'fx',\n fy: 'fy',\n g1: 'g1',\n g2: 'g2',\n glyphname: 'glyphName',\n 'glyph-name': 'glyphName',\n glyphorientationhorizontal: 'glyphOrientationHorizontal',\n 'glyph-orientation-horizontal': 'glyphOrientationHorizontal',\n glyphorientationvertical: 'glyphOrientationVertical',\n 'glyph-orientation-vertical': 'glyphOrientationVertical',\n glyphref: 'glyphRef',\n gradienttransform: 'gradientTransform',\n gradientunits: 'gradientUnits',\n hanging: 'hanging',\n horizadvx: 'horizAdvX',\n 'horiz-adv-x': 'horizAdvX',\n horizoriginx: 'horizOriginX',\n 'horiz-origin-x': 'horizOriginX',\n ideographic: 'ideographic',\n imagerendering: 'imageRendering',\n 'image-rendering': 'imageRendering',\n in2: 'in2',\n in: 'in',\n inlist: 'inlist',\n intercept: 'intercept',\n k1: 'k1',\n k2: 'k2',\n k3: 'k3',\n k4: 'k4',\n k: 'k',\n kernelmatrix: 'kernelMatrix',\n kernelunitlength: 'kernelUnitLength',\n kerning: 'kerning',\n keypoints: 'keyPoints',\n keysplines: 'keySplines',\n keytimes: 'keyTimes',\n lengthadjust: 'lengthAdjust',\n letterspacing: 'letterSpacing',\n 'letter-spacing': 'letterSpacing',\n lightingcolor: 'lightingColor',\n 'lighting-color': 'lightingColor',\n limitingconeangle: 'limitingConeAngle',\n local: 'local',\n markerend: 'markerEnd',\n 'marker-end': 'markerEnd',\n markerheight: 'markerHeight',\n markermid: 'markerMid',\n 'marker-mid': 'markerMid',\n markerstart: 'markerStart',\n 'marker-start': 'markerStart',\n markerunits: 'markerUnits',\n markerwidth: 'markerWidth',\n mask: 'mask',\n maskcontentunits: 'maskContentUnits',\n maskunits: 'maskUnits',\n mathematical: 'mathematical',\n mode: 'mode',\n numoctaves: 'numOctaves',\n offset: 'offset',\n opacity: 'opacity',\n operator: 'operator',\n order: 'order',\n orient: 'orient',\n orientation: 'orientation',\n origin: 'origin',\n overflow: 'overflow',\n overlineposition: 'overlinePosition',\n 'overline-position': 'overlinePosition',\n overlinethickness: 'overlineThickness',\n 'overline-thickness': 'overlineThickness',\n paintorder: 'paintOrder',\n 'paint-order': 'paintOrder',\n panose1: 'panose1',\n 'panose-1': 'panose1',\n pathlength: 'pathLength',\n patterncontentunits: 'patternContentUnits',\n patterntransform: 'patternTransform',\n patternunits: 'patternUnits',\n pointerevents: 'pointerEvents',\n 'pointer-events': 'pointerEvents',\n points: 'points',\n pointsatx: 'pointsAtX',\n pointsaty: 'pointsAtY',\n pointsatz: 'pointsAtZ',\n prefix: 'prefix',\n preservealpha: 'preserveAlpha',\n preserveaspectratio: 'preserveAspectRatio',\n primitiveunits: 'primitiveUnits',\n property: 'property',\n r: 'r',\n radius: 'radius',\n refx: 'refX',\n refy: 'refY',\n renderingintent: 'renderingIntent',\n 'rendering-intent': 'renderingIntent',\n repeatcount: 'repeatCount',\n repeatdur: 'repeatDur',\n requiredextensions: 'requiredExtensions',\n requiredfeatures: 'requiredFeatures',\n resource: 'resource',\n restart: 'restart',\n result: 'result',\n results: 'results',\n rotate: 'rotate',\n rx: 'rx',\n ry: 'ry',\n scale: 'scale',\n security: 'security',\n seed: 'seed',\n shaperendering: 'shapeRendering',\n 'shape-rendering': 'shapeRendering',\n slope: 'slope',\n spacing: 'spacing',\n specularconstant: 'specularConstant',\n specularexponent: 'specularExponent',\n speed: 'speed',\n spreadmethod: 'spreadMethod',\n startoffset: 'startOffset',\n stddeviation: 'stdDeviation',\n stemh: 'stemh',\n stemv: 'stemv',\n stitchtiles: 'stitchTiles',\n stopcolor: 'stopColor',\n 'stop-color': 'stopColor',\n stopopacity: 'stopOpacity',\n 'stop-opacity': 'stopOpacity',\n strikethroughposition: 'strikethroughPosition',\n 'strikethrough-position': 'strikethroughPosition',\n strikethroughthickness: 'strikethroughThickness',\n 'strikethrough-thickness': 'strikethroughThickness',\n string: 'string',\n stroke: 'stroke',\n strokedasharray: 'strokeDasharray',\n 'stroke-dasharray': 'strokeDasharray',\n strokedashoffset: 'strokeDashoffset',\n 'stroke-dashoffset': 'strokeDashoffset',\n strokelinecap: 'strokeLinecap',\n 'stroke-linecap': 'strokeLinecap',\n strokelinejoin: 'strokeLinejoin',\n 'stroke-linejoin': 'strokeLinejoin',\n strokemiterlimit: 'strokeMiterlimit',\n 'stroke-miterlimit': 'strokeMiterlimit',\n strokewidth: 'strokeWidth',\n 'stroke-width': 'strokeWidth',\n strokeopacity: 'strokeOpacity',\n 'stroke-opacity': 'strokeOpacity',\n suppresscontenteditablewarning: 'suppressContentEditableWarning',\n suppresshydrationwarning: 'suppressHydrationWarning',\n surfacescale: 'surfaceScale',\n systemlanguage: 'systemLanguage',\n tablevalues: 'tableValues',\n targetx: 'targetX',\n targety: 'targetY',\n textanchor: 'textAnchor',\n 'text-anchor': 'textAnchor',\n textdecoration: 'textDecoration',\n 'text-decoration': 'textDecoration',\n textlength: 'textLength',\n textrendering: 'textRendering',\n 'text-rendering': 'textRendering',\n to: 'to',\n transform: 'transform',\n typeof: 'typeof',\n u1: 'u1',\n u2: 'u2',\n underlineposition: 'underlinePosition',\n 'underline-position': 'underlinePosition',\n underlinethickness: 'underlineThickness',\n 'underline-thickness': 'underlineThickness',\n unicode: 'unicode',\n unicodebidi: 'unicodeBidi',\n 'unicode-bidi': 'unicodeBidi',\n unicoderange: 'unicodeRange',\n 'unicode-range': 'unicodeRange',\n unitsperem: 'unitsPerEm',\n 'units-per-em': 'unitsPerEm',\n unselectable: 'unselectable',\n valphabetic: 'vAlphabetic',\n 'v-alphabetic': 'vAlphabetic',\n values: 'values',\n vectoreffect: 'vectorEffect',\n 'vector-effect': 'vectorEffect',\n version: 'version',\n vertadvy: 'vertAdvY',\n 'vert-adv-y': 'vertAdvY',\n vertoriginx: 'vertOriginX',\n 'vert-origin-x': 'vertOriginX',\n vertoriginy: 'vertOriginY',\n 'vert-origin-y': 'vertOriginY',\n vhanging: 'vHanging',\n 'v-hanging': 'vHanging',\n videographic: 'vIdeographic',\n 'v-ideographic': 'vIdeographic',\n viewbox: 'viewBox',\n viewtarget: 'viewTarget',\n visibility: 'visibility',\n vmathematical: 'vMathematical',\n 'v-mathematical': 'vMathematical',\n vocab: 'vocab',\n widths: 'widths',\n wordspacing: 'wordSpacing',\n 'word-spacing': 'wordSpacing',\n writingmode: 'writingMode',\n 'writing-mode': 'writingMode',\n x1: 'x1',\n x2: 'x2',\n x: 'x',\n xchannelselector: 'xChannelSelector',\n xheight: 'xHeight',\n 'x-height': 'xHeight',\n xlinkactuate: 'xlinkActuate',\n 'xlink:actuate': 'xlinkActuate',\n xlinkarcrole: 'xlinkArcrole',\n 'xlink:arcrole': 'xlinkArcrole',\n xlinkhref: 'xlinkHref',\n 'xlink:href': 'xlinkHref',\n xlinkrole: 'xlinkRole',\n 'xlink:role': 'xlinkRole',\n xlinkshow: 'xlinkShow',\n 'xlink:show': 'xlinkShow',\n xlinktitle: 'xlinkTitle',\n 'xlink:title': 'xlinkTitle',\n xlinktype: 'xlinkType',\n 'xlink:type': 'xlinkType',\n xmlbase: 'xmlBase',\n 'xml:base': 'xmlBase',\n xmllang: 'xmlLang',\n 'xml:lang': 'xmlLang',\n xmlns: 'xmlns',\n 'xml:space': 'xmlSpace',\n xmlnsxlink: 'xmlnsXlink',\n 'xmlns:xlink': 'xmlnsXlink',\n xmlspace: 'xmlSpace',\n y1: 'y1',\n y2: 'y2',\n y: 'y',\n ychannelselector: 'yChannelSelector',\n z: 'z',\n zoomandpan: 'zoomAndPan'\n};\n\nvar ariaProperties = {\n 'aria-current': 0,\n // state\n 'aria-details': 0,\n 'aria-disabled': 0,\n // state\n 'aria-hidden': 0,\n // state\n 'aria-invalid': 0,\n // state\n 'aria-keyshortcuts': 0,\n 'aria-label': 0,\n 'aria-roledescription': 0,\n // Widget Attributes\n 'aria-autocomplete': 0,\n 'aria-checked': 0,\n 'aria-expanded': 0,\n 'aria-haspopup': 0,\n 'aria-level': 0,\n 'aria-modal': 0,\n 'aria-multiline': 0,\n 'aria-multiselectable': 0,\n 'aria-orientation': 0,\n 'aria-placeholder': 0,\n 'aria-pressed': 0,\n 'aria-readonly': 0,\n 'aria-required': 0,\n 'aria-selected': 0,\n 'aria-sort': 0,\n 'aria-valuemax': 0,\n 'aria-valuemin': 0,\n 'aria-valuenow': 0,\n 'aria-valuetext': 0,\n // Live Region Attributes\n 'aria-atomic': 0,\n 'aria-busy': 0,\n 'aria-live': 0,\n 'aria-relevant': 0,\n // Drag-and-Drop Attributes\n 'aria-dropeffect': 0,\n 'aria-grabbed': 0,\n // Relationship Attributes\n 'aria-activedescendant': 0,\n 'aria-colcount': 0,\n 'aria-colindex': 0,\n 'aria-colspan': 0,\n 'aria-controls': 0,\n 'aria-describedby': 0,\n 'aria-errormessage': 0,\n 'aria-flowto': 0,\n 'aria-labelledby': 0,\n 'aria-owns': 0,\n 'aria-posinset': 0,\n 'aria-rowcount': 0,\n 'aria-rowindex': 0,\n 'aria-rowspan': 0,\n 'aria-setsize': 0\n};\n\nvar warnedProperties = {};\nvar rARIA = new RegExp('^(aria)-[' + ATTRIBUTE_NAME_CHAR + ']*$');\nvar rARIACamel = new RegExp('^(aria)[A-Z][' + ATTRIBUTE_NAME_CHAR + ']*$');\nvar hasOwnProperty$1 = Object.prototype.hasOwnProperty;\n\nfunction validateProperty(tagName, name) {\n {\n if (hasOwnProperty$1.call(warnedProperties, name) && warnedProperties[name]) {\n return true;\n }\n\n if (rARIACamel.test(name)) {\n var ariaName = 'aria-' + name.slice(4).toLowerCase();\n var correctName = ariaProperties.hasOwnProperty(ariaName) ? ariaName : null; // If this is an aria-* attribute, but is not listed in the known DOM\n // DOM properties, then it is an invalid aria-* attribute.\n\n if (correctName == null) {\n error('Invalid ARIA attribute `%s`. ARIA attributes follow the pattern aria-* and must be lowercase.', name);\n\n warnedProperties[name] = true;\n return true;\n } // aria-* attributes should be lowercase; suggest the lowercase version.\n\n\n if (name !== correctName) {\n error('Invalid ARIA attribute `%s`. Did you mean `%s`?', name, correctName);\n\n warnedProperties[name] = true;\n return true;\n }\n }\n\n if (rARIA.test(name)) {\n var lowerCasedName = name.toLowerCase();\n var standardName = ariaProperties.hasOwnProperty(lowerCasedName) ? lowerCasedName : null; // If this is an aria-* attribute, but is not listed in the known DOM\n // DOM properties, then it is an invalid aria-* attribute.\n\n if (standardName == null) {\n warnedProperties[name] = true;\n return false;\n } // aria-* attributes should be lowercase; suggest the lowercase version.\n\n\n if (name !== standardName) {\n error('Unknown ARIA attribute `%s`. Did you mean `%s`?', name, standardName);\n\n warnedProperties[name] = true;\n return true;\n }\n }\n }\n\n return true;\n}\n\nfunction warnInvalidARIAProps(type, props) {\n {\n var invalidProps = [];\n\n for (var key in props) {\n var isValid = validateProperty(type, key);\n\n if (!isValid) {\n invalidProps.push(key);\n }\n }\n\n var unknownPropString = invalidProps.map(function (prop) {\n return '`' + prop + '`';\n }).join(', ');\n\n if (invalidProps.length === 1) {\n error('Invalid aria prop %s on <%s> tag. ' + 'For details, see https://reactjs.org/link/invalid-aria-props', unknownPropString, type);\n } else if (invalidProps.length > 1) {\n error('Invalid aria props %s on <%s> tag. ' + 'For details, see https://reactjs.org/link/invalid-aria-props', unknownPropString, type);\n }\n }\n}\n\nfunction validateProperties(type, props) {\n if (isCustomComponent(type, props)) {\n return;\n }\n\n warnInvalidARIAProps(type, props);\n}\n\nvar didWarnValueNull = false;\nfunction validateProperties$1(type, props) {\n {\n if (type !== 'input' && type !== 'textarea' && type !== 'select') {\n return;\n }\n\n if (props != null && props.value === null && !didWarnValueNull) {\n didWarnValueNull = true;\n\n if (type === 'select' && props.multiple) {\n error('`value` prop on `%s` should not be null. ' + 'Consider using an empty array when `multiple` is set to `true` ' + 'to clear the component or `undefined` for uncontrolled components.', type);\n } else {\n error('`value` prop on `%s` should not be null. ' + 'Consider using an empty string to clear the component or `undefined` ' + 'for uncontrolled components.', type);\n }\n }\n }\n}\n\nvar validateProperty$1 = function () {};\n\n{\n var warnedProperties$1 = {};\n var _hasOwnProperty = Object.prototype.hasOwnProperty;\n var EVENT_NAME_REGEX = /^on./;\n var INVALID_EVENT_NAME_REGEX = /^on[^A-Z]/;\n var rARIA$1 = new RegExp('^(aria)-[' + ATTRIBUTE_NAME_CHAR + ']*$');\n var rARIACamel$1 = new RegExp('^(aria)[A-Z][' + ATTRIBUTE_NAME_CHAR + ']*$');\n\n validateProperty$1 = function (tagName, name, value, eventRegistry) {\n if (_hasOwnProperty.call(warnedProperties$1, name) && warnedProperties$1[name]) {\n return true;\n }\n\n var lowerCasedName = name.toLowerCase();\n\n if (lowerCasedName === 'onfocusin' || lowerCasedName === 'onfocusout') {\n error('React uses onFocus and onBlur instead of onFocusIn and onFocusOut. ' + 'All React events are normalized to bubble, so onFocusIn and onFocusOut ' + 'are not needed/supported by React.');\n\n warnedProperties$1[name] = true;\n return true;\n } // We can't rely on the event system being injected on the server.\n\n\n if (eventRegistry != null) {\n var registrationNameDependencies = eventRegistry.registrationNameDependencies,\n possibleRegistrationNames = eventRegistry.possibleRegistrationNames;\n\n if (registrationNameDependencies.hasOwnProperty(name)) {\n return true;\n }\n\n var registrationName = possibleRegistrationNames.hasOwnProperty(lowerCasedName) ? possibleRegistrationNames[lowerCasedName] : null;\n\n if (registrationName != null) {\n error('Invalid event handler property `%s`. Did you mean `%s`?', name, registrationName);\n\n warnedProperties$1[name] = true;\n return true;\n }\n\n if (EVENT_NAME_REGEX.test(name)) {\n error('Unknown event handler property `%s`. It will be ignored.', name);\n\n warnedProperties$1[name] = true;\n return true;\n }\n } else if (EVENT_NAME_REGEX.test(name)) {\n // If no event plugins have been injected, we are in a server environment.\n // So we can't tell if the event name is correct for sure, but we can filter\n // out known bad ones like `onclick`. We can't suggest a specific replacement though.\n if (INVALID_EVENT_NAME_REGEX.test(name)) {\n error('Invalid event handler property `%s`. ' + 'React events use the camelCase naming convention, for example `onClick`.', name);\n }\n\n warnedProperties$1[name] = true;\n return true;\n } // Let the ARIA attribute hook validate ARIA attributes\n\n\n if (rARIA$1.test(name) || rARIACamel$1.test(name)) {\n return true;\n }\n\n if (lowerCasedName === 'innerhtml') {\n error('Directly setting property `innerHTML` is not permitted. ' + 'For more information, lookup documentation on `dangerouslySetInnerHTML`.');\n\n warnedProperties$1[name] = true;\n return true;\n }\n\n if (lowerCasedName === 'aria') {\n error('The `aria` attribute is reserved for future use in React. ' + 'Pass individual `aria-` attributes instead.');\n\n warnedProperties$1[name] = true;\n return true;\n }\n\n if (lowerCasedName === 'is' && value !== null && value !== undefined && typeof value !== 'string') {\n error('Received a `%s` for a string attribute `is`. If this is expected, cast ' + 'the value to a string.', typeof value);\n\n warnedProperties$1[name] = true;\n return true;\n }\n\n if (typeof value === 'number' && isNaN(value)) {\n error('Received NaN for the `%s` attribute. If this is expected, cast ' + 'the value to a string.', name);\n\n warnedProperties$1[name] = true;\n return true;\n }\n\n var propertyInfo = getPropertyInfo(name);\n var isReserved = propertyInfo !== null && propertyInfo.type === RESERVED; // Known attributes should match the casing specified in the property config.\n\n if (possibleStandardNames.hasOwnProperty(lowerCasedName)) {\n var standardName = possibleStandardNames[lowerCasedName];\n\n if (standardName !== name) {\n error('Invalid DOM property `%s`. Did you mean `%s`?', name, standardName);\n\n warnedProperties$1[name] = true;\n return true;\n }\n } else if (!isReserved && name !== lowerCasedName) {\n // Unknown attributes should have lowercase casing since that's how they\n // will be cased anyway with server rendering.\n error('React does not recognize the `%s` prop on a DOM element. If you ' + 'intentionally want it to appear in the DOM as a custom ' + 'attribute, spell it as lowercase `%s` instead. ' + 'If you accidentally passed it from a parent component, remove ' + 'it from the DOM element.', name, lowerCasedName);\n\n warnedProperties$1[name] = true;\n return true;\n }\n\n if (typeof value === 'boolean' && shouldRemoveAttributeWithWarning(name, value, propertyInfo, false)) {\n if (value) {\n error('Received `%s` for a non-boolean attribute `%s`.\\n\\n' + 'If you want to write it to the DOM, pass a string instead: ' + '%s=\"%s\" or %s={value.toString()}.', value, name, name, value, name);\n } else {\n error('Received `%s` for a non-boolean attribute `%s`.\\n\\n' + 'If you want to write it to the DOM, pass a string instead: ' + '%s=\"%s\" or %s={value.toString()}.\\n\\n' + 'If you used to conditionally omit it with %s={condition && value}, ' + 'pass %s={condition ? value : undefined} instead.', value, name, name, value, name, name, name);\n }\n\n warnedProperties$1[name] = true;\n return true;\n } // Now that we've validated casing, do not validate\n // data types for reserved props\n\n\n if (isReserved) {\n return true;\n } // Warn when a known attribute is a bad type\n\n\n if (shouldRemoveAttributeWithWarning(name, value, propertyInfo, false)) {\n warnedProperties$1[name] = true;\n return false;\n } // Warn when passing the strings 'false' or 'true' into a boolean prop\n\n\n if ((value === 'false' || value === 'true') && propertyInfo !== null && propertyInfo.type === BOOLEAN) {\n error('Received the string `%s` for the boolean attribute `%s`. ' + '%s ' + 'Did you mean %s={%s}?', value, name, value === 'false' ? 'The browser will interpret it as a truthy value.' : 'Although this works, it will not work as expected if you pass the string \"false\".', name, value);\n\n warnedProperties$1[name] = true;\n return true;\n }\n\n return true;\n };\n}\n\nvar warnUnknownProperties = function (type, props, eventRegistry) {\n {\n var unknownProps = [];\n\n for (var key in props) {\n var isValid = validateProperty$1(type, key, props[key], eventRegistry);\n\n if (!isValid) {\n unknownProps.push(key);\n }\n }\n\n var unknownPropString = unknownProps.map(function (prop) {\n return '`' + prop + '`';\n }).join(', ');\n\n if (unknownProps.length === 1) {\n error('Invalid value for prop %s on <%s> tag. Either remove it from the element, ' + 'or pass a string or number value to keep it in the DOM. ' + 'For details, see https://reactjs.org/link/attribute-behavior ', unknownPropString, type);\n } else if (unknownProps.length > 1) {\n error('Invalid values for props %s on <%s> tag. Either remove them from the element, ' + 'or pass a string or number value to keep them in the DOM. ' + 'For details, see https://reactjs.org/link/attribute-behavior ', unknownPropString, type);\n }\n }\n};\n\nfunction validateProperties$2(type, props, eventRegistry) {\n if (isCustomComponent(type, props)) {\n return;\n }\n\n warnUnknownProperties(type, props, eventRegistry);\n}\n\nvar IS_EVENT_HANDLE_NON_MANAGED_NODE = 1;\nvar IS_NON_DELEGATED = 1 << 1;\nvar IS_CAPTURE_PHASE = 1 << 2;\nvar IS_REPLAYED = 1 << 4;\n// set to LEGACY_FB_SUPPORT. LEGACY_FB_SUPPORT only gets set when\n// we call willDeferLaterForLegacyFBSupport, thus not bailing out\n// will result in endless cycles like an infinite loop.\n// We also don't want to defer during event replaying.\n\nvar SHOULD_NOT_PROCESS_POLYFILL_EVENT_PLUGINS = IS_EVENT_HANDLE_NON_MANAGED_NODE | IS_NON_DELEGATED | IS_CAPTURE_PHASE;\n\n/**\n * Gets the target node from a native browser event by accounting for\n * inconsistencies in browser DOM APIs.\n *\n * @param {object} nativeEvent Native browser event.\n * @return {DOMEventTarget} Target node.\n */\n\nfunction getEventTarget(nativeEvent) {\n // Fallback to nativeEvent.srcElement for IE9\n // https://github.com/facebook/react/issues/12506\n var target = nativeEvent.target || nativeEvent.srcElement || window; // Normalize SVG <use> element events #4963\n\n if (target.correspondingUseElement) {\n target = target.correspondingUseElement;\n } // Safari may fire events on text nodes (Node.TEXT_NODE is 3).\n // @see http://www.quirksmode.org/js/events_properties.html\n\n\n return target.nodeType === TEXT_NODE ? target.parentNode : target;\n}\n\nvar restoreImpl = null;\nvar restoreTarget = null;\nvar restoreQueue = null;\n\nfunction restoreStateOfTarget(target) {\n // We perform this translation at the end of the event loop so that we\n // always receive the correct fiber here\n var internalInstance = getInstanceFromNode(target);\n\n if (!internalInstance) {\n // Unmounted\n return;\n }\n\n if (!(typeof restoreImpl === 'function')) {\n {\n throw Error( \"setRestoreImplementation() needs to be called to handle a target for controlled events. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n\n var stateNode = internalInstance.stateNode; // Guard against Fiber being unmounted.\n\n if (stateNode) {\n var _props = getFiberCurrentPropsFromNode(stateNode);\n\n restoreImpl(internalInstance.stateNode, internalInstance.type, _props);\n }\n}\n\nfunction setRestoreImplementation(impl) {\n restoreImpl = impl;\n}\nfunction enqueueStateRestore(target) {\n if (restoreTarget) {\n if (restoreQueue) {\n restoreQueue.push(target);\n } else {\n restoreQueue = [target];\n }\n } else {\n restoreTarget = target;\n }\n}\nfunction needsStateRestore() {\n return restoreTarget !== null || restoreQueue !== null;\n}\nfunction restoreStateIfNeeded() {\n if (!restoreTarget) {\n return;\n }\n\n var target = restoreTarget;\n var queuedTargets = restoreQueue;\n restoreTarget = null;\n restoreQueue = null;\n restoreStateOfTarget(target);\n\n if (queuedTargets) {\n for (var i = 0; i < queuedTargets.length; i++) {\n restoreStateOfTarget(queuedTargets[i]);\n }\n }\n}\n\n// the renderer. Such as when we're dispatching events or if third party\n// libraries need to call batchedUpdates. Eventually, this API will go away when\n// everything is batched by default. We'll then have a similar API to opt-out of\n// scheduled work and instead do synchronous work.\n// Defaults\n\nvar batchedUpdatesImpl = function (fn, bookkeeping) {\n return fn(bookkeeping);\n};\n\nvar discreteUpdatesImpl = function (fn, a, b, c, d) {\n return fn(a, b, c, d);\n};\n\nvar flushDiscreteUpdatesImpl = function () {};\n\nvar batchedEventUpdatesImpl = batchedUpdatesImpl;\nvar isInsideEventHandler = false;\nvar isBatchingEventUpdates = false;\n\nfunction finishEventHandler() {\n // Here we wait until all updates have propagated, which is important\n // when using controlled components within layers:\n // https://github.com/facebook/react/issues/1698\n // Then we restore state of any controlled component.\n var controlledComponentsHavePendingUpdates = needsStateRestore();\n\n if (controlledComponentsHavePendingUpdates) {\n // If a controlled event was fired, we may need to restore the state of\n // the DOM node back to the controlled value. This is necessary when React\n // bails out of the update without touching the DOM.\n flushDiscreteUpdatesImpl();\n restoreStateIfNeeded();\n }\n}\n\nfunction batchedUpdates(fn, bookkeeping) {\n if (isInsideEventHandler) {\n // If we are currently inside another batch, we need to wait until it\n // fully completes before restoring state.\n return fn(bookkeeping);\n }\n\n isInsideEventHandler = true;\n\n try {\n return batchedUpdatesImpl(fn, bookkeeping);\n } finally {\n isInsideEventHandler = false;\n finishEventHandler();\n }\n}\nfunction batchedEventUpdates(fn, a, b) {\n if (isBatchingEventUpdates) {\n // If we are currently inside another batch, we need to wait until it\n // fully completes before restoring state.\n return fn(a, b);\n }\n\n isBatchingEventUpdates = true;\n\n try {\n return batchedEventUpdatesImpl(fn, a, b);\n } finally {\n isBatchingEventUpdates = false;\n finishEventHandler();\n }\n}\nfunction discreteUpdates(fn, a, b, c, d) {\n var prevIsInsideEventHandler = isInsideEventHandler;\n isInsideEventHandler = true;\n\n try {\n return discreteUpdatesImpl(fn, a, b, c, d);\n } finally {\n isInsideEventHandler = prevIsInsideEventHandler;\n\n if (!isInsideEventHandler) {\n finishEventHandler();\n }\n }\n}\nfunction flushDiscreteUpdatesIfNeeded(timeStamp) {\n {\n if (!isInsideEventHandler) {\n flushDiscreteUpdatesImpl();\n }\n }\n}\nfunction setBatchingImplementation(_batchedUpdatesImpl, _discreteUpdatesImpl, _flushDiscreteUpdatesImpl, _batchedEventUpdatesImpl) {\n batchedUpdatesImpl = _batchedUpdatesImpl;\n discreteUpdatesImpl = _discreteUpdatesImpl;\n flushDiscreteUpdatesImpl = _flushDiscreteUpdatesImpl;\n batchedEventUpdatesImpl = _batchedEventUpdatesImpl;\n}\n\nfunction isInteractive(tag) {\n return tag === 'button' || tag === 'input' || tag === 'select' || tag === 'textarea';\n}\n\nfunction shouldPreventMouseEvent(name, type, props) {\n switch (name) {\n case 'onClick':\n case 'onClickCapture':\n case 'onDoubleClick':\n case 'onDoubleClickCapture':\n case 'onMouseDown':\n case 'onMouseDownCapture':\n case 'onMouseMove':\n case 'onMouseMoveCapture':\n case 'onMouseUp':\n case 'onMouseUpCapture':\n case 'onMouseEnter':\n return !!(props.disabled && isInteractive(type));\n\n default:\n return false;\n }\n}\n/**\n * @param {object} inst The instance, which is the source of events.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @return {?function} The stored callback.\n */\n\n\nfunction getListener(inst, registrationName) {\n var stateNode = inst.stateNode;\n\n if (stateNode === null) {\n // Work in progress (ex: onload events in incremental mode).\n return null;\n }\n\n var props = getFiberCurrentPropsFromNode(stateNode);\n\n if (props === null) {\n // Work in progress.\n return null;\n }\n\n var listener = props[registrationName];\n\n if (shouldPreventMouseEvent(registrationName, inst.type, props)) {\n return null;\n }\n\n if (!(!listener || typeof listener === 'function')) {\n {\n throw Error( \"Expected `\" + registrationName + \"` listener to be a function, instead got a value of `\" + typeof listener + \"` type.\" );\n }\n }\n\n return listener;\n}\n\nvar passiveBrowserEventsSupported = false; // Check if browser support events with passive listeners\n// https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\n\nif (canUseDOM) {\n try {\n var options = {}; // $FlowFixMe: Ignore Flow complaining about needing a value\n\n Object.defineProperty(options, 'passive', {\n get: function () {\n passiveBrowserEventsSupported = true;\n }\n });\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, options);\n } catch (e) {\n passiveBrowserEventsSupported = false;\n }\n}\n\nfunction invokeGuardedCallbackProd(name, func, context, a, b, c, d, e, f) {\n var funcArgs = Array.prototype.slice.call(arguments, 3);\n\n try {\n func.apply(context, funcArgs);\n } catch (error) {\n this.onError(error);\n }\n}\n\nvar invokeGuardedCallbackImpl = invokeGuardedCallbackProd;\n\n{\n // In DEV mode, we swap out invokeGuardedCallback for a special version\n // that plays more nicely with the browser's DevTools. The idea is to preserve\n // \"Pause on exceptions\" behavior. Because React wraps all user-provided\n // functions in invokeGuardedCallback, and the production version of\n // invokeGuardedCallback uses a try-catch, all user exceptions are treated\n // like caught exceptions, and the DevTools won't pause unless the developer\n // takes the extra step of enabling pause on caught exceptions. This is\n // unintuitive, though, because even though React has caught the error, from\n // the developer's perspective, the error is uncaught.\n //\n // To preserve the expected \"Pause on exceptions\" behavior, we don't use a\n // try-catch in DEV. Instead, we synchronously dispatch a fake event to a fake\n // DOM node, and call the user-provided callback from inside an event handler\n // for that fake event. If the callback throws, the error is \"captured\" using\n // a global event handler. But because the error happens in a different\n // event loop context, it does not interrupt the normal program flow.\n // Effectively, this gives us try-catch behavior without actually using\n // try-catch. Neat!\n // Check that the browser supports the APIs we need to implement our special\n // DEV version of invokeGuardedCallback\n if (typeof window !== 'undefined' && typeof window.dispatchEvent === 'function' && typeof document !== 'undefined' && typeof document.createEvent === 'function') {\n var fakeNode = document.createElement('react');\n\n invokeGuardedCallbackImpl = function invokeGuardedCallbackDev(name, func, context, a, b, c, d, e, f) {\n // If document doesn't exist we know for sure we will crash in this method\n // when we call document.createEvent(). However this can cause confusing\n // errors: https://github.com/facebookincubator/create-react-app/issues/3482\n // So we preemptively throw with a better message instead.\n if (!(typeof document !== 'undefined')) {\n {\n throw Error( \"The `document` global was defined when React was initialized, but is not defined anymore. This can happen in a test environment if a component schedules an update from an asynchronous callback, but the test has already finished running. To solve this, you can either unmount the component at the end of your test (and ensure that any asynchronous operations get canceled in `componentWillUnmount`), or you can change the test itself to be asynchronous.\" );\n }\n }\n\n var evt = document.createEvent('Event');\n var didCall = false; // Keeps track of whether the user-provided callback threw an error. We\n // set this to true at the beginning, then set it to false right after\n // calling the function. If the function errors, `didError` will never be\n // set to false. This strategy works even if the browser is flaky and\n // fails to call our global error handler, because it doesn't rely on\n // the error event at all.\n\n var didError = true; // Keeps track of the value of window.event so that we can reset it\n // during the callback to let user code access window.event in the\n // browsers that support it.\n\n var windowEvent = window.event; // Keeps track of the descriptor of window.event to restore it after event\n // dispatching: https://github.com/facebook/react/issues/13688\n\n var windowEventDescriptor = Object.getOwnPropertyDescriptor(window, 'event');\n\n function restoreAfterDispatch() {\n // We immediately remove the callback from event listeners so that\n // nested `invokeGuardedCallback` calls do not clash. Otherwise, a\n // nested call would trigger the fake event handlers of any call higher\n // in the stack.\n fakeNode.removeEventListener(evtType, callCallback, false); // We check for window.hasOwnProperty('event') to prevent the\n // window.event assignment in both IE <= 10 as they throw an error\n // \"Member not found\" in strict mode, and in Firefox which does not\n // support window.event.\n\n if (typeof window.event !== 'undefined' && window.hasOwnProperty('event')) {\n window.event = windowEvent;\n }\n } // Create an event handler for our fake event. We will synchronously\n // dispatch our fake event using `dispatchEvent`. Inside the handler, we\n // call the user-provided callback.\n\n\n var funcArgs = Array.prototype.slice.call(arguments, 3);\n\n function callCallback() {\n didCall = true;\n restoreAfterDispatch();\n func.apply(context, funcArgs);\n didError = false;\n } // Create a global error event handler. We use this to capture the value\n // that was thrown. It's possible that this error handler will fire more\n // than once; for example, if non-React code also calls `dispatchEvent`\n // and a handler for that event throws. We should be resilient to most of\n // those cases. Even if our error event handler fires more than once, the\n // last error event is always used. If the callback actually does error,\n // we know that the last error event is the correct one, because it's not\n // possible for anything else to have happened in between our callback\n // erroring and the code that follows the `dispatchEvent` call below. If\n // the callback doesn't error, but the error event was fired, we know to\n // ignore it because `didError` will be false, as described above.\n\n\n var error; // Use this to track whether the error event is ever called.\n\n var didSetError = false;\n var isCrossOriginError = false;\n\n function handleWindowError(event) {\n error = event.error;\n didSetError = true;\n\n if (error === null && event.colno === 0 && event.lineno === 0) {\n isCrossOriginError = true;\n }\n\n if (event.defaultPrevented) {\n // Some other error handler has prevented default.\n // Browsers silence the error report if this happens.\n // We'll remember this to later decide whether to log it or not.\n if (error != null && typeof error === 'object') {\n try {\n error._suppressLogging = true;\n } catch (inner) {// Ignore.\n }\n }\n }\n } // Create a fake event type.\n\n\n var evtType = \"react-\" + (name ? name : 'invokeguardedcallback'); // Attach our event handlers\n\n window.addEventListener('error', handleWindowError);\n fakeNode.addEventListener(evtType, callCallback, false); // Synchronously dispatch our fake event. If the user-provided function\n // errors, it will trigger our global error handler.\n\n evt.initEvent(evtType, false, false);\n fakeNode.dispatchEvent(evt);\n\n if (windowEventDescriptor) {\n Object.defineProperty(window, 'event', windowEventDescriptor);\n }\n\n if (didCall && didError) {\n if (!didSetError) {\n // The callback errored, but the error event never fired.\n error = new Error('An error was thrown inside one of your components, but React ' + \"doesn't know what it was. This is likely due to browser \" + 'flakiness. React does its best to preserve the \"Pause on ' + 'exceptions\" behavior of the DevTools, which requires some ' + \"DEV-mode only tricks. It's possible that these don't work in \" + 'your browser. Try triggering the error in production mode, ' + 'or switching to a modern browser. If you suspect that this is ' + 'actually an issue with React, please file an issue.');\n } else if (isCrossOriginError) {\n error = new Error(\"A cross-origin error was thrown. React doesn't have access to \" + 'the actual error object in development. ' + 'See https://reactjs.org/link/crossorigin-error for more information.');\n }\n\n this.onError(error);\n } // Remove our event listeners\n\n\n window.removeEventListener('error', handleWindowError);\n\n if (!didCall) {\n // Something went really wrong, and our event was not dispatched.\n // https://github.com/facebook/react/issues/16734\n // https://github.com/facebook/react/issues/16585\n // Fall back to the production implementation.\n restoreAfterDispatch();\n return invokeGuardedCallbackProd.apply(this, arguments);\n }\n };\n }\n}\n\nvar invokeGuardedCallbackImpl$1 = invokeGuardedCallbackImpl;\n\nvar hasError = false;\nvar caughtError = null; // Used by event system to capture/rethrow the first error.\n\nvar hasRethrowError = false;\nvar rethrowError = null;\nvar reporter = {\n onError: function (error) {\n hasError = true;\n caughtError = error;\n }\n};\n/**\n * Call a function while guarding against errors that happens within it.\n * Returns an error if it throws, otherwise null.\n *\n * In production, this is implemented using a try-catch. The reason we don't\n * use a try-catch directly is so that we can swap out a different\n * implementation in DEV mode.\n *\n * @param {String} name of the guard to use for logging or debugging\n * @param {Function} func The function to invoke\n * @param {*} context The context to use when calling the function\n * @param {...*} args Arguments for function\n */\n\nfunction invokeGuardedCallback(name, func, context, a, b, c, d, e, f) {\n hasError = false;\n caughtError = null;\n invokeGuardedCallbackImpl$1.apply(reporter, arguments);\n}\n/**\n * Same as invokeGuardedCallback, but instead of returning an error, it stores\n * it in a global so it can be rethrown by `rethrowCaughtError` later.\n * TODO: See if caughtError and rethrowError can be unified.\n *\n * @param {String} name of the guard to use for logging or debugging\n * @param {Function} func The function to invoke\n * @param {*} context The context to use when calling the function\n * @param {...*} args Arguments for function\n */\n\nfunction invokeGuardedCallbackAndCatchFirstError(name, func, context, a, b, c, d, e, f) {\n invokeGuardedCallback.apply(this, arguments);\n\n if (hasError) {\n var error = clearCaughtError();\n\n if (!hasRethrowError) {\n hasRethrowError = true;\n rethrowError = error;\n }\n }\n}\n/**\n * During execution of guarded functions we will capture the first error which\n * we will rethrow to be handled by the top level error handler.\n */\n\nfunction rethrowCaughtError() {\n if (hasRethrowError) {\n var error = rethrowError;\n hasRethrowError = false;\n rethrowError = null;\n throw error;\n }\n}\nfunction hasCaughtError() {\n return hasError;\n}\nfunction clearCaughtError() {\n if (hasError) {\n var error = caughtError;\n hasError = false;\n caughtError = null;\n return error;\n } else {\n {\n {\n throw Error( \"clearCaughtError was called but no error was captured. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n }\n}\n\n/**\n * `ReactInstanceMap` maintains a mapping from a public facing stateful\n * instance (key) and the internal representation (value). This allows public\n * methods to accept the user facing instance as an argument and map them back\n * to internal methods.\n *\n * Note that this module is currently shared and assumed to be stateless.\n * If this becomes an actual Map, that will break.\n */\nfunction get(key) {\n return key._reactInternals;\n}\nfunction has(key) {\n return key._reactInternals !== undefined;\n}\nfunction set(key, value) {\n key._reactInternals = value;\n}\n\n// Don't change these two values. They're used by React Dev Tools.\nvar NoFlags =\n/* */\n0;\nvar PerformedWork =\n/* */\n1; // You can change the rest (and add more).\n\nvar Placement =\n/* */\n2;\nvar Update =\n/* */\n4;\nvar PlacementAndUpdate =\n/* */\n6;\nvar Deletion =\n/* */\n8;\nvar ContentReset =\n/* */\n16;\nvar Callback =\n/* */\n32;\nvar DidCapture =\n/* */\n64;\nvar Ref =\n/* */\n128;\nvar Snapshot =\n/* */\n256;\nvar Passive =\n/* */\n512; // TODO (effects) Remove this bit once the new reconciler is synced to the old.\n\nvar PassiveUnmountPendingDev =\n/* */\n8192;\nvar Hydrating =\n/* */\n1024;\nvar HydratingAndUpdate =\n/* */\n1028; // Passive & Update & Callback & Ref & Snapshot\n\nvar LifecycleEffectMask =\n/* */\n932; // Union of all host effects\n\nvar HostEffectMask =\n/* */\n2047; // These are not really side effects, but we still reuse this field.\n\nvar Incomplete =\n/* */\n2048;\nvar ShouldCapture =\n/* */\n4096;\nvar ForceUpdateForLegacySuspense =\n/* */\n16384; // Static tags describe aspects of a fiber that are not specific to a render,\n\nvar ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;\nfunction getNearestMountedFiber(fiber) {\n var node = fiber;\n var nearestMounted = fiber;\n\n if (!fiber.alternate) {\n // If there is no alternate, this might be a new tree that isn't inserted\n // yet. If it is, then it will have a pending insertion effect on it.\n var nextNode = node;\n\n do {\n node = nextNode;\n\n if ((node.flags & (Placement | Hydrating)) !== NoFlags) {\n // This is an insertion or in-progress hydration. The nearest possible\n // mounted fiber is the parent but we need to continue to figure out\n // if that one is still mounted.\n nearestMounted = node.return;\n }\n\n nextNode = node.return;\n } while (nextNode);\n } else {\n while (node.return) {\n node = node.return;\n }\n }\n\n if (node.tag === HostRoot) {\n // TODO: Check if this was a nested HostRoot when used with\n // renderContainerIntoSubtree.\n return nearestMounted;\n } // If we didn't hit the root, that means that we're in an disconnected tree\n // that has been unmounted.\n\n\n return null;\n}\nfunction getSuspenseInstanceFromFiber(fiber) {\n if (fiber.tag === SuspenseComponent) {\n var suspenseState = fiber.memoizedState;\n\n if (suspenseState === null) {\n var current = fiber.alternate;\n\n if (current !== null) {\n suspenseState = current.memoizedState;\n }\n }\n\n if (suspenseState !== null) {\n return suspenseState.dehydrated;\n }\n }\n\n return null;\n}\nfunction getContainerFromFiber(fiber) {\n return fiber.tag === HostRoot ? fiber.stateNode.containerInfo : null;\n}\nfunction isFiberMounted(fiber) {\n return getNearestMountedFiber(fiber) === fiber;\n}\nfunction isMounted(component) {\n {\n var owner = ReactCurrentOwner.current;\n\n if (owner !== null && owner.tag === ClassComponent) {\n var ownerFiber = owner;\n var instance = ownerFiber.stateNode;\n\n if (!instance._warnedAboutRefsInRender) {\n error('%s is accessing isMounted inside its render() function. ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', getComponentName(ownerFiber.type) || 'A component');\n }\n\n instance._warnedAboutRefsInRender = true;\n }\n }\n\n var fiber = get(component);\n\n if (!fiber) {\n return false;\n }\n\n return getNearestMountedFiber(fiber) === fiber;\n}\n\nfunction assertIsMounted(fiber) {\n if (!(getNearestMountedFiber(fiber) === fiber)) {\n {\n throw Error( \"Unable to find node on an unmounted component.\" );\n }\n }\n}\n\nfunction findCurrentFiberUsingSlowPath(fiber) {\n var alternate = fiber.alternate;\n\n if (!alternate) {\n // If there is no alternate, then we only need to check if it is mounted.\n var nearestMounted = getNearestMountedFiber(fiber);\n\n if (!(nearestMounted !== null)) {\n {\n throw Error( \"Unable to find node on an unmounted component.\" );\n }\n }\n\n if (nearestMounted !== fiber) {\n return null;\n }\n\n return fiber;\n } // If we have two possible branches, we'll walk backwards up to the root\n // to see what path the root points to. On the way we may hit one of the\n // special cases and we'll deal with them.\n\n\n var a = fiber;\n var b = alternate;\n\n while (true) {\n var parentA = a.return;\n\n if (parentA === null) {\n // We're at the root.\n break;\n }\n\n var parentB = parentA.alternate;\n\n if (parentB === null) {\n // There is no alternate. This is an unusual case. Currently, it only\n // happens when a Suspense component is hidden. An extra fragment fiber\n // is inserted in between the Suspense fiber and its children. Skip\n // over this extra fragment fiber and proceed to the next parent.\n var nextParent = parentA.return;\n\n if (nextParent !== null) {\n a = b = nextParent;\n continue;\n } // If there's no parent, we're at the root.\n\n\n break;\n } // If both copies of the parent fiber point to the same child, we can\n // assume that the child is current. This happens when we bailout on low\n // priority: the bailed out fiber's child reuses the current child.\n\n\n if (parentA.child === parentB.child) {\n var child = parentA.child;\n\n while (child) {\n if (child === a) {\n // We've determined that A is the current branch.\n assertIsMounted(parentA);\n return fiber;\n }\n\n if (child === b) {\n // We've determined that B is the current branch.\n assertIsMounted(parentA);\n return alternate;\n }\n\n child = child.sibling;\n } // We should never have an alternate for any mounting node. So the only\n // way this could possibly happen is if this was unmounted, if at all.\n\n\n {\n {\n throw Error( \"Unable to find node on an unmounted component.\" );\n }\n }\n }\n\n if (a.return !== b.return) {\n // The return pointer of A and the return pointer of B point to different\n // fibers. We assume that return pointers never criss-cross, so A must\n // belong to the child set of A.return, and B must belong to the child\n // set of B.return.\n a = parentA;\n b = parentB;\n } else {\n // The return pointers point to the same fiber. We'll have to use the\n // default, slow path: scan the child sets of each parent alternate to see\n // which child belongs to which set.\n //\n // Search parent A's child set\n var didFindChild = false;\n var _child = parentA.child;\n\n while (_child) {\n if (_child === a) {\n didFindChild = true;\n a = parentA;\n b = parentB;\n break;\n }\n\n if (_child === b) {\n didFindChild = true;\n b = parentA;\n a = parentB;\n break;\n }\n\n _child = _child.sibling;\n }\n\n if (!didFindChild) {\n // Search parent B's child set\n _child = parentB.child;\n\n while (_child) {\n if (_child === a) {\n didFindChild = true;\n a = parentB;\n b = parentA;\n break;\n }\n\n if (_child === b) {\n didFindChild = true;\n b = parentB;\n a = parentA;\n break;\n }\n\n _child = _child.sibling;\n }\n\n if (!didFindChild) {\n {\n throw Error( \"Child was not found in either parent set. This indicates a bug in React related to the return pointer. Please file an issue.\" );\n }\n }\n }\n }\n\n if (!(a.alternate === b)) {\n {\n throw Error( \"Return fibers should always be each others' alternates. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n } // If the root is not a host container, we're in a disconnected tree. I.e.\n // unmounted.\n\n\n if (!(a.tag === HostRoot)) {\n {\n throw Error( \"Unable to find node on an unmounted component.\" );\n }\n }\n\n if (a.stateNode.current === a) {\n // We've determined that A is the current branch.\n return fiber;\n } // Otherwise B has to be current branch.\n\n\n return alternate;\n}\nfunction findCurrentHostFiber(parent) {\n var currentParent = findCurrentFiberUsingSlowPath(parent);\n\n if (!currentParent) {\n return null;\n } // Next we'll drill down this component to find the first HostComponent/Text.\n\n\n var node = currentParent;\n\n while (true) {\n if (node.tag === HostComponent || node.tag === HostText) {\n return node;\n } else if (node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n\n if (node === currentParent) {\n return null;\n }\n\n while (!node.sibling) {\n if (!node.return || node.return === currentParent) {\n return null;\n }\n\n node = node.return;\n }\n\n node.sibling.return = node.return;\n node = node.sibling;\n } // Flow needs the return null here, but ESLint complains about it.\n // eslint-disable-next-line no-unreachable\n\n\n return null;\n}\nfunction findCurrentHostFiberWithNoPortals(parent) {\n var currentParent = findCurrentFiberUsingSlowPath(parent);\n\n if (!currentParent) {\n return null;\n } // Next we'll drill down this component to find the first HostComponent/Text.\n\n\n var node = currentParent;\n\n while (true) {\n if (node.tag === HostComponent || node.tag === HostText || enableFundamentalAPI ) {\n return node;\n } else if (node.child && node.tag !== HostPortal) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n\n if (node === currentParent) {\n return null;\n }\n\n while (!node.sibling) {\n if (!node.return || node.return === currentParent) {\n return null;\n }\n\n node = node.return;\n }\n\n node.sibling.return = node.return;\n node = node.sibling;\n } // Flow needs the return null here, but ESLint complains about it.\n // eslint-disable-next-line no-unreachable\n\n\n return null;\n}\nfunction doesFiberContain(parentFiber, childFiber) {\n var node = childFiber;\n var parentFiberAlternate = parentFiber.alternate;\n\n while (node !== null) {\n if (node === parentFiber || node === parentFiberAlternate) {\n return true;\n }\n\n node = node.return;\n }\n\n return false;\n}\n\nvar attemptUserBlockingHydration;\nfunction setAttemptUserBlockingHydration(fn) {\n attemptUserBlockingHydration = fn;\n}\nvar attemptContinuousHydration;\nfunction setAttemptContinuousHydration(fn) {\n attemptContinuousHydration = fn;\n}\nvar attemptHydrationAtCurrentPriority;\nfunction setAttemptHydrationAtCurrentPriority(fn) {\n attemptHydrationAtCurrentPriority = fn;\n}\nvar attemptHydrationAtPriority;\nfunction setAttemptHydrationAtPriority(fn) {\n attemptHydrationAtPriority = fn;\n} // TODO: Upgrade this definition once we're on a newer version of Flow that\nvar hasScheduledReplayAttempt = false; // The queue of discrete events to be replayed.\n\nvar queuedDiscreteEvents = []; // Indicates if any continuous event targets are non-null for early bailout.\n// if the last target was dehydrated.\n\nvar queuedFocus = null;\nvar queuedDrag = null;\nvar queuedMouse = null; // For pointer events there can be one latest event per pointerId.\n\nvar queuedPointers = new Map();\nvar queuedPointerCaptures = new Map(); // We could consider replaying selectionchange and touchmoves too.\n\nvar queuedExplicitHydrationTargets = [];\nfunction hasQueuedDiscreteEvents() {\n return queuedDiscreteEvents.length > 0;\n}\nvar discreteReplayableEvents = ['mousedown', 'mouseup', 'touchcancel', 'touchend', 'touchstart', 'auxclick', 'dblclick', 'pointercancel', 'pointerdown', 'pointerup', 'dragend', 'dragstart', 'drop', 'compositionend', 'compositionstart', 'keydown', 'keypress', 'keyup', 'input', 'textInput', // Intentionally camelCase\n'copy', 'cut', 'paste', 'click', 'change', 'contextmenu', 'reset', 'submit'];\nfunction isReplayableDiscreteEvent(eventType) {\n return discreteReplayableEvents.indexOf(eventType) > -1;\n}\n\nfunction createQueuedReplayableEvent(blockedOn, domEventName, eventSystemFlags, targetContainer, nativeEvent) {\n return {\n blockedOn: blockedOn,\n domEventName: domEventName,\n eventSystemFlags: eventSystemFlags | IS_REPLAYED,\n nativeEvent: nativeEvent,\n targetContainers: [targetContainer]\n };\n}\n\nfunction queueDiscreteEvent(blockedOn, domEventName, eventSystemFlags, targetContainer, nativeEvent) {\n var queuedEvent = createQueuedReplayableEvent(blockedOn, domEventName, eventSystemFlags, targetContainer, nativeEvent);\n queuedDiscreteEvents.push(queuedEvent);\n} // Resets the replaying for this type of continuous event to no event.\n\nfunction clearIfContinuousEvent(domEventName, nativeEvent) {\n switch (domEventName) {\n case 'focusin':\n case 'focusout':\n queuedFocus = null;\n break;\n\n case 'dragenter':\n case 'dragleave':\n queuedDrag = null;\n break;\n\n case 'mouseover':\n case 'mouseout':\n queuedMouse = null;\n break;\n\n case 'pointerover':\n case 'pointerout':\n {\n var pointerId = nativeEvent.pointerId;\n queuedPointers.delete(pointerId);\n break;\n }\n\n case 'gotpointercapture':\n case 'lostpointercapture':\n {\n var _pointerId = nativeEvent.pointerId;\n queuedPointerCaptures.delete(_pointerId);\n break;\n }\n }\n}\n\nfunction accumulateOrCreateContinuousQueuedReplayableEvent(existingQueuedEvent, blockedOn, domEventName, eventSystemFlags, targetContainer, nativeEvent) {\n if (existingQueuedEvent === null || existingQueuedEvent.nativeEvent !== nativeEvent) {\n var queuedEvent = createQueuedReplayableEvent(blockedOn, domEventName, eventSystemFlags, targetContainer, nativeEvent);\n\n if (blockedOn !== null) {\n var _fiber2 = getInstanceFromNode(blockedOn);\n\n if (_fiber2 !== null) {\n // Attempt to increase the priority of this target.\n attemptContinuousHydration(_fiber2);\n }\n }\n\n return queuedEvent;\n } // If we have already queued this exact event, then it's because\n // the different event systems have different DOM event listeners.\n // We can accumulate the flags, and the targetContainers, and\n // store a single event to be replayed.\n\n\n existingQueuedEvent.eventSystemFlags |= eventSystemFlags;\n var targetContainers = existingQueuedEvent.targetContainers;\n\n if (targetContainer !== null && targetContainers.indexOf(targetContainer) === -1) {\n targetContainers.push(targetContainer);\n }\n\n return existingQueuedEvent;\n}\n\nfunction queueIfContinuousEvent(blockedOn, domEventName, eventSystemFlags, targetContainer, nativeEvent) {\n // These set relatedTarget to null because the replayed event will be treated as if we\n // moved from outside the window (no target) onto the target once it hydrates.\n // Instead of mutating we could clone the event.\n switch (domEventName) {\n case 'focusin':\n {\n var focusEvent = nativeEvent;\n queuedFocus = accumulateOrCreateContinuousQueuedReplayableEvent(queuedFocus, blockedOn, domEventName, eventSystemFlags, targetContainer, focusEvent);\n return true;\n }\n\n case 'dragenter':\n {\n var dragEvent = nativeEvent;\n queuedDrag = accumulateOrCreateContinuousQueuedReplayableEvent(queuedDrag, blockedOn, domEventName, eventSystemFlags, targetContainer, dragEvent);\n return true;\n }\n\n case 'mouseover':\n {\n var mouseEvent = nativeEvent;\n queuedMouse = accumulateOrCreateContinuousQueuedReplayableEvent(queuedMouse, blockedOn, domEventName, eventSystemFlags, targetContainer, mouseEvent);\n return true;\n }\n\n case 'pointerover':\n {\n var pointerEvent = nativeEvent;\n var pointerId = pointerEvent.pointerId;\n queuedPointers.set(pointerId, accumulateOrCreateContinuousQueuedReplayableEvent(queuedPointers.get(pointerId) || null, blockedOn, domEventName, eventSystemFlags, targetContainer, pointerEvent));\n return true;\n }\n\n case 'gotpointercapture':\n {\n var _pointerEvent = nativeEvent;\n var _pointerId2 = _pointerEvent.pointerId;\n queuedPointerCaptures.set(_pointerId2, accumulateOrCreateContinuousQueuedReplayableEvent(queuedPointerCaptures.get(_pointerId2) || null, blockedOn, domEventName, eventSystemFlags, targetContainer, _pointerEvent));\n return true;\n }\n }\n\n return false;\n} // Check if this target is unblocked. Returns true if it's unblocked.\n\nfunction attemptExplicitHydrationTarget(queuedTarget) {\n // TODO: This function shares a lot of logic with attemptToDispatchEvent.\n // Try to unify them. It's a bit tricky since it would require two return\n // values.\n var targetInst = getClosestInstanceFromNode(queuedTarget.target);\n\n if (targetInst !== null) {\n var nearestMounted = getNearestMountedFiber(targetInst);\n\n if (nearestMounted !== null) {\n var tag = nearestMounted.tag;\n\n if (tag === SuspenseComponent) {\n var instance = getSuspenseInstanceFromFiber(nearestMounted);\n\n if (instance !== null) {\n // We're blocked on hydrating this boundary.\n // Increase its priority.\n queuedTarget.blockedOn = instance;\n attemptHydrationAtPriority(queuedTarget.lanePriority, function () {\n Scheduler.unstable_runWithPriority(queuedTarget.priority, function () {\n attemptHydrationAtCurrentPriority(nearestMounted);\n });\n });\n return;\n }\n } else if (tag === HostRoot) {\n var root = nearestMounted.stateNode;\n\n if (root.hydrate) {\n queuedTarget.blockedOn = getContainerFromFiber(nearestMounted); // We don't currently have a way to increase the priority of\n // a root other than sync.\n\n return;\n }\n }\n }\n }\n\n queuedTarget.blockedOn = null;\n}\n\nfunction attemptReplayContinuousQueuedEvent(queuedEvent) {\n if (queuedEvent.blockedOn !== null) {\n return false;\n }\n\n var targetContainers = queuedEvent.targetContainers;\n\n while (targetContainers.length > 0) {\n var targetContainer = targetContainers[0];\n var nextBlockedOn = attemptToDispatchEvent(queuedEvent.domEventName, queuedEvent.eventSystemFlags, targetContainer, queuedEvent.nativeEvent);\n\n if (nextBlockedOn !== null) {\n // We're still blocked. Try again later.\n var _fiber3 = getInstanceFromNode(nextBlockedOn);\n\n if (_fiber3 !== null) {\n attemptContinuousHydration(_fiber3);\n }\n\n queuedEvent.blockedOn = nextBlockedOn;\n return false;\n } // This target container was successfully dispatched. Try the next.\n\n\n targetContainers.shift();\n }\n\n return true;\n}\n\nfunction attemptReplayContinuousQueuedEventInMap(queuedEvent, key, map) {\n if (attemptReplayContinuousQueuedEvent(queuedEvent)) {\n map.delete(key);\n }\n}\n\nfunction replayUnblockedEvents() {\n hasScheduledReplayAttempt = false; // First replay discrete events.\n\n while (queuedDiscreteEvents.length > 0) {\n var nextDiscreteEvent = queuedDiscreteEvents[0];\n\n if (nextDiscreteEvent.blockedOn !== null) {\n // We're still blocked.\n // Increase the priority of this boundary to unblock\n // the next discrete event.\n var _fiber4 = getInstanceFromNode(nextDiscreteEvent.blockedOn);\n\n if (_fiber4 !== null) {\n attemptUserBlockingHydration(_fiber4);\n }\n\n break;\n }\n\n var targetContainers = nextDiscreteEvent.targetContainers;\n\n while (targetContainers.length > 0) {\n var targetContainer = targetContainers[0];\n var nextBlockedOn = attemptToDispatchEvent(nextDiscreteEvent.domEventName, nextDiscreteEvent.eventSystemFlags, targetContainer, nextDiscreteEvent.nativeEvent);\n\n if (nextBlockedOn !== null) {\n // We're still blocked. Try again later.\n nextDiscreteEvent.blockedOn = nextBlockedOn;\n break;\n } // This target container was successfully dispatched. Try the next.\n\n\n targetContainers.shift();\n }\n\n if (nextDiscreteEvent.blockedOn === null) {\n // We've successfully replayed the first event. Let's try the next one.\n queuedDiscreteEvents.shift();\n }\n } // Next replay any continuous events.\n\n\n if (queuedFocus !== null && attemptReplayContinuousQueuedEvent(queuedFocus)) {\n queuedFocus = null;\n }\n\n if (queuedDrag !== null && attemptReplayContinuousQueuedEvent(queuedDrag)) {\n queuedDrag = null;\n }\n\n if (queuedMouse !== null && attemptReplayContinuousQueuedEvent(queuedMouse)) {\n queuedMouse = null;\n }\n\n queuedPointers.forEach(attemptReplayContinuousQueuedEventInMap);\n queuedPointerCaptures.forEach(attemptReplayContinuousQueuedEventInMap);\n}\n\nfunction scheduleCallbackIfUnblocked(queuedEvent, unblocked) {\n if (queuedEvent.blockedOn === unblocked) {\n queuedEvent.blockedOn = null;\n\n if (!hasScheduledReplayAttempt) {\n hasScheduledReplayAttempt = true; // Schedule a callback to attempt replaying as many events as are\n // now unblocked. This first might not actually be unblocked yet.\n // We could check it early to avoid scheduling an unnecessary callback.\n\n Scheduler.unstable_scheduleCallback(Scheduler.unstable_NormalPriority, replayUnblockedEvents);\n }\n }\n}\n\nfunction retryIfBlockedOn(unblocked) {\n // Mark anything that was blocked on this as no longer blocked\n // and eligible for a replay.\n if (queuedDiscreteEvents.length > 0) {\n scheduleCallbackIfUnblocked(queuedDiscreteEvents[0], unblocked); // This is a exponential search for each boundary that commits. I think it's\n // worth it because we expect very few discrete events to queue up and once\n // we are actually fully unblocked it will be fast to replay them.\n\n for (var i = 1; i < queuedDiscreteEvents.length; i++) {\n var queuedEvent = queuedDiscreteEvents[i];\n\n if (queuedEvent.blockedOn === unblocked) {\n queuedEvent.blockedOn = null;\n }\n }\n }\n\n if (queuedFocus !== null) {\n scheduleCallbackIfUnblocked(queuedFocus, unblocked);\n }\n\n if (queuedDrag !== null) {\n scheduleCallbackIfUnblocked(queuedDrag, unblocked);\n }\n\n if (queuedMouse !== null) {\n scheduleCallbackIfUnblocked(queuedMouse, unblocked);\n }\n\n var unblock = function (queuedEvent) {\n return scheduleCallbackIfUnblocked(queuedEvent, unblocked);\n };\n\n queuedPointers.forEach(unblock);\n queuedPointerCaptures.forEach(unblock);\n\n for (var _i = 0; _i < queuedExplicitHydrationTargets.length; _i++) {\n var queuedTarget = queuedExplicitHydrationTargets[_i];\n\n if (queuedTarget.blockedOn === unblocked) {\n queuedTarget.blockedOn = null;\n }\n }\n\n while (queuedExplicitHydrationTargets.length > 0) {\n var nextExplicitTarget = queuedExplicitHydrationTargets[0];\n\n if (nextExplicitTarget.blockedOn !== null) {\n // We're still blocked.\n break;\n } else {\n attemptExplicitHydrationTarget(nextExplicitTarget);\n\n if (nextExplicitTarget.blockedOn === null) {\n // We're unblocked.\n queuedExplicitHydrationTargets.shift();\n }\n }\n }\n}\n\nvar DiscreteEvent = 0;\nvar UserBlockingEvent = 1;\nvar ContinuousEvent = 2;\n\n/**\n * Generate a mapping of standard vendor prefixes using the defined style property and event name.\n *\n * @param {string} styleProp\n * @param {string} eventName\n * @returns {object}\n */\n\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes['Webkit' + styleProp] = 'webkit' + eventName;\n prefixes['Moz' + styleProp] = 'moz' + eventName;\n return prefixes;\n}\n/**\n * A list of event names to a configurable list of vendor prefixes.\n */\n\n\nvar vendorPrefixes = {\n animationend: makePrefixMap('Animation', 'AnimationEnd'),\n animationiteration: makePrefixMap('Animation', 'AnimationIteration'),\n animationstart: makePrefixMap('Animation', 'AnimationStart'),\n transitionend: makePrefixMap('Transition', 'TransitionEnd')\n};\n/**\n * Event names that have already been detected and prefixed (if applicable).\n */\n\nvar prefixedEventNames = {};\n/**\n * Element to check for prefixes on.\n */\n\nvar style = {};\n/**\n * Bootstrap if a DOM exists.\n */\n\nif (canUseDOM) {\n style = document.createElement('div').style; // On some platforms, in particular some releases of Android 4.x,\n // the un-prefixed \"animation\" and \"transition\" properties are defined on the\n // style object but the events that fire will still be prefixed, so we need\n // to check if the un-prefixed events are usable, and if not remove them from the map.\n\n if (!('AnimationEvent' in window)) {\n delete vendorPrefixes.animationend.animation;\n delete vendorPrefixes.animationiteration.animation;\n delete vendorPrefixes.animationstart.animation;\n } // Same as above\n\n\n if (!('TransitionEvent' in window)) {\n delete vendorPrefixes.transitionend.transition;\n }\n}\n/**\n * Attempts to determine the correct vendor prefixed event name.\n *\n * @param {string} eventName\n * @returns {string}\n */\n\n\nfunction getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) {\n return prefixedEventNames[eventName];\n } else if (!vendorPrefixes[eventName]) {\n return eventName;\n }\n\n var prefixMap = vendorPrefixes[eventName];\n\n for (var styleProp in prefixMap) {\n if (prefixMap.hasOwnProperty(styleProp) && styleProp in style) {\n return prefixedEventNames[eventName] = prefixMap[styleProp];\n }\n }\n\n return eventName;\n}\n\nvar ANIMATION_END = getVendorPrefixedEventName('animationend');\nvar ANIMATION_ITERATION = getVendorPrefixedEventName('animationiteration');\nvar ANIMATION_START = getVendorPrefixedEventName('animationstart');\nvar TRANSITION_END = getVendorPrefixedEventName('transitionend');\n\nvar topLevelEventsToReactNames = new Map();\nvar eventPriorities = new Map(); // We store most of the events in this module in pairs of two strings so we can re-use\n// the code required to apply the same logic for event prioritization and that of the\n// SimpleEventPlugin. This complicates things slightly, but the aim is to reduce code\n// duplication (for which there would be quite a bit). For the events that are not needed\n// for the SimpleEventPlugin (otherDiscreteEvents) we process them separately as an\n// array of top level events.\n// Lastly, we ignore prettier so we can keep the formatting sane.\n// prettier-ignore\n\nvar discreteEventPairsForSimpleEventPlugin = ['cancel', 'cancel', 'click', 'click', 'close', 'close', 'contextmenu', 'contextMenu', 'copy', 'copy', 'cut', 'cut', 'auxclick', 'auxClick', 'dblclick', 'doubleClick', // Careful!\n'dragend', 'dragEnd', 'dragstart', 'dragStart', 'drop', 'drop', 'focusin', 'focus', // Careful!\n'focusout', 'blur', // Careful!\n'input', 'input', 'invalid', 'invalid', 'keydown', 'keyDown', 'keypress', 'keyPress', 'keyup', 'keyUp', 'mousedown', 'mouseDown', 'mouseup', 'mouseUp', 'paste', 'paste', 'pause', 'pause', 'play', 'play', 'pointercancel', 'pointerCancel', 'pointerdown', 'pointerDown', 'pointerup', 'pointerUp', 'ratechange', 'rateChange', 'reset', 'reset', 'seeked', 'seeked', 'submit', 'submit', 'touchcancel', 'touchCancel', 'touchend', 'touchEnd', 'touchstart', 'touchStart', 'volumechange', 'volumeChange'];\nvar otherDiscreteEvents = ['change', 'selectionchange', 'textInput', 'compositionstart', 'compositionend', 'compositionupdate'];\n\n\nvar userBlockingPairsForSimpleEventPlugin = ['drag', 'drag', 'dragenter', 'dragEnter', 'dragexit', 'dragExit', 'dragleave', 'dragLeave', 'dragover', 'dragOver', 'mousemove', 'mouseMove', 'mouseout', 'mouseOut', 'mouseover', 'mouseOver', 'pointermove', 'pointerMove', 'pointerout', 'pointerOut', 'pointerover', 'pointerOver', 'scroll', 'scroll', 'toggle', 'toggle', 'touchmove', 'touchMove', 'wheel', 'wheel']; // prettier-ignore\n\nvar continuousPairsForSimpleEventPlugin = ['abort', 'abort', ANIMATION_END, 'animationEnd', ANIMATION_ITERATION, 'animationIteration', ANIMATION_START, 'animationStart', 'canplay', 'canPlay', 'canplaythrough', 'canPlayThrough', 'durationchange', 'durationChange', 'emptied', 'emptied', 'encrypted', 'encrypted', 'ended', 'ended', 'error', 'error', 'gotpointercapture', 'gotPointerCapture', 'load', 'load', 'loadeddata', 'loadedData', 'loadedmetadata', 'loadedMetadata', 'loadstart', 'loadStart', 'lostpointercapture', 'lostPointerCapture', 'playing', 'playing', 'progress', 'progress', 'seeking', 'seeking', 'stalled', 'stalled', 'suspend', 'suspend', 'timeupdate', 'timeUpdate', TRANSITION_END, 'transitionEnd', 'waiting', 'waiting'];\n/**\n * Turns\n * ['abort', ...]\n *\n * into\n *\n * topLevelEventsToReactNames = new Map([\n * ['abort', 'onAbort'],\n * ]);\n *\n * and registers them.\n */\n\nfunction registerSimplePluginEventsAndSetTheirPriorities(eventTypes, priority) {\n // As the event types are in pairs of two, we need to iterate\n // through in twos. The events are in pairs of two to save code\n // and improve init perf of processing this array, as it will\n // result in far fewer object allocations and property accesses\n // if we only use three arrays to process all the categories of\n // instead of tuples.\n for (var i = 0; i < eventTypes.length; i += 2) {\n var topEvent = eventTypes[i];\n var event = eventTypes[i + 1];\n var capitalizedEvent = event[0].toUpperCase() + event.slice(1);\n var reactName = 'on' + capitalizedEvent;\n eventPriorities.set(topEvent, priority);\n topLevelEventsToReactNames.set(topEvent, reactName);\n registerTwoPhaseEvent(reactName, [topEvent]);\n }\n}\n\nfunction setEventPriorities(eventTypes, priority) {\n for (var i = 0; i < eventTypes.length; i++) {\n eventPriorities.set(eventTypes[i], priority);\n }\n}\n\nfunction getEventPriorityForPluginSystem(domEventName) {\n var priority = eventPriorities.get(domEventName); // Default to a ContinuousEvent. Note: we might\n // want to warn if we can't detect the priority\n // for the event.\n\n return priority === undefined ? ContinuousEvent : priority;\n}\nfunction registerSimpleEvents() {\n registerSimplePluginEventsAndSetTheirPriorities(discreteEventPairsForSimpleEventPlugin, DiscreteEvent);\n registerSimplePluginEventsAndSetTheirPriorities(userBlockingPairsForSimpleEventPlugin, UserBlockingEvent);\n registerSimplePluginEventsAndSetTheirPriorities(continuousPairsForSimpleEventPlugin, ContinuousEvent);\n setEventPriorities(otherDiscreteEvents, DiscreteEvent);\n}\n\nvar Scheduler_now = Scheduler.unstable_now;\n\n{\n // Provide explicit error message when production+profiling bundle of e.g.\n // react-dom is used with production (non-profiling) bundle of\n // scheduler/tracing\n if (!(tracing.__interactionsRef != null && tracing.__interactionsRef.current != null)) {\n {\n throw Error( \"It is not supported to run the profiling version of a renderer (for example, `react-dom/profiling`) without also replacing the `scheduler/tracing` module with `scheduler/tracing-profiling`. Your bundler might have a setting for aliasing both modules. Learn more at https://reactjs.org/link/profiling\" );\n }\n }\n}\n// ascending numbers so we can compare them like numbers. They start at 90 to\n// avoid clashing with Scheduler's priorities.\n\nvar ImmediatePriority = 99;\nvar UserBlockingPriority = 98;\nvar NormalPriority = 97;\nvar LowPriority = 96;\nvar IdlePriority = 95; // NoPriority is the absence of priority. Also React-only.\n\nvar NoPriority = 90;\nvar initialTimeMs = Scheduler_now(); // If the initial timestamp is reasonably small, use Scheduler's `now` directly.\n\nvar SyncLanePriority = 15;\nvar SyncBatchedLanePriority = 14;\nvar InputDiscreteHydrationLanePriority = 13;\nvar InputDiscreteLanePriority = 12;\nvar InputContinuousHydrationLanePriority = 11;\nvar InputContinuousLanePriority = 10;\nvar DefaultHydrationLanePriority = 9;\nvar DefaultLanePriority = 8;\nvar TransitionHydrationPriority = 7;\nvar TransitionPriority = 6;\nvar RetryLanePriority = 5;\nvar SelectiveHydrationLanePriority = 4;\nvar IdleHydrationLanePriority = 3;\nvar IdleLanePriority = 2;\nvar OffscreenLanePriority = 1;\nvar NoLanePriority = 0;\nvar TotalLanes = 31;\nvar NoLanes =\n/* */\n0;\nvar NoLane =\n/* */\n0;\nvar SyncLane =\n/* */\n1;\nvar SyncBatchedLane =\n/* */\n2;\nvar InputDiscreteHydrationLane =\n/* */\n4;\nvar InputDiscreteLanes =\n/* */\n24;\nvar InputContinuousHydrationLane =\n/* */\n32;\nvar InputContinuousLanes =\n/* */\n192;\nvar DefaultHydrationLane =\n/* */\n256;\nvar DefaultLanes =\n/* */\n3584;\nvar TransitionHydrationLane =\n/* */\n4096;\nvar TransitionLanes =\n/* */\n4186112;\nvar RetryLanes =\n/* */\n62914560;\nvar SomeRetryLane =\n/* */\n33554432;\nvar SelectiveHydrationLane =\n/* */\n67108864;\nvar NonIdleLanes =\n/* */\n134217727;\nvar IdleHydrationLane =\n/* */\n134217728;\nvar IdleLanes =\n/* */\n805306368;\nvar OffscreenLane =\n/* */\n1073741824;\nvar NoTimestamp = -1;\nfunction setCurrentUpdateLanePriority(newLanePriority) {\n} // \"Registers\" used to \"return\" multiple values\n// Used by getHighestPriorityLanes and getNextLanes:\n\nvar return_highestLanePriority = DefaultLanePriority;\n\nfunction getHighestPriorityLanes(lanes) {\n if ((SyncLane & lanes) !== NoLanes) {\n return_highestLanePriority = SyncLanePriority;\n return SyncLane;\n }\n\n if ((SyncBatchedLane & lanes) !== NoLanes) {\n return_highestLanePriority = SyncBatchedLanePriority;\n return SyncBatchedLane;\n }\n\n if ((InputDiscreteHydrationLane & lanes) !== NoLanes) {\n return_highestLanePriority = InputDiscreteHydrationLanePriority;\n return InputDiscreteHydrationLane;\n }\n\n var inputDiscreteLanes = InputDiscreteLanes & lanes;\n\n if (inputDiscreteLanes !== NoLanes) {\n return_highestLanePriority = InputDiscreteLanePriority;\n return inputDiscreteLanes;\n }\n\n if ((lanes & InputContinuousHydrationLane) !== NoLanes) {\n return_highestLanePriority = InputContinuousHydrationLanePriority;\n return InputContinuousHydrationLane;\n }\n\n var inputContinuousLanes = InputContinuousLanes & lanes;\n\n if (inputContinuousLanes !== NoLanes) {\n return_highestLanePriority = InputContinuousLanePriority;\n return inputContinuousLanes;\n }\n\n if ((lanes & DefaultHydrationLane) !== NoLanes) {\n return_highestLanePriority = DefaultHydrationLanePriority;\n return DefaultHydrationLane;\n }\n\n var defaultLanes = DefaultLanes & lanes;\n\n if (defaultLanes !== NoLanes) {\n return_highestLanePriority = DefaultLanePriority;\n return defaultLanes;\n }\n\n if ((lanes & TransitionHydrationLane) !== NoLanes) {\n return_highestLanePriority = TransitionHydrationPriority;\n return TransitionHydrationLane;\n }\n\n var transitionLanes = TransitionLanes & lanes;\n\n if (transitionLanes !== NoLanes) {\n return_highestLanePriority = TransitionPriority;\n return transitionLanes;\n }\n\n var retryLanes = RetryLanes & lanes;\n\n if (retryLanes !== NoLanes) {\n return_highestLanePriority = RetryLanePriority;\n return retryLanes;\n }\n\n if (lanes & SelectiveHydrationLane) {\n return_highestLanePriority = SelectiveHydrationLanePriority;\n return SelectiveHydrationLane;\n }\n\n if ((lanes & IdleHydrationLane) !== NoLanes) {\n return_highestLanePriority = IdleHydrationLanePriority;\n return IdleHydrationLane;\n }\n\n var idleLanes = IdleLanes & lanes;\n\n if (idleLanes !== NoLanes) {\n return_highestLanePriority = IdleLanePriority;\n return idleLanes;\n }\n\n if ((OffscreenLane & lanes) !== NoLanes) {\n return_highestLanePriority = OffscreenLanePriority;\n return OffscreenLane;\n }\n\n {\n error('Should have found matching lanes. This is a bug in React.');\n } // This shouldn't be reachable, but as a fallback, return the entire bitmask.\n\n\n return_highestLanePriority = DefaultLanePriority;\n return lanes;\n}\n\nfunction schedulerPriorityToLanePriority(schedulerPriorityLevel) {\n switch (schedulerPriorityLevel) {\n case ImmediatePriority:\n return SyncLanePriority;\n\n case UserBlockingPriority:\n return InputContinuousLanePriority;\n\n case NormalPriority:\n case LowPriority:\n // TODO: Handle LowSchedulerPriority, somehow. Maybe the same lane as hydration.\n return DefaultLanePriority;\n\n case IdlePriority:\n return IdleLanePriority;\n\n default:\n return NoLanePriority;\n }\n}\nfunction lanePriorityToSchedulerPriority(lanePriority) {\n switch (lanePriority) {\n case SyncLanePriority:\n case SyncBatchedLanePriority:\n return ImmediatePriority;\n\n case InputDiscreteHydrationLanePriority:\n case InputDiscreteLanePriority:\n case InputContinuousHydrationLanePriority:\n case InputContinuousLanePriority:\n return UserBlockingPriority;\n\n case DefaultHydrationLanePriority:\n case DefaultLanePriority:\n case TransitionHydrationPriority:\n case TransitionPriority:\n case SelectiveHydrationLanePriority:\n case RetryLanePriority:\n return NormalPriority;\n\n case IdleHydrationLanePriority:\n case IdleLanePriority:\n case OffscreenLanePriority:\n return IdlePriority;\n\n case NoLanePriority:\n return NoPriority;\n\n default:\n {\n {\n throw Error( \"Invalid update priority: \" + lanePriority + \". This is a bug in React.\" );\n }\n }\n\n }\n}\nfunction getNextLanes(root, wipLanes) {\n // Early bailout if there's no pending work left.\n var pendingLanes = root.pendingLanes;\n\n if (pendingLanes === NoLanes) {\n return_highestLanePriority = NoLanePriority;\n return NoLanes;\n }\n\n var nextLanes = NoLanes;\n var nextLanePriority = NoLanePriority;\n var expiredLanes = root.expiredLanes;\n var suspendedLanes = root.suspendedLanes;\n var pingedLanes = root.pingedLanes; // Check if any work has expired.\n\n if (expiredLanes !== NoLanes) {\n nextLanes = expiredLanes;\n nextLanePriority = return_highestLanePriority = SyncLanePriority;\n } else {\n // Do not work on any idle work until all the non-idle work has finished,\n // even if the work is suspended.\n var nonIdlePendingLanes = pendingLanes & NonIdleLanes;\n\n if (nonIdlePendingLanes !== NoLanes) {\n var nonIdleUnblockedLanes = nonIdlePendingLanes & ~suspendedLanes;\n\n if (nonIdleUnblockedLanes !== NoLanes) {\n nextLanes = getHighestPriorityLanes(nonIdleUnblockedLanes);\n nextLanePriority = return_highestLanePriority;\n } else {\n var nonIdlePingedLanes = nonIdlePendingLanes & pingedLanes;\n\n if (nonIdlePingedLanes !== NoLanes) {\n nextLanes = getHighestPriorityLanes(nonIdlePingedLanes);\n nextLanePriority = return_highestLanePriority;\n }\n }\n } else {\n // The only remaining work is Idle.\n var unblockedLanes = pendingLanes & ~suspendedLanes;\n\n if (unblockedLanes !== NoLanes) {\n nextLanes = getHighestPriorityLanes(unblockedLanes);\n nextLanePriority = return_highestLanePriority;\n } else {\n if (pingedLanes !== NoLanes) {\n nextLanes = getHighestPriorityLanes(pingedLanes);\n nextLanePriority = return_highestLanePriority;\n }\n }\n }\n }\n\n if (nextLanes === NoLanes) {\n // This should only be reachable if we're suspended\n // TODO: Consider warning in this path if a fallback timer is not scheduled.\n return NoLanes;\n } // If there are higher priority lanes, we'll include them even if they\n // are suspended.\n\n\n nextLanes = pendingLanes & getEqualOrHigherPriorityLanes(nextLanes); // If we're already in the middle of a render, switching lanes will interrupt\n // it and we'll lose our progress. We should only do this if the new lanes are\n // higher priority.\n\n if (wipLanes !== NoLanes && wipLanes !== nextLanes && // If we already suspended with a delay, then interrupting is fine. Don't\n // bother waiting until the root is complete.\n (wipLanes & suspendedLanes) === NoLanes) {\n getHighestPriorityLanes(wipLanes);\n var wipLanePriority = return_highestLanePriority;\n\n if (nextLanePriority <= wipLanePriority) {\n return wipLanes;\n } else {\n return_highestLanePriority = nextLanePriority;\n }\n } // Check for entangled lanes and add them to the batch.\n //\n // A lane is said to be entangled with another when it's not allowed to render\n // in a batch that does not also include the other lane. Typically we do this\n // when multiple updates have the same source, and we only want to respond to\n // the most recent event from that source.\n //\n // Note that we apply entanglements *after* checking for partial work above.\n // This means that if a lane is entangled during an interleaved event while\n // it's already rendering, we won't interrupt it. This is intentional, since\n // entanglement is usually \"best effort\": we'll try our best to render the\n // lanes in the same batch, but it's not worth throwing out partially\n // completed work in order to do it.\n //\n // For those exceptions where entanglement is semantically important, like\n // useMutableSource, we should ensure that there is no partial work at the\n // time we apply the entanglement.\n\n\n var entangledLanes = root.entangledLanes;\n\n if (entangledLanes !== NoLanes) {\n var entanglements = root.entanglements;\n var lanes = nextLanes & entangledLanes;\n\n while (lanes > 0) {\n var index = pickArbitraryLaneIndex(lanes);\n var lane = 1 << index;\n nextLanes |= entanglements[index];\n lanes &= ~lane;\n }\n }\n\n return nextLanes;\n}\nfunction getMostRecentEventTime(root, lanes) {\n var eventTimes = root.eventTimes;\n var mostRecentEventTime = NoTimestamp;\n\n while (lanes > 0) {\n var index = pickArbitraryLaneIndex(lanes);\n var lane = 1 << index;\n var eventTime = eventTimes[index];\n\n if (eventTime > mostRecentEventTime) {\n mostRecentEventTime = eventTime;\n }\n\n lanes &= ~lane;\n }\n\n return mostRecentEventTime;\n}\n\nfunction computeExpirationTime(lane, currentTime) {\n // TODO: Expiration heuristic is constant per lane, so could use a map.\n getHighestPriorityLanes(lane);\n var priority = return_highestLanePriority;\n\n if (priority >= InputContinuousLanePriority) {\n // User interactions should expire slightly more quickly.\n //\n // NOTE: This is set to the corresponding constant as in Scheduler.js. When\n // we made it larger, a product metric in www regressed, suggesting there's\n // a user interaction that's being starved by a series of synchronous\n // updates. If that theory is correct, the proper solution is to fix the\n // starvation. However, this scenario supports the idea that expiration\n // times are an important safeguard when starvation does happen.\n //\n // Also note that, in the case of user input specifically, this will soon no\n // longer be an issue because we plan to make user input synchronous by\n // default (until you enter `startTransition`, of course.)\n //\n // If weren't planning to make these updates synchronous soon anyway, I\n // would probably make this number a configurable parameter.\n return currentTime + 250;\n } else if (priority >= TransitionPriority) {\n return currentTime + 5000;\n } else {\n // Anything idle priority or lower should never expire.\n return NoTimestamp;\n }\n}\n\nfunction markStarvedLanesAsExpired(root, currentTime) {\n // TODO: This gets called every time we yield. We can optimize by storing\n // the earliest expiration time on the root. Then use that to quickly bail out\n // of this function.\n var pendingLanes = root.pendingLanes;\n var suspendedLanes = root.suspendedLanes;\n var pingedLanes = root.pingedLanes;\n var expirationTimes = root.expirationTimes; // Iterate through the pending lanes and check if we've reached their\n // expiration time. If so, we'll assume the update is being starved and mark\n // it as expired to force it to finish.\n\n var lanes = pendingLanes;\n\n while (lanes > 0) {\n var index = pickArbitraryLaneIndex(lanes);\n var lane = 1 << index;\n var expirationTime = expirationTimes[index];\n\n if (expirationTime === NoTimestamp) {\n // Found a pending lane with no expiration time. If it's not suspended, or\n // if it's pinged, assume it's CPU-bound. Compute a new expiration time\n // using the current time.\n if ((lane & suspendedLanes) === NoLanes || (lane & pingedLanes) !== NoLanes) {\n // Assumes timestamps are monotonically increasing.\n expirationTimes[index] = computeExpirationTime(lane, currentTime);\n }\n } else if (expirationTime <= currentTime) {\n // This lane expired\n root.expiredLanes |= lane;\n }\n\n lanes &= ~lane;\n }\n} // This returns the highest priority pending lanes regardless of whether they\nfunction getLanesToRetrySynchronouslyOnError(root) {\n var everythingButOffscreen = root.pendingLanes & ~OffscreenLane;\n\n if (everythingButOffscreen !== NoLanes) {\n return everythingButOffscreen;\n }\n\n if (everythingButOffscreen & OffscreenLane) {\n return OffscreenLane;\n }\n\n return NoLanes;\n}\nfunction returnNextLanesPriority() {\n return return_highestLanePriority;\n}\nfunction includesNonIdleWork(lanes) {\n return (lanes & NonIdleLanes) !== NoLanes;\n}\nfunction includesOnlyRetries(lanes) {\n return (lanes & RetryLanes) === lanes;\n}\nfunction includesOnlyTransitions(lanes) {\n return (lanes & TransitionLanes) === lanes;\n} // To ensure consistency across multiple updates in the same event, this should\n// be a pure function, so that it always returns the same lane for given inputs.\n\nfunction findUpdateLane(lanePriority, wipLanes) {\n switch (lanePriority) {\n case NoLanePriority:\n break;\n\n case SyncLanePriority:\n return SyncLane;\n\n case SyncBatchedLanePriority:\n return SyncBatchedLane;\n\n case InputDiscreteLanePriority:\n {\n var _lane = pickArbitraryLane(InputDiscreteLanes & ~wipLanes);\n\n if (_lane === NoLane) {\n // Shift to the next priority level\n return findUpdateLane(InputContinuousLanePriority, wipLanes);\n }\n\n return _lane;\n }\n\n case InputContinuousLanePriority:\n {\n var _lane2 = pickArbitraryLane(InputContinuousLanes & ~wipLanes);\n\n if (_lane2 === NoLane) {\n // Shift to the next priority level\n return findUpdateLane(DefaultLanePriority, wipLanes);\n }\n\n return _lane2;\n }\n\n case DefaultLanePriority:\n {\n var _lane3 = pickArbitraryLane(DefaultLanes & ~wipLanes);\n\n if (_lane3 === NoLane) {\n // If all the default lanes are already being worked on, look for a\n // lane in the transition range.\n _lane3 = pickArbitraryLane(TransitionLanes & ~wipLanes);\n\n if (_lane3 === NoLane) {\n // All the transition lanes are taken, too. This should be very\n // rare, but as a last resort, pick a default lane. This will have\n // the effect of interrupting the current work-in-progress render.\n _lane3 = pickArbitraryLane(DefaultLanes);\n }\n }\n\n return _lane3;\n }\n\n case TransitionPriority: // Should be handled by findTransitionLane instead\n\n case RetryLanePriority:\n // Should be handled by findRetryLane instead\n break;\n\n case IdleLanePriority:\n var lane = pickArbitraryLane(IdleLanes & ~wipLanes);\n\n if (lane === NoLane) {\n lane = pickArbitraryLane(IdleLanes);\n }\n\n return lane;\n }\n\n {\n {\n throw Error( \"Invalid update priority: \" + lanePriority + \". This is a bug in React.\" );\n }\n }\n} // To ensure consistency across multiple updates in the same event, this should\n// be pure function, so that it always returns the same lane for given inputs.\n\nfunction findTransitionLane(wipLanes, pendingLanes) {\n // First look for lanes that are completely unclaimed, i.e. have no\n // pending work.\n var lane = pickArbitraryLane(TransitionLanes & ~pendingLanes);\n\n if (lane === NoLane) {\n // If all lanes have pending work, look for a lane that isn't currently\n // being worked on.\n lane = pickArbitraryLane(TransitionLanes & ~wipLanes);\n\n if (lane === NoLane) {\n // If everything is being worked on, pick any lane. This has the\n // effect of interrupting the current work-in-progress.\n lane = pickArbitraryLane(TransitionLanes);\n }\n }\n\n return lane;\n} // To ensure consistency across multiple updates in the same event, this should\n// be pure function, so that it always returns the same lane for given inputs.\n\nfunction findRetryLane(wipLanes) {\n // This is a fork of `findUpdateLane` designed specifically for Suspense\n // \"retries\" — a special update that attempts to flip a Suspense boundary\n // from its placeholder state to its primary/resolved state.\n var lane = pickArbitraryLane(RetryLanes & ~wipLanes);\n\n if (lane === NoLane) {\n lane = pickArbitraryLane(RetryLanes);\n }\n\n return lane;\n}\n\nfunction getHighestPriorityLane(lanes) {\n return lanes & -lanes;\n}\n\nfunction getLowestPriorityLane(lanes) {\n // This finds the most significant non-zero bit.\n var index = 31 - clz32(lanes);\n return index < 0 ? NoLanes : 1 << index;\n}\n\nfunction getEqualOrHigherPriorityLanes(lanes) {\n return (getLowestPriorityLane(lanes) << 1) - 1;\n}\n\nfunction pickArbitraryLane(lanes) {\n // This wrapper function gets inlined. Only exists so to communicate that it\n // doesn't matter which bit is selected; you can pick any bit without\n // affecting the algorithms where its used. Here I'm using\n // getHighestPriorityLane because it requires the fewest operations.\n return getHighestPriorityLane(lanes);\n}\n\nfunction pickArbitraryLaneIndex(lanes) {\n return 31 - clz32(lanes);\n}\n\nfunction laneToIndex(lane) {\n return pickArbitraryLaneIndex(lane);\n}\n\nfunction includesSomeLane(a, b) {\n return (a & b) !== NoLanes;\n}\nfunction isSubsetOfLanes(set, subset) {\n return (set & subset) === subset;\n}\nfunction mergeLanes(a, b) {\n return a | b;\n}\nfunction removeLanes(set, subset) {\n return set & ~subset;\n} // Seems redundant, but it changes the type from a single lane (used for\n// updates) to a group of lanes (used for flushing work).\n\nfunction laneToLanes(lane) {\n return lane;\n}\nfunction higherPriorityLane(a, b) {\n // This works because the bit ranges decrease in priority as you go left.\n return a !== NoLane && a < b ? a : b;\n}\nfunction createLaneMap(initial) {\n // Intentionally pushing one by one.\n // https://v8.dev/blog/elements-kinds#avoid-creating-holes\n var laneMap = [];\n\n for (var i = 0; i < TotalLanes; i++) {\n laneMap.push(initial);\n }\n\n return laneMap;\n}\nfunction markRootUpdated(root, updateLane, eventTime) {\n root.pendingLanes |= updateLane; // TODO: Theoretically, any update to any lane can unblock any other lane. But\n // it's not practical to try every single possible combination. We need a\n // heuristic to decide which lanes to attempt to render, and in which batches.\n // For now, we use the same heuristic as in the old ExpirationTimes model:\n // retry any lane at equal or lower priority, but don't try updates at higher\n // priority without also including the lower priority updates. This works well\n // when considering updates across different priority levels, but isn't\n // sufficient for updates within the same priority, since we want to treat\n // those updates as parallel.\n // Unsuspend any update at equal or lower priority.\n\n var higherPriorityLanes = updateLane - 1; // Turns 0b1000 into 0b0111\n\n root.suspendedLanes &= higherPriorityLanes;\n root.pingedLanes &= higherPriorityLanes;\n var eventTimes = root.eventTimes;\n var index = laneToIndex(updateLane); // We can always overwrite an existing timestamp because we prefer the most\n // recent event, and we assume time is monotonically increasing.\n\n eventTimes[index] = eventTime;\n}\nfunction markRootSuspended(root, suspendedLanes) {\n root.suspendedLanes |= suspendedLanes;\n root.pingedLanes &= ~suspendedLanes; // The suspended lanes are no longer CPU-bound. Clear their expiration times.\n\n var expirationTimes = root.expirationTimes;\n var lanes = suspendedLanes;\n\n while (lanes > 0) {\n var index = pickArbitraryLaneIndex(lanes);\n var lane = 1 << index;\n expirationTimes[index] = NoTimestamp;\n lanes &= ~lane;\n }\n}\nfunction markRootPinged(root, pingedLanes, eventTime) {\n root.pingedLanes |= root.suspendedLanes & pingedLanes;\n}\nfunction markDiscreteUpdatesExpired(root) {\n root.expiredLanes |= InputDiscreteLanes & root.pendingLanes;\n}\nfunction hasDiscreteLanes(lanes) {\n return (lanes & InputDiscreteLanes) !== NoLanes;\n}\nfunction markRootMutableRead(root, updateLane) {\n root.mutableReadLanes |= updateLane & root.pendingLanes;\n}\nfunction markRootFinished(root, remainingLanes) {\n var noLongerPendingLanes = root.pendingLanes & ~remainingLanes;\n root.pendingLanes = remainingLanes; // Let's try everything again\n\n root.suspendedLanes = 0;\n root.pingedLanes = 0;\n root.expiredLanes &= remainingLanes;\n root.mutableReadLanes &= remainingLanes;\n root.entangledLanes &= remainingLanes;\n var entanglements = root.entanglements;\n var eventTimes = root.eventTimes;\n var expirationTimes = root.expirationTimes; // Clear the lanes that no longer have pending work\n\n var lanes = noLongerPendingLanes;\n\n while (lanes > 0) {\n var index = pickArbitraryLaneIndex(lanes);\n var lane = 1 << index;\n entanglements[index] = NoLanes;\n eventTimes[index] = NoTimestamp;\n expirationTimes[index] = NoTimestamp;\n lanes &= ~lane;\n }\n}\nfunction markRootEntangled(root, entangledLanes) {\n root.entangledLanes |= entangledLanes;\n var entanglements = root.entanglements;\n var lanes = entangledLanes;\n\n while (lanes > 0) {\n var index = pickArbitraryLaneIndex(lanes);\n var lane = 1 << index;\n entanglements[index] |= entangledLanes;\n lanes &= ~lane;\n }\n}\nvar clz32 = Math.clz32 ? Math.clz32 : clz32Fallback; // Count leading zeros. Only used on lanes, so assume input is an integer.\n// Based on:\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/clz32\n\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\nfunction clz32Fallback(lanes) {\n if (lanes === 0) {\n return 32;\n }\n\n return 31 - (log(lanes) / LN2 | 0) | 0;\n}\n\n// Intentionally not named imports because Rollup would use dynamic dispatch for\nvar UserBlockingPriority$1 = Scheduler.unstable_UserBlockingPriority,\n runWithPriority = Scheduler.unstable_runWithPriority; // TODO: can we stop exporting these?\n\nvar _enabled = true; // This is exported in FB builds for use by legacy FB layer infra.\n// We'd like to remove this but it's not clear if this is safe.\n\nfunction setEnabled(enabled) {\n _enabled = !!enabled;\n}\nfunction isEnabled() {\n return _enabled;\n}\nfunction createEventListenerWrapperWithPriority(targetContainer, domEventName, eventSystemFlags) {\n var eventPriority = getEventPriorityForPluginSystem(domEventName);\n var listenerWrapper;\n\n switch (eventPriority) {\n case DiscreteEvent:\n listenerWrapper = dispatchDiscreteEvent;\n break;\n\n case UserBlockingEvent:\n listenerWrapper = dispatchUserBlockingUpdate;\n break;\n\n case ContinuousEvent:\n default:\n listenerWrapper = dispatchEvent;\n break;\n }\n\n return listenerWrapper.bind(null, domEventName, eventSystemFlags, targetContainer);\n}\n\nfunction dispatchDiscreteEvent(domEventName, eventSystemFlags, container, nativeEvent) {\n {\n flushDiscreteUpdatesIfNeeded(nativeEvent.timeStamp);\n }\n\n discreteUpdates(dispatchEvent, domEventName, eventSystemFlags, container, nativeEvent);\n}\n\nfunction dispatchUserBlockingUpdate(domEventName, eventSystemFlags, container, nativeEvent) {\n {\n runWithPriority(UserBlockingPriority$1, dispatchEvent.bind(null, domEventName, eventSystemFlags, container, nativeEvent));\n }\n}\n\nfunction dispatchEvent(domEventName, eventSystemFlags, targetContainer, nativeEvent) {\n if (!_enabled) {\n return;\n }\n\n var allowReplay = true;\n\n {\n // TODO: replaying capture phase events is currently broken\n // because we used to do it during top-level native bubble handlers\n // but now we use different bubble and capture handlers.\n // In eager mode, we attach capture listeners early, so we need\n // to filter them out until we fix the logic to handle them correctly.\n // This could've been outside the flag but I put it inside to reduce risk.\n allowReplay = (eventSystemFlags & IS_CAPTURE_PHASE) === 0;\n }\n\n if (allowReplay && hasQueuedDiscreteEvents() && isReplayableDiscreteEvent(domEventName)) {\n // If we already have a queue of discrete events, and this is another discrete\n // event, then we can't dispatch it regardless of its target, since they\n // need to dispatch in order.\n queueDiscreteEvent(null, // Flags that we're not actually blocked on anything as far as we know.\n domEventName, eventSystemFlags, targetContainer, nativeEvent);\n return;\n }\n\n var blockedOn = attemptToDispatchEvent(domEventName, eventSystemFlags, targetContainer, nativeEvent);\n\n if (blockedOn === null) {\n // We successfully dispatched this event.\n if (allowReplay) {\n clearIfContinuousEvent(domEventName, nativeEvent);\n }\n\n return;\n }\n\n if (allowReplay) {\n if (isReplayableDiscreteEvent(domEventName)) {\n // This this to be replayed later once the target is available.\n queueDiscreteEvent(blockedOn, domEventName, eventSystemFlags, targetContainer, nativeEvent);\n return;\n }\n\n if (queueIfContinuousEvent(blockedOn, domEventName, eventSystemFlags, targetContainer, nativeEvent)) {\n return;\n } // We need to clear only if we didn't queue because\n // queueing is accummulative.\n\n\n clearIfContinuousEvent(domEventName, nativeEvent);\n } // This is not replayable so we'll invoke it but without a target,\n // in case the event system needs to trace it.\n\n\n dispatchEventForPluginEventSystem(domEventName, eventSystemFlags, nativeEvent, null, targetContainer);\n} // Attempt dispatching an event. Returns a SuspenseInstance or Container if it's blocked.\n\nfunction attemptToDispatchEvent(domEventName, eventSystemFlags, targetContainer, nativeEvent) {\n // TODO: Warn if _enabled is false.\n var nativeEventTarget = getEventTarget(nativeEvent);\n var targetInst = getClosestInstanceFromNode(nativeEventTarget);\n\n if (targetInst !== null) {\n var nearestMounted = getNearestMountedFiber(targetInst);\n\n if (nearestMounted === null) {\n // This tree has been unmounted already. Dispatch without a target.\n targetInst = null;\n } else {\n var tag = nearestMounted.tag;\n\n if (tag === SuspenseComponent) {\n var instance = getSuspenseInstanceFromFiber(nearestMounted);\n\n if (instance !== null) {\n // Queue the event to be replayed later. Abort dispatching since we\n // don't want this event dispatched twice through the event system.\n // TODO: If this is the first discrete event in the queue. Schedule an increased\n // priority for this boundary.\n return instance;\n } // This shouldn't happen, something went wrong but to avoid blocking\n // the whole system, dispatch the event without a target.\n // TODO: Warn.\n\n\n targetInst = null;\n } else if (tag === HostRoot) {\n var root = nearestMounted.stateNode;\n\n if (root.hydrate) {\n // If this happens during a replay something went wrong and it might block\n // the whole system.\n return getContainerFromFiber(nearestMounted);\n }\n\n targetInst = null;\n } else if (nearestMounted !== targetInst) {\n // If we get an event (ex: img onload) before committing that\n // component's mount, ignore it for now (that is, treat it as if it was an\n // event on a non-React tree). We might also consider queueing events and\n // dispatching them after the mount.\n targetInst = null;\n }\n }\n }\n\n dispatchEventForPluginEventSystem(domEventName, eventSystemFlags, nativeEvent, targetInst, targetContainer); // We're not blocked on anything.\n\n return null;\n}\n\nfunction addEventBubbleListener(target, eventType, listener) {\n target.addEventListener(eventType, listener, false);\n return listener;\n}\nfunction addEventCaptureListener(target, eventType, listener) {\n target.addEventListener(eventType, listener, true);\n return listener;\n}\nfunction addEventCaptureListenerWithPassiveFlag(target, eventType, listener, passive) {\n target.addEventListener(eventType, listener, {\n capture: true,\n passive: passive\n });\n return listener;\n}\nfunction addEventBubbleListenerWithPassiveFlag(target, eventType, listener, passive) {\n target.addEventListener(eventType, listener, {\n passive: passive\n });\n return listener;\n}\n\n/**\n * These variables store information about text content of a target node,\n * allowing comparison of content before and after a given event.\n *\n * Identify the node where selection currently begins, then observe\n * both its text content and its current position in the DOM. Since the\n * browser may natively replace the target node during composition, we can\n * use its position to find its replacement.\n *\n *\n */\nvar root = null;\nvar startText = null;\nvar fallbackText = null;\nfunction initialize(nativeEventTarget) {\n root = nativeEventTarget;\n startText = getText();\n return true;\n}\nfunction reset() {\n root = null;\n startText = null;\n fallbackText = null;\n}\nfunction getData() {\n if (fallbackText) {\n return fallbackText;\n }\n\n var start;\n var startValue = startText;\n var startLength = startValue.length;\n var end;\n var endValue = getText();\n var endLength = endValue.length;\n\n for (start = 0; start < startLength; start++) {\n if (startValue[start] !== endValue[start]) {\n break;\n }\n }\n\n var minEnd = startLength - start;\n\n for (end = 1; end <= minEnd; end++) {\n if (startValue[startLength - end] !== endValue[endLength - end]) {\n break;\n }\n }\n\n var sliceTail = end > 1 ? 1 - end : undefined;\n fallbackText = endValue.slice(start, sliceTail);\n return fallbackText;\n}\nfunction getText() {\n if ('value' in root) {\n return root.value;\n }\n\n return root.textContent;\n}\n\n/**\n * `charCode` represents the actual \"character code\" and is safe to use with\n * `String.fromCharCode`. As such, only keys that correspond to printable\n * characters produce a valid `charCode`, the only exception to this is Enter.\n * The Tab-key is considered non-printable and does not have a `charCode`,\n * presumably because it does not produce a tab-character in browsers.\n *\n * @param {object} nativeEvent Native browser event.\n * @return {number} Normalized `charCode` property.\n */\nfunction getEventCharCode(nativeEvent) {\n var charCode;\n var keyCode = nativeEvent.keyCode;\n\n if ('charCode' in nativeEvent) {\n charCode = nativeEvent.charCode; // FF does not set `charCode` for the Enter-key, check against `keyCode`.\n\n if (charCode === 0 && keyCode === 13) {\n charCode = 13;\n }\n } else {\n // IE8 does not implement `charCode`, but `keyCode` has the correct value.\n charCode = keyCode;\n } // IE and Edge (on Windows) and Chrome / Safari (on Windows and Linux)\n // report Enter as charCode 10 when ctrl is pressed.\n\n\n if (charCode === 10) {\n charCode = 13;\n } // Some non-printable keys are reported in `charCode`/`keyCode`, discard them.\n // Must not discard the (non-)printable Enter-key.\n\n\n if (charCode >= 32 || charCode === 13) {\n return charCode;\n }\n\n return 0;\n}\n\nfunction functionThatReturnsTrue() {\n return true;\n}\n\nfunction functionThatReturnsFalse() {\n return false;\n} // This is intentionally a factory so that we have different returned constructors.\n// If we had a single constructor, it would be megamorphic and engines would deopt.\n\n\nfunction createSyntheticEvent(Interface) {\n /**\n * Synthetic events are dispatched by event plugins, typically in response to a\n * top-level event delegation handler.\n *\n * These systems should generally use pooling to reduce the frequency of garbage\n * collection. The system should check `isPersistent` to determine whether the\n * event should be released into the pool after being dispatched. Users that\n * need a persisted event should invoke `persist`.\n *\n * Synthetic events (and subclasses) implement the DOM Level 3 Events API by\n * normalizing browser quirks. Subclasses do not necessarily have to implement a\n * DOM interface; custom application-specific events can also subclass this.\n */\n function SyntheticBaseEvent(reactName, reactEventType, targetInst, nativeEvent, nativeEventTarget) {\n this._reactName = reactName;\n this._targetInst = targetInst;\n this.type = reactEventType;\n this.nativeEvent = nativeEvent;\n this.target = nativeEventTarget;\n this.currentTarget = null;\n\n for (var _propName in Interface) {\n if (!Interface.hasOwnProperty(_propName)) {\n continue;\n }\n\n var normalize = Interface[_propName];\n\n if (normalize) {\n this[_propName] = normalize(nativeEvent);\n } else {\n this[_propName] = nativeEvent[_propName];\n }\n }\n\n var defaultPrevented = nativeEvent.defaultPrevented != null ? nativeEvent.defaultPrevented : nativeEvent.returnValue === false;\n\n if (defaultPrevented) {\n this.isDefaultPrevented = functionThatReturnsTrue;\n } else {\n this.isDefaultPrevented = functionThatReturnsFalse;\n }\n\n this.isPropagationStopped = functionThatReturnsFalse;\n return this;\n }\n\n _assign(SyntheticBaseEvent.prototype, {\n preventDefault: function () {\n this.defaultPrevented = true;\n var event = this.nativeEvent;\n\n if (!event) {\n return;\n }\n\n if (event.preventDefault) {\n event.preventDefault(); // $FlowFixMe - flow is not aware of `unknown` in IE\n } else if (typeof event.returnValue !== 'unknown') {\n event.returnValue = false;\n }\n\n this.isDefaultPrevented = functionThatReturnsTrue;\n },\n stopPropagation: function () {\n var event = this.nativeEvent;\n\n if (!event) {\n return;\n }\n\n if (event.stopPropagation) {\n event.stopPropagation(); // $FlowFixMe - flow is not aware of `unknown` in IE\n } else if (typeof event.cancelBubble !== 'unknown') {\n // The ChangeEventPlugin registers a \"propertychange\" event for\n // IE. This event does not support bubbling or cancelling, and\n // any references to cancelBubble throw \"Member not found\". A\n // typeof check of \"unknown\" circumvents this issue (and is also\n // IE specific).\n event.cancelBubble = true;\n }\n\n this.isPropagationStopped = functionThatReturnsTrue;\n },\n\n /**\n * We release all dispatched `SyntheticEvent`s after each event loop, adding\n * them back into the pool. This allows a way to hold onto a reference that\n * won't be added back into the pool.\n */\n persist: function () {// Modern event system doesn't use pooling.\n },\n\n /**\n * Checks if this event should be released back into the pool.\n *\n * @return {boolean} True if this should not be released, false otherwise.\n */\n isPersistent: functionThatReturnsTrue\n });\n\n return SyntheticBaseEvent;\n}\n/**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\n\n\nvar EventInterface = {\n eventPhase: 0,\n bubbles: 0,\n cancelable: 0,\n timeStamp: function (event) {\n return event.timeStamp || Date.now();\n },\n defaultPrevented: 0,\n isTrusted: 0\n};\nvar SyntheticEvent = createSyntheticEvent(EventInterface);\n\nvar UIEventInterface = _assign({}, EventInterface, {\n view: 0,\n detail: 0\n});\n\nvar SyntheticUIEvent = createSyntheticEvent(UIEventInterface);\nvar lastMovementX;\nvar lastMovementY;\nvar lastMouseEvent;\n\nfunction updateMouseMovementPolyfillState(event) {\n if (event !== lastMouseEvent) {\n if (lastMouseEvent && event.type === 'mousemove') {\n lastMovementX = event.screenX - lastMouseEvent.screenX;\n lastMovementY = event.screenY - lastMouseEvent.screenY;\n } else {\n lastMovementX = 0;\n lastMovementY = 0;\n }\n\n lastMouseEvent = event;\n }\n}\n/**\n * @interface MouseEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\n\n\nvar MouseEventInterface = _assign({}, UIEventInterface, {\n screenX: 0,\n screenY: 0,\n clientX: 0,\n clientY: 0,\n pageX: 0,\n pageY: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n getModifierState: getEventModifierState,\n button: 0,\n buttons: 0,\n relatedTarget: function (event) {\n if (event.relatedTarget === undefined) return event.fromElement === event.srcElement ? event.toElement : event.fromElement;\n return event.relatedTarget;\n },\n movementX: function (event) {\n if ('movementX' in event) {\n return event.movementX;\n }\n\n updateMouseMovementPolyfillState(event);\n return lastMovementX;\n },\n movementY: function (event) {\n if ('movementY' in event) {\n return event.movementY;\n } // Don't need to call updateMouseMovementPolyfillState() here\n // because it's guaranteed to have already run when movementX\n // was copied.\n\n\n return lastMovementY;\n }\n});\n\nvar SyntheticMouseEvent = createSyntheticEvent(MouseEventInterface);\n/**\n * @interface DragEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\n\nvar DragEventInterface = _assign({}, MouseEventInterface, {\n dataTransfer: 0\n});\n\nvar SyntheticDragEvent = createSyntheticEvent(DragEventInterface);\n/**\n * @interface FocusEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\n\nvar FocusEventInterface = _assign({}, UIEventInterface, {\n relatedTarget: 0\n});\n\nvar SyntheticFocusEvent = createSyntheticEvent(FocusEventInterface);\n/**\n * @interface Event\n * @see http://www.w3.org/TR/css3-animations/#AnimationEvent-interface\n * @see https://developer.mozilla.org/en-US/docs/Web/API/AnimationEvent\n */\n\nvar AnimationEventInterface = _assign({}, EventInterface, {\n animationName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n});\n\nvar SyntheticAnimationEvent = createSyntheticEvent(AnimationEventInterface);\n/**\n * @interface Event\n * @see http://www.w3.org/TR/clipboard-apis/\n */\n\nvar ClipboardEventInterface = _assign({}, EventInterface, {\n clipboardData: function (event) {\n return 'clipboardData' in event ? event.clipboardData : window.clipboardData;\n }\n});\n\nvar SyntheticClipboardEvent = createSyntheticEvent(ClipboardEventInterface);\n/**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#events-compositionevents\n */\n\nvar CompositionEventInterface = _assign({}, EventInterface, {\n data: 0\n});\n\nvar SyntheticCompositionEvent = createSyntheticEvent(CompositionEventInterface);\n/**\n * @interface Event\n * @see http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105\n * /#events-inputevents\n */\n// Happens to share the same list for now.\n\nvar SyntheticInputEvent = SyntheticCompositionEvent;\n/**\n * Normalization of deprecated HTML5 `key` values\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */\n\nvar normalizeKey = {\n Esc: 'Escape',\n Spacebar: ' ',\n Left: 'ArrowLeft',\n Up: 'ArrowUp',\n Right: 'ArrowRight',\n Down: 'ArrowDown',\n Del: 'Delete',\n Win: 'OS',\n Menu: 'ContextMenu',\n Apps: 'ContextMenu',\n Scroll: 'ScrollLock',\n MozPrintableKey: 'Unidentified'\n};\n/**\n * Translation from legacy `keyCode` to HTML5 `key`\n * Only special keys supported, all others depend on keyboard layout or browser\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */\n\nvar translateToKey = {\n '8': 'Backspace',\n '9': 'Tab',\n '12': 'Clear',\n '13': 'Enter',\n '16': 'Shift',\n '17': 'Control',\n '18': 'Alt',\n '19': 'Pause',\n '20': 'CapsLock',\n '27': 'Escape',\n '32': ' ',\n '33': 'PageUp',\n '34': 'PageDown',\n '35': 'End',\n '36': 'Home',\n '37': 'ArrowLeft',\n '38': 'ArrowUp',\n '39': 'ArrowRight',\n '40': 'ArrowDown',\n '45': 'Insert',\n '46': 'Delete',\n '112': 'F1',\n '113': 'F2',\n '114': 'F3',\n '115': 'F4',\n '116': 'F5',\n '117': 'F6',\n '118': 'F7',\n '119': 'F8',\n '120': 'F9',\n '121': 'F10',\n '122': 'F11',\n '123': 'F12',\n '144': 'NumLock',\n '145': 'ScrollLock',\n '224': 'Meta'\n};\n/**\n * @param {object} nativeEvent Native browser event.\n * @return {string} Normalized `key` property.\n */\n\nfunction getEventKey(nativeEvent) {\n if (nativeEvent.key) {\n // Normalize inconsistent values reported by browsers due to\n // implementations of a working draft specification.\n // FireFox implements `key` but returns `MozPrintableKey` for all\n // printable characters (normalized to `Unidentified`), ignore it.\n var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n\n if (key !== 'Unidentified') {\n return key;\n }\n } // Browser does not implement `key`, polyfill as much of it as we can.\n\n\n if (nativeEvent.type === 'keypress') {\n var charCode = getEventCharCode(nativeEvent); // The enter-key is technically both printable and non-printable and can\n // thus be captured by `keypress`, no other non-printable key should.\n\n return charCode === 13 ? 'Enter' : String.fromCharCode(charCode);\n }\n\n if (nativeEvent.type === 'keydown' || nativeEvent.type === 'keyup') {\n // While user keyboard layout determines the actual meaning of each\n // `keyCode` value, almost all function keys have a universal value.\n return translateToKey[nativeEvent.keyCode] || 'Unidentified';\n }\n\n return '';\n}\n/**\n * Translation from modifier key to the associated property in the event.\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#keys-Modifiers\n */\n\n\nvar modifierKeyToProp = {\n Alt: 'altKey',\n Control: 'ctrlKey',\n Meta: 'metaKey',\n Shift: 'shiftKey'\n}; // Older browsers (Safari <= 10, iOS Safari <= 10.2) do not support\n// getModifierState. If getModifierState is not supported, we map it to a set of\n// modifier keys exposed by the event. In this case, Lock-keys are not supported.\n\nfunction modifierStateGetter(keyArg) {\n var syntheticEvent = this;\n var nativeEvent = syntheticEvent.nativeEvent;\n\n if (nativeEvent.getModifierState) {\n return nativeEvent.getModifierState(keyArg);\n }\n\n var keyProp = modifierKeyToProp[keyArg];\n return keyProp ? !!nativeEvent[keyProp] : false;\n}\n\nfunction getEventModifierState(nativeEvent) {\n return modifierStateGetter;\n}\n/**\n * @interface KeyboardEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\n\n\nvar KeyboardEventInterface = _assign({}, UIEventInterface, {\n key: getEventKey,\n code: 0,\n location: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n repeat: 0,\n locale: 0,\n getModifierState: getEventModifierState,\n // Legacy Interface\n charCode: function (event) {\n // `charCode` is the result of a KeyPress event and represents the value of\n // the actual printable character.\n // KeyPress is deprecated, but its replacement is not yet final and not\n // implemented in any major browser. Only KeyPress has charCode.\n if (event.type === 'keypress') {\n return getEventCharCode(event);\n }\n\n return 0;\n },\n keyCode: function (event) {\n // `keyCode` is the result of a KeyDown/Up event and represents the value of\n // physical keyboard key.\n // The actual meaning of the value depends on the users' keyboard layout\n // which cannot be detected. Assuming that it is a US keyboard layout\n // provides a surprisingly accurate mapping for US and European users.\n // Due to this, it is left to the user to implement at this time.\n if (event.type === 'keydown' || event.type === 'keyup') {\n return event.keyCode;\n }\n\n return 0;\n },\n which: function (event) {\n // `which` is an alias for either `keyCode` or `charCode` depending on the\n // type of the event.\n if (event.type === 'keypress') {\n return getEventCharCode(event);\n }\n\n if (event.type === 'keydown' || event.type === 'keyup') {\n return event.keyCode;\n }\n\n return 0;\n }\n});\n\nvar SyntheticKeyboardEvent = createSyntheticEvent(KeyboardEventInterface);\n/**\n * @interface PointerEvent\n * @see http://www.w3.org/TR/pointerevents/\n */\n\nvar PointerEventInterface = _assign({}, MouseEventInterface, {\n pointerId: 0,\n width: 0,\n height: 0,\n pressure: 0,\n tangentialPressure: 0,\n tiltX: 0,\n tiltY: 0,\n twist: 0,\n pointerType: 0,\n isPrimary: 0\n});\n\nvar SyntheticPointerEvent = createSyntheticEvent(PointerEventInterface);\n/**\n * @interface TouchEvent\n * @see http://www.w3.org/TR/touch-events/\n */\n\nvar TouchEventInterface = _assign({}, UIEventInterface, {\n touches: 0,\n targetTouches: 0,\n changedTouches: 0,\n altKey: 0,\n metaKey: 0,\n ctrlKey: 0,\n shiftKey: 0,\n getModifierState: getEventModifierState\n});\n\nvar SyntheticTouchEvent = createSyntheticEvent(TouchEventInterface);\n/**\n * @interface Event\n * @see http://www.w3.org/TR/2009/WD-css3-transitions-20090320/#transition-events-\n * @see https://developer.mozilla.org/en-US/docs/Web/API/TransitionEvent\n */\n\nvar TransitionEventInterface = _assign({}, EventInterface, {\n propertyName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n});\n\nvar SyntheticTransitionEvent = createSyntheticEvent(TransitionEventInterface);\n/**\n * @interface WheelEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\n\nvar WheelEventInterface = _assign({}, MouseEventInterface, {\n deltaX: function (event) {\n return 'deltaX' in event ? event.deltaX : // Fallback to `wheelDeltaX` for Webkit and normalize (right is positive).\n 'wheelDeltaX' in event ? -event.wheelDeltaX : 0;\n },\n deltaY: function (event) {\n return 'deltaY' in event ? event.deltaY : // Fallback to `wheelDeltaY` for Webkit and normalize (down is positive).\n 'wheelDeltaY' in event ? -event.wheelDeltaY : // Fallback to `wheelDelta` for IE<9 and normalize (down is positive).\n 'wheelDelta' in event ? -event.wheelDelta : 0;\n },\n deltaZ: 0,\n // Browsers without \"deltaMode\" is reporting in raw wheel delta where one\n // notch on the scroll is always +/- 120, roughly equivalent to pixels.\n // A good approximation of DOM_DELTA_LINE (1) is 5% of viewport size or\n // ~40 pixels, for DOM_DELTA_SCREEN (2) it is 87.5% of viewport size.\n deltaMode: 0\n});\n\nvar SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface);\n\nvar END_KEYCODES = [9, 13, 27, 32]; // Tab, Return, Esc, Space\n\nvar START_KEYCODE = 229;\nvar canUseCompositionEvent = canUseDOM && 'CompositionEvent' in window;\nvar documentMode = null;\n\nif (canUseDOM && 'documentMode' in document) {\n documentMode = document.documentMode;\n} // Webkit offers a very useful `textInput` event that can be used to\n// directly represent `beforeInput`. The IE `textinput` event is not as\n// useful, so we don't use it.\n\n\nvar canUseTextInputEvent = canUseDOM && 'TextEvent' in window && !documentMode; // In IE9+, we have access to composition events, but the data supplied\n// by the native compositionend event may be incorrect. Japanese ideographic\n// spaces, for instance (\\u3000) are not recorded correctly.\n\nvar useFallbackCompositionData = canUseDOM && (!canUseCompositionEvent || documentMode && documentMode > 8 && documentMode <= 11);\nvar SPACEBAR_CODE = 32;\nvar SPACEBAR_CHAR = String.fromCharCode(SPACEBAR_CODE);\n\nfunction registerEvents() {\n registerTwoPhaseEvent('onBeforeInput', ['compositionend', 'keypress', 'textInput', 'paste']);\n registerTwoPhaseEvent('onCompositionEnd', ['compositionend', 'focusout', 'keydown', 'keypress', 'keyup', 'mousedown']);\n registerTwoPhaseEvent('onCompositionStart', ['compositionstart', 'focusout', 'keydown', 'keypress', 'keyup', 'mousedown']);\n registerTwoPhaseEvent('onCompositionUpdate', ['compositionupdate', 'focusout', 'keydown', 'keypress', 'keyup', 'mousedown']);\n} // Track whether we've ever handled a keypress on the space key.\n\n\nvar hasSpaceKeypress = false;\n/**\n * Return whether a native keypress event is assumed to be a command.\n * This is required because Firefox fires `keypress` events for key commands\n * (cut, copy, select-all, etc.) even though no character is inserted.\n */\n\nfunction isKeypressCommand(nativeEvent) {\n return (nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) && // ctrlKey && altKey is equivalent to AltGr, and is not a command.\n !(nativeEvent.ctrlKey && nativeEvent.altKey);\n}\n/**\n * Translate native top level events into event types.\n */\n\n\nfunction getCompositionEventType(domEventName) {\n switch (domEventName) {\n case 'compositionstart':\n return 'onCompositionStart';\n\n case 'compositionend':\n return 'onCompositionEnd';\n\n case 'compositionupdate':\n return 'onCompositionUpdate';\n }\n}\n/**\n * Does our fallback best-guess model think this event signifies that\n * composition has begun?\n */\n\n\nfunction isFallbackCompositionStart(domEventName, nativeEvent) {\n return domEventName === 'keydown' && nativeEvent.keyCode === START_KEYCODE;\n}\n/**\n * Does our fallback mode think that this event is the end of composition?\n */\n\n\nfunction isFallbackCompositionEnd(domEventName, nativeEvent) {\n switch (domEventName) {\n case 'keyup':\n // Command keys insert or clear IME input.\n return END_KEYCODES.indexOf(nativeEvent.keyCode) !== -1;\n\n case 'keydown':\n // Expect IME keyCode on each keydown. If we get any other\n // code we must have exited earlier.\n return nativeEvent.keyCode !== START_KEYCODE;\n\n case 'keypress':\n case 'mousedown':\n case 'focusout':\n // Events are not possible without cancelling IME.\n return true;\n\n default:\n return false;\n }\n}\n/**\n * Google Input Tools provides composition data via a CustomEvent,\n * with the `data` property populated in the `detail` object. If this\n * is available on the event object, use it. If not, this is a plain\n * composition event and we have nothing special to extract.\n *\n * @param {object} nativeEvent\n * @return {?string}\n */\n\n\nfunction getDataFromCustomEvent(nativeEvent) {\n var detail = nativeEvent.detail;\n\n if (typeof detail === 'object' && 'data' in detail) {\n return detail.data;\n }\n\n return null;\n}\n/**\n * Check if a composition event was triggered by Korean IME.\n * Our fallback mode does not work well with IE's Korean IME,\n * so just use native composition events when Korean IME is used.\n * Although CompositionEvent.locale property is deprecated,\n * it is available in IE, where our fallback mode is enabled.\n *\n * @param {object} nativeEvent\n * @return {boolean}\n */\n\n\nfunction isUsingKoreanIME(nativeEvent) {\n return nativeEvent.locale === 'ko';\n} // Track the current IME composition status, if any.\n\n\nvar isComposing = false;\n/**\n * @return {?object} A SyntheticCompositionEvent.\n */\n\nfunction extractCompositionEvent(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget) {\n var eventType;\n var fallbackData;\n\n if (canUseCompositionEvent) {\n eventType = getCompositionEventType(domEventName);\n } else if (!isComposing) {\n if (isFallbackCompositionStart(domEventName, nativeEvent)) {\n eventType = 'onCompositionStart';\n }\n } else if (isFallbackCompositionEnd(domEventName, nativeEvent)) {\n eventType = 'onCompositionEnd';\n }\n\n if (!eventType) {\n return null;\n }\n\n if (useFallbackCompositionData && !isUsingKoreanIME(nativeEvent)) {\n // The current composition is stored statically and must not be\n // overwritten while composition continues.\n if (!isComposing && eventType === 'onCompositionStart') {\n isComposing = initialize(nativeEventTarget);\n } else if (eventType === 'onCompositionEnd') {\n if (isComposing) {\n fallbackData = getData();\n }\n }\n }\n\n var listeners = accumulateTwoPhaseListeners(targetInst, eventType);\n\n if (listeners.length > 0) {\n var event = new SyntheticCompositionEvent(eventType, domEventName, null, nativeEvent, nativeEventTarget);\n dispatchQueue.push({\n event: event,\n listeners: listeners\n });\n\n if (fallbackData) {\n // Inject data generated from fallback path into the synthetic event.\n // This matches the property of native CompositionEventInterface.\n event.data = fallbackData;\n } else {\n var customData = getDataFromCustomEvent(nativeEvent);\n\n if (customData !== null) {\n event.data = customData;\n }\n }\n }\n}\n\nfunction getNativeBeforeInputChars(domEventName, nativeEvent) {\n switch (domEventName) {\n case 'compositionend':\n return getDataFromCustomEvent(nativeEvent);\n\n case 'keypress':\n /**\n * If native `textInput` events are available, our goal is to make\n * use of them. However, there is a special case: the spacebar key.\n * In Webkit, preventing default on a spacebar `textInput` event\n * cancels character insertion, but it *also* causes the browser\n * to fall back to its default spacebar behavior of scrolling the\n * page.\n *\n * Tracking at:\n * https://code.google.com/p/chromium/issues/detail?id=355103\n *\n * To avoid this issue, use the keypress event as if no `textInput`\n * event is available.\n */\n var which = nativeEvent.which;\n\n if (which !== SPACEBAR_CODE) {\n return null;\n }\n\n hasSpaceKeypress = true;\n return SPACEBAR_CHAR;\n\n case 'textInput':\n // Record the characters to be added to the DOM.\n var chars = nativeEvent.data; // If it's a spacebar character, assume that we have already handled\n // it at the keypress level and bail immediately. Android Chrome\n // doesn't give us keycodes, so we need to ignore it.\n\n if (chars === SPACEBAR_CHAR && hasSpaceKeypress) {\n return null;\n }\n\n return chars;\n\n default:\n // For other native event types, do nothing.\n return null;\n }\n}\n/**\n * For browsers that do not provide the `textInput` event, extract the\n * appropriate string to use for SyntheticInputEvent.\n */\n\n\nfunction getFallbackBeforeInputChars(domEventName, nativeEvent) {\n // If we are currently composing (IME) and using a fallback to do so,\n // try to extract the composed characters from the fallback object.\n // If composition event is available, we extract a string only at\n // compositionevent, otherwise extract it at fallback events.\n if (isComposing) {\n if (domEventName === 'compositionend' || !canUseCompositionEvent && isFallbackCompositionEnd(domEventName, nativeEvent)) {\n var chars = getData();\n reset();\n isComposing = false;\n return chars;\n }\n\n return null;\n }\n\n switch (domEventName) {\n case 'paste':\n // If a paste event occurs after a keypress, throw out the input\n // chars. Paste events should not lead to BeforeInput events.\n return null;\n\n case 'keypress':\n /**\n * As of v27, Firefox may fire keypress events even when no character\n * will be inserted. A few possibilities:\n *\n * - `which` is `0`. Arrow keys, Esc key, etc.\n *\n * - `which` is the pressed key code, but no char is available.\n * Ex: 'AltGr + d` in Polish. There is no modified character for\n * this key combination and no character is inserted into the\n * document, but FF fires the keypress for char code `100` anyway.\n * No `input` event will occur.\n *\n * - `which` is the pressed key code, but a command combination is\n * being used. Ex: `Cmd+C`. No character is inserted, and no\n * `input` event will occur.\n */\n if (!isKeypressCommand(nativeEvent)) {\n // IE fires the `keypress` event when a user types an emoji via\n // Touch keyboard of Windows. In such a case, the `char` property\n // holds an emoji character like `\\uD83D\\uDE0A`. Because its length\n // is 2, the property `which` does not represent an emoji correctly.\n // In such a case, we directly return the `char` property instead of\n // using `which`.\n if (nativeEvent.char && nativeEvent.char.length > 1) {\n return nativeEvent.char;\n } else if (nativeEvent.which) {\n return String.fromCharCode(nativeEvent.which);\n }\n }\n\n return null;\n\n case 'compositionend':\n return useFallbackCompositionData && !isUsingKoreanIME(nativeEvent) ? null : nativeEvent.data;\n\n default:\n return null;\n }\n}\n/**\n * Extract a SyntheticInputEvent for `beforeInput`, based on either native\n * `textInput` or fallback behavior.\n *\n * @return {?object} A SyntheticInputEvent.\n */\n\n\nfunction extractBeforeInputEvent(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget) {\n var chars;\n\n if (canUseTextInputEvent) {\n chars = getNativeBeforeInputChars(domEventName, nativeEvent);\n } else {\n chars = getFallbackBeforeInputChars(domEventName, nativeEvent);\n } // If no characters are being inserted, no BeforeInput event should\n // be fired.\n\n\n if (!chars) {\n return null;\n }\n\n var listeners = accumulateTwoPhaseListeners(targetInst, 'onBeforeInput');\n\n if (listeners.length > 0) {\n var event = new SyntheticInputEvent('onBeforeInput', 'beforeinput', null, nativeEvent, nativeEventTarget);\n dispatchQueue.push({\n event: event,\n listeners: listeners\n });\n event.data = chars;\n }\n}\n/**\n * Create an `onBeforeInput` event to match\n * http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105/#events-inputevents.\n *\n * This event plugin is based on the native `textInput` event\n * available in Chrome, Safari, Opera, and IE. This event fires after\n * `onKeyPress` and `onCompositionEnd`, but before `onInput`.\n *\n * `beforeInput` is spec'd but not implemented in any browsers, and\n * the `input` event does not provide any useful information about what has\n * actually been added, contrary to the spec. Thus, `textInput` is the best\n * available event to identify the characters that have actually been inserted\n * into the target node.\n *\n * This plugin is also responsible for emitting `composition` events, thus\n * allowing us to share composition fallback code for both `beforeInput` and\n * `composition` event types.\n */\n\n\nfunction extractEvents(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags, targetContainer) {\n extractCompositionEvent(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget);\n extractBeforeInputEvent(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget);\n}\n\n/**\n * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary\n */\nvar supportedInputTypes = {\n color: true,\n date: true,\n datetime: true,\n 'datetime-local': true,\n email: true,\n month: true,\n number: true,\n password: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true\n};\n\nfunction isTextInputElement(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n\n if (nodeName === 'input') {\n return !!supportedInputTypes[elem.type];\n }\n\n if (nodeName === 'textarea') {\n return true;\n }\n\n return false;\n}\n\n/**\n * Checks if an event is supported in the current execution environment.\n *\n * NOTE: This will not work correctly for non-generic events such as `change`,\n * `reset`, `load`, `error`, and `select`.\n *\n * Borrows from Modernizr.\n *\n * @param {string} eventNameSuffix Event name, e.g. \"click\".\n * @return {boolean} True if the event is supported.\n * @internal\n * @license Modernizr 3.0.0pre (Custom Build) | MIT\n */\n\nfunction isEventSupported(eventNameSuffix) {\n if (!canUseDOM) {\n return false;\n }\n\n var eventName = 'on' + eventNameSuffix;\n var isSupported = (eventName in document);\n\n if (!isSupported) {\n var element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n return isSupported;\n}\n\nfunction registerEvents$1() {\n registerTwoPhaseEvent('onChange', ['change', 'click', 'focusin', 'focusout', 'input', 'keydown', 'keyup', 'selectionchange']);\n}\n\nfunction createAndAccumulateChangeEvent(dispatchQueue, inst, nativeEvent, target) {\n // Flag this event loop as needing state restore.\n enqueueStateRestore(target);\n var listeners = accumulateTwoPhaseListeners(inst, 'onChange');\n\n if (listeners.length > 0) {\n var event = new SyntheticEvent('onChange', 'change', null, nativeEvent, target);\n dispatchQueue.push({\n event: event,\n listeners: listeners\n });\n }\n}\n/**\n * For IE shims\n */\n\n\nvar activeElement = null;\nvar activeElementInst = null;\n/**\n * SECTION: handle `change` event\n */\n\nfunction shouldUseChangeEvent(elem) {\n var nodeName = elem.nodeName && elem.nodeName.toLowerCase();\n return nodeName === 'select' || nodeName === 'input' && elem.type === 'file';\n}\n\nfunction manualDispatchChangeEvent(nativeEvent) {\n var dispatchQueue = [];\n createAndAccumulateChangeEvent(dispatchQueue, activeElementInst, nativeEvent, getEventTarget(nativeEvent)); // If change and propertychange bubbled, we'd just bind to it like all the\n // other events and have it go through ReactBrowserEventEmitter. Since it\n // doesn't, we manually listen for the events and so we have to enqueue and\n // process the abstract event manually.\n //\n // Batching is necessary here in order to ensure that all event handlers run\n // before the next rerender (including event handlers attached to ancestor\n // elements instead of directly on the input). Without this, controlled\n // components don't work properly in conjunction with event bubbling because\n // the component is rerendered and the value reverted before all the event\n // handlers can run. See https://github.com/facebook/react/issues/708.\n\n batchedUpdates(runEventInBatch, dispatchQueue);\n}\n\nfunction runEventInBatch(dispatchQueue) {\n processDispatchQueue(dispatchQueue, 0);\n}\n\nfunction getInstIfValueChanged(targetInst) {\n var targetNode = getNodeFromInstance(targetInst);\n\n if (updateValueIfChanged(targetNode)) {\n return targetInst;\n }\n}\n\nfunction getTargetInstForChangeEvent(domEventName, targetInst) {\n if (domEventName === 'change') {\n return targetInst;\n }\n}\n/**\n * SECTION: handle `input` event\n */\n\n\nvar isInputEventSupported = false;\n\nif (canUseDOM) {\n // IE9 claims to support the input event but fails to trigger it when\n // deleting text, so we ignore its input events.\n isInputEventSupported = isEventSupported('input') && (!document.documentMode || document.documentMode > 9);\n}\n/**\n * (For IE <=9) Starts tracking propertychange events on the passed-in element\n * and override the value property so that we can distinguish user events from\n * value changes in JS.\n */\n\n\nfunction startWatchingForValueChange(target, targetInst) {\n activeElement = target;\n activeElementInst = targetInst;\n activeElement.attachEvent('onpropertychange', handlePropertyChange);\n}\n/**\n * (For IE <=9) Removes the event listeners from the currently-tracked element,\n * if any exists.\n */\n\n\nfunction stopWatchingForValueChange() {\n if (!activeElement) {\n return;\n }\n\n activeElement.detachEvent('onpropertychange', handlePropertyChange);\n activeElement = null;\n activeElementInst = null;\n}\n/**\n * (For IE <=9) Handles a propertychange event, sending a `change` event if\n * the value of the active element has changed.\n */\n\n\nfunction handlePropertyChange(nativeEvent) {\n if (nativeEvent.propertyName !== 'value') {\n return;\n }\n\n if (getInstIfValueChanged(activeElementInst)) {\n manualDispatchChangeEvent(nativeEvent);\n }\n}\n\nfunction handleEventsForInputEventPolyfill(domEventName, target, targetInst) {\n if (domEventName === 'focusin') {\n // In IE9, propertychange fires for most input events but is buggy and\n // doesn't fire when text is deleted, but conveniently, selectionchange\n // appears to fire in all of the remaining cases so we catch those and\n // forward the event if the value has changed\n // In either case, we don't want to call the event handler if the value\n // is changed from JS so we redefine a setter for `.value` that updates\n // our activeElementValue variable, allowing us to ignore those changes\n //\n // stopWatching() should be a noop here but we call it just in case we\n // missed a blur event somehow.\n stopWatchingForValueChange();\n startWatchingForValueChange(target, targetInst);\n } else if (domEventName === 'focusout') {\n stopWatchingForValueChange();\n }\n} // For IE8 and IE9.\n\n\nfunction getTargetInstForInputEventPolyfill(domEventName, targetInst) {\n if (domEventName === 'selectionchange' || domEventName === 'keyup' || domEventName === 'keydown') {\n // On the selectionchange event, the target is just document which isn't\n // helpful for us so just check activeElement instead.\n //\n // 99% of the time, keydown and keyup aren't necessary. IE8 fails to fire\n // propertychange on the first input event after setting `value` from a\n // script and fires only keydown, keypress, keyup. Catching keyup usually\n // gets it and catching keydown lets us fire an event for the first\n // keystroke if user does a key repeat (it'll be a little delayed: right\n // before the second keystroke). Other input methods (e.g., paste) seem to\n // fire selectionchange normally.\n return getInstIfValueChanged(activeElementInst);\n }\n}\n/**\n * SECTION: handle `click` event\n */\n\n\nfunction shouldUseClickEvent(elem) {\n // Use the `click` event to detect changes to checkbox and radio inputs.\n // This approach works across all browsers, whereas `change` does not fire\n // until `blur` in IE8.\n var nodeName = elem.nodeName;\n return nodeName && nodeName.toLowerCase() === 'input' && (elem.type === 'checkbox' || elem.type === 'radio');\n}\n\nfunction getTargetInstForClickEvent(domEventName, targetInst) {\n if (domEventName === 'click') {\n return getInstIfValueChanged(targetInst);\n }\n}\n\nfunction getTargetInstForInputOrChangeEvent(domEventName, targetInst) {\n if (domEventName === 'input' || domEventName === 'change') {\n return getInstIfValueChanged(targetInst);\n }\n}\n\nfunction handleControlledInputBlur(node) {\n var state = node._wrapperState;\n\n if (!state || !state.controlled || node.type !== 'number') {\n return;\n }\n\n {\n // If controlled, assign the value attribute to the current value on blur\n setDefaultValue(node, 'number', node.value);\n }\n}\n/**\n * This plugin creates an `onChange` event that normalizes change events\n * across form elements. This event fires at a time when it's possible to\n * change the element's value without seeing a flicker.\n *\n * Supported elements are:\n * - input (see `isTextInputElement`)\n * - textarea\n * - select\n */\n\n\nfunction extractEvents$1(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags, targetContainer) {\n var targetNode = targetInst ? getNodeFromInstance(targetInst) : window;\n var getTargetInstFunc, handleEventFunc;\n\n if (shouldUseChangeEvent(targetNode)) {\n getTargetInstFunc = getTargetInstForChangeEvent;\n } else if (isTextInputElement(targetNode)) {\n if (isInputEventSupported) {\n getTargetInstFunc = getTargetInstForInputOrChangeEvent;\n } else {\n getTargetInstFunc = getTargetInstForInputEventPolyfill;\n handleEventFunc = handleEventsForInputEventPolyfill;\n }\n } else if (shouldUseClickEvent(targetNode)) {\n getTargetInstFunc = getTargetInstForClickEvent;\n }\n\n if (getTargetInstFunc) {\n var inst = getTargetInstFunc(domEventName, targetInst);\n\n if (inst) {\n createAndAccumulateChangeEvent(dispatchQueue, inst, nativeEvent, nativeEventTarget);\n return;\n }\n }\n\n if (handleEventFunc) {\n handleEventFunc(domEventName, targetNode, targetInst);\n } // When blurring, set the value attribute for number inputs\n\n\n if (domEventName === 'focusout') {\n handleControlledInputBlur(targetNode);\n }\n}\n\nfunction registerEvents$2() {\n registerDirectEvent('onMouseEnter', ['mouseout', 'mouseover']);\n registerDirectEvent('onMouseLeave', ['mouseout', 'mouseover']);\n registerDirectEvent('onPointerEnter', ['pointerout', 'pointerover']);\n registerDirectEvent('onPointerLeave', ['pointerout', 'pointerover']);\n}\n/**\n * For almost every interaction we care about, there will be both a top-level\n * `mouseover` and `mouseout` event that occurs. Only use `mouseout` so that\n * we do not extract duplicate events. However, moving the mouse into the\n * browser from outside will not fire a `mouseout` event. In this case, we use\n * the `mouseover` top-level event.\n */\n\n\nfunction extractEvents$2(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags, targetContainer) {\n var isOverEvent = domEventName === 'mouseover' || domEventName === 'pointerover';\n var isOutEvent = domEventName === 'mouseout' || domEventName === 'pointerout';\n\n if (isOverEvent && (eventSystemFlags & IS_REPLAYED) === 0) {\n // If this is an over event with a target, we might have already dispatched\n // the event in the out event of the other target. If this is replayed,\n // then it's because we couldn't dispatch against this target previously\n // so we have to do it now instead.\n var related = nativeEvent.relatedTarget || nativeEvent.fromElement;\n\n if (related) {\n // If the related node is managed by React, we can assume that we have\n // already dispatched the corresponding events during its mouseout.\n if (getClosestInstanceFromNode(related) || isContainerMarkedAsRoot(related)) {\n return;\n }\n }\n }\n\n if (!isOutEvent && !isOverEvent) {\n // Must not be a mouse or pointer in or out - ignoring.\n return;\n }\n\n var win; // TODO: why is this nullable in the types but we read from it?\n\n if (nativeEventTarget.window === nativeEventTarget) {\n // `nativeEventTarget` is probably a window object.\n win = nativeEventTarget;\n } else {\n // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8.\n var doc = nativeEventTarget.ownerDocument;\n\n if (doc) {\n win = doc.defaultView || doc.parentWindow;\n } else {\n win = window;\n }\n }\n\n var from;\n var to;\n\n if (isOutEvent) {\n var _related = nativeEvent.relatedTarget || nativeEvent.toElement;\n\n from = targetInst;\n to = _related ? getClosestInstanceFromNode(_related) : null;\n\n if (to !== null) {\n var nearestMounted = getNearestMountedFiber(to);\n\n if (to !== nearestMounted || to.tag !== HostComponent && to.tag !== HostText) {\n to = null;\n }\n }\n } else {\n // Moving to a node from outside the window.\n from = null;\n to = targetInst;\n }\n\n if (from === to) {\n // Nothing pertains to our managed components.\n return;\n }\n\n var SyntheticEventCtor = SyntheticMouseEvent;\n var leaveEventType = 'onMouseLeave';\n var enterEventType = 'onMouseEnter';\n var eventTypePrefix = 'mouse';\n\n if (domEventName === 'pointerout' || domEventName === 'pointerover') {\n SyntheticEventCtor = SyntheticPointerEvent;\n leaveEventType = 'onPointerLeave';\n enterEventType = 'onPointerEnter';\n eventTypePrefix = 'pointer';\n }\n\n var fromNode = from == null ? win : getNodeFromInstance(from);\n var toNode = to == null ? win : getNodeFromInstance(to);\n var leave = new SyntheticEventCtor(leaveEventType, eventTypePrefix + 'leave', from, nativeEvent, nativeEventTarget);\n leave.target = fromNode;\n leave.relatedTarget = toNode;\n var enter = null; // We should only process this nativeEvent if we are processing\n // the first ancestor. Next time, we will ignore the event.\n\n var nativeTargetInst = getClosestInstanceFromNode(nativeEventTarget);\n\n if (nativeTargetInst === targetInst) {\n var enterEvent = new SyntheticEventCtor(enterEventType, eventTypePrefix + 'enter', to, nativeEvent, nativeEventTarget);\n enterEvent.target = toNode;\n enterEvent.relatedTarget = fromNode;\n enter = enterEvent;\n }\n\n accumulateEnterLeaveTwoPhaseListeners(dispatchQueue, leave, enter, from, to);\n}\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n return x === y && (x !== 0 || 1 / x === 1 / y) || x !== x && y !== y // eslint-disable-line no-self-compare\n ;\n}\n\nvar objectIs = typeof Object.is === 'function' ? Object.is : is;\n\nvar hasOwnProperty$2 = Object.prototype.hasOwnProperty;\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\n\nfunction shallowEqual(objA, objB) {\n if (objectIs(objA, objB)) {\n return true;\n }\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n } // Test for A's keys different from B.\n\n\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwnProperty$2.call(objB, keysA[i]) || !objectIs(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Given any node return the first leaf node without children.\n *\n * @param {DOMElement|DOMTextNode} node\n * @return {DOMElement|DOMTextNode}\n */\n\nfunction getLeafNode(node) {\n while (node && node.firstChild) {\n node = node.firstChild;\n }\n\n return node;\n}\n/**\n * Get the next sibling within a container. This will walk up the\n * DOM if a node's siblings have been exhausted.\n *\n * @param {DOMElement|DOMTextNode} node\n * @return {?DOMElement|DOMTextNode}\n */\n\n\nfunction getSiblingNode(node) {\n while (node) {\n if (node.nextSibling) {\n return node.nextSibling;\n }\n\n node = node.parentNode;\n }\n}\n/**\n * Get object describing the nodes which contain characters at offset.\n *\n * @param {DOMElement|DOMTextNode} root\n * @param {number} offset\n * @return {?object}\n */\n\n\nfunction getNodeForCharacterOffset(root, offset) {\n var node = getLeafNode(root);\n var nodeStart = 0;\n var nodeEnd = 0;\n\n while (node) {\n if (node.nodeType === TEXT_NODE) {\n nodeEnd = nodeStart + node.textContent.length;\n\n if (nodeStart <= offset && nodeEnd >= offset) {\n return {\n node: node,\n offset: offset - nodeStart\n };\n }\n\n nodeStart = nodeEnd;\n }\n\n node = getLeafNode(getSiblingNode(node));\n }\n}\n\n/**\n * @param {DOMElement} outerNode\n * @return {?object}\n */\n\nfunction getOffsets(outerNode) {\n var ownerDocument = outerNode.ownerDocument;\n var win = ownerDocument && ownerDocument.defaultView || window;\n var selection = win.getSelection && win.getSelection();\n\n if (!selection || selection.rangeCount === 0) {\n return null;\n }\n\n var anchorNode = selection.anchorNode,\n anchorOffset = selection.anchorOffset,\n focusNode = selection.focusNode,\n focusOffset = selection.focusOffset; // In Firefox, anchorNode and focusNode can be \"anonymous divs\", e.g. the\n // up/down buttons on an <input type=\"number\">. Anonymous divs do not seem to\n // expose properties, triggering a \"Permission denied error\" if any of its\n // properties are accessed. The only seemingly possible way to avoid erroring\n // is to access a property that typically works for non-anonymous divs and\n // catch any error that may otherwise arise. See\n // https://bugzilla.mozilla.org/show_bug.cgi?id=208427\n\n try {\n /* eslint-disable no-unused-expressions */\n anchorNode.nodeType;\n focusNode.nodeType;\n /* eslint-enable no-unused-expressions */\n } catch (e) {\n return null;\n }\n\n return getModernOffsetsFromPoints(outerNode, anchorNode, anchorOffset, focusNode, focusOffset);\n}\n/**\n * Returns {start, end} where `start` is the character/codepoint index of\n * (anchorNode, anchorOffset) within the textContent of `outerNode`, and\n * `end` is the index of (focusNode, focusOffset).\n *\n * Returns null if you pass in garbage input but we should probably just crash.\n *\n * Exported only for testing.\n */\n\nfunction getModernOffsetsFromPoints(outerNode, anchorNode, anchorOffset, focusNode, focusOffset) {\n var length = 0;\n var start = -1;\n var end = -1;\n var indexWithinAnchor = 0;\n var indexWithinFocus = 0;\n var node = outerNode;\n var parentNode = null;\n\n outer: while (true) {\n var next = null;\n\n while (true) {\n if (node === anchorNode && (anchorOffset === 0 || node.nodeType === TEXT_NODE)) {\n start = length + anchorOffset;\n }\n\n if (node === focusNode && (focusOffset === 0 || node.nodeType === TEXT_NODE)) {\n end = length + focusOffset;\n }\n\n if (node.nodeType === TEXT_NODE) {\n length += node.nodeValue.length;\n }\n\n if ((next = node.firstChild) === null) {\n break;\n } // Moving from `node` to its first child `next`.\n\n\n parentNode = node;\n node = next;\n }\n\n while (true) {\n if (node === outerNode) {\n // If `outerNode` has children, this is always the second time visiting\n // it. If it has no children, this is still the first loop, and the only\n // valid selection is anchorNode and focusNode both equal to this node\n // and both offsets 0, in which case we will have handled above.\n break outer;\n }\n\n if (parentNode === anchorNode && ++indexWithinAnchor === anchorOffset) {\n start = length;\n }\n\n if (parentNode === focusNode && ++indexWithinFocus === focusOffset) {\n end = length;\n }\n\n if ((next = node.nextSibling) !== null) {\n break;\n }\n\n node = parentNode;\n parentNode = node.parentNode;\n } // Moving from `node` to its next sibling `next`.\n\n\n node = next;\n }\n\n if (start === -1 || end === -1) {\n // This should never happen. (Would happen if the anchor/focus nodes aren't\n // actually inside the passed-in node.)\n return null;\n }\n\n return {\n start: start,\n end: end\n };\n}\n/**\n * In modern non-IE browsers, we can support both forward and backward\n * selections.\n *\n * Note: IE10+ supports the Selection object, but it does not support\n * the `extend` method, which means that even in modern IE, it's not possible\n * to programmatically create a backward selection. Thus, for all IE\n * versions, we use the old IE API to create our selections.\n *\n * @param {DOMElement|DOMTextNode} node\n * @param {object} offsets\n */\n\nfunction setOffsets(node, offsets) {\n var doc = node.ownerDocument || document;\n var win = doc && doc.defaultView || window; // Edge fails with \"Object expected\" in some scenarios.\n // (For instance: TinyMCE editor used in a list component that supports pasting to add more,\n // fails when pasting 100+ items)\n\n if (!win.getSelection) {\n return;\n }\n\n var selection = win.getSelection();\n var length = node.textContent.length;\n var start = Math.min(offsets.start, length);\n var end = offsets.end === undefined ? start : Math.min(offsets.end, length); // IE 11 uses modern selection, but doesn't support the extend method.\n // Flip backward selections, so we can set with a single range.\n\n if (!selection.extend && start > end) {\n var temp = end;\n end = start;\n start = temp;\n }\n\n var startMarker = getNodeForCharacterOffset(node, start);\n var endMarker = getNodeForCharacterOffset(node, end);\n\n if (startMarker && endMarker) {\n if (selection.rangeCount === 1 && selection.anchorNode === startMarker.node && selection.anchorOffset === startMarker.offset && selection.focusNode === endMarker.node && selection.focusOffset === endMarker.offset) {\n return;\n }\n\n var range = doc.createRange();\n range.setStart(startMarker.node, startMarker.offset);\n selection.removeAllRanges();\n\n if (start > end) {\n selection.addRange(range);\n selection.extend(endMarker.node, endMarker.offset);\n } else {\n range.setEnd(endMarker.node, endMarker.offset);\n selection.addRange(range);\n }\n }\n}\n\nfunction isTextNode(node) {\n return node && node.nodeType === TEXT_NODE;\n}\n\nfunction containsNode(outerNode, innerNode) {\n if (!outerNode || !innerNode) {\n return false;\n } else if (outerNode === innerNode) {\n return true;\n } else if (isTextNode(outerNode)) {\n return false;\n } else if (isTextNode(innerNode)) {\n return containsNode(outerNode, innerNode.parentNode);\n } else if ('contains' in outerNode) {\n return outerNode.contains(innerNode);\n } else if (outerNode.compareDocumentPosition) {\n return !!(outerNode.compareDocumentPosition(innerNode) & 16);\n } else {\n return false;\n }\n}\n\nfunction isInDocument(node) {\n return node && node.ownerDocument && containsNode(node.ownerDocument.documentElement, node);\n}\n\nfunction isSameOriginFrame(iframe) {\n try {\n // Accessing the contentDocument of a HTMLIframeElement can cause the browser\n // to throw, e.g. if it has a cross-origin src attribute.\n // Safari will show an error in the console when the access results in \"Blocked a frame with origin\". e.g:\n // iframe.contentDocument.defaultView;\n // A safety way is to access one of the cross origin properties: Window or Location\n // Which might result in \"SecurityError\" DOM Exception and it is compatible to Safari.\n // https://html.spec.whatwg.org/multipage/browsers.html#integration-with-idl\n return typeof iframe.contentWindow.location.href === 'string';\n } catch (err) {\n return false;\n }\n}\n\nfunction getActiveElementDeep() {\n var win = window;\n var element = getActiveElement();\n\n while (element instanceof win.HTMLIFrameElement) {\n if (isSameOriginFrame(element)) {\n win = element.contentWindow;\n } else {\n return element;\n }\n\n element = getActiveElement(win.document);\n }\n\n return element;\n}\n/**\n * @ReactInputSelection: React input selection module. Based on Selection.js,\n * but modified to be suitable for react and has a couple of bug fixes (doesn't\n * assume buttons have range selections allowed).\n * Input selection module for React.\n */\n\n/**\n * @hasSelectionCapabilities: we get the element types that support selection\n * from https://html.spec.whatwg.org/#do-not-apply, looking at `selectionStart`\n * and `selectionEnd` rows.\n */\n\n\nfunction hasSelectionCapabilities(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return nodeName && (nodeName === 'input' && (elem.type === 'text' || elem.type === 'search' || elem.type === 'tel' || elem.type === 'url' || elem.type === 'password') || nodeName === 'textarea' || elem.contentEditable === 'true');\n}\nfunction getSelectionInformation() {\n var focusedElem = getActiveElementDeep();\n return {\n focusedElem: focusedElem,\n selectionRange: hasSelectionCapabilities(focusedElem) ? getSelection(focusedElem) : null\n };\n}\n/**\n * @restoreSelection: If any selection information was potentially lost,\n * restore it. This is useful when performing operations that could remove dom\n * nodes and place them back in, resulting in focus being lost.\n */\n\nfunction restoreSelection(priorSelectionInformation) {\n var curFocusedElem = getActiveElementDeep();\n var priorFocusedElem = priorSelectionInformation.focusedElem;\n var priorSelectionRange = priorSelectionInformation.selectionRange;\n\n if (curFocusedElem !== priorFocusedElem && isInDocument(priorFocusedElem)) {\n if (priorSelectionRange !== null && hasSelectionCapabilities(priorFocusedElem)) {\n setSelection(priorFocusedElem, priorSelectionRange);\n } // Focusing a node can change the scroll position, which is undesirable\n\n\n var ancestors = [];\n var ancestor = priorFocusedElem;\n\n while (ancestor = ancestor.parentNode) {\n if (ancestor.nodeType === ELEMENT_NODE) {\n ancestors.push({\n element: ancestor,\n left: ancestor.scrollLeft,\n top: ancestor.scrollTop\n });\n }\n }\n\n if (typeof priorFocusedElem.focus === 'function') {\n priorFocusedElem.focus();\n }\n\n for (var i = 0; i < ancestors.length; i++) {\n var info = ancestors[i];\n info.element.scrollLeft = info.left;\n info.element.scrollTop = info.top;\n }\n }\n}\n/**\n * @getSelection: Gets the selection bounds of a focused textarea, input or\n * contentEditable node.\n * -@input: Look up selection bounds of this input\n * -@return {start: selectionStart, end: selectionEnd}\n */\n\nfunction getSelection(input) {\n var selection;\n\n if ('selectionStart' in input) {\n // Modern browser with input or textarea.\n selection = {\n start: input.selectionStart,\n end: input.selectionEnd\n };\n } else {\n // Content editable or old IE textarea.\n selection = getOffsets(input);\n }\n\n return selection || {\n start: 0,\n end: 0\n };\n}\n/**\n * @setSelection: Sets the selection bounds of a textarea or input and focuses\n * the input.\n * -@input Set selection bounds of this input or textarea\n * -@offsets Object of same form that is returned from get*\n */\n\nfunction setSelection(input, offsets) {\n var start = offsets.start;\n var end = offsets.end;\n\n if (end === undefined) {\n end = start;\n }\n\n if ('selectionStart' in input) {\n input.selectionStart = start;\n input.selectionEnd = Math.min(end, input.value.length);\n } else {\n setOffsets(input, offsets);\n }\n}\n\nvar skipSelectionChangeEvent = canUseDOM && 'documentMode' in document && document.documentMode <= 11;\n\nfunction registerEvents$3() {\n registerTwoPhaseEvent('onSelect', ['focusout', 'contextmenu', 'dragend', 'focusin', 'keydown', 'keyup', 'mousedown', 'mouseup', 'selectionchange']);\n}\n\nvar activeElement$1 = null;\nvar activeElementInst$1 = null;\nvar lastSelection = null;\nvar mouseDown = false;\n/**\n * Get an object which is a unique representation of the current selection.\n *\n * The return value will not be consistent across nodes or browsers, but\n * two identical selections on the same node will return identical objects.\n */\n\nfunction getSelection$1(node) {\n if ('selectionStart' in node && hasSelectionCapabilities(node)) {\n return {\n start: node.selectionStart,\n end: node.selectionEnd\n };\n } else {\n var win = node.ownerDocument && node.ownerDocument.defaultView || window;\n var selection = win.getSelection();\n return {\n anchorNode: selection.anchorNode,\n anchorOffset: selection.anchorOffset,\n focusNode: selection.focusNode,\n focusOffset: selection.focusOffset\n };\n }\n}\n/**\n * Get document associated with the event target.\n */\n\n\nfunction getEventTargetDocument(eventTarget) {\n return eventTarget.window === eventTarget ? eventTarget.document : eventTarget.nodeType === DOCUMENT_NODE ? eventTarget : eventTarget.ownerDocument;\n}\n/**\n * Poll selection to see whether it's changed.\n *\n * @param {object} nativeEvent\n * @param {object} nativeEventTarget\n * @return {?SyntheticEvent}\n */\n\n\nfunction constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget) {\n // Ensure we have the right element, and that the user is not dragging a\n // selection (this matches native `select` event behavior). In HTML5, select\n // fires only on input and textarea thus if there's no focused element we\n // won't dispatch.\n var doc = getEventTargetDocument(nativeEventTarget);\n\n if (mouseDown || activeElement$1 == null || activeElement$1 !== getActiveElement(doc)) {\n return;\n } // Only fire when selection has actually changed.\n\n\n var currentSelection = getSelection$1(activeElement$1);\n\n if (!lastSelection || !shallowEqual(lastSelection, currentSelection)) {\n lastSelection = currentSelection;\n var listeners = accumulateTwoPhaseListeners(activeElementInst$1, 'onSelect');\n\n if (listeners.length > 0) {\n var event = new SyntheticEvent('onSelect', 'select', null, nativeEvent, nativeEventTarget);\n dispatchQueue.push({\n event: event,\n listeners: listeners\n });\n event.target = activeElement$1;\n }\n }\n}\n/**\n * This plugin creates an `onSelect` event that normalizes select events\n * across form elements.\n *\n * Supported elements are:\n * - input (see `isTextInputElement`)\n * - textarea\n * - contentEditable\n *\n * This differs from native browser implementations in the following ways:\n * - Fires on contentEditable fields as well as inputs.\n * - Fires for collapsed selection.\n * - Fires after user input.\n */\n\n\nfunction extractEvents$3(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags, targetContainer) {\n\n var targetNode = targetInst ? getNodeFromInstance(targetInst) : window;\n\n switch (domEventName) {\n // Track the input node that has focus.\n case 'focusin':\n if (isTextInputElement(targetNode) || targetNode.contentEditable === 'true') {\n activeElement$1 = targetNode;\n activeElementInst$1 = targetInst;\n lastSelection = null;\n }\n\n break;\n\n case 'focusout':\n activeElement$1 = null;\n activeElementInst$1 = null;\n lastSelection = null;\n break;\n // Don't fire the event while the user is dragging. This matches the\n // semantics of the native select event.\n\n case 'mousedown':\n mouseDown = true;\n break;\n\n case 'contextmenu':\n case 'mouseup':\n case 'dragend':\n mouseDown = false;\n constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);\n break;\n // Chrome and IE fire non-standard event when selection is changed (and\n // sometimes when it hasn't). IE's event fires out of order with respect\n // to key and input events on deletion, so we discard it.\n //\n // Firefox doesn't support selectionchange, so check selection status\n // after each key entry. The selection changes after keydown and before\n // keyup, but we check on keydown as well in the case of holding down a\n // key, when multiple keydown events are fired but only one keyup is.\n // This is also our approach for IE handling, for the reason above.\n\n case 'selectionchange':\n if (skipSelectionChangeEvent) {\n break;\n }\n\n // falls through\n\n case 'keydown':\n case 'keyup':\n constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);\n }\n}\n\nfunction extractEvents$4(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags, targetContainer) {\n var reactName = topLevelEventsToReactNames.get(domEventName);\n\n if (reactName === undefined) {\n return;\n }\n\n var SyntheticEventCtor = SyntheticEvent;\n var reactEventType = domEventName;\n\n switch (domEventName) {\n case 'keypress':\n // Firefox creates a keypress event for function keys too. This removes\n // the unwanted keypress events. Enter is however both printable and\n // non-printable. One would expect Tab to be as well (but it isn't).\n if (getEventCharCode(nativeEvent) === 0) {\n return;\n }\n\n /* falls through */\n\n case 'keydown':\n case 'keyup':\n SyntheticEventCtor = SyntheticKeyboardEvent;\n break;\n\n case 'focusin':\n reactEventType = 'focus';\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n\n case 'focusout':\n reactEventType = 'blur';\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n\n case 'beforeblur':\n case 'afterblur':\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n\n case 'click':\n // Firefox creates a click event on right mouse clicks. This removes the\n // unwanted click events.\n if (nativeEvent.button === 2) {\n return;\n }\n\n /* falls through */\n\n case 'auxclick':\n case 'dblclick':\n case 'mousedown':\n case 'mousemove':\n case 'mouseup': // TODO: Disabled elements should not respond to mouse events\n\n /* falls through */\n\n case 'mouseout':\n case 'mouseover':\n case 'contextmenu':\n SyntheticEventCtor = SyntheticMouseEvent;\n break;\n\n case 'drag':\n case 'dragend':\n case 'dragenter':\n case 'dragexit':\n case 'dragleave':\n case 'dragover':\n case 'dragstart':\n case 'drop':\n SyntheticEventCtor = SyntheticDragEvent;\n break;\n\n case 'touchcancel':\n case 'touchend':\n case 'touchmove':\n case 'touchstart':\n SyntheticEventCtor = SyntheticTouchEvent;\n break;\n\n case ANIMATION_END:\n case ANIMATION_ITERATION:\n case ANIMATION_START:\n SyntheticEventCtor = SyntheticAnimationEvent;\n break;\n\n case TRANSITION_END:\n SyntheticEventCtor = SyntheticTransitionEvent;\n break;\n\n case 'scroll':\n SyntheticEventCtor = SyntheticUIEvent;\n break;\n\n case 'wheel':\n SyntheticEventCtor = SyntheticWheelEvent;\n break;\n\n case 'copy':\n case 'cut':\n case 'paste':\n SyntheticEventCtor = SyntheticClipboardEvent;\n break;\n\n case 'gotpointercapture':\n case 'lostpointercapture':\n case 'pointercancel':\n case 'pointerdown':\n case 'pointermove':\n case 'pointerout':\n case 'pointerover':\n case 'pointerup':\n SyntheticEventCtor = SyntheticPointerEvent;\n break;\n }\n\n var inCapturePhase = (eventSystemFlags & IS_CAPTURE_PHASE) !== 0;\n\n {\n // Some events don't bubble in the browser.\n // In the past, React has always bubbled them, but this can be surprising.\n // We're going to try aligning closer to the browser behavior by not bubbling\n // them in React either. We'll start by not bubbling onScroll, and then expand.\n var accumulateTargetOnly = !inCapturePhase && // TODO: ideally, we'd eventually add all events from\n // nonDelegatedEvents list in DOMPluginEventSystem.\n // Then we can remove this special list.\n // This is a breaking change that can wait until React 18.\n domEventName === 'scroll';\n\n var _listeners = accumulateSinglePhaseListeners(targetInst, reactName, nativeEvent.type, inCapturePhase, accumulateTargetOnly);\n\n if (_listeners.length > 0) {\n // Intentionally create event lazily.\n var _event = new SyntheticEventCtor(reactName, reactEventType, null, nativeEvent, nativeEventTarget);\n\n dispatchQueue.push({\n event: _event,\n listeners: _listeners\n });\n }\n }\n}\n\n// TODO: remove top-level side effect.\nregisterSimpleEvents();\nregisterEvents$2();\nregisterEvents$1();\nregisterEvents$3();\nregisterEvents();\n\nfunction extractEvents$5(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags, targetContainer) {\n // TODO: we should remove the concept of a \"SimpleEventPlugin\".\n // This is the basic functionality of the event system. All\n // the other plugins are essentially polyfills. So the plugin\n // should probably be inlined somewhere and have its logic\n // be core the to event system. This would potentially allow\n // us to ship builds of React without the polyfilled plugins below.\n extractEvents$4(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags);\n var shouldProcessPolyfillPlugins = (eventSystemFlags & SHOULD_NOT_PROCESS_POLYFILL_EVENT_PLUGINS) === 0; // We don't process these events unless we are in the\n // event's native \"bubble\" phase, which means that we're\n // not in the capture phase. That's because we emulate\n // the capture phase here still. This is a trade-off,\n // because in an ideal world we would not emulate and use\n // the phases properly, like we do with the SimpleEvent\n // plugin. However, the plugins below either expect\n // emulation (EnterLeave) or use state localized to that\n // plugin (BeforeInput, Change, Select). The state in\n // these modules complicates things, as you'll essentially\n // get the case where the capture phase event might change\n // state, only for the following bubble event to come in\n // later and not trigger anything as the state now\n // invalidates the heuristics of the event plugin. We\n // could alter all these plugins to work in such ways, but\n // that might cause other unknown side-effects that we\n // can't forsee right now.\n\n if (shouldProcessPolyfillPlugins) {\n extractEvents$2(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags);\n extractEvents$1(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget);\n extractEvents$3(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget);\n extractEvents(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget);\n }\n} // List of events that need to be individually attached to media elements.\n\n\nvar mediaEventTypes = ['abort', 'canplay', 'canplaythrough', 'durationchange', 'emptied', 'encrypted', 'ended', 'error', 'loadeddata', 'loadedmetadata', 'loadstart', 'pause', 'play', 'playing', 'progress', 'ratechange', 'seeked', 'seeking', 'stalled', 'suspend', 'timeupdate', 'volumechange', 'waiting']; // We should not delegate these events to the container, but rather\n// set them on the actual target element itself. This is primarily\n// because these events do not consistently bubble in the DOM.\n\nvar nonDelegatedEvents = new Set(['cancel', 'close', 'invalid', 'load', 'scroll', 'toggle'].concat(mediaEventTypes));\n\nfunction executeDispatch(event, listener, currentTarget) {\n var type = event.type || 'unknown-event';\n event.currentTarget = currentTarget;\n invokeGuardedCallbackAndCatchFirstError(type, listener, undefined, event);\n event.currentTarget = null;\n}\n\nfunction processDispatchQueueItemsInOrder(event, dispatchListeners, inCapturePhase) {\n var previousInstance;\n\n if (inCapturePhase) {\n for (var i = dispatchListeners.length - 1; i >= 0; i--) {\n var _dispatchListeners$i = dispatchListeners[i],\n instance = _dispatchListeners$i.instance,\n currentTarget = _dispatchListeners$i.currentTarget,\n listener = _dispatchListeners$i.listener;\n\n if (instance !== previousInstance && event.isPropagationStopped()) {\n return;\n }\n\n executeDispatch(event, listener, currentTarget);\n previousInstance = instance;\n }\n } else {\n for (var _i = 0; _i < dispatchListeners.length; _i++) {\n var _dispatchListeners$_i = dispatchListeners[_i],\n _instance = _dispatchListeners$_i.instance,\n _currentTarget = _dispatchListeners$_i.currentTarget,\n _listener = _dispatchListeners$_i.listener;\n\n if (_instance !== previousInstance && event.isPropagationStopped()) {\n return;\n }\n\n executeDispatch(event, _listener, _currentTarget);\n previousInstance = _instance;\n }\n }\n}\n\nfunction processDispatchQueue(dispatchQueue, eventSystemFlags) {\n var inCapturePhase = (eventSystemFlags & IS_CAPTURE_PHASE) !== 0;\n\n for (var i = 0; i < dispatchQueue.length; i++) {\n var _dispatchQueue$i = dispatchQueue[i],\n event = _dispatchQueue$i.event,\n listeners = _dispatchQueue$i.listeners;\n processDispatchQueueItemsInOrder(event, listeners, inCapturePhase); // event system doesn't use pooling.\n } // This would be a good time to rethrow if any of the event handlers threw.\n\n\n rethrowCaughtError();\n}\n\nfunction dispatchEventsForPlugins(domEventName, eventSystemFlags, nativeEvent, targetInst, targetContainer) {\n var nativeEventTarget = getEventTarget(nativeEvent);\n var dispatchQueue = [];\n extractEvents$5(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags);\n processDispatchQueue(dispatchQueue, eventSystemFlags);\n}\n\nfunction listenToNonDelegatedEvent(domEventName, targetElement) {\n var isCapturePhaseListener = false;\n var listenerSet = getEventListenerSet(targetElement);\n var listenerSetKey = getListenerSetKey(domEventName, isCapturePhaseListener);\n\n if (!listenerSet.has(listenerSetKey)) {\n addTrappedEventListener(targetElement, domEventName, IS_NON_DELEGATED, isCapturePhaseListener);\n listenerSet.add(listenerSetKey);\n }\n}\nvar listeningMarker = '_reactListening' + Math.random().toString(36).slice(2);\nfunction listenToAllSupportedEvents(rootContainerElement) {\n {\n if (rootContainerElement[listeningMarker]) {\n // Performance optimization: don't iterate through events\n // for the same portal container or root node more than once.\n // TODO: once we remove the flag, we may be able to also\n // remove some of the bookkeeping maps used for laziness.\n return;\n }\n\n rootContainerElement[listeningMarker] = true;\n allNativeEvents.forEach(function (domEventName) {\n if (!nonDelegatedEvents.has(domEventName)) {\n listenToNativeEvent(domEventName, false, rootContainerElement, null);\n }\n\n listenToNativeEvent(domEventName, true, rootContainerElement, null);\n });\n }\n}\nfunction listenToNativeEvent(domEventName, isCapturePhaseListener, rootContainerElement, targetElement) {\n var eventSystemFlags = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n var target = rootContainerElement; // selectionchange needs to be attached to the document\n // otherwise it won't capture incoming events that are only\n // triggered on the document directly.\n\n if (domEventName === 'selectionchange' && rootContainerElement.nodeType !== DOCUMENT_NODE) {\n target = rootContainerElement.ownerDocument;\n } // If the event can be delegated (or is capture phase), we can\n // register it to the root container. Otherwise, we should\n // register the event to the target element and mark it as\n // a non-delegated event.\n\n\n if (targetElement !== null && !isCapturePhaseListener && nonDelegatedEvents.has(domEventName)) {\n // For all non-delegated events, apart from scroll, we attach\n // their event listeners to the respective elements that their\n // events fire on. That means we can skip this step, as event\n // listener has already been added previously. However, we\n // special case the scroll event because the reality is that any\n // element can scroll.\n // TODO: ideally, we'd eventually apply the same logic to all\n // events from the nonDelegatedEvents list. Then we can remove\n // this special case and use the same logic for all events.\n if (domEventName !== 'scroll') {\n return;\n }\n\n eventSystemFlags |= IS_NON_DELEGATED;\n target = targetElement;\n }\n\n var listenerSet = getEventListenerSet(target);\n var listenerSetKey = getListenerSetKey(domEventName, isCapturePhaseListener); // If the listener entry is empty or we should upgrade, then\n // we need to trap an event listener onto the target.\n\n if (!listenerSet.has(listenerSetKey)) {\n if (isCapturePhaseListener) {\n eventSystemFlags |= IS_CAPTURE_PHASE;\n }\n\n addTrappedEventListener(target, domEventName, eventSystemFlags, isCapturePhaseListener);\n listenerSet.add(listenerSetKey);\n }\n}\n\nfunction addTrappedEventListener(targetContainer, domEventName, eventSystemFlags, isCapturePhaseListener, isDeferredListenerForLegacyFBSupport) {\n var listener = createEventListenerWrapperWithPriority(targetContainer, domEventName, eventSystemFlags); // If passive option is not supported, then the event will be\n // active and not passive.\n\n var isPassiveListener = undefined;\n\n if (passiveBrowserEventsSupported) {\n // Browsers introduced an intervention, making these events\n // passive by default on document. React doesn't bind them\n // to document anymore, but changing this now would undo\n // the performance wins from the change. So we emulate\n // the existing behavior manually on the roots now.\n // https://github.com/facebook/react/issues/19651\n if (domEventName === 'touchstart' || domEventName === 'touchmove' || domEventName === 'wheel') {\n isPassiveListener = true;\n }\n }\n\n targetContainer = targetContainer;\n var unsubscribeListener; // When legacyFBSupport is enabled, it's for when we\n\n\n if (isCapturePhaseListener) {\n if (isPassiveListener !== undefined) {\n unsubscribeListener = addEventCaptureListenerWithPassiveFlag(targetContainer, domEventName, listener, isPassiveListener);\n } else {\n unsubscribeListener = addEventCaptureListener(targetContainer, domEventName, listener);\n }\n } else {\n if (isPassiveListener !== undefined) {\n unsubscribeListener = addEventBubbleListenerWithPassiveFlag(targetContainer, domEventName, listener, isPassiveListener);\n } else {\n unsubscribeListener = addEventBubbleListener(targetContainer, domEventName, listener);\n }\n }\n}\n\nfunction isMatchingRootContainer(grandContainer, targetContainer) {\n return grandContainer === targetContainer || grandContainer.nodeType === COMMENT_NODE && grandContainer.parentNode === targetContainer;\n}\n\nfunction dispatchEventForPluginEventSystem(domEventName, eventSystemFlags, nativeEvent, targetInst, targetContainer) {\n var ancestorInst = targetInst;\n\n if ((eventSystemFlags & IS_EVENT_HANDLE_NON_MANAGED_NODE) === 0 && (eventSystemFlags & IS_NON_DELEGATED) === 0) {\n var targetContainerNode = targetContainer; // If we are using the legacy FB support flag, we\n\n if (targetInst !== null) {\n // The below logic attempts to work out if we need to change\n // the target fiber to a different ancestor. We had similar logic\n // in the legacy event system, except the big difference between\n // systems is that the modern event system now has an event listener\n // attached to each React Root and React Portal Root. Together,\n // the DOM nodes representing these roots are the \"rootContainer\".\n // To figure out which ancestor instance we should use, we traverse\n // up the fiber tree from the target instance and attempt to find\n // root boundaries that match that of our current \"rootContainer\".\n // If we find that \"rootContainer\", we find the parent fiber\n // sub-tree for that root and make that our ancestor instance.\n var node = targetInst;\n\n mainLoop: while (true) {\n if (node === null) {\n return;\n }\n\n var nodeTag = node.tag;\n\n if (nodeTag === HostRoot || nodeTag === HostPortal) {\n var container = node.stateNode.containerInfo;\n\n if (isMatchingRootContainer(container, targetContainerNode)) {\n break;\n }\n\n if (nodeTag === HostPortal) {\n // The target is a portal, but it's not the rootContainer we're looking for.\n // Normally portals handle their own events all the way down to the root.\n // So we should be able to stop now. However, we don't know if this portal\n // was part of *our* root.\n var grandNode = node.return;\n\n while (grandNode !== null) {\n var grandTag = grandNode.tag;\n\n if (grandTag === HostRoot || grandTag === HostPortal) {\n var grandContainer = grandNode.stateNode.containerInfo;\n\n if (isMatchingRootContainer(grandContainer, targetContainerNode)) {\n // This is the rootContainer we're looking for and we found it as\n // a parent of the Portal. That means we can ignore it because the\n // Portal will bubble through to us.\n return;\n }\n }\n\n grandNode = grandNode.return;\n }\n } // Now we need to find it's corresponding host fiber in the other\n // tree. To do this we can use getClosestInstanceFromNode, but we\n // need to validate that the fiber is a host instance, otherwise\n // we need to traverse up through the DOM till we find the correct\n // node that is from the other tree.\n\n\n while (container !== null) {\n var parentNode = getClosestInstanceFromNode(container);\n\n if (parentNode === null) {\n return;\n }\n\n var parentTag = parentNode.tag;\n\n if (parentTag === HostComponent || parentTag === HostText) {\n node = ancestorInst = parentNode;\n continue mainLoop;\n }\n\n container = container.parentNode;\n }\n }\n\n node = node.return;\n }\n }\n }\n\n batchedEventUpdates(function () {\n return dispatchEventsForPlugins(domEventName, eventSystemFlags, nativeEvent, ancestorInst);\n });\n}\n\nfunction createDispatchListener(instance, listener, currentTarget) {\n return {\n instance: instance,\n listener: listener,\n currentTarget: currentTarget\n };\n}\n\nfunction accumulateSinglePhaseListeners(targetFiber, reactName, nativeEventType, inCapturePhase, accumulateTargetOnly) {\n var captureName = reactName !== null ? reactName + 'Capture' : null;\n var reactEventName = inCapturePhase ? captureName : reactName;\n var listeners = [];\n var instance = targetFiber;\n var lastHostComponent = null; // Accumulate all instances and listeners via the target -> root path.\n\n while (instance !== null) {\n var _instance2 = instance,\n stateNode = _instance2.stateNode,\n tag = _instance2.tag; // Handle listeners that are on HostComponents (i.e. <div>)\n\n if (tag === HostComponent && stateNode !== null) {\n lastHostComponent = stateNode; // createEventHandle listeners\n\n\n if (reactEventName !== null) {\n var listener = getListener(instance, reactEventName);\n\n if (listener != null) {\n listeners.push(createDispatchListener(instance, listener, lastHostComponent));\n }\n }\n } // If we are only accumulating events for the target, then we don't\n // continue to propagate through the React fiber tree to find other\n // listeners.\n\n\n if (accumulateTargetOnly) {\n break;\n }\n\n instance = instance.return;\n }\n\n return listeners;\n} // We should only use this function for:\n// - BeforeInputEventPlugin\n// - ChangeEventPlugin\n// - SelectEventPlugin\n// This is because we only process these plugins\n// in the bubble phase, so we need to accumulate two\n// phase event listeners (via emulation).\n\nfunction accumulateTwoPhaseListeners(targetFiber, reactName) {\n var captureName = reactName + 'Capture';\n var listeners = [];\n var instance = targetFiber; // Accumulate all instances and listeners via the target -> root path.\n\n while (instance !== null) {\n var _instance3 = instance,\n stateNode = _instance3.stateNode,\n tag = _instance3.tag; // Handle listeners that are on HostComponents (i.e. <div>)\n\n if (tag === HostComponent && stateNode !== null) {\n var currentTarget = stateNode;\n var captureListener = getListener(instance, captureName);\n\n if (captureListener != null) {\n listeners.unshift(createDispatchListener(instance, captureListener, currentTarget));\n }\n\n var bubbleListener = getListener(instance, reactName);\n\n if (bubbleListener != null) {\n listeners.push(createDispatchListener(instance, bubbleListener, currentTarget));\n }\n }\n\n instance = instance.return;\n }\n\n return listeners;\n}\n\nfunction getParent(inst) {\n if (inst === null) {\n return null;\n }\n\n do {\n inst = inst.return; // TODO: If this is a HostRoot we might want to bail out.\n // That is depending on if we want nested subtrees (layers) to bubble\n // events to their parent. We could also go through parentNode on the\n // host node but that wouldn't work for React Native and doesn't let us\n // do the portal feature.\n } while (inst && inst.tag !== HostComponent);\n\n if (inst) {\n return inst;\n }\n\n return null;\n}\n/**\n * Return the lowest common ancestor of A and B, or null if they are in\n * different trees.\n */\n\n\nfunction getLowestCommonAncestor(instA, instB) {\n var nodeA = instA;\n var nodeB = instB;\n var depthA = 0;\n\n for (var tempA = nodeA; tempA; tempA = getParent(tempA)) {\n depthA++;\n }\n\n var depthB = 0;\n\n for (var tempB = nodeB; tempB; tempB = getParent(tempB)) {\n depthB++;\n } // If A is deeper, crawl up.\n\n\n while (depthA - depthB > 0) {\n nodeA = getParent(nodeA);\n depthA--;\n } // If B is deeper, crawl up.\n\n\n while (depthB - depthA > 0) {\n nodeB = getParent(nodeB);\n depthB--;\n } // Walk in lockstep until we find a match.\n\n\n var depth = depthA;\n\n while (depth--) {\n if (nodeA === nodeB || nodeB !== null && nodeA === nodeB.alternate) {\n return nodeA;\n }\n\n nodeA = getParent(nodeA);\n nodeB = getParent(nodeB);\n }\n\n return null;\n}\n\nfunction accumulateEnterLeaveListenersForEvent(dispatchQueue, event, target, common, inCapturePhase) {\n var registrationName = event._reactName;\n var listeners = [];\n var instance = target;\n\n while (instance !== null) {\n if (instance === common) {\n break;\n }\n\n var _instance4 = instance,\n alternate = _instance4.alternate,\n stateNode = _instance4.stateNode,\n tag = _instance4.tag;\n\n if (alternate !== null && alternate === common) {\n break;\n }\n\n if (tag === HostComponent && stateNode !== null) {\n var currentTarget = stateNode;\n\n if (inCapturePhase) {\n var captureListener = getListener(instance, registrationName);\n\n if (captureListener != null) {\n listeners.unshift(createDispatchListener(instance, captureListener, currentTarget));\n }\n } else if (!inCapturePhase) {\n var bubbleListener = getListener(instance, registrationName);\n\n if (bubbleListener != null) {\n listeners.push(createDispatchListener(instance, bubbleListener, currentTarget));\n }\n }\n }\n\n instance = instance.return;\n }\n\n if (listeners.length !== 0) {\n dispatchQueue.push({\n event: event,\n listeners: listeners\n });\n }\n} // We should only use this function for:\n// - EnterLeaveEventPlugin\n// This is because we only process this plugin\n// in the bubble phase, so we need to accumulate two\n// phase event listeners.\n\n\nfunction accumulateEnterLeaveTwoPhaseListeners(dispatchQueue, leaveEvent, enterEvent, from, to) {\n var common = from && to ? getLowestCommonAncestor(from, to) : null;\n\n if (from !== null) {\n accumulateEnterLeaveListenersForEvent(dispatchQueue, leaveEvent, from, common, false);\n }\n\n if (to !== null && enterEvent !== null) {\n accumulateEnterLeaveListenersForEvent(dispatchQueue, enterEvent, to, common, true);\n }\n}\nfunction getListenerSetKey(domEventName, capture) {\n return domEventName + \"__\" + (capture ? 'capture' : 'bubble');\n}\n\nvar didWarnInvalidHydration = false;\nvar DANGEROUSLY_SET_INNER_HTML = 'dangerouslySetInnerHTML';\nvar SUPPRESS_CONTENT_EDITABLE_WARNING = 'suppressContentEditableWarning';\nvar SUPPRESS_HYDRATION_WARNING = 'suppressHydrationWarning';\nvar AUTOFOCUS = 'autoFocus';\nvar CHILDREN = 'children';\nvar STYLE = 'style';\nvar HTML$1 = '__html';\nvar HTML_NAMESPACE$1 = Namespaces.html;\nvar warnedUnknownTags;\nvar suppressHydrationWarning;\nvar validatePropertiesInDevelopment;\nvar warnForTextDifference;\nvar warnForPropDifference;\nvar warnForExtraAttributes;\nvar warnForInvalidEventListener;\nvar canDiffStyleForHydrationWarning;\nvar normalizeMarkupForTextOrAttribute;\nvar normalizeHTML;\n\n{\n warnedUnknownTags = {\n // There are working polyfills for <dialog>. Let people use it.\n dialog: true,\n // Electron ships a custom <webview> tag to display external web content in\n // an isolated frame and process.\n // This tag is not present in non Electron environments such as JSDom which\n // is often used for testing purposes.\n // @see https://electronjs.org/docs/api/webview-tag\n webview: true\n };\n\n validatePropertiesInDevelopment = function (type, props) {\n validateProperties(type, props);\n validateProperties$1(type, props);\n validateProperties$2(type, props, {\n registrationNameDependencies: registrationNameDependencies,\n possibleRegistrationNames: possibleRegistrationNames\n });\n }; // IE 11 parses & normalizes the style attribute as opposed to other\n // browsers. It adds spaces and sorts the properties in some\n // non-alphabetical order. Handling that would require sorting CSS\n // properties in the client & server versions or applying\n // `expectedStyle` to a temporary DOM node to read its `style` attribute\n // normalized. Since it only affects IE, we're skipping style warnings\n // in that browser completely in favor of doing all that work.\n // See https://github.com/facebook/react/issues/11807\n\n\n canDiffStyleForHydrationWarning = canUseDOM && !document.documentMode; // HTML parsing normalizes CR and CRLF to LF.\n // It also can turn \\u0000 into \\uFFFD inside attributes.\n // https://www.w3.org/TR/html5/single-page.html#preprocessing-the-input-stream\n // If we have a mismatch, it might be caused by that.\n // We will still patch up in this case but not fire the warning.\n\n var NORMALIZE_NEWLINES_REGEX = /\\r\\n?/g;\n var NORMALIZE_NULL_AND_REPLACEMENT_REGEX = /\\u0000|\\uFFFD/g;\n\n normalizeMarkupForTextOrAttribute = function (markup) {\n var markupString = typeof markup === 'string' ? markup : '' + markup;\n return markupString.replace(NORMALIZE_NEWLINES_REGEX, '\\n').replace(NORMALIZE_NULL_AND_REPLACEMENT_REGEX, '');\n };\n\n warnForTextDifference = function (serverText, clientText) {\n if (didWarnInvalidHydration) {\n return;\n }\n\n var normalizedClientText = normalizeMarkupForTextOrAttribute(clientText);\n var normalizedServerText = normalizeMarkupForTextOrAttribute(serverText);\n\n if (normalizedServerText === normalizedClientText) {\n return;\n }\n\n didWarnInvalidHydration = true;\n\n error('Text content did not match. Server: \"%s\" Client: \"%s\"', normalizedServerText, normalizedClientText);\n };\n\n warnForPropDifference = function (propName, serverValue, clientValue) {\n if (didWarnInvalidHydration) {\n return;\n }\n\n var normalizedClientValue = normalizeMarkupForTextOrAttribute(clientValue);\n var normalizedServerValue = normalizeMarkupForTextOrAttribute(serverValue);\n\n if (normalizedServerValue === normalizedClientValue) {\n return;\n }\n\n didWarnInvalidHydration = true;\n\n error('Prop `%s` did not match. Server: %s Client: %s', propName, JSON.stringify(normalizedServerValue), JSON.stringify(normalizedClientValue));\n };\n\n warnForExtraAttributes = function (attributeNames) {\n if (didWarnInvalidHydration) {\n return;\n }\n\n didWarnInvalidHydration = true;\n var names = [];\n attributeNames.forEach(function (name) {\n names.push(name);\n });\n\n error('Extra attributes from the server: %s', names);\n };\n\n warnForInvalidEventListener = function (registrationName, listener) {\n if (listener === false) {\n error('Expected `%s` listener to be a function, instead got `false`.\\n\\n' + 'If you used to conditionally omit it with %s={condition && value}, ' + 'pass %s={condition ? value : undefined} instead.', registrationName, registrationName, registrationName);\n } else {\n error('Expected `%s` listener to be a function, instead got a value of `%s` type.', registrationName, typeof listener);\n }\n }; // Parse the HTML and read it back to normalize the HTML string so that it\n // can be used for comparison.\n\n\n normalizeHTML = function (parent, html) {\n // We could have created a separate document here to avoid\n // re-initializing custom elements if they exist. But this breaks\n // how <noscript> is being handled. So we use the same document.\n // See the discussion in https://github.com/facebook/react/pull/11157.\n var testElement = parent.namespaceURI === HTML_NAMESPACE$1 ? parent.ownerDocument.createElement(parent.tagName) : parent.ownerDocument.createElementNS(parent.namespaceURI, parent.tagName);\n testElement.innerHTML = html;\n return testElement.innerHTML;\n };\n}\n\nfunction getOwnerDocumentFromRootContainer(rootContainerElement) {\n return rootContainerElement.nodeType === DOCUMENT_NODE ? rootContainerElement : rootContainerElement.ownerDocument;\n}\n\nfunction noop() {}\n\nfunction trapClickOnNonInteractiveElement(node) {\n // Mobile Safari does not fire properly bubble click events on\n // non-interactive elements, which means delegated click listeners do not\n // fire. The workaround for this bug involves attaching an empty click\n // listener on the target node.\n // https://www.quirksmode.org/blog/archives/2010/09/click_event_del.html\n // Just set it using the onclick property so that we don't have to manage any\n // bookkeeping for it. Not sure if we need to clear it when the listener is\n // removed.\n // TODO: Only do this for the relevant Safaris maybe?\n node.onclick = noop;\n}\n\nfunction setInitialDOMProperties(tag, domElement, rootContainerElement, nextProps, isCustomComponentTag) {\n for (var propKey in nextProps) {\n if (!nextProps.hasOwnProperty(propKey)) {\n continue;\n }\n\n var nextProp = nextProps[propKey];\n\n if (propKey === STYLE) {\n {\n if (nextProp) {\n // Freeze the next style object so that we can assume it won't be\n // mutated. We have already warned for this in the past.\n Object.freeze(nextProp);\n }\n } // Relies on `updateStylesByID` not mutating `styleUpdates`.\n\n\n setValueForStyles(domElement, nextProp);\n } else if (propKey === DANGEROUSLY_SET_INNER_HTML) {\n var nextHtml = nextProp ? nextProp[HTML$1] : undefined;\n\n if (nextHtml != null) {\n setInnerHTML(domElement, nextHtml);\n }\n } else if (propKey === CHILDREN) {\n if (typeof nextProp === 'string') {\n // Avoid setting initial textContent when the text is empty. In IE11 setting\n // textContent on a <textarea> will cause the placeholder to not\n // show within the <textarea> until it has been focused and blurred again.\n // https://github.com/facebook/react/issues/6731#issuecomment-254874553\n var canSetTextContent = tag !== 'textarea' || nextProp !== '';\n\n if (canSetTextContent) {\n setTextContent(domElement, nextProp);\n }\n } else if (typeof nextProp === 'number') {\n setTextContent(domElement, '' + nextProp);\n }\n } else if (propKey === SUPPRESS_CONTENT_EDITABLE_WARNING || propKey === SUPPRESS_HYDRATION_WARNING) ; else if (propKey === AUTOFOCUS) ; else if (registrationNameDependencies.hasOwnProperty(propKey)) {\n if (nextProp != null) {\n if ( typeof nextProp !== 'function') {\n warnForInvalidEventListener(propKey, nextProp);\n }\n\n if (propKey === 'onScroll') {\n listenToNonDelegatedEvent('scroll', domElement);\n }\n }\n } else if (nextProp != null) {\n setValueForProperty(domElement, propKey, nextProp, isCustomComponentTag);\n }\n }\n}\n\nfunction updateDOMProperties(domElement, updatePayload, wasCustomComponentTag, isCustomComponentTag) {\n // TODO: Handle wasCustomComponentTag\n for (var i = 0; i < updatePayload.length; i += 2) {\n var propKey = updatePayload[i];\n var propValue = updatePayload[i + 1];\n\n if (propKey === STYLE) {\n setValueForStyles(domElement, propValue);\n } else if (propKey === DANGEROUSLY_SET_INNER_HTML) {\n setInnerHTML(domElement, propValue);\n } else if (propKey === CHILDREN) {\n setTextContent(domElement, propValue);\n } else {\n setValueForProperty(domElement, propKey, propValue, isCustomComponentTag);\n }\n }\n}\n\nfunction createElement(type, props, rootContainerElement, parentNamespace) {\n var isCustomComponentTag; // We create tags in the namespace of their parent container, except HTML\n // tags get no namespace.\n\n var ownerDocument = getOwnerDocumentFromRootContainer(rootContainerElement);\n var domElement;\n var namespaceURI = parentNamespace;\n\n if (namespaceURI === HTML_NAMESPACE$1) {\n namespaceURI = getIntrinsicNamespace(type);\n }\n\n if (namespaceURI === HTML_NAMESPACE$1) {\n {\n isCustomComponentTag = isCustomComponent(type, props); // Should this check be gated by parent namespace? Not sure we want to\n // allow <SVG> or <mATH>.\n\n if (!isCustomComponentTag && type !== type.toLowerCase()) {\n error('<%s /> is using incorrect casing. ' + 'Use PascalCase for React components, ' + 'or lowercase for HTML elements.', type);\n }\n }\n\n if (type === 'script') {\n // Create the script via .innerHTML so its \"parser-inserted\" flag is\n // set to true and it does not execute\n var div = ownerDocument.createElement('div');\n\n div.innerHTML = '<script><' + '/script>'; // eslint-disable-line\n // This is guaranteed to yield a script element.\n\n var firstChild = div.firstChild;\n domElement = div.removeChild(firstChild);\n } else if (typeof props.is === 'string') {\n // $FlowIssue `createElement` should be updated for Web Components\n domElement = ownerDocument.createElement(type, {\n is: props.is\n });\n } else {\n // Separate else branch instead of using `props.is || undefined` above because of a Firefox bug.\n // See discussion in https://github.com/facebook/react/pull/6896\n // and discussion in https://bugzilla.mozilla.org/show_bug.cgi?id=1276240\n domElement = ownerDocument.createElement(type); // Normally attributes are assigned in `setInitialDOMProperties`, however the `multiple` and `size`\n // attributes on `select`s needs to be added before `option`s are inserted.\n // This prevents:\n // - a bug where the `select` does not scroll to the correct option because singular\n // `select` elements automatically pick the first item #13222\n // - a bug where the `select` set the first item as selected despite the `size` attribute #14239\n // See https://github.com/facebook/react/issues/13222\n // and https://github.com/facebook/react/issues/14239\n\n if (type === 'select') {\n var node = domElement;\n\n if (props.multiple) {\n node.multiple = true;\n } else if (props.size) {\n // Setting a size greater than 1 causes a select to behave like `multiple=true`, where\n // it is possible that no option is selected.\n //\n // This is only necessary when a select in \"single selection mode\".\n node.size = props.size;\n }\n }\n }\n } else {\n domElement = ownerDocument.createElementNS(namespaceURI, type);\n }\n\n {\n if (namespaceURI === HTML_NAMESPACE$1) {\n if (!isCustomComponentTag && Object.prototype.toString.call(domElement) === '[object HTMLUnknownElement]' && !Object.prototype.hasOwnProperty.call(warnedUnknownTags, type)) {\n warnedUnknownTags[type] = true;\n\n error('The tag <%s> is unrecognized in this browser. ' + 'If you meant to render a React component, start its name with ' + 'an uppercase letter.', type);\n }\n }\n }\n\n return domElement;\n}\nfunction createTextNode(text, rootContainerElement) {\n return getOwnerDocumentFromRootContainer(rootContainerElement).createTextNode(text);\n}\nfunction setInitialProperties(domElement, tag, rawProps, rootContainerElement) {\n var isCustomComponentTag = isCustomComponent(tag, rawProps);\n\n {\n validatePropertiesInDevelopment(tag, rawProps);\n } // TODO: Make sure that we check isMounted before firing any of these events.\n\n\n var props;\n\n switch (tag) {\n case 'dialog':\n listenToNonDelegatedEvent('cancel', domElement);\n listenToNonDelegatedEvent('close', domElement);\n props = rawProps;\n break;\n\n case 'iframe':\n case 'object':\n case 'embed':\n // We listen to this event in case to ensure emulated bubble\n // listeners still fire for the load event.\n listenToNonDelegatedEvent('load', domElement);\n props = rawProps;\n break;\n\n case 'video':\n case 'audio':\n // We listen to these events in case to ensure emulated bubble\n // listeners still fire for all the media events.\n for (var i = 0; i < mediaEventTypes.length; i++) {\n listenToNonDelegatedEvent(mediaEventTypes[i], domElement);\n }\n\n props = rawProps;\n break;\n\n case 'source':\n // We listen to this event in case to ensure emulated bubble\n // listeners still fire for the error event.\n listenToNonDelegatedEvent('error', domElement);\n props = rawProps;\n break;\n\n case 'img':\n case 'image':\n case 'link':\n // We listen to these events in case to ensure emulated bubble\n // listeners still fire for error and load events.\n listenToNonDelegatedEvent('error', domElement);\n listenToNonDelegatedEvent('load', domElement);\n props = rawProps;\n break;\n\n case 'details':\n // We listen to this event in case to ensure emulated bubble\n // listeners still fire for the toggle event.\n listenToNonDelegatedEvent('toggle', domElement);\n props = rawProps;\n break;\n\n case 'input':\n initWrapperState(domElement, rawProps);\n props = getHostProps(domElement, rawProps); // We listen to this event in case to ensure emulated bubble\n // listeners still fire for the invalid event.\n\n listenToNonDelegatedEvent('invalid', domElement);\n\n break;\n\n case 'option':\n validateProps(domElement, rawProps);\n props = getHostProps$1(domElement, rawProps);\n break;\n\n case 'select':\n initWrapperState$1(domElement, rawProps);\n props = getHostProps$2(domElement, rawProps); // We listen to this event in case to ensure emulated bubble\n // listeners still fire for the invalid event.\n\n listenToNonDelegatedEvent('invalid', domElement);\n\n break;\n\n case 'textarea':\n initWrapperState$2(domElement, rawProps);\n props = getHostProps$3(domElement, rawProps); // We listen to this event in case to ensure emulated bubble\n // listeners still fire for the invalid event.\n\n listenToNonDelegatedEvent('invalid', domElement);\n\n break;\n\n default:\n props = rawProps;\n }\n\n assertValidProps(tag, props);\n setInitialDOMProperties(tag, domElement, rootContainerElement, props, isCustomComponentTag);\n\n switch (tag) {\n case 'input':\n // TODO: Make sure we check if this is still unmounted or do any clean\n // up necessary since we never stop tracking anymore.\n track(domElement);\n postMountWrapper(domElement, rawProps, false);\n break;\n\n case 'textarea':\n // TODO: Make sure we check if this is still unmounted or do any clean\n // up necessary since we never stop tracking anymore.\n track(domElement);\n postMountWrapper$3(domElement);\n break;\n\n case 'option':\n postMountWrapper$1(domElement, rawProps);\n break;\n\n case 'select':\n postMountWrapper$2(domElement, rawProps);\n break;\n\n default:\n if (typeof props.onClick === 'function') {\n // TODO: This cast may not be sound for SVG, MathML or custom elements.\n trapClickOnNonInteractiveElement(domElement);\n }\n\n break;\n }\n} // Calculate the diff between the two objects.\n\nfunction diffProperties(domElement, tag, lastRawProps, nextRawProps, rootContainerElement) {\n {\n validatePropertiesInDevelopment(tag, nextRawProps);\n }\n\n var updatePayload = null;\n var lastProps;\n var nextProps;\n\n switch (tag) {\n case 'input':\n lastProps = getHostProps(domElement, lastRawProps);\n nextProps = getHostProps(domElement, nextRawProps);\n updatePayload = [];\n break;\n\n case 'option':\n lastProps = getHostProps$1(domElement, lastRawProps);\n nextProps = getHostProps$1(domElement, nextRawProps);\n updatePayload = [];\n break;\n\n case 'select':\n lastProps = getHostProps$2(domElement, lastRawProps);\n nextProps = getHostProps$2(domElement, nextRawProps);\n updatePayload = [];\n break;\n\n case 'textarea':\n lastProps = getHostProps$3(domElement, lastRawProps);\n nextProps = getHostProps$3(domElement, nextRawProps);\n updatePayload = [];\n break;\n\n default:\n lastProps = lastRawProps;\n nextProps = nextRawProps;\n\n if (typeof lastProps.onClick !== 'function' && typeof nextProps.onClick === 'function') {\n // TODO: This cast may not be sound for SVG, MathML or custom elements.\n trapClickOnNonInteractiveElement(domElement);\n }\n\n break;\n }\n\n assertValidProps(tag, nextProps);\n var propKey;\n var styleName;\n var styleUpdates = null;\n\n for (propKey in lastProps) {\n if (nextProps.hasOwnProperty(propKey) || !lastProps.hasOwnProperty(propKey) || lastProps[propKey] == null) {\n continue;\n }\n\n if (propKey === STYLE) {\n var lastStyle = lastProps[propKey];\n\n for (styleName in lastStyle) {\n if (lastStyle.hasOwnProperty(styleName)) {\n if (!styleUpdates) {\n styleUpdates = {};\n }\n\n styleUpdates[styleName] = '';\n }\n }\n } else if (propKey === DANGEROUSLY_SET_INNER_HTML || propKey === CHILDREN) ; else if (propKey === SUPPRESS_CONTENT_EDITABLE_WARNING || propKey === SUPPRESS_HYDRATION_WARNING) ; else if (propKey === AUTOFOCUS) ; else if (registrationNameDependencies.hasOwnProperty(propKey)) {\n // This is a special case. If any listener updates we need to ensure\n // that the \"current\" fiber pointer gets updated so we need a commit\n // to update this element.\n if (!updatePayload) {\n updatePayload = [];\n }\n } else {\n // For all other deleted properties we add it to the queue. We use\n // the allowed property list in the commit phase instead.\n (updatePayload = updatePayload || []).push(propKey, null);\n }\n }\n\n for (propKey in nextProps) {\n var nextProp = nextProps[propKey];\n var lastProp = lastProps != null ? lastProps[propKey] : undefined;\n\n if (!nextProps.hasOwnProperty(propKey) || nextProp === lastProp || nextProp == null && lastProp == null) {\n continue;\n }\n\n if (propKey === STYLE) {\n {\n if (nextProp) {\n // Freeze the next style object so that we can assume it won't be\n // mutated. We have already warned for this in the past.\n Object.freeze(nextProp);\n }\n }\n\n if (lastProp) {\n // Unset styles on `lastProp` but not on `nextProp`.\n for (styleName in lastProp) {\n if (lastProp.hasOwnProperty(styleName) && (!nextProp || !nextProp.hasOwnProperty(styleName))) {\n if (!styleUpdates) {\n styleUpdates = {};\n }\n\n styleUpdates[styleName] = '';\n }\n } // Update styles that changed since `lastProp`.\n\n\n for (styleName in nextProp) {\n if (nextProp.hasOwnProperty(styleName) && lastProp[styleName] !== nextProp[styleName]) {\n if (!styleUpdates) {\n styleUpdates = {};\n }\n\n styleUpdates[styleName] = nextProp[styleName];\n }\n }\n } else {\n // Relies on `updateStylesByID` not mutating `styleUpdates`.\n if (!styleUpdates) {\n if (!updatePayload) {\n updatePayload = [];\n }\n\n updatePayload.push(propKey, styleUpdates);\n }\n\n styleUpdates = nextProp;\n }\n } else if (propKey === DANGEROUSLY_SET_INNER_HTML) {\n var nextHtml = nextProp ? nextProp[HTML$1] : undefined;\n var lastHtml = lastProp ? lastProp[HTML$1] : undefined;\n\n if (nextHtml != null) {\n if (lastHtml !== nextHtml) {\n (updatePayload = updatePayload || []).push(propKey, nextHtml);\n }\n }\n } else if (propKey === CHILDREN) {\n if (typeof nextProp === 'string' || typeof nextProp === 'number') {\n (updatePayload = updatePayload || []).push(propKey, '' + nextProp);\n }\n } else if (propKey === SUPPRESS_CONTENT_EDITABLE_WARNING || propKey === SUPPRESS_HYDRATION_WARNING) ; else if (registrationNameDependencies.hasOwnProperty(propKey)) {\n if (nextProp != null) {\n // We eagerly listen to this even though we haven't committed yet.\n if ( typeof nextProp !== 'function') {\n warnForInvalidEventListener(propKey, nextProp);\n }\n\n if (propKey === 'onScroll') {\n listenToNonDelegatedEvent('scroll', domElement);\n }\n }\n\n if (!updatePayload && lastProp !== nextProp) {\n // This is a special case. If any listener updates we need to ensure\n // that the \"current\" props pointer gets updated so we need a commit\n // to update this element.\n updatePayload = [];\n }\n } else if (typeof nextProp === 'object' && nextProp !== null && nextProp.$$typeof === REACT_OPAQUE_ID_TYPE) {\n // If we encounter useOpaqueReference's opaque object, this means we are hydrating.\n // In this case, call the opaque object's toString function which generates a new client\n // ID so client and server IDs match and throws to rerender.\n nextProp.toString();\n } else {\n // For any other property we always add it to the queue and then we\n // filter it out using the allowed property list during the commit.\n (updatePayload = updatePayload || []).push(propKey, nextProp);\n }\n }\n\n if (styleUpdates) {\n {\n validateShorthandPropertyCollisionInDev(styleUpdates, nextProps[STYLE]);\n }\n\n (updatePayload = updatePayload || []).push(STYLE, styleUpdates);\n }\n\n return updatePayload;\n} // Apply the diff.\n\nfunction updateProperties(domElement, updatePayload, tag, lastRawProps, nextRawProps) {\n // Update checked *before* name.\n // In the middle of an update, it is possible to have multiple checked.\n // When a checked radio tries to change name, browser makes another radio's checked false.\n if (tag === 'input' && nextRawProps.type === 'radio' && nextRawProps.name != null) {\n updateChecked(domElement, nextRawProps);\n }\n\n var wasCustomComponentTag = isCustomComponent(tag, lastRawProps);\n var isCustomComponentTag = isCustomComponent(tag, nextRawProps); // Apply the diff.\n\n updateDOMProperties(domElement, updatePayload, wasCustomComponentTag, isCustomComponentTag); // TODO: Ensure that an update gets scheduled if any of the special props\n // changed.\n\n switch (tag) {\n case 'input':\n // Update the wrapper around inputs *after* updating props. This has to\n // happen after `updateDOMProperties`. Otherwise HTML5 input validations\n // raise warnings and prevent the new value from being assigned.\n updateWrapper(domElement, nextRawProps);\n break;\n\n case 'textarea':\n updateWrapper$1(domElement, nextRawProps);\n break;\n\n case 'select':\n // <select> value update needs to occur after <option> children\n // reconciliation\n postUpdateWrapper(domElement, nextRawProps);\n break;\n }\n}\n\nfunction getPossibleStandardName(propName) {\n {\n var lowerCasedName = propName.toLowerCase();\n\n if (!possibleStandardNames.hasOwnProperty(lowerCasedName)) {\n return null;\n }\n\n return possibleStandardNames[lowerCasedName] || null;\n }\n}\n\nfunction diffHydratedProperties(domElement, tag, rawProps, parentNamespace, rootContainerElement) {\n var isCustomComponentTag;\n var extraAttributeNames;\n\n {\n suppressHydrationWarning = rawProps[SUPPRESS_HYDRATION_WARNING] === true;\n isCustomComponentTag = isCustomComponent(tag, rawProps);\n validatePropertiesInDevelopment(tag, rawProps);\n } // TODO: Make sure that we check isMounted before firing any of these events.\n\n\n switch (tag) {\n case 'dialog':\n listenToNonDelegatedEvent('cancel', domElement);\n listenToNonDelegatedEvent('close', domElement);\n break;\n\n case 'iframe':\n case 'object':\n case 'embed':\n // We listen to this event in case to ensure emulated bubble\n // listeners still fire for the load event.\n listenToNonDelegatedEvent('load', domElement);\n break;\n\n case 'video':\n case 'audio':\n // We listen to these events in case to ensure emulated bubble\n // listeners still fire for all the media events.\n for (var i = 0; i < mediaEventTypes.length; i++) {\n listenToNonDelegatedEvent(mediaEventTypes[i], domElement);\n }\n\n break;\n\n case 'source':\n // We listen to this event in case to ensure emulated bubble\n // listeners still fire for the error event.\n listenToNonDelegatedEvent('error', domElement);\n break;\n\n case 'img':\n case 'image':\n case 'link':\n // We listen to these events in case to ensure emulated bubble\n // listeners still fire for error and load events.\n listenToNonDelegatedEvent('error', domElement);\n listenToNonDelegatedEvent('load', domElement);\n break;\n\n case 'details':\n // We listen to this event in case to ensure emulated bubble\n // listeners still fire for the toggle event.\n listenToNonDelegatedEvent('toggle', domElement);\n break;\n\n case 'input':\n initWrapperState(domElement, rawProps); // We listen to this event in case to ensure emulated bubble\n // listeners still fire for the invalid event.\n\n listenToNonDelegatedEvent('invalid', domElement);\n\n break;\n\n case 'option':\n validateProps(domElement, rawProps);\n break;\n\n case 'select':\n initWrapperState$1(domElement, rawProps); // We listen to this event in case to ensure emulated bubble\n // listeners still fire for the invalid event.\n\n listenToNonDelegatedEvent('invalid', domElement);\n\n break;\n\n case 'textarea':\n initWrapperState$2(domElement, rawProps); // We listen to this event in case to ensure emulated bubble\n // listeners still fire for the invalid event.\n\n listenToNonDelegatedEvent('invalid', domElement);\n\n break;\n }\n\n assertValidProps(tag, rawProps);\n\n {\n extraAttributeNames = new Set();\n var attributes = domElement.attributes;\n\n for (var _i = 0; _i < attributes.length; _i++) {\n var name = attributes[_i].name.toLowerCase();\n\n switch (name) {\n // Built-in SSR attribute is allowed\n case 'data-reactroot':\n break;\n // Controlled attributes are not validated\n // TODO: Only ignore them on controlled tags.\n\n case 'value':\n break;\n\n case 'checked':\n break;\n\n case 'selected':\n break;\n\n default:\n // Intentionally use the original name.\n // See discussion in https://github.com/facebook/react/pull/10676.\n extraAttributeNames.add(attributes[_i].name);\n }\n }\n }\n\n var updatePayload = null;\n\n for (var propKey in rawProps) {\n if (!rawProps.hasOwnProperty(propKey)) {\n continue;\n }\n\n var nextProp = rawProps[propKey];\n\n if (propKey === CHILDREN) {\n // For text content children we compare against textContent. This\n // might match additional HTML that is hidden when we read it using\n // textContent. E.g. \"foo\" will match \"f<span>oo</span>\" but that still\n // satisfies our requirement. Our requirement is not to produce perfect\n // HTML and attributes. Ideally we should preserve structure but it's\n // ok not to if the visible content is still enough to indicate what\n // even listeners these nodes might be wired up to.\n // TODO: Warn if there is more than a single textNode as a child.\n // TODO: Should we use domElement.firstChild.nodeValue to compare?\n if (typeof nextProp === 'string') {\n if (domElement.textContent !== nextProp) {\n if ( !suppressHydrationWarning) {\n warnForTextDifference(domElement.textContent, nextProp);\n }\n\n updatePayload = [CHILDREN, nextProp];\n }\n } else if (typeof nextProp === 'number') {\n if (domElement.textContent !== '' + nextProp) {\n if ( !suppressHydrationWarning) {\n warnForTextDifference(domElement.textContent, nextProp);\n }\n\n updatePayload = [CHILDREN, '' + nextProp];\n }\n }\n } else if (registrationNameDependencies.hasOwnProperty(propKey)) {\n if (nextProp != null) {\n if ( typeof nextProp !== 'function') {\n warnForInvalidEventListener(propKey, nextProp);\n }\n\n if (propKey === 'onScroll') {\n listenToNonDelegatedEvent('scroll', domElement);\n }\n }\n } else if ( // Convince Flow we've calculated it (it's DEV-only in this method.)\n typeof isCustomComponentTag === 'boolean') {\n // Validate that the properties correspond to their expected values.\n var serverValue = void 0;\n var propertyInfo = getPropertyInfo(propKey);\n\n if (suppressHydrationWarning) ; else if (propKey === SUPPRESS_CONTENT_EDITABLE_WARNING || propKey === SUPPRESS_HYDRATION_WARNING || // Controlled attributes are not validated\n // TODO: Only ignore them on controlled tags.\n propKey === 'value' || propKey === 'checked' || propKey === 'selected') ; else if (propKey === DANGEROUSLY_SET_INNER_HTML) {\n var serverHTML = domElement.innerHTML;\n var nextHtml = nextProp ? nextProp[HTML$1] : undefined;\n\n if (nextHtml != null) {\n var expectedHTML = normalizeHTML(domElement, nextHtml);\n\n if (expectedHTML !== serverHTML) {\n warnForPropDifference(propKey, serverHTML, expectedHTML);\n }\n }\n } else if (propKey === STYLE) {\n // $FlowFixMe - Should be inferred as not undefined.\n extraAttributeNames.delete(propKey);\n\n if (canDiffStyleForHydrationWarning) {\n var expectedStyle = createDangerousStringForStyles(nextProp);\n serverValue = domElement.getAttribute('style');\n\n if (expectedStyle !== serverValue) {\n warnForPropDifference(propKey, serverValue, expectedStyle);\n }\n }\n } else if (isCustomComponentTag) {\n // $FlowFixMe - Should be inferred as not undefined.\n extraAttributeNames.delete(propKey.toLowerCase());\n serverValue = getValueForAttribute(domElement, propKey, nextProp);\n\n if (nextProp !== serverValue) {\n warnForPropDifference(propKey, serverValue, nextProp);\n }\n } else if (!shouldIgnoreAttribute(propKey, propertyInfo, isCustomComponentTag) && !shouldRemoveAttribute(propKey, nextProp, propertyInfo, isCustomComponentTag)) {\n var isMismatchDueToBadCasing = false;\n\n if (propertyInfo !== null) {\n // $FlowFixMe - Should be inferred as not undefined.\n extraAttributeNames.delete(propertyInfo.attributeName);\n serverValue = getValueForProperty(domElement, propKey, nextProp, propertyInfo);\n } else {\n var ownNamespace = parentNamespace;\n\n if (ownNamespace === HTML_NAMESPACE$1) {\n ownNamespace = getIntrinsicNamespace(tag);\n }\n\n if (ownNamespace === HTML_NAMESPACE$1) {\n // $FlowFixMe - Should be inferred as not undefined.\n extraAttributeNames.delete(propKey.toLowerCase());\n } else {\n var standardName = getPossibleStandardName(propKey);\n\n if (standardName !== null && standardName !== propKey) {\n // If an SVG prop is supplied with bad casing, it will\n // be successfully parsed from HTML, but will produce a mismatch\n // (and would be incorrectly rendered on the client).\n // However, we already warn about bad casing elsewhere.\n // So we'll skip the misleading extra mismatch warning in this case.\n isMismatchDueToBadCasing = true; // $FlowFixMe - Should be inferred as not undefined.\n\n extraAttributeNames.delete(standardName);\n } // $FlowFixMe - Should be inferred as not undefined.\n\n\n extraAttributeNames.delete(propKey);\n }\n\n serverValue = getValueForAttribute(domElement, propKey, nextProp);\n }\n\n if (nextProp !== serverValue && !isMismatchDueToBadCasing) {\n warnForPropDifference(propKey, serverValue, nextProp);\n }\n }\n }\n }\n\n {\n // $FlowFixMe - Should be inferred as not undefined.\n if (extraAttributeNames.size > 0 && !suppressHydrationWarning) {\n // $FlowFixMe - Should be inferred as not undefined.\n warnForExtraAttributes(extraAttributeNames);\n }\n }\n\n switch (tag) {\n case 'input':\n // TODO: Make sure we check if this is still unmounted or do any clean\n // up necessary since we never stop tracking anymore.\n track(domElement);\n postMountWrapper(domElement, rawProps, true);\n break;\n\n case 'textarea':\n // TODO: Make sure we check if this is still unmounted or do any clean\n // up necessary since we never stop tracking anymore.\n track(domElement);\n postMountWrapper$3(domElement);\n break;\n\n case 'select':\n case 'option':\n // For input and textarea we current always set the value property at\n // post mount to force it to diverge from attributes. However, for\n // option and select we don't quite do the same thing and select\n // is not resilient to the DOM state changing so we don't do that here.\n // TODO: Consider not doing this for input and textarea.\n break;\n\n default:\n if (typeof rawProps.onClick === 'function') {\n // TODO: This cast may not be sound for SVG, MathML or custom elements.\n trapClickOnNonInteractiveElement(domElement);\n }\n\n break;\n }\n\n return updatePayload;\n}\nfunction diffHydratedText(textNode, text) {\n var isDifferent = textNode.nodeValue !== text;\n return isDifferent;\n}\nfunction warnForUnmatchedText(textNode, text) {\n {\n warnForTextDifference(textNode.nodeValue, text);\n }\n}\nfunction warnForDeletedHydratableElement(parentNode, child) {\n {\n if (didWarnInvalidHydration) {\n return;\n }\n\n didWarnInvalidHydration = true;\n\n error('Did not expect server HTML to contain a <%s> in <%s>.', child.nodeName.toLowerCase(), parentNode.nodeName.toLowerCase());\n }\n}\nfunction warnForDeletedHydratableText(parentNode, child) {\n {\n if (didWarnInvalidHydration) {\n return;\n }\n\n didWarnInvalidHydration = true;\n\n error('Did not expect server HTML to contain the text node \"%s\" in <%s>.', child.nodeValue, parentNode.nodeName.toLowerCase());\n }\n}\nfunction warnForInsertedHydratedElement(parentNode, tag, props) {\n {\n if (didWarnInvalidHydration) {\n return;\n }\n\n didWarnInvalidHydration = true;\n\n error('Expected server HTML to contain a matching <%s> in <%s>.', tag, parentNode.nodeName.toLowerCase());\n }\n}\nfunction warnForInsertedHydratedText(parentNode, text) {\n {\n if (text === '') {\n // We expect to insert empty text nodes since they're not represented in\n // the HTML.\n // TODO: Remove this special case if we can just avoid inserting empty\n // text nodes.\n return;\n }\n\n if (didWarnInvalidHydration) {\n return;\n }\n\n didWarnInvalidHydration = true;\n\n error('Expected server HTML to contain a matching text node for \"%s\" in <%s>.', text, parentNode.nodeName.toLowerCase());\n }\n}\nfunction restoreControlledState$3(domElement, tag, props) {\n switch (tag) {\n case 'input':\n restoreControlledState(domElement, props);\n return;\n\n case 'textarea':\n restoreControlledState$2(domElement, props);\n return;\n\n case 'select':\n restoreControlledState$1(domElement, props);\n return;\n }\n}\n\nvar validateDOMNesting = function () {};\n\nvar updatedAncestorInfo = function () {};\n\n{\n // This validation code was written based on the HTML5 parsing spec:\n // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope\n //\n // Note: this does not catch all invalid nesting, nor does it try to (as it's\n // not clear what practical benefit doing so provides); instead, we warn only\n // for cases where the parser will give a parse tree differing from what React\n // intended. For example, <b><div></div></b> is invalid but we don't warn\n // because it still parses correctly; we do warn for other cases like nested\n // <p> tags where the beginning of the second element implicitly closes the\n // first, causing a confusing mess.\n // https://html.spec.whatwg.org/multipage/syntax.html#special\n var specialTags = ['address', 'applet', 'area', 'article', 'aside', 'base', 'basefont', 'bgsound', 'blockquote', 'body', 'br', 'button', 'caption', 'center', 'col', 'colgroup', 'dd', 'details', 'dir', 'div', 'dl', 'dt', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'frame', 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'iframe', 'img', 'input', 'isindex', 'li', 'link', 'listing', 'main', 'marquee', 'menu', 'menuitem', 'meta', 'nav', 'noembed', 'noframes', 'noscript', 'object', 'ol', 'p', 'param', 'plaintext', 'pre', 'script', 'section', 'select', 'source', 'style', 'summary', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'title', 'tr', 'track', 'ul', 'wbr', 'xmp']; // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope\n\n var inScopeTags = ['applet', 'caption', 'html', 'table', 'td', 'th', 'marquee', 'object', 'template', // https://html.spec.whatwg.org/multipage/syntax.html#html-integration-point\n // TODO: Distinguish by namespace here -- for <title>, including it here\n // errs on the side of fewer warnings\n 'foreignObject', 'desc', 'title']; // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-button-scope\n\n var buttonScopeTags = inScopeTags.concat(['button']); // https://html.spec.whatwg.org/multipage/syntax.html#generate-implied-end-tags\n\n var impliedEndTags = ['dd', 'dt', 'li', 'option', 'optgroup', 'p', 'rp', 'rt'];\n var emptyAncestorInfo = {\n current: null,\n formTag: null,\n aTagInScope: null,\n buttonTagInScope: null,\n nobrTagInScope: null,\n pTagInButtonScope: null,\n listItemTagAutoclosing: null,\n dlItemTagAutoclosing: null\n };\n\n updatedAncestorInfo = function (oldInfo, tag) {\n var ancestorInfo = _assign({}, oldInfo || emptyAncestorInfo);\n\n var info = {\n tag: tag\n };\n\n if (inScopeTags.indexOf(tag) !== -1) {\n ancestorInfo.aTagInScope = null;\n ancestorInfo.buttonTagInScope = null;\n ancestorInfo.nobrTagInScope = null;\n }\n\n if (buttonScopeTags.indexOf(tag) !== -1) {\n ancestorInfo.pTagInButtonScope = null;\n } // See rules for 'li', 'dd', 'dt' start tags in\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody\n\n\n if (specialTags.indexOf(tag) !== -1 && tag !== 'address' && tag !== 'div' && tag !== 'p') {\n ancestorInfo.listItemTagAutoclosing = null;\n ancestorInfo.dlItemTagAutoclosing = null;\n }\n\n ancestorInfo.current = info;\n\n if (tag === 'form') {\n ancestorInfo.formTag = info;\n }\n\n if (tag === 'a') {\n ancestorInfo.aTagInScope = info;\n }\n\n if (tag === 'button') {\n ancestorInfo.buttonTagInScope = info;\n }\n\n if (tag === 'nobr') {\n ancestorInfo.nobrTagInScope = info;\n }\n\n if (tag === 'p') {\n ancestorInfo.pTagInButtonScope = info;\n }\n\n if (tag === 'li') {\n ancestorInfo.listItemTagAutoclosing = info;\n }\n\n if (tag === 'dd' || tag === 'dt') {\n ancestorInfo.dlItemTagAutoclosing = info;\n }\n\n return ancestorInfo;\n };\n /**\n * Returns whether\n */\n\n\n var isTagValidWithParent = function (tag, parentTag) {\n // First, let's check if we're in an unusual parsing mode...\n switch (parentTag) {\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inselect\n case 'select':\n return tag === 'option' || tag === 'optgroup' || tag === '#text';\n\n case 'optgroup':\n return tag === 'option' || tag === '#text';\n // Strictly speaking, seeing an <option> doesn't mean we're in a <select>\n // but\n\n case 'option':\n return tag === '#text';\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intd\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incaption\n // No special behavior since these rules fall back to \"in body\" mode for\n // all except special table nodes which cause bad parsing behavior anyway.\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intr\n\n case 'tr':\n return tag === 'th' || tag === 'td' || tag === 'style' || tag === 'script' || tag === 'template';\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intbody\n\n case 'tbody':\n case 'thead':\n case 'tfoot':\n return tag === 'tr' || tag === 'style' || tag === 'script' || tag === 'template';\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incolgroup\n\n case 'colgroup':\n return tag === 'col' || tag === 'template';\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intable\n\n case 'table':\n return tag === 'caption' || tag === 'colgroup' || tag === 'tbody' || tag === 'tfoot' || tag === 'thead' || tag === 'style' || tag === 'script' || tag === 'template';\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inhead\n\n case 'head':\n return tag === 'base' || tag === 'basefont' || tag === 'bgsound' || tag === 'link' || tag === 'meta' || tag === 'title' || tag === 'noscript' || tag === 'noframes' || tag === 'style' || tag === 'script' || tag === 'template';\n // https://html.spec.whatwg.org/multipage/semantics.html#the-html-element\n\n case 'html':\n return tag === 'head' || tag === 'body' || tag === 'frameset';\n\n case 'frameset':\n return tag === 'frame';\n\n case '#document':\n return tag === 'html';\n } // Probably in the \"in body\" parsing mode, so we outlaw only tag combos\n // where the parsing rules cause implicit opens or closes to be added.\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody\n\n\n switch (tag) {\n case 'h1':\n case 'h2':\n case 'h3':\n case 'h4':\n case 'h5':\n case 'h6':\n return parentTag !== 'h1' && parentTag !== 'h2' && parentTag !== 'h3' && parentTag !== 'h4' && parentTag !== 'h5' && parentTag !== 'h6';\n\n case 'rp':\n case 'rt':\n return impliedEndTags.indexOf(parentTag) === -1;\n\n case 'body':\n case 'caption':\n case 'col':\n case 'colgroup':\n case 'frameset':\n case 'frame':\n case 'head':\n case 'html':\n case 'tbody':\n case 'td':\n case 'tfoot':\n case 'th':\n case 'thead':\n case 'tr':\n // These tags are only valid with a few parents that have special child\n // parsing rules -- if we're down here, then none of those matched and\n // so we allow it only if we don't know what the parent is, as all other\n // cases are invalid.\n return parentTag == null;\n }\n\n return true;\n };\n /**\n * Returns whether\n */\n\n\n var findInvalidAncestorForTag = function (tag, ancestorInfo) {\n switch (tag) {\n case 'address':\n case 'article':\n case 'aside':\n case 'blockquote':\n case 'center':\n case 'details':\n case 'dialog':\n case 'dir':\n case 'div':\n case 'dl':\n case 'fieldset':\n case 'figcaption':\n case 'figure':\n case 'footer':\n case 'header':\n case 'hgroup':\n case 'main':\n case 'menu':\n case 'nav':\n case 'ol':\n case 'p':\n case 'section':\n case 'summary':\n case 'ul':\n case 'pre':\n case 'listing':\n case 'table':\n case 'hr':\n case 'xmp':\n case 'h1':\n case 'h2':\n case 'h3':\n case 'h4':\n case 'h5':\n case 'h6':\n return ancestorInfo.pTagInButtonScope;\n\n case 'form':\n return ancestorInfo.formTag || ancestorInfo.pTagInButtonScope;\n\n case 'li':\n return ancestorInfo.listItemTagAutoclosing;\n\n case 'dd':\n case 'dt':\n return ancestorInfo.dlItemTagAutoclosing;\n\n case 'button':\n return ancestorInfo.buttonTagInScope;\n\n case 'a':\n // Spec says something about storing a list of markers, but it sounds\n // equivalent to this check.\n return ancestorInfo.aTagInScope;\n\n case 'nobr':\n return ancestorInfo.nobrTagInScope;\n }\n\n return null;\n };\n\n var didWarn$1 = {};\n\n validateDOMNesting = function (childTag, childText, ancestorInfo) {\n ancestorInfo = ancestorInfo || emptyAncestorInfo;\n var parentInfo = ancestorInfo.current;\n var parentTag = parentInfo && parentInfo.tag;\n\n if (childText != null) {\n if (childTag != null) {\n error('validateDOMNesting: when childText is passed, childTag should be null');\n }\n\n childTag = '#text';\n }\n\n var invalidParent = isTagValidWithParent(childTag, parentTag) ? null : parentInfo;\n var invalidAncestor = invalidParent ? null : findInvalidAncestorForTag(childTag, ancestorInfo);\n var invalidParentOrAncestor = invalidParent || invalidAncestor;\n\n if (!invalidParentOrAncestor) {\n return;\n }\n\n var ancestorTag = invalidParentOrAncestor.tag;\n var warnKey = !!invalidParent + '|' + childTag + '|' + ancestorTag;\n\n if (didWarn$1[warnKey]) {\n return;\n }\n\n didWarn$1[warnKey] = true;\n var tagDisplayName = childTag;\n var whitespaceInfo = '';\n\n if (childTag === '#text') {\n if (/\\S/.test(childText)) {\n tagDisplayName = 'Text nodes';\n } else {\n tagDisplayName = 'Whitespace text nodes';\n whitespaceInfo = \" Make sure you don't have any extra whitespace between tags on \" + 'each line of your source code.';\n }\n } else {\n tagDisplayName = '<' + childTag + '>';\n }\n\n if (invalidParent) {\n var info = '';\n\n if (ancestorTag === 'table' && childTag === 'tr') {\n info += ' Add a <tbody>, <thead> or <tfoot> to your code to match the DOM tree generated by ' + 'the browser.';\n }\n\n error('validateDOMNesting(...): %s cannot appear as a child of <%s>.%s%s', tagDisplayName, ancestorTag, whitespaceInfo, info);\n } else {\n error('validateDOMNesting(...): %s cannot appear as a descendant of ' + '<%s>.', tagDisplayName, ancestorTag);\n }\n };\n}\n\nvar SUPPRESS_HYDRATION_WARNING$1;\n\n{\n SUPPRESS_HYDRATION_WARNING$1 = 'suppressHydrationWarning';\n}\n\nvar SUSPENSE_START_DATA = '$';\nvar SUSPENSE_END_DATA = '/$';\nvar SUSPENSE_PENDING_START_DATA = '$?';\nvar SUSPENSE_FALLBACK_START_DATA = '$!';\nvar STYLE$1 = 'style';\nvar eventsEnabled = null;\nvar selectionInformation = null;\n\nfunction shouldAutoFocusHostComponent(type, props) {\n switch (type) {\n case 'button':\n case 'input':\n case 'select':\n case 'textarea':\n return !!props.autoFocus;\n }\n\n return false;\n}\nfunction getRootHostContext(rootContainerInstance) {\n var type;\n var namespace;\n var nodeType = rootContainerInstance.nodeType;\n\n switch (nodeType) {\n case DOCUMENT_NODE:\n case DOCUMENT_FRAGMENT_NODE:\n {\n type = nodeType === DOCUMENT_NODE ? '#document' : '#fragment';\n var root = rootContainerInstance.documentElement;\n namespace = root ? root.namespaceURI : getChildNamespace(null, '');\n break;\n }\n\n default:\n {\n var container = nodeType === COMMENT_NODE ? rootContainerInstance.parentNode : rootContainerInstance;\n var ownNamespace = container.namespaceURI || null;\n type = container.tagName;\n namespace = getChildNamespace(ownNamespace, type);\n break;\n }\n }\n\n {\n var validatedTag = type.toLowerCase();\n var ancestorInfo = updatedAncestorInfo(null, validatedTag);\n return {\n namespace: namespace,\n ancestorInfo: ancestorInfo\n };\n }\n}\nfunction getChildHostContext(parentHostContext, type, rootContainerInstance) {\n {\n var parentHostContextDev = parentHostContext;\n var namespace = getChildNamespace(parentHostContextDev.namespace, type);\n var ancestorInfo = updatedAncestorInfo(parentHostContextDev.ancestorInfo, type);\n return {\n namespace: namespace,\n ancestorInfo: ancestorInfo\n };\n }\n}\nfunction getPublicInstance(instance) {\n return instance;\n}\nfunction prepareForCommit(containerInfo) {\n eventsEnabled = isEnabled();\n selectionInformation = getSelectionInformation();\n var activeInstance = null;\n\n setEnabled(false);\n return activeInstance;\n}\nfunction resetAfterCommit(containerInfo) {\n restoreSelection(selectionInformation);\n setEnabled(eventsEnabled);\n eventsEnabled = null;\n selectionInformation = null;\n}\nfunction createInstance(type, props, rootContainerInstance, hostContext, internalInstanceHandle) {\n var parentNamespace;\n\n {\n // TODO: take namespace into account when validating.\n var hostContextDev = hostContext;\n validateDOMNesting(type, null, hostContextDev.ancestorInfo);\n\n if (typeof props.children === 'string' || typeof props.children === 'number') {\n var string = '' + props.children;\n var ownAncestorInfo = updatedAncestorInfo(hostContextDev.ancestorInfo, type);\n validateDOMNesting(null, string, ownAncestorInfo);\n }\n\n parentNamespace = hostContextDev.namespace;\n }\n\n var domElement = createElement(type, props, rootContainerInstance, parentNamespace);\n precacheFiberNode(internalInstanceHandle, domElement);\n updateFiberProps(domElement, props);\n return domElement;\n}\nfunction appendInitialChild(parentInstance, child) {\n parentInstance.appendChild(child);\n}\nfunction finalizeInitialChildren(domElement, type, props, rootContainerInstance, hostContext) {\n setInitialProperties(domElement, type, props, rootContainerInstance);\n return shouldAutoFocusHostComponent(type, props);\n}\nfunction prepareUpdate(domElement, type, oldProps, newProps, rootContainerInstance, hostContext) {\n {\n var hostContextDev = hostContext;\n\n if (typeof newProps.children !== typeof oldProps.children && (typeof newProps.children === 'string' || typeof newProps.children === 'number')) {\n var string = '' + newProps.children;\n var ownAncestorInfo = updatedAncestorInfo(hostContextDev.ancestorInfo, type);\n validateDOMNesting(null, string, ownAncestorInfo);\n }\n }\n\n return diffProperties(domElement, type, oldProps, newProps);\n}\nfunction shouldSetTextContent(type, props) {\n return type === 'textarea' || type === 'option' || type === 'noscript' || typeof props.children === 'string' || typeof props.children === 'number' || typeof props.dangerouslySetInnerHTML === 'object' && props.dangerouslySetInnerHTML !== null && props.dangerouslySetInnerHTML.__html != null;\n}\nfunction createTextInstance(text, rootContainerInstance, hostContext, internalInstanceHandle) {\n {\n var hostContextDev = hostContext;\n validateDOMNesting(null, text, hostContextDev.ancestorInfo);\n }\n\n var textNode = createTextNode(text, rootContainerInstance);\n precacheFiberNode(internalInstanceHandle, textNode);\n return textNode;\n}\n// if a component just imports ReactDOM (e.g. for findDOMNode).\n// Some environments might not have setTimeout or clearTimeout.\n\nvar scheduleTimeout = typeof setTimeout === 'function' ? setTimeout : undefined;\nvar cancelTimeout = typeof clearTimeout === 'function' ? clearTimeout : undefined;\nvar noTimeout = -1; // -------------------\nfunction commitMount(domElement, type, newProps, internalInstanceHandle) {\n // Despite the naming that might imply otherwise, this method only\n // fires if there is an `Update` effect scheduled during mounting.\n // This happens if `finalizeInitialChildren` returns `true` (which it\n // does to implement the `autoFocus` attribute on the client). But\n // there are also other cases when this might happen (such as patching\n // up text content during hydration mismatch). So we'll check this again.\n if (shouldAutoFocusHostComponent(type, newProps)) {\n domElement.focus();\n }\n}\nfunction commitUpdate(domElement, updatePayload, type, oldProps, newProps, internalInstanceHandle) {\n // Update the props handle so that we know which props are the ones with\n // with current event handlers.\n updateFiberProps(domElement, newProps); // Apply the diff to the DOM node.\n\n updateProperties(domElement, updatePayload, type, oldProps, newProps);\n}\nfunction resetTextContent(domElement) {\n setTextContent(domElement, '');\n}\nfunction commitTextUpdate(textInstance, oldText, newText) {\n textInstance.nodeValue = newText;\n}\nfunction appendChild(parentInstance, child) {\n parentInstance.appendChild(child);\n}\nfunction appendChildToContainer(container, child) {\n var parentNode;\n\n if (container.nodeType === COMMENT_NODE) {\n parentNode = container.parentNode;\n parentNode.insertBefore(child, container);\n } else {\n parentNode = container;\n parentNode.appendChild(child);\n } // This container might be used for a portal.\n // If something inside a portal is clicked, that click should bubble\n // through the React tree. However, on Mobile Safari the click would\n // never bubble through the *DOM* tree unless an ancestor with onclick\n // event exists. So we wouldn't see it and dispatch it.\n // This is why we ensure that non React root containers have inline onclick\n // defined.\n // https://github.com/facebook/react/issues/11918\n\n\n var reactRootContainer = container._reactRootContainer;\n\n if ((reactRootContainer === null || reactRootContainer === undefined) && parentNode.onclick === null) {\n // TODO: This cast may not be sound for SVG, MathML or custom elements.\n trapClickOnNonInteractiveElement(parentNode);\n }\n}\nfunction insertBefore(parentInstance, child, beforeChild) {\n parentInstance.insertBefore(child, beforeChild);\n}\nfunction insertInContainerBefore(container, child, beforeChild) {\n if (container.nodeType === COMMENT_NODE) {\n container.parentNode.insertBefore(child, beforeChild);\n } else {\n container.insertBefore(child, beforeChild);\n }\n}\n\nfunction removeChild(parentInstance, child) {\n parentInstance.removeChild(child);\n}\nfunction removeChildFromContainer(container, child) {\n if (container.nodeType === COMMENT_NODE) {\n container.parentNode.removeChild(child);\n } else {\n container.removeChild(child);\n }\n}\nfunction hideInstance(instance) {\n // TODO: Does this work for all element types? What about MathML? Should we\n // pass host context to this method?\n instance = instance;\n var style = instance.style;\n\n if (typeof style.setProperty === 'function') {\n style.setProperty('display', 'none', 'important');\n } else {\n style.display = 'none';\n }\n}\nfunction hideTextInstance(textInstance) {\n textInstance.nodeValue = '';\n}\nfunction unhideInstance(instance, props) {\n instance = instance;\n var styleProp = props[STYLE$1];\n var display = styleProp !== undefined && styleProp !== null && styleProp.hasOwnProperty('display') ? styleProp.display : null;\n instance.style.display = dangerousStyleValue('display', display);\n}\nfunction unhideTextInstance(textInstance, text) {\n textInstance.nodeValue = text;\n}\nfunction clearContainer(container) {\n if (container.nodeType === ELEMENT_NODE) {\n container.textContent = '';\n } else if (container.nodeType === DOCUMENT_NODE) {\n var body = container.body;\n\n if (body != null) {\n body.textContent = '';\n }\n }\n} // -------------------\nfunction canHydrateInstance(instance, type, props) {\n if (instance.nodeType !== ELEMENT_NODE || type.toLowerCase() !== instance.nodeName.toLowerCase()) {\n return null;\n } // This has now been refined to an element node.\n\n\n return instance;\n}\nfunction canHydrateTextInstance(instance, text) {\n if (text === '' || instance.nodeType !== TEXT_NODE) {\n // Empty strings are not parsed by HTML so there won't be a correct match here.\n return null;\n } // This has now been refined to a text node.\n\n\n return instance;\n}\nfunction isSuspenseInstancePending(instance) {\n return instance.data === SUSPENSE_PENDING_START_DATA;\n}\nfunction isSuspenseInstanceFallback(instance) {\n return instance.data === SUSPENSE_FALLBACK_START_DATA;\n}\n\nfunction getNextHydratable(node) {\n // Skip non-hydratable nodes.\n for (; node != null; node = node.nextSibling) {\n var nodeType = node.nodeType;\n\n if (nodeType === ELEMENT_NODE || nodeType === TEXT_NODE) {\n break;\n }\n }\n\n return node;\n}\n\nfunction getNextHydratableSibling(instance) {\n return getNextHydratable(instance.nextSibling);\n}\nfunction getFirstHydratableChild(parentInstance) {\n return getNextHydratable(parentInstance.firstChild);\n}\nfunction hydrateInstance(instance, type, props, rootContainerInstance, hostContext, internalInstanceHandle) {\n precacheFiberNode(internalInstanceHandle, instance); // TODO: Possibly defer this until the commit phase where all the events\n // get attached.\n\n updateFiberProps(instance, props);\n var parentNamespace;\n\n {\n var hostContextDev = hostContext;\n parentNamespace = hostContextDev.namespace;\n }\n\n return diffHydratedProperties(instance, type, props, parentNamespace);\n}\nfunction hydrateTextInstance(textInstance, text, internalInstanceHandle) {\n precacheFiberNode(internalInstanceHandle, textInstance);\n return diffHydratedText(textInstance, text);\n}\nfunction getNextHydratableInstanceAfterSuspenseInstance(suspenseInstance) {\n var node = suspenseInstance.nextSibling; // Skip past all nodes within this suspense boundary.\n // There might be nested nodes so we need to keep track of how\n // deep we are and only break out when we're back on top.\n\n var depth = 0;\n\n while (node) {\n if (node.nodeType === COMMENT_NODE) {\n var data = node.data;\n\n if (data === SUSPENSE_END_DATA) {\n if (depth === 0) {\n return getNextHydratableSibling(node);\n } else {\n depth--;\n }\n } else if (data === SUSPENSE_START_DATA || data === SUSPENSE_FALLBACK_START_DATA || data === SUSPENSE_PENDING_START_DATA) {\n depth++;\n }\n }\n\n node = node.nextSibling;\n } // TODO: Warn, we didn't find the end comment boundary.\n\n\n return null;\n} // Returns the SuspenseInstance if this node is a direct child of a\n// SuspenseInstance. I.e. if its previous sibling is a Comment with\n// SUSPENSE_x_START_DATA. Otherwise, null.\n\nfunction getParentSuspenseInstance(targetInstance) {\n var node = targetInstance.previousSibling; // Skip past all nodes within this suspense boundary.\n // There might be nested nodes so we need to keep track of how\n // deep we are and only break out when we're back on top.\n\n var depth = 0;\n\n while (node) {\n if (node.nodeType === COMMENT_NODE) {\n var data = node.data;\n\n if (data === SUSPENSE_START_DATA || data === SUSPENSE_FALLBACK_START_DATA || data === SUSPENSE_PENDING_START_DATA) {\n if (depth === 0) {\n return node;\n } else {\n depth--;\n }\n } else if (data === SUSPENSE_END_DATA) {\n depth++;\n }\n }\n\n node = node.previousSibling;\n }\n\n return null;\n}\nfunction commitHydratedContainer(container) {\n // Retry if any event replaying was blocked on this.\n retryIfBlockedOn(container);\n}\nfunction commitHydratedSuspenseInstance(suspenseInstance) {\n // Retry if any event replaying was blocked on this.\n retryIfBlockedOn(suspenseInstance);\n}\nfunction didNotMatchHydratedContainerTextInstance(parentContainer, textInstance, text) {\n {\n warnForUnmatchedText(textInstance, text);\n }\n}\nfunction didNotMatchHydratedTextInstance(parentType, parentProps, parentInstance, textInstance, text) {\n if ( parentProps[SUPPRESS_HYDRATION_WARNING$1] !== true) {\n warnForUnmatchedText(textInstance, text);\n }\n}\nfunction didNotHydrateContainerInstance(parentContainer, instance) {\n {\n if (instance.nodeType === ELEMENT_NODE) {\n warnForDeletedHydratableElement(parentContainer, instance);\n } else if (instance.nodeType === COMMENT_NODE) ; else {\n warnForDeletedHydratableText(parentContainer, instance);\n }\n }\n}\nfunction didNotHydrateInstance(parentType, parentProps, parentInstance, instance) {\n if ( parentProps[SUPPRESS_HYDRATION_WARNING$1] !== true) {\n if (instance.nodeType === ELEMENT_NODE) {\n warnForDeletedHydratableElement(parentInstance, instance);\n } else if (instance.nodeType === COMMENT_NODE) ; else {\n warnForDeletedHydratableText(parentInstance, instance);\n }\n }\n}\nfunction didNotFindHydratableContainerInstance(parentContainer, type, props) {\n {\n warnForInsertedHydratedElement(parentContainer, type);\n }\n}\nfunction didNotFindHydratableContainerTextInstance(parentContainer, text) {\n {\n warnForInsertedHydratedText(parentContainer, text);\n }\n}\nfunction didNotFindHydratableInstance(parentType, parentProps, parentInstance, type, props) {\n if ( parentProps[SUPPRESS_HYDRATION_WARNING$1] !== true) {\n warnForInsertedHydratedElement(parentInstance, type);\n }\n}\nfunction didNotFindHydratableTextInstance(parentType, parentProps, parentInstance, text) {\n if ( parentProps[SUPPRESS_HYDRATION_WARNING$1] !== true) {\n warnForInsertedHydratedText(parentInstance, text);\n }\n}\nfunction didNotFindHydratableSuspenseInstance(parentType, parentProps, parentInstance) {\n if ( parentProps[SUPPRESS_HYDRATION_WARNING$1] !== true) ;\n}\nvar clientId = 0;\nfunction makeClientIdInDEV(warnOnAccessInDEV) {\n var id = 'r:' + (clientId++).toString(36);\n return {\n toString: function () {\n warnOnAccessInDEV();\n return id;\n },\n valueOf: function () {\n warnOnAccessInDEV();\n return id;\n }\n };\n}\nfunction isOpaqueHydratingObject(value) {\n return value !== null && typeof value === 'object' && value.$$typeof === REACT_OPAQUE_ID_TYPE;\n}\nfunction makeOpaqueHydratingObject(attemptToReadValue) {\n return {\n $$typeof: REACT_OPAQUE_ID_TYPE,\n toString: attemptToReadValue,\n valueOf: attemptToReadValue\n };\n}\nfunction preparePortalMount(portalInstance) {\n {\n listenToAllSupportedEvents(portalInstance);\n }\n}\n\nvar randomKey = Math.random().toString(36).slice(2);\nvar internalInstanceKey = '__reactFiber$' + randomKey;\nvar internalPropsKey = '__reactProps$' + randomKey;\nvar internalContainerInstanceKey = '__reactContainer$' + randomKey;\nvar internalEventHandlersKey = '__reactEvents$' + randomKey;\nfunction precacheFiberNode(hostInst, node) {\n node[internalInstanceKey] = hostInst;\n}\nfunction markContainerAsRoot(hostRoot, node) {\n node[internalContainerInstanceKey] = hostRoot;\n}\nfunction unmarkContainerAsRoot(node) {\n node[internalContainerInstanceKey] = null;\n}\nfunction isContainerMarkedAsRoot(node) {\n return !!node[internalContainerInstanceKey];\n} // Given a DOM node, return the closest HostComponent or HostText fiber ancestor.\n// If the target node is part of a hydrated or not yet rendered subtree, then\n// this may also return a SuspenseComponent or HostRoot to indicate that.\n// Conceptually the HostRoot fiber is a child of the Container node. So if you\n// pass the Container node as the targetNode, you will not actually get the\n// HostRoot back. To get to the HostRoot, you need to pass a child of it.\n// The same thing applies to Suspense boundaries.\n\nfunction getClosestInstanceFromNode(targetNode) {\n var targetInst = targetNode[internalInstanceKey];\n\n if (targetInst) {\n // Don't return HostRoot or SuspenseComponent here.\n return targetInst;\n } // If the direct event target isn't a React owned DOM node, we need to look\n // to see if one of its parents is a React owned DOM node.\n\n\n var parentNode = targetNode.parentNode;\n\n while (parentNode) {\n // We'll check if this is a container root that could include\n // React nodes in the future. We need to check this first because\n // if we're a child of a dehydrated container, we need to first\n // find that inner container before moving on to finding the parent\n // instance. Note that we don't check this field on the targetNode\n // itself because the fibers are conceptually between the container\n // node and the first child. It isn't surrounding the container node.\n // If it's not a container, we check if it's an instance.\n targetInst = parentNode[internalContainerInstanceKey] || parentNode[internalInstanceKey];\n\n if (targetInst) {\n // Since this wasn't the direct target of the event, we might have\n // stepped past dehydrated DOM nodes to get here. However they could\n // also have been non-React nodes. We need to answer which one.\n // If we the instance doesn't have any children, then there can't be\n // a nested suspense boundary within it. So we can use this as a fast\n // bailout. Most of the time, when people add non-React children to\n // the tree, it is using a ref to a child-less DOM node.\n // Normally we'd only need to check one of the fibers because if it\n // has ever gone from having children to deleting them or vice versa\n // it would have deleted the dehydrated boundary nested inside already.\n // However, since the HostRoot starts out with an alternate it might\n // have one on the alternate so we need to check in case this was a\n // root.\n var alternate = targetInst.alternate;\n\n if (targetInst.child !== null || alternate !== null && alternate.child !== null) {\n // Next we need to figure out if the node that skipped past is\n // nested within a dehydrated boundary and if so, which one.\n var suspenseInstance = getParentSuspenseInstance(targetNode);\n\n while (suspenseInstance !== null) {\n // We found a suspense instance. That means that we haven't\n // hydrated it yet. Even though we leave the comments in the\n // DOM after hydrating, and there are boundaries in the DOM\n // that could already be hydrated, we wouldn't have found them\n // through this pass since if the target is hydrated it would\n // have had an internalInstanceKey on it.\n // Let's get the fiber associated with the SuspenseComponent\n // as the deepest instance.\n var targetSuspenseInst = suspenseInstance[internalInstanceKey];\n\n if (targetSuspenseInst) {\n return targetSuspenseInst;\n } // If we don't find a Fiber on the comment, it might be because\n // we haven't gotten to hydrate it yet. There might still be a\n // parent boundary that hasn't above this one so we need to find\n // the outer most that is known.\n\n\n suspenseInstance = getParentSuspenseInstance(suspenseInstance); // If we don't find one, then that should mean that the parent\n // host component also hasn't hydrated yet. We can return it\n // below since it will bail out on the isMounted check later.\n }\n }\n\n return targetInst;\n }\n\n targetNode = parentNode;\n parentNode = targetNode.parentNode;\n }\n\n return null;\n}\n/**\n * Given a DOM node, return the ReactDOMComponent or ReactDOMTextComponent\n * instance, or null if the node was not rendered by this React.\n */\n\nfunction getInstanceFromNode(node) {\n var inst = node[internalInstanceKey] || node[internalContainerInstanceKey];\n\n if (inst) {\n if (inst.tag === HostComponent || inst.tag === HostText || inst.tag === SuspenseComponent || inst.tag === HostRoot) {\n return inst;\n } else {\n return null;\n }\n }\n\n return null;\n}\n/**\n * Given a ReactDOMComponent or ReactDOMTextComponent, return the corresponding\n * DOM node.\n */\n\nfunction getNodeFromInstance(inst) {\n if (inst.tag === HostComponent || inst.tag === HostText) {\n // In Fiber this, is just the state node right now. We assume it will be\n // a host component or host text.\n return inst.stateNode;\n } // Without this first invariant, passing a non-DOM-component triggers the next\n // invariant for a missing parent, which is super confusing.\n\n\n {\n {\n throw Error( \"getNodeFromInstance: Invalid argument.\" );\n }\n }\n}\nfunction getFiberCurrentPropsFromNode(node) {\n return node[internalPropsKey] || null;\n}\nfunction updateFiberProps(node, props) {\n node[internalPropsKey] = props;\n}\nfunction getEventListenerSet(node) {\n var elementListenerSet = node[internalEventHandlersKey];\n\n if (elementListenerSet === undefined) {\n elementListenerSet = node[internalEventHandlersKey] = new Set();\n }\n\n return elementListenerSet;\n}\n\nvar loggedTypeFailures = {};\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n }\n }\n}\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\n {\n // $FlowFixMe This is okay but Flow doesn't know it.\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n } catch (ex) {\n error$1 = ex;\n }\n\n if (error$1 && !(error$1 instanceof Error)) {\n setCurrentlyValidatingElement(element);\n\n error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n\n setCurrentlyValidatingElement(null);\n }\n\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error$1.message] = true;\n setCurrentlyValidatingElement(element);\n\n error('Failed %s type: %s', location, error$1.message);\n\n setCurrentlyValidatingElement(null);\n }\n }\n }\n }\n}\n\nvar valueStack = [];\nvar fiberStack;\n\n{\n fiberStack = [];\n}\n\nvar index = -1;\n\nfunction createCursor(defaultValue) {\n return {\n current: defaultValue\n };\n}\n\nfunction pop(cursor, fiber) {\n if (index < 0) {\n {\n error('Unexpected pop.');\n }\n\n return;\n }\n\n {\n if (fiber !== fiberStack[index]) {\n error('Unexpected Fiber popped.');\n }\n }\n\n cursor.current = valueStack[index];\n valueStack[index] = null;\n\n {\n fiberStack[index] = null;\n }\n\n index--;\n}\n\nfunction push(cursor, value, fiber) {\n index++;\n valueStack[index] = cursor.current;\n\n {\n fiberStack[index] = fiber;\n }\n\n cursor.current = value;\n}\n\nvar warnedAboutMissingGetChildContext;\n\n{\n warnedAboutMissingGetChildContext = {};\n}\n\nvar emptyContextObject = {};\n\n{\n Object.freeze(emptyContextObject);\n} // A cursor to the current merged context object on the stack.\n\n\nvar contextStackCursor = createCursor(emptyContextObject); // A cursor to a boolean indicating whether the context has changed.\n\nvar didPerformWorkStackCursor = createCursor(false); // Keep track of the previous context object that was on the stack.\n// We use this to get access to the parent context after we have already\n// pushed the next context provider, and now need to merge their contexts.\n\nvar previousContext = emptyContextObject;\n\nfunction getUnmaskedContext(workInProgress, Component, didPushOwnContextIfProvider) {\n {\n if (didPushOwnContextIfProvider && isContextProvider(Component)) {\n // If the fiber is a context provider itself, when we read its context\n // we may have already pushed its own child context on the stack. A context\n // provider should not \"see\" its own child context. Therefore we read the\n // previous (parent) context instead for a context provider.\n return previousContext;\n }\n\n return contextStackCursor.current;\n }\n}\n\nfunction cacheContext(workInProgress, unmaskedContext, maskedContext) {\n {\n var instance = workInProgress.stateNode;\n instance.__reactInternalMemoizedUnmaskedChildContext = unmaskedContext;\n instance.__reactInternalMemoizedMaskedChildContext = maskedContext;\n }\n}\n\nfunction getMaskedContext(workInProgress, unmaskedContext) {\n {\n var type = workInProgress.type;\n var contextTypes = type.contextTypes;\n\n if (!contextTypes) {\n return emptyContextObject;\n } // Avoid recreating masked context unless unmasked context has changed.\n // Failing to do this will result in unnecessary calls to componentWillReceiveProps.\n // This may trigger infinite loops if componentWillReceiveProps calls setState.\n\n\n var instance = workInProgress.stateNode;\n\n if (instance && instance.__reactInternalMemoizedUnmaskedChildContext === unmaskedContext) {\n return instance.__reactInternalMemoizedMaskedChildContext;\n }\n\n var context = {};\n\n for (var key in contextTypes) {\n context[key] = unmaskedContext[key];\n }\n\n {\n var name = getComponentName(type) || 'Unknown';\n checkPropTypes(contextTypes, context, 'context', name);\n } // Cache unmasked context so we can avoid recreating masked context unless necessary.\n // Context is created before the class component is instantiated so check for instance.\n\n\n if (instance) {\n cacheContext(workInProgress, unmaskedContext, context);\n }\n\n return context;\n }\n}\n\nfunction hasContextChanged() {\n {\n return didPerformWorkStackCursor.current;\n }\n}\n\nfunction isContextProvider(type) {\n {\n var childContextTypes = type.childContextTypes;\n return childContextTypes !== null && childContextTypes !== undefined;\n }\n}\n\nfunction popContext(fiber) {\n {\n pop(didPerformWorkStackCursor, fiber);\n pop(contextStackCursor, fiber);\n }\n}\n\nfunction popTopLevelContextObject(fiber) {\n {\n pop(didPerformWorkStackCursor, fiber);\n pop(contextStackCursor, fiber);\n }\n}\n\nfunction pushTopLevelContextObject(fiber, context, didChange) {\n {\n if (!(contextStackCursor.current === emptyContextObject)) {\n {\n throw Error( \"Unexpected context found on stack. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n\n push(contextStackCursor, context, fiber);\n push(didPerformWorkStackCursor, didChange, fiber);\n }\n}\n\nfunction processChildContext(fiber, type, parentContext) {\n {\n var instance = fiber.stateNode;\n var childContextTypes = type.childContextTypes; // TODO (bvaughn) Replace this behavior with an invariant() in the future.\n // It has only been added in Fiber to match the (unintentional) behavior in Stack.\n\n if (typeof instance.getChildContext !== 'function') {\n {\n var componentName = getComponentName(type) || 'Unknown';\n\n if (!warnedAboutMissingGetChildContext[componentName]) {\n warnedAboutMissingGetChildContext[componentName] = true;\n\n error('%s.childContextTypes is specified but there is no getChildContext() method ' + 'on the instance. You can either define getChildContext() on %s or remove ' + 'childContextTypes from it.', componentName, componentName);\n }\n }\n\n return parentContext;\n }\n\n var childContext = instance.getChildContext();\n\n for (var contextKey in childContext) {\n if (!(contextKey in childContextTypes)) {\n {\n throw Error( (getComponentName(type) || 'Unknown') + \".getChildContext(): key \\\"\" + contextKey + \"\\\" is not defined in childContextTypes.\" );\n }\n }\n }\n\n {\n var name = getComponentName(type) || 'Unknown';\n checkPropTypes(childContextTypes, childContext, 'child context', name);\n }\n\n return _assign({}, parentContext, childContext);\n }\n}\n\nfunction pushContextProvider(workInProgress) {\n {\n var instance = workInProgress.stateNode; // We push the context as early as possible to ensure stack integrity.\n // If the instance does not exist yet, we will push null at first,\n // and replace it on the stack later when invalidating the context.\n\n var memoizedMergedChildContext = instance && instance.__reactInternalMemoizedMergedChildContext || emptyContextObject; // Remember the parent context so we can merge with it later.\n // Inherit the parent's did-perform-work value to avoid inadvertently blocking updates.\n\n previousContext = contextStackCursor.current;\n push(contextStackCursor, memoizedMergedChildContext, workInProgress);\n push(didPerformWorkStackCursor, didPerformWorkStackCursor.current, workInProgress);\n return true;\n }\n}\n\nfunction invalidateContextProvider(workInProgress, type, didChange) {\n {\n var instance = workInProgress.stateNode;\n\n if (!instance) {\n {\n throw Error( \"Expected to have an instance by this point. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n\n if (didChange) {\n // Merge parent and own context.\n // Skip this if we're not updating due to sCU.\n // This avoids unnecessarily recomputing memoized values.\n var mergedContext = processChildContext(workInProgress, type, previousContext);\n instance.__reactInternalMemoizedMergedChildContext = mergedContext; // Replace the old (or empty) context with the new one.\n // It is important to unwind the context in the reverse order.\n\n pop(didPerformWorkStackCursor, workInProgress);\n pop(contextStackCursor, workInProgress); // Now push the new context and mark that it has changed.\n\n push(contextStackCursor, mergedContext, workInProgress);\n push(didPerformWorkStackCursor, didChange, workInProgress);\n } else {\n pop(didPerformWorkStackCursor, workInProgress);\n push(didPerformWorkStackCursor, didChange, workInProgress);\n }\n }\n}\n\nfunction findCurrentUnmaskedContext(fiber) {\n {\n // Currently this is only used with renderSubtreeIntoContainer; not sure if it\n // makes sense elsewhere\n if (!(isFiberMounted(fiber) && fiber.tag === ClassComponent)) {\n {\n throw Error( \"Expected subtree parent to be a mounted class component. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n\n var node = fiber;\n\n do {\n switch (node.tag) {\n case HostRoot:\n return node.stateNode.context;\n\n case ClassComponent:\n {\n var Component = node.type;\n\n if (isContextProvider(Component)) {\n return node.stateNode.__reactInternalMemoizedMergedChildContext;\n }\n\n break;\n }\n }\n\n node = node.return;\n } while (node !== null);\n\n {\n {\n throw Error( \"Found unexpected detached subtree parent. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n }\n}\n\nvar LegacyRoot = 0;\nvar BlockingRoot = 1;\nvar ConcurrentRoot = 2;\n\nvar rendererID = null;\nvar injectedHook = null;\nvar hasLoggedError = false;\nvar isDevToolsPresent = typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined';\nfunction injectInternals(internals) {\n if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined') {\n // No DevTools\n return false;\n }\n\n var hook = __REACT_DEVTOOLS_GLOBAL_HOOK__;\n\n if (hook.isDisabled) {\n // This isn't a real property on the hook, but it can be set to opt out\n // of DevTools integration and associated warnings and logs.\n // https://github.com/facebook/react/issues/3877\n return true;\n }\n\n if (!hook.supportsFiber) {\n {\n error('The installed version of React DevTools is too old and will not work ' + 'with the current version of React. Please update React DevTools. ' + 'https://reactjs.org/link/react-devtools');\n } // DevTools exists, even though it doesn't support Fiber.\n\n\n return true;\n }\n\n try {\n rendererID = hook.inject(internals); // We have successfully injected, so now it is safe to set up hooks.\n\n injectedHook = hook;\n } catch (err) {\n // Catch all errors because it is unsafe to throw during initialization.\n {\n error('React instrumentation encountered an error: %s.', err);\n }\n } // DevTools exists\n\n\n return true;\n}\nfunction onScheduleRoot(root, children) {\n {\n if (injectedHook && typeof injectedHook.onScheduleFiberRoot === 'function') {\n try {\n injectedHook.onScheduleFiberRoot(rendererID, root, children);\n } catch (err) {\n if ( !hasLoggedError) {\n hasLoggedError = true;\n\n error('React instrumentation encountered an error: %s', err);\n }\n }\n }\n }\n}\nfunction onCommitRoot(root, priorityLevel) {\n if (injectedHook && typeof injectedHook.onCommitFiberRoot === 'function') {\n try {\n var didError = (root.current.flags & DidCapture) === DidCapture;\n\n if (enableProfilerTimer) {\n injectedHook.onCommitFiberRoot(rendererID, root, priorityLevel, didError);\n } else {\n injectedHook.onCommitFiberRoot(rendererID, root, undefined, didError);\n }\n } catch (err) {\n {\n if (!hasLoggedError) {\n hasLoggedError = true;\n\n error('React instrumentation encountered an error: %s', err);\n }\n }\n }\n }\n}\nfunction onCommitUnmount(fiber) {\n if (injectedHook && typeof injectedHook.onCommitFiberUnmount === 'function') {\n try {\n injectedHook.onCommitFiberUnmount(rendererID, fiber);\n } catch (err) {\n {\n if (!hasLoggedError) {\n hasLoggedError = true;\n\n error('React instrumentation encountered an error: %s', err);\n }\n }\n }\n }\n}\n\nvar Scheduler_runWithPriority = Scheduler.unstable_runWithPriority,\n Scheduler_scheduleCallback = Scheduler.unstable_scheduleCallback,\n Scheduler_cancelCallback = Scheduler.unstable_cancelCallback,\n Scheduler_shouldYield = Scheduler.unstable_shouldYield,\n Scheduler_requestPaint = Scheduler.unstable_requestPaint,\n Scheduler_now$1 = Scheduler.unstable_now,\n Scheduler_getCurrentPriorityLevel = Scheduler.unstable_getCurrentPriorityLevel,\n Scheduler_ImmediatePriority = Scheduler.unstable_ImmediatePriority,\n Scheduler_UserBlockingPriority = Scheduler.unstable_UserBlockingPriority,\n Scheduler_NormalPriority = Scheduler.unstable_NormalPriority,\n Scheduler_LowPriority = Scheduler.unstable_LowPriority,\n Scheduler_IdlePriority = Scheduler.unstable_IdlePriority;\n\n{\n // Provide explicit error message when production+profiling bundle of e.g.\n // react-dom is used with production (non-profiling) bundle of\n // scheduler/tracing\n if (!(tracing.__interactionsRef != null && tracing.__interactionsRef.current != null)) {\n {\n throw Error( \"It is not supported to run the profiling version of a renderer (for example, `react-dom/profiling`) without also replacing the `scheduler/tracing` module with `scheduler/tracing-profiling`. Your bundler might have a setting for aliasing both modules. Learn more at https://reactjs.org/link/profiling\" );\n }\n }\n}\n\nvar fakeCallbackNode = {}; // Except for NoPriority, these correspond to Scheduler priorities. We use\n// ascending numbers so we can compare them like numbers. They start at 90 to\n// avoid clashing with Scheduler's priorities.\n\nvar ImmediatePriority$1 = 99;\nvar UserBlockingPriority$2 = 98;\nvar NormalPriority$1 = 97;\nvar LowPriority$1 = 96;\nvar IdlePriority$1 = 95; // NoPriority is the absence of priority. Also React-only.\n\nvar NoPriority$1 = 90;\nvar shouldYield = Scheduler_shouldYield;\nvar requestPaint = // Fall back gracefully if we're running an older version of Scheduler.\nScheduler_requestPaint !== undefined ? Scheduler_requestPaint : function () {};\nvar syncQueue = null;\nvar immediateQueueCallbackNode = null;\nvar isFlushingSyncQueue = false;\nvar initialTimeMs$1 = Scheduler_now$1(); // If the initial timestamp is reasonably small, use Scheduler's `now` directly.\n// This will be the case for modern browsers that support `performance.now`. In\n// older browsers, Scheduler falls back to `Date.now`, which returns a Unix\n// timestamp. In that case, subtract the module initialization time to simulate\n// the behavior of performance.now and keep our times small enough to fit\n// within 32 bits.\n// TODO: Consider lifting this into Scheduler.\n\nvar now = initialTimeMs$1 < 10000 ? Scheduler_now$1 : function () {\n return Scheduler_now$1() - initialTimeMs$1;\n};\nfunction getCurrentPriorityLevel() {\n switch (Scheduler_getCurrentPriorityLevel()) {\n case Scheduler_ImmediatePriority:\n return ImmediatePriority$1;\n\n case Scheduler_UserBlockingPriority:\n return UserBlockingPriority$2;\n\n case Scheduler_NormalPriority:\n return NormalPriority$1;\n\n case Scheduler_LowPriority:\n return LowPriority$1;\n\n case Scheduler_IdlePriority:\n return IdlePriority$1;\n\n default:\n {\n {\n throw Error( \"Unknown priority level.\" );\n }\n }\n\n }\n}\n\nfunction reactPriorityToSchedulerPriority(reactPriorityLevel) {\n switch (reactPriorityLevel) {\n case ImmediatePriority$1:\n return Scheduler_ImmediatePriority;\n\n case UserBlockingPriority$2:\n return Scheduler_UserBlockingPriority;\n\n case NormalPriority$1:\n return Scheduler_NormalPriority;\n\n case LowPriority$1:\n return Scheduler_LowPriority;\n\n case IdlePriority$1:\n return Scheduler_IdlePriority;\n\n default:\n {\n {\n throw Error( \"Unknown priority level.\" );\n }\n }\n\n }\n}\n\nfunction runWithPriority$1(reactPriorityLevel, fn) {\n var priorityLevel = reactPriorityToSchedulerPriority(reactPriorityLevel);\n return Scheduler_runWithPriority(priorityLevel, fn);\n}\nfunction scheduleCallback(reactPriorityLevel, callback, options) {\n var priorityLevel = reactPriorityToSchedulerPriority(reactPriorityLevel);\n return Scheduler_scheduleCallback(priorityLevel, callback, options);\n}\nfunction scheduleSyncCallback(callback) {\n // Push this callback into an internal queue. We'll flush these either in\n // the next tick, or earlier if something calls `flushSyncCallbackQueue`.\n if (syncQueue === null) {\n syncQueue = [callback]; // Flush the queue in the next tick, at the earliest.\n\n immediateQueueCallbackNode = Scheduler_scheduleCallback(Scheduler_ImmediatePriority, flushSyncCallbackQueueImpl);\n } else {\n // Push onto existing queue. Don't need to schedule a callback because\n // we already scheduled one when we created the queue.\n syncQueue.push(callback);\n }\n\n return fakeCallbackNode;\n}\nfunction cancelCallback(callbackNode) {\n if (callbackNode !== fakeCallbackNode) {\n Scheduler_cancelCallback(callbackNode);\n }\n}\nfunction flushSyncCallbackQueue() {\n if (immediateQueueCallbackNode !== null) {\n var node = immediateQueueCallbackNode;\n immediateQueueCallbackNode = null;\n Scheduler_cancelCallback(node);\n }\n\n flushSyncCallbackQueueImpl();\n}\n\nfunction flushSyncCallbackQueueImpl() {\n if (!isFlushingSyncQueue && syncQueue !== null) {\n // Prevent re-entrancy.\n isFlushingSyncQueue = true;\n var i = 0;\n\n {\n try {\n var _isSync2 = true;\n var _queue = syncQueue;\n runWithPriority$1(ImmediatePriority$1, function () {\n for (; i < _queue.length; i++) {\n var callback = _queue[i];\n\n do {\n callback = callback(_isSync2);\n } while (callback !== null);\n }\n });\n syncQueue = null;\n } catch (error) {\n // If something throws, leave the remaining callbacks on the queue.\n if (syncQueue !== null) {\n syncQueue = syncQueue.slice(i + 1);\n } // Resume flushing in the next tick\n\n\n Scheduler_scheduleCallback(Scheduler_ImmediatePriority, flushSyncCallbackQueue);\n throw error;\n } finally {\n isFlushingSyncQueue = false;\n }\n }\n }\n}\n\n// TODO: this is special because it gets imported during build.\nvar ReactVersion = '17.0.2';\n\nvar NoMode = 0;\nvar StrictMode = 1; // TODO: Remove BlockingMode and ConcurrentMode by reading from the root\n// tag instead\n\nvar BlockingMode = 2;\nvar ConcurrentMode = 4;\nvar ProfileMode = 8;\nvar DebugTracingMode = 16;\n\nvar ReactCurrentBatchConfig = ReactSharedInternals.ReactCurrentBatchConfig;\nvar NoTransition = 0;\nfunction requestCurrentTransition() {\n return ReactCurrentBatchConfig.transition;\n}\n\nvar ReactStrictModeWarnings = {\n recordUnsafeLifecycleWarnings: function (fiber, instance) {},\n flushPendingUnsafeLifecycleWarnings: function () {},\n recordLegacyContextWarning: function (fiber, instance) {},\n flushLegacyContextWarning: function () {},\n discardPendingWarnings: function () {}\n};\n\n{\n var findStrictRoot = function (fiber) {\n var maybeStrictRoot = null;\n var node = fiber;\n\n while (node !== null) {\n if (node.mode & StrictMode) {\n maybeStrictRoot = node;\n }\n\n node = node.return;\n }\n\n return maybeStrictRoot;\n };\n\n var setToSortedString = function (set) {\n var array = [];\n set.forEach(function (value) {\n array.push(value);\n });\n return array.sort().join(', ');\n };\n\n var pendingComponentWillMountWarnings = [];\n var pendingUNSAFE_ComponentWillMountWarnings = [];\n var pendingComponentWillReceivePropsWarnings = [];\n var pendingUNSAFE_ComponentWillReceivePropsWarnings = [];\n var pendingComponentWillUpdateWarnings = [];\n var pendingUNSAFE_ComponentWillUpdateWarnings = []; // Tracks components we have already warned about.\n\n var didWarnAboutUnsafeLifecycles = new Set();\n\n ReactStrictModeWarnings.recordUnsafeLifecycleWarnings = function (fiber, instance) {\n // Dedup strategy: Warn once per component.\n if (didWarnAboutUnsafeLifecycles.has(fiber.type)) {\n return;\n }\n\n if (typeof instance.componentWillMount === 'function' && // Don't warn about react-lifecycles-compat polyfilled components.\n instance.componentWillMount.__suppressDeprecationWarning !== true) {\n pendingComponentWillMountWarnings.push(fiber);\n }\n\n if (fiber.mode & StrictMode && typeof instance.UNSAFE_componentWillMount === 'function') {\n pendingUNSAFE_ComponentWillMountWarnings.push(fiber);\n }\n\n if (typeof instance.componentWillReceiveProps === 'function' && instance.componentWillReceiveProps.__suppressDeprecationWarning !== true) {\n pendingComponentWillReceivePropsWarnings.push(fiber);\n }\n\n if (fiber.mode & StrictMode && typeof instance.UNSAFE_componentWillReceiveProps === 'function') {\n pendingUNSAFE_ComponentWillReceivePropsWarnings.push(fiber);\n }\n\n if (typeof instance.componentWillUpdate === 'function' && instance.componentWillUpdate.__suppressDeprecationWarning !== true) {\n pendingComponentWillUpdateWarnings.push(fiber);\n }\n\n if (fiber.mode & StrictMode && typeof instance.UNSAFE_componentWillUpdate === 'function') {\n pendingUNSAFE_ComponentWillUpdateWarnings.push(fiber);\n }\n };\n\n ReactStrictModeWarnings.flushPendingUnsafeLifecycleWarnings = function () {\n // We do an initial pass to gather component names\n var componentWillMountUniqueNames = new Set();\n\n if (pendingComponentWillMountWarnings.length > 0) {\n pendingComponentWillMountWarnings.forEach(function (fiber) {\n componentWillMountUniqueNames.add(getComponentName(fiber.type) || 'Component');\n didWarnAboutUnsafeLifecycles.add(fiber.type);\n });\n pendingComponentWillMountWarnings = [];\n }\n\n var UNSAFE_componentWillMountUniqueNames = new Set();\n\n if (pendingUNSAFE_ComponentWillMountWarnings.length > 0) {\n pendingUNSAFE_ComponentWillMountWarnings.forEach(function (fiber) {\n UNSAFE_componentWillMountUniqueNames.add(getComponentName(fiber.type) || 'Component');\n didWarnAboutUnsafeLifecycles.add(fiber.type);\n });\n pendingUNSAFE_ComponentWillMountWarnings = [];\n }\n\n var componentWillReceivePropsUniqueNames = new Set();\n\n if (pendingComponentWillReceivePropsWarnings.length > 0) {\n pendingComponentWillReceivePropsWarnings.forEach(function (fiber) {\n componentWillReceivePropsUniqueNames.add(getComponentName(fiber.type) || 'Component');\n didWarnAboutUnsafeLifecycles.add(fiber.type);\n });\n pendingComponentWillReceivePropsWarnings = [];\n }\n\n var UNSAFE_componentWillReceivePropsUniqueNames = new Set();\n\n if (pendingUNSAFE_ComponentWillReceivePropsWarnings.length > 0) {\n pendingUNSAFE_ComponentWillReceivePropsWarnings.forEach(function (fiber) {\n UNSAFE_componentWillReceivePropsUniqueNames.add(getComponentName(fiber.type) || 'Component');\n didWarnAboutUnsafeLifecycles.add(fiber.type);\n });\n pendingUNSAFE_ComponentWillReceivePropsWarnings = [];\n }\n\n var componentWillUpdateUniqueNames = new Set();\n\n if (pendingComponentWillUpdateWarnings.length > 0) {\n pendingComponentWillUpdateWarnings.forEach(function (fiber) {\n componentWillUpdateUniqueNames.add(getComponentName(fiber.type) || 'Component');\n didWarnAboutUnsafeLifecycles.add(fiber.type);\n });\n pendingComponentWillUpdateWarnings = [];\n }\n\n var UNSAFE_componentWillUpdateUniqueNames = new Set();\n\n if (pendingUNSAFE_ComponentWillUpdateWarnings.length > 0) {\n pendingUNSAFE_ComponentWillUpdateWarnings.forEach(function (fiber) {\n UNSAFE_componentWillUpdateUniqueNames.add(getComponentName(fiber.type) || 'Component');\n didWarnAboutUnsafeLifecycles.add(fiber.type);\n });\n pendingUNSAFE_ComponentWillUpdateWarnings = [];\n } // Finally, we flush all the warnings\n // UNSAFE_ ones before the deprecated ones, since they'll be 'louder'\n\n\n if (UNSAFE_componentWillMountUniqueNames.size > 0) {\n var sortedNames = setToSortedString(UNSAFE_componentWillMountUniqueNames);\n\n error('Using UNSAFE_componentWillMount in strict mode is not recommended and may indicate bugs in your code. ' + 'See https://reactjs.org/link/unsafe-component-lifecycles for details.\\n\\n' + '* Move code with side effects to componentDidMount, and set initial state in the constructor.\\n' + '\\nPlease update the following components: %s', sortedNames);\n }\n\n if (UNSAFE_componentWillReceivePropsUniqueNames.size > 0) {\n var _sortedNames = setToSortedString(UNSAFE_componentWillReceivePropsUniqueNames);\n\n error('Using UNSAFE_componentWillReceiveProps in strict mode is not recommended ' + 'and may indicate bugs in your code. ' + 'See https://reactjs.org/link/unsafe-component-lifecycles for details.\\n\\n' + '* Move data fetching code or side effects to componentDidUpdate.\\n' + \"* If you're updating state whenever props change, \" + 'refactor your code to use memoization techniques or move it to ' + 'static getDerivedStateFromProps. Learn more at: https://reactjs.org/link/derived-state\\n' + '\\nPlease update the following components: %s', _sortedNames);\n }\n\n if (UNSAFE_componentWillUpdateUniqueNames.size > 0) {\n var _sortedNames2 = setToSortedString(UNSAFE_componentWillUpdateUniqueNames);\n\n error('Using UNSAFE_componentWillUpdate in strict mode is not recommended ' + 'and may indicate bugs in your code. ' + 'See https://reactjs.org/link/unsafe-component-lifecycles for details.\\n\\n' + '* Move data fetching code or side effects to componentDidUpdate.\\n' + '\\nPlease update the following components: %s', _sortedNames2);\n }\n\n if (componentWillMountUniqueNames.size > 0) {\n var _sortedNames3 = setToSortedString(componentWillMountUniqueNames);\n\n warn('componentWillMount has been renamed, and is not recommended for use. ' + 'See https://reactjs.org/link/unsafe-component-lifecycles for details.\\n\\n' + '* Move code with side effects to componentDidMount, and set initial state in the constructor.\\n' + '* Rename componentWillMount to UNSAFE_componentWillMount to suppress ' + 'this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. ' + 'To rename all deprecated lifecycles to their new names, you can run ' + '`npx react-codemod rename-unsafe-lifecycles` in your project source folder.\\n' + '\\nPlease update the following components: %s', _sortedNames3);\n }\n\n if (componentWillReceivePropsUniqueNames.size > 0) {\n var _sortedNames4 = setToSortedString(componentWillReceivePropsUniqueNames);\n\n warn('componentWillReceiveProps has been renamed, and is not recommended for use. ' + 'See https://reactjs.org/link/unsafe-component-lifecycles for details.\\n\\n' + '* Move data fetching code or side effects to componentDidUpdate.\\n' + \"* If you're updating state whenever props change, refactor your \" + 'code to use memoization techniques or move it to ' + 'static getDerivedStateFromProps. Learn more at: https://reactjs.org/link/derived-state\\n' + '* Rename componentWillReceiveProps to UNSAFE_componentWillReceiveProps to suppress ' + 'this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. ' + 'To rename all deprecated lifecycles to their new names, you can run ' + '`npx react-codemod rename-unsafe-lifecycles` in your project source folder.\\n' + '\\nPlease update the following components: %s', _sortedNames4);\n }\n\n if (componentWillUpdateUniqueNames.size > 0) {\n var _sortedNames5 = setToSortedString(componentWillUpdateUniqueNames);\n\n warn('componentWillUpdate has been renamed, and is not recommended for use. ' + 'See https://reactjs.org/link/unsafe-component-lifecycles for details.\\n\\n' + '* Move data fetching code or side effects to componentDidUpdate.\\n' + '* Rename componentWillUpdate to UNSAFE_componentWillUpdate to suppress ' + 'this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. ' + 'To rename all deprecated lifecycles to their new names, you can run ' + '`npx react-codemod rename-unsafe-lifecycles` in your project source folder.\\n' + '\\nPlease update the following components: %s', _sortedNames5);\n }\n };\n\n var pendingLegacyContextWarning = new Map(); // Tracks components we have already warned about.\n\n var didWarnAboutLegacyContext = new Set();\n\n ReactStrictModeWarnings.recordLegacyContextWarning = function (fiber, instance) {\n var strictRoot = findStrictRoot(fiber);\n\n if (strictRoot === null) {\n error('Expected to find a StrictMode component in a strict mode tree. ' + 'This error is likely caused by a bug in React. Please file an issue.');\n\n return;\n } // Dedup strategy: Warn once per component.\n\n\n if (didWarnAboutLegacyContext.has(fiber.type)) {\n return;\n }\n\n var warningsForRoot = pendingLegacyContextWarning.get(strictRoot);\n\n if (fiber.type.contextTypes != null || fiber.type.childContextTypes != null || instance !== null && typeof instance.getChildContext === 'function') {\n if (warningsForRoot === undefined) {\n warningsForRoot = [];\n pendingLegacyContextWarning.set(strictRoot, warningsForRoot);\n }\n\n warningsForRoot.push(fiber);\n }\n };\n\n ReactStrictModeWarnings.flushLegacyContextWarning = function () {\n pendingLegacyContextWarning.forEach(function (fiberArray, strictRoot) {\n if (fiberArray.length === 0) {\n return;\n }\n\n var firstFiber = fiberArray[0];\n var uniqueNames = new Set();\n fiberArray.forEach(function (fiber) {\n uniqueNames.add(getComponentName(fiber.type) || 'Component');\n didWarnAboutLegacyContext.add(fiber.type);\n });\n var sortedNames = setToSortedString(uniqueNames);\n\n try {\n setCurrentFiber(firstFiber);\n\n error('Legacy context API has been detected within a strict-mode tree.' + '\\n\\nThe old API will be supported in all 16.x releases, but applications ' + 'using it should migrate to the new version.' + '\\n\\nPlease update the following components: %s' + '\\n\\nLearn more about this warning here: https://reactjs.org/link/legacy-context', sortedNames);\n } finally {\n resetCurrentFiber();\n }\n });\n };\n\n ReactStrictModeWarnings.discardPendingWarnings = function () {\n pendingComponentWillMountWarnings = [];\n pendingUNSAFE_ComponentWillMountWarnings = [];\n pendingComponentWillReceivePropsWarnings = [];\n pendingUNSAFE_ComponentWillReceivePropsWarnings = [];\n pendingComponentWillUpdateWarnings = [];\n pendingUNSAFE_ComponentWillUpdateWarnings = [];\n pendingLegacyContextWarning = new Map();\n };\n}\n\nfunction resolveDefaultProps(Component, baseProps) {\n if (Component && Component.defaultProps) {\n // Resolve default props. Taken from ReactElement\n var props = _assign({}, baseProps);\n\n var defaultProps = Component.defaultProps;\n\n for (var propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n\n return props;\n }\n\n return baseProps;\n}\n\n// Max 31 bit integer. The max integer size in V8 for 32-bit systems.\n// Math.pow(2, 30) - 1\n// 0b111111111111111111111111111111\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\n\nvar valueCursor = createCursor(null);\nvar rendererSigil;\n\n{\n // Use this to detect multiple renderers using the same context\n rendererSigil = {};\n}\n\nvar currentlyRenderingFiber = null;\nvar lastContextDependency = null;\nvar lastContextWithAllBitsObserved = null;\nvar isDisallowedContextReadInDEV = false;\nfunction resetContextDependencies() {\n // This is called right before React yields execution, to ensure `readContext`\n // cannot be called outside the render phase.\n currentlyRenderingFiber = null;\n lastContextDependency = null;\n lastContextWithAllBitsObserved = null;\n\n {\n isDisallowedContextReadInDEV = false;\n }\n}\nfunction enterDisallowedContextReadInDEV() {\n {\n isDisallowedContextReadInDEV = true;\n }\n}\nfunction exitDisallowedContextReadInDEV() {\n {\n isDisallowedContextReadInDEV = false;\n }\n}\nfunction pushProvider(providerFiber, nextValue) {\n var context = providerFiber.type._context;\n\n {\n push(valueCursor, context._currentValue, providerFiber);\n context._currentValue = nextValue;\n\n {\n if (context._currentRenderer !== undefined && context._currentRenderer !== null && context._currentRenderer !== rendererSigil) {\n error('Detected multiple renderers concurrently rendering the ' + 'same context provider. This is currently unsupported.');\n }\n\n context._currentRenderer = rendererSigil;\n }\n }\n}\nfunction popProvider(providerFiber) {\n var currentValue = valueCursor.current;\n pop(valueCursor, providerFiber);\n var context = providerFiber.type._context;\n\n {\n context._currentValue = currentValue;\n }\n}\nfunction calculateChangedBits(context, newValue, oldValue) {\n if (objectIs(oldValue, newValue)) {\n // No change\n return 0;\n } else {\n var changedBits = typeof context._calculateChangedBits === 'function' ? context._calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n {\n if ((changedBits & MAX_SIGNED_31_BIT_INT) !== changedBits) {\n error('calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: %s', changedBits);\n }\n }\n\n return changedBits | 0;\n }\n}\nfunction scheduleWorkOnParentPath(parent, renderLanes) {\n // Update the child lanes of all the ancestors, including the alternates.\n var node = parent;\n\n while (node !== null) {\n var alternate = node.alternate;\n\n if (!isSubsetOfLanes(node.childLanes, renderLanes)) {\n node.childLanes = mergeLanes(node.childLanes, renderLanes);\n\n if (alternate !== null) {\n alternate.childLanes = mergeLanes(alternate.childLanes, renderLanes);\n }\n } else if (alternate !== null && !isSubsetOfLanes(alternate.childLanes, renderLanes)) {\n alternate.childLanes = mergeLanes(alternate.childLanes, renderLanes);\n } else {\n // Neither alternate was updated, which means the rest of the\n // ancestor path already has sufficient priority.\n break;\n }\n\n node = node.return;\n }\n}\nfunction propagateContextChange(workInProgress, context, changedBits, renderLanes) {\n var fiber = workInProgress.child;\n\n if (fiber !== null) {\n // Set the return pointer of the child to the work-in-progress fiber.\n fiber.return = workInProgress;\n }\n\n while (fiber !== null) {\n var nextFiber = void 0; // Visit this fiber.\n\n var list = fiber.dependencies;\n\n if (list !== null) {\n nextFiber = fiber.child;\n var dependency = list.firstContext;\n\n while (dependency !== null) {\n // Check if the context matches.\n if (dependency.context === context && (dependency.observedBits & changedBits) !== 0) {\n // Match! Schedule an update on this fiber.\n if (fiber.tag === ClassComponent) {\n // Schedule a force update on the work-in-progress.\n var update = createUpdate(NoTimestamp, pickArbitraryLane(renderLanes));\n update.tag = ForceUpdate; // TODO: Because we don't have a work-in-progress, this will add the\n // update to the current fiber, too, which means it will persist even if\n // this render is thrown away. Since it's a race condition, not sure it's\n // worth fixing.\n\n enqueueUpdate(fiber, update);\n }\n\n fiber.lanes = mergeLanes(fiber.lanes, renderLanes);\n var alternate = fiber.alternate;\n\n if (alternate !== null) {\n alternate.lanes = mergeLanes(alternate.lanes, renderLanes);\n }\n\n scheduleWorkOnParentPath(fiber.return, renderLanes); // Mark the updated lanes on the list, too.\n\n list.lanes = mergeLanes(list.lanes, renderLanes); // Since we already found a match, we can stop traversing the\n // dependency list.\n\n break;\n }\n\n dependency = dependency.next;\n }\n } else if (fiber.tag === ContextProvider) {\n // Don't scan deeper if this is a matching provider\n nextFiber = fiber.type === workInProgress.type ? null : fiber.child;\n } else {\n // Traverse down.\n nextFiber = fiber.child;\n }\n\n if (nextFiber !== null) {\n // Set the return pointer of the child to the work-in-progress fiber.\n nextFiber.return = fiber;\n } else {\n // No child. Traverse to next sibling.\n nextFiber = fiber;\n\n while (nextFiber !== null) {\n if (nextFiber === workInProgress) {\n // We're back to the root of this subtree. Exit.\n nextFiber = null;\n break;\n }\n\n var sibling = nextFiber.sibling;\n\n if (sibling !== null) {\n // Set the return pointer of the sibling to the work-in-progress fiber.\n sibling.return = nextFiber.return;\n nextFiber = sibling;\n break;\n } // No more siblings. Traverse up.\n\n\n nextFiber = nextFiber.return;\n }\n }\n\n fiber = nextFiber;\n }\n}\nfunction prepareToReadContext(workInProgress, renderLanes) {\n currentlyRenderingFiber = workInProgress;\n lastContextDependency = null;\n lastContextWithAllBitsObserved = null;\n var dependencies = workInProgress.dependencies;\n\n if (dependencies !== null) {\n var firstContext = dependencies.firstContext;\n\n if (firstContext !== null) {\n if (includesSomeLane(dependencies.lanes, renderLanes)) {\n // Context list has a pending update. Mark that this fiber performed work.\n markWorkInProgressReceivedUpdate();\n } // Reset the work-in-progress list\n\n\n dependencies.firstContext = null;\n }\n }\n}\nfunction readContext(context, observedBits) {\n {\n // This warning would fire if you read context inside a Hook like useMemo.\n // Unlike the class check below, it's not enforced in production for perf.\n if (isDisallowedContextReadInDEV) {\n error('Context can only be read while React is rendering. ' + 'In classes, you can read it in the render method or getDerivedStateFromProps. ' + 'In function components, you can read it directly in the function body, but not ' + 'inside Hooks like useReducer() or useMemo().');\n }\n }\n\n if (lastContextWithAllBitsObserved === context) ; else if (observedBits === false || observedBits === 0) ; else {\n var resolvedObservedBits; // Avoid deopting on observable arguments or heterogeneous types.\n\n if (typeof observedBits !== 'number' || observedBits === MAX_SIGNED_31_BIT_INT) {\n // Observe all updates.\n lastContextWithAllBitsObserved = context;\n resolvedObservedBits = MAX_SIGNED_31_BIT_INT;\n } else {\n resolvedObservedBits = observedBits;\n }\n\n var contextItem = {\n context: context,\n observedBits: resolvedObservedBits,\n next: null\n };\n\n if (lastContextDependency === null) {\n if (!(currentlyRenderingFiber !== null)) {\n {\n throw Error( \"Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().\" );\n }\n } // This is the first dependency for this component. Create a new list.\n\n\n lastContextDependency = contextItem;\n currentlyRenderingFiber.dependencies = {\n lanes: NoLanes,\n firstContext: contextItem,\n responders: null\n };\n } else {\n // Append a new context item.\n lastContextDependency = lastContextDependency.next = contextItem;\n }\n }\n\n return context._currentValue ;\n}\n\nvar UpdateState = 0;\nvar ReplaceState = 1;\nvar ForceUpdate = 2;\nvar CaptureUpdate = 3; // Global state that is reset at the beginning of calling `processUpdateQueue`.\n// It should only be read right after calling `processUpdateQueue`, via\n// `checkHasForceUpdateAfterProcessing`.\n\nvar hasForceUpdate = false;\nvar didWarnUpdateInsideUpdate;\nvar currentlyProcessingQueue;\n\n{\n didWarnUpdateInsideUpdate = false;\n currentlyProcessingQueue = null;\n}\n\nfunction initializeUpdateQueue(fiber) {\n var queue = {\n baseState: fiber.memoizedState,\n firstBaseUpdate: null,\n lastBaseUpdate: null,\n shared: {\n pending: null\n },\n effects: null\n };\n fiber.updateQueue = queue;\n}\nfunction cloneUpdateQueue(current, workInProgress) {\n // Clone the update queue from current. Unless it's already a clone.\n var queue = workInProgress.updateQueue;\n var currentQueue = current.updateQueue;\n\n if (queue === currentQueue) {\n var clone = {\n baseState: currentQueue.baseState,\n firstBaseUpdate: currentQueue.firstBaseUpdate,\n lastBaseUpdate: currentQueue.lastBaseUpdate,\n shared: currentQueue.shared,\n effects: currentQueue.effects\n };\n workInProgress.updateQueue = clone;\n }\n}\nfunction createUpdate(eventTime, lane) {\n var update = {\n eventTime: eventTime,\n lane: lane,\n tag: UpdateState,\n payload: null,\n callback: null,\n next: null\n };\n return update;\n}\nfunction enqueueUpdate(fiber, update) {\n var updateQueue = fiber.updateQueue;\n\n if (updateQueue === null) {\n // Only occurs if the fiber has been unmounted.\n return;\n }\n\n var sharedQueue = updateQueue.shared;\n var pending = sharedQueue.pending;\n\n if (pending === null) {\n // This is the first update. Create a circular list.\n update.next = update;\n } else {\n update.next = pending.next;\n pending.next = update;\n }\n\n sharedQueue.pending = update;\n\n {\n if (currentlyProcessingQueue === sharedQueue && !didWarnUpdateInsideUpdate) {\n error('An update (setState, replaceState, or forceUpdate) was scheduled ' + 'from inside an update function. Update functions should be pure, ' + 'with zero side-effects. Consider using componentDidUpdate or a ' + 'callback.');\n\n didWarnUpdateInsideUpdate = true;\n }\n }\n}\nfunction enqueueCapturedUpdate(workInProgress, capturedUpdate) {\n // Captured updates are updates that are thrown by a child during the render\n // phase. They should be discarded if the render is aborted. Therefore,\n // we should only put them on the work-in-progress queue, not the current one.\n var queue = workInProgress.updateQueue; // Check if the work-in-progress queue is a clone.\n\n var current = workInProgress.alternate;\n\n if (current !== null) {\n var currentQueue = current.updateQueue;\n\n if (queue === currentQueue) {\n // The work-in-progress queue is the same as current. This happens when\n // we bail out on a parent fiber that then captures an error thrown by\n // a child. Since we want to append the update only to the work-in\n // -progress queue, we need to clone the updates. We usually clone during\n // processUpdateQueue, but that didn't happen in this case because we\n // skipped over the parent when we bailed out.\n var newFirst = null;\n var newLast = null;\n var firstBaseUpdate = queue.firstBaseUpdate;\n\n if (firstBaseUpdate !== null) {\n // Loop through the updates and clone them.\n var update = firstBaseUpdate;\n\n do {\n var clone = {\n eventTime: update.eventTime,\n lane: update.lane,\n tag: update.tag,\n payload: update.payload,\n callback: update.callback,\n next: null\n };\n\n if (newLast === null) {\n newFirst = newLast = clone;\n } else {\n newLast.next = clone;\n newLast = clone;\n }\n\n update = update.next;\n } while (update !== null); // Append the captured update the end of the cloned list.\n\n\n if (newLast === null) {\n newFirst = newLast = capturedUpdate;\n } else {\n newLast.next = capturedUpdate;\n newLast = capturedUpdate;\n }\n } else {\n // There are no base updates.\n newFirst = newLast = capturedUpdate;\n }\n\n queue = {\n baseState: currentQueue.baseState,\n firstBaseUpdate: newFirst,\n lastBaseUpdate: newLast,\n shared: currentQueue.shared,\n effects: currentQueue.effects\n };\n workInProgress.updateQueue = queue;\n return;\n }\n } // Append the update to the end of the list.\n\n\n var lastBaseUpdate = queue.lastBaseUpdate;\n\n if (lastBaseUpdate === null) {\n queue.firstBaseUpdate = capturedUpdate;\n } else {\n lastBaseUpdate.next = capturedUpdate;\n }\n\n queue.lastBaseUpdate = capturedUpdate;\n}\n\nfunction getStateFromUpdate(workInProgress, queue, update, prevState, nextProps, instance) {\n switch (update.tag) {\n case ReplaceState:\n {\n var payload = update.payload;\n\n if (typeof payload === 'function') {\n // Updater function\n {\n enterDisallowedContextReadInDEV();\n }\n\n var nextState = payload.call(instance, prevState, nextProps);\n\n {\n if ( workInProgress.mode & StrictMode) {\n disableLogs();\n\n try {\n payload.call(instance, prevState, nextProps);\n } finally {\n reenableLogs();\n }\n }\n\n exitDisallowedContextReadInDEV();\n }\n\n return nextState;\n } // State object\n\n\n return payload;\n }\n\n case CaptureUpdate:\n {\n workInProgress.flags = workInProgress.flags & ~ShouldCapture | DidCapture;\n }\n // Intentional fallthrough\n\n case UpdateState:\n {\n var _payload = update.payload;\n var partialState;\n\n if (typeof _payload === 'function') {\n // Updater function\n {\n enterDisallowedContextReadInDEV();\n }\n\n partialState = _payload.call(instance, prevState, nextProps);\n\n {\n if ( workInProgress.mode & StrictMode) {\n disableLogs();\n\n try {\n _payload.call(instance, prevState, nextProps);\n } finally {\n reenableLogs();\n }\n }\n\n exitDisallowedContextReadInDEV();\n }\n } else {\n // Partial state object\n partialState = _payload;\n }\n\n if (partialState === null || partialState === undefined) {\n // Null and undefined are treated as no-ops.\n return prevState;\n } // Merge the partial state and the previous state.\n\n\n return _assign({}, prevState, partialState);\n }\n\n case ForceUpdate:\n {\n hasForceUpdate = true;\n return prevState;\n }\n }\n\n return prevState;\n}\n\nfunction processUpdateQueue(workInProgress, props, instance, renderLanes) {\n // This is always non-null on a ClassComponent or HostRoot\n var queue = workInProgress.updateQueue;\n hasForceUpdate = false;\n\n {\n currentlyProcessingQueue = queue.shared;\n }\n\n var firstBaseUpdate = queue.firstBaseUpdate;\n var lastBaseUpdate = queue.lastBaseUpdate; // Check if there are pending updates. If so, transfer them to the base queue.\n\n var pendingQueue = queue.shared.pending;\n\n if (pendingQueue !== null) {\n queue.shared.pending = null; // The pending queue is circular. Disconnect the pointer between first\n // and last so that it's non-circular.\n\n var lastPendingUpdate = pendingQueue;\n var firstPendingUpdate = lastPendingUpdate.next;\n lastPendingUpdate.next = null; // Append pending updates to base queue\n\n if (lastBaseUpdate === null) {\n firstBaseUpdate = firstPendingUpdate;\n } else {\n lastBaseUpdate.next = firstPendingUpdate;\n }\n\n lastBaseUpdate = lastPendingUpdate; // If there's a current queue, and it's different from the base queue, then\n // we need to transfer the updates to that queue, too. Because the base\n // queue is a singly-linked list with no cycles, we can append to both\n // lists and take advantage of structural sharing.\n // TODO: Pass `current` as argument\n\n var current = workInProgress.alternate;\n\n if (current !== null) {\n // This is always non-null on a ClassComponent or HostRoot\n var currentQueue = current.updateQueue;\n var currentLastBaseUpdate = currentQueue.lastBaseUpdate;\n\n if (currentLastBaseUpdate !== lastBaseUpdate) {\n if (currentLastBaseUpdate === null) {\n currentQueue.firstBaseUpdate = firstPendingUpdate;\n } else {\n currentLastBaseUpdate.next = firstPendingUpdate;\n }\n\n currentQueue.lastBaseUpdate = lastPendingUpdate;\n }\n }\n } // These values may change as we process the queue.\n\n\n if (firstBaseUpdate !== null) {\n // Iterate through the list of updates to compute the result.\n var newState = queue.baseState; // TODO: Don't need to accumulate this. Instead, we can remove renderLanes\n // from the original lanes.\n\n var newLanes = NoLanes;\n var newBaseState = null;\n var newFirstBaseUpdate = null;\n var newLastBaseUpdate = null;\n var update = firstBaseUpdate;\n\n do {\n var updateLane = update.lane;\n var updateEventTime = update.eventTime;\n\n if (!isSubsetOfLanes(renderLanes, updateLane)) {\n // Priority is insufficient. Skip this update. If this is the first\n // skipped update, the previous update/state is the new base\n // update/state.\n var clone = {\n eventTime: updateEventTime,\n lane: updateLane,\n tag: update.tag,\n payload: update.payload,\n callback: update.callback,\n next: null\n };\n\n if (newLastBaseUpdate === null) {\n newFirstBaseUpdate = newLastBaseUpdate = clone;\n newBaseState = newState;\n } else {\n newLastBaseUpdate = newLastBaseUpdate.next = clone;\n } // Update the remaining priority in the queue.\n\n\n newLanes = mergeLanes(newLanes, updateLane);\n } else {\n // This update does have sufficient priority.\n if (newLastBaseUpdate !== null) {\n var _clone = {\n eventTime: updateEventTime,\n // This update is going to be committed so we never want uncommit\n // it. Using NoLane works because 0 is a subset of all bitmasks, so\n // this will never be skipped by the check above.\n lane: NoLane,\n tag: update.tag,\n payload: update.payload,\n callback: update.callback,\n next: null\n };\n newLastBaseUpdate = newLastBaseUpdate.next = _clone;\n } // Process this update.\n\n\n newState = getStateFromUpdate(workInProgress, queue, update, newState, props, instance);\n var callback = update.callback;\n\n if (callback !== null) {\n workInProgress.flags |= Callback;\n var effects = queue.effects;\n\n if (effects === null) {\n queue.effects = [update];\n } else {\n effects.push(update);\n }\n }\n }\n\n update = update.next;\n\n if (update === null) {\n pendingQueue = queue.shared.pending;\n\n if (pendingQueue === null) {\n break;\n } else {\n // An update was scheduled from inside a reducer. Add the new\n // pending updates to the end of the list and keep processing.\n var _lastPendingUpdate = pendingQueue; // Intentionally unsound. Pending updates form a circular list, but we\n // unravel them when transferring them to the base queue.\n\n var _firstPendingUpdate = _lastPendingUpdate.next;\n _lastPendingUpdate.next = null;\n update = _firstPendingUpdate;\n queue.lastBaseUpdate = _lastPendingUpdate;\n queue.shared.pending = null;\n }\n }\n } while (true);\n\n if (newLastBaseUpdate === null) {\n newBaseState = newState;\n }\n\n queue.baseState = newBaseState;\n queue.firstBaseUpdate = newFirstBaseUpdate;\n queue.lastBaseUpdate = newLastBaseUpdate; // Set the remaining expiration time to be whatever is remaining in the queue.\n // This should be fine because the only two other things that contribute to\n // expiration time are props and context. We're already in the middle of the\n // begin phase by the time we start processing the queue, so we've already\n // dealt with the props. Context in components that specify\n // shouldComponentUpdate is tricky; but we'll have to account for\n // that regardless.\n\n markSkippedUpdateLanes(newLanes);\n workInProgress.lanes = newLanes;\n workInProgress.memoizedState = newState;\n }\n\n {\n currentlyProcessingQueue = null;\n }\n}\n\nfunction callCallback(callback, context) {\n if (!(typeof callback === 'function')) {\n {\n throw Error( \"Invalid argument passed as callback. Expected a function. Instead received: \" + callback );\n }\n }\n\n callback.call(context);\n}\n\nfunction resetHasForceUpdateBeforeProcessing() {\n hasForceUpdate = false;\n}\nfunction checkHasForceUpdateAfterProcessing() {\n return hasForceUpdate;\n}\nfunction commitUpdateQueue(finishedWork, finishedQueue, instance) {\n // Commit the effects\n var effects = finishedQueue.effects;\n finishedQueue.effects = null;\n\n if (effects !== null) {\n for (var i = 0; i < effects.length; i++) {\n var effect = effects[i];\n var callback = effect.callback;\n\n if (callback !== null) {\n effect.callback = null;\n callCallback(callback, instance);\n }\n }\n }\n}\n\nvar fakeInternalInstance = {};\nvar isArray = Array.isArray; // React.Component uses a shared frozen object by default.\n// We'll use it to determine whether we need to initialize legacy refs.\n\nvar emptyRefsObject = new React.Component().refs;\nvar didWarnAboutStateAssignmentForComponent;\nvar didWarnAboutUninitializedState;\nvar didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate;\nvar didWarnAboutLegacyLifecyclesAndDerivedState;\nvar didWarnAboutUndefinedDerivedState;\nvar warnOnUndefinedDerivedState;\nvar warnOnInvalidCallback;\nvar didWarnAboutDirectlyAssigningPropsToState;\nvar didWarnAboutContextTypeAndContextTypes;\nvar didWarnAboutInvalidateContextType;\n\n{\n didWarnAboutStateAssignmentForComponent = new Set();\n didWarnAboutUninitializedState = new Set();\n didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate = new Set();\n didWarnAboutLegacyLifecyclesAndDerivedState = new Set();\n didWarnAboutDirectlyAssigningPropsToState = new Set();\n didWarnAboutUndefinedDerivedState = new Set();\n didWarnAboutContextTypeAndContextTypes = new Set();\n didWarnAboutInvalidateContextType = new Set();\n var didWarnOnInvalidCallback = new Set();\n\n warnOnInvalidCallback = function (callback, callerName) {\n if (callback === null || typeof callback === 'function') {\n return;\n }\n\n var key = callerName + '_' + callback;\n\n if (!didWarnOnInvalidCallback.has(key)) {\n didWarnOnInvalidCallback.add(key);\n\n error('%s(...): Expected the last optional `callback` argument to be a ' + 'function. Instead received: %s.', callerName, callback);\n }\n };\n\n warnOnUndefinedDerivedState = function (type, partialState) {\n if (partialState === undefined) {\n var componentName = getComponentName(type) || 'Component';\n\n if (!didWarnAboutUndefinedDerivedState.has(componentName)) {\n didWarnAboutUndefinedDerivedState.add(componentName);\n\n error('%s.getDerivedStateFromProps(): A valid state object (or null) must be returned. ' + 'You have returned undefined.', componentName);\n }\n }\n }; // This is so gross but it's at least non-critical and can be removed if\n // it causes problems. This is meant to give a nicer error message for\n // ReactDOM15.unstable_renderSubtreeIntoContainer(reactDOM16Component,\n // ...)) which otherwise throws a \"_processChildContext is not a function\"\n // exception.\n\n\n Object.defineProperty(fakeInternalInstance, '_processChildContext', {\n enumerable: false,\n value: function () {\n {\n {\n throw Error( \"_processChildContext is not available in React 16+. This likely means you have multiple copies of React and are attempting to nest a React 15 tree inside a React 16 tree using unstable_renderSubtreeIntoContainer, which isn't supported. Try to make sure you have only one copy of React (and ideally, switch to ReactDOM.createPortal).\" );\n }\n }\n }\n });\n Object.freeze(fakeInternalInstance);\n}\n\nfunction applyDerivedStateFromProps(workInProgress, ctor, getDerivedStateFromProps, nextProps) {\n var prevState = workInProgress.memoizedState;\n\n {\n if ( workInProgress.mode & StrictMode) {\n disableLogs();\n\n try {\n // Invoke the function an extra time to help detect side-effects.\n getDerivedStateFromProps(nextProps, prevState);\n } finally {\n reenableLogs();\n }\n }\n }\n\n var partialState = getDerivedStateFromProps(nextProps, prevState);\n\n {\n warnOnUndefinedDerivedState(ctor, partialState);\n } // Merge the partial state and the previous state.\n\n\n var memoizedState = partialState === null || partialState === undefined ? prevState : _assign({}, prevState, partialState);\n workInProgress.memoizedState = memoizedState; // Once the update queue is empty, persist the derived state onto the\n // base state.\n\n if (workInProgress.lanes === NoLanes) {\n // Queue is always non-null for classes\n var updateQueue = workInProgress.updateQueue;\n updateQueue.baseState = memoizedState;\n }\n}\nvar classComponentUpdater = {\n isMounted: isMounted,\n enqueueSetState: function (inst, payload, callback) {\n var fiber = get(inst);\n var eventTime = requestEventTime();\n var lane = requestUpdateLane(fiber);\n var update = createUpdate(eventTime, lane);\n update.payload = payload;\n\n if (callback !== undefined && callback !== null) {\n {\n warnOnInvalidCallback(callback, 'setState');\n }\n\n update.callback = callback;\n }\n\n enqueueUpdate(fiber, update);\n scheduleUpdateOnFiber(fiber, lane, eventTime);\n },\n enqueueReplaceState: function (inst, payload, callback) {\n var fiber = get(inst);\n var eventTime = requestEventTime();\n var lane = requestUpdateLane(fiber);\n var update = createUpdate(eventTime, lane);\n update.tag = ReplaceState;\n update.payload = payload;\n\n if (callback !== undefined && callback !== null) {\n {\n warnOnInvalidCallback(callback, 'replaceState');\n }\n\n update.callback = callback;\n }\n\n enqueueUpdate(fiber, update);\n scheduleUpdateOnFiber(fiber, lane, eventTime);\n },\n enqueueForceUpdate: function (inst, callback) {\n var fiber = get(inst);\n var eventTime = requestEventTime();\n var lane = requestUpdateLane(fiber);\n var update = createUpdate(eventTime, lane);\n update.tag = ForceUpdate;\n\n if (callback !== undefined && callback !== null) {\n {\n warnOnInvalidCallback(callback, 'forceUpdate');\n }\n\n update.callback = callback;\n }\n\n enqueueUpdate(fiber, update);\n scheduleUpdateOnFiber(fiber, lane, eventTime);\n }\n};\n\nfunction checkShouldComponentUpdate(workInProgress, ctor, oldProps, newProps, oldState, newState, nextContext) {\n var instance = workInProgress.stateNode;\n\n if (typeof instance.shouldComponentUpdate === 'function') {\n {\n if ( workInProgress.mode & StrictMode) {\n disableLogs();\n\n try {\n // Invoke the function an extra time to help detect side-effects.\n instance.shouldComponentUpdate(newProps, newState, nextContext);\n } finally {\n reenableLogs();\n }\n }\n }\n\n var shouldUpdate = instance.shouldComponentUpdate(newProps, newState, nextContext);\n\n {\n if (shouldUpdate === undefined) {\n error('%s.shouldComponentUpdate(): Returned undefined instead of a ' + 'boolean value. Make sure to return true or false.', getComponentName(ctor) || 'Component');\n }\n }\n\n return shouldUpdate;\n }\n\n if (ctor.prototype && ctor.prototype.isPureReactComponent) {\n return !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState);\n }\n\n return true;\n}\n\nfunction checkClassInstance(workInProgress, ctor, newProps) {\n var instance = workInProgress.stateNode;\n\n {\n var name = getComponentName(ctor) || 'Component';\n var renderPresent = instance.render;\n\n if (!renderPresent) {\n if (ctor.prototype && typeof ctor.prototype.render === 'function') {\n error('%s(...): No `render` method found on the returned component ' + 'instance: did you accidentally return an object from the constructor?', name);\n } else {\n error('%s(...): No `render` method found on the returned component ' + 'instance: you may have forgotten to define `render`.', name);\n }\n }\n\n if (instance.getInitialState && !instance.getInitialState.isReactClassApproved && !instance.state) {\n error('getInitialState was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Did you mean to define a state property instead?', name);\n }\n\n if (instance.getDefaultProps && !instance.getDefaultProps.isReactClassApproved) {\n error('getDefaultProps was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Use a static property to define defaultProps instead.', name);\n }\n\n if (instance.propTypes) {\n error('propTypes was defined as an instance property on %s. Use a static ' + 'property to define propTypes instead.', name);\n }\n\n if (instance.contextType) {\n error('contextType was defined as an instance property on %s. Use a static ' + 'property to define contextType instead.', name);\n }\n\n {\n if (instance.contextTypes) {\n error('contextTypes was defined as an instance property on %s. Use a static ' + 'property to define contextTypes instead.', name);\n }\n\n if (ctor.contextType && ctor.contextTypes && !didWarnAboutContextTypeAndContextTypes.has(ctor)) {\n didWarnAboutContextTypeAndContextTypes.add(ctor);\n\n error('%s declares both contextTypes and contextType static properties. ' + 'The legacy contextTypes property will be ignored.', name);\n }\n }\n\n if (typeof instance.componentShouldUpdate === 'function') {\n error('%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', name);\n }\n\n if (ctor.prototype && ctor.prototype.isPureReactComponent && typeof instance.shouldComponentUpdate !== 'undefined') {\n error('%s has a method called shouldComponentUpdate(). ' + 'shouldComponentUpdate should not be used when extending React.PureComponent. ' + 'Please extend React.Component if shouldComponentUpdate is used.', getComponentName(ctor) || 'A pure component');\n }\n\n if (typeof instance.componentDidUnmount === 'function') {\n error('%s has a method called ' + 'componentDidUnmount(). But there is no such lifecycle method. ' + 'Did you mean componentWillUnmount()?', name);\n }\n\n if (typeof instance.componentDidReceiveProps === 'function') {\n error('%s has a method called ' + 'componentDidReceiveProps(). But there is no such lifecycle method. ' + 'If you meant to update the state in response to changing props, ' + 'use componentWillReceiveProps(). If you meant to fetch data or ' + 'run side-effects or mutations after React has updated the UI, use componentDidUpdate().', name);\n }\n\n if (typeof instance.componentWillRecieveProps === 'function') {\n error('%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', name);\n }\n\n if (typeof instance.UNSAFE_componentWillRecieveProps === 'function') {\n error('%s has a method called ' + 'UNSAFE_componentWillRecieveProps(). Did you mean UNSAFE_componentWillReceiveProps()?', name);\n }\n\n var hasMutatedProps = instance.props !== newProps;\n\n if (instance.props !== undefined && hasMutatedProps) {\n error('%s(...): When calling super() in `%s`, make sure to pass ' + \"up the same props that your component's constructor was passed.\", name, name);\n }\n\n if (instance.defaultProps) {\n error('Setting defaultProps as an instance property on %s is not supported and will be ignored.' + ' Instead, define defaultProps as a static property on %s.', name, name);\n }\n\n if (typeof instance.getSnapshotBeforeUpdate === 'function' && typeof instance.componentDidUpdate !== 'function' && !didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.has(ctor)) {\n didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.add(ctor);\n\n error('%s: getSnapshotBeforeUpdate() should be used with componentDidUpdate(). ' + 'This component defines getSnapshotBeforeUpdate() only.', getComponentName(ctor));\n }\n\n if (typeof instance.getDerivedStateFromProps === 'function') {\n error('%s: getDerivedStateFromProps() is defined as an instance method ' + 'and will be ignored. Instead, declare it as a static method.', name);\n }\n\n if (typeof instance.getDerivedStateFromError === 'function') {\n error('%s: getDerivedStateFromError() is defined as an instance method ' + 'and will be ignored. Instead, declare it as a static method.', name);\n }\n\n if (typeof ctor.getSnapshotBeforeUpdate === 'function') {\n error('%s: getSnapshotBeforeUpdate() is defined as a static method ' + 'and will be ignored. Instead, declare it as an instance method.', name);\n }\n\n var _state = instance.state;\n\n if (_state && (typeof _state !== 'object' || isArray(_state))) {\n error('%s.state: must be set to an object or null', name);\n }\n\n if (typeof instance.getChildContext === 'function' && typeof ctor.childContextTypes !== 'object') {\n error('%s.getChildContext(): childContextTypes must be defined in order to ' + 'use getChildContext().', name);\n }\n }\n}\n\nfunction adoptClassInstance(workInProgress, instance) {\n instance.updater = classComponentUpdater;\n workInProgress.stateNode = instance; // The instance needs access to the fiber so that it can schedule updates\n\n set(instance, workInProgress);\n\n {\n instance._reactInternalInstance = fakeInternalInstance;\n }\n}\n\nfunction constructClassInstance(workInProgress, ctor, props) {\n var isLegacyContextConsumer = false;\n var unmaskedContext = emptyContextObject;\n var context = emptyContextObject;\n var contextType = ctor.contextType;\n\n {\n if ('contextType' in ctor) {\n var isValid = // Allow null for conditional declaration\n contextType === null || contextType !== undefined && contextType.$$typeof === REACT_CONTEXT_TYPE && contextType._context === undefined; // Not a <Context.Consumer>\n\n if (!isValid && !didWarnAboutInvalidateContextType.has(ctor)) {\n didWarnAboutInvalidateContextType.add(ctor);\n var addendum = '';\n\n if (contextType === undefined) {\n addendum = ' However, it is set to undefined. ' + 'This can be caused by a typo or by mixing up named and default imports. ' + 'This can also happen due to a circular dependency, so ' + 'try moving the createContext() call to a separate file.';\n } else if (typeof contextType !== 'object') {\n addendum = ' However, it is set to a ' + typeof contextType + '.';\n } else if (contextType.$$typeof === REACT_PROVIDER_TYPE) {\n addendum = ' Did you accidentally pass the Context.Provider instead?';\n } else if (contextType._context !== undefined) {\n // <Context.Consumer>\n addendum = ' Did you accidentally pass the Context.Consumer instead?';\n } else {\n addendum = ' However, it is set to an object with keys {' + Object.keys(contextType).join(', ') + '}.';\n }\n\n error('%s defines an invalid contextType. ' + 'contextType should point to the Context object returned by React.createContext().%s', getComponentName(ctor) || 'Component', addendum);\n }\n }\n }\n\n if (typeof contextType === 'object' && contextType !== null) {\n context = readContext(contextType);\n } else {\n unmaskedContext = getUnmaskedContext(workInProgress, ctor, true);\n var contextTypes = ctor.contextTypes;\n isLegacyContextConsumer = contextTypes !== null && contextTypes !== undefined;\n context = isLegacyContextConsumer ? getMaskedContext(workInProgress, unmaskedContext) : emptyContextObject;\n } // Instantiate twice to help detect side-effects.\n\n\n {\n if ( workInProgress.mode & StrictMode) {\n disableLogs();\n\n try {\n new ctor(props, context); // eslint-disable-line no-new\n } finally {\n reenableLogs();\n }\n }\n }\n\n var instance = new ctor(props, context);\n var state = workInProgress.memoizedState = instance.state !== null && instance.state !== undefined ? instance.state : null;\n adoptClassInstance(workInProgress, instance);\n\n {\n if (typeof ctor.getDerivedStateFromProps === 'function' && state === null) {\n var componentName = getComponentName(ctor) || 'Component';\n\n if (!didWarnAboutUninitializedState.has(componentName)) {\n didWarnAboutUninitializedState.add(componentName);\n\n error('`%s` uses `getDerivedStateFromProps` but its initial state is ' + '%s. This is not recommended. Instead, define the initial state by ' + 'assigning an object to `this.state` in the constructor of `%s`. ' + 'This ensures that `getDerivedStateFromProps` arguments have a consistent shape.', componentName, instance.state === null ? 'null' : 'undefined', componentName);\n }\n } // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Warn about these lifecycles if they are present.\n // Don't warn about react-lifecycles-compat polyfilled methods though.\n\n\n if (typeof ctor.getDerivedStateFromProps === 'function' || typeof instance.getSnapshotBeforeUpdate === 'function') {\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n\n if (typeof instance.componentWillMount === 'function' && instance.componentWillMount.__suppressDeprecationWarning !== true) {\n foundWillMountName = 'componentWillMount';\n } else if (typeof instance.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n\n if (typeof instance.componentWillReceiveProps === 'function' && instance.componentWillReceiveProps.__suppressDeprecationWarning !== true) {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof instance.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n\n if (typeof instance.componentWillUpdate === 'function' && instance.componentWillUpdate.__suppressDeprecationWarning !== true) {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof instance.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n\n if (foundWillMountName !== null || foundWillReceivePropsName !== null || foundWillUpdateName !== null) {\n var _componentName = getComponentName(ctor) || 'Component';\n\n var newApiName = typeof ctor.getDerivedStateFromProps === 'function' ? 'getDerivedStateFromProps()' : 'getSnapshotBeforeUpdate()';\n\n if (!didWarnAboutLegacyLifecyclesAndDerivedState.has(_componentName)) {\n didWarnAboutLegacyLifecyclesAndDerivedState.add(_componentName);\n\n error('Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' + '%s uses %s but also contains the following legacy lifecycles:%s%s%s\\n\\n' + 'The above lifecycles should be removed. Learn more about this warning here:\\n' + 'https://reactjs.org/link/unsafe-component-lifecycles', _componentName, newApiName, foundWillMountName !== null ? \"\\n \" + foundWillMountName : '', foundWillReceivePropsName !== null ? \"\\n \" + foundWillReceivePropsName : '', foundWillUpdateName !== null ? \"\\n \" + foundWillUpdateName : '');\n }\n }\n }\n } // Cache unmasked context so we can avoid recreating masked context unless necessary.\n // ReactFiberContext usually updates this cache but can't for newly-created instances.\n\n\n if (isLegacyContextConsumer) {\n cacheContext(workInProgress, unmaskedContext, context);\n }\n\n return instance;\n}\n\nfunction callComponentWillMount(workInProgress, instance) {\n var oldState = instance.state;\n\n if (typeof instance.componentWillMount === 'function') {\n instance.componentWillMount();\n }\n\n if (typeof instance.UNSAFE_componentWillMount === 'function') {\n instance.UNSAFE_componentWillMount();\n }\n\n if (oldState !== instance.state) {\n {\n error('%s.componentWillMount(): Assigning directly to this.state is ' + \"deprecated (except inside a component's \" + 'constructor). Use setState instead.', getComponentName(workInProgress.type) || 'Component');\n }\n\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n }\n}\n\nfunction callComponentWillReceiveProps(workInProgress, instance, newProps, nextContext) {\n var oldState = instance.state;\n\n if (typeof instance.componentWillReceiveProps === 'function') {\n instance.componentWillReceiveProps(newProps, nextContext);\n }\n\n if (typeof instance.UNSAFE_componentWillReceiveProps === 'function') {\n instance.UNSAFE_componentWillReceiveProps(newProps, nextContext);\n }\n\n if (instance.state !== oldState) {\n {\n var componentName = getComponentName(workInProgress.type) || 'Component';\n\n if (!didWarnAboutStateAssignmentForComponent.has(componentName)) {\n didWarnAboutStateAssignmentForComponent.add(componentName);\n\n error('%s.componentWillReceiveProps(): Assigning directly to ' + \"this.state is deprecated (except inside a component's \" + 'constructor). Use setState instead.', componentName);\n }\n }\n\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n }\n} // Invokes the mount life-cycles on a previously never rendered instance.\n\n\nfunction mountClassInstance(workInProgress, ctor, newProps, renderLanes) {\n {\n checkClassInstance(workInProgress, ctor, newProps);\n }\n\n var instance = workInProgress.stateNode;\n instance.props = newProps;\n instance.state = workInProgress.memoizedState;\n instance.refs = emptyRefsObject;\n initializeUpdateQueue(workInProgress);\n var contextType = ctor.contextType;\n\n if (typeof contextType === 'object' && contextType !== null) {\n instance.context = readContext(contextType);\n } else {\n var unmaskedContext = getUnmaskedContext(workInProgress, ctor, true);\n instance.context = getMaskedContext(workInProgress, unmaskedContext);\n }\n\n {\n if (instance.state === newProps) {\n var componentName = getComponentName(ctor) || 'Component';\n\n if (!didWarnAboutDirectlyAssigningPropsToState.has(componentName)) {\n didWarnAboutDirectlyAssigningPropsToState.add(componentName);\n\n error('%s: It is not recommended to assign props directly to state ' + \"because updates to props won't be reflected in state. \" + 'In most cases, it is better to use props directly.', componentName);\n }\n }\n\n if (workInProgress.mode & StrictMode) {\n ReactStrictModeWarnings.recordLegacyContextWarning(workInProgress, instance);\n }\n\n {\n ReactStrictModeWarnings.recordUnsafeLifecycleWarnings(workInProgress, instance);\n }\n }\n\n processUpdateQueue(workInProgress, newProps, instance, renderLanes);\n instance.state = workInProgress.memoizedState;\n var getDerivedStateFromProps = ctor.getDerivedStateFromProps;\n\n if (typeof getDerivedStateFromProps === 'function') {\n applyDerivedStateFromProps(workInProgress, ctor, getDerivedStateFromProps, newProps);\n instance.state = workInProgress.memoizedState;\n } // In order to support react-lifecycles-compat polyfilled components,\n // Unsafe lifecycles should not be invoked for components using the new APIs.\n\n\n if (typeof ctor.getDerivedStateFromProps !== 'function' && typeof instance.getSnapshotBeforeUpdate !== 'function' && (typeof instance.UNSAFE_componentWillMount === 'function' || typeof instance.componentWillMount === 'function')) {\n callComponentWillMount(workInProgress, instance); // If we had additional state updates during this life-cycle, let's\n // process them now.\n\n processUpdateQueue(workInProgress, newProps, instance, renderLanes);\n instance.state = workInProgress.memoizedState;\n }\n\n if (typeof instance.componentDidMount === 'function') {\n workInProgress.flags |= Update;\n }\n}\n\nfunction resumeMountClassInstance(workInProgress, ctor, newProps, renderLanes) {\n var instance = workInProgress.stateNode;\n var oldProps = workInProgress.memoizedProps;\n instance.props = oldProps;\n var oldContext = instance.context;\n var contextType = ctor.contextType;\n var nextContext = emptyContextObject;\n\n if (typeof contextType === 'object' && contextType !== null) {\n nextContext = readContext(contextType);\n } else {\n var nextLegacyUnmaskedContext = getUnmaskedContext(workInProgress, ctor, true);\n nextContext = getMaskedContext(workInProgress, nextLegacyUnmaskedContext);\n }\n\n var getDerivedStateFromProps = ctor.getDerivedStateFromProps;\n var hasNewLifecycles = typeof getDerivedStateFromProps === 'function' || typeof instance.getSnapshotBeforeUpdate === 'function'; // Note: During these life-cycles, instance.props/instance.state are what\n // ever the previously attempted to render - not the \"current\". However,\n // during componentDidUpdate we pass the \"current\" props.\n // In order to support react-lifecycles-compat polyfilled components,\n // Unsafe lifecycles should not be invoked for components using the new APIs.\n\n if (!hasNewLifecycles && (typeof instance.UNSAFE_componentWillReceiveProps === 'function' || typeof instance.componentWillReceiveProps === 'function')) {\n if (oldProps !== newProps || oldContext !== nextContext) {\n callComponentWillReceiveProps(workInProgress, instance, newProps, nextContext);\n }\n }\n\n resetHasForceUpdateBeforeProcessing();\n var oldState = workInProgress.memoizedState;\n var newState = instance.state = oldState;\n processUpdateQueue(workInProgress, newProps, instance, renderLanes);\n newState = workInProgress.memoizedState;\n\n if (oldProps === newProps && oldState === newState && !hasContextChanged() && !checkHasForceUpdateAfterProcessing()) {\n // If an update was already in progress, we should schedule an Update\n // effect even though we're bailing out, so that cWU/cDU are called.\n if (typeof instance.componentDidMount === 'function') {\n workInProgress.flags |= Update;\n }\n\n return false;\n }\n\n if (typeof getDerivedStateFromProps === 'function') {\n applyDerivedStateFromProps(workInProgress, ctor, getDerivedStateFromProps, newProps);\n newState = workInProgress.memoizedState;\n }\n\n var shouldUpdate = checkHasForceUpdateAfterProcessing() || checkShouldComponentUpdate(workInProgress, ctor, oldProps, newProps, oldState, newState, nextContext);\n\n if (shouldUpdate) {\n // In order to support react-lifecycles-compat polyfilled components,\n // Unsafe lifecycles should not be invoked for components using the new APIs.\n if (!hasNewLifecycles && (typeof instance.UNSAFE_componentWillMount === 'function' || typeof instance.componentWillMount === 'function')) {\n if (typeof instance.componentWillMount === 'function') {\n instance.componentWillMount();\n }\n\n if (typeof instance.UNSAFE_componentWillMount === 'function') {\n instance.UNSAFE_componentWillMount();\n }\n }\n\n if (typeof instance.componentDidMount === 'function') {\n workInProgress.flags |= Update;\n }\n } else {\n // If an update was already in progress, we should schedule an Update\n // effect even though we're bailing out, so that cWU/cDU are called.\n if (typeof instance.componentDidMount === 'function') {\n workInProgress.flags |= Update;\n } // If shouldComponentUpdate returned false, we should still update the\n // memoized state to indicate that this work can be reused.\n\n\n workInProgress.memoizedProps = newProps;\n workInProgress.memoizedState = newState;\n } // Update the existing instance's state, props, and context pointers even\n // if shouldComponentUpdate returns false.\n\n\n instance.props = newProps;\n instance.state = newState;\n instance.context = nextContext;\n return shouldUpdate;\n} // Invokes the update life-cycles and returns false if it shouldn't rerender.\n\n\nfunction updateClassInstance(current, workInProgress, ctor, newProps, renderLanes) {\n var instance = workInProgress.stateNode;\n cloneUpdateQueue(current, workInProgress);\n var unresolvedOldProps = workInProgress.memoizedProps;\n var oldProps = workInProgress.type === workInProgress.elementType ? unresolvedOldProps : resolveDefaultProps(workInProgress.type, unresolvedOldProps);\n instance.props = oldProps;\n var unresolvedNewProps = workInProgress.pendingProps;\n var oldContext = instance.context;\n var contextType = ctor.contextType;\n var nextContext = emptyContextObject;\n\n if (typeof contextType === 'object' && contextType !== null) {\n nextContext = readContext(contextType);\n } else {\n var nextUnmaskedContext = getUnmaskedContext(workInProgress, ctor, true);\n nextContext = getMaskedContext(workInProgress, nextUnmaskedContext);\n }\n\n var getDerivedStateFromProps = ctor.getDerivedStateFromProps;\n var hasNewLifecycles = typeof getDerivedStateFromProps === 'function' || typeof instance.getSnapshotBeforeUpdate === 'function'; // Note: During these life-cycles, instance.props/instance.state are what\n // ever the previously attempted to render - not the \"current\". However,\n // during componentDidUpdate we pass the \"current\" props.\n // In order to support react-lifecycles-compat polyfilled components,\n // Unsafe lifecycles should not be invoked for components using the new APIs.\n\n if (!hasNewLifecycles && (typeof instance.UNSAFE_componentWillReceiveProps === 'function' || typeof instance.componentWillReceiveProps === 'function')) {\n if (unresolvedOldProps !== unresolvedNewProps || oldContext !== nextContext) {\n callComponentWillReceiveProps(workInProgress, instance, newProps, nextContext);\n }\n }\n\n resetHasForceUpdateBeforeProcessing();\n var oldState = workInProgress.memoizedState;\n var newState = instance.state = oldState;\n processUpdateQueue(workInProgress, newProps, instance, renderLanes);\n newState = workInProgress.memoizedState;\n\n if (unresolvedOldProps === unresolvedNewProps && oldState === newState && !hasContextChanged() && !checkHasForceUpdateAfterProcessing()) {\n // If an update was already in progress, we should schedule an Update\n // effect even though we're bailing out, so that cWU/cDU are called.\n if (typeof instance.componentDidUpdate === 'function') {\n if (unresolvedOldProps !== current.memoizedProps || oldState !== current.memoizedState) {\n workInProgress.flags |= Update;\n }\n }\n\n if (typeof instance.getSnapshotBeforeUpdate === 'function') {\n if (unresolvedOldProps !== current.memoizedProps || oldState !== current.memoizedState) {\n workInProgress.flags |= Snapshot;\n }\n }\n\n return false;\n }\n\n if (typeof getDerivedStateFromProps === 'function') {\n applyDerivedStateFromProps(workInProgress, ctor, getDerivedStateFromProps, newProps);\n newState = workInProgress.memoizedState;\n }\n\n var shouldUpdate = checkHasForceUpdateAfterProcessing() || checkShouldComponentUpdate(workInProgress, ctor, oldProps, newProps, oldState, newState, nextContext);\n\n if (shouldUpdate) {\n // In order to support react-lifecycles-compat polyfilled components,\n // Unsafe lifecycles should not be invoked for components using the new APIs.\n if (!hasNewLifecycles && (typeof instance.UNSAFE_componentWillUpdate === 'function' || typeof instance.componentWillUpdate === 'function')) {\n if (typeof instance.componentWillUpdate === 'function') {\n instance.componentWillUpdate(newProps, newState, nextContext);\n }\n\n if (typeof instance.UNSAFE_componentWillUpdate === 'function') {\n instance.UNSAFE_componentWillUpdate(newProps, newState, nextContext);\n }\n }\n\n if (typeof instance.componentDidUpdate === 'function') {\n workInProgress.flags |= Update;\n }\n\n if (typeof instance.getSnapshotBeforeUpdate === 'function') {\n workInProgress.flags |= Snapshot;\n }\n } else {\n // If an update was already in progress, we should schedule an Update\n // effect even though we're bailing out, so that cWU/cDU are called.\n if (typeof instance.componentDidUpdate === 'function') {\n if (unresolvedOldProps !== current.memoizedProps || oldState !== current.memoizedState) {\n workInProgress.flags |= Update;\n }\n }\n\n if (typeof instance.getSnapshotBeforeUpdate === 'function') {\n if (unresolvedOldProps !== current.memoizedProps || oldState !== current.memoizedState) {\n workInProgress.flags |= Snapshot;\n }\n } // If shouldComponentUpdate returned false, we should still update the\n // memoized props/state to indicate that this work can be reused.\n\n\n workInProgress.memoizedProps = newProps;\n workInProgress.memoizedState = newState;\n } // Update the existing instance's state, props, and context pointers even\n // if shouldComponentUpdate returns false.\n\n\n instance.props = newProps;\n instance.state = newState;\n instance.context = nextContext;\n return shouldUpdate;\n}\n\nvar didWarnAboutMaps;\nvar didWarnAboutGenerators;\nvar didWarnAboutStringRefs;\nvar ownerHasKeyUseWarning;\nvar ownerHasFunctionTypeWarning;\n\nvar warnForMissingKey = function (child, returnFiber) {};\n\n{\n didWarnAboutMaps = false;\n didWarnAboutGenerators = false;\n didWarnAboutStringRefs = {};\n /**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n\n ownerHasKeyUseWarning = {};\n ownerHasFunctionTypeWarning = {};\n\n warnForMissingKey = function (child, returnFiber) {\n if (child === null || typeof child !== 'object') {\n return;\n }\n\n if (!child._store || child._store.validated || child.key != null) {\n return;\n }\n\n if (!(typeof child._store === 'object')) {\n {\n throw Error( \"React Component in warnForMissingKey should have a _store. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n\n child._store.validated = true;\n var componentName = getComponentName(returnFiber.type) || 'Component';\n\n if (ownerHasKeyUseWarning[componentName]) {\n return;\n }\n\n ownerHasKeyUseWarning[componentName] = true;\n\n error('Each child in a list should have a unique ' + '\"key\" prop. See https://reactjs.org/link/warning-keys for ' + 'more information.');\n };\n}\n\nvar isArray$1 = Array.isArray;\n\nfunction coerceRef(returnFiber, current, element) {\n var mixedRef = element.ref;\n\n if (mixedRef !== null && typeof mixedRef !== 'function' && typeof mixedRef !== 'object') {\n {\n // TODO: Clean this up once we turn on the string ref warning for\n // everyone, because the strict mode case will no longer be relevant\n if ((returnFiber.mode & StrictMode || warnAboutStringRefs) && // We warn in ReactElement.js if owner and self are equal for string refs\n // because these cannot be automatically converted to an arrow function\n // using a codemod. Therefore, we don't have to warn about string refs again.\n !(element._owner && element._self && element._owner.stateNode !== element._self)) {\n var componentName = getComponentName(returnFiber.type) || 'Component';\n\n if (!didWarnAboutStringRefs[componentName]) {\n {\n error('A string ref, \"%s\", has been found within a strict mode tree. ' + 'String refs are a source of potential bugs and should be avoided. ' + 'We recommend using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', mixedRef);\n }\n\n didWarnAboutStringRefs[componentName] = true;\n }\n }\n }\n\n if (element._owner) {\n var owner = element._owner;\n var inst;\n\n if (owner) {\n var ownerFiber = owner;\n\n if (!(ownerFiber.tag === ClassComponent)) {\n {\n throw Error( \"Function components cannot have string refs. We recommend using useRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref\" );\n }\n }\n\n inst = ownerFiber.stateNode;\n }\n\n if (!inst) {\n {\n throw Error( \"Missing owner for string ref \" + mixedRef + \". This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n\n var stringRef = '' + mixedRef; // Check if previous string ref matches new string ref\n\n if (current !== null && current.ref !== null && typeof current.ref === 'function' && current.ref._stringRef === stringRef) {\n return current.ref;\n }\n\n var ref = function (value) {\n var refs = inst.refs;\n\n if (refs === emptyRefsObject) {\n // This is a lazy pooled frozen object, so we need to initialize.\n refs = inst.refs = {};\n }\n\n if (value === null) {\n delete refs[stringRef];\n } else {\n refs[stringRef] = value;\n }\n };\n\n ref._stringRef = stringRef;\n return ref;\n } else {\n if (!(typeof mixedRef === 'string')) {\n {\n throw Error( \"Expected ref to be a function, a string, an object returned by React.createRef(), or null.\" );\n }\n }\n\n if (!element._owner) {\n {\n throw Error( \"Element ref was specified as a string (\" + mixedRef + \") but no owner was set. This could happen for one of the following reasons:\\n1. You may be adding a ref to a function component\\n2. You may be adding a ref to a component that was not created inside a component's render method\\n3. You have multiple copies of React loaded\\nSee https://reactjs.org/link/refs-must-have-owner for more information.\" );\n }\n }\n }\n }\n\n return mixedRef;\n}\n\nfunction throwOnInvalidObjectType(returnFiber, newChild) {\n if (returnFiber.type !== 'textarea') {\n {\n {\n throw Error( \"Objects are not valid as a React child (found: \" + (Object.prototype.toString.call(newChild) === '[object Object]' ? 'object with keys {' + Object.keys(newChild).join(', ') + '}' : newChild) + \"). If you meant to render a collection of children, use an array instead.\" );\n }\n }\n }\n}\n\nfunction warnOnFunctionType(returnFiber) {\n {\n var componentName = getComponentName(returnFiber.type) || 'Component';\n\n if (ownerHasFunctionTypeWarning[componentName]) {\n return;\n }\n\n ownerHasFunctionTypeWarning[componentName] = true;\n\n error('Functions are not valid as a React child. This may happen if ' + 'you return a Component instead of <Component /> from render. ' + 'Or maybe you meant to call this function rather than return it.');\n }\n} // We avoid inlining this to avoid potential deopts from using try/catch.\n// to be able to optimize each path individually by branching early. This needs\n// a compiler or we can do it manually. Helpers that don't need this branching\n// live outside of this function.\n\n\nfunction ChildReconciler(shouldTrackSideEffects) {\n function deleteChild(returnFiber, childToDelete) {\n if (!shouldTrackSideEffects) {\n // Noop.\n return;\n } // Deletions are added in reversed order so we add it to the front.\n // At this point, the return fiber's effect list is empty except for\n // deletions, so we can just append the deletion to the list. The remaining\n // effects aren't added until the complete phase. Once we implement\n // resuming, this may not be true.\n\n\n var last = returnFiber.lastEffect;\n\n if (last !== null) {\n last.nextEffect = childToDelete;\n returnFiber.lastEffect = childToDelete;\n } else {\n returnFiber.firstEffect = returnFiber.lastEffect = childToDelete;\n }\n\n childToDelete.nextEffect = null;\n childToDelete.flags = Deletion;\n }\n\n function deleteRemainingChildren(returnFiber, currentFirstChild) {\n if (!shouldTrackSideEffects) {\n // Noop.\n return null;\n } // TODO: For the shouldClone case, this could be micro-optimized a bit by\n // assuming that after the first child we've already added everything.\n\n\n var childToDelete = currentFirstChild;\n\n while (childToDelete !== null) {\n deleteChild(returnFiber, childToDelete);\n childToDelete = childToDelete.sibling;\n }\n\n return null;\n }\n\n function mapRemainingChildren(returnFiber, currentFirstChild) {\n // Add the remaining children to a temporary map so that we can find them by\n // keys quickly. Implicit (null) keys get added to this set with their index\n // instead.\n var existingChildren = new Map();\n var existingChild = currentFirstChild;\n\n while (existingChild !== null) {\n if (existingChild.key !== null) {\n existingChildren.set(existingChild.key, existingChild);\n } else {\n existingChildren.set(existingChild.index, existingChild);\n }\n\n existingChild = existingChild.sibling;\n }\n\n return existingChildren;\n }\n\n function useFiber(fiber, pendingProps) {\n // We currently set sibling to null and index to 0 here because it is easy\n // to forget to do before returning it. E.g. for the single child case.\n var clone = createWorkInProgress(fiber, pendingProps);\n clone.index = 0;\n clone.sibling = null;\n return clone;\n }\n\n function placeChild(newFiber, lastPlacedIndex, newIndex) {\n newFiber.index = newIndex;\n\n if (!shouldTrackSideEffects) {\n // Noop.\n return lastPlacedIndex;\n }\n\n var current = newFiber.alternate;\n\n if (current !== null) {\n var oldIndex = current.index;\n\n if (oldIndex < lastPlacedIndex) {\n // This is a move.\n newFiber.flags = Placement;\n return lastPlacedIndex;\n } else {\n // This item can stay in place.\n return oldIndex;\n }\n } else {\n // This is an insertion.\n newFiber.flags = Placement;\n return lastPlacedIndex;\n }\n }\n\n function placeSingleChild(newFiber) {\n // This is simpler for the single child case. We only need to do a\n // placement for inserting new children.\n if (shouldTrackSideEffects && newFiber.alternate === null) {\n newFiber.flags = Placement;\n }\n\n return newFiber;\n }\n\n function updateTextNode(returnFiber, current, textContent, lanes) {\n if (current === null || current.tag !== HostText) {\n // Insert\n var created = createFiberFromText(textContent, returnFiber.mode, lanes);\n created.return = returnFiber;\n return created;\n } else {\n // Update\n var existing = useFiber(current, textContent);\n existing.return = returnFiber;\n return existing;\n }\n }\n\n function updateElement(returnFiber, current, element, lanes) {\n if (current !== null) {\n if (current.elementType === element.type || ( // Keep this check inline so it only runs on the false path:\n isCompatibleFamilyForHotReloading(current, element) )) {\n // Move based on index\n var existing = useFiber(current, element.props);\n existing.ref = coerceRef(returnFiber, current, element);\n existing.return = returnFiber;\n\n {\n existing._debugSource = element._source;\n existing._debugOwner = element._owner;\n }\n\n return existing;\n }\n } // Insert\n\n\n var created = createFiberFromElement(element, returnFiber.mode, lanes);\n created.ref = coerceRef(returnFiber, current, element);\n created.return = returnFiber;\n return created;\n }\n\n function updatePortal(returnFiber, current, portal, lanes) {\n if (current === null || current.tag !== HostPortal || current.stateNode.containerInfo !== portal.containerInfo || current.stateNode.implementation !== portal.implementation) {\n // Insert\n var created = createFiberFromPortal(portal, returnFiber.mode, lanes);\n created.return = returnFiber;\n return created;\n } else {\n // Update\n var existing = useFiber(current, portal.children || []);\n existing.return = returnFiber;\n return existing;\n }\n }\n\n function updateFragment(returnFiber, current, fragment, lanes, key) {\n if (current === null || current.tag !== Fragment) {\n // Insert\n var created = createFiberFromFragment(fragment, returnFiber.mode, lanes, key);\n created.return = returnFiber;\n return created;\n } else {\n // Update\n var existing = useFiber(current, fragment);\n existing.return = returnFiber;\n return existing;\n }\n }\n\n function createChild(returnFiber, newChild, lanes) {\n if (typeof newChild === 'string' || typeof newChild === 'number') {\n // Text nodes don't have keys. If the previous node is implicitly keyed\n // we can continue to replace it without aborting even if it is not a text\n // node.\n var created = createFiberFromText('' + newChild, returnFiber.mode, lanes);\n created.return = returnFiber;\n return created;\n }\n\n if (typeof newChild === 'object' && newChild !== null) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n {\n var _created = createFiberFromElement(newChild, returnFiber.mode, lanes);\n\n _created.ref = coerceRef(returnFiber, null, newChild);\n _created.return = returnFiber;\n return _created;\n }\n\n case REACT_PORTAL_TYPE:\n {\n var _created2 = createFiberFromPortal(newChild, returnFiber.mode, lanes);\n\n _created2.return = returnFiber;\n return _created2;\n }\n }\n\n if (isArray$1(newChild) || getIteratorFn(newChild)) {\n var _created3 = createFiberFromFragment(newChild, returnFiber.mode, lanes, null);\n\n _created3.return = returnFiber;\n return _created3;\n }\n\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n\n {\n if (typeof newChild === 'function') {\n warnOnFunctionType(returnFiber);\n }\n }\n\n return null;\n }\n\n function updateSlot(returnFiber, oldFiber, newChild, lanes) {\n // Update the fiber if the keys match, otherwise return null.\n var key = oldFiber !== null ? oldFiber.key : null;\n\n if (typeof newChild === 'string' || typeof newChild === 'number') {\n // Text nodes don't have keys. If the previous node is implicitly keyed\n // we can continue to replace it without aborting even if it is not a text\n // node.\n if (key !== null) {\n return null;\n }\n\n return updateTextNode(returnFiber, oldFiber, '' + newChild, lanes);\n }\n\n if (typeof newChild === 'object' && newChild !== null) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n {\n if (newChild.key === key) {\n if (newChild.type === REACT_FRAGMENT_TYPE) {\n return updateFragment(returnFiber, oldFiber, newChild.props.children, lanes, key);\n }\n\n return updateElement(returnFiber, oldFiber, newChild, lanes);\n } else {\n return null;\n }\n }\n\n case REACT_PORTAL_TYPE:\n {\n if (newChild.key === key) {\n return updatePortal(returnFiber, oldFiber, newChild, lanes);\n } else {\n return null;\n }\n }\n }\n\n if (isArray$1(newChild) || getIteratorFn(newChild)) {\n if (key !== null) {\n return null;\n }\n\n return updateFragment(returnFiber, oldFiber, newChild, lanes, null);\n }\n\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n\n {\n if (typeof newChild === 'function') {\n warnOnFunctionType(returnFiber);\n }\n }\n\n return null;\n }\n\n function updateFromMap(existingChildren, returnFiber, newIdx, newChild, lanes) {\n if (typeof newChild === 'string' || typeof newChild === 'number') {\n // Text nodes don't have keys, so we neither have to check the old nor\n // new node for the key. If both are text nodes, they match.\n var matchedFiber = existingChildren.get(newIdx) || null;\n return updateTextNode(returnFiber, matchedFiber, '' + newChild, lanes);\n }\n\n if (typeof newChild === 'object' && newChild !== null) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n {\n var _matchedFiber = existingChildren.get(newChild.key === null ? newIdx : newChild.key) || null;\n\n if (newChild.type === REACT_FRAGMENT_TYPE) {\n return updateFragment(returnFiber, _matchedFiber, newChild.props.children, lanes, newChild.key);\n }\n\n return updateElement(returnFiber, _matchedFiber, newChild, lanes);\n }\n\n case REACT_PORTAL_TYPE:\n {\n var _matchedFiber2 = existingChildren.get(newChild.key === null ? newIdx : newChild.key) || null;\n\n return updatePortal(returnFiber, _matchedFiber2, newChild, lanes);\n }\n\n }\n\n if (isArray$1(newChild) || getIteratorFn(newChild)) {\n var _matchedFiber3 = existingChildren.get(newIdx) || null;\n\n return updateFragment(returnFiber, _matchedFiber3, newChild, lanes, null);\n }\n\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n\n {\n if (typeof newChild === 'function') {\n warnOnFunctionType(returnFiber);\n }\n }\n\n return null;\n }\n /**\n * Warns if there is a duplicate or missing key\n */\n\n\n function warnOnInvalidKey(child, knownKeys, returnFiber) {\n {\n if (typeof child !== 'object' || child === null) {\n return knownKeys;\n }\n\n switch (child.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n warnForMissingKey(child, returnFiber);\n var key = child.key;\n\n if (typeof key !== 'string') {\n break;\n }\n\n if (knownKeys === null) {\n knownKeys = new Set();\n knownKeys.add(key);\n break;\n }\n\n if (!knownKeys.has(key)) {\n knownKeys.add(key);\n break;\n }\n\n error('Encountered two children with the same key, `%s`. ' + 'Keys should be unique so that components maintain their identity ' + 'across updates. Non-unique keys may cause children to be ' + 'duplicated and/or omitted — the behavior is unsupported and ' + 'could change in a future version.', key);\n\n break;\n }\n }\n\n return knownKeys;\n }\n\n function reconcileChildrenArray(returnFiber, currentFirstChild, newChildren, lanes) {\n // This algorithm can't optimize by searching from both ends since we\n // don't have backpointers on fibers. I'm trying to see how far we can get\n // with that model. If it ends up not being worth the tradeoffs, we can\n // add it later.\n // Even with a two ended optimization, we'd want to optimize for the case\n // where there are few changes and brute force the comparison instead of\n // going for the Map. It'd like to explore hitting that path first in\n // forward-only mode and only go for the Map once we notice that we need\n // lots of look ahead. This doesn't handle reversal as well as two ended\n // search but that's unusual. Besides, for the two ended optimization to\n // work on Iterables, we'd need to copy the whole set.\n // In this first iteration, we'll just live with hitting the bad case\n // (adding everything to a Map) in for every insert/move.\n // If you change this code, also update reconcileChildrenIterator() which\n // uses the same algorithm.\n {\n // First, validate keys.\n var knownKeys = null;\n\n for (var i = 0; i < newChildren.length; i++) {\n var child = newChildren[i];\n knownKeys = warnOnInvalidKey(child, knownKeys, returnFiber);\n }\n }\n\n var resultingFirstChild = null;\n var previousNewFiber = null;\n var oldFiber = currentFirstChild;\n var lastPlacedIndex = 0;\n var newIdx = 0;\n var nextOldFiber = null;\n\n for (; oldFiber !== null && newIdx < newChildren.length; newIdx++) {\n if (oldFiber.index > newIdx) {\n nextOldFiber = oldFiber;\n oldFiber = null;\n } else {\n nextOldFiber = oldFiber.sibling;\n }\n\n var newFiber = updateSlot(returnFiber, oldFiber, newChildren[newIdx], lanes);\n\n if (newFiber === null) {\n // TODO: This breaks on empty slots like null children. That's\n // unfortunate because it triggers the slow path all the time. We need\n // a better way to communicate whether this was a miss or null,\n // boolean, undefined, etc.\n if (oldFiber === null) {\n oldFiber = nextOldFiber;\n }\n\n break;\n }\n\n if (shouldTrackSideEffects) {\n if (oldFiber && newFiber.alternate === null) {\n // We matched the slot, but we didn't reuse the existing fiber, so we\n // need to delete the existing child.\n deleteChild(returnFiber, oldFiber);\n }\n }\n\n lastPlacedIndex = placeChild(newFiber, lastPlacedIndex, newIdx);\n\n if (previousNewFiber === null) {\n // TODO: Move out of the loop. This only happens for the first run.\n resultingFirstChild = newFiber;\n } else {\n // TODO: Defer siblings if we're not at the right index for this slot.\n // I.e. if we had null values before, then we want to defer this\n // for each null value. However, we also don't want to call updateSlot\n // with the previous one.\n previousNewFiber.sibling = newFiber;\n }\n\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n\n if (newIdx === newChildren.length) {\n // We've reached the end of the new children. We can delete the rest.\n deleteRemainingChildren(returnFiber, oldFiber);\n return resultingFirstChild;\n }\n\n if (oldFiber === null) {\n // If we don't have any more existing children we can choose a fast path\n // since the rest will all be insertions.\n for (; newIdx < newChildren.length; newIdx++) {\n var _newFiber = createChild(returnFiber, newChildren[newIdx], lanes);\n\n if (_newFiber === null) {\n continue;\n }\n\n lastPlacedIndex = placeChild(_newFiber, lastPlacedIndex, newIdx);\n\n if (previousNewFiber === null) {\n // TODO: Move out of the loop. This only happens for the first run.\n resultingFirstChild = _newFiber;\n } else {\n previousNewFiber.sibling = _newFiber;\n }\n\n previousNewFiber = _newFiber;\n }\n\n return resultingFirstChild;\n } // Add all children to a key map for quick lookups.\n\n\n var existingChildren = mapRemainingChildren(returnFiber, oldFiber); // Keep scanning and use the map to restore deleted items as moves.\n\n for (; newIdx < newChildren.length; newIdx++) {\n var _newFiber2 = updateFromMap(existingChildren, returnFiber, newIdx, newChildren[newIdx], lanes);\n\n if (_newFiber2 !== null) {\n if (shouldTrackSideEffects) {\n if (_newFiber2.alternate !== null) {\n // The new fiber is a work in progress, but if there exists a\n // current, that means that we reused the fiber. We need to delete\n // it from the child list so that we don't add it to the deletion\n // list.\n existingChildren.delete(_newFiber2.key === null ? newIdx : _newFiber2.key);\n }\n }\n\n lastPlacedIndex = placeChild(_newFiber2, lastPlacedIndex, newIdx);\n\n if (previousNewFiber === null) {\n resultingFirstChild = _newFiber2;\n } else {\n previousNewFiber.sibling = _newFiber2;\n }\n\n previousNewFiber = _newFiber2;\n }\n }\n\n if (shouldTrackSideEffects) {\n // Any existing children that weren't consumed above were deleted. We need\n // to add them to the deletion list.\n existingChildren.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n }\n\n return resultingFirstChild;\n }\n\n function reconcileChildrenIterator(returnFiber, currentFirstChild, newChildrenIterable, lanes) {\n // This is the same implementation as reconcileChildrenArray(),\n // but using the iterator instead.\n var iteratorFn = getIteratorFn(newChildrenIterable);\n\n if (!(typeof iteratorFn === 'function')) {\n {\n throw Error( \"An object is not an iterable. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n\n {\n // We don't support rendering Generators because it's a mutation.\n // See https://github.com/facebook/react/issues/12995\n if (typeof Symbol === 'function' && // $FlowFixMe Flow doesn't know about toStringTag\n newChildrenIterable[Symbol.toStringTag] === 'Generator') {\n if (!didWarnAboutGenerators) {\n error('Using Generators as children is unsupported and will likely yield ' + 'unexpected results because enumerating a generator mutates it. ' + 'You may convert it to an array with `Array.from()` or the ' + '`[...spread]` operator before rendering. Keep in mind ' + 'you might need to polyfill these features for older browsers.');\n }\n\n didWarnAboutGenerators = true;\n } // Warn about using Maps as children\n\n\n if (newChildrenIterable.entries === iteratorFn) {\n if (!didWarnAboutMaps) {\n error('Using Maps as children is not supported. ' + 'Use an array of keyed ReactElements instead.');\n }\n\n didWarnAboutMaps = true;\n } // First, validate keys.\n // We'll get a different iterator later for the main pass.\n\n\n var _newChildren = iteratorFn.call(newChildrenIterable);\n\n if (_newChildren) {\n var knownKeys = null;\n\n var _step = _newChildren.next();\n\n for (; !_step.done; _step = _newChildren.next()) {\n var child = _step.value;\n knownKeys = warnOnInvalidKey(child, knownKeys, returnFiber);\n }\n }\n }\n\n var newChildren = iteratorFn.call(newChildrenIterable);\n\n if (!(newChildren != null)) {\n {\n throw Error( \"An iterable object provided no iterator.\" );\n }\n }\n\n var resultingFirstChild = null;\n var previousNewFiber = null;\n var oldFiber = currentFirstChild;\n var lastPlacedIndex = 0;\n var newIdx = 0;\n var nextOldFiber = null;\n var step = newChildren.next();\n\n for (; oldFiber !== null && !step.done; newIdx++, step = newChildren.next()) {\n if (oldFiber.index > newIdx) {\n nextOldFiber = oldFiber;\n oldFiber = null;\n } else {\n nextOldFiber = oldFiber.sibling;\n }\n\n var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes);\n\n if (newFiber === null) {\n // TODO: This breaks on empty slots like null children. That's\n // unfortunate because it triggers the slow path all the time. We need\n // a better way to communicate whether this was a miss or null,\n // boolean, undefined, etc.\n if (oldFiber === null) {\n oldFiber = nextOldFiber;\n }\n\n break;\n }\n\n if (shouldTrackSideEffects) {\n if (oldFiber && newFiber.alternate === null) {\n // We matched the slot, but we didn't reuse the existing fiber, so we\n // need to delete the existing child.\n deleteChild(returnFiber, oldFiber);\n }\n }\n\n lastPlacedIndex = placeChild(newFiber, lastPlacedIndex, newIdx);\n\n if (previousNewFiber === null) {\n // TODO: Move out of the loop. This only happens for the first run.\n resultingFirstChild = newFiber;\n } else {\n // TODO: Defer siblings if we're not at the right index for this slot.\n // I.e. if we had null values before, then we want to defer this\n // for each null value. However, we also don't want to call updateSlot\n // with the previous one.\n previousNewFiber.sibling = newFiber;\n }\n\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n\n if (step.done) {\n // We've reached the end of the new children. We can delete the rest.\n deleteRemainingChildren(returnFiber, oldFiber);\n return resultingFirstChild;\n }\n\n if (oldFiber === null) {\n // If we don't have any more existing children we can choose a fast path\n // since the rest will all be insertions.\n for (; !step.done; newIdx++, step = newChildren.next()) {\n var _newFiber3 = createChild(returnFiber, step.value, lanes);\n\n if (_newFiber3 === null) {\n continue;\n }\n\n lastPlacedIndex = placeChild(_newFiber3, lastPlacedIndex, newIdx);\n\n if (previousNewFiber === null) {\n // TODO: Move out of the loop. This only happens for the first run.\n resultingFirstChild = _newFiber3;\n } else {\n previousNewFiber.sibling = _newFiber3;\n }\n\n previousNewFiber = _newFiber3;\n }\n\n return resultingFirstChild;\n } // Add all children to a key map for quick lookups.\n\n\n var existingChildren = mapRemainingChildren(returnFiber, oldFiber); // Keep scanning and use the map to restore deleted items as moves.\n\n for (; !step.done; newIdx++, step = newChildren.next()) {\n var _newFiber4 = updateFromMap(existingChildren, returnFiber, newIdx, step.value, lanes);\n\n if (_newFiber4 !== null) {\n if (shouldTrackSideEffects) {\n if (_newFiber4.alternate !== null) {\n // The new fiber is a work in progress, but if there exists a\n // current, that means that we reused the fiber. We need to delete\n // it from the child list so that we don't add it to the deletion\n // list.\n existingChildren.delete(_newFiber4.key === null ? newIdx : _newFiber4.key);\n }\n }\n\n lastPlacedIndex = placeChild(_newFiber4, lastPlacedIndex, newIdx);\n\n if (previousNewFiber === null) {\n resultingFirstChild = _newFiber4;\n } else {\n previousNewFiber.sibling = _newFiber4;\n }\n\n previousNewFiber = _newFiber4;\n }\n }\n\n if (shouldTrackSideEffects) {\n // Any existing children that weren't consumed above were deleted. We need\n // to add them to the deletion list.\n existingChildren.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n }\n\n return resultingFirstChild;\n }\n\n function reconcileSingleTextNode(returnFiber, currentFirstChild, textContent, lanes) {\n // There's no need to check for keys on text nodes since we don't have a\n // way to define them.\n if (currentFirstChild !== null && currentFirstChild.tag === HostText) {\n // We already have an existing node so let's just update it and delete\n // the rest.\n deleteRemainingChildren(returnFiber, currentFirstChild.sibling);\n var existing = useFiber(currentFirstChild, textContent);\n existing.return = returnFiber;\n return existing;\n } // The existing first child is not a text node so we need to create one\n // and delete the existing ones.\n\n\n deleteRemainingChildren(returnFiber, currentFirstChild);\n var created = createFiberFromText(textContent, returnFiber.mode, lanes);\n created.return = returnFiber;\n return created;\n }\n\n function reconcileSingleElement(returnFiber, currentFirstChild, element, lanes) {\n var key = element.key;\n var child = currentFirstChild;\n\n while (child !== null) {\n // TODO: If key === null and child.key === null, then this only applies to\n // the first item in the list.\n if (child.key === key) {\n switch (child.tag) {\n case Fragment:\n {\n if (element.type === REACT_FRAGMENT_TYPE) {\n deleteRemainingChildren(returnFiber, child.sibling);\n var existing = useFiber(child, element.props.children);\n existing.return = returnFiber;\n\n {\n existing._debugSource = element._source;\n existing._debugOwner = element._owner;\n }\n\n return existing;\n }\n\n break;\n }\n\n case Block:\n\n // We intentionally fallthrough here if enableBlocksAPI is not on.\n // eslint-disable-next-lined no-fallthrough\n\n default:\n {\n if (child.elementType === element.type || ( // Keep this check inline so it only runs on the false path:\n isCompatibleFamilyForHotReloading(child, element) )) {\n deleteRemainingChildren(returnFiber, child.sibling);\n\n var _existing3 = useFiber(child, element.props);\n\n _existing3.ref = coerceRef(returnFiber, child, element);\n _existing3.return = returnFiber;\n\n {\n _existing3._debugSource = element._source;\n _existing3._debugOwner = element._owner;\n }\n\n return _existing3;\n }\n\n break;\n }\n } // Didn't match.\n\n\n deleteRemainingChildren(returnFiber, child);\n break;\n } else {\n deleteChild(returnFiber, child);\n }\n\n child = child.sibling;\n }\n\n if (element.type === REACT_FRAGMENT_TYPE) {\n var created = createFiberFromFragment(element.props.children, returnFiber.mode, lanes, element.key);\n created.return = returnFiber;\n return created;\n } else {\n var _created4 = createFiberFromElement(element, returnFiber.mode, lanes);\n\n _created4.ref = coerceRef(returnFiber, currentFirstChild, element);\n _created4.return = returnFiber;\n return _created4;\n }\n }\n\n function reconcileSinglePortal(returnFiber, currentFirstChild, portal, lanes) {\n var key = portal.key;\n var child = currentFirstChild;\n\n while (child !== null) {\n // TODO: If key === null and child.key === null, then this only applies to\n // the first item in the list.\n if (child.key === key) {\n if (child.tag === HostPortal && child.stateNode.containerInfo === portal.containerInfo && child.stateNode.implementation === portal.implementation) {\n deleteRemainingChildren(returnFiber, child.sibling);\n var existing = useFiber(child, portal.children || []);\n existing.return = returnFiber;\n return existing;\n } else {\n deleteRemainingChildren(returnFiber, child);\n break;\n }\n } else {\n deleteChild(returnFiber, child);\n }\n\n child = child.sibling;\n }\n\n var created = createFiberFromPortal(portal, returnFiber.mode, lanes);\n created.return = returnFiber;\n return created;\n } // This API will tag the children with the side-effect of the reconciliation\n // itself. They will be added to the side-effect list as we pass through the\n // children and the parent.\n\n\n function reconcileChildFibers(returnFiber, currentFirstChild, newChild, lanes) {\n // This function is not recursive.\n // If the top level item is an array, we treat it as a set of children,\n // not as a fragment. Nested arrays on the other hand will be treated as\n // fragment nodes. Recursion happens at the normal flow.\n // Handle top level unkeyed fragments as if they were arrays.\n // This leads to an ambiguity between <>{[...]}</> and <>...</>.\n // We treat the ambiguous cases above the same.\n var isUnkeyedTopLevelFragment = typeof newChild === 'object' && newChild !== null && newChild.type === REACT_FRAGMENT_TYPE && newChild.key === null;\n\n if (isUnkeyedTopLevelFragment) {\n newChild = newChild.props.children;\n } // Handle object types\n\n\n var isObject = typeof newChild === 'object' && newChild !== null;\n\n if (isObject) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return placeSingleChild(reconcileSingleElement(returnFiber, currentFirstChild, newChild, lanes));\n\n case REACT_PORTAL_TYPE:\n return placeSingleChild(reconcileSinglePortal(returnFiber, currentFirstChild, newChild, lanes));\n\n }\n }\n\n if (typeof newChild === 'string' || typeof newChild === 'number') {\n return placeSingleChild(reconcileSingleTextNode(returnFiber, currentFirstChild, '' + newChild, lanes));\n }\n\n if (isArray$1(newChild)) {\n return reconcileChildrenArray(returnFiber, currentFirstChild, newChild, lanes);\n }\n\n if (getIteratorFn(newChild)) {\n return reconcileChildrenIterator(returnFiber, currentFirstChild, newChild, lanes);\n }\n\n if (isObject) {\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n\n {\n if (typeof newChild === 'function') {\n warnOnFunctionType(returnFiber);\n }\n }\n\n if (typeof newChild === 'undefined' && !isUnkeyedTopLevelFragment) {\n // If the new child is undefined, and the return fiber is a composite\n // component, throw an error. If Fiber return types are disabled,\n // we already threw above.\n switch (returnFiber.tag) {\n case ClassComponent:\n {\n {\n var instance = returnFiber.stateNode;\n\n if (instance.render._isMockFunction) {\n // We allow auto-mocks to proceed as if they're returning null.\n break;\n }\n }\n }\n // Intentionally fall through to the next case, which handles both\n // functions and classes\n // eslint-disable-next-lined no-fallthrough\n\n case Block:\n case FunctionComponent:\n case ForwardRef:\n case SimpleMemoComponent:\n {\n {\n {\n throw Error( (getComponentName(returnFiber.type) || 'Component') + \"(...): Nothing was returned from render. This usually means a return statement is missing. Or, to render nothing, return null.\" );\n }\n }\n }\n }\n } // Remaining cases are all treated as empty.\n\n\n return deleteRemainingChildren(returnFiber, currentFirstChild);\n }\n\n return reconcileChildFibers;\n}\n\nvar reconcileChildFibers = ChildReconciler(true);\nvar mountChildFibers = ChildReconciler(false);\nfunction cloneChildFibers(current, workInProgress) {\n if (!(current === null || workInProgress.child === current.child)) {\n {\n throw Error( \"Resuming work not yet implemented.\" );\n }\n }\n\n if (workInProgress.child === null) {\n return;\n }\n\n var currentChild = workInProgress.child;\n var newChild = createWorkInProgress(currentChild, currentChild.pendingProps);\n workInProgress.child = newChild;\n newChild.return = workInProgress;\n\n while (currentChild.sibling !== null) {\n currentChild = currentChild.sibling;\n newChild = newChild.sibling = createWorkInProgress(currentChild, currentChild.pendingProps);\n newChild.return = workInProgress;\n }\n\n newChild.sibling = null;\n} // Reset a workInProgress child set to prepare it for a second pass.\n\nfunction resetChildFibers(workInProgress, lanes) {\n var child = workInProgress.child;\n\n while (child !== null) {\n resetWorkInProgress(child, lanes);\n child = child.sibling;\n }\n}\n\nvar NO_CONTEXT = {};\nvar contextStackCursor$1 = createCursor(NO_CONTEXT);\nvar contextFiberStackCursor = createCursor(NO_CONTEXT);\nvar rootInstanceStackCursor = createCursor(NO_CONTEXT);\n\nfunction requiredContext(c) {\n if (!(c !== NO_CONTEXT)) {\n {\n throw Error( \"Expected host context to exist. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n\n return c;\n}\n\nfunction getRootHostContainer() {\n var rootInstance = requiredContext(rootInstanceStackCursor.current);\n return rootInstance;\n}\n\nfunction pushHostContainer(fiber, nextRootInstance) {\n // Push current root instance onto the stack;\n // This allows us to reset root when portals are popped.\n push(rootInstanceStackCursor, nextRootInstance, fiber); // Track the context and the Fiber that provided it.\n // This enables us to pop only Fibers that provide unique contexts.\n\n push(contextFiberStackCursor, fiber, fiber); // Finally, we need to push the host context to the stack.\n // However, we can't just call getRootHostContext() and push it because\n // we'd have a different number of entries on the stack depending on\n // whether getRootHostContext() throws somewhere in renderer code or not.\n // So we push an empty value first. This lets us safely unwind on errors.\n\n push(contextStackCursor$1, NO_CONTEXT, fiber);\n var nextRootContext = getRootHostContext(nextRootInstance); // Now that we know this function doesn't throw, replace it.\n\n pop(contextStackCursor$1, fiber);\n push(contextStackCursor$1, nextRootContext, fiber);\n}\n\nfunction popHostContainer(fiber) {\n pop(contextStackCursor$1, fiber);\n pop(contextFiberStackCursor, fiber);\n pop(rootInstanceStackCursor, fiber);\n}\n\nfunction getHostContext() {\n var context = requiredContext(contextStackCursor$1.current);\n return context;\n}\n\nfunction pushHostContext(fiber) {\n var rootInstance = requiredContext(rootInstanceStackCursor.current);\n var context = requiredContext(contextStackCursor$1.current);\n var nextContext = getChildHostContext(context, fiber.type); // Don't push this Fiber's context unless it's unique.\n\n if (context === nextContext) {\n return;\n } // Track the context and the Fiber that provided it.\n // This enables us to pop only Fibers that provide unique contexts.\n\n\n push(contextFiberStackCursor, fiber, fiber);\n push(contextStackCursor$1, nextContext, fiber);\n}\n\nfunction popHostContext(fiber) {\n // Do not pop unless this Fiber provided the current context.\n // pushHostContext() only pushes Fibers that provide unique contexts.\n if (contextFiberStackCursor.current !== fiber) {\n return;\n }\n\n pop(contextStackCursor$1, fiber);\n pop(contextFiberStackCursor, fiber);\n}\n\nvar DefaultSuspenseContext = 0; // The Suspense Context is split into two parts. The lower bits is\n// inherited deeply down the subtree. The upper bits only affect\n// this immediate suspense boundary and gets reset each new\n// boundary or suspense list.\n\nvar SubtreeSuspenseContextMask = 1; // Subtree Flags:\n// InvisibleParentSuspenseContext indicates that one of our parent Suspense\n// boundaries is not currently showing visible main content.\n// Either because it is already showing a fallback or is not mounted at all.\n// We can use this to determine if it is desirable to trigger a fallback at\n// the parent. If not, then we might need to trigger undesirable boundaries\n// and/or suspend the commit to avoid hiding the parent content.\n\nvar InvisibleParentSuspenseContext = 1; // Shallow Flags:\n// ForceSuspenseFallback can be used by SuspenseList to force newly added\n// items into their fallback state during one of the render passes.\n\nvar ForceSuspenseFallback = 2;\nvar suspenseStackCursor = createCursor(DefaultSuspenseContext);\nfunction hasSuspenseContext(parentContext, flag) {\n return (parentContext & flag) !== 0;\n}\nfunction setDefaultShallowSuspenseContext(parentContext) {\n return parentContext & SubtreeSuspenseContextMask;\n}\nfunction setShallowSuspenseContext(parentContext, shallowContext) {\n return parentContext & SubtreeSuspenseContextMask | shallowContext;\n}\nfunction addSubtreeSuspenseContext(parentContext, subtreeContext) {\n return parentContext | subtreeContext;\n}\nfunction pushSuspenseContext(fiber, newContext) {\n push(suspenseStackCursor, newContext, fiber);\n}\nfunction popSuspenseContext(fiber) {\n pop(suspenseStackCursor, fiber);\n}\n\nfunction shouldCaptureSuspense(workInProgress, hasInvisibleParent) {\n // If it was the primary children that just suspended, capture and render the\n // fallback. Otherwise, don't capture and bubble to the next boundary.\n var nextState = workInProgress.memoizedState;\n\n if (nextState !== null) {\n if (nextState.dehydrated !== null) {\n // A dehydrated boundary always captures.\n return true;\n }\n\n return false;\n }\n\n var props = workInProgress.memoizedProps; // In order to capture, the Suspense component must have a fallback prop.\n\n if (props.fallback === undefined) {\n return false;\n } // Regular boundaries always capture.\n\n\n if (props.unstable_avoidThisFallback !== true) {\n return true;\n } // If it's a boundary we should avoid, then we prefer to bubble up to the\n // parent boundary if it is currently invisible.\n\n\n if (hasInvisibleParent) {\n return false;\n } // If the parent is not able to handle it, we must handle it.\n\n\n return true;\n}\nfunction findFirstSuspended(row) {\n var node = row;\n\n while (node !== null) {\n if (node.tag === SuspenseComponent) {\n var state = node.memoizedState;\n\n if (state !== null) {\n var dehydrated = state.dehydrated;\n\n if (dehydrated === null || isSuspenseInstancePending(dehydrated) || isSuspenseInstanceFallback(dehydrated)) {\n return node;\n }\n }\n } else if (node.tag === SuspenseListComponent && // revealOrder undefined can't be trusted because it don't\n // keep track of whether it suspended or not.\n node.memoizedProps.revealOrder !== undefined) {\n var didSuspend = (node.flags & DidCapture) !== NoFlags;\n\n if (didSuspend) {\n return node;\n }\n } else if (node.child !== null) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n\n if (node === row) {\n return null;\n }\n\n while (node.sibling === null) {\n if (node.return === null || node.return === row) {\n return null;\n }\n\n node = node.return;\n }\n\n node.sibling.return = node.return;\n node = node.sibling;\n }\n\n return null;\n}\n\nvar NoFlags$1 =\n/* */\n0; // Represents whether effect should fire.\n\nvar HasEffect =\n/* */\n1; // Represents the phase in which the effect (not the clean-up) fires.\n\nvar Layout =\n/* */\n2;\nvar Passive$1 =\n/* */\n4;\n\n// This may have been an insertion or a hydration.\n\nvar hydrationParentFiber = null;\nvar nextHydratableInstance = null;\nvar isHydrating = false;\n\nfunction enterHydrationState(fiber) {\n\n var parentInstance = fiber.stateNode.containerInfo;\n nextHydratableInstance = getFirstHydratableChild(parentInstance);\n hydrationParentFiber = fiber;\n isHydrating = true;\n return true;\n}\n\nfunction deleteHydratableInstance(returnFiber, instance) {\n {\n switch (returnFiber.tag) {\n case HostRoot:\n didNotHydrateContainerInstance(returnFiber.stateNode.containerInfo, instance);\n break;\n\n case HostComponent:\n didNotHydrateInstance(returnFiber.type, returnFiber.memoizedProps, returnFiber.stateNode, instance);\n break;\n }\n }\n\n var childToDelete = createFiberFromHostInstanceForDeletion();\n childToDelete.stateNode = instance;\n childToDelete.return = returnFiber;\n childToDelete.flags = Deletion; // This might seem like it belongs on progressedFirstDeletion. However,\n // these children are not part of the reconciliation list of children.\n // Even if we abort and rereconcile the children, that will try to hydrate\n // again and the nodes are still in the host tree so these will be\n // recreated.\n\n if (returnFiber.lastEffect !== null) {\n returnFiber.lastEffect.nextEffect = childToDelete;\n returnFiber.lastEffect = childToDelete;\n } else {\n returnFiber.firstEffect = returnFiber.lastEffect = childToDelete;\n }\n}\n\nfunction insertNonHydratedInstance(returnFiber, fiber) {\n fiber.flags = fiber.flags & ~Hydrating | Placement;\n\n {\n switch (returnFiber.tag) {\n case HostRoot:\n {\n var parentContainer = returnFiber.stateNode.containerInfo;\n\n switch (fiber.tag) {\n case HostComponent:\n var type = fiber.type;\n var props = fiber.pendingProps;\n didNotFindHydratableContainerInstance(parentContainer, type);\n break;\n\n case HostText:\n var text = fiber.pendingProps;\n didNotFindHydratableContainerTextInstance(parentContainer, text);\n break;\n }\n\n break;\n }\n\n case HostComponent:\n {\n var parentType = returnFiber.type;\n var parentProps = returnFiber.memoizedProps;\n var parentInstance = returnFiber.stateNode;\n\n switch (fiber.tag) {\n case HostComponent:\n var _type = fiber.type;\n var _props = fiber.pendingProps;\n didNotFindHydratableInstance(parentType, parentProps, parentInstance, _type);\n break;\n\n case HostText:\n var _text = fiber.pendingProps;\n didNotFindHydratableTextInstance(parentType, parentProps, parentInstance, _text);\n break;\n\n case SuspenseComponent:\n didNotFindHydratableSuspenseInstance(parentType, parentProps);\n break;\n }\n\n break;\n }\n\n default:\n return;\n }\n }\n}\n\nfunction tryHydrate(fiber, nextInstance) {\n switch (fiber.tag) {\n case HostComponent:\n {\n var type = fiber.type;\n var props = fiber.pendingProps;\n var instance = canHydrateInstance(nextInstance, type);\n\n if (instance !== null) {\n fiber.stateNode = instance;\n return true;\n }\n\n return false;\n }\n\n case HostText:\n {\n var text = fiber.pendingProps;\n var textInstance = canHydrateTextInstance(nextInstance, text);\n\n if (textInstance !== null) {\n fiber.stateNode = textInstance;\n return true;\n }\n\n return false;\n }\n\n case SuspenseComponent:\n {\n\n return false;\n }\n\n default:\n return false;\n }\n}\n\nfunction tryToClaimNextHydratableInstance(fiber) {\n if (!isHydrating) {\n return;\n }\n\n var nextInstance = nextHydratableInstance;\n\n if (!nextInstance) {\n // Nothing to hydrate. Make it an insertion.\n insertNonHydratedInstance(hydrationParentFiber, fiber);\n isHydrating = false;\n hydrationParentFiber = fiber;\n return;\n }\n\n var firstAttemptedInstance = nextInstance;\n\n if (!tryHydrate(fiber, nextInstance)) {\n // If we can't hydrate this instance let's try the next one.\n // We use this as a heuristic. It's based on intuition and not data so it\n // might be flawed or unnecessary.\n nextInstance = getNextHydratableSibling(firstAttemptedInstance);\n\n if (!nextInstance || !tryHydrate(fiber, nextInstance)) {\n // Nothing to hydrate. Make it an insertion.\n insertNonHydratedInstance(hydrationParentFiber, fiber);\n isHydrating = false;\n hydrationParentFiber = fiber;\n return;\n } // We matched the next one, we'll now assume that the first one was\n // superfluous and we'll delete it. Since we can't eagerly delete it\n // we'll have to schedule a deletion. To do that, this node needs a dummy\n // fiber associated with it.\n\n\n deleteHydratableInstance(hydrationParentFiber, firstAttemptedInstance);\n }\n\n hydrationParentFiber = fiber;\n nextHydratableInstance = getFirstHydratableChild(nextInstance);\n}\n\nfunction prepareToHydrateHostInstance(fiber, rootContainerInstance, hostContext) {\n\n var instance = fiber.stateNode;\n var updatePayload = hydrateInstance(instance, fiber.type, fiber.memoizedProps, rootContainerInstance, hostContext, fiber); // TODO: Type this specific to this type of component.\n\n fiber.updateQueue = updatePayload; // If the update payload indicates that there is a change or if there\n // is a new ref we mark this as an update.\n\n if (updatePayload !== null) {\n return true;\n }\n\n return false;\n}\n\nfunction prepareToHydrateHostTextInstance(fiber) {\n\n var textInstance = fiber.stateNode;\n var textContent = fiber.memoizedProps;\n var shouldUpdate = hydrateTextInstance(textInstance, textContent, fiber);\n\n {\n if (shouldUpdate) {\n // We assume that prepareToHydrateHostTextInstance is called in a context where the\n // hydration parent is the parent host component of this host text.\n var returnFiber = hydrationParentFiber;\n\n if (returnFiber !== null) {\n switch (returnFiber.tag) {\n case HostRoot:\n {\n var parentContainer = returnFiber.stateNode.containerInfo;\n didNotMatchHydratedContainerTextInstance(parentContainer, textInstance, textContent);\n break;\n }\n\n case HostComponent:\n {\n var parentType = returnFiber.type;\n var parentProps = returnFiber.memoizedProps;\n var parentInstance = returnFiber.stateNode;\n didNotMatchHydratedTextInstance(parentType, parentProps, parentInstance, textInstance, textContent);\n break;\n }\n }\n }\n }\n }\n\n return shouldUpdate;\n}\n\nfunction skipPastDehydratedSuspenseInstance(fiber) {\n\n var suspenseState = fiber.memoizedState;\n var suspenseInstance = suspenseState !== null ? suspenseState.dehydrated : null;\n\n if (!suspenseInstance) {\n {\n throw Error( \"Expected to have a hydrated suspense instance. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n\n return getNextHydratableInstanceAfterSuspenseInstance(suspenseInstance);\n}\n\nfunction popToNextHostParent(fiber) {\n var parent = fiber.return;\n\n while (parent !== null && parent.tag !== HostComponent && parent.tag !== HostRoot && parent.tag !== SuspenseComponent) {\n parent = parent.return;\n }\n\n hydrationParentFiber = parent;\n}\n\nfunction popHydrationState(fiber) {\n\n if (fiber !== hydrationParentFiber) {\n // We're deeper than the current hydration context, inside an inserted\n // tree.\n return false;\n }\n\n if (!isHydrating) {\n // If we're not currently hydrating but we're in a hydration context, then\n // we were an insertion and now need to pop up reenter hydration of our\n // siblings.\n popToNextHostParent(fiber);\n isHydrating = true;\n return false;\n }\n\n var type = fiber.type; // If we have any remaining hydratable nodes, we need to delete them now.\n // We only do this deeper than head and body since they tend to have random\n // other nodes in them. We also ignore components with pure text content in\n // side of them.\n // TODO: Better heuristic.\n\n if (fiber.tag !== HostComponent || type !== 'head' && type !== 'body' && !shouldSetTextContent(type, fiber.memoizedProps)) {\n var nextInstance = nextHydratableInstance;\n\n while (nextInstance) {\n deleteHydratableInstance(fiber, nextInstance);\n nextInstance = getNextHydratableSibling(nextInstance);\n }\n }\n\n popToNextHostParent(fiber);\n\n if (fiber.tag === SuspenseComponent) {\n nextHydratableInstance = skipPastDehydratedSuspenseInstance(fiber);\n } else {\n nextHydratableInstance = hydrationParentFiber ? getNextHydratableSibling(fiber.stateNode) : null;\n }\n\n return true;\n}\n\nfunction resetHydrationState() {\n\n hydrationParentFiber = null;\n nextHydratableInstance = null;\n isHydrating = false;\n}\n\nfunction getIsHydrating() {\n return isHydrating;\n}\n\n// and should be reset before starting a new render.\n// This tracks which mutable sources need to be reset after a render.\n\nvar workInProgressSources = [];\nvar rendererSigil$1;\n\n{\n // Used to detect multiple renderers using the same mutable source.\n rendererSigil$1 = {};\n}\n\nfunction markSourceAsDirty(mutableSource) {\n workInProgressSources.push(mutableSource);\n}\nfunction resetWorkInProgressVersions() {\n for (var i = 0; i < workInProgressSources.length; i++) {\n var mutableSource = workInProgressSources[i];\n\n {\n mutableSource._workInProgressVersionPrimary = null;\n }\n }\n\n workInProgressSources.length = 0;\n}\nfunction getWorkInProgressVersion(mutableSource) {\n {\n return mutableSource._workInProgressVersionPrimary;\n }\n}\nfunction setWorkInProgressVersion(mutableSource, version) {\n {\n mutableSource._workInProgressVersionPrimary = version;\n }\n\n workInProgressSources.push(mutableSource);\n}\nfunction warnAboutMultipleRenderersDEV(mutableSource) {\n {\n {\n if (mutableSource._currentPrimaryRenderer == null) {\n mutableSource._currentPrimaryRenderer = rendererSigil$1;\n } else if (mutableSource._currentPrimaryRenderer !== rendererSigil$1) {\n error('Detected multiple renderers concurrently rendering the ' + 'same mutable source. This is currently unsupported.');\n }\n }\n }\n} // Eager reads the version of a mutable source and stores it on the root.\n\nvar ReactCurrentDispatcher$1 = ReactSharedInternals.ReactCurrentDispatcher,\n ReactCurrentBatchConfig$1 = ReactSharedInternals.ReactCurrentBatchConfig;\nvar didWarnAboutMismatchedHooksForComponent;\nvar didWarnAboutUseOpaqueIdentifier;\n\n{\n didWarnAboutUseOpaqueIdentifier = {};\n didWarnAboutMismatchedHooksForComponent = new Set();\n}\n\n// These are set right before calling the component.\nvar renderLanes = NoLanes; // The work-in-progress fiber. I've named it differently to distinguish it from\n// the work-in-progress hook.\n\nvar currentlyRenderingFiber$1 = null; // Hooks are stored as a linked list on the fiber's memoizedState field. The\n// current hook list is the list that belongs to the current fiber. The\n// work-in-progress hook list is a new list that will be added to the\n// work-in-progress fiber.\n\nvar currentHook = null;\nvar workInProgressHook = null; // Whether an update was scheduled at any point during the render phase. This\n// does not get reset if we do another render pass; only when we're completely\n// finished evaluating this component. This is an optimization so we know\n// whether we need to clear render phase updates after a throw.\n\nvar didScheduleRenderPhaseUpdate = false; // Where an update was scheduled only during the current render pass. This\n// gets reset after each attempt.\n// TODO: Maybe there's some way to consolidate this with\n// `didScheduleRenderPhaseUpdate`. Or with `numberOfReRenders`.\n\nvar didScheduleRenderPhaseUpdateDuringThisPass = false;\nvar RE_RENDER_LIMIT = 25; // In DEV, this is the name of the currently executing primitive hook\n\nvar currentHookNameInDev = null; // In DEV, this list ensures that hooks are called in the same order between renders.\n// The list stores the order of hooks used during the initial render (mount).\n// Subsequent renders (updates) reference this list.\n\nvar hookTypesDev = null;\nvar hookTypesUpdateIndexDev = -1; // In DEV, this tracks whether currently rendering component needs to ignore\n// the dependencies for Hooks that need them (e.g. useEffect or useMemo).\n// When true, such Hooks will always be \"remounted\". Only used during hot reload.\n\nvar ignorePreviousDependencies = false;\n\nfunction mountHookTypesDev() {\n {\n var hookName = currentHookNameInDev;\n\n if (hookTypesDev === null) {\n hookTypesDev = [hookName];\n } else {\n hookTypesDev.push(hookName);\n }\n }\n}\n\nfunction updateHookTypesDev() {\n {\n var hookName = currentHookNameInDev;\n\n if (hookTypesDev !== null) {\n hookTypesUpdateIndexDev++;\n\n if (hookTypesDev[hookTypesUpdateIndexDev] !== hookName) {\n warnOnHookMismatchInDev(hookName);\n }\n }\n }\n}\n\nfunction checkDepsAreArrayDev(deps) {\n {\n if (deps !== undefined && deps !== null && !Array.isArray(deps)) {\n // Verify deps, but only on mount to avoid extra checks.\n // It's unlikely their type would change as usually you define them inline.\n error('%s received a final argument that is not an array (instead, received `%s`). When ' + 'specified, the final argument must be an array.', currentHookNameInDev, typeof deps);\n }\n }\n}\n\nfunction warnOnHookMismatchInDev(currentHookName) {\n {\n var componentName = getComponentName(currentlyRenderingFiber$1.type);\n\n if (!didWarnAboutMismatchedHooksForComponent.has(componentName)) {\n didWarnAboutMismatchedHooksForComponent.add(componentName);\n\n if (hookTypesDev !== null) {\n var table = '';\n var secondColumnStart = 30;\n\n for (var i = 0; i <= hookTypesUpdateIndexDev; i++) {\n var oldHookName = hookTypesDev[i];\n var newHookName = i === hookTypesUpdateIndexDev ? currentHookName : oldHookName;\n var row = i + 1 + \". \" + oldHookName; // Extra space so second column lines up\n // lol @ IE not supporting String#repeat\n\n while (row.length < secondColumnStart) {\n row += ' ';\n }\n\n row += newHookName + '\\n';\n table += row;\n }\n\n error('React has detected a change in the order of Hooks called by %s. ' + 'This will lead to bugs and errors if not fixed. ' + 'For more information, read the Rules of Hooks: https://reactjs.org/link/rules-of-hooks\\n\\n' + ' Previous render Next render\\n' + ' ------------------------------------------------------\\n' + '%s' + ' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n', componentName, table);\n }\n }\n }\n}\n\nfunction throwInvalidHookError() {\n {\n {\n throw Error( \"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.\" );\n }\n }\n}\n\nfunction areHookInputsEqual(nextDeps, prevDeps) {\n {\n if (ignorePreviousDependencies) {\n // Only true when this component is being hot reloaded.\n return false;\n }\n }\n\n if (prevDeps === null) {\n {\n error('%s received a final argument during this render, but not during ' + 'the previous render. Even though the final argument is optional, ' + 'its type cannot change between renders.', currentHookNameInDev);\n }\n\n return false;\n }\n\n {\n // Don't bother comparing lengths in prod because these arrays should be\n // passed inline.\n if (nextDeps.length !== prevDeps.length) {\n error('The final argument passed to %s changed size between renders. The ' + 'order and size of this array must remain constant.\\n\\n' + 'Previous: %s\\n' + 'Incoming: %s', currentHookNameInDev, \"[\" + prevDeps.join(', ') + \"]\", \"[\" + nextDeps.join(', ') + \"]\");\n }\n }\n\n for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++) {\n if (objectIs(nextDeps[i], prevDeps[i])) {\n continue;\n }\n\n return false;\n }\n\n return true;\n}\n\nfunction renderWithHooks(current, workInProgress, Component, props, secondArg, nextRenderLanes) {\n renderLanes = nextRenderLanes;\n currentlyRenderingFiber$1 = workInProgress;\n\n {\n hookTypesDev = current !== null ? current._debugHookTypes : null;\n hookTypesUpdateIndexDev = -1; // Used for hot reloading:\n\n ignorePreviousDependencies = current !== null && current.type !== workInProgress.type;\n }\n\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n workInProgress.lanes = NoLanes; // The following should have already been reset\n // currentHook = null;\n // workInProgressHook = null;\n // didScheduleRenderPhaseUpdate = false;\n // TODO Warn if no hooks are used at all during mount, then some are used during update.\n // Currently we will identify the update render as a mount because memoizedState === null.\n // This is tricky because it's valid for certain types of components (e.g. React.lazy)\n // Using memoizedState to differentiate between mount/update only works if at least one stateful hook is used.\n // Non-stateful hooks (e.g. context) don't get added to memoizedState,\n // so memoizedState would be null during updates and mounts.\n\n {\n if (current !== null && current.memoizedState !== null) {\n ReactCurrentDispatcher$1.current = HooksDispatcherOnUpdateInDEV;\n } else if (hookTypesDev !== null) {\n // This dispatcher handles an edge case where a component is updating,\n // but no stateful hooks have been used.\n // We want to match the production code behavior (which will use HooksDispatcherOnMount),\n // but with the extra DEV validation to ensure hooks ordering hasn't changed.\n // This dispatcher does that.\n ReactCurrentDispatcher$1.current = HooksDispatcherOnMountWithHookTypesInDEV;\n } else {\n ReactCurrentDispatcher$1.current = HooksDispatcherOnMountInDEV;\n }\n }\n\n var children = Component(props, secondArg); // Check if there was a render phase update\n\n if (didScheduleRenderPhaseUpdateDuringThisPass) {\n // Keep rendering in a loop for as long as render phase updates continue to\n // be scheduled. Use a counter to prevent infinite loops.\n var numberOfReRenders = 0;\n\n do {\n didScheduleRenderPhaseUpdateDuringThisPass = false;\n\n if (!(numberOfReRenders < RE_RENDER_LIMIT)) {\n {\n throw Error( \"Too many re-renders. React limits the number of renders to prevent an infinite loop.\" );\n }\n }\n\n numberOfReRenders += 1;\n\n {\n // Even when hot reloading, allow dependencies to stabilize\n // after first render to prevent infinite render phase updates.\n ignorePreviousDependencies = false;\n } // Start over from the beginning of the list\n\n\n currentHook = null;\n workInProgressHook = null;\n workInProgress.updateQueue = null;\n\n {\n // Also validate hook order for cascading updates.\n hookTypesUpdateIndexDev = -1;\n }\n\n ReactCurrentDispatcher$1.current = HooksDispatcherOnRerenderInDEV ;\n children = Component(props, secondArg);\n } while (didScheduleRenderPhaseUpdateDuringThisPass);\n } // We can assume the previous dispatcher is always this one, since we set it\n // at the beginning of the render phase and there's no re-entrancy.\n\n\n ReactCurrentDispatcher$1.current = ContextOnlyDispatcher;\n\n {\n workInProgress._debugHookTypes = hookTypesDev;\n } // This check uses currentHook so that it works the same in DEV and prod bundles.\n // hookTypesDev could catch more cases (e.g. context) but only in DEV bundles.\n\n\n var didRenderTooFewHooks = currentHook !== null && currentHook.next !== null;\n renderLanes = NoLanes;\n currentlyRenderingFiber$1 = null;\n currentHook = null;\n workInProgressHook = null;\n\n {\n currentHookNameInDev = null;\n hookTypesDev = null;\n hookTypesUpdateIndexDev = -1;\n }\n\n didScheduleRenderPhaseUpdate = false;\n\n if (!!didRenderTooFewHooks) {\n {\n throw Error( \"Rendered fewer hooks than expected. This may be caused by an accidental early return statement.\" );\n }\n }\n\n return children;\n}\nfunction bailoutHooks(current, workInProgress, lanes) {\n workInProgress.updateQueue = current.updateQueue;\n workInProgress.flags &= ~(Passive | Update);\n current.lanes = removeLanes(current.lanes, lanes);\n}\nfunction resetHooksAfterThrow() {\n // We can assume the previous dispatcher is always this one, since we set it\n // at the beginning of the render phase and there's no re-entrancy.\n ReactCurrentDispatcher$1.current = ContextOnlyDispatcher;\n\n if (didScheduleRenderPhaseUpdate) {\n // There were render phase updates. These are only valid for this render\n // phase, which we are now aborting. Remove the updates from the queues so\n // they do not persist to the next render. Do not remove updates from hooks\n // that weren't processed.\n //\n // Only reset the updates from the queue if it has a clone. If it does\n // not have a clone, that means it wasn't processed, and the updates were\n // scheduled before we entered the render phase.\n var hook = currentlyRenderingFiber$1.memoizedState;\n\n while (hook !== null) {\n var queue = hook.queue;\n\n if (queue !== null) {\n queue.pending = null;\n }\n\n hook = hook.next;\n }\n\n didScheduleRenderPhaseUpdate = false;\n }\n\n renderLanes = NoLanes;\n currentlyRenderingFiber$1 = null;\n currentHook = null;\n workInProgressHook = null;\n\n {\n hookTypesDev = null;\n hookTypesUpdateIndexDev = -1;\n currentHookNameInDev = null;\n isUpdatingOpaqueValueInRenderPhase = false;\n }\n\n didScheduleRenderPhaseUpdateDuringThisPass = false;\n}\n\nfunction mountWorkInProgressHook() {\n var hook = {\n memoizedState: null,\n baseState: null,\n baseQueue: null,\n queue: null,\n next: null\n };\n\n if (workInProgressHook === null) {\n // This is the first hook in the list\n currentlyRenderingFiber$1.memoizedState = workInProgressHook = hook;\n } else {\n // Append to the end of the list\n workInProgressHook = workInProgressHook.next = hook;\n }\n\n return workInProgressHook;\n}\n\nfunction updateWorkInProgressHook() {\n // This function is used both for updates and for re-renders triggered by a\n // render phase update. It assumes there is either a current hook we can\n // clone, or a work-in-progress hook from a previous render pass that we can\n // use as a base. When we reach the end of the base list, we must switch to\n // the dispatcher used for mounts.\n var nextCurrentHook;\n\n if (currentHook === null) {\n var current = currentlyRenderingFiber$1.alternate;\n\n if (current !== null) {\n nextCurrentHook = current.memoizedState;\n } else {\n nextCurrentHook = null;\n }\n } else {\n nextCurrentHook = currentHook.next;\n }\n\n var nextWorkInProgressHook;\n\n if (workInProgressHook === null) {\n nextWorkInProgressHook = currentlyRenderingFiber$1.memoizedState;\n } else {\n nextWorkInProgressHook = workInProgressHook.next;\n }\n\n if (nextWorkInProgressHook !== null) {\n // There's already a work-in-progress. Reuse it.\n workInProgressHook = nextWorkInProgressHook;\n nextWorkInProgressHook = workInProgressHook.next;\n currentHook = nextCurrentHook;\n } else {\n // Clone from the current hook.\n if (!(nextCurrentHook !== null)) {\n {\n throw Error( \"Rendered more hooks than during the previous render.\" );\n }\n }\n\n currentHook = nextCurrentHook;\n var newHook = {\n memoizedState: currentHook.memoizedState,\n baseState: currentHook.baseState,\n baseQueue: currentHook.baseQueue,\n queue: currentHook.queue,\n next: null\n };\n\n if (workInProgressHook === null) {\n // This is the first hook in the list.\n currentlyRenderingFiber$1.memoizedState = workInProgressHook = newHook;\n } else {\n // Append to the end of the list.\n workInProgressHook = workInProgressHook.next = newHook;\n }\n }\n\n return workInProgressHook;\n}\n\nfunction createFunctionComponentUpdateQueue() {\n return {\n lastEffect: null\n };\n}\n\nfunction basicStateReducer(state, action) {\n // $FlowFixMe: Flow doesn't like mixed types\n return typeof action === 'function' ? action(state) : action;\n}\n\nfunction mountReducer(reducer, initialArg, init) {\n var hook = mountWorkInProgressHook();\n var initialState;\n\n if (init !== undefined) {\n initialState = init(initialArg);\n } else {\n initialState = initialArg;\n }\n\n hook.memoizedState = hook.baseState = initialState;\n var queue = hook.queue = {\n pending: null,\n dispatch: null,\n lastRenderedReducer: reducer,\n lastRenderedState: initialState\n };\n var dispatch = queue.dispatch = dispatchAction.bind(null, currentlyRenderingFiber$1, queue);\n return [hook.memoizedState, dispatch];\n}\n\nfunction updateReducer(reducer, initialArg, init) {\n var hook = updateWorkInProgressHook();\n var queue = hook.queue;\n\n if (!(queue !== null)) {\n {\n throw Error( \"Should have a queue. This is likely a bug in React. Please file an issue.\" );\n }\n }\n\n queue.lastRenderedReducer = reducer;\n var current = currentHook; // The last rebase update that is NOT part of the base state.\n\n var baseQueue = current.baseQueue; // The last pending update that hasn't been processed yet.\n\n var pendingQueue = queue.pending;\n\n if (pendingQueue !== null) {\n // We have new updates that haven't been processed yet.\n // We'll add them to the base queue.\n if (baseQueue !== null) {\n // Merge the pending queue and the base queue.\n var baseFirst = baseQueue.next;\n var pendingFirst = pendingQueue.next;\n baseQueue.next = pendingFirst;\n pendingQueue.next = baseFirst;\n }\n\n {\n if (current.baseQueue !== baseQueue) {\n // Internal invariant that should never happen, but feasibly could in\n // the future if we implement resuming, or some form of that.\n error('Internal error: Expected work-in-progress queue to be a clone. ' + 'This is a bug in React.');\n }\n }\n\n current.baseQueue = baseQueue = pendingQueue;\n queue.pending = null;\n }\n\n if (baseQueue !== null) {\n // We have a queue to process.\n var first = baseQueue.next;\n var newState = current.baseState;\n var newBaseState = null;\n var newBaseQueueFirst = null;\n var newBaseQueueLast = null;\n var update = first;\n\n do {\n var updateLane = update.lane;\n\n if (!isSubsetOfLanes(renderLanes, updateLane)) {\n // Priority is insufficient. Skip this update. If this is the first\n // skipped update, the previous update/state is the new base\n // update/state.\n var clone = {\n lane: updateLane,\n action: update.action,\n eagerReducer: update.eagerReducer,\n eagerState: update.eagerState,\n next: null\n };\n\n if (newBaseQueueLast === null) {\n newBaseQueueFirst = newBaseQueueLast = clone;\n newBaseState = newState;\n } else {\n newBaseQueueLast = newBaseQueueLast.next = clone;\n } // Update the remaining priority in the queue.\n // TODO: Don't need to accumulate this. Instead, we can remove\n // renderLanes from the original lanes.\n\n\n currentlyRenderingFiber$1.lanes = mergeLanes(currentlyRenderingFiber$1.lanes, updateLane);\n markSkippedUpdateLanes(updateLane);\n } else {\n // This update does have sufficient priority.\n if (newBaseQueueLast !== null) {\n var _clone = {\n // This update is going to be committed so we never want uncommit\n // it. Using NoLane works because 0 is a subset of all bitmasks, so\n // this will never be skipped by the check above.\n lane: NoLane,\n action: update.action,\n eagerReducer: update.eagerReducer,\n eagerState: update.eagerState,\n next: null\n };\n newBaseQueueLast = newBaseQueueLast.next = _clone;\n } // Process this update.\n\n\n if (update.eagerReducer === reducer) {\n // If this update was processed eagerly, and its reducer matches the\n // current reducer, we can use the eagerly computed state.\n newState = update.eagerState;\n } else {\n var action = update.action;\n newState = reducer(newState, action);\n }\n }\n\n update = update.next;\n } while (update !== null && update !== first);\n\n if (newBaseQueueLast === null) {\n newBaseState = newState;\n } else {\n newBaseQueueLast.next = newBaseQueueFirst;\n } // Mark that the fiber performed work, but only if the new state is\n // different from the current state.\n\n\n if (!objectIs(newState, hook.memoizedState)) {\n markWorkInProgressReceivedUpdate();\n }\n\n hook.memoizedState = newState;\n hook.baseState = newBaseState;\n hook.baseQueue = newBaseQueueLast;\n queue.lastRenderedState = newState;\n }\n\n var dispatch = queue.dispatch;\n return [hook.memoizedState, dispatch];\n}\n\nfunction rerenderReducer(reducer, initialArg, init) {\n var hook = updateWorkInProgressHook();\n var queue = hook.queue;\n\n if (!(queue !== null)) {\n {\n throw Error( \"Should have a queue. This is likely a bug in React. Please file an issue.\" );\n }\n }\n\n queue.lastRenderedReducer = reducer; // This is a re-render. Apply the new render phase updates to the previous\n // work-in-progress hook.\n\n var dispatch = queue.dispatch;\n var lastRenderPhaseUpdate = queue.pending;\n var newState = hook.memoizedState;\n\n if (lastRenderPhaseUpdate !== null) {\n // The queue doesn't persist past this render pass.\n queue.pending = null;\n var firstRenderPhaseUpdate = lastRenderPhaseUpdate.next;\n var update = firstRenderPhaseUpdate;\n\n do {\n // Process this render phase update. We don't have to check the\n // priority because it will always be the same as the current\n // render's.\n var action = update.action;\n newState = reducer(newState, action);\n update = update.next;\n } while (update !== firstRenderPhaseUpdate); // Mark that the fiber performed work, but only if the new state is\n // different from the current state.\n\n\n if (!objectIs(newState, hook.memoizedState)) {\n markWorkInProgressReceivedUpdate();\n }\n\n hook.memoizedState = newState; // Don't persist the state accumulated from the render phase updates to\n // the base state unless the queue is empty.\n // TODO: Not sure if this is the desired semantics, but it's what we\n // do for gDSFP. I can't remember why.\n\n if (hook.baseQueue === null) {\n hook.baseState = newState;\n }\n\n queue.lastRenderedState = newState;\n }\n\n return [newState, dispatch];\n}\n\nfunction readFromUnsubcribedMutableSource(root, source, getSnapshot) {\n {\n warnAboutMultipleRenderersDEV(source);\n }\n\n var getVersion = source._getVersion;\n var version = getVersion(source._source); // Is it safe for this component to read from this source during the current render?\n\n var isSafeToReadFromSource = false; // Check the version first.\n // If this render has already been started with a specific version,\n // we can use it alone to determine if we can safely read from the source.\n\n var currentRenderVersion = getWorkInProgressVersion(source);\n\n if (currentRenderVersion !== null) {\n // It's safe to read if the store hasn't been mutated since the last time\n // we read something.\n isSafeToReadFromSource = currentRenderVersion === version;\n } else {\n // If there's no version, then this is the first time we've read from the\n // source during the current render pass, so we need to do a bit more work.\n // What we need to determine is if there are any hooks that already\n // subscribed to the source, and if so, whether there are any pending\n // mutations that haven't been synchronized yet.\n //\n // If there are no pending mutations, then `root.mutableReadLanes` will be\n // empty, and we know we can safely read.\n //\n // If there *are* pending mutations, we may still be able to safely read\n // if the currently rendering lanes are inclusive of the pending mutation\n // lanes, since that guarantees that the value we're about to read from\n // the source is consistent with the values that we read during the most\n // recent mutation.\n isSafeToReadFromSource = isSubsetOfLanes(renderLanes, root.mutableReadLanes);\n\n if (isSafeToReadFromSource) {\n // If it's safe to read from this source during the current render,\n // store the version in case other components read from it.\n // A changed version number will let those components know to throw and restart the render.\n setWorkInProgressVersion(source, version);\n }\n }\n\n if (isSafeToReadFromSource) {\n var snapshot = getSnapshot(source._source);\n\n {\n if (typeof snapshot === 'function') {\n error('Mutable source should not return a function as the snapshot value. ' + 'Functions may close over mutable values and cause tearing.');\n }\n }\n\n return snapshot;\n } else {\n // This handles the special case of a mutable source being shared between renderers.\n // In that case, if the source is mutated between the first and second renderer,\n // The second renderer don't know that it needs to reset the WIP version during unwind,\n // (because the hook only marks sources as dirty if it's written to their WIP version).\n // That would cause this tear check to throw again and eventually be visible to the user.\n // We can avoid this infinite loop by explicitly marking the source as dirty.\n //\n // This can lead to tearing in the first renderer when it resumes,\n // but there's nothing we can do about that (short of throwing here and refusing to continue the render).\n markSourceAsDirty(source);\n\n {\n {\n throw Error( \"Cannot read from mutable source during the current render without tearing. This is a bug in React. Please file an issue.\" );\n }\n }\n }\n}\n\nfunction useMutableSource(hook, source, getSnapshot, subscribe) {\n var root = getWorkInProgressRoot();\n\n if (!(root !== null)) {\n {\n throw Error( \"Expected a work-in-progress root. This is a bug in React. Please file an issue.\" );\n }\n }\n\n var getVersion = source._getVersion;\n var version = getVersion(source._source);\n var dispatcher = ReactCurrentDispatcher$1.current; // eslint-disable-next-line prefer-const\n\n var _dispatcher$useState = dispatcher.useState(function () {\n return readFromUnsubcribedMutableSource(root, source, getSnapshot);\n }),\n currentSnapshot = _dispatcher$useState[0],\n setSnapshot = _dispatcher$useState[1];\n\n var snapshot = currentSnapshot; // Grab a handle to the state hook as well.\n // We use it to clear the pending update queue if we have a new source.\n\n var stateHook = workInProgressHook;\n var memoizedState = hook.memoizedState;\n var refs = memoizedState.refs;\n var prevGetSnapshot = refs.getSnapshot;\n var prevSource = memoizedState.source;\n var prevSubscribe = memoizedState.subscribe;\n var fiber = currentlyRenderingFiber$1;\n hook.memoizedState = {\n refs: refs,\n source: source,\n subscribe: subscribe\n }; // Sync the values needed by our subscription handler after each commit.\n\n dispatcher.useEffect(function () {\n refs.getSnapshot = getSnapshot; // Normally the dispatch function for a state hook never changes,\n // but this hook recreates the queue in certain cases to avoid updates from stale sources.\n // handleChange() below needs to reference the dispatch function without re-subscribing,\n // so we use a ref to ensure that it always has the latest version.\n\n refs.setSnapshot = setSnapshot; // Check for a possible change between when we last rendered now.\n\n var maybeNewVersion = getVersion(source._source);\n\n if (!objectIs(version, maybeNewVersion)) {\n var maybeNewSnapshot = getSnapshot(source._source);\n\n {\n if (typeof maybeNewSnapshot === 'function') {\n error('Mutable source should not return a function as the snapshot value. ' + 'Functions may close over mutable values and cause tearing.');\n }\n }\n\n if (!objectIs(snapshot, maybeNewSnapshot)) {\n setSnapshot(maybeNewSnapshot);\n var lane = requestUpdateLane(fiber);\n markRootMutableRead(root, lane);\n } // If the source mutated between render and now,\n // there may be state updates already scheduled from the old source.\n // Entangle the updates so that they render in the same batch.\n\n\n markRootEntangled(root, root.mutableReadLanes);\n }\n }, [getSnapshot, source, subscribe]); // If we got a new source or subscribe function, re-subscribe in a passive effect.\n\n dispatcher.useEffect(function () {\n var handleChange = function () {\n var latestGetSnapshot = refs.getSnapshot;\n var latestSetSnapshot = refs.setSnapshot;\n\n try {\n latestSetSnapshot(latestGetSnapshot(source._source)); // Record a pending mutable source update with the same expiration time.\n\n var lane = requestUpdateLane(fiber);\n markRootMutableRead(root, lane);\n } catch (error) {\n // A selector might throw after a source mutation.\n // e.g. it might try to read from a part of the store that no longer exists.\n // In this case we should still schedule an update with React.\n // Worst case the selector will throw again and then an error boundary will handle it.\n latestSetSnapshot(function () {\n throw error;\n });\n }\n };\n\n var unsubscribe = subscribe(source._source, handleChange);\n\n {\n if (typeof unsubscribe !== 'function') {\n error('Mutable source subscribe function must return an unsubscribe function.');\n }\n }\n\n return unsubscribe;\n }, [source, subscribe]); // If any of the inputs to useMutableSource change, reading is potentially unsafe.\n //\n // If either the source or the subscription have changed we can't can't trust the update queue.\n // Maybe the source changed in a way that the old subscription ignored but the new one depends on.\n //\n // If the getSnapshot function changed, we also shouldn't rely on the update queue.\n // It's possible that the underlying source was mutated between the when the last \"change\" event fired,\n // and when the current render (with the new getSnapshot function) is processed.\n //\n // In both cases, we need to throw away pending updates (since they are no longer relevant)\n // and treat reading from the source as we do in the mount case.\n\n if (!objectIs(prevGetSnapshot, getSnapshot) || !objectIs(prevSource, source) || !objectIs(prevSubscribe, subscribe)) {\n // Create a new queue and setState method,\n // So if there are interleaved updates, they get pushed to the older queue.\n // When this becomes current, the previous queue and dispatch method will be discarded,\n // including any interleaving updates that occur.\n var newQueue = {\n pending: null,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: snapshot\n };\n newQueue.dispatch = setSnapshot = dispatchAction.bind(null, currentlyRenderingFiber$1, newQueue);\n stateHook.queue = newQueue;\n stateHook.baseQueue = null;\n snapshot = readFromUnsubcribedMutableSource(root, source, getSnapshot);\n stateHook.memoizedState = stateHook.baseState = snapshot;\n }\n\n return snapshot;\n}\n\nfunction mountMutableSource(source, getSnapshot, subscribe) {\n var hook = mountWorkInProgressHook();\n hook.memoizedState = {\n refs: {\n getSnapshot: getSnapshot,\n setSnapshot: null\n },\n source: source,\n subscribe: subscribe\n };\n return useMutableSource(hook, source, getSnapshot, subscribe);\n}\n\nfunction updateMutableSource(source, getSnapshot, subscribe) {\n var hook = updateWorkInProgressHook();\n return useMutableSource(hook, source, getSnapshot, subscribe);\n}\n\nfunction mountState(initialState) {\n var hook = mountWorkInProgressHook();\n\n if (typeof initialState === 'function') {\n // $FlowFixMe: Flow doesn't like mixed types\n initialState = initialState();\n }\n\n hook.memoizedState = hook.baseState = initialState;\n var queue = hook.queue = {\n pending: null,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialState\n };\n var dispatch = queue.dispatch = dispatchAction.bind(null, currentlyRenderingFiber$1, queue);\n return [hook.memoizedState, dispatch];\n}\n\nfunction updateState(initialState) {\n return updateReducer(basicStateReducer);\n}\n\nfunction rerenderState(initialState) {\n return rerenderReducer(basicStateReducer);\n}\n\nfunction pushEffect(tag, create, destroy, deps) {\n var effect = {\n tag: tag,\n create: create,\n destroy: destroy,\n deps: deps,\n // Circular\n next: null\n };\n var componentUpdateQueue = currentlyRenderingFiber$1.updateQueue;\n\n if (componentUpdateQueue === null) {\n componentUpdateQueue = createFunctionComponentUpdateQueue();\n currentlyRenderingFiber$1.updateQueue = componentUpdateQueue;\n componentUpdateQueue.lastEffect = effect.next = effect;\n } else {\n var lastEffect = componentUpdateQueue.lastEffect;\n\n if (lastEffect === null) {\n componentUpdateQueue.lastEffect = effect.next = effect;\n } else {\n var firstEffect = lastEffect.next;\n lastEffect.next = effect;\n effect.next = firstEffect;\n componentUpdateQueue.lastEffect = effect;\n }\n }\n\n return effect;\n}\n\nfunction mountRef(initialValue) {\n var hook = mountWorkInProgressHook();\n var ref = {\n current: initialValue\n };\n\n {\n Object.seal(ref);\n }\n\n hook.memoizedState = ref;\n return ref;\n}\n\nfunction updateRef(initialValue) {\n var hook = updateWorkInProgressHook();\n return hook.memoizedState;\n}\n\nfunction mountEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = mountWorkInProgressHook();\n var nextDeps = deps === undefined ? null : deps;\n currentlyRenderingFiber$1.flags |= fiberFlags;\n hook.memoizedState = pushEffect(HasEffect | hookFlags, create, undefined, nextDeps);\n}\n\nfunction updateEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = updateWorkInProgressHook();\n var nextDeps = deps === undefined ? null : deps;\n var destroy = undefined;\n\n if (currentHook !== null) {\n var prevEffect = currentHook.memoizedState;\n destroy = prevEffect.destroy;\n\n if (nextDeps !== null) {\n var prevDeps = prevEffect.deps;\n\n if (areHookInputsEqual(nextDeps, prevDeps)) {\n pushEffect(hookFlags, create, destroy, nextDeps);\n return;\n }\n }\n }\n\n currentlyRenderingFiber$1.flags |= fiberFlags;\n hook.memoizedState = pushEffect(HasEffect | hookFlags, create, destroy, nextDeps);\n}\n\nfunction mountEffect(create, deps) {\n {\n // $FlowExpectedError - jest isn't a global, and isn't recognized outside of tests\n if ('undefined' !== typeof jest) {\n warnIfNotCurrentlyActingEffectsInDEV(currentlyRenderingFiber$1);\n }\n }\n\n return mountEffectImpl(Update | Passive, Passive$1, create, deps);\n}\n\nfunction updateEffect(create, deps) {\n {\n // $FlowExpectedError - jest isn't a global, and isn't recognized outside of tests\n if ('undefined' !== typeof jest) {\n warnIfNotCurrentlyActingEffectsInDEV(currentlyRenderingFiber$1);\n }\n }\n\n return updateEffectImpl(Update | Passive, Passive$1, create, deps);\n}\n\nfunction mountLayoutEffect(create, deps) {\n return mountEffectImpl(Update, Layout, create, deps);\n}\n\nfunction updateLayoutEffect(create, deps) {\n return updateEffectImpl(Update, Layout, create, deps);\n}\n\nfunction imperativeHandleEffect(create, ref) {\n if (typeof ref === 'function') {\n var refCallback = ref;\n\n var _inst = create();\n\n refCallback(_inst);\n return function () {\n refCallback(null);\n };\n } else if (ref !== null && ref !== undefined) {\n var refObject = ref;\n\n {\n if (!refObject.hasOwnProperty('current')) {\n error('Expected useImperativeHandle() first argument to either be a ' + 'ref callback or React.createRef() object. Instead received: %s.', 'an object with keys {' + Object.keys(refObject).join(', ') + '}');\n }\n }\n\n var _inst2 = create();\n\n refObject.current = _inst2;\n return function () {\n refObject.current = null;\n };\n }\n}\n\nfunction mountImperativeHandle(ref, create, deps) {\n {\n if (typeof create !== 'function') {\n error('Expected useImperativeHandle() second argument to be a function ' + 'that creates a handle. Instead received: %s.', create !== null ? typeof create : 'null');\n }\n } // TODO: If deps are provided, should we skip comparing the ref itself?\n\n\n var effectDeps = deps !== null && deps !== undefined ? deps.concat([ref]) : null;\n return mountEffectImpl(Update, Layout, imperativeHandleEffect.bind(null, create, ref), effectDeps);\n}\n\nfunction updateImperativeHandle(ref, create, deps) {\n {\n if (typeof create !== 'function') {\n error('Expected useImperativeHandle() second argument to be a function ' + 'that creates a handle. Instead received: %s.', create !== null ? typeof create : 'null');\n }\n } // TODO: If deps are provided, should we skip comparing the ref itself?\n\n\n var effectDeps = deps !== null && deps !== undefined ? deps.concat([ref]) : null;\n return updateEffectImpl(Update, Layout, imperativeHandleEffect.bind(null, create, ref), effectDeps);\n}\n\nfunction mountDebugValue(value, formatterFn) {// This hook is normally a no-op.\n // The react-debug-hooks package injects its own implementation\n // so that e.g. DevTools can display custom hook values.\n}\n\nvar updateDebugValue = mountDebugValue;\n\nfunction mountCallback(callback, deps) {\n var hook = mountWorkInProgressHook();\n var nextDeps = deps === undefined ? null : deps;\n hook.memoizedState = [callback, nextDeps];\n return callback;\n}\n\nfunction updateCallback(callback, deps) {\n var hook = updateWorkInProgressHook();\n var nextDeps = deps === undefined ? null : deps;\n var prevState = hook.memoizedState;\n\n if (prevState !== null) {\n if (nextDeps !== null) {\n var prevDeps = prevState[1];\n\n if (areHookInputsEqual(nextDeps, prevDeps)) {\n return prevState[0];\n }\n }\n }\n\n hook.memoizedState = [callback, nextDeps];\n return callback;\n}\n\nfunction mountMemo(nextCreate, deps) {\n var hook = mountWorkInProgressHook();\n var nextDeps = deps === undefined ? null : deps;\n var nextValue = nextCreate();\n hook.memoizedState = [nextValue, nextDeps];\n return nextValue;\n}\n\nfunction updateMemo(nextCreate, deps) {\n var hook = updateWorkInProgressHook();\n var nextDeps = deps === undefined ? null : deps;\n var prevState = hook.memoizedState;\n\n if (prevState !== null) {\n // Assume these are defined. If they're not, areHookInputsEqual will warn.\n if (nextDeps !== null) {\n var prevDeps = prevState[1];\n\n if (areHookInputsEqual(nextDeps, prevDeps)) {\n return prevState[0];\n }\n }\n }\n\n var nextValue = nextCreate();\n hook.memoizedState = [nextValue, nextDeps];\n return nextValue;\n}\n\nfunction mountDeferredValue(value) {\n var _mountState = mountState(value),\n prevValue = _mountState[0],\n setValue = _mountState[1];\n\n mountEffect(function () {\n var prevTransition = ReactCurrentBatchConfig$1.transition;\n ReactCurrentBatchConfig$1.transition = 1;\n\n try {\n setValue(value);\n } finally {\n ReactCurrentBatchConfig$1.transition = prevTransition;\n }\n }, [value]);\n return prevValue;\n}\n\nfunction updateDeferredValue(value) {\n var _updateState = updateState(),\n prevValue = _updateState[0],\n setValue = _updateState[1];\n\n updateEffect(function () {\n var prevTransition = ReactCurrentBatchConfig$1.transition;\n ReactCurrentBatchConfig$1.transition = 1;\n\n try {\n setValue(value);\n } finally {\n ReactCurrentBatchConfig$1.transition = prevTransition;\n }\n }, [value]);\n return prevValue;\n}\n\nfunction rerenderDeferredValue(value) {\n var _rerenderState = rerenderState(),\n prevValue = _rerenderState[0],\n setValue = _rerenderState[1];\n\n updateEffect(function () {\n var prevTransition = ReactCurrentBatchConfig$1.transition;\n ReactCurrentBatchConfig$1.transition = 1;\n\n try {\n setValue(value);\n } finally {\n ReactCurrentBatchConfig$1.transition = prevTransition;\n }\n }, [value]);\n return prevValue;\n}\n\nfunction startTransition(setPending, callback) {\n var priorityLevel = getCurrentPriorityLevel();\n\n {\n runWithPriority$1(priorityLevel < UserBlockingPriority$2 ? UserBlockingPriority$2 : priorityLevel, function () {\n setPending(true);\n });\n runWithPriority$1(priorityLevel > NormalPriority$1 ? NormalPriority$1 : priorityLevel, function () {\n var prevTransition = ReactCurrentBatchConfig$1.transition;\n ReactCurrentBatchConfig$1.transition = 1;\n\n try {\n setPending(false);\n callback();\n } finally {\n ReactCurrentBatchConfig$1.transition = prevTransition;\n }\n });\n }\n}\n\nfunction mountTransition() {\n var _mountState2 = mountState(false),\n isPending = _mountState2[0],\n setPending = _mountState2[1]; // The `start` method can be stored on a ref, since `setPending`\n // never changes.\n\n\n var start = startTransition.bind(null, setPending);\n mountRef(start);\n return [start, isPending];\n}\n\nfunction updateTransition() {\n var _updateState2 = updateState(),\n isPending = _updateState2[0];\n\n var startRef = updateRef();\n var start = startRef.current;\n return [start, isPending];\n}\n\nfunction rerenderTransition() {\n var _rerenderState2 = rerenderState(),\n isPending = _rerenderState2[0];\n\n var startRef = updateRef();\n var start = startRef.current;\n return [start, isPending];\n}\n\nvar isUpdatingOpaqueValueInRenderPhase = false;\nfunction getIsUpdatingOpaqueValueInRenderPhaseInDEV() {\n {\n return isUpdatingOpaqueValueInRenderPhase;\n }\n}\n\nfunction warnOnOpaqueIdentifierAccessInDEV(fiber) {\n {\n // TODO: Should warn in effects and callbacks, too\n var name = getComponentName(fiber.type) || 'Unknown';\n\n if (getIsRendering() && !didWarnAboutUseOpaqueIdentifier[name]) {\n error('The object passed back from useOpaqueIdentifier is meant to be ' + 'passed through to attributes only. Do not read the ' + 'value directly.');\n\n didWarnAboutUseOpaqueIdentifier[name] = true;\n }\n }\n}\n\nfunction mountOpaqueIdentifier() {\n var makeId = makeClientIdInDEV.bind(null, warnOnOpaqueIdentifierAccessInDEV.bind(null, currentlyRenderingFiber$1)) ;\n\n if (getIsHydrating()) {\n var didUpgrade = false;\n var fiber = currentlyRenderingFiber$1;\n\n var readValue = function () {\n if (!didUpgrade) {\n // Only upgrade once. This works even inside the render phase because\n // the update is added to a shared queue, which outlasts the\n // in-progress render.\n didUpgrade = true;\n\n {\n isUpdatingOpaqueValueInRenderPhase = true;\n setId(makeId());\n isUpdatingOpaqueValueInRenderPhase = false;\n warnOnOpaqueIdentifierAccessInDEV(fiber);\n }\n }\n\n {\n {\n throw Error( \"The object passed back from useOpaqueIdentifier is meant to be passed through to attributes only. Do not read the value directly.\" );\n }\n }\n };\n\n var id = makeOpaqueHydratingObject(readValue);\n var setId = mountState(id)[1];\n\n if ((currentlyRenderingFiber$1.mode & BlockingMode) === NoMode) {\n currentlyRenderingFiber$1.flags |= Update | Passive;\n pushEffect(HasEffect | Passive$1, function () {\n setId(makeId());\n }, undefined, null);\n }\n\n return id;\n } else {\n var _id = makeId();\n\n mountState(_id);\n return _id;\n }\n}\n\nfunction updateOpaqueIdentifier() {\n var id = updateState()[0];\n return id;\n}\n\nfunction rerenderOpaqueIdentifier() {\n var id = rerenderState()[0];\n return id;\n}\n\nfunction dispatchAction(fiber, queue, action) {\n {\n if (typeof arguments[3] === 'function') {\n error(\"State updates from the useState() and useReducer() Hooks don't support the \" + 'second callback argument. To execute a side effect after ' + 'rendering, declare it in the component body with useEffect().');\n }\n }\n\n var eventTime = requestEventTime();\n var lane = requestUpdateLane(fiber);\n var update = {\n lane: lane,\n action: action,\n eagerReducer: null,\n eagerState: null,\n next: null\n }; // Append the update to the end of the list.\n\n var pending = queue.pending;\n\n if (pending === null) {\n // This is the first update. Create a circular list.\n update.next = update;\n } else {\n update.next = pending.next;\n pending.next = update;\n }\n\n queue.pending = update;\n var alternate = fiber.alternate;\n\n if (fiber === currentlyRenderingFiber$1 || alternate !== null && alternate === currentlyRenderingFiber$1) {\n // This is a render phase update. Stash it in a lazily-created map of\n // queue -> linked list of updates. After this render pass, we'll restart\n // and apply the stashed updates on top of the work-in-progress hook.\n didScheduleRenderPhaseUpdateDuringThisPass = didScheduleRenderPhaseUpdate = true;\n } else {\n if (fiber.lanes === NoLanes && (alternate === null || alternate.lanes === NoLanes)) {\n // The queue is currently empty, which means we can eagerly compute the\n // next state before entering the render phase. If the new state is the\n // same as the current state, we may be able to bail out entirely.\n var lastRenderedReducer = queue.lastRenderedReducer;\n\n if (lastRenderedReducer !== null) {\n var prevDispatcher;\n\n {\n prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n }\n\n try {\n var currentState = queue.lastRenderedState;\n var eagerState = lastRenderedReducer(currentState, action); // Stash the eagerly computed state, and the reducer used to compute\n // it, on the update object. If the reducer hasn't changed by the\n // time we enter the render phase, then the eager state can be used\n // without calling the reducer again.\n\n update.eagerReducer = lastRenderedReducer;\n update.eagerState = eagerState;\n\n if (objectIs(eagerState, currentState)) {\n // Fast path. We can bail out without scheduling React to re-render.\n // It's still possible that we'll need to rebase this update later,\n // if the component re-renders for a different reason and by that\n // time the reducer has changed.\n return;\n }\n } catch (error) {// Suppress the error. It will throw again in the render phase.\n } finally {\n {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n }\n }\n }\n\n {\n // $FlowExpectedError - jest isn't a global, and isn't recognized outside of tests\n if ('undefined' !== typeof jest) {\n warnIfNotScopedWithMatchingAct(fiber);\n warnIfNotCurrentlyActingUpdatesInDev(fiber);\n }\n }\n\n scheduleUpdateOnFiber(fiber, lane, eventTime);\n }\n}\n\nvar ContextOnlyDispatcher = {\n readContext: readContext,\n useCallback: throwInvalidHookError,\n useContext: throwInvalidHookError,\n useEffect: throwInvalidHookError,\n useImperativeHandle: throwInvalidHookError,\n useLayoutEffect: throwInvalidHookError,\n useMemo: throwInvalidHookError,\n useReducer: throwInvalidHookError,\n useRef: throwInvalidHookError,\n useState: throwInvalidHookError,\n useDebugValue: throwInvalidHookError,\n useDeferredValue: throwInvalidHookError,\n useTransition: throwInvalidHookError,\n useMutableSource: throwInvalidHookError,\n useOpaqueIdentifier: throwInvalidHookError,\n unstable_isNewReconciler: enableNewReconciler\n};\nvar HooksDispatcherOnMountInDEV = null;\nvar HooksDispatcherOnMountWithHookTypesInDEV = null;\nvar HooksDispatcherOnUpdateInDEV = null;\nvar HooksDispatcherOnRerenderInDEV = null;\nvar InvalidNestedHooksDispatcherOnMountInDEV = null;\nvar InvalidNestedHooksDispatcherOnUpdateInDEV = null;\nvar InvalidNestedHooksDispatcherOnRerenderInDEV = null;\n\n{\n var warnInvalidContextAccess = function () {\n error('Context can only be read while React is rendering. ' + 'In classes, you can read it in the render method or getDerivedStateFromProps. ' + 'In function components, you can read it directly in the function body, but not ' + 'inside Hooks like useReducer() or useMemo().');\n };\n\n var warnInvalidHookAccess = function () {\n error('Do not call Hooks inside useEffect(...), useMemo(...), or other built-in Hooks. ' + 'You can only call Hooks at the top level of your React function. ' + 'For more information, see ' + 'https://reactjs.org/link/rules-of-hooks');\n };\n\n HooksDispatcherOnMountInDEV = {\n readContext: function (context, observedBits) {\n return readContext(context, observedBits);\n },\n useCallback: function (callback, deps) {\n currentHookNameInDev = 'useCallback';\n mountHookTypesDev();\n checkDepsAreArrayDev(deps);\n return mountCallback(callback, deps);\n },\n useContext: function (context, observedBits) {\n currentHookNameInDev = 'useContext';\n mountHookTypesDev();\n return readContext(context, observedBits);\n },\n useEffect: function (create, deps) {\n currentHookNameInDev = 'useEffect';\n mountHookTypesDev();\n checkDepsAreArrayDev(deps);\n return mountEffect(create, deps);\n },\n useImperativeHandle: function (ref, create, deps) {\n currentHookNameInDev = 'useImperativeHandle';\n mountHookTypesDev();\n checkDepsAreArrayDev(deps);\n return mountImperativeHandle(ref, create, deps);\n },\n useLayoutEffect: function (create, deps) {\n currentHookNameInDev = 'useLayoutEffect';\n mountHookTypesDev();\n checkDepsAreArrayDev(deps);\n return mountLayoutEffect(create, deps);\n },\n useMemo: function (create, deps) {\n currentHookNameInDev = 'useMemo';\n mountHookTypesDev();\n checkDepsAreArrayDev(deps);\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n try {\n return mountMemo(create, deps);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useReducer: function (reducer, initialArg, init) {\n currentHookNameInDev = 'useReducer';\n mountHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n try {\n return mountReducer(reducer, initialArg, init);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useRef: function (initialValue) {\n currentHookNameInDev = 'useRef';\n mountHookTypesDev();\n return mountRef(initialValue);\n },\n useState: function (initialState) {\n currentHookNameInDev = 'useState';\n mountHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n try {\n return mountState(initialState);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useDebugValue: function (value, formatterFn) {\n currentHookNameInDev = 'useDebugValue';\n mountHookTypesDev();\n return mountDebugValue();\n },\n useDeferredValue: function (value) {\n currentHookNameInDev = 'useDeferredValue';\n mountHookTypesDev();\n return mountDeferredValue(value);\n },\n useTransition: function () {\n currentHookNameInDev = 'useTransition';\n mountHookTypesDev();\n return mountTransition();\n },\n useMutableSource: function (source, getSnapshot, subscribe) {\n currentHookNameInDev = 'useMutableSource';\n mountHookTypesDev();\n return mountMutableSource(source, getSnapshot, subscribe);\n },\n useOpaqueIdentifier: function () {\n currentHookNameInDev = 'useOpaqueIdentifier';\n mountHookTypesDev();\n return mountOpaqueIdentifier();\n },\n unstable_isNewReconciler: enableNewReconciler\n };\n HooksDispatcherOnMountWithHookTypesInDEV = {\n readContext: function (context, observedBits) {\n return readContext(context, observedBits);\n },\n useCallback: function (callback, deps) {\n currentHookNameInDev = 'useCallback';\n updateHookTypesDev();\n return mountCallback(callback, deps);\n },\n useContext: function (context, observedBits) {\n currentHookNameInDev = 'useContext';\n updateHookTypesDev();\n return readContext(context, observedBits);\n },\n useEffect: function (create, deps) {\n currentHookNameInDev = 'useEffect';\n updateHookTypesDev();\n return mountEffect(create, deps);\n },\n useImperativeHandle: function (ref, create, deps) {\n currentHookNameInDev = 'useImperativeHandle';\n updateHookTypesDev();\n return mountImperativeHandle(ref, create, deps);\n },\n useLayoutEffect: function (create, deps) {\n currentHookNameInDev = 'useLayoutEffect';\n updateHookTypesDev();\n return mountLayoutEffect(create, deps);\n },\n useMemo: function (create, deps) {\n currentHookNameInDev = 'useMemo';\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n try {\n return mountMemo(create, deps);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useReducer: function (reducer, initialArg, init) {\n currentHookNameInDev = 'useReducer';\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n try {\n return mountReducer(reducer, initialArg, init);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useRef: function (initialValue) {\n currentHookNameInDev = 'useRef';\n updateHookTypesDev();\n return mountRef(initialValue);\n },\n useState: function (initialState) {\n currentHookNameInDev = 'useState';\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n try {\n return mountState(initialState);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useDebugValue: function (value, formatterFn) {\n currentHookNameInDev = 'useDebugValue';\n updateHookTypesDev();\n return mountDebugValue();\n },\n useDeferredValue: function (value) {\n currentHookNameInDev = 'useDeferredValue';\n updateHookTypesDev();\n return mountDeferredValue(value);\n },\n useTransition: function () {\n currentHookNameInDev = 'useTransition';\n updateHookTypesDev();\n return mountTransition();\n },\n useMutableSource: function (source, getSnapshot, subscribe) {\n currentHookNameInDev = 'useMutableSource';\n updateHookTypesDev();\n return mountMutableSource(source, getSnapshot, subscribe);\n },\n useOpaqueIdentifier: function () {\n currentHookNameInDev = 'useOpaqueIdentifier';\n updateHookTypesDev();\n return mountOpaqueIdentifier();\n },\n unstable_isNewReconciler: enableNewReconciler\n };\n HooksDispatcherOnUpdateInDEV = {\n readContext: function (context, observedBits) {\n return readContext(context, observedBits);\n },\n useCallback: function (callback, deps) {\n currentHookNameInDev = 'useCallback';\n updateHookTypesDev();\n return updateCallback(callback, deps);\n },\n useContext: function (context, observedBits) {\n currentHookNameInDev = 'useContext';\n updateHookTypesDev();\n return readContext(context, observedBits);\n },\n useEffect: function (create, deps) {\n currentHookNameInDev = 'useEffect';\n updateHookTypesDev();\n return updateEffect(create, deps);\n },\n useImperativeHandle: function (ref, create, deps) {\n currentHookNameInDev = 'useImperativeHandle';\n updateHookTypesDev();\n return updateImperativeHandle(ref, create, deps);\n },\n useLayoutEffect: function (create, deps) {\n currentHookNameInDev = 'useLayoutEffect';\n updateHookTypesDev();\n return updateLayoutEffect(create, deps);\n },\n useMemo: function (create, deps) {\n currentHookNameInDev = 'useMemo';\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n try {\n return updateMemo(create, deps);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useReducer: function (reducer, initialArg, init) {\n currentHookNameInDev = 'useReducer';\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n try {\n return updateReducer(reducer, initialArg, init);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useRef: function (initialValue) {\n currentHookNameInDev = 'useRef';\n updateHookTypesDev();\n return updateRef();\n },\n useState: function (initialState) {\n currentHookNameInDev = 'useState';\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n try {\n return updateState(initialState);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useDebugValue: function (value, formatterFn) {\n currentHookNameInDev = 'useDebugValue';\n updateHookTypesDev();\n return updateDebugValue();\n },\n useDeferredValue: function (value) {\n currentHookNameInDev = 'useDeferredValue';\n updateHookTypesDev();\n return updateDeferredValue(value);\n },\n useTransition: function () {\n currentHookNameInDev = 'useTransition';\n updateHookTypesDev();\n return updateTransition();\n },\n useMutableSource: function (source, getSnapshot, subscribe) {\n currentHookNameInDev = 'useMutableSource';\n updateHookTypesDev();\n return updateMutableSource(source, getSnapshot, subscribe);\n },\n useOpaqueIdentifier: function () {\n currentHookNameInDev = 'useOpaqueIdentifier';\n updateHookTypesDev();\n return updateOpaqueIdentifier();\n },\n unstable_isNewReconciler: enableNewReconciler\n };\n HooksDispatcherOnRerenderInDEV = {\n readContext: function (context, observedBits) {\n return readContext(context, observedBits);\n },\n useCallback: function (callback, deps) {\n currentHookNameInDev = 'useCallback';\n updateHookTypesDev();\n return updateCallback(callback, deps);\n },\n useContext: function (context, observedBits) {\n currentHookNameInDev = 'useContext';\n updateHookTypesDev();\n return readContext(context, observedBits);\n },\n useEffect: function (create, deps) {\n currentHookNameInDev = 'useEffect';\n updateHookTypesDev();\n return updateEffect(create, deps);\n },\n useImperativeHandle: function (ref, create, deps) {\n currentHookNameInDev = 'useImperativeHandle';\n updateHookTypesDev();\n return updateImperativeHandle(ref, create, deps);\n },\n useLayoutEffect: function (create, deps) {\n currentHookNameInDev = 'useLayoutEffect';\n updateHookTypesDev();\n return updateLayoutEffect(create, deps);\n },\n useMemo: function (create, deps) {\n currentHookNameInDev = 'useMemo';\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnRerenderInDEV;\n\n try {\n return updateMemo(create, deps);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useReducer: function (reducer, initialArg, init) {\n currentHookNameInDev = 'useReducer';\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnRerenderInDEV;\n\n try {\n return rerenderReducer(reducer, initialArg, init);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useRef: function (initialValue) {\n currentHookNameInDev = 'useRef';\n updateHookTypesDev();\n return updateRef();\n },\n useState: function (initialState) {\n currentHookNameInDev = 'useState';\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnRerenderInDEV;\n\n try {\n return rerenderState(initialState);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useDebugValue: function (value, formatterFn) {\n currentHookNameInDev = 'useDebugValue';\n updateHookTypesDev();\n return updateDebugValue();\n },\n useDeferredValue: function (value) {\n currentHookNameInDev = 'useDeferredValue';\n updateHookTypesDev();\n return rerenderDeferredValue(value);\n },\n useTransition: function () {\n currentHookNameInDev = 'useTransition';\n updateHookTypesDev();\n return rerenderTransition();\n },\n useMutableSource: function (source, getSnapshot, subscribe) {\n currentHookNameInDev = 'useMutableSource';\n updateHookTypesDev();\n return updateMutableSource(source, getSnapshot, subscribe);\n },\n useOpaqueIdentifier: function () {\n currentHookNameInDev = 'useOpaqueIdentifier';\n updateHookTypesDev();\n return rerenderOpaqueIdentifier();\n },\n unstable_isNewReconciler: enableNewReconciler\n };\n InvalidNestedHooksDispatcherOnMountInDEV = {\n readContext: function (context, observedBits) {\n warnInvalidContextAccess();\n return readContext(context, observedBits);\n },\n useCallback: function (callback, deps) {\n currentHookNameInDev = 'useCallback';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountCallback(callback, deps);\n },\n useContext: function (context, observedBits) {\n currentHookNameInDev = 'useContext';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return readContext(context, observedBits);\n },\n useEffect: function (create, deps) {\n currentHookNameInDev = 'useEffect';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountEffect(create, deps);\n },\n useImperativeHandle: function (ref, create, deps) {\n currentHookNameInDev = 'useImperativeHandle';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountImperativeHandle(ref, create, deps);\n },\n useLayoutEffect: function (create, deps) {\n currentHookNameInDev = 'useLayoutEffect';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountLayoutEffect(create, deps);\n },\n useMemo: function (create, deps) {\n currentHookNameInDev = 'useMemo';\n warnInvalidHookAccess();\n mountHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n try {\n return mountMemo(create, deps);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useReducer: function (reducer, initialArg, init) {\n currentHookNameInDev = 'useReducer';\n warnInvalidHookAccess();\n mountHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n try {\n return mountReducer(reducer, initialArg, init);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useRef: function (initialValue) {\n currentHookNameInDev = 'useRef';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountRef(initialValue);\n },\n useState: function (initialState) {\n currentHookNameInDev = 'useState';\n warnInvalidHookAccess();\n mountHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n try {\n return mountState(initialState);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useDebugValue: function (value, formatterFn) {\n currentHookNameInDev = 'useDebugValue';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountDebugValue();\n },\n useDeferredValue: function (value) {\n currentHookNameInDev = 'useDeferredValue';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountDeferredValue(value);\n },\n useTransition: function () {\n currentHookNameInDev = 'useTransition';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountTransition();\n },\n useMutableSource: function (source, getSnapshot, subscribe) {\n currentHookNameInDev = 'useMutableSource';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountMutableSource(source, getSnapshot, subscribe);\n },\n useOpaqueIdentifier: function () {\n currentHookNameInDev = 'useOpaqueIdentifier';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountOpaqueIdentifier();\n },\n unstable_isNewReconciler: enableNewReconciler\n };\n InvalidNestedHooksDispatcherOnUpdateInDEV = {\n readContext: function (context, observedBits) {\n warnInvalidContextAccess();\n return readContext(context, observedBits);\n },\n useCallback: function (callback, deps) {\n currentHookNameInDev = 'useCallback';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateCallback(callback, deps);\n },\n useContext: function (context, observedBits) {\n currentHookNameInDev = 'useContext';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return readContext(context, observedBits);\n },\n useEffect: function (create, deps) {\n currentHookNameInDev = 'useEffect';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateEffect(create, deps);\n },\n useImperativeHandle: function (ref, create, deps) {\n currentHookNameInDev = 'useImperativeHandle';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateImperativeHandle(ref, create, deps);\n },\n useLayoutEffect: function (create, deps) {\n currentHookNameInDev = 'useLayoutEffect';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateLayoutEffect(create, deps);\n },\n useMemo: function (create, deps) {\n currentHookNameInDev = 'useMemo';\n warnInvalidHookAccess();\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n try {\n return updateMemo(create, deps);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useReducer: function (reducer, initialArg, init) {\n currentHookNameInDev = 'useReducer';\n warnInvalidHookAccess();\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n try {\n return updateReducer(reducer, initialArg, init);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useRef: function (initialValue) {\n currentHookNameInDev = 'useRef';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateRef();\n },\n useState: function (initialState) {\n currentHookNameInDev = 'useState';\n warnInvalidHookAccess();\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n try {\n return updateState(initialState);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useDebugValue: function (value, formatterFn) {\n currentHookNameInDev = 'useDebugValue';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateDebugValue();\n },\n useDeferredValue: function (value) {\n currentHookNameInDev = 'useDeferredValue';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateDeferredValue(value);\n },\n useTransition: function () {\n currentHookNameInDev = 'useTransition';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateTransition();\n },\n useMutableSource: function (source, getSnapshot, subscribe) {\n currentHookNameInDev = 'useMutableSource';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateMutableSource(source, getSnapshot, subscribe);\n },\n useOpaqueIdentifier: function () {\n currentHookNameInDev = 'useOpaqueIdentifier';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateOpaqueIdentifier();\n },\n unstable_isNewReconciler: enableNewReconciler\n };\n InvalidNestedHooksDispatcherOnRerenderInDEV = {\n readContext: function (context, observedBits) {\n warnInvalidContextAccess();\n return readContext(context, observedBits);\n },\n useCallback: function (callback, deps) {\n currentHookNameInDev = 'useCallback';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateCallback(callback, deps);\n },\n useContext: function (context, observedBits) {\n currentHookNameInDev = 'useContext';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return readContext(context, observedBits);\n },\n useEffect: function (create, deps) {\n currentHookNameInDev = 'useEffect';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateEffect(create, deps);\n },\n useImperativeHandle: function (ref, create, deps) {\n currentHookNameInDev = 'useImperativeHandle';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateImperativeHandle(ref, create, deps);\n },\n useLayoutEffect: function (create, deps) {\n currentHookNameInDev = 'useLayoutEffect';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateLayoutEffect(create, deps);\n },\n useMemo: function (create, deps) {\n currentHookNameInDev = 'useMemo';\n warnInvalidHookAccess();\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n try {\n return updateMemo(create, deps);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useReducer: function (reducer, initialArg, init) {\n currentHookNameInDev = 'useReducer';\n warnInvalidHookAccess();\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n try {\n return rerenderReducer(reducer, initialArg, init);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useRef: function (initialValue) {\n currentHookNameInDev = 'useRef';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateRef();\n },\n useState: function (initialState) {\n currentHookNameInDev = 'useState';\n warnInvalidHookAccess();\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n try {\n return rerenderState(initialState);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useDebugValue: function (value, formatterFn) {\n currentHookNameInDev = 'useDebugValue';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateDebugValue();\n },\n useDeferredValue: function (value) {\n currentHookNameInDev = 'useDeferredValue';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return rerenderDeferredValue(value);\n },\n useTransition: function () {\n currentHookNameInDev = 'useTransition';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return rerenderTransition();\n },\n useMutableSource: function (source, getSnapshot, subscribe) {\n currentHookNameInDev = 'useMutableSource';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateMutableSource(source, getSnapshot, subscribe);\n },\n useOpaqueIdentifier: function () {\n currentHookNameInDev = 'useOpaqueIdentifier';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return rerenderOpaqueIdentifier();\n },\n unstable_isNewReconciler: enableNewReconciler\n };\n}\n\nvar now$1 = Scheduler.unstable_now;\nvar commitTime = 0;\nvar profilerStartTime = -1;\n\nfunction getCommitTime() {\n return commitTime;\n}\n\nfunction recordCommitTime() {\n\n commitTime = now$1();\n}\n\nfunction startProfilerTimer(fiber) {\n\n profilerStartTime = now$1();\n\n if (fiber.actualStartTime < 0) {\n fiber.actualStartTime = now$1();\n }\n}\n\nfunction stopProfilerTimerIfRunning(fiber) {\n\n profilerStartTime = -1;\n}\n\nfunction stopProfilerTimerIfRunningAndRecordDelta(fiber, overrideBaseTime) {\n\n if (profilerStartTime >= 0) {\n var elapsedTime = now$1() - profilerStartTime;\n fiber.actualDuration += elapsedTime;\n\n if (overrideBaseTime) {\n fiber.selfBaseDuration = elapsedTime;\n }\n\n profilerStartTime = -1;\n }\n}\n\nfunction transferActualDuration(fiber) {\n // Transfer time spent rendering these children so we don't lose it\n // after we rerender. This is used as a helper in special cases\n // where we should count the work of multiple passes.\n var child = fiber.child;\n\n while (child) {\n fiber.actualDuration += child.actualDuration;\n child = child.sibling;\n }\n}\n\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;\nvar didReceiveUpdate = false;\nvar didWarnAboutBadClass;\nvar didWarnAboutModulePatternComponent;\nvar didWarnAboutContextTypeOnFunctionComponent;\nvar didWarnAboutGetDerivedStateOnFunctionComponent;\nvar didWarnAboutFunctionRefs;\nvar didWarnAboutReassigningProps;\nvar didWarnAboutRevealOrder;\nvar didWarnAboutTailOptions;\n\n{\n didWarnAboutBadClass = {};\n didWarnAboutModulePatternComponent = {};\n didWarnAboutContextTypeOnFunctionComponent = {};\n didWarnAboutGetDerivedStateOnFunctionComponent = {};\n didWarnAboutFunctionRefs = {};\n didWarnAboutReassigningProps = false;\n didWarnAboutRevealOrder = {};\n didWarnAboutTailOptions = {};\n}\n\nfunction reconcileChildren(current, workInProgress, nextChildren, renderLanes) {\n if (current === null) {\n // If this is a fresh new component that hasn't been rendered yet, we\n // won't update its child set by applying minimal side-effects. Instead,\n // we will add them all to the child before it gets rendered. That means\n // we can optimize this reconciliation pass by not tracking side-effects.\n workInProgress.child = mountChildFibers(workInProgress, null, nextChildren, renderLanes);\n } else {\n // If the current child is the same as the work in progress, it means that\n // we haven't yet started any work on these children. Therefore, we use\n // the clone algorithm to create a copy of all the current children.\n // If we had any progressed work already, that is invalid at this point so\n // let's throw it out.\n workInProgress.child = reconcileChildFibers(workInProgress, current.child, nextChildren, renderLanes);\n }\n}\n\nfunction forceUnmountCurrentAndReconcile(current, workInProgress, nextChildren, renderLanes) {\n // This function is fork of reconcileChildren. It's used in cases where we\n // want to reconcile without matching against the existing set. This has the\n // effect of all current children being unmounted; even if the type and key\n // are the same, the old child is unmounted and a new child is created.\n //\n // To do this, we're going to go through the reconcile algorithm twice. In\n // the first pass, we schedule a deletion for all the current children by\n // passing null.\n workInProgress.child = reconcileChildFibers(workInProgress, current.child, null, renderLanes); // In the second pass, we mount the new children. The trick here is that we\n // pass null in place of where we usually pass the current child set. This has\n // the effect of remounting all children regardless of whether their\n // identities match.\n\n workInProgress.child = reconcileChildFibers(workInProgress, null, nextChildren, renderLanes);\n}\n\nfunction updateForwardRef(current, workInProgress, Component, nextProps, renderLanes) {\n // TODO: current can be non-null here even if the component\n // hasn't yet mounted. This happens after the first render suspends.\n // We'll need to figure out if this is fine or can cause issues.\n {\n if (workInProgress.type !== workInProgress.elementType) {\n // Lazy component props can't be validated in createElement\n // because they're only guaranteed to be resolved here.\n var innerPropTypes = Component.propTypes;\n\n if (innerPropTypes) {\n checkPropTypes(innerPropTypes, nextProps, // Resolved props\n 'prop', getComponentName(Component));\n }\n }\n }\n\n var render = Component.render;\n var ref = workInProgress.ref; // The rest is a fork of updateFunctionComponent\n\n var nextChildren;\n prepareToReadContext(workInProgress, renderLanes);\n\n {\n ReactCurrentOwner$1.current = workInProgress;\n setIsRendering(true);\n nextChildren = renderWithHooks(current, workInProgress, render, nextProps, ref, renderLanes);\n\n if ( workInProgress.mode & StrictMode) {\n disableLogs();\n\n try {\n nextChildren = renderWithHooks(current, workInProgress, render, nextProps, ref, renderLanes);\n } finally {\n reenableLogs();\n }\n }\n\n setIsRendering(false);\n }\n\n if (current !== null && !didReceiveUpdate) {\n bailoutHooks(current, workInProgress, renderLanes);\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n } // React DevTools reads this flag.\n\n\n workInProgress.flags |= PerformedWork;\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\n\nfunction updateMemoComponent(current, workInProgress, Component, nextProps, updateLanes, renderLanes) {\n if (current === null) {\n var type = Component.type;\n\n if (isSimpleFunctionComponent(type) && Component.compare === null && // SimpleMemoComponent codepath doesn't resolve outer props either.\n Component.defaultProps === undefined) {\n var resolvedType = type;\n\n {\n resolvedType = resolveFunctionForHotReloading(type);\n } // If this is a plain function component without default props,\n // and with only the default shallow comparison, we upgrade it\n // to a SimpleMemoComponent to allow fast path updates.\n\n\n workInProgress.tag = SimpleMemoComponent;\n workInProgress.type = resolvedType;\n\n {\n validateFunctionComponentInDev(workInProgress, type);\n }\n\n return updateSimpleMemoComponent(current, workInProgress, resolvedType, nextProps, updateLanes, renderLanes);\n }\n\n {\n var innerPropTypes = type.propTypes;\n\n if (innerPropTypes) {\n // Inner memo component props aren't currently validated in createElement.\n // We could move it there, but we'd still need this for lazy code path.\n checkPropTypes(innerPropTypes, nextProps, // Resolved props\n 'prop', getComponentName(type));\n }\n }\n\n var child = createFiberFromTypeAndProps(Component.type, null, nextProps, workInProgress, workInProgress.mode, renderLanes);\n child.ref = workInProgress.ref;\n child.return = workInProgress;\n workInProgress.child = child;\n return child;\n }\n\n {\n var _type = Component.type;\n var _innerPropTypes = _type.propTypes;\n\n if (_innerPropTypes) {\n // Inner memo component props aren't currently validated in createElement.\n // We could move it there, but we'd still need this for lazy code path.\n checkPropTypes(_innerPropTypes, nextProps, // Resolved props\n 'prop', getComponentName(_type));\n }\n }\n\n var currentChild = current.child; // This is always exactly one child\n\n if (!includesSomeLane(updateLanes, renderLanes)) {\n // This will be the props with resolved defaultProps,\n // unlike current.memoizedProps which will be the unresolved ones.\n var prevProps = currentChild.memoizedProps; // Default to shallow comparison\n\n var compare = Component.compare;\n compare = compare !== null ? compare : shallowEqual;\n\n if (compare(prevProps, nextProps) && current.ref === workInProgress.ref) {\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n } // React DevTools reads this flag.\n\n\n workInProgress.flags |= PerformedWork;\n var newChild = createWorkInProgress(currentChild, nextProps);\n newChild.ref = workInProgress.ref;\n newChild.return = workInProgress;\n workInProgress.child = newChild;\n return newChild;\n}\n\nfunction updateSimpleMemoComponent(current, workInProgress, Component, nextProps, updateLanes, renderLanes) {\n // TODO: current can be non-null here even if the component\n // hasn't yet mounted. This happens when the inner render suspends.\n // We'll need to figure out if this is fine or can cause issues.\n {\n if (workInProgress.type !== workInProgress.elementType) {\n // Lazy component props can't be validated in createElement\n // because they're only guaranteed to be resolved here.\n var outerMemoType = workInProgress.elementType;\n\n if (outerMemoType.$$typeof === REACT_LAZY_TYPE) {\n // We warn when you define propTypes on lazy()\n // so let's just skip over it to find memo() outer wrapper.\n // Inner props for memo are validated later.\n var lazyComponent = outerMemoType;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n outerMemoType = init(payload);\n } catch (x) {\n outerMemoType = null;\n } // Inner propTypes will be validated in the function component path.\n\n\n var outerPropTypes = outerMemoType && outerMemoType.propTypes;\n\n if (outerPropTypes) {\n checkPropTypes(outerPropTypes, nextProps, // Resolved (SimpleMemoComponent has no defaultProps)\n 'prop', getComponentName(outerMemoType));\n }\n }\n }\n }\n\n if (current !== null) {\n var prevProps = current.memoizedProps;\n\n if (shallowEqual(prevProps, nextProps) && current.ref === workInProgress.ref && ( // Prevent bailout if the implementation changed due to hot reload.\n workInProgress.type === current.type )) {\n didReceiveUpdate = false;\n\n if (!includesSomeLane(renderLanes, updateLanes)) {\n // The pending lanes were cleared at the beginning of beginWork. We're\n // about to bail out, but there might be other lanes that weren't\n // included in the current render. Usually, the priority level of the\n // remaining updates is accumlated during the evaluation of the\n // component (i.e. when processing the update queue). But since since\n // we're bailing out early *without* evaluating the component, we need\n // to account for it here, too. Reset to the value of the current fiber.\n // NOTE: This only applies to SimpleMemoComponent, not MemoComponent,\n // because a MemoComponent fiber does not have hooks or an update queue;\n // rather, it wraps around an inner component, which may or may not\n // contains hooks.\n // TODO: Move the reset at in beginWork out of the common path so that\n // this is no longer necessary.\n workInProgress.lanes = current.lanes;\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n } else if ((current.flags & ForceUpdateForLegacySuspense) !== NoFlags) {\n // This is a special case that only exists for legacy mode.\n // See https://github.com/facebook/react/pull/19216.\n didReceiveUpdate = true;\n }\n }\n }\n\n return updateFunctionComponent(current, workInProgress, Component, nextProps, renderLanes);\n}\n\nfunction updateOffscreenComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps;\n var nextChildren = nextProps.children;\n var prevState = current !== null ? current.memoizedState : null;\n\n if (nextProps.mode === 'hidden' || nextProps.mode === 'unstable-defer-without-hiding') {\n if ((workInProgress.mode & ConcurrentMode) === NoMode) {\n // In legacy sync mode, don't defer the subtree. Render it now.\n // TODO: Figure out what we should do in Blocking mode.\n var nextState = {\n baseLanes: NoLanes\n };\n workInProgress.memoizedState = nextState;\n pushRenderLanes(workInProgress, renderLanes);\n } else if (!includesSomeLane(renderLanes, OffscreenLane)) {\n var nextBaseLanes;\n\n if (prevState !== null) {\n var prevBaseLanes = prevState.baseLanes;\n nextBaseLanes = mergeLanes(prevBaseLanes, renderLanes);\n } else {\n nextBaseLanes = renderLanes;\n } // Schedule this fiber to re-render at offscreen priority. Then bailout.\n\n\n {\n markSpawnedWork(OffscreenLane);\n }\n\n workInProgress.lanes = workInProgress.childLanes = laneToLanes(OffscreenLane);\n var _nextState = {\n baseLanes: nextBaseLanes\n };\n workInProgress.memoizedState = _nextState; // We're about to bail out, but we need to push this to the stack anyway\n // to avoid a push/pop misalignment.\n\n pushRenderLanes(workInProgress, nextBaseLanes);\n return null;\n } else {\n // Rendering at offscreen, so we can clear the base lanes.\n var _nextState2 = {\n baseLanes: NoLanes\n };\n workInProgress.memoizedState = _nextState2; // Push the lanes that were skipped when we bailed out.\n\n var subtreeRenderLanes = prevState !== null ? prevState.baseLanes : renderLanes;\n pushRenderLanes(workInProgress, subtreeRenderLanes);\n }\n } else {\n var _subtreeRenderLanes;\n\n if (prevState !== null) {\n _subtreeRenderLanes = mergeLanes(prevState.baseLanes, renderLanes); // Since we're not hidden anymore, reset the state\n\n workInProgress.memoizedState = null;\n } else {\n // We weren't previously hidden, and we still aren't, so there's nothing\n // special to do. Need to push to the stack regardless, though, to avoid\n // a push/pop misalignment.\n _subtreeRenderLanes = renderLanes;\n }\n\n pushRenderLanes(workInProgress, _subtreeRenderLanes);\n }\n\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n} // Note: These happen to have identical begin phases, for now. We shouldn't hold\n// ourselves to this constraint, though. If the behavior diverges, we should\n// fork the function.\n\n\nvar updateLegacyHiddenComponent = updateOffscreenComponent;\n\nfunction updateFragment(current, workInProgress, renderLanes) {\n var nextChildren = workInProgress.pendingProps;\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\n\nfunction updateMode(current, workInProgress, renderLanes) {\n var nextChildren = workInProgress.pendingProps.children;\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\n\nfunction updateProfiler(current, workInProgress, renderLanes) {\n {\n workInProgress.flags |= Update; // Reset effect durations for the next eventual effect phase.\n // These are reset during render to allow the DevTools commit hook a chance to read them,\n\n var stateNode = workInProgress.stateNode;\n stateNode.effectDuration = 0;\n stateNode.passiveEffectDuration = 0;\n }\n\n var nextProps = workInProgress.pendingProps;\n var nextChildren = nextProps.children;\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\n\nfunction markRef(current, workInProgress) {\n var ref = workInProgress.ref;\n\n if (current === null && ref !== null || current !== null && current.ref !== ref) {\n // Schedule a Ref effect\n workInProgress.flags |= Ref;\n }\n}\n\nfunction updateFunctionComponent(current, workInProgress, Component, nextProps, renderLanes) {\n {\n if (workInProgress.type !== workInProgress.elementType) {\n // Lazy component props can't be validated in createElement\n // because they're only guaranteed to be resolved here.\n var innerPropTypes = Component.propTypes;\n\n if (innerPropTypes) {\n checkPropTypes(innerPropTypes, nextProps, // Resolved props\n 'prop', getComponentName(Component));\n }\n }\n }\n\n var context;\n\n {\n var unmaskedContext = getUnmaskedContext(workInProgress, Component, true);\n context = getMaskedContext(workInProgress, unmaskedContext);\n }\n\n var nextChildren;\n prepareToReadContext(workInProgress, renderLanes);\n\n {\n ReactCurrentOwner$1.current = workInProgress;\n setIsRendering(true);\n nextChildren = renderWithHooks(current, workInProgress, Component, nextProps, context, renderLanes);\n\n if ( workInProgress.mode & StrictMode) {\n disableLogs();\n\n try {\n nextChildren = renderWithHooks(current, workInProgress, Component, nextProps, context, renderLanes);\n } finally {\n reenableLogs();\n }\n }\n\n setIsRendering(false);\n }\n\n if (current !== null && !didReceiveUpdate) {\n bailoutHooks(current, workInProgress, renderLanes);\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n } // React DevTools reads this flag.\n\n\n workInProgress.flags |= PerformedWork;\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\n\nfunction updateClassComponent(current, workInProgress, Component, nextProps, renderLanes) {\n {\n if (workInProgress.type !== workInProgress.elementType) {\n // Lazy component props can't be validated in createElement\n // because they're only guaranteed to be resolved here.\n var innerPropTypes = Component.propTypes;\n\n if (innerPropTypes) {\n checkPropTypes(innerPropTypes, nextProps, // Resolved props\n 'prop', getComponentName(Component));\n }\n }\n } // Push context providers early to prevent context stack mismatches.\n // During mounting we don't know the child context yet as the instance doesn't exist.\n // We will invalidate the child context in finishClassComponent() right after rendering.\n\n\n var hasContext;\n\n if (isContextProvider(Component)) {\n hasContext = true;\n pushContextProvider(workInProgress);\n } else {\n hasContext = false;\n }\n\n prepareToReadContext(workInProgress, renderLanes);\n var instance = workInProgress.stateNode;\n var shouldUpdate;\n\n if (instance === null) {\n if (current !== null) {\n // A class component without an instance only mounts if it suspended\n // inside a non-concurrent tree, in an inconsistent state. We want to\n // treat it like a new mount, even though an empty version of it already\n // committed. Disconnect the alternate pointers.\n current.alternate = null;\n workInProgress.alternate = null; // Since this is conceptually a new fiber, schedule a Placement effect\n\n workInProgress.flags |= Placement;\n } // In the initial pass we might need to construct the instance.\n\n\n constructClassInstance(workInProgress, Component, nextProps);\n mountClassInstance(workInProgress, Component, nextProps, renderLanes);\n shouldUpdate = true;\n } else if (current === null) {\n // In a resume, we'll already have an instance we can reuse.\n shouldUpdate = resumeMountClassInstance(workInProgress, Component, nextProps, renderLanes);\n } else {\n shouldUpdate = updateClassInstance(current, workInProgress, Component, nextProps, renderLanes);\n }\n\n var nextUnitOfWork = finishClassComponent(current, workInProgress, Component, shouldUpdate, hasContext, renderLanes);\n\n {\n var inst = workInProgress.stateNode;\n\n if (shouldUpdate && inst.props !== nextProps) {\n if (!didWarnAboutReassigningProps) {\n error('It looks like %s is reassigning its own `this.props` while rendering. ' + 'This is not supported and can lead to confusing bugs.', getComponentName(workInProgress.type) || 'a component');\n }\n\n didWarnAboutReassigningProps = true;\n }\n }\n\n return nextUnitOfWork;\n}\n\nfunction finishClassComponent(current, workInProgress, Component, shouldUpdate, hasContext, renderLanes) {\n // Refs should update even if shouldComponentUpdate returns false\n markRef(current, workInProgress);\n var didCaptureError = (workInProgress.flags & DidCapture) !== NoFlags;\n\n if (!shouldUpdate && !didCaptureError) {\n // Context providers should defer to sCU for rendering\n if (hasContext) {\n invalidateContextProvider(workInProgress, Component, false);\n }\n\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n\n var instance = workInProgress.stateNode; // Rerender\n\n ReactCurrentOwner$1.current = workInProgress;\n var nextChildren;\n\n if (didCaptureError && typeof Component.getDerivedStateFromError !== 'function') {\n // If we captured an error, but getDerivedStateFromError is not defined,\n // unmount all the children. componentDidCatch will schedule an update to\n // re-render a fallback. This is temporary until we migrate everyone to\n // the new API.\n // TODO: Warn in a future release.\n nextChildren = null;\n\n {\n stopProfilerTimerIfRunning();\n }\n } else {\n {\n setIsRendering(true);\n nextChildren = instance.render();\n\n if ( workInProgress.mode & StrictMode) {\n disableLogs();\n\n try {\n instance.render();\n } finally {\n reenableLogs();\n }\n }\n\n setIsRendering(false);\n }\n } // React DevTools reads this flag.\n\n\n workInProgress.flags |= PerformedWork;\n\n if (current !== null && didCaptureError) {\n // If we're recovering from an error, reconcile without reusing any of\n // the existing children. Conceptually, the normal children and the children\n // that are shown on error are two different sets, so we shouldn't reuse\n // normal children even if their identities match.\n forceUnmountCurrentAndReconcile(current, workInProgress, nextChildren, renderLanes);\n } else {\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n } // Memoize state using the values we just used to render.\n // TODO: Restructure so we never read values from the instance.\n\n\n workInProgress.memoizedState = instance.state; // The context might have changed so we need to recalculate it.\n\n if (hasContext) {\n invalidateContextProvider(workInProgress, Component, true);\n }\n\n return workInProgress.child;\n}\n\nfunction pushHostRootContext(workInProgress) {\n var root = workInProgress.stateNode;\n\n if (root.pendingContext) {\n pushTopLevelContextObject(workInProgress, root.pendingContext, root.pendingContext !== root.context);\n } else if (root.context) {\n // Should always be set\n pushTopLevelContextObject(workInProgress, root.context, false);\n }\n\n pushHostContainer(workInProgress, root.containerInfo);\n}\n\nfunction updateHostRoot(current, workInProgress, renderLanes) {\n pushHostRootContext(workInProgress);\n var updateQueue = workInProgress.updateQueue;\n\n if (!(current !== null && updateQueue !== null)) {\n {\n throw Error( \"If the root does not have an updateQueue, we should have already bailed out. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n\n var nextProps = workInProgress.pendingProps;\n var prevState = workInProgress.memoizedState;\n var prevChildren = prevState !== null ? prevState.element : null;\n cloneUpdateQueue(current, workInProgress);\n processUpdateQueue(workInProgress, nextProps, null, renderLanes);\n var nextState = workInProgress.memoizedState; // Caution: React DevTools currently depends on this property\n // being called \"element\".\n\n var nextChildren = nextState.element;\n\n if (nextChildren === prevChildren) {\n resetHydrationState();\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n\n var root = workInProgress.stateNode;\n\n if (root.hydrate && enterHydrationState(workInProgress)) {\n // If we don't have any current children this might be the first pass.\n // We always try to hydrate. If this isn't a hydration pass there won't\n // be any children to hydrate which is effectively the same thing as\n // not hydrating.\n {\n var mutableSourceEagerHydrationData = root.mutableSourceEagerHydrationData;\n\n if (mutableSourceEagerHydrationData != null) {\n for (var i = 0; i < mutableSourceEagerHydrationData.length; i += 2) {\n var mutableSource = mutableSourceEagerHydrationData[i];\n var version = mutableSourceEagerHydrationData[i + 1];\n setWorkInProgressVersion(mutableSource, version);\n }\n }\n }\n\n var child = mountChildFibers(workInProgress, null, nextChildren, renderLanes);\n workInProgress.child = child;\n var node = child;\n\n while (node) {\n // Mark each child as hydrating. This is a fast path to know whether this\n // tree is part of a hydrating tree. This is used to determine if a child\n // node has fully mounted yet, and for scheduling event replaying.\n // Conceptually this is similar to Placement in that a new subtree is\n // inserted into the React tree here. It just happens to not need DOM\n // mutations because it already exists.\n node.flags = node.flags & ~Placement | Hydrating;\n node = node.sibling;\n }\n } else {\n // Otherwise reset hydration state in case we aborted and resumed another\n // root.\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n resetHydrationState();\n }\n\n return workInProgress.child;\n}\n\nfunction updateHostComponent(current, workInProgress, renderLanes) {\n pushHostContext(workInProgress);\n\n if (current === null) {\n tryToClaimNextHydratableInstance(workInProgress);\n }\n\n var type = workInProgress.type;\n var nextProps = workInProgress.pendingProps;\n var prevProps = current !== null ? current.memoizedProps : null;\n var nextChildren = nextProps.children;\n var isDirectTextChild = shouldSetTextContent(type, nextProps);\n\n if (isDirectTextChild) {\n // We special case a direct text child of a host node. This is a common\n // case. We won't handle it as a reified child. We will instead handle\n // this in the host environment that also has access to this prop. That\n // avoids allocating another HostText fiber and traversing it.\n nextChildren = null;\n } else if (prevProps !== null && shouldSetTextContent(type, prevProps)) {\n // If we're switching from a direct text child to a normal child, or to\n // empty, we need to schedule the text content to be reset.\n workInProgress.flags |= ContentReset;\n }\n\n markRef(current, workInProgress);\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\n\nfunction updateHostText(current, workInProgress) {\n if (current === null) {\n tryToClaimNextHydratableInstance(workInProgress);\n } // Nothing to do here. This is terminal. We'll do the completion step\n // immediately after.\n\n\n return null;\n}\n\nfunction mountLazyComponent(_current, workInProgress, elementType, updateLanes, renderLanes) {\n if (_current !== null) {\n // A lazy component only mounts if it suspended inside a non-\n // concurrent tree, in an inconsistent state. We want to treat it like\n // a new mount, even though an empty version of it already committed.\n // Disconnect the alternate pointers.\n _current.alternate = null;\n workInProgress.alternate = null; // Since this is conceptually a new fiber, schedule a Placement effect\n\n workInProgress.flags |= Placement;\n }\n\n var props = workInProgress.pendingProps;\n var lazyComponent = elementType;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n var Component = init(payload); // Store the unwrapped component in the type.\n\n workInProgress.type = Component;\n var resolvedTag = workInProgress.tag = resolveLazyComponentTag(Component);\n var resolvedProps = resolveDefaultProps(Component, props);\n var child;\n\n switch (resolvedTag) {\n case FunctionComponent:\n {\n {\n validateFunctionComponentInDev(workInProgress, Component);\n workInProgress.type = Component = resolveFunctionForHotReloading(Component);\n }\n\n child = updateFunctionComponent(null, workInProgress, Component, resolvedProps, renderLanes);\n return child;\n }\n\n case ClassComponent:\n {\n {\n workInProgress.type = Component = resolveClassForHotReloading(Component);\n }\n\n child = updateClassComponent(null, workInProgress, Component, resolvedProps, renderLanes);\n return child;\n }\n\n case ForwardRef:\n {\n {\n workInProgress.type = Component = resolveForwardRefForHotReloading(Component);\n }\n\n child = updateForwardRef(null, workInProgress, Component, resolvedProps, renderLanes);\n return child;\n }\n\n case MemoComponent:\n {\n {\n if (workInProgress.type !== workInProgress.elementType) {\n var outerPropTypes = Component.propTypes;\n\n if (outerPropTypes) {\n checkPropTypes(outerPropTypes, resolvedProps, // Resolved for outer only\n 'prop', getComponentName(Component));\n }\n }\n }\n\n child = updateMemoComponent(null, workInProgress, Component, resolveDefaultProps(Component.type, resolvedProps), // The inner type can have defaults too\n updateLanes, renderLanes);\n return child;\n }\n }\n\n var hint = '';\n\n {\n if (Component !== null && typeof Component === 'object' && Component.$$typeof === REACT_LAZY_TYPE) {\n hint = ' Did you wrap a component in React.lazy() more than once?';\n }\n } // This message intentionally doesn't mention ForwardRef or MemoComponent\n // because the fact that it's a separate type of work is an\n // implementation detail.\n\n\n {\n {\n throw Error( \"Element type is invalid. Received a promise that resolves to: \" + Component + \". Lazy element type must resolve to a class or function.\" + hint );\n }\n }\n}\n\nfunction mountIncompleteClassComponent(_current, workInProgress, Component, nextProps, renderLanes) {\n if (_current !== null) {\n // An incomplete component only mounts if it suspended inside a non-\n // concurrent tree, in an inconsistent state. We want to treat it like\n // a new mount, even though an empty version of it already committed.\n // Disconnect the alternate pointers.\n _current.alternate = null;\n workInProgress.alternate = null; // Since this is conceptually a new fiber, schedule a Placement effect\n\n workInProgress.flags |= Placement;\n } // Promote the fiber to a class and try rendering again.\n\n\n workInProgress.tag = ClassComponent; // The rest of this function is a fork of `updateClassComponent`\n // Push context providers early to prevent context stack mismatches.\n // During mounting we don't know the child context yet as the instance doesn't exist.\n // We will invalidate the child context in finishClassComponent() right after rendering.\n\n var hasContext;\n\n if (isContextProvider(Component)) {\n hasContext = true;\n pushContextProvider(workInProgress);\n } else {\n hasContext = false;\n }\n\n prepareToReadContext(workInProgress, renderLanes);\n constructClassInstance(workInProgress, Component, nextProps);\n mountClassInstance(workInProgress, Component, nextProps, renderLanes);\n return finishClassComponent(null, workInProgress, Component, true, hasContext, renderLanes);\n}\n\nfunction mountIndeterminateComponent(_current, workInProgress, Component, renderLanes) {\n if (_current !== null) {\n // An indeterminate component only mounts if it suspended inside a non-\n // concurrent tree, in an inconsistent state. We want to treat it like\n // a new mount, even though an empty version of it already committed.\n // Disconnect the alternate pointers.\n _current.alternate = null;\n workInProgress.alternate = null; // Since this is conceptually a new fiber, schedule a Placement effect\n\n workInProgress.flags |= Placement;\n }\n\n var props = workInProgress.pendingProps;\n var context;\n\n {\n var unmaskedContext = getUnmaskedContext(workInProgress, Component, false);\n context = getMaskedContext(workInProgress, unmaskedContext);\n }\n\n prepareToReadContext(workInProgress, renderLanes);\n var value;\n\n {\n if (Component.prototype && typeof Component.prototype.render === 'function') {\n var componentName = getComponentName(Component) || 'Unknown';\n\n if (!didWarnAboutBadClass[componentName]) {\n error(\"The <%s /> component appears to have a render method, but doesn't extend React.Component. \" + 'This is likely to cause errors. Change %s to extend React.Component instead.', componentName, componentName);\n\n didWarnAboutBadClass[componentName] = true;\n }\n }\n\n if (workInProgress.mode & StrictMode) {\n ReactStrictModeWarnings.recordLegacyContextWarning(workInProgress, null);\n }\n\n setIsRendering(true);\n ReactCurrentOwner$1.current = workInProgress;\n value = renderWithHooks(null, workInProgress, Component, props, context, renderLanes);\n setIsRendering(false);\n } // React DevTools reads this flag.\n\n\n workInProgress.flags |= PerformedWork;\n\n {\n // Support for module components is deprecated and is removed behind a flag.\n // Whether or not it would crash later, we want to show a good message in DEV first.\n if (typeof value === 'object' && value !== null && typeof value.render === 'function' && value.$$typeof === undefined) {\n var _componentName = getComponentName(Component) || 'Unknown';\n\n if (!didWarnAboutModulePatternComponent[_componentName]) {\n error('The <%s /> component appears to be a function component that returns a class instance. ' + 'Change %s to a class that extends React.Component instead. ' + \"If you can't use a class try assigning the prototype on the function as a workaround. \" + \"`%s.prototype = React.Component.prototype`. Don't use an arrow function since it \" + 'cannot be called with `new` by React.', _componentName, _componentName, _componentName);\n\n didWarnAboutModulePatternComponent[_componentName] = true;\n }\n }\n }\n\n if ( // Run these checks in production only if the flag is off.\n // Eventually we'll delete this branch altogether.\n typeof value === 'object' && value !== null && typeof value.render === 'function' && value.$$typeof === undefined) {\n {\n var _componentName2 = getComponentName(Component) || 'Unknown';\n\n if (!didWarnAboutModulePatternComponent[_componentName2]) {\n error('The <%s /> component appears to be a function component that returns a class instance. ' + 'Change %s to a class that extends React.Component instead. ' + \"If you can't use a class try assigning the prototype on the function as a workaround. \" + \"`%s.prototype = React.Component.prototype`. Don't use an arrow function since it \" + 'cannot be called with `new` by React.', _componentName2, _componentName2, _componentName2);\n\n didWarnAboutModulePatternComponent[_componentName2] = true;\n }\n } // Proceed under the assumption that this is a class instance\n\n\n workInProgress.tag = ClassComponent; // Throw out any hooks that were used.\n\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null; // Push context providers early to prevent context stack mismatches.\n // During mounting we don't know the child context yet as the instance doesn't exist.\n // We will invalidate the child context in finishClassComponent() right after rendering.\n\n var hasContext = false;\n\n if (isContextProvider(Component)) {\n hasContext = true;\n pushContextProvider(workInProgress);\n } else {\n hasContext = false;\n }\n\n workInProgress.memoizedState = value.state !== null && value.state !== undefined ? value.state : null;\n initializeUpdateQueue(workInProgress);\n var getDerivedStateFromProps = Component.getDerivedStateFromProps;\n\n if (typeof getDerivedStateFromProps === 'function') {\n applyDerivedStateFromProps(workInProgress, Component, getDerivedStateFromProps, props);\n }\n\n adoptClassInstance(workInProgress, value);\n mountClassInstance(workInProgress, Component, props, renderLanes);\n return finishClassComponent(null, workInProgress, Component, true, hasContext, renderLanes);\n } else {\n // Proceed under the assumption that this is a function component\n workInProgress.tag = FunctionComponent;\n\n {\n\n if ( workInProgress.mode & StrictMode) {\n disableLogs();\n\n try {\n value = renderWithHooks(null, workInProgress, Component, props, context, renderLanes);\n } finally {\n reenableLogs();\n }\n }\n }\n\n reconcileChildren(null, workInProgress, value, renderLanes);\n\n {\n validateFunctionComponentInDev(workInProgress, Component);\n }\n\n return workInProgress.child;\n }\n}\n\nfunction validateFunctionComponentInDev(workInProgress, Component) {\n {\n if (Component) {\n if (Component.childContextTypes) {\n error('%s(...): childContextTypes cannot be defined on a function component.', Component.displayName || Component.name || 'Component');\n }\n }\n\n if (workInProgress.ref !== null) {\n var info = '';\n var ownerName = getCurrentFiberOwnerNameInDevOrNull();\n\n if (ownerName) {\n info += '\\n\\nCheck the render method of `' + ownerName + '`.';\n }\n\n var warningKey = ownerName || workInProgress._debugID || '';\n var debugSource = workInProgress._debugSource;\n\n if (debugSource) {\n warningKey = debugSource.fileName + ':' + debugSource.lineNumber;\n }\n\n if (!didWarnAboutFunctionRefs[warningKey]) {\n didWarnAboutFunctionRefs[warningKey] = true;\n\n error('Function components cannot be given refs. ' + 'Attempts to access this ref will fail. ' + 'Did you mean to use React.forwardRef()?%s', info);\n }\n }\n\n if (typeof Component.getDerivedStateFromProps === 'function') {\n var _componentName3 = getComponentName(Component) || 'Unknown';\n\n if (!didWarnAboutGetDerivedStateOnFunctionComponent[_componentName3]) {\n error('%s: Function components do not support getDerivedStateFromProps.', _componentName3);\n\n didWarnAboutGetDerivedStateOnFunctionComponent[_componentName3] = true;\n }\n }\n\n if (typeof Component.contextType === 'object' && Component.contextType !== null) {\n var _componentName4 = getComponentName(Component) || 'Unknown';\n\n if (!didWarnAboutContextTypeOnFunctionComponent[_componentName4]) {\n error('%s: Function components do not support contextType.', _componentName4);\n\n didWarnAboutContextTypeOnFunctionComponent[_componentName4] = true;\n }\n }\n }\n}\n\nvar SUSPENDED_MARKER = {\n dehydrated: null,\n retryLane: NoLane\n};\n\nfunction mountSuspenseOffscreenState(renderLanes) {\n return {\n baseLanes: renderLanes\n };\n}\n\nfunction updateSuspenseOffscreenState(prevOffscreenState, renderLanes) {\n return {\n baseLanes: mergeLanes(prevOffscreenState.baseLanes, renderLanes)\n };\n} // TODO: Probably should inline this back\n\n\nfunction shouldRemainOnFallback(suspenseContext, current, workInProgress, renderLanes) {\n // If we're already showing a fallback, there are cases where we need to\n // remain on that fallback regardless of whether the content has resolved.\n // For example, SuspenseList coordinates when nested content appears.\n if (current !== null) {\n var suspenseState = current.memoizedState;\n\n if (suspenseState === null) {\n // Currently showing content. Don't hide it, even if ForceSuspenseFallack\n // is true. More precise name might be \"ForceRemainSuspenseFallback\".\n // Note: This is a factoring smell. Can't remain on a fallback if there's\n // no fallback to remain on.\n return false;\n }\n } // Not currently showing content. Consult the Suspense context.\n\n\n return hasSuspenseContext(suspenseContext, ForceSuspenseFallback);\n}\n\nfunction getRemainingWorkInPrimaryTree(current, renderLanes) {\n // TODO: Should not remove render lanes that were pinged during this render\n return removeLanes(current.childLanes, renderLanes);\n}\n\nfunction updateSuspenseComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps; // This is used by DevTools to force a boundary to suspend.\n\n {\n if (shouldSuspend(workInProgress)) {\n workInProgress.flags |= DidCapture;\n }\n }\n\n var suspenseContext = suspenseStackCursor.current;\n var showFallback = false;\n var didSuspend = (workInProgress.flags & DidCapture) !== NoFlags;\n\n if (didSuspend || shouldRemainOnFallback(suspenseContext, current)) {\n // Something in this boundary's subtree already suspended. Switch to\n // rendering the fallback children.\n showFallback = true;\n workInProgress.flags &= ~DidCapture;\n } else {\n // Attempting the main content\n if (current === null || current.memoizedState !== null) {\n // This is a new mount or this boundary is already showing a fallback state.\n // Mark this subtree context as having at least one invisible parent that could\n // handle the fallback state.\n // Boundaries without fallbacks or should be avoided are not considered since\n // they cannot handle preferred fallback states.\n if (nextProps.fallback !== undefined && nextProps.unstable_avoidThisFallback !== true) {\n suspenseContext = addSubtreeSuspenseContext(suspenseContext, InvisibleParentSuspenseContext);\n }\n }\n }\n\n suspenseContext = setDefaultShallowSuspenseContext(suspenseContext);\n pushSuspenseContext(workInProgress, suspenseContext); // OK, the next part is confusing. We're about to reconcile the Suspense\n // boundary's children. This involves some custom reconcilation logic. Two\n // main reasons this is so complicated.\n //\n // First, Legacy Mode has different semantics for backwards compatibility. The\n // primary tree will commit in an inconsistent state, so when we do the\n // second pass to render the fallback, we do some exceedingly, uh, clever\n // hacks to make that not totally break. Like transferring effects and\n // deletions from hidden tree. In Concurrent Mode, it's much simpler,\n // because we bailout on the primary tree completely and leave it in its old\n // state, no effects. Same as what we do for Offscreen (except that\n // Offscreen doesn't have the first render pass).\n //\n // Second is hydration. During hydration, the Suspense fiber has a slightly\n // different layout, where the child points to a dehydrated fragment, which\n // contains the DOM rendered by the server.\n //\n // Third, even if you set all that aside, Suspense is like error boundaries in\n // that we first we try to render one tree, and if that fails, we render again\n // and switch to a different tree. Like a try/catch block. So we have to track\n // which branch we're currently rendering. Ideally we would model this using\n // a stack.\n\n if (current === null) {\n // Initial mount\n // If we're currently hydrating, try to hydrate this boundary.\n // But only if this has a fallback.\n if (nextProps.fallback !== undefined) {\n tryToClaimNextHydratableInstance(workInProgress); // This could've been a dehydrated suspense component.\n }\n\n var nextPrimaryChildren = nextProps.children;\n var nextFallbackChildren = nextProps.fallback;\n\n if (showFallback) {\n var fallbackFragment = mountSuspenseFallbackChildren(workInProgress, nextPrimaryChildren, nextFallbackChildren, renderLanes);\n var primaryChildFragment = workInProgress.child;\n primaryChildFragment.memoizedState = mountSuspenseOffscreenState(renderLanes);\n workInProgress.memoizedState = SUSPENDED_MARKER;\n return fallbackFragment;\n } else if (typeof nextProps.unstable_expectedLoadTime === 'number') {\n // This is a CPU-bound tree. Skip this tree and show a placeholder to\n // unblock the surrounding content. Then immediately retry after the\n // initial commit.\n var _fallbackFragment = mountSuspenseFallbackChildren(workInProgress, nextPrimaryChildren, nextFallbackChildren, renderLanes);\n\n var _primaryChildFragment = workInProgress.child;\n _primaryChildFragment.memoizedState = mountSuspenseOffscreenState(renderLanes);\n workInProgress.memoizedState = SUSPENDED_MARKER; // Since nothing actually suspended, there will nothing to ping this to\n // get it started back up to attempt the next item. While in terms of\n // priority this work has the same priority as this current render, it's\n // not part of the same transition once the transition has committed. If\n // it's sync, we still want to yield so that it can be painted.\n // Conceptually, this is really the same as pinging. We can use any\n // RetryLane even if it's the one currently rendering since we're leaving\n // it behind on this node.\n\n workInProgress.lanes = SomeRetryLane;\n\n {\n markSpawnedWork(SomeRetryLane);\n }\n\n return _fallbackFragment;\n } else {\n return mountSuspensePrimaryChildren(workInProgress, nextPrimaryChildren, renderLanes);\n }\n } else {\n // This is an update.\n // If the current fiber has a SuspenseState, that means it's already showing\n // a fallback.\n var prevState = current.memoizedState;\n\n if (prevState !== null) {\n\n if (showFallback) {\n var _nextFallbackChildren2 = nextProps.fallback;\n var _nextPrimaryChildren2 = nextProps.children;\n\n var _fallbackChildFragment = updateSuspenseFallbackChildren(current, workInProgress, _nextPrimaryChildren2, _nextFallbackChildren2, renderLanes);\n\n var _primaryChildFragment3 = workInProgress.child;\n var prevOffscreenState = current.child.memoizedState;\n _primaryChildFragment3.memoizedState = prevOffscreenState === null ? mountSuspenseOffscreenState(renderLanes) : updateSuspenseOffscreenState(prevOffscreenState, renderLanes);\n _primaryChildFragment3.childLanes = getRemainingWorkInPrimaryTree(current, renderLanes);\n workInProgress.memoizedState = SUSPENDED_MARKER;\n return _fallbackChildFragment;\n } else {\n var _nextPrimaryChildren3 = nextProps.children;\n\n var _primaryChildFragment4 = updateSuspensePrimaryChildren(current, workInProgress, _nextPrimaryChildren3, renderLanes);\n\n workInProgress.memoizedState = null;\n return _primaryChildFragment4;\n }\n } else {\n // The current tree is not already showing a fallback.\n if (showFallback) {\n // Timed out.\n var _nextFallbackChildren3 = nextProps.fallback;\n var _nextPrimaryChildren4 = nextProps.children;\n\n var _fallbackChildFragment2 = updateSuspenseFallbackChildren(current, workInProgress, _nextPrimaryChildren4, _nextFallbackChildren3, renderLanes);\n\n var _primaryChildFragment5 = workInProgress.child;\n var _prevOffscreenState = current.child.memoizedState;\n _primaryChildFragment5.memoizedState = _prevOffscreenState === null ? mountSuspenseOffscreenState(renderLanes) : updateSuspenseOffscreenState(_prevOffscreenState, renderLanes);\n _primaryChildFragment5.childLanes = getRemainingWorkInPrimaryTree(current, renderLanes); // Skip the primary children, and continue working on the\n // fallback children.\n\n workInProgress.memoizedState = SUSPENDED_MARKER;\n return _fallbackChildFragment2;\n } else {\n // Still haven't timed out. Continue rendering the children, like we\n // normally do.\n var _nextPrimaryChildren5 = nextProps.children;\n\n var _primaryChildFragment6 = updateSuspensePrimaryChildren(current, workInProgress, _nextPrimaryChildren5, renderLanes);\n\n workInProgress.memoizedState = null;\n return _primaryChildFragment6;\n }\n }\n }\n}\n\nfunction mountSuspensePrimaryChildren(workInProgress, primaryChildren, renderLanes) {\n var mode = workInProgress.mode;\n var primaryChildProps = {\n mode: 'visible',\n children: primaryChildren\n };\n var primaryChildFragment = createFiberFromOffscreen(primaryChildProps, mode, renderLanes, null);\n primaryChildFragment.return = workInProgress;\n workInProgress.child = primaryChildFragment;\n return primaryChildFragment;\n}\n\nfunction mountSuspenseFallbackChildren(workInProgress, primaryChildren, fallbackChildren, renderLanes) {\n var mode = workInProgress.mode;\n var progressedPrimaryFragment = workInProgress.child;\n var primaryChildProps = {\n mode: 'hidden',\n children: primaryChildren\n };\n var primaryChildFragment;\n var fallbackChildFragment;\n\n if ((mode & BlockingMode) === NoMode && progressedPrimaryFragment !== null) {\n // In legacy mode, we commit the primary tree as if it successfully\n // completed, even though it's in an inconsistent state.\n primaryChildFragment = progressedPrimaryFragment;\n primaryChildFragment.childLanes = NoLanes;\n primaryChildFragment.pendingProps = primaryChildProps;\n\n if ( workInProgress.mode & ProfileMode) {\n // Reset the durations from the first pass so they aren't included in the\n // final amounts. This seems counterintuitive, since we're intentionally\n // not measuring part of the render phase, but this makes it match what we\n // do in Concurrent Mode.\n primaryChildFragment.actualDuration = 0;\n primaryChildFragment.actualStartTime = -1;\n primaryChildFragment.selfBaseDuration = 0;\n primaryChildFragment.treeBaseDuration = 0;\n }\n\n fallbackChildFragment = createFiberFromFragment(fallbackChildren, mode, renderLanes, null);\n } else {\n primaryChildFragment = createFiberFromOffscreen(primaryChildProps, mode, NoLanes, null);\n fallbackChildFragment = createFiberFromFragment(fallbackChildren, mode, renderLanes, null);\n }\n\n primaryChildFragment.return = workInProgress;\n fallbackChildFragment.return = workInProgress;\n primaryChildFragment.sibling = fallbackChildFragment;\n workInProgress.child = primaryChildFragment;\n return fallbackChildFragment;\n}\n\nfunction createWorkInProgressOffscreenFiber(current, offscreenProps) {\n // The props argument to `createWorkInProgress` is `any` typed, so we use this\n // wrapper function to constrain it.\n return createWorkInProgress(current, offscreenProps);\n}\n\nfunction updateSuspensePrimaryChildren(current, workInProgress, primaryChildren, renderLanes) {\n var currentPrimaryChildFragment = current.child;\n var currentFallbackChildFragment = currentPrimaryChildFragment.sibling;\n var primaryChildFragment = createWorkInProgressOffscreenFiber(currentPrimaryChildFragment, {\n mode: 'visible',\n children: primaryChildren\n });\n\n if ((workInProgress.mode & BlockingMode) === NoMode) {\n primaryChildFragment.lanes = renderLanes;\n }\n\n primaryChildFragment.return = workInProgress;\n primaryChildFragment.sibling = null;\n\n if (currentFallbackChildFragment !== null) {\n // Delete the fallback child fragment\n currentFallbackChildFragment.nextEffect = null;\n currentFallbackChildFragment.flags = Deletion;\n workInProgress.firstEffect = workInProgress.lastEffect = currentFallbackChildFragment;\n }\n\n workInProgress.child = primaryChildFragment;\n return primaryChildFragment;\n}\n\nfunction updateSuspenseFallbackChildren(current, workInProgress, primaryChildren, fallbackChildren, renderLanes) {\n var mode = workInProgress.mode;\n var currentPrimaryChildFragment = current.child;\n var currentFallbackChildFragment = currentPrimaryChildFragment.sibling;\n var primaryChildProps = {\n mode: 'hidden',\n children: primaryChildren\n };\n var primaryChildFragment;\n\n if ( // In legacy mode, we commit the primary tree as if it successfully\n // completed, even though it's in an inconsistent state.\n (mode & BlockingMode) === NoMode && // Make sure we're on the second pass, i.e. the primary child fragment was\n // already cloned. In legacy mode, the only case where this isn't true is\n // when DevTools forces us to display a fallback; we skip the first render\n // pass entirely and go straight to rendering the fallback. (In Concurrent\n // Mode, SuspenseList can also trigger this scenario, but this is a legacy-\n // only codepath.)\n workInProgress.child !== currentPrimaryChildFragment) {\n var progressedPrimaryFragment = workInProgress.child;\n primaryChildFragment = progressedPrimaryFragment;\n primaryChildFragment.childLanes = NoLanes;\n primaryChildFragment.pendingProps = primaryChildProps;\n\n if ( workInProgress.mode & ProfileMode) {\n // Reset the durations from the first pass so they aren't included in the\n // final amounts. This seems counterintuitive, since we're intentionally\n // not measuring part of the render phase, but this makes it match what we\n // do in Concurrent Mode.\n primaryChildFragment.actualDuration = 0;\n primaryChildFragment.actualStartTime = -1;\n primaryChildFragment.selfBaseDuration = currentPrimaryChildFragment.selfBaseDuration;\n primaryChildFragment.treeBaseDuration = currentPrimaryChildFragment.treeBaseDuration;\n } // The fallback fiber was added as a deletion effect during the first pass.\n // However, since we're going to remain on the fallback, we no longer want\n // to delete it. So we need to remove it from the list. Deletions are stored\n // on the same list as effects. We want to keep the effects from the primary\n // tree. So we copy the primary child fragment's effect list, which does not\n // include the fallback deletion effect.\n\n\n var progressedLastEffect = primaryChildFragment.lastEffect;\n\n if (progressedLastEffect !== null) {\n workInProgress.firstEffect = primaryChildFragment.firstEffect;\n workInProgress.lastEffect = progressedLastEffect;\n progressedLastEffect.nextEffect = null;\n } else {\n // TODO: Reset this somewhere else? Lol legacy mode is so weird.\n workInProgress.firstEffect = workInProgress.lastEffect = null;\n }\n } else {\n primaryChildFragment = createWorkInProgressOffscreenFiber(currentPrimaryChildFragment, primaryChildProps);\n }\n\n var fallbackChildFragment;\n\n if (currentFallbackChildFragment !== null) {\n fallbackChildFragment = createWorkInProgress(currentFallbackChildFragment, fallbackChildren);\n } else {\n fallbackChildFragment = createFiberFromFragment(fallbackChildren, mode, renderLanes, null); // Needs a placement effect because the parent (the Suspense boundary) already\n // mounted but this is a new fiber.\n\n fallbackChildFragment.flags |= Placement;\n }\n\n fallbackChildFragment.return = workInProgress;\n primaryChildFragment.return = workInProgress;\n primaryChildFragment.sibling = fallbackChildFragment;\n workInProgress.child = primaryChildFragment;\n return fallbackChildFragment;\n}\n\nfunction scheduleWorkOnFiber(fiber, renderLanes) {\n fiber.lanes = mergeLanes(fiber.lanes, renderLanes);\n var alternate = fiber.alternate;\n\n if (alternate !== null) {\n alternate.lanes = mergeLanes(alternate.lanes, renderLanes);\n }\n\n scheduleWorkOnParentPath(fiber.return, renderLanes);\n}\n\nfunction propagateSuspenseContextChange(workInProgress, firstChild, renderLanes) {\n // Mark any Suspense boundaries with fallbacks as having work to do.\n // If they were previously forced into fallbacks, they may now be able\n // to unblock.\n var node = firstChild;\n\n while (node !== null) {\n if (node.tag === SuspenseComponent) {\n var state = node.memoizedState;\n\n if (state !== null) {\n scheduleWorkOnFiber(node, renderLanes);\n }\n } else if (node.tag === SuspenseListComponent) {\n // If the tail is hidden there might not be an Suspense boundaries\n // to schedule work on. In this case we have to schedule it on the\n // list itself.\n // We don't have to traverse to the children of the list since\n // the list will propagate the change when it rerenders.\n scheduleWorkOnFiber(node, renderLanes);\n } else if (node.child !== null) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n\n if (node === workInProgress) {\n return;\n }\n\n while (node.sibling === null) {\n if (node.return === null || node.return === workInProgress) {\n return;\n }\n\n node = node.return;\n }\n\n node.sibling.return = node.return;\n node = node.sibling;\n }\n}\n\nfunction findLastContentRow(firstChild) {\n // This is going to find the last row among these children that is already\n // showing content on the screen, as opposed to being in fallback state or\n // new. If a row has multiple Suspense boundaries, any of them being in the\n // fallback state, counts as the whole row being in a fallback state.\n // Note that the \"rows\" will be workInProgress, but any nested children\n // will still be current since we haven't rendered them yet. The mounted\n // order may not be the same as the new order. We use the new order.\n var row = firstChild;\n var lastContentRow = null;\n\n while (row !== null) {\n var currentRow = row.alternate; // New rows can't be content rows.\n\n if (currentRow !== null && findFirstSuspended(currentRow) === null) {\n lastContentRow = row;\n }\n\n row = row.sibling;\n }\n\n return lastContentRow;\n}\n\nfunction validateRevealOrder(revealOrder) {\n {\n if (revealOrder !== undefined && revealOrder !== 'forwards' && revealOrder !== 'backwards' && revealOrder !== 'together' && !didWarnAboutRevealOrder[revealOrder]) {\n didWarnAboutRevealOrder[revealOrder] = true;\n\n if (typeof revealOrder === 'string') {\n switch (revealOrder.toLowerCase()) {\n case 'together':\n case 'forwards':\n case 'backwards':\n {\n error('\"%s\" is not a valid value for revealOrder on <SuspenseList />. ' + 'Use lowercase \"%s\" instead.', revealOrder, revealOrder.toLowerCase());\n\n break;\n }\n\n case 'forward':\n case 'backward':\n {\n error('\"%s\" is not a valid value for revealOrder on <SuspenseList />. ' + 'React uses the -s suffix in the spelling. Use \"%ss\" instead.', revealOrder, revealOrder.toLowerCase());\n\n break;\n }\n\n default:\n error('\"%s\" is not a supported revealOrder on <SuspenseList />. ' + 'Did you mean \"together\", \"forwards\" or \"backwards\"?', revealOrder);\n\n break;\n }\n } else {\n error('%s is not a supported value for revealOrder on <SuspenseList />. ' + 'Did you mean \"together\", \"forwards\" or \"backwards\"?', revealOrder);\n }\n }\n }\n}\n\nfunction validateTailOptions(tailMode, revealOrder) {\n {\n if (tailMode !== undefined && !didWarnAboutTailOptions[tailMode]) {\n if (tailMode !== 'collapsed' && tailMode !== 'hidden') {\n didWarnAboutTailOptions[tailMode] = true;\n\n error('\"%s\" is not a supported value for tail on <SuspenseList />. ' + 'Did you mean \"collapsed\" or \"hidden\"?', tailMode);\n } else if (revealOrder !== 'forwards' && revealOrder !== 'backwards') {\n didWarnAboutTailOptions[tailMode] = true;\n\n error('<SuspenseList tail=\"%s\" /> is only valid if revealOrder is ' + '\"forwards\" or \"backwards\". ' + 'Did you mean to specify revealOrder=\"forwards\"?', tailMode);\n }\n }\n }\n}\n\nfunction validateSuspenseListNestedChild(childSlot, index) {\n {\n var isArray = Array.isArray(childSlot);\n var isIterable = !isArray && typeof getIteratorFn(childSlot) === 'function';\n\n if (isArray || isIterable) {\n var type = isArray ? 'array' : 'iterable';\n\n error('A nested %s was passed to row #%s in <SuspenseList />. Wrap it in ' + 'an additional SuspenseList to configure its revealOrder: ' + '<SuspenseList revealOrder=...> ... ' + '<SuspenseList revealOrder=...>{%s}</SuspenseList> ... ' + '</SuspenseList>', type, index, type);\n\n return false;\n }\n }\n\n return true;\n}\n\nfunction validateSuspenseListChildren(children, revealOrder) {\n {\n if ((revealOrder === 'forwards' || revealOrder === 'backwards') && children !== undefined && children !== null && children !== false) {\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n if (!validateSuspenseListNestedChild(children[i], i)) {\n return;\n }\n }\n } else {\n var iteratorFn = getIteratorFn(children);\n\n if (typeof iteratorFn === 'function') {\n var childrenIterator = iteratorFn.call(children);\n\n if (childrenIterator) {\n var step = childrenIterator.next();\n var _i = 0;\n\n for (; !step.done; step = childrenIterator.next()) {\n if (!validateSuspenseListNestedChild(step.value, _i)) {\n return;\n }\n\n _i++;\n }\n }\n } else {\n error('A single row was passed to a <SuspenseList revealOrder=\"%s\" />. ' + 'This is not useful since it needs multiple rows. ' + 'Did you mean to pass multiple children or an array?', revealOrder);\n }\n }\n }\n }\n}\n\nfunction initSuspenseListRenderState(workInProgress, isBackwards, tail, lastContentRow, tailMode, lastEffectBeforeRendering) {\n var renderState = workInProgress.memoizedState;\n\n if (renderState === null) {\n workInProgress.memoizedState = {\n isBackwards: isBackwards,\n rendering: null,\n renderingStartTime: 0,\n last: lastContentRow,\n tail: tail,\n tailMode: tailMode,\n lastEffect: lastEffectBeforeRendering\n };\n } else {\n // We can reuse the existing object from previous renders.\n renderState.isBackwards = isBackwards;\n renderState.rendering = null;\n renderState.renderingStartTime = 0;\n renderState.last = lastContentRow;\n renderState.tail = tail;\n renderState.tailMode = tailMode;\n renderState.lastEffect = lastEffectBeforeRendering;\n }\n} // This can end up rendering this component multiple passes.\n// The first pass splits the children fibers into two sets. A head and tail.\n// We first render the head. If anything is in fallback state, we do another\n// pass through beginWork to rerender all children (including the tail) with\n// the force suspend context. If the first render didn't have anything in\n// in fallback state. Then we render each row in the tail one-by-one.\n// That happens in the completeWork phase without going back to beginWork.\n\n\nfunction updateSuspenseListComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps;\n var revealOrder = nextProps.revealOrder;\n var tailMode = nextProps.tail;\n var newChildren = nextProps.children;\n validateRevealOrder(revealOrder);\n validateTailOptions(tailMode, revealOrder);\n validateSuspenseListChildren(newChildren, revealOrder);\n reconcileChildren(current, workInProgress, newChildren, renderLanes);\n var suspenseContext = suspenseStackCursor.current;\n var shouldForceFallback = hasSuspenseContext(suspenseContext, ForceSuspenseFallback);\n\n if (shouldForceFallback) {\n suspenseContext = setShallowSuspenseContext(suspenseContext, ForceSuspenseFallback);\n workInProgress.flags |= DidCapture;\n } else {\n var didSuspendBefore = current !== null && (current.flags & DidCapture) !== NoFlags;\n\n if (didSuspendBefore) {\n // If we previously forced a fallback, we need to schedule work\n // on any nested boundaries to let them know to try to render\n // again. This is the same as context updating.\n propagateSuspenseContextChange(workInProgress, workInProgress.child, renderLanes);\n }\n\n suspenseContext = setDefaultShallowSuspenseContext(suspenseContext);\n }\n\n pushSuspenseContext(workInProgress, suspenseContext);\n\n if ((workInProgress.mode & BlockingMode) === NoMode) {\n // In legacy mode, SuspenseList doesn't work so we just\n // use make it a noop by treating it as the default revealOrder.\n workInProgress.memoizedState = null;\n } else {\n switch (revealOrder) {\n case 'forwards':\n {\n var lastContentRow = findLastContentRow(workInProgress.child);\n var tail;\n\n if (lastContentRow === null) {\n // The whole list is part of the tail.\n // TODO: We could fast path by just rendering the tail now.\n tail = workInProgress.child;\n workInProgress.child = null;\n } else {\n // Disconnect the tail rows after the content row.\n // We're going to render them separately later.\n tail = lastContentRow.sibling;\n lastContentRow.sibling = null;\n }\n\n initSuspenseListRenderState(workInProgress, false, // isBackwards\n tail, lastContentRow, tailMode, workInProgress.lastEffect);\n break;\n }\n\n case 'backwards':\n {\n // We're going to find the first row that has existing content.\n // At the same time we're going to reverse the list of everything\n // we pass in the meantime. That's going to be our tail in reverse\n // order.\n var _tail = null;\n var row = workInProgress.child;\n workInProgress.child = null;\n\n while (row !== null) {\n var currentRow = row.alternate; // New rows can't be content rows.\n\n if (currentRow !== null && findFirstSuspended(currentRow) === null) {\n // This is the beginning of the main content.\n workInProgress.child = row;\n break;\n }\n\n var nextRow = row.sibling;\n row.sibling = _tail;\n _tail = row;\n row = nextRow;\n } // TODO: If workInProgress.child is null, we can continue on the tail immediately.\n\n\n initSuspenseListRenderState(workInProgress, true, // isBackwards\n _tail, null, // last\n tailMode, workInProgress.lastEffect);\n break;\n }\n\n case 'together':\n {\n initSuspenseListRenderState(workInProgress, false, // isBackwards\n null, // tail\n null, // last\n undefined, workInProgress.lastEffect);\n break;\n }\n\n default:\n {\n // The default reveal order is the same as not having\n // a boundary.\n workInProgress.memoizedState = null;\n }\n }\n }\n\n return workInProgress.child;\n}\n\nfunction updatePortalComponent(current, workInProgress, renderLanes) {\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n var nextChildren = workInProgress.pendingProps;\n\n if (current === null) {\n // Portals are special because we don't append the children during mount\n // but at commit. Therefore we need to track insertions which the normal\n // flow doesn't do during mount. This doesn't happen at the root because\n // the root always starts with a \"current\" with a null child.\n // TODO: Consider unifying this with how the root works.\n workInProgress.child = reconcileChildFibers(workInProgress, null, nextChildren, renderLanes);\n } else {\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n }\n\n return workInProgress.child;\n}\n\nvar hasWarnedAboutUsingNoValuePropOnContextProvider = false;\n\nfunction updateContextProvider(current, workInProgress, renderLanes) {\n var providerType = workInProgress.type;\n var context = providerType._context;\n var newProps = workInProgress.pendingProps;\n var oldProps = workInProgress.memoizedProps;\n var newValue = newProps.value;\n\n {\n if (!('value' in newProps)) {\n if (!hasWarnedAboutUsingNoValuePropOnContextProvider) {\n hasWarnedAboutUsingNoValuePropOnContextProvider = true;\n\n error('The `value` prop is required for the `<Context.Provider>`. Did you misspell it or forget to pass it?');\n }\n }\n\n var providerPropTypes = workInProgress.type.propTypes;\n\n if (providerPropTypes) {\n checkPropTypes(providerPropTypes, newProps, 'prop', 'Context.Provider');\n }\n }\n\n pushProvider(workInProgress, newValue);\n\n if (oldProps !== null) {\n var oldValue = oldProps.value;\n var changedBits = calculateChangedBits(context, newValue, oldValue);\n\n if (changedBits === 0) {\n // No change. Bailout early if children are the same.\n if (oldProps.children === newProps.children && !hasContextChanged()) {\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n } else {\n // The context value changed. Search for matching consumers and schedule\n // them to update.\n propagateContextChange(workInProgress, context, changedBits, renderLanes);\n }\n }\n\n var newChildren = newProps.children;\n reconcileChildren(current, workInProgress, newChildren, renderLanes);\n return workInProgress.child;\n}\n\nvar hasWarnedAboutUsingContextAsConsumer = false;\n\nfunction updateContextConsumer(current, workInProgress, renderLanes) {\n var context = workInProgress.type; // The logic below for Context differs depending on PROD or DEV mode. In\n // DEV mode, we create a separate object for Context.Consumer that acts\n // like a proxy to Context. This proxy object adds unnecessary code in PROD\n // so we use the old behaviour (Context.Consumer references Context) to\n // reduce size and overhead. The separate object references context via\n // a property called \"_context\", which also gives us the ability to check\n // in DEV mode if this property exists or not and warn if it does not.\n\n {\n if (context._context === undefined) {\n // This may be because it's a Context (rather than a Consumer).\n // Or it may be because it's older React where they're the same thing.\n // We only want to warn if we're sure it's a new React.\n if (context !== context.Consumer) {\n if (!hasWarnedAboutUsingContextAsConsumer) {\n hasWarnedAboutUsingContextAsConsumer = true;\n\n error('Rendering <Context> directly is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Consumer> instead?');\n }\n }\n } else {\n context = context._context;\n }\n }\n\n var newProps = workInProgress.pendingProps;\n var render = newProps.children;\n\n {\n if (typeof render !== 'function') {\n error('A context consumer was rendered with multiple children, or a child ' + \"that isn't a function. A context consumer expects a single child \" + 'that is a function. If you did pass a function, make sure there ' + 'is no trailing or leading whitespace around it.');\n }\n }\n\n prepareToReadContext(workInProgress, renderLanes);\n var newValue = readContext(context, newProps.unstable_observedBits);\n var newChildren;\n\n {\n ReactCurrentOwner$1.current = workInProgress;\n setIsRendering(true);\n newChildren = render(newValue);\n setIsRendering(false);\n } // React DevTools reads this flag.\n\n\n workInProgress.flags |= PerformedWork;\n reconcileChildren(current, workInProgress, newChildren, renderLanes);\n return workInProgress.child;\n}\n\nfunction markWorkInProgressReceivedUpdate() {\n didReceiveUpdate = true;\n}\n\nfunction bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes) {\n if (current !== null) {\n // Reuse previous dependencies\n workInProgress.dependencies = current.dependencies;\n }\n\n {\n // Don't update \"base\" render times for bailouts.\n stopProfilerTimerIfRunning();\n }\n\n markSkippedUpdateLanes(workInProgress.lanes); // Check if the children have any pending work.\n\n if (!includesSomeLane(renderLanes, workInProgress.childLanes)) {\n // The children don't have any work either. We can skip them.\n // TODO: Once we add back resuming, we should check if the children are\n // a work-in-progress set. If so, we need to transfer their effects.\n return null;\n } else {\n // This fiber doesn't have work, but its subtree does. Clone the child\n // fibers and continue.\n cloneChildFibers(current, workInProgress);\n return workInProgress.child;\n }\n}\n\nfunction remountFiber(current, oldWorkInProgress, newWorkInProgress) {\n {\n var returnFiber = oldWorkInProgress.return;\n\n if (returnFiber === null) {\n throw new Error('Cannot swap the root fiber.');\n } // Disconnect from the old current.\n // It will get deleted.\n\n\n current.alternate = null;\n oldWorkInProgress.alternate = null; // Connect to the new tree.\n\n newWorkInProgress.index = oldWorkInProgress.index;\n newWorkInProgress.sibling = oldWorkInProgress.sibling;\n newWorkInProgress.return = oldWorkInProgress.return;\n newWorkInProgress.ref = oldWorkInProgress.ref; // Replace the child/sibling pointers above it.\n\n if (oldWorkInProgress === returnFiber.child) {\n returnFiber.child = newWorkInProgress;\n } else {\n var prevSibling = returnFiber.child;\n\n if (prevSibling === null) {\n throw new Error('Expected parent to have a child.');\n }\n\n while (prevSibling.sibling !== oldWorkInProgress) {\n prevSibling = prevSibling.sibling;\n\n if (prevSibling === null) {\n throw new Error('Expected to find the previous sibling.');\n }\n }\n\n prevSibling.sibling = newWorkInProgress;\n } // Delete the old fiber and place the new one.\n // Since the old fiber is disconnected, we have to schedule it manually.\n\n\n var last = returnFiber.lastEffect;\n\n if (last !== null) {\n last.nextEffect = current;\n returnFiber.lastEffect = current;\n } else {\n returnFiber.firstEffect = returnFiber.lastEffect = current;\n }\n\n current.nextEffect = null;\n current.flags = Deletion;\n newWorkInProgress.flags |= Placement; // Restart work from the new fiber.\n\n return newWorkInProgress;\n }\n}\n\nfunction beginWork(current, workInProgress, renderLanes) {\n var updateLanes = workInProgress.lanes;\n\n {\n if (workInProgress._debugNeedsRemount && current !== null) {\n // This will restart the begin phase with a new fiber.\n return remountFiber(current, workInProgress, createFiberFromTypeAndProps(workInProgress.type, workInProgress.key, workInProgress.pendingProps, workInProgress._debugOwner || null, workInProgress.mode, workInProgress.lanes));\n }\n }\n\n if (current !== null) {\n var oldProps = current.memoizedProps;\n var newProps = workInProgress.pendingProps;\n\n if (oldProps !== newProps || hasContextChanged() || ( // Force a re-render if the implementation changed due to hot reload:\n workInProgress.type !== current.type )) {\n // If props or context changed, mark the fiber as having performed work.\n // This may be unset if the props are determined to be equal later (memo).\n didReceiveUpdate = true;\n } else if (!includesSomeLane(renderLanes, updateLanes)) {\n didReceiveUpdate = false; // This fiber does not have any pending work. Bailout without entering\n // the begin phase. There's still some bookkeeping we that needs to be done\n // in this optimized path, mostly pushing stuff onto the stack.\n\n switch (workInProgress.tag) {\n case HostRoot:\n pushHostRootContext(workInProgress);\n resetHydrationState();\n break;\n\n case HostComponent:\n pushHostContext(workInProgress);\n break;\n\n case ClassComponent:\n {\n var Component = workInProgress.type;\n\n if (isContextProvider(Component)) {\n pushContextProvider(workInProgress);\n }\n\n break;\n }\n\n case HostPortal:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n break;\n\n case ContextProvider:\n {\n var newValue = workInProgress.memoizedProps.value;\n pushProvider(workInProgress, newValue);\n break;\n }\n\n case Profiler:\n {\n // Profiler should only call onRender when one of its descendants actually rendered.\n var hasChildWork = includesSomeLane(renderLanes, workInProgress.childLanes);\n\n if (hasChildWork) {\n workInProgress.flags |= Update;\n } // Reset effect durations for the next eventual effect phase.\n // These are reset during render to allow the DevTools commit hook a chance to read them,\n\n\n var stateNode = workInProgress.stateNode;\n stateNode.effectDuration = 0;\n stateNode.passiveEffectDuration = 0;\n }\n\n break;\n\n case SuspenseComponent:\n {\n var state = workInProgress.memoizedState;\n\n if (state !== null) {\n // whether to retry the primary children, or to skip over it and\n // go straight to the fallback. Check the priority of the primary\n // child fragment.\n\n\n var primaryChildFragment = workInProgress.child;\n var primaryChildLanes = primaryChildFragment.childLanes;\n\n if (includesSomeLane(renderLanes, primaryChildLanes)) {\n // The primary children have pending work. Use the normal path\n // to attempt to render the primary children again.\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n } else {\n // The primary child fragment does not have pending work marked\n // on it\n pushSuspenseContext(workInProgress, setDefaultShallowSuspenseContext(suspenseStackCursor.current)); // The primary children do not have pending work with sufficient\n // priority. Bailout.\n\n var child = bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n\n if (child !== null) {\n // The fallback children have pending work. Skip over the\n // primary children and work on the fallback.\n return child.sibling;\n } else {\n return null;\n }\n }\n } else {\n pushSuspenseContext(workInProgress, setDefaultShallowSuspenseContext(suspenseStackCursor.current));\n }\n\n break;\n }\n\n case SuspenseListComponent:\n {\n var didSuspendBefore = (current.flags & DidCapture) !== NoFlags;\n\n var _hasChildWork = includesSomeLane(renderLanes, workInProgress.childLanes);\n\n if (didSuspendBefore) {\n if (_hasChildWork) {\n // If something was in fallback state last time, and we have all the\n // same children then we're still in progressive loading state.\n // Something might get unblocked by state updates or retries in the\n // tree which will affect the tail. So we need to use the normal\n // path to compute the correct tail.\n return updateSuspenseListComponent(current, workInProgress, renderLanes);\n } // If none of the children had any work, that means that none of\n // them got retried so they'll still be blocked in the same way\n // as before. We can fast bail out.\n\n\n workInProgress.flags |= DidCapture;\n } // If nothing suspended before and we're rendering the same children,\n // then the tail doesn't matter. Anything new that suspends will work\n // in the \"together\" mode, so we can continue from the state we had.\n\n\n var renderState = workInProgress.memoizedState;\n\n if (renderState !== null) {\n // Reset to the \"together\" mode in case we've started a different\n // update in the past but didn't complete it.\n renderState.rendering = null;\n renderState.tail = null;\n renderState.lastEffect = null;\n }\n\n pushSuspenseContext(workInProgress, suspenseStackCursor.current);\n\n if (_hasChildWork) {\n break;\n } else {\n // If none of the children had any work, that means that none of\n // them got retried so they'll still be blocked in the same way\n // as before. We can fast bail out.\n return null;\n }\n }\n\n case OffscreenComponent:\n case LegacyHiddenComponent:\n {\n // Need to check if the tree still needs to be deferred. This is\n // almost identical to the logic used in the normal update path,\n // so we'll just enter that. The only difference is we'll bail out\n // at the next level instead of this one, because the child props\n // have not changed. Which is fine.\n // TODO: Probably should refactor `beginWork` to split the bailout\n // path from the normal path. I'm tempted to do a labeled break here\n // but I won't :)\n workInProgress.lanes = NoLanes;\n return updateOffscreenComponent(current, workInProgress, renderLanes);\n }\n }\n\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n } else {\n if ((current.flags & ForceUpdateForLegacySuspense) !== NoFlags) {\n // This is a special case that only exists for legacy mode.\n // See https://github.com/facebook/react/pull/19216.\n didReceiveUpdate = true;\n } else {\n // An update was scheduled on this fiber, but there are no new props\n // nor legacy context. Set this to false. If an update queue or context\n // consumer produces a changed value, it will set this to true. Otherwise,\n // the component will assume the children have not changed and bail out.\n didReceiveUpdate = false;\n }\n }\n } else {\n didReceiveUpdate = false;\n } // Before entering the begin phase, clear pending update priority.\n // TODO: This assumes that we're about to evaluate the component and process\n // the update queue. However, there's an exception: SimpleMemoComponent\n // sometimes bails out later in the begin phase. This indicates that we should\n // move this assignment out of the common path and into each branch.\n\n\n workInProgress.lanes = NoLanes;\n\n switch (workInProgress.tag) {\n case IndeterminateComponent:\n {\n return mountIndeterminateComponent(current, workInProgress, workInProgress.type, renderLanes);\n }\n\n case LazyComponent:\n {\n var elementType = workInProgress.elementType;\n return mountLazyComponent(current, workInProgress, elementType, updateLanes, renderLanes);\n }\n\n case FunctionComponent:\n {\n var _Component = workInProgress.type;\n var unresolvedProps = workInProgress.pendingProps;\n var resolvedProps = workInProgress.elementType === _Component ? unresolvedProps : resolveDefaultProps(_Component, unresolvedProps);\n return updateFunctionComponent(current, workInProgress, _Component, resolvedProps, renderLanes);\n }\n\n case ClassComponent:\n {\n var _Component2 = workInProgress.type;\n var _unresolvedProps = workInProgress.pendingProps;\n\n var _resolvedProps = workInProgress.elementType === _Component2 ? _unresolvedProps : resolveDefaultProps(_Component2, _unresolvedProps);\n\n return updateClassComponent(current, workInProgress, _Component2, _resolvedProps, renderLanes);\n }\n\n case HostRoot:\n return updateHostRoot(current, workInProgress, renderLanes);\n\n case HostComponent:\n return updateHostComponent(current, workInProgress, renderLanes);\n\n case HostText:\n return updateHostText(current, workInProgress);\n\n case SuspenseComponent:\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n\n case HostPortal:\n return updatePortalComponent(current, workInProgress, renderLanes);\n\n case ForwardRef:\n {\n var type = workInProgress.type;\n var _unresolvedProps2 = workInProgress.pendingProps;\n\n var _resolvedProps2 = workInProgress.elementType === type ? _unresolvedProps2 : resolveDefaultProps(type, _unresolvedProps2);\n\n return updateForwardRef(current, workInProgress, type, _resolvedProps2, renderLanes);\n }\n\n case Fragment:\n return updateFragment(current, workInProgress, renderLanes);\n\n case Mode:\n return updateMode(current, workInProgress, renderLanes);\n\n case Profiler:\n return updateProfiler(current, workInProgress, renderLanes);\n\n case ContextProvider:\n return updateContextProvider(current, workInProgress, renderLanes);\n\n case ContextConsumer:\n return updateContextConsumer(current, workInProgress, renderLanes);\n\n case MemoComponent:\n {\n var _type2 = workInProgress.type;\n var _unresolvedProps3 = workInProgress.pendingProps; // Resolve outer props first, then resolve inner props.\n\n var _resolvedProps3 = resolveDefaultProps(_type2, _unresolvedProps3);\n\n {\n if (workInProgress.type !== workInProgress.elementType) {\n var outerPropTypes = _type2.propTypes;\n\n if (outerPropTypes) {\n checkPropTypes(outerPropTypes, _resolvedProps3, // Resolved for outer only\n 'prop', getComponentName(_type2));\n }\n }\n }\n\n _resolvedProps3 = resolveDefaultProps(_type2.type, _resolvedProps3);\n return updateMemoComponent(current, workInProgress, _type2, _resolvedProps3, updateLanes, renderLanes);\n }\n\n case SimpleMemoComponent:\n {\n return updateSimpleMemoComponent(current, workInProgress, workInProgress.type, workInProgress.pendingProps, updateLanes, renderLanes);\n }\n\n case IncompleteClassComponent:\n {\n var _Component3 = workInProgress.type;\n var _unresolvedProps4 = workInProgress.pendingProps;\n\n var _resolvedProps4 = workInProgress.elementType === _Component3 ? _unresolvedProps4 : resolveDefaultProps(_Component3, _unresolvedProps4);\n\n return mountIncompleteClassComponent(current, workInProgress, _Component3, _resolvedProps4, renderLanes);\n }\n\n case SuspenseListComponent:\n {\n return updateSuspenseListComponent(current, workInProgress, renderLanes);\n }\n\n case FundamentalComponent:\n {\n\n break;\n }\n\n case ScopeComponent:\n {\n\n break;\n }\n\n case Block:\n {\n\n break;\n }\n\n case OffscreenComponent:\n {\n return updateOffscreenComponent(current, workInProgress, renderLanes);\n }\n\n case LegacyHiddenComponent:\n {\n return updateLegacyHiddenComponent(current, workInProgress, renderLanes);\n }\n }\n\n {\n {\n throw Error( \"Unknown unit of work tag (\" + workInProgress.tag + \"). This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n}\n\nfunction markUpdate(workInProgress) {\n // Tag the fiber with an update effect. This turns a Placement into\n // a PlacementAndUpdate.\n workInProgress.flags |= Update;\n}\n\nfunction markRef$1(workInProgress) {\n workInProgress.flags |= Ref;\n}\n\nvar appendAllChildren;\nvar updateHostContainer;\nvar updateHostComponent$1;\nvar updateHostText$1;\n\n{\n // Mutation mode\n appendAllChildren = function (parent, workInProgress, needsVisibilityToggle, isHidden) {\n // We only have the top Fiber that was created but we need recurse down its\n // children to find all the terminal nodes.\n var node = workInProgress.child;\n\n while (node !== null) {\n if (node.tag === HostComponent || node.tag === HostText) {\n appendInitialChild(parent, node.stateNode);\n } else if (node.tag === HostPortal) ; else if (node.child !== null) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n\n if (node === workInProgress) {\n return;\n }\n\n while (node.sibling === null) {\n if (node.return === null || node.return === workInProgress) {\n return;\n }\n\n node = node.return;\n }\n\n node.sibling.return = node.return;\n node = node.sibling;\n }\n };\n\n updateHostContainer = function (workInProgress) {// Noop\n };\n\n updateHostComponent$1 = function (current, workInProgress, type, newProps, rootContainerInstance) {\n // If we have an alternate, that means this is an update and we need to\n // schedule a side-effect to do the updates.\n var oldProps = current.memoizedProps;\n\n if (oldProps === newProps) {\n // In mutation mode, this is sufficient for a bailout because\n // we won't touch this node even if children changed.\n return;\n } // If we get updated because one of our children updated, we don't\n // have newProps so we'll have to reuse them.\n // TODO: Split the update API as separate for the props vs. children.\n // Even better would be if children weren't special cased at all tho.\n\n\n var instance = workInProgress.stateNode;\n var currentHostContext = getHostContext(); // TODO: Experiencing an error where oldProps is null. Suggests a host\n // component is hitting the resume path. Figure out why. Possibly\n // related to `hidden`.\n\n var updatePayload = prepareUpdate(instance, type, oldProps, newProps, rootContainerInstance, currentHostContext); // TODO: Type this specific to this type of component.\n\n workInProgress.updateQueue = updatePayload; // If the update payload indicates that there is a change or if there\n // is a new ref we mark this as an update. All the work is done in commitWork.\n\n if (updatePayload) {\n markUpdate(workInProgress);\n }\n };\n\n updateHostText$1 = function (current, workInProgress, oldText, newText) {\n // If the text differs, mark it as an update. All the work in done in commitWork.\n if (oldText !== newText) {\n markUpdate(workInProgress);\n }\n };\n}\n\nfunction cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {\n if (getIsHydrating()) {\n // If we're hydrating, we should consume as many items as we can\n // so we don't leave any behind.\n return;\n }\n\n switch (renderState.tailMode) {\n case 'hidden':\n {\n // Any insertions at the end of the tail list after this point\n // should be invisible. If there are already mounted boundaries\n // anything before them are not considered for collapsing.\n // Therefore we need to go through the whole tail to find if\n // there are any.\n var tailNode = renderState.tail;\n var lastTailNode = null;\n\n while (tailNode !== null) {\n if (tailNode.alternate !== null) {\n lastTailNode = tailNode;\n }\n\n tailNode = tailNode.sibling;\n } // Next we're simply going to delete all insertions after the\n // last rendered item.\n\n\n if (lastTailNode === null) {\n // All remaining items in the tail are insertions.\n renderState.tail = null;\n } else {\n // Detach the insertion after the last node that was already\n // inserted.\n lastTailNode.sibling = null;\n }\n\n break;\n }\n\n case 'collapsed':\n {\n // Any insertions at the end of the tail list after this point\n // should be invisible. If there are already mounted boundaries\n // anything before them are not considered for collapsing.\n // Therefore we need to go through the whole tail to find if\n // there are any.\n var _tailNode = renderState.tail;\n var _lastTailNode = null;\n\n while (_tailNode !== null) {\n if (_tailNode.alternate !== null) {\n _lastTailNode = _tailNode;\n }\n\n _tailNode = _tailNode.sibling;\n } // Next we're simply going to delete all insertions after the\n // last rendered item.\n\n\n if (_lastTailNode === null) {\n // All remaining items in the tail are insertions.\n if (!hasRenderedATailFallback && renderState.tail !== null) {\n // We suspended during the head. We want to show at least one\n // row at the tail. So we'll keep on and cut off the rest.\n renderState.tail.sibling = null;\n } else {\n renderState.tail = null;\n }\n } else {\n // Detach the insertion after the last node that was already\n // inserted.\n _lastTailNode.sibling = null;\n }\n\n break;\n }\n }\n}\n\nfunction completeWork(current, workInProgress, renderLanes) {\n var newProps = workInProgress.pendingProps;\n\n switch (workInProgress.tag) {\n case IndeterminateComponent:\n case LazyComponent:\n case SimpleMemoComponent:\n case FunctionComponent:\n case ForwardRef:\n case Fragment:\n case Mode:\n case Profiler:\n case ContextConsumer:\n case MemoComponent:\n return null;\n\n case ClassComponent:\n {\n var Component = workInProgress.type;\n\n if (isContextProvider(Component)) {\n popContext(workInProgress);\n }\n\n return null;\n }\n\n case HostRoot:\n {\n popHostContainer(workInProgress);\n popTopLevelContextObject(workInProgress);\n resetWorkInProgressVersions();\n var fiberRoot = workInProgress.stateNode;\n\n if (fiberRoot.pendingContext) {\n fiberRoot.context = fiberRoot.pendingContext;\n fiberRoot.pendingContext = null;\n }\n\n if (current === null || current.child === null) {\n // If we hydrated, pop so that we can delete any remaining children\n // that weren't hydrated.\n var wasHydrated = popHydrationState(workInProgress);\n\n if (wasHydrated) {\n // If we hydrated, then we'll need to schedule an update for\n // the commit side-effects on the root.\n markUpdate(workInProgress);\n } else if (!fiberRoot.hydrate) {\n // Schedule an effect to clear this container at the start of the next commit.\n // This handles the case of React rendering into a container with previous children.\n // It's also safe to do for updates too, because current.child would only be null\n // if the previous render was null (so the the container would already be empty).\n workInProgress.flags |= Snapshot;\n }\n }\n\n updateHostContainer(workInProgress);\n return null;\n }\n\n case HostComponent:\n {\n popHostContext(workInProgress);\n var rootContainerInstance = getRootHostContainer();\n var type = workInProgress.type;\n\n if (current !== null && workInProgress.stateNode != null) {\n updateHostComponent$1(current, workInProgress, type, newProps, rootContainerInstance);\n\n if (current.ref !== workInProgress.ref) {\n markRef$1(workInProgress);\n }\n } else {\n if (!newProps) {\n if (!(workInProgress.stateNode !== null)) {\n {\n throw Error( \"We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n } // This can happen when we abort work.\n\n\n return null;\n }\n\n var currentHostContext = getHostContext(); // TODO: Move createInstance to beginWork and keep it on a context\n // \"stack\" as the parent. Then append children as we go in beginWork\n // or completeWork depending on whether we want to add them top->down or\n // bottom->up. Top->down is faster in IE11.\n\n var _wasHydrated = popHydrationState(workInProgress);\n\n if (_wasHydrated) {\n // TODO: Move this and createInstance step into the beginPhase\n // to consolidate.\n if (prepareToHydrateHostInstance(workInProgress, rootContainerInstance, currentHostContext)) {\n // If changes to the hydrated node need to be applied at the\n // commit-phase we mark this as such.\n markUpdate(workInProgress);\n }\n } else {\n var instance = createInstance(type, newProps, rootContainerInstance, currentHostContext, workInProgress);\n appendAllChildren(instance, workInProgress, false, false);\n workInProgress.stateNode = instance; // Certain renderers require commit-time effects for initial mount.\n // (eg DOM renderer supports auto-focus for certain elements).\n // Make sure such renderers get scheduled for later work.\n\n if (finalizeInitialChildren(instance, type, newProps, rootContainerInstance)) {\n markUpdate(workInProgress);\n }\n }\n\n if (workInProgress.ref !== null) {\n // If there is a ref on a host node we need to schedule a callback\n markRef$1(workInProgress);\n }\n }\n\n return null;\n }\n\n case HostText:\n {\n var newText = newProps;\n\n if (current && workInProgress.stateNode != null) {\n var oldText = current.memoizedProps; // If we have an alternate, that means this is an update and we need\n // to schedule a side-effect to do the updates.\n\n updateHostText$1(current, workInProgress, oldText, newText);\n } else {\n if (typeof newText !== 'string') {\n if (!(workInProgress.stateNode !== null)) {\n {\n throw Error( \"We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n } // This can happen when we abort work.\n\n }\n\n var _rootContainerInstance = getRootHostContainer();\n\n var _currentHostContext = getHostContext();\n\n var _wasHydrated2 = popHydrationState(workInProgress);\n\n if (_wasHydrated2) {\n if (prepareToHydrateHostTextInstance(workInProgress)) {\n markUpdate(workInProgress);\n }\n } else {\n workInProgress.stateNode = createTextInstance(newText, _rootContainerInstance, _currentHostContext, workInProgress);\n }\n }\n\n return null;\n }\n\n case SuspenseComponent:\n {\n popSuspenseContext(workInProgress);\n var nextState = workInProgress.memoizedState;\n\n if ((workInProgress.flags & DidCapture) !== NoFlags) {\n // Something suspended. Re-render with the fallback children.\n workInProgress.lanes = renderLanes; // Do not reset the effect list.\n\n if ( (workInProgress.mode & ProfileMode) !== NoMode) {\n transferActualDuration(workInProgress);\n }\n\n return workInProgress;\n }\n\n var nextDidTimeout = nextState !== null;\n var prevDidTimeout = false;\n\n if (current === null) {\n if (workInProgress.memoizedProps.fallback !== undefined) {\n popHydrationState(workInProgress);\n }\n } else {\n var prevState = current.memoizedState;\n prevDidTimeout = prevState !== null;\n }\n\n if (nextDidTimeout && !prevDidTimeout) {\n // If this subtreee is running in blocking mode we can suspend,\n // otherwise we won't suspend.\n // TODO: This will still suspend a synchronous tree if anything\n // in the concurrent tree already suspended during this render.\n // This is a known bug.\n if ((workInProgress.mode & BlockingMode) !== NoMode) {\n // TODO: Move this back to throwException because this is too late\n // if this is a large tree which is common for initial loads. We\n // don't know if we should restart a render or not until we get\n // this marker, and this is too late.\n // If this render already had a ping or lower pri updates,\n // and this is the first time we know we're going to suspend we\n // should be able to immediately restart from within throwException.\n var hasInvisibleChildContext = current === null && workInProgress.memoizedProps.unstable_avoidThisFallback !== true;\n\n if (hasInvisibleChildContext || hasSuspenseContext(suspenseStackCursor.current, InvisibleParentSuspenseContext)) {\n // If this was in an invisible tree or a new render, then showing\n // this boundary is ok.\n renderDidSuspend();\n } else {\n // Otherwise, we're going to have to hide content so we should\n // suspend for longer if possible.\n renderDidSuspendDelayIfPossible();\n }\n }\n }\n\n {\n // TODO: Only schedule updates if these values are non equal, i.e. it changed.\n if (nextDidTimeout || prevDidTimeout) {\n // If this boundary just timed out, schedule an effect to attach a\n // retry listener to the promise. This flag is also used to hide the\n // primary children. In mutation mode, we also need the flag to\n // *unhide* children that were previously hidden, so check if this\n // is currently timed out, too.\n workInProgress.flags |= Update;\n }\n }\n\n return null;\n }\n\n case HostPortal:\n popHostContainer(workInProgress);\n updateHostContainer(workInProgress);\n\n if (current === null) {\n preparePortalMount(workInProgress.stateNode.containerInfo);\n }\n\n return null;\n\n case ContextProvider:\n // Pop provider fiber\n popProvider(workInProgress);\n return null;\n\n case IncompleteClassComponent:\n {\n // Same as class component case. I put it down here so that the tags are\n // sequential to ensure this switch is compiled to a jump table.\n var _Component = workInProgress.type;\n\n if (isContextProvider(_Component)) {\n popContext(workInProgress);\n }\n\n return null;\n }\n\n case SuspenseListComponent:\n {\n popSuspenseContext(workInProgress);\n var renderState = workInProgress.memoizedState;\n\n if (renderState === null) {\n // We're running in the default, \"independent\" mode.\n // We don't do anything in this mode.\n return null;\n }\n\n var didSuspendAlready = (workInProgress.flags & DidCapture) !== NoFlags;\n var renderedTail = renderState.rendering;\n\n if (renderedTail === null) {\n // We just rendered the head.\n if (!didSuspendAlready) {\n // This is the first pass. We need to figure out if anything is still\n // suspended in the rendered set.\n // If new content unsuspended, but there's still some content that\n // didn't. Then we need to do a second pass that forces everything\n // to keep showing their fallbacks.\n // We might be suspended if something in this render pass suspended, or\n // something in the previous committed pass suspended. Otherwise,\n // there's no chance so we can skip the expensive call to\n // findFirstSuspended.\n var cannotBeSuspended = renderHasNotSuspendedYet() && (current === null || (current.flags & DidCapture) === NoFlags);\n\n if (!cannotBeSuspended) {\n var row = workInProgress.child;\n\n while (row !== null) {\n var suspended = findFirstSuspended(row);\n\n if (suspended !== null) {\n didSuspendAlready = true;\n workInProgress.flags |= DidCapture;\n cutOffTailIfNeeded(renderState, false); // If this is a newly suspended tree, it might not get committed as\n // part of the second pass. In that case nothing will subscribe to\n // its thennables. Instead, we'll transfer its thennables to the\n // SuspenseList so that it can retry if they resolve.\n // There might be multiple of these in the list but since we're\n // going to wait for all of them anyway, it doesn't really matter\n // which ones gets to ping. In theory we could get clever and keep\n // track of how many dependencies remain but it gets tricky because\n // in the meantime, we can add/remove/change items and dependencies.\n // We might bail out of the loop before finding any but that\n // doesn't matter since that means that the other boundaries that\n // we did find already has their listeners attached.\n\n var newThennables = suspended.updateQueue;\n\n if (newThennables !== null) {\n workInProgress.updateQueue = newThennables;\n workInProgress.flags |= Update;\n } // Rerender the whole list, but this time, we'll force fallbacks\n // to stay in place.\n // Reset the effect list before doing the second pass since that's now invalid.\n\n\n if (renderState.lastEffect === null) {\n workInProgress.firstEffect = null;\n }\n\n workInProgress.lastEffect = renderState.lastEffect; // Reset the child fibers to their original state.\n\n resetChildFibers(workInProgress, renderLanes); // Set up the Suspense Context to force suspense and immediately\n // rerender the children.\n\n pushSuspenseContext(workInProgress, setShallowSuspenseContext(suspenseStackCursor.current, ForceSuspenseFallback));\n return workInProgress.child;\n }\n\n row = row.sibling;\n }\n }\n\n if (renderState.tail !== null && now() > getRenderTargetTime()) {\n // We have already passed our CPU deadline but we still have rows\n // left in the tail. We'll just give up further attempts to render\n // the main content and only render fallbacks.\n workInProgress.flags |= DidCapture;\n didSuspendAlready = true;\n cutOffTailIfNeeded(renderState, false); // Since nothing actually suspended, there will nothing to ping this\n // to get it started back up to attempt the next item. While in terms\n // of priority this work has the same priority as this current render,\n // it's not part of the same transition once the transition has\n // committed. If it's sync, we still want to yield so that it can be\n // painted. Conceptually, this is really the same as pinging.\n // We can use any RetryLane even if it's the one currently rendering\n // since we're leaving it behind on this node.\n\n workInProgress.lanes = SomeRetryLane;\n\n {\n markSpawnedWork(SomeRetryLane);\n }\n }\n } else {\n cutOffTailIfNeeded(renderState, false);\n } // Next we're going to render the tail.\n\n } else {\n // Append the rendered row to the child list.\n if (!didSuspendAlready) {\n var _suspended = findFirstSuspended(renderedTail);\n\n if (_suspended !== null) {\n workInProgress.flags |= DidCapture;\n didSuspendAlready = true; // Ensure we transfer the update queue to the parent so that it doesn't\n // get lost if this row ends up dropped during a second pass.\n\n var _newThennables = _suspended.updateQueue;\n\n if (_newThennables !== null) {\n workInProgress.updateQueue = _newThennables;\n workInProgress.flags |= Update;\n }\n\n cutOffTailIfNeeded(renderState, true); // This might have been modified.\n\n if (renderState.tail === null && renderState.tailMode === 'hidden' && !renderedTail.alternate && !getIsHydrating() // We don't cut it if we're hydrating.\n ) {\n // We need to delete the row we just rendered.\n // Reset the effect list to what it was before we rendered this\n // child. The nested children have already appended themselves.\n var lastEffect = workInProgress.lastEffect = renderState.lastEffect; // Remove any effects that were appended after this point.\n\n if (lastEffect !== null) {\n lastEffect.nextEffect = null;\n } // We're done.\n\n\n return null;\n }\n } else if ( // The time it took to render last row is greater than the remaining\n // time we have to render. So rendering one more row would likely\n // exceed it.\n now() * 2 - renderState.renderingStartTime > getRenderTargetTime() && renderLanes !== OffscreenLane) {\n // We have now passed our CPU deadline and we'll just give up further\n // attempts to render the main content and only render fallbacks.\n // The assumption is that this is usually faster.\n workInProgress.flags |= DidCapture;\n didSuspendAlready = true;\n cutOffTailIfNeeded(renderState, false); // Since nothing actually suspended, there will nothing to ping this\n // to get it started back up to attempt the next item. While in terms\n // of priority this work has the same priority as this current render,\n // it's not part of the same transition once the transition has\n // committed. If it's sync, we still want to yield so that it can be\n // painted. Conceptually, this is really the same as pinging.\n // We can use any RetryLane even if it's the one currently rendering\n // since we're leaving it behind on this node.\n\n workInProgress.lanes = SomeRetryLane;\n\n {\n markSpawnedWork(SomeRetryLane);\n }\n }\n }\n\n if (renderState.isBackwards) {\n // The effect list of the backwards tail will have been added\n // to the end. This breaks the guarantee that life-cycles fire in\n // sibling order but that isn't a strong guarantee promised by React.\n // Especially since these might also just pop in during future commits.\n // Append to the beginning of the list.\n renderedTail.sibling = workInProgress.child;\n workInProgress.child = renderedTail;\n } else {\n var previousSibling = renderState.last;\n\n if (previousSibling !== null) {\n previousSibling.sibling = renderedTail;\n } else {\n workInProgress.child = renderedTail;\n }\n\n renderState.last = renderedTail;\n }\n }\n\n if (renderState.tail !== null) {\n // We still have tail rows to render.\n // Pop a row.\n var next = renderState.tail;\n renderState.rendering = next;\n renderState.tail = next.sibling;\n renderState.lastEffect = workInProgress.lastEffect;\n renderState.renderingStartTime = now();\n next.sibling = null; // Restore the context.\n // TODO: We can probably just avoid popping it instead and only\n // setting it the first time we go from not suspended to suspended.\n\n var suspenseContext = suspenseStackCursor.current;\n\n if (didSuspendAlready) {\n suspenseContext = setShallowSuspenseContext(suspenseContext, ForceSuspenseFallback);\n } else {\n suspenseContext = setDefaultShallowSuspenseContext(suspenseContext);\n }\n\n pushSuspenseContext(workInProgress, suspenseContext); // Do a pass over the next row.\n\n return next;\n }\n\n return null;\n }\n\n case FundamentalComponent:\n {\n\n break;\n }\n\n case ScopeComponent:\n {\n\n break;\n }\n\n case Block:\n\n break;\n\n case OffscreenComponent:\n case LegacyHiddenComponent:\n {\n popRenderLanes(workInProgress);\n\n if (current !== null) {\n var _nextState = workInProgress.memoizedState;\n var _prevState = current.memoizedState;\n var prevIsHidden = _prevState !== null;\n var nextIsHidden = _nextState !== null;\n\n if (prevIsHidden !== nextIsHidden && newProps.mode !== 'unstable-defer-without-hiding') {\n workInProgress.flags |= Update;\n }\n }\n\n return null;\n }\n }\n\n {\n {\n throw Error( \"Unknown unit of work tag (\" + workInProgress.tag + \"). This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n}\n\nfunction unwindWork(workInProgress, renderLanes) {\n switch (workInProgress.tag) {\n case ClassComponent:\n {\n var Component = workInProgress.type;\n\n if (isContextProvider(Component)) {\n popContext(workInProgress);\n }\n\n var flags = workInProgress.flags;\n\n if (flags & ShouldCapture) {\n workInProgress.flags = flags & ~ShouldCapture | DidCapture;\n\n if ( (workInProgress.mode & ProfileMode) !== NoMode) {\n transferActualDuration(workInProgress);\n }\n\n return workInProgress;\n }\n\n return null;\n }\n\n case HostRoot:\n {\n popHostContainer(workInProgress);\n popTopLevelContextObject(workInProgress);\n resetWorkInProgressVersions();\n var _flags = workInProgress.flags;\n\n if (!((_flags & DidCapture) === NoFlags)) {\n {\n throw Error( \"The root failed to unmount after an error. This is likely a bug in React. Please file an issue.\" );\n }\n }\n\n workInProgress.flags = _flags & ~ShouldCapture | DidCapture;\n return workInProgress;\n }\n\n case HostComponent:\n {\n // TODO: popHydrationState\n popHostContext(workInProgress);\n return null;\n }\n\n case SuspenseComponent:\n {\n popSuspenseContext(workInProgress);\n\n var _flags2 = workInProgress.flags;\n\n if (_flags2 & ShouldCapture) {\n workInProgress.flags = _flags2 & ~ShouldCapture | DidCapture; // Captured a suspense effect. Re-render the boundary.\n\n if ( (workInProgress.mode & ProfileMode) !== NoMode) {\n transferActualDuration(workInProgress);\n }\n\n return workInProgress;\n }\n\n return null;\n }\n\n case SuspenseListComponent:\n {\n popSuspenseContext(workInProgress); // SuspenseList doesn't actually catch anything. It should've been\n // caught by a nested boundary. If not, it should bubble through.\n\n return null;\n }\n\n case HostPortal:\n popHostContainer(workInProgress);\n return null;\n\n case ContextProvider:\n popProvider(workInProgress);\n return null;\n\n case OffscreenComponent:\n case LegacyHiddenComponent:\n popRenderLanes(workInProgress);\n return null;\n\n default:\n return null;\n }\n}\n\nfunction unwindInterruptedWork(interruptedWork) {\n switch (interruptedWork.tag) {\n case ClassComponent:\n {\n var childContextTypes = interruptedWork.type.childContextTypes;\n\n if (childContextTypes !== null && childContextTypes !== undefined) {\n popContext(interruptedWork);\n }\n\n break;\n }\n\n case HostRoot:\n {\n popHostContainer(interruptedWork);\n popTopLevelContextObject(interruptedWork);\n resetWorkInProgressVersions();\n break;\n }\n\n case HostComponent:\n {\n popHostContext(interruptedWork);\n break;\n }\n\n case HostPortal:\n popHostContainer(interruptedWork);\n break;\n\n case SuspenseComponent:\n popSuspenseContext(interruptedWork);\n break;\n\n case SuspenseListComponent:\n popSuspenseContext(interruptedWork);\n break;\n\n case ContextProvider:\n popProvider(interruptedWork);\n break;\n\n case OffscreenComponent:\n case LegacyHiddenComponent:\n popRenderLanes(interruptedWork);\n break;\n }\n}\n\nfunction createCapturedValue(value, source) {\n // If the value is an error, call this function immediately after it is thrown\n // so the stack is accurate.\n return {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n}\n\n// This module is forked in different environments.\n// By default, return `true` to log errors to the console.\n// Forks can return `false` if this isn't desirable.\nfunction showErrorDialog(boundary, errorInfo) {\n return true;\n}\n\nfunction logCapturedError(boundary, errorInfo) {\n try {\n var logError = showErrorDialog(boundary, errorInfo); // Allow injected showErrorDialog() to prevent default console.error logging.\n // This enables renderers like ReactNative to better manage redbox behavior.\n\n if (logError === false) {\n return;\n }\n\n var error = errorInfo.value;\n\n if (true) {\n var source = errorInfo.source;\n var stack = errorInfo.stack;\n var componentStack = stack !== null ? stack : ''; // Browsers support silencing uncaught errors by calling\n // `preventDefault()` in window `error` handler.\n // We record this information as an expando on the error.\n\n if (error != null && error._suppressLogging) {\n if (boundary.tag === ClassComponent) {\n // The error is recoverable and was silenced.\n // Ignore it and don't print the stack addendum.\n // This is handy for testing error boundaries without noise.\n return;\n } // The error is fatal. Since the silencing might have\n // been accidental, we'll surface it anyway.\n // However, the browser would have silenced the original error\n // so we'll print it first, and then print the stack addendum.\n\n\n console['error'](error); // Don't transform to our wrapper\n // For a more detailed description of this block, see:\n // https://github.com/facebook/react/pull/13384\n }\n\n var componentName = source ? getComponentName(source.type) : null;\n var componentNameMessage = componentName ? \"The above error occurred in the <\" + componentName + \"> component:\" : 'The above error occurred in one of your React components:';\n var errorBoundaryMessage;\n var errorBoundaryName = getComponentName(boundary.type);\n\n if (errorBoundaryName) {\n errorBoundaryMessage = \"React will try to recreate this component tree from scratch \" + (\"using the error boundary you provided, \" + errorBoundaryName + \".\");\n } else {\n errorBoundaryMessage = 'Consider adding an error boundary to your tree to customize error handling behavior.\\n' + 'Visit https://reactjs.org/link/error-boundaries to learn more about error boundaries.';\n }\n\n var combinedMessage = componentNameMessage + \"\\n\" + componentStack + \"\\n\\n\" + (\"\" + errorBoundaryMessage); // In development, we provide our own message with just the component stack.\n // We don't include the original error message and JS stack because the browser\n // has already printed it. Even if the application swallows the error, it is still\n // displayed by the browser thanks to the DEV-only fake event trick in ReactErrorUtils.\n\n console['error'](combinedMessage); // Don't transform to our wrapper\n } else {}\n } catch (e) {\n // This method must not throw, or React internal state will get messed up.\n // If console.error is overridden, or logCapturedError() shows a dialog that throws,\n // we want to report this error outside of the normal stack as a last resort.\n // https://github.com/facebook/react/issues/13188\n setTimeout(function () {\n throw e;\n });\n }\n}\n\nvar PossiblyWeakMap$1 = typeof WeakMap === 'function' ? WeakMap : Map;\n\nfunction createRootErrorUpdate(fiber, errorInfo, lane) {\n var update = createUpdate(NoTimestamp, lane); // Unmount the root by rendering null.\n\n update.tag = CaptureUpdate; // Caution: React DevTools currently depends on this property\n // being called \"element\".\n\n update.payload = {\n element: null\n };\n var error = errorInfo.value;\n\n update.callback = function () {\n onUncaughtError(error);\n logCapturedError(fiber, errorInfo);\n };\n\n return update;\n}\n\nfunction createClassErrorUpdate(fiber, errorInfo, lane) {\n var update = createUpdate(NoTimestamp, lane);\n update.tag = CaptureUpdate;\n var getDerivedStateFromError = fiber.type.getDerivedStateFromError;\n\n if (typeof getDerivedStateFromError === 'function') {\n var error$1 = errorInfo.value;\n\n update.payload = function () {\n logCapturedError(fiber, errorInfo);\n return getDerivedStateFromError(error$1);\n };\n }\n\n var inst = fiber.stateNode;\n\n if (inst !== null && typeof inst.componentDidCatch === 'function') {\n update.callback = function callback() {\n {\n markFailedErrorBoundaryForHotReloading(fiber);\n }\n\n if (typeof getDerivedStateFromError !== 'function') {\n // To preserve the preexisting retry behavior of error boundaries,\n // we keep track of which ones already failed during this batch.\n // This gets reset before we yield back to the browser.\n // TODO: Warn in strict mode if getDerivedStateFromError is\n // not defined.\n markLegacyErrorBoundaryAsFailed(this); // Only log here if componentDidCatch is the only error boundary method defined\n\n logCapturedError(fiber, errorInfo);\n }\n\n var error$1 = errorInfo.value;\n var stack = errorInfo.stack;\n this.componentDidCatch(error$1, {\n componentStack: stack !== null ? stack : ''\n });\n\n {\n if (typeof getDerivedStateFromError !== 'function') {\n // If componentDidCatch is the only error boundary method defined,\n // then it needs to call setState to recover from errors.\n // If no state update is scheduled then the boundary will swallow the error.\n if (!includesSomeLane(fiber.lanes, SyncLane)) {\n error('%s: Error boundaries should implement getDerivedStateFromError(). ' + 'In that method, return a state update to display an error message or fallback UI.', getComponentName(fiber.type) || 'Unknown');\n }\n }\n }\n };\n } else {\n update.callback = function () {\n markFailedErrorBoundaryForHotReloading(fiber);\n };\n }\n\n return update;\n}\n\nfunction attachPingListener(root, wakeable, lanes) {\n // Attach a listener to the promise to \"ping\" the root and retry. But only if\n // one does not already exist for the lanes we're currently rendering (which\n // acts like a \"thread ID\" here).\n var pingCache = root.pingCache;\n var threadIDs;\n\n if (pingCache === null) {\n pingCache = root.pingCache = new PossiblyWeakMap$1();\n threadIDs = new Set();\n pingCache.set(wakeable, threadIDs);\n } else {\n threadIDs = pingCache.get(wakeable);\n\n if (threadIDs === undefined) {\n threadIDs = new Set();\n pingCache.set(wakeable, threadIDs);\n }\n }\n\n if (!threadIDs.has(lanes)) {\n // Memoize using the thread ID to prevent redundant listeners.\n threadIDs.add(lanes);\n var ping = pingSuspendedRoot.bind(null, root, wakeable, lanes);\n wakeable.then(ping, ping);\n }\n}\n\nfunction throwException(root, returnFiber, sourceFiber, value, rootRenderLanes) {\n // The source fiber did not complete.\n sourceFiber.flags |= Incomplete; // Its effect list is no longer valid.\n\n sourceFiber.firstEffect = sourceFiber.lastEffect = null;\n\n if (value !== null && typeof value === 'object' && typeof value.then === 'function') {\n // This is a wakeable.\n var wakeable = value;\n\n if ((sourceFiber.mode & BlockingMode) === NoMode) {\n // Reset the memoizedState to what it was before we attempted\n // to render it.\n var currentSource = sourceFiber.alternate;\n\n if (currentSource) {\n sourceFiber.updateQueue = currentSource.updateQueue;\n sourceFiber.memoizedState = currentSource.memoizedState;\n sourceFiber.lanes = currentSource.lanes;\n } else {\n sourceFiber.updateQueue = null;\n sourceFiber.memoizedState = null;\n }\n }\n\n var hasInvisibleParentBoundary = hasSuspenseContext(suspenseStackCursor.current, InvisibleParentSuspenseContext); // Schedule the nearest Suspense to re-render the timed out view.\n\n var _workInProgress = returnFiber;\n\n do {\n if (_workInProgress.tag === SuspenseComponent && shouldCaptureSuspense(_workInProgress, hasInvisibleParentBoundary)) {\n // Found the nearest boundary.\n // Stash the promise on the boundary fiber. If the boundary times out, we'll\n // attach another listener to flip the boundary back to its normal state.\n var wakeables = _workInProgress.updateQueue;\n\n if (wakeables === null) {\n var updateQueue = new Set();\n updateQueue.add(wakeable);\n _workInProgress.updateQueue = updateQueue;\n } else {\n wakeables.add(wakeable);\n } // If the boundary is outside of blocking mode, we should *not*\n // suspend the commit. Pretend as if the suspended component rendered\n // null and keep rendering. In the commit phase, we'll schedule a\n // subsequent synchronous update to re-render the Suspense.\n //\n // Note: It doesn't matter whether the component that suspended was\n // inside a blocking mode tree. If the Suspense is outside of it, we\n // should *not* suspend the commit.\n\n\n if ((_workInProgress.mode & BlockingMode) === NoMode) {\n _workInProgress.flags |= DidCapture;\n sourceFiber.flags |= ForceUpdateForLegacySuspense; // We're going to commit this fiber even though it didn't complete.\n // But we shouldn't call any lifecycle methods or callbacks. Remove\n // all lifecycle effect tags.\n\n sourceFiber.flags &= ~(LifecycleEffectMask | Incomplete);\n\n if (sourceFiber.tag === ClassComponent) {\n var currentSourceFiber = sourceFiber.alternate;\n\n if (currentSourceFiber === null) {\n // This is a new mount. Change the tag so it's not mistaken for a\n // completed class component. For example, we should not call\n // componentWillUnmount if it is deleted.\n sourceFiber.tag = IncompleteClassComponent;\n } else {\n // When we try rendering again, we should not reuse the current fiber,\n // since it's known to be in an inconsistent state. Use a force update to\n // prevent a bail out.\n var update = createUpdate(NoTimestamp, SyncLane);\n update.tag = ForceUpdate;\n enqueueUpdate(sourceFiber, update);\n }\n } // The source fiber did not complete. Mark it with Sync priority to\n // indicate that it still has pending work.\n\n\n sourceFiber.lanes = mergeLanes(sourceFiber.lanes, SyncLane); // Exit without suspending.\n\n return;\n } // Confirmed that the boundary is in a concurrent mode tree. Continue\n // with the normal suspend path.\n //\n // After this we'll use a set of heuristics to determine whether this\n // render pass will run to completion or restart or \"suspend\" the commit.\n // The actual logic for this is spread out in different places.\n //\n // This first principle is that if we're going to suspend when we complete\n // a root, then we should also restart if we get an update or ping that\n // might unsuspend it, and vice versa. The only reason to suspend is\n // because you think you might want to restart before committing. However,\n // it doesn't make sense to restart only while in the period we're suspended.\n //\n // Restarting too aggressively is also not good because it starves out any\n // intermediate loading state. So we use heuristics to determine when.\n // Suspense Heuristics\n //\n // If nothing threw a Promise or all the same fallbacks are already showing,\n // then don't suspend/restart.\n //\n // If this is an initial render of a new tree of Suspense boundaries and\n // those trigger a fallback, then don't suspend/restart. We want to ensure\n // that we can show the initial loading state as quickly as possible.\n //\n // If we hit a \"Delayed\" case, such as when we'd switch from content back into\n // a fallback, then we should always suspend/restart. Transitions apply\n // to this case. If none is defined, JND is used instead.\n //\n // If we're already showing a fallback and it gets \"retried\", allowing us to show\n // another level, but there's still an inner boundary that would show a fallback,\n // then we suspend/restart for 500ms since the last time we showed a fallback\n // anywhere in the tree. This effectively throttles progressive loading into a\n // consistent train of commits. This also gives us an opportunity to restart to\n // get to the completed state slightly earlier.\n //\n // If there's ambiguity due to batching it's resolved in preference of:\n // 1) \"delayed\", 2) \"initial render\", 3) \"retry\".\n //\n // We want to ensure that a \"busy\" state doesn't get force committed. We want to\n // ensure that new initial loading states can commit as soon as possible.\n\n\n attachPingListener(root, wakeable, rootRenderLanes);\n _workInProgress.flags |= ShouldCapture;\n _workInProgress.lanes = rootRenderLanes;\n return;\n } // This boundary already captured during this render. Continue to the next\n // boundary.\n\n\n _workInProgress = _workInProgress.return;\n } while (_workInProgress !== null); // No boundary was found. Fallthrough to error mode.\n // TODO: Use invariant so the message is stripped in prod?\n\n\n value = new Error((getComponentName(sourceFiber.type) || 'A React component') + ' suspended while rendering, but no fallback UI was specified.\\n' + '\\n' + 'Add a <Suspense fallback=...> component higher in the tree to ' + 'provide a loading indicator or placeholder to display.');\n } // We didn't find a boundary that could handle this type of exception. Start\n // over and traverse parent path again, this time treating the exception\n // as an error.\n\n\n renderDidError();\n value = createCapturedValue(value, sourceFiber);\n var workInProgress = returnFiber;\n\n do {\n switch (workInProgress.tag) {\n case HostRoot:\n {\n var _errorInfo = value;\n workInProgress.flags |= ShouldCapture;\n var lane = pickArbitraryLane(rootRenderLanes);\n workInProgress.lanes = mergeLanes(workInProgress.lanes, lane);\n\n var _update = createRootErrorUpdate(workInProgress, _errorInfo, lane);\n\n enqueueCapturedUpdate(workInProgress, _update);\n return;\n }\n\n case ClassComponent:\n // Capture and retry\n var errorInfo = value;\n var ctor = workInProgress.type;\n var instance = workInProgress.stateNode;\n\n if ((workInProgress.flags & DidCapture) === NoFlags && (typeof ctor.getDerivedStateFromError === 'function' || instance !== null && typeof instance.componentDidCatch === 'function' && !isAlreadyFailedLegacyErrorBoundary(instance))) {\n workInProgress.flags |= ShouldCapture;\n\n var _lane = pickArbitraryLane(rootRenderLanes);\n\n workInProgress.lanes = mergeLanes(workInProgress.lanes, _lane); // Schedule the error boundary to re-render using updated state\n\n var _update2 = createClassErrorUpdate(workInProgress, errorInfo, _lane);\n\n enqueueCapturedUpdate(workInProgress, _update2);\n return;\n }\n\n break;\n }\n\n workInProgress = workInProgress.return;\n } while (workInProgress !== null);\n}\n\nvar didWarnAboutUndefinedSnapshotBeforeUpdate = null;\n\n{\n didWarnAboutUndefinedSnapshotBeforeUpdate = new Set();\n}\n\nvar PossiblyWeakSet = typeof WeakSet === 'function' ? WeakSet : Set;\n\nvar callComponentWillUnmountWithTimer = function (current, instance) {\n instance.props = current.memoizedProps;\n instance.state = current.memoizedState;\n\n {\n instance.componentWillUnmount();\n }\n}; // Capture errors so they don't interrupt unmounting.\n\n\nfunction safelyCallComponentWillUnmount(current, instance) {\n {\n invokeGuardedCallback(null, callComponentWillUnmountWithTimer, null, current, instance);\n\n if (hasCaughtError()) {\n var unmountError = clearCaughtError();\n captureCommitPhaseError(current, unmountError);\n }\n }\n}\n\nfunction safelyDetachRef(current) {\n var ref = current.ref;\n\n if (ref !== null) {\n if (typeof ref === 'function') {\n {\n invokeGuardedCallback(null, ref, null, null);\n\n if (hasCaughtError()) {\n var refError = clearCaughtError();\n captureCommitPhaseError(current, refError);\n }\n }\n } else {\n ref.current = null;\n }\n }\n}\n\nfunction safelyCallDestroy(current, destroy) {\n {\n invokeGuardedCallback(null, destroy, null);\n\n if (hasCaughtError()) {\n var error = clearCaughtError();\n captureCommitPhaseError(current, error);\n }\n }\n}\n\nfunction commitBeforeMutationLifeCycles(current, finishedWork) {\n switch (finishedWork.tag) {\n case FunctionComponent:\n case ForwardRef:\n case SimpleMemoComponent:\n case Block:\n {\n return;\n }\n\n case ClassComponent:\n {\n if (finishedWork.flags & Snapshot) {\n if (current !== null) {\n var prevProps = current.memoizedProps;\n var prevState = current.memoizedState;\n var instance = finishedWork.stateNode; // We could update instance props and state here,\n // but instead we rely on them being set during last render.\n // TODO: revisit this when we implement resuming.\n\n {\n if (finishedWork.type === finishedWork.elementType && !didWarnAboutReassigningProps) {\n if (instance.props !== finishedWork.memoizedProps) {\n error('Expected %s props to match memoized props before ' + 'getSnapshotBeforeUpdate. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance');\n }\n\n if (instance.state !== finishedWork.memoizedState) {\n error('Expected %s state to match memoized state before ' + 'getSnapshotBeforeUpdate. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.state`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance');\n }\n }\n }\n\n var snapshot = instance.getSnapshotBeforeUpdate(finishedWork.elementType === finishedWork.type ? prevProps : resolveDefaultProps(finishedWork.type, prevProps), prevState);\n\n {\n var didWarnSet = didWarnAboutUndefinedSnapshotBeforeUpdate;\n\n if (snapshot === undefined && !didWarnSet.has(finishedWork.type)) {\n didWarnSet.add(finishedWork.type);\n\n error('%s.getSnapshotBeforeUpdate(): A snapshot value (or null) ' + 'must be returned. You have returned undefined.', getComponentName(finishedWork.type));\n }\n }\n\n instance.__reactInternalSnapshotBeforeUpdate = snapshot;\n }\n }\n\n return;\n }\n\n case HostRoot:\n {\n {\n if (finishedWork.flags & Snapshot) {\n var root = finishedWork.stateNode;\n clearContainer(root.containerInfo);\n }\n }\n\n return;\n }\n\n case HostComponent:\n case HostText:\n case HostPortal:\n case IncompleteClassComponent:\n // Nothing to do for these component types\n return;\n }\n\n {\n {\n throw Error( \"This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n}\n\nfunction commitHookEffectListUnmount(tag, finishedWork) {\n var updateQueue = finishedWork.updateQueue;\n var lastEffect = updateQueue !== null ? updateQueue.lastEffect : null;\n\n if (lastEffect !== null) {\n var firstEffect = lastEffect.next;\n var effect = firstEffect;\n\n do {\n if ((effect.tag & tag) === tag) {\n // Unmount\n var destroy = effect.destroy;\n effect.destroy = undefined;\n\n if (destroy !== undefined) {\n destroy();\n }\n }\n\n effect = effect.next;\n } while (effect !== firstEffect);\n }\n}\n\nfunction commitHookEffectListMount(tag, finishedWork) {\n var updateQueue = finishedWork.updateQueue;\n var lastEffect = updateQueue !== null ? updateQueue.lastEffect : null;\n\n if (lastEffect !== null) {\n var firstEffect = lastEffect.next;\n var effect = firstEffect;\n\n do {\n if ((effect.tag & tag) === tag) {\n // Mount\n var create = effect.create;\n effect.destroy = create();\n\n {\n var destroy = effect.destroy;\n\n if (destroy !== undefined && typeof destroy !== 'function') {\n var addendum = void 0;\n\n if (destroy === null) {\n addendum = ' You returned null. If your effect does not require clean ' + 'up, return undefined (or nothing).';\n } else if (typeof destroy.then === 'function') {\n addendum = '\\n\\nIt looks like you wrote useEffect(async () => ...) or returned a Promise. ' + 'Instead, write the async function inside your effect ' + 'and call it immediately:\\n\\n' + 'useEffect(() => {\\n' + ' async function fetchData() {\\n' + ' // You can await here\\n' + ' const response = await MyAPI.getData(someId);\\n' + ' // ...\\n' + ' }\\n' + ' fetchData();\\n' + \"}, [someId]); // Or [] if effect doesn't need props or state\\n\\n\" + 'Learn more about data fetching with Hooks: https://reactjs.org/link/hooks-data-fetching';\n } else {\n addendum = ' You returned: ' + destroy;\n }\n\n error('An effect function must not return anything besides a function, ' + 'which is used for clean-up.%s', addendum);\n }\n }\n }\n\n effect = effect.next;\n } while (effect !== firstEffect);\n }\n}\n\nfunction schedulePassiveEffects(finishedWork) {\n var updateQueue = finishedWork.updateQueue;\n var lastEffect = updateQueue !== null ? updateQueue.lastEffect : null;\n\n if (lastEffect !== null) {\n var firstEffect = lastEffect.next;\n var effect = firstEffect;\n\n do {\n var _effect = effect,\n next = _effect.next,\n tag = _effect.tag;\n\n if ((tag & Passive$1) !== NoFlags$1 && (tag & HasEffect) !== NoFlags$1) {\n enqueuePendingPassiveHookEffectUnmount(finishedWork, effect);\n enqueuePendingPassiveHookEffectMount(finishedWork, effect);\n }\n\n effect = next;\n } while (effect !== firstEffect);\n }\n}\n\nfunction commitLifeCycles(finishedRoot, current, finishedWork, committedLanes) {\n switch (finishedWork.tag) {\n case FunctionComponent:\n case ForwardRef:\n case SimpleMemoComponent:\n case Block:\n {\n // At this point layout effects have already been destroyed (during mutation phase).\n // This is done to prevent sibling component effects from interfering with each other,\n // e.g. a destroy function in one component should never override a ref set\n // by a create function in another component during the same commit.\n {\n commitHookEffectListMount(Layout | HasEffect, finishedWork);\n }\n\n schedulePassiveEffects(finishedWork);\n return;\n }\n\n case ClassComponent:\n {\n var instance = finishedWork.stateNode;\n\n if (finishedWork.flags & Update) {\n if (current === null) {\n // We could update instance props and state here,\n // but instead we rely on them being set during last render.\n // TODO: revisit this when we implement resuming.\n {\n if (finishedWork.type === finishedWork.elementType && !didWarnAboutReassigningProps) {\n if (instance.props !== finishedWork.memoizedProps) {\n error('Expected %s props to match memoized props before ' + 'componentDidMount. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance');\n }\n\n if (instance.state !== finishedWork.memoizedState) {\n error('Expected %s state to match memoized state before ' + 'componentDidMount. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.state`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance');\n }\n }\n }\n\n {\n instance.componentDidMount();\n }\n } else {\n var prevProps = finishedWork.elementType === finishedWork.type ? current.memoizedProps : resolveDefaultProps(finishedWork.type, current.memoizedProps);\n var prevState = current.memoizedState; // We could update instance props and state here,\n // but instead we rely on them being set during last render.\n // TODO: revisit this when we implement resuming.\n\n {\n if (finishedWork.type === finishedWork.elementType && !didWarnAboutReassigningProps) {\n if (instance.props !== finishedWork.memoizedProps) {\n error('Expected %s props to match memoized props before ' + 'componentDidUpdate. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance');\n }\n\n if (instance.state !== finishedWork.memoizedState) {\n error('Expected %s state to match memoized state before ' + 'componentDidUpdate. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.state`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance');\n }\n }\n }\n\n {\n instance.componentDidUpdate(prevProps, prevState, instance.__reactInternalSnapshotBeforeUpdate);\n }\n }\n } // TODO: I think this is now always non-null by the time it reaches the\n // commit phase. Consider removing the type check.\n\n\n var updateQueue = finishedWork.updateQueue;\n\n if (updateQueue !== null) {\n {\n if (finishedWork.type === finishedWork.elementType && !didWarnAboutReassigningProps) {\n if (instance.props !== finishedWork.memoizedProps) {\n error('Expected %s props to match memoized props before ' + 'processing the update queue. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance');\n }\n\n if (instance.state !== finishedWork.memoizedState) {\n error('Expected %s state to match memoized state before ' + 'processing the update queue. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.state`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance');\n }\n }\n } // We could update instance props and state here,\n // but instead we rely on them being set during last render.\n // TODO: revisit this when we implement resuming.\n\n\n commitUpdateQueue(finishedWork, updateQueue, instance);\n }\n\n return;\n }\n\n case HostRoot:\n {\n // TODO: I think this is now always non-null by the time it reaches the\n // commit phase. Consider removing the type check.\n var _updateQueue = finishedWork.updateQueue;\n\n if (_updateQueue !== null) {\n var _instance = null;\n\n if (finishedWork.child !== null) {\n switch (finishedWork.child.tag) {\n case HostComponent:\n _instance = getPublicInstance(finishedWork.child.stateNode);\n break;\n\n case ClassComponent:\n _instance = finishedWork.child.stateNode;\n break;\n }\n }\n\n commitUpdateQueue(finishedWork, _updateQueue, _instance);\n }\n\n return;\n }\n\n case HostComponent:\n {\n var _instance2 = finishedWork.stateNode; // Renderers may schedule work to be done after host components are mounted\n // (eg DOM renderer may schedule auto-focus for inputs and form controls).\n // These effects should only be committed when components are first mounted,\n // aka when there is no current/alternate.\n\n if (current === null && finishedWork.flags & Update) {\n var type = finishedWork.type;\n var props = finishedWork.memoizedProps;\n commitMount(_instance2, type, props);\n }\n\n return;\n }\n\n case HostText:\n {\n // We have no life-cycles associated with text.\n return;\n }\n\n case HostPortal:\n {\n // We have no life-cycles associated with portals.\n return;\n }\n\n case Profiler:\n {\n {\n var _finishedWork$memoize2 = finishedWork.memoizedProps,\n onCommit = _finishedWork$memoize2.onCommit,\n onRender = _finishedWork$memoize2.onRender;\n var effectDuration = finishedWork.stateNode.effectDuration;\n var commitTime = getCommitTime();\n\n if (typeof onRender === 'function') {\n {\n onRender(finishedWork.memoizedProps.id, current === null ? 'mount' : 'update', finishedWork.actualDuration, finishedWork.treeBaseDuration, finishedWork.actualStartTime, commitTime, finishedRoot.memoizedInteractions);\n }\n }\n }\n\n return;\n }\n\n case SuspenseComponent:\n {\n commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n return;\n }\n\n case SuspenseListComponent:\n case IncompleteClassComponent:\n case FundamentalComponent:\n case ScopeComponent:\n case OffscreenComponent:\n case LegacyHiddenComponent:\n return;\n }\n\n {\n {\n throw Error( \"This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n}\n\nfunction hideOrUnhideAllChildren(finishedWork, isHidden) {\n {\n // We only have the top Fiber that was inserted but we need to recurse down its\n // children to find all the terminal nodes.\n var node = finishedWork;\n\n while (true) {\n if (node.tag === HostComponent) {\n var instance = node.stateNode;\n\n if (isHidden) {\n hideInstance(instance);\n } else {\n unhideInstance(node.stateNode, node.memoizedProps);\n }\n } else if (node.tag === HostText) {\n var _instance3 = node.stateNode;\n\n if (isHidden) {\n hideTextInstance(_instance3);\n } else {\n unhideTextInstance(_instance3, node.memoizedProps);\n }\n } else if ((node.tag === OffscreenComponent || node.tag === LegacyHiddenComponent) && node.memoizedState !== null && node !== finishedWork) ; else if (node.child !== null) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n\n if (node === finishedWork) {\n return;\n }\n\n while (node.sibling === null) {\n if (node.return === null || node.return === finishedWork) {\n return;\n }\n\n node = node.return;\n }\n\n node.sibling.return = node.return;\n node = node.sibling;\n }\n }\n}\n\nfunction commitAttachRef(finishedWork) {\n var ref = finishedWork.ref;\n\n if (ref !== null) {\n var instance = finishedWork.stateNode;\n var instanceToUse;\n\n switch (finishedWork.tag) {\n case HostComponent:\n instanceToUse = getPublicInstance(instance);\n break;\n\n default:\n instanceToUse = instance;\n } // Moved outside to ensure DCE works with this flag\n\n if (typeof ref === 'function') {\n ref(instanceToUse);\n } else {\n {\n if (!ref.hasOwnProperty('current')) {\n error('Unexpected ref object provided for %s. ' + 'Use either a ref-setter function or React.createRef().', getComponentName(finishedWork.type));\n }\n }\n\n ref.current = instanceToUse;\n }\n }\n}\n\nfunction commitDetachRef(current) {\n var currentRef = current.ref;\n\n if (currentRef !== null) {\n if (typeof currentRef === 'function') {\n currentRef(null);\n } else {\n currentRef.current = null;\n }\n }\n} // User-originating errors (lifecycles and refs) should not interrupt\n// deletion, so don't let them throw. Host-originating errors should\n// interrupt deletion, so it's okay\n\n\nfunction commitUnmount(finishedRoot, current, renderPriorityLevel) {\n onCommitUnmount(current);\n\n switch (current.tag) {\n case FunctionComponent:\n case ForwardRef:\n case MemoComponent:\n case SimpleMemoComponent:\n case Block:\n {\n var updateQueue = current.updateQueue;\n\n if (updateQueue !== null) {\n var lastEffect = updateQueue.lastEffect;\n\n if (lastEffect !== null) {\n var firstEffect = lastEffect.next;\n var effect = firstEffect;\n\n do {\n var _effect2 = effect,\n destroy = _effect2.destroy,\n tag = _effect2.tag;\n\n if (destroy !== undefined) {\n if ((tag & Passive$1) !== NoFlags$1) {\n enqueuePendingPassiveHookEffectUnmount(current, effect);\n } else {\n {\n safelyCallDestroy(current, destroy);\n }\n }\n }\n\n effect = effect.next;\n } while (effect !== firstEffect);\n }\n }\n\n return;\n }\n\n case ClassComponent:\n {\n safelyDetachRef(current);\n var instance = current.stateNode;\n\n if (typeof instance.componentWillUnmount === 'function') {\n safelyCallComponentWillUnmount(current, instance);\n }\n\n return;\n }\n\n case HostComponent:\n {\n safelyDetachRef(current);\n return;\n }\n\n case HostPortal:\n {\n // TODO: this is recursive.\n // We are also not using this parent because\n // the portal will get pushed immediately.\n {\n unmountHostComponents(finishedRoot, current);\n }\n\n return;\n }\n\n case FundamentalComponent:\n {\n\n return;\n }\n\n case DehydratedFragment:\n {\n\n return;\n }\n\n case ScopeComponent:\n {\n\n return;\n }\n }\n}\n\nfunction commitNestedUnmounts(finishedRoot, root, renderPriorityLevel) {\n // While we're inside a removed host node we don't want to call\n // removeChild on the inner nodes because they're removed by the top\n // call anyway. We also want to call componentWillUnmount on all\n // composites before this host node is removed from the tree. Therefore\n // we do an inner loop while we're still inside the host node.\n var node = root;\n\n while (true) {\n commitUnmount(finishedRoot, node); // Visit children because they may contain more composite or host nodes.\n // Skip portals because commitUnmount() currently visits them recursively.\n\n if (node.child !== null && ( // If we use mutation we drill down into portals using commitUnmount above.\n // If we don't use mutation we drill down into portals here instead.\n node.tag !== HostPortal)) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n\n if (node === root) {\n return;\n }\n\n while (node.sibling === null) {\n if (node.return === null || node.return === root) {\n return;\n }\n\n node = node.return;\n }\n\n node.sibling.return = node.return;\n node = node.sibling;\n }\n}\n\nfunction detachFiberMutation(fiber) {\n // Cut off the return pointers to disconnect it from the tree. Ideally, we\n // should clear the child pointer of the parent alternate to let this\n // get GC:ed but we don't know which for sure which parent is the current\n // one so we'll settle for GC:ing the subtree of this child. This child\n // itself will be GC:ed when the parent updates the next time.\n // Note: we cannot null out sibling here, otherwise it can cause issues\n // with findDOMNode and how it requires the sibling field to carry out\n // traversal in a later effect. See PR #16820. We now clear the sibling\n // field after effects, see: detachFiberAfterEffects.\n //\n // Don't disconnect stateNode now; it will be detached in detachFiberAfterEffects.\n // It may be required if the current component is an error boundary,\n // and one of its descendants throws while unmounting a passive effect.\n fiber.alternate = null;\n fiber.child = null;\n fiber.dependencies = null;\n fiber.firstEffect = null;\n fiber.lastEffect = null;\n fiber.memoizedProps = null;\n fiber.memoizedState = null;\n fiber.pendingProps = null;\n fiber.return = null;\n fiber.updateQueue = null;\n\n {\n fiber._debugOwner = null;\n }\n}\n\nfunction getHostParentFiber(fiber) {\n var parent = fiber.return;\n\n while (parent !== null) {\n if (isHostParent(parent)) {\n return parent;\n }\n\n parent = parent.return;\n }\n\n {\n {\n throw Error( \"Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n}\n\nfunction isHostParent(fiber) {\n return fiber.tag === HostComponent || fiber.tag === HostRoot || fiber.tag === HostPortal;\n}\n\nfunction getHostSibling(fiber) {\n // We're going to search forward into the tree until we find a sibling host\n // node. Unfortunately, if multiple insertions are done in a row we have to\n // search past them. This leads to exponential search for the next sibling.\n // TODO: Find a more efficient way to do this.\n var node = fiber;\n\n siblings: while (true) {\n // If we didn't find anything, let's try the next sibling.\n while (node.sibling === null) {\n if (node.return === null || isHostParent(node.return)) {\n // If we pop out of the root or hit the parent the fiber we are the\n // last sibling.\n return null;\n }\n\n node = node.return;\n }\n\n node.sibling.return = node.return;\n node = node.sibling;\n\n while (node.tag !== HostComponent && node.tag !== HostText && node.tag !== DehydratedFragment) {\n // If it is not host node and, we might have a host node inside it.\n // Try to search down until we find one.\n if (node.flags & Placement) {\n // If we don't have a child, try the siblings instead.\n continue siblings;\n } // If we don't have a child, try the siblings instead.\n // We also skip portals because they are not part of this host tree.\n\n\n if (node.child === null || node.tag === HostPortal) {\n continue siblings;\n } else {\n node.child.return = node;\n node = node.child;\n }\n } // Check if this host node is stable or about to be placed.\n\n\n if (!(node.flags & Placement)) {\n // Found it!\n return node.stateNode;\n }\n }\n}\n\nfunction commitPlacement(finishedWork) {\n\n\n var parentFiber = getHostParentFiber(finishedWork); // Note: these two variables *must* always be updated together.\n\n var parent;\n var isContainer;\n var parentStateNode = parentFiber.stateNode;\n\n switch (parentFiber.tag) {\n case HostComponent:\n parent = parentStateNode;\n isContainer = false;\n break;\n\n case HostRoot:\n parent = parentStateNode.containerInfo;\n isContainer = true;\n break;\n\n case HostPortal:\n parent = parentStateNode.containerInfo;\n isContainer = true;\n break;\n\n case FundamentalComponent:\n\n // eslint-disable-next-line-no-fallthrough\n\n default:\n {\n {\n throw Error( \"Invalid host parent fiber. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n\n }\n\n if (parentFiber.flags & ContentReset) {\n // Reset the text content of the parent before doing any insertions\n resetTextContent(parent); // Clear ContentReset from the effect tag\n\n parentFiber.flags &= ~ContentReset;\n }\n\n var before = getHostSibling(finishedWork); // We only have the top Fiber that was inserted but we need to recurse down its\n // children to find all the terminal nodes.\n\n if (isContainer) {\n insertOrAppendPlacementNodeIntoContainer(finishedWork, before, parent);\n } else {\n insertOrAppendPlacementNode(finishedWork, before, parent);\n }\n}\n\nfunction insertOrAppendPlacementNodeIntoContainer(node, before, parent) {\n var tag = node.tag;\n var isHost = tag === HostComponent || tag === HostText;\n\n if (isHost || enableFundamentalAPI ) {\n var stateNode = isHost ? node.stateNode : node.stateNode.instance;\n\n if (before) {\n insertInContainerBefore(parent, stateNode, before);\n } else {\n appendChildToContainer(parent, stateNode);\n }\n } else if (tag === HostPortal) ; else {\n var child = node.child;\n\n if (child !== null) {\n insertOrAppendPlacementNodeIntoContainer(child, before, parent);\n var sibling = child.sibling;\n\n while (sibling !== null) {\n insertOrAppendPlacementNodeIntoContainer(sibling, before, parent);\n sibling = sibling.sibling;\n }\n }\n }\n}\n\nfunction insertOrAppendPlacementNode(node, before, parent) {\n var tag = node.tag;\n var isHost = tag === HostComponent || tag === HostText;\n\n if (isHost || enableFundamentalAPI ) {\n var stateNode = isHost ? node.stateNode : node.stateNode.instance;\n\n if (before) {\n insertBefore(parent, stateNode, before);\n } else {\n appendChild(parent, stateNode);\n }\n } else if (tag === HostPortal) ; else {\n var child = node.child;\n\n if (child !== null) {\n insertOrAppendPlacementNode(child, before, parent);\n var sibling = child.sibling;\n\n while (sibling !== null) {\n insertOrAppendPlacementNode(sibling, before, parent);\n sibling = sibling.sibling;\n }\n }\n }\n}\n\nfunction unmountHostComponents(finishedRoot, current, renderPriorityLevel) {\n // We only have the top Fiber that was deleted but we need to recurse down its\n // children to find all the terminal nodes.\n var node = current; // Each iteration, currentParent is populated with node's host parent if not\n // currentParentIsValid.\n\n var currentParentIsValid = false; // Note: these two variables *must* always be updated together.\n\n var currentParent;\n var currentParentIsContainer;\n\n while (true) {\n if (!currentParentIsValid) {\n var parent = node.return;\n\n findParent: while (true) {\n if (!(parent !== null)) {\n {\n throw Error( \"Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n\n var parentStateNode = parent.stateNode;\n\n switch (parent.tag) {\n case HostComponent:\n currentParent = parentStateNode;\n currentParentIsContainer = false;\n break findParent;\n\n case HostRoot:\n currentParent = parentStateNode.containerInfo;\n currentParentIsContainer = true;\n break findParent;\n\n case HostPortal:\n currentParent = parentStateNode.containerInfo;\n currentParentIsContainer = true;\n break findParent;\n\n }\n\n parent = parent.return;\n }\n\n currentParentIsValid = true;\n }\n\n if (node.tag === HostComponent || node.tag === HostText) {\n commitNestedUnmounts(finishedRoot, node); // After all the children have unmounted, it is now safe to remove the\n // node from the tree.\n\n if (currentParentIsContainer) {\n removeChildFromContainer(currentParent, node.stateNode);\n } else {\n removeChild(currentParent, node.stateNode);\n } // Don't visit children because we already visited them.\n\n } else if (node.tag === HostPortal) {\n if (node.child !== null) {\n // When we go into a portal, it becomes the parent to remove from.\n // We will reassign it back when we pop the portal on the way up.\n currentParent = node.stateNode.containerInfo;\n currentParentIsContainer = true; // Visit children because portals might contain host components.\n\n node.child.return = node;\n node = node.child;\n continue;\n }\n } else {\n commitUnmount(finishedRoot, node); // Visit children because we may find more host components below.\n\n if (node.child !== null) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n }\n\n if (node === current) {\n return;\n }\n\n while (node.sibling === null) {\n if (node.return === null || node.return === current) {\n return;\n }\n\n node = node.return;\n\n if (node.tag === HostPortal) {\n // When we go out of the portal, we need to restore the parent.\n // Since we don't keep a stack of them, we will search for it.\n currentParentIsValid = false;\n }\n }\n\n node.sibling.return = node.return;\n node = node.sibling;\n }\n}\n\nfunction commitDeletion(finishedRoot, current, renderPriorityLevel) {\n {\n // Recursively delete all host nodes from the parent.\n // Detach refs and call componentWillUnmount() on the whole subtree.\n unmountHostComponents(finishedRoot, current);\n }\n\n var alternate = current.alternate;\n detachFiberMutation(current);\n\n if (alternate !== null) {\n detachFiberMutation(alternate);\n }\n}\n\nfunction commitWork(current, finishedWork) {\n\n switch (finishedWork.tag) {\n case FunctionComponent:\n case ForwardRef:\n case MemoComponent:\n case SimpleMemoComponent:\n case Block:\n {\n // Layout effects are destroyed during the mutation phase so that all\n // destroy functions for all fibers are called before any create functions.\n // This prevents sibling component effects from interfering with each other,\n // e.g. a destroy function in one component should never override a ref set\n // by a create function in another component during the same commit.\n {\n commitHookEffectListUnmount(Layout | HasEffect, finishedWork);\n }\n\n return;\n }\n\n case ClassComponent:\n {\n return;\n }\n\n case HostComponent:\n {\n var instance = finishedWork.stateNode;\n\n if (instance != null) {\n // Commit the work prepared earlier.\n var newProps = finishedWork.memoizedProps; // For hydration we reuse the update path but we treat the oldProps\n // as the newProps. The updatePayload will contain the real change in\n // this case.\n\n var oldProps = current !== null ? current.memoizedProps : newProps;\n var type = finishedWork.type; // TODO: Type the updateQueue to be specific to host components.\n\n var updatePayload = finishedWork.updateQueue;\n finishedWork.updateQueue = null;\n\n if (updatePayload !== null) {\n commitUpdate(instance, updatePayload, type, oldProps, newProps);\n }\n }\n\n return;\n }\n\n case HostText:\n {\n if (!(finishedWork.stateNode !== null)) {\n {\n throw Error( \"This should have a text node initialized. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n\n var textInstance = finishedWork.stateNode;\n var newText = finishedWork.memoizedProps; // For hydration we reuse the update path but we treat the oldProps\n // as the newProps. The updatePayload will contain the real change in\n // this case.\n\n var oldText = current !== null ? current.memoizedProps : newText;\n commitTextUpdate(textInstance, oldText, newText);\n return;\n }\n\n case HostRoot:\n {\n {\n var _root = finishedWork.stateNode;\n\n if (_root.hydrate) {\n // We've just hydrated. No need to hydrate again.\n _root.hydrate = false;\n commitHydratedContainer(_root.containerInfo);\n }\n }\n\n return;\n }\n\n case Profiler:\n {\n return;\n }\n\n case SuspenseComponent:\n {\n commitSuspenseComponent(finishedWork);\n attachSuspenseRetryListeners(finishedWork);\n return;\n }\n\n case SuspenseListComponent:\n {\n attachSuspenseRetryListeners(finishedWork);\n return;\n }\n\n case IncompleteClassComponent:\n {\n return;\n }\n\n case FundamentalComponent:\n {\n\n break;\n }\n\n case ScopeComponent:\n {\n\n break;\n }\n\n case OffscreenComponent:\n case LegacyHiddenComponent:\n {\n var newState = finishedWork.memoizedState;\n var isHidden = newState !== null;\n hideOrUnhideAllChildren(finishedWork, isHidden);\n return;\n }\n }\n\n {\n {\n throw Error( \"This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n}\n\nfunction commitSuspenseComponent(finishedWork) {\n var newState = finishedWork.memoizedState;\n\n if (newState !== null) {\n markCommitTimeOfFallback();\n\n {\n // Hide the Offscreen component that contains the primary children. TODO:\n // Ideally, this effect would have been scheduled on the Offscreen fiber\n // itself. That's how unhiding works: the Offscreen component schedules an\n // effect on itself. However, in this case, the component didn't complete,\n // so the fiber was never added to the effect list in the normal path. We\n // could have appended it to the effect list in the Suspense component's\n // second pass, but doing it this way is less complicated. This would be\n // simpler if we got rid of the effect list and traversed the tree, like\n // we're planning to do.\n var primaryChildParent = finishedWork.child;\n hideOrUnhideAllChildren(primaryChildParent, true);\n }\n }\n}\n\nfunction commitSuspenseHydrationCallbacks(finishedRoot, finishedWork) {\n\n var newState = finishedWork.memoizedState;\n\n if (newState === null) {\n var current = finishedWork.alternate;\n\n if (current !== null) {\n var prevState = current.memoizedState;\n\n if (prevState !== null) {\n var suspenseInstance = prevState.dehydrated;\n\n if (suspenseInstance !== null) {\n commitHydratedSuspenseInstance(suspenseInstance);\n }\n }\n }\n }\n}\n\nfunction attachSuspenseRetryListeners(finishedWork) {\n // If this boundary just timed out, then it will have a set of wakeables.\n // For each wakeable, attach a listener so that when it resolves, React\n // attempts to re-render the boundary in the primary (pre-timeout) state.\n var wakeables = finishedWork.updateQueue;\n\n if (wakeables !== null) {\n finishedWork.updateQueue = null;\n var retryCache = finishedWork.stateNode;\n\n if (retryCache === null) {\n retryCache = finishedWork.stateNode = new PossiblyWeakSet();\n }\n\n wakeables.forEach(function (wakeable) {\n // Memoize using the boundary fiber to prevent redundant listeners.\n var retry = resolveRetryWakeable.bind(null, finishedWork, wakeable);\n\n if (!retryCache.has(wakeable)) {\n {\n if (wakeable.__reactDoNotTraceInteractions !== true) {\n retry = tracing.unstable_wrap(retry);\n }\n }\n\n retryCache.add(wakeable);\n wakeable.then(retry, retry);\n }\n });\n }\n} // This function detects when a Suspense boundary goes from visible to hidden.\n// It returns false if the boundary is already hidden.\n// TODO: Use an effect tag.\n\n\nfunction isSuspenseBoundaryBeingHidden(current, finishedWork) {\n if (current !== null) {\n var oldState = current.memoizedState;\n\n if (oldState === null || oldState.dehydrated !== null) {\n var newState = finishedWork.memoizedState;\n return newState !== null && newState.dehydrated === null;\n }\n }\n\n return false;\n}\n\nfunction commitResetTextContent(current) {\n\n resetTextContent(current.stateNode);\n}\n\nvar COMPONENT_TYPE = 0;\nvar HAS_PSEUDO_CLASS_TYPE = 1;\nvar ROLE_TYPE = 2;\nvar TEST_NAME_TYPE = 3;\nvar TEXT_TYPE = 4;\n\nif (typeof Symbol === 'function' && Symbol.for) {\n var symbolFor$1 = Symbol.for;\n COMPONENT_TYPE = symbolFor$1('selector.component');\n HAS_PSEUDO_CLASS_TYPE = symbolFor$1('selector.has_pseudo_class');\n ROLE_TYPE = symbolFor$1('selector.role');\n TEST_NAME_TYPE = symbolFor$1('selector.test_id');\n TEXT_TYPE = symbolFor$1('selector.text');\n}\nvar commitHooks = [];\nfunction onCommitRoot$1() {\n {\n commitHooks.forEach(function (commitHook) {\n return commitHook();\n });\n }\n}\n\nvar ceil = Math.ceil;\nvar ReactCurrentDispatcher$2 = ReactSharedInternals.ReactCurrentDispatcher,\n ReactCurrentOwner$2 = ReactSharedInternals.ReactCurrentOwner,\n IsSomeRendererActing = ReactSharedInternals.IsSomeRendererActing;\nvar NoContext =\n/* */\n0;\nvar BatchedContext =\n/* */\n1;\nvar EventContext =\n/* */\n2;\nvar DiscreteEventContext =\n/* */\n4;\nvar LegacyUnbatchedContext =\n/* */\n8;\nvar RenderContext =\n/* */\n16;\nvar CommitContext =\n/* */\n32;\nvar RetryAfterError =\n/* */\n64;\nvar RootIncomplete = 0;\nvar RootFatalErrored = 1;\nvar RootErrored = 2;\nvar RootSuspended = 3;\nvar RootSuspendedWithDelay = 4;\nvar RootCompleted = 5; // Describes where we are in the React execution stack\n\nvar executionContext = NoContext; // The root we're working on\n\nvar workInProgressRoot = null; // The fiber we're working on\n\nvar workInProgress = null; // The lanes we're rendering\n\nvar workInProgressRootRenderLanes = NoLanes; // Stack that allows components to change the render lanes for its subtree\n// This is a superset of the lanes we started working on at the root. The only\n// case where it's different from `workInProgressRootRenderLanes` is when we\n// enter a subtree that is hidden and needs to be unhidden: Suspense and\n// Offscreen component.\n//\n// Most things in the work loop should deal with workInProgressRootRenderLanes.\n// Most things in begin/complete phases should deal with subtreeRenderLanes.\n\nvar subtreeRenderLanes = NoLanes;\nvar subtreeRenderLanesCursor = createCursor(NoLanes); // Whether to root completed, errored, suspended, etc.\n\nvar workInProgressRootExitStatus = RootIncomplete; // A fatal error, if one is thrown\n\nvar workInProgressRootFatalError = null; // \"Included\" lanes refer to lanes that were worked on during this render. It's\n// slightly different than `renderLanes` because `renderLanes` can change as you\n// enter and exit an Offscreen tree. This value is the combination of all render\n// lanes for the entire render phase.\n\nvar workInProgressRootIncludedLanes = NoLanes; // The work left over by components that were visited during this render. Only\n// includes unprocessed updates, not work in bailed out children.\n\nvar workInProgressRootSkippedLanes = NoLanes; // Lanes that were updated (in an interleaved event) during this render.\n\nvar workInProgressRootUpdatedLanes = NoLanes; // Lanes that were pinged (in an interleaved event) during this render.\n\nvar workInProgressRootPingedLanes = NoLanes;\nvar mostRecentlyUpdatedRoot = null; // The most recent time we committed a fallback. This lets us ensure a train\n// model where we don't commit new loading states in too quick succession.\n\nvar globalMostRecentFallbackTime = 0;\nvar FALLBACK_THROTTLE_MS = 500; // The absolute time for when we should start giving up on rendering\n// more and prefer CPU suspense heuristics instead.\n\nvar workInProgressRootRenderTargetTime = Infinity; // How long a render is supposed to take before we start following CPU\n// suspense heuristics and opt out of rendering more content.\n\nvar RENDER_TIMEOUT_MS = 500;\n\nfunction resetRenderTimer() {\n workInProgressRootRenderTargetTime = now() + RENDER_TIMEOUT_MS;\n}\n\nfunction getRenderTargetTime() {\n return workInProgressRootRenderTargetTime;\n}\nvar nextEffect = null;\nvar hasUncaughtError = false;\nvar firstUncaughtError = null;\nvar legacyErrorBoundariesThatAlreadyFailed = null;\nvar rootDoesHavePassiveEffects = false;\nvar rootWithPendingPassiveEffects = null;\nvar pendingPassiveEffectsRenderPriority = NoPriority$1;\nvar pendingPassiveEffectsLanes = NoLanes;\nvar pendingPassiveHookEffectsMount = [];\nvar pendingPassiveHookEffectsUnmount = [];\nvar rootsWithPendingDiscreteUpdates = null; // Use these to prevent an infinite loop of nested updates\n\nvar NESTED_UPDATE_LIMIT = 50;\nvar nestedUpdateCount = 0;\nvar rootWithNestedUpdates = null;\nvar NESTED_PASSIVE_UPDATE_LIMIT = 50;\nvar nestedPassiveUpdateCount = 0; // Marks the need to reschedule pending interactions at these lanes\n// during the commit phase. This enables them to be traced across components\n// that spawn new work during render. E.g. hidden boundaries, suspended SSR\n// hydration or SuspenseList.\n// TODO: Can use a bitmask instead of an array\n\nvar spawnedWorkDuringRender = null; // If two updates are scheduled within the same event, we should treat their\n// event times as simultaneous, even if the actual clock time has advanced\n// between the first and second call.\n\nvar currentEventTime = NoTimestamp;\nvar currentEventWipLanes = NoLanes;\nvar currentEventPendingLanes = NoLanes; // Dev only flag that tracks if passive effects are currently being flushed.\n// We warn about state updates for unmounted components differently in this case.\n\nvar isFlushingPassiveEffects = false;\nvar focusedInstanceHandle = null;\nvar shouldFireAfterActiveInstanceBlur = false;\nfunction getWorkInProgressRoot() {\n return workInProgressRoot;\n}\nfunction requestEventTime() {\n if ((executionContext & (RenderContext | CommitContext)) !== NoContext) {\n // We're inside React, so it's fine to read the actual time.\n return now();\n } // We're not inside React, so we may be in the middle of a browser event.\n\n\n if (currentEventTime !== NoTimestamp) {\n // Use the same start time for all updates until we enter React again.\n return currentEventTime;\n } // This is the first update since React yielded. Compute a new start time.\n\n\n currentEventTime = now();\n return currentEventTime;\n}\nfunction requestUpdateLane(fiber) {\n // Special cases\n var mode = fiber.mode;\n\n if ((mode & BlockingMode) === NoMode) {\n return SyncLane;\n } else if ((mode & ConcurrentMode) === NoMode) {\n return getCurrentPriorityLevel() === ImmediatePriority$1 ? SyncLane : SyncBatchedLane;\n } // The algorithm for assigning an update to a lane should be stable for all\n // updates at the same priority within the same event. To do this, the inputs\n // to the algorithm must be the same. For example, we use the `renderLanes`\n // to avoid choosing a lane that is already in the middle of rendering.\n //\n // However, the \"included\" lanes could be mutated in between updates in the\n // same event, like if you perform an update inside `flushSync`. Or any other\n // code path that might call `prepareFreshStack`.\n //\n // The trick we use is to cache the first of each of these inputs within an\n // event. Then reset the cached values once we can be sure the event is over.\n // Our heuristic for that is whenever we enter a concurrent work loop.\n //\n // We'll do the same for `currentEventPendingLanes` below.\n\n\n if (currentEventWipLanes === NoLanes) {\n currentEventWipLanes = workInProgressRootIncludedLanes;\n }\n\n var isTransition = requestCurrentTransition() !== NoTransition;\n\n if (isTransition) {\n if (currentEventPendingLanes !== NoLanes) {\n currentEventPendingLanes = mostRecentlyUpdatedRoot !== null ? mostRecentlyUpdatedRoot.pendingLanes : NoLanes;\n }\n\n return findTransitionLane(currentEventWipLanes, currentEventPendingLanes);\n } // TODO: Remove this dependency on the Scheduler priority.\n // To do that, we're replacing it with an update lane priority.\n\n\n var schedulerPriority = getCurrentPriorityLevel(); // The old behavior was using the priority level of the Scheduler.\n // This couples React to the Scheduler internals, so we're replacing it\n // with the currentUpdateLanePriority above. As an example of how this\n // could be problematic, if we're not inside `Scheduler.runWithPriority`,\n // then we'll get the priority of the current running Scheduler task,\n // which is probably not what we want.\n\n var lane;\n\n if ( // TODO: Temporary. We're removing the concept of discrete updates.\n (executionContext & DiscreteEventContext) !== NoContext && schedulerPriority === UserBlockingPriority$2) {\n lane = findUpdateLane(InputDiscreteLanePriority, currentEventWipLanes);\n } else {\n var schedulerLanePriority = schedulerPriorityToLanePriority(schedulerPriority);\n\n lane = findUpdateLane(schedulerLanePriority, currentEventWipLanes);\n }\n\n return lane;\n}\n\nfunction requestRetryLane(fiber) {\n // This is a fork of `requestUpdateLane` designed specifically for Suspense\n // \"retries\" — a special update that attempts to flip a Suspense boundary\n // from its placeholder state to its primary/resolved state.\n // Special cases\n var mode = fiber.mode;\n\n if ((mode & BlockingMode) === NoMode) {\n return SyncLane;\n } else if ((mode & ConcurrentMode) === NoMode) {\n return getCurrentPriorityLevel() === ImmediatePriority$1 ? SyncLane : SyncBatchedLane;\n } // See `requestUpdateLane` for explanation of `currentEventWipLanes`\n\n\n if (currentEventWipLanes === NoLanes) {\n currentEventWipLanes = workInProgressRootIncludedLanes;\n }\n\n return findRetryLane(currentEventWipLanes);\n}\n\nfunction scheduleUpdateOnFiber(fiber, lane, eventTime) {\n checkForNestedUpdates();\n warnAboutRenderPhaseUpdatesInDEV(fiber);\n var root = markUpdateLaneFromFiberToRoot(fiber, lane);\n\n if (root === null) {\n warnAboutUpdateOnUnmountedFiberInDEV(fiber);\n return null;\n } // Mark that the root has a pending update.\n\n\n markRootUpdated(root, lane, eventTime);\n\n if (root === workInProgressRoot) {\n // Received an update to a tree that's in the middle of rendering. Mark\n // that there was an interleaved update work on this root. Unless the\n // `deferRenderPhaseUpdateToNextBatch` flag is off and this is a render\n // phase update. In that case, we don't treat render phase updates as if\n // they were interleaved, for backwards compat reasons.\n {\n workInProgressRootUpdatedLanes = mergeLanes(workInProgressRootUpdatedLanes, lane);\n }\n\n if (workInProgressRootExitStatus === RootSuspendedWithDelay) {\n // The root already suspended with a delay, which means this render\n // definitely won't finish. Since we have a new update, let's mark it as\n // suspended now, right before marking the incoming update. This has the\n // effect of interrupting the current render and switching to the update.\n // TODO: Make sure this doesn't override pings that happen while we've\n // already started rendering.\n markRootSuspended$1(root, workInProgressRootRenderLanes);\n }\n } // TODO: requestUpdateLanePriority also reads the priority. Pass the\n // priority as an argument to that function and this one.\n\n\n var priorityLevel = getCurrentPriorityLevel();\n\n if (lane === SyncLane) {\n if ( // Check if we're inside unbatchedUpdates\n (executionContext & LegacyUnbatchedContext) !== NoContext && // Check if we're not already rendering\n (executionContext & (RenderContext | CommitContext)) === NoContext) {\n // Register pending interactions on the root to avoid losing traced interaction data.\n schedulePendingInteractions(root, lane); // This is a legacy edge case. The initial mount of a ReactDOM.render-ed\n // root inside of batchedUpdates should be synchronous, but layout updates\n // should be deferred until the end of the batch.\n\n performSyncWorkOnRoot(root);\n } else {\n ensureRootIsScheduled(root, eventTime);\n schedulePendingInteractions(root, lane);\n\n if (executionContext === NoContext) {\n // Flush the synchronous work now, unless we're already working or inside\n // a batch. This is intentionally inside scheduleUpdateOnFiber instead of\n // scheduleCallbackForFiber to preserve the ability to schedule a callback\n // without immediately flushing it. We only do this for user-initiated\n // updates, to preserve historical behavior of legacy mode.\n resetRenderTimer();\n flushSyncCallbackQueue();\n }\n }\n } else {\n // Schedule a discrete update but only if it's not Sync.\n if ((executionContext & DiscreteEventContext) !== NoContext && ( // Only updates at user-blocking priority or greater are considered\n // discrete, even inside a discrete event.\n priorityLevel === UserBlockingPriority$2 || priorityLevel === ImmediatePriority$1)) {\n // This is the result of a discrete event. Track the lowest priority\n // discrete update per root so we can flush them early, if needed.\n if (rootsWithPendingDiscreteUpdates === null) {\n rootsWithPendingDiscreteUpdates = new Set([root]);\n } else {\n rootsWithPendingDiscreteUpdates.add(root);\n }\n } // Schedule other updates after in case the callback is sync.\n\n\n ensureRootIsScheduled(root, eventTime);\n schedulePendingInteractions(root, lane);\n } // We use this when assigning a lane for a transition inside\n // `requestUpdateLane`. We assume it's the same as the root being updated,\n // since in the common case of a single root app it probably is. If it's not\n // the same root, then it's not a huge deal, we just might batch more stuff\n // together more than necessary.\n\n\n mostRecentlyUpdatedRoot = root;\n} // This is split into a separate function so we can mark a fiber with pending\n// work without treating it as a typical update that originates from an event;\n// e.g. retrying a Suspense boundary isn't an update, but it does schedule work\n// on a fiber.\n\nfunction markUpdateLaneFromFiberToRoot(sourceFiber, lane) {\n // Update the source fiber's lanes\n sourceFiber.lanes = mergeLanes(sourceFiber.lanes, lane);\n var alternate = sourceFiber.alternate;\n\n if (alternate !== null) {\n alternate.lanes = mergeLanes(alternate.lanes, lane);\n }\n\n {\n if (alternate === null && (sourceFiber.flags & (Placement | Hydrating)) !== NoFlags) {\n warnAboutUpdateOnNotYetMountedFiberInDEV(sourceFiber);\n }\n } // Walk the parent path to the root and update the child expiration time.\n\n\n var node = sourceFiber;\n var parent = sourceFiber.return;\n\n while (parent !== null) {\n parent.childLanes = mergeLanes(parent.childLanes, lane);\n alternate = parent.alternate;\n\n if (alternate !== null) {\n alternate.childLanes = mergeLanes(alternate.childLanes, lane);\n } else {\n {\n if ((parent.flags & (Placement | Hydrating)) !== NoFlags) {\n warnAboutUpdateOnNotYetMountedFiberInDEV(sourceFiber);\n }\n }\n }\n\n node = parent;\n parent = parent.return;\n }\n\n if (node.tag === HostRoot) {\n var root = node.stateNode;\n return root;\n } else {\n return null;\n }\n} // Use this function to schedule a task for a root. There's only one task per\n// root; if a task was already scheduled, we'll check to make sure the priority\n// of the existing task is the same as the priority of the next level that the\n// root has work on. This function is called on every update, and right before\n// exiting a task.\n\n\nfunction ensureRootIsScheduled(root, currentTime) {\n var existingCallbackNode = root.callbackNode; // Check if any lanes are being starved by other work. If so, mark them as\n // expired so we know to work on those next.\n\n markStarvedLanesAsExpired(root, currentTime); // Determine the next lanes to work on, and their priority.\n\n var nextLanes = getNextLanes(root, root === workInProgressRoot ? workInProgressRootRenderLanes : NoLanes); // This returns the priority level computed during the `getNextLanes` call.\n\n var newCallbackPriority = returnNextLanesPriority();\n\n if (nextLanes === NoLanes) {\n // Special case: There's nothing to work on.\n if (existingCallbackNode !== null) {\n cancelCallback(existingCallbackNode);\n root.callbackNode = null;\n root.callbackPriority = NoLanePriority;\n }\n\n return;\n } // Check if there's an existing task. We may be able to reuse it.\n\n\n if (existingCallbackNode !== null) {\n var existingCallbackPriority = root.callbackPriority;\n\n if (existingCallbackPriority === newCallbackPriority) {\n // The priority hasn't changed. We can reuse the existing task. Exit.\n return;\n } // The priority changed. Cancel the existing callback. We'll schedule a new\n // one below.\n\n\n cancelCallback(existingCallbackNode);\n } // Schedule a new callback.\n\n\n var newCallbackNode;\n\n if (newCallbackPriority === SyncLanePriority) {\n // Special case: Sync React callbacks are scheduled on a special\n // internal queue\n newCallbackNode = scheduleSyncCallback(performSyncWorkOnRoot.bind(null, root));\n } else if (newCallbackPriority === SyncBatchedLanePriority) {\n newCallbackNode = scheduleCallback(ImmediatePriority$1, performSyncWorkOnRoot.bind(null, root));\n } else {\n var schedulerPriorityLevel = lanePriorityToSchedulerPriority(newCallbackPriority);\n newCallbackNode = scheduleCallback(schedulerPriorityLevel, performConcurrentWorkOnRoot.bind(null, root));\n }\n\n root.callbackPriority = newCallbackPriority;\n root.callbackNode = newCallbackNode;\n} // This is the entry point for every concurrent task, i.e. anything that\n// goes through Scheduler.\n\n\nfunction performConcurrentWorkOnRoot(root) {\n // Since we know we're in a React event, we can clear the current\n // event time. The next update will compute a new event time.\n currentEventTime = NoTimestamp;\n currentEventWipLanes = NoLanes;\n currentEventPendingLanes = NoLanes;\n\n if (!((executionContext & (RenderContext | CommitContext)) === NoContext)) {\n {\n throw Error( \"Should not already be working.\" );\n }\n } // Flush any pending passive effects before deciding which lanes to work on,\n // in case they schedule additional work.\n\n\n var originalCallbackNode = root.callbackNode;\n var didFlushPassiveEffects = flushPassiveEffects();\n\n if (didFlushPassiveEffects) {\n // Something in the passive effect phase may have canceled the current task.\n // Check if the task node for this root was changed.\n if (root.callbackNode !== originalCallbackNode) {\n // The current task was canceled. Exit. We don't need to call\n // `ensureRootIsScheduled` because the check above implies either that\n // there's a new task, or that there's no remaining work on this root.\n return null;\n }\n } // Determine the next expiration time to work on, using the fields stored\n // on the root.\n\n\n var lanes = getNextLanes(root, root === workInProgressRoot ? workInProgressRootRenderLanes : NoLanes);\n\n if (lanes === NoLanes) {\n // Defensive coding. This is never expected to happen.\n return null;\n }\n\n var exitStatus = renderRootConcurrent(root, lanes);\n\n if (includesSomeLane(workInProgressRootIncludedLanes, workInProgressRootUpdatedLanes)) {\n // The render included lanes that were updated during the render phase.\n // For example, when unhiding a hidden tree, we include all the lanes\n // that were previously skipped when the tree was hidden. That set of\n // lanes is a superset of the lanes we started rendering with.\n //\n // So we'll throw out the current work and restart.\n prepareFreshStack(root, NoLanes);\n } else if (exitStatus !== RootIncomplete) {\n if (exitStatus === RootErrored) {\n executionContext |= RetryAfterError; // If an error occurred during hydration,\n // discard server response and fall back to client side render.\n\n if (root.hydrate) {\n root.hydrate = false;\n clearContainer(root.containerInfo);\n } // If something threw an error, try rendering one more time. We'll render\n // synchronously to block concurrent data mutations, and we'll includes\n // all pending updates are included. If it still fails after the second\n // attempt, we'll give up and commit the resulting tree.\n\n\n lanes = getLanesToRetrySynchronouslyOnError(root);\n\n if (lanes !== NoLanes) {\n exitStatus = renderRootSync(root, lanes);\n }\n }\n\n if (exitStatus === RootFatalErrored) {\n var fatalError = workInProgressRootFatalError;\n prepareFreshStack(root, NoLanes);\n markRootSuspended$1(root, lanes);\n ensureRootIsScheduled(root, now());\n throw fatalError;\n } // We now have a consistent tree. The next step is either to commit it,\n // or, if something suspended, wait to commit it after a timeout.\n\n\n var finishedWork = root.current.alternate;\n root.finishedWork = finishedWork;\n root.finishedLanes = lanes;\n finishConcurrentRender(root, exitStatus, lanes);\n }\n\n ensureRootIsScheduled(root, now());\n\n if (root.callbackNode === originalCallbackNode) {\n // The task node scheduled for this root is the same one that's\n // currently executed. Need to return a continuation.\n return performConcurrentWorkOnRoot.bind(null, root);\n }\n\n return null;\n}\n\nfunction finishConcurrentRender(root, exitStatus, lanes) {\n switch (exitStatus) {\n case RootIncomplete:\n case RootFatalErrored:\n {\n {\n {\n throw Error( \"Root did not complete. This is a bug in React.\" );\n }\n }\n }\n // Flow knows about invariant, so it complains if I add a break\n // statement, but eslint doesn't know about invariant, so it complains\n // if I do. eslint-disable-next-line no-fallthrough\n\n case RootErrored:\n {\n // We should have already attempted to retry this tree. If we reached\n // this point, it errored again. Commit it.\n commitRoot(root);\n break;\n }\n\n case RootSuspended:\n {\n markRootSuspended$1(root, lanes); // We have an acceptable loading state. We need to figure out if we\n // should immediately commit it or wait a bit.\n\n if (includesOnlyRetries(lanes) && // do not delay if we're inside an act() scope\n !shouldForceFlushFallbacksInDEV()) {\n // This render only included retries, no updates. Throttle committing\n // retries so that we don't show too many loading states too quickly.\n var msUntilTimeout = globalMostRecentFallbackTime + FALLBACK_THROTTLE_MS - now(); // Don't bother with a very short suspense time.\n\n if (msUntilTimeout > 10) {\n var nextLanes = getNextLanes(root, NoLanes);\n\n if (nextLanes !== NoLanes) {\n // There's additional work on this root.\n break;\n }\n\n var suspendedLanes = root.suspendedLanes;\n\n if (!isSubsetOfLanes(suspendedLanes, lanes)) {\n // We should prefer to render the fallback of at the last\n // suspended level. Ping the last suspended level to try\n // rendering it again.\n // FIXME: What if the suspended lanes are Idle? Should not restart.\n var eventTime = requestEventTime();\n markRootPinged(root, suspendedLanes);\n break;\n } // The render is suspended, it hasn't timed out, and there's no\n // lower priority work to do. Instead of committing the fallback\n // immediately, wait for more data to arrive.\n\n\n root.timeoutHandle = scheduleTimeout(commitRoot.bind(null, root), msUntilTimeout);\n break;\n }\n } // The work expired. Commit immediately.\n\n\n commitRoot(root);\n break;\n }\n\n case RootSuspendedWithDelay:\n {\n markRootSuspended$1(root, lanes);\n\n if (includesOnlyTransitions(lanes)) {\n // This is a transition, so we should exit without committing a\n // placeholder and without scheduling a timeout. Delay indefinitely\n // until we receive more data.\n break;\n }\n\n if (!shouldForceFlushFallbacksInDEV()) {\n // This is not a transition, but we did trigger an avoided state.\n // Schedule a placeholder to display after a short delay, using the Just\n // Noticeable Difference.\n // TODO: Is the JND optimization worth the added complexity? If this is\n // the only reason we track the event time, then probably not.\n // Consider removing.\n var mostRecentEventTime = getMostRecentEventTime(root, lanes);\n var eventTimeMs = mostRecentEventTime;\n var timeElapsedMs = now() - eventTimeMs;\n\n var _msUntilTimeout = jnd(timeElapsedMs) - timeElapsedMs; // Don't bother with a very short suspense time.\n\n\n if (_msUntilTimeout > 10) {\n // Instead of committing the fallback immediately, wait for more data\n // to arrive.\n root.timeoutHandle = scheduleTimeout(commitRoot.bind(null, root), _msUntilTimeout);\n break;\n }\n } // Commit the placeholder.\n\n\n commitRoot(root);\n break;\n }\n\n case RootCompleted:\n {\n // The work completed. Ready to commit.\n commitRoot(root);\n break;\n }\n\n default:\n {\n {\n {\n throw Error( \"Unknown root exit status.\" );\n }\n }\n }\n }\n}\n\nfunction markRootSuspended$1(root, suspendedLanes) {\n // When suspending, we should always exclude lanes that were pinged or (more\n // rarely, since we try to avoid it) updated during the render phase.\n // TODO: Lol maybe there's a better way to factor this besides this\n // obnoxiously named function :)\n suspendedLanes = removeLanes(suspendedLanes, workInProgressRootPingedLanes);\n suspendedLanes = removeLanes(suspendedLanes, workInProgressRootUpdatedLanes);\n markRootSuspended(root, suspendedLanes);\n} // This is the entry point for synchronous tasks that don't go\n// through Scheduler\n\n\nfunction performSyncWorkOnRoot(root) {\n if (!((executionContext & (RenderContext | CommitContext)) === NoContext)) {\n {\n throw Error( \"Should not already be working.\" );\n }\n }\n\n flushPassiveEffects();\n var lanes;\n var exitStatus;\n\n if (root === workInProgressRoot && includesSomeLane(root.expiredLanes, workInProgressRootRenderLanes)) {\n // There's a partial tree, and at least one of its lanes has expired. Finish\n // rendering it before rendering the rest of the expired work.\n lanes = workInProgressRootRenderLanes;\n exitStatus = renderRootSync(root, lanes);\n\n if (includesSomeLane(workInProgressRootIncludedLanes, workInProgressRootUpdatedLanes)) {\n // The render included lanes that were updated during the render phase.\n // For example, when unhiding a hidden tree, we include all the lanes\n // that were previously skipped when the tree was hidden. That set of\n // lanes is a superset of the lanes we started rendering with.\n //\n // Note that this only happens when part of the tree is rendered\n // concurrently. If the whole tree is rendered synchronously, then there\n // are no interleaved events.\n lanes = getNextLanes(root, lanes);\n exitStatus = renderRootSync(root, lanes);\n }\n } else {\n lanes = getNextLanes(root, NoLanes);\n exitStatus = renderRootSync(root, lanes);\n }\n\n if (root.tag !== LegacyRoot && exitStatus === RootErrored) {\n executionContext |= RetryAfterError; // If an error occurred during hydration,\n // discard server response and fall back to client side render.\n\n if (root.hydrate) {\n root.hydrate = false;\n clearContainer(root.containerInfo);\n } // If something threw an error, try rendering one more time. We'll render\n // synchronously to block concurrent data mutations, and we'll includes\n // all pending updates are included. If it still fails after the second\n // attempt, we'll give up and commit the resulting tree.\n\n\n lanes = getLanesToRetrySynchronouslyOnError(root);\n\n if (lanes !== NoLanes) {\n exitStatus = renderRootSync(root, lanes);\n }\n }\n\n if (exitStatus === RootFatalErrored) {\n var fatalError = workInProgressRootFatalError;\n prepareFreshStack(root, NoLanes);\n markRootSuspended$1(root, lanes);\n ensureRootIsScheduled(root, now());\n throw fatalError;\n } // We now have a consistent tree. Because this is a sync render, we\n // will commit it even if something suspended.\n\n\n var finishedWork = root.current.alternate;\n root.finishedWork = finishedWork;\n root.finishedLanes = lanes;\n commitRoot(root); // Before exiting, make sure there's a callback scheduled for the next\n // pending level.\n\n ensureRootIsScheduled(root, now());\n return null;\n}\nfunction flushDiscreteUpdates() {\n // TODO: Should be able to flush inside batchedUpdates, but not inside `act`.\n // However, `act` uses `batchedUpdates`, so there's no way to distinguish\n // those two cases. Need to fix this before exposing flushDiscreteUpdates\n // as a public API.\n if ((executionContext & (BatchedContext | RenderContext | CommitContext)) !== NoContext) {\n {\n if ((executionContext & RenderContext) !== NoContext) {\n error('unstable_flushDiscreteUpdates: Cannot flush updates when React is ' + 'already rendering.');\n }\n } // We're already rendering, so we can't synchronously flush pending work.\n // This is probably a nested event dispatch triggered by a lifecycle/effect,\n // like `el.focus()`. Exit.\n\n\n return;\n }\n\n flushPendingDiscreteUpdates(); // If the discrete updates scheduled passive effects, flush them now so that\n // they fire before the next serial event.\n\n flushPassiveEffects();\n}\n\nfunction flushPendingDiscreteUpdates() {\n if (rootsWithPendingDiscreteUpdates !== null) {\n // For each root with pending discrete updates, schedule a callback to\n // immediately flush them.\n var roots = rootsWithPendingDiscreteUpdates;\n rootsWithPendingDiscreteUpdates = null;\n roots.forEach(function (root) {\n markDiscreteUpdatesExpired(root);\n ensureRootIsScheduled(root, now());\n });\n } // Now flush the immediate queue.\n\n\n flushSyncCallbackQueue();\n}\n\nfunction batchedUpdates$1(fn, a) {\n var prevExecutionContext = executionContext;\n executionContext |= BatchedContext;\n\n try {\n return fn(a);\n } finally {\n executionContext = prevExecutionContext;\n\n if (executionContext === NoContext) {\n // Flush the immediate callbacks that were scheduled during this batch\n resetRenderTimer();\n flushSyncCallbackQueue();\n }\n }\n}\nfunction batchedEventUpdates$1(fn, a) {\n var prevExecutionContext = executionContext;\n executionContext |= EventContext;\n\n try {\n return fn(a);\n } finally {\n executionContext = prevExecutionContext;\n\n if (executionContext === NoContext) {\n // Flush the immediate callbacks that were scheduled during this batch\n resetRenderTimer();\n flushSyncCallbackQueue();\n }\n }\n}\nfunction discreteUpdates$1(fn, a, b, c, d) {\n var prevExecutionContext = executionContext;\n executionContext |= DiscreteEventContext;\n\n {\n try {\n return runWithPriority$1(UserBlockingPriority$2, fn.bind(null, a, b, c, d));\n } finally {\n executionContext = prevExecutionContext;\n\n if (executionContext === NoContext) {\n // Flush the immediate callbacks that were scheduled during this batch\n resetRenderTimer();\n flushSyncCallbackQueue();\n }\n }\n }\n}\nfunction unbatchedUpdates(fn, a) {\n var prevExecutionContext = executionContext;\n executionContext &= ~BatchedContext;\n executionContext |= LegacyUnbatchedContext;\n\n try {\n return fn(a);\n } finally {\n executionContext = prevExecutionContext;\n\n if (executionContext === NoContext) {\n // Flush the immediate callbacks that were scheduled during this batch\n resetRenderTimer();\n flushSyncCallbackQueue();\n }\n }\n}\nfunction flushSync(fn, a) {\n var prevExecutionContext = executionContext;\n\n if ((prevExecutionContext & (RenderContext | CommitContext)) !== NoContext) {\n {\n error('flushSync was called from inside a lifecycle method. React cannot ' + 'flush when React is already rendering. Consider moving this call to ' + 'a scheduler task or micro task.');\n }\n\n return fn(a);\n }\n\n executionContext |= BatchedContext;\n\n {\n try {\n if (fn) {\n return runWithPriority$1(ImmediatePriority$1, fn.bind(null, a));\n } else {\n return undefined;\n }\n } finally {\n executionContext = prevExecutionContext; // Flush the immediate callbacks that were scheduled during this batch.\n // Note that this will happen even if batchedUpdates is higher up\n // the stack.\n\n flushSyncCallbackQueue();\n }\n }\n}\nfunction pushRenderLanes(fiber, lanes) {\n push(subtreeRenderLanesCursor, subtreeRenderLanes, fiber);\n subtreeRenderLanes = mergeLanes(subtreeRenderLanes, lanes);\n workInProgressRootIncludedLanes = mergeLanes(workInProgressRootIncludedLanes, lanes);\n}\nfunction popRenderLanes(fiber) {\n subtreeRenderLanes = subtreeRenderLanesCursor.current;\n pop(subtreeRenderLanesCursor, fiber);\n}\n\nfunction prepareFreshStack(root, lanes) {\n root.finishedWork = null;\n root.finishedLanes = NoLanes;\n var timeoutHandle = root.timeoutHandle;\n\n if (timeoutHandle !== noTimeout) {\n // The root previous suspended and scheduled a timeout to commit a fallback\n // state. Now that we have additional work, cancel the timeout.\n root.timeoutHandle = noTimeout; // $FlowFixMe Complains noTimeout is not a TimeoutID, despite the check above\n\n cancelTimeout(timeoutHandle);\n }\n\n if (workInProgress !== null) {\n var interruptedWork = workInProgress.return;\n\n while (interruptedWork !== null) {\n unwindInterruptedWork(interruptedWork);\n interruptedWork = interruptedWork.return;\n }\n }\n\n workInProgressRoot = root;\n workInProgress = createWorkInProgress(root.current, null);\n workInProgressRootRenderLanes = subtreeRenderLanes = workInProgressRootIncludedLanes = lanes;\n workInProgressRootExitStatus = RootIncomplete;\n workInProgressRootFatalError = null;\n workInProgressRootSkippedLanes = NoLanes;\n workInProgressRootUpdatedLanes = NoLanes;\n workInProgressRootPingedLanes = NoLanes;\n\n {\n spawnedWorkDuringRender = null;\n }\n\n {\n ReactStrictModeWarnings.discardPendingWarnings();\n }\n}\n\nfunction handleError(root, thrownValue) {\n do {\n var erroredWork = workInProgress;\n\n try {\n // Reset module-level state that was set during the render phase.\n resetContextDependencies();\n resetHooksAfterThrow();\n resetCurrentFiber(); // TODO: I found and added this missing line while investigating a\n // separate issue. Write a regression test using string refs.\n\n ReactCurrentOwner$2.current = null;\n\n if (erroredWork === null || erroredWork.return === null) {\n // Expected to be working on a non-root fiber. This is a fatal error\n // because there's no ancestor that can handle it; the root is\n // supposed to capture all errors that weren't caught by an error\n // boundary.\n workInProgressRootExitStatus = RootFatalErrored;\n workInProgressRootFatalError = thrownValue; // Set `workInProgress` to null. This represents advancing to the next\n // sibling, or the parent if there are no siblings. But since the root\n // has no siblings nor a parent, we set it to null. Usually this is\n // handled by `completeUnitOfWork` or `unwindWork`, but since we're\n // intentionally not calling those, we need set it here.\n // TODO: Consider calling `unwindWork` to pop the contexts.\n\n workInProgress = null;\n return;\n }\n\n if (enableProfilerTimer && erroredWork.mode & ProfileMode) {\n // Record the time spent rendering before an error was thrown. This\n // avoids inaccurate Profiler durations in the case of a\n // suspended render.\n stopProfilerTimerIfRunningAndRecordDelta(erroredWork, true);\n }\n\n throwException(root, erroredWork.return, erroredWork, thrownValue, workInProgressRootRenderLanes);\n completeUnitOfWork(erroredWork);\n } catch (yetAnotherThrownValue) {\n // Something in the return path also threw.\n thrownValue = yetAnotherThrownValue;\n\n if (workInProgress === erroredWork && erroredWork !== null) {\n // If this boundary has already errored, then we had trouble processing\n // the error. Bubble it to the next boundary.\n erroredWork = erroredWork.return;\n workInProgress = erroredWork;\n } else {\n erroredWork = workInProgress;\n }\n\n continue;\n } // Return to the normal work loop.\n\n\n return;\n } while (true);\n}\n\nfunction pushDispatcher() {\n var prevDispatcher = ReactCurrentDispatcher$2.current;\n ReactCurrentDispatcher$2.current = ContextOnlyDispatcher;\n\n if (prevDispatcher === null) {\n // The React isomorphic package does not include a default dispatcher.\n // Instead the first renderer will lazily attach one, in order to give\n // nicer error messages.\n return ContextOnlyDispatcher;\n } else {\n return prevDispatcher;\n }\n}\n\nfunction popDispatcher(prevDispatcher) {\n ReactCurrentDispatcher$2.current = prevDispatcher;\n}\n\nfunction pushInteractions(root) {\n {\n var prevInteractions = tracing.__interactionsRef.current;\n tracing.__interactionsRef.current = root.memoizedInteractions;\n return prevInteractions;\n }\n}\n\nfunction popInteractions(prevInteractions) {\n {\n tracing.__interactionsRef.current = prevInteractions;\n }\n}\n\nfunction markCommitTimeOfFallback() {\n globalMostRecentFallbackTime = now();\n}\nfunction markSkippedUpdateLanes(lane) {\n workInProgressRootSkippedLanes = mergeLanes(lane, workInProgressRootSkippedLanes);\n}\nfunction renderDidSuspend() {\n if (workInProgressRootExitStatus === RootIncomplete) {\n workInProgressRootExitStatus = RootSuspended;\n }\n}\nfunction renderDidSuspendDelayIfPossible() {\n if (workInProgressRootExitStatus === RootIncomplete || workInProgressRootExitStatus === RootSuspended) {\n workInProgressRootExitStatus = RootSuspendedWithDelay;\n } // Check if there are updates that we skipped tree that might have unblocked\n // this render.\n\n\n if (workInProgressRoot !== null && (includesNonIdleWork(workInProgressRootSkippedLanes) || includesNonIdleWork(workInProgressRootUpdatedLanes))) {\n // Mark the current render as suspended so that we switch to working on\n // the updates that were skipped. Usually we only suspend at the end of\n // the render phase.\n // TODO: We should probably always mark the root as suspended immediately\n // (inside this function), since by suspending at the end of the render\n // phase introduces a potential mistake where we suspend lanes that were\n // pinged or updated while we were rendering.\n markRootSuspended$1(workInProgressRoot, workInProgressRootRenderLanes);\n }\n}\nfunction renderDidError() {\n if (workInProgressRootExitStatus !== RootCompleted) {\n workInProgressRootExitStatus = RootErrored;\n }\n} // Called during render to determine if anything has suspended.\n// Returns false if we're not sure.\n\nfunction renderHasNotSuspendedYet() {\n // If something errored or completed, we can't really be sure,\n // so those are false.\n return workInProgressRootExitStatus === RootIncomplete;\n}\n\nfunction renderRootSync(root, lanes) {\n var prevExecutionContext = executionContext;\n executionContext |= RenderContext;\n var prevDispatcher = pushDispatcher(); // If the root or lanes have changed, throw out the existing stack\n // and prepare a fresh one. Otherwise we'll continue where we left off.\n\n if (workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes) {\n prepareFreshStack(root, lanes);\n startWorkOnPendingInteractions(root, lanes);\n }\n\n var prevInteractions = pushInteractions(root);\n\n do {\n try {\n workLoopSync();\n break;\n } catch (thrownValue) {\n handleError(root, thrownValue);\n }\n } while (true);\n\n resetContextDependencies();\n\n {\n popInteractions(prevInteractions);\n }\n\n executionContext = prevExecutionContext;\n popDispatcher(prevDispatcher);\n\n if (workInProgress !== null) {\n // This is a sync render, so we should have finished the whole tree.\n {\n {\n throw Error( \"Cannot commit an incomplete root. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n }\n\n\n workInProgressRoot = null;\n workInProgressRootRenderLanes = NoLanes;\n return workInProgressRootExitStatus;\n} // The work loop is an extremely hot path. Tell Closure not to inline it.\n\n/** @noinline */\n\n\nfunction workLoopSync() {\n // Already timed out, so perform work without checking if we need to yield.\n while (workInProgress !== null) {\n performUnitOfWork(workInProgress);\n }\n}\n\nfunction renderRootConcurrent(root, lanes) {\n var prevExecutionContext = executionContext;\n executionContext |= RenderContext;\n var prevDispatcher = pushDispatcher(); // If the root or lanes have changed, throw out the existing stack\n // and prepare a fresh one. Otherwise we'll continue where we left off.\n\n if (workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes) {\n resetRenderTimer();\n prepareFreshStack(root, lanes);\n startWorkOnPendingInteractions(root, lanes);\n }\n\n var prevInteractions = pushInteractions(root);\n\n do {\n try {\n workLoopConcurrent();\n break;\n } catch (thrownValue) {\n handleError(root, thrownValue);\n }\n } while (true);\n\n resetContextDependencies();\n\n {\n popInteractions(prevInteractions);\n }\n\n popDispatcher(prevDispatcher);\n executionContext = prevExecutionContext;\n\n\n if (workInProgress !== null) {\n\n return RootIncomplete;\n } else {\n\n\n workInProgressRoot = null;\n workInProgressRootRenderLanes = NoLanes; // Return the final exit status.\n\n return workInProgressRootExitStatus;\n }\n}\n/** @noinline */\n\n\nfunction workLoopConcurrent() {\n // Perform work until Scheduler asks us to yield\n while (workInProgress !== null && !shouldYield()) {\n performUnitOfWork(workInProgress);\n }\n}\n\nfunction performUnitOfWork(unitOfWork) {\n // The current, flushed, state of this fiber is the alternate. Ideally\n // nothing should rely on this, but relying on it here means that we don't\n // need an additional field on the work in progress.\n var current = unitOfWork.alternate;\n setCurrentFiber(unitOfWork);\n var next;\n\n if ( (unitOfWork.mode & ProfileMode) !== NoMode) {\n startProfilerTimer(unitOfWork);\n next = beginWork$1(current, unitOfWork, subtreeRenderLanes);\n stopProfilerTimerIfRunningAndRecordDelta(unitOfWork, true);\n } else {\n next = beginWork$1(current, unitOfWork, subtreeRenderLanes);\n }\n\n resetCurrentFiber();\n unitOfWork.memoizedProps = unitOfWork.pendingProps;\n\n if (next === null) {\n // If this doesn't spawn new work, complete the current work.\n completeUnitOfWork(unitOfWork);\n } else {\n workInProgress = next;\n }\n\n ReactCurrentOwner$2.current = null;\n}\n\nfunction completeUnitOfWork(unitOfWork) {\n // Attempt to complete the current unit of work, then move to the next\n // sibling. If there are no more siblings, return to the parent fiber.\n var completedWork = unitOfWork;\n\n do {\n // The current, flushed, state of this fiber is the alternate. Ideally\n // nothing should rely on this, but relying on it here means that we don't\n // need an additional field on the work in progress.\n var current = completedWork.alternate;\n var returnFiber = completedWork.return; // Check if the work completed or if something threw.\n\n if ((completedWork.flags & Incomplete) === NoFlags) {\n setCurrentFiber(completedWork);\n var next = void 0;\n\n if ( (completedWork.mode & ProfileMode) === NoMode) {\n next = completeWork(current, completedWork, subtreeRenderLanes);\n } else {\n startProfilerTimer(completedWork);\n next = completeWork(current, completedWork, subtreeRenderLanes); // Update render duration assuming we didn't error.\n\n stopProfilerTimerIfRunningAndRecordDelta(completedWork, false);\n }\n\n resetCurrentFiber();\n\n if (next !== null) {\n // Completing this fiber spawned new work. Work on that next.\n workInProgress = next;\n return;\n }\n\n resetChildLanes(completedWork);\n\n if (returnFiber !== null && // Do not append effects to parents if a sibling failed to complete\n (returnFiber.flags & Incomplete) === NoFlags) {\n // Append all the effects of the subtree and this fiber onto the effect\n // list of the parent. The completion order of the children affects the\n // side-effect order.\n if (returnFiber.firstEffect === null) {\n returnFiber.firstEffect = completedWork.firstEffect;\n }\n\n if (completedWork.lastEffect !== null) {\n if (returnFiber.lastEffect !== null) {\n returnFiber.lastEffect.nextEffect = completedWork.firstEffect;\n }\n\n returnFiber.lastEffect = completedWork.lastEffect;\n } // If this fiber had side-effects, we append it AFTER the children's\n // side-effects. We can perform certain side-effects earlier if needed,\n // by doing multiple passes over the effect list. We don't want to\n // schedule our own side-effect on our own list because if end up\n // reusing children we'll schedule this effect onto itself since we're\n // at the end.\n\n\n var flags = completedWork.flags; // Skip both NoWork and PerformedWork tags when creating the effect\n // list. PerformedWork effect is read by React DevTools but shouldn't be\n // committed.\n\n if (flags > PerformedWork) {\n if (returnFiber.lastEffect !== null) {\n returnFiber.lastEffect.nextEffect = completedWork;\n } else {\n returnFiber.firstEffect = completedWork;\n }\n\n returnFiber.lastEffect = completedWork;\n }\n }\n } else {\n // This fiber did not complete because something threw. Pop values off\n // the stack without entering the complete phase. If this is a boundary,\n // capture values if possible.\n var _next = unwindWork(completedWork); // Because this fiber did not complete, don't reset its expiration time.\n\n\n if (_next !== null) {\n // If completing this work spawned new work, do that next. We'll come\n // back here again.\n // Since we're restarting, remove anything that is not a host effect\n // from the effect tag.\n _next.flags &= HostEffectMask;\n workInProgress = _next;\n return;\n }\n\n if ( (completedWork.mode & ProfileMode) !== NoMode) {\n // Record the render duration for the fiber that errored.\n stopProfilerTimerIfRunningAndRecordDelta(completedWork, false); // Include the time spent working on failed children before continuing.\n\n var actualDuration = completedWork.actualDuration;\n var child = completedWork.child;\n\n while (child !== null) {\n actualDuration += child.actualDuration;\n child = child.sibling;\n }\n\n completedWork.actualDuration = actualDuration;\n }\n\n if (returnFiber !== null) {\n // Mark the parent fiber as incomplete and clear its effect list.\n returnFiber.firstEffect = returnFiber.lastEffect = null;\n returnFiber.flags |= Incomplete;\n }\n }\n\n var siblingFiber = completedWork.sibling;\n\n if (siblingFiber !== null) {\n // If there is more work to do in this returnFiber, do that next.\n workInProgress = siblingFiber;\n return;\n } // Otherwise, return to the parent\n\n\n completedWork = returnFiber; // Update the next thing we're working on in case something throws.\n\n workInProgress = completedWork;\n } while (completedWork !== null); // We've reached the root.\n\n\n if (workInProgressRootExitStatus === RootIncomplete) {\n workInProgressRootExitStatus = RootCompleted;\n }\n}\n\nfunction resetChildLanes(completedWork) {\n if ( // TODO: Move this check out of the hot path by moving `resetChildLanes`\n // to switch statement in `completeWork`.\n (completedWork.tag === LegacyHiddenComponent || completedWork.tag === OffscreenComponent) && completedWork.memoizedState !== null && !includesSomeLane(subtreeRenderLanes, OffscreenLane) && (completedWork.mode & ConcurrentMode) !== NoLanes) {\n // The children of this component are hidden. Don't bubble their\n // expiration times.\n return;\n }\n\n var newChildLanes = NoLanes; // Bubble up the earliest expiration time.\n\n if ( (completedWork.mode & ProfileMode) !== NoMode) {\n // In profiling mode, resetChildExpirationTime is also used to reset\n // profiler durations.\n var actualDuration = completedWork.actualDuration;\n var treeBaseDuration = completedWork.selfBaseDuration; // When a fiber is cloned, its actualDuration is reset to 0. This value will\n // only be updated if work is done on the fiber (i.e. it doesn't bailout).\n // When work is done, it should bubble to the parent's actualDuration. If\n // the fiber has not been cloned though, (meaning no work was done), then\n // this value will reflect the amount of time spent working on a previous\n // render. In that case it should not bubble. We determine whether it was\n // cloned by comparing the child pointer.\n\n var shouldBubbleActualDurations = completedWork.alternate === null || completedWork.child !== completedWork.alternate.child;\n var child = completedWork.child;\n\n while (child !== null) {\n newChildLanes = mergeLanes(newChildLanes, mergeLanes(child.lanes, child.childLanes));\n\n if (shouldBubbleActualDurations) {\n actualDuration += child.actualDuration;\n }\n\n treeBaseDuration += child.treeBaseDuration;\n child = child.sibling;\n }\n\n var isTimedOutSuspense = completedWork.tag === SuspenseComponent && completedWork.memoizedState !== null;\n\n if (isTimedOutSuspense) {\n // Don't count time spent in a timed out Suspense subtree as part of the base duration.\n var primaryChildFragment = completedWork.child;\n\n if (primaryChildFragment !== null) {\n treeBaseDuration -= primaryChildFragment.treeBaseDuration;\n }\n }\n\n completedWork.actualDuration = actualDuration;\n completedWork.treeBaseDuration = treeBaseDuration;\n } else {\n var _child = completedWork.child;\n\n while (_child !== null) {\n newChildLanes = mergeLanes(newChildLanes, mergeLanes(_child.lanes, _child.childLanes));\n _child = _child.sibling;\n }\n }\n\n completedWork.childLanes = newChildLanes;\n}\n\nfunction commitRoot(root) {\n var renderPriorityLevel = getCurrentPriorityLevel();\n runWithPriority$1(ImmediatePriority$1, commitRootImpl.bind(null, root, renderPriorityLevel));\n return null;\n}\n\nfunction commitRootImpl(root, renderPriorityLevel) {\n do {\n // `flushPassiveEffects` will call `flushSyncUpdateQueue` at the end, which\n // means `flushPassiveEffects` will sometimes result in additional\n // passive effects. So we need to keep flushing in a loop until there are\n // no more pending effects.\n // TODO: Might be better if `flushPassiveEffects` did not automatically\n // flush synchronous work at the end, to avoid factoring hazards like this.\n flushPassiveEffects();\n } while (rootWithPendingPassiveEffects !== null);\n\n flushRenderPhaseStrictModeWarningsInDEV();\n\n if (!((executionContext & (RenderContext | CommitContext)) === NoContext)) {\n {\n throw Error( \"Should not already be working.\" );\n }\n }\n\n var finishedWork = root.finishedWork;\n var lanes = root.finishedLanes;\n\n if (finishedWork === null) {\n\n return null;\n }\n\n root.finishedWork = null;\n root.finishedLanes = NoLanes;\n\n if (!(finishedWork !== root.current)) {\n {\n throw Error( \"Cannot commit the same tree as before. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n } // commitRoot never returns a continuation; it always finishes synchronously.\n // So we can clear these now to allow a new callback to be scheduled.\n\n\n root.callbackNode = null; // Update the first and last pending times on this root. The new first\n // pending time is whatever is left on the root fiber.\n\n var remainingLanes = mergeLanes(finishedWork.lanes, finishedWork.childLanes);\n markRootFinished(root, remainingLanes); // Clear already finished discrete updates in case that a later call of\n // `flushDiscreteUpdates` starts a useless render pass which may cancels\n // a scheduled timeout.\n\n if (rootsWithPendingDiscreteUpdates !== null) {\n if (!hasDiscreteLanes(remainingLanes) && rootsWithPendingDiscreteUpdates.has(root)) {\n rootsWithPendingDiscreteUpdates.delete(root);\n }\n }\n\n if (root === workInProgressRoot) {\n // We can reset these now that they are finished.\n workInProgressRoot = null;\n workInProgress = null;\n workInProgressRootRenderLanes = NoLanes;\n } // Get the list of effects.\n\n\n var firstEffect;\n\n if (finishedWork.flags > PerformedWork) {\n // A fiber's effect list consists only of its children, not itself. So if\n // the root has an effect, we need to add it to the end of the list. The\n // resulting list is the set that would belong to the root's parent, if it\n // had one; that is, all the effects in the tree including the root.\n if (finishedWork.lastEffect !== null) {\n finishedWork.lastEffect.nextEffect = finishedWork;\n firstEffect = finishedWork.firstEffect;\n } else {\n firstEffect = finishedWork;\n }\n } else {\n // There is no effect on the root.\n firstEffect = finishedWork.firstEffect;\n }\n\n if (firstEffect !== null) {\n\n var prevExecutionContext = executionContext;\n executionContext |= CommitContext;\n var prevInteractions = pushInteractions(root); // Reset this to null before calling lifecycles\n\n ReactCurrentOwner$2.current = null; // The commit phase is broken into several sub-phases. We do a separate pass\n // of the effect list for each phase: all mutation effects come before all\n // layout effects, and so on.\n // The first phase a \"before mutation\" phase. We use this phase to read the\n // state of the host tree right before we mutate it. This is where\n // getSnapshotBeforeUpdate is called.\n\n focusedInstanceHandle = prepareForCommit(root.containerInfo);\n shouldFireAfterActiveInstanceBlur = false;\n nextEffect = firstEffect;\n\n do {\n {\n invokeGuardedCallback(null, commitBeforeMutationEffects, null);\n\n if (hasCaughtError()) {\n if (!(nextEffect !== null)) {\n {\n throw Error( \"Should be working on an effect.\" );\n }\n }\n\n var error = clearCaughtError();\n captureCommitPhaseError(nextEffect, error);\n nextEffect = nextEffect.nextEffect;\n }\n }\n } while (nextEffect !== null); // We no longer need to track the active instance fiber\n\n\n focusedInstanceHandle = null;\n\n {\n // Mark the current commit time to be shared by all Profilers in this\n // batch. This enables them to be grouped later.\n recordCommitTime();\n } // The next phase is the mutation phase, where we mutate the host tree.\n\n\n nextEffect = firstEffect;\n\n do {\n {\n invokeGuardedCallback(null, commitMutationEffects, null, root, renderPriorityLevel);\n\n if (hasCaughtError()) {\n if (!(nextEffect !== null)) {\n {\n throw Error( \"Should be working on an effect.\" );\n }\n }\n\n var _error = clearCaughtError();\n\n captureCommitPhaseError(nextEffect, _error);\n nextEffect = nextEffect.nextEffect;\n }\n }\n } while (nextEffect !== null);\n\n resetAfterCommit(root.containerInfo); // The work-in-progress tree is now the current tree. This must come after\n // the mutation phase, so that the previous tree is still current during\n // componentWillUnmount, but before the layout phase, so that the finished\n // work is current during componentDidMount/Update.\n\n root.current = finishedWork; // The next phase is the layout phase, where we call effects that read\n // the host tree after it's been mutated. The idiomatic use case for this is\n // layout, but class component lifecycles also fire here for legacy reasons.\n\n nextEffect = firstEffect;\n\n do {\n {\n invokeGuardedCallback(null, commitLayoutEffects, null, root, lanes);\n\n if (hasCaughtError()) {\n if (!(nextEffect !== null)) {\n {\n throw Error( \"Should be working on an effect.\" );\n }\n }\n\n var _error2 = clearCaughtError();\n\n captureCommitPhaseError(nextEffect, _error2);\n nextEffect = nextEffect.nextEffect;\n }\n }\n } while (nextEffect !== null);\n\n nextEffect = null; // Tell Scheduler to yield at the end of the frame, so the browser has an\n // opportunity to paint.\n\n requestPaint();\n\n {\n popInteractions(prevInteractions);\n }\n\n executionContext = prevExecutionContext;\n } else {\n // No effects.\n root.current = finishedWork; // Measure these anyway so the flamegraph explicitly shows that there were\n // no effects.\n // TODO: Maybe there's a better way to report this.\n\n {\n recordCommitTime();\n }\n }\n\n var rootDidHavePassiveEffects = rootDoesHavePassiveEffects;\n\n if (rootDoesHavePassiveEffects) {\n // This commit has passive effects. Stash a reference to them. But don't\n // schedule a callback until after flushing layout work.\n rootDoesHavePassiveEffects = false;\n rootWithPendingPassiveEffects = root;\n pendingPassiveEffectsLanes = lanes;\n pendingPassiveEffectsRenderPriority = renderPriorityLevel;\n } else {\n // We are done with the effect chain at this point so let's clear the\n // nextEffect pointers to assist with GC. If we have passive effects, we'll\n // clear this in flushPassiveEffects.\n nextEffect = firstEffect;\n\n while (nextEffect !== null) {\n var nextNextEffect = nextEffect.nextEffect;\n nextEffect.nextEffect = null;\n\n if (nextEffect.flags & Deletion) {\n detachFiberAfterEffects(nextEffect);\n }\n\n nextEffect = nextNextEffect;\n }\n } // Read this again, since an effect might have updated it\n\n\n remainingLanes = root.pendingLanes; // Check if there's remaining work on this root\n\n if (remainingLanes !== NoLanes) {\n {\n if (spawnedWorkDuringRender !== null) {\n var expirationTimes = spawnedWorkDuringRender;\n spawnedWorkDuringRender = null;\n\n for (var i = 0; i < expirationTimes.length; i++) {\n scheduleInteractions(root, expirationTimes[i], root.memoizedInteractions);\n }\n }\n\n schedulePendingInteractions(root, remainingLanes);\n }\n } else {\n // If there's no remaining work, we can clear the set of already failed\n // error boundaries.\n legacyErrorBoundariesThatAlreadyFailed = null;\n }\n\n {\n if (!rootDidHavePassiveEffects) {\n // If there are no passive effects, then we can complete the pending interactions.\n // Otherwise, we'll wait until after the passive effects are flushed.\n // Wait to do this until after remaining work has been scheduled,\n // so that we don't prematurely signal complete for interactions when there's e.g. hidden work.\n finishPendingInteractions(root, lanes);\n }\n }\n\n if (remainingLanes === SyncLane) {\n // Count the number of times the root synchronously re-renders without\n // finishing. If there are too many, it indicates an infinite update loop.\n if (root === rootWithNestedUpdates) {\n nestedUpdateCount++;\n } else {\n nestedUpdateCount = 0;\n rootWithNestedUpdates = root;\n }\n } else {\n nestedUpdateCount = 0;\n }\n\n onCommitRoot(finishedWork.stateNode, renderPriorityLevel);\n\n {\n onCommitRoot$1();\n } // Always call this before exiting `commitRoot`, to ensure that any\n // additional work on this root is scheduled.\n\n\n ensureRootIsScheduled(root, now());\n\n if (hasUncaughtError) {\n hasUncaughtError = false;\n var _error3 = firstUncaughtError;\n firstUncaughtError = null;\n throw _error3;\n }\n\n if ((executionContext & LegacyUnbatchedContext) !== NoContext) {\n // a ReactDOM.render-ed root inside of batchedUpdates. The commit fired\n // synchronously, but layout updates should be deferred until the end\n // of the batch.\n\n\n return null;\n } // If layout work was scheduled, flush it now.\n\n\n flushSyncCallbackQueue();\n\n return null;\n}\n\nfunction commitBeforeMutationEffects() {\n while (nextEffect !== null) {\n var current = nextEffect.alternate;\n\n if (!shouldFireAfterActiveInstanceBlur && focusedInstanceHandle !== null) {\n if ((nextEffect.flags & Deletion) !== NoFlags) {\n if (doesFiberContain(nextEffect, focusedInstanceHandle)) {\n shouldFireAfterActiveInstanceBlur = true;\n }\n } else {\n // TODO: Move this out of the hot path using a dedicated effect tag.\n if (nextEffect.tag === SuspenseComponent && isSuspenseBoundaryBeingHidden(current, nextEffect) && doesFiberContain(nextEffect, focusedInstanceHandle)) {\n shouldFireAfterActiveInstanceBlur = true;\n }\n }\n }\n\n var flags = nextEffect.flags;\n\n if ((flags & Snapshot) !== NoFlags) {\n setCurrentFiber(nextEffect);\n commitBeforeMutationLifeCycles(current, nextEffect);\n resetCurrentFiber();\n }\n\n if ((flags & Passive) !== NoFlags) {\n // If there are passive effects, schedule a callback to flush at\n // the earliest opportunity.\n if (!rootDoesHavePassiveEffects) {\n rootDoesHavePassiveEffects = true;\n scheduleCallback(NormalPriority$1, function () {\n flushPassiveEffects();\n return null;\n });\n }\n }\n\n nextEffect = nextEffect.nextEffect;\n }\n}\n\nfunction commitMutationEffects(root, renderPriorityLevel) {\n // TODO: Should probably move the bulk of this function to commitWork.\n while (nextEffect !== null) {\n setCurrentFiber(nextEffect);\n var flags = nextEffect.flags;\n\n if (flags & ContentReset) {\n commitResetTextContent(nextEffect);\n }\n\n if (flags & Ref) {\n var current = nextEffect.alternate;\n\n if (current !== null) {\n commitDetachRef(current);\n }\n } // The following switch statement is only concerned about placement,\n // updates, and deletions. To avoid needing to add a case for every possible\n // bitmap value, we remove the secondary effects from the effect tag and\n // switch on that value.\n\n\n var primaryFlags = flags & (Placement | Update | Deletion | Hydrating);\n\n switch (primaryFlags) {\n case Placement:\n {\n commitPlacement(nextEffect); // Clear the \"placement\" from effect tag so that we know that this is\n // inserted, before any life-cycles like componentDidMount gets called.\n // TODO: findDOMNode doesn't rely on this any more but isMounted does\n // and isMounted is deprecated anyway so we should be able to kill this.\n\n nextEffect.flags &= ~Placement;\n break;\n }\n\n case PlacementAndUpdate:\n {\n // Placement\n commitPlacement(nextEffect); // Clear the \"placement\" from effect tag so that we know that this is\n // inserted, before any life-cycles like componentDidMount gets called.\n\n nextEffect.flags &= ~Placement; // Update\n\n var _current = nextEffect.alternate;\n commitWork(_current, nextEffect);\n break;\n }\n\n case Hydrating:\n {\n nextEffect.flags &= ~Hydrating;\n break;\n }\n\n case HydratingAndUpdate:\n {\n nextEffect.flags &= ~Hydrating; // Update\n\n var _current2 = nextEffect.alternate;\n commitWork(_current2, nextEffect);\n break;\n }\n\n case Update:\n {\n var _current3 = nextEffect.alternate;\n commitWork(_current3, nextEffect);\n break;\n }\n\n case Deletion:\n {\n commitDeletion(root, nextEffect);\n break;\n }\n }\n\n resetCurrentFiber();\n nextEffect = nextEffect.nextEffect;\n }\n}\n\nfunction commitLayoutEffects(root, committedLanes) {\n\n\n while (nextEffect !== null) {\n setCurrentFiber(nextEffect);\n var flags = nextEffect.flags;\n\n if (flags & (Update | Callback)) {\n var current = nextEffect.alternate;\n commitLifeCycles(root, current, nextEffect);\n }\n\n {\n if (flags & Ref) {\n commitAttachRef(nextEffect);\n }\n }\n\n resetCurrentFiber();\n nextEffect = nextEffect.nextEffect;\n }\n}\n\nfunction flushPassiveEffects() {\n // Returns whether passive effects were flushed.\n if (pendingPassiveEffectsRenderPriority !== NoPriority$1) {\n var priorityLevel = pendingPassiveEffectsRenderPriority > NormalPriority$1 ? NormalPriority$1 : pendingPassiveEffectsRenderPriority;\n pendingPassiveEffectsRenderPriority = NoPriority$1;\n\n {\n return runWithPriority$1(priorityLevel, flushPassiveEffectsImpl);\n }\n }\n\n return false;\n}\nfunction enqueuePendingPassiveHookEffectMount(fiber, effect) {\n pendingPassiveHookEffectsMount.push(effect, fiber);\n\n if (!rootDoesHavePassiveEffects) {\n rootDoesHavePassiveEffects = true;\n scheduleCallback(NormalPriority$1, function () {\n flushPassiveEffects();\n return null;\n });\n }\n}\nfunction enqueuePendingPassiveHookEffectUnmount(fiber, effect) {\n pendingPassiveHookEffectsUnmount.push(effect, fiber);\n\n {\n fiber.flags |= PassiveUnmountPendingDev;\n var alternate = fiber.alternate;\n\n if (alternate !== null) {\n alternate.flags |= PassiveUnmountPendingDev;\n }\n }\n\n if (!rootDoesHavePassiveEffects) {\n rootDoesHavePassiveEffects = true;\n scheduleCallback(NormalPriority$1, function () {\n flushPassiveEffects();\n return null;\n });\n }\n}\n\nfunction invokePassiveEffectCreate(effect) {\n var create = effect.create;\n effect.destroy = create();\n}\n\nfunction flushPassiveEffectsImpl() {\n if (rootWithPendingPassiveEffects === null) {\n return false;\n }\n\n var root = rootWithPendingPassiveEffects;\n var lanes = pendingPassiveEffectsLanes;\n rootWithPendingPassiveEffects = null;\n pendingPassiveEffectsLanes = NoLanes;\n\n if (!((executionContext & (RenderContext | CommitContext)) === NoContext)) {\n {\n throw Error( \"Cannot flush passive effects while already rendering.\" );\n }\n }\n\n {\n isFlushingPassiveEffects = true;\n }\n\n var prevExecutionContext = executionContext;\n executionContext |= CommitContext;\n var prevInteractions = pushInteractions(root); // It's important that ALL pending passive effect destroy functions are called\n // before ANY passive effect create functions are called.\n // Otherwise effects in sibling components might interfere with each other.\n // e.g. a destroy function in one component may unintentionally override a ref\n // value set by a create function in another component.\n // Layout effects have the same constraint.\n // First pass: Destroy stale passive effects.\n\n var unmountEffects = pendingPassiveHookEffectsUnmount;\n pendingPassiveHookEffectsUnmount = [];\n\n for (var i = 0; i < unmountEffects.length; i += 2) {\n var _effect = unmountEffects[i];\n var fiber = unmountEffects[i + 1];\n var destroy = _effect.destroy;\n _effect.destroy = undefined;\n\n {\n fiber.flags &= ~PassiveUnmountPendingDev;\n var alternate = fiber.alternate;\n\n if (alternate !== null) {\n alternate.flags &= ~PassiveUnmountPendingDev;\n }\n }\n\n if (typeof destroy === 'function') {\n {\n setCurrentFiber(fiber);\n\n {\n invokeGuardedCallback(null, destroy, null);\n }\n\n if (hasCaughtError()) {\n if (!(fiber !== null)) {\n {\n throw Error( \"Should be working on an effect.\" );\n }\n }\n\n var error = clearCaughtError();\n captureCommitPhaseError(fiber, error);\n }\n\n resetCurrentFiber();\n }\n }\n } // Second pass: Create new passive effects.\n\n\n var mountEffects = pendingPassiveHookEffectsMount;\n pendingPassiveHookEffectsMount = [];\n\n for (var _i = 0; _i < mountEffects.length; _i += 2) {\n var _effect2 = mountEffects[_i];\n var _fiber = mountEffects[_i + 1];\n\n {\n setCurrentFiber(_fiber);\n\n {\n invokeGuardedCallback(null, invokePassiveEffectCreate, null, _effect2);\n }\n\n if (hasCaughtError()) {\n if (!(_fiber !== null)) {\n {\n throw Error( \"Should be working on an effect.\" );\n }\n }\n\n var _error4 = clearCaughtError();\n\n captureCommitPhaseError(_fiber, _error4);\n }\n\n resetCurrentFiber();\n }\n } // Note: This currently assumes there are no passive effects on the root fiber\n // because the root is not part of its own effect list.\n // This could change in the future.\n\n\n var effect = root.current.firstEffect;\n\n while (effect !== null) {\n var nextNextEffect = effect.nextEffect; // Remove nextEffect pointer to assist GC\n\n effect.nextEffect = null;\n\n if (effect.flags & Deletion) {\n detachFiberAfterEffects(effect);\n }\n\n effect = nextNextEffect;\n }\n\n {\n popInteractions(prevInteractions);\n finishPendingInteractions(root, lanes);\n }\n\n {\n isFlushingPassiveEffects = false;\n }\n\n executionContext = prevExecutionContext;\n flushSyncCallbackQueue(); // If additional passive effects were scheduled, increment a counter. If this\n // exceeds the limit, we'll fire a warning.\n\n nestedPassiveUpdateCount = rootWithPendingPassiveEffects === null ? 0 : nestedPassiveUpdateCount + 1;\n return true;\n}\n\nfunction isAlreadyFailedLegacyErrorBoundary(instance) {\n return legacyErrorBoundariesThatAlreadyFailed !== null && legacyErrorBoundariesThatAlreadyFailed.has(instance);\n}\nfunction markLegacyErrorBoundaryAsFailed(instance) {\n if (legacyErrorBoundariesThatAlreadyFailed === null) {\n legacyErrorBoundariesThatAlreadyFailed = new Set([instance]);\n } else {\n legacyErrorBoundariesThatAlreadyFailed.add(instance);\n }\n}\n\nfunction prepareToThrowUncaughtError(error) {\n if (!hasUncaughtError) {\n hasUncaughtError = true;\n firstUncaughtError = error;\n }\n}\n\nvar onUncaughtError = prepareToThrowUncaughtError;\n\nfunction captureCommitPhaseErrorOnRoot(rootFiber, sourceFiber, error) {\n var errorInfo = createCapturedValue(error, sourceFiber);\n var update = createRootErrorUpdate(rootFiber, errorInfo, SyncLane);\n enqueueUpdate(rootFiber, update);\n var eventTime = requestEventTime();\n var root = markUpdateLaneFromFiberToRoot(rootFiber, SyncLane);\n\n if (root !== null) {\n markRootUpdated(root, SyncLane, eventTime);\n ensureRootIsScheduled(root, eventTime);\n schedulePendingInteractions(root, SyncLane);\n }\n}\n\nfunction captureCommitPhaseError(sourceFiber, error) {\n if (sourceFiber.tag === HostRoot) {\n // Error was thrown at the root. There is no parent, so the root\n // itself should capture it.\n captureCommitPhaseErrorOnRoot(sourceFiber, sourceFiber, error);\n return;\n }\n\n var fiber = sourceFiber.return;\n\n while (fiber !== null) {\n if (fiber.tag === HostRoot) {\n captureCommitPhaseErrorOnRoot(fiber, sourceFiber, error);\n return;\n } else if (fiber.tag === ClassComponent) {\n var ctor = fiber.type;\n var instance = fiber.stateNode;\n\n if (typeof ctor.getDerivedStateFromError === 'function' || typeof instance.componentDidCatch === 'function' && !isAlreadyFailedLegacyErrorBoundary(instance)) {\n var errorInfo = createCapturedValue(error, sourceFiber);\n var update = createClassErrorUpdate(fiber, errorInfo, SyncLane);\n enqueueUpdate(fiber, update);\n var eventTime = requestEventTime();\n var root = markUpdateLaneFromFiberToRoot(fiber, SyncLane);\n\n if (root !== null) {\n markRootUpdated(root, SyncLane, eventTime);\n ensureRootIsScheduled(root, eventTime);\n schedulePendingInteractions(root, SyncLane);\n } else {\n // This component has already been unmounted.\n // We can't schedule any follow up work for the root because the fiber is already unmounted,\n // but we can still call the log-only boundary so the error isn't swallowed.\n //\n // TODO This is only a temporary bandaid for the old reconciler fork.\n // We can delete this special case once the new fork is merged.\n if (typeof instance.componentDidCatch === 'function' && !isAlreadyFailedLegacyErrorBoundary(instance)) {\n try {\n instance.componentDidCatch(error, errorInfo);\n } catch (errorToIgnore) {// TODO Ignore this error? Rethrow it?\n // This is kind of an edge case.\n }\n }\n }\n\n return;\n }\n }\n\n fiber = fiber.return;\n }\n}\nfunction pingSuspendedRoot(root, wakeable, pingedLanes) {\n var pingCache = root.pingCache;\n\n if (pingCache !== null) {\n // The wakeable resolved, so we no longer need to memoize, because it will\n // never be thrown again.\n pingCache.delete(wakeable);\n }\n\n var eventTime = requestEventTime();\n markRootPinged(root, pingedLanes);\n\n if (workInProgressRoot === root && isSubsetOfLanes(workInProgressRootRenderLanes, pingedLanes)) {\n // Received a ping at the same priority level at which we're currently\n // rendering. We might want to restart this render. This should mirror\n // the logic of whether or not a root suspends once it completes.\n // TODO: If we're rendering sync either due to Sync, Batched or expired,\n // we should probably never restart.\n // If we're suspended with delay, or if it's a retry, we'll always suspend\n // so we can always restart.\n if (workInProgressRootExitStatus === RootSuspendedWithDelay || workInProgressRootExitStatus === RootSuspended && includesOnlyRetries(workInProgressRootRenderLanes) && now() - globalMostRecentFallbackTime < FALLBACK_THROTTLE_MS) {\n // Restart from the root.\n prepareFreshStack(root, NoLanes);\n } else {\n // Even though we can't restart right now, we might get an\n // opportunity later. So we mark this render as having a ping.\n workInProgressRootPingedLanes = mergeLanes(workInProgressRootPingedLanes, pingedLanes);\n }\n }\n\n ensureRootIsScheduled(root, eventTime);\n schedulePendingInteractions(root, pingedLanes);\n}\n\nfunction retryTimedOutBoundary(boundaryFiber, retryLane) {\n // The boundary fiber (a Suspense component or SuspenseList component)\n // previously was rendered in its fallback state. One of the promises that\n // suspended it has resolved, which means at least part of the tree was\n // likely unblocked. Try rendering again, at a new expiration time.\n if (retryLane === NoLane) {\n retryLane = requestRetryLane(boundaryFiber);\n } // TODO: Special case idle priority?\n\n\n var eventTime = requestEventTime();\n var root = markUpdateLaneFromFiberToRoot(boundaryFiber, retryLane);\n\n if (root !== null) {\n markRootUpdated(root, retryLane, eventTime);\n ensureRootIsScheduled(root, eventTime);\n schedulePendingInteractions(root, retryLane);\n }\n}\nfunction resolveRetryWakeable(boundaryFiber, wakeable) {\n var retryLane = NoLane; // Default\n\n var retryCache;\n\n {\n retryCache = boundaryFiber.stateNode;\n }\n\n if (retryCache !== null) {\n // The wakeable resolved, so we no longer need to memoize, because it will\n // never be thrown again.\n retryCache.delete(wakeable);\n }\n\n retryTimedOutBoundary(boundaryFiber, retryLane);\n} // Computes the next Just Noticeable Difference (JND) boundary.\n// The theory is that a person can't tell the difference between small differences in time.\n// Therefore, if we wait a bit longer than necessary that won't translate to a noticeable\n// difference in the experience. However, waiting for longer might mean that we can avoid\n// showing an intermediate loading state. The longer we have already waited, the harder it\n// is to tell small differences in time. Therefore, the longer we've already waited,\n// the longer we can wait additionally. At some point we have to give up though.\n// We pick a train model where the next boundary commits at a consistent schedule.\n// These particular numbers are vague estimates. We expect to adjust them based on research.\n\nfunction jnd(timeElapsed) {\n return timeElapsed < 120 ? 120 : timeElapsed < 480 ? 480 : timeElapsed < 1080 ? 1080 : timeElapsed < 1920 ? 1920 : timeElapsed < 3000 ? 3000 : timeElapsed < 4320 ? 4320 : ceil(timeElapsed / 1960) * 1960;\n}\n\nfunction checkForNestedUpdates() {\n if (nestedUpdateCount > NESTED_UPDATE_LIMIT) {\n nestedUpdateCount = 0;\n rootWithNestedUpdates = null;\n\n {\n {\n throw Error( \"Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.\" );\n }\n }\n }\n\n {\n if (nestedPassiveUpdateCount > NESTED_PASSIVE_UPDATE_LIMIT) {\n nestedPassiveUpdateCount = 0;\n\n error('Maximum update depth exceeded. This can happen when a component ' + \"calls setState inside useEffect, but useEffect either doesn't \" + 'have a dependency array, or one of the dependencies changes on ' + 'every render.');\n }\n }\n}\n\nfunction flushRenderPhaseStrictModeWarningsInDEV() {\n {\n ReactStrictModeWarnings.flushLegacyContextWarning();\n\n {\n ReactStrictModeWarnings.flushPendingUnsafeLifecycleWarnings();\n }\n }\n}\n\nvar didWarnStateUpdateForNotYetMountedComponent = null;\n\nfunction warnAboutUpdateOnNotYetMountedFiberInDEV(fiber) {\n {\n if ((executionContext & RenderContext) !== NoContext) {\n // We let the other warning about render phase updates deal with this one.\n return;\n }\n\n if (!(fiber.mode & (BlockingMode | ConcurrentMode))) {\n return;\n }\n\n var tag = fiber.tag;\n\n if (tag !== IndeterminateComponent && tag !== HostRoot && tag !== ClassComponent && tag !== FunctionComponent && tag !== ForwardRef && tag !== MemoComponent && tag !== SimpleMemoComponent && tag !== Block) {\n // Only warn for user-defined components, not internal ones like Suspense.\n return;\n } // We show the whole stack but dedupe on the top component's name because\n // the problematic code almost always lies inside that component.\n\n\n var componentName = getComponentName(fiber.type) || 'ReactComponent';\n\n if (didWarnStateUpdateForNotYetMountedComponent !== null) {\n if (didWarnStateUpdateForNotYetMountedComponent.has(componentName)) {\n return;\n }\n\n didWarnStateUpdateForNotYetMountedComponent.add(componentName);\n } else {\n didWarnStateUpdateForNotYetMountedComponent = new Set([componentName]);\n }\n\n var previousFiber = current;\n\n try {\n setCurrentFiber(fiber);\n\n error(\"Can't perform a React state update on a component that hasn't mounted yet. \" + 'This indicates that you have a side-effect in your render function that ' + 'asynchronously later calls tries to update the component. Move this work to ' + 'useEffect instead.');\n } finally {\n if (previousFiber) {\n setCurrentFiber(fiber);\n } else {\n resetCurrentFiber();\n }\n }\n }\n}\n\nvar didWarnStateUpdateForUnmountedComponent = null;\n\nfunction warnAboutUpdateOnUnmountedFiberInDEV(fiber) {\n {\n var tag = fiber.tag;\n\n if (tag !== HostRoot && tag !== ClassComponent && tag !== FunctionComponent && tag !== ForwardRef && tag !== MemoComponent && tag !== SimpleMemoComponent && tag !== Block) {\n // Only warn for user-defined components, not internal ones like Suspense.\n return;\n } // If there are pending passive effects unmounts for this Fiber,\n // we can assume that they would have prevented this update.\n\n\n if ((fiber.flags & PassiveUnmountPendingDev) !== NoFlags) {\n return;\n } // We show the whole stack but dedupe on the top component's name because\n // the problematic code almost always lies inside that component.\n\n\n var componentName = getComponentName(fiber.type) || 'ReactComponent';\n\n if (didWarnStateUpdateForUnmountedComponent !== null) {\n if (didWarnStateUpdateForUnmountedComponent.has(componentName)) {\n return;\n }\n\n didWarnStateUpdateForUnmountedComponent.add(componentName);\n } else {\n didWarnStateUpdateForUnmountedComponent = new Set([componentName]);\n }\n\n if (isFlushingPassiveEffects) ; else {\n var previousFiber = current;\n\n try {\n setCurrentFiber(fiber);\n\n error(\"Can't perform a React state update on an unmounted component. This \" + 'is a no-op, but it indicates a memory leak in your application. To ' + 'fix, cancel all subscriptions and asynchronous tasks in %s.', tag === ClassComponent ? 'the componentWillUnmount method' : 'a useEffect cleanup function');\n } finally {\n if (previousFiber) {\n setCurrentFiber(fiber);\n } else {\n resetCurrentFiber();\n }\n }\n }\n }\n}\n\nvar beginWork$1;\n\n{\n var dummyFiber = null;\n\n beginWork$1 = function (current, unitOfWork, lanes) {\n // If a component throws an error, we replay it again in a synchronously\n // dispatched event, so that the debugger will treat it as an uncaught\n // error See ReactErrorUtils for more information.\n // Before entering the begin phase, copy the work-in-progress onto a dummy\n // fiber. If beginWork throws, we'll use this to reset the state.\n var originalWorkInProgressCopy = assignFiberPropertiesInDEV(dummyFiber, unitOfWork);\n\n try {\n return beginWork(current, unitOfWork, lanes);\n } catch (originalError) {\n if (originalError !== null && typeof originalError === 'object' && typeof originalError.then === 'function') {\n // Don't replay promises. Treat everything else like an error.\n throw originalError;\n } // Keep this code in sync with handleError; any changes here must have\n // corresponding changes there.\n\n\n resetContextDependencies();\n resetHooksAfterThrow(); // Don't reset current debug fiber, since we're about to work on the\n // same fiber again.\n // Unwind the failed stack frame\n\n unwindInterruptedWork(unitOfWork); // Restore the original properties of the fiber.\n\n assignFiberPropertiesInDEV(unitOfWork, originalWorkInProgressCopy);\n\n if ( unitOfWork.mode & ProfileMode) {\n // Reset the profiler timer.\n startProfilerTimer(unitOfWork);\n } // Run beginWork again.\n\n\n invokeGuardedCallback(null, beginWork, null, current, unitOfWork, lanes);\n\n if (hasCaughtError()) {\n var replayError = clearCaughtError(); // `invokeGuardedCallback` sometimes sets an expando `_suppressLogging`.\n // Rethrow this error instead of the original one.\n\n throw replayError;\n } else {\n // This branch is reachable if the render phase is impure.\n throw originalError;\n }\n }\n };\n}\n\nvar didWarnAboutUpdateInRender = false;\nvar didWarnAboutUpdateInRenderForAnotherComponent;\n\n{\n didWarnAboutUpdateInRenderForAnotherComponent = new Set();\n}\n\nfunction warnAboutRenderPhaseUpdatesInDEV(fiber) {\n {\n if (isRendering && (executionContext & RenderContext) !== NoContext && !getIsUpdatingOpaqueValueInRenderPhaseInDEV()) {\n switch (fiber.tag) {\n case FunctionComponent:\n case ForwardRef:\n case SimpleMemoComponent:\n {\n var renderingComponentName = workInProgress && getComponentName(workInProgress.type) || 'Unknown'; // Dedupe by the rendering component because it's the one that needs to be fixed.\n\n var dedupeKey = renderingComponentName;\n\n if (!didWarnAboutUpdateInRenderForAnotherComponent.has(dedupeKey)) {\n didWarnAboutUpdateInRenderForAnotherComponent.add(dedupeKey);\n var setStateComponentName = getComponentName(fiber.type) || 'Unknown';\n\n error('Cannot update a component (`%s`) while rendering a ' + 'different component (`%s`). To locate the bad setState() call inside `%s`, ' + 'follow the stack trace as described in https://reactjs.org/link/setstate-in-render', setStateComponentName, renderingComponentName, renderingComponentName);\n }\n\n break;\n }\n\n case ClassComponent:\n {\n if (!didWarnAboutUpdateInRender) {\n error('Cannot update during an existing state transition (such as ' + 'within `render`). Render methods should be a pure ' + 'function of props and state.');\n\n didWarnAboutUpdateInRender = true;\n }\n\n break;\n }\n }\n }\n }\n} // a 'shared' variable that changes when act() opens/closes in tests.\n\n\nvar IsThisRendererActing = {\n current: false\n};\nfunction warnIfNotScopedWithMatchingAct(fiber) {\n {\n if ( IsSomeRendererActing.current === true && IsThisRendererActing.current !== true) {\n var previousFiber = current;\n\n try {\n setCurrentFiber(fiber);\n\n error(\"It looks like you're using the wrong act() around your test interactions.\\n\" + 'Be sure to use the matching version of act() corresponding to your renderer:\\n\\n' + '// for react-dom:\\n' + // Break up imports to avoid accidentally parsing them as dependencies.\n 'import {act} fr' + \"om 'react-dom/test-utils';\\n\" + '// ...\\n' + 'act(() => ...);\\n\\n' + '// for react-test-renderer:\\n' + // Break up imports to avoid accidentally parsing them as dependencies.\n 'import TestRenderer fr' + \"om react-test-renderer';\\n\" + 'const {act} = TestRenderer;\\n' + '// ...\\n' + 'act(() => ...);');\n } finally {\n if (previousFiber) {\n setCurrentFiber(fiber);\n } else {\n resetCurrentFiber();\n }\n }\n }\n }\n}\nfunction warnIfNotCurrentlyActingEffectsInDEV(fiber) {\n {\n if ( (fiber.mode & StrictMode) !== NoMode && IsSomeRendererActing.current === false && IsThisRendererActing.current === false) {\n error('An update to %s ran an effect, but was not wrapped in act(...).\\n\\n' + 'When testing, code that causes React state updates should be ' + 'wrapped into act(...):\\n\\n' + 'act(() => {\\n' + ' /* fire events that update state */\\n' + '});\\n' + '/* assert on the output */\\n\\n' + \"This ensures that you're testing the behavior the user would see \" + 'in the browser.' + ' Learn more at https://reactjs.org/link/wrap-tests-with-act', getComponentName(fiber.type));\n }\n }\n}\n\nfunction warnIfNotCurrentlyActingUpdatesInDEV(fiber) {\n {\n if ( executionContext === NoContext && IsSomeRendererActing.current === false && IsThisRendererActing.current === false) {\n var previousFiber = current;\n\n try {\n setCurrentFiber(fiber);\n\n error('An update to %s inside a test was not wrapped in act(...).\\n\\n' + 'When testing, code that causes React state updates should be ' + 'wrapped into act(...):\\n\\n' + 'act(() => {\\n' + ' /* fire events that update state */\\n' + '});\\n' + '/* assert on the output */\\n\\n' + \"This ensures that you're testing the behavior the user would see \" + 'in the browser.' + ' Learn more at https://reactjs.org/link/wrap-tests-with-act', getComponentName(fiber.type));\n } finally {\n if (previousFiber) {\n setCurrentFiber(fiber);\n } else {\n resetCurrentFiber();\n }\n }\n }\n }\n}\n\nvar warnIfNotCurrentlyActingUpdatesInDev = warnIfNotCurrentlyActingUpdatesInDEV; // In tests, we want to enforce a mocked scheduler.\n\nvar didWarnAboutUnmockedScheduler = false; // TODO Before we release concurrent mode, revisit this and decide whether a mocked\n// scheduler is the actual recommendation. The alternative could be a testing build,\n// a new lib, or whatever; we dunno just yet. This message is for early adopters\n// to get their tests right.\n\nfunction warnIfUnmockedScheduler(fiber) {\n {\n if (didWarnAboutUnmockedScheduler === false && Scheduler.unstable_flushAllWithoutAsserting === undefined) {\n if (fiber.mode & BlockingMode || fiber.mode & ConcurrentMode) {\n didWarnAboutUnmockedScheduler = true;\n\n error('In Concurrent or Sync modes, the \"scheduler\" module needs to be mocked ' + 'to guarantee consistent behaviour across tests and browsers. ' + 'For example, with jest: \\n' + // Break up requires to avoid accidentally parsing them as dependencies.\n \"jest.mock('scheduler', () => require\" + \"('scheduler/unstable_mock'));\\n\\n\" + 'For more info, visit https://reactjs.org/link/mock-scheduler');\n }\n }\n }\n}\n\nfunction computeThreadID(root, lane) {\n // Interaction threads are unique per root and expiration time.\n // NOTE: Intentionally unsound cast. All that matters is that it's a number\n // and it represents a batch of work. Could make a helper function instead,\n // but meh this is fine for now.\n return lane * 1000 + root.interactionThreadID;\n}\n\nfunction markSpawnedWork(lane) {\n\n if (spawnedWorkDuringRender === null) {\n spawnedWorkDuringRender = [lane];\n } else {\n spawnedWorkDuringRender.push(lane);\n }\n}\n\nfunction scheduleInteractions(root, lane, interactions) {\n\n if (interactions.size > 0) {\n var pendingInteractionMap = root.pendingInteractionMap;\n var pendingInteractions = pendingInteractionMap.get(lane);\n\n if (pendingInteractions != null) {\n interactions.forEach(function (interaction) {\n if (!pendingInteractions.has(interaction)) {\n // Update the pending async work count for previously unscheduled interaction.\n interaction.__count++;\n }\n\n pendingInteractions.add(interaction);\n });\n } else {\n pendingInteractionMap.set(lane, new Set(interactions)); // Update the pending async work count for the current interactions.\n\n interactions.forEach(function (interaction) {\n interaction.__count++;\n });\n }\n\n var subscriber = tracing.__subscriberRef.current;\n\n if (subscriber !== null) {\n var threadID = computeThreadID(root, lane);\n subscriber.onWorkScheduled(interactions, threadID);\n }\n }\n}\n\nfunction schedulePendingInteractions(root, lane) {\n\n scheduleInteractions(root, lane, tracing.__interactionsRef.current);\n}\n\nfunction startWorkOnPendingInteractions(root, lanes) {\n // we can accurately attribute time spent working on it, And so that cascading\n // work triggered during the render phase will be associated with it.\n\n\n var interactions = new Set();\n root.pendingInteractionMap.forEach(function (scheduledInteractions, scheduledLane) {\n if (includesSomeLane(lanes, scheduledLane)) {\n scheduledInteractions.forEach(function (interaction) {\n return interactions.add(interaction);\n });\n }\n }); // Store the current set of interactions on the FiberRoot for a few reasons:\n // We can re-use it in hot functions like performConcurrentWorkOnRoot()\n // without having to recalculate it. We will also use it in commitWork() to\n // pass to any Profiler onRender() hooks. This also provides DevTools with a\n // way to access it when the onCommitRoot() hook is called.\n\n root.memoizedInteractions = interactions;\n\n if (interactions.size > 0) {\n var subscriber = tracing.__subscriberRef.current;\n\n if (subscriber !== null) {\n var threadID = computeThreadID(root, lanes);\n\n try {\n subscriber.onWorkStarted(interactions, threadID);\n } catch (error) {\n // If the subscriber throws, rethrow it in a separate task\n scheduleCallback(ImmediatePriority$1, function () {\n throw error;\n });\n }\n }\n }\n}\n\nfunction finishPendingInteractions(root, committedLanes) {\n\n var remainingLanesAfterCommit = root.pendingLanes;\n var subscriber;\n\n try {\n subscriber = tracing.__subscriberRef.current;\n\n if (subscriber !== null && root.memoizedInteractions.size > 0) {\n // FIXME: More than one lane can finish in a single commit.\n var threadID = computeThreadID(root, committedLanes);\n subscriber.onWorkStopped(root.memoizedInteractions, threadID);\n }\n } catch (error) {\n // If the subscriber throws, rethrow it in a separate task\n scheduleCallback(ImmediatePriority$1, function () {\n throw error;\n });\n } finally {\n // Clear completed interactions from the pending Map.\n // Unless the render was suspended or cascading work was scheduled,\n // In which case– leave pending interactions until the subsequent render.\n var pendingInteractionMap = root.pendingInteractionMap;\n pendingInteractionMap.forEach(function (scheduledInteractions, lane) {\n // Only decrement the pending interaction count if we're done.\n // If there's still work at the current priority,\n // That indicates that we are waiting for suspense data.\n if (!includesSomeLane(remainingLanesAfterCommit, lane)) {\n pendingInteractionMap.delete(lane);\n scheduledInteractions.forEach(function (interaction) {\n interaction.__count--;\n\n if (subscriber !== null && interaction.__count === 0) {\n try {\n subscriber.onInteractionScheduledWorkCompleted(interaction);\n } catch (error) {\n // If the subscriber throws, rethrow it in a separate task\n scheduleCallback(ImmediatePriority$1, function () {\n throw error;\n });\n }\n }\n });\n }\n });\n }\n} // `act` testing API\n\nfunction shouldForceFlushFallbacksInDEV() {\n // Never force flush in production. This function should get stripped out.\n return actingUpdatesScopeDepth > 0;\n}\n// so we can tell if any async act() calls try to run in parallel.\n\n\nvar actingUpdatesScopeDepth = 0;\n\nfunction detachFiberAfterEffects(fiber) {\n fiber.sibling = null;\n fiber.stateNode = null;\n}\n\nvar resolveFamily = null; // $FlowFixMe Flow gets confused by a WeakSet feature check below.\n\nvar failedBoundaries = null;\nvar setRefreshHandler = function (handler) {\n {\n resolveFamily = handler;\n }\n};\nfunction resolveFunctionForHotReloading(type) {\n {\n if (resolveFamily === null) {\n // Hot reloading is disabled.\n return type;\n }\n\n var family = resolveFamily(type);\n\n if (family === undefined) {\n return type;\n } // Use the latest known implementation.\n\n\n return family.current;\n }\n}\nfunction resolveClassForHotReloading(type) {\n // No implementation differences.\n return resolveFunctionForHotReloading(type);\n}\nfunction resolveForwardRefForHotReloading(type) {\n {\n if (resolveFamily === null) {\n // Hot reloading is disabled.\n return type;\n }\n\n var family = resolveFamily(type);\n\n if (family === undefined) {\n // Check if we're dealing with a real forwardRef. Don't want to crash early.\n if (type !== null && type !== undefined && typeof type.render === 'function') {\n // ForwardRef is special because its resolved .type is an object,\n // but it's possible that we only have its inner render function in the map.\n // If that inner render function is different, we'll build a new forwardRef type.\n var currentRender = resolveFunctionForHotReloading(type.render);\n\n if (type.render !== currentRender) {\n var syntheticType = {\n $$typeof: REACT_FORWARD_REF_TYPE,\n render: currentRender\n };\n\n if (type.displayName !== undefined) {\n syntheticType.displayName = type.displayName;\n }\n\n return syntheticType;\n }\n }\n\n return type;\n } // Use the latest known implementation.\n\n\n return family.current;\n }\n}\nfunction isCompatibleFamilyForHotReloading(fiber, element) {\n {\n if (resolveFamily === null) {\n // Hot reloading is disabled.\n return false;\n }\n\n var prevType = fiber.elementType;\n var nextType = element.type; // If we got here, we know types aren't === equal.\n\n var needsCompareFamilies = false;\n var $$typeofNextType = typeof nextType === 'object' && nextType !== null ? nextType.$$typeof : null;\n\n switch (fiber.tag) {\n case ClassComponent:\n {\n if (typeof nextType === 'function') {\n needsCompareFamilies = true;\n }\n\n break;\n }\n\n case FunctionComponent:\n {\n if (typeof nextType === 'function') {\n needsCompareFamilies = true;\n } else if ($$typeofNextType === REACT_LAZY_TYPE) {\n // We don't know the inner type yet.\n // We're going to assume that the lazy inner type is stable,\n // and so it is sufficient to avoid reconciling it away.\n // We're not going to unwrap or actually use the new lazy type.\n needsCompareFamilies = true;\n }\n\n break;\n }\n\n case ForwardRef:\n {\n if ($$typeofNextType === REACT_FORWARD_REF_TYPE) {\n needsCompareFamilies = true;\n } else if ($$typeofNextType === REACT_LAZY_TYPE) {\n needsCompareFamilies = true;\n }\n\n break;\n }\n\n case MemoComponent:\n case SimpleMemoComponent:\n {\n if ($$typeofNextType === REACT_MEMO_TYPE) {\n // TODO: if it was but can no longer be simple,\n // we shouldn't set this.\n needsCompareFamilies = true;\n } else if ($$typeofNextType === REACT_LAZY_TYPE) {\n needsCompareFamilies = true;\n }\n\n break;\n }\n\n default:\n return false;\n } // Check if both types have a family and it's the same one.\n\n\n if (needsCompareFamilies) {\n // Note: memo() and forwardRef() we'll compare outer rather than inner type.\n // This means both of them need to be registered to preserve state.\n // If we unwrapped and compared the inner types for wrappers instead,\n // then we would risk falsely saying two separate memo(Foo)\n // calls are equivalent because they wrap the same Foo function.\n var prevFamily = resolveFamily(prevType);\n\n if (prevFamily !== undefined && prevFamily === resolveFamily(nextType)) {\n return true;\n }\n }\n\n return false;\n }\n}\nfunction markFailedErrorBoundaryForHotReloading(fiber) {\n {\n if (resolveFamily === null) {\n // Hot reloading is disabled.\n return;\n }\n\n if (typeof WeakSet !== 'function') {\n return;\n }\n\n if (failedBoundaries === null) {\n failedBoundaries = new WeakSet();\n }\n\n failedBoundaries.add(fiber);\n }\n}\nvar scheduleRefresh = function (root, update) {\n {\n if (resolveFamily === null) {\n // Hot reloading is disabled.\n return;\n }\n\n var staleFamilies = update.staleFamilies,\n updatedFamilies = update.updatedFamilies;\n flushPassiveEffects();\n flushSync(function () {\n scheduleFibersWithFamiliesRecursively(root.current, updatedFamilies, staleFamilies);\n });\n }\n};\nvar scheduleRoot = function (root, element) {\n {\n if (root.context !== emptyContextObject) {\n // Super edge case: root has a legacy _renderSubtree context\n // but we don't know the parentComponent so we can't pass it.\n // Just ignore. We'll delete this with _renderSubtree code path later.\n return;\n }\n\n flushPassiveEffects();\n flushSync(function () {\n updateContainer(element, root, null, null);\n });\n }\n};\n\nfunction scheduleFibersWithFamiliesRecursively(fiber, updatedFamilies, staleFamilies) {\n {\n var alternate = fiber.alternate,\n child = fiber.child,\n sibling = fiber.sibling,\n tag = fiber.tag,\n type = fiber.type;\n var candidateType = null;\n\n switch (tag) {\n case FunctionComponent:\n case SimpleMemoComponent:\n case ClassComponent:\n candidateType = type;\n break;\n\n case ForwardRef:\n candidateType = type.render;\n break;\n }\n\n if (resolveFamily === null) {\n throw new Error('Expected resolveFamily to be set during hot reload.');\n }\n\n var needsRender = false;\n var needsRemount = false;\n\n if (candidateType !== null) {\n var family = resolveFamily(candidateType);\n\n if (family !== undefined) {\n if (staleFamilies.has(family)) {\n needsRemount = true;\n } else if (updatedFamilies.has(family)) {\n if (tag === ClassComponent) {\n needsRemount = true;\n } else {\n needsRender = true;\n }\n }\n }\n }\n\n if (failedBoundaries !== null) {\n if (failedBoundaries.has(fiber) || alternate !== null && failedBoundaries.has(alternate)) {\n needsRemount = true;\n }\n }\n\n if (needsRemount) {\n fiber._debugNeedsRemount = true;\n }\n\n if (needsRemount || needsRender) {\n scheduleUpdateOnFiber(fiber, SyncLane, NoTimestamp);\n }\n\n if (child !== null && !needsRemount) {\n scheduleFibersWithFamiliesRecursively(child, updatedFamilies, staleFamilies);\n }\n\n if (sibling !== null) {\n scheduleFibersWithFamiliesRecursively(sibling, updatedFamilies, staleFamilies);\n }\n }\n}\n\nvar findHostInstancesForRefresh = function (root, families) {\n {\n var hostInstances = new Set();\n var types = new Set(families.map(function (family) {\n return family.current;\n }));\n findHostInstancesForMatchingFibersRecursively(root.current, types, hostInstances);\n return hostInstances;\n }\n};\n\nfunction findHostInstancesForMatchingFibersRecursively(fiber, types, hostInstances) {\n {\n var child = fiber.child,\n sibling = fiber.sibling,\n tag = fiber.tag,\n type = fiber.type;\n var candidateType = null;\n\n switch (tag) {\n case FunctionComponent:\n case SimpleMemoComponent:\n case ClassComponent:\n candidateType = type;\n break;\n\n case ForwardRef:\n candidateType = type.render;\n break;\n }\n\n var didMatch = false;\n\n if (candidateType !== null) {\n if (types.has(candidateType)) {\n didMatch = true;\n }\n }\n\n if (didMatch) {\n // We have a match. This only drills down to the closest host components.\n // There's no need to search deeper because for the purpose of giving\n // visual feedback, \"flashing\" outermost parent rectangles is sufficient.\n findHostInstancesForFiberShallowly(fiber, hostInstances);\n } else {\n // If there's no match, maybe there will be one further down in the child tree.\n if (child !== null) {\n findHostInstancesForMatchingFibersRecursively(child, types, hostInstances);\n }\n }\n\n if (sibling !== null) {\n findHostInstancesForMatchingFibersRecursively(sibling, types, hostInstances);\n }\n }\n}\n\nfunction findHostInstancesForFiberShallowly(fiber, hostInstances) {\n {\n var foundHostInstances = findChildHostInstancesForFiberShallowly(fiber, hostInstances);\n\n if (foundHostInstances) {\n return;\n } // If we didn't find any host children, fallback to closest host parent.\n\n\n var node = fiber;\n\n while (true) {\n switch (node.tag) {\n case HostComponent:\n hostInstances.add(node.stateNode);\n return;\n\n case HostPortal:\n hostInstances.add(node.stateNode.containerInfo);\n return;\n\n case HostRoot:\n hostInstances.add(node.stateNode.containerInfo);\n return;\n }\n\n if (node.return === null) {\n throw new Error('Expected to reach root first.');\n }\n\n node = node.return;\n }\n }\n}\n\nfunction findChildHostInstancesForFiberShallowly(fiber, hostInstances) {\n {\n var node = fiber;\n var foundHostInstances = false;\n\n while (true) {\n if (node.tag === HostComponent) {\n // We got a match.\n foundHostInstances = true;\n hostInstances.add(node.stateNode); // There may still be more, so keep searching.\n } else if (node.child !== null) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n\n if (node === fiber) {\n return foundHostInstances;\n }\n\n while (node.sibling === null) {\n if (node.return === null || node.return === fiber) {\n return foundHostInstances;\n }\n\n node = node.return;\n }\n\n node.sibling.return = node.return;\n node = node.sibling;\n }\n }\n\n return false;\n}\n\nvar hasBadMapPolyfill;\n\n{\n hasBadMapPolyfill = false;\n\n try {\n var nonExtensibleObject = Object.preventExtensions({});\n /* eslint-disable no-new */\n\n new Map([[nonExtensibleObject, null]]);\n new Set([nonExtensibleObject]);\n /* eslint-enable no-new */\n } catch (e) {\n // TODO: Consider warning about bad polyfills\n hasBadMapPolyfill = true;\n }\n}\n\nvar debugCounter = 1;\n\nfunction FiberNode(tag, pendingProps, key, mode) {\n // Instance\n this.tag = tag;\n this.key = key;\n this.elementType = null;\n this.type = null;\n this.stateNode = null; // Fiber\n\n this.return = null;\n this.child = null;\n this.sibling = null;\n this.index = 0;\n this.ref = null;\n this.pendingProps = pendingProps;\n this.memoizedProps = null;\n this.updateQueue = null;\n this.memoizedState = null;\n this.dependencies = null;\n this.mode = mode; // Effects\n\n this.flags = NoFlags;\n this.nextEffect = null;\n this.firstEffect = null;\n this.lastEffect = null;\n this.lanes = NoLanes;\n this.childLanes = NoLanes;\n this.alternate = null;\n\n {\n // Note: The following is done to avoid a v8 performance cliff.\n //\n // Initializing the fields below to smis and later updating them with\n // double values will cause Fibers to end up having separate shapes.\n // This behavior/bug has something to do with Object.preventExtension().\n // Fortunately this only impacts DEV builds.\n // Unfortunately it makes React unusably slow for some applications.\n // To work around this, initialize the fields below with doubles.\n //\n // Learn more about this here:\n // https://github.com/facebook/react/issues/14365\n // https://bugs.chromium.org/p/v8/issues/detail?id=8538\n this.actualDuration = Number.NaN;\n this.actualStartTime = Number.NaN;\n this.selfBaseDuration = Number.NaN;\n this.treeBaseDuration = Number.NaN; // It's okay to replace the initial doubles with smis after initialization.\n // This won't trigger the performance cliff mentioned above,\n // and it simplifies other profiler code (including DevTools).\n\n this.actualDuration = 0;\n this.actualStartTime = -1;\n this.selfBaseDuration = 0;\n this.treeBaseDuration = 0;\n }\n\n {\n // This isn't directly used but is handy for debugging internals:\n this._debugID = debugCounter++;\n this._debugSource = null;\n this._debugOwner = null;\n this._debugNeedsRemount = false;\n this._debugHookTypes = null;\n\n if (!hasBadMapPolyfill && typeof Object.preventExtensions === 'function') {\n Object.preventExtensions(this);\n }\n }\n} // This is a constructor function, rather than a POJO constructor, still\n// please ensure we do the following:\n// 1) Nobody should add any instance methods on this. Instance methods can be\n// more difficult to predict when they get optimized and they are almost\n// never inlined properly in static compilers.\n// 2) Nobody should rely on `instanceof Fiber` for type testing. We should\n// always know when it is a fiber.\n// 3) We might want to experiment with using numeric keys since they are easier\n// to optimize in a non-JIT environment.\n// 4) We can easily go from a constructor to a createFiber object literal if that\n// is faster.\n// 5) It should be easy to port this to a C struct and keep a C implementation\n// compatible.\n\n\nvar createFiber = function (tag, pendingProps, key, mode) {\n // $FlowFixMe: the shapes are exact here but Flow doesn't like constructors\n return new FiberNode(tag, pendingProps, key, mode);\n};\n\nfunction shouldConstruct$1(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nfunction isSimpleFunctionComponent(type) {\n return typeof type === 'function' && !shouldConstruct$1(type) && type.defaultProps === undefined;\n}\nfunction resolveLazyComponentTag(Component) {\n if (typeof Component === 'function') {\n return shouldConstruct$1(Component) ? ClassComponent : FunctionComponent;\n } else if (Component !== undefined && Component !== null) {\n var $$typeof = Component.$$typeof;\n\n if ($$typeof === REACT_FORWARD_REF_TYPE) {\n return ForwardRef;\n }\n\n if ($$typeof === REACT_MEMO_TYPE) {\n return MemoComponent;\n }\n }\n\n return IndeterminateComponent;\n} // This is used to create an alternate fiber to do work on.\n\nfunction createWorkInProgress(current, pendingProps) {\n var workInProgress = current.alternate;\n\n if (workInProgress === null) {\n // We use a double buffering pooling technique because we know that we'll\n // only ever need at most two versions of a tree. We pool the \"other\" unused\n // node that we're free to reuse. This is lazily created to avoid allocating\n // extra objects for things that are never updated. It also allow us to\n // reclaim the extra memory if needed.\n workInProgress = createFiber(current.tag, pendingProps, current.key, current.mode);\n workInProgress.elementType = current.elementType;\n workInProgress.type = current.type;\n workInProgress.stateNode = current.stateNode;\n\n {\n // DEV-only fields\n workInProgress._debugID = current._debugID;\n workInProgress._debugSource = current._debugSource;\n workInProgress._debugOwner = current._debugOwner;\n workInProgress._debugHookTypes = current._debugHookTypes;\n }\n\n workInProgress.alternate = current;\n current.alternate = workInProgress;\n } else {\n workInProgress.pendingProps = pendingProps; // Needed because Blocks store data on type.\n\n workInProgress.type = current.type; // We already have an alternate.\n // Reset the effect tag.\n\n workInProgress.flags = NoFlags; // The effect list is no longer valid.\n\n workInProgress.nextEffect = null;\n workInProgress.firstEffect = null;\n workInProgress.lastEffect = null;\n\n {\n // We intentionally reset, rather than copy, actualDuration & actualStartTime.\n // This prevents time from endlessly accumulating in new commits.\n // This has the downside of resetting values for different priority renders,\n // But works for yielding (the common case) and should support resuming.\n workInProgress.actualDuration = 0;\n workInProgress.actualStartTime = -1;\n }\n }\n\n workInProgress.childLanes = current.childLanes;\n workInProgress.lanes = current.lanes;\n workInProgress.child = current.child;\n workInProgress.memoizedProps = current.memoizedProps;\n workInProgress.memoizedState = current.memoizedState;\n workInProgress.updateQueue = current.updateQueue; // Clone the dependencies object. This is mutated during the render phase, so\n // it cannot be shared with the current fiber.\n\n var currentDependencies = current.dependencies;\n workInProgress.dependencies = currentDependencies === null ? null : {\n lanes: currentDependencies.lanes,\n firstContext: currentDependencies.firstContext\n }; // These will be overridden during the parent's reconciliation\n\n workInProgress.sibling = current.sibling;\n workInProgress.index = current.index;\n workInProgress.ref = current.ref;\n\n {\n workInProgress.selfBaseDuration = current.selfBaseDuration;\n workInProgress.treeBaseDuration = current.treeBaseDuration;\n }\n\n {\n workInProgress._debugNeedsRemount = current._debugNeedsRemount;\n\n switch (workInProgress.tag) {\n case IndeterminateComponent:\n case FunctionComponent:\n case SimpleMemoComponent:\n workInProgress.type = resolveFunctionForHotReloading(current.type);\n break;\n\n case ClassComponent:\n workInProgress.type = resolveClassForHotReloading(current.type);\n break;\n\n case ForwardRef:\n workInProgress.type = resolveForwardRefForHotReloading(current.type);\n break;\n }\n }\n\n return workInProgress;\n} // Used to reuse a Fiber for a second pass.\n\nfunction resetWorkInProgress(workInProgress, renderLanes) {\n // This resets the Fiber to what createFiber or createWorkInProgress would\n // have set the values to before during the first pass. Ideally this wouldn't\n // be necessary but unfortunately many code paths reads from the workInProgress\n // when they should be reading from current and writing to workInProgress.\n // We assume pendingProps, index, key, ref, return are still untouched to\n // avoid doing another reconciliation.\n // Reset the effect tag but keep any Placement tags, since that's something\n // that child fiber is setting, not the reconciliation.\n workInProgress.flags &= Placement; // The effect list is no longer valid.\n\n workInProgress.nextEffect = null;\n workInProgress.firstEffect = null;\n workInProgress.lastEffect = null;\n var current = workInProgress.alternate;\n\n if (current === null) {\n // Reset to createFiber's initial values.\n workInProgress.childLanes = NoLanes;\n workInProgress.lanes = renderLanes;\n workInProgress.child = null;\n workInProgress.memoizedProps = null;\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n workInProgress.dependencies = null;\n workInProgress.stateNode = null;\n\n {\n // Note: We don't reset the actualTime counts. It's useful to accumulate\n // actual time across multiple render passes.\n workInProgress.selfBaseDuration = 0;\n workInProgress.treeBaseDuration = 0;\n }\n } else {\n // Reset to the cloned values that createWorkInProgress would've.\n workInProgress.childLanes = current.childLanes;\n workInProgress.lanes = current.lanes;\n workInProgress.child = current.child;\n workInProgress.memoizedProps = current.memoizedProps;\n workInProgress.memoizedState = current.memoizedState;\n workInProgress.updateQueue = current.updateQueue; // Needed because Blocks store data on type.\n\n workInProgress.type = current.type; // Clone the dependencies object. This is mutated during the render phase, so\n // it cannot be shared with the current fiber.\n\n var currentDependencies = current.dependencies;\n workInProgress.dependencies = currentDependencies === null ? null : {\n lanes: currentDependencies.lanes,\n firstContext: currentDependencies.firstContext\n };\n\n {\n // Note: We don't reset the actualTime counts. It's useful to accumulate\n // actual time across multiple render passes.\n workInProgress.selfBaseDuration = current.selfBaseDuration;\n workInProgress.treeBaseDuration = current.treeBaseDuration;\n }\n }\n\n return workInProgress;\n}\nfunction createHostRootFiber(tag) {\n var mode;\n\n if (tag === ConcurrentRoot) {\n mode = ConcurrentMode | BlockingMode | StrictMode;\n } else if (tag === BlockingRoot) {\n mode = BlockingMode | StrictMode;\n } else {\n mode = NoMode;\n }\n\n if ( isDevToolsPresent) {\n // Always collect profile timings when DevTools are present.\n // This enables DevTools to start capturing timing at any point–\n // Without some nodes in the tree having empty base times.\n mode |= ProfileMode;\n }\n\n return createFiber(HostRoot, null, null, mode);\n}\nfunction createFiberFromTypeAndProps(type, // React$ElementType\nkey, pendingProps, owner, mode, lanes) {\n var fiberTag = IndeterminateComponent; // The resolved type is set if we know what the final type will be. I.e. it's not lazy.\n\n var resolvedType = type;\n\n if (typeof type === 'function') {\n if (shouldConstruct$1(type)) {\n fiberTag = ClassComponent;\n\n {\n resolvedType = resolveClassForHotReloading(resolvedType);\n }\n } else {\n {\n resolvedType = resolveFunctionForHotReloading(resolvedType);\n }\n }\n } else if (typeof type === 'string') {\n fiberTag = HostComponent;\n } else {\n getTag: switch (type) {\n case REACT_FRAGMENT_TYPE:\n return createFiberFromFragment(pendingProps.children, mode, lanes, key);\n\n case REACT_DEBUG_TRACING_MODE_TYPE:\n fiberTag = Mode;\n mode |= DebugTracingMode;\n break;\n\n case REACT_STRICT_MODE_TYPE:\n fiberTag = Mode;\n mode |= StrictMode;\n break;\n\n case REACT_PROFILER_TYPE:\n return createFiberFromProfiler(pendingProps, mode, lanes, key);\n\n case REACT_SUSPENSE_TYPE:\n return createFiberFromSuspense(pendingProps, mode, lanes, key);\n\n case REACT_SUSPENSE_LIST_TYPE:\n return createFiberFromSuspenseList(pendingProps, mode, lanes, key);\n\n case REACT_OFFSCREEN_TYPE:\n return createFiberFromOffscreen(pendingProps, mode, lanes, key);\n\n case REACT_LEGACY_HIDDEN_TYPE:\n return createFiberFromLegacyHidden(pendingProps, mode, lanes, key);\n\n case REACT_SCOPE_TYPE:\n\n // eslint-disable-next-line no-fallthrough\n\n default:\n {\n if (typeof type === 'object' && type !== null) {\n switch (type.$$typeof) {\n case REACT_PROVIDER_TYPE:\n fiberTag = ContextProvider;\n break getTag;\n\n case REACT_CONTEXT_TYPE:\n // This is a consumer\n fiberTag = ContextConsumer;\n break getTag;\n\n case REACT_FORWARD_REF_TYPE:\n fiberTag = ForwardRef;\n\n {\n resolvedType = resolveForwardRefForHotReloading(resolvedType);\n }\n\n break getTag;\n\n case REACT_MEMO_TYPE:\n fiberTag = MemoComponent;\n break getTag;\n\n case REACT_LAZY_TYPE:\n fiberTag = LazyComponent;\n resolvedType = null;\n break getTag;\n\n case REACT_BLOCK_TYPE:\n fiberTag = Block;\n break getTag;\n }\n }\n\n var info = '';\n\n {\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and \" + 'named imports.';\n }\n\n var ownerName = owner ? getComponentName(owner.type) : null;\n\n if (ownerName) {\n info += '\\n\\nCheck the render method of `' + ownerName + '`.';\n }\n }\n\n {\n {\n throw Error( \"Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: \" + (type == null ? type : typeof type) + \".\" + info );\n }\n }\n }\n }\n }\n\n var fiber = createFiber(fiberTag, pendingProps, key, mode);\n fiber.elementType = type;\n fiber.type = resolvedType;\n fiber.lanes = lanes;\n\n {\n fiber._debugOwner = owner;\n }\n\n return fiber;\n}\nfunction createFiberFromElement(element, mode, lanes) {\n var owner = null;\n\n {\n owner = element._owner;\n }\n\n var type = element.type;\n var key = element.key;\n var pendingProps = element.props;\n var fiber = createFiberFromTypeAndProps(type, key, pendingProps, owner, mode, lanes);\n\n {\n fiber._debugSource = element._source;\n fiber._debugOwner = element._owner;\n }\n\n return fiber;\n}\nfunction createFiberFromFragment(elements, mode, lanes, key) {\n var fiber = createFiber(Fragment, elements, key, mode);\n fiber.lanes = lanes;\n return fiber;\n}\n\nfunction createFiberFromProfiler(pendingProps, mode, lanes, key) {\n {\n if (typeof pendingProps.id !== 'string') {\n error('Profiler must specify an \"id\" as a prop');\n }\n }\n\n var fiber = createFiber(Profiler, pendingProps, key, mode | ProfileMode); // TODO: The Profiler fiber shouldn't have a type. It has a tag.\n\n fiber.elementType = REACT_PROFILER_TYPE;\n fiber.type = REACT_PROFILER_TYPE;\n fiber.lanes = lanes;\n\n {\n fiber.stateNode = {\n effectDuration: 0,\n passiveEffectDuration: 0\n };\n }\n\n return fiber;\n}\n\nfunction createFiberFromSuspense(pendingProps, mode, lanes, key) {\n var fiber = createFiber(SuspenseComponent, pendingProps, key, mode); // TODO: The SuspenseComponent fiber shouldn't have a type. It has a tag.\n // This needs to be fixed in getComponentName so that it relies on the tag\n // instead.\n\n fiber.type = REACT_SUSPENSE_TYPE;\n fiber.elementType = REACT_SUSPENSE_TYPE;\n fiber.lanes = lanes;\n return fiber;\n}\nfunction createFiberFromSuspenseList(pendingProps, mode, lanes, key) {\n var fiber = createFiber(SuspenseListComponent, pendingProps, key, mode);\n\n {\n // TODO: The SuspenseListComponent fiber shouldn't have a type. It has a tag.\n // This needs to be fixed in getComponentName so that it relies on the tag\n // instead.\n fiber.type = REACT_SUSPENSE_LIST_TYPE;\n }\n\n fiber.elementType = REACT_SUSPENSE_LIST_TYPE;\n fiber.lanes = lanes;\n return fiber;\n}\nfunction createFiberFromOffscreen(pendingProps, mode, lanes, key) {\n var fiber = createFiber(OffscreenComponent, pendingProps, key, mode); // TODO: The OffscreenComponent fiber shouldn't have a type. It has a tag.\n // This needs to be fixed in getComponentName so that it relies on the tag\n // instead.\n\n {\n fiber.type = REACT_OFFSCREEN_TYPE;\n }\n\n fiber.elementType = REACT_OFFSCREEN_TYPE;\n fiber.lanes = lanes;\n return fiber;\n}\nfunction createFiberFromLegacyHidden(pendingProps, mode, lanes, key) {\n var fiber = createFiber(LegacyHiddenComponent, pendingProps, key, mode); // TODO: The LegacyHidden fiber shouldn't have a type. It has a tag.\n // This needs to be fixed in getComponentName so that it relies on the tag\n // instead.\n\n {\n fiber.type = REACT_LEGACY_HIDDEN_TYPE;\n }\n\n fiber.elementType = REACT_LEGACY_HIDDEN_TYPE;\n fiber.lanes = lanes;\n return fiber;\n}\nfunction createFiberFromText(content, mode, lanes) {\n var fiber = createFiber(HostText, content, null, mode);\n fiber.lanes = lanes;\n return fiber;\n}\nfunction createFiberFromHostInstanceForDeletion() {\n var fiber = createFiber(HostComponent, null, null, NoMode); // TODO: These should not need a type.\n\n fiber.elementType = 'DELETED';\n fiber.type = 'DELETED';\n return fiber;\n}\nfunction createFiberFromPortal(portal, mode, lanes) {\n var pendingProps = portal.children !== null ? portal.children : [];\n var fiber = createFiber(HostPortal, pendingProps, portal.key, mode);\n fiber.lanes = lanes;\n fiber.stateNode = {\n containerInfo: portal.containerInfo,\n pendingChildren: null,\n // Used by persistent updates\n implementation: portal.implementation\n };\n return fiber;\n} // Used for stashing WIP properties to replay failed work in DEV.\n\nfunction assignFiberPropertiesInDEV(target, source) {\n if (target === null) {\n // This Fiber's initial properties will always be overwritten.\n // We only use a Fiber to ensure the same hidden class so DEV isn't slow.\n target = createFiber(IndeterminateComponent, null, null, NoMode);\n } // This is intentionally written as a list of all properties.\n // We tried to use Object.assign() instead but this is called in\n // the hottest path, and Object.assign() was too slow:\n // https://github.com/facebook/react/issues/12502\n // This code is DEV-only so size is not a concern.\n\n\n target.tag = source.tag;\n target.key = source.key;\n target.elementType = source.elementType;\n target.type = source.type;\n target.stateNode = source.stateNode;\n target.return = source.return;\n target.child = source.child;\n target.sibling = source.sibling;\n target.index = source.index;\n target.ref = source.ref;\n target.pendingProps = source.pendingProps;\n target.memoizedProps = source.memoizedProps;\n target.updateQueue = source.updateQueue;\n target.memoizedState = source.memoizedState;\n target.dependencies = source.dependencies;\n target.mode = source.mode;\n target.flags = source.flags;\n target.nextEffect = source.nextEffect;\n target.firstEffect = source.firstEffect;\n target.lastEffect = source.lastEffect;\n target.lanes = source.lanes;\n target.childLanes = source.childLanes;\n target.alternate = source.alternate;\n\n {\n target.actualDuration = source.actualDuration;\n target.actualStartTime = source.actualStartTime;\n target.selfBaseDuration = source.selfBaseDuration;\n target.treeBaseDuration = source.treeBaseDuration;\n }\n\n target._debugID = source._debugID;\n target._debugSource = source._debugSource;\n target._debugOwner = source._debugOwner;\n target._debugNeedsRemount = source._debugNeedsRemount;\n target._debugHookTypes = source._debugHookTypes;\n return target;\n}\n\nfunction FiberRootNode(containerInfo, tag, hydrate) {\n this.tag = tag;\n this.containerInfo = containerInfo;\n this.pendingChildren = null;\n this.current = null;\n this.pingCache = null;\n this.finishedWork = null;\n this.timeoutHandle = noTimeout;\n this.context = null;\n this.pendingContext = null;\n this.hydrate = hydrate;\n this.callbackNode = null;\n this.callbackPriority = NoLanePriority;\n this.eventTimes = createLaneMap(NoLanes);\n this.expirationTimes = createLaneMap(NoTimestamp);\n this.pendingLanes = NoLanes;\n this.suspendedLanes = NoLanes;\n this.pingedLanes = NoLanes;\n this.expiredLanes = NoLanes;\n this.mutableReadLanes = NoLanes;\n this.finishedLanes = NoLanes;\n this.entangledLanes = NoLanes;\n this.entanglements = createLaneMap(NoLanes);\n\n {\n this.mutableSourceEagerHydrationData = null;\n }\n\n {\n this.interactionThreadID = tracing.unstable_getThreadID();\n this.memoizedInteractions = new Set();\n this.pendingInteractionMap = new Map();\n }\n\n {\n switch (tag) {\n case BlockingRoot:\n this._debugRootType = 'createBlockingRoot()';\n break;\n\n case ConcurrentRoot:\n this._debugRootType = 'createRoot()';\n break;\n\n case LegacyRoot:\n this._debugRootType = 'createLegacyRoot()';\n break;\n }\n }\n}\n\nfunction createFiberRoot(containerInfo, tag, hydrate, hydrationCallbacks) {\n var root = new FiberRootNode(containerInfo, tag, hydrate);\n // stateNode is any.\n\n\n var uninitializedFiber = createHostRootFiber(tag);\n root.current = uninitializedFiber;\n uninitializedFiber.stateNode = root;\n initializeUpdateQueue(uninitializedFiber);\n return root;\n}\n\n// This ensures that the version used for server rendering matches the one\n// that is eventually read during hydration.\n// If they don't match there's a potential tear and a full deopt render is required.\n\nfunction registerMutableSourceForHydration(root, mutableSource) {\n var getVersion = mutableSource._getVersion;\n var version = getVersion(mutableSource._source); // TODO Clear this data once all pending hydration work is finished.\n // Retaining it forever may interfere with GC.\n\n if (root.mutableSourceEagerHydrationData == null) {\n root.mutableSourceEagerHydrationData = [mutableSource, version];\n } else {\n root.mutableSourceEagerHydrationData.push(mutableSource, version);\n }\n}\n\nfunction createPortal(children, containerInfo, // TODO: figure out the API for cross-renderer implementation.\nimplementation) {\n var key = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n return {\n // This tag allow us to uniquely identify this as a React Portal\n $$typeof: REACT_PORTAL_TYPE,\n key: key == null ? null : '' + key,\n children: children,\n containerInfo: containerInfo,\n implementation: implementation\n };\n}\n\nvar didWarnAboutNestedUpdates;\nvar didWarnAboutFindNodeInStrictMode;\n\n{\n didWarnAboutNestedUpdates = false;\n didWarnAboutFindNodeInStrictMode = {};\n}\n\nfunction getContextForSubtree(parentComponent) {\n if (!parentComponent) {\n return emptyContextObject;\n }\n\n var fiber = get(parentComponent);\n var parentContext = findCurrentUnmaskedContext(fiber);\n\n if (fiber.tag === ClassComponent) {\n var Component = fiber.type;\n\n if (isContextProvider(Component)) {\n return processChildContext(fiber, Component, parentContext);\n }\n }\n\n return parentContext;\n}\n\nfunction findHostInstanceWithWarning(component, methodName) {\n {\n var fiber = get(component);\n\n if (fiber === undefined) {\n if (typeof component.render === 'function') {\n {\n {\n throw Error( \"Unable to find node on an unmounted component.\" );\n }\n }\n } else {\n {\n {\n throw Error( \"Argument appears to not be a ReactComponent. Keys: \" + Object.keys(component) );\n }\n }\n }\n }\n\n var hostFiber = findCurrentHostFiber(fiber);\n\n if (hostFiber === null) {\n return null;\n }\n\n if (hostFiber.mode & StrictMode) {\n var componentName = getComponentName(fiber.type) || 'Component';\n\n if (!didWarnAboutFindNodeInStrictMode[componentName]) {\n didWarnAboutFindNodeInStrictMode[componentName] = true;\n var previousFiber = current;\n\n try {\n setCurrentFiber(hostFiber);\n\n if (fiber.mode & StrictMode) {\n error('%s is deprecated in StrictMode. ' + '%s was passed an instance of %s which is inside StrictMode. ' + 'Instead, add a ref directly to the element you want to reference. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-find-node', methodName, methodName, componentName);\n } else {\n error('%s is deprecated in StrictMode. ' + '%s was passed an instance of %s which renders StrictMode children. ' + 'Instead, add a ref directly to the element you want to reference. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-find-node', methodName, methodName, componentName);\n }\n } finally {\n // Ideally this should reset to previous but this shouldn't be called in\n // render and there's another warning for that anyway.\n if (previousFiber) {\n setCurrentFiber(previousFiber);\n } else {\n resetCurrentFiber();\n }\n }\n }\n }\n\n return hostFiber.stateNode;\n }\n}\n\nfunction createContainer(containerInfo, tag, hydrate, hydrationCallbacks) {\n return createFiberRoot(containerInfo, tag, hydrate);\n}\nfunction updateContainer(element, container, parentComponent, callback) {\n {\n onScheduleRoot(container, element);\n }\n\n var current$1 = container.current;\n var eventTime = requestEventTime();\n\n {\n // $FlowExpectedError - jest isn't a global, and isn't recognized outside of tests\n if ('undefined' !== typeof jest) {\n warnIfUnmockedScheduler(current$1);\n warnIfNotScopedWithMatchingAct(current$1);\n }\n }\n\n var lane = requestUpdateLane(current$1);\n\n var context = getContextForSubtree(parentComponent);\n\n if (container.context === null) {\n container.context = context;\n } else {\n container.pendingContext = context;\n }\n\n {\n if (isRendering && current !== null && !didWarnAboutNestedUpdates) {\n didWarnAboutNestedUpdates = true;\n\n error('Render methods should be a pure function of props and state; ' + 'triggering nested component updates from render is not allowed. ' + 'If necessary, trigger nested updates in componentDidUpdate.\\n\\n' + 'Check the render method of %s.', getComponentName(current.type) || 'Unknown');\n }\n }\n\n var update = createUpdate(eventTime, lane); // Caution: React DevTools currently depends on this property\n // being called \"element\".\n\n update.payload = {\n element: element\n };\n callback = callback === undefined ? null : callback;\n\n if (callback !== null) {\n {\n if (typeof callback !== 'function') {\n error('render(...): Expected the last optional `callback` argument to be a ' + 'function. Instead received: %s.', callback);\n }\n }\n\n update.callback = callback;\n }\n\n enqueueUpdate(current$1, update);\n scheduleUpdateOnFiber(current$1, lane, eventTime);\n return lane;\n}\nfunction getPublicRootInstance(container) {\n var containerFiber = container.current;\n\n if (!containerFiber.child) {\n return null;\n }\n\n switch (containerFiber.child.tag) {\n case HostComponent:\n return getPublicInstance(containerFiber.child.stateNode);\n\n default:\n return containerFiber.child.stateNode;\n }\n}\n\nfunction markRetryLaneImpl(fiber, retryLane) {\n var suspenseState = fiber.memoizedState;\n\n if (suspenseState !== null && suspenseState.dehydrated !== null) {\n suspenseState.retryLane = higherPriorityLane(suspenseState.retryLane, retryLane);\n }\n} // Increases the priority of thennables when they resolve within this boundary.\n\n\nfunction markRetryLaneIfNotHydrated(fiber, retryLane) {\n markRetryLaneImpl(fiber, retryLane);\n var alternate = fiber.alternate;\n\n if (alternate) {\n markRetryLaneImpl(alternate, retryLane);\n }\n}\n\nfunction attemptUserBlockingHydration$1(fiber) {\n if (fiber.tag !== SuspenseComponent) {\n // We ignore HostRoots here because we can't increase\n // their priority and they should not suspend on I/O,\n // since you have to wrap anything that might suspend in\n // Suspense.\n return;\n }\n\n var eventTime = requestEventTime();\n var lane = InputDiscreteHydrationLane;\n scheduleUpdateOnFiber(fiber, lane, eventTime);\n markRetryLaneIfNotHydrated(fiber, lane);\n}\nfunction attemptContinuousHydration$1(fiber) {\n if (fiber.tag !== SuspenseComponent) {\n // We ignore HostRoots here because we can't increase\n // their priority and they should not suspend on I/O,\n // since you have to wrap anything that might suspend in\n // Suspense.\n return;\n }\n\n var eventTime = requestEventTime();\n var lane = SelectiveHydrationLane;\n scheduleUpdateOnFiber(fiber, lane, eventTime);\n markRetryLaneIfNotHydrated(fiber, lane);\n}\nfunction attemptHydrationAtCurrentPriority$1(fiber) {\n if (fiber.tag !== SuspenseComponent) {\n // We ignore HostRoots here because we can't increase\n // their priority other than synchronously flush it.\n return;\n }\n\n var eventTime = requestEventTime();\n var lane = requestUpdateLane(fiber);\n scheduleUpdateOnFiber(fiber, lane, eventTime);\n markRetryLaneIfNotHydrated(fiber, lane);\n}\nfunction runWithPriority$2(priority, fn) {\n\n try {\n setCurrentUpdateLanePriority(priority);\n return fn();\n } finally {\n }\n}\nfunction findHostInstanceWithNoPortals(fiber) {\n var hostFiber = findCurrentHostFiberWithNoPortals(fiber);\n\n if (hostFiber === null) {\n return null;\n }\n\n if (hostFiber.tag === FundamentalComponent) {\n return hostFiber.stateNode.instance;\n }\n\n return hostFiber.stateNode;\n}\n\nvar shouldSuspendImpl = function (fiber) {\n return false;\n};\n\nfunction shouldSuspend(fiber) {\n return shouldSuspendImpl(fiber);\n}\nvar overrideHookState = null;\nvar overrideHookStateDeletePath = null;\nvar overrideHookStateRenamePath = null;\nvar overrideProps = null;\nvar overridePropsDeletePath = null;\nvar overridePropsRenamePath = null;\nvar scheduleUpdate = null;\nvar setSuspenseHandler = null;\n\n{\n var copyWithDeleteImpl = function (obj, path, index) {\n var key = path[index];\n var updated = Array.isArray(obj) ? obj.slice() : _assign({}, obj);\n\n if (index + 1 === path.length) {\n if (Array.isArray(updated)) {\n updated.splice(key, 1);\n } else {\n delete updated[key];\n }\n\n return updated;\n } // $FlowFixMe number or string is fine here\n\n\n updated[key] = copyWithDeleteImpl(obj[key], path, index + 1);\n return updated;\n };\n\n var copyWithDelete = function (obj, path) {\n return copyWithDeleteImpl(obj, path, 0);\n };\n\n var copyWithRenameImpl = function (obj, oldPath, newPath, index) {\n var oldKey = oldPath[index];\n var updated = Array.isArray(obj) ? obj.slice() : _assign({}, obj);\n\n if (index + 1 === oldPath.length) {\n var newKey = newPath[index]; // $FlowFixMe number or string is fine here\n\n updated[newKey] = updated[oldKey];\n\n if (Array.isArray(updated)) {\n updated.splice(oldKey, 1);\n } else {\n delete updated[oldKey];\n }\n } else {\n // $FlowFixMe number or string is fine here\n updated[oldKey] = copyWithRenameImpl( // $FlowFixMe number or string is fine here\n obj[oldKey], oldPath, newPath, index + 1);\n }\n\n return updated;\n };\n\n var copyWithRename = function (obj, oldPath, newPath) {\n if (oldPath.length !== newPath.length) {\n warn('copyWithRename() expects paths of the same length');\n\n return;\n } else {\n for (var i = 0; i < newPath.length - 1; i++) {\n if (oldPath[i] !== newPath[i]) {\n warn('copyWithRename() expects paths to be the same except for the deepest key');\n\n return;\n }\n }\n }\n\n return copyWithRenameImpl(obj, oldPath, newPath, 0);\n };\n\n var copyWithSetImpl = function (obj, path, index, value) {\n if (index >= path.length) {\n return value;\n }\n\n var key = path[index];\n var updated = Array.isArray(obj) ? obj.slice() : _assign({}, obj); // $FlowFixMe number or string is fine here\n\n updated[key] = copyWithSetImpl(obj[key], path, index + 1, value);\n return updated;\n };\n\n var copyWithSet = function (obj, path, value) {\n return copyWithSetImpl(obj, path, 0, value);\n };\n\n var findHook = function (fiber, id) {\n // For now, the \"id\" of stateful hooks is just the stateful hook index.\n // This may change in the future with e.g. nested hooks.\n var currentHook = fiber.memoizedState;\n\n while (currentHook !== null && id > 0) {\n currentHook = currentHook.next;\n id--;\n }\n\n return currentHook;\n }; // Support DevTools editable values for useState and useReducer.\n\n\n overrideHookState = function (fiber, id, path, value) {\n var hook = findHook(fiber, id);\n\n if (hook !== null) {\n var newState = copyWithSet(hook.memoizedState, path, value);\n hook.memoizedState = newState;\n hook.baseState = newState; // We aren't actually adding an update to the queue,\n // because there is no update we can add for useReducer hooks that won't trigger an error.\n // (There's no appropriate action type for DevTools overrides.)\n // As a result though, React will see the scheduled update as a noop and bailout.\n // Shallow cloning props works as a workaround for now to bypass the bailout check.\n\n fiber.memoizedProps = _assign({}, fiber.memoizedProps);\n scheduleUpdateOnFiber(fiber, SyncLane, NoTimestamp);\n }\n };\n\n overrideHookStateDeletePath = function (fiber, id, path) {\n var hook = findHook(fiber, id);\n\n if (hook !== null) {\n var newState = copyWithDelete(hook.memoizedState, path);\n hook.memoizedState = newState;\n hook.baseState = newState; // We aren't actually adding an update to the queue,\n // because there is no update we can add for useReducer hooks that won't trigger an error.\n // (There's no appropriate action type for DevTools overrides.)\n // As a result though, React will see the scheduled update as a noop and bailout.\n // Shallow cloning props works as a workaround for now to bypass the bailout check.\n\n fiber.memoizedProps = _assign({}, fiber.memoizedProps);\n scheduleUpdateOnFiber(fiber, SyncLane, NoTimestamp);\n }\n };\n\n overrideHookStateRenamePath = function (fiber, id, oldPath, newPath) {\n var hook = findHook(fiber, id);\n\n if (hook !== null) {\n var newState = copyWithRename(hook.memoizedState, oldPath, newPath);\n hook.memoizedState = newState;\n hook.baseState = newState; // We aren't actually adding an update to the queue,\n // because there is no update we can add for useReducer hooks that won't trigger an error.\n // (There's no appropriate action type for DevTools overrides.)\n // As a result though, React will see the scheduled update as a noop and bailout.\n // Shallow cloning props works as a workaround for now to bypass the bailout check.\n\n fiber.memoizedProps = _assign({}, fiber.memoizedProps);\n scheduleUpdateOnFiber(fiber, SyncLane, NoTimestamp);\n }\n }; // Support DevTools props for function components, forwardRef, memo, host components, etc.\n\n\n overrideProps = function (fiber, path, value) {\n fiber.pendingProps = copyWithSet(fiber.memoizedProps, path, value);\n\n if (fiber.alternate) {\n fiber.alternate.pendingProps = fiber.pendingProps;\n }\n\n scheduleUpdateOnFiber(fiber, SyncLane, NoTimestamp);\n };\n\n overridePropsDeletePath = function (fiber, path) {\n fiber.pendingProps = copyWithDelete(fiber.memoizedProps, path);\n\n if (fiber.alternate) {\n fiber.alternate.pendingProps = fiber.pendingProps;\n }\n\n scheduleUpdateOnFiber(fiber, SyncLane, NoTimestamp);\n };\n\n overridePropsRenamePath = function (fiber, oldPath, newPath) {\n fiber.pendingProps = copyWithRename(fiber.memoizedProps, oldPath, newPath);\n\n if (fiber.alternate) {\n fiber.alternate.pendingProps = fiber.pendingProps;\n }\n\n scheduleUpdateOnFiber(fiber, SyncLane, NoTimestamp);\n };\n\n scheduleUpdate = function (fiber) {\n scheduleUpdateOnFiber(fiber, SyncLane, NoTimestamp);\n };\n\n setSuspenseHandler = function (newShouldSuspendImpl) {\n shouldSuspendImpl = newShouldSuspendImpl;\n };\n}\n\nfunction findHostInstanceByFiber(fiber) {\n var hostFiber = findCurrentHostFiber(fiber);\n\n if (hostFiber === null) {\n return null;\n }\n\n return hostFiber.stateNode;\n}\n\nfunction emptyFindFiberByHostInstance(instance) {\n return null;\n}\n\nfunction getCurrentFiberForDevTools() {\n return current;\n}\n\nfunction injectIntoDevTools(devToolsConfig) {\n var findFiberByHostInstance = devToolsConfig.findFiberByHostInstance;\n var ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\n return injectInternals({\n bundleType: devToolsConfig.bundleType,\n version: devToolsConfig.version,\n rendererPackageName: devToolsConfig.rendererPackageName,\n rendererConfig: devToolsConfig.rendererConfig,\n overrideHookState: overrideHookState,\n overrideHookStateDeletePath: overrideHookStateDeletePath,\n overrideHookStateRenamePath: overrideHookStateRenamePath,\n overrideProps: overrideProps,\n overridePropsDeletePath: overridePropsDeletePath,\n overridePropsRenamePath: overridePropsRenamePath,\n setSuspenseHandler: setSuspenseHandler,\n scheduleUpdate: scheduleUpdate,\n currentDispatcherRef: ReactCurrentDispatcher,\n findHostInstanceByFiber: findHostInstanceByFiber,\n findFiberByHostInstance: findFiberByHostInstance || emptyFindFiberByHostInstance,\n // React Refresh\n findHostInstancesForRefresh: findHostInstancesForRefresh ,\n scheduleRefresh: scheduleRefresh ,\n scheduleRoot: scheduleRoot ,\n setRefreshHandler: setRefreshHandler ,\n // Enables DevTools to append owner stacks to error messages in DEV mode.\n getCurrentFiber: getCurrentFiberForDevTools \n });\n}\n\nfunction ReactDOMRoot(container, options) {\n this._internalRoot = createRootImpl(container, ConcurrentRoot, options);\n}\n\nfunction ReactDOMBlockingRoot(container, tag, options) {\n this._internalRoot = createRootImpl(container, tag, options);\n}\n\nReactDOMRoot.prototype.render = ReactDOMBlockingRoot.prototype.render = function (children) {\n var root = this._internalRoot;\n\n {\n if (typeof arguments[1] === 'function') {\n error('render(...): does not support the second callback argument. ' + 'To execute a side effect after rendering, declare it in a component body with useEffect().');\n }\n\n var container = root.containerInfo;\n\n if (container.nodeType !== COMMENT_NODE) {\n var hostInstance = findHostInstanceWithNoPortals(root.current);\n\n if (hostInstance) {\n if (hostInstance.parentNode !== container) {\n error('render(...): It looks like the React-rendered content of the ' + 'root container was removed without using React. This is not ' + 'supported and will cause errors. Instead, call ' + \"root.unmount() to empty a root's container.\");\n }\n }\n }\n }\n\n updateContainer(children, root, null, null);\n};\n\nReactDOMRoot.prototype.unmount = ReactDOMBlockingRoot.prototype.unmount = function () {\n {\n if (typeof arguments[0] === 'function') {\n error('unmount(...): does not support a callback argument. ' + 'To execute a side effect after rendering, declare it in a component body with useEffect().');\n }\n }\n\n var root = this._internalRoot;\n var container = root.containerInfo;\n updateContainer(null, root, null, function () {\n unmarkContainerAsRoot(container);\n });\n};\n\nfunction createRootImpl(container, tag, options) {\n // Tag is either LegacyRoot or Concurrent Root\n var hydrate = options != null && options.hydrate === true;\n var hydrationCallbacks = options != null && options.hydrationOptions || null;\n var mutableSources = options != null && options.hydrationOptions != null && options.hydrationOptions.mutableSources || null;\n var root = createContainer(container, tag, hydrate);\n markContainerAsRoot(root.current, container);\n var containerNodeType = container.nodeType;\n\n {\n var rootContainerElement = container.nodeType === COMMENT_NODE ? container.parentNode : container;\n listenToAllSupportedEvents(rootContainerElement);\n }\n\n if (mutableSources) {\n for (var i = 0; i < mutableSources.length; i++) {\n var mutableSource = mutableSources[i];\n registerMutableSourceForHydration(root, mutableSource);\n }\n }\n\n return root;\n}\nfunction createLegacyRoot(container, options) {\n return new ReactDOMBlockingRoot(container, LegacyRoot, options);\n}\nfunction isValidContainer(node) {\n return !!(node && (node.nodeType === ELEMENT_NODE || node.nodeType === DOCUMENT_NODE || node.nodeType === DOCUMENT_FRAGMENT_NODE || node.nodeType === COMMENT_NODE && node.nodeValue === ' react-mount-point-unstable '));\n}\n\nvar ReactCurrentOwner$3 = ReactSharedInternals.ReactCurrentOwner;\nvar topLevelUpdateWarnings;\nvar warnedAboutHydrateAPI = false;\n\n{\n topLevelUpdateWarnings = function (container) {\n if (container._reactRootContainer && container.nodeType !== COMMENT_NODE) {\n var hostInstance = findHostInstanceWithNoPortals(container._reactRootContainer._internalRoot.current);\n\n if (hostInstance) {\n if (hostInstance.parentNode !== container) {\n error('render(...): It looks like the React-rendered content of this ' + 'container was removed without using React. This is not ' + 'supported and will cause errors. Instead, call ' + 'ReactDOM.unmountComponentAtNode to empty a container.');\n }\n }\n }\n\n var isRootRenderedBySomeReact = !!container._reactRootContainer;\n var rootEl = getReactRootElementInContainer(container);\n var hasNonRootReactChild = !!(rootEl && getInstanceFromNode(rootEl));\n\n if (hasNonRootReactChild && !isRootRenderedBySomeReact) {\n error('render(...): Replacing React-rendered children with a new root ' + 'component. If you intended to update the children of this node, ' + 'you should instead have the existing children update their state ' + 'and render the new components instead of calling ReactDOM.render.');\n }\n\n if (container.nodeType === ELEMENT_NODE && container.tagName && container.tagName.toUpperCase() === 'BODY') {\n error('render(): Rendering components directly into document.body is ' + 'discouraged, since its children are often manipulated by third-party ' + 'scripts and browser extensions. This may lead to subtle ' + 'reconciliation issues. Try rendering into a container element created ' + 'for your app.');\n }\n };\n}\n\nfunction getReactRootElementInContainer(container) {\n if (!container) {\n return null;\n }\n\n if (container.nodeType === DOCUMENT_NODE) {\n return container.documentElement;\n } else {\n return container.firstChild;\n }\n}\n\nfunction shouldHydrateDueToLegacyHeuristic(container) {\n var rootElement = getReactRootElementInContainer(container);\n return !!(rootElement && rootElement.nodeType === ELEMENT_NODE && rootElement.hasAttribute(ROOT_ATTRIBUTE_NAME));\n}\n\nfunction legacyCreateRootFromDOMContainer(container, forceHydrate) {\n var shouldHydrate = forceHydrate || shouldHydrateDueToLegacyHeuristic(container); // First clear any existing content.\n\n if (!shouldHydrate) {\n var warned = false;\n var rootSibling;\n\n while (rootSibling = container.lastChild) {\n {\n if (!warned && rootSibling.nodeType === ELEMENT_NODE && rootSibling.hasAttribute(ROOT_ATTRIBUTE_NAME)) {\n warned = true;\n\n error('render(): Target node has markup rendered by React, but there ' + 'are unrelated nodes as well. This is most commonly caused by ' + 'white-space inserted around server-rendered markup.');\n }\n }\n\n container.removeChild(rootSibling);\n }\n }\n\n {\n if (shouldHydrate && !forceHydrate && !warnedAboutHydrateAPI) {\n warnedAboutHydrateAPI = true;\n\n warn('render(): Calling ReactDOM.render() to hydrate server-rendered markup ' + 'will stop working in React v18. Replace the ReactDOM.render() call ' + 'with ReactDOM.hydrate() if you want React to attach to the server HTML.');\n }\n }\n\n return createLegacyRoot(container, shouldHydrate ? {\n hydrate: true\n } : undefined);\n}\n\nfunction warnOnInvalidCallback$1(callback, callerName) {\n {\n if (callback !== null && typeof callback !== 'function') {\n error('%s(...): Expected the last optional `callback` argument to be a ' + 'function. Instead received: %s.', callerName, callback);\n }\n }\n}\n\nfunction legacyRenderSubtreeIntoContainer(parentComponent, children, container, forceHydrate, callback) {\n {\n topLevelUpdateWarnings(container);\n warnOnInvalidCallback$1(callback === undefined ? null : callback, 'render');\n } // TODO: Without `any` type, Flow says \"Property cannot be accessed on any\n // member of intersection type.\" Whyyyyyy.\n\n\n var root = container._reactRootContainer;\n var fiberRoot;\n\n if (!root) {\n // Initial mount\n root = container._reactRootContainer = legacyCreateRootFromDOMContainer(container, forceHydrate);\n fiberRoot = root._internalRoot;\n\n if (typeof callback === 'function') {\n var originalCallback = callback;\n\n callback = function () {\n var instance = getPublicRootInstance(fiberRoot);\n originalCallback.call(instance);\n };\n } // Initial mount should not be batched.\n\n\n unbatchedUpdates(function () {\n updateContainer(children, fiberRoot, parentComponent, callback);\n });\n } else {\n fiberRoot = root._internalRoot;\n\n if (typeof callback === 'function') {\n var _originalCallback = callback;\n\n callback = function () {\n var instance = getPublicRootInstance(fiberRoot);\n\n _originalCallback.call(instance);\n };\n } // Update\n\n\n updateContainer(children, fiberRoot, parentComponent, callback);\n }\n\n return getPublicRootInstance(fiberRoot);\n}\n\nfunction findDOMNode(componentOrElement) {\n {\n var owner = ReactCurrentOwner$3.current;\n\n if (owner !== null && owner.stateNode !== null) {\n var warnedAboutRefsInRender = owner.stateNode._warnedAboutRefsInRender;\n\n if (!warnedAboutRefsInRender) {\n error('%s is accessing findDOMNode inside its render(). ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', getComponentName(owner.type) || 'A component');\n }\n\n owner.stateNode._warnedAboutRefsInRender = true;\n }\n }\n\n if (componentOrElement == null) {\n return null;\n }\n\n if (componentOrElement.nodeType === ELEMENT_NODE) {\n return componentOrElement;\n }\n\n {\n return findHostInstanceWithWarning(componentOrElement, 'findDOMNode');\n }\n}\nfunction hydrate(element, container, callback) {\n if (!isValidContainer(container)) {\n {\n throw Error( \"Target container is not a DOM element.\" );\n }\n }\n\n {\n var isModernRoot = isContainerMarkedAsRoot(container) && container._reactRootContainer === undefined;\n\n if (isModernRoot) {\n error('You are calling ReactDOM.hydrate() on a container that was previously ' + 'passed to ReactDOM.createRoot(). This is not supported. ' + 'Did you mean to call createRoot(container, {hydrate: true}).render(element)?');\n }\n } // TODO: throw or warn if we couldn't hydrate?\n\n\n return legacyRenderSubtreeIntoContainer(null, element, container, true, callback);\n}\nfunction render(element, container, callback) {\n if (!isValidContainer(container)) {\n {\n throw Error( \"Target container is not a DOM element.\" );\n }\n }\n\n {\n var isModernRoot = isContainerMarkedAsRoot(container) && container._reactRootContainer === undefined;\n\n if (isModernRoot) {\n error('You are calling ReactDOM.render() on a container that was previously ' + 'passed to ReactDOM.createRoot(). This is not supported. ' + 'Did you mean to call root.render(element)?');\n }\n }\n\n return legacyRenderSubtreeIntoContainer(null, element, container, false, callback);\n}\nfunction unstable_renderSubtreeIntoContainer(parentComponent, element, containerNode, callback) {\n if (!isValidContainer(containerNode)) {\n {\n throw Error( \"Target container is not a DOM element.\" );\n }\n }\n\n if (!(parentComponent != null && has(parentComponent))) {\n {\n throw Error( \"parentComponent must be a valid React Component\" );\n }\n }\n\n return legacyRenderSubtreeIntoContainer(parentComponent, element, containerNode, false, callback);\n}\nfunction unmountComponentAtNode(container) {\n if (!isValidContainer(container)) {\n {\n throw Error( \"unmountComponentAtNode(...): Target container is not a DOM element.\" );\n }\n }\n\n {\n var isModernRoot = isContainerMarkedAsRoot(container) && container._reactRootContainer === undefined;\n\n if (isModernRoot) {\n error('You are calling ReactDOM.unmountComponentAtNode() on a container that was previously ' + 'passed to ReactDOM.createRoot(). This is not supported. Did you mean to call root.unmount()?');\n }\n }\n\n if (container._reactRootContainer) {\n {\n var rootEl = getReactRootElementInContainer(container);\n var renderedByDifferentReact = rootEl && !getInstanceFromNode(rootEl);\n\n if (renderedByDifferentReact) {\n error(\"unmountComponentAtNode(): The node you're attempting to unmount \" + 'was rendered by another copy of React.');\n }\n } // Unmount should not be batched.\n\n\n unbatchedUpdates(function () {\n legacyRenderSubtreeIntoContainer(null, null, container, false, function () {\n // $FlowFixMe This should probably use `delete container._reactRootContainer`\n container._reactRootContainer = null;\n unmarkContainerAsRoot(container);\n });\n }); // If you call unmountComponentAtNode twice in quick succession, you'll\n // get `true` twice. That's probably fine?\n\n return true;\n } else {\n {\n var _rootEl = getReactRootElementInContainer(container);\n\n var hasNonRootReactChild = !!(_rootEl && getInstanceFromNode(_rootEl)); // Check if the container itself is a React root node.\n\n var isContainerReactRoot = container.nodeType === ELEMENT_NODE && isValidContainer(container.parentNode) && !!container.parentNode._reactRootContainer;\n\n if (hasNonRootReactChild) {\n error(\"unmountComponentAtNode(): The node you're attempting to unmount \" + 'was rendered by React and is not a top-level container. %s', isContainerReactRoot ? 'You may have accidentally passed in a React root node instead ' + 'of its container.' : 'Instead, have the parent component update its state and ' + 'rerender in order to remove this component.');\n }\n }\n\n return false;\n }\n}\n\nsetAttemptUserBlockingHydration(attemptUserBlockingHydration$1);\nsetAttemptContinuousHydration(attemptContinuousHydration$1);\nsetAttemptHydrationAtCurrentPriority(attemptHydrationAtCurrentPriority$1);\nsetAttemptHydrationAtPriority(runWithPriority$2);\nvar didWarnAboutUnstableCreatePortal = false;\n\n{\n if (typeof Map !== 'function' || // $FlowIssue Flow incorrectly thinks Map has no prototype\n Map.prototype == null || typeof Map.prototype.forEach !== 'function' || typeof Set !== 'function' || // $FlowIssue Flow incorrectly thinks Set has no prototype\n Set.prototype == null || typeof Set.prototype.clear !== 'function' || typeof Set.prototype.forEach !== 'function') {\n error('React depends on Map and Set built-in types. Make sure that you load a ' + 'polyfill in older browsers. https://reactjs.org/link/react-polyfills');\n }\n}\n\nsetRestoreImplementation(restoreControlledState$3);\nsetBatchingImplementation(batchedUpdates$1, discreteUpdates$1, flushDiscreteUpdates, batchedEventUpdates$1);\n\nfunction createPortal$1(children, container) {\n var key = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n if (!isValidContainer(container)) {\n {\n throw Error( \"Target container is not a DOM element.\" );\n }\n } // TODO: pass ReactDOM portal implementation as third argument\n // $FlowFixMe The Flow type is opaque but there's no way to actually create it.\n\n\n return createPortal(children, container, null, key);\n}\n\nfunction renderSubtreeIntoContainer(parentComponent, element, containerNode, callback) {\n\n return unstable_renderSubtreeIntoContainer(parentComponent, element, containerNode, callback);\n}\n\nfunction unstable_createPortal(children, container) {\n var key = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n {\n if (!didWarnAboutUnstableCreatePortal) {\n didWarnAboutUnstableCreatePortal = true;\n\n warn('The ReactDOM.unstable_createPortal() alias has been deprecated, ' + 'and will be removed in React 18+. Update your code to use ' + 'ReactDOM.createPortal() instead. It has the exact same API, ' + 'but without the \"unstable_\" prefix.');\n }\n }\n\n return createPortal$1(children, container, key);\n}\n\nvar Internals = {\n // Keep in sync with ReactTestUtils.js, and ReactTestUtilsAct.js.\n // This is an array for better minification.\n Events: [getInstanceFromNode, getNodeFromInstance, getFiberCurrentPropsFromNode, enqueueStateRestore, restoreStateIfNeeded, flushPassiveEffects, // TODO: This is related to `act`, not events. Move to separate key?\n IsThisRendererActing]\n};\nvar foundDevTools = injectIntoDevTools({\n findFiberByHostInstance: getClosestInstanceFromNode,\n bundleType: 1 ,\n version: ReactVersion,\n rendererPackageName: 'react-dom'\n});\n\n{\n if (!foundDevTools && canUseDOM && window.top === window.self) {\n // If we're in Chrome or Firefox, provide a download link if not installed.\n if (navigator.userAgent.indexOf('Chrome') > -1 && navigator.userAgent.indexOf('Edge') === -1 || navigator.userAgent.indexOf('Firefox') > -1) {\n var protocol = window.location.protocol; // Don't warn in exotic cases like chrome-extension://.\n\n if (/^(https?|file):$/.test(protocol)) {\n // eslint-disable-next-line react-internal/no-production-logging\n console.info('%cDownload the React DevTools ' + 'for a better development experience: ' + 'https://reactjs.org/link/react-devtools' + (protocol === 'file:' ? '\\nYou might need to use a local HTTP server (instead of file://): ' + 'https://reactjs.org/link/react-devtools-faq' : ''), 'font-weight:bold');\n }\n }\n }\n}\n\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = Internals;\nexports.createPortal = createPortal$1;\nexports.findDOMNode = findDOMNode;\nexports.flushSync = flushSync;\nexports.hydrate = hydrate;\nexports.render = render;\nexports.unmountComponentAtNode = unmountComponentAtNode;\nexports.unstable_batchedUpdates = batchedUpdates$1;\nexports.unstable_createPortal = unstable_createPortal;\nexports.unstable_renderSubtreeIntoContainer = renderSubtreeIntoContainer;\nexports.version = ReactVersion;\n })();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2Nqcy9yZWFjdC1kb20uZGV2ZWxvcG1lbnQuanMuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFYTs7QUFFYixJQUFJLElBQXFDO0FBQ3pDO0FBQ0E7O0FBRUEsWUFBWSxtQkFBTyxDQUFDLDRDQUFPO0FBQzNCLGNBQWMsbUJBQU8sQ0FBQyxnRkFBZTtBQUNyQyxnQkFBZ0IsbUJBQU8sQ0FBQyxvREFBVztBQUNuQyxjQUFjLG1CQUFPLENBQUMsOERBQW1COztBQUV6Qzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsMkZBQTJGLGFBQWE7QUFDeEc7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0ZBQStGLGVBQWU7QUFDOUc7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxLQUFLLEdBQUc7O0FBRVIsa0RBQWtEO0FBQ2xEO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGdDQUFnQzs7QUFFaEMsa0JBQWtCOztBQUVsQixvQkFBb0I7O0FBRXBCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUEsZ0NBQWdDOztBQUVoQyxrQ0FBa0M7QUFDbEMsaUNBQWlDO0FBQ2pDOztBQUVBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWOztBQUVBLHNDQUFzQzs7QUFFdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGtCQUFrQix5QkFBeUI7QUFDM0M7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7O0FBRUEsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTs7QUFFQSwyQkFBMkI7QUFDM0I7QUFDQTs7QUFFQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBOztBQUVBLDRCQUE0QjtBQUM1Qjs7QUFFQSxpQkFBaUI7QUFDakI7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBOzs7QUFHQSxxQkFBcUI7O0FBRXJCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxHQUFHO0FBQ0o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsR0FBRztBQUNKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxHQUFHO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsR0FBRzs7QUFFSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEdBQUc7QUFDSjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxHQUFHO0FBQ0o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxHQUFHOztBQUVKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsR0FBRzs7QUFFSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7O0FBRUE7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxHQUFHOztBQUVKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEdBQUc7O0FBRUo7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsR0FBRztBQUNKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxHQUFHO0FBQ0o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFlBQVk7QUFDdkIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsR0FBRztBQUNkOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLElBQUk7OztBQUdKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVDQUF1Qzs7QUFFdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7O0FBRVQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTOztBQUVUO0FBQ0EsdUJBQXVCO0FBQ3ZCO0FBQ0EsU0FBUztBQUNULHdCQUF3QjtBQUN4QjtBQUNBLFNBQVM7QUFDVCx3QkFBd0I7QUFDeEI7QUFDQSxTQUFTO0FBQ1QseUJBQXlCO0FBQ3pCO0FBQ0EsU0FBUztBQUNULHlCQUF5QjtBQUN6QjtBQUNBLFNBQVM7QUFDVCxrQ0FBa0M7QUFDbEM7QUFDQSxTQUFTO0FBQ1QsNEJBQTRCO0FBQzVCO0FBQ0EsU0FBUztBQUNULE9BQU87QUFDUDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQSxNQUFNOzs7QUFHTjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsMkRBQTJEOztBQUUzRDtBQUNBOztBQUVBO0FBQ0EseURBQXlEO0FBQ3pEOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTOzs7QUFHVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPOztBQUVQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTs7QUFFQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxhQUFhLGtCQUFrQjtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CO0FBQ25COztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjs7O0FBR2xCO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxJQUFJOzs7QUFHSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07O0FBRU47QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047OztBQUdBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsNENBQTRDO0FBQzVDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxHQUFHO0FBQ047QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGtDQUFrQztBQUNsQzs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTs7QUFFQSw0QkFBNEI7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCOztBQUVBO0FBQ0E7QUFDQSwwREFBMEQ7QUFDMUQ7O0FBRUE7QUFDQTtBQUNBOztBQUVBLGtFQUFrRTtBQUNsRTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7OztBQUdBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7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QUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLG1GQUFtRjtBQUNuRjs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFRLDBDQUEwQzs7O0FBR2xEO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGdHQUFnRztBQUNoRzs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLDBDQUEwQzs7O0FBR2xEO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTs7O0FBR047QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07OztBQUdOO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFF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Q0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsVUFBVTtBQUNyQixXQUFXLEdBQUc7QUFDZCxXQUFXLE1BQU07QUFDakI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxVQUFVO0FBQ3JCLFdBQVcsR0FBRztBQUNkLFdBQVcsTUFBTTtBQUNqQjs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTs7QUFFTjtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0EsTUFBTTs7QUFFTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTzs7QUFFUDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLE1BQU07QUFDTixJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7OztBQUdBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsUUFBUTs7O0FBR1I7QUFDQSxNQUFNO0FBQ047QUFDQTs7O0FBR0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFFBQVE7QUFDUjs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7OztBQUdKO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7OztBQUdKOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0YsdUNBQXVDOztBQUV2QywrQkFBK0I7QUFDL0I7O0FBRUE7QUFDQTtBQUNBLHdCQUF3Qjs7QUFFeEI7QUFDQSx1Q0FBdUM7O0FBRXZDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiLFdBQVc7QUFDWDtBQUNBO0FBQ0EsUUFBUTtBQUNSOztBQUVBO0FBQ0EsMEVBQTBFO0FBQzFFOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTs7O0FBR047QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxxQ0FBcUM7O0FBRXJDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFF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O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7OztBQUdKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNDQUFzQzs7QUFFdEM7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOzs7QUFHQSx1RUFBdUU7QUFDdkU7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOENBQThDO0FBQzlDO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsRUFBRTtBQUNGOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSwyQ0FBMkM7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsa0JBQWtCLGdCQUFnQjtBQUNsQztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsNENBQTRDOztBQUU1QztBQUNBO0FBQ0E7QUFDQSx1Q0FBdUM7QUFDdkM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1Q0FBdUM7O0FBRXZDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0NBQXNDOztBQUV0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhDQUE4Qzs7QUFFOUM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxREFBcUQ7QUFDckQ7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLDBEQUEwRDs7QUFFMUQscUJBQXFCO0FBQ3JCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047OztBQUdBO0FBQ0EsSUFBSTtBQUNKOzs7QUFHQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FB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R0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxtQ0FBbUM7QUFDbkM7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsb0NBQW9DO0FBQ3BDO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsd0NBQXdDO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSx3Q0FBd0M7QUFDeEM7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLDBDQUEwQztBQUMxQztBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsWUFBWSxRQUFRO0FBQ3BCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7OztBQUdKO0FBQ0Esa0RBQWtEO0FBQ2xEOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFH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QUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxTQUFTO0FBQ3JCOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQSxJQUFJO0FBQ0o7OztBQUdBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFlBQVksU0FBUztBQUNyQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsNENBQTRDO0FBQzVDO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSw4R0FBOEc7QUFDOUc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSxFQUFFOzs7QUFHRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFdBQVc7O0FBRVg7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0osa0JBQWtCLGtCQUFrQjtBQUNwQztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsd0JBQXdCO0FBQ25DLFlBQVk7QUFDWjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLHdCQUF3QjtBQUNuQyxZQUFZO0FBQ1o7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyx3QkFBd0I7QUFDbkMsV0FBVyxRQUFRO0FBQ25CLFlBQVk7QUFDWjs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFdBQVcsWUFBWTtBQUN2QixZQUFZO0FBQ1o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQztBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFlBQVksWUFBWTtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTs7O0FBR1I7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07OztBQUdOO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyx3QkFBd0I7QUFDbkMsV0FBVyxRQUFRO0FBQ25COztBQUVBO0FBQ0E7QUFDQSw4Q0FBOEM7QUFDOUM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsK0VBQStFO0FBQy9FOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBLElBQUk7QUFDSjtBQUNBLElBQUk7QUFDSjtBQUNBLElBQUk7QUFDSjtBQUNBLElBQUk7QUFDSjtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07OztBQUdOO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLG9CQUFvQixzQkFBc0I7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkIsWUFBWTtBQUNaOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7OztBQUdKOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkdBQTJHO0FBQzNHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztB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LEVBQUU7O0FBRUY7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTSwyRUFBMkUsb0dBQW9HLGtDQUFrQztBQUN2TjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFVBQVU7OztBQUdWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQSxNQUFNLG9HQUFvRztBQUMxRztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxFQUFFOztBQUVGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsbUVBQW1FOztBQUVuRSwrRkFBK0Y7QUFDL0Y7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7OztBQUdKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsNEJBQTRCO0FBQ2xEO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSw4Q0FBOEM7QUFDOUM7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsZ0RBQWdEO0FBQ2hEOztBQUVBOztBQUVBOztBQUVBO0FBQ0EsZ0RBQWdEO0FBQ2hEOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBLHFCQUFxQix3QkFBd0I7QUFDN0M7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxzQ0FBc0M7QUFDdEM7QUFDQSxnRkFBZ0Y7QUFDaEY7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0M7O0FBRS9DO0FBQ0EsY0FBYzs7O0FBR2Q7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMERBQTBEO0FBQzFEO0FBQ0E7QUFDQSx3Q0FBd0M7QUFDeEM7QUFDQTtBQUNBO0FBQ0EsMnZCQUEydkI7O0FBRTN2QjtBQUNBO0FBQ0E7QUFDQSxxQ0FBcUM7O0FBRXJDLHdEQUF3RDs7QUFFeEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGlDQUFpQzs7QUFFakM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQ0FBMEM7O0FBRTFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxTQUFTLGNBQWM7QUFDdkI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVEQUF1RDtBQUN2RDs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDO0FBQzNDO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLElBQUk7OztBQUdKO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7O0FBRUE7QUFDQSw2Q0FBNkM7QUFDN0M7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSwrQ0FBK0M7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sK0NBQStDO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7OztBQUdBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTs7O0FBR0EsMEVBQTBFO0FBQzFFO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLDhCQUE4QjtBQUM5QjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkhBQTJIO0FBQzNIO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFVBQVU7QUFDVjtBQUNBOztBQUVBO0FBQ0E7O0FBRUEsb0VBQW9FOztBQUVwRTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxFQUFFOzs7QUFHRiwyREFBMkQ7O0FBRTNELHFEQUFxRDtBQUNyRDtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBOzs7QUFHQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjs7O0FBR0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLG9EQUFvRDtBQUNwRDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxxQkFBcUI7QUFDckI7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsNkNBQTZDO0FBQzdDO0FBQ0E7O0FBRUEsMkhBQTJIO0FBQzNIOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEVBQTBFO0FBQzFFOztBQUVBO0FBQ0EsK0NBQStDOztBQUUvQztBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLG9FQUFvRTtBQUNwRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxNQUFNOztBQUVOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07OztBQUdOO0FBQ0E7O0FBRUE7QUFDQSx5Q0FBeUM7O0FBRXpDO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLDJCQUEyQjtBQUMzQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCOztBQUV6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlDQUF5QztBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0Qjs7QUFFNUI7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsbUJBQW1CO0FBQ3BDOztBQUVBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQSxTQUFTO0FBQ1Q7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0EsVUFBVTs7O0FBR1Y7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxvQkFBb0I7QUFDcEI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDhEQUE4RDtBQUM5RCxxREFBcUQ7QUFDckQsMkRBQTJEO0FBQzNELDJDQUEyQztBQUMzQztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzREFBc0Q7O0FBRXREOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSxNQUFNO0FBQ047OztBQUdBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsK0NBQStDOztBQUUvQzs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxNQUFNOzs7QUFHTjtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEI7O0FBRTFCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSw0QkFBNEI7O0FBRTVCOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNDQUFzQztBQUN0QztBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSwrREFBK0Q7O0FBRS9ELDREQUE0RDtBQUM1RDs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVOzs7QUFHVjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTs7O0FBR1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLG9EQUFvRCx5REFBeUQ7QUFDN0csOEJBQThCOztBQUU5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7OztBQUdSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QjtBQUN2QjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQ0FBMEM7O0FBRTFDOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFVBQVUseUJBQXlCOzs7QUFHbkM7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0o7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7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QUNBLElBQUk7OztBQUdKLGtHQUFrRztBQUNsRyxnREFBZ0Q7QUFDaEQ7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsdUNBQXVDOztBQUV2Qzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLDhJQUE4STs7QUFFOUk7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQSxVQUFVO0FBQ1Y7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLFVBQVU7QUFDVixrRUFBa0UsNENBQTRDO0FBQzlHOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxrQ0FBa0M7QUFDbEMsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjs7O0FBR0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxFQUFFOzs7QUFHRjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOzs7QUFHQTtBQUNBLHNEQUFzRDtBQUN0RDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxtSUFBbUk7QUFDbkk7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjs7O0FBR0E7QUFDQTtBQUNBLElBQUk7QUFDSjs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFOzs7QUFHRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLG1JQUFtSTtBQUNuSTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjs7O0FBR0E7QUFDQTtBQUNBLElBQUk7QUFDSjs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxxQ0FBcUM7O0FBRXJDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEpBQThKLHlDQUF5QztBQUN2TTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047OztBQUdBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07OztBQUdOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsc0JBQXNCLHdCQUF3QjtBQUM5QztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsV0FBVyxrREFBa0Q7QUFDN0Q7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsYUFBYSw2QkFBNkI7QUFDMUM7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxNQUFNOzs7QUFHTix3RUFBd0U7O0FBRXhFLFdBQVcsNkJBQTZCO0FBQ3hDOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFFBQVE7OztBQUdSO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsUUFBUTtBQUNSOzs7QUFHQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBLGVBQWUsYUFBYTtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsV0FBVyxpQ0FBaUM7QUFDNUM7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsYUFBYSxZQUFZO0FBQ3pCOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EsTUFBTTs7O0FBR04sd0VBQXdFOztBQUV4RSxXQUFXLFlBQVk7QUFDdkI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFVBQVU7OztBQUdWO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2Q0FBNkMsTUFBTTtBQUNuRDtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNOzs7QUFHTjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNOzs7QUFHTjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLDBEQUEwRDtBQUMxRDs7QUFFQSwrQ0FBK0M7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSw4REFBOEQ7O0FBRTlEO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLDhEQUE4RDs7QUFFOUQ7QUFDQTtBQUNBLElBQUk7QUFDSjs7O0FBR0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsZ0NBQWdDO0FBQ2hDO0FBQ0E7QUFDQTs7QUFFQSxvQ0FBb0M7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLHdDQUF3QztBQUN4QztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBLDRDQUE0Qzs7QUFFNUM7QUFDQTtBQUNBLElBQUk7OztBQUdKO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7OztBQUdBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQztBQUNsQztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQSw2SEFBNkg7O0FBRTdILHFDQUFxQztBQUNyQzs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FB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O0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTixJQUFJO0FBQ0o7OztBQUdBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsNkJBQTZCOztBQUU3QixxQ0FBcUM7O0FBRXJDOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQSxVQUFVO0FBQ1Y7QUFDQTs7O0FBR0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7OztBQUdWO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsTUFBTTs7QUFFTjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0EsTUFBTTtBQUNOOzs7QUFHQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsdUNBQXVDO0FBQ3ZDOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSwyQ0FBMkM7QUFDakQ7OztBQUdBO0FBQ0E7QUFDQTs7QUFFQSxtQ0FBbUM7QUFDbkM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSw0Q0FBNEM7O0FBRTVDLHNDQUFzQztBQUN0QztBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxxREFBcUQ7O0FBRXJEO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTs7QUFFQSxrQ0FBa0M7QUFDbEM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQSxvQ0FBb0M7QUFDcEM7QUFDQTtBQUNBOztBQUVBLG9DQUFvQzs7QUFFcEM7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQSxHQUFHLHFDQUFxQzs7QUFFeEM7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSw4REFBOEQ7O0FBRTlEO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEdBQUcsd0JBQXdCO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOztBQUVBO0FBQ0E7QUFDQSx5S0FBeUssMENBQTBDO0FBQ25OO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7OztBQUdKO0FBQ0E7QUFDQTs7QUFFQSw4Q0FBOEM7QUFDOUM7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0M7QUFDcEM7OztBQUdBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQOztBQUVBO0FBQ0EsSUFBSTtBQUNKOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHNFQUFzRTtBQUN0RTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVUsZUFBZTtBQUN6QixVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EscURBQXFEO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpR0FBaUc7QUFDakc7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGdDQUFnQzs7QUFFaEM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0o7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7OztBQUdBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLG9DQUFvQzs7QUFFcEM7QUFDQTtBQUNBO0FBQ0EsZ0RBQWdEOztBQUVoRDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7OztBQUdKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0EsVUFBVTs7O0FBR1Y7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBLFFBQVE7OztBQUdSO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlEQUFpRDtBQUNqRDs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0RBQWtEOztBQUVsRDtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7O0FBRUE7QUFDQSwwRUFBMEU7O0FBRTFFO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7OztBQUdBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0Esb0NBQW9DO0FBQ3BDOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0o7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7O0FBR0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUNBQXVDOztBQUV2QztBQUNBLE1BQU07OztBQUdOO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEsMkNBQTJDOztBQUUzQztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsSUFBSTtBQUNKOzs7QUFHQSxpREFBaUQ7O0FBRWpEO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0RBQWdEO0FBQ2hEOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0Esd0JBQXdCLDRDQUE0QztBQUNwRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7OztBQUdBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQ0FBcUM7O0FBRXJDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUM7O0FBRWpDO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFDQUFxQzs7QUFFckM7QUFDQSxJQUFJOzs7QUFHSix1Q0FBdUM7QUFDdkM7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQ0FBcUM7O0FBRXJDO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNOzs7QUFHTix5Q0FBeUM7O0FBRXpDO0FBQ0EsdUNBQXVDO0FBQ3ZDO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7OztBQUdGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7OztBQUdKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSwrQ0FBK0M7O0FBRS9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0Esd0RBQXdEO0FBQ3hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0RBQXdEO0FBQ3hEOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSx1REFBdUQ7QUFDdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxpR0FBaUc7QUFDakc7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9EQUFvRDtBQUNwRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKLGdHQUFnRztBQUNoRzs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLG9DQUFvQzs7QUFFcEM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFFBQVE7QUFDUjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEseU5BQXlOLEdBQUc7O0FBRTVOO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLHFCQUFxQjtBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSxtQkFBbUIsWUFBWTtBQUMvQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDRDQUE0Qzs7QUFFNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7OztBQUdaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQSxxQ0FBcUM7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxnREFBZ0Q7O0FBRWhEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOOzs7QUFHQTtBQUNBLHdDQUF3Qzs7QUFFeEM7QUFDQTtBQUNBO0FBQ0EsbURBQW1EOztBQUVuRDtBQUNBO0FBQ0EsTUFBTTtBQUNOOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsTUFBTTtBQUNOOzs7QUFHQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7QUFFQTtBQUNBO0FBQ0EsMENBQTBDOztBQUUxQztBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ04sZ0NBQWdDO0FBQ2hDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGNBQWM7QUFDZDs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQSxvSEFBb0g7QUFDcEg7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBOzs7QUFHQTtBQUNBLGNBQWM7QUFDZDtBQUNBOzs7QUFHQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7OztBQUdBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSw2REFBNkQ7O0FBRTdEOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsb0NBQW9DO0FBQzVDO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLG1EQUFtRDtBQUNuRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7OztBQUdBO0FBQ0EsK0NBQStDO0FBQy9DO0FBQ0E7O0FBRUEsc0hBQXNIOztBQUV0SCxnREFBZ0Q7QUFDaEQ7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsVUFBVTtBQUNWOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxVQUFVO0FBQ1Y7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7OztBQUdkO0FBQ0E7O0FBRUEscURBQXFEO0FBQ3JEO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQSxpREFBaUQ7QUFDakQ7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsK0NBQStDO0FBQy9DOztBQUVBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjOztBQUVkOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FB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O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSOzs7QUFHQTtBQUNBLE1BQU0sa0NBQWtDO0FBQ3hDOzs7QUFHQTtBQUNBLElBQUk7QUFDSjtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBLDBFQUEwRTs7QUFFMUU7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxJQUFJO0FBQ0o7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOzs7QUFHSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtREFBbUQ7QUFDbkQ7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLE1BQU07QUFDTjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGNBQWM7QUFDZCx5TkFBeU4scUNBQXFDLHdGQUF3RiwyQkFBMkIscUJBQXFCLFFBQVEsYUFBYTtBQUMzWixjQUFjO0FBQ2Q7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLE1BQU07QUFDTjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxNQUFNO0FBQ047QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQSxtREFBbUQ7QUFDbkQ7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7OztBQUdBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGlEQUFpRDtBQUNqRDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsUUFBUTtBQUNSOztBQUVBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLFFBQVEsNElBQTRJO0FBQ3BKO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07O0FBRU47QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxjQUFjO0FBQ2Q7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHVDQUF1QztBQUN2Qzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUNBQXFDO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtB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QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7OztBQUdBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQSwyQ0FBMkM7QUFDM0M7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTs7O0FBR0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSwwQ0FBMEM7QUFDMUM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0RkFBNEY7O0FBRTVGO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQSxVQUFVOzs7QUFHVjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxvRUFBb0U7OztBQUdwRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVOzs7QUFHVjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0EseUNBQXlDO0FBQ3pDOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7OztBQUdBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjs7O0FBR0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7OztBQUdBO0FBQ0E7O0FBRUEsaUNBQWlDO0FBQ2pDOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLElBQUk7OztBQUdKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLE1BQU07QUFDTiwrQ0FBK0M7QUFDL0M7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0M7O0FBRXBDO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJCQUEyQjtBQUMzQjs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsMkRBQTJEO0FBQzNEO0FBQ0E7QUFDQTtBQUNBLG9EQUFvRDtBQUNwRDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTs7QUFFQTtBQUNBLE1BQU07OztBQUdOO0FBQ0EsSUFBSTtBQUNKOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSx5Q0FBeUM7QUFDekM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLElBQUk7O0FBRUo7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRjs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHlDQUF5QztBQUN6Qzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxJQUFJOztBQUVKOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOzs7QUFHQTs7QUFFQTtBQUNBLElBQUk7OztBQUdKO0FBQ0EsNkNBQTZDOztBQUU3QztBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0Q0FBNEM7O0FBRTVDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0EseUVB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QUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSixzQ0FBc0M7O0FBRXRDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsd0JBQXdCLDRCQUE0QjtBQUNwRDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOzs7QUFHQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0EsSUFBSTs7O0FBR0o7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTs7O0FBR0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsdUNBQXVDO0FBQ3ZDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsdUNBQXVDO0FBQ3ZDOztBQUVBLDBDQUEwQzs7QUFFMUM7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsMENBQTBDOztBQUUxQztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOzs7QUFHQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsaURBQWlEO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBLGtCQUFrQiwyQkFBMkI7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBOztBQUVBLG1CQUFtQiwwQkFBMEI7QUFDN0M7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7OztBQUdBOztBQUVBO0FBQ0EsNENBQTRDOztBQUU1Qzs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSw0QkFBNEI7QUFDNUI7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYyx1QkFBdUI7QUFDckM7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCOztBQUUxQjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOOzs7QUFHQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLE1BQU07QUFDTjtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047OztBQUdBO0FBQ0E7QUFDQSxNQUFNO0FBQ047OztBQUdBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUEsb0NBQW9DO0FBQ3BDOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBLFFBQVEsNENBQTRDO0FBQ3BEOzs7QUFHQTtBQUNBLDhCQUE4QjtBQUM5QjtBQUNBOztBQUVBLHlDQUF5Qzs7QUFFekM7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsUUFBUTs7O0FBR1I7O0FBRUE7QUFDQSw4Q0FBOEM7QUFDOUM7O0FBRUE7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztB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QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07OztBQUdOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07OztBQUdOOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQztBQUMzQyxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EseURBQXlEO0FBQ3pEOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUI7O0FBRXpCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9COztBQUVwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdDQUF3QztBQUN4QztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0osZ0RBQWdEOztBQUVoRCx3Q0FBd0M7QUFDeEM7O0FBRUEsb0NBQW9DOztBQUVwQztBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvREFBb0Q7QUFDcEQ7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUNBQXFDOztBQUVyQztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0RBQXNEOztBQUV0RCx3Q0FBd0M7QUFDeEM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUNBQXlDOztBQUV6Qzs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSw0RUFBNEU7O0FBRTVFO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLHVFQUF1RTtBQUN2RTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0VBQXdFO0FBQ3hFO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyRUFBMkU7QUFDM0U7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4REFBOEQ7O0FBRTlEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxtREFBbUQ7QUFDbkQ7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsMEVBQTBFO0FBQzFFO0FBQ0E7O0FBRUEsOENBQThDO0FBQzlDOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNB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QTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLG9GQUFvRjs7QUFFcEY7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNOzs7QUFHTjtBQUNBO0FBQ0EsS0FBSztBQUNMLElBQUk7QUFDSjs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07OztBQUdOO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLGlNQUFpTSxjQUFjO0FBQy9NO0FBQ0EsSUFBSTs7O0FBR0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTs7O0FBR047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLLEdBQUc7QUFDUjs7QUFFQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBLDhFQUE4RTs7QUFFOUU7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOzs7QUFHQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0M7O0FBRS9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLDBEQUEwRDtBQUMxRCxvQkFBb0I7QUFDcEIsbUJBQW1CO0FBQ25CLGlCQUFpQjtBQUNqQixlQUFlO0FBQ2YsY0FBYztBQUNkLDhCQUE4QjtBQUM5QiwrQkFBK0I7QUFDL0IsNkJBQTZCO0FBQzdCLDJDQUEyQztBQUMzQyxlQUFlO0FBQ2YsR0FBRztBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vY2pzL3JlYWN0LWRvbS5kZXZlbG9wbWVudC5qcz9hYzg5Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBAbGljZW5zZSBSZWFjdCB2MTcuMC4yXG4gKiByZWFjdC1kb20uZGV2ZWxvcG1lbnQuanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIEZhY2Vib29rLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgKGZ1bmN0aW9uKCkge1xuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xudmFyIF9hc3NpZ24gPSByZXF1aXJlKCdvYmplY3QtYXNzaWduJyk7XG52YXIgU2NoZWR1bGVyID0gcmVxdWlyZSgnc2NoZWR1bGVyJyk7XG52YXIgdHJhY2luZyA9IHJlcXVpcmUoJ3NjaGVkdWxlci90cmFjaW5nJyk7XG5cbnZhciBSZWFjdFNoYXJlZEludGVybmFscyA9IFJlYWN0Ll9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEO1xuXG4vLyBieSBjYWxscyB0byB0aGVzZSBtZXRob2RzIGJ5IGEgQmFiZWwgcGx1Z2luLlxuLy9cbi8vIEluIFBST0QgKG9yIGluIHBhY2thZ2VzIHdpdGhvdXQgYWNjZXNzIHRvIFJlYWN0IGludGVybmFscyksXG4vLyB0aGV5IGFyZSBsZWZ0IGFzIHRoZXkgYXJlIGluc3RlYWQuXG5cbmZ1bmN0aW9uIHdhcm4oZm9ybWF0KSB7XG4gIHtcbiAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuID4gMSA/IF9sZW4gLSAxIDogMCksIF9rZXkgPSAxOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICBhcmdzW19rZXkgLSAxXSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICB9XG5cbiAgICBwcmludFdhcm5pbmcoJ3dhcm4nLCBmb3JtYXQsIGFyZ3MpO1xuICB9XG59XG5mdW5jdGlvbiBlcnJvcihmb3JtYXQpIHtcbiAge1xuICAgIGZvciAodmFyIF9sZW4yID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuMiA+IDEgPyBfbGVuMiAtIDEgOiAwKSwgX2tleTIgPSAxOyBfa2V5MiA8IF9sZW4yOyBfa2V5MisrKSB7XG4gICAgICBhcmdzW19rZXkyIC0gMV0gPSBhcmd1bWVudHNbX2tleTJdO1xuICAgIH1cblxuICAgIHByaW50V2FybmluZygnZXJyb3InLCBmb3JtYXQsIGFyZ3MpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHByaW50V2FybmluZyhsZXZlbCwgZm9ybWF0LCBhcmdzKSB7XG4gIC8vIFdoZW4gY2hhbmdpbmcgdGhpcyBsb2dpYywgeW91IG1pZ2h0IHdhbnQgdG8gYWxzb1xuICAvLyB1cGRhdGUgY29uc29sZVdpdGhTdGFja0Rldi53d3cuanMgYXMgd2VsbC5cbiAge1xuICAgIHZhciBSZWFjdERlYnVnQ3VycmVudEZyYW1lID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZTtcbiAgICB2YXIgc3RhY2sgPSBSZWFjdERlYnVnQ3VycmVudEZyYW1lLmdldFN0YWNrQWRkZW5kdW0oKTtcblxuICAgIGlmIChzdGFjayAhPT0gJycpIHtcbiAgICAgIGZvcm1hdCArPSAnJXMnO1xuICAgICAgYXJncyA9IGFyZ3MuY29uY2F0KFtzdGFja10pO1xuICAgIH1cblxuICAgIHZhciBhcmdzV2l0aEZvcm1hdCA9IGFyZ3MubWFwKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICByZXR1cm4gJycgKyBpdGVtO1xuICAgIH0pOyAvLyBDYXJlZnVsOiBSTiBjdXJyZW50bHkgZGVwZW5kcyBvbiB0aGlzIHByZWZpeFxuXG4gICAgYXJnc1dpdGhGb3JtYXQudW5zaGlmdCgnV2FybmluZzogJyArIGZvcm1hdCk7IC8vIFdlIGludGVudGlvbmFsbHkgZG9uJ3QgdXNlIHNwcmVhZCAob3IgLmFwcGx5KSBkaXJlY3RseSBiZWNhdXNlIGl0XG4gICAgLy8gYnJlYWtzIElFOTogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xMzYxMFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9uby1wcm9kdWN0aW9uLWxvZ2dpbmdcblxuICAgIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5jYWxsKGNvbnNvbGVbbGV2ZWxdLCBjb25zb2xlLCBhcmdzV2l0aEZvcm1hdCk7XG4gIH1cbn1cblxuaWYgKCFSZWFjdCkge1xuICB7XG4gICAgdGhyb3cgRXJyb3IoIFwiUmVhY3RET00gd2FzIGxvYWRlZCBiZWZvcmUgUmVhY3QuIE1ha2Ugc3VyZSB5b3UgbG9hZCB0aGUgUmVhY3QgcGFja2FnZSBiZWZvcmUgbG9hZGluZyBSZWFjdERPTS5cIiApO1xuICB9XG59XG5cbnZhciBGdW5jdGlvbkNvbXBvbmVudCA9IDA7XG52YXIgQ2xhc3NDb21wb25lbnQgPSAxO1xudmFyIEluZGV0ZXJtaW5hdGVDb21wb25lbnQgPSAyOyAvLyBCZWZvcmUgd2Uga25vdyB3aGV0aGVyIGl0IGlzIGZ1bmN0aW9uIG9yIGNsYXNzXG5cbnZhciBIb3N0Um9vdCA9IDM7IC8vIFJvb3Qgb2YgYSBob3N0IHRyZWUuIENvdWxkIGJlIG5lc3RlZCBpbnNpZGUgYW5vdGhlciBub2RlLlxuXG52YXIgSG9zdFBvcnRhbCA9IDQ7IC8vIEEgc3VidHJlZS4gQ291bGQgYmUgYW4gZW50cnkgcG9pbnQgdG8gYSBkaWZmZXJlbnQgcmVuZGVyZXIuXG5cbnZhciBIb3N0Q29tcG9uZW50ID0gNTtcbnZhciBIb3N0VGV4dCA9IDY7XG52YXIgRnJhZ21lbnQgPSA3O1xudmFyIE1vZGUgPSA4O1xudmFyIENvbnRleHRDb25zdW1lciA9IDk7XG52YXIgQ29udGV4dFByb3ZpZGVyID0gMTA7XG52YXIgRm9yd2FyZFJlZiA9IDExO1xudmFyIFByb2ZpbGVyID0gMTI7XG52YXIgU3VzcGVuc2VDb21wb25lbnQgPSAxMztcbnZhciBNZW1vQ29tcG9uZW50ID0gMTQ7XG52YXIgU2ltcGxlTWVtb0NvbXBvbmVudCA9IDE1O1xudmFyIExhenlDb21wb25lbnQgPSAxNjtcbnZhciBJbmNvbXBsZXRlQ2xhc3NDb21wb25lbnQgPSAxNztcbnZhciBEZWh5ZHJhdGVkRnJhZ21lbnQgPSAxODtcbnZhciBTdXNwZW5zZUxpc3RDb21wb25lbnQgPSAxOTtcbnZhciBGdW5kYW1lbnRhbENvbXBvbmVudCA9IDIwO1xudmFyIFNjb3BlQ29tcG9uZW50ID0gMjE7XG52YXIgQmxvY2sgPSAyMjtcbnZhciBPZmZzY3JlZW5Db21wb25lbnQgPSAyMztcbnZhciBMZWdhY3lIaWRkZW5Db21wb25lbnQgPSAyNDtcblxuLy8gRmlsdGVyIGNlcnRhaW4gRE9NIGF0dHJpYnV0ZXMgKGUuZy4gc3JjLCBocmVmKSBpZiB0aGVpciB2YWx1ZXMgYXJlIGVtcHR5IHN0cmluZ3MuXG5cbnZhciBlbmFibGVQcm9maWxlclRpbWVyID0gdHJ1ZTsgLy8gUmVjb3JkIGR1cmF0aW9ucyBmb3IgY29tbWl0IGFuZCBwYXNzaXZlIGVmZmVjdHMgcGhhc2VzLlxuXG52YXIgZW5hYmxlRnVuZGFtZW50YWxBUEkgPSBmYWxzZTsgLy8gRXhwZXJpbWVudGFsIFNjb3BlIHN1cHBvcnQuXG52YXIgZW5hYmxlTmV3UmVjb25jaWxlciA9IGZhbHNlOyAvLyBFcnJvcnMgdGhhdCBhcmUgdGhyb3duIHdoaWxlIHVubW91bnRpbmcgKG9yIGFmdGVyIGluIHRoZSBjYXNlIG9mIHBhc3NpdmUgZWZmZWN0cylcbnZhciB3YXJuQWJvdXRTdHJpbmdSZWZzID0gZmFsc2U7XG5cbnZhciBhbGxOYXRpdmVFdmVudHMgPSBuZXcgU2V0KCk7XG4vKipcbiAqIE1hcHBpbmcgZnJvbSByZWdpc3RyYXRpb24gbmFtZSB0byBldmVudCBuYW1lXG4gKi9cblxuXG52YXIgcmVnaXN0cmF0aW9uTmFtZURlcGVuZGVuY2llcyA9IHt9O1xuLyoqXG4gKiBNYXBwaW5nIGZyb20gbG93ZXJjYXNlIHJlZ2lzdHJhdGlvbiBuYW1lcyB0byB0aGUgcHJvcGVybHkgY2FzZWQgdmVyc2lvbixcbiAqIHVzZWQgdG8gd2FybiBpbiB0aGUgY2FzZSBvZiBtaXNzaW5nIGV2ZW50IGhhbmRsZXJzLiBBdmFpbGFibGVcbiAqIG9ubHkgaW4gdHJ1ZS5cbiAqIEB0eXBlIHtPYmplY3R9XG4gKi9cblxudmFyIHBvc3NpYmxlUmVnaXN0cmF0aW9uTmFtZXMgPSAge30gOyAvLyBUcnVzdCB0aGUgZGV2ZWxvcGVyIHRvIG9ubHkgdXNlIHBvc3NpYmxlUmVnaXN0cmF0aW9uTmFtZXMgaW4gdHJ1ZVxuXG5mdW5jdGlvbiByZWdpc3RlclR3b1BoYXNlRXZlbnQocmVnaXN0cmF0aW9uTmFtZSwgZGVwZW5kZW5jaWVzKSB7XG4gIHJlZ2lzdGVyRGlyZWN0RXZlbnQocmVnaXN0cmF0aW9uTmFtZSwgZGVwZW5kZW5jaWVzKTtcbiAgcmVnaXN0ZXJEaXJlY3RFdmVudChyZWdpc3RyYXRpb25OYW1lICsgJ0NhcHR1cmUnLCBkZXBlbmRlbmNpZXMpO1xufVxuZnVuY3Rpb24gcmVnaXN0ZXJEaXJlY3RFdmVudChyZWdpc3RyYXRpb25OYW1lLCBkZXBlbmRlbmNpZXMpIHtcbiAge1xuICAgIGlmIChyZWdpc3RyYXRpb25OYW1lRGVwZW5kZW5jaWVzW3JlZ2lzdHJhdGlvbk5hbWVdKSB7XG4gICAgICBlcnJvcignRXZlbnRSZWdpc3RyeTogTW9yZSB0aGFuIG9uZSBwbHVnaW4gYXR0ZW1wdGVkIHRvIHB1Ymxpc2ggdGhlIHNhbWUgJyArICdyZWdpc3RyYXRpb24gbmFtZSwgYCVzYC4nLCByZWdpc3RyYXRpb25OYW1lKTtcbiAgICB9XG4gIH1cblxuICByZWdpc3RyYXRpb25OYW1lRGVwZW5kZW5jaWVzW3JlZ2lzdHJhdGlvbk5hbWVdID0gZGVwZW5kZW5jaWVzO1xuXG4gIHtcbiAgICB2YXIgbG93ZXJDYXNlZE5hbWUgPSByZWdpc3RyYXRpb25OYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgcG9zc2libGVSZWdpc3RyYXRpb25OYW1lc1tsb3dlckNhc2VkTmFtZV0gPSByZWdpc3RyYXRpb25OYW1lO1xuXG4gICAgaWYgKHJlZ2lzdHJhdGlvbk5hbWUgPT09ICdvbkRvdWJsZUNsaWNrJykge1xuICAgICAgcG9zc2libGVSZWdpc3RyYXRpb25OYW1lcy5vbmRibGNsaWNrID0gcmVnaXN0cmF0aW9uTmFtZTtcbiAgICB9XG4gIH1cblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGRlcGVuZGVuY2llcy5sZW5ndGg7IGkrKykge1xuICAgIGFsbE5hdGl2ZUV2ZW50cy5hZGQoZGVwZW5kZW5jaWVzW2ldKTtcbiAgfVxufVxuXG52YXIgY2FuVXNlRE9NID0gISEodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIHdpbmRvdy5kb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIHdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50ICE9PSAndW5kZWZpbmVkJyk7XG5cbi8vIEEgcmVzZXJ2ZWQgYXR0cmlidXRlLlxuLy8gSXQgaXMgaGFuZGxlZCBieSBSZWFjdCBzZXBhcmF0ZWx5IGFuZCBzaG91bGRuJ3QgYmUgd3JpdHRlbiB0byB0aGUgRE9NLlxudmFyIFJFU0VSVkVEID0gMDsgLy8gQSBzaW1wbGUgc3RyaW5nIGF0dHJpYnV0ZS5cbi8vIEF0dHJpYnV0ZXMgdGhhdCBhcmVuJ3QgaW4gdGhlIGZpbHRlciBhcmUgcHJlc3VtZWQgdG8gaGF2ZSB0aGlzIHR5cGUuXG5cbnZhciBTVFJJTkcgPSAxOyAvLyBBIHN0cmluZyBhdHRyaWJ1dGUgdGhhdCBhY2NlcHRzIGJvb2xlYW5zIGluIFJlYWN0LiBJbiBIVE1MLCB0aGVzZSBhcmUgY2FsbGVkXG4vLyBcImVudW1lcmF0ZWRcIiBhdHRyaWJ1dGVzIHdpdGggXCJ0cnVlXCIgYW5kIFwiZmFsc2VcIiBhcyBwb3NzaWJsZSB2YWx1ZXMuXG4vLyBXaGVuIHRydWUsIGl0IHNob3VsZCBiZSBzZXQgdG8gYSBcInRydWVcIiBzdHJpbmcuXG4vLyBXaGVuIGZhbHNlLCBpdCBzaG91bGQgYmUgc2V0IHRvIGEgXCJmYWxzZVwiIHN0cmluZy5cblxudmFyIEJPT0xFQU5JU0hfU1RSSU5HID0gMjsgLy8gQSByZWFsIGJvb2xlYW4gYXR0cmlidXRlLlxuLy8gV2hlbiB0cnVlLCBpdCBzaG91bGQgYmUgcHJlc2VudCAoc2V0IGVpdGhlciB0byBhbiBlbXB0eSBzdHJpbmcgb3IgaXRzIG5hbWUpLlxuLy8gV2hlbiBmYWxzZSwgaXQgc2hvdWxkIGJlIG9taXR0ZWQuXG5cbnZhciBCT09MRUFOID0gMzsgLy8gQW4gYXR0cmlidXRlIHRoYXQgY2FuIGJlIHVzZWQgYXMgYSBmbGFnIGFzIHdlbGwgYXMgd2l0aCBhIHZhbHVlLlxuLy8gV2hlbiB0cnVlLCBpdCBzaG91bGQgYmUgcHJlc2VudCAoc2V0IGVpdGhlciB0byBhbiBlbXB0eSBzdHJpbmcgb3IgaXRzIG5hbWUpLlxuLy8gV2hlbiBmYWxzZSwgaXQgc2hvdWxkIGJlIG9taXR0ZWQuXG4vLyBGb3IgYW55IG90aGVyIHZhbHVlLCBzaG91bGQgYmUgcHJlc2VudCB3aXRoIHRoYXQgdmFsdWUuXG5cbnZhciBPVkVSTE9BREVEX0JPT0xFQU4gPSA0OyAvLyBBbiBhdHRyaWJ1dGUgdGhhdCBtdXN0IGJlIG51bWVyaWMgb3IgcGFyc2UgYXMgYSBudW1lcmljLlxuLy8gV2hlbiBmYWxzeSwgaXQgc2hvdWxkIGJlIHJlbW92ZWQuXG5cbnZhciBOVU1FUklDID0gNTsgLy8gQW4gYXR0cmlidXRlIHRoYXQgbXVzdCBiZSBwb3NpdGl2ZSBudW1lcmljIG9yIHBhcnNlIGFzIGEgcG9zaXRpdmUgbnVtZXJpYy5cbi8vIFdoZW4gZmFsc3ksIGl0IHNob3VsZCBiZSByZW1vdmVkLlxuXG52YXIgUE9TSVRJVkVfTlVNRVJJQyA9IDY7XG5cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4gKi9cbnZhciBBVFRSSUJVVEVfTkFNRV9TVEFSVF9DSEFSID0gXCI6QS1aX2EtelxcXFx1MDBDMC1cXFxcdTAwRDZcXFxcdTAwRDgtXFxcXHUwMEY2XFxcXHUwMEY4LVxcXFx1MDJGRlxcXFx1MDM3MC1cXFxcdTAzN0RcXFxcdTAzN0YtXFxcXHUxRkZGXFxcXHUyMDBDLVxcXFx1MjAwRFxcXFx1MjA3MC1cXFxcdTIxOEZcXFxcdTJDMDAtXFxcXHUyRkVGXFxcXHUzMDAxLVxcXFx1RDdGRlxcXFx1RjkwMC1cXFxcdUZEQ0ZcXFxcdUZERjAtXFxcXHVGRkZEXCI7XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4gKi9cblxudmFyIEFUVFJJQlVURV9OQU1FX0NIQVIgPSBBVFRSSUJVVEVfTkFNRV9TVEFSVF9DSEFSICsgXCJcXFxcLS4wLTlcXFxcdTAwQjdcXFxcdTAzMDAtXFxcXHUwMzZGXFxcXHUyMDNGLVxcXFx1MjA0MFwiO1xudmFyIFJPT1RfQVRUUklCVVRFX05BTUUgPSAnZGF0YS1yZWFjdHJvb3QnO1xudmFyIFZBTElEX0FUVFJJQlVURV9OQU1FX1JFR0VYID0gbmV3IFJlZ0V4cCgnXlsnICsgQVRUUklCVVRFX05BTUVfU1RBUlRfQ0hBUiArICddWycgKyBBVFRSSUJVVEVfTkFNRV9DSEFSICsgJ10qJCcpO1xudmFyIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbnZhciBpbGxlZ2FsQXR0cmlidXRlTmFtZUNhY2hlID0ge307XG52YXIgdmFsaWRhdGVkQXR0cmlidXRlTmFtZUNhY2hlID0ge307XG5mdW5jdGlvbiBpc0F0dHJpYnV0ZU5hbWVTYWZlKGF0dHJpYnV0ZU5hbWUpIHtcbiAgaWYgKGhhc093blByb3BlcnR5LmNhbGwodmFsaWRhdGVkQXR0cmlidXRlTmFtZUNhY2hlLCBhdHRyaWJ1dGVOYW1lKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoaWxsZWdhbEF0dHJpYnV0ZU5hbWVDYWNoZSwgYXR0cmlidXRlTmFtZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoVkFMSURfQVRUUklCVVRFX05BTUVfUkVHRVgudGVzdChhdHRyaWJ1dGVOYW1lKSkge1xuICAgIHZhbGlkYXRlZEF0dHJpYnV0ZU5hbWVDYWNoZVthdHRyaWJ1dGVOYW1lXSA9IHRydWU7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpbGxlZ2FsQXR0cmlidXRlTmFtZUNhY2hlW2F0dHJpYnV0ZU5hbWVdID0gdHJ1ZTtcblxuICB7XG4gICAgZXJyb3IoJ0ludmFsaWQgYXR0cmlidXRlIG5hbWU6IGAlc2AnLCBhdHRyaWJ1dGVOYW1lKTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cbmZ1bmN0aW9uIHNob3VsZElnbm9yZUF0dHJpYnV0ZShuYW1lLCBwcm9wZXJ0eUluZm8sIGlzQ3VzdG9tQ29tcG9uZW50VGFnKSB7XG4gIGlmIChwcm9wZXJ0eUluZm8gIT09IG51bGwpIHtcbiAgICByZXR1cm4gcHJvcGVydHlJbmZvLnR5cGUgPT09IFJFU0VSVkVEO1xuICB9XG5cbiAgaWYgKGlzQ3VzdG9tQ29tcG9uZW50VGFnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKG5hbWUubGVuZ3RoID4gMiAmJiAobmFtZVswXSA9PT0gJ28nIHx8IG5hbWVbMF0gPT09ICdPJykgJiYgKG5hbWVbMV0gPT09ICduJyB8fCBuYW1lWzFdID09PSAnTicpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5mdW5jdGlvbiBzaG91bGRSZW1vdmVBdHRyaWJ1dGVXaXRoV2FybmluZyhuYW1lLCB2YWx1ZSwgcHJvcGVydHlJbmZvLCBpc0N1c3RvbUNvbXBvbmVudFRhZykge1xuICBpZiAocHJvcGVydHlJbmZvICE9PSBudWxsICYmIHByb3BlcnR5SW5mby50eXBlID09PSBSRVNFUlZFRCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHN3aXRjaCAodHlwZW9mIHZhbHVlKSB7XG4gICAgY2FzZSAnZnVuY3Rpb24nOiAvLyAkRmxvd0lzc3VlIHN5bWJvbCBpcyBwZXJmZWN0bHkgdmFsaWQgaGVyZVxuXG4gICAgY2FzZSAnc3ltYm9sJzpcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiAgICAgIHJldHVybiB0cnVlO1xuXG4gICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICB7XG4gICAgICAgIGlmIChpc0N1c3RvbUNvbXBvbmVudFRhZykge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwcm9wZXJ0eUluZm8gIT09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gIXByb3BlcnR5SW5mby5hY2NlcHRzQm9vbGVhbnM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFyIHByZWZpeCA9IG5hbWUudG9Mb3dlckNhc2UoKS5zbGljZSgwLCA1KTtcbiAgICAgICAgICByZXR1cm4gcHJlZml4ICE9PSAnZGF0YS0nICYmIHByZWZpeCAhPT0gJ2FyaWEtJztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuZnVuY3Rpb24gc2hvdWxkUmVtb3ZlQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBwcm9wZXJ0eUluZm8sIGlzQ3VzdG9tQ29tcG9uZW50VGFnKSB7XG4gIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAoc2hvdWxkUmVtb3ZlQXR0cmlidXRlV2l0aFdhcm5pbmcobmFtZSwgdmFsdWUsIHByb3BlcnR5SW5mbywgaXNDdXN0b21Db21wb25lbnRUYWcpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAoaXNDdXN0b21Db21wb25lbnRUYWcpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAocHJvcGVydHlJbmZvICE9PSBudWxsKSB7XG5cbiAgICBzd2l0Y2ggKHByb3BlcnR5SW5mby50eXBlKSB7XG4gICAgICBjYXNlIEJPT0xFQU46XG4gICAgICAgIHJldHVybiAhdmFsdWU7XG5cbiAgICAgIGNhc2UgT1ZFUkxPQURFRF9CT09MRUFOOlxuICAgICAgICByZXR1cm4gdmFsdWUgPT09IGZhbHNlO1xuXG4gICAgICBjYXNlIE5VTUVSSUM6XG4gICAgICAgIHJldHVybiBpc05hTih2YWx1ZSk7XG5cbiAgICAgIGNhc2UgUE9TSVRJVkVfTlVNRVJJQzpcbiAgICAgICAgcmV0dXJuIGlzTmFOKHZhbHVlKSB8fCB2YWx1ZSA8IDE7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuZnVuY3Rpb24gZ2V0UHJvcGVydHlJbmZvKG5hbWUpIHtcbiAgcmV0dXJuIHByb3BlcnRpZXMuaGFzT3duUHJvcGVydHkobmFtZSkgPyBwcm9wZXJ0aWVzW25hbWVdIDogbnVsbDtcbn1cblxuZnVuY3Rpb24gUHJvcGVydHlJbmZvUmVjb3JkKG5hbWUsIHR5cGUsIG11c3RVc2VQcm9wZXJ0eSwgYXR0cmlidXRlTmFtZSwgYXR0cmlidXRlTmFtZXNwYWNlLCBzYW5pdGl6ZVVSTCwgcmVtb3ZlRW1wdHlTdHJpbmcpIHtcbiAgdGhpcy5hY2NlcHRzQm9vbGVhbnMgPSB0eXBlID09PSBCT09MRUFOSVNIX1NUUklORyB8fCB0eXBlID09PSBCT09MRUFOIHx8IHR5cGUgPT09IE9WRVJMT0FERURfQk9PTEVBTjtcbiAgdGhpcy5hdHRyaWJ1dGVOYW1lID0gYXR0cmlidXRlTmFtZTtcbiAgdGhpcy5hdHRyaWJ1dGVOYW1lc3BhY2UgPSBhdHRyaWJ1dGVOYW1lc3BhY2U7XG4gIHRoaXMubXVzdFVzZVByb3BlcnR5ID0gbXVzdFVzZVByb3BlcnR5O1xuICB0aGlzLnByb3BlcnR5TmFtZSA9IG5hbWU7XG4gIHRoaXMudHlwZSA9IHR5cGU7XG4gIHRoaXMuc2FuaXRpemVVUkwgPSBzYW5pdGl6ZVVSTDtcbiAgdGhpcy5yZW1vdmVFbXB0eVN0cmluZyA9IHJlbW92ZUVtcHR5U3RyaW5nO1xufSAvLyBXaGVuIGFkZGluZyBhdHRyaWJ1dGVzIHRvIHRoaXMgbGlzdCwgYmUgc3VyZSB0byBhbHNvIGFkZCB0aGVtIHRvXG4vLyB0aGUgYHBvc3NpYmxlU3RhbmRhcmROYW1lc2AgbW9kdWxlIHRvIGVuc3VyZSBjYXNpbmcgYW5kIGluY29ycmVjdFxuLy8gbmFtZSB3YXJuaW5ncy5cblxuXG52YXIgcHJvcGVydGllcyA9IHt9OyAvLyBUaGVzZSBwcm9wcyBhcmUgcmVzZXJ2ZWQgYnkgUmVhY3QuIFRoZXkgc2hvdWxkbid0IGJlIHdyaXR0ZW4gdG8gdGhlIERPTS5cblxudmFyIHJlc2VydmVkUHJvcHMgPSBbJ2NoaWxkcmVuJywgJ2Rhbmdlcm91c2x5U2V0SW5uZXJIVE1MJywgLy8gVE9ETzogVGhpcyBwcmV2ZW50cyB0aGUgYXNzaWdubWVudCBvZiBkZWZhdWx0VmFsdWUgdG8gcmVndWxhclxuLy8gZWxlbWVudHMgKG5vdCBqdXN0IGlucHV0cykuIE5vdyB0aGF0IFJlYWN0RE9NSW5wdXQgYXNzaWducyB0byB0aGVcbi8vIGRlZmF1bHRWYWx1ZSBwcm9wZXJ0eSAtLSBkbyB3ZSBuZWVkIHRoaXM/XG4nZGVmYXVsdFZhbHVlJywgJ2RlZmF1bHRDaGVja2VkJywgJ2lubmVySFRNTCcsICdzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmcnLCAnc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nJywgJ3N0eWxlJ107XG5yZXNlcnZlZFByb3BzLmZvckVhY2goZnVuY3Rpb24gKG5hbWUpIHtcbiAgcHJvcGVydGllc1tuYW1lXSA9IG5ldyBQcm9wZXJ0eUluZm9SZWNvcmQobmFtZSwgUkVTRVJWRUQsIGZhbHNlLCAvLyBtdXN0VXNlUHJvcGVydHlcbiAgbmFtZSwgLy8gYXR0cmlidXRlTmFtZVxuICBudWxsLCAvLyBhdHRyaWJ1dGVOYW1lc3BhY2VcbiAgZmFsc2UsIC8vIHNhbml0aXplVVJMXG4gIGZhbHNlKTtcbn0pOyAvLyBBIGZldyBSZWFjdCBzdHJpbmcgYXR0cmlidXRlcyBoYXZlIGEgZGlmZmVyZW50IG5hbWUuXG4vLyBUaGlzIGlzIGEgbWFwcGluZyBmcm9tIFJlYWN0IHByb3AgbmFtZXMgdG8gdGhlIGF0dHJpYnV0ZSBuYW1lcy5cblxuW1snYWNjZXB0Q2hhcnNldCcsICdhY2NlcHQtY2hhcnNldCddLCBbJ2NsYXNzTmFtZScsICdjbGFzcyddLCBbJ2h0bWxGb3InLCAnZm9yJ10sIFsnaHR0cEVxdWl2JywgJ2h0dHAtZXF1aXYnXV0uZm9yRWFjaChmdW5jdGlvbiAoX3JlZikge1xuICB2YXIgbmFtZSA9IF9yZWZbMF0sXG4gICAgICBhdHRyaWJ1dGVOYW1lID0gX3JlZlsxXTtcbiAgcHJvcGVydGllc1tuYW1lXSA9IG5ldyBQcm9wZXJ0eUluZm9SZWNvcmQobmFtZSwgU1RSSU5HLCBmYWxzZSwgLy8gbXVzdFVzZVByb3BlcnR5XG4gIGF0dHJpYnV0ZU5hbWUsIC8vIGF0dHJpYnV0ZU5hbWVcbiAgbnVsbCwgLy8gYXR0cmlidXRlTmFtZXNwYWNlXG4gIGZhbHNlLCAvLyBzYW5pdGl6ZVVSTFxuICBmYWxzZSk7XG59KTsgLy8gVGhlc2UgYXJlIFwiZW51bWVyYXRlZFwiIEhUTUwgYXR0cmlidXRlcyB0aGF0IGFjY2VwdCBcInRydWVcIiBhbmQgXCJmYWxzZVwiLlxuLy8gSW4gUmVhY3QsIHdlIGxldCB1c2VycyBwYXNzIGB0cnVlYCBhbmQgYGZhbHNlYCBldmVuIHRob3VnaCB0ZWNobmljYWxseVxuLy8gdGhlc2UgYXJlbid0IGJvb2xlYW4gYXR0cmlidXRlcyAodGhleSBhcmUgY29lcmNlZCB0byBzdHJpbmdzKS5cblxuWydjb250ZW50RWRpdGFibGUnLCAnZHJhZ2dhYmxlJywgJ3NwZWxsQ2hlY2snLCAndmFsdWUnXS5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7XG4gIHByb3BlcnRpZXNbbmFtZV0gPSBuZXcgUHJvcGVydHlJbmZvUmVjb3JkKG5hbWUsIEJPT0xFQU5JU0hfU1RSSU5HLCBmYWxzZSwgLy8gbXVzdFVzZVByb3BlcnR5XG4gIG5hbWUudG9Mb3dlckNhc2UoKSwgLy8gYXR0cmlidXRlTmFtZVxuICBudWxsLCAvLyBhdHRyaWJ1dGVOYW1lc3BhY2VcbiAgZmFsc2UsIC8vIHNhbml0aXplVVJMXG4gIGZhbHNlKTtcbn0pOyAvLyBUaGVzZSBhcmUgXCJlbnVtZXJhdGVkXCIgU1ZHIGF0dHJpYnV0ZXMgdGhhdCBhY2NlcHQgXCJ0cnVlXCIgYW5kIFwiZmFsc2VcIi5cbi8vIEluIFJlYWN0LCB3ZSBsZXQgdXNlcnMgcGFzcyBgdHJ1ZWAgYW5kIGBmYWxzZWAgZXZlbiB0aG91Z2ggdGVjaG5pY2FsbHlcbi8vIHRoZXNlIGFyZW4ndCBib29sZWFuIGF0dHJpYnV0ZXMgKHRoZXkgYXJlIGNvZXJjZWQgdG8gc3RyaW5ncykuXG4vLyBTaW5jZSB0aGVzZSBhcmUgU1ZHIGF0dHJpYnV0ZXMsIHRoZWlyIGF0dHJpYnV0ZSBuYW1lcyBhcmUgY2FzZS1zZW5zaXRpdmUuXG5cblsnYXV0b1JldmVyc2UnLCAnZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCcsICdmb2N1c2FibGUnLCAncHJlc2VydmVBbHBoYSddLmZvckVhY2goZnVuY3Rpb24gKG5hbWUpIHtcbiAgcHJvcGVydGllc1tuYW1lXSA9IG5ldyBQcm9wZXJ0eUluZm9SZWNvcmQobmFtZSwgQk9PTEVBTklTSF9TVFJJTkcsIGZhbHNlLCAvLyBtdXN0VXNlUHJvcGVydHlcbiAgbmFtZSwgLy8gYXR0cmlidXRlTmFtZVxuICBudWxsLCAvLyBhdHRyaWJ1dGVOYW1lc3BhY2VcbiAgZmFsc2UsIC8vIHNhbml0aXplVVJMXG4gIGZhbHNlKTtcbn0pOyAvLyBUaGVzZSBhcmUgSFRNTCBib29sZWFuIGF0dHJpYnV0ZXMuXG5cblsnYWxsb3dGdWxsU2NyZWVuJywgJ2FzeW5jJywgLy8gTm90ZTogdGhlcmUgaXMgYSBzcGVjaWFsIGNhc2UgdGhhdCBwcmV2ZW50cyBpdCBmcm9tIGJlaW5nIHdyaXR0ZW4gdG8gdGhlIERPTVxuLy8gb24gdGhlIGNsaWVudCBzaWRlIGJlY2F1c2UgdGhlIGJyb3dzZXJzIGFyZSBpbmNvbnNpc3RlbnQuIEluc3RlYWQgd2UgY2FsbCBmb2N1cygpLlxuJ2F1dG9Gb2N1cycsICdhdXRvUGxheScsICdjb250cm9scycsICdkZWZhdWx0JywgJ2RlZmVyJywgJ2Rpc2FibGVkJywgJ2Rpc2FibGVQaWN0dXJlSW5QaWN0dXJlJywgJ2Rpc2FibGVSZW1vdGVQbGF5YmFjaycsICdmb3JtTm9WYWxpZGF0ZScsICdoaWRkZW4nLCAnbG9vcCcsICdub01vZHVsZScsICdub1ZhbGlkYXRlJywgJ29wZW4nLCAncGxheXNJbmxpbmUnLCAncmVhZE9ubHknLCAncmVxdWlyZWQnLCAncmV2ZXJzZWQnLCAnc2NvcGVkJywgJ3NlYW1sZXNzJywgLy8gTWljcm9kYXRhXG4naXRlbVNjb3BlJ10uZm9yRWFjaChmdW5jdGlvbiAobmFtZSkge1xuICBwcm9wZXJ0aWVzW25hbWVdID0gbmV3IFByb3BlcnR5SW5mb1JlY29yZChuYW1lLCBCT09MRUFOLCBmYWxzZSwgLy8gbXVzdFVzZVByb3BlcnR5XG4gIG5hbWUudG9Mb3dlckNhc2UoKSwgLy8gYXR0cmlidXRlTmFtZVxuICBudWxsLCAvLyBhdHRyaWJ1dGVOYW1lc3BhY2VcbiAgZmFsc2UsIC8vIHNhbml0aXplVVJMXG4gIGZhbHNlKTtcbn0pOyAvLyBUaGVzZSBhcmUgdGhlIGZldyBSZWFjdCBwcm9wcyB0aGF0IHdlIHNldCBhcyBET00gcHJvcGVydGllc1xuLy8gcmF0aGVyIHRoYW4gYXR0cmlidXRlcy4gVGhlc2UgYXJlIGFsbCBib29sZWFucy5cblxuWydjaGVja2VkJywgLy8gTm90ZTogYG9wdGlvbi5zZWxlY3RlZGAgaXMgbm90IHVwZGF0ZWQgaWYgYHNlbGVjdC5tdWx0aXBsZWAgaXNcbi8vIGRpc2FibGVkIHdpdGggYHJlbW92ZUF0dHJpYnV0ZWAuIFdlIGhhdmUgc3BlY2lhbCBsb2dpYyBmb3IgaGFuZGxpbmcgdGhpcy5cbidtdWx0aXBsZScsICdtdXRlZCcsICdzZWxlY3RlZCcgLy8gTk9URTogaWYgeW91IGFkZCBhIGNhbWVsQ2FzZWQgcHJvcCB0byB0aGlzIGxpc3QsXG4vLyB5b3UnbGwgbmVlZCB0byBzZXQgYXR0cmlidXRlTmFtZSB0byBuYW1lLnRvTG93ZXJDYXNlKClcbi8vIGluc3RlYWQgaW4gdGhlIGFzc2lnbm1lbnQgYmVsb3cuXG5dLmZvckVhY2goZnVuY3Rpb24gKG5hbWUpIHtcbiAgcHJvcGVydGllc1tuYW1lXSA9IG5ldyBQcm9wZXJ0eUluZm9SZWNvcmQobmFtZSwgQk9PTEVBTiwgdHJ1ZSwgLy8gbXVzdFVzZVByb3BlcnR5XG4gIG5hbWUsIC8vIGF0dHJpYnV0ZU5hbWVcbiAgbnVsbCwgLy8gYXR0cmlidXRlTmFtZXNwYWNlXG4gIGZhbHNlLCAvLyBzYW5pdGl6ZVVSTFxuICBmYWxzZSk7XG59KTsgLy8gVGhlc2UgYXJlIEhUTUwgYXR0cmlidXRlcyB0aGF0IGFyZSBcIm92ZXJsb2FkZWQgYm9vbGVhbnNcIjogdGhleSBiZWhhdmUgbGlrZVxuLy8gYm9vbGVhbnMsIGJ1dCBjYW4gYWxzbyBhY2NlcHQgYSBzdHJpbmcgdmFsdWUuXG5cblsnY2FwdHVyZScsICdkb3dubG9hZCcgLy8gTk9URTogaWYgeW91IGFkZCBhIGNhbWVsQ2FzZWQgcHJvcCB0byB0aGlzIGxpc3QsXG4vLyB5b3UnbGwgbmVlZCB0byBzZXQgYXR0cmlidXRlTmFtZSB0byBuYW1lLnRvTG93ZXJDYXNlKClcbi8vIGluc3RlYWQgaW4gdGhlIGFzc2lnbm1lbnQgYmVsb3cuXG5dLmZvckVhY2goZnVuY3Rpb24gKG5hbWUpIHtcbiAgcHJvcGVydGllc1tuYW1lXSA9IG5ldyBQcm9wZXJ0eUluZm9SZWNvcmQobmFtZSwgT1ZFUkxPQURFRF9CT09MRUFOLCBmYWxzZSwgLy8gbXVzdFVzZVByb3BlcnR5XG4gIG5hbWUsIC8vIGF0dHJpYnV0ZU5hbWVcbiAgbnVsbCwgLy8gYXR0cmlidXRlTmFtZXNwYWNlXG4gIGZhbHNlLCAvLyBzYW5pdGl6ZVVSTFxuICBmYWxzZSk7XG59KTsgLy8gVGhlc2UgYXJlIEhUTUwgYXR0cmlidXRlcyB0aGF0IG11c3QgYmUgcG9zaXRpdmUgbnVtYmVycy5cblxuWydjb2xzJywgJ3Jvd3MnLCAnc2l6ZScsICdzcGFuJyAvLyBOT1RFOiBpZiB5b3UgYWRkIGEgY2FtZWxDYXNlZCBwcm9wIHRvIHRoaXMgbGlzdCxcbi8vIHlvdSdsbCBuZWVkIHRvIHNldCBhdHRyaWJ1dGVOYW1lIHRvIG5hbWUudG9Mb3dlckNhc2UoKVxuLy8gaW5zdGVhZCBpbiB0aGUgYXNzaWdubWVudCBiZWxvdy5cbl0uZm9yRWFjaChmdW5jdGlvbiAobmFtZSkge1xuICBwcm9wZXJ0aWVzW25hbWVdID0gbmV3IFByb3BlcnR5SW5mb1JlY29yZChuYW1lLCBQT1NJVElWRV9OVU1FUklDLCBmYWxzZSwgLy8gbXVzdFVzZVByb3BlcnR5XG4gIG5hbWUsIC8vIGF0dHJpYnV0ZU5hbWVcbiAgbnVsbCwgLy8gYXR0cmlidXRlTmFtZXNwYWNlXG4gIGZhbHNlLCAvLyBzYW5pdGl6ZVVSTFxuICBmYWxzZSk7XG59KTsgLy8gVGhlc2UgYXJlIEhUTUwgYXR0cmlidXRlcyB0aGF0IG11c3QgYmUgbnVtYmVycy5cblxuWydyb3dTcGFuJywgJ3N0YXJ0J10uZm9yRWFjaChmdW5jdGlvbiAobmFtZSkge1xuICBwcm9wZXJ0aWVzW25hbWVdID0gbmV3IFByb3BlcnR5SW5mb1JlY29yZChuYW1lLCBOVU1FUklDLCBmYWxzZSwgLy8gbXVzdFVzZVByb3BlcnR5XG4gIG5hbWUudG9Mb3dlckNhc2UoKSwgLy8gYXR0cmlidXRlTmFtZVxuICBudWxsLCAvLyBhdHRyaWJ1dGVOYW1lc3BhY2VcbiAgZmFsc2UsIC8vIHNhbml0aXplVVJMXG4gIGZhbHNlKTtcbn0pO1xudmFyIENBTUVMSVpFID0gL1tcXC1cXDpdKFthLXpdKS9nO1xuXG52YXIgY2FwaXRhbGl6ZSA9IGZ1bmN0aW9uICh0b2tlbikge1xuICByZXR1cm4gdG9rZW5bMV0udG9VcHBlckNhc2UoKTtcbn07IC8vIFRoaXMgaXMgYSBsaXN0IG9mIGFsbCBTVkcgYXR0cmlidXRlcyB0aGF0IG5lZWQgc3BlY2lhbCBjYXNpbmcsIG5hbWVzcGFjaW5nLFxuLy8gb3IgYm9vbGVhbiB2YWx1ZSBhc3NpZ25tZW50LiBSZWd1bGFyIGF0dHJpYnV0ZXMgdGhhdCBqdXN0IGFjY2VwdCBzdHJpbmdzXG4vLyBhbmQgaGF2ZSB0aGUgc2FtZSBuYW1lcyBhcmUgb21pdHRlZCwganVzdCBsaWtlIGluIHRoZSBIVE1MIGF0dHJpYnV0ZSBmaWx0ZXIuXG4vLyBTb21lIG9mIHRoZXNlIGF0dHJpYnV0ZXMgY2FuIGJlIGhhcmQgdG8gZmluZC4gVGhpcyBsaXN0IHdhcyBjcmVhdGVkIGJ5XG4vLyBzY3JhcGluZyB0aGUgTUROIGRvY3VtZW50YXRpb24uXG5cblxuWydhY2NlbnQtaGVpZ2h0JywgJ2FsaWdubWVudC1iYXNlbGluZScsICdhcmFiaWMtZm9ybScsICdiYXNlbGluZS1zaGlmdCcsICdjYXAtaGVpZ2h0JywgJ2NsaXAtcGF0aCcsICdjbGlwLXJ1bGUnLCAnY29sb3ItaW50ZXJwb2xhdGlvbicsICdjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnMnLCAnY29sb3ItcHJvZmlsZScsICdjb2xvci1yZW5kZXJpbmcnLCAnZG9taW5hbnQtYmFzZWxpbmUnLCAnZW5hYmxlLWJhY2tncm91bmQnLCAnZmlsbC1vcGFjaXR5JywgJ2ZpbGwtcnVsZScsICdmbG9vZC1jb2xvcicsICdmbG9vZC1vcGFjaXR5JywgJ2ZvbnQtZmFtaWx5JywgJ2ZvbnQtc2l6ZScsICdmb250LXNpemUtYWRqdXN0JywgJ2ZvbnQtc3RyZXRjaCcsICdmb250LXN0eWxlJywgJ2ZvbnQtdmFyaWFudCcsICdmb250LXdlaWdodCcsICdnbHlwaC1uYW1lJywgJ2dseXBoLW9yaWVudGF0aW9uLWhvcml6b250YWwnLCAnZ2x5cGgtb3JpZW50YXRpb24tdmVydGljYWwnLCAnaG9yaXotYWR2LXgnLCAnaG9yaXotb3JpZ2luLXgnLCAnaW1hZ2UtcmVuZGVyaW5nJywgJ2xldHRlci1zcGFjaW5nJywgJ2xpZ2h0aW5nLWNvbG9yJywgJ21hcmtlci1lbmQnLCAnbWFya2VyLW1pZCcsICdtYXJrZXItc3RhcnQnLCAnb3ZlcmxpbmUtcG9zaXRpb24nLCAnb3ZlcmxpbmUtdGhpY2tuZXNzJywgJ3BhaW50LW9yZGVyJywgJ3Bhbm9zZS0xJywgJ3BvaW50ZXItZXZlbnRzJywgJ3JlbmRlcmluZy1pbnRlbnQnLCAnc2hhcGUtcmVuZGVyaW5nJywgJ3N0b3AtY29sb3InLCAnc3RvcC1vcGFjaXR5JywgJ3N0cmlrZXRocm91Z2gtcG9zaXRpb24nLCAnc3RyaWtldGhyb3VnaC10aGlja25lc3MnLCAnc3Ryb2tlLWRhc2hhcnJheScsICdzdHJva2UtZGFzaG9mZnNldCcsICdzdHJva2UtbGluZWNhcCcsICdzdHJva2UtbGluZWpvaW4nLCAnc3Ryb2tlLW1pdGVybGltaXQnLCAnc3Ryb2tlLW9wYWNpdHknLCAnc3Ryb2tlLXdpZHRoJywgJ3RleHQtYW5jaG9yJywgJ3RleHQtZGVjb3JhdGlvbicsICd0ZXh0LXJlbmRlcmluZycsICd1bmRlcmxpbmUtcG9zaXRpb24nLCAndW5kZXJsaW5lLXRoaWNrbmVzcycsICd1bmljb2RlLWJpZGknLCAndW5pY29kZS1yYW5nZScsICd1bml0cy1wZXItZW0nLCAndi1hbHBoYWJldGljJywgJ3YtaGFuZ2luZycsICd2LWlkZW9ncmFwaGljJywgJ3YtbWF0aGVtYXRpY2FsJywgJ3ZlY3Rvci1lZmZlY3QnLCAndmVydC1hZHYteScsICd2ZXJ0LW9yaWdpbi14JywgJ3ZlcnQtb3JpZ2luLXknLCAnd29yZC1zcGFjaW5nJywgJ3dyaXRpbmctbW9kZScsICd4bWxuczp4bGluaycsICd4LWhlaWdodCcgLy8gTk9URTogaWYgeW91IGFkZCBhIGNhbWVsQ2FzZWQgcHJvcCB0byB0aGlzIGxpc3QsXG4vLyB5b3UnbGwgbmVlZCB0byBzZXQgYXR0cmlidXRlTmFtZSB0byBuYW1lLnRvTG93ZXJDYXNlKClcbi8vIGluc3RlYWQgaW4gdGhlIGFzc2lnbm1lbnQgYmVsb3cuXG5dLmZvckVhY2goZnVuY3Rpb24gKGF0dHJpYnV0ZU5hbWUpIHtcbiAgdmFyIG5hbWUgPSBhdHRyaWJ1dGVOYW1lLnJlcGxhY2UoQ0FNRUxJWkUsIGNhcGl0YWxpemUpO1xuICBwcm9wZXJ0aWVzW25hbWVdID0gbmV3IFByb3BlcnR5SW5mb1JlY29yZChuYW1lLCBTVFJJTkcsIGZhbHNlLCAvLyBtdXN0VXNlUHJvcGVydHlcbiAgYXR0cmlidXRlTmFtZSwgbnVsbCwgLy8gYXR0cmlidXRlTmFtZXNwYWNlXG4gIGZhbHNlLCAvLyBzYW5pdGl6ZVVSTFxuICBmYWxzZSk7XG59KTsgLy8gU3RyaW5nIFNWRyBhdHRyaWJ1dGVzIHdpdGggdGhlIHhsaW5rIG5hbWVzcGFjZS5cblxuWyd4bGluazphY3R1YXRlJywgJ3hsaW5rOmFyY3JvbGUnLCAneGxpbms6cm9sZScsICd4bGluazpzaG93JywgJ3hsaW5rOnRpdGxlJywgJ3hsaW5rOnR5cGUnIC8vIE5PVEU6IGlmIHlvdSBhZGQgYSBjYW1lbENhc2VkIHByb3AgdG8gdGhpcyBsaXN0LFxuLy8geW91J2xsIG5lZWQgdG8gc2V0IGF0dHJpYnV0ZU5hbWUgdG8gbmFtZS50b0xvd2VyQ2FzZSgpXG4vLyBpbnN0ZWFkIGluIHRoZSBhc3NpZ25tZW50IGJlbG93LlxuXS5mb3JFYWNoKGZ1bmN0aW9uIChhdHRyaWJ1dGVOYW1lKSB7XG4gIHZhciBuYW1lID0gYXR0cmlidXRlTmFtZS5yZXBsYWNlKENBTUVMSVpFLCBjYXBpdGFsaXplKTtcbiAgcHJvcGVydGllc1tuYW1lXSA9IG5ldyBQcm9wZXJ0eUluZm9SZWNvcmQobmFtZSwgU1RSSU5HLCBmYWxzZSwgLy8gbXVzdFVzZVByb3BlcnR5XG4gIGF0dHJpYnV0ZU5hbWUsICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJywgZmFsc2UsIC8vIHNhbml0aXplVVJMXG4gIGZhbHNlKTtcbn0pOyAvLyBTdHJpbmcgU1ZHIGF0dHJpYnV0ZXMgd2l0aCB0aGUgeG1sIG5hbWVzcGFjZS5cblxuWyd4bWw6YmFzZScsICd4bWw6bGFuZycsICd4bWw6c3BhY2UnIC8vIE5PVEU6IGlmIHlvdSBhZGQgYSBjYW1lbENhc2VkIHByb3AgdG8gdGhpcyBsaXN0LFxuLy8geW91J2xsIG5lZWQgdG8gc2V0IGF0dHJpYnV0ZU5hbWUgdG8gbmFtZS50b0xvd2VyQ2FzZSgpXG4vLyBpbnN0ZWFkIGluIHRoZSBhc3NpZ25tZW50IGJlbG93LlxuXS5mb3JFYWNoKGZ1bmN0aW9uIChhdHRyaWJ1dGVOYW1lKSB7XG4gIHZhciBuYW1lID0gYXR0cmlidXRlTmFtZS5yZXBsYWNlKENBTUVMSVpFLCBjYXBpdGFsaXplKTtcbiAgcHJvcGVydGllc1tuYW1lXSA9IG5ldyBQcm9wZXJ0eUluZm9SZWNvcmQobmFtZSwgU1RSSU5HLCBmYWxzZSwgLy8gbXVzdFVzZVByb3BlcnR5XG4gIGF0dHJpYnV0ZU5hbWUsICdodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UnLCBmYWxzZSwgLy8gc2FuaXRpemVVUkxcbiAgZmFsc2UpO1xufSk7IC8vIFRoZXNlIGF0dHJpYnV0ZSBleGlzdHMgYm90aCBpbiBIVE1MIGFuZCBTVkcuXG4vLyBUaGUgYXR0cmlidXRlIG5hbWUgaXMgY2FzZS1zZW5zaXRpdmUgaW4gU1ZHIHNvIHdlIGNhbid0IGp1c3QgdXNlXG4vLyB0aGUgUmVhY3QgbmFtZSBsaWtlIHdlIGRvIGZvciBhdHRyaWJ1dGVzIHRoYXQgZXhpc3Qgb25seSBpbiBIVE1MLlxuXG5bJ3RhYkluZGV4JywgJ2Nyb3NzT3JpZ2luJ10uZm9yRWFjaChmdW5jdGlvbiAoYXR0cmlidXRlTmFtZSkge1xuICBwcm9wZXJ0aWVzW2F0dHJpYnV0ZU5hbWVdID0gbmV3IFByb3BlcnR5SW5mb1JlY29yZChhdHRyaWJ1dGVOYW1lLCBTVFJJTkcsIGZhbHNlLCAvLyBtdXN0VXNlUHJvcGVydHlcbiAgYXR0cmlidXRlTmFtZS50b0xvd2VyQ2FzZSgpLCAvLyBhdHRyaWJ1dGVOYW1lXG4gIG51bGwsIC8vIGF0dHJpYnV0ZU5hbWVzcGFjZVxuICBmYWxzZSwgLy8gc2FuaXRpemVVUkxcbiAgZmFsc2UpO1xufSk7IC8vIFRoZXNlIGF0dHJpYnV0ZXMgYWNjZXB0IFVSTHMuIFRoZXNlIG11c3Qgbm90IGFsbG93IGphdmFzY3JpcHQ6IFVSTFMuXG4vLyBUaGVzZSB3aWxsIGFsc28gbmVlZCB0byBhY2NlcHQgVHJ1c3RlZCBUeXBlcyBvYmplY3QgaW4gdGhlIGZ1dHVyZS5cblxudmFyIHhsaW5rSHJlZiA9ICd4bGlua0hyZWYnO1xucHJvcGVydGllc1t4bGlua0hyZWZdID0gbmV3IFByb3BlcnR5SW5mb1JlY29yZCgneGxpbmtIcmVmJywgU1RSSU5HLCBmYWxzZSwgLy8gbXVzdFVzZVByb3BlcnR5XG4neGxpbms6aHJlZicsICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJywgdHJ1ZSwgLy8gc2FuaXRpemVVUkxcbmZhbHNlKTtcblsnc3JjJywgJ2hyZWYnLCAnYWN0aW9uJywgJ2Zvcm1BY3Rpb24nXS5mb3JFYWNoKGZ1bmN0aW9uIChhdHRyaWJ1dGVOYW1lKSB7XG4gIHByb3BlcnRpZXNbYXR0cmlidXRlTmFtZV0gPSBuZXcgUHJvcGVydHlJbmZvUmVjb3JkKGF0dHJpYnV0ZU5hbWUsIFNUUklORywgZmFsc2UsIC8vIG11c3RVc2VQcm9wZXJ0eVxuICBhdHRyaWJ1dGVOYW1lLnRvTG93ZXJDYXNlKCksIC8vIGF0dHJpYnV0ZU5hbWVcbiAgbnVsbCwgLy8gYXR0cmlidXRlTmFtZXNwYWNlXG4gIHRydWUsIC8vIHNhbml0aXplVVJMXG4gIHRydWUpO1xufSk7XG5cbi8vIGFuZCBhbnkgbmV3bGluZSBvciB0YWIgYXJlIGZpbHRlcmVkIG91dCBhcyBpZiB0aGV5J3JlIG5vdCBwYXJ0IG9mIHRoZSBVUkwuXG4vLyBodHRwczovL3VybC5zcGVjLndoYXR3Zy5vcmcvI3VybC1wYXJzaW5nXG4vLyBUYWIgb3IgbmV3bGluZSBhcmUgZGVmaW5lZCBhcyBcXHJcXG5cXHQ6XG4vLyBodHRwczovL2luZnJhLnNwZWMud2hhdHdnLm9yZy8jYXNjaWktdGFiLW9yLW5ld2xpbmVcbi8vIEEgQzAgY29udHJvbCBpcyBhIGNvZGUgcG9pbnQgaW4gdGhlIHJhbmdlIFxcdTAwMDAgTlVMTCB0byBcXHUwMDFGXG4vLyBJTkZPUk1BVElPTiBTRVBBUkFUT1IgT05FLCBpbmNsdXNpdmU6XG4vLyBodHRwczovL2luZnJhLnNwZWMud2hhdHdnLm9yZy8jYzAtY29udHJvbC1vci1zcGFjZVxuXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuICovXG5cbnZhciBpc0phdmFTY3JpcHRQcm90b2NvbCA9IC9eW1xcdTAwMDAtXFx1MDAxRiBdKmpbXFxyXFxuXFx0XSphW1xcclxcblxcdF0qdltcXHJcXG5cXHRdKmFbXFxyXFxuXFx0XSpzW1xcclxcblxcdF0qY1tcXHJcXG5cXHRdKnJbXFxyXFxuXFx0XSppW1xcclxcblxcdF0qcFtcXHJcXG5cXHRdKnRbXFxyXFxuXFx0XSpcXDovaTtcbnZhciBkaWRXYXJuID0gZmFsc2U7XG5cbmZ1bmN0aW9uIHNhbml0aXplVVJMKHVybCkge1xuICB7XG4gICAgaWYgKCFkaWRXYXJuICYmIGlzSmF2YVNjcmlwdFByb3RvY29sLnRlc3QodXJsKSkge1xuICAgICAgZGlkV2FybiA9IHRydWU7XG5cbiAgICAgIGVycm9yKCdBIGZ1dHVyZSB2ZXJzaW9uIG9mIFJlYWN0IHdpbGwgYmxvY2sgamF2YXNjcmlwdDogVVJMcyBhcyBhIHNlY3VyaXR5IHByZWNhdXRpb24uICcgKyAnVXNlIGV2ZW50IGhhbmRsZXJzIGluc3RlYWQgaWYgeW91IGNhbi4gSWYgeW91IG5lZWQgdG8gZ2VuZXJhdGUgdW5zYWZlIEhUTUwgdHJ5ICcgKyAndXNpbmcgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgaW5zdGVhZC4gUmVhY3Qgd2FzIHBhc3NlZCAlcy4nLCBKU09OLnN0cmluZ2lmeSh1cmwpKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBHZXQgdGhlIHZhbHVlIGZvciBhIHByb3BlcnR5IG9uIGEgbm9kZS4gT25seSB1c2VkIGluIERFViBmb3IgU1NSIHZhbGlkYXRpb24uXG4gKiBUaGUgXCJleHBlY3RlZFwiIGFyZ3VtZW50IGlzIHVzZWQgYXMgYSBoaW50IG9mIHdoYXQgdGhlIGV4cGVjdGVkIHZhbHVlIGlzLlxuICogU29tZSBwcm9wZXJ0aWVzIGhhdmUgbXVsdGlwbGUgZXF1aXZhbGVudCB2YWx1ZXMuXG4gKi9cbmZ1bmN0aW9uIGdldFZhbHVlRm9yUHJvcGVydHkobm9kZSwgbmFtZSwgZXhwZWN0ZWQsIHByb3BlcnR5SW5mbykge1xuICB7XG4gICAgaWYgKHByb3BlcnR5SW5mby5tdXN0VXNlUHJvcGVydHkpIHtcbiAgICAgIHZhciBwcm9wZXJ0eU5hbWUgPSBwcm9wZXJ0eUluZm8ucHJvcGVydHlOYW1lO1xuICAgICAgcmV0dXJuIG5vZGVbcHJvcGVydHlOYW1lXTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCBwcm9wZXJ0eUluZm8uc2FuaXRpemVVUkwpIHtcbiAgICAgICAgLy8gSWYgd2UgaGF2ZW4ndCBmdWxseSBkaXNhYmxlZCBqYXZhc2NyaXB0OiBVUkxzLCBhbmQgaWZcbiAgICAgICAgLy8gdGhlIGh5ZHJhdGlvbiBpcyBzdWNjZXNzZnVsIG9mIGEgamF2YXNjcmlwdDogVVJMLCB3ZVxuICAgICAgICAvLyBzdGlsbCB3YW50IHRvIHdhcm4gb24gdGhlIGNsaWVudC5cbiAgICAgICAgc2FuaXRpemVVUkwoJycgKyBleHBlY3RlZCk7XG4gICAgICB9XG5cbiAgICAgIHZhciBhdHRyaWJ1dGVOYW1lID0gcHJvcGVydHlJbmZvLmF0dHJpYnV0ZU5hbWU7XG4gICAgICB2YXIgc3RyaW5nVmFsdWUgPSBudWxsO1xuXG4gICAgICBpZiAocHJvcGVydHlJbmZvLnR5cGUgPT09IE9WRVJMT0FERURfQk9PTEVBTikge1xuICAgICAgICBpZiAobm9kZS5oYXNBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSkpIHtcbiAgICAgICAgICB2YXIgdmFsdWUgPSBub2RlLmdldEF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKTtcblxuICAgICAgICAgIGlmICh2YWx1ZSA9PT0gJycpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChzaG91bGRSZW1vdmVBdHRyaWJ1dGUobmFtZSwgZXhwZWN0ZWQsIHByb3BlcnR5SW5mbywgZmFsc2UpKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHZhbHVlID09PSAnJyArIGV4cGVjdGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gZXhwZWN0ZWQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKG5vZGUuaGFzQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpKSB7XG4gICAgICAgIGlmIChzaG91bGRSZW1vdmVBdHRyaWJ1dGUobmFtZSwgZXhwZWN0ZWQsIHByb3BlcnR5SW5mbywgZmFsc2UpKSB7XG4gICAgICAgICAgLy8gV2UgaGFkIGFuIGF0dHJpYnV0ZSBidXQgc2hvdWxkbid0IGhhdmUgaGFkIG9uZSwgc28gcmVhZCBpdFxuICAgICAgICAgIC8vIGZvciB0aGUgZXJyb3IgbWVzc2FnZS5cbiAgICAgICAgICByZXR1cm4gbm9kZS5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocHJvcGVydHlJbmZvLnR5cGUgPT09IEJPT0xFQU4pIHtcbiAgICAgICAgICAvLyBJZiB0aGlzIHdhcyBhIGJvb2xlYW4sIGl0IGRvZXNuJ3QgbWF0dGVyIHdoYXQgdGhlIHZhbHVlIGlzXG4gICAgICAgICAgLy8gdGhlIGZhY3QgdGhhdCB3ZSBoYXZlIGl0IGlzIHRoZSBzYW1lIGFzIHRoZSBleHBlY3RlZC5cbiAgICAgICAgICByZXR1cm4gZXhwZWN0ZWQ7XG4gICAgICAgIH0gLy8gRXZlbiBpZiB0aGlzIHByb3BlcnR5IHVzZXMgYSBuYW1lc3BhY2Ugd2UgdXNlIGdldEF0dHJpYnV0ZVxuICAgICAgICAvLyBiZWNhdXNlIHdlIGFzc3VtZSBpdHMgbmFtZXNwYWNlZCBuYW1lIGlzIHRoZSBzYW1lIGFzIG91ciBjb25maWcuXG4gICAgICAgIC8vIFRvIHVzZSBnZXRBdHRyaWJ1dGVOUyB3ZSBuZWVkIHRoZSBsb2NhbCBuYW1lIHdoaWNoIHdlIGRvbid0IGhhdmVcbiAgICAgICAgLy8gaW4gb3VyIGNvbmZpZyBhdG0uXG5cblxuICAgICAgICBzdHJpbmdWYWx1ZSA9IG5vZGUuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpO1xuICAgICAgfVxuXG4gICAgICBpZiAoc2hvdWxkUmVtb3ZlQXR0cmlidXRlKG5hbWUsIGV4cGVjdGVkLCBwcm9wZXJ0eUluZm8sIGZhbHNlKSkge1xuICAgICAgICByZXR1cm4gc3RyaW5nVmFsdWUgPT09IG51bGwgPyBleHBlY3RlZCA6IHN0cmluZ1ZhbHVlO1xuICAgICAgfSBlbHNlIGlmIChzdHJpbmdWYWx1ZSA9PT0gJycgKyBleHBlY3RlZCkge1xuICAgICAgICByZXR1cm4gZXhwZWN0ZWQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gc3RyaW5nVmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4vKipcbiAqIEdldCB0aGUgdmFsdWUgZm9yIGEgYXR0cmlidXRlIG9uIGEgbm9kZS4gT25seSB1c2VkIGluIERFViBmb3IgU1NSIHZhbGlkYXRpb24uXG4gKiBUaGUgdGhpcmQgYXJndW1lbnQgaXMgdXNlZCBhcyBhIGhpbnQgb2Ygd2hhdCB0aGUgZXhwZWN0ZWQgdmFsdWUgaXMuIFNvbWVcbiAqIGF0dHJpYnV0ZXMgaGF2ZSBtdWx0aXBsZSBlcXVpdmFsZW50IHZhbHVlcy5cbiAqL1xuXG5mdW5jdGlvbiBnZXRWYWx1ZUZvckF0dHJpYnV0ZShub2RlLCBuYW1lLCBleHBlY3RlZCkge1xuICB7XG4gICAgaWYgKCFpc0F0dHJpYnV0ZU5hbWVTYWZlKG5hbWUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfSAvLyBJZiB0aGUgb2JqZWN0IGlzIGFuIG9wYXF1ZSByZWZlcmVuY2UgSUQsIGl0J3MgZXhwZWN0ZWQgdGhhdFxuICAgIC8vIHRoZSBuZXh0IHByb3AgaXMgZGlmZmVyZW50IHRoYW4gdGhlIHNlcnZlciB2YWx1ZSwgc28ganVzdCByZXR1cm5cbiAgICAvLyBleHBlY3RlZFxuXG5cbiAgICBpZiAoaXNPcGFxdWVIeWRyYXRpbmdPYmplY3QoZXhwZWN0ZWQpKSB7XG4gICAgICByZXR1cm4gZXhwZWN0ZWQ7XG4gICAgfVxuXG4gICAgaWYgKCFub2RlLmhhc0F0dHJpYnV0ZShuYW1lKSkge1xuICAgICAgcmV0dXJuIGV4cGVjdGVkID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiBudWxsO1xuICAgIH1cblxuICAgIHZhciB2YWx1ZSA9IG5vZGUuZ2V0QXR0cmlidXRlKG5hbWUpO1xuXG4gICAgaWYgKHZhbHVlID09PSAnJyArIGV4cGVjdGVkKSB7XG4gICAgICByZXR1cm4gZXhwZWN0ZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59XG4vKipcbiAqIFNldHMgdGhlIHZhbHVlIGZvciBhIHByb3BlcnR5IG9uIGEgbm9kZS5cbiAqXG4gKiBAcGFyYW0ge0RPTUVsZW1lbnR9IG5vZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lXG4gKiBAcGFyYW0geyp9IHZhbHVlXG4gKi9cblxuZnVuY3Rpb24gc2V0VmFsdWVGb3JQcm9wZXJ0eShub2RlLCBuYW1lLCB2YWx1ZSwgaXNDdXN0b21Db21wb25lbnRUYWcpIHtcbiAgdmFyIHByb3BlcnR5SW5mbyA9IGdldFByb3BlcnR5SW5mbyhuYW1lKTtcblxuICBpZiAoc2hvdWxkSWdub3JlQXR0cmlidXRlKG5hbWUsIHByb3BlcnR5SW5mbywgaXNDdXN0b21Db21wb25lbnRUYWcpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKHNob3VsZFJlbW92ZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgcHJvcGVydHlJbmZvLCBpc0N1c3RvbUNvbXBvbmVudFRhZykpIHtcbiAgICB2YWx1ZSA9IG51bGw7XG4gIH0gLy8gSWYgdGhlIHByb3AgaXNuJ3QgaW4gdGhlIHNwZWNpYWwgbGlzdCwgdHJlYXQgaXQgYXMgYSBzaW1wbGUgYXR0cmlidXRlLlxuXG5cbiAgaWYgKGlzQ3VzdG9tQ29tcG9uZW50VGFnIHx8IHByb3BlcnR5SW5mbyA9PT0gbnVsbCkge1xuICAgIGlmIChpc0F0dHJpYnV0ZU5hbWVTYWZlKG5hbWUpKSB7XG4gICAgICB2YXIgX2F0dHJpYnV0ZU5hbWUgPSBuYW1lO1xuXG4gICAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgbm9kZS5yZW1vdmVBdHRyaWJ1dGUoX2F0dHJpYnV0ZU5hbWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoX2F0dHJpYnV0ZU5hbWUsICAnJyArIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgbXVzdFVzZVByb3BlcnR5ID0gcHJvcGVydHlJbmZvLm11c3RVc2VQcm9wZXJ0eTtcblxuICBpZiAobXVzdFVzZVByb3BlcnR5KSB7XG4gICAgdmFyIHByb3BlcnR5TmFtZSA9IHByb3BlcnR5SW5mby5wcm9wZXJ0eU5hbWU7XG5cbiAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgIHZhciB0eXBlID0gcHJvcGVydHlJbmZvLnR5cGU7XG4gICAgICBub2RlW3Byb3BlcnR5TmFtZV0gPSB0eXBlID09PSBCT09MRUFOID8gZmFsc2UgOiAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQ29udHJhcnkgdG8gYHNldEF0dHJpYnV0ZWAsIG9iamVjdCBwcm9wZXJ0aWVzIGFyZSBwcm9wZXJseVxuICAgICAgLy8gYHRvU3RyaW5nYGVkIGJ5IElFOC85LlxuICAgICAgbm9kZVtwcm9wZXJ0eU5hbWVdID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcmV0dXJuO1xuICB9IC8vIFRoZSByZXN0IGFyZSB0cmVhdGVkIGFzIGF0dHJpYnV0ZXMgd2l0aCBzcGVjaWFsIGNhc2VzLlxuXG5cbiAgdmFyIGF0dHJpYnV0ZU5hbWUgPSBwcm9wZXJ0eUluZm8uYXR0cmlidXRlTmFtZSxcbiAgICAgIGF0dHJpYnV0ZU5hbWVzcGFjZSA9IHByb3BlcnR5SW5mby5hdHRyaWJ1dGVOYW1lc3BhY2U7XG5cbiAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgbm9kZS5yZW1vdmVBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7XG4gIH0gZWxzZSB7XG4gICAgdmFyIF90eXBlID0gcHJvcGVydHlJbmZvLnR5cGU7XG4gICAgdmFyIGF0dHJpYnV0ZVZhbHVlO1xuXG4gICAgaWYgKF90eXBlID09PSBCT09MRUFOIHx8IF90eXBlID09PSBPVkVSTE9BREVEX0JPT0xFQU4gJiYgdmFsdWUgPT09IHRydWUpIHtcbiAgICAgIC8vIElmIGF0dHJpYnV0ZSB0eXBlIGlzIGJvb2xlYW4sIHdlIGtub3cgZm9yIHN1cmUgaXQgd29uJ3QgYmUgYW4gZXhlY3V0aW9uIHNpbmtcbiAgICAgIC8vIGFuZCB3ZSB3b24ndCByZXF1aXJlIFRydXN0ZWQgVHlwZSBoZXJlLlxuICAgICAgYXR0cmlidXRlVmFsdWUgPSAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gYHNldEF0dHJpYnV0ZWAgd2l0aCBvYmplY3RzIGJlY29tZXMgb25seSBgW29iamVjdF1gIGluIElFOC85LFxuICAgICAgLy8gKCcnICsgdmFsdWUpIG1ha2VzIGl0IG91dHB1dCB0aGUgY29ycmVjdCB0b1N0cmluZygpLXZhbHVlLlxuICAgICAge1xuICAgICAgICBhdHRyaWJ1dGVWYWx1ZSA9ICcnICsgdmFsdWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChwcm9wZXJ0eUluZm8uc2FuaXRpemVVUkwpIHtcbiAgICAgICAgc2FuaXRpemVVUkwoYXR0cmlidXRlVmFsdWUudG9TdHJpbmcoKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGF0dHJpYnV0ZU5hbWVzcGFjZSkge1xuICAgICAgbm9kZS5zZXRBdHRyaWJ1dGVOUyhhdHRyaWJ1dGVOYW1lc3BhY2UsIGF0dHJpYnV0ZU5hbWUsIGF0dHJpYnV0ZVZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSwgYXR0cmlidXRlVmFsdWUpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBBVFRFTlRJT05cbi8vIFdoZW4gYWRkaW5nIG5ldyBzeW1ib2xzIHRvIHRoaXMgZmlsZSxcbi8vIFBsZWFzZSBjb25zaWRlciBhbHNvIGFkZGluZyB0byAncmVhY3QtZGV2dG9vbHMtc2hhcmVkL3NyYy9iYWNrZW5kL1JlYWN0U3ltYm9scydcbi8vIFRoZSBTeW1ib2wgdXNlZCB0byB0YWcgdGhlIFJlYWN0RWxlbWVudC1saWtlIHR5cGVzLiBJZiB0aGVyZSBpcyBubyBuYXRpdmUgU3ltYm9sXG4vLyBub3IgcG9seWZpbGwsIHRoZW4gYSBwbGFpbiBudW1iZXIgaXMgdXNlZCBmb3IgcGVyZm9ybWFuY2UuXG52YXIgUkVBQ1RfRUxFTUVOVF9UWVBFID0gMHhlYWM3O1xudmFyIFJFQUNUX1BPUlRBTF9UWVBFID0gMHhlYWNhO1xudmFyIFJFQUNUX0ZSQUdNRU5UX1RZUEUgPSAweGVhY2I7XG52YXIgUkVBQ1RfU1RSSUNUX01PREVfVFlQRSA9IDB4ZWFjYztcbnZhciBSRUFDVF9QUk9GSUxFUl9UWVBFID0gMHhlYWQyO1xudmFyIFJFQUNUX1BST1ZJREVSX1RZUEUgPSAweGVhY2Q7XG52YXIgUkVBQ1RfQ09OVEVYVF9UWVBFID0gMHhlYWNlO1xudmFyIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgPSAweGVhZDA7XG52YXIgUkVBQ1RfU1VTUEVOU0VfVFlQRSA9IDB4ZWFkMTtcbnZhciBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUgPSAweGVhZDg7XG52YXIgUkVBQ1RfTUVNT19UWVBFID0gMHhlYWQzO1xudmFyIFJFQUNUX0xBWllfVFlQRSA9IDB4ZWFkNDtcbnZhciBSRUFDVF9CTE9DS19UWVBFID0gMHhlYWQ5O1xudmFyIFJFQUNUX1NFUlZFUl9CTE9DS19UWVBFID0gMHhlYWRhO1xudmFyIFJFQUNUX0ZVTkRBTUVOVEFMX1RZUEUgPSAweGVhZDU7XG52YXIgUkVBQ1RfU0NPUEVfVFlQRSA9IDB4ZWFkNztcbnZhciBSRUFDVF9PUEFRVUVfSURfVFlQRSA9IDB4ZWFlMDtcbnZhciBSRUFDVF9ERUJVR19UUkFDSU5HX01PREVfVFlQRSA9IDB4ZWFlMTtcbnZhciBSRUFDVF9PRkZTQ1JFRU5fVFlQRSA9IDB4ZWFlMjtcbnZhciBSRUFDVF9MRUdBQ1lfSElEREVOX1RZUEUgPSAweGVhZTM7XG5cbmlmICh0eXBlb2YgU3ltYm9sID09PSAnZnVuY3Rpb24nICYmIFN5bWJvbC5mb3IpIHtcbiAgdmFyIHN5bWJvbEZvciA9IFN5bWJvbC5mb3I7XG4gIFJFQUNUX0VMRU1FTlRfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QuZWxlbWVudCcpO1xuICBSRUFDVF9QT1JUQUxfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QucG9ydGFsJyk7XG4gIFJFQUNUX0ZSQUdNRU5UX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LmZyYWdtZW50Jyk7XG4gIFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LnN0cmljdF9tb2RlJyk7XG4gIFJFQUNUX1BST0ZJTEVSX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LnByb2ZpbGVyJyk7XG4gIFJFQUNUX1BST1ZJREVSX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LnByb3ZpZGVyJyk7XG4gIFJFQUNUX0NPTlRFWFRfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QuY29udGV4dCcpO1xuICBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5mb3J3YXJkX3JlZicpO1xuICBSRUFDVF9TVVNQRU5TRV9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5zdXNwZW5zZScpO1xuICBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LnN1c3BlbnNlX2xpc3QnKTtcbiAgUkVBQ1RfTUVNT19UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5tZW1vJyk7XG4gIFJFQUNUX0xBWllfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QubGF6eScpO1xuICBSRUFDVF9CTE9DS19UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5ibG9jaycpO1xuICBSRUFDVF9TRVJWRVJfQkxPQ0tfVFlQRSA9IHN5bWJvbEZvcigncmVhY3Quc2VydmVyLmJsb2NrJyk7XG4gIFJFQUNUX0ZVTkRBTUVOVEFMX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LmZ1bmRhbWVudGFsJyk7XG4gIFJFQUNUX1NDT1BFX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LnNjb3BlJyk7XG4gIFJFQUNUX09QQVFVRV9JRF9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5vcGFxdWUuaWQnKTtcbiAgUkVBQ1RfREVCVUdfVFJBQ0lOR19NT0RFX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LmRlYnVnX3RyYWNlX21vZGUnKTtcbiAgUkVBQ1RfT0ZGU0NSRUVOX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0Lm9mZnNjcmVlbicpO1xuICBSRUFDVF9MRUdBQ1lfSElEREVOX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LmxlZ2FjeV9oaWRkZW4nKTtcbn1cblxudmFyIE1BWUJFX0lURVJBVE9SX1NZTUJPTCA9IHR5cGVvZiBTeW1ib2wgPT09ICdmdW5jdGlvbicgJiYgU3ltYm9sLml0ZXJhdG9yO1xudmFyIEZBVVhfSVRFUkFUT1JfU1lNQk9MID0gJ0BAaXRlcmF0b3InO1xuZnVuY3Rpb24gZ2V0SXRlcmF0b3JGbihtYXliZUl0ZXJhYmxlKSB7XG4gIGlmIChtYXliZUl0ZXJhYmxlID09PSBudWxsIHx8IHR5cGVvZiBtYXliZUl0ZXJhYmxlICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgdmFyIG1heWJlSXRlcmF0b3IgPSBNQVlCRV9JVEVSQVRPUl9TWU1CT0wgJiYgbWF5YmVJdGVyYWJsZVtNQVlCRV9JVEVSQVRPUl9TWU1CT0xdIHx8IG1heWJlSXRlcmFibGVbRkFVWF9JVEVSQVRPUl9TWU1CT0xdO1xuXG4gIGlmICh0eXBlb2YgbWF5YmVJdGVyYXRvciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBtYXliZUl0ZXJhdG9yO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8vIEhlbHBlcnMgdG8gcGF0Y2ggY29uc29sZS5sb2dzIHRvIGF2b2lkIGxvZ2dpbmcgZHVyaW5nIHNpZGUtZWZmZWN0IGZyZWVcbi8vIHJlcGxheWluZyBvbiByZW5kZXIgZnVuY3Rpb24uIFRoaXMgY3VycmVudGx5IG9ubHkgcGF0Y2hlcyB0aGUgb2JqZWN0XG4vLyBsYXppbHkgd2hpY2ggd29uJ3QgY292ZXIgaWYgdGhlIGxvZyBmdW5jdGlvbiB3YXMgZXh0cmFjdGVkIGVhZ2VybHkuXG4vLyBXZSBjb3VsZCBhbHNvIGVhZ2VybHkgcGF0Y2ggdGhlIG1ldGhvZC5cbnZhciBkaXNhYmxlZERlcHRoID0gMDtcbnZhciBwcmV2TG9nO1xudmFyIHByZXZJbmZvO1xudmFyIHByZXZXYXJuO1xudmFyIHByZXZFcnJvcjtcbnZhciBwcmV2R3JvdXA7XG52YXIgcHJldkdyb3VwQ29sbGFwc2VkO1xudmFyIHByZXZHcm91cEVuZDtcblxuZnVuY3Rpb24gZGlzYWJsZWRMb2coKSB7fVxuXG5kaXNhYmxlZExvZy5fX3JlYWN0RGlzYWJsZWRMb2cgPSB0cnVlO1xuZnVuY3Rpb24gZGlzYWJsZUxvZ3MoKSB7XG4gIHtcbiAgICBpZiAoZGlzYWJsZWREZXB0aCA9PT0gMCkge1xuICAgICAgLyogZXNsaW50LWRpc2FibGUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nICovXG4gICAgICBwcmV2TG9nID0gY29uc29sZS5sb2c7XG4gICAgICBwcmV2SW5mbyA9IGNvbnNvbGUuaW5mbztcbiAgICAgIHByZXZXYXJuID0gY29uc29sZS53YXJuO1xuICAgICAgcHJldkVycm9yID0gY29uc29sZS5lcnJvcjtcbiAgICAgIHByZXZHcm91cCA9IGNvbnNvbGUuZ3JvdXA7XG4gICAgICBwcmV2R3JvdXBDb2xsYXBzZWQgPSBjb25zb2xlLmdyb3VwQ29sbGFwc2VkO1xuICAgICAgcHJldkdyb3VwRW5kID0gY29uc29sZS5ncm91cEVuZDsgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xOTA5OVxuXG4gICAgICB2YXIgcHJvcHMgPSB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgdmFsdWU6IGRpc2FibGVkTG9nLFxuICAgICAgICB3cml0YWJsZTogdHJ1ZVxuICAgICAgfTsgLy8gJEZsb3dGaXhNZSBGbG93IHRoaW5rcyBjb25zb2xlIGlzIGltbXV0YWJsZS5cblxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoY29uc29sZSwge1xuICAgICAgICBpbmZvOiBwcm9wcyxcbiAgICAgICAgbG9nOiBwcm9wcyxcbiAgICAgICAgd2FybjogcHJvcHMsXG4gICAgICAgIGVycm9yOiBwcm9wcyxcbiAgICAgICAgZ3JvdXA6IHByb3BzLFxuICAgICAgICBncm91cENvbGxhcHNlZDogcHJvcHMsXG4gICAgICAgIGdyb3VwRW5kOiBwcm9wc1xuICAgICAgfSk7XG4gICAgICAvKiBlc2xpbnQtZW5hYmxlIHJlYWN0LWludGVybmFsL25vLXByb2R1Y3Rpb24tbG9nZ2luZyAqL1xuICAgIH1cblxuICAgIGRpc2FibGVkRGVwdGgrKztcbiAgfVxufVxuZnVuY3Rpb24gcmVlbmFibGVMb2dzKCkge1xuICB7XG4gICAgZGlzYWJsZWREZXB0aC0tO1xuXG4gICAgaWYgKGRpc2FibGVkRGVwdGggPT09IDApIHtcbiAgICAgIC8qIGVzbGludC1kaXNhYmxlIHJlYWN0LWludGVybmFsL25vLXByb2R1Y3Rpb24tbG9nZ2luZyAqL1xuICAgICAgdmFyIHByb3BzID0ge1xuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgICB9OyAvLyAkRmxvd0ZpeE1lIEZsb3cgdGhpbmtzIGNvbnNvbGUgaXMgaW1tdXRhYmxlLlxuXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhjb25zb2xlLCB7XG4gICAgICAgIGxvZzogX2Fzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldkxvZ1xuICAgICAgICB9KSxcbiAgICAgICAgaW5mbzogX2Fzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldkluZm9cbiAgICAgICAgfSksXG4gICAgICAgIHdhcm46IF9hc3NpZ24oe30sIHByb3BzLCB7XG4gICAgICAgICAgdmFsdWU6IHByZXZXYXJuXG4gICAgICAgIH0pLFxuICAgICAgICBlcnJvcjogX2Fzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldkVycm9yXG4gICAgICAgIH0pLFxuICAgICAgICBncm91cDogX2Fzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldkdyb3VwXG4gICAgICAgIH0pLFxuICAgICAgICBncm91cENvbGxhcHNlZDogX2Fzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldkdyb3VwQ29sbGFwc2VkXG4gICAgICAgIH0pLFxuICAgICAgICBncm91cEVuZDogX2Fzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldkdyb3VwRW5kXG4gICAgICAgIH0pXG4gICAgICB9KTtcbiAgICAgIC8qIGVzbGludC1lbmFibGUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nICovXG4gICAgfVxuXG4gICAgaWYgKGRpc2FibGVkRGVwdGggPCAwKSB7XG4gICAgICBlcnJvcignZGlzYWJsZWREZXB0aCBmZWxsIGJlbG93IHplcm8uICcgKyAnVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJyk7XG4gICAgfVxuICB9XG59XG5cbnZhciBSZWFjdEN1cnJlbnREaXNwYXRjaGVyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3RDdXJyZW50RGlzcGF0Y2hlcjtcbnZhciBwcmVmaXg7XG5mdW5jdGlvbiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZShuYW1lLCBzb3VyY2UsIG93bmVyRm4pIHtcbiAge1xuICAgIGlmIChwcmVmaXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gRXh0cmFjdCB0aGUgVk0gc3BlY2lmaWMgcHJlZml4IHVzZWQgYnkgZWFjaCBsaW5lLlxuICAgICAgdHJ5IHtcbiAgICAgICAgdGhyb3cgRXJyb3IoKTtcbiAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgdmFyIG1hdGNoID0geC5zdGFjay50cmltKCkubWF0Y2goL1xcbiggKihhdCApPykvKTtcbiAgICAgICAgcHJlZml4ID0gbWF0Y2ggJiYgbWF0Y2hbMV0gfHwgJyc7XG4gICAgICB9XG4gICAgfSAvLyBXZSB1c2UgdGhlIHByZWZpeCB0byBlbnN1cmUgb3VyIHN0YWNrcyBsaW5lIHVwIHdpdGggbmF0aXZlIHN0YWNrIGZyYW1lcy5cblxuXG4gICAgcmV0dXJuICdcXG4nICsgcHJlZml4ICsgbmFtZTtcbiAgfVxufVxudmFyIHJlZW50cnkgPSBmYWxzZTtcbnZhciBjb21wb25lbnRGcmFtZUNhY2hlO1xuXG57XG4gIHZhciBQb3NzaWJseVdlYWtNYXAgPSB0eXBlb2YgV2Vha01hcCA9PT0gJ2Z1bmN0aW9uJyA/IFdlYWtNYXAgOiBNYXA7XG4gIGNvbXBvbmVudEZyYW1lQ2FjaGUgPSBuZXcgUG9zc2libHlXZWFrTWFwKCk7XG59XG5cbmZ1bmN0aW9uIGRlc2NyaWJlTmF0aXZlQ29tcG9uZW50RnJhbWUoZm4sIGNvbnN0cnVjdCkge1xuICAvLyBJZiBzb21ldGhpbmcgYXNrZWQgZm9yIGEgc3RhY2sgaW5zaWRlIGEgZmFrZSByZW5kZXIsIGl0IHNob3VsZCBnZXQgaWdub3JlZC5cbiAgaWYgKCFmbiB8fCByZWVudHJ5KSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAge1xuICAgIHZhciBmcmFtZSA9IGNvbXBvbmVudEZyYW1lQ2FjaGUuZ2V0KGZuKTtcblxuICAgIGlmIChmcmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZnJhbWU7XG4gICAgfVxuICB9XG5cbiAgdmFyIGNvbnRyb2w7XG4gIHJlZW50cnkgPSB0cnVlO1xuICB2YXIgcHJldmlvdXNQcmVwYXJlU3RhY2tUcmFjZSA9IEVycm9yLnByZXBhcmVTdGFja1RyYWNlOyAvLyAkRmxvd0ZpeE1lIEl0IGRvZXMgYWNjZXB0IHVuZGVmaW5lZC5cblxuICBFcnJvci5wcmVwYXJlU3RhY2tUcmFjZSA9IHVuZGVmaW5lZDtcbiAgdmFyIHByZXZpb3VzRGlzcGF0Y2hlcjtcblxuICB7XG4gICAgcHJldmlvdXNEaXNwYXRjaGVyID0gUmVhY3RDdXJyZW50RGlzcGF0Y2hlci5jdXJyZW50OyAvLyBTZXQgdGhlIGRpc3BhdGNoZXIgaW4gREVWIGJlY2F1c2UgdGhpcyBtaWdodCBiZSBjYWxsIGluIHRoZSByZW5kZXIgZnVuY3Rpb25cbiAgICAvLyBmb3Igd2FybmluZ3MuXG5cbiAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyLmN1cnJlbnQgPSBudWxsO1xuICAgIGRpc2FibGVMb2dzKCk7XG4gIH1cblxuICB0cnkge1xuICAgIC8vIFRoaXMgc2hvdWxkIHRocm93LlxuICAgIGlmIChjb25zdHJ1Y3QpIHtcbiAgICAgIC8vIFNvbWV0aGluZyBzaG91bGQgYmUgc2V0dGluZyB0aGUgcHJvcHMgaW4gdGhlIGNvbnN0cnVjdG9yLlxuICAgICAgdmFyIEZha2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRocm93IEVycm9yKCk7XG4gICAgICB9OyAvLyAkRmxvd0ZpeE1lXG5cblxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEZha2UucHJvdG90eXBlLCAncHJvcHMnLCB7XG4gICAgICAgIHNldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIC8vIFdlIHVzZSBhIHRocm93aW5nIHNldHRlciBpbnN0ZWFkIG9mIGZyb3plbiBvciBub24td3JpdGFibGUgcHJvcHNcbiAgICAgICAgICAvLyBiZWNhdXNlIHRoYXQgd29uJ3QgdGhyb3cgaW4gYSBub24tc3RyaWN0IG1vZGUgZnVuY3Rpb24uXG4gICAgICAgICAgdGhyb3cgRXJyb3IoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gJ29iamVjdCcgJiYgUmVmbGVjdC5jb25zdHJ1Y3QpIHtcbiAgICAgICAgLy8gV2UgY29uc3RydWN0IGEgZGlmZmVyZW50IGNvbnRyb2wgZm9yIHRoaXMgY2FzZSB0byBpbmNsdWRlIGFueSBleHRyYVxuICAgICAgICAvLyBmcmFtZXMgYWRkZWQgYnkgdGhlIGNvbnN0cnVjdCBjYWxsLlxuICAgICAgICB0cnkge1xuICAgICAgICAgIFJlZmxlY3QuY29uc3RydWN0KEZha2UsIFtdKTtcbiAgICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICAgIGNvbnRyb2wgPSB4O1xuICAgICAgICB9XG5cbiAgICAgICAgUmVmbGVjdC5jb25zdHJ1Y3QoZm4sIFtdLCBGYWtlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgRmFrZS5jYWxsKCk7XG4gICAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgICBjb250cm9sID0geDtcbiAgICAgICAgfVxuXG4gICAgICAgIGZuLmNhbGwoRmFrZS5wcm90b3R5cGUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0cnkge1xuICAgICAgICB0aHJvdyBFcnJvcigpO1xuICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICBjb250cm9sID0geDtcbiAgICAgIH1cblxuICAgICAgZm4oKTtcbiAgICB9XG4gIH0gY2F0Y2ggKHNhbXBsZSkge1xuICAgIC8vIFRoaXMgaXMgaW5saW5lZCBtYW51YWxseSBiZWNhdXNlIGNsb3N1cmUgZG9lc24ndCBkbyBpdCBmb3IgdXMuXG4gICAgaWYgKHNhbXBsZSAmJiBjb250cm9sICYmIHR5cGVvZiBzYW1wbGUuc3RhY2sgPT09ICdzdHJpbmcnKSB7XG4gICAgICAvLyBUaGlzIGV4dHJhY3RzIHRoZSBmaXJzdCBmcmFtZSBmcm9tIHRoZSBzYW1wbGUgdGhhdCBpc24ndCBhbHNvIGluIHRoZSBjb250cm9sLlxuICAgICAgLy8gU2tpcHBpbmcgb25lIGZyYW1lIHRoYXQgd2UgYXNzdW1lIGlzIHRoZSBmcmFtZSB0aGF0IGNhbGxzIHRoZSB0d28uXG4gICAgICB2YXIgc2FtcGxlTGluZXMgPSBzYW1wbGUuc3RhY2suc3BsaXQoJ1xcbicpO1xuICAgICAgdmFyIGNvbnRyb2xMaW5lcyA9IGNvbnRyb2wuc3RhY2suc3BsaXQoJ1xcbicpO1xuICAgICAgdmFyIHMgPSBzYW1wbGVMaW5lcy5sZW5ndGggLSAxO1xuICAgICAgdmFyIGMgPSBjb250cm9sTGluZXMubGVuZ3RoIC0gMTtcblxuICAgICAgd2hpbGUgKHMgPj0gMSAmJiBjID49IDAgJiYgc2FtcGxlTGluZXNbc10gIT09IGNvbnRyb2xMaW5lc1tjXSkge1xuICAgICAgICAvLyBXZSBleHBlY3QgYXQgbGVhc3Qgb25lIHN0YWNrIGZyYW1lIHRvIGJlIHNoYXJlZC5cbiAgICAgICAgLy8gVHlwaWNhbGx5IHRoaXMgd2lsbCBiZSB0aGUgcm9vdCBtb3N0IG9uZS4gSG93ZXZlciwgc3RhY2sgZnJhbWVzIG1heSBiZVxuICAgICAgICAvLyBjdXQgb2ZmIGR1ZSB0byBtYXhpbXVtIHN0YWNrIGxpbWl0cy4gSW4gdGhpcyBjYXNlLCBvbmUgbWF5YmUgY3V0IG9mZlxuICAgICAgICAvLyBlYXJsaWVyIHRoYW4gdGhlIG90aGVyLiBXZSBhc3N1bWUgdGhhdCB0aGUgc2FtcGxlIGlzIGxvbmdlciBvciB0aGUgc2FtZVxuICAgICAgICAvLyBhbmQgdGhlcmUgZm9yIGN1dCBvZmYgZWFybGllci4gU28gd2Ugc2hvdWxkIGZpbmQgdGhlIHJvb3QgbW9zdCBmcmFtZSBpblxuICAgICAgICAvLyB0aGUgc2FtcGxlIHNvbWV3aGVyZSBpbiB0aGUgY29udHJvbC5cbiAgICAgICAgYy0tO1xuICAgICAgfVxuXG4gICAgICBmb3IgKDsgcyA+PSAxICYmIGMgPj0gMDsgcy0tLCBjLS0pIHtcbiAgICAgICAgLy8gTmV4dCB3ZSBmaW5kIHRoZSBmaXJzdCBvbmUgdGhhdCBpc24ndCB0aGUgc2FtZSB3aGljaCBzaG91bGQgYmUgdGhlXG4gICAgICAgIC8vIGZyYW1lIHRoYXQgY2FsbGVkIG91ciBzYW1wbGUgZnVuY3Rpb24gYW5kIHRoZSBjb250cm9sLlxuICAgICAgICBpZiAoc2FtcGxlTGluZXNbc10gIT09IGNvbnRyb2xMaW5lc1tjXSkge1xuICAgICAgICAgIC8vIEluIFY4LCB0aGUgZmlyc3QgbGluZSBpcyBkZXNjcmliaW5nIHRoZSBtZXNzYWdlIGJ1dCBvdGhlciBWTXMgZG9uJ3QuXG4gICAgICAgICAgLy8gSWYgd2UncmUgYWJvdXQgdG8gcmV0dXJuIHRoZSBmaXJzdCBsaW5lLCBhbmQgdGhlIGNvbnRyb2wgaXMgYWxzbyBvbiB0aGUgc2FtZVxuICAgICAgICAgIC8vIGxpbmUsIHRoYXQncyBhIHByZXR0eSBnb29kIGluZGljYXRvciB0aGF0IG91ciBzYW1wbGUgdGhyZXcgYXQgc2FtZSBsaW5lIGFzXG4gICAgICAgICAgLy8gdGhlIGNvbnRyb2wuIEkuZS4gYmVmb3JlIHdlIGVudGVyZWQgdGhlIHNhbXBsZSBmcmFtZS4gU28gd2UgaWdub3JlIHRoaXMgcmVzdWx0LlxuICAgICAgICAgIC8vIFRoaXMgY2FuIGhhcHBlbiBpZiB5b3UgcGFzc2VkIGEgY2xhc3MgdG8gZnVuY3Rpb24gY29tcG9uZW50LCBvciBub24tZnVuY3Rpb24uXG4gICAgICAgICAgaWYgKHMgIT09IDEgfHwgYyAhPT0gMSkge1xuICAgICAgICAgICAgZG8ge1xuICAgICAgICAgICAgICBzLS07XG4gICAgICAgICAgICAgIGMtLTsgLy8gV2UgbWF5IHN0aWxsIGhhdmUgc2ltaWxhciBpbnRlcm1lZGlhdGUgZnJhbWVzIGZyb20gdGhlIGNvbnN0cnVjdCBjYWxsLlxuICAgICAgICAgICAgICAvLyBUaGUgbmV4dCBvbmUgdGhhdCBpc24ndCB0aGUgc2FtZSBzaG91bGQgYmUgb3VyIG1hdGNoIHRob3VnaC5cblxuICAgICAgICAgICAgICBpZiAoYyA8IDAgfHwgc2FtcGxlTGluZXNbc10gIT09IGNvbnRyb2xMaW5lc1tjXSkge1xuICAgICAgICAgICAgICAgIC8vIFY4IGFkZHMgYSBcIm5ld1wiIHByZWZpeCBmb3IgbmF0aXZlIGNsYXNzZXMuIExldCdzIHJlbW92ZSBpdCB0byBtYWtlIGl0IHByZXR0aWVyLlxuICAgICAgICAgICAgICAgIHZhciBfZnJhbWUgPSAnXFxuJyArIHNhbXBsZUxpbmVzW3NdLnJlcGxhY2UoJyBhdCBuZXcgJywgJyBhdCAnKTtcblxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50RnJhbWVDYWNoZS5zZXQoZm4sIF9mcmFtZSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSAvLyBSZXR1cm4gdGhlIGxpbmUgd2UgZm91bmQuXG5cblxuICAgICAgICAgICAgICAgIHJldHVybiBfZnJhbWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gd2hpbGUgKHMgPj0gMSAmJiBjID49IDApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9IGZpbmFsbHkge1xuICAgIHJlZW50cnkgPSBmYWxzZTtcblxuICAgIHtcbiAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIuY3VycmVudCA9IHByZXZpb3VzRGlzcGF0Y2hlcjtcbiAgICAgIHJlZW5hYmxlTG9ncygpO1xuICAgIH1cblxuICAgIEVycm9yLnByZXBhcmVTdGFja1RyYWNlID0gcHJldmlvdXNQcmVwYXJlU3RhY2tUcmFjZTtcbiAgfSAvLyBGYWxsYmFjayB0byBqdXN0IHVzaW5nIHRoZSBuYW1lIGlmIHdlIGNvdWxkbid0IG1ha2UgaXQgdGhyb3cuXG5cblxuICB2YXIgbmFtZSA9IGZuID8gZm4uZGlzcGxheU5hbWUgfHwgZm4ubmFtZSA6ICcnO1xuICB2YXIgc3ludGhldGljRnJhbWUgPSBuYW1lID8gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUobmFtZSkgOiAnJztcblxuICB7XG4gICAgaWYgKHR5cGVvZiBmbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgY29tcG9uZW50RnJhbWVDYWNoZS5zZXQoZm4sIHN5bnRoZXRpY0ZyYW1lKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3ludGhldGljRnJhbWU7XG59XG5cbmZ1bmN0aW9uIGRlc2NyaWJlQ2xhc3NDb21wb25lbnRGcmFtZShjdG9yLCBzb3VyY2UsIG93bmVyRm4pIHtcbiAge1xuICAgIHJldHVybiBkZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lKGN0b3IsIHRydWUpO1xuICB9XG59XG5mdW5jdGlvbiBkZXNjcmliZUZ1bmN0aW9uQ29tcG9uZW50RnJhbWUoZm4sIHNvdXJjZSwgb3duZXJGbikge1xuICB7XG4gICAgcmV0dXJuIGRlc2NyaWJlTmF0aXZlQ29tcG9uZW50RnJhbWUoZm4sIGZhbHNlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBzaG91bGRDb25zdHJ1Y3QoQ29tcG9uZW50KSB7XG4gIHZhciBwcm90b3R5cGUgPSBDb21wb25lbnQucHJvdG90eXBlO1xuICByZXR1cm4gISEocHJvdG90eXBlICYmIHByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50KTtcbn1cblxuZnVuY3Rpb24gZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWKHR5cGUsIHNvdXJjZSwgb3duZXJGbikge1xuXG4gIGlmICh0eXBlID09IG51bGwpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICB7XG4gICAgICByZXR1cm4gZGVzY3JpYmVOYXRpdmVDb21wb25lbnRGcmFtZSh0eXBlLCBzaG91bGRDb25zdHJ1Y3QodHlwZSkpO1xuICAgIH1cbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUodHlwZSk7XG4gIH1cblxuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX1RZUEU6XG4gICAgICByZXR1cm4gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUoJ1N1c3BlbnNlJyk7XG5cbiAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRTpcbiAgICAgIHJldHVybiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZSgnU3VzcGVuc2VMaXN0Jyk7XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdvYmplY3QnKSB7XG4gICAgc3dpdGNoICh0eXBlLiQkdHlwZW9mKSB7XG4gICAgICBjYXNlIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU6XG4gICAgICAgIHJldHVybiBkZXNjcmliZUZ1bmN0aW9uQ29tcG9uZW50RnJhbWUodHlwZS5yZW5kZXIpO1xuXG4gICAgICBjYXNlIFJFQUNUX01FTU9fVFlQRTpcbiAgICAgICAgLy8gTWVtbyBtYXkgY29udGFpbiBhbnkgY29tcG9uZW50IHR5cGUgc28gd2UgcmVjdXJzaXZlbHkgcmVzb2x2ZSBpdC5cbiAgICAgICAgcmV0dXJuIGRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFVih0eXBlLnR5cGUsIHNvdXJjZSwgb3duZXJGbik7XG5cbiAgICAgIGNhc2UgUkVBQ1RfQkxPQ0tfVFlQRTpcbiAgICAgICAgcmV0dXJuIGRlc2NyaWJlRnVuY3Rpb25Db21wb25lbnRGcmFtZSh0eXBlLl9yZW5kZXIpO1xuXG4gICAgICBjYXNlIFJFQUNUX0xBWllfVFlQRTpcbiAgICAgICAge1xuICAgICAgICAgIHZhciBsYXp5Q29tcG9uZW50ID0gdHlwZTtcbiAgICAgICAgICB2YXIgcGF5bG9hZCA9IGxhenlDb21wb25lbnQuX3BheWxvYWQ7XG4gICAgICAgICAgdmFyIGluaXQgPSBsYXp5Q29tcG9uZW50Ll9pbml0O1xuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIC8vIExhenkgbWF5IGNvbnRhaW4gYW55IGNvbXBvbmVudCB0eXBlIHNvIHdlIHJlY3Vyc2l2ZWx5IHJlc29sdmUgaXQuXG4gICAgICAgICAgICByZXR1cm4gZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWKGluaXQocGF5bG9hZCksIHNvdXJjZSwgb3duZXJGbik7XG4gICAgICAgICAgfSBjYXRjaCAoeCkge31cbiAgICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiAnJztcbn1cblxuZnVuY3Rpb24gZGVzY3JpYmVGaWJlcihmaWJlcikge1xuICB2YXIgb3duZXIgPSAgZmliZXIuX2RlYnVnT3duZXIgPyBmaWJlci5fZGVidWdPd25lci50eXBlIDogbnVsbCA7XG4gIHZhciBzb3VyY2UgPSAgZmliZXIuX2RlYnVnU291cmNlIDtcblxuICBzd2l0Y2ggKGZpYmVyLnRhZykge1xuICAgIGNhc2UgSG9zdENvbXBvbmVudDpcbiAgICAgIHJldHVybiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZShmaWJlci50eXBlKTtcblxuICAgIGNhc2UgTGF6eUNvbXBvbmVudDpcbiAgICAgIHJldHVybiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZSgnTGF6eScpO1xuXG4gICAgY2FzZSBTdXNwZW5zZUNvbXBvbmVudDpcbiAgICAgIHJldHVybiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZSgnU3VzcGVuc2UnKTtcblxuICAgIGNhc2UgU3VzcGVuc2VMaXN0Q29tcG9uZW50OlxuICAgICAgcmV0dXJuIGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKCdTdXNwZW5zZUxpc3QnKTtcblxuICAgIGNhc2UgRnVuY3Rpb25Db21wb25lbnQ6XG4gICAgY2FzZSBJbmRldGVybWluYXRlQ29tcG9uZW50OlxuICAgIGNhc2UgU2ltcGxlTWVtb0NvbXBvbmVudDpcbiAgICAgIHJldHVybiBkZXNjcmliZUZ1bmN0aW9uQ29tcG9uZW50RnJhbWUoZmliZXIudHlwZSk7XG5cbiAgICBjYXNlIEZvcndhcmRSZWY6XG4gICAgICByZXR1cm4gZGVzY3JpYmVGdW5jdGlvbkNvbXBvbmVudEZyYW1lKGZpYmVyLnR5cGUucmVuZGVyKTtcblxuICAgIGNhc2UgQmxvY2s6XG4gICAgICByZXR1cm4gZGVzY3JpYmVGdW5jdGlvbkNvbXBvbmVudEZyYW1lKGZpYmVyLnR5cGUuX3JlbmRlcik7XG5cbiAgICBjYXNlIENsYXNzQ29tcG9uZW50OlxuICAgICAgcmV0dXJuIGRlc2NyaWJlQ2xhc3NDb21wb25lbnRGcmFtZShmaWJlci50eXBlKTtcblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gJyc7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0U3RhY2tCeUZpYmVySW5EZXZBbmRQcm9kKHdvcmtJblByb2dyZXNzKSB7XG4gIHRyeSB7XG4gICAgdmFyIGluZm8gPSAnJztcbiAgICB2YXIgbm9kZSA9IHdvcmtJblByb2dyZXNzO1xuXG4gICAgZG8ge1xuICAgICAgaW5mbyArPSBkZXNjcmliZUZpYmVyKG5vZGUpO1xuICAgICAgbm9kZSA9IG5vZGUucmV0dXJuO1xuICAgIH0gd2hpbGUgKG5vZGUpO1xuXG4gICAgcmV0dXJuIGluZm87XG4gIH0gY2F0Y2ggKHgpIHtcbiAgICByZXR1cm4gJ1xcbkVycm9yIGdlbmVyYXRpbmcgc3RhY2s6ICcgKyB4Lm1lc3NhZ2UgKyAnXFxuJyArIHguc3RhY2s7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0V3JhcHBlZE5hbWUob3V0ZXJUeXBlLCBpbm5lclR5cGUsIHdyYXBwZXJOYW1lKSB7XG4gIHZhciBmdW5jdGlvbk5hbWUgPSBpbm5lclR5cGUuZGlzcGxheU5hbWUgfHwgaW5uZXJUeXBlLm5hbWUgfHwgJyc7XG4gIHJldHVybiBvdXRlclR5cGUuZGlzcGxheU5hbWUgfHwgKGZ1bmN0aW9uTmFtZSAhPT0gJycgPyB3cmFwcGVyTmFtZSArIFwiKFwiICsgZnVuY3Rpb25OYW1lICsgXCIpXCIgOiB3cmFwcGVyTmFtZSk7XG59XG5cbmZ1bmN0aW9uIGdldENvbnRleHROYW1lKHR5cGUpIHtcbiAgcmV0dXJuIHR5cGUuZGlzcGxheU5hbWUgfHwgJ0NvbnRleHQnO1xufVxuXG5mdW5jdGlvbiBnZXRDb21wb25lbnROYW1lKHR5cGUpIHtcbiAgaWYgKHR5cGUgPT0gbnVsbCkge1xuICAgIC8vIEhvc3Qgcm9vdCwgdGV4dCBub2RlIG9yIGp1c3QgaW52YWxpZCB0eXBlLlxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAge1xuICAgIGlmICh0eXBlb2YgdHlwZS50YWcgPT09ICdudW1iZXInKSB7XG4gICAgICBlcnJvcignUmVjZWl2ZWQgYW4gdW5leHBlY3RlZCBvYmplY3QgaW4gZ2V0Q29tcG9uZW50TmFtZSgpLiAnICsgJ1RoaXMgaXMgbGlrZWx5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nKTtcbiAgICB9XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gdHlwZS5kaXNwbGF5TmFtZSB8fCB0eXBlLm5hbWUgfHwgbnVsbDtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gdHlwZTtcbiAgfVxuXG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgUkVBQ1RfRlJBR01FTlRfVFlQRTpcbiAgICAgIHJldHVybiAnRnJhZ21lbnQnO1xuXG4gICAgY2FzZSBSRUFDVF9QT1JUQUxfVFlQRTpcbiAgICAgIHJldHVybiAnUG9ydGFsJztcblxuICAgIGNhc2UgUkVBQ1RfUFJPRklMRVJfVFlQRTpcbiAgICAgIHJldHVybiAnUHJvZmlsZXInO1xuXG4gICAgY2FzZSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFOlxuICAgICAgcmV0dXJuICdTdHJpY3RNb2RlJztcblxuICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfVFlQRTpcbiAgICAgIHJldHVybiAnU3VzcGVuc2UnO1xuXG4gICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEU6XG4gICAgICByZXR1cm4gJ1N1c3BlbnNlTGlzdCc7XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdvYmplY3QnKSB7XG4gICAgc3dpdGNoICh0eXBlLiQkdHlwZW9mKSB7XG4gICAgICBjYXNlIFJFQUNUX0NPTlRFWFRfVFlQRTpcbiAgICAgICAgdmFyIGNvbnRleHQgPSB0eXBlO1xuICAgICAgICByZXR1cm4gZ2V0Q29udGV4dE5hbWUoY29udGV4dCkgKyAnLkNvbnN1bWVyJztcblxuICAgICAgY2FzZSBSRUFDVF9QUk9WSURFUl9UWVBFOlxuICAgICAgICB2YXIgcHJvdmlkZXIgPSB0eXBlO1xuICAgICAgICByZXR1cm4gZ2V0Q29udGV4dE5hbWUocHJvdmlkZXIuX2NvbnRleHQpICsgJy5Qcm92aWRlcic7XG5cbiAgICAgIGNhc2UgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTpcbiAgICAgICAgcmV0dXJuIGdldFdyYXBwZWROYW1lKHR5cGUsIHR5cGUucmVuZGVyLCAnRm9yd2FyZFJlZicpO1xuXG4gICAgICBjYXNlIFJFQUNUX01FTU9fVFlQRTpcbiAgICAgICAgcmV0dXJuIGdldENvbXBvbmVudE5hbWUodHlwZS50eXBlKTtcblxuICAgICAgY2FzZSBSRUFDVF9CTE9DS19UWVBFOlxuICAgICAgICByZXR1cm4gZ2V0Q29tcG9uZW50TmFtZSh0eXBlLl9yZW5kZXIpO1xuXG4gICAgICBjYXNlIFJFQUNUX0xBWllfVFlQRTpcbiAgICAgICAge1xuICAgICAgICAgIHZhciBsYXp5Q29tcG9uZW50ID0gdHlwZTtcbiAgICAgICAgICB2YXIgcGF5bG9hZCA9IGxhenlDb21wb25lbnQuX3BheWxvYWQ7XG4gICAgICAgICAgdmFyIGluaXQgPSBsYXp5Q29tcG9uZW50Ll9pbml0O1xuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBnZXRDb21wb25lbnROYW1lKGluaXQocGF5bG9hZCkpO1xuICAgICAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG52YXIgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0RGVidWdDdXJyZW50RnJhbWU7XG52YXIgY3VycmVudCA9IG51bGw7XG52YXIgaXNSZW5kZXJpbmcgPSBmYWxzZTtcbmZ1bmN0aW9uIGdldEN1cnJlbnRGaWJlck93bmVyTmFtZUluRGV2T3JOdWxsKCkge1xuICB7XG4gICAgaWYgKGN1cnJlbnQgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHZhciBvd25lciA9IGN1cnJlbnQuX2RlYnVnT3duZXI7XG5cbiAgICBpZiAob3duZXIgIT09IG51bGwgJiYgdHlwZW9mIG93bmVyICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuIGdldENvbXBvbmVudE5hbWUob3duZXIudHlwZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIGdldEN1cnJlbnRGaWJlclN0YWNrSW5EZXYoKSB7XG4gIHtcbiAgICBpZiAoY3VycmVudCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH0gLy8gU2FmZSBiZWNhdXNlIGlmIGN1cnJlbnQgZmliZXIgZXhpc3RzLCB3ZSBhcmUgcmVjb25jaWxpbmcsXG4gICAgLy8gYW5kIGl0IGlzIGd1YXJhbnRlZWQgdG8gYmUgdGhlIHdvcmstaW4tcHJvZ3Jlc3MgdmVyc2lvbi5cblxuXG4gICAgcmV0dXJuIGdldFN0YWNrQnlGaWJlckluRGV2QW5kUHJvZChjdXJyZW50KTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZXNldEN1cnJlbnRGaWJlcigpIHtcbiAge1xuICAgIFJlYWN0RGVidWdDdXJyZW50RnJhbWUuZ2V0Q3VycmVudFN0YWNrID0gbnVsbDtcbiAgICBjdXJyZW50ID0gbnVsbDtcbiAgICBpc1JlbmRlcmluZyA9IGZhbHNlO1xuICB9XG59XG5mdW5jdGlvbiBzZXRDdXJyZW50RmliZXIoZmliZXIpIHtcbiAge1xuICAgIFJlYWN0RGVidWdDdXJyZW50RnJhbWUuZ2V0Q3VycmVudFN0YWNrID0gZ2V0Q3VycmVudEZpYmVyU3RhY2tJbkRldjtcbiAgICBjdXJyZW50ID0gZmliZXI7XG4gICAgaXNSZW5kZXJpbmcgPSBmYWxzZTtcbiAgfVxufVxuZnVuY3Rpb24gc2V0SXNSZW5kZXJpbmcocmVuZGVyaW5nKSB7XG4gIHtcbiAgICBpc1JlbmRlcmluZyA9IHJlbmRlcmluZztcbiAgfVxufVxuZnVuY3Rpb24gZ2V0SXNSZW5kZXJpbmcoKSB7XG4gIHtcbiAgICByZXR1cm4gaXNSZW5kZXJpbmc7XG4gIH1cbn1cblxuLy8gRmxvdyBkb2VzIG5vdCBhbGxvdyBzdHJpbmcgY29uY2F0ZW5hdGlvbiBvZiBtb3N0IG5vbi1zdHJpbmcgdHlwZXMuIFRvIHdvcmtcbi8vIGFyb3VuZCB0aGlzIGxpbWl0YXRpb24sIHdlIHVzZSBhbiBvcGFxdWUgdHlwZSB0aGF0IGNhbiBvbmx5IGJlIG9idGFpbmVkIGJ5XG4vLyBwYXNzaW5nIHRoZSB2YWx1ZSB0aHJvdWdoIGdldFRvU3RyaW5nVmFsdWUgZmlyc3QuXG5mdW5jdGlvbiB0b1N0cmluZyh2YWx1ZSkge1xuICByZXR1cm4gJycgKyB2YWx1ZTtcbn1cbmZ1bmN0aW9uIGdldFRvU3RyaW5nVmFsdWUodmFsdWUpIHtcbiAgc3dpdGNoICh0eXBlb2YgdmFsdWUpIHtcbiAgICBjYXNlICdib29sZWFuJzpcbiAgICBjYXNlICdudW1iZXInOlxuICAgIGNhc2UgJ29iamVjdCc6XG4gICAgY2FzZSAnc3RyaW5nJzpcbiAgICBjYXNlICd1bmRlZmluZWQnOlxuICAgICAgcmV0dXJuIHZhbHVlO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIC8vIGZ1bmN0aW9uLCBzeW1ib2wgYXJlIGFzc2lnbmVkIGFzIGVtcHR5IHN0cmluZ3NcbiAgICAgIHJldHVybiAnJztcbiAgfVxufVxuXG52YXIgaGFzUmVhZE9ubHlWYWx1ZSA9IHtcbiAgYnV0dG9uOiB0cnVlLFxuICBjaGVja2JveDogdHJ1ZSxcbiAgaW1hZ2U6IHRydWUsXG4gIGhpZGRlbjogdHJ1ZSxcbiAgcmFkaW86IHRydWUsXG4gIHJlc2V0OiB0cnVlLFxuICBzdWJtaXQ6IHRydWVcbn07XG5mdW5jdGlvbiBjaGVja0NvbnRyb2xsZWRWYWx1ZVByb3BzKHRhZ05hbWUsIHByb3BzKSB7XG4gIHtcbiAgICBpZiAoIShoYXNSZWFkT25seVZhbHVlW3Byb3BzLnR5cGVdIHx8IHByb3BzLm9uQ2hhbmdlIHx8IHByb3BzLm9uSW5wdXQgfHwgcHJvcHMucmVhZE9ubHkgfHwgcHJvcHMuZGlzYWJsZWQgfHwgcHJvcHMudmFsdWUgPT0gbnVsbCkpIHtcbiAgICAgIGVycm9yKCdZb3UgcHJvdmlkZWQgYSBgdmFsdWVgIHByb3AgdG8gYSBmb3JtIGZpZWxkIHdpdGhvdXQgYW4gJyArICdgb25DaGFuZ2VgIGhhbmRsZXIuIFRoaXMgd2lsbCByZW5kZXIgYSByZWFkLW9ubHkgZmllbGQuIElmICcgKyAndGhlIGZpZWxkIHNob3VsZCBiZSBtdXRhYmxlIHVzZSBgZGVmYXVsdFZhbHVlYC4gT3RoZXJ3aXNlLCAnICsgJ3NldCBlaXRoZXIgYG9uQ2hhbmdlYCBvciBgcmVhZE9ubHlgLicpO1xuICAgIH1cblxuICAgIGlmICghKHByb3BzLm9uQ2hhbmdlIHx8IHByb3BzLnJlYWRPbmx5IHx8IHByb3BzLmRpc2FibGVkIHx8IHByb3BzLmNoZWNrZWQgPT0gbnVsbCkpIHtcbiAgICAgIGVycm9yKCdZb3UgcHJvdmlkZWQgYSBgY2hlY2tlZGAgcHJvcCB0byBhIGZvcm0gZmllbGQgd2l0aG91dCBhbiAnICsgJ2BvbkNoYW5nZWAgaGFuZGxlci4gVGhpcyB3aWxsIHJlbmRlciBhIHJlYWQtb25seSBmaWVsZC4gSWYgJyArICd0aGUgZmllbGQgc2hvdWxkIGJlIG11dGFibGUgdXNlIGBkZWZhdWx0Q2hlY2tlZGAuIE90aGVyd2lzZSwgJyArICdzZXQgZWl0aGVyIGBvbkNoYW5nZWAgb3IgYHJlYWRPbmx5YC4nKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNDaGVja2FibGUoZWxlbSkge1xuICB2YXIgdHlwZSA9IGVsZW0udHlwZTtcbiAgdmFyIG5vZGVOYW1lID0gZWxlbS5ub2RlTmFtZTtcbiAgcmV0dXJuIG5vZGVOYW1lICYmIG5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdpbnB1dCcgJiYgKHR5cGUgPT09ICdjaGVja2JveCcgfHwgdHlwZSA9PT0gJ3JhZGlvJyk7XG59XG5cbmZ1bmN0aW9uIGdldFRyYWNrZXIobm9kZSkge1xuICByZXR1cm4gbm9kZS5fdmFsdWVUcmFja2VyO1xufVxuXG5mdW5jdGlvbiBkZXRhY2hUcmFja2VyKG5vZGUpIHtcbiAgbm9kZS5fdmFsdWVUcmFja2VyID0gbnVsbDtcbn1cblxuZnVuY3Rpb24gZ2V0VmFsdWVGcm9tTm9kZShub2RlKSB7XG4gIHZhciB2YWx1ZSA9ICcnO1xuXG4gIGlmICghbm9kZSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIGlmIChpc0NoZWNrYWJsZShub2RlKSkge1xuICAgIHZhbHVlID0gbm9kZS5jaGVja2VkID8gJ3RydWUnIDogJ2ZhbHNlJztcbiAgfSBlbHNlIHtcbiAgICB2YWx1ZSA9IG5vZGUudmFsdWU7XG4gIH1cblxuICByZXR1cm4gdmFsdWU7XG59XG5cbmZ1bmN0aW9uIHRyYWNrVmFsdWVPbk5vZGUobm9kZSkge1xuICB2YXIgdmFsdWVGaWVsZCA9IGlzQ2hlY2thYmxlKG5vZGUpID8gJ2NoZWNrZWQnIDogJ3ZhbHVlJztcbiAgdmFyIGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG5vZGUuY29uc3RydWN0b3IucHJvdG90eXBlLCB2YWx1ZUZpZWxkKTtcbiAgdmFyIGN1cnJlbnRWYWx1ZSA9ICcnICsgbm9kZVt2YWx1ZUZpZWxkXTsgLy8gaWYgc29tZW9uZSBoYXMgYWxyZWFkeSBkZWZpbmVkIGEgdmFsdWUgb3IgU2FmYXJpLCB0aGVuIGJhaWxcbiAgLy8gYW5kIGRvbid0IHRyYWNrIHZhbHVlIHdpbGwgY2F1c2Ugb3ZlciByZXBvcnRpbmcgb2YgY2hhbmdlcyxcbiAgLy8gYnV0IGl0J3MgYmV0dGVyIHRoZW4gYSBoYXJkIGZhaWx1cmVcbiAgLy8gKG5lZWRlZCBmb3IgY2VydGFpbiB0ZXN0cyB0aGF0IHNweU9uIGlucHV0IHZhbHVlcyBhbmQgU2FmYXJpKVxuXG4gIGlmIChub2RlLmhhc093blByb3BlcnR5KHZhbHVlRmllbGQpIHx8IHR5cGVvZiBkZXNjcmlwdG9yID09PSAndW5kZWZpbmVkJyB8fCB0eXBlb2YgZGVzY3JpcHRvci5nZXQgIT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIGRlc2NyaXB0b3Iuc2V0ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdmFyIGdldCA9IGRlc2NyaXB0b3IuZ2V0LFxuICAgICAgc2V0ID0gZGVzY3JpcHRvci5zZXQ7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShub2RlLCB2YWx1ZUZpZWxkLCB7XG4gICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGdldC5jYWxsKHRoaXMpO1xuICAgIH0sXG4gICAgc2V0OiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgIGN1cnJlbnRWYWx1ZSA9ICcnICsgdmFsdWU7XG4gICAgICBzZXQuY2FsbCh0aGlzLCB2YWx1ZSk7XG4gICAgfVxuICB9KTsgLy8gV2UgY291bGQndmUgcGFzc2VkIHRoaXMgdGhlIGZpcnN0IHRpbWVcbiAgLy8gYnV0IGl0IHRyaWdnZXJzIGEgYnVnIGluIElFMTEgYW5kIEVkZ2UgMTQvMTUuXG4gIC8vIENhbGxpbmcgZGVmaW5lUHJvcGVydHkoKSBhZ2FpbiBzaG91bGQgYmUgZXF1aXZhbGVudC5cbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xMTc2OFxuXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShub2RlLCB2YWx1ZUZpZWxkLCB7XG4gICAgZW51bWVyYWJsZTogZGVzY3JpcHRvci5lbnVtZXJhYmxlXG4gIH0pO1xuICB2YXIgdHJhY2tlciA9IHtcbiAgICBnZXRWYWx1ZTogZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGN1cnJlbnRWYWx1ZTtcbiAgICB9LFxuICAgIHNldFZhbHVlOiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgIGN1cnJlbnRWYWx1ZSA9ICcnICsgdmFsdWU7XG4gICAgfSxcbiAgICBzdG9wVHJhY2tpbmc6IGZ1bmN0aW9uICgpIHtcbiAgICAgIGRldGFjaFRyYWNrZXIobm9kZSk7XG4gICAgICBkZWxldGUgbm9kZVt2YWx1ZUZpZWxkXTtcbiAgICB9XG4gIH07XG4gIHJldHVybiB0cmFja2VyO1xufVxuXG5mdW5jdGlvbiB0cmFjayhub2RlKSB7XG4gIGlmIChnZXRUcmFja2VyKG5vZGUpKSB7XG4gICAgcmV0dXJuO1xuICB9IC8vIFRPRE86IE9uY2UgaXQncyBqdXN0IEZpYmVyIHdlIGNhbiBtb3ZlIHRoaXMgdG8gbm9kZS5fd3JhcHBlclN0YXRlXG5cblxuICBub2RlLl92YWx1ZVRyYWNrZXIgPSB0cmFja1ZhbHVlT25Ob2RlKG5vZGUpO1xufVxuZnVuY3Rpb24gdXBkYXRlVmFsdWVJZkNoYW5nZWQobm9kZSkge1xuICBpZiAoIW5vZGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB2YXIgdHJhY2tlciA9IGdldFRyYWNrZXIobm9kZSk7IC8vIGlmIHRoZXJlIGlzIG5vIHRyYWNrZXIgYXQgdGhpcyBwb2ludCBpdCdzIHVubGlrZWx5XG4gIC8vIHRoYXQgdHJ5aW5nIGFnYWluIHdpbGwgc3VjY2VlZFxuXG4gIGlmICghdHJhY2tlcikge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgdmFyIGxhc3RWYWx1ZSA9IHRyYWNrZXIuZ2V0VmFsdWUoKTtcbiAgdmFyIG5leHRWYWx1ZSA9IGdldFZhbHVlRnJvbU5vZGUobm9kZSk7XG5cbiAgaWYgKG5leHRWYWx1ZSAhPT0gbGFzdFZhbHVlKSB7XG4gICAgdHJhY2tlci5zZXRWYWx1ZShuZXh0VmFsdWUpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBnZXRBY3RpdmVFbGVtZW50KGRvYykge1xuICBkb2MgPSBkb2MgfHwgKHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcgPyBkb2N1bWVudCA6IHVuZGVmaW5lZCk7XG5cbiAgaWYgKHR5cGVvZiBkb2MgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICB0cnkge1xuICAgIHJldHVybiBkb2MuYWN0aXZlRWxlbWVudCB8fCBkb2MuYm9keTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBkb2MuYm9keTtcbiAgfVxufVxuXG52YXIgZGlkV2FyblZhbHVlRGVmYXVsdFZhbHVlID0gZmFsc2U7XG52YXIgZGlkV2FybkNoZWNrZWREZWZhdWx0Q2hlY2tlZCA9IGZhbHNlO1xudmFyIGRpZFdhcm5Db250cm9sbGVkVG9VbmNvbnRyb2xsZWQgPSBmYWxzZTtcbnZhciBkaWRXYXJuVW5jb250cm9sbGVkVG9Db250cm9sbGVkID0gZmFsc2U7XG5cbmZ1bmN0aW9uIGlzQ29udHJvbGxlZChwcm9wcykge1xuICB2YXIgdXNlc0NoZWNrZWQgPSBwcm9wcy50eXBlID09PSAnY2hlY2tib3gnIHx8IHByb3BzLnR5cGUgPT09ICdyYWRpbyc7XG4gIHJldHVybiB1c2VzQ2hlY2tlZCA/IHByb3BzLmNoZWNrZWQgIT0gbnVsbCA6IHByb3BzLnZhbHVlICE9IG51bGw7XG59XG4vKipcbiAqIEltcGxlbWVudHMgYW4gPGlucHV0PiBob3N0IGNvbXBvbmVudCB0aGF0IGFsbG93cyBzZXR0aW5nIHRoZXNlIG9wdGlvbmFsXG4gKiBwcm9wczogYGNoZWNrZWRgLCBgdmFsdWVgLCBgZGVmYXVsdENoZWNrZWRgLCBhbmQgYGRlZmF1bHRWYWx1ZWAuXG4gKlxuICogSWYgYGNoZWNrZWRgIG9yIGB2YWx1ZWAgYXJlIG5vdCBzdXBwbGllZCAob3IgbnVsbC91bmRlZmluZWQpLCB1c2VyIGFjdGlvbnNcbiAqIHRoYXQgYWZmZWN0IHRoZSBjaGVja2VkIHN0YXRlIG9yIHZhbHVlIHdpbGwgdHJpZ2dlciB1cGRhdGVzIHRvIHRoZSBlbGVtZW50LlxuICpcbiAqIElmIHRoZXkgYXJlIHN1cHBsaWVkIChhbmQgbm90IG51bGwvdW5kZWZpbmVkKSwgdGhlIHJlbmRlcmVkIGVsZW1lbnQgd2lsbCBub3RcbiAqIHRyaWdnZXIgdXBkYXRlcyB0byB0aGUgZWxlbWVudC4gSW5zdGVhZCwgdGhlIHByb3BzIG11c3QgY2hhbmdlIGluIG9yZGVyIGZvclxuICogdGhlIHJlbmRlcmVkIGVsZW1lbnQgdG8gYmUgdXBkYXRlZC5cbiAqXG4gKiBUaGUgcmVuZGVyZWQgZWxlbWVudCB3aWxsIGJlIGluaXRpYWxpemVkIGFzIHVuY2hlY2tlZCAob3IgYGRlZmF1bHRDaGVja2VkYClcbiAqIHdpdGggYW4gZW1wdHkgdmFsdWUgKG9yIGBkZWZhdWx0VmFsdWVgKS5cbiAqXG4gKiBTZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAxMi9XRC1odG1sNS0yMDEyMTAyNS90aGUtaW5wdXQtZWxlbWVudC5odG1sXG4gKi9cblxuXG5mdW5jdGlvbiBnZXRIb3N0UHJvcHMoZWxlbWVudCwgcHJvcHMpIHtcbiAgdmFyIG5vZGUgPSBlbGVtZW50O1xuICB2YXIgY2hlY2tlZCA9IHByb3BzLmNoZWNrZWQ7XG5cbiAgdmFyIGhvc3RQcm9wcyA9IF9hc3NpZ24oe30sIHByb3BzLCB7XG4gICAgZGVmYXVsdENoZWNrZWQ6IHVuZGVmaW5lZCxcbiAgICBkZWZhdWx0VmFsdWU6IHVuZGVmaW5lZCxcbiAgICB2YWx1ZTogdW5kZWZpbmVkLFxuICAgIGNoZWNrZWQ6IGNoZWNrZWQgIT0gbnVsbCA/IGNoZWNrZWQgOiBub2RlLl93cmFwcGVyU3RhdGUuaW5pdGlhbENoZWNrZWRcbiAgfSk7XG5cbiAgcmV0dXJuIGhvc3RQcm9wcztcbn1cbmZ1bmN0aW9uIGluaXRXcmFwcGVyU3RhdGUoZWxlbWVudCwgcHJvcHMpIHtcbiAge1xuICAgIGNoZWNrQ29udHJvbGxlZFZhbHVlUHJvcHMoJ2lucHV0JywgcHJvcHMpO1xuXG4gICAgaWYgKHByb3BzLmNoZWNrZWQgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy5kZWZhdWx0Q2hlY2tlZCAhPT0gdW5kZWZpbmVkICYmICFkaWRXYXJuQ2hlY2tlZERlZmF1bHRDaGVja2VkKSB7XG4gICAgICBlcnJvcignJXMgY29udGFpbnMgYW4gaW5wdXQgb2YgdHlwZSAlcyB3aXRoIGJvdGggY2hlY2tlZCBhbmQgZGVmYXVsdENoZWNrZWQgcHJvcHMuICcgKyAnSW5wdXQgZWxlbWVudHMgbXVzdCBiZSBlaXRoZXIgY29udHJvbGxlZCBvciB1bmNvbnRyb2xsZWQgJyArICcoc3BlY2lmeSBlaXRoZXIgdGhlIGNoZWNrZWQgcHJvcCwgb3IgdGhlIGRlZmF1bHRDaGVja2VkIHByb3AsIGJ1dCBub3QgJyArICdib3RoKS4gRGVjaWRlIGJldHdlZW4gdXNpbmcgYSBjb250cm9sbGVkIG9yIHVuY29udHJvbGxlZCBpbnB1dCAnICsgJ2VsZW1lbnQgYW5kIHJlbW92ZSBvbmUgb2YgdGhlc2UgcHJvcHMuIE1vcmUgaW5mbzogJyArICdodHRwczovL3JlYWN0anMub3JnL2xpbmsvY29udHJvbGxlZC1jb21wb25lbnRzJywgZ2V0Q3VycmVudEZpYmVyT3duZXJOYW1lSW5EZXZPck51bGwoKSB8fCAnQSBjb21wb25lbnQnLCBwcm9wcy50eXBlKTtcblxuICAgICAgZGlkV2FybkNoZWNrZWREZWZhdWx0Q2hlY2tlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLnZhbHVlICE9PSB1bmRlZmluZWQgJiYgcHJvcHMuZGVmYXVsdFZhbHVlICE9PSB1bmRlZmluZWQgJiYgIWRpZFdhcm5WYWx1ZURlZmF1bHRWYWx1ZSkge1xuICAgICAgZXJyb3IoJyVzIGNvbnRhaW5zIGFuIGlucHV0IG9mIHR5cGUgJXMgd2l0aCBib3RoIHZhbHVlIGFuZCBkZWZhdWx0VmFsdWUgcHJvcHMuICcgKyAnSW5wdXQgZWxlbWVudHMgbXVzdCBiZSBlaXRoZXIgY29udHJvbGxlZCBvciB1bmNvbnRyb2xsZWQgJyArICcoc3BlY2lmeSBlaXRoZXIgdGhlIHZhbHVlIHByb3AsIG9yIHRoZSBkZWZhdWx0VmFsdWUgcHJvcCwgYnV0IG5vdCAnICsgJ2JvdGgpLiBEZWNpZGUgYmV0d2VlbiB1c2luZyBhIGNvbnRyb2xsZWQgb3IgdW5jb250cm9sbGVkIGlucHV0ICcgKyAnZWxlbWVudCBhbmQgcmVtb3ZlIG9uZSBvZiB0aGVzZSBwcm9wcy4gTW9yZSBpbmZvOiAnICsgJ2h0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9jb250cm9sbGVkLWNvbXBvbmVudHMnLCBnZXRDdXJyZW50RmliZXJPd25lck5hbWVJbkRldk9yTnVsbCgpIHx8ICdBIGNvbXBvbmVudCcsIHByb3BzLnR5cGUpO1xuXG4gICAgICBkaWRXYXJuVmFsdWVEZWZhdWx0VmFsdWUgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHZhciBub2RlID0gZWxlbWVudDtcbiAgdmFyIGRlZmF1bHRWYWx1ZSA9IHByb3BzLmRlZmF1bHRWYWx1ZSA9PSBudWxsID8gJycgOiBwcm9wcy5kZWZhdWx0VmFsdWU7XG4gIG5vZGUuX3dyYXBwZXJTdGF0ZSA9IHtcbiAgICBpbml0aWFsQ2hlY2tlZDogcHJvcHMuY2hlY2tlZCAhPSBudWxsID8gcHJvcHMuY2hlY2tlZCA6IHByb3BzLmRlZmF1bHRDaGVja2VkLFxuICAgIGluaXRpYWxWYWx1ZTogZ2V0VG9TdHJpbmdWYWx1ZShwcm9wcy52YWx1ZSAhPSBudWxsID8gcHJvcHMudmFsdWUgOiBkZWZhdWx0VmFsdWUpLFxuICAgIGNvbnRyb2xsZWQ6IGlzQ29udHJvbGxlZChwcm9wcylcbiAgfTtcbn1cbmZ1bmN0aW9uIHVwZGF0ZUNoZWNrZWQoZWxlbWVudCwgcHJvcHMpIHtcbiAgdmFyIG5vZGUgPSBlbGVtZW50O1xuICB2YXIgY2hlY2tlZCA9IHByb3BzLmNoZWNrZWQ7XG5cbiAgaWYgKGNoZWNrZWQgIT0gbnVsbCkge1xuICAgIHNldFZhbHVlRm9yUHJvcGVydHkobm9kZSwgJ2NoZWNrZWQnLCBjaGVja2VkLCBmYWxzZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIHVwZGF0ZVdyYXBwZXIoZWxlbWVudCwgcHJvcHMpIHtcbiAgdmFyIG5vZGUgPSBlbGVtZW50O1xuXG4gIHtcbiAgICB2YXIgY29udHJvbGxlZCA9IGlzQ29udHJvbGxlZChwcm9wcyk7XG5cbiAgICBpZiAoIW5vZGUuX3dyYXBwZXJTdGF0ZS5jb250cm9sbGVkICYmIGNvbnRyb2xsZWQgJiYgIWRpZFdhcm5VbmNvbnRyb2xsZWRUb0NvbnRyb2xsZWQpIHtcbiAgICAgIGVycm9yKCdBIGNvbXBvbmVudCBpcyBjaGFuZ2luZyBhbiB1bmNvbnRyb2xsZWQgaW5wdXQgdG8gYmUgY29udHJvbGxlZC4gJyArICdUaGlzIGlzIGxpa2VseSBjYXVzZWQgYnkgdGhlIHZhbHVlIGNoYW5naW5nIGZyb20gdW5kZWZpbmVkIHRvICcgKyAnYSBkZWZpbmVkIHZhbHVlLCB3aGljaCBzaG91bGQgbm90IGhhcHBlbi4gJyArICdEZWNpZGUgYmV0d2VlbiB1c2luZyBhIGNvbnRyb2xsZWQgb3IgdW5jb250cm9sbGVkIGlucHV0ICcgKyAnZWxlbWVudCBmb3IgdGhlIGxpZmV0aW1lIG9mIHRoZSBjb21wb25lbnQuIE1vcmUgaW5mbzogaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL2NvbnRyb2xsZWQtY29tcG9uZW50cycpO1xuXG4gICAgICBkaWRXYXJuVW5jb250cm9sbGVkVG9Db250cm9sbGVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAobm9kZS5fd3JhcHBlclN0YXRlLmNvbnRyb2xsZWQgJiYgIWNvbnRyb2xsZWQgJiYgIWRpZFdhcm5Db250cm9sbGVkVG9VbmNvbnRyb2xsZWQpIHtcbiAgICAgIGVycm9yKCdBIGNvbXBvbmVudCBpcyBjaGFuZ2luZyBhIGNvbnRyb2xsZWQgaW5wdXQgdG8gYmUgdW5jb250cm9sbGVkLiAnICsgJ1RoaXMgaXMgbGlrZWx5IGNhdXNlZCBieSB0aGUgdmFsdWUgY2hhbmdpbmcgZnJvbSBhIGRlZmluZWQgdG8gJyArICd1bmRlZmluZWQsIHdoaWNoIHNob3VsZCBub3QgaGFwcGVuLiAnICsgJ0RlY2lkZSBiZXR3ZWVuIHVzaW5nIGEgY29udHJvbGxlZCBvciB1bmNvbnRyb2xsZWQgaW5wdXQgJyArICdlbGVtZW50IGZvciB0aGUgbGlmZXRpbWUgb2YgdGhlIGNvbXBvbmVudC4gTW9yZSBpbmZvOiBodHRwczovL3JlYWN0anMub3JnL2xpbmsvY29udHJvbGxlZC1jb21wb25lbnRzJyk7XG5cbiAgICAgIGRpZFdhcm5Db250cm9sbGVkVG9VbmNvbnRyb2xsZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZUNoZWNrZWQoZWxlbWVudCwgcHJvcHMpO1xuICB2YXIgdmFsdWUgPSBnZXRUb1N0cmluZ1ZhbHVlKHByb3BzLnZhbHVlKTtcbiAgdmFyIHR5cGUgPSBwcm9wcy50eXBlO1xuXG4gIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgaWYgKHR5cGUgPT09ICdudW1iZXInKSB7XG4gICAgICBpZiAodmFsdWUgPT09IDAgJiYgbm9kZS52YWx1ZSA9PT0gJycgfHwgLy8gV2UgZXhwbGljaXRseSB3YW50IHRvIGNvZXJjZSB0byBudW1iZXIgaGVyZSBpZiBwb3NzaWJsZS5cbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgICAgbm9kZS52YWx1ZSAhPSB2YWx1ZSkge1xuICAgICAgICBub2RlLnZhbHVlID0gdG9TdHJpbmcodmFsdWUpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAobm9kZS52YWx1ZSAhPT0gdG9TdHJpbmcodmFsdWUpKSB7XG4gICAgICBub2RlLnZhbHVlID0gdG9TdHJpbmcodmFsdWUpO1xuICAgIH1cbiAgfSBlbHNlIGlmICh0eXBlID09PSAnc3VibWl0JyB8fCB0eXBlID09PSAncmVzZXQnKSB7XG4gICAgLy8gU3VibWl0L3Jlc2V0IGlucHV0cyBuZWVkIHRoZSBhdHRyaWJ1dGUgcmVtb3ZlZCBjb21wbGV0ZWx5IHRvIGF2b2lkXG4gICAgLy8gYmxhbmstdGV4dCBidXR0b25zLlxuICAgIG5vZGUucmVtb3ZlQXR0cmlidXRlKCd2YWx1ZScpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHtcbiAgICAvLyBXaGVuIHN5bmNpbmcgdGhlIHZhbHVlIGF0dHJpYnV0ZSwgdGhlIHZhbHVlIGNvbWVzIGZyb20gYSBjYXNjYWRlIG9mXG4gICAgLy8gcHJvcGVydGllczpcbiAgICAvLyAgMS4gVGhlIHZhbHVlIFJlYWN0IHByb3BlcnR5XG4gICAgLy8gIDIuIFRoZSBkZWZhdWx0VmFsdWUgUmVhY3QgcHJvcGVydHlcbiAgICAvLyAgMy4gT3RoZXJ3aXNlIHRoZXJlIHNob3VsZCBiZSBubyBjaGFuZ2VcbiAgICBpZiAocHJvcHMuaGFzT3duUHJvcGVydHkoJ3ZhbHVlJykpIHtcbiAgICAgIHNldERlZmF1bHRWYWx1ZShub2RlLCBwcm9wcy50eXBlLCB2YWx1ZSk7XG4gICAgfSBlbHNlIGlmIChwcm9wcy5oYXNPd25Qcm9wZXJ0eSgnZGVmYXVsdFZhbHVlJykpIHtcbiAgICAgIHNldERlZmF1bHRWYWx1ZShub2RlLCBwcm9wcy50eXBlLCBnZXRUb1N0cmluZ1ZhbHVlKHByb3BzLmRlZmF1bHRWYWx1ZSkpO1xuICAgIH1cbiAgfVxuXG4gIHtcbiAgICAvLyBXaGVuIHN5bmNpbmcgdGhlIGNoZWNrZWQgYXR0cmlidXRlLCBpdCBvbmx5IGNoYW5nZXMgd2hlbiBpdCBuZWVkc1xuICAgIC8vIHRvIGJlIHJlbW92ZWQsIHN1Y2ggYXMgdHJhbnNpdGlvbmluZyBmcm9tIGEgY2hlY2tib3ggaW50byBhIHRleHQgaW5wdXRcbiAgICBpZiAocHJvcHMuY2hlY2tlZCA9PSBudWxsICYmIHByb3BzLmRlZmF1bHRDaGVja2VkICE9IG51bGwpIHtcbiAgICAgIG5vZGUuZGVmYXVsdENoZWNrZWQgPSAhIXByb3BzLmRlZmF1bHRDaGVja2VkO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gcG9zdE1vdW50V3JhcHBlcihlbGVtZW50LCBwcm9wcywgaXNIeWRyYXRpbmcpIHtcbiAgdmFyIG5vZGUgPSBlbGVtZW50OyAvLyBEbyBub3QgYXNzaWduIHZhbHVlIGlmIGl0IGlzIGFscmVhZHkgc2V0LiBUaGlzIHByZXZlbnRzIHVzZXIgdGV4dCBpbnB1dFxuICAvLyBmcm9tIGJlaW5nIGxvc3QgZHVyaW5nIFNTUiBoeWRyYXRpb24uXG5cbiAgaWYgKHByb3BzLmhhc093blByb3BlcnR5KCd2YWx1ZScpIHx8IHByb3BzLmhhc093blByb3BlcnR5KCdkZWZhdWx0VmFsdWUnKSkge1xuICAgIHZhciB0eXBlID0gcHJvcHMudHlwZTtcbiAgICB2YXIgaXNCdXR0b24gPSB0eXBlID09PSAnc3VibWl0JyB8fCB0eXBlID09PSAncmVzZXQnOyAvLyBBdm9pZCBzZXR0aW5nIHZhbHVlIGF0dHJpYnV0ZSBvbiBzdWJtaXQvcmVzZXQgaW5wdXRzIGFzIGl0IG92ZXJyaWRlcyB0aGVcbiAgICAvLyBkZWZhdWx0IHZhbHVlIHByb3ZpZGVkIGJ5IHRoZSBicm93c2VyLiBTZWU6ICMxMjg3MlxuXG4gICAgaWYgKGlzQnV0dG9uICYmIChwcm9wcy52YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHByb3BzLnZhbHVlID09PSBudWxsKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciBpbml0aWFsVmFsdWUgPSB0b1N0cmluZyhub2RlLl93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlKTsgLy8gRG8gbm90IGFzc2lnbiB2YWx1ZSBpZiBpdCBpcyBhbHJlYWR5IHNldC4gVGhpcyBwcmV2ZW50cyB1c2VyIHRleHQgaW5wdXRcbiAgICAvLyBmcm9tIGJlaW5nIGxvc3QgZHVyaW5nIFNTUiBoeWRyYXRpb24uXG5cbiAgICBpZiAoIWlzSHlkcmF0aW5nKSB7XG4gICAgICB7XG4gICAgICAgIC8vIFdoZW4gc3luY2luZyB0aGUgdmFsdWUgYXR0cmlidXRlLCB0aGUgdmFsdWUgcHJvcGVydHkgc2hvdWxkIHVzZVxuICAgICAgICAvLyB0aGUgd3JhcHBlclN0YXRlLl9pbml0aWFsVmFsdWUgcHJvcGVydHkuIFRoaXMgdXNlczpcbiAgICAgICAgLy9cbiAgICAgICAgLy8gICAxLiBUaGUgdmFsdWUgUmVhY3QgcHJvcGVydHkgd2hlbiBwcmVzZW50XG4gICAgICAgIC8vICAgMi4gVGhlIGRlZmF1bHRWYWx1ZSBSZWFjdCBwcm9wZXJ0eSB3aGVuIHByZXNlbnRcbiAgICAgICAgLy8gICAzLiBBbiBlbXB0eSBzdHJpbmdcbiAgICAgICAgaWYgKGluaXRpYWxWYWx1ZSAhPT0gbm9kZS52YWx1ZSkge1xuICAgICAgICAgIG5vZGUudmFsdWUgPSBpbml0aWFsVmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB7XG4gICAgICAvLyBPdGhlcndpc2UsIHRoZSB2YWx1ZSBhdHRyaWJ1dGUgaXMgc3luY2hyb25pemVkIHRvIHRoZSBwcm9wZXJ0eSxcbiAgICAgIC8vIHNvIHdlIGFzc2lnbiBkZWZhdWx0VmFsdWUgdG8gdGhlIHNhbWUgdGhpbmcgYXMgdGhlIHZhbHVlIHByb3BlcnR5XG4gICAgICAvLyBhc3NpZ25tZW50IHN0ZXAgYWJvdmUuXG4gICAgICBub2RlLmRlZmF1bHRWYWx1ZSA9IGluaXRpYWxWYWx1ZTtcbiAgICB9XG4gIH0gLy8gTm9ybWFsbHksIHdlJ2QganVzdCBkbyBgbm9kZS5jaGVja2VkID0gbm9kZS5jaGVja2VkYCB1cG9uIGluaXRpYWwgbW91bnQsIGxlc3MgdGhpcyBidWdcbiAgLy8gdGhpcyBpcyBuZWVkZWQgdG8gd29yayBhcm91bmQgYSBjaHJvbWUgYnVnIHdoZXJlIHNldHRpbmcgZGVmYXVsdENoZWNrZWRcbiAgLy8gd2lsbCBzb21ldGltZXMgaW5mbHVlbmNlIHRoZSB2YWx1ZSBvZiBjaGVja2VkIChldmVuIGFmdGVyIGRldGFjaG1lbnQpLlxuICAvLyBSZWZlcmVuY2U6IGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTYwODQxNlxuICAvLyBXZSBuZWVkIHRvIHRlbXBvcmFyaWx5IHVuc2V0IG5hbWUgdG8gYXZvaWQgZGlzcnVwdGluZyByYWRpbyBidXR0b24gZ3JvdXBzLlxuXG5cbiAgdmFyIG5hbWUgPSBub2RlLm5hbWU7XG5cbiAgaWYgKG5hbWUgIT09ICcnKSB7XG4gICAgbm9kZS5uYW1lID0gJyc7XG4gIH1cblxuICB7XG4gICAgLy8gV2hlbiBzeW5jaW5nIHRoZSBjaGVja2VkIGF0dHJpYnV0ZSwgYm90aCB0aGUgY2hlY2tlZCBwcm9wZXJ0eSBhbmRcbiAgICAvLyBhdHRyaWJ1dGUgYXJlIGFzc2lnbmVkIGF0IHRoZSBzYW1lIHRpbWUgdXNpbmcgZGVmYXVsdENoZWNrZWQuIFRoaXMgdXNlczpcbiAgICAvL1xuICAgIC8vICAgMS4gVGhlIGNoZWNrZWQgUmVhY3QgcHJvcGVydHkgd2hlbiBwcmVzZW50XG4gICAgLy8gICAyLiBUaGUgZGVmYXVsdENoZWNrZWQgUmVhY3QgcHJvcGVydHkgd2hlbiBwcmVzZW50XG4gICAgLy8gICAzLiBPdGhlcndpc2UsIGZhbHNlXG4gICAgbm9kZS5kZWZhdWx0Q2hlY2tlZCA9ICFub2RlLmRlZmF1bHRDaGVja2VkO1xuICAgIG5vZGUuZGVmYXVsdENoZWNrZWQgPSAhIW5vZGUuX3dyYXBwZXJTdGF0ZS5pbml0aWFsQ2hlY2tlZDtcbiAgfVxuXG4gIGlmIChuYW1lICE9PSAnJykge1xuICAgIG5vZGUubmFtZSA9IG5hbWU7XG4gIH1cbn1cbmZ1bmN0aW9uIHJlc3RvcmVDb250cm9sbGVkU3RhdGUoZWxlbWVudCwgcHJvcHMpIHtcbiAgdmFyIG5vZGUgPSBlbGVtZW50O1xuICB1cGRhdGVXcmFwcGVyKG5vZGUsIHByb3BzKTtcbiAgdXBkYXRlTmFtZWRDb3VzaW5zKG5vZGUsIHByb3BzKTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlTmFtZWRDb3VzaW5zKHJvb3ROb2RlLCBwcm9wcykge1xuICB2YXIgbmFtZSA9IHByb3BzLm5hbWU7XG5cbiAgaWYgKHByb3BzLnR5cGUgPT09ICdyYWRpbycgJiYgbmFtZSAhPSBudWxsKSB7XG4gICAgdmFyIHF1ZXJ5Um9vdCA9IHJvb3ROb2RlO1xuXG4gICAgd2hpbGUgKHF1ZXJ5Um9vdC5wYXJlbnROb2RlKSB7XG4gICAgICBxdWVyeVJvb3QgPSBxdWVyeVJvb3QucGFyZW50Tm9kZTtcbiAgICB9IC8vIElmIGByb290Tm9kZS5mb3JtYCB3YXMgbm9uLW51bGwsIHRoZW4gd2UgY291bGQgdHJ5IGBmb3JtLmVsZW1lbnRzYCxcbiAgICAvLyBidXQgdGhhdCBzb21ldGltZXMgYmVoYXZlcyBzdHJhbmdlbHkgaW4gSUU4LiBXZSBjb3VsZCBhbHNvIHRyeSB1c2luZ1xuICAgIC8vIGBmb3JtLmdldEVsZW1lbnRzQnlOYW1lYCwgYnV0IHRoYXQgd2lsbCBvbmx5IHJldHVybiBkaXJlY3QgY2hpbGRyZW5cbiAgICAvLyBhbmQgd29uJ3QgaW5jbHVkZSBpbnB1dHMgdGhhdCB1c2UgdGhlIEhUTUw1IGBmb3JtPWAgYXR0cmlidXRlLiBTaW5jZVxuICAgIC8vIHRoZSBpbnB1dCBtaWdodCBub3QgZXZlbiBiZSBpbiBhIGZvcm0uIEl0IG1pZ2h0IG5vdCBldmVuIGJlIGluIHRoZVxuICAgIC8vIGRvY3VtZW50LiBMZXQncyBqdXN0IHVzZSB0aGUgbG9jYWwgYHF1ZXJ5U2VsZWN0b3JBbGxgIHRvIGVuc3VyZSB3ZSBkb24ndFxuICAgIC8vIG1pc3MgYW55dGhpbmcuXG5cblxuICAgIHZhciBncm91cCA9IHF1ZXJ5Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dFtuYW1lPScgKyBKU09OLnN0cmluZ2lmeSgnJyArIG5hbWUpICsgJ11bdHlwZT1cInJhZGlvXCJdJyk7XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGdyb3VwLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgb3RoZXJOb2RlID0gZ3JvdXBbaV07XG5cbiAgICAgIGlmIChvdGhlck5vZGUgPT09IHJvb3ROb2RlIHx8IG90aGVyTm9kZS5mb3JtICE9PSByb290Tm9kZS5mb3JtKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfSAvLyBUaGlzIHdpbGwgdGhyb3cgaWYgcmFkaW8gYnV0dG9ucyByZW5kZXJlZCBieSBkaWZmZXJlbnQgY29waWVzIG9mIFJlYWN0XG4gICAgICAvLyBhbmQgdGhlIHNhbWUgbmFtZSBhcmUgcmVuZGVyZWQgaW50byB0aGUgc2FtZSBmb3JtIChzYW1lIGFzICMxOTM5KS5cbiAgICAgIC8vIFRoYXQncyBwcm9iYWJseSBva2F5OyB3ZSBkb24ndCBzdXBwb3J0IGl0IGp1c3QgYXMgd2UgZG9uJ3Qgc3VwcG9ydFxuICAgICAgLy8gbWl4aW5nIFJlYWN0IHJhZGlvIGJ1dHRvbnMgd2l0aCBub24tUmVhY3Qgb25lcy5cblxuXG4gICAgICB2YXIgb3RoZXJQcm9wcyA9IGdldEZpYmVyQ3VycmVudFByb3BzRnJvbU5vZGUob3RoZXJOb2RlKTtcblxuICAgICAgaWYgKCFvdGhlclByb3BzKSB7XG4gICAgICAgIHtcbiAgICAgICAgICB0aHJvdyBFcnJvciggXCJSZWFjdERPTUlucHV0OiBNaXhpbmcgUmVhY3QgYW5kIG5vbi1SZWFjdCByYWRpbyBpbnB1dHMgd2l0aCB0aGUgc2FtZSBgbmFtZWAgaXMgbm90IHN1cHBvcnRlZC5cIiApO1xuICAgICAgICB9XG4gICAgICB9IC8vIFdlIG5lZWQgdXBkYXRlIHRoZSB0cmFja2VkIHZhbHVlIG9uIHRoZSBuYW1lZCBjb3VzaW4gc2luY2UgdGhlIHZhbHVlXG4gICAgICAvLyB3YXMgY2hhbmdlZCBidXQgdGhlIGlucHV0IHNhdyBubyBldmVudCBvciB2YWx1ZSBzZXRcblxuXG4gICAgICB1cGRhdGVWYWx1ZUlmQ2hhbmdlZChvdGhlck5vZGUpOyAvLyBJZiB0aGlzIGlzIGEgY29udHJvbGxlZCByYWRpbyBidXR0b24gZ3JvdXAsIGZvcmNpbmcgdGhlIGlucHV0IHRoYXRcbiAgICAgIC8vIHdhcyBwcmV2aW91c2x5IGNoZWNrZWQgdG8gdXBkYXRlIHdpbGwgY2F1c2UgaXQgdG8gYmUgY29tZSByZS1jaGVja2VkXG4gICAgICAvLyBhcyBhcHByb3ByaWF0ZS5cblxuICAgICAgdXBkYXRlV3JhcHBlcihvdGhlck5vZGUsIG90aGVyUHJvcHMpO1xuICAgIH1cbiAgfVxufSAvLyBJbiBDaHJvbWUsIGFzc2lnbmluZyBkZWZhdWx0VmFsdWUgdG8gY2VydGFpbiBpbnB1dCB0eXBlcyB0cmlnZ2VycyBpbnB1dCB2YWxpZGF0aW9uLlxuLy8gRm9yIG51bWJlciBpbnB1dHMsIHRoZSBkaXNwbGF5IHZhbHVlIGxvc2VzIHRyYWlsaW5nIGRlY2ltYWwgcG9pbnRzLiBGb3IgZW1haWwgaW5wdXRzLFxuLy8gQ2hyb21lIHJhaXNlcyBcIlRoZSBzcGVjaWZpZWQgdmFsdWUgPHg+IGlzIG5vdCBhIHZhbGlkIGVtYWlsIGFkZHJlc3NcIi5cbi8vXG4vLyBIZXJlIHdlIGNoZWNrIHRvIHNlZSBpZiB0aGUgZGVmYXVsdFZhbHVlIGhhcyBhY3R1YWxseSBjaGFuZ2VkLCBhdm9pZGluZyB0aGVzZSBwcm9ibGVtc1xuLy8gd2hlbiB0aGUgdXNlciBpcyBpbnB1dHRpbmcgdGV4dFxuLy9cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvNzI1M1xuXG5cbmZ1bmN0aW9uIHNldERlZmF1bHRWYWx1ZShub2RlLCB0eXBlLCB2YWx1ZSkge1xuICBpZiAoIC8vIEZvY3VzZWQgbnVtYmVyIGlucHV0cyBzeW5jaHJvbml6ZSBvbiBibHVyLiBTZWUgQ2hhbmdlRXZlbnRQbHVnaW4uanNcbiAgdHlwZSAhPT0gJ251bWJlcicgfHwgZ2V0QWN0aXZlRWxlbWVudChub2RlLm93bmVyRG9jdW1lbnQpICE9PSBub2RlKSB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIG5vZGUuZGVmYXVsdFZhbHVlID0gdG9TdHJpbmcobm9kZS5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZSk7XG4gICAgfSBlbHNlIGlmIChub2RlLmRlZmF1bHRWYWx1ZSAhPT0gdG9TdHJpbmcodmFsdWUpKSB7XG4gICAgICBub2RlLmRlZmF1bHRWYWx1ZSA9IHRvU3RyaW5nKHZhbHVlKTtcbiAgICB9XG4gIH1cbn1cblxudmFyIGRpZFdhcm5TZWxlY3RlZFNldE9uT3B0aW9uID0gZmFsc2U7XG52YXIgZGlkV2FybkludmFsaWRDaGlsZCA9IGZhbHNlO1xuXG5mdW5jdGlvbiBmbGF0dGVuQ2hpbGRyZW4oY2hpbGRyZW4pIHtcbiAgdmFyIGNvbnRlbnQgPSAnJzsgLy8gRmxhdHRlbiBjaGlsZHJlbi4gV2UnbGwgd2FybiBpZiB0aGV5IGFyZSBpbnZhbGlkXG4gIC8vIGR1cmluZyB2YWxpZGF0ZVByb3BzKCkgd2hpY2ggcnVucyBmb3IgaHlkcmF0aW9uIHRvby5cbiAgLy8gTm90ZSB0aGF0IHRoaXMgd291bGQgdGhyb3cgb24gbm9uLWVsZW1lbnQgb2JqZWN0cy5cbiAgLy8gRWxlbWVudHMgYXJlIHN0cmluZ2lmaWVkICh3aGljaCBpcyBub3JtYWxseSBpcnJlbGV2YW50XG4gIC8vIGJ1dCBtYXR0ZXJzIGZvciA8ZmJ0PikuXG5cbiAgUmVhY3QuQ2hpbGRyZW4uZm9yRWFjaChjaGlsZHJlbiwgZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgaWYgKGNoaWxkID09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb250ZW50ICs9IGNoaWxkOyAvLyBOb3RlOiB3ZSBkb24ndCB3YXJuIGFib3V0IGludmFsaWQgY2hpbGRyZW4gaGVyZS5cbiAgICAvLyBJbnN0ZWFkLCB0aGlzIGlzIGRvbmUgc2VwYXJhdGVseSBiZWxvdyBzbyB0aGF0XG4gICAgLy8gaXQgaGFwcGVucyBkdXJpbmcgdGhlIGh5ZHJhdGlvbiBjb2RlIHBhdGggdG9vLlxuICB9KTtcbiAgcmV0dXJuIGNvbnRlbnQ7XG59XG4vKipcbiAqIEltcGxlbWVudHMgYW4gPG9wdGlvbj4gaG9zdCBjb21wb25lbnQgdGhhdCB3YXJucyB3aGVuIGBzZWxlY3RlZGAgaXMgc2V0LlxuICovXG5cblxuZnVuY3Rpb24gdmFsaWRhdGVQcm9wcyhlbGVtZW50LCBwcm9wcykge1xuICB7XG4gICAgLy8gVGhpcyBtaXJyb3JzIHRoZSBjb2RlIHBhdGggYWJvdmUsIGJ1dCBydW5zIGZvciBoeWRyYXRpb24gdG9vLlxuICAgIC8vIFdhcm4gYWJvdXQgaW52YWxpZCBjaGlsZHJlbiBoZXJlIHNvIHRoYXQgY2xpZW50IGFuZCBoeWRyYXRpb24gYXJlIGNvbnNpc3RlbnQuXG4gICAgLy8gVE9ETzogdGhpcyBzZWVtcyBsaWtlIGl0IGNvdWxkIGNhdXNlIGEgREVWLW9ubHkgdGhyb3cgZm9yIGh5ZHJhdGlvblxuICAgIC8vIGlmIGNoaWxkcmVuIGNvbnRhaW5zIGEgbm9uLWVsZW1lbnQgb2JqZWN0LiBXZSBzaG91bGQgdHJ5IHRvIGF2b2lkIHRoYXQuXG4gICAgaWYgKHR5cGVvZiBwcm9wcy5jaGlsZHJlbiA9PT0gJ29iamVjdCcgJiYgcHJvcHMuY2hpbGRyZW4gIT09IG51bGwpIHtcbiAgICAgIFJlYWN0LkNoaWxkcmVuLmZvckVhY2gocHJvcHMuY2hpbGRyZW4sIGZ1bmN0aW9uIChjaGlsZCkge1xuICAgICAgICBpZiAoY2hpbGQgPT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgY2hpbGQgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBjaGlsZCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIGNoaWxkLnR5cGUgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFkaWRXYXJuSW52YWxpZENoaWxkKSB7XG4gICAgICAgICAgZGlkV2FybkludmFsaWRDaGlsZCA9IHRydWU7XG5cbiAgICAgICAgICBlcnJvcignT25seSBzdHJpbmdzIGFuZCBudW1iZXJzIGFyZSBzdXBwb3J0ZWQgYXMgPG9wdGlvbj4gY2hpbGRyZW4uJyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gLy8gVE9ETzogUmVtb3ZlIHN1cHBvcnQgZm9yIGBzZWxlY3RlZGAgaW4gPG9wdGlvbj4uXG5cblxuICAgIGlmIChwcm9wcy5zZWxlY3RlZCAhPSBudWxsICYmICFkaWRXYXJuU2VsZWN0ZWRTZXRPbk9wdGlvbikge1xuICAgICAgZXJyb3IoJ1VzZSB0aGUgYGRlZmF1bHRWYWx1ZWAgb3IgYHZhbHVlYCBwcm9wcyBvbiA8c2VsZWN0PiBpbnN0ZWFkIG9mICcgKyAnc2V0dGluZyBgc2VsZWN0ZWRgIG9uIDxvcHRpb24+LicpO1xuXG4gICAgICBkaWRXYXJuU2VsZWN0ZWRTZXRPbk9wdGlvbiA9IHRydWU7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBwb3N0TW91bnRXcmFwcGVyJDEoZWxlbWVudCwgcHJvcHMpIHtcbiAgLy8gdmFsdWU9XCJcIiBzaG91bGQgbWFrZSBhIHZhbHVlIGF0dHJpYnV0ZSAoIzYyMTkpXG4gIGlmIChwcm9wcy52YWx1ZSAhPSBudWxsKSB7XG4gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgdG9TdHJpbmcoZ2V0VG9TdHJpbmdWYWx1ZShwcm9wcy52YWx1ZSkpKTtcbiAgfVxufVxuZnVuY3Rpb24gZ2V0SG9zdFByb3BzJDEoZWxlbWVudCwgcHJvcHMpIHtcbiAgdmFyIGhvc3RQcm9wcyA9IF9hc3NpZ24oe1xuICAgIGNoaWxkcmVuOiB1bmRlZmluZWRcbiAgfSwgcHJvcHMpO1xuXG4gIHZhciBjb250ZW50ID0gZmxhdHRlbkNoaWxkcmVuKHByb3BzLmNoaWxkcmVuKTtcblxuICBpZiAoY29udGVudCkge1xuICAgIGhvc3RQcm9wcy5jaGlsZHJlbiA9IGNvbnRlbnQ7XG4gIH1cblxuICByZXR1cm4gaG9zdFByb3BzO1xufVxuXG52YXIgZGlkV2FyblZhbHVlRGVmYXVsdFZhbHVlJDE7XG5cbntcbiAgZGlkV2FyblZhbHVlRGVmYXVsdFZhbHVlJDEgPSBmYWxzZTtcbn1cblxuZnVuY3Rpb24gZ2V0RGVjbGFyYXRpb25FcnJvckFkZGVuZHVtKCkge1xuICB2YXIgb3duZXJOYW1lID0gZ2V0Q3VycmVudEZpYmVyT3duZXJOYW1lSW5EZXZPck51bGwoKTtcblxuICBpZiAob3duZXJOYW1lKSB7XG4gICAgcmV0dXJuICdcXG5cXG5DaGVjayB0aGUgcmVuZGVyIG1ldGhvZCBvZiBgJyArIG93bmVyTmFtZSArICdgLic7XG4gIH1cblxuICByZXR1cm4gJyc7XG59XG5cbnZhciB2YWx1ZVByb3BOYW1lcyA9IFsndmFsdWUnLCAnZGVmYXVsdFZhbHVlJ107XG4vKipcbiAqIFZhbGlkYXRpb24gZnVuY3Rpb24gZm9yIGB2YWx1ZWAgYW5kIGBkZWZhdWx0VmFsdWVgLlxuICovXG5cbmZ1bmN0aW9uIGNoZWNrU2VsZWN0UHJvcFR5cGVzKHByb3BzKSB7XG4gIHtcbiAgICBjaGVja0NvbnRyb2xsZWRWYWx1ZVByb3BzKCdzZWxlY3QnLCBwcm9wcyk7XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlUHJvcE5hbWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgcHJvcE5hbWUgPSB2YWx1ZVByb3BOYW1lc1tpXTtcblxuICAgICAgaWYgKHByb3BzW3Byb3BOYW1lXSA9PSBudWxsKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICB2YXIgaXNBcnJheSA9IEFycmF5LmlzQXJyYXkocHJvcHNbcHJvcE5hbWVdKTtcblxuICAgICAgaWYgKHByb3BzLm11bHRpcGxlICYmICFpc0FycmF5KSB7XG4gICAgICAgIGVycm9yKCdUaGUgYCVzYCBwcm9wIHN1cHBsaWVkIHRvIDxzZWxlY3Q+IG11c3QgYmUgYW4gYXJyYXkgaWYgJyArICdgbXVsdGlwbGVgIGlzIHRydWUuJXMnLCBwcm9wTmFtZSwgZ2V0RGVjbGFyYXRpb25FcnJvckFkZGVuZHVtKCkpO1xuICAgICAgfSBlbHNlIGlmICghcHJvcHMubXVsdGlwbGUgJiYgaXNBcnJheSkge1xuICAgICAgICBlcnJvcignVGhlIGAlc2AgcHJvcCBzdXBwbGllZCB0byA8c2VsZWN0PiBtdXN0IGJlIGEgc2NhbGFyICcgKyAndmFsdWUgaWYgYG11bHRpcGxlYCBpcyBmYWxzZS4lcycsIHByb3BOYW1lLCBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0oKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZU9wdGlvbnMobm9kZSwgbXVsdGlwbGUsIHByb3BWYWx1ZSwgc2V0RGVmYXVsdFNlbGVjdGVkKSB7XG4gIHZhciBvcHRpb25zID0gbm9kZS5vcHRpb25zO1xuXG4gIGlmIChtdWx0aXBsZSkge1xuICAgIHZhciBzZWxlY3RlZFZhbHVlcyA9IHByb3BWYWx1ZTtcbiAgICB2YXIgc2VsZWN0ZWRWYWx1ZSA9IHt9O1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWxlY3RlZFZhbHVlcy5sZW5ndGg7IGkrKykge1xuICAgICAgLy8gUHJlZml4IHRvIGF2b2lkIGNoYW9zIHdpdGggc3BlY2lhbCBrZXlzLlxuICAgICAgc2VsZWN0ZWRWYWx1ZVsnJCcgKyBzZWxlY3RlZFZhbHVlc1tpXV0gPSB0cnVlO1xuICAgIH1cblxuICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBvcHRpb25zLmxlbmd0aDsgX2krKykge1xuICAgICAgdmFyIHNlbGVjdGVkID0gc2VsZWN0ZWRWYWx1ZS5oYXNPd25Qcm9wZXJ0eSgnJCcgKyBvcHRpb25zW19pXS52YWx1ZSk7XG5cbiAgICAgIGlmIChvcHRpb25zW19pXS5zZWxlY3RlZCAhPT0gc2VsZWN0ZWQpIHtcbiAgICAgICAgb3B0aW9uc1tfaV0uc2VsZWN0ZWQgPSBzZWxlY3RlZDtcbiAgICAgIH1cblxuICAgICAgaWYgKHNlbGVjdGVkICYmIHNldERlZmF1bHRTZWxlY3RlZCkge1xuICAgICAgICBvcHRpb25zW19pXS5kZWZhdWx0U2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBEbyBub3Qgc2V0IGBzZWxlY3QudmFsdWVgIGFzIGV4YWN0IGJlaGF2aW9yIGlzbid0IGNvbnNpc3RlbnQgYWNyb3NzIGFsbFxuICAgIC8vIGJyb3dzZXJzIGZvciBhbGwgY2FzZXMuXG4gICAgdmFyIF9zZWxlY3RlZFZhbHVlID0gdG9TdHJpbmcoZ2V0VG9TdHJpbmdWYWx1ZShwcm9wVmFsdWUpKTtcblxuICAgIHZhciBkZWZhdWx0U2VsZWN0ZWQgPSBudWxsO1xuXG4gICAgZm9yICh2YXIgX2kyID0gMDsgX2kyIDwgb3B0aW9ucy5sZW5ndGg7IF9pMisrKSB7XG4gICAgICBpZiAob3B0aW9uc1tfaTJdLnZhbHVlID09PSBfc2VsZWN0ZWRWYWx1ZSkge1xuICAgICAgICBvcHRpb25zW19pMl0uc2VsZWN0ZWQgPSB0cnVlO1xuXG4gICAgICAgIGlmIChzZXREZWZhdWx0U2VsZWN0ZWQpIHtcbiAgICAgICAgICBvcHRpb25zW19pMl0uZGVmYXVsdFNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGRlZmF1bHRTZWxlY3RlZCA9PT0gbnVsbCAmJiAhb3B0aW9uc1tfaTJdLmRpc2FibGVkKSB7XG4gICAgICAgIGRlZmF1bHRTZWxlY3RlZCA9IG9wdGlvbnNbX2kyXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZGVmYXVsdFNlbGVjdGVkICE9PSBudWxsKSB7XG4gICAgICBkZWZhdWx0U2VsZWN0ZWQuc2VsZWN0ZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxufVxuLyoqXG4gKiBJbXBsZW1lbnRzIGEgPHNlbGVjdD4gaG9zdCBjb21wb25lbnQgdGhhdCBhbGxvd3Mgb3B0aW9uYWxseSBzZXR0aW5nIHRoZVxuICogcHJvcHMgYHZhbHVlYCBhbmQgYGRlZmF1bHRWYWx1ZWAuIElmIGBtdWx0aXBsZWAgaXMgZmFsc2UsIHRoZSBwcm9wIG11c3QgYmUgYVxuICogc3RyaW5nYWJsZS4gSWYgYG11bHRpcGxlYCBpcyB0cnVlLCB0aGUgcHJvcCBtdXN0IGJlIGFuIGFycmF5IG9mIHN0cmluZ2FibGVzLlxuICpcbiAqIElmIGB2YWx1ZWAgaXMgbm90IHN1cHBsaWVkIChvciBudWxsL3VuZGVmaW5lZCksIHVzZXIgYWN0aW9ucyB0aGF0IGNoYW5nZSB0aGVcbiAqIHNlbGVjdGVkIG9wdGlvbiB3aWxsIHRyaWdnZXIgdXBkYXRlcyB0byB0aGUgcmVuZGVyZWQgb3B0aW9ucy5cbiAqXG4gKiBJZiBpdCBpcyBzdXBwbGllZCAoYW5kIG5vdCBudWxsL3VuZGVmaW5lZCksIHRoZSByZW5kZXJlZCBvcHRpb25zIHdpbGwgbm90XG4gKiB1cGRhdGUgaW4gcmVzcG9uc2UgdG8gdXNlciBhY3Rpb25zLiBJbnN0ZWFkLCB0aGUgYHZhbHVlYCBwcm9wIG11c3QgY2hhbmdlIGluXG4gKiBvcmRlciBmb3IgdGhlIHJlbmRlcmVkIG9wdGlvbnMgdG8gdXBkYXRlLlxuICpcbiAqIElmIGBkZWZhdWx0VmFsdWVgIGlzIHByb3ZpZGVkLCBhbnkgb3B0aW9ucyB3aXRoIHRoZSBzdXBwbGllZCB2YWx1ZXMgd2lsbCBiZVxuICogc2VsZWN0ZWQuXG4gKi9cblxuXG5mdW5jdGlvbiBnZXRIb3N0UHJvcHMkMihlbGVtZW50LCBwcm9wcykge1xuICByZXR1cm4gX2Fzc2lnbih7fSwgcHJvcHMsIHtcbiAgICB2YWx1ZTogdW5kZWZpbmVkXG4gIH0pO1xufVxuZnVuY3Rpb24gaW5pdFdyYXBwZXJTdGF0ZSQxKGVsZW1lbnQsIHByb3BzKSB7XG4gIHZhciBub2RlID0gZWxlbWVudDtcblxuICB7XG4gICAgY2hlY2tTZWxlY3RQcm9wVHlwZXMocHJvcHMpO1xuICB9XG5cbiAgbm9kZS5fd3JhcHBlclN0YXRlID0ge1xuICAgIHdhc011bHRpcGxlOiAhIXByb3BzLm11bHRpcGxlXG4gIH07XG5cbiAge1xuICAgIGlmIChwcm9wcy52YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHByb3BzLmRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkICYmICFkaWRXYXJuVmFsdWVEZWZhdWx0VmFsdWUkMSkge1xuICAgICAgZXJyb3IoJ1NlbGVjdCBlbGVtZW50cyBtdXN0IGJlIGVpdGhlciBjb250cm9sbGVkIG9yIHVuY29udHJvbGxlZCAnICsgJyhzcGVjaWZ5IGVpdGhlciB0aGUgdmFsdWUgcHJvcCwgb3IgdGhlIGRlZmF1bHRWYWx1ZSBwcm9wLCBidXQgbm90ICcgKyAnYm90aCkuIERlY2lkZSBiZXR3ZWVuIHVzaW5nIGEgY29udHJvbGxlZCBvciB1bmNvbnRyb2xsZWQgc2VsZWN0ICcgKyAnZWxlbWVudCBhbmQgcmVtb3ZlIG9uZSBvZiB0aGVzZSBwcm9wcy4gTW9yZSBpbmZvOiAnICsgJ2h0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9jb250cm9sbGVkLWNvbXBvbmVudHMnKTtcblxuICAgICAgZGlkV2FyblZhbHVlRGVmYXVsdFZhbHVlJDEgPSB0cnVlO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gcG9zdE1vdW50V3JhcHBlciQyKGVsZW1lbnQsIHByb3BzKSB7XG4gIHZhciBub2RlID0gZWxlbWVudDtcbiAgbm9kZS5tdWx0aXBsZSA9ICEhcHJvcHMubXVsdGlwbGU7XG4gIHZhciB2YWx1ZSA9IHByb3BzLnZhbHVlO1xuXG4gIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgdXBkYXRlT3B0aW9ucyhub2RlLCAhIXByb3BzLm11bHRpcGxlLCB2YWx1ZSwgZmFsc2UpO1xuICB9IGVsc2UgaWYgKHByb3BzLmRlZmF1bHRWYWx1ZSAhPSBudWxsKSB7XG4gICAgdXBkYXRlT3B0aW9ucyhub2RlLCAhIXByb3BzLm11bHRpcGxlLCBwcm9wcy5kZWZhdWx0VmFsdWUsIHRydWUpO1xuICB9XG59XG5mdW5jdGlvbiBwb3N0VXBkYXRlV3JhcHBlcihlbGVtZW50LCBwcm9wcykge1xuICB2YXIgbm9kZSA9IGVsZW1lbnQ7XG4gIHZhciB3YXNNdWx0aXBsZSA9IG5vZGUuX3dyYXBwZXJTdGF0ZS53YXNNdWx0aXBsZTtcbiAgbm9kZS5fd3JhcHBlclN0YXRlLndhc011bHRpcGxlID0gISFwcm9wcy5tdWx0aXBsZTtcbiAgdmFyIHZhbHVlID0gcHJvcHMudmFsdWU7XG5cbiAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICB1cGRhdGVPcHRpb25zKG5vZGUsICEhcHJvcHMubXVsdGlwbGUsIHZhbHVlLCBmYWxzZSk7XG4gIH0gZWxzZSBpZiAod2FzTXVsdGlwbGUgIT09ICEhcHJvcHMubXVsdGlwbGUpIHtcbiAgICAvLyBGb3Igc2ltcGxpY2l0eSwgcmVhcHBseSBgZGVmYXVsdFZhbHVlYCBpZiBgbXVsdGlwbGVgIGlzIHRvZ2dsZWQuXG4gICAgaWYgKHByb3BzLmRlZmF1bHRWYWx1ZSAhPSBudWxsKSB7XG4gICAgICB1cGRhdGVPcHRpb25zKG5vZGUsICEhcHJvcHMubXVsdGlwbGUsIHByb3BzLmRlZmF1bHRWYWx1ZSwgdHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFJldmVydCB0aGUgc2VsZWN0IGJhY2sgdG8gaXRzIGRlZmF1bHQgdW5zZWxlY3RlZCBzdGF0ZS5cbiAgICAgIHVwZGF0ZU9wdGlvbnMobm9kZSwgISFwcm9wcy5tdWx0aXBsZSwgcHJvcHMubXVsdGlwbGUgPyBbXSA6ICcnLCBmYWxzZSk7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiByZXN0b3JlQ29udHJvbGxlZFN0YXRlJDEoZWxlbWVudCwgcHJvcHMpIHtcbiAgdmFyIG5vZGUgPSBlbGVtZW50O1xuICB2YXIgdmFsdWUgPSBwcm9wcy52YWx1ZTtcblxuICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgIHVwZGF0ZU9wdGlvbnMobm9kZSwgISFwcm9wcy5tdWx0aXBsZSwgdmFsdWUsIGZhbHNlKTtcbiAgfVxufVxuXG52YXIgZGlkV2FyblZhbERlZmF1bHRWYWwgPSBmYWxzZTtcblxuLyoqXG4gKiBJbXBsZW1lbnRzIGEgPHRleHRhcmVhPiBob3N0IGNvbXBvbmVudCB0aGF0IGFsbG93cyBzZXR0aW5nIGB2YWx1ZWAsIGFuZFxuICogYGRlZmF1bHRWYWx1ZWAuIFRoaXMgZGlmZmVycyBmcm9tIHRoZSB0cmFkaXRpb25hbCBET00gQVBJIGJlY2F1c2UgdmFsdWUgaXNcbiAqIHVzdWFsbHkgc2V0IGFzIFBDREFUQSBjaGlsZHJlbi5cbiAqXG4gKiBJZiBgdmFsdWVgIGlzIG5vdCBzdXBwbGllZCAob3IgbnVsbC91bmRlZmluZWQpLCB1c2VyIGFjdGlvbnMgdGhhdCBhZmZlY3QgdGhlXG4gKiB2YWx1ZSB3aWxsIHRyaWdnZXIgdXBkYXRlcyB0byB0aGUgZWxlbWVudC5cbiAqXG4gKiBJZiBgdmFsdWVgIGlzIHN1cHBsaWVkIChhbmQgbm90IG51bGwvdW5kZWZpbmVkKSwgdGhlIHJlbmRlcmVkIGVsZW1lbnQgd2lsbFxuICogbm90IHRyaWdnZXIgdXBkYXRlcyB0byB0aGUgZWxlbWVudC4gSW5zdGVhZCwgdGhlIGB2YWx1ZWAgcHJvcCBtdXN0IGNoYW5nZSBpblxuICogb3JkZXIgZm9yIHRoZSByZW5kZXJlZCBlbGVtZW50IHRvIGJlIHVwZGF0ZWQuXG4gKlxuICogVGhlIHJlbmRlcmVkIGVsZW1lbnQgd2lsbCBiZSBpbml0aWFsaXplZCB3aXRoIGFuIGVtcHR5IHZhbHVlLCB0aGUgcHJvcFxuICogYGRlZmF1bHRWYWx1ZWAgaWYgc3BlY2lmaWVkLCBvciB0aGUgY2hpbGRyZW4gY29udGVudCAoZGVwcmVjYXRlZCkuXG4gKi9cbmZ1bmN0aW9uIGdldEhvc3RQcm9wcyQzKGVsZW1lbnQsIHByb3BzKSB7XG4gIHZhciBub2RlID0gZWxlbWVudDtcblxuICBpZiAoIShwcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTCA9PSBudWxsKSkge1xuICAgIHtcbiAgICAgIHRocm93IEVycm9yKCBcImBkYW5nZXJvdXNseVNldElubmVySFRNTGAgZG9lcyBub3QgbWFrZSBzZW5zZSBvbiA8dGV4dGFyZWE+LlwiICk7XG4gICAgfVxuICB9IC8vIEFsd2F5cyBzZXQgY2hpbGRyZW4gdG8gdGhlIHNhbWUgdGhpbmcuIEluIElFOSwgdGhlIHNlbGVjdGlvbiByYW5nZSB3aWxsXG4gIC8vIGdldCByZXNldCBpZiBgdGV4dENvbnRlbnRgIGlzIG11dGF0ZWQuICBXZSBjb3VsZCBhZGQgYSBjaGVjayBpbiBzZXRUZXh0Q29udGVudFxuICAvLyB0byBvbmx5IHNldCB0aGUgdmFsdWUgaWYvd2hlbiB0aGUgdmFsdWUgZGlmZmVycyBmcm9tIHRoZSBub2RlIHZhbHVlICh3aGljaCB3b3VsZFxuICAvLyBjb21wbGV0ZWx5IHNvbHZlIHRoaXMgSUU5IGJ1ZyksIGJ1dCBTZWJhc3RpYW4rU29waGllIHNlZW1lZCB0byBsaWtlIHRoaXNcbiAgLy8gc29sdXRpb24uIFRoZSB2YWx1ZSBjYW4gYmUgYSBib29sZWFuIG9yIG9iamVjdCBzbyB0aGF0J3Mgd2h5IGl0J3MgZm9yY2VkXG4gIC8vIHRvIGJlIGEgc3RyaW5nLlxuXG5cbiAgdmFyIGhvc3RQcm9wcyA9IF9hc3NpZ24oe30sIHByb3BzLCB7XG4gICAgdmFsdWU6IHVuZGVmaW5lZCxcbiAgICBkZWZhdWx0VmFsdWU6IHVuZGVmaW5lZCxcbiAgICBjaGlsZHJlbjogdG9TdHJpbmcobm9kZS5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZSlcbiAgfSk7XG5cbiAgcmV0dXJuIGhvc3RQcm9wcztcbn1cbmZ1bmN0aW9uIGluaXRXcmFwcGVyU3RhdGUkMihlbGVtZW50LCBwcm9wcykge1xuICB2YXIgbm9kZSA9IGVsZW1lbnQ7XG5cbiAge1xuICAgIGNoZWNrQ29udHJvbGxlZFZhbHVlUHJvcHMoJ3RleHRhcmVhJywgcHJvcHMpO1xuXG4gICAgaWYgKHByb3BzLnZhbHVlICE9PSB1bmRlZmluZWQgJiYgcHJvcHMuZGVmYXVsdFZhbHVlICE9PSB1bmRlZmluZWQgJiYgIWRpZFdhcm5WYWxEZWZhdWx0VmFsKSB7XG4gICAgICBlcnJvcignJXMgY29udGFpbnMgYSB0ZXh0YXJlYSB3aXRoIGJvdGggdmFsdWUgYW5kIGRlZmF1bHRWYWx1ZSBwcm9wcy4gJyArICdUZXh0YXJlYSBlbGVtZW50cyBtdXN0IGJlIGVpdGhlciBjb250cm9sbGVkIG9yIHVuY29udHJvbGxlZCAnICsgJyhzcGVjaWZ5IGVpdGhlciB0aGUgdmFsdWUgcHJvcCwgb3IgdGhlIGRlZmF1bHRWYWx1ZSBwcm9wLCBidXQgbm90ICcgKyAnYm90aCkuIERlY2lkZSBiZXR3ZWVuIHVzaW5nIGEgY29udHJvbGxlZCBvciB1bmNvbnRyb2xsZWQgdGV4dGFyZWEgJyArICdhbmQgcmVtb3ZlIG9uZSBvZiB0aGVzZSBwcm9wcy4gTW9yZSBpbmZvOiAnICsgJ2h0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9jb250cm9sbGVkLWNvbXBvbmVudHMnLCBnZXRDdXJyZW50RmliZXJPd25lck5hbWVJbkRldk9yTnVsbCgpIHx8ICdBIGNvbXBvbmVudCcpO1xuXG4gICAgICBkaWRXYXJuVmFsRGVmYXVsdFZhbCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgdmFyIGluaXRpYWxWYWx1ZSA9IHByb3BzLnZhbHVlOyAvLyBPbmx5IGJvdGhlciBmZXRjaGluZyBkZWZhdWx0IHZhbHVlIGlmIHdlJ3JlIGdvaW5nIHRvIHVzZSBpdFxuXG4gIGlmIChpbml0aWFsVmFsdWUgPT0gbnVsbCkge1xuICAgIHZhciBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLFxuICAgICAgICBkZWZhdWx0VmFsdWUgPSBwcm9wcy5kZWZhdWx0VmFsdWU7XG5cbiAgICBpZiAoY2hpbGRyZW4gIT0gbnVsbCkge1xuICAgICAge1xuICAgICAgICBlcnJvcignVXNlIHRoZSBgZGVmYXVsdFZhbHVlYCBvciBgdmFsdWVgIHByb3BzIGluc3RlYWQgb2Ygc2V0dGluZyAnICsgJ2NoaWxkcmVuIG9uIDx0ZXh0YXJlYT4uJyk7XG4gICAgICB9XG5cbiAgICAgIHtcbiAgICAgICAgaWYgKCEoZGVmYXVsdFZhbHVlID09IG51bGwpKSB7XG4gICAgICAgICAge1xuICAgICAgICAgICAgdGhyb3cgRXJyb3IoIFwiSWYgeW91IHN1cHBseSBgZGVmYXVsdFZhbHVlYCBvbiBhIDx0ZXh0YXJlYT4sIGRvIG5vdCBwYXNzIGNoaWxkcmVuLlwiICk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pKSB7XG4gICAgICAgICAgaWYgKCEoY2hpbGRyZW4ubGVuZ3RoIDw9IDEpKSB7XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRocm93IEVycm9yKCBcIjx0ZXh0YXJlYT4gY2FuIG9ubHkgaGF2ZSBhdCBtb3N0IG9uZSBjaGlsZC5cIiApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNoaWxkcmVuID0gY2hpbGRyZW5bMF07XG4gICAgICAgIH1cblxuICAgICAgICBkZWZhdWx0VmFsdWUgPSBjaGlsZHJlbjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZGVmYXVsdFZhbHVlID09IG51bGwpIHtcbiAgICAgIGRlZmF1bHRWYWx1ZSA9ICcnO1xuICAgIH1cblxuICAgIGluaXRpYWxWYWx1ZSA9IGRlZmF1bHRWYWx1ZTtcbiAgfVxuXG4gIG5vZGUuX3dyYXBwZXJTdGF0ZSA9IHtcbiAgICBpbml0aWFsVmFsdWU6IGdldFRvU3RyaW5nVmFsdWUoaW5pdGlhbFZhbHVlKVxuICB9O1xufVxuZnVuY3Rpb24gdXBkYXRlV3JhcHBlciQxKGVsZW1lbnQsIHByb3BzKSB7XG4gIHZhciBub2RlID0gZWxlbWVudDtcbiAgdmFyIHZhbHVlID0gZ2V0VG9TdHJpbmdWYWx1ZShwcm9wcy52YWx1ZSk7XG4gIHZhciBkZWZhdWx0VmFsdWUgPSBnZXRUb1N0cmluZ1ZhbHVlKHByb3BzLmRlZmF1bHRWYWx1ZSk7XG5cbiAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAvLyBDYXN0IGB2YWx1ZWAgdG8gYSBzdHJpbmcgdG8gZW5zdXJlIHRoZSB2YWx1ZSBpcyBzZXQgY29ycmVjdGx5LiBXaGlsZVxuICAgIC8vIGJyb3dzZXJzIHR5cGljYWxseSBkbyB0aGlzIGFzIG5lY2Vzc2FyeSwganNkb20gZG9lc24ndC5cbiAgICB2YXIgbmV3VmFsdWUgPSB0b1N0cmluZyh2YWx1ZSk7IC8vIFRvIGF2b2lkIHNpZGUgZWZmZWN0cyAoc3VjaCBhcyBsb3NpbmcgdGV4dCBzZWxlY3Rpb24pLCBvbmx5IHNldCB2YWx1ZSBpZiBjaGFuZ2VkXG5cbiAgICBpZiAobmV3VmFsdWUgIT09IG5vZGUudmFsdWUpIHtcbiAgICAgIG5vZGUudmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMuZGVmYXVsdFZhbHVlID09IG51bGwgJiYgbm9kZS5kZWZhdWx0VmFsdWUgIT09IG5ld1ZhbHVlKSB7XG4gICAgICBub2RlLmRlZmF1bHRWYWx1ZSA9IG5ld1ZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGlmIChkZWZhdWx0VmFsdWUgIT0gbnVsbCkge1xuICAgIG5vZGUuZGVmYXVsdFZhbHVlID0gdG9TdHJpbmcoZGVmYXVsdFZhbHVlKTtcbiAgfVxufVxuZnVuY3Rpb24gcG9zdE1vdW50V3JhcHBlciQzKGVsZW1lbnQsIHByb3BzKSB7XG4gIHZhciBub2RlID0gZWxlbWVudDsgLy8gVGhpcyBpcyBpbiBwb3N0TW91bnQgYmVjYXVzZSB3ZSBuZWVkIGFjY2VzcyB0byB0aGUgRE9NIG5vZGUsIHdoaWNoIGlzIG5vdFxuICAvLyBhdmFpbGFibGUgdW50aWwgYWZ0ZXIgdGhlIGNvbXBvbmVudCBoYXMgbW91bnRlZC5cblxuICB2YXIgdGV4dENvbnRlbnQgPSBub2RlLnRleHRDb250ZW50OyAvLyBPbmx5IHNldCBub2RlLnZhbHVlIGlmIHRleHRDb250ZW50IGlzIGVxdWFsIHRvIHRoZSBleHBlY3RlZFxuICAvLyBpbml0aWFsIHZhbHVlLiBJbiBJRTEwL0lFMTEgdGhlcmUgaXMgYSBidWcgd2hlcmUgdGhlIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZVxuICAvLyB3aWxsIHBvcHVsYXRlIHRleHRDb250ZW50IGFzIHdlbGwuXG4gIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1pY3Jvc29mdC5jb20vbWljcm9zb2Z0LWVkZ2UvcGxhdGZvcm0vaXNzdWVzLzEwMTUyNS9cblxuICBpZiAodGV4dENvbnRlbnQgPT09IG5vZGUuX3dyYXBwZXJTdGF0ZS5pbml0aWFsVmFsdWUpIHtcbiAgICBpZiAodGV4dENvbnRlbnQgIT09ICcnICYmIHRleHRDb250ZW50ICE9PSBudWxsKSB7XG4gICAgICBub2RlLnZhbHVlID0gdGV4dENvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiByZXN0b3JlQ29udHJvbGxlZFN0YXRlJDIoZWxlbWVudCwgcHJvcHMpIHtcbiAgLy8gRE9NIGNvbXBvbmVudCBpcyBzdGlsbCBtb3VudGVkOyB1cGRhdGVcbiAgdXBkYXRlV3JhcHBlciQxKGVsZW1lbnQsIHByb3BzKTtcbn1cblxudmFyIEhUTUxfTkFNRVNQQUNFID0gJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnO1xudmFyIE1BVEhfTkFNRVNQQUNFID0gJ2h0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwnO1xudmFyIFNWR19OQU1FU1BBQ0UgPSAnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnO1xudmFyIE5hbWVzcGFjZXMgPSB7XG4gIGh0bWw6IEhUTUxfTkFNRVNQQUNFLFxuICBtYXRobWw6IE1BVEhfTkFNRVNQQUNFLFxuICBzdmc6IFNWR19OQU1FU1BBQ0Vcbn07IC8vIEFzc3VtZXMgdGhlcmUgaXMgbm8gcGFyZW50IG5hbWVzcGFjZS5cblxuZnVuY3Rpb24gZ2V0SW50cmluc2ljTmFtZXNwYWNlKHR5cGUpIHtcbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSAnc3ZnJzpcbiAgICAgIHJldHVybiBTVkdfTkFNRVNQQUNFO1xuXG4gICAgY2FzZSAnbWF0aCc6XG4gICAgICByZXR1cm4gTUFUSF9OQU1FU1BBQ0U7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIEhUTUxfTkFNRVNQQUNFO1xuICB9XG59XG5mdW5jdGlvbiBnZXRDaGlsZE5hbWVzcGFjZShwYXJlbnROYW1lc3BhY2UsIHR5cGUpIHtcbiAgaWYgKHBhcmVudE5hbWVzcGFjZSA9PSBudWxsIHx8IHBhcmVudE5hbWVzcGFjZSA9PT0gSFRNTF9OQU1FU1BBQ0UpIHtcbiAgICAvLyBObyAob3IgZGVmYXVsdCkgcGFyZW50IG5hbWVzcGFjZTogcG90ZW50aWFsIGVudHJ5IHBvaW50LlxuICAgIHJldHVybiBnZXRJbnRyaW5zaWNOYW1lc3BhY2UodHlwZSk7XG4gIH1cblxuICBpZiAocGFyZW50TmFtZXNwYWNlID09PSBTVkdfTkFNRVNQQUNFICYmIHR5cGUgPT09ICdmb3JlaWduT2JqZWN0Jykge1xuICAgIC8vIFdlJ3JlIGxlYXZpbmcgU1ZHLlxuICAgIHJldHVybiBIVE1MX05BTUVTUEFDRTtcbiAgfSAvLyBCeSBkZWZhdWx0LCBwYXNzIG5hbWVzcGFjZSBiZWxvdy5cblxuXG4gIHJldHVybiBwYXJlbnROYW1lc3BhY2U7XG59XG5cbi8qIGdsb2JhbHMgTVNBcHAgKi9cblxuLyoqXG4gKiBDcmVhdGUgYSBmdW5jdGlvbiB3aGljaCBoYXMgJ3Vuc2FmZScgcHJpdmlsZWdlcyAocmVxdWlyZWQgYnkgd2luZG93czggYXBwcylcbiAqL1xudmFyIGNyZWF0ZU1pY3Jvc29mdFVuc2FmZUxvY2FsRnVuY3Rpb24gPSBmdW5jdGlvbiAoZnVuYykge1xuICBpZiAodHlwZW9mIE1TQXBwICE9PSAndW5kZWZpbmVkJyAmJiBNU0FwcC5leGVjVW5zYWZlTG9jYWxGdW5jdGlvbikge1xuICAgIHJldHVybiBmdW5jdGlvbiAoYXJnMCwgYXJnMSwgYXJnMiwgYXJnMykge1xuICAgICAgTVNBcHAuZXhlY1Vuc2FmZUxvY2FsRnVuY3Rpb24oZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gZnVuYyhhcmcwLCBhcmcxLCBhcmcyLCBhcmczKTtcbiAgICAgIH0pO1xuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGZ1bmM7XG4gIH1cbn07XG5cbnZhciByZXVzYWJsZVNWR0NvbnRhaW5lcjtcbi8qKlxuICogU2V0IHRoZSBpbm5lckhUTUwgcHJvcGVydHkgb2YgYSBub2RlXG4gKlxuICogQHBhcmFtIHtET01FbGVtZW50fSBub2RlXG4gKiBAcGFyYW0ge3N0cmluZ30gaHRtbFxuICogQGludGVybmFsXG4gKi9cblxudmFyIHNldElubmVySFRNTCA9IGNyZWF0ZU1pY3Jvc29mdFVuc2FmZUxvY2FsRnVuY3Rpb24oZnVuY3Rpb24gKG5vZGUsIGh0bWwpIHtcbiAgaWYgKG5vZGUubmFtZXNwYWNlVVJJID09PSBOYW1lc3BhY2VzLnN2Zykge1xuXG4gICAgaWYgKCEoJ2lubmVySFRNTCcgaW4gbm9kZSkpIHtcbiAgICAgIC8vIElFIGRvZXMgbm90IGhhdmUgaW5uZXJIVE1MIGZvciBTVkcgbm9kZXMsIHNvIGluc3RlYWQgd2UgaW5qZWN0IHRoZVxuICAgICAgLy8gbmV3IG1hcmt1cCBpbiBhIHRlbXAgbm9kZSBhbmQgdGhlbiBtb3ZlIHRoZSBjaGlsZCBub2RlcyBhY3Jvc3MgaW50b1xuICAgICAgLy8gdGhlIHRhcmdldCBub2RlXG4gICAgICByZXVzYWJsZVNWR0NvbnRhaW5lciA9IHJldXNhYmxlU1ZHQ29udGFpbmVyIHx8IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgcmV1c2FibGVTVkdDb250YWluZXIuaW5uZXJIVE1MID0gJzxzdmc+JyArIGh0bWwudmFsdWVPZigpLnRvU3RyaW5nKCkgKyAnPC9zdmc+JztcbiAgICAgIHZhciBzdmdOb2RlID0gcmV1c2FibGVTVkdDb250YWluZXIuZmlyc3RDaGlsZDtcblxuICAgICAgd2hpbGUgKG5vZGUuZmlyc3RDaGlsZCkge1xuICAgICAgICBub2RlLnJlbW92ZUNoaWxkKG5vZGUuZmlyc3RDaGlsZCk7XG4gICAgICB9XG5cbiAgICAgIHdoaWxlIChzdmdOb2RlLmZpcnN0Q2hpbGQpIHtcbiAgICAgICAgbm9kZS5hcHBlbmRDaGlsZChzdmdOb2RlLmZpcnN0Q2hpbGQpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgbm9kZS5pbm5lckhUTUwgPSBodG1sO1xufSk7XG5cbi8qKlxuICogSFRNTCBub2RlVHlwZSB2YWx1ZXMgdGhhdCByZXByZXNlbnQgdGhlIHR5cGUgb2YgdGhlIG5vZGVcbiAqL1xudmFyIEVMRU1FTlRfTk9ERSA9IDE7XG52YXIgVEVYVF9OT0RFID0gMztcbnZhciBDT01NRU5UX05PREUgPSA4O1xudmFyIERPQ1VNRU5UX05PREUgPSA5O1xudmFyIERPQ1VNRU5UX0ZSQUdNRU5UX05PREUgPSAxMTtcblxuLyoqXG4gKiBTZXQgdGhlIHRleHRDb250ZW50IHByb3BlcnR5IG9mIGEgbm9kZS4gRm9yIHRleHQgdXBkYXRlcywgaXQncyBmYXN0ZXJcbiAqIHRvIHNldCB0aGUgYG5vZGVWYWx1ZWAgb2YgdGhlIFRleHQgbm9kZSBkaXJlY3RseSBpbnN0ZWFkIG9mIHVzaW5nXG4gKiBgLnRleHRDb250ZW50YCB3aGljaCB3aWxsIHJlbW92ZSB0aGUgZXhpc3Rpbmcgbm9kZSBhbmQgY3JlYXRlIGEgbmV3IG9uZS5cbiAqXG4gKiBAcGFyYW0ge0RPTUVsZW1lbnR9IG5vZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0XG4gKiBAaW50ZXJuYWxcbiAqL1xuXG52YXIgc2V0VGV4dENvbnRlbnQgPSBmdW5jdGlvbiAobm9kZSwgdGV4dCkge1xuICBpZiAodGV4dCkge1xuICAgIHZhciBmaXJzdENoaWxkID0gbm9kZS5maXJzdENoaWxkO1xuXG4gICAgaWYgKGZpcnN0Q2hpbGQgJiYgZmlyc3RDaGlsZCA9PT0gbm9kZS5sYXN0Q2hpbGQgJiYgZmlyc3RDaGlsZC5ub2RlVHlwZSA9PT0gVEVYVF9OT0RFKSB7XG4gICAgICBmaXJzdENoaWxkLm5vZGVWYWx1ZSA9IHRleHQ7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgbm9kZS50ZXh0Q29udGVudCA9IHRleHQ7XG59O1xuXG4vLyBMaXN0IGRlcml2ZWQgZnJvbSBHZWNrbyBzb3VyY2UgY29kZTpcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tb3ppbGxhL2dlY2tvLWRldi9ibG9iLzRlNjM4ZWZjNzEvbGF5b3V0L3N0eWxlL3Rlc3QvcHJvcGVydHlfZGF0YWJhc2UuanNcbnZhciBzaG9ydGhhbmRUb0xvbmdoYW5kID0ge1xuICBhbmltYXRpb246IFsnYW5pbWF0aW9uRGVsYXknLCAnYW5pbWF0aW9uRGlyZWN0aW9uJywgJ2FuaW1hdGlvbkR1cmF0aW9uJywgJ2FuaW1hdGlvbkZpbGxNb2RlJywgJ2FuaW1hdGlvbkl0ZXJhdGlvbkNvdW50JywgJ2FuaW1hdGlvbk5hbWUnLCAnYW5pbWF0aW9uUGxheVN0YXRlJywgJ2FuaW1hdGlvblRpbWluZ0Z1bmN0aW9uJ10sXG4gIGJhY2tncm91bmQ6IFsnYmFja2dyb3VuZEF0dGFjaG1lbnQnLCAnYmFja2dyb3VuZENsaXAnLCAnYmFja2dyb3VuZENvbG9yJywgJ2JhY2tncm91bmRJbWFnZScsICdiYWNrZ3JvdW5kT3JpZ2luJywgJ2JhY2tncm91bmRQb3NpdGlvblgnLCAnYmFja2dyb3VuZFBvc2l0aW9uWScsICdiYWNrZ3JvdW5kUmVwZWF0JywgJ2JhY2tncm91bmRTaXplJ10sXG4gIGJhY2tncm91bmRQb3NpdGlvbjogWydiYWNrZ3JvdW5kUG9zaXRpb25YJywgJ2JhY2tncm91bmRQb3NpdGlvblknXSxcbiAgYm9yZGVyOiBbJ2JvcmRlckJvdHRvbUNvbG9yJywgJ2JvcmRlckJvdHRvbVN0eWxlJywgJ2JvcmRlckJvdHRvbVdpZHRoJywgJ2JvcmRlckltYWdlT3V0c2V0JywgJ2JvcmRlckltYWdlUmVwZWF0JywgJ2JvcmRlckltYWdlU2xpY2UnLCAnYm9yZGVySW1hZ2VTb3VyY2UnLCAnYm9yZGVySW1hZ2VXaWR0aCcsICdib3JkZXJMZWZ0Q29sb3InLCAnYm9yZGVyTGVmdFN0eWxlJywgJ2JvcmRlckxlZnRXaWR0aCcsICdib3JkZXJSaWdodENvbG9yJywgJ2JvcmRlclJpZ2h0U3R5bGUnLCAnYm9yZGVyUmlnaHRXaWR0aCcsICdib3JkZXJUb3BDb2xvcicsICdib3JkZXJUb3BTdHlsZScsICdib3JkZXJUb3BXaWR0aCddLFxuICBib3JkZXJCbG9ja0VuZDogWydib3JkZXJCbG9ja0VuZENvbG9yJywgJ2JvcmRlckJsb2NrRW5kU3R5bGUnLCAnYm9yZGVyQmxvY2tFbmRXaWR0aCddLFxuICBib3JkZXJCbG9ja1N0YXJ0OiBbJ2JvcmRlckJsb2NrU3RhcnRDb2xvcicsICdib3JkZXJCbG9ja1N0YXJ0U3R5bGUnLCAnYm9yZGVyQmxvY2tTdGFydFdpZHRoJ10sXG4gIGJvcmRlckJvdHRvbTogWydib3JkZXJCb3R0b21Db2xvcicsICdib3JkZXJCb3R0b21TdHlsZScsICdib3JkZXJCb3R0b21XaWR0aCddLFxuICBib3JkZXJDb2xvcjogWydib3JkZXJCb3R0b21Db2xvcicsICdib3JkZXJMZWZ0Q29sb3InLCAnYm9yZGVyUmlnaHRDb2xvcicsICdib3JkZXJUb3BDb2xvciddLFxuICBib3JkZXJJbWFnZTogWydib3JkZXJJbWFnZU91dHNldCcsICdib3JkZXJJbWFnZVJlcGVhdCcsICdib3JkZXJJbWFnZVNsaWNlJywgJ2JvcmRlckltYWdlU291cmNlJywgJ2JvcmRlckltYWdlV2lkdGgnXSxcbiAgYm9yZGVySW5saW5lRW5kOiBbJ2JvcmRlcklubGluZUVuZENvbG9yJywgJ2JvcmRlcklubGluZUVuZFN0eWxlJywgJ2JvcmRlcklubGluZUVuZFdpZHRoJ10sXG4gIGJvcmRlcklubGluZVN0YXJ0OiBbJ2JvcmRlcklubGluZVN0YXJ0Q29sb3InLCAnYm9yZGVySW5saW5lU3RhcnRTdHlsZScsICdib3JkZXJJbmxpbmVTdGFydFdpZHRoJ10sXG4gIGJvcmRlckxlZnQ6IFsnYm9yZGVyTGVmdENvbG9yJywgJ2JvcmRlckxlZnRTdHlsZScsICdib3JkZXJMZWZ0V2lkdGgnXSxcbiAgYm9yZGVyUmFkaXVzOiBbJ2JvcmRlckJvdHRvbUxlZnRSYWRpdXMnLCAnYm9yZGVyQm90dG9tUmlnaHRSYWRpdXMnLCAnYm9yZGVyVG9wTGVmdFJhZGl1cycsICdib3JkZXJUb3BSaWdodFJhZGl1cyddLFxuICBib3JkZXJSaWdodDogWydib3JkZXJSaWdodENvbG9yJywgJ2JvcmRlclJpZ2h0U3R5bGUnLCAnYm9yZGVyUmlnaHRXaWR0aCddLFxuICBib3JkZXJTdHlsZTogWydib3JkZXJCb3R0b21TdHlsZScsICdib3JkZXJMZWZ0U3R5bGUnLCAnYm9yZGVyUmlnaHRTdHlsZScsICdib3JkZXJUb3BTdHlsZSddLFxuICBib3JkZXJUb3A6IFsnYm9yZGVyVG9wQ29sb3InLCAnYm9yZGVyVG9wU3R5bGUnLCAnYm9yZGVyVG9wV2lkdGgnXSxcbiAgYm9yZGVyV2lkdGg6IFsnYm9yZGVyQm90dG9tV2lkdGgnLCAnYm9yZGVyTGVmdFdpZHRoJywgJ2JvcmRlclJpZ2h0V2lkdGgnLCAnYm9yZGVyVG9wV2lkdGgnXSxcbiAgY29sdW1uUnVsZTogWydjb2x1bW5SdWxlQ29sb3InLCAnY29sdW1uUnVsZVN0eWxlJywgJ2NvbHVtblJ1bGVXaWR0aCddLFxuICBjb2x1bW5zOiBbJ2NvbHVtbkNvdW50JywgJ2NvbHVtbldpZHRoJ10sXG4gIGZsZXg6IFsnZmxleEJhc2lzJywgJ2ZsZXhHcm93JywgJ2ZsZXhTaHJpbmsnXSxcbiAgZmxleEZsb3c6IFsnZmxleERpcmVjdGlvbicsICdmbGV4V3JhcCddLFxuICBmb250OiBbJ2ZvbnRGYW1pbHknLCAnZm9udEZlYXR1cmVTZXR0aW5ncycsICdmb250S2VybmluZycsICdmb250TGFuZ3VhZ2VPdmVycmlkZScsICdmb250U2l6ZScsICdmb250U2l6ZUFkanVzdCcsICdmb250U3RyZXRjaCcsICdmb250U3R5bGUnLCAnZm9udFZhcmlhbnQnLCAnZm9udFZhcmlhbnRBbHRlcm5hdGVzJywgJ2ZvbnRWYXJpYW50Q2FwcycsICdmb250VmFyaWFudEVhc3RBc2lhbicsICdmb250VmFyaWFudExpZ2F0dXJlcycsICdmb250VmFyaWFudE51bWVyaWMnLCAnZm9udFZhcmlhbnRQb3NpdGlvbicsICdmb250V2VpZ2h0JywgJ2xpbmVIZWlnaHQnXSxcbiAgZm9udFZhcmlhbnQ6IFsnZm9udFZhcmlhbnRBbHRlcm5hdGVzJywgJ2ZvbnRWYXJpYW50Q2FwcycsICdmb250VmFyaWFudEVhc3RBc2lhbicsICdmb250VmFyaWFudExpZ2F0dXJlcycsICdmb250VmFyaWFudE51bWVyaWMnLCAnZm9udFZhcmlhbnRQb3NpdGlvbiddLFxuICBnYXA6IFsnY29sdW1uR2FwJywgJ3Jvd0dhcCddLFxuICBncmlkOiBbJ2dyaWRBdXRvQ29sdW1ucycsICdncmlkQXV0b0Zsb3cnLCAnZ3JpZEF1dG9Sb3dzJywgJ2dyaWRUZW1wbGF0ZUFyZWFzJywgJ2dyaWRUZW1wbGF0ZUNvbHVtbnMnLCAnZ3JpZFRlbXBsYXRlUm93cyddLFxuICBncmlkQXJlYTogWydncmlkQ29sdW1uRW5kJywgJ2dyaWRDb2x1bW5TdGFydCcsICdncmlkUm93RW5kJywgJ2dyaWRSb3dTdGFydCddLFxuICBncmlkQ29sdW1uOiBbJ2dyaWRDb2x1bW5FbmQnLCAnZ3JpZENvbHVtblN0YXJ0J10sXG4gIGdyaWRDb2x1bW5HYXA6IFsnY29sdW1uR2FwJ10sXG4gIGdyaWRHYXA6IFsnY29sdW1uR2FwJywgJ3Jvd0dhcCddLFxuICBncmlkUm93OiBbJ2dyaWRSb3dFbmQnLCAnZ3JpZFJvd1N0YXJ0J10sXG4gIGdyaWRSb3dHYXA6IFsncm93R2FwJ10sXG4gIGdyaWRUZW1wbGF0ZTogWydncmlkVGVtcGxhdGVBcmVhcycsICdncmlkVGVtcGxhdGVDb2x1bW5zJywgJ2dyaWRUZW1wbGF0ZVJvd3MnXSxcbiAgbGlzdFN0eWxlOiBbJ2xpc3RTdHlsZUltYWdlJywgJ2xpc3RTdHlsZVBvc2l0aW9uJywgJ2xpc3RTdHlsZVR5cGUnXSxcbiAgbWFyZ2luOiBbJ21hcmdpbkJvdHRvbScsICdtYXJnaW5MZWZ0JywgJ21hcmdpblJpZ2h0JywgJ21hcmdpblRvcCddLFxuICBtYXJrZXI6IFsnbWFya2VyRW5kJywgJ21hcmtlck1pZCcsICdtYXJrZXJTdGFydCddLFxuICBtYXNrOiBbJ21hc2tDbGlwJywgJ21hc2tDb21wb3NpdGUnLCAnbWFza0ltYWdlJywgJ21hc2tNb2RlJywgJ21hc2tPcmlnaW4nLCAnbWFza1Bvc2l0aW9uWCcsICdtYXNrUG9zaXRpb25ZJywgJ21hc2tSZXBlYXQnLCAnbWFza1NpemUnXSxcbiAgbWFza1Bvc2l0aW9uOiBbJ21hc2tQb3NpdGlvblgnLCAnbWFza1Bvc2l0aW9uWSddLFxuICBvdXRsaW5lOiBbJ291dGxpbmVDb2xvcicsICdvdXRsaW5lU3R5bGUnLCAnb3V0bGluZVdpZHRoJ10sXG4gIG92ZXJmbG93OiBbJ292ZXJmbG93WCcsICdvdmVyZmxvd1knXSxcbiAgcGFkZGluZzogWydwYWRkaW5nQm90dG9tJywgJ3BhZGRpbmdMZWZ0JywgJ3BhZGRpbmdSaWdodCcsICdwYWRkaW5nVG9wJ10sXG4gIHBsYWNlQ29udGVudDogWydhbGlnbkNvbnRlbnQnLCAnanVzdGlmeUNvbnRlbnQnXSxcbiAgcGxhY2VJdGVtczogWydhbGlnbkl0ZW1zJywgJ2p1c3RpZnlJdGVtcyddLFxuICBwbGFjZVNlbGY6IFsnYWxpZ25TZWxmJywgJ2p1c3RpZnlTZWxmJ10sXG4gIHRleHREZWNvcmF0aW9uOiBbJ3RleHREZWNvcmF0aW9uQ29sb3InLCAndGV4dERlY29yYXRpb25MaW5lJywgJ3RleHREZWNvcmF0aW9uU3R5bGUnXSxcbiAgdGV4dEVtcGhhc2lzOiBbJ3RleHRFbXBoYXNpc0NvbG9yJywgJ3RleHRFbXBoYXNpc1N0eWxlJ10sXG4gIHRyYW5zaXRpb246IFsndHJhbnNpdGlvbkRlbGF5JywgJ3RyYW5zaXRpb25EdXJhdGlvbicsICd0cmFuc2l0aW9uUHJvcGVydHknLCAndHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uJ10sXG4gIHdvcmRXcmFwOiBbJ292ZXJmbG93V3JhcCddXG59O1xuXG4vKipcbiAqIENTUyBwcm9wZXJ0aWVzIHdoaWNoIGFjY2VwdCBudW1iZXJzIGJ1dCBhcmUgbm90IGluIHVuaXRzIG9mIFwicHhcIi5cbiAqL1xudmFyIGlzVW5pdGxlc3NOdW1iZXIgPSB7XG4gIGFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OiB0cnVlLFxuICBib3JkZXJJbWFnZU91dHNldDogdHJ1ZSxcbiAgYm9yZGVySW1hZ2VTbGljZTogdHJ1ZSxcbiAgYm9yZGVySW1hZ2VXaWR0aDogdHJ1ZSxcbiAgYm94RmxleDogdHJ1ZSxcbiAgYm94RmxleEdyb3VwOiB0cnVlLFxuICBib3hPcmRpbmFsR3JvdXA6IHRydWUsXG4gIGNvbHVtbkNvdW50OiB0cnVlLFxuICBjb2x1bW5zOiB0cnVlLFxuICBmbGV4OiB0cnVlLFxuICBmbGV4R3JvdzogdHJ1ZSxcbiAgZmxleFBvc2l0aXZlOiB0cnVlLFxuICBmbGV4U2hyaW5rOiB0cnVlLFxuICBmbGV4TmVnYXRpdmU6IHRydWUsXG4gIGZsZXhPcmRlcjogdHJ1ZSxcbiAgZ3JpZEFyZWE6IHRydWUsXG4gIGdyaWRSb3c6IHRydWUsXG4gIGdyaWRSb3dFbmQ6IHRydWUsXG4gIGdyaWRSb3dTcGFuOiB0cnVlLFxuICBncmlkUm93U3RhcnQ6IHRydWUsXG4gIGdyaWRDb2x1bW46IHRydWUsXG4gIGdyaWRDb2x1bW5FbmQ6IHRydWUsXG4gIGdyaWRDb2x1bW5TcGFuOiB0cnVlLFxuICBncmlkQ29sdW1uU3RhcnQ6IHRydWUsXG4gIGZvbnRXZWlnaHQ6IHRydWUsXG4gIGxpbmVDbGFtcDogdHJ1ZSxcbiAgbGluZUhlaWdodDogdHJ1ZSxcbiAgb3BhY2l0eTogdHJ1ZSxcbiAgb3JkZXI6IHRydWUsXG4gIG9ycGhhbnM6IHRydWUsXG4gIHRhYlNpemU6IHRydWUsXG4gIHdpZG93czogdHJ1ZSxcbiAgekluZGV4OiB0cnVlLFxuICB6b29tOiB0cnVlLFxuICAvLyBTVkctcmVsYXRlZCBwcm9wZXJ0aWVzXG4gIGZpbGxPcGFjaXR5OiB0cnVlLFxuICBmbG9vZE9wYWNpdHk6IHRydWUsXG4gIHN0b3BPcGFjaXR5OiB0cnVlLFxuICBzdHJva2VEYXNoYXJyYXk6IHRydWUsXG4gIHN0cm9rZURhc2hvZmZzZXQ6IHRydWUsXG4gIHN0cm9rZU1pdGVybGltaXQ6IHRydWUsXG4gIHN0cm9rZU9wYWNpdHk6IHRydWUsXG4gIHN0cm9rZVdpZHRoOiB0cnVlXG59O1xuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gcHJlZml4IHZlbmRvci1zcGVjaWZpYyBwcmVmaXgsIGVnOiBXZWJraXRcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgc3R5bGUgbmFtZSwgZWc6IHRyYW5zaXRpb25EdXJhdGlvblxuICogQHJldHVybiB7c3RyaW5nfSBzdHlsZSBuYW1lIHByZWZpeGVkIHdpdGggYHByZWZpeGAsIHByb3Blcmx5IGNhbWVsQ2FzZWQsIGVnOlxuICogV2Via2l0VHJhbnNpdGlvbkR1cmF0aW9uXG4gKi9cblxuZnVuY3Rpb24gcHJlZml4S2V5KHByZWZpeCwga2V5KSB7XG4gIHJldHVybiBwcmVmaXggKyBrZXkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBrZXkuc3Vic3RyaW5nKDEpO1xufVxuLyoqXG4gKiBTdXBwb3J0IHN0eWxlIG5hbWVzIHRoYXQgbWF5IGNvbWUgcGFzc2VkIGluIHByZWZpeGVkIGJ5IGFkZGluZyBwZXJtdXRhdGlvbnNcbiAqIG9mIHZlbmRvciBwcmVmaXhlcy5cbiAqL1xuXG5cbnZhciBwcmVmaXhlcyA9IFsnV2Via2l0JywgJ21zJywgJ01veicsICdPJ107IC8vIFVzaW5nIE9iamVjdC5rZXlzIGhlcmUsIG9yIGVsc2UgdGhlIHZhbmlsbGEgZm9yLWluIGxvb3AgbWFrZXMgSUU4IGdvIGludG8gYW5cbi8vIGluZmluaXRlIGxvb3AsIGJlY2F1c2UgaXQgaXRlcmF0ZXMgb3ZlciB0aGUgbmV3bHkgYWRkZWQgcHJvcHMgdG9vLlxuXG5PYmplY3Qua2V5cyhpc1VuaXRsZXNzTnVtYmVyKS5mb3JFYWNoKGZ1bmN0aW9uIChwcm9wKSB7XG4gIHByZWZpeGVzLmZvckVhY2goZnVuY3Rpb24gKHByZWZpeCkge1xuICAgIGlzVW5pdGxlc3NOdW1iZXJbcHJlZml4S2V5KHByZWZpeCwgcHJvcCldID0gaXNVbml0bGVzc051bWJlcltwcm9wXTtcbiAgfSk7XG59KTtcblxuLyoqXG4gKiBDb252ZXJ0IGEgdmFsdWUgaW50byB0aGUgcHJvcGVyIGNzcyB3cml0YWJsZSB2YWx1ZS4gVGhlIHN0eWxlIG5hbWUgYG5hbWVgXG4gKiBzaG91bGQgYmUgbG9naWNhbCAobm8gaHlwaGVucyksIGFzIHNwZWNpZmllZFxuICogaW4gYENTU1Byb3BlcnR5LmlzVW5pdGxlc3NOdW1iZXJgLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIENTUyBwcm9wZXJ0eSBuYW1lIHN1Y2ggYXMgYHRvcE1hcmdpbmAuXG4gKiBAcGFyYW0geyp9IHZhbHVlIENTUyBwcm9wZXJ0eSB2YWx1ZSBzdWNoIGFzIGAxMHB4YC5cbiAqIEByZXR1cm4ge3N0cmluZ30gTm9ybWFsaXplZCBzdHlsZSB2YWx1ZSB3aXRoIGRpbWVuc2lvbnMgYXBwbGllZC5cbiAqL1xuXG5mdW5jdGlvbiBkYW5nZXJvdXNTdHlsZVZhbHVlKG5hbWUsIHZhbHVlLCBpc0N1c3RvbVByb3BlcnR5KSB7XG4gIC8vIE5vdGUgdGhhdCB3ZSd2ZSByZW1vdmVkIGVzY2FwZVRleHRGb3JCcm93c2VyKCkgY2FsbHMgaGVyZSBzaW5jZSB0aGVcbiAgLy8gd2hvbGUgc3RyaW5nIHdpbGwgYmUgZXNjYXBlZCB3aGVuIHRoZSBhdHRyaWJ1dGUgaXMgaW5qZWN0ZWQgaW50b1xuICAvLyB0aGUgbWFya3VwLiBJZiB5b3UgcHJvdmlkZSB1bnNhZmUgdXNlciBkYXRhIGhlcmUgdGhleSBjYW4gaW5qZWN0XG4gIC8vIGFyYml0cmFyeSBDU1Mgd2hpY2ggbWF5IGJlIHByb2JsZW1hdGljIChJIGNvdWxkbid0IHJlcHJvIHRoaXMpOlxuICAvLyBodHRwczovL3d3dy5vd2FzcC5vcmcvaW5kZXgucGhwL1hTU19GaWx0ZXJfRXZhc2lvbl9DaGVhdF9TaGVldFxuICAvLyBodHRwOi8vd3d3LnRoZXNwYW5uZXIuY28udWsvMjAwNy8xMS8yNi91bHRpbWF0ZS14c3MtY3NzLWluamVjdGlvbi9cbiAgLy8gVGhpcyBpcyBub3QgYW4gWFNTIGhvbGUgYnV0IGluc3RlYWQgYSBwb3RlbnRpYWwgQ1NTIGluamVjdGlvbiBpc3N1ZVxuICAvLyB3aGljaCBoYXMgbGVhZCB0byBhIGdyZWF0ZXIgZGlzY3Vzc2lvbiBhYm91dCBob3cgd2UncmUgZ29pbmcgdG9cbiAgLy8gdHJ1c3QgVVJMcyBtb3ZpbmcgZm9yd2FyZC4gU2VlICMyMTE1OTAxXG4gIHZhciBpc0VtcHR5ID0gdmFsdWUgPT0gbnVsbCB8fCB0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJyB8fCB2YWx1ZSA9PT0gJyc7XG5cbiAgaWYgKGlzRW1wdHkpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBpZiAoIWlzQ3VzdG9tUHJvcGVydHkgJiYgdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyAmJiB2YWx1ZSAhPT0gMCAmJiAhKGlzVW5pdGxlc3NOdW1iZXIuaGFzT3duUHJvcGVydHkobmFtZSkgJiYgaXNVbml0bGVzc051bWJlcltuYW1lXSkpIHtcbiAgICByZXR1cm4gdmFsdWUgKyAncHgnOyAvLyBQcmVzdW1lcyBpbXBsaWNpdCAncHgnIHN1ZmZpeCBmb3IgdW5pdGxlc3MgbnVtYmVyc1xuICB9XG5cbiAgcmV0dXJuICgnJyArIHZhbHVlKS50cmltKCk7XG59XG5cbnZhciB1cHBlcmNhc2VQYXR0ZXJuID0gLyhbQS1aXSkvZztcbnZhciBtc1BhdHRlcm4gPSAvXm1zLS87XG4vKipcbiAqIEh5cGhlbmF0ZXMgYSBjYW1lbGNhc2VkIENTUyBwcm9wZXJ0eSBuYW1lLCBmb3IgZXhhbXBsZTpcbiAqXG4gKiAgID4gaHlwaGVuYXRlU3R5bGVOYW1lKCdiYWNrZ3JvdW5kQ29sb3InKVxuICogICA8IFwiYmFja2dyb3VuZC1jb2xvclwiXG4gKiAgID4gaHlwaGVuYXRlU3R5bGVOYW1lKCdNb3pUcmFuc2l0aW9uJylcbiAqICAgPCBcIi1tb3otdHJhbnNpdGlvblwiXG4gKiAgID4gaHlwaGVuYXRlU3R5bGVOYW1lKCdtc1RyYW5zaXRpb24nKVxuICogICA8IFwiLW1zLXRyYW5zaXRpb25cIlxuICpcbiAqIEFzIE1vZGVybml6ciBzdWdnZXN0cyAoaHR0cDovL21vZGVybml6ci5jb20vZG9jcy8jcHJlZml4ZWQpLCBhbiBgbXNgIHByZWZpeFxuICogaXMgY29udmVydGVkIHRvIGAtbXMtYC5cbiAqL1xuXG5mdW5jdGlvbiBoeXBoZW5hdGVTdHlsZU5hbWUobmFtZSkge1xuICByZXR1cm4gbmFtZS5yZXBsYWNlKHVwcGVyY2FzZVBhdHRlcm4sICctJDEnKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UobXNQYXR0ZXJuLCAnLW1zLScpO1xufVxuXG52YXIgd2FyblZhbGlkU3R5bGUgPSBmdW5jdGlvbiAoKSB7fTtcblxue1xuICAvLyAnbXNUcmFuc2Zvcm0nIGlzIGNvcnJlY3QsIGJ1dCB0aGUgb3RoZXIgcHJlZml4ZXMgc2hvdWxkIGJlIGNhcGl0YWxpemVkXG4gIHZhciBiYWRWZW5kb3JlZFN0eWxlTmFtZVBhdHRlcm4gPSAvXig/OndlYmtpdHxtb3p8bylbQS1aXS87XG4gIHZhciBtc1BhdHRlcm4kMSA9IC9eLW1zLS87XG4gIHZhciBoeXBoZW5QYXR0ZXJuID0gLy0oLikvZzsgLy8gc3R5bGUgdmFsdWVzIHNob3VsZG4ndCBjb250YWluIGEgc2VtaWNvbG9uXG5cbiAgdmFyIGJhZFN0eWxlVmFsdWVXaXRoU2VtaWNvbG9uUGF0dGVybiA9IC87XFxzKiQvO1xuICB2YXIgd2FybmVkU3R5bGVOYW1lcyA9IHt9O1xuICB2YXIgd2FybmVkU3R5bGVWYWx1ZXMgPSB7fTtcbiAgdmFyIHdhcm5lZEZvck5hTlZhbHVlID0gZmFsc2U7XG4gIHZhciB3YXJuZWRGb3JJbmZpbml0eVZhbHVlID0gZmFsc2U7XG5cbiAgdmFyIGNhbWVsaXplID0gZnVuY3Rpb24gKHN0cmluZykge1xuICAgIHJldHVybiBzdHJpbmcucmVwbGFjZShoeXBoZW5QYXR0ZXJuLCBmdW5jdGlvbiAoXywgY2hhcmFjdGVyKSB7XG4gICAgICByZXR1cm4gY2hhcmFjdGVyLnRvVXBwZXJDYXNlKCk7XG4gICAgfSk7XG4gIH07XG5cbiAgdmFyIHdhcm5IeXBoZW5hdGVkU3R5bGVOYW1lID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgICBpZiAod2FybmVkU3R5bGVOYW1lcy5oYXNPd25Qcm9wZXJ0eShuYW1lKSAmJiB3YXJuZWRTdHlsZU5hbWVzW25hbWVdKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgd2FybmVkU3R5bGVOYW1lc1tuYW1lXSA9IHRydWU7XG5cbiAgICBlcnJvcignVW5zdXBwb3J0ZWQgc3R5bGUgcHJvcGVydHkgJXMuIERpZCB5b3UgbWVhbiAlcz8nLCBuYW1lLCAvLyBBcyBBbmRpIFNtaXRoIHN1Z2dlc3RzXG4gICAgLy8gKGh0dHA6Ly93d3cuYW5kaXNtaXRoLmNvbS9ibG9nLzIwMTIvMDIvbW9kZXJuaXpyLXByZWZpeGVkLyksIGFuIGAtbXNgIHByZWZpeFxuICAgIC8vIGlzIGNvbnZlcnRlZCB0byBsb3dlcmNhc2UgYG1zYC5cbiAgICBjYW1lbGl6ZShuYW1lLnJlcGxhY2UobXNQYXR0ZXJuJDEsICdtcy0nKSkpO1xuICB9O1xuXG4gIHZhciB3YXJuQmFkVmVuZG9yZWRTdHlsZU5hbWUgPSBmdW5jdGlvbiAobmFtZSkge1xuICAgIGlmICh3YXJuZWRTdHlsZU5hbWVzLmhhc093blByb3BlcnR5KG5hbWUpICYmIHdhcm5lZFN0eWxlTmFtZXNbbmFtZV0pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB3YXJuZWRTdHlsZU5hbWVzW25hbWVdID0gdHJ1ZTtcblxuICAgIGVycm9yKCdVbnN1cHBvcnRlZCB2ZW5kb3ItcHJlZml4ZWQgc3R5bGUgcHJvcGVydHkgJXMuIERpZCB5b3UgbWVhbiAlcz8nLCBuYW1lLCBuYW1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgbmFtZS5zbGljZSgxKSk7XG4gIH07XG5cbiAgdmFyIHdhcm5TdHlsZVZhbHVlV2l0aFNlbWljb2xvbiA9IGZ1bmN0aW9uIChuYW1lLCB2YWx1ZSkge1xuICAgIGlmICh3YXJuZWRTdHlsZVZhbHVlcy5oYXNPd25Qcm9wZXJ0eSh2YWx1ZSkgJiYgd2FybmVkU3R5bGVWYWx1ZXNbdmFsdWVdKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgd2FybmVkU3R5bGVWYWx1ZXNbdmFsdWVdID0gdHJ1ZTtcblxuICAgIGVycm9yKFwiU3R5bGUgcHJvcGVydHkgdmFsdWVzIHNob3VsZG4ndCBjb250YWluIGEgc2VtaWNvbG9uLiBcIiArICdUcnkgXCIlczogJXNcIiBpbnN0ZWFkLicsIG5hbWUsIHZhbHVlLnJlcGxhY2UoYmFkU3R5bGVWYWx1ZVdpdGhTZW1pY29sb25QYXR0ZXJuLCAnJykpO1xuICB9O1xuXG4gIHZhciB3YXJuU3R5bGVWYWx1ZUlzTmFOID0gZnVuY3Rpb24gKG5hbWUsIHZhbHVlKSB7XG4gICAgaWYgKHdhcm5lZEZvck5hTlZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgd2FybmVkRm9yTmFOVmFsdWUgPSB0cnVlO1xuXG4gICAgZXJyb3IoJ2BOYU5gIGlzIGFuIGludmFsaWQgdmFsdWUgZm9yIHRoZSBgJXNgIGNzcyBzdHlsZSBwcm9wZXJ0eS4nLCBuYW1lKTtcbiAgfTtcblxuICB2YXIgd2FyblN0eWxlVmFsdWVJc0luZmluaXR5ID0gZnVuY3Rpb24gKG5hbWUsIHZhbHVlKSB7XG4gICAgaWYgKHdhcm5lZEZvckluZmluaXR5VmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB3YXJuZWRGb3JJbmZpbml0eVZhbHVlID0gdHJ1ZTtcblxuICAgIGVycm9yKCdgSW5maW5pdHlgIGlzIGFuIGludmFsaWQgdmFsdWUgZm9yIHRoZSBgJXNgIGNzcyBzdHlsZSBwcm9wZXJ0eS4nLCBuYW1lKTtcbiAgfTtcblxuICB3YXJuVmFsaWRTdHlsZSA9IGZ1bmN0aW9uIChuYW1lLCB2YWx1ZSkge1xuICAgIGlmIChuYW1lLmluZGV4T2YoJy0nKSA+IC0xKSB7XG4gICAgICB3YXJuSHlwaGVuYXRlZFN0eWxlTmFtZShuYW1lKTtcbiAgICB9IGVsc2UgaWYgKGJhZFZlbmRvcmVkU3R5bGVOYW1lUGF0dGVybi50ZXN0KG5hbWUpKSB7XG4gICAgICB3YXJuQmFkVmVuZG9yZWRTdHlsZU5hbWUobmFtZSk7XG4gICAgfSBlbHNlIGlmIChiYWRTdHlsZVZhbHVlV2l0aFNlbWljb2xvblBhdHRlcm4udGVzdCh2YWx1ZSkpIHtcbiAgICAgIHdhcm5TdHlsZVZhbHVlV2l0aFNlbWljb2xvbihuYW1lLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIGlmIChpc05hTih2YWx1ZSkpIHtcbiAgICAgICAgd2FyblN0eWxlVmFsdWVJc05hTihuYW1lLCB2YWx1ZSk7XG4gICAgICB9IGVsc2UgaWYgKCFpc0Zpbml0ZSh2YWx1ZSkpIHtcbiAgICAgICAgd2FyblN0eWxlVmFsdWVJc0luZmluaXR5KG5hbWUsIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG59XG5cbnZhciB3YXJuVmFsaWRTdHlsZSQxID0gd2FyblZhbGlkU3R5bGU7XG5cbi8qKlxuICogT3BlcmF0aW9ucyBmb3IgZGVhbGluZyB3aXRoIENTUyBwcm9wZXJ0aWVzLlxuICovXG5cbi8qKlxuICogVGhpcyBjcmVhdGVzIGEgc3RyaW5nIHRoYXQgaXMgZXhwZWN0ZWQgdG8gYmUgZXF1aXZhbGVudCB0byB0aGUgc3R5bGVcbiAqIGF0dHJpYnV0ZSBnZW5lcmF0ZWQgYnkgc2VydmVyLXNpZGUgcmVuZGVyaW5nLiBJdCBieS1wYXNzZXMgd2FybmluZ3MgYW5kXG4gKiBzZWN1cml0eSBjaGVja3Mgc28gaXQncyBub3Qgc2FmZSB0byB1c2UgdGhpcyB2YWx1ZSBmb3IgYW55dGhpbmcgb3RoZXIgdGhhblxuICogY29tcGFyaXNvbi4gSXQgaXMgb25seSB1c2VkIGluIERFViBmb3IgU1NSIHZhbGlkYXRpb24uXG4gKi9cblxuZnVuY3Rpb24gY3JlYXRlRGFuZ2Vyb3VzU3RyaW5nRm9yU3R5bGVzKHN0eWxlcykge1xuICB7XG4gICAgdmFyIHNlcmlhbGl6ZWQgPSAnJztcbiAgICB2YXIgZGVsaW1pdGVyID0gJyc7XG5cbiAgICBmb3IgKHZhciBzdHlsZU5hbWUgaW4gc3R5bGVzKSB7XG4gICAgICBpZiAoIXN0eWxlcy5oYXNPd25Qcm9wZXJ0eShzdHlsZU5hbWUpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICB2YXIgc3R5bGVWYWx1ZSA9IHN0eWxlc1tzdHlsZU5hbWVdO1xuXG4gICAgICBpZiAoc3R5bGVWYWx1ZSAhPSBudWxsKSB7XG4gICAgICAgIHZhciBpc0N1c3RvbVByb3BlcnR5ID0gc3R5bGVOYW1lLmluZGV4T2YoJy0tJykgPT09IDA7XG4gICAgICAgIHNlcmlhbGl6ZWQgKz0gZGVsaW1pdGVyICsgKGlzQ3VzdG9tUHJvcGVydHkgPyBzdHlsZU5hbWUgOiBoeXBoZW5hdGVTdHlsZU5hbWUoc3R5bGVOYW1lKSkgKyAnOic7XG4gICAgICAgIHNlcmlhbGl6ZWQgKz0gZGFuZ2Vyb3VzU3R5bGVWYWx1ZShzdHlsZU5hbWUsIHN0eWxlVmFsdWUsIGlzQ3VzdG9tUHJvcGVydHkpO1xuICAgICAgICBkZWxpbWl0ZXIgPSAnOyc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHNlcmlhbGl6ZWQgfHwgbnVsbDtcbiAgfVxufVxuLyoqXG4gKiBTZXRzIHRoZSB2YWx1ZSBmb3IgbXVsdGlwbGUgc3R5bGVzIG9uIGEgbm9kZS4gIElmIGEgdmFsdWUgaXMgc3BlY2lmaWVkIGFzXG4gKiAnJyAoZW1wdHkgc3RyaW5nKSwgdGhlIGNvcnJlc3BvbmRpbmcgc3R5bGUgcHJvcGVydHkgd2lsbCBiZSB1bnNldC5cbiAqXG4gKiBAcGFyYW0ge0RPTUVsZW1lbnR9IG5vZGVcbiAqIEBwYXJhbSB7b2JqZWN0fSBzdHlsZXNcbiAqL1xuXG5mdW5jdGlvbiBzZXRWYWx1ZUZvclN0eWxlcyhub2RlLCBzdHlsZXMpIHtcbiAgdmFyIHN0eWxlID0gbm9kZS5zdHlsZTtcblxuICBmb3IgKHZhciBzdHlsZU5hbWUgaW4gc3R5bGVzKSB7XG4gICAgaWYgKCFzdHlsZXMuaGFzT3duUHJvcGVydHkoc3R5bGVOYW1lKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgdmFyIGlzQ3VzdG9tUHJvcGVydHkgPSBzdHlsZU5hbWUuaW5kZXhPZignLS0nKSA9PT0gMDtcblxuICAgIHtcbiAgICAgIGlmICghaXNDdXN0b21Qcm9wZXJ0eSkge1xuICAgICAgICB3YXJuVmFsaWRTdHlsZSQxKHN0eWxlTmFtZSwgc3R5bGVzW3N0eWxlTmFtZV0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBzdHlsZVZhbHVlID0gZGFuZ2Vyb3VzU3R5bGVWYWx1ZShzdHlsZU5hbWUsIHN0eWxlc1tzdHlsZU5hbWVdLCBpc0N1c3RvbVByb3BlcnR5KTtcblxuICAgIGlmIChzdHlsZU5hbWUgPT09ICdmbG9hdCcpIHtcbiAgICAgIHN0eWxlTmFtZSA9ICdjc3NGbG9hdCc7XG4gICAgfVxuXG4gICAgaWYgKGlzQ3VzdG9tUHJvcGVydHkpIHtcbiAgICAgIHN0eWxlLnNldFByb3BlcnR5KHN0eWxlTmFtZSwgc3R5bGVWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0eWxlW3N0eWxlTmFtZV0gPSBzdHlsZVZhbHVlO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBpc1ZhbHVlRW1wdHkodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlID09IG51bGwgfHwgdHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicgfHwgdmFsdWUgPT09ICcnO1xufVxuLyoqXG4gKiBHaXZlbiB7Y29sb3I6ICdyZWQnLCBvdmVyZmxvdzogJ2hpZGRlbid9IHJldHVybnMge1xuICogICBjb2xvcjogJ2NvbG9yJyxcbiAqICAgb3ZlcmZsb3dYOiAnb3ZlcmZsb3cnLFxuICogICBvdmVyZmxvd1k6ICdvdmVyZmxvdycsXG4gKiB9LiBUaGlzIGNhbiBiZSByZWFkIGFzIFwidGhlIG92ZXJmbG93WSBwcm9wZXJ0eSB3YXMgc2V0IGJ5IHRoZSBvdmVyZmxvd1xuICogc2hvcnRoYW5kXCIuIFRoYXQgaXMsIHRoZSB2YWx1ZXMgYXJlIHRoZSBwcm9wZXJ0eSB0aGF0IGVhY2ggd2FzIGRlcml2ZWQgZnJvbS5cbiAqL1xuXG5cbmZ1bmN0aW9uIGV4cGFuZFNob3J0aGFuZE1hcChzdHlsZXMpIHtcbiAgdmFyIGV4cGFuZGVkID0ge307XG5cbiAgZm9yICh2YXIga2V5IGluIHN0eWxlcykge1xuICAgIHZhciBsb25naGFuZHMgPSBzaG9ydGhhbmRUb0xvbmdoYW5kW2tleV0gfHwgW2tleV07XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxvbmdoYW5kcy5sZW5ndGg7IGkrKykge1xuICAgICAgZXhwYW5kZWRbbG9uZ2hhbmRzW2ldXSA9IGtleTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZXhwYW5kZWQ7XG59XG4vKipcbiAqIFdoZW4gbWl4aW5nIHNob3J0aGFuZCBhbmQgbG9uZ2hhbmQgcHJvcGVydHkgbmFtZXMsIHdlIHdhcm4gZHVyaW5nIHVwZGF0ZXMgaWZcbiAqIHdlIGV4cGVjdCBhbiBpbmNvcnJlY3QgcmVzdWx0IHRvIG9jY3VyLiBJbiBwYXJ0aWN1bGFyLCB3ZSB3YXJuIGZvcjpcbiAqXG4gKiBVcGRhdGluZyBhIHNob3J0aGFuZCBwcm9wZXJ0eSAobG9uZ2hhbmQgZ2V0cyBvdmVyd3JpdHRlbik6XG4gKiAgIHtmb250OiAnZm9vJywgZm9udFZhcmlhbnQ6ICdiYXInfSAtPiB7Zm9udDogJ2JheicsIGZvbnRWYXJpYW50OiAnYmFyJ31cbiAqICAgYmVjb21lcyAuc3R5bGUuZm9udCA9ICdiYXonXG4gKiBSZW1vdmluZyBhIHNob3J0aGFuZCBwcm9wZXJ0eSAobG9uZ2hhbmQgZ2V0cyBsb3N0IHRvbyk6XG4gKiAgIHtmb250OiAnZm9vJywgZm9udFZhcmlhbnQ6ICdiYXInfSAtPiB7Zm9udFZhcmlhbnQ6ICdiYXInfVxuICogICBiZWNvbWVzIC5zdHlsZS5mb250ID0gJydcbiAqIFJlbW92aW5nIGEgbG9uZ2hhbmQgcHJvcGVydHkgKHNob3VsZCByZXZlcnQgdG8gc2hvcnRoYW5kOyBkb2Vzbid0KTpcbiAqICAge2ZvbnQ6ICdmb28nLCBmb250VmFyaWFudDogJ2Jhcid9IC0+IHtmb250OiAnZm9vJ31cbiAqICAgYmVjb21lcyAuc3R5bGUuZm9udFZhcmlhbnQgPSAnJ1xuICovXG5cblxuZnVuY3Rpb24gdmFsaWRhdGVTaG9ydGhhbmRQcm9wZXJ0eUNvbGxpc2lvbkluRGV2KHN0eWxlVXBkYXRlcywgbmV4dFN0eWxlcykge1xuICB7XG4gICAgaWYgKCFuZXh0U3R5bGVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIGV4cGFuZGVkVXBkYXRlcyA9IGV4cGFuZFNob3J0aGFuZE1hcChzdHlsZVVwZGF0ZXMpO1xuICAgIHZhciBleHBhbmRlZFN0eWxlcyA9IGV4cGFuZFNob3J0aGFuZE1hcChuZXh0U3R5bGVzKTtcbiAgICB2YXIgd2FybmVkQWJvdXQgPSB7fTtcblxuICAgIGZvciAodmFyIGtleSBpbiBleHBhbmRlZFVwZGF0ZXMpIHtcbiAgICAgIHZhciBvcmlnaW5hbEtleSA9IGV4cGFuZGVkVXBkYXRlc1trZXldO1xuICAgICAgdmFyIGNvcnJlY3RPcmlnaW5hbEtleSA9IGV4cGFuZGVkU3R5bGVzW2tleV07XG5cbiAgICAgIGlmIChjb3JyZWN0T3JpZ2luYWxLZXkgJiYgb3JpZ2luYWxLZXkgIT09IGNvcnJlY3RPcmlnaW5hbEtleSkge1xuICAgICAgICB2YXIgd2FybmluZ0tleSA9IG9yaWdpbmFsS2V5ICsgJywnICsgY29ycmVjdE9yaWdpbmFsS2V5O1xuXG4gICAgICAgIGlmICh3YXJuZWRBYm91dFt3YXJuaW5nS2V5XSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgd2FybmVkQWJvdXRbd2FybmluZ0tleV0gPSB0cnVlO1xuXG4gICAgICAgIGVycm9yKCclcyBhIHN0eWxlIHByb3BlcnR5IGR1cmluZyByZXJlbmRlciAoJXMpIHdoZW4gYSAnICsgJ2NvbmZsaWN0aW5nIHByb3BlcnR5IGlzIHNldCAoJXMpIGNhbiBsZWFkIHRvIHN0eWxpbmcgYnVncy4gVG8gJyArIFwiYXZvaWQgdGhpcywgZG9uJ3QgbWl4IHNob3J0aGFuZCBhbmQgbm9uLXNob3J0aGFuZCBwcm9wZXJ0aWVzIFwiICsgJ2ZvciB0aGUgc2FtZSB2YWx1ZTsgaW5zdGVhZCwgcmVwbGFjZSB0aGUgc2hvcnRoYW5kIHdpdGggJyArICdzZXBhcmF0ZSB2YWx1ZXMuJywgaXNWYWx1ZUVtcHR5KHN0eWxlVXBkYXRlc1tvcmlnaW5hbEtleV0pID8gJ1JlbW92aW5nJyA6ICdVcGRhdGluZycsIG9yaWdpbmFsS2V5LCBjb3JyZWN0T3JpZ2luYWxLZXkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBGb3IgSFRNTCwgY2VydGFpbiB0YWdzIHNob3VsZCBvbWl0IHRoZWlyIGNsb3NlIHRhZy4gV2Uga2VlcCBhIGxpc3QgZm9yXG4vLyB0aG9zZSBzcGVjaWFsLWNhc2UgdGFncy5cbnZhciBvbWl0dGVkQ2xvc2VUYWdzID0ge1xuICBhcmVhOiB0cnVlLFxuICBiYXNlOiB0cnVlLFxuICBicjogdHJ1ZSxcbiAgY29sOiB0cnVlLFxuICBlbWJlZDogdHJ1ZSxcbiAgaHI6IHRydWUsXG4gIGltZzogdHJ1ZSxcbiAgaW5wdXQ6IHRydWUsXG4gIGtleWdlbjogdHJ1ZSxcbiAgbGluazogdHJ1ZSxcbiAgbWV0YTogdHJ1ZSxcbiAgcGFyYW06IHRydWUsXG4gIHNvdXJjZTogdHJ1ZSxcbiAgdHJhY2s6IHRydWUsXG4gIHdicjogdHJ1ZSAvLyBOT1RFOiBtZW51aXRlbSdzIGNsb3NlIHRhZyBzaG91bGQgYmUgb21pdHRlZCwgYnV0IHRoYXQgY2F1c2VzIHByb2JsZW1zLlxuXG59O1xuXG4vLyBgb21pdHRlZENsb3NlVGFnc2AgZXhjZXB0IHRoYXQgYG1lbnVpdGVtYCBzaG91bGQgc3RpbGwgaGF2ZSBpdHMgY2xvc2luZyB0YWcuXG5cbnZhciB2b2lkRWxlbWVudFRhZ3MgPSBfYXNzaWduKHtcbiAgbWVudWl0ZW06IHRydWVcbn0sIG9taXR0ZWRDbG9zZVRhZ3MpO1xuXG52YXIgSFRNTCA9ICdfX2h0bWwnO1xuXG5mdW5jdGlvbiBhc3NlcnRWYWxpZFByb3BzKHRhZywgcHJvcHMpIHtcbiAgaWYgKCFwcm9wcykge1xuICAgIHJldHVybjtcbiAgfSAvLyBOb3RlIHRoZSB1c2Ugb2YgYD09YCB3aGljaCBjaGVja3MgZm9yIG51bGwgb3IgdW5kZWZpbmVkLlxuXG5cbiAgaWYgKHZvaWRFbGVtZW50VGFnc1t0YWddKSB7XG4gICAgaWYgKCEocHJvcHMuY2hpbGRyZW4gPT0gbnVsbCAmJiBwcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTCA9PSBudWxsKSkge1xuICAgICAge1xuICAgICAgICB0aHJvdyBFcnJvciggdGFnICsgXCIgaXMgYSB2b2lkIGVsZW1lbnQgdGFnIGFuZCBtdXN0IG5laXRoZXIgaGF2ZSBgY2hpbGRyZW5gIG5vciB1c2UgYGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MYC5cIiApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmIChwcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTCAhPSBudWxsKSB7XG4gICAgaWYgKCEocHJvcHMuY2hpbGRyZW4gPT0gbnVsbCkpIHtcbiAgICAgIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoIFwiQ2FuIG9ubHkgc2V0IG9uZSBvZiBgY2hpbGRyZW5gIG9yIGBwcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTGAuXCIgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoISh0eXBlb2YgcHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgPT09ICdvYmplY3QnICYmIEhUTUwgaW4gcHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwpKSB7XG4gICAgICB7XG4gICAgICAgIHRocm93IEVycm9yKCBcImBwcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTGAgbXVzdCBiZSBpbiB0aGUgZm9ybSBge19faHRtbDogLi4ufWAuIFBsZWFzZSB2aXNpdCBodHRwczovL3JlYWN0anMub3JnL2xpbmsvZGFuZ2Vyb3VzbHktc2V0LWlubmVyLWh0bWwgZm9yIG1vcmUgaW5mb3JtYXRpb24uXCIgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB7XG4gICAgaWYgKCFwcm9wcy5zdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmcgJiYgcHJvcHMuY29udGVudEVkaXRhYmxlICYmIHByb3BzLmNoaWxkcmVuICE9IG51bGwpIHtcbiAgICAgIGVycm9yKCdBIGNvbXBvbmVudCBpcyBgY29udGVudEVkaXRhYmxlYCBhbmQgY29udGFpbnMgYGNoaWxkcmVuYCBtYW5hZ2VkIGJ5ICcgKyAnUmVhY3QuIEl0IGlzIG5vdyB5b3VyIHJlc3BvbnNpYmlsaXR5IHRvIGd1YXJhbnRlZSB0aGF0IG5vbmUgb2YgJyArICd0aG9zZSBub2RlcyBhcmUgdW5leHBlY3RlZGx5IG1vZGlmaWVkIG9yIGR1cGxpY2F0ZWQuIFRoaXMgaXMgJyArICdwcm9iYWJseSBub3QgaW50ZW50aW9uYWwuJyk7XG4gICAgfVxuICB9XG5cbiAgaWYgKCEocHJvcHMuc3R5bGUgPT0gbnVsbCB8fCB0eXBlb2YgcHJvcHMuc3R5bGUgPT09ICdvYmplY3QnKSkge1xuICAgIHtcbiAgICAgIHRocm93IEVycm9yKCBcIlRoZSBgc3R5bGVgIHByb3AgZXhwZWN0cyBhIG1hcHBpbmcgZnJvbSBzdHlsZSBwcm9wZXJ0aWVzIHRvIHZhbHVlcywgbm90IGEgc3RyaW5nLiBGb3IgZXhhbXBsZSwgc3R5bGU9e3ttYXJnaW5SaWdodDogc3BhY2luZyArICdlbSd9fSB3aGVuIHVzaW5nIEpTWC5cIiApO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBpc0N1c3RvbUNvbXBvbmVudCh0YWdOYW1lLCBwcm9wcykge1xuICBpZiAodGFnTmFtZS5pbmRleE9mKCctJykgPT09IC0xKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBwcm9wcy5pcyA9PT0gJ3N0cmluZyc7XG4gIH1cblxuICBzd2l0Y2ggKHRhZ05hbWUpIHtcbiAgICAvLyBUaGVzZSBhcmUgcmVzZXJ2ZWQgU1ZHIGFuZCBNYXRoTUwgZWxlbWVudHMuXG4gICAgLy8gV2UgZG9uJ3QgbWluZCB0aGlzIGxpc3QgdG9vIG11Y2ggYmVjYXVzZSB3ZSBleHBlY3QgaXQgdG8gbmV2ZXIgZ3Jvdy5cbiAgICAvLyBUaGUgYWx0ZXJuYXRpdmUgaXMgdG8gdHJhY2sgdGhlIG5hbWVzcGFjZSBpbiBhIGZldyBwbGFjZXMgd2hpY2ggaXMgY29udm9sdXRlZC5cbiAgICAvLyBodHRwczovL3czYy5naXRodWIuaW8vd2ViY29tcG9uZW50cy9zcGVjL2N1c3RvbS8jY3VzdG9tLWVsZW1lbnRzLWNvcmUtY29uY2VwdHNcbiAgICBjYXNlICdhbm5vdGF0aW9uLXhtbCc6XG4gICAgY2FzZSAnY29sb3ItcHJvZmlsZSc6XG4gICAgY2FzZSAnZm9udC1mYWNlJzpcbiAgICBjYXNlICdmb250LWZhY2Utc3JjJzpcbiAgICBjYXNlICdmb250LWZhY2UtdXJpJzpcbiAgICBjYXNlICdmb250LWZhY2UtZm9ybWF0JzpcbiAgICBjYXNlICdmb250LWZhY2UtbmFtZSc6XG4gICAgY2FzZSAnbWlzc2luZy1nbHlwaCc6XG4gICAgICByZXR1cm4gZmFsc2U7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cblxuLy8gV2hlbiBhZGRpbmcgYXR0cmlidXRlcyB0byB0aGUgSFRNTCBvciBTVkcgYWxsb3dlZCBhdHRyaWJ1dGUgbGlzdCwgYmUgc3VyZSB0b1xuLy8gYWxzbyBhZGQgdGhlbSB0byB0aGlzIG1vZHVsZSB0byBlbnN1cmUgY2FzaW5nIGFuZCBpbmNvcnJlY3QgbmFtZVxuLy8gd2FybmluZ3MuXG52YXIgcG9zc2libGVTdGFuZGFyZE5hbWVzID0ge1xuICAvLyBIVE1MXG4gIGFjY2VwdDogJ2FjY2VwdCcsXG4gIGFjY2VwdGNoYXJzZXQ6ICdhY2NlcHRDaGFyc2V0JyxcbiAgJ2FjY2VwdC1jaGFyc2V0JzogJ2FjY2VwdENoYXJzZXQnLFxuICBhY2Nlc3NrZXk6ICdhY2Nlc3NLZXknLFxuICBhY3Rpb246ICdhY3Rpb24nLFxuICBhbGxvd2Z1bGxzY3JlZW46ICdhbGxvd0Z1bGxTY3JlZW4nLFxuICBhbHQ6ICdhbHQnLFxuICBhczogJ2FzJyxcbiAgYXN5bmM6ICdhc3luYycsXG4gIGF1dG9jYXBpdGFsaXplOiAnYXV0b0NhcGl0YWxpemUnLFxuICBhdXRvY29tcGxldGU6ICdhdXRvQ29tcGxldGUnLFxuICBhdXRvY29ycmVjdDogJ2F1dG9Db3JyZWN0JyxcbiAgYXV0b2ZvY3VzOiAnYXV0b0ZvY3VzJyxcbiAgYXV0b3BsYXk6ICdhdXRvUGxheScsXG4gIGF1dG9zYXZlOiAnYXV0b1NhdmUnLFxuICBjYXB0dXJlOiAnY2FwdHVyZScsXG4gIGNlbGxwYWRkaW5nOiAnY2VsbFBhZGRpbmcnLFxuICBjZWxsc3BhY2luZzogJ2NlbGxTcGFjaW5nJyxcbiAgY2hhbGxlbmdlOiAnY2hhbGxlbmdlJyxcbiAgY2hhcnNldDogJ2NoYXJTZXQnLFxuICBjaGVja2VkOiAnY2hlY2tlZCcsXG4gIGNoaWxkcmVuOiAnY2hpbGRyZW4nLFxuICBjaXRlOiAnY2l0ZScsXG4gIGNsYXNzOiAnY2xhc3NOYW1lJyxcbiAgY2xhc3NpZDogJ2NsYXNzSUQnLFxuICBjbGFzc25hbWU6ICdjbGFzc05hbWUnLFxuICBjb2xzOiAnY29scycsXG4gIGNvbHNwYW46ICdjb2xTcGFuJyxcbiAgY29udGVudDogJ2NvbnRlbnQnLFxuICBjb250ZW50ZWRpdGFibGU6ICdjb250ZW50RWRpdGFibGUnLFxuICBjb250ZXh0bWVudTogJ2NvbnRleHRNZW51JyxcbiAgY29udHJvbHM6ICdjb250cm9scycsXG4gIGNvbnRyb2xzbGlzdDogJ2NvbnRyb2xzTGlzdCcsXG4gIGNvb3JkczogJ2Nvb3JkcycsXG4gIGNyb3Nzb3JpZ2luOiAnY3Jvc3NPcmlnaW4nLFxuICBkYW5nZXJvdXNseXNldGlubmVyaHRtbDogJ2Rhbmdlcm91c2x5U2V0SW5uZXJIVE1MJyxcbiAgZGF0YTogJ2RhdGEnLFxuICBkYXRldGltZTogJ2RhdGVUaW1lJyxcbiAgZGVmYXVsdDogJ2RlZmF1bHQnLFxuICBkZWZhdWx0Y2hlY2tlZDogJ2RlZmF1bHRDaGVja2VkJyxcbiAgZGVmYXVsdHZhbHVlOiAnZGVmYXVsdFZhbHVlJyxcbiAgZGVmZXI6ICdkZWZlcicsXG4gIGRpcjogJ2RpcicsXG4gIGRpc2FibGVkOiAnZGlzYWJsZWQnLFxuICBkaXNhYmxlcGljdHVyZWlucGljdHVyZTogJ2Rpc2FibGVQaWN0dXJlSW5QaWN0dXJlJyxcbiAgZGlzYWJsZXJlbW90ZXBsYXliYWNrOiAnZGlzYWJsZVJlbW90ZVBsYXliYWNrJyxcbiAgZG93bmxvYWQ6ICdkb3dubG9hZCcsXG4gIGRyYWdnYWJsZTogJ2RyYWdnYWJsZScsXG4gIGVuY3R5cGU6ICdlbmNUeXBlJyxcbiAgZW50ZXJrZXloaW50OiAnZW50ZXJLZXlIaW50JyxcbiAgZm9yOiAnaHRtbEZvcicsXG4gIGZvcm06ICdmb3JtJyxcbiAgZm9ybW1ldGhvZDogJ2Zvcm1NZXRob2QnLFxuICBmb3JtYWN0aW9uOiAnZm9ybUFjdGlvbicsXG4gIGZvcm1lbmN0eXBlOiAnZm9ybUVuY1R5cGUnLFxuICBmb3Jtbm92YWxpZGF0ZTogJ2Zvcm1Ob1ZhbGlkYXRlJyxcbiAgZm9ybXRhcmdldDogJ2Zvcm1UYXJnZXQnLFxuICBmcmFtZWJvcmRlcjogJ2ZyYW1lQm9yZGVyJyxcbiAgaGVhZGVyczogJ2hlYWRlcnMnLFxuICBoZWlnaHQ6ICdoZWlnaHQnLFxuICBoaWRkZW46ICdoaWRkZW4nLFxuICBoaWdoOiAnaGlnaCcsXG4gIGhyZWY6ICdocmVmJyxcbiAgaHJlZmxhbmc6ICdocmVmTGFuZycsXG4gIGh0bWxmb3I6ICdodG1sRm9yJyxcbiAgaHR0cGVxdWl2OiAnaHR0cEVxdWl2JyxcbiAgJ2h0dHAtZXF1aXYnOiAnaHR0cEVxdWl2JyxcbiAgaWNvbjogJ2ljb24nLFxuICBpZDogJ2lkJyxcbiAgaW5uZXJodG1sOiAnaW5uZXJIVE1MJyxcbiAgaW5wdXRtb2RlOiAnaW5wdXRNb2RlJyxcbiAgaW50ZWdyaXR5OiAnaW50ZWdyaXR5JyxcbiAgaXM6ICdpcycsXG4gIGl0ZW1pZDogJ2l0ZW1JRCcsXG4gIGl0ZW1wcm9wOiAnaXRlbVByb3AnLFxuICBpdGVtcmVmOiAnaXRlbVJlZicsXG4gIGl0ZW1zY29wZTogJ2l0ZW1TY29wZScsXG4gIGl0ZW10eXBlOiAnaXRlbVR5cGUnLFxuICBrZXlwYXJhbXM6ICdrZXlQYXJhbXMnLFxuICBrZXl0eXBlOiAna2V5VHlwZScsXG4gIGtpbmQ6ICdraW5kJyxcbiAgbGFiZWw6ICdsYWJlbCcsXG4gIGxhbmc6ICdsYW5nJyxcbiAgbGlzdDogJ2xpc3QnLFxuICBsb29wOiAnbG9vcCcsXG4gIGxvdzogJ2xvdycsXG4gIG1hbmlmZXN0OiAnbWFuaWZlc3QnLFxuICBtYXJnaW53aWR0aDogJ21hcmdpbldpZHRoJyxcbiAgbWFyZ2luaGVpZ2h0OiAnbWFyZ2luSGVpZ2h0JyxcbiAgbWF4OiAnbWF4JyxcbiAgbWF4bGVuZ3RoOiAnbWF4TGVuZ3RoJyxcbiAgbWVkaWE6ICdtZWRpYScsXG4gIG1lZGlhZ3JvdXA6ICdtZWRpYUdyb3VwJyxcbiAgbWV0aG9kOiAnbWV0aG9kJyxcbiAgbWluOiAnbWluJyxcbiAgbWlubGVuZ3RoOiAnbWluTGVuZ3RoJyxcbiAgbXVsdGlwbGU6ICdtdWx0aXBsZScsXG4gIG11dGVkOiAnbXV0ZWQnLFxuICBuYW1lOiAnbmFtZScsXG4gIG5vbW9kdWxlOiAnbm9Nb2R1bGUnLFxuICBub25jZTogJ25vbmNlJyxcbiAgbm92YWxpZGF0ZTogJ25vVmFsaWRhdGUnLFxuICBvcGVuOiAnb3BlbicsXG4gIG9wdGltdW06ICdvcHRpbXVtJyxcbiAgcGF0dGVybjogJ3BhdHRlcm4nLFxuICBwbGFjZWhvbGRlcjogJ3BsYWNlaG9sZGVyJyxcbiAgcGxheXNpbmxpbmU6ICdwbGF5c0lubGluZScsXG4gIHBvc3RlcjogJ3Bvc3RlcicsXG4gIHByZWxvYWQ6ICdwcmVsb2FkJyxcbiAgcHJvZmlsZTogJ3Byb2ZpbGUnLFxuICByYWRpb2dyb3VwOiAncmFkaW9Hcm91cCcsXG4gIHJlYWRvbmx5OiAncmVhZE9ubHknLFxuICByZWZlcnJlcnBvbGljeTogJ3JlZmVycmVyUG9saWN5JyxcbiAgcmVsOiAncmVsJyxcbiAgcmVxdWlyZWQ6ICdyZXF1aXJlZCcsXG4gIHJldmVyc2VkOiAncmV2ZXJzZWQnLFxuICByb2xlOiAncm9sZScsXG4gIHJvd3M6ICdyb3dzJyxcbiAgcm93c3BhbjogJ3Jvd1NwYW4nLFxuICBzYW5kYm94OiAnc2FuZGJveCcsXG4gIHNjb3BlOiAnc2NvcGUnLFxuICBzY29wZWQ6ICdzY29wZWQnLFxuICBzY3JvbGxpbmc6ICdzY3JvbGxpbmcnLFxuICBzZWFtbGVzczogJ3NlYW1sZXNzJyxcbiAgc2VsZWN0ZWQ6ICdzZWxlY3RlZCcsXG4gIHNoYXBlOiAnc2hhcGUnLFxuICBzaXplOiAnc2l6ZScsXG4gIHNpemVzOiAnc2l6ZXMnLFxuICBzcGFuOiAnc3BhbicsXG4gIHNwZWxsY2hlY2s6ICdzcGVsbENoZWNrJyxcbiAgc3JjOiAnc3JjJyxcbiAgc3JjZG9jOiAnc3JjRG9jJyxcbiAgc3JjbGFuZzogJ3NyY0xhbmcnLFxuICBzcmNzZXQ6ICdzcmNTZXQnLFxuICBzdGFydDogJ3N0YXJ0JyxcbiAgc3RlcDogJ3N0ZXAnLFxuICBzdHlsZTogJ3N0eWxlJyxcbiAgc3VtbWFyeTogJ3N1bW1hcnknLFxuICB0YWJpbmRleDogJ3RhYkluZGV4JyxcbiAgdGFyZ2V0OiAndGFyZ2V0JyxcbiAgdGl0bGU6ICd0aXRsZScsXG4gIHR5cGU6ICd0eXBlJyxcbiAgdXNlbWFwOiAndXNlTWFwJyxcbiAgdmFsdWU6ICd2YWx1ZScsXG4gIHdpZHRoOiAnd2lkdGgnLFxuICB3bW9kZTogJ3dtb2RlJyxcbiAgd3JhcDogJ3dyYXAnLFxuICAvLyBTVkdcbiAgYWJvdXQ6ICdhYm91dCcsXG4gIGFjY2VudGhlaWdodDogJ2FjY2VudEhlaWdodCcsXG4gICdhY2NlbnQtaGVpZ2h0JzogJ2FjY2VudEhlaWdodCcsXG4gIGFjY3VtdWxhdGU6ICdhY2N1bXVsYXRlJyxcbiAgYWRkaXRpdmU6ICdhZGRpdGl2ZScsXG4gIGFsaWdubWVudGJhc2VsaW5lOiAnYWxpZ25tZW50QmFzZWxpbmUnLFxuICAnYWxpZ25tZW50LWJhc2VsaW5lJzogJ2FsaWdubWVudEJhc2VsaW5lJyxcbiAgYWxsb3dyZW9yZGVyOiAnYWxsb3dSZW9yZGVyJyxcbiAgYWxwaGFiZXRpYzogJ2FscGhhYmV0aWMnLFxuICBhbXBsaXR1ZGU6ICdhbXBsaXR1ZGUnLFxuICBhcmFiaWNmb3JtOiAnYXJhYmljRm9ybScsXG4gICdhcmFiaWMtZm9ybSc6ICdhcmFiaWNGb3JtJyxcbiAgYXNjZW50OiAnYXNjZW50JyxcbiAgYXR0cmlidXRlbmFtZTogJ2F0dHJpYnV0ZU5hbWUnLFxuICBhdHRyaWJ1dGV0eXBlOiAnYXR0cmlidXRlVHlwZScsXG4gIGF1dG9yZXZlcnNlOiAnYXV0b1JldmVyc2UnLFxuICBhemltdXRoOiAnYXppbXV0aCcsXG4gIGJhc2VmcmVxdWVuY3k6ICdiYXNlRnJlcXVlbmN5JyxcbiAgYmFzZWxpbmVzaGlmdDogJ2Jhc2VsaW5lU2hpZnQnLFxuICAnYmFzZWxpbmUtc2hpZnQnOiAnYmFzZWxpbmVTaGlmdCcsXG4gIGJhc2Vwcm9maWxlOiAnYmFzZVByb2ZpbGUnLFxuICBiYm94OiAnYmJveCcsXG4gIGJlZ2luOiAnYmVnaW4nLFxuICBiaWFzOiAnYmlhcycsXG4gIGJ5OiAnYnknLFxuICBjYWxjbW9kZTogJ2NhbGNNb2RlJyxcbiAgY2FwaGVpZ2h0OiAnY2FwSGVpZ2h0JyxcbiAgJ2NhcC1oZWlnaHQnOiAnY2FwSGVpZ2h0JyxcbiAgY2xpcDogJ2NsaXAnLFxuICBjbGlwcGF0aDogJ2NsaXBQYXRoJyxcbiAgJ2NsaXAtcGF0aCc6ICdjbGlwUGF0aCcsXG4gIGNsaXBwYXRodW5pdHM6ICdjbGlwUGF0aFVuaXRzJyxcbiAgY2xpcHJ1bGU6ICdjbGlwUnVsZScsXG4gICdjbGlwLXJ1bGUnOiAnY2xpcFJ1bGUnLFxuICBjb2xvcjogJ2NvbG9yJyxcbiAgY29sb3JpbnRlcnBvbGF0aW9uOiAnY29sb3JJbnRlcnBvbGF0aW9uJyxcbiAgJ2NvbG9yLWludGVycG9sYXRpb24nOiAnY29sb3JJbnRlcnBvbGF0aW9uJyxcbiAgY29sb3JpbnRlcnBvbGF0aW9uZmlsdGVyczogJ2NvbG9ySW50ZXJwb2xhdGlvbkZpbHRlcnMnLFxuICAnY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzJzogJ2NvbG9ySW50ZXJwb2xhdGlvbkZpbHRlcnMnLFxuICBjb2xvcnByb2ZpbGU6ICdjb2xvclByb2ZpbGUnLFxuICAnY29sb3ItcHJvZmlsZSc6ICdjb2xvclByb2ZpbGUnLFxuICBjb2xvcnJlbmRlcmluZzogJ2NvbG9yUmVuZGVyaW5nJyxcbiAgJ2NvbG9yLXJlbmRlcmluZyc6ICdjb2xvclJlbmRlcmluZycsXG4gIGNvbnRlbnRzY3JpcHR0eXBlOiAnY29udGVudFNjcmlwdFR5cGUnLFxuICBjb250ZW50c3R5bGV0eXBlOiAnY29udGVudFN0eWxlVHlwZScsXG4gIGN1cnNvcjogJ2N1cnNvcicsXG4gIGN4OiAnY3gnLFxuICBjeTogJ2N5JyxcbiAgZDogJ2QnLFxuICBkYXRhdHlwZTogJ2RhdGF0eXBlJyxcbiAgZGVjZWxlcmF0ZTogJ2RlY2VsZXJhdGUnLFxuICBkZXNjZW50OiAnZGVzY2VudCcsXG4gIGRpZmZ1c2Vjb25zdGFudDogJ2RpZmZ1c2VDb25zdGFudCcsXG4gIGRpcmVjdGlvbjogJ2RpcmVjdGlvbicsXG4gIGRpc3BsYXk6ICdkaXNwbGF5JyxcbiAgZGl2aXNvcjogJ2Rpdmlzb3InLFxuICBkb21pbmFudGJhc2VsaW5lOiAnZG9taW5hbnRCYXNlbGluZScsXG4gICdkb21pbmFudC1iYXNlbGluZSc6ICdkb21pbmFudEJhc2VsaW5lJyxcbiAgZHVyOiAnZHVyJyxcbiAgZHg6ICdkeCcsXG4gIGR5OiAnZHknLFxuICBlZGdlbW9kZTogJ2VkZ2VNb2RlJyxcbiAgZWxldmF0aW9uOiAnZWxldmF0aW9uJyxcbiAgZW5hYmxlYmFja2dyb3VuZDogJ2VuYWJsZUJhY2tncm91bmQnLFxuICAnZW5hYmxlLWJhY2tncm91bmQnOiAnZW5hYmxlQmFja2dyb3VuZCcsXG4gIGVuZDogJ2VuZCcsXG4gIGV4cG9uZW50OiAnZXhwb25lbnQnLFxuICBleHRlcm5hbHJlc291cmNlc3JlcXVpcmVkOiAnZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCcsXG4gIGZpbGw6ICdmaWxsJyxcbiAgZmlsbG9wYWNpdHk6ICdmaWxsT3BhY2l0eScsXG4gICdmaWxsLW9wYWNpdHknOiAnZmlsbE9wYWNpdHknLFxuICBmaWxscnVsZTogJ2ZpbGxSdWxlJyxcbiAgJ2ZpbGwtcnVsZSc6ICdmaWxsUnVsZScsXG4gIGZpbHRlcjogJ2ZpbHRlcicsXG4gIGZpbHRlcnJlczogJ2ZpbHRlclJlcycsXG4gIGZpbHRlcnVuaXRzOiAnZmlsdGVyVW5pdHMnLFxuICBmbG9vZG9wYWNpdHk6ICdmbG9vZE9wYWNpdHknLFxuICAnZmxvb2Qtb3BhY2l0eSc6ICdmbG9vZE9wYWNpdHknLFxuICBmbG9vZGNvbG9yOiAnZmxvb2RDb2xvcicsXG4gICdmbG9vZC1jb2xvcic6ICdmbG9vZENvbG9yJyxcbiAgZm9jdXNhYmxlOiAnZm9jdXNhYmxlJyxcbiAgZm9udGZhbWlseTogJ2ZvbnRGYW1pbHknLFxuICAnZm9udC1mYW1pbHknOiAnZm9udEZhbWlseScsXG4gIGZvbnRzaXplOiAnZm9udFNpemUnLFxuICAnZm9udC1zaXplJzogJ2ZvbnRTaXplJyxcbiAgZm9udHNpemVhZGp1c3Q6ICdmb250U2l6ZUFkanVzdCcsXG4gICdmb250LXNpemUtYWRqdXN0JzogJ2ZvbnRTaXplQWRqdXN0JyxcbiAgZm9udHN0cmV0Y2g6ICdmb250U3RyZXRjaCcsXG4gICdmb250LXN0cmV0Y2gnOiAnZm9udFN0cmV0Y2gnLFxuICBmb250c3R5bGU6ICdmb250U3R5bGUnLFxuICAnZm9udC1zdHlsZSc6ICdmb250U3R5bGUnLFxuICBmb250dmFyaWFudDogJ2ZvbnRWYXJpYW50JyxcbiAgJ2ZvbnQtdmFyaWFudCc6ICdmb250VmFyaWFudCcsXG4gIGZvbnR3ZWlnaHQ6ICdmb250V2VpZ2h0JyxcbiAgJ2ZvbnQtd2VpZ2h0JzogJ2ZvbnRXZWlnaHQnLFxuICBmb3JtYXQ6ICdmb3JtYXQnLFxuICBmcm9tOiAnZnJvbScsXG4gIGZ4OiAnZngnLFxuICBmeTogJ2Z5JyxcbiAgZzE6ICdnMScsXG4gIGcyOiAnZzInLFxuICBnbHlwaG5hbWU6ICdnbHlwaE5hbWUnLFxuICAnZ2x5cGgtbmFtZSc6ICdnbHlwaE5hbWUnLFxuICBnbHlwaG9yaWVudGF0aW9uaG9yaXpvbnRhbDogJ2dseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsJyxcbiAgJ2dseXBoLW9yaWVudGF0aW9uLWhvcml6b250YWwnOiAnZ2x5cGhPcmllbnRhdGlvbkhvcml6b250YWwnLFxuICBnbHlwaG9yaWVudGF0aW9udmVydGljYWw6ICdnbHlwaE9yaWVudGF0aW9uVmVydGljYWwnLFxuICAnZ2x5cGgtb3JpZW50YXRpb24tdmVydGljYWwnOiAnZ2x5cGhPcmllbnRhdGlvblZlcnRpY2FsJyxcbiAgZ2x5cGhyZWY6ICdnbHlwaFJlZicsXG4gIGdyYWRpZW50dHJhbnNmb3JtOiAnZ3JhZGllbnRUcmFuc2Zvcm0nLFxuICBncmFkaWVudHVuaXRzOiAnZ3JhZGllbnRVbml0cycsXG4gIGhhbmdpbmc6ICdoYW5naW5nJyxcbiAgaG9yaXphZHZ4OiAnaG9yaXpBZHZYJyxcbiAgJ2hvcml6LWFkdi14JzogJ2hvcml6QWR2WCcsXG4gIGhvcml6b3JpZ2lueDogJ2hvcml6T3JpZ2luWCcsXG4gICdob3Jpei1vcmlnaW4teCc6ICdob3Jpek9yaWdpblgnLFxuICBpZGVvZ3JhcGhpYzogJ2lkZW9ncmFwaGljJyxcbiAgaW1hZ2VyZW5kZXJpbmc6ICdpbWFnZVJlbmRlcmluZycsXG4gICdpbWFnZS1yZW5kZXJpbmcnOiAnaW1hZ2VSZW5kZXJpbmcnLFxuICBpbjI6ICdpbjInLFxuICBpbjogJ2luJyxcbiAgaW5saXN0OiAnaW5saXN0JyxcbiAgaW50ZXJjZXB0OiAnaW50ZXJjZXB0JyxcbiAgazE6ICdrMScsXG4gIGsyOiAnazInLFxuICBrMzogJ2szJyxcbiAgazQ6ICdrNCcsXG4gIGs6ICdrJyxcbiAga2VybmVsbWF0cml4OiAna2VybmVsTWF0cml4JyxcbiAga2VybmVsdW5pdGxlbmd0aDogJ2tlcm5lbFVuaXRMZW5ndGgnLFxuICBrZXJuaW5nOiAna2VybmluZycsXG4gIGtleXBvaW50czogJ2tleVBvaW50cycsXG4gIGtleXNwbGluZXM6ICdrZXlTcGxpbmVzJyxcbiAga2V5dGltZXM6ICdrZXlUaW1lcycsXG4gIGxlbmd0aGFkanVzdDogJ2xlbmd0aEFkanVzdCcsXG4gIGxldHRlcnNwYWNpbmc6ICdsZXR0ZXJTcGFjaW5nJyxcbiAgJ2xldHRlci1zcGFjaW5nJzogJ2xldHRlclNwYWNpbmcnLFxuICBsaWdodGluZ2NvbG9yOiAnbGlnaHRpbmdDb2xvcicsXG4gICdsaWdodGluZy1jb2xvcic6ICdsaWdodGluZ0NvbG9yJyxcbiAgbGltaXRpbmdjb25lYW5nbGU6ICdsaW1pdGluZ0NvbmVBbmdsZScsXG4gIGxvY2FsOiAnbG9jYWwnLFxuICBtYXJrZXJlbmQ6ICdtYXJrZXJFbmQnLFxuICAnbWFya2VyLWVuZCc6ICdtYXJrZXJFbmQnLFxuICBtYXJrZXJoZWlnaHQ6ICdtYXJrZXJIZWlnaHQnLFxuICBtYXJrZXJtaWQ6ICdtYXJrZXJNaWQnLFxuICAnbWFya2VyLW1pZCc6ICdtYXJrZXJNaWQnLFxuICBtYXJrZXJzdGFydDogJ21hcmtlclN0YXJ0JyxcbiAgJ21hcmtlci1zdGFydCc6ICdtYXJrZXJTdGFydCcsXG4gIG1hcmtlcnVuaXRzOiAnbWFya2VyVW5pdHMnLFxuICBtYXJrZXJ3aWR0aDogJ21hcmtlcldpZHRoJyxcbiAgbWFzazogJ21hc2snLFxuICBtYXNrY29udGVudHVuaXRzOiAnbWFza0NvbnRlbnRVbml0cycsXG4gIG1hc2t1bml0czogJ21hc2tVbml0cycsXG4gIG1hdGhlbWF0aWNhbDogJ21hdGhlbWF0aWNhbCcsXG4gIG1vZGU6ICdtb2RlJyxcbiAgbnVtb2N0YXZlczogJ251bU9jdGF2ZXMnLFxuICBvZmZzZXQ6ICdvZmZzZXQnLFxuICBvcGFjaXR5OiAnb3BhY2l0eScsXG4gIG9wZXJhdG9yOiAnb3BlcmF0b3InLFxuICBvcmRlcjogJ29yZGVyJyxcbiAgb3JpZW50OiAnb3JpZW50JyxcbiAgb3JpZW50YXRpb246ICdvcmllbnRhdGlvbicsXG4gIG9yaWdpbjogJ29yaWdpbicsXG4gIG92ZXJmbG93OiAnb3ZlcmZsb3cnLFxuICBvdmVybGluZXBvc2l0aW9uOiAnb3ZlcmxpbmVQb3NpdGlvbicsXG4gICdvdmVybGluZS1wb3NpdGlvbic6ICdvdmVybGluZVBvc2l0aW9uJyxcbiAgb3ZlcmxpbmV0aGlja25lc3M6ICdvdmVybGluZVRoaWNrbmVzcycsXG4gICdvdmVybGluZS10aGlja25lc3MnOiAnb3ZlcmxpbmVUaGlja25lc3MnLFxuICBwYWludG9yZGVyOiAncGFpbnRPcmRlcicsXG4gICdwYWludC1vcmRlcic6ICdwYWludE9yZGVyJyxcbiAgcGFub3NlMTogJ3Bhbm9zZTEnLFxuICAncGFub3NlLTEnOiAncGFub3NlMScsXG4gIHBhdGhsZW5ndGg6ICdwYXRoTGVuZ3RoJyxcbiAgcGF0dGVybmNvbnRlbnR1bml0czogJ3BhdHRlcm5Db250ZW50VW5pdHMnLFxuICBwYXR0ZXJudHJhbnNmb3JtOiAncGF0dGVyblRyYW5zZm9ybScsXG4gIHBhdHRlcm51bml0czogJ3BhdHRlcm5Vbml0cycsXG4gIHBvaW50ZXJldmVudHM6ICdwb2ludGVyRXZlbnRzJyxcbiAgJ3BvaW50ZXItZXZlbnRzJzogJ3BvaW50ZXJFdmVudHMnLFxuICBwb2ludHM6ICdwb2ludHMnLFxuICBwb2ludHNhdHg6ICdwb2ludHNBdFgnLFxuICBwb2ludHNhdHk6ICdwb2ludHNBdFknLFxuICBwb2ludHNhdHo6ICdwb2ludHNBdFonLFxuICBwcmVmaXg6ICdwcmVmaXgnLFxuICBwcmVzZXJ2ZWFscGhhOiAncHJlc2VydmVBbHBoYScsXG4gIHByZXNlcnZlYXNwZWN0cmF0aW86ICdwcmVzZXJ2ZUFzcGVjdFJhdGlvJyxcbiAgcHJpbWl0aXZldW5pdHM6ICdwcmltaXRpdmVVbml0cycsXG4gIHByb3BlcnR5OiAncHJvcGVydHknLFxuICByOiAncicsXG4gIHJhZGl1czogJ3JhZGl1cycsXG4gIHJlZng6ICdyZWZYJyxcbiAgcmVmeTogJ3JlZlknLFxuICByZW5kZXJpbmdpbnRlbnQ6ICdyZW5kZXJpbmdJbnRlbnQnLFxuICAncmVuZGVyaW5nLWludGVudCc6ICdyZW5kZXJpbmdJbnRlbnQnLFxuICByZXBlYXRjb3VudDogJ3JlcGVhdENvdW50JyxcbiAgcmVwZWF0ZHVyOiAncmVwZWF0RHVyJyxcbiAgcmVxdWlyZWRleHRlbnNpb25zOiAncmVxdWlyZWRFeHRlbnNpb25zJyxcbiAgcmVxdWlyZWRmZWF0dXJlczogJ3JlcXVpcmVkRmVhdHVyZXMnLFxuICByZXNvdXJjZTogJ3Jlc291cmNlJyxcbiAgcmVzdGFydDogJ3Jlc3RhcnQnLFxuICByZXN1bHQ6ICdyZXN1bHQnLFxuICByZXN1bHRzOiAncmVzdWx0cycsXG4gIHJvdGF0ZTogJ3JvdGF0ZScsXG4gIHJ4OiAncngnLFxuICByeTogJ3J5JyxcbiAgc2NhbGU6ICdzY2FsZScsXG4gIHNlY3VyaXR5OiAnc2VjdXJpdHknLFxuICBzZWVkOiAnc2VlZCcsXG4gIHNoYXBlcmVuZGVyaW5nOiAnc2hhcGVSZW5kZXJpbmcnLFxuICAnc2hhcGUtcmVuZGVyaW5nJzogJ3NoYXBlUmVuZGVyaW5nJyxcbiAgc2xvcGU6ICdzbG9wZScsXG4gIHNwYWNpbmc6ICdzcGFjaW5nJyxcbiAgc3BlY3VsYXJjb25zdGFudDogJ3NwZWN1bGFyQ29uc3RhbnQnLFxuICBzcGVjdWxhcmV4cG9uZW50OiAnc3BlY3VsYXJFeHBvbmVudCcsXG4gIHNwZWVkOiAnc3BlZWQnLFxuICBzcHJlYWRtZXRob2Q6ICdzcHJlYWRNZXRob2QnLFxuICBzdGFydG9mZnNldDogJ3N0YXJ0T2Zmc2V0JyxcbiAgc3RkZGV2aWF0aW9uOiAnc3RkRGV2aWF0aW9uJyxcbiAgc3RlbWg6ICdzdGVtaCcsXG4gIHN0ZW12OiAnc3RlbXYnLFxuICBzdGl0Y2h0aWxlczogJ3N0aXRjaFRpbGVzJyxcbiAgc3RvcGNvbG9yOiAnc3RvcENvbG9yJyxcbiAgJ3N0b3AtY29sb3InOiAnc3RvcENvbG9yJyxcbiAgc3RvcG9wYWNpdHk6ICdzdG9wT3BhY2l0eScsXG4gICdzdG9wLW9wYWNpdHknOiAnc3RvcE9wYWNpdHknLFxuICBzdHJpa2V0aHJvdWdocG9zaXRpb246ICdzdHJpa2V0aHJvdWdoUG9zaXRpb24nLFxuICAnc3RyaWtldGhyb3VnaC1wb3NpdGlvbic6ICdzdHJpa2V0aHJvdWdoUG9zaXRpb24nLFxuICBzdHJpa2V0aHJvdWdodGhpY2tuZXNzOiAnc3RyaWtldGhyb3VnaFRoaWNrbmVzcycsXG4gICdzdHJpa2V0aHJvdWdoLXRoaWNrbmVzcyc6ICdzdHJpa2V0aHJvdWdoVGhpY2tuZXNzJyxcbiAgc3RyaW5nOiAnc3RyaW5nJyxcbiAgc3Ryb2tlOiAnc3Ryb2tlJyxcbiAgc3Ryb2tlZGFzaGFycmF5OiAnc3Ryb2tlRGFzaGFycmF5JyxcbiAgJ3N0cm9rZS1kYXNoYXJyYXknOiAnc3Ryb2tlRGFzaGFycmF5JyxcbiAgc3Ryb2tlZGFzaG9mZnNldDogJ3N0cm9rZURhc2hvZmZzZXQnLFxuICAnc3Ryb2tlLWRhc2hvZmZzZXQnOiAnc3Ryb2tlRGFzaG9mZnNldCcsXG4gIHN0cm9rZWxpbmVjYXA6ICdzdHJva2VMaW5lY2FwJyxcbiAgJ3N0cm9rZS1saW5lY2FwJzogJ3N0cm9rZUxpbmVjYXAnLFxuICBzdHJva2VsaW5lam9pbjogJ3N0cm9rZUxpbmVqb2luJyxcbiAgJ3N0cm9rZS1saW5lam9pbic6ICdzdHJva2VMaW5lam9pbicsXG4gIHN0cm9rZW1pdGVybGltaXQ6ICdzdHJva2VNaXRlcmxpbWl0JyxcbiAgJ3N0cm9rZS1taXRlcmxpbWl0JzogJ3N0cm9rZU1pdGVybGltaXQnLFxuICBzdHJva2V3aWR0aDogJ3N0cm9rZVdpZHRoJyxcbiAgJ3N0cm9rZS13aWR0aCc6ICdzdHJva2VXaWR0aCcsXG4gIHN0cm9rZW9wYWNpdHk6ICdzdHJva2VPcGFjaXR5JyxcbiAgJ3N0cm9rZS1vcGFjaXR5JzogJ3N0cm9rZU9wYWNpdHknLFxuICBzdXBwcmVzc2NvbnRlbnRlZGl0YWJsZXdhcm5pbmc6ICdzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmcnLFxuICBzdXBwcmVzc2h5ZHJhdGlvbndhcm5pbmc6ICdzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmcnLFxuICBzdXJmYWNlc2NhbGU6ICdzdXJmYWNlU2NhbGUnLFxuICBzeXN0ZW1sYW5ndWFnZTogJ3N5c3RlbUxhbmd1YWdlJyxcbiAgdGFibGV2YWx1ZXM6ICd0YWJsZVZhbHVlcycsXG4gIHRhcmdldHg6ICd0YXJnZXRYJyxcbiAgdGFyZ2V0eTogJ3RhcmdldFknLFxuICB0ZXh0YW5jaG9yOiAndGV4dEFuY2hvcicsXG4gICd0ZXh0LWFuY2hvcic6ICd0ZXh0QW5jaG9yJyxcbiAgdGV4dGRlY29yYXRpb246ICd0ZXh0RGVjb3JhdGlvbicsXG4gICd0ZXh0LWRlY29yYXRpb24nOiAndGV4dERlY29yYXRpb24nLFxuICB0ZXh0bGVuZ3RoOiAndGV4dExlbmd0aCcsXG4gIHRleHRyZW5kZXJpbmc6ICd0ZXh0UmVuZGVyaW5nJyxcbiAgJ3RleHQtcmVuZGVyaW5nJzogJ3RleHRSZW5kZXJpbmcnLFxuICB0bzogJ3RvJyxcbiAgdHJhbnNmb3JtOiAndHJhbnNmb3JtJyxcbiAgdHlwZW9mOiAndHlwZW9mJyxcbiAgdTE6ICd1MScsXG4gIHUyOiAndTInLFxuICB1bmRlcmxpbmVwb3NpdGlvbjogJ3VuZGVybGluZVBvc2l0aW9uJyxcbiAgJ3VuZGVybGluZS1wb3NpdGlvbic6ICd1bmRlcmxpbmVQb3NpdGlvbicsXG4gIHVuZGVybGluZXRoaWNrbmVzczogJ3VuZGVybGluZVRoaWNrbmVzcycsXG4gICd1bmRlcmxpbmUtdGhpY2tuZXNzJzogJ3VuZGVybGluZVRoaWNrbmVzcycsXG4gIHVuaWNvZGU6ICd1bmljb2RlJyxcbiAgdW5pY29kZWJpZGk6ICd1bmljb2RlQmlkaScsXG4gICd1bmljb2RlLWJpZGknOiAndW5pY29kZUJpZGknLFxuICB1bmljb2RlcmFuZ2U6ICd1bmljb2RlUmFuZ2UnLFxuICAndW5pY29kZS1yYW5nZSc6ICd1bmljb2RlUmFuZ2UnLFxuICB1bml0c3BlcmVtOiAndW5pdHNQZXJFbScsXG4gICd1bml0cy1wZXItZW0nOiAndW5pdHNQZXJFbScsXG4gIHVuc2VsZWN0YWJsZTogJ3Vuc2VsZWN0YWJsZScsXG4gIHZhbHBoYWJldGljOiAndkFscGhhYmV0aWMnLFxuICAndi1hbHBoYWJldGljJzogJ3ZBbHBoYWJldGljJyxcbiAgdmFsdWVzOiAndmFsdWVzJyxcbiAgdmVjdG9yZWZmZWN0OiAndmVjdG9yRWZmZWN0JyxcbiAgJ3ZlY3Rvci1lZmZlY3QnOiAndmVjdG9yRWZmZWN0JyxcbiAgdmVyc2lvbjogJ3ZlcnNpb24nLFxuICB2ZXJ0YWR2eTogJ3ZlcnRBZHZZJyxcbiAgJ3ZlcnQtYWR2LXknOiAndmVydEFkdlknLFxuICB2ZXJ0b3JpZ2lueDogJ3ZlcnRPcmlnaW5YJyxcbiAgJ3ZlcnQtb3JpZ2luLXgnOiAndmVydE9yaWdpblgnLFxuICB2ZXJ0b3JpZ2lueTogJ3ZlcnRPcmlnaW5ZJyxcbiAgJ3ZlcnQtb3JpZ2luLXknOiAndmVydE9yaWdpblknLFxuICB2aGFuZ2luZzogJ3ZIYW5naW5nJyxcbiAgJ3YtaGFuZ2luZyc6ICd2SGFuZ2luZycsXG4gIHZpZGVvZ3JhcGhpYzogJ3ZJZGVvZ3JhcGhpYycsXG4gICd2LWlkZW9ncmFwaGljJzogJ3ZJZGVvZ3JhcGhpYycsXG4gIHZpZXdib3g6ICd2aWV3Qm94JyxcbiAgdmlld3RhcmdldDogJ3ZpZXdUYXJnZXQnLFxuICB2aXNpYmlsaXR5OiAndmlzaWJpbGl0eScsXG4gIHZtYXRoZW1hdGljYWw6ICd2TWF0aGVtYXRpY2FsJyxcbiAgJ3YtbWF0aGVtYXRpY2FsJzogJ3ZNYXRoZW1hdGljYWwnLFxuICB2b2NhYjogJ3ZvY2FiJyxcbiAgd2lkdGhzOiAnd2lkdGhzJyxcbiAgd29yZHNwYWNpbmc6ICd3b3JkU3BhY2luZycsXG4gICd3b3JkLXNwYWNpbmcnOiAnd29yZFNwYWNpbmcnLFxuICB3cml0aW5nbW9kZTogJ3dyaXRpbmdNb2RlJyxcbiAgJ3dyaXRpbmctbW9kZSc6ICd3cml0aW5nTW9kZScsXG4gIHgxOiAneDEnLFxuICB4MjogJ3gyJyxcbiAgeDogJ3gnLFxuICB4Y2hhbm5lbHNlbGVjdG9yOiAneENoYW5uZWxTZWxlY3RvcicsXG4gIHhoZWlnaHQ6ICd4SGVpZ2h0JyxcbiAgJ3gtaGVpZ2h0JzogJ3hIZWlnaHQnLFxuICB4bGlua2FjdHVhdGU6ICd4bGlua0FjdHVhdGUnLFxuICAneGxpbms6YWN0dWF0ZSc6ICd4bGlua0FjdHVhdGUnLFxuICB4bGlua2FyY3JvbGU6ICd4bGlua0FyY3JvbGUnLFxuICAneGxpbms6YXJjcm9sZSc6ICd4bGlua0FyY3JvbGUnLFxuICB4bGlua2hyZWY6ICd4bGlua0hyZWYnLFxuICAneGxpbms6aHJlZic6ICd4bGlua0hyZWYnLFxuICB4bGlua3JvbGU6ICd4bGlua1JvbGUnLFxuICAneGxpbms6cm9sZSc6ICd4bGlua1JvbGUnLFxuICB4bGlua3Nob3c6ICd4bGlua1Nob3cnLFxuICAneGxpbms6c2hvdyc6ICd4bGlua1Nob3cnLFxuICB4bGlua3RpdGxlOiAneGxpbmtUaXRsZScsXG4gICd4bGluazp0aXRsZSc6ICd4bGlua1RpdGxlJyxcbiAgeGxpbmt0eXBlOiAneGxpbmtUeXBlJyxcbiAgJ3hsaW5rOnR5cGUnOiAneGxpbmtUeXBlJyxcbiAgeG1sYmFzZTogJ3htbEJhc2UnLFxuICAneG1sOmJhc2UnOiAneG1sQmFzZScsXG4gIHhtbGxhbmc6ICd4bWxMYW5nJyxcbiAgJ3htbDpsYW5nJzogJ3htbExhbmcnLFxuICB4bWxuczogJ3htbG5zJyxcbiAgJ3htbDpzcGFjZSc6ICd4bWxTcGFjZScsXG4gIHhtbG5zeGxpbms6ICd4bWxuc1hsaW5rJyxcbiAgJ3htbG5zOnhsaW5rJzogJ3htbG5zWGxpbmsnLFxuICB4bWxzcGFjZTogJ3htbFNwYWNlJyxcbiAgeTE6ICd5MScsXG4gIHkyOiAneTInLFxuICB5OiAneScsXG4gIHljaGFubmVsc2VsZWN0b3I6ICd5Q2hhbm5lbFNlbGVjdG9yJyxcbiAgejogJ3onLFxuICB6b29tYW5kcGFuOiAnem9vbUFuZFBhbidcbn07XG5cbnZhciBhcmlhUHJvcGVydGllcyA9IHtcbiAgJ2FyaWEtY3VycmVudCc6IDAsXG4gIC8vIHN0YXRlXG4gICdhcmlhLWRldGFpbHMnOiAwLFxuICAnYXJpYS1kaXNhYmxlZCc6IDAsXG4gIC8vIHN0YXRlXG4gICdhcmlhLWhpZGRlbic6IDAsXG4gIC8vIHN0YXRlXG4gICdhcmlhLWludmFsaWQnOiAwLFxuICAvLyBzdGF0ZVxuICAnYXJpYS1rZXlzaG9ydGN1dHMnOiAwLFxuICAnYXJpYS1sYWJlbCc6IDAsXG4gICdhcmlhLXJvbGVkZXNjcmlwdGlvbic6IDAsXG4gIC8vIFdpZGdldCBBdHRyaWJ1dGVzXG4gICdhcmlhLWF1dG9jb21wbGV0ZSc6IDAsXG4gICdhcmlhLWNoZWNrZWQnOiAwLFxuICAnYXJpYS1leHBhbmRlZCc6IDAsXG4gICdhcmlhLWhhc3BvcHVwJzogMCxcbiAgJ2FyaWEtbGV2ZWwnOiAwLFxuICAnYXJpYS1tb2RhbCc6IDAsXG4gICdhcmlhLW11bHRpbGluZSc6IDAsXG4gICdhcmlhLW11bHRpc2VsZWN0YWJsZSc6IDAsXG4gICdhcmlhLW9yaWVudGF0aW9uJzogMCxcbiAgJ2FyaWEtcGxhY2Vob2xkZXInOiAwLFxuICAnYXJpYS1wcmVzc2VkJzogMCxcbiAgJ2FyaWEtcmVhZG9ubHknOiAwLFxuICAnYXJpYS1yZXF1aXJlZCc6IDAsXG4gICdhcmlhLXNlbGVjdGVkJzogMCxcbiAgJ2FyaWEtc29ydCc6IDAsXG4gICdhcmlhLXZhbHVlbWF4JzogMCxcbiAgJ2FyaWEtdmFsdWVtaW4nOiAwLFxuICAnYXJpYS12YWx1ZW5vdyc6IDAsXG4gICdhcmlhLXZhbHVldGV4dCc6IDAsXG4gIC8vIExpdmUgUmVnaW9uIEF0dHJpYnV0ZXNcbiAgJ2FyaWEtYXRvbWljJzogMCxcbiAgJ2FyaWEtYnVzeSc6IDAsXG4gICdhcmlhLWxpdmUnOiAwLFxuICAnYXJpYS1yZWxldmFudCc6IDAsXG4gIC8vIERyYWctYW5kLURyb3AgQXR0cmlidXRlc1xuICAnYXJpYS1kcm9wZWZmZWN0JzogMCxcbiAgJ2FyaWEtZ3JhYmJlZCc6IDAsXG4gIC8vIFJlbGF0aW9uc2hpcCBBdHRyaWJ1dGVzXG4gICdhcmlhLWFjdGl2ZWRlc2NlbmRhbnQnOiAwLFxuICAnYXJpYS1jb2xjb3VudCc6IDAsXG4gICdhcmlhLWNvbGluZGV4JzogMCxcbiAgJ2FyaWEtY29sc3Bhbic6IDAsXG4gICdhcmlhLWNvbnRyb2xzJzogMCxcbiAgJ2FyaWEtZGVzY3JpYmVkYnknOiAwLFxuICAnYXJpYS1lcnJvcm1lc3NhZ2UnOiAwLFxuICAnYXJpYS1mbG93dG8nOiAwLFxuICAnYXJpYS1sYWJlbGxlZGJ5JzogMCxcbiAgJ2FyaWEtb3ducyc6IDAsXG4gICdhcmlhLXBvc2luc2V0JzogMCxcbiAgJ2FyaWEtcm93Y291bnQnOiAwLFxuICAnYXJpYS1yb3dpbmRleCc6IDAsXG4gICdhcmlhLXJvd3NwYW4nOiAwLFxuICAnYXJpYS1zZXRzaXplJzogMFxufTtcblxudmFyIHdhcm5lZFByb3BlcnRpZXMgPSB7fTtcbnZhciByQVJJQSA9IG5ldyBSZWdFeHAoJ14oYXJpYSktWycgKyBBVFRSSUJVVEVfTkFNRV9DSEFSICsgJ10qJCcpO1xudmFyIHJBUklBQ2FtZWwgPSBuZXcgUmVnRXhwKCdeKGFyaWEpW0EtWl1bJyArIEFUVFJJQlVURV9OQU1FX0NIQVIgKyAnXSokJyk7XG52YXIgaGFzT3duUHJvcGVydHkkMSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG5cbmZ1bmN0aW9uIHZhbGlkYXRlUHJvcGVydHkodGFnTmFtZSwgbmFtZSkge1xuICB7XG4gICAgaWYgKGhhc093blByb3BlcnR5JDEuY2FsbCh3YXJuZWRQcm9wZXJ0aWVzLCBuYW1lKSAmJiB3YXJuZWRQcm9wZXJ0aWVzW25hbWVdKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAockFSSUFDYW1lbC50ZXN0KG5hbWUpKSB7XG4gICAgICB2YXIgYXJpYU5hbWUgPSAnYXJpYS0nICsgbmFtZS5zbGljZSg0KS50b0xvd2VyQ2FzZSgpO1xuICAgICAgdmFyIGNvcnJlY3ROYW1lID0gYXJpYVByb3BlcnRpZXMuaGFzT3duUHJvcGVydHkoYXJpYU5hbWUpID8gYXJpYU5hbWUgOiBudWxsOyAvLyBJZiB0aGlzIGlzIGFuIGFyaWEtKiBhdHRyaWJ1dGUsIGJ1dCBpcyBub3QgbGlzdGVkIGluIHRoZSBrbm93biBET01cbiAgICAgIC8vIERPTSBwcm9wZXJ0aWVzLCB0aGVuIGl0IGlzIGFuIGludmFsaWQgYXJpYS0qIGF0dHJpYnV0ZS5cblxuICAgICAgaWYgKGNvcnJlY3ROYW1lID09IG51bGwpIHtcbiAgICAgICAgZXJyb3IoJ0ludmFsaWQgQVJJQSBhdHRyaWJ1dGUgYCVzYC4gQVJJQSBhdHRyaWJ1dGVzIGZvbGxvdyB0aGUgcGF0dGVybiBhcmlhLSogYW5kIG11c3QgYmUgbG93ZXJjYXNlLicsIG5hbWUpO1xuXG4gICAgICAgIHdhcm5lZFByb3BlcnRpZXNbbmFtZV0gPSB0cnVlO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0gLy8gYXJpYS0qIGF0dHJpYnV0ZXMgc2hvdWxkIGJlIGxvd2VyY2FzZTsgc3VnZ2VzdCB0aGUgbG93ZXJjYXNlIHZlcnNpb24uXG5cblxuICAgICAgaWYgKG5hbWUgIT09IGNvcnJlY3ROYW1lKSB7XG4gICAgICAgIGVycm9yKCdJbnZhbGlkIEFSSUEgYXR0cmlidXRlIGAlc2AuIERpZCB5b3UgbWVhbiBgJXNgPycsIG5hbWUsIGNvcnJlY3ROYW1lKTtcblxuICAgICAgICB3YXJuZWRQcm9wZXJ0aWVzW25hbWVdID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHJBUklBLnRlc3QobmFtZSkpIHtcbiAgICAgIHZhciBsb3dlckNhc2VkTmFtZSA9IG5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgIHZhciBzdGFuZGFyZE5hbWUgPSBhcmlhUHJvcGVydGllcy5oYXNPd25Qcm9wZXJ0eShsb3dlckNhc2VkTmFtZSkgPyBsb3dlckNhc2VkTmFtZSA6IG51bGw7IC8vIElmIHRoaXMgaXMgYW4gYXJpYS0qIGF0dHJpYnV0ZSwgYnV0IGlzIG5vdCBsaXN0ZWQgaW4gdGhlIGtub3duIERPTVxuICAgICAgLy8gRE9NIHByb3BlcnRpZXMsIHRoZW4gaXQgaXMgYW4gaW52YWxpZCBhcmlhLSogYXR0cmlidXRlLlxuXG4gICAgICBpZiAoc3RhbmRhcmROYW1lID09IG51bGwpIHtcbiAgICAgICAgd2FybmVkUHJvcGVydGllc1tuYW1lXSA9IHRydWU7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH0gLy8gYXJpYS0qIGF0dHJpYnV0ZXMgc2hvdWxkIGJlIGxvd2VyY2FzZTsgc3VnZ2VzdCB0aGUgbG93ZXJjYXNlIHZlcnNpb24uXG5cblxuICAgICAgaWYgKG5hbWUgIT09IHN0YW5kYXJkTmFtZSkge1xuICAgICAgICBlcnJvcignVW5rbm93biBBUklBIGF0dHJpYnV0ZSBgJXNgLiBEaWQgeW91IG1lYW4gYCVzYD8nLCBuYW1lLCBzdGFuZGFyZE5hbWUpO1xuXG4gICAgICAgIHdhcm5lZFByb3BlcnRpZXNbbmFtZV0gPSB0cnVlO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gd2FybkludmFsaWRBUklBUHJvcHModHlwZSwgcHJvcHMpIHtcbiAge1xuICAgIHZhciBpbnZhbGlkUHJvcHMgPSBbXTtcblxuICAgIGZvciAodmFyIGtleSBpbiBwcm9wcykge1xuICAgICAgdmFyIGlzVmFsaWQgPSB2YWxpZGF0ZVByb3BlcnR5KHR5cGUsIGtleSk7XG5cbiAgICAgIGlmICghaXNWYWxpZCkge1xuICAgICAgICBpbnZhbGlkUHJvcHMucHVzaChrZXkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciB1bmtub3duUHJvcFN0cmluZyA9IGludmFsaWRQcm9wcy5tYXAoZnVuY3Rpb24gKHByb3ApIHtcbiAgICAgIHJldHVybiAnYCcgKyBwcm9wICsgJ2AnO1xuICAgIH0pLmpvaW4oJywgJyk7XG5cbiAgICBpZiAoaW52YWxpZFByb3BzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgZXJyb3IoJ0ludmFsaWQgYXJpYSBwcm9wICVzIG9uIDwlcz4gdGFnLiAnICsgJ0ZvciBkZXRhaWxzLCBzZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL2ludmFsaWQtYXJpYS1wcm9wcycsIHVua25vd25Qcm9wU3RyaW5nLCB0eXBlKTtcbiAgICB9IGVsc2UgaWYgKGludmFsaWRQcm9wcy5sZW5ndGggPiAxKSB7XG4gICAgICBlcnJvcignSW52YWxpZCBhcmlhIHByb3BzICVzIG9uIDwlcz4gdGFnLiAnICsgJ0ZvciBkZXRhaWxzLCBzZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL2ludmFsaWQtYXJpYS1wcm9wcycsIHVua25vd25Qcm9wU3RyaW5nLCB0eXBlKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVQcm9wZXJ0aWVzKHR5cGUsIHByb3BzKSB7XG4gIGlmIChpc0N1c3RvbUNvbXBvbmVudCh0eXBlLCBwcm9wcykpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICB3YXJuSW52YWxpZEFSSUFQcm9wcyh0eXBlLCBwcm9wcyk7XG59XG5cbnZhciBkaWRXYXJuVmFsdWVOdWxsID0gZmFsc2U7XG5mdW5jdGlvbiB2YWxpZGF0ZVByb3BlcnRpZXMkMSh0eXBlLCBwcm9wcykge1xuICB7XG4gICAgaWYgKHR5cGUgIT09ICdpbnB1dCcgJiYgdHlwZSAhPT0gJ3RleHRhcmVhJyAmJiB0eXBlICE9PSAnc2VsZWN0Jykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChwcm9wcyAhPSBudWxsICYmIHByb3BzLnZhbHVlID09PSBudWxsICYmICFkaWRXYXJuVmFsdWVOdWxsKSB7XG4gICAgICBkaWRXYXJuVmFsdWVOdWxsID0gdHJ1ZTtcblxuICAgICAgaWYgKHR5cGUgPT09ICdzZWxlY3QnICYmIHByb3BzLm11bHRpcGxlKSB7XG4gICAgICAgIGVycm9yKCdgdmFsdWVgIHByb3Agb24gYCVzYCBzaG91bGQgbm90IGJlIG51bGwuICcgKyAnQ29uc2lkZXIgdXNpbmcgYW4gZW1wdHkgYXJyYXkgd2hlbiBgbXVsdGlwbGVgIGlzIHNldCB0byBgdHJ1ZWAgJyArICd0byBjbGVhciB0aGUgY29tcG9uZW50IG9yIGB1bmRlZmluZWRgIGZvciB1bmNvbnRyb2xsZWQgY29tcG9uZW50cy4nLCB0eXBlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVycm9yKCdgdmFsdWVgIHByb3Agb24gYCVzYCBzaG91bGQgbm90IGJlIG51bGwuICcgKyAnQ29uc2lkZXIgdXNpbmcgYW4gZW1wdHkgc3RyaW5nIHRvIGNsZWFyIHRoZSBjb21wb25lbnQgb3IgYHVuZGVmaW5lZGAgJyArICdmb3IgdW5jb250cm9sbGVkIGNvbXBvbmVudHMuJywgdHlwZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbnZhciB2YWxpZGF0ZVByb3BlcnR5JDEgPSBmdW5jdGlvbiAoKSB7fTtcblxue1xuICB2YXIgd2FybmVkUHJvcGVydGllcyQxID0ge307XG4gIHZhciBfaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuICB2YXIgRVZFTlRfTkFNRV9SRUdFWCA9IC9eb24uLztcbiAgdmFyIElOVkFMSURfRVZFTlRfTkFNRV9SRUdFWCA9IC9eb25bXkEtWl0vO1xuICB2YXIgckFSSUEkMSA9IG5ldyBSZWdFeHAoJ14oYXJpYSktWycgKyBBVFRSSUJVVEVfTkFNRV9DSEFSICsgJ10qJCcpO1xuICB2YXIgckFSSUFDYW1lbCQxID0gbmV3IFJlZ0V4cCgnXihhcmlhKVtBLVpdWycgKyBBVFRSSUJVVEVfTkFNRV9DSEFSICsgJ10qJCcpO1xuXG4gIHZhbGlkYXRlUHJvcGVydHkkMSA9IGZ1bmN0aW9uICh0YWdOYW1lLCBuYW1lLCB2YWx1ZSwgZXZlbnRSZWdpc3RyeSkge1xuICAgIGlmIChfaGFzT3duUHJvcGVydHkuY2FsbCh3YXJuZWRQcm9wZXJ0aWVzJDEsIG5hbWUpICYmIHdhcm5lZFByb3BlcnRpZXMkMVtuYW1lXSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgdmFyIGxvd2VyQ2FzZWROYW1lID0gbmFtZS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgaWYgKGxvd2VyQ2FzZWROYW1lID09PSAnb25mb2N1c2luJyB8fCBsb3dlckNhc2VkTmFtZSA9PT0gJ29uZm9jdXNvdXQnKSB7XG4gICAgICBlcnJvcignUmVhY3QgdXNlcyBvbkZvY3VzIGFuZCBvbkJsdXIgaW5zdGVhZCBvZiBvbkZvY3VzSW4gYW5kIG9uRm9jdXNPdXQuICcgKyAnQWxsIFJlYWN0IGV2ZW50cyBhcmUgbm9ybWFsaXplZCB0byBidWJibGUsIHNvIG9uRm9jdXNJbiBhbmQgb25Gb2N1c091dCAnICsgJ2FyZSBub3QgbmVlZGVkL3N1cHBvcnRlZCBieSBSZWFjdC4nKTtcblxuICAgICAgd2FybmVkUHJvcGVydGllcyQxW25hbWVdID0gdHJ1ZTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gLy8gV2UgY2FuJ3QgcmVseSBvbiB0aGUgZXZlbnQgc3lzdGVtIGJlaW5nIGluamVjdGVkIG9uIHRoZSBzZXJ2ZXIuXG5cblxuICAgIGlmIChldmVudFJlZ2lzdHJ5ICE9IG51bGwpIHtcbiAgICAgIHZhciByZWdpc3RyYXRpb25OYW1lRGVwZW5kZW5jaWVzID0gZXZlbnRSZWdpc3RyeS5yZWdpc3RyYXRpb25OYW1lRGVwZW5kZW5jaWVzLFxuICAgICAgICAgIHBvc3NpYmxlUmVnaXN0cmF0aW9uTmFtZXMgPSBldmVudFJlZ2lzdHJ5LnBvc3NpYmxlUmVnaXN0cmF0aW9uTmFtZXM7XG5cbiAgICAgIGlmIChyZWdpc3RyYXRpb25OYW1lRGVwZW5kZW5jaWVzLmhhc093blByb3BlcnR5KG5hbWUpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICB2YXIgcmVnaXN0cmF0aW9uTmFtZSA9IHBvc3NpYmxlUmVnaXN0cmF0aW9uTmFtZXMuaGFzT3duUHJvcGVydHkobG93ZXJDYXNlZE5hbWUpID8gcG9zc2libGVSZWdpc3RyYXRpb25OYW1lc1tsb3dlckNhc2VkTmFtZV0gOiBudWxsO1xuXG4gICAgICBpZiAocmVnaXN0cmF0aW9uTmFtZSAhPSBudWxsKSB7XG4gICAgICAgIGVycm9yKCdJbnZhbGlkIGV2ZW50IGhhbmRsZXIgcHJvcGVydHkgYCVzYC4gRGlkIHlvdSBtZWFuIGAlc2A/JywgbmFtZSwgcmVnaXN0cmF0aW9uTmFtZSk7XG5cbiAgICAgICAgd2FybmVkUHJvcGVydGllcyQxW25hbWVdID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChFVkVOVF9OQU1FX1JFR0VYLnRlc3QobmFtZSkpIHtcbiAgICAgICAgZXJyb3IoJ1Vua25vd24gZXZlbnQgaGFuZGxlciBwcm9wZXJ0eSBgJXNgLiBJdCB3aWxsIGJlIGlnbm9yZWQuJywgbmFtZSk7XG5cbiAgICAgICAgd2FybmVkUHJvcGVydGllcyQxW25hbWVdID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChFVkVOVF9OQU1FX1JFR0VYLnRlc3QobmFtZSkpIHtcbiAgICAgIC8vIElmIG5vIGV2ZW50IHBsdWdpbnMgaGF2ZSBiZWVuIGluamVjdGVkLCB3ZSBhcmUgaW4gYSBzZXJ2ZXIgZW52aXJvbm1lbnQuXG4gICAgICAvLyBTbyB3ZSBjYW4ndCB0ZWxsIGlmIHRoZSBldmVudCBuYW1lIGlzIGNvcnJlY3QgZm9yIHN1cmUsIGJ1dCB3ZSBjYW4gZmlsdGVyXG4gICAgICAvLyBvdXQga25vd24gYmFkIG9uZXMgbGlrZSBgb25jbGlja2AuIFdlIGNhbid0IHN1Z2dlc3QgYSBzcGVjaWZpYyByZXBsYWNlbWVudCB0aG91Z2guXG4gICAgICBpZiAoSU5WQUxJRF9FVkVOVF9OQU1FX1JFR0VYLnRlc3QobmFtZSkpIHtcbiAgICAgICAgZXJyb3IoJ0ludmFsaWQgZXZlbnQgaGFuZGxlciBwcm9wZXJ0eSBgJXNgLiAnICsgJ1JlYWN0IGV2ZW50cyB1c2UgdGhlIGNhbWVsQ2FzZSBuYW1pbmcgY29udmVudGlvbiwgZm9yIGV4YW1wbGUgYG9uQ2xpY2tgLicsIG5hbWUpO1xuICAgICAgfVxuXG4gICAgICB3YXJuZWRQcm9wZXJ0aWVzJDFbbmFtZV0gPSB0cnVlO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSAvLyBMZXQgdGhlIEFSSUEgYXR0cmlidXRlIGhvb2sgdmFsaWRhdGUgQVJJQSBhdHRyaWJ1dGVzXG5cblxuICAgIGlmIChyQVJJQSQxLnRlc3QobmFtZSkgfHwgckFSSUFDYW1lbCQxLnRlc3QobmFtZSkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmIChsb3dlckNhc2VkTmFtZSA9PT0gJ2lubmVyaHRtbCcpIHtcbiAgICAgIGVycm9yKCdEaXJlY3RseSBzZXR0aW5nIHByb3BlcnR5IGBpbm5lckhUTUxgIGlzIG5vdCBwZXJtaXR0ZWQuICcgKyAnRm9yIG1vcmUgaW5mb3JtYXRpb24sIGxvb2t1cCBkb2N1bWVudGF0aW9uIG9uIGBkYW5nZXJvdXNseVNldElubmVySFRNTGAuJyk7XG5cbiAgICAgIHdhcm5lZFByb3BlcnRpZXMkMVtuYW1lXSA9IHRydWU7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAobG93ZXJDYXNlZE5hbWUgPT09ICdhcmlhJykge1xuICAgICAgZXJyb3IoJ1RoZSBgYXJpYWAgYXR0cmlidXRlIGlzIHJlc2VydmVkIGZvciBmdXR1cmUgdXNlIGluIFJlYWN0LiAnICsgJ1Bhc3MgaW5kaXZpZHVhbCBgYXJpYS1gIGF0dHJpYnV0ZXMgaW5zdGVhZC4nKTtcblxuICAgICAgd2FybmVkUHJvcGVydGllcyQxW25hbWVdID0gdHJ1ZTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmIChsb3dlckNhc2VkTmFtZSA9PT0gJ2lzJyAmJiB2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIGVycm9yKCdSZWNlaXZlZCBhIGAlc2AgZm9yIGEgc3RyaW5nIGF0dHJpYnV0ZSBgaXNgLiBJZiB0aGlzIGlzIGV4cGVjdGVkLCBjYXN0ICcgKyAndGhlIHZhbHVlIHRvIGEgc3RyaW5nLicsIHR5cGVvZiB2YWx1ZSk7XG5cbiAgICAgIHdhcm5lZFByb3BlcnRpZXMkMVtuYW1lXSA9IHRydWU7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyAmJiBpc05hTih2YWx1ZSkpIHtcbiAgICAgIGVycm9yKCdSZWNlaXZlZCBOYU4gZm9yIHRoZSBgJXNgIGF0dHJpYnV0ZS4gSWYgdGhpcyBpcyBleHBlY3RlZCwgY2FzdCAnICsgJ3RoZSB2YWx1ZSB0byBhIHN0cmluZy4nLCBuYW1lKTtcblxuICAgICAgd2FybmVkUHJvcGVydGllcyQxW25hbWVdID0gdHJ1ZTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHZhciBwcm9wZXJ0eUluZm8gPSBnZXRQcm9wZXJ0eUluZm8obmFtZSk7XG4gICAgdmFyIGlzUmVzZXJ2ZWQgPSBwcm9wZXJ0eUluZm8gIT09IG51bGwgJiYgcHJvcGVydHlJbmZvLnR5cGUgPT09IFJFU0VSVkVEOyAvLyBLbm93biBhdHRyaWJ1dGVzIHNob3VsZCBtYXRjaCB0aGUgY2FzaW5nIHNwZWNpZmllZCBpbiB0aGUgcHJvcGVydHkgY29uZmlnLlxuXG4gICAgaWYgKHBvc3NpYmxlU3RhbmRhcmROYW1lcy5oYXNPd25Qcm9wZXJ0eShsb3dlckNhc2VkTmFtZSkpIHtcbiAgICAgIHZhciBzdGFuZGFyZE5hbWUgPSBwb3NzaWJsZVN0YW5kYXJkTmFtZXNbbG93ZXJDYXNlZE5hbWVdO1xuXG4gICAgICBpZiAoc3RhbmRhcmROYW1lICE9PSBuYW1lKSB7XG4gICAgICAgIGVycm9yKCdJbnZhbGlkIERPTSBwcm9wZXJ0eSBgJXNgLiBEaWQgeW91IG1lYW4gYCVzYD8nLCBuYW1lLCBzdGFuZGFyZE5hbWUpO1xuXG4gICAgICAgIHdhcm5lZFByb3BlcnRpZXMkMVtuYW1lXSA9IHRydWU7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoIWlzUmVzZXJ2ZWQgJiYgbmFtZSAhPT0gbG93ZXJDYXNlZE5hbWUpIHtcbiAgICAgIC8vIFVua25vd24gYXR0cmlidXRlcyBzaG91bGQgaGF2ZSBsb3dlcmNhc2UgY2FzaW5nIHNpbmNlIHRoYXQncyBob3cgdGhleVxuICAgICAgLy8gd2lsbCBiZSBjYXNlZCBhbnl3YXkgd2l0aCBzZXJ2ZXIgcmVuZGVyaW5nLlxuICAgICAgZXJyb3IoJ1JlYWN0IGRvZXMgbm90IHJlY29nbml6ZSB0aGUgYCVzYCBwcm9wIG9uIGEgRE9NIGVsZW1lbnQuIElmIHlvdSAnICsgJ2ludGVudGlvbmFsbHkgd2FudCBpdCB0byBhcHBlYXIgaW4gdGhlIERPTSBhcyBhIGN1c3RvbSAnICsgJ2F0dHJpYnV0ZSwgc3BlbGwgaXQgYXMgbG93ZXJjYXNlIGAlc2AgaW5zdGVhZC4gJyArICdJZiB5b3UgYWNjaWRlbnRhbGx5IHBhc3NlZCBpdCBmcm9tIGEgcGFyZW50IGNvbXBvbmVudCwgcmVtb3ZlICcgKyAnaXQgZnJvbSB0aGUgRE9NIGVsZW1lbnQuJywgbmFtZSwgbG93ZXJDYXNlZE5hbWUpO1xuXG4gICAgICB3YXJuZWRQcm9wZXJ0aWVzJDFbbmFtZV0gPSB0cnVlO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nICYmIHNob3VsZFJlbW92ZUF0dHJpYnV0ZVdpdGhXYXJuaW5nKG5hbWUsIHZhbHVlLCBwcm9wZXJ0eUluZm8sIGZhbHNlKSkge1xuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIGVycm9yKCdSZWNlaXZlZCBgJXNgIGZvciBhIG5vbi1ib29sZWFuIGF0dHJpYnV0ZSBgJXNgLlxcblxcbicgKyAnSWYgeW91IHdhbnQgdG8gd3JpdGUgaXQgdG8gdGhlIERPTSwgcGFzcyBhIHN0cmluZyBpbnN0ZWFkOiAnICsgJyVzPVwiJXNcIiBvciAlcz17dmFsdWUudG9TdHJpbmcoKX0uJywgdmFsdWUsIG5hbWUsIG5hbWUsIHZhbHVlLCBuYW1lKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVycm9yKCdSZWNlaXZlZCBgJXNgIGZvciBhIG5vbi1ib29sZWFuIGF0dHJpYnV0ZSBgJXNgLlxcblxcbicgKyAnSWYgeW91IHdhbnQgdG8gd3JpdGUgaXQgdG8gdGhlIERPTSwgcGFzcyBhIHN0cmluZyBpbnN0ZWFkOiAnICsgJyVzPVwiJXNcIiBvciAlcz17dmFsdWUudG9TdHJpbmcoKX0uXFxuXFxuJyArICdJZiB5b3UgdXNlZCB0byBjb25kaXRpb25hbGx5IG9taXQgaXQgd2l0aCAlcz17Y29uZGl0aW9uICYmIHZhbHVlfSwgJyArICdwYXNzICVzPXtjb25kaXRpb24gPyB2YWx1ZSA6IHVuZGVmaW5lZH0gaW5zdGVhZC4nLCB2YWx1ZSwgbmFtZSwgbmFtZSwgdmFsdWUsIG5hbWUsIG5hbWUsIG5hbWUpO1xuICAgICAgfVxuXG4gICAgICB3YXJuZWRQcm9wZXJ0aWVzJDFbbmFtZV0gPSB0cnVlO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSAvLyBOb3cgdGhhdCB3ZSd2ZSB2YWxpZGF0ZWQgY2FzaW5nLCBkbyBub3QgdmFsaWRhdGVcbiAgICAvLyBkYXRhIHR5cGVzIGZvciByZXNlcnZlZCBwcm9wc1xuXG5cbiAgICBpZiAoaXNSZXNlcnZlZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSAvLyBXYXJuIHdoZW4gYSBrbm93biBhdHRyaWJ1dGUgaXMgYSBiYWQgdHlwZVxuXG5cbiAgICBpZiAoc2hvdWxkUmVtb3ZlQXR0cmlidXRlV2l0aFdhcm5pbmcobmFtZSwgdmFsdWUsIHByb3BlcnR5SW5mbywgZmFsc2UpKSB7XG4gICAgICB3YXJuZWRQcm9wZXJ0aWVzJDFbbmFtZV0gPSB0cnVlO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gLy8gV2FybiB3aGVuIHBhc3NpbmcgdGhlIHN0cmluZ3MgJ2ZhbHNlJyBvciAndHJ1ZScgaW50byBhIGJvb2xlYW4gcHJvcFxuXG5cbiAgICBpZiAoKHZhbHVlID09PSAnZmFsc2UnIHx8IHZhbHVlID09PSAndHJ1ZScpICYmIHByb3BlcnR5SW5mbyAhPT0gbnVsbCAmJiBwcm9wZXJ0eUluZm8udHlwZSA9PT0gQk9PTEVBTikge1xuICAgICAgZXJyb3IoJ1JlY2VpdmVkIHRoZSBzdHJpbmcgYCVzYCBmb3IgdGhlIGJvb2xlYW4gYXR0cmlidXRlIGAlc2AuICcgKyAnJXMgJyArICdEaWQgeW91IG1lYW4gJXM9eyVzfT8nLCB2YWx1ZSwgbmFtZSwgdmFsdWUgPT09ICdmYWxzZScgPyAnVGhlIGJyb3dzZXIgd2lsbCBpbnRlcnByZXQgaXQgYXMgYSB0cnV0aHkgdmFsdWUuJyA6ICdBbHRob3VnaCB0aGlzIHdvcmtzLCBpdCB3aWxsIG5vdCB3b3JrIGFzIGV4cGVjdGVkIGlmIHlvdSBwYXNzIHRoZSBzdHJpbmcgXCJmYWxzZVwiLicsIG5hbWUsIHZhbHVlKTtcblxuICAgICAgd2FybmVkUHJvcGVydGllcyQxW25hbWVdID0gdHJ1ZTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9O1xufVxuXG52YXIgd2FyblVua25vd25Qcm9wZXJ0aWVzID0gZnVuY3Rpb24gKHR5cGUsIHByb3BzLCBldmVudFJlZ2lzdHJ5KSB7XG4gIHtcbiAgICB2YXIgdW5rbm93blByb3BzID0gW107XG5cbiAgICBmb3IgKHZhciBrZXkgaW4gcHJvcHMpIHtcbiAgICAgIHZhciBpc1ZhbGlkID0gdmFsaWRhdGVQcm9wZXJ0eSQxKHR5cGUsIGtleSwgcHJvcHNba2V5XSwgZXZlbnRSZWdpc3RyeSk7XG5cbiAgICAgIGlmICghaXNWYWxpZCkge1xuICAgICAgICB1bmtub3duUHJvcHMucHVzaChrZXkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciB1bmtub3duUHJvcFN0cmluZyA9IHVua25vd25Qcm9wcy5tYXAoZnVuY3Rpb24gKHByb3ApIHtcbiAgICAgIHJldHVybiAnYCcgKyBwcm9wICsgJ2AnO1xuICAgIH0pLmpvaW4oJywgJyk7XG5cbiAgICBpZiAodW5rbm93blByb3BzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgZXJyb3IoJ0ludmFsaWQgdmFsdWUgZm9yIHByb3AgJXMgb24gPCVzPiB0YWcuIEVpdGhlciByZW1vdmUgaXQgZnJvbSB0aGUgZWxlbWVudCwgJyArICdvciBwYXNzIGEgc3RyaW5nIG9yIG51bWJlciB2YWx1ZSB0byBrZWVwIGl0IGluIHRoZSBET00uICcgKyAnRm9yIGRldGFpbHMsIHNlZSBodHRwczovL3JlYWN0anMub3JnL2xpbmsvYXR0cmlidXRlLWJlaGF2aW9yICcsIHVua25vd25Qcm9wU3RyaW5nLCB0eXBlKTtcbiAgICB9IGVsc2UgaWYgKHVua25vd25Qcm9wcy5sZW5ndGggPiAxKSB7XG4gICAgICBlcnJvcignSW52YWxpZCB2YWx1ZXMgZm9yIHByb3BzICVzIG9uIDwlcz4gdGFnLiBFaXRoZXIgcmVtb3ZlIHRoZW0gZnJvbSB0aGUgZWxlbWVudCwgJyArICdvciBwYXNzIGEgc3RyaW5nIG9yIG51bWJlciB2YWx1ZSB0byBrZWVwIHRoZW0gaW4gdGhlIERPTS4gJyArICdGb3IgZGV0YWlscywgc2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9hdHRyaWJ1dGUtYmVoYXZpb3IgJywgdW5rbm93blByb3BTdHJpbmcsIHR5cGUpO1xuICAgIH1cbiAgfVxufTtcblxuZnVuY3Rpb24gdmFsaWRhdGVQcm9wZXJ0aWVzJDIodHlwZSwgcHJvcHMsIGV2ZW50UmVnaXN0cnkpIHtcbiAgaWYgKGlzQ3VzdG9tQ29tcG9uZW50KHR5cGUsIHByb3BzKSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHdhcm5Vbmtub3duUHJvcGVydGllcyh0eXBlLCBwcm9wcywgZXZlbnRSZWdpc3RyeSk7XG59XG5cbnZhciBJU19FVkVOVF9IQU5ETEVfTk9OX01BTkFHRURfTk9ERSA9IDE7XG52YXIgSVNfTk9OX0RFTEVHQVRFRCA9IDEgPDwgMTtcbnZhciBJU19DQVBUVVJFX1BIQVNFID0gMSA8PCAyO1xudmFyIElTX1JFUExBWUVEID0gMSA8PCA0O1xuLy8gc2V0IHRvIExFR0FDWV9GQl9TVVBQT1JULiBMRUdBQ1lfRkJfU1VQUE9SVCBvbmx5IGdldHMgc2V0IHdoZW5cbi8vIHdlIGNhbGwgd2lsbERlZmVyTGF0ZXJGb3JMZWdhY3lGQlN1cHBvcnQsIHRodXMgbm90IGJhaWxpbmcgb3V0XG4vLyB3aWxsIHJlc3VsdCBpbiBlbmRsZXNzIGN5Y2xlcyBsaWtlIGFuIGluZmluaXRlIGxvb3AuXG4vLyBXZSBhbHNvIGRvbid0IHdhbnQgdG8gZGVmZXIgZHVyaW5nIGV2ZW50IHJlcGxheWluZy5cblxudmFyIFNIT1VMRF9OT1RfUFJPQ0VTU19QT0xZRklMTF9FVkVOVF9QTFVHSU5TID0gSVNfRVZFTlRfSEFORExFX05PTl9NQU5BR0VEX05PREUgfCBJU19OT05fREVMRUdBVEVEIHwgSVNfQ0FQVFVSRV9QSEFTRTtcblxuLyoqXG4gKiBHZXRzIHRoZSB0YXJnZXQgbm9kZSBmcm9tIGEgbmF0aXZlIGJyb3dzZXIgZXZlbnQgYnkgYWNjb3VudGluZyBmb3JcbiAqIGluY29uc2lzdGVuY2llcyBpbiBicm93c2VyIERPTSBBUElzLlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSBuYXRpdmVFdmVudCBOYXRpdmUgYnJvd3NlciBldmVudC5cbiAqIEByZXR1cm4ge0RPTUV2ZW50VGFyZ2V0fSBUYXJnZXQgbm9kZS5cbiAqL1xuXG5mdW5jdGlvbiBnZXRFdmVudFRhcmdldChuYXRpdmVFdmVudCkge1xuICAvLyBGYWxsYmFjayB0byBuYXRpdmVFdmVudC5zcmNFbGVtZW50IGZvciBJRTlcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xMjUwNlxuICB2YXIgdGFyZ2V0ID0gbmF0aXZlRXZlbnQudGFyZ2V0IHx8IG5hdGl2ZUV2ZW50LnNyY0VsZW1lbnQgfHwgd2luZG93OyAvLyBOb3JtYWxpemUgU1ZHIDx1c2U+IGVsZW1lbnQgZXZlbnRzICM0OTYzXG5cbiAgaWYgKHRhcmdldC5jb3JyZXNwb25kaW5nVXNlRWxlbWVudCkge1xuICAgIHRhcmdldCA9IHRhcmdldC5jb3JyZXNwb25kaW5nVXNlRWxlbWVudDtcbiAgfSAvLyBTYWZhcmkgbWF5IGZpcmUgZXZlbnRzIG9uIHRleHQgbm9kZXMgKE5vZGUuVEVYVF9OT0RFIGlzIDMpLlxuICAvLyBAc2VlIGh0dHA6Ly93d3cucXVpcmtzbW9kZS5vcmcvanMvZXZlbnRzX3Byb3BlcnRpZXMuaHRtbFxuXG5cbiAgcmV0dXJuIHRhcmdldC5ub2RlVHlwZSA9PT0gVEVYVF9OT0RFID8gdGFyZ2V0LnBhcmVudE5vZGUgOiB0YXJnZXQ7XG59XG5cbnZhciByZXN0b3JlSW1wbCA9IG51bGw7XG52YXIgcmVzdG9yZVRhcmdldCA9IG51bGw7XG52YXIgcmVzdG9yZVF1ZXVlID0gbnVsbDtcblxuZnVuY3Rpb24gcmVzdG9yZVN0YXRlT2ZUYXJnZXQodGFyZ2V0KSB7XG4gIC8vIFdlIHBlcmZvcm0gdGhpcyB0cmFuc2xhdGlvbiBhdCB0aGUgZW5kIG9mIHRoZSBldmVudCBsb29wIHNvIHRoYXQgd2VcbiAgLy8gYWx3YXlzIHJlY2VpdmUgdGhlIGNvcnJlY3QgZmliZXIgaGVyZVxuICB2YXIgaW50ZXJuYWxJbnN0YW5jZSA9IGdldEluc3RhbmNlRnJvbU5vZGUodGFyZ2V0KTtcblxuICBpZiAoIWludGVybmFsSW5zdGFuY2UpIHtcbiAgICAvLyBVbm1vdW50ZWRcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoISh0eXBlb2YgcmVzdG9yZUltcGwgPT09ICdmdW5jdGlvbicpKSB7XG4gICAge1xuICAgICAgdGhyb3cgRXJyb3IoIFwic2V0UmVzdG9yZUltcGxlbWVudGF0aW9uKCkgbmVlZHMgdG8gYmUgY2FsbGVkIHRvIGhhbmRsZSBhIHRhcmdldCBmb3IgY29udHJvbGxlZCBldmVudHMuIFRoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCIgKTtcbiAgICB9XG4gIH1cblxuICB2YXIgc3RhdGVOb2RlID0gaW50ZXJuYWxJbnN0YW5jZS5zdGF0ZU5vZGU7IC8vIEd1YXJkIGFnYWluc3QgRmliZXIgYmVpbmcgdW5tb3VudGVkLlxuXG4gIGlmIChzdGF0ZU5vZGUpIHtcbiAgICB2YXIgX3Byb3BzID0gZ2V0RmliZXJDdXJyZW50UHJvcHNGcm9tTm9kZShzdGF0ZU5vZGUpO1xuXG4gICAgcmVzdG9yZUltcGwoaW50ZXJuYWxJbnN0YW5jZS5zdGF0ZU5vZGUsIGludGVybmFsSW5zdGFuY2UudHlwZSwgX3Byb3BzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBzZXRSZXN0b3JlSW1wbGVtZW50YXRpb24oaW1wbCkge1xuICByZXN0b3JlSW1wbCA9IGltcGw7XG59XG5mdW5jdGlvbiBlbnF1ZXVlU3RhdGVSZXN0b3JlKHRhcmdldCkge1xuICBpZiAocmVzdG9yZVRhcmdldCkge1xuICAgIGlmIChyZXN0b3JlUXVldWUpIHtcbiAgICAgIHJlc3RvcmVRdWV1ZS5wdXNoKHRhcmdldCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3RvcmVRdWV1ZSA9IFt0YXJnZXRdO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICByZXN0b3JlVGFyZ2V0ID0gdGFyZ2V0O1xuICB9XG59XG5mdW5jdGlvbiBuZWVkc1N0YXRlUmVzdG9yZSgpIHtcbiAgcmV0dXJuIHJlc3RvcmVUYXJnZXQgIT09IG51bGwgfHwgcmVzdG9yZVF1ZXVlICE9PSBudWxsO1xufVxuZnVuY3Rpb24gcmVzdG9yZVN0YXRlSWZOZWVkZWQoKSB7XG4gIGlmICghcmVzdG9yZVRhcmdldCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciB0YXJnZXQgPSByZXN0b3JlVGFyZ2V0O1xuICB2YXIgcXVldWVkVGFyZ2V0cyA9IHJlc3RvcmVRdWV1ZTtcbiAgcmVzdG9yZVRhcmdldCA9IG51bGw7XG4gIHJlc3RvcmVRdWV1ZSA9IG51bGw7XG4gIHJlc3RvcmVTdGF0ZU9mVGFyZ2V0KHRhcmdldCk7XG5cbiAgaWYgKHF1ZXVlZFRhcmdldHMpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHF1ZXVlZFRhcmdldHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHJlc3RvcmVTdGF0ZU9mVGFyZ2V0KHF1ZXVlZFRhcmdldHNbaV0pO1xuICAgIH1cbiAgfVxufVxuXG4vLyB0aGUgcmVuZGVyZXIuIFN1Y2ggYXMgd2hlbiB3ZSdyZSBkaXNwYXRjaGluZyBldmVudHMgb3IgaWYgdGhpcmQgcGFydHlcbi8vIGxpYnJhcmllcyBuZWVkIHRvIGNhbGwgYmF0Y2hlZFVwZGF0ZXMuIEV2ZW50dWFsbHksIHRoaXMgQVBJIHdpbGwgZ28gYXdheSB3aGVuXG4vLyBldmVyeXRoaW5nIGlzIGJhdGNoZWQgYnkgZGVmYXVsdC4gV2UnbGwgdGhlbiBoYXZlIGEgc2ltaWxhciBBUEkgdG8gb3B0LW91dCBvZlxuLy8gc2NoZWR1bGVkIHdvcmsgYW5kIGluc3RlYWQgZG8gc3luY2hyb25vdXMgd29yay5cbi8vIERlZmF1bHRzXG5cbnZhciBiYXRjaGVkVXBkYXRlc0ltcGwgPSBmdW5jdGlvbiAoZm4sIGJvb2trZWVwaW5nKSB7XG4gIHJldHVybiBmbihib29ra2VlcGluZyk7XG59O1xuXG52YXIgZGlzY3JldGVVcGRhdGVzSW1wbCA9IGZ1bmN0aW9uIChmbiwgYSwgYiwgYywgZCkge1xuICByZXR1cm4gZm4oYSwgYiwgYywgZCk7XG59O1xuXG52YXIgZmx1c2hEaXNjcmV0ZVVwZGF0ZXNJbXBsID0gZnVuY3Rpb24gKCkge307XG5cbnZhciBiYXRjaGVkRXZlbnRVcGRhdGVzSW1wbCA9IGJhdGNoZWRVcGRhdGVzSW1wbDtcbnZhciBpc0luc2lkZUV2ZW50SGFuZGxlciA9IGZhbHNlO1xudmFyIGlzQmF0Y2hpbmdFdmVudFVwZGF0ZXMgPSBmYWxzZTtcblxuZnVuY3Rpb24gZmluaXNoRXZlbnRIYW5kbGVyKCkge1xuICAvLyBIZXJlIHdlIHdhaXQgdW50aWwgYWxsIHVwZGF0ZXMgaGF2ZSBwcm9wYWdhdGVkLCB3aGljaCBpcyBpbXBvcnRhbnRcbiAgLy8gd2hlbiB1c2luZyBjb250cm9sbGVkIGNvbXBvbmVudHMgd2l0aGluIGxheWVyczpcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xNjk4XG4gIC8vIFRoZW4gd2UgcmVzdG9yZSBzdGF0ZSBvZiBhbnkgY29udHJvbGxlZCBjb21wb25lbnQuXG4gIHZhciBjb250cm9sbGVkQ29tcG9uZW50c0hhdmVQZW5kaW5nVXBkYXRlcyA9IG5lZWRzU3RhdGVSZXN0b3JlKCk7XG5cbiAgaWYgKGNvbnRyb2xsZWRDb21wb25lbnRzSGF2ZVBlbmRpbmdVcGRhdGVzKSB7XG4gICAgLy8gSWYgYSBjb250cm9sbGVkIGV2ZW50IHdhcyBmaXJlZCwgd2UgbWF5IG5lZWQgdG8gcmVzdG9yZSB0aGUgc3RhdGUgb2ZcbiAgICAvLyB0aGUgRE9NIG5vZGUgYmFjayB0byB0aGUgY29udHJvbGxlZCB2YWx1ZS4gVGhpcyBpcyBuZWNlc3Nhcnkgd2hlbiBSZWFjdFxuICAgIC8vIGJhaWxzIG91dCBvZiB0aGUgdXBkYXRlIHdpdGhvdXQgdG91Y2hpbmcgdGhlIERPTS5cbiAgICBmbHVzaERpc2NyZXRlVXBkYXRlc0ltcGwoKTtcbiAgICByZXN0b3JlU3RhdGVJZk5lZWRlZCgpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGJhdGNoZWRVcGRhdGVzKGZuLCBib29ra2VlcGluZykge1xuICBpZiAoaXNJbnNpZGVFdmVudEhhbmRsZXIpIHtcbiAgICAvLyBJZiB3ZSBhcmUgY3VycmVudGx5IGluc2lkZSBhbm90aGVyIGJhdGNoLCB3ZSBuZWVkIHRvIHdhaXQgdW50aWwgaXRcbiAgICAvLyBmdWxseSBjb21wbGV0ZXMgYmVmb3JlIHJlc3RvcmluZyBzdGF0ZS5cbiAgICByZXR1cm4gZm4oYm9va2tlZXBpbmcpO1xuICB9XG5cbiAgaXNJbnNpZGVFdmVudEhhbmRsZXIgPSB0cnVlO1xuXG4gIHRyeSB7XG4gICAgcmV0dXJuIGJhdGNoZWRVcGRhdGVzSW1wbChmbiwgYm9va2tlZXBpbmcpO1xuICB9IGZpbmFsbHkge1xuICAgIGlzSW5zaWRlRXZlbnRIYW5kbGVyID0gZmFsc2U7XG4gICAgZmluaXNoRXZlbnRIYW5kbGVyKCk7XG4gIH1cbn1cbmZ1bmN0aW9uIGJhdGNoZWRFdmVudFVwZGF0ZXMoZm4sIGEsIGIpIHtcbiAgaWYgKGlzQmF0Y2hpbmdFdmVudFVwZGF0ZXMpIHtcbiAgICAvLyBJZiB3ZSBhcmUgY3VycmVudGx5IGluc2lkZSBhbm90aGVyIGJhdGNoLCB3ZSBuZWVkIHRvIHdhaXQgdW50aWwgaXRcbiAgICAvLyBmdWxseSBjb21wbGV0ZXMgYmVmb3JlIHJlc3RvcmluZyBzdGF0ZS5cbiAgICByZXR1cm4gZm4oYSwgYik7XG4gIH1cblxuICBpc0JhdGNoaW5nRXZlbnRVcGRhdGVzID0gdHJ1ZTtcblxuICB0cnkge1xuICAgIHJldHVybiBiYXRjaGVkRXZlbnRVcGRhdGVzSW1wbChmbiwgYSwgYik7XG4gIH0gZmluYWxseSB7XG4gICAgaXNCYXRjaGluZ0V2ZW50VXBkYXRlcyA9IGZhbHNlO1xuICAgIGZpbmlzaEV2ZW50SGFuZGxlcigpO1xuICB9XG59XG5mdW5jdGlvbiBkaXNjcmV0ZVVwZGF0ZXMoZm4sIGEsIGIsIGMsIGQpIHtcbiAgdmFyIHByZXZJc0luc2lkZUV2ZW50SGFuZGxlciA9IGlzSW5zaWRlRXZlbnRIYW5kbGVyO1xuICBpc0luc2lkZUV2ZW50SGFuZGxlciA9IHRydWU7XG5cbiAgdHJ5IHtcbiAgICByZXR1cm4gZGlzY3JldGVVcGRhdGVzSW1wbChmbiwgYSwgYiwgYywgZCk7XG4gIH0gZmluYWxseSB7XG4gICAgaXNJbnNpZGVFdmVudEhhbmRsZXIgPSBwcmV2SXNJbnNpZGVFdmVudEhhbmRsZXI7XG5cbiAgICBpZiAoIWlzSW5zaWRlRXZlbnRIYW5kbGVyKSB7XG4gICAgICBmaW5pc2hFdmVudEhhbmRsZXIoKTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIGZsdXNoRGlzY3JldGVVcGRhdGVzSWZOZWVkZWQodGltZVN0YW1wKSB7XG4gIHtcbiAgICBpZiAoIWlzSW5zaWRlRXZlbnRIYW5kbGVyKSB7XG4gICAgICBmbHVzaERpc2NyZXRlVXBkYXRlc0ltcGwoKTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIHNldEJhdGNoaW5nSW1wbGVtZW50YXRpb24oX2JhdGNoZWRVcGRhdGVzSW1wbCwgX2Rpc2NyZXRlVXBkYXRlc0ltcGwsIF9mbHVzaERpc2NyZXRlVXBkYXRlc0ltcGwsIF9iYXRjaGVkRXZlbnRVcGRhdGVzSW1wbCkge1xuICBiYXRjaGVkVXBkYXRlc0ltcGwgPSBfYmF0Y2hlZFVwZGF0ZXNJbXBsO1xuICBkaXNjcmV0ZVVwZGF0ZXNJbXBsID0gX2Rpc2NyZXRlVXBkYXRlc0ltcGw7XG4gIGZsdXNoRGlzY3JldGVVcGRhdGVzSW1wbCA9IF9mbHVzaERpc2NyZXRlVXBkYXRlc0ltcGw7XG4gIGJhdGNoZWRFdmVudFVwZGF0ZXNJbXBsID0gX2JhdGNoZWRFdmVudFVwZGF0ZXNJbXBsO1xufVxuXG5mdW5jdGlvbiBpc0ludGVyYWN0aXZlKHRhZykge1xuICByZXR1cm4gdGFnID09PSAnYnV0dG9uJyB8fCB0YWcgPT09ICdpbnB1dCcgfHwgdGFnID09PSAnc2VsZWN0JyB8fCB0YWcgPT09ICd0ZXh0YXJlYSc7XG59XG5cbmZ1bmN0aW9uIHNob3VsZFByZXZlbnRNb3VzZUV2ZW50KG5hbWUsIHR5cGUsIHByb3BzKSB7XG4gIHN3aXRjaCAobmFtZSkge1xuICAgIGNhc2UgJ29uQ2xpY2snOlxuICAgIGNhc2UgJ29uQ2xpY2tDYXB0dXJlJzpcbiAgICBjYXNlICdvbkRvdWJsZUNsaWNrJzpcbiAgICBjYXNlICdvbkRvdWJsZUNsaWNrQ2FwdHVyZSc6XG4gICAgY2FzZSAnb25Nb3VzZURvd24nOlxuICAgIGNhc2UgJ29uTW91c2VEb3duQ2FwdHVyZSc6XG4gICAgY2FzZSAnb25Nb3VzZU1vdmUnOlxuICAgIGNhc2UgJ29uTW91c2VNb3ZlQ2FwdHVyZSc6XG4gICAgY2FzZSAnb25Nb3VzZVVwJzpcbiAgICBjYXNlICdvbk1vdXNlVXBDYXB0dXJlJzpcbiAgICBjYXNlICdvbk1vdXNlRW50ZXInOlxuICAgICAgcmV0dXJuICEhKHByb3BzLmRpc2FibGVkICYmIGlzSW50ZXJhY3RpdmUodHlwZSkpO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuLyoqXG4gKiBAcGFyYW0ge29iamVjdH0gaW5zdCBUaGUgaW5zdGFuY2UsIHdoaWNoIGlzIHRoZSBzb3VyY2Ugb2YgZXZlbnRzLlxuICogQHBhcmFtIHtzdHJpbmd9IHJlZ2lzdHJhdGlvbk5hbWUgTmFtZSBvZiBsaXN0ZW5lciAoZS5nLiBgb25DbGlja2ApLlxuICogQHJldHVybiB7P2Z1bmN0aW9ufSBUaGUgc3RvcmVkIGNhbGxiYWNrLlxuICovXG5cblxuZnVuY3Rpb24gZ2V0TGlzdGVuZXIoaW5zdCwgcmVnaXN0cmF0aW9uTmFtZSkge1xuICB2YXIgc3RhdGVOb2RlID0gaW5zdC5zdGF0ZU5vZGU7XG5cbiAgaWYgKHN0YXRlTm9kZSA9PT0gbnVsbCkge1xuICAgIC8vIFdvcmsgaW4gcHJvZ3Jlc3MgKGV4OiBvbmxvYWQgZXZlbnRzIGluIGluY3JlbWVudGFsIG1vZGUpLlxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgdmFyIHByb3BzID0gZ2V0RmliZXJDdXJyZW50UHJvcHNGcm9tTm9kZShzdGF0ZU5vZGUpO1xuXG4gIGlmIChwcm9wcyA9PT0gbnVsbCkge1xuICAgIC8vIFdvcmsgaW4gcHJvZ3Jlc3MuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICB2YXIgbGlzdGVuZXIgPSBwcm9wc1tyZWdpc3RyYXRpb25OYW1lXTtcblxuICBpZiAoc2hvdWxkUHJldmVudE1vdXNlRXZlbnQocmVnaXN0cmF0aW9uTmFtZSwgaW5zdC50eXBlLCBwcm9wcykpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmICghKCFsaXN0ZW5lciB8fCB0eXBlb2YgbGlzdGVuZXIgPT09ICdmdW5jdGlvbicpKSB7XG4gICAge1xuICAgICAgdGhyb3cgRXJyb3IoIFwiRXhwZWN0ZWQgYFwiICsgcmVnaXN0cmF0aW9uTmFtZSArIFwiYCBsaXN0ZW5lciB0byBiZSBhIGZ1bmN0aW9uLCBpbnN0ZWFkIGdvdCBhIHZhbHVlIG9mIGBcIiArIHR5cGVvZiBsaXN0ZW5lciArIFwiYCB0eXBlLlwiICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGxpc3RlbmVyO1xufVxuXG52YXIgcGFzc2l2ZUJyb3dzZXJFdmVudHNTdXBwb3J0ZWQgPSBmYWxzZTsgLy8gQ2hlY2sgaWYgYnJvd3NlciBzdXBwb3J0IGV2ZW50cyB3aXRoIHBhc3NpdmUgbGlzdGVuZXJzXG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRXZlbnRUYXJnZXQvYWRkRXZlbnRMaXN0ZW5lciNTYWZlbHlfZGV0ZWN0aW5nX29wdGlvbl9zdXBwb3J0XG5cbmlmIChjYW5Vc2VET00pIHtcbiAgdHJ5IHtcbiAgICB2YXIgb3B0aW9ucyA9IHt9OyAvLyAkRmxvd0ZpeE1lOiBJZ25vcmUgRmxvdyBjb21wbGFpbmluZyBhYm91dCBuZWVkaW5nIGEgdmFsdWVcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvcHRpb25zLCAncGFzc2l2ZScsIHtcbiAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICBwYXNzaXZlQnJvd3NlckV2ZW50c1N1cHBvcnRlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Rlc3QnLCBvcHRpb25zLCBvcHRpb25zKTtcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigndGVzdCcsIG9wdGlvbnMsIG9wdGlvbnMpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcGFzc2l2ZUJyb3dzZXJFdmVudHNTdXBwb3J0ZWQgPSBmYWxzZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpbnZva2VHdWFyZGVkQ2FsbGJhY2tQcm9kKG5hbWUsIGZ1bmMsIGNvbnRleHQsIGEsIGIsIGMsIGQsIGUsIGYpIHtcbiAgdmFyIGZ1bmNBcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAzKTtcblxuICB0cnkge1xuICAgIGZ1bmMuYXBwbHkoY29udGV4dCwgZnVuY0FyZ3MpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHRoaXMub25FcnJvcihlcnJvcik7XG4gIH1cbn1cblxudmFyIGludm9rZUd1YXJkZWRDYWxsYmFja0ltcGwgPSBpbnZva2VHdWFyZGVkQ2FsbGJhY2tQcm9kO1xuXG57XG4gIC8vIEluIERFViBtb2RlLCB3ZSBzd2FwIG91dCBpbnZva2VHdWFyZGVkQ2FsbGJhY2sgZm9yIGEgc3BlY2lhbCB2ZXJzaW9uXG4gIC8vIHRoYXQgcGxheXMgbW9yZSBuaWNlbHkgd2l0aCB0aGUgYnJvd3NlcidzIERldlRvb2xzLiBUaGUgaWRlYSBpcyB0byBwcmVzZXJ2ZVxuICAvLyBcIlBhdXNlIG9uIGV4Y2VwdGlvbnNcIiBiZWhhdmlvci4gQmVjYXVzZSBSZWFjdCB3cmFwcyBhbGwgdXNlci1wcm92aWRlZFxuICAvLyBmdW5jdGlvbnMgaW4gaW52b2tlR3VhcmRlZENhbGxiYWNrLCBhbmQgdGhlIHByb2R1Y3Rpb24gdmVyc2lvbiBvZlxuICAvLyBpbnZva2VHdWFyZGVkQ2FsbGJhY2sgdXNlcyBhIHRyeS1jYXRjaCwgYWxsIHVzZXIgZXhjZXB0aW9ucyBhcmUgdHJlYXRlZFxuICAvLyBsaWtlIGNhdWdodCBleGNlcHRpb25zLCBhbmQgdGhlIERldlRvb2xzIHdvbid0IHBhdXNlIHVubGVzcyB0aGUgZGV2ZWxvcGVyXG4gIC8vIHRha2VzIHRoZSBleHRyYSBzdGVwIG9mIGVuYWJsaW5nIHBhdXNlIG9uIGNhdWdodCBleGNlcHRpb25zLiBUaGlzIGlzXG4gIC8vIHVuaW50dWl0aXZlLCB0aG91Z2gsIGJlY2F1c2UgZXZlbiB0aG91Z2ggUmVhY3QgaGFzIGNhdWdodCB0aGUgZXJyb3IsIGZyb21cbiAgLy8gdGhlIGRldmVsb3BlcidzIHBlcnNwZWN0aXZlLCB0aGUgZXJyb3IgaXMgdW5jYXVnaHQuXG4gIC8vXG4gIC8vIFRvIHByZXNlcnZlIHRoZSBleHBlY3RlZCBcIlBhdXNlIG9uIGV4Y2VwdGlvbnNcIiBiZWhhdmlvciwgd2UgZG9uJ3QgdXNlIGFcbiAgLy8gdHJ5LWNhdGNoIGluIERFVi4gSW5zdGVhZCwgd2Ugc3luY2hyb25vdXNseSBkaXNwYXRjaCBhIGZha2UgZXZlbnQgdG8gYSBmYWtlXG4gIC8vIERPTSBub2RlLCBhbmQgY2FsbCB0aGUgdXNlci1wcm92aWRlZCBjYWxsYmFjayBmcm9tIGluc2lkZSBhbiBldmVudCBoYW5kbGVyXG4gIC8vIGZvciB0aGF0IGZha2UgZXZlbnQuIElmIHRoZSBjYWxsYmFjayB0aHJvd3MsIHRoZSBlcnJvciBpcyBcImNhcHR1cmVkXCIgdXNpbmdcbiAgLy8gYSBnbG9iYWwgZXZlbnQgaGFuZGxlci4gQnV0IGJlY2F1c2UgdGhlIGVycm9yIGhhcHBlbnMgaW4gYSBkaWZmZXJlbnRcbiAgLy8gZXZlbnQgbG9vcCBjb250ZXh0LCBpdCBkb2VzIG5vdCBpbnRlcnJ1cHQgdGhlIG5vcm1hbCBwcm9ncmFtIGZsb3cuXG4gIC8vIEVmZmVjdGl2ZWx5LCB0aGlzIGdpdmVzIHVzIHRyeS1jYXRjaCBiZWhhdmlvciB3aXRob3V0IGFjdHVhbGx5IHVzaW5nXG4gIC8vIHRyeS1jYXRjaC4gTmVhdCFcbiAgLy8gQ2hlY2sgdGhhdCB0aGUgYnJvd3NlciBzdXBwb3J0cyB0aGUgQVBJcyB3ZSBuZWVkIHRvIGltcGxlbWVudCBvdXIgc3BlY2lhbFxuICAvLyBERVYgdmVyc2lvbiBvZiBpbnZva2VHdWFyZGVkQ2FsbGJhY2tcbiAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiB3aW5kb3cuZGlzcGF0Y2hFdmVudCA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBkb2N1bWVudC5jcmVhdGVFdmVudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHZhciBmYWtlTm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3JlYWN0Jyk7XG5cbiAgICBpbnZva2VHdWFyZGVkQ2FsbGJhY2tJbXBsID0gZnVuY3Rpb24gaW52b2tlR3VhcmRlZENhbGxiYWNrRGV2KG5hbWUsIGZ1bmMsIGNvbnRleHQsIGEsIGIsIGMsIGQsIGUsIGYpIHtcbiAgICAgIC8vIElmIGRvY3VtZW50IGRvZXNuJ3QgZXhpc3Qgd2Uga25vdyBmb3Igc3VyZSB3ZSB3aWxsIGNyYXNoIGluIHRoaXMgbWV0aG9kXG4gICAgICAvLyB3aGVuIHdlIGNhbGwgZG9jdW1lbnQuY3JlYXRlRXZlbnQoKS4gSG93ZXZlciB0aGlzIGNhbiBjYXVzZSBjb25mdXNpbmdcbiAgICAgIC8vIGVycm9yczogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29raW5jdWJhdG9yL2NyZWF0ZS1yZWFjdC1hcHAvaXNzdWVzLzM0ODJcbiAgICAgIC8vIFNvIHdlIHByZWVtcHRpdmVseSB0aHJvdyB3aXRoIGEgYmV0dGVyIG1lc3NhZ2UgaW5zdGVhZC5cbiAgICAgIGlmICghKHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcpKSB7XG4gICAgICAgIHtcbiAgICAgICAgICB0aHJvdyBFcnJvciggXCJUaGUgYGRvY3VtZW50YCBnbG9iYWwgd2FzIGRlZmluZWQgd2hlbiBSZWFjdCB3YXMgaW5pdGlhbGl6ZWQsIGJ1dCBpcyBub3QgZGVmaW5lZCBhbnltb3JlLiBUaGlzIGNhbiBoYXBwZW4gaW4gYSB0ZXN0IGVudmlyb25tZW50IGlmIGEgY29tcG9uZW50IHNjaGVkdWxlcyBhbiB1cGRhdGUgZnJvbSBhbiBhc3luY2hyb25vdXMgY2FsbGJhY2ssIGJ1dCB0aGUgdGVzdCBoYXMgYWxyZWFkeSBmaW5pc2hlZCBydW5uaW5nLiBUbyBzb2x2ZSB0aGlzLCB5b3UgY2FuIGVpdGhlciB1bm1vdW50IHRoZSBjb21wb25lbnQgYXQgdGhlIGVuZCBvZiB5b3VyIHRlc3QgKGFuZCBlbnN1cmUgdGhhdCBhbnkgYXN5bmNocm9ub3VzIG9wZXJhdGlvbnMgZ2V0IGNhbmNlbGVkIGluIGBjb21wb25lbnRXaWxsVW5tb3VudGApLCBvciB5b3UgY2FuIGNoYW5nZSB0aGUgdGVzdCBpdHNlbGYgdG8gYmUgYXN5bmNocm9ub3VzLlwiICk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdmFyIGV2dCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdFdmVudCcpO1xuICAgICAgdmFyIGRpZENhbGwgPSBmYWxzZTsgLy8gS2VlcHMgdHJhY2sgb2Ygd2hldGhlciB0aGUgdXNlci1wcm92aWRlZCBjYWxsYmFjayB0aHJldyBhbiBlcnJvci4gV2VcbiAgICAgIC8vIHNldCB0aGlzIHRvIHRydWUgYXQgdGhlIGJlZ2lubmluZywgdGhlbiBzZXQgaXQgdG8gZmFsc2UgcmlnaHQgYWZ0ZXJcbiAgICAgIC8vIGNhbGxpbmcgdGhlIGZ1bmN0aW9uLiBJZiB0aGUgZnVuY3Rpb24gZXJyb3JzLCBgZGlkRXJyb3JgIHdpbGwgbmV2ZXIgYmVcbiAgICAgIC8vIHNldCB0byBmYWxzZS4gVGhpcyBzdHJhdGVneSB3b3JrcyBldmVuIGlmIHRoZSBicm93c2VyIGlzIGZsYWt5IGFuZFxuICAgICAgLy8gZmFpbHMgdG8gY2FsbCBvdXIgZ2xvYmFsIGVycm9yIGhhbmRsZXIsIGJlY2F1c2UgaXQgZG9lc24ndCByZWx5IG9uXG4gICAgICAvLyB0aGUgZXJyb3IgZXZlbnQgYXQgYWxsLlxuXG4gICAgICB2YXIgZGlkRXJyb3IgPSB0cnVlOyAvLyBLZWVwcyB0cmFjayBvZiB0aGUgdmFsdWUgb2Ygd2luZG93LmV2ZW50IHNvIHRoYXQgd2UgY2FuIHJlc2V0IGl0XG4gICAgICAvLyBkdXJpbmcgdGhlIGNhbGxiYWNrIHRvIGxldCB1c2VyIGNvZGUgYWNjZXNzIHdpbmRvdy5ldmVudCBpbiB0aGVcbiAgICAgIC8vIGJyb3dzZXJzIHRoYXQgc3VwcG9ydCBpdC5cblxuICAgICAgdmFyIHdpbmRvd0V2ZW50ID0gd2luZG93LmV2ZW50OyAvLyBLZWVwcyB0cmFjayBvZiB0aGUgZGVzY3JpcHRvciBvZiB3aW5kb3cuZXZlbnQgdG8gcmVzdG9yZSBpdCBhZnRlciBldmVudFxuICAgICAgLy8gZGlzcGF0Y2hpbmc6IGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMTM2ODhcblxuICAgICAgdmFyIHdpbmRvd0V2ZW50RGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnZXZlbnQnKTtcblxuICAgICAgZnVuY3Rpb24gcmVzdG9yZUFmdGVyRGlzcGF0Y2goKSB7XG4gICAgICAgIC8vIFdlIGltbWVkaWF0ZWx5IHJlbW92ZSB0aGUgY2FsbGJhY2sgZnJvbSBldmVudCBsaXN0ZW5lcnMgc28gdGhhdFxuICAgICAgICAvLyBuZXN0ZWQgYGludm9rZUd1YXJkZWRDYWxsYmFja2AgY2FsbHMgZG8gbm90IGNsYXNoLiBPdGhlcndpc2UsIGFcbiAgICAgICAgLy8gbmVzdGVkIGNhbGwgd291bGQgdHJpZ2dlciB0aGUgZmFrZSBldmVudCBoYW5kbGVycyBvZiBhbnkgY2FsbCBoaWdoZXJcbiAgICAgICAgLy8gaW4gdGhlIHN0YWNrLlxuICAgICAgICBmYWtlTm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKGV2dFR5cGUsIGNhbGxDYWxsYmFjaywgZmFsc2UpOyAvLyBXZSBjaGVjayBmb3Igd2luZG93Lmhhc093blByb3BlcnR5KCdldmVudCcpIHRvIHByZXZlbnQgdGhlXG4gICAgICAgIC8vIHdpbmRvdy5ldmVudCBhc3NpZ25tZW50IGluIGJvdGggSUUgPD0gMTAgYXMgdGhleSB0aHJvdyBhbiBlcnJvclxuICAgICAgICAvLyBcIk1lbWJlciBub3QgZm91bmRcIiBpbiBzdHJpY3QgbW9kZSwgYW5kIGluIEZpcmVmb3ggd2hpY2ggZG9lcyBub3RcbiAgICAgICAgLy8gc3VwcG9ydCB3aW5kb3cuZXZlbnQuXG5cbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cuZXZlbnQgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5oYXNPd25Qcm9wZXJ0eSgnZXZlbnQnKSkge1xuICAgICAgICAgIHdpbmRvdy5ldmVudCA9IHdpbmRvd0V2ZW50O1xuICAgICAgICB9XG4gICAgICB9IC8vIENyZWF0ZSBhbiBldmVudCBoYW5kbGVyIGZvciBvdXIgZmFrZSBldmVudC4gV2Ugd2lsbCBzeW5jaHJvbm91c2x5XG4gICAgICAvLyBkaXNwYXRjaCBvdXIgZmFrZSBldmVudCB1c2luZyBgZGlzcGF0Y2hFdmVudGAuIEluc2lkZSB0aGUgaGFuZGxlciwgd2VcbiAgICAgIC8vIGNhbGwgdGhlIHVzZXItcHJvdmlkZWQgY2FsbGJhY2suXG5cblxuICAgICAgdmFyIGZ1bmNBcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAzKTtcblxuICAgICAgZnVuY3Rpb24gY2FsbENhbGxiYWNrKCkge1xuICAgICAgICBkaWRDYWxsID0gdHJ1ZTtcbiAgICAgICAgcmVzdG9yZUFmdGVyRGlzcGF0Y2goKTtcbiAgICAgICAgZnVuYy5hcHBseShjb250ZXh0LCBmdW5jQXJncyk7XG4gICAgICAgIGRpZEVycm9yID0gZmFsc2U7XG4gICAgICB9IC8vIENyZWF0ZSBhIGdsb2JhbCBlcnJvciBldmVudCBoYW5kbGVyLiBXZSB1c2UgdGhpcyB0byBjYXB0dXJlIHRoZSB2YWx1ZVxuICAgICAgLy8gdGhhdCB3YXMgdGhyb3duLiBJdCdzIHBvc3NpYmxlIHRoYXQgdGhpcyBlcnJvciBoYW5kbGVyIHdpbGwgZmlyZSBtb3JlXG4gICAgICAvLyB0aGFuIG9uY2U7IGZvciBleGFtcGxlLCBpZiBub24tUmVhY3QgY29kZSBhbHNvIGNhbGxzIGBkaXNwYXRjaEV2ZW50YFxuICAgICAgLy8gYW5kIGEgaGFuZGxlciBmb3IgdGhhdCBldmVudCB0aHJvd3MuIFdlIHNob3VsZCBiZSByZXNpbGllbnQgdG8gbW9zdCBvZlxuICAgICAgLy8gdGhvc2UgY2FzZXMuIEV2ZW4gaWYgb3VyIGVycm9yIGV2ZW50IGhhbmRsZXIgZmlyZXMgbW9yZSB0aGFuIG9uY2UsIHRoZVxuICAgICAgLy8gbGFzdCBlcnJvciBldmVudCBpcyBhbHdheXMgdXNlZC4gSWYgdGhlIGNhbGxiYWNrIGFjdHVhbGx5IGRvZXMgZXJyb3IsXG4gICAgICAvLyB3ZSBrbm93IHRoYXQgdGhlIGxhc3QgZXJyb3IgZXZlbnQgaXMgdGhlIGNvcnJlY3Qgb25lLCBiZWNhdXNlIGl0J3Mgbm90XG4gICAgICAvLyBwb3NzaWJsZSBmb3IgYW55dGhpbmcgZWxzZSB0byBoYXZlIGhhcHBlbmVkIGluIGJldHdlZW4gb3VyIGNhbGxiYWNrXG4gICAgICAvLyBlcnJvcmluZyBhbmQgdGhlIGNvZGUgdGhhdCBmb2xsb3dzIHRoZSBgZGlzcGF0Y2hFdmVudGAgY2FsbCBiZWxvdy4gSWZcbiAgICAgIC8vIHRoZSBjYWxsYmFjayBkb2Vzbid0IGVycm9yLCBidXQgdGhlIGVycm9yIGV2ZW50IHdhcyBmaXJlZCwgd2Uga25vdyB0b1xuICAgICAgLy8gaWdub3JlIGl0IGJlY2F1c2UgYGRpZEVycm9yYCB3aWxsIGJlIGZhbHNlLCBhcyBkZXNjcmliZWQgYWJvdmUuXG5cblxuICAgICAgdmFyIGVycm9yOyAvLyBVc2UgdGhpcyB0byB0cmFjayB3aGV0aGVyIHRoZSBlcnJvciBldmVudCBpcyBldmVyIGNhbGxlZC5cblxuICAgICAgdmFyIGRpZFNldEVycm9yID0gZmFsc2U7XG4gICAgICB2YXIgaXNDcm9zc09yaWdpbkVycm9yID0gZmFsc2U7XG5cbiAgICAgIGZ1bmN0aW9uIGhhbmRsZVdpbmRvd0Vycm9yKGV2ZW50KSB7XG4gICAgICAgIGVycm9yID0gZXZlbnQuZXJyb3I7XG4gICAgICAgIGRpZFNldEVycm9yID0gdHJ1ZTtcblxuICAgICAgICBpZiAoZXJyb3IgPT09IG51bGwgJiYgZXZlbnQuY29sbm8gPT09IDAgJiYgZXZlbnQubGluZW5vID09PSAwKSB7XG4gICAgICAgICAgaXNDcm9zc09yaWdpbkVycm9yID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgLy8gU29tZSBvdGhlciBlcnJvciBoYW5kbGVyIGhhcyBwcmV2ZW50ZWQgZGVmYXVsdC5cbiAgICAgICAgICAvLyBCcm93c2VycyBzaWxlbmNlIHRoZSBlcnJvciByZXBvcnQgaWYgdGhpcyBoYXBwZW5zLlxuICAgICAgICAgIC8vIFdlJ2xsIHJlbWVtYmVyIHRoaXMgdG8gbGF0ZXIgZGVjaWRlIHdoZXRoZXIgdG8gbG9nIGl0IG9yIG5vdC5cbiAgICAgICAgICBpZiAoZXJyb3IgIT0gbnVsbCAmJiB0eXBlb2YgZXJyb3IgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBlcnJvci5fc3VwcHJlc3NMb2dnaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGlubmVyKSB7Ly8gSWdub3JlLlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSAvLyBDcmVhdGUgYSBmYWtlIGV2ZW50IHR5cGUuXG5cblxuICAgICAgdmFyIGV2dFR5cGUgPSBcInJlYWN0LVwiICsgKG5hbWUgPyBuYW1lIDogJ2ludm9rZWd1YXJkZWRjYWxsYmFjaycpOyAvLyBBdHRhY2ggb3VyIGV2ZW50IGhhbmRsZXJzXG5cbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIGhhbmRsZVdpbmRvd0Vycm9yKTtcbiAgICAgIGZha2VOb2RlLmFkZEV2ZW50TGlzdGVuZXIoZXZ0VHlwZSwgY2FsbENhbGxiYWNrLCBmYWxzZSk7IC8vIFN5bmNocm9ub3VzbHkgZGlzcGF0Y2ggb3VyIGZha2UgZXZlbnQuIElmIHRoZSB1c2VyLXByb3ZpZGVkIGZ1bmN0aW9uXG4gICAgICAvLyBlcnJvcnMsIGl0IHdpbGwgdHJpZ2dlciBvdXIgZ2xvYmFsIGVycm9yIGhhbmRsZXIuXG5cbiAgICAgIGV2dC5pbml0RXZlbnQoZXZ0VHlwZSwgZmFsc2UsIGZhbHNlKTtcbiAgICAgIGZha2VOb2RlLmRpc3BhdGNoRXZlbnQoZXZ0KTtcblxuICAgICAgaWYgKHdpbmRvd0V2ZW50RGVzY3JpcHRvcikge1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LCAnZXZlbnQnLCB3aW5kb3dFdmVudERlc2NyaXB0b3IpO1xuICAgICAgfVxuXG4gICAgICBpZiAoZGlkQ2FsbCAmJiBkaWRFcnJvcikge1xuICAgICAgICBpZiAoIWRpZFNldEVycm9yKSB7XG4gICAgICAgICAgLy8gVGhlIGNhbGxiYWNrIGVycm9yZWQsIGJ1dCB0aGUgZXJyb3IgZXZlbnQgbmV2ZXIgZmlyZWQuXG4gICAgICAgICAgZXJyb3IgPSBuZXcgRXJyb3IoJ0FuIGVycm9yIHdhcyB0aHJvd24gaW5zaWRlIG9uZSBvZiB5b3VyIGNvbXBvbmVudHMsIGJ1dCBSZWFjdCAnICsgXCJkb2Vzbid0IGtub3cgd2hhdCBpdCB3YXMuIFRoaXMgaXMgbGlrZWx5IGR1ZSB0byBicm93c2VyIFwiICsgJ2ZsYWtpbmVzcy4gUmVhY3QgZG9lcyBpdHMgYmVzdCB0byBwcmVzZXJ2ZSB0aGUgXCJQYXVzZSBvbiAnICsgJ2V4Y2VwdGlvbnNcIiBiZWhhdmlvciBvZiB0aGUgRGV2VG9vbHMsIHdoaWNoIHJlcXVpcmVzIHNvbWUgJyArIFwiREVWLW1vZGUgb25seSB0cmlja3MuIEl0J3MgcG9zc2libGUgdGhhdCB0aGVzZSBkb24ndCB3b3JrIGluIFwiICsgJ3lvdXIgYnJvd3Nlci4gVHJ5IHRyaWdnZXJpbmcgdGhlIGVycm9yIGluIHByb2R1Y3Rpb24gbW9kZSwgJyArICdvciBzd2l0Y2hpbmcgdG8gYSBtb2Rlcm4gYnJvd3Nlci4gSWYgeW91IHN1c3BlY3QgdGhhdCB0aGlzIGlzICcgKyAnYWN0dWFsbHkgYW4gaXNzdWUgd2l0aCBSZWFjdCwgcGxlYXNlIGZpbGUgYW4gaXNzdWUuJyk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNDcm9zc09yaWdpbkVycm9yKSB7XG4gICAgICAgICAgZXJyb3IgPSBuZXcgRXJyb3IoXCJBIGNyb3NzLW9yaWdpbiBlcnJvciB3YXMgdGhyb3duLiBSZWFjdCBkb2Vzbid0IGhhdmUgYWNjZXNzIHRvIFwiICsgJ3RoZSBhY3R1YWwgZXJyb3Igb2JqZWN0IGluIGRldmVsb3BtZW50LiAnICsgJ1NlZSBodHRwczovL3JlYWN0anMub3JnL2xpbmsvY3Jvc3NvcmlnaW4tZXJyb3IgZm9yIG1vcmUgaW5mb3JtYXRpb24uJyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm9uRXJyb3IoZXJyb3IpO1xuICAgICAgfSAvLyBSZW1vdmUgb3VyIGV2ZW50IGxpc3RlbmVyc1xuXG5cbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdlcnJvcicsIGhhbmRsZVdpbmRvd0Vycm9yKTtcblxuICAgICAgaWYgKCFkaWRDYWxsKSB7XG4gICAgICAgIC8vIFNvbWV0aGluZyB3ZW50IHJlYWxseSB3cm9uZywgYW5kIG91ciBldmVudCB3YXMgbm90IGRpc3BhdGNoZWQuXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMTY3MzRcbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xNjU4NVxuICAgICAgICAvLyBGYWxsIGJhY2sgdG8gdGhlIHByb2R1Y3Rpb24gaW1wbGVtZW50YXRpb24uXG4gICAgICAgIHJlc3RvcmVBZnRlckRpc3BhdGNoKCk7XG4gICAgICAgIHJldHVybiBpbnZva2VHdWFyZGVkQ2FsbGJhY2tQcm9kLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICB9XG4gICAgfTtcbiAgfVxufVxuXG52YXIgaW52b2tlR3VhcmRlZENhbGxiYWNrSW1wbCQxID0gaW52b2tlR3VhcmRlZENhbGxiYWNrSW1wbDtcblxudmFyIGhhc0Vycm9yID0gZmFsc2U7XG52YXIgY2F1Z2h0RXJyb3IgPSBudWxsOyAvLyBVc2VkIGJ5IGV2ZW50IHN5c3RlbSB0byBjYXB0dXJlL3JldGhyb3cgdGhlIGZpcnN0IGVycm9yLlxuXG52YXIgaGFzUmV0aHJvd0Vycm9yID0gZmFsc2U7XG52YXIgcmV0aHJvd0Vycm9yID0gbnVsbDtcbnZhciByZXBvcnRlciA9IHtcbiAgb25FcnJvcjogZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgaGFzRXJyb3IgPSB0cnVlO1xuICAgIGNhdWdodEVycm9yID0gZXJyb3I7XG4gIH1cbn07XG4vKipcbiAqIENhbGwgYSBmdW5jdGlvbiB3aGlsZSBndWFyZGluZyBhZ2FpbnN0IGVycm9ycyB0aGF0IGhhcHBlbnMgd2l0aGluIGl0LlxuICogUmV0dXJucyBhbiBlcnJvciBpZiBpdCB0aHJvd3MsIG90aGVyd2lzZSBudWxsLlxuICpcbiAqIEluIHByb2R1Y3Rpb24sIHRoaXMgaXMgaW1wbGVtZW50ZWQgdXNpbmcgYSB0cnktY2F0Y2guIFRoZSByZWFzb24gd2UgZG9uJ3RcbiAqIHVzZSBhIHRyeS1jYXRjaCBkaXJlY3RseSBpcyBzbyB0aGF0IHdlIGNhbiBzd2FwIG91dCBhIGRpZmZlcmVudFxuICogaW1wbGVtZW50YXRpb24gaW4gREVWIG1vZGUuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IG5hbWUgb2YgdGhlIGd1YXJkIHRvIHVzZSBmb3IgbG9nZ2luZyBvciBkZWJ1Z2dpbmdcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGludm9rZVxuICogQHBhcmFtIHsqfSBjb250ZXh0IFRoZSBjb250ZXh0IHRvIHVzZSB3aGVuIGNhbGxpbmcgdGhlIGZ1bmN0aW9uXG4gKiBAcGFyYW0gey4uLip9IGFyZ3MgQXJndW1lbnRzIGZvciBmdW5jdGlvblxuICovXG5cbmZ1bmN0aW9uIGludm9rZUd1YXJkZWRDYWxsYmFjayhuYW1lLCBmdW5jLCBjb250ZXh0LCBhLCBiLCBjLCBkLCBlLCBmKSB7XG4gIGhhc0Vycm9yID0gZmFsc2U7XG4gIGNhdWdodEVycm9yID0gbnVsbDtcbiAgaW52b2tlR3VhcmRlZENhbGxiYWNrSW1wbCQxLmFwcGx5KHJlcG9ydGVyLCBhcmd1bWVudHMpO1xufVxuLyoqXG4gKiBTYW1lIGFzIGludm9rZUd1YXJkZWRDYWxsYmFjaywgYnV0IGluc3RlYWQgb2YgcmV0dXJuaW5nIGFuIGVycm9yLCBpdCBzdG9yZXNcbiAqIGl0IGluIGEgZ2xvYmFsIHNvIGl0IGNhbiBiZSByZXRocm93biBieSBgcmV0aHJvd0NhdWdodEVycm9yYCBsYXRlci5cbiAqIFRPRE86IFNlZSBpZiBjYXVnaHRFcnJvciBhbmQgcmV0aHJvd0Vycm9yIGNhbiBiZSB1bmlmaWVkLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lIG9mIHRoZSBndWFyZCB0byB1c2UgZm9yIGxvZ2dpbmcgb3IgZGVidWdnaW5nXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBpbnZva2VcbiAqIEBwYXJhbSB7Kn0gY29udGV4dCBUaGUgY29udGV4dCB0byB1c2Ugd2hlbiBjYWxsaW5nIHRoZSBmdW5jdGlvblxuICogQHBhcmFtIHsuLi4qfSBhcmdzIEFyZ3VtZW50cyBmb3IgZnVuY3Rpb25cbiAqL1xuXG5mdW5jdGlvbiBpbnZva2VHdWFyZGVkQ2FsbGJhY2tBbmRDYXRjaEZpcnN0RXJyb3IobmFtZSwgZnVuYywgY29udGV4dCwgYSwgYiwgYywgZCwgZSwgZikge1xuICBpbnZva2VHdWFyZGVkQ2FsbGJhY2suYXBwbHkodGhpcywgYXJndW1lbnRzKTtcblxuICBpZiAoaGFzRXJyb3IpIHtcbiAgICB2YXIgZXJyb3IgPSBjbGVhckNhdWdodEVycm9yKCk7XG5cbiAgICBpZiAoIWhhc1JldGhyb3dFcnJvcikge1xuICAgICAgaGFzUmV0aHJvd0Vycm9yID0gdHJ1ZTtcbiAgICAgIHJldGhyb3dFcnJvciA9IGVycm9yO1xuICAgIH1cbiAgfVxufVxuLyoqXG4gKiBEdXJpbmcgZXhlY3V0aW9uIG9mIGd1YXJkZWQgZnVuY3Rpb25zIHdlIHdpbGwgY2FwdHVyZSB0aGUgZmlyc3QgZXJyb3Igd2hpY2hcbiAqIHdlIHdpbGwgcmV0aHJvdyB0byBiZSBoYW5kbGVkIGJ5IHRoZSB0b3AgbGV2ZWwgZXJyb3IgaGFuZGxlci5cbiAqL1xuXG5mdW5jdGlvbiByZXRocm93Q2F1Z2h0RXJyb3IoKSB7XG4gIGlmIChoYXNSZXRocm93RXJyb3IpIHtcbiAgICB2YXIgZXJyb3IgPSByZXRocm93RXJyb3I7XG4gICAgaGFzUmV0aHJvd0Vycm9yID0gZmFsc2U7XG4gICAgcmV0aHJvd0Vycm9yID0gbnVsbDtcbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufVxuZnVuY3Rpb24gaGFzQ2F1Z2h0RXJyb3IoKSB7XG4gIHJldHVybiBoYXNFcnJvcjtcbn1cbmZ1bmN0aW9uIGNsZWFyQ2F1Z2h0RXJyb3IoKSB7XG4gIGlmIChoYXNFcnJvcikge1xuICAgIHZhciBlcnJvciA9IGNhdWdodEVycm9yO1xuICAgIGhhc0Vycm9yID0gZmFsc2U7XG4gICAgY2F1Z2h0RXJyb3IgPSBudWxsO1xuICAgIHJldHVybiBlcnJvcjtcbiAgfSBlbHNlIHtcbiAgICB7XG4gICAgICB7XG4gICAgICAgIHRocm93IEVycm9yKCBcImNsZWFyQ2F1Z2h0RXJyb3Igd2FzIGNhbGxlZCBidXQgbm8gZXJyb3Igd2FzIGNhcHR1cmVkLiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLlwiICk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogYFJlYWN0SW5zdGFuY2VNYXBgIG1haW50YWlucyBhIG1hcHBpbmcgZnJvbSBhIHB1YmxpYyBmYWNpbmcgc3RhdGVmdWxcbiAqIGluc3RhbmNlIChrZXkpIGFuZCB0aGUgaW50ZXJuYWwgcmVwcmVzZW50YXRpb24gKHZhbHVlKS4gVGhpcyBhbGxvd3MgcHVibGljXG4gKiBtZXRob2RzIHRvIGFjY2VwdCB0aGUgdXNlciBmYWNpbmcgaW5zdGFuY2UgYXMgYW4gYXJndW1lbnQgYW5kIG1hcCB0aGVtIGJhY2tcbiAqIHRvIGludGVybmFsIG1ldGhvZHMuXG4gKlxuICogTm90ZSB0aGF0IHRoaXMgbW9kdWxlIGlzIGN1cnJlbnRseSBzaGFyZWQgYW5kIGFzc3VtZWQgdG8gYmUgc3RhdGVsZXNzLlxuICogSWYgdGhpcyBiZWNvbWVzIGFuIGFjdHVhbCBNYXAsIHRoYXQgd2lsbCBicmVhay5cbiAqL1xuZnVuY3Rpb24gZ2V0KGtleSkge1xuICByZXR1cm4ga2V5Ll9yZWFjdEludGVybmFscztcbn1cbmZ1bmN0aW9uIGhhcyhrZXkpIHtcbiAgcmV0dXJuIGtleS5fcmVhY3RJbnRlcm5hbHMgIT09IHVuZGVmaW5lZDtcbn1cbmZ1bmN0aW9uIHNldChrZXksIHZhbHVlKSB7XG4gIGtleS5fcmVhY3RJbnRlcm5hbHMgPSB2YWx1ZTtcbn1cblxuLy8gRG9uJ3QgY2hhbmdlIHRoZXNlIHR3byB2YWx1ZXMuIFRoZXkncmUgdXNlZCBieSBSZWFjdCBEZXYgVG9vbHMuXG52YXIgTm9GbGFncyA9XG4vKiAgICAgICAgICAgICAgICAgICAgICAqL1xuMDtcbnZhciBQZXJmb3JtZWRXb3JrID1cbi8qICAgICAgICAgICAgICAgICovXG4xOyAvLyBZb3UgY2FuIGNoYW5nZSB0aGUgcmVzdCAoYW5kIGFkZCBtb3JlKS5cblxudmFyIFBsYWNlbWVudCA9XG4vKiAgICAgICAgICAgICAgICAgICAgKi9cbjI7XG52YXIgVXBkYXRlID1cbi8qICAgICAgICAgICAgICAgICAgICAgICAqL1xuNDtcbnZhciBQbGFjZW1lbnRBbmRVcGRhdGUgPVxuLyogICAgICAgICAgICovXG42O1xudmFyIERlbGV0aW9uID1cbi8qICAgICAgICAgICAgICAgICAgICAgKi9cbjg7XG52YXIgQ29udGVudFJlc2V0ID1cbi8qICAgICAgICAgICAgICAgICAqL1xuMTY7XG52YXIgQ2FsbGJhY2sgPVxuLyogICAgICAgICAgICAgICAgICAgICAqL1xuMzI7XG52YXIgRGlkQ2FwdHVyZSA9XG4vKiAgICAgICAgICAgICAgICAgICAqL1xuNjQ7XG52YXIgUmVmID1cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuMTI4O1xudmFyIFNuYXBzaG90ID1cbi8qICAgICAgICAgICAgICAgICAgICAgKi9cbjI1NjtcbnZhciBQYXNzaXZlID1cbi8qICAgICAgICAgICAgICAgICAgICAgICovXG41MTI7IC8vIFRPRE8gKGVmZmVjdHMpIFJlbW92ZSB0aGlzIGJpdCBvbmNlIHRoZSBuZXcgcmVjb25jaWxlciBpcyBzeW5jZWQgdG8gdGhlIG9sZC5cblxudmFyIFBhc3NpdmVVbm1vdW50UGVuZGluZ0RldiA9XG4vKiAgICAgKi9cbjgxOTI7XG52YXIgSHlkcmF0aW5nID1cbi8qICAgICAgICAgICAgICAgICAgICAqL1xuMTAyNDtcbnZhciBIeWRyYXRpbmdBbmRVcGRhdGUgPVxuLyogICAgICAgICAgICovXG4xMDI4OyAvLyBQYXNzaXZlICYgVXBkYXRlICYgQ2FsbGJhY2sgJiBSZWYgJiBTbmFwc2hvdFxuXG52YXIgTGlmZWN5Y2xlRWZmZWN0TWFzayA9XG4vKiAgICAgICAgICAqL1xuOTMyOyAvLyBVbmlvbiBvZiBhbGwgaG9zdCBlZmZlY3RzXG5cbnZhciBIb3N0RWZmZWN0TWFzayA9XG4vKiAgICAgICAgICAgICAgICovXG4yMDQ3OyAvLyBUaGVzZSBhcmUgbm90IHJlYWxseSBzaWRlIGVmZmVjdHMsIGJ1dCB3ZSBzdGlsbCByZXVzZSB0aGlzIGZpZWxkLlxuXG52YXIgSW5jb21wbGV0ZSA9XG4vKiAgICAgICAgICAgICAgICAgICAqL1xuMjA0ODtcbnZhciBTaG91bGRDYXB0dXJlID1cbi8qICAgICAgICAgICAgICAgICovXG40MDk2O1xudmFyIEZvcmNlVXBkYXRlRm9yTGVnYWN5U3VzcGVuc2UgPVxuLyogKi9cbjE2Mzg0OyAvLyBTdGF0aWMgdGFncyBkZXNjcmliZSBhc3BlY3RzIG9mIGEgZmliZXIgdGhhdCBhcmUgbm90IHNwZWNpZmljIHRvIGEgcmVuZGVyLFxuXG52YXIgUmVhY3RDdXJyZW50T3duZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdEN1cnJlbnRPd25lcjtcbmZ1bmN0aW9uIGdldE5lYXJlc3RNb3VudGVkRmliZXIoZmliZXIpIHtcbiAgdmFyIG5vZGUgPSBmaWJlcjtcbiAgdmFyIG5lYXJlc3RNb3VudGVkID0gZmliZXI7XG5cbiAgaWYgKCFmaWJlci5hbHRlcm5hdGUpIHtcbiAgICAvLyBJZiB0aGVyZSBpcyBubyBhbHRlcm5hdGUsIHRoaXMgbWlnaHQgYmUgYSBuZXcgdHJlZSB0aGF0IGlzbid0IGluc2VydGVkXG4gICAgLy8geWV0LiBJZiBpdCBpcywgdGhlbiBpdCB3aWxsIGhhdmUgYSBwZW5kaW5nIGluc2VydGlvbiBlZmZlY3Qgb24gaXQuXG4gICAgdmFyIG5leHROb2RlID0gbm9kZTtcblxuICAgIGRvIHtcbiAgICAgIG5vZGUgPSBuZXh0Tm9kZTtcblxuICAgICAgaWYgKChub2RlLmZsYWdzICYgKFBsYWNlbWVudCB8IEh5ZHJhdGluZykpICE9PSBOb0ZsYWdzKSB7XG4gICAgICAgIC8vIFRoaXMgaXMgYW4gaW5zZXJ0aW9uIG9yIGluLXByb2dyZXNzIGh5ZHJhdGlvbi4gVGhlIG5lYXJlc3QgcG9zc2libGVcbiAgICAgICAgLy8gbW91bnRlZCBmaWJlciBpcyB0aGUgcGFyZW50IGJ1dCB3ZSBuZWVkIHRvIGNvbnRpbnVlIHRvIGZpZ3VyZSBvdXRcbiAgICAgICAgLy8gaWYgdGhhdCBvbmUgaXMgc3RpbGwgbW91bnRlZC5cbiAgICAgICAgbmVhcmVzdE1vdW50ZWQgPSBub2RlLnJldHVybjtcbiAgICAgIH1cblxuICAgICAgbmV4dE5vZGUgPSBub2RlLnJldHVybjtcbiAgICB9IHdoaWxlIChuZXh0Tm9kZSk7XG4gIH0gZWxzZSB7XG4gICAgd2hpbGUgKG5vZGUucmV0dXJuKSB7XG4gICAgICBub2RlID0gbm9kZS5yZXR1cm47XG4gICAgfVxuICB9XG5cbiAgaWYgKG5vZGUudGFnID09PSBIb3N0Um9vdCkge1xuICAgIC8vIFRPRE86IENoZWNrIGlmIHRoaXMgd2FzIGEgbmVzdGVkIEhvc3RSb290IHdoZW4gdXNlZCB3aXRoXG4gICAgLy8gcmVuZGVyQ29udGFpbmVySW50b1N1YnRyZWUuXG4gICAgcmV0dXJuIG5lYXJlc3RNb3VudGVkO1xuICB9IC8vIElmIHdlIGRpZG4ndCBoaXQgdGhlIHJvb3QsIHRoYXQgbWVhbnMgdGhhdCB3ZSdyZSBpbiBhbiBkaXNjb25uZWN0ZWQgdHJlZVxuICAvLyB0aGF0IGhhcyBiZWVuIHVubW91bnRlZC5cblxuXG4gIHJldHVybiBudWxsO1xufVxuZnVuY3Rpb24gZ2V0U3VzcGVuc2VJbnN0YW5jZUZyb21GaWJlcihmaWJlcikge1xuICBpZiAoZmliZXIudGFnID09PSBTdXNwZW5zZUNvbXBvbmVudCkge1xuICAgIHZhciBzdXNwZW5zZVN0YXRlID0gZmliZXIubWVtb2l6ZWRTdGF0ZTtcblxuICAgIGlmIChzdXNwZW5zZVN0YXRlID09PSBudWxsKSB7XG4gICAgICB2YXIgY3VycmVudCA9IGZpYmVyLmFsdGVybmF0ZTtcblxuICAgICAgaWYgKGN1cnJlbnQgIT09IG51bGwpIHtcbiAgICAgICAgc3VzcGVuc2VTdGF0ZSA9IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc3VzcGVuc2VTdGF0ZSAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHN1c3BlbnNlU3RhdGUuZGVoeWRyYXRlZDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cbmZ1bmN0aW9uIGdldENvbnRhaW5lckZyb21GaWJlcihmaWJlcikge1xuICByZXR1cm4gZmliZXIudGFnID09PSBIb3N0Um9vdCA/IGZpYmVyLnN0YXRlTm9kZS5jb250YWluZXJJbmZvIDogbnVsbDtcbn1cbmZ1bmN0aW9uIGlzRmliZXJNb3VudGVkKGZpYmVyKSB7XG4gIHJldHVybiBnZXROZWFyZXN0TW91bnRlZEZpYmVyKGZpYmVyKSA9PT0gZmliZXI7XG59XG5mdW5jdGlvbiBpc01vdW50ZWQoY29tcG9uZW50KSB7XG4gIHtcbiAgICB2YXIgb3duZXIgPSBSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50O1xuXG4gICAgaWYgKG93bmVyICE9PSBudWxsICYmIG93bmVyLnRhZyA9PT0gQ2xhc3NDb21wb25lbnQpIHtcbiAgICAgIHZhciBvd25lckZpYmVyID0gb3duZXI7XG4gICAgICB2YXIgaW5zdGFuY2UgPSBvd25lckZpYmVyLnN0YXRlTm9kZTtcblxuICAgICAgaWYgKCFpbnN0YW5jZS5fd2FybmVkQWJvdXRSZWZzSW5SZW5kZXIpIHtcbiAgICAgICAgZXJyb3IoJyVzIGlzIGFjY2Vzc2luZyBpc01vdW50ZWQgaW5zaWRlIGl0cyByZW5kZXIoKSBmdW5jdGlvbi4gJyArICdyZW5kZXIoKSBzaG91bGQgYmUgYSBwdXJlIGZ1bmN0aW9uIG9mIHByb3BzIGFuZCBzdGF0ZS4gSXQgc2hvdWxkICcgKyAnbmV2ZXIgYWNjZXNzIHNvbWV0aGluZyB0aGF0IHJlcXVpcmVzIHN0YWxlIGRhdGEgZnJvbSB0aGUgcHJldmlvdXMgJyArICdyZW5kZXIsIHN1Y2ggYXMgcmVmcy4gTW92ZSB0aGlzIGxvZ2ljIHRvIGNvbXBvbmVudERpZE1vdW50IGFuZCAnICsgJ2NvbXBvbmVudERpZFVwZGF0ZSBpbnN0ZWFkLicsIGdldENvbXBvbmVudE5hbWUob3duZXJGaWJlci50eXBlKSB8fCAnQSBjb21wb25lbnQnKTtcbiAgICAgIH1cblxuICAgICAgaW5zdGFuY2UuX3dhcm5lZEFib3V0UmVmc0luUmVuZGVyID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICB2YXIgZmliZXIgPSBnZXQoY29tcG9uZW50KTtcblxuICBpZiAoIWZpYmVyKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIGdldE5lYXJlc3RNb3VudGVkRmliZXIoZmliZXIpID09PSBmaWJlcjtcbn1cblxuZnVuY3Rpb24gYXNzZXJ0SXNNb3VudGVkKGZpYmVyKSB7XG4gIGlmICghKGdldE5lYXJlc3RNb3VudGVkRmliZXIoZmliZXIpID09PSBmaWJlcikpIHtcbiAgICB7XG4gICAgICB0aHJvdyBFcnJvciggXCJVbmFibGUgdG8gZmluZCBub2RlIG9uIGFuIHVubW91bnRlZCBjb21wb25lbnQuXCIgKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZmluZEN1cnJlbnRGaWJlclVzaW5nU2xvd1BhdGgoZmliZXIpIHtcbiAgdmFyIGFsdGVybmF0ZSA9IGZpYmVyLmFsdGVybmF0ZTtcblxuICBpZiAoIWFsdGVybmF0ZSkge1xuICAgIC8vIElmIHRoZXJlIGlzIG5vIGFsdGVybmF0ZSwgdGhlbiB3ZSBvbmx5IG5lZWQgdG8gY2hlY2sgaWYgaXQgaXMgbW91bnRlZC5cbiAgICB2YXIgbmVhcmVzdE1vdW50ZWQgPSBnZXROZWFyZXN0TW91bnRlZEZpYmVyKGZpYmVyKTtcblxuICAgIGlmICghKG5lYXJlc3RNb3VudGVkICE9PSBudWxsKSkge1xuICAgICAge1xuICAgICAgICB0aHJvdyBFcnJvciggXCJVbmFibGUgdG8gZmluZCBub2RlIG9uIGFuIHVubW91bnRlZCBjb21wb25lbnQuXCIgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobmVhcmVzdE1vdW50ZWQgIT09IGZpYmVyKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gZmliZXI7XG4gIH0gLy8gSWYgd2UgaGF2ZSB0d28gcG9zc2libGUgYnJhbmNoZXMsIHdlJ2xsIHdhbGsgYmFja3dhcmRzIHVwIHRvIHRoZSByb290XG4gIC8vIHRvIHNlZSB3aGF0IHBhdGggdGhlIHJvb3QgcG9pbnRzIHRvLiBPbiB0aGUgd2F5IHdlIG1heSBoaXQgb25lIG9mIHRoZVxuICAvLyBzcGVjaWFsIGNhc2VzIGFuZCB3ZSdsbCBkZWFsIHdpdGggdGhlbS5cblxuXG4gIHZhciBhID0gZmliZXI7XG4gIHZhciBiID0gYWx0ZXJuYXRlO1xuXG4gIHdoaWxlICh0cnVlKSB7XG4gICAgdmFyIHBhcmVudEEgPSBhLnJldHVybjtcblxuICAgIGlmIChwYXJlbnRBID09PSBudWxsKSB7XG4gICAgICAvLyBXZSdyZSBhdCB0aGUgcm9vdC5cbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHZhciBwYXJlbnRCID0gcGFyZW50QS5hbHRlcm5hdGU7XG5cbiAgICBpZiAocGFyZW50QiA9PT0gbnVsbCkge1xuICAgICAgLy8gVGhlcmUgaXMgbm8gYWx0ZXJuYXRlLiBUaGlzIGlzIGFuIHVudXN1YWwgY2FzZS4gQ3VycmVudGx5LCBpdCBvbmx5XG4gICAgICAvLyBoYXBwZW5zIHdoZW4gYSBTdXNwZW5zZSBjb21wb25lbnQgaXMgaGlkZGVuLiBBbiBleHRyYSBmcmFnbWVudCBmaWJlclxuICAgICAgLy8gaXMgaW5zZXJ0ZWQgaW4gYmV0d2VlbiB0aGUgU3VzcGVuc2UgZmliZXIgYW5kIGl0cyBjaGlsZHJlbi4gU2tpcFxuICAgICAgLy8gb3ZlciB0aGlzIGV4dHJhIGZyYWdtZW50IGZpYmVyIGFuZCBwcm9jZWVkIHRvIHRoZSBuZXh0IHBhcmVudC5cbiAgICAgIHZhciBuZXh0UGFyZW50ID0gcGFyZW50QS5yZXR1cm47XG5cbiAgICAgIGlmIChuZXh0UGFyZW50ICE9PSBudWxsKSB7XG4gICAgICAgIGEgPSBiID0gbmV4dFBhcmVudDtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9IC8vIElmIHRoZXJlJ3Mgbm8gcGFyZW50LCB3ZSdyZSBhdCB0aGUgcm9vdC5cblxuXG4gICAgICBicmVhaztcbiAgICB9IC8vIElmIGJvdGggY29waWVzIG9mIHRoZSBwYXJlbnQgZmliZXIgcG9pbnQgdG8gdGhlIHNhbWUgY2hpbGQsIHdlIGNhblxuICAgIC8vIGFzc3VtZSB0aGF0IHRoZSBjaGlsZCBpcyBjdXJyZW50LiBUaGlzIGhhcHBlbnMgd2hlbiB3ZSBiYWlsb3V0IG9uIGxvd1xuICAgIC8vIHByaW9yaXR5OiB0aGUgYmFpbGVkIG91dCBmaWJlcidzIGNoaWxkIHJldXNlcyB0aGUgY3VycmVudCBjaGlsZC5cblxuXG4gICAgaWYgKHBhcmVudEEuY2hpbGQgPT09IHBhcmVudEIuY2hpbGQpIHtcbiAgICAgIHZhciBjaGlsZCA9IHBhcmVudEEuY2hpbGQ7XG5cbiAgICAgIHdoaWxlIChjaGlsZCkge1xuICAgICAgICBpZiAoY2hpbGQgPT09IGEpIHtcbiAgICAgICAgICAvLyBXZSd2ZSBkZXRlcm1pbmVkIHRoYXQgQSBpcyB0aGUgY3VycmVudCBicmFuY2guXG4gICAgICAgICAgYXNzZXJ0SXNNb3VudGVkKHBhcmVudEEpO1xuICAgICAgICAgIHJldHVybiBmaWJlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjaGlsZCA9PT0gYikge1xuICAgICAgICAgIC8vIFdlJ3ZlIGRldGVybWluZWQgdGhhdCBCIGlzIHRoZSBjdXJyZW50IGJyYW5jaC5cbiAgICAgICAgICBhc3NlcnRJc01vdW50ZWQocGFyZW50QSk7XG4gICAgICAgICAgcmV0dXJuIGFsdGVybmF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNoaWxkID0gY2hpbGQuc2libGluZztcbiAgICAgIH0gLy8gV2Ugc2hvdWxkIG5ldmVyIGhhdmUgYW4gYWx0ZXJuYXRlIGZvciBhbnkgbW91bnRpbmcgbm9kZS4gU28gdGhlIG9ubHlcbiAgICAgIC8vIHdheSB0aGlzIGNvdWxkIHBvc3NpYmx5IGhhcHBlbiBpcyBpZiB0aGlzIHdhcyB1bm1vdW50ZWQsIGlmIGF0IGFsbC5cblxuXG4gICAgICB7XG4gICAgICAgIHtcbiAgICAgICAgICB0aHJvdyBFcnJvciggXCJVbmFibGUgdG8gZmluZCBub2RlIG9uIGFuIHVubW91bnRlZCBjb21wb25lbnQuXCIgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChhLnJldHVybiAhPT0gYi5yZXR1cm4pIHtcbiAgICAgIC8vIFRoZSByZXR1cm4gcG9pbnRlciBvZiBBIGFuZCB0aGUgcmV0dXJuIHBvaW50ZXIgb2YgQiBwb2ludCB0byBkaWZmZXJlbnRcbiAgICAgIC8vIGZpYmVycy4gV2UgYXNzdW1lIHRoYXQgcmV0dXJuIHBvaW50ZXJzIG5ldmVyIGNyaXNzLWNyb3NzLCBzbyBBIG11c3RcbiAgICAgIC8vIGJlbG9uZyB0byB0aGUgY2hpbGQgc2V0IG9mIEEucmV0dXJuLCBhbmQgQiBtdXN0IGJlbG9uZyB0byB0aGUgY2hpbGRcbiAgICAgIC8vIHNldCBvZiBCLnJldHVybi5cbiAgICAgIGEgPSBwYXJlbnRBO1xuICAgICAgYiA9IHBhcmVudEI7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRoZSByZXR1cm4gcG9pbnRlcnMgcG9pbnQgdG8gdGhlIHNhbWUgZmliZXIuIFdlJ2xsIGhhdmUgdG8gdXNlIHRoZVxuICAgICAgLy8gZGVmYXVsdCwgc2xvdyBwYXRoOiBzY2FuIHRoZSBjaGlsZCBzZXRzIG9mIGVhY2ggcGFyZW50IGFsdGVybmF0ZSB0byBzZWVcbiAgICAgIC8vIHdoaWNoIGNoaWxkIGJlbG9uZ3MgdG8gd2hpY2ggc2V0LlxuICAgICAgLy9cbiAgICAgIC8vIFNlYXJjaCBwYXJlbnQgQSdzIGNoaWxkIHNldFxuICAgICAgdmFyIGRpZEZpbmRDaGlsZCA9IGZhbHNlO1xuICAgICAgdmFyIF9jaGlsZCA9IHBhcmVudEEuY2hpbGQ7XG5cbiAgICAgIHdoaWxlIChfY2hpbGQpIHtcbiAgICAgICAgaWYgKF9jaGlsZCA9PT0gYSkge1xuICAgICAgICAgIGRpZEZpbmRDaGlsZCA9IHRydWU7XG4gICAgICAgICAgYSA9IHBhcmVudEE7XG4gICAgICAgICAgYiA9IHBhcmVudEI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoX2NoaWxkID09PSBiKSB7XG4gICAgICAgICAgZGlkRmluZENoaWxkID0gdHJ1ZTtcbiAgICAgICAgICBiID0gcGFyZW50QTtcbiAgICAgICAgICBhID0gcGFyZW50QjtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIF9jaGlsZCA9IF9jaGlsZC5zaWJsaW5nO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWRpZEZpbmRDaGlsZCkge1xuICAgICAgICAvLyBTZWFyY2ggcGFyZW50IEIncyBjaGlsZCBzZXRcbiAgICAgICAgX2NoaWxkID0gcGFyZW50Qi5jaGlsZDtcblxuICAgICAgICB3aGlsZSAoX2NoaWxkKSB7XG4gICAgICAgICAgaWYgKF9jaGlsZCA9PT0gYSkge1xuICAgICAgICAgICAgZGlkRmluZENoaWxkID0gdHJ1ZTtcbiAgICAgICAgICAgIGEgPSBwYXJlbnRCO1xuICAgICAgICAgICAgYiA9IHBhcmVudEE7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoX2NoaWxkID09PSBiKSB7XG4gICAgICAgICAgICBkaWRGaW5kQ2hpbGQgPSB0cnVlO1xuICAgICAgICAgICAgYiA9IHBhcmVudEI7XG4gICAgICAgICAgICBhID0gcGFyZW50QTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIF9jaGlsZCA9IF9jaGlsZC5zaWJsaW5nO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFkaWRGaW5kQ2hpbGQpIHtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvciggXCJDaGlsZCB3YXMgbm90IGZvdW5kIGluIGVpdGhlciBwYXJlbnQgc2V0LiBUaGlzIGluZGljYXRlcyBhIGJ1ZyBpbiBSZWFjdCByZWxhdGVkIHRvIHRoZSByZXR1cm4gcG9pbnRlci4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCIgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIShhLmFsdGVybmF0ZSA9PT0gYikpIHtcbiAgICAgIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoIFwiUmV0dXJuIGZpYmVycyBzaG91bGQgYWx3YXlzIGJlIGVhY2ggb3RoZXJzJyBhbHRlcm5hdGVzLiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLlwiICk7XG4gICAgICB9XG4gICAgfVxuICB9IC8vIElmIHRoZSByb290IGlzIG5vdCBhIGhvc3QgY29udGFpbmVyLCB3ZSdyZSBpbiBhIGRpc2Nvbm5lY3RlZCB0cmVlLiBJLmUuXG4gIC8vIHVubW91bnRlZC5cblxuXG4gIGlmICghKGEudGFnID09PSBIb3N0Um9vdCkpIHtcbiAgICB7XG4gICAgICB0aHJvdyBFcnJvciggXCJVbmFibGUgdG8gZmluZCBub2RlIG9uIGFuIHVubW91bnRlZCBjb21wb25lbnQuXCIgKTtcbiAgICB9XG4gIH1cblxuICBpZiAoYS5zdGF0ZU5vZGUuY3VycmVudCA9PT0gYSkge1xuICAgIC8vIFdlJ3ZlIGRldGVybWluZWQgdGhhdCBBIGlzIHRoZSBjdXJyZW50IGJyYW5jaC5cbiAgICByZXR1cm4gZmliZXI7XG4gIH0gLy8gT3RoZXJ3aXNlIEIgaGFzIHRvIGJlIGN1cnJlbnQgYnJhbmNoLlxuXG5cbiAgcmV0dXJuIGFsdGVybmF0ZTtcbn1cbmZ1bmN0aW9uIGZpbmRDdXJyZW50SG9zdEZpYmVyKHBhcmVudCkge1xuICB2YXIgY3VycmVudFBhcmVudCA9IGZpbmRDdXJyZW50RmliZXJVc2luZ1Nsb3dQYXRoKHBhcmVudCk7XG5cbiAgaWYgKCFjdXJyZW50UGFyZW50KSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH0gLy8gTmV4dCB3ZSdsbCBkcmlsbCBkb3duIHRoaXMgY29tcG9uZW50IHRvIGZpbmQgdGhlIGZpcnN0IEhvc3RDb21wb25lbnQvVGV4dC5cblxuXG4gIHZhciBub2RlID0gY3VycmVudFBhcmVudDtcblxuICB3aGlsZSAodHJ1ZSkge1xuICAgIGlmIChub2RlLnRhZyA9PT0gSG9zdENvbXBvbmVudCB8fCBub2RlLnRhZyA9PT0gSG9zdFRleHQpIHtcbiAgICAgIHJldHVybiBub2RlO1xuICAgIH0gZWxzZSBpZiAobm9kZS5jaGlsZCkge1xuICAgICAgbm9kZS5jaGlsZC5yZXR1cm4gPSBub2RlO1xuICAgICAgbm9kZSA9IG5vZGUuY2hpbGQ7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAobm9kZSA9PT0gY3VycmVudFBhcmVudCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgd2hpbGUgKCFub2RlLnNpYmxpbmcpIHtcbiAgICAgIGlmICghbm9kZS5yZXR1cm4gfHwgbm9kZS5yZXR1cm4gPT09IGN1cnJlbnRQYXJlbnQpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIG5vZGUgPSBub2RlLnJldHVybjtcbiAgICB9XG5cbiAgICBub2RlLnNpYmxpbmcucmV0dXJuID0gbm9kZS5yZXR1cm47XG4gICAgbm9kZSA9IG5vZGUuc2libGluZztcbiAgfSAvLyBGbG93IG5lZWRzIHRoZSByZXR1cm4gbnVsbCBoZXJlLCBidXQgRVNMaW50IGNvbXBsYWlucyBhYm91dCBpdC5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVucmVhY2hhYmxlXG5cblxuICByZXR1cm4gbnVsbDtcbn1cbmZ1bmN0aW9uIGZpbmRDdXJyZW50SG9zdEZpYmVyV2l0aE5vUG9ydGFscyhwYXJlbnQpIHtcbiAgdmFyIGN1cnJlbnRQYXJlbnQgPSBmaW5kQ3VycmVudEZpYmVyVXNpbmdTbG93UGF0aChwYXJlbnQpO1xuXG4gIGlmICghY3VycmVudFBhcmVudCkge1xuICAgIHJldHVybiBudWxsO1xuICB9IC8vIE5leHQgd2UnbGwgZHJpbGwgZG93biB0aGlzIGNvbXBvbmVudCB0byBmaW5kIHRoZSBmaXJzdCBIb3N0Q29tcG9uZW50L1RleHQuXG5cblxuICB2YXIgbm9kZSA9IGN1cnJlbnRQYXJlbnQ7XG5cbiAgd2hpbGUgKHRydWUpIHtcbiAgICBpZiAobm9kZS50YWcgPT09IEhvc3RDb21wb25lbnQgfHwgbm9kZS50YWcgPT09IEhvc3RUZXh0IHx8IGVuYWJsZUZ1bmRhbWVudGFsQVBJICkge1xuICAgICAgcmV0dXJuIG5vZGU7XG4gICAgfSBlbHNlIGlmIChub2RlLmNoaWxkICYmIG5vZGUudGFnICE9PSBIb3N0UG9ydGFsKSB7XG4gICAgICBub2RlLmNoaWxkLnJldHVybiA9IG5vZGU7XG4gICAgICBub2RlID0gbm9kZS5jaGlsZDtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmIChub2RlID09PSBjdXJyZW50UGFyZW50KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICB3aGlsZSAoIW5vZGUuc2libGluZykge1xuICAgICAgaWYgKCFub2RlLnJldHVybiB8fCBub2RlLnJldHVybiA9PT0gY3VycmVudFBhcmVudCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgbm9kZSA9IG5vZGUucmV0dXJuO1xuICAgIH1cblxuICAgIG5vZGUuc2libGluZy5yZXR1cm4gPSBub2RlLnJldHVybjtcbiAgICBub2RlID0gbm9kZS5zaWJsaW5nO1xuICB9IC8vIEZsb3cgbmVlZHMgdGhlIHJldHVybiBudWxsIGhlcmUsIGJ1dCBFU0xpbnQgY29tcGxhaW5zIGFib3V0IGl0LlxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5yZWFjaGFibGVcblxuXG4gIHJldHVybiBudWxsO1xufVxuZnVuY3Rpb24gZG9lc0ZpYmVyQ29udGFpbihwYXJlbnRGaWJlciwgY2hpbGRGaWJlcikge1xuICB2YXIgbm9kZSA9IGNoaWxkRmliZXI7XG4gIHZhciBwYXJlbnRGaWJlckFsdGVybmF0ZSA9IHBhcmVudEZpYmVyLmFsdGVybmF0ZTtcblxuICB3aGlsZSAobm9kZSAhPT0gbnVsbCkge1xuICAgIGlmIChub2RlID09PSBwYXJlbnRGaWJlciB8fCBub2RlID09PSBwYXJlbnRGaWJlckFsdGVybmF0ZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgbm9kZSA9IG5vZGUucmV0dXJuO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG52YXIgYXR0ZW1wdFVzZXJCbG9ja2luZ0h5ZHJhdGlvbjtcbmZ1bmN0aW9uIHNldEF0dGVtcHRVc2VyQmxvY2tpbmdIeWRyYXRpb24oZm4pIHtcbiAgYXR0ZW1wdFVzZXJCbG9ja2luZ0h5ZHJhdGlvbiA9IGZuO1xufVxudmFyIGF0dGVtcHRDb250aW51b3VzSHlkcmF0aW9uO1xuZnVuY3Rpb24gc2V0QXR0ZW1wdENvbnRpbnVvdXNIeWRyYXRpb24oZm4pIHtcbiAgYXR0ZW1wdENvbnRpbnVvdXNIeWRyYXRpb24gPSBmbjtcbn1cbnZhciBhdHRlbXB0SHlkcmF0aW9uQXRDdXJyZW50UHJpb3JpdHk7XG5mdW5jdGlvbiBzZXRBdHRlbXB0SHlkcmF0aW9uQXRDdXJyZW50UHJpb3JpdHkoZm4pIHtcbiAgYXR0ZW1wdEh5ZHJhdGlvbkF0Q3VycmVudFByaW9yaXR5ID0gZm47XG59XG52YXIgYXR0ZW1wdEh5ZHJhdGlvbkF0UHJpb3JpdHk7XG5mdW5jdGlvbiBzZXRBdHRlbXB0SHlkcmF0aW9uQXRQcmlvcml0eShmbikge1xuICBhdHRlbXB0SHlkcmF0aW9uQXRQcmlvcml0eSA9IGZuO1xufSAvLyBUT0RPOiBVcGdyYWRlIHRoaXMgZGVmaW5pdGlvbiBvbmNlIHdlJ3JlIG9uIGEgbmV3ZXIgdmVyc2lvbiBvZiBGbG93IHRoYXRcbnZhciBoYXNTY2hlZHVsZWRSZXBsYXlBdHRlbXB0ID0gZmFsc2U7IC8vIFRoZSBxdWV1ZSBvZiBkaXNjcmV0ZSBldmVudHMgdG8gYmUgcmVwbGF5ZWQuXG5cbnZhciBxdWV1ZWREaXNjcmV0ZUV2ZW50cyA9IFtdOyAvLyBJbmRpY2F0ZXMgaWYgYW55IGNvbnRpbnVvdXMgZXZlbnQgdGFyZ2V0cyBhcmUgbm9uLW51bGwgZm9yIGVhcmx5IGJhaWxvdXQuXG4vLyBpZiB0aGUgbGFzdCB0YXJnZXQgd2FzIGRlaHlkcmF0ZWQuXG5cbnZhciBxdWV1ZWRGb2N1cyA9IG51bGw7XG52YXIgcXVldWVkRHJhZyA9IG51bGw7XG52YXIgcXVldWVkTW91c2UgPSBudWxsOyAvLyBGb3IgcG9pbnRlciBldmVudHMgdGhlcmUgY2FuIGJlIG9uZSBsYXRlc3QgZXZlbnQgcGVyIHBvaW50ZXJJZC5cblxudmFyIHF1ZXVlZFBvaW50ZXJzID0gbmV3IE1hcCgpO1xudmFyIHF1ZXVlZFBvaW50ZXJDYXB0dXJlcyA9IG5ldyBNYXAoKTsgLy8gV2UgY291bGQgY29uc2lkZXIgcmVwbGF5aW5nIHNlbGVjdGlvbmNoYW5nZSBhbmQgdG91Y2htb3ZlcyB0b28uXG5cbnZhciBxdWV1ZWRFeHBsaWNpdEh5ZHJhdGlvblRhcmdldHMgPSBbXTtcbmZ1bmN0aW9uIGhhc1F1ZXVlZERpc2NyZXRlRXZlbnRzKCkge1xuICByZXR1cm4gcXVldWVkRGlzY3JldGVFdmVudHMubGVuZ3RoID4gMDtcbn1cbnZhciBkaXNjcmV0ZVJlcGxheWFibGVFdmVudHMgPSBbJ21vdXNlZG93bicsICdtb3VzZXVwJywgJ3RvdWNoY2FuY2VsJywgJ3RvdWNoZW5kJywgJ3RvdWNoc3RhcnQnLCAnYXV4Y2xpY2snLCAnZGJsY2xpY2snLCAncG9pbnRlcmNhbmNlbCcsICdwb2ludGVyZG93bicsICdwb2ludGVydXAnLCAnZHJhZ2VuZCcsICdkcmFnc3RhcnQnLCAnZHJvcCcsICdjb21wb3NpdGlvbmVuZCcsICdjb21wb3NpdGlvbnN0YXJ0JywgJ2tleWRvd24nLCAna2V5cHJlc3MnLCAna2V5dXAnLCAnaW5wdXQnLCAndGV4dElucHV0JywgLy8gSW50ZW50aW9uYWxseSBjYW1lbENhc2Vcbidjb3B5JywgJ2N1dCcsICdwYXN0ZScsICdjbGljaycsICdjaGFuZ2UnLCAnY29udGV4dG1lbnUnLCAncmVzZXQnLCAnc3VibWl0J107XG5mdW5jdGlvbiBpc1JlcGxheWFibGVEaXNjcmV0ZUV2ZW50KGV2ZW50VHlwZSkge1xuICByZXR1cm4gZGlzY3JldGVSZXBsYXlhYmxlRXZlbnRzLmluZGV4T2YoZXZlbnRUeXBlKSA+IC0xO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVRdWV1ZWRSZXBsYXlhYmxlRXZlbnQoYmxvY2tlZE9uLCBkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIHRhcmdldENvbnRhaW5lciwgbmF0aXZlRXZlbnQpIHtcbiAgcmV0dXJuIHtcbiAgICBibG9ja2VkT246IGJsb2NrZWRPbixcbiAgICBkb21FdmVudE5hbWU6IGRvbUV2ZW50TmFtZSxcbiAgICBldmVudFN5c3RlbUZsYWdzOiBldmVudFN5c3RlbUZsYWdzIHwgSVNfUkVQTEFZRUQsXG4gICAgbmF0aXZlRXZlbnQ6IG5hdGl2ZUV2ZW50LFxuICAgIHRhcmdldENvbnRhaW5lcnM6IFt0YXJnZXRDb250YWluZXJdXG4gIH07XG59XG5cbmZ1bmN0aW9uIHF1ZXVlRGlzY3JldGVFdmVudChibG9ja2VkT24sIGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgdGFyZ2V0Q29udGFpbmVyLCBuYXRpdmVFdmVudCkge1xuICB2YXIgcXVldWVkRXZlbnQgPSBjcmVhdGVRdWV1ZWRSZXBsYXlhYmxlRXZlbnQoYmxvY2tlZE9uLCBkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIHRhcmdldENvbnRhaW5lciwgbmF0aXZlRXZlbnQpO1xuICBxdWV1ZWREaXNjcmV0ZUV2ZW50cy5wdXNoKHF1ZXVlZEV2ZW50KTtcbn0gLy8gUmVzZXRzIHRoZSByZXBsYXlpbmcgZm9yIHRoaXMgdHlwZSBvZiBjb250aW51b3VzIGV2ZW50IHRvIG5vIGV2ZW50LlxuXG5mdW5jdGlvbiBjbGVhcklmQ29udGludW91c0V2ZW50KGRvbUV2ZW50TmFtZSwgbmF0aXZlRXZlbnQpIHtcbiAgc3dpdGNoIChkb21FdmVudE5hbWUpIHtcbiAgICBjYXNlICdmb2N1c2luJzpcbiAgICBjYXNlICdmb2N1c291dCc6XG4gICAgICBxdWV1ZWRGb2N1cyA9IG51bGw7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2RyYWdlbnRlcic6XG4gICAgY2FzZSAnZHJhZ2xlYXZlJzpcbiAgICAgIHF1ZXVlZERyYWcgPSBudWxsO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdtb3VzZW92ZXInOlxuICAgIGNhc2UgJ21vdXNlb3V0JzpcbiAgICAgIHF1ZXVlZE1vdXNlID0gbnVsbDtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAncG9pbnRlcm92ZXInOlxuICAgIGNhc2UgJ3BvaW50ZXJvdXQnOlxuICAgICAge1xuICAgICAgICB2YXIgcG9pbnRlcklkID0gbmF0aXZlRXZlbnQucG9pbnRlcklkO1xuICAgICAgICBxdWV1ZWRQb2ludGVycy5kZWxldGUocG9pbnRlcklkKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICBjYXNlICdnb3Rwb2ludGVyY2FwdHVyZSc6XG4gICAgY2FzZSAnbG9zdHBvaW50ZXJjYXB0dXJlJzpcbiAgICAgIHtcbiAgICAgICAgdmFyIF9wb2ludGVySWQgPSBuYXRpdmVFdmVudC5wb2ludGVySWQ7XG4gICAgICAgIHF1ZXVlZFBvaW50ZXJDYXB0dXJlcy5kZWxldGUoX3BvaW50ZXJJZCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGFjY3VtdWxhdGVPckNyZWF0ZUNvbnRpbnVvdXNRdWV1ZWRSZXBsYXlhYmxlRXZlbnQoZXhpc3RpbmdRdWV1ZWRFdmVudCwgYmxvY2tlZE9uLCBkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIHRhcmdldENvbnRhaW5lciwgbmF0aXZlRXZlbnQpIHtcbiAgaWYgKGV4aXN0aW5nUXVldWVkRXZlbnQgPT09IG51bGwgfHwgZXhpc3RpbmdRdWV1ZWRFdmVudC5uYXRpdmVFdmVudCAhPT0gbmF0aXZlRXZlbnQpIHtcbiAgICB2YXIgcXVldWVkRXZlbnQgPSBjcmVhdGVRdWV1ZWRSZXBsYXlhYmxlRXZlbnQoYmxvY2tlZE9uLCBkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIHRhcmdldENvbnRhaW5lciwgbmF0aXZlRXZlbnQpO1xuXG4gICAgaWYgKGJsb2NrZWRPbiAhPT0gbnVsbCkge1xuICAgICAgdmFyIF9maWJlcjIgPSBnZXRJbnN0YW5jZUZyb21Ob2RlKGJsb2NrZWRPbik7XG5cbiAgICAgIGlmIChfZmliZXIyICE9PSBudWxsKSB7XG4gICAgICAgIC8vIEF0dGVtcHQgdG8gaW5jcmVhc2UgdGhlIHByaW9yaXR5IG9mIHRoaXMgdGFyZ2V0LlxuICAgICAgICBhdHRlbXB0Q29udGludW91c0h5ZHJhdGlvbihfZmliZXIyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcXVldWVkRXZlbnQ7XG4gIH0gLy8gSWYgd2UgaGF2ZSBhbHJlYWR5IHF1ZXVlZCB0aGlzIGV4YWN0IGV2ZW50LCB0aGVuIGl0J3MgYmVjYXVzZVxuICAvLyB0aGUgZGlmZmVyZW50IGV2ZW50IHN5c3RlbXMgaGF2ZSBkaWZmZXJlbnQgRE9NIGV2ZW50IGxpc3RlbmVycy5cbiAgLy8gV2UgY2FuIGFjY3VtdWxhdGUgdGhlIGZsYWdzLCBhbmQgdGhlIHRhcmdldENvbnRhaW5lcnMsIGFuZFxuICAvLyBzdG9yZSBhIHNpbmdsZSBldmVudCB0byBiZSByZXBsYXllZC5cblxuXG4gIGV4aXN0aW5nUXVldWVkRXZlbnQuZXZlbnRTeXN0ZW1GbGFncyB8PSBldmVudFN5c3RlbUZsYWdzO1xuICB2YXIgdGFyZ2V0Q29udGFpbmVycyA9IGV4aXN0aW5nUXVldWVkRXZlbnQudGFyZ2V0Q29udGFpbmVycztcblxuICBpZiAodGFyZ2V0Q29udGFpbmVyICE9PSBudWxsICYmIHRhcmdldENvbnRhaW5lcnMuaW5kZXhPZih0YXJnZXRDb250YWluZXIpID09PSAtMSkge1xuICAgIHRhcmdldENvbnRhaW5lcnMucHVzaCh0YXJnZXRDb250YWluZXIpO1xuICB9XG5cbiAgcmV0dXJuIGV4aXN0aW5nUXVldWVkRXZlbnQ7XG59XG5cbmZ1bmN0aW9uIHF1ZXVlSWZDb250aW51b3VzRXZlbnQoYmxvY2tlZE9uLCBkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIHRhcmdldENvbnRhaW5lciwgbmF0aXZlRXZlbnQpIHtcbiAgLy8gVGhlc2Ugc2V0IHJlbGF0ZWRUYXJnZXQgdG8gbnVsbCBiZWNhdXNlIHRoZSByZXBsYXllZCBldmVudCB3aWxsIGJlIHRyZWF0ZWQgYXMgaWYgd2VcbiAgLy8gbW92ZWQgZnJvbSBvdXRzaWRlIHRoZSB3aW5kb3cgKG5vIHRhcmdldCkgb250byB0aGUgdGFyZ2V0IG9uY2UgaXQgaHlkcmF0ZXMuXG4gIC8vIEluc3RlYWQgb2YgbXV0YXRpbmcgd2UgY291bGQgY2xvbmUgdGhlIGV2ZW50LlxuICBzd2l0Y2ggKGRvbUV2ZW50TmFtZSkge1xuICAgIGNhc2UgJ2ZvY3VzaW4nOlxuICAgICAge1xuICAgICAgICB2YXIgZm9jdXNFdmVudCA9IG5hdGl2ZUV2ZW50O1xuICAgICAgICBxdWV1ZWRGb2N1cyA9IGFjY3VtdWxhdGVPckNyZWF0ZUNvbnRpbnVvdXNRdWV1ZWRSZXBsYXlhYmxlRXZlbnQocXVldWVkRm9jdXMsIGJsb2NrZWRPbiwgZG9tRXZlbnROYW1lLCBldmVudFN5c3RlbUZsYWdzLCB0YXJnZXRDb250YWluZXIsIGZvY3VzRXZlbnQpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgIGNhc2UgJ2RyYWdlbnRlcic6XG4gICAgICB7XG4gICAgICAgIHZhciBkcmFnRXZlbnQgPSBuYXRpdmVFdmVudDtcbiAgICAgICAgcXVldWVkRHJhZyA9IGFjY3VtdWxhdGVPckNyZWF0ZUNvbnRpbnVvdXNRdWV1ZWRSZXBsYXlhYmxlRXZlbnQocXVldWVkRHJhZywgYmxvY2tlZE9uLCBkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIHRhcmdldENvbnRhaW5lciwgZHJhZ0V2ZW50KTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICBjYXNlICdtb3VzZW92ZXInOlxuICAgICAge1xuICAgICAgICB2YXIgbW91c2VFdmVudCA9IG5hdGl2ZUV2ZW50O1xuICAgICAgICBxdWV1ZWRNb3VzZSA9IGFjY3VtdWxhdGVPckNyZWF0ZUNvbnRpbnVvdXNRdWV1ZWRSZXBsYXlhYmxlRXZlbnQocXVldWVkTW91c2UsIGJsb2NrZWRPbiwgZG9tRXZlbnROYW1lLCBldmVudFN5c3RlbUZsYWdzLCB0YXJnZXRDb250YWluZXIsIG1vdXNlRXZlbnQpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgIGNhc2UgJ3BvaW50ZXJvdmVyJzpcbiAgICAgIHtcbiAgICAgICAgdmFyIHBvaW50ZXJFdmVudCA9IG5hdGl2ZUV2ZW50O1xuICAgICAgICB2YXIgcG9pbnRlcklkID0gcG9pbnRlckV2ZW50LnBvaW50ZXJJZDtcbiAgICAgICAgcXVldWVkUG9pbnRlcnMuc2V0KHBvaW50ZXJJZCwgYWNjdW11bGF0ZU9yQ3JlYXRlQ29udGludW91c1F1ZXVlZFJlcGxheWFibGVFdmVudChxdWV1ZWRQb2ludGVycy5nZXQocG9pbnRlcklkKSB8fCBudWxsLCBibG9ja2VkT24sIGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgdGFyZ2V0Q29udGFpbmVyLCBwb2ludGVyRXZlbnQpKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICBjYXNlICdnb3Rwb2ludGVyY2FwdHVyZSc6XG4gICAgICB7XG4gICAgICAgIHZhciBfcG9pbnRlckV2ZW50ID0gbmF0aXZlRXZlbnQ7XG4gICAgICAgIHZhciBfcG9pbnRlcklkMiA9IF9wb2ludGVyRXZlbnQucG9pbnRlcklkO1xuICAgICAgICBxdWV1ZWRQb2ludGVyQ2FwdHVyZXMuc2V0KF9wb2ludGVySWQyLCBhY2N1bXVsYXRlT3JDcmVhdGVDb250aW51b3VzUXVldWVkUmVwbGF5YWJsZUV2ZW50KHF1ZXVlZFBvaW50ZXJDYXB0dXJlcy5nZXQoX3BvaW50ZXJJZDIpIHx8IG51bGwsIGJsb2NrZWRPbiwgZG9tRXZlbnROYW1lLCBldmVudFN5c3RlbUZsYWdzLCB0YXJnZXRDb250YWluZXIsIF9wb2ludGVyRXZlbnQpKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59IC8vIENoZWNrIGlmIHRoaXMgdGFyZ2V0IGlzIHVuYmxvY2tlZC4gUmV0dXJucyB0cnVlIGlmIGl0J3MgdW5ibG9ja2VkLlxuXG5mdW5jdGlvbiBhdHRlbXB0RXhwbGljaXRIeWRyYXRpb25UYXJnZXQocXVldWVkVGFyZ2V0KSB7XG4gIC8vIFRPRE86IFRoaXMgZnVuY3Rpb24gc2hhcmVzIGEgbG90IG9mIGxvZ2ljIHdpdGggYXR0ZW1wdFRvRGlzcGF0Y2hFdmVudC5cbiAgLy8gVHJ5IHRvIHVuaWZ5IHRoZW0uIEl0J3MgYSBiaXQgdHJpY2t5IHNpbmNlIGl0IHdvdWxkIHJlcXVpcmUgdHdvIHJldHVyblxuICAvLyB2YWx1ZXMuXG4gIHZhciB0YXJnZXRJbnN0ID0gZ2V0Q2xvc2VzdEluc3RhbmNlRnJvbU5vZGUocXVldWVkVGFyZ2V0LnRhcmdldCk7XG5cbiAgaWYgKHRhcmdldEluc3QgIT09IG51bGwpIHtcbiAgICB2YXIgbmVhcmVzdE1vdW50ZWQgPSBnZXROZWFyZXN0TW91bnRlZEZpYmVyKHRhcmdldEluc3QpO1xuXG4gICAgaWYgKG5lYXJlc3RNb3VudGVkICE9PSBudWxsKSB7XG4gICAgICB2YXIgdGFnID0gbmVhcmVzdE1vdW50ZWQudGFnO1xuXG4gICAgICBpZiAodGFnID09PSBTdXNwZW5zZUNvbXBvbmVudCkge1xuICAgICAgICB2YXIgaW5zdGFuY2UgPSBnZXRTdXNwZW5zZUluc3RhbmNlRnJvbUZpYmVyKG5lYXJlc3RNb3VudGVkKTtcblxuICAgICAgICBpZiAoaW5zdGFuY2UgIT09IG51bGwpIHtcbiAgICAgICAgICAvLyBXZSdyZSBibG9ja2VkIG9uIGh5ZHJhdGluZyB0aGlzIGJvdW5kYXJ5LlxuICAgICAgICAgIC8vIEluY3JlYXNlIGl0cyBwcmlvcml0eS5cbiAgICAgICAgICBxdWV1ZWRUYXJnZXQuYmxvY2tlZE9uID0gaW5zdGFuY2U7XG4gICAgICAgICAgYXR0ZW1wdEh5ZHJhdGlvbkF0UHJpb3JpdHkocXVldWVkVGFyZ2V0LmxhbmVQcmlvcml0eSwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgU2NoZWR1bGVyLnVuc3RhYmxlX3J1bldpdGhQcmlvcml0eShxdWV1ZWRUYXJnZXQucHJpb3JpdHksIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgYXR0ZW1wdEh5ZHJhdGlvbkF0Q3VycmVudFByaW9yaXR5KG5lYXJlc3RNb3VudGVkKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0YWcgPT09IEhvc3RSb290KSB7XG4gICAgICAgIHZhciByb290ID0gbmVhcmVzdE1vdW50ZWQuc3RhdGVOb2RlO1xuXG4gICAgICAgIGlmIChyb290Lmh5ZHJhdGUpIHtcbiAgICAgICAgICBxdWV1ZWRUYXJnZXQuYmxvY2tlZE9uID0gZ2V0Q29udGFpbmVyRnJvbUZpYmVyKG5lYXJlc3RNb3VudGVkKTsgLy8gV2UgZG9uJ3QgY3VycmVudGx5IGhhdmUgYSB3YXkgdG8gaW5jcmVhc2UgdGhlIHByaW9yaXR5IG9mXG4gICAgICAgICAgLy8gYSByb290IG90aGVyIHRoYW4gc3luYy5cblxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHF1ZXVlZFRhcmdldC5ibG9ja2VkT24gPSBudWxsO1xufVxuXG5mdW5jdGlvbiBhdHRlbXB0UmVwbGF5Q29udGludW91c1F1ZXVlZEV2ZW50KHF1ZXVlZEV2ZW50KSB7XG4gIGlmIChxdWV1ZWRFdmVudC5ibG9ja2VkT24gIT09IG51bGwpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB2YXIgdGFyZ2V0Q29udGFpbmVycyA9IHF1ZXVlZEV2ZW50LnRhcmdldENvbnRhaW5lcnM7XG5cbiAgd2hpbGUgKHRhcmdldENvbnRhaW5lcnMubGVuZ3RoID4gMCkge1xuICAgIHZhciB0YXJnZXRDb250YWluZXIgPSB0YXJnZXRDb250YWluZXJzWzBdO1xuICAgIHZhciBuZXh0QmxvY2tlZE9uID0gYXR0ZW1wdFRvRGlzcGF0Y2hFdmVudChxdWV1ZWRFdmVudC5kb21FdmVudE5hbWUsIHF1ZXVlZEV2ZW50LmV2ZW50U3lzdGVtRmxhZ3MsIHRhcmdldENvbnRhaW5lciwgcXVldWVkRXZlbnQubmF0aXZlRXZlbnQpO1xuXG4gICAgaWYgKG5leHRCbG9ja2VkT24gIT09IG51bGwpIHtcbiAgICAgIC8vIFdlJ3JlIHN0aWxsIGJsb2NrZWQuIFRyeSBhZ2FpbiBsYXRlci5cbiAgICAgIHZhciBfZmliZXIzID0gZ2V0SW5zdGFuY2VGcm9tTm9kZShuZXh0QmxvY2tlZE9uKTtcblxuICAgICAgaWYgKF9maWJlcjMgIT09IG51bGwpIHtcbiAgICAgICAgYXR0ZW1wdENvbnRpbnVvdXNIeWRyYXRpb24oX2ZpYmVyMyk7XG4gICAgICB9XG5cbiAgICAgIHF1ZXVlZEV2ZW50LmJsb2NrZWRPbiA9IG5leHRCbG9ja2VkT247XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSAvLyBUaGlzIHRhcmdldCBjb250YWluZXIgd2FzIHN1Y2Nlc3NmdWxseSBkaXNwYXRjaGVkLiBUcnkgdGhlIG5leHQuXG5cblxuICAgIHRhcmdldENvbnRhaW5lcnMuc2hpZnQoKTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBhdHRlbXB0UmVwbGF5Q29udGludW91c1F1ZXVlZEV2ZW50SW5NYXAocXVldWVkRXZlbnQsIGtleSwgbWFwKSB7XG4gIGlmIChhdHRlbXB0UmVwbGF5Q29udGludW91c1F1ZXVlZEV2ZW50KHF1ZXVlZEV2ZW50KSkge1xuICAgIG1hcC5kZWxldGUoa2V5KTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZXBsYXlVbmJsb2NrZWRFdmVudHMoKSB7XG4gIGhhc1NjaGVkdWxlZFJlcGxheUF0dGVtcHQgPSBmYWxzZTsgLy8gRmlyc3QgcmVwbGF5IGRpc2NyZXRlIGV2ZW50cy5cblxuICB3aGlsZSAocXVldWVkRGlzY3JldGVFdmVudHMubGVuZ3RoID4gMCkge1xuICAgIHZhciBuZXh0RGlzY3JldGVFdmVudCA9IHF1ZXVlZERpc2NyZXRlRXZlbnRzWzBdO1xuXG4gICAgaWYgKG5leHREaXNjcmV0ZUV2ZW50LmJsb2NrZWRPbiAhPT0gbnVsbCkge1xuICAgICAgLy8gV2UncmUgc3RpbGwgYmxvY2tlZC5cbiAgICAgIC8vIEluY3JlYXNlIHRoZSBwcmlvcml0eSBvZiB0aGlzIGJvdW5kYXJ5IHRvIHVuYmxvY2tcbiAgICAgIC8vIHRoZSBuZXh0IGRpc2NyZXRlIGV2ZW50LlxuICAgICAgdmFyIF9maWJlcjQgPSBnZXRJbnN0YW5jZUZyb21Ob2RlKG5leHREaXNjcmV0ZUV2ZW50LmJsb2NrZWRPbik7XG5cbiAgICAgIGlmIChfZmliZXI0ICE9PSBudWxsKSB7XG4gICAgICAgIGF0dGVtcHRVc2VyQmxvY2tpbmdIeWRyYXRpb24oX2ZpYmVyNCk7XG4gICAgICB9XG5cbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHZhciB0YXJnZXRDb250YWluZXJzID0gbmV4dERpc2NyZXRlRXZlbnQudGFyZ2V0Q29udGFpbmVycztcblxuICAgIHdoaWxlICh0YXJnZXRDb250YWluZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgIHZhciB0YXJnZXRDb250YWluZXIgPSB0YXJnZXRDb250YWluZXJzWzBdO1xuICAgICAgdmFyIG5leHRCbG9ja2VkT24gPSBhdHRlbXB0VG9EaXNwYXRjaEV2ZW50KG5leHREaXNjcmV0ZUV2ZW50LmRvbUV2ZW50TmFtZSwgbmV4dERpc2NyZXRlRXZlbnQuZXZlbnRTeXN0ZW1GbGFncywgdGFyZ2V0Q29udGFpbmVyLCBuZXh0RGlzY3JldGVFdmVudC5uYXRpdmVFdmVudCk7XG5cbiAgICAgIGlmIChuZXh0QmxvY2tlZE9uICE9PSBudWxsKSB7XG4gICAgICAgIC8vIFdlJ3JlIHN0aWxsIGJsb2NrZWQuIFRyeSBhZ2FpbiBsYXRlci5cbiAgICAgICAgbmV4dERpc2NyZXRlRXZlbnQuYmxvY2tlZE9uID0gbmV4dEJsb2NrZWRPbjtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9IC8vIFRoaXMgdGFyZ2V0IGNvbnRhaW5lciB3YXMgc3VjY2Vzc2Z1bGx5IGRpc3BhdGNoZWQuIFRyeSB0aGUgbmV4dC5cblxuXG4gICAgICB0YXJnZXRDb250YWluZXJzLnNoaWZ0KCk7XG4gICAgfVxuXG4gICAgaWYgKG5leHREaXNjcmV0ZUV2ZW50LmJsb2NrZWRPbiA9PT0gbnVsbCkge1xuICAgICAgLy8gV2UndmUgc3VjY2Vzc2Z1bGx5IHJlcGxheWVkIHRoZSBmaXJzdCBldmVudC4gTGV0J3MgdHJ5IHRoZSBuZXh0IG9uZS5cbiAgICAgIHF1ZXVlZERpc2NyZXRlRXZlbnRzLnNoaWZ0KCk7XG4gICAgfVxuICB9IC8vIE5leHQgcmVwbGF5IGFueSBjb250aW51b3VzIGV2ZW50cy5cblxuXG4gIGlmIChxdWV1ZWRGb2N1cyAhPT0gbnVsbCAmJiBhdHRlbXB0UmVwbGF5Q29udGludW91c1F1ZXVlZEV2ZW50KHF1ZXVlZEZvY3VzKSkge1xuICAgIHF1ZXVlZEZvY3VzID0gbnVsbDtcbiAgfVxuXG4gIGlmIChxdWV1ZWREcmFnICE9PSBudWxsICYmIGF0dGVtcHRSZXBsYXlDb250aW51b3VzUXVldWVkRXZlbnQocXVldWVkRHJhZykpIHtcbiAgICBxdWV1ZWREcmFnID0gbnVsbDtcbiAgfVxuXG4gIGlmIChxdWV1ZWRNb3VzZSAhPT0gbnVsbCAmJiBhdHRlbXB0UmVwbGF5Q29udGludW91c1F1ZXVlZEV2ZW50KHF1ZXVlZE1vdXNlKSkge1xuICAgIHF1ZXVlZE1vdXNlID0gbnVsbDtcbiAgfVxuXG4gIHF1ZXVlZFBvaW50ZXJzLmZvckVhY2goYXR0ZW1wdFJlcGxheUNvbnRpbnVvdXNRdWV1ZWRFdmVudEluTWFwKTtcbiAgcXVldWVkUG9pbnRlckNhcHR1cmVzLmZvckVhY2goYXR0ZW1wdFJlcGxheUNvbnRpbnVvdXNRdWV1ZWRFdmVudEluTWFwKTtcbn1cblxuZnVuY3Rpb24gc2NoZWR1bGVDYWxsYmFja0lmVW5ibG9ja2VkKHF1ZXVlZEV2ZW50LCB1bmJsb2NrZWQpIHtcbiAgaWYgKHF1ZXVlZEV2ZW50LmJsb2NrZWRPbiA9PT0gdW5ibG9ja2VkKSB7XG4gICAgcXVldWVkRXZlbnQuYmxvY2tlZE9uID0gbnVsbDtcblxuICAgIGlmICghaGFzU2NoZWR1bGVkUmVwbGF5QXR0ZW1wdCkge1xuICAgICAgaGFzU2NoZWR1bGVkUmVwbGF5QXR0ZW1wdCA9IHRydWU7IC8vIFNjaGVkdWxlIGEgY2FsbGJhY2sgdG8gYXR0ZW1wdCByZXBsYXlpbmcgYXMgbWFueSBldmVudHMgYXMgYXJlXG4gICAgICAvLyBub3cgdW5ibG9ja2VkLiBUaGlzIGZpcnN0IG1pZ2h0IG5vdCBhY3R1YWxseSBiZSB1bmJsb2NrZWQgeWV0LlxuICAgICAgLy8gV2UgY291bGQgY2hlY2sgaXQgZWFybHkgdG8gYXZvaWQgc2NoZWR1bGluZyBhbiB1bm5lY2Vzc2FyeSBjYWxsYmFjay5cblxuICAgICAgU2NoZWR1bGVyLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2soU2NoZWR1bGVyLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5LCByZXBsYXlVbmJsb2NrZWRFdmVudHMpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiByZXRyeUlmQmxvY2tlZE9uKHVuYmxvY2tlZCkge1xuICAvLyBNYXJrIGFueXRoaW5nIHRoYXQgd2FzIGJsb2NrZWQgb24gdGhpcyBhcyBubyBsb25nZXIgYmxvY2tlZFxuICAvLyBhbmQgZWxpZ2libGUgZm9yIGEgcmVwbGF5LlxuICBpZiAocXVldWVkRGlzY3JldGVFdmVudHMubGVuZ3RoID4gMCkge1xuICAgIHNjaGVkdWxlQ2FsbGJhY2tJZlVuYmxvY2tlZChxdWV1ZWREaXNjcmV0ZUV2ZW50c1swXSwgdW5ibG9ja2VkKTsgLy8gVGhpcyBpcyBhIGV4cG9uZW50aWFsIHNlYXJjaCBmb3IgZWFjaCBib3VuZGFyeSB0aGF0IGNvbW1pdHMuIEkgdGhpbmsgaXQnc1xuICAgIC8vIHdvcnRoIGl0IGJlY2F1c2Ugd2UgZXhwZWN0IHZlcnkgZmV3IGRpc2NyZXRlIGV2ZW50cyB0byBxdWV1ZSB1cCBhbmQgb25jZVxuICAgIC8vIHdlIGFyZSBhY3R1YWxseSBmdWxseSB1bmJsb2NrZWQgaXQgd2lsbCBiZSBmYXN0IHRvIHJlcGxheSB0aGVtLlxuXG4gICAgZm9yICh2YXIgaSA9IDE7IGkgPCBxdWV1ZWREaXNjcmV0ZUV2ZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHF1ZXVlZEV2ZW50ID0gcXVldWVkRGlzY3JldGVFdmVudHNbaV07XG5cbiAgICAgIGlmIChxdWV1ZWRFdmVudC5ibG9ja2VkT24gPT09IHVuYmxvY2tlZCkge1xuICAgICAgICBxdWV1ZWRFdmVudC5ibG9ja2VkT24gPSBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmIChxdWV1ZWRGb2N1cyAhPT0gbnVsbCkge1xuICAgIHNjaGVkdWxlQ2FsbGJhY2tJZlVuYmxvY2tlZChxdWV1ZWRGb2N1cywgdW5ibG9ja2VkKTtcbiAgfVxuXG4gIGlmIChxdWV1ZWREcmFnICE9PSBudWxsKSB7XG4gICAgc2NoZWR1bGVDYWxsYmFja0lmVW5ibG9ja2VkKHF1ZXVlZERyYWcsIHVuYmxvY2tlZCk7XG4gIH1cblxuICBpZiAocXVldWVkTW91c2UgIT09IG51bGwpIHtcbiAgICBzY2hlZHVsZUNhbGxiYWNrSWZVbmJsb2NrZWQocXVldWVkTW91c2UsIHVuYmxvY2tlZCk7XG4gIH1cblxuICB2YXIgdW5ibG9jayA9IGZ1bmN0aW9uIChxdWV1ZWRFdmVudCkge1xuICAgIHJldHVybiBzY2hlZHVsZUNhbGxiYWNrSWZVbmJsb2NrZWQocXVldWVkRXZlbnQsIHVuYmxvY2tlZCk7XG4gIH07XG5cbiAgcXVldWVkUG9pbnRlcnMuZm9yRWFjaCh1bmJsb2NrKTtcbiAgcXVldWVkUG9pbnRlckNhcHR1cmVzLmZvckVhY2godW5ibG9jayk7XG5cbiAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IHF1ZXVlZEV4cGxpY2l0SHlkcmF0aW9uVGFyZ2V0cy5sZW5ndGg7IF9pKyspIHtcbiAgICB2YXIgcXVldWVkVGFyZ2V0ID0gcXVldWVkRXhwbGljaXRIeWRyYXRpb25UYXJnZXRzW19pXTtcblxuICAgIGlmIChxdWV1ZWRUYXJnZXQuYmxvY2tlZE9uID09PSB1bmJsb2NrZWQpIHtcbiAgICAgIHF1ZXVlZFRhcmdldC5ibG9ja2VkT24gPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHdoaWxlIChxdWV1ZWRFeHBsaWNpdEh5ZHJhdGlvblRhcmdldHMubGVuZ3RoID4gMCkge1xuICAgIHZhciBuZXh0RXhwbGljaXRUYXJnZXQgPSBxdWV1ZWRFeHBsaWNpdEh5ZHJhdGlvblRhcmdldHNbMF07XG5cbiAgICBpZiAobmV4dEV4cGxpY2l0VGFyZ2V0LmJsb2NrZWRPbiAhPT0gbnVsbCkge1xuICAgICAgLy8gV2UncmUgc3RpbGwgYmxvY2tlZC5cbiAgICAgIGJyZWFrO1xuICAgIH0gZWxzZSB7XG4gICAgICBhdHRlbXB0RXhwbGljaXRIeWRyYXRpb25UYXJnZXQobmV4dEV4cGxpY2l0VGFyZ2V0KTtcblxuICAgICAgaWYgKG5leHRFeHBsaWNpdFRhcmdldC5ibG9ja2VkT24gPT09IG51bGwpIHtcbiAgICAgICAgLy8gV2UncmUgdW5ibG9ja2VkLlxuICAgICAgICBxdWV1ZWRFeHBsaWNpdEh5ZHJhdGlvblRhcmdldHMuc2hpZnQoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxudmFyIERpc2NyZXRlRXZlbnQgPSAwO1xudmFyIFVzZXJCbG9ja2luZ0V2ZW50ID0gMTtcbnZhciBDb250aW51b3VzRXZlbnQgPSAyO1xuXG4vKipcbiAqIEdlbmVyYXRlIGEgbWFwcGluZyBvZiBzdGFuZGFyZCB2ZW5kb3IgcHJlZml4ZXMgdXNpbmcgdGhlIGRlZmluZWQgc3R5bGUgcHJvcGVydHkgYW5kIGV2ZW50IG5hbWUuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHN0eWxlUHJvcFxuICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50TmFtZVxuICogQHJldHVybnMge29iamVjdH1cbiAqL1xuXG5mdW5jdGlvbiBtYWtlUHJlZml4TWFwKHN0eWxlUHJvcCwgZXZlbnROYW1lKSB7XG4gIHZhciBwcmVmaXhlcyA9IHt9O1xuICBwcmVmaXhlc1tzdHlsZVByb3AudG9Mb3dlckNhc2UoKV0gPSBldmVudE5hbWUudG9Mb3dlckNhc2UoKTtcbiAgcHJlZml4ZXNbJ1dlYmtpdCcgKyBzdHlsZVByb3BdID0gJ3dlYmtpdCcgKyBldmVudE5hbWU7XG4gIHByZWZpeGVzWydNb3onICsgc3R5bGVQcm9wXSA9ICdtb3onICsgZXZlbnROYW1lO1xuICByZXR1cm4gcHJlZml4ZXM7XG59XG4vKipcbiAqIEEgbGlzdCBvZiBldmVudCBuYW1lcyB0byBhIGNvbmZpZ3VyYWJsZSBsaXN0IG9mIHZlbmRvciBwcmVmaXhlcy5cbiAqL1xuXG5cbnZhciB2ZW5kb3JQcmVmaXhlcyA9IHtcbiAgYW5pbWF0aW9uZW5kOiBtYWtlUHJlZml4TWFwKCdBbmltYXRpb24nLCAnQW5pbWF0aW9uRW5kJyksXG4gIGFuaW1hdGlvbml0ZXJhdGlvbjogbWFrZVByZWZpeE1hcCgnQW5pbWF0aW9uJywgJ0FuaW1hdGlvbkl0ZXJhdGlvbicpLFxuICBhbmltYXRpb25zdGFydDogbWFrZVByZWZpeE1hcCgnQW5pbWF0aW9uJywgJ0FuaW1hdGlvblN0YXJ0JyksXG4gIHRyYW5zaXRpb25lbmQ6IG1ha2VQcmVmaXhNYXAoJ1RyYW5zaXRpb24nLCAnVHJhbnNpdGlvbkVuZCcpXG59O1xuLyoqXG4gKiBFdmVudCBuYW1lcyB0aGF0IGhhdmUgYWxyZWFkeSBiZWVuIGRldGVjdGVkIGFuZCBwcmVmaXhlZCAoaWYgYXBwbGljYWJsZSkuXG4gKi9cblxudmFyIHByZWZpeGVkRXZlbnROYW1lcyA9IHt9O1xuLyoqXG4gKiBFbGVtZW50IHRvIGNoZWNrIGZvciBwcmVmaXhlcyBvbi5cbiAqL1xuXG52YXIgc3R5bGUgPSB7fTtcbi8qKlxuICogQm9vdHN0cmFwIGlmIGEgRE9NIGV4aXN0cy5cbiAqL1xuXG5pZiAoY2FuVXNlRE9NKSB7XG4gIHN0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jykuc3R5bGU7IC8vIE9uIHNvbWUgcGxhdGZvcm1zLCBpbiBwYXJ0aWN1bGFyIHNvbWUgcmVsZWFzZXMgb2YgQW5kcm9pZCA0LngsXG4gIC8vIHRoZSB1bi1wcmVmaXhlZCBcImFuaW1hdGlvblwiIGFuZCBcInRyYW5zaXRpb25cIiBwcm9wZXJ0aWVzIGFyZSBkZWZpbmVkIG9uIHRoZVxuICAvLyBzdHlsZSBvYmplY3QgYnV0IHRoZSBldmVudHMgdGhhdCBmaXJlIHdpbGwgc3RpbGwgYmUgcHJlZml4ZWQsIHNvIHdlIG5lZWRcbiAgLy8gdG8gY2hlY2sgaWYgdGhlIHVuLXByZWZpeGVkIGV2ZW50cyBhcmUgdXNhYmxlLCBhbmQgaWYgbm90IHJlbW92ZSB0aGVtIGZyb20gdGhlIG1hcC5cblxuICBpZiAoISgnQW5pbWF0aW9uRXZlbnQnIGluIHdpbmRvdykpIHtcbiAgICBkZWxldGUgdmVuZG9yUHJlZml4ZXMuYW5pbWF0aW9uZW5kLmFuaW1hdGlvbjtcbiAgICBkZWxldGUgdmVuZG9yUHJlZml4ZXMuYW5pbWF0aW9uaXRlcmF0aW9uLmFuaW1hdGlvbjtcbiAgICBkZWxldGUgdmVuZG9yUHJlZml4ZXMuYW5pbWF0aW9uc3RhcnQuYW5pbWF0aW9uO1xuICB9IC8vIFNhbWUgYXMgYWJvdmVcblxuXG4gIGlmICghKCdUcmFuc2l0aW9uRXZlbnQnIGluIHdpbmRvdykpIHtcbiAgICBkZWxldGUgdmVuZG9yUHJlZml4ZXMudHJhbnNpdGlvbmVuZC50cmFuc2l0aW9uO1xuICB9XG59XG4vKipcbiAqIEF0dGVtcHRzIHRvIGRldGVybWluZSB0aGUgY29ycmVjdCB2ZW5kb3IgcHJlZml4ZWQgZXZlbnQgbmFtZS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gZXZlbnROYW1lXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5cblxuZnVuY3Rpb24gZ2V0VmVuZG9yUHJlZml4ZWRFdmVudE5hbWUoZXZlbnROYW1lKSB7XG4gIGlmIChwcmVmaXhlZEV2ZW50TmFtZXNbZXZlbnROYW1lXSkge1xuICAgIHJldHVybiBwcmVmaXhlZEV2ZW50TmFtZXNbZXZlbnROYW1lXTtcbiAgfSBlbHNlIGlmICghdmVuZG9yUHJlZml4ZXNbZXZlbnROYW1lXSkge1xuICAgIHJldHVybiBldmVudE5hbWU7XG4gIH1cblxuICB2YXIgcHJlZml4TWFwID0gdmVuZG9yUHJlZml4ZXNbZXZlbnROYW1lXTtcblxuICBmb3IgKHZhciBzdHlsZVByb3AgaW4gcHJlZml4TWFwKSB7XG4gICAgaWYgKHByZWZpeE1hcC5oYXNPd25Qcm9wZXJ0eShzdHlsZVByb3ApICYmIHN0eWxlUHJvcCBpbiBzdHlsZSkge1xuICAgICAgcmV0dXJuIHByZWZpeGVkRXZlbnROYW1lc1tldmVudE5hbWVdID0gcHJlZml4TWFwW3N0eWxlUHJvcF07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGV2ZW50TmFtZTtcbn1cblxudmFyIEFOSU1BVElPTl9FTkQgPSBnZXRWZW5kb3JQcmVmaXhlZEV2ZW50TmFtZSgnYW5pbWF0aW9uZW5kJyk7XG52YXIgQU5JTUFUSU9OX0lURVJBVElPTiA9IGdldFZlbmRvclByZWZpeGVkRXZlbnROYW1lKCdhbmltYXRpb25pdGVyYXRpb24nKTtcbnZhciBBTklNQVRJT05fU1RBUlQgPSBnZXRWZW5kb3JQcmVmaXhlZEV2ZW50TmFtZSgnYW5pbWF0aW9uc3RhcnQnKTtcbnZhciBUUkFOU0lUSU9OX0VORCA9IGdldFZlbmRvclByZWZpeGVkRXZlbnROYW1lKCd0cmFuc2l0aW9uZW5kJyk7XG5cbnZhciB0b3BMZXZlbEV2ZW50c1RvUmVhY3ROYW1lcyA9IG5ldyBNYXAoKTtcbnZhciBldmVudFByaW9yaXRpZXMgPSBuZXcgTWFwKCk7IC8vIFdlIHN0b3JlIG1vc3Qgb2YgdGhlIGV2ZW50cyBpbiB0aGlzIG1vZHVsZSBpbiBwYWlycyBvZiB0d28gc3RyaW5ncyBzbyB3ZSBjYW4gcmUtdXNlXG4vLyB0aGUgY29kZSByZXF1aXJlZCB0byBhcHBseSB0aGUgc2FtZSBsb2dpYyBmb3IgZXZlbnQgcHJpb3JpdGl6YXRpb24gYW5kIHRoYXQgb2YgdGhlXG4vLyBTaW1wbGVFdmVudFBsdWdpbi4gVGhpcyBjb21wbGljYXRlcyB0aGluZ3Mgc2xpZ2h0bHksIGJ1dCB0aGUgYWltIGlzIHRvIHJlZHVjZSBjb2RlXG4vLyBkdXBsaWNhdGlvbiAoZm9yIHdoaWNoIHRoZXJlIHdvdWxkIGJlIHF1aXRlIGEgYml0KS4gRm9yIHRoZSBldmVudHMgdGhhdCBhcmUgbm90IG5lZWRlZFxuLy8gZm9yIHRoZSBTaW1wbGVFdmVudFBsdWdpbiAob3RoZXJEaXNjcmV0ZUV2ZW50cykgd2UgcHJvY2VzcyB0aGVtIHNlcGFyYXRlbHkgYXMgYW5cbi8vIGFycmF5IG9mIHRvcCBsZXZlbCBldmVudHMuXG4vLyBMYXN0bHksIHdlIGlnbm9yZSBwcmV0dGllciBzbyB3ZSBjYW4ga2VlcCB0aGUgZm9ybWF0dGluZyBzYW5lLlxuLy8gcHJldHRpZXItaWdub3JlXG5cbnZhciBkaXNjcmV0ZUV2ZW50UGFpcnNGb3JTaW1wbGVFdmVudFBsdWdpbiA9IFsnY2FuY2VsJywgJ2NhbmNlbCcsICdjbGljaycsICdjbGljaycsICdjbG9zZScsICdjbG9zZScsICdjb250ZXh0bWVudScsICdjb250ZXh0TWVudScsICdjb3B5JywgJ2NvcHknLCAnY3V0JywgJ2N1dCcsICdhdXhjbGljaycsICdhdXhDbGljaycsICdkYmxjbGljaycsICdkb3VibGVDbGljaycsIC8vIENhcmVmdWwhXG4nZHJhZ2VuZCcsICdkcmFnRW5kJywgJ2RyYWdzdGFydCcsICdkcmFnU3RhcnQnLCAnZHJvcCcsICdkcm9wJywgJ2ZvY3VzaW4nLCAnZm9jdXMnLCAvLyBDYXJlZnVsIVxuJ2ZvY3Vzb3V0JywgJ2JsdXInLCAvLyBDYXJlZnVsIVxuJ2lucHV0JywgJ2lucHV0JywgJ2ludmFsaWQnLCAnaW52YWxpZCcsICdrZXlkb3duJywgJ2tleURvd24nLCAna2V5cHJlc3MnLCAna2V5UHJlc3MnLCAna2V5dXAnLCAna2V5VXAnLCAnbW91c2Vkb3duJywgJ21vdXNlRG93bicsICdtb3VzZXVwJywgJ21vdXNlVXAnLCAncGFzdGUnLCAncGFzdGUnLCAncGF1c2UnLCAncGF1c2UnLCAncGxheScsICdwbGF5JywgJ3BvaW50ZXJjYW5jZWwnLCAncG9pbnRlckNhbmNlbCcsICdwb2ludGVyZG93bicsICdwb2ludGVyRG93bicsICdwb2ludGVydXAnLCAncG9pbnRlclVwJywgJ3JhdGVjaGFuZ2UnLCAncmF0ZUNoYW5nZScsICdyZXNldCcsICdyZXNldCcsICdzZWVrZWQnLCAnc2Vla2VkJywgJ3N1Ym1pdCcsICdzdWJtaXQnLCAndG91Y2hjYW5jZWwnLCAndG91Y2hDYW5jZWwnLCAndG91Y2hlbmQnLCAndG91Y2hFbmQnLCAndG91Y2hzdGFydCcsICd0b3VjaFN0YXJ0JywgJ3ZvbHVtZWNoYW5nZScsICd2b2x1bWVDaGFuZ2UnXTtcbnZhciBvdGhlckRpc2NyZXRlRXZlbnRzID0gWydjaGFuZ2UnLCAnc2VsZWN0aW9uY2hhbmdlJywgJ3RleHRJbnB1dCcsICdjb21wb3NpdGlvbnN0YXJ0JywgJ2NvbXBvc2l0aW9uZW5kJywgJ2NvbXBvc2l0aW9udXBkYXRlJ107XG5cblxudmFyIHVzZXJCbG9ja2luZ1BhaXJzRm9yU2ltcGxlRXZlbnRQbHVnaW4gPSBbJ2RyYWcnLCAnZHJhZycsICdkcmFnZW50ZXInLCAnZHJhZ0VudGVyJywgJ2RyYWdleGl0JywgJ2RyYWdFeGl0JywgJ2RyYWdsZWF2ZScsICdkcmFnTGVhdmUnLCAnZHJhZ292ZXInLCAnZHJhZ092ZXInLCAnbW91c2Vtb3ZlJywgJ21vdXNlTW92ZScsICdtb3VzZW91dCcsICdtb3VzZU91dCcsICdtb3VzZW92ZXInLCAnbW91c2VPdmVyJywgJ3BvaW50ZXJtb3ZlJywgJ3BvaW50ZXJNb3ZlJywgJ3BvaW50ZXJvdXQnLCAncG9pbnRlck91dCcsICdwb2ludGVyb3ZlcicsICdwb2ludGVyT3ZlcicsICdzY3JvbGwnLCAnc2Nyb2xsJywgJ3RvZ2dsZScsICd0b2dnbGUnLCAndG91Y2htb3ZlJywgJ3RvdWNoTW92ZScsICd3aGVlbCcsICd3aGVlbCddOyAvLyBwcmV0dGllci1pZ25vcmVcblxudmFyIGNvbnRpbnVvdXNQYWlyc0ZvclNpbXBsZUV2ZW50UGx1Z2luID0gWydhYm9ydCcsICdhYm9ydCcsIEFOSU1BVElPTl9FTkQsICdhbmltYXRpb25FbmQnLCBBTklNQVRJT05fSVRFUkFUSU9OLCAnYW5pbWF0aW9uSXRlcmF0aW9uJywgQU5JTUFUSU9OX1NUQVJULCAnYW5pbWF0aW9uU3RhcnQnLCAnY2FucGxheScsICdjYW5QbGF5JywgJ2NhbnBsYXl0aHJvdWdoJywgJ2NhblBsYXlUaHJvdWdoJywgJ2R1cmF0aW9uY2hhbmdlJywgJ2R1cmF0aW9uQ2hhbmdlJywgJ2VtcHRpZWQnLCAnZW1wdGllZCcsICdlbmNyeXB0ZWQnLCAnZW5jcnlwdGVkJywgJ2VuZGVkJywgJ2VuZGVkJywgJ2Vycm9yJywgJ2Vycm9yJywgJ2dvdHBvaW50ZXJjYXB0dXJlJywgJ2dvdFBvaW50ZXJDYXB0dXJlJywgJ2xvYWQnLCAnbG9hZCcsICdsb2FkZWRkYXRhJywgJ2xvYWRlZERhdGEnLCAnbG9hZGVkbWV0YWRhdGEnLCAnbG9hZGVkTWV0YWRhdGEnLCAnbG9hZHN0YXJ0JywgJ2xvYWRTdGFydCcsICdsb3N0cG9pbnRlcmNhcHR1cmUnLCAnbG9zdFBvaW50ZXJDYXB0dXJlJywgJ3BsYXlpbmcnLCAncGxheWluZycsICdwcm9ncmVzcycsICdwcm9ncmVzcycsICdzZWVraW5nJywgJ3NlZWtpbmcnLCAnc3RhbGxlZCcsICdzdGFsbGVkJywgJ3N1c3BlbmQnLCAnc3VzcGVuZCcsICd0aW1ldXBkYXRlJywgJ3RpbWVVcGRhdGUnLCBUUkFOU0lUSU9OX0VORCwgJ3RyYW5zaXRpb25FbmQnLCAnd2FpdGluZycsICd3YWl0aW5nJ107XG4vKipcbiAqIFR1cm5zXG4gKiBbJ2Fib3J0JywgLi4uXVxuICpcbiAqIGludG9cbiAqXG4gKiB0b3BMZXZlbEV2ZW50c1RvUmVhY3ROYW1lcyA9IG5ldyBNYXAoW1xuICogICBbJ2Fib3J0JywgJ29uQWJvcnQnXSxcbiAqIF0pO1xuICpcbiAqIGFuZCByZWdpc3RlcnMgdGhlbS5cbiAqL1xuXG5mdW5jdGlvbiByZWdpc3RlclNpbXBsZVBsdWdpbkV2ZW50c0FuZFNldFRoZWlyUHJpb3JpdGllcyhldmVudFR5cGVzLCBwcmlvcml0eSkge1xuICAvLyBBcyB0aGUgZXZlbnQgdHlwZXMgYXJlIGluIHBhaXJzIG9mIHR3bywgd2UgbmVlZCB0byBpdGVyYXRlXG4gIC8vIHRocm91Z2ggaW4gdHdvcy4gVGhlIGV2ZW50cyBhcmUgaW4gcGFpcnMgb2YgdHdvIHRvIHNhdmUgY29kZVxuICAvLyBhbmQgaW1wcm92ZSBpbml0IHBlcmYgb2YgcHJvY2Vzc2luZyB0aGlzIGFycmF5LCBhcyBpdCB3aWxsXG4gIC8vIHJlc3VsdCBpbiBmYXIgZmV3ZXIgb2JqZWN0IGFsbG9jYXRpb25zIGFuZCBwcm9wZXJ0eSBhY2Nlc3Nlc1xuICAvLyBpZiB3ZSBvbmx5IHVzZSB0aHJlZSBhcnJheXMgdG8gcHJvY2VzcyBhbGwgdGhlIGNhdGVnb3JpZXMgb2ZcbiAgLy8gaW5zdGVhZCBvZiB0dXBsZXMuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgZXZlbnRUeXBlcy5sZW5ndGg7IGkgKz0gMikge1xuICAgIHZhciB0b3BFdmVudCA9IGV2ZW50VHlwZXNbaV07XG4gICAgdmFyIGV2ZW50ID0gZXZlbnRUeXBlc1tpICsgMV07XG4gICAgdmFyIGNhcGl0YWxpemVkRXZlbnQgPSBldmVudFswXS50b1VwcGVyQ2FzZSgpICsgZXZlbnQuc2xpY2UoMSk7XG4gICAgdmFyIHJlYWN0TmFtZSA9ICdvbicgKyBjYXBpdGFsaXplZEV2ZW50O1xuICAgIGV2ZW50UHJpb3JpdGllcy5zZXQodG9wRXZlbnQsIHByaW9yaXR5KTtcbiAgICB0b3BMZXZlbEV2ZW50c1RvUmVhY3ROYW1lcy5zZXQodG9wRXZlbnQsIHJlYWN0TmFtZSk7XG4gICAgcmVnaXN0ZXJUd29QaGFzZUV2ZW50KHJlYWN0TmFtZSwgW3RvcEV2ZW50XSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gc2V0RXZlbnRQcmlvcml0aWVzKGV2ZW50VHlwZXMsIHByaW9yaXR5KSB7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgZXZlbnRUeXBlcy5sZW5ndGg7IGkrKykge1xuICAgIGV2ZW50UHJpb3JpdGllcy5zZXQoZXZlbnRUeXBlc1tpXSwgcHJpb3JpdHkpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldEV2ZW50UHJpb3JpdHlGb3JQbHVnaW5TeXN0ZW0oZG9tRXZlbnROYW1lKSB7XG4gIHZhciBwcmlvcml0eSA9IGV2ZW50UHJpb3JpdGllcy5nZXQoZG9tRXZlbnROYW1lKTsgLy8gRGVmYXVsdCB0byBhIENvbnRpbnVvdXNFdmVudC4gTm90ZTogd2UgbWlnaHRcbiAgLy8gd2FudCB0byB3YXJuIGlmIHdlIGNhbid0IGRldGVjdCB0aGUgcHJpb3JpdHlcbiAgLy8gZm9yIHRoZSBldmVudC5cblxuICByZXR1cm4gcHJpb3JpdHkgPT09IHVuZGVmaW5lZCA/IENvbnRpbnVvdXNFdmVudCA6IHByaW9yaXR5O1xufVxuZnVuY3Rpb24gcmVnaXN0ZXJTaW1wbGVFdmVudHMoKSB7XG4gIHJlZ2lzdGVyU2ltcGxlUGx1Z2luRXZlbnRzQW5kU2V0VGhlaXJQcmlvcml0aWVzKGRpc2NyZXRlRXZlbnRQYWlyc0ZvclNpbXBsZUV2ZW50UGx1Z2luLCBEaXNjcmV0ZUV2ZW50KTtcbiAgcmVnaXN0ZXJTaW1wbGVQbHVnaW5FdmVudHNBbmRTZXRUaGVpclByaW9yaXRpZXModXNlckJsb2NraW5nUGFpcnNGb3JTaW1wbGVFdmVudFBsdWdpbiwgVXNlckJsb2NraW5nRXZlbnQpO1xuICByZWdpc3RlclNpbXBsZVBsdWdpbkV2ZW50c0FuZFNldFRoZWlyUHJpb3JpdGllcyhjb250aW51b3VzUGFpcnNGb3JTaW1wbGVFdmVudFBsdWdpbiwgQ29udGludW91c0V2ZW50KTtcbiAgc2V0RXZlbnRQcmlvcml0aWVzKG90aGVyRGlzY3JldGVFdmVudHMsIERpc2NyZXRlRXZlbnQpO1xufVxuXG52YXIgU2NoZWR1bGVyX25vdyA9IFNjaGVkdWxlci51bnN0YWJsZV9ub3c7XG5cbntcbiAgLy8gUHJvdmlkZSBleHBsaWNpdCBlcnJvciBtZXNzYWdlIHdoZW4gcHJvZHVjdGlvbitwcm9maWxpbmcgYnVuZGxlIG9mIGUuZy5cbiAgLy8gcmVhY3QtZG9tIGlzIHVzZWQgd2l0aCBwcm9kdWN0aW9uIChub24tcHJvZmlsaW5nKSBidW5kbGUgb2ZcbiAgLy8gc2NoZWR1bGVyL3RyYWNpbmdcbiAgaWYgKCEodHJhY2luZy5fX2ludGVyYWN0aW9uc1JlZiAhPSBudWxsICYmIHRyYWNpbmcuX19pbnRlcmFjdGlvbnNSZWYuY3VycmVudCAhPSBudWxsKSkge1xuICAgIHtcbiAgICAgIHRocm93IEVycm9yKCBcIkl0IGlzIG5vdCBzdXBwb3J0ZWQgdG8gcnVuIHRoZSBwcm9maWxpbmcgdmVyc2lvbiBvZiBhIHJlbmRlcmVyIChmb3IgZXhhbXBsZSwgYHJlYWN0LWRvbS9wcm9maWxpbmdgKSB3aXRob3V0IGFsc28gcmVwbGFjaW5nIHRoZSBgc2NoZWR1bGVyL3RyYWNpbmdgIG1vZHVsZSB3aXRoIGBzY2hlZHVsZXIvdHJhY2luZy1wcm9maWxpbmdgLiBZb3VyIGJ1bmRsZXIgbWlnaHQgaGF2ZSBhIHNldHRpbmcgZm9yIGFsaWFzaW5nIGJvdGggbW9kdWxlcy4gTGVhcm4gbW9yZSBhdCBodHRwczovL3JlYWN0anMub3JnL2xpbmsvcHJvZmlsaW5nXCIgKTtcbiAgICB9XG4gIH1cbn1cbi8vIGFzY2VuZGluZyBudW1iZXJzIHNvIHdlIGNhbiBjb21wYXJlIHRoZW0gbGlrZSBudW1iZXJzLiBUaGV5IHN0YXJ0IGF0IDkwIHRvXG4vLyBhdm9pZCBjbGFzaGluZyB3aXRoIFNjaGVkdWxlcidzIHByaW9yaXRpZXMuXG5cbnZhciBJbW1lZGlhdGVQcmlvcml0eSA9IDk5O1xudmFyIFVzZXJCbG9ja2luZ1ByaW9yaXR5ID0gOTg7XG52YXIgTm9ybWFsUHJpb3JpdHkgPSA5NztcbnZhciBMb3dQcmlvcml0eSA9IDk2O1xudmFyIElkbGVQcmlvcml0eSA9IDk1OyAvLyBOb1ByaW9yaXR5IGlzIHRoZSBhYnNlbmNlIG9mIHByaW9yaXR5LiBBbHNvIFJlYWN0LW9ubHkuXG5cbnZhciBOb1ByaW9yaXR5ID0gOTA7XG52YXIgaW5pdGlhbFRpbWVNcyA9IFNjaGVkdWxlcl9ub3coKTsgLy8gSWYgdGhlIGluaXRpYWwgdGltZXN0YW1wIGlzIHJlYXNvbmFibHkgc21hbGwsIHVzZSBTY2hlZHVsZXIncyBgbm93YCBkaXJlY3RseS5cblxudmFyIFN5bmNMYW5lUHJpb3JpdHkgPSAxNTtcbnZhciBTeW5jQmF0Y2hlZExhbmVQcmlvcml0eSA9IDE0O1xudmFyIElucHV0RGlzY3JldGVIeWRyYXRpb25MYW5lUHJpb3JpdHkgPSAxMztcbnZhciBJbnB1dERpc2NyZXRlTGFuZVByaW9yaXR5ID0gMTI7XG52YXIgSW5wdXRDb250aW51b3VzSHlkcmF0aW9uTGFuZVByaW9yaXR5ID0gMTE7XG52YXIgSW5wdXRDb250aW51b3VzTGFuZVByaW9yaXR5ID0gMTA7XG52YXIgRGVmYXVsdEh5ZHJhdGlvbkxhbmVQcmlvcml0eSA9IDk7XG52YXIgRGVmYXVsdExhbmVQcmlvcml0eSA9IDg7XG52YXIgVHJhbnNpdGlvbkh5ZHJhdGlvblByaW9yaXR5ID0gNztcbnZhciBUcmFuc2l0aW9uUHJpb3JpdHkgPSA2O1xudmFyIFJldHJ5TGFuZVByaW9yaXR5ID0gNTtcbnZhciBTZWxlY3RpdmVIeWRyYXRpb25MYW5lUHJpb3JpdHkgPSA0O1xudmFyIElkbGVIeWRyYXRpb25MYW5lUHJpb3JpdHkgPSAzO1xudmFyIElkbGVMYW5lUHJpb3JpdHkgPSAyO1xudmFyIE9mZnNjcmVlbkxhbmVQcmlvcml0eSA9IDE7XG52YXIgTm9MYW5lUHJpb3JpdHkgPSAwO1xudmFyIFRvdGFsTGFuZXMgPSAzMTtcbnZhciBOb0xhbmVzID1cbi8qICAgICAgICAgICAgICAgICAgICAgICAgKi9cbjA7XG52YXIgTm9MYW5lID1cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuMDtcbnZhciBTeW5jTGFuZSA9XG4vKiAgICAgICAgICAgICAgICAgICAgICAgICovXG4xO1xudmFyIFN5bmNCYXRjaGVkTGFuZSA9XG4vKiAgICAgICAgICAgICAgICAgKi9cbjI7XG52YXIgSW5wdXREaXNjcmV0ZUh5ZHJhdGlvbkxhbmUgPVxuLyogICAgICAqL1xuNDtcbnZhciBJbnB1dERpc2NyZXRlTGFuZXMgPVxuLyogICAgICAgICAgICAgICAgICAgICovXG4yNDtcbnZhciBJbnB1dENvbnRpbnVvdXNIeWRyYXRpb25MYW5lID1cbi8qICAgICAgICAgICAqL1xuMzI7XG52YXIgSW5wdXRDb250aW51b3VzTGFuZXMgPVxuLyogICAgICAgICAgICAgICAgICAqL1xuMTkyO1xudmFyIERlZmF1bHRIeWRyYXRpb25MYW5lID1cbi8qICAgICAgICAgICAgKi9cbjI1NjtcbnZhciBEZWZhdWx0TGFuZXMgPVxuLyogICAgICAgICAgICAgICAgICAgKi9cbjM1ODQ7XG52YXIgVHJhbnNpdGlvbkh5ZHJhdGlvbkxhbmUgPVxuLyogICAgICAgICAgICAgICAgKi9cbjQwOTY7XG52YXIgVHJhbnNpdGlvbkxhbmVzID1cbi8qICAgICAgICAgICAgICAgICAgICAgICAqL1xuNDE4NjExMjtcbnZhciBSZXRyeUxhbmVzID1cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG42MjkxNDU2MDtcbnZhciBTb21lUmV0cnlMYW5lID1cbi8qICAgICAgICAgICAgICAgICAgKi9cbjMzNTU0NDMyO1xudmFyIFNlbGVjdGl2ZUh5ZHJhdGlvbkxhbmUgPVxuLyogICAgICAgICAgKi9cbjY3MTA4ODY0O1xudmFyIE5vbklkbGVMYW5lcyA9XG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4xMzQyMTc3Mjc7XG52YXIgSWRsZUh5ZHJhdGlvbkxhbmUgPVxuLyogICAgICAgICAgICAgICAqL1xuMTM0MjE3NzI4O1xudmFyIElkbGVMYW5lcyA9XG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbjgwNTMwNjM2ODtcbnZhciBPZmZzY3JlZW5MYW5lID1cbi8qICAgICAgICAgICAgICAgICAgICovXG4xMDczNzQxODI0O1xudmFyIE5vVGltZXN0YW1wID0gLTE7XG5mdW5jdGlvbiBzZXRDdXJyZW50VXBkYXRlTGFuZVByaW9yaXR5KG5ld0xhbmVQcmlvcml0eSkge1xufSAvLyBcIlJlZ2lzdGVyc1wiIHVzZWQgdG8gXCJyZXR1cm5cIiBtdWx0aXBsZSB2YWx1ZXNcbi8vIFVzZWQgYnkgZ2V0SGlnaGVzdFByaW9yaXR5TGFuZXMgYW5kIGdldE5leHRMYW5lczpcblxudmFyIHJldHVybl9oaWdoZXN0TGFuZVByaW9yaXR5ID0gRGVmYXVsdExhbmVQcmlvcml0eTtcblxuZnVuY3Rpb24gZ2V0SGlnaGVzdFByaW9yaXR5TGFuZXMobGFuZXMpIHtcbiAgaWYgKChTeW5jTGFuZSAmIGxhbmVzKSAhPT0gTm9MYW5lcykge1xuICAgIHJldHVybl9oaWdoZXN0TGFuZVByaW9yaXR5ID0gU3luY0xhbmVQcmlvcml0eTtcbiAgICByZXR1cm4gU3luY0xhbmU7XG4gIH1cblxuICBpZiAoKFN5bmNCYXRjaGVkTGFuZSAmIGxhbmVzKSAhPT0gTm9MYW5lcykge1xuICAgIHJldHVybl9oaWdoZXN0TGFuZVByaW9yaXR5ID0gU3luY0JhdGNoZWRMYW5lUHJpb3JpdHk7XG4gICAgcmV0dXJuIFN5bmNCYXRjaGVkTGFuZTtcbiAgfVxuXG4gIGlmICgoSW5wdXREaXNjcmV0ZUh5ZHJhdGlvbkxhbmUgJiBsYW5lcykgIT09IE5vTGFuZXMpIHtcbiAgICByZXR1cm5faGlnaGVzdExhbmVQcmlvcml0eSA9IElucHV0RGlzY3JldGVIeWRyYXRpb25MYW5lUHJpb3JpdHk7XG4gICAgcmV0dXJuIElucHV0RGlzY3JldGVIeWRyYXRpb25MYW5lO1xuICB9XG5cbiAgdmFyIGlucHV0RGlzY3JldGVMYW5lcyA9IElucHV0RGlzY3JldGVMYW5lcyAmIGxhbmVzO1xuXG4gIGlmIChpbnB1dERpc2NyZXRlTGFuZXMgIT09IE5vTGFuZXMpIHtcbiAgICByZXR1cm5faGlnaGVzdExhbmVQcmlvcml0eSA9IElucHV0RGlzY3JldGVMYW5lUHJpb3JpdHk7XG4gICAgcmV0dXJuIGlucHV0RGlzY3JldGVMYW5lcztcbiAgfVxuXG4gIGlmICgobGFuZXMgJiBJbnB1dENvbnRpbnVvdXNIeWRyYXRpb25MYW5lKSAhPT0gTm9MYW5lcykge1xuICAgIHJldHVybl9oaWdoZXN0TGFuZVByaW9yaXR5ID0gSW5wdXRDb250aW51b3VzSHlkcmF0aW9uTGFuZVByaW9yaXR5O1xuICAgIHJldHVybiBJbnB1dENvbnRpbnVvdXNIeWRyYXRpb25MYW5lO1xuICB9XG5cbiAgdmFyIGlucHV0Q29udGludW91c0xhbmVzID0gSW5wdXRDb250aW51b3VzTGFuZXMgJiBsYW5lcztcblxuICBpZiAoaW5wdXRDb250aW51b3VzTGFuZXMgIT09IE5vTGFuZXMpIHtcbiAgICByZXR1cm5faGlnaGVzdExhbmVQcmlvcml0eSA9IElucHV0Q29udGludW91c0xhbmVQcmlvcml0eTtcbiAgICByZXR1cm4gaW5wdXRDb250aW51b3VzTGFuZXM7XG4gIH1cblxuICBpZiAoKGxhbmVzICYgRGVmYXVsdEh5ZHJhdGlvbkxhbmUpICE9PSBOb0xhbmVzKSB7XG4gICAgcmV0dXJuX2hpZ2hlc3RMYW5lUHJpb3JpdHkgPSBEZWZhdWx0SHlkcmF0aW9uTGFuZVByaW9yaXR5O1xuICAgIHJldHVybiBEZWZhdWx0SHlkcmF0aW9uTGFuZTtcbiAgfVxuXG4gIHZhciBkZWZhdWx0TGFuZXMgPSBEZWZhdWx0TGFuZXMgJiBsYW5lcztcblxuICBpZiAoZGVmYXVsdExhbmVzICE9PSBOb0xhbmVzKSB7XG4gICAgcmV0dXJuX2hpZ2hlc3RMYW5lUHJpb3JpdHkgPSBEZWZhdWx0TGFuZVByaW9yaXR5O1xuICAgIHJldHVybiBkZWZhdWx0TGFuZXM7XG4gIH1cblxuICBpZiAoKGxhbmVzICYgVHJhbnNpdGlvbkh5ZHJhdGlvbkxhbmUpICE9PSBOb0xhbmVzKSB7XG4gICAgcmV0dXJuX2hpZ2hlc3RMYW5lUHJpb3JpdHkgPSBUcmFuc2l0aW9uSHlkcmF0aW9uUHJpb3JpdHk7XG4gICAgcmV0dXJuIFRyYW5zaXRpb25IeWRyYXRpb25MYW5lO1xuICB9XG5cbiAgdmFyIHRyYW5zaXRpb25MYW5lcyA9IFRyYW5zaXRpb25MYW5lcyAmIGxhbmVzO1xuXG4gIGlmICh0cmFuc2l0aW9uTGFuZXMgIT09IE5vTGFuZXMpIHtcbiAgICByZXR1cm5faGlnaGVzdExhbmVQcmlvcml0eSA9IFRyYW5zaXRpb25Qcmlvcml0eTtcbiAgICByZXR1cm4gdHJhbnNpdGlvbkxhbmVzO1xuICB9XG5cbiAgdmFyIHJldHJ5TGFuZXMgPSBSZXRyeUxhbmVzICYgbGFuZXM7XG5cbiAgaWYgKHJldHJ5TGFuZXMgIT09IE5vTGFuZXMpIHtcbiAgICByZXR1cm5faGlnaGVzdExhbmVQcmlvcml0eSA9IFJldHJ5TGFuZVByaW9yaXR5O1xuICAgIHJldHVybiByZXRyeUxhbmVzO1xuICB9XG5cbiAgaWYgKGxhbmVzICYgU2VsZWN0aXZlSHlkcmF0aW9uTGFuZSkge1xuICAgIHJldHVybl9oaWdoZXN0TGFuZVByaW9yaXR5ID0gU2VsZWN0aXZlSHlkcmF0aW9uTGFuZVByaW9yaXR5O1xuICAgIHJldHVybiBTZWxlY3RpdmVIeWRyYXRpb25MYW5lO1xuICB9XG5cbiAgaWYgKChsYW5lcyAmIElkbGVIeWRyYXRpb25MYW5lKSAhPT0gTm9MYW5lcykge1xuICAgIHJldHVybl9oaWdoZXN0TGFuZVByaW9yaXR5ID0gSWRsZUh5ZHJhdGlvbkxhbmVQcmlvcml0eTtcbiAgICByZXR1cm4gSWRsZUh5ZHJhdGlvbkxhbmU7XG4gIH1cblxuICB2YXIgaWRsZUxhbmVzID0gSWRsZUxhbmVzICYgbGFuZXM7XG5cbiAgaWYgKGlkbGVMYW5lcyAhPT0gTm9MYW5lcykge1xuICAgIHJldHVybl9oaWdoZXN0TGFuZVByaW9yaXR5ID0gSWRsZUxhbmVQcmlvcml0eTtcbiAgICByZXR1cm4gaWRsZUxhbmVzO1xuICB9XG5cbiAgaWYgKChPZmZzY3JlZW5MYW5lICYgbGFuZXMpICE9PSBOb0xhbmVzKSB7XG4gICAgcmV0dXJuX2hpZ2hlc3RMYW5lUHJpb3JpdHkgPSBPZmZzY3JlZW5MYW5lUHJpb3JpdHk7XG4gICAgcmV0dXJuIE9mZnNjcmVlbkxhbmU7XG4gIH1cblxuICB7XG4gICAgZXJyb3IoJ1Nob3VsZCBoYXZlIGZvdW5kIG1hdGNoaW5nIGxhbmVzLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LicpO1xuICB9IC8vIFRoaXMgc2hvdWxkbid0IGJlIHJlYWNoYWJsZSwgYnV0IGFzIGEgZmFsbGJhY2ssIHJldHVybiB0aGUgZW50aXJlIGJpdG1hc2suXG5cblxuICByZXR1cm5faGlnaGVzdExhbmVQcmlvcml0eSA9IERlZmF1bHRMYW5lUHJpb3JpdHk7XG4gIHJldHVybiBsYW5lcztcbn1cblxuZnVuY3Rpb24gc2NoZWR1bGVyUHJpb3JpdHlUb0xhbmVQcmlvcml0eShzY2hlZHVsZXJQcmlvcml0eUxldmVsKSB7XG4gIHN3aXRjaCAoc2NoZWR1bGVyUHJpb3JpdHlMZXZlbCkge1xuICAgIGNhc2UgSW1tZWRpYXRlUHJpb3JpdHk6XG4gICAgICByZXR1cm4gU3luY0xhbmVQcmlvcml0eTtcblxuICAgIGNhc2UgVXNlckJsb2NraW5nUHJpb3JpdHk6XG4gICAgICByZXR1cm4gSW5wdXRDb250aW51b3VzTGFuZVByaW9yaXR5O1xuXG4gICAgY2FzZSBOb3JtYWxQcmlvcml0eTpcbiAgICBjYXNlIExvd1ByaW9yaXR5OlxuICAgICAgLy8gVE9ETzogSGFuZGxlIExvd1NjaGVkdWxlclByaW9yaXR5LCBzb21laG93LiBNYXliZSB0aGUgc2FtZSBsYW5lIGFzIGh5ZHJhdGlvbi5cbiAgICAgIHJldHVybiBEZWZhdWx0TGFuZVByaW9yaXR5O1xuXG4gICAgY2FzZSBJZGxlUHJpb3JpdHk6XG4gICAgICByZXR1cm4gSWRsZUxhbmVQcmlvcml0eTtcblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gTm9MYW5lUHJpb3JpdHk7XG4gIH1cbn1cbmZ1bmN0aW9uIGxhbmVQcmlvcml0eVRvU2NoZWR1bGVyUHJpb3JpdHkobGFuZVByaW9yaXR5KSB7XG4gIHN3aXRjaCAobGFuZVByaW9yaXR5KSB7XG4gICAgY2FzZSBTeW5jTGFuZVByaW9yaXR5OlxuICAgIGNhc2UgU3luY0JhdGNoZWRMYW5lUHJpb3JpdHk6XG4gICAgICByZXR1cm4gSW1tZWRpYXRlUHJpb3JpdHk7XG5cbiAgICBjYXNlIElucHV0RGlzY3JldGVIeWRyYXRpb25MYW5lUHJpb3JpdHk6XG4gICAgY2FzZSBJbnB1dERpc2NyZXRlTGFuZVByaW9yaXR5OlxuICAgIGNhc2UgSW5wdXRDb250aW51b3VzSHlkcmF0aW9uTGFuZVByaW9yaXR5OlxuICAgIGNhc2UgSW5wdXRDb250aW51b3VzTGFuZVByaW9yaXR5OlxuICAgICAgcmV0dXJuIFVzZXJCbG9ja2luZ1ByaW9yaXR5O1xuXG4gICAgY2FzZSBEZWZhdWx0SHlkcmF0aW9uTGFuZVByaW9yaXR5OlxuICAgIGNhc2UgRGVmYXVsdExhbmVQcmlvcml0eTpcbiAgICBjYXNlIFRyYW5zaXRpb25IeWRyYXRpb25Qcmlvcml0eTpcbiAgICBjYXNlIFRyYW5zaXRpb25Qcmlvcml0eTpcbiAgICBjYXNlIFNlbGVjdGl2ZUh5ZHJhdGlvbkxhbmVQcmlvcml0eTpcbiAgICBjYXNlIFJldHJ5TGFuZVByaW9yaXR5OlxuICAgICAgcmV0dXJuIE5vcm1hbFByaW9yaXR5O1xuXG4gICAgY2FzZSBJZGxlSHlkcmF0aW9uTGFuZVByaW9yaXR5OlxuICAgIGNhc2UgSWRsZUxhbmVQcmlvcml0eTpcbiAgICBjYXNlIE9mZnNjcmVlbkxhbmVQcmlvcml0eTpcbiAgICAgIHJldHVybiBJZGxlUHJpb3JpdHk7XG5cbiAgICBjYXNlIE5vTGFuZVByaW9yaXR5OlxuICAgICAgcmV0dXJuIE5vUHJpb3JpdHk7XG5cbiAgICBkZWZhdWx0OlxuICAgICAge1xuICAgICAgICB7XG4gICAgICAgICAgdGhyb3cgRXJyb3IoIFwiSW52YWxpZCB1cGRhdGUgcHJpb3JpdHk6IFwiICsgbGFuZVByaW9yaXR5ICsgXCIuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuXCIgKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gIH1cbn1cbmZ1bmN0aW9uIGdldE5leHRMYW5lcyhyb290LCB3aXBMYW5lcykge1xuICAvLyBFYXJseSBiYWlsb3V0IGlmIHRoZXJlJ3Mgbm8gcGVuZGluZyB3b3JrIGxlZnQuXG4gIHZhciBwZW5kaW5nTGFuZXMgPSByb290LnBlbmRpbmdMYW5lcztcblxuICBpZiAocGVuZGluZ0xhbmVzID09PSBOb0xhbmVzKSB7XG4gICAgcmV0dXJuX2hpZ2hlc3RMYW5lUHJpb3JpdHkgPSBOb0xhbmVQcmlvcml0eTtcbiAgICByZXR1cm4gTm9MYW5lcztcbiAgfVxuXG4gIHZhciBuZXh0TGFuZXMgPSBOb0xhbmVzO1xuICB2YXIgbmV4dExhbmVQcmlvcml0eSA9IE5vTGFuZVByaW9yaXR5O1xuICB2YXIgZXhwaXJlZExhbmVzID0gcm9vdC5leHBpcmVkTGFuZXM7XG4gIHZhciBzdXNwZW5kZWRMYW5lcyA9IHJvb3Quc3VzcGVuZGVkTGFuZXM7XG4gIHZhciBwaW5nZWRMYW5lcyA9IHJvb3QucGluZ2VkTGFuZXM7IC8vIENoZWNrIGlmIGFueSB3b3JrIGhhcyBleHBpcmVkLlxuXG4gIGlmIChleHBpcmVkTGFuZXMgIT09IE5vTGFuZXMpIHtcbiAgICBuZXh0TGFuZXMgPSBleHBpcmVkTGFuZXM7XG4gICAgbmV4dExhbmVQcmlvcml0eSA9IHJldHVybl9oaWdoZXN0TGFuZVByaW9yaXR5ID0gU3luY0xhbmVQcmlvcml0eTtcbiAgfSBlbHNlIHtcbiAgICAvLyBEbyBub3Qgd29yayBvbiBhbnkgaWRsZSB3b3JrIHVudGlsIGFsbCB0aGUgbm9uLWlkbGUgd29yayBoYXMgZmluaXNoZWQsXG4gICAgLy8gZXZlbiBpZiB0aGUgd29yayBpcyBzdXNwZW5kZWQuXG4gICAgdmFyIG5vbklkbGVQZW5kaW5nTGFuZXMgPSBwZW5kaW5nTGFuZXMgJiBOb25JZGxlTGFuZXM7XG5cbiAgICBpZiAobm9uSWRsZVBlbmRpbmdMYW5lcyAhPT0gTm9MYW5lcykge1xuICAgICAgdmFyIG5vbklkbGVVbmJsb2NrZWRMYW5lcyA9IG5vbklkbGVQZW5kaW5nTGFuZXMgJiB+c3VzcGVuZGVkTGFuZXM7XG5cbiAgICAgIGlmIChub25JZGxlVW5ibG9ja2VkTGFuZXMgIT09IE5vTGFuZXMpIHtcbiAgICAgICAgbmV4dExhbmVzID0gZ2V0SGlnaGVzdFByaW9yaXR5TGFuZXMobm9uSWRsZVVuYmxvY2tlZExhbmVzKTtcbiAgICAgICAgbmV4dExhbmVQcmlvcml0eSA9IHJldHVybl9oaWdoZXN0TGFuZVByaW9yaXR5O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIG5vbklkbGVQaW5nZWRMYW5lcyA9IG5vbklkbGVQZW5kaW5nTGFuZXMgJiBwaW5nZWRMYW5lcztcblxuICAgICAgICBpZiAobm9uSWRsZVBpbmdlZExhbmVzICE9PSBOb0xhbmVzKSB7XG4gICAgICAgICAgbmV4dExhbmVzID0gZ2V0SGlnaGVzdFByaW9yaXR5TGFuZXMobm9uSWRsZVBpbmdlZExhbmVzKTtcbiAgICAgICAgICBuZXh0TGFuZVByaW9yaXR5ID0gcmV0dXJuX2hpZ2hlc3RMYW5lUHJpb3JpdHk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVGhlIG9ubHkgcmVtYWluaW5nIHdvcmsgaXMgSWRsZS5cbiAgICAgIHZhciB1bmJsb2NrZWRMYW5lcyA9IHBlbmRpbmdMYW5lcyAmIH5zdXNwZW5kZWRMYW5lcztcblxuICAgICAgaWYgKHVuYmxvY2tlZExhbmVzICE9PSBOb0xhbmVzKSB7XG4gICAgICAgIG5leHRMYW5lcyA9IGdldEhpZ2hlc3RQcmlvcml0eUxhbmVzKHVuYmxvY2tlZExhbmVzKTtcbiAgICAgICAgbmV4dExhbmVQcmlvcml0eSA9IHJldHVybl9oaWdoZXN0TGFuZVByaW9yaXR5O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHBpbmdlZExhbmVzICE9PSBOb0xhbmVzKSB7XG4gICAgICAgICAgbmV4dExhbmVzID0gZ2V0SGlnaGVzdFByaW9yaXR5TGFuZXMocGluZ2VkTGFuZXMpO1xuICAgICAgICAgIG5leHRMYW5lUHJpb3JpdHkgPSByZXR1cm5faGlnaGVzdExhbmVQcmlvcml0eTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmIChuZXh0TGFuZXMgPT09IE5vTGFuZXMpIHtcbiAgICAvLyBUaGlzIHNob3VsZCBvbmx5IGJlIHJlYWNoYWJsZSBpZiB3ZSdyZSBzdXNwZW5kZWRcbiAgICAvLyBUT0RPOiBDb25zaWRlciB3YXJuaW5nIGluIHRoaXMgcGF0aCBpZiBhIGZhbGxiYWNrIHRpbWVyIGlzIG5vdCBzY2hlZHVsZWQuXG4gICAgcmV0dXJuIE5vTGFuZXM7XG4gIH0gLy8gSWYgdGhlcmUgYXJlIGhpZ2hlciBwcmlvcml0eSBsYW5lcywgd2UnbGwgaW5jbHVkZSB0aGVtIGV2ZW4gaWYgdGhleVxuICAvLyBhcmUgc3VzcGVuZGVkLlxuXG5cbiAgbmV4dExhbmVzID0gcGVuZGluZ0xhbmVzICYgZ2V0RXF1YWxPckhpZ2hlclByaW9yaXR5TGFuZXMobmV4dExhbmVzKTsgLy8gSWYgd2UncmUgYWxyZWFkeSBpbiB0aGUgbWlkZGxlIG9mIGEgcmVuZGVyLCBzd2l0Y2hpbmcgbGFuZXMgd2lsbCBpbnRlcnJ1cHRcbiAgLy8gaXQgYW5kIHdlJ2xsIGxvc2Ugb3VyIHByb2dyZXNzLiBXZSBzaG91bGQgb25seSBkbyB0aGlzIGlmIHRoZSBuZXcgbGFuZXMgYXJlXG4gIC8vIGhpZ2hlciBwcmlvcml0eS5cblxuICBpZiAod2lwTGFuZXMgIT09IE5vTGFuZXMgJiYgd2lwTGFuZXMgIT09IG5leHRMYW5lcyAmJiAvLyBJZiB3ZSBhbHJlYWR5IHN1c3BlbmRlZCB3aXRoIGEgZGVsYXksIHRoZW4gaW50ZXJydXB0aW5nIGlzIGZpbmUuIERvbid0XG4gIC8vIGJvdGhlciB3YWl0aW5nIHVudGlsIHRoZSByb290IGlzIGNvbXBsZXRlLlxuICAod2lwTGFuZXMgJiBzdXNwZW5kZWRMYW5lcykgPT09IE5vTGFuZXMpIHtcbiAgICBnZXRIaWdoZXN0UHJpb3JpdHlMYW5lcyh3aXBMYW5lcyk7XG4gICAgdmFyIHdpcExhbmVQcmlvcml0eSA9IHJldHVybl9oaWdoZXN0TGFuZVByaW9yaXR5O1xuXG4gICAgaWYgKG5leHRMYW5lUHJpb3JpdHkgPD0gd2lwTGFuZVByaW9yaXR5KSB7XG4gICAgICByZXR1cm4gd2lwTGFuZXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybl9oaWdoZXN0TGFuZVByaW9yaXR5ID0gbmV4dExhbmVQcmlvcml0eTtcbiAgICB9XG4gIH0gLy8gQ2hlY2sgZm9yIGVudGFuZ2xlZCBsYW5lcyBhbmQgYWRkIHRoZW0gdG8gdGhlIGJhdGNoLlxuICAvL1xuICAvLyBBIGxhbmUgaXMgc2FpZCB0byBiZSBlbnRhbmdsZWQgd2l0aCBhbm90aGVyIHdoZW4gaXQncyBub3QgYWxsb3dlZCB0byByZW5kZXJcbiAgLy8gaW4gYSBiYXRjaCB0aGF0IGRvZXMgbm90IGFsc28gaW5jbHVkZSB0aGUgb3RoZXIgbGFuZS4gVHlwaWNhbGx5IHdlIGRvIHRoaXNcbiAgLy8gd2hlbiBtdWx0aXBsZSB1cGRhdGVzIGhhdmUgdGhlIHNhbWUgc291cmNlLCBhbmQgd2Ugb25seSB3YW50IHRvIHJlc3BvbmQgdG9cbiAgLy8gdGhlIG1vc3QgcmVjZW50IGV2ZW50IGZyb20gdGhhdCBzb3VyY2UuXG4gIC8vXG4gIC8vIE5vdGUgdGhhdCB3ZSBhcHBseSBlbnRhbmdsZW1lbnRzICphZnRlciogY2hlY2tpbmcgZm9yIHBhcnRpYWwgd29yayBhYm92ZS5cbiAgLy8gVGhpcyBtZWFucyB0aGF0IGlmIGEgbGFuZSBpcyBlbnRhbmdsZWQgZHVyaW5nIGFuIGludGVybGVhdmVkIGV2ZW50IHdoaWxlXG4gIC8vIGl0J3MgYWxyZWFkeSByZW5kZXJpbmcsIHdlIHdvbid0IGludGVycnVwdCBpdC4gVGhpcyBpcyBpbnRlbnRpb25hbCwgc2luY2VcbiAgLy8gZW50YW5nbGVtZW50IGlzIHVzdWFsbHkgXCJiZXN0IGVmZm9ydFwiOiB3ZSdsbCB0cnkgb3VyIGJlc3QgdG8gcmVuZGVyIHRoZVxuICAvLyBsYW5lcyBpbiB0aGUgc2FtZSBiYXRjaCwgYnV0IGl0J3Mgbm90IHdvcnRoIHRocm93aW5nIG91dCBwYXJ0aWFsbHlcbiAgLy8gY29tcGxldGVkIHdvcmsgaW4gb3JkZXIgdG8gZG8gaXQuXG4gIC8vXG4gIC8vIEZvciB0aG9zZSBleGNlcHRpb25zIHdoZXJlIGVudGFuZ2xlbWVudCBpcyBzZW1hbnRpY2FsbHkgaW1wb3J0YW50LCBsaWtlXG4gIC8vIHVzZU11dGFibGVTb3VyY2UsIHdlIHNob3VsZCBlbnN1cmUgdGhhdCB0aGVyZSBpcyBubyBwYXJ0aWFsIHdvcmsgYXQgdGhlXG4gIC8vIHRpbWUgd2UgYXBwbHkgdGhlIGVudGFuZ2xlbWVudC5cblxuXG4gIHZhciBlbnRhbmdsZWRMYW5lcyA9IHJvb3QuZW50YW5nbGVkTGFuZXM7XG5cbiAgaWYgKGVudGFuZ2xlZExhbmVzICE9PSBOb0xhbmVzKSB7XG4gICAgdmFyIGVudGFuZ2xlbWVudHMgPSByb290LmVudGFuZ2xlbWVudHM7XG4gICAgdmFyIGxhbmVzID0gbmV4dExhbmVzICYgZW50YW5nbGVkTGFuZXM7XG5cbiAgICB3aGlsZSAobGFuZXMgPiAwKSB7XG4gICAgICB2YXIgaW5kZXggPSBwaWNrQXJiaXRyYXJ5TGFuZUluZGV4KGxhbmVzKTtcbiAgICAgIHZhciBsYW5lID0gMSA8PCBpbmRleDtcbiAgICAgIG5leHRMYW5lcyB8PSBlbnRhbmdsZW1lbnRzW2luZGV4XTtcbiAgICAgIGxhbmVzICY9IH5sYW5lO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBuZXh0TGFuZXM7XG59XG5mdW5jdGlvbiBnZXRNb3N0UmVjZW50RXZlbnRUaW1lKHJvb3QsIGxhbmVzKSB7XG4gIHZhciBldmVudFRpbWVzID0gcm9vdC5ldmVudFRpbWVzO1xuICB2YXIgbW9zdFJlY2VudEV2ZW50VGltZSA9IE5vVGltZXN0YW1wO1xuXG4gIHdoaWxlIChsYW5lcyA+IDApIHtcbiAgICB2YXIgaW5kZXggPSBwaWNrQXJiaXRyYXJ5TGFuZUluZGV4KGxhbmVzKTtcbiAgICB2YXIgbGFuZSA9IDEgPDwgaW5kZXg7XG4gICAgdmFyIGV2ZW50VGltZSA9IGV2ZW50VGltZXNbaW5kZXhdO1xuXG4gICAgaWYgKGV2ZW50VGltZSA+IG1vc3RSZWNlbnRFdmVudFRpbWUpIHtcbiAgICAgIG1vc3RSZWNlbnRFdmVudFRpbWUgPSBldmVudFRpbWU7XG4gICAgfVxuXG4gICAgbGFuZXMgJj0gfmxhbmU7XG4gIH1cblxuICByZXR1cm4gbW9zdFJlY2VudEV2ZW50VGltZTtcbn1cblxuZnVuY3Rpb24gY29tcHV0ZUV4cGlyYXRpb25UaW1lKGxhbmUsIGN1cnJlbnRUaW1lKSB7XG4gIC8vIFRPRE86IEV4cGlyYXRpb24gaGV1cmlzdGljIGlzIGNvbnN0YW50IHBlciBsYW5lLCBzbyBjb3VsZCB1c2UgYSBtYXAuXG4gIGdldEhpZ2hlc3RQcmlvcml0eUxhbmVzKGxhbmUpO1xuICB2YXIgcHJpb3JpdHkgPSByZXR1cm5faGlnaGVzdExhbmVQcmlvcml0eTtcblxuICBpZiAocHJpb3JpdHkgPj0gSW5wdXRDb250aW51b3VzTGFuZVByaW9yaXR5KSB7XG4gICAgLy8gVXNlciBpbnRlcmFjdGlvbnMgc2hvdWxkIGV4cGlyZSBzbGlnaHRseSBtb3JlIHF1aWNrbHkuXG4gICAgLy9cbiAgICAvLyBOT1RFOiBUaGlzIGlzIHNldCB0byB0aGUgY29ycmVzcG9uZGluZyBjb25zdGFudCBhcyBpbiBTY2hlZHVsZXIuanMuIFdoZW5cbiAgICAvLyB3ZSBtYWRlIGl0IGxhcmdlciwgYSBwcm9kdWN0IG1ldHJpYyBpbiB3d3cgcmVncmVzc2VkLCBzdWdnZXN0aW5nIHRoZXJlJ3NcbiAgICAvLyBhIHVzZXIgaW50ZXJhY3Rpb24gdGhhdCdzIGJlaW5nIHN0YXJ2ZWQgYnkgYSBzZXJpZXMgb2Ygc3luY2hyb25vdXNcbiAgICAvLyB1cGRhdGVzLiBJZiB0aGF0IHRoZW9yeSBpcyBjb3JyZWN0LCB0aGUgcHJvcGVyIHNvbHV0aW9uIGlzIHRvIGZpeCB0aGVcbiAgICAvLyBzdGFydmF0aW9uLiBIb3dldmVyLCB0aGlzIHNjZW5hcmlvIHN1cHBvcnRzIHRoZSBpZGVhIHRoYXQgZXhwaXJhdGlvblxuICAgIC8vIHRpbWVzIGFyZSBhbiBpbXBvcnRhbnQgc2FmZWd1YXJkIHdoZW4gc3RhcnZhdGlvbiBkb2VzIGhhcHBlbi5cbiAgICAvL1xuICAgIC8vIEFsc28gbm90ZSB0aGF0LCBpbiB0aGUgY2FzZSBvZiB1c2VyIGlucHV0IHNwZWNpZmljYWxseSwgdGhpcyB3aWxsIHNvb24gbm9cbiAgICAvLyBsb25nZXIgYmUgYW4gaXNzdWUgYmVjYXVzZSB3ZSBwbGFuIHRvIG1ha2UgdXNlciBpbnB1dCBzeW5jaHJvbm91cyBieVxuICAgIC8vIGRlZmF1bHQgKHVudGlsIHlvdSBlbnRlciBgc3RhcnRUcmFuc2l0aW9uYCwgb2YgY291cnNlLilcbiAgICAvL1xuICAgIC8vIElmIHdlcmVuJ3QgcGxhbm5pbmcgdG8gbWFrZSB0aGVzZSB1cGRhdGVzIHN5bmNocm9ub3VzIHNvb24gYW55d2F5LCBJXG4gICAgLy8gd291bGQgcHJvYmFibHkgbWFrZSB0aGlzIG51bWJlciBhIGNvbmZpZ3VyYWJsZSBwYXJhbWV0ZXIuXG4gICAgcmV0dXJuIGN1cnJlbnRUaW1lICsgMjUwO1xuICB9IGVsc2UgaWYgKHByaW9yaXR5ID49IFRyYW5zaXRpb25Qcmlvcml0eSkge1xuICAgIHJldHVybiBjdXJyZW50VGltZSArIDUwMDA7XG4gIH0gZWxzZSB7XG4gICAgLy8gQW55dGhpbmcgaWRsZSBwcmlvcml0eSBvciBsb3dlciBzaG91bGQgbmV2ZXIgZXhwaXJlLlxuICAgIHJldHVybiBOb1RpbWVzdGFtcDtcbiAgfVxufVxuXG5mdW5jdGlvbiBtYXJrU3RhcnZlZExhbmVzQXNFeHBpcmVkKHJvb3QsIGN1cnJlbnRUaW1lKSB7XG4gIC8vIFRPRE86IFRoaXMgZ2V0cyBjYWxsZWQgZXZlcnkgdGltZSB3ZSB5aWVsZC4gV2UgY2FuIG9wdGltaXplIGJ5IHN0b3JpbmdcbiAgLy8gdGhlIGVhcmxpZXN0IGV4cGlyYXRpb24gdGltZSBvbiB0aGUgcm9vdC4gVGhlbiB1c2UgdGhhdCB0byBxdWlja2x5IGJhaWwgb3V0XG4gIC8vIG9mIHRoaXMgZnVuY3Rpb24uXG4gIHZhciBwZW5kaW5nTGFuZXMgPSByb290LnBlbmRpbmdMYW5lcztcbiAgdmFyIHN1c3BlbmRlZExhbmVzID0gcm9vdC5zdXNwZW5kZWRMYW5lcztcbiAgdmFyIHBpbmdlZExhbmVzID0gcm9vdC5waW5nZWRMYW5lcztcbiAgdmFyIGV4cGlyYXRpb25UaW1lcyA9IHJvb3QuZXhwaXJhdGlvblRpbWVzOyAvLyBJdGVyYXRlIHRocm91Z2ggdGhlIHBlbmRpbmcgbGFuZXMgYW5kIGNoZWNrIGlmIHdlJ3ZlIHJlYWNoZWQgdGhlaXJcbiAgLy8gZXhwaXJhdGlvbiB0aW1lLiBJZiBzbywgd2UnbGwgYXNzdW1lIHRoZSB1cGRhdGUgaXMgYmVpbmcgc3RhcnZlZCBhbmQgbWFya1xuICAvLyBpdCBhcyBleHBpcmVkIHRvIGZvcmNlIGl0IHRvIGZpbmlzaC5cblxuICB2YXIgbGFuZXMgPSBwZW5kaW5nTGFuZXM7XG5cbiAgd2hpbGUgKGxhbmVzID4gMCkge1xuICAgIHZhciBpbmRleCA9IHBpY2tBcmJpdHJhcnlMYW5lSW5kZXgobGFuZXMpO1xuICAgIHZhciBsYW5lID0gMSA8PCBpbmRleDtcbiAgICB2YXIgZXhwaXJhdGlvblRpbWUgPSBleHBpcmF0aW9uVGltZXNbaW5kZXhdO1xuXG4gICAgaWYgKGV4cGlyYXRpb25UaW1lID09PSBOb1RpbWVzdGFtcCkge1xuICAgICAgLy8gRm91bmQgYSBwZW5kaW5nIGxhbmUgd2l0aCBubyBleHBpcmF0aW9uIHRpbWUuIElmIGl0J3Mgbm90IHN1c3BlbmRlZCwgb3JcbiAgICAgIC8vIGlmIGl0J3MgcGluZ2VkLCBhc3N1bWUgaXQncyBDUFUtYm91bmQuIENvbXB1dGUgYSBuZXcgZXhwaXJhdGlvbiB0aW1lXG4gICAgICAvLyB1c2luZyB0aGUgY3VycmVudCB0aW1lLlxuICAgICAgaWYgKChsYW5lICYgc3VzcGVuZGVkTGFuZXMpID09PSBOb0xhbmVzIHx8IChsYW5lICYgcGluZ2VkTGFuZXMpICE9PSBOb0xhbmVzKSB7XG4gICAgICAgIC8vIEFzc3VtZXMgdGltZXN0YW1wcyBhcmUgbW9ub3RvbmljYWxseSBpbmNyZWFzaW5nLlxuICAgICAgICBleHBpcmF0aW9uVGltZXNbaW5kZXhdID0gY29tcHV0ZUV4cGlyYXRpb25UaW1lKGxhbmUsIGN1cnJlbnRUaW1lKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGV4cGlyYXRpb25UaW1lIDw9IGN1cnJlbnRUaW1lKSB7XG4gICAgICAvLyBUaGlzIGxhbmUgZXhwaXJlZFxuICAgICAgcm9vdC5leHBpcmVkTGFuZXMgfD0gbGFuZTtcbiAgICB9XG5cbiAgICBsYW5lcyAmPSB+bGFuZTtcbiAgfVxufSAvLyBUaGlzIHJldHVybnMgdGhlIGhpZ2hlc3QgcHJpb3JpdHkgcGVuZGluZyBsYW5lcyByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhleVxuZnVuY3Rpb24gZ2V0TGFuZXNUb1JldHJ5U3luY2hyb25vdXNseU9uRXJyb3Iocm9vdCkge1xuICB2YXIgZXZlcnl0aGluZ0J1dE9mZnNjcmVlbiA9IHJvb3QucGVuZGluZ0xhbmVzICYgfk9mZnNjcmVlbkxhbmU7XG5cbiAgaWYgKGV2ZXJ5dGhpbmdCdXRPZmZzY3JlZW4gIT09IE5vTGFuZXMpIHtcbiAgICByZXR1cm4gZXZlcnl0aGluZ0J1dE9mZnNjcmVlbjtcbiAgfVxuXG4gIGlmIChldmVyeXRoaW5nQnV0T2Zmc2NyZWVuICYgT2Zmc2NyZWVuTGFuZSkge1xuICAgIHJldHVybiBPZmZzY3JlZW5MYW5lO1xuICB9XG5cbiAgcmV0dXJuIE5vTGFuZXM7XG59XG5mdW5jdGlvbiByZXR1cm5OZXh0TGFuZXNQcmlvcml0eSgpIHtcbiAgcmV0dXJuIHJldHVybl9oaWdoZXN0TGFuZVByaW9yaXR5O1xufVxuZnVuY3Rpb24gaW5jbHVkZXNOb25JZGxlV29yayhsYW5lcykge1xuICByZXR1cm4gKGxhbmVzICYgTm9uSWRsZUxhbmVzKSAhPT0gTm9MYW5lcztcbn1cbmZ1bmN0aW9uIGluY2x1ZGVzT25seVJldHJpZXMobGFuZXMpIHtcbiAgcmV0dXJuIChsYW5lcyAmIFJldHJ5TGFuZXMpID09PSBsYW5lcztcbn1cbmZ1bmN0aW9uIGluY2x1ZGVzT25seVRyYW5zaXRpb25zKGxhbmVzKSB7XG4gIHJldHVybiAobGFuZXMgJiBUcmFuc2l0aW9uTGFuZXMpID09PSBsYW5lcztcbn0gLy8gVG8gZW5zdXJlIGNvbnNpc3RlbmN5IGFjcm9zcyBtdWx0aXBsZSB1cGRhdGVzIGluIHRoZSBzYW1lIGV2ZW50LCB0aGlzIHNob3VsZFxuLy8gYmUgYSBwdXJlIGZ1bmN0aW9uLCBzbyB0aGF0IGl0IGFsd2F5cyByZXR1cm5zIHRoZSBzYW1lIGxhbmUgZm9yIGdpdmVuIGlucHV0cy5cblxuZnVuY3Rpb24gZmluZFVwZGF0ZUxhbmUobGFuZVByaW9yaXR5LCB3aXBMYW5lcykge1xuICBzd2l0Y2ggKGxhbmVQcmlvcml0eSkge1xuICAgIGNhc2UgTm9MYW5lUHJpb3JpdHk6XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgU3luY0xhbmVQcmlvcml0eTpcbiAgICAgIHJldHVybiBTeW5jTGFuZTtcblxuICAgIGNhc2UgU3luY0JhdGNoZWRMYW5lUHJpb3JpdHk6XG4gICAgICByZXR1cm4gU3luY0JhdGNoZWRMYW5lO1xuXG4gICAgY2FzZSBJbnB1dERpc2NyZXRlTGFuZVByaW9yaXR5OlxuICAgICAge1xuICAgICAgICB2YXIgX2xhbmUgPSBwaWNrQXJiaXRyYXJ5TGFuZShJbnB1dERpc2NyZXRlTGFuZXMgJiB+d2lwTGFuZXMpO1xuXG4gICAgICAgIGlmIChfbGFuZSA9PT0gTm9MYW5lKSB7XG4gICAgICAgICAgLy8gU2hpZnQgdG8gdGhlIG5leHQgcHJpb3JpdHkgbGV2ZWxcbiAgICAgICAgICByZXR1cm4gZmluZFVwZGF0ZUxhbmUoSW5wdXRDb250aW51b3VzTGFuZVByaW9yaXR5LCB3aXBMYW5lcyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gX2xhbmU7XG4gICAgICB9XG5cbiAgICBjYXNlIElucHV0Q29udGludW91c0xhbmVQcmlvcml0eTpcbiAgICAgIHtcbiAgICAgICAgdmFyIF9sYW5lMiA9IHBpY2tBcmJpdHJhcnlMYW5lKElucHV0Q29udGludW91c0xhbmVzICYgfndpcExhbmVzKTtcblxuICAgICAgICBpZiAoX2xhbmUyID09PSBOb0xhbmUpIHtcbiAgICAgICAgICAvLyBTaGlmdCB0byB0aGUgbmV4dCBwcmlvcml0eSBsZXZlbFxuICAgICAgICAgIHJldHVybiBmaW5kVXBkYXRlTGFuZShEZWZhdWx0TGFuZVByaW9yaXR5LCB3aXBMYW5lcyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gX2xhbmUyO1xuICAgICAgfVxuXG4gICAgY2FzZSBEZWZhdWx0TGFuZVByaW9yaXR5OlxuICAgICAge1xuICAgICAgICB2YXIgX2xhbmUzID0gcGlja0FyYml0cmFyeUxhbmUoRGVmYXVsdExhbmVzICYgfndpcExhbmVzKTtcblxuICAgICAgICBpZiAoX2xhbmUzID09PSBOb0xhbmUpIHtcbiAgICAgICAgICAvLyBJZiBhbGwgdGhlIGRlZmF1bHQgbGFuZXMgYXJlIGFscmVhZHkgYmVpbmcgd29ya2VkIG9uLCBsb29rIGZvciBhXG4gICAgICAgICAgLy8gbGFuZSBpbiB0aGUgdHJhbnNpdGlvbiByYW5nZS5cbiAgICAgICAgICBfbGFuZTMgPSBwaWNrQXJiaXRyYXJ5TGFuZShUcmFuc2l0aW9uTGFuZXMgJiB+d2lwTGFuZXMpO1xuXG4gICAgICAgICAgaWYgKF9sYW5lMyA9PT0gTm9MYW5lKSB7XG4gICAgICAgICAgICAvLyBBbGwgdGhlIHRyYW5zaXRpb24gbGFuZXMgYXJlIHRha2VuLCB0b28uIFRoaXMgc2hvdWxkIGJlIHZlcnlcbiAgICAgICAgICAgIC8vIHJhcmUsIGJ1dCBhcyBhIGxhc3QgcmVzb3J0LCBwaWNrIGEgZGVmYXVsdCBsYW5lLiBUaGlzIHdpbGwgaGF2ZVxuICAgICAgICAgICAgLy8gdGhlIGVmZmVjdCBvZiBpbnRlcnJ1cHRpbmcgdGhlIGN1cnJlbnQgd29yay1pbi1wcm9ncmVzcyByZW5kZXIuXG4gICAgICAgICAgICBfbGFuZTMgPSBwaWNrQXJiaXRyYXJ5TGFuZShEZWZhdWx0TGFuZXMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBfbGFuZTM7XG4gICAgICB9XG5cbiAgICBjYXNlIFRyYW5zaXRpb25Qcmlvcml0eTogLy8gU2hvdWxkIGJlIGhhbmRsZWQgYnkgZmluZFRyYW5zaXRpb25MYW5lIGluc3RlYWRcblxuICAgIGNhc2UgUmV0cnlMYW5lUHJpb3JpdHk6XG4gICAgICAvLyBTaG91bGQgYmUgaGFuZGxlZCBieSBmaW5kUmV0cnlMYW5lIGluc3RlYWRcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBJZGxlTGFuZVByaW9yaXR5OlxuICAgICAgdmFyIGxhbmUgPSBwaWNrQXJiaXRyYXJ5TGFuZShJZGxlTGFuZXMgJiB+d2lwTGFuZXMpO1xuXG4gICAgICBpZiAobGFuZSA9PT0gTm9MYW5lKSB7XG4gICAgICAgIGxhbmUgPSBwaWNrQXJiaXRyYXJ5TGFuZShJZGxlTGFuZXMpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbGFuZTtcbiAgfVxuXG4gIHtcbiAgICB7XG4gICAgICB0aHJvdyBFcnJvciggXCJJbnZhbGlkIHVwZGF0ZSBwcmlvcml0eTogXCIgKyBsYW5lUHJpb3JpdHkgKyBcIi4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC5cIiApO1xuICAgIH1cbiAgfVxufSAvLyBUbyBlbnN1cmUgY29uc2lzdGVuY3kgYWNyb3NzIG11bHRpcGxlIHVwZGF0ZXMgaW4gdGhlIHNhbWUgZXZlbnQsIHRoaXMgc2hvdWxkXG4vLyBiZSBwdXJlIGZ1bmN0aW9uLCBzbyB0aGF0IGl0IGFsd2F5cyByZXR1cm5zIHRoZSBzYW1lIGxhbmUgZm9yIGdpdmVuIGlucHV0cy5cblxuZnVuY3Rpb24gZmluZFRyYW5zaXRpb25MYW5lKHdpcExhbmVzLCBwZW5kaW5nTGFuZXMpIHtcbiAgLy8gRmlyc3QgbG9vayBmb3IgbGFuZXMgdGhhdCBhcmUgY29tcGxldGVseSB1bmNsYWltZWQsIGkuZS4gaGF2ZSBub1xuICAvLyBwZW5kaW5nIHdvcmsuXG4gIHZhciBsYW5lID0gcGlja0FyYml0cmFyeUxhbmUoVHJhbnNpdGlvbkxhbmVzICYgfnBlbmRpbmdMYW5lcyk7XG5cbiAgaWYgKGxhbmUgPT09IE5vTGFuZSkge1xuICAgIC8vIElmIGFsbCBsYW5lcyBoYXZlIHBlbmRpbmcgd29yaywgbG9vayBmb3IgYSBsYW5lIHRoYXQgaXNuJ3QgY3VycmVudGx5XG4gICAgLy8gYmVpbmcgd29ya2VkIG9uLlxuICAgIGxhbmUgPSBwaWNrQXJiaXRyYXJ5TGFuZShUcmFuc2l0aW9uTGFuZXMgJiB+d2lwTGFuZXMpO1xuXG4gICAgaWYgKGxhbmUgPT09IE5vTGFuZSkge1xuICAgICAgLy8gSWYgZXZlcnl0aGluZyBpcyBiZWluZyB3b3JrZWQgb24sIHBpY2sgYW55IGxhbmUuIFRoaXMgaGFzIHRoZVxuICAgICAgLy8gZWZmZWN0IG9mIGludGVycnVwdGluZyB0aGUgY3VycmVudCB3b3JrLWluLXByb2dyZXNzLlxuICAgICAgbGFuZSA9IHBpY2tBcmJpdHJhcnlMYW5lKFRyYW5zaXRpb25MYW5lcyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGxhbmU7XG59IC8vIFRvIGVuc3VyZSBjb25zaXN0ZW5jeSBhY3Jvc3MgbXVsdGlwbGUgdXBkYXRlcyBpbiB0aGUgc2FtZSBldmVudCwgdGhpcyBzaG91bGRcbi8vIGJlIHB1cmUgZnVuY3Rpb24sIHNvIHRoYXQgaXQgYWx3YXlzIHJldHVybnMgdGhlIHNhbWUgbGFuZSBmb3IgZ2l2ZW4gaW5wdXRzLlxuXG5mdW5jdGlvbiBmaW5kUmV0cnlMYW5lKHdpcExhbmVzKSB7XG4gIC8vIFRoaXMgaXMgYSBmb3JrIG9mIGBmaW5kVXBkYXRlTGFuZWAgZGVzaWduZWQgc3BlY2lmaWNhbGx5IGZvciBTdXNwZW5zZVxuICAvLyBcInJldHJpZXNcIiDigJQgYSBzcGVjaWFsIHVwZGF0ZSB0aGF0IGF0dGVtcHRzIHRvIGZsaXAgYSBTdXNwZW5zZSBib3VuZGFyeVxuICAvLyBmcm9tIGl0cyBwbGFjZWhvbGRlciBzdGF0ZSB0byBpdHMgcHJpbWFyeS9yZXNvbHZlZCBzdGF0ZS5cbiAgdmFyIGxhbmUgPSBwaWNrQXJiaXRyYXJ5TGFuZShSZXRyeUxhbmVzICYgfndpcExhbmVzKTtcblxuICBpZiAobGFuZSA9PT0gTm9MYW5lKSB7XG4gICAgbGFuZSA9IHBpY2tBcmJpdHJhcnlMYW5lKFJldHJ5TGFuZXMpO1xuICB9XG5cbiAgcmV0dXJuIGxhbmU7XG59XG5cbmZ1bmN0aW9uIGdldEhpZ2hlc3RQcmlvcml0eUxhbmUobGFuZXMpIHtcbiAgcmV0dXJuIGxhbmVzICYgLWxhbmVzO1xufVxuXG5mdW5jdGlvbiBnZXRMb3dlc3RQcmlvcml0eUxhbmUobGFuZXMpIHtcbiAgLy8gVGhpcyBmaW5kcyB0aGUgbW9zdCBzaWduaWZpY2FudCBub24temVybyBiaXQuXG4gIHZhciBpbmRleCA9IDMxIC0gY2x6MzIobGFuZXMpO1xuICByZXR1cm4gaW5kZXggPCAwID8gTm9MYW5lcyA6IDEgPDwgaW5kZXg7XG59XG5cbmZ1bmN0aW9uIGdldEVxdWFsT3JIaWdoZXJQcmlvcml0eUxhbmVzKGxhbmVzKSB7XG4gIHJldHVybiAoZ2V0TG93ZXN0UHJpb3JpdHlMYW5lKGxhbmVzKSA8PCAxKSAtIDE7XG59XG5cbmZ1bmN0aW9uIHBpY2tBcmJpdHJhcnlMYW5lKGxhbmVzKSB7XG4gIC8vIFRoaXMgd3JhcHBlciBmdW5jdGlvbiBnZXRzIGlubGluZWQuIE9ubHkgZXhpc3RzIHNvIHRvIGNvbW11bmljYXRlIHRoYXQgaXRcbiAgLy8gZG9lc24ndCBtYXR0ZXIgd2hpY2ggYml0IGlzIHNlbGVjdGVkOyB5b3UgY2FuIHBpY2sgYW55IGJpdCB3aXRob3V0XG4gIC8vIGFmZmVjdGluZyB0aGUgYWxnb3JpdGhtcyB3aGVyZSBpdHMgdXNlZC4gSGVyZSBJJ20gdXNpbmdcbiAgLy8gZ2V0SGlnaGVzdFByaW9yaXR5TGFuZSBiZWNhdXNlIGl0IHJlcXVpcmVzIHRoZSBmZXdlc3Qgb3BlcmF0aW9ucy5cbiAgcmV0dXJuIGdldEhpZ2hlc3RQcmlvcml0eUxhbmUobGFuZXMpO1xufVxuXG5mdW5jdGlvbiBwaWNrQXJiaXRyYXJ5TGFuZUluZGV4KGxhbmVzKSB7XG4gIHJldHVybiAzMSAtIGNsejMyKGxhbmVzKTtcbn1cblxuZnVuY3Rpb24gbGFuZVRvSW5kZXgobGFuZSkge1xuICByZXR1cm4gcGlja0FyYml0cmFyeUxhbmVJbmRleChsYW5lKTtcbn1cblxuZnVuY3Rpb24gaW5jbHVkZXNTb21lTGFuZShhLCBiKSB7XG4gIHJldHVybiAoYSAmIGIpICE9PSBOb0xhbmVzO1xufVxuZnVuY3Rpb24gaXNTdWJzZXRPZkxhbmVzKHNldCwgc3Vic2V0KSB7XG4gIHJldHVybiAoc2V0ICYgc3Vic2V0KSA9PT0gc3Vic2V0O1xufVxuZnVuY3Rpb24gbWVyZ2VMYW5lcyhhLCBiKSB7XG4gIHJldHVybiBhIHwgYjtcbn1cbmZ1bmN0aW9uIHJlbW92ZUxhbmVzKHNldCwgc3Vic2V0KSB7XG4gIHJldHVybiBzZXQgJiB+c3Vic2V0O1xufSAvLyBTZWVtcyByZWR1bmRhbnQsIGJ1dCBpdCBjaGFuZ2VzIHRoZSB0eXBlIGZyb20gYSBzaW5nbGUgbGFuZSAodXNlZCBmb3Jcbi8vIHVwZGF0ZXMpIHRvIGEgZ3JvdXAgb2YgbGFuZXMgKHVzZWQgZm9yIGZsdXNoaW5nIHdvcmspLlxuXG5mdW5jdGlvbiBsYW5lVG9MYW5lcyhsYW5lKSB7XG4gIHJldHVybiBsYW5lO1xufVxuZnVuY3Rpb24gaGlnaGVyUHJpb3JpdHlMYW5lKGEsIGIpIHtcbiAgLy8gVGhpcyB3b3JrcyBiZWNhdXNlIHRoZSBiaXQgcmFuZ2VzIGRlY3JlYXNlIGluIHByaW9yaXR5IGFzIHlvdSBnbyBsZWZ0LlxuICByZXR1cm4gYSAhPT0gTm9MYW5lICYmIGEgPCBiID8gYSA6IGI7XG59XG5mdW5jdGlvbiBjcmVhdGVMYW5lTWFwKGluaXRpYWwpIHtcbiAgLy8gSW50ZW50aW9uYWxseSBwdXNoaW5nIG9uZSBieSBvbmUuXG4gIC8vIGh0dHBzOi8vdjguZGV2L2Jsb2cvZWxlbWVudHMta2luZHMjYXZvaWQtY3JlYXRpbmctaG9sZXNcbiAgdmFyIGxhbmVNYXAgPSBbXTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IFRvdGFsTGFuZXM7IGkrKykge1xuICAgIGxhbmVNYXAucHVzaChpbml0aWFsKTtcbiAgfVxuXG4gIHJldHVybiBsYW5lTWFwO1xufVxuZnVuY3Rpb24gbWFya1Jvb3RVcGRhdGVkKHJvb3QsIHVwZGF0ZUxhbmUsIGV2ZW50VGltZSkge1xuICByb290LnBlbmRpbmdMYW5lcyB8PSB1cGRhdGVMYW5lOyAvLyBUT0RPOiBUaGVvcmV0aWNhbGx5LCBhbnkgdXBkYXRlIHRvIGFueSBsYW5lIGNhbiB1bmJsb2NrIGFueSBvdGhlciBsYW5lLiBCdXRcbiAgLy8gaXQncyBub3QgcHJhY3RpY2FsIHRvIHRyeSBldmVyeSBzaW5nbGUgcG9zc2libGUgY29tYmluYXRpb24uIFdlIG5lZWQgYVxuICAvLyBoZXVyaXN0aWMgdG8gZGVjaWRlIHdoaWNoIGxhbmVzIHRvIGF0dGVtcHQgdG8gcmVuZGVyLCBhbmQgaW4gd2hpY2ggYmF0Y2hlcy5cbiAgLy8gRm9yIG5vdywgd2UgdXNlIHRoZSBzYW1lIGhldXJpc3RpYyBhcyBpbiB0aGUgb2xkIEV4cGlyYXRpb25UaW1lcyBtb2RlbDpcbiAgLy8gcmV0cnkgYW55IGxhbmUgYXQgZXF1YWwgb3IgbG93ZXIgcHJpb3JpdHksIGJ1dCBkb24ndCB0cnkgdXBkYXRlcyBhdCBoaWdoZXJcbiAgLy8gcHJpb3JpdHkgd2l0aG91dCBhbHNvIGluY2x1ZGluZyB0aGUgbG93ZXIgcHJpb3JpdHkgdXBkYXRlcy4gVGhpcyB3b3JrcyB3ZWxsXG4gIC8vIHdoZW4gY29uc2lkZXJpbmcgdXBkYXRlcyBhY3Jvc3MgZGlmZmVyZW50IHByaW9yaXR5IGxldmVscywgYnV0IGlzbid0XG4gIC8vIHN1ZmZpY2llbnQgZm9yIHVwZGF0ZXMgd2l0aGluIHRoZSBzYW1lIHByaW9yaXR5LCBzaW5jZSB3ZSB3YW50IHRvIHRyZWF0XG4gIC8vIHRob3NlIHVwZGF0ZXMgYXMgcGFyYWxsZWwuXG4gIC8vIFVuc3VzcGVuZCBhbnkgdXBkYXRlIGF0IGVxdWFsIG9yIGxvd2VyIHByaW9yaXR5LlxuXG4gIHZhciBoaWdoZXJQcmlvcml0eUxhbmVzID0gdXBkYXRlTGFuZSAtIDE7IC8vIFR1cm5zIDBiMTAwMCBpbnRvIDBiMDExMVxuXG4gIHJvb3Quc3VzcGVuZGVkTGFuZXMgJj0gaGlnaGVyUHJpb3JpdHlMYW5lcztcbiAgcm9vdC5waW5nZWRMYW5lcyAmPSBoaWdoZXJQcmlvcml0eUxhbmVzO1xuICB2YXIgZXZlbnRUaW1lcyA9IHJvb3QuZXZlbnRUaW1lcztcbiAgdmFyIGluZGV4ID0gbGFuZVRvSW5kZXgodXBkYXRlTGFuZSk7IC8vIFdlIGNhbiBhbHdheXMgb3ZlcndyaXRlIGFuIGV4aXN0aW5nIHRpbWVzdGFtcCBiZWNhdXNlIHdlIHByZWZlciB0aGUgbW9zdFxuICAvLyByZWNlbnQgZXZlbnQsIGFuZCB3ZSBhc3N1bWUgdGltZSBpcyBtb25vdG9uaWNhbGx5IGluY3JlYXNpbmcuXG5cbiAgZXZlbnRUaW1lc1tpbmRleF0gPSBldmVudFRpbWU7XG59XG5mdW5jdGlvbiBtYXJrUm9vdFN1c3BlbmRlZChyb290LCBzdXNwZW5kZWRMYW5lcykge1xuICByb290LnN1c3BlbmRlZExhbmVzIHw9IHN1c3BlbmRlZExhbmVzO1xuICByb290LnBpbmdlZExhbmVzICY9IH5zdXNwZW5kZWRMYW5lczsgLy8gVGhlIHN1c3BlbmRlZCBsYW5lcyBhcmUgbm8gbG9uZ2VyIENQVS1ib3VuZC4gQ2xlYXIgdGhlaXIgZXhwaXJhdGlvbiB0aW1lcy5cblxuICB2YXIgZXhwaXJhdGlvblRpbWVzID0gcm9vdC5leHBpcmF0aW9uVGltZXM7XG4gIHZhciBsYW5lcyA9IHN1c3BlbmRlZExhbmVzO1xuXG4gIHdoaWxlIChsYW5lcyA+IDApIHtcbiAgICB2YXIgaW5kZXggPSBwaWNrQXJiaXRyYXJ5TGFuZUluZGV4KGxhbmVzKTtcbiAgICB2YXIgbGFuZSA9IDEgPDwgaW5kZXg7XG4gICAgZXhwaXJhdGlvblRpbWVzW2luZGV4XSA9IE5vVGltZXN0YW1wO1xuICAgIGxhbmVzICY9IH5sYW5lO1xuICB9XG59XG5mdW5jdGlvbiBtYXJrUm9vdFBpbmdlZChyb290LCBwaW5nZWRMYW5lcywgZXZlbnRUaW1lKSB7XG4gIHJvb3QucGluZ2VkTGFuZXMgfD0gcm9vdC5zdXNwZW5kZWRMYW5lcyAmIHBpbmdlZExhbmVzO1xufVxuZnVuY3Rpb24gbWFya0Rpc2NyZXRlVXBkYXRlc0V4cGlyZWQocm9vdCkge1xuICByb290LmV4cGlyZWRMYW5lcyB8PSBJbnB1dERpc2NyZXRlTGFuZXMgJiByb290LnBlbmRpbmdMYW5lcztcbn1cbmZ1bmN0aW9uIGhhc0Rpc2NyZXRlTGFuZXMobGFuZXMpIHtcbiAgcmV0dXJuIChsYW5lcyAmIElucHV0RGlzY3JldGVMYW5lcykgIT09IE5vTGFuZXM7XG59XG5mdW5jdGlvbiBtYXJrUm9vdE11dGFibGVSZWFkKHJvb3QsIHVwZGF0ZUxhbmUpIHtcbiAgcm9vdC5tdXRhYmxlUmVhZExhbmVzIHw9IHVwZGF0ZUxhbmUgJiByb290LnBlbmRpbmdMYW5lcztcbn1cbmZ1bmN0aW9uIG1hcmtSb290RmluaXNoZWQocm9vdCwgcmVtYWluaW5nTGFuZXMpIHtcbiAgdmFyIG5vTG9uZ2VyUGVuZGluZ0xhbmVzID0gcm9vdC5wZW5kaW5nTGFuZXMgJiB+cmVtYWluaW5nTGFuZXM7XG4gIHJvb3QucGVuZGluZ0xhbmVzID0gcmVtYWluaW5nTGFuZXM7IC8vIExldCdzIHRyeSBldmVyeXRoaW5nIGFnYWluXG5cbiAgcm9vdC5zdXNwZW5kZWRMYW5lcyA9IDA7XG4gIHJvb3QucGluZ2VkTGFuZXMgPSAwO1xuICByb290LmV4cGlyZWRMYW5lcyAmPSByZW1haW5pbmdMYW5lcztcbiAgcm9vdC5tdXRhYmxlUmVhZExhbmVzICY9IHJlbWFpbmluZ0xhbmVzO1xuICByb290LmVudGFuZ2xlZExhbmVzICY9IHJlbWFpbmluZ0xhbmVzO1xuICB2YXIgZW50YW5nbGVtZW50cyA9IHJvb3QuZW50YW5nbGVtZW50cztcbiAgdmFyIGV2ZW50VGltZXMgPSByb290LmV2ZW50VGltZXM7XG4gIHZhciBleHBpcmF0aW9uVGltZXMgPSByb290LmV4cGlyYXRpb25UaW1lczsgLy8gQ2xlYXIgdGhlIGxhbmVzIHRoYXQgbm8gbG9uZ2VyIGhhdmUgcGVuZGluZyB3b3JrXG5cbiAgdmFyIGxhbmVzID0gbm9Mb25nZXJQZW5kaW5nTGFuZXM7XG5cbiAgd2hpbGUgKGxhbmVzID4gMCkge1xuICAgIHZhciBpbmRleCA9IHBpY2tBcmJpdHJhcnlMYW5lSW5kZXgobGFuZXMpO1xuICAgIHZhciBsYW5lID0gMSA8PCBpbmRleDtcbiAgICBlbnRhbmdsZW1lbnRzW2luZGV4XSA9IE5vTGFuZXM7XG4gICAgZXZlbnRUaW1lc1tpbmRleF0gPSBOb1RpbWVzdGFtcDtcbiAgICBleHBpcmF0aW9uVGltZXNbaW5kZXhdID0gTm9UaW1lc3RhbXA7XG4gICAgbGFuZXMgJj0gfmxhbmU7XG4gIH1cbn1cbmZ1bmN0aW9uIG1hcmtSb290RW50YW5nbGVkKHJvb3QsIGVudGFuZ2xlZExhbmVzKSB7XG4gIHJvb3QuZW50YW5nbGVkTGFuZXMgfD0gZW50YW5nbGVkTGFuZXM7XG4gIHZhciBlbnRhbmdsZW1lbnRzID0gcm9vdC5lbnRhbmdsZW1lbnRzO1xuICB2YXIgbGFuZXMgPSBlbnRhbmdsZWRMYW5lcztcblxuICB3aGlsZSAobGFuZXMgPiAwKSB7XG4gICAgdmFyIGluZGV4ID0gcGlja0FyYml0cmFyeUxhbmVJbmRleChsYW5lcyk7XG4gICAgdmFyIGxhbmUgPSAxIDw8IGluZGV4O1xuICAgIGVudGFuZ2xlbWVudHNbaW5kZXhdIHw9IGVudGFuZ2xlZExhbmVzO1xuICAgIGxhbmVzICY9IH5sYW5lO1xuICB9XG59XG52YXIgY2x6MzIgPSBNYXRoLmNsejMyID8gTWF0aC5jbHozMiA6IGNsejMyRmFsbGJhY2s7IC8vIENvdW50IGxlYWRpbmcgemVyb3MuIE9ubHkgdXNlZCBvbiBsYW5lcywgc28gYXNzdW1lIGlucHV0IGlzIGFuIGludGVnZXIuXG4vLyBCYXNlZCBvbjpcbi8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL01hdGgvY2x6MzJcblxudmFyIGxvZyA9IE1hdGgubG9nO1xudmFyIExOMiA9IE1hdGguTE4yO1xuXG5mdW5jdGlvbiBjbHozMkZhbGxiYWNrKGxhbmVzKSB7XG4gIGlmIChsYW5lcyA9PT0gMCkge1xuICAgIHJldHVybiAzMjtcbiAgfVxuXG4gIHJldHVybiAzMSAtIChsb2cobGFuZXMpIC8gTE4yIHwgMCkgfCAwO1xufVxuXG4vLyBJbnRlbnRpb25hbGx5IG5vdCBuYW1lZCBpbXBvcnRzIGJlY2F1c2UgUm9sbHVwIHdvdWxkIHVzZSBkeW5hbWljIGRpc3BhdGNoIGZvclxudmFyIFVzZXJCbG9ja2luZ1ByaW9yaXR5JDEgPSBTY2hlZHVsZXIudW5zdGFibGVfVXNlckJsb2NraW5nUHJpb3JpdHksXG4gICAgcnVuV2l0aFByaW9yaXR5ID0gU2NoZWR1bGVyLnVuc3RhYmxlX3J1bldpdGhQcmlvcml0eTsgLy8gVE9ETzogY2FuIHdlIHN0b3AgZXhwb3J0aW5nIHRoZXNlP1xuXG52YXIgX2VuYWJsZWQgPSB0cnVlOyAvLyBUaGlzIGlzIGV4cG9ydGVkIGluIEZCIGJ1aWxkcyBmb3IgdXNlIGJ5IGxlZ2FjeSBGQiBsYXllciBpbmZyYS5cbi8vIFdlJ2QgbGlrZSB0byByZW1vdmUgdGhpcyBidXQgaXQncyBub3QgY2xlYXIgaWYgdGhpcyBpcyBzYWZlLlxuXG5mdW5jdGlvbiBzZXRFbmFibGVkKGVuYWJsZWQpIHtcbiAgX2VuYWJsZWQgPSAhIWVuYWJsZWQ7XG59XG5mdW5jdGlvbiBpc0VuYWJsZWQoKSB7XG4gIHJldHVybiBfZW5hYmxlZDtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUV2ZW50TGlzdGVuZXJXcmFwcGVyV2l0aFByaW9yaXR5KHRhcmdldENvbnRhaW5lciwgZG9tRXZlbnROYW1lLCBldmVudFN5c3RlbUZsYWdzKSB7XG4gIHZhciBldmVudFByaW9yaXR5ID0gZ2V0RXZlbnRQcmlvcml0eUZvclBsdWdpblN5c3RlbShkb21FdmVudE5hbWUpO1xuICB2YXIgbGlzdGVuZXJXcmFwcGVyO1xuXG4gIHN3aXRjaCAoZXZlbnRQcmlvcml0eSkge1xuICAgIGNhc2UgRGlzY3JldGVFdmVudDpcbiAgICAgIGxpc3RlbmVyV3JhcHBlciA9IGRpc3BhdGNoRGlzY3JldGVFdmVudDtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBVc2VyQmxvY2tpbmdFdmVudDpcbiAgICAgIGxpc3RlbmVyV3JhcHBlciA9IGRpc3BhdGNoVXNlckJsb2NraW5nVXBkYXRlO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIENvbnRpbnVvdXNFdmVudDpcbiAgICBkZWZhdWx0OlxuICAgICAgbGlzdGVuZXJXcmFwcGVyID0gZGlzcGF0Y2hFdmVudDtcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgcmV0dXJuIGxpc3RlbmVyV3JhcHBlci5iaW5kKG51bGwsIGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgdGFyZ2V0Q29udGFpbmVyKTtcbn1cblxuZnVuY3Rpb24gZGlzcGF0Y2hEaXNjcmV0ZUV2ZW50KGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgY29udGFpbmVyLCBuYXRpdmVFdmVudCkge1xuICB7XG4gICAgZmx1c2hEaXNjcmV0ZVVwZGF0ZXNJZk5lZWRlZChuYXRpdmVFdmVudC50aW1lU3RhbXApO1xuICB9XG5cbiAgZGlzY3JldGVVcGRhdGVzKGRpc3BhdGNoRXZlbnQsIGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgY29udGFpbmVyLCBuYXRpdmVFdmVudCk7XG59XG5cbmZ1bmN0aW9uIGRpc3BhdGNoVXNlckJsb2NraW5nVXBkYXRlKGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgY29udGFpbmVyLCBuYXRpdmVFdmVudCkge1xuICB7XG4gICAgcnVuV2l0aFByaW9yaXR5KFVzZXJCbG9ja2luZ1ByaW9yaXR5JDEsIGRpc3BhdGNoRXZlbnQuYmluZChudWxsLCBkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIGNvbnRhaW5lciwgbmF0aXZlRXZlbnQpKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBkaXNwYXRjaEV2ZW50KGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgdGFyZ2V0Q29udGFpbmVyLCBuYXRpdmVFdmVudCkge1xuICBpZiAoIV9lbmFibGVkKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdmFyIGFsbG93UmVwbGF5ID0gdHJ1ZTtcblxuICB7XG4gICAgLy8gVE9ETzogcmVwbGF5aW5nIGNhcHR1cmUgcGhhc2UgZXZlbnRzIGlzIGN1cnJlbnRseSBicm9rZW5cbiAgICAvLyBiZWNhdXNlIHdlIHVzZWQgdG8gZG8gaXQgZHVyaW5nIHRvcC1sZXZlbCBuYXRpdmUgYnViYmxlIGhhbmRsZXJzXG4gICAgLy8gYnV0IG5vdyB3ZSB1c2UgZGlmZmVyZW50IGJ1YmJsZSBhbmQgY2FwdHVyZSBoYW5kbGVycy5cbiAgICAvLyBJbiBlYWdlciBtb2RlLCB3ZSBhdHRhY2ggY2FwdHVyZSBsaXN0ZW5lcnMgZWFybHksIHNvIHdlIG5lZWRcbiAgICAvLyB0byBmaWx0ZXIgdGhlbSBvdXQgdW50aWwgd2UgZml4IHRoZSBsb2dpYyB0byBoYW5kbGUgdGhlbSBjb3JyZWN0bHkuXG4gICAgLy8gVGhpcyBjb3VsZCd2ZSBiZWVuIG91dHNpZGUgdGhlIGZsYWcgYnV0IEkgcHV0IGl0IGluc2lkZSB0byByZWR1Y2Ugcmlzay5cbiAgICBhbGxvd1JlcGxheSA9IChldmVudFN5c3RlbUZsYWdzICYgSVNfQ0FQVFVSRV9QSEFTRSkgPT09IDA7XG4gIH1cblxuICBpZiAoYWxsb3dSZXBsYXkgJiYgaGFzUXVldWVkRGlzY3JldGVFdmVudHMoKSAmJiBpc1JlcGxheWFibGVEaXNjcmV0ZUV2ZW50KGRvbUV2ZW50TmFtZSkpIHtcbiAgICAvLyBJZiB3ZSBhbHJlYWR5IGhhdmUgYSBxdWV1ZSBvZiBkaXNjcmV0ZSBldmVudHMsIGFuZCB0aGlzIGlzIGFub3RoZXIgZGlzY3JldGVcbiAgICAvLyBldmVudCwgdGhlbiB3ZSBjYW4ndCBkaXNwYXRjaCBpdCByZWdhcmRsZXNzIG9mIGl0cyB0YXJnZXQsIHNpbmNlIHRoZXlcbiAgICAvLyBuZWVkIHRvIGRpc3BhdGNoIGluIG9yZGVyLlxuICAgIHF1ZXVlRGlzY3JldGVFdmVudChudWxsLCAvLyBGbGFncyB0aGF0IHdlJ3JlIG5vdCBhY3R1YWxseSBibG9ja2VkIG9uIGFueXRoaW5nIGFzIGZhciBhcyB3ZSBrbm93LlxuICAgIGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgdGFyZ2V0Q29udGFpbmVyLCBuYXRpdmVFdmVudCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdmFyIGJsb2NrZWRPbiA9IGF0dGVtcHRUb0Rpc3BhdGNoRXZlbnQoZG9tRXZlbnROYW1lLCBldmVudFN5c3RlbUZsYWdzLCB0YXJnZXRDb250YWluZXIsIG5hdGl2ZUV2ZW50KTtcblxuICBpZiAoYmxvY2tlZE9uID09PSBudWxsKSB7XG4gICAgLy8gV2Ugc3VjY2Vzc2Z1bGx5IGRpc3BhdGNoZWQgdGhpcyBldmVudC5cbiAgICBpZiAoYWxsb3dSZXBsYXkpIHtcbiAgICAgIGNsZWFySWZDb250aW51b3VzRXZlbnQoZG9tRXZlbnROYW1lLCBuYXRpdmVFdmVudCk7XG4gICAgfVxuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKGFsbG93UmVwbGF5KSB7XG4gICAgaWYgKGlzUmVwbGF5YWJsZURpc2NyZXRlRXZlbnQoZG9tRXZlbnROYW1lKSkge1xuICAgICAgLy8gVGhpcyB0aGlzIHRvIGJlIHJlcGxheWVkIGxhdGVyIG9uY2UgdGhlIHRhcmdldCBpcyBhdmFpbGFibGUuXG4gICAgICBxdWV1ZURpc2NyZXRlRXZlbnQoYmxvY2tlZE9uLCBkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIHRhcmdldENvbnRhaW5lciwgbmF0aXZlRXZlbnQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChxdWV1ZUlmQ29udGludW91c0V2ZW50KGJsb2NrZWRPbiwgZG9tRXZlbnROYW1lLCBldmVudFN5c3RlbUZsYWdzLCB0YXJnZXRDb250YWluZXIsIG5hdGl2ZUV2ZW50KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH0gLy8gV2UgbmVlZCB0byBjbGVhciBvbmx5IGlmIHdlIGRpZG4ndCBxdWV1ZSBiZWNhdXNlXG4gICAgLy8gcXVldWVpbmcgaXMgYWNjdW1tdWxhdGl2ZS5cblxuXG4gICAgY2xlYXJJZkNvbnRpbnVvdXNFdmVudChkb21FdmVudE5hbWUsIG5hdGl2ZUV2ZW50KTtcbiAgfSAvLyBUaGlzIGlzIG5vdCByZXBsYXlhYmxlIHNvIHdlJ2xsIGludm9rZSBpdCBidXQgd2l0aG91dCBhIHRhcmdldCxcbiAgLy8gaW4gY2FzZSB0aGUgZXZlbnQgc3lzdGVtIG5lZWRzIHRvIHRyYWNlIGl0LlxuXG5cbiAgZGlzcGF0Y2hFdmVudEZvclBsdWdpbkV2ZW50U3lzdGVtKGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgbmF0aXZlRXZlbnQsIG51bGwsIHRhcmdldENvbnRhaW5lcik7XG59IC8vIEF0dGVtcHQgZGlzcGF0Y2hpbmcgYW4gZXZlbnQuIFJldHVybnMgYSBTdXNwZW5zZUluc3RhbmNlIG9yIENvbnRhaW5lciBpZiBpdCdzIGJsb2NrZWQuXG5cbmZ1bmN0aW9uIGF0dGVtcHRUb0Rpc3BhdGNoRXZlbnQoZG9tRXZlbnROYW1lLCBldmVudFN5c3RlbUZsYWdzLCB0YXJnZXRDb250YWluZXIsIG5hdGl2ZUV2ZW50KSB7XG4gIC8vIFRPRE86IFdhcm4gaWYgX2VuYWJsZWQgaXMgZmFsc2UuXG4gIHZhciBuYXRpdmVFdmVudFRhcmdldCA9IGdldEV2ZW50VGFyZ2V0KG5hdGl2ZUV2ZW50KTtcbiAgdmFyIHRhcmdldEluc3QgPSBnZXRDbG9zZXN0SW5zdGFuY2VGcm9tTm9kZShuYXRpdmVFdmVudFRhcmdldCk7XG5cbiAgaWYgKHRhcmdldEluc3QgIT09IG51bGwpIHtcbiAgICB2YXIgbmVhcmVzdE1vdW50ZWQgPSBnZXROZWFyZXN0TW91bnRlZEZpYmVyKHRhcmdldEluc3QpO1xuXG4gICAgaWYgKG5lYXJlc3RNb3VudGVkID09PSBudWxsKSB7XG4gICAgICAvLyBUaGlzIHRyZWUgaGFzIGJlZW4gdW5tb3VudGVkIGFscmVhZHkuIERpc3BhdGNoIHdpdGhvdXQgYSB0YXJnZXQuXG4gICAgICB0YXJnZXRJbnN0ID0gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIHRhZyA9IG5lYXJlc3RNb3VudGVkLnRhZztcblxuICAgICAgaWYgKHRhZyA9PT0gU3VzcGVuc2VDb21wb25lbnQpIHtcbiAgICAgICAgdmFyIGluc3RhbmNlID0gZ2V0U3VzcGVuc2VJbnN0YW5jZUZyb21GaWJlcihuZWFyZXN0TW91bnRlZCk7XG5cbiAgICAgICAgaWYgKGluc3RhbmNlICE9PSBudWxsKSB7XG4gICAgICAgICAgLy8gUXVldWUgdGhlIGV2ZW50IHRvIGJlIHJlcGxheWVkIGxhdGVyLiBBYm9ydCBkaXNwYXRjaGluZyBzaW5jZSB3ZVxuICAgICAgICAgIC8vIGRvbid0IHdhbnQgdGhpcyBldmVudCBkaXNwYXRjaGVkIHR3aWNlIHRocm91Z2ggdGhlIGV2ZW50IHN5c3RlbS5cbiAgICAgICAgICAvLyBUT0RPOiBJZiB0aGlzIGlzIHRoZSBmaXJzdCBkaXNjcmV0ZSBldmVudCBpbiB0aGUgcXVldWUuIFNjaGVkdWxlIGFuIGluY3JlYXNlZFxuICAgICAgICAgIC8vIHByaW9yaXR5IGZvciB0aGlzIGJvdW5kYXJ5LlxuICAgICAgICAgIHJldHVybiBpbnN0YW5jZTtcbiAgICAgICAgfSAvLyBUaGlzIHNob3VsZG4ndCBoYXBwZW4sIHNvbWV0aGluZyB3ZW50IHdyb25nIGJ1dCB0byBhdm9pZCBibG9ja2luZ1xuICAgICAgICAvLyB0aGUgd2hvbGUgc3lzdGVtLCBkaXNwYXRjaCB0aGUgZXZlbnQgd2l0aG91dCBhIHRhcmdldC5cbiAgICAgICAgLy8gVE9ETzogV2Fybi5cblxuXG4gICAgICAgIHRhcmdldEluc3QgPSBudWxsO1xuICAgICAgfSBlbHNlIGlmICh0YWcgPT09IEhvc3RSb290KSB7XG4gICAgICAgIHZhciByb290ID0gbmVhcmVzdE1vdW50ZWQuc3RhdGVOb2RlO1xuXG4gICAgICAgIGlmIChyb290Lmh5ZHJhdGUpIHtcbiAgICAgICAgICAvLyBJZiB0aGlzIGhhcHBlbnMgZHVyaW5nIGEgcmVwbGF5IHNvbWV0aGluZyB3ZW50IHdyb25nIGFuZCBpdCBtaWdodCBibG9ja1xuICAgICAgICAgIC8vIHRoZSB3aG9sZSBzeXN0ZW0uXG4gICAgICAgICAgcmV0dXJuIGdldENvbnRhaW5lckZyb21GaWJlcihuZWFyZXN0TW91bnRlZCk7XG4gICAgICAgIH1cblxuICAgICAgICB0YXJnZXRJbnN0ID0gbnVsbDtcbiAgICAgIH0gZWxzZSBpZiAobmVhcmVzdE1vdW50ZWQgIT09IHRhcmdldEluc3QpIHtcbiAgICAgICAgLy8gSWYgd2UgZ2V0IGFuIGV2ZW50IChleDogaW1nIG9ubG9hZCkgYmVmb3JlIGNvbW1pdHRpbmcgdGhhdFxuICAgICAgICAvLyBjb21wb25lbnQncyBtb3VudCwgaWdub3JlIGl0IGZvciBub3cgKHRoYXQgaXMsIHRyZWF0IGl0IGFzIGlmIGl0IHdhcyBhblxuICAgICAgICAvLyBldmVudCBvbiBhIG5vbi1SZWFjdCB0cmVlKS4gV2UgbWlnaHQgYWxzbyBjb25zaWRlciBxdWV1ZWluZyBldmVudHMgYW5kXG4gICAgICAgIC8vIGRpc3BhdGNoaW5nIHRoZW0gYWZ0ZXIgdGhlIG1vdW50LlxuICAgICAgICB0YXJnZXRJbnN0ID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBkaXNwYXRjaEV2ZW50Rm9yUGx1Z2luRXZlbnRTeXN0ZW0oZG9tRXZlbnROYW1lLCBldmVudFN5c3RlbUZsYWdzLCBuYXRpdmVFdmVudCwgdGFyZ2V0SW5zdCwgdGFyZ2V0Q29udGFpbmVyKTsgLy8gV2UncmUgbm90IGJsb2NrZWQgb24gYW55dGhpbmcuXG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIGFkZEV2ZW50QnViYmxlTGlzdGVuZXIodGFyZ2V0LCBldmVudFR5cGUsIGxpc3RlbmVyKSB7XG4gIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgbGlzdGVuZXIsIGZhbHNlKTtcbiAgcmV0dXJuIGxpc3RlbmVyO1xufVxuZnVuY3Rpb24gYWRkRXZlbnRDYXB0dXJlTGlzdGVuZXIodGFyZ2V0LCBldmVudFR5cGUsIGxpc3RlbmVyKSB7XG4gIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgbGlzdGVuZXIsIHRydWUpO1xuICByZXR1cm4gbGlzdGVuZXI7XG59XG5mdW5jdGlvbiBhZGRFdmVudENhcHR1cmVMaXN0ZW5lcldpdGhQYXNzaXZlRmxhZyh0YXJnZXQsIGV2ZW50VHlwZSwgbGlzdGVuZXIsIHBhc3NpdmUpIHtcbiAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBsaXN0ZW5lciwge1xuICAgIGNhcHR1cmU6IHRydWUsXG4gICAgcGFzc2l2ZTogcGFzc2l2ZVxuICB9KTtcbiAgcmV0dXJuIGxpc3RlbmVyO1xufVxuZnVuY3Rpb24gYWRkRXZlbnRCdWJibGVMaXN0ZW5lcldpdGhQYXNzaXZlRmxhZyh0YXJnZXQsIGV2ZW50VHlwZSwgbGlzdGVuZXIsIHBhc3NpdmUpIHtcbiAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBsaXN0ZW5lciwge1xuICAgIHBhc3NpdmU6IHBhc3NpdmVcbiAgfSk7XG4gIHJldHVybiBsaXN0ZW5lcjtcbn1cblxuLyoqXG4gKiBUaGVzZSB2YXJpYWJsZXMgc3RvcmUgaW5mb3JtYXRpb24gYWJvdXQgdGV4dCBjb250ZW50IG9mIGEgdGFyZ2V0IG5vZGUsXG4gKiBhbGxvd2luZyBjb21wYXJpc29uIG9mIGNvbnRlbnQgYmVmb3JlIGFuZCBhZnRlciBhIGdpdmVuIGV2ZW50LlxuICpcbiAqIElkZW50aWZ5IHRoZSBub2RlIHdoZXJlIHNlbGVjdGlvbiBjdXJyZW50bHkgYmVnaW5zLCB0aGVuIG9ic2VydmVcbiAqIGJvdGggaXRzIHRleHQgY29udGVudCBhbmQgaXRzIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIERPTS4gU2luY2UgdGhlXG4gKiBicm93c2VyIG1heSBuYXRpdmVseSByZXBsYWNlIHRoZSB0YXJnZXQgbm9kZSBkdXJpbmcgY29tcG9zaXRpb24sIHdlIGNhblxuICogdXNlIGl0cyBwb3NpdGlvbiB0byBmaW5kIGl0cyByZXBsYWNlbWVudC5cbiAqXG4gKlxuICovXG52YXIgcm9vdCA9IG51bGw7XG52YXIgc3RhcnRUZXh0ID0gbnVsbDtcbnZhciBmYWxsYmFja1RleHQgPSBudWxsO1xuZnVuY3Rpb24gaW5pdGlhbGl6ZShuYXRpdmVFdmVudFRhcmdldCkge1xuICByb290ID0gbmF0aXZlRXZlbnRUYXJnZXQ7XG4gIHN0YXJ0VGV4dCA9IGdldFRleHQoKTtcbiAgcmV0dXJuIHRydWU7XG59XG5mdW5jdGlvbiByZXNldCgpIHtcbiAgcm9vdCA9IG51bGw7XG4gIHN0YXJ0VGV4dCA9IG51bGw7XG4gIGZhbGxiYWNrVGV4dCA9IG51bGw7XG59XG5mdW5jdGlvbiBnZXREYXRhKCkge1xuICBpZiAoZmFsbGJhY2tUZXh0KSB7XG4gICAgcmV0dXJuIGZhbGxiYWNrVGV4dDtcbiAgfVxuXG4gIHZhciBzdGFydDtcbiAgdmFyIHN0YXJ0VmFsdWUgPSBzdGFydFRleHQ7XG4gIHZhciBzdGFydExlbmd0aCA9IHN0YXJ0VmFsdWUubGVuZ3RoO1xuICB2YXIgZW5kO1xuICB2YXIgZW5kVmFsdWUgPSBnZXRUZXh0KCk7XG4gIHZhciBlbmRMZW5ndGggPSBlbmRWYWx1ZS5sZW5ndGg7XG5cbiAgZm9yIChzdGFydCA9IDA7IHN0YXJ0IDwgc3RhcnRMZW5ndGg7IHN0YXJ0KyspIHtcbiAgICBpZiAoc3RhcnRWYWx1ZVtzdGFydF0gIT09IGVuZFZhbHVlW3N0YXJ0XSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgdmFyIG1pbkVuZCA9IHN0YXJ0TGVuZ3RoIC0gc3RhcnQ7XG5cbiAgZm9yIChlbmQgPSAxOyBlbmQgPD0gbWluRW5kOyBlbmQrKykge1xuICAgIGlmIChzdGFydFZhbHVlW3N0YXJ0TGVuZ3RoIC0gZW5kXSAhPT0gZW5kVmFsdWVbZW5kTGVuZ3RoIC0gZW5kXSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgdmFyIHNsaWNlVGFpbCA9IGVuZCA+IDEgPyAxIC0gZW5kIDogdW5kZWZpbmVkO1xuICBmYWxsYmFja1RleHQgPSBlbmRWYWx1ZS5zbGljZShzdGFydCwgc2xpY2VUYWlsKTtcbiAgcmV0dXJuIGZhbGxiYWNrVGV4dDtcbn1cbmZ1bmN0aW9uIGdldFRleHQoKSB7XG4gIGlmICgndmFsdWUnIGluIHJvb3QpIHtcbiAgICByZXR1cm4gcm9vdC52YWx1ZTtcbiAgfVxuXG4gIHJldHVybiByb290LnRleHRDb250ZW50O1xufVxuXG4vKipcbiAqIGBjaGFyQ29kZWAgcmVwcmVzZW50cyB0aGUgYWN0dWFsIFwiY2hhcmFjdGVyIGNvZGVcIiBhbmQgaXMgc2FmZSB0byB1c2Ugd2l0aFxuICogYFN0cmluZy5mcm9tQ2hhckNvZGVgLiBBcyBzdWNoLCBvbmx5IGtleXMgdGhhdCBjb3JyZXNwb25kIHRvIHByaW50YWJsZVxuICogY2hhcmFjdGVycyBwcm9kdWNlIGEgdmFsaWQgYGNoYXJDb2RlYCwgdGhlIG9ubHkgZXhjZXB0aW9uIHRvIHRoaXMgaXMgRW50ZXIuXG4gKiBUaGUgVGFiLWtleSBpcyBjb25zaWRlcmVkIG5vbi1wcmludGFibGUgYW5kIGRvZXMgbm90IGhhdmUgYSBgY2hhckNvZGVgLFxuICogcHJlc3VtYWJseSBiZWNhdXNlIGl0IGRvZXMgbm90IHByb2R1Y2UgYSB0YWItY2hhcmFjdGVyIGluIGJyb3dzZXJzLlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSBuYXRpdmVFdmVudCBOYXRpdmUgYnJvd3NlciBldmVudC5cbiAqIEByZXR1cm4ge251bWJlcn0gTm9ybWFsaXplZCBgY2hhckNvZGVgIHByb3BlcnR5LlxuICovXG5mdW5jdGlvbiBnZXRFdmVudENoYXJDb2RlKG5hdGl2ZUV2ZW50KSB7XG4gIHZhciBjaGFyQ29kZTtcbiAgdmFyIGtleUNvZGUgPSBuYXRpdmVFdmVudC5rZXlDb2RlO1xuXG4gIGlmICgnY2hhckNvZGUnIGluIG5hdGl2ZUV2ZW50KSB7XG4gICAgY2hhckNvZGUgPSBuYXRpdmVFdmVudC5jaGFyQ29kZTsgLy8gRkYgZG9lcyBub3Qgc2V0IGBjaGFyQ29kZWAgZm9yIHRoZSBFbnRlci1rZXksIGNoZWNrIGFnYWluc3QgYGtleUNvZGVgLlxuXG4gICAgaWYgKGNoYXJDb2RlID09PSAwICYmIGtleUNvZGUgPT09IDEzKSB7XG4gICAgICBjaGFyQ29kZSA9IDEzO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBJRTggZG9lcyBub3QgaW1wbGVtZW50IGBjaGFyQ29kZWAsIGJ1dCBga2V5Q29kZWAgaGFzIHRoZSBjb3JyZWN0IHZhbHVlLlxuICAgIGNoYXJDb2RlID0ga2V5Q29kZTtcbiAgfSAvLyBJRSBhbmQgRWRnZSAob24gV2luZG93cykgYW5kIENocm9tZSAvIFNhZmFyaSAob24gV2luZG93cyBhbmQgTGludXgpXG4gIC8vIHJlcG9ydCBFbnRlciBhcyBjaGFyQ29kZSAxMCB3aGVuIGN0cmwgaXMgcHJlc3NlZC5cblxuXG4gIGlmIChjaGFyQ29kZSA9PT0gMTApIHtcbiAgICBjaGFyQ29kZSA9IDEzO1xuICB9IC8vIFNvbWUgbm9uLXByaW50YWJsZSBrZXlzIGFyZSByZXBvcnRlZCBpbiBgY2hhckNvZGVgL2BrZXlDb2RlYCwgZGlzY2FyZCB0aGVtLlxuICAvLyBNdXN0IG5vdCBkaXNjYXJkIHRoZSAobm9uLSlwcmludGFibGUgRW50ZXIta2V5LlxuXG5cbiAgaWYgKGNoYXJDb2RlID49IDMyIHx8IGNoYXJDb2RlID09PSAxMykge1xuICAgIHJldHVybiBjaGFyQ29kZTtcbiAgfVxuXG4gIHJldHVybiAwO1xufVxuXG5mdW5jdGlvbiBmdW5jdGlvblRoYXRSZXR1cm5zVHJ1ZSgpIHtcbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIGZ1bmN0aW9uVGhhdFJldHVybnNGYWxzZSgpIHtcbiAgcmV0dXJuIGZhbHNlO1xufSAvLyBUaGlzIGlzIGludGVudGlvbmFsbHkgYSBmYWN0b3J5IHNvIHRoYXQgd2UgaGF2ZSBkaWZmZXJlbnQgcmV0dXJuZWQgY29uc3RydWN0b3JzLlxuLy8gSWYgd2UgaGFkIGEgc2luZ2xlIGNvbnN0cnVjdG9yLCBpdCB3b3VsZCBiZSBtZWdhbW9ycGhpYyBhbmQgZW5naW5lcyB3b3VsZCBkZW9wdC5cblxuXG5mdW5jdGlvbiBjcmVhdGVTeW50aGV0aWNFdmVudChJbnRlcmZhY2UpIHtcbiAgLyoqXG4gICAqIFN5bnRoZXRpYyBldmVudHMgYXJlIGRpc3BhdGNoZWQgYnkgZXZlbnQgcGx1Z2lucywgdHlwaWNhbGx5IGluIHJlc3BvbnNlIHRvIGFcbiAgICogdG9wLWxldmVsIGV2ZW50IGRlbGVnYXRpb24gaGFuZGxlci5cbiAgICpcbiAgICogVGhlc2Ugc3lzdGVtcyBzaG91bGQgZ2VuZXJhbGx5IHVzZSBwb29saW5nIHRvIHJlZHVjZSB0aGUgZnJlcXVlbmN5IG9mIGdhcmJhZ2VcbiAgICogY29sbGVjdGlvbi4gVGhlIHN5c3RlbSBzaG91bGQgY2hlY2sgYGlzUGVyc2lzdGVudGAgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlXG4gICAqIGV2ZW50IHNob3VsZCBiZSByZWxlYXNlZCBpbnRvIHRoZSBwb29sIGFmdGVyIGJlaW5nIGRpc3BhdGNoZWQuIFVzZXJzIHRoYXRcbiAgICogbmVlZCBhIHBlcnNpc3RlZCBldmVudCBzaG91bGQgaW52b2tlIGBwZXJzaXN0YC5cbiAgICpcbiAgICogU3ludGhldGljIGV2ZW50cyAoYW5kIHN1YmNsYXNzZXMpIGltcGxlbWVudCB0aGUgRE9NIExldmVsIDMgRXZlbnRzIEFQSSBieVxuICAgKiBub3JtYWxpemluZyBicm93c2VyIHF1aXJrcy4gU3ViY2xhc3NlcyBkbyBub3QgbmVjZXNzYXJpbHkgaGF2ZSB0byBpbXBsZW1lbnQgYVxuICAgKiBET00gaW50ZXJmYWNlOyBjdXN0b20gYXBwbGljYXRpb24tc3BlY2lmaWMgZXZlbnRzIGNhbiBhbHNvIHN1YmNsYXNzIHRoaXMuXG4gICAqL1xuICBmdW5jdGlvbiBTeW50aGV0aWNCYXNlRXZlbnQocmVhY3ROYW1lLCByZWFjdEV2ZW50VHlwZSwgdGFyZ2V0SW5zdCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KSB7XG4gICAgdGhpcy5fcmVhY3ROYW1lID0gcmVhY3ROYW1lO1xuICAgIHRoaXMuX3RhcmdldEluc3QgPSB0YXJnZXRJbnN0O1xuICAgIHRoaXMudHlwZSA9IHJlYWN0RXZlbnRUeXBlO1xuICAgIHRoaXMubmF0aXZlRXZlbnQgPSBuYXRpdmVFdmVudDtcbiAgICB0aGlzLnRhcmdldCA9IG5hdGl2ZUV2ZW50VGFyZ2V0O1xuICAgIHRoaXMuY3VycmVudFRhcmdldCA9IG51bGw7XG5cbiAgICBmb3IgKHZhciBfcHJvcE5hbWUgaW4gSW50ZXJmYWNlKSB7XG4gICAgICBpZiAoIUludGVyZmFjZS5oYXNPd25Qcm9wZXJ0eShfcHJvcE5hbWUpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICB2YXIgbm9ybWFsaXplID0gSW50ZXJmYWNlW19wcm9wTmFtZV07XG5cbiAgICAgIGlmIChub3JtYWxpemUpIHtcbiAgICAgICAgdGhpc1tfcHJvcE5hbWVdID0gbm9ybWFsaXplKG5hdGl2ZUV2ZW50KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXNbX3Byb3BOYW1lXSA9IG5hdGl2ZUV2ZW50W19wcm9wTmFtZV07XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGRlZmF1bHRQcmV2ZW50ZWQgPSBuYXRpdmVFdmVudC5kZWZhdWx0UHJldmVudGVkICE9IG51bGwgPyBuYXRpdmVFdmVudC5kZWZhdWx0UHJldmVudGVkIDogbmF0aXZlRXZlbnQucmV0dXJuVmFsdWUgPT09IGZhbHNlO1xuXG4gICAgaWYgKGRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgIHRoaXMuaXNEZWZhdWx0UHJldmVudGVkID0gZnVuY3Rpb25UaGF0UmV0dXJuc1RydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaXNEZWZhdWx0UHJldmVudGVkID0gZnVuY3Rpb25UaGF0UmV0dXJuc0ZhbHNlO1xuICAgIH1cblxuICAgIHRoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQgPSBmdW5jdGlvblRoYXRSZXR1cm5zRmFsc2U7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBfYXNzaWduKFN5bnRoZXRpY0Jhc2VFdmVudC5wcm90b3R5cGUsIHtcbiAgICBwcmV2ZW50RGVmYXVsdDogZnVuY3Rpb24gKCkge1xuICAgICAgdGhpcy5kZWZhdWx0UHJldmVudGVkID0gdHJ1ZTtcbiAgICAgIHZhciBldmVudCA9IHRoaXMubmF0aXZlRXZlbnQ7XG5cbiAgICAgIGlmICghZXZlbnQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoZXZlbnQucHJldmVudERlZmF1bHQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsgLy8gJEZsb3dGaXhNZSAtIGZsb3cgaXMgbm90IGF3YXJlIG9mIGB1bmtub3duYCBpbiBJRVxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZXZlbnQucmV0dXJuVmFsdWUgIT09ICd1bmtub3duJykge1xuICAgICAgICBldmVudC5yZXR1cm5WYWx1ZSA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmlzRGVmYXVsdFByZXZlbnRlZCA9IGZ1bmN0aW9uVGhhdFJldHVybnNUcnVlO1xuICAgIH0sXG4gICAgc3RvcFByb3BhZ2F0aW9uOiBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgZXZlbnQgPSB0aGlzLm5hdGl2ZUV2ZW50O1xuXG4gICAgICBpZiAoIWV2ZW50KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGV2ZW50LnN0b3BQcm9wYWdhdGlvbikge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgLy8gJEZsb3dGaXhNZSAtIGZsb3cgaXMgbm90IGF3YXJlIG9mIGB1bmtub3duYCBpbiBJRVxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZXZlbnQuY2FuY2VsQnViYmxlICE9PSAndW5rbm93bicpIHtcbiAgICAgICAgLy8gVGhlIENoYW5nZUV2ZW50UGx1Z2luIHJlZ2lzdGVycyBhIFwicHJvcGVydHljaGFuZ2VcIiBldmVudCBmb3JcbiAgICAgICAgLy8gSUUuIFRoaXMgZXZlbnQgZG9lcyBub3Qgc3VwcG9ydCBidWJibGluZyBvciBjYW5jZWxsaW5nLCBhbmRcbiAgICAgICAgLy8gYW55IHJlZmVyZW5jZXMgdG8gY2FuY2VsQnViYmxlIHRocm93IFwiTWVtYmVyIG5vdCBmb3VuZFwiLiAgQVxuICAgICAgICAvLyB0eXBlb2YgY2hlY2sgb2YgXCJ1bmtub3duXCIgY2lyY3VtdmVudHMgdGhpcyBpc3N1ZSAoYW5kIGlzIGFsc29cbiAgICAgICAgLy8gSUUgc3BlY2lmaWMpLlxuICAgICAgICBldmVudC5jYW5jZWxCdWJibGUgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkID0gZnVuY3Rpb25UaGF0UmV0dXJuc1RydWU7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIFdlIHJlbGVhc2UgYWxsIGRpc3BhdGNoZWQgYFN5bnRoZXRpY0V2ZW50YHMgYWZ0ZXIgZWFjaCBldmVudCBsb29wLCBhZGRpbmdcbiAgICAgKiB0aGVtIGJhY2sgaW50byB0aGUgcG9vbC4gVGhpcyBhbGxvd3MgYSB3YXkgdG8gaG9sZCBvbnRvIGEgcmVmZXJlbmNlIHRoYXRcbiAgICAgKiB3b24ndCBiZSBhZGRlZCBiYWNrIGludG8gdGhlIHBvb2wuXG4gICAgICovXG4gICAgcGVyc2lzdDogZnVuY3Rpb24gKCkgey8vIE1vZGVybiBldmVudCBzeXN0ZW0gZG9lc24ndCB1c2UgcG9vbGluZy5cbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIHRoaXMgZXZlbnQgc2hvdWxkIGJlIHJlbGVhc2VkIGJhY2sgaW50byB0aGUgcG9vbC5cbiAgICAgKlxuICAgICAqIEByZXR1cm4ge2Jvb2xlYW59IFRydWUgaWYgdGhpcyBzaG91bGQgbm90IGJlIHJlbGVhc2VkLCBmYWxzZSBvdGhlcndpc2UuXG4gICAgICovXG4gICAgaXNQZXJzaXN0ZW50OiBmdW5jdGlvblRoYXRSZXR1cm5zVHJ1ZVxuICB9KTtcblxuICByZXR1cm4gU3ludGhldGljQmFzZUV2ZW50O1xufVxuLyoqXG4gKiBAaW50ZXJmYWNlIEV2ZW50XG4gKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUV2ZW50cy9cbiAqL1xuXG5cbnZhciBFdmVudEludGVyZmFjZSA9IHtcbiAgZXZlbnRQaGFzZTogMCxcbiAgYnViYmxlczogMCxcbiAgY2FuY2VsYWJsZTogMCxcbiAgdGltZVN0YW1wOiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICByZXR1cm4gZXZlbnQudGltZVN0YW1wIHx8IERhdGUubm93KCk7XG4gIH0sXG4gIGRlZmF1bHRQcmV2ZW50ZWQ6IDAsXG4gIGlzVHJ1c3RlZDogMFxufTtcbnZhciBTeW50aGV0aWNFdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KEV2ZW50SW50ZXJmYWNlKTtcblxudmFyIFVJRXZlbnRJbnRlcmZhY2UgPSBfYXNzaWduKHt9LCBFdmVudEludGVyZmFjZSwge1xuICB2aWV3OiAwLFxuICBkZXRhaWw6IDBcbn0pO1xuXG52YXIgU3ludGhldGljVUlFdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KFVJRXZlbnRJbnRlcmZhY2UpO1xudmFyIGxhc3RNb3ZlbWVudFg7XG52YXIgbGFzdE1vdmVtZW50WTtcbnZhciBsYXN0TW91c2VFdmVudDtcblxuZnVuY3Rpb24gdXBkYXRlTW91c2VNb3ZlbWVudFBvbHlmaWxsU3RhdGUoZXZlbnQpIHtcbiAgaWYgKGV2ZW50ICE9PSBsYXN0TW91c2VFdmVudCkge1xuICAgIGlmIChsYXN0TW91c2VFdmVudCAmJiBldmVudC50eXBlID09PSAnbW91c2Vtb3ZlJykge1xuICAgICAgbGFzdE1vdmVtZW50WCA9IGV2ZW50LnNjcmVlblggLSBsYXN0TW91c2VFdmVudC5zY3JlZW5YO1xuICAgICAgbGFzdE1vdmVtZW50WSA9IGV2ZW50LnNjcmVlblkgLSBsYXN0TW91c2VFdmVudC5zY3JlZW5ZO1xuICAgIH0gZWxzZSB7XG4gICAgICBsYXN0TW92ZW1lbnRYID0gMDtcbiAgICAgIGxhc3RNb3ZlbWVudFkgPSAwO1xuICAgIH1cblxuICAgIGxhc3RNb3VzZUV2ZW50ID0gZXZlbnQ7XG4gIH1cbn1cbi8qKlxuICogQGludGVyZmFjZSBNb3VzZUV2ZW50XG4gKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUV2ZW50cy9cbiAqL1xuXG5cbnZhciBNb3VzZUV2ZW50SW50ZXJmYWNlID0gX2Fzc2lnbih7fSwgVUlFdmVudEludGVyZmFjZSwge1xuICBzY3JlZW5YOiAwLFxuICBzY3JlZW5ZOiAwLFxuICBjbGllbnRYOiAwLFxuICBjbGllbnRZOiAwLFxuICBwYWdlWDogMCxcbiAgcGFnZVk6IDAsXG4gIGN0cmxLZXk6IDAsXG4gIHNoaWZ0S2V5OiAwLFxuICBhbHRLZXk6IDAsXG4gIG1ldGFLZXk6IDAsXG4gIGdldE1vZGlmaWVyU3RhdGU6IGdldEV2ZW50TW9kaWZpZXJTdGF0ZSxcbiAgYnV0dG9uOiAwLFxuICBidXR0b25zOiAwLFxuICByZWxhdGVkVGFyZ2V0OiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICBpZiAoZXZlbnQucmVsYXRlZFRhcmdldCA9PT0gdW5kZWZpbmVkKSByZXR1cm4gZXZlbnQuZnJvbUVsZW1lbnQgPT09IGV2ZW50LnNyY0VsZW1lbnQgPyBldmVudC50b0VsZW1lbnQgOiBldmVudC5mcm9tRWxlbWVudDtcbiAgICByZXR1cm4gZXZlbnQucmVsYXRlZFRhcmdldDtcbiAgfSxcbiAgbW92ZW1lbnRYOiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICBpZiAoJ21vdmVtZW50WCcgaW4gZXZlbnQpIHtcbiAgICAgIHJldHVybiBldmVudC5tb3ZlbWVudFg7XG4gICAgfVxuXG4gICAgdXBkYXRlTW91c2VNb3ZlbWVudFBvbHlmaWxsU3RhdGUoZXZlbnQpO1xuICAgIHJldHVybiBsYXN0TW92ZW1lbnRYO1xuICB9LFxuICBtb3ZlbWVudFk6IGZ1bmN0aW9uIChldmVudCkge1xuICAgIGlmICgnbW92ZW1lbnRZJyBpbiBldmVudCkge1xuICAgICAgcmV0dXJuIGV2ZW50Lm1vdmVtZW50WTtcbiAgICB9IC8vIERvbid0IG5lZWQgdG8gY2FsbCB1cGRhdGVNb3VzZU1vdmVtZW50UG9seWZpbGxTdGF0ZSgpIGhlcmVcbiAgICAvLyBiZWNhdXNlIGl0J3MgZ3VhcmFudGVlZCB0byBoYXZlIGFscmVhZHkgcnVuIHdoZW4gbW92ZW1lbnRYXG4gICAgLy8gd2FzIGNvcGllZC5cblxuXG4gICAgcmV0dXJuIGxhc3RNb3ZlbWVudFk7XG4gIH1cbn0pO1xuXG52YXIgU3ludGhldGljTW91c2VFdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KE1vdXNlRXZlbnRJbnRlcmZhY2UpO1xuLyoqXG4gKiBAaW50ZXJmYWNlIERyYWdFdmVudFxuICogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi9ET00tTGV2ZWwtMy1FdmVudHMvXG4gKi9cblxudmFyIERyYWdFdmVudEludGVyZmFjZSA9IF9hc3NpZ24oe30sIE1vdXNlRXZlbnRJbnRlcmZhY2UsIHtcbiAgZGF0YVRyYW5zZmVyOiAwXG59KTtcblxudmFyIFN5bnRoZXRpY0RyYWdFdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KERyYWdFdmVudEludGVyZmFjZSk7XG4vKipcbiAqIEBpbnRlcmZhY2UgRm9jdXNFdmVudFxuICogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi9ET00tTGV2ZWwtMy1FdmVudHMvXG4gKi9cblxudmFyIEZvY3VzRXZlbnRJbnRlcmZhY2UgPSBfYXNzaWduKHt9LCBVSUV2ZW50SW50ZXJmYWNlLCB7XG4gIHJlbGF0ZWRUYXJnZXQ6IDBcbn0pO1xuXG52YXIgU3ludGhldGljRm9jdXNFdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KEZvY3VzRXZlbnRJbnRlcmZhY2UpO1xuLyoqXG4gKiBAaW50ZXJmYWNlIEV2ZW50XG4gKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtYW5pbWF0aW9ucy8jQW5pbWF0aW9uRXZlbnQtaW50ZXJmYWNlXG4gKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9BbmltYXRpb25FdmVudFxuICovXG5cbnZhciBBbmltYXRpb25FdmVudEludGVyZmFjZSA9IF9hc3NpZ24oe30sIEV2ZW50SW50ZXJmYWNlLCB7XG4gIGFuaW1hdGlvbk5hbWU6IDAsXG4gIGVsYXBzZWRUaW1lOiAwLFxuICBwc2V1ZG9FbGVtZW50OiAwXG59KTtcblxudmFyIFN5bnRoZXRpY0FuaW1hdGlvbkV2ZW50ID0gY3JlYXRlU3ludGhldGljRXZlbnQoQW5pbWF0aW9uRXZlbnRJbnRlcmZhY2UpO1xuLyoqXG4gKiBAaW50ZXJmYWNlIEV2ZW50XG4gKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL2NsaXBib2FyZC1hcGlzL1xuICovXG5cbnZhciBDbGlwYm9hcmRFdmVudEludGVyZmFjZSA9IF9hc3NpZ24oe30sIEV2ZW50SW50ZXJmYWNlLCB7XG4gIGNsaXBib2FyZERhdGE6IGZ1bmN0aW9uIChldmVudCkge1xuICAgIHJldHVybiAnY2xpcGJvYXJkRGF0YScgaW4gZXZlbnQgPyBldmVudC5jbGlwYm9hcmREYXRhIDogd2luZG93LmNsaXBib2FyZERhdGE7XG4gIH1cbn0pO1xuXG52YXIgU3ludGhldGljQ2xpcGJvYXJkRXZlbnQgPSBjcmVhdGVTeW50aGV0aWNFdmVudChDbGlwYm9hcmRFdmVudEludGVyZmFjZSk7XG4vKipcbiAqIEBpbnRlcmZhY2UgRXZlbnRcbiAqIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvRE9NLUxldmVsLTMtRXZlbnRzLyNldmVudHMtY29tcG9zaXRpb25ldmVudHNcbiAqL1xuXG52YXIgQ29tcG9zaXRpb25FdmVudEludGVyZmFjZSA9IF9hc3NpZ24oe30sIEV2ZW50SW50ZXJmYWNlLCB7XG4gIGRhdGE6IDBcbn0pO1xuXG52YXIgU3ludGhldGljQ29tcG9zaXRpb25FdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KENvbXBvc2l0aW9uRXZlbnRJbnRlcmZhY2UpO1xuLyoqXG4gKiBAaW50ZXJmYWNlIEV2ZW50XG4gKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMTMvV0QtRE9NLUxldmVsLTMtRXZlbnRzLTIwMTMxMTA1XG4gKiAgICAgIC8jZXZlbnRzLWlucHV0ZXZlbnRzXG4gKi9cbi8vIEhhcHBlbnMgdG8gc2hhcmUgdGhlIHNhbWUgbGlzdCBmb3Igbm93LlxuXG52YXIgU3ludGhldGljSW5wdXRFdmVudCA9IFN5bnRoZXRpY0NvbXBvc2l0aW9uRXZlbnQ7XG4vKipcbiAqIE5vcm1hbGl6YXRpb24gb2YgZGVwcmVjYXRlZCBIVE1MNSBga2V5YCB2YWx1ZXNcbiAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0tleWJvYXJkRXZlbnQjS2V5X25hbWVzXG4gKi9cblxudmFyIG5vcm1hbGl6ZUtleSA9IHtcbiAgRXNjOiAnRXNjYXBlJyxcbiAgU3BhY2ViYXI6ICcgJyxcbiAgTGVmdDogJ0Fycm93TGVmdCcsXG4gIFVwOiAnQXJyb3dVcCcsXG4gIFJpZ2h0OiAnQXJyb3dSaWdodCcsXG4gIERvd246ICdBcnJvd0Rvd24nLFxuICBEZWw6ICdEZWxldGUnLFxuICBXaW46ICdPUycsXG4gIE1lbnU6ICdDb250ZXh0TWVudScsXG4gIEFwcHM6ICdDb250ZXh0TWVudScsXG4gIFNjcm9sbDogJ1Njcm9sbExvY2snLFxuICBNb3pQcmludGFibGVLZXk6ICdVbmlkZW50aWZpZWQnXG59O1xuLyoqXG4gKiBUcmFuc2xhdGlvbiBmcm9tIGxlZ2FjeSBga2V5Q29kZWAgdG8gSFRNTDUgYGtleWBcbiAqIE9ubHkgc3BlY2lhbCBrZXlzIHN1cHBvcnRlZCwgYWxsIG90aGVycyBkZXBlbmQgb24ga2V5Ym9hcmQgbGF5b3V0IG9yIGJyb3dzZXJcbiAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0tleWJvYXJkRXZlbnQjS2V5X25hbWVzXG4gKi9cblxudmFyIHRyYW5zbGF0ZVRvS2V5ID0ge1xuICAnOCc6ICdCYWNrc3BhY2UnLFxuICAnOSc6ICdUYWInLFxuICAnMTInOiAnQ2xlYXInLFxuICAnMTMnOiAnRW50ZXInLFxuICAnMTYnOiAnU2hpZnQnLFxuICAnMTcnOiAnQ29udHJvbCcsXG4gICcxOCc6ICdBbHQnLFxuICAnMTknOiAnUGF1c2UnLFxuICAnMjAnOiAnQ2Fwc0xvY2snLFxuICAnMjcnOiAnRXNjYXBlJyxcbiAgJzMyJzogJyAnLFxuICAnMzMnOiAnUGFnZVVwJyxcbiAgJzM0JzogJ1BhZ2VEb3duJyxcbiAgJzM1JzogJ0VuZCcsXG4gICczNic6ICdIb21lJyxcbiAgJzM3JzogJ0Fycm93TGVmdCcsXG4gICczOCc6ICdBcnJvd1VwJyxcbiAgJzM5JzogJ0Fycm93UmlnaHQnLFxuICAnNDAnOiAnQXJyb3dEb3duJyxcbiAgJzQ1JzogJ0luc2VydCcsXG4gICc0Nic6ICdEZWxldGUnLFxuICAnMTEyJzogJ0YxJyxcbiAgJzExMyc6ICdGMicsXG4gICcxMTQnOiAnRjMnLFxuICAnMTE1JzogJ0Y0JyxcbiAgJzExNic6ICdGNScsXG4gICcxMTcnOiAnRjYnLFxuICAnMTE4JzogJ0Y3JyxcbiAgJzExOSc6ICdGOCcsXG4gICcxMjAnOiAnRjknLFxuICAnMTIxJzogJ0YxMCcsXG4gICcxMjInOiAnRjExJyxcbiAgJzEyMyc6ICdGMTInLFxuICAnMTQ0JzogJ051bUxvY2snLFxuICAnMTQ1JzogJ1Njcm9sbExvY2snLFxuICAnMjI0JzogJ01ldGEnXG59O1xuLyoqXG4gKiBAcGFyYW0ge29iamVjdH0gbmF0aXZlRXZlbnQgTmF0aXZlIGJyb3dzZXIgZXZlbnQuXG4gKiBAcmV0dXJuIHtzdHJpbmd9IE5vcm1hbGl6ZWQgYGtleWAgcHJvcGVydHkuXG4gKi9cblxuZnVuY3Rpb24gZ2V0RXZlbnRLZXkobmF0aXZlRXZlbnQpIHtcbiAgaWYgKG5hdGl2ZUV2ZW50LmtleSkge1xuICAgIC8vIE5vcm1hbGl6ZSBpbmNvbnNpc3RlbnQgdmFsdWVzIHJlcG9ydGVkIGJ5IGJyb3dzZXJzIGR1ZSB0b1xuICAgIC8vIGltcGxlbWVudGF0aW9ucyBvZiBhIHdvcmtpbmcgZHJhZnQgc3BlY2lmaWNhdGlvbi5cbiAgICAvLyBGaXJlRm94IGltcGxlbWVudHMgYGtleWAgYnV0IHJldHVybnMgYE1velByaW50YWJsZUtleWAgZm9yIGFsbFxuICAgIC8vIHByaW50YWJsZSBjaGFyYWN0ZXJzIChub3JtYWxpemVkIHRvIGBVbmlkZW50aWZpZWRgKSwgaWdub3JlIGl0LlxuICAgIHZhciBrZXkgPSBub3JtYWxpemVLZXlbbmF0aXZlRXZlbnQua2V5XSB8fCBuYXRpdmVFdmVudC5rZXk7XG5cbiAgICBpZiAoa2V5ICE9PSAnVW5pZGVudGlmaWVkJykge1xuICAgICAgcmV0dXJuIGtleTtcbiAgICB9XG4gIH0gLy8gQnJvd3NlciBkb2VzIG5vdCBpbXBsZW1lbnQgYGtleWAsIHBvbHlmaWxsIGFzIG11Y2ggb2YgaXQgYXMgd2UgY2FuLlxuXG5cbiAgaWYgKG5hdGl2ZUV2ZW50LnR5cGUgPT09ICdrZXlwcmVzcycpIHtcbiAgICB2YXIgY2hhckNvZGUgPSBnZXRFdmVudENoYXJDb2RlKG5hdGl2ZUV2ZW50KTsgLy8gVGhlIGVudGVyLWtleSBpcyB0ZWNobmljYWxseSBib3RoIHByaW50YWJsZSBhbmQgbm9uLXByaW50YWJsZSBhbmQgY2FuXG4gICAgLy8gdGh1cyBiZSBjYXB0dXJlZCBieSBga2V5cHJlc3NgLCBubyBvdGhlciBub24tcHJpbnRhYmxlIGtleSBzaG91bGQuXG5cbiAgICByZXR1cm4gY2hhckNvZGUgPT09IDEzID8gJ0VudGVyJyA6IFN0cmluZy5mcm9tQ2hhckNvZGUoY2hhckNvZGUpO1xuICB9XG5cbiAgaWYgKG5hdGl2ZUV2ZW50LnR5cGUgPT09ICdrZXlkb3duJyB8fCBuYXRpdmVFdmVudC50eXBlID09PSAna2V5dXAnKSB7XG4gICAgLy8gV2hpbGUgdXNlciBrZXlib2FyZCBsYXlvdXQgZGV0ZXJtaW5lcyB0aGUgYWN0dWFsIG1lYW5pbmcgb2YgZWFjaFxuICAgIC8vIGBrZXlDb2RlYCB2YWx1ZSwgYWxtb3N0IGFsbCBmdW5jdGlvbiBrZXlzIGhhdmUgYSB1bml2ZXJzYWwgdmFsdWUuXG4gICAgcmV0dXJuIHRyYW5zbGF0ZVRvS2V5W25hdGl2ZUV2ZW50LmtleUNvZGVdIHx8ICdVbmlkZW50aWZpZWQnO1xuICB9XG5cbiAgcmV0dXJuICcnO1xufVxuLyoqXG4gKiBUcmFuc2xhdGlvbiBmcm9tIG1vZGlmaWVyIGtleSB0byB0aGUgYXNzb2NpYXRlZCBwcm9wZXJ0eSBpbiB0aGUgZXZlbnQuXG4gKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUV2ZW50cy8ja2V5cy1Nb2RpZmllcnNcbiAqL1xuXG5cbnZhciBtb2RpZmllcktleVRvUHJvcCA9IHtcbiAgQWx0OiAnYWx0S2V5JyxcbiAgQ29udHJvbDogJ2N0cmxLZXknLFxuICBNZXRhOiAnbWV0YUtleScsXG4gIFNoaWZ0OiAnc2hpZnRLZXknXG59OyAvLyBPbGRlciBicm93c2VycyAoU2FmYXJpIDw9IDEwLCBpT1MgU2FmYXJpIDw9IDEwLjIpIGRvIG5vdCBzdXBwb3J0XG4vLyBnZXRNb2RpZmllclN0YXRlLiBJZiBnZXRNb2RpZmllclN0YXRlIGlzIG5vdCBzdXBwb3J0ZWQsIHdlIG1hcCBpdCB0byBhIHNldCBvZlxuLy8gbW9kaWZpZXIga2V5cyBleHBvc2VkIGJ5IHRoZSBldmVudC4gSW4gdGhpcyBjYXNlLCBMb2NrLWtleXMgYXJlIG5vdCBzdXBwb3J0ZWQuXG5cbmZ1bmN0aW9uIG1vZGlmaWVyU3RhdGVHZXR0ZXIoa2V5QXJnKSB7XG4gIHZhciBzeW50aGV0aWNFdmVudCA9IHRoaXM7XG4gIHZhciBuYXRpdmVFdmVudCA9IHN5bnRoZXRpY0V2ZW50Lm5hdGl2ZUV2ZW50O1xuXG4gIGlmIChuYXRpdmVFdmVudC5nZXRNb2RpZmllclN0YXRlKSB7XG4gICAgcmV0dXJuIG5hdGl2ZUV2ZW50LmdldE1vZGlmaWVyU3RhdGUoa2V5QXJnKTtcbiAgfVxuXG4gIHZhciBrZXlQcm9wID0gbW9kaWZpZXJLZXlUb1Byb3Bba2V5QXJnXTtcbiAgcmV0dXJuIGtleVByb3AgPyAhIW5hdGl2ZUV2ZW50W2tleVByb3BdIDogZmFsc2U7XG59XG5cbmZ1bmN0aW9uIGdldEV2ZW50TW9kaWZpZXJTdGF0ZShuYXRpdmVFdmVudCkge1xuICByZXR1cm4gbW9kaWZpZXJTdGF0ZUdldHRlcjtcbn1cbi8qKlxuICogQGludGVyZmFjZSBLZXlib2FyZEV2ZW50XG4gKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUV2ZW50cy9cbiAqL1xuXG5cbnZhciBLZXlib2FyZEV2ZW50SW50ZXJmYWNlID0gX2Fzc2lnbih7fSwgVUlFdmVudEludGVyZmFjZSwge1xuICBrZXk6IGdldEV2ZW50S2V5LFxuICBjb2RlOiAwLFxuICBsb2NhdGlvbjogMCxcbiAgY3RybEtleTogMCxcbiAgc2hpZnRLZXk6IDAsXG4gIGFsdEtleTogMCxcbiAgbWV0YUtleTogMCxcbiAgcmVwZWF0OiAwLFxuICBsb2NhbGU6IDAsXG4gIGdldE1vZGlmaWVyU3RhdGU6IGdldEV2ZW50TW9kaWZpZXJTdGF0ZSxcbiAgLy8gTGVnYWN5IEludGVyZmFjZVxuICBjaGFyQ29kZTogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgLy8gYGNoYXJDb2RlYCBpcyB0aGUgcmVzdWx0IG9mIGEgS2V5UHJlc3MgZXZlbnQgYW5kIHJlcHJlc2VudHMgdGhlIHZhbHVlIG9mXG4gICAgLy8gdGhlIGFjdHVhbCBwcmludGFibGUgY2hhcmFjdGVyLlxuICAgIC8vIEtleVByZXNzIGlzIGRlcHJlY2F0ZWQsIGJ1dCBpdHMgcmVwbGFjZW1lbnQgaXMgbm90IHlldCBmaW5hbCBhbmQgbm90XG4gICAgLy8gaW1wbGVtZW50ZWQgaW4gYW55IG1ham9yIGJyb3dzZXIuIE9ubHkgS2V5UHJlc3MgaGFzIGNoYXJDb2RlLlxuICAgIGlmIChldmVudC50eXBlID09PSAna2V5cHJlc3MnKSB7XG4gICAgICByZXR1cm4gZ2V0RXZlbnRDaGFyQ29kZShldmVudCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIDA7XG4gIH0sXG4gIGtleUNvZGU6IGZ1bmN0aW9uIChldmVudCkge1xuICAgIC8vIGBrZXlDb2RlYCBpcyB0aGUgcmVzdWx0IG9mIGEgS2V5RG93bi9VcCBldmVudCBhbmQgcmVwcmVzZW50cyB0aGUgdmFsdWUgb2ZcbiAgICAvLyBwaHlzaWNhbCBrZXlib2FyZCBrZXkuXG4gICAgLy8gVGhlIGFjdHVhbCBtZWFuaW5nIG9mIHRoZSB2YWx1ZSBkZXBlbmRzIG9uIHRoZSB1c2Vycycga2V5Ym9hcmQgbGF5b3V0XG4gICAgLy8gd2hpY2ggY2Fubm90IGJlIGRldGVjdGVkLiBBc3N1bWluZyB0aGF0IGl0IGlzIGEgVVMga2V5Ym9hcmQgbGF5b3V0XG4gICAgLy8gcHJvdmlkZXMgYSBzdXJwcmlzaW5nbHkgYWNjdXJhdGUgbWFwcGluZyBmb3IgVVMgYW5kIEV1cm9wZWFuIHVzZXJzLlxuICAgIC8vIER1ZSB0byB0aGlzLCBpdCBpcyBsZWZ0IHRvIHRoZSB1c2VyIHRvIGltcGxlbWVudCBhdCB0aGlzIHRpbWUuXG4gICAgaWYgKGV2ZW50LnR5cGUgPT09ICdrZXlkb3duJyB8fCBldmVudC50eXBlID09PSAna2V5dXAnKSB7XG4gICAgICByZXR1cm4gZXZlbnQua2V5Q29kZTtcbiAgICB9XG5cbiAgICByZXR1cm4gMDtcbiAgfSxcbiAgd2hpY2g6IGZ1bmN0aW9uIChldmVudCkge1xuICAgIC8vIGB3aGljaGAgaXMgYW4gYWxpYXMgZm9yIGVpdGhlciBga2V5Q29kZWAgb3IgYGNoYXJDb2RlYCBkZXBlbmRpbmcgb24gdGhlXG4gICAgLy8gdHlwZSBvZiB0aGUgZXZlbnQuXG4gICAgaWYgKGV2ZW50LnR5cGUgPT09ICdrZXlwcmVzcycpIHtcbiAgICAgIHJldHVybiBnZXRFdmVudENoYXJDb2RlKGV2ZW50KTtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ2tleWRvd24nIHx8IGV2ZW50LnR5cGUgPT09ICdrZXl1cCcpIHtcbiAgICAgIHJldHVybiBldmVudC5rZXlDb2RlO1xuICAgIH1cblxuICAgIHJldHVybiAwO1xuICB9XG59KTtcblxudmFyIFN5bnRoZXRpY0tleWJvYXJkRXZlbnQgPSBjcmVhdGVTeW50aGV0aWNFdmVudChLZXlib2FyZEV2ZW50SW50ZXJmYWNlKTtcbi8qKlxuICogQGludGVyZmFjZSBQb2ludGVyRXZlbnRcbiAqIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvcG9pbnRlcmV2ZW50cy9cbiAqL1xuXG52YXIgUG9pbnRlckV2ZW50SW50ZXJmYWNlID0gX2Fzc2lnbih7fSwgTW91c2VFdmVudEludGVyZmFjZSwge1xuICBwb2ludGVySWQ6IDAsXG4gIHdpZHRoOiAwLFxuICBoZWlnaHQ6IDAsXG4gIHByZXNzdXJlOiAwLFxuICB0YW5nZW50aWFsUHJlc3N1cmU6IDAsXG4gIHRpbHRYOiAwLFxuICB0aWx0WTogMCxcbiAgdHdpc3Q6IDAsXG4gIHBvaW50ZXJUeXBlOiAwLFxuICBpc1ByaW1hcnk6IDBcbn0pO1xuXG52YXIgU3ludGhldGljUG9pbnRlckV2ZW50ID0gY3JlYXRlU3ludGhldGljRXZlbnQoUG9pbnRlckV2ZW50SW50ZXJmYWNlKTtcbi8qKlxuICogQGludGVyZmFjZSBUb3VjaEV2ZW50XG4gKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL3RvdWNoLWV2ZW50cy9cbiAqL1xuXG52YXIgVG91Y2hFdmVudEludGVyZmFjZSA9IF9hc3NpZ24oe30sIFVJRXZlbnRJbnRlcmZhY2UsIHtcbiAgdG91Y2hlczogMCxcbiAgdGFyZ2V0VG91Y2hlczogMCxcbiAgY2hhbmdlZFRvdWNoZXM6IDAsXG4gIGFsdEtleTogMCxcbiAgbWV0YUtleTogMCxcbiAgY3RybEtleTogMCxcbiAgc2hpZnRLZXk6IDAsXG4gIGdldE1vZGlmaWVyU3RhdGU6IGdldEV2ZW50TW9kaWZpZXJTdGF0ZVxufSk7XG5cbnZhciBTeW50aGV0aWNUb3VjaEV2ZW50ID0gY3JlYXRlU3ludGhldGljRXZlbnQoVG91Y2hFdmVudEludGVyZmFjZSk7XG4vKipcbiAqIEBpbnRlcmZhY2UgRXZlbnRcbiAqIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwOS9XRC1jc3MzLXRyYW5zaXRpb25zLTIwMDkwMzIwLyN0cmFuc2l0aW9uLWV2ZW50cy1cbiAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1RyYW5zaXRpb25FdmVudFxuICovXG5cbnZhciBUcmFuc2l0aW9uRXZlbnRJbnRlcmZhY2UgPSBfYXNzaWduKHt9LCBFdmVudEludGVyZmFjZSwge1xuICBwcm9wZXJ0eU5hbWU6IDAsXG4gIGVsYXBzZWRUaW1lOiAwLFxuICBwc2V1ZG9FbGVtZW50OiAwXG59KTtcblxudmFyIFN5bnRoZXRpY1RyYW5zaXRpb25FdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KFRyYW5zaXRpb25FdmVudEludGVyZmFjZSk7XG4vKipcbiAqIEBpbnRlcmZhY2UgV2hlZWxFdmVudFxuICogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi9ET00tTGV2ZWwtMy1FdmVudHMvXG4gKi9cblxudmFyIFdoZWVsRXZlbnRJbnRlcmZhY2UgPSBfYXNzaWduKHt9LCBNb3VzZUV2ZW50SW50ZXJmYWNlLCB7XG4gIGRlbHRhWDogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgcmV0dXJuICdkZWx0YVgnIGluIGV2ZW50ID8gZXZlbnQuZGVsdGFYIDogLy8gRmFsbGJhY2sgdG8gYHdoZWVsRGVsdGFYYCBmb3IgV2Via2l0IGFuZCBub3JtYWxpemUgKHJpZ2h0IGlzIHBvc2l0aXZlKS5cbiAgICAnd2hlZWxEZWx0YVgnIGluIGV2ZW50ID8gLWV2ZW50LndoZWVsRGVsdGFYIDogMDtcbiAgfSxcbiAgZGVsdGFZOiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICByZXR1cm4gJ2RlbHRhWScgaW4gZXZlbnQgPyBldmVudC5kZWx0YVkgOiAvLyBGYWxsYmFjayB0byBgd2hlZWxEZWx0YVlgIGZvciBXZWJraXQgYW5kIG5vcm1hbGl6ZSAoZG93biBpcyBwb3NpdGl2ZSkuXG4gICAgJ3doZWVsRGVsdGFZJyBpbiBldmVudCA/IC1ldmVudC53aGVlbERlbHRhWSA6IC8vIEZhbGxiYWNrIHRvIGB3aGVlbERlbHRhYCBmb3IgSUU8OSBhbmQgbm9ybWFsaXplIChkb3duIGlzIHBvc2l0aXZlKS5cbiAgICAnd2hlZWxEZWx0YScgaW4gZXZlbnQgPyAtZXZlbnQud2hlZWxEZWx0YSA6IDA7XG4gIH0sXG4gIGRlbHRhWjogMCxcbiAgLy8gQnJvd3NlcnMgd2l0aG91dCBcImRlbHRhTW9kZVwiIGlzIHJlcG9ydGluZyBpbiByYXcgd2hlZWwgZGVsdGEgd2hlcmUgb25lXG4gIC8vIG5vdGNoIG9uIHRoZSBzY3JvbGwgaXMgYWx3YXlzICsvLSAxMjAsIHJvdWdobHkgZXF1aXZhbGVudCB0byBwaXhlbHMuXG4gIC8vIEEgZ29vZCBhcHByb3hpbWF0aW9uIG9mIERPTV9ERUxUQV9MSU5FICgxKSBpcyA1JSBvZiB2aWV3cG9ydCBzaXplIG9yXG4gIC8vIH40MCBwaXhlbHMsIGZvciBET01fREVMVEFfU0NSRUVOICgyKSBpdCBpcyA4Ny41JSBvZiB2aWV3cG9ydCBzaXplLlxuICBkZWx0YU1vZGU6IDBcbn0pO1xuXG52YXIgU3ludGhldGljV2hlZWxFdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KFdoZWVsRXZlbnRJbnRlcmZhY2UpO1xuXG52YXIgRU5EX0tFWUNPREVTID0gWzksIDEzLCAyNywgMzJdOyAvLyBUYWIsIFJldHVybiwgRXNjLCBTcGFjZVxuXG52YXIgU1RBUlRfS0VZQ09ERSA9IDIyOTtcbnZhciBjYW5Vc2VDb21wb3NpdGlvbkV2ZW50ID0gY2FuVXNlRE9NICYmICdDb21wb3NpdGlvbkV2ZW50JyBpbiB3aW5kb3c7XG52YXIgZG9jdW1lbnRNb2RlID0gbnVsbDtcblxuaWYgKGNhblVzZURPTSAmJiAnZG9jdW1lbnRNb2RlJyBpbiBkb2N1bWVudCkge1xuICBkb2N1bWVudE1vZGUgPSBkb2N1bWVudC5kb2N1bWVudE1vZGU7XG59IC8vIFdlYmtpdCBvZmZlcnMgYSB2ZXJ5IHVzZWZ1bCBgdGV4dElucHV0YCBldmVudCB0aGF0IGNhbiBiZSB1c2VkIHRvXG4vLyBkaXJlY3RseSByZXByZXNlbnQgYGJlZm9yZUlucHV0YC4gVGhlIElFIGB0ZXh0aW5wdXRgIGV2ZW50IGlzIG5vdCBhc1xuLy8gdXNlZnVsLCBzbyB3ZSBkb24ndCB1c2UgaXQuXG5cblxudmFyIGNhblVzZVRleHRJbnB1dEV2ZW50ID0gY2FuVXNlRE9NICYmICdUZXh0RXZlbnQnIGluIHdpbmRvdyAmJiAhZG9jdW1lbnRNb2RlOyAvLyBJbiBJRTkrLCB3ZSBoYXZlIGFjY2VzcyB0byBjb21wb3NpdGlvbiBldmVudHMsIGJ1dCB0aGUgZGF0YSBzdXBwbGllZFxuLy8gYnkgdGhlIG5hdGl2ZSBjb21wb3NpdGlvbmVuZCBldmVudCBtYXkgYmUgaW5jb3JyZWN0LiBKYXBhbmVzZSBpZGVvZ3JhcGhpY1xuLy8gc3BhY2VzLCBmb3IgaW5zdGFuY2UgKFxcdTMwMDApIGFyZSBub3QgcmVjb3JkZWQgY29ycmVjdGx5LlxuXG52YXIgdXNlRmFsbGJhY2tDb21wb3NpdGlvbkRhdGEgPSBjYW5Vc2VET00gJiYgKCFjYW5Vc2VDb21wb3NpdGlvbkV2ZW50IHx8IGRvY3VtZW50TW9kZSAmJiBkb2N1bWVudE1vZGUgPiA4ICYmIGRvY3VtZW50TW9kZSA8PSAxMSk7XG52YXIgU1BBQ0VCQVJfQ09ERSA9IDMyO1xudmFyIFNQQUNFQkFSX0NIQVIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKFNQQUNFQkFSX0NPREUpO1xuXG5mdW5jdGlvbiByZWdpc3RlckV2ZW50cygpIHtcbiAgcmVnaXN0ZXJUd29QaGFzZUV2ZW50KCdvbkJlZm9yZUlucHV0JywgWydjb21wb3NpdGlvbmVuZCcsICdrZXlwcmVzcycsICd0ZXh0SW5wdXQnLCAncGFzdGUnXSk7XG4gIHJlZ2lzdGVyVHdvUGhhc2VFdmVudCgnb25Db21wb3NpdGlvbkVuZCcsIFsnY29tcG9zaXRpb25lbmQnLCAnZm9jdXNvdXQnLCAna2V5ZG93bicsICdrZXlwcmVzcycsICdrZXl1cCcsICdtb3VzZWRvd24nXSk7XG4gIHJlZ2lzdGVyVHdvUGhhc2VFdmVudCgnb25Db21wb3NpdGlvblN0YXJ0JywgWydjb21wb3NpdGlvbnN0YXJ0JywgJ2ZvY3Vzb3V0JywgJ2tleWRvd24nLCAna2V5cHJlc3MnLCAna2V5dXAnLCAnbW91c2Vkb3duJ10pO1xuICByZWdpc3RlclR3b1BoYXNlRXZlbnQoJ29uQ29tcG9zaXRpb25VcGRhdGUnLCBbJ2NvbXBvc2l0aW9udXBkYXRlJywgJ2ZvY3Vzb3V0JywgJ2tleWRvd24nLCAna2V5cHJlc3MnLCAna2V5dXAnLCAnbW91c2Vkb3duJ10pO1xufSAvLyBUcmFjayB3aGV0aGVyIHdlJ3ZlIGV2ZXIgaGFuZGxlZCBhIGtleXByZXNzIG9uIHRoZSBzcGFjZSBrZXkuXG5cblxudmFyIGhhc1NwYWNlS2V5cHJlc3MgPSBmYWxzZTtcbi8qKlxuICogUmV0dXJuIHdoZXRoZXIgYSBuYXRpdmUga2V5cHJlc3MgZXZlbnQgaXMgYXNzdW1lZCB0byBiZSBhIGNvbW1hbmQuXG4gKiBUaGlzIGlzIHJlcXVpcmVkIGJlY2F1c2UgRmlyZWZveCBmaXJlcyBga2V5cHJlc3NgIGV2ZW50cyBmb3Iga2V5IGNvbW1hbmRzXG4gKiAoY3V0LCBjb3B5LCBzZWxlY3QtYWxsLCBldGMuKSBldmVuIHRob3VnaCBubyBjaGFyYWN0ZXIgaXMgaW5zZXJ0ZWQuXG4gKi9cblxuZnVuY3Rpb24gaXNLZXlwcmVzc0NvbW1hbmQobmF0aXZlRXZlbnQpIHtcbiAgcmV0dXJuIChuYXRpdmVFdmVudC5jdHJsS2V5IHx8IG5hdGl2ZUV2ZW50LmFsdEtleSB8fCBuYXRpdmVFdmVudC5tZXRhS2V5KSAmJiAvLyBjdHJsS2V5ICYmIGFsdEtleSBpcyBlcXVpdmFsZW50IHRvIEFsdEdyLCBhbmQgaXMgbm90IGEgY29tbWFuZC5cbiAgIShuYXRpdmVFdmVudC5jdHJsS2V5ICYmIG5hdGl2ZUV2ZW50LmFsdEtleSk7XG59XG4vKipcbiAqIFRyYW5zbGF0ZSBuYXRpdmUgdG9wIGxldmVsIGV2ZW50cyBpbnRvIGV2ZW50IHR5cGVzLlxuICovXG5cblxuZnVuY3Rpb24gZ2V0Q29tcG9zaXRpb25FdmVudFR5cGUoZG9tRXZlbnROYW1lKSB7XG4gIHN3aXRjaCAoZG9tRXZlbnROYW1lKSB7XG4gICAgY2FzZSAnY29tcG9zaXRpb25zdGFydCc6XG4gICAgICByZXR1cm4gJ29uQ29tcG9zaXRpb25TdGFydCc7XG5cbiAgICBjYXNlICdjb21wb3NpdGlvbmVuZCc6XG4gICAgICByZXR1cm4gJ29uQ29tcG9zaXRpb25FbmQnO1xuXG4gICAgY2FzZSAnY29tcG9zaXRpb251cGRhdGUnOlxuICAgICAgcmV0dXJuICdvbkNvbXBvc2l0aW9uVXBkYXRlJztcbiAgfVxufVxuLyoqXG4gKiBEb2VzIG91ciBmYWxsYmFjayBiZXN0LWd1ZXNzIG1vZGVsIHRoaW5rIHRoaXMgZXZlbnQgc2lnbmlmaWVzIHRoYXRcbiAqIGNvbXBvc2l0aW9uIGhhcyBiZWd1bj9cbiAqL1xuXG5cbmZ1bmN0aW9uIGlzRmFsbGJhY2tDb21wb3NpdGlvblN0YXJ0KGRvbUV2ZW50TmFtZSwgbmF0aXZlRXZlbnQpIHtcbiAgcmV0dXJuIGRvbUV2ZW50TmFtZSA9PT0gJ2tleWRvd24nICYmIG5hdGl2ZUV2ZW50LmtleUNvZGUgPT09IFNUQVJUX0tFWUNPREU7XG59XG4vKipcbiAqIERvZXMgb3VyIGZhbGxiYWNrIG1vZGUgdGhpbmsgdGhhdCB0aGlzIGV2ZW50IGlzIHRoZSBlbmQgb2YgY29tcG9zaXRpb24/XG4gKi9cblxuXG5mdW5jdGlvbiBpc0ZhbGxiYWNrQ29tcG9zaXRpb25FbmQoZG9tRXZlbnROYW1lLCBuYXRpdmVFdmVudCkge1xuICBzd2l0Y2ggKGRvbUV2ZW50TmFtZSkge1xuICAgIGNhc2UgJ2tleXVwJzpcbiAgICAgIC8vIENvbW1hbmQga2V5cyBpbnNlcnQgb3IgY2xlYXIgSU1FIGlucHV0LlxuICAgICAgcmV0dXJuIEVORF9LRVlDT0RFUy5pbmRleE9mKG5hdGl2ZUV2ZW50LmtleUNvZGUpICE9PSAtMTtcblxuICAgIGNhc2UgJ2tleWRvd24nOlxuICAgICAgLy8gRXhwZWN0IElNRSBrZXlDb2RlIG9uIGVhY2gga2V5ZG93bi4gSWYgd2UgZ2V0IGFueSBvdGhlclxuICAgICAgLy8gY29kZSB3ZSBtdXN0IGhhdmUgZXhpdGVkIGVhcmxpZXIuXG4gICAgICByZXR1cm4gbmF0aXZlRXZlbnQua2V5Q29kZSAhPT0gU1RBUlRfS0VZQ09ERTtcblxuICAgIGNhc2UgJ2tleXByZXNzJzpcbiAgICBjYXNlICdtb3VzZWRvd24nOlxuICAgIGNhc2UgJ2ZvY3Vzb3V0JzpcbiAgICAgIC8vIEV2ZW50cyBhcmUgbm90IHBvc3NpYmxlIHdpdGhvdXQgY2FuY2VsbGluZyBJTUUuXG4gICAgICByZXR1cm4gdHJ1ZTtcblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbi8qKlxuICogR29vZ2xlIElucHV0IFRvb2xzIHByb3ZpZGVzIGNvbXBvc2l0aW9uIGRhdGEgdmlhIGEgQ3VzdG9tRXZlbnQsXG4gKiB3aXRoIHRoZSBgZGF0YWAgcHJvcGVydHkgcG9wdWxhdGVkIGluIHRoZSBgZGV0YWlsYCBvYmplY3QuIElmIHRoaXNcbiAqIGlzIGF2YWlsYWJsZSBvbiB0aGUgZXZlbnQgb2JqZWN0LCB1c2UgaXQuIElmIG5vdCwgdGhpcyBpcyBhIHBsYWluXG4gKiBjb21wb3NpdGlvbiBldmVudCBhbmQgd2UgaGF2ZSBub3RoaW5nIHNwZWNpYWwgdG8gZXh0cmFjdC5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gbmF0aXZlRXZlbnRcbiAqIEByZXR1cm4gez9zdHJpbmd9XG4gKi9cblxuXG5mdW5jdGlvbiBnZXREYXRhRnJvbUN1c3RvbUV2ZW50KG5hdGl2ZUV2ZW50KSB7XG4gIHZhciBkZXRhaWwgPSBuYXRpdmVFdmVudC5kZXRhaWw7XG5cbiAgaWYgKHR5cGVvZiBkZXRhaWwgPT09ICdvYmplY3QnICYmICdkYXRhJyBpbiBkZXRhaWwpIHtcbiAgICByZXR1cm4gZGV0YWlsLmRhdGE7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cbi8qKlxuICogQ2hlY2sgaWYgYSBjb21wb3NpdGlvbiBldmVudCB3YXMgdHJpZ2dlcmVkIGJ5IEtvcmVhbiBJTUUuXG4gKiBPdXIgZmFsbGJhY2sgbW9kZSBkb2VzIG5vdCB3b3JrIHdlbGwgd2l0aCBJRSdzIEtvcmVhbiBJTUUsXG4gKiBzbyBqdXN0IHVzZSBuYXRpdmUgY29tcG9zaXRpb24gZXZlbnRzIHdoZW4gS29yZWFuIElNRSBpcyB1c2VkLlxuICogQWx0aG91Z2ggQ29tcG9zaXRpb25FdmVudC5sb2NhbGUgcHJvcGVydHkgaXMgZGVwcmVjYXRlZCxcbiAqIGl0IGlzIGF2YWlsYWJsZSBpbiBJRSwgd2hlcmUgb3VyIGZhbGxiYWNrIG1vZGUgaXMgZW5hYmxlZC5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gbmF0aXZlRXZlbnRcbiAqIEByZXR1cm4ge2Jvb2xlYW59XG4gKi9cblxuXG5mdW5jdGlvbiBpc1VzaW5nS29yZWFuSU1FKG5hdGl2ZUV2ZW50KSB7XG4gIHJldHVybiBuYXRpdmVFdmVudC5sb2NhbGUgPT09ICdrbyc7XG59IC8vIFRyYWNrIHRoZSBjdXJyZW50IElNRSBjb21wb3NpdGlvbiBzdGF0dXMsIGlmIGFueS5cblxuXG52YXIgaXNDb21wb3NpbmcgPSBmYWxzZTtcbi8qKlxuICogQHJldHVybiB7P29iamVjdH0gQSBTeW50aGV0aWNDb21wb3NpdGlvbkV2ZW50LlxuICovXG5cbmZ1bmN0aW9uIGV4dHJhY3RDb21wb3NpdGlvbkV2ZW50KGRpc3BhdGNoUXVldWUsIGRvbUV2ZW50TmFtZSwgdGFyZ2V0SW5zdCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KSB7XG4gIHZhciBldmVudFR5cGU7XG4gIHZhciBmYWxsYmFja0RhdGE7XG5cbiAgaWYgKGNhblVzZUNvbXBvc2l0aW9uRXZlbnQpIHtcbiAgICBldmVudFR5cGUgPSBnZXRDb21wb3NpdGlvbkV2ZW50VHlwZShkb21FdmVudE5hbWUpO1xuICB9IGVsc2UgaWYgKCFpc0NvbXBvc2luZykge1xuICAgIGlmIChpc0ZhbGxiYWNrQ29tcG9zaXRpb25TdGFydChkb21FdmVudE5hbWUsIG5hdGl2ZUV2ZW50KSkge1xuICAgICAgZXZlbnRUeXBlID0gJ29uQ29tcG9zaXRpb25TdGFydCc7XG4gICAgfVxuICB9IGVsc2UgaWYgKGlzRmFsbGJhY2tDb21wb3NpdGlvbkVuZChkb21FdmVudE5hbWUsIG5hdGl2ZUV2ZW50KSkge1xuICAgIGV2ZW50VHlwZSA9ICdvbkNvbXBvc2l0aW9uRW5kJztcbiAgfVxuXG4gIGlmICghZXZlbnRUeXBlKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpZiAodXNlRmFsbGJhY2tDb21wb3NpdGlvbkRhdGEgJiYgIWlzVXNpbmdLb3JlYW5JTUUobmF0aXZlRXZlbnQpKSB7XG4gICAgLy8gVGhlIGN1cnJlbnQgY29tcG9zaXRpb24gaXMgc3RvcmVkIHN0YXRpY2FsbHkgYW5kIG11c3Qgbm90IGJlXG4gICAgLy8gb3ZlcndyaXR0ZW4gd2hpbGUgY29tcG9zaXRpb24gY29udGludWVzLlxuICAgIGlmICghaXNDb21wb3NpbmcgJiYgZXZlbnRUeXBlID09PSAnb25Db21wb3NpdGlvblN0YXJ0Jykge1xuICAgICAgaXNDb21wb3NpbmcgPSBpbml0aWFsaXplKG5hdGl2ZUV2ZW50VGFyZ2V0KTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9PT0gJ29uQ29tcG9zaXRpb25FbmQnKSB7XG4gICAgICBpZiAoaXNDb21wb3NpbmcpIHtcbiAgICAgICAgZmFsbGJhY2tEYXRhID0gZ2V0RGF0YSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHZhciBsaXN0ZW5lcnMgPSBhY2N1bXVsYXRlVHdvUGhhc2VMaXN0ZW5lcnModGFyZ2V0SW5zdCwgZXZlbnRUeXBlKTtcblxuICBpZiAobGlzdGVuZXJzLmxlbmd0aCA+IDApIHtcbiAgICB2YXIgZXZlbnQgPSBuZXcgU3ludGhldGljQ29tcG9zaXRpb25FdmVudChldmVudFR5cGUsIGRvbUV2ZW50TmFtZSwgbnVsbCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KTtcbiAgICBkaXNwYXRjaFF1ZXVlLnB1c2goe1xuICAgICAgZXZlbnQ6IGV2ZW50LFxuICAgICAgbGlzdGVuZXJzOiBsaXN0ZW5lcnNcbiAgICB9KTtcblxuICAgIGlmIChmYWxsYmFja0RhdGEpIHtcbiAgICAgIC8vIEluamVjdCBkYXRhIGdlbmVyYXRlZCBmcm9tIGZhbGxiYWNrIHBhdGggaW50byB0aGUgc3ludGhldGljIGV2ZW50LlxuICAgICAgLy8gVGhpcyBtYXRjaGVzIHRoZSBwcm9wZXJ0eSBvZiBuYXRpdmUgQ29tcG9zaXRpb25FdmVudEludGVyZmFjZS5cbiAgICAgIGV2ZW50LmRhdGEgPSBmYWxsYmFja0RhdGE7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBjdXN0b21EYXRhID0gZ2V0RGF0YUZyb21DdXN0b21FdmVudChuYXRpdmVFdmVudCk7XG5cbiAgICAgIGlmIChjdXN0b21EYXRhICE9PSBudWxsKSB7XG4gICAgICAgIGV2ZW50LmRhdGEgPSBjdXN0b21EYXRhO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBnZXROYXRpdmVCZWZvcmVJbnB1dENoYXJzKGRvbUV2ZW50TmFtZSwgbmF0aXZlRXZlbnQpIHtcbiAgc3dpdGNoIChkb21FdmVudE5hbWUpIHtcbiAgICBjYXNlICdjb21wb3NpdGlvbmVuZCc6XG4gICAgICByZXR1cm4gZ2V0RGF0YUZyb21DdXN0b21FdmVudChuYXRpdmVFdmVudCk7XG5cbiAgICBjYXNlICdrZXlwcmVzcyc6XG4gICAgICAvKipcbiAgICAgICAqIElmIG5hdGl2ZSBgdGV4dElucHV0YCBldmVudHMgYXJlIGF2YWlsYWJsZSwgb3VyIGdvYWwgaXMgdG8gbWFrZVxuICAgICAgICogdXNlIG9mIHRoZW0uIEhvd2V2ZXIsIHRoZXJlIGlzIGEgc3BlY2lhbCBjYXNlOiB0aGUgc3BhY2ViYXIga2V5LlxuICAgICAgICogSW4gV2Via2l0LCBwcmV2ZW50aW5nIGRlZmF1bHQgb24gYSBzcGFjZWJhciBgdGV4dElucHV0YCBldmVudFxuICAgICAgICogY2FuY2VscyBjaGFyYWN0ZXIgaW5zZXJ0aW9uLCBidXQgaXQgKmFsc28qIGNhdXNlcyB0aGUgYnJvd3NlclxuICAgICAgICogdG8gZmFsbCBiYWNrIHRvIGl0cyBkZWZhdWx0IHNwYWNlYmFyIGJlaGF2aW9yIG9mIHNjcm9sbGluZyB0aGVcbiAgICAgICAqIHBhZ2UuXG4gICAgICAgKlxuICAgICAgICogVHJhY2tpbmcgYXQ6XG4gICAgICAgKiBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9MzU1MTAzXG4gICAgICAgKlxuICAgICAgICogVG8gYXZvaWQgdGhpcyBpc3N1ZSwgdXNlIHRoZSBrZXlwcmVzcyBldmVudCBhcyBpZiBubyBgdGV4dElucHV0YFxuICAgICAgICogZXZlbnQgaXMgYXZhaWxhYmxlLlxuICAgICAgICovXG4gICAgICB2YXIgd2hpY2ggPSBuYXRpdmVFdmVudC53aGljaDtcblxuICAgICAgaWYgKHdoaWNoICE9PSBTUEFDRUJBUl9DT0RFKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICBoYXNTcGFjZUtleXByZXNzID0gdHJ1ZTtcbiAgICAgIHJldHVybiBTUEFDRUJBUl9DSEFSO1xuXG4gICAgY2FzZSAndGV4dElucHV0JzpcbiAgICAgIC8vIFJlY29yZCB0aGUgY2hhcmFjdGVycyB0byBiZSBhZGRlZCB0byB0aGUgRE9NLlxuICAgICAgdmFyIGNoYXJzID0gbmF0aXZlRXZlbnQuZGF0YTsgLy8gSWYgaXQncyBhIHNwYWNlYmFyIGNoYXJhY3RlciwgYXNzdW1lIHRoYXQgd2UgaGF2ZSBhbHJlYWR5IGhhbmRsZWRcbiAgICAgIC8vIGl0IGF0IHRoZSBrZXlwcmVzcyBsZXZlbCBhbmQgYmFpbCBpbW1lZGlhdGVseS4gQW5kcm9pZCBDaHJvbWVcbiAgICAgIC8vIGRvZXNuJ3QgZ2l2ZSB1cyBrZXljb2Rlcywgc28gd2UgbmVlZCB0byBpZ25vcmUgaXQuXG5cbiAgICAgIGlmIChjaGFycyA9PT0gU1BBQ0VCQVJfQ0hBUiAmJiBoYXNTcGFjZUtleXByZXNzKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY2hhcnM7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgLy8gRm9yIG90aGVyIG5hdGl2ZSBldmVudCB0eXBlcywgZG8gbm90aGluZy5cbiAgICAgIHJldHVybiBudWxsO1xuICB9XG59XG4vKipcbiAqIEZvciBicm93c2VycyB0aGF0IGRvIG5vdCBwcm92aWRlIHRoZSBgdGV4dElucHV0YCBldmVudCwgZXh0cmFjdCB0aGVcbiAqIGFwcHJvcHJpYXRlIHN0cmluZyB0byB1c2UgZm9yIFN5bnRoZXRpY0lucHV0RXZlbnQuXG4gKi9cblxuXG5mdW5jdGlvbiBnZXRGYWxsYmFja0JlZm9yZUlucHV0Q2hhcnMoZG9tRXZlbnROYW1lLCBuYXRpdmVFdmVudCkge1xuICAvLyBJZiB3ZSBhcmUgY3VycmVudGx5IGNvbXBvc2luZyAoSU1FKSBhbmQgdXNpbmcgYSBmYWxsYmFjayB0byBkbyBzbyxcbiAgLy8gdHJ5IHRvIGV4dHJhY3QgdGhlIGNvbXBvc2VkIGNoYXJhY3RlcnMgZnJvbSB0aGUgZmFsbGJhY2sgb2JqZWN0LlxuICAvLyBJZiBjb21wb3NpdGlvbiBldmVudCBpcyBhdmFpbGFibGUsIHdlIGV4dHJhY3QgYSBzdHJpbmcgb25seSBhdFxuICAvLyBjb21wb3NpdGlvbmV2ZW50LCBvdGhlcndpc2UgZXh0cmFjdCBpdCBhdCBmYWxsYmFjayBldmVudHMuXG4gIGlmIChpc0NvbXBvc2luZykge1xuICAgIGlmIChkb21FdmVudE5hbWUgPT09ICdjb21wb3NpdGlvbmVuZCcgfHwgIWNhblVzZUNvbXBvc2l0aW9uRXZlbnQgJiYgaXNGYWxsYmFja0NvbXBvc2l0aW9uRW5kKGRvbUV2ZW50TmFtZSwgbmF0aXZlRXZlbnQpKSB7XG4gICAgICB2YXIgY2hhcnMgPSBnZXREYXRhKCk7XG4gICAgICByZXNldCgpO1xuICAgICAgaXNDb21wb3NpbmcgPSBmYWxzZTtcbiAgICAgIHJldHVybiBjaGFycztcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHN3aXRjaCAoZG9tRXZlbnROYW1lKSB7XG4gICAgY2FzZSAncGFzdGUnOlxuICAgICAgLy8gSWYgYSBwYXN0ZSBldmVudCBvY2N1cnMgYWZ0ZXIgYSBrZXlwcmVzcywgdGhyb3cgb3V0IHRoZSBpbnB1dFxuICAgICAgLy8gY2hhcnMuIFBhc3RlIGV2ZW50cyBzaG91bGQgbm90IGxlYWQgdG8gQmVmb3JlSW5wdXQgZXZlbnRzLlxuICAgICAgcmV0dXJuIG51bGw7XG5cbiAgICBjYXNlICdrZXlwcmVzcyc6XG4gICAgICAvKipcbiAgICAgICAqIEFzIG9mIHYyNywgRmlyZWZveCBtYXkgZmlyZSBrZXlwcmVzcyBldmVudHMgZXZlbiB3aGVuIG5vIGNoYXJhY3RlclxuICAgICAgICogd2lsbCBiZSBpbnNlcnRlZC4gQSBmZXcgcG9zc2liaWxpdGllczpcbiAgICAgICAqXG4gICAgICAgKiAtIGB3aGljaGAgaXMgYDBgLiBBcnJvdyBrZXlzLCBFc2Mga2V5LCBldGMuXG4gICAgICAgKlxuICAgICAgICogLSBgd2hpY2hgIGlzIHRoZSBwcmVzc2VkIGtleSBjb2RlLCBidXQgbm8gY2hhciBpcyBhdmFpbGFibGUuXG4gICAgICAgKiAgIEV4OiAnQWx0R3IgKyBkYCBpbiBQb2xpc2guIFRoZXJlIGlzIG5vIG1vZGlmaWVkIGNoYXJhY3RlciBmb3JcbiAgICAgICAqICAgdGhpcyBrZXkgY29tYmluYXRpb24gYW5kIG5vIGNoYXJhY3RlciBpcyBpbnNlcnRlZCBpbnRvIHRoZVxuICAgICAgICogICBkb2N1bWVudCwgYnV0IEZGIGZpcmVzIHRoZSBrZXlwcmVzcyBmb3IgY2hhciBjb2RlIGAxMDBgIGFueXdheS5cbiAgICAgICAqICAgTm8gYGlucHV0YCBldmVudCB3aWxsIG9jY3VyLlxuICAgICAgICpcbiAgICAgICAqIC0gYHdoaWNoYCBpcyB0aGUgcHJlc3NlZCBrZXkgY29kZSwgYnV0IGEgY29tbWFuZCBjb21iaW5hdGlvbiBpc1xuICAgICAgICogICBiZWluZyB1c2VkLiBFeDogYENtZCtDYC4gTm8gY2hhcmFjdGVyIGlzIGluc2VydGVkLCBhbmQgbm9cbiAgICAgICAqICAgYGlucHV0YCBldmVudCB3aWxsIG9jY3VyLlxuICAgICAgICovXG4gICAgICBpZiAoIWlzS2V5cHJlc3NDb21tYW5kKG5hdGl2ZUV2ZW50KSkge1xuICAgICAgICAvLyBJRSBmaXJlcyB0aGUgYGtleXByZXNzYCBldmVudCB3aGVuIGEgdXNlciB0eXBlcyBhbiBlbW9qaSB2aWFcbiAgICAgICAgLy8gVG91Y2gga2V5Ym9hcmQgb2YgV2luZG93cy4gIEluIHN1Y2ggYSBjYXNlLCB0aGUgYGNoYXJgIHByb3BlcnR5XG4gICAgICAgIC8vIGhvbGRzIGFuIGVtb2ppIGNoYXJhY3RlciBsaWtlIGBcXHVEODNEXFx1REUwQWAuICBCZWNhdXNlIGl0cyBsZW5ndGhcbiAgICAgICAgLy8gaXMgMiwgdGhlIHByb3BlcnR5IGB3aGljaGAgZG9lcyBub3QgcmVwcmVzZW50IGFuIGVtb2ppIGNvcnJlY3RseS5cbiAgICAgICAgLy8gSW4gc3VjaCBhIGNhc2UsIHdlIGRpcmVjdGx5IHJldHVybiB0aGUgYGNoYXJgIHByb3BlcnR5IGluc3RlYWQgb2ZcbiAgICAgICAgLy8gdXNpbmcgYHdoaWNoYC5cbiAgICAgICAgaWYgKG5hdGl2ZUV2ZW50LmNoYXIgJiYgbmF0aXZlRXZlbnQuY2hhci5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgcmV0dXJuIG5hdGl2ZUV2ZW50LmNoYXI7XG4gICAgICAgIH0gZWxzZSBpZiAobmF0aXZlRXZlbnQud2hpY2gpIHtcbiAgICAgICAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShuYXRpdmVFdmVudC53aGljaCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG51bGw7XG5cbiAgICBjYXNlICdjb21wb3NpdGlvbmVuZCc6XG4gICAgICByZXR1cm4gdXNlRmFsbGJhY2tDb21wb3NpdGlvbkRhdGEgJiYgIWlzVXNpbmdLb3JlYW5JTUUobmF0aXZlRXZlbnQpID8gbnVsbCA6IG5hdGl2ZUV2ZW50LmRhdGE7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cbi8qKlxuICogRXh0cmFjdCBhIFN5bnRoZXRpY0lucHV0RXZlbnQgZm9yIGBiZWZvcmVJbnB1dGAsIGJhc2VkIG9uIGVpdGhlciBuYXRpdmVcbiAqIGB0ZXh0SW5wdXRgIG9yIGZhbGxiYWNrIGJlaGF2aW9yLlxuICpcbiAqIEByZXR1cm4gez9vYmplY3R9IEEgU3ludGhldGljSW5wdXRFdmVudC5cbiAqL1xuXG5cbmZ1bmN0aW9uIGV4dHJhY3RCZWZvcmVJbnB1dEV2ZW50KGRpc3BhdGNoUXVldWUsIGRvbUV2ZW50TmFtZSwgdGFyZ2V0SW5zdCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KSB7XG4gIHZhciBjaGFycztcblxuICBpZiAoY2FuVXNlVGV4dElucHV0RXZlbnQpIHtcbiAgICBjaGFycyA9IGdldE5hdGl2ZUJlZm9yZUlucHV0Q2hhcnMoZG9tRXZlbnROYW1lLCBuYXRpdmVFdmVudCk7XG4gIH0gZWxzZSB7XG4gICAgY2hhcnMgPSBnZXRGYWxsYmFja0JlZm9yZUlucHV0Q2hhcnMoZG9tRXZlbnROYW1lLCBuYXRpdmVFdmVudCk7XG4gIH0gLy8gSWYgbm8gY2hhcmFjdGVycyBhcmUgYmVpbmcgaW5zZXJ0ZWQsIG5vIEJlZm9yZUlucHV0IGV2ZW50IHNob3VsZFxuICAvLyBiZSBmaXJlZC5cblxuXG4gIGlmICghY2hhcnMpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHZhciBsaXN0ZW5lcnMgPSBhY2N1bXVsYXRlVHdvUGhhc2VMaXN0ZW5lcnModGFyZ2V0SW5zdCwgJ29uQmVmb3JlSW5wdXQnKTtcblxuICBpZiAobGlzdGVuZXJzLmxlbmd0aCA+IDApIHtcbiAgICB2YXIgZXZlbnQgPSBuZXcgU3ludGhldGljSW5wdXRFdmVudCgnb25CZWZvcmVJbnB1dCcsICdiZWZvcmVpbnB1dCcsIG51bGwsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCk7XG4gICAgZGlzcGF0Y2hRdWV1ZS5wdXNoKHtcbiAgICAgIGV2ZW50OiBldmVudCxcbiAgICAgIGxpc3RlbmVyczogbGlzdGVuZXJzXG4gICAgfSk7XG4gICAgZXZlbnQuZGF0YSA9IGNoYXJzO1xuICB9XG59XG4vKipcbiAqIENyZWF0ZSBhbiBgb25CZWZvcmVJbnB1dGAgZXZlbnQgdG8gbWF0Y2hcbiAqIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMTMvV0QtRE9NLUxldmVsLTMtRXZlbnRzLTIwMTMxMTA1LyNldmVudHMtaW5wdXRldmVudHMuXG4gKlxuICogVGhpcyBldmVudCBwbHVnaW4gaXMgYmFzZWQgb24gdGhlIG5hdGl2ZSBgdGV4dElucHV0YCBldmVudFxuICogYXZhaWxhYmxlIGluIENocm9tZSwgU2FmYXJpLCBPcGVyYSwgYW5kIElFLiBUaGlzIGV2ZW50IGZpcmVzIGFmdGVyXG4gKiBgb25LZXlQcmVzc2AgYW5kIGBvbkNvbXBvc2l0aW9uRW5kYCwgYnV0IGJlZm9yZSBgb25JbnB1dGAuXG4gKlxuICogYGJlZm9yZUlucHV0YCBpcyBzcGVjJ2QgYnV0IG5vdCBpbXBsZW1lbnRlZCBpbiBhbnkgYnJvd3NlcnMsIGFuZFxuICogdGhlIGBpbnB1dGAgZXZlbnQgZG9lcyBub3QgcHJvdmlkZSBhbnkgdXNlZnVsIGluZm9ybWF0aW9uIGFib3V0IHdoYXQgaGFzXG4gKiBhY3R1YWxseSBiZWVuIGFkZGVkLCBjb250cmFyeSB0byB0aGUgc3BlYy4gVGh1cywgYHRleHRJbnB1dGAgaXMgdGhlIGJlc3RcbiAqIGF2YWlsYWJsZSBldmVudCB0byBpZGVudGlmeSB0aGUgY2hhcmFjdGVycyB0aGF0IGhhdmUgYWN0dWFsbHkgYmVlbiBpbnNlcnRlZFxuICogaW50byB0aGUgdGFyZ2V0IG5vZGUuXG4gKlxuICogVGhpcyBwbHVnaW4gaXMgYWxzbyByZXNwb25zaWJsZSBmb3IgZW1pdHRpbmcgYGNvbXBvc2l0aW9uYCBldmVudHMsIHRodXNcbiAqIGFsbG93aW5nIHVzIHRvIHNoYXJlIGNvbXBvc2l0aW9uIGZhbGxiYWNrIGNvZGUgZm9yIGJvdGggYGJlZm9yZUlucHV0YCBhbmRcbiAqIGBjb21wb3NpdGlvbmAgZXZlbnQgdHlwZXMuXG4gKi9cblxuXG5mdW5jdGlvbiBleHRyYWN0RXZlbnRzKGRpc3BhdGNoUXVldWUsIGRvbUV2ZW50TmFtZSwgdGFyZ2V0SW5zdCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0LCBldmVudFN5c3RlbUZsYWdzLCB0YXJnZXRDb250YWluZXIpIHtcbiAgZXh0cmFjdENvbXBvc2l0aW9uRXZlbnQoZGlzcGF0Y2hRdWV1ZSwgZG9tRXZlbnROYW1lLCB0YXJnZXRJbnN0LCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpO1xuICBleHRyYWN0QmVmb3JlSW5wdXRFdmVudChkaXNwYXRjaFF1ZXVlLCBkb21FdmVudE5hbWUsIHRhcmdldEluc3QsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCk7XG59XG5cbi8qKlxuICogQHNlZSBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS90aGUtaW5wdXQtZWxlbWVudC5odG1sI2lucHV0LXR5cGUtYXR0ci1zdW1tYXJ5XG4gKi9cbnZhciBzdXBwb3J0ZWRJbnB1dFR5cGVzID0ge1xuICBjb2xvcjogdHJ1ZSxcbiAgZGF0ZTogdHJ1ZSxcbiAgZGF0ZXRpbWU6IHRydWUsXG4gICdkYXRldGltZS1sb2NhbCc6IHRydWUsXG4gIGVtYWlsOiB0cnVlLFxuICBtb250aDogdHJ1ZSxcbiAgbnVtYmVyOiB0cnVlLFxuICBwYXNzd29yZDogdHJ1ZSxcbiAgcmFuZ2U6IHRydWUsXG4gIHNlYXJjaDogdHJ1ZSxcbiAgdGVsOiB0cnVlLFxuICB0ZXh0OiB0cnVlLFxuICB0aW1lOiB0cnVlLFxuICB1cmw6IHRydWUsXG4gIHdlZWs6IHRydWVcbn07XG5cbmZ1bmN0aW9uIGlzVGV4dElucHV0RWxlbWVudChlbGVtKSB7XG4gIHZhciBub2RlTmFtZSA9IGVsZW0gJiYgZWxlbS5ub2RlTmFtZSAmJiBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XG5cbiAgaWYgKG5vZGVOYW1lID09PSAnaW5wdXQnKSB7XG4gICAgcmV0dXJuICEhc3VwcG9ydGVkSW5wdXRUeXBlc1tlbGVtLnR5cGVdO1xuICB9XG5cbiAgaWYgKG5vZGVOYW1lID09PSAndGV4dGFyZWEnKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIGFuIGV2ZW50IGlzIHN1cHBvcnRlZCBpbiB0aGUgY3VycmVudCBleGVjdXRpb24gZW52aXJvbm1lbnQuXG4gKlxuICogTk9URTogVGhpcyB3aWxsIG5vdCB3b3JrIGNvcnJlY3RseSBmb3Igbm9uLWdlbmVyaWMgZXZlbnRzIHN1Y2ggYXMgYGNoYW5nZWAsXG4gKiBgcmVzZXRgLCBgbG9hZGAsIGBlcnJvcmAsIGFuZCBgc2VsZWN0YC5cbiAqXG4gKiBCb3Jyb3dzIGZyb20gTW9kZXJuaXpyLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBldmVudE5hbWVTdWZmaXggRXZlbnQgbmFtZSwgZS5nLiBcImNsaWNrXCIuXG4gKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIGlmIHRoZSBldmVudCBpcyBzdXBwb3J0ZWQuXG4gKiBAaW50ZXJuYWxcbiAqIEBsaWNlbnNlIE1vZGVybml6ciAzLjAuMHByZSAoQ3VzdG9tIEJ1aWxkKSB8IE1JVFxuICovXG5cbmZ1bmN0aW9uIGlzRXZlbnRTdXBwb3J0ZWQoZXZlbnROYW1lU3VmZml4KSB7XG4gIGlmICghY2FuVXNlRE9NKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgdmFyIGV2ZW50TmFtZSA9ICdvbicgKyBldmVudE5hbWVTdWZmaXg7XG4gIHZhciBpc1N1cHBvcnRlZCA9IChldmVudE5hbWUgaW4gZG9jdW1lbnQpO1xuXG4gIGlmICghaXNTdXBwb3J0ZWQpIHtcbiAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKGV2ZW50TmFtZSwgJ3JldHVybjsnKTtcbiAgICBpc1N1cHBvcnRlZCA9IHR5cGVvZiBlbGVtZW50W2V2ZW50TmFtZV0gPT09ICdmdW5jdGlvbic7XG4gIH1cblxuICByZXR1cm4gaXNTdXBwb3J0ZWQ7XG59XG5cbmZ1bmN0aW9uIHJlZ2lzdGVyRXZlbnRzJDEoKSB7XG4gIHJlZ2lzdGVyVHdvUGhhc2VFdmVudCgnb25DaGFuZ2UnLCBbJ2NoYW5nZScsICdjbGljaycsICdmb2N1c2luJywgJ2ZvY3Vzb3V0JywgJ2lucHV0JywgJ2tleWRvd24nLCAna2V5dXAnLCAnc2VsZWN0aW9uY2hhbmdlJ10pO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVBbmRBY2N1bXVsYXRlQ2hhbmdlRXZlbnQoZGlzcGF0Y2hRdWV1ZSwgaW5zdCwgbmF0aXZlRXZlbnQsIHRhcmdldCkge1xuICAvLyBGbGFnIHRoaXMgZXZlbnQgbG9vcCBhcyBuZWVkaW5nIHN0YXRlIHJlc3RvcmUuXG4gIGVucXVldWVTdGF0ZVJlc3RvcmUodGFyZ2V0KTtcbiAgdmFyIGxpc3RlbmVycyA9IGFjY3VtdWxhdGVUd29QaGFzZUxpc3RlbmVycyhpbnN0LCAnb25DaGFuZ2UnKTtcblxuICBpZiAobGlzdGVuZXJzLmxlbmd0aCA+IDApIHtcbiAgICB2YXIgZXZlbnQgPSBuZXcgU3ludGhldGljRXZlbnQoJ29uQ2hhbmdlJywgJ2NoYW5nZScsIG51bGwsIG5hdGl2ZUV2ZW50LCB0YXJnZXQpO1xuICAgIGRpc3BhdGNoUXVldWUucHVzaCh7XG4gICAgICBldmVudDogZXZlbnQsXG4gICAgICBsaXN0ZW5lcnM6IGxpc3RlbmVyc1xuICAgIH0pO1xuICB9XG59XG4vKipcbiAqIEZvciBJRSBzaGltc1xuICovXG5cblxudmFyIGFjdGl2ZUVsZW1lbnQgPSBudWxsO1xudmFyIGFjdGl2ZUVsZW1lbnRJbnN0ID0gbnVsbDtcbi8qKlxuICogU0VDVElPTjogaGFuZGxlIGBjaGFuZ2VgIGV2ZW50XG4gKi9cblxuZnVuY3Rpb24gc2hvdWxkVXNlQ2hhbmdlRXZlbnQoZWxlbSkge1xuICB2YXIgbm9kZU5hbWUgPSBlbGVtLm5vZGVOYW1lICYmIGVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgcmV0dXJuIG5vZGVOYW1lID09PSAnc2VsZWN0JyB8fCBub2RlTmFtZSA9PT0gJ2lucHV0JyAmJiBlbGVtLnR5cGUgPT09ICdmaWxlJztcbn1cblxuZnVuY3Rpb24gbWFudWFsRGlzcGF0Y2hDaGFuZ2VFdmVudChuYXRpdmVFdmVudCkge1xuICB2YXIgZGlzcGF0Y2hRdWV1ZSA9IFtdO1xuICBjcmVhdGVBbmRBY2N1bXVsYXRlQ2hhbmdlRXZlbnQoZGlzcGF0Y2hRdWV1ZSwgYWN0aXZlRWxlbWVudEluc3QsIG5hdGl2ZUV2ZW50LCBnZXRFdmVudFRhcmdldChuYXRpdmVFdmVudCkpOyAvLyBJZiBjaGFuZ2UgYW5kIHByb3BlcnR5Y2hhbmdlIGJ1YmJsZWQsIHdlJ2QganVzdCBiaW5kIHRvIGl0IGxpa2UgYWxsIHRoZVxuICAvLyBvdGhlciBldmVudHMgYW5kIGhhdmUgaXQgZ28gdGhyb3VnaCBSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXIuIFNpbmNlIGl0XG4gIC8vIGRvZXNuJ3QsIHdlIG1hbnVhbGx5IGxpc3RlbiBmb3IgdGhlIGV2ZW50cyBhbmQgc28gd2UgaGF2ZSB0byBlbnF1ZXVlIGFuZFxuICAvLyBwcm9jZXNzIHRoZSBhYnN0cmFjdCBldmVudCBtYW51YWxseS5cbiAgLy9cbiAgLy8gQmF0Y2hpbmcgaXMgbmVjZXNzYXJ5IGhlcmUgaW4gb3JkZXIgdG8gZW5zdXJlIHRoYXQgYWxsIGV2ZW50IGhhbmRsZXJzIHJ1blxuICAvLyBiZWZvcmUgdGhlIG5leHQgcmVyZW5kZXIgKGluY2x1ZGluZyBldmVudCBoYW5kbGVycyBhdHRhY2hlZCB0byBhbmNlc3RvclxuICAvLyBlbGVtZW50cyBpbnN0ZWFkIG9mIGRpcmVjdGx5IG9uIHRoZSBpbnB1dCkuIFdpdGhvdXQgdGhpcywgY29udHJvbGxlZFxuICAvLyBjb21wb25lbnRzIGRvbid0IHdvcmsgcHJvcGVybHkgaW4gY29uanVuY3Rpb24gd2l0aCBldmVudCBidWJibGluZyBiZWNhdXNlXG4gIC8vIHRoZSBjb21wb25lbnQgaXMgcmVyZW5kZXJlZCBhbmQgdGhlIHZhbHVlIHJldmVydGVkIGJlZm9yZSBhbGwgdGhlIGV2ZW50XG4gIC8vIGhhbmRsZXJzIGNhbiBydW4uIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzcwOC5cblxuICBiYXRjaGVkVXBkYXRlcyhydW5FdmVudEluQmF0Y2gsIGRpc3BhdGNoUXVldWUpO1xufVxuXG5mdW5jdGlvbiBydW5FdmVudEluQmF0Y2goZGlzcGF0Y2hRdWV1ZSkge1xuICBwcm9jZXNzRGlzcGF0Y2hRdWV1ZShkaXNwYXRjaFF1ZXVlLCAwKTtcbn1cblxuZnVuY3Rpb24gZ2V0SW5zdElmVmFsdWVDaGFuZ2VkKHRhcmdldEluc3QpIHtcbiAgdmFyIHRhcmdldE5vZGUgPSBnZXROb2RlRnJvbUluc3RhbmNlKHRhcmdldEluc3QpO1xuXG4gIGlmICh1cGRhdGVWYWx1ZUlmQ2hhbmdlZCh0YXJnZXROb2RlKSkge1xuICAgIHJldHVybiB0YXJnZXRJbnN0O1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldFRhcmdldEluc3RGb3JDaGFuZ2VFdmVudChkb21FdmVudE5hbWUsIHRhcmdldEluc3QpIHtcbiAgaWYgKGRvbUV2ZW50TmFtZSA9PT0gJ2NoYW5nZScpIHtcbiAgICByZXR1cm4gdGFyZ2V0SW5zdDtcbiAgfVxufVxuLyoqXG4gKiBTRUNUSU9OOiBoYW5kbGUgYGlucHV0YCBldmVudFxuICovXG5cblxudmFyIGlzSW5wdXRFdmVudFN1cHBvcnRlZCA9IGZhbHNlO1xuXG5pZiAoY2FuVXNlRE9NKSB7XG4gIC8vIElFOSBjbGFpbXMgdG8gc3VwcG9ydCB0aGUgaW5wdXQgZXZlbnQgYnV0IGZhaWxzIHRvIHRyaWdnZXIgaXQgd2hlblxuICAvLyBkZWxldGluZyB0ZXh0LCBzbyB3ZSBpZ25vcmUgaXRzIGlucHV0IGV2ZW50cy5cbiAgaXNJbnB1dEV2ZW50U3VwcG9ydGVkID0gaXNFdmVudFN1cHBvcnRlZCgnaW5wdXQnKSAmJiAoIWRvY3VtZW50LmRvY3VtZW50TW9kZSB8fCBkb2N1bWVudC5kb2N1bWVudE1vZGUgPiA5KTtcbn1cbi8qKlxuICogKEZvciBJRSA8PTkpIFN0YXJ0cyB0cmFja2luZyBwcm9wZXJ0eWNoYW5nZSBldmVudHMgb24gdGhlIHBhc3NlZC1pbiBlbGVtZW50XG4gKiBhbmQgb3ZlcnJpZGUgdGhlIHZhbHVlIHByb3BlcnR5IHNvIHRoYXQgd2UgY2FuIGRpc3Rpbmd1aXNoIHVzZXIgZXZlbnRzIGZyb21cbiAqIHZhbHVlIGNoYW5nZXMgaW4gSlMuXG4gKi9cblxuXG5mdW5jdGlvbiBzdGFydFdhdGNoaW5nRm9yVmFsdWVDaGFuZ2UodGFyZ2V0LCB0YXJnZXRJbnN0KSB7XG4gIGFjdGl2ZUVsZW1lbnQgPSB0YXJnZXQ7XG4gIGFjdGl2ZUVsZW1lbnRJbnN0ID0gdGFyZ2V0SW5zdDtcbiAgYWN0aXZlRWxlbWVudC5hdHRhY2hFdmVudCgnb25wcm9wZXJ0eWNoYW5nZScsIGhhbmRsZVByb3BlcnR5Q2hhbmdlKTtcbn1cbi8qKlxuICogKEZvciBJRSA8PTkpIFJlbW92ZXMgdGhlIGV2ZW50IGxpc3RlbmVycyBmcm9tIHRoZSBjdXJyZW50bHktdHJhY2tlZCBlbGVtZW50LFxuICogaWYgYW55IGV4aXN0cy5cbiAqL1xuXG5cbmZ1bmN0aW9uIHN0b3BXYXRjaGluZ0ZvclZhbHVlQ2hhbmdlKCkge1xuICBpZiAoIWFjdGl2ZUVsZW1lbnQpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBhY3RpdmVFbGVtZW50LmRldGFjaEV2ZW50KCdvbnByb3BlcnR5Y2hhbmdlJywgaGFuZGxlUHJvcGVydHlDaGFuZ2UpO1xuICBhY3RpdmVFbGVtZW50ID0gbnVsbDtcbiAgYWN0aXZlRWxlbWVudEluc3QgPSBudWxsO1xufVxuLyoqXG4gKiAoRm9yIElFIDw9OSkgSGFuZGxlcyBhIHByb3BlcnR5Y2hhbmdlIGV2ZW50LCBzZW5kaW5nIGEgYGNoYW5nZWAgZXZlbnQgaWZcbiAqIHRoZSB2YWx1ZSBvZiB0aGUgYWN0aXZlIGVsZW1lbnQgaGFzIGNoYW5nZWQuXG4gKi9cblxuXG5mdW5jdGlvbiBoYW5kbGVQcm9wZXJ0eUNoYW5nZShuYXRpdmVFdmVudCkge1xuICBpZiAobmF0aXZlRXZlbnQucHJvcGVydHlOYW1lICE9PSAndmFsdWUnKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKGdldEluc3RJZlZhbHVlQ2hhbmdlZChhY3RpdmVFbGVtZW50SW5zdCkpIHtcbiAgICBtYW51YWxEaXNwYXRjaENoYW5nZUV2ZW50KG5hdGl2ZUV2ZW50KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBoYW5kbGVFdmVudHNGb3JJbnB1dEV2ZW50UG9seWZpbGwoZG9tRXZlbnROYW1lLCB0YXJnZXQsIHRhcmdldEluc3QpIHtcbiAgaWYgKGRvbUV2ZW50TmFtZSA9PT0gJ2ZvY3VzaW4nKSB7XG4gICAgLy8gSW4gSUU5LCBwcm9wZXJ0eWNoYW5nZSBmaXJlcyBmb3IgbW9zdCBpbnB1dCBldmVudHMgYnV0IGlzIGJ1Z2d5IGFuZFxuICAgIC8vIGRvZXNuJ3QgZmlyZSB3aGVuIHRleHQgaXMgZGVsZXRlZCwgYnV0IGNvbnZlbmllbnRseSwgc2VsZWN0aW9uY2hhbmdlXG4gICAgLy8gYXBwZWFycyB0byBmaXJlIGluIGFsbCBvZiB0aGUgcmVtYWluaW5nIGNhc2VzIHNvIHdlIGNhdGNoIHRob3NlIGFuZFxuICAgIC8vIGZvcndhcmQgdGhlIGV2ZW50IGlmIHRoZSB2YWx1ZSBoYXMgY2hhbmdlZFxuICAgIC8vIEluIGVpdGhlciBjYXNlLCB3ZSBkb24ndCB3YW50IHRvIGNhbGwgdGhlIGV2ZW50IGhhbmRsZXIgaWYgdGhlIHZhbHVlXG4gICAgLy8gaXMgY2hhbmdlZCBmcm9tIEpTIHNvIHdlIHJlZGVmaW5lIGEgc2V0dGVyIGZvciBgLnZhbHVlYCB0aGF0IHVwZGF0ZXNcbiAgICAvLyBvdXIgYWN0aXZlRWxlbWVudFZhbHVlIHZhcmlhYmxlLCBhbGxvd2luZyB1cyB0byBpZ25vcmUgdGhvc2UgY2hhbmdlc1xuICAgIC8vXG4gICAgLy8gc3RvcFdhdGNoaW5nKCkgc2hvdWxkIGJlIGEgbm9vcCBoZXJlIGJ1dCB3ZSBjYWxsIGl0IGp1c3QgaW4gY2FzZSB3ZVxuICAgIC8vIG1pc3NlZCBhIGJsdXIgZXZlbnQgc29tZWhvdy5cbiAgICBzdG9wV2F0Y2hpbmdGb3JWYWx1ZUNoYW5nZSgpO1xuICAgIHN0YXJ0V2F0Y2hpbmdGb3JWYWx1ZUNoYW5nZSh0YXJnZXQsIHRhcmdldEluc3QpO1xuICB9IGVsc2UgaWYgKGRvbUV2ZW50TmFtZSA9PT0gJ2ZvY3Vzb3V0Jykge1xuICAgIHN0b3BXYXRjaGluZ0ZvclZhbHVlQ2hhbmdlKCk7XG4gIH1cbn0gLy8gRm9yIElFOCBhbmQgSUU5LlxuXG5cbmZ1bmN0aW9uIGdldFRhcmdldEluc3RGb3JJbnB1dEV2ZW50UG9seWZpbGwoZG9tRXZlbnROYW1lLCB0YXJnZXRJbnN0KSB7XG4gIGlmIChkb21FdmVudE5hbWUgPT09ICdzZWxlY3Rpb25jaGFuZ2UnIHx8IGRvbUV2ZW50TmFtZSA9PT0gJ2tleXVwJyB8fCBkb21FdmVudE5hbWUgPT09ICdrZXlkb3duJykge1xuICAgIC8vIE9uIHRoZSBzZWxlY3Rpb25jaGFuZ2UgZXZlbnQsIHRoZSB0YXJnZXQgaXMganVzdCBkb2N1bWVudCB3aGljaCBpc24ndFxuICAgIC8vIGhlbHBmdWwgZm9yIHVzIHNvIGp1c3QgY2hlY2sgYWN0aXZlRWxlbWVudCBpbnN0ZWFkLlxuICAgIC8vXG4gICAgLy8gOTklIG9mIHRoZSB0aW1lLCBrZXlkb3duIGFuZCBrZXl1cCBhcmVuJ3QgbmVjZXNzYXJ5LiBJRTggZmFpbHMgdG8gZmlyZVxuICAgIC8vIHByb3BlcnR5Y2hhbmdlIG9uIHRoZSBmaXJzdCBpbnB1dCBldmVudCBhZnRlciBzZXR0aW5nIGB2YWx1ZWAgZnJvbSBhXG4gICAgLy8gc2NyaXB0IGFuZCBmaXJlcyBvbmx5IGtleWRvd24sIGtleXByZXNzLCBrZXl1cC4gQ2F0Y2hpbmcga2V5dXAgdXN1YWxseVxuICAgIC8vIGdldHMgaXQgYW5kIGNhdGNoaW5nIGtleWRvd24gbGV0cyB1cyBmaXJlIGFuIGV2ZW50IGZvciB0aGUgZmlyc3RcbiAgICAvLyBrZXlzdHJva2UgaWYgdXNlciBkb2VzIGEga2V5IHJlcGVhdCAoaXQnbGwgYmUgYSBsaXR0bGUgZGVsYXllZDogcmlnaHRcbiAgICAvLyBiZWZvcmUgdGhlIHNlY29uZCBrZXlzdHJva2UpLiBPdGhlciBpbnB1dCBtZXRob2RzIChlLmcuLCBwYXN0ZSkgc2VlbSB0b1xuICAgIC8vIGZpcmUgc2VsZWN0aW9uY2hhbmdlIG5vcm1hbGx5LlxuICAgIHJldHVybiBnZXRJbnN0SWZWYWx1ZUNoYW5nZWQoYWN0aXZlRWxlbWVudEluc3QpO1xuICB9XG59XG4vKipcbiAqIFNFQ1RJT046IGhhbmRsZSBgY2xpY2tgIGV2ZW50XG4gKi9cblxuXG5mdW5jdGlvbiBzaG91bGRVc2VDbGlja0V2ZW50KGVsZW0pIHtcbiAgLy8gVXNlIHRoZSBgY2xpY2tgIGV2ZW50IHRvIGRldGVjdCBjaGFuZ2VzIHRvIGNoZWNrYm94IGFuZCByYWRpbyBpbnB1dHMuXG4gIC8vIFRoaXMgYXBwcm9hY2ggd29ya3MgYWNyb3NzIGFsbCBicm93c2Vycywgd2hlcmVhcyBgY2hhbmdlYCBkb2VzIG5vdCBmaXJlXG4gIC8vIHVudGlsIGBibHVyYCBpbiBJRTguXG4gIHZhciBub2RlTmFtZSA9IGVsZW0ubm9kZU5hbWU7XG4gIHJldHVybiBub2RlTmFtZSAmJiBub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnaW5wdXQnICYmIChlbGVtLnR5cGUgPT09ICdjaGVja2JveCcgfHwgZWxlbS50eXBlID09PSAncmFkaW8nKTtcbn1cblxuZnVuY3Rpb24gZ2V0VGFyZ2V0SW5zdEZvckNsaWNrRXZlbnQoZG9tRXZlbnROYW1lLCB0YXJnZXRJbnN0KSB7XG4gIGlmIChkb21FdmVudE5hbWUgPT09ICdjbGljaycpIHtcbiAgICByZXR1cm4gZ2V0SW5zdElmVmFsdWVDaGFuZ2VkKHRhcmdldEluc3QpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldFRhcmdldEluc3RGb3JJbnB1dE9yQ2hhbmdlRXZlbnQoZG9tRXZlbnROYW1lLCB0YXJnZXRJbnN0KSB7XG4gIGlmIChkb21FdmVudE5hbWUgPT09ICdpbnB1dCcgfHwgZG9tRXZlbnROYW1lID09PSAnY2hhbmdlJykge1xuICAgIHJldHVybiBnZXRJbnN0SWZWYWx1ZUNoYW5nZWQodGFyZ2V0SW5zdCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaGFuZGxlQ29udHJvbGxlZElucHV0Qmx1cihub2RlKSB7XG4gIHZhciBzdGF0ZSA9IG5vZGUuX3dyYXBwZXJTdGF0ZTtcblxuICBpZiAoIXN0YXRlIHx8ICFzdGF0ZS5jb250cm9sbGVkIHx8IG5vZGUudHlwZSAhPT0gJ251bWJlcicpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICB7XG4gICAgLy8gSWYgY29udHJvbGxlZCwgYXNzaWduIHRoZSB2YWx1ZSBhdHRyaWJ1dGUgdG8gdGhlIGN1cnJlbnQgdmFsdWUgb24gYmx1clxuICAgIHNldERlZmF1bHRWYWx1ZShub2RlLCAnbnVtYmVyJywgbm9kZS52YWx1ZSk7XG4gIH1cbn1cbi8qKlxuICogVGhpcyBwbHVnaW4gY3JlYXRlcyBhbiBgb25DaGFuZ2VgIGV2ZW50IHRoYXQgbm9ybWFsaXplcyBjaGFuZ2UgZXZlbnRzXG4gKiBhY3Jvc3MgZm9ybSBlbGVtZW50cy4gVGhpcyBldmVudCBmaXJlcyBhdCBhIHRpbWUgd2hlbiBpdCdzIHBvc3NpYmxlIHRvXG4gKiBjaGFuZ2UgdGhlIGVsZW1lbnQncyB2YWx1ZSB3aXRob3V0IHNlZWluZyBhIGZsaWNrZXIuXG4gKlxuICogU3VwcG9ydGVkIGVsZW1lbnRzIGFyZTpcbiAqIC0gaW5wdXQgKHNlZSBgaXNUZXh0SW5wdXRFbGVtZW50YClcbiAqIC0gdGV4dGFyZWFcbiAqIC0gc2VsZWN0XG4gKi9cblxuXG5mdW5jdGlvbiBleHRyYWN0RXZlbnRzJDEoZGlzcGF0Y2hRdWV1ZSwgZG9tRXZlbnROYW1lLCB0YXJnZXRJbnN0LCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQsIGV2ZW50U3lzdGVtRmxhZ3MsIHRhcmdldENvbnRhaW5lcikge1xuICB2YXIgdGFyZ2V0Tm9kZSA9IHRhcmdldEluc3QgPyBnZXROb2RlRnJvbUluc3RhbmNlKHRhcmdldEluc3QpIDogd2luZG93O1xuICB2YXIgZ2V0VGFyZ2V0SW5zdEZ1bmMsIGhhbmRsZUV2ZW50RnVuYztcblxuICBpZiAoc2hvdWxkVXNlQ2hhbmdlRXZlbnQodGFyZ2V0Tm9kZSkpIHtcbiAgICBnZXRUYXJnZXRJbnN0RnVuYyA9IGdldFRhcmdldEluc3RGb3JDaGFuZ2VFdmVudDtcbiAgfSBlbHNlIGlmIChpc1RleHRJbnB1dEVsZW1lbnQodGFyZ2V0Tm9kZSkpIHtcbiAgICBpZiAoaXNJbnB1dEV2ZW50U3VwcG9ydGVkKSB7XG4gICAgICBnZXRUYXJnZXRJbnN0RnVuYyA9IGdldFRhcmdldEluc3RGb3JJbnB1dE9yQ2hhbmdlRXZlbnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGdldFRhcmdldEluc3RGdW5jID0gZ2V0VGFyZ2V0SW5zdEZvcklucHV0RXZlbnRQb2x5ZmlsbDtcbiAgICAgIGhhbmRsZUV2ZW50RnVuYyA9IGhhbmRsZUV2ZW50c0ZvcklucHV0RXZlbnRQb2x5ZmlsbDtcbiAgICB9XG4gIH0gZWxzZSBpZiAoc2hvdWxkVXNlQ2xpY2tFdmVudCh0YXJnZXROb2RlKSkge1xuICAgIGdldFRhcmdldEluc3RGdW5jID0gZ2V0VGFyZ2V0SW5zdEZvckNsaWNrRXZlbnQ7XG4gIH1cblxuICBpZiAoZ2V0VGFyZ2V0SW5zdEZ1bmMpIHtcbiAgICB2YXIgaW5zdCA9IGdldFRhcmdldEluc3RGdW5jKGRvbUV2ZW50TmFtZSwgdGFyZ2V0SW5zdCk7XG5cbiAgICBpZiAoaW5zdCkge1xuICAgICAgY3JlYXRlQW5kQWNjdW11bGF0ZUNoYW5nZUV2ZW50KGRpc3BhdGNoUXVldWUsIGluc3QsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgaWYgKGhhbmRsZUV2ZW50RnVuYykge1xuICAgIGhhbmRsZUV2ZW50RnVuYyhkb21FdmVudE5hbWUsIHRhcmdldE5vZGUsIHRhcmdldEluc3QpO1xuICB9IC8vIFdoZW4gYmx1cnJpbmcsIHNldCB0aGUgdmFsdWUgYXR0cmlidXRlIGZvciBudW1iZXIgaW5wdXRzXG5cblxuICBpZiAoZG9tRXZlbnROYW1lID09PSAnZm9jdXNvdXQnKSB7XG4gICAgaGFuZGxlQ29udHJvbGxlZElucHV0Qmx1cih0YXJnZXROb2RlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZWdpc3RlckV2ZW50cyQyKCkge1xuICByZWdpc3RlckRpcmVjdEV2ZW50KCdvbk1vdXNlRW50ZXInLCBbJ21vdXNlb3V0JywgJ21vdXNlb3ZlciddKTtcbiAgcmVnaXN0ZXJEaXJlY3RFdmVudCgnb25Nb3VzZUxlYXZlJywgWydtb3VzZW91dCcsICdtb3VzZW92ZXInXSk7XG4gIHJlZ2lzdGVyRGlyZWN0RXZlbnQoJ29uUG9pbnRlckVudGVyJywgWydwb2ludGVyb3V0JywgJ3BvaW50ZXJvdmVyJ10pO1xuICByZWdpc3RlckRpcmVjdEV2ZW50KCdvblBvaW50ZXJMZWF2ZScsIFsncG9pbnRlcm91dCcsICdwb2ludGVyb3ZlciddKTtcbn1cbi8qKlxuICogRm9yIGFsbW9zdCBldmVyeSBpbnRlcmFjdGlvbiB3ZSBjYXJlIGFib3V0LCB0aGVyZSB3aWxsIGJlIGJvdGggYSB0b3AtbGV2ZWxcbiAqIGBtb3VzZW92ZXJgIGFuZCBgbW91c2VvdXRgIGV2ZW50IHRoYXQgb2NjdXJzLiBPbmx5IHVzZSBgbW91c2VvdXRgIHNvIHRoYXRcbiAqIHdlIGRvIG5vdCBleHRyYWN0IGR1cGxpY2F0ZSBldmVudHMuIEhvd2V2ZXIsIG1vdmluZyB0aGUgbW91c2UgaW50byB0aGVcbiAqIGJyb3dzZXIgZnJvbSBvdXRzaWRlIHdpbGwgbm90IGZpcmUgYSBgbW91c2VvdXRgIGV2ZW50LiBJbiB0aGlzIGNhc2UsIHdlIHVzZVxuICogdGhlIGBtb3VzZW92ZXJgIHRvcC1sZXZlbCBldmVudC5cbiAqL1xuXG5cbmZ1bmN0aW9uIGV4dHJhY3RFdmVudHMkMihkaXNwYXRjaFF1ZXVlLCBkb21FdmVudE5hbWUsIHRhcmdldEluc3QsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCwgZXZlbnRTeXN0ZW1GbGFncywgdGFyZ2V0Q29udGFpbmVyKSB7XG4gIHZhciBpc092ZXJFdmVudCA9IGRvbUV2ZW50TmFtZSA9PT0gJ21vdXNlb3ZlcicgfHwgZG9tRXZlbnROYW1lID09PSAncG9pbnRlcm92ZXInO1xuICB2YXIgaXNPdXRFdmVudCA9IGRvbUV2ZW50TmFtZSA9PT0gJ21vdXNlb3V0JyB8fCBkb21FdmVudE5hbWUgPT09ICdwb2ludGVyb3V0JztcblxuICBpZiAoaXNPdmVyRXZlbnQgJiYgKGV2ZW50U3lzdGVtRmxhZ3MgJiBJU19SRVBMQVlFRCkgPT09IDApIHtcbiAgICAvLyBJZiB0aGlzIGlzIGFuIG92ZXIgZXZlbnQgd2l0aCBhIHRhcmdldCwgd2UgbWlnaHQgaGF2ZSBhbHJlYWR5IGRpc3BhdGNoZWRcbiAgICAvLyB0aGUgZXZlbnQgaW4gdGhlIG91dCBldmVudCBvZiB0aGUgb3RoZXIgdGFyZ2V0LiBJZiB0aGlzIGlzIHJlcGxheWVkLFxuICAgIC8vIHRoZW4gaXQncyBiZWNhdXNlIHdlIGNvdWxkbid0IGRpc3BhdGNoIGFnYWluc3QgdGhpcyB0YXJnZXQgcHJldmlvdXNseVxuICAgIC8vIHNvIHdlIGhhdmUgdG8gZG8gaXQgbm93IGluc3RlYWQuXG4gICAgdmFyIHJlbGF0ZWQgPSBuYXRpdmVFdmVudC5yZWxhdGVkVGFyZ2V0IHx8IG5hdGl2ZUV2ZW50LmZyb21FbGVtZW50O1xuXG4gICAgaWYgKHJlbGF0ZWQpIHtcbiAgICAgIC8vIElmIHRoZSByZWxhdGVkIG5vZGUgaXMgbWFuYWdlZCBieSBSZWFjdCwgd2UgY2FuIGFzc3VtZSB0aGF0IHdlIGhhdmVcbiAgICAgIC8vIGFscmVhZHkgZGlzcGF0Y2hlZCB0aGUgY29ycmVzcG9uZGluZyBldmVudHMgZHVyaW5nIGl0cyBtb3VzZW91dC5cbiAgICAgIGlmIChnZXRDbG9zZXN0SW5zdGFuY2VGcm9tTm9kZShyZWxhdGVkKSB8fCBpc0NvbnRhaW5lck1hcmtlZEFzUm9vdChyZWxhdGVkKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKCFpc091dEV2ZW50ICYmICFpc092ZXJFdmVudCkge1xuICAgIC8vIE11c3Qgbm90IGJlIGEgbW91c2Ugb3IgcG9pbnRlciBpbiBvciBvdXQgLSBpZ25vcmluZy5cbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgd2luOyAvLyBUT0RPOiB3aHkgaXMgdGhpcyBudWxsYWJsZSBpbiB0aGUgdHlwZXMgYnV0IHdlIHJlYWQgZnJvbSBpdD9cblxuICBpZiAobmF0aXZlRXZlbnRUYXJnZXQud2luZG93ID09PSBuYXRpdmVFdmVudFRhcmdldCkge1xuICAgIC8vIGBuYXRpdmVFdmVudFRhcmdldGAgaXMgcHJvYmFibHkgYSB3aW5kb3cgb2JqZWN0LlxuICAgIHdpbiA9IG5hdGl2ZUV2ZW50VGFyZ2V0O1xuICB9IGVsc2Uge1xuICAgIC8vIFRPRE86IEZpZ3VyZSBvdXQgd2h5IGBvd25lckRvY3VtZW50YCBpcyBzb21ldGltZXMgdW5kZWZpbmVkIGluIElFOC5cbiAgICB2YXIgZG9jID0gbmF0aXZlRXZlbnRUYXJnZXQub3duZXJEb2N1bWVudDtcblxuICAgIGlmIChkb2MpIHtcbiAgICAgIHdpbiA9IGRvYy5kZWZhdWx0VmlldyB8fCBkb2MucGFyZW50V2luZG93O1xuICAgIH0gZWxzZSB7XG4gICAgICB3aW4gPSB3aW5kb3c7XG4gICAgfVxuICB9XG5cbiAgdmFyIGZyb207XG4gIHZhciB0bztcblxuICBpZiAoaXNPdXRFdmVudCkge1xuICAgIHZhciBfcmVsYXRlZCA9IG5hdGl2ZUV2ZW50LnJlbGF0ZWRUYXJnZXQgfHwgbmF0aXZlRXZlbnQudG9FbGVtZW50O1xuXG4gICAgZnJvbSA9IHRhcmdldEluc3Q7XG4gICAgdG8gPSBfcmVsYXRlZCA/IGdldENsb3Nlc3RJbnN0YW5jZUZyb21Ob2RlKF9yZWxhdGVkKSA6IG51bGw7XG5cbiAgICBpZiAodG8gIT09IG51bGwpIHtcbiAgICAgIHZhciBuZWFyZXN0TW91bnRlZCA9IGdldE5lYXJlc3RNb3VudGVkRmliZXIodG8pO1xuXG4gICAgICBpZiAodG8gIT09IG5lYXJlc3RNb3VudGVkIHx8IHRvLnRhZyAhPT0gSG9zdENvbXBvbmVudCAmJiB0by50YWcgIT09IEhvc3RUZXh0KSB7XG4gICAgICAgIHRvID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gTW92aW5nIHRvIGEgbm9kZSBmcm9tIG91dHNpZGUgdGhlIHdpbmRvdy5cbiAgICBmcm9tID0gbnVsbDtcbiAgICB0byA9IHRhcmdldEluc3Q7XG4gIH1cblxuICBpZiAoZnJvbSA9PT0gdG8pIHtcbiAgICAvLyBOb3RoaW5nIHBlcnRhaW5zIHRvIG91ciBtYW5hZ2VkIGNvbXBvbmVudHMuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdmFyIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY01vdXNlRXZlbnQ7XG4gIHZhciBsZWF2ZUV2ZW50VHlwZSA9ICdvbk1vdXNlTGVhdmUnO1xuICB2YXIgZW50ZXJFdmVudFR5cGUgPSAnb25Nb3VzZUVudGVyJztcbiAgdmFyIGV2ZW50VHlwZVByZWZpeCA9ICdtb3VzZSc7XG5cbiAgaWYgKGRvbUV2ZW50TmFtZSA9PT0gJ3BvaW50ZXJvdXQnIHx8IGRvbUV2ZW50TmFtZSA9PT0gJ3BvaW50ZXJvdmVyJykge1xuICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY1BvaW50ZXJFdmVudDtcbiAgICBsZWF2ZUV2ZW50VHlwZSA9ICdvblBvaW50ZXJMZWF2ZSc7XG4gICAgZW50ZXJFdmVudFR5cGUgPSAnb25Qb2ludGVyRW50ZXInO1xuICAgIGV2ZW50VHlwZVByZWZpeCA9ICdwb2ludGVyJztcbiAgfVxuXG4gIHZhciBmcm9tTm9kZSA9IGZyb20gPT0gbnVsbCA/IHdpbiA6IGdldE5vZGVGcm9tSW5zdGFuY2UoZnJvbSk7XG4gIHZhciB0b05vZGUgPSB0byA9PSBudWxsID8gd2luIDogZ2V0Tm9kZUZyb21JbnN0YW5jZSh0byk7XG4gIHZhciBsZWF2ZSA9IG5ldyBTeW50aGV0aWNFdmVudEN0b3IobGVhdmVFdmVudFR5cGUsIGV2ZW50VHlwZVByZWZpeCArICdsZWF2ZScsIGZyb20sIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCk7XG4gIGxlYXZlLnRhcmdldCA9IGZyb21Ob2RlO1xuICBsZWF2ZS5yZWxhdGVkVGFyZ2V0ID0gdG9Ob2RlO1xuICB2YXIgZW50ZXIgPSBudWxsOyAvLyBXZSBzaG91bGQgb25seSBwcm9jZXNzIHRoaXMgbmF0aXZlRXZlbnQgaWYgd2UgYXJlIHByb2Nlc3NpbmdcbiAgLy8gdGhlIGZpcnN0IGFuY2VzdG9yLiBOZXh0IHRpbWUsIHdlIHdpbGwgaWdub3JlIHRoZSBldmVudC5cblxuICB2YXIgbmF0aXZlVGFyZ2V0SW5zdCA9IGdldENsb3Nlc3RJbnN0YW5jZUZyb21Ob2RlKG5hdGl2ZUV2ZW50VGFyZ2V0KTtcblxuICBpZiAobmF0aXZlVGFyZ2V0SW5zdCA9PT0gdGFyZ2V0SW5zdCkge1xuICAgIHZhciBlbnRlckV2ZW50ID0gbmV3IFN5bnRoZXRpY0V2ZW50Q3RvcihlbnRlckV2ZW50VHlwZSwgZXZlbnRUeXBlUHJlZml4ICsgJ2VudGVyJywgdG8sIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCk7XG4gICAgZW50ZXJFdmVudC50YXJnZXQgPSB0b05vZGU7XG4gICAgZW50ZXJFdmVudC5yZWxhdGVkVGFyZ2V0ID0gZnJvbU5vZGU7XG4gICAgZW50ZXIgPSBlbnRlckV2ZW50O1xuICB9XG5cbiAgYWNjdW11bGF0ZUVudGVyTGVhdmVUd29QaGFzZUxpc3RlbmVycyhkaXNwYXRjaFF1ZXVlLCBsZWF2ZSwgZW50ZXIsIGZyb20sIHRvKTtcbn1cblxuLyoqXG4gKiBpbmxpbmVkIE9iamVjdC5pcyBwb2x5ZmlsbCB0byBhdm9pZCByZXF1aXJpbmcgY29uc3VtZXJzIHNoaXAgdGhlaXIgb3duXG4gKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9PYmplY3QvaXNcbiAqL1xuZnVuY3Rpb24gaXMoeCwgeSkge1xuICByZXR1cm4geCA9PT0geSAmJiAoeCAhPT0gMCB8fCAxIC8geCA9PT0gMSAvIHkpIHx8IHggIT09IHggJiYgeSAhPT0geSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXNlbGYtY29tcGFyZVxuICA7XG59XG5cbnZhciBvYmplY3RJcyA9IHR5cGVvZiBPYmplY3QuaXMgPT09ICdmdW5jdGlvbicgPyBPYmplY3QuaXMgOiBpcztcblxudmFyIGhhc093blByb3BlcnR5JDIgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuLyoqXG4gKiBQZXJmb3JtcyBlcXVhbGl0eSBieSBpdGVyYXRpbmcgdGhyb3VnaCBrZXlzIG9uIGFuIG9iamVjdCBhbmQgcmV0dXJuaW5nIGZhbHNlXG4gKiB3aGVuIGFueSBrZXkgaGFzIHZhbHVlcyB3aGljaCBhcmUgbm90IHN0cmljdGx5IGVxdWFsIGJldHdlZW4gdGhlIGFyZ3VtZW50cy5cbiAqIFJldHVybnMgdHJ1ZSB3aGVuIHRoZSB2YWx1ZXMgb2YgYWxsIGtleXMgYXJlIHN0cmljdGx5IGVxdWFsLlxuICovXG5cbmZ1bmN0aW9uIHNoYWxsb3dFcXVhbChvYmpBLCBvYmpCKSB7XG4gIGlmIChvYmplY3RJcyhvYmpBLCBvYmpCKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBvYmpBICE9PSAnb2JqZWN0JyB8fCBvYmpBID09PSBudWxsIHx8IHR5cGVvZiBvYmpCICE9PSAnb2JqZWN0JyB8fCBvYmpCID09PSBudWxsKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgdmFyIGtleXNBID0gT2JqZWN0LmtleXMob2JqQSk7XG4gIHZhciBrZXlzQiA9IE9iamVjdC5rZXlzKG9iakIpO1xuXG4gIGlmIChrZXlzQS5sZW5ndGggIT09IGtleXNCLmxlbmd0aCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfSAvLyBUZXN0IGZvciBBJ3Mga2V5cyBkaWZmZXJlbnQgZnJvbSBCLlxuXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzQS5sZW5ndGg7IGkrKykge1xuICAgIGlmICghaGFzT3duUHJvcGVydHkkMi5jYWxsKG9iakIsIGtleXNBW2ldKSB8fCAhb2JqZWN0SXMob2JqQVtrZXlzQVtpXV0sIG9iakJba2V5c0FbaV1dKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG4vKipcbiAqIEdpdmVuIGFueSBub2RlIHJldHVybiB0aGUgZmlyc3QgbGVhZiBub2RlIHdpdGhvdXQgY2hpbGRyZW4uXG4gKlxuICogQHBhcmFtIHtET01FbGVtZW50fERPTVRleHROb2RlfSBub2RlXG4gKiBAcmV0dXJuIHtET01FbGVtZW50fERPTVRleHROb2RlfVxuICovXG5cbmZ1bmN0aW9uIGdldExlYWZOb2RlKG5vZGUpIHtcbiAgd2hpbGUgKG5vZGUgJiYgbm9kZS5maXJzdENoaWxkKSB7XG4gICAgbm9kZSA9IG5vZGUuZmlyc3RDaGlsZDtcbiAgfVxuXG4gIHJldHVybiBub2RlO1xufVxuLyoqXG4gKiBHZXQgdGhlIG5leHQgc2libGluZyB3aXRoaW4gYSBjb250YWluZXIuIFRoaXMgd2lsbCB3YWxrIHVwIHRoZVxuICogRE9NIGlmIGEgbm9kZSdzIHNpYmxpbmdzIGhhdmUgYmVlbiBleGhhdXN0ZWQuXG4gKlxuICogQHBhcmFtIHtET01FbGVtZW50fERPTVRleHROb2RlfSBub2RlXG4gKiBAcmV0dXJuIHs/RE9NRWxlbWVudHxET01UZXh0Tm9kZX1cbiAqL1xuXG5cbmZ1bmN0aW9uIGdldFNpYmxpbmdOb2RlKG5vZGUpIHtcbiAgd2hpbGUgKG5vZGUpIHtcbiAgICBpZiAobm9kZS5uZXh0U2libGluZykge1xuICAgICAgcmV0dXJuIG5vZGUubmV4dFNpYmxpbmc7XG4gICAgfVxuXG4gICAgbm9kZSA9IG5vZGUucGFyZW50Tm9kZTtcbiAgfVxufVxuLyoqXG4gKiBHZXQgb2JqZWN0IGRlc2NyaWJpbmcgdGhlIG5vZGVzIHdoaWNoIGNvbnRhaW4gY2hhcmFjdGVycyBhdCBvZmZzZXQuXG4gKlxuICogQHBhcmFtIHtET01FbGVtZW50fERPTVRleHROb2RlfSByb290XG4gKiBAcGFyYW0ge251bWJlcn0gb2Zmc2V0XG4gKiBAcmV0dXJuIHs/b2JqZWN0fVxuICovXG5cblxuZnVuY3Rpb24gZ2V0Tm9kZUZvckNoYXJhY3Rlck9mZnNldChyb290LCBvZmZzZXQpIHtcbiAgdmFyIG5vZGUgPSBnZXRMZWFmTm9kZShyb290KTtcbiAgdmFyIG5vZGVTdGFydCA9IDA7XG4gIHZhciBub2RlRW5kID0gMDtcblxuICB3aGlsZSAobm9kZSkge1xuICAgIGlmIChub2RlLm5vZGVUeXBlID09PSBURVhUX05PREUpIHtcbiAgICAgIG5vZGVFbmQgPSBub2RlU3RhcnQgKyBub2RlLnRleHRDb250ZW50Lmxlbmd0aDtcblxuICAgICAgaWYgKG5vZGVTdGFydCA8PSBvZmZzZXQgJiYgbm9kZUVuZCA+PSBvZmZzZXQpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBub2RlOiBub2RlLFxuICAgICAgICAgIG9mZnNldDogb2Zmc2V0IC0gbm9kZVN0YXJ0XG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIG5vZGVTdGFydCA9IG5vZGVFbmQ7XG4gICAgfVxuXG4gICAgbm9kZSA9IGdldExlYWZOb2RlKGdldFNpYmxpbmdOb2RlKG5vZGUpKTtcbiAgfVxufVxuXG4vKipcbiAqIEBwYXJhbSB7RE9NRWxlbWVudH0gb3V0ZXJOb2RlXG4gKiBAcmV0dXJuIHs/b2JqZWN0fVxuICovXG5cbmZ1bmN0aW9uIGdldE9mZnNldHMob3V0ZXJOb2RlKSB7XG4gIHZhciBvd25lckRvY3VtZW50ID0gb3V0ZXJOb2RlLm93bmVyRG9jdW1lbnQ7XG4gIHZhciB3aW4gPSBvd25lckRvY3VtZW50ICYmIG93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcgfHwgd2luZG93O1xuICB2YXIgc2VsZWN0aW9uID0gd2luLmdldFNlbGVjdGlvbiAmJiB3aW4uZ2V0U2VsZWN0aW9uKCk7XG5cbiAgaWYgKCFzZWxlY3Rpb24gfHwgc2VsZWN0aW9uLnJhbmdlQ291bnQgPT09IDApIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHZhciBhbmNob3JOb2RlID0gc2VsZWN0aW9uLmFuY2hvck5vZGUsXG4gICAgICBhbmNob3JPZmZzZXQgPSBzZWxlY3Rpb24uYW5jaG9yT2Zmc2V0LFxuICAgICAgZm9jdXNOb2RlID0gc2VsZWN0aW9uLmZvY3VzTm9kZSxcbiAgICAgIGZvY3VzT2Zmc2V0ID0gc2VsZWN0aW9uLmZvY3VzT2Zmc2V0OyAvLyBJbiBGaXJlZm94LCBhbmNob3JOb2RlIGFuZCBmb2N1c05vZGUgY2FuIGJlIFwiYW5vbnltb3VzIGRpdnNcIiwgZS5nLiB0aGVcbiAgLy8gdXAvZG93biBidXR0b25zIG9uIGFuIDxpbnB1dCB0eXBlPVwibnVtYmVyXCI+LiBBbm9ueW1vdXMgZGl2cyBkbyBub3Qgc2VlbSB0b1xuICAvLyBleHBvc2UgcHJvcGVydGllcywgdHJpZ2dlcmluZyBhIFwiUGVybWlzc2lvbiBkZW5pZWQgZXJyb3JcIiBpZiBhbnkgb2YgaXRzXG4gIC8vIHByb3BlcnRpZXMgYXJlIGFjY2Vzc2VkLiBUaGUgb25seSBzZWVtaW5nbHkgcG9zc2libGUgd2F5IHRvIGF2b2lkIGVycm9yaW5nXG4gIC8vIGlzIHRvIGFjY2VzcyBhIHByb3BlcnR5IHRoYXQgdHlwaWNhbGx5IHdvcmtzIGZvciBub24tYW5vbnltb3VzIGRpdnMgYW5kXG4gIC8vIGNhdGNoIGFueSBlcnJvciB0aGF0IG1heSBvdGhlcndpc2UgYXJpc2UuIFNlZVxuICAvLyBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg0MjdcblxuICB0cnkge1xuICAgIC8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC1leHByZXNzaW9ucyAqL1xuICAgIGFuY2hvck5vZGUubm9kZVR5cGU7XG4gICAgZm9jdXNOb2RlLm5vZGVUeXBlO1xuICAgIC8qIGVzbGludC1lbmFibGUgbm8tdW51c2VkLWV4cHJlc3Npb25zICovXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiBnZXRNb2Rlcm5PZmZzZXRzRnJvbVBvaW50cyhvdXRlck5vZGUsIGFuY2hvck5vZGUsIGFuY2hvck9mZnNldCwgZm9jdXNOb2RlLCBmb2N1c09mZnNldCk7XG59XG4vKipcbiAqIFJldHVybnMge3N0YXJ0LCBlbmR9IHdoZXJlIGBzdGFydGAgaXMgdGhlIGNoYXJhY3Rlci9jb2RlcG9pbnQgaW5kZXggb2ZcbiAqIChhbmNob3JOb2RlLCBhbmNob3JPZmZzZXQpIHdpdGhpbiB0aGUgdGV4dENvbnRlbnQgb2YgYG91dGVyTm9kZWAsIGFuZFxuICogYGVuZGAgaXMgdGhlIGluZGV4IG9mIChmb2N1c05vZGUsIGZvY3VzT2Zmc2V0KS5cbiAqXG4gKiBSZXR1cm5zIG51bGwgaWYgeW91IHBhc3MgaW4gZ2FyYmFnZSBpbnB1dCBidXQgd2Ugc2hvdWxkIHByb2JhYmx5IGp1c3QgY3Jhc2guXG4gKlxuICogRXhwb3J0ZWQgb25seSBmb3IgdGVzdGluZy5cbiAqL1xuXG5mdW5jdGlvbiBnZXRNb2Rlcm5PZmZzZXRzRnJvbVBvaW50cyhvdXRlck5vZGUsIGFuY2hvck5vZGUsIGFuY2hvck9mZnNldCwgZm9jdXNOb2RlLCBmb2N1c09mZnNldCkge1xuICB2YXIgbGVuZ3RoID0gMDtcbiAgdmFyIHN0YXJ0ID0gLTE7XG4gIHZhciBlbmQgPSAtMTtcbiAgdmFyIGluZGV4V2l0aGluQW5jaG9yID0gMDtcbiAgdmFyIGluZGV4V2l0aGluRm9jdXMgPSAwO1xuICB2YXIgbm9kZSA9IG91dGVyTm9kZTtcbiAgdmFyIHBhcmVudE5vZGUgPSBudWxsO1xuXG4gIG91dGVyOiB3aGlsZSAodHJ1ZSkge1xuICAgIHZhciBuZXh0ID0gbnVsbDtcblxuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICBpZiAobm9kZSA9PT0gYW5jaG9yTm9kZSAmJiAoYW5jaG9yT2Zmc2V0ID09PSAwIHx8IG5vZGUubm9kZVR5cGUgPT09IFRFWFRfTk9ERSkpIHtcbiAgICAgICAgc3RhcnQgPSBsZW5ndGggKyBhbmNob3JPZmZzZXQ7XG4gICAgICB9XG5cbiAgICAgIGlmIChub2RlID09PSBmb2N1c05vZGUgJiYgKGZvY3VzT2Zmc2V0ID09PSAwIHx8IG5vZGUubm9kZVR5cGUgPT09IFRFWFRfTk9ERSkpIHtcbiAgICAgICAgZW5kID0gbGVuZ3RoICsgZm9jdXNPZmZzZXQ7XG4gICAgICB9XG5cbiAgICAgIGlmIChub2RlLm5vZGVUeXBlID09PSBURVhUX05PREUpIHtcbiAgICAgICAgbGVuZ3RoICs9IG5vZGUubm9kZVZhbHVlLmxlbmd0aDtcbiAgICAgIH1cblxuICAgICAgaWYgKChuZXh0ID0gbm9kZS5maXJzdENoaWxkKSA9PT0gbnVsbCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH0gLy8gTW92aW5nIGZyb20gYG5vZGVgIHRvIGl0cyBmaXJzdCBjaGlsZCBgbmV4dGAuXG5cblxuICAgICAgcGFyZW50Tm9kZSA9IG5vZGU7XG4gICAgICBub2RlID0gbmV4dDtcbiAgICB9XG5cbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgaWYgKG5vZGUgPT09IG91dGVyTm9kZSkge1xuICAgICAgICAvLyBJZiBgb3V0ZXJOb2RlYCBoYXMgY2hpbGRyZW4sIHRoaXMgaXMgYWx3YXlzIHRoZSBzZWNvbmQgdGltZSB2aXNpdGluZ1xuICAgICAgICAvLyBpdC4gSWYgaXQgaGFzIG5vIGNoaWxkcmVuLCB0aGlzIGlzIHN0aWxsIHRoZSBmaXJzdCBsb29wLCBhbmQgdGhlIG9ubHlcbiAgICAgICAgLy8gdmFsaWQgc2VsZWN0aW9uIGlzIGFuY2hvck5vZGUgYW5kIGZvY3VzTm9kZSBib3RoIGVxdWFsIHRvIHRoaXMgbm9kZVxuICAgICAgICAvLyBhbmQgYm90aCBvZmZzZXRzIDAsIGluIHdoaWNoIGNhc2Ugd2Ugd2lsbCBoYXZlIGhhbmRsZWQgYWJvdmUuXG4gICAgICAgIGJyZWFrIG91dGVyO1xuICAgICAgfVxuXG4gICAgICBpZiAocGFyZW50Tm9kZSA9PT0gYW5jaG9yTm9kZSAmJiArK2luZGV4V2l0aGluQW5jaG9yID09PSBhbmNob3JPZmZzZXQpIHtcbiAgICAgICAgc3RhcnQgPSBsZW5ndGg7XG4gICAgICB9XG5cbiAgICAgIGlmIChwYXJlbnROb2RlID09PSBmb2N1c05vZGUgJiYgKytpbmRleFdpdGhpbkZvY3VzID09PSBmb2N1c09mZnNldCkge1xuICAgICAgICBlbmQgPSBsZW5ndGg7XG4gICAgICB9XG5cbiAgICAgIGlmICgobmV4dCA9IG5vZGUubmV4dFNpYmxpbmcpICE9PSBudWxsKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBub2RlID0gcGFyZW50Tm9kZTtcbiAgICAgIHBhcmVudE5vZGUgPSBub2RlLnBhcmVudE5vZGU7XG4gICAgfSAvLyBNb3ZpbmcgZnJvbSBgbm9kZWAgdG8gaXRzIG5leHQgc2libGluZyBgbmV4dGAuXG5cblxuICAgIG5vZGUgPSBuZXh0O1xuICB9XG5cbiAgaWYgKHN0YXJ0ID09PSAtMSB8fCBlbmQgPT09IC0xKSB7XG4gICAgLy8gVGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuLiAoV291bGQgaGFwcGVuIGlmIHRoZSBhbmNob3IvZm9jdXMgbm9kZXMgYXJlbid0XG4gICAgLy8gYWN0dWFsbHkgaW5zaWRlIHRoZSBwYXNzZWQtaW4gbm9kZS4pXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHN0YXJ0OiBzdGFydCxcbiAgICBlbmQ6IGVuZFxuICB9O1xufVxuLyoqXG4gKiBJbiBtb2Rlcm4gbm9uLUlFIGJyb3dzZXJzLCB3ZSBjYW4gc3VwcG9ydCBib3RoIGZvcndhcmQgYW5kIGJhY2t3YXJkXG4gKiBzZWxlY3Rpb25zLlxuICpcbiAqIE5vdGU6IElFMTArIHN1cHBvcnRzIHRoZSBTZWxlY3Rpb24gb2JqZWN0LCBidXQgaXQgZG9lcyBub3Qgc3VwcG9ydFxuICogdGhlIGBleHRlbmRgIG1ldGhvZCwgd2hpY2ggbWVhbnMgdGhhdCBldmVuIGluIG1vZGVybiBJRSwgaXQncyBub3QgcG9zc2libGVcbiAqIHRvIHByb2dyYW1tYXRpY2FsbHkgY3JlYXRlIGEgYmFja3dhcmQgc2VsZWN0aW9uLiBUaHVzLCBmb3IgYWxsIElFXG4gKiB2ZXJzaW9ucywgd2UgdXNlIHRoZSBvbGQgSUUgQVBJIHRvIGNyZWF0ZSBvdXIgc2VsZWN0aW9ucy5cbiAqXG4gKiBAcGFyYW0ge0RPTUVsZW1lbnR8RE9NVGV4dE5vZGV9IG5vZGVcbiAqIEBwYXJhbSB7b2JqZWN0fSBvZmZzZXRzXG4gKi9cblxuZnVuY3Rpb24gc2V0T2Zmc2V0cyhub2RlLCBvZmZzZXRzKSB7XG4gIHZhciBkb2MgPSBub2RlLm93bmVyRG9jdW1lbnQgfHwgZG9jdW1lbnQ7XG4gIHZhciB3aW4gPSBkb2MgJiYgZG9jLmRlZmF1bHRWaWV3IHx8IHdpbmRvdzsgLy8gRWRnZSBmYWlscyB3aXRoIFwiT2JqZWN0IGV4cGVjdGVkXCIgaW4gc29tZSBzY2VuYXJpb3MuXG4gIC8vIChGb3IgaW5zdGFuY2U6IFRpbnlNQ0UgZWRpdG9yIHVzZWQgaW4gYSBsaXN0IGNvbXBvbmVudCB0aGF0IHN1cHBvcnRzIHBhc3RpbmcgdG8gYWRkIG1vcmUsXG4gIC8vIGZhaWxzIHdoZW4gcGFzdGluZyAxMDArIGl0ZW1zKVxuXG4gIGlmICghd2luLmdldFNlbGVjdGlvbikge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciBzZWxlY3Rpb24gPSB3aW4uZ2V0U2VsZWN0aW9uKCk7XG4gIHZhciBsZW5ndGggPSBub2RlLnRleHRDb250ZW50Lmxlbmd0aDtcbiAgdmFyIHN0YXJ0ID0gTWF0aC5taW4ob2Zmc2V0cy5zdGFydCwgbGVuZ3RoKTtcbiAgdmFyIGVuZCA9IG9mZnNldHMuZW5kID09PSB1bmRlZmluZWQgPyBzdGFydCA6IE1hdGgubWluKG9mZnNldHMuZW5kLCBsZW5ndGgpOyAvLyBJRSAxMSB1c2VzIG1vZGVybiBzZWxlY3Rpb24sIGJ1dCBkb2Vzbid0IHN1cHBvcnQgdGhlIGV4dGVuZCBtZXRob2QuXG4gIC8vIEZsaXAgYmFja3dhcmQgc2VsZWN0aW9ucywgc28gd2UgY2FuIHNldCB3aXRoIGEgc2luZ2xlIHJhbmdlLlxuXG4gIGlmICghc2VsZWN0aW9uLmV4dGVuZCAmJiBzdGFydCA+IGVuZCkge1xuICAgIHZhciB0ZW1wID0gZW5kO1xuICAgIGVuZCA9IHN0YXJ0O1xuICAgIHN0YXJ0ID0gdGVtcDtcbiAgfVxuXG4gIHZhciBzdGFydE1hcmtlciA9IGdldE5vZGVGb3JDaGFyYWN0ZXJPZmZzZXQobm9kZSwgc3RhcnQpO1xuICB2YXIgZW5kTWFya2VyID0gZ2V0Tm9kZUZvckNoYXJhY3Rlck9mZnNldChub2RlLCBlbmQpO1xuXG4gIGlmIChzdGFydE1hcmtlciAmJiBlbmRNYXJrZXIpIHtcbiAgICBpZiAoc2VsZWN0aW9uLnJhbmdlQ291bnQgPT09IDEgJiYgc2VsZWN0aW9uLmFuY2hvck5vZGUgPT09IHN0YXJ0TWFya2VyLm5vZGUgJiYgc2VsZWN0aW9uLmFuY2hvck9mZnNldCA9PT0gc3RhcnRNYXJrZXIub2Zmc2V0ICYmIHNlbGVjdGlvbi5mb2N1c05vZGUgPT09IGVuZE1hcmtlci5ub2RlICYmIHNlbGVjdGlvbi5mb2N1c09mZnNldCA9PT0gZW5kTWFya2VyLm9mZnNldCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciByYW5nZSA9IGRvYy5jcmVhdGVSYW5nZSgpO1xuICAgIHJhbmdlLnNldFN0YXJ0KHN0YXJ0TWFya2VyLm5vZGUsIHN0YXJ0TWFya2VyLm9mZnNldCk7XG4gICAgc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpO1xuXG4gICAgaWYgKHN0YXJ0ID4gZW5kKSB7XG4gICAgICBzZWxlY3Rpb24uYWRkUmFuZ2UocmFuZ2UpO1xuICAgICAgc2VsZWN0aW9uLmV4dGVuZChlbmRNYXJrZXIubm9kZSwgZW5kTWFya2VyLm9mZnNldCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJhbmdlLnNldEVuZChlbmRNYXJrZXIubm9kZSwgZW5kTWFya2VyLm9mZnNldCk7XG4gICAgICBzZWxlY3Rpb24uYWRkUmFuZ2UocmFuZ2UpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBpc1RleHROb2RlKG5vZGUpIHtcbiAgcmV0dXJuIG5vZGUgJiYgbm9kZS5ub2RlVHlwZSA9PT0gVEVYVF9OT0RFO1xufVxuXG5mdW5jdGlvbiBjb250YWluc05vZGUob3V0ZXJOb2RlLCBpbm5lck5vZGUpIHtcbiAgaWYgKCFvdXRlck5vZGUgfHwgIWlubmVyTm9kZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfSBlbHNlIGlmIChvdXRlck5vZGUgPT09IGlubmVyTm9kZSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9IGVsc2UgaWYgKGlzVGV4dE5vZGUob3V0ZXJOb2RlKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfSBlbHNlIGlmIChpc1RleHROb2RlKGlubmVyTm9kZSkpIHtcbiAgICByZXR1cm4gY29udGFpbnNOb2RlKG91dGVyTm9kZSwgaW5uZXJOb2RlLnBhcmVudE5vZGUpO1xuICB9IGVsc2UgaWYgKCdjb250YWlucycgaW4gb3V0ZXJOb2RlKSB7XG4gICAgcmV0dXJuIG91dGVyTm9kZS5jb250YWlucyhpbm5lck5vZGUpO1xuICB9IGVsc2UgaWYgKG91dGVyTm9kZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbikge1xuICAgIHJldHVybiAhIShvdXRlck5vZGUuY29tcGFyZURvY3VtZW50UG9zaXRpb24oaW5uZXJOb2RlKSAmIDE2KTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNJbkRvY3VtZW50KG5vZGUpIHtcbiAgcmV0dXJuIG5vZGUgJiYgbm9kZS5vd25lckRvY3VtZW50ICYmIGNvbnRhaW5zTm9kZShub2RlLm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCBub2RlKTtcbn1cblxuZnVuY3Rpb24gaXNTYW1lT3JpZ2luRnJhbWUoaWZyYW1lKSB7XG4gIHRyeSB7XG4gICAgLy8gQWNjZXNzaW5nIHRoZSBjb250ZW50RG9jdW1lbnQgb2YgYSBIVE1MSWZyYW1lRWxlbWVudCBjYW4gY2F1c2UgdGhlIGJyb3dzZXJcbiAgICAvLyB0byB0aHJvdywgZS5nLiBpZiBpdCBoYXMgYSBjcm9zcy1vcmlnaW4gc3JjIGF0dHJpYnV0ZS5cbiAgICAvLyBTYWZhcmkgd2lsbCBzaG93IGFuIGVycm9yIGluIHRoZSBjb25zb2xlIHdoZW4gdGhlIGFjY2VzcyByZXN1bHRzIGluIFwiQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luXCIuIGUuZzpcbiAgICAvLyBpZnJhbWUuY29udGVudERvY3VtZW50LmRlZmF1bHRWaWV3O1xuICAgIC8vIEEgc2FmZXR5IHdheSBpcyB0byBhY2Nlc3Mgb25lIG9mIHRoZSBjcm9zcyBvcmlnaW4gcHJvcGVydGllczogV2luZG93IG9yIExvY2F0aW9uXG4gICAgLy8gV2hpY2ggbWlnaHQgcmVzdWx0IGluIFwiU2VjdXJpdHlFcnJvclwiIERPTSBFeGNlcHRpb24gYW5kIGl0IGlzIGNvbXBhdGlibGUgdG8gU2FmYXJpLlxuICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2Jyb3dzZXJzLmh0bWwjaW50ZWdyYXRpb24td2l0aC1pZGxcbiAgICByZXR1cm4gdHlwZW9mIGlmcmFtZS5jb250ZW50V2luZG93LmxvY2F0aW9uLmhyZWYgPT09ICdzdHJpbmcnO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0QWN0aXZlRWxlbWVudERlZXAoKSB7XG4gIHZhciB3aW4gPSB3aW5kb3c7XG4gIHZhciBlbGVtZW50ID0gZ2V0QWN0aXZlRWxlbWVudCgpO1xuXG4gIHdoaWxlIChlbGVtZW50IGluc3RhbmNlb2Ygd2luLkhUTUxJRnJhbWVFbGVtZW50KSB7XG4gICAgaWYgKGlzU2FtZU9yaWdpbkZyYW1lKGVsZW1lbnQpKSB7XG4gICAgICB3aW4gPSBlbGVtZW50LmNvbnRlbnRXaW5kb3c7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBlbGVtZW50O1xuICAgIH1cblxuICAgIGVsZW1lbnQgPSBnZXRBY3RpdmVFbGVtZW50KHdpbi5kb2N1bWVudCk7XG4gIH1cblxuICByZXR1cm4gZWxlbWVudDtcbn1cbi8qKlxuICogQFJlYWN0SW5wdXRTZWxlY3Rpb246IFJlYWN0IGlucHV0IHNlbGVjdGlvbiBtb2R1bGUuIEJhc2VkIG9uIFNlbGVjdGlvbi5qcyxcbiAqIGJ1dCBtb2RpZmllZCB0byBiZSBzdWl0YWJsZSBmb3IgcmVhY3QgYW5kIGhhcyBhIGNvdXBsZSBvZiBidWcgZml4ZXMgKGRvZXNuJ3RcbiAqIGFzc3VtZSBidXR0b25zIGhhdmUgcmFuZ2Ugc2VsZWN0aW9ucyBhbGxvd2VkKS5cbiAqIElucHV0IHNlbGVjdGlvbiBtb2R1bGUgZm9yIFJlYWN0LlxuICovXG5cbi8qKlxuICogQGhhc1NlbGVjdGlvbkNhcGFiaWxpdGllczogd2UgZ2V0IHRoZSBlbGVtZW50IHR5cGVzIHRoYXQgc3VwcG9ydCBzZWxlY3Rpb25cbiAqIGZyb20gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jZG8tbm90LWFwcGx5LCBsb29raW5nIGF0IGBzZWxlY3Rpb25TdGFydGBcbiAqIGFuZCBgc2VsZWN0aW9uRW5kYCByb3dzLlxuICovXG5cblxuZnVuY3Rpb24gaGFzU2VsZWN0aW9uQ2FwYWJpbGl0aWVzKGVsZW0pIHtcbiAgdmFyIG5vZGVOYW1lID0gZWxlbSAmJiBlbGVtLm5vZGVOYW1lICYmIGVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgcmV0dXJuIG5vZGVOYW1lICYmIChub2RlTmFtZSA9PT0gJ2lucHV0JyAmJiAoZWxlbS50eXBlID09PSAndGV4dCcgfHwgZWxlbS50eXBlID09PSAnc2VhcmNoJyB8fCBlbGVtLnR5cGUgPT09ICd0ZWwnIHx8IGVsZW0udHlwZSA9PT0gJ3VybCcgfHwgZWxlbS50eXBlID09PSAncGFzc3dvcmQnKSB8fCBub2RlTmFtZSA9PT0gJ3RleHRhcmVhJyB8fCBlbGVtLmNvbnRlbnRFZGl0YWJsZSA9PT0gJ3RydWUnKTtcbn1cbmZ1bmN0aW9uIGdldFNlbGVjdGlvbkluZm9ybWF0aW9uKCkge1xuICB2YXIgZm9jdXNlZEVsZW0gPSBnZXRBY3RpdmVFbGVtZW50RGVlcCgpO1xuICByZXR1cm4ge1xuICAgIGZvY3VzZWRFbGVtOiBmb2N1c2VkRWxlbSxcbiAgICBzZWxlY3Rpb25SYW5nZTogaGFzU2VsZWN0aW9uQ2FwYWJpbGl0aWVzKGZvY3VzZWRFbGVtKSA/IGdldFNlbGVjdGlvbihmb2N1c2VkRWxlbSkgOiBudWxsXG4gIH07XG59XG4vKipcbiAqIEByZXN0b3JlU2VsZWN0aW9uOiBJZiBhbnkgc2VsZWN0aW9uIGluZm9ybWF0aW9uIHdhcyBwb3RlbnRpYWxseSBsb3N0LFxuICogcmVzdG9yZSBpdC4gVGhpcyBpcyB1c2VmdWwgd2hlbiBwZXJmb3JtaW5nIG9wZXJhdGlvbnMgdGhhdCBjb3VsZCByZW1vdmUgZG9tXG4gKiBub2RlcyBhbmQgcGxhY2UgdGhlbSBiYWNrIGluLCByZXN1bHRpbmcgaW4gZm9jdXMgYmVpbmcgbG9zdC5cbiAqL1xuXG5mdW5jdGlvbiByZXN0b3JlU2VsZWN0aW9uKHByaW9yU2VsZWN0aW9uSW5mb3JtYXRpb24pIHtcbiAgdmFyIGN1ckZvY3VzZWRFbGVtID0gZ2V0QWN0aXZlRWxlbWVudERlZXAoKTtcbiAgdmFyIHByaW9yRm9jdXNlZEVsZW0gPSBwcmlvclNlbGVjdGlvbkluZm9ybWF0aW9uLmZvY3VzZWRFbGVtO1xuICB2YXIgcHJpb3JTZWxlY3Rpb25SYW5nZSA9IHByaW9yU2VsZWN0aW9uSW5mb3JtYXRpb24uc2VsZWN0aW9uUmFuZ2U7XG5cbiAgaWYgKGN1ckZvY3VzZWRFbGVtICE9PSBwcmlvckZvY3VzZWRFbGVtICYmIGlzSW5Eb2N1bWVudChwcmlvckZvY3VzZWRFbGVtKSkge1xuICAgIGlmIChwcmlvclNlbGVjdGlvblJhbmdlICE9PSBudWxsICYmIGhhc1NlbGVjdGlvbkNhcGFiaWxpdGllcyhwcmlvckZvY3VzZWRFbGVtKSkge1xuICAgICAgc2V0U2VsZWN0aW9uKHByaW9yRm9jdXNlZEVsZW0sIHByaW9yU2VsZWN0aW9uUmFuZ2UpO1xuICAgIH0gLy8gRm9jdXNpbmcgYSBub2RlIGNhbiBjaGFuZ2UgdGhlIHNjcm9sbCBwb3NpdGlvbiwgd2hpY2ggaXMgdW5kZXNpcmFibGVcblxuXG4gICAgdmFyIGFuY2VzdG9ycyA9IFtdO1xuICAgIHZhciBhbmNlc3RvciA9IHByaW9yRm9jdXNlZEVsZW07XG5cbiAgICB3aGlsZSAoYW5jZXN0b3IgPSBhbmNlc3Rvci5wYXJlbnROb2RlKSB7XG4gICAgICBpZiAoYW5jZXN0b3Iubm9kZVR5cGUgPT09IEVMRU1FTlRfTk9ERSkge1xuICAgICAgICBhbmNlc3RvcnMucHVzaCh7XG4gICAgICAgICAgZWxlbWVudDogYW5jZXN0b3IsXG4gICAgICAgICAgbGVmdDogYW5jZXN0b3Iuc2Nyb2xsTGVmdCxcbiAgICAgICAgICB0b3A6IGFuY2VzdG9yLnNjcm9sbFRvcFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHByaW9yRm9jdXNlZEVsZW0uZm9jdXMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHByaW9yRm9jdXNlZEVsZW0uZm9jdXMoKTtcbiAgICB9XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFuY2VzdG9ycy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGluZm8gPSBhbmNlc3RvcnNbaV07XG4gICAgICBpbmZvLmVsZW1lbnQuc2Nyb2xsTGVmdCA9IGluZm8ubGVmdDtcbiAgICAgIGluZm8uZWxlbWVudC5zY3JvbGxUb3AgPSBpbmZvLnRvcDtcbiAgICB9XG4gIH1cbn1cbi8qKlxuICogQGdldFNlbGVjdGlvbjogR2V0cyB0aGUgc2VsZWN0aW9uIGJvdW5kcyBvZiBhIGZvY3VzZWQgdGV4dGFyZWEsIGlucHV0IG9yXG4gKiBjb250ZW50RWRpdGFibGUgbm9kZS5cbiAqIC1AaW5wdXQ6IExvb2sgdXAgc2VsZWN0aW9uIGJvdW5kcyBvZiB0aGlzIGlucHV0XG4gKiAtQHJldHVybiB7c3RhcnQ6IHNlbGVjdGlvblN0YXJ0LCBlbmQ6IHNlbGVjdGlvbkVuZH1cbiAqL1xuXG5mdW5jdGlvbiBnZXRTZWxlY3Rpb24oaW5wdXQpIHtcbiAgdmFyIHNlbGVjdGlvbjtcblxuICBpZiAoJ3NlbGVjdGlvblN0YXJ0JyBpbiBpbnB1dCkge1xuICAgIC8vIE1vZGVybiBicm93c2VyIHdpdGggaW5wdXQgb3IgdGV4dGFyZWEuXG4gICAgc2VsZWN0aW9uID0ge1xuICAgICAgc3RhcnQ6IGlucHV0LnNlbGVjdGlvblN0YXJ0LFxuICAgICAgZW5kOiBpbnB1dC5zZWxlY3Rpb25FbmRcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIC8vIENvbnRlbnQgZWRpdGFibGUgb3Igb2xkIElFIHRleHRhcmVhLlxuICAgIHNlbGVjdGlvbiA9IGdldE9mZnNldHMoaW5wdXQpO1xuICB9XG5cbiAgcmV0dXJuIHNlbGVjdGlvbiB8fCB7XG4gICAgc3RhcnQ6IDAsXG4gICAgZW5kOiAwXG4gIH07XG59XG4vKipcbiAqIEBzZXRTZWxlY3Rpb246IFNldHMgdGhlIHNlbGVjdGlvbiBib3VuZHMgb2YgYSB0ZXh0YXJlYSBvciBpbnB1dCBhbmQgZm9jdXNlc1xuICogdGhlIGlucHV0LlxuICogLUBpbnB1dCAgICAgU2V0IHNlbGVjdGlvbiBib3VuZHMgb2YgdGhpcyBpbnB1dCBvciB0ZXh0YXJlYVxuICogLUBvZmZzZXRzICAgT2JqZWN0IG9mIHNhbWUgZm9ybSB0aGF0IGlzIHJldHVybmVkIGZyb20gZ2V0KlxuICovXG5cbmZ1bmN0aW9uIHNldFNlbGVjdGlvbihpbnB1dCwgb2Zmc2V0cykge1xuICB2YXIgc3RhcnQgPSBvZmZzZXRzLnN0YXJ0O1xuICB2YXIgZW5kID0gb2Zmc2V0cy5lbmQ7XG5cbiAgaWYgKGVuZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZW5kID0gc3RhcnQ7XG4gIH1cblxuICBpZiAoJ3NlbGVjdGlvblN0YXJ0JyBpbiBpbnB1dCkge1xuICAgIGlucHV0LnNlbGVjdGlvblN0YXJ0ID0gc3RhcnQ7XG4gICAgaW5wdXQuc2VsZWN0aW9uRW5kID0gTWF0aC5taW4oZW5kLCBpbnB1dC52YWx1ZS5sZW5ndGgpO1xuICB9IGVsc2Uge1xuICAgIHNldE9mZnNldHMoaW5wdXQsIG9mZnNldHMpO1xuICB9XG59XG5cbnZhciBza2lwU2VsZWN0aW9uQ2hhbmdlRXZlbnQgPSBjYW5Vc2VET00gJiYgJ2RvY3VtZW50TW9kZScgaW4gZG9jdW1lbnQgJiYgZG9jdW1lbnQuZG9jdW1lbnRNb2RlIDw9IDExO1xuXG5mdW5jdGlvbiByZWdpc3RlckV2ZW50cyQzKCkge1xuICByZWdpc3RlclR3b1BoYXNlRXZlbnQoJ29uU2VsZWN0JywgWydmb2N1c291dCcsICdjb250ZXh0bWVudScsICdkcmFnZW5kJywgJ2ZvY3VzaW4nLCAna2V5ZG93bicsICdrZXl1cCcsICdtb3VzZWRvd24nLCAnbW91c2V1cCcsICdzZWxlY3Rpb25jaGFuZ2UnXSk7XG59XG5cbnZhciBhY3RpdmVFbGVtZW50JDEgPSBudWxsO1xudmFyIGFjdGl2ZUVsZW1lbnRJbnN0JDEgPSBudWxsO1xudmFyIGxhc3RTZWxlY3Rpb24gPSBudWxsO1xudmFyIG1vdXNlRG93biA9IGZhbHNlO1xuLyoqXG4gKiBHZXQgYW4gb2JqZWN0IHdoaWNoIGlzIGEgdW5pcXVlIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBjdXJyZW50IHNlbGVjdGlvbi5cbiAqXG4gKiBUaGUgcmV0dXJuIHZhbHVlIHdpbGwgbm90IGJlIGNvbnNpc3RlbnQgYWNyb3NzIG5vZGVzIG9yIGJyb3dzZXJzLCBidXRcbiAqIHR3byBpZGVudGljYWwgc2VsZWN0aW9ucyBvbiB0aGUgc2FtZSBub2RlIHdpbGwgcmV0dXJuIGlkZW50aWNhbCBvYmplY3RzLlxuICovXG5cbmZ1bmN0aW9uIGdldFNlbGVjdGlvbiQxKG5vZGUpIHtcbiAgaWYgKCdzZWxlY3Rpb25TdGFydCcgaW4gbm9kZSAmJiBoYXNTZWxlY3Rpb25DYXBhYmlsaXRpZXMobm9kZSkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc3RhcnQ6IG5vZGUuc2VsZWN0aW9uU3RhcnQsXG4gICAgICBlbmQ6IG5vZGUuc2VsZWN0aW9uRW5kXG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgd2luID0gbm9kZS5vd25lckRvY3VtZW50ICYmIG5vZGUub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldyB8fCB3aW5kb3c7XG4gICAgdmFyIHNlbGVjdGlvbiA9IHdpbi5nZXRTZWxlY3Rpb24oKTtcbiAgICByZXR1cm4ge1xuICAgICAgYW5jaG9yTm9kZTogc2VsZWN0aW9uLmFuY2hvck5vZGUsXG4gICAgICBhbmNob3JPZmZzZXQ6IHNlbGVjdGlvbi5hbmNob3JPZmZzZXQsXG4gICAgICBmb2N1c05vZGU6IHNlbGVjdGlvbi5mb2N1c05vZGUsXG4gICAgICBmb2N1c09mZnNldDogc2VsZWN0aW9uLmZvY3VzT2Zmc2V0XG4gICAgfTtcbiAgfVxufVxuLyoqXG4gKiBHZXQgZG9jdW1lbnQgYXNzb2NpYXRlZCB3aXRoIHRoZSBldmVudCB0YXJnZXQuXG4gKi9cblxuXG5mdW5jdGlvbiBnZXRFdmVudFRhcmdldERvY3VtZW50KGV2ZW50VGFyZ2V0KSB7XG4gIHJldHVybiBldmVudFRhcmdldC53aW5kb3cgPT09IGV2ZW50VGFyZ2V0ID8gZXZlbnRUYXJnZXQuZG9jdW1lbnQgOiBldmVudFRhcmdldC5ub2RlVHlwZSA9PT0gRE9DVU1FTlRfTk9ERSA/IGV2ZW50VGFyZ2V0IDogZXZlbnRUYXJnZXQub3duZXJEb2N1bWVudDtcbn1cbi8qKlxuICogUG9sbCBzZWxlY3Rpb24gdG8gc2VlIHdoZXRoZXIgaXQncyBjaGFuZ2VkLlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSBuYXRpdmVFdmVudFxuICogQHBhcmFtIHtvYmplY3R9IG5hdGl2ZUV2ZW50VGFyZ2V0XG4gKiBAcmV0dXJuIHs/U3ludGhldGljRXZlbnR9XG4gKi9cblxuXG5mdW5jdGlvbiBjb25zdHJ1Y3RTZWxlY3RFdmVudChkaXNwYXRjaFF1ZXVlLCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpIHtcbiAgLy8gRW5zdXJlIHdlIGhhdmUgdGhlIHJpZ2h0IGVsZW1lbnQsIGFuZCB0aGF0IHRoZSB1c2VyIGlzIG5vdCBkcmFnZ2luZyBhXG4gIC8vIHNlbGVjdGlvbiAodGhpcyBtYXRjaGVzIG5hdGl2ZSBgc2VsZWN0YCBldmVudCBiZWhhdmlvcikuIEluIEhUTUw1LCBzZWxlY3RcbiAgLy8gZmlyZXMgb25seSBvbiBpbnB1dCBhbmQgdGV4dGFyZWEgdGh1cyBpZiB0aGVyZSdzIG5vIGZvY3VzZWQgZWxlbWVudCB3ZVxuICAvLyB3b24ndCBkaXNwYXRjaC5cbiAgdmFyIGRvYyA9IGdldEV2ZW50VGFyZ2V0RG9jdW1lbnQobmF0aXZlRXZlbnRUYXJnZXQpO1xuXG4gIGlmIChtb3VzZURvd24gfHwgYWN0aXZlRWxlbWVudCQxID09IG51bGwgfHwgYWN0aXZlRWxlbWVudCQxICE9PSBnZXRBY3RpdmVFbGVtZW50KGRvYykpIHtcbiAgICByZXR1cm47XG4gIH0gLy8gT25seSBmaXJlIHdoZW4gc2VsZWN0aW9uIGhhcyBhY3R1YWxseSBjaGFuZ2VkLlxuXG5cbiAgdmFyIGN1cnJlbnRTZWxlY3Rpb24gPSBnZXRTZWxlY3Rpb24kMShhY3RpdmVFbGVtZW50JDEpO1xuXG4gIGlmICghbGFzdFNlbGVjdGlvbiB8fCAhc2hhbGxvd0VxdWFsKGxhc3RTZWxlY3Rpb24sIGN1cnJlbnRTZWxlY3Rpb24pKSB7XG4gICAgbGFzdFNlbGVjdGlvbiA9IGN1cnJlbnRTZWxlY3Rpb247XG4gICAgdmFyIGxpc3RlbmVycyA9IGFjY3VtdWxhdGVUd29QaGFzZUxpc3RlbmVycyhhY3RpdmVFbGVtZW50SW5zdCQxLCAnb25TZWxlY3QnKTtcblxuICAgIGlmIChsaXN0ZW5lcnMubGVuZ3RoID4gMCkge1xuICAgICAgdmFyIGV2ZW50ID0gbmV3IFN5bnRoZXRpY0V2ZW50KCdvblNlbGVjdCcsICdzZWxlY3QnLCBudWxsLCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpO1xuICAgICAgZGlzcGF0Y2hRdWV1ZS5wdXNoKHtcbiAgICAgICAgZXZlbnQ6IGV2ZW50LFxuICAgICAgICBsaXN0ZW5lcnM6IGxpc3RlbmVyc1xuICAgICAgfSk7XG4gICAgICBldmVudC50YXJnZXQgPSBhY3RpdmVFbGVtZW50JDE7XG4gICAgfVxuICB9XG59XG4vKipcbiAqIFRoaXMgcGx1Z2luIGNyZWF0ZXMgYW4gYG9uU2VsZWN0YCBldmVudCB0aGF0IG5vcm1hbGl6ZXMgc2VsZWN0IGV2ZW50c1xuICogYWNyb3NzIGZvcm0gZWxlbWVudHMuXG4gKlxuICogU3VwcG9ydGVkIGVsZW1lbnRzIGFyZTpcbiAqIC0gaW5wdXQgKHNlZSBgaXNUZXh0SW5wdXRFbGVtZW50YClcbiAqIC0gdGV4dGFyZWFcbiAqIC0gY29udGVudEVkaXRhYmxlXG4gKlxuICogVGhpcyBkaWZmZXJzIGZyb20gbmF0aXZlIGJyb3dzZXIgaW1wbGVtZW50YXRpb25zIGluIHRoZSBmb2xsb3dpbmcgd2F5czpcbiAqIC0gRmlyZXMgb24gY29udGVudEVkaXRhYmxlIGZpZWxkcyBhcyB3ZWxsIGFzIGlucHV0cy5cbiAqIC0gRmlyZXMgZm9yIGNvbGxhcHNlZCBzZWxlY3Rpb24uXG4gKiAtIEZpcmVzIGFmdGVyIHVzZXIgaW5wdXQuXG4gKi9cblxuXG5mdW5jdGlvbiBleHRyYWN0RXZlbnRzJDMoZGlzcGF0Y2hRdWV1ZSwgZG9tRXZlbnROYW1lLCB0YXJnZXRJbnN0LCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQsIGV2ZW50U3lzdGVtRmxhZ3MsIHRhcmdldENvbnRhaW5lcikge1xuXG4gIHZhciB0YXJnZXROb2RlID0gdGFyZ2V0SW5zdCA/IGdldE5vZGVGcm9tSW5zdGFuY2UodGFyZ2V0SW5zdCkgOiB3aW5kb3c7XG5cbiAgc3dpdGNoIChkb21FdmVudE5hbWUpIHtcbiAgICAvLyBUcmFjayB0aGUgaW5wdXQgbm9kZSB0aGF0IGhhcyBmb2N1cy5cbiAgICBjYXNlICdmb2N1c2luJzpcbiAgICAgIGlmIChpc1RleHRJbnB1dEVsZW1lbnQodGFyZ2V0Tm9kZSkgfHwgdGFyZ2V0Tm9kZS5jb250ZW50RWRpdGFibGUgPT09ICd0cnVlJykge1xuICAgICAgICBhY3RpdmVFbGVtZW50JDEgPSB0YXJnZXROb2RlO1xuICAgICAgICBhY3RpdmVFbGVtZW50SW5zdCQxID0gdGFyZ2V0SW5zdDtcbiAgICAgICAgbGFzdFNlbGVjdGlvbiA9IG51bGw7XG4gICAgICB9XG5cbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnZm9jdXNvdXQnOlxuICAgICAgYWN0aXZlRWxlbWVudCQxID0gbnVsbDtcbiAgICAgIGFjdGl2ZUVsZW1lbnRJbnN0JDEgPSBudWxsO1xuICAgICAgbGFzdFNlbGVjdGlvbiA9IG51bGw7XG4gICAgICBicmVhaztcbiAgICAvLyBEb24ndCBmaXJlIHRoZSBldmVudCB3aGlsZSB0aGUgdXNlciBpcyBkcmFnZ2luZy4gVGhpcyBtYXRjaGVzIHRoZVxuICAgIC8vIHNlbWFudGljcyBvZiB0aGUgbmF0aXZlIHNlbGVjdCBldmVudC5cblxuICAgIGNhc2UgJ21vdXNlZG93bic6XG4gICAgICBtb3VzZURvd24gPSB0cnVlO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdjb250ZXh0bWVudSc6XG4gICAgY2FzZSAnbW91c2V1cCc6XG4gICAgY2FzZSAnZHJhZ2VuZCc6XG4gICAgICBtb3VzZURvd24gPSBmYWxzZTtcbiAgICAgIGNvbnN0cnVjdFNlbGVjdEV2ZW50KGRpc3BhdGNoUXVldWUsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCk7XG4gICAgICBicmVhaztcbiAgICAvLyBDaHJvbWUgYW5kIElFIGZpcmUgbm9uLXN0YW5kYXJkIGV2ZW50IHdoZW4gc2VsZWN0aW9uIGlzIGNoYW5nZWQgKGFuZFxuICAgIC8vIHNvbWV0aW1lcyB3aGVuIGl0IGhhc24ndCkuIElFJ3MgZXZlbnQgZmlyZXMgb3V0IG9mIG9yZGVyIHdpdGggcmVzcGVjdFxuICAgIC8vIHRvIGtleSBhbmQgaW5wdXQgZXZlbnRzIG9uIGRlbGV0aW9uLCBzbyB3ZSBkaXNjYXJkIGl0LlxuICAgIC8vXG4gICAgLy8gRmlyZWZveCBkb2Vzbid0IHN1cHBvcnQgc2VsZWN0aW9uY2hhbmdlLCBzbyBjaGVjayBzZWxlY3Rpb24gc3RhdHVzXG4gICAgLy8gYWZ0ZXIgZWFjaCBrZXkgZW50cnkuIFRoZSBzZWxlY3Rpb24gY2hhbmdlcyBhZnRlciBrZXlkb3duIGFuZCBiZWZvcmVcbiAgICAvLyBrZXl1cCwgYnV0IHdlIGNoZWNrIG9uIGtleWRvd24gYXMgd2VsbCBpbiB0aGUgY2FzZSBvZiBob2xkaW5nIGRvd24gYVxuICAgIC8vIGtleSwgd2hlbiBtdWx0aXBsZSBrZXlkb3duIGV2ZW50cyBhcmUgZmlyZWQgYnV0IG9ubHkgb25lIGtleXVwIGlzLlxuICAgIC8vIFRoaXMgaXMgYWxzbyBvdXIgYXBwcm9hY2ggZm9yIElFIGhhbmRsaW5nLCBmb3IgdGhlIHJlYXNvbiBhYm92ZS5cblxuICAgIGNhc2UgJ3NlbGVjdGlvbmNoYW5nZSc6XG4gICAgICBpZiAoc2tpcFNlbGVjdGlvbkNoYW5nZUV2ZW50KSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgLy8gZmFsbHMgdGhyb3VnaFxuXG4gICAgY2FzZSAna2V5ZG93bic6XG4gICAgY2FzZSAna2V5dXAnOlxuICAgICAgY29uc3RydWN0U2VsZWN0RXZlbnQoZGlzcGF0Y2hRdWV1ZSwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBleHRyYWN0RXZlbnRzJDQoZGlzcGF0Y2hRdWV1ZSwgZG9tRXZlbnROYW1lLCB0YXJnZXRJbnN0LCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQsIGV2ZW50U3lzdGVtRmxhZ3MsIHRhcmdldENvbnRhaW5lcikge1xuICB2YXIgcmVhY3ROYW1lID0gdG9wTGV2ZWxFdmVudHNUb1JlYWN0TmFtZXMuZ2V0KGRvbUV2ZW50TmFtZSk7XG5cbiAgaWYgKHJlYWN0TmFtZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdmFyIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY0V2ZW50O1xuICB2YXIgcmVhY3RFdmVudFR5cGUgPSBkb21FdmVudE5hbWU7XG5cbiAgc3dpdGNoIChkb21FdmVudE5hbWUpIHtcbiAgICBjYXNlICdrZXlwcmVzcyc6XG4gICAgICAvLyBGaXJlZm94IGNyZWF0ZXMgYSBrZXlwcmVzcyBldmVudCBmb3IgZnVuY3Rpb24ga2V5cyB0b28uIFRoaXMgcmVtb3Zlc1xuICAgICAgLy8gdGhlIHVud2FudGVkIGtleXByZXNzIGV2ZW50cy4gRW50ZXIgaXMgaG93ZXZlciBib3RoIHByaW50YWJsZSBhbmRcbiAgICAgIC8vIG5vbi1wcmludGFibGUuIE9uZSB3b3VsZCBleHBlY3QgVGFiIHRvIGJlIGFzIHdlbGwgKGJ1dCBpdCBpc24ndCkuXG4gICAgICBpZiAoZ2V0RXZlbnRDaGFyQ29kZShuYXRpdmVFdmVudCkgPT09IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgLyogZmFsbHMgdGhyb3VnaCAqL1xuXG4gICAgY2FzZSAna2V5ZG93bic6XG4gICAgY2FzZSAna2V5dXAnOlxuICAgICAgU3ludGhldGljRXZlbnRDdG9yID0gU3ludGhldGljS2V5Ym9hcmRFdmVudDtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnZm9jdXNpbic6XG4gICAgICByZWFjdEV2ZW50VHlwZSA9ICdmb2N1cyc7XG4gICAgICBTeW50aGV0aWNFdmVudEN0b3IgPSBTeW50aGV0aWNGb2N1c0V2ZW50O1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdmb2N1c291dCc6XG4gICAgICByZWFjdEV2ZW50VHlwZSA9ICdibHVyJztcbiAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY0ZvY3VzRXZlbnQ7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2JlZm9yZWJsdXInOlxuICAgIGNhc2UgJ2FmdGVyYmx1cic6XG4gICAgICBTeW50aGV0aWNFdmVudEN0b3IgPSBTeW50aGV0aWNGb2N1c0V2ZW50O1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdjbGljayc6XG4gICAgICAvLyBGaXJlZm94IGNyZWF0ZXMgYSBjbGljayBldmVudCBvbiByaWdodCBtb3VzZSBjbGlja3MuIFRoaXMgcmVtb3ZlcyB0aGVcbiAgICAgIC8vIHVud2FudGVkIGNsaWNrIGV2ZW50cy5cbiAgICAgIGlmIChuYXRpdmVFdmVudC5idXR0b24gPT09IDIpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgLyogZmFsbHMgdGhyb3VnaCAqL1xuXG4gICAgY2FzZSAnYXV4Y2xpY2snOlxuICAgIGNhc2UgJ2RibGNsaWNrJzpcbiAgICBjYXNlICdtb3VzZWRvd24nOlxuICAgIGNhc2UgJ21vdXNlbW92ZSc6XG4gICAgY2FzZSAnbW91c2V1cCc6IC8vIFRPRE86IERpc2FibGVkIGVsZW1lbnRzIHNob3VsZCBub3QgcmVzcG9uZCB0byBtb3VzZSBldmVudHNcblxuICAgIC8qIGZhbGxzIHRocm91Z2ggKi9cblxuICAgIGNhc2UgJ21vdXNlb3V0JzpcbiAgICBjYXNlICdtb3VzZW92ZXInOlxuICAgIGNhc2UgJ2NvbnRleHRtZW51JzpcbiAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY01vdXNlRXZlbnQ7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2RyYWcnOlxuICAgIGNhc2UgJ2RyYWdlbmQnOlxuICAgIGNhc2UgJ2RyYWdlbnRlcic6XG4gICAgY2FzZSAnZHJhZ2V4aXQnOlxuICAgIGNhc2UgJ2RyYWdsZWF2ZSc6XG4gICAgY2FzZSAnZHJhZ292ZXInOlxuICAgIGNhc2UgJ2RyYWdzdGFydCc6XG4gICAgY2FzZSAnZHJvcCc6XG4gICAgICBTeW50aGV0aWNFdmVudEN0b3IgPSBTeW50aGV0aWNEcmFnRXZlbnQ7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ3RvdWNoY2FuY2VsJzpcbiAgICBjYXNlICd0b3VjaGVuZCc6XG4gICAgY2FzZSAndG91Y2htb3ZlJzpcbiAgICBjYXNlICd0b3VjaHN0YXJ0JzpcbiAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY1RvdWNoRXZlbnQ7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgQU5JTUFUSU9OX0VORDpcbiAgICBjYXNlIEFOSU1BVElPTl9JVEVSQVRJT046XG4gICAgY2FzZSBBTklNQVRJT05fU1RBUlQ6XG4gICAgICBTeW50aGV0aWNFdmVudEN0b3IgPSBTeW50aGV0aWNBbmltYXRpb25FdmVudDtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBUUkFOU0lUSU9OX0VORDpcbiAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY1RyYW5zaXRpb25FdmVudDtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnc2Nyb2xsJzpcbiAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY1VJRXZlbnQ7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ3doZWVsJzpcbiAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY1doZWVsRXZlbnQ7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2NvcHknOlxuICAgIGNhc2UgJ2N1dCc6XG4gICAgY2FzZSAncGFzdGUnOlxuICAgICAgU3ludGhldGljRXZlbnRDdG9yID0gU3ludGhldGljQ2xpcGJvYXJkRXZlbnQ7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2dvdHBvaW50ZXJjYXB0dXJlJzpcbiAgICBjYXNlICdsb3N0cG9pbnRlcmNhcHR1cmUnOlxuICAgIGNhc2UgJ3BvaW50ZXJjYW5jZWwnOlxuICAgIGNhc2UgJ3BvaW50ZXJkb3duJzpcbiAgICBjYXNlICdwb2ludGVybW92ZSc6XG4gICAgY2FzZSAncG9pbnRlcm91dCc6XG4gICAgY2FzZSAncG9pbnRlcm92ZXInOlxuICAgIGNhc2UgJ3BvaW50ZXJ1cCc6XG4gICAgICBTeW50aGV0aWNFdmVudEN0b3IgPSBTeW50aGV0aWNQb2ludGVyRXZlbnQ7XG4gICAgICBicmVhaztcbiAgfVxuXG4gIHZhciBpbkNhcHR1cmVQaGFzZSA9IChldmVudFN5c3RlbUZsYWdzICYgSVNfQ0FQVFVSRV9QSEFTRSkgIT09IDA7XG5cbiAge1xuICAgIC8vIFNvbWUgZXZlbnRzIGRvbid0IGJ1YmJsZSBpbiB0aGUgYnJvd3Nlci5cbiAgICAvLyBJbiB0aGUgcGFzdCwgUmVhY3QgaGFzIGFsd2F5cyBidWJibGVkIHRoZW0sIGJ1dCB0aGlzIGNhbiBiZSBzdXJwcmlzaW5nLlxuICAgIC8vIFdlJ3JlIGdvaW5nIHRvIHRyeSBhbGlnbmluZyBjbG9zZXIgdG8gdGhlIGJyb3dzZXIgYmVoYXZpb3IgYnkgbm90IGJ1YmJsaW5nXG4gICAgLy8gdGhlbSBpbiBSZWFjdCBlaXRoZXIuIFdlJ2xsIHN0YXJ0IGJ5IG5vdCBidWJibGluZyBvblNjcm9sbCwgYW5kIHRoZW4gZXhwYW5kLlxuICAgIHZhciBhY2N1bXVsYXRlVGFyZ2V0T25seSA9ICFpbkNhcHR1cmVQaGFzZSAmJiAvLyBUT0RPOiBpZGVhbGx5LCB3ZSdkIGV2ZW50dWFsbHkgYWRkIGFsbCBldmVudHMgZnJvbVxuICAgIC8vIG5vbkRlbGVnYXRlZEV2ZW50cyBsaXN0IGluIERPTVBsdWdpbkV2ZW50U3lzdGVtLlxuICAgIC8vIFRoZW4gd2UgY2FuIHJlbW92ZSB0aGlzIHNwZWNpYWwgbGlzdC5cbiAgICAvLyBUaGlzIGlzIGEgYnJlYWtpbmcgY2hhbmdlIHRoYXQgY2FuIHdhaXQgdW50aWwgUmVhY3QgMTguXG4gICAgZG9tRXZlbnROYW1lID09PSAnc2Nyb2xsJztcblxuICAgIHZhciBfbGlzdGVuZXJzID0gYWNjdW11bGF0ZVNpbmdsZVBoYXNlTGlzdGVuZXJzKHRhcmdldEluc3QsIHJlYWN0TmFtZSwgbmF0aXZlRXZlbnQudHlwZSwgaW5DYXB0dXJlUGhhc2UsIGFjY3VtdWxhdGVUYXJnZXRPbmx5KTtcblxuICAgIGlmIChfbGlzdGVuZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgIC8vIEludGVudGlvbmFsbHkgY3JlYXRlIGV2ZW50IGxhemlseS5cbiAgICAgIHZhciBfZXZlbnQgPSBuZXcgU3ludGhldGljRXZlbnRDdG9yKHJlYWN0TmFtZSwgcmVhY3RFdmVudFR5cGUsIG51bGwsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCk7XG5cbiAgICAgIGRpc3BhdGNoUXVldWUucHVzaCh7XG4gICAgICAgIGV2ZW50OiBfZXZlbnQsXG4gICAgICAgIGxpc3RlbmVyczogX2xpc3RlbmVyc1xuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG5cbi8vIFRPRE86IHJlbW92ZSB0b3AtbGV2ZWwgc2lkZSBlZmZlY3QuXG5yZWdpc3RlclNpbXBsZUV2ZW50cygpO1xucmVnaXN0ZXJFdmVudHMkMigpO1xucmVnaXN0ZXJFdmVudHMkMSgpO1xucmVnaXN0ZXJFdmVudHMkMygpO1xucmVnaXN0ZXJFdmVudHMoKTtcblxuZnVuY3Rpb24gZXh0cmFjdEV2ZW50cyQ1KGRpc3BhdGNoUXVldWUsIGRvbUV2ZW50TmFtZSwgdGFyZ2V0SW5zdCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0LCBldmVudFN5c3RlbUZsYWdzLCB0YXJnZXRDb250YWluZXIpIHtcbiAgLy8gVE9ETzogd2Ugc2hvdWxkIHJlbW92ZSB0aGUgY29uY2VwdCBvZiBhIFwiU2ltcGxlRXZlbnRQbHVnaW5cIi5cbiAgLy8gVGhpcyBpcyB0aGUgYmFzaWMgZnVuY3Rpb25hbGl0eSBvZiB0aGUgZXZlbnQgc3lzdGVtLiBBbGxcbiAgLy8gdGhlIG90aGVyIHBsdWdpbnMgYXJlIGVzc2VudGlhbGx5IHBvbHlmaWxscy4gU28gdGhlIHBsdWdpblxuICAvLyBzaG91bGQgcHJvYmFibHkgYmUgaW5saW5lZCBzb21ld2hlcmUgYW5kIGhhdmUgaXRzIGxvZ2ljXG4gIC8vIGJlIGNvcmUgdGhlIHRvIGV2ZW50IHN5c3RlbS4gVGhpcyB3b3VsZCBwb3RlbnRpYWxseSBhbGxvd1xuICAvLyB1cyB0byBzaGlwIGJ1aWxkcyBvZiBSZWFjdCB3aXRob3V0IHRoZSBwb2x5ZmlsbGVkIHBsdWdpbnMgYmVsb3cuXG4gIGV4dHJhY3RFdmVudHMkNChkaXNwYXRjaFF1ZXVlLCBkb21FdmVudE5hbWUsIHRhcmdldEluc3QsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCwgZXZlbnRTeXN0ZW1GbGFncyk7XG4gIHZhciBzaG91bGRQcm9jZXNzUG9seWZpbGxQbHVnaW5zID0gKGV2ZW50U3lzdGVtRmxhZ3MgJiBTSE9VTERfTk9UX1BST0NFU1NfUE9MWUZJTExfRVZFTlRfUExVR0lOUykgPT09IDA7IC8vIFdlIGRvbid0IHByb2Nlc3MgdGhlc2UgZXZlbnRzIHVubGVzcyB3ZSBhcmUgaW4gdGhlXG4gIC8vIGV2ZW50J3MgbmF0aXZlIFwiYnViYmxlXCIgcGhhc2UsIHdoaWNoIG1lYW5zIHRoYXQgd2UncmVcbiAgLy8gbm90IGluIHRoZSBjYXB0dXJlIHBoYXNlLiBUaGF0J3MgYmVjYXVzZSB3ZSBlbXVsYXRlXG4gIC8vIHRoZSBjYXB0dXJlIHBoYXNlIGhlcmUgc3RpbGwuIFRoaXMgaXMgYSB0cmFkZS1vZmYsXG4gIC8vIGJlY2F1c2UgaW4gYW4gaWRlYWwgd29ybGQgd2Ugd291bGQgbm90IGVtdWxhdGUgYW5kIHVzZVxuICAvLyB0aGUgcGhhc2VzIHByb3Blcmx5LCBsaWtlIHdlIGRvIHdpdGggdGhlIFNpbXBsZUV2ZW50XG4gIC8vIHBsdWdpbi4gSG93ZXZlciwgdGhlIHBsdWdpbnMgYmVsb3cgZWl0aGVyIGV4cGVjdFxuICAvLyBlbXVsYXRpb24gKEVudGVyTGVhdmUpIG9yIHVzZSBzdGF0ZSBsb2NhbGl6ZWQgdG8gdGhhdFxuICAvLyBwbHVnaW4gKEJlZm9yZUlucHV0LCBDaGFuZ2UsIFNlbGVjdCkuIFRoZSBzdGF0ZSBpblxuICAvLyB0aGVzZSBtb2R1bGVzIGNvbXBsaWNhdGVzIHRoaW5ncywgYXMgeW91J2xsIGVzc2VudGlhbGx5XG4gIC8vIGdldCB0aGUgY2FzZSB3aGVyZSB0aGUgY2FwdHVyZSBwaGFzZSBldmVudCBtaWdodCBjaGFuZ2VcbiAgLy8gc3RhdGUsIG9ubHkgZm9yIHRoZSBmb2xsb3dpbmcgYnViYmxlIGV2ZW50IHRvIGNvbWUgaW5cbiAgLy8gbGF0ZXIgYW5kIG5vdCB0cmlnZ2VyIGFueXRoaW5nIGFzIHRoZSBzdGF0ZSBub3dcbiAgLy8gaW52YWxpZGF0ZXMgdGhlIGhldXJpc3RpY3Mgb2YgdGhlIGV2ZW50IHBsdWdpbi4gV2VcbiAgLy8gY291bGQgYWx0ZXIgYWxsIHRoZXNlIHBsdWdpbnMgdG8gd29yayBpbiBzdWNoIHdheXMsIGJ1dFxuICAvLyB0aGF0IG1pZ2h0IGNhdXNlIG90aGVyIHVua25vd24gc2lkZS1lZmZlY3RzIHRoYXQgd2VcbiAgLy8gY2FuJ3QgZm9yc2VlIHJpZ2h0IG5vdy5cblxuICBpZiAoc2hvdWxkUHJvY2Vzc1BvbHlmaWxsUGx1Z2lucykge1xuICAgIGV4dHJhY3RFdmVudHMkMihkaXNwYXRjaFF1ZXVlLCBkb21FdmVudE5hbWUsIHRhcmdldEluc3QsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCwgZXZlbnRTeXN0ZW1GbGFncyk7XG4gICAgZXh0cmFjdEV2ZW50cyQxKGRpc3BhdGNoUXVldWUsIGRvbUV2ZW50TmFtZSwgdGFyZ2V0SW5zdCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KTtcbiAgICBleHRyYWN0RXZlbnRzJDMoZGlzcGF0Y2hRdWV1ZSwgZG9tRXZlbnROYW1lLCB0YXJnZXRJbnN0LCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpO1xuICAgIGV4dHJhY3RFdmVudHMoZGlzcGF0Y2hRdWV1ZSwgZG9tRXZlbnROYW1lLCB0YXJnZXRJbnN0LCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpO1xuICB9XG59IC8vIExpc3Qgb2YgZXZlbnRzIHRoYXQgbmVlZCB0byBiZSBpbmRpdmlkdWFsbHkgYXR0YWNoZWQgdG8gbWVkaWEgZWxlbWVudHMuXG5cblxudmFyIG1lZGlhRXZlbnRUeXBlcyA9IFsnYWJvcnQnLCAnY2FucGxheScsICdjYW5wbGF5dGhyb3VnaCcsICdkdXJhdGlvbmNoYW5nZScsICdlbXB0aWVkJywgJ2VuY3J5cHRlZCcsICdlbmRlZCcsICdlcnJvcicsICdsb2FkZWRkYXRhJywgJ2xvYWRlZG1ldGFkYXRhJywgJ2xvYWRzdGFydCcsICdwYXVzZScsICdwbGF5JywgJ3BsYXlpbmcnLCAncHJvZ3Jlc3MnLCAncmF0ZWNoYW5nZScsICdzZWVrZWQnLCAnc2Vla2luZycsICdzdGFsbGVkJywgJ3N1c3BlbmQnLCAndGltZXVwZGF0ZScsICd2b2x1bWVjaGFuZ2UnLCAnd2FpdGluZyddOyAvLyBXZSBzaG91bGQgbm90IGRlbGVnYXRlIHRoZXNlIGV2ZW50cyB0byB0aGUgY29udGFpbmVyLCBidXQgcmF0aGVyXG4vLyBzZXQgdGhlbSBvbiB0aGUgYWN0dWFsIHRhcmdldCBlbGVtZW50IGl0c2VsZi4gVGhpcyBpcyBwcmltYXJpbHlcbi8vIGJlY2F1c2UgdGhlc2UgZXZlbnRzIGRvIG5vdCBjb25zaXN0ZW50bHkgYnViYmxlIGluIHRoZSBET00uXG5cbnZhciBub25EZWxlZ2F0ZWRFdmVudHMgPSBuZXcgU2V0KFsnY2FuY2VsJywgJ2Nsb3NlJywgJ2ludmFsaWQnLCAnbG9hZCcsICdzY3JvbGwnLCAndG9nZ2xlJ10uY29uY2F0KG1lZGlhRXZlbnRUeXBlcykpO1xuXG5mdW5jdGlvbiBleGVjdXRlRGlzcGF0Y2goZXZlbnQsIGxpc3RlbmVyLCBjdXJyZW50VGFyZ2V0KSB7XG4gIHZhciB0eXBlID0gZXZlbnQudHlwZSB8fCAndW5rbm93bi1ldmVudCc7XG4gIGV2ZW50LmN1cnJlbnRUYXJnZXQgPSBjdXJyZW50VGFyZ2V0O1xuICBpbnZva2VHdWFyZGVkQ2FsbGJhY2tBbmRDYXRjaEZpcnN0RXJyb3IodHlwZSwgbGlzdGVuZXIsIHVuZGVmaW5lZCwgZXZlbnQpO1xuICBldmVudC5jdXJyZW50VGFyZ2V0ID0gbnVsbDtcbn1cblxuZnVuY3Rpb24gcHJvY2Vzc0Rpc3BhdGNoUXVldWVJdGVtc0luT3JkZXIoZXZlbnQsIGRpc3BhdGNoTGlzdGVuZXJzLCBpbkNhcHR1cmVQaGFzZSkge1xuICB2YXIgcHJldmlvdXNJbnN0YW5jZTtcblxuICBpZiAoaW5DYXB0dXJlUGhhc2UpIHtcbiAgICBmb3IgKHZhciBpID0gZGlzcGF0Y2hMaXN0ZW5lcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIHZhciBfZGlzcGF0Y2hMaXN0ZW5lcnMkaSA9IGRpc3BhdGNoTGlzdGVuZXJzW2ldLFxuICAgICAgICAgIGluc3RhbmNlID0gX2Rpc3BhdGNoTGlzdGVuZXJzJGkuaW5zdGFuY2UsXG4gICAgICAgICAgY3VycmVudFRhcmdldCA9IF9kaXNwYXRjaExpc3RlbmVycyRpLmN1cnJlbnRUYXJnZXQsXG4gICAgICAgICAgbGlzdGVuZXIgPSBfZGlzcGF0Y2hMaXN0ZW5lcnMkaS5saXN0ZW5lcjtcblxuICAgICAgaWYgKGluc3RhbmNlICE9PSBwcmV2aW91c0luc3RhbmNlICYmIGV2ZW50LmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBleGVjdXRlRGlzcGF0Y2goZXZlbnQsIGxpc3RlbmVyLCBjdXJyZW50VGFyZ2V0KTtcbiAgICAgIHByZXZpb3VzSW5zdGFuY2UgPSBpbnN0YW5jZTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGRpc3BhdGNoTGlzdGVuZXJzLmxlbmd0aDsgX2krKykge1xuICAgICAgdmFyIF9kaXNwYXRjaExpc3RlbmVycyRfaSA9IGRpc3BhdGNoTGlzdGVuZXJzW19pXSxcbiAgICAgICAgICBfaW5zdGFuY2UgPSBfZGlzcGF0Y2hMaXN0ZW5lcnMkX2kuaW5zdGFuY2UsXG4gICAgICAgICAgX2N1cnJlbnRUYXJnZXQgPSBfZGlzcGF0Y2hMaXN0ZW5lcnMkX2kuY3VycmVudFRhcmdldCxcbiAgICAgICAgICBfbGlzdGVuZXIgPSBfZGlzcGF0Y2hMaXN0ZW5lcnMkX2kubGlzdGVuZXI7XG5cbiAgICAgIGlmIChfaW5zdGFuY2UgIT09IHByZXZpb3VzSW5zdGFuY2UgJiYgZXZlbnQuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGV4ZWN1dGVEaXNwYXRjaChldmVudCwgX2xpc3RlbmVyLCBfY3VycmVudFRhcmdldCk7XG4gICAgICBwcmV2aW91c0luc3RhbmNlID0gX2luc3RhbmNlO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBwcm9jZXNzRGlzcGF0Y2hRdWV1ZShkaXNwYXRjaFF1ZXVlLCBldmVudFN5c3RlbUZsYWdzKSB7XG4gIHZhciBpbkNhcHR1cmVQaGFzZSA9IChldmVudFN5c3RlbUZsYWdzICYgSVNfQ0FQVFVSRV9QSEFTRSkgIT09IDA7XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBkaXNwYXRjaFF1ZXVlLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIF9kaXNwYXRjaFF1ZXVlJGkgPSBkaXNwYXRjaFF1ZXVlW2ldLFxuICAgICAgICBldmVudCA9IF9kaXNwYXRjaFF1ZXVlJGkuZXZlbnQsXG4gICAgICAgIGxpc3RlbmVycyA9IF9kaXNwYXRjaFF1ZXVlJGkubGlzdGVuZXJzO1xuICAgIHByb2Nlc3NEaXNwYXRjaFF1ZXVlSXRlbXNJbk9yZGVyKGV2ZW50LCBsaXN0ZW5lcnMsIGluQ2FwdHVyZVBoYXNlKTsgLy8gIGV2ZW50IHN5c3RlbSBkb2Vzbid0IHVzZSBwb29saW5nLlxuICB9IC8vIFRoaXMgd291bGQgYmUgYSBnb29kIHRpbWUgdG8gcmV0aHJvdyBpZiBhbnkgb2YgdGhlIGV2ZW50IGhhbmRsZXJzIHRocmV3LlxuXG5cbiAgcmV0aHJvd0NhdWdodEVycm9yKCk7XG59XG5cbmZ1bmN0aW9uIGRpc3BhdGNoRXZlbnRzRm9yUGx1Z2lucyhkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIG5hdGl2ZUV2ZW50LCB0YXJnZXRJbnN0LCB0YXJnZXRDb250YWluZXIpIHtcbiAgdmFyIG5hdGl2ZUV2ZW50VGFyZ2V0ID0gZ2V0RXZlbnRUYXJnZXQobmF0aXZlRXZlbnQpO1xuICB2YXIgZGlzcGF0Y2hRdWV1ZSA9IFtdO1xuICBleHRyYWN0RXZlbnRzJDUoZGlzcGF0Y2hRdWV1ZSwgZG9tRXZlbnROYW1lLCB0YXJnZXRJbnN0LCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQsIGV2ZW50U3lzdGVtRmxhZ3MpO1xuICBwcm9jZXNzRGlzcGF0Y2hRdWV1ZShkaXNwYXRjaFF1ZXVlLCBldmVudFN5c3RlbUZsYWdzKTtcbn1cblxuZnVuY3Rpb24gbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudChkb21FdmVudE5hbWUsIHRhcmdldEVsZW1lbnQpIHtcbiAgdmFyIGlzQ2FwdHVyZVBoYXNlTGlzdGVuZXIgPSBmYWxzZTtcbiAgdmFyIGxpc3RlbmVyU2V0ID0gZ2V0RXZlbnRMaXN0ZW5lclNldCh0YXJnZXRFbGVtZW50KTtcbiAgdmFyIGxpc3RlbmVyU2V0S2V5ID0gZ2V0TGlzdGVuZXJTZXRLZXkoZG9tRXZlbnROYW1lLCBpc0NhcHR1cmVQaGFzZUxpc3RlbmVyKTtcblxuICBpZiAoIWxpc3RlbmVyU2V0LmhhcyhsaXN0ZW5lclNldEtleSkpIHtcbiAgICBhZGRUcmFwcGVkRXZlbnRMaXN0ZW5lcih0YXJnZXRFbGVtZW50LCBkb21FdmVudE5hbWUsIElTX05PTl9ERUxFR0FURUQsIGlzQ2FwdHVyZVBoYXNlTGlzdGVuZXIpO1xuICAgIGxpc3RlbmVyU2V0LmFkZChsaXN0ZW5lclNldEtleSk7XG4gIH1cbn1cbnZhciBsaXN0ZW5pbmdNYXJrZXIgPSAnX3JlYWN0TGlzdGVuaW5nJyArIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIpO1xuZnVuY3Rpb24gbGlzdGVuVG9BbGxTdXBwb3J0ZWRFdmVudHMocm9vdENvbnRhaW5lckVsZW1lbnQpIHtcbiAge1xuICAgIGlmIChyb290Q29udGFpbmVyRWxlbWVudFtsaXN0ZW5pbmdNYXJrZXJdKSB7XG4gICAgICAvLyBQZXJmb3JtYW5jZSBvcHRpbWl6YXRpb246IGRvbid0IGl0ZXJhdGUgdGhyb3VnaCBldmVudHNcbiAgICAgIC8vIGZvciB0aGUgc2FtZSBwb3J0YWwgY29udGFpbmVyIG9yIHJvb3Qgbm9kZSBtb3JlIHRoYW4gb25jZS5cbiAgICAgIC8vIFRPRE86IG9uY2Ugd2UgcmVtb3ZlIHRoZSBmbGFnLCB3ZSBtYXkgYmUgYWJsZSB0byBhbHNvXG4gICAgICAvLyByZW1vdmUgc29tZSBvZiB0aGUgYm9va2tlZXBpbmcgbWFwcyB1c2VkIGZvciBsYXppbmVzcy5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByb290Q29udGFpbmVyRWxlbWVudFtsaXN0ZW5pbmdNYXJrZXJdID0gdHJ1ZTtcbiAgICBhbGxOYXRpdmVFdmVudHMuZm9yRWFjaChmdW5jdGlvbiAoZG9tRXZlbnROYW1lKSB7XG4gICAgICBpZiAoIW5vbkRlbGVnYXRlZEV2ZW50cy5oYXMoZG9tRXZlbnROYW1lKSkge1xuICAgICAgICBsaXN0ZW5Ub05hdGl2ZUV2ZW50KGRvbUV2ZW50TmFtZSwgZmFsc2UsIHJvb3RDb250YWluZXJFbGVtZW50LCBudWxsKTtcbiAgICAgIH1cblxuICAgICAgbGlzdGVuVG9OYXRpdmVFdmVudChkb21FdmVudE5hbWUsIHRydWUsIHJvb3RDb250YWluZXJFbGVtZW50LCBudWxsKTtcbiAgICB9KTtcbiAgfVxufVxuZnVuY3Rpb24gbGlzdGVuVG9OYXRpdmVFdmVudChkb21FdmVudE5hbWUsIGlzQ2FwdHVyZVBoYXNlTGlzdGVuZXIsIHJvb3RDb250YWluZXJFbGVtZW50LCB0YXJnZXRFbGVtZW50KSB7XG4gIHZhciBldmVudFN5c3RlbUZsYWdzID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAwO1xuICB2YXIgdGFyZ2V0ID0gcm9vdENvbnRhaW5lckVsZW1lbnQ7IC8vIHNlbGVjdGlvbmNoYW5nZSBuZWVkcyB0byBiZSBhdHRhY2hlZCB0byB0aGUgZG9jdW1lbnRcbiAgLy8gb3RoZXJ3aXNlIGl0IHdvbid0IGNhcHR1cmUgaW5jb21pbmcgZXZlbnRzIHRoYXQgYXJlIG9ubHlcbiAgLy8gdHJpZ2dlcmVkIG9uIHRoZSBkb2N1bWVudCBkaXJlY3RseS5cblxuICBpZiAoZG9tRXZlbnROYW1lID09PSAnc2VsZWN0aW9uY2hhbmdlJyAmJiByb290Q29udGFpbmVyRWxlbWVudC5ub2RlVHlwZSAhPT0gRE9DVU1FTlRfTk9ERSkge1xuICAgIHRhcmdldCA9IHJvb3RDb250YWluZXJFbGVtZW50Lm93bmVyRG9jdW1lbnQ7XG4gIH0gLy8gSWYgdGhlIGV2ZW50IGNhbiBiZSBkZWxlZ2F0ZWQgKG9yIGlzIGNhcHR1cmUgcGhhc2UpLCB3ZSBjYW5cbiAgLy8gcmVnaXN0ZXIgaXQgdG8gdGhlIHJvb3QgY29udGFpbmVyLiBPdGhlcndpc2UsIHdlIHNob3VsZFxuICAvLyByZWdpc3RlciB0aGUgZXZlbnQgdG8gdGhlIHRhcmdldCBlbGVtZW50IGFuZCBtYXJrIGl0IGFzXG4gIC8vIGEgbm9uLWRlbGVnYXRlZCBldmVudC5cblxuXG4gIGlmICh0YXJnZXRFbGVtZW50ICE9PSBudWxsICYmICFpc0NhcHR1cmVQaGFzZUxpc3RlbmVyICYmIG5vbkRlbGVnYXRlZEV2ZW50cy5oYXMoZG9tRXZlbnROYW1lKSkge1xuICAgIC8vIEZvciBhbGwgbm9uLWRlbGVnYXRlZCBldmVudHMsIGFwYXJ0IGZyb20gc2Nyb2xsLCB3ZSBhdHRhY2hcbiAgICAvLyB0aGVpciBldmVudCBsaXN0ZW5lcnMgdG8gdGhlIHJlc3BlY3RpdmUgZWxlbWVudHMgdGhhdCB0aGVpclxuICAgIC8vIGV2ZW50cyBmaXJlIG9uLiBUaGF0IG1lYW5zIHdlIGNhbiBza2lwIHRoaXMgc3RlcCwgYXMgZXZlbnRcbiAgICAvLyBsaXN0ZW5lciBoYXMgYWxyZWFkeSBiZWVuIGFkZGVkIHByZXZpb3VzbHkuIEhvd2V2ZXIsIHdlXG4gICAgLy8gc3BlY2lhbCBjYXNlIHRoZSBzY3JvbGwgZXZlbnQgYmVjYXVzZSB0aGUgcmVhbGl0eSBpcyB0aGF0IGFueVxuICAgIC8vIGVsZW1lbnQgY2FuIHNjcm9sbC5cbiAgICAvLyBUT0RPOiBpZGVhbGx5LCB3ZSdkIGV2ZW50dWFsbHkgYXBwbHkgdGhlIHNhbWUgbG9naWMgdG8gYWxsXG4gICAgLy8gZXZlbnRzIGZyb20gdGhlIG5vbkRlbGVnYXRlZEV2ZW50cyBsaXN0LiBUaGVuIHdlIGNhbiByZW1vdmVcbiAgICAvLyB0aGlzIHNwZWNpYWwgY2FzZSBhbmQgdXNlIHRoZSBzYW1lIGxvZ2ljIGZvciBhbGwgZXZlbnRzLlxuICAgIGlmIChkb21FdmVudE5hbWUgIT09ICdzY3JvbGwnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZXZlbnRTeXN0ZW1GbGFncyB8PSBJU19OT05fREVMRUdBVEVEO1xuICAgIHRhcmdldCA9IHRhcmdldEVsZW1lbnQ7XG4gIH1cblxuICB2YXIgbGlzdGVuZXJTZXQgPSBnZXRFdmVudExpc3RlbmVyU2V0KHRhcmdldCk7XG4gIHZhciBsaXN0ZW5lclNldEtleSA9IGdldExpc3RlbmVyU2V0S2V5KGRvbUV2ZW50TmFtZSwgaXNDYXB0dXJlUGhhc2VMaXN0ZW5lcik7IC8vIElmIHRoZSBsaXN0ZW5lciBlbnRyeSBpcyBlbXB0eSBvciB3ZSBzaG91bGQgdXBncmFkZSwgdGhlblxuICAvLyB3ZSBuZWVkIHRvIHRyYXAgYW4gZXZlbnQgbGlzdGVuZXIgb250byB0aGUgdGFyZ2V0LlxuXG4gIGlmICghbGlzdGVuZXJTZXQuaGFzKGxpc3RlbmVyU2V0S2V5KSkge1xuICAgIGlmIChpc0NhcHR1cmVQaGFzZUxpc3RlbmVyKSB7XG4gICAgICBldmVudFN5c3RlbUZsYWdzIHw9IElTX0NBUFRVUkVfUEhBU0U7XG4gICAgfVxuXG4gICAgYWRkVHJhcHBlZEV2ZW50TGlzdGVuZXIodGFyZ2V0LCBkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIGlzQ2FwdHVyZVBoYXNlTGlzdGVuZXIpO1xuICAgIGxpc3RlbmVyU2V0LmFkZChsaXN0ZW5lclNldEtleSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gYWRkVHJhcHBlZEV2ZW50TGlzdGVuZXIodGFyZ2V0Q29udGFpbmVyLCBkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIGlzQ2FwdHVyZVBoYXNlTGlzdGVuZXIsIGlzRGVmZXJyZWRMaXN0ZW5lckZvckxlZ2FjeUZCU3VwcG9ydCkge1xuICB2YXIgbGlzdGVuZXIgPSBjcmVhdGVFdmVudExpc3RlbmVyV3JhcHBlcldpdGhQcmlvcml0eSh0YXJnZXRDb250YWluZXIsIGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncyk7IC8vIElmIHBhc3NpdmUgb3B0aW9uIGlzIG5vdCBzdXBwb3J0ZWQsIHRoZW4gdGhlIGV2ZW50IHdpbGwgYmVcbiAgLy8gYWN0aXZlIGFuZCBub3QgcGFzc2l2ZS5cblxuICB2YXIgaXNQYXNzaXZlTGlzdGVuZXIgPSB1bmRlZmluZWQ7XG5cbiAgaWYgKHBhc3NpdmVCcm93c2VyRXZlbnRzU3VwcG9ydGVkKSB7XG4gICAgLy8gQnJvd3NlcnMgaW50cm9kdWNlZCBhbiBpbnRlcnZlbnRpb24sIG1ha2luZyB0aGVzZSBldmVudHNcbiAgICAvLyBwYXNzaXZlIGJ5IGRlZmF1bHQgb24gZG9jdW1lbnQuIFJlYWN0IGRvZXNuJ3QgYmluZCB0aGVtXG4gICAgLy8gdG8gZG9jdW1lbnQgYW55bW9yZSwgYnV0IGNoYW5naW5nIHRoaXMgbm93IHdvdWxkIHVuZG9cbiAgICAvLyB0aGUgcGVyZm9ybWFuY2Ugd2lucyBmcm9tIHRoZSBjaGFuZ2UuIFNvIHdlIGVtdWxhdGVcbiAgICAvLyB0aGUgZXhpc3RpbmcgYmVoYXZpb3IgbWFudWFsbHkgb24gdGhlIHJvb3RzIG5vdy5cbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzE5NjUxXG4gICAgaWYgKGRvbUV2ZW50TmFtZSA9PT0gJ3RvdWNoc3RhcnQnIHx8IGRvbUV2ZW50TmFtZSA9PT0gJ3RvdWNobW92ZScgfHwgZG9tRXZlbnROYW1lID09PSAnd2hlZWwnKSB7XG4gICAgICBpc1Bhc3NpdmVMaXN0ZW5lciA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgdGFyZ2V0Q29udGFpbmVyID0gIHRhcmdldENvbnRhaW5lcjtcbiAgdmFyIHVuc3Vic2NyaWJlTGlzdGVuZXI7IC8vIFdoZW4gbGVnYWN5RkJTdXBwb3J0IGlzIGVuYWJsZWQsIGl0J3MgZm9yIHdoZW4gd2VcblxuXG4gIGlmIChpc0NhcHR1cmVQaGFzZUxpc3RlbmVyKSB7XG4gICAgaWYgKGlzUGFzc2l2ZUxpc3RlbmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHVuc3Vic2NyaWJlTGlzdGVuZXIgPSBhZGRFdmVudENhcHR1cmVMaXN0ZW5lcldpdGhQYXNzaXZlRmxhZyh0YXJnZXRDb250YWluZXIsIGRvbUV2ZW50TmFtZSwgbGlzdGVuZXIsIGlzUGFzc2l2ZUxpc3RlbmVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdW5zdWJzY3JpYmVMaXN0ZW5lciA9IGFkZEV2ZW50Q2FwdHVyZUxpc3RlbmVyKHRhcmdldENvbnRhaW5lciwgZG9tRXZlbnROYW1lLCBsaXN0ZW5lcik7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmIChpc1Bhc3NpdmVMaXN0ZW5lciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB1bnN1YnNjcmliZUxpc3RlbmVyID0gYWRkRXZlbnRCdWJibGVMaXN0ZW5lcldpdGhQYXNzaXZlRmxhZyh0YXJnZXRDb250YWluZXIsIGRvbUV2ZW50TmFtZSwgbGlzdGVuZXIsIGlzUGFzc2l2ZUxpc3RlbmVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdW5zdWJzY3JpYmVMaXN0ZW5lciA9IGFkZEV2ZW50QnViYmxlTGlzdGVuZXIodGFyZ2V0Q29udGFpbmVyLCBkb21FdmVudE5hbWUsIGxpc3RlbmVyKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNNYXRjaGluZ1Jvb3RDb250YWluZXIoZ3JhbmRDb250YWluZXIsIHRhcmdldENvbnRhaW5lcikge1xuICByZXR1cm4gZ3JhbmRDb250YWluZXIgPT09IHRhcmdldENvbnRhaW5lciB8fCBncmFuZENvbnRhaW5lci5ub2RlVHlwZSA9PT0gQ09NTUVOVF9OT0RFICYmIGdyYW5kQ29udGFpbmVyLnBhcmVudE5vZGUgPT09IHRhcmdldENvbnRhaW5lcjtcbn1cblxuZnVuY3Rpb24gZGlzcGF0Y2hFdmVudEZvclBsdWdpbkV2ZW50U3lzdGVtKGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgbmF0aXZlRXZlbnQsIHRhcmdldEluc3QsIHRhcmdldENvbnRhaW5lcikge1xuICB2YXIgYW5jZXN0b3JJbnN0ID0gdGFyZ2V0SW5zdDtcblxuICBpZiAoKGV2ZW50U3lzdGVtRmxhZ3MgJiBJU19FVkVOVF9IQU5ETEVfTk9OX01BTkFHRURfTk9ERSkgPT09IDAgJiYgKGV2ZW50U3lzdGVtRmxhZ3MgJiBJU19OT05fREVMRUdBVEVEKSA9PT0gMCkge1xuICAgIHZhciB0YXJnZXRDb250YWluZXJOb2RlID0gdGFyZ2V0Q29udGFpbmVyOyAvLyBJZiB3ZSBhcmUgdXNpbmcgdGhlIGxlZ2FjeSBGQiBzdXBwb3J0IGZsYWcsIHdlXG5cbiAgICBpZiAodGFyZ2V0SW5zdCAhPT0gbnVsbCkge1xuICAgICAgLy8gVGhlIGJlbG93IGxvZ2ljIGF0dGVtcHRzIHRvIHdvcmsgb3V0IGlmIHdlIG5lZWQgdG8gY2hhbmdlXG4gICAgICAvLyB0aGUgdGFyZ2V0IGZpYmVyIHRvIGEgZGlmZmVyZW50IGFuY2VzdG9yLiBXZSBoYWQgc2ltaWxhciBsb2dpY1xuICAgICAgLy8gaW4gdGhlIGxlZ2FjeSBldmVudCBzeXN0ZW0sIGV4Y2VwdCB0aGUgYmlnIGRpZmZlcmVuY2UgYmV0d2VlblxuICAgICAgLy8gc3lzdGVtcyBpcyB0aGF0IHRoZSBtb2Rlcm4gZXZlbnQgc3lzdGVtIG5vdyBoYXMgYW4gZXZlbnQgbGlzdGVuZXJcbiAgICAgIC8vIGF0dGFjaGVkIHRvIGVhY2ggUmVhY3QgUm9vdCBhbmQgUmVhY3QgUG9ydGFsIFJvb3QuIFRvZ2V0aGVyLFxuICAgICAgLy8gdGhlIERPTSBub2RlcyByZXByZXNlbnRpbmcgdGhlc2Ugcm9vdHMgYXJlIHRoZSBcInJvb3RDb250YWluZXJcIi5cbiAgICAgIC8vIFRvIGZpZ3VyZSBvdXQgd2hpY2ggYW5jZXN0b3IgaW5zdGFuY2Ugd2Ugc2hvdWxkIHVzZSwgd2UgdHJhdmVyc2VcbiAgICAgIC8vIHVwIHRoZSBmaWJlciB0cmVlIGZyb20gdGhlIHRhcmdldCBpbnN0YW5jZSBhbmQgYXR0ZW1wdCB0byBmaW5kXG4gICAgICAvLyByb290IGJvdW5kYXJpZXMgdGhhdCBtYXRjaCB0aGF0IG9mIG91ciBjdXJyZW50IFwicm9vdENvbnRhaW5lclwiLlxuICAgICAgLy8gSWYgd2UgZmluZCB0aGF0IFwicm9vdENvbnRhaW5lclwiLCB3ZSBmaW5kIHRoZSBwYXJlbnQgZmliZXJcbiAgICAgIC8vIHN1Yi10cmVlIGZvciB0aGF0IHJvb3QgYW5kIG1ha2UgdGhhdCBvdXIgYW5jZXN0b3IgaW5zdGFuY2UuXG4gICAgICB2YXIgbm9kZSA9IHRhcmdldEluc3Q7XG5cbiAgICAgIG1haW5Mb29wOiB3aGlsZSAodHJ1ZSkge1xuICAgICAgICBpZiAobm9kZSA9PT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBub2RlVGFnID0gbm9kZS50YWc7XG5cbiAgICAgICAgaWYgKG5vZGVUYWcgPT09IEhvc3RSb290IHx8IG5vZGVUYWcgPT09IEhvc3RQb3J0YWwpIHtcbiAgICAgICAgICB2YXIgY29udGFpbmVyID0gbm9kZS5zdGF0ZU5vZGUuY29udGFpbmVySW5mbztcblxuICAgICAgICAgIGlmIChpc01hdGNoaW5nUm9vdENvbnRhaW5lcihjb250YWluZXIsIHRhcmdldENvbnRhaW5lck5vZGUpKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAobm9kZVRhZyA9PT0gSG9zdFBvcnRhbCkge1xuICAgICAgICAgICAgLy8gVGhlIHRhcmdldCBpcyBhIHBvcnRhbCwgYnV0IGl0J3Mgbm90IHRoZSByb290Q29udGFpbmVyIHdlJ3JlIGxvb2tpbmcgZm9yLlxuICAgICAgICAgICAgLy8gTm9ybWFsbHkgcG9ydGFscyBoYW5kbGUgdGhlaXIgb3duIGV2ZW50cyBhbGwgdGhlIHdheSBkb3duIHRvIHRoZSByb290LlxuICAgICAgICAgICAgLy8gU28gd2Ugc2hvdWxkIGJlIGFibGUgdG8gc3RvcCBub3cuIEhvd2V2ZXIsIHdlIGRvbid0IGtub3cgaWYgdGhpcyBwb3J0YWxcbiAgICAgICAgICAgIC8vIHdhcyBwYXJ0IG9mICpvdXIqIHJvb3QuXG4gICAgICAgICAgICB2YXIgZ3JhbmROb2RlID0gbm9kZS5yZXR1cm47XG5cbiAgICAgICAgICAgIHdoaWxlIChncmFuZE5vZGUgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgdmFyIGdyYW5kVGFnID0gZ3JhbmROb2RlLnRhZztcblxuICAgICAgICAgICAgICBpZiAoZ3JhbmRUYWcgPT09IEhvc3RSb290IHx8IGdyYW5kVGFnID09PSBIb3N0UG9ydGFsKSB7XG4gICAgICAgICAgICAgICAgdmFyIGdyYW5kQ29udGFpbmVyID0gZ3JhbmROb2RlLnN0YXRlTm9kZS5jb250YWluZXJJbmZvO1xuXG4gICAgICAgICAgICAgICAgaWYgKGlzTWF0Y2hpbmdSb290Q29udGFpbmVyKGdyYW5kQ29udGFpbmVyLCB0YXJnZXRDb250YWluZXJOb2RlKSkge1xuICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyB0aGUgcm9vdENvbnRhaW5lciB3ZSdyZSBsb29raW5nIGZvciBhbmQgd2UgZm91bmQgaXQgYXNcbiAgICAgICAgICAgICAgICAgIC8vIGEgcGFyZW50IG9mIHRoZSBQb3J0YWwuIFRoYXQgbWVhbnMgd2UgY2FuIGlnbm9yZSBpdCBiZWNhdXNlIHRoZVxuICAgICAgICAgICAgICAgICAgLy8gUG9ydGFsIHdpbGwgYnViYmxlIHRocm91Z2ggdG8gdXMuXG4gICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgZ3JhbmROb2RlID0gZ3JhbmROb2RlLnJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IC8vIE5vdyB3ZSBuZWVkIHRvIGZpbmQgaXQncyBjb3JyZXNwb25kaW5nIGhvc3QgZmliZXIgaW4gdGhlIG90aGVyXG4gICAgICAgICAgLy8gdHJlZS4gVG8gZG8gdGhpcyB3ZSBjYW4gdXNlIGdldENsb3Nlc3RJbnN0YW5jZUZyb21Ob2RlLCBidXQgd2VcbiAgICAgICAgICAvLyBuZWVkIHRvIHZhbGlkYXRlIHRoYXQgdGhlIGZpYmVyIGlzIGEgaG9zdCBpbnN0YW5jZSwgb3RoZXJ3aXNlXG4gICAgICAgICAgLy8gd2UgbmVlZCB0byB0cmF2ZXJzZSB1cCB0aHJvdWdoIHRoZSBET00gdGlsbCB3ZSBmaW5kIHRoZSBjb3JyZWN0XG4gICAgICAgICAgLy8gbm9kZSB0aGF0IGlzIGZyb20gdGhlIG90aGVyIHRyZWUuXG5cblxuICAgICAgICAgIHdoaWxlIChjb250YWluZXIgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHZhciBwYXJlbnROb2RlID0gZ2V0Q2xvc2VzdEluc3RhbmNlRnJvbU5vZGUoY29udGFpbmVyKTtcblxuICAgICAgICAgICAgaWYgKHBhcmVudE5vZGUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgcGFyZW50VGFnID0gcGFyZW50Tm9kZS50YWc7XG5cbiAgICAgICAgICAgIGlmIChwYXJlbnRUYWcgPT09IEhvc3RDb21wb25lbnQgfHwgcGFyZW50VGFnID09PSBIb3N0VGV4dCkge1xuICAgICAgICAgICAgICBub2RlID0gYW5jZXN0b3JJbnN0ID0gcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgY29udGludWUgbWFpbkxvb3A7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnRhaW5lciA9IGNvbnRhaW5lci5wYXJlbnROb2RlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIG5vZGUgPSBub2RlLnJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBiYXRjaGVkRXZlbnRVcGRhdGVzKGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gZGlzcGF0Y2hFdmVudHNGb3JQbHVnaW5zKGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgbmF0aXZlRXZlbnQsIGFuY2VzdG9ySW5zdCk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVEaXNwYXRjaExpc3RlbmVyKGluc3RhbmNlLCBsaXN0ZW5lciwgY3VycmVudFRhcmdldCkge1xuICByZXR1cm4ge1xuICAgIGluc3RhbmNlOiBpbnN0YW5jZSxcbiAgICBsaXN0ZW5lcjogbGlzdGVuZXIsXG4gICAgY3VycmVudFRhcmdldDogY3VycmVudFRhcmdldFxuICB9O1xufVxuXG5mdW5jdGlvbiBhY2N1bXVsYXRlU2luZ2xlUGhhc2VMaXN0ZW5lcnModGFyZ2V0RmliZXIsIHJlYWN0TmFtZSwgbmF0aXZlRXZlbnRUeXBlLCBpbkNhcHR1cmVQaGFzZSwgYWNjdW11bGF0ZVRhcmdldE9ubHkpIHtcbiAgdmFyIGNhcHR1cmVOYW1lID0gcmVhY3ROYW1lICE9PSBudWxsID8gcmVhY3ROYW1lICsgJ0NhcHR1cmUnIDogbnVsbDtcbiAgdmFyIHJlYWN0RXZlbnROYW1lID0gaW5DYXB0dXJlUGhhc2UgPyBjYXB0dXJlTmFtZSA6IHJlYWN0TmFtZTtcbiAgdmFyIGxpc3RlbmVycyA9IFtdO1xuICB2YXIgaW5zdGFuY2UgPSB0YXJnZXRGaWJlcjtcbiAgdmFyIGxhc3RIb3N0Q29tcG9uZW50ID0gbnVsbDsgLy8gQWNjdW11bGF0ZSBhbGwgaW5zdGFuY2VzIGFuZCBsaXN0ZW5lcnMgdmlhIHRoZSB0YXJnZXQgLT4gcm9vdCBwYXRoLlxuXG4gIHdoaWxlIChpbnN0YW5jZSAhPT0gbnVsbCkge1xuICAgIHZhciBfaW5zdGFuY2UyID0gaW5zdGFuY2UsXG4gICAgICAgIHN0YXRlTm9kZSA9IF9pbnN0YW5jZTIuc3RhdGVOb2RlLFxuICAgICAgICB0YWcgPSBfaW5zdGFuY2UyLnRhZzsgLy8gSGFuZGxlIGxpc3RlbmVycyB0aGF0IGFyZSBvbiBIb3N0Q29tcG9uZW50cyAoaS5lLiA8ZGl2PilcblxuICAgIGlmICh0YWcgPT09IEhvc3RDb21wb25lbnQgJiYgc3RhdGVOb2RlICE9PSBudWxsKSB7XG4gICAgICBsYXN0SG9zdENvbXBvbmVudCA9IHN0YXRlTm9kZTsgLy8gY3JlYXRlRXZlbnRIYW5kbGUgbGlzdGVuZXJzXG5cblxuICAgICAgaWYgKHJlYWN0RXZlbnROYW1lICE9PSBudWxsKSB7XG4gICAgICAgIHZhciBsaXN0ZW5lciA9IGdldExpc3RlbmVyKGluc3RhbmNlLCByZWFjdEV2ZW50TmFtZSk7XG5cbiAgICAgICAgaWYgKGxpc3RlbmVyICE9IG51bGwpIHtcbiAgICAgICAgICBsaXN0ZW5lcnMucHVzaChjcmVhdGVEaXNwYXRjaExpc3RlbmVyKGluc3RhbmNlLCBsaXN0ZW5lciwgbGFzdEhvc3RDb21wb25lbnQpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gLy8gSWYgd2UgYXJlIG9ubHkgYWNjdW11bGF0aW5nIGV2ZW50cyBmb3IgdGhlIHRhcmdldCwgdGhlbiB3ZSBkb24ndFxuICAgIC8vIGNvbnRpbnVlIHRvIHByb3BhZ2F0ZSB0aHJvdWdoIHRoZSBSZWFjdCBmaWJlciB0cmVlIHRvIGZpbmQgb3RoZXJcbiAgICAvLyBsaXN0ZW5lcnMuXG5cblxuICAgIGlmIChhY2N1bXVsYXRlVGFyZ2V0T25seSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgaW5zdGFuY2UgPSBpbnN0YW5jZS5yZXR1cm47XG4gIH1cblxuICByZXR1cm4gbGlzdGVuZXJzO1xufSAvLyBXZSBzaG91bGQgb25seSB1c2UgdGhpcyBmdW5jdGlvbiBmb3I6XG4vLyAtIEJlZm9yZUlucHV0RXZlbnRQbHVnaW5cbi8vIC0gQ2hhbmdlRXZlbnRQbHVnaW5cbi8vIC0gU2VsZWN0RXZlbnRQbHVnaW5cbi8vIFRoaXMgaXMgYmVjYXVzZSB3ZSBvbmx5IHByb2Nlc3MgdGhlc2UgcGx1Z2luc1xuLy8gaW4gdGhlIGJ1YmJsZSBwaGFzZSwgc28gd2UgbmVlZCB0byBhY2N1bXVsYXRlIHR3b1xuLy8gcGhhc2UgZXZlbnQgbGlzdGVuZXJzICh2aWEgZW11bGF0aW9uKS5cblxuZnVuY3Rpb24gYWNjdW11bGF0ZVR3b1BoYXNlTGlzdGVuZXJzKHRhcmdldEZpYmVyLCByZWFjdE5hbWUpIHtcbiAgdmFyIGNhcHR1cmVOYW1lID0gcmVhY3ROYW1lICsgJ0NhcHR1cmUnO1xuICB2YXIgbGlzdGVuZXJzID0gW107XG4gIHZhciBpbnN0YW5jZSA9IHRhcmdldEZpYmVyOyAvLyBBY2N1bXVsYXRlIGFsbCBpbnN0YW5jZXMgYW5kIGxpc3RlbmVycyB2aWEgdGhlIHRhcmdldCAtPiByb290IHBhdGguXG5cbiAgd2hpbGUgKGluc3RhbmNlICE9PSBudWxsKSB7XG4gICAgdmFyIF9pbnN0YW5jZTMgPSBpbnN0YW5jZSxcbiAgICAgICAgc3RhdGVOb2RlID0gX2luc3RhbmNlMy5zdGF0ZU5vZGUsXG4gICAgICAgIHRhZyA9IF9pbnN0YW5jZTMudGFnOyAvLyBIYW5kbGUgbGlzdGVuZXJzIHRoYXQgYXJlIG9uIEhvc3RDb21wb25lbnRzIChpLmUuIDxkaXY+KVxuXG4gICAgaWYgKHRhZyA9PT0gSG9zdENvbXBvbmVudCAmJiBzdGF0ZU5vZGUgIT09IG51bGwpIHtcbiAgICAgIHZhciBjdXJyZW50VGFyZ2V0ID0gc3RhdGVOb2RlO1xuICAgICAgdmFyIGNhcHR1cmVMaXN0ZW5lciA9IGdldExpc3RlbmVyKGluc3RhbmNlLCBjYXB0dXJlTmFtZSk7XG5cbiAgICAgIGlmIChjYXB0dXJlTGlzdGVuZXIgIT0gbnVsbCkge1xuICAgICAgICBsaXN0ZW5lcnMudW5zaGlmdChjcmVhdGVEaXNwYXRjaExpc3RlbmVyKGluc3RhbmNlLCBjYXB0dXJlTGlzdGVuZXIsIGN1cnJlbnRUYXJnZXQpKTtcbiAgICAgIH1cblxuICAgICAgdmFyIGJ1YmJsZUxpc3RlbmVyID0gZ2V0TGlzdGVuZXIoaW5zdGFuY2UsIHJlYWN0TmFtZSk7XG5cbiAgICAgIGlmIChidWJibGVMaXN0ZW5lciAhPSBudWxsKSB7XG4gICAgICAgIGxpc3RlbmVycy5wdXNoKGNyZWF0ZURpc3BhdGNoTGlzdGVuZXIoaW5zdGFuY2UsIGJ1YmJsZUxpc3RlbmVyLCBjdXJyZW50VGFyZ2V0KSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW5zdGFuY2UgPSBpbnN0YW5jZS5yZXR1cm47XG4gIH1cblxuICByZXR1cm4gbGlzdGVuZXJzO1xufVxuXG5mdW5jdGlvbiBnZXRQYXJlbnQoaW5zdCkge1xuICBpZiAoaW5zdCA9PT0gbnVsbCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgZG8ge1xuICAgIGluc3QgPSBpbnN0LnJldHVybjsgLy8gVE9ETzogSWYgdGhpcyBpcyBhIEhvc3RSb290IHdlIG1pZ2h0IHdhbnQgdG8gYmFpbCBvdXQuXG4gICAgLy8gVGhhdCBpcyBkZXBlbmRpbmcgb24gaWYgd2Ugd2FudCBuZXN0ZWQgc3VidHJlZXMgKGxheWVycykgdG8gYnViYmxlXG4gICAgLy8gZXZlbnRzIHRvIHRoZWlyIHBhcmVudC4gV2UgY291bGQgYWxzbyBnbyB0aHJvdWdoIHBhcmVudE5vZGUgb24gdGhlXG4gICAgLy8gaG9zdCBub2RlIGJ1dCB0aGF0IHdvdWxkbid0IHdvcmsgZm9yIFJlYWN0IE5hdGl2ZSBhbmQgZG9lc24ndCBsZXQgdXNcbiAgICAvLyBkbyB0aGUgcG9ydGFsIGZlYXR1cmUuXG4gIH0gd2hpbGUgKGluc3QgJiYgaW5zdC50YWcgIT09IEhvc3RDb21wb25lbnQpO1xuXG4gIGlmIChpbnN0KSB7XG4gICAgcmV0dXJuIGluc3Q7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cbi8qKlxuICogUmV0dXJuIHRoZSBsb3dlc3QgY29tbW9uIGFuY2VzdG9yIG9mIEEgYW5kIEIsIG9yIG51bGwgaWYgdGhleSBhcmUgaW5cbiAqIGRpZmZlcmVudCB0cmVlcy5cbiAqL1xuXG5cbmZ1bmN0aW9uIGdldExvd2VzdENvbW1vbkFuY2VzdG9yKGluc3RBLCBpbnN0Qikge1xuICB2YXIgbm9kZUEgPSBpbnN0QTtcbiAgdmFyIG5vZGVCID0gaW5zdEI7XG4gIHZhciBkZXB0aEEgPSAwO1xuXG4gIGZvciAodmFyIHRlbXBBID0gbm9kZUE7IHRlbXBBOyB0ZW1wQSA9IGdldFBhcmVudCh0ZW1wQSkpIHtcbiAgICBkZXB0aEErKztcbiAgfVxuXG4gIHZhciBkZXB0aEIgPSAwO1xuXG4gIGZvciAodmFyIHRlbXBCID0gbm9kZUI7IHRlbXBCOyB0ZW1wQiA9IGdldFBhcmVudCh0ZW1wQikpIHtcbiAgICBkZXB0aEIrKztcbiAgfSAvLyBJZiBBIGlzIGRlZXBlciwgY3Jhd2wgdXAuXG5cblxuICB3aGlsZSAoZGVwdGhBIC0gZGVwdGhCID4gMCkge1xuICAgIG5vZGVBID0gZ2V0UGFyZW50KG5vZGVBKTtcbiAgICBkZXB0aEEtLTtcbiAgfSAvLyBJZiBCIGlzIGRlZXBlciwgY3Jhd2wgdXAuXG5cblxuICB3aGlsZSAoZGVwdGhCIC0gZGVwdGhBID4gMCkge1xuICAgIG5vZGVCID0gZ2V0UGFyZW50KG5vZGVCKTtcbiAgICBkZXB0aEItLTtcbiAgfSAvLyBXYWxrIGluIGxvY2tzdGVwIHVudGlsIHdlIGZpbmQgYSBtYXRjaC5cblxuXG4gIHZhciBkZXB0aCA9IGRlcHRoQTtcblxuICB3aGlsZSAoZGVwdGgtLSkge1xuICAgIGlmIChub2RlQSA9PT0gbm9kZUIgfHwgbm9kZUIgIT09IG51bGwgJiYgbm9kZUEgPT09IG5vZGVCLmFsdGVybmF0ZSkge1xuICAgICAgcmV0dXJuIG5vZGVBO1xuICAgIH1cblxuICAgIG5vZGVBID0gZ2V0UGFyZW50KG5vZGVBKTtcbiAgICBub2RlQiA9IGdldFBhcmVudChub2RlQik7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gYWNjdW11bGF0ZUVudGVyTGVhdmVMaXN0ZW5lcnNGb3JFdmVudChkaXNwYXRjaFF1ZXVlLCBldmVudCwgdGFyZ2V0LCBjb21tb24sIGluQ2FwdHVyZVBoYXNlKSB7XG4gIHZhciByZWdpc3RyYXRpb25OYW1lID0gZXZlbnQuX3JlYWN0TmFtZTtcbiAgdmFyIGxpc3RlbmVycyA9IFtdO1xuICB2YXIgaW5zdGFuY2UgPSB0YXJnZXQ7XG5cbiAgd2hpbGUgKGluc3RhbmNlICE9PSBudWxsKSB7XG4gICAgaWYgKGluc3RhbmNlID09PSBjb21tb24pIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHZhciBfaW5zdGFuY2U0ID0gaW5zdGFuY2UsXG4gICAgICAgIGFsdGVybmF0ZSA9IF9pbnN0YW5jZTQuYWx0ZXJuYXRlLFxuICAgICAgICBzdGF0ZU5vZGUgPSBfaW5zdGFuY2U0LnN0YXRlTm9kZSxcbiAgICAgICAgdGFnID0gX2luc3RhbmNlNC50YWc7XG5cbiAgICBpZiAoYWx0ZXJuYXRlICE9PSBudWxsICYmIGFsdGVybmF0ZSA9PT0gY29tbW9uKSB7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBpZiAodGFnID09PSBIb3N0Q29tcG9uZW50ICYmIHN0YXRlTm9kZSAhPT0gbnVsbCkge1xuICAgICAgdmFyIGN1cnJlbnRUYXJnZXQgPSBzdGF0ZU5vZGU7XG5cbiAgICAgIGlmIChpbkNhcHR1cmVQaGFzZSkge1xuICAgICAgICB2YXIgY2FwdHVyZUxpc3RlbmVyID0gZ2V0TGlzdGVuZXIoaW5zdGFuY2UsIHJlZ2lzdHJhdGlvbk5hbWUpO1xuXG4gICAgICAgIGlmIChjYXB0dXJlTGlzdGVuZXIgIT0gbnVsbCkge1xuICAgICAgICAgIGxpc3RlbmVycy51bnNoaWZ0KGNyZWF0ZURpc3BhdGNoTGlzdGVuZXIoaW5zdGFuY2UsIGNhcHR1cmVMaXN0ZW5lciwgY3VycmVudFRhcmdldCkpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKCFpbkNhcHR1cmVQaGFzZSkge1xuICAgICAgICB2YXIgYnViYmxlTGlzdGVuZXIgPSBnZXRMaXN0ZW5lcihpbnN0YW5jZSwgcmVnaXN0cmF0aW9uTmFtZSk7XG5cbiAgICAgICAgaWYgKGJ1YmJsZUxpc3RlbmVyICE9IG51bGwpIHtcbiAgICAgICAgICBsaXN0ZW5lcnMucHVzaChjcmVhdGVEaXNwYXRjaExpc3RlbmVyKGluc3RhbmNlLCBidWJibGVMaXN0ZW5lciwgY3VycmVudFRhcmdldCkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW5zdGFuY2UgPSBpbnN0YW5jZS5yZXR1cm47XG4gIH1cblxuICBpZiAobGlzdGVuZXJzLmxlbmd0aCAhPT0gMCkge1xuICAgIGRpc3BhdGNoUXVldWUucHVzaCh7XG4gICAgICBldmVudDogZXZlbnQsXG4gICAgICBsaXN0ZW5lcnM6IGxpc3RlbmVyc1xuICAgIH0pO1xuICB9XG59IC8vIFdlIHNob3VsZCBvbmx5IHVzZSB0aGlzIGZ1bmN0aW9uIGZvcjpcbi8vIC0gRW50ZXJMZWF2ZUV2ZW50UGx1Z2luXG4vLyBUaGlzIGlzIGJlY2F1c2Ugd2Ugb25seSBwcm9jZXNzIHRoaXMgcGx1Z2luXG4vLyBpbiB0aGUgYnViYmxlIHBoYXNlLCBzbyB3ZSBuZWVkIHRvIGFjY3VtdWxhdGUgdHdvXG4vLyBwaGFzZSBldmVudCBsaXN0ZW5lcnMuXG5cblxuZnVuY3Rpb24gYWNjdW11bGF0ZUVudGVyTGVhdmVUd29QaGFzZUxpc3RlbmVycyhkaXNwYXRjaFF1ZXVlLCBsZWF2ZUV2ZW50LCBlbnRlckV2ZW50LCBmcm9tLCB0bykge1xuICB2YXIgY29tbW9uID0gZnJvbSAmJiB0byA/IGdldExvd2VzdENvbW1vbkFuY2VzdG9yKGZyb20sIHRvKSA6IG51bGw7XG5cbiAgaWYgKGZyb20gIT09IG51bGwpIHtcbiAgICBhY2N1bXVsYXRlRW50ZXJMZWF2ZUxpc3RlbmVyc0ZvckV2ZW50KGRpc3BhdGNoUXVldWUsIGxlYXZlRXZlbnQsIGZyb20sIGNvbW1vbiwgZmFsc2UpO1xuICB9XG5cbiAgaWYgKHRvICE9PSBudWxsICYmIGVudGVyRXZlbnQgIT09IG51bGwpIHtcbiAgICBhY2N1bXVsYXRlRW50ZXJMZWF2ZUxpc3RlbmVyc0ZvckV2ZW50KGRpc3BhdGNoUXVldWUsIGVudGVyRXZlbnQsIHRvLCBjb21tb24sIHRydWUpO1xuICB9XG59XG5mdW5jdGlvbiBnZXRMaXN0ZW5lclNldEtleShkb21FdmVudE5hbWUsIGNhcHR1cmUpIHtcbiAgcmV0dXJuIGRvbUV2ZW50TmFtZSArIFwiX19cIiArIChjYXB0dXJlID8gJ2NhcHR1cmUnIDogJ2J1YmJsZScpO1xufVxuXG52YXIgZGlkV2FybkludmFsaWRIeWRyYXRpb24gPSBmYWxzZTtcbnZhciBEQU5HRVJPVVNMWV9TRVRfSU5ORVJfSFRNTCA9ICdkYW5nZXJvdXNseVNldElubmVySFRNTCc7XG52YXIgU1VQUFJFU1NfQ09OVEVOVF9FRElUQUJMRV9XQVJOSU5HID0gJ3N1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZyc7XG52YXIgU1VQUFJFU1NfSFlEUkFUSU9OX1dBUk5JTkcgPSAnc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nJztcbnZhciBBVVRPRk9DVVMgPSAnYXV0b0ZvY3VzJztcbnZhciBDSElMRFJFTiA9ICdjaGlsZHJlbic7XG52YXIgU1RZTEUgPSAnc3R5bGUnO1xudmFyIEhUTUwkMSA9ICdfX2h0bWwnO1xudmFyIEhUTUxfTkFNRVNQQUNFJDEgPSBOYW1lc3BhY2VzLmh0bWw7XG52YXIgd2FybmVkVW5rbm93blRhZ3M7XG52YXIgc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nO1xudmFyIHZhbGlkYXRlUHJvcGVydGllc0luRGV2ZWxvcG1lbnQ7XG52YXIgd2FybkZvclRleHREaWZmZXJlbmNlO1xudmFyIHdhcm5Gb3JQcm9wRGlmZmVyZW5jZTtcbnZhciB3YXJuRm9yRXh0cmFBdHRyaWJ1dGVzO1xudmFyIHdhcm5Gb3JJbnZhbGlkRXZlbnRMaXN0ZW5lcjtcbnZhciBjYW5EaWZmU3R5bGVGb3JIeWRyYXRpb25XYXJuaW5nO1xudmFyIG5vcm1hbGl6ZU1hcmt1cEZvclRleHRPckF0dHJpYnV0ZTtcbnZhciBub3JtYWxpemVIVE1MO1xuXG57XG4gIHdhcm5lZFVua25vd25UYWdzID0ge1xuICAgIC8vIFRoZXJlIGFyZSB3b3JraW5nIHBvbHlmaWxscyBmb3IgPGRpYWxvZz4uIExldCBwZW9wbGUgdXNlIGl0LlxuICAgIGRpYWxvZzogdHJ1ZSxcbiAgICAvLyBFbGVjdHJvbiBzaGlwcyBhIGN1c3RvbSA8d2Vidmlldz4gdGFnIHRvIGRpc3BsYXkgZXh0ZXJuYWwgd2ViIGNvbnRlbnQgaW5cbiAgICAvLyBhbiBpc29sYXRlZCBmcmFtZSBhbmQgcHJvY2Vzcy5cbiAgICAvLyBUaGlzIHRhZyBpcyBub3QgcHJlc2VudCBpbiBub24gRWxlY3Ryb24gZW52aXJvbm1lbnRzIHN1Y2ggYXMgSlNEb20gd2hpY2hcbiAgICAvLyBpcyBvZnRlbiB1c2VkIGZvciB0ZXN0aW5nIHB1cnBvc2VzLlxuICAgIC8vIEBzZWUgaHR0cHM6Ly9lbGVjdHJvbmpzLm9yZy9kb2NzL2FwaS93ZWJ2aWV3LXRhZ1xuICAgIHdlYnZpZXc6IHRydWVcbiAgfTtcblxuICB2YWxpZGF0ZVByb3BlcnRpZXNJbkRldmVsb3BtZW50ID0gZnVuY3Rpb24gKHR5cGUsIHByb3BzKSB7XG4gICAgdmFsaWRhdGVQcm9wZXJ0aWVzKHR5cGUsIHByb3BzKTtcbiAgICB2YWxpZGF0ZVByb3BlcnRpZXMkMSh0eXBlLCBwcm9wcyk7XG4gICAgdmFsaWRhdGVQcm9wZXJ0aWVzJDIodHlwZSwgcHJvcHMsIHtcbiAgICAgIHJlZ2lzdHJhdGlvbk5hbWVEZXBlbmRlbmNpZXM6IHJlZ2lzdHJhdGlvbk5hbWVEZXBlbmRlbmNpZXMsXG4gICAgICBwb3NzaWJsZVJlZ2lzdHJhdGlvbk5hbWVzOiBwb3NzaWJsZVJlZ2lzdHJhdGlvbk5hbWVzXG4gICAgfSk7XG4gIH07IC8vIElFIDExIHBhcnNlcyAmIG5vcm1hbGl6ZXMgdGhlIHN0eWxlIGF0dHJpYnV0ZSBhcyBvcHBvc2VkIHRvIG90aGVyXG4gIC8vIGJyb3dzZXJzLiBJdCBhZGRzIHNwYWNlcyBhbmQgc29ydHMgdGhlIHByb3BlcnRpZXMgaW4gc29tZVxuICAvLyBub24tYWxwaGFiZXRpY2FsIG9yZGVyLiBIYW5kbGluZyB0aGF0IHdvdWxkIHJlcXVpcmUgc29ydGluZyBDU1NcbiAgLy8gcHJvcGVydGllcyBpbiB0aGUgY2xpZW50ICYgc2VydmVyIHZlcnNpb25zIG9yIGFwcGx5aW5nXG4gIC8vIGBleHBlY3RlZFN0eWxlYCB0byBhIHRlbXBvcmFyeSBET00gbm9kZSB0byByZWFkIGl0cyBgc3R5bGVgIGF0dHJpYnV0ZVxuICAvLyBub3JtYWxpemVkLiBTaW5jZSBpdCBvbmx5IGFmZmVjdHMgSUUsIHdlJ3JlIHNraXBwaW5nIHN0eWxlIHdhcm5pbmdzXG4gIC8vIGluIHRoYXQgYnJvd3NlciBjb21wbGV0ZWx5IGluIGZhdm9yIG9mIGRvaW5nIGFsbCB0aGF0IHdvcmsuXG4gIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzExODA3XG5cblxuICBjYW5EaWZmU3R5bGVGb3JIeWRyYXRpb25XYXJuaW5nID0gY2FuVXNlRE9NICYmICFkb2N1bWVudC5kb2N1bWVudE1vZGU7IC8vIEhUTUwgcGFyc2luZyBub3JtYWxpemVzIENSIGFuZCBDUkxGIHRvIExGLlxuICAvLyBJdCBhbHNvIGNhbiB0dXJuIFxcdTAwMDAgaW50byBcXHVGRkZEIGluc2lkZSBhdHRyaWJ1dGVzLlxuICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvaHRtbDUvc2luZ2xlLXBhZ2UuaHRtbCNwcmVwcm9jZXNzaW5nLXRoZS1pbnB1dC1zdHJlYW1cbiAgLy8gSWYgd2UgaGF2ZSBhIG1pc21hdGNoLCBpdCBtaWdodCBiZSBjYXVzZWQgYnkgdGhhdC5cbiAgLy8gV2Ugd2lsbCBzdGlsbCBwYXRjaCB1cCBpbiB0aGlzIGNhc2UgYnV0IG5vdCBmaXJlIHRoZSB3YXJuaW5nLlxuXG4gIHZhciBOT1JNQUxJWkVfTkVXTElORVNfUkVHRVggPSAvXFxyXFxuPy9nO1xuICB2YXIgTk9STUFMSVpFX05VTExfQU5EX1JFUExBQ0VNRU5UX1JFR0VYID0gL1xcdTAwMDB8XFx1RkZGRC9nO1xuXG4gIG5vcm1hbGl6ZU1hcmt1cEZvclRleHRPckF0dHJpYnV0ZSA9IGZ1bmN0aW9uIChtYXJrdXApIHtcbiAgICB2YXIgbWFya3VwU3RyaW5nID0gdHlwZW9mIG1hcmt1cCA9PT0gJ3N0cmluZycgPyBtYXJrdXAgOiAnJyArIG1hcmt1cDtcbiAgICByZXR1cm4gbWFya3VwU3RyaW5nLnJlcGxhY2UoTk9STUFMSVpFX05FV0xJTkVTX1JFR0VYLCAnXFxuJykucmVwbGFjZShOT1JNQUxJWkVfTlVMTF9BTkRfUkVQTEFDRU1FTlRfUkVHRVgsICcnKTtcbiAgfTtcblxuICB3YXJuRm9yVGV4dERpZmZlcmVuY2UgPSBmdW5jdGlvbiAoc2VydmVyVGV4dCwgY2xpZW50VGV4dCkge1xuICAgIGlmIChkaWRXYXJuSW52YWxpZEh5ZHJhdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciBub3JtYWxpemVkQ2xpZW50VGV4dCA9IG5vcm1hbGl6ZU1hcmt1cEZvclRleHRPckF0dHJpYnV0ZShjbGllbnRUZXh0KTtcbiAgICB2YXIgbm9ybWFsaXplZFNlcnZlclRleHQgPSBub3JtYWxpemVNYXJrdXBGb3JUZXh0T3JBdHRyaWJ1dGUoc2VydmVyVGV4dCk7XG5cbiAgICBpZiAobm9ybWFsaXplZFNlcnZlclRleHQgPT09IG5vcm1hbGl6ZWRDbGllbnRUZXh0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZGlkV2FybkludmFsaWRIeWRyYXRpb24gPSB0cnVlO1xuXG4gICAgZXJyb3IoJ1RleHQgY29udGVudCBkaWQgbm90IG1hdGNoLiBTZXJ2ZXI6IFwiJXNcIiBDbGllbnQ6IFwiJXNcIicsIG5vcm1hbGl6ZWRTZXJ2ZXJUZXh0LCBub3JtYWxpemVkQ2xpZW50VGV4dCk7XG4gIH07XG5cbiAgd2FybkZvclByb3BEaWZmZXJlbmNlID0gZnVuY3Rpb24gKHByb3BOYW1lLCBzZXJ2ZXJWYWx1ZSwgY2xpZW50VmFsdWUpIHtcbiAgICBpZiAoZGlkV2FybkludmFsaWRIeWRyYXRpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2YXIgbm9ybWFsaXplZENsaWVudFZhbHVlID0gbm9ybWFsaXplTWFya3VwRm9yVGV4dE9yQXR0cmlidXRlKGNsaWVudFZhbHVlKTtcbiAgICB2YXIgbm9ybWFsaXplZFNlcnZlclZhbHVlID0gbm9ybWFsaXplTWFya3VwRm9yVGV4dE9yQXR0cmlidXRlKHNlcnZlclZhbHVlKTtcblxuICAgIGlmIChub3JtYWxpemVkU2VydmVyVmFsdWUgPT09IG5vcm1hbGl6ZWRDbGllbnRWYWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGRpZFdhcm5JbnZhbGlkSHlkcmF0aW9uID0gdHJ1ZTtcblxuICAgIGVycm9yKCdQcm9wIGAlc2AgZGlkIG5vdCBtYXRjaC4gU2VydmVyOiAlcyBDbGllbnQ6ICVzJywgcHJvcE5hbWUsIEpTT04uc3RyaW5naWZ5KG5vcm1hbGl6ZWRTZXJ2ZXJWYWx1ZSksIEpTT04uc3RyaW5naWZ5KG5vcm1hbGl6ZWRDbGllbnRWYWx1ZSkpO1xuICB9O1xuXG4gIHdhcm5Gb3JFeHRyYUF0dHJpYnV0ZXMgPSBmdW5jdGlvbiAoYXR0cmlidXRlTmFtZXMpIHtcbiAgICBpZiAoZGlkV2FybkludmFsaWRIeWRyYXRpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBkaWRXYXJuSW52YWxpZEh5ZHJhdGlvbiA9IHRydWU7XG4gICAgdmFyIG5hbWVzID0gW107XG4gICAgYXR0cmlidXRlTmFtZXMuZm9yRWFjaChmdW5jdGlvbiAobmFtZSkge1xuICAgICAgbmFtZXMucHVzaChuYW1lKTtcbiAgICB9KTtcblxuICAgIGVycm9yKCdFeHRyYSBhdHRyaWJ1dGVzIGZyb20gdGhlIHNlcnZlcjogJXMnLCBuYW1lcyk7XG4gIH07XG5cbiAgd2FybkZvckludmFsaWRFdmVudExpc3RlbmVyID0gZnVuY3Rpb24gKHJlZ2lzdHJhdGlvbk5hbWUsIGxpc3RlbmVyKSB7XG4gICAgaWYgKGxpc3RlbmVyID09PSBmYWxzZSkge1xuICAgICAgZXJyb3IoJ0V4cGVjdGVkIGAlc2AgbGlzdGVuZXIgdG8gYmUgYSBmdW5jdGlvbiwgaW5zdGVhZCBnb3QgYGZhbHNlYC5cXG5cXG4nICsgJ0lmIHlvdSB1c2VkIHRvIGNvbmRpdGlvbmFsbHkgb21pdCBpdCB3aXRoICVzPXtjb25kaXRpb24gJiYgdmFsdWV9LCAnICsgJ3Bhc3MgJXM9e2NvbmRpdGlvbiA/IHZhbHVlIDogdW5kZWZpbmVkfSBpbnN0ZWFkLicsIHJlZ2lzdHJhdGlvbk5hbWUsIHJlZ2lzdHJhdGlvbk5hbWUsIHJlZ2lzdHJhdGlvbk5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBlcnJvcignRXhwZWN0ZWQgYCVzYCBsaXN0ZW5lciB0byBiZSBhIGZ1bmN0aW9uLCBpbnN0ZWFkIGdvdCBhIHZhbHVlIG9mIGAlc2AgdHlwZS4nLCByZWdpc3RyYXRpb25OYW1lLCB0eXBlb2YgbGlzdGVuZXIpO1xuICAgIH1cbiAgfTsgLy8gUGFyc2UgdGhlIEhUTUwgYW5kIHJlYWQgaXQgYmFjayB0byBub3JtYWxpemUgdGhlIEhUTUwgc3RyaW5nIHNvIHRoYXQgaXRcbiAgLy8gY2FuIGJlIHVzZWQgZm9yIGNvbXBhcmlzb24uXG5cblxuICBub3JtYWxpemVIVE1MID0gZnVuY3Rpb24gKHBhcmVudCwgaHRtbCkge1xuICAgIC8vIFdlIGNvdWxkIGhhdmUgY3JlYXRlZCBhIHNlcGFyYXRlIGRvY3VtZW50IGhlcmUgdG8gYXZvaWRcbiAgICAvLyByZS1pbml0aWFsaXppbmcgY3VzdG9tIGVsZW1lbnRzIGlmIHRoZXkgZXhpc3QuIEJ1dCB0aGlzIGJyZWFrc1xuICAgIC8vIGhvdyA8bm9zY3JpcHQ+IGlzIGJlaW5nIGhhbmRsZWQuIFNvIHdlIHVzZSB0aGUgc2FtZSBkb2N1bWVudC5cbiAgICAvLyBTZWUgdGhlIGRpc2N1c3Npb24gaW4gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L3B1bGwvMTExNTcuXG4gICAgdmFyIHRlc3RFbGVtZW50ID0gcGFyZW50Lm5hbWVzcGFjZVVSSSA9PT0gSFRNTF9OQU1FU1BBQ0UkMSA/IHBhcmVudC5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQocGFyZW50LnRhZ05hbWUpIDogcGFyZW50Lm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHBhcmVudC5uYW1lc3BhY2VVUkksIHBhcmVudC50YWdOYW1lKTtcbiAgICB0ZXN0RWxlbWVudC5pbm5lckhUTUwgPSBodG1sO1xuICAgIHJldHVybiB0ZXN0RWxlbWVudC5pbm5lckhUTUw7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldE93bmVyRG9jdW1lbnRGcm9tUm9vdENvbnRhaW5lcihyb290Q29udGFpbmVyRWxlbWVudCkge1xuICByZXR1cm4gcm9vdENvbnRhaW5lckVsZW1lbnQubm9kZVR5cGUgPT09IERPQ1VNRU5UX05PREUgPyByb290Q29udGFpbmVyRWxlbWVudCA6IHJvb3RDb250YWluZXJFbGVtZW50Lm93bmVyRG9jdW1lbnQ7XG59XG5cbmZ1bmN0aW9uIG5vb3AoKSB7fVxuXG5mdW5jdGlvbiB0cmFwQ2xpY2tPbk5vbkludGVyYWN0aXZlRWxlbWVudChub2RlKSB7XG4gIC8vIE1vYmlsZSBTYWZhcmkgZG9lcyBub3QgZmlyZSBwcm9wZXJseSBidWJibGUgY2xpY2sgZXZlbnRzIG9uXG4gIC8vIG5vbi1pbnRlcmFjdGl2ZSBlbGVtZW50cywgd2hpY2ggbWVhbnMgZGVsZWdhdGVkIGNsaWNrIGxpc3RlbmVycyBkbyBub3RcbiAgLy8gZmlyZS4gVGhlIHdvcmthcm91bmQgZm9yIHRoaXMgYnVnIGludm9sdmVzIGF0dGFjaGluZyBhbiBlbXB0eSBjbGlja1xuICAvLyBsaXN0ZW5lciBvbiB0aGUgdGFyZ2V0IG5vZGUuXG4gIC8vIGh0dHBzOi8vd3d3LnF1aXJrc21vZGUub3JnL2Jsb2cvYXJjaGl2ZXMvMjAxMC8wOS9jbGlja19ldmVudF9kZWwuaHRtbFxuICAvLyBKdXN0IHNldCBpdCB1c2luZyB0aGUgb25jbGljayBwcm9wZXJ0eSBzbyB0aGF0IHdlIGRvbid0IGhhdmUgdG8gbWFuYWdlIGFueVxuICAvLyBib29ra2VlcGluZyBmb3IgaXQuIE5vdCBzdXJlIGlmIHdlIG5lZWQgdG8gY2xlYXIgaXQgd2hlbiB0aGUgbGlzdGVuZXIgaXNcbiAgLy8gcmVtb3ZlZC5cbiAgLy8gVE9ETzogT25seSBkbyB0aGlzIGZvciB0aGUgcmVsZXZhbnQgU2FmYXJpcyBtYXliZT9cbiAgbm9kZS5vbmNsaWNrID0gbm9vcDtcbn1cblxuZnVuY3Rpb24gc2V0SW5pdGlhbERPTVByb3BlcnRpZXModGFnLCBkb21FbGVtZW50LCByb290Q29udGFpbmVyRWxlbWVudCwgbmV4dFByb3BzLCBpc0N1c3RvbUNvbXBvbmVudFRhZykge1xuICBmb3IgKHZhciBwcm9wS2V5IGluIG5leHRQcm9wcykge1xuICAgIGlmICghbmV4dFByb3BzLmhhc093blByb3BlcnR5KHByb3BLZXkpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICB2YXIgbmV4dFByb3AgPSBuZXh0UHJvcHNbcHJvcEtleV07XG5cbiAgICBpZiAocHJvcEtleSA9PT0gU1RZTEUpIHtcbiAgICAgIHtcbiAgICAgICAgaWYgKG5leHRQcm9wKSB7XG4gICAgICAgICAgLy8gRnJlZXplIHRoZSBuZXh0IHN0eWxlIG9iamVjdCBzbyB0aGF0IHdlIGNhbiBhc3N1bWUgaXQgd29uJ3QgYmVcbiAgICAgICAgICAvLyBtdXRhdGVkLiBXZSBoYXZlIGFscmVhZHkgd2FybmVkIGZvciB0aGlzIGluIHRoZSBwYXN0LlxuICAgICAgICAgIE9iamVjdC5mcmVlemUobmV4dFByb3ApO1xuICAgICAgICB9XG4gICAgICB9IC8vIFJlbGllcyBvbiBgdXBkYXRlU3R5bGVzQnlJRGAgbm90IG11dGF0aW5nIGBzdHlsZVVwZGF0ZXNgLlxuXG5cbiAgICAgIHNldFZhbHVlRm9yU3R5bGVzKGRvbUVsZW1lbnQsIG5leHRQcm9wKTtcbiAgICB9IGVsc2UgaWYgKHByb3BLZXkgPT09IERBTkdFUk9VU0xZX1NFVF9JTk5FUl9IVE1MKSB7XG4gICAgICB2YXIgbmV4dEh0bWwgPSBuZXh0UHJvcCA/IG5leHRQcm9wW0hUTUwkMV0gOiB1bmRlZmluZWQ7XG5cbiAgICAgIGlmIChuZXh0SHRtbCAhPSBudWxsKSB7XG4gICAgICAgIHNldElubmVySFRNTChkb21FbGVtZW50LCBuZXh0SHRtbCk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChwcm9wS2V5ID09PSBDSElMRFJFTikge1xuICAgICAgaWYgKHR5cGVvZiBuZXh0UHJvcCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgLy8gQXZvaWQgc2V0dGluZyBpbml0aWFsIHRleHRDb250ZW50IHdoZW4gdGhlIHRleHQgaXMgZW1wdHkuIEluIElFMTEgc2V0dGluZ1xuICAgICAgICAvLyB0ZXh0Q29udGVudCBvbiBhIDx0ZXh0YXJlYT4gd2lsbCBjYXVzZSB0aGUgcGxhY2Vob2xkZXIgdG8gbm90XG4gICAgICAgIC8vIHNob3cgd2l0aGluIHRoZSA8dGV4dGFyZWE+IHVudGlsIGl0IGhhcyBiZWVuIGZvY3VzZWQgYW5kIGJsdXJyZWQgYWdhaW4uXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvNjczMSNpc3N1ZWNvbW1lbnQtMjU0ODc0NTUzXG4gICAgICAgIHZhciBjYW5TZXRUZXh0Q29udGVudCA9IHRhZyAhPT0gJ3RleHRhcmVhJyB8fCBuZXh0UHJvcCAhPT0gJyc7XG5cbiAgICAgICAgaWYgKGNhblNldFRleHRDb250ZW50KSB7XG4gICAgICAgICAgc2V0VGV4dENvbnRlbnQoZG9tRWxlbWVudCwgbmV4dFByb3ApO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBuZXh0UHJvcCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgc2V0VGV4dENvbnRlbnQoZG9tRWxlbWVudCwgJycgKyBuZXh0UHJvcCk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChwcm9wS2V5ID09PSBTVVBQUkVTU19DT05URU5UX0VESVRBQkxFX1dBUk5JTkcgfHwgcHJvcEtleSA9PT0gU1VQUFJFU1NfSFlEUkFUSU9OX1dBUk5JTkcpIDsgZWxzZSBpZiAocHJvcEtleSA9PT0gQVVUT0ZPQ1VTKSA7IGVsc2UgaWYgKHJlZ2lzdHJhdGlvbk5hbWVEZXBlbmRlbmNpZXMuaGFzT3duUHJvcGVydHkocHJvcEtleSkpIHtcbiAgICAgIGlmIChuZXh0UHJvcCAhPSBudWxsKSB7XG4gICAgICAgIGlmICggdHlwZW9mIG5leHRQcm9wICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgd2FybkZvckludmFsaWRFdmVudExpc3RlbmVyKHByb3BLZXksIG5leHRQcm9wKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwcm9wS2V5ID09PSAnb25TY3JvbGwnKSB7XG4gICAgICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudCgnc2Nyb2xsJywgZG9tRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKG5leHRQcm9wICE9IG51bGwpIHtcbiAgICAgIHNldFZhbHVlRm9yUHJvcGVydHkoZG9tRWxlbWVudCwgcHJvcEtleSwgbmV4dFByb3AsIGlzQ3VzdG9tQ29tcG9uZW50VGFnKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gdXBkYXRlRE9NUHJvcGVydGllcyhkb21FbGVtZW50LCB1cGRhdGVQYXlsb2FkLCB3YXNDdXN0b21Db21wb25lbnRUYWcsIGlzQ3VzdG9tQ29tcG9uZW50VGFnKSB7XG4gIC8vIFRPRE86IEhhbmRsZSB3YXNDdXN0b21Db21wb25lbnRUYWdcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCB1cGRhdGVQYXlsb2FkLmxlbmd0aDsgaSArPSAyKSB7XG4gICAgdmFyIHByb3BLZXkgPSB1cGRhdGVQYXlsb2FkW2ldO1xuICAgIHZhciBwcm9wVmFsdWUgPSB1cGRhdGVQYXlsb2FkW2kgKyAxXTtcblxuICAgIGlmIChwcm9wS2V5ID09PSBTVFlMRSkge1xuICAgICAgc2V0VmFsdWVGb3JTdHlsZXMoZG9tRWxlbWVudCwgcHJvcFZhbHVlKTtcbiAgICB9IGVsc2UgaWYgKHByb3BLZXkgPT09IERBTkdFUk9VU0xZX1NFVF9JTk5FUl9IVE1MKSB7XG4gICAgICBzZXRJbm5lckhUTUwoZG9tRWxlbWVudCwgcHJvcFZhbHVlKTtcbiAgICB9IGVsc2UgaWYgKHByb3BLZXkgPT09IENISUxEUkVOKSB7XG4gICAgICBzZXRUZXh0Q29udGVudChkb21FbGVtZW50LCBwcm9wVmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRWYWx1ZUZvclByb3BlcnR5KGRvbUVsZW1lbnQsIHByb3BLZXksIHByb3BWYWx1ZSwgaXNDdXN0b21Db21wb25lbnRUYWcpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjcmVhdGVFbGVtZW50KHR5cGUsIHByb3BzLCByb290Q29udGFpbmVyRWxlbWVudCwgcGFyZW50TmFtZXNwYWNlKSB7XG4gIHZhciBpc0N1c3RvbUNvbXBvbmVudFRhZzsgLy8gV2UgY3JlYXRlIHRhZ3MgaW4gdGhlIG5hbWVzcGFjZSBvZiB0aGVpciBwYXJlbnQgY29udGFpbmVyLCBleGNlcHQgSFRNTFxuICAvLyB0YWdzIGdldCBubyBuYW1lc3BhY2UuXG5cbiAgdmFyIG93bmVyRG9jdW1lbnQgPSBnZXRPd25lckRvY3VtZW50RnJvbVJvb3RDb250YWluZXIocm9vdENvbnRhaW5lckVsZW1lbnQpO1xuICB2YXIgZG9tRWxlbWVudDtcbiAgdmFyIG5hbWVzcGFjZVVSSSA9IHBhcmVudE5hbWVzcGFjZTtcblxuICBpZiAobmFtZXNwYWNlVVJJID09PSBIVE1MX05BTUVTUEFDRSQxKSB7XG4gICAgbmFtZXNwYWNlVVJJID0gZ2V0SW50cmluc2ljTmFtZXNwYWNlKHR5cGUpO1xuICB9XG5cbiAgaWYgKG5hbWVzcGFjZVVSSSA9PT0gSFRNTF9OQU1FU1BBQ0UkMSkge1xuICAgIHtcbiAgICAgIGlzQ3VzdG9tQ29tcG9uZW50VGFnID0gaXNDdXN0b21Db21wb25lbnQodHlwZSwgcHJvcHMpOyAvLyBTaG91bGQgdGhpcyBjaGVjayBiZSBnYXRlZCBieSBwYXJlbnQgbmFtZXNwYWNlPyBOb3Qgc3VyZSB3ZSB3YW50IHRvXG4gICAgICAvLyBhbGxvdyA8U1ZHPiBvciA8bUFUSD4uXG5cbiAgICAgIGlmICghaXNDdXN0b21Db21wb25lbnRUYWcgJiYgdHlwZSAhPT0gdHlwZS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgIGVycm9yKCc8JXMgLz4gaXMgdXNpbmcgaW5jb3JyZWN0IGNhc2luZy4gJyArICdVc2UgUGFzY2FsQ2FzZSBmb3IgUmVhY3QgY29tcG9uZW50cywgJyArICdvciBsb3dlcmNhc2UgZm9yIEhUTUwgZWxlbWVudHMuJywgdHlwZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHR5cGUgPT09ICdzY3JpcHQnKSB7XG4gICAgICAvLyBDcmVhdGUgdGhlIHNjcmlwdCB2aWEgLmlubmVySFRNTCBzbyBpdHMgXCJwYXJzZXItaW5zZXJ0ZWRcIiBmbGFnIGlzXG4gICAgICAvLyBzZXQgdG8gdHJ1ZSBhbmQgaXQgZG9lcyBub3QgZXhlY3V0ZVxuICAgICAgdmFyIGRpdiA9IG93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG5cbiAgICAgIGRpdi5pbm5lckhUTUwgPSAnPHNjcmlwdD48JyArICcvc2NyaXB0Pic7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiAgICAgIC8vIFRoaXMgaXMgZ3VhcmFudGVlZCB0byB5aWVsZCBhIHNjcmlwdCBlbGVtZW50LlxuXG4gICAgICB2YXIgZmlyc3RDaGlsZCA9IGRpdi5maXJzdENoaWxkO1xuICAgICAgZG9tRWxlbWVudCA9IGRpdi5yZW1vdmVDaGlsZChmaXJzdENoaWxkKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBwcm9wcy5pcyA9PT0gJ3N0cmluZycpIHtcbiAgICAgIC8vICRGbG93SXNzdWUgYGNyZWF0ZUVsZW1lbnRgIHNob3VsZCBiZSB1cGRhdGVkIGZvciBXZWIgQ29tcG9uZW50c1xuICAgICAgZG9tRWxlbWVudCA9IG93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0eXBlLCB7XG4gICAgICAgIGlzOiBwcm9wcy5pc1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFNlcGFyYXRlIGVsc2UgYnJhbmNoIGluc3RlYWQgb2YgdXNpbmcgYHByb3BzLmlzIHx8IHVuZGVmaW5lZGAgYWJvdmUgYmVjYXVzZSBvZiBhIEZpcmVmb3ggYnVnLlxuICAgICAgLy8gU2VlIGRpc2N1c3Npb24gaW4gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L3B1bGwvNjg5NlxuICAgICAgLy8gYW5kIGRpc2N1c3Npb24gaW4gaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NjI0MFxuICAgICAgZG9tRWxlbWVudCA9IG93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0eXBlKTsgLy8gTm9ybWFsbHkgYXR0cmlidXRlcyBhcmUgYXNzaWduZWQgaW4gYHNldEluaXRpYWxET01Qcm9wZXJ0aWVzYCwgaG93ZXZlciB0aGUgYG11bHRpcGxlYCBhbmQgYHNpemVgXG4gICAgICAvLyBhdHRyaWJ1dGVzIG9uIGBzZWxlY3RgcyBuZWVkcyB0byBiZSBhZGRlZCBiZWZvcmUgYG9wdGlvbmBzIGFyZSBpbnNlcnRlZC5cbiAgICAgIC8vIFRoaXMgcHJldmVudHM6XG4gICAgICAvLyAtIGEgYnVnIHdoZXJlIHRoZSBgc2VsZWN0YCBkb2VzIG5vdCBzY3JvbGwgdG8gdGhlIGNvcnJlY3Qgb3B0aW9uIGJlY2F1c2Ugc2luZ3VsYXJcbiAgICAgIC8vICBgc2VsZWN0YCBlbGVtZW50cyBhdXRvbWF0aWNhbGx5IHBpY2sgdGhlIGZpcnN0IGl0ZW0gIzEzMjIyXG4gICAgICAvLyAtIGEgYnVnIHdoZXJlIHRoZSBgc2VsZWN0YCBzZXQgdGhlIGZpcnN0IGl0ZW0gYXMgc2VsZWN0ZWQgZGVzcGl0ZSB0aGUgYHNpemVgIGF0dHJpYnV0ZSAjMTQyMzlcbiAgICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzEzMjIyXG4gICAgICAvLyBhbmQgaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xNDIzOVxuXG4gICAgICBpZiAodHlwZSA9PT0gJ3NlbGVjdCcpIHtcbiAgICAgICAgdmFyIG5vZGUgPSBkb21FbGVtZW50O1xuXG4gICAgICAgIGlmIChwcm9wcy5tdWx0aXBsZSkge1xuICAgICAgICAgIG5vZGUubXVsdGlwbGUgPSB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKHByb3BzLnNpemUpIHtcbiAgICAgICAgICAvLyBTZXR0aW5nIGEgc2l6ZSBncmVhdGVyIHRoYW4gMSBjYXVzZXMgYSBzZWxlY3QgdG8gYmVoYXZlIGxpa2UgYG11bHRpcGxlPXRydWVgLCB3aGVyZVxuICAgICAgICAgIC8vIGl0IGlzIHBvc3NpYmxlIHRoYXQgbm8gb3B0aW9uIGlzIHNlbGVjdGVkLlxuICAgICAgICAgIC8vXG4gICAgICAgICAgLy8gVGhpcyBpcyBvbmx5IG5lY2Vzc2FyeSB3aGVuIGEgc2VsZWN0IGluIFwic2luZ2xlIHNlbGVjdGlvbiBtb2RlXCIuXG4gICAgICAgICAgbm9kZS5zaXplID0gcHJvcHMuc2l6ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBkb21FbGVtZW50ID0gb3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50TlMobmFtZXNwYWNlVVJJLCB0eXBlKTtcbiAgfVxuXG4gIHtcbiAgICBpZiAobmFtZXNwYWNlVVJJID09PSBIVE1MX05BTUVTUEFDRSQxKSB7XG4gICAgICBpZiAoIWlzQ3VzdG9tQ29tcG9uZW50VGFnICYmIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkb21FbGVtZW50KSA9PT0gJ1tvYmplY3QgSFRNTFVua25vd25FbGVtZW50XScgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh3YXJuZWRVbmtub3duVGFncywgdHlwZSkpIHtcbiAgICAgICAgd2FybmVkVW5rbm93blRhZ3NbdHlwZV0gPSB0cnVlO1xuXG4gICAgICAgIGVycm9yKCdUaGUgdGFnIDwlcz4gaXMgdW5yZWNvZ25pemVkIGluIHRoaXMgYnJvd3Nlci4gJyArICdJZiB5b3UgbWVhbnQgdG8gcmVuZGVyIGEgUmVhY3QgY29tcG9uZW50LCBzdGFydCBpdHMgbmFtZSB3aXRoICcgKyAnYW4gdXBwZXJjYXNlIGxldHRlci4nLCB0eXBlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gZG9tRWxlbWVudDtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVRleHROb2RlKHRleHQsIHJvb3RDb250YWluZXJFbGVtZW50KSB7XG4gIHJldHVybiBnZXRPd25lckRvY3VtZW50RnJvbVJvb3RDb250YWluZXIocm9vdENvbnRhaW5lckVsZW1lbnQpLmNyZWF0ZVRleHROb2RlKHRleHQpO1xufVxuZnVuY3Rpb24gc2V0SW5pdGlhbFByb3BlcnRpZXMoZG9tRWxlbWVudCwgdGFnLCByYXdQcm9wcywgcm9vdENvbnRhaW5lckVsZW1lbnQpIHtcbiAgdmFyIGlzQ3VzdG9tQ29tcG9uZW50VGFnID0gaXNDdXN0b21Db21wb25lbnQodGFnLCByYXdQcm9wcyk7XG5cbiAge1xuICAgIHZhbGlkYXRlUHJvcGVydGllc0luRGV2ZWxvcG1lbnQodGFnLCByYXdQcm9wcyk7XG4gIH0gLy8gVE9ETzogTWFrZSBzdXJlIHRoYXQgd2UgY2hlY2sgaXNNb3VudGVkIGJlZm9yZSBmaXJpbmcgYW55IG9mIHRoZXNlIGV2ZW50cy5cblxuXG4gIHZhciBwcm9wcztcblxuICBzd2l0Y2ggKHRhZykge1xuICAgIGNhc2UgJ2RpYWxvZyc6XG4gICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCdjYW5jZWwnLCBkb21FbGVtZW50KTtcbiAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoJ2Nsb3NlJywgZG9tRWxlbWVudCk7XG4gICAgICBwcm9wcyA9IHJhd1Byb3BzO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdpZnJhbWUnOlxuICAgIGNhc2UgJ29iamVjdCc6XG4gICAgY2FzZSAnZW1iZWQnOlxuICAgICAgLy8gV2UgbGlzdGVuIHRvIHRoaXMgZXZlbnQgaW4gY2FzZSB0byBlbnN1cmUgZW11bGF0ZWQgYnViYmxlXG4gICAgICAvLyBsaXN0ZW5lcnMgc3RpbGwgZmlyZSBmb3IgdGhlIGxvYWQgZXZlbnQuXG4gICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCdsb2FkJywgZG9tRWxlbWVudCk7XG4gICAgICBwcm9wcyA9IHJhd1Byb3BzO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICd2aWRlbyc6XG4gICAgY2FzZSAnYXVkaW8nOlxuICAgICAgLy8gV2UgbGlzdGVuIHRvIHRoZXNlIGV2ZW50cyBpbiBjYXNlIHRvIGVuc3VyZSBlbXVsYXRlZCBidWJibGVcbiAgICAgIC8vIGxpc3RlbmVycyBzdGlsbCBmaXJlIGZvciBhbGwgdGhlIG1lZGlhIGV2ZW50cy5cbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWVkaWFFdmVudFR5cGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQobWVkaWFFdmVudFR5cGVzW2ldLCBkb21FbGVtZW50KTtcbiAgICAgIH1cblxuICAgICAgcHJvcHMgPSByYXdQcm9wcztcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnc291cmNlJzpcbiAgICAgIC8vIFdlIGxpc3RlbiB0byB0aGlzIGV2ZW50IGluIGNhc2UgdG8gZW5zdXJlIGVtdWxhdGVkIGJ1YmJsZVxuICAgICAgLy8gbGlzdGVuZXJzIHN0aWxsIGZpcmUgZm9yIHRoZSBlcnJvciBldmVudC5cbiAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoJ2Vycm9yJywgZG9tRWxlbWVudCk7XG4gICAgICBwcm9wcyA9IHJhd1Byb3BzO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdpbWcnOlxuICAgIGNhc2UgJ2ltYWdlJzpcbiAgICBjYXNlICdsaW5rJzpcbiAgICAgIC8vIFdlIGxpc3RlbiB0byB0aGVzZSBldmVudHMgaW4gY2FzZSB0byBlbnN1cmUgZW11bGF0ZWQgYnViYmxlXG4gICAgICAvLyBsaXN0ZW5lcnMgc3RpbGwgZmlyZSBmb3IgZXJyb3IgYW5kIGxvYWQgZXZlbnRzLlxuICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudCgnZXJyb3InLCBkb21FbGVtZW50KTtcbiAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoJ2xvYWQnLCBkb21FbGVtZW50KTtcbiAgICAgIHByb3BzID0gcmF3UHJvcHM7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2RldGFpbHMnOlxuICAgICAgLy8gV2UgbGlzdGVuIHRvIHRoaXMgZXZlbnQgaW4gY2FzZSB0byBlbnN1cmUgZW11bGF0ZWQgYnViYmxlXG4gICAgICAvLyBsaXN0ZW5lcnMgc3RpbGwgZmlyZSBmb3IgdGhlIHRvZ2dsZSBldmVudC5cbiAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoJ3RvZ2dsZScsIGRvbUVsZW1lbnQpO1xuICAgICAgcHJvcHMgPSByYXdQcm9wcztcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnaW5wdXQnOlxuICAgICAgaW5pdFdyYXBwZXJTdGF0ZShkb21FbGVtZW50LCByYXdQcm9wcyk7XG4gICAgICBwcm9wcyA9IGdldEhvc3RQcm9wcyhkb21FbGVtZW50LCByYXdQcm9wcyk7IC8vIFdlIGxpc3RlbiB0byB0aGlzIGV2ZW50IGluIGNhc2UgdG8gZW5zdXJlIGVtdWxhdGVkIGJ1YmJsZVxuICAgICAgLy8gbGlzdGVuZXJzIHN0aWxsIGZpcmUgZm9yIHRoZSBpbnZhbGlkIGV2ZW50LlxuXG4gICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCdpbnZhbGlkJywgZG9tRWxlbWVudCk7XG5cbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnb3B0aW9uJzpcbiAgICAgIHZhbGlkYXRlUHJvcHMoZG9tRWxlbWVudCwgcmF3UHJvcHMpO1xuICAgICAgcHJvcHMgPSBnZXRIb3N0UHJvcHMkMShkb21FbGVtZW50LCByYXdQcm9wcyk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ3NlbGVjdCc6XG4gICAgICBpbml0V3JhcHBlclN0YXRlJDEoZG9tRWxlbWVudCwgcmF3UHJvcHMpO1xuICAgICAgcHJvcHMgPSBnZXRIb3N0UHJvcHMkMihkb21FbGVtZW50LCByYXdQcm9wcyk7IC8vIFdlIGxpc3RlbiB0byB0aGlzIGV2ZW50IGluIGNhc2UgdG8gZW5zdXJlIGVtdWxhdGVkIGJ1YmJsZVxuICAgICAgLy8gbGlzdGVuZXJzIHN0aWxsIGZpcmUgZm9yIHRoZSBpbnZhbGlkIGV2ZW50LlxuXG4gICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCdpbnZhbGlkJywgZG9tRWxlbWVudCk7XG5cbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAndGV4dGFyZWEnOlxuICAgICAgaW5pdFdyYXBwZXJTdGF0ZSQyKGRvbUVsZW1lbnQsIHJhd1Byb3BzKTtcbiAgICAgIHByb3BzID0gZ2V0SG9zdFByb3BzJDMoZG9tRWxlbWVudCwgcmF3UHJvcHMpOyAvLyBXZSBsaXN0ZW4gdG8gdGhpcyBldmVudCBpbiBjYXNlIHRvIGVuc3VyZSBlbXVsYXRlZCBidWJibGVcbiAgICAgIC8vIGxpc3RlbmVycyBzdGlsbCBmaXJlIGZvciB0aGUgaW52YWxpZCBldmVudC5cblxuICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudCgnaW52YWxpZCcsIGRvbUVsZW1lbnQpO1xuXG4gICAgICBicmVhaztcblxuICAgIGRlZmF1bHQ6XG4gICAgICBwcm9wcyA9IHJhd1Byb3BzO1xuICB9XG5cbiAgYXNzZXJ0VmFsaWRQcm9wcyh0YWcsIHByb3BzKTtcbiAgc2V0SW5pdGlhbERPTVByb3BlcnRpZXModGFnLCBkb21FbGVtZW50LCByb290Q29udGFpbmVyRWxlbWVudCwgcHJvcHMsIGlzQ3VzdG9tQ29tcG9uZW50VGFnKTtcblxuICBzd2l0Y2ggKHRhZykge1xuICAgIGNhc2UgJ2lucHV0JzpcbiAgICAgIC8vIFRPRE86IE1ha2Ugc3VyZSB3ZSBjaGVjayBpZiB0aGlzIGlzIHN0aWxsIHVubW91bnRlZCBvciBkbyBhbnkgY2xlYW5cbiAgICAgIC8vIHVwIG5lY2Vzc2FyeSBzaW5jZSB3ZSBuZXZlciBzdG9wIHRyYWNraW5nIGFueW1vcmUuXG4gICAgICB0cmFjayhkb21FbGVtZW50KTtcbiAgICAgIHBvc3RNb3VudFdyYXBwZXIoZG9tRWxlbWVudCwgcmF3UHJvcHMsIGZhbHNlKTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAndGV4dGFyZWEnOlxuICAgICAgLy8gVE9ETzogTWFrZSBzdXJlIHdlIGNoZWNrIGlmIHRoaXMgaXMgc3RpbGwgdW5tb3VudGVkIG9yIGRvIGFueSBjbGVhblxuICAgICAgLy8gdXAgbmVjZXNzYXJ5IHNpbmNlIHdlIG5ldmVyIHN0b3AgdHJhY2tpbmcgYW55bW9yZS5cbiAgICAgIHRyYWNrKGRvbUVsZW1lbnQpO1xuICAgICAgcG9zdE1vdW50V3JhcHBlciQzKGRvbUVsZW1lbnQpO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdvcHRpb24nOlxuICAgICAgcG9zdE1vdW50V3JhcHBlciQxKGRvbUVsZW1lbnQsIHJhd1Byb3BzKTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnc2VsZWN0JzpcbiAgICAgIHBvc3RNb3VudFdyYXBwZXIkMihkb21FbGVtZW50LCByYXdQcm9wcyk7XG4gICAgICBicmVhaztcblxuICAgIGRlZmF1bHQ6XG4gICAgICBpZiAodHlwZW9mIHByb3BzLm9uQ2xpY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgLy8gVE9ETzogVGhpcyBjYXN0IG1heSBub3QgYmUgc291bmQgZm9yIFNWRywgTWF0aE1MIG9yIGN1c3RvbSBlbGVtZW50cy5cbiAgICAgICAgdHJhcENsaWNrT25Ob25JbnRlcmFjdGl2ZUVsZW1lbnQoZG9tRWxlbWVudCk7XG4gICAgICB9XG5cbiAgICAgIGJyZWFrO1xuICB9XG59IC8vIENhbGN1bGF0ZSB0aGUgZGlmZiBiZXR3ZWVuIHRoZSB0d28gb2JqZWN0cy5cblxuZnVuY3Rpb24gZGlmZlByb3BlcnRpZXMoZG9tRWxlbWVudCwgdGFnLCBsYXN0UmF3UHJvcHMsIG5leHRSYXdQcm9wcywgcm9vdENvbnRhaW5lckVsZW1lbnQpIHtcbiAge1xuICAgIHZhbGlkYXRlUHJvcGVydGllc0luRGV2ZWxvcG1lbnQodGFnLCBuZXh0UmF3UHJvcHMpO1xuICB9XG5cbiAgdmFyIHVwZGF0ZVBheWxvYWQgPSBudWxsO1xuICB2YXIgbGFzdFByb3BzO1xuICB2YXIgbmV4dFByb3BzO1xuXG4gIHN3aXRjaCAodGFnKSB7XG4gICAgY2FzZSAnaW5wdXQnOlxuICAgICAgbGFzdFByb3BzID0gZ2V0SG9zdFByb3BzKGRvbUVsZW1lbnQsIGxhc3RSYXdQcm9wcyk7XG4gICAgICBuZXh0UHJvcHMgPSBnZXRIb3N0UHJvcHMoZG9tRWxlbWVudCwgbmV4dFJhd1Byb3BzKTtcbiAgICAgIHVwZGF0ZVBheWxvYWQgPSBbXTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnb3B0aW9uJzpcbiAgICAgIGxhc3RQcm9wcyA9IGdldEhvc3RQcm9wcyQxKGRvbUVsZW1lbnQsIGxhc3RSYXdQcm9wcyk7XG4gICAgICBuZXh0UHJvcHMgPSBnZXRIb3N0UHJvcHMkMShkb21FbGVtZW50LCBuZXh0UmF3UHJvcHMpO1xuICAgICAgdXBkYXRlUGF5bG9hZCA9IFtdO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdzZWxlY3QnOlxuICAgICAgbGFzdFByb3BzID0gZ2V0SG9zdFByb3BzJDIoZG9tRWxlbWVudCwgbGFzdFJhd1Byb3BzKTtcbiAgICAgIG5leHRQcm9wcyA9IGdldEhvc3RQcm9wcyQyKGRvbUVsZW1lbnQsIG5leHRSYXdQcm9wcyk7XG4gICAgICB1cGRhdGVQYXlsb2FkID0gW107XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ3RleHRhcmVhJzpcbiAgICAgIGxhc3RQcm9wcyA9IGdldEhvc3RQcm9wcyQzKGRvbUVsZW1lbnQsIGxhc3RSYXdQcm9wcyk7XG4gICAgICBuZXh0UHJvcHMgPSBnZXRIb3N0UHJvcHMkMyhkb21FbGVtZW50LCBuZXh0UmF3UHJvcHMpO1xuICAgICAgdXBkYXRlUGF5bG9hZCA9IFtdO1xuICAgICAgYnJlYWs7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgbGFzdFByb3BzID0gbGFzdFJhd1Byb3BzO1xuICAgICAgbmV4dFByb3BzID0gbmV4dFJhd1Byb3BzO1xuXG4gICAgICBpZiAodHlwZW9mIGxhc3RQcm9wcy5vbkNsaWNrICE9PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBuZXh0UHJvcHMub25DbGljayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAvLyBUT0RPOiBUaGlzIGNhc3QgbWF5IG5vdCBiZSBzb3VuZCBmb3IgU1ZHLCBNYXRoTUwgb3IgY3VzdG9tIGVsZW1lbnRzLlxuICAgICAgICB0cmFwQ2xpY2tPbk5vbkludGVyYWN0aXZlRWxlbWVudChkb21FbGVtZW50KTtcbiAgICAgIH1cblxuICAgICAgYnJlYWs7XG4gIH1cblxuICBhc3NlcnRWYWxpZFByb3BzKHRhZywgbmV4dFByb3BzKTtcbiAgdmFyIHByb3BLZXk7XG4gIHZhciBzdHlsZU5hbWU7XG4gIHZhciBzdHlsZVVwZGF0ZXMgPSBudWxsO1xuXG4gIGZvciAocHJvcEtleSBpbiBsYXN0UHJvcHMpIHtcbiAgICBpZiAobmV4dFByb3BzLmhhc093blByb3BlcnR5KHByb3BLZXkpIHx8ICFsYXN0UHJvcHMuaGFzT3duUHJvcGVydHkocHJvcEtleSkgfHwgbGFzdFByb3BzW3Byb3BLZXldID09IG51bGwpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmIChwcm9wS2V5ID09PSBTVFlMRSkge1xuICAgICAgdmFyIGxhc3RTdHlsZSA9IGxhc3RQcm9wc1twcm9wS2V5XTtcblxuICAgICAgZm9yIChzdHlsZU5hbWUgaW4gbGFzdFN0eWxlKSB7XG4gICAgICAgIGlmIChsYXN0U3R5bGUuaGFzT3duUHJvcGVydHkoc3R5bGVOYW1lKSkge1xuICAgICAgICAgIGlmICghc3R5bGVVcGRhdGVzKSB7XG4gICAgICAgICAgICBzdHlsZVVwZGF0ZXMgPSB7fTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBzdHlsZVVwZGF0ZXNbc3R5bGVOYW1lXSA9ICcnO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChwcm9wS2V5ID09PSBEQU5HRVJPVVNMWV9TRVRfSU5ORVJfSFRNTCB8fCBwcm9wS2V5ID09PSBDSElMRFJFTikgOyBlbHNlIGlmIChwcm9wS2V5ID09PSBTVVBQUkVTU19DT05URU5UX0VESVRBQkxFX1dBUk5JTkcgfHwgcHJvcEtleSA9PT0gU1VQUFJFU1NfSFlEUkFUSU9OX1dBUk5JTkcpIDsgZWxzZSBpZiAocHJvcEtleSA9PT0gQVVUT0ZPQ1VTKSA7IGVsc2UgaWYgKHJlZ2lzdHJhdGlvbk5hbWVEZXBlbmRlbmNpZXMuaGFzT3duUHJvcGVydHkocHJvcEtleSkpIHtcbiAgICAgIC8vIFRoaXMgaXMgYSBzcGVjaWFsIGNhc2UuIElmIGFueSBsaXN0ZW5lciB1cGRhdGVzIHdlIG5lZWQgdG8gZW5zdXJlXG4gICAgICAvLyB0aGF0IHRoZSBcImN1cnJlbnRcIiBmaWJlciBwb2ludGVyIGdldHMgdXBkYXRlZCBzbyB3ZSBuZWVkIGEgY29tbWl0XG4gICAgICAvLyB0byB1cGRhdGUgdGhpcyBlbGVtZW50LlxuICAgICAgaWYgKCF1cGRhdGVQYXlsb2FkKSB7XG4gICAgICAgIHVwZGF0ZVBheWxvYWQgPSBbXTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRm9yIGFsbCBvdGhlciBkZWxldGVkIHByb3BlcnRpZXMgd2UgYWRkIGl0IHRvIHRoZSBxdWV1ZS4gV2UgdXNlXG4gICAgICAvLyB0aGUgYWxsb3dlZCBwcm9wZXJ0eSBsaXN0IGluIHRoZSBjb21taXQgcGhhc2UgaW5zdGVhZC5cbiAgICAgICh1cGRhdGVQYXlsb2FkID0gdXBkYXRlUGF5bG9hZCB8fCBbXSkucHVzaChwcm9wS2V5LCBudWxsKTtcbiAgICB9XG4gIH1cblxuICBmb3IgKHByb3BLZXkgaW4gbmV4dFByb3BzKSB7XG4gICAgdmFyIG5leHRQcm9wID0gbmV4dFByb3BzW3Byb3BLZXldO1xuICAgIHZhciBsYXN0UHJvcCA9IGxhc3RQcm9wcyAhPSBudWxsID8gbGFzdFByb3BzW3Byb3BLZXldIDogdW5kZWZpbmVkO1xuXG4gICAgaWYgKCFuZXh0UHJvcHMuaGFzT3duUHJvcGVydHkocHJvcEtleSkgfHwgbmV4dFByb3AgPT09IGxhc3RQcm9wIHx8IG5leHRQcm9wID09IG51bGwgJiYgbGFzdFByb3AgPT0gbnVsbCkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKHByb3BLZXkgPT09IFNUWUxFKSB7XG4gICAgICB7XG4gICAgICAgIGlmIChuZXh0UHJvcCkge1xuICAgICAgICAgIC8vIEZyZWV6ZSB0aGUgbmV4dCBzdHlsZSBvYmplY3Qgc28gdGhhdCB3ZSBjYW4gYXNzdW1lIGl0IHdvbid0IGJlXG4gICAgICAgICAgLy8gbXV0YXRlZC4gV2UgaGF2ZSBhbHJlYWR5IHdhcm5lZCBmb3IgdGhpcyBpbiB0aGUgcGFzdC5cbiAgICAgICAgICBPYmplY3QuZnJlZXplKG5leHRQcm9wKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAobGFzdFByb3ApIHtcbiAgICAgICAgLy8gVW5zZXQgc3R5bGVzIG9uIGBsYXN0UHJvcGAgYnV0IG5vdCBvbiBgbmV4dFByb3BgLlxuICAgICAgICBmb3IgKHN0eWxlTmFtZSBpbiBsYXN0UHJvcCkge1xuICAgICAgICAgIGlmIChsYXN0UHJvcC5oYXNPd25Qcm9wZXJ0eShzdHlsZU5hbWUpICYmICghbmV4dFByb3AgfHwgIW5leHRQcm9wLmhhc093blByb3BlcnR5KHN0eWxlTmFtZSkpKSB7XG4gICAgICAgICAgICBpZiAoIXN0eWxlVXBkYXRlcykge1xuICAgICAgICAgICAgICBzdHlsZVVwZGF0ZXMgPSB7fTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3R5bGVVcGRhdGVzW3N0eWxlTmFtZV0gPSAnJztcbiAgICAgICAgICB9XG4gICAgICAgIH0gLy8gVXBkYXRlIHN0eWxlcyB0aGF0IGNoYW5nZWQgc2luY2UgYGxhc3RQcm9wYC5cblxuXG4gICAgICAgIGZvciAoc3R5bGVOYW1lIGluIG5leHRQcm9wKSB7XG4gICAgICAgICAgaWYgKG5leHRQcm9wLmhhc093blByb3BlcnR5KHN0eWxlTmFtZSkgJiYgbGFzdFByb3Bbc3R5bGVOYW1lXSAhPT0gbmV4dFByb3Bbc3R5bGVOYW1lXSkge1xuICAgICAgICAgICAgaWYgKCFzdHlsZVVwZGF0ZXMpIHtcbiAgICAgICAgICAgICAgc3R5bGVVcGRhdGVzID0ge307XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHN0eWxlVXBkYXRlc1tzdHlsZU5hbWVdID0gbmV4dFByb3Bbc3R5bGVOYW1lXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFJlbGllcyBvbiBgdXBkYXRlU3R5bGVzQnlJRGAgbm90IG11dGF0aW5nIGBzdHlsZVVwZGF0ZXNgLlxuICAgICAgICBpZiAoIXN0eWxlVXBkYXRlcykge1xuICAgICAgICAgIGlmICghdXBkYXRlUGF5bG9hZCkge1xuICAgICAgICAgICAgdXBkYXRlUGF5bG9hZCA9IFtdO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHVwZGF0ZVBheWxvYWQucHVzaChwcm9wS2V5LCBzdHlsZVVwZGF0ZXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3R5bGVVcGRhdGVzID0gbmV4dFByb3A7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChwcm9wS2V5ID09PSBEQU5HRVJPVVNMWV9TRVRfSU5ORVJfSFRNTCkge1xuICAgICAgdmFyIG5leHRIdG1sID0gbmV4dFByb3AgPyBuZXh0UHJvcFtIVE1MJDFdIDogdW5kZWZpbmVkO1xuICAgICAgdmFyIGxhc3RIdG1sID0gbGFzdFByb3AgPyBsYXN0UHJvcFtIVE1MJDFdIDogdW5kZWZpbmVkO1xuXG4gICAgICBpZiAobmV4dEh0bWwgIT0gbnVsbCkge1xuICAgICAgICBpZiAobGFzdEh0bWwgIT09IG5leHRIdG1sKSB7XG4gICAgICAgICAgKHVwZGF0ZVBheWxvYWQgPSB1cGRhdGVQYXlsb2FkIHx8IFtdKS5wdXNoKHByb3BLZXksIG5leHRIdG1sKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAocHJvcEtleSA9PT0gQ0hJTERSRU4pIHtcbiAgICAgIGlmICh0eXBlb2YgbmV4dFByb3AgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBuZXh0UHJvcCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgKHVwZGF0ZVBheWxvYWQgPSB1cGRhdGVQYXlsb2FkIHx8IFtdKS5wdXNoKHByb3BLZXksICcnICsgbmV4dFByb3ApO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAocHJvcEtleSA9PT0gU1VQUFJFU1NfQ09OVEVOVF9FRElUQUJMRV9XQVJOSU5HIHx8IHByb3BLZXkgPT09IFNVUFBSRVNTX0hZRFJBVElPTl9XQVJOSU5HKSA7IGVsc2UgaWYgKHJlZ2lzdHJhdGlvbk5hbWVEZXBlbmRlbmNpZXMuaGFzT3duUHJvcGVydHkocHJvcEtleSkpIHtcbiAgICAgIGlmIChuZXh0UHJvcCAhPSBudWxsKSB7XG4gICAgICAgIC8vIFdlIGVhZ2VybHkgbGlzdGVuIHRvIHRoaXMgZXZlbiB0aG91Z2ggd2UgaGF2ZW4ndCBjb21taXR0ZWQgeWV0LlxuICAgICAgICBpZiAoIHR5cGVvZiBuZXh0UHJvcCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIHdhcm5Gb3JJbnZhbGlkRXZlbnRMaXN0ZW5lcihwcm9wS2V5LCBuZXh0UHJvcCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocHJvcEtleSA9PT0gJ29uU2Nyb2xsJykge1xuICAgICAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoJ3Njcm9sbCcsIGRvbUVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghdXBkYXRlUGF5bG9hZCAmJiBsYXN0UHJvcCAhPT0gbmV4dFByb3ApIHtcbiAgICAgICAgLy8gVGhpcyBpcyBhIHNwZWNpYWwgY2FzZS4gSWYgYW55IGxpc3RlbmVyIHVwZGF0ZXMgd2UgbmVlZCB0byBlbnN1cmVcbiAgICAgICAgLy8gdGhhdCB0aGUgXCJjdXJyZW50XCIgcHJvcHMgcG9pbnRlciBnZXRzIHVwZGF0ZWQgc28gd2UgbmVlZCBhIGNvbW1pdFxuICAgICAgICAvLyB0byB1cGRhdGUgdGhpcyBlbGVtZW50LlxuICAgICAgICB1cGRhdGVQYXlsb2FkID0gW107XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgbmV4dFByb3AgPT09ICdvYmplY3QnICYmIG5leHRQcm9wICE9PSBudWxsICYmIG5leHRQcm9wLiQkdHlwZW9mID09PSBSRUFDVF9PUEFRVUVfSURfVFlQRSkge1xuICAgICAgLy8gSWYgd2UgZW5jb3VudGVyIHVzZU9wYXF1ZVJlZmVyZW5jZSdzIG9wYXF1ZSBvYmplY3QsIHRoaXMgbWVhbnMgd2UgYXJlIGh5ZHJhdGluZy5cbiAgICAgIC8vIEluIHRoaXMgY2FzZSwgY2FsbCB0aGUgb3BhcXVlIG9iamVjdCdzIHRvU3RyaW5nIGZ1bmN0aW9uIHdoaWNoIGdlbmVyYXRlcyBhIG5ldyBjbGllbnRcbiAgICAgIC8vIElEIHNvIGNsaWVudCBhbmQgc2VydmVyIElEcyBtYXRjaCBhbmQgdGhyb3dzIHRvIHJlcmVuZGVyLlxuICAgICAgbmV4dFByb3AudG9TdHJpbmcoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRm9yIGFueSBvdGhlciBwcm9wZXJ0eSB3ZSBhbHdheXMgYWRkIGl0IHRvIHRoZSBxdWV1ZSBhbmQgdGhlbiB3ZVxuICAgICAgLy8gZmlsdGVyIGl0IG91dCB1c2luZyB0aGUgYWxsb3dlZCBwcm9wZXJ0eSBsaXN0IGR1cmluZyB0aGUgY29tbWl0LlxuICAgICAgKHVwZGF0ZVBheWxvYWQgPSB1cGRhdGVQYXlsb2FkIHx8IFtdKS5wdXNoKHByb3BLZXksIG5leHRQcm9wKTtcbiAgICB9XG4gIH1cblxuICBpZiAoc3R5bGVVcGRhdGVzKSB7XG4gICAge1xuICAgICAgdmFsaWRhdGVTaG9ydGhhbmRQcm9wZXJ0eUNvbGxpc2lvbkluRGV2KHN0eWxlVXBkYXRlcywgbmV4dFByb3BzW1NUWUxFXSk7XG4gICAgfVxuXG4gICAgKHVwZGF0ZVBheWxvYWQgPSB1cGRhdGVQYXlsb2FkIHx8IFtdKS5wdXNoKFNUWUxFLCBzdHlsZVVwZGF0ZXMpO1xuICB9XG5cbiAgcmV0dXJuIHVwZGF0ZVBheWxvYWQ7XG59IC8vIEFwcGx5IHRoZSBkaWZmLlxuXG5mdW5jdGlvbiB1cGRhdGVQcm9wZXJ0aWVzKGRvbUVsZW1lbnQsIHVwZGF0ZVBheWxvYWQsIHRhZywgbGFzdFJhd1Byb3BzLCBuZXh0UmF3UHJvcHMpIHtcbiAgLy8gVXBkYXRlIGNoZWNrZWQgKmJlZm9yZSogbmFtZS5cbiAgLy8gSW4gdGhlIG1pZGRsZSBvZiBhbiB1cGRhdGUsIGl0IGlzIHBvc3NpYmxlIHRvIGhhdmUgbXVsdGlwbGUgY2hlY2tlZC5cbiAgLy8gV2hlbiBhIGNoZWNrZWQgcmFkaW8gdHJpZXMgdG8gY2hhbmdlIG5hbWUsIGJyb3dzZXIgbWFrZXMgYW5vdGhlciByYWRpbydzIGNoZWNrZWQgZmFsc2UuXG4gIGlmICh0YWcgPT09ICdpbnB1dCcgJiYgbmV4dFJhd1Byb3BzLnR5cGUgPT09ICdyYWRpbycgJiYgbmV4dFJhd1Byb3BzLm5hbWUgIT0gbnVsbCkge1xuICAgIHVwZGF0ZUNoZWNrZWQoZG9tRWxlbWVudCwgbmV4dFJhd1Byb3BzKTtcbiAgfVxuXG4gIHZhciB3YXNDdXN0b21Db21wb25lbnRUYWcgPSBpc0N1c3RvbUNvbXBvbmVudCh0YWcsIGxhc3RSYXdQcm9wcyk7XG4gIHZhciBpc0N1c3RvbUNvbXBvbmVudFRhZyA9IGlzQ3VzdG9tQ29tcG9uZW50KHRhZywgbmV4dFJhd1Byb3BzKTsgLy8gQXBwbHkgdGhlIGRpZmYuXG5cbiAgdXBkYXRlRE9NUHJvcGVydGllcyhkb21FbGVtZW50LCB1cGRhdGVQYXlsb2FkLCB3YXNDdXN0b21Db21wb25lbnRUYWcsIGlzQ3VzdG9tQ29tcG9uZW50VGFnKTsgLy8gVE9ETzogRW5zdXJlIHRoYXQgYW4gdXBkYXRlIGdldHMgc2NoZWR1bGVkIGlmIGFueSBvZiB0aGUgc3BlY2lhbCBwcm9wc1xuICAvLyBjaGFuZ2VkLlxuXG4gIHN3aXRjaCAodGFnKSB7XG4gICAgY2FzZSAnaW5wdXQnOlxuICAgICAgLy8gVXBkYXRlIHRoZSB3cmFwcGVyIGFyb3VuZCBpbnB1dHMgKmFmdGVyKiB1cGRhdGluZyBwcm9wcy4gVGhpcyBoYXMgdG9cbiAgICAgIC8vIGhhcHBlbiBhZnRlciBgdXBkYXRlRE9NUHJvcGVydGllc2AuIE90aGVyd2lzZSBIVE1MNSBpbnB1dCB2YWxpZGF0aW9uc1xuICAgICAgLy8gcmFpc2Ugd2FybmluZ3MgYW5kIHByZXZlbnQgdGhlIG5ldyB2YWx1ZSBmcm9tIGJlaW5nIGFzc2lnbmVkLlxuICAgICAgdXBkYXRlV3JhcHBlcihkb21FbGVtZW50LCBuZXh0UmF3UHJvcHMpO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICd0ZXh0YXJlYSc6XG4gICAgICB1cGRhdGVXcmFwcGVyJDEoZG9tRWxlbWVudCwgbmV4dFJhd1Byb3BzKTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnc2VsZWN0JzpcbiAgICAgIC8vIDxzZWxlY3Q+IHZhbHVlIHVwZGF0ZSBuZWVkcyB0byBvY2N1ciBhZnRlciA8b3B0aW9uPiBjaGlsZHJlblxuICAgICAgLy8gcmVjb25jaWxpYXRpb25cbiAgICAgIHBvc3RVcGRhdGVXcmFwcGVyKGRvbUVsZW1lbnQsIG5leHRSYXdQcm9wcyk7XG4gICAgICBicmVhaztcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRQb3NzaWJsZVN0YW5kYXJkTmFtZShwcm9wTmFtZSkge1xuICB7XG4gICAgdmFyIGxvd2VyQ2FzZWROYW1lID0gcHJvcE5hbWUudG9Mb3dlckNhc2UoKTtcblxuICAgIGlmICghcG9zc2libGVTdGFuZGFyZE5hbWVzLmhhc093blByb3BlcnR5KGxvd2VyQ2FzZWROYW1lKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBvc3NpYmxlU3RhbmRhcmROYW1lc1tsb3dlckNhc2VkTmFtZV0gfHwgbnVsbDtcbiAgfVxufVxuXG5mdW5jdGlvbiBkaWZmSHlkcmF0ZWRQcm9wZXJ0aWVzKGRvbUVsZW1lbnQsIHRhZywgcmF3UHJvcHMsIHBhcmVudE5hbWVzcGFjZSwgcm9vdENvbnRhaW5lckVsZW1lbnQpIHtcbiAgdmFyIGlzQ3VzdG9tQ29tcG9uZW50VGFnO1xuICB2YXIgZXh0cmFBdHRyaWJ1dGVOYW1lcztcblxuICB7XG4gICAgc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nID0gcmF3UHJvcHNbU1VQUFJFU1NfSFlEUkFUSU9OX1dBUk5JTkddID09PSB0cnVlO1xuICAgIGlzQ3VzdG9tQ29tcG9uZW50VGFnID0gaXNDdXN0b21Db21wb25lbnQodGFnLCByYXdQcm9wcyk7XG4gICAgdmFsaWRhdGVQcm9wZXJ0aWVzSW5EZXZlbG9wbWVudCh0YWcsIHJhd1Byb3BzKTtcbiAgfSAvLyBUT0RPOiBNYWtlIHN1cmUgdGhhdCB3ZSBjaGVjayBpc01vdW50ZWQgYmVmb3JlIGZpcmluZyBhbnkgb2YgdGhlc2UgZXZlbnRzLlxuXG5cbiAgc3dpdGNoICh0YWcpIHtcbiAgICBjYXNlICdkaWFsb2cnOlxuICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudCgnY2FuY2VsJywgZG9tRWxlbWVudCk7XG4gICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCdjbG9zZScsIGRvbUVsZW1lbnQpO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdpZnJhbWUnOlxuICAgIGNhc2UgJ29iamVjdCc6XG4gICAgY2FzZSAnZW1iZWQnOlxuICAgICAgLy8gV2UgbGlzdGVuIHRvIHRoaXMgZXZlbnQgaW4gY2FzZSB0byBlbnN1cmUgZW11bGF0ZWQgYnViYmxlXG4gICAgICAvLyBsaXN0ZW5lcnMgc3RpbGwgZmlyZSBmb3IgdGhlIGxvYWQgZXZlbnQuXG4gICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCdsb2FkJywgZG9tRWxlbWVudCk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ3ZpZGVvJzpcbiAgICBjYXNlICdhdWRpbyc6XG4gICAgICAvLyBXZSBsaXN0ZW4gdG8gdGhlc2UgZXZlbnRzIGluIGNhc2UgdG8gZW5zdXJlIGVtdWxhdGVkIGJ1YmJsZVxuICAgICAgLy8gbGlzdGVuZXJzIHN0aWxsIGZpcmUgZm9yIGFsbCB0aGUgbWVkaWEgZXZlbnRzLlxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtZWRpYUV2ZW50VHlwZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudChtZWRpYUV2ZW50VHlwZXNbaV0sIGRvbUVsZW1lbnQpO1xuICAgICAgfVxuXG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ3NvdXJjZSc6XG4gICAgICAvLyBXZSBsaXN0ZW4gdG8gdGhpcyBldmVudCBpbiBjYXNlIHRvIGVuc3VyZSBlbXVsYXRlZCBidWJibGVcbiAgICAgIC8vIGxpc3RlbmVycyBzdGlsbCBmaXJlIGZvciB0aGUgZXJyb3IgZXZlbnQuXG4gICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCdlcnJvcicsIGRvbUVsZW1lbnQpO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdpbWcnOlxuICAgIGNhc2UgJ2ltYWdlJzpcbiAgICBjYXNlICdsaW5rJzpcbiAgICAgIC8vIFdlIGxpc3RlbiB0byB0aGVzZSBldmVudHMgaW4gY2FzZSB0byBlbnN1cmUgZW11bGF0ZWQgYnViYmxlXG4gICAgICAvLyBsaXN0ZW5lcnMgc3RpbGwgZmlyZSBmb3IgZXJyb3IgYW5kIGxvYWQgZXZlbnRzLlxuICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudCgnZXJyb3InLCBkb21FbGVtZW50KTtcbiAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoJ2xvYWQnLCBkb21FbGVtZW50KTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnZGV0YWlscyc6XG4gICAgICAvLyBXZSBsaXN0ZW4gdG8gdGhpcyBldmVudCBpbiBjYXNlIHRvIGVuc3VyZSBlbXVsYXRlZCBidWJibGVcbiAgICAgIC8vIGxpc3RlbmVycyBzdGlsbCBmaXJlIGZvciB0aGUgdG9nZ2xlIGV2ZW50LlxuICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudCgndG9nZ2xlJywgZG9tRWxlbWVudCk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2lucHV0JzpcbiAgICAgIGluaXRXcmFwcGVyU3RhdGUoZG9tRWxlbWVudCwgcmF3UHJvcHMpOyAvLyBXZSBsaXN0ZW4gdG8gdGhpcyBldmVudCBpbiBjYXNlIHRvIGVuc3VyZSBlbXVsYXRlZCBidWJibGVcbiAgICAgIC8vIGxpc3RlbmVycyBzdGlsbCBmaXJlIGZvciB0aGUgaW52YWxpZCBldmVudC5cblxuICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudCgnaW52YWxpZCcsIGRvbUVsZW1lbnQpO1xuXG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ29wdGlvbic6XG4gICAgICB2YWxpZGF0ZVByb3BzKGRvbUVsZW1lbnQsIHJhd1Byb3BzKTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnc2VsZWN0JzpcbiAgICAgIGluaXRXcmFwcGVyU3RhdGUkMShkb21FbGVtZW50LCByYXdQcm9wcyk7IC8vIFdlIGxpc3RlbiB0byB0aGlzIGV2ZW50IGluIGNhc2UgdG8gZW5zdXJlIGVtdWxhdGVkIGJ1YmJsZVxuICAgICAgLy8gbGlzdGVuZXJzIHN0aWxsIGZpcmUgZm9yIHRoZSBpbnZhbGlkIGV2ZW50LlxuXG4gICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCdpbnZhbGlkJywgZG9tRWxlbWVudCk7XG5cbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAndGV4dGFyZWEnOlxuICAgICAgaW5pdFdyYXBwZXJTdGF0ZSQyKGRvbUVsZW1lbnQsIHJhd1Byb3BzKTsgLy8gV2UgbGlzdGVuIHRvIHRoaXMgZXZlbnQgaW4gY2FzZSB0byBlbnN1cmUgZW11bGF0ZWQgYnViYmxlXG4gICAgICAvLyBsaXN0ZW5lcnMgc3RpbGwgZmlyZSBmb3IgdGhlIGludmFsaWQgZXZlbnQuXG5cbiAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoJ2ludmFsaWQnLCBkb21FbGVtZW50KTtcblxuICAgICAgYnJlYWs7XG4gIH1cblxuICBhc3NlcnRWYWxpZFByb3BzKHRhZywgcmF3UHJvcHMpO1xuXG4gIHtcbiAgICBleHRyYUF0dHJpYnV0ZU5hbWVzID0gbmV3IFNldCgpO1xuICAgIHZhciBhdHRyaWJ1dGVzID0gZG9tRWxlbWVudC5hdHRyaWJ1dGVzO1xuXG4gICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGF0dHJpYnV0ZXMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICB2YXIgbmFtZSA9IGF0dHJpYnV0ZXNbX2ldLm5hbWUudG9Mb3dlckNhc2UoKTtcblxuICAgICAgc3dpdGNoIChuYW1lKSB7XG4gICAgICAgIC8vIEJ1aWx0LWluIFNTUiBhdHRyaWJ1dGUgaXMgYWxsb3dlZFxuICAgICAgICBjYXNlICdkYXRhLXJlYWN0cm9vdCc6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIC8vIENvbnRyb2xsZWQgYXR0cmlidXRlcyBhcmUgbm90IHZhbGlkYXRlZFxuICAgICAgICAvLyBUT0RPOiBPbmx5IGlnbm9yZSB0aGVtIG9uIGNvbnRyb2xsZWQgdGFncy5cblxuICAgICAgICBjYXNlICd2YWx1ZSc6XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnY2hlY2tlZCc6XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnc2VsZWN0ZWQnOlxuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgLy8gSW50ZW50aW9uYWxseSB1c2UgdGhlIG9yaWdpbmFsIG5hbWUuXG4gICAgICAgICAgLy8gU2VlIGRpc2N1c3Npb24gaW4gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L3B1bGwvMTA2NzYuXG4gICAgICAgICAgZXh0cmFBdHRyaWJ1dGVOYW1lcy5hZGQoYXR0cmlidXRlc1tfaV0ubmFtZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdmFyIHVwZGF0ZVBheWxvYWQgPSBudWxsO1xuXG4gIGZvciAodmFyIHByb3BLZXkgaW4gcmF3UHJvcHMpIHtcbiAgICBpZiAoIXJhd1Byb3BzLmhhc093blByb3BlcnR5KHByb3BLZXkpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICB2YXIgbmV4dFByb3AgPSByYXdQcm9wc1twcm9wS2V5XTtcblxuICAgIGlmIChwcm9wS2V5ID09PSBDSElMRFJFTikge1xuICAgICAgLy8gRm9yIHRleHQgY29udGVudCBjaGlsZHJlbiB3ZSBjb21wYXJlIGFnYWluc3QgdGV4dENvbnRlbnQuIFRoaXNcbiAgICAgIC8vIG1pZ2h0IG1hdGNoIGFkZGl0aW9uYWwgSFRNTCB0aGF0IGlzIGhpZGRlbiB3aGVuIHdlIHJlYWQgaXQgdXNpbmdcbiAgICAgIC8vIHRleHRDb250ZW50LiBFLmcuIFwiZm9vXCIgd2lsbCBtYXRjaCBcImY8c3Bhbj5vbzwvc3Bhbj5cIiBidXQgdGhhdCBzdGlsbFxuICAgICAgLy8gc2F0aXNmaWVzIG91ciByZXF1aXJlbWVudC4gT3VyIHJlcXVpcmVtZW50IGlzIG5vdCB0byBwcm9kdWNlIHBlcmZlY3RcbiAgICAgIC8vIEhUTUwgYW5kIGF0dHJpYnV0ZXMuIElkZWFsbHkgd2Ugc2hvdWxkIHByZXNlcnZlIHN0cnVjdHVyZSBidXQgaXQnc1xuICAgICAgLy8gb2sgbm90IHRvIGlmIHRoZSB2aXNpYmxlIGNvbnRlbnQgaXMgc3RpbGwgZW5vdWdoIHRvIGluZGljYXRlIHdoYXRcbiAgICAgIC8vIGV2ZW4gbGlzdGVuZXJzIHRoZXNlIG5vZGVzIG1pZ2h0IGJlIHdpcmVkIHVwIHRvLlxuICAgICAgLy8gVE9ETzogV2FybiBpZiB0aGVyZSBpcyBtb3JlIHRoYW4gYSBzaW5nbGUgdGV4dE5vZGUgYXMgYSBjaGlsZC5cbiAgICAgIC8vIFRPRE86IFNob3VsZCB3ZSB1c2UgZG9tRWxlbWVudC5maXJzdENoaWxkLm5vZGVWYWx1ZSB0byBjb21wYXJlP1xuICAgICAgaWYgKHR5cGVvZiBuZXh0UHJvcCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgaWYgKGRvbUVsZW1lbnQudGV4dENvbnRlbnQgIT09IG5leHRQcm9wKSB7XG4gICAgICAgICAgaWYgKCAhc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nKSB7XG4gICAgICAgICAgICB3YXJuRm9yVGV4dERpZmZlcmVuY2UoZG9tRWxlbWVudC50ZXh0Q29udGVudCwgbmV4dFByb3ApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHVwZGF0ZVBheWxvYWQgPSBbQ0hJTERSRU4sIG5leHRQcm9wXTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgbmV4dFByb3AgPT09ICdudW1iZXInKSB7XG4gICAgICAgIGlmIChkb21FbGVtZW50LnRleHRDb250ZW50ICE9PSAnJyArIG5leHRQcm9wKSB7XG4gICAgICAgICAgaWYgKCAhc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nKSB7XG4gICAgICAgICAgICB3YXJuRm9yVGV4dERpZmZlcmVuY2UoZG9tRWxlbWVudC50ZXh0Q29udGVudCwgbmV4dFByb3ApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHVwZGF0ZVBheWxvYWQgPSBbQ0hJTERSRU4sICcnICsgbmV4dFByb3BdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChyZWdpc3RyYXRpb25OYW1lRGVwZW5kZW5jaWVzLmhhc093blByb3BlcnR5KHByb3BLZXkpKSB7XG4gICAgICBpZiAobmV4dFByb3AgIT0gbnVsbCkge1xuICAgICAgICBpZiAoIHR5cGVvZiBuZXh0UHJvcCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIHdhcm5Gb3JJbnZhbGlkRXZlbnRMaXN0ZW5lcihwcm9wS2V5LCBuZXh0UHJvcCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocHJvcEtleSA9PT0gJ29uU2Nyb2xsJykge1xuICAgICAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoJ3Njcm9sbCcsIGRvbUVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICggLy8gQ29udmluY2UgRmxvdyB3ZSd2ZSBjYWxjdWxhdGVkIGl0IChpdCdzIERFVi1vbmx5IGluIHRoaXMgbWV0aG9kLilcbiAgICB0eXBlb2YgaXNDdXN0b21Db21wb25lbnRUYWcgPT09ICdib29sZWFuJykge1xuICAgICAgLy8gVmFsaWRhdGUgdGhhdCB0aGUgcHJvcGVydGllcyBjb3JyZXNwb25kIHRvIHRoZWlyIGV4cGVjdGVkIHZhbHVlcy5cbiAgICAgIHZhciBzZXJ2ZXJWYWx1ZSA9IHZvaWQgMDtcbiAgICAgIHZhciBwcm9wZXJ0eUluZm8gPSBnZXRQcm9wZXJ0eUluZm8ocHJvcEtleSk7XG5cbiAgICAgIGlmIChzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmcpIDsgZWxzZSBpZiAocHJvcEtleSA9PT0gU1VQUFJFU1NfQ09OVEVOVF9FRElUQUJMRV9XQVJOSU5HIHx8IHByb3BLZXkgPT09IFNVUFBSRVNTX0hZRFJBVElPTl9XQVJOSU5HIHx8IC8vIENvbnRyb2xsZWQgYXR0cmlidXRlcyBhcmUgbm90IHZhbGlkYXRlZFxuICAgICAgLy8gVE9ETzogT25seSBpZ25vcmUgdGhlbSBvbiBjb250cm9sbGVkIHRhZ3MuXG4gICAgICBwcm9wS2V5ID09PSAndmFsdWUnIHx8IHByb3BLZXkgPT09ICdjaGVja2VkJyB8fCBwcm9wS2V5ID09PSAnc2VsZWN0ZWQnKSA7IGVsc2UgaWYgKHByb3BLZXkgPT09IERBTkdFUk9VU0xZX1NFVF9JTk5FUl9IVE1MKSB7XG4gICAgICAgIHZhciBzZXJ2ZXJIVE1MID0gZG9tRWxlbWVudC5pbm5lckhUTUw7XG4gICAgICAgIHZhciBuZXh0SHRtbCA9IG5leHRQcm9wID8gbmV4dFByb3BbSFRNTCQxXSA6IHVuZGVmaW5lZDtcblxuICAgICAgICBpZiAobmV4dEh0bWwgIT0gbnVsbCkge1xuICAgICAgICAgIHZhciBleHBlY3RlZEhUTUwgPSBub3JtYWxpemVIVE1MKGRvbUVsZW1lbnQsIG5leHRIdG1sKTtcblxuICAgICAgICAgIGlmIChleHBlY3RlZEhUTUwgIT09IHNlcnZlckhUTUwpIHtcbiAgICAgICAgICAgIHdhcm5Gb3JQcm9wRGlmZmVyZW5jZShwcm9wS2V5LCBzZXJ2ZXJIVE1MLCBleHBlY3RlZEhUTUwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChwcm9wS2V5ID09PSBTVFlMRSkge1xuICAgICAgICAvLyAkRmxvd0ZpeE1lIC0gU2hvdWxkIGJlIGluZmVycmVkIGFzIG5vdCB1bmRlZmluZWQuXG4gICAgICAgIGV4dHJhQXR0cmlidXRlTmFtZXMuZGVsZXRlKHByb3BLZXkpO1xuXG4gICAgICAgIGlmIChjYW5EaWZmU3R5bGVGb3JIeWRyYXRpb25XYXJuaW5nKSB7XG4gICAgICAgICAgdmFyIGV4cGVjdGVkU3R5bGUgPSBjcmVhdGVEYW5nZXJvdXNTdHJpbmdGb3JTdHlsZXMobmV4dFByb3ApO1xuICAgICAgICAgIHNlcnZlclZhbHVlID0gZG9tRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3N0eWxlJyk7XG5cbiAgICAgICAgICBpZiAoZXhwZWN0ZWRTdHlsZSAhPT0gc2VydmVyVmFsdWUpIHtcbiAgICAgICAgICAgIHdhcm5Gb3JQcm9wRGlmZmVyZW5jZShwcm9wS2V5LCBzZXJ2ZXJWYWx1ZSwgZXhwZWN0ZWRTdHlsZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGlzQ3VzdG9tQ29tcG9uZW50VGFnKSB7XG4gICAgICAgIC8vICRGbG93Rml4TWUgLSBTaG91bGQgYmUgaW5mZXJyZWQgYXMgbm90IHVuZGVmaW5lZC5cbiAgICAgICAgZXh0cmFBdHRyaWJ1dGVOYW1lcy5kZWxldGUocHJvcEtleS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgc2VydmVyVmFsdWUgPSBnZXRWYWx1ZUZvckF0dHJpYnV0ZShkb21FbGVtZW50LCBwcm9wS2V5LCBuZXh0UHJvcCk7XG5cbiAgICAgICAgaWYgKG5leHRQcm9wICE9PSBzZXJ2ZXJWYWx1ZSkge1xuICAgICAgICAgIHdhcm5Gb3JQcm9wRGlmZmVyZW5jZShwcm9wS2V5LCBzZXJ2ZXJWYWx1ZSwgbmV4dFByb3ApO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKCFzaG91bGRJZ25vcmVBdHRyaWJ1dGUocHJvcEtleSwgcHJvcGVydHlJbmZvLCBpc0N1c3RvbUNvbXBvbmVudFRhZykgJiYgIXNob3VsZFJlbW92ZUF0dHJpYnV0ZShwcm9wS2V5LCBuZXh0UHJvcCwgcHJvcGVydHlJbmZvLCBpc0N1c3RvbUNvbXBvbmVudFRhZykpIHtcbiAgICAgICAgdmFyIGlzTWlzbWF0Y2hEdWVUb0JhZENhc2luZyA9IGZhbHNlO1xuXG4gICAgICAgIGlmIChwcm9wZXJ0eUluZm8gIT09IG51bGwpIHtcbiAgICAgICAgICAvLyAkRmxvd0ZpeE1lIC0gU2hvdWxkIGJlIGluZmVycmVkIGFzIG5vdCB1bmRlZmluZWQuXG4gICAgICAgICAgZXh0cmFBdHRyaWJ1dGVOYW1lcy5kZWxldGUocHJvcGVydHlJbmZvLmF0dHJpYnV0ZU5hbWUpO1xuICAgICAgICAgIHNlcnZlclZhbHVlID0gZ2V0VmFsdWVGb3JQcm9wZXJ0eShkb21FbGVtZW50LCBwcm9wS2V5LCBuZXh0UHJvcCwgcHJvcGVydHlJbmZvKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2YXIgb3duTmFtZXNwYWNlID0gcGFyZW50TmFtZXNwYWNlO1xuXG4gICAgICAgICAgaWYgKG93bk5hbWVzcGFjZSA9PT0gSFRNTF9OQU1FU1BBQ0UkMSkge1xuICAgICAgICAgICAgb3duTmFtZXNwYWNlID0gZ2V0SW50cmluc2ljTmFtZXNwYWNlKHRhZyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKG93bk5hbWVzcGFjZSA9PT0gSFRNTF9OQU1FU1BBQ0UkMSkge1xuICAgICAgICAgICAgLy8gJEZsb3dGaXhNZSAtIFNob3VsZCBiZSBpbmZlcnJlZCBhcyBub3QgdW5kZWZpbmVkLlxuICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVOYW1lcy5kZWxldGUocHJvcEtleS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFyIHN0YW5kYXJkTmFtZSA9IGdldFBvc3NpYmxlU3RhbmRhcmROYW1lKHByb3BLZXkpO1xuXG4gICAgICAgICAgICBpZiAoc3RhbmRhcmROYW1lICE9PSBudWxsICYmIHN0YW5kYXJkTmFtZSAhPT0gcHJvcEtleSkge1xuICAgICAgICAgICAgICAvLyBJZiBhbiBTVkcgcHJvcCBpcyBzdXBwbGllZCB3aXRoIGJhZCBjYXNpbmcsIGl0IHdpbGxcbiAgICAgICAgICAgICAgLy8gYmUgc3VjY2Vzc2Z1bGx5IHBhcnNlZCBmcm9tIEhUTUwsIGJ1dCB3aWxsIHByb2R1Y2UgYSBtaXNtYXRjaFxuICAgICAgICAgICAgICAvLyAoYW5kIHdvdWxkIGJlIGluY29ycmVjdGx5IHJlbmRlcmVkIG9uIHRoZSBjbGllbnQpLlxuICAgICAgICAgICAgICAvLyBIb3dldmVyLCB3ZSBhbHJlYWR5IHdhcm4gYWJvdXQgYmFkIGNhc2luZyBlbHNld2hlcmUuXG4gICAgICAgICAgICAgIC8vIFNvIHdlJ2xsIHNraXAgdGhlIG1pc2xlYWRpbmcgZXh0cmEgbWlzbWF0Y2ggd2FybmluZyBpbiB0aGlzIGNhc2UuXG4gICAgICAgICAgICAgIGlzTWlzbWF0Y2hEdWVUb0JhZENhc2luZyA9IHRydWU7IC8vICRGbG93Rml4TWUgLSBTaG91bGQgYmUgaW5mZXJyZWQgYXMgbm90IHVuZGVmaW5lZC5cblxuICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZU5hbWVzLmRlbGV0ZShzdGFuZGFyZE5hbWUpO1xuICAgICAgICAgICAgfSAvLyAkRmxvd0ZpeE1lIC0gU2hvdWxkIGJlIGluZmVycmVkIGFzIG5vdCB1bmRlZmluZWQuXG5cblxuICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVOYW1lcy5kZWxldGUocHJvcEtleSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgc2VydmVyVmFsdWUgPSBnZXRWYWx1ZUZvckF0dHJpYnV0ZShkb21FbGVtZW50LCBwcm9wS2V5LCBuZXh0UHJvcCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobmV4dFByb3AgIT09IHNlcnZlclZhbHVlICYmICFpc01pc21hdGNoRHVlVG9CYWRDYXNpbmcpIHtcbiAgICAgICAgICB3YXJuRm9yUHJvcERpZmZlcmVuY2UocHJvcEtleSwgc2VydmVyVmFsdWUsIG5leHRQcm9wKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHtcbiAgICAvLyAkRmxvd0ZpeE1lIC0gU2hvdWxkIGJlIGluZmVycmVkIGFzIG5vdCB1bmRlZmluZWQuXG4gICAgaWYgKGV4dHJhQXR0cmlidXRlTmFtZXMuc2l6ZSA+IDAgJiYgIXN1cHByZXNzSHlkcmF0aW9uV2FybmluZykge1xuICAgICAgLy8gJEZsb3dGaXhNZSAtIFNob3VsZCBiZSBpbmZlcnJlZCBhcyBub3QgdW5kZWZpbmVkLlxuICAgICAgd2FybkZvckV4dHJhQXR0cmlidXRlcyhleHRyYUF0dHJpYnV0ZU5hbWVzKTtcbiAgICB9XG4gIH1cblxuICBzd2l0Y2ggKHRhZykge1xuICAgIGNhc2UgJ2lucHV0JzpcbiAgICAgIC8vIFRPRE86IE1ha2Ugc3VyZSB3ZSBjaGVjayBpZiB0aGlzIGlzIHN0aWxsIHVubW91bnRlZCBvciBkbyBhbnkgY2xlYW5cbiAgICAgIC8vIHVwIG5lY2Vzc2FyeSBzaW5jZSB3ZSBuZXZlciBzdG9wIHRyYWNraW5nIGFueW1vcmUuXG4gICAgICB0cmFjayhkb21FbGVtZW50KTtcbiAgICAgIHBvc3RNb3VudFdyYXBwZXIoZG9tRWxlbWVudCwgcmF3UHJvcHMsIHRydWUpO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICd0ZXh0YXJlYSc6XG4gICAgICAvLyBUT0RPOiBNYWtlIHN1cmUgd2UgY2hlY2sgaWYgdGhpcyBpcyBzdGlsbCB1bm1vdW50ZWQgb3IgZG8gYW55IGNsZWFuXG4gICAgICAvLyB1cCBuZWNlc3Nhcnkgc2luY2Ugd2UgbmV2ZXIgc3RvcCB0cmFja2luZyBhbnltb3JlLlxuICAgICAgdHJhY2soZG9tRWxlbWVudCk7XG4gICAgICBwb3N0TW91bnRXcmFwcGVyJDMoZG9tRWxlbWVudCk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ3NlbGVjdCc6XG4gICAgY2FzZSAnb3B0aW9uJzpcbiAgICAgIC8vIEZvciBpbnB1dCBhbmQgdGV4dGFyZWEgd2UgY3VycmVudCBhbHdheXMgc2V0IHRoZSB2YWx1ZSBwcm9wZXJ0eSBhdFxuICAgICAgLy8gcG9zdCBtb3VudCB0byBmb3JjZSBpdCB0byBkaXZlcmdlIGZyb20gYXR0cmlidXRlcy4gSG93ZXZlciwgZm9yXG4gICAgICAvLyBvcHRpb24gYW5kIHNlbGVjdCB3ZSBkb24ndCBxdWl0ZSBkbyB0aGUgc2FtZSB0aGluZyBhbmQgc2VsZWN0XG4gICAgICAvLyBpcyBub3QgcmVzaWxpZW50IHRvIHRoZSBET00gc3RhdGUgY2hhbmdpbmcgc28gd2UgZG9uJ3QgZG8gdGhhdCBoZXJlLlxuICAgICAgLy8gVE9ETzogQ29uc2lkZXIgbm90IGRvaW5nIHRoaXMgZm9yIGlucHV0IGFuZCB0ZXh0YXJlYS5cbiAgICAgIGJyZWFrO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIGlmICh0eXBlb2YgcmF3UHJvcHMub25DbGljayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAvLyBUT0RPOiBUaGlzIGNhc3QgbWF5IG5vdCBiZSBzb3VuZCBmb3IgU1ZHLCBNYXRoTUwgb3IgY3VzdG9tIGVsZW1lbnRzLlxuICAgICAgICB0cmFwQ2xpY2tPbk5vbkludGVyYWN0aXZlRWxlbWVudChkb21FbGVtZW50KTtcbiAgICAgIH1cblxuICAgICAgYnJlYWs7XG4gIH1cblxuICByZXR1cm4gdXBkYXRlUGF5bG9hZDtcbn1cbmZ1bmN0aW9uIGRpZmZIeWRyYXRlZFRleHQodGV4dE5vZGUsIHRleHQpIHtcbiAgdmFyIGlzRGlmZmVyZW50ID0gdGV4dE5vZGUubm9kZVZhbHVlICE9PSB0ZXh0O1xuICByZXR1cm4gaXNEaWZmZXJlbnQ7XG59XG5mdW5jdGlvbiB3YXJuRm9yVW5tYXRjaGVkVGV4dCh0ZXh0Tm9kZSwgdGV4dCkge1xuICB7XG4gICAgd2FybkZvclRleHREaWZmZXJlbmNlKHRleHROb2RlLm5vZGVWYWx1ZSwgdGV4dCk7XG4gIH1cbn1cbmZ1bmN0aW9uIHdhcm5Gb3JEZWxldGVkSHlkcmF0YWJsZUVsZW1lbnQocGFyZW50Tm9kZSwgY2hpbGQpIHtcbiAge1xuICAgIGlmIChkaWRXYXJuSW52YWxpZEh5ZHJhdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGRpZFdhcm5JbnZhbGlkSHlkcmF0aW9uID0gdHJ1ZTtcblxuICAgIGVycm9yKCdEaWQgbm90IGV4cGVjdCBzZXJ2ZXIgSFRNTCB0byBjb250YWluIGEgPCVzPiBpbiA8JXM+LicsIGNoaWxkLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksIHBhcmVudE5vZGUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSk7XG4gIH1cbn1cbmZ1bmN0aW9uIHdhcm5Gb3JEZWxldGVkSHlkcmF0YWJsZVRleHQocGFyZW50Tm9kZSwgY2hpbGQpIHtcbiAge1xuICAgIGlmIChkaWRXYXJuSW52YWxpZEh5ZHJhdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGRpZFdhcm5JbnZhbGlkSHlkcmF0aW9uID0gdHJ1ZTtcblxuICAgIGVycm9yKCdEaWQgbm90IGV4cGVjdCBzZXJ2ZXIgSFRNTCB0byBjb250YWluIHRoZSB0ZXh0IG5vZGUgXCIlc1wiIGluIDwlcz4uJywgY2hpbGQubm9kZVZhbHVlLCBwYXJlbnROb2RlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpO1xuICB9XG59XG5mdW5jdGlvbiB3YXJuRm9ySW5zZXJ0ZWRIeWRyYXRlZEVsZW1lbnQocGFyZW50Tm9kZSwgdGFnLCBwcm9wcykge1xuICB7XG4gICAgaWYgKGRpZFdhcm5JbnZhbGlkSHlkcmF0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZGlkV2FybkludmFsaWRIeWRyYXRpb24gPSB0cnVlO1xuXG4gICAgZXJyb3IoJ0V4cGVjdGVkIHNlcnZlciBIVE1MIHRvIGNvbnRhaW4gYSBtYXRjaGluZyA8JXM+IGluIDwlcz4uJywgdGFnLCBwYXJlbnROb2RlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpO1xuICB9XG59XG5mdW5jdGlvbiB3YXJuRm9ySW5zZXJ0ZWRIeWRyYXRlZFRleHQocGFyZW50Tm9kZSwgdGV4dCkge1xuICB7XG4gICAgaWYgKHRleHQgPT09ICcnKSB7XG4gICAgICAvLyBXZSBleHBlY3QgdG8gaW5zZXJ0IGVtcHR5IHRleHQgbm9kZXMgc2luY2UgdGhleSdyZSBub3QgcmVwcmVzZW50ZWQgaW5cbiAgICAgIC8vIHRoZSBIVE1MLlxuICAgICAgLy8gVE9ETzogUmVtb3ZlIHRoaXMgc3BlY2lhbCBjYXNlIGlmIHdlIGNhbiBqdXN0IGF2b2lkIGluc2VydGluZyBlbXB0eVxuICAgICAgLy8gdGV4dCBub2Rlcy5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZGlkV2FybkludmFsaWRIeWRyYXRpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBkaWRXYXJuSW52YWxpZEh5ZHJhdGlvbiA9IHRydWU7XG5cbiAgICBlcnJvcignRXhwZWN0ZWQgc2VydmVyIEhUTUwgdG8gY29udGFpbiBhIG1hdGNoaW5nIHRleHQgbm9kZSBmb3IgXCIlc1wiIGluIDwlcz4uJywgdGV4dCwgcGFyZW50Tm9kZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKTtcbiAgfVxufVxuZnVuY3Rpb24gcmVzdG9yZUNvbnRyb2xsZWRTdGF0ZSQzKGRvbUVsZW1lbnQsIHRhZywgcHJvcHMpIHtcbiAgc3dpdGNoICh0YWcpIHtcbiAgICBjYXNlICdpbnB1dCc6XG4gICAgICByZXN0b3JlQ29udHJvbGxlZFN0YXRlKGRvbUVsZW1lbnQsIHByb3BzKTtcbiAgICAgIHJldHVybjtcblxuICAgIGNhc2UgJ3RleHRhcmVhJzpcbiAgICAgIHJlc3RvcmVDb250cm9sbGVkU3RhdGUkMihkb21FbGVtZW50LCBwcm9wcyk7XG4gICAgICByZXR1cm47XG5cbiAgICBjYXNlICdzZWxlY3QnOlxuICAgICAgcmVzdG9yZUNvbnRyb2xsZWRTdGF0ZSQxKGRvbUVsZW1lbnQsIHByb3BzKTtcbiAgICAgIHJldHVybjtcbiAgfVxufVxuXG52YXIgdmFsaWRhdGVET01OZXN0aW5nID0gZnVuY3Rpb24gKCkge307XG5cbnZhciB1cGRhdGVkQW5jZXN0b3JJbmZvID0gZnVuY3Rpb24gKCkge307XG5cbntcbiAgLy8gVGhpcyB2YWxpZGF0aW9uIGNvZGUgd2FzIHdyaXR0ZW4gYmFzZWQgb24gdGhlIEhUTUw1IHBhcnNpbmcgc3BlYzpcbiAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc3ludGF4Lmh0bWwjaGFzLWFuLWVsZW1lbnQtaW4tc2NvcGVcbiAgLy9cbiAgLy8gTm90ZTogdGhpcyBkb2VzIG5vdCBjYXRjaCBhbGwgaW52YWxpZCBuZXN0aW5nLCBub3IgZG9lcyBpdCB0cnkgdG8gKGFzIGl0J3NcbiAgLy8gbm90IGNsZWFyIHdoYXQgcHJhY3RpY2FsIGJlbmVmaXQgZG9pbmcgc28gcHJvdmlkZXMpOyBpbnN0ZWFkLCB3ZSB3YXJuIG9ubHlcbiAgLy8gZm9yIGNhc2VzIHdoZXJlIHRoZSBwYXJzZXIgd2lsbCBnaXZlIGEgcGFyc2UgdHJlZSBkaWZmZXJpbmcgZnJvbSB3aGF0IFJlYWN0XG4gIC8vIGludGVuZGVkLiBGb3IgZXhhbXBsZSwgPGI+PGRpdj48L2Rpdj48L2I+IGlzIGludmFsaWQgYnV0IHdlIGRvbid0IHdhcm5cbiAgLy8gYmVjYXVzZSBpdCBzdGlsbCBwYXJzZXMgY29ycmVjdGx5OyB3ZSBkbyB3YXJuIGZvciBvdGhlciBjYXNlcyBsaWtlIG5lc3RlZFxuICAvLyA8cD4gdGFncyB3aGVyZSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzZWNvbmQgZWxlbWVudCBpbXBsaWNpdGx5IGNsb3NlcyB0aGVcbiAgLy8gZmlyc3QsIGNhdXNpbmcgYSBjb25mdXNpbmcgbWVzcy5cbiAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc3ludGF4Lmh0bWwjc3BlY2lhbFxuICB2YXIgc3BlY2lhbFRhZ3MgPSBbJ2FkZHJlc3MnLCAnYXBwbGV0JywgJ2FyZWEnLCAnYXJ0aWNsZScsICdhc2lkZScsICdiYXNlJywgJ2Jhc2Vmb250JywgJ2Jnc291bmQnLCAnYmxvY2txdW90ZScsICdib2R5JywgJ2JyJywgJ2J1dHRvbicsICdjYXB0aW9uJywgJ2NlbnRlcicsICdjb2wnLCAnY29sZ3JvdXAnLCAnZGQnLCAnZGV0YWlscycsICdkaXInLCAnZGl2JywgJ2RsJywgJ2R0JywgJ2VtYmVkJywgJ2ZpZWxkc2V0JywgJ2ZpZ2NhcHRpb24nLCAnZmlndXJlJywgJ2Zvb3RlcicsICdmb3JtJywgJ2ZyYW1lJywgJ2ZyYW1lc2V0JywgJ2gxJywgJ2gyJywgJ2gzJywgJ2g0JywgJ2g1JywgJ2g2JywgJ2hlYWQnLCAnaGVhZGVyJywgJ2hncm91cCcsICdocicsICdodG1sJywgJ2lmcmFtZScsICdpbWcnLCAnaW5wdXQnLCAnaXNpbmRleCcsICdsaScsICdsaW5rJywgJ2xpc3RpbmcnLCAnbWFpbicsICdtYXJxdWVlJywgJ21lbnUnLCAnbWVudWl0ZW0nLCAnbWV0YScsICduYXYnLCAnbm9lbWJlZCcsICdub2ZyYW1lcycsICdub3NjcmlwdCcsICdvYmplY3QnLCAnb2wnLCAncCcsICdwYXJhbScsICdwbGFpbnRleHQnLCAncHJlJywgJ3NjcmlwdCcsICdzZWN0aW9uJywgJ3NlbGVjdCcsICdzb3VyY2UnLCAnc3R5bGUnLCAnc3VtbWFyeScsICd0YWJsZScsICd0Ym9keScsICd0ZCcsICd0ZW1wbGF0ZScsICd0ZXh0YXJlYScsICd0Zm9vdCcsICd0aCcsICd0aGVhZCcsICd0aXRsZScsICd0cicsICd0cmFjaycsICd1bCcsICd3YnInLCAneG1wJ107IC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI2hhcy1hbi1lbGVtZW50LWluLXNjb3BlXG5cbiAgdmFyIGluU2NvcGVUYWdzID0gWydhcHBsZXQnLCAnY2FwdGlvbicsICdodG1sJywgJ3RhYmxlJywgJ3RkJywgJ3RoJywgJ21hcnF1ZWUnLCAnb2JqZWN0JywgJ3RlbXBsYXRlJywgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc3ludGF4Lmh0bWwjaHRtbC1pbnRlZ3JhdGlvbi1wb2ludFxuICAvLyBUT0RPOiBEaXN0aW5ndWlzaCBieSBuYW1lc3BhY2UgaGVyZSAtLSBmb3IgPHRpdGxlPiwgaW5jbHVkaW5nIGl0IGhlcmVcbiAgLy8gZXJycyBvbiB0aGUgc2lkZSBvZiBmZXdlciB3YXJuaW5nc1xuICAnZm9yZWlnbk9iamVjdCcsICdkZXNjJywgJ3RpdGxlJ107IC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI2hhcy1hbi1lbGVtZW50LWluLWJ1dHRvbi1zY29wZVxuXG4gIHZhciBidXR0b25TY29wZVRhZ3MgPSBpblNjb3BlVGFncy5jb25jYXQoWydidXR0b24nXSk7IC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI2dlbmVyYXRlLWltcGxpZWQtZW5kLXRhZ3NcblxuICB2YXIgaW1wbGllZEVuZFRhZ3MgPSBbJ2RkJywgJ2R0JywgJ2xpJywgJ29wdGlvbicsICdvcHRncm91cCcsICdwJywgJ3JwJywgJ3J0J107XG4gIHZhciBlbXB0eUFuY2VzdG9ySW5mbyA9IHtcbiAgICBjdXJyZW50OiBudWxsLFxuICAgIGZvcm1UYWc6IG51bGwsXG4gICAgYVRhZ0luU2NvcGU6IG51bGwsXG4gICAgYnV0dG9uVGFnSW5TY29wZTogbnVsbCxcbiAgICBub2JyVGFnSW5TY29wZTogbnVsbCxcbiAgICBwVGFnSW5CdXR0b25TY29wZTogbnVsbCxcbiAgICBsaXN0SXRlbVRhZ0F1dG9jbG9zaW5nOiBudWxsLFxuICAgIGRsSXRlbVRhZ0F1dG9jbG9zaW5nOiBudWxsXG4gIH07XG5cbiAgdXBkYXRlZEFuY2VzdG9ySW5mbyA9IGZ1bmN0aW9uIChvbGRJbmZvLCB0YWcpIHtcbiAgICB2YXIgYW5jZXN0b3JJbmZvID0gX2Fzc2lnbih7fSwgb2xkSW5mbyB8fCBlbXB0eUFuY2VzdG9ySW5mbyk7XG5cbiAgICB2YXIgaW5mbyA9IHtcbiAgICAgIHRhZzogdGFnXG4gICAgfTtcblxuICAgIGlmIChpblNjb3BlVGFncy5pbmRleE9mKHRhZykgIT09IC0xKSB7XG4gICAgICBhbmNlc3RvckluZm8uYVRhZ0luU2NvcGUgPSBudWxsO1xuICAgICAgYW5jZXN0b3JJbmZvLmJ1dHRvblRhZ0luU2NvcGUgPSBudWxsO1xuICAgICAgYW5jZXN0b3JJbmZvLm5vYnJUYWdJblNjb3BlID0gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoYnV0dG9uU2NvcGVUYWdzLmluZGV4T2YodGFnKSAhPT0gLTEpIHtcbiAgICAgIGFuY2VzdG9ySW5mby5wVGFnSW5CdXR0b25TY29wZSA9IG51bGw7XG4gICAgfSAvLyBTZWUgcnVsZXMgZm9yICdsaScsICdkZCcsICdkdCcgc3RhcnQgdGFncyBpblxuICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbmJvZHlcblxuXG4gICAgaWYgKHNwZWNpYWxUYWdzLmluZGV4T2YodGFnKSAhPT0gLTEgJiYgdGFnICE9PSAnYWRkcmVzcycgJiYgdGFnICE9PSAnZGl2JyAmJiB0YWcgIT09ICdwJykge1xuICAgICAgYW5jZXN0b3JJbmZvLmxpc3RJdGVtVGFnQXV0b2Nsb3NpbmcgPSBudWxsO1xuICAgICAgYW5jZXN0b3JJbmZvLmRsSXRlbVRhZ0F1dG9jbG9zaW5nID0gbnVsbDtcbiAgICB9XG5cbiAgICBhbmNlc3RvckluZm8uY3VycmVudCA9IGluZm87XG5cbiAgICBpZiAodGFnID09PSAnZm9ybScpIHtcbiAgICAgIGFuY2VzdG9ySW5mby5mb3JtVGFnID0gaW5mbztcbiAgICB9XG5cbiAgICBpZiAodGFnID09PSAnYScpIHtcbiAgICAgIGFuY2VzdG9ySW5mby5hVGFnSW5TY29wZSA9IGluZm87XG4gICAgfVxuXG4gICAgaWYgKHRhZyA9PT0gJ2J1dHRvbicpIHtcbiAgICAgIGFuY2VzdG9ySW5mby5idXR0b25UYWdJblNjb3BlID0gaW5mbztcbiAgICB9XG5cbiAgICBpZiAodGFnID09PSAnbm9icicpIHtcbiAgICAgIGFuY2VzdG9ySW5mby5ub2JyVGFnSW5TY29wZSA9IGluZm87XG4gICAgfVxuXG4gICAgaWYgKHRhZyA9PT0gJ3AnKSB7XG4gICAgICBhbmNlc3RvckluZm8ucFRhZ0luQnV0dG9uU2NvcGUgPSBpbmZvO1xuICAgIH1cblxuICAgIGlmICh0YWcgPT09ICdsaScpIHtcbiAgICAgIGFuY2VzdG9ySW5mby5saXN0SXRlbVRhZ0F1dG9jbG9zaW5nID0gaW5mbztcbiAgICB9XG5cbiAgICBpZiAodGFnID09PSAnZGQnIHx8IHRhZyA9PT0gJ2R0Jykge1xuICAgICAgYW5jZXN0b3JJbmZvLmRsSXRlbVRhZ0F1dG9jbG9zaW5nID0gaW5mbztcbiAgICB9XG5cbiAgICByZXR1cm4gYW5jZXN0b3JJbmZvO1xuICB9O1xuICAvKipcbiAgICogUmV0dXJucyB3aGV0aGVyXG4gICAqL1xuXG5cbiAgdmFyIGlzVGFnVmFsaWRXaXRoUGFyZW50ID0gZnVuY3Rpb24gKHRhZywgcGFyZW50VGFnKSB7XG4gICAgLy8gRmlyc3QsIGxldCdzIGNoZWNrIGlmIHdlJ3JlIGluIGFuIHVudXN1YWwgcGFyc2luZyBtb2RlLi4uXG4gICAgc3dpdGNoIChwYXJlbnRUYWcpIHtcbiAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbnNlbGVjdFxuICAgICAgY2FzZSAnc2VsZWN0JzpcbiAgICAgICAgcmV0dXJuIHRhZyA9PT0gJ29wdGlvbicgfHwgdGFnID09PSAnb3B0Z3JvdXAnIHx8IHRhZyA9PT0gJyN0ZXh0JztcblxuICAgICAgY2FzZSAnb3B0Z3JvdXAnOlxuICAgICAgICByZXR1cm4gdGFnID09PSAnb3B0aW9uJyB8fCB0YWcgPT09ICcjdGV4dCc7XG4gICAgICAvLyBTdHJpY3RseSBzcGVha2luZywgc2VlaW5nIGFuIDxvcHRpb24+IGRvZXNuJ3QgbWVhbiB3ZSdyZSBpbiBhIDxzZWxlY3Q+XG4gICAgICAvLyBidXRcblxuICAgICAgY2FzZSAnb3B0aW9uJzpcbiAgICAgICAgcmV0dXJuIHRhZyA9PT0gJyN0ZXh0JztcbiAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbnRkXG4gICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zeW50YXguaHRtbCNwYXJzaW5nLW1haW4taW5jYXB0aW9uXG4gICAgICAvLyBObyBzcGVjaWFsIGJlaGF2aW9yIHNpbmNlIHRoZXNlIHJ1bGVzIGZhbGwgYmFjayB0byBcImluIGJvZHlcIiBtb2RlIGZvclxuICAgICAgLy8gYWxsIGV4Y2VwdCBzcGVjaWFsIHRhYmxlIG5vZGVzIHdoaWNoIGNhdXNlIGJhZCBwYXJzaW5nIGJlaGF2aW9yIGFueXdheS5cbiAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbnRyXG5cbiAgICAgIGNhc2UgJ3RyJzpcbiAgICAgICAgcmV0dXJuIHRhZyA9PT0gJ3RoJyB8fCB0YWcgPT09ICd0ZCcgfHwgdGFnID09PSAnc3R5bGUnIHx8IHRhZyA9PT0gJ3NjcmlwdCcgfHwgdGFnID09PSAndGVtcGxhdGUnO1xuICAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc3ludGF4Lmh0bWwjcGFyc2luZy1tYWluLWludGJvZHlcblxuICAgICAgY2FzZSAndGJvZHknOlxuICAgICAgY2FzZSAndGhlYWQnOlxuICAgICAgY2FzZSAndGZvb3QnOlxuICAgICAgICByZXR1cm4gdGFnID09PSAndHInIHx8IHRhZyA9PT0gJ3N0eWxlJyB8fCB0YWcgPT09ICdzY3JpcHQnIHx8IHRhZyA9PT0gJ3RlbXBsYXRlJztcbiAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbmNvbGdyb3VwXG5cbiAgICAgIGNhc2UgJ2NvbGdyb3VwJzpcbiAgICAgICAgcmV0dXJuIHRhZyA9PT0gJ2NvbCcgfHwgdGFnID09PSAndGVtcGxhdGUnO1xuICAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc3ludGF4Lmh0bWwjcGFyc2luZy1tYWluLWludGFibGVcblxuICAgICAgY2FzZSAndGFibGUnOlxuICAgICAgICByZXR1cm4gdGFnID09PSAnY2FwdGlvbicgfHwgdGFnID09PSAnY29sZ3JvdXAnIHx8IHRhZyA9PT0gJ3Rib2R5JyB8fCB0YWcgPT09ICd0Zm9vdCcgfHwgdGFnID09PSAndGhlYWQnIHx8IHRhZyA9PT0gJ3N0eWxlJyB8fCB0YWcgPT09ICdzY3JpcHQnIHx8IHRhZyA9PT0gJ3RlbXBsYXRlJztcbiAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbmhlYWRcblxuICAgICAgY2FzZSAnaGVhZCc6XG4gICAgICAgIHJldHVybiB0YWcgPT09ICdiYXNlJyB8fCB0YWcgPT09ICdiYXNlZm9udCcgfHwgdGFnID09PSAnYmdzb3VuZCcgfHwgdGFnID09PSAnbGluaycgfHwgdGFnID09PSAnbWV0YScgfHwgdGFnID09PSAndGl0bGUnIHx8IHRhZyA9PT0gJ25vc2NyaXB0JyB8fCB0YWcgPT09ICdub2ZyYW1lcycgfHwgdGFnID09PSAnc3R5bGUnIHx8IHRhZyA9PT0gJ3NjcmlwdCcgfHwgdGFnID09PSAndGVtcGxhdGUnO1xuICAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc2VtYW50aWNzLmh0bWwjdGhlLWh0bWwtZWxlbWVudFxuXG4gICAgICBjYXNlICdodG1sJzpcbiAgICAgICAgcmV0dXJuIHRhZyA9PT0gJ2hlYWQnIHx8IHRhZyA9PT0gJ2JvZHknIHx8IHRhZyA9PT0gJ2ZyYW1lc2V0JztcblxuICAgICAgY2FzZSAnZnJhbWVzZXQnOlxuICAgICAgICByZXR1cm4gdGFnID09PSAnZnJhbWUnO1xuXG4gICAgICBjYXNlICcjZG9jdW1lbnQnOlxuICAgICAgICByZXR1cm4gdGFnID09PSAnaHRtbCc7XG4gICAgfSAvLyBQcm9iYWJseSBpbiB0aGUgXCJpbiBib2R5XCIgcGFyc2luZyBtb2RlLCBzbyB3ZSBvdXRsYXcgb25seSB0YWcgY29tYm9zXG4gICAgLy8gd2hlcmUgdGhlIHBhcnNpbmcgcnVsZXMgY2F1c2UgaW1wbGljaXQgb3BlbnMgb3IgY2xvc2VzIHRvIGJlIGFkZGVkLlxuICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbmJvZHlcblxuXG4gICAgc3dpdGNoICh0YWcpIHtcbiAgICAgIGNhc2UgJ2gxJzpcbiAgICAgIGNhc2UgJ2gyJzpcbiAgICAgIGNhc2UgJ2gzJzpcbiAgICAgIGNhc2UgJ2g0JzpcbiAgICAgIGNhc2UgJ2g1JzpcbiAgICAgIGNhc2UgJ2g2JzpcbiAgICAgICAgcmV0dXJuIHBhcmVudFRhZyAhPT0gJ2gxJyAmJiBwYXJlbnRUYWcgIT09ICdoMicgJiYgcGFyZW50VGFnICE9PSAnaDMnICYmIHBhcmVudFRhZyAhPT0gJ2g0JyAmJiBwYXJlbnRUYWcgIT09ICdoNScgJiYgcGFyZW50VGFnICE9PSAnaDYnO1xuXG4gICAgICBjYXNlICdycCc6XG4gICAgICBjYXNlICdydCc6XG4gICAgICAgIHJldHVybiBpbXBsaWVkRW5kVGFncy5pbmRleE9mKHBhcmVudFRhZykgPT09IC0xO1xuXG4gICAgICBjYXNlICdib2R5JzpcbiAgICAgIGNhc2UgJ2NhcHRpb24nOlxuICAgICAgY2FzZSAnY29sJzpcbiAgICAgIGNhc2UgJ2NvbGdyb3VwJzpcbiAgICAgIGNhc2UgJ2ZyYW1lc2V0JzpcbiAgICAgIGNhc2UgJ2ZyYW1lJzpcbiAgICAgIGNhc2UgJ2hlYWQnOlxuICAgICAgY2FzZSAnaHRtbCc6XG4gICAgICBjYXNlICd0Ym9keSc6XG4gICAgICBjYXNlICd0ZCc6XG4gICAgICBjYXNlICd0Zm9vdCc6XG4gICAgICBjYXNlICd0aCc6XG4gICAgICBjYXNlICd0aGVhZCc6XG4gICAgICBjYXNlICd0cic6XG4gICAgICAgIC8vIFRoZXNlIHRhZ3MgYXJlIG9ubHkgdmFsaWQgd2l0aCBhIGZldyBwYXJlbnRzIHRoYXQgaGF2ZSBzcGVjaWFsIGNoaWxkXG4gICAgICAgIC8vIHBhcnNpbmcgcnVsZXMgLS0gaWYgd2UncmUgZG93biBoZXJlLCB0aGVuIG5vbmUgb2YgdGhvc2UgbWF0Y2hlZCBhbmRcbiAgICAgICAgLy8gc28gd2UgYWxsb3cgaXQgb25seSBpZiB3ZSBkb24ndCBrbm93IHdoYXQgdGhlIHBhcmVudCBpcywgYXMgYWxsIG90aGVyXG4gICAgICAgIC8vIGNhc2VzIGFyZSBpbnZhbGlkLlxuICAgICAgICByZXR1cm4gcGFyZW50VGFnID09IG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH07XG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXJcbiAgICovXG5cblxuICB2YXIgZmluZEludmFsaWRBbmNlc3RvckZvclRhZyA9IGZ1bmN0aW9uICh0YWcsIGFuY2VzdG9ySW5mbykge1xuICAgIHN3aXRjaCAodGFnKSB7XG4gICAgICBjYXNlICdhZGRyZXNzJzpcbiAgICAgIGNhc2UgJ2FydGljbGUnOlxuICAgICAgY2FzZSAnYXNpZGUnOlxuICAgICAgY2FzZSAnYmxvY2txdW90ZSc6XG4gICAgICBjYXNlICdjZW50ZXInOlxuICAgICAgY2FzZSAnZGV0YWlscyc6XG4gICAgICBjYXNlICdkaWFsb2cnOlxuICAgICAgY2FzZSAnZGlyJzpcbiAgICAgIGNhc2UgJ2Rpdic6XG4gICAgICBjYXNlICdkbCc6XG4gICAgICBjYXNlICdmaWVsZHNldCc6XG4gICAgICBjYXNlICdmaWdjYXB0aW9uJzpcbiAgICAgIGNhc2UgJ2ZpZ3VyZSc6XG4gICAgICBjYXNlICdmb290ZXInOlxuICAgICAgY2FzZSAnaGVhZGVyJzpcbiAgICAgIGNhc2UgJ2hncm91cCc6XG4gICAgICBjYXNlICdtYWluJzpcbiAgICAgIGNhc2UgJ21lbnUnOlxuICAgICAgY2FzZSAnbmF2JzpcbiAgICAgIGNhc2UgJ29sJzpcbiAgICAgIGNhc2UgJ3AnOlxuICAgICAgY2FzZSAnc2VjdGlvbic6XG4gICAgICBjYXNlICdzdW1tYXJ5JzpcbiAgICAgIGNhc2UgJ3VsJzpcbiAgICAgIGNhc2UgJ3ByZSc6XG4gICAgICBjYXNlICdsaXN0aW5nJzpcbiAgICAgIGNhc2UgJ3RhYmxlJzpcbiAgICAgIGNhc2UgJ2hyJzpcbiAgICAgIGNhc2UgJ3htcCc6XG4gICAgICBjYXNlICdoMSc6XG4gICAgICBjYXNlICdoMic6XG4gICAgICBjYXNlICdoMyc6XG4gICAgICBjYXNlICdoNCc6XG4gICAgICBjYXNlICdoNSc6XG4gICAgICBjYXNlICdoNic6XG4gICAgICAgIHJldHVybiBhbmNlc3RvckluZm8ucFRhZ0luQnV0dG9uU2NvcGU7XG5cbiAgICAgIGNhc2UgJ2Zvcm0nOlxuICAgICAgICByZXR1cm4gYW5jZXN0b3JJbmZvLmZvcm1UYWcgfHwgYW5jZXN0b3JJbmZvLnBUYWdJbkJ1dHRvblNjb3BlO1xuXG4gICAgICBjYXNlICdsaSc6XG4gICAgICAgIHJldHVybiBhbmNlc3RvckluZm8ubGlzdEl0ZW1UYWdBdXRvY2xvc2luZztcblxuICAgICAgY2FzZSAnZGQnOlxuICAgICAgY2FzZSAnZHQnOlxuICAgICAgICByZXR1cm4gYW5jZXN0b3JJbmZvLmRsSXRlbVRhZ0F1dG9jbG9zaW5nO1xuXG4gICAgICBjYXNlICdidXR0b24nOlxuICAgICAgICByZXR1cm4gYW5jZXN0b3JJbmZvLmJ1dHRvblRhZ0luU2NvcGU7XG5cbiAgICAgIGNhc2UgJ2EnOlxuICAgICAgICAvLyBTcGVjIHNheXMgc29tZXRoaW5nIGFib3V0IHN0b3JpbmcgYSBsaXN0IG9mIG1hcmtlcnMsIGJ1dCBpdCBzb3VuZHNcbiAgICAgICAgLy8gZXF1aXZhbGVudCB0byB0aGlzIGNoZWNrLlxuICAgICAgICByZXR1cm4gYW5jZXN0b3JJbmZvLmFUYWdJblNjb3BlO1xuXG4gICAgICBjYXNlICdub2JyJzpcbiAgICAgICAgcmV0dXJuIGFuY2VzdG9ySW5mby5ub2JyVGFnSW5TY29wZTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfTtcblxuICB2YXIgZGlkV2FybiQxID0ge307XG5cbiAgdmFsaWRhdGVET01OZXN0aW5nID0gZnVuY3Rpb24gKGNoaWxkVGFnLCBjaGlsZFRleHQsIGFuY2VzdG9ySW5mbykge1xuICAgIGFuY2VzdG9ySW5mbyA9IGFuY2VzdG9ySW5mbyB8fCBlbXB0eUFuY2VzdG9ySW5mbztcbiAgICB2YXIgcGFyZW50SW5mbyA9IGFuY2VzdG9ySW5mby5jdXJyZW50O1xuICAgIHZhciBwYXJlbnRUYWcgPSBwYXJlbnRJbmZvICYmIHBhcmVudEluZm8udGFnO1xuXG4gICAgaWYgKGNoaWxkVGV4dCAhPSBudWxsKSB7XG4gICAgICBpZiAoY2hpbGRUYWcgIT0gbnVsbCkge1xuICAgICAgICBlcnJvcigndmFsaWRhdGVET01OZXN0aW5nOiB3aGVuIGNoaWxkVGV4dCBpcyBwYXNzZWQsIGNoaWxkVGFnIHNob3VsZCBiZSBudWxsJyk7XG4gICAgICB9XG5cbiAgICAgIGNoaWxkVGFnID0gJyN0ZXh0JztcbiAgICB9XG5cbiAgICB2YXIgaW52YWxpZFBhcmVudCA9IGlzVGFnVmFsaWRXaXRoUGFyZW50KGNoaWxkVGFnLCBwYXJlbnRUYWcpID8gbnVsbCA6IHBhcmVudEluZm87XG4gICAgdmFyIGludmFsaWRBbmNlc3RvciA9IGludmFsaWRQYXJlbnQgPyBudWxsIDogZmluZEludmFsaWRBbmNlc3RvckZvclRhZyhjaGlsZFRhZywgYW5jZXN0b3JJbmZvKTtcbiAgICB2YXIgaW52YWxpZFBhcmVudE9yQW5jZXN0b3IgPSBpbnZhbGlkUGFyZW50IHx8IGludmFsaWRBbmNlc3RvcjtcblxuICAgIGlmICghaW52YWxpZFBhcmVudE9yQW5jZXN0b3IpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2YXIgYW5jZXN0b3JUYWcgPSBpbnZhbGlkUGFyZW50T3JBbmNlc3Rvci50YWc7XG4gICAgdmFyIHdhcm5LZXkgPSAhIWludmFsaWRQYXJlbnQgKyAnfCcgKyBjaGlsZFRhZyArICd8JyArIGFuY2VzdG9yVGFnO1xuXG4gICAgaWYgKGRpZFdhcm4kMVt3YXJuS2V5XSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGRpZFdhcm4kMVt3YXJuS2V5XSA9IHRydWU7XG4gICAgdmFyIHRhZ0Rpc3BsYXlOYW1lID0gY2hpbGRUYWc7XG4gICAgdmFyIHdoaXRlc3BhY2VJbmZvID0gJyc7XG5cbiAgICBpZiAoY2hpbGRUYWcgPT09ICcjdGV4dCcpIHtcbiAgICAgIGlmICgvXFxTLy50ZXN0KGNoaWxkVGV4dCkpIHtcbiAgICAgICAgdGFnRGlzcGxheU5hbWUgPSAnVGV4dCBub2Rlcyc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0YWdEaXNwbGF5TmFtZSA9ICdXaGl0ZXNwYWNlIHRleHQgbm9kZXMnO1xuICAgICAgICB3aGl0ZXNwYWNlSW5mbyA9IFwiIE1ha2Ugc3VyZSB5b3UgZG9uJ3QgaGF2ZSBhbnkgZXh0cmEgd2hpdGVzcGFjZSBiZXR3ZWVuIHRhZ3Mgb24gXCIgKyAnZWFjaCBsaW5lIG9mIHlvdXIgc291cmNlIGNvZGUuJztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGFnRGlzcGxheU5hbWUgPSAnPCcgKyBjaGlsZFRhZyArICc+JztcbiAgICB9XG5cbiAgICBpZiAoaW52YWxpZFBhcmVudCkge1xuICAgICAgdmFyIGluZm8gPSAnJztcblxuICAgICAgaWYgKGFuY2VzdG9yVGFnID09PSAndGFibGUnICYmIGNoaWxkVGFnID09PSAndHInKSB7XG4gICAgICAgIGluZm8gKz0gJyBBZGQgYSA8dGJvZHk+LCA8dGhlYWQ+IG9yIDx0Zm9vdD4gdG8geW91ciBjb2RlIHRvIG1hdGNoIHRoZSBET00gdHJlZSBnZW5lcmF0ZWQgYnkgJyArICd0aGUgYnJvd3Nlci4nO1xuICAgICAgfVxuXG4gICAgICBlcnJvcigndmFsaWRhdGVET01OZXN0aW5nKC4uLik6ICVzIGNhbm5vdCBhcHBlYXIgYXMgYSBjaGlsZCBvZiA8JXM+LiVzJXMnLCB0YWdEaXNwbGF5TmFtZSwgYW5jZXN0b3JUYWcsIHdoaXRlc3BhY2VJbmZvLCBpbmZvKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZXJyb3IoJ3ZhbGlkYXRlRE9NTmVzdGluZyguLi4pOiAlcyBjYW5ub3QgYXBwZWFyIGFzIGEgZGVzY2VuZGFudCBvZiAnICsgJzwlcz4uJywgdGFnRGlzcGxheU5hbWUsIGFuY2VzdG9yVGFnKTtcbiAgICB9XG4gIH07XG59XG5cbnZhciBTVVBQUkVTU19IWURSQVRJT05fV0FSTklORyQxO1xuXG57XG4gIFNVUFBSRVNTX0hZRFJBVElPTl9XQVJOSU5HJDEgPSAnc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nJztcbn1cblxudmFyIFNVU1BFTlNFX1NUQVJUX0RBVEEgPSAnJCc7XG52YXIgU1VTUEVOU0VfRU5EX0RBVEEgPSAnLyQnO1xudmFyIFNVU1BFTlNFX1BFTkRJTkdfU1RBUlRfREFUQSA9ICckPyc7XG52YXIgU1VTUEVOU0VfRkFMTEJBQ0tfU1RBUlRfREFUQSA9ICckISc7XG52YXIgU1RZTEUkMSA9ICdzdHlsZSc7XG52YXIgZXZlbnRzRW5hYmxlZCA9IG51bGw7XG52YXIgc2VsZWN0aW9uSW5mb3JtYXRpb24gPSBudWxsO1xuXG5mdW5jdGlvbiBzaG91bGRBdXRvRm9jdXNIb3N0Q29tcG9uZW50KHR5cGUsIHByb3BzKSB7XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgJ2J1dHRvbic6XG4gICAgY2FzZSAnaW5wdXQnOlxuICAgIGNhc2UgJ3NlbGVjdCc6XG4gICAgY2FzZSAndGV4dGFyZWEnOlxuICAgICAgcmV0dXJuICEhcHJvcHMuYXV0b0ZvY3VzO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuZnVuY3Rpb24gZ2V0Um9vdEhvc3RDb250ZXh0KHJvb3RDb250YWluZXJJbnN0YW5jZSkge1xuICB2YXIgdHlwZTtcbiAgdmFyIG5hbWVzcGFjZTtcbiAgdmFyIG5vZGVUeXBlID0gcm9vdENvbnRhaW5lckluc3RhbmNlLm5vZGVUeXBlO1xuXG4gIHN3aXRjaCAobm9kZVR5cGUpIHtcbiAgICBjYXNlIERPQ1VNRU5UX05PREU6XG4gICAgY2FzZSBET0NVTUVOVF9GUkFHTUVOVF9OT0RFOlxuICAgICAge1xuICAgICAgICB0eXBlID0gbm9kZVR5cGUgPT09IERPQ1VNRU5UX05PREUgPyAnI2RvY3VtZW50JyA6ICcjZnJhZ21lbnQnO1xuICAgICAgICB2YXIgcm9vdCA9IHJvb3RDb250YWluZXJJbnN0YW5jZS5kb2N1bWVudEVsZW1lbnQ7XG4gICAgICAgIG5hbWVzcGFjZSA9IHJvb3QgPyByb290Lm5hbWVzcGFjZVVSSSA6IGdldENoaWxkTmFtZXNwYWNlKG51bGwsICcnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICBkZWZhdWx0OlxuICAgICAge1xuICAgICAgICB2YXIgY29udGFpbmVyID0gbm9kZVR5cGUgPT09IENPTU1FTlRfTk9ERSA/IHJvb3RDb250YWluZXJJbnN0YW5jZS5wYXJlbnROb2RlIDogcm9vdENvbnRhaW5lckluc3RhbmNlO1xuICAgICAgICB2YXIgb3duTmFtZXNwYWNlID0gY29udGFpbmVyLm5hbWVzcGFjZVVSSSB8fCBudWxsO1xuICAgICAgICB0eXBlID0gY29udGFpbmVyLnRhZ05hbWU7XG4gICAgICAgIG5hbWVzcGFjZSA9IGdldENoaWxkTmFtZXNwYWNlKG93bk5hbWVzcGFjZSwgdHlwZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICB9XG5cbiAge1xuICAgIHZhciB2YWxpZGF0ZWRUYWcgPSB0eXBlLnRvTG93ZXJDYXNlKCk7XG4gICAgdmFyIGFuY2VzdG9ySW5mbyA9IHVwZGF0ZWRBbmNlc3RvckluZm8obnVsbCwgdmFsaWRhdGVkVGFnKTtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZXNwYWNlOiBuYW1lc3BhY2UsXG4gICAgICBhbmNlc3RvckluZm86IGFuY2VzdG9ySW5mb1xuICAgIH07XG4gIH1cbn1cbmZ1bmN0aW9uIGdldENoaWxkSG9zdENvbnRleHQocGFyZW50SG9zdENvbnRleHQsIHR5cGUsIHJvb3RDb250YWluZXJJbnN0YW5jZSkge1xuICB7XG4gICAgdmFyIHBhcmVudEhvc3RDb250ZXh0RGV2ID0gcGFyZW50SG9zdENvbnRleHQ7XG4gICAgdmFyIG5hbWVzcGFjZSA9IGdldENoaWxkTmFtZXNwYWNlKHBhcmVudEhvc3RDb250ZXh0RGV2Lm5hbWVzcGFjZSwgdHlwZSk7XG4gICAgdmFyIGFuY2VzdG9ySW5mbyA9IHVwZGF0ZWRBbmNlc3RvckluZm8ocGFyZW50SG9zdENvbnRleHREZXYuYW5jZXN0b3JJbmZvLCB0eXBlKTtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZXNwYWNlOiBuYW1lc3BhY2UsXG4gICAgICBhbmNlc3RvckluZm86IGFuY2VzdG9ySW5mb1xuICAgIH07XG4gIH1cbn1cbmZ1bmN0aW9uIGdldFB1YmxpY0luc3RhbmNlKGluc3RhbmNlKSB7XG4gIHJldHVybiBpbnN0YW5jZTtcbn1cbmZ1bmN0aW9uIHByZXBhcmVGb3JDb21taXQoY29udGFpbmVySW5mbykge1xuICBldmVudHNFbmFibGVkID0gaXNFbmFibGVkKCk7XG4gIHNlbGVjdGlvbkluZm9ybWF0aW9uID0gZ2V0U2VsZWN0aW9uSW5mb3JtYXRpb24oKTtcbiAgdmFyIGFjdGl2ZUluc3RhbmNlID0gbnVsbDtcblxuICBzZXRFbmFibGVkKGZhbHNlKTtcbiAgcmV0dXJuIGFjdGl2ZUluc3RhbmNlO1xufVxuZnVuY3Rpb24gcmVzZXRBZnRlckNvbW1pdChjb250YWluZXJJbmZvKSB7XG4gIHJlc3RvcmVTZWxlY3Rpb24oc2VsZWN0aW9uSW5mb3JtYXRpb24pO1xuICBzZXRFbmFibGVkKGV2ZW50c0VuYWJsZWQpO1xuICBldmVudHNFbmFibGVkID0gbnVsbDtcbiAgc2VsZWN0aW9uSW5mb3JtYXRpb24gPSBudWxsO1xufVxuZnVuY3Rpb24gY3JlYXRlSW5zdGFuY2UodHlwZSwgcHJvcHMsIHJvb3RDb250YWluZXJJbnN0YW5jZSwgaG9zdENvbnRleHQsIGludGVybmFsSW5zdGFuY2VIYW5kbGUpIHtcbiAgdmFyIHBhcmVudE5hbWVzcGFjZTtcblxuICB7XG4gICAgLy8gVE9ETzogdGFrZSBuYW1lc3BhY2UgaW50byBhY2NvdW50IHdoZW4gdmFsaWRhdGluZy5cbiAgICB2YXIgaG9zdENvbnRleHREZXYgPSBob3N0Q29udGV4dDtcbiAgICB2YWxpZGF0ZURPTU5lc3RpbmcodHlwZSwgbnVsbCwgaG9zdENvbnRleHREZXYuYW5jZXN0b3JJbmZvKTtcblxuICAgIGlmICh0eXBlb2YgcHJvcHMuY2hpbGRyZW4gPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBwcm9wcy5jaGlsZHJlbiA9PT0gJ251bWJlcicpIHtcbiAgICAgIHZhciBzdHJpbmcgPSAnJyArIHByb3BzLmNoaWxkcmVuO1xuICAgICAgdmFyIG93bkFuY2VzdG9ySW5mbyA9IHVwZGF0ZWRBbmNlc3RvckluZm8oaG9zdENvbnRleHREZXYuYW5jZXN0b3JJbmZvLCB0eXBlKTtcbiAgICAgIHZhbGlkYXRlRE9NTmVzdGluZyhudWxsLCBzdHJpbmcsIG93bkFuY2VzdG9ySW5mbyk7XG4gICAgfVxuXG4gICAgcGFyZW50TmFtZXNwYWNlID0gaG9zdENvbnRleHREZXYubmFtZXNwYWNlO1xuICB9XG5cbiAgdmFyIGRvbUVsZW1lbnQgPSBjcmVhdGVFbGVtZW50KHR5cGUsIHByb3BzLCByb290Q29udGFpbmVySW5zdGFuY2UsIHBhcmVudE5hbWVzcGFjZSk7XG4gIHByZWNhY2hlRmliZXJOb2RlKGludGVybmFsSW5zdGFuY2VIYW5kbGUsIGRvbUVsZW1lbnQpO1xuICB1cGRhdGVGaWJlclByb3BzKGRvbUVsZW1lbnQsIHByb3BzKTtcbiAgcmV0dXJuIGRvbUVsZW1lbnQ7XG59XG5mdW5jdGlvbiBhcHBlbmRJbml0aWFsQ2hpbGQocGFyZW50SW5zdGFuY2UsIGNoaWxkKSB7XG4gIHBhcmVudEluc3RhbmNlLmFwcGVuZENoaWxkKGNoaWxkKTtcbn1cbmZ1bmN0aW9uIGZpbmFsaXplSW5pdGlhbENoaWxkcmVuKGRvbUVsZW1lbnQsIHR5cGUsIHByb3BzLCByb290Q29udGFpbmVySW5zdGFuY2UsIGhvc3RDb250ZXh0KSB7XG4gIHNldEluaXRpYWxQcm9wZXJ0aWVzKGRvbUVsZW1lbnQsIHR5cGUsIHByb3BzLCByb290Q29udGFpbmVySW5zdGFuY2UpO1xuICByZXR1cm4gc2hvdWxkQXV0b0ZvY3VzSG9zdENvbXBvbmVudCh0eXBlLCBwcm9wcyk7XG59XG5mdW5jdGlvbiBwcmVwYXJlVXBkYXRlKGRvbUVsZW1lbnQsIHR5cGUsIG9sZFByb3BzLCBuZXdQcm9wcywgcm9vdENvbnRhaW5lckluc3RhbmNlLCBob3N0Q29udGV4dCkge1xuICB7XG4gICAgdmFyIGhvc3RDb250ZXh0RGV2ID0gaG9zdENvbnRleHQ7XG5cbiAgICBpZiAodHlwZW9mIG5ld1Byb3BzLmNoaWxkcmVuICE9PSB0eXBlb2Ygb2xkUHJvcHMuY2hpbGRyZW4gJiYgKHR5cGVvZiBuZXdQcm9wcy5jaGlsZHJlbiA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIG5ld1Byb3BzLmNoaWxkcmVuID09PSAnbnVtYmVyJykpIHtcbiAgICAgIHZhciBzdHJpbmcgPSAnJyArIG5ld1Byb3BzLmNoaWxkcmVuO1xuICAgICAgdmFyIG93bkFuY2VzdG9ySW5mbyA9IHVwZGF0ZWRBbmNlc3RvckluZm8oaG9zdENvbnRleHREZXYuYW5jZXN0b3JJbmZvLCB0eXBlKTtcbiAgICAgIHZhbGlkYXRlRE9NTmVzdGluZyhudWxsLCBzdHJpbmcsIG93bkFuY2VzdG9ySW5mbyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRpZmZQcm9wZXJ0aWVzKGRvbUVsZW1lbnQsIHR5cGUsIG9sZFByb3BzLCBuZXdQcm9wcyk7XG59XG5mdW5jdGlvbiBzaG91bGRTZXRUZXh0Q29udGVudCh0eXBlLCBwcm9wcykge1xuICByZXR1cm4gdHlwZSA9PT0gJ3RleHRhcmVhJyB8fCB0eXBlID09PSAnb3B0aW9uJyB8fCB0eXBlID09PSAnbm9zY3JpcHQnIHx8IHR5cGVvZiBwcm9wcy5jaGlsZHJlbiA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHByb3BzLmNoaWxkcmVuID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgcHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgPT09ICdvYmplY3QnICYmIHByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MICE9PSBudWxsICYmIHByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLl9faHRtbCAhPSBudWxsO1xufVxuZnVuY3Rpb24gY3JlYXRlVGV4dEluc3RhbmNlKHRleHQsIHJvb3RDb250YWluZXJJbnN0YW5jZSwgaG9zdENvbnRleHQsIGludGVybmFsSW5zdGFuY2VIYW5kbGUpIHtcbiAge1xuICAgIHZhciBob3N0Q29udGV4dERldiA9IGhvc3RDb250ZXh0O1xuICAgIHZhbGlkYXRlRE9NTmVzdGluZyhudWxsLCB0ZXh0LCBob3N0Q29udGV4dERldi5hbmNlc3RvckluZm8pO1xuICB9XG5cbiAgdmFyIHRleHROb2RlID0gY3JlYXRlVGV4dE5vZGUodGV4dCwgcm9vdENvbnRhaW5lckluc3RhbmNlKTtcbiAgcHJlY2FjaGVGaWJlck5vZGUoaW50ZXJuYWxJbnN0YW5jZUhhbmRsZSwgdGV4dE5vZGUpO1xuICByZXR1cm4gdGV4dE5vZGU7XG59XG4vLyBpZiBhIGNvbXBvbmVudCBqdXN0IGltcG9ydHMgUmVhY3RET00gKGUuZy4gZm9yIGZpbmRET01Ob2RlKS5cbi8vIFNvbWUgZW52aXJvbm1lbnRzIG1pZ2h0IG5vdCBoYXZlIHNldFRpbWVvdXQgb3IgY2xlYXJUaW1lb3V0LlxuXG52YXIgc2NoZWR1bGVUaW1lb3V0ID0gdHlwZW9mIHNldFRpbWVvdXQgPT09ICdmdW5jdGlvbicgPyBzZXRUaW1lb3V0IDogdW5kZWZpbmVkO1xudmFyIGNhbmNlbFRpbWVvdXQgPSB0eXBlb2YgY2xlYXJUaW1lb3V0ID09PSAnZnVuY3Rpb24nID8gY2xlYXJUaW1lb3V0IDogdW5kZWZpbmVkO1xudmFyIG5vVGltZW91dCA9IC0xOyAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBjb21taXRNb3VudChkb21FbGVtZW50LCB0eXBlLCBuZXdQcm9wcywgaW50ZXJuYWxJbnN0YW5jZUhhbmRsZSkge1xuICAvLyBEZXNwaXRlIHRoZSBuYW1pbmcgdGhhdCBtaWdodCBpbXBseSBvdGhlcndpc2UsIHRoaXMgbWV0aG9kIG9ubHlcbiAgLy8gZmlyZXMgaWYgdGhlcmUgaXMgYW4gYFVwZGF0ZWAgZWZmZWN0IHNjaGVkdWxlZCBkdXJpbmcgbW91bnRpbmcuXG4gIC8vIFRoaXMgaGFwcGVucyBpZiBgZmluYWxpemVJbml0aWFsQ2hpbGRyZW5gIHJldHVybnMgYHRydWVgICh3aGljaCBpdFxuICAvLyBkb2VzIHRvIGltcGxlbWVudCB0aGUgYGF1dG9Gb2N1c2AgYXR0cmlidXRlIG9uIHRoZSBjbGllbnQpLiBCdXRcbiAgLy8gdGhlcmUgYXJlIGFsc28gb3RoZXIgY2FzZXMgd2hlbiB0aGlzIG1pZ2h0IGhhcHBlbiAoc3VjaCBhcyBwYXRjaGluZ1xuICAvLyB1cCB0ZXh0IGNvbnRlbnQgZHVyaW5nIGh5ZHJhdGlvbiBtaXNtYXRjaCkuIFNvIHdlJ2xsIGNoZWNrIHRoaXMgYWdhaW4uXG4gIGlmIChzaG91bGRBdXRvRm9jdXNIb3N0Q29tcG9uZW50KHR5cGUsIG5ld1Byb3BzKSkge1xuICAgIGRvbUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxufVxuZnVuY3Rpb24gY29tbWl0VXBkYXRlKGRvbUVsZW1lbnQsIHVwZGF0ZVBheWxvYWQsIHR5cGUsIG9sZFByb3BzLCBuZXdQcm9wcywgaW50ZXJuYWxJbnN0YW5jZUhhbmRsZSkge1xuICAvLyBVcGRhdGUgdGhlIHByb3BzIGhhbmRsZSBzbyB0aGF0IHdlIGtub3cgd2hpY2ggcHJvcHMgYXJlIHRoZSBvbmVzIHdpdGhcbiAgLy8gd2l0aCBjdXJyZW50IGV2ZW50IGhhbmRsZXJzLlxuICB1cGRhdGVGaWJlclByb3BzKGRvbUVsZW1lbnQsIG5ld1Byb3BzKTsgLy8gQXBwbHkgdGhlIGRpZmYgdG8gdGhlIERPTSBub2RlLlxuXG4gIHVwZGF0ZVByb3BlcnRpZXMoZG9tRWxlbWVudCwgdXBkYXRlUGF5bG9hZCwgdHlwZSwgb2xkUHJvcHMsIG5ld1Byb3BzKTtcbn1cbmZ1bmN0aW9uIHJlc2V0VGV4dENvbnRlbnQoZG9tRWxlbWVudCkge1xuICBzZXRUZXh0Q29udGVudChkb21FbGVtZW50LCAnJyk7XG59XG5mdW5jdGlvbiBjb21taXRUZXh0VXBkYXRlKHRleHRJbnN0YW5jZSwgb2xkVGV4dCwgbmV3VGV4dCkge1xuICB0ZXh0SW5zdGFuY2Uubm9kZVZhbHVlID0gbmV3VGV4dDtcbn1cbmZ1bmN0aW9uIGFwcGVuZENoaWxkKHBhcmVudEluc3RhbmNlLCBjaGlsZCkge1xuICBwYXJlbnRJbnN0YW5jZS5hcHBlbmRDaGlsZChjaGlsZCk7XG59XG5mdW5jdGlvbiBhcHBlbmRDaGlsZFRvQ29udGFpbmVyKGNvbnRhaW5lciwgY2hpbGQpIHtcbiAgdmFyIHBhcmVudE5vZGU7XG5cbiAgaWYgKGNvbnRhaW5lci5ub2RlVHlwZSA9PT0gQ09NTUVOVF9OT0RFKSB7XG4gICAgcGFyZW50Tm9kZSA9IGNvbnRhaW5lci5wYXJlbnROb2RlO1xuICAgIHBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGNoaWxkLCBjb250YWluZXIpO1xuICB9IGVsc2Uge1xuICAgIHBhcmVudE5vZGUgPSBjb250YWluZXI7XG4gICAgcGFyZW50Tm9kZS5hcHBlbmRDaGlsZChjaGlsZCk7XG4gIH0gLy8gVGhpcyBjb250YWluZXIgbWlnaHQgYmUgdXNlZCBmb3IgYSBwb3J0YWwuXG4gIC8vIElmIHNvbWV0aGluZyBpbnNpZGUgYSBwb3J0YWwgaXMgY2xpY2tlZCwgdGhhdCBjbGljayBzaG91bGQgYnViYmxlXG4gIC8vIHRocm91Z2ggdGhlIFJlYWN0IHRyZWUuIEhvd2V2ZXIsIG9uIE1vYmlsZSBTYWZhcmkgdGhlIGNsaWNrIHdvdWxkXG4gIC8vIG5ldmVyIGJ1YmJsZSB0aHJvdWdoIHRoZSAqRE9NKiB0cmVlIHVubGVzcyBhbiBhbmNlc3RvciB3aXRoIG9uY2xpY2tcbiAgLy8gZXZlbnQgZXhpc3RzLiBTbyB3ZSB3b3VsZG4ndCBzZWUgaXQgYW5kIGRpc3BhdGNoIGl0LlxuICAvLyBUaGlzIGlzIHdoeSB3ZSBlbnN1cmUgdGhhdCBub24gUmVhY3Qgcm9vdCBjb250YWluZXJzIGhhdmUgaW5saW5lIG9uY2xpY2tcbiAgLy8gZGVmaW5lZC5cbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xMTkxOFxuXG5cbiAgdmFyIHJlYWN0Um9vdENvbnRhaW5lciA9IGNvbnRhaW5lci5fcmVhY3RSb290Q29udGFpbmVyO1xuXG4gIGlmICgocmVhY3RSb290Q29udGFpbmVyID09PSBudWxsIHx8IHJlYWN0Um9vdENvbnRhaW5lciA9PT0gdW5kZWZpbmVkKSAmJiBwYXJlbnROb2RlLm9uY2xpY2sgPT09IG51bGwpIHtcbiAgICAvLyBUT0RPOiBUaGlzIGNhc3QgbWF5IG5vdCBiZSBzb3VuZCBmb3IgU1ZHLCBNYXRoTUwgb3IgY3VzdG9tIGVsZW1lbnRzLlxuICAgIHRyYXBDbGlja09uTm9uSW50ZXJhY3RpdmVFbGVtZW50KHBhcmVudE5vZGUpO1xuICB9XG59XG5mdW5jdGlvbiBpbnNlcnRCZWZvcmUocGFyZW50SW5zdGFuY2UsIGNoaWxkLCBiZWZvcmVDaGlsZCkge1xuICBwYXJlbnRJbnN0YW5jZS5pbnNlcnRCZWZvcmUoY2hpbGQsIGJlZm9yZUNoaWxkKTtcbn1cbmZ1bmN0aW9uIGluc2VydEluQ29udGFpbmVyQmVmb3JlKGNvbnRhaW5lciwgY2hpbGQsIGJlZm9yZUNoaWxkKSB7XG4gIGlmIChjb250YWluZXIubm9kZVR5cGUgPT09IENPTU1FTlRfTk9ERSkge1xuICAgIGNvbnRhaW5lci5wYXJlbnROb2RlLmluc2VydEJlZm9yZShjaGlsZCwgYmVmb3JlQ2hpbGQpO1xuICB9IGVsc2Uge1xuICAgIGNvbnRhaW5lci5pbnNlcnRCZWZvcmUoY2hpbGQsIGJlZm9yZUNoaWxkKTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZW1vdmVDaGlsZChwYXJlbnRJbnN0YW5jZSwgY2hpbGQpIHtcbiAgcGFyZW50SW5zdGFuY2UucmVtb3ZlQ2hpbGQoY2hpbGQpO1xufVxuZnVuY3Rpb24gcmVtb3ZlQ2hpbGRGcm9tQ29udGFpbmVyKGNvbnRhaW5lciwgY2hpbGQpIHtcbiAgaWYgKGNvbnRhaW5lci5ub2RlVHlwZSA9PT0gQ09NTUVOVF9OT0RFKSB7XG4gICAgY29udGFpbmVyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoY2hpbGQpO1xuICB9IGVsc2Uge1xuICAgIGNvbnRhaW5lci5yZW1vdmVDaGlsZChjaGlsZCk7XG4gIH1cbn1cbmZ1bmN0aW9uIGhpZGVJbnN0YW5jZShpbnN0YW5jZSkge1xuICAvLyBUT0RPOiBEb2VzIHRoaXMgd29yayBmb3IgYWxsIGVsZW1lbnQgdHlwZXM/IFdoYXQgYWJvdXQgTWF0aE1MPyBTaG91bGQgd2VcbiAgLy8gcGFzcyBob3N0IGNvbnRleHQgdG8gdGhpcyBtZXRob2Q/XG4gIGluc3RhbmNlID0gaW5zdGFuY2U7XG4gIHZhciBzdHlsZSA9IGluc3RhbmNlLnN0eWxlO1xuXG4gIGlmICh0eXBlb2Ygc3R5bGUuc2V0UHJvcGVydHkgPT09ICdmdW5jdGlvbicpIHtcbiAgICBzdHlsZS5zZXRQcm9wZXJ0eSgnZGlzcGxheScsICdub25lJywgJ2ltcG9ydGFudCcpO1xuICB9IGVsc2Uge1xuICAgIHN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gIH1cbn1cbmZ1bmN0aW9uIGhpZGVUZXh0SW5zdGFuY2UodGV4dEluc3RhbmNlKSB7XG4gIHRleHRJbnN0YW5jZS5ub2RlVmFsdWUgPSAnJztcbn1cbmZ1bmN0aW9uIHVuaGlkZUluc3RhbmNlKGluc3RhbmNlLCBwcm9wcykge1xuICBpbnN0YW5jZSA9IGluc3RhbmNlO1xuICB2YXIgc3R5bGVQcm9wID0gcHJvcHNbU1RZTEUkMV07XG4gIHZhciBkaXNwbGF5ID0gc3R5bGVQcm9wICE9PSB1bmRlZmluZWQgJiYgc3R5bGVQcm9wICE9PSBudWxsICYmIHN0eWxlUHJvcC5oYXNPd25Qcm9wZXJ0eSgnZGlzcGxheScpID8gc3R5bGVQcm9wLmRpc3BsYXkgOiBudWxsO1xuICBpbnN0YW5jZS5zdHlsZS5kaXNwbGF5ID0gZGFuZ2Vyb3VzU3R5bGVWYWx1ZSgnZGlzcGxheScsIGRpc3BsYXkpO1xufVxuZnVuY3Rpb24gdW5oaWRlVGV4dEluc3RhbmNlKHRleHRJbnN0YW5jZSwgdGV4dCkge1xuICB0ZXh0SW5zdGFuY2Uubm9kZVZhbHVlID0gdGV4dDtcbn1cbmZ1bmN0aW9uIGNsZWFyQ29udGFpbmVyKGNvbnRhaW5lcikge1xuICBpZiAoY29udGFpbmVyLm5vZGVUeXBlID09PSBFTEVNRU5UX05PREUpIHtcbiAgICBjb250YWluZXIudGV4dENvbnRlbnQgPSAnJztcbiAgfSBlbHNlIGlmIChjb250YWluZXIubm9kZVR5cGUgPT09IERPQ1VNRU5UX05PREUpIHtcbiAgICB2YXIgYm9keSA9IGNvbnRhaW5lci5ib2R5O1xuXG4gICAgaWYgKGJvZHkgIT0gbnVsbCkge1xuICAgICAgYm9keS50ZXh0Q29udGVudCA9ICcnO1xuICAgIH1cbiAgfVxufSAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBjYW5IeWRyYXRlSW5zdGFuY2UoaW5zdGFuY2UsIHR5cGUsIHByb3BzKSB7XG4gIGlmIChpbnN0YW5jZS5ub2RlVHlwZSAhPT0gRUxFTUVOVF9OT0RFIHx8IHR5cGUudG9Mb3dlckNhc2UoKSAhPT0gaW5zdGFuY2Uubm9kZU5hbWUudG9Mb3dlckNhc2UoKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9IC8vIFRoaXMgaGFzIG5vdyBiZWVuIHJlZmluZWQgdG8gYW4gZWxlbWVudCBub2RlLlxuXG5cbiAgcmV0dXJuIGluc3RhbmNlO1xufVxuZnVuY3Rpb24gY2FuSHlkcmF0ZVRleHRJbnN0YW5jZShpbnN0YW5jZSwgdGV4dCkge1xuICBpZiAodGV4dCA9PT0gJycgfHwgaW5zdGFuY2Uubm9kZVR5cGUgIT09IFRFWFRfTk9ERSkge1xuICAgIC8vIEVtcHR5IHN0cmluZ3MgYXJlIG5vdCBwYXJzZWQgYnkgSFRNTCBzbyB0aGVyZSB3b24ndCBiZSBhIGNvcnJlY3QgbWF0Y2ggaGVyZS5cbiAgICByZXR1cm4gbnVsbDtcbiAgfSAvLyBUaGlzIGhhcyBub3cgYmVlbiByZWZpbmVkIHRvIGEgdGV4dCBub2RlLlxuXG5cbiAgcmV0dXJuIGluc3RhbmNlO1xufVxuZnVuY3Rpb24gaXNTdXNwZW5zZUluc3RhbmNlUGVuZGluZyhpbnN0YW5jZSkge1xuICByZXR1cm4gaW5zdGFuY2UuZGF0YSA9PT0gU1VTUEVOU0VfUEVORElOR19TVEFSVF9EQVRBO1xufVxuZnVuY3Rpb24gaXNTdXNwZW5zZUluc3RhbmNlRmFsbGJhY2soaW5zdGFuY2UpIHtcbiAgcmV0dXJuIGluc3RhbmNlLmRhdGEgPT09IFNVU1BFTlNFX0ZBTExCQUNLX1NUQVJUX0RBVEE7XG59XG5cbmZ1bmN0aW9uIGdldE5leHRIeWRyYXRhYmxlKG5vZGUpIHtcbiAgLy8gU2tpcCBub24taHlkcmF0YWJsZSBub2Rlcy5cbiAgZm9yICg7IG5vZGUgIT0gbnVsbDsgbm9kZSA9IG5vZGUubmV4dFNpYmxpbmcpIHtcbiAgICB2YXIgbm9kZVR5cGUgPSBub2RlLm5vZGVUeXBlO1xuXG4gICAgaWYgKG5vZGVUeXBlID09PSBFTEVNRU5UX05PREUgfHwgbm9kZVR5cGUgPT09IFRFWFRfTk9ERSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5vZGU7XG59XG5cbmZ1bmN0aW9uIGdldE5leHRIeWRyYXRhYmxlU2libGluZyhpbnN0YW5jZSkge1xuICByZXR1cm4gZ2V0TmV4dEh5ZHJhdGFibGUoaW5zdGFuY2UubmV4dFNpYmxpbmcpO1xufVxuZnVuY3Rpb24gZ2V0Rmlyc3RIeWRyYXRhYmxlQ2hpbGQocGFyZW50SW5zdGFuY2UpIHtcbiAgcmV0dXJuIGdldE5leHRIeWRyYXRhYmxlKHBhcmVudEluc3RhbmNlLmZpcnN0Q2hpbGQpO1xufVxuZnVuY3Rpb24gaHlkcmF0ZUluc3RhbmNlKGluc3RhbmNlLCB0eXBlLCBwcm9wcywgcm9vdENvbnRhaW5lckluc3RhbmNlLCBob3N0Q29udGV4dCwgaW50ZXJuYWxJbnN0YW5jZUhhbmRsZSkge1xuICBwcmVjYWNoZUZpYmVyTm9kZShpbnRlcm5hbEluc3RhbmNlSGFuZGxlLCBpbnN0YW5jZSk7IC8vIFRPRE86IFBvc3NpYmx5IGRlZmVyIHRoaXMgdW50aWwgdGhlIGNvbW1pdCBwaGFzZSB3aGVyZSBhbGwgdGhlIGV2ZW50c1xuICAvLyBnZXQgYXR0YWNoZWQuXG5cbiAgdXBkYXRlRmliZXJQcm9wcyhpbnN0YW5jZSwgcHJvcHMpO1xuICB2YXIgcGFyZW50TmFtZXNwYWNlO1xuXG4gIHtcbiAgICB2YXIgaG9zdENvbnRleHREZXYgPSBob3N0Q29udGV4dDtcbiAgICBwYXJlbnROYW1lc3BhY2UgPSBob3N0Q29udGV4dERldi5uYW1lc3BhY2U7XG4gIH1cblxuICByZXR1cm4gZGlmZkh5ZHJhdGVkUHJvcGVydGllcyhpbnN0YW5jZSwgdHlwZSwgcHJvcHMsIHBhcmVudE5hbWVzcGFjZSk7XG59XG5mdW5jdGlvbiBoeWRyYXRlVGV4dEluc3RhbmNlKHRleHRJbnN0YW5jZSwgdGV4dCwgaW50ZXJuYWxJbnN0YW5jZUhhbmRsZSkge1xuICBwcmVjYWNoZUZpYmVyTm9kZShpbnRlcm5hbEluc3RhbmNlSGFuZGxlLCB0ZXh0SW5zdGFuY2UpO1xuICByZXR1cm4gZGlmZkh5ZHJhdGVkVGV4dCh0ZXh0SW5zdGFuY2UsIHRleHQpO1xufVxuZnVuY3Rpb24gZ2V0TmV4dEh5ZHJhdGFibGVJbnN0YW5jZUFmdGVyU3VzcGVuc2VJbnN0YW5jZShzdXNwZW5zZUluc3RhbmNlKSB7XG4gIHZhciBub2RlID0gc3VzcGVuc2VJbnN0YW5jZS5uZXh0U2libGluZzsgLy8gU2tpcCBwYXN0IGFsbCBub2RlcyB3aXRoaW4gdGhpcyBzdXNwZW5zZSBib3VuZGFyeS5cbiAgLy8gVGhlcmUgbWlnaHQgYmUgbmVzdGVkIG5vZGVzIHNvIHdlIG5lZWQgdG8ga2VlcCB0cmFjayBvZiBob3dcbiAgLy8gZGVlcCB3ZSBhcmUgYW5kIG9ubHkgYnJlYWsgb3V0IHdoZW4gd2UncmUgYmFjayBvbiB0b3AuXG5cbiAgdmFyIGRlcHRoID0gMDtcblxuICB3aGlsZSAobm9kZSkge1xuICAgIGlmIChub2RlLm5vZGVUeXBlID09PSBDT01NRU5UX05PREUpIHtcbiAgICAgIHZhciBkYXRhID0gbm9kZS5kYXRhO1xuXG4gICAgICBpZiAoZGF0YSA9PT0gU1VTUEVOU0VfRU5EX0RBVEEpIHtcbiAgICAgICAgaWYgKGRlcHRoID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIGdldE5leHRIeWRyYXRhYmxlU2libGluZyhub2RlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkZXB0aC0tO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGRhdGEgPT09IFNVU1BFTlNFX1NUQVJUX0RBVEEgfHwgZGF0YSA9PT0gU1VTUEVOU0VfRkFMTEJBQ0tfU1RBUlRfREFUQSB8fCBkYXRhID09PSBTVVNQRU5TRV9QRU5ESU5HX1NUQVJUX0RBVEEpIHtcbiAgICAgICAgZGVwdGgrKztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBub2RlID0gbm9kZS5uZXh0U2libGluZztcbiAgfSAvLyBUT0RPOiBXYXJuLCB3ZSBkaWRuJ3QgZmluZCB0aGUgZW5kIGNvbW1lbnQgYm91bmRhcnkuXG5cblxuICByZXR1cm4gbnVsbDtcbn0gLy8gUmV0dXJucyB0aGUgU3VzcGVuc2VJbnN0YW5jZSBpZiB0aGlzIG5vZGUgaXMgYSBkaXJlY3QgY2hpbGQgb2YgYVxuLy8gU3VzcGVuc2VJbnN0YW5jZS4gSS5lLiBpZiBpdHMgcHJldmlvdXMgc2libGluZyBpcyBhIENvbW1lbnQgd2l0aFxuLy8gU1VTUEVOU0VfeF9TVEFSVF9EQVRBLiBPdGhlcndpc2UsIG51bGwuXG5cbmZ1bmN0aW9uIGdldFBhcmVudFN1c3BlbnNlSW5zdGFuY2UodGFyZ2V0SW5zdGFuY2UpIHtcbiAgdmFyIG5vZGUgPSB0YXJnZXRJbnN0YW5jZS5wcmV2aW91c1NpYmxpbmc7IC8vIFNraXAgcGFzdCBhbGwgbm9kZXMgd2l0aGluIHRoaXMgc3VzcGVuc2UgYm91bmRhcnkuXG4gIC8vIFRoZXJlIG1pZ2h0IGJlIG5lc3RlZCBub2RlcyBzbyB3ZSBuZWVkIHRvIGtlZXAgdHJhY2sgb2YgaG93XG4gIC8vIGRlZXAgd2UgYXJlIGFuZCBvbmx5IGJyZWFrIG91dCB3aGVuIHdlJ3JlIGJhY2sgb24gdG9wLlxuXG4gIHZhciBkZXB0aCA9IDA7XG5cbiAgd2hpbGUgKG5vZGUpIHtcbiAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gQ09NTUVOVF9OT0RFKSB7XG4gICAgICB2YXIgZGF0YSA9IG5vZGUuZGF0YTtcblxuICAgICAgaWYgKGRhdGEgPT09IFNVU1BFTlNFX1NUQVJUX0RBVEEgfHwgZGF0YSA9PT0gU1VTUEVOU0VfRkFMTEJBQ0tfU1RBUlRfREFUQSB8fCBkYXRhID09PSBTVVNQRU5TRV9QRU5ESU5HX1NUQVJUX0RBVEEpIHtcbiAgICAgICAgaWYgKGRlcHRoID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZGVwdGgtLTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChkYXRhID09PSBTVVNQRU5TRV9FTkRfREFUQSkge1xuICAgICAgICBkZXB0aCsrO1xuICAgICAgfVxuICAgIH1cblxuICAgIG5vZGUgPSBub2RlLnByZXZpb3VzU2libGluZztcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuZnVuY3Rpb24gY29tbWl0SHlkcmF0ZWRDb250YWluZXIoY29udGFpbmVyKSB7XG4gIC8vIFJldHJ5IGlmIGFueSBldmVudCByZXBsYXlpbmcgd2FzIGJsb2NrZWQgb24gdGhpcy5cbiAgcmV0cnlJZkJsb2NrZWRPbihjb250YWluZXIpO1xufVxuZnVuY3Rpb24gY29tbWl0SHlkcmF0ZWRTdXNwZW5zZUluc3RhbmNlKHN1c3BlbnNlSW5zdGFuY2UpIHtcbiAgLy8gUmV0cnkgaWYgYW55IGV2ZW50IHJlcGxheWluZyB3YXMgYmxvY2tlZCBvbiB0aGlzLlxuICByZXRyeUlmQmxvY2tlZE9uKHN1c3BlbnNlSW5zdGFuY2UpO1xufVxuZnVuY3Rpb24gZGlkTm90TWF0Y2hIeWRyYXRlZENvbnRhaW5lclRleHRJbnN0YW5jZShwYXJlbnRDb250YWluZXIsIHRleHRJbnN0YW5jZSwgdGV4dCkge1xuICB7XG4gICAgd2FybkZvclVubWF0Y2hlZFRleHQodGV4dEluc3RhbmNlLCB0ZXh0KTtcbiAgfVxufVxuZnVuY3Rpb24gZGlkTm90TWF0Y2hIeWRyYXRlZFRleHRJbnN0YW5jZShwYXJlbnRUeXBlLCBwYXJlbnRQcm9wcywgcGFyZW50SW5zdGFuY2UsIHRleHRJbnN0YW5jZSwgdGV4dCkge1xuICBpZiAoIHBhcmVudFByb3BzW1NVUFBSRVNTX0hZRFJBVElPTl9XQVJOSU5HJDFdICE9PSB0cnVlKSB7XG4gICAgd2FybkZvclVubWF0Y2hlZFRleHQodGV4dEluc3RhbmNlLCB0ZXh0KTtcbiAgfVxufVxuZnVuY3Rpb24gZGlkTm90SHlkcmF0ZUNvbnRhaW5lckluc3RhbmNlKHBhcmVudENvbnRhaW5lciwgaW5zdGFuY2UpIHtcbiAge1xuICAgIGlmIChpbnN0YW5jZS5ub2RlVHlwZSA9PT0gRUxFTUVOVF9OT0RFKSB7XG4gICAgICB3YXJuRm9yRGVsZXRlZEh5ZHJhdGFibGVFbGVtZW50KHBhcmVudENvbnRhaW5lciwgaW5zdGFuY2UpO1xuICAgIH0gZWxzZSBpZiAoaW5zdGFuY2Uubm9kZVR5cGUgPT09IENPTU1FTlRfTk9ERSkgOyBlbHNlIHtcbiAgICAgIHdhcm5Gb3JEZWxldGVkSHlkcmF0YWJsZVRleHQocGFyZW50Q29udGFpbmVyLCBpbnN0YW5jZSk7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBkaWROb3RIeWRyYXRlSW5zdGFuY2UocGFyZW50VHlwZSwgcGFyZW50UHJvcHMsIHBhcmVudEluc3RhbmNlLCBpbnN0YW5jZSkge1xuICBpZiAoIHBhcmVudFByb3BzW1NVUFBSRVNTX0hZRFJBVElPTl9XQVJOSU5HJDFdICE9PSB0cnVlKSB7XG4gICAgaWYgKGluc3RhbmNlLm5vZGVUeXBlID09PSBFTEVNRU5UX05PREUpIHtcbiAgICAgIHdhcm5Gb3JEZWxldGVkSHlkcmF0YWJsZUVsZW1lbnQocGFyZW50SW5zdGFuY2UsIGluc3RhbmNlKTtcbiAgICB9IGVsc2UgaWYgKGluc3RhbmNlLm5vZGVUeXBlID09PSBDT01NRU5UX05PREUpIDsgZWxzZSB7XG4gICAgICB3YXJuRm9yRGVsZXRlZEh5ZHJhdGFibGVUZXh0KHBhcmVudEluc3RhbmNlLCBpbnN0YW5jZSk7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBkaWROb3RGaW5kSHlkcmF0YWJsZUNvbnRhaW5lckluc3RhbmNlKHBhcmVudENvbnRhaW5lciwgdHlwZSwgcHJvcHMpIHtcbiAge1xuICAgIHdhcm5Gb3JJbnNlcnRlZEh5ZHJhdGVkRWxlbWVudChwYXJlbnRDb250YWluZXIsIHR5cGUpO1xuICB9XG59XG5mdW5jdGlvbiBkaWROb3RGaW5kSHlkcmF0YWJsZUNvbnRhaW5lclRleHRJbnN0YW5jZShwYXJlbnRDb250YWluZXIsIHRleHQpIHtcbiAge1xuICAgIHdhcm5Gb3JJbnNlcnRlZEh5ZHJhdGVkVGV4dChwYXJlbnRDb250YWluZXIsIHRleHQpO1xuICB9XG59XG5mdW5jdGlvbiBkaWROb3RGaW5kSHlkcmF0YWJsZUluc3RhbmNlKHBhcmVudFR5cGUsIHBhcmVudFByb3BzLCBwYXJlbnRJbnN0YW5jZSwgdHlwZSwgcHJvcHMpIHtcbiAgaWYgKCBwYXJlbnRQcm9wc1tTVVBQUkVTU19IWURSQVRJT05fV0FSTklORyQxXSAhPT0gdHJ1ZSkge1xuICAgIHdhcm5Gb3JJbnNlcnRlZEh5ZHJhdGVkRWxlbWVudChwYXJlbnRJbnN0YW5jZSwgdHlwZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIGRpZE5vdEZpbmRIeWRyYXRhYmxlVGV4dEluc3RhbmNlKHBhcmVudFR5cGUsIHBhcmVudFByb3BzLCBwYXJlbnRJbnN0YW5jZSwgdGV4dCkge1xuICBpZiAoIHBhcmVudFByb3BzW1NVUFBSRVNTX0hZRFJBVElPTl9XQVJOSU5HJDFdICE9PSB0cnVlKSB7XG4gICAgd2FybkZvckluc2VydGVkSHlkcmF0ZWRUZXh0KHBhcmVudEluc3RhbmNlLCB0ZXh0KTtcbiAgfVxufVxuZnVuY3Rpb24gZGlkTm90RmluZEh5ZHJhdGFibGVTdXNwZW5zZUluc3RhbmNlKHBhcmVudFR5cGUsIHBhcmVudFByb3BzLCBwYXJlbnRJbnN0YW5jZSkge1xuICBpZiAoIHBhcmVudFByb3BzW1NVUFBSRVNTX0hZRFJBVElPTl9XQVJOSU5HJDFdICE9PSB0cnVlKSA7XG59XG52YXIgY2xpZW50SWQgPSAwO1xuZnVuY3Rpb24gbWFrZUNsaWVudElkSW5ERVYod2Fybk9uQWNjZXNzSW5ERVYpIHtcbiAgdmFyIGlkID0gJ3I6JyArIChjbGllbnRJZCsrKS50b1N0cmluZygzNik7XG4gIHJldHVybiB7XG4gICAgdG9TdHJpbmc6IGZ1bmN0aW9uICgpIHtcbiAgICAgIHdhcm5PbkFjY2Vzc0luREVWKCk7XG4gICAgICByZXR1cm4gaWQ7XG4gICAgfSxcbiAgICB2YWx1ZU9mOiBmdW5jdGlvbiAoKSB7XG4gICAgICB3YXJuT25BY2Nlc3NJbkRFVigpO1xuICAgICAgcmV0dXJuIGlkO1xuICAgIH1cbiAgfTtcbn1cbmZ1bmN0aW9uIGlzT3BhcXVlSHlkcmF0aW5nT2JqZWN0KHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlLiQkdHlwZW9mID09PSBSRUFDVF9PUEFRVUVfSURfVFlQRTtcbn1cbmZ1bmN0aW9uIG1ha2VPcGFxdWVIeWRyYXRpbmdPYmplY3QoYXR0ZW1wdFRvUmVhZFZhbHVlKSB7XG4gIHJldHVybiB7XG4gICAgJCR0eXBlb2Y6IFJFQUNUX09QQVFVRV9JRF9UWVBFLFxuICAgIHRvU3RyaW5nOiBhdHRlbXB0VG9SZWFkVmFsdWUsXG4gICAgdmFsdWVPZjogYXR0ZW1wdFRvUmVhZFZhbHVlXG4gIH07XG59XG5mdW5jdGlvbiBwcmVwYXJlUG9ydGFsTW91bnQocG9ydGFsSW5zdGFuY2UpIHtcbiAge1xuICAgIGxpc3RlblRvQWxsU3VwcG9ydGVkRXZlbnRzKHBvcnRhbEluc3RhbmNlKTtcbiAgfVxufVxuXG52YXIgcmFuZG9tS2V5ID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMik7XG52YXIgaW50ZXJuYWxJbnN0YW5jZUtleSA9ICdfX3JlYWN0RmliZXIkJyArIHJhbmRvbUtleTtcbnZhciBpbnRlcm5hbFByb3BzS2V5ID0gJ19fcmVhY3RQcm9wcyQnICsgcmFuZG9tS2V5O1xudmFyIGludGVybmFsQ29udGFpbmVySW5zdGFuY2VLZXkgPSAnX19yZWFjdENvbnRhaW5lciQnICsgcmFuZG9tS2V5O1xudmFyIGludGVybmFsRXZlbnRIYW5kbGVyc0tleSA9ICdfX3JlYWN0RXZlbnRzJCcgKyByYW5kb21LZXk7XG5mdW5jdGlvbiBwcmVjYWNoZUZpYmVyTm9kZShob3N0SW5zdCwgbm9kZSkge1xuICBub2RlW2ludGVybmFsSW5zdGFuY2VLZXldID0gaG9zdEluc3Q7XG59XG5mdW5jdGlvbiBtYXJrQ29udGFpbmVyQXNSb290KGhvc3RSb290LCBub2RlKSB7XG4gIG5vZGVbaW50ZXJuYWxDb250YWluZXJJbnN0YW5jZUtleV0gPSBob3N0Um9vdDtcbn1cbmZ1bmN0aW9uIHVubWFya0NvbnRhaW5lckFzUm9vdChub2RlKSB7XG4gIG5vZGVbaW50ZXJuYWxDb250YWluZXJJbnN0YW5jZUtleV0gPSBudWxsO1xufVxuZnVuY3Rpb24gaXNDb250YWluZXJNYXJrZWRBc1Jvb3Qobm9kZSkge1xuICByZXR1cm4gISFub2RlW2ludGVybmFsQ29udGFpbmVySW5zdGFuY2VLZXldO1xufSAvLyBHaXZlbiBhIERPTSBub2RlLCByZXR1cm4gdGhlIGNsb3Nlc3QgSG9zdENvbXBvbmVudCBvciBIb3N0VGV4dCBmaWJlciBhbmNlc3Rvci5cbi8vIElmIHRoZSB0YXJnZXQgbm9kZSBpcyBwYXJ0IG9mIGEgaHlkcmF0ZWQgb3Igbm90IHlldCByZW5kZXJlZCBzdWJ0cmVlLCB0aGVuXG4vLyB0aGlzIG1heSBhbHNvIHJldHVybiBhIFN1c3BlbnNlQ29tcG9uZW50IG9yIEhvc3RSb290IHRvIGluZGljYXRlIHRoYXQuXG4vLyBDb25jZXB0dWFsbHkgdGhlIEhvc3RSb290IGZpYmVyIGlzIGEgY2hpbGQgb2YgdGhlIENvbnRhaW5lciBub2RlLiBTbyBpZiB5b3Vcbi8vIHBhc3MgdGhlIENvbnRhaW5lciBub2RlIGFzIHRoZSB0YXJnZXROb2RlLCB5b3Ugd2lsbCBub3QgYWN0dWFsbHkgZ2V0IHRoZVxuLy8gSG9zdFJvb3QgYmFjay4gVG8gZ2V0IHRvIHRoZSBIb3N0Um9vdCwgeW91IG5lZWQgdG8gcGFzcyBhIGNoaWxkIG9mIGl0LlxuLy8gVGhlIHNhbWUgdGhpbmcgYXBwbGllcyB0byBTdXNwZW5zZSBib3VuZGFyaWVzLlxuXG5mdW5jdGlvbiBnZXRDbG9zZXN0SW5zdGFuY2VGcm9tTm9kZSh0YXJnZXROb2RlKSB7XG4gIHZhciB0YXJnZXRJbnN0ID0gdGFyZ2V0Tm9kZVtpbnRlcm5hbEluc3RhbmNlS2V5XTtcblxuICBpZiAodGFyZ2V0SW5zdCkge1xuICAgIC8vIERvbid0IHJldHVybiBIb3N0Um9vdCBvciBTdXNwZW5zZUNvbXBvbmVudCBoZXJlLlxuICAgIHJldHVybiB0YXJnZXRJbnN0O1xuICB9IC8vIElmIHRoZSBkaXJlY3QgZXZlbnQgdGFyZ2V0IGlzbid0IGEgUmVhY3Qgb3duZWQgRE9NIG5vZGUsIHdlIG5lZWQgdG8gbG9va1xuICAvLyB0byBzZWUgaWYgb25lIG9mIGl0cyBwYXJlbnRzIGlzIGEgUmVhY3Qgb3duZWQgRE9NIG5vZGUuXG5cblxuICB2YXIgcGFyZW50Tm9kZSA9IHRhcmdldE5vZGUucGFyZW50Tm9kZTtcblxuICB3aGlsZSAocGFyZW50Tm9kZSkge1xuICAgIC8vIFdlJ2xsIGNoZWNrIGlmIHRoaXMgaXMgYSBjb250YWluZXIgcm9vdCB0aGF0IGNvdWxkIGluY2x1ZGVcbiAgICAvLyBSZWFjdCBub2RlcyBpbiB0aGUgZnV0dXJlLiBXZSBuZWVkIHRvIGNoZWNrIHRoaXMgZmlyc3QgYmVjYXVzZVxuICAgIC8vIGlmIHdlJ3JlIGEgY2hpbGQgb2YgYSBkZWh5ZHJhdGVkIGNvbnRhaW5lciwgd2UgbmVlZCB0byBmaXJzdFxuICAgIC8vIGZpbmQgdGhhdCBpbm5lciBjb250YWluZXIgYmVmb3JlIG1vdmluZyBvbiB0byBmaW5kaW5nIHRoZSBwYXJlbnRcbiAgICAvLyBpbnN0YW5jZS4gTm90ZSB0aGF0IHdlIGRvbid0IGNoZWNrIHRoaXMgZmllbGQgb24gIHRoZSB0YXJnZXROb2RlXG4gICAgLy8gaXRzZWxmIGJlY2F1c2UgdGhlIGZpYmVycyBhcmUgY29uY2VwdHVhbGx5IGJldHdlZW4gdGhlIGNvbnRhaW5lclxuICAgIC8vIG5vZGUgYW5kIHRoZSBmaXJzdCBjaGlsZC4gSXQgaXNuJ3Qgc3Vycm91bmRpbmcgdGhlIGNvbnRhaW5lciBub2RlLlxuICAgIC8vIElmIGl0J3Mgbm90IGEgY29udGFpbmVyLCB3ZSBjaGVjayBpZiBpdCdzIGFuIGluc3RhbmNlLlxuICAgIHRhcmdldEluc3QgPSBwYXJlbnROb2RlW2ludGVybmFsQ29udGFpbmVySW5zdGFuY2VLZXldIHx8IHBhcmVudE5vZGVbaW50ZXJuYWxJbnN0YW5jZUtleV07XG5cbiAgICBpZiAodGFyZ2V0SW5zdCkge1xuICAgICAgLy8gU2luY2UgdGhpcyB3YXNuJ3QgdGhlIGRpcmVjdCB0YXJnZXQgb2YgdGhlIGV2ZW50LCB3ZSBtaWdodCBoYXZlXG4gICAgICAvLyBzdGVwcGVkIHBhc3QgZGVoeWRyYXRlZCBET00gbm9kZXMgdG8gZ2V0IGhlcmUuIEhvd2V2ZXIgdGhleSBjb3VsZFxuICAgICAgLy8gYWxzbyBoYXZlIGJlZW4gbm9uLVJlYWN0IG5vZGVzLiBXZSBuZWVkIHRvIGFuc3dlciB3aGljaCBvbmUuXG4gICAgICAvLyBJZiB3ZSB0aGUgaW5zdGFuY2UgZG9lc24ndCBoYXZlIGFueSBjaGlsZHJlbiwgdGhlbiB0aGVyZSBjYW4ndCBiZVxuICAgICAgLy8gYSBuZXN0ZWQgc3VzcGVuc2UgYm91bmRhcnkgd2l0aGluIGl0LiBTbyB3ZSBjYW4gdXNlIHRoaXMgYXMgYSBmYXN0XG4gICAgICAvLyBiYWlsb3V0LiBNb3N0IG9mIHRoZSB0aW1lLCB3aGVuIHBlb3BsZSBhZGQgbm9uLVJlYWN0IGNoaWxkcmVuIHRvXG4gICAgICAvLyB0aGUgdHJlZSwgaXQgaXMgdXNpbmcgYSByZWYgdG8gYSBjaGlsZC1sZXNzIERPTSBub2RlLlxuICAgICAgLy8gTm9ybWFsbHkgd2UnZCBvbmx5IG5lZWQgdG8gY2hlY2sgb25lIG9mIHRoZSBmaWJlcnMgYmVjYXVzZSBpZiBpdFxuICAgICAgLy8gaGFzIGV2ZXIgZ29uZSBmcm9tIGhhdmluZyBjaGlsZHJlbiB0byBkZWxldGluZyB0aGVtIG9yIHZpY2UgdmVyc2FcbiAgICAgIC8vIGl0IHdvdWxkIGhhdmUgZGVsZXRlZCB0aGUgZGVoeWRyYXRlZCBib3VuZGFyeSBuZXN0ZWQgaW5zaWRlIGFscmVhZHkuXG4gICAgICAvLyBIb3dldmVyLCBzaW5jZSB0aGUgSG9zdFJvb3Qgc3RhcnRzIG91dCB3aXRoIGFuIGFsdGVybmF0ZSBpdCBtaWdodFxuICAgICAgLy8gaGF2ZSBvbmUgb24gdGhlIGFsdGVybmF0ZSBzbyB3ZSBuZWVkIHRvIGNoZWNrIGluIGNhc2UgdGhpcyB3YXMgYVxuICAgICAgLy8gcm9vdC5cbiAgICAgIHZhciBhbHRlcm5hdGUgPSB0YXJnZXRJbnN0LmFsdGVybmF0ZTtcblxuICAgICAgaWYgKHRhcmdldEluc3QuY2hpbGQgIT09IG51bGwgfHwgYWx0ZXJuYXRlICE9PSBudWxsICYmIGFsdGVybmF0ZS5jaGlsZCAhPT0gbnVsbCkge1xuICAgICAgICAvLyBOZXh0IHdlIG5lZWQgdG8gZmlndXJlIG91dCBpZiB0aGUgbm9kZSB0aGF0IHNraXBwZWQgcGFzdCBpc1xuICAgICAgICAvLyBuZXN0ZWQgd2l0aGluIGEgZGVoeWRyYXRlZCBib3VuZGFyeSBhbmQgaWYgc28sIHdoaWNoIG9uZS5cbiAgICAgICAgdmFyIHN1c3BlbnNlSW5zdGFuY2UgPSBnZXRQYXJlbnRTdXNwZW5zZUluc3RhbmNlKHRhcmdldE5vZGUpO1xuXG4gICAgICAgIHdoaWxlIChzdXNwZW5zZUluc3RhbmNlICE9PSBudWxsKSB7XG4gICAgICAgICAgLy8gV2UgZm91bmQgYSBzdXNwZW5zZSBpbnN0YW5jZS4gVGhhdCBtZWFucyB0aGF0IHdlIGhhdmVuJ3RcbiAgICAgICAgICAvLyBoeWRyYXRlZCBpdCB5ZXQuIEV2ZW4gdGhvdWdoIHdlIGxlYXZlIHRoZSBjb21tZW50cyBpbiB0aGVcbiAgICAgICAgICAvLyBET00gYWZ0ZXIgaHlkcmF0aW5nLCBhbmQgdGhlcmUgYXJlIGJvdW5kYXJpZXMgaW4gdGhlIERPTVxuICAgICAgICAgIC8vIHRoYXQgY291bGQgYWxyZWFkeSBiZSBoeWRyYXRlZCwgd2Ugd291bGRuJ3QgaGF2ZSBmb3VuZCB0aGVtXG4gICAgICAgICAgLy8gdGhyb3VnaCB0aGlzIHBhc3Mgc2luY2UgaWYgdGhlIHRhcmdldCBpcyBoeWRyYXRlZCBpdCB3b3VsZFxuICAgICAgICAgIC8vIGhhdmUgaGFkIGFuIGludGVybmFsSW5zdGFuY2VLZXkgb24gaXQuXG4gICAgICAgICAgLy8gTGV0J3MgZ2V0IHRoZSBmaWJlciBhc3NvY2lhdGVkIHdpdGggdGhlIFN1c3BlbnNlQ29tcG9uZW50XG4gICAgICAgICAgLy8gYXMgdGhlIGRlZXBlc3QgaW5zdGFuY2UuXG4gICAgICAgICAgdmFyIHRhcmdldFN1c3BlbnNlSW5zdCA9IHN1c3BlbnNlSW5zdGFuY2VbaW50ZXJuYWxJbnN0YW5jZUtleV07XG5cbiAgICAgICAgICBpZiAodGFyZ2V0U3VzcGVuc2VJbnN0KSB7XG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0U3VzcGVuc2VJbnN0O1xuICAgICAgICAgIH0gLy8gSWYgd2UgZG9uJ3QgZmluZCBhIEZpYmVyIG9uIHRoZSBjb21tZW50LCBpdCBtaWdodCBiZSBiZWNhdXNlXG4gICAgICAgICAgLy8gd2UgaGF2ZW4ndCBnb3R0ZW4gdG8gaHlkcmF0ZSBpdCB5ZXQuIFRoZXJlIG1pZ2h0IHN0aWxsIGJlIGFcbiAgICAgICAgICAvLyBwYXJlbnQgYm91bmRhcnkgdGhhdCBoYXNuJ3QgYWJvdmUgdGhpcyBvbmUgc28gd2UgbmVlZCB0byBmaW5kXG4gICAgICAgICAgLy8gdGhlIG91dGVyIG1vc3QgdGhhdCBpcyBrbm93bi5cblxuXG4gICAgICAgICAgc3VzcGVuc2VJbnN0YW5jZSA9IGdldFBhcmVudFN1c3BlbnNlSW5zdGFuY2Uoc3VzcGVuc2VJbnN0YW5jZSk7IC8vIElmIHdlIGRvbid0IGZpbmQgb25lLCB0aGVuIHRoYXQgc2hvdWxkIG1lYW4gdGhhdCB0aGUgcGFyZW50XG4gICAgICAgICAgLy8gaG9zdCBjb21wb25lbnQgYWxzbyBoYXNuJ3QgaHlkcmF0ZWQgeWV0LiBXZSBjYW4gcmV0dXJuIGl0XG4gICAgICAgICAgLy8gYmVsb3cgc2luY2UgaXQgd2lsbCBiYWlsIG91dCBvbiB0aGUgaXNNb3VudGVkIGNoZWNrIGxhdGVyLlxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0YXJnZXRJbnN0O1xuICAgIH1cblxuICAgIHRhcmdldE5vZGUgPSBwYXJlbnROb2RlO1xuICAgIHBhcmVudE5vZGUgPSB0YXJnZXROb2RlLnBhcmVudE5vZGU7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cbi8qKlxuICogR2l2ZW4gYSBET00gbm9kZSwgcmV0dXJuIHRoZSBSZWFjdERPTUNvbXBvbmVudCBvciBSZWFjdERPTVRleHRDb21wb25lbnRcbiAqIGluc3RhbmNlLCBvciBudWxsIGlmIHRoZSBub2RlIHdhcyBub3QgcmVuZGVyZWQgYnkgdGhpcyBSZWFjdC5cbiAqL1xuXG5mdW5jdGlvbiBnZXRJbnN0YW5jZUZyb21Ob2RlKG5vZGUpIHtcbiAgdmFyIGluc3QgPSBub2RlW2ludGVybmFsSW5zdGFuY2VLZXldIHx8IG5vZGVbaW50ZXJuYWxDb250YWluZXJJbnN0YW5jZUtleV07XG5cbiAgaWYgKGluc3QpIHtcbiAgICBpZiAoaW5zdC50YWcgPT09IEhvc3RDb21wb25lbnQgfHwgaW5zdC50YWcgPT09IEhvc3RUZXh0IHx8IGluc3QudGFnID09PSBTdXNwZW5zZUNvbXBvbmVudCB8fCBpbnN0LnRhZyA9PT0gSG9zdFJvb3QpIHtcbiAgICAgIHJldHVybiBpbnN0O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cbi8qKlxuICogR2l2ZW4gYSBSZWFjdERPTUNvbXBvbmVudCBvciBSZWFjdERPTVRleHRDb21wb25lbnQsIHJldHVybiB0aGUgY29ycmVzcG9uZGluZ1xuICogRE9NIG5vZGUuXG4gKi9cblxuZnVuY3Rpb24gZ2V0Tm9kZUZyb21JbnN0YW5jZShpbnN0KSB7XG4gIGlmIChpbnN0LnRhZyA9PT0gSG9zdENvbXBvbmVudCB8fCBpbnN0LnRhZyA9PT0gSG9zdFRleHQpIHtcbiAgICAvLyBJbiBGaWJlciB0aGlzLCBpcyBqdXN0IHRoZSBzdGF0ZSBub2RlIHJpZ2h0IG5vdy4gV2UgYXNzdW1lIGl0IHdpbGwgYmVcbiAgICAvLyBhIGhvc3QgY29tcG9uZW50IG9yIGhvc3QgdGV4dC5cbiAgICByZXR1cm4gaW5zdC5zdGF0ZU5vZGU7XG4gIH0gLy8gV2l0aG91dCB0aGlzIGZpcnN0IGludmFyaWFudCwgcGFzc2luZyBhIG5vbi1ET00tY29tcG9uZW50IHRyaWdnZXJzIHRoZSBuZXh0XG4gIC8vIGludmFyaWFudCBmb3IgYSBtaXNzaW5nIHBhcmVudCwgd2hpY2ggaXMgc3VwZXIgY29uZnVzaW5nLlxuXG5cbiAge1xuICAgIHtcbiAgICAgIHRocm93IEVycm9yKCBcImdldE5vZGVGcm9tSW5zdGFuY2U6IEludmFsaWQgYXJndW1lbnQuXCIgKTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIGdldEZpYmVyQ3VycmVudFByb3BzRnJvbU5vZGUobm9kZSkge1xuICByZXR1cm4gbm9kZVtpbnRlcm5hbFByb3BzS2V5XSB8fCBudWxsO1xufVxuZnVuY3Rpb24gdXBkYXRlRmliZXJQcm9wcyhub2RlLCBwcm9wcykge1xuICBub2RlW2ludGVybmFsUHJvcHNLZXldID0gcHJvcHM7XG59XG5mdW5jdGlvbiBnZXRFdmVudExpc3RlbmVyU2V0KG5vZGUpIHtcbiAgdmFyIGVsZW1lbnRMaXN0ZW5lclNldCA9IG5vZGVbaW50ZXJuYWxFdmVudEhhbmRsZXJzS2V5XTtcblxuICBpZiAoZWxlbWVudExpc3RlbmVyU2V0ID09PSB1bmRlZmluZWQpIHtcbiAgICBlbGVtZW50TGlzdGVuZXJTZXQgPSBub2RlW2ludGVybmFsRXZlbnRIYW5kbGVyc0tleV0gPSBuZXcgU2V0KCk7XG4gIH1cblxuICByZXR1cm4gZWxlbWVudExpc3RlbmVyU2V0O1xufVxuXG52YXIgbG9nZ2VkVHlwZUZhaWx1cmVzID0ge307XG52YXIgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSQxID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZTtcblxuZnVuY3Rpb24gc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQoZWxlbWVudCkge1xuICB7XG4gICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgIHZhciBvd25lciA9IGVsZW1lbnQuX293bmVyO1xuICAgICAgdmFyIHN0YWNrID0gZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWKGVsZW1lbnQudHlwZSwgZWxlbWVudC5fc291cmNlLCBvd25lciA/IG93bmVyLnR5cGUgOiBudWxsKTtcbiAgICAgIFJlYWN0RGVidWdDdXJyZW50RnJhbWUkMS5zZXRFeHRyYVN0YWNrRnJhbWUoc3RhY2spO1xuICAgIH0gZWxzZSB7XG4gICAgICBSZWFjdERlYnVnQ3VycmVudEZyYW1lJDEuc2V0RXh0cmFTdGFja0ZyYW1lKG51bGwpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjaGVja1Byb3BUeXBlcyh0eXBlU3BlY3MsIHZhbHVlcywgbG9jYXRpb24sIGNvbXBvbmVudE5hbWUsIGVsZW1lbnQpIHtcbiAge1xuICAgIC8vICRGbG93Rml4TWUgVGhpcyBpcyBva2F5IGJ1dCBGbG93IGRvZXNuJ3Qga25vdyBpdC5cbiAgICB2YXIgaGFzID0gRnVuY3Rpb24uY2FsbC5iaW5kKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkpO1xuXG4gICAgZm9yICh2YXIgdHlwZVNwZWNOYW1lIGluIHR5cGVTcGVjcykge1xuICAgICAgaWYgKGhhcyh0eXBlU3BlY3MsIHR5cGVTcGVjTmFtZSkpIHtcbiAgICAgICAgdmFyIGVycm9yJDEgPSB2b2lkIDA7IC8vIFByb3AgdHlwZSB2YWxpZGF0aW9uIG1heSB0aHJvdy4gSW4gY2FzZSB0aGV5IGRvLCB3ZSBkb24ndCB3YW50IHRvXG4gICAgICAgIC8vIGZhaWwgdGhlIHJlbmRlciBwaGFzZSB3aGVyZSBpdCBkaWRuJ3QgZmFpbCBiZWZvcmUuIFNvIHdlIGxvZyBpdC5cbiAgICAgICAgLy8gQWZ0ZXIgdGhlc2UgaGF2ZSBiZWVuIGNsZWFuZWQgdXAsIHdlJ2xsIGxldCB0aGVtIHRocm93LlxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgLy8gVGhpcyBpcyBpbnRlbnRpb25hbGx5IGFuIGludmFyaWFudCB0aGF0IGdldHMgY2F1Z2h0LiBJdCdzIHRoZSBzYW1lXG4gICAgICAgICAgLy8gYmVoYXZpb3IgYXMgd2l0aG91dCB0aGlzIHN0YXRlbWVudCBleGNlcHQgd2l0aCBhIGJldHRlciBtZXNzYWdlLlxuICAgICAgICAgIGlmICh0eXBlb2YgdHlwZVNwZWNzW3R5cGVTcGVjTmFtZV0gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHZhciBlcnIgPSBFcnJvcigoY29tcG9uZW50TmFtZSB8fCAnUmVhY3QgY2xhc3MnKSArICc6ICcgKyBsb2NhdGlvbiArICcgdHlwZSBgJyArIHR5cGVTcGVjTmFtZSArICdgIGlzIGludmFsaWQ7ICcgKyAnaXQgbXVzdCBiZSBhIGZ1bmN0aW9uLCB1c3VhbGx5IGZyb20gdGhlIGBwcm9wLXR5cGVzYCBwYWNrYWdlLCBidXQgcmVjZWl2ZWQgYCcgKyB0eXBlb2YgdHlwZVNwZWNzW3R5cGVTcGVjTmFtZV0gKyAnYC4nICsgJ1RoaXMgb2Z0ZW4gaGFwcGVucyBiZWNhdXNlIG9mIHR5cG9zIHN1Y2ggYXMgYFByb3BUeXBlcy5mdW5jdGlvbmAgaW5zdGVhZCBvZiBgUHJvcFR5cGVzLmZ1bmNgLicpO1xuICAgICAgICAgICAgZXJyLm5hbWUgPSAnSW52YXJpYW50IFZpb2xhdGlvbic7XG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZXJyb3IkMSA9IHR5cGVTcGVjc1t0eXBlU3BlY05hbWVdKHZhbHVlcywgdHlwZVNwZWNOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgbnVsbCwgJ1NFQ1JFVF9ET19OT1RfUEFTU19USElTX09SX1lPVV9XSUxMX0JFX0ZJUkVEJyk7XG4gICAgICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICAgICAgZXJyb3IkMSA9IGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGVycm9yJDEgJiYgIShlcnJvciQxIGluc3RhbmNlb2YgRXJyb3IpKSB7XG4gICAgICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQoZWxlbWVudCk7XG5cbiAgICAgICAgICBlcnJvcignJXM6IHR5cGUgc3BlY2lmaWNhdGlvbiBvZiAlcycgKyAnIGAlc2AgaXMgaW52YWxpZDsgdGhlIHR5cGUgY2hlY2tlciAnICsgJ2Z1bmN0aW9uIG11c3QgcmV0dXJuIGBudWxsYCBvciBhbiBgRXJyb3JgIGJ1dCByZXR1cm5lZCBhICVzLiAnICsgJ1lvdSBtYXkgaGF2ZSBmb3Jnb3R0ZW4gdG8gcGFzcyBhbiBhcmd1bWVudCB0byB0aGUgdHlwZSBjaGVja2VyICcgKyAnY3JlYXRvciAoYXJyYXlPZiwgaW5zdGFuY2VPZiwgb2JqZWN0T2YsIG9uZU9mLCBvbmVPZlR5cGUsIGFuZCAnICsgJ3NoYXBlIGFsbCByZXF1aXJlIGFuIGFyZ3VtZW50KS4nLCBjb21wb25lbnROYW1lIHx8ICdSZWFjdCBjbGFzcycsIGxvY2F0aW9uLCB0eXBlU3BlY05hbWUsIHR5cGVvZiBlcnJvciQxKTtcblxuICAgICAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50KG51bGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGVycm9yJDEgaW5zdGFuY2VvZiBFcnJvciAmJiAhKGVycm9yJDEubWVzc2FnZSBpbiBsb2dnZWRUeXBlRmFpbHVyZXMpKSB7XG4gICAgICAgICAgLy8gT25seSBtb25pdG9yIHRoaXMgZmFpbHVyZSBvbmNlIGJlY2F1c2UgdGhlcmUgdGVuZHMgdG8gYmUgYSBsb3Qgb2YgdGhlXG4gICAgICAgICAgLy8gc2FtZSBlcnJvci5cbiAgICAgICAgICBsb2dnZWRUeXBlRmFpbHVyZXNbZXJyb3IkMS5tZXNzYWdlXSA9IHRydWU7XG4gICAgICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQoZWxlbWVudCk7XG5cbiAgICAgICAgICBlcnJvcignRmFpbGVkICVzIHR5cGU6ICVzJywgbG9jYXRpb24sIGVycm9yJDEubWVzc2FnZSk7XG5cbiAgICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChudWxsKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG52YXIgdmFsdWVTdGFjayA9IFtdO1xudmFyIGZpYmVyU3RhY2s7XG5cbntcbiAgZmliZXJTdGFjayA9IFtdO1xufVxuXG52YXIgaW5kZXggPSAtMTtcblxuZnVuY3Rpb24gY3JlYXRlQ3Vyc29yKGRlZmF1bHRWYWx1ZSkge1xuICByZXR1cm4ge1xuICAgIGN1cnJlbnQ6IGRlZmF1bHRWYWx1ZVxuICB9O1xufVxuXG5mdW5jdGlvbiBwb3AoY3Vyc29yLCBmaWJlcikge1xuICBpZiAoaW5kZXggPCAwKSB7XG4gICAge1xuICAgICAgZXJyb3IoJ1VuZXhwZWN0ZWQgcG9wLicpO1xuICAgIH1cblxuICAgIHJldHVybjtcbiAgfVxuXG4gIHtcbiAgICBpZiAoZmliZXIgIT09IGZpYmVyU3RhY2tbaW5kZXhdKSB7XG4gICAgICBlcnJvcignVW5leHBlY3RlZCBGaWJlciBwb3BwZWQuJyk7XG4gICAgfVxuICB9XG5cbiAgY3Vyc29yLmN1cnJlbnQgPSB2YWx1ZVN0YWNrW2luZGV4XTtcbiAgdmFsdWVTdGFja1tpbmRleF0gPSBudWxsO1xuXG4gIHtcbiAgICBmaWJlclN0YWNrW2luZGV4XSA9IG51bGw7XG4gIH1cblxuICBpbmRleC0tO1xufVxuXG5mdW5jdGlvbiBwdXNoKGN1cnNvciwgdmFsdWUsIGZpYmVyKSB7XG4gIGluZGV4Kys7XG4gIHZhbHVlU3RhY2tbaW5kZXhdID0gY3Vyc29yLmN1cnJlbnQ7XG5cbiAge1xuICAgIGZpYmVyU3RhY2tbaW5kZXhdID0gZmliZXI7XG4gIH1cblxuICBjdXJzb3IuY3VycmVudCA9IHZhbHVlO1xufVxuXG52YXIgd2FybmVkQWJvdXRNaXNzaW5nR2V0Q2hpbGRDb250ZXh0O1xuXG57XG4gIHdhcm5lZEFib3V0TWlzc2luZ0dldENoaWxkQ29udGV4dCA9IHt9O1xufVxuXG52YXIgZW1wdHlDb250ZXh0T2JqZWN0ID0ge307XG5cbntcbiAgT2JqZWN0LmZyZWV6ZShlbXB0eUNvbnRleHRPYmplY3QpO1xufSAvLyBBIGN1cnNvciB0byB0aGUgY3VycmVudCBtZXJnZWQgY29udGV4dCBvYmplY3Qgb24gdGhlIHN0YWNrLlxuXG5cbnZhciBjb250ZXh0U3RhY2tDdXJzb3IgPSBjcmVhdGVDdXJzb3IoZW1wdHlDb250ZXh0T2JqZWN0KTsgLy8gQSBjdXJzb3IgdG8gYSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgY29udGV4dCBoYXMgY2hhbmdlZC5cblxudmFyIGRpZFBlcmZvcm1Xb3JrU3RhY2tDdXJzb3IgPSBjcmVhdGVDdXJzb3IoZmFsc2UpOyAvLyBLZWVwIHRyYWNrIG9mIHRoZSBwcmV2aW91cyBjb250ZXh0IG9iamVjdCB0aGF0IHdhcyBvbiB0aGUgc3RhY2suXG4vLyBXZSB1c2UgdGhpcyB0byBnZXQgYWNjZXNzIHRvIHRoZSBwYXJlbnQgY29udGV4dCBhZnRlciB3ZSBoYXZlIGFscmVhZHlcbi8vIHB1c2hlZCB0aGUgbmV4dCBjb250ZXh0IHByb3ZpZGVyLCBhbmQgbm93IG5lZWQgdG8gbWVyZ2UgdGhlaXIgY29udGV4dHMuXG5cbnZhciBwcmV2aW91c0NvbnRleHQgPSBlbXB0eUNvbnRleHRPYmplY3Q7XG5cbmZ1bmN0aW9uIGdldFVubWFza2VkQ29udGV4dCh3b3JrSW5Qcm9ncmVzcywgQ29tcG9uZW50LCBkaWRQdXNoT3duQ29udGV4dElmUHJvdmlkZXIpIHtcbiAge1xuICAgIGlmIChkaWRQdXNoT3duQ29udGV4dElmUHJvdmlkZXIgJiYgaXNDb250ZXh0UHJvdmlkZXIoQ29tcG9uZW50KSkge1xuICAgICAgLy8gSWYgdGhlIGZpYmVyIGlzIGEgY29udGV4dCBwcm92aWRlciBpdHNlbGYsIHdoZW4gd2UgcmVhZCBpdHMgY29udGV4dFxuICAgICAgLy8gd2UgbWF5IGhhdmUgYWxyZWFkeSBwdXNoZWQgaXRzIG93biBjaGlsZCBjb250ZXh0IG9uIHRoZSBzdGFjay4gQSBjb250ZXh0XG4gICAgICAvLyBwcm92aWRlciBzaG91bGQgbm90IFwic2VlXCIgaXRzIG93biBjaGlsZCBjb250ZXh0LiBUaGVyZWZvcmUgd2UgcmVhZCB0aGVcbiAgICAgIC8vIHByZXZpb3VzIChwYXJlbnQpIGNvbnRleHQgaW5zdGVhZCBmb3IgYSBjb250ZXh0IHByb3ZpZGVyLlxuICAgICAgcmV0dXJuIHByZXZpb3VzQ29udGV4dDtcbiAgICB9XG5cbiAgICByZXR1cm4gY29udGV4dFN0YWNrQ3Vyc29yLmN1cnJlbnQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gY2FjaGVDb250ZXh0KHdvcmtJblByb2dyZXNzLCB1bm1hc2tlZENvbnRleHQsIG1hc2tlZENvbnRleHQpIHtcbiAge1xuICAgIHZhciBpbnN0YW5jZSA9IHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZTtcbiAgICBpbnN0YW5jZS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZFVubWFza2VkQ2hpbGRDb250ZXh0ID0gdW5tYXNrZWRDb250ZXh0O1xuICAgIGluc3RhbmNlLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWFza2VkQ2hpbGRDb250ZXh0ID0gbWFza2VkQ29udGV4dDtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRNYXNrZWRDb250ZXh0KHdvcmtJblByb2dyZXNzLCB1bm1hc2tlZENvbnRleHQpIHtcbiAge1xuICAgIHZhciB0eXBlID0gd29ya0luUHJvZ3Jlc3MudHlwZTtcbiAgICB2YXIgY29udGV4dFR5cGVzID0gdHlwZS5jb250ZXh0VHlwZXM7XG5cbiAgICBpZiAoIWNvbnRleHRUeXBlcykge1xuICAgICAgcmV0dXJuIGVtcHR5Q29udGV4dE9iamVjdDtcbiAgICB9IC8vIEF2b2lkIHJlY3JlYXRpbmcgbWFza2VkIGNvbnRleHQgdW5sZXNzIHVubWFza2VkIGNvbnRleHQgaGFzIGNoYW5nZWQuXG4gICAgLy8gRmFpbGluZyB0byBkbyB0aGlzIHdpbGwgcmVzdWx0IGluIHVubmVjZXNzYXJ5IGNhbGxzIHRvIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMuXG4gICAgLy8gVGhpcyBtYXkgdHJpZ2dlciBpbmZpbml0ZSBsb29wcyBpZiBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzIGNhbGxzIHNldFN0YXRlLlxuXG5cbiAgICB2YXIgaW5zdGFuY2UgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG5cbiAgICBpZiAoaW5zdGFuY2UgJiYgaW5zdGFuY2UuX19yZWFjdEludGVybmFsTWVtb2l6ZWRVbm1hc2tlZENoaWxkQ29udGV4dCA9PT0gdW5tYXNrZWRDb250ZXh0KSB7XG4gICAgICByZXR1cm4gaW5zdGFuY2UuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNYXNrZWRDaGlsZENvbnRleHQ7XG4gICAgfVxuXG4gICAgdmFyIGNvbnRleHQgPSB7fTtcblxuICAgIGZvciAodmFyIGtleSBpbiBjb250ZXh0VHlwZXMpIHtcbiAgICAgIGNvbnRleHRba2V5XSA9IHVubWFza2VkQ29udGV4dFtrZXldO1xuICAgIH1cblxuICAgIHtcbiAgICAgIHZhciBuYW1lID0gZ2V0Q29tcG9uZW50TmFtZSh0eXBlKSB8fCAnVW5rbm93bic7XG4gICAgICBjaGVja1Byb3BUeXBlcyhjb250ZXh0VHlwZXMsIGNvbnRleHQsICdjb250ZXh0JywgbmFtZSk7XG4gICAgfSAvLyBDYWNoZSB1bm1hc2tlZCBjb250ZXh0IHNvIHdlIGNhbiBhdm9pZCByZWNyZWF0aW5nIG1hc2tlZCBjb250ZXh0IHVubGVzcyBuZWNlc3NhcnkuXG4gICAgLy8gQ29udGV4dCBpcyBjcmVhdGVkIGJlZm9yZSB0aGUgY2xhc3MgY29tcG9uZW50IGlzIGluc3RhbnRpYXRlZCBzbyBjaGVjayBmb3IgaW5zdGFuY2UuXG5cblxuICAgIGlmIChpbnN0YW5jZSkge1xuICAgICAgY2FjaGVDb250ZXh0KHdvcmtJblByb2dyZXNzLCB1bm1hc2tlZENvbnRleHQsIGNvbnRleHQpO1xuICAgIH1cblxuICAgIHJldHVybiBjb250ZXh0O1xuICB9XG59XG5cbmZ1bmN0aW9uIGhhc0NvbnRleHRDaGFuZ2VkKCkge1xuICB7XG4gICAgcmV0dXJuIGRpZFBlcmZvcm1Xb3JrU3RhY2tDdXJzb3IuY3VycmVudDtcbiAgfVxufVxuXG5mdW5jdGlvbiBpc0NvbnRleHRQcm92aWRlcih0eXBlKSB7XG4gIHtcbiAgICB2YXIgY2hpbGRDb250ZXh0VHlwZXMgPSB0eXBlLmNoaWxkQ29udGV4dFR5cGVzO1xuICAgIHJldHVybiBjaGlsZENvbnRleHRUeXBlcyAhPT0gbnVsbCAmJiBjaGlsZENvbnRleHRUeXBlcyAhPT0gdW5kZWZpbmVkO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBvcENvbnRleHQoZmliZXIpIHtcbiAge1xuICAgIHBvcChkaWRQZXJmb3JtV29ya1N0YWNrQ3Vyc29yLCBmaWJlcik7XG4gICAgcG9wKGNvbnRleHRTdGFja0N1cnNvciwgZmliZXIpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBvcFRvcExldmVsQ29udGV4dE9iamVjdChmaWJlcikge1xuICB7XG4gICAgcG9wKGRpZFBlcmZvcm1Xb3JrU3RhY2tDdXJzb3IsIGZpYmVyKTtcbiAgICBwb3AoY29udGV4dFN0YWNrQ3Vyc29yLCBmaWJlcik7XG4gIH1cbn1cblxuZnVuY3Rpb24gcHVzaFRvcExldmVsQ29udGV4dE9iamVjdChmaWJlciwgY29udGV4dCwgZGlkQ2hhbmdlKSB7XG4gIHtcbiAgICBpZiAoIShjb250ZXh0U3RhY2tDdXJzb3IuY3VycmVudCA9PT0gZW1wdHlDb250ZXh0T2JqZWN0KSkge1xuICAgICAge1xuICAgICAgICB0aHJvdyBFcnJvciggXCJVbmV4cGVjdGVkIGNvbnRleHQgZm91bmQgb24gc3RhY2suIFRoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCIgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwdXNoKGNvbnRleHRTdGFja0N1cnNvciwgY29udGV4dCwgZmliZXIpO1xuICAgIHB1c2goZGlkUGVyZm9ybVdvcmtTdGFja0N1cnNvciwgZGlkQ2hhbmdlLCBmaWJlcik7XG4gIH1cbn1cblxuZnVuY3Rpb24gcHJvY2Vzc0NoaWxkQ29udGV4dChmaWJlciwgdHlwZSwgcGFyZW50Q29udGV4dCkge1xuICB7XG4gICAgdmFyIGluc3RhbmNlID0gZmliZXIuc3RhdGVOb2RlO1xuICAgIHZhciBjaGlsZENvbnRleHRUeXBlcyA9IHR5cGUuY2hpbGRDb250ZXh0VHlwZXM7IC8vIFRPRE8gKGJ2YXVnaG4pIFJlcGxhY2UgdGhpcyBiZWhhdmlvciB3aXRoIGFuIGludmFyaWFudCgpIGluIHRoZSBmdXR1cmUuXG4gICAgLy8gSXQgaGFzIG9ubHkgYmVlbiBhZGRlZCBpbiBGaWJlciB0byBtYXRjaCB0aGUgKHVuaW50ZW50aW9uYWwpIGJlaGF2aW9yIGluIFN0YWNrLlxuXG4gICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5nZXRDaGlsZENvbnRleHQgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHtcbiAgICAgICAgdmFyIGNvbXBvbmVudE5hbWUgPSBnZXRDb21wb25lbnROYW1lKHR5cGUpIHx8ICdVbmtub3duJztcblxuICAgICAgICBpZiAoIXdhcm5lZEFib3V0TWlzc2luZ0dldENoaWxkQ29udGV4dFtjb21wb25lbnROYW1lXSkge1xuICAgICAgICAgIHdhcm5lZEFib3V0TWlzc2luZ0dldENoaWxkQ29udGV4dFtjb21wb25lbnROYW1lXSA9IHRydWU7XG5cbiAgICAgICAgICBlcnJvcignJXMuY2hpbGRDb250ZXh0VHlwZXMgaXMgc3BlY2lmaWVkIGJ1dCB0aGVyZSBpcyBubyBnZXRDaGlsZENvbnRleHQoKSBtZXRob2QgJyArICdvbiB0aGUgaW5zdGFuY2UuIFlvdSBjYW4gZWl0aGVyIGRlZmluZSBnZXRDaGlsZENvbnRleHQoKSBvbiAlcyBvciByZW1vdmUgJyArICdjaGlsZENvbnRleHRUeXBlcyBmcm9tIGl0LicsIGNvbXBvbmVudE5hbWUsIGNvbXBvbmVudE5hbWUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBwYXJlbnRDb250ZXh0O1xuICAgIH1cblxuICAgIHZhciBjaGlsZENvbnRleHQgPSBpbnN0YW5jZS5nZXRDaGlsZENvbnRleHQoKTtcblxuICAgIGZvciAodmFyIGNvbnRleHRLZXkgaW4gY2hpbGRDb250ZXh0KSB7XG4gICAgICBpZiAoIShjb250ZXh0S2V5IGluIGNoaWxkQ29udGV4dFR5cGVzKSkge1xuICAgICAgICB7XG4gICAgICAgICAgdGhyb3cgRXJyb3IoIChnZXRDb21wb25lbnROYW1lKHR5cGUpIHx8ICdVbmtub3duJykgKyBcIi5nZXRDaGlsZENvbnRleHQoKToga2V5IFxcXCJcIiArIGNvbnRleHRLZXkgKyBcIlxcXCIgaXMgbm90IGRlZmluZWQgaW4gY2hpbGRDb250ZXh0VHlwZXMuXCIgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHtcbiAgICAgIHZhciBuYW1lID0gZ2V0Q29tcG9uZW50TmFtZSh0eXBlKSB8fCAnVW5rbm93bic7XG4gICAgICBjaGVja1Byb3BUeXBlcyhjaGlsZENvbnRleHRUeXBlcywgY2hpbGRDb250ZXh0LCAnY2hpbGQgY29udGV4dCcsIG5hbWUpO1xuICAgIH1cblxuICAgIHJldHVybiBfYXNzaWduKHt9LCBwYXJlbnRDb250ZXh0LCBjaGlsZENvbnRleHQpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHB1c2hDb250ZXh0UHJvdmlkZXIod29ya0luUHJvZ3Jlc3MpIHtcbiAge1xuICAgIHZhciBpbnN0YW5jZSA9IHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZTsgLy8gV2UgcHVzaCB0aGUgY29udGV4dCBhcyBlYXJseSBhcyBwb3NzaWJsZSB0byBlbnN1cmUgc3RhY2sgaW50ZWdyaXR5LlxuICAgIC8vIElmIHRoZSBpbnN0YW5jZSBkb2VzIG5vdCBleGlzdCB5ZXQsIHdlIHdpbGwgcHVzaCBudWxsIGF0IGZpcnN0LFxuICAgIC8vIGFuZCByZXBsYWNlIGl0IG9uIHRoZSBzdGFjayBsYXRlciB3aGVuIGludmFsaWRhdGluZyB0aGUgY29udGV4dC5cblxuICAgIHZhciBtZW1vaXplZE1lcmdlZENoaWxkQ29udGV4dCA9IGluc3RhbmNlICYmIGluc3RhbmNlLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0IHx8IGVtcHR5Q29udGV4dE9iamVjdDsgLy8gUmVtZW1iZXIgdGhlIHBhcmVudCBjb250ZXh0IHNvIHdlIGNhbiBtZXJnZSB3aXRoIGl0IGxhdGVyLlxuICAgIC8vIEluaGVyaXQgdGhlIHBhcmVudCdzIGRpZC1wZXJmb3JtLXdvcmsgdmFsdWUgdG8gYXZvaWQgaW5hZHZlcnRlbnRseSBibG9ja2luZyB1cGRhdGVzLlxuXG4gICAgcHJldmlvdXNDb250ZXh0ID0gY29udGV4dFN0YWNrQ3Vyc29yLmN1cnJlbnQ7XG4gICAgcHVzaChjb250ZXh0U3RhY2tDdXJzb3IsIG1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0LCB3b3JrSW5Qcm9ncmVzcyk7XG4gICAgcHVzaChkaWRQZXJmb3JtV29ya1N0YWNrQ3Vyc29yLCBkaWRQZXJmb3JtV29ya1N0YWNrQ3Vyc29yLmN1cnJlbnQsIHdvcmtJblByb2dyZXNzKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpbnZhbGlkYXRlQ29udGV4dFByb3ZpZGVyKHdvcmtJblByb2dyZXNzLCB0eXBlLCBkaWRDaGFuZ2UpIHtcbiAge1xuICAgIHZhciBpbnN0YW5jZSA9IHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZTtcblxuICAgIGlmICghaW5zdGFuY2UpIHtcbiAgICAgIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoIFwiRXhwZWN0ZWQgdG8gaGF2ZSBhbiBpbnN0YW5jZSBieSB0aGlzIHBvaW50LiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLlwiICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGRpZENoYW5nZSkge1xuICAgICAgLy8gTWVyZ2UgcGFyZW50IGFuZCBvd24gY29udGV4dC5cbiAgICAgIC8vIFNraXAgdGhpcyBpZiB3ZSdyZSBub3QgdXBkYXRpbmcgZHVlIHRvIHNDVS5cbiAgICAgIC8vIFRoaXMgYXZvaWRzIHVubmVjZXNzYXJpbHkgcmVjb21wdXRpbmcgbWVtb2l6ZWQgdmFsdWVzLlxuICAgICAgdmFyIG1lcmdlZENvbnRleHQgPSBwcm9jZXNzQ2hpbGRDb250ZXh0KHdvcmtJblByb2dyZXNzLCB0eXBlLCBwcmV2aW91c0NvbnRleHQpO1xuICAgICAgaW5zdGFuY2UuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNZXJnZWRDaGlsZENvbnRleHQgPSBtZXJnZWRDb250ZXh0OyAvLyBSZXBsYWNlIHRoZSBvbGQgKG9yIGVtcHR5KSBjb250ZXh0IHdpdGggdGhlIG5ldyBvbmUuXG4gICAgICAvLyBJdCBpcyBpbXBvcnRhbnQgdG8gdW53aW5kIHRoZSBjb250ZXh0IGluIHRoZSByZXZlcnNlIG9yZGVyLlxuXG4gICAgICBwb3AoZGlkUGVyZm9ybVdvcmtTdGFja0N1cnNvciwgd29ya0luUHJvZ3Jlc3MpO1xuICAgICAgcG9wKGNvbnRleHRTdGFja0N1cnNvciwgd29ya0luUHJvZ3Jlc3MpOyAvLyBOb3cgcHVzaCB0aGUgbmV3IGNvbnRleHQgYW5kIG1hcmsgdGhhdCBpdCBoYXMgY2hhbmdlZC5cblxuICAgICAgcHVzaChjb250ZXh0U3RhY2tDdXJzb3IsIG1lcmdlZENvbnRleHQsIHdvcmtJblByb2dyZXNzKTtcbiAgICAgIHB1c2goZGlkUGVyZm9ybVdvcmtTdGFja0N1cnNvciwgZGlkQ2hhbmdlLCB3b3JrSW5Qcm9ncmVzcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBvcChkaWRQZXJmb3JtV29ya1N0YWNrQ3Vyc29yLCB3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICBwdXNoKGRpZFBlcmZvcm1Xb3JrU3RhY2tDdXJzb3IsIGRpZENoYW5nZSwgd29ya0luUHJvZ3Jlc3MpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBmaW5kQ3VycmVudFVubWFza2VkQ29udGV4dChmaWJlcikge1xuICB7XG4gICAgLy8gQ3VycmVudGx5IHRoaXMgaXMgb25seSB1c2VkIHdpdGggcmVuZGVyU3VidHJlZUludG9Db250YWluZXI7IG5vdCBzdXJlIGlmIGl0XG4gICAgLy8gbWFrZXMgc2Vuc2UgZWxzZXdoZXJlXG4gICAgaWYgKCEoaXNGaWJlck1vdW50ZWQoZmliZXIpICYmIGZpYmVyLnRhZyA9PT0gQ2xhc3NDb21wb25lbnQpKSB7XG4gICAgICB7XG4gICAgICAgIHRocm93IEVycm9yKCBcIkV4cGVjdGVkIHN1YnRyZWUgcGFyZW50IHRvIGJlIGEgbW91bnRlZCBjbGFzcyBjb21wb25lbnQuIFRoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCIgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgbm9kZSA9IGZpYmVyO1xuXG4gICAgZG8ge1xuICAgICAgc3dpdGNoIChub2RlLnRhZykge1xuICAgICAgICBjYXNlIEhvc3RSb290OlxuICAgICAgICAgIHJldHVybiBub2RlLnN0YXRlTm9kZS5jb250ZXh0O1xuXG4gICAgICAgIGNhc2UgQ2xhc3NDb21wb25lbnQ6XG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFyIENvbXBvbmVudCA9IG5vZGUudHlwZTtcblxuICAgICAgICAgICAgaWYgKGlzQ29udGV4dFByb3ZpZGVyKENvbXBvbmVudCkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG5vZGUuc3RhdGVOb2RlLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG5vZGUgPSBub2RlLnJldHVybjtcbiAgICB9IHdoaWxlIChub2RlICE9PSBudWxsKTtcblxuICAgIHtcbiAgICAgIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoIFwiRm91bmQgdW5leHBlY3RlZCBkZXRhY2hlZCBzdWJ0cmVlIHBhcmVudC4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIiApO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG52YXIgTGVnYWN5Um9vdCA9IDA7XG52YXIgQmxvY2tpbmdSb290ID0gMTtcbnZhciBDb25jdXJyZW50Um9vdCA9IDI7XG5cbnZhciByZW5kZXJlcklEID0gbnVsbDtcbnZhciBpbmplY3RlZEhvb2sgPSBudWxsO1xudmFyIGhhc0xvZ2dlZEVycm9yID0gZmFsc2U7XG52YXIgaXNEZXZUb29sc1ByZXNlbnQgPSB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fICE9PSAndW5kZWZpbmVkJztcbmZ1bmN0aW9uIGluamVjdEludGVybmFscyhpbnRlcm5hbHMpIHtcbiAgaWYgKHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgLy8gTm8gRGV2VG9vbHNcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB2YXIgaG9vayA9IF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXztcblxuICBpZiAoaG9vay5pc0Rpc2FibGVkKSB7XG4gICAgLy8gVGhpcyBpc24ndCBhIHJlYWwgcHJvcGVydHkgb24gdGhlIGhvb2ssIGJ1dCBpdCBjYW4gYmUgc2V0IHRvIG9wdCBvdXRcbiAgICAvLyBvZiBEZXZUb29scyBpbnRlZ3JhdGlvbiBhbmQgYXNzb2NpYXRlZCB3YXJuaW5ncyBhbmQgbG9ncy5cbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzM4NzdcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmICghaG9vay5zdXBwb3J0c0ZpYmVyKSB7XG4gICAge1xuICAgICAgZXJyb3IoJ1RoZSBpbnN0YWxsZWQgdmVyc2lvbiBvZiBSZWFjdCBEZXZUb29scyBpcyB0b28gb2xkIGFuZCB3aWxsIG5vdCB3b3JrICcgKyAnd2l0aCB0aGUgY3VycmVudCB2ZXJzaW9uIG9mIFJlYWN0LiBQbGVhc2UgdXBkYXRlIFJlYWN0IERldlRvb2xzLiAnICsgJ2h0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9yZWFjdC1kZXZ0b29scycpO1xuICAgIH0gLy8gRGV2VG9vbHMgZXhpc3RzLCBldmVuIHRob3VnaCBpdCBkb2Vzbid0IHN1cHBvcnQgRmliZXIuXG5cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgdHJ5IHtcbiAgICByZW5kZXJlcklEID0gaG9vay5pbmplY3QoaW50ZXJuYWxzKTsgLy8gV2UgaGF2ZSBzdWNjZXNzZnVsbHkgaW5qZWN0ZWQsIHNvIG5vdyBpdCBpcyBzYWZlIHRvIHNldCB1cCBob29rcy5cblxuICAgIGluamVjdGVkSG9vayA9IGhvb2s7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIC8vIENhdGNoIGFsbCBlcnJvcnMgYmVjYXVzZSBpdCBpcyB1bnNhZmUgdG8gdGhyb3cgZHVyaW5nIGluaXRpYWxpemF0aW9uLlxuICAgIHtcbiAgICAgIGVycm9yKCdSZWFjdCBpbnN0cnVtZW50YXRpb24gZW5jb3VudGVyZWQgYW4gZXJyb3I6ICVzLicsIGVycik7XG4gICAgfVxuICB9IC8vIERldlRvb2xzIGV4aXN0c1xuXG5cbiAgcmV0dXJuIHRydWU7XG59XG5mdW5jdGlvbiBvblNjaGVkdWxlUm9vdChyb290LCBjaGlsZHJlbikge1xuICB7XG4gICAgaWYgKGluamVjdGVkSG9vayAmJiB0eXBlb2YgaW5qZWN0ZWRIb29rLm9uU2NoZWR1bGVGaWJlclJvb3QgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGluamVjdGVkSG9vay5vblNjaGVkdWxlRmliZXJSb290KHJlbmRlcmVySUQsIHJvb3QsIGNoaWxkcmVuKTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBpZiAoICFoYXNMb2dnZWRFcnJvcikge1xuICAgICAgICAgIGhhc0xvZ2dlZEVycm9yID0gdHJ1ZTtcblxuICAgICAgICAgIGVycm9yKCdSZWFjdCBpbnN0cnVtZW50YXRpb24gZW5jb3VudGVyZWQgYW4gZXJyb3I6ICVzJywgZXJyKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gb25Db21taXRSb290KHJvb3QsIHByaW9yaXR5TGV2ZWwpIHtcbiAgaWYgKGluamVjdGVkSG9vayAmJiB0eXBlb2YgaW5qZWN0ZWRIb29rLm9uQ29tbWl0RmliZXJSb290ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgdHJ5IHtcbiAgICAgIHZhciBkaWRFcnJvciA9IChyb290LmN1cnJlbnQuZmxhZ3MgJiBEaWRDYXB0dXJlKSA9PT0gRGlkQ2FwdHVyZTtcblxuICAgICAgaWYgKGVuYWJsZVByb2ZpbGVyVGltZXIpIHtcbiAgICAgICAgaW5qZWN0ZWRIb29rLm9uQ29tbWl0RmliZXJSb290KHJlbmRlcmVySUQsIHJvb3QsIHByaW9yaXR5TGV2ZWwsIGRpZEVycm9yKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGluamVjdGVkSG9vay5vbkNvbW1pdEZpYmVyUm9vdChyZW5kZXJlcklELCByb290LCB1bmRlZmluZWQsIGRpZEVycm9yKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHtcbiAgICAgICAgaWYgKCFoYXNMb2dnZWRFcnJvcikge1xuICAgICAgICAgIGhhc0xvZ2dlZEVycm9yID0gdHJ1ZTtcblxuICAgICAgICAgIGVycm9yKCdSZWFjdCBpbnN0cnVtZW50YXRpb24gZW5jb3VudGVyZWQgYW4gZXJyb3I6ICVzJywgZXJyKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gb25Db21taXRVbm1vdW50KGZpYmVyKSB7XG4gIGlmIChpbmplY3RlZEhvb2sgJiYgdHlwZW9mIGluamVjdGVkSG9vay5vbkNvbW1pdEZpYmVyVW5tb3VudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHRyeSB7XG4gICAgICBpbmplY3RlZEhvb2sub25Db21taXRGaWJlclVubW91bnQocmVuZGVyZXJJRCwgZmliZXIpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAge1xuICAgICAgICBpZiAoIWhhc0xvZ2dlZEVycm9yKSB7XG4gICAgICAgICAgaGFzTG9nZ2VkRXJyb3IgPSB0cnVlO1xuXG4gICAgICAgICAgZXJyb3IoJ1JlYWN0IGluc3RydW1lbnRhdGlvbiBlbmNvdW50ZXJlZCBhbiBlcnJvcjogJXMnLCBlcnIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbnZhciBTY2hlZHVsZXJfcnVuV2l0aFByaW9yaXR5ID0gU2NoZWR1bGVyLnVuc3RhYmxlX3J1bldpdGhQcmlvcml0eSxcbiAgICBTY2hlZHVsZXJfc2NoZWR1bGVDYWxsYmFjayA9IFNjaGVkdWxlci51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrLFxuICAgIFNjaGVkdWxlcl9jYW5jZWxDYWxsYmFjayA9IFNjaGVkdWxlci51bnN0YWJsZV9jYW5jZWxDYWxsYmFjayxcbiAgICBTY2hlZHVsZXJfc2hvdWxkWWllbGQgPSBTY2hlZHVsZXIudW5zdGFibGVfc2hvdWxkWWllbGQsXG4gICAgU2NoZWR1bGVyX3JlcXVlc3RQYWludCA9IFNjaGVkdWxlci51bnN0YWJsZV9yZXF1ZXN0UGFpbnQsXG4gICAgU2NoZWR1bGVyX25vdyQxID0gU2NoZWR1bGVyLnVuc3RhYmxlX25vdyxcbiAgICBTY2hlZHVsZXJfZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWwgPSBTY2hlZHVsZXIudW5zdGFibGVfZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWwsXG4gICAgU2NoZWR1bGVyX0ltbWVkaWF0ZVByaW9yaXR5ID0gU2NoZWR1bGVyLnVuc3RhYmxlX0ltbWVkaWF0ZVByaW9yaXR5LFxuICAgIFNjaGVkdWxlcl9Vc2VyQmxvY2tpbmdQcmlvcml0eSA9IFNjaGVkdWxlci51bnN0YWJsZV9Vc2VyQmxvY2tpbmdQcmlvcml0eSxcbiAgICBTY2hlZHVsZXJfTm9ybWFsUHJpb3JpdHkgPSBTY2hlZHVsZXIudW5zdGFibGVfTm9ybWFsUHJpb3JpdHksXG4gICAgU2NoZWR1bGVyX0xvd1ByaW9yaXR5ID0gU2NoZWR1bGVyLnVuc3RhYmxlX0xvd1ByaW9yaXR5LFxuICAgIFNjaGVkdWxlcl9JZGxlUHJpb3JpdHkgPSBTY2hlZHVsZXIudW5zdGFibGVfSWRsZVByaW9yaXR5O1xuXG57XG4gIC8vIFByb3ZpZGUgZXhwbGljaXQgZXJyb3IgbWVzc2FnZSB3aGVuIHByb2R1Y3Rpb24rcHJvZmlsaW5nIGJ1bmRsZSBvZiBlLmcuXG4gIC8vIHJlYWN0LWRvbSBpcyB1c2VkIHdpdGggcHJvZHVjdGlvbiAobm9uLXByb2ZpbGluZykgYnVuZGxlIG9mXG4gIC8vIHNjaGVkdWxlci90cmFjaW5nXG4gIGlmICghKHRyYWNpbmcuX19pbnRlcmFjdGlvbnNSZWYgIT0gbnVsbCAmJiB0cmFjaW5nLl9faW50ZXJhY3Rpb25zUmVmLmN1cnJlbnQgIT0gbnVsbCkpIHtcbiAgICB7XG4gICAgICB0aHJvdyBFcnJvciggXCJJdCBpcyBub3Qgc3VwcG9ydGVkIHRvIHJ1biB0aGUgcHJvZmlsaW5nIHZlcnNpb24gb2YgYSByZW5kZXJlciAoZm9yIGV4YW1wbGUsIGByZWFjdC1kb20vcHJvZmlsaW5nYCkgd2l0aG91dCBhbHNvIHJlcGxhY2luZyB0aGUgYHNjaGVkdWxlci90cmFjaW5nYCBtb2R1bGUgd2l0aCBgc2NoZWR1bGVyL3RyYWNpbmctcHJvZmlsaW5nYC4gWW91ciBidW5kbGVyIG1pZ2h0IGhhdmUgYSBzZXR0aW5nIGZvciBhbGlhc2luZyBib3RoIG1vZHVsZXMuIExlYXJuIG1vcmUgYXQgaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3Byb2ZpbGluZ1wiICk7XG4gICAgfVxuICB9XG59XG5cbnZhciBmYWtlQ2FsbGJhY2tOb2RlID0ge307IC8vIEV4Y2VwdCBmb3IgTm9Qcmlvcml0eSwgdGhlc2UgY29ycmVzcG9uZCB0byBTY2hlZHVsZXIgcHJpb3JpdGllcy4gV2UgdXNlXG4vLyBhc2NlbmRpbmcgbnVtYmVycyBzbyB3ZSBjYW4gY29tcGFyZSB0aGVtIGxpa2UgbnVtYmVycy4gVGhleSBzdGFydCBhdCA5MCB0b1xuLy8gYXZvaWQgY2xhc2hpbmcgd2l0aCBTY2hlZHVsZXIncyBwcmlvcml0aWVzLlxuXG52YXIgSW1tZWRpYXRlUHJpb3JpdHkkMSA9IDk5O1xudmFyIFVzZXJCbG9ja2luZ1ByaW9yaXR5JDIgPSA5ODtcbnZhciBOb3JtYWxQcmlvcml0eSQxID0gOTc7XG52YXIgTG93UHJpb3JpdHkkMSA9IDk2O1xudmFyIElkbGVQcmlvcml0eSQxID0gOTU7IC8vIE5vUHJpb3JpdHkgaXMgdGhlIGFic2VuY2Ugb2YgcHJpb3JpdHkuIEFsc28gUmVhY3Qtb25seS5cblxudmFyIE5vUHJpb3JpdHkkMSA9IDkwO1xudmFyIHNob3VsZFlpZWxkID0gU2NoZWR1bGVyX3Nob3VsZFlpZWxkO1xudmFyIHJlcXVlc3RQYWludCA9IC8vIEZhbGwgYmFjayBncmFjZWZ1bGx5IGlmIHdlJ3JlIHJ1bm5pbmcgYW4gb2xkZXIgdmVyc2lvbiBvZiBTY2hlZHVsZXIuXG5TY2hlZHVsZXJfcmVxdWVzdFBhaW50ICE9PSB1bmRlZmluZWQgPyBTY2hlZHVsZXJfcmVxdWVzdFBhaW50IDogZnVuY3Rpb24gKCkge307XG52YXIgc3luY1F1ZXVlID0gbnVsbDtcbnZhciBpbW1lZGlhdGVRdWV1ZUNhbGxiYWNrTm9kZSA9IG51bGw7XG52YXIgaXNGbHVzaGluZ1N5bmNRdWV1ZSA9IGZhbHNlO1xudmFyIGluaXRpYWxUaW1lTXMkMSA9IFNjaGVkdWxlcl9ub3ckMSgpOyAvLyBJZiB0aGUgaW5pdGlhbCB0aW1lc3RhbXAgaXMgcmVhc29uYWJseSBzbWFsbCwgdXNlIFNjaGVkdWxlcidzIGBub3dgIGRpcmVjdGx5LlxuLy8gVGhpcyB3aWxsIGJlIHRoZSBjYXNlIGZvciBtb2Rlcm4gYnJvd3NlcnMgdGhhdCBzdXBwb3J0IGBwZXJmb3JtYW5jZS5ub3dgLiBJblxuLy8gb2xkZXIgYnJvd3NlcnMsIFNjaGVkdWxlciBmYWxscyBiYWNrIHRvIGBEYXRlLm5vd2AsIHdoaWNoIHJldHVybnMgYSBVbml4XG4vLyB0aW1lc3RhbXAuIEluIHRoYXQgY2FzZSwgc3VidHJhY3QgdGhlIG1vZHVsZSBpbml0aWFsaXphdGlvbiB0aW1lIHRvIHNpbXVsYXRlXG4vLyB0aGUgYmVoYXZpb3Igb2YgcGVyZm9ybWFuY2Uubm93IGFuZCBrZWVwIG91ciB0aW1lcyBzbWFsbCBlbm91Z2ggdG8gZml0XG4vLyB3aXRoaW4gMzIgYml0cy5cbi8vIFRPRE86IENvbnNpZGVyIGxpZnRpbmcgdGhpcyBpbnRvIFNjaGVkdWxlci5cblxudmFyIG5vdyA9IGluaXRpYWxUaW1lTXMkMSA8IDEwMDAwID8gU2NoZWR1bGVyX25vdyQxIDogZnVuY3Rpb24gKCkge1xuICByZXR1cm4gU2NoZWR1bGVyX25vdyQxKCkgLSBpbml0aWFsVGltZU1zJDE7XG59O1xuZnVuY3Rpb24gZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWwoKSB7XG4gIHN3aXRjaCAoU2NoZWR1bGVyX2dldEN1cnJlbnRQcmlvcml0eUxldmVsKCkpIHtcbiAgICBjYXNlIFNjaGVkdWxlcl9JbW1lZGlhdGVQcmlvcml0eTpcbiAgICAgIHJldHVybiBJbW1lZGlhdGVQcmlvcml0eSQxO1xuXG4gICAgY2FzZSBTY2hlZHVsZXJfVXNlckJsb2NraW5nUHJpb3JpdHk6XG4gICAgICByZXR1cm4gVXNlckJsb2NraW5nUHJpb3JpdHkkMjtcblxuICAgIGNhc2UgU2NoZWR1bGVyX05vcm1hbFByaW9yaXR5OlxuICAgICAgcmV0dXJuIE5vcm1hbFByaW9yaXR5JDE7XG5cbiAgICBjYXNlIFNjaGVkdWxlcl9Mb3dQcmlvcml0eTpcbiAgICAgIHJldHVybiBMb3dQcmlvcml0eSQxO1xuXG4gICAgY2FzZSBTY2hlZHVsZXJfSWRsZVByaW9yaXR5OlxuICAgICAgcmV0dXJuIElkbGVQcmlvcml0eSQxO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIHtcbiAgICAgICAge1xuICAgICAgICAgIHRocm93IEVycm9yKCBcIlVua25vd24gcHJpb3JpdHkgbGV2ZWwuXCIgKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gIH1cbn1cblxuZnVuY3Rpb24gcmVhY3RQcmlvcml0eVRvU2NoZWR1bGVyUHJpb3JpdHkocmVhY3RQcmlvcml0eUxldmVsKSB7XG4gIHN3aXRjaCAocmVhY3RQcmlvcml0eUxldmVsKSB7XG4gICAgY2FzZSBJbW1lZGlhdGVQcmlvcml0eSQxOlxuICAgICAgcmV0dXJuIFNjaGVkdWxlcl9JbW1lZGlhdGVQcmlvcml0eTtcblxuICAgIGNhc2UgVXNlckJsb2NraW5nUHJpb3JpdHkkMjpcbiAgICAgIHJldHVybiBTY2hlZHVsZXJfVXNlckJsb2NraW5nUHJpb3JpdHk7XG5cbiAgICBjYXNlIE5vcm1hbFByaW9yaXR5JDE6XG4gICAgICByZXR1cm4gU2NoZWR1bGVyX05vcm1hbFByaW9yaXR5O1xuXG4gICAgY2FzZSBMb3dQcmlvcml0eSQxOlxuICAgICAgcmV0dXJuIFNjaGVkdWxlcl9Mb3dQcmlvcml0eTtcblxuICAgIGNhc2UgSWRsZVByaW9yaXR5JDE6XG4gICAgICByZXR1cm4gU2NoZWR1bGVyX0lkbGVQcmlvcml0eTtcblxuICAgIGRlZmF1bHQ6XG4gICAgICB7XG4gICAgICAgIHtcbiAgICAgICAgICB0aHJvdyBFcnJvciggXCJVbmtub3duIHByaW9yaXR5IGxldmVsLlwiICk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICB9XG59XG5cbmZ1bmN0aW9uIHJ1bldpdGhQcmlvcml0eSQxKHJlYWN0UHJpb3JpdHlMZXZlbCwgZm4pIHtcbiAgdmFyIHByaW9yaXR5TGV2ZWwgPSByZWFjdFByaW9yaXR5VG9TY2hlZHVsZXJQcmlvcml0eShyZWFjdFByaW9yaXR5TGV2ZWwpO1xuICByZXR1cm4gU2NoZWR1bGVyX3J1bldpdGhQcmlvcml0eShwcmlvcml0eUxldmVsLCBmbik7XG59XG5mdW5jdGlvbiBzY2hlZHVsZUNhbGxiYWNrKHJlYWN0UHJpb3JpdHlMZXZlbCwgY2FsbGJhY2ssIG9wdGlvbnMpIHtcbiAgdmFyIHByaW9yaXR5TGV2ZWwgPSByZWFjdFByaW9yaXR5VG9TY2hlZHVsZXJQcmlvcml0eShyZWFjdFByaW9yaXR5TGV2ZWwpO1xuICByZXR1cm4gU2NoZWR1bGVyX3NjaGVkdWxlQ2FsbGJhY2socHJpb3JpdHlMZXZlbCwgY2FsbGJhY2ssIG9wdGlvbnMpO1xufVxuZnVuY3Rpb24gc2NoZWR1bGVTeW5jQ2FsbGJhY2soY2FsbGJhY2spIHtcbiAgLy8gUHVzaCB0aGlzIGNhbGxiYWNrIGludG8gYW4gaW50ZXJuYWwgcXVldWUuIFdlJ2xsIGZsdXNoIHRoZXNlIGVpdGhlciBpblxuICAvLyB0aGUgbmV4dCB0aWNrLCBvciBlYXJsaWVyIGlmIHNvbWV0aGluZyBjYWxscyBgZmx1c2hTeW5jQ2FsbGJhY2tRdWV1ZWAuXG4gIGlmIChzeW5jUXVldWUgPT09IG51bGwpIHtcbiAgICBzeW5jUXVldWUgPSBbY2FsbGJhY2tdOyAvLyBGbHVzaCB0aGUgcXVldWUgaW4gdGhlIG5leHQgdGljaywgYXQgdGhlIGVhcmxpZXN0LlxuXG4gICAgaW1tZWRpYXRlUXVldWVDYWxsYmFja05vZGUgPSBTY2hlZHVsZXJfc2NoZWR1bGVDYWxsYmFjayhTY2hlZHVsZXJfSW1tZWRpYXRlUHJpb3JpdHksIGZsdXNoU3luY0NhbGxiYWNrUXVldWVJbXBsKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBQdXNoIG9udG8gZXhpc3RpbmcgcXVldWUuIERvbid0IG5lZWQgdG8gc2NoZWR1bGUgYSBjYWxsYmFjayBiZWNhdXNlXG4gICAgLy8gd2UgYWxyZWFkeSBzY2hlZHVsZWQgb25lIHdoZW4gd2UgY3JlYXRlZCB0aGUgcXVldWUuXG4gICAgc3luY1F1ZXVlLnB1c2goY2FsbGJhY2spO1xuICB9XG5cbiAgcmV0dXJuIGZha2VDYWxsYmFja05vZGU7XG59XG5mdW5jdGlvbiBjYW5jZWxDYWxsYmFjayhjYWxsYmFja05vZGUpIHtcbiAgaWYgKGNhbGxiYWNrTm9kZSAhPT0gZmFrZUNhbGxiYWNrTm9kZSkge1xuICAgIFNjaGVkdWxlcl9jYW5jZWxDYWxsYmFjayhjYWxsYmFja05vZGUpO1xuICB9XG59XG5mdW5jdGlvbiBmbHVzaFN5bmNDYWxsYmFja1F1ZXVlKCkge1xuICBpZiAoaW1tZWRpYXRlUXVldWVDYWxsYmFja05vZGUgIT09IG51bGwpIHtcbiAgICB2YXIgbm9kZSA9IGltbWVkaWF0ZVF1ZXVlQ2FsbGJhY2tOb2RlO1xuICAgIGltbWVkaWF0ZVF1ZXVlQ2FsbGJhY2tOb2RlID0gbnVsbDtcbiAgICBTY2hlZHVsZXJfY2FuY2VsQ2FsbGJhY2sobm9kZSk7XG4gIH1cblxuICBmbHVzaFN5bmNDYWxsYmFja1F1ZXVlSW1wbCgpO1xufVxuXG5mdW5jdGlvbiBmbHVzaFN5bmNDYWxsYmFja1F1ZXVlSW1wbCgpIHtcbiAgaWYgKCFpc0ZsdXNoaW5nU3luY1F1ZXVlICYmIHN5bmNRdWV1ZSAhPT0gbnVsbCkge1xuICAgIC8vIFByZXZlbnQgcmUtZW50cmFuY3kuXG4gICAgaXNGbHVzaGluZ1N5bmNRdWV1ZSA9IHRydWU7XG4gICAgdmFyIGkgPSAwO1xuXG4gICAge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdmFyIF9pc1N5bmMyID0gdHJ1ZTtcbiAgICAgICAgdmFyIF9xdWV1ZSA9IHN5bmNRdWV1ZTtcbiAgICAgICAgcnVuV2l0aFByaW9yaXR5JDEoSW1tZWRpYXRlUHJpb3JpdHkkMSwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGZvciAoOyBpIDwgX3F1ZXVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB2YXIgY2FsbGJhY2sgPSBfcXVldWVbaV07XG5cbiAgICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgICAgY2FsbGJhY2sgPSBjYWxsYmFjayhfaXNTeW5jMik7XG4gICAgICAgICAgICB9IHdoaWxlIChjYWxsYmFjayAhPT0gbnVsbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgc3luY1F1ZXVlID0gbnVsbDtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIC8vIElmIHNvbWV0aGluZyB0aHJvd3MsIGxlYXZlIHRoZSByZW1haW5pbmcgY2FsbGJhY2tzIG9uIHRoZSBxdWV1ZS5cbiAgICAgICAgaWYgKHN5bmNRdWV1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgIHN5bmNRdWV1ZSA9IHN5bmNRdWV1ZS5zbGljZShpICsgMSk7XG4gICAgICAgIH0gLy8gUmVzdW1lIGZsdXNoaW5nIGluIHRoZSBuZXh0IHRpY2tcblxuXG4gICAgICAgIFNjaGVkdWxlcl9zY2hlZHVsZUNhbGxiYWNrKFNjaGVkdWxlcl9JbW1lZGlhdGVQcmlvcml0eSwgZmx1c2hTeW5jQ2FsbGJhY2tRdWV1ZSk7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgaXNGbHVzaGluZ1N5bmNRdWV1ZSA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBUT0RPOiB0aGlzIGlzIHNwZWNpYWwgYmVjYXVzZSBpdCBnZXRzIGltcG9ydGVkIGR1cmluZyBidWlsZC5cbnZhciBSZWFjdFZlcnNpb24gPSAnMTcuMC4yJztcblxudmFyIE5vTW9kZSA9IDA7XG52YXIgU3RyaWN0TW9kZSA9IDE7IC8vIFRPRE86IFJlbW92ZSBCbG9ja2luZ01vZGUgYW5kIENvbmN1cnJlbnRNb2RlIGJ5IHJlYWRpbmcgZnJvbSB0aGUgcm9vdFxuLy8gdGFnIGluc3RlYWRcblxudmFyIEJsb2NraW5nTW9kZSA9IDI7XG52YXIgQ29uY3VycmVudE1vZGUgPSA0O1xudmFyIFByb2ZpbGVNb2RlID0gODtcbnZhciBEZWJ1Z1RyYWNpbmdNb2RlID0gMTY7XG5cbnZhciBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZyA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0Q3VycmVudEJhdGNoQ29uZmlnO1xudmFyIE5vVHJhbnNpdGlvbiA9IDA7XG5mdW5jdGlvbiByZXF1ZXN0Q3VycmVudFRyYW5zaXRpb24oKSB7XG4gIHJldHVybiBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZy50cmFuc2l0aW9uO1xufVxuXG52YXIgUmVhY3RTdHJpY3RNb2RlV2FybmluZ3MgPSB7XG4gIHJlY29yZFVuc2FmZUxpZmVjeWNsZVdhcm5pbmdzOiBmdW5jdGlvbiAoZmliZXIsIGluc3RhbmNlKSB7fSxcbiAgZmx1c2hQZW5kaW5nVW5zYWZlTGlmZWN5Y2xlV2FybmluZ3M6IGZ1bmN0aW9uICgpIHt9LFxuICByZWNvcmRMZWdhY3lDb250ZXh0V2FybmluZzogZnVuY3Rpb24gKGZpYmVyLCBpbnN0YW5jZSkge30sXG4gIGZsdXNoTGVnYWN5Q29udGV4dFdhcm5pbmc6IGZ1bmN0aW9uICgpIHt9LFxuICBkaXNjYXJkUGVuZGluZ1dhcm5pbmdzOiBmdW5jdGlvbiAoKSB7fVxufTtcblxue1xuICB2YXIgZmluZFN0cmljdFJvb3QgPSBmdW5jdGlvbiAoZmliZXIpIHtcbiAgICB2YXIgbWF5YmVTdHJpY3RSb290ID0gbnVsbDtcbiAgICB2YXIgbm9kZSA9IGZpYmVyO1xuXG4gICAgd2hpbGUgKG5vZGUgIT09IG51bGwpIHtcbiAgICAgIGlmIChub2RlLm1vZGUgJiBTdHJpY3RNb2RlKSB7XG4gICAgICAgIG1heWJlU3RyaWN0Um9vdCA9IG5vZGU7XG4gICAgICB9XG5cbiAgICAgIG5vZGUgPSBub2RlLnJldHVybjtcbiAgICB9XG5cbiAgICByZXR1cm4gbWF5YmVTdHJpY3RSb290O1xuICB9O1xuXG4gIHZhciBzZXRUb1NvcnRlZFN0cmluZyA9IGZ1bmN0aW9uIChzZXQpIHtcbiAgICB2YXIgYXJyYXkgPSBbXTtcbiAgICBzZXQuZm9yRWFjaChmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgIGFycmF5LnB1c2godmFsdWUpO1xuICAgIH0pO1xuICAgIHJldHVybiBhcnJheS5zb3J0KCkuam9pbignLCAnKTtcbiAgfTtcblxuICB2YXIgcGVuZGluZ0NvbXBvbmVudFdpbGxNb3VudFdhcm5pbmdzID0gW107XG4gIHZhciBwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxNb3VudFdhcm5pbmdzID0gW107XG4gIHZhciBwZW5kaW5nQ29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1dhcm5pbmdzID0gW107XG4gIHZhciBwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNXYXJuaW5ncyA9IFtdO1xuICB2YXIgcGVuZGluZ0NvbXBvbmVudFdpbGxVcGRhdGVXYXJuaW5ncyA9IFtdO1xuICB2YXIgcGVuZGluZ1VOU0FGRV9Db21wb25lbnRXaWxsVXBkYXRlV2FybmluZ3MgPSBbXTsgLy8gVHJhY2tzIGNvbXBvbmVudHMgd2UgaGF2ZSBhbHJlYWR5IHdhcm5lZCBhYm91dC5cblxuICB2YXIgZGlkV2FybkFib3V0VW5zYWZlTGlmZWN5Y2xlcyA9IG5ldyBTZXQoKTtcblxuICBSZWFjdFN0cmljdE1vZGVXYXJuaW5ncy5yZWNvcmRVbnNhZmVMaWZlY3ljbGVXYXJuaW5ncyA9IGZ1bmN0aW9uIChmaWJlciwgaW5zdGFuY2UpIHtcbiAgICAvLyBEZWR1cCBzdHJhdGVneTogV2FybiBvbmNlIHBlciBjb21wb25lbnQuXG4gICAgaWYgKGRpZFdhcm5BYm91dFVuc2FmZUxpZmVjeWNsZXMuaGFzKGZpYmVyLnR5cGUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnRXaWxsTW91bnQgPT09ICdmdW5jdGlvbicgJiYgLy8gRG9uJ3Qgd2FybiBhYm91dCByZWFjdC1saWZlY3ljbGVzLWNvbXBhdCBwb2x5ZmlsbGVkIGNvbXBvbmVudHMuXG4gICAgaW5zdGFuY2UuY29tcG9uZW50V2lsbE1vdW50Ll9fc3VwcHJlc3NEZXByZWNhdGlvbldhcm5pbmcgIT09IHRydWUpIHtcbiAgICAgIHBlbmRpbmdDb21wb25lbnRXaWxsTW91bnRXYXJuaW5ncy5wdXNoKGZpYmVyKTtcbiAgICB9XG5cbiAgICBpZiAoZmliZXIubW9kZSAmIFN0cmljdE1vZGUgJiYgdHlwZW9mIGluc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbE1vdW50V2FybmluZ3MucHVzaChmaWJlcik7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzID09PSAnZnVuY3Rpb24nICYmIGluc3RhbmNlLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMuX19zdXBwcmVzc0RlcHJlY2F0aW9uV2FybmluZyAhPT0gdHJ1ZSkge1xuICAgICAgcGVuZGluZ0NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNXYXJuaW5ncy5wdXNoKGZpYmVyKTtcbiAgICB9XG5cbiAgICBpZiAoZmliZXIubW9kZSAmIFN0cmljdE1vZGUgJiYgdHlwZW9mIGluc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNXYXJuaW5ncy5wdXNoKGZpYmVyKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudFdpbGxVcGRhdGUgPT09ICdmdW5jdGlvbicgJiYgaW5zdGFuY2UuY29tcG9uZW50V2lsbFVwZGF0ZS5fX3N1cHByZXNzRGVwcmVjYXRpb25XYXJuaW5nICE9PSB0cnVlKSB7XG4gICAgICBwZW5kaW5nQ29tcG9uZW50V2lsbFVwZGF0ZVdhcm5pbmdzLnB1c2goZmliZXIpO1xuICAgIH1cblxuICAgIGlmIChmaWJlci5tb2RlICYgU3RyaWN0TW9kZSAmJiB0eXBlb2YgaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbFVwZGF0ZVdhcm5pbmdzLnB1c2goZmliZXIpO1xuICAgIH1cbiAgfTtcblxuICBSZWFjdFN0cmljdE1vZGVXYXJuaW5ncy5mbHVzaFBlbmRpbmdVbnNhZmVMaWZlY3ljbGVXYXJuaW5ncyA9IGZ1bmN0aW9uICgpIHtcbiAgICAvLyBXZSBkbyBhbiBpbml0aWFsIHBhc3MgdG8gZ2F0aGVyIGNvbXBvbmVudCBuYW1lc1xuICAgIHZhciBjb21wb25lbnRXaWxsTW91bnRVbmlxdWVOYW1lcyA9IG5ldyBTZXQoKTtcblxuICAgIGlmIChwZW5kaW5nQ29tcG9uZW50V2lsbE1vdW50V2FybmluZ3MubGVuZ3RoID4gMCkge1xuICAgICAgcGVuZGluZ0NvbXBvbmVudFdpbGxNb3VudFdhcm5pbmdzLmZvckVhY2goZnVuY3Rpb24gKGZpYmVyKSB7XG4gICAgICAgIGNvbXBvbmVudFdpbGxNb3VudFVuaXF1ZU5hbWVzLmFkZChnZXRDb21wb25lbnROYW1lKGZpYmVyLnR5cGUpIHx8ICdDb21wb25lbnQnKTtcbiAgICAgICAgZGlkV2FybkFib3V0VW5zYWZlTGlmZWN5Y2xlcy5hZGQoZmliZXIudHlwZSk7XG4gICAgICB9KTtcbiAgICAgIHBlbmRpbmdDb21wb25lbnRXaWxsTW91bnRXYXJuaW5ncyA9IFtdO1xuICAgIH1cblxuICAgIHZhciBVTlNBRkVfY29tcG9uZW50V2lsbE1vdW50VW5pcXVlTmFtZXMgPSBuZXcgU2V0KCk7XG5cbiAgICBpZiAocGVuZGluZ1VOU0FGRV9Db21wb25lbnRXaWxsTW91bnRXYXJuaW5ncy5sZW5ndGggPiAwKSB7XG4gICAgICBwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxNb3VudFdhcm5pbmdzLmZvckVhY2goZnVuY3Rpb24gKGZpYmVyKSB7XG4gICAgICAgIFVOU0FGRV9jb21wb25lbnRXaWxsTW91bnRVbmlxdWVOYW1lcy5hZGQoZ2V0Q29tcG9uZW50TmFtZShmaWJlci50eXBlKSB8fCAnQ29tcG9uZW50Jyk7XG4gICAgICAgIGRpZFdhcm5BYm91dFVuc2FmZUxpZmVjeWNsZXMuYWRkKGZpYmVyLnR5cGUpO1xuICAgICAgfSk7XG4gICAgICBwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxNb3VudFdhcm5pbmdzID0gW107XG4gICAgfVxuXG4gICAgdmFyIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNVbmlxdWVOYW1lcyA9IG5ldyBTZXQoKTtcblxuICAgIGlmIChwZW5kaW5nQ29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1dhcm5pbmdzLmxlbmd0aCA+IDApIHtcbiAgICAgIHBlbmRpbmdDb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzV2FybmluZ3MuZm9yRWFjaChmdW5jdGlvbiAoZmliZXIpIHtcbiAgICAgICAgY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1VuaXF1ZU5hbWVzLmFkZChnZXRDb21wb25lbnROYW1lKGZpYmVyLnR5cGUpIHx8ICdDb21wb25lbnQnKTtcbiAgICAgICAgZGlkV2FybkFib3V0VW5zYWZlTGlmZWN5Y2xlcy5hZGQoZmliZXIudHlwZSk7XG4gICAgICB9KTtcbiAgICAgIHBlbmRpbmdDb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzV2FybmluZ3MgPSBbXTtcbiAgICB9XG5cbiAgICB2YXIgVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNVbmlxdWVOYW1lcyA9IG5ldyBTZXQoKTtcblxuICAgIGlmIChwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNXYXJuaW5ncy5sZW5ndGggPiAwKSB7XG4gICAgICBwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNXYXJuaW5ncy5mb3JFYWNoKGZ1bmN0aW9uIChmaWJlcikge1xuICAgICAgICBVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1VuaXF1ZU5hbWVzLmFkZChnZXRDb21wb25lbnROYW1lKGZpYmVyLnR5cGUpIHx8ICdDb21wb25lbnQnKTtcbiAgICAgICAgZGlkV2FybkFib3V0VW5zYWZlTGlmZWN5Y2xlcy5hZGQoZmliZXIudHlwZSk7XG4gICAgICB9KTtcbiAgICAgIHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1dhcm5pbmdzID0gW107XG4gICAgfVxuXG4gICAgdmFyIGNvbXBvbmVudFdpbGxVcGRhdGVVbmlxdWVOYW1lcyA9IG5ldyBTZXQoKTtcblxuICAgIGlmIChwZW5kaW5nQ29tcG9uZW50V2lsbFVwZGF0ZVdhcm5pbmdzLmxlbmd0aCA+IDApIHtcbiAgICAgIHBlbmRpbmdDb21wb25lbnRXaWxsVXBkYXRlV2FybmluZ3MuZm9yRWFjaChmdW5jdGlvbiAoZmliZXIpIHtcbiAgICAgICAgY29tcG9uZW50V2lsbFVwZGF0ZVVuaXF1ZU5hbWVzLmFkZChnZXRDb21wb25lbnROYW1lKGZpYmVyLnR5cGUpIHx8ICdDb21wb25lbnQnKTtcbiAgICAgICAgZGlkV2FybkFib3V0VW5zYWZlTGlmZWN5Y2xlcy5hZGQoZmliZXIudHlwZSk7XG4gICAgICB9KTtcbiAgICAgIHBlbmRpbmdDb21wb25lbnRXaWxsVXBkYXRlV2FybmluZ3MgPSBbXTtcbiAgICB9XG5cbiAgICB2YXIgVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGVVbmlxdWVOYW1lcyA9IG5ldyBTZXQoKTtcblxuICAgIGlmIChwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxVcGRhdGVXYXJuaW5ncy5sZW5ndGggPiAwKSB7XG4gICAgICBwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxVcGRhdGVXYXJuaW5ncy5mb3JFYWNoKGZ1bmN0aW9uIChmaWJlcikge1xuICAgICAgICBVTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZVVuaXF1ZU5hbWVzLmFkZChnZXRDb21wb25lbnROYW1lKGZpYmVyLnR5cGUpIHx8ICdDb21wb25lbnQnKTtcbiAgICAgICAgZGlkV2FybkFib3V0VW5zYWZlTGlmZWN5Y2xlcy5hZGQoZmliZXIudHlwZSk7XG4gICAgICB9KTtcbiAgICAgIHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbFVwZGF0ZVdhcm5pbmdzID0gW107XG4gICAgfSAvLyBGaW5hbGx5LCB3ZSBmbHVzaCBhbGwgdGhlIHdhcm5pbmdzXG4gICAgLy8gVU5TQUZFXyBvbmVzIGJlZm9yZSB0aGUgZGVwcmVjYXRlZCBvbmVzLCBzaW5jZSB0aGV5J2xsIGJlICdsb3VkZXInXG5cblxuICAgIGlmIChVTlNBRkVfY29tcG9uZW50V2lsbE1vdW50VW5pcXVlTmFtZXMuc2l6ZSA+IDApIHtcbiAgICAgIHZhciBzb3J0ZWROYW1lcyA9IHNldFRvU29ydGVkU3RyaW5nKFVOU0FGRV9jb21wb25lbnRXaWxsTW91bnRVbmlxdWVOYW1lcyk7XG5cbiAgICAgIGVycm9yKCdVc2luZyBVTlNBRkVfY29tcG9uZW50V2lsbE1vdW50IGluIHN0cmljdCBtb2RlIGlzIG5vdCByZWNvbW1lbmRlZCBhbmQgbWF5IGluZGljYXRlIGJ1Z3MgaW4geW91ciBjb2RlLiAnICsgJ1NlZSBodHRwczovL3JlYWN0anMub3JnL2xpbmsvdW5zYWZlLWNvbXBvbmVudC1saWZlY3ljbGVzIGZvciBkZXRhaWxzLlxcblxcbicgKyAnKiBNb3ZlIGNvZGUgd2l0aCBzaWRlIGVmZmVjdHMgdG8gY29tcG9uZW50RGlkTW91bnQsIGFuZCBzZXQgaW5pdGlhbCBzdGF0ZSBpbiB0aGUgY29uc3RydWN0b3IuXFxuJyArICdcXG5QbGVhc2UgdXBkYXRlIHRoZSBmb2xsb3dpbmcgY29tcG9uZW50czogJXMnLCBzb3J0ZWROYW1lcyk7XG4gICAgfVxuXG4gICAgaWYgKFVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzVW5pcXVlTmFtZXMuc2l6ZSA+IDApIHtcbiAgICAgIHZhciBfc29ydGVkTmFtZXMgPSBzZXRUb1NvcnRlZFN0cmluZyhVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1VuaXF1ZU5hbWVzKTtcblxuICAgICAgZXJyb3IoJ1VzaW5nIFVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzIGluIHN0cmljdCBtb2RlIGlzIG5vdCByZWNvbW1lbmRlZCAnICsgJ2FuZCBtYXkgaW5kaWNhdGUgYnVncyBpbiB5b3VyIGNvZGUuICcgKyAnU2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay91bnNhZmUtY29tcG9uZW50LWxpZmVjeWNsZXMgZm9yIGRldGFpbHMuXFxuXFxuJyArICcqIE1vdmUgZGF0YSBmZXRjaGluZyBjb2RlIG9yIHNpZGUgZWZmZWN0cyB0byBjb21wb25lbnREaWRVcGRhdGUuXFxuJyArIFwiKiBJZiB5b3UncmUgdXBkYXRpbmcgc3RhdGUgd2hlbmV2ZXIgcHJvcHMgY2hhbmdlLCBcIiArICdyZWZhY3RvciB5b3VyIGNvZGUgdG8gdXNlIG1lbW9pemF0aW9uIHRlY2huaXF1ZXMgb3IgbW92ZSBpdCB0byAnICsgJ3N0YXRpYyBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMuIExlYXJuIG1vcmUgYXQ6IGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9kZXJpdmVkLXN0YXRlXFxuJyArICdcXG5QbGVhc2UgdXBkYXRlIHRoZSBmb2xsb3dpbmcgY29tcG9uZW50czogJXMnLCBfc29ydGVkTmFtZXMpO1xuICAgIH1cblxuICAgIGlmIChVTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZVVuaXF1ZU5hbWVzLnNpemUgPiAwKSB7XG4gICAgICB2YXIgX3NvcnRlZE5hbWVzMiA9IHNldFRvU29ydGVkU3RyaW5nKFVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlVW5pcXVlTmFtZXMpO1xuXG4gICAgICBlcnJvcignVXNpbmcgVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUgaW4gc3RyaWN0IG1vZGUgaXMgbm90IHJlY29tbWVuZGVkICcgKyAnYW5kIG1heSBpbmRpY2F0ZSBidWdzIGluIHlvdXIgY29kZS4gJyArICdTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3Vuc2FmZS1jb21wb25lbnQtbGlmZWN5Y2xlcyBmb3IgZGV0YWlscy5cXG5cXG4nICsgJyogTW92ZSBkYXRhIGZldGNoaW5nIGNvZGUgb3Igc2lkZSBlZmZlY3RzIHRvIGNvbXBvbmVudERpZFVwZGF0ZS5cXG4nICsgJ1xcblBsZWFzZSB1cGRhdGUgdGhlIGZvbGxvd2luZyBjb21wb25lbnRzOiAlcycsIF9zb3J0ZWROYW1lczIpO1xuICAgIH1cblxuICAgIGlmIChjb21wb25lbnRXaWxsTW91bnRVbmlxdWVOYW1lcy5zaXplID4gMCkge1xuICAgICAgdmFyIF9zb3J0ZWROYW1lczMgPSBzZXRUb1NvcnRlZFN0cmluZyhjb21wb25lbnRXaWxsTW91bnRVbmlxdWVOYW1lcyk7XG5cbiAgICAgIHdhcm4oJ2NvbXBvbmVudFdpbGxNb3VudCBoYXMgYmVlbiByZW5hbWVkLCBhbmQgaXMgbm90IHJlY29tbWVuZGVkIGZvciB1c2UuICcgKyAnU2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay91bnNhZmUtY29tcG9uZW50LWxpZmVjeWNsZXMgZm9yIGRldGFpbHMuXFxuXFxuJyArICcqIE1vdmUgY29kZSB3aXRoIHNpZGUgZWZmZWN0cyB0byBjb21wb25lbnREaWRNb3VudCwgYW5kIHNldCBpbml0aWFsIHN0YXRlIGluIHRoZSBjb25zdHJ1Y3Rvci5cXG4nICsgJyogUmVuYW1lIGNvbXBvbmVudFdpbGxNb3VudCB0byBVTlNBRkVfY29tcG9uZW50V2lsbE1vdW50IHRvIHN1cHByZXNzICcgKyAndGhpcyB3YXJuaW5nIGluIG5vbi1zdHJpY3QgbW9kZS4gSW4gUmVhY3QgMTgueCwgb25seSB0aGUgVU5TQUZFXyBuYW1lIHdpbGwgd29yay4gJyArICdUbyByZW5hbWUgYWxsIGRlcHJlY2F0ZWQgbGlmZWN5Y2xlcyB0byB0aGVpciBuZXcgbmFtZXMsIHlvdSBjYW4gcnVuICcgKyAnYG5weCByZWFjdC1jb2RlbW9kIHJlbmFtZS11bnNhZmUtbGlmZWN5Y2xlc2AgaW4geW91ciBwcm9qZWN0IHNvdXJjZSBmb2xkZXIuXFxuJyArICdcXG5QbGVhc2UgdXBkYXRlIHRoZSBmb2xsb3dpbmcgY29tcG9uZW50czogJXMnLCBfc29ydGVkTmFtZXMzKTtcbiAgICB9XG5cbiAgICBpZiAoY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1VuaXF1ZU5hbWVzLnNpemUgPiAwKSB7XG4gICAgICB2YXIgX3NvcnRlZE5hbWVzNCA9IHNldFRvU29ydGVkU3RyaW5nKGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNVbmlxdWVOYW1lcyk7XG5cbiAgICAgIHdhcm4oJ2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgaGFzIGJlZW4gcmVuYW1lZCwgYW5kIGlzIG5vdCByZWNvbW1lbmRlZCBmb3IgdXNlLiAnICsgJ1NlZSBodHRwczovL3JlYWN0anMub3JnL2xpbmsvdW5zYWZlLWNvbXBvbmVudC1saWZlY3ljbGVzIGZvciBkZXRhaWxzLlxcblxcbicgKyAnKiBNb3ZlIGRhdGEgZmV0Y2hpbmcgY29kZSBvciBzaWRlIGVmZmVjdHMgdG8gY29tcG9uZW50RGlkVXBkYXRlLlxcbicgKyBcIiogSWYgeW91J3JlIHVwZGF0aW5nIHN0YXRlIHdoZW5ldmVyIHByb3BzIGNoYW5nZSwgcmVmYWN0b3IgeW91ciBcIiArICdjb2RlIHRvIHVzZSBtZW1vaXphdGlvbiB0ZWNobmlxdWVzIG9yIG1vdmUgaXQgdG8gJyArICdzdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzLiBMZWFybiBtb3JlIGF0OiBodHRwczovL3JlYWN0anMub3JnL2xpbmsvZGVyaXZlZC1zdGF0ZVxcbicgKyAnKiBSZW5hbWUgY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyB0byBVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyB0byBzdXBwcmVzcyAnICsgJ3RoaXMgd2FybmluZyBpbiBub24tc3RyaWN0IG1vZGUuIEluIFJlYWN0IDE4LngsIG9ubHkgdGhlIFVOU0FGRV8gbmFtZSB3aWxsIHdvcmsuICcgKyAnVG8gcmVuYW1lIGFsbCBkZXByZWNhdGVkIGxpZmVjeWNsZXMgdG8gdGhlaXIgbmV3IG5hbWVzLCB5b3UgY2FuIHJ1biAnICsgJ2BucHggcmVhY3QtY29kZW1vZCByZW5hbWUtdW5zYWZlLWxpZmVjeWNsZXNgIGluIHlvdXIgcHJvamVjdCBzb3VyY2UgZm9sZGVyLlxcbicgKyAnXFxuUGxlYXNlIHVwZGF0ZSB0aGUgZm9sbG93aW5nIGNvbXBvbmVudHM6ICVzJywgX3NvcnRlZE5hbWVzNCk7XG4gICAgfVxuXG4gICAgaWYgKGNvbXBvbmVudFdpbGxVcGRhdGVVbmlxdWVOYW1lcy5zaXplID4gMCkge1xuICAgICAgdmFyIF9zb3J0ZWROYW1lczUgPSBzZXRUb1NvcnRlZFN0cmluZyhjb21wb25lbnRXaWxsVXBkYXRlVW5pcXVlTmFtZXMpO1xuXG4gICAgICB3YXJuKCdjb21wb25lbnRXaWxsVXBkYXRlIGhhcyBiZWVuIHJlbmFtZWQsIGFuZCBpcyBub3QgcmVjb21tZW5kZWQgZm9yIHVzZS4gJyArICdTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3Vuc2FmZS1jb21wb25lbnQtbGlmZWN5Y2xlcyBmb3IgZGV0YWlscy5cXG5cXG4nICsgJyogTW92ZSBkYXRhIGZldGNoaW5nIGNvZGUgb3Igc2lkZSBlZmZlY3RzIHRvIGNvbXBvbmVudERpZFVwZGF0ZS5cXG4nICsgJyogUmVuYW1lIGNvbXBvbmVudFdpbGxVcGRhdGUgdG8gVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUgdG8gc3VwcHJlc3MgJyArICd0aGlzIHdhcm5pbmcgaW4gbm9uLXN0cmljdCBtb2RlLiBJbiBSZWFjdCAxOC54LCBvbmx5IHRoZSBVTlNBRkVfIG5hbWUgd2lsbCB3b3JrLiAnICsgJ1RvIHJlbmFtZSBhbGwgZGVwcmVjYXRlZCBsaWZlY3ljbGVzIHRvIHRoZWlyIG5ldyBuYW1lcywgeW91IGNhbiBydW4gJyArICdgbnB4IHJlYWN0LWNvZGVtb2QgcmVuYW1lLXVuc2FmZS1saWZlY3ljbGVzYCBpbiB5b3VyIHByb2plY3Qgc291cmNlIGZvbGRlci5cXG4nICsgJ1xcblBsZWFzZSB1cGRhdGUgdGhlIGZvbGxvd2luZyBjb21wb25lbnRzOiAlcycsIF9zb3J0ZWROYW1lczUpO1xuICAgIH1cbiAgfTtcblxuICB2YXIgcGVuZGluZ0xlZ2FjeUNvbnRleHRXYXJuaW5nID0gbmV3IE1hcCgpOyAvLyBUcmFja3MgY29tcG9uZW50cyB3ZSBoYXZlIGFscmVhZHkgd2FybmVkIGFib3V0LlxuXG4gIHZhciBkaWRXYXJuQWJvdXRMZWdhY3lDb250ZXh0ID0gbmV3IFNldCgpO1xuXG4gIFJlYWN0U3RyaWN0TW9kZVdhcm5pbmdzLnJlY29yZExlZ2FjeUNvbnRleHRXYXJuaW5nID0gZnVuY3Rpb24gKGZpYmVyLCBpbnN0YW5jZSkge1xuICAgIHZhciBzdHJpY3RSb290ID0gZmluZFN0cmljdFJvb3QoZmliZXIpO1xuXG4gICAgaWYgKHN0cmljdFJvb3QgPT09IG51bGwpIHtcbiAgICAgIGVycm9yKCdFeHBlY3RlZCB0byBmaW5kIGEgU3RyaWN0TW9kZSBjb21wb25lbnQgaW4gYSBzdHJpY3QgbW9kZSB0cmVlLiAnICsgJ1RoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJyk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9IC8vIERlZHVwIHN0cmF0ZWd5OiBXYXJuIG9uY2UgcGVyIGNvbXBvbmVudC5cblxuXG4gICAgaWYgKGRpZFdhcm5BYm91dExlZ2FjeUNvbnRleHQuaGFzKGZpYmVyLnR5cGUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIHdhcm5pbmdzRm9yUm9vdCA9IHBlbmRpbmdMZWdhY3lDb250ZXh0V2FybmluZy5nZXQoc3RyaWN0Um9vdCk7XG5cbiAgICBpZiAoZmliZXIudHlwZS5jb250ZXh0VHlwZXMgIT0gbnVsbCB8fCBmaWJlci50eXBlLmNoaWxkQ29udGV4dFR5cGVzICE9IG51bGwgfHwgaW5zdGFuY2UgIT09IG51bGwgJiYgdHlwZW9mIGluc3RhbmNlLmdldENoaWxkQ29udGV4dCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgaWYgKHdhcm5pbmdzRm9yUm9vdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHdhcm5pbmdzRm9yUm9vdCA9IFtdO1xuICAgICAgICBwZW5kaW5nTGVnYWN5Q29udGV4dFdhcm5pbmcuc2V0KHN0cmljdFJvb3QsIHdhcm5pbmdzRm9yUm9vdCk7XG4gICAgICB9XG5cbiAgICAgIHdhcm5pbmdzRm9yUm9vdC5wdXNoKGZpYmVyKTtcbiAgICB9XG4gIH07XG5cbiAgUmVhY3RTdHJpY3RNb2RlV2FybmluZ3MuZmx1c2hMZWdhY3lDb250ZXh0V2FybmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICBwZW5kaW5nTGVnYWN5Q29udGV4dFdhcm5pbmcuZm9yRWFjaChmdW5jdGlvbiAoZmliZXJBcnJheSwgc3RyaWN0Um9vdCkge1xuICAgICAgaWYgKGZpYmVyQXJyYXkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdmFyIGZpcnN0RmliZXIgPSBmaWJlckFycmF5WzBdO1xuICAgICAgdmFyIHVuaXF1ZU5hbWVzID0gbmV3IFNldCgpO1xuICAgICAgZmliZXJBcnJheS5mb3JFYWNoKGZ1bmN0aW9uIChmaWJlcikge1xuICAgICAgICB1bmlxdWVOYW1lcy5hZGQoZ2V0Q29tcG9uZW50TmFtZShmaWJlci50eXBlKSB8fCAnQ29tcG9uZW50Jyk7XG4gICAgICAgIGRpZFdhcm5BYm91dExlZ2FjeUNvbnRleHQuYWRkKGZpYmVyLnR5cGUpO1xuICAgICAgfSk7XG4gICAgICB2YXIgc29ydGVkTmFtZXMgPSBzZXRUb1NvcnRlZFN0cmluZyh1bmlxdWVOYW1lcyk7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHNldEN1cnJlbnRGaWJlcihmaXJzdEZpYmVyKTtcblxuICAgICAgICBlcnJvcignTGVnYWN5IGNvbnRleHQgQVBJIGhhcyBiZWVuIGRldGVjdGVkIHdpdGhpbiBhIHN0cmljdC1tb2RlIHRyZWUuJyArICdcXG5cXG5UaGUgb2xkIEFQSSB3aWxsIGJlIHN1cHBvcnRlZCBpbiBhbGwgMTYueCByZWxlYXNlcywgYnV0IGFwcGxpY2F0aW9ucyAnICsgJ3VzaW5nIGl0IHNob3VsZCBtaWdyYXRlIHRvIHRoZSBuZXcgdmVyc2lvbi4nICsgJ1xcblxcblBsZWFzZSB1cGRhdGUgdGhlIGZvbGxvd2luZyBjb21wb25lbnRzOiAlcycgKyAnXFxuXFxuTGVhcm4gbW9yZSBhYm91dCB0aGlzIHdhcm5pbmcgaGVyZTogaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL2xlZ2FjeS1jb250ZXh0Jywgc29ydGVkTmFtZXMpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgcmVzZXRDdXJyZW50RmliZXIoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcblxuICBSZWFjdFN0cmljdE1vZGVXYXJuaW5ncy5kaXNjYXJkUGVuZGluZ1dhcm5pbmdzID0gZnVuY3Rpb24gKCkge1xuICAgIHBlbmRpbmdDb21wb25lbnRXaWxsTW91bnRXYXJuaW5ncyA9IFtdO1xuICAgIHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbE1vdW50V2FybmluZ3MgPSBbXTtcbiAgICBwZW5kaW5nQ29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1dhcm5pbmdzID0gW107XG4gICAgcGVuZGluZ1VOU0FGRV9Db21wb25lbnRXaWxsUmVjZWl2ZVByb3BzV2FybmluZ3MgPSBbXTtcbiAgICBwZW5kaW5nQ29tcG9uZW50V2lsbFVwZGF0ZVdhcm5pbmdzID0gW107XG4gICAgcGVuZGluZ1VOU0FGRV9Db21wb25lbnRXaWxsVXBkYXRlV2FybmluZ3MgPSBbXTtcbiAgICBwZW5kaW5nTGVnYWN5Q29udGV4dFdhcm5pbmcgPSBuZXcgTWFwKCk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIHJlc29sdmVEZWZhdWx0UHJvcHMoQ29tcG9uZW50LCBiYXNlUHJvcHMpIHtcbiAgaWYgKENvbXBvbmVudCAmJiBDb21wb25lbnQuZGVmYXVsdFByb3BzKSB7XG4gICAgLy8gUmVzb2x2ZSBkZWZhdWx0IHByb3BzLiBUYWtlbiBmcm9tIFJlYWN0RWxlbWVudFxuICAgIHZhciBwcm9wcyA9IF9hc3NpZ24oe30sIGJhc2VQcm9wcyk7XG5cbiAgICB2YXIgZGVmYXVsdFByb3BzID0gQ29tcG9uZW50LmRlZmF1bHRQcm9wcztcblxuICAgIGZvciAodmFyIHByb3BOYW1lIGluIGRlZmF1bHRQcm9wcykge1xuICAgICAgaWYgKHByb3BzW3Byb3BOYW1lXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHByb3BzW3Byb3BOYW1lXSA9IGRlZmF1bHRQcm9wc1twcm9wTmFtZV07XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHByb3BzO1xuICB9XG5cbiAgcmV0dXJuIGJhc2VQcm9wcztcbn1cblxuLy8gTWF4IDMxIGJpdCBpbnRlZ2VyLiBUaGUgbWF4IGludGVnZXIgc2l6ZSBpbiBWOCBmb3IgMzItYml0IHN5c3RlbXMuXG4vLyBNYXRoLnBvdygyLCAzMCkgLSAxXG4vLyAwYjExMTExMTExMTExMTExMTExMTExMTExMTExMTExMVxudmFyIE1BWF9TSUdORURfMzFfQklUX0lOVCA9IDEwNzM3NDE4MjM7XG5cbnZhciB2YWx1ZUN1cnNvciA9IGNyZWF0ZUN1cnNvcihudWxsKTtcbnZhciByZW5kZXJlclNpZ2lsO1xuXG57XG4gIC8vIFVzZSB0aGlzIHRvIGRldGVjdCBtdWx0aXBsZSByZW5kZXJlcnMgdXNpbmcgdGhlIHNhbWUgY29udGV4dFxuICByZW5kZXJlclNpZ2lsID0ge307XG59XG5cbnZhciBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciA9IG51bGw7XG52YXIgbGFzdENvbnRleHREZXBlbmRlbmN5ID0gbnVsbDtcbnZhciBsYXN0Q29udGV4dFdpdGhBbGxCaXRzT2JzZXJ2ZWQgPSBudWxsO1xudmFyIGlzRGlzYWxsb3dlZENvbnRleHRSZWFkSW5ERVYgPSBmYWxzZTtcbmZ1bmN0aW9uIHJlc2V0Q29udGV4dERlcGVuZGVuY2llcygpIHtcbiAgLy8gVGhpcyBpcyBjYWxsZWQgcmlnaHQgYmVmb3JlIFJlYWN0IHlpZWxkcyBleGVjdXRpb24sIHRvIGVuc3VyZSBgcmVhZENvbnRleHRgXG4gIC8vIGNhbm5vdCBiZSBjYWxsZWQgb3V0c2lkZSB0aGUgcmVuZGVyIHBoYXNlLlxuICBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciA9IG51bGw7XG4gIGxhc3RDb250ZXh0RGVwZW5kZW5jeSA9IG51bGw7XG4gIGxhc3RDb250ZXh0V2l0aEFsbEJpdHNPYnNlcnZlZCA9IG51bGw7XG5cbiAge1xuICAgIGlzRGlzYWxsb3dlZENvbnRleHRSZWFkSW5ERVYgPSBmYWxzZTtcbiAgfVxufVxuZnVuY3Rpb24gZW50ZXJEaXNhbGxvd2VkQ29udGV4dFJlYWRJbkRFVigpIHtcbiAge1xuICAgIGlzRGlzYWxsb3dlZENvbnRleHRSZWFkSW5ERVYgPSB0cnVlO1xuICB9XG59XG5mdW5jdGlvbiBleGl0RGlzYWxsb3dlZENvbnRleHRSZWFkSW5ERVYoKSB7XG4gIHtcbiAgICBpc0Rpc2FsbG93ZWRDb250ZXh0UmVhZEluREVWID0gZmFsc2U7XG4gIH1cbn1cbmZ1bmN0aW9uIHB1c2hQcm92aWRlcihwcm92aWRlckZpYmVyLCBuZXh0VmFsdWUpIHtcbiAgdmFyIGNvbnRleHQgPSBwcm92aWRlckZpYmVyLnR5cGUuX2NvbnRleHQ7XG5cbiAge1xuICAgIHB1c2godmFsdWVDdXJzb3IsIGNvbnRleHQuX2N1cnJlbnRWYWx1ZSwgcHJvdmlkZXJGaWJlcik7XG4gICAgY29udGV4dC5fY3VycmVudFZhbHVlID0gbmV4dFZhbHVlO1xuXG4gICAge1xuICAgICAgaWYgKGNvbnRleHQuX2N1cnJlbnRSZW5kZXJlciAhPT0gdW5kZWZpbmVkICYmIGNvbnRleHQuX2N1cnJlbnRSZW5kZXJlciAhPT0gbnVsbCAmJiBjb250ZXh0Ll9jdXJyZW50UmVuZGVyZXIgIT09IHJlbmRlcmVyU2lnaWwpIHtcbiAgICAgICAgZXJyb3IoJ0RldGVjdGVkIG11bHRpcGxlIHJlbmRlcmVycyBjb25jdXJyZW50bHkgcmVuZGVyaW5nIHRoZSAnICsgJ3NhbWUgY29udGV4dCBwcm92aWRlci4gVGhpcyBpcyBjdXJyZW50bHkgdW5zdXBwb3J0ZWQuJyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnRleHQuX2N1cnJlbnRSZW5kZXJlciA9IHJlbmRlcmVyU2lnaWw7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBwb3BQcm92aWRlcihwcm92aWRlckZpYmVyKSB7XG4gIHZhciBjdXJyZW50VmFsdWUgPSB2YWx1ZUN1cnNvci5jdXJyZW50O1xuICBwb3AodmFsdWVDdXJzb3IsIHByb3ZpZGVyRmliZXIpO1xuICB2YXIgY29udGV4dCA9IHByb3ZpZGVyRmliZXIudHlwZS5fY29udGV4dDtcblxuICB7XG4gICAgY29udGV4dC5fY3VycmVudFZhbHVlID0gY3VycmVudFZhbHVlO1xuICB9XG59XG5mdW5jdGlvbiBjYWxjdWxhdGVDaGFuZ2VkQml0cyhjb250ZXh0LCBuZXdWYWx1ZSwgb2xkVmFsdWUpIHtcbiAgaWYgKG9iamVjdElzKG9sZFZhbHVlLCBuZXdWYWx1ZSkpIHtcbiAgICAvLyBObyBjaGFuZ2VcbiAgICByZXR1cm4gMDtcbiAgfSBlbHNlIHtcbiAgICB2YXIgY2hhbmdlZEJpdHMgPSB0eXBlb2YgY29udGV4dC5fY2FsY3VsYXRlQ2hhbmdlZEJpdHMgPT09ICdmdW5jdGlvbicgPyBjb250ZXh0Ll9jYWxjdWxhdGVDaGFuZ2VkQml0cyhvbGRWYWx1ZSwgbmV3VmFsdWUpIDogTUFYX1NJR05FRF8zMV9CSVRfSU5UO1xuXG4gICAge1xuICAgICAgaWYgKChjaGFuZ2VkQml0cyAmIE1BWF9TSUdORURfMzFfQklUX0lOVCkgIT09IGNoYW5nZWRCaXRzKSB7XG4gICAgICAgIGVycm9yKCdjYWxjdWxhdGVDaGFuZ2VkQml0czogRXhwZWN0ZWQgdGhlIHJldHVybiB2YWx1ZSB0byBiZSBhICcgKyAnMzEtYml0IGludGVnZXIuIEluc3RlYWQgcmVjZWl2ZWQ6ICVzJywgY2hhbmdlZEJpdHMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjaGFuZ2VkQml0cyB8IDA7XG4gIH1cbn1cbmZ1bmN0aW9uIHNjaGVkdWxlV29ya09uUGFyZW50UGF0aChwYXJlbnQsIHJlbmRlckxhbmVzKSB7XG4gIC8vIFVwZGF0ZSB0aGUgY2hpbGQgbGFuZXMgb2YgYWxsIHRoZSBhbmNlc3RvcnMsIGluY2x1ZGluZyB0aGUgYWx0ZXJuYXRlcy5cbiAgdmFyIG5vZGUgPSBwYXJlbnQ7XG5cbiAgd2hpbGUgKG5vZGUgIT09IG51bGwpIHtcbiAgICB2YXIgYWx0ZXJuYXRlID0gbm9kZS5hbHRlcm5hdGU7XG5cbiAgICBpZiAoIWlzU3Vic2V0T2ZMYW5lcyhub2RlLmNoaWxkTGFuZXMsIHJlbmRlckxhbmVzKSkge1xuICAgICAgbm9kZS5jaGlsZExhbmVzID0gbWVyZ2VMYW5lcyhub2RlLmNoaWxkTGFuZXMsIHJlbmRlckxhbmVzKTtcblxuICAgICAgaWYgKGFsdGVybmF0ZSAhPT0gbnVsbCkge1xuICAgICAgICBhbHRlcm5hdGUuY2hpbGRMYW5lcyA9IG1lcmdlTGFuZXMoYWx0ZXJuYXRlLmNoaWxkTGFuZXMsIHJlbmRlckxhbmVzKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGFsdGVybmF0ZSAhPT0gbnVsbCAmJiAhaXNTdWJzZXRPZkxhbmVzKGFsdGVybmF0ZS5jaGlsZExhbmVzLCByZW5kZXJMYW5lcykpIHtcbiAgICAgIGFsdGVybmF0ZS5jaGlsZExhbmVzID0gbWVyZ2VMYW5lcyhhbHRlcm5hdGUuY2hpbGRMYW5lcywgcmVuZGVyTGFuZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBOZWl0aGVyIGFsdGVybmF0ZSB3YXMgdXBkYXRlZCwgd2hpY2ggbWVhbnMgdGhlIHJlc3Qgb2YgdGhlXG4gICAgICAvLyBhbmNlc3RvciBwYXRoIGFscmVhZHkgaGFzIHN1ZmZpY2llbnQgcHJpb3JpdHkuXG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBub2RlID0gbm9kZS5yZXR1cm47XG4gIH1cbn1cbmZ1bmN0aW9uIHByb3BhZ2F0ZUNvbnRleHRDaGFuZ2Uod29ya0luUHJvZ3Jlc3MsIGNvbnRleHQsIGNoYW5nZWRCaXRzLCByZW5kZXJMYW5lcykge1xuICB2YXIgZmliZXIgPSB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcblxuICBpZiAoZmliZXIgIT09IG51bGwpIHtcbiAgICAvLyBTZXQgdGhlIHJldHVybiBwb2ludGVyIG9mIHRoZSBjaGlsZCB0byB0aGUgd29yay1pbi1wcm9ncmVzcyBmaWJlci5cbiAgICBmaWJlci5yZXR1cm4gPSB3b3JrSW5Qcm9ncmVzcztcbiAgfVxuXG4gIHdoaWxlIChmaWJlciAhPT0gbnVsbCkge1xuICAgIHZhciBuZXh0RmliZXIgPSB2b2lkIDA7IC8vIFZpc2l0IHRoaXMgZmliZXIuXG5cbiAgICB2YXIgbGlzdCA9IGZpYmVyLmRlcGVuZGVuY2llcztcblxuICAgIGlmIChsaXN0ICE9PSBudWxsKSB7XG4gICAgICBuZXh0RmliZXIgPSBmaWJlci5jaGlsZDtcbiAgICAgIHZhciBkZXBlbmRlbmN5ID0gbGlzdC5maXJzdENvbnRleHQ7XG5cbiAgICAgIHdoaWxlIChkZXBlbmRlbmN5ICE9PSBudWxsKSB7XG4gICAgICAgIC8vIENoZWNrIGlmIHRoZSBjb250ZXh0IG1hdGNoZXMuXG4gICAgICAgIGlmIChkZXBlbmRlbmN5LmNvbnRleHQgPT09IGNvbnRleHQgJiYgKGRlcGVuZGVuY3kub2JzZXJ2ZWRCaXRzICYgY2hhbmdlZEJpdHMpICE9PSAwKSB7XG4gICAgICAgICAgLy8gTWF0Y2ghIFNjaGVkdWxlIGFuIHVwZGF0ZSBvbiB0aGlzIGZpYmVyLlxuICAgICAgICAgIGlmIChmaWJlci50YWcgPT09IENsYXNzQ29tcG9uZW50KSB7XG4gICAgICAgICAgICAvLyBTY2hlZHVsZSBhIGZvcmNlIHVwZGF0ZSBvbiB0aGUgd29yay1pbi1wcm9ncmVzcy5cbiAgICAgICAgICAgIHZhciB1cGRhdGUgPSBjcmVhdGVVcGRhdGUoTm9UaW1lc3RhbXAsIHBpY2tBcmJpdHJhcnlMYW5lKHJlbmRlckxhbmVzKSk7XG4gICAgICAgICAgICB1cGRhdGUudGFnID0gRm9yY2VVcGRhdGU7IC8vIFRPRE86IEJlY2F1c2Ugd2UgZG9uJ3QgaGF2ZSBhIHdvcmstaW4tcHJvZ3Jlc3MsIHRoaXMgd2lsbCBhZGQgdGhlXG4gICAgICAgICAgICAvLyB1cGRhdGUgdG8gdGhlIGN1cnJlbnQgZmliZXIsIHRvbywgd2hpY2ggbWVhbnMgaXQgd2lsbCBwZXJzaXN0IGV2ZW4gaWZcbiAgICAgICAgICAgIC8vIHRoaXMgcmVuZGVyIGlzIHRocm93biBhd2F5LiBTaW5jZSBpdCdzIGEgcmFjZSBjb25kaXRpb24sIG5vdCBzdXJlIGl0J3NcbiAgICAgICAgICAgIC8vIHdvcnRoIGZpeGluZy5cblxuICAgICAgICAgICAgZW5xdWV1ZVVwZGF0ZShmaWJlciwgdXBkYXRlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBmaWJlci5sYW5lcyA9IG1lcmdlTGFuZXMoZmliZXIubGFuZXMsIHJlbmRlckxhbmVzKTtcbiAgICAgICAgICB2YXIgYWx0ZXJuYXRlID0gZmliZXIuYWx0ZXJuYXRlO1xuXG4gICAgICAgICAgaWYgKGFsdGVybmF0ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgYWx0ZXJuYXRlLmxhbmVzID0gbWVyZ2VMYW5lcyhhbHRlcm5hdGUubGFuZXMsIHJlbmRlckxhbmVzKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBzY2hlZHVsZVdvcmtPblBhcmVudFBhdGgoZmliZXIucmV0dXJuLCByZW5kZXJMYW5lcyk7IC8vIE1hcmsgdGhlIHVwZGF0ZWQgbGFuZXMgb24gdGhlIGxpc3QsIHRvby5cblxuICAgICAgICAgIGxpc3QubGFuZXMgPSBtZXJnZUxhbmVzKGxpc3QubGFuZXMsIHJlbmRlckxhbmVzKTsgLy8gU2luY2Ugd2UgYWxyZWFkeSBmb3VuZCBhIG1hdGNoLCB3ZSBjYW4gc3RvcCB0cmF2ZXJzaW5nIHRoZVxuICAgICAgICAgIC8vIGRlcGVuZGVuY3kgbGlzdC5cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgZGVwZW5kZW5jeSA9IGRlcGVuZGVuY3kubmV4dDtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGZpYmVyLnRhZyA9PT0gQ29udGV4dFByb3ZpZGVyKSB7XG4gICAgICAvLyBEb24ndCBzY2FuIGRlZXBlciBpZiB0aGlzIGlzIGEgbWF0Y2hpbmcgcHJvdmlkZXJcbiAgICAgIG5leHRGaWJlciA9IGZpYmVyLnR5cGUgPT09IHdvcmtJblByb2dyZXNzLnR5cGUgPyBudWxsIDogZmliZXIuY2hpbGQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRyYXZlcnNlIGRvd24uXG4gICAgICBuZXh0RmliZXIgPSBmaWJlci5jaGlsZDtcbiAgICB9XG5cbiAgICBpZiAobmV4dEZpYmVyICE9PSBudWxsKSB7XG4gICAgICAvLyBTZXQgdGhlIHJldHVybiBwb2ludGVyIG9mIHRoZSBjaGlsZCB0byB0aGUgd29yay1pbi1wcm9ncmVzcyBmaWJlci5cbiAgICAgIG5leHRGaWJlci5yZXR1cm4gPSBmaWJlcjtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTm8gY2hpbGQuIFRyYXZlcnNlIHRvIG5leHQgc2libGluZy5cbiAgICAgIG5leHRGaWJlciA9IGZpYmVyO1xuXG4gICAgICB3aGlsZSAobmV4dEZpYmVyICE9PSBudWxsKSB7XG4gICAgICAgIGlmIChuZXh0RmliZXIgPT09IHdvcmtJblByb2dyZXNzKSB7XG4gICAgICAgICAgLy8gV2UncmUgYmFjayB0byB0aGUgcm9vdCBvZiB0aGlzIHN1YnRyZWUuIEV4aXQuXG4gICAgICAgICAgbmV4dEZpYmVyID0gbnVsbDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBzaWJsaW5nID0gbmV4dEZpYmVyLnNpYmxpbmc7XG5cbiAgICAgICAgaWYgKHNpYmxpbmcgIT09IG51bGwpIHtcbiAgICAgICAgICAvLyBTZXQgdGhlIHJldHVybiBwb2ludGVyIG9mIHRoZSBzaWJsaW5nIHRvIHRoZSB3b3JrLWluLXByb2dyZXNzIGZpYmVyLlxuICAgICAgICAgIHNpYmxpbmcucmV0dXJuID0gbmV4dEZpYmVyLnJldHVybjtcbiAgICAgICAgICBuZXh0RmliZXIgPSBzaWJsaW5nO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9IC8vIE5vIG1vcmUgc2libGluZ3MuIFRyYXZlcnNlIHVwLlxuXG5cbiAgICAgICAgbmV4dEZpYmVyID0gbmV4dEZpYmVyLnJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmaWJlciA9IG5leHRGaWJlcjtcbiAgfVxufVxuZnVuY3Rpb24gcHJlcGFyZVRvUmVhZENvbnRleHQod29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKSB7XG4gIGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyID0gd29ya0luUHJvZ3Jlc3M7XG4gIGxhc3RDb250ZXh0RGVwZW5kZW5jeSA9IG51bGw7XG4gIGxhc3RDb250ZXh0V2l0aEFsbEJpdHNPYnNlcnZlZCA9IG51bGw7XG4gIHZhciBkZXBlbmRlbmNpZXMgPSB3b3JrSW5Qcm9ncmVzcy5kZXBlbmRlbmNpZXM7XG5cbiAgaWYgKGRlcGVuZGVuY2llcyAhPT0gbnVsbCkge1xuICAgIHZhciBmaXJzdENvbnRleHQgPSBkZXBlbmRlbmNpZXMuZmlyc3RDb250ZXh0O1xuXG4gICAgaWYgKGZpcnN0Q29udGV4dCAhPT0gbnVsbCkge1xuICAgICAgaWYgKGluY2x1ZGVzU29tZUxhbmUoZGVwZW5kZW5jaWVzLmxhbmVzLCByZW5kZXJMYW5lcykpIHtcbiAgICAgICAgLy8gQ29udGV4dCBsaXN0IGhhcyBhIHBlbmRpbmcgdXBkYXRlLiBNYXJrIHRoYXQgdGhpcyBmaWJlciBwZXJmb3JtZWQgd29yay5cbiAgICAgICAgbWFya1dvcmtJblByb2dyZXNzUmVjZWl2ZWRVcGRhdGUoKTtcbiAgICAgIH0gLy8gUmVzZXQgdGhlIHdvcmstaW4tcHJvZ3Jlc3MgbGlzdFxuXG5cbiAgICAgIGRlcGVuZGVuY2llcy5maXJzdENvbnRleHQgPSBudWxsO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gcmVhZENvbnRleHQoY29udGV4dCwgb2JzZXJ2ZWRCaXRzKSB7XG4gIHtcbiAgICAvLyBUaGlzIHdhcm5pbmcgd291bGQgZmlyZSBpZiB5b3UgcmVhZCBjb250ZXh0IGluc2lkZSBhIEhvb2sgbGlrZSB1c2VNZW1vLlxuICAgIC8vIFVubGlrZSB0aGUgY2xhc3MgY2hlY2sgYmVsb3csIGl0J3Mgbm90IGVuZm9yY2VkIGluIHByb2R1Y3Rpb24gZm9yIHBlcmYuXG4gICAgaWYgKGlzRGlzYWxsb3dlZENvbnRleHRSZWFkSW5ERVYpIHtcbiAgICAgIGVycm9yKCdDb250ZXh0IGNhbiBvbmx5IGJlIHJlYWQgd2hpbGUgUmVhY3QgaXMgcmVuZGVyaW5nLiAnICsgJ0luIGNsYXNzZXMsIHlvdSBjYW4gcmVhZCBpdCBpbiB0aGUgcmVuZGVyIG1ldGhvZCBvciBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMuICcgKyAnSW4gZnVuY3Rpb24gY29tcG9uZW50cywgeW91IGNhbiByZWFkIGl0IGRpcmVjdGx5IGluIHRoZSBmdW5jdGlvbiBib2R5LCBidXQgbm90ICcgKyAnaW5zaWRlIEhvb2tzIGxpa2UgdXNlUmVkdWNlcigpIG9yIHVzZU1lbW8oKS4nKTtcbiAgICB9XG4gIH1cblxuICBpZiAobGFzdENvbnRleHRXaXRoQWxsQml0c09ic2VydmVkID09PSBjb250ZXh0KSA7IGVsc2UgaWYgKG9ic2VydmVkQml0cyA9PT0gZmFsc2UgfHwgb2JzZXJ2ZWRCaXRzID09PSAwKSA7IGVsc2Uge1xuICAgIHZhciByZXNvbHZlZE9ic2VydmVkQml0czsgLy8gQXZvaWQgZGVvcHRpbmcgb24gb2JzZXJ2YWJsZSBhcmd1bWVudHMgb3IgaGV0ZXJvZ2VuZW91cyB0eXBlcy5cblxuICAgIGlmICh0eXBlb2Ygb2JzZXJ2ZWRCaXRzICE9PSAnbnVtYmVyJyB8fCBvYnNlcnZlZEJpdHMgPT09IE1BWF9TSUdORURfMzFfQklUX0lOVCkge1xuICAgICAgLy8gT2JzZXJ2ZSBhbGwgdXBkYXRlcy5cbiAgICAgIGxhc3RDb250ZXh0V2l0aEFsbEJpdHNPYnNlcnZlZCA9IGNvbnRleHQ7XG4gICAgICByZXNvbHZlZE9ic2VydmVkQml0cyA9IE1BWF9TSUdORURfMzFfQklUX0lOVDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzb2x2ZWRPYnNlcnZlZEJpdHMgPSBvYnNlcnZlZEJpdHM7XG4gICAgfVxuXG4gICAgdmFyIGNvbnRleHRJdGVtID0ge1xuICAgICAgY29udGV4dDogY29udGV4dCxcbiAgICAgIG9ic2VydmVkQml0czogcmVzb2x2ZWRPYnNlcnZlZEJpdHMsXG4gICAgICBuZXh0OiBudWxsXG4gICAgfTtcblxuICAgIGlmIChsYXN0Q29udGV4dERlcGVuZGVuY3kgPT09IG51bGwpIHtcbiAgICAgIGlmICghKGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyICE9PSBudWxsKSkge1xuICAgICAgICB7XG4gICAgICAgICAgdGhyb3cgRXJyb3IoIFwiQ29udGV4dCBjYW4gb25seSBiZSByZWFkIHdoaWxlIFJlYWN0IGlzIHJlbmRlcmluZy4gSW4gY2xhc3NlcywgeW91IGNhbiByZWFkIGl0IGluIHRoZSByZW5kZXIgbWV0aG9kIG9yIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcy4gSW4gZnVuY3Rpb24gY29tcG9uZW50cywgeW91IGNhbiByZWFkIGl0IGRpcmVjdGx5IGluIHRoZSBmdW5jdGlvbiBib2R5LCBidXQgbm90IGluc2lkZSBIb29rcyBsaWtlIHVzZVJlZHVjZXIoKSBvciB1c2VNZW1vKCkuXCIgKTtcbiAgICAgICAgfVxuICAgICAgfSAvLyBUaGlzIGlzIHRoZSBmaXJzdCBkZXBlbmRlbmN5IGZvciB0aGlzIGNvbXBvbmVudC4gQ3JlYXRlIGEgbmV3IGxpc3QuXG5cblxuICAgICAgbGFzdENvbnRleHREZXBlbmRlbmN5ID0gY29udGV4dEl0ZW07XG4gICAgICBjdXJyZW50bHlSZW5kZXJpbmdGaWJlci5kZXBlbmRlbmNpZXMgPSB7XG4gICAgICAgIGxhbmVzOiBOb0xhbmVzLFxuICAgICAgICBmaXJzdENvbnRleHQ6IGNvbnRleHRJdGVtLFxuICAgICAgICByZXNwb25kZXJzOiBudWxsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBBcHBlbmQgYSBuZXcgY29udGV4dCBpdGVtLlxuICAgICAgbGFzdENvbnRleHREZXBlbmRlbmN5ID0gbGFzdENvbnRleHREZXBlbmRlbmN5Lm5leHQgPSBjb250ZXh0SXRlbTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gIGNvbnRleHQuX2N1cnJlbnRWYWx1ZSA7XG59XG5cbnZhciBVcGRhdGVTdGF0ZSA9IDA7XG52YXIgUmVwbGFjZVN0YXRlID0gMTtcbnZhciBGb3JjZVVwZGF0ZSA9IDI7XG52YXIgQ2FwdHVyZVVwZGF0ZSA9IDM7IC8vIEdsb2JhbCBzdGF0ZSB0aGF0IGlzIHJlc2V0IGF0IHRoZSBiZWdpbm5pbmcgb2YgY2FsbGluZyBgcHJvY2Vzc1VwZGF0ZVF1ZXVlYC5cbi8vIEl0IHNob3VsZCBvbmx5IGJlIHJlYWQgcmlnaHQgYWZ0ZXIgY2FsbGluZyBgcHJvY2Vzc1VwZGF0ZVF1ZXVlYCwgdmlhXG4vLyBgY2hlY2tIYXNGb3JjZVVwZGF0ZUFmdGVyUHJvY2Vzc2luZ2AuXG5cbnZhciBoYXNGb3JjZVVwZGF0ZSA9IGZhbHNlO1xudmFyIGRpZFdhcm5VcGRhdGVJbnNpZGVVcGRhdGU7XG52YXIgY3VycmVudGx5UHJvY2Vzc2luZ1F1ZXVlO1xuXG57XG4gIGRpZFdhcm5VcGRhdGVJbnNpZGVVcGRhdGUgPSBmYWxzZTtcbiAgY3VycmVudGx5UHJvY2Vzc2luZ1F1ZXVlID0gbnVsbDtcbn1cblxuZnVuY3Rpb24gaW5pdGlhbGl6ZVVwZGF0ZVF1ZXVlKGZpYmVyKSB7XG4gIHZhciBxdWV1ZSA9IHtcbiAgICBiYXNlU3RhdGU6IGZpYmVyLm1lbW9pemVkU3RhdGUsXG4gICAgZmlyc3RCYXNlVXBkYXRlOiBudWxsLFxuICAgIGxhc3RCYXNlVXBkYXRlOiBudWxsLFxuICAgIHNoYXJlZDoge1xuICAgICAgcGVuZGluZzogbnVsbFxuICAgIH0sXG4gICAgZWZmZWN0czogbnVsbFxuICB9O1xuICBmaWJlci51cGRhdGVRdWV1ZSA9IHF1ZXVlO1xufVxuZnVuY3Rpb24gY2xvbmVVcGRhdGVRdWV1ZShjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcykge1xuICAvLyBDbG9uZSB0aGUgdXBkYXRlIHF1ZXVlIGZyb20gY3VycmVudC4gVW5sZXNzIGl0J3MgYWxyZWFkeSBhIGNsb25lLlxuICB2YXIgcXVldWUgPSB3b3JrSW5Qcm9ncmVzcy51cGRhdGVRdWV1ZTtcbiAgdmFyIGN1cnJlbnRRdWV1ZSA9IGN1cnJlbnQudXBkYXRlUXVldWU7XG5cbiAgaWYgKHF1ZXVlID09PSBjdXJyZW50UXVldWUpIHtcbiAgICB2YXIgY2xvbmUgPSB7XG4gICAgICBiYXNlU3RhdGU6IGN1cnJlbnRRdWV1ZS5iYXNlU3RhdGUsXG4gICAgICBmaXJzdEJhc2VVcGRhdGU6IGN1cnJlbnRRdWV1ZS5maXJzdEJhc2VVcGRhdGUsXG4gICAgICBsYXN0QmFzZVVwZGF0ZTogY3VycmVudFF1ZXVlLmxhc3RCYXNlVXBkYXRlLFxuICAgICAgc2hhcmVkOiBjdXJyZW50UXVldWUuc2hhcmVkLFxuICAgICAgZWZmZWN0czogY3VycmVudFF1ZXVlLmVmZmVjdHNcbiAgICB9O1xuICAgIHdvcmtJblByb2dyZXNzLnVwZGF0ZVF1ZXVlID0gY2xvbmU7XG4gIH1cbn1cbmZ1bmN0aW9uIGNyZWF0ZVVwZGF0ZShldmVudFRpbWUsIGxhbmUpIHtcbiAgdmFyIHVwZGF0ZSA9IHtcbiAgICBldmVudFRpbWU6IGV2ZW50VGltZSxcbiAgICBsYW5lOiBsYW5lLFxuICAgIHRhZzogVXBkYXRlU3RhdGUsXG4gICAgcGF5bG9hZDogbnVsbCxcbiAgICBjYWxsYmFjazogbnVsbCxcbiAgICBuZXh0OiBudWxsXG4gIH07XG4gIHJldHVybiB1cGRhdGU7XG59XG5mdW5jdGlvbiBlbnF1ZXVlVXBkYXRlKGZpYmVyLCB1cGRhdGUpIHtcbiAgdmFyIHVwZGF0ZVF1ZXVlID0gZmliZXIudXBkYXRlUXVldWU7XG5cbiAgaWYgKHVwZGF0ZVF1ZXVlID09PSBudWxsKSB7XG4gICAgLy8gT25seSBvY2N1cnMgaWYgdGhlIGZpYmVyIGhhcyBiZWVuIHVubW91bnRlZC5cbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgc2hhcmVkUXVldWUgPSB1cGRhdGVRdWV1ZS5zaGFyZWQ7XG4gIHZhciBwZW5kaW5nID0gc2hhcmVkUXVldWUucGVuZGluZztcblxuICBpZiAocGVuZGluZyA9PT0gbnVsbCkge1xuICAgIC8vIFRoaXMgaXMgdGhlIGZpcnN0IHVwZGF0ZS4gQ3JlYXRlIGEgY2lyY3VsYXIgbGlzdC5cbiAgICB1cGRhdGUubmV4dCA9IHVwZGF0ZTtcbiAgfSBlbHNlIHtcbiAgICB1cGRhdGUubmV4dCA9IHBlbmRpbmcubmV4dDtcbiAgICBwZW5kaW5nLm5leHQgPSB1cGRhdGU7XG4gIH1cblxuICBzaGFyZWRRdWV1ZS5wZW5kaW5nID0gdXBkYXRlO1xuXG4gIHtcbiAgICBpZiAoY3VycmVudGx5UHJvY2Vzc2luZ1F1ZXVlID09PSBzaGFyZWRRdWV1ZSAmJiAhZGlkV2FyblVwZGF0ZUluc2lkZVVwZGF0ZSkge1xuICAgICAgZXJyb3IoJ0FuIHVwZGF0ZSAoc2V0U3RhdGUsIHJlcGxhY2VTdGF0ZSwgb3IgZm9yY2VVcGRhdGUpIHdhcyBzY2hlZHVsZWQgJyArICdmcm9tIGluc2lkZSBhbiB1cGRhdGUgZnVuY3Rpb24uIFVwZGF0ZSBmdW5jdGlvbnMgc2hvdWxkIGJlIHB1cmUsICcgKyAnd2l0aCB6ZXJvIHNpZGUtZWZmZWN0cy4gQ29uc2lkZXIgdXNpbmcgY29tcG9uZW50RGlkVXBkYXRlIG9yIGEgJyArICdjYWxsYmFjay4nKTtcblxuICAgICAgZGlkV2FyblVwZGF0ZUluc2lkZVVwZGF0ZSA9IHRydWU7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBlbnF1ZXVlQ2FwdHVyZWRVcGRhdGUod29ya0luUHJvZ3Jlc3MsIGNhcHR1cmVkVXBkYXRlKSB7XG4gIC8vIENhcHR1cmVkIHVwZGF0ZXMgYXJlIHVwZGF0ZXMgdGhhdCBhcmUgdGhyb3duIGJ5IGEgY2hpbGQgZHVyaW5nIHRoZSByZW5kZXJcbiAgLy8gcGhhc2UuIFRoZXkgc2hvdWxkIGJlIGRpc2NhcmRlZCBpZiB0aGUgcmVuZGVyIGlzIGFib3J0ZWQuIFRoZXJlZm9yZSxcbiAgLy8gd2Ugc2hvdWxkIG9ubHkgcHV0IHRoZW0gb24gdGhlIHdvcmstaW4tcHJvZ3Jlc3MgcXVldWUsIG5vdCB0aGUgY3VycmVudCBvbmUuXG4gIHZhciBxdWV1ZSA9IHdvcmtJblByb2dyZXNzLnVwZGF0ZVF1ZXVlOyAvLyBDaGVjayBpZiB0aGUgd29yay1pbi1wcm9ncmVzcyBxdWV1ZSBpcyBhIGNsb25lLlxuXG4gIHZhciBjdXJyZW50ID0gd29ya0luUHJvZ3Jlc3MuYWx0ZXJuYXRlO1xuXG4gIGlmIChjdXJyZW50ICE9PSBudWxsKSB7XG4gICAgdmFyIGN1cnJlbnRRdWV1ZSA9IGN1cnJlbnQudXBkYXRlUXVldWU7XG5cbiAgICBpZiAocXVldWUgPT09IGN1cnJlbnRRdWV1ZSkge1xuICAgICAgLy8gVGhlIHdvcmstaW4tcHJvZ3Jlc3MgcXVldWUgaXMgdGhlIHNhbWUgYXMgY3VycmVudC4gVGhpcyBoYXBwZW5zIHdoZW5cbiAgICAgIC8vIHdlIGJhaWwgb3V0IG9uIGEgcGFyZW50IGZpYmVyIHRoYXQgdGhlbiBjYXB0dXJlcyBhbiBlcnJvciB0aHJvd24gYnlcbiAgICAgIC8vIGEgY2hpbGQuIFNpbmNlIHdlIHdhbnQgdG8gYXBwZW5kIHRoZSB1cGRhdGUgb25seSB0byB0aGUgd29yay1pblxuICAgICAgLy8gLXByb2dyZXNzIHF1ZXVlLCB3ZSBuZWVkIHRvIGNsb25lIHRoZSB1cGRhdGVzLiBXZSB1c3VhbGx5IGNsb25lIGR1cmluZ1xuICAgICAgLy8gcHJvY2Vzc1VwZGF0ZVF1ZXVlLCBidXQgdGhhdCBkaWRuJ3QgaGFwcGVuIGluIHRoaXMgY2FzZSBiZWNhdXNlIHdlXG4gICAgICAvLyBza2lwcGVkIG92ZXIgdGhlIHBhcmVudCB3aGVuIHdlIGJhaWxlZCBvdXQuXG4gICAgICB2YXIgbmV3Rmlyc3QgPSBudWxsO1xuICAgICAgdmFyIG5ld0xhc3QgPSBudWxsO1xuICAgICAgdmFyIGZpcnN0QmFzZVVwZGF0ZSA9IHF1ZXVlLmZpcnN0QmFzZVVwZGF0ZTtcblxuICAgICAgaWYgKGZpcnN0QmFzZVVwZGF0ZSAhPT0gbnVsbCkge1xuICAgICAgICAvLyBMb29wIHRocm91Z2ggdGhlIHVwZGF0ZXMgYW5kIGNsb25lIHRoZW0uXG4gICAgICAgIHZhciB1cGRhdGUgPSBmaXJzdEJhc2VVcGRhdGU7XG5cbiAgICAgICAgZG8ge1xuICAgICAgICAgIHZhciBjbG9uZSA9IHtcbiAgICAgICAgICAgIGV2ZW50VGltZTogdXBkYXRlLmV2ZW50VGltZSxcbiAgICAgICAgICAgIGxhbmU6IHVwZGF0ZS5sYW5lLFxuICAgICAgICAgICAgdGFnOiB1cGRhdGUudGFnLFxuICAgICAgICAgICAgcGF5bG9hZDogdXBkYXRlLnBheWxvYWQsXG4gICAgICAgICAgICBjYWxsYmFjazogdXBkYXRlLmNhbGxiYWNrLFxuICAgICAgICAgICAgbmV4dDogbnVsbFxuICAgICAgICAgIH07XG5cbiAgICAgICAgICBpZiAobmV3TGFzdCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgbmV3Rmlyc3QgPSBuZXdMYXN0ID0gY2xvbmU7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5ld0xhc3QubmV4dCA9IGNsb25lO1xuICAgICAgICAgICAgbmV3TGFzdCA9IGNsb25lO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHVwZGF0ZSA9IHVwZGF0ZS5uZXh0O1xuICAgICAgICB9IHdoaWxlICh1cGRhdGUgIT09IG51bGwpOyAvLyBBcHBlbmQgdGhlIGNhcHR1cmVkIHVwZGF0ZSB0aGUgZW5kIG9mIHRoZSBjbG9uZWQgbGlzdC5cblxuXG4gICAgICAgIGlmIChuZXdMYXN0ID09PSBudWxsKSB7XG4gICAgICAgICAgbmV3Rmlyc3QgPSBuZXdMYXN0ID0gY2FwdHVyZWRVcGRhdGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbmV3TGFzdC5uZXh0ID0gY2FwdHVyZWRVcGRhdGU7XG4gICAgICAgICAgbmV3TGFzdCA9IGNhcHR1cmVkVXBkYXRlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBUaGVyZSBhcmUgbm8gYmFzZSB1cGRhdGVzLlxuICAgICAgICBuZXdGaXJzdCA9IG5ld0xhc3QgPSBjYXB0dXJlZFVwZGF0ZTtcbiAgICAgIH1cblxuICAgICAgcXVldWUgPSB7XG4gICAgICAgIGJhc2VTdGF0ZTogY3VycmVudFF1ZXVlLmJhc2VTdGF0ZSxcbiAgICAgICAgZmlyc3RCYXNlVXBkYXRlOiBuZXdGaXJzdCxcbiAgICAgICAgbGFzdEJhc2VVcGRhdGU6IG5ld0xhc3QsXG4gICAgICAgIHNoYXJlZDogY3VycmVudFF1ZXVlLnNoYXJlZCxcbiAgICAgICAgZWZmZWN0czogY3VycmVudFF1ZXVlLmVmZmVjdHNcbiAgICAgIH07XG4gICAgICB3b3JrSW5Qcm9ncmVzcy51cGRhdGVRdWV1ZSA9IHF1ZXVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfSAvLyBBcHBlbmQgdGhlIHVwZGF0ZSB0byB0aGUgZW5kIG9mIHRoZSBsaXN0LlxuXG5cbiAgdmFyIGxhc3RCYXNlVXBkYXRlID0gcXVldWUubGFzdEJhc2VVcGRhdGU7XG5cbiAgaWYgKGxhc3RCYXNlVXBkYXRlID09PSBudWxsKSB7XG4gICAgcXVldWUuZmlyc3RCYXNlVXBkYXRlID0gY2FwdHVyZWRVcGRhdGU7XG4gIH0gZWxzZSB7XG4gICAgbGFzdEJhc2VVcGRhdGUubmV4dCA9IGNhcHR1cmVkVXBkYXRlO1xuICB9XG5cbiAgcXVldWUubGFzdEJhc2VVcGRhdGUgPSBjYXB0dXJlZFVwZGF0ZTtcbn1cblxuZnVuY3Rpb24gZ2V0U3RhdGVGcm9tVXBkYXRlKHdvcmtJblByb2dyZXNzLCBxdWV1ZSwgdXBkYXRlLCBwcmV2U3RhdGUsIG5leHRQcm9wcywgaW5zdGFuY2UpIHtcbiAgc3dpdGNoICh1cGRhdGUudGFnKSB7XG4gICAgY2FzZSBSZXBsYWNlU3RhdGU6XG4gICAgICB7XG4gICAgICAgIHZhciBwYXlsb2FkID0gdXBkYXRlLnBheWxvYWQ7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBwYXlsb2FkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgLy8gVXBkYXRlciBmdW5jdGlvblxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGVudGVyRGlzYWxsb3dlZENvbnRleHRSZWFkSW5ERVYoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB2YXIgbmV4dFN0YXRlID0gcGF5bG9hZC5jYWxsKGluc3RhbmNlLCBwcmV2U3RhdGUsIG5leHRQcm9wcyk7XG5cbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZiAoIHdvcmtJblByb2dyZXNzLm1vZGUgJiBTdHJpY3RNb2RlKSB7XG4gICAgICAgICAgICAgIGRpc2FibGVMb2dzKCk7XG5cbiAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBwYXlsb2FkLmNhbGwoaW5zdGFuY2UsIHByZXZTdGF0ZSwgbmV4dFByb3BzKTtcbiAgICAgICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgICByZWVuYWJsZUxvZ3MoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBleGl0RGlzYWxsb3dlZENvbnRleHRSZWFkSW5ERVYoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbmV4dFN0YXRlO1xuICAgICAgICB9IC8vIFN0YXRlIG9iamVjdFxuXG5cbiAgICAgICAgcmV0dXJuIHBheWxvYWQ7XG4gICAgICB9XG5cbiAgICBjYXNlIENhcHR1cmVVcGRhdGU6XG4gICAgICB7XG4gICAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzID0gd29ya0luUHJvZ3Jlc3MuZmxhZ3MgJiB+U2hvdWxkQ2FwdHVyZSB8IERpZENhcHR1cmU7XG4gICAgICB9XG4gICAgLy8gSW50ZW50aW9uYWwgZmFsbHRocm91Z2hcblxuICAgIGNhc2UgVXBkYXRlU3RhdGU6XG4gICAgICB7XG4gICAgICAgIHZhciBfcGF5bG9hZCA9IHVwZGF0ZS5wYXlsb2FkO1xuICAgICAgICB2YXIgcGFydGlhbFN0YXRlO1xuXG4gICAgICAgIGlmICh0eXBlb2YgX3BheWxvYWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAvLyBVcGRhdGVyIGZ1bmN0aW9uXG4gICAgICAgICAge1xuICAgICAgICAgICAgZW50ZXJEaXNhbGxvd2VkQ29udGV4dFJlYWRJbkRFVigpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHBhcnRpYWxTdGF0ZSA9IF9wYXlsb2FkLmNhbGwoaW5zdGFuY2UsIHByZXZTdGF0ZSwgbmV4dFByb3BzKTtcblxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlmICggd29ya0luUHJvZ3Jlc3MubW9kZSAmIFN0cmljdE1vZGUpIHtcbiAgICAgICAgICAgICAgZGlzYWJsZUxvZ3MoKTtcblxuICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIF9wYXlsb2FkLmNhbGwoaW5zdGFuY2UsIHByZXZTdGF0ZSwgbmV4dFByb3BzKTtcbiAgICAgICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgICByZWVuYWJsZUxvZ3MoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBleGl0RGlzYWxsb3dlZENvbnRleHRSZWFkSW5ERVYoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gUGFydGlhbCBzdGF0ZSBvYmplY3RcbiAgICAgICAgICBwYXJ0aWFsU3RhdGUgPSBfcGF5bG9hZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwYXJ0aWFsU3RhdGUgPT09IG51bGwgfHwgcGFydGlhbFN0YXRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAvLyBOdWxsIGFuZCB1bmRlZmluZWQgYXJlIHRyZWF0ZWQgYXMgbm8tb3BzLlxuICAgICAgICAgIHJldHVybiBwcmV2U3RhdGU7XG4gICAgICAgIH0gLy8gTWVyZ2UgdGhlIHBhcnRpYWwgc3RhdGUgYW5kIHRoZSBwcmV2aW91cyBzdGF0ZS5cblxuXG4gICAgICAgIHJldHVybiBfYXNzaWduKHt9LCBwcmV2U3RhdGUsIHBhcnRpYWxTdGF0ZSk7XG4gICAgICB9XG5cbiAgICBjYXNlIEZvcmNlVXBkYXRlOlxuICAgICAge1xuICAgICAgICBoYXNGb3JjZVVwZGF0ZSA9IHRydWU7XG4gICAgICAgIHJldHVybiBwcmV2U3RhdGU7XG4gICAgICB9XG4gIH1cblxuICByZXR1cm4gcHJldlN0YXRlO1xufVxuXG5mdW5jdGlvbiBwcm9jZXNzVXBkYXRlUXVldWUod29ya0luUHJvZ3Jlc3MsIHByb3BzLCBpbnN0YW5jZSwgcmVuZGVyTGFuZXMpIHtcbiAgLy8gVGhpcyBpcyBhbHdheXMgbm9uLW51bGwgb24gYSBDbGFzc0NvbXBvbmVudCBvciBIb3N0Um9vdFxuICB2YXIgcXVldWUgPSB3b3JrSW5Qcm9ncmVzcy51cGRhdGVRdWV1ZTtcbiAgaGFzRm9yY2VVcGRhdGUgPSBmYWxzZTtcblxuICB7XG4gICAgY3VycmVudGx5UHJvY2Vzc2luZ1F1ZXVlID0gcXVldWUuc2hhcmVkO1xuICB9XG5cbiAgdmFyIGZpcnN0QmFzZVVwZGF0ZSA9IHF1ZXVlLmZpcnN0QmFzZVVwZGF0ZTtcbiAgdmFyIGxhc3RCYXNlVXBkYXRlID0gcXVldWUubGFzdEJhc2VVcGRhdGU7IC8vIENoZWNrIGlmIHRoZXJlIGFyZSBwZW5kaW5nIHVwZGF0ZXMuIElmIHNvLCB0cmFuc2ZlciB0aGVtIHRvIHRoZSBiYXNlIHF1ZXVlLlxuXG4gIHZhciBwZW5kaW5nUXVldWUgPSBxdWV1ZS5zaGFyZWQucGVuZGluZztcblxuICBpZiAocGVuZGluZ1F1ZXVlICE9PSBudWxsKSB7XG4gICAgcXVldWUuc2hhcmVkLnBlbmRpbmcgPSBudWxsOyAvLyBUaGUgcGVuZGluZyBxdWV1ZSBpcyBjaXJjdWxhci4gRGlzY29ubmVjdCB0aGUgcG9pbnRlciBiZXR3ZWVuIGZpcnN0XG4gICAgLy8gYW5kIGxhc3Qgc28gdGhhdCBpdCdzIG5vbi1jaXJjdWxhci5cblxuICAgIHZhciBsYXN0UGVuZGluZ1VwZGF0ZSA9IHBlbmRpbmdRdWV1ZTtcbiAgICB2YXIgZmlyc3RQZW5kaW5nVXBkYXRlID0gbGFzdFBlbmRpbmdVcGRhdGUubmV4dDtcbiAgICBsYXN0UGVuZGluZ1VwZGF0ZS5uZXh0ID0gbnVsbDsgLy8gQXBwZW5kIHBlbmRpbmcgdXBkYXRlcyB0byBiYXNlIHF1ZXVlXG5cbiAgICBpZiAobGFzdEJhc2VVcGRhdGUgPT09IG51bGwpIHtcbiAgICAgIGZpcnN0QmFzZVVwZGF0ZSA9IGZpcnN0UGVuZGluZ1VwZGF0ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGFzdEJhc2VVcGRhdGUubmV4dCA9IGZpcnN0UGVuZGluZ1VwZGF0ZTtcbiAgICB9XG5cbiAgICBsYXN0QmFzZVVwZGF0ZSA9IGxhc3RQZW5kaW5nVXBkYXRlOyAvLyBJZiB0aGVyZSdzIGEgY3VycmVudCBxdWV1ZSwgYW5kIGl0J3MgZGlmZmVyZW50IGZyb20gdGhlIGJhc2UgcXVldWUsIHRoZW5cbiAgICAvLyB3ZSBuZWVkIHRvIHRyYW5zZmVyIHRoZSB1cGRhdGVzIHRvIHRoYXQgcXVldWUsIHRvby4gQmVjYXVzZSB0aGUgYmFzZVxuICAgIC8vIHF1ZXVlIGlzIGEgc2luZ2x5LWxpbmtlZCBsaXN0IHdpdGggbm8gY3ljbGVzLCB3ZSBjYW4gYXBwZW5kIHRvIGJvdGhcbiAgICAvLyBsaXN0cyBhbmQgdGFrZSBhZHZhbnRhZ2Ugb2Ygc3RydWN0dXJhbCBzaGFyaW5nLlxuICAgIC8vIFRPRE86IFBhc3MgYGN1cnJlbnRgIGFzIGFyZ3VtZW50XG5cbiAgICB2YXIgY3VycmVudCA9IHdvcmtJblByb2dyZXNzLmFsdGVybmF0ZTtcblxuICAgIGlmIChjdXJyZW50ICE9PSBudWxsKSB7XG4gICAgICAvLyBUaGlzIGlzIGFsd2F5cyBub24tbnVsbCBvbiBhIENsYXNzQ29tcG9uZW50IG9yIEhvc3RSb290XG4gICAgICB2YXIgY3VycmVudFF1ZXVlID0gY3VycmVudC51cGRhdGVRdWV1ZTtcbiAgICAgIHZhciBjdXJyZW50TGFzdEJhc2VVcGRhdGUgPSBjdXJyZW50UXVldWUubGFzdEJhc2VVcGRhdGU7XG5cbiAgICAgIGlmIChjdXJyZW50TGFzdEJhc2VVcGRhdGUgIT09IGxhc3RCYXNlVXBkYXRlKSB7XG4gICAgICAgIGlmIChjdXJyZW50TGFzdEJhc2VVcGRhdGUgPT09IG51bGwpIHtcbiAgICAgICAgICBjdXJyZW50UXVldWUuZmlyc3RCYXNlVXBkYXRlID0gZmlyc3RQZW5kaW5nVXBkYXRlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGN1cnJlbnRMYXN0QmFzZVVwZGF0ZS5uZXh0ID0gZmlyc3RQZW5kaW5nVXBkYXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgY3VycmVudFF1ZXVlLmxhc3RCYXNlVXBkYXRlID0gbGFzdFBlbmRpbmdVcGRhdGU7XG4gICAgICB9XG4gICAgfVxuICB9IC8vIFRoZXNlIHZhbHVlcyBtYXkgY2hhbmdlIGFzIHdlIHByb2Nlc3MgdGhlIHF1ZXVlLlxuXG5cbiAgaWYgKGZpcnN0QmFzZVVwZGF0ZSAhPT0gbnVsbCkge1xuICAgIC8vIEl0ZXJhdGUgdGhyb3VnaCB0aGUgbGlzdCBvZiB1cGRhdGVzIHRvIGNvbXB1dGUgdGhlIHJlc3VsdC5cbiAgICB2YXIgbmV3U3RhdGUgPSBxdWV1ZS5iYXNlU3RhdGU7IC8vIFRPRE86IERvbid0IG5lZWQgdG8gYWNjdW11bGF0ZSB0aGlzLiBJbnN0ZWFkLCB3ZSBjYW4gcmVtb3ZlIHJlbmRlckxhbmVzXG4gICAgLy8gZnJvbSB0aGUgb3JpZ2luYWwgbGFuZXMuXG5cbiAgICB2YXIgbmV3TGFuZXMgPSBOb0xhbmVzO1xuICAgIHZhciBuZXdCYXNlU3RhdGUgPSBudWxsO1xuICAgIHZhciBuZXdGaXJzdEJhc2VVcGRhdGUgPSBudWxsO1xuICAgIHZhciBuZXdMYXN0QmFzZVVwZGF0ZSA9IG51bGw7XG4gICAgdmFyIHVwZGF0ZSA9IGZpcnN0QmFzZVVwZGF0ZTtcblxuICAgIGRvIHtcbiAgICAgIHZhciB1cGRhdGVMYW5lID0gdXBkYXRlLmxhbmU7XG4gICAgICB2YXIgdXBkYXRlRXZlbnRUaW1lID0gdXBkYXRlLmV2ZW50VGltZTtcblxuICAgICAgaWYgKCFpc1N1YnNldE9mTGFuZXMocmVuZGVyTGFuZXMsIHVwZGF0ZUxhbmUpKSB7XG4gICAgICAgIC8vIFByaW9yaXR5IGlzIGluc3VmZmljaWVudC4gU2tpcCB0aGlzIHVwZGF0ZS4gSWYgdGhpcyBpcyB0aGUgZmlyc3RcbiAgICAgICAgLy8gc2tpcHBlZCB1cGRhdGUsIHRoZSBwcmV2aW91cyB1cGRhdGUvc3RhdGUgaXMgdGhlIG5ldyBiYXNlXG4gICAgICAgIC8vIHVwZGF0ZS9zdGF0ZS5cbiAgICAgICAgdmFyIGNsb25lID0ge1xuICAgICAgICAgIGV2ZW50VGltZTogdXBkYXRlRXZlbnRUaW1lLFxuICAgICAgICAgIGxhbmU6IHVwZGF0ZUxhbmUsXG4gICAgICAgICAgdGFnOiB1cGRhdGUudGFnLFxuICAgICAgICAgIHBheWxvYWQ6IHVwZGF0ZS5wYXlsb2FkLFxuICAgICAgICAgIGNhbGxiYWNrOiB1cGRhdGUuY2FsbGJhY2ssXG4gICAgICAgICAgbmV4dDogbnVsbFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChuZXdMYXN0QmFzZVVwZGF0ZSA9PT0gbnVsbCkge1xuICAgICAgICAgIG5ld0ZpcnN0QmFzZVVwZGF0ZSA9IG5ld0xhc3RCYXNlVXBkYXRlID0gY2xvbmU7XG4gICAgICAgICAgbmV3QmFzZVN0YXRlID0gbmV3U3RhdGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbmV3TGFzdEJhc2VVcGRhdGUgPSBuZXdMYXN0QmFzZVVwZGF0ZS5uZXh0ID0gY2xvbmU7XG4gICAgICAgIH0gLy8gVXBkYXRlIHRoZSByZW1haW5pbmcgcHJpb3JpdHkgaW4gdGhlIHF1ZXVlLlxuXG5cbiAgICAgICAgbmV3TGFuZXMgPSBtZXJnZUxhbmVzKG5ld0xhbmVzLCB1cGRhdGVMYW5lKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFRoaXMgdXBkYXRlIGRvZXMgaGF2ZSBzdWZmaWNpZW50IHByaW9yaXR5LlxuICAgICAgICBpZiAobmV3TGFzdEJhc2VVcGRhdGUgIT09IG51bGwpIHtcbiAgICAgICAgICB2YXIgX2Nsb25lID0ge1xuICAgICAgICAgICAgZXZlbnRUaW1lOiB1cGRhdGVFdmVudFRpbWUsXG4gICAgICAgICAgICAvLyBUaGlzIHVwZGF0ZSBpcyBnb2luZyB0byBiZSBjb21taXR0ZWQgc28gd2UgbmV2ZXIgd2FudCB1bmNvbW1pdFxuICAgICAgICAgICAgLy8gaXQuIFVzaW5nIE5vTGFuZSB3b3JrcyBiZWNhdXNlIDAgaXMgYSBzdWJzZXQgb2YgYWxsIGJpdG1hc2tzLCBzb1xuICAgICAgICAgICAgLy8gdGhpcyB3aWxsIG5ldmVyIGJlIHNraXBwZWQgYnkgdGhlIGNoZWNrIGFib3ZlLlxuICAgICAgICAgICAgbGFuZTogTm9MYW5lLFxuICAgICAgICAgICAgdGFnOiB1cGRhdGUudGFnLFxuICAgICAgICAgICAgcGF5bG9hZDogdXBkYXRlLnBheWxvYWQsXG4gICAgICAgICAgICBjYWxsYmFjazogdXBkYXRlLmNhbGxiYWNrLFxuICAgICAgICAgICAgbmV4dDogbnVsbFxuICAgICAgICAgIH07XG4gICAgICAgICAgbmV3TGFzdEJhc2VVcGRhdGUgPSBuZXdMYXN0QmFzZVVwZGF0ZS5uZXh0ID0gX2Nsb25lO1xuICAgICAgICB9IC8vIFByb2Nlc3MgdGhpcyB1cGRhdGUuXG5cblxuICAgICAgICBuZXdTdGF0ZSA9IGdldFN0YXRlRnJvbVVwZGF0ZSh3b3JrSW5Qcm9ncmVzcywgcXVldWUsIHVwZGF0ZSwgbmV3U3RhdGUsIHByb3BzLCBpbnN0YW5jZSk7XG4gICAgICAgIHZhciBjYWxsYmFjayA9IHVwZGF0ZS5jYWxsYmFjaztcblxuICAgICAgICBpZiAoY2FsbGJhY2sgIT09IG51bGwpIHtcbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBDYWxsYmFjaztcbiAgICAgICAgICB2YXIgZWZmZWN0cyA9IHF1ZXVlLmVmZmVjdHM7XG5cbiAgICAgICAgICBpZiAoZWZmZWN0cyA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcXVldWUuZWZmZWN0cyA9IFt1cGRhdGVdO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlZmZlY3RzLnB1c2godXBkYXRlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdXBkYXRlID0gdXBkYXRlLm5leHQ7XG5cbiAgICAgIGlmICh1cGRhdGUgPT09IG51bGwpIHtcbiAgICAgICAgcGVuZGluZ1F1ZXVlID0gcXVldWUuc2hhcmVkLnBlbmRpbmc7XG5cbiAgICAgICAgaWYgKHBlbmRpbmdRdWV1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIEFuIHVwZGF0ZSB3YXMgc2NoZWR1bGVkIGZyb20gaW5zaWRlIGEgcmVkdWNlci4gQWRkIHRoZSBuZXdcbiAgICAgICAgICAvLyBwZW5kaW5nIHVwZGF0ZXMgdG8gdGhlIGVuZCBvZiB0aGUgbGlzdCBhbmQga2VlcCBwcm9jZXNzaW5nLlxuICAgICAgICAgIHZhciBfbGFzdFBlbmRpbmdVcGRhdGUgPSBwZW5kaW5nUXVldWU7IC8vIEludGVudGlvbmFsbHkgdW5zb3VuZC4gUGVuZGluZyB1cGRhdGVzIGZvcm0gYSBjaXJjdWxhciBsaXN0LCBidXQgd2VcbiAgICAgICAgICAvLyB1bnJhdmVsIHRoZW0gd2hlbiB0cmFuc2ZlcnJpbmcgdGhlbSB0byB0aGUgYmFzZSBxdWV1ZS5cblxuICAgICAgICAgIHZhciBfZmlyc3RQZW5kaW5nVXBkYXRlID0gX2xhc3RQZW5kaW5nVXBkYXRlLm5leHQ7XG4gICAgICAgICAgX2xhc3RQZW5kaW5nVXBkYXRlLm5leHQgPSBudWxsO1xuICAgICAgICAgIHVwZGF0ZSA9IF9maXJzdFBlbmRpbmdVcGRhdGU7XG4gICAgICAgICAgcXVldWUubGFzdEJhc2VVcGRhdGUgPSBfbGFzdFBlbmRpbmdVcGRhdGU7XG4gICAgICAgICAgcXVldWUuc2hhcmVkLnBlbmRpbmcgPSBudWxsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSB3aGlsZSAodHJ1ZSk7XG5cbiAgICBpZiAobmV3TGFzdEJhc2VVcGRhdGUgPT09IG51bGwpIHtcbiAgICAgIG5ld0Jhc2VTdGF0ZSA9IG5ld1N0YXRlO1xuICAgIH1cblxuICAgIHF1ZXVlLmJhc2VTdGF0ZSA9IG5ld0Jhc2VTdGF0ZTtcbiAgICBxdWV1ZS5maXJzdEJhc2VVcGRhdGUgPSBuZXdGaXJzdEJhc2VVcGRhdGU7XG4gICAgcXVldWUubGFzdEJhc2VVcGRhdGUgPSBuZXdMYXN0QmFzZVVwZGF0ZTsgLy8gU2V0IHRoZSByZW1haW5pbmcgZXhwaXJhdGlvbiB0aW1lIHRvIGJlIHdoYXRldmVyIGlzIHJlbWFpbmluZyBpbiB0aGUgcXVldWUuXG4gICAgLy8gVGhpcyBzaG91bGQgYmUgZmluZSBiZWNhdXNlIHRoZSBvbmx5IHR3byBvdGhlciB0aGluZ3MgdGhhdCBjb250cmlidXRlIHRvXG4gICAgLy8gZXhwaXJhdGlvbiB0aW1lIGFyZSBwcm9wcyBhbmQgY29udGV4dC4gV2UncmUgYWxyZWFkeSBpbiB0aGUgbWlkZGxlIG9mIHRoZVxuICAgIC8vIGJlZ2luIHBoYXNlIGJ5IHRoZSB0aW1lIHdlIHN0YXJ0IHByb2Nlc3NpbmcgdGhlIHF1ZXVlLCBzbyB3ZSd2ZSBhbHJlYWR5XG4gICAgLy8gZGVhbHQgd2l0aCB0aGUgcHJvcHMuIENvbnRleHQgaW4gY29tcG9uZW50cyB0aGF0IHNwZWNpZnlcbiAgICAvLyBzaG91bGRDb21wb25lbnRVcGRhdGUgaXMgdHJpY2t5OyBidXQgd2UnbGwgaGF2ZSB0byBhY2NvdW50IGZvclxuICAgIC8vIHRoYXQgcmVnYXJkbGVzcy5cblxuICAgIG1hcmtTa2lwcGVkVXBkYXRlTGFuZXMobmV3TGFuZXMpO1xuICAgIHdvcmtJblByb2dyZXNzLmxhbmVzID0gbmV3TGFuZXM7XG4gICAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IG5ld1N0YXRlO1xuICB9XG5cbiAge1xuICAgIGN1cnJlbnRseVByb2Nlc3NpbmdRdWV1ZSA9IG51bGw7XG4gIH1cbn1cblxuZnVuY3Rpb24gY2FsbENhbGxiYWNrKGNhbGxiYWNrLCBjb250ZXh0KSB7XG4gIGlmICghKHR5cGVvZiBjYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykpIHtcbiAgICB7XG4gICAgICB0aHJvdyBFcnJvciggXCJJbnZhbGlkIGFyZ3VtZW50IHBhc3NlZCBhcyBjYWxsYmFjay4gRXhwZWN0ZWQgYSBmdW5jdGlvbi4gSW5zdGVhZCByZWNlaXZlZDogXCIgKyBjYWxsYmFjayApO1xuICAgIH1cbiAgfVxuXG4gIGNhbGxiYWNrLmNhbGwoY29udGV4dCk7XG59XG5cbmZ1bmN0aW9uIHJlc2V0SGFzRm9yY2VVcGRhdGVCZWZvcmVQcm9jZXNzaW5nKCkge1xuICBoYXNGb3JjZVVwZGF0ZSA9IGZhbHNlO1xufVxuZnVuY3Rpb24gY2hlY2tIYXNGb3JjZVVwZGF0ZUFmdGVyUHJvY2Vzc2luZygpIHtcbiAgcmV0dXJuIGhhc0ZvcmNlVXBkYXRlO1xufVxuZnVuY3Rpb24gY29tbWl0VXBkYXRlUXVldWUoZmluaXNoZWRXb3JrLCBmaW5pc2hlZFF1ZXVlLCBpbnN0YW5jZSkge1xuICAvLyBDb21taXQgdGhlIGVmZmVjdHNcbiAgdmFyIGVmZmVjdHMgPSBmaW5pc2hlZFF1ZXVlLmVmZmVjdHM7XG4gIGZpbmlzaGVkUXVldWUuZWZmZWN0cyA9IG51bGw7XG5cbiAgaWYgKGVmZmVjdHMgIT09IG51bGwpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVmZmVjdHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBlZmZlY3QgPSBlZmZlY3RzW2ldO1xuICAgICAgdmFyIGNhbGxiYWNrID0gZWZmZWN0LmNhbGxiYWNrO1xuXG4gICAgICBpZiAoY2FsbGJhY2sgIT09IG51bGwpIHtcbiAgICAgICAgZWZmZWN0LmNhbGxiYWNrID0gbnVsbDtcbiAgICAgICAgY2FsbENhbGxiYWNrKGNhbGxiYWNrLCBpbnN0YW5jZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbnZhciBmYWtlSW50ZXJuYWxJbnN0YW5jZSA9IHt9O1xudmFyIGlzQXJyYXkgPSBBcnJheS5pc0FycmF5OyAvLyBSZWFjdC5Db21wb25lbnQgdXNlcyBhIHNoYXJlZCBmcm96ZW4gb2JqZWN0IGJ5IGRlZmF1bHQuXG4vLyBXZSdsbCB1c2UgaXQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgd2UgbmVlZCB0byBpbml0aWFsaXplIGxlZ2FjeSByZWZzLlxuXG52YXIgZW1wdHlSZWZzT2JqZWN0ID0gbmV3IFJlYWN0LkNvbXBvbmVudCgpLnJlZnM7XG52YXIgZGlkV2FybkFib3V0U3RhdGVBc3NpZ25tZW50Rm9yQ29tcG9uZW50O1xudmFyIGRpZFdhcm5BYm91dFVuaW5pdGlhbGl6ZWRTdGF0ZTtcbnZhciBkaWRXYXJuQWJvdXRHZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZVdpdGhvdXREaWRVcGRhdGU7XG52YXIgZGlkV2FybkFib3V0TGVnYWN5TGlmZWN5Y2xlc0FuZERlcml2ZWRTdGF0ZTtcbnZhciBkaWRXYXJuQWJvdXRVbmRlZmluZWREZXJpdmVkU3RhdGU7XG52YXIgd2Fybk9uVW5kZWZpbmVkRGVyaXZlZFN0YXRlO1xudmFyIHdhcm5PbkludmFsaWRDYWxsYmFjaztcbnZhciBkaWRXYXJuQWJvdXREaXJlY3RseUFzc2lnbmluZ1Byb3BzVG9TdGF0ZTtcbnZhciBkaWRXYXJuQWJvdXRDb250ZXh0VHlwZUFuZENvbnRleHRUeXBlcztcbnZhciBkaWRXYXJuQWJvdXRJbnZhbGlkYXRlQ29udGV4dFR5cGU7XG5cbntcbiAgZGlkV2FybkFib3V0U3RhdGVBc3NpZ25tZW50Rm9yQ29tcG9uZW50ID0gbmV3IFNldCgpO1xuICBkaWRXYXJuQWJvdXRVbmluaXRpYWxpemVkU3RhdGUgPSBuZXcgU2V0KCk7XG4gIGRpZFdhcm5BYm91dEdldFNuYXBzaG90QmVmb3JlVXBkYXRlV2l0aG91dERpZFVwZGF0ZSA9IG5ldyBTZXQoKTtcbiAgZGlkV2FybkFib3V0TGVnYWN5TGlmZWN5Y2xlc0FuZERlcml2ZWRTdGF0ZSA9IG5ldyBTZXQoKTtcbiAgZGlkV2FybkFib3V0RGlyZWN0bHlBc3NpZ25pbmdQcm9wc1RvU3RhdGUgPSBuZXcgU2V0KCk7XG4gIGRpZFdhcm5BYm91dFVuZGVmaW5lZERlcml2ZWRTdGF0ZSA9IG5ldyBTZXQoKTtcbiAgZGlkV2FybkFib3V0Q29udGV4dFR5cGVBbmRDb250ZXh0VHlwZXMgPSBuZXcgU2V0KCk7XG4gIGRpZFdhcm5BYm91dEludmFsaWRhdGVDb250ZXh0VHlwZSA9IG5ldyBTZXQoKTtcbiAgdmFyIGRpZFdhcm5PbkludmFsaWRDYWxsYmFjayA9IG5ldyBTZXQoKTtcblxuICB3YXJuT25JbnZhbGlkQ2FsbGJhY2sgPSBmdW5jdGlvbiAoY2FsbGJhY2ssIGNhbGxlck5hbWUpIHtcbiAgICBpZiAoY2FsbGJhY2sgPT09IG51bGwgfHwgdHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIGtleSA9IGNhbGxlck5hbWUgKyAnXycgKyBjYWxsYmFjaztcblxuICAgIGlmICghZGlkV2Fybk9uSW52YWxpZENhbGxiYWNrLmhhcyhrZXkpKSB7XG4gICAgICBkaWRXYXJuT25JbnZhbGlkQ2FsbGJhY2suYWRkKGtleSk7XG5cbiAgICAgIGVycm9yKCclcyguLi4pOiBFeHBlY3RlZCB0aGUgbGFzdCBvcHRpb25hbCBgY2FsbGJhY2tgIGFyZ3VtZW50IHRvIGJlIGEgJyArICdmdW5jdGlvbi4gSW5zdGVhZCByZWNlaXZlZDogJXMuJywgY2FsbGVyTmFtZSwgY2FsbGJhY2spO1xuICAgIH1cbiAgfTtcblxuICB3YXJuT25VbmRlZmluZWREZXJpdmVkU3RhdGUgPSBmdW5jdGlvbiAodHlwZSwgcGFydGlhbFN0YXRlKSB7XG4gICAgaWYgKHBhcnRpYWxTdGF0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB2YXIgY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWUodHlwZSkgfHwgJ0NvbXBvbmVudCc7XG5cbiAgICAgIGlmICghZGlkV2FybkFib3V0VW5kZWZpbmVkRGVyaXZlZFN0YXRlLmhhcyhjb21wb25lbnROYW1lKSkge1xuICAgICAgICBkaWRXYXJuQWJvdXRVbmRlZmluZWREZXJpdmVkU3RhdGUuYWRkKGNvbXBvbmVudE5hbWUpO1xuXG4gICAgICAgIGVycm9yKCclcy5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMoKTogQSB2YWxpZCBzdGF0ZSBvYmplY3QgKG9yIG51bGwpIG11c3QgYmUgcmV0dXJuZWQuICcgKyAnWW91IGhhdmUgcmV0dXJuZWQgdW5kZWZpbmVkLicsIGNvbXBvbmVudE5hbWUpO1xuICAgICAgfVxuICAgIH1cbiAgfTsgLy8gVGhpcyBpcyBzbyBncm9zcyBidXQgaXQncyBhdCBsZWFzdCBub24tY3JpdGljYWwgYW5kIGNhbiBiZSByZW1vdmVkIGlmXG4gIC8vIGl0IGNhdXNlcyBwcm9ibGVtcy4gVGhpcyBpcyBtZWFudCB0byBnaXZlIGEgbmljZXIgZXJyb3IgbWVzc2FnZSBmb3JcbiAgLy8gUmVhY3RET00xNS51bnN0YWJsZV9yZW5kZXJTdWJ0cmVlSW50b0NvbnRhaW5lcihyZWFjdERPTTE2Q29tcG9uZW50LFxuICAvLyAuLi4pKSB3aGljaCBvdGhlcndpc2UgdGhyb3dzIGEgXCJfcHJvY2Vzc0NoaWxkQ29udGV4dCBpcyBub3QgYSBmdW5jdGlvblwiXG4gIC8vIGV4Y2VwdGlvbi5cblxuXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmYWtlSW50ZXJuYWxJbnN0YW5jZSwgJ19wcm9jZXNzQ2hpbGRDb250ZXh0Jywge1xuICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgIHZhbHVlOiBmdW5jdGlvbiAoKSB7XG4gICAgICB7XG4gICAgICAgIHtcbiAgICAgICAgICB0aHJvdyBFcnJvciggXCJfcHJvY2Vzc0NoaWxkQ29udGV4dCBpcyBub3QgYXZhaWxhYmxlIGluIFJlYWN0IDE2Ky4gVGhpcyBsaWtlbHkgbWVhbnMgeW91IGhhdmUgbXVsdGlwbGUgY29waWVzIG9mIFJlYWN0IGFuZCBhcmUgYXR0ZW1wdGluZyB0byBuZXN0IGEgUmVhY3QgMTUgdHJlZSBpbnNpZGUgYSBSZWFjdCAxNiB0cmVlIHVzaW5nIHVuc3RhYmxlX3JlbmRlclN1YnRyZWVJbnRvQ29udGFpbmVyLCB3aGljaCBpc24ndCBzdXBwb3J0ZWQuIFRyeSB0byBtYWtlIHN1cmUgeW91IGhhdmUgb25seSBvbmUgY29weSBvZiBSZWFjdCAoYW5kIGlkZWFsbHksIHN3aXRjaCB0byBSZWFjdERPTS5jcmVhdGVQb3J0YWwpLlwiICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuICBPYmplY3QuZnJlZXplKGZha2VJbnRlcm5hbEluc3RhbmNlKTtcbn1cblxuZnVuY3Rpb24gYXBwbHlEZXJpdmVkU3RhdGVGcm9tUHJvcHMod29ya0luUHJvZ3Jlc3MsIGN0b3IsIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcywgbmV4dFByb3BzKSB7XG4gIHZhciBwcmV2U3RhdGUgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlO1xuXG4gIHtcbiAgICBpZiAoIHdvcmtJblByb2dyZXNzLm1vZGUgJiBTdHJpY3RNb2RlKSB7XG4gICAgICBkaXNhYmxlTG9ncygpO1xuXG4gICAgICB0cnkge1xuICAgICAgICAvLyBJbnZva2UgdGhlIGZ1bmN0aW9uIGFuIGV4dHJhIHRpbWUgdG8gaGVscCBkZXRlY3Qgc2lkZS1lZmZlY3RzLlxuICAgICAgICBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMobmV4dFByb3BzLCBwcmV2U3RhdGUpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgcmVlbmFibGVMb2dzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdmFyIHBhcnRpYWxTdGF0ZSA9IGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyhuZXh0UHJvcHMsIHByZXZTdGF0ZSk7XG5cbiAge1xuICAgIHdhcm5PblVuZGVmaW5lZERlcml2ZWRTdGF0ZShjdG9yLCBwYXJ0aWFsU3RhdGUpO1xuICB9IC8vIE1lcmdlIHRoZSBwYXJ0aWFsIHN0YXRlIGFuZCB0aGUgcHJldmlvdXMgc3RhdGUuXG5cblxuICB2YXIgbWVtb2l6ZWRTdGF0ZSA9IHBhcnRpYWxTdGF0ZSA9PT0gbnVsbCB8fCBwYXJ0aWFsU3RhdGUgPT09IHVuZGVmaW5lZCA/IHByZXZTdGF0ZSA6IF9hc3NpZ24oe30sIHByZXZTdGF0ZSwgcGFydGlhbFN0YXRlKTtcbiAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IG1lbW9pemVkU3RhdGU7IC8vIE9uY2UgdGhlIHVwZGF0ZSBxdWV1ZSBpcyBlbXB0eSwgcGVyc2lzdCB0aGUgZGVyaXZlZCBzdGF0ZSBvbnRvIHRoZVxuICAvLyBiYXNlIHN0YXRlLlxuXG4gIGlmICh3b3JrSW5Qcm9ncmVzcy5sYW5lcyA9PT0gTm9MYW5lcykge1xuICAgIC8vIFF1ZXVlIGlzIGFsd2F5cyBub24tbnVsbCBmb3IgY2xhc3Nlc1xuICAgIHZhciB1cGRhdGVRdWV1ZSA9IHdvcmtJblByb2dyZXNzLnVwZGF0ZVF1ZXVlO1xuICAgIHVwZGF0ZVF1ZXVlLmJhc2VTdGF0ZSA9IG1lbW9pemVkU3RhdGU7XG4gIH1cbn1cbnZhciBjbGFzc0NvbXBvbmVudFVwZGF0ZXIgPSB7XG4gIGlzTW91bnRlZDogaXNNb3VudGVkLFxuICBlbnF1ZXVlU2V0U3RhdGU6IGZ1bmN0aW9uIChpbnN0LCBwYXlsb2FkLCBjYWxsYmFjaykge1xuICAgIHZhciBmaWJlciA9IGdldChpbnN0KTtcbiAgICB2YXIgZXZlbnRUaW1lID0gcmVxdWVzdEV2ZW50VGltZSgpO1xuICAgIHZhciBsYW5lID0gcmVxdWVzdFVwZGF0ZUxhbmUoZmliZXIpO1xuICAgIHZhciB1cGRhdGUgPSBjcmVhdGVVcGRhdGUoZXZlbnRUaW1lLCBsYW5lKTtcbiAgICB1cGRhdGUucGF5bG9hZCA9IHBheWxvYWQ7XG5cbiAgICBpZiAoY2FsbGJhY2sgIT09IHVuZGVmaW5lZCAmJiBjYWxsYmFjayAhPT0gbnVsbCkge1xuICAgICAge1xuICAgICAgICB3YXJuT25JbnZhbGlkQ2FsbGJhY2soY2FsbGJhY2ssICdzZXRTdGF0ZScpO1xuICAgICAgfVxuXG4gICAgICB1cGRhdGUuY2FsbGJhY2sgPSBjYWxsYmFjaztcbiAgICB9XG5cbiAgICBlbnF1ZXVlVXBkYXRlKGZpYmVyLCB1cGRhdGUpO1xuICAgIHNjaGVkdWxlVXBkYXRlT25GaWJlcihmaWJlciwgbGFuZSwgZXZlbnRUaW1lKTtcbiAgfSxcbiAgZW5xdWV1ZVJlcGxhY2VTdGF0ZTogZnVuY3Rpb24gKGluc3QsIHBheWxvYWQsIGNhbGxiYWNrKSB7XG4gICAgdmFyIGZpYmVyID0gZ2V0KGluc3QpO1xuICAgIHZhciBldmVudFRpbWUgPSByZXF1ZXN0RXZlbnRUaW1lKCk7XG4gICAgdmFyIGxhbmUgPSByZXF1ZXN0VXBkYXRlTGFuZShmaWJlcik7XG4gICAgdmFyIHVwZGF0ZSA9IGNyZWF0ZVVwZGF0ZShldmVudFRpbWUsIGxhbmUpO1xuICAgIHVwZGF0ZS50YWcgPSBSZXBsYWNlU3RhdGU7XG4gICAgdXBkYXRlLnBheWxvYWQgPSBwYXlsb2FkO1xuXG4gICAgaWYgKGNhbGxiYWNrICE9PSB1bmRlZmluZWQgJiYgY2FsbGJhY2sgIT09IG51bGwpIHtcbiAgICAgIHtcbiAgICAgICAgd2Fybk9uSW52YWxpZENhbGxiYWNrKGNhbGxiYWNrLCAncmVwbGFjZVN0YXRlJyk7XG4gICAgICB9XG5cbiAgICAgIHVwZGF0ZS5jYWxsYmFjayA9IGNhbGxiYWNrO1xuICAgIH1cblxuICAgIGVucXVldWVVcGRhdGUoZmliZXIsIHVwZGF0ZSk7XG4gICAgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKGZpYmVyLCBsYW5lLCBldmVudFRpbWUpO1xuICB9LFxuICBlbnF1ZXVlRm9yY2VVcGRhdGU6IGZ1bmN0aW9uIChpbnN0LCBjYWxsYmFjaykge1xuICAgIHZhciBmaWJlciA9IGdldChpbnN0KTtcbiAgICB2YXIgZXZlbnRUaW1lID0gcmVxdWVzdEV2ZW50VGltZSgpO1xuICAgIHZhciBsYW5lID0gcmVxdWVzdFVwZGF0ZUxhbmUoZmliZXIpO1xuICAgIHZhciB1cGRhdGUgPSBjcmVhdGVVcGRhdGUoZXZlbnRUaW1lLCBsYW5lKTtcbiAgICB1cGRhdGUudGFnID0gRm9yY2VVcGRhdGU7XG5cbiAgICBpZiAoY2FsbGJhY2sgIT09IHVuZGVmaW5lZCAmJiBjYWxsYmFjayAhPT0gbnVsbCkge1xuICAgICAge1xuICAgICAgICB3YXJuT25JbnZhbGlkQ2FsbGJhY2soY2FsbGJhY2ssICdmb3JjZVVwZGF0ZScpO1xuICAgICAgfVxuXG4gICAgICB1cGRhdGUuY2FsbGJhY2sgPSBjYWxsYmFjaztcbiAgICB9XG5cbiAgICBlbnF1ZXVlVXBkYXRlKGZpYmVyLCB1cGRhdGUpO1xuICAgIHNjaGVkdWxlVXBkYXRlT25GaWJlcihmaWJlciwgbGFuZSwgZXZlbnRUaW1lKTtcbiAgfVxufTtcblxuZnVuY3Rpb24gY2hlY2tTaG91bGRDb21wb25lbnRVcGRhdGUod29ya0luUHJvZ3Jlc3MsIGN0b3IsIG9sZFByb3BzLCBuZXdQcm9wcywgb2xkU3RhdGUsIG5ld1N0YXRlLCBuZXh0Q29udGV4dCkge1xuICB2YXIgaW5zdGFuY2UgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG5cbiAgaWYgKHR5cGVvZiBpbnN0YW5jZS5zaG91bGRDb21wb25lbnRVcGRhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICB7XG4gICAgICBpZiAoIHdvcmtJblByb2dyZXNzLm1vZGUgJiBTdHJpY3RNb2RlKSB7XG4gICAgICAgIGRpc2FibGVMb2dzKCk7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAvLyBJbnZva2UgdGhlIGZ1bmN0aW9uIGFuIGV4dHJhIHRpbWUgdG8gaGVscCBkZXRlY3Qgc2lkZS1lZmZlY3RzLlxuICAgICAgICAgIGluc3RhbmNlLnNob3VsZENvbXBvbmVudFVwZGF0ZShuZXdQcm9wcywgbmV3U3RhdGUsIG5leHRDb250ZXh0KTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICByZWVuYWJsZUxvZ3MoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBzaG91bGRVcGRhdGUgPSBpbnN0YW5jZS5zaG91bGRDb21wb25lbnRVcGRhdGUobmV3UHJvcHMsIG5ld1N0YXRlLCBuZXh0Q29udGV4dCk7XG5cbiAgICB7XG4gICAgICBpZiAoc2hvdWxkVXBkYXRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZXJyb3IoJyVzLnNob3VsZENvbXBvbmVudFVwZGF0ZSgpOiBSZXR1cm5lZCB1bmRlZmluZWQgaW5zdGVhZCBvZiBhICcgKyAnYm9vbGVhbiB2YWx1ZS4gTWFrZSBzdXJlIHRvIHJldHVybiB0cnVlIG9yIGZhbHNlLicsIGdldENvbXBvbmVudE5hbWUoY3RvcikgfHwgJ0NvbXBvbmVudCcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzaG91bGRVcGRhdGU7XG4gIH1cblxuICBpZiAoY3Rvci5wcm90b3R5cGUgJiYgY3Rvci5wcm90b3R5cGUuaXNQdXJlUmVhY3RDb21wb25lbnQpIHtcbiAgICByZXR1cm4gIXNoYWxsb3dFcXVhbChvbGRQcm9wcywgbmV3UHJvcHMpIHx8ICFzaGFsbG93RXF1YWwob2xkU3RhdGUsIG5ld1N0YXRlKTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBjaGVja0NsYXNzSW5zdGFuY2Uod29ya0luUHJvZ3Jlc3MsIGN0b3IsIG5ld1Byb3BzKSB7XG4gIHZhciBpbnN0YW5jZSA9IHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZTtcblxuICB7XG4gICAgdmFyIG5hbWUgPSBnZXRDb21wb25lbnROYW1lKGN0b3IpIHx8ICdDb21wb25lbnQnO1xuICAgIHZhciByZW5kZXJQcmVzZW50ID0gaW5zdGFuY2UucmVuZGVyO1xuXG4gICAgaWYgKCFyZW5kZXJQcmVzZW50KSB7XG4gICAgICBpZiAoY3Rvci5wcm90b3R5cGUgJiYgdHlwZW9mIGN0b3IucHJvdG90eXBlLnJlbmRlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBlcnJvcignJXMoLi4uKTogTm8gYHJlbmRlcmAgbWV0aG9kIGZvdW5kIG9uIHRoZSByZXR1cm5lZCBjb21wb25lbnQgJyArICdpbnN0YW5jZTogZGlkIHlvdSBhY2NpZGVudGFsbHkgcmV0dXJuIGFuIG9iamVjdCBmcm9tIHRoZSBjb25zdHJ1Y3Rvcj8nLCBuYW1lKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVycm9yKCclcyguLi4pOiBObyBgcmVuZGVyYCBtZXRob2QgZm91bmQgb24gdGhlIHJldHVybmVkIGNvbXBvbmVudCAnICsgJ2luc3RhbmNlOiB5b3UgbWF5IGhhdmUgZm9yZ290dGVuIHRvIGRlZmluZSBgcmVuZGVyYC4nLCBuYW1lKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaW5zdGFuY2UuZ2V0SW5pdGlhbFN0YXRlICYmICFpbnN0YW5jZS5nZXRJbml0aWFsU3RhdGUuaXNSZWFjdENsYXNzQXBwcm92ZWQgJiYgIWluc3RhbmNlLnN0YXRlKSB7XG4gICAgICBlcnJvcignZ2V0SW5pdGlhbFN0YXRlIHdhcyBkZWZpbmVkIG9uICVzLCBhIHBsYWluIEphdmFTY3JpcHQgY2xhc3MuICcgKyAnVGhpcyBpcyBvbmx5IHN1cHBvcnRlZCBmb3IgY2xhc3NlcyBjcmVhdGVkIHVzaW5nIFJlYWN0LmNyZWF0ZUNsYXNzLiAnICsgJ0RpZCB5b3UgbWVhbiB0byBkZWZpbmUgYSBzdGF0ZSBwcm9wZXJ0eSBpbnN0ZWFkPycsIG5hbWUpO1xuICAgIH1cblxuICAgIGlmIChpbnN0YW5jZS5nZXREZWZhdWx0UHJvcHMgJiYgIWluc3RhbmNlLmdldERlZmF1bHRQcm9wcy5pc1JlYWN0Q2xhc3NBcHByb3ZlZCkge1xuICAgICAgZXJyb3IoJ2dldERlZmF1bHRQcm9wcyB3YXMgZGVmaW5lZCBvbiAlcywgYSBwbGFpbiBKYXZhU2NyaXB0IGNsYXNzLiAnICsgJ1RoaXMgaXMgb25seSBzdXBwb3J0ZWQgZm9yIGNsYXNzZXMgY3JlYXRlZCB1c2luZyBSZWFjdC5jcmVhdGVDbGFzcy4gJyArICdVc2UgYSBzdGF0aWMgcHJvcGVydHkgdG8gZGVmaW5lIGRlZmF1bHRQcm9wcyBpbnN0ZWFkLicsIG5hbWUpO1xuICAgIH1cblxuICAgIGlmIChpbnN0YW5jZS5wcm9wVHlwZXMpIHtcbiAgICAgIGVycm9yKCdwcm9wVHlwZXMgd2FzIGRlZmluZWQgYXMgYW4gaW5zdGFuY2UgcHJvcGVydHkgb24gJXMuIFVzZSBhIHN0YXRpYyAnICsgJ3Byb3BlcnR5IHRvIGRlZmluZSBwcm9wVHlwZXMgaW5zdGVhZC4nLCBuYW1lKTtcbiAgICB9XG5cbiAgICBpZiAoaW5zdGFuY2UuY29udGV4dFR5cGUpIHtcbiAgICAgIGVycm9yKCdjb250ZXh0VHlwZSB3YXMgZGVmaW5lZCBhcyBhbiBpbnN0YW5jZSBwcm9wZXJ0eSBvbiAlcy4gVXNlIGEgc3RhdGljICcgKyAncHJvcGVydHkgdG8gZGVmaW5lIGNvbnRleHRUeXBlIGluc3RlYWQuJywgbmFtZSk7XG4gICAgfVxuXG4gICAge1xuICAgICAgaWYgKGluc3RhbmNlLmNvbnRleHRUeXBlcykge1xuICAgICAgICBlcnJvcignY29udGV4dFR5cGVzIHdhcyBkZWZpbmVkIGFzIGFuIGluc3RhbmNlIHByb3BlcnR5IG9uICVzLiBVc2UgYSBzdGF0aWMgJyArICdwcm9wZXJ0eSB0byBkZWZpbmUgY29udGV4dFR5cGVzIGluc3RlYWQuJywgbmFtZSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChjdG9yLmNvbnRleHRUeXBlICYmIGN0b3IuY29udGV4dFR5cGVzICYmICFkaWRXYXJuQWJvdXRDb250ZXh0VHlwZUFuZENvbnRleHRUeXBlcy5oYXMoY3RvcikpIHtcbiAgICAgICAgZGlkV2FybkFib3V0Q29udGV4dFR5cGVBbmRDb250ZXh0VHlwZXMuYWRkKGN0b3IpO1xuXG4gICAgICAgIGVycm9yKCclcyBkZWNsYXJlcyBib3RoIGNvbnRleHRUeXBlcyBhbmQgY29udGV4dFR5cGUgc3RhdGljIHByb3BlcnRpZXMuICcgKyAnVGhlIGxlZ2FjeSBjb250ZXh0VHlwZXMgcHJvcGVydHkgd2lsbCBiZSBpZ25vcmVkLicsIG5hbWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50U2hvdWxkVXBkYXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBlcnJvcignJXMgaGFzIGEgbWV0aG9kIGNhbGxlZCAnICsgJ2NvbXBvbmVudFNob3VsZFVwZGF0ZSgpLiBEaWQgeW91IG1lYW4gc2hvdWxkQ29tcG9uZW50VXBkYXRlKCk/ICcgKyAnVGhlIG5hbWUgaXMgcGhyYXNlZCBhcyBhIHF1ZXN0aW9uIGJlY2F1c2UgdGhlIGZ1bmN0aW9uIGlzICcgKyAnZXhwZWN0ZWQgdG8gcmV0dXJuIGEgdmFsdWUuJywgbmFtZSk7XG4gICAgfVxuXG4gICAgaWYgKGN0b3IucHJvdG90eXBlICYmIGN0b3IucHJvdG90eXBlLmlzUHVyZVJlYWN0Q29tcG9uZW50ICYmIHR5cGVvZiBpbnN0YW5jZS5zaG91bGRDb21wb25lbnRVcGRhdGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBlcnJvcignJXMgaGFzIGEgbWV0aG9kIGNhbGxlZCBzaG91bGRDb21wb25lbnRVcGRhdGUoKS4gJyArICdzaG91bGRDb21wb25lbnRVcGRhdGUgc2hvdWxkIG5vdCBiZSB1c2VkIHdoZW4gZXh0ZW5kaW5nIFJlYWN0LlB1cmVDb21wb25lbnQuICcgKyAnUGxlYXNlIGV4dGVuZCBSZWFjdC5Db21wb25lbnQgaWYgc2hvdWxkQ29tcG9uZW50VXBkYXRlIGlzIHVzZWQuJywgZ2V0Q29tcG9uZW50TmFtZShjdG9yKSB8fCAnQSBwdXJlIGNvbXBvbmVudCcpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50RGlkVW5tb3VudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgZXJyb3IoJyVzIGhhcyBhIG1ldGhvZCBjYWxsZWQgJyArICdjb21wb25lbnREaWRVbm1vdW50KCkuIEJ1dCB0aGVyZSBpcyBubyBzdWNoIGxpZmVjeWNsZSBtZXRob2QuICcgKyAnRGlkIHlvdSBtZWFuIGNvbXBvbmVudFdpbGxVbm1vdW50KCk/JywgbmFtZSk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnREaWRSZWNlaXZlUHJvcHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGVycm9yKCclcyBoYXMgYSBtZXRob2QgY2FsbGVkICcgKyAnY29tcG9uZW50RGlkUmVjZWl2ZVByb3BzKCkuIEJ1dCB0aGVyZSBpcyBubyBzdWNoIGxpZmVjeWNsZSBtZXRob2QuICcgKyAnSWYgeW91IG1lYW50IHRvIHVwZGF0ZSB0aGUgc3RhdGUgaW4gcmVzcG9uc2UgdG8gY2hhbmdpbmcgcHJvcHMsICcgKyAndXNlIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMoKS4gSWYgeW91IG1lYW50IHRvIGZldGNoIGRhdGEgb3IgJyArICdydW4gc2lkZS1lZmZlY3RzIG9yIG11dGF0aW9ucyBhZnRlciBSZWFjdCBoYXMgdXBkYXRlZCB0aGUgVUksIHVzZSBjb21wb25lbnREaWRVcGRhdGUoKS4nLCBuYW1lKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudFdpbGxSZWNpZXZlUHJvcHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGVycm9yKCclcyBoYXMgYSBtZXRob2QgY2FsbGVkICcgKyAnY29tcG9uZW50V2lsbFJlY2lldmVQcm9wcygpLiBEaWQgeW91IG1lYW4gY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcygpPycsIG5hbWUpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNpZXZlUHJvcHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGVycm9yKCclcyBoYXMgYSBtZXRob2QgY2FsbGVkICcgKyAnVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNpZXZlUHJvcHMoKS4gRGlkIHlvdSBtZWFuIFVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKCk/JywgbmFtZSk7XG4gICAgfVxuXG4gICAgdmFyIGhhc011dGF0ZWRQcm9wcyA9IGluc3RhbmNlLnByb3BzICE9PSBuZXdQcm9wcztcblxuICAgIGlmIChpbnN0YW5jZS5wcm9wcyAhPT0gdW5kZWZpbmVkICYmIGhhc011dGF0ZWRQcm9wcykge1xuICAgICAgZXJyb3IoJyVzKC4uLik6IFdoZW4gY2FsbGluZyBzdXBlcigpIGluIGAlc2AsIG1ha2Ugc3VyZSB0byBwYXNzICcgKyBcInVwIHRoZSBzYW1lIHByb3BzIHRoYXQgeW91ciBjb21wb25lbnQncyBjb25zdHJ1Y3RvciB3YXMgcGFzc2VkLlwiLCBuYW1lLCBuYW1lKTtcbiAgICB9XG5cbiAgICBpZiAoaW5zdGFuY2UuZGVmYXVsdFByb3BzKSB7XG4gICAgICBlcnJvcignU2V0dGluZyBkZWZhdWx0UHJvcHMgYXMgYW4gaW5zdGFuY2UgcHJvcGVydHkgb24gJXMgaXMgbm90IHN1cHBvcnRlZCBhbmQgd2lsbCBiZSBpZ25vcmVkLicgKyAnIEluc3RlYWQsIGRlZmluZSBkZWZhdWx0UHJvcHMgYXMgYSBzdGF0aWMgcHJvcGVydHkgb24gJXMuJywgbmFtZSwgbmFtZSk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50RGlkVXBkYXRlICE9PSAnZnVuY3Rpb24nICYmICFkaWRXYXJuQWJvdXRHZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZVdpdGhvdXREaWRVcGRhdGUuaGFzKGN0b3IpKSB7XG4gICAgICBkaWRXYXJuQWJvdXRHZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZVdpdGhvdXREaWRVcGRhdGUuYWRkKGN0b3IpO1xuXG4gICAgICBlcnJvcignJXM6IGdldFNuYXBzaG90QmVmb3JlVXBkYXRlKCkgc2hvdWxkIGJlIHVzZWQgd2l0aCBjb21wb25lbnREaWRVcGRhdGUoKS4gJyArICdUaGlzIGNvbXBvbmVudCBkZWZpbmVzIGdldFNuYXBzaG90QmVmb3JlVXBkYXRlKCkgb25seS4nLCBnZXRDb21wb25lbnROYW1lKGN0b3IpKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGluc3RhbmNlLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgZXJyb3IoJyVzOiBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMoKSBpcyBkZWZpbmVkIGFzIGFuIGluc3RhbmNlIG1ldGhvZCAnICsgJ2FuZCB3aWxsIGJlIGlnbm9yZWQuIEluc3RlYWQsIGRlY2xhcmUgaXQgYXMgYSBzdGF0aWMgbWV0aG9kLicsIG5hbWUpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgaW5zdGFuY2UuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBlcnJvcignJXM6IGdldERlcml2ZWRTdGF0ZUZyb21FcnJvcigpIGlzIGRlZmluZWQgYXMgYW4gaW5zdGFuY2UgbWV0aG9kICcgKyAnYW5kIHdpbGwgYmUgaWdub3JlZC4gSW5zdGVhZCwgZGVjbGFyZSBpdCBhcyBhIHN0YXRpYyBtZXRob2QuJywgbmFtZSk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBjdG9yLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBlcnJvcignJXM6IGdldFNuYXBzaG90QmVmb3JlVXBkYXRlKCkgaXMgZGVmaW5lZCBhcyBhIHN0YXRpYyBtZXRob2QgJyArICdhbmQgd2lsbCBiZSBpZ25vcmVkLiBJbnN0ZWFkLCBkZWNsYXJlIGl0IGFzIGFuIGluc3RhbmNlIG1ldGhvZC4nLCBuYW1lKTtcbiAgICB9XG5cbiAgICB2YXIgX3N0YXRlID0gaW5zdGFuY2Uuc3RhdGU7XG5cbiAgICBpZiAoX3N0YXRlICYmICh0eXBlb2YgX3N0YXRlICE9PSAnb2JqZWN0JyB8fCBpc0FycmF5KF9zdGF0ZSkpKSB7XG4gICAgICBlcnJvcignJXMuc3RhdGU6IG11c3QgYmUgc2V0IHRvIGFuIG9iamVjdCBvciBudWxsJywgbmFtZSk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5nZXRDaGlsZENvbnRleHQgPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIGN0b3IuY2hpbGRDb250ZXh0VHlwZXMgIT09ICdvYmplY3QnKSB7XG4gICAgICBlcnJvcignJXMuZ2V0Q2hpbGRDb250ZXh0KCk6IGNoaWxkQ29udGV4dFR5cGVzIG11c3QgYmUgZGVmaW5lZCBpbiBvcmRlciB0byAnICsgJ3VzZSBnZXRDaGlsZENvbnRleHQoKS4nLCBuYW1lKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gYWRvcHRDbGFzc0luc3RhbmNlKHdvcmtJblByb2dyZXNzLCBpbnN0YW5jZSkge1xuICBpbnN0YW5jZS51cGRhdGVyID0gY2xhc3NDb21wb25lbnRVcGRhdGVyO1xuICB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGUgPSBpbnN0YW5jZTsgLy8gVGhlIGluc3RhbmNlIG5lZWRzIGFjY2VzcyB0byB0aGUgZmliZXIgc28gdGhhdCBpdCBjYW4gc2NoZWR1bGUgdXBkYXRlc1xuXG4gIHNldChpbnN0YW5jZSwgd29ya0luUHJvZ3Jlc3MpO1xuXG4gIHtcbiAgICBpbnN0YW5jZS5fcmVhY3RJbnRlcm5hbEluc3RhbmNlID0gZmFrZUludGVybmFsSW5zdGFuY2U7XG4gIH1cbn1cblxuZnVuY3Rpb24gY29uc3RydWN0Q2xhc3NJbnN0YW5jZSh3b3JrSW5Qcm9ncmVzcywgY3RvciwgcHJvcHMpIHtcbiAgdmFyIGlzTGVnYWN5Q29udGV4dENvbnN1bWVyID0gZmFsc2U7XG4gIHZhciB1bm1hc2tlZENvbnRleHQgPSBlbXB0eUNvbnRleHRPYmplY3Q7XG4gIHZhciBjb250ZXh0ID0gZW1wdHlDb250ZXh0T2JqZWN0O1xuICB2YXIgY29udGV4dFR5cGUgPSBjdG9yLmNvbnRleHRUeXBlO1xuXG4gIHtcbiAgICBpZiAoJ2NvbnRleHRUeXBlJyBpbiBjdG9yKSB7XG4gICAgICB2YXIgaXNWYWxpZCA9IC8vIEFsbG93IG51bGwgZm9yIGNvbmRpdGlvbmFsIGRlY2xhcmF0aW9uXG4gICAgICBjb250ZXh0VHlwZSA9PT0gbnVsbCB8fCBjb250ZXh0VHlwZSAhPT0gdW5kZWZpbmVkICYmIGNvbnRleHRUeXBlLiQkdHlwZW9mID09PSBSRUFDVF9DT05URVhUX1RZUEUgJiYgY29udGV4dFR5cGUuX2NvbnRleHQgPT09IHVuZGVmaW5lZDsgLy8gTm90IGEgPENvbnRleHQuQ29uc3VtZXI+XG5cbiAgICAgIGlmICghaXNWYWxpZCAmJiAhZGlkV2FybkFib3V0SW52YWxpZGF0ZUNvbnRleHRUeXBlLmhhcyhjdG9yKSkge1xuICAgICAgICBkaWRXYXJuQWJvdXRJbnZhbGlkYXRlQ29udGV4dFR5cGUuYWRkKGN0b3IpO1xuICAgICAgICB2YXIgYWRkZW5kdW0gPSAnJztcblxuICAgICAgICBpZiAoY29udGV4dFR5cGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGFkZGVuZHVtID0gJyBIb3dldmVyLCBpdCBpcyBzZXQgdG8gdW5kZWZpbmVkLiAnICsgJ1RoaXMgY2FuIGJlIGNhdXNlZCBieSBhIHR5cG8gb3IgYnkgbWl4aW5nIHVwIG5hbWVkIGFuZCBkZWZhdWx0IGltcG9ydHMuICcgKyAnVGhpcyBjYW4gYWxzbyBoYXBwZW4gZHVlIHRvIGEgY2lyY3VsYXIgZGVwZW5kZW5jeSwgc28gJyArICd0cnkgbW92aW5nIHRoZSBjcmVhdGVDb250ZXh0KCkgY2FsbCB0byBhIHNlcGFyYXRlIGZpbGUuJztcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgY29udGV4dFR5cGUgIT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgYWRkZW5kdW0gPSAnIEhvd2V2ZXIsIGl0IGlzIHNldCB0byBhICcgKyB0eXBlb2YgY29udGV4dFR5cGUgKyAnLic7XG4gICAgICAgIH0gZWxzZSBpZiAoY29udGV4dFR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX1BST1ZJREVSX1RZUEUpIHtcbiAgICAgICAgICBhZGRlbmR1bSA9ICcgRGlkIHlvdSBhY2NpZGVudGFsbHkgcGFzcyB0aGUgQ29udGV4dC5Qcm92aWRlciBpbnN0ZWFkPyc7XG4gICAgICAgIH0gZWxzZSBpZiAoY29udGV4dFR5cGUuX2NvbnRleHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIC8vIDxDb250ZXh0LkNvbnN1bWVyPlxuICAgICAgICAgIGFkZGVuZHVtID0gJyBEaWQgeW91IGFjY2lkZW50YWxseSBwYXNzIHRoZSBDb250ZXh0LkNvbnN1bWVyIGluc3RlYWQ/JztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhZGRlbmR1bSA9ICcgSG93ZXZlciwgaXQgaXMgc2V0IHRvIGFuIG9iamVjdCB3aXRoIGtleXMgeycgKyBPYmplY3Qua2V5cyhjb250ZXh0VHlwZSkuam9pbignLCAnKSArICd9Lic7XG4gICAgICAgIH1cblxuICAgICAgICBlcnJvcignJXMgZGVmaW5lcyBhbiBpbnZhbGlkIGNvbnRleHRUeXBlLiAnICsgJ2NvbnRleHRUeXBlIHNob3VsZCBwb2ludCB0byB0aGUgQ29udGV4dCBvYmplY3QgcmV0dXJuZWQgYnkgUmVhY3QuY3JlYXRlQ29udGV4dCgpLiVzJywgZ2V0Q29tcG9uZW50TmFtZShjdG9yKSB8fCAnQ29tcG9uZW50JywgYWRkZW5kdW0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmICh0eXBlb2YgY29udGV4dFR5cGUgPT09ICdvYmplY3QnICYmIGNvbnRleHRUeXBlICE9PSBudWxsKSB7XG4gICAgY29udGV4dCA9IHJlYWRDb250ZXh0KGNvbnRleHRUeXBlKTtcbiAgfSBlbHNlIHtcbiAgICB1bm1hc2tlZENvbnRleHQgPSBnZXRVbm1hc2tlZENvbnRleHQod29ya0luUHJvZ3Jlc3MsIGN0b3IsIHRydWUpO1xuICAgIHZhciBjb250ZXh0VHlwZXMgPSBjdG9yLmNvbnRleHRUeXBlcztcbiAgICBpc0xlZ2FjeUNvbnRleHRDb25zdW1lciA9IGNvbnRleHRUeXBlcyAhPT0gbnVsbCAmJiBjb250ZXh0VHlwZXMgIT09IHVuZGVmaW5lZDtcbiAgICBjb250ZXh0ID0gaXNMZWdhY3lDb250ZXh0Q29uc3VtZXIgPyBnZXRNYXNrZWRDb250ZXh0KHdvcmtJblByb2dyZXNzLCB1bm1hc2tlZENvbnRleHQpIDogZW1wdHlDb250ZXh0T2JqZWN0O1xuICB9IC8vIEluc3RhbnRpYXRlIHR3aWNlIHRvIGhlbHAgZGV0ZWN0IHNpZGUtZWZmZWN0cy5cblxuXG4gIHtcbiAgICBpZiAoIHdvcmtJblByb2dyZXNzLm1vZGUgJiBTdHJpY3RNb2RlKSB7XG4gICAgICBkaXNhYmxlTG9ncygpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBuZXcgY3Rvcihwcm9wcywgY29udGV4dCk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tbmV3XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICByZWVuYWJsZUxvZ3MoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB2YXIgaW5zdGFuY2UgPSBuZXcgY3Rvcihwcm9wcywgY29udGV4dCk7XG4gIHZhciBzdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBpbnN0YW5jZS5zdGF0ZSAhPT0gbnVsbCAmJiBpbnN0YW5jZS5zdGF0ZSAhPT0gdW5kZWZpbmVkID8gaW5zdGFuY2Uuc3RhdGUgOiBudWxsO1xuICBhZG9wdENsYXNzSW5zdGFuY2Uod29ya0luUHJvZ3Jlc3MsIGluc3RhbmNlKTtcblxuICB7XG4gICAgaWYgKHR5cGVvZiBjdG9yLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyA9PT0gJ2Z1bmN0aW9uJyAmJiBzdGF0ZSA9PT0gbnVsbCkge1xuICAgICAgdmFyIGNvbXBvbmVudE5hbWUgPSBnZXRDb21wb25lbnROYW1lKGN0b3IpIHx8ICdDb21wb25lbnQnO1xuXG4gICAgICBpZiAoIWRpZFdhcm5BYm91dFVuaW5pdGlhbGl6ZWRTdGF0ZS5oYXMoY29tcG9uZW50TmFtZSkpIHtcbiAgICAgICAgZGlkV2FybkFib3V0VW5pbml0aWFsaXplZFN0YXRlLmFkZChjb21wb25lbnROYW1lKTtcblxuICAgICAgICBlcnJvcignYCVzYCB1c2VzIGBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHNgIGJ1dCBpdHMgaW5pdGlhbCBzdGF0ZSBpcyAnICsgJyVzLiBUaGlzIGlzIG5vdCByZWNvbW1lbmRlZC4gSW5zdGVhZCwgZGVmaW5lIHRoZSBpbml0aWFsIHN0YXRlIGJ5ICcgKyAnYXNzaWduaW5nIGFuIG9iamVjdCB0byBgdGhpcy5zdGF0ZWAgaW4gdGhlIGNvbnN0cnVjdG9yIG9mIGAlc2AuICcgKyAnVGhpcyBlbnN1cmVzIHRoYXQgYGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wc2AgYXJndW1lbnRzIGhhdmUgYSBjb25zaXN0ZW50IHNoYXBlLicsIGNvbXBvbmVudE5hbWUsIGluc3RhbmNlLnN0YXRlID09PSBudWxsID8gJ251bGwnIDogJ3VuZGVmaW5lZCcsIGNvbXBvbmVudE5hbWUpO1xuICAgICAgfVxuICAgIH0gLy8gSWYgbmV3IGNvbXBvbmVudCBBUElzIGFyZSBkZWZpbmVkLCBcInVuc2FmZVwiIGxpZmVjeWNsZXMgd29uJ3QgYmUgY2FsbGVkLlxuICAgIC8vIFdhcm4gYWJvdXQgdGhlc2UgbGlmZWN5Y2xlcyBpZiB0aGV5IGFyZSBwcmVzZW50LlxuICAgIC8vIERvbid0IHdhcm4gYWJvdXQgcmVhY3QtbGlmZWN5Y2xlcy1jb21wYXQgcG9seWZpbGxlZCBtZXRob2RzIHRob3VnaC5cblxuXG4gICAgaWYgKHR5cGVvZiBjdG9yLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyA9PT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2YgaW5zdGFuY2UuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHZhciBmb3VuZFdpbGxNb3VudE5hbWUgPSBudWxsO1xuICAgICAgdmFyIGZvdW5kV2lsbFJlY2VpdmVQcm9wc05hbWUgPSBudWxsO1xuICAgICAgdmFyIGZvdW5kV2lsbFVwZGF0ZU5hbWUgPSBudWxsO1xuXG4gICAgICBpZiAodHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudFdpbGxNb3VudCA9PT0gJ2Z1bmN0aW9uJyAmJiBpbnN0YW5jZS5jb21wb25lbnRXaWxsTW91bnQuX19zdXBwcmVzc0RlcHJlY2F0aW9uV2FybmluZyAhPT0gdHJ1ZSkge1xuICAgICAgICBmb3VuZFdpbGxNb3VudE5hbWUgPSAnY29tcG9uZW50V2lsbE1vdW50JztcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGluc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgZm91bmRXaWxsTW91bnROYW1lID0gJ1VOU0FGRV9jb21wb25lbnRXaWxsTW91bnQnO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgPT09ICdmdW5jdGlvbicgJiYgaW5zdGFuY2UuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcy5fX3N1cHByZXNzRGVwcmVjYXRpb25XYXJuaW5nICE9PSB0cnVlKSB7XG4gICAgICAgIGZvdW5kV2lsbFJlY2VpdmVQcm9wc05hbWUgPSAnY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyc7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBpbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBmb3VuZFdpbGxSZWNlaXZlUHJvcHNOYW1lID0gJ1VOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJztcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnRXaWxsVXBkYXRlID09PSAnZnVuY3Rpb24nICYmIGluc3RhbmNlLmNvbXBvbmVudFdpbGxVcGRhdGUuX19zdXBwcmVzc0RlcHJlY2F0aW9uV2FybmluZyAhPT0gdHJ1ZSkge1xuICAgICAgICBmb3VuZFdpbGxVcGRhdGVOYW1lID0gJ2NvbXBvbmVudFdpbGxVcGRhdGUnO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgZm91bmRXaWxsVXBkYXRlTmFtZSA9ICdVTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZSc7XG4gICAgICB9XG5cbiAgICAgIGlmIChmb3VuZFdpbGxNb3VudE5hbWUgIT09IG51bGwgfHwgZm91bmRXaWxsUmVjZWl2ZVByb3BzTmFtZSAhPT0gbnVsbCB8fCBmb3VuZFdpbGxVcGRhdGVOYW1lICE9PSBudWxsKSB7XG4gICAgICAgIHZhciBfY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWUoY3RvcikgfHwgJ0NvbXBvbmVudCc7XG5cbiAgICAgICAgdmFyIG5ld0FwaU5hbWUgPSB0eXBlb2YgY3Rvci5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgPT09ICdmdW5jdGlvbicgPyAnZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKCknIDogJ2dldFNuYXBzaG90QmVmb3JlVXBkYXRlKCknO1xuXG4gICAgICAgIGlmICghZGlkV2FybkFib3V0TGVnYWN5TGlmZWN5Y2xlc0FuZERlcml2ZWRTdGF0ZS5oYXMoX2NvbXBvbmVudE5hbWUpKSB7XG4gICAgICAgICAgZGlkV2FybkFib3V0TGVnYWN5TGlmZWN5Y2xlc0FuZERlcml2ZWRTdGF0ZS5hZGQoX2NvbXBvbmVudE5hbWUpO1xuXG4gICAgICAgICAgZXJyb3IoJ1Vuc2FmZSBsZWdhY3kgbGlmZWN5Y2xlcyB3aWxsIG5vdCBiZSBjYWxsZWQgZm9yIGNvbXBvbmVudHMgdXNpbmcgbmV3IGNvbXBvbmVudCBBUElzLlxcblxcbicgKyAnJXMgdXNlcyAlcyBidXQgYWxzbyBjb250YWlucyB0aGUgZm9sbG93aW5nIGxlZ2FjeSBsaWZlY3ljbGVzOiVzJXMlc1xcblxcbicgKyAnVGhlIGFib3ZlIGxpZmVjeWNsZXMgc2hvdWxkIGJlIHJlbW92ZWQuIExlYXJuIG1vcmUgYWJvdXQgdGhpcyB3YXJuaW5nIGhlcmU6XFxuJyArICdodHRwczovL3JlYWN0anMub3JnL2xpbmsvdW5zYWZlLWNvbXBvbmVudC1saWZlY3ljbGVzJywgX2NvbXBvbmVudE5hbWUsIG5ld0FwaU5hbWUsIGZvdW5kV2lsbE1vdW50TmFtZSAhPT0gbnVsbCA/IFwiXFxuICBcIiArIGZvdW5kV2lsbE1vdW50TmFtZSA6ICcnLCBmb3VuZFdpbGxSZWNlaXZlUHJvcHNOYW1lICE9PSBudWxsID8gXCJcXG4gIFwiICsgZm91bmRXaWxsUmVjZWl2ZVByb3BzTmFtZSA6ICcnLCBmb3VuZFdpbGxVcGRhdGVOYW1lICE9PSBudWxsID8gXCJcXG4gIFwiICsgZm91bmRXaWxsVXBkYXRlTmFtZSA6ICcnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSAvLyBDYWNoZSB1bm1hc2tlZCBjb250ZXh0IHNvIHdlIGNhbiBhdm9pZCByZWNyZWF0aW5nIG1hc2tlZCBjb250ZXh0IHVubGVzcyBuZWNlc3NhcnkuXG4gIC8vIFJlYWN0RmliZXJDb250ZXh0IHVzdWFsbHkgdXBkYXRlcyB0aGlzIGNhY2hlIGJ1dCBjYW4ndCBmb3IgbmV3bHktY3JlYXRlZCBpbnN0YW5jZXMuXG5cblxuICBpZiAoaXNMZWdhY3lDb250ZXh0Q29uc3VtZXIpIHtcbiAgICBjYWNoZUNvbnRleHQod29ya0luUHJvZ3Jlc3MsIHVubWFza2VkQ29udGV4dCwgY29udGV4dCk7XG4gIH1cblxuICByZXR1cm4gaW5zdGFuY2U7XG59XG5cbmZ1bmN0aW9uIGNhbGxDb21wb25lbnRXaWxsTW91bnQod29ya0luUHJvZ3Jlc3MsIGluc3RhbmNlKSB7XG4gIHZhciBvbGRTdGF0ZSA9IGluc3RhbmNlLnN0YXRlO1xuXG4gIGlmICh0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50V2lsbE1vdW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgaW5zdGFuY2UuY29tcG9uZW50V2lsbE1vdW50KCk7XG4gIH1cblxuICBpZiAodHlwZW9mIGluc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICBpbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50KCk7XG4gIH1cblxuICBpZiAob2xkU3RhdGUgIT09IGluc3RhbmNlLnN0YXRlKSB7XG4gICAge1xuICAgICAgZXJyb3IoJyVzLmNvbXBvbmVudFdpbGxNb3VudCgpOiBBc3NpZ25pbmcgZGlyZWN0bHkgdG8gdGhpcy5zdGF0ZSBpcyAnICsgXCJkZXByZWNhdGVkIChleGNlcHQgaW5zaWRlIGEgY29tcG9uZW50J3MgXCIgKyAnY29uc3RydWN0b3IpLiBVc2Ugc2V0U3RhdGUgaW5zdGVhZC4nLCBnZXRDb21wb25lbnROYW1lKHdvcmtJblByb2dyZXNzLnR5cGUpIHx8ICdDb21wb25lbnQnKTtcbiAgICB9XG5cbiAgICBjbGFzc0NvbXBvbmVudFVwZGF0ZXIuZW5xdWV1ZVJlcGxhY2VTdGF0ZShpbnN0YW5jZSwgaW5zdGFuY2Uuc3RhdGUsIG51bGwpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNhbGxDb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKHdvcmtJblByb2dyZXNzLCBpbnN0YW5jZSwgbmV3UHJvcHMsIG5leHRDb250ZXh0KSB7XG4gIHZhciBvbGRTdGF0ZSA9IGluc3RhbmNlLnN0YXRlO1xuXG4gIGlmICh0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGluc3RhbmNlLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV3UHJvcHMsIG5leHRDb250ZXh0KTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICBpbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXdQcm9wcywgbmV4dENvbnRleHQpO1xuICB9XG5cbiAgaWYgKGluc3RhbmNlLnN0YXRlICE9PSBvbGRTdGF0ZSkge1xuICAgIHtcbiAgICAgIHZhciBjb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZSh3b3JrSW5Qcm9ncmVzcy50eXBlKSB8fCAnQ29tcG9uZW50JztcblxuICAgICAgaWYgKCFkaWRXYXJuQWJvdXRTdGF0ZUFzc2lnbm1lbnRGb3JDb21wb25lbnQuaGFzKGNvbXBvbmVudE5hbWUpKSB7XG4gICAgICAgIGRpZFdhcm5BYm91dFN0YXRlQXNzaWdubWVudEZvckNvbXBvbmVudC5hZGQoY29tcG9uZW50TmFtZSk7XG5cbiAgICAgICAgZXJyb3IoJyVzLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMoKTogQXNzaWduaW5nIGRpcmVjdGx5IHRvICcgKyBcInRoaXMuc3RhdGUgaXMgZGVwcmVjYXRlZCAoZXhjZXB0IGluc2lkZSBhIGNvbXBvbmVudCdzIFwiICsgJ2NvbnN0cnVjdG9yKS4gVXNlIHNldFN0YXRlIGluc3RlYWQuJywgY29tcG9uZW50TmFtZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY2xhc3NDb21wb25lbnRVcGRhdGVyLmVucXVldWVSZXBsYWNlU3RhdGUoaW5zdGFuY2UsIGluc3RhbmNlLnN0YXRlLCBudWxsKTtcbiAgfVxufSAvLyBJbnZva2VzIHRoZSBtb3VudCBsaWZlLWN5Y2xlcyBvbiBhIHByZXZpb3VzbHkgbmV2ZXIgcmVuZGVyZWQgaW5zdGFuY2UuXG5cblxuZnVuY3Rpb24gbW91bnRDbGFzc0luc3RhbmNlKHdvcmtJblByb2dyZXNzLCBjdG9yLCBuZXdQcm9wcywgcmVuZGVyTGFuZXMpIHtcbiAge1xuICAgIGNoZWNrQ2xhc3NJbnN0YW5jZSh3b3JrSW5Qcm9ncmVzcywgY3RvciwgbmV3UHJvcHMpO1xuICB9XG5cbiAgdmFyIGluc3RhbmNlID0gd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlO1xuICBpbnN0YW5jZS5wcm9wcyA9IG5ld1Byb3BzO1xuICBpbnN0YW5jZS5zdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG4gIGluc3RhbmNlLnJlZnMgPSBlbXB0eVJlZnNPYmplY3Q7XG4gIGluaXRpYWxpemVVcGRhdGVRdWV1ZSh3b3JrSW5Qcm9ncmVzcyk7XG4gIHZhciBjb250ZXh0VHlwZSA9IGN0b3IuY29udGV4dFR5cGU7XG5cbiAgaWYgKHR5cGVvZiBjb250ZXh0VHlwZSA9PT0gJ29iamVjdCcgJiYgY29udGV4dFR5cGUgIT09IG51bGwpIHtcbiAgICBpbnN0YW5jZS5jb250ZXh0ID0gcmVhZENvbnRleHQoY29udGV4dFR5cGUpO1xuICB9IGVsc2Uge1xuICAgIHZhciB1bm1hc2tlZENvbnRleHQgPSBnZXRVbm1hc2tlZENvbnRleHQod29ya0luUHJvZ3Jlc3MsIGN0b3IsIHRydWUpO1xuICAgIGluc3RhbmNlLmNvbnRleHQgPSBnZXRNYXNrZWRDb250ZXh0KHdvcmtJblByb2dyZXNzLCB1bm1hc2tlZENvbnRleHQpO1xuICB9XG5cbiAge1xuICAgIGlmIChpbnN0YW5jZS5zdGF0ZSA9PT0gbmV3UHJvcHMpIHtcbiAgICAgIHZhciBjb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZShjdG9yKSB8fCAnQ29tcG9uZW50JztcblxuICAgICAgaWYgKCFkaWRXYXJuQWJvdXREaXJlY3RseUFzc2lnbmluZ1Byb3BzVG9TdGF0ZS5oYXMoY29tcG9uZW50TmFtZSkpIHtcbiAgICAgICAgZGlkV2FybkFib3V0RGlyZWN0bHlBc3NpZ25pbmdQcm9wc1RvU3RhdGUuYWRkKGNvbXBvbmVudE5hbWUpO1xuXG4gICAgICAgIGVycm9yKCclczogSXQgaXMgbm90IHJlY29tbWVuZGVkIHRvIGFzc2lnbiBwcm9wcyBkaXJlY3RseSB0byBzdGF0ZSAnICsgXCJiZWNhdXNlIHVwZGF0ZXMgdG8gcHJvcHMgd29uJ3QgYmUgcmVmbGVjdGVkIGluIHN0YXRlLiBcIiArICdJbiBtb3N0IGNhc2VzLCBpdCBpcyBiZXR0ZXIgdG8gdXNlIHByb3BzIGRpcmVjdGx5LicsIGNvbXBvbmVudE5hbWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgU3RyaWN0TW9kZSkge1xuICAgICAgUmVhY3RTdHJpY3RNb2RlV2FybmluZ3MucmVjb3JkTGVnYWN5Q29udGV4dFdhcm5pbmcod29ya0luUHJvZ3Jlc3MsIGluc3RhbmNlKTtcbiAgICB9XG5cbiAgICB7XG4gICAgICBSZWFjdFN0cmljdE1vZGVXYXJuaW5ncy5yZWNvcmRVbnNhZmVMaWZlY3ljbGVXYXJuaW5ncyh3b3JrSW5Qcm9ncmVzcywgaW5zdGFuY2UpO1xuICAgIH1cbiAgfVxuXG4gIHByb2Nlc3NVcGRhdGVRdWV1ZSh3b3JrSW5Qcm9ncmVzcywgbmV3UHJvcHMsIGluc3RhbmNlLCByZW5kZXJMYW5lcyk7XG4gIGluc3RhbmNlLnN0YXRlID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZTtcbiAgdmFyIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyA9IGN0b3IuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzO1xuXG4gIGlmICh0eXBlb2YgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgYXBwbHlEZXJpdmVkU3RhdGVGcm9tUHJvcHMod29ya0luUHJvZ3Jlc3MsIGN0b3IsIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcywgbmV3UHJvcHMpO1xuICAgIGluc3RhbmNlLnN0YXRlID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZTtcbiAgfSAvLyBJbiBvcmRlciB0byBzdXBwb3J0IHJlYWN0LWxpZmVjeWNsZXMtY29tcGF0IHBvbHlmaWxsZWQgY29tcG9uZW50cyxcbiAgLy8gVW5zYWZlIGxpZmVjeWNsZXMgc2hvdWxkIG5vdCBiZSBpbnZva2VkIGZvciBjb21wb25lbnRzIHVzaW5nIHRoZSBuZXcgQVBJcy5cblxuXG4gIGlmICh0eXBlb2YgY3Rvci5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgIT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIGluc3RhbmNlLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlICE9PSAnZnVuY3Rpb24nICYmICh0eXBlb2YgaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCA9PT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50V2lsbE1vdW50ID09PSAnZnVuY3Rpb24nKSkge1xuICAgIGNhbGxDb21wb25lbnRXaWxsTW91bnQod29ya0luUHJvZ3Jlc3MsIGluc3RhbmNlKTsgLy8gSWYgd2UgaGFkIGFkZGl0aW9uYWwgc3RhdGUgdXBkYXRlcyBkdXJpbmcgdGhpcyBsaWZlLWN5Y2xlLCBsZXQnc1xuICAgIC8vIHByb2Nlc3MgdGhlbSBub3cuXG5cbiAgICBwcm9jZXNzVXBkYXRlUXVldWUod29ya0luUHJvZ3Jlc3MsIG5ld1Byb3BzLCBpbnN0YW5jZSwgcmVuZGVyTGFuZXMpO1xuICAgIGluc3RhbmNlLnN0YXRlID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50RGlkTW91bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBVcGRhdGU7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVzdW1lTW91bnRDbGFzc0luc3RhbmNlKHdvcmtJblByb2dyZXNzLCBjdG9yLCBuZXdQcm9wcywgcmVuZGVyTGFuZXMpIHtcbiAgdmFyIGluc3RhbmNlID0gd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlO1xuICB2YXIgb2xkUHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFByb3BzO1xuICBpbnN0YW5jZS5wcm9wcyA9IG9sZFByb3BzO1xuICB2YXIgb2xkQ29udGV4dCA9IGluc3RhbmNlLmNvbnRleHQ7XG4gIHZhciBjb250ZXh0VHlwZSA9IGN0b3IuY29udGV4dFR5cGU7XG4gIHZhciBuZXh0Q29udGV4dCA9IGVtcHR5Q29udGV4dE9iamVjdDtcblxuICBpZiAodHlwZW9mIGNvbnRleHRUeXBlID09PSAnb2JqZWN0JyAmJiBjb250ZXh0VHlwZSAhPT0gbnVsbCkge1xuICAgIG5leHRDb250ZXh0ID0gcmVhZENvbnRleHQoY29udGV4dFR5cGUpO1xuICB9IGVsc2Uge1xuICAgIHZhciBuZXh0TGVnYWN5VW5tYXNrZWRDb250ZXh0ID0gZ2V0VW5tYXNrZWRDb250ZXh0KHdvcmtJblByb2dyZXNzLCBjdG9yLCB0cnVlKTtcbiAgICBuZXh0Q29udGV4dCA9IGdldE1hc2tlZENvbnRleHQod29ya0luUHJvZ3Jlc3MsIG5leHRMZWdhY3lVbm1hc2tlZENvbnRleHQpO1xuICB9XG5cbiAgdmFyIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyA9IGN0b3IuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzO1xuICB2YXIgaGFzTmV3TGlmZWN5Y2xlcyA9IHR5cGVvZiBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgPT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIGluc3RhbmNlLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlID09PSAnZnVuY3Rpb24nOyAvLyBOb3RlOiBEdXJpbmcgdGhlc2UgbGlmZS1jeWNsZXMsIGluc3RhbmNlLnByb3BzL2luc3RhbmNlLnN0YXRlIGFyZSB3aGF0XG4gIC8vIGV2ZXIgdGhlIHByZXZpb3VzbHkgYXR0ZW1wdGVkIHRvIHJlbmRlciAtIG5vdCB0aGUgXCJjdXJyZW50XCIuIEhvd2V2ZXIsXG4gIC8vIGR1cmluZyBjb21wb25lbnREaWRVcGRhdGUgd2UgcGFzcyB0aGUgXCJjdXJyZW50XCIgcHJvcHMuXG4gIC8vIEluIG9yZGVyIHRvIHN1cHBvcnQgcmVhY3QtbGlmZWN5Y2xlcy1jb21wYXQgcG9seWZpbGxlZCBjb21wb25lbnRzLFxuICAvLyBVbnNhZmUgbGlmZWN5Y2xlcyBzaG91bGQgbm90IGJlIGludm9rZWQgZm9yIGNvbXBvbmVudHMgdXNpbmcgdGhlIG5ldyBBUElzLlxuXG4gIGlmICghaGFzTmV3TGlmZWN5Y2xlcyAmJiAodHlwZW9mIGluc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzID09PSAnZnVuY3Rpb24nIHx8IHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzID09PSAnZnVuY3Rpb24nKSkge1xuICAgIGlmIChvbGRQcm9wcyAhPT0gbmV3UHJvcHMgfHwgb2xkQ29udGV4dCAhPT0gbmV4dENvbnRleHQpIHtcbiAgICAgIGNhbGxDb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKHdvcmtJblByb2dyZXNzLCBpbnN0YW5jZSwgbmV3UHJvcHMsIG5leHRDb250ZXh0KTtcbiAgICB9XG4gIH1cblxuICByZXNldEhhc0ZvcmNlVXBkYXRlQmVmb3JlUHJvY2Vzc2luZygpO1xuICB2YXIgb2xkU3RhdGUgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlO1xuICB2YXIgbmV3U3RhdGUgPSBpbnN0YW5jZS5zdGF0ZSA9IG9sZFN0YXRlO1xuICBwcm9jZXNzVXBkYXRlUXVldWUod29ya0luUHJvZ3Jlc3MsIG5ld1Byb3BzLCBpbnN0YW5jZSwgcmVuZGVyTGFuZXMpO1xuICBuZXdTdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG5cbiAgaWYgKG9sZFByb3BzID09PSBuZXdQcm9wcyAmJiBvbGRTdGF0ZSA9PT0gbmV3U3RhdGUgJiYgIWhhc0NvbnRleHRDaGFuZ2VkKCkgJiYgIWNoZWNrSGFzRm9yY2VVcGRhdGVBZnRlclByb2Nlc3NpbmcoKSkge1xuICAgIC8vIElmIGFuIHVwZGF0ZSB3YXMgYWxyZWFkeSBpbiBwcm9ncmVzcywgd2Ugc2hvdWxkIHNjaGVkdWxlIGFuIFVwZGF0ZVxuICAgIC8vIGVmZmVjdCBldmVuIHRob3VnaCB3ZSdyZSBiYWlsaW5nIG91dCwgc28gdGhhdCBjV1UvY0RVIGFyZSBjYWxsZWQuXG4gICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnREaWRNb3VudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gVXBkYXRlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgYXBwbHlEZXJpdmVkU3RhdGVGcm9tUHJvcHMod29ya0luUHJvZ3Jlc3MsIGN0b3IsIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcywgbmV3UHJvcHMpO1xuICAgIG5ld1N0YXRlID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZTtcbiAgfVxuXG4gIHZhciBzaG91bGRVcGRhdGUgPSBjaGVja0hhc0ZvcmNlVXBkYXRlQWZ0ZXJQcm9jZXNzaW5nKCkgfHwgY2hlY2tTaG91bGRDb21wb25lbnRVcGRhdGUod29ya0luUHJvZ3Jlc3MsIGN0b3IsIG9sZFByb3BzLCBuZXdQcm9wcywgb2xkU3RhdGUsIG5ld1N0YXRlLCBuZXh0Q29udGV4dCk7XG5cbiAgaWYgKHNob3VsZFVwZGF0ZSkge1xuICAgIC8vIEluIG9yZGVyIHRvIHN1cHBvcnQgcmVhY3QtbGlmZWN5Y2xlcy1jb21wYXQgcG9seWZpbGxlZCBjb21wb25lbnRzLFxuICAgIC8vIFVuc2FmZSBsaWZlY3ljbGVzIHNob3VsZCBub3QgYmUgaW52b2tlZCBmb3IgY29tcG9uZW50cyB1c2luZyB0aGUgbmV3IEFQSXMuXG4gICAgaWYgKCFoYXNOZXdMaWZlY3ljbGVzICYmICh0eXBlb2YgaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCA9PT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50V2lsbE1vdW50ID09PSAnZnVuY3Rpb24nKSkge1xuICAgICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnRXaWxsTW91bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgaW5zdGFuY2UuY29tcG9uZW50V2lsbE1vdW50KCk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBpbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50KCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnREaWRNb3VudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gVXBkYXRlO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBJZiBhbiB1cGRhdGUgd2FzIGFscmVhZHkgaW4gcHJvZ3Jlc3MsIHdlIHNob3VsZCBzY2hlZHVsZSBhbiBVcGRhdGVcbiAgICAvLyBlZmZlY3QgZXZlbiB0aG91Z2ggd2UncmUgYmFpbGluZyBvdXQsIHNvIHRoYXQgY1dVL2NEVSBhcmUgY2FsbGVkLlxuICAgIGlmICh0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50RGlkTW91bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IFVwZGF0ZTtcbiAgICB9IC8vIElmIHNob3VsZENvbXBvbmVudFVwZGF0ZSByZXR1cm5lZCBmYWxzZSwgd2Ugc2hvdWxkIHN0aWxsIHVwZGF0ZSB0aGVcbiAgICAvLyBtZW1vaXplZCBzdGF0ZSB0byBpbmRpY2F0ZSB0aGF0IHRoaXMgd29yayBjYW4gYmUgcmV1c2VkLlxuXG5cbiAgICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFByb3BzID0gbmV3UHJvcHM7XG4gICAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IG5ld1N0YXRlO1xuICB9IC8vIFVwZGF0ZSB0aGUgZXhpc3RpbmcgaW5zdGFuY2UncyBzdGF0ZSwgcHJvcHMsIGFuZCBjb250ZXh0IHBvaW50ZXJzIGV2ZW5cbiAgLy8gaWYgc2hvdWxkQ29tcG9uZW50VXBkYXRlIHJldHVybnMgZmFsc2UuXG5cblxuICBpbnN0YW5jZS5wcm9wcyA9IG5ld1Byb3BzO1xuICBpbnN0YW5jZS5zdGF0ZSA9IG5ld1N0YXRlO1xuICBpbnN0YW5jZS5jb250ZXh0ID0gbmV4dENvbnRleHQ7XG4gIHJldHVybiBzaG91bGRVcGRhdGU7XG59IC8vIEludm9rZXMgdGhlIHVwZGF0ZSBsaWZlLWN5Y2xlcyBhbmQgcmV0dXJucyBmYWxzZSBpZiBpdCBzaG91bGRuJ3QgcmVyZW5kZXIuXG5cblxuZnVuY3Rpb24gdXBkYXRlQ2xhc3NJbnN0YW5jZShjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgY3RvciwgbmV3UHJvcHMsIHJlbmRlckxhbmVzKSB7XG4gIHZhciBpbnN0YW5jZSA9IHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZTtcbiAgY2xvbmVVcGRhdGVRdWV1ZShjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcyk7XG4gIHZhciB1bnJlc29sdmVkT2xkUHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFByb3BzO1xuICB2YXIgb2xkUHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy50eXBlID09PSB3b3JrSW5Qcm9ncmVzcy5lbGVtZW50VHlwZSA/IHVucmVzb2x2ZWRPbGRQcm9wcyA6IHJlc29sdmVEZWZhdWx0UHJvcHMod29ya0luUHJvZ3Jlc3MudHlwZSwgdW5yZXNvbHZlZE9sZFByb3BzKTtcbiAgaW5zdGFuY2UucHJvcHMgPSBvbGRQcm9wcztcbiAgdmFyIHVucmVzb2x2ZWROZXdQcm9wcyA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcztcbiAgdmFyIG9sZENvbnRleHQgPSBpbnN0YW5jZS5jb250ZXh0O1xuICB2YXIgY29udGV4dFR5cGUgPSBjdG9yLmNvbnRleHRUeXBlO1xuICB2YXIgbmV4dENvbnRleHQgPSBlbXB0eUNvbnRleHRPYmplY3Q7XG5cbiAgaWYgKHR5cGVvZiBjb250ZXh0VHlwZSA9PT0gJ29iamVjdCcgJiYgY29udGV4dFR5cGUgIT09IG51bGwpIHtcbiAgICBuZXh0Q29udGV4dCA9IHJlYWRDb250ZXh0KGNvbnRleHRUeXBlKTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgbmV4dFVubWFza2VkQ29udGV4dCA9IGdldFVubWFza2VkQ29udGV4dCh3b3JrSW5Qcm9ncmVzcywgY3RvciwgdHJ1ZSk7XG4gICAgbmV4dENvbnRleHQgPSBnZXRNYXNrZWRDb250ZXh0KHdvcmtJblByb2dyZXNzLCBuZXh0VW5tYXNrZWRDb250ZXh0KTtcbiAgfVxuXG4gIHZhciBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgPSBjdG9yLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcztcbiAgdmFyIGhhc05ld0xpZmVjeWNsZXMgPSB0eXBlb2YgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzID09PSAnZnVuY3Rpb24nIHx8IHR5cGVvZiBpbnN0YW5jZS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSA9PT0gJ2Z1bmN0aW9uJzsgLy8gTm90ZTogRHVyaW5nIHRoZXNlIGxpZmUtY3ljbGVzLCBpbnN0YW5jZS5wcm9wcy9pbnN0YW5jZS5zdGF0ZSBhcmUgd2hhdFxuICAvLyBldmVyIHRoZSBwcmV2aW91c2x5IGF0dGVtcHRlZCB0byByZW5kZXIgLSBub3QgdGhlIFwiY3VycmVudFwiLiBIb3dldmVyLFxuICAvLyBkdXJpbmcgY29tcG9uZW50RGlkVXBkYXRlIHdlIHBhc3MgdGhlIFwiY3VycmVudFwiIHByb3BzLlxuICAvLyBJbiBvcmRlciB0byBzdXBwb3J0IHJlYWN0LWxpZmVjeWNsZXMtY29tcGF0IHBvbHlmaWxsZWQgY29tcG9uZW50cyxcbiAgLy8gVW5zYWZlIGxpZmVjeWNsZXMgc2hvdWxkIG5vdCBiZSBpbnZva2VkIGZvciBjb21wb25lbnRzIHVzaW5nIHRoZSBuZXcgQVBJcy5cblxuICBpZiAoIWhhc05ld0xpZmVjeWNsZXMgJiYgKHR5cGVvZiBpbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyA9PT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyA9PT0gJ2Z1bmN0aW9uJykpIHtcbiAgICBpZiAodW5yZXNvbHZlZE9sZFByb3BzICE9PSB1bnJlc29sdmVkTmV3UHJvcHMgfHwgb2xkQ29udGV4dCAhPT0gbmV4dENvbnRleHQpIHtcbiAgICAgIGNhbGxDb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKHdvcmtJblByb2dyZXNzLCBpbnN0YW5jZSwgbmV3UHJvcHMsIG5leHRDb250ZXh0KTtcbiAgICB9XG4gIH1cblxuICByZXNldEhhc0ZvcmNlVXBkYXRlQmVmb3JlUHJvY2Vzc2luZygpO1xuICB2YXIgb2xkU3RhdGUgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlO1xuICB2YXIgbmV3U3RhdGUgPSBpbnN0YW5jZS5zdGF0ZSA9IG9sZFN0YXRlO1xuICBwcm9jZXNzVXBkYXRlUXVldWUod29ya0luUHJvZ3Jlc3MsIG5ld1Byb3BzLCBpbnN0YW5jZSwgcmVuZGVyTGFuZXMpO1xuICBuZXdTdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG5cbiAgaWYgKHVucmVzb2x2ZWRPbGRQcm9wcyA9PT0gdW5yZXNvbHZlZE5ld1Byb3BzICYmIG9sZFN0YXRlID09PSBuZXdTdGF0ZSAmJiAhaGFzQ29udGV4dENoYW5nZWQoKSAmJiAhY2hlY2tIYXNGb3JjZVVwZGF0ZUFmdGVyUHJvY2Vzc2luZygpKSB7XG4gICAgLy8gSWYgYW4gdXBkYXRlIHdhcyBhbHJlYWR5IGluIHByb2dyZXNzLCB3ZSBzaG91bGQgc2NoZWR1bGUgYW4gVXBkYXRlXG4gICAgLy8gZWZmZWN0IGV2ZW4gdGhvdWdoIHdlJ3JlIGJhaWxpbmcgb3V0LCBzbyB0aGF0IGNXVS9jRFUgYXJlIGNhbGxlZC5cbiAgICBpZiAodHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudERpZFVwZGF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgaWYgKHVucmVzb2x2ZWRPbGRQcm9wcyAhPT0gY3VycmVudC5tZW1vaXplZFByb3BzIHx8IG9sZFN0YXRlICE9PSBjdXJyZW50Lm1lbW9pemVkU3RhdGUpIHtcbiAgICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gVXBkYXRlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgaW5zdGFuY2UuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGlmICh1bnJlc29sdmVkT2xkUHJvcHMgIT09IGN1cnJlbnQubWVtb2l6ZWRQcm9wcyB8fCBvbGRTdGF0ZSAhPT0gY3VycmVudC5tZW1vaXplZFN0YXRlKSB7XG4gICAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IFNuYXBzaG90O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgYXBwbHlEZXJpdmVkU3RhdGVGcm9tUHJvcHMod29ya0luUHJvZ3Jlc3MsIGN0b3IsIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcywgbmV3UHJvcHMpO1xuICAgIG5ld1N0YXRlID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZTtcbiAgfVxuXG4gIHZhciBzaG91bGRVcGRhdGUgPSBjaGVja0hhc0ZvcmNlVXBkYXRlQWZ0ZXJQcm9jZXNzaW5nKCkgfHwgY2hlY2tTaG91bGRDb21wb25lbnRVcGRhdGUod29ya0luUHJvZ3Jlc3MsIGN0b3IsIG9sZFByb3BzLCBuZXdQcm9wcywgb2xkU3RhdGUsIG5ld1N0YXRlLCBuZXh0Q29udGV4dCk7XG5cbiAgaWYgKHNob3VsZFVwZGF0ZSkge1xuICAgIC8vIEluIG9yZGVyIHRvIHN1cHBvcnQgcmVhY3QtbGlmZWN5Y2xlcy1jb21wYXQgcG9seWZpbGxlZCBjb21wb25lbnRzLFxuICAgIC8vIFVuc2FmZSBsaWZlY3ljbGVzIHNob3VsZCBub3QgYmUgaW52b2tlZCBmb3IgY29tcG9uZW50cyB1c2luZyB0aGUgbmV3IEFQSXMuXG4gICAgaWYgKCFoYXNOZXdMaWZlY3ljbGVzICYmICh0eXBlb2YgaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUgPT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudFdpbGxVcGRhdGUgPT09ICdmdW5jdGlvbicpKSB7XG4gICAgICBpZiAodHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudFdpbGxVcGRhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgaW5zdGFuY2UuY29tcG9uZW50V2lsbFVwZGF0ZShuZXdQcm9wcywgbmV3U3RhdGUsIG5leHRDb250ZXh0KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBpbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZShuZXdQcm9wcywgbmV3U3RhdGUsIG5leHRDb250ZXh0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudERpZFVwZGF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gVXBkYXRlO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgaW5zdGFuY2UuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IFNuYXBzaG90O1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBJZiBhbiB1cGRhdGUgd2FzIGFscmVhZHkgaW4gcHJvZ3Jlc3MsIHdlIHNob3VsZCBzY2hlZHVsZSBhbiBVcGRhdGVcbiAgICAvLyBlZmZlY3QgZXZlbiB0aG91Z2ggd2UncmUgYmFpbGluZyBvdXQsIHNvIHRoYXQgY1dVL2NEVSBhcmUgY2FsbGVkLlxuICAgIGlmICh0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50RGlkVXBkYXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBpZiAodW5yZXNvbHZlZE9sZFByb3BzICE9PSBjdXJyZW50Lm1lbW9pemVkUHJvcHMgfHwgb2xkU3RhdGUgIT09IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZSkge1xuICAgICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBVcGRhdGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgaWYgKHVucmVzb2x2ZWRPbGRQcm9wcyAhPT0gY3VycmVudC5tZW1vaXplZFByb3BzIHx8IG9sZFN0YXRlICE9PSBjdXJyZW50Lm1lbW9pemVkU3RhdGUpIHtcbiAgICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gU25hcHNob3Q7XG4gICAgICB9XG4gICAgfSAvLyBJZiBzaG91bGRDb21wb25lbnRVcGRhdGUgcmV0dXJuZWQgZmFsc2UsIHdlIHNob3VsZCBzdGlsbCB1cGRhdGUgdGhlXG4gICAgLy8gbWVtb2l6ZWQgcHJvcHMvc3RhdGUgdG8gaW5kaWNhdGUgdGhhdCB0aGlzIHdvcmsgY2FuIGJlIHJldXNlZC5cblxuXG4gICAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRQcm9wcyA9IG5ld1Byb3BzO1xuICAgIHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBuZXdTdGF0ZTtcbiAgfSAvLyBVcGRhdGUgdGhlIGV4aXN0aW5nIGluc3RhbmNlJ3Mgc3RhdGUsIHByb3BzLCBhbmQgY29udGV4dCBwb2ludGVycyBldmVuXG4gIC8vIGlmIHNob3VsZENvbXBvbmVudFVwZGF0ZSByZXR1cm5zIGZhbHNlLlxuXG5cbiAgaW5zdGFuY2UucHJvcHMgPSBuZXdQcm9wcztcbiAgaW5zdGFuY2Uuc3RhdGUgPSBuZXdTdGF0ZTtcbiAgaW5zdGFuY2UuY29udGV4dCA9IG5leHRDb250ZXh0O1xuICByZXR1cm4gc2hvdWxkVXBkYXRlO1xufVxuXG52YXIgZGlkV2FybkFib3V0TWFwcztcbnZhciBkaWRXYXJuQWJvdXRHZW5lcmF0b3JzO1xudmFyIGRpZFdhcm5BYm91dFN0cmluZ1JlZnM7XG52YXIgb3duZXJIYXNLZXlVc2VXYXJuaW5nO1xudmFyIG93bmVySGFzRnVuY3Rpb25UeXBlV2FybmluZztcblxudmFyIHdhcm5Gb3JNaXNzaW5nS2V5ID0gZnVuY3Rpb24gKGNoaWxkLCByZXR1cm5GaWJlcikge307XG5cbntcbiAgZGlkV2FybkFib3V0TWFwcyA9IGZhbHNlO1xuICBkaWRXYXJuQWJvdXRHZW5lcmF0b3JzID0gZmFsc2U7XG4gIGRpZFdhcm5BYm91dFN0cmluZ1JlZnMgPSB7fTtcbiAgLyoqXG4gICAqIFdhcm4gaWYgdGhlcmUncyBubyBrZXkgZXhwbGljaXRseSBzZXQgb24gZHluYW1pYyBhcnJheXMgb2YgY2hpbGRyZW4gb3JcbiAgICogb2JqZWN0IGtleXMgYXJlIG5vdCB2YWxpZC4gVGhpcyBhbGxvd3MgdXMgdG8ga2VlcCB0cmFjayBvZiBjaGlsZHJlbiBiZXR3ZWVuXG4gICAqIHVwZGF0ZXMuXG4gICAqL1xuXG4gIG93bmVySGFzS2V5VXNlV2FybmluZyA9IHt9O1xuICBvd25lckhhc0Z1bmN0aW9uVHlwZVdhcm5pbmcgPSB7fTtcblxuICB3YXJuRm9yTWlzc2luZ0tleSA9IGZ1bmN0aW9uIChjaGlsZCwgcmV0dXJuRmliZXIpIHtcbiAgICBpZiAoY2hpbGQgPT09IG51bGwgfHwgdHlwZW9mIGNoaWxkICE9PSAnb2JqZWN0Jykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghY2hpbGQuX3N0b3JlIHx8IGNoaWxkLl9zdG9yZS52YWxpZGF0ZWQgfHwgY2hpbGQua2V5ICE9IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoISh0eXBlb2YgY2hpbGQuX3N0b3JlID09PSAnb2JqZWN0JykpIHtcbiAgICAgIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoIFwiUmVhY3QgQ29tcG9uZW50IGluIHdhcm5Gb3JNaXNzaW5nS2V5IHNob3VsZCBoYXZlIGEgX3N0b3JlLiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLlwiICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY2hpbGQuX3N0b3JlLnZhbGlkYXRlZCA9IHRydWU7XG4gICAgdmFyIGNvbXBvbmVudE5hbWUgPSBnZXRDb21wb25lbnROYW1lKHJldHVybkZpYmVyLnR5cGUpIHx8ICdDb21wb25lbnQnO1xuXG4gICAgaWYgKG93bmVySGFzS2V5VXNlV2FybmluZ1tjb21wb25lbnROYW1lXSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG93bmVySGFzS2V5VXNlV2FybmluZ1tjb21wb25lbnROYW1lXSA9IHRydWU7XG5cbiAgICBlcnJvcignRWFjaCBjaGlsZCBpbiBhIGxpc3Qgc2hvdWxkIGhhdmUgYSB1bmlxdWUgJyArICdcImtleVwiIHByb3AuIFNlZSBodHRwczovL3JlYWN0anMub3JnL2xpbmsvd2FybmluZy1rZXlzIGZvciAnICsgJ21vcmUgaW5mb3JtYXRpb24uJyk7XG4gIH07XG59XG5cbnZhciBpc0FycmF5JDEgPSBBcnJheS5pc0FycmF5O1xuXG5mdW5jdGlvbiBjb2VyY2VSZWYocmV0dXJuRmliZXIsIGN1cnJlbnQsIGVsZW1lbnQpIHtcbiAgdmFyIG1peGVkUmVmID0gZWxlbWVudC5yZWY7XG5cbiAgaWYgKG1peGVkUmVmICE9PSBudWxsICYmIHR5cGVvZiBtaXhlZFJlZiAhPT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgbWl4ZWRSZWYgIT09ICdvYmplY3QnKSB7XG4gICAge1xuICAgICAgLy8gVE9ETzogQ2xlYW4gdGhpcyB1cCBvbmNlIHdlIHR1cm4gb24gdGhlIHN0cmluZyByZWYgd2FybmluZyBmb3JcbiAgICAgIC8vIGV2ZXJ5b25lLCBiZWNhdXNlIHRoZSBzdHJpY3QgbW9kZSBjYXNlIHdpbGwgbm8gbG9uZ2VyIGJlIHJlbGV2YW50XG4gICAgICBpZiAoKHJldHVybkZpYmVyLm1vZGUgJiBTdHJpY3RNb2RlIHx8IHdhcm5BYm91dFN0cmluZ1JlZnMpICYmIC8vIFdlIHdhcm4gaW4gUmVhY3RFbGVtZW50LmpzIGlmIG93bmVyIGFuZCBzZWxmIGFyZSBlcXVhbCBmb3Igc3RyaW5nIHJlZnNcbiAgICAgIC8vIGJlY2F1c2UgdGhlc2UgY2Fubm90IGJlIGF1dG9tYXRpY2FsbHkgY29udmVydGVkIHRvIGFuIGFycm93IGZ1bmN0aW9uXG4gICAgICAvLyB1c2luZyBhIGNvZGVtb2QuIFRoZXJlZm9yZSwgd2UgZG9uJ3QgaGF2ZSB0byB3YXJuIGFib3V0IHN0cmluZyByZWZzIGFnYWluLlxuICAgICAgIShlbGVtZW50Ll9vd25lciAmJiBlbGVtZW50Ll9zZWxmICYmIGVsZW1lbnQuX293bmVyLnN0YXRlTm9kZSAhPT0gZWxlbWVudC5fc2VsZikpIHtcbiAgICAgICAgdmFyIGNvbXBvbmVudE5hbWUgPSBnZXRDb21wb25lbnROYW1lKHJldHVybkZpYmVyLnR5cGUpIHx8ICdDb21wb25lbnQnO1xuXG4gICAgICAgIGlmICghZGlkV2FybkFib3V0U3RyaW5nUmVmc1tjb21wb25lbnROYW1lXSkge1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGVycm9yKCdBIHN0cmluZyByZWYsIFwiJXNcIiwgaGFzIGJlZW4gZm91bmQgd2l0aGluIGEgc3RyaWN0IG1vZGUgdHJlZS4gJyArICdTdHJpbmcgcmVmcyBhcmUgYSBzb3VyY2Ugb2YgcG90ZW50aWFsIGJ1Z3MgYW5kIHNob3VsZCBiZSBhdm9pZGVkLiAnICsgJ1dlIHJlY29tbWVuZCB1c2luZyB1c2VSZWYoKSBvciBjcmVhdGVSZWYoKSBpbnN0ZWFkLiAnICsgJ0xlYXJuIG1vcmUgYWJvdXQgdXNpbmcgcmVmcyBzYWZlbHkgaGVyZTogJyArICdodHRwczovL3JlYWN0anMub3JnL2xpbmsvc3RyaWN0LW1vZGUtc3RyaW5nLXJlZicsIG1peGVkUmVmKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBkaWRXYXJuQWJvdXRTdHJpbmdSZWZzW2NvbXBvbmVudE5hbWVdID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChlbGVtZW50Ll9vd25lcikge1xuICAgICAgdmFyIG93bmVyID0gZWxlbWVudC5fb3duZXI7XG4gICAgICB2YXIgaW5zdDtcblxuICAgICAgaWYgKG93bmVyKSB7XG4gICAgICAgIHZhciBvd25lckZpYmVyID0gb3duZXI7XG5cbiAgICAgICAgaWYgKCEob3duZXJGaWJlci50YWcgPT09IENsYXNzQ29tcG9uZW50KSkge1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRocm93IEVycm9yKCBcIkZ1bmN0aW9uIGNvbXBvbmVudHMgY2Fubm90IGhhdmUgc3RyaW5nIHJlZnMuIFdlIHJlY29tbWVuZCB1c2luZyB1c2VSZWYoKSBpbnN0ZWFkLiBMZWFybiBtb3JlIGFib3V0IHVzaW5nIHJlZnMgc2FmZWx5IGhlcmU6IGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9zdHJpY3QtbW9kZS1zdHJpbmctcmVmXCIgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpbnN0ID0gb3duZXJGaWJlci5zdGF0ZU5vZGU7XG4gICAgICB9XG5cbiAgICAgIGlmICghaW5zdCkge1xuICAgICAgICB7XG4gICAgICAgICAgdGhyb3cgRXJyb3IoIFwiTWlzc2luZyBvd25lciBmb3Igc3RyaW5nIHJlZiBcIiArIG1peGVkUmVmICsgXCIuIFRoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCIgKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB2YXIgc3RyaW5nUmVmID0gJycgKyBtaXhlZFJlZjsgLy8gQ2hlY2sgaWYgcHJldmlvdXMgc3RyaW5nIHJlZiBtYXRjaGVzIG5ldyBzdHJpbmcgcmVmXG5cbiAgICAgIGlmIChjdXJyZW50ICE9PSBudWxsICYmIGN1cnJlbnQucmVmICE9PSBudWxsICYmIHR5cGVvZiBjdXJyZW50LnJlZiA9PT0gJ2Z1bmN0aW9uJyAmJiBjdXJyZW50LnJlZi5fc3RyaW5nUmVmID09PSBzdHJpbmdSZWYpIHtcbiAgICAgICAgcmV0dXJuIGN1cnJlbnQucmVmO1xuICAgICAgfVxuXG4gICAgICB2YXIgcmVmID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgIHZhciByZWZzID0gaW5zdC5yZWZzO1xuXG4gICAgICAgIGlmIChyZWZzID09PSBlbXB0eVJlZnNPYmplY3QpIHtcbiAgICAgICAgICAvLyBUaGlzIGlzIGEgbGF6eSBwb29sZWQgZnJvemVuIG9iamVjdCwgc28gd2UgbmVlZCB0byBpbml0aWFsaXplLlxuICAgICAgICAgIHJlZnMgPSBpbnN0LnJlZnMgPSB7fTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgIGRlbGV0ZSByZWZzW3N0cmluZ1JlZl07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVmc1tzdHJpbmdSZWZdID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIHJlZi5fc3RyaW5nUmVmID0gc3RyaW5nUmVmO1xuICAgICAgcmV0dXJuIHJlZjtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCEodHlwZW9mIG1peGVkUmVmID09PSAnc3RyaW5nJykpIHtcbiAgICAgICAge1xuICAgICAgICAgIHRocm93IEVycm9yKCBcIkV4cGVjdGVkIHJlZiB0byBiZSBhIGZ1bmN0aW9uLCBhIHN0cmluZywgYW4gb2JqZWN0IHJldHVybmVkIGJ5IFJlYWN0LmNyZWF0ZVJlZigpLCBvciBudWxsLlwiICk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKCFlbGVtZW50Ll9vd25lcikge1xuICAgICAgICB7XG4gICAgICAgICAgdGhyb3cgRXJyb3IoIFwiRWxlbWVudCByZWYgd2FzIHNwZWNpZmllZCBhcyBhIHN0cmluZyAoXCIgKyBtaXhlZFJlZiArIFwiKSBidXQgbm8gb3duZXIgd2FzIHNldC4gVGhpcyBjb3VsZCBoYXBwZW4gZm9yIG9uZSBvZiB0aGUgZm9sbG93aW5nIHJlYXNvbnM6XFxuMS4gWW91IG1heSBiZSBhZGRpbmcgYSByZWYgdG8gYSBmdW5jdGlvbiBjb21wb25lbnRcXG4yLiBZb3UgbWF5IGJlIGFkZGluZyBhIHJlZiB0byBhIGNvbXBvbmVudCB0aGF0IHdhcyBub3QgY3JlYXRlZCBpbnNpZGUgYSBjb21wb25lbnQncyByZW5kZXIgbWV0aG9kXFxuMy4gWW91IGhhdmUgbXVsdGlwbGUgY29waWVzIG9mIFJlYWN0IGxvYWRlZFxcblNlZSBodHRwczovL3JlYWN0anMub3JnL2xpbmsvcmVmcy1tdXN0LWhhdmUtb3duZXIgZm9yIG1vcmUgaW5mb3JtYXRpb24uXCIgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBtaXhlZFJlZjtcbn1cblxuZnVuY3Rpb24gdGhyb3dPbkludmFsaWRPYmplY3RUeXBlKHJldHVybkZpYmVyLCBuZXdDaGlsZCkge1xuICBpZiAocmV0dXJuRmliZXIudHlwZSAhPT0gJ3RleHRhcmVhJykge1xuICAgIHtcbiAgICAgIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoIFwiT2JqZWN0cyBhcmUgbm90IHZhbGlkIGFzIGEgUmVhY3QgY2hpbGQgKGZvdW5kOiBcIiArIChPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobmV3Q2hpbGQpID09PSAnW29iamVjdCBPYmplY3RdJyA/ICdvYmplY3Qgd2l0aCBrZXlzIHsnICsgT2JqZWN0LmtleXMobmV3Q2hpbGQpLmpvaW4oJywgJykgKyAnfScgOiBuZXdDaGlsZCkgKyBcIikuIElmIHlvdSBtZWFudCB0byByZW5kZXIgYSBjb2xsZWN0aW9uIG9mIGNoaWxkcmVuLCB1c2UgYW4gYXJyYXkgaW5zdGVhZC5cIiApO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB3YXJuT25GdW5jdGlvblR5cGUocmV0dXJuRmliZXIpIHtcbiAge1xuICAgIHZhciBjb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZShyZXR1cm5GaWJlci50eXBlKSB8fCAnQ29tcG9uZW50JztcblxuICAgIGlmIChvd25lckhhc0Z1bmN0aW9uVHlwZVdhcm5pbmdbY29tcG9uZW50TmFtZV0pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBvd25lckhhc0Z1bmN0aW9uVHlwZVdhcm5pbmdbY29tcG9uZW50TmFtZV0gPSB0cnVlO1xuXG4gICAgZXJyb3IoJ0Z1bmN0aW9ucyBhcmUgbm90IHZhbGlkIGFzIGEgUmVhY3QgY2hpbGQuIFRoaXMgbWF5IGhhcHBlbiBpZiAnICsgJ3lvdSByZXR1cm4gYSBDb21wb25lbnQgaW5zdGVhZCBvZiA8Q29tcG9uZW50IC8+IGZyb20gcmVuZGVyLiAnICsgJ09yIG1heWJlIHlvdSBtZWFudCB0byBjYWxsIHRoaXMgZnVuY3Rpb24gcmF0aGVyIHRoYW4gcmV0dXJuIGl0LicpO1xuICB9XG59IC8vIFdlIGF2b2lkIGlubGluaW5nIHRoaXMgdG8gYXZvaWQgcG90ZW50aWFsIGRlb3B0cyBmcm9tIHVzaW5nIHRyeS9jYXRjaC5cbi8vIHRvIGJlIGFibGUgdG8gb3B0aW1pemUgZWFjaCBwYXRoIGluZGl2aWR1YWxseSBieSBicmFuY2hpbmcgZWFybHkuIFRoaXMgbmVlZHNcbi8vIGEgY29tcGlsZXIgb3Igd2UgY2FuIGRvIGl0IG1hbnVhbGx5LiBIZWxwZXJzIHRoYXQgZG9uJ3QgbmVlZCB0aGlzIGJyYW5jaGluZ1xuLy8gbGl2ZSBvdXRzaWRlIG9mIHRoaXMgZnVuY3Rpb24uXG5cblxuZnVuY3Rpb24gQ2hpbGRSZWNvbmNpbGVyKHNob3VsZFRyYWNrU2lkZUVmZmVjdHMpIHtcbiAgZnVuY3Rpb24gZGVsZXRlQ2hpbGQocmV0dXJuRmliZXIsIGNoaWxkVG9EZWxldGUpIHtcbiAgICBpZiAoIXNob3VsZFRyYWNrU2lkZUVmZmVjdHMpIHtcbiAgICAgIC8vIE5vb3AuXG4gICAgICByZXR1cm47XG4gICAgfSAvLyBEZWxldGlvbnMgYXJlIGFkZGVkIGluIHJldmVyc2VkIG9yZGVyIHNvIHdlIGFkZCBpdCB0byB0aGUgZnJvbnQuXG4gICAgLy8gQXQgdGhpcyBwb2ludCwgdGhlIHJldHVybiBmaWJlcidzIGVmZmVjdCBsaXN0IGlzIGVtcHR5IGV4Y2VwdCBmb3JcbiAgICAvLyBkZWxldGlvbnMsIHNvIHdlIGNhbiBqdXN0IGFwcGVuZCB0aGUgZGVsZXRpb24gdG8gdGhlIGxpc3QuIFRoZSByZW1haW5pbmdcbiAgICAvLyBlZmZlY3RzIGFyZW4ndCBhZGRlZCB1bnRpbCB0aGUgY29tcGxldGUgcGhhc2UuIE9uY2Ugd2UgaW1wbGVtZW50XG4gICAgLy8gcmVzdW1pbmcsIHRoaXMgbWF5IG5vdCBiZSB0cnVlLlxuXG5cbiAgICB2YXIgbGFzdCA9IHJldHVybkZpYmVyLmxhc3RFZmZlY3Q7XG5cbiAgICBpZiAobGFzdCAhPT0gbnVsbCkge1xuICAgICAgbGFzdC5uZXh0RWZmZWN0ID0gY2hpbGRUb0RlbGV0ZTtcbiAgICAgIHJldHVybkZpYmVyLmxhc3RFZmZlY3QgPSBjaGlsZFRvRGVsZXRlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm5GaWJlci5maXJzdEVmZmVjdCA9IHJldHVybkZpYmVyLmxhc3RFZmZlY3QgPSBjaGlsZFRvRGVsZXRlO1xuICAgIH1cblxuICAgIGNoaWxkVG9EZWxldGUubmV4dEVmZmVjdCA9IG51bGw7XG4gICAgY2hpbGRUb0RlbGV0ZS5mbGFncyA9IERlbGV0aW9uO1xuICB9XG5cbiAgZnVuY3Rpb24gZGVsZXRlUmVtYWluaW5nQ2hpbGRyZW4ocmV0dXJuRmliZXIsIGN1cnJlbnRGaXJzdENoaWxkKSB7XG4gICAgaWYgKCFzaG91bGRUcmFja1NpZGVFZmZlY3RzKSB7XG4gICAgICAvLyBOb29wLlxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSAvLyBUT0RPOiBGb3IgdGhlIHNob3VsZENsb25lIGNhc2UsIHRoaXMgY291bGQgYmUgbWljcm8tb3B0aW1pemVkIGEgYml0IGJ5XG4gICAgLy8gYXNzdW1pbmcgdGhhdCBhZnRlciB0aGUgZmlyc3QgY2hpbGQgd2UndmUgYWxyZWFkeSBhZGRlZCBldmVyeXRoaW5nLlxuXG5cbiAgICB2YXIgY2hpbGRUb0RlbGV0ZSA9IGN1cnJlbnRGaXJzdENoaWxkO1xuXG4gICAgd2hpbGUgKGNoaWxkVG9EZWxldGUgIT09IG51bGwpIHtcbiAgICAgIGRlbGV0ZUNoaWxkKHJldHVybkZpYmVyLCBjaGlsZFRvRGVsZXRlKTtcbiAgICAgIGNoaWxkVG9EZWxldGUgPSBjaGlsZFRvRGVsZXRlLnNpYmxpbmc7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBmdW5jdGlvbiBtYXBSZW1haW5pbmdDaGlsZHJlbihyZXR1cm5GaWJlciwgY3VycmVudEZpcnN0Q2hpbGQpIHtcbiAgICAvLyBBZGQgdGhlIHJlbWFpbmluZyBjaGlsZHJlbiB0byBhIHRlbXBvcmFyeSBtYXAgc28gdGhhdCB3ZSBjYW4gZmluZCB0aGVtIGJ5XG4gICAgLy8ga2V5cyBxdWlja2x5LiBJbXBsaWNpdCAobnVsbCkga2V5cyBnZXQgYWRkZWQgdG8gdGhpcyBzZXQgd2l0aCB0aGVpciBpbmRleFxuICAgIC8vIGluc3RlYWQuXG4gICAgdmFyIGV4aXN0aW5nQ2hpbGRyZW4gPSBuZXcgTWFwKCk7XG4gICAgdmFyIGV4aXN0aW5nQ2hpbGQgPSBjdXJyZW50Rmlyc3RDaGlsZDtcblxuICAgIHdoaWxlIChleGlzdGluZ0NoaWxkICE9PSBudWxsKSB7XG4gICAgICBpZiAoZXhpc3RpbmdDaGlsZC5rZXkgIT09IG51bGwpIHtcbiAgICAgICAgZXhpc3RpbmdDaGlsZHJlbi5zZXQoZXhpc3RpbmdDaGlsZC5rZXksIGV4aXN0aW5nQ2hpbGQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXhpc3RpbmdDaGlsZHJlbi5zZXQoZXhpc3RpbmdDaGlsZC5pbmRleCwgZXhpc3RpbmdDaGlsZCk7XG4gICAgICB9XG5cbiAgICAgIGV4aXN0aW5nQ2hpbGQgPSBleGlzdGluZ0NoaWxkLnNpYmxpbmc7XG4gICAgfVxuXG4gICAgcmV0dXJuIGV4aXN0aW5nQ2hpbGRyZW47XG4gIH1cblxuICBmdW5jdGlvbiB1c2VGaWJlcihmaWJlciwgcGVuZGluZ1Byb3BzKSB7XG4gICAgLy8gV2UgY3VycmVudGx5IHNldCBzaWJsaW5nIHRvIG51bGwgYW5kIGluZGV4IHRvIDAgaGVyZSBiZWNhdXNlIGl0IGlzIGVhc3lcbiAgICAvLyB0byBmb3JnZXQgdG8gZG8gYmVmb3JlIHJldHVybmluZyBpdC4gRS5nLiBmb3IgdGhlIHNpbmdsZSBjaGlsZCBjYXNlLlxuICAgIHZhciBjbG9uZSA9IGNyZWF0ZVdvcmtJblByb2dyZXNzKGZpYmVyLCBwZW5kaW5nUHJvcHMpO1xuICAgIGNsb25lLmluZGV4ID0gMDtcbiAgICBjbG9uZS5zaWJsaW5nID0gbnVsbDtcbiAgICByZXR1cm4gY2xvbmU7XG4gIH1cblxuICBmdW5jdGlvbiBwbGFjZUNoaWxkKG5ld0ZpYmVyLCBsYXN0UGxhY2VkSW5kZXgsIG5ld0luZGV4KSB7XG4gICAgbmV3RmliZXIuaW5kZXggPSBuZXdJbmRleDtcblxuICAgIGlmICghc2hvdWxkVHJhY2tTaWRlRWZmZWN0cykge1xuICAgICAgLy8gTm9vcC5cbiAgICAgIHJldHVybiBsYXN0UGxhY2VkSW5kZXg7XG4gICAgfVxuXG4gICAgdmFyIGN1cnJlbnQgPSBuZXdGaWJlci5hbHRlcm5hdGU7XG5cbiAgICBpZiAoY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgdmFyIG9sZEluZGV4ID0gY3VycmVudC5pbmRleDtcblxuICAgICAgaWYgKG9sZEluZGV4IDwgbGFzdFBsYWNlZEluZGV4KSB7XG4gICAgICAgIC8vIFRoaXMgaXMgYSBtb3ZlLlxuICAgICAgICBuZXdGaWJlci5mbGFncyA9IFBsYWNlbWVudDtcbiAgICAgICAgcmV0dXJuIGxhc3RQbGFjZWRJbmRleDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFRoaXMgaXRlbSBjYW4gc3RheSBpbiBwbGFjZS5cbiAgICAgICAgcmV0dXJuIG9sZEluZGV4O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUaGlzIGlzIGFuIGluc2VydGlvbi5cbiAgICAgIG5ld0ZpYmVyLmZsYWdzID0gUGxhY2VtZW50O1xuICAgICAgcmV0dXJuIGxhc3RQbGFjZWRJbmRleDtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBwbGFjZVNpbmdsZUNoaWxkKG5ld0ZpYmVyKSB7XG4gICAgLy8gVGhpcyBpcyBzaW1wbGVyIGZvciB0aGUgc2luZ2xlIGNoaWxkIGNhc2UuIFdlIG9ubHkgbmVlZCB0byBkbyBhXG4gICAgLy8gcGxhY2VtZW50IGZvciBpbnNlcnRpbmcgbmV3IGNoaWxkcmVuLlxuICAgIGlmIChzaG91bGRUcmFja1NpZGVFZmZlY3RzICYmIG5ld0ZpYmVyLmFsdGVybmF0ZSA9PT0gbnVsbCkge1xuICAgICAgbmV3RmliZXIuZmxhZ3MgPSBQbGFjZW1lbnQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ld0ZpYmVyO1xuICB9XG5cbiAgZnVuY3Rpb24gdXBkYXRlVGV4dE5vZGUocmV0dXJuRmliZXIsIGN1cnJlbnQsIHRleHRDb250ZW50LCBsYW5lcykge1xuICAgIGlmIChjdXJyZW50ID09PSBudWxsIHx8IGN1cnJlbnQudGFnICE9PSBIb3N0VGV4dCkge1xuICAgICAgLy8gSW5zZXJ0XG4gICAgICB2YXIgY3JlYXRlZCA9IGNyZWF0ZUZpYmVyRnJvbVRleHQodGV4dENvbnRlbnQsIHJldHVybkZpYmVyLm1vZGUsIGxhbmVzKTtcbiAgICAgIGNyZWF0ZWQucmV0dXJuID0gcmV0dXJuRmliZXI7XG4gICAgICByZXR1cm4gY3JlYXRlZDtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVXBkYXRlXG4gICAgICB2YXIgZXhpc3RpbmcgPSB1c2VGaWJlcihjdXJyZW50LCB0ZXh0Q29udGVudCk7XG4gICAgICBleGlzdGluZy5yZXR1cm4gPSByZXR1cm5GaWJlcjtcbiAgICAgIHJldHVybiBleGlzdGluZztcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiB1cGRhdGVFbGVtZW50KHJldHVybkZpYmVyLCBjdXJyZW50LCBlbGVtZW50LCBsYW5lcykge1xuICAgIGlmIChjdXJyZW50ICE9PSBudWxsKSB7XG4gICAgICBpZiAoY3VycmVudC5lbGVtZW50VHlwZSA9PT0gZWxlbWVudC50eXBlIHx8ICggLy8gS2VlcCB0aGlzIGNoZWNrIGlubGluZSBzbyBpdCBvbmx5IHJ1bnMgb24gdGhlIGZhbHNlIHBhdGg6XG4gICAgICAgaXNDb21wYXRpYmxlRmFtaWx5Rm9ySG90UmVsb2FkaW5nKGN1cnJlbnQsIGVsZW1lbnQpICkpIHtcbiAgICAgICAgLy8gTW92ZSBiYXNlZCBvbiBpbmRleFxuICAgICAgICB2YXIgZXhpc3RpbmcgPSB1c2VGaWJlcihjdXJyZW50LCBlbGVtZW50LnByb3BzKTtcbiAgICAgICAgZXhpc3RpbmcucmVmID0gY29lcmNlUmVmKHJldHVybkZpYmVyLCBjdXJyZW50LCBlbGVtZW50KTtcbiAgICAgICAgZXhpc3RpbmcucmV0dXJuID0gcmV0dXJuRmliZXI7XG5cbiAgICAgICAge1xuICAgICAgICAgIGV4aXN0aW5nLl9kZWJ1Z1NvdXJjZSA9IGVsZW1lbnQuX3NvdXJjZTtcbiAgICAgICAgICBleGlzdGluZy5fZGVidWdPd25lciA9IGVsZW1lbnQuX293bmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGV4aXN0aW5nO1xuICAgICAgfVxuICAgIH0gLy8gSW5zZXJ0XG5cblxuICAgIHZhciBjcmVhdGVkID0gY3JlYXRlRmliZXJGcm9tRWxlbWVudChlbGVtZW50LCByZXR1cm5GaWJlci5tb2RlLCBsYW5lcyk7XG4gICAgY3JlYXRlZC5yZWYgPSBjb2VyY2VSZWYocmV0dXJuRmliZXIsIGN1cnJlbnQsIGVsZW1lbnQpO1xuICAgIGNyZWF0ZWQucmV0dXJuID0gcmV0dXJuRmliZXI7XG4gICAgcmV0dXJuIGNyZWF0ZWQ7XG4gIH1cblxuICBmdW5jdGlvbiB1cGRhdGVQb3J0YWwocmV0dXJuRmliZXIsIGN1cnJlbnQsIHBvcnRhbCwgbGFuZXMpIHtcbiAgICBpZiAoY3VycmVudCA9PT0gbnVsbCB8fCBjdXJyZW50LnRhZyAhPT0gSG9zdFBvcnRhbCB8fCBjdXJyZW50LnN0YXRlTm9kZS5jb250YWluZXJJbmZvICE9PSBwb3J0YWwuY29udGFpbmVySW5mbyB8fCBjdXJyZW50LnN0YXRlTm9kZS5pbXBsZW1lbnRhdGlvbiAhPT0gcG9ydGFsLmltcGxlbWVudGF0aW9uKSB7XG4gICAgICAvLyBJbnNlcnRcbiAgICAgIHZhciBjcmVhdGVkID0gY3JlYXRlRmliZXJGcm9tUG9ydGFsKHBvcnRhbCwgcmV0dXJuRmliZXIubW9kZSwgbGFuZXMpO1xuICAgICAgY3JlYXRlZC5yZXR1cm4gPSByZXR1cm5GaWJlcjtcbiAgICAgIHJldHVybiBjcmVhdGVkO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBVcGRhdGVcbiAgICAgIHZhciBleGlzdGluZyA9IHVzZUZpYmVyKGN1cnJlbnQsIHBvcnRhbC5jaGlsZHJlbiB8fCBbXSk7XG4gICAgICBleGlzdGluZy5yZXR1cm4gPSByZXR1cm5GaWJlcjtcbiAgICAgIHJldHVybiBleGlzdGluZztcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiB1cGRhdGVGcmFnbWVudChyZXR1cm5GaWJlciwgY3VycmVudCwgZnJhZ21lbnQsIGxhbmVzLCBrZXkpIHtcbiAgICBpZiAoY3VycmVudCA9PT0gbnVsbCB8fCBjdXJyZW50LnRhZyAhPT0gRnJhZ21lbnQpIHtcbiAgICAgIC8vIEluc2VydFxuICAgICAgdmFyIGNyZWF0ZWQgPSBjcmVhdGVGaWJlckZyb21GcmFnbWVudChmcmFnbWVudCwgcmV0dXJuRmliZXIubW9kZSwgbGFuZXMsIGtleSk7XG4gICAgICBjcmVhdGVkLnJldHVybiA9IHJldHVybkZpYmVyO1xuICAgICAgcmV0dXJuIGNyZWF0ZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFVwZGF0ZVxuICAgICAgdmFyIGV4aXN0aW5nID0gdXNlRmliZXIoY3VycmVudCwgZnJhZ21lbnQpO1xuICAgICAgZXhpc3RpbmcucmV0dXJuID0gcmV0dXJuRmliZXI7XG4gICAgICByZXR1cm4gZXhpc3Rpbmc7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gY3JlYXRlQ2hpbGQocmV0dXJuRmliZXIsIG5ld0NoaWxkLCBsYW5lcykge1xuICAgIGlmICh0eXBlb2YgbmV3Q2hpbGQgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBuZXdDaGlsZCA9PT0gJ251bWJlcicpIHtcbiAgICAgIC8vIFRleHQgbm9kZXMgZG9uJ3QgaGF2ZSBrZXlzLiBJZiB0aGUgcHJldmlvdXMgbm9kZSBpcyBpbXBsaWNpdGx5IGtleWVkXG4gICAgICAvLyB3ZSBjYW4gY29udGludWUgdG8gcmVwbGFjZSBpdCB3aXRob3V0IGFib3J0aW5nIGV2ZW4gaWYgaXQgaXMgbm90IGEgdGV4dFxuICAgICAgLy8gbm9kZS5cbiAgICAgIHZhciBjcmVhdGVkID0gY3JlYXRlRmliZXJGcm9tVGV4dCgnJyArIG5ld0NoaWxkLCByZXR1cm5GaWJlci5tb2RlLCBsYW5lcyk7XG4gICAgICBjcmVhdGVkLnJldHVybiA9IHJldHVybkZpYmVyO1xuICAgICAgcmV0dXJuIGNyZWF0ZWQ7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBuZXdDaGlsZCA9PT0gJ29iamVjdCcgJiYgbmV3Q2hpbGQgIT09IG51bGwpIHtcbiAgICAgIHN3aXRjaCAobmV3Q2hpbGQuJCR0eXBlb2YpIHtcbiAgICAgICAgY2FzZSBSRUFDVF9FTEVNRU5UX1RZUEU6XG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFyIF9jcmVhdGVkID0gY3JlYXRlRmliZXJGcm9tRWxlbWVudChuZXdDaGlsZCwgcmV0dXJuRmliZXIubW9kZSwgbGFuZXMpO1xuXG4gICAgICAgICAgICBfY3JlYXRlZC5yZWYgPSBjb2VyY2VSZWYocmV0dXJuRmliZXIsIG51bGwsIG5ld0NoaWxkKTtcbiAgICAgICAgICAgIF9jcmVhdGVkLnJldHVybiA9IHJldHVybkZpYmVyO1xuICAgICAgICAgICAgcmV0dXJuIF9jcmVhdGVkO1xuICAgICAgICAgIH1cblxuICAgICAgICBjYXNlIFJFQUNUX1BPUlRBTF9UWVBFOlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhciBfY3JlYXRlZDIgPSBjcmVhdGVGaWJlckZyb21Qb3J0YWwobmV3Q2hpbGQsIHJldHVybkZpYmVyLm1vZGUsIGxhbmVzKTtcblxuICAgICAgICAgICAgX2NyZWF0ZWQyLnJldHVybiA9IHJldHVybkZpYmVyO1xuICAgICAgICAgICAgcmV0dXJuIF9jcmVhdGVkMjtcbiAgICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChpc0FycmF5JDEobmV3Q2hpbGQpIHx8IGdldEl0ZXJhdG9yRm4obmV3Q2hpbGQpKSB7XG4gICAgICAgIHZhciBfY3JlYXRlZDMgPSBjcmVhdGVGaWJlckZyb21GcmFnbWVudChuZXdDaGlsZCwgcmV0dXJuRmliZXIubW9kZSwgbGFuZXMsIG51bGwpO1xuXG4gICAgICAgIF9jcmVhdGVkMy5yZXR1cm4gPSByZXR1cm5GaWJlcjtcbiAgICAgICAgcmV0dXJuIF9jcmVhdGVkMztcbiAgICAgIH1cblxuICAgICAgdGhyb3dPbkludmFsaWRPYmplY3RUeXBlKHJldHVybkZpYmVyLCBuZXdDaGlsZCk7XG4gICAgfVxuXG4gICAge1xuICAgICAgaWYgKHR5cGVvZiBuZXdDaGlsZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB3YXJuT25GdW5jdGlvblR5cGUocmV0dXJuRmliZXIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgZnVuY3Rpb24gdXBkYXRlU2xvdChyZXR1cm5GaWJlciwgb2xkRmliZXIsIG5ld0NoaWxkLCBsYW5lcykge1xuICAgIC8vIFVwZGF0ZSB0aGUgZmliZXIgaWYgdGhlIGtleXMgbWF0Y2gsIG90aGVyd2lzZSByZXR1cm4gbnVsbC5cbiAgICB2YXIga2V5ID0gb2xkRmliZXIgIT09IG51bGwgPyBvbGRGaWJlci5rZXkgOiBudWxsO1xuXG4gICAgaWYgKHR5cGVvZiBuZXdDaGlsZCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIG5ld0NoaWxkID09PSAnbnVtYmVyJykge1xuICAgICAgLy8gVGV4dCBub2RlcyBkb24ndCBoYXZlIGtleXMuIElmIHRoZSBwcmV2aW91cyBub2RlIGlzIGltcGxpY2l0bHkga2V5ZWRcbiAgICAgIC8vIHdlIGNhbiBjb250aW51ZSB0byByZXBsYWNlIGl0IHdpdGhvdXQgYWJvcnRpbmcgZXZlbiBpZiBpdCBpcyBub3QgYSB0ZXh0XG4gICAgICAvLyBub2RlLlxuICAgICAgaWYgKGtleSAhPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVwZGF0ZVRleHROb2RlKHJldHVybkZpYmVyLCBvbGRGaWJlciwgJycgKyBuZXdDaGlsZCwgbGFuZXMpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgbmV3Q2hpbGQgPT09ICdvYmplY3QnICYmIG5ld0NoaWxkICE9PSBudWxsKSB7XG4gICAgICBzd2l0Y2ggKG5ld0NoaWxkLiQkdHlwZW9mKSB7XG4gICAgICAgIGNhc2UgUkVBQ1RfRUxFTUVOVF9UWVBFOlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlmIChuZXdDaGlsZC5rZXkgPT09IGtleSkge1xuICAgICAgICAgICAgICBpZiAobmV3Q2hpbGQudHlwZSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB1cGRhdGVGcmFnbWVudChyZXR1cm5GaWJlciwgb2xkRmliZXIsIG5ld0NoaWxkLnByb3BzLmNoaWxkcmVuLCBsYW5lcywga2V5KTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHJldHVybiB1cGRhdGVFbGVtZW50KHJldHVybkZpYmVyLCBvbGRGaWJlciwgbmV3Q2hpbGQsIGxhbmVzKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICBjYXNlIFJFQUNUX1BPUlRBTF9UWVBFOlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlmIChuZXdDaGlsZC5rZXkgPT09IGtleSkge1xuICAgICAgICAgICAgICByZXR1cm4gdXBkYXRlUG9ydGFsKHJldHVybkZpYmVyLCBvbGRGaWJlciwgbmV3Q2hpbGQsIGxhbmVzKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGlzQXJyYXkkMShuZXdDaGlsZCkgfHwgZ2V0SXRlcmF0b3JGbihuZXdDaGlsZCkpIHtcbiAgICAgICAgaWYgKGtleSAhPT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHVwZGF0ZUZyYWdtZW50KHJldHVybkZpYmVyLCBvbGRGaWJlciwgbmV3Q2hpbGQsIGxhbmVzLCBudWxsKTtcbiAgICAgIH1cblxuICAgICAgdGhyb3dPbkludmFsaWRPYmplY3RUeXBlKHJldHVybkZpYmVyLCBuZXdDaGlsZCk7XG4gICAgfVxuXG4gICAge1xuICAgICAgaWYgKHR5cGVvZiBuZXdDaGlsZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB3YXJuT25GdW5jdGlvblR5cGUocmV0dXJuRmliZXIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgZnVuY3Rpb24gdXBkYXRlRnJvbU1hcChleGlzdGluZ0NoaWxkcmVuLCByZXR1cm5GaWJlciwgbmV3SWR4LCBuZXdDaGlsZCwgbGFuZXMpIHtcbiAgICBpZiAodHlwZW9mIG5ld0NoaWxkID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgbmV3Q2hpbGQgPT09ICdudW1iZXInKSB7XG4gICAgICAvLyBUZXh0IG5vZGVzIGRvbid0IGhhdmUga2V5cywgc28gd2UgbmVpdGhlciBoYXZlIHRvIGNoZWNrIHRoZSBvbGQgbm9yXG4gICAgICAvLyBuZXcgbm9kZSBmb3IgdGhlIGtleS4gSWYgYm90aCBhcmUgdGV4dCBub2RlcywgdGhleSBtYXRjaC5cbiAgICAgIHZhciBtYXRjaGVkRmliZXIgPSBleGlzdGluZ0NoaWxkcmVuLmdldChuZXdJZHgpIHx8IG51bGw7XG4gICAgICByZXR1cm4gdXBkYXRlVGV4dE5vZGUocmV0dXJuRmliZXIsIG1hdGNoZWRGaWJlciwgJycgKyBuZXdDaGlsZCwgbGFuZXMpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgbmV3Q2hpbGQgPT09ICdvYmplY3QnICYmIG5ld0NoaWxkICE9PSBudWxsKSB7XG4gICAgICBzd2l0Y2ggKG5ld0NoaWxkLiQkdHlwZW9mKSB7XG4gICAgICAgIGNhc2UgUkVBQ1RfRUxFTUVOVF9UWVBFOlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhciBfbWF0Y2hlZEZpYmVyID0gZXhpc3RpbmdDaGlsZHJlbi5nZXQobmV3Q2hpbGQua2V5ID09PSBudWxsID8gbmV3SWR4IDogbmV3Q2hpbGQua2V5KSB8fCBudWxsO1xuXG4gICAgICAgICAgICBpZiAobmV3Q2hpbGQudHlwZSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRSkge1xuICAgICAgICAgICAgICByZXR1cm4gdXBkYXRlRnJhZ21lbnQocmV0dXJuRmliZXIsIF9tYXRjaGVkRmliZXIsIG5ld0NoaWxkLnByb3BzLmNoaWxkcmVuLCBsYW5lcywgbmV3Q2hpbGQua2V5KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZUVsZW1lbnQocmV0dXJuRmliZXIsIF9tYXRjaGVkRmliZXIsIG5ld0NoaWxkLCBsYW5lcyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgIGNhc2UgUkVBQ1RfUE9SVEFMX1RZUEU6XG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFyIF9tYXRjaGVkRmliZXIyID0gZXhpc3RpbmdDaGlsZHJlbi5nZXQobmV3Q2hpbGQua2V5ID09PSBudWxsID8gbmV3SWR4IDogbmV3Q2hpbGQua2V5KSB8fCBudWxsO1xuXG4gICAgICAgICAgICByZXR1cm4gdXBkYXRlUG9ydGFsKHJldHVybkZpYmVyLCBfbWF0Y2hlZEZpYmVyMiwgbmV3Q2hpbGQsIGxhbmVzKTtcbiAgICAgICAgICB9XG5cbiAgICAgIH1cblxuICAgICAgaWYgKGlzQXJyYXkkMShuZXdDaGlsZCkgfHwgZ2V0SXRlcmF0b3JGbihuZXdDaGlsZCkpIHtcbiAgICAgICAgdmFyIF9tYXRjaGVkRmliZXIzID0gZXhpc3RpbmdDaGlsZHJlbi5nZXQobmV3SWR4KSB8fCBudWxsO1xuXG4gICAgICAgIHJldHVybiB1cGRhdGVGcmFnbWVudChyZXR1cm5GaWJlciwgX21hdGNoZWRGaWJlcjMsIG5ld0NoaWxkLCBsYW5lcywgbnVsbCk7XG4gICAgICB9XG5cbiAgICAgIHRocm93T25JbnZhbGlkT2JqZWN0VHlwZShyZXR1cm5GaWJlciwgbmV3Q2hpbGQpO1xuICAgIH1cblxuICAgIHtcbiAgICAgIGlmICh0eXBlb2YgbmV3Q2hpbGQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgd2Fybk9uRnVuY3Rpb25UeXBlKHJldHVybkZpYmVyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICAvKipcbiAgICogV2FybnMgaWYgdGhlcmUgaXMgYSBkdXBsaWNhdGUgb3IgbWlzc2luZyBrZXlcbiAgICovXG5cblxuICBmdW5jdGlvbiB3YXJuT25JbnZhbGlkS2V5KGNoaWxkLCBrbm93bktleXMsIHJldHVybkZpYmVyKSB7XG4gICAge1xuICAgICAgaWYgKHR5cGVvZiBjaGlsZCAhPT0gJ29iamVjdCcgfHwgY2hpbGQgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIGtub3duS2V5cztcbiAgICAgIH1cblxuICAgICAgc3dpdGNoIChjaGlsZC4kJHR5cGVvZikge1xuICAgICAgICBjYXNlIFJFQUNUX0VMRU1FTlRfVFlQRTpcbiAgICAgICAgY2FzZSBSRUFDVF9QT1JUQUxfVFlQRTpcbiAgICAgICAgICB3YXJuRm9yTWlzc2luZ0tleShjaGlsZCwgcmV0dXJuRmliZXIpO1xuICAgICAgICAgIHZhciBrZXkgPSBjaGlsZC5rZXk7XG5cbiAgICAgICAgICBpZiAodHlwZW9mIGtleSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChrbm93bktleXMgPT09IG51bGwpIHtcbiAgICAgICAgICAgIGtub3duS2V5cyA9IG5ldyBTZXQoKTtcbiAgICAgICAgICAgIGtub3duS2V5cy5hZGQoa2V5KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICgha25vd25LZXlzLmhhcyhrZXkpKSB7XG4gICAgICAgICAgICBrbm93bktleXMuYWRkKGtleSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBlcnJvcignRW5jb3VudGVyZWQgdHdvIGNoaWxkcmVuIHdpdGggdGhlIHNhbWUga2V5LCBgJXNgLiAnICsgJ0tleXMgc2hvdWxkIGJlIHVuaXF1ZSBzbyB0aGF0IGNvbXBvbmVudHMgbWFpbnRhaW4gdGhlaXIgaWRlbnRpdHkgJyArICdhY3Jvc3MgdXBkYXRlcy4gTm9uLXVuaXF1ZSBrZXlzIG1heSBjYXVzZSBjaGlsZHJlbiB0byBiZSAnICsgJ2R1cGxpY2F0ZWQgYW5kL29yIG9taXR0ZWQg4oCUIHRoZSBiZWhhdmlvciBpcyB1bnN1cHBvcnRlZCBhbmQgJyArICdjb3VsZCBjaGFuZ2UgaW4gYSBmdXR1cmUgdmVyc2lvbi4nLCBrZXkpO1xuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGtub3duS2V5cztcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlY29uY2lsZUNoaWxkcmVuQXJyYXkocmV0dXJuRmliZXIsIGN1cnJlbnRGaXJzdENoaWxkLCBuZXdDaGlsZHJlbiwgbGFuZXMpIHtcbiAgICAvLyBUaGlzIGFsZ29yaXRobSBjYW4ndCBvcHRpbWl6ZSBieSBzZWFyY2hpbmcgZnJvbSBib3RoIGVuZHMgc2luY2Ugd2VcbiAgICAvLyBkb24ndCBoYXZlIGJhY2twb2ludGVycyBvbiBmaWJlcnMuIEknbSB0cnlpbmcgdG8gc2VlIGhvdyBmYXIgd2UgY2FuIGdldFxuICAgIC8vIHdpdGggdGhhdCBtb2RlbC4gSWYgaXQgZW5kcyB1cCBub3QgYmVpbmcgd29ydGggdGhlIHRyYWRlb2Zmcywgd2UgY2FuXG4gICAgLy8gYWRkIGl0IGxhdGVyLlxuICAgIC8vIEV2ZW4gd2l0aCBhIHR3byBlbmRlZCBvcHRpbWl6YXRpb24sIHdlJ2Qgd2FudCB0byBvcHRpbWl6ZSBmb3IgdGhlIGNhc2VcbiAgICAvLyB3aGVyZSB0aGVyZSBhcmUgZmV3IGNoYW5nZXMgYW5kIGJydXRlIGZvcmNlIHRoZSBjb21wYXJpc29uIGluc3RlYWQgb2ZcbiAgICAvLyBnb2luZyBmb3IgdGhlIE1hcC4gSXQnZCBsaWtlIHRvIGV4cGxvcmUgaGl0dGluZyB0aGF0IHBhdGggZmlyc3QgaW5cbiAgICAvLyBmb3J3YXJkLW9ubHkgbW9kZSBhbmQgb25seSBnbyBmb3IgdGhlIE1hcCBvbmNlIHdlIG5vdGljZSB0aGF0IHdlIG5lZWRcbiAgICAvLyBsb3RzIG9mIGxvb2sgYWhlYWQuIFRoaXMgZG9lc24ndCBoYW5kbGUgcmV2ZXJzYWwgYXMgd2VsbCBhcyB0d28gZW5kZWRcbiAgICAvLyBzZWFyY2ggYnV0IHRoYXQncyB1bnVzdWFsLiBCZXNpZGVzLCBmb3IgdGhlIHR3byBlbmRlZCBvcHRpbWl6YXRpb24gdG9cbiAgICAvLyB3b3JrIG9uIEl0ZXJhYmxlcywgd2UnZCBuZWVkIHRvIGNvcHkgdGhlIHdob2xlIHNldC5cbiAgICAvLyBJbiB0aGlzIGZpcnN0IGl0ZXJhdGlvbiwgd2UnbGwganVzdCBsaXZlIHdpdGggaGl0dGluZyB0aGUgYmFkIGNhc2VcbiAgICAvLyAoYWRkaW5nIGV2ZXJ5dGhpbmcgdG8gYSBNYXApIGluIGZvciBldmVyeSBpbnNlcnQvbW92ZS5cbiAgICAvLyBJZiB5b3UgY2hhbmdlIHRoaXMgY29kZSwgYWxzbyB1cGRhdGUgcmVjb25jaWxlQ2hpbGRyZW5JdGVyYXRvcigpIHdoaWNoXG4gICAgLy8gdXNlcyB0aGUgc2FtZSBhbGdvcml0aG0uXG4gICAge1xuICAgICAgLy8gRmlyc3QsIHZhbGlkYXRlIGtleXMuXG4gICAgICB2YXIga25vd25LZXlzID0gbnVsbDtcblxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuZXdDaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgY2hpbGQgPSBuZXdDaGlsZHJlbltpXTtcbiAgICAgICAga25vd25LZXlzID0gd2Fybk9uSW52YWxpZEtleShjaGlsZCwga25vd25LZXlzLCByZXR1cm5GaWJlcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIHJlc3VsdGluZ0ZpcnN0Q2hpbGQgPSBudWxsO1xuICAgIHZhciBwcmV2aW91c05ld0ZpYmVyID0gbnVsbDtcbiAgICB2YXIgb2xkRmliZXIgPSBjdXJyZW50Rmlyc3RDaGlsZDtcbiAgICB2YXIgbGFzdFBsYWNlZEluZGV4ID0gMDtcbiAgICB2YXIgbmV3SWR4ID0gMDtcbiAgICB2YXIgbmV4dE9sZEZpYmVyID0gbnVsbDtcblxuICAgIGZvciAoOyBvbGRGaWJlciAhPT0gbnVsbCAmJiBuZXdJZHggPCBuZXdDaGlsZHJlbi5sZW5ndGg7IG5ld0lkeCsrKSB7XG4gICAgICBpZiAob2xkRmliZXIuaW5kZXggPiBuZXdJZHgpIHtcbiAgICAgICAgbmV4dE9sZEZpYmVyID0gb2xkRmliZXI7XG4gICAgICAgIG9sZEZpYmVyID0gbnVsbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5leHRPbGRGaWJlciA9IG9sZEZpYmVyLnNpYmxpbmc7XG4gICAgICB9XG5cbiAgICAgIHZhciBuZXdGaWJlciA9IHVwZGF0ZVNsb3QocmV0dXJuRmliZXIsIG9sZEZpYmVyLCBuZXdDaGlsZHJlbltuZXdJZHhdLCBsYW5lcyk7XG5cbiAgICAgIGlmIChuZXdGaWJlciA9PT0gbnVsbCkge1xuICAgICAgICAvLyBUT0RPOiBUaGlzIGJyZWFrcyBvbiBlbXB0eSBzbG90cyBsaWtlIG51bGwgY2hpbGRyZW4uIFRoYXQnc1xuICAgICAgICAvLyB1bmZvcnR1bmF0ZSBiZWNhdXNlIGl0IHRyaWdnZXJzIHRoZSBzbG93IHBhdGggYWxsIHRoZSB0aW1lLiBXZSBuZWVkXG4gICAgICAgIC8vIGEgYmV0dGVyIHdheSB0byBjb21tdW5pY2F0ZSB3aGV0aGVyIHRoaXMgd2FzIGEgbWlzcyBvciBudWxsLFxuICAgICAgICAvLyBib29sZWFuLCB1bmRlZmluZWQsIGV0Yy5cbiAgICAgICAgaWYgKG9sZEZpYmVyID09PSBudWxsKSB7XG4gICAgICAgICAgb2xkRmliZXIgPSBuZXh0T2xkRmliZXI7XG4gICAgICAgIH1cblxuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgaWYgKHNob3VsZFRyYWNrU2lkZUVmZmVjdHMpIHtcbiAgICAgICAgaWYgKG9sZEZpYmVyICYmIG5ld0ZpYmVyLmFsdGVybmF0ZSA9PT0gbnVsbCkge1xuICAgICAgICAgIC8vIFdlIG1hdGNoZWQgdGhlIHNsb3QsIGJ1dCB3ZSBkaWRuJ3QgcmV1c2UgdGhlIGV4aXN0aW5nIGZpYmVyLCBzbyB3ZVxuICAgICAgICAgIC8vIG5lZWQgdG8gZGVsZXRlIHRoZSBleGlzdGluZyBjaGlsZC5cbiAgICAgICAgICBkZWxldGVDaGlsZChyZXR1cm5GaWJlciwgb2xkRmliZXIpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGxhc3RQbGFjZWRJbmRleCA9IHBsYWNlQ2hpbGQobmV3RmliZXIsIGxhc3RQbGFjZWRJbmRleCwgbmV3SWR4KTtcblxuICAgICAgaWYgKHByZXZpb3VzTmV3RmliZXIgPT09IG51bGwpIHtcbiAgICAgICAgLy8gVE9ETzogTW92ZSBvdXQgb2YgdGhlIGxvb3AuIFRoaXMgb25seSBoYXBwZW5zIGZvciB0aGUgZmlyc3QgcnVuLlxuICAgICAgICByZXN1bHRpbmdGaXJzdENoaWxkID0gbmV3RmliZXI7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBUT0RPOiBEZWZlciBzaWJsaW5ncyBpZiB3ZSdyZSBub3QgYXQgdGhlIHJpZ2h0IGluZGV4IGZvciB0aGlzIHNsb3QuXG4gICAgICAgIC8vIEkuZS4gaWYgd2UgaGFkIG51bGwgdmFsdWVzIGJlZm9yZSwgdGhlbiB3ZSB3YW50IHRvIGRlZmVyIHRoaXNcbiAgICAgICAgLy8gZm9yIGVhY2ggbnVsbCB2YWx1ZS4gSG93ZXZlciwgd2UgYWxzbyBkb24ndCB3YW50IHRvIGNhbGwgdXBkYXRlU2xvdFxuICAgICAgICAvLyB3aXRoIHRoZSBwcmV2aW91cyBvbmUuXG4gICAgICAgIHByZXZpb3VzTmV3RmliZXIuc2libGluZyA9IG5ld0ZpYmVyO1xuICAgICAgfVxuXG4gICAgICBwcmV2aW91c05ld0ZpYmVyID0gbmV3RmliZXI7XG4gICAgICBvbGRGaWJlciA9IG5leHRPbGRGaWJlcjtcbiAgICB9XG5cbiAgICBpZiAobmV3SWR4ID09PSBuZXdDaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgIC8vIFdlJ3ZlIHJlYWNoZWQgdGhlIGVuZCBvZiB0aGUgbmV3IGNoaWxkcmVuLiBXZSBjYW4gZGVsZXRlIHRoZSByZXN0LlxuICAgICAgZGVsZXRlUmVtYWluaW5nQ2hpbGRyZW4ocmV0dXJuRmliZXIsIG9sZEZpYmVyKTtcbiAgICAgIHJldHVybiByZXN1bHRpbmdGaXJzdENoaWxkO1xuICAgIH1cblxuICAgIGlmIChvbGRGaWJlciA9PT0gbnVsbCkge1xuICAgICAgLy8gSWYgd2UgZG9uJ3QgaGF2ZSBhbnkgbW9yZSBleGlzdGluZyBjaGlsZHJlbiB3ZSBjYW4gY2hvb3NlIGEgZmFzdCBwYXRoXG4gICAgICAvLyBzaW5jZSB0aGUgcmVzdCB3aWxsIGFsbCBiZSBpbnNlcnRpb25zLlxuICAgICAgZm9yICg7IG5ld0lkeCA8IG5ld0NoaWxkcmVuLmxlbmd0aDsgbmV3SWR4KyspIHtcbiAgICAgICAgdmFyIF9uZXdGaWJlciA9IGNyZWF0ZUNoaWxkKHJldHVybkZpYmVyLCBuZXdDaGlsZHJlbltuZXdJZHhdLCBsYW5lcyk7XG5cbiAgICAgICAgaWYgKF9uZXdGaWJlciA9PT0gbnVsbCkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgbGFzdFBsYWNlZEluZGV4ID0gcGxhY2VDaGlsZChfbmV3RmliZXIsIGxhc3RQbGFjZWRJbmRleCwgbmV3SWR4KTtcblxuICAgICAgICBpZiAocHJldmlvdXNOZXdGaWJlciA9PT0gbnVsbCkge1xuICAgICAgICAgIC8vIFRPRE86IE1vdmUgb3V0IG9mIHRoZSBsb29wLiBUaGlzIG9ubHkgaGFwcGVucyBmb3IgdGhlIGZpcnN0IHJ1bi5cbiAgICAgICAgICByZXN1bHRpbmdGaXJzdENoaWxkID0gX25ld0ZpYmVyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHByZXZpb3VzTmV3RmliZXIuc2libGluZyA9IF9uZXdGaWJlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHByZXZpb3VzTmV3RmliZXIgPSBfbmV3RmliZXI7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHRpbmdGaXJzdENoaWxkO1xuICAgIH0gLy8gQWRkIGFsbCBjaGlsZHJlbiB0byBhIGtleSBtYXAgZm9yIHF1aWNrIGxvb2t1cHMuXG5cblxuICAgIHZhciBleGlzdGluZ0NoaWxkcmVuID0gbWFwUmVtYWluaW5nQ2hpbGRyZW4ocmV0dXJuRmliZXIsIG9sZEZpYmVyKTsgLy8gS2VlcCBzY2FubmluZyBhbmQgdXNlIHRoZSBtYXAgdG8gcmVzdG9yZSBkZWxldGVkIGl0ZW1zIGFzIG1vdmVzLlxuXG4gICAgZm9yICg7IG5ld0lkeCA8IG5ld0NoaWxkcmVuLmxlbmd0aDsgbmV3SWR4KyspIHtcbiAgICAgIHZhciBfbmV3RmliZXIyID0gdXBkYXRlRnJvbU1hcChleGlzdGluZ0NoaWxkcmVuLCByZXR1cm5GaWJlciwgbmV3SWR4LCBuZXdDaGlsZHJlbltuZXdJZHhdLCBsYW5lcyk7XG5cbiAgICAgIGlmIChfbmV3RmliZXIyICE9PSBudWxsKSB7XG4gICAgICAgIGlmIChzaG91bGRUcmFja1NpZGVFZmZlY3RzKSB7XG4gICAgICAgICAgaWYgKF9uZXdGaWJlcjIuYWx0ZXJuYXRlICE9PSBudWxsKSB7XG4gICAgICAgICAgICAvLyBUaGUgbmV3IGZpYmVyIGlzIGEgd29yayBpbiBwcm9ncmVzcywgYnV0IGlmIHRoZXJlIGV4aXN0cyBhXG4gICAgICAgICAgICAvLyBjdXJyZW50LCB0aGF0IG1lYW5zIHRoYXQgd2UgcmV1c2VkIHRoZSBmaWJlci4gV2UgbmVlZCB0byBkZWxldGVcbiAgICAgICAgICAgIC8vIGl0IGZyb20gdGhlIGNoaWxkIGxpc3Qgc28gdGhhdCB3ZSBkb24ndCBhZGQgaXQgdG8gdGhlIGRlbGV0aW9uXG4gICAgICAgICAgICAvLyBsaXN0LlxuICAgICAgICAgICAgZXhpc3RpbmdDaGlsZHJlbi5kZWxldGUoX25ld0ZpYmVyMi5rZXkgPT09IG51bGwgPyBuZXdJZHggOiBfbmV3RmliZXIyLmtleSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbGFzdFBsYWNlZEluZGV4ID0gcGxhY2VDaGlsZChfbmV3RmliZXIyLCBsYXN0UGxhY2VkSW5kZXgsIG5ld0lkeCk7XG5cbiAgICAgICAgaWYgKHByZXZpb3VzTmV3RmliZXIgPT09IG51bGwpIHtcbiAgICAgICAgICByZXN1bHRpbmdGaXJzdENoaWxkID0gX25ld0ZpYmVyMjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwcmV2aW91c05ld0ZpYmVyLnNpYmxpbmcgPSBfbmV3RmliZXIyO1xuICAgICAgICB9XG5cbiAgICAgICAgcHJldmlvdXNOZXdGaWJlciA9IF9uZXdGaWJlcjI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHNob3VsZFRyYWNrU2lkZUVmZmVjdHMpIHtcbiAgICAgIC8vIEFueSBleGlzdGluZyBjaGlsZHJlbiB0aGF0IHdlcmVuJ3QgY29uc3VtZWQgYWJvdmUgd2VyZSBkZWxldGVkLiBXZSBuZWVkXG4gICAgICAvLyB0byBhZGQgdGhlbSB0byB0aGUgZGVsZXRpb24gbGlzdC5cbiAgICAgIGV4aXN0aW5nQ2hpbGRyZW4uZm9yRWFjaChmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICAgICAgcmV0dXJuIGRlbGV0ZUNoaWxkKHJldHVybkZpYmVyLCBjaGlsZCk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0aW5nRmlyc3RDaGlsZDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlY29uY2lsZUNoaWxkcmVuSXRlcmF0b3IocmV0dXJuRmliZXIsIGN1cnJlbnRGaXJzdENoaWxkLCBuZXdDaGlsZHJlbkl0ZXJhYmxlLCBsYW5lcykge1xuICAgIC8vIFRoaXMgaXMgdGhlIHNhbWUgaW1wbGVtZW50YXRpb24gYXMgcmVjb25jaWxlQ2hpbGRyZW5BcnJheSgpLFxuICAgIC8vIGJ1dCB1c2luZyB0aGUgaXRlcmF0b3IgaW5zdGVhZC5cbiAgICB2YXIgaXRlcmF0b3JGbiA9IGdldEl0ZXJhdG9yRm4obmV3Q2hpbGRyZW5JdGVyYWJsZSk7XG5cbiAgICBpZiAoISh0eXBlb2YgaXRlcmF0b3JGbiA9PT0gJ2Z1bmN0aW9uJykpIHtcbiAgICAgIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoIFwiQW4gb2JqZWN0IGlzIG5vdCBhbiBpdGVyYWJsZS4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIiApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHtcbiAgICAgIC8vIFdlIGRvbid0IHN1cHBvcnQgcmVuZGVyaW5nIEdlbmVyYXRvcnMgYmVjYXVzZSBpdCdzIGEgbXV0YXRpb24uXG4gICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xMjk5NVxuICAgICAgaWYgKHR5cGVvZiBTeW1ib2wgPT09ICdmdW5jdGlvbicgJiYgLy8gJEZsb3dGaXhNZSBGbG93IGRvZXNuJ3Qga25vdyBhYm91dCB0b1N0cmluZ1RhZ1xuICAgICAgbmV3Q2hpbGRyZW5JdGVyYWJsZVtTeW1ib2wudG9TdHJpbmdUYWddID09PSAnR2VuZXJhdG9yJykge1xuICAgICAgICBpZiAoIWRpZFdhcm5BYm91dEdlbmVyYXRvcnMpIHtcbiAgICAgICAgICBlcnJvcignVXNpbmcgR2VuZXJhdG9ycyBhcyBjaGlsZHJlbiBpcyB1bnN1cHBvcnRlZCBhbmQgd2lsbCBsaWtlbHkgeWllbGQgJyArICd1bmV4cGVjdGVkIHJlc3VsdHMgYmVjYXVzZSBlbnVtZXJhdGluZyBhIGdlbmVyYXRvciBtdXRhdGVzIGl0LiAnICsgJ1lvdSBtYXkgY29udmVydCBpdCB0byBhbiBhcnJheSB3aXRoIGBBcnJheS5mcm9tKClgIG9yIHRoZSAnICsgJ2BbLi4uc3ByZWFkXWAgb3BlcmF0b3IgYmVmb3JlIHJlbmRlcmluZy4gS2VlcCBpbiBtaW5kICcgKyAneW91IG1pZ2h0IG5lZWQgdG8gcG9seWZpbGwgdGhlc2UgZmVhdHVyZXMgZm9yIG9sZGVyIGJyb3dzZXJzLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgZGlkV2FybkFib3V0R2VuZXJhdG9ycyA9IHRydWU7XG4gICAgICB9IC8vIFdhcm4gYWJvdXQgdXNpbmcgTWFwcyBhcyBjaGlsZHJlblxuXG5cbiAgICAgIGlmIChuZXdDaGlsZHJlbkl0ZXJhYmxlLmVudHJpZXMgPT09IGl0ZXJhdG9yRm4pIHtcbiAgICAgICAgaWYgKCFkaWRXYXJuQWJvdXRNYXBzKSB7XG4gICAgICAgICAgZXJyb3IoJ1VzaW5nIE1hcHMgYXMgY2hpbGRyZW4gaXMgbm90IHN1cHBvcnRlZC4gJyArICdVc2UgYW4gYXJyYXkgb2Yga2V5ZWQgUmVhY3RFbGVtZW50cyBpbnN0ZWFkLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgZGlkV2FybkFib3V0TWFwcyA9IHRydWU7XG4gICAgICB9IC8vIEZpcnN0LCB2YWxpZGF0ZSBrZXlzLlxuICAgICAgLy8gV2UnbGwgZ2V0IGEgZGlmZmVyZW50IGl0ZXJhdG9yIGxhdGVyIGZvciB0aGUgbWFpbiBwYXNzLlxuXG5cbiAgICAgIHZhciBfbmV3Q2hpbGRyZW4gPSBpdGVyYXRvckZuLmNhbGwobmV3Q2hpbGRyZW5JdGVyYWJsZSk7XG5cbiAgICAgIGlmIChfbmV3Q2hpbGRyZW4pIHtcbiAgICAgICAgdmFyIGtub3duS2V5cyA9IG51bGw7XG5cbiAgICAgICAgdmFyIF9zdGVwID0gX25ld0NoaWxkcmVuLm5leHQoKTtcblxuICAgICAgICBmb3IgKDsgIV9zdGVwLmRvbmU7IF9zdGVwID0gX25ld0NoaWxkcmVuLm5leHQoKSkge1xuICAgICAgICAgIHZhciBjaGlsZCA9IF9zdGVwLnZhbHVlO1xuICAgICAgICAgIGtub3duS2V5cyA9IHdhcm5PbkludmFsaWRLZXkoY2hpbGQsIGtub3duS2V5cywgcmV0dXJuRmliZXIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIG5ld0NoaWxkcmVuID0gaXRlcmF0b3JGbi5jYWxsKG5ld0NoaWxkcmVuSXRlcmFibGUpO1xuXG4gICAgaWYgKCEobmV3Q2hpbGRyZW4gIT0gbnVsbCkpIHtcbiAgICAgIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoIFwiQW4gaXRlcmFibGUgb2JqZWN0IHByb3ZpZGVkIG5vIGl0ZXJhdG9yLlwiICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIHJlc3VsdGluZ0ZpcnN0Q2hpbGQgPSBudWxsO1xuICAgIHZhciBwcmV2aW91c05ld0ZpYmVyID0gbnVsbDtcbiAgICB2YXIgb2xkRmliZXIgPSBjdXJyZW50Rmlyc3RDaGlsZDtcbiAgICB2YXIgbGFzdFBsYWNlZEluZGV4ID0gMDtcbiAgICB2YXIgbmV3SWR4ID0gMDtcbiAgICB2YXIgbmV4dE9sZEZpYmVyID0gbnVsbDtcbiAgICB2YXIgc3RlcCA9IG5ld0NoaWxkcmVuLm5leHQoKTtcblxuICAgIGZvciAoOyBvbGRGaWJlciAhPT0gbnVsbCAmJiAhc3RlcC5kb25lOyBuZXdJZHgrKywgc3RlcCA9IG5ld0NoaWxkcmVuLm5leHQoKSkge1xuICAgICAgaWYgKG9sZEZpYmVyLmluZGV4ID4gbmV3SWR4KSB7XG4gICAgICAgIG5leHRPbGRGaWJlciA9IG9sZEZpYmVyO1xuICAgICAgICBvbGRGaWJlciA9IG51bGw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXh0T2xkRmliZXIgPSBvbGRGaWJlci5zaWJsaW5nO1xuICAgICAgfVxuXG4gICAgICB2YXIgbmV3RmliZXIgPSB1cGRhdGVTbG90KHJldHVybkZpYmVyLCBvbGRGaWJlciwgc3RlcC52YWx1ZSwgbGFuZXMpO1xuXG4gICAgICBpZiAobmV3RmliZXIgPT09IG51bGwpIHtcbiAgICAgICAgLy8gVE9ETzogVGhpcyBicmVha3Mgb24gZW1wdHkgc2xvdHMgbGlrZSBudWxsIGNoaWxkcmVuLiBUaGF0J3NcbiAgICAgICAgLy8gdW5mb3J0dW5hdGUgYmVjYXVzZSBpdCB0cmlnZ2VycyB0aGUgc2xvdyBwYXRoIGFsbCB0aGUgdGltZS4gV2UgbmVlZFxuICAgICAgICAvLyBhIGJldHRlciB3YXkgdG8gY29tbXVuaWNhdGUgd2hldGhlciB0aGlzIHdhcyBhIG1pc3Mgb3IgbnVsbCxcbiAgICAgICAgLy8gYm9vbGVhbiwgdW5kZWZpbmVkLCBldGMuXG4gICAgICAgIGlmIChvbGRGaWJlciA9PT0gbnVsbCkge1xuICAgICAgICAgIG9sZEZpYmVyID0gbmV4dE9sZEZpYmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGlmIChzaG91bGRUcmFja1NpZGVFZmZlY3RzKSB7XG4gICAgICAgIGlmIChvbGRGaWJlciAmJiBuZXdGaWJlci5hbHRlcm5hdGUgPT09IG51bGwpIHtcbiAgICAgICAgICAvLyBXZSBtYXRjaGVkIHRoZSBzbG90LCBidXQgd2UgZGlkbid0IHJldXNlIHRoZSBleGlzdGluZyBmaWJlciwgc28gd2VcbiAgICAgICAgICAvLyBuZWVkIHRvIGRlbGV0ZSB0aGUgZXhpc3RpbmcgY2hpbGQuXG4gICAgICAgICAgZGVsZXRlQ2hpbGQocmV0dXJuRmliZXIsIG9sZEZpYmVyKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBsYXN0UGxhY2VkSW5kZXggPSBwbGFjZUNoaWxkKG5ld0ZpYmVyLCBsYXN0UGxhY2VkSW5kZXgsIG5ld0lkeCk7XG5cbiAgICAgIGlmIChwcmV2aW91c05ld0ZpYmVyID09PSBudWxsKSB7XG4gICAgICAgIC8vIFRPRE86IE1vdmUgb3V0IG9mIHRoZSBsb29wLiBUaGlzIG9ubHkgaGFwcGVucyBmb3IgdGhlIGZpcnN0IHJ1bi5cbiAgICAgICAgcmVzdWx0aW5nRmlyc3RDaGlsZCA9IG5ld0ZpYmVyO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gVE9ETzogRGVmZXIgc2libGluZ3MgaWYgd2UncmUgbm90IGF0IHRoZSByaWdodCBpbmRleCBmb3IgdGhpcyBzbG90LlxuICAgICAgICAvLyBJLmUuIGlmIHdlIGhhZCBudWxsIHZhbHVlcyBiZWZvcmUsIHRoZW4gd2Ugd2FudCB0byBkZWZlciB0aGlzXG4gICAgICAgIC8vIGZvciBlYWNoIG51bGwgdmFsdWUuIEhvd2V2ZXIsIHdlIGFsc28gZG9uJ3Qgd2FudCB0byBjYWxsIHVwZGF0ZVNsb3RcbiAgICAgICAgLy8gd2l0aCB0aGUgcHJldmlvdXMgb25lLlxuICAgICAgICBwcmV2aW91c05ld0ZpYmVyLnNpYmxpbmcgPSBuZXdGaWJlcjtcbiAgICAgIH1cblxuICAgICAgcHJldmlvdXNOZXdGaWJlciA9IG5ld0ZpYmVyO1xuICAgICAgb2xkRmliZXIgPSBuZXh0T2xkRmliZXI7XG4gICAgfVxuXG4gICAgaWYgKHN0ZXAuZG9uZSkge1xuICAgICAgLy8gV2UndmUgcmVhY2hlZCB0aGUgZW5kIG9mIHRoZSBuZXcgY2hpbGRyZW4uIFdlIGNhbiBkZWxldGUgdGhlIHJlc3QuXG4gICAgICBkZWxldGVSZW1haW5pbmdDaGlsZHJlbihyZXR1cm5GaWJlciwgb2xkRmliZXIpO1xuICAgICAgcmV0dXJuIHJlc3VsdGluZ0ZpcnN0Q2hpbGQ7XG4gICAgfVxuXG4gICAgaWYgKG9sZEZpYmVyID09PSBudWxsKSB7XG4gICAgICAvLyBJZiB3ZSBkb24ndCBoYXZlIGFueSBtb3JlIGV4aXN0aW5nIGNoaWxkcmVuIHdlIGNhbiBjaG9vc2UgYSBmYXN0IHBhdGhcbiAgICAgIC8vIHNpbmNlIHRoZSByZXN0IHdpbGwgYWxsIGJlIGluc2VydGlvbnMuXG4gICAgICBmb3IgKDsgIXN0ZXAuZG9uZTsgbmV3SWR4KyssIHN0ZXAgPSBuZXdDaGlsZHJlbi5uZXh0KCkpIHtcbiAgICAgICAgdmFyIF9uZXdGaWJlcjMgPSBjcmVhdGVDaGlsZChyZXR1cm5GaWJlciwgc3RlcC52YWx1ZSwgbGFuZXMpO1xuXG4gICAgICAgIGlmIChfbmV3RmliZXIzID09PSBudWxsKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBsYXN0UGxhY2VkSW5kZXggPSBwbGFjZUNoaWxkKF9uZXdGaWJlcjMsIGxhc3RQbGFjZWRJbmRleCwgbmV3SWR4KTtcblxuICAgICAgICBpZiAocHJldmlvdXNOZXdGaWJlciA9PT0gbnVsbCkge1xuICAgICAgICAgIC8vIFRPRE86IE1vdmUgb3V0IG9mIHRoZSBsb29wLiBUaGlzIG9ubHkgaGFwcGVucyBmb3IgdGhlIGZpcnN0IHJ1bi5cbiAgICAgICAgICByZXN1bHRpbmdGaXJzdENoaWxkID0gX25ld0ZpYmVyMztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwcmV2aW91c05ld0ZpYmVyLnNpYmxpbmcgPSBfbmV3RmliZXIzO1xuICAgICAgICB9XG5cbiAgICAgICAgcHJldmlvdXNOZXdGaWJlciA9IF9uZXdGaWJlcjM7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHRpbmdGaXJzdENoaWxkO1xuICAgIH0gLy8gQWRkIGFsbCBjaGlsZHJlbiB0byBhIGtleSBtYXAgZm9yIHF1aWNrIGxvb2t1cHMuXG5cblxuICAgIHZhciBleGlzdGluZ0NoaWxkcmVuID0gbWFwUmVtYWluaW5nQ2hpbGRyZW4ocmV0dXJuRmliZXIsIG9sZEZpYmVyKTsgLy8gS2VlcCBzY2FubmluZyBhbmQgdXNlIHRoZSBtYXAgdG8gcmVzdG9yZSBkZWxldGVkIGl0ZW1zIGFzIG1vdmVzLlxuXG4gICAgZm9yICg7ICFzdGVwLmRvbmU7IG5ld0lkeCsrLCBzdGVwID0gbmV3Q2hpbGRyZW4ubmV4dCgpKSB7XG4gICAgICB2YXIgX25ld0ZpYmVyNCA9IHVwZGF0ZUZyb21NYXAoZXhpc3RpbmdDaGlsZHJlbiwgcmV0dXJuRmliZXIsIG5ld0lkeCwgc3RlcC52YWx1ZSwgbGFuZXMpO1xuXG4gICAgICBpZiAoX25ld0ZpYmVyNCAhPT0gbnVsbCkge1xuICAgICAgICBpZiAoc2hvdWxkVHJhY2tTaWRlRWZmZWN0cykge1xuICAgICAgICAgIGlmIChfbmV3RmliZXI0LmFsdGVybmF0ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gVGhlIG5ldyBmaWJlciBpcyBhIHdvcmsgaW4gcHJvZ3Jlc3MsIGJ1dCBpZiB0aGVyZSBleGlzdHMgYVxuICAgICAgICAgICAgLy8gY3VycmVudCwgdGhhdCBtZWFucyB0aGF0IHdlIHJldXNlZCB0aGUgZmliZXIuIFdlIG5lZWQgdG8gZGVsZXRlXG4gICAgICAgICAgICAvLyBpdCBmcm9tIHRoZSBjaGlsZCBsaXN0IHNvIHRoYXQgd2UgZG9uJ3QgYWRkIGl0IHRvIHRoZSBkZWxldGlvblxuICAgICAgICAgICAgLy8gbGlzdC5cbiAgICAgICAgICAgIGV4aXN0aW5nQ2hpbGRyZW4uZGVsZXRlKF9uZXdGaWJlcjQua2V5ID09PSBudWxsID8gbmV3SWR4IDogX25ld0ZpYmVyNC5rZXkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxhc3RQbGFjZWRJbmRleCA9IHBsYWNlQ2hpbGQoX25ld0ZpYmVyNCwgbGFzdFBsYWNlZEluZGV4LCBuZXdJZHgpO1xuXG4gICAgICAgIGlmIChwcmV2aW91c05ld0ZpYmVyID09PSBudWxsKSB7XG4gICAgICAgICAgcmVzdWx0aW5nRmlyc3RDaGlsZCA9IF9uZXdGaWJlcjQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcHJldmlvdXNOZXdGaWJlci5zaWJsaW5nID0gX25ld0ZpYmVyNDtcbiAgICAgICAgfVxuXG4gICAgICAgIHByZXZpb3VzTmV3RmliZXIgPSBfbmV3RmliZXI0O1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChzaG91bGRUcmFja1NpZGVFZmZlY3RzKSB7XG4gICAgICAvLyBBbnkgZXhpc3RpbmcgY2hpbGRyZW4gdGhhdCB3ZXJlbid0IGNvbnN1bWVkIGFib3ZlIHdlcmUgZGVsZXRlZC4gV2UgbmVlZFxuICAgICAgLy8gdG8gYWRkIHRoZW0gdG8gdGhlIGRlbGV0aW9uIGxpc3QuXG4gICAgICBleGlzdGluZ0NoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgICAgIHJldHVybiBkZWxldGVDaGlsZChyZXR1cm5GaWJlciwgY2hpbGQpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdGluZ0ZpcnN0Q2hpbGQ7XG4gIH1cblxuICBmdW5jdGlvbiByZWNvbmNpbGVTaW5nbGVUZXh0Tm9kZShyZXR1cm5GaWJlciwgY3VycmVudEZpcnN0Q2hpbGQsIHRleHRDb250ZW50LCBsYW5lcykge1xuICAgIC8vIFRoZXJlJ3Mgbm8gbmVlZCB0byBjaGVjayBmb3Iga2V5cyBvbiB0ZXh0IG5vZGVzIHNpbmNlIHdlIGRvbid0IGhhdmUgYVxuICAgIC8vIHdheSB0byBkZWZpbmUgdGhlbS5cbiAgICBpZiAoY3VycmVudEZpcnN0Q2hpbGQgIT09IG51bGwgJiYgY3VycmVudEZpcnN0Q2hpbGQudGFnID09PSBIb3N0VGV4dCkge1xuICAgICAgLy8gV2UgYWxyZWFkeSBoYXZlIGFuIGV4aXN0aW5nIG5vZGUgc28gbGV0J3MganVzdCB1cGRhdGUgaXQgYW5kIGRlbGV0ZVxuICAgICAgLy8gdGhlIHJlc3QuXG4gICAgICBkZWxldGVSZW1haW5pbmdDaGlsZHJlbihyZXR1cm5GaWJlciwgY3VycmVudEZpcnN0Q2hpbGQuc2libGluZyk7XG4gICAgICB2YXIgZXhpc3RpbmcgPSB1c2VGaWJlcihjdXJyZW50Rmlyc3RDaGlsZCwgdGV4dENvbnRlbnQpO1xuICAgICAgZXhpc3RpbmcucmV0dXJuID0gcmV0dXJuRmliZXI7XG4gICAgICByZXR1cm4gZXhpc3Rpbmc7XG4gICAgfSAvLyBUaGUgZXhpc3RpbmcgZmlyc3QgY2hpbGQgaXMgbm90IGEgdGV4dCBub2RlIHNvIHdlIG5lZWQgdG8gY3JlYXRlIG9uZVxuICAgIC8vIGFuZCBkZWxldGUgdGhlIGV4aXN0aW5nIG9uZXMuXG5cblxuICAgIGRlbGV0ZVJlbWFpbmluZ0NoaWxkcmVuKHJldHVybkZpYmVyLCBjdXJyZW50Rmlyc3RDaGlsZCk7XG4gICAgdmFyIGNyZWF0ZWQgPSBjcmVhdGVGaWJlckZyb21UZXh0KHRleHRDb250ZW50LCByZXR1cm5GaWJlci5tb2RlLCBsYW5lcyk7XG4gICAgY3JlYXRlZC5yZXR1cm4gPSByZXR1cm5GaWJlcjtcbiAgICByZXR1cm4gY3JlYXRlZDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlY29uY2lsZVNpbmdsZUVsZW1lbnQocmV0dXJuRmliZXIsIGN1cnJlbnRGaXJzdENoaWxkLCBlbGVtZW50LCBsYW5lcykge1xuICAgIHZhciBrZXkgPSBlbGVtZW50LmtleTtcbiAgICB2YXIgY2hpbGQgPSBjdXJyZW50Rmlyc3RDaGlsZDtcblxuICAgIHdoaWxlIChjaGlsZCAhPT0gbnVsbCkge1xuICAgICAgLy8gVE9ETzogSWYga2V5ID09PSBudWxsIGFuZCBjaGlsZC5rZXkgPT09IG51bGwsIHRoZW4gdGhpcyBvbmx5IGFwcGxpZXMgdG9cbiAgICAgIC8vIHRoZSBmaXJzdCBpdGVtIGluIHRoZSBsaXN0LlxuICAgICAgaWYgKGNoaWxkLmtleSA9PT0ga2V5KSB7XG4gICAgICAgIHN3aXRjaCAoY2hpbGQudGFnKSB7XG4gICAgICAgICAgY2FzZSBGcmFnbWVudDpcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWYgKGVsZW1lbnQudHlwZSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZVJlbWFpbmluZ0NoaWxkcmVuKHJldHVybkZpYmVyLCBjaGlsZC5zaWJsaW5nKTtcbiAgICAgICAgICAgICAgICB2YXIgZXhpc3RpbmcgPSB1c2VGaWJlcihjaGlsZCwgZWxlbWVudC5wcm9wcy5jaGlsZHJlbik7XG4gICAgICAgICAgICAgICAgZXhpc3RpbmcucmV0dXJuID0gcmV0dXJuRmliZXI7XG5cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBleGlzdGluZy5fZGVidWdTb3VyY2UgPSBlbGVtZW50Ll9zb3VyY2U7XG4gICAgICAgICAgICAgICAgICBleGlzdGluZy5fZGVidWdPd25lciA9IGVsZW1lbnQuX293bmVyO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBleGlzdGluZztcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgY2FzZSBCbG9jazpcblxuICAgICAgICAgIC8vIFdlIGludGVudGlvbmFsbHkgZmFsbHRocm91Z2ggaGVyZSBpZiBlbmFibGVCbG9ja3NBUEkgaXMgbm90IG9uLlxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZWQgbm8tZmFsbHRocm91Z2hcblxuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGlmIChjaGlsZC5lbGVtZW50VHlwZSA9PT0gZWxlbWVudC50eXBlIHx8ICggLy8gS2VlcCB0aGlzIGNoZWNrIGlubGluZSBzbyBpdCBvbmx5IHJ1bnMgb24gdGhlIGZhbHNlIHBhdGg6XG4gICAgICAgICAgICAgICBpc0NvbXBhdGlibGVGYW1pbHlGb3JIb3RSZWxvYWRpbmcoY2hpbGQsIGVsZW1lbnQpICkpIHtcbiAgICAgICAgICAgICAgICBkZWxldGVSZW1haW5pbmdDaGlsZHJlbihyZXR1cm5GaWJlciwgY2hpbGQuc2libGluZyk7XG5cbiAgICAgICAgICAgICAgICB2YXIgX2V4aXN0aW5nMyA9IHVzZUZpYmVyKGNoaWxkLCBlbGVtZW50LnByb3BzKTtcblxuICAgICAgICAgICAgICAgIF9leGlzdGluZzMucmVmID0gY29lcmNlUmVmKHJldHVybkZpYmVyLCBjaGlsZCwgZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgX2V4aXN0aW5nMy5yZXR1cm4gPSByZXR1cm5GaWJlcjtcblxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIF9leGlzdGluZzMuX2RlYnVnU291cmNlID0gZWxlbWVudC5fc291cmNlO1xuICAgICAgICAgICAgICAgICAgX2V4aXN0aW5nMy5fZGVidWdPd25lciA9IGVsZW1lbnQuX293bmVyO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBfZXhpc3RpbmczO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gLy8gRGlkbid0IG1hdGNoLlxuXG5cbiAgICAgICAgZGVsZXRlUmVtYWluaW5nQ2hpbGRyZW4ocmV0dXJuRmliZXIsIGNoaWxkKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkZWxldGVDaGlsZChyZXR1cm5GaWJlciwgY2hpbGQpO1xuICAgICAgfVxuXG4gICAgICBjaGlsZCA9IGNoaWxkLnNpYmxpbmc7XG4gICAgfVxuXG4gICAgaWYgKGVsZW1lbnQudHlwZSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRSkge1xuICAgICAgdmFyIGNyZWF0ZWQgPSBjcmVhdGVGaWJlckZyb21GcmFnbWVudChlbGVtZW50LnByb3BzLmNoaWxkcmVuLCByZXR1cm5GaWJlci5tb2RlLCBsYW5lcywgZWxlbWVudC5rZXkpO1xuICAgICAgY3JlYXRlZC5yZXR1cm4gPSByZXR1cm5GaWJlcjtcbiAgICAgIHJldHVybiBjcmVhdGVkO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgX2NyZWF0ZWQ0ID0gY3JlYXRlRmliZXJGcm9tRWxlbWVudChlbGVtZW50LCByZXR1cm5GaWJlci5tb2RlLCBsYW5lcyk7XG5cbiAgICAgIF9jcmVhdGVkNC5yZWYgPSBjb2VyY2VSZWYocmV0dXJuRmliZXIsIGN1cnJlbnRGaXJzdENoaWxkLCBlbGVtZW50KTtcbiAgICAgIF9jcmVhdGVkNC5yZXR1cm4gPSByZXR1cm5GaWJlcjtcbiAgICAgIHJldHVybiBfY3JlYXRlZDQ7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gcmVjb25jaWxlU2luZ2xlUG9ydGFsKHJldHVybkZpYmVyLCBjdXJyZW50Rmlyc3RDaGlsZCwgcG9ydGFsLCBsYW5lcykge1xuICAgIHZhciBrZXkgPSBwb3J0YWwua2V5O1xuICAgIHZhciBjaGlsZCA9IGN1cnJlbnRGaXJzdENoaWxkO1xuXG4gICAgd2hpbGUgKGNoaWxkICE9PSBudWxsKSB7XG4gICAgICAvLyBUT0RPOiBJZiBrZXkgPT09IG51bGwgYW5kIGNoaWxkLmtleSA9PT0gbnVsbCwgdGhlbiB0aGlzIG9ubHkgYXBwbGllcyB0b1xuICAgICAgLy8gdGhlIGZpcnN0IGl0ZW0gaW4gdGhlIGxpc3QuXG4gICAgICBpZiAoY2hpbGQua2V5ID09PSBrZXkpIHtcbiAgICAgICAgaWYgKGNoaWxkLnRhZyA9PT0gSG9zdFBvcnRhbCAmJiBjaGlsZC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyA9PT0gcG9ydGFsLmNvbnRhaW5lckluZm8gJiYgY2hpbGQuc3RhdGVOb2RlLmltcGxlbWVudGF0aW9uID09PSBwb3J0YWwuaW1wbGVtZW50YXRpb24pIHtcbiAgICAgICAgICBkZWxldGVSZW1haW5pbmdDaGlsZHJlbihyZXR1cm5GaWJlciwgY2hpbGQuc2libGluZyk7XG4gICAgICAgICAgdmFyIGV4aXN0aW5nID0gdXNlRmliZXIoY2hpbGQsIHBvcnRhbC5jaGlsZHJlbiB8fCBbXSk7XG4gICAgICAgICAgZXhpc3RpbmcucmV0dXJuID0gcmV0dXJuRmliZXI7XG4gICAgICAgICAgcmV0dXJuIGV4aXN0aW5nO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRlbGV0ZVJlbWFpbmluZ0NoaWxkcmVuKHJldHVybkZpYmVyLCBjaGlsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRlbGV0ZUNoaWxkKHJldHVybkZpYmVyLCBjaGlsZCk7XG4gICAgICB9XG5cbiAgICAgIGNoaWxkID0gY2hpbGQuc2libGluZztcbiAgICB9XG5cbiAgICB2YXIgY3JlYXRlZCA9IGNyZWF0ZUZpYmVyRnJvbVBvcnRhbChwb3J0YWwsIHJldHVybkZpYmVyLm1vZGUsIGxhbmVzKTtcbiAgICBjcmVhdGVkLnJldHVybiA9IHJldHVybkZpYmVyO1xuICAgIHJldHVybiBjcmVhdGVkO1xuICB9IC8vIFRoaXMgQVBJIHdpbGwgdGFnIHRoZSBjaGlsZHJlbiB3aXRoIHRoZSBzaWRlLWVmZmVjdCBvZiB0aGUgcmVjb25jaWxpYXRpb25cbiAgLy8gaXRzZWxmLiBUaGV5IHdpbGwgYmUgYWRkZWQgdG8gdGhlIHNpZGUtZWZmZWN0IGxpc3QgYXMgd2UgcGFzcyB0aHJvdWdoIHRoZVxuICAvLyBjaGlsZHJlbiBhbmQgdGhlIHBhcmVudC5cblxuXG4gIGZ1bmN0aW9uIHJlY29uY2lsZUNoaWxkRmliZXJzKHJldHVybkZpYmVyLCBjdXJyZW50Rmlyc3RDaGlsZCwgbmV3Q2hpbGQsIGxhbmVzKSB7XG4gICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBub3QgcmVjdXJzaXZlLlxuICAgIC8vIElmIHRoZSB0b3AgbGV2ZWwgaXRlbSBpcyBhbiBhcnJheSwgd2UgdHJlYXQgaXQgYXMgYSBzZXQgb2YgY2hpbGRyZW4sXG4gICAgLy8gbm90IGFzIGEgZnJhZ21lbnQuIE5lc3RlZCBhcnJheXMgb24gdGhlIG90aGVyIGhhbmQgd2lsbCBiZSB0cmVhdGVkIGFzXG4gICAgLy8gZnJhZ21lbnQgbm9kZXMuIFJlY3Vyc2lvbiBoYXBwZW5zIGF0IHRoZSBub3JtYWwgZmxvdy5cbiAgICAvLyBIYW5kbGUgdG9wIGxldmVsIHVua2V5ZWQgZnJhZ21lbnRzIGFzIGlmIHRoZXkgd2VyZSBhcnJheXMuXG4gICAgLy8gVGhpcyBsZWFkcyB0byBhbiBhbWJpZ3VpdHkgYmV0d2VlbiA8PntbLi4uXX08Lz4gYW5kIDw+Li4uPC8+LlxuICAgIC8vIFdlIHRyZWF0IHRoZSBhbWJpZ3VvdXMgY2FzZXMgYWJvdmUgdGhlIHNhbWUuXG4gICAgdmFyIGlzVW5rZXllZFRvcExldmVsRnJhZ21lbnQgPSB0eXBlb2YgbmV3Q2hpbGQgPT09ICdvYmplY3QnICYmIG5ld0NoaWxkICE9PSBudWxsICYmIG5ld0NoaWxkLnR5cGUgPT09IFJFQUNUX0ZSQUdNRU5UX1RZUEUgJiYgbmV3Q2hpbGQua2V5ID09PSBudWxsO1xuXG4gICAgaWYgKGlzVW5rZXllZFRvcExldmVsRnJhZ21lbnQpIHtcbiAgICAgIG5ld0NoaWxkID0gbmV3Q2hpbGQucHJvcHMuY2hpbGRyZW47XG4gICAgfSAvLyBIYW5kbGUgb2JqZWN0IHR5cGVzXG5cblxuICAgIHZhciBpc09iamVjdCA9IHR5cGVvZiBuZXdDaGlsZCA9PT0gJ29iamVjdCcgJiYgbmV3Q2hpbGQgIT09IG51bGw7XG5cbiAgICBpZiAoaXNPYmplY3QpIHtcbiAgICAgIHN3aXRjaCAobmV3Q2hpbGQuJCR0eXBlb2YpIHtcbiAgICAgICAgY2FzZSBSRUFDVF9FTEVNRU5UX1RZUEU6XG4gICAgICAgICAgcmV0dXJuIHBsYWNlU2luZ2xlQ2hpbGQocmVjb25jaWxlU2luZ2xlRWxlbWVudChyZXR1cm5GaWJlciwgY3VycmVudEZpcnN0Q2hpbGQsIG5ld0NoaWxkLCBsYW5lcykpO1xuXG4gICAgICAgIGNhc2UgUkVBQ1RfUE9SVEFMX1RZUEU6XG4gICAgICAgICAgcmV0dXJuIHBsYWNlU2luZ2xlQ2hpbGQocmVjb25jaWxlU2luZ2xlUG9ydGFsKHJldHVybkZpYmVyLCBjdXJyZW50Rmlyc3RDaGlsZCwgbmV3Q2hpbGQsIGxhbmVzKSk7XG5cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIG5ld0NoaWxkID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgbmV3Q2hpbGQgPT09ICdudW1iZXInKSB7XG4gICAgICByZXR1cm4gcGxhY2VTaW5nbGVDaGlsZChyZWNvbmNpbGVTaW5nbGVUZXh0Tm9kZShyZXR1cm5GaWJlciwgY3VycmVudEZpcnN0Q2hpbGQsICcnICsgbmV3Q2hpbGQsIGxhbmVzKSk7XG4gICAgfVxuXG4gICAgaWYgKGlzQXJyYXkkMShuZXdDaGlsZCkpIHtcbiAgICAgIHJldHVybiByZWNvbmNpbGVDaGlsZHJlbkFycmF5KHJldHVybkZpYmVyLCBjdXJyZW50Rmlyc3RDaGlsZCwgbmV3Q2hpbGQsIGxhbmVzKTtcbiAgICB9XG5cbiAgICBpZiAoZ2V0SXRlcmF0b3JGbihuZXdDaGlsZCkpIHtcbiAgICAgIHJldHVybiByZWNvbmNpbGVDaGlsZHJlbkl0ZXJhdG9yKHJldHVybkZpYmVyLCBjdXJyZW50Rmlyc3RDaGlsZCwgbmV3Q2hpbGQsIGxhbmVzKTtcbiAgICB9XG5cbiAgICBpZiAoaXNPYmplY3QpIHtcbiAgICAgIHRocm93T25JbnZhbGlkT2JqZWN0VHlwZShyZXR1cm5GaWJlciwgbmV3Q2hpbGQpO1xuICAgIH1cblxuICAgIHtcbiAgICAgIGlmICh0eXBlb2YgbmV3Q2hpbGQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgd2Fybk9uRnVuY3Rpb25UeXBlKHJldHVybkZpYmVyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIG5ld0NoaWxkID09PSAndW5kZWZpbmVkJyAmJiAhaXNVbmtleWVkVG9wTGV2ZWxGcmFnbWVudCkge1xuICAgICAgLy8gSWYgdGhlIG5ldyBjaGlsZCBpcyB1bmRlZmluZWQsIGFuZCB0aGUgcmV0dXJuIGZpYmVyIGlzIGEgY29tcG9zaXRlXG4gICAgICAvLyBjb21wb25lbnQsIHRocm93IGFuIGVycm9yLiBJZiBGaWJlciByZXR1cm4gdHlwZXMgYXJlIGRpc2FibGVkLFxuICAgICAgLy8gd2UgYWxyZWFkeSB0aHJldyBhYm92ZS5cbiAgICAgIHN3aXRjaCAocmV0dXJuRmliZXIudGFnKSB7XG4gICAgICAgIGNhc2UgQ2xhc3NDb21wb25lbnQ6XG4gICAgICAgICAge1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB2YXIgaW5zdGFuY2UgPSByZXR1cm5GaWJlci5zdGF0ZU5vZGU7XG5cbiAgICAgICAgICAgICAgaWYgKGluc3RhbmNlLnJlbmRlci5faXNNb2NrRnVuY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAvLyBXZSBhbGxvdyBhdXRvLW1vY2tzIHRvIHByb2NlZWQgYXMgaWYgdGhleSdyZSByZXR1cm5pbmcgbnVsbC5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgLy8gSW50ZW50aW9uYWxseSBmYWxsIHRocm91Z2ggdG8gdGhlIG5leHQgY2FzZSwgd2hpY2ggaGFuZGxlcyBib3RoXG4gICAgICAgIC8vIGZ1bmN0aW9ucyBhbmQgY2xhc3Nlc1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVkIG5vLWZhbGx0aHJvdWdoXG5cbiAgICAgICAgY2FzZSBCbG9jazpcbiAgICAgICAgY2FzZSBGdW5jdGlvbkNvbXBvbmVudDpcbiAgICAgICAgY2FzZSBGb3J3YXJkUmVmOlxuICAgICAgICBjYXNlIFNpbXBsZU1lbW9Db21wb25lbnQ6XG4gICAgICAgICAge1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoIChnZXRDb21wb25lbnROYW1lKHJldHVybkZpYmVyLnR5cGUpIHx8ICdDb21wb25lbnQnKSArIFwiKC4uLik6IE5vdGhpbmcgd2FzIHJldHVybmVkIGZyb20gcmVuZGVyLiBUaGlzIHVzdWFsbHkgbWVhbnMgYSByZXR1cm4gc3RhdGVtZW50IGlzIG1pc3NpbmcuIE9yLCB0byByZW5kZXIgbm90aGluZywgcmV0dXJuIG51bGwuXCIgKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICB9IC8vIFJlbWFpbmluZyBjYXNlcyBhcmUgYWxsIHRyZWF0ZWQgYXMgZW1wdHkuXG5cblxuICAgIHJldHVybiBkZWxldGVSZW1haW5pbmdDaGlsZHJlbihyZXR1cm5GaWJlciwgY3VycmVudEZpcnN0Q2hpbGQpO1xuICB9XG5cbiAgcmV0dXJuIHJlY29uY2lsZUNoaWxkRmliZXJzO1xufVxuXG52YXIgcmVjb25jaWxlQ2hpbGRGaWJlcnMgPSBDaGlsZFJlY29uY2lsZXIodHJ1ZSk7XG52YXIgbW91bnRDaGlsZEZpYmVycyA9IENoaWxkUmVjb25jaWxlcihmYWxzZSk7XG5mdW5jdGlvbiBjbG9uZUNoaWxkRmliZXJzKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzKSB7XG4gIGlmICghKGN1cnJlbnQgPT09IG51bGwgfHwgd29ya0luUHJvZ3Jlc3MuY2hpbGQgPT09IGN1cnJlbnQuY2hpbGQpKSB7XG4gICAge1xuICAgICAgdGhyb3cgRXJyb3IoIFwiUmVzdW1pbmcgd29yayBub3QgeWV0IGltcGxlbWVudGVkLlwiICk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHdvcmtJblByb2dyZXNzLmNoaWxkID09PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdmFyIGN1cnJlbnRDaGlsZCA9IHdvcmtJblByb2dyZXNzLmNoaWxkO1xuICB2YXIgbmV3Q2hpbGQgPSBjcmVhdGVXb3JrSW5Qcm9ncmVzcyhjdXJyZW50Q2hpbGQsIGN1cnJlbnRDaGlsZC5wZW5kaW5nUHJvcHMpO1xuICB3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IG5ld0NoaWxkO1xuICBuZXdDaGlsZC5yZXR1cm4gPSB3b3JrSW5Qcm9ncmVzcztcblxuICB3aGlsZSAoY3VycmVudENoaWxkLnNpYmxpbmcgIT09IG51bGwpIHtcbiAgICBjdXJyZW50Q2hpbGQgPSBjdXJyZW50Q2hpbGQuc2libGluZztcbiAgICBuZXdDaGlsZCA9IG5ld0NoaWxkLnNpYmxpbmcgPSBjcmVhdGVXb3JrSW5Qcm9ncmVzcyhjdXJyZW50Q2hpbGQsIGN1cnJlbnRDaGlsZC5wZW5kaW5nUHJvcHMpO1xuICAgIG5ld0NoaWxkLnJldHVybiA9IHdvcmtJblByb2dyZXNzO1xuICB9XG5cbiAgbmV3Q2hpbGQuc2libGluZyA9IG51bGw7XG59IC8vIFJlc2V0IGEgd29ya0luUHJvZ3Jlc3MgY2hpbGQgc2V0IHRvIHByZXBhcmUgaXQgZm9yIGEgc2Vjb25kIHBhc3MuXG5cbmZ1bmN0aW9uIHJlc2V0Q2hpbGRGaWJlcnMod29ya0luUHJvZ3Jlc3MsIGxhbmVzKSB7XG4gIHZhciBjaGlsZCA9IHdvcmtJblByb2dyZXNzLmNoaWxkO1xuXG4gIHdoaWxlIChjaGlsZCAhPT0gbnVsbCkge1xuICAgIHJlc2V0V29ya0luUHJvZ3Jlc3MoY2hpbGQsIGxhbmVzKTtcbiAgICBjaGlsZCA9IGNoaWxkLnNpYmxpbmc7XG4gIH1cbn1cblxudmFyIE5PX0NPTlRFWFQgPSB7fTtcbnZhciBjb250ZXh0U3RhY2tDdXJzb3IkMSA9IGNyZWF0ZUN1cnNvcihOT19DT05URVhUKTtcbnZhciBjb250ZXh0RmliZXJTdGFja0N1cnNvciA9IGNyZWF0ZUN1cnNvcihOT19DT05URVhUKTtcbnZhciByb290SW5zdGFuY2VTdGFja0N1cnNvciA9IGNyZWF0ZUN1cnNvcihOT19DT05URVhUKTtcblxuZnVuY3Rpb24gcmVxdWlyZWRDb250ZXh0KGMpIHtcbiAgaWYgKCEoYyAhPT0gTk9fQ09OVEVYVCkpIHtcbiAgICB7XG4gICAgICB0aHJvdyBFcnJvciggXCJFeHBlY3RlZCBob3N0IGNvbnRleHQgdG8gZXhpc3QuIFRoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCIgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gYztcbn1cblxuZnVuY3Rpb24gZ2V0Um9vdEhvc3RDb250YWluZXIoKSB7XG4gIHZhciByb290SW5zdGFuY2UgPSByZXF1aXJlZENvbnRleHQocm9vdEluc3RhbmNlU3RhY2tDdXJzb3IuY3VycmVudCk7XG4gIHJldHVybiByb290SW5zdGFuY2U7XG59XG5cbmZ1bmN0aW9uIHB1c2hIb3N0Q29udGFpbmVyKGZpYmVyLCBuZXh0Um9vdEluc3RhbmNlKSB7XG4gIC8vIFB1c2ggY3VycmVudCByb290IGluc3RhbmNlIG9udG8gdGhlIHN0YWNrO1xuICAvLyBUaGlzIGFsbG93cyB1cyB0byByZXNldCByb290IHdoZW4gcG9ydGFscyBhcmUgcG9wcGVkLlxuICBwdXNoKHJvb3RJbnN0YW5jZVN0YWNrQ3Vyc29yLCBuZXh0Um9vdEluc3RhbmNlLCBmaWJlcik7IC8vIFRyYWNrIHRoZSBjb250ZXh0IGFuZCB0aGUgRmliZXIgdGhhdCBwcm92aWRlZCBpdC5cbiAgLy8gVGhpcyBlbmFibGVzIHVzIHRvIHBvcCBvbmx5IEZpYmVycyB0aGF0IHByb3ZpZGUgdW5pcXVlIGNvbnRleHRzLlxuXG4gIHB1c2goY29udGV4dEZpYmVyU3RhY2tDdXJzb3IsIGZpYmVyLCBmaWJlcik7IC8vIEZpbmFsbHksIHdlIG5lZWQgdG8gcHVzaCB0aGUgaG9zdCBjb250ZXh0IHRvIHRoZSBzdGFjay5cbiAgLy8gSG93ZXZlciwgd2UgY2FuJ3QganVzdCBjYWxsIGdldFJvb3RIb3N0Q29udGV4dCgpIGFuZCBwdXNoIGl0IGJlY2F1c2VcbiAgLy8gd2UnZCBoYXZlIGEgZGlmZmVyZW50IG51bWJlciBvZiBlbnRyaWVzIG9uIHRoZSBzdGFjayBkZXBlbmRpbmcgb25cbiAgLy8gd2hldGhlciBnZXRSb290SG9zdENvbnRleHQoKSB0aHJvd3Mgc29tZXdoZXJlIGluIHJlbmRlcmVyIGNvZGUgb3Igbm90LlxuICAvLyBTbyB3ZSBwdXNoIGFuIGVtcHR5IHZhbHVlIGZpcnN0LiBUaGlzIGxldHMgdXMgc2FmZWx5IHVud2luZCBvbiBlcnJvcnMuXG5cbiAgcHVzaChjb250ZXh0U3RhY2tDdXJzb3IkMSwgTk9fQ09OVEVYVCwgZmliZXIpO1xuICB2YXIgbmV4dFJvb3RDb250ZXh0ID0gZ2V0Um9vdEhvc3RDb250ZXh0KG5leHRSb290SW5zdGFuY2UpOyAvLyBOb3cgdGhhdCB3ZSBrbm93IHRoaXMgZnVuY3Rpb24gZG9lc24ndCB0aHJvdywgcmVwbGFjZSBpdC5cblxuICBwb3AoY29udGV4dFN0YWNrQ3Vyc29yJDEsIGZpYmVyKTtcbiAgcHVzaChjb250ZXh0U3RhY2tDdXJzb3IkMSwgbmV4dFJvb3RDb250ZXh0LCBmaWJlcik7XG59XG5cbmZ1bmN0aW9uIHBvcEhvc3RDb250YWluZXIoZmliZXIpIHtcbiAgcG9wKGNvbnRleHRTdGFja0N1cnNvciQxLCBmaWJlcik7XG4gIHBvcChjb250ZXh0RmliZXJTdGFja0N1cnNvciwgZmliZXIpO1xuICBwb3Aocm9vdEluc3RhbmNlU3RhY2tDdXJzb3IsIGZpYmVyKTtcbn1cblxuZnVuY3Rpb24gZ2V0SG9zdENvbnRleHQoKSB7XG4gIHZhciBjb250ZXh0ID0gcmVxdWlyZWRDb250ZXh0KGNvbnRleHRTdGFja0N1cnNvciQxLmN1cnJlbnQpO1xuICByZXR1cm4gY29udGV4dDtcbn1cblxuZnVuY3Rpb24gcHVzaEhvc3RDb250ZXh0KGZpYmVyKSB7XG4gIHZhciByb290SW5zdGFuY2UgPSByZXF1aXJlZENvbnRleHQocm9vdEluc3RhbmNlU3RhY2tDdXJzb3IuY3VycmVudCk7XG4gIHZhciBjb250ZXh0ID0gcmVxdWlyZWRDb250ZXh0KGNvbnRleHRTdGFja0N1cnNvciQxLmN1cnJlbnQpO1xuICB2YXIgbmV4dENvbnRleHQgPSBnZXRDaGlsZEhvc3RDb250ZXh0KGNvbnRleHQsIGZpYmVyLnR5cGUpOyAvLyBEb24ndCBwdXNoIHRoaXMgRmliZXIncyBjb250ZXh0IHVubGVzcyBpdCdzIHVuaXF1ZS5cblxuICBpZiAoY29udGV4dCA9PT0gbmV4dENvbnRleHQpIHtcbiAgICByZXR1cm47XG4gIH0gLy8gVHJhY2sgdGhlIGNvbnRleHQgYW5kIHRoZSBGaWJlciB0aGF0IHByb3ZpZGVkIGl0LlxuICAvLyBUaGlzIGVuYWJsZXMgdXMgdG8gcG9wIG9ubHkgRmliZXJzIHRoYXQgcHJvdmlkZSB1bmlxdWUgY29udGV4dHMuXG5cblxuICBwdXNoKGNvbnRleHRGaWJlclN0YWNrQ3Vyc29yLCBmaWJlciwgZmliZXIpO1xuICBwdXNoKGNvbnRleHRTdGFja0N1cnNvciQxLCBuZXh0Q29udGV4dCwgZmliZXIpO1xufVxuXG5mdW5jdGlvbiBwb3BIb3N0Q29udGV4dChmaWJlcikge1xuICAvLyBEbyBub3QgcG9wIHVubGVzcyB0aGlzIEZpYmVyIHByb3ZpZGVkIHRoZSBjdXJyZW50IGNvbnRleHQuXG4gIC8vIHB1c2hIb3N0Q29udGV4dCgpIG9ubHkgcHVzaGVzIEZpYmVycyB0aGF0IHByb3ZpZGUgdW5pcXVlIGNvbnRleHRzLlxuICBpZiAoY29udGV4dEZpYmVyU3RhY2tDdXJzb3IuY3VycmVudCAhPT0gZmliZXIpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBwb3AoY29udGV4dFN0YWNrQ3Vyc29yJDEsIGZpYmVyKTtcbiAgcG9wKGNvbnRleHRGaWJlclN0YWNrQ3Vyc29yLCBmaWJlcik7XG59XG5cbnZhciBEZWZhdWx0U3VzcGVuc2VDb250ZXh0ID0gMDsgLy8gVGhlIFN1c3BlbnNlIENvbnRleHQgaXMgc3BsaXQgaW50byB0d28gcGFydHMuIFRoZSBsb3dlciBiaXRzIGlzXG4vLyBpbmhlcml0ZWQgZGVlcGx5IGRvd24gdGhlIHN1YnRyZWUuIFRoZSB1cHBlciBiaXRzIG9ubHkgYWZmZWN0XG4vLyB0aGlzIGltbWVkaWF0ZSBzdXNwZW5zZSBib3VuZGFyeSBhbmQgZ2V0cyByZXNldCBlYWNoIG5ld1xuLy8gYm91bmRhcnkgb3Igc3VzcGVuc2UgbGlzdC5cblxudmFyIFN1YnRyZWVTdXNwZW5zZUNvbnRleHRNYXNrID0gMTsgLy8gU3VidHJlZSBGbGFnczpcbi8vIEludmlzaWJsZVBhcmVudFN1c3BlbnNlQ29udGV4dCBpbmRpY2F0ZXMgdGhhdCBvbmUgb2Ygb3VyIHBhcmVudCBTdXNwZW5zZVxuLy8gYm91bmRhcmllcyBpcyBub3QgY3VycmVudGx5IHNob3dpbmcgdmlzaWJsZSBtYWluIGNvbnRlbnQuXG4vLyBFaXRoZXIgYmVjYXVzZSBpdCBpcyBhbHJlYWR5IHNob3dpbmcgYSBmYWxsYmFjayBvciBpcyBub3QgbW91bnRlZCBhdCBhbGwuXG4vLyBXZSBjYW4gdXNlIHRoaXMgdG8gZGV0ZXJtaW5lIGlmIGl0IGlzIGRlc2lyYWJsZSB0byB0cmlnZ2VyIGEgZmFsbGJhY2sgYXRcbi8vIHRoZSBwYXJlbnQuIElmIG5vdCwgdGhlbiB3ZSBtaWdodCBuZWVkIHRvIHRyaWdnZXIgdW5kZXNpcmFibGUgYm91bmRhcmllc1xuLy8gYW5kL29yIHN1c3BlbmQgdGhlIGNvbW1pdCB0byBhdm9pZCBoaWRpbmcgdGhlIHBhcmVudCBjb250ZW50LlxuXG52YXIgSW52aXNpYmxlUGFyZW50U3VzcGVuc2VDb250ZXh0ID0gMTsgLy8gU2hhbGxvdyBGbGFnczpcbi8vIEZvcmNlU3VzcGVuc2VGYWxsYmFjayBjYW4gYmUgdXNlZCBieSBTdXNwZW5zZUxpc3QgdG8gZm9yY2UgbmV3bHkgYWRkZWRcbi8vIGl0ZW1zIGludG8gdGhlaXIgZmFsbGJhY2sgc3RhdGUgZHVyaW5nIG9uZSBvZiB0aGUgcmVuZGVyIHBhc3Nlcy5cblxudmFyIEZvcmNlU3VzcGVuc2VGYWxsYmFjayA9IDI7XG52YXIgc3VzcGVuc2VTdGFja0N1cnNvciA9IGNyZWF0ZUN1cnNvcihEZWZhdWx0U3VzcGVuc2VDb250ZXh0KTtcbmZ1bmN0aW9uIGhhc1N1c3BlbnNlQ29udGV4dChwYXJlbnRDb250ZXh0LCBmbGFnKSB7XG4gIHJldHVybiAocGFyZW50Q29udGV4dCAmIGZsYWcpICE9PSAwO1xufVxuZnVuY3Rpb24gc2V0RGVmYXVsdFNoYWxsb3dTdXNwZW5zZUNvbnRleHQocGFyZW50Q29udGV4dCkge1xuICByZXR1cm4gcGFyZW50Q29udGV4dCAmIFN1YnRyZWVTdXNwZW5zZUNvbnRleHRNYXNrO1xufVxuZnVuY3Rpb24gc2V0U2hhbGxvd1N1c3BlbnNlQ29udGV4dChwYXJlbnRDb250ZXh0LCBzaGFsbG93Q29udGV4dCkge1xuICByZXR1cm4gcGFyZW50Q29udGV4dCAmIFN1YnRyZWVTdXNwZW5zZUNvbnRleHRNYXNrIHwgc2hhbGxvd0NvbnRleHQ7XG59XG5mdW5jdGlvbiBhZGRTdWJ0cmVlU3VzcGVuc2VDb250ZXh0KHBhcmVudENvbnRleHQsIHN1YnRyZWVDb250ZXh0KSB7XG4gIHJldHVybiBwYXJlbnRDb250ZXh0IHwgc3VidHJlZUNvbnRleHQ7XG59XG5mdW5jdGlvbiBwdXNoU3VzcGVuc2VDb250ZXh0KGZpYmVyLCBuZXdDb250ZXh0KSB7XG4gIHB1c2goc3VzcGVuc2VTdGFja0N1cnNvciwgbmV3Q29udGV4dCwgZmliZXIpO1xufVxuZnVuY3Rpb24gcG9wU3VzcGVuc2VDb250ZXh0KGZpYmVyKSB7XG4gIHBvcChzdXNwZW5zZVN0YWNrQ3Vyc29yLCBmaWJlcik7XG59XG5cbmZ1bmN0aW9uIHNob3VsZENhcHR1cmVTdXNwZW5zZSh3b3JrSW5Qcm9ncmVzcywgaGFzSW52aXNpYmxlUGFyZW50KSB7XG4gIC8vIElmIGl0IHdhcyB0aGUgcHJpbWFyeSBjaGlsZHJlbiB0aGF0IGp1c3Qgc3VzcGVuZGVkLCBjYXB0dXJlIGFuZCByZW5kZXIgdGhlXG4gIC8vIGZhbGxiYWNrLiBPdGhlcndpc2UsIGRvbid0IGNhcHR1cmUgYW5kIGJ1YmJsZSB0byB0aGUgbmV4dCBib3VuZGFyeS5cbiAgdmFyIG5leHRTdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG5cbiAgaWYgKG5leHRTdGF0ZSAhPT0gbnVsbCkge1xuICAgIGlmIChuZXh0U3RhdGUuZGVoeWRyYXRlZCAhPT0gbnVsbCkge1xuICAgICAgLy8gQSBkZWh5ZHJhdGVkIGJvdW5kYXJ5IGFsd2F5cyBjYXB0dXJlcy5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHZhciBwcm9wcyA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkUHJvcHM7IC8vIEluIG9yZGVyIHRvIGNhcHR1cmUsIHRoZSBTdXNwZW5zZSBjb21wb25lbnQgbXVzdCBoYXZlIGEgZmFsbGJhY2sgcHJvcC5cblxuICBpZiAocHJvcHMuZmFsbGJhY2sgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfSAvLyBSZWd1bGFyIGJvdW5kYXJpZXMgYWx3YXlzIGNhcHR1cmUuXG5cblxuICBpZiAocHJvcHMudW5zdGFibGVfYXZvaWRUaGlzRmFsbGJhY2sgIT09IHRydWUpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSAvLyBJZiBpdCdzIGEgYm91bmRhcnkgd2Ugc2hvdWxkIGF2b2lkLCB0aGVuIHdlIHByZWZlciB0byBidWJibGUgdXAgdG8gdGhlXG4gIC8vIHBhcmVudCBib3VuZGFyeSBpZiBpdCBpcyBjdXJyZW50bHkgaW52aXNpYmxlLlxuXG5cbiAgaWYgKGhhc0ludmlzaWJsZVBhcmVudCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfSAvLyBJZiB0aGUgcGFyZW50IGlzIG5vdCBhYmxlIHRvIGhhbmRsZSBpdCwgd2UgbXVzdCBoYW5kbGUgaXQuXG5cblxuICByZXR1cm4gdHJ1ZTtcbn1cbmZ1bmN0aW9uIGZpbmRGaXJzdFN1c3BlbmRlZChyb3cpIHtcbiAgdmFyIG5vZGUgPSByb3c7XG5cbiAgd2hpbGUgKG5vZGUgIT09IG51bGwpIHtcbiAgICBpZiAobm9kZS50YWcgPT09IFN1c3BlbnNlQ29tcG9uZW50KSB7XG4gICAgICB2YXIgc3RhdGUgPSBub2RlLm1lbW9pemVkU3RhdGU7XG5cbiAgICAgIGlmIChzdGF0ZSAhPT0gbnVsbCkge1xuICAgICAgICB2YXIgZGVoeWRyYXRlZCA9IHN0YXRlLmRlaHlkcmF0ZWQ7XG5cbiAgICAgICAgaWYgKGRlaHlkcmF0ZWQgPT09IG51bGwgfHwgaXNTdXNwZW5zZUluc3RhbmNlUGVuZGluZyhkZWh5ZHJhdGVkKSB8fCBpc1N1c3BlbnNlSW5zdGFuY2VGYWxsYmFjayhkZWh5ZHJhdGVkKSkge1xuICAgICAgICAgIHJldHVybiBub2RlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChub2RlLnRhZyA9PT0gU3VzcGVuc2VMaXN0Q29tcG9uZW50ICYmIC8vIHJldmVhbE9yZGVyIHVuZGVmaW5lZCBjYW4ndCBiZSB0cnVzdGVkIGJlY2F1c2UgaXQgZG9uJ3RcbiAgICAvLyBrZWVwIHRyYWNrIG9mIHdoZXRoZXIgaXQgc3VzcGVuZGVkIG9yIG5vdC5cbiAgICBub2RlLm1lbW9pemVkUHJvcHMucmV2ZWFsT3JkZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdmFyIGRpZFN1c3BlbmQgPSAobm9kZS5mbGFncyAmIERpZENhcHR1cmUpICE9PSBOb0ZsYWdzO1xuXG4gICAgICBpZiAoZGlkU3VzcGVuZCkge1xuICAgICAgICByZXR1cm4gbm9kZTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKG5vZGUuY2hpbGQgIT09IG51bGwpIHtcbiAgICAgIG5vZGUuY2hpbGQucmV0dXJuID0gbm9kZTtcbiAgICAgIG5vZGUgPSBub2RlLmNoaWxkO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKG5vZGUgPT09IHJvdykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgd2hpbGUgKG5vZGUuc2libGluZyA9PT0gbnVsbCkge1xuICAgICAgaWYgKG5vZGUucmV0dXJuID09PSBudWxsIHx8IG5vZGUucmV0dXJuID09PSByb3cpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIG5vZGUgPSBub2RlLnJldHVybjtcbiAgICB9XG5cbiAgICBub2RlLnNpYmxpbmcucmV0dXJuID0gbm9kZS5yZXR1cm47XG4gICAgbm9kZSA9IG5vZGUuc2libGluZztcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG52YXIgTm9GbGFncyQxID1cbi8qICAqL1xuMDsgLy8gUmVwcmVzZW50cyB3aGV0aGVyIGVmZmVjdCBzaG91bGQgZmlyZS5cblxudmFyIEhhc0VmZmVjdCA9XG4vKiAqL1xuMTsgLy8gUmVwcmVzZW50cyB0aGUgcGhhc2UgaW4gd2hpY2ggdGhlIGVmZmVjdCAobm90IHRoZSBjbGVhbi11cCkgZmlyZXMuXG5cbnZhciBMYXlvdXQgPVxuLyogICAgKi9cbjI7XG52YXIgUGFzc2l2ZSQxID1cbi8qICAgKi9cbjQ7XG5cbi8vIFRoaXMgbWF5IGhhdmUgYmVlbiBhbiBpbnNlcnRpb24gb3IgYSBoeWRyYXRpb24uXG5cbnZhciBoeWRyYXRpb25QYXJlbnRGaWJlciA9IG51bGw7XG52YXIgbmV4dEh5ZHJhdGFibGVJbnN0YW5jZSA9IG51bGw7XG52YXIgaXNIeWRyYXRpbmcgPSBmYWxzZTtcblxuZnVuY3Rpb24gZW50ZXJIeWRyYXRpb25TdGF0ZShmaWJlcikge1xuXG4gIHZhciBwYXJlbnRJbnN0YW5jZSA9IGZpYmVyLnN0YXRlTm9kZS5jb250YWluZXJJbmZvO1xuICBuZXh0SHlkcmF0YWJsZUluc3RhbmNlID0gZ2V0Rmlyc3RIeWRyYXRhYmxlQ2hpbGQocGFyZW50SW5zdGFuY2UpO1xuICBoeWRyYXRpb25QYXJlbnRGaWJlciA9IGZpYmVyO1xuICBpc0h5ZHJhdGluZyA9IHRydWU7XG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBkZWxldGVIeWRyYXRhYmxlSW5zdGFuY2UocmV0dXJuRmliZXIsIGluc3RhbmNlKSB7XG4gIHtcbiAgICBzd2l0Y2ggKHJldHVybkZpYmVyLnRhZykge1xuICAgICAgY2FzZSBIb3N0Um9vdDpcbiAgICAgICAgZGlkTm90SHlkcmF0ZUNvbnRhaW5lckluc3RhbmNlKHJldHVybkZpYmVyLnN0YXRlTm9kZS5jb250YWluZXJJbmZvLCBpbnN0YW5jZSk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIEhvc3RDb21wb25lbnQ6XG4gICAgICAgIGRpZE5vdEh5ZHJhdGVJbnN0YW5jZShyZXR1cm5GaWJlci50eXBlLCByZXR1cm5GaWJlci5tZW1vaXplZFByb3BzLCByZXR1cm5GaWJlci5zdGF0ZU5vZGUsIGluc3RhbmNlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgdmFyIGNoaWxkVG9EZWxldGUgPSBjcmVhdGVGaWJlckZyb21Ib3N0SW5zdGFuY2VGb3JEZWxldGlvbigpO1xuICBjaGlsZFRvRGVsZXRlLnN0YXRlTm9kZSA9IGluc3RhbmNlO1xuICBjaGlsZFRvRGVsZXRlLnJldHVybiA9IHJldHVybkZpYmVyO1xuICBjaGlsZFRvRGVsZXRlLmZsYWdzID0gRGVsZXRpb247IC8vIFRoaXMgbWlnaHQgc2VlbSBsaWtlIGl0IGJlbG9uZ3Mgb24gcHJvZ3Jlc3NlZEZpcnN0RGVsZXRpb24uIEhvd2V2ZXIsXG4gIC8vIHRoZXNlIGNoaWxkcmVuIGFyZSBub3QgcGFydCBvZiB0aGUgcmVjb25jaWxpYXRpb24gbGlzdCBvZiBjaGlsZHJlbi5cbiAgLy8gRXZlbiBpZiB3ZSBhYm9ydCBhbmQgcmVyZWNvbmNpbGUgdGhlIGNoaWxkcmVuLCB0aGF0IHdpbGwgdHJ5IHRvIGh5ZHJhdGVcbiAgLy8gYWdhaW4gYW5kIHRoZSBub2RlcyBhcmUgc3RpbGwgaW4gdGhlIGhvc3QgdHJlZSBzbyB0aGVzZSB3aWxsIGJlXG4gIC8vIHJlY3JlYXRlZC5cblxuICBpZiAocmV0dXJuRmliZXIubGFzdEVmZmVjdCAhPT0gbnVsbCkge1xuICAgIHJldHVybkZpYmVyLmxhc3RFZmZlY3QubmV4dEVmZmVjdCA9IGNoaWxkVG9EZWxldGU7XG4gICAgcmV0dXJuRmliZXIubGFzdEVmZmVjdCA9IGNoaWxkVG9EZWxldGU7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuRmliZXIuZmlyc3RFZmZlY3QgPSByZXR1cm5GaWJlci5sYXN0RWZmZWN0ID0gY2hpbGRUb0RlbGV0ZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpbnNlcnROb25IeWRyYXRlZEluc3RhbmNlKHJldHVybkZpYmVyLCBmaWJlcikge1xuICBmaWJlci5mbGFncyA9IGZpYmVyLmZsYWdzICYgfkh5ZHJhdGluZyB8IFBsYWNlbWVudDtcblxuICB7XG4gICAgc3dpdGNoIChyZXR1cm5GaWJlci50YWcpIHtcbiAgICAgIGNhc2UgSG9zdFJvb3Q6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgcGFyZW50Q29udGFpbmVyID0gcmV0dXJuRmliZXIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm87XG5cbiAgICAgICAgICBzd2l0Y2ggKGZpYmVyLnRhZykge1xuICAgICAgICAgICAgY2FzZSBIb3N0Q29tcG9uZW50OlxuICAgICAgICAgICAgICB2YXIgdHlwZSA9IGZpYmVyLnR5cGU7XG4gICAgICAgICAgICAgIHZhciBwcm9wcyA9IGZpYmVyLnBlbmRpbmdQcm9wcztcbiAgICAgICAgICAgICAgZGlkTm90RmluZEh5ZHJhdGFibGVDb250YWluZXJJbnN0YW5jZShwYXJlbnRDb250YWluZXIsIHR5cGUpO1xuICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSBIb3N0VGV4dDpcbiAgICAgICAgICAgICAgdmFyIHRleHQgPSBmaWJlci5wZW5kaW5nUHJvcHM7XG4gICAgICAgICAgICAgIGRpZE5vdEZpbmRIeWRyYXRhYmxlQ29udGFpbmVyVGV4dEluc3RhbmNlKHBhcmVudENvbnRhaW5lciwgdGV4dCk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgIGNhc2UgSG9zdENvbXBvbmVudDpcbiAgICAgICAge1xuICAgICAgICAgIHZhciBwYXJlbnRUeXBlID0gcmV0dXJuRmliZXIudHlwZTtcbiAgICAgICAgICB2YXIgcGFyZW50UHJvcHMgPSByZXR1cm5GaWJlci5tZW1vaXplZFByb3BzO1xuICAgICAgICAgIHZhciBwYXJlbnRJbnN0YW5jZSA9IHJldHVybkZpYmVyLnN0YXRlTm9kZTtcblxuICAgICAgICAgIHN3aXRjaCAoZmliZXIudGFnKSB7XG4gICAgICAgICAgICBjYXNlIEhvc3RDb21wb25lbnQ6XG4gICAgICAgICAgICAgIHZhciBfdHlwZSA9IGZpYmVyLnR5cGU7XG4gICAgICAgICAgICAgIHZhciBfcHJvcHMgPSBmaWJlci5wZW5kaW5nUHJvcHM7XG4gICAgICAgICAgICAgIGRpZE5vdEZpbmRIeWRyYXRhYmxlSW5zdGFuY2UocGFyZW50VHlwZSwgcGFyZW50UHJvcHMsIHBhcmVudEluc3RhbmNlLCBfdHlwZSk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlIEhvc3RUZXh0OlxuICAgICAgICAgICAgICB2YXIgX3RleHQgPSBmaWJlci5wZW5kaW5nUHJvcHM7XG4gICAgICAgICAgICAgIGRpZE5vdEZpbmRIeWRyYXRhYmxlVGV4dEluc3RhbmNlKHBhcmVudFR5cGUsIHBhcmVudFByb3BzLCBwYXJlbnRJbnN0YW5jZSwgX3RleHQpO1xuICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSBTdXNwZW5zZUNvbXBvbmVudDpcbiAgICAgICAgICAgICAgZGlkTm90RmluZEh5ZHJhdGFibGVTdXNwZW5zZUluc3RhbmNlKHBhcmVudFR5cGUsIHBhcmVudFByb3BzKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB0cnlIeWRyYXRlKGZpYmVyLCBuZXh0SW5zdGFuY2UpIHtcbiAgc3dpdGNoIChmaWJlci50YWcpIHtcbiAgICBjYXNlIEhvc3RDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHZhciB0eXBlID0gZmliZXIudHlwZTtcbiAgICAgICAgdmFyIHByb3BzID0gZmliZXIucGVuZGluZ1Byb3BzO1xuICAgICAgICB2YXIgaW5zdGFuY2UgPSBjYW5IeWRyYXRlSW5zdGFuY2UobmV4dEluc3RhbmNlLCB0eXBlKTtcblxuICAgICAgICBpZiAoaW5zdGFuY2UgIT09IG51bGwpIHtcbiAgICAgICAgICBmaWJlci5zdGF0ZU5vZGUgPSBpbnN0YW5jZTtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgIGNhc2UgSG9zdFRleHQ6XG4gICAgICB7XG4gICAgICAgIHZhciB0ZXh0ID0gZmliZXIucGVuZGluZ1Byb3BzO1xuICAgICAgICB2YXIgdGV4dEluc3RhbmNlID0gY2FuSHlkcmF0ZVRleHRJbnN0YW5jZShuZXh0SW5zdGFuY2UsIHRleHQpO1xuXG4gICAgICAgIGlmICh0ZXh0SW5zdGFuY2UgIT09IG51bGwpIHtcbiAgICAgICAgICBmaWJlci5zdGF0ZU5vZGUgPSB0ZXh0SW5zdGFuY2U7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICBjYXNlIFN1c3BlbnNlQ29tcG9uZW50OlxuICAgICAge1xuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZnVuY3Rpb24gdHJ5VG9DbGFpbU5leHRIeWRyYXRhYmxlSW5zdGFuY2UoZmliZXIpIHtcbiAgaWYgKCFpc0h5ZHJhdGluZykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciBuZXh0SW5zdGFuY2UgPSBuZXh0SHlkcmF0YWJsZUluc3RhbmNlO1xuXG4gIGlmICghbmV4dEluc3RhbmNlKSB7XG4gICAgLy8gTm90aGluZyB0byBoeWRyYXRlLiBNYWtlIGl0IGFuIGluc2VydGlvbi5cbiAgICBpbnNlcnROb25IeWRyYXRlZEluc3RhbmNlKGh5ZHJhdGlvblBhcmVudEZpYmVyLCBmaWJlcik7XG4gICAgaXNIeWRyYXRpbmcgPSBmYWxzZTtcbiAgICBoeWRyYXRpb25QYXJlbnRGaWJlciA9IGZpYmVyO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciBmaXJzdEF0dGVtcHRlZEluc3RhbmNlID0gbmV4dEluc3RhbmNlO1xuXG4gIGlmICghdHJ5SHlkcmF0ZShmaWJlciwgbmV4dEluc3RhbmNlKSkge1xuICAgIC8vIElmIHdlIGNhbid0IGh5ZHJhdGUgdGhpcyBpbnN0YW5jZSBsZXQncyB0cnkgdGhlIG5leHQgb25lLlxuICAgIC8vIFdlIHVzZSB0aGlzIGFzIGEgaGV1cmlzdGljLiBJdCdzIGJhc2VkIG9uIGludHVpdGlvbiBhbmQgbm90IGRhdGEgc28gaXRcbiAgICAvLyBtaWdodCBiZSBmbGF3ZWQgb3IgdW5uZWNlc3NhcnkuXG4gICAgbmV4dEluc3RhbmNlID0gZ2V0TmV4dEh5ZHJhdGFibGVTaWJsaW5nKGZpcnN0QXR0ZW1wdGVkSW5zdGFuY2UpO1xuXG4gICAgaWYgKCFuZXh0SW5zdGFuY2UgfHwgIXRyeUh5ZHJhdGUoZmliZXIsIG5leHRJbnN0YW5jZSkpIHtcbiAgICAgIC8vIE5vdGhpbmcgdG8gaHlkcmF0ZS4gTWFrZSBpdCBhbiBpbnNlcnRpb24uXG4gICAgICBpbnNlcnROb25IeWRyYXRlZEluc3RhbmNlKGh5ZHJhdGlvblBhcmVudEZpYmVyLCBmaWJlcik7XG4gICAgICBpc0h5ZHJhdGluZyA9IGZhbHNlO1xuICAgICAgaHlkcmF0aW9uUGFyZW50RmliZXIgPSBmaWJlcjtcbiAgICAgIHJldHVybjtcbiAgICB9IC8vIFdlIG1hdGNoZWQgdGhlIG5leHQgb25lLCB3ZSdsbCBub3cgYXNzdW1lIHRoYXQgdGhlIGZpcnN0IG9uZSB3YXNcbiAgICAvLyBzdXBlcmZsdW91cyBhbmQgd2UnbGwgZGVsZXRlIGl0LiBTaW5jZSB3ZSBjYW4ndCBlYWdlcmx5IGRlbGV0ZSBpdFxuICAgIC8vIHdlJ2xsIGhhdmUgdG8gc2NoZWR1bGUgYSBkZWxldGlvbi4gVG8gZG8gdGhhdCwgdGhpcyBub2RlIG5lZWRzIGEgZHVtbXlcbiAgICAvLyBmaWJlciBhc3NvY2lhdGVkIHdpdGggaXQuXG5cblxuICAgIGRlbGV0ZUh5ZHJhdGFibGVJbnN0YW5jZShoeWRyYXRpb25QYXJlbnRGaWJlciwgZmlyc3RBdHRlbXB0ZWRJbnN0YW5jZSk7XG4gIH1cblxuICBoeWRyYXRpb25QYXJlbnRGaWJlciA9IGZpYmVyO1xuICBuZXh0SHlkcmF0YWJsZUluc3RhbmNlID0gZ2V0Rmlyc3RIeWRyYXRhYmxlQ2hpbGQobmV4dEluc3RhbmNlKTtcbn1cblxuZnVuY3Rpb24gcHJlcGFyZVRvSHlkcmF0ZUhvc3RJbnN0YW5jZShmaWJlciwgcm9vdENvbnRhaW5lckluc3RhbmNlLCBob3N0Q29udGV4dCkge1xuXG4gIHZhciBpbnN0YW5jZSA9IGZpYmVyLnN0YXRlTm9kZTtcbiAgdmFyIHVwZGF0ZVBheWxvYWQgPSBoeWRyYXRlSW5zdGFuY2UoaW5zdGFuY2UsIGZpYmVyLnR5cGUsIGZpYmVyLm1lbW9pemVkUHJvcHMsIHJvb3RDb250YWluZXJJbnN0YW5jZSwgaG9zdENvbnRleHQsIGZpYmVyKTsgLy8gVE9ETzogVHlwZSB0aGlzIHNwZWNpZmljIHRvIHRoaXMgdHlwZSBvZiBjb21wb25lbnQuXG5cbiAgZmliZXIudXBkYXRlUXVldWUgPSB1cGRhdGVQYXlsb2FkOyAvLyBJZiB0aGUgdXBkYXRlIHBheWxvYWQgaW5kaWNhdGVzIHRoYXQgdGhlcmUgaXMgYSBjaGFuZ2Ugb3IgaWYgdGhlcmVcbiAgLy8gaXMgYSBuZXcgcmVmIHdlIG1hcmsgdGhpcyBhcyBhbiB1cGRhdGUuXG5cbiAgaWYgKHVwZGF0ZVBheWxvYWQgIT09IG51bGwpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gcHJlcGFyZVRvSHlkcmF0ZUhvc3RUZXh0SW5zdGFuY2UoZmliZXIpIHtcblxuICB2YXIgdGV4dEluc3RhbmNlID0gZmliZXIuc3RhdGVOb2RlO1xuICB2YXIgdGV4dENvbnRlbnQgPSBmaWJlci5tZW1vaXplZFByb3BzO1xuICB2YXIgc2hvdWxkVXBkYXRlID0gaHlkcmF0ZVRleHRJbnN0YW5jZSh0ZXh0SW5zdGFuY2UsIHRleHRDb250ZW50LCBmaWJlcik7XG5cbiAge1xuICAgIGlmIChzaG91bGRVcGRhdGUpIHtcbiAgICAgIC8vIFdlIGFzc3VtZSB0aGF0IHByZXBhcmVUb0h5ZHJhdGVIb3N0VGV4dEluc3RhbmNlIGlzIGNhbGxlZCBpbiBhIGNvbnRleHQgd2hlcmUgdGhlXG4gICAgICAvLyBoeWRyYXRpb24gcGFyZW50IGlzIHRoZSBwYXJlbnQgaG9zdCBjb21wb25lbnQgb2YgdGhpcyBob3N0IHRleHQuXG4gICAgICB2YXIgcmV0dXJuRmliZXIgPSBoeWRyYXRpb25QYXJlbnRGaWJlcjtcblxuICAgICAgaWYgKHJldHVybkZpYmVyICE9PSBudWxsKSB7XG4gICAgICAgIHN3aXRjaCAocmV0dXJuRmliZXIudGFnKSB7XG4gICAgICAgICAgY2FzZSBIb3N0Um9vdDpcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdmFyIHBhcmVudENvbnRhaW5lciA9IHJldHVybkZpYmVyLnN0YXRlTm9kZS5jb250YWluZXJJbmZvO1xuICAgICAgICAgICAgICBkaWROb3RNYXRjaEh5ZHJhdGVkQ29udGFpbmVyVGV4dEluc3RhbmNlKHBhcmVudENvbnRhaW5lciwgdGV4dEluc3RhbmNlLCB0ZXh0Q29udGVudCk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgY2FzZSBIb3N0Q29tcG9uZW50OlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB2YXIgcGFyZW50VHlwZSA9IHJldHVybkZpYmVyLnR5cGU7XG4gICAgICAgICAgICAgIHZhciBwYXJlbnRQcm9wcyA9IHJldHVybkZpYmVyLm1lbW9pemVkUHJvcHM7XG4gICAgICAgICAgICAgIHZhciBwYXJlbnRJbnN0YW5jZSA9IHJldHVybkZpYmVyLnN0YXRlTm9kZTtcbiAgICAgICAgICAgICAgZGlkTm90TWF0Y2hIeWRyYXRlZFRleHRJbnN0YW5jZShwYXJlbnRUeXBlLCBwYXJlbnRQcm9wcywgcGFyZW50SW5zdGFuY2UsIHRleHRJbnN0YW5jZSwgdGV4dENvbnRlbnQpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzaG91bGRVcGRhdGU7XG59XG5cbmZ1bmN0aW9uIHNraXBQYXN0RGVoeWRyYXRlZFN1c3BlbnNlSW5zdGFuY2UoZmliZXIpIHtcblxuICB2YXIgc3VzcGVuc2VTdGF0ZSA9IGZpYmVyLm1lbW9pemVkU3RhdGU7XG4gIHZhciBzdXNwZW5zZUluc3RhbmNlID0gc3VzcGVuc2VTdGF0ZSAhPT0gbnVsbCA/IHN1c3BlbnNlU3RhdGUuZGVoeWRyYXRlZCA6IG51bGw7XG5cbiAgaWYgKCFzdXNwZW5zZUluc3RhbmNlKSB7XG4gICAge1xuICAgICAgdGhyb3cgRXJyb3IoIFwiRXhwZWN0ZWQgdG8gaGF2ZSBhIGh5ZHJhdGVkIHN1c3BlbnNlIGluc3RhbmNlLiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLlwiICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGdldE5leHRIeWRyYXRhYmxlSW5zdGFuY2VBZnRlclN1c3BlbnNlSW5zdGFuY2Uoc3VzcGVuc2VJbnN0YW5jZSk7XG59XG5cbmZ1bmN0aW9uIHBvcFRvTmV4dEhvc3RQYXJlbnQoZmliZXIpIHtcbiAgdmFyIHBhcmVudCA9IGZpYmVyLnJldHVybjtcblxuICB3aGlsZSAocGFyZW50ICE9PSBudWxsICYmIHBhcmVudC50YWcgIT09IEhvc3RDb21wb25lbnQgJiYgcGFyZW50LnRhZyAhPT0gSG9zdFJvb3QgJiYgcGFyZW50LnRhZyAhPT0gU3VzcGVuc2VDb21wb25lbnQpIHtcbiAgICBwYXJlbnQgPSBwYXJlbnQucmV0dXJuO1xuICB9XG5cbiAgaHlkcmF0aW9uUGFyZW50RmliZXIgPSBwYXJlbnQ7XG59XG5cbmZ1bmN0aW9uIHBvcEh5ZHJhdGlvblN0YXRlKGZpYmVyKSB7XG5cbiAgaWYgKGZpYmVyICE9PSBoeWRyYXRpb25QYXJlbnRGaWJlcikge1xuICAgIC8vIFdlJ3JlIGRlZXBlciB0aGFuIHRoZSBjdXJyZW50IGh5ZHJhdGlvbiBjb250ZXh0LCBpbnNpZGUgYW4gaW5zZXJ0ZWRcbiAgICAvLyB0cmVlLlxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaXNIeWRyYXRpbmcpIHtcbiAgICAvLyBJZiB3ZSdyZSBub3QgY3VycmVudGx5IGh5ZHJhdGluZyBidXQgd2UncmUgaW4gYSBoeWRyYXRpb24gY29udGV4dCwgdGhlblxuICAgIC8vIHdlIHdlcmUgYW4gaW5zZXJ0aW9uIGFuZCBub3cgbmVlZCB0byBwb3AgdXAgcmVlbnRlciBoeWRyYXRpb24gb2Ygb3VyXG4gICAgLy8gc2libGluZ3MuXG4gICAgcG9wVG9OZXh0SG9zdFBhcmVudChmaWJlcik7XG4gICAgaXNIeWRyYXRpbmcgPSB0cnVlO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHZhciB0eXBlID0gZmliZXIudHlwZTsgLy8gSWYgd2UgaGF2ZSBhbnkgcmVtYWluaW5nIGh5ZHJhdGFibGUgbm9kZXMsIHdlIG5lZWQgdG8gZGVsZXRlIHRoZW0gbm93LlxuICAvLyBXZSBvbmx5IGRvIHRoaXMgZGVlcGVyIHRoYW4gaGVhZCBhbmQgYm9keSBzaW5jZSB0aGV5IHRlbmQgdG8gaGF2ZSByYW5kb21cbiAgLy8gb3RoZXIgbm9kZXMgaW4gdGhlbS4gV2UgYWxzbyBpZ25vcmUgY29tcG9uZW50cyB3aXRoIHB1cmUgdGV4dCBjb250ZW50IGluXG4gIC8vIHNpZGUgb2YgdGhlbS5cbiAgLy8gVE9ETzogQmV0dGVyIGhldXJpc3RpYy5cblxuICBpZiAoZmliZXIudGFnICE9PSBIb3N0Q29tcG9uZW50IHx8IHR5cGUgIT09ICdoZWFkJyAmJiB0eXBlICE9PSAnYm9keScgJiYgIXNob3VsZFNldFRleHRDb250ZW50KHR5cGUsIGZpYmVyLm1lbW9pemVkUHJvcHMpKSB7XG4gICAgdmFyIG5leHRJbnN0YW5jZSA9IG5leHRIeWRyYXRhYmxlSW5zdGFuY2U7XG5cbiAgICB3aGlsZSAobmV4dEluc3RhbmNlKSB7XG4gICAgICBkZWxldGVIeWRyYXRhYmxlSW5zdGFuY2UoZmliZXIsIG5leHRJbnN0YW5jZSk7XG4gICAgICBuZXh0SW5zdGFuY2UgPSBnZXROZXh0SHlkcmF0YWJsZVNpYmxpbmcobmV4dEluc3RhbmNlKTtcbiAgICB9XG4gIH1cblxuICBwb3BUb05leHRIb3N0UGFyZW50KGZpYmVyKTtcblxuICBpZiAoZmliZXIudGFnID09PSBTdXNwZW5zZUNvbXBvbmVudCkge1xuICAgIG5leHRIeWRyYXRhYmxlSW5zdGFuY2UgPSBza2lwUGFzdERlaHlkcmF0ZWRTdXNwZW5zZUluc3RhbmNlKGZpYmVyKTtcbiAgfSBlbHNlIHtcbiAgICBuZXh0SHlkcmF0YWJsZUluc3RhbmNlID0gaHlkcmF0aW9uUGFyZW50RmliZXIgPyBnZXROZXh0SHlkcmF0YWJsZVNpYmxpbmcoZmliZXIuc3RhdGVOb2RlKSA6IG51bGw7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gcmVzZXRIeWRyYXRpb25TdGF0ZSgpIHtcblxuICBoeWRyYXRpb25QYXJlbnRGaWJlciA9IG51bGw7XG4gIG5leHRIeWRyYXRhYmxlSW5zdGFuY2UgPSBudWxsO1xuICBpc0h5ZHJhdGluZyA9IGZhbHNlO1xufVxuXG5mdW5jdGlvbiBnZXRJc0h5ZHJhdGluZygpIHtcbiAgcmV0dXJuIGlzSHlkcmF0aW5nO1xufVxuXG4vLyBhbmQgc2hvdWxkIGJlIHJlc2V0IGJlZm9yZSBzdGFydGluZyBhIG5ldyByZW5kZXIuXG4vLyBUaGlzIHRyYWNrcyB3aGljaCBtdXRhYmxlIHNvdXJjZXMgbmVlZCB0byBiZSByZXNldCBhZnRlciBhIHJlbmRlci5cblxudmFyIHdvcmtJblByb2dyZXNzU291cmNlcyA9IFtdO1xudmFyIHJlbmRlcmVyU2lnaWwkMTtcblxue1xuICAvLyBVc2VkIHRvIGRldGVjdCBtdWx0aXBsZSByZW5kZXJlcnMgdXNpbmcgdGhlIHNhbWUgbXV0YWJsZSBzb3VyY2UuXG4gIHJlbmRlcmVyU2lnaWwkMSA9IHt9O1xufVxuXG5mdW5jdGlvbiBtYXJrU291cmNlQXNEaXJ0eShtdXRhYmxlU291cmNlKSB7XG4gIHdvcmtJblByb2dyZXNzU291cmNlcy5wdXNoKG11dGFibGVTb3VyY2UpO1xufVxuZnVuY3Rpb24gcmVzZXRXb3JrSW5Qcm9ncmVzc1ZlcnNpb25zKCkge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHdvcmtJblByb2dyZXNzU291cmNlcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBtdXRhYmxlU291cmNlID0gd29ya0luUHJvZ3Jlc3NTb3VyY2VzW2ldO1xuXG4gICAge1xuICAgICAgbXV0YWJsZVNvdXJjZS5fd29ya0luUHJvZ3Jlc3NWZXJzaW9uUHJpbWFyeSA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgd29ya0luUHJvZ3Jlc3NTb3VyY2VzLmxlbmd0aCA9IDA7XG59XG5mdW5jdGlvbiBnZXRXb3JrSW5Qcm9ncmVzc1ZlcnNpb24obXV0YWJsZVNvdXJjZSkge1xuICB7XG4gICAgcmV0dXJuIG11dGFibGVTb3VyY2UuX3dvcmtJblByb2dyZXNzVmVyc2lvblByaW1hcnk7XG4gIH1cbn1cbmZ1bmN0aW9uIHNldFdvcmtJblByb2dyZXNzVmVyc2lvbihtdXRhYmxlU291cmNlLCB2ZXJzaW9uKSB7XG4gIHtcbiAgICBtdXRhYmxlU291cmNlLl93b3JrSW5Qcm9ncmVzc1ZlcnNpb25QcmltYXJ5ID0gdmVyc2lvbjtcbiAgfVxuXG4gIHdvcmtJblByb2dyZXNzU291cmNlcy5wdXNoKG11dGFibGVTb3VyY2UpO1xufVxuZnVuY3Rpb24gd2FybkFib3V0TXVsdGlwbGVSZW5kZXJlcnNERVYobXV0YWJsZVNvdXJjZSkge1xuICB7XG4gICAge1xuICAgICAgaWYgKG11dGFibGVTb3VyY2UuX2N1cnJlbnRQcmltYXJ5UmVuZGVyZXIgPT0gbnVsbCkge1xuICAgICAgICBtdXRhYmxlU291cmNlLl9jdXJyZW50UHJpbWFyeVJlbmRlcmVyID0gcmVuZGVyZXJTaWdpbCQxO1xuICAgICAgfSBlbHNlIGlmIChtdXRhYmxlU291cmNlLl9jdXJyZW50UHJpbWFyeVJlbmRlcmVyICE9PSByZW5kZXJlclNpZ2lsJDEpIHtcbiAgICAgICAgZXJyb3IoJ0RldGVjdGVkIG11bHRpcGxlIHJlbmRlcmVycyBjb25jdXJyZW50bHkgcmVuZGVyaW5nIHRoZSAnICsgJ3NhbWUgbXV0YWJsZSBzb3VyY2UuIFRoaXMgaXMgY3VycmVudGx5IHVuc3VwcG9ydGVkLicpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufSAvLyBFYWdlciByZWFkcyB0aGUgdmVyc2lvbiBvZiBhIG11dGFibGUgc291cmNlIGFuZCBzdG9yZXMgaXQgb24gdGhlIHJvb3QuXG5cbnZhciBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdEN1cnJlbnREaXNwYXRjaGVyLFxuICAgIFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnJDEgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdEN1cnJlbnRCYXRjaENvbmZpZztcbnZhciBkaWRXYXJuQWJvdXRNaXNtYXRjaGVkSG9va3NGb3JDb21wb25lbnQ7XG52YXIgZGlkV2FybkFib3V0VXNlT3BhcXVlSWRlbnRpZmllcjtcblxue1xuICBkaWRXYXJuQWJvdXRVc2VPcGFxdWVJZGVudGlmaWVyID0ge307XG4gIGRpZFdhcm5BYm91dE1pc21hdGNoZWRIb29rc0ZvckNvbXBvbmVudCA9IG5ldyBTZXQoKTtcbn1cblxuLy8gVGhlc2UgYXJlIHNldCByaWdodCBiZWZvcmUgY2FsbGluZyB0aGUgY29tcG9uZW50LlxudmFyIHJlbmRlckxhbmVzID0gTm9MYW5lczsgLy8gVGhlIHdvcmstaW4tcHJvZ3Jlc3MgZmliZXIuIEkndmUgbmFtZWQgaXQgZGlmZmVyZW50bHkgdG8gZGlzdGluZ3Vpc2ggaXQgZnJvbVxuLy8gdGhlIHdvcmstaW4tcHJvZ3Jlc3MgaG9vay5cblxudmFyIGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyJDEgPSBudWxsOyAvLyBIb29rcyBhcmUgc3RvcmVkIGFzIGEgbGlua2VkIGxpc3Qgb24gdGhlIGZpYmVyJ3MgbWVtb2l6ZWRTdGF0ZSBmaWVsZC4gVGhlXG4vLyBjdXJyZW50IGhvb2sgbGlzdCBpcyB0aGUgbGlzdCB0aGF0IGJlbG9uZ3MgdG8gdGhlIGN1cnJlbnQgZmliZXIuIFRoZVxuLy8gd29yay1pbi1wcm9ncmVzcyBob29rIGxpc3QgaXMgYSBuZXcgbGlzdCB0aGF0IHdpbGwgYmUgYWRkZWQgdG8gdGhlXG4vLyB3b3JrLWluLXByb2dyZXNzIGZpYmVyLlxuXG52YXIgY3VycmVudEhvb2sgPSBudWxsO1xudmFyIHdvcmtJblByb2dyZXNzSG9vayA9IG51bGw7IC8vIFdoZXRoZXIgYW4gdXBkYXRlIHdhcyBzY2hlZHVsZWQgYXQgYW55IHBvaW50IGR1cmluZyB0aGUgcmVuZGVyIHBoYXNlLiBUaGlzXG4vLyBkb2VzIG5vdCBnZXQgcmVzZXQgaWYgd2UgZG8gYW5vdGhlciByZW5kZXIgcGFzczsgb25seSB3aGVuIHdlJ3JlIGNvbXBsZXRlbHlcbi8vIGZpbmlzaGVkIGV2YWx1YXRpbmcgdGhpcyBjb21wb25lbnQuIFRoaXMgaXMgYW4gb3B0aW1pemF0aW9uIHNvIHdlIGtub3dcbi8vIHdoZXRoZXIgd2UgbmVlZCB0byBjbGVhciByZW5kZXIgcGhhc2UgdXBkYXRlcyBhZnRlciBhIHRocm93LlxuXG52YXIgZGlkU2NoZWR1bGVSZW5kZXJQaGFzZVVwZGF0ZSA9IGZhbHNlOyAvLyBXaGVyZSBhbiB1cGRhdGUgd2FzIHNjaGVkdWxlZCBvbmx5IGR1cmluZyB0aGUgY3VycmVudCByZW5kZXIgcGFzcy4gVGhpc1xuLy8gZ2V0cyByZXNldCBhZnRlciBlYWNoIGF0dGVtcHQuXG4vLyBUT0RPOiBNYXliZSB0aGVyZSdzIHNvbWUgd2F5IHRvIGNvbnNvbGlkYXRlIHRoaXMgd2l0aFxuLy8gYGRpZFNjaGVkdWxlUmVuZGVyUGhhc2VVcGRhdGVgLiBPciB3aXRoIGBudW1iZXJPZlJlUmVuZGVyc2AuXG5cbnZhciBkaWRTY2hlZHVsZVJlbmRlclBoYXNlVXBkYXRlRHVyaW5nVGhpc1Bhc3MgPSBmYWxzZTtcbnZhciBSRV9SRU5ERVJfTElNSVQgPSAyNTsgLy8gSW4gREVWLCB0aGlzIGlzIHRoZSBuYW1lIG9mIHRoZSBjdXJyZW50bHkgZXhlY3V0aW5nIHByaW1pdGl2ZSBob29rXG5cbnZhciBjdXJyZW50SG9va05hbWVJbkRldiA9IG51bGw7IC8vIEluIERFViwgdGhpcyBsaXN0IGVuc3VyZXMgdGhhdCBob29rcyBhcmUgY2FsbGVkIGluIHRoZSBzYW1lIG9yZGVyIGJldHdlZW4gcmVuZGVycy5cbi8vIFRoZSBsaXN0IHN0b3JlcyB0aGUgb3JkZXIgb2YgaG9va3MgdXNlZCBkdXJpbmcgdGhlIGluaXRpYWwgcmVuZGVyIChtb3VudCkuXG4vLyBTdWJzZXF1ZW50IHJlbmRlcnMgKHVwZGF0ZXMpIHJlZmVyZW5jZSB0aGlzIGxpc3QuXG5cbnZhciBob29rVHlwZXNEZXYgPSBudWxsO1xudmFyIGhvb2tUeXBlc1VwZGF0ZUluZGV4RGV2ID0gLTE7IC8vIEluIERFViwgdGhpcyB0cmFja3Mgd2hldGhlciBjdXJyZW50bHkgcmVuZGVyaW5nIGNvbXBvbmVudCBuZWVkcyB0byBpZ25vcmVcbi8vIHRoZSBkZXBlbmRlbmNpZXMgZm9yIEhvb2tzIHRoYXQgbmVlZCB0aGVtIChlLmcuIHVzZUVmZmVjdCBvciB1c2VNZW1vKS5cbi8vIFdoZW4gdHJ1ZSwgc3VjaCBIb29rcyB3aWxsIGFsd2F5cyBiZSBcInJlbW91bnRlZFwiLiBPbmx5IHVzZWQgZHVyaW5nIGhvdCByZWxvYWQuXG5cbnZhciBpZ25vcmVQcmV2aW91c0RlcGVuZGVuY2llcyA9IGZhbHNlO1xuXG5mdW5jdGlvbiBtb3VudEhvb2tUeXBlc0RldigpIHtcbiAge1xuICAgIHZhciBob29rTmFtZSA9IGN1cnJlbnRIb29rTmFtZUluRGV2O1xuXG4gICAgaWYgKGhvb2tUeXBlc0RldiA9PT0gbnVsbCkge1xuICAgICAgaG9va1R5cGVzRGV2ID0gW2hvb2tOYW1lXTtcbiAgICB9IGVsc2Uge1xuICAgICAgaG9va1R5cGVzRGV2LnB1c2goaG9va05hbWUpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB1cGRhdGVIb29rVHlwZXNEZXYoKSB7XG4gIHtcbiAgICB2YXIgaG9va05hbWUgPSBjdXJyZW50SG9va05hbWVJbkRldjtcblxuICAgIGlmIChob29rVHlwZXNEZXYgIT09IG51bGwpIHtcbiAgICAgIGhvb2tUeXBlc1VwZGF0ZUluZGV4RGV2Kys7XG5cbiAgICAgIGlmIChob29rVHlwZXNEZXZbaG9va1R5cGVzVXBkYXRlSW5kZXhEZXZdICE9PSBob29rTmFtZSkge1xuICAgICAgICB3YXJuT25Ib29rTWlzbWF0Y2hJbkRldihob29rTmFtZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGNoZWNrRGVwc0FyZUFycmF5RGV2KGRlcHMpIHtcbiAge1xuICAgIGlmIChkZXBzICE9PSB1bmRlZmluZWQgJiYgZGVwcyAhPT0gbnVsbCAmJiAhQXJyYXkuaXNBcnJheShkZXBzKSkge1xuICAgICAgLy8gVmVyaWZ5IGRlcHMsIGJ1dCBvbmx5IG9uIG1vdW50IHRvIGF2b2lkIGV4dHJhIGNoZWNrcy5cbiAgICAgIC8vIEl0J3MgdW5saWtlbHkgdGhlaXIgdHlwZSB3b3VsZCBjaGFuZ2UgYXMgdXN1YWxseSB5b3UgZGVmaW5lIHRoZW0gaW5saW5lLlxuICAgICAgZXJyb3IoJyVzIHJlY2VpdmVkIGEgZmluYWwgYXJndW1lbnQgdGhhdCBpcyBub3QgYW4gYXJyYXkgKGluc3RlYWQsIHJlY2VpdmVkIGAlc2ApLiBXaGVuICcgKyAnc3BlY2lmaWVkLCB0aGUgZmluYWwgYXJndW1lbnQgbXVzdCBiZSBhbiBhcnJheS4nLCBjdXJyZW50SG9va05hbWVJbkRldiwgdHlwZW9mIGRlcHMpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB3YXJuT25Ib29rTWlzbWF0Y2hJbkRldihjdXJyZW50SG9va05hbWUpIHtcbiAge1xuICAgIHZhciBjb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZShjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxLnR5cGUpO1xuXG4gICAgaWYgKCFkaWRXYXJuQWJvdXRNaXNtYXRjaGVkSG9va3NGb3JDb21wb25lbnQuaGFzKGNvbXBvbmVudE5hbWUpKSB7XG4gICAgICBkaWRXYXJuQWJvdXRNaXNtYXRjaGVkSG9va3NGb3JDb21wb25lbnQuYWRkKGNvbXBvbmVudE5hbWUpO1xuXG4gICAgICBpZiAoaG9va1R5cGVzRGV2ICE9PSBudWxsKSB7XG4gICAgICAgIHZhciB0YWJsZSA9ICcnO1xuICAgICAgICB2YXIgc2Vjb25kQ29sdW1uU3RhcnQgPSAzMDtcblxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8PSBob29rVHlwZXNVcGRhdGVJbmRleERldjsgaSsrKSB7XG4gICAgICAgICAgdmFyIG9sZEhvb2tOYW1lID0gaG9va1R5cGVzRGV2W2ldO1xuICAgICAgICAgIHZhciBuZXdIb29rTmFtZSA9IGkgPT09IGhvb2tUeXBlc1VwZGF0ZUluZGV4RGV2ID8gY3VycmVudEhvb2tOYW1lIDogb2xkSG9va05hbWU7XG4gICAgICAgICAgdmFyIHJvdyA9IGkgKyAxICsgXCIuIFwiICsgb2xkSG9va05hbWU7IC8vIEV4dHJhIHNwYWNlIHNvIHNlY29uZCBjb2x1bW4gbGluZXMgdXBcbiAgICAgICAgICAvLyBsb2wgQCBJRSBub3Qgc3VwcG9ydGluZyBTdHJpbmcjcmVwZWF0XG5cbiAgICAgICAgICB3aGlsZSAocm93Lmxlbmd0aCA8IHNlY29uZENvbHVtblN0YXJ0KSB7XG4gICAgICAgICAgICByb3cgKz0gJyAnO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJvdyArPSBuZXdIb29rTmFtZSArICdcXG4nO1xuICAgICAgICAgIHRhYmxlICs9IHJvdztcbiAgICAgICAgfVxuXG4gICAgICAgIGVycm9yKCdSZWFjdCBoYXMgZGV0ZWN0ZWQgYSBjaGFuZ2UgaW4gdGhlIG9yZGVyIG9mIEhvb2tzIGNhbGxlZCBieSAlcy4gJyArICdUaGlzIHdpbGwgbGVhZCB0byBidWdzIGFuZCBlcnJvcnMgaWYgbm90IGZpeGVkLiAnICsgJ0ZvciBtb3JlIGluZm9ybWF0aW9uLCByZWFkIHRoZSBSdWxlcyBvZiBIb29rczogaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3J1bGVzLW9mLWhvb2tzXFxuXFxuJyArICcgICBQcmV2aW91cyByZW5kZXIgICAgICAgICAgICBOZXh0IHJlbmRlclxcbicgKyAnICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuJyArICclcycgKyAnICAgXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXFxuJywgY29tcG9uZW50TmFtZSwgdGFibGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB0aHJvd0ludmFsaWRIb29rRXJyb3IoKSB7XG4gIHtcbiAgICB7XG4gICAgICB0aHJvdyBFcnJvciggXCJJbnZhbGlkIGhvb2sgY2FsbC4gSG9va3MgY2FuIG9ubHkgYmUgY2FsbGVkIGluc2lkZSBvZiB0aGUgYm9keSBvZiBhIGZ1bmN0aW9uIGNvbXBvbmVudC4gVGhpcyBjb3VsZCBoYXBwZW4gZm9yIG9uZSBvZiB0aGUgZm9sbG93aW5nIHJlYXNvbnM6XFxuMS4gWW91IG1pZ2h0IGhhdmUgbWlzbWF0Y2hpbmcgdmVyc2lvbnMgb2YgUmVhY3QgYW5kIHRoZSByZW5kZXJlciAoc3VjaCBhcyBSZWFjdCBET00pXFxuMi4gWW91IG1pZ2h0IGJlIGJyZWFraW5nIHRoZSBSdWxlcyBvZiBIb29rc1xcbjMuIFlvdSBtaWdodCBoYXZlIG1vcmUgdGhhbiBvbmUgY29weSBvZiBSZWFjdCBpbiB0aGUgc2FtZSBhcHBcXG5TZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL2ludmFsaWQtaG9vay1jYWxsIGZvciB0aXBzIGFib3V0IGhvdyB0byBkZWJ1ZyBhbmQgZml4IHRoaXMgcHJvYmxlbS5cIiApO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBhcmVIb29rSW5wdXRzRXF1YWwobmV4dERlcHMsIHByZXZEZXBzKSB7XG4gIHtcbiAgICBpZiAoaWdub3JlUHJldmlvdXNEZXBlbmRlbmNpZXMpIHtcbiAgICAgIC8vIE9ubHkgdHJ1ZSB3aGVuIHRoaXMgY29tcG9uZW50IGlzIGJlaW5nIGhvdCByZWxvYWRlZC5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBpZiAocHJldkRlcHMgPT09IG51bGwpIHtcbiAgICB7XG4gICAgICBlcnJvcignJXMgcmVjZWl2ZWQgYSBmaW5hbCBhcmd1bWVudCBkdXJpbmcgdGhpcyByZW5kZXIsIGJ1dCBub3QgZHVyaW5nICcgKyAndGhlIHByZXZpb3VzIHJlbmRlci4gRXZlbiB0aG91Z2ggdGhlIGZpbmFsIGFyZ3VtZW50IGlzIG9wdGlvbmFsLCAnICsgJ2l0cyB0eXBlIGNhbm5vdCBjaGFuZ2UgYmV0d2VlbiByZW5kZXJzLicsIGN1cnJlbnRIb29rTmFtZUluRGV2KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB7XG4gICAgLy8gRG9uJ3QgYm90aGVyIGNvbXBhcmluZyBsZW5ndGhzIGluIHByb2QgYmVjYXVzZSB0aGVzZSBhcnJheXMgc2hvdWxkIGJlXG4gICAgLy8gcGFzc2VkIGlubGluZS5cbiAgICBpZiAobmV4dERlcHMubGVuZ3RoICE9PSBwcmV2RGVwcy5sZW5ndGgpIHtcbiAgICAgIGVycm9yKCdUaGUgZmluYWwgYXJndW1lbnQgcGFzc2VkIHRvICVzIGNoYW5nZWQgc2l6ZSBiZXR3ZWVuIHJlbmRlcnMuIFRoZSAnICsgJ29yZGVyIGFuZCBzaXplIG9mIHRoaXMgYXJyYXkgbXVzdCByZW1haW4gY29uc3RhbnQuXFxuXFxuJyArICdQcmV2aW91czogJXNcXG4nICsgJ0luY29taW5nOiAlcycsIGN1cnJlbnRIb29rTmFtZUluRGV2LCBcIltcIiArIHByZXZEZXBzLmpvaW4oJywgJykgKyBcIl1cIiwgXCJbXCIgKyBuZXh0RGVwcy5qb2luKCcsICcpICsgXCJdXCIpO1xuICAgIH1cbiAgfVxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgcHJldkRlcHMubGVuZ3RoICYmIGkgPCBuZXh0RGVwcy5sZW5ndGg7IGkrKykge1xuICAgIGlmIChvYmplY3RJcyhuZXh0RGVwc1tpXSwgcHJldkRlcHNbaV0pKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gcmVuZGVyV2l0aEhvb2tzKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIHByb3BzLCBzZWNvbmRBcmcsIG5leHRSZW5kZXJMYW5lcykge1xuICByZW5kZXJMYW5lcyA9IG5leHRSZW5kZXJMYW5lcztcbiAgY3VycmVudGx5UmVuZGVyaW5nRmliZXIkMSA9IHdvcmtJblByb2dyZXNzO1xuXG4gIHtcbiAgICBob29rVHlwZXNEZXYgPSBjdXJyZW50ICE9PSBudWxsID8gY3VycmVudC5fZGVidWdIb29rVHlwZXMgOiBudWxsO1xuICAgIGhvb2tUeXBlc1VwZGF0ZUluZGV4RGV2ID0gLTE7IC8vIFVzZWQgZm9yIGhvdCByZWxvYWRpbmc6XG5cbiAgICBpZ25vcmVQcmV2aW91c0RlcGVuZGVuY2llcyA9IGN1cnJlbnQgIT09IG51bGwgJiYgY3VycmVudC50eXBlICE9PSB3b3JrSW5Qcm9ncmVzcy50eXBlO1xuICB9XG5cbiAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IG51bGw7XG4gIHdvcmtJblByb2dyZXNzLnVwZGF0ZVF1ZXVlID0gbnVsbDtcbiAgd29ya0luUHJvZ3Jlc3MubGFuZXMgPSBOb0xhbmVzOyAvLyBUaGUgZm9sbG93aW5nIHNob3VsZCBoYXZlIGFscmVhZHkgYmVlbiByZXNldFxuICAvLyBjdXJyZW50SG9vayA9IG51bGw7XG4gIC8vIHdvcmtJblByb2dyZXNzSG9vayA9IG51bGw7XG4gIC8vIGRpZFNjaGVkdWxlUmVuZGVyUGhhc2VVcGRhdGUgPSBmYWxzZTtcbiAgLy8gVE9ETyBXYXJuIGlmIG5vIGhvb2tzIGFyZSB1c2VkIGF0IGFsbCBkdXJpbmcgbW91bnQsIHRoZW4gc29tZSBhcmUgdXNlZCBkdXJpbmcgdXBkYXRlLlxuICAvLyBDdXJyZW50bHkgd2Ugd2lsbCBpZGVudGlmeSB0aGUgdXBkYXRlIHJlbmRlciBhcyBhIG1vdW50IGJlY2F1c2UgbWVtb2l6ZWRTdGF0ZSA9PT0gbnVsbC5cbiAgLy8gVGhpcyBpcyB0cmlja3kgYmVjYXVzZSBpdCdzIHZhbGlkIGZvciBjZXJ0YWluIHR5cGVzIG9mIGNvbXBvbmVudHMgKGUuZy4gUmVhY3QubGF6eSlcbiAgLy8gVXNpbmcgbWVtb2l6ZWRTdGF0ZSB0byBkaWZmZXJlbnRpYXRlIGJldHdlZW4gbW91bnQvdXBkYXRlIG9ubHkgd29ya3MgaWYgYXQgbGVhc3Qgb25lIHN0YXRlZnVsIGhvb2sgaXMgdXNlZC5cbiAgLy8gTm9uLXN0YXRlZnVsIGhvb2tzIChlLmcuIGNvbnRleHQpIGRvbid0IGdldCBhZGRlZCB0byBtZW1vaXplZFN0YXRlLFxuICAvLyBzbyBtZW1vaXplZFN0YXRlIHdvdWxkIGJlIG51bGwgZHVyaW5nIHVwZGF0ZXMgYW5kIG1vdW50cy5cblxuICB7XG4gICAgaWYgKGN1cnJlbnQgIT09IG51bGwgJiYgY3VycmVudC5tZW1vaXplZFN0YXRlICE9PSBudWxsKSB7XG4gICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IEhvb2tzRGlzcGF0Y2hlck9uVXBkYXRlSW5ERVY7XG4gICAgfSBlbHNlIGlmIChob29rVHlwZXNEZXYgIT09IG51bGwpIHtcbiAgICAgIC8vIFRoaXMgZGlzcGF0Y2hlciBoYW5kbGVzIGFuIGVkZ2UgY2FzZSB3aGVyZSBhIGNvbXBvbmVudCBpcyB1cGRhdGluZyxcbiAgICAgIC8vIGJ1dCBubyBzdGF0ZWZ1bCBob29rcyBoYXZlIGJlZW4gdXNlZC5cbiAgICAgIC8vIFdlIHdhbnQgdG8gbWF0Y2ggdGhlIHByb2R1Y3Rpb24gY29kZSBiZWhhdmlvciAod2hpY2ggd2lsbCB1c2UgSG9va3NEaXNwYXRjaGVyT25Nb3VudCksXG4gICAgICAvLyBidXQgd2l0aCB0aGUgZXh0cmEgREVWIHZhbGlkYXRpb24gdG8gZW5zdXJlIGhvb2tzIG9yZGVyaW5nIGhhc24ndCBjaGFuZ2VkLlxuICAgICAgLy8gVGhpcyBkaXNwYXRjaGVyIGRvZXMgdGhhdC5cbiAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gSG9va3NEaXNwYXRjaGVyT25Nb3VudFdpdGhIb29rVHlwZXNJbkRFVjtcbiAgICB9IGVsc2Uge1xuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBIb29rc0Rpc3BhdGNoZXJPbk1vdW50SW5ERVY7XG4gICAgfVxuICB9XG5cbiAgdmFyIGNoaWxkcmVuID0gQ29tcG9uZW50KHByb3BzLCBzZWNvbmRBcmcpOyAvLyBDaGVjayBpZiB0aGVyZSB3YXMgYSByZW5kZXIgcGhhc2UgdXBkYXRlXG5cbiAgaWYgKGRpZFNjaGVkdWxlUmVuZGVyUGhhc2VVcGRhdGVEdXJpbmdUaGlzUGFzcykge1xuICAgIC8vIEtlZXAgcmVuZGVyaW5nIGluIGEgbG9vcCBmb3IgYXMgbG9uZyBhcyByZW5kZXIgcGhhc2UgdXBkYXRlcyBjb250aW51ZSB0b1xuICAgIC8vIGJlIHNjaGVkdWxlZC4gVXNlIGEgY291bnRlciB0byBwcmV2ZW50IGluZmluaXRlIGxvb3BzLlxuICAgIHZhciBudW1iZXJPZlJlUmVuZGVycyA9IDA7XG5cbiAgICBkbyB7XG4gICAgICBkaWRTY2hlZHVsZVJlbmRlclBoYXNlVXBkYXRlRHVyaW5nVGhpc1Bhc3MgPSBmYWxzZTtcblxuICAgICAgaWYgKCEobnVtYmVyT2ZSZVJlbmRlcnMgPCBSRV9SRU5ERVJfTElNSVQpKSB7XG4gICAgICAgIHtcbiAgICAgICAgICB0aHJvdyBFcnJvciggXCJUb28gbWFueSByZS1yZW5kZXJzLiBSZWFjdCBsaW1pdHMgdGhlIG51bWJlciBvZiByZW5kZXJzIHRvIHByZXZlbnQgYW4gaW5maW5pdGUgbG9vcC5cIiApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG51bWJlck9mUmVSZW5kZXJzICs9IDE7XG5cbiAgICAgIHtcbiAgICAgICAgLy8gRXZlbiB3aGVuIGhvdCByZWxvYWRpbmcsIGFsbG93IGRlcGVuZGVuY2llcyB0byBzdGFiaWxpemVcbiAgICAgICAgLy8gYWZ0ZXIgZmlyc3QgcmVuZGVyIHRvIHByZXZlbnQgaW5maW5pdGUgcmVuZGVyIHBoYXNlIHVwZGF0ZXMuXG4gICAgICAgIGlnbm9yZVByZXZpb3VzRGVwZW5kZW5jaWVzID0gZmFsc2U7XG4gICAgICB9IC8vIFN0YXJ0IG92ZXIgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaXN0XG5cblxuICAgICAgY3VycmVudEhvb2sgPSBudWxsO1xuICAgICAgd29ya0luUHJvZ3Jlc3NIb29rID0gbnVsbDtcbiAgICAgIHdvcmtJblByb2dyZXNzLnVwZGF0ZVF1ZXVlID0gbnVsbDtcblxuICAgICAge1xuICAgICAgICAvLyBBbHNvIHZhbGlkYXRlIGhvb2sgb3JkZXIgZm9yIGNhc2NhZGluZyB1cGRhdGVzLlxuICAgICAgICBob29rVHlwZXNVcGRhdGVJbmRleERldiA9IC0xO1xuICAgICAgfVxuXG4gICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9ICBIb29rc0Rpc3BhdGNoZXJPblJlcmVuZGVySW5ERVYgO1xuICAgICAgY2hpbGRyZW4gPSBDb21wb25lbnQocHJvcHMsIHNlY29uZEFyZyk7XG4gICAgfSB3aGlsZSAoZGlkU2NoZWR1bGVSZW5kZXJQaGFzZVVwZGF0ZUR1cmluZ1RoaXNQYXNzKTtcbiAgfSAvLyBXZSBjYW4gYXNzdW1lIHRoZSBwcmV2aW91cyBkaXNwYXRjaGVyIGlzIGFsd2F5cyB0aGlzIG9uZSwgc2luY2Ugd2Ugc2V0IGl0XG4gIC8vIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHJlbmRlciBwaGFzZSBhbmQgdGhlcmUncyBubyByZS1lbnRyYW5jeS5cblxuXG4gIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gQ29udGV4dE9ubHlEaXNwYXRjaGVyO1xuXG4gIHtcbiAgICB3b3JrSW5Qcm9ncmVzcy5fZGVidWdIb29rVHlwZXMgPSBob29rVHlwZXNEZXY7XG4gIH0gLy8gVGhpcyBjaGVjayB1c2VzIGN1cnJlbnRIb29rIHNvIHRoYXQgaXQgd29ya3MgdGhlIHNhbWUgaW4gREVWIGFuZCBwcm9kIGJ1bmRsZXMuXG4gIC8vIGhvb2tUeXBlc0RldiBjb3VsZCBjYXRjaCBtb3JlIGNhc2VzIChlLmcuIGNvbnRleHQpIGJ1dCBvbmx5IGluIERFViBidW5kbGVzLlxuXG5cbiAgdmFyIGRpZFJlbmRlclRvb0Zld0hvb2tzID0gY3VycmVudEhvb2sgIT09IG51bGwgJiYgY3VycmVudEhvb2submV4dCAhPT0gbnVsbDtcbiAgcmVuZGVyTGFuZXMgPSBOb0xhbmVzO1xuICBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxID0gbnVsbDtcbiAgY3VycmVudEhvb2sgPSBudWxsO1xuICB3b3JrSW5Qcm9ncmVzc0hvb2sgPSBudWxsO1xuXG4gIHtcbiAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IG51bGw7XG4gICAgaG9va1R5cGVzRGV2ID0gbnVsbDtcbiAgICBob29rVHlwZXNVcGRhdGVJbmRleERldiA9IC0xO1xuICB9XG5cbiAgZGlkU2NoZWR1bGVSZW5kZXJQaGFzZVVwZGF0ZSA9IGZhbHNlO1xuXG4gIGlmICghIWRpZFJlbmRlclRvb0Zld0hvb2tzKSB7XG4gICAge1xuICAgICAgdGhyb3cgRXJyb3IoIFwiUmVuZGVyZWQgZmV3ZXIgaG9va3MgdGhhbiBleHBlY3RlZC4gVGhpcyBtYXkgYmUgY2F1c2VkIGJ5IGFuIGFjY2lkZW50YWwgZWFybHkgcmV0dXJuIHN0YXRlbWVudC5cIiApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjaGlsZHJlbjtcbn1cbmZ1bmN0aW9uIGJhaWxvdXRIb29rcyhjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgbGFuZXMpIHtcbiAgd29ya0luUHJvZ3Jlc3MudXBkYXRlUXVldWUgPSBjdXJyZW50LnVwZGF0ZVF1ZXVlO1xuICB3b3JrSW5Qcm9ncmVzcy5mbGFncyAmPSB+KFBhc3NpdmUgfCBVcGRhdGUpO1xuICBjdXJyZW50LmxhbmVzID0gcmVtb3ZlTGFuZXMoY3VycmVudC5sYW5lcywgbGFuZXMpO1xufVxuZnVuY3Rpb24gcmVzZXRIb29rc0FmdGVyVGhyb3coKSB7XG4gIC8vIFdlIGNhbiBhc3N1bWUgdGhlIHByZXZpb3VzIGRpc3BhdGNoZXIgaXMgYWx3YXlzIHRoaXMgb25lLCBzaW5jZSB3ZSBzZXQgaXRcbiAgLy8gYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgcmVuZGVyIHBoYXNlIGFuZCB0aGVyZSdzIG5vIHJlLWVudHJhbmN5LlxuICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IENvbnRleHRPbmx5RGlzcGF0Y2hlcjtcblxuICBpZiAoZGlkU2NoZWR1bGVSZW5kZXJQaGFzZVVwZGF0ZSkge1xuICAgIC8vIFRoZXJlIHdlcmUgcmVuZGVyIHBoYXNlIHVwZGF0ZXMuIFRoZXNlIGFyZSBvbmx5IHZhbGlkIGZvciB0aGlzIHJlbmRlclxuICAgIC8vIHBoYXNlLCB3aGljaCB3ZSBhcmUgbm93IGFib3J0aW5nLiBSZW1vdmUgdGhlIHVwZGF0ZXMgZnJvbSB0aGUgcXVldWVzIHNvXG4gICAgLy8gdGhleSBkbyBub3QgcGVyc2lzdCB0byB0aGUgbmV4dCByZW5kZXIuIERvIG5vdCByZW1vdmUgdXBkYXRlcyBmcm9tIGhvb2tzXG4gICAgLy8gdGhhdCB3ZXJlbid0IHByb2Nlc3NlZC5cbiAgICAvL1xuICAgIC8vIE9ubHkgcmVzZXQgdGhlIHVwZGF0ZXMgZnJvbSB0aGUgcXVldWUgaWYgaXQgaGFzIGEgY2xvbmUuIElmIGl0IGRvZXNcbiAgICAvLyBub3QgaGF2ZSBhIGNsb25lLCB0aGF0IG1lYW5zIGl0IHdhc24ndCBwcm9jZXNzZWQsIGFuZCB0aGUgdXBkYXRlcyB3ZXJlXG4gICAgLy8gc2NoZWR1bGVkIGJlZm9yZSB3ZSBlbnRlcmVkIHRoZSByZW5kZXIgcGhhc2UuXG4gICAgdmFyIGhvb2sgPSBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxLm1lbW9pemVkU3RhdGU7XG5cbiAgICB3aGlsZSAoaG9vayAhPT0gbnVsbCkge1xuICAgICAgdmFyIHF1ZXVlID0gaG9vay5xdWV1ZTtcblxuICAgICAgaWYgKHF1ZXVlICE9PSBudWxsKSB7XG4gICAgICAgIHF1ZXVlLnBlbmRpbmcgPSBudWxsO1xuICAgICAgfVxuXG4gICAgICBob29rID0gaG9vay5uZXh0O1xuICAgIH1cblxuICAgIGRpZFNjaGVkdWxlUmVuZGVyUGhhc2VVcGRhdGUgPSBmYWxzZTtcbiAgfVxuXG4gIHJlbmRlckxhbmVzID0gTm9MYW5lcztcbiAgY3VycmVudGx5UmVuZGVyaW5nRmliZXIkMSA9IG51bGw7XG4gIGN1cnJlbnRIb29rID0gbnVsbDtcbiAgd29ya0luUHJvZ3Jlc3NIb29rID0gbnVsbDtcblxuICB7XG4gICAgaG9va1R5cGVzRGV2ID0gbnVsbDtcbiAgICBob29rVHlwZXNVcGRhdGVJbmRleERldiA9IC0xO1xuICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gbnVsbDtcbiAgICBpc1VwZGF0aW5nT3BhcXVlVmFsdWVJblJlbmRlclBoYXNlID0gZmFsc2U7XG4gIH1cblxuICBkaWRTY2hlZHVsZVJlbmRlclBoYXNlVXBkYXRlRHVyaW5nVGhpc1Bhc3MgPSBmYWxzZTtcbn1cblxuZnVuY3Rpb24gbW91bnRXb3JrSW5Qcm9ncmVzc0hvb2soKSB7XG4gIHZhciBob29rID0ge1xuICAgIG1lbW9pemVkU3RhdGU6IG51bGwsXG4gICAgYmFzZVN0YXRlOiBudWxsLFxuICAgIGJhc2VRdWV1ZTogbnVsbCxcbiAgICBxdWV1ZTogbnVsbCxcbiAgICBuZXh0OiBudWxsXG4gIH07XG5cbiAgaWYgKHdvcmtJblByb2dyZXNzSG9vayA9PT0gbnVsbCkge1xuICAgIC8vIFRoaXMgaXMgdGhlIGZpcnN0IGhvb2sgaW4gdGhlIGxpc3RcbiAgICBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxLm1lbW9pemVkU3RhdGUgPSB3b3JrSW5Qcm9ncmVzc0hvb2sgPSBob29rO1xuICB9IGVsc2Uge1xuICAgIC8vIEFwcGVuZCB0byB0aGUgZW5kIG9mIHRoZSBsaXN0XG4gICAgd29ya0luUHJvZ3Jlc3NIb29rID0gd29ya0luUHJvZ3Jlc3NIb29rLm5leHQgPSBob29rO1xuICB9XG5cbiAgcmV0dXJuIHdvcmtJblByb2dyZXNzSG9vaztcbn1cblxuZnVuY3Rpb24gdXBkYXRlV29ya0luUHJvZ3Jlc3NIb29rKCkge1xuICAvLyBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgYm90aCBmb3IgdXBkYXRlcyBhbmQgZm9yIHJlLXJlbmRlcnMgdHJpZ2dlcmVkIGJ5IGFcbiAgLy8gcmVuZGVyIHBoYXNlIHVwZGF0ZS4gSXQgYXNzdW1lcyB0aGVyZSBpcyBlaXRoZXIgYSBjdXJyZW50IGhvb2sgd2UgY2FuXG4gIC8vIGNsb25lLCBvciBhIHdvcmstaW4tcHJvZ3Jlc3MgaG9vayBmcm9tIGEgcHJldmlvdXMgcmVuZGVyIHBhc3MgdGhhdCB3ZSBjYW5cbiAgLy8gdXNlIGFzIGEgYmFzZS4gV2hlbiB3ZSByZWFjaCB0aGUgZW5kIG9mIHRoZSBiYXNlIGxpc3QsIHdlIG11c3Qgc3dpdGNoIHRvXG4gIC8vIHRoZSBkaXNwYXRjaGVyIHVzZWQgZm9yIG1vdW50cy5cbiAgdmFyIG5leHRDdXJyZW50SG9vaztcblxuICBpZiAoY3VycmVudEhvb2sgPT09IG51bGwpIHtcbiAgICB2YXIgY3VycmVudCA9IGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyJDEuYWx0ZXJuYXRlO1xuXG4gICAgaWYgKGN1cnJlbnQgIT09IG51bGwpIHtcbiAgICAgIG5leHRDdXJyZW50SG9vayA9IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgbmV4dEN1cnJlbnRIb29rID0gbnVsbDtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgbmV4dEN1cnJlbnRIb29rID0gY3VycmVudEhvb2submV4dDtcbiAgfVxuXG4gIHZhciBuZXh0V29ya0luUHJvZ3Jlc3NIb29rO1xuXG4gIGlmICh3b3JrSW5Qcm9ncmVzc0hvb2sgPT09IG51bGwpIHtcbiAgICBuZXh0V29ya0luUHJvZ3Jlc3NIb29rID0gY3VycmVudGx5UmVuZGVyaW5nRmliZXIkMS5tZW1vaXplZFN0YXRlO1xuICB9IGVsc2Uge1xuICAgIG5leHRXb3JrSW5Qcm9ncmVzc0hvb2sgPSB3b3JrSW5Qcm9ncmVzc0hvb2submV4dDtcbiAgfVxuXG4gIGlmIChuZXh0V29ya0luUHJvZ3Jlc3NIb29rICE9PSBudWxsKSB7XG4gICAgLy8gVGhlcmUncyBhbHJlYWR5IGEgd29yay1pbi1wcm9ncmVzcy4gUmV1c2UgaXQuXG4gICAgd29ya0luUHJvZ3Jlc3NIb29rID0gbmV4dFdvcmtJblByb2dyZXNzSG9vaztcbiAgICBuZXh0V29ya0luUHJvZ3Jlc3NIb29rID0gd29ya0luUHJvZ3Jlc3NIb29rLm5leHQ7XG4gICAgY3VycmVudEhvb2sgPSBuZXh0Q3VycmVudEhvb2s7XG4gIH0gZWxzZSB7XG4gICAgLy8gQ2xvbmUgZnJvbSB0aGUgY3VycmVudCBob29rLlxuICAgIGlmICghKG5leHRDdXJyZW50SG9vayAhPT0gbnVsbCkpIHtcbiAgICAgIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoIFwiUmVuZGVyZWQgbW9yZSBob29rcyB0aGFuIGR1cmluZyB0aGUgcHJldmlvdXMgcmVuZGVyLlwiICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY3VycmVudEhvb2sgPSBuZXh0Q3VycmVudEhvb2s7XG4gICAgdmFyIG5ld0hvb2sgPSB7XG4gICAgICBtZW1vaXplZFN0YXRlOiBjdXJyZW50SG9vay5tZW1vaXplZFN0YXRlLFxuICAgICAgYmFzZVN0YXRlOiBjdXJyZW50SG9vay5iYXNlU3RhdGUsXG4gICAgICBiYXNlUXVldWU6IGN1cnJlbnRIb29rLmJhc2VRdWV1ZSxcbiAgICAgIHF1ZXVlOiBjdXJyZW50SG9vay5xdWV1ZSxcbiAgICAgIG5leHQ6IG51bGxcbiAgICB9O1xuXG4gICAgaWYgKHdvcmtJblByb2dyZXNzSG9vayA9PT0gbnVsbCkge1xuICAgICAgLy8gVGhpcyBpcyB0aGUgZmlyc3QgaG9vayBpbiB0aGUgbGlzdC5cbiAgICAgIGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyJDEubWVtb2l6ZWRTdGF0ZSA9IHdvcmtJblByb2dyZXNzSG9vayA9IG5ld0hvb2s7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEFwcGVuZCB0byB0aGUgZW5kIG9mIHRoZSBsaXN0LlxuICAgICAgd29ya0luUHJvZ3Jlc3NIb29rID0gd29ya0luUHJvZ3Jlc3NIb29rLm5leHQgPSBuZXdIb29rO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB3b3JrSW5Qcm9ncmVzc0hvb2s7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUZ1bmN0aW9uQ29tcG9uZW50VXBkYXRlUXVldWUoKSB7XG4gIHJldHVybiB7XG4gICAgbGFzdEVmZmVjdDogbnVsbFxuICB9O1xufVxuXG5mdW5jdGlvbiBiYXNpY1N0YXRlUmVkdWNlcihzdGF0ZSwgYWN0aW9uKSB7XG4gIC8vICRGbG93Rml4TWU6IEZsb3cgZG9lc24ndCBsaWtlIG1peGVkIHR5cGVzXG4gIHJldHVybiB0eXBlb2YgYWN0aW9uID09PSAnZnVuY3Rpb24nID8gYWN0aW9uKHN0YXRlKSA6IGFjdGlvbjtcbn1cblxuZnVuY3Rpb24gbW91bnRSZWR1Y2VyKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpIHtcbiAgdmFyIGhvb2sgPSBtb3VudFdvcmtJblByb2dyZXNzSG9vaygpO1xuICB2YXIgaW5pdGlhbFN0YXRlO1xuXG4gIGlmIChpbml0ICE9PSB1bmRlZmluZWQpIHtcbiAgICBpbml0aWFsU3RhdGUgPSBpbml0KGluaXRpYWxBcmcpO1xuICB9IGVsc2Uge1xuICAgIGluaXRpYWxTdGF0ZSA9IGluaXRpYWxBcmc7XG4gIH1cblxuICBob29rLm1lbW9pemVkU3RhdGUgPSBob29rLmJhc2VTdGF0ZSA9IGluaXRpYWxTdGF0ZTtcbiAgdmFyIHF1ZXVlID0gaG9vay5xdWV1ZSA9IHtcbiAgICBwZW5kaW5nOiBudWxsLFxuICAgIGRpc3BhdGNoOiBudWxsLFxuICAgIGxhc3RSZW5kZXJlZFJlZHVjZXI6IHJlZHVjZXIsXG4gICAgbGFzdFJlbmRlcmVkU3RhdGU6IGluaXRpYWxTdGF0ZVxuICB9O1xuICB2YXIgZGlzcGF0Y2ggPSBxdWV1ZS5kaXNwYXRjaCA9IGRpc3BhdGNoQWN0aW9uLmJpbmQobnVsbCwgY3VycmVudGx5UmVuZGVyaW5nRmliZXIkMSwgcXVldWUpO1xuICByZXR1cm4gW2hvb2subWVtb2l6ZWRTdGF0ZSwgZGlzcGF0Y2hdO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVSZWR1Y2VyKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpIHtcbiAgdmFyIGhvb2sgPSB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKTtcbiAgdmFyIHF1ZXVlID0gaG9vay5xdWV1ZTtcblxuICBpZiAoIShxdWV1ZSAhPT0gbnVsbCkpIHtcbiAgICB7XG4gICAgICB0aHJvdyBFcnJvciggXCJTaG91bGQgaGF2ZSBhIHF1ZXVlLiBUaGlzIGlzIGxpa2VseSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCIgKTtcbiAgICB9XG4gIH1cblxuICBxdWV1ZS5sYXN0UmVuZGVyZWRSZWR1Y2VyID0gcmVkdWNlcjtcbiAgdmFyIGN1cnJlbnQgPSBjdXJyZW50SG9vazsgLy8gVGhlIGxhc3QgcmViYXNlIHVwZGF0ZSB0aGF0IGlzIE5PVCBwYXJ0IG9mIHRoZSBiYXNlIHN0YXRlLlxuXG4gIHZhciBiYXNlUXVldWUgPSBjdXJyZW50LmJhc2VRdWV1ZTsgLy8gVGhlIGxhc3QgcGVuZGluZyB1cGRhdGUgdGhhdCBoYXNuJ3QgYmVlbiBwcm9jZXNzZWQgeWV0LlxuXG4gIHZhciBwZW5kaW5nUXVldWUgPSBxdWV1ZS5wZW5kaW5nO1xuXG4gIGlmIChwZW5kaW5nUXVldWUgIT09IG51bGwpIHtcbiAgICAvLyBXZSBoYXZlIG5ldyB1cGRhdGVzIHRoYXQgaGF2ZW4ndCBiZWVuIHByb2Nlc3NlZCB5ZXQuXG4gICAgLy8gV2UnbGwgYWRkIHRoZW0gdG8gdGhlIGJhc2UgcXVldWUuXG4gICAgaWYgKGJhc2VRdWV1ZSAhPT0gbnVsbCkge1xuICAgICAgLy8gTWVyZ2UgdGhlIHBlbmRpbmcgcXVldWUgYW5kIHRoZSBiYXNlIHF1ZXVlLlxuICAgICAgdmFyIGJhc2VGaXJzdCA9IGJhc2VRdWV1ZS5uZXh0O1xuICAgICAgdmFyIHBlbmRpbmdGaXJzdCA9IHBlbmRpbmdRdWV1ZS5uZXh0O1xuICAgICAgYmFzZVF1ZXVlLm5leHQgPSBwZW5kaW5nRmlyc3Q7XG4gICAgICBwZW5kaW5nUXVldWUubmV4dCA9IGJhc2VGaXJzdDtcbiAgICB9XG5cbiAgICB7XG4gICAgICBpZiAoY3VycmVudC5iYXNlUXVldWUgIT09IGJhc2VRdWV1ZSkge1xuICAgICAgICAvLyBJbnRlcm5hbCBpbnZhcmlhbnQgdGhhdCBzaG91bGQgbmV2ZXIgaGFwcGVuLCBidXQgZmVhc2libHkgY291bGQgaW5cbiAgICAgICAgLy8gdGhlIGZ1dHVyZSBpZiB3ZSBpbXBsZW1lbnQgcmVzdW1pbmcsIG9yIHNvbWUgZm9ybSBvZiB0aGF0LlxuICAgICAgICBlcnJvcignSW50ZXJuYWwgZXJyb3I6IEV4cGVjdGVkIHdvcmstaW4tcHJvZ3Jlc3MgcXVldWUgdG8gYmUgYSBjbG9uZS4gJyArICdUaGlzIGlzIGEgYnVnIGluIFJlYWN0LicpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGN1cnJlbnQuYmFzZVF1ZXVlID0gYmFzZVF1ZXVlID0gcGVuZGluZ1F1ZXVlO1xuICAgIHF1ZXVlLnBlbmRpbmcgPSBudWxsO1xuICB9XG5cbiAgaWYgKGJhc2VRdWV1ZSAhPT0gbnVsbCkge1xuICAgIC8vIFdlIGhhdmUgYSBxdWV1ZSB0byBwcm9jZXNzLlxuICAgIHZhciBmaXJzdCA9IGJhc2VRdWV1ZS5uZXh0O1xuICAgIHZhciBuZXdTdGF0ZSA9IGN1cnJlbnQuYmFzZVN0YXRlO1xuICAgIHZhciBuZXdCYXNlU3RhdGUgPSBudWxsO1xuICAgIHZhciBuZXdCYXNlUXVldWVGaXJzdCA9IG51bGw7XG4gICAgdmFyIG5ld0Jhc2VRdWV1ZUxhc3QgPSBudWxsO1xuICAgIHZhciB1cGRhdGUgPSBmaXJzdDtcblxuICAgIGRvIHtcbiAgICAgIHZhciB1cGRhdGVMYW5lID0gdXBkYXRlLmxhbmU7XG5cbiAgICAgIGlmICghaXNTdWJzZXRPZkxhbmVzKHJlbmRlckxhbmVzLCB1cGRhdGVMYW5lKSkge1xuICAgICAgICAvLyBQcmlvcml0eSBpcyBpbnN1ZmZpY2llbnQuIFNraXAgdGhpcyB1cGRhdGUuIElmIHRoaXMgaXMgdGhlIGZpcnN0XG4gICAgICAgIC8vIHNraXBwZWQgdXBkYXRlLCB0aGUgcHJldmlvdXMgdXBkYXRlL3N0YXRlIGlzIHRoZSBuZXcgYmFzZVxuICAgICAgICAvLyB1cGRhdGUvc3RhdGUuXG4gICAgICAgIHZhciBjbG9uZSA9IHtcbiAgICAgICAgICBsYW5lOiB1cGRhdGVMYW5lLFxuICAgICAgICAgIGFjdGlvbjogdXBkYXRlLmFjdGlvbixcbiAgICAgICAgICBlYWdlclJlZHVjZXI6IHVwZGF0ZS5lYWdlclJlZHVjZXIsXG4gICAgICAgICAgZWFnZXJTdGF0ZTogdXBkYXRlLmVhZ2VyU3RhdGUsXG4gICAgICAgICAgbmV4dDogbnVsbFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChuZXdCYXNlUXVldWVMYXN0ID09PSBudWxsKSB7XG4gICAgICAgICAgbmV3QmFzZVF1ZXVlRmlyc3QgPSBuZXdCYXNlUXVldWVMYXN0ID0gY2xvbmU7XG4gICAgICAgICAgbmV3QmFzZVN0YXRlID0gbmV3U3RhdGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbmV3QmFzZVF1ZXVlTGFzdCA9IG5ld0Jhc2VRdWV1ZUxhc3QubmV4dCA9IGNsb25lO1xuICAgICAgICB9IC8vIFVwZGF0ZSB0aGUgcmVtYWluaW5nIHByaW9yaXR5IGluIHRoZSBxdWV1ZS5cbiAgICAgICAgLy8gVE9ETzogRG9uJ3QgbmVlZCB0byBhY2N1bXVsYXRlIHRoaXMuIEluc3RlYWQsIHdlIGNhbiByZW1vdmVcbiAgICAgICAgLy8gcmVuZGVyTGFuZXMgZnJvbSB0aGUgb3JpZ2luYWwgbGFuZXMuXG5cblxuICAgICAgICBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxLmxhbmVzID0gbWVyZ2VMYW5lcyhjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxLmxhbmVzLCB1cGRhdGVMYW5lKTtcbiAgICAgICAgbWFya1NraXBwZWRVcGRhdGVMYW5lcyh1cGRhdGVMYW5lKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFRoaXMgdXBkYXRlIGRvZXMgaGF2ZSBzdWZmaWNpZW50IHByaW9yaXR5LlxuICAgICAgICBpZiAobmV3QmFzZVF1ZXVlTGFzdCAhPT0gbnVsbCkge1xuICAgICAgICAgIHZhciBfY2xvbmUgPSB7XG4gICAgICAgICAgICAvLyBUaGlzIHVwZGF0ZSBpcyBnb2luZyB0byBiZSBjb21taXR0ZWQgc28gd2UgbmV2ZXIgd2FudCB1bmNvbW1pdFxuICAgICAgICAgICAgLy8gaXQuIFVzaW5nIE5vTGFuZSB3b3JrcyBiZWNhdXNlIDAgaXMgYSBzdWJzZXQgb2YgYWxsIGJpdG1hc2tzLCBzb1xuICAgICAgICAgICAgLy8gdGhpcyB3aWxsIG5ldmVyIGJlIHNraXBwZWQgYnkgdGhlIGNoZWNrIGFib3ZlLlxuICAgICAgICAgICAgbGFuZTogTm9MYW5lLFxuICAgICAgICAgICAgYWN0aW9uOiB1cGRhdGUuYWN0aW9uLFxuICAgICAgICAgICAgZWFnZXJSZWR1Y2VyOiB1cGRhdGUuZWFnZXJSZWR1Y2VyLFxuICAgICAgICAgICAgZWFnZXJTdGF0ZTogdXBkYXRlLmVhZ2VyU3RhdGUsXG4gICAgICAgICAgICBuZXh0OiBudWxsXG4gICAgICAgICAgfTtcbiAgICAgICAgICBuZXdCYXNlUXVldWVMYXN0ID0gbmV3QmFzZVF1ZXVlTGFzdC5uZXh0ID0gX2Nsb25lO1xuICAgICAgICB9IC8vIFByb2Nlc3MgdGhpcyB1cGRhdGUuXG5cblxuICAgICAgICBpZiAodXBkYXRlLmVhZ2VyUmVkdWNlciA9PT0gcmVkdWNlcikge1xuICAgICAgICAgIC8vIElmIHRoaXMgdXBkYXRlIHdhcyBwcm9jZXNzZWQgZWFnZXJseSwgYW5kIGl0cyByZWR1Y2VyIG1hdGNoZXMgdGhlXG4gICAgICAgICAgLy8gY3VycmVudCByZWR1Y2VyLCB3ZSBjYW4gdXNlIHRoZSBlYWdlcmx5IGNvbXB1dGVkIHN0YXRlLlxuICAgICAgICAgIG5ld1N0YXRlID0gdXBkYXRlLmVhZ2VyU3RhdGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFyIGFjdGlvbiA9IHVwZGF0ZS5hY3Rpb247XG4gICAgICAgICAgbmV3U3RhdGUgPSByZWR1Y2VyKG5ld1N0YXRlLCBhY3Rpb24pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHVwZGF0ZSA9IHVwZGF0ZS5uZXh0O1xuICAgIH0gd2hpbGUgKHVwZGF0ZSAhPT0gbnVsbCAmJiB1cGRhdGUgIT09IGZpcnN0KTtcblxuICAgIGlmIChuZXdCYXNlUXVldWVMYXN0ID09PSBudWxsKSB7XG4gICAgICBuZXdCYXNlU3RhdGUgPSBuZXdTdGF0ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgbmV3QmFzZVF1ZXVlTGFzdC5uZXh0ID0gbmV3QmFzZVF1ZXVlRmlyc3Q7XG4gICAgfSAvLyBNYXJrIHRoYXQgdGhlIGZpYmVyIHBlcmZvcm1lZCB3b3JrLCBidXQgb25seSBpZiB0aGUgbmV3IHN0YXRlIGlzXG4gICAgLy8gZGlmZmVyZW50IGZyb20gdGhlIGN1cnJlbnQgc3RhdGUuXG5cblxuICAgIGlmICghb2JqZWN0SXMobmV3U3RhdGUsIGhvb2subWVtb2l6ZWRTdGF0ZSkpIHtcbiAgICAgIG1hcmtXb3JrSW5Qcm9ncmVzc1JlY2VpdmVkVXBkYXRlKCk7XG4gICAgfVxuXG4gICAgaG9vay5tZW1vaXplZFN0YXRlID0gbmV3U3RhdGU7XG4gICAgaG9vay5iYXNlU3RhdGUgPSBuZXdCYXNlU3RhdGU7XG4gICAgaG9vay5iYXNlUXVldWUgPSBuZXdCYXNlUXVldWVMYXN0O1xuICAgIHF1ZXVlLmxhc3RSZW5kZXJlZFN0YXRlID0gbmV3U3RhdGU7XG4gIH1cblxuICB2YXIgZGlzcGF0Y2ggPSBxdWV1ZS5kaXNwYXRjaDtcbiAgcmV0dXJuIFtob29rLm1lbW9pemVkU3RhdGUsIGRpc3BhdGNoXTtcbn1cblxuZnVuY3Rpb24gcmVyZW5kZXJSZWR1Y2VyKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpIHtcbiAgdmFyIGhvb2sgPSB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKTtcbiAgdmFyIHF1ZXVlID0gaG9vay5xdWV1ZTtcblxuICBpZiAoIShxdWV1ZSAhPT0gbnVsbCkpIHtcbiAgICB7XG4gICAgICB0aHJvdyBFcnJvciggXCJTaG91bGQgaGF2ZSBhIHF1ZXVlLiBUaGlzIGlzIGxpa2VseSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCIgKTtcbiAgICB9XG4gIH1cblxuICBxdWV1ZS5sYXN0UmVuZGVyZWRSZWR1Y2VyID0gcmVkdWNlcjsgLy8gVGhpcyBpcyBhIHJlLXJlbmRlci4gQXBwbHkgdGhlIG5ldyByZW5kZXIgcGhhc2UgdXBkYXRlcyB0byB0aGUgcHJldmlvdXNcbiAgLy8gd29yay1pbi1wcm9ncmVzcyBob29rLlxuXG4gIHZhciBkaXNwYXRjaCA9IHF1ZXVlLmRpc3BhdGNoO1xuICB2YXIgbGFzdFJlbmRlclBoYXNlVXBkYXRlID0gcXVldWUucGVuZGluZztcbiAgdmFyIG5ld1N0YXRlID0gaG9vay5tZW1vaXplZFN0YXRlO1xuXG4gIGlmIChsYXN0UmVuZGVyUGhhc2VVcGRhdGUgIT09IG51bGwpIHtcbiAgICAvLyBUaGUgcXVldWUgZG9lc24ndCBwZXJzaXN0IHBhc3QgdGhpcyByZW5kZXIgcGFzcy5cbiAgICBxdWV1ZS5wZW5kaW5nID0gbnVsbDtcbiAgICB2YXIgZmlyc3RSZW5kZXJQaGFzZVVwZGF0ZSA9IGxhc3RSZW5kZXJQaGFzZVVwZGF0ZS5uZXh0O1xuICAgIHZhciB1cGRhdGUgPSBmaXJzdFJlbmRlclBoYXNlVXBkYXRlO1xuXG4gICAgZG8ge1xuICAgICAgLy8gUHJvY2VzcyB0aGlzIHJlbmRlciBwaGFzZSB1cGRhdGUuIFdlIGRvbid0IGhhdmUgdG8gY2hlY2sgdGhlXG4gICAgICAvLyBwcmlvcml0eSBiZWNhdXNlIGl0IHdpbGwgYWx3YXlzIGJlIHRoZSBzYW1lIGFzIHRoZSBjdXJyZW50XG4gICAgICAvLyByZW5kZXIncy5cbiAgICAgIHZhciBhY3Rpb24gPSB1cGRhdGUuYWN0aW9uO1xuICAgICAgbmV3U3RhdGUgPSByZWR1Y2VyKG5ld1N0YXRlLCBhY3Rpb24pO1xuICAgICAgdXBkYXRlID0gdXBkYXRlLm5leHQ7XG4gICAgfSB3aGlsZSAodXBkYXRlICE9PSBmaXJzdFJlbmRlclBoYXNlVXBkYXRlKTsgLy8gTWFyayB0aGF0IHRoZSBmaWJlciBwZXJmb3JtZWQgd29yaywgYnV0IG9ubHkgaWYgdGhlIG5ldyBzdGF0ZSBpc1xuICAgIC8vIGRpZmZlcmVudCBmcm9tIHRoZSBjdXJyZW50IHN0YXRlLlxuXG5cbiAgICBpZiAoIW9iamVjdElzKG5ld1N0YXRlLCBob29rLm1lbW9pemVkU3RhdGUpKSB7XG4gICAgICBtYXJrV29ya0luUHJvZ3Jlc3NSZWNlaXZlZFVwZGF0ZSgpO1xuICAgIH1cblxuICAgIGhvb2subWVtb2l6ZWRTdGF0ZSA9IG5ld1N0YXRlOyAvLyBEb24ndCBwZXJzaXN0IHRoZSBzdGF0ZSBhY2N1bXVsYXRlZCBmcm9tIHRoZSByZW5kZXIgcGhhc2UgdXBkYXRlcyB0b1xuICAgIC8vIHRoZSBiYXNlIHN0YXRlIHVubGVzcyB0aGUgcXVldWUgaXMgZW1wdHkuXG4gICAgLy8gVE9ETzogTm90IHN1cmUgaWYgdGhpcyBpcyB0aGUgZGVzaXJlZCBzZW1hbnRpY3MsIGJ1dCBpdCdzIHdoYXQgd2VcbiAgICAvLyBkbyBmb3IgZ0RTRlAuIEkgY2FuJ3QgcmVtZW1iZXIgd2h5LlxuXG4gICAgaWYgKGhvb2suYmFzZVF1ZXVlID09PSBudWxsKSB7XG4gICAgICBob29rLmJhc2VTdGF0ZSA9IG5ld1N0YXRlO1xuICAgIH1cblxuICAgIHF1ZXVlLmxhc3RSZW5kZXJlZFN0YXRlID0gbmV3U3RhdGU7XG4gIH1cblxuICByZXR1cm4gW25ld1N0YXRlLCBkaXNwYXRjaF07XG59XG5cbmZ1bmN0aW9uIHJlYWRGcm9tVW5zdWJjcmliZWRNdXRhYmxlU291cmNlKHJvb3QsIHNvdXJjZSwgZ2V0U25hcHNob3QpIHtcbiAge1xuICAgIHdhcm5BYm91dE11bHRpcGxlUmVuZGVyZXJzREVWKHNvdXJjZSk7XG4gIH1cblxuICB2YXIgZ2V0VmVyc2lvbiA9IHNvdXJjZS5fZ2V0VmVyc2lvbjtcbiAgdmFyIHZlcnNpb24gPSBnZXRWZXJzaW9uKHNvdXJjZS5fc291cmNlKTsgLy8gSXMgaXQgc2FmZSBmb3IgdGhpcyBjb21wb25lbnQgdG8gcmVhZCBmcm9tIHRoaXMgc291cmNlIGR1cmluZyB0aGUgY3VycmVudCByZW5kZXI/XG5cbiAgdmFyIGlzU2FmZVRvUmVhZEZyb21Tb3VyY2UgPSBmYWxzZTsgLy8gQ2hlY2sgdGhlIHZlcnNpb24gZmlyc3QuXG4gIC8vIElmIHRoaXMgcmVuZGVyIGhhcyBhbHJlYWR5IGJlZW4gc3RhcnRlZCB3aXRoIGEgc3BlY2lmaWMgdmVyc2lvbixcbiAgLy8gd2UgY2FuIHVzZSBpdCBhbG9uZSB0byBkZXRlcm1pbmUgaWYgd2UgY2FuIHNhZmVseSByZWFkIGZyb20gdGhlIHNvdXJjZS5cblxuICB2YXIgY3VycmVudFJlbmRlclZlcnNpb24gPSBnZXRXb3JrSW5Qcm9ncmVzc1ZlcnNpb24oc291cmNlKTtcblxuICBpZiAoY3VycmVudFJlbmRlclZlcnNpb24gIT09IG51bGwpIHtcbiAgICAvLyBJdCdzIHNhZmUgdG8gcmVhZCBpZiB0aGUgc3RvcmUgaGFzbid0IGJlZW4gbXV0YXRlZCBzaW5jZSB0aGUgbGFzdCB0aW1lXG4gICAgLy8gd2UgcmVhZCBzb21ldGhpbmcuXG4gICAgaXNTYWZlVG9SZWFkRnJvbVNvdXJjZSA9IGN1cnJlbnRSZW5kZXJWZXJzaW9uID09PSB2ZXJzaW9uO1xuICB9IGVsc2Uge1xuICAgIC8vIElmIHRoZXJlJ3Mgbm8gdmVyc2lvbiwgdGhlbiB0aGlzIGlzIHRoZSBmaXJzdCB0aW1lIHdlJ3ZlIHJlYWQgZnJvbSB0aGVcbiAgICAvLyBzb3VyY2UgZHVyaW5nIHRoZSBjdXJyZW50IHJlbmRlciBwYXNzLCBzbyB3ZSBuZWVkIHRvIGRvIGEgYml0IG1vcmUgd29yay5cbiAgICAvLyBXaGF0IHdlIG5lZWQgdG8gZGV0ZXJtaW5lIGlzIGlmIHRoZXJlIGFyZSBhbnkgaG9va3MgdGhhdCBhbHJlYWR5XG4gICAgLy8gc3Vic2NyaWJlZCB0byB0aGUgc291cmNlLCBhbmQgaWYgc28sIHdoZXRoZXIgdGhlcmUgYXJlIGFueSBwZW5kaW5nXG4gICAgLy8gbXV0YXRpb25zIHRoYXQgaGF2ZW4ndCBiZWVuIHN5bmNocm9uaXplZCB5ZXQuXG4gICAgLy9cbiAgICAvLyBJZiB0aGVyZSBhcmUgbm8gcGVuZGluZyBtdXRhdGlvbnMsIHRoZW4gYHJvb3QubXV0YWJsZVJlYWRMYW5lc2Agd2lsbCBiZVxuICAgIC8vIGVtcHR5LCBhbmQgd2Uga25vdyB3ZSBjYW4gc2FmZWx5IHJlYWQuXG4gICAgLy9cbiAgICAvLyBJZiB0aGVyZSAqYXJlKiBwZW5kaW5nIG11dGF0aW9ucywgd2UgbWF5IHN0aWxsIGJlIGFibGUgdG8gc2FmZWx5IHJlYWRcbiAgICAvLyBpZiB0aGUgY3VycmVudGx5IHJlbmRlcmluZyBsYW5lcyBhcmUgaW5jbHVzaXZlIG9mIHRoZSBwZW5kaW5nIG11dGF0aW9uXG4gICAgLy8gbGFuZXMsIHNpbmNlIHRoYXQgZ3VhcmFudGVlcyB0aGF0IHRoZSB2YWx1ZSB3ZSdyZSBhYm91dCB0byByZWFkIGZyb21cbiAgICAvLyB0aGUgc291cmNlIGlzIGNvbnNpc3RlbnQgd2l0aCB0aGUgdmFsdWVzIHRoYXQgd2UgcmVhZCBkdXJpbmcgdGhlIG1vc3RcbiAgICAvLyByZWNlbnQgbXV0YXRpb24uXG4gICAgaXNTYWZlVG9SZWFkRnJvbVNvdXJjZSA9IGlzU3Vic2V0T2ZMYW5lcyhyZW5kZXJMYW5lcywgcm9vdC5tdXRhYmxlUmVhZExhbmVzKTtcblxuICAgIGlmIChpc1NhZmVUb1JlYWRGcm9tU291cmNlKSB7XG4gICAgICAvLyBJZiBpdCdzIHNhZmUgdG8gcmVhZCBmcm9tIHRoaXMgc291cmNlIGR1cmluZyB0aGUgY3VycmVudCByZW5kZXIsXG4gICAgICAvLyBzdG9yZSB0aGUgdmVyc2lvbiBpbiBjYXNlIG90aGVyIGNvbXBvbmVudHMgcmVhZCBmcm9tIGl0LlxuICAgICAgLy8gQSBjaGFuZ2VkIHZlcnNpb24gbnVtYmVyIHdpbGwgbGV0IHRob3NlIGNvbXBvbmVudHMga25vdyB0byB0aHJvdyBhbmQgcmVzdGFydCB0aGUgcmVuZGVyLlxuICAgICAgc2V0V29ya0luUHJvZ3Jlc3NWZXJzaW9uKHNvdXJjZSwgdmVyc2lvbik7XG4gICAgfVxuICB9XG5cbiAgaWYgKGlzU2FmZVRvUmVhZEZyb21Tb3VyY2UpIHtcbiAgICB2YXIgc25hcHNob3QgPSBnZXRTbmFwc2hvdChzb3VyY2UuX3NvdXJjZSk7XG5cbiAgICB7XG4gICAgICBpZiAodHlwZW9mIHNuYXBzaG90ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGVycm9yKCdNdXRhYmxlIHNvdXJjZSBzaG91bGQgbm90IHJldHVybiBhIGZ1bmN0aW9uIGFzIHRoZSBzbmFwc2hvdCB2YWx1ZS4gJyArICdGdW5jdGlvbnMgbWF5IGNsb3NlIG92ZXIgbXV0YWJsZSB2YWx1ZXMgYW5kIGNhdXNlIHRlYXJpbmcuJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHNuYXBzaG90O1xuICB9IGVsc2Uge1xuICAgIC8vIFRoaXMgaGFuZGxlcyB0aGUgc3BlY2lhbCBjYXNlIG9mIGEgbXV0YWJsZSBzb3VyY2UgYmVpbmcgc2hhcmVkIGJldHdlZW4gcmVuZGVyZXJzLlxuICAgIC8vIEluIHRoYXQgY2FzZSwgaWYgdGhlIHNvdXJjZSBpcyBtdXRhdGVkIGJldHdlZW4gdGhlIGZpcnN0IGFuZCBzZWNvbmQgcmVuZGVyZXIsXG4gICAgLy8gVGhlIHNlY29uZCByZW5kZXJlciBkb24ndCBrbm93IHRoYXQgaXQgbmVlZHMgdG8gcmVzZXQgdGhlIFdJUCB2ZXJzaW9uIGR1cmluZyB1bndpbmQsXG4gICAgLy8gKGJlY2F1c2UgdGhlIGhvb2sgb25seSBtYXJrcyBzb3VyY2VzIGFzIGRpcnR5IGlmIGl0J3Mgd3JpdHRlbiB0byB0aGVpciBXSVAgdmVyc2lvbikuXG4gICAgLy8gVGhhdCB3b3VsZCBjYXVzZSB0aGlzIHRlYXIgY2hlY2sgdG8gdGhyb3cgYWdhaW4gYW5kIGV2ZW50dWFsbHkgYmUgdmlzaWJsZSB0byB0aGUgdXNlci5cbiAgICAvLyBXZSBjYW4gYXZvaWQgdGhpcyBpbmZpbml0ZSBsb29wIGJ5IGV4cGxpY2l0bHkgbWFya2luZyB0aGUgc291cmNlIGFzIGRpcnR5LlxuICAgIC8vXG4gICAgLy8gVGhpcyBjYW4gbGVhZCB0byB0ZWFyaW5nIGluIHRoZSBmaXJzdCByZW5kZXJlciB3aGVuIGl0IHJlc3VtZXMsXG4gICAgLy8gYnV0IHRoZXJlJ3Mgbm90aGluZyB3ZSBjYW4gZG8gYWJvdXQgdGhhdCAoc2hvcnQgb2YgdGhyb3dpbmcgaGVyZSBhbmQgcmVmdXNpbmcgdG8gY29udGludWUgdGhlIHJlbmRlcikuXG4gICAgbWFya1NvdXJjZUFzRGlydHkoc291cmNlKTtcblxuICAgIHtcbiAgICAgIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoIFwiQ2Fubm90IHJlYWQgZnJvbSBtdXRhYmxlIHNvdXJjZSBkdXJpbmcgdGhlIGN1cnJlbnQgcmVuZGVyIHdpdGhvdXQgdGVhcmluZy4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCIgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gdXNlTXV0YWJsZVNvdXJjZShob29rLCBzb3VyY2UsIGdldFNuYXBzaG90LCBzdWJzY3JpYmUpIHtcbiAgdmFyIHJvb3QgPSBnZXRXb3JrSW5Qcm9ncmVzc1Jvb3QoKTtcblxuICBpZiAoIShyb290ICE9PSBudWxsKSkge1xuICAgIHtcbiAgICAgIHRocm93IEVycm9yKCBcIkV4cGVjdGVkIGEgd29yay1pbi1wcm9ncmVzcyByb290LiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIiApO1xuICAgIH1cbiAgfVxuXG4gIHZhciBnZXRWZXJzaW9uID0gc291cmNlLl9nZXRWZXJzaW9uO1xuICB2YXIgdmVyc2lvbiA9IGdldFZlcnNpb24oc291cmNlLl9zb3VyY2UpO1xuICB2YXIgZGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50OyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLWNvbnN0XG5cbiAgdmFyIF9kaXNwYXRjaGVyJHVzZVN0YXRlID0gZGlzcGF0Y2hlci51c2VTdGF0ZShmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHJlYWRGcm9tVW5zdWJjcmliZWRNdXRhYmxlU291cmNlKHJvb3QsIHNvdXJjZSwgZ2V0U25hcHNob3QpO1xuICB9KSxcbiAgICAgIGN1cnJlbnRTbmFwc2hvdCA9IF9kaXNwYXRjaGVyJHVzZVN0YXRlWzBdLFxuICAgICAgc2V0U25hcHNob3QgPSBfZGlzcGF0Y2hlciR1c2VTdGF0ZVsxXTtcblxuICB2YXIgc25hcHNob3QgPSBjdXJyZW50U25hcHNob3Q7IC8vIEdyYWIgYSBoYW5kbGUgdG8gdGhlIHN0YXRlIGhvb2sgYXMgd2VsbC5cbiAgLy8gV2UgdXNlIGl0IHRvIGNsZWFyIHRoZSBwZW5kaW5nIHVwZGF0ZSBxdWV1ZSBpZiB3ZSBoYXZlIGEgbmV3IHNvdXJjZS5cblxuICB2YXIgc3RhdGVIb29rID0gd29ya0luUHJvZ3Jlc3NIb29rO1xuICB2YXIgbWVtb2l6ZWRTdGF0ZSA9IGhvb2subWVtb2l6ZWRTdGF0ZTtcbiAgdmFyIHJlZnMgPSBtZW1vaXplZFN0YXRlLnJlZnM7XG4gIHZhciBwcmV2R2V0U25hcHNob3QgPSByZWZzLmdldFNuYXBzaG90O1xuICB2YXIgcHJldlNvdXJjZSA9IG1lbW9pemVkU3RhdGUuc291cmNlO1xuICB2YXIgcHJldlN1YnNjcmliZSA9IG1lbW9pemVkU3RhdGUuc3Vic2NyaWJlO1xuICB2YXIgZmliZXIgPSBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxO1xuICBob29rLm1lbW9pemVkU3RhdGUgPSB7XG4gICAgcmVmczogcmVmcyxcbiAgICBzb3VyY2U6IHNvdXJjZSxcbiAgICBzdWJzY3JpYmU6IHN1YnNjcmliZVxuICB9OyAvLyBTeW5jIHRoZSB2YWx1ZXMgbmVlZGVkIGJ5IG91ciBzdWJzY3JpcHRpb24gaGFuZGxlciBhZnRlciBlYWNoIGNvbW1pdC5cblxuICBkaXNwYXRjaGVyLnVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgcmVmcy5nZXRTbmFwc2hvdCA9IGdldFNuYXBzaG90OyAvLyBOb3JtYWxseSB0aGUgZGlzcGF0Y2ggZnVuY3Rpb24gZm9yIGEgc3RhdGUgaG9vayBuZXZlciBjaGFuZ2VzLFxuICAgIC8vIGJ1dCB0aGlzIGhvb2sgcmVjcmVhdGVzIHRoZSBxdWV1ZSBpbiBjZXJ0YWluIGNhc2VzICB0byBhdm9pZCB1cGRhdGVzIGZyb20gc3RhbGUgc291cmNlcy5cbiAgICAvLyBoYW5kbGVDaGFuZ2UoKSBiZWxvdyBuZWVkcyB0byByZWZlcmVuY2UgdGhlIGRpc3BhdGNoIGZ1bmN0aW9uIHdpdGhvdXQgcmUtc3Vic2NyaWJpbmcsXG4gICAgLy8gc28gd2UgdXNlIGEgcmVmIHRvIGVuc3VyZSB0aGF0IGl0IGFsd2F5cyBoYXMgdGhlIGxhdGVzdCB2ZXJzaW9uLlxuXG4gICAgcmVmcy5zZXRTbmFwc2hvdCA9IHNldFNuYXBzaG90OyAvLyBDaGVjayBmb3IgYSBwb3NzaWJsZSBjaGFuZ2UgYmV0d2VlbiB3aGVuIHdlIGxhc3QgcmVuZGVyZWQgbm93LlxuXG4gICAgdmFyIG1heWJlTmV3VmVyc2lvbiA9IGdldFZlcnNpb24oc291cmNlLl9zb3VyY2UpO1xuXG4gICAgaWYgKCFvYmplY3RJcyh2ZXJzaW9uLCBtYXliZU5ld1ZlcnNpb24pKSB7XG4gICAgICB2YXIgbWF5YmVOZXdTbmFwc2hvdCA9IGdldFNuYXBzaG90KHNvdXJjZS5fc291cmNlKTtcblxuICAgICAge1xuICAgICAgICBpZiAodHlwZW9mIG1heWJlTmV3U25hcHNob3QgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICBlcnJvcignTXV0YWJsZSBzb3VyY2Ugc2hvdWxkIG5vdCByZXR1cm4gYSBmdW5jdGlvbiBhcyB0aGUgc25hcHNob3QgdmFsdWUuICcgKyAnRnVuY3Rpb25zIG1heSBjbG9zZSBvdmVyIG11dGFibGUgdmFsdWVzIGFuZCBjYXVzZSB0ZWFyaW5nLicpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghb2JqZWN0SXMoc25hcHNob3QsIG1heWJlTmV3U25hcHNob3QpKSB7XG4gICAgICAgIHNldFNuYXBzaG90KG1heWJlTmV3U25hcHNob3QpO1xuICAgICAgICB2YXIgbGFuZSA9IHJlcXVlc3RVcGRhdGVMYW5lKGZpYmVyKTtcbiAgICAgICAgbWFya1Jvb3RNdXRhYmxlUmVhZChyb290LCBsYW5lKTtcbiAgICAgIH0gLy8gSWYgdGhlIHNvdXJjZSBtdXRhdGVkIGJldHdlZW4gcmVuZGVyIGFuZCBub3csXG4gICAgICAvLyB0aGVyZSBtYXkgYmUgc3RhdGUgdXBkYXRlcyBhbHJlYWR5IHNjaGVkdWxlZCBmcm9tIHRoZSBvbGQgc291cmNlLlxuICAgICAgLy8gRW50YW5nbGUgdGhlIHVwZGF0ZXMgc28gdGhhdCB0aGV5IHJlbmRlciBpbiB0aGUgc2FtZSBiYXRjaC5cblxuXG4gICAgICBtYXJrUm9vdEVudGFuZ2xlZChyb290LCByb290Lm11dGFibGVSZWFkTGFuZXMpO1xuICAgIH1cbiAgfSwgW2dldFNuYXBzaG90LCBzb3VyY2UsIHN1YnNjcmliZV0pOyAvLyBJZiB3ZSBnb3QgYSBuZXcgc291cmNlIG9yIHN1YnNjcmliZSBmdW5jdGlvbiwgcmUtc3Vic2NyaWJlIGluIGEgcGFzc2l2ZSBlZmZlY3QuXG5cbiAgZGlzcGF0Y2hlci51c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIHZhciBoYW5kbGVDaGFuZ2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgbGF0ZXN0R2V0U25hcHNob3QgPSByZWZzLmdldFNuYXBzaG90O1xuICAgICAgdmFyIGxhdGVzdFNldFNuYXBzaG90ID0gcmVmcy5zZXRTbmFwc2hvdDtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgbGF0ZXN0U2V0U25hcHNob3QobGF0ZXN0R2V0U25hcHNob3Qoc291cmNlLl9zb3VyY2UpKTsgLy8gUmVjb3JkIGEgcGVuZGluZyBtdXRhYmxlIHNvdXJjZSB1cGRhdGUgd2l0aCB0aGUgc2FtZSBleHBpcmF0aW9uIHRpbWUuXG5cbiAgICAgICAgdmFyIGxhbmUgPSByZXF1ZXN0VXBkYXRlTGFuZShmaWJlcik7XG4gICAgICAgIG1hcmtSb290TXV0YWJsZVJlYWQocm9vdCwgbGFuZSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAvLyBBIHNlbGVjdG9yIG1pZ2h0IHRocm93IGFmdGVyIGEgc291cmNlIG11dGF0aW9uLlxuICAgICAgICAvLyBlLmcuIGl0IG1pZ2h0IHRyeSB0byByZWFkIGZyb20gYSBwYXJ0IG9mIHRoZSBzdG9yZSB0aGF0IG5vIGxvbmdlciBleGlzdHMuXG4gICAgICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBzaG91bGQgc3RpbGwgc2NoZWR1bGUgYW4gdXBkYXRlIHdpdGggUmVhY3QuXG4gICAgICAgIC8vIFdvcnN0IGNhc2UgdGhlIHNlbGVjdG9yIHdpbGwgdGhyb3cgYWdhaW4gYW5kIHRoZW4gYW4gZXJyb3IgYm91bmRhcnkgd2lsbCBoYW5kbGUgaXQuXG4gICAgICAgIGxhdGVzdFNldFNuYXBzaG90KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHZhciB1bnN1YnNjcmliZSA9IHN1YnNjcmliZShzb3VyY2UuX3NvdXJjZSwgaGFuZGxlQ2hhbmdlKTtcblxuICAgIHtcbiAgICAgIGlmICh0eXBlb2YgdW5zdWJzY3JpYmUgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgZXJyb3IoJ011dGFibGUgc291cmNlIHN1YnNjcmliZSBmdW5jdGlvbiBtdXN0IHJldHVybiBhbiB1bnN1YnNjcmliZSBmdW5jdGlvbi4nKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdW5zdWJzY3JpYmU7XG4gIH0sIFtzb3VyY2UsIHN1YnNjcmliZV0pOyAvLyBJZiBhbnkgb2YgdGhlIGlucHV0cyB0byB1c2VNdXRhYmxlU291cmNlIGNoYW5nZSwgcmVhZGluZyBpcyBwb3RlbnRpYWxseSB1bnNhZmUuXG4gIC8vXG4gIC8vIElmIGVpdGhlciB0aGUgc291cmNlIG9yIHRoZSBzdWJzY3JpcHRpb24gaGF2ZSBjaGFuZ2VkIHdlIGNhbid0IGNhbid0IHRydXN0IHRoZSB1cGRhdGUgcXVldWUuXG4gIC8vIE1heWJlIHRoZSBzb3VyY2UgY2hhbmdlZCBpbiBhIHdheSB0aGF0IHRoZSBvbGQgc3Vic2NyaXB0aW9uIGlnbm9yZWQgYnV0IHRoZSBuZXcgb25lIGRlcGVuZHMgb24uXG4gIC8vXG4gIC8vIElmIHRoZSBnZXRTbmFwc2hvdCBmdW5jdGlvbiBjaGFuZ2VkLCB3ZSBhbHNvIHNob3VsZG4ndCByZWx5IG9uIHRoZSB1cGRhdGUgcXVldWUuXG4gIC8vIEl0J3MgcG9zc2libGUgdGhhdCB0aGUgdW5kZXJseWluZyBzb3VyY2Ugd2FzIG11dGF0ZWQgYmV0d2VlbiB0aGUgd2hlbiB0aGUgbGFzdCBcImNoYW5nZVwiIGV2ZW50IGZpcmVkLFxuICAvLyBhbmQgd2hlbiB0aGUgY3VycmVudCByZW5kZXIgKHdpdGggdGhlIG5ldyBnZXRTbmFwc2hvdCBmdW5jdGlvbikgaXMgcHJvY2Vzc2VkLlxuICAvL1xuICAvLyBJbiBib3RoIGNhc2VzLCB3ZSBuZWVkIHRvIHRocm93IGF3YXkgcGVuZGluZyB1cGRhdGVzIChzaW5jZSB0aGV5IGFyZSBubyBsb25nZXIgcmVsZXZhbnQpXG4gIC8vIGFuZCB0cmVhdCByZWFkaW5nIGZyb20gdGhlIHNvdXJjZSBhcyB3ZSBkbyBpbiB0aGUgbW91bnQgY2FzZS5cblxuICBpZiAoIW9iamVjdElzKHByZXZHZXRTbmFwc2hvdCwgZ2V0U25hcHNob3QpIHx8ICFvYmplY3RJcyhwcmV2U291cmNlLCBzb3VyY2UpIHx8ICFvYmplY3RJcyhwcmV2U3Vic2NyaWJlLCBzdWJzY3JpYmUpKSB7XG4gICAgLy8gQ3JlYXRlIGEgbmV3IHF1ZXVlIGFuZCBzZXRTdGF0ZSBtZXRob2QsXG4gICAgLy8gU28gaWYgdGhlcmUgYXJlIGludGVybGVhdmVkIHVwZGF0ZXMsIHRoZXkgZ2V0IHB1c2hlZCB0byB0aGUgb2xkZXIgcXVldWUuXG4gICAgLy8gV2hlbiB0aGlzIGJlY29tZXMgY3VycmVudCwgdGhlIHByZXZpb3VzIHF1ZXVlIGFuZCBkaXNwYXRjaCBtZXRob2Qgd2lsbCBiZSBkaXNjYXJkZWQsXG4gICAgLy8gaW5jbHVkaW5nIGFueSBpbnRlcmxlYXZpbmcgdXBkYXRlcyB0aGF0IG9jY3VyLlxuICAgIHZhciBuZXdRdWV1ZSA9IHtcbiAgICAgIHBlbmRpbmc6IG51bGwsXG4gICAgICBkaXNwYXRjaDogbnVsbCxcbiAgICAgIGxhc3RSZW5kZXJlZFJlZHVjZXI6IGJhc2ljU3RhdGVSZWR1Y2VyLFxuICAgICAgbGFzdFJlbmRlcmVkU3RhdGU6IHNuYXBzaG90XG4gICAgfTtcbiAgICBuZXdRdWV1ZS5kaXNwYXRjaCA9IHNldFNuYXBzaG90ID0gZGlzcGF0Y2hBY3Rpb24uYmluZChudWxsLCBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxLCBuZXdRdWV1ZSk7XG4gICAgc3RhdGVIb29rLnF1ZXVlID0gbmV3UXVldWU7XG4gICAgc3RhdGVIb29rLmJhc2VRdWV1ZSA9IG51bGw7XG4gICAgc25hcHNob3QgPSByZWFkRnJvbVVuc3ViY3JpYmVkTXV0YWJsZVNvdXJjZShyb290LCBzb3VyY2UsIGdldFNuYXBzaG90KTtcbiAgICBzdGF0ZUhvb2subWVtb2l6ZWRTdGF0ZSA9IHN0YXRlSG9vay5iYXNlU3RhdGUgPSBzbmFwc2hvdDtcbiAgfVxuXG4gIHJldHVybiBzbmFwc2hvdDtcbn1cblxuZnVuY3Rpb24gbW91bnRNdXRhYmxlU291cmNlKHNvdXJjZSwgZ2V0U25hcHNob3QsIHN1YnNjcmliZSkge1xuICB2YXIgaG9vayA9IG1vdW50V29ya0luUHJvZ3Jlc3NIb29rKCk7XG4gIGhvb2subWVtb2l6ZWRTdGF0ZSA9IHtcbiAgICByZWZzOiB7XG4gICAgICBnZXRTbmFwc2hvdDogZ2V0U25hcHNob3QsXG4gICAgICBzZXRTbmFwc2hvdDogbnVsbFxuICAgIH0sXG4gICAgc291cmNlOiBzb3VyY2UsXG4gICAgc3Vic2NyaWJlOiBzdWJzY3JpYmVcbiAgfTtcbiAgcmV0dXJuIHVzZU11dGFibGVTb3VyY2UoaG9vaywgc291cmNlLCBnZXRTbmFwc2hvdCwgc3Vic2NyaWJlKTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlTXV0YWJsZVNvdXJjZShzb3VyY2UsIGdldFNuYXBzaG90LCBzdWJzY3JpYmUpIHtcbiAgdmFyIGhvb2sgPSB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKTtcbiAgcmV0dXJuIHVzZU11dGFibGVTb3VyY2UoaG9vaywgc291cmNlLCBnZXRTbmFwc2hvdCwgc3Vic2NyaWJlKTtcbn1cblxuZnVuY3Rpb24gbW91bnRTdGF0ZShpbml0aWFsU3RhdGUpIHtcbiAgdmFyIGhvb2sgPSBtb3VudFdvcmtJblByb2dyZXNzSG9vaygpO1xuXG4gIGlmICh0eXBlb2YgaW5pdGlhbFN0YXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgLy8gJEZsb3dGaXhNZTogRmxvdyBkb2Vzbid0IGxpa2UgbWl4ZWQgdHlwZXNcbiAgICBpbml0aWFsU3RhdGUgPSBpbml0aWFsU3RhdGUoKTtcbiAgfVxuXG4gIGhvb2subWVtb2l6ZWRTdGF0ZSA9IGhvb2suYmFzZVN0YXRlID0gaW5pdGlhbFN0YXRlO1xuICB2YXIgcXVldWUgPSBob29rLnF1ZXVlID0ge1xuICAgIHBlbmRpbmc6IG51bGwsXG4gICAgZGlzcGF0Y2g6IG51bGwsXG4gICAgbGFzdFJlbmRlcmVkUmVkdWNlcjogYmFzaWNTdGF0ZVJlZHVjZXIsXG4gICAgbGFzdFJlbmRlcmVkU3RhdGU6IGluaXRpYWxTdGF0ZVxuICB9O1xuICB2YXIgZGlzcGF0Y2ggPSBxdWV1ZS5kaXNwYXRjaCA9IGRpc3BhdGNoQWN0aW9uLmJpbmQobnVsbCwgY3VycmVudGx5UmVuZGVyaW5nRmliZXIkMSwgcXVldWUpO1xuICByZXR1cm4gW2hvb2subWVtb2l6ZWRTdGF0ZSwgZGlzcGF0Y2hdO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVTdGF0ZShpbml0aWFsU3RhdGUpIHtcbiAgcmV0dXJuIHVwZGF0ZVJlZHVjZXIoYmFzaWNTdGF0ZVJlZHVjZXIpO1xufVxuXG5mdW5jdGlvbiByZXJlbmRlclN0YXRlKGluaXRpYWxTdGF0ZSkge1xuICByZXR1cm4gcmVyZW5kZXJSZWR1Y2VyKGJhc2ljU3RhdGVSZWR1Y2VyKTtcbn1cblxuZnVuY3Rpb24gcHVzaEVmZmVjdCh0YWcsIGNyZWF0ZSwgZGVzdHJveSwgZGVwcykge1xuICB2YXIgZWZmZWN0ID0ge1xuICAgIHRhZzogdGFnLFxuICAgIGNyZWF0ZTogY3JlYXRlLFxuICAgIGRlc3Ryb3k6IGRlc3Ryb3ksXG4gICAgZGVwczogZGVwcyxcbiAgICAvLyBDaXJjdWxhclxuICAgIG5leHQ6IG51bGxcbiAgfTtcbiAgdmFyIGNvbXBvbmVudFVwZGF0ZVF1ZXVlID0gY3VycmVudGx5UmVuZGVyaW5nRmliZXIkMS51cGRhdGVRdWV1ZTtcblxuICBpZiAoY29tcG9uZW50VXBkYXRlUXVldWUgPT09IG51bGwpIHtcbiAgICBjb21wb25lbnRVcGRhdGVRdWV1ZSA9IGNyZWF0ZUZ1bmN0aW9uQ29tcG9uZW50VXBkYXRlUXVldWUoKTtcbiAgICBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxLnVwZGF0ZVF1ZXVlID0gY29tcG9uZW50VXBkYXRlUXVldWU7XG4gICAgY29tcG9uZW50VXBkYXRlUXVldWUubGFzdEVmZmVjdCA9IGVmZmVjdC5uZXh0ID0gZWZmZWN0O1xuICB9IGVsc2Uge1xuICAgIHZhciBsYXN0RWZmZWN0ID0gY29tcG9uZW50VXBkYXRlUXVldWUubGFzdEVmZmVjdDtcblxuICAgIGlmIChsYXN0RWZmZWN0ID09PSBudWxsKSB7XG4gICAgICBjb21wb25lbnRVcGRhdGVRdWV1ZS5sYXN0RWZmZWN0ID0gZWZmZWN0Lm5leHQgPSBlZmZlY3Q7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBmaXJzdEVmZmVjdCA9IGxhc3RFZmZlY3QubmV4dDtcbiAgICAgIGxhc3RFZmZlY3QubmV4dCA9IGVmZmVjdDtcbiAgICAgIGVmZmVjdC5uZXh0ID0gZmlyc3RFZmZlY3Q7XG4gICAgICBjb21wb25lbnRVcGRhdGVRdWV1ZS5sYXN0RWZmZWN0ID0gZWZmZWN0O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBlZmZlY3Q7XG59XG5cbmZ1bmN0aW9uIG1vdW50UmVmKGluaXRpYWxWYWx1ZSkge1xuICB2YXIgaG9vayA9IG1vdW50V29ya0luUHJvZ3Jlc3NIb29rKCk7XG4gIHZhciByZWYgPSB7XG4gICAgY3VycmVudDogaW5pdGlhbFZhbHVlXG4gIH07XG5cbiAge1xuICAgIE9iamVjdC5zZWFsKHJlZik7XG4gIH1cblxuICBob29rLm1lbW9pemVkU3RhdGUgPSByZWY7XG4gIHJldHVybiByZWY7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZVJlZihpbml0aWFsVmFsdWUpIHtcbiAgdmFyIGhvb2sgPSB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKTtcbiAgcmV0dXJuIGhvb2subWVtb2l6ZWRTdGF0ZTtcbn1cblxuZnVuY3Rpb24gbW91bnRFZmZlY3RJbXBsKGZpYmVyRmxhZ3MsIGhvb2tGbGFncywgY3JlYXRlLCBkZXBzKSB7XG4gIHZhciBob29rID0gbW91bnRXb3JrSW5Qcm9ncmVzc0hvb2soKTtcbiAgdmFyIG5leHREZXBzID0gZGVwcyA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGRlcHM7XG4gIGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyJDEuZmxhZ3MgfD0gZmliZXJGbGFncztcbiAgaG9vay5tZW1vaXplZFN0YXRlID0gcHVzaEVmZmVjdChIYXNFZmZlY3QgfCBob29rRmxhZ3MsIGNyZWF0ZSwgdW5kZWZpbmVkLCBuZXh0RGVwcyk7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUVmZmVjdEltcGwoZmliZXJGbGFncywgaG9va0ZsYWdzLCBjcmVhdGUsIGRlcHMpIHtcbiAgdmFyIGhvb2sgPSB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKTtcbiAgdmFyIG5leHREZXBzID0gZGVwcyA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGRlcHM7XG4gIHZhciBkZXN0cm95ID0gdW5kZWZpbmVkO1xuXG4gIGlmIChjdXJyZW50SG9vayAhPT0gbnVsbCkge1xuICAgIHZhciBwcmV2RWZmZWN0ID0gY3VycmVudEhvb2subWVtb2l6ZWRTdGF0ZTtcbiAgICBkZXN0cm95ID0gcHJldkVmZmVjdC5kZXN0cm95O1xuXG4gICAgaWYgKG5leHREZXBzICE9PSBudWxsKSB7XG4gICAgICB2YXIgcHJldkRlcHMgPSBwcmV2RWZmZWN0LmRlcHM7XG5cbiAgICAgIGlmIChhcmVIb29rSW5wdXRzRXF1YWwobmV4dERlcHMsIHByZXZEZXBzKSkge1xuICAgICAgICBwdXNoRWZmZWN0KGhvb2tGbGFncywgY3JlYXRlLCBkZXN0cm95LCBuZXh0RGVwcyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxLmZsYWdzIHw9IGZpYmVyRmxhZ3M7XG4gIGhvb2subWVtb2l6ZWRTdGF0ZSA9IHB1c2hFZmZlY3QoSGFzRWZmZWN0IHwgaG9va0ZsYWdzLCBjcmVhdGUsIGRlc3Ryb3ksIG5leHREZXBzKTtcbn1cblxuZnVuY3Rpb24gbW91bnRFZmZlY3QoY3JlYXRlLCBkZXBzKSB7XG4gIHtcbiAgICAvLyAkRmxvd0V4cGVjdGVkRXJyb3IgLSBqZXN0IGlzbid0IGEgZ2xvYmFsLCBhbmQgaXNuJ3QgcmVjb2duaXplZCBvdXRzaWRlIG9mIHRlc3RzXG4gICAgaWYgKCd1bmRlZmluZWQnICE9PSB0eXBlb2YgamVzdCkge1xuICAgICAgd2FybklmTm90Q3VycmVudGx5QWN0aW5nRWZmZWN0c0luREVWKGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyJDEpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBtb3VudEVmZmVjdEltcGwoVXBkYXRlIHwgUGFzc2l2ZSwgUGFzc2l2ZSQxLCBjcmVhdGUsIGRlcHMpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVFZmZlY3QoY3JlYXRlLCBkZXBzKSB7XG4gIHtcbiAgICAvLyAkRmxvd0V4cGVjdGVkRXJyb3IgLSBqZXN0IGlzbid0IGEgZ2xvYmFsLCBhbmQgaXNuJ3QgcmVjb2duaXplZCBvdXRzaWRlIG9mIHRlc3RzXG4gICAgaWYgKCd1bmRlZmluZWQnICE9PSB0eXBlb2YgamVzdCkge1xuICAgICAgd2FybklmTm90Q3VycmVudGx5QWN0aW5nRWZmZWN0c0luREVWKGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyJDEpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB1cGRhdGVFZmZlY3RJbXBsKFVwZGF0ZSB8IFBhc3NpdmUsIFBhc3NpdmUkMSwgY3JlYXRlLCBkZXBzKTtcbn1cblxuZnVuY3Rpb24gbW91bnRMYXlvdXRFZmZlY3QoY3JlYXRlLCBkZXBzKSB7XG4gIHJldHVybiBtb3VudEVmZmVjdEltcGwoVXBkYXRlLCBMYXlvdXQsIGNyZWF0ZSwgZGVwcyk7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUxheW91dEVmZmVjdChjcmVhdGUsIGRlcHMpIHtcbiAgcmV0dXJuIHVwZGF0ZUVmZmVjdEltcGwoVXBkYXRlLCBMYXlvdXQsIGNyZWF0ZSwgZGVwcyk7XG59XG5cbmZ1bmN0aW9uIGltcGVyYXRpdmVIYW5kbGVFZmZlY3QoY3JlYXRlLCByZWYpIHtcbiAgaWYgKHR5cGVvZiByZWYgPT09ICdmdW5jdGlvbicpIHtcbiAgICB2YXIgcmVmQ2FsbGJhY2sgPSByZWY7XG5cbiAgICB2YXIgX2luc3QgPSBjcmVhdGUoKTtcblxuICAgIHJlZkNhbGxiYWNrKF9pbnN0KTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgcmVmQ2FsbGJhY2sobnVsbCk7XG4gICAgfTtcbiAgfSBlbHNlIGlmIChyZWYgIT09IG51bGwgJiYgcmVmICE9PSB1bmRlZmluZWQpIHtcbiAgICB2YXIgcmVmT2JqZWN0ID0gcmVmO1xuXG4gICAge1xuICAgICAgaWYgKCFyZWZPYmplY3QuaGFzT3duUHJvcGVydHkoJ2N1cnJlbnQnKSkge1xuICAgICAgICBlcnJvcignRXhwZWN0ZWQgdXNlSW1wZXJhdGl2ZUhhbmRsZSgpIGZpcnN0IGFyZ3VtZW50IHRvIGVpdGhlciBiZSBhICcgKyAncmVmIGNhbGxiYWNrIG9yIFJlYWN0LmNyZWF0ZVJlZigpIG9iamVjdC4gSW5zdGVhZCByZWNlaXZlZDogJXMuJywgJ2FuIG9iamVjdCB3aXRoIGtleXMgeycgKyBPYmplY3Qua2V5cyhyZWZPYmplY3QpLmpvaW4oJywgJykgKyAnfScpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBfaW5zdDIgPSBjcmVhdGUoKTtcblxuICAgIHJlZk9iamVjdC5jdXJyZW50ID0gX2luc3QyO1xuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICByZWZPYmplY3QuY3VycmVudCA9IG51bGw7XG4gICAgfTtcbiAgfVxufVxuXG5mdW5jdGlvbiBtb3VudEltcGVyYXRpdmVIYW5kbGUocmVmLCBjcmVhdGUsIGRlcHMpIHtcbiAge1xuICAgIGlmICh0eXBlb2YgY3JlYXRlICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICBlcnJvcignRXhwZWN0ZWQgdXNlSW1wZXJhdGl2ZUhhbmRsZSgpIHNlY29uZCBhcmd1bWVudCB0byBiZSBhIGZ1bmN0aW9uICcgKyAndGhhdCBjcmVhdGVzIGEgaGFuZGxlLiBJbnN0ZWFkIHJlY2VpdmVkOiAlcy4nLCBjcmVhdGUgIT09IG51bGwgPyB0eXBlb2YgY3JlYXRlIDogJ251bGwnKTtcbiAgICB9XG4gIH0gLy8gVE9ETzogSWYgZGVwcyBhcmUgcHJvdmlkZWQsIHNob3VsZCB3ZSBza2lwIGNvbXBhcmluZyB0aGUgcmVmIGl0c2VsZj9cblxuXG4gIHZhciBlZmZlY3REZXBzID0gZGVwcyAhPT0gbnVsbCAmJiBkZXBzICE9PSB1bmRlZmluZWQgPyBkZXBzLmNvbmNhdChbcmVmXSkgOiBudWxsO1xuICByZXR1cm4gbW91bnRFZmZlY3RJbXBsKFVwZGF0ZSwgTGF5b3V0LCBpbXBlcmF0aXZlSGFuZGxlRWZmZWN0LmJpbmQobnVsbCwgY3JlYXRlLCByZWYpLCBlZmZlY3REZXBzKTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlSW1wZXJhdGl2ZUhhbmRsZShyZWYsIGNyZWF0ZSwgZGVwcykge1xuICB7XG4gICAgaWYgKHR5cGVvZiBjcmVhdGUgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGVycm9yKCdFeHBlY3RlZCB1c2VJbXBlcmF0aXZlSGFuZGxlKCkgc2Vjb25kIGFyZ3VtZW50IHRvIGJlIGEgZnVuY3Rpb24gJyArICd0aGF0IGNyZWF0ZXMgYSBoYW5kbGUuIEluc3RlYWQgcmVjZWl2ZWQ6ICVzLicsIGNyZWF0ZSAhPT0gbnVsbCA/IHR5cGVvZiBjcmVhdGUgOiAnbnVsbCcpO1xuICAgIH1cbiAgfSAvLyBUT0RPOiBJZiBkZXBzIGFyZSBwcm92aWRlZCwgc2hvdWxkIHdlIHNraXAgY29tcGFyaW5nIHRoZSByZWYgaXRzZWxmP1xuXG5cbiAgdmFyIGVmZmVjdERlcHMgPSBkZXBzICE9PSBudWxsICYmIGRlcHMgIT09IHVuZGVmaW5lZCA/IGRlcHMuY29uY2F0KFtyZWZdKSA6IG51bGw7XG4gIHJldHVybiB1cGRhdGVFZmZlY3RJbXBsKFVwZGF0ZSwgTGF5b3V0LCBpbXBlcmF0aXZlSGFuZGxlRWZmZWN0LmJpbmQobnVsbCwgY3JlYXRlLCByZWYpLCBlZmZlY3REZXBzKTtcbn1cblxuZnVuY3Rpb24gbW91bnREZWJ1Z1ZhbHVlKHZhbHVlLCBmb3JtYXR0ZXJGbikgey8vIFRoaXMgaG9vayBpcyBub3JtYWxseSBhIG5vLW9wLlxuICAvLyBUaGUgcmVhY3QtZGVidWctaG9va3MgcGFja2FnZSBpbmplY3RzIGl0cyBvd24gaW1wbGVtZW50YXRpb25cbiAgLy8gc28gdGhhdCBlLmcuIERldlRvb2xzIGNhbiBkaXNwbGF5IGN1c3RvbSBob29rIHZhbHVlcy5cbn1cblxudmFyIHVwZGF0ZURlYnVnVmFsdWUgPSBtb3VudERlYnVnVmFsdWU7XG5cbmZ1bmN0aW9uIG1vdW50Q2FsbGJhY2soY2FsbGJhY2ssIGRlcHMpIHtcbiAgdmFyIGhvb2sgPSBtb3VudFdvcmtJblByb2dyZXNzSG9vaygpO1xuICB2YXIgbmV4dERlcHMgPSBkZXBzID09PSB1bmRlZmluZWQgPyBudWxsIDogZGVwcztcbiAgaG9vay5tZW1vaXplZFN0YXRlID0gW2NhbGxiYWNrLCBuZXh0RGVwc107XG4gIHJldHVybiBjYWxsYmFjaztcbn1cblxuZnVuY3Rpb24gdXBkYXRlQ2FsbGJhY2soY2FsbGJhY2ssIGRlcHMpIHtcbiAgdmFyIGhvb2sgPSB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKTtcbiAgdmFyIG5leHREZXBzID0gZGVwcyA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGRlcHM7XG4gIHZhciBwcmV2U3RhdGUgPSBob29rLm1lbW9pemVkU3RhdGU7XG5cbiAgaWYgKHByZXZTdGF0ZSAhPT0gbnVsbCkge1xuICAgIGlmIChuZXh0RGVwcyAhPT0gbnVsbCkge1xuICAgICAgdmFyIHByZXZEZXBzID0gcHJldlN0YXRlWzFdO1xuXG4gICAgICBpZiAoYXJlSG9va0lucHV0c0VxdWFsKG5leHREZXBzLCBwcmV2RGVwcykpIHtcbiAgICAgICAgcmV0dXJuIHByZXZTdGF0ZVswXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBob29rLm1lbW9pemVkU3RhdGUgPSBbY2FsbGJhY2ssIG5leHREZXBzXTtcbiAgcmV0dXJuIGNhbGxiYWNrO1xufVxuXG5mdW5jdGlvbiBtb3VudE1lbW8obmV4dENyZWF0ZSwgZGVwcykge1xuICB2YXIgaG9vayA9IG1vdW50V29ya0luUHJvZ3Jlc3NIb29rKCk7XG4gIHZhciBuZXh0RGVwcyA9IGRlcHMgPT09IHVuZGVmaW5lZCA/IG51bGwgOiBkZXBzO1xuICB2YXIgbmV4dFZhbHVlID0gbmV4dENyZWF0ZSgpO1xuICBob29rLm1lbW9pemVkU3RhdGUgPSBbbmV4dFZhbHVlLCBuZXh0RGVwc107XG4gIHJldHVybiBuZXh0VmFsdWU7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZU1lbW8obmV4dENyZWF0ZSwgZGVwcykge1xuICB2YXIgaG9vayA9IHVwZGF0ZVdvcmtJblByb2dyZXNzSG9vaygpO1xuICB2YXIgbmV4dERlcHMgPSBkZXBzID09PSB1bmRlZmluZWQgPyBudWxsIDogZGVwcztcbiAgdmFyIHByZXZTdGF0ZSA9IGhvb2subWVtb2l6ZWRTdGF0ZTtcblxuICBpZiAocHJldlN0YXRlICE9PSBudWxsKSB7XG4gICAgLy8gQXNzdW1lIHRoZXNlIGFyZSBkZWZpbmVkLiBJZiB0aGV5J3JlIG5vdCwgYXJlSG9va0lucHV0c0VxdWFsIHdpbGwgd2Fybi5cbiAgICBpZiAobmV4dERlcHMgIT09IG51bGwpIHtcbiAgICAgIHZhciBwcmV2RGVwcyA9IHByZXZTdGF0ZVsxXTtcblxuICAgICAgaWYgKGFyZUhvb2tJbnB1dHNFcXVhbChuZXh0RGVwcywgcHJldkRlcHMpKSB7XG4gICAgICAgIHJldHVybiBwcmV2U3RhdGVbMF07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdmFyIG5leHRWYWx1ZSA9IG5leHRDcmVhdGUoKTtcbiAgaG9vay5tZW1vaXplZFN0YXRlID0gW25leHRWYWx1ZSwgbmV4dERlcHNdO1xuICByZXR1cm4gbmV4dFZhbHVlO1xufVxuXG5mdW5jdGlvbiBtb3VudERlZmVycmVkVmFsdWUodmFsdWUpIHtcbiAgdmFyIF9tb3VudFN0YXRlID0gbW91bnRTdGF0ZSh2YWx1ZSksXG4gICAgICBwcmV2VmFsdWUgPSBfbW91bnRTdGF0ZVswXSxcbiAgICAgIHNldFZhbHVlID0gX21vdW50U3RhdGVbMV07XG5cbiAgbW91bnRFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIHZhciBwcmV2VHJhbnNpdGlvbiA9IFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnJDEudHJhbnNpdGlvbjtcbiAgICBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZyQxLnRyYW5zaXRpb24gPSAxO1xuXG4gICAgdHJ5IHtcbiAgICAgIHNldFZhbHVlKHZhbHVlKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgUmVhY3RDdXJyZW50QmF0Y2hDb25maWckMS50cmFuc2l0aW9uID0gcHJldlRyYW5zaXRpb247XG4gICAgfVxuICB9LCBbdmFsdWVdKTtcbiAgcmV0dXJuIHByZXZWYWx1ZTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlRGVmZXJyZWRWYWx1ZSh2YWx1ZSkge1xuICB2YXIgX3VwZGF0ZVN0YXRlID0gdXBkYXRlU3RhdGUoKSxcbiAgICAgIHByZXZWYWx1ZSA9IF91cGRhdGVTdGF0ZVswXSxcbiAgICAgIHNldFZhbHVlID0gX3VwZGF0ZVN0YXRlWzFdO1xuXG4gIHVwZGF0ZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHByZXZUcmFuc2l0aW9uID0gUmVhY3RDdXJyZW50QmF0Y2hDb25maWckMS50cmFuc2l0aW9uO1xuICAgIFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnJDEudHJhbnNpdGlvbiA9IDE7XG5cbiAgICB0cnkge1xuICAgICAgc2V0VmFsdWUodmFsdWUpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZyQxLnRyYW5zaXRpb24gPSBwcmV2VHJhbnNpdGlvbjtcbiAgICB9XG4gIH0sIFt2YWx1ZV0pO1xuICByZXR1cm4gcHJldlZhbHVlO1xufVxuXG5mdW5jdGlvbiByZXJlbmRlckRlZmVycmVkVmFsdWUodmFsdWUpIHtcbiAgdmFyIF9yZXJlbmRlclN0YXRlID0gcmVyZW5kZXJTdGF0ZSgpLFxuICAgICAgcHJldlZhbHVlID0gX3JlcmVuZGVyU3RhdGVbMF0sXG4gICAgICBzZXRWYWx1ZSA9IF9yZXJlbmRlclN0YXRlWzFdO1xuXG4gIHVwZGF0ZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHByZXZUcmFuc2l0aW9uID0gUmVhY3RDdXJyZW50QmF0Y2hDb25maWckMS50cmFuc2l0aW9uO1xuICAgIFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnJDEudHJhbnNpdGlvbiA9IDE7XG5cbiAgICB0cnkge1xuICAgICAgc2V0VmFsdWUodmFsdWUpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZyQxLnRyYW5zaXRpb24gPSBwcmV2VHJhbnNpdGlvbjtcbiAgICB9XG4gIH0sIFt2YWx1ZV0pO1xuICByZXR1cm4gcHJldlZhbHVlO1xufVxuXG5mdW5jdGlvbiBzdGFydFRyYW5zaXRpb24oc2V0UGVuZGluZywgY2FsbGJhY2spIHtcbiAgdmFyIHByaW9yaXR5TGV2ZWwgPSBnZXRDdXJyZW50UHJpb3JpdHlMZXZlbCgpO1xuXG4gIHtcbiAgICBydW5XaXRoUHJpb3JpdHkkMShwcmlvcml0eUxldmVsIDwgVXNlckJsb2NraW5nUHJpb3JpdHkkMiA/IFVzZXJCbG9ja2luZ1ByaW9yaXR5JDIgOiBwcmlvcml0eUxldmVsLCBmdW5jdGlvbiAoKSB7XG4gICAgICBzZXRQZW5kaW5nKHRydWUpO1xuICAgIH0pO1xuICAgIHJ1bldpdGhQcmlvcml0eSQxKHByaW9yaXR5TGV2ZWwgPiBOb3JtYWxQcmlvcml0eSQxID8gTm9ybWFsUHJpb3JpdHkkMSA6IHByaW9yaXR5TGV2ZWwsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBwcmV2VHJhbnNpdGlvbiA9IFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnJDEudHJhbnNpdGlvbjtcbiAgICAgIFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnJDEudHJhbnNpdGlvbiA9IDE7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHNldFBlbmRpbmcoZmFsc2UpO1xuICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgUmVhY3RDdXJyZW50QmF0Y2hDb25maWckMS50cmFuc2l0aW9uID0gcHJldlRyYW5zaXRpb247XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gbW91bnRUcmFuc2l0aW9uKCkge1xuICB2YXIgX21vdW50U3RhdGUyID0gbW91bnRTdGF0ZShmYWxzZSksXG4gICAgICBpc1BlbmRpbmcgPSBfbW91bnRTdGF0ZTJbMF0sXG4gICAgICBzZXRQZW5kaW5nID0gX21vdW50U3RhdGUyWzFdOyAvLyBUaGUgYHN0YXJ0YCBtZXRob2QgY2FuIGJlIHN0b3JlZCBvbiBhIHJlZiwgc2luY2UgYHNldFBlbmRpbmdgXG4gIC8vIG5ldmVyIGNoYW5nZXMuXG5cblxuICB2YXIgc3RhcnQgPSBzdGFydFRyYW5zaXRpb24uYmluZChudWxsLCBzZXRQZW5kaW5nKTtcbiAgbW91bnRSZWYoc3RhcnQpO1xuICByZXR1cm4gW3N0YXJ0LCBpc1BlbmRpbmddO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVUcmFuc2l0aW9uKCkge1xuICB2YXIgX3VwZGF0ZVN0YXRlMiA9IHVwZGF0ZVN0YXRlKCksXG4gICAgICBpc1BlbmRpbmcgPSBfdXBkYXRlU3RhdGUyWzBdO1xuXG4gIHZhciBzdGFydFJlZiA9IHVwZGF0ZVJlZigpO1xuICB2YXIgc3RhcnQgPSBzdGFydFJlZi5jdXJyZW50O1xuICByZXR1cm4gW3N0YXJ0LCBpc1BlbmRpbmddO1xufVxuXG5mdW5jdGlvbiByZXJlbmRlclRyYW5zaXRpb24oKSB7XG4gIHZhciBfcmVyZW5kZXJTdGF0ZTIgPSByZXJlbmRlclN0YXRlKCksXG4gICAgICBpc1BlbmRpbmcgPSBfcmVyZW5kZXJTdGF0ZTJbMF07XG5cbiAgdmFyIHN0YXJ0UmVmID0gdXBkYXRlUmVmKCk7XG4gIHZhciBzdGFydCA9IHN0YXJ0UmVmLmN1cnJlbnQ7XG4gIHJldHVybiBbc3RhcnQsIGlzUGVuZGluZ107XG59XG5cbnZhciBpc1VwZGF0aW5nT3BhcXVlVmFsdWVJblJlbmRlclBoYXNlID0gZmFsc2U7XG5mdW5jdGlvbiBnZXRJc1VwZGF0aW5nT3BhcXVlVmFsdWVJblJlbmRlclBoYXNlSW5ERVYoKSB7XG4gIHtcbiAgICByZXR1cm4gaXNVcGRhdGluZ09wYXF1ZVZhbHVlSW5SZW5kZXJQaGFzZTtcbiAgfVxufVxuXG5mdW5jdGlvbiB3YXJuT25PcGFxdWVJZGVudGlmaWVyQWNjZXNzSW5ERVYoZmliZXIpIHtcbiAge1xuICAgIC8vIFRPRE86IFNob3VsZCB3YXJuIGluIGVmZmVjdHMgYW5kIGNhbGxiYWNrcywgdG9vXG4gICAgdmFyIG5hbWUgPSBnZXRDb21wb25lbnROYW1lKGZpYmVyLnR5cGUpIHx8ICdVbmtub3duJztcblxuICAgIGlmIChnZXRJc1JlbmRlcmluZygpICYmICFkaWRXYXJuQWJvdXRVc2VPcGFxdWVJZGVudGlmaWVyW25hbWVdKSB7XG4gICAgICBlcnJvcignVGhlIG9iamVjdCBwYXNzZWQgYmFjayBmcm9tIHVzZU9wYXF1ZUlkZW50aWZpZXIgaXMgbWVhbnQgdG8gYmUgJyArICdwYXNzZWQgdGhyb3VnaCB0byBhdHRyaWJ1dGVzIG9ubHkuIERvIG5vdCByZWFkIHRoZSAnICsgJ3ZhbHVlIGRpcmVjdGx5LicpO1xuXG4gICAgICBkaWRXYXJuQWJvdXRVc2VPcGFxdWVJZGVudGlmaWVyW25hbWVdID0gdHJ1ZTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gbW91bnRPcGFxdWVJZGVudGlmaWVyKCkge1xuICB2YXIgbWFrZUlkID0gIG1ha2VDbGllbnRJZEluREVWLmJpbmQobnVsbCwgd2Fybk9uT3BhcXVlSWRlbnRpZmllckFjY2Vzc0luREVWLmJpbmQobnVsbCwgY3VycmVudGx5UmVuZGVyaW5nRmliZXIkMSkpIDtcblxuICBpZiAoZ2V0SXNIeWRyYXRpbmcoKSkge1xuICAgIHZhciBkaWRVcGdyYWRlID0gZmFsc2U7XG4gICAgdmFyIGZpYmVyID0gY3VycmVudGx5UmVuZGVyaW5nRmliZXIkMTtcblxuICAgIHZhciByZWFkVmFsdWUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAoIWRpZFVwZ3JhZGUpIHtcbiAgICAgICAgLy8gT25seSB1cGdyYWRlIG9uY2UuIFRoaXMgd29ya3MgZXZlbiBpbnNpZGUgdGhlIHJlbmRlciBwaGFzZSBiZWNhdXNlXG4gICAgICAgIC8vIHRoZSB1cGRhdGUgaXMgYWRkZWQgdG8gYSBzaGFyZWQgcXVldWUsIHdoaWNoIG91dGxhc3RzIHRoZVxuICAgICAgICAvLyBpbi1wcm9ncmVzcyByZW5kZXIuXG4gICAgICAgIGRpZFVwZ3JhZGUgPSB0cnVlO1xuXG4gICAgICAgIHtcbiAgICAgICAgICBpc1VwZGF0aW5nT3BhcXVlVmFsdWVJblJlbmRlclBoYXNlID0gdHJ1ZTtcbiAgICAgICAgICBzZXRJZChtYWtlSWQoKSk7XG4gICAgICAgICAgaXNVcGRhdGluZ09wYXF1ZVZhbHVlSW5SZW5kZXJQaGFzZSA9IGZhbHNlO1xuICAgICAgICAgIHdhcm5Pbk9wYXF1ZUlkZW50aWZpZXJBY2Nlc3NJbkRFVihmaWJlcik7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAge1xuICAgICAgICB7XG4gICAgICAgICAgdGhyb3cgRXJyb3IoIFwiVGhlIG9iamVjdCBwYXNzZWQgYmFjayBmcm9tIHVzZU9wYXF1ZUlkZW50aWZpZXIgaXMgbWVhbnQgdG8gYmUgcGFzc2VkIHRocm91Z2ggdG8gYXR0cmlidXRlcyBvbmx5LiBEbyBub3QgcmVhZCB0aGUgdmFsdWUgZGlyZWN0bHkuXCIgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG5cbiAgICB2YXIgaWQgPSBtYWtlT3BhcXVlSHlkcmF0aW5nT2JqZWN0KHJlYWRWYWx1ZSk7XG4gICAgdmFyIHNldElkID0gbW91bnRTdGF0ZShpZClbMV07XG5cbiAgICBpZiAoKGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyJDEubW9kZSAmIEJsb2NraW5nTW9kZSkgPT09IE5vTW9kZSkge1xuICAgICAgY3VycmVudGx5UmVuZGVyaW5nRmliZXIkMS5mbGFncyB8PSBVcGRhdGUgfCBQYXNzaXZlO1xuICAgICAgcHVzaEVmZmVjdChIYXNFZmZlY3QgfCBQYXNzaXZlJDEsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgc2V0SWQobWFrZUlkKCkpO1xuICAgICAgfSwgdW5kZWZpbmVkLCBudWxsKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaWQ7XG4gIH0gZWxzZSB7XG4gICAgdmFyIF9pZCA9IG1ha2VJZCgpO1xuXG4gICAgbW91bnRTdGF0ZShfaWQpO1xuICAgIHJldHVybiBfaWQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gdXBkYXRlT3BhcXVlSWRlbnRpZmllcigpIHtcbiAgdmFyIGlkID0gdXBkYXRlU3RhdGUoKVswXTtcbiAgcmV0dXJuIGlkO1xufVxuXG5mdW5jdGlvbiByZXJlbmRlck9wYXF1ZUlkZW50aWZpZXIoKSB7XG4gIHZhciBpZCA9IHJlcmVuZGVyU3RhdGUoKVswXTtcbiAgcmV0dXJuIGlkO1xufVxuXG5mdW5jdGlvbiBkaXNwYXRjaEFjdGlvbihmaWJlciwgcXVldWUsIGFjdGlvbikge1xuICB7XG4gICAgaWYgKHR5cGVvZiBhcmd1bWVudHNbM10gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGVycm9yKFwiU3RhdGUgdXBkYXRlcyBmcm9tIHRoZSB1c2VTdGF0ZSgpIGFuZCB1c2VSZWR1Y2VyKCkgSG9va3MgZG9uJ3Qgc3VwcG9ydCB0aGUgXCIgKyAnc2Vjb25kIGNhbGxiYWNrIGFyZ3VtZW50LiBUbyBleGVjdXRlIGEgc2lkZSBlZmZlY3QgYWZ0ZXIgJyArICdyZW5kZXJpbmcsIGRlY2xhcmUgaXQgaW4gdGhlIGNvbXBvbmVudCBib2R5IHdpdGggdXNlRWZmZWN0KCkuJyk7XG4gICAgfVxuICB9XG5cbiAgdmFyIGV2ZW50VGltZSA9IHJlcXVlc3RFdmVudFRpbWUoKTtcbiAgdmFyIGxhbmUgPSByZXF1ZXN0VXBkYXRlTGFuZShmaWJlcik7XG4gIHZhciB1cGRhdGUgPSB7XG4gICAgbGFuZTogbGFuZSxcbiAgICBhY3Rpb246IGFjdGlvbixcbiAgICBlYWdlclJlZHVjZXI6IG51bGwsXG4gICAgZWFnZXJTdGF0ZTogbnVsbCxcbiAgICBuZXh0OiBudWxsXG4gIH07IC8vIEFwcGVuZCB0aGUgdXBkYXRlIHRvIHRoZSBlbmQgb2YgdGhlIGxpc3QuXG5cbiAgdmFyIHBlbmRpbmcgPSBxdWV1ZS5wZW5kaW5nO1xuXG4gIGlmIChwZW5kaW5nID09PSBudWxsKSB7XG4gICAgLy8gVGhpcyBpcyB0aGUgZmlyc3QgdXBkYXRlLiBDcmVhdGUgYSBjaXJjdWxhciBsaXN0LlxuICAgIHVwZGF0ZS5uZXh0ID0gdXBkYXRlO1xuICB9IGVsc2Uge1xuICAgIHVwZGF0ZS5uZXh0ID0gcGVuZGluZy5uZXh0O1xuICAgIHBlbmRpbmcubmV4dCA9IHVwZGF0ZTtcbiAgfVxuXG4gIHF1ZXVlLnBlbmRpbmcgPSB1cGRhdGU7XG4gIHZhciBhbHRlcm5hdGUgPSBmaWJlci5hbHRlcm5hdGU7XG5cbiAgaWYgKGZpYmVyID09PSBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxIHx8IGFsdGVybmF0ZSAhPT0gbnVsbCAmJiBhbHRlcm5hdGUgPT09IGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyJDEpIHtcbiAgICAvLyBUaGlzIGlzIGEgcmVuZGVyIHBoYXNlIHVwZGF0ZS4gU3Rhc2ggaXQgaW4gYSBsYXppbHktY3JlYXRlZCBtYXAgb2ZcbiAgICAvLyBxdWV1ZSAtPiBsaW5rZWQgbGlzdCBvZiB1cGRhdGVzLiBBZnRlciB0aGlzIHJlbmRlciBwYXNzLCB3ZSdsbCByZXN0YXJ0XG4gICAgLy8gYW5kIGFwcGx5IHRoZSBzdGFzaGVkIHVwZGF0ZXMgb24gdG9wIG9mIHRoZSB3b3JrLWluLXByb2dyZXNzIGhvb2suXG4gICAgZGlkU2NoZWR1bGVSZW5kZXJQaGFzZVVwZGF0ZUR1cmluZ1RoaXNQYXNzID0gZGlkU2NoZWR1bGVSZW5kZXJQaGFzZVVwZGF0ZSA9IHRydWU7XG4gIH0gZWxzZSB7XG4gICAgaWYgKGZpYmVyLmxhbmVzID09PSBOb0xhbmVzICYmIChhbHRlcm5hdGUgPT09IG51bGwgfHwgYWx0ZXJuYXRlLmxhbmVzID09PSBOb0xhbmVzKSkge1xuICAgICAgLy8gVGhlIHF1ZXVlIGlzIGN1cnJlbnRseSBlbXB0eSwgd2hpY2ggbWVhbnMgd2UgY2FuIGVhZ2VybHkgY29tcHV0ZSB0aGVcbiAgICAgIC8vIG5leHQgc3RhdGUgYmVmb3JlIGVudGVyaW5nIHRoZSByZW5kZXIgcGhhc2UuIElmIHRoZSBuZXcgc3RhdGUgaXMgdGhlXG4gICAgICAvLyBzYW1lIGFzIHRoZSBjdXJyZW50IHN0YXRlLCB3ZSBtYXkgYmUgYWJsZSB0byBiYWlsIG91dCBlbnRpcmVseS5cbiAgICAgIHZhciBsYXN0UmVuZGVyZWRSZWR1Y2VyID0gcXVldWUubGFzdFJlbmRlcmVkUmVkdWNlcjtcblxuICAgICAgaWYgKGxhc3RSZW5kZXJlZFJlZHVjZXIgIT09IG51bGwpIHtcbiAgICAgICAgdmFyIHByZXZEaXNwYXRjaGVyO1xuXG4gICAgICAgIHtcbiAgICAgICAgICBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50O1xuICAgICAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uVXBkYXRlSW5ERVY7XG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgIHZhciBjdXJyZW50U3RhdGUgPSBxdWV1ZS5sYXN0UmVuZGVyZWRTdGF0ZTtcbiAgICAgICAgICB2YXIgZWFnZXJTdGF0ZSA9IGxhc3RSZW5kZXJlZFJlZHVjZXIoY3VycmVudFN0YXRlLCBhY3Rpb24pOyAvLyBTdGFzaCB0aGUgZWFnZXJseSBjb21wdXRlZCBzdGF0ZSwgYW5kIHRoZSByZWR1Y2VyIHVzZWQgdG8gY29tcHV0ZVxuICAgICAgICAgIC8vIGl0LCBvbiB0aGUgdXBkYXRlIG9iamVjdC4gSWYgdGhlIHJlZHVjZXIgaGFzbid0IGNoYW5nZWQgYnkgdGhlXG4gICAgICAgICAgLy8gdGltZSB3ZSBlbnRlciB0aGUgcmVuZGVyIHBoYXNlLCB0aGVuIHRoZSBlYWdlciBzdGF0ZSBjYW4gYmUgdXNlZFxuICAgICAgICAgIC8vIHdpdGhvdXQgY2FsbGluZyB0aGUgcmVkdWNlciBhZ2Fpbi5cblxuICAgICAgICAgIHVwZGF0ZS5lYWdlclJlZHVjZXIgPSBsYXN0UmVuZGVyZWRSZWR1Y2VyO1xuICAgICAgICAgIHVwZGF0ZS5lYWdlclN0YXRlID0gZWFnZXJTdGF0ZTtcblxuICAgICAgICAgIGlmIChvYmplY3RJcyhlYWdlclN0YXRlLCBjdXJyZW50U3RhdGUpKSB7XG4gICAgICAgICAgICAvLyBGYXN0IHBhdGguIFdlIGNhbiBiYWlsIG91dCB3aXRob3V0IHNjaGVkdWxpbmcgUmVhY3QgdG8gcmUtcmVuZGVyLlxuICAgICAgICAgICAgLy8gSXQncyBzdGlsbCBwb3NzaWJsZSB0aGF0IHdlJ2xsIG5lZWQgdG8gcmViYXNlIHRoaXMgdXBkYXRlIGxhdGVyLFxuICAgICAgICAgICAgLy8gaWYgdGhlIGNvbXBvbmVudCByZS1yZW5kZXJzIGZvciBhIGRpZmZlcmVudCByZWFzb24gYW5kIGJ5IHRoYXRcbiAgICAgICAgICAgIC8vIHRpbWUgdGhlIHJlZHVjZXIgaGFzIGNoYW5nZWQuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnJvcikgey8vIFN1cHByZXNzIHRoZSBlcnJvci4gSXQgd2lsbCB0aHJvdyBhZ2FpbiBpbiB0aGUgcmVuZGVyIHBoYXNlLlxuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAge1xuICAgICAgLy8gJEZsb3dFeHBlY3RlZEVycm9yIC0gamVzdCBpc24ndCBhIGdsb2JhbCwgYW5kIGlzbid0IHJlY29nbml6ZWQgb3V0c2lkZSBvZiB0ZXN0c1xuICAgICAgaWYgKCd1bmRlZmluZWQnICE9PSB0eXBlb2YgamVzdCkge1xuICAgICAgICB3YXJuSWZOb3RTY29wZWRXaXRoTWF0Y2hpbmdBY3QoZmliZXIpO1xuICAgICAgICB3YXJuSWZOb3RDdXJyZW50bHlBY3RpbmdVcGRhdGVzSW5EZXYoZmliZXIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHNjaGVkdWxlVXBkYXRlT25GaWJlcihmaWJlciwgbGFuZSwgZXZlbnRUaW1lKTtcbiAgfVxufVxuXG52YXIgQ29udGV4dE9ubHlEaXNwYXRjaGVyID0ge1xuICByZWFkQ29udGV4dDogcmVhZENvbnRleHQsXG4gIHVzZUNhbGxiYWNrOiB0aHJvd0ludmFsaWRIb29rRXJyb3IsXG4gIHVzZUNvbnRleHQ6IHRocm93SW52YWxpZEhvb2tFcnJvcixcbiAgdXNlRWZmZWN0OiB0aHJvd0ludmFsaWRIb29rRXJyb3IsXG4gIHVzZUltcGVyYXRpdmVIYW5kbGU6IHRocm93SW52YWxpZEhvb2tFcnJvcixcbiAgdXNlTGF5b3V0RWZmZWN0OiB0aHJvd0ludmFsaWRIb29rRXJyb3IsXG4gIHVzZU1lbW86IHRocm93SW52YWxpZEhvb2tFcnJvcixcbiAgdXNlUmVkdWNlcjogdGhyb3dJbnZhbGlkSG9va0Vycm9yLFxuICB1c2VSZWY6IHRocm93SW52YWxpZEhvb2tFcnJvcixcbiAgdXNlU3RhdGU6IHRocm93SW52YWxpZEhvb2tFcnJvcixcbiAgdXNlRGVidWdWYWx1ZTogdGhyb3dJbnZhbGlkSG9va0Vycm9yLFxuICB1c2VEZWZlcnJlZFZhbHVlOiB0aHJvd0ludmFsaWRIb29rRXJyb3IsXG4gIHVzZVRyYW5zaXRpb246IHRocm93SW52YWxpZEhvb2tFcnJvcixcbiAgdXNlTXV0YWJsZVNvdXJjZTogdGhyb3dJbnZhbGlkSG9va0Vycm9yLFxuICB1c2VPcGFxdWVJZGVudGlmaWVyOiB0aHJvd0ludmFsaWRIb29rRXJyb3IsXG4gIHVuc3RhYmxlX2lzTmV3UmVjb25jaWxlcjogZW5hYmxlTmV3UmVjb25jaWxlclxufTtcbnZhciBIb29rc0Rpc3BhdGNoZXJPbk1vdW50SW5ERVYgPSBudWxsO1xudmFyIEhvb2tzRGlzcGF0Y2hlck9uTW91bnRXaXRoSG9va1R5cGVzSW5ERVYgPSBudWxsO1xudmFyIEhvb2tzRGlzcGF0Y2hlck9uVXBkYXRlSW5ERVYgPSBudWxsO1xudmFyIEhvb2tzRGlzcGF0Y2hlck9uUmVyZW5kZXJJbkRFViA9IG51bGw7XG52YXIgSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uTW91bnRJbkRFViA9IG51bGw7XG52YXIgSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uVXBkYXRlSW5ERVYgPSBudWxsO1xudmFyIEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPblJlcmVuZGVySW5ERVYgPSBudWxsO1xuXG57XG4gIHZhciB3YXJuSW52YWxpZENvbnRleHRBY2Nlc3MgPSBmdW5jdGlvbiAoKSB7XG4gICAgZXJyb3IoJ0NvbnRleHQgY2FuIG9ubHkgYmUgcmVhZCB3aGlsZSBSZWFjdCBpcyByZW5kZXJpbmcuICcgKyAnSW4gY2xhc3NlcywgeW91IGNhbiByZWFkIGl0IGluIHRoZSByZW5kZXIgbWV0aG9kIG9yIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcy4gJyArICdJbiBmdW5jdGlvbiBjb21wb25lbnRzLCB5b3UgY2FuIHJlYWQgaXQgZGlyZWN0bHkgaW4gdGhlIGZ1bmN0aW9uIGJvZHksIGJ1dCBub3QgJyArICdpbnNpZGUgSG9va3MgbGlrZSB1c2VSZWR1Y2VyKCkgb3IgdXNlTWVtbygpLicpO1xuICB9O1xuXG4gIHZhciB3YXJuSW52YWxpZEhvb2tBY2Nlc3MgPSBmdW5jdGlvbiAoKSB7XG4gICAgZXJyb3IoJ0RvIG5vdCBjYWxsIEhvb2tzIGluc2lkZSB1c2VFZmZlY3QoLi4uKSwgdXNlTWVtbyguLi4pLCBvciBvdGhlciBidWlsdC1pbiBIb29rcy4gJyArICdZb3UgY2FuIG9ubHkgY2FsbCBIb29rcyBhdCB0aGUgdG9wIGxldmVsIG9mIHlvdXIgUmVhY3QgZnVuY3Rpb24uICcgKyAnRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSAnICsgJ2h0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9ydWxlcy1vZi1ob29rcycpO1xuICB9O1xuXG4gIEhvb2tzRGlzcGF0Y2hlck9uTW91bnRJbkRFViA9IHtcbiAgICByZWFkQ29udGV4dDogZnVuY3Rpb24gKGNvbnRleHQsIG9ic2VydmVkQml0cykge1xuICAgICAgcmV0dXJuIHJlYWRDb250ZXh0KGNvbnRleHQsIG9ic2VydmVkQml0cyk7XG4gICAgfSxcbiAgICB1c2VDYWxsYmFjazogZnVuY3Rpb24gKGNhbGxiYWNrLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VDYWxsYmFjayc7XG4gICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgY2hlY2tEZXBzQXJlQXJyYXlEZXYoZGVwcyk7XG4gICAgICByZXR1cm4gbW91bnRDYWxsYmFjayhjYWxsYmFjaywgZGVwcyk7XG4gICAgfSxcbiAgICB1c2VDb250ZXh0OiBmdW5jdGlvbiAoY29udGV4dCwgb2JzZXJ2ZWRCaXRzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VDb250ZXh0JztcbiAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gcmVhZENvbnRleHQoY29udGV4dCwgb2JzZXJ2ZWRCaXRzKTtcbiAgICB9LFxuICAgIHVzZUVmZmVjdDogZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlRWZmZWN0JztcbiAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICBjaGVja0RlcHNBcmVBcnJheURldihkZXBzKTtcbiAgICAgIHJldHVybiBtb3VudEVmZmVjdChjcmVhdGUsIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZTogZnVuY3Rpb24gKHJlZiwgY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VJbXBlcmF0aXZlSGFuZGxlJztcbiAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICBjaGVja0RlcHNBcmVBcnJheURldihkZXBzKTtcbiAgICAgIHJldHVybiBtb3VudEltcGVyYXRpdmVIYW5kbGUocmVmLCBjcmVhdGUsIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlTGF5b3V0RWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VMYXlvdXRFZmZlY3QnO1xuICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgIGNoZWNrRGVwc0FyZUFycmF5RGV2KGRlcHMpO1xuICAgICAgcmV0dXJuIG1vdW50TGF5b3V0RWZmZWN0KGNyZWF0ZSwgZGVwcyk7XG4gICAgfSxcbiAgICB1c2VNZW1vOiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VNZW1vJztcbiAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICBjaGVja0RlcHNBcmVBcnJheURldihkZXBzKTtcbiAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50O1xuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25Nb3VudEluREVWO1xuXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gbW91bnRNZW1vKGNyZWF0ZSwgZGVwcyk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IHByZXZEaXNwYXRjaGVyO1xuICAgICAgfVxuICAgIH0sXG4gICAgdXNlUmVkdWNlcjogZnVuY3Rpb24gKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZVJlZHVjZXInO1xuICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50O1xuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25Nb3VudEluREVWO1xuXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gbW91bnRSZWR1Y2VyKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgIH1cbiAgICB9LFxuICAgIHVzZVJlZjogZnVuY3Rpb24gKGluaXRpYWxWYWx1ZSkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlUmVmJztcbiAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnRSZWYoaW5pdGlhbFZhbHVlKTtcbiAgICB9LFxuICAgIHVzZVN0YXRlOiBmdW5jdGlvbiAoaW5pdGlhbFN0YXRlKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VTdGF0ZSc7XG4gICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQ7XG4gICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPbk1vdW50SW5ERVY7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBtb3VudFN0YXRlKGluaXRpYWxTdGF0ZSk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IHByZXZEaXNwYXRjaGVyO1xuICAgICAgfVxuICAgIH0sXG4gICAgdXNlRGVidWdWYWx1ZTogZnVuY3Rpb24gKHZhbHVlLCBmb3JtYXR0ZXJGbikge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlRGVidWdWYWx1ZSc7XG4gICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIG1vdW50RGVidWdWYWx1ZSgpO1xuICAgIH0sXG4gICAgdXNlRGVmZXJyZWRWYWx1ZTogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VEZWZlcnJlZFZhbHVlJztcbiAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnREZWZlcnJlZFZhbHVlKHZhbHVlKTtcbiAgICB9LFxuICAgIHVzZVRyYW5zaXRpb246IGZ1bmN0aW9uICgpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZVRyYW5zaXRpb24nO1xuICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiBtb3VudFRyYW5zaXRpb24oKTtcbiAgICB9LFxuICAgIHVzZU11dGFibGVTb3VyY2U6IGZ1bmN0aW9uIChzb3VyY2UsIGdldFNuYXBzaG90LCBzdWJzY3JpYmUpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZU11dGFibGVTb3VyY2UnO1xuICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiBtb3VudE11dGFibGVTb3VyY2Uoc291cmNlLCBnZXRTbmFwc2hvdCwgc3Vic2NyaWJlKTtcbiAgICB9LFxuICAgIHVzZU9wYXF1ZUlkZW50aWZpZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZU9wYXF1ZUlkZW50aWZpZXInO1xuICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiBtb3VudE9wYXF1ZUlkZW50aWZpZXIoKTtcbiAgICB9LFxuICAgIHVuc3RhYmxlX2lzTmV3UmVjb25jaWxlcjogZW5hYmxlTmV3UmVjb25jaWxlclxuICB9O1xuICBIb29rc0Rpc3BhdGNoZXJPbk1vdW50V2l0aEhvb2tUeXBlc0luREVWID0ge1xuICAgIHJlYWRDb250ZXh0OiBmdW5jdGlvbiAoY29udGV4dCwgb2JzZXJ2ZWRCaXRzKSB7XG4gICAgICByZXR1cm4gcmVhZENvbnRleHQoY29udGV4dCwgb2JzZXJ2ZWRCaXRzKTtcbiAgICB9LFxuICAgIHVzZUNhbGxiYWNrOiBmdW5jdGlvbiAoY2FsbGJhY2ssIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUNhbGxiYWNrJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIG1vdW50Q2FsbGJhY2soY2FsbGJhY2ssIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlQ29udGV4dDogZnVuY3Rpb24gKGNvbnRleHQsIG9ic2VydmVkQml0cykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlQ29udGV4dCc7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiByZWFkQ29udGV4dChjb250ZXh0LCBvYnNlcnZlZEJpdHMpO1xuICAgIH0sXG4gICAgdXNlRWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VFZmZlY3QnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnRFZmZlY3QoY3JlYXRlLCBkZXBzKTtcbiAgICB9LFxuICAgIHVzZUltcGVyYXRpdmVIYW5kbGU6IGZ1bmN0aW9uIChyZWYsIGNyZWF0ZSwgZGVwcykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlSW1wZXJhdGl2ZUhhbmRsZSc7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiBtb3VudEltcGVyYXRpdmVIYW5kbGUocmVmLCBjcmVhdGUsIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlTGF5b3V0RWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VMYXlvdXRFZmZlY3QnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnRMYXlvdXRFZmZlY3QoY3JlYXRlLCBkZXBzKTtcbiAgICB9LFxuICAgIHVzZU1lbW86IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZU1lbW8nO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudDtcbiAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uTW91bnRJbkRFVjtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIG1vdW50TWVtbyhjcmVhdGUsIGRlcHMpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgIH1cbiAgICB9LFxuICAgIHVzZVJlZHVjZXI6IGZ1bmN0aW9uIChyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VSZWR1Y2VyJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQ7XG4gICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPbk1vdW50SW5ERVY7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBtb3VudFJlZHVjZXIocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IHByZXZEaXNwYXRjaGVyO1xuICAgICAgfVxuICAgIH0sXG4gICAgdXNlUmVmOiBmdW5jdGlvbiAoaW5pdGlhbFZhbHVlKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VSZWYnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnRSZWYoaW5pdGlhbFZhbHVlKTtcbiAgICB9LFxuICAgIHVzZVN0YXRlOiBmdW5jdGlvbiAoaW5pdGlhbFN0YXRlKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VTdGF0ZSc7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50O1xuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25Nb3VudEluREVWO1xuXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gbW91bnRTdGF0ZShpbml0aWFsU3RhdGUpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgIH1cbiAgICB9LFxuICAgIHVzZURlYnVnVmFsdWU6IGZ1bmN0aW9uICh2YWx1ZSwgZm9ybWF0dGVyRm4pIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZURlYnVnVmFsdWUnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnREZWJ1Z1ZhbHVlKCk7XG4gICAgfSxcbiAgICB1c2VEZWZlcnJlZFZhbHVlOiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZURlZmVycmVkVmFsdWUnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnREZWZlcnJlZFZhbHVlKHZhbHVlKTtcbiAgICB9LFxuICAgIHVzZVRyYW5zaXRpb246IGZ1bmN0aW9uICgpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZVRyYW5zaXRpb24nO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnRUcmFuc2l0aW9uKCk7XG4gICAgfSxcbiAgICB1c2VNdXRhYmxlU291cmNlOiBmdW5jdGlvbiAoc291cmNlLCBnZXRTbmFwc2hvdCwgc3Vic2NyaWJlKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VNdXRhYmxlU291cmNlJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIG1vdW50TXV0YWJsZVNvdXJjZShzb3VyY2UsIGdldFNuYXBzaG90LCBzdWJzY3JpYmUpO1xuICAgIH0sXG4gICAgdXNlT3BhcXVlSWRlbnRpZmllcjogZnVuY3Rpb24gKCkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlT3BhcXVlSWRlbnRpZmllcic7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiBtb3VudE9wYXF1ZUlkZW50aWZpZXIoKTtcbiAgICB9LFxuICAgIHVuc3RhYmxlX2lzTmV3UmVjb25jaWxlcjogZW5hYmxlTmV3UmVjb25jaWxlclxuICB9O1xuICBIb29rc0Rpc3BhdGNoZXJPblVwZGF0ZUluREVWID0ge1xuICAgIHJlYWRDb250ZXh0OiBmdW5jdGlvbiAoY29udGV4dCwgb2JzZXJ2ZWRCaXRzKSB7XG4gICAgICByZXR1cm4gcmVhZENvbnRleHQoY29udGV4dCwgb2JzZXJ2ZWRCaXRzKTtcbiAgICB9LFxuICAgIHVzZUNhbGxiYWNrOiBmdW5jdGlvbiAoY2FsbGJhY2ssIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUNhbGxiYWNrJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZUNhbGxiYWNrKGNhbGxiYWNrLCBkZXBzKTtcbiAgICB9LFxuICAgIHVzZUNvbnRleHQ6IGZ1bmN0aW9uIChjb250ZXh0LCBvYnNlcnZlZEJpdHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUNvbnRleHQnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gcmVhZENvbnRleHQoY29udGV4dCwgb2JzZXJ2ZWRCaXRzKTtcbiAgICB9LFxuICAgIHVzZUVmZmVjdDogZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlRWZmZWN0JztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZUVmZmVjdChjcmVhdGUsIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZTogZnVuY3Rpb24gKHJlZiwgY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VJbXBlcmF0aXZlSGFuZGxlJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZUltcGVyYXRpdmVIYW5kbGUocmVmLCBjcmVhdGUsIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlTGF5b3V0RWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VMYXlvdXRFZmZlY3QnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlTGF5b3V0RWZmZWN0KGNyZWF0ZSwgZGVwcyk7XG4gICAgfSxcbiAgICB1c2VNZW1vOiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VNZW1vJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQ7XG4gICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPblVwZGF0ZUluREVWO1xuXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gdXBkYXRlTWVtbyhjcmVhdGUsIGRlcHMpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgIH1cbiAgICB9LFxuICAgIHVzZVJlZHVjZXI6IGZ1bmN0aW9uIChyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VSZWR1Y2VyJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQ7XG4gICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPblVwZGF0ZUluREVWO1xuXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gdXBkYXRlUmVkdWNlcihyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICB9XG4gICAgfSxcbiAgICB1c2VSZWY6IGZ1bmN0aW9uIChpbml0aWFsVmFsdWUpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZVJlZic7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVSZWYoKTtcbiAgICB9LFxuICAgIHVzZVN0YXRlOiBmdW5jdGlvbiAoaW5pdGlhbFN0YXRlKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VTdGF0ZSc7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50O1xuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25VcGRhdGVJbkRFVjtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZVN0YXRlKGluaXRpYWxTdGF0ZSk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IHByZXZEaXNwYXRjaGVyO1xuICAgICAgfVxuICAgIH0sXG4gICAgdXNlRGVidWdWYWx1ZTogZnVuY3Rpb24gKHZhbHVlLCBmb3JtYXR0ZXJGbikge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlRGVidWdWYWx1ZSc7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVEZWJ1Z1ZhbHVlKCk7XG4gICAgfSxcbiAgICB1c2VEZWZlcnJlZFZhbHVlOiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZURlZmVycmVkVmFsdWUnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlRGVmZXJyZWRWYWx1ZSh2YWx1ZSk7XG4gICAgfSxcbiAgICB1c2VUcmFuc2l0aW9uOiBmdW5jdGlvbiAoKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VUcmFuc2l0aW9uJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZVRyYW5zaXRpb24oKTtcbiAgICB9LFxuICAgIHVzZU11dGFibGVTb3VyY2U6IGZ1bmN0aW9uIChzb3VyY2UsIGdldFNuYXBzaG90LCBzdWJzY3JpYmUpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZU11dGFibGVTb3VyY2UnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlTXV0YWJsZVNvdXJjZShzb3VyY2UsIGdldFNuYXBzaG90LCBzdWJzY3JpYmUpO1xuICAgIH0sXG4gICAgdXNlT3BhcXVlSWRlbnRpZmllcjogZnVuY3Rpb24gKCkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlT3BhcXVlSWRlbnRpZmllcic7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVPcGFxdWVJZGVudGlmaWVyKCk7XG4gICAgfSxcbiAgICB1bnN0YWJsZV9pc05ld1JlY29uY2lsZXI6IGVuYWJsZU5ld1JlY29uY2lsZXJcbiAgfTtcbiAgSG9va3NEaXNwYXRjaGVyT25SZXJlbmRlckluREVWID0ge1xuICAgIHJlYWRDb250ZXh0OiBmdW5jdGlvbiAoY29udGV4dCwgb2JzZXJ2ZWRCaXRzKSB7XG4gICAgICByZXR1cm4gcmVhZENvbnRleHQoY29udGV4dCwgb2JzZXJ2ZWRCaXRzKTtcbiAgICB9LFxuICAgIHVzZUNhbGxiYWNrOiBmdW5jdGlvbiAoY2FsbGJhY2ssIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUNhbGxiYWNrJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZUNhbGxiYWNrKGNhbGxiYWNrLCBkZXBzKTtcbiAgICB9LFxuICAgIHVzZUNvbnRleHQ6IGZ1bmN0aW9uIChjb250ZXh0LCBvYnNlcnZlZEJpdHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUNvbnRleHQnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gcmVhZENvbnRleHQoY29udGV4dCwgb2JzZXJ2ZWRCaXRzKTtcbiAgICB9LFxuICAgIHVzZUVmZmVjdDogZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlRWZmZWN0JztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZUVmZmVjdChjcmVhdGUsIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZTogZnVuY3Rpb24gKHJlZiwgY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VJbXBlcmF0aXZlSGFuZGxlJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZUltcGVyYXRpdmVIYW5kbGUocmVmLCBjcmVhdGUsIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlTGF5b3V0RWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VMYXlvdXRFZmZlY3QnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlTGF5b3V0RWZmZWN0KGNyZWF0ZSwgZGVwcyk7XG4gICAgfSxcbiAgICB1c2VNZW1vOiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VNZW1vJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQ7XG4gICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPblJlcmVuZGVySW5ERVY7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiB1cGRhdGVNZW1vKGNyZWF0ZSwgZGVwcyk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IHByZXZEaXNwYXRjaGVyO1xuICAgICAgfVxuICAgIH0sXG4gICAgdXNlUmVkdWNlcjogZnVuY3Rpb24gKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZVJlZHVjZXInO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudDtcbiAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uUmVyZW5kZXJJbkRFVjtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHJlcmVuZGVyUmVkdWNlcihyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICB9XG4gICAgfSxcbiAgICB1c2VSZWY6IGZ1bmN0aW9uIChpbml0aWFsVmFsdWUpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZVJlZic7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVSZWYoKTtcbiAgICB9LFxuICAgIHVzZVN0YXRlOiBmdW5jdGlvbiAoaW5pdGlhbFN0YXRlKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VTdGF0ZSc7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50O1xuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25SZXJlbmRlckluREVWO1xuXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gcmVyZW5kZXJTdGF0ZShpbml0aWFsU3RhdGUpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgIH1cbiAgICB9LFxuICAgIHVzZURlYnVnVmFsdWU6IGZ1bmN0aW9uICh2YWx1ZSwgZm9ybWF0dGVyRm4pIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZURlYnVnVmFsdWUnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlRGVidWdWYWx1ZSgpO1xuICAgIH0sXG4gICAgdXNlRGVmZXJyZWRWYWx1ZTogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VEZWZlcnJlZFZhbHVlJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHJlcmVuZGVyRGVmZXJyZWRWYWx1ZSh2YWx1ZSk7XG4gICAgfSxcbiAgICB1c2VUcmFuc2l0aW9uOiBmdW5jdGlvbiAoKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VUcmFuc2l0aW9uJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHJlcmVuZGVyVHJhbnNpdGlvbigpO1xuICAgIH0sXG4gICAgdXNlTXV0YWJsZVNvdXJjZTogZnVuY3Rpb24gKHNvdXJjZSwgZ2V0U25hcHNob3QsIHN1YnNjcmliZSkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlTXV0YWJsZVNvdXJjZSc7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVNdXRhYmxlU291cmNlKHNvdXJjZSwgZ2V0U25hcHNob3QsIHN1YnNjcmliZSk7XG4gICAgfSxcbiAgICB1c2VPcGFxdWVJZGVudGlmaWVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VPcGFxdWVJZGVudGlmaWVyJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHJlcmVuZGVyT3BhcXVlSWRlbnRpZmllcigpO1xuICAgIH0sXG4gICAgdW5zdGFibGVfaXNOZXdSZWNvbmNpbGVyOiBlbmFibGVOZXdSZWNvbmNpbGVyXG4gIH07XG4gIEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPbk1vdW50SW5ERVYgPSB7XG4gICAgcmVhZENvbnRleHQ6IGZ1bmN0aW9uIChjb250ZXh0LCBvYnNlcnZlZEJpdHMpIHtcbiAgICAgIHdhcm5JbnZhbGlkQ29udGV4dEFjY2VzcygpO1xuICAgICAgcmV0dXJuIHJlYWRDb250ZXh0KGNvbnRleHQsIG9ic2VydmVkQml0cyk7XG4gICAgfSxcbiAgICB1c2VDYWxsYmFjazogZnVuY3Rpb24gKGNhbGxiYWNrLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VDYWxsYmFjayc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnRDYWxsYmFjayhjYWxsYmFjaywgZGVwcyk7XG4gICAgfSxcbiAgICB1c2VDb250ZXh0OiBmdW5jdGlvbiAoY29udGV4dCwgb2JzZXJ2ZWRCaXRzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VDb250ZXh0JztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiByZWFkQ29udGV4dChjb250ZXh0LCBvYnNlcnZlZEJpdHMpO1xuICAgIH0sXG4gICAgdXNlRWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VFZmZlY3QnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIG1vdW50RWZmZWN0KGNyZWF0ZSwgZGVwcyk7XG4gICAgfSxcbiAgICB1c2VJbXBlcmF0aXZlSGFuZGxlOiBmdW5jdGlvbiAocmVmLCBjcmVhdGUsIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUltcGVyYXRpdmVIYW5kbGUnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIG1vdW50SW1wZXJhdGl2ZUhhbmRsZShyZWYsIGNyZWF0ZSwgZGVwcyk7XG4gICAgfSxcbiAgICB1c2VMYXlvdXRFZmZlY3Q6IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUxheW91dEVmZmVjdCc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnRMYXlvdXRFZmZlY3QoY3JlYXRlLCBkZXBzKTtcbiAgICB9LFxuICAgIHVzZU1lbW86IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZU1lbW8nO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQ7XG4gICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPbk1vdW50SW5ERVY7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBtb3VudE1lbW8oY3JlYXRlLCBkZXBzKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICB9XG4gICAgfSxcbiAgICB1c2VSZWR1Y2VyOiBmdW5jdGlvbiAocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlUmVkdWNlcic7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudDtcbiAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uTW91bnRJbkRFVjtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIG1vdW50UmVkdWNlcihyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICB9XG4gICAgfSxcbiAgICB1c2VSZWY6IGZ1bmN0aW9uIChpbml0aWFsVmFsdWUpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZVJlZic7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnRSZWYoaW5pdGlhbFZhbHVlKTtcbiAgICB9LFxuICAgIHVzZVN0YXRlOiBmdW5jdGlvbiAoaW5pdGlhbFN0YXRlKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VTdGF0ZSc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudDtcbiAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uTW91bnRJbkRFVjtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIG1vdW50U3RhdGUoaW5pdGlhbFN0YXRlKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICB9XG4gICAgfSxcbiAgICB1c2VEZWJ1Z1ZhbHVlOiBmdW5jdGlvbiAodmFsdWUsIGZvcm1hdHRlckZuKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VEZWJ1Z1ZhbHVlJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiBtb3VudERlYnVnVmFsdWUoKTtcbiAgICB9LFxuICAgIHVzZURlZmVycmVkVmFsdWU6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlRGVmZXJyZWRWYWx1ZSc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnREZWZlcnJlZFZhbHVlKHZhbHVlKTtcbiAgICB9LFxuICAgIHVzZVRyYW5zaXRpb246IGZ1bmN0aW9uICgpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZVRyYW5zaXRpb24nO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIG1vdW50VHJhbnNpdGlvbigpO1xuICAgIH0sXG4gICAgdXNlTXV0YWJsZVNvdXJjZTogZnVuY3Rpb24gKHNvdXJjZSwgZ2V0U25hcHNob3QsIHN1YnNjcmliZSkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlTXV0YWJsZVNvdXJjZSc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnRNdXRhYmxlU291cmNlKHNvdXJjZSwgZ2V0U25hcHNob3QsIHN1YnNjcmliZSk7XG4gICAgfSxcbiAgICB1c2VPcGFxdWVJZGVudGlmaWVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VPcGFxdWVJZGVudGlmaWVyJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiBtb3VudE9wYXF1ZUlkZW50aWZpZXIoKTtcbiAgICB9LFxuICAgIHVuc3RhYmxlX2lzTmV3UmVjb25jaWxlcjogZW5hYmxlTmV3UmVjb25jaWxlclxuICB9O1xuICBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25VcGRhdGVJbkRFViA9IHtcbiAgICByZWFkQ29udGV4dDogZnVuY3Rpb24gKGNvbnRleHQsIG9ic2VydmVkQml0cykge1xuICAgICAgd2FybkludmFsaWRDb250ZXh0QWNjZXNzKCk7XG4gICAgICByZXR1cm4gcmVhZENvbnRleHQoY29udGV4dCwgb2JzZXJ2ZWRCaXRzKTtcbiAgICB9LFxuICAgIHVzZUNhbGxiYWNrOiBmdW5jdGlvbiAoY2FsbGJhY2ssIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUNhbGxiYWNrJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlQ2FsbGJhY2soY2FsbGJhY2ssIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlQ29udGV4dDogZnVuY3Rpb24gKGNvbnRleHQsIG9ic2VydmVkQml0cykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlQ29udGV4dCc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHJlYWRDb250ZXh0KGNvbnRleHQsIG9ic2VydmVkQml0cyk7XG4gICAgfSxcbiAgICB1c2VFZmZlY3Q6IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUVmZmVjdCc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZUVmZmVjdChjcmVhdGUsIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZTogZnVuY3Rpb24gKHJlZiwgY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VJbXBlcmF0aXZlSGFuZGxlJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlSW1wZXJhdGl2ZUhhbmRsZShyZWYsIGNyZWF0ZSwgZGVwcyk7XG4gICAgfSxcbiAgICB1c2VMYXlvdXRFZmZlY3Q6IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUxheW91dEVmZmVjdCc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZUxheW91dEVmZmVjdChjcmVhdGUsIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlTWVtbzogZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlTWVtbyc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQ7XG4gICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPblVwZGF0ZUluREVWO1xuXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gdXBkYXRlTWVtbyhjcmVhdGUsIGRlcHMpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgIH1cbiAgICB9LFxuICAgIHVzZVJlZHVjZXI6IGZ1bmN0aW9uIChyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VSZWR1Y2VyJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudDtcbiAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uVXBkYXRlSW5ERVY7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiB1cGRhdGVSZWR1Y2VyKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgIH1cbiAgICB9LFxuICAgIHVzZVJlZjogZnVuY3Rpb24gKGluaXRpYWxWYWx1ZSkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlUmVmJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlUmVmKCk7XG4gICAgfSxcbiAgICB1c2VTdGF0ZTogZnVuY3Rpb24gKGluaXRpYWxTdGF0ZSkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlU3RhdGUnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50O1xuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25VcGRhdGVJbkRFVjtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZVN0YXRlKGluaXRpYWxTdGF0ZSk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IHByZXZEaXNwYXRjaGVyO1xuICAgICAgfVxuICAgIH0sXG4gICAgdXNlRGVidWdWYWx1ZTogZnVuY3Rpb24gKHZhbHVlLCBmb3JtYXR0ZXJGbikge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlRGVidWdWYWx1ZSc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZURlYnVnVmFsdWUoKTtcbiAgICB9LFxuICAgIHVzZURlZmVycmVkVmFsdWU6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlRGVmZXJyZWRWYWx1ZSc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZURlZmVycmVkVmFsdWUodmFsdWUpO1xuICAgIH0sXG4gICAgdXNlVHJhbnNpdGlvbjogZnVuY3Rpb24gKCkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlVHJhbnNpdGlvbic7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZVRyYW5zaXRpb24oKTtcbiAgICB9LFxuICAgIHVzZU11dGFibGVTb3VyY2U6IGZ1bmN0aW9uIChzb3VyY2UsIGdldFNuYXBzaG90LCBzdWJzY3JpYmUpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZU11dGFibGVTb3VyY2UnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVNdXRhYmxlU291cmNlKHNvdXJjZSwgZ2V0U25hcHNob3QsIHN1YnNjcmliZSk7XG4gICAgfSxcbiAgICB1c2VPcGFxdWVJZGVudGlmaWVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VPcGFxdWVJZGVudGlmaWVyJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlT3BhcXVlSWRlbnRpZmllcigpO1xuICAgIH0sXG4gICAgdW5zdGFibGVfaXNOZXdSZWNvbmNpbGVyOiBlbmFibGVOZXdSZWNvbmNpbGVyXG4gIH07XG4gIEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPblJlcmVuZGVySW5ERVYgPSB7XG4gICAgcmVhZENvbnRleHQ6IGZ1bmN0aW9uIChjb250ZXh0LCBvYnNlcnZlZEJpdHMpIHtcbiAgICAgIHdhcm5JbnZhbGlkQ29udGV4dEFjY2VzcygpO1xuICAgICAgcmV0dXJuIHJlYWRDb250ZXh0KGNvbnRleHQsIG9ic2VydmVkQml0cyk7XG4gICAgfSxcbiAgICB1c2VDYWxsYmFjazogZnVuY3Rpb24gKGNhbGxiYWNrLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VDYWxsYmFjayc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZUNhbGxiYWNrKGNhbGxiYWNrLCBkZXBzKTtcbiAgICB9LFxuICAgIHVzZUNvbnRleHQ6IGZ1bmN0aW9uIChjb250ZXh0LCBvYnNlcnZlZEJpdHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUNvbnRleHQnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiByZWFkQ29udGV4dChjb250ZXh0LCBvYnNlcnZlZEJpdHMpO1xuICAgIH0sXG4gICAgdXNlRWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VFZmZlY3QnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVFZmZlY3QoY3JlYXRlLCBkZXBzKTtcbiAgICB9LFxuICAgIHVzZUltcGVyYXRpdmVIYW5kbGU6IGZ1bmN0aW9uIChyZWYsIGNyZWF0ZSwgZGVwcykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlSW1wZXJhdGl2ZUhhbmRsZSc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZUltcGVyYXRpdmVIYW5kbGUocmVmLCBjcmVhdGUsIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlTGF5b3V0RWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VMYXlvdXRFZmZlY3QnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVMYXlvdXRFZmZlY3QoY3JlYXRlLCBkZXBzKTtcbiAgICB9LFxuICAgIHVzZU1lbW86IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZU1lbW8nO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50O1xuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25VcGRhdGVJbkRFVjtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZU1lbW8oY3JlYXRlLCBkZXBzKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICB9XG4gICAgfSxcbiAgICB1c2VSZWR1Y2VyOiBmdW5jdGlvbiAocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlUmVkdWNlcic7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQ7XG4gICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPblVwZGF0ZUluREVWO1xuXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gcmVyZW5kZXJSZWR1Y2VyKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgIH1cbiAgICB9LFxuICAgIHVzZVJlZjogZnVuY3Rpb24gKGluaXRpYWxWYWx1ZSkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlUmVmJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlUmVmKCk7XG4gICAgfSxcbiAgICB1c2VTdGF0ZTogZnVuY3Rpb24gKGluaXRpYWxTdGF0ZSkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlU3RhdGUnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50O1xuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25VcGRhdGVJbkRFVjtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHJlcmVuZGVyU3RhdGUoaW5pdGlhbFN0YXRlKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICB9XG4gICAgfSxcbiAgICB1c2VEZWJ1Z1ZhbHVlOiBmdW5jdGlvbiAodmFsdWUsIGZvcm1hdHRlckZuKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VEZWJ1Z1ZhbHVlJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlRGVidWdWYWx1ZSgpO1xuICAgIH0sXG4gICAgdXNlRGVmZXJyZWRWYWx1ZTogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VEZWZlcnJlZFZhbHVlJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gcmVyZW5kZXJEZWZlcnJlZFZhbHVlKHZhbHVlKTtcbiAgICB9LFxuICAgIHVzZVRyYW5zaXRpb246IGZ1bmN0aW9uICgpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZVRyYW5zaXRpb24nO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiByZXJlbmRlclRyYW5zaXRpb24oKTtcbiAgICB9LFxuICAgIHVzZU11dGFibGVTb3VyY2U6IGZ1bmN0aW9uIChzb3VyY2UsIGdldFNuYXBzaG90LCBzdWJzY3JpYmUpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZU11dGFibGVTb3VyY2UnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVNdXRhYmxlU291cmNlKHNvdXJjZSwgZ2V0U25hcHNob3QsIHN1YnNjcmliZSk7XG4gICAgfSxcbiAgICB1c2VPcGFxdWVJZGVudGlmaWVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VPcGFxdWVJZGVudGlmaWVyJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gcmVyZW5kZXJPcGFxdWVJZGVudGlmaWVyKCk7XG4gICAgfSxcbiAgICB1bnN0YWJsZV9pc05ld1JlY29uY2lsZXI6IGVuYWJsZU5ld1JlY29uY2lsZXJcbiAgfTtcbn1cblxudmFyIG5vdyQxID0gU2NoZWR1bGVyLnVuc3RhYmxlX25vdztcbnZhciBjb21taXRUaW1lID0gMDtcbnZhciBwcm9maWxlclN0YXJ0VGltZSA9IC0xO1xuXG5mdW5jdGlvbiBnZXRDb21taXRUaW1lKCkge1xuICByZXR1cm4gY29tbWl0VGltZTtcbn1cblxuZnVuY3Rpb24gcmVjb3JkQ29tbWl0VGltZSgpIHtcblxuICBjb21taXRUaW1lID0gbm93JDEoKTtcbn1cblxuZnVuY3Rpb24gc3RhcnRQcm9maWxlclRpbWVyKGZpYmVyKSB7XG5cbiAgcHJvZmlsZXJTdGFydFRpbWUgPSBub3ckMSgpO1xuXG4gIGlmIChmaWJlci5hY3R1YWxTdGFydFRpbWUgPCAwKSB7XG4gICAgZmliZXIuYWN0dWFsU3RhcnRUaW1lID0gbm93JDEoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBzdG9wUHJvZmlsZXJUaW1lcklmUnVubmluZyhmaWJlcikge1xuXG4gIHByb2ZpbGVyU3RhcnRUaW1lID0gLTE7XG59XG5cbmZ1bmN0aW9uIHN0b3BQcm9maWxlclRpbWVySWZSdW5uaW5nQW5kUmVjb3JkRGVsdGEoZmliZXIsIG92ZXJyaWRlQmFzZVRpbWUpIHtcblxuICBpZiAocHJvZmlsZXJTdGFydFRpbWUgPj0gMCkge1xuICAgIHZhciBlbGFwc2VkVGltZSA9IG5vdyQxKCkgLSBwcm9maWxlclN0YXJ0VGltZTtcbiAgICBmaWJlci5hY3R1YWxEdXJhdGlvbiArPSBlbGFwc2VkVGltZTtcblxuICAgIGlmIChvdmVycmlkZUJhc2VUaW1lKSB7XG4gICAgICBmaWJlci5zZWxmQmFzZUR1cmF0aW9uID0gZWxhcHNlZFRpbWU7XG4gICAgfVxuXG4gICAgcHJvZmlsZXJTdGFydFRpbWUgPSAtMTtcbiAgfVxufVxuXG5mdW5jdGlvbiB0cmFuc2ZlckFjdHVhbER1cmF0aW9uKGZpYmVyKSB7XG4gIC8vIFRyYW5zZmVyIHRpbWUgc3BlbnQgcmVuZGVyaW5nIHRoZXNlIGNoaWxkcmVuIHNvIHdlIGRvbid0IGxvc2UgaXRcbiAgLy8gYWZ0ZXIgd2UgcmVyZW5kZXIuIFRoaXMgaXMgdXNlZCBhcyBhIGhlbHBlciBpbiBzcGVjaWFsIGNhc2VzXG4gIC8vIHdoZXJlIHdlIHNob3VsZCBjb3VudCB0aGUgd29yayBvZiBtdWx0aXBsZSBwYXNzZXMuXG4gIHZhciBjaGlsZCA9IGZpYmVyLmNoaWxkO1xuXG4gIHdoaWxlIChjaGlsZCkge1xuICAgIGZpYmVyLmFjdHVhbER1cmF0aW9uICs9IGNoaWxkLmFjdHVhbER1cmF0aW9uO1xuICAgIGNoaWxkID0gY2hpbGQuc2libGluZztcbiAgfVxufVxuXG52YXIgUmVhY3RDdXJyZW50T3duZXIkMSA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0Q3VycmVudE93bmVyO1xudmFyIGRpZFJlY2VpdmVVcGRhdGUgPSBmYWxzZTtcbnZhciBkaWRXYXJuQWJvdXRCYWRDbGFzcztcbnZhciBkaWRXYXJuQWJvdXRNb2R1bGVQYXR0ZXJuQ29tcG9uZW50O1xudmFyIGRpZFdhcm5BYm91dENvbnRleHRUeXBlT25GdW5jdGlvbkNvbXBvbmVudDtcbnZhciBkaWRXYXJuQWJvdXRHZXREZXJpdmVkU3RhdGVPbkZ1bmN0aW9uQ29tcG9uZW50O1xudmFyIGRpZFdhcm5BYm91dEZ1bmN0aW9uUmVmcztcbnZhciBkaWRXYXJuQWJvdXRSZWFzc2lnbmluZ1Byb3BzO1xudmFyIGRpZFdhcm5BYm91dFJldmVhbE9yZGVyO1xudmFyIGRpZFdhcm5BYm91dFRhaWxPcHRpb25zO1xuXG57XG4gIGRpZFdhcm5BYm91dEJhZENsYXNzID0ge307XG4gIGRpZFdhcm5BYm91dE1vZHVsZVBhdHRlcm5Db21wb25lbnQgPSB7fTtcbiAgZGlkV2FybkFib3V0Q29udGV4dFR5cGVPbkZ1bmN0aW9uQ29tcG9uZW50ID0ge307XG4gIGRpZFdhcm5BYm91dEdldERlcml2ZWRTdGF0ZU9uRnVuY3Rpb25Db21wb25lbnQgPSB7fTtcbiAgZGlkV2FybkFib3V0RnVuY3Rpb25SZWZzID0ge307XG4gIGRpZFdhcm5BYm91dFJlYXNzaWduaW5nUHJvcHMgPSBmYWxzZTtcbiAgZGlkV2FybkFib3V0UmV2ZWFsT3JkZXIgPSB7fTtcbiAgZGlkV2FybkFib3V0VGFpbE9wdGlvbnMgPSB7fTtcbn1cblxuZnVuY3Rpb24gcmVjb25jaWxlQ2hpbGRyZW4oY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIG5leHRDaGlsZHJlbiwgcmVuZGVyTGFuZXMpIHtcbiAgaWYgKGN1cnJlbnQgPT09IG51bGwpIHtcbiAgICAvLyBJZiB0aGlzIGlzIGEgZnJlc2ggbmV3IGNvbXBvbmVudCB0aGF0IGhhc24ndCBiZWVuIHJlbmRlcmVkIHlldCwgd2VcbiAgICAvLyB3b24ndCB1cGRhdGUgaXRzIGNoaWxkIHNldCBieSBhcHBseWluZyBtaW5pbWFsIHNpZGUtZWZmZWN0cy4gSW5zdGVhZCxcbiAgICAvLyB3ZSB3aWxsIGFkZCB0aGVtIGFsbCB0byB0aGUgY2hpbGQgYmVmb3JlIGl0IGdldHMgcmVuZGVyZWQuIFRoYXQgbWVhbnNcbiAgICAvLyB3ZSBjYW4gb3B0aW1pemUgdGhpcyByZWNvbmNpbGlhdGlvbiBwYXNzIGJ5IG5vdCB0cmFja2luZyBzaWRlLWVmZmVjdHMuXG4gICAgd29ya0luUHJvZ3Jlc3MuY2hpbGQgPSBtb3VudENoaWxkRmliZXJzKHdvcmtJblByb2dyZXNzLCBudWxsLCBuZXh0Q2hpbGRyZW4sIHJlbmRlckxhbmVzKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBJZiB0aGUgY3VycmVudCBjaGlsZCBpcyB0aGUgc2FtZSBhcyB0aGUgd29yayBpbiBwcm9ncmVzcywgaXQgbWVhbnMgdGhhdFxuICAgIC8vIHdlIGhhdmVuJ3QgeWV0IHN0YXJ0ZWQgYW55IHdvcmsgb24gdGhlc2UgY2hpbGRyZW4uIFRoZXJlZm9yZSwgd2UgdXNlXG4gICAgLy8gdGhlIGNsb25lIGFsZ29yaXRobSB0byBjcmVhdGUgYSBjb3B5IG9mIGFsbCB0aGUgY3VycmVudCBjaGlsZHJlbi5cbiAgICAvLyBJZiB3ZSBoYWQgYW55IHByb2dyZXNzZWQgd29yayBhbHJlYWR5LCB0aGF0IGlzIGludmFsaWQgYXQgdGhpcyBwb2ludCBzb1xuICAgIC8vIGxldCdzIHRocm93IGl0IG91dC5cbiAgICB3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IHJlY29uY2lsZUNoaWxkRmliZXJzKHdvcmtJblByb2dyZXNzLCBjdXJyZW50LmNoaWxkLCBuZXh0Q2hpbGRyZW4sIHJlbmRlckxhbmVzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBmb3JjZVVubW91bnRDdXJyZW50QW5kUmVjb25jaWxlKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBuZXh0Q2hpbGRyZW4sIHJlbmRlckxhbmVzKSB7XG4gIC8vIFRoaXMgZnVuY3Rpb24gaXMgZm9yayBvZiByZWNvbmNpbGVDaGlsZHJlbi4gSXQncyB1c2VkIGluIGNhc2VzIHdoZXJlIHdlXG4gIC8vIHdhbnQgdG8gcmVjb25jaWxlIHdpdGhvdXQgbWF0Y2hpbmcgYWdhaW5zdCB0aGUgZXhpc3Rpbmcgc2V0LiBUaGlzIGhhcyB0aGVcbiAgLy8gZWZmZWN0IG9mIGFsbCBjdXJyZW50IGNoaWxkcmVuIGJlaW5nIHVubW91bnRlZDsgZXZlbiBpZiB0aGUgdHlwZSBhbmQga2V5XG4gIC8vIGFyZSB0aGUgc2FtZSwgdGhlIG9sZCBjaGlsZCBpcyB1bm1vdW50ZWQgYW5kIGEgbmV3IGNoaWxkIGlzIGNyZWF0ZWQuXG4gIC8vXG4gIC8vIFRvIGRvIHRoaXMsIHdlJ3JlIGdvaW5nIHRvIGdvIHRocm91Z2ggdGhlIHJlY29uY2lsZSBhbGdvcml0aG0gdHdpY2UuIEluXG4gIC8vIHRoZSBmaXJzdCBwYXNzLCB3ZSBzY2hlZHVsZSBhIGRlbGV0aW9uIGZvciBhbGwgdGhlIGN1cnJlbnQgY2hpbGRyZW4gYnlcbiAgLy8gcGFzc2luZyBudWxsLlxuICB3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IHJlY29uY2lsZUNoaWxkRmliZXJzKHdvcmtJblByb2dyZXNzLCBjdXJyZW50LmNoaWxkLCBudWxsLCByZW5kZXJMYW5lcyk7IC8vIEluIHRoZSBzZWNvbmQgcGFzcywgd2UgbW91bnQgdGhlIG5ldyBjaGlsZHJlbi4gVGhlIHRyaWNrIGhlcmUgaXMgdGhhdCB3ZVxuICAvLyBwYXNzIG51bGwgaW4gcGxhY2Ugb2Ygd2hlcmUgd2UgdXN1YWxseSBwYXNzIHRoZSBjdXJyZW50IGNoaWxkIHNldC4gVGhpcyBoYXNcbiAgLy8gdGhlIGVmZmVjdCBvZiByZW1vdW50aW5nIGFsbCBjaGlsZHJlbiByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlaXJcbiAgLy8gaWRlbnRpdGllcyBtYXRjaC5cblxuICB3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IHJlY29uY2lsZUNoaWxkRmliZXJzKHdvcmtJblByb2dyZXNzLCBudWxsLCBuZXh0Q2hpbGRyZW4sIHJlbmRlckxhbmVzKTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlRm9yd2FyZFJlZihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgQ29tcG9uZW50LCBuZXh0UHJvcHMsIHJlbmRlckxhbmVzKSB7XG4gIC8vIFRPRE86IGN1cnJlbnQgY2FuIGJlIG5vbi1udWxsIGhlcmUgZXZlbiBpZiB0aGUgY29tcG9uZW50XG4gIC8vIGhhc24ndCB5ZXQgbW91bnRlZC4gVGhpcyBoYXBwZW5zIGFmdGVyIHRoZSBmaXJzdCByZW5kZXIgc3VzcGVuZHMuXG4gIC8vIFdlJ2xsIG5lZWQgdG8gZmlndXJlIG91dCBpZiB0aGlzIGlzIGZpbmUgb3IgY2FuIGNhdXNlIGlzc3Vlcy5cbiAge1xuICAgIGlmICh3b3JrSW5Qcm9ncmVzcy50eXBlICE9PSB3b3JrSW5Qcm9ncmVzcy5lbGVtZW50VHlwZSkge1xuICAgICAgLy8gTGF6eSBjb21wb25lbnQgcHJvcHMgY2FuJ3QgYmUgdmFsaWRhdGVkIGluIGNyZWF0ZUVsZW1lbnRcbiAgICAgIC8vIGJlY2F1c2UgdGhleSdyZSBvbmx5IGd1YXJhbnRlZWQgdG8gYmUgcmVzb2x2ZWQgaGVyZS5cbiAgICAgIHZhciBpbm5lclByb3BUeXBlcyA9IENvbXBvbmVudC5wcm9wVHlwZXM7XG5cbiAgICAgIGlmIChpbm5lclByb3BUeXBlcykge1xuICAgICAgICBjaGVja1Byb3BUeXBlcyhpbm5lclByb3BUeXBlcywgbmV4dFByb3BzLCAvLyBSZXNvbHZlZCBwcm9wc1xuICAgICAgICAncHJvcCcsIGdldENvbXBvbmVudE5hbWUoQ29tcG9uZW50KSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdmFyIHJlbmRlciA9IENvbXBvbmVudC5yZW5kZXI7XG4gIHZhciByZWYgPSB3b3JrSW5Qcm9ncmVzcy5yZWY7IC8vIFRoZSByZXN0IGlzIGEgZm9yayBvZiB1cGRhdGVGdW5jdGlvbkNvbXBvbmVudFxuXG4gIHZhciBuZXh0Q2hpbGRyZW47XG4gIHByZXBhcmVUb1JlYWRDb250ZXh0KHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG5cbiAge1xuICAgIFJlYWN0Q3VycmVudE93bmVyJDEuY3VycmVudCA9IHdvcmtJblByb2dyZXNzO1xuICAgIHNldElzUmVuZGVyaW5nKHRydWUpO1xuICAgIG5leHRDaGlsZHJlbiA9IHJlbmRlcldpdGhIb29rcyhjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyLCBuZXh0UHJvcHMsIHJlZiwgcmVuZGVyTGFuZXMpO1xuXG4gICAgaWYgKCB3b3JrSW5Qcm9ncmVzcy5tb2RlICYgU3RyaWN0TW9kZSkge1xuICAgICAgZGlzYWJsZUxvZ3MoKTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgbmV4dENoaWxkcmVuID0gcmVuZGVyV2l0aEhvb2tzKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXIsIG5leHRQcm9wcywgcmVmLCByZW5kZXJMYW5lcyk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICByZWVuYWJsZUxvZ3MoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRJc1JlbmRlcmluZyhmYWxzZSk7XG4gIH1cblxuICBpZiAoY3VycmVudCAhPT0gbnVsbCAmJiAhZGlkUmVjZWl2ZVVwZGF0ZSkge1xuICAgIGJhaWxvdXRIb29rcyhjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpO1xuICAgIHJldHVybiBiYWlsb3V0T25BbHJlYWR5RmluaXNoZWRXb3JrKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG4gIH0gLy8gUmVhY3QgRGV2VG9vbHMgcmVhZHMgdGhpcyBmbGFnLlxuXG5cbiAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gUGVyZm9ybWVkV29yaztcbiAgcmVjb25jaWxlQ2hpbGRyZW4oY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIG5leHRDaGlsZHJlbiwgcmVuZGVyTGFuZXMpO1xuICByZXR1cm4gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZU1lbW9Db21wb25lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgbmV4dFByb3BzLCB1cGRhdGVMYW5lcywgcmVuZGVyTGFuZXMpIHtcbiAgaWYgKGN1cnJlbnQgPT09IG51bGwpIHtcbiAgICB2YXIgdHlwZSA9IENvbXBvbmVudC50eXBlO1xuXG4gICAgaWYgKGlzU2ltcGxlRnVuY3Rpb25Db21wb25lbnQodHlwZSkgJiYgQ29tcG9uZW50LmNvbXBhcmUgPT09IG51bGwgJiYgLy8gU2ltcGxlTWVtb0NvbXBvbmVudCBjb2RlcGF0aCBkb2Vzbid0IHJlc29sdmUgb3V0ZXIgcHJvcHMgZWl0aGVyLlxuICAgIENvbXBvbmVudC5kZWZhdWx0UHJvcHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdmFyIHJlc29sdmVkVHlwZSA9IHR5cGU7XG5cbiAgICAgIHtcbiAgICAgICAgcmVzb2x2ZWRUeXBlID0gcmVzb2x2ZUZ1bmN0aW9uRm9ySG90UmVsb2FkaW5nKHR5cGUpO1xuICAgICAgfSAvLyBJZiB0aGlzIGlzIGEgcGxhaW4gZnVuY3Rpb24gY29tcG9uZW50IHdpdGhvdXQgZGVmYXVsdCBwcm9wcyxcbiAgICAgIC8vIGFuZCB3aXRoIG9ubHkgdGhlIGRlZmF1bHQgc2hhbGxvdyBjb21wYXJpc29uLCB3ZSB1cGdyYWRlIGl0XG4gICAgICAvLyB0byBhIFNpbXBsZU1lbW9Db21wb25lbnQgdG8gYWxsb3cgZmFzdCBwYXRoIHVwZGF0ZXMuXG5cblxuICAgICAgd29ya0luUHJvZ3Jlc3MudGFnID0gU2ltcGxlTWVtb0NvbXBvbmVudDtcbiAgICAgIHdvcmtJblByb2dyZXNzLnR5cGUgPSByZXNvbHZlZFR5cGU7XG5cbiAgICAgIHtcbiAgICAgICAgdmFsaWRhdGVGdW5jdGlvbkNvbXBvbmVudEluRGV2KHdvcmtJblByb2dyZXNzLCB0eXBlKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVwZGF0ZVNpbXBsZU1lbW9Db21wb25lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlc29sdmVkVHlwZSwgbmV4dFByb3BzLCB1cGRhdGVMYW5lcywgcmVuZGVyTGFuZXMpO1xuICAgIH1cblxuICAgIHtcbiAgICAgIHZhciBpbm5lclByb3BUeXBlcyA9IHR5cGUucHJvcFR5cGVzO1xuXG4gICAgICBpZiAoaW5uZXJQcm9wVHlwZXMpIHtcbiAgICAgICAgLy8gSW5uZXIgbWVtbyBjb21wb25lbnQgcHJvcHMgYXJlbid0IGN1cnJlbnRseSB2YWxpZGF0ZWQgaW4gY3JlYXRlRWxlbWVudC5cbiAgICAgICAgLy8gV2UgY291bGQgbW92ZSBpdCB0aGVyZSwgYnV0IHdlJ2Qgc3RpbGwgbmVlZCB0aGlzIGZvciBsYXp5IGNvZGUgcGF0aC5cbiAgICAgICAgY2hlY2tQcm9wVHlwZXMoaW5uZXJQcm9wVHlwZXMsIG5leHRQcm9wcywgLy8gUmVzb2x2ZWQgcHJvcHNcbiAgICAgICAgJ3Byb3AnLCBnZXRDb21wb25lbnROYW1lKHR5cGUpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgY2hpbGQgPSBjcmVhdGVGaWJlckZyb21UeXBlQW5kUHJvcHMoQ29tcG9uZW50LnR5cGUsIG51bGwsIG5leHRQcm9wcywgd29ya0luUHJvZ3Jlc3MsIHdvcmtJblByb2dyZXNzLm1vZGUsIHJlbmRlckxhbmVzKTtcbiAgICBjaGlsZC5yZWYgPSB3b3JrSW5Qcm9ncmVzcy5yZWY7XG4gICAgY2hpbGQucmV0dXJuID0gd29ya0luUHJvZ3Jlc3M7XG4gICAgd29ya0luUHJvZ3Jlc3MuY2hpbGQgPSBjaGlsZDtcbiAgICByZXR1cm4gY2hpbGQ7XG4gIH1cblxuICB7XG4gICAgdmFyIF90eXBlID0gQ29tcG9uZW50LnR5cGU7XG4gICAgdmFyIF9pbm5lclByb3BUeXBlcyA9IF90eXBlLnByb3BUeXBlcztcblxuICAgIGlmIChfaW5uZXJQcm9wVHlwZXMpIHtcbiAgICAgIC8vIElubmVyIG1lbW8gY29tcG9uZW50IHByb3BzIGFyZW4ndCBjdXJyZW50bHkgdmFsaWRhdGVkIGluIGNyZWF0ZUVsZW1lbnQuXG4gICAgICAvLyBXZSBjb3VsZCBtb3ZlIGl0IHRoZXJlLCBidXQgd2UnZCBzdGlsbCBuZWVkIHRoaXMgZm9yIGxhenkgY29kZSBwYXRoLlxuICAgICAgY2hlY2tQcm9wVHlwZXMoX2lubmVyUHJvcFR5cGVzLCBuZXh0UHJvcHMsIC8vIFJlc29sdmVkIHByb3BzXG4gICAgICAncHJvcCcsIGdldENvbXBvbmVudE5hbWUoX3R5cGUpKTtcbiAgICB9XG4gIH1cblxuICB2YXIgY3VycmVudENoaWxkID0gY3VycmVudC5jaGlsZDsgLy8gVGhpcyBpcyBhbHdheXMgZXhhY3RseSBvbmUgY2hpbGRcblxuICBpZiAoIWluY2x1ZGVzU29tZUxhbmUodXBkYXRlTGFuZXMsIHJlbmRlckxhbmVzKSkge1xuICAgIC8vIFRoaXMgd2lsbCBiZSB0aGUgcHJvcHMgd2l0aCByZXNvbHZlZCBkZWZhdWx0UHJvcHMsXG4gICAgLy8gdW5saWtlIGN1cnJlbnQubWVtb2l6ZWRQcm9wcyB3aGljaCB3aWxsIGJlIHRoZSB1bnJlc29sdmVkIG9uZXMuXG4gICAgdmFyIHByZXZQcm9wcyA9IGN1cnJlbnRDaGlsZC5tZW1vaXplZFByb3BzOyAvLyBEZWZhdWx0IHRvIHNoYWxsb3cgY29tcGFyaXNvblxuXG4gICAgdmFyIGNvbXBhcmUgPSBDb21wb25lbnQuY29tcGFyZTtcbiAgICBjb21wYXJlID0gY29tcGFyZSAhPT0gbnVsbCA/IGNvbXBhcmUgOiBzaGFsbG93RXF1YWw7XG5cbiAgICBpZiAoY29tcGFyZShwcmV2UHJvcHMsIG5leHRQcm9wcykgJiYgY3VycmVudC5yZWYgPT09IHdvcmtJblByb2dyZXNzLnJlZikge1xuICAgICAgcmV0dXJuIGJhaWxvdXRPbkFscmVhZHlGaW5pc2hlZFdvcmsoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKTtcbiAgICB9XG4gIH0gLy8gUmVhY3QgRGV2VG9vbHMgcmVhZHMgdGhpcyBmbGFnLlxuXG5cbiAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gUGVyZm9ybWVkV29yaztcbiAgdmFyIG5ld0NoaWxkID0gY3JlYXRlV29ya0luUHJvZ3Jlc3MoY3VycmVudENoaWxkLCBuZXh0UHJvcHMpO1xuICBuZXdDaGlsZC5yZWYgPSB3b3JrSW5Qcm9ncmVzcy5yZWY7XG4gIG5ld0NoaWxkLnJldHVybiA9IHdvcmtJblByb2dyZXNzO1xuICB3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IG5ld0NoaWxkO1xuICByZXR1cm4gbmV3Q2hpbGQ7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZVNpbXBsZU1lbW9Db21wb25lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgbmV4dFByb3BzLCB1cGRhdGVMYW5lcywgcmVuZGVyTGFuZXMpIHtcbiAgLy8gVE9ETzogY3VycmVudCBjYW4gYmUgbm9uLW51bGwgaGVyZSBldmVuIGlmIHRoZSBjb21wb25lbnRcbiAgLy8gaGFzbid0IHlldCBtb3VudGVkLiBUaGlzIGhhcHBlbnMgd2hlbiB0aGUgaW5uZXIgcmVuZGVyIHN1c3BlbmRzLlxuICAvLyBXZSdsbCBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgdGhpcyBpcyBmaW5lIG9yIGNhbiBjYXVzZSBpc3N1ZXMuXG4gIHtcbiAgICBpZiAod29ya0luUHJvZ3Jlc3MudHlwZSAhPT0gd29ya0luUHJvZ3Jlc3MuZWxlbWVudFR5cGUpIHtcbiAgICAgIC8vIExhenkgY29tcG9uZW50IHByb3BzIGNhbid0IGJlIHZhbGlkYXRlZCBpbiBjcmVhdGVFbGVtZW50XG4gICAgICAvLyBiZWNhdXNlIHRoZXkncmUgb25seSBndWFyYW50ZWVkIHRvIGJlIHJlc29sdmVkIGhlcmUuXG4gICAgICB2YXIgb3V0ZXJNZW1vVHlwZSA9IHdvcmtJblByb2dyZXNzLmVsZW1lbnRUeXBlO1xuXG4gICAgICBpZiAob3V0ZXJNZW1vVHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTEFaWV9UWVBFKSB7XG4gICAgICAgIC8vIFdlIHdhcm4gd2hlbiB5b3UgZGVmaW5lIHByb3BUeXBlcyBvbiBsYXp5KClcbiAgICAgICAgLy8gc28gbGV0J3MganVzdCBza2lwIG92ZXIgaXQgdG8gZmluZCBtZW1vKCkgb3V0ZXIgd3JhcHBlci5cbiAgICAgICAgLy8gSW5uZXIgcHJvcHMgZm9yIG1lbW8gYXJlIHZhbGlkYXRlZCBsYXRlci5cbiAgICAgICAgdmFyIGxhenlDb21wb25lbnQgPSBvdXRlck1lbW9UeXBlO1xuICAgICAgICB2YXIgcGF5bG9hZCA9IGxhenlDb21wb25lbnQuX3BheWxvYWQ7XG4gICAgICAgIHZhciBpbml0ID0gbGF6eUNvbXBvbmVudC5faW5pdDtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgIG91dGVyTWVtb1R5cGUgPSBpbml0KHBheWxvYWQpO1xuICAgICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgICAgb3V0ZXJNZW1vVHlwZSA9IG51bGw7XG4gICAgICAgIH0gLy8gSW5uZXIgcHJvcFR5cGVzIHdpbGwgYmUgdmFsaWRhdGVkIGluIHRoZSBmdW5jdGlvbiBjb21wb25lbnQgcGF0aC5cblxuXG4gICAgICAgIHZhciBvdXRlclByb3BUeXBlcyA9IG91dGVyTWVtb1R5cGUgJiYgb3V0ZXJNZW1vVHlwZS5wcm9wVHlwZXM7XG5cbiAgICAgICAgaWYgKG91dGVyUHJvcFR5cGVzKSB7XG4gICAgICAgICAgY2hlY2tQcm9wVHlwZXMob3V0ZXJQcm9wVHlwZXMsIG5leHRQcm9wcywgLy8gUmVzb2x2ZWQgKFNpbXBsZU1lbW9Db21wb25lbnQgaGFzIG5vIGRlZmF1bHRQcm9wcylcbiAgICAgICAgICAncHJvcCcsIGdldENvbXBvbmVudE5hbWUob3V0ZXJNZW1vVHlwZSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKGN1cnJlbnQgIT09IG51bGwpIHtcbiAgICB2YXIgcHJldlByb3BzID0gY3VycmVudC5tZW1vaXplZFByb3BzO1xuXG4gICAgaWYgKHNoYWxsb3dFcXVhbChwcmV2UHJvcHMsIG5leHRQcm9wcykgJiYgY3VycmVudC5yZWYgPT09IHdvcmtJblByb2dyZXNzLnJlZiAmJiAoIC8vIFByZXZlbnQgYmFpbG91dCBpZiB0aGUgaW1wbGVtZW50YXRpb24gY2hhbmdlZCBkdWUgdG8gaG90IHJlbG9hZC5cbiAgICAgd29ya0luUHJvZ3Jlc3MudHlwZSA9PT0gY3VycmVudC50eXBlICkpIHtcbiAgICAgIGRpZFJlY2VpdmVVcGRhdGUgPSBmYWxzZTtcblxuICAgICAgaWYgKCFpbmNsdWRlc1NvbWVMYW5lKHJlbmRlckxhbmVzLCB1cGRhdGVMYW5lcykpIHtcbiAgICAgICAgLy8gVGhlIHBlbmRpbmcgbGFuZXMgd2VyZSBjbGVhcmVkIGF0IHRoZSBiZWdpbm5pbmcgb2YgYmVnaW5Xb3JrLiBXZSdyZVxuICAgICAgICAvLyBhYm91dCB0byBiYWlsIG91dCwgYnV0IHRoZXJlIG1pZ2h0IGJlIG90aGVyIGxhbmVzIHRoYXQgd2VyZW4ndFxuICAgICAgICAvLyBpbmNsdWRlZCBpbiB0aGUgY3VycmVudCByZW5kZXIuIFVzdWFsbHksIHRoZSBwcmlvcml0eSBsZXZlbCBvZiB0aGVcbiAgICAgICAgLy8gcmVtYWluaW5nIHVwZGF0ZXMgaXMgYWNjdW1sYXRlZCBkdXJpbmcgdGhlIGV2YWx1YXRpb24gb2YgdGhlXG4gICAgICAgIC8vIGNvbXBvbmVudCAoaS5lLiB3aGVuIHByb2Nlc3NpbmcgdGhlIHVwZGF0ZSBxdWV1ZSkuIEJ1dCBzaW5jZSBzaW5jZVxuICAgICAgICAvLyB3ZSdyZSBiYWlsaW5nIG91dCBlYXJseSAqd2l0aG91dCogZXZhbHVhdGluZyB0aGUgY29tcG9uZW50LCB3ZSBuZWVkXG4gICAgICAgIC8vIHRvIGFjY291bnQgZm9yIGl0IGhlcmUsIHRvby4gUmVzZXQgdG8gdGhlIHZhbHVlIG9mIHRoZSBjdXJyZW50IGZpYmVyLlxuICAgICAgICAvLyBOT1RFOiBUaGlzIG9ubHkgYXBwbGllcyB0byBTaW1wbGVNZW1vQ29tcG9uZW50LCBub3QgTWVtb0NvbXBvbmVudCxcbiAgICAgICAgLy8gYmVjYXVzZSBhIE1lbW9Db21wb25lbnQgZmliZXIgZG9lcyBub3QgaGF2ZSBob29rcyBvciBhbiB1cGRhdGUgcXVldWU7XG4gICAgICAgIC8vIHJhdGhlciwgaXQgd3JhcHMgYXJvdW5kIGFuIGlubmVyIGNvbXBvbmVudCwgd2hpY2ggbWF5IG9yIG1heSBub3RcbiAgICAgICAgLy8gY29udGFpbnMgaG9va3MuXG4gICAgICAgIC8vIFRPRE86IE1vdmUgdGhlIHJlc2V0IGF0IGluIGJlZ2luV29yayBvdXQgb2YgdGhlIGNvbW1vbiBwYXRoIHNvIHRoYXRcbiAgICAgICAgLy8gdGhpcyBpcyBubyBsb25nZXIgbmVjZXNzYXJ5LlxuICAgICAgICB3b3JrSW5Qcm9ncmVzcy5sYW5lcyA9IGN1cnJlbnQubGFuZXM7XG4gICAgICAgIHJldHVybiBiYWlsb3V0T25BbHJlYWR5RmluaXNoZWRXb3JrKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG4gICAgICB9IGVsc2UgaWYgKChjdXJyZW50LmZsYWdzICYgRm9yY2VVcGRhdGVGb3JMZWdhY3lTdXNwZW5zZSkgIT09IE5vRmxhZ3MpIHtcbiAgICAgICAgLy8gVGhpcyBpcyBhIHNwZWNpYWwgY2FzZSB0aGF0IG9ubHkgZXhpc3RzIGZvciBsZWdhY3kgbW9kZS5cbiAgICAgICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9wdWxsLzE5MjE2LlxuICAgICAgICBkaWRSZWNlaXZlVXBkYXRlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdXBkYXRlRnVuY3Rpb25Db21wb25lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgbmV4dFByb3BzLCByZW5kZXJMYW5lcyk7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZU9mZnNjcmVlbkNvbXBvbmVudChjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpIHtcbiAgdmFyIG5leHRQcm9wcyA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcztcbiAgdmFyIG5leHRDaGlsZHJlbiA9IG5leHRQcm9wcy5jaGlsZHJlbjtcbiAgdmFyIHByZXZTdGF0ZSA9IGN1cnJlbnQgIT09IG51bGwgPyBjdXJyZW50Lm1lbW9pemVkU3RhdGUgOiBudWxsO1xuXG4gIGlmIChuZXh0UHJvcHMubW9kZSA9PT0gJ2hpZGRlbicgfHwgbmV4dFByb3BzLm1vZGUgPT09ICd1bnN0YWJsZS1kZWZlci13aXRob3V0LWhpZGluZycpIHtcbiAgICBpZiAoKHdvcmtJblByb2dyZXNzLm1vZGUgJiBDb25jdXJyZW50TW9kZSkgPT09IE5vTW9kZSkge1xuICAgICAgLy8gSW4gbGVnYWN5IHN5bmMgbW9kZSwgZG9uJ3QgZGVmZXIgdGhlIHN1YnRyZWUuIFJlbmRlciBpdCBub3cuXG4gICAgICAvLyBUT0RPOiBGaWd1cmUgb3V0IHdoYXQgd2Ugc2hvdWxkIGRvIGluIEJsb2NraW5nIG1vZGUuXG4gICAgICB2YXIgbmV4dFN0YXRlID0ge1xuICAgICAgICBiYXNlTGFuZXM6IE5vTGFuZXNcbiAgICAgIH07XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gbmV4dFN0YXRlO1xuICAgICAgcHVzaFJlbmRlckxhbmVzKHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG4gICAgfSBlbHNlIGlmICghaW5jbHVkZXNTb21lTGFuZShyZW5kZXJMYW5lcywgT2Zmc2NyZWVuTGFuZSkpIHtcbiAgICAgIHZhciBuZXh0QmFzZUxhbmVzO1xuXG4gICAgICBpZiAocHJldlN0YXRlICE9PSBudWxsKSB7XG4gICAgICAgIHZhciBwcmV2QmFzZUxhbmVzID0gcHJldlN0YXRlLmJhc2VMYW5lcztcbiAgICAgICAgbmV4dEJhc2VMYW5lcyA9IG1lcmdlTGFuZXMocHJldkJhc2VMYW5lcywgcmVuZGVyTGFuZXMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV4dEJhc2VMYW5lcyA9IHJlbmRlckxhbmVzO1xuICAgICAgfSAvLyBTY2hlZHVsZSB0aGlzIGZpYmVyIHRvIHJlLXJlbmRlciBhdCBvZmZzY3JlZW4gcHJpb3JpdHkuIFRoZW4gYmFpbG91dC5cblxuXG4gICAgICB7XG4gICAgICAgIG1hcmtTcGF3bmVkV29yayhPZmZzY3JlZW5MYW5lKTtcbiAgICAgIH1cblxuICAgICAgd29ya0luUHJvZ3Jlc3MubGFuZXMgPSB3b3JrSW5Qcm9ncmVzcy5jaGlsZExhbmVzID0gbGFuZVRvTGFuZXMoT2Zmc2NyZWVuTGFuZSk7XG4gICAgICB2YXIgX25leHRTdGF0ZSA9IHtcbiAgICAgICAgYmFzZUxhbmVzOiBuZXh0QmFzZUxhbmVzXG4gICAgICB9O1xuICAgICAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IF9uZXh0U3RhdGU7IC8vIFdlJ3JlIGFib3V0IHRvIGJhaWwgb3V0LCBidXQgd2UgbmVlZCB0byBwdXNoIHRoaXMgdG8gdGhlIHN0YWNrIGFueXdheVxuICAgICAgLy8gdG8gYXZvaWQgYSBwdXNoL3BvcCBtaXNhbGlnbm1lbnQuXG5cbiAgICAgIHB1c2hSZW5kZXJMYW5lcyh3b3JrSW5Qcm9ncmVzcywgbmV4dEJhc2VMYW5lcyk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gUmVuZGVyaW5nIGF0IG9mZnNjcmVlbiwgc28gd2UgY2FuIGNsZWFyIHRoZSBiYXNlIGxhbmVzLlxuICAgICAgdmFyIF9uZXh0U3RhdGUyID0ge1xuICAgICAgICBiYXNlTGFuZXM6IE5vTGFuZXNcbiAgICAgIH07XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gX25leHRTdGF0ZTI7IC8vIFB1c2ggdGhlIGxhbmVzIHRoYXQgd2VyZSBza2lwcGVkIHdoZW4gd2UgYmFpbGVkIG91dC5cblxuICAgICAgdmFyIHN1YnRyZWVSZW5kZXJMYW5lcyA9IHByZXZTdGF0ZSAhPT0gbnVsbCA/IHByZXZTdGF0ZS5iYXNlTGFuZXMgOiByZW5kZXJMYW5lcztcbiAgICAgIHB1c2hSZW5kZXJMYW5lcyh3b3JrSW5Qcm9ncmVzcywgc3VidHJlZVJlbmRlckxhbmVzKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdmFyIF9zdWJ0cmVlUmVuZGVyTGFuZXM7XG5cbiAgICBpZiAocHJldlN0YXRlICE9PSBudWxsKSB7XG4gICAgICBfc3VidHJlZVJlbmRlckxhbmVzID0gbWVyZ2VMYW5lcyhwcmV2U3RhdGUuYmFzZUxhbmVzLCByZW5kZXJMYW5lcyk7IC8vIFNpbmNlIHdlJ3JlIG5vdCBoaWRkZW4gYW55bW9yZSwgcmVzZXQgdGhlIHN0YXRlXG5cbiAgICAgIHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBXZSB3ZXJlbid0IHByZXZpb3VzbHkgaGlkZGVuLCBhbmQgd2Ugc3RpbGwgYXJlbid0LCBzbyB0aGVyZSdzIG5vdGhpbmdcbiAgICAgIC8vIHNwZWNpYWwgdG8gZG8uIE5lZWQgdG8gcHVzaCB0byB0aGUgc3RhY2sgcmVnYXJkbGVzcywgdGhvdWdoLCB0byBhdm9pZFxuICAgICAgLy8gYSBwdXNoL3BvcCBtaXNhbGlnbm1lbnQuXG4gICAgICBfc3VidHJlZVJlbmRlckxhbmVzID0gcmVuZGVyTGFuZXM7XG4gICAgfVxuXG4gICAgcHVzaFJlbmRlckxhbmVzKHdvcmtJblByb2dyZXNzLCBfc3VidHJlZVJlbmRlckxhbmVzKTtcbiAgfVxuXG4gIHJlY29uY2lsZUNoaWxkcmVuKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBuZXh0Q2hpbGRyZW4sIHJlbmRlckxhbmVzKTtcbiAgcmV0dXJuIHdvcmtJblByb2dyZXNzLmNoaWxkO1xufSAvLyBOb3RlOiBUaGVzZSBoYXBwZW4gdG8gaGF2ZSBpZGVudGljYWwgYmVnaW4gcGhhc2VzLCBmb3Igbm93LiBXZSBzaG91bGRuJ3QgaG9sZFxuLy8gb3Vyc2VsdmVzIHRvIHRoaXMgY29uc3RyYWludCwgdGhvdWdoLiBJZiB0aGUgYmVoYXZpb3IgZGl2ZXJnZXMsIHdlIHNob3VsZFxuLy8gZm9yayB0aGUgZnVuY3Rpb24uXG5cblxudmFyIHVwZGF0ZUxlZ2FjeUhpZGRlbkNvbXBvbmVudCA9IHVwZGF0ZU9mZnNjcmVlbkNvbXBvbmVudDtcblxuZnVuY3Rpb24gdXBkYXRlRnJhZ21lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKSB7XG4gIHZhciBuZXh0Q2hpbGRyZW4gPSB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHM7XG4gIHJlY29uY2lsZUNoaWxkcmVuKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBuZXh0Q2hpbGRyZW4sIHJlbmRlckxhbmVzKTtcbiAgcmV0dXJuIHdvcmtJblByb2dyZXNzLmNoaWxkO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVNb2RlKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcykge1xuICB2YXIgbmV4dENoaWxkcmVuID0gd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzLmNoaWxkcmVuO1xuICByZWNvbmNpbGVDaGlsZHJlbihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgbmV4dENoaWxkcmVuLCByZW5kZXJMYW5lcyk7XG4gIHJldHVybiB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcbn1cblxuZnVuY3Rpb24gdXBkYXRlUHJvZmlsZXIoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKSB7XG4gIHtcbiAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBVcGRhdGU7IC8vIFJlc2V0IGVmZmVjdCBkdXJhdGlvbnMgZm9yIHRoZSBuZXh0IGV2ZW50dWFsIGVmZmVjdCBwaGFzZS5cbiAgICAvLyBUaGVzZSBhcmUgcmVzZXQgZHVyaW5nIHJlbmRlciB0byBhbGxvdyB0aGUgRGV2VG9vbHMgY29tbWl0IGhvb2sgYSBjaGFuY2UgdG8gcmVhZCB0aGVtLFxuXG4gICAgdmFyIHN0YXRlTm9kZSA9IHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZTtcbiAgICBzdGF0ZU5vZGUuZWZmZWN0RHVyYXRpb24gPSAwO1xuICAgIHN0YXRlTm9kZS5wYXNzaXZlRWZmZWN0RHVyYXRpb24gPSAwO1xuICB9XG5cbiAgdmFyIG5leHRQcm9wcyA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcztcbiAgdmFyIG5leHRDaGlsZHJlbiA9IG5leHRQcm9wcy5jaGlsZHJlbjtcbiAgcmVjb25jaWxlQ2hpbGRyZW4oY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIG5leHRDaGlsZHJlbiwgcmVuZGVyTGFuZXMpO1xuICByZXR1cm4gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG59XG5cbmZ1bmN0aW9uIG1hcmtSZWYoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MpIHtcbiAgdmFyIHJlZiA9IHdvcmtJblByb2dyZXNzLnJlZjtcblxuICBpZiAoY3VycmVudCA9PT0gbnVsbCAmJiByZWYgIT09IG51bGwgfHwgY3VycmVudCAhPT0gbnVsbCAmJiBjdXJyZW50LnJlZiAhPT0gcmVmKSB7XG4gICAgLy8gU2NoZWR1bGUgYSBSZWYgZWZmZWN0XG4gICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gUmVmO1xuICB9XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUZ1bmN0aW9uQ29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIG5leHRQcm9wcywgcmVuZGVyTGFuZXMpIHtcbiAge1xuICAgIGlmICh3b3JrSW5Qcm9ncmVzcy50eXBlICE9PSB3b3JrSW5Qcm9ncmVzcy5lbGVtZW50VHlwZSkge1xuICAgICAgLy8gTGF6eSBjb21wb25lbnQgcHJvcHMgY2FuJ3QgYmUgdmFsaWRhdGVkIGluIGNyZWF0ZUVsZW1lbnRcbiAgICAgIC8vIGJlY2F1c2UgdGhleSdyZSBvbmx5IGd1YXJhbnRlZWQgdG8gYmUgcmVzb2x2ZWQgaGVyZS5cbiAgICAgIHZhciBpbm5lclByb3BUeXBlcyA9IENvbXBvbmVudC5wcm9wVHlwZXM7XG5cbiAgICAgIGlmIChpbm5lclByb3BUeXBlcykge1xuICAgICAgICBjaGVja1Byb3BUeXBlcyhpbm5lclByb3BUeXBlcywgbmV4dFByb3BzLCAvLyBSZXNvbHZlZCBwcm9wc1xuICAgICAgICAncHJvcCcsIGdldENvbXBvbmVudE5hbWUoQ29tcG9uZW50KSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdmFyIGNvbnRleHQ7XG5cbiAge1xuICAgIHZhciB1bm1hc2tlZENvbnRleHQgPSBnZXRVbm1hc2tlZENvbnRleHQod29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgdHJ1ZSk7XG4gICAgY29udGV4dCA9IGdldE1hc2tlZENvbnRleHQod29ya0luUHJvZ3Jlc3MsIHVubWFza2VkQ29udGV4dCk7XG4gIH1cblxuICB2YXIgbmV4dENoaWxkcmVuO1xuICBwcmVwYXJlVG9SZWFkQ29udGV4dCh3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpO1xuXG4gIHtcbiAgICBSZWFjdEN1cnJlbnRPd25lciQxLmN1cnJlbnQgPSB3b3JrSW5Qcm9ncmVzcztcbiAgICBzZXRJc1JlbmRlcmluZyh0cnVlKTtcbiAgICBuZXh0Q2hpbGRyZW4gPSByZW5kZXJXaXRoSG9va3MoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgbmV4dFByb3BzLCBjb250ZXh0LCByZW5kZXJMYW5lcyk7XG5cbiAgICBpZiAoIHdvcmtJblByb2dyZXNzLm1vZGUgJiBTdHJpY3RNb2RlKSB7XG4gICAgICBkaXNhYmxlTG9ncygpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBuZXh0Q2hpbGRyZW4gPSByZW5kZXJXaXRoSG9va3MoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgbmV4dFByb3BzLCBjb250ZXh0LCByZW5kZXJMYW5lcyk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICByZWVuYWJsZUxvZ3MoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRJc1JlbmRlcmluZyhmYWxzZSk7XG4gIH1cblxuICBpZiAoY3VycmVudCAhPT0gbnVsbCAmJiAhZGlkUmVjZWl2ZVVwZGF0ZSkge1xuICAgIGJhaWxvdXRIb29rcyhjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpO1xuICAgIHJldHVybiBiYWlsb3V0T25BbHJlYWR5RmluaXNoZWRXb3JrKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG4gIH0gLy8gUmVhY3QgRGV2VG9vbHMgcmVhZHMgdGhpcyBmbGFnLlxuXG5cbiAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gUGVyZm9ybWVkV29yaztcbiAgcmVjb25jaWxlQ2hpbGRyZW4oY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIG5leHRDaGlsZHJlbiwgcmVuZGVyTGFuZXMpO1xuICByZXR1cm4gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUNsYXNzQ29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIG5leHRQcm9wcywgcmVuZGVyTGFuZXMpIHtcbiAge1xuICAgIGlmICh3b3JrSW5Qcm9ncmVzcy50eXBlICE9PSB3b3JrSW5Qcm9ncmVzcy5lbGVtZW50VHlwZSkge1xuICAgICAgLy8gTGF6eSBjb21wb25lbnQgcHJvcHMgY2FuJ3QgYmUgdmFsaWRhdGVkIGluIGNyZWF0ZUVsZW1lbnRcbiAgICAgIC8vIGJlY2F1c2UgdGhleSdyZSBvbmx5IGd1YXJhbnRlZWQgdG8gYmUgcmVzb2x2ZWQgaGVyZS5cbiAgICAgIHZhciBpbm5lclByb3BUeXBlcyA9IENvbXBvbmVudC5wcm9wVHlwZXM7XG5cbiAgICAgIGlmIChpbm5lclByb3BUeXBlcykge1xuICAgICAgICBjaGVja1Byb3BUeXBlcyhpbm5lclByb3BUeXBlcywgbmV4dFByb3BzLCAvLyBSZXNvbHZlZCBwcm9wc1xuICAgICAgICAncHJvcCcsIGdldENvbXBvbmVudE5hbWUoQ29tcG9uZW50KSk7XG4gICAgICB9XG4gICAgfVxuICB9IC8vIFB1c2ggY29udGV4dCBwcm92aWRlcnMgZWFybHkgdG8gcHJldmVudCBjb250ZXh0IHN0YWNrIG1pc21hdGNoZXMuXG4gIC8vIER1cmluZyBtb3VudGluZyB3ZSBkb24ndCBrbm93IHRoZSBjaGlsZCBjb250ZXh0IHlldCBhcyB0aGUgaW5zdGFuY2UgZG9lc24ndCBleGlzdC5cbiAgLy8gV2Ugd2lsbCBpbnZhbGlkYXRlIHRoZSBjaGlsZCBjb250ZXh0IGluIGZpbmlzaENsYXNzQ29tcG9uZW50KCkgcmlnaHQgYWZ0ZXIgcmVuZGVyaW5nLlxuXG5cbiAgdmFyIGhhc0NvbnRleHQ7XG5cbiAgaWYgKGlzQ29udGV4dFByb3ZpZGVyKENvbXBvbmVudCkpIHtcbiAgICBoYXNDb250ZXh0ID0gdHJ1ZTtcbiAgICBwdXNoQ29udGV4dFByb3ZpZGVyKHdvcmtJblByb2dyZXNzKTtcbiAgfSBlbHNlIHtcbiAgICBoYXNDb250ZXh0ID0gZmFsc2U7XG4gIH1cblxuICBwcmVwYXJlVG9SZWFkQ29udGV4dCh3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpO1xuICB2YXIgaW5zdGFuY2UgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG4gIHZhciBzaG91bGRVcGRhdGU7XG5cbiAgaWYgKGluc3RhbmNlID09PSBudWxsKSB7XG4gICAgaWYgKGN1cnJlbnQgIT09IG51bGwpIHtcbiAgICAgIC8vIEEgY2xhc3MgY29tcG9uZW50IHdpdGhvdXQgYW4gaW5zdGFuY2Ugb25seSBtb3VudHMgaWYgaXQgc3VzcGVuZGVkXG4gICAgICAvLyBpbnNpZGUgYSBub24tY29uY3VycmVudCB0cmVlLCBpbiBhbiBpbmNvbnNpc3RlbnQgc3RhdGUuIFdlIHdhbnQgdG9cbiAgICAgIC8vIHRyZWF0IGl0IGxpa2UgYSBuZXcgbW91bnQsIGV2ZW4gdGhvdWdoIGFuIGVtcHR5IHZlcnNpb24gb2YgaXQgYWxyZWFkeVxuICAgICAgLy8gY29tbWl0dGVkLiBEaXNjb25uZWN0IHRoZSBhbHRlcm5hdGUgcG9pbnRlcnMuXG4gICAgICBjdXJyZW50LmFsdGVybmF0ZSA9IG51bGw7XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5hbHRlcm5hdGUgPSBudWxsOyAvLyBTaW5jZSB0aGlzIGlzIGNvbmNlcHR1YWxseSBhIG5ldyBmaWJlciwgc2NoZWR1bGUgYSBQbGFjZW1lbnQgZWZmZWN0XG5cbiAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IFBsYWNlbWVudDtcbiAgICB9IC8vIEluIHRoZSBpbml0aWFsIHBhc3Mgd2UgbWlnaHQgbmVlZCB0byBjb25zdHJ1Y3QgdGhlIGluc3RhbmNlLlxuXG5cbiAgICBjb25zdHJ1Y3RDbGFzc0luc3RhbmNlKHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIG5leHRQcm9wcyk7XG4gICAgbW91bnRDbGFzc0luc3RhbmNlKHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIG5leHRQcm9wcywgcmVuZGVyTGFuZXMpO1xuICAgIHNob3VsZFVwZGF0ZSA9IHRydWU7XG4gIH0gZWxzZSBpZiAoY3VycmVudCA9PT0gbnVsbCkge1xuICAgIC8vIEluIGEgcmVzdW1lLCB3ZSdsbCBhbHJlYWR5IGhhdmUgYW4gaW5zdGFuY2Ugd2UgY2FuIHJldXNlLlxuICAgIHNob3VsZFVwZGF0ZSA9IHJlc3VtZU1vdW50Q2xhc3NJbnN0YW5jZSh3b3JrSW5Qcm9ncmVzcywgQ29tcG9uZW50LCBuZXh0UHJvcHMsIHJlbmRlckxhbmVzKTtcbiAgfSBlbHNlIHtcbiAgICBzaG91bGRVcGRhdGUgPSB1cGRhdGVDbGFzc0luc3RhbmNlKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIG5leHRQcm9wcywgcmVuZGVyTGFuZXMpO1xuICB9XG5cbiAgdmFyIG5leHRVbml0T2ZXb3JrID0gZmluaXNoQ2xhc3NDb21wb25lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgc2hvdWxkVXBkYXRlLCBoYXNDb250ZXh0LCByZW5kZXJMYW5lcyk7XG5cbiAge1xuICAgIHZhciBpbnN0ID0gd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlO1xuXG4gICAgaWYgKHNob3VsZFVwZGF0ZSAmJiBpbnN0LnByb3BzICE9PSBuZXh0UHJvcHMpIHtcbiAgICAgIGlmICghZGlkV2FybkFib3V0UmVhc3NpZ25pbmdQcm9wcykge1xuICAgICAgICBlcnJvcignSXQgbG9va3MgbGlrZSAlcyBpcyByZWFzc2lnbmluZyBpdHMgb3duIGB0aGlzLnByb3BzYCB3aGlsZSByZW5kZXJpbmcuICcgKyAnVGhpcyBpcyBub3Qgc3VwcG9ydGVkIGFuZCBjYW4gbGVhZCB0byBjb25mdXNpbmcgYnVncy4nLCBnZXRDb21wb25lbnROYW1lKHdvcmtJblByb2dyZXNzLnR5cGUpIHx8ICdhIGNvbXBvbmVudCcpO1xuICAgICAgfVxuXG4gICAgICBkaWRXYXJuQWJvdXRSZWFzc2lnbmluZ1Byb3BzID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbmV4dFVuaXRPZldvcms7XG59XG5cbmZ1bmN0aW9uIGZpbmlzaENsYXNzQ29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIHNob3VsZFVwZGF0ZSwgaGFzQ29udGV4dCwgcmVuZGVyTGFuZXMpIHtcbiAgLy8gUmVmcyBzaG91bGQgdXBkYXRlIGV2ZW4gaWYgc2hvdWxkQ29tcG9uZW50VXBkYXRlIHJldHVybnMgZmFsc2VcbiAgbWFya1JlZihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcyk7XG4gIHZhciBkaWRDYXB0dXJlRXJyb3IgPSAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgJiBEaWRDYXB0dXJlKSAhPT0gTm9GbGFncztcblxuICBpZiAoIXNob3VsZFVwZGF0ZSAmJiAhZGlkQ2FwdHVyZUVycm9yKSB7XG4gICAgLy8gQ29udGV4dCBwcm92aWRlcnMgc2hvdWxkIGRlZmVyIHRvIHNDVSBmb3IgcmVuZGVyaW5nXG4gICAgaWYgKGhhc0NvbnRleHQpIHtcbiAgICAgIGludmFsaWRhdGVDb250ZXh0UHJvdmlkZXIod29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgZmFsc2UpO1xuICAgIH1cblxuICAgIHJldHVybiBiYWlsb3V0T25BbHJlYWR5RmluaXNoZWRXb3JrKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG4gIH1cblxuICB2YXIgaW5zdGFuY2UgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7IC8vIFJlcmVuZGVyXG5cbiAgUmVhY3RDdXJyZW50T3duZXIkMS5jdXJyZW50ID0gd29ya0luUHJvZ3Jlc3M7XG4gIHZhciBuZXh0Q2hpbGRyZW47XG5cbiAgaWYgKGRpZENhcHR1cmVFcnJvciAmJiB0eXBlb2YgQ29tcG9uZW50LmdldERlcml2ZWRTdGF0ZUZyb21FcnJvciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIC8vIElmIHdlIGNhcHR1cmVkIGFuIGVycm9yLCBidXQgZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yIGlzIG5vdCBkZWZpbmVkLFxuICAgIC8vIHVubW91bnQgYWxsIHRoZSBjaGlsZHJlbi4gY29tcG9uZW50RGlkQ2F0Y2ggd2lsbCBzY2hlZHVsZSBhbiB1cGRhdGUgdG9cbiAgICAvLyByZS1yZW5kZXIgYSBmYWxsYmFjay4gVGhpcyBpcyB0ZW1wb3JhcnkgdW50aWwgd2UgbWlncmF0ZSBldmVyeW9uZSB0b1xuICAgIC8vIHRoZSBuZXcgQVBJLlxuICAgIC8vIFRPRE86IFdhcm4gaW4gYSBmdXR1cmUgcmVsZWFzZS5cbiAgICBuZXh0Q2hpbGRyZW4gPSBudWxsO1xuXG4gICAge1xuICAgICAgc3RvcFByb2ZpbGVyVGltZXJJZlJ1bm5pbmcoKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAge1xuICAgICAgc2V0SXNSZW5kZXJpbmcodHJ1ZSk7XG4gICAgICBuZXh0Q2hpbGRyZW4gPSBpbnN0YW5jZS5yZW5kZXIoKTtcblxuICAgICAgaWYgKCB3b3JrSW5Qcm9ncmVzcy5tb2RlICYgU3RyaWN0TW9kZSkge1xuICAgICAgICBkaXNhYmxlTG9ncygpO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgaW5zdGFuY2UucmVuZGVyKCk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgcmVlbmFibGVMb2dzKCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgc2V0SXNSZW5kZXJpbmcoZmFsc2UpO1xuICAgIH1cbiAgfSAvLyBSZWFjdCBEZXZUb29scyByZWFkcyB0aGlzIGZsYWcuXG5cblxuICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBQZXJmb3JtZWRXb3JrO1xuXG4gIGlmIChjdXJyZW50ICE9PSBudWxsICYmIGRpZENhcHR1cmVFcnJvcikge1xuICAgIC8vIElmIHdlJ3JlIHJlY292ZXJpbmcgZnJvbSBhbiBlcnJvciwgcmVjb25jaWxlIHdpdGhvdXQgcmV1c2luZyBhbnkgb2ZcbiAgICAvLyB0aGUgZXhpc3RpbmcgY2hpbGRyZW4uIENvbmNlcHR1YWxseSwgdGhlIG5vcm1hbCBjaGlsZHJlbiBhbmQgdGhlIGNoaWxkcmVuXG4gICAgLy8gdGhhdCBhcmUgc2hvd24gb24gZXJyb3IgYXJlIHR3byBkaWZmZXJlbnQgc2V0cywgc28gd2Ugc2hvdWxkbid0IHJldXNlXG4gICAgLy8gbm9ybWFsIGNoaWxkcmVuIGV2ZW4gaWYgdGhlaXIgaWRlbnRpdGllcyBtYXRjaC5cbiAgICBmb3JjZVVubW91bnRDdXJyZW50QW5kUmVjb25jaWxlKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBuZXh0Q2hpbGRyZW4sIHJlbmRlckxhbmVzKTtcbiAgfSBlbHNlIHtcbiAgICByZWNvbmNpbGVDaGlsZHJlbihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgbmV4dENoaWxkcmVuLCByZW5kZXJMYW5lcyk7XG4gIH0gLy8gTWVtb2l6ZSBzdGF0ZSB1c2luZyB0aGUgdmFsdWVzIHdlIGp1c3QgdXNlZCB0byByZW5kZXIuXG4gIC8vIFRPRE86IFJlc3RydWN0dXJlIHNvIHdlIG5ldmVyIHJlYWQgdmFsdWVzIGZyb20gdGhlIGluc3RhbmNlLlxuXG5cbiAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IGluc3RhbmNlLnN0YXRlOyAvLyBUaGUgY29udGV4dCBtaWdodCBoYXZlIGNoYW5nZWQgc28gd2UgbmVlZCB0byByZWNhbGN1bGF0ZSBpdC5cblxuICBpZiAoaGFzQ29udGV4dCkge1xuICAgIGludmFsaWRhdGVDb250ZXh0UHJvdmlkZXIod29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgdHJ1ZSk7XG4gIH1cblxuICByZXR1cm4gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG59XG5cbmZ1bmN0aW9uIHB1c2hIb3N0Um9vdENvbnRleHQod29ya0luUHJvZ3Jlc3MpIHtcbiAgdmFyIHJvb3QgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG5cbiAgaWYgKHJvb3QucGVuZGluZ0NvbnRleHQpIHtcbiAgICBwdXNoVG9wTGV2ZWxDb250ZXh0T2JqZWN0KHdvcmtJblByb2dyZXNzLCByb290LnBlbmRpbmdDb250ZXh0LCByb290LnBlbmRpbmdDb250ZXh0ICE9PSByb290LmNvbnRleHQpO1xuICB9IGVsc2UgaWYgKHJvb3QuY29udGV4dCkge1xuICAgIC8vIFNob3VsZCBhbHdheXMgYmUgc2V0XG4gICAgcHVzaFRvcExldmVsQ29udGV4dE9iamVjdCh3b3JrSW5Qcm9ncmVzcywgcm9vdC5jb250ZXh0LCBmYWxzZSk7XG4gIH1cblxuICBwdXNoSG9zdENvbnRhaW5lcih3b3JrSW5Qcm9ncmVzcywgcm9vdC5jb250YWluZXJJbmZvKTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlSG9zdFJvb3QoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKSB7XG4gIHB1c2hIb3N0Um9vdENvbnRleHQod29ya0luUHJvZ3Jlc3MpO1xuICB2YXIgdXBkYXRlUXVldWUgPSB3b3JrSW5Qcm9ncmVzcy51cGRhdGVRdWV1ZTtcblxuICBpZiAoIShjdXJyZW50ICE9PSBudWxsICYmIHVwZGF0ZVF1ZXVlICE9PSBudWxsKSkge1xuICAgIHtcbiAgICAgIHRocm93IEVycm9yKCBcIklmIHRoZSByb290IGRvZXMgbm90IGhhdmUgYW4gdXBkYXRlUXVldWUsIHdlIHNob3VsZCBoYXZlIGFscmVhZHkgYmFpbGVkIG91dC4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIiApO1xuICAgIH1cbiAgfVxuXG4gIHZhciBuZXh0UHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHM7XG4gIHZhciBwcmV2U3RhdGUgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlO1xuICB2YXIgcHJldkNoaWxkcmVuID0gcHJldlN0YXRlICE9PSBudWxsID8gcHJldlN0YXRlLmVsZW1lbnQgOiBudWxsO1xuICBjbG9uZVVwZGF0ZVF1ZXVlKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzKTtcbiAgcHJvY2Vzc1VwZGF0ZVF1ZXVlKHdvcmtJblByb2dyZXNzLCBuZXh0UHJvcHMsIG51bGwsIHJlbmRlckxhbmVzKTtcbiAgdmFyIG5leHRTdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7IC8vIENhdXRpb246IFJlYWN0IERldlRvb2xzIGN1cnJlbnRseSBkZXBlbmRzIG9uIHRoaXMgcHJvcGVydHlcbiAgLy8gYmVpbmcgY2FsbGVkIFwiZWxlbWVudFwiLlxuXG4gIHZhciBuZXh0Q2hpbGRyZW4gPSBuZXh0U3RhdGUuZWxlbWVudDtcblxuICBpZiAobmV4dENoaWxkcmVuID09PSBwcmV2Q2hpbGRyZW4pIHtcbiAgICByZXNldEh5ZHJhdGlvblN0YXRlKCk7XG4gICAgcmV0dXJuIGJhaWxvdXRPbkFscmVhZHlGaW5pc2hlZFdvcmsoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKTtcbiAgfVxuXG4gIHZhciByb290ID0gd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlO1xuXG4gIGlmIChyb290Lmh5ZHJhdGUgJiYgZW50ZXJIeWRyYXRpb25TdGF0ZSh3b3JrSW5Qcm9ncmVzcykpIHtcbiAgICAvLyBJZiB3ZSBkb24ndCBoYXZlIGFueSBjdXJyZW50IGNoaWxkcmVuIHRoaXMgbWlnaHQgYmUgdGhlIGZpcnN0IHBhc3MuXG4gICAgLy8gV2UgYWx3YXlzIHRyeSB0byBoeWRyYXRlLiBJZiB0aGlzIGlzbid0IGEgaHlkcmF0aW9uIHBhc3MgdGhlcmUgd29uJ3RcbiAgICAvLyBiZSBhbnkgY2hpbGRyZW4gdG8gaHlkcmF0ZSB3aGljaCBpcyBlZmZlY3RpdmVseSB0aGUgc2FtZSB0aGluZyBhc1xuICAgIC8vIG5vdCBoeWRyYXRpbmcuXG4gICAge1xuICAgICAgdmFyIG11dGFibGVTb3VyY2VFYWdlckh5ZHJhdGlvbkRhdGEgPSByb290Lm11dGFibGVTb3VyY2VFYWdlckh5ZHJhdGlvbkRhdGE7XG5cbiAgICAgIGlmIChtdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhICE9IG51bGwpIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhLmxlbmd0aDsgaSArPSAyKSB7XG4gICAgICAgICAgdmFyIG11dGFibGVTb3VyY2UgPSBtdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhW2ldO1xuICAgICAgICAgIHZhciB2ZXJzaW9uID0gbXV0YWJsZVNvdXJjZUVhZ2VySHlkcmF0aW9uRGF0YVtpICsgMV07XG4gICAgICAgICAgc2V0V29ya0luUHJvZ3Jlc3NWZXJzaW9uKG11dGFibGVTb3VyY2UsIHZlcnNpb24pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGNoaWxkID0gbW91bnRDaGlsZEZpYmVycyh3b3JrSW5Qcm9ncmVzcywgbnVsbCwgbmV4dENoaWxkcmVuLCByZW5kZXJMYW5lcyk7XG4gICAgd29ya0luUHJvZ3Jlc3MuY2hpbGQgPSBjaGlsZDtcbiAgICB2YXIgbm9kZSA9IGNoaWxkO1xuXG4gICAgd2hpbGUgKG5vZGUpIHtcbiAgICAgIC8vIE1hcmsgZWFjaCBjaGlsZCBhcyBoeWRyYXRpbmcuIFRoaXMgaXMgYSBmYXN0IHBhdGggdG8ga25vdyB3aGV0aGVyIHRoaXNcbiAgICAgIC8vIHRyZWUgaXMgcGFydCBvZiBhIGh5ZHJhdGluZyB0cmVlLiBUaGlzIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIGlmIGEgY2hpbGRcbiAgICAgIC8vIG5vZGUgaGFzIGZ1bGx5IG1vdW50ZWQgeWV0LCBhbmQgZm9yIHNjaGVkdWxpbmcgZXZlbnQgcmVwbGF5aW5nLlxuICAgICAgLy8gQ29uY2VwdHVhbGx5IHRoaXMgaXMgc2ltaWxhciB0byBQbGFjZW1lbnQgaW4gdGhhdCBhIG5ldyBzdWJ0cmVlIGlzXG4gICAgICAvLyBpbnNlcnRlZCBpbnRvIHRoZSBSZWFjdCB0cmVlIGhlcmUuIEl0IGp1c3QgaGFwcGVucyB0byBub3QgbmVlZCBET01cbiAgICAgIC8vIG11dGF0aW9ucyBiZWNhdXNlIGl0IGFscmVhZHkgZXhpc3RzLlxuICAgICAgbm9kZS5mbGFncyA9IG5vZGUuZmxhZ3MgJiB+UGxhY2VtZW50IHwgSHlkcmF0aW5nO1xuICAgICAgbm9kZSA9IG5vZGUuc2libGluZztcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gT3RoZXJ3aXNlIHJlc2V0IGh5ZHJhdGlvbiBzdGF0ZSBpbiBjYXNlIHdlIGFib3J0ZWQgYW5kIHJlc3VtZWQgYW5vdGhlclxuICAgIC8vIHJvb3QuXG4gICAgcmVjb25jaWxlQ2hpbGRyZW4oY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIG5leHRDaGlsZHJlbiwgcmVuZGVyTGFuZXMpO1xuICAgIHJlc2V0SHlkcmF0aW9uU3RhdGUoKTtcbiAgfVxuXG4gIHJldHVybiB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcbn1cblxuZnVuY3Rpb24gdXBkYXRlSG9zdENvbXBvbmVudChjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpIHtcbiAgcHVzaEhvc3RDb250ZXh0KHdvcmtJblByb2dyZXNzKTtcblxuICBpZiAoY3VycmVudCA9PT0gbnVsbCkge1xuICAgIHRyeVRvQ2xhaW1OZXh0SHlkcmF0YWJsZUluc3RhbmNlKHdvcmtJblByb2dyZXNzKTtcbiAgfVxuXG4gIHZhciB0eXBlID0gd29ya0luUHJvZ3Jlc3MudHlwZTtcbiAgdmFyIG5leHRQcm9wcyA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcztcbiAgdmFyIHByZXZQcm9wcyA9IGN1cnJlbnQgIT09IG51bGwgPyBjdXJyZW50Lm1lbW9pemVkUHJvcHMgOiBudWxsO1xuICB2YXIgbmV4dENoaWxkcmVuID0gbmV4dFByb3BzLmNoaWxkcmVuO1xuICB2YXIgaXNEaXJlY3RUZXh0Q2hpbGQgPSBzaG91bGRTZXRUZXh0Q29udGVudCh0eXBlLCBuZXh0UHJvcHMpO1xuXG4gIGlmIChpc0RpcmVjdFRleHRDaGlsZCkge1xuICAgIC8vIFdlIHNwZWNpYWwgY2FzZSBhIGRpcmVjdCB0ZXh0IGNoaWxkIG9mIGEgaG9zdCBub2RlLiBUaGlzIGlzIGEgY29tbW9uXG4gICAgLy8gY2FzZS4gV2Ugd29uJ3QgaGFuZGxlIGl0IGFzIGEgcmVpZmllZCBjaGlsZC4gV2Ugd2lsbCBpbnN0ZWFkIGhhbmRsZVxuICAgIC8vIHRoaXMgaW4gdGhlIGhvc3QgZW52aXJvbm1lbnQgdGhhdCBhbHNvIGhhcyBhY2Nlc3MgdG8gdGhpcyBwcm9wLiBUaGF0XG4gICAgLy8gYXZvaWRzIGFsbG9jYXRpbmcgYW5vdGhlciBIb3N0VGV4dCBmaWJlciBhbmQgdHJhdmVyc2luZyBpdC5cbiAgICBuZXh0Q2hpbGRyZW4gPSBudWxsO1xuICB9IGVsc2UgaWYgKHByZXZQcm9wcyAhPT0gbnVsbCAmJiBzaG91bGRTZXRUZXh0Q29udGVudCh0eXBlLCBwcmV2UHJvcHMpKSB7XG4gICAgLy8gSWYgd2UncmUgc3dpdGNoaW5nIGZyb20gYSBkaXJlY3QgdGV4dCBjaGlsZCB0byBhIG5vcm1hbCBjaGlsZCwgb3IgdG9cbiAgICAvLyBlbXB0eSwgd2UgbmVlZCB0byBzY2hlZHVsZSB0aGUgdGV4dCBjb250ZW50IHRvIGJlIHJlc2V0LlxuICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IENvbnRlbnRSZXNldDtcbiAgfVxuXG4gIG1hcmtSZWYoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MpO1xuICByZWNvbmNpbGVDaGlsZHJlbihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgbmV4dENoaWxkcmVuLCByZW5kZXJMYW5lcyk7XG4gIHJldHVybiB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcbn1cblxuZnVuY3Rpb24gdXBkYXRlSG9zdFRleHQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MpIHtcbiAgaWYgKGN1cnJlbnQgPT09IG51bGwpIHtcbiAgICB0cnlUb0NsYWltTmV4dEh5ZHJhdGFibGVJbnN0YW5jZSh3b3JrSW5Qcm9ncmVzcyk7XG4gIH0gLy8gTm90aGluZyB0byBkbyBoZXJlLiBUaGlzIGlzIHRlcm1pbmFsLiBXZSdsbCBkbyB0aGUgY29tcGxldGlvbiBzdGVwXG4gIC8vIGltbWVkaWF0ZWx5IGFmdGVyLlxuXG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIG1vdW50TGF6eUNvbXBvbmVudChfY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIGVsZW1lbnRUeXBlLCB1cGRhdGVMYW5lcywgcmVuZGVyTGFuZXMpIHtcbiAgaWYgKF9jdXJyZW50ICE9PSBudWxsKSB7XG4gICAgLy8gQSBsYXp5IGNvbXBvbmVudCBvbmx5IG1vdW50cyBpZiBpdCBzdXNwZW5kZWQgaW5zaWRlIGEgbm9uLVxuICAgIC8vIGNvbmN1cnJlbnQgdHJlZSwgaW4gYW4gaW5jb25zaXN0ZW50IHN0YXRlLiBXZSB3YW50IHRvIHRyZWF0IGl0IGxpa2VcbiAgICAvLyBhIG5ldyBtb3VudCwgZXZlbiB0aG91Z2ggYW4gZW1wdHkgdmVyc2lvbiBvZiBpdCBhbHJlYWR5IGNvbW1pdHRlZC5cbiAgICAvLyBEaXNjb25uZWN0IHRoZSBhbHRlcm5hdGUgcG9pbnRlcnMuXG4gICAgX2N1cnJlbnQuYWx0ZXJuYXRlID0gbnVsbDtcbiAgICB3b3JrSW5Qcm9ncmVzcy5hbHRlcm5hdGUgPSBudWxsOyAvLyBTaW5jZSB0aGlzIGlzIGNvbmNlcHR1YWxseSBhIG5ldyBmaWJlciwgc2NoZWR1bGUgYSBQbGFjZW1lbnQgZWZmZWN0XG5cbiAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBQbGFjZW1lbnQ7XG4gIH1cblxuICB2YXIgcHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHM7XG4gIHZhciBsYXp5Q29tcG9uZW50ID0gZWxlbWVudFR5cGU7XG4gIHZhciBwYXlsb2FkID0gbGF6eUNvbXBvbmVudC5fcGF5bG9hZDtcbiAgdmFyIGluaXQgPSBsYXp5Q29tcG9uZW50Ll9pbml0O1xuICB2YXIgQ29tcG9uZW50ID0gaW5pdChwYXlsb2FkKTsgLy8gU3RvcmUgdGhlIHVud3JhcHBlZCBjb21wb25lbnQgaW4gdGhlIHR5cGUuXG5cbiAgd29ya0luUHJvZ3Jlc3MudHlwZSA9IENvbXBvbmVudDtcbiAgdmFyIHJlc29sdmVkVGFnID0gd29ya0luUHJvZ3Jlc3MudGFnID0gcmVzb2x2ZUxhenlDb21wb25lbnRUYWcoQ29tcG9uZW50KTtcbiAgdmFyIHJlc29sdmVkUHJvcHMgPSByZXNvbHZlRGVmYXVsdFByb3BzKENvbXBvbmVudCwgcHJvcHMpO1xuICB2YXIgY2hpbGQ7XG5cbiAgc3dpdGNoIChyZXNvbHZlZFRhZykge1xuICAgIGNhc2UgRnVuY3Rpb25Db21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHtcbiAgICAgICAgICB2YWxpZGF0ZUZ1bmN0aW9uQ29tcG9uZW50SW5EZXYod29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCk7XG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MudHlwZSA9IENvbXBvbmVudCA9IHJlc29sdmVGdW5jdGlvbkZvckhvdFJlbG9hZGluZyhDb21wb25lbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgY2hpbGQgPSB1cGRhdGVGdW5jdGlvbkNvbXBvbmVudChudWxsLCB3b3JrSW5Qcm9ncmVzcywgQ29tcG9uZW50LCByZXNvbHZlZFByb3BzLCByZW5kZXJMYW5lcyk7XG4gICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgIH1cblxuICAgIGNhc2UgQ2xhc3NDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHtcbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy50eXBlID0gQ29tcG9uZW50ID0gcmVzb2x2ZUNsYXNzRm9ySG90UmVsb2FkaW5nKENvbXBvbmVudCk7XG4gICAgICAgIH1cblxuICAgICAgICBjaGlsZCA9IHVwZGF0ZUNsYXNzQ29tcG9uZW50KG51bGwsIHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIHJlc29sdmVkUHJvcHMsIHJlbmRlckxhbmVzKTtcbiAgICAgICAgcmV0dXJuIGNoaWxkO1xuICAgICAgfVxuXG4gICAgY2FzZSBGb3J3YXJkUmVmOlxuICAgICAge1xuICAgICAgICB7XG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MudHlwZSA9IENvbXBvbmVudCA9IHJlc29sdmVGb3J3YXJkUmVmRm9ySG90UmVsb2FkaW5nKENvbXBvbmVudCk7XG4gICAgICAgIH1cblxuICAgICAgICBjaGlsZCA9IHVwZGF0ZUZvcndhcmRSZWYobnVsbCwgd29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgcmVzb2x2ZWRQcm9wcywgcmVuZGVyTGFuZXMpO1xuICAgICAgICByZXR1cm4gY2hpbGQ7XG4gICAgICB9XG5cbiAgICBjYXNlIE1lbW9Db21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHtcbiAgICAgICAgICBpZiAod29ya0luUHJvZ3Jlc3MudHlwZSAhPT0gd29ya0luUHJvZ3Jlc3MuZWxlbWVudFR5cGUpIHtcbiAgICAgICAgICAgIHZhciBvdXRlclByb3BUeXBlcyA9IENvbXBvbmVudC5wcm9wVHlwZXM7XG5cbiAgICAgICAgICAgIGlmIChvdXRlclByb3BUeXBlcykge1xuICAgICAgICAgICAgICBjaGVja1Byb3BUeXBlcyhvdXRlclByb3BUeXBlcywgcmVzb2x2ZWRQcm9wcywgLy8gUmVzb2x2ZWQgZm9yIG91dGVyIG9ubHlcbiAgICAgICAgICAgICAgJ3Byb3AnLCBnZXRDb21wb25lbnROYW1lKENvbXBvbmVudCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNoaWxkID0gdXBkYXRlTWVtb0NvbXBvbmVudChudWxsLCB3b3JrSW5Qcm9ncmVzcywgQ29tcG9uZW50LCByZXNvbHZlRGVmYXVsdFByb3BzKENvbXBvbmVudC50eXBlLCByZXNvbHZlZFByb3BzKSwgLy8gVGhlIGlubmVyIHR5cGUgY2FuIGhhdmUgZGVmYXVsdHMgdG9vXG4gICAgICAgIHVwZGF0ZUxhbmVzLCByZW5kZXJMYW5lcyk7XG4gICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgIH1cbiAgfVxuXG4gIHZhciBoaW50ID0gJyc7XG5cbiAge1xuICAgIGlmIChDb21wb25lbnQgIT09IG51bGwgJiYgdHlwZW9mIENvbXBvbmVudCA9PT0gJ29iamVjdCcgJiYgQ29tcG9uZW50LiQkdHlwZW9mID09PSBSRUFDVF9MQVpZX1RZUEUpIHtcbiAgICAgIGhpbnQgPSAnIERpZCB5b3Ugd3JhcCBhIGNvbXBvbmVudCBpbiBSZWFjdC5sYXp5KCkgbW9yZSB0aGFuIG9uY2U/JztcbiAgICB9XG4gIH0gLy8gVGhpcyBtZXNzYWdlIGludGVudGlvbmFsbHkgZG9lc24ndCBtZW50aW9uIEZvcndhcmRSZWYgb3IgTWVtb0NvbXBvbmVudFxuICAvLyBiZWNhdXNlIHRoZSBmYWN0IHRoYXQgaXQncyBhIHNlcGFyYXRlIHR5cGUgb2Ygd29yayBpcyBhblxuICAvLyBpbXBsZW1lbnRhdGlvbiBkZXRhaWwuXG5cblxuICB7XG4gICAge1xuICAgICAgdGhyb3cgRXJyb3IoIFwiRWxlbWVudCB0eXBlIGlzIGludmFsaWQuIFJlY2VpdmVkIGEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvOiBcIiArIENvbXBvbmVudCArIFwiLiBMYXp5IGVsZW1lbnQgdHlwZSBtdXN0IHJlc29sdmUgdG8gYSBjbGFzcyBvciBmdW5jdGlvbi5cIiArIGhpbnQgKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gbW91bnRJbmNvbXBsZXRlQ2xhc3NDb21wb25lbnQoX2N1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIG5leHRQcm9wcywgcmVuZGVyTGFuZXMpIHtcbiAgaWYgKF9jdXJyZW50ICE9PSBudWxsKSB7XG4gICAgLy8gQW4gaW5jb21wbGV0ZSBjb21wb25lbnQgb25seSBtb3VudHMgaWYgaXQgc3VzcGVuZGVkIGluc2lkZSBhIG5vbi1cbiAgICAvLyBjb25jdXJyZW50IHRyZWUsIGluIGFuIGluY29uc2lzdGVudCBzdGF0ZS4gV2Ugd2FudCB0byB0cmVhdCBpdCBsaWtlXG4gICAgLy8gYSBuZXcgbW91bnQsIGV2ZW4gdGhvdWdoIGFuIGVtcHR5IHZlcnNpb24gb2YgaXQgYWxyZWFkeSBjb21taXR0ZWQuXG4gICAgLy8gRGlzY29ubmVjdCB0aGUgYWx0ZXJuYXRlIHBvaW50ZXJzLlxuICAgIF9jdXJyZW50LmFsdGVybmF0ZSA9IG51bGw7XG4gICAgd29ya0luUHJvZ3Jlc3MuYWx0ZXJuYXRlID0gbnVsbDsgLy8gU2luY2UgdGhpcyBpcyBjb25jZXB0dWFsbHkgYSBuZXcgZmliZXIsIHNjaGVkdWxlIGEgUGxhY2VtZW50IGVmZmVjdFxuXG4gICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gUGxhY2VtZW50O1xuICB9IC8vIFByb21vdGUgdGhlIGZpYmVyIHRvIGEgY2xhc3MgYW5kIHRyeSByZW5kZXJpbmcgYWdhaW4uXG5cblxuICB3b3JrSW5Qcm9ncmVzcy50YWcgPSBDbGFzc0NvbXBvbmVudDsgLy8gVGhlIHJlc3Qgb2YgdGhpcyBmdW5jdGlvbiBpcyBhIGZvcmsgb2YgYHVwZGF0ZUNsYXNzQ29tcG9uZW50YFxuICAvLyBQdXNoIGNvbnRleHQgcHJvdmlkZXJzIGVhcmx5IHRvIHByZXZlbnQgY29udGV4dCBzdGFjayBtaXNtYXRjaGVzLlxuICAvLyBEdXJpbmcgbW91bnRpbmcgd2UgZG9uJ3Qga25vdyB0aGUgY2hpbGQgY29udGV4dCB5ZXQgYXMgdGhlIGluc3RhbmNlIGRvZXNuJ3QgZXhpc3QuXG4gIC8vIFdlIHdpbGwgaW52YWxpZGF0ZSB0aGUgY2hpbGQgY29udGV4dCBpbiBmaW5pc2hDbGFzc0NvbXBvbmVudCgpIHJpZ2h0IGFmdGVyIHJlbmRlcmluZy5cblxuICB2YXIgaGFzQ29udGV4dDtcblxuICBpZiAoaXNDb250ZXh0UHJvdmlkZXIoQ29tcG9uZW50KSkge1xuICAgIGhhc0NvbnRleHQgPSB0cnVlO1xuICAgIHB1c2hDb250ZXh0UHJvdmlkZXIod29ya0luUHJvZ3Jlc3MpO1xuICB9IGVsc2Uge1xuICAgIGhhc0NvbnRleHQgPSBmYWxzZTtcbiAgfVxuXG4gIHByZXBhcmVUb1JlYWRDb250ZXh0KHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG4gIGNvbnN0cnVjdENsYXNzSW5zdGFuY2Uod29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgbmV4dFByb3BzKTtcbiAgbW91bnRDbGFzc0luc3RhbmNlKHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIG5leHRQcm9wcywgcmVuZGVyTGFuZXMpO1xuICByZXR1cm4gZmluaXNoQ2xhc3NDb21wb25lbnQobnVsbCwgd29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgdHJ1ZSwgaGFzQ29udGV4dCwgcmVuZGVyTGFuZXMpO1xufVxuXG5mdW5jdGlvbiBtb3VudEluZGV0ZXJtaW5hdGVDb21wb25lbnQoX2N1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIHJlbmRlckxhbmVzKSB7XG4gIGlmIChfY3VycmVudCAhPT0gbnVsbCkge1xuICAgIC8vIEFuIGluZGV0ZXJtaW5hdGUgY29tcG9uZW50IG9ubHkgbW91bnRzIGlmIGl0IHN1c3BlbmRlZCBpbnNpZGUgYSBub24tXG4gICAgLy8gY29uY3VycmVudCB0cmVlLCBpbiBhbiBpbmNvbnNpc3RlbnQgc3RhdGUuIFdlIHdhbnQgdG8gdHJlYXQgaXQgbGlrZVxuICAgIC8vIGEgbmV3IG1vdW50LCBldmVuIHRob3VnaCBhbiBlbXB0eSB2ZXJzaW9uIG9mIGl0IGFscmVhZHkgY29tbWl0dGVkLlxuICAgIC8vIERpc2Nvbm5lY3QgdGhlIGFsdGVybmF0ZSBwb2ludGVycy5cbiAgICBfY3VycmVudC5hbHRlcm5hdGUgPSBudWxsO1xuICAgIHdvcmtJblByb2dyZXNzLmFsdGVybmF0ZSA9IG51bGw7IC8vIFNpbmNlIHRoaXMgaXMgY29uY2VwdHVhbGx5IGEgbmV3IGZpYmVyLCBzY2hlZHVsZSBhIFBsYWNlbWVudCBlZmZlY3RcblxuICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IFBsYWNlbWVudDtcbiAgfVxuXG4gIHZhciBwcm9wcyA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcztcbiAgdmFyIGNvbnRleHQ7XG5cbiAge1xuICAgIHZhciB1bm1hc2tlZENvbnRleHQgPSBnZXRVbm1hc2tlZENvbnRleHQod29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgZmFsc2UpO1xuICAgIGNvbnRleHQgPSBnZXRNYXNrZWRDb250ZXh0KHdvcmtJblByb2dyZXNzLCB1bm1hc2tlZENvbnRleHQpO1xuICB9XG5cbiAgcHJlcGFyZVRvUmVhZENvbnRleHQod29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKTtcbiAgdmFyIHZhbHVlO1xuXG4gIHtcbiAgICBpZiAoQ29tcG9uZW50LnByb3RvdHlwZSAmJiB0eXBlb2YgQ29tcG9uZW50LnByb3RvdHlwZS5yZW5kZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHZhciBjb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZShDb21wb25lbnQpIHx8ICdVbmtub3duJztcblxuICAgICAgaWYgKCFkaWRXYXJuQWJvdXRCYWRDbGFzc1tjb21wb25lbnROYW1lXSkge1xuICAgICAgICBlcnJvcihcIlRoZSA8JXMgLz4gY29tcG9uZW50IGFwcGVhcnMgdG8gaGF2ZSBhIHJlbmRlciBtZXRob2QsIGJ1dCBkb2Vzbid0IGV4dGVuZCBSZWFjdC5Db21wb25lbnQuIFwiICsgJ1RoaXMgaXMgbGlrZWx5IHRvIGNhdXNlIGVycm9ycy4gQ2hhbmdlICVzIHRvIGV4dGVuZCBSZWFjdC5Db21wb25lbnQgaW5zdGVhZC4nLCBjb21wb25lbnROYW1lLCBjb21wb25lbnROYW1lKTtcblxuICAgICAgICBkaWRXYXJuQWJvdXRCYWRDbGFzc1tjb21wb25lbnROYW1lXSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHdvcmtJblByb2dyZXNzLm1vZGUgJiBTdHJpY3RNb2RlKSB7XG4gICAgICBSZWFjdFN0cmljdE1vZGVXYXJuaW5ncy5yZWNvcmRMZWdhY3lDb250ZXh0V2FybmluZyh3b3JrSW5Qcm9ncmVzcywgbnVsbCk7XG4gICAgfVxuXG4gICAgc2V0SXNSZW5kZXJpbmcodHJ1ZSk7XG4gICAgUmVhY3RDdXJyZW50T3duZXIkMS5jdXJyZW50ID0gd29ya0luUHJvZ3Jlc3M7XG4gICAgdmFsdWUgPSByZW5kZXJXaXRoSG9va3MobnVsbCwgd29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgcHJvcHMsIGNvbnRleHQsIHJlbmRlckxhbmVzKTtcbiAgICBzZXRJc1JlbmRlcmluZyhmYWxzZSk7XG4gIH0gLy8gUmVhY3QgRGV2VG9vbHMgcmVhZHMgdGhpcyBmbGFnLlxuXG5cbiAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gUGVyZm9ybWVkV29yaztcblxuICB7XG4gICAgLy8gU3VwcG9ydCBmb3IgbW9kdWxlIGNvbXBvbmVudHMgaXMgZGVwcmVjYXRlZCBhbmQgaXMgcmVtb3ZlZCBiZWhpbmQgYSBmbGFnLlxuICAgIC8vIFdoZXRoZXIgb3Igbm90IGl0IHdvdWxkIGNyYXNoIGxhdGVyLCB3ZSB3YW50IHRvIHNob3cgYSBnb29kIG1lc3NhZ2UgaW4gREVWIGZpcnN0LlxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsICYmIHR5cGVvZiB2YWx1ZS5yZW5kZXIgPT09ICdmdW5jdGlvbicgJiYgdmFsdWUuJCR0eXBlb2YgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdmFyIF9jb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZShDb21wb25lbnQpIHx8ICdVbmtub3duJztcblxuICAgICAgaWYgKCFkaWRXYXJuQWJvdXRNb2R1bGVQYXR0ZXJuQ29tcG9uZW50W19jb21wb25lbnROYW1lXSkge1xuICAgICAgICBlcnJvcignVGhlIDwlcyAvPiBjb21wb25lbnQgYXBwZWFycyB0byBiZSBhIGZ1bmN0aW9uIGNvbXBvbmVudCB0aGF0IHJldHVybnMgYSBjbGFzcyBpbnN0YW5jZS4gJyArICdDaGFuZ2UgJXMgdG8gYSBjbGFzcyB0aGF0IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IGluc3RlYWQuICcgKyBcIklmIHlvdSBjYW4ndCB1c2UgYSBjbGFzcyB0cnkgYXNzaWduaW5nIHRoZSBwcm90b3R5cGUgb24gdGhlIGZ1bmN0aW9uIGFzIGEgd29ya2Fyb3VuZC4gXCIgKyBcImAlcy5wcm90b3R5cGUgPSBSZWFjdC5Db21wb25lbnQucHJvdG90eXBlYC4gRG9uJ3QgdXNlIGFuIGFycm93IGZ1bmN0aW9uIHNpbmNlIGl0IFwiICsgJ2Nhbm5vdCBiZSBjYWxsZWQgd2l0aCBgbmV3YCBieSBSZWFjdC4nLCBfY29tcG9uZW50TmFtZSwgX2NvbXBvbmVudE5hbWUsIF9jb21wb25lbnROYW1lKTtcblxuICAgICAgICBkaWRXYXJuQWJvdXRNb2R1bGVQYXR0ZXJuQ29tcG9uZW50W19jb21wb25lbnROYW1lXSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKCAvLyBSdW4gdGhlc2UgY2hlY2tzIGluIHByb2R1Y3Rpb24gb25seSBpZiB0aGUgZmxhZyBpcyBvZmYuXG4gIC8vIEV2ZW50dWFsbHkgd2UnbGwgZGVsZXRlIHRoaXMgYnJhbmNoIGFsdG9nZXRoZXIuXG4gICB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsICYmIHR5cGVvZiB2YWx1ZS5yZW5kZXIgPT09ICdmdW5jdGlvbicgJiYgdmFsdWUuJCR0eXBlb2YgPT09IHVuZGVmaW5lZCkge1xuICAgIHtcbiAgICAgIHZhciBfY29tcG9uZW50TmFtZTIgPSBnZXRDb21wb25lbnROYW1lKENvbXBvbmVudCkgfHwgJ1Vua25vd24nO1xuXG4gICAgICBpZiAoIWRpZFdhcm5BYm91dE1vZHVsZVBhdHRlcm5Db21wb25lbnRbX2NvbXBvbmVudE5hbWUyXSkge1xuICAgICAgICBlcnJvcignVGhlIDwlcyAvPiBjb21wb25lbnQgYXBwZWFycyB0byBiZSBhIGZ1bmN0aW9uIGNvbXBvbmVudCB0aGF0IHJldHVybnMgYSBjbGFzcyBpbnN0YW5jZS4gJyArICdDaGFuZ2UgJXMgdG8gYSBjbGFzcyB0aGF0IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IGluc3RlYWQuICcgKyBcIklmIHlvdSBjYW4ndCB1c2UgYSBjbGFzcyB0cnkgYXNzaWduaW5nIHRoZSBwcm90b3R5cGUgb24gdGhlIGZ1bmN0aW9uIGFzIGEgd29ya2Fyb3VuZC4gXCIgKyBcImAlcy5wcm90b3R5cGUgPSBSZWFjdC5Db21wb25lbnQucHJvdG90eXBlYC4gRG9uJ3QgdXNlIGFuIGFycm93IGZ1bmN0aW9uIHNpbmNlIGl0IFwiICsgJ2Nhbm5vdCBiZSBjYWxsZWQgd2l0aCBgbmV3YCBieSBSZWFjdC4nLCBfY29tcG9uZW50TmFtZTIsIF9jb21wb25lbnROYW1lMiwgX2NvbXBvbmVudE5hbWUyKTtcblxuICAgICAgICBkaWRXYXJuQWJvdXRNb2R1bGVQYXR0ZXJuQ29tcG9uZW50W19jb21wb25lbnROYW1lMl0gPSB0cnVlO1xuICAgICAgfVxuICAgIH0gLy8gUHJvY2VlZCB1bmRlciB0aGUgYXNzdW1wdGlvbiB0aGF0IHRoaXMgaXMgYSBjbGFzcyBpbnN0YW5jZVxuXG5cbiAgICB3b3JrSW5Qcm9ncmVzcy50YWcgPSBDbGFzc0NvbXBvbmVudDsgLy8gVGhyb3cgb3V0IGFueSBob29rcyB0aGF0IHdlcmUgdXNlZC5cblxuICAgIHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBudWxsO1xuICAgIHdvcmtJblByb2dyZXNzLnVwZGF0ZVF1ZXVlID0gbnVsbDsgLy8gUHVzaCBjb250ZXh0IHByb3ZpZGVycyBlYXJseSB0byBwcmV2ZW50IGNvbnRleHQgc3RhY2sgbWlzbWF0Y2hlcy5cbiAgICAvLyBEdXJpbmcgbW91bnRpbmcgd2UgZG9uJ3Qga25vdyB0aGUgY2hpbGQgY29udGV4dCB5ZXQgYXMgdGhlIGluc3RhbmNlIGRvZXNuJ3QgZXhpc3QuXG4gICAgLy8gV2Ugd2lsbCBpbnZhbGlkYXRlIHRoZSBjaGlsZCBjb250ZXh0IGluIGZpbmlzaENsYXNzQ29tcG9uZW50KCkgcmlnaHQgYWZ0ZXIgcmVuZGVyaW5nLlxuXG4gICAgdmFyIGhhc0NvbnRleHQgPSBmYWxzZTtcblxuICAgIGlmIChpc0NvbnRleHRQcm92aWRlcihDb21wb25lbnQpKSB7XG4gICAgICBoYXNDb250ZXh0ID0gdHJ1ZTtcbiAgICAgIHB1c2hDb250ZXh0UHJvdmlkZXIod29ya0luUHJvZ3Jlc3MpO1xuICAgIH0gZWxzZSB7XG4gICAgICBoYXNDb250ZXh0ID0gZmFsc2U7XG4gICAgfVxuXG4gICAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IHZhbHVlLnN0YXRlICE9PSBudWxsICYmIHZhbHVlLnN0YXRlICE9PSB1bmRlZmluZWQgPyB2YWx1ZS5zdGF0ZSA6IG51bGw7XG4gICAgaW5pdGlhbGl6ZVVwZGF0ZVF1ZXVlKHdvcmtJblByb2dyZXNzKTtcbiAgICB2YXIgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzID0gQ29tcG9uZW50LmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcztcblxuICAgIGlmICh0eXBlb2YgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBhcHBseURlcml2ZWRTdGF0ZUZyb21Qcm9wcyh3b3JrSW5Qcm9ncmVzcywgQ29tcG9uZW50LCBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMsIHByb3BzKTtcbiAgICB9XG5cbiAgICBhZG9wdENsYXNzSW5zdGFuY2Uod29ya0luUHJvZ3Jlc3MsIHZhbHVlKTtcbiAgICBtb3VudENsYXNzSW5zdGFuY2Uod29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgcHJvcHMsIHJlbmRlckxhbmVzKTtcbiAgICByZXR1cm4gZmluaXNoQ2xhc3NDb21wb25lbnQobnVsbCwgd29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgdHJ1ZSwgaGFzQ29udGV4dCwgcmVuZGVyTGFuZXMpO1xuICB9IGVsc2Uge1xuICAgIC8vIFByb2NlZWQgdW5kZXIgdGhlIGFzc3VtcHRpb24gdGhhdCB0aGlzIGlzIGEgZnVuY3Rpb24gY29tcG9uZW50XG4gICAgd29ya0luUHJvZ3Jlc3MudGFnID0gRnVuY3Rpb25Db21wb25lbnQ7XG5cbiAgICB7XG5cbiAgICAgIGlmICggd29ya0luUHJvZ3Jlc3MubW9kZSAmIFN0cmljdE1vZGUpIHtcbiAgICAgICAgZGlzYWJsZUxvZ3MoKTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgIHZhbHVlID0gcmVuZGVyV2l0aEhvb2tzKG51bGwsIHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIHByb3BzLCBjb250ZXh0LCByZW5kZXJMYW5lcyk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgcmVlbmFibGVMb2dzKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZWNvbmNpbGVDaGlsZHJlbihudWxsLCB3b3JrSW5Qcm9ncmVzcywgdmFsdWUsIHJlbmRlckxhbmVzKTtcblxuICAgIHtcbiAgICAgIHZhbGlkYXRlRnVuY3Rpb25Db21wb25lbnRJbkRldih3b3JrSW5Qcm9ncmVzcywgQ29tcG9uZW50KTtcbiAgICB9XG5cbiAgICByZXR1cm4gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVGdW5jdGlvbkNvbXBvbmVudEluRGV2KHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQpIHtcbiAge1xuICAgIGlmIChDb21wb25lbnQpIHtcbiAgICAgIGlmIChDb21wb25lbnQuY2hpbGRDb250ZXh0VHlwZXMpIHtcbiAgICAgICAgZXJyb3IoJyVzKC4uLik6IGNoaWxkQ29udGV4dFR5cGVzIGNhbm5vdCBiZSBkZWZpbmVkIG9uIGEgZnVuY3Rpb24gY29tcG9uZW50LicsIENvbXBvbmVudC5kaXNwbGF5TmFtZSB8fCBDb21wb25lbnQubmFtZSB8fCAnQ29tcG9uZW50Jyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHdvcmtJblByb2dyZXNzLnJlZiAhPT0gbnVsbCkge1xuICAgICAgdmFyIGluZm8gPSAnJztcbiAgICAgIHZhciBvd25lck5hbWUgPSBnZXRDdXJyZW50RmliZXJPd25lck5hbWVJbkRldk9yTnVsbCgpO1xuXG4gICAgICBpZiAob3duZXJOYW1lKSB7XG4gICAgICAgIGluZm8gKz0gJ1xcblxcbkNoZWNrIHRoZSByZW5kZXIgbWV0aG9kIG9mIGAnICsgb3duZXJOYW1lICsgJ2AuJztcbiAgICAgIH1cblxuICAgICAgdmFyIHdhcm5pbmdLZXkgPSBvd25lck5hbWUgfHwgd29ya0luUHJvZ3Jlc3MuX2RlYnVnSUQgfHwgJyc7XG4gICAgICB2YXIgZGVidWdTb3VyY2UgPSB3b3JrSW5Qcm9ncmVzcy5fZGVidWdTb3VyY2U7XG5cbiAgICAgIGlmIChkZWJ1Z1NvdXJjZSkge1xuICAgICAgICB3YXJuaW5nS2V5ID0gZGVidWdTb3VyY2UuZmlsZU5hbWUgKyAnOicgKyBkZWJ1Z1NvdXJjZS5saW5lTnVtYmVyO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWRpZFdhcm5BYm91dEZ1bmN0aW9uUmVmc1t3YXJuaW5nS2V5XSkge1xuICAgICAgICBkaWRXYXJuQWJvdXRGdW5jdGlvblJlZnNbd2FybmluZ0tleV0gPSB0cnVlO1xuXG4gICAgICAgIGVycm9yKCdGdW5jdGlvbiBjb21wb25lbnRzIGNhbm5vdCBiZSBnaXZlbiByZWZzLiAnICsgJ0F0dGVtcHRzIHRvIGFjY2VzcyB0aGlzIHJlZiB3aWxsIGZhaWwuICcgKyAnRGlkIHlvdSBtZWFuIHRvIHVzZSBSZWFjdC5mb3J3YXJkUmVmKCk/JXMnLCBpbmZvKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIENvbXBvbmVudC5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHZhciBfY29tcG9uZW50TmFtZTMgPSBnZXRDb21wb25lbnROYW1lKENvbXBvbmVudCkgfHwgJ1Vua25vd24nO1xuXG4gICAgICBpZiAoIWRpZFdhcm5BYm91dEdldERlcml2ZWRTdGF0ZU9uRnVuY3Rpb25Db21wb25lbnRbX2NvbXBvbmVudE5hbWUzXSkge1xuICAgICAgICBlcnJvcignJXM6IEZ1bmN0aW9uIGNvbXBvbmVudHMgZG8gbm90IHN1cHBvcnQgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzLicsIF9jb21wb25lbnROYW1lMyk7XG5cbiAgICAgICAgZGlkV2FybkFib3V0R2V0RGVyaXZlZFN0YXRlT25GdW5jdGlvbkNvbXBvbmVudFtfY29tcG9uZW50TmFtZTNdID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIENvbXBvbmVudC5jb250ZXh0VHlwZSA9PT0gJ29iamVjdCcgJiYgQ29tcG9uZW50LmNvbnRleHRUeXBlICE9PSBudWxsKSB7XG4gICAgICB2YXIgX2NvbXBvbmVudE5hbWU0ID0gZ2V0Q29tcG9uZW50TmFtZShDb21wb25lbnQpIHx8ICdVbmtub3duJztcblxuICAgICAgaWYgKCFkaWRXYXJuQWJvdXRDb250ZXh0VHlwZU9uRnVuY3Rpb25Db21wb25lbnRbX2NvbXBvbmVudE5hbWU0XSkge1xuICAgICAgICBlcnJvcignJXM6IEZ1bmN0aW9uIGNvbXBvbmVudHMgZG8gbm90IHN1cHBvcnQgY29udGV4dFR5cGUuJywgX2NvbXBvbmVudE5hbWU0KTtcblxuICAgICAgICBkaWRXYXJuQWJvdXRDb250ZXh0VHlwZU9uRnVuY3Rpb25Db21wb25lbnRbX2NvbXBvbmVudE5hbWU0XSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbnZhciBTVVNQRU5ERURfTUFSS0VSID0ge1xuICBkZWh5ZHJhdGVkOiBudWxsLFxuICByZXRyeUxhbmU6IE5vTGFuZVxufTtcblxuZnVuY3Rpb24gbW91bnRTdXNwZW5zZU9mZnNjcmVlblN0YXRlKHJlbmRlckxhbmVzKSB7XG4gIHJldHVybiB7XG4gICAgYmFzZUxhbmVzOiByZW5kZXJMYW5lc1xuICB9O1xufVxuXG5mdW5jdGlvbiB1cGRhdGVTdXNwZW5zZU9mZnNjcmVlblN0YXRlKHByZXZPZmZzY3JlZW5TdGF0ZSwgcmVuZGVyTGFuZXMpIHtcbiAgcmV0dXJuIHtcbiAgICBiYXNlTGFuZXM6IG1lcmdlTGFuZXMocHJldk9mZnNjcmVlblN0YXRlLmJhc2VMYW5lcywgcmVuZGVyTGFuZXMpXG4gIH07XG59IC8vIFRPRE86IFByb2JhYmx5IHNob3VsZCBpbmxpbmUgdGhpcyBiYWNrXG5cblxuZnVuY3Rpb24gc2hvdWxkUmVtYWluT25GYWxsYmFjayhzdXNwZW5zZUNvbnRleHQsIGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcykge1xuICAvLyBJZiB3ZSdyZSBhbHJlYWR5IHNob3dpbmcgYSBmYWxsYmFjaywgdGhlcmUgYXJlIGNhc2VzIHdoZXJlIHdlIG5lZWQgdG9cbiAgLy8gcmVtYWluIG9uIHRoYXQgZmFsbGJhY2sgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBjb250ZW50IGhhcyByZXNvbHZlZC5cbiAgLy8gRm9yIGV4YW1wbGUsIFN1c3BlbnNlTGlzdCBjb29yZGluYXRlcyB3aGVuIG5lc3RlZCBjb250ZW50IGFwcGVhcnMuXG4gIGlmIChjdXJyZW50ICE9PSBudWxsKSB7XG4gICAgdmFyIHN1c3BlbnNlU3RhdGUgPSBjdXJyZW50Lm1lbW9pemVkU3RhdGU7XG5cbiAgICBpZiAoc3VzcGVuc2VTdGF0ZSA9PT0gbnVsbCkge1xuICAgICAgLy8gQ3VycmVudGx5IHNob3dpbmcgY29udGVudC4gRG9uJ3QgaGlkZSBpdCwgZXZlbiBpZiBGb3JjZVN1c3BlbnNlRmFsbGFja1xuICAgICAgLy8gaXMgdHJ1ZS4gTW9yZSBwcmVjaXNlIG5hbWUgbWlnaHQgYmUgXCJGb3JjZVJlbWFpblN1c3BlbnNlRmFsbGJhY2tcIi5cbiAgICAgIC8vIE5vdGU6IFRoaXMgaXMgYSBmYWN0b3Jpbmcgc21lbGwuIENhbid0IHJlbWFpbiBvbiBhIGZhbGxiYWNrIGlmIHRoZXJlJ3NcbiAgICAgIC8vIG5vIGZhbGxiYWNrIHRvIHJlbWFpbiBvbi5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH0gLy8gTm90IGN1cnJlbnRseSBzaG93aW5nIGNvbnRlbnQuIENvbnN1bHQgdGhlIFN1c3BlbnNlIGNvbnRleHQuXG5cblxuICByZXR1cm4gaGFzU3VzcGVuc2VDb250ZXh0KHN1c3BlbnNlQ29udGV4dCwgRm9yY2VTdXNwZW5zZUZhbGxiYWNrKTtcbn1cblxuZnVuY3Rpb24gZ2V0UmVtYWluaW5nV29ya0luUHJpbWFyeVRyZWUoY3VycmVudCwgcmVuZGVyTGFuZXMpIHtcbiAgLy8gVE9ETzogU2hvdWxkIG5vdCByZW1vdmUgcmVuZGVyIGxhbmVzIHRoYXQgd2VyZSBwaW5nZWQgZHVyaW5nIHRoaXMgcmVuZGVyXG4gIHJldHVybiByZW1vdmVMYW5lcyhjdXJyZW50LmNoaWxkTGFuZXMsIHJlbmRlckxhbmVzKTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlU3VzcGVuc2VDb21wb25lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKSB7XG4gIHZhciBuZXh0UHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHM7IC8vIFRoaXMgaXMgdXNlZCBieSBEZXZUb29scyB0byBmb3JjZSBhIGJvdW5kYXJ5IHRvIHN1c3BlbmQuXG5cbiAge1xuICAgIGlmIChzaG91bGRTdXNwZW5kKHdvcmtJblByb2dyZXNzKSkge1xuICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gRGlkQ2FwdHVyZTtcbiAgICB9XG4gIH1cblxuICB2YXIgc3VzcGVuc2VDb250ZXh0ID0gc3VzcGVuc2VTdGFja0N1cnNvci5jdXJyZW50O1xuICB2YXIgc2hvd0ZhbGxiYWNrID0gZmFsc2U7XG4gIHZhciBkaWRTdXNwZW5kID0gKHdvcmtJblByb2dyZXNzLmZsYWdzICYgRGlkQ2FwdHVyZSkgIT09IE5vRmxhZ3M7XG5cbiAgaWYgKGRpZFN1c3BlbmQgfHwgc2hvdWxkUmVtYWluT25GYWxsYmFjayhzdXNwZW5zZUNvbnRleHQsIGN1cnJlbnQpKSB7XG4gICAgLy8gU29tZXRoaW5nIGluIHRoaXMgYm91bmRhcnkncyBzdWJ0cmVlIGFscmVhZHkgc3VzcGVuZGVkLiBTd2l0Y2ggdG9cbiAgICAvLyByZW5kZXJpbmcgdGhlIGZhbGxiYWNrIGNoaWxkcmVuLlxuICAgIHNob3dGYWxsYmFjayA9IHRydWU7XG4gICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgJj0gfkRpZENhcHR1cmU7XG4gIH0gZWxzZSB7XG4gICAgLy8gQXR0ZW1wdGluZyB0aGUgbWFpbiBjb250ZW50XG4gICAgaWYgKGN1cnJlbnQgPT09IG51bGwgfHwgY3VycmVudC5tZW1vaXplZFN0YXRlICE9PSBudWxsKSB7XG4gICAgICAvLyBUaGlzIGlzIGEgbmV3IG1vdW50IG9yIHRoaXMgYm91bmRhcnkgaXMgYWxyZWFkeSBzaG93aW5nIGEgZmFsbGJhY2sgc3RhdGUuXG4gICAgICAvLyBNYXJrIHRoaXMgc3VidHJlZSBjb250ZXh0IGFzIGhhdmluZyBhdCBsZWFzdCBvbmUgaW52aXNpYmxlIHBhcmVudCB0aGF0IGNvdWxkXG4gICAgICAvLyBoYW5kbGUgdGhlIGZhbGxiYWNrIHN0YXRlLlxuICAgICAgLy8gQm91bmRhcmllcyB3aXRob3V0IGZhbGxiYWNrcyBvciBzaG91bGQgYmUgYXZvaWRlZCBhcmUgbm90IGNvbnNpZGVyZWQgc2luY2VcbiAgICAgIC8vIHRoZXkgY2Fubm90IGhhbmRsZSBwcmVmZXJyZWQgZmFsbGJhY2sgc3RhdGVzLlxuICAgICAgaWYgKG5leHRQcm9wcy5mYWxsYmFjayAhPT0gdW5kZWZpbmVkICYmIG5leHRQcm9wcy51bnN0YWJsZV9hdm9pZFRoaXNGYWxsYmFjayAhPT0gdHJ1ZSkge1xuICAgICAgICBzdXNwZW5zZUNvbnRleHQgPSBhZGRTdWJ0cmVlU3VzcGVuc2VDb250ZXh0KHN1c3BlbnNlQ29udGV4dCwgSW52aXNpYmxlUGFyZW50U3VzcGVuc2VDb250ZXh0KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzdXNwZW5zZUNvbnRleHQgPSBzZXREZWZhdWx0U2hhbGxvd1N1c3BlbnNlQ29udGV4dChzdXNwZW5zZUNvbnRleHQpO1xuICBwdXNoU3VzcGVuc2VDb250ZXh0KHdvcmtJblByb2dyZXNzLCBzdXNwZW5zZUNvbnRleHQpOyAvLyBPSywgdGhlIG5leHQgcGFydCBpcyBjb25mdXNpbmcuIFdlJ3JlIGFib3V0IHRvIHJlY29uY2lsZSB0aGUgU3VzcGVuc2VcbiAgLy8gYm91bmRhcnkncyBjaGlsZHJlbi4gVGhpcyBpbnZvbHZlcyBzb21lIGN1c3RvbSByZWNvbmNpbGF0aW9uIGxvZ2ljLiBUd29cbiAgLy8gbWFpbiByZWFzb25zIHRoaXMgaXMgc28gY29tcGxpY2F0ZWQuXG4gIC8vXG4gIC8vIEZpcnN0LCBMZWdhY3kgTW9kZSBoYXMgZGlmZmVyZW50IHNlbWFudGljcyBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuIFRoZVxuICAvLyBwcmltYXJ5IHRyZWUgd2lsbCBjb21taXQgaW4gYW4gaW5jb25zaXN0ZW50IHN0YXRlLCBzbyB3aGVuIHdlIGRvIHRoZVxuICAvLyBzZWNvbmQgcGFzcyB0byByZW5kZXIgdGhlIGZhbGxiYWNrLCB3ZSBkbyBzb21lIGV4Y2VlZGluZ2x5LCB1aCwgY2xldmVyXG4gIC8vIGhhY2tzIHRvIG1ha2UgdGhhdCBub3QgdG90YWxseSBicmVhay4gTGlrZSB0cmFuc2ZlcnJpbmcgZWZmZWN0cyBhbmRcbiAgLy8gZGVsZXRpb25zIGZyb20gaGlkZGVuIHRyZWUuIEluIENvbmN1cnJlbnQgTW9kZSwgaXQncyBtdWNoIHNpbXBsZXIsXG4gIC8vIGJlY2F1c2Ugd2UgYmFpbG91dCBvbiB0aGUgcHJpbWFyeSB0cmVlIGNvbXBsZXRlbHkgYW5kIGxlYXZlIGl0IGluIGl0cyBvbGRcbiAgLy8gc3RhdGUsIG5vIGVmZmVjdHMuIFNhbWUgYXMgd2hhdCB3ZSBkbyBmb3IgT2Zmc2NyZWVuIChleGNlcHQgdGhhdFxuICAvLyBPZmZzY3JlZW4gZG9lc24ndCBoYXZlIHRoZSBmaXJzdCByZW5kZXIgcGFzcykuXG4gIC8vXG4gIC8vIFNlY29uZCBpcyBoeWRyYXRpb24uIER1cmluZyBoeWRyYXRpb24sIHRoZSBTdXNwZW5zZSBmaWJlciBoYXMgYSBzbGlnaHRseVxuICAvLyBkaWZmZXJlbnQgbGF5b3V0LCB3aGVyZSB0aGUgY2hpbGQgcG9pbnRzIHRvIGEgZGVoeWRyYXRlZCBmcmFnbWVudCwgd2hpY2hcbiAgLy8gY29udGFpbnMgdGhlIERPTSByZW5kZXJlZCBieSB0aGUgc2VydmVyLlxuICAvL1xuICAvLyBUaGlyZCwgZXZlbiBpZiB5b3Ugc2V0IGFsbCB0aGF0IGFzaWRlLCBTdXNwZW5zZSBpcyBsaWtlIGVycm9yIGJvdW5kYXJpZXMgaW5cbiAgLy8gdGhhdCB3ZSBmaXJzdCB3ZSB0cnkgdG8gcmVuZGVyIG9uZSB0cmVlLCBhbmQgaWYgdGhhdCBmYWlscywgd2UgcmVuZGVyIGFnYWluXG4gIC8vIGFuZCBzd2l0Y2ggdG8gYSBkaWZmZXJlbnQgdHJlZS4gTGlrZSBhIHRyeS9jYXRjaCBibG9jay4gU28gd2UgaGF2ZSB0byB0cmFja1xuICAvLyB3aGljaCBicmFuY2ggd2UncmUgY3VycmVudGx5IHJlbmRlcmluZy4gSWRlYWxseSB3ZSB3b3VsZCBtb2RlbCB0aGlzIHVzaW5nXG4gIC8vIGEgc3RhY2suXG5cbiAgaWYgKGN1cnJlbnQgPT09IG51bGwpIHtcbiAgICAvLyBJbml0aWFsIG1vdW50XG4gICAgLy8gSWYgd2UncmUgY3VycmVudGx5IGh5ZHJhdGluZywgdHJ5IHRvIGh5ZHJhdGUgdGhpcyBib3VuZGFyeS5cbiAgICAvLyBCdXQgb25seSBpZiB0aGlzIGhhcyBhIGZhbGxiYWNrLlxuICAgIGlmIChuZXh0UHJvcHMuZmFsbGJhY2sgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdHJ5VG9DbGFpbU5leHRIeWRyYXRhYmxlSW5zdGFuY2Uod29ya0luUHJvZ3Jlc3MpOyAvLyBUaGlzIGNvdWxkJ3ZlIGJlZW4gYSBkZWh5ZHJhdGVkIHN1c3BlbnNlIGNvbXBvbmVudC5cbiAgICB9XG5cbiAgICB2YXIgbmV4dFByaW1hcnlDaGlsZHJlbiA9IG5leHRQcm9wcy5jaGlsZHJlbjtcbiAgICB2YXIgbmV4dEZhbGxiYWNrQ2hpbGRyZW4gPSBuZXh0UHJvcHMuZmFsbGJhY2s7XG5cbiAgICBpZiAoc2hvd0ZhbGxiYWNrKSB7XG4gICAgICB2YXIgZmFsbGJhY2tGcmFnbWVudCA9IG1vdW50U3VzcGVuc2VGYWxsYmFja0NoaWxkcmVuKHdvcmtJblByb2dyZXNzLCBuZXh0UHJpbWFyeUNoaWxkcmVuLCBuZXh0RmFsbGJhY2tDaGlsZHJlbiwgcmVuZGVyTGFuZXMpO1xuICAgICAgdmFyIHByaW1hcnlDaGlsZEZyYWdtZW50ID0gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG4gICAgICBwcmltYXJ5Q2hpbGRGcmFnbWVudC5tZW1vaXplZFN0YXRlID0gbW91bnRTdXNwZW5zZU9mZnNjcmVlblN0YXRlKHJlbmRlckxhbmVzKTtcbiAgICAgIHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBTVVNQRU5ERURfTUFSS0VSO1xuICAgICAgcmV0dXJuIGZhbGxiYWNrRnJhZ21lbnQ7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgbmV4dFByb3BzLnVuc3RhYmxlX2V4cGVjdGVkTG9hZFRpbWUgPT09ICdudW1iZXInKSB7XG4gICAgICAvLyBUaGlzIGlzIGEgQ1BVLWJvdW5kIHRyZWUuIFNraXAgdGhpcyB0cmVlIGFuZCBzaG93IGEgcGxhY2Vob2xkZXIgdG9cbiAgICAgIC8vIHVuYmxvY2sgdGhlIHN1cnJvdW5kaW5nIGNvbnRlbnQuIFRoZW4gaW1tZWRpYXRlbHkgcmV0cnkgYWZ0ZXIgdGhlXG4gICAgICAvLyBpbml0aWFsIGNvbW1pdC5cbiAgICAgIHZhciBfZmFsbGJhY2tGcmFnbWVudCA9IG1vdW50U3VzcGVuc2VGYWxsYmFja0NoaWxkcmVuKHdvcmtJblByb2dyZXNzLCBuZXh0UHJpbWFyeUNoaWxkcmVuLCBuZXh0RmFsbGJhY2tDaGlsZHJlbiwgcmVuZGVyTGFuZXMpO1xuXG4gICAgICB2YXIgX3ByaW1hcnlDaGlsZEZyYWdtZW50ID0gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG4gICAgICBfcHJpbWFyeUNoaWxkRnJhZ21lbnQubWVtb2l6ZWRTdGF0ZSA9IG1vdW50U3VzcGVuc2VPZmZzY3JlZW5TdGF0ZShyZW5kZXJMYW5lcyk7XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gU1VTUEVOREVEX01BUktFUjsgLy8gU2luY2Ugbm90aGluZyBhY3R1YWxseSBzdXNwZW5kZWQsIHRoZXJlIHdpbGwgbm90aGluZyB0byBwaW5nIHRoaXMgdG9cbiAgICAgIC8vIGdldCBpdCBzdGFydGVkIGJhY2sgdXAgdG8gYXR0ZW1wdCB0aGUgbmV4dCBpdGVtLiBXaGlsZSBpbiB0ZXJtcyBvZlxuICAgICAgLy8gcHJpb3JpdHkgdGhpcyB3b3JrIGhhcyB0aGUgc2FtZSBwcmlvcml0eSBhcyB0aGlzIGN1cnJlbnQgcmVuZGVyLCBpdCdzXG4gICAgICAvLyBub3QgcGFydCBvZiB0aGUgc2FtZSB0cmFuc2l0aW9uIG9uY2UgdGhlIHRyYW5zaXRpb24gaGFzIGNvbW1pdHRlZC4gSWZcbiAgICAgIC8vIGl0J3Mgc3luYywgd2Ugc3RpbGwgd2FudCB0byB5aWVsZCBzbyB0aGF0IGl0IGNhbiBiZSBwYWludGVkLlxuICAgICAgLy8gQ29uY2VwdHVhbGx5LCB0aGlzIGlzIHJlYWxseSB0aGUgc2FtZSBhcyBwaW5naW5nLiBXZSBjYW4gdXNlIGFueVxuICAgICAgLy8gUmV0cnlMYW5lIGV2ZW4gaWYgaXQncyB0aGUgb25lIGN1cnJlbnRseSByZW5kZXJpbmcgc2luY2Ugd2UncmUgbGVhdmluZ1xuICAgICAgLy8gaXQgYmVoaW5kIG9uIHRoaXMgbm9kZS5cblxuICAgICAgd29ya0luUHJvZ3Jlc3MubGFuZXMgPSBTb21lUmV0cnlMYW5lO1xuXG4gICAgICB7XG4gICAgICAgIG1hcmtTcGF3bmVkV29yayhTb21lUmV0cnlMYW5lKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIF9mYWxsYmFja0ZyYWdtZW50O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbW91bnRTdXNwZW5zZVByaW1hcnlDaGlsZHJlbih3b3JrSW5Qcm9ncmVzcywgbmV4dFByaW1hcnlDaGlsZHJlbiwgcmVuZGVyTGFuZXMpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBUaGlzIGlzIGFuIHVwZGF0ZS5cbiAgICAvLyBJZiB0aGUgY3VycmVudCBmaWJlciBoYXMgYSBTdXNwZW5zZVN0YXRlLCB0aGF0IG1lYW5zIGl0J3MgYWxyZWFkeSBzaG93aW5nXG4gICAgLy8gYSBmYWxsYmFjay5cbiAgICB2YXIgcHJldlN0YXRlID0gY3VycmVudC5tZW1vaXplZFN0YXRlO1xuXG4gICAgaWYgKHByZXZTdGF0ZSAhPT0gbnVsbCkge1xuXG4gICAgICBpZiAoc2hvd0ZhbGxiYWNrKSB7XG4gICAgICAgIHZhciBfbmV4dEZhbGxiYWNrQ2hpbGRyZW4yID0gbmV4dFByb3BzLmZhbGxiYWNrO1xuICAgICAgICB2YXIgX25leHRQcmltYXJ5Q2hpbGRyZW4yID0gbmV4dFByb3BzLmNoaWxkcmVuO1xuXG4gICAgICAgIHZhciBfZmFsbGJhY2tDaGlsZEZyYWdtZW50ID0gdXBkYXRlU3VzcGVuc2VGYWxsYmFja0NoaWxkcmVuKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBfbmV4dFByaW1hcnlDaGlsZHJlbjIsIF9uZXh0RmFsbGJhY2tDaGlsZHJlbjIsIHJlbmRlckxhbmVzKTtcblxuICAgICAgICB2YXIgX3ByaW1hcnlDaGlsZEZyYWdtZW50MyA9IHdvcmtJblByb2dyZXNzLmNoaWxkO1xuICAgICAgICB2YXIgcHJldk9mZnNjcmVlblN0YXRlID0gY3VycmVudC5jaGlsZC5tZW1vaXplZFN0YXRlO1xuICAgICAgICBfcHJpbWFyeUNoaWxkRnJhZ21lbnQzLm1lbW9pemVkU3RhdGUgPSBwcmV2T2Zmc2NyZWVuU3RhdGUgPT09IG51bGwgPyBtb3VudFN1c3BlbnNlT2Zmc2NyZWVuU3RhdGUocmVuZGVyTGFuZXMpIDogdXBkYXRlU3VzcGVuc2VPZmZzY3JlZW5TdGF0ZShwcmV2T2Zmc2NyZWVuU3RhdGUsIHJlbmRlckxhbmVzKTtcbiAgICAgICAgX3ByaW1hcnlDaGlsZEZyYWdtZW50My5jaGlsZExhbmVzID0gZ2V0UmVtYWluaW5nV29ya0luUHJpbWFyeVRyZWUoY3VycmVudCwgcmVuZGVyTGFuZXMpO1xuICAgICAgICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gU1VTUEVOREVEX01BUktFUjtcbiAgICAgICAgcmV0dXJuIF9mYWxsYmFja0NoaWxkRnJhZ21lbnQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgX25leHRQcmltYXJ5Q2hpbGRyZW4zID0gbmV4dFByb3BzLmNoaWxkcmVuO1xuXG4gICAgICAgIHZhciBfcHJpbWFyeUNoaWxkRnJhZ21lbnQ0ID0gdXBkYXRlU3VzcGVuc2VQcmltYXJ5Q2hpbGRyZW4oY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIF9uZXh0UHJpbWFyeUNoaWxkcmVuMywgcmVuZGVyTGFuZXMpO1xuXG4gICAgICAgIHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBudWxsO1xuICAgICAgICByZXR1cm4gX3ByaW1hcnlDaGlsZEZyYWdtZW50NDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVGhlIGN1cnJlbnQgdHJlZSBpcyBub3QgYWxyZWFkeSBzaG93aW5nIGEgZmFsbGJhY2suXG4gICAgICBpZiAoc2hvd0ZhbGxiYWNrKSB7XG4gICAgICAgIC8vIFRpbWVkIG91dC5cbiAgICAgICAgdmFyIF9uZXh0RmFsbGJhY2tDaGlsZHJlbjMgPSBuZXh0UHJvcHMuZmFsbGJhY2s7XG4gICAgICAgIHZhciBfbmV4dFByaW1hcnlDaGlsZHJlbjQgPSBuZXh0UHJvcHMuY2hpbGRyZW47XG5cbiAgICAgICAgdmFyIF9mYWxsYmFja0NoaWxkRnJhZ21lbnQyID0gdXBkYXRlU3VzcGVuc2VGYWxsYmFja0NoaWxkcmVuKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBfbmV4dFByaW1hcnlDaGlsZHJlbjQsIF9uZXh0RmFsbGJhY2tDaGlsZHJlbjMsIHJlbmRlckxhbmVzKTtcblxuICAgICAgICB2YXIgX3ByaW1hcnlDaGlsZEZyYWdtZW50NSA9IHdvcmtJblByb2dyZXNzLmNoaWxkO1xuICAgICAgICB2YXIgX3ByZXZPZmZzY3JlZW5TdGF0ZSA9IGN1cnJlbnQuY2hpbGQubWVtb2l6ZWRTdGF0ZTtcbiAgICAgICAgX3ByaW1hcnlDaGlsZEZyYWdtZW50NS5tZW1vaXplZFN0YXRlID0gX3ByZXZPZmZzY3JlZW5TdGF0ZSA9PT0gbnVsbCA/IG1vdW50U3VzcGVuc2VPZmZzY3JlZW5TdGF0ZShyZW5kZXJMYW5lcykgOiB1cGRhdGVTdXNwZW5zZU9mZnNjcmVlblN0YXRlKF9wcmV2T2Zmc2NyZWVuU3RhdGUsIHJlbmRlckxhbmVzKTtcbiAgICAgICAgX3ByaW1hcnlDaGlsZEZyYWdtZW50NS5jaGlsZExhbmVzID0gZ2V0UmVtYWluaW5nV29ya0luUHJpbWFyeVRyZWUoY3VycmVudCwgcmVuZGVyTGFuZXMpOyAvLyBTa2lwIHRoZSBwcmltYXJ5IGNoaWxkcmVuLCBhbmQgY29udGludWUgd29ya2luZyBvbiB0aGVcbiAgICAgICAgLy8gZmFsbGJhY2sgY2hpbGRyZW4uXG5cbiAgICAgICAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IFNVU1BFTkRFRF9NQVJLRVI7XG4gICAgICAgIHJldHVybiBfZmFsbGJhY2tDaGlsZEZyYWdtZW50MjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFN0aWxsIGhhdmVuJ3QgdGltZWQgb3V0LiBDb250aW51ZSByZW5kZXJpbmcgdGhlIGNoaWxkcmVuLCBsaWtlIHdlXG4gICAgICAgIC8vIG5vcm1hbGx5IGRvLlxuICAgICAgICB2YXIgX25leHRQcmltYXJ5Q2hpbGRyZW41ID0gbmV4dFByb3BzLmNoaWxkcmVuO1xuXG4gICAgICAgIHZhciBfcHJpbWFyeUNoaWxkRnJhZ21lbnQ2ID0gdXBkYXRlU3VzcGVuc2VQcmltYXJ5Q2hpbGRyZW4oY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIF9uZXh0UHJpbWFyeUNoaWxkcmVuNSwgcmVuZGVyTGFuZXMpO1xuXG4gICAgICAgIHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBudWxsO1xuICAgICAgICByZXR1cm4gX3ByaW1hcnlDaGlsZEZyYWdtZW50NjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gbW91bnRTdXNwZW5zZVByaW1hcnlDaGlsZHJlbih3b3JrSW5Qcm9ncmVzcywgcHJpbWFyeUNoaWxkcmVuLCByZW5kZXJMYW5lcykge1xuICB2YXIgbW9kZSA9IHdvcmtJblByb2dyZXNzLm1vZGU7XG4gIHZhciBwcmltYXJ5Q2hpbGRQcm9wcyA9IHtcbiAgICBtb2RlOiAndmlzaWJsZScsXG4gICAgY2hpbGRyZW46IHByaW1hcnlDaGlsZHJlblxuICB9O1xuICB2YXIgcHJpbWFyeUNoaWxkRnJhZ21lbnQgPSBjcmVhdGVGaWJlckZyb21PZmZzY3JlZW4ocHJpbWFyeUNoaWxkUHJvcHMsIG1vZGUsIHJlbmRlckxhbmVzLCBudWxsKTtcbiAgcHJpbWFyeUNoaWxkRnJhZ21lbnQucmV0dXJuID0gd29ya0luUHJvZ3Jlc3M7XG4gIHdvcmtJblByb2dyZXNzLmNoaWxkID0gcHJpbWFyeUNoaWxkRnJhZ21lbnQ7XG4gIHJldHVybiBwcmltYXJ5Q2hpbGRGcmFnbWVudDtcbn1cblxuZnVuY3Rpb24gbW91bnRTdXNwZW5zZUZhbGxiYWNrQ2hpbGRyZW4od29ya0luUHJvZ3Jlc3MsIHByaW1hcnlDaGlsZHJlbiwgZmFsbGJhY2tDaGlsZHJlbiwgcmVuZGVyTGFuZXMpIHtcbiAgdmFyIG1vZGUgPSB3b3JrSW5Qcm9ncmVzcy5tb2RlO1xuICB2YXIgcHJvZ3Jlc3NlZFByaW1hcnlGcmFnbWVudCA9IHdvcmtJblByb2dyZXNzLmNoaWxkO1xuICB2YXIgcHJpbWFyeUNoaWxkUHJvcHMgPSB7XG4gICAgbW9kZTogJ2hpZGRlbicsXG4gICAgY2hpbGRyZW46IHByaW1hcnlDaGlsZHJlblxuICB9O1xuICB2YXIgcHJpbWFyeUNoaWxkRnJhZ21lbnQ7XG4gIHZhciBmYWxsYmFja0NoaWxkRnJhZ21lbnQ7XG5cbiAgaWYgKChtb2RlICYgQmxvY2tpbmdNb2RlKSA9PT0gTm9Nb2RlICYmIHByb2dyZXNzZWRQcmltYXJ5RnJhZ21lbnQgIT09IG51bGwpIHtcbiAgICAvLyBJbiBsZWdhY3kgbW9kZSwgd2UgY29tbWl0IHRoZSBwcmltYXJ5IHRyZWUgYXMgaWYgaXQgc3VjY2Vzc2Z1bGx5XG4gICAgLy8gY29tcGxldGVkLCBldmVuIHRob3VnaCBpdCdzIGluIGFuIGluY29uc2lzdGVudCBzdGF0ZS5cbiAgICBwcmltYXJ5Q2hpbGRGcmFnbWVudCA9IHByb2dyZXNzZWRQcmltYXJ5RnJhZ21lbnQ7XG4gICAgcHJpbWFyeUNoaWxkRnJhZ21lbnQuY2hpbGRMYW5lcyA9IE5vTGFuZXM7XG4gICAgcHJpbWFyeUNoaWxkRnJhZ21lbnQucGVuZGluZ1Byb3BzID0gcHJpbWFyeUNoaWxkUHJvcHM7XG5cbiAgICBpZiAoIHdvcmtJblByb2dyZXNzLm1vZGUgJiBQcm9maWxlTW9kZSkge1xuICAgICAgLy8gUmVzZXQgdGhlIGR1cmF0aW9ucyBmcm9tIHRoZSBmaXJzdCBwYXNzIHNvIHRoZXkgYXJlbid0IGluY2x1ZGVkIGluIHRoZVxuICAgICAgLy8gZmluYWwgYW1vdW50cy4gVGhpcyBzZWVtcyBjb3VudGVyaW50dWl0aXZlLCBzaW5jZSB3ZSdyZSBpbnRlbnRpb25hbGx5XG4gICAgICAvLyBub3QgbWVhc3VyaW5nIHBhcnQgb2YgdGhlIHJlbmRlciBwaGFzZSwgYnV0IHRoaXMgbWFrZXMgaXQgbWF0Y2ggd2hhdCB3ZVxuICAgICAgLy8gZG8gaW4gQ29uY3VycmVudCBNb2RlLlxuICAgICAgcHJpbWFyeUNoaWxkRnJhZ21lbnQuYWN0dWFsRHVyYXRpb24gPSAwO1xuICAgICAgcHJpbWFyeUNoaWxkRnJhZ21lbnQuYWN0dWFsU3RhcnRUaW1lID0gLTE7XG4gICAgICBwcmltYXJ5Q2hpbGRGcmFnbWVudC5zZWxmQmFzZUR1cmF0aW9uID0gMDtcbiAgICAgIHByaW1hcnlDaGlsZEZyYWdtZW50LnRyZWVCYXNlRHVyYXRpb24gPSAwO1xuICAgIH1cblxuICAgIGZhbGxiYWNrQ2hpbGRGcmFnbWVudCA9IGNyZWF0ZUZpYmVyRnJvbUZyYWdtZW50KGZhbGxiYWNrQ2hpbGRyZW4sIG1vZGUsIHJlbmRlckxhbmVzLCBudWxsKTtcbiAgfSBlbHNlIHtcbiAgICBwcmltYXJ5Q2hpbGRGcmFnbWVudCA9IGNyZWF0ZUZpYmVyRnJvbU9mZnNjcmVlbihwcmltYXJ5Q2hpbGRQcm9wcywgbW9kZSwgTm9MYW5lcywgbnVsbCk7XG4gICAgZmFsbGJhY2tDaGlsZEZyYWdtZW50ID0gY3JlYXRlRmliZXJGcm9tRnJhZ21lbnQoZmFsbGJhY2tDaGlsZHJlbiwgbW9kZSwgcmVuZGVyTGFuZXMsIG51bGwpO1xuICB9XG5cbiAgcHJpbWFyeUNoaWxkRnJhZ21lbnQucmV0dXJuID0gd29ya0luUHJvZ3Jlc3M7XG4gIGZhbGxiYWNrQ2hpbGRGcmFnbWVudC5yZXR1cm4gPSB3b3JrSW5Qcm9ncmVzcztcbiAgcHJpbWFyeUNoaWxkRnJhZ21lbnQuc2libGluZyA9IGZhbGxiYWNrQ2hpbGRGcmFnbWVudDtcbiAgd29ya0luUHJvZ3Jlc3MuY2hpbGQgPSBwcmltYXJ5Q2hpbGRGcmFnbWVudDtcbiAgcmV0dXJuIGZhbGxiYWNrQ2hpbGRGcmFnbWVudDtcbn1cblxuZnVuY3Rpb24gY3JlYXRlV29ya0luUHJvZ3Jlc3NPZmZzY3JlZW5GaWJlcihjdXJyZW50LCBvZmZzY3JlZW5Qcm9wcykge1xuICAvLyBUaGUgcHJvcHMgYXJndW1lbnQgdG8gYGNyZWF0ZVdvcmtJblByb2dyZXNzYCBpcyBgYW55YCB0eXBlZCwgc28gd2UgdXNlIHRoaXNcbiAgLy8gd3JhcHBlciBmdW5jdGlvbiB0byBjb25zdHJhaW4gaXQuXG4gIHJldHVybiBjcmVhdGVXb3JrSW5Qcm9ncmVzcyhjdXJyZW50LCBvZmZzY3JlZW5Qcm9wcyk7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZVN1c3BlbnNlUHJpbWFyeUNoaWxkcmVuKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBwcmltYXJ5Q2hpbGRyZW4sIHJlbmRlckxhbmVzKSB7XG4gIHZhciBjdXJyZW50UHJpbWFyeUNoaWxkRnJhZ21lbnQgPSBjdXJyZW50LmNoaWxkO1xuICB2YXIgY3VycmVudEZhbGxiYWNrQ2hpbGRGcmFnbWVudCA9IGN1cnJlbnRQcmltYXJ5Q2hpbGRGcmFnbWVudC5zaWJsaW5nO1xuICB2YXIgcHJpbWFyeUNoaWxkRnJhZ21lbnQgPSBjcmVhdGVXb3JrSW5Qcm9ncmVzc09mZnNjcmVlbkZpYmVyKGN1cnJlbnRQcmltYXJ5Q2hpbGRGcmFnbWVudCwge1xuICAgIG1vZGU6ICd2aXNpYmxlJyxcbiAgICBjaGlsZHJlbjogcHJpbWFyeUNoaWxkcmVuXG4gIH0pO1xuXG4gIGlmICgod29ya0luUHJvZ3Jlc3MubW9kZSAmIEJsb2NraW5nTW9kZSkgPT09IE5vTW9kZSkge1xuICAgIHByaW1hcnlDaGlsZEZyYWdtZW50LmxhbmVzID0gcmVuZGVyTGFuZXM7XG4gIH1cblxuICBwcmltYXJ5Q2hpbGRGcmFnbWVudC5yZXR1cm4gPSB3b3JrSW5Qcm9ncmVzcztcbiAgcHJpbWFyeUNoaWxkRnJhZ21lbnQuc2libGluZyA9IG51bGw7XG5cbiAgaWYgKGN1cnJlbnRGYWxsYmFja0NoaWxkRnJhZ21lbnQgIT09IG51bGwpIHtcbiAgICAvLyBEZWxldGUgdGhlIGZhbGxiYWNrIGNoaWxkIGZyYWdtZW50XG4gICAgY3VycmVudEZhbGxiYWNrQ2hpbGRGcmFnbWVudC5uZXh0RWZmZWN0ID0gbnVsbDtcbiAgICBjdXJyZW50RmFsbGJhY2tDaGlsZEZyYWdtZW50LmZsYWdzID0gRGVsZXRpb247XG4gICAgd29ya0luUHJvZ3Jlc3MuZmlyc3RFZmZlY3QgPSB3b3JrSW5Qcm9ncmVzcy5sYXN0RWZmZWN0ID0gY3VycmVudEZhbGxiYWNrQ2hpbGRGcmFnbWVudDtcbiAgfVxuXG4gIHdvcmtJblByb2dyZXNzLmNoaWxkID0gcHJpbWFyeUNoaWxkRnJhZ21lbnQ7XG4gIHJldHVybiBwcmltYXJ5Q2hpbGRGcmFnbWVudDtcbn1cblxuZnVuY3Rpb24gdXBkYXRlU3VzcGVuc2VGYWxsYmFja0NoaWxkcmVuKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBwcmltYXJ5Q2hpbGRyZW4sIGZhbGxiYWNrQ2hpbGRyZW4sIHJlbmRlckxhbmVzKSB7XG4gIHZhciBtb2RlID0gd29ya0luUHJvZ3Jlc3MubW9kZTtcbiAgdmFyIGN1cnJlbnRQcmltYXJ5Q2hpbGRGcmFnbWVudCA9IGN1cnJlbnQuY2hpbGQ7XG4gIHZhciBjdXJyZW50RmFsbGJhY2tDaGlsZEZyYWdtZW50ID0gY3VycmVudFByaW1hcnlDaGlsZEZyYWdtZW50LnNpYmxpbmc7XG4gIHZhciBwcmltYXJ5Q2hpbGRQcm9wcyA9IHtcbiAgICBtb2RlOiAnaGlkZGVuJyxcbiAgICBjaGlsZHJlbjogcHJpbWFyeUNoaWxkcmVuXG4gIH07XG4gIHZhciBwcmltYXJ5Q2hpbGRGcmFnbWVudDtcblxuICBpZiAoIC8vIEluIGxlZ2FjeSBtb2RlLCB3ZSBjb21taXQgdGhlIHByaW1hcnkgdHJlZSBhcyBpZiBpdCBzdWNjZXNzZnVsbHlcbiAgLy8gY29tcGxldGVkLCBldmVuIHRob3VnaCBpdCdzIGluIGFuIGluY29uc2lzdGVudCBzdGF0ZS5cbiAgKG1vZGUgJiBCbG9ja2luZ01vZGUpID09PSBOb01vZGUgJiYgLy8gTWFrZSBzdXJlIHdlJ3JlIG9uIHRoZSBzZWNvbmQgcGFzcywgaS5lLiB0aGUgcHJpbWFyeSBjaGlsZCBmcmFnbWVudCB3YXNcbiAgLy8gYWxyZWFkeSBjbG9uZWQuIEluIGxlZ2FjeSBtb2RlLCB0aGUgb25seSBjYXNlIHdoZXJlIHRoaXMgaXNuJ3QgdHJ1ZSBpc1xuICAvLyB3aGVuIERldlRvb2xzIGZvcmNlcyB1cyB0byBkaXNwbGF5IGEgZmFsbGJhY2s7IHdlIHNraXAgdGhlIGZpcnN0IHJlbmRlclxuICAvLyBwYXNzIGVudGlyZWx5IGFuZCBnbyBzdHJhaWdodCB0byByZW5kZXJpbmcgdGhlIGZhbGxiYWNrLiAoSW4gQ29uY3VycmVudFxuICAvLyBNb2RlLCBTdXNwZW5zZUxpc3QgY2FuIGFsc28gdHJpZ2dlciB0aGlzIHNjZW5hcmlvLCBidXQgdGhpcyBpcyBhIGxlZ2FjeS1cbiAgLy8gb25seSBjb2RlcGF0aC4pXG4gIHdvcmtJblByb2dyZXNzLmNoaWxkICE9PSBjdXJyZW50UHJpbWFyeUNoaWxkRnJhZ21lbnQpIHtcbiAgICB2YXIgcHJvZ3Jlc3NlZFByaW1hcnlGcmFnbWVudCA9IHdvcmtJblByb2dyZXNzLmNoaWxkO1xuICAgIHByaW1hcnlDaGlsZEZyYWdtZW50ID0gcHJvZ3Jlc3NlZFByaW1hcnlGcmFnbWVudDtcbiAgICBwcmltYXJ5Q2hpbGRGcmFnbWVudC5jaGlsZExhbmVzID0gTm9MYW5lcztcbiAgICBwcmltYXJ5Q2hpbGRGcmFnbWVudC5wZW5kaW5nUHJvcHMgPSBwcmltYXJ5Q2hpbGRQcm9wcztcblxuICAgIGlmICggd29ya0luUHJvZ3Jlc3MubW9kZSAmIFByb2ZpbGVNb2RlKSB7XG4gICAgICAvLyBSZXNldCB0aGUgZHVyYXRpb25zIGZyb20gdGhlIGZpcnN0IHBhc3Mgc28gdGhleSBhcmVuJ3QgaW5jbHVkZWQgaW4gdGhlXG4gICAgICAvLyBmaW5hbCBhbW91bnRzLiBUaGlzIHNlZW1zIGNvdW50ZXJpbnR1aXRpdmUsIHNpbmNlIHdlJ3JlIGludGVudGlvbmFsbHlcbiAgICAgIC8vIG5vdCBtZWFzdXJpbmcgcGFydCBvZiB0aGUgcmVuZGVyIHBoYXNlLCBidXQgdGhpcyBtYWtlcyBpdCBtYXRjaCB3aGF0IHdlXG4gICAgICAvLyBkbyBpbiBDb25jdXJyZW50IE1vZGUuXG4gICAgICBwcmltYXJ5Q2hpbGRGcmFnbWVudC5hY3R1YWxEdXJhdGlvbiA9IDA7XG4gICAgICBwcmltYXJ5Q2hpbGRGcmFnbWVudC5hY3R1YWxTdGFydFRpbWUgPSAtMTtcbiAgICAgIHByaW1hcnlDaGlsZEZyYWdtZW50LnNlbGZCYXNlRHVyYXRpb24gPSBjdXJyZW50UHJpbWFyeUNoaWxkRnJhZ21lbnQuc2VsZkJhc2VEdXJhdGlvbjtcbiAgICAgIHByaW1hcnlDaGlsZEZyYWdtZW50LnRyZWVCYXNlRHVyYXRpb24gPSBjdXJyZW50UHJpbWFyeUNoaWxkRnJhZ21lbnQudHJlZUJhc2VEdXJhdGlvbjtcbiAgICB9IC8vIFRoZSBmYWxsYmFjayBmaWJlciB3YXMgYWRkZWQgYXMgYSBkZWxldGlvbiBlZmZlY3QgZHVyaW5nIHRoZSBmaXJzdCBwYXNzLlxuICAgIC8vIEhvd2V2ZXIsIHNpbmNlIHdlJ3JlIGdvaW5nIHRvIHJlbWFpbiBvbiB0aGUgZmFsbGJhY2ssIHdlIG5vIGxvbmdlciB3YW50XG4gICAgLy8gdG8gZGVsZXRlIGl0LiBTbyB3ZSBuZWVkIHRvIHJlbW92ZSBpdCBmcm9tIHRoZSBsaXN0LiBEZWxldGlvbnMgYXJlIHN0b3JlZFxuICAgIC8vIG9uIHRoZSBzYW1lIGxpc3QgYXMgZWZmZWN0cy4gV2Ugd2FudCB0byBrZWVwIHRoZSBlZmZlY3RzIGZyb20gdGhlIHByaW1hcnlcbiAgICAvLyB0cmVlLiBTbyB3ZSBjb3B5IHRoZSBwcmltYXJ5IGNoaWxkIGZyYWdtZW50J3MgZWZmZWN0IGxpc3QsIHdoaWNoIGRvZXMgbm90XG4gICAgLy8gaW5jbHVkZSB0aGUgZmFsbGJhY2sgZGVsZXRpb24gZWZmZWN0LlxuXG5cbiAgICB2YXIgcHJvZ3Jlc3NlZExhc3RFZmZlY3QgPSBwcmltYXJ5Q2hpbGRGcmFnbWVudC5sYXN0RWZmZWN0O1xuXG4gICAgaWYgKHByb2dyZXNzZWRMYXN0RWZmZWN0ICE9PSBudWxsKSB7XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5maXJzdEVmZmVjdCA9IHByaW1hcnlDaGlsZEZyYWdtZW50LmZpcnN0RWZmZWN0O1xuICAgICAgd29ya0luUHJvZ3Jlc3MubGFzdEVmZmVjdCA9IHByb2dyZXNzZWRMYXN0RWZmZWN0O1xuICAgICAgcHJvZ3Jlc3NlZExhc3RFZmZlY3QubmV4dEVmZmVjdCA9IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRPRE86IFJlc2V0IHRoaXMgc29tZXdoZXJlIGVsc2U/IExvbCBsZWdhY3kgbW9kZSBpcyBzbyB3ZWlyZC5cbiAgICAgIHdvcmtJblByb2dyZXNzLmZpcnN0RWZmZWN0ID0gd29ya0luUHJvZ3Jlc3MubGFzdEVmZmVjdCA9IG51bGw7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHByaW1hcnlDaGlsZEZyYWdtZW50ID0gY3JlYXRlV29ya0luUHJvZ3Jlc3NPZmZzY3JlZW5GaWJlcihjdXJyZW50UHJpbWFyeUNoaWxkRnJhZ21lbnQsIHByaW1hcnlDaGlsZFByb3BzKTtcbiAgfVxuXG4gIHZhciBmYWxsYmFja0NoaWxkRnJhZ21lbnQ7XG5cbiAgaWYgKGN1cnJlbnRGYWxsYmFja0NoaWxkRnJhZ21lbnQgIT09IG51bGwpIHtcbiAgICBmYWxsYmFja0NoaWxkRnJhZ21lbnQgPSBjcmVhdGVXb3JrSW5Qcm9ncmVzcyhjdXJyZW50RmFsbGJhY2tDaGlsZEZyYWdtZW50LCBmYWxsYmFja0NoaWxkcmVuKTtcbiAgfSBlbHNlIHtcbiAgICBmYWxsYmFja0NoaWxkRnJhZ21lbnQgPSBjcmVhdGVGaWJlckZyb21GcmFnbWVudChmYWxsYmFja0NoaWxkcmVuLCBtb2RlLCByZW5kZXJMYW5lcywgbnVsbCk7IC8vIE5lZWRzIGEgcGxhY2VtZW50IGVmZmVjdCBiZWNhdXNlIHRoZSBwYXJlbnQgKHRoZSBTdXNwZW5zZSBib3VuZGFyeSkgYWxyZWFkeVxuICAgIC8vIG1vdW50ZWQgYnV0IHRoaXMgaXMgYSBuZXcgZmliZXIuXG5cbiAgICBmYWxsYmFja0NoaWxkRnJhZ21lbnQuZmxhZ3MgfD0gUGxhY2VtZW50O1xuICB9XG5cbiAgZmFsbGJhY2tDaGlsZEZyYWdtZW50LnJldHVybiA9IHdvcmtJblByb2dyZXNzO1xuICBwcmltYXJ5Q2hpbGRGcmFnbWVudC5yZXR1cm4gPSB3b3JrSW5Qcm9ncmVzcztcbiAgcHJpbWFyeUNoaWxkRnJhZ21lbnQuc2libGluZyA9IGZhbGxiYWNrQ2hpbGRGcmFnbWVudDtcbiAgd29ya0luUHJvZ3Jlc3MuY2hpbGQgPSBwcmltYXJ5Q2hpbGRGcmFnbWVudDtcbiAgcmV0dXJuIGZhbGxiYWNrQ2hpbGRGcmFnbWVudDtcbn1cblxuZnVuY3Rpb24gc2NoZWR1bGVXb3JrT25GaWJlcihmaWJlciwgcmVuZGVyTGFuZXMpIHtcbiAgZmliZXIubGFuZXMgPSBtZXJnZUxhbmVzKGZpYmVyLmxhbmVzLCByZW5kZXJMYW5lcyk7XG4gIHZhciBhbHRlcm5hdGUgPSBmaWJlci5hbHRlcm5hdGU7XG5cbiAgaWYgKGFsdGVybmF0ZSAhPT0gbnVsbCkge1xuICAgIGFsdGVybmF0ZS5sYW5lcyA9IG1lcmdlTGFuZXMoYWx0ZXJuYXRlLmxhbmVzLCByZW5kZXJMYW5lcyk7XG4gIH1cblxuICBzY2hlZHVsZVdvcmtPblBhcmVudFBhdGgoZmliZXIucmV0dXJuLCByZW5kZXJMYW5lcyk7XG59XG5cbmZ1bmN0aW9uIHByb3BhZ2F0ZVN1c3BlbnNlQ29udGV4dENoYW5nZSh3b3JrSW5Qcm9ncmVzcywgZmlyc3RDaGlsZCwgcmVuZGVyTGFuZXMpIHtcbiAgLy8gTWFyayBhbnkgU3VzcGVuc2UgYm91bmRhcmllcyB3aXRoIGZhbGxiYWNrcyBhcyBoYXZpbmcgd29yayB0byBkby5cbiAgLy8gSWYgdGhleSB3ZXJlIHByZXZpb3VzbHkgZm9yY2VkIGludG8gZmFsbGJhY2tzLCB0aGV5IG1heSBub3cgYmUgYWJsZVxuICAvLyB0byB1bmJsb2NrLlxuICB2YXIgbm9kZSA9IGZpcnN0Q2hpbGQ7XG5cbiAgd2hpbGUgKG5vZGUgIT09IG51bGwpIHtcbiAgICBpZiAobm9kZS50YWcgPT09IFN1c3BlbnNlQ29tcG9uZW50KSB7XG4gICAgICB2YXIgc3RhdGUgPSBub2RlLm1lbW9pemVkU3RhdGU7XG5cbiAgICAgIGlmIChzdGF0ZSAhPT0gbnVsbCkge1xuICAgICAgICBzY2hlZHVsZVdvcmtPbkZpYmVyKG5vZGUsIHJlbmRlckxhbmVzKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKG5vZGUudGFnID09PSBTdXNwZW5zZUxpc3RDb21wb25lbnQpIHtcbiAgICAgIC8vIElmIHRoZSB0YWlsIGlzIGhpZGRlbiB0aGVyZSBtaWdodCBub3QgYmUgYW4gU3VzcGVuc2UgYm91bmRhcmllc1xuICAgICAgLy8gdG8gc2NoZWR1bGUgd29yayBvbi4gSW4gdGhpcyBjYXNlIHdlIGhhdmUgdG8gc2NoZWR1bGUgaXQgb24gdGhlXG4gICAgICAvLyBsaXN0IGl0c2VsZi5cbiAgICAgIC8vIFdlIGRvbid0IGhhdmUgdG8gdHJhdmVyc2UgdG8gdGhlIGNoaWxkcmVuIG9mIHRoZSBsaXN0IHNpbmNlXG4gICAgICAvLyB0aGUgbGlzdCB3aWxsIHByb3BhZ2F0ZSB0aGUgY2hhbmdlIHdoZW4gaXQgcmVyZW5kZXJzLlxuICAgICAgc2NoZWR1bGVXb3JrT25GaWJlcihub2RlLCByZW5kZXJMYW5lcyk7XG4gICAgfSBlbHNlIGlmIChub2RlLmNoaWxkICE9PSBudWxsKSB7XG4gICAgICBub2RlLmNoaWxkLnJldHVybiA9IG5vZGU7XG4gICAgICBub2RlID0gbm9kZS5jaGlsZDtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmIChub2RlID09PSB3b3JrSW5Qcm9ncmVzcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHdoaWxlIChub2RlLnNpYmxpbmcgPT09IG51bGwpIHtcbiAgICAgIGlmIChub2RlLnJldHVybiA9PT0gbnVsbCB8fCBub2RlLnJldHVybiA9PT0gd29ya0luUHJvZ3Jlc3MpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBub2RlID0gbm9kZS5yZXR1cm47XG4gICAgfVxuXG4gICAgbm9kZS5zaWJsaW5nLnJldHVybiA9IG5vZGUucmV0dXJuO1xuICAgIG5vZGUgPSBub2RlLnNpYmxpbmc7XG4gIH1cbn1cblxuZnVuY3Rpb24gZmluZExhc3RDb250ZW50Um93KGZpcnN0Q2hpbGQpIHtcbiAgLy8gVGhpcyBpcyBnb2luZyB0byBmaW5kIHRoZSBsYXN0IHJvdyBhbW9uZyB0aGVzZSBjaGlsZHJlbiB0aGF0IGlzIGFscmVhZHlcbiAgLy8gc2hvd2luZyBjb250ZW50IG9uIHRoZSBzY3JlZW4sIGFzIG9wcG9zZWQgdG8gYmVpbmcgaW4gZmFsbGJhY2sgc3RhdGUgb3JcbiAgLy8gbmV3LiBJZiBhIHJvdyBoYXMgbXVsdGlwbGUgU3VzcGVuc2UgYm91bmRhcmllcywgYW55IG9mIHRoZW0gYmVpbmcgaW4gdGhlXG4gIC8vIGZhbGxiYWNrIHN0YXRlLCBjb3VudHMgYXMgdGhlIHdob2xlIHJvdyBiZWluZyBpbiBhIGZhbGxiYWNrIHN0YXRlLlxuICAvLyBOb3RlIHRoYXQgdGhlIFwicm93c1wiIHdpbGwgYmUgd29ya0luUHJvZ3Jlc3MsIGJ1dCBhbnkgbmVzdGVkIGNoaWxkcmVuXG4gIC8vIHdpbGwgc3RpbGwgYmUgY3VycmVudCBzaW5jZSB3ZSBoYXZlbid0IHJlbmRlcmVkIHRoZW0geWV0LiBUaGUgbW91bnRlZFxuICAvLyBvcmRlciBtYXkgbm90IGJlIHRoZSBzYW1lIGFzIHRoZSBuZXcgb3JkZXIuIFdlIHVzZSB0aGUgbmV3IG9yZGVyLlxuICB2YXIgcm93ID0gZmlyc3RDaGlsZDtcbiAgdmFyIGxhc3RDb250ZW50Um93ID0gbnVsbDtcblxuICB3aGlsZSAocm93ICE9PSBudWxsKSB7XG4gICAgdmFyIGN1cnJlbnRSb3cgPSByb3cuYWx0ZXJuYXRlOyAvLyBOZXcgcm93cyBjYW4ndCBiZSBjb250ZW50IHJvd3MuXG5cbiAgICBpZiAoY3VycmVudFJvdyAhPT0gbnVsbCAmJiBmaW5kRmlyc3RTdXNwZW5kZWQoY3VycmVudFJvdykgPT09IG51bGwpIHtcbiAgICAgIGxhc3RDb250ZW50Um93ID0gcm93O1xuICAgIH1cblxuICAgIHJvdyA9IHJvdy5zaWJsaW5nO1xuICB9XG5cbiAgcmV0dXJuIGxhc3RDb250ZW50Um93O1xufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVJldmVhbE9yZGVyKHJldmVhbE9yZGVyKSB7XG4gIHtcbiAgICBpZiAocmV2ZWFsT3JkZXIgIT09IHVuZGVmaW5lZCAmJiByZXZlYWxPcmRlciAhPT0gJ2ZvcndhcmRzJyAmJiByZXZlYWxPcmRlciAhPT0gJ2JhY2t3YXJkcycgJiYgcmV2ZWFsT3JkZXIgIT09ICd0b2dldGhlcicgJiYgIWRpZFdhcm5BYm91dFJldmVhbE9yZGVyW3JldmVhbE9yZGVyXSkge1xuICAgICAgZGlkV2FybkFib3V0UmV2ZWFsT3JkZXJbcmV2ZWFsT3JkZXJdID0gdHJ1ZTtcblxuICAgICAgaWYgKHR5cGVvZiByZXZlYWxPcmRlciA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgc3dpdGNoIChyZXZlYWxPcmRlci50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgICAgY2FzZSAndG9nZXRoZXInOlxuICAgICAgICAgIGNhc2UgJ2ZvcndhcmRzJzpcbiAgICAgICAgICBjYXNlICdiYWNrd2FyZHMnOlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBlcnJvcignXCIlc1wiIGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciByZXZlYWxPcmRlciBvbiA8U3VzcGVuc2VMaXN0IC8+LiAnICsgJ1VzZSBsb3dlcmNhc2UgXCIlc1wiIGluc3RlYWQuJywgcmV2ZWFsT3JkZXIsIHJldmVhbE9yZGVyLnRvTG93ZXJDYXNlKCkpO1xuXG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgY2FzZSAnZm9yd2FyZCc6XG4gICAgICAgICAgY2FzZSAnYmFja3dhcmQnOlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBlcnJvcignXCIlc1wiIGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciByZXZlYWxPcmRlciBvbiA8U3VzcGVuc2VMaXN0IC8+LiAnICsgJ1JlYWN0IHVzZXMgdGhlIC1zIHN1ZmZpeCBpbiB0aGUgc3BlbGxpbmcuIFVzZSBcIiVzc1wiIGluc3RlYWQuJywgcmV2ZWFsT3JkZXIsIHJldmVhbE9yZGVyLnRvTG93ZXJDYXNlKCkpO1xuXG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGVycm9yKCdcIiVzXCIgaXMgbm90IGEgc3VwcG9ydGVkIHJldmVhbE9yZGVyIG9uIDxTdXNwZW5zZUxpc3QgLz4uICcgKyAnRGlkIHlvdSBtZWFuIFwidG9nZXRoZXJcIiwgXCJmb3J3YXJkc1wiIG9yIFwiYmFja3dhcmRzXCI/JywgcmV2ZWFsT3JkZXIpO1xuXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXJyb3IoJyVzIGlzIG5vdCBhIHN1cHBvcnRlZCB2YWx1ZSBmb3IgcmV2ZWFsT3JkZXIgb24gPFN1c3BlbnNlTGlzdCAvPi4gJyArICdEaWQgeW91IG1lYW4gXCJ0b2dldGhlclwiLCBcImZvcndhcmRzXCIgb3IgXCJiYWNrd2FyZHNcIj8nLCByZXZlYWxPcmRlcik7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlVGFpbE9wdGlvbnModGFpbE1vZGUsIHJldmVhbE9yZGVyKSB7XG4gIHtcbiAgICBpZiAodGFpbE1vZGUgIT09IHVuZGVmaW5lZCAmJiAhZGlkV2FybkFib3V0VGFpbE9wdGlvbnNbdGFpbE1vZGVdKSB7XG4gICAgICBpZiAodGFpbE1vZGUgIT09ICdjb2xsYXBzZWQnICYmIHRhaWxNb2RlICE9PSAnaGlkZGVuJykge1xuICAgICAgICBkaWRXYXJuQWJvdXRUYWlsT3B0aW9uc1t0YWlsTW9kZV0gPSB0cnVlO1xuXG4gICAgICAgIGVycm9yKCdcIiVzXCIgaXMgbm90IGEgc3VwcG9ydGVkIHZhbHVlIGZvciB0YWlsIG9uIDxTdXNwZW5zZUxpc3QgLz4uICcgKyAnRGlkIHlvdSBtZWFuIFwiY29sbGFwc2VkXCIgb3IgXCJoaWRkZW5cIj8nLCB0YWlsTW9kZSk7XG4gICAgICB9IGVsc2UgaWYgKHJldmVhbE9yZGVyICE9PSAnZm9yd2FyZHMnICYmIHJldmVhbE9yZGVyICE9PSAnYmFja3dhcmRzJykge1xuICAgICAgICBkaWRXYXJuQWJvdXRUYWlsT3B0aW9uc1t0YWlsTW9kZV0gPSB0cnVlO1xuXG4gICAgICAgIGVycm9yKCc8U3VzcGVuc2VMaXN0IHRhaWw9XCIlc1wiIC8+IGlzIG9ubHkgdmFsaWQgaWYgcmV2ZWFsT3JkZXIgaXMgJyArICdcImZvcndhcmRzXCIgb3IgXCJiYWNrd2FyZHNcIi4gJyArICdEaWQgeW91IG1lYW4gdG8gc3BlY2lmeSByZXZlYWxPcmRlcj1cImZvcndhcmRzXCI/JywgdGFpbE1vZGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVN1c3BlbnNlTGlzdE5lc3RlZENoaWxkKGNoaWxkU2xvdCwgaW5kZXgpIHtcbiAge1xuICAgIHZhciBpc0FycmF5ID0gQXJyYXkuaXNBcnJheShjaGlsZFNsb3QpO1xuICAgIHZhciBpc0l0ZXJhYmxlID0gIWlzQXJyYXkgJiYgdHlwZW9mIGdldEl0ZXJhdG9yRm4oY2hpbGRTbG90KSA9PT0gJ2Z1bmN0aW9uJztcblxuICAgIGlmIChpc0FycmF5IHx8IGlzSXRlcmFibGUpIHtcbiAgICAgIHZhciB0eXBlID0gaXNBcnJheSA/ICdhcnJheScgOiAnaXRlcmFibGUnO1xuXG4gICAgICBlcnJvcignQSBuZXN0ZWQgJXMgd2FzIHBhc3NlZCB0byByb3cgIyVzIGluIDxTdXNwZW5zZUxpc3QgLz4uIFdyYXAgaXQgaW4gJyArICdhbiBhZGRpdGlvbmFsIFN1c3BlbnNlTGlzdCB0byBjb25maWd1cmUgaXRzIHJldmVhbE9yZGVyOiAnICsgJzxTdXNwZW5zZUxpc3QgcmV2ZWFsT3JkZXI9Li4uPiAuLi4gJyArICc8U3VzcGVuc2VMaXN0IHJldmVhbE9yZGVyPS4uLj57JXN9PC9TdXNwZW5zZUxpc3Q+IC4uLiAnICsgJzwvU3VzcGVuc2VMaXN0PicsIHR5cGUsIGluZGV4LCB0eXBlKTtcblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVN1c3BlbnNlTGlzdENoaWxkcmVuKGNoaWxkcmVuLCByZXZlYWxPcmRlcikge1xuICB7XG4gICAgaWYgKChyZXZlYWxPcmRlciA9PT0gJ2ZvcndhcmRzJyB8fCByZXZlYWxPcmRlciA9PT0gJ2JhY2t3YXJkcycpICYmIGNoaWxkcmVuICE9PSB1bmRlZmluZWQgJiYgY2hpbGRyZW4gIT09IG51bGwgJiYgY2hpbGRyZW4gIT09IGZhbHNlKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShjaGlsZHJlbikpIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGlmICghdmFsaWRhdGVTdXNwZW5zZUxpc3ROZXN0ZWRDaGlsZChjaGlsZHJlbltpXSwgaSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBpdGVyYXRvckZuID0gZ2V0SXRlcmF0b3JGbihjaGlsZHJlbik7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBpdGVyYXRvckZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgdmFyIGNoaWxkcmVuSXRlcmF0b3IgPSBpdGVyYXRvckZuLmNhbGwoY2hpbGRyZW4pO1xuXG4gICAgICAgICAgaWYgKGNoaWxkcmVuSXRlcmF0b3IpIHtcbiAgICAgICAgICAgIHZhciBzdGVwID0gY2hpbGRyZW5JdGVyYXRvci5uZXh0KCk7XG4gICAgICAgICAgICB2YXIgX2kgPSAwO1xuXG4gICAgICAgICAgICBmb3IgKDsgIXN0ZXAuZG9uZTsgc3RlcCA9IGNoaWxkcmVuSXRlcmF0b3IubmV4dCgpKSB7XG4gICAgICAgICAgICAgIGlmICghdmFsaWRhdGVTdXNwZW5zZUxpc3ROZXN0ZWRDaGlsZChzdGVwLnZhbHVlLCBfaSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBfaSsrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBlcnJvcignQSBzaW5nbGUgcm93IHdhcyBwYXNzZWQgdG8gYSA8U3VzcGVuc2VMaXN0IHJldmVhbE9yZGVyPVwiJXNcIiAvPi4gJyArICdUaGlzIGlzIG5vdCB1c2VmdWwgc2luY2UgaXQgbmVlZHMgbXVsdGlwbGUgcm93cy4gJyArICdEaWQgeW91IG1lYW4gdG8gcGFzcyBtdWx0aXBsZSBjaGlsZHJlbiBvciBhbiBhcnJheT8nLCByZXZlYWxPcmRlcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gaW5pdFN1c3BlbnNlTGlzdFJlbmRlclN0YXRlKHdvcmtJblByb2dyZXNzLCBpc0JhY2t3YXJkcywgdGFpbCwgbGFzdENvbnRlbnRSb3csIHRhaWxNb2RlLCBsYXN0RWZmZWN0QmVmb3JlUmVuZGVyaW5nKSB7XG4gIHZhciByZW5kZXJTdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG5cbiAgaWYgKHJlbmRlclN0YXRlID09PSBudWxsKSB7XG4gICAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IHtcbiAgICAgIGlzQmFja3dhcmRzOiBpc0JhY2t3YXJkcyxcbiAgICAgIHJlbmRlcmluZzogbnVsbCxcbiAgICAgIHJlbmRlcmluZ1N0YXJ0VGltZTogMCxcbiAgICAgIGxhc3Q6IGxhc3RDb250ZW50Um93LFxuICAgICAgdGFpbDogdGFpbCxcbiAgICAgIHRhaWxNb2RlOiB0YWlsTW9kZSxcbiAgICAgIGxhc3RFZmZlY3Q6IGxhc3RFZmZlY3RCZWZvcmVSZW5kZXJpbmdcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIC8vIFdlIGNhbiByZXVzZSB0aGUgZXhpc3Rpbmcgb2JqZWN0IGZyb20gcHJldmlvdXMgcmVuZGVycy5cbiAgICByZW5kZXJTdGF0ZS5pc0JhY2t3YXJkcyA9IGlzQmFja3dhcmRzO1xuICAgIHJlbmRlclN0YXRlLnJlbmRlcmluZyA9IG51bGw7XG4gICAgcmVuZGVyU3RhdGUucmVuZGVyaW5nU3RhcnRUaW1lID0gMDtcbiAgICByZW5kZXJTdGF0ZS5sYXN0ID0gbGFzdENvbnRlbnRSb3c7XG4gICAgcmVuZGVyU3RhdGUudGFpbCA9IHRhaWw7XG4gICAgcmVuZGVyU3RhdGUudGFpbE1vZGUgPSB0YWlsTW9kZTtcbiAgICByZW5kZXJTdGF0ZS5sYXN0RWZmZWN0ID0gbGFzdEVmZmVjdEJlZm9yZVJlbmRlcmluZztcbiAgfVxufSAvLyBUaGlzIGNhbiBlbmQgdXAgcmVuZGVyaW5nIHRoaXMgY29tcG9uZW50IG11bHRpcGxlIHBhc3Nlcy5cbi8vIFRoZSBmaXJzdCBwYXNzIHNwbGl0cyB0aGUgY2hpbGRyZW4gZmliZXJzIGludG8gdHdvIHNldHMuIEEgaGVhZCBhbmQgdGFpbC5cbi8vIFdlIGZpcnN0IHJlbmRlciB0aGUgaGVhZC4gSWYgYW55dGhpbmcgaXMgaW4gZmFsbGJhY2sgc3RhdGUsIHdlIGRvIGFub3RoZXJcbi8vIHBhc3MgdGhyb3VnaCBiZWdpbldvcmsgdG8gcmVyZW5kZXIgYWxsIGNoaWxkcmVuIChpbmNsdWRpbmcgdGhlIHRhaWwpIHdpdGhcbi8vIHRoZSBmb3JjZSBzdXNwZW5kIGNvbnRleHQuIElmIHRoZSBmaXJzdCByZW5kZXIgZGlkbid0IGhhdmUgYW55dGhpbmcgaW5cbi8vIGluIGZhbGxiYWNrIHN0YXRlLiBUaGVuIHdlIHJlbmRlciBlYWNoIHJvdyBpbiB0aGUgdGFpbCBvbmUtYnktb25lLlxuLy8gVGhhdCBoYXBwZW5zIGluIHRoZSBjb21wbGV0ZVdvcmsgcGhhc2Ugd2l0aG91dCBnb2luZyBiYWNrIHRvIGJlZ2luV29yay5cblxuXG5mdW5jdGlvbiB1cGRhdGVTdXNwZW5zZUxpc3RDb21wb25lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKSB7XG4gIHZhciBuZXh0UHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHM7XG4gIHZhciByZXZlYWxPcmRlciA9IG5leHRQcm9wcy5yZXZlYWxPcmRlcjtcbiAgdmFyIHRhaWxNb2RlID0gbmV4dFByb3BzLnRhaWw7XG4gIHZhciBuZXdDaGlsZHJlbiA9IG5leHRQcm9wcy5jaGlsZHJlbjtcbiAgdmFsaWRhdGVSZXZlYWxPcmRlcihyZXZlYWxPcmRlcik7XG4gIHZhbGlkYXRlVGFpbE9wdGlvbnModGFpbE1vZGUsIHJldmVhbE9yZGVyKTtcbiAgdmFsaWRhdGVTdXNwZW5zZUxpc3RDaGlsZHJlbihuZXdDaGlsZHJlbiwgcmV2ZWFsT3JkZXIpO1xuICByZWNvbmNpbGVDaGlsZHJlbihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgbmV3Q2hpbGRyZW4sIHJlbmRlckxhbmVzKTtcbiAgdmFyIHN1c3BlbnNlQ29udGV4dCA9IHN1c3BlbnNlU3RhY2tDdXJzb3IuY3VycmVudDtcbiAgdmFyIHNob3VsZEZvcmNlRmFsbGJhY2sgPSBoYXNTdXNwZW5zZUNvbnRleHQoc3VzcGVuc2VDb250ZXh0LCBGb3JjZVN1c3BlbnNlRmFsbGJhY2spO1xuXG4gIGlmIChzaG91bGRGb3JjZUZhbGxiYWNrKSB7XG4gICAgc3VzcGVuc2VDb250ZXh0ID0gc2V0U2hhbGxvd1N1c3BlbnNlQ29udGV4dChzdXNwZW5zZUNvbnRleHQsIEZvcmNlU3VzcGVuc2VGYWxsYmFjayk7XG4gICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gRGlkQ2FwdHVyZTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgZGlkU3VzcGVuZEJlZm9yZSA9IGN1cnJlbnQgIT09IG51bGwgJiYgKGN1cnJlbnQuZmxhZ3MgJiBEaWRDYXB0dXJlKSAhPT0gTm9GbGFncztcblxuICAgIGlmIChkaWRTdXNwZW5kQmVmb3JlKSB7XG4gICAgICAvLyBJZiB3ZSBwcmV2aW91c2x5IGZvcmNlZCBhIGZhbGxiYWNrLCB3ZSBuZWVkIHRvIHNjaGVkdWxlIHdvcmtcbiAgICAgIC8vIG9uIGFueSBuZXN0ZWQgYm91bmRhcmllcyB0byBsZXQgdGhlbSBrbm93IHRvIHRyeSB0byByZW5kZXJcbiAgICAgIC8vIGFnYWluLiBUaGlzIGlzIHRoZSBzYW1lIGFzIGNvbnRleHQgdXBkYXRpbmcuXG4gICAgICBwcm9wYWdhdGVTdXNwZW5zZUNvbnRleHRDaGFuZ2Uod29ya0luUHJvZ3Jlc3MsIHdvcmtJblByb2dyZXNzLmNoaWxkLCByZW5kZXJMYW5lcyk7XG4gICAgfVxuXG4gICAgc3VzcGVuc2VDb250ZXh0ID0gc2V0RGVmYXVsdFNoYWxsb3dTdXNwZW5zZUNvbnRleHQoc3VzcGVuc2VDb250ZXh0KTtcbiAgfVxuXG4gIHB1c2hTdXNwZW5zZUNvbnRleHQod29ya0luUHJvZ3Jlc3MsIHN1c3BlbnNlQ29udGV4dCk7XG5cbiAgaWYgKCh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgQmxvY2tpbmdNb2RlKSA9PT0gTm9Nb2RlKSB7XG4gICAgLy8gSW4gbGVnYWN5IG1vZGUsIFN1c3BlbnNlTGlzdCBkb2Vzbid0IHdvcmsgc28gd2UganVzdFxuICAgIC8vIHVzZSBtYWtlIGl0IGEgbm9vcCBieSB0cmVhdGluZyBpdCBhcyB0aGUgZGVmYXVsdCByZXZlYWxPcmRlci5cbiAgICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gbnVsbDtcbiAgfSBlbHNlIHtcbiAgICBzd2l0Y2ggKHJldmVhbE9yZGVyKSB7XG4gICAgICBjYXNlICdmb3J3YXJkcyc6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgbGFzdENvbnRlbnRSb3cgPSBmaW5kTGFzdENvbnRlbnRSb3cod29ya0luUHJvZ3Jlc3MuY2hpbGQpO1xuICAgICAgICAgIHZhciB0YWlsO1xuXG4gICAgICAgICAgaWYgKGxhc3RDb250ZW50Um93ID09PSBudWxsKSB7XG4gICAgICAgICAgICAvLyBUaGUgd2hvbGUgbGlzdCBpcyBwYXJ0IG9mIHRoZSB0YWlsLlxuICAgICAgICAgICAgLy8gVE9ETzogV2UgY291bGQgZmFzdCBwYXRoIGJ5IGp1c3QgcmVuZGVyaW5nIHRoZSB0YWlsIG5vdy5cbiAgICAgICAgICAgIHRhaWwgPSB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLmNoaWxkID0gbnVsbDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gRGlzY29ubmVjdCB0aGUgdGFpbCByb3dzIGFmdGVyIHRoZSBjb250ZW50IHJvdy5cbiAgICAgICAgICAgIC8vIFdlJ3JlIGdvaW5nIHRvIHJlbmRlciB0aGVtIHNlcGFyYXRlbHkgbGF0ZXIuXG4gICAgICAgICAgICB0YWlsID0gbGFzdENvbnRlbnRSb3cuc2libGluZztcbiAgICAgICAgICAgIGxhc3RDb250ZW50Um93LnNpYmxpbmcgPSBudWxsO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGluaXRTdXNwZW5zZUxpc3RSZW5kZXJTdGF0ZSh3b3JrSW5Qcm9ncmVzcywgZmFsc2UsIC8vIGlzQmFja3dhcmRzXG4gICAgICAgICAgdGFpbCwgbGFzdENvbnRlbnRSb3csIHRhaWxNb2RlLCB3b3JrSW5Qcm9ncmVzcy5sYXN0RWZmZWN0KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICBjYXNlICdiYWNrd2FyZHMnOlxuICAgICAgICB7XG4gICAgICAgICAgLy8gV2UncmUgZ29pbmcgdG8gZmluZCB0aGUgZmlyc3Qgcm93IHRoYXQgaGFzIGV4aXN0aW5nIGNvbnRlbnQuXG4gICAgICAgICAgLy8gQXQgdGhlIHNhbWUgdGltZSB3ZSdyZSBnb2luZyB0byByZXZlcnNlIHRoZSBsaXN0IG9mIGV2ZXJ5dGhpbmdcbiAgICAgICAgICAvLyB3ZSBwYXNzIGluIHRoZSBtZWFudGltZS4gVGhhdCdzIGdvaW5nIHRvIGJlIG91ciB0YWlsIGluIHJldmVyc2VcbiAgICAgICAgICAvLyBvcmRlci5cbiAgICAgICAgICB2YXIgX3RhaWwgPSBudWxsO1xuICAgICAgICAgIHZhciByb3cgPSB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IG51bGw7XG5cbiAgICAgICAgICB3aGlsZSAocm93ICE9PSBudWxsKSB7XG4gICAgICAgICAgICB2YXIgY3VycmVudFJvdyA9IHJvdy5hbHRlcm5hdGU7IC8vIE5ldyByb3dzIGNhbid0IGJlIGNvbnRlbnQgcm93cy5cblxuICAgICAgICAgICAgaWYgKGN1cnJlbnRSb3cgIT09IG51bGwgJiYgZmluZEZpcnN0U3VzcGVuZGVkKGN1cnJlbnRSb3cpID09PSBudWxsKSB7XG4gICAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIGJlZ2lubmluZyBvZiB0aGUgbWFpbiBjb250ZW50LlxuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IHJvdztcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhciBuZXh0Um93ID0gcm93LnNpYmxpbmc7XG4gICAgICAgICAgICByb3cuc2libGluZyA9IF90YWlsO1xuICAgICAgICAgICAgX3RhaWwgPSByb3c7XG4gICAgICAgICAgICByb3cgPSBuZXh0Um93O1xuICAgICAgICAgIH0gLy8gVE9ETzogSWYgd29ya0luUHJvZ3Jlc3MuY2hpbGQgaXMgbnVsbCwgd2UgY2FuIGNvbnRpbnVlIG9uIHRoZSB0YWlsIGltbWVkaWF0ZWx5LlxuXG5cbiAgICAgICAgICBpbml0U3VzcGVuc2VMaXN0UmVuZGVyU3RhdGUod29ya0luUHJvZ3Jlc3MsIHRydWUsIC8vIGlzQmFja3dhcmRzXG4gICAgICAgICAgX3RhaWwsIG51bGwsIC8vIGxhc3RcbiAgICAgICAgICB0YWlsTW9kZSwgd29ya0luUHJvZ3Jlc3MubGFzdEVmZmVjdCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgY2FzZSAndG9nZXRoZXInOlxuICAgICAgICB7XG4gICAgICAgICAgaW5pdFN1c3BlbnNlTGlzdFJlbmRlclN0YXRlKHdvcmtJblByb2dyZXNzLCBmYWxzZSwgLy8gaXNCYWNrd2FyZHNcbiAgICAgICAgICBudWxsLCAvLyB0YWlsXG4gICAgICAgICAgbnVsbCwgLy8gbGFzdFxuICAgICAgICAgIHVuZGVmaW5lZCwgd29ya0luUHJvZ3Jlc3MubGFzdEVmZmVjdCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAge1xuICAgICAgICAgIC8vIFRoZSBkZWZhdWx0IHJldmVhbCBvcmRlciBpcyB0aGUgc2FtZSBhcyBub3QgaGF2aW5nXG4gICAgICAgICAgLy8gYSBib3VuZGFyeS5cbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcbn1cblxuZnVuY3Rpb24gdXBkYXRlUG9ydGFsQ29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcykge1xuICBwdXNoSG9zdENvbnRhaW5lcih3b3JrSW5Qcm9ncmVzcywgd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pO1xuICB2YXIgbmV4dENoaWxkcmVuID0gd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzO1xuXG4gIGlmIChjdXJyZW50ID09PSBudWxsKSB7XG4gICAgLy8gUG9ydGFscyBhcmUgc3BlY2lhbCBiZWNhdXNlIHdlIGRvbid0IGFwcGVuZCB0aGUgY2hpbGRyZW4gZHVyaW5nIG1vdW50XG4gICAgLy8gYnV0IGF0IGNvbW1pdC4gVGhlcmVmb3JlIHdlIG5lZWQgdG8gdHJhY2sgaW5zZXJ0aW9ucyB3aGljaCB0aGUgbm9ybWFsXG4gICAgLy8gZmxvdyBkb2Vzbid0IGRvIGR1cmluZyBtb3VudC4gVGhpcyBkb2Vzbid0IGhhcHBlbiBhdCB0aGUgcm9vdCBiZWNhdXNlXG4gICAgLy8gdGhlIHJvb3QgYWx3YXlzIHN0YXJ0cyB3aXRoIGEgXCJjdXJyZW50XCIgd2l0aCBhIG51bGwgY2hpbGQuXG4gICAgLy8gVE9ETzogQ29uc2lkZXIgdW5pZnlpbmcgdGhpcyB3aXRoIGhvdyB0aGUgcm9vdCB3b3Jrcy5cbiAgICB3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IHJlY29uY2lsZUNoaWxkRmliZXJzKHdvcmtJblByb2dyZXNzLCBudWxsLCBuZXh0Q2hpbGRyZW4sIHJlbmRlckxhbmVzKTtcbiAgfSBlbHNlIHtcbiAgICByZWNvbmNpbGVDaGlsZHJlbihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgbmV4dENoaWxkcmVuLCByZW5kZXJMYW5lcyk7XG4gIH1cblxuICByZXR1cm4gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG59XG5cbnZhciBoYXNXYXJuZWRBYm91dFVzaW5nTm9WYWx1ZVByb3BPbkNvbnRleHRQcm92aWRlciA9IGZhbHNlO1xuXG5mdW5jdGlvbiB1cGRhdGVDb250ZXh0UHJvdmlkZXIoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKSB7XG4gIHZhciBwcm92aWRlclR5cGUgPSB3b3JrSW5Qcm9ncmVzcy50eXBlO1xuICB2YXIgY29udGV4dCA9IHByb3ZpZGVyVHlwZS5fY29udGV4dDtcbiAgdmFyIG5ld1Byb3BzID0gd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzO1xuICB2YXIgb2xkUHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFByb3BzO1xuICB2YXIgbmV3VmFsdWUgPSBuZXdQcm9wcy52YWx1ZTtcblxuICB7XG4gICAgaWYgKCEoJ3ZhbHVlJyBpbiBuZXdQcm9wcykpIHtcbiAgICAgIGlmICghaGFzV2FybmVkQWJvdXRVc2luZ05vVmFsdWVQcm9wT25Db250ZXh0UHJvdmlkZXIpIHtcbiAgICAgICAgaGFzV2FybmVkQWJvdXRVc2luZ05vVmFsdWVQcm9wT25Db250ZXh0UHJvdmlkZXIgPSB0cnVlO1xuXG4gICAgICAgIGVycm9yKCdUaGUgYHZhbHVlYCBwcm9wIGlzIHJlcXVpcmVkIGZvciB0aGUgYDxDb250ZXh0LlByb3ZpZGVyPmAuIERpZCB5b3UgbWlzc3BlbGwgaXQgb3IgZm9yZ2V0IHRvIHBhc3MgaXQ/Jyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIHByb3ZpZGVyUHJvcFR5cGVzID0gd29ya0luUHJvZ3Jlc3MudHlwZS5wcm9wVHlwZXM7XG5cbiAgICBpZiAocHJvdmlkZXJQcm9wVHlwZXMpIHtcbiAgICAgIGNoZWNrUHJvcFR5cGVzKHByb3ZpZGVyUHJvcFR5cGVzLCBuZXdQcm9wcywgJ3Byb3AnLCAnQ29udGV4dC5Qcm92aWRlcicpO1xuICAgIH1cbiAgfVxuXG4gIHB1c2hQcm92aWRlcih3b3JrSW5Qcm9ncmVzcywgbmV3VmFsdWUpO1xuXG4gIGlmIChvbGRQcm9wcyAhPT0gbnVsbCkge1xuICAgIHZhciBvbGRWYWx1ZSA9IG9sZFByb3BzLnZhbHVlO1xuICAgIHZhciBjaGFuZ2VkQml0cyA9IGNhbGN1bGF0ZUNoYW5nZWRCaXRzKGNvbnRleHQsIG5ld1ZhbHVlLCBvbGRWYWx1ZSk7XG5cbiAgICBpZiAoY2hhbmdlZEJpdHMgPT09IDApIHtcbiAgICAgIC8vIE5vIGNoYW5nZS4gQmFpbG91dCBlYXJseSBpZiBjaGlsZHJlbiBhcmUgdGhlIHNhbWUuXG4gICAgICBpZiAob2xkUHJvcHMuY2hpbGRyZW4gPT09IG5ld1Byb3BzLmNoaWxkcmVuICYmICFoYXNDb250ZXh0Q2hhbmdlZCgpKSB7XG4gICAgICAgIHJldHVybiBiYWlsb3V0T25BbHJlYWR5RmluaXNoZWRXb3JrKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRoZSBjb250ZXh0IHZhbHVlIGNoYW5nZWQuIFNlYXJjaCBmb3IgbWF0Y2hpbmcgY29uc3VtZXJzIGFuZCBzY2hlZHVsZVxuICAgICAgLy8gdGhlbSB0byB1cGRhdGUuXG4gICAgICBwcm9wYWdhdGVDb250ZXh0Q2hhbmdlKHdvcmtJblByb2dyZXNzLCBjb250ZXh0LCBjaGFuZ2VkQml0cywgcmVuZGVyTGFuZXMpO1xuICAgIH1cbiAgfVxuXG4gIHZhciBuZXdDaGlsZHJlbiA9IG5ld1Byb3BzLmNoaWxkcmVuO1xuICByZWNvbmNpbGVDaGlsZHJlbihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgbmV3Q2hpbGRyZW4sIHJlbmRlckxhbmVzKTtcbiAgcmV0dXJuIHdvcmtJblByb2dyZXNzLmNoaWxkO1xufVxuXG52YXIgaGFzV2FybmVkQWJvdXRVc2luZ0NvbnRleHRBc0NvbnN1bWVyID0gZmFsc2U7XG5cbmZ1bmN0aW9uIHVwZGF0ZUNvbnRleHRDb25zdW1lcihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpIHtcbiAgdmFyIGNvbnRleHQgPSB3b3JrSW5Qcm9ncmVzcy50eXBlOyAvLyBUaGUgbG9naWMgYmVsb3cgZm9yIENvbnRleHQgZGlmZmVycyBkZXBlbmRpbmcgb24gUFJPRCBvciBERVYgbW9kZS4gSW5cbiAgLy8gREVWIG1vZGUsIHdlIGNyZWF0ZSBhIHNlcGFyYXRlIG9iamVjdCBmb3IgQ29udGV4dC5Db25zdW1lciB0aGF0IGFjdHNcbiAgLy8gbGlrZSBhIHByb3h5IHRvIENvbnRleHQuIFRoaXMgcHJveHkgb2JqZWN0IGFkZHMgdW5uZWNlc3NhcnkgY29kZSBpbiBQUk9EXG4gIC8vIHNvIHdlIHVzZSB0aGUgb2xkIGJlaGF2aW91ciAoQ29udGV4dC5Db25zdW1lciByZWZlcmVuY2VzIENvbnRleHQpIHRvXG4gIC8vIHJlZHVjZSBzaXplIGFuZCBvdmVyaGVhZC4gVGhlIHNlcGFyYXRlIG9iamVjdCByZWZlcmVuY2VzIGNvbnRleHQgdmlhXG4gIC8vIGEgcHJvcGVydHkgY2FsbGVkIFwiX2NvbnRleHRcIiwgd2hpY2ggYWxzbyBnaXZlcyB1cyB0aGUgYWJpbGl0eSB0byBjaGVja1xuICAvLyBpbiBERVYgbW9kZSBpZiB0aGlzIHByb3BlcnR5IGV4aXN0cyBvciBub3QgYW5kIHdhcm4gaWYgaXQgZG9lcyBub3QuXG5cbiAge1xuICAgIGlmIChjb250ZXh0Ll9jb250ZXh0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIFRoaXMgbWF5IGJlIGJlY2F1c2UgaXQncyBhIENvbnRleHQgKHJhdGhlciB0aGFuIGEgQ29uc3VtZXIpLlxuICAgICAgLy8gT3IgaXQgbWF5IGJlIGJlY2F1c2UgaXQncyBvbGRlciBSZWFjdCB3aGVyZSB0aGV5J3JlIHRoZSBzYW1lIHRoaW5nLlxuICAgICAgLy8gV2Ugb25seSB3YW50IHRvIHdhcm4gaWYgd2UncmUgc3VyZSBpdCdzIGEgbmV3IFJlYWN0LlxuICAgICAgaWYgKGNvbnRleHQgIT09IGNvbnRleHQuQ29uc3VtZXIpIHtcbiAgICAgICAgaWYgKCFoYXNXYXJuZWRBYm91dFVzaW5nQ29udGV4dEFzQ29uc3VtZXIpIHtcbiAgICAgICAgICBoYXNXYXJuZWRBYm91dFVzaW5nQ29udGV4dEFzQ29uc3VtZXIgPSB0cnVlO1xuXG4gICAgICAgICAgZXJyb3IoJ1JlbmRlcmluZyA8Q29udGV4dD4gZGlyZWN0bHkgaXMgbm90IHN1cHBvcnRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluICcgKyAnYSBmdXR1cmUgbWFqb3IgcmVsZWFzZS4gRGlkIHlvdSBtZWFuIHRvIHJlbmRlciA8Q29udGV4dC5Db25zdW1lcj4gaW5zdGVhZD8nKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb250ZXh0ID0gY29udGV4dC5fY29udGV4dDtcbiAgICB9XG4gIH1cblxuICB2YXIgbmV3UHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHM7XG4gIHZhciByZW5kZXIgPSBuZXdQcm9wcy5jaGlsZHJlbjtcblxuICB7XG4gICAgaWYgKHR5cGVvZiByZW5kZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGVycm9yKCdBIGNvbnRleHQgY29uc3VtZXIgd2FzIHJlbmRlcmVkIHdpdGggbXVsdGlwbGUgY2hpbGRyZW4sIG9yIGEgY2hpbGQgJyArIFwidGhhdCBpc24ndCBhIGZ1bmN0aW9uLiBBIGNvbnRleHQgY29uc3VtZXIgZXhwZWN0cyBhIHNpbmdsZSBjaGlsZCBcIiArICd0aGF0IGlzIGEgZnVuY3Rpb24uIElmIHlvdSBkaWQgcGFzcyBhIGZ1bmN0aW9uLCBtYWtlIHN1cmUgdGhlcmUgJyArICdpcyBubyB0cmFpbGluZyBvciBsZWFkaW5nIHdoaXRlc3BhY2UgYXJvdW5kIGl0LicpO1xuICAgIH1cbiAgfVxuXG4gIHByZXBhcmVUb1JlYWRDb250ZXh0KHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG4gIHZhciBuZXdWYWx1ZSA9IHJlYWRDb250ZXh0KGNvbnRleHQsIG5ld1Byb3BzLnVuc3RhYmxlX29ic2VydmVkQml0cyk7XG4gIHZhciBuZXdDaGlsZHJlbjtcblxuICB7XG4gICAgUmVhY3RDdXJyZW50T3duZXIkMS5jdXJyZW50ID0gd29ya0luUHJvZ3Jlc3M7XG4gICAgc2V0SXNSZW5kZXJpbmcodHJ1ZSk7XG4gICAgbmV3Q2hpbGRyZW4gPSByZW5kZXIobmV3VmFsdWUpO1xuICAgIHNldElzUmVuZGVyaW5nKGZhbHNlKTtcbiAgfSAvLyBSZWFjdCBEZXZUb29scyByZWFkcyB0aGlzIGZsYWcuXG5cblxuICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBQZXJmb3JtZWRXb3JrO1xuICByZWNvbmNpbGVDaGlsZHJlbihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgbmV3Q2hpbGRyZW4sIHJlbmRlckxhbmVzKTtcbiAgcmV0dXJuIHdvcmtJblByb2dyZXNzLmNoaWxkO1xufVxuXG5mdW5jdGlvbiBtYXJrV29ya0luUHJvZ3Jlc3NSZWNlaXZlZFVwZGF0ZSgpIHtcbiAgZGlkUmVjZWl2ZVVwZGF0ZSA9IHRydWU7XG59XG5cbmZ1bmN0aW9uIGJhaWxvdXRPbkFscmVhZHlGaW5pc2hlZFdvcmsoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKSB7XG4gIGlmIChjdXJyZW50ICE9PSBudWxsKSB7XG4gICAgLy8gUmV1c2UgcHJldmlvdXMgZGVwZW5kZW5jaWVzXG4gICAgd29ya0luUHJvZ3Jlc3MuZGVwZW5kZW5jaWVzID0gY3VycmVudC5kZXBlbmRlbmNpZXM7XG4gIH1cblxuICB7XG4gICAgLy8gRG9uJ3QgdXBkYXRlIFwiYmFzZVwiIHJlbmRlciB0aW1lcyBmb3IgYmFpbG91dHMuXG4gICAgc3RvcFByb2ZpbGVyVGltZXJJZlJ1bm5pbmcoKTtcbiAgfVxuXG4gIG1hcmtTa2lwcGVkVXBkYXRlTGFuZXMod29ya0luUHJvZ3Jlc3MubGFuZXMpOyAvLyBDaGVjayBpZiB0aGUgY2hpbGRyZW4gaGF2ZSBhbnkgcGVuZGluZyB3b3JrLlxuXG4gIGlmICghaW5jbHVkZXNTb21lTGFuZShyZW5kZXJMYW5lcywgd29ya0luUHJvZ3Jlc3MuY2hpbGRMYW5lcykpIHtcbiAgICAvLyBUaGUgY2hpbGRyZW4gZG9uJ3QgaGF2ZSBhbnkgd29yayBlaXRoZXIuIFdlIGNhbiBza2lwIHRoZW0uXG4gICAgLy8gVE9ETzogT25jZSB3ZSBhZGQgYmFjayByZXN1bWluZywgd2Ugc2hvdWxkIGNoZWNrIGlmIHRoZSBjaGlsZHJlbiBhcmVcbiAgICAvLyBhIHdvcmstaW4tcHJvZ3Jlc3Mgc2V0LiBJZiBzbywgd2UgbmVlZCB0byB0cmFuc2ZlciB0aGVpciBlZmZlY3RzLlxuICAgIHJldHVybiBudWxsO1xuICB9IGVsc2Uge1xuICAgIC8vIFRoaXMgZmliZXIgZG9lc24ndCBoYXZlIHdvcmssIGJ1dCBpdHMgc3VidHJlZSBkb2VzLiBDbG9uZSB0aGUgY2hpbGRcbiAgICAvLyBmaWJlcnMgYW5kIGNvbnRpbnVlLlxuICAgIGNsb25lQ2hpbGRGaWJlcnMoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MpO1xuICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcbiAgfVxufVxuXG5mdW5jdGlvbiByZW1vdW50RmliZXIoY3VycmVudCwgb2xkV29ya0luUHJvZ3Jlc3MsIG5ld1dvcmtJblByb2dyZXNzKSB7XG4gIHtcbiAgICB2YXIgcmV0dXJuRmliZXIgPSBvbGRXb3JrSW5Qcm9ncmVzcy5yZXR1cm47XG5cbiAgICBpZiAocmV0dXJuRmliZXIgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHN3YXAgdGhlIHJvb3QgZmliZXIuJyk7XG4gICAgfSAvLyBEaXNjb25uZWN0IGZyb20gdGhlIG9sZCBjdXJyZW50LlxuICAgIC8vIEl0IHdpbGwgZ2V0IGRlbGV0ZWQuXG5cblxuICAgIGN1cnJlbnQuYWx0ZXJuYXRlID0gbnVsbDtcbiAgICBvbGRXb3JrSW5Qcm9ncmVzcy5hbHRlcm5hdGUgPSBudWxsOyAvLyBDb25uZWN0IHRvIHRoZSBuZXcgdHJlZS5cblxuICAgIG5ld1dvcmtJblByb2dyZXNzLmluZGV4ID0gb2xkV29ya0luUHJvZ3Jlc3MuaW5kZXg7XG4gICAgbmV3V29ya0luUHJvZ3Jlc3Muc2libGluZyA9IG9sZFdvcmtJblByb2dyZXNzLnNpYmxpbmc7XG4gICAgbmV3V29ya0luUHJvZ3Jlc3MucmV0dXJuID0gb2xkV29ya0luUHJvZ3Jlc3MucmV0dXJuO1xuICAgIG5ld1dvcmtJblByb2dyZXNzLnJlZiA9IG9sZFdvcmtJblByb2dyZXNzLnJlZjsgLy8gUmVwbGFjZSB0aGUgY2hpbGQvc2libGluZyBwb2ludGVycyBhYm92ZSBpdC5cblxuICAgIGlmIChvbGRXb3JrSW5Qcm9ncmVzcyA9PT0gcmV0dXJuRmliZXIuY2hpbGQpIHtcbiAgICAgIHJldHVybkZpYmVyLmNoaWxkID0gbmV3V29ya0luUHJvZ3Jlc3M7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBwcmV2U2libGluZyA9IHJldHVybkZpYmVyLmNoaWxkO1xuXG4gICAgICBpZiAocHJldlNpYmxpbmcgPT09IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBwYXJlbnQgdG8gaGF2ZSBhIGNoaWxkLicpO1xuICAgICAgfVxuXG4gICAgICB3aGlsZSAocHJldlNpYmxpbmcuc2libGluZyAhPT0gb2xkV29ya0luUHJvZ3Jlc3MpIHtcbiAgICAgICAgcHJldlNpYmxpbmcgPSBwcmV2U2libGluZy5zaWJsaW5nO1xuXG4gICAgICAgIGlmIChwcmV2U2libGluZyA9PT0gbnVsbCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgdG8gZmluZCB0aGUgcHJldmlvdXMgc2libGluZy4nKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBwcmV2U2libGluZy5zaWJsaW5nID0gbmV3V29ya0luUHJvZ3Jlc3M7XG4gICAgfSAvLyBEZWxldGUgdGhlIG9sZCBmaWJlciBhbmQgcGxhY2UgdGhlIG5ldyBvbmUuXG4gICAgLy8gU2luY2UgdGhlIG9sZCBmaWJlciBpcyBkaXNjb25uZWN0ZWQsIHdlIGhhdmUgdG8gc2NoZWR1bGUgaXQgbWFudWFsbHkuXG5cblxuICAgIHZhciBsYXN0ID0gcmV0dXJuRmliZXIubGFzdEVmZmVjdDtcblxuICAgIGlmIChsYXN0ICE9PSBudWxsKSB7XG4gICAgICBsYXN0Lm5leHRFZmZlY3QgPSBjdXJyZW50O1xuICAgICAgcmV0dXJuRmliZXIubGFzdEVmZmVjdCA9IGN1cnJlbnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybkZpYmVyLmZpcnN0RWZmZWN0ID0gcmV0dXJuRmliZXIubGFzdEVmZmVjdCA9IGN1cnJlbnQ7XG4gICAgfVxuXG4gICAgY3VycmVudC5uZXh0RWZmZWN0ID0gbnVsbDtcbiAgICBjdXJyZW50LmZsYWdzID0gRGVsZXRpb247XG4gICAgbmV3V29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gUGxhY2VtZW50OyAvLyBSZXN0YXJ0IHdvcmsgZnJvbSB0aGUgbmV3IGZpYmVyLlxuXG4gICAgcmV0dXJuIG5ld1dvcmtJblByb2dyZXNzO1xuICB9XG59XG5cbmZ1bmN0aW9uIGJlZ2luV29yayhjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpIHtcbiAgdmFyIHVwZGF0ZUxhbmVzID0gd29ya0luUHJvZ3Jlc3MubGFuZXM7XG5cbiAge1xuICAgIGlmICh3b3JrSW5Qcm9ncmVzcy5fZGVidWdOZWVkc1JlbW91bnQgJiYgY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgLy8gVGhpcyB3aWxsIHJlc3RhcnQgdGhlIGJlZ2luIHBoYXNlIHdpdGggYSBuZXcgZmliZXIuXG4gICAgICByZXR1cm4gcmVtb3VudEZpYmVyKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBjcmVhdGVGaWJlckZyb21UeXBlQW5kUHJvcHMod29ya0luUHJvZ3Jlc3MudHlwZSwgd29ya0luUHJvZ3Jlc3Mua2V5LCB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHMsIHdvcmtJblByb2dyZXNzLl9kZWJ1Z093bmVyIHx8IG51bGwsIHdvcmtJblByb2dyZXNzLm1vZGUsIHdvcmtJblByb2dyZXNzLmxhbmVzKSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKGN1cnJlbnQgIT09IG51bGwpIHtcbiAgICB2YXIgb2xkUHJvcHMgPSBjdXJyZW50Lm1lbW9pemVkUHJvcHM7XG4gICAgdmFyIG5ld1Byb3BzID0gd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzO1xuXG4gICAgaWYgKG9sZFByb3BzICE9PSBuZXdQcm9wcyB8fCBoYXNDb250ZXh0Q2hhbmdlZCgpIHx8ICggLy8gRm9yY2UgYSByZS1yZW5kZXIgaWYgdGhlIGltcGxlbWVudGF0aW9uIGNoYW5nZWQgZHVlIHRvIGhvdCByZWxvYWQ6XG4gICAgIHdvcmtJblByb2dyZXNzLnR5cGUgIT09IGN1cnJlbnQudHlwZSApKSB7XG4gICAgICAvLyBJZiBwcm9wcyBvciBjb250ZXh0IGNoYW5nZWQsIG1hcmsgdGhlIGZpYmVyIGFzIGhhdmluZyBwZXJmb3JtZWQgd29yay5cbiAgICAgIC8vIFRoaXMgbWF5IGJlIHVuc2V0IGlmIHRoZSBwcm9wcyBhcmUgZGV0ZXJtaW5lZCB0byBiZSBlcXVhbCBsYXRlciAobWVtbykuXG4gICAgICBkaWRSZWNlaXZlVXBkYXRlID0gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKCFpbmNsdWRlc1NvbWVMYW5lKHJlbmRlckxhbmVzLCB1cGRhdGVMYW5lcykpIHtcbiAgICAgIGRpZFJlY2VpdmVVcGRhdGUgPSBmYWxzZTsgLy8gVGhpcyBmaWJlciBkb2VzIG5vdCBoYXZlIGFueSBwZW5kaW5nIHdvcmsuIEJhaWxvdXQgd2l0aG91dCBlbnRlcmluZ1xuICAgICAgLy8gdGhlIGJlZ2luIHBoYXNlLiBUaGVyZSdzIHN0aWxsIHNvbWUgYm9va2tlZXBpbmcgd2UgdGhhdCBuZWVkcyB0byBiZSBkb25lXG4gICAgICAvLyBpbiB0aGlzIG9wdGltaXplZCBwYXRoLCBtb3N0bHkgcHVzaGluZyBzdHVmZiBvbnRvIHRoZSBzdGFjay5cblxuICAgICAgc3dpdGNoICh3b3JrSW5Qcm9ncmVzcy50YWcpIHtcbiAgICAgICAgY2FzZSBIb3N0Um9vdDpcbiAgICAgICAgICBwdXNoSG9zdFJvb3RDb250ZXh0KHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgICByZXNldEh5ZHJhdGlvblN0YXRlKCk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBIb3N0Q29tcG9uZW50OlxuICAgICAgICAgIHB1c2hIb3N0Q29udGV4dCh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBDbGFzc0NvbXBvbmVudDpcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YXIgQ29tcG9uZW50ID0gd29ya0luUHJvZ3Jlc3MudHlwZTtcblxuICAgICAgICAgICAgaWYgKGlzQ29udGV4dFByb3ZpZGVyKENvbXBvbmVudCkpIHtcbiAgICAgICAgICAgICAgcHVzaENvbnRleHRQcm92aWRlcih3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICBjYXNlIEhvc3RQb3J0YWw6XG4gICAgICAgICAgcHVzaEhvc3RDb250YWluZXIod29ya0luUHJvZ3Jlc3MsIHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIENvbnRleHRQcm92aWRlcjpcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YXIgbmV3VmFsdWUgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFByb3BzLnZhbHVlO1xuICAgICAgICAgICAgcHVzaFByb3ZpZGVyKHdvcmtJblByb2dyZXNzLCBuZXdWYWx1ZSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgY2FzZSBQcm9maWxlcjpcbiAgICAgICAgICB7XG4gICAgICAgICAgICAvLyBQcm9maWxlciBzaG91bGQgb25seSBjYWxsIG9uUmVuZGVyIHdoZW4gb25lIG9mIGl0cyBkZXNjZW5kYW50cyBhY3R1YWxseSByZW5kZXJlZC5cbiAgICAgICAgICAgIHZhciBoYXNDaGlsZFdvcmsgPSBpbmNsdWRlc1NvbWVMYW5lKHJlbmRlckxhbmVzLCB3b3JrSW5Qcm9ncmVzcy5jaGlsZExhbmVzKTtcblxuICAgICAgICAgICAgaWYgKGhhc0NoaWxkV29yaykge1xuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBVcGRhdGU7XG4gICAgICAgICAgICB9IC8vIFJlc2V0IGVmZmVjdCBkdXJhdGlvbnMgZm9yIHRoZSBuZXh0IGV2ZW50dWFsIGVmZmVjdCBwaGFzZS5cbiAgICAgICAgICAgIC8vIFRoZXNlIGFyZSByZXNldCBkdXJpbmcgcmVuZGVyIHRvIGFsbG93IHRoZSBEZXZUb29scyBjb21taXQgaG9vayBhIGNoYW5jZSB0byByZWFkIHRoZW0sXG5cblxuICAgICAgICAgICAgdmFyIHN0YXRlTm9kZSA9IHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZTtcbiAgICAgICAgICAgIHN0YXRlTm9kZS5lZmZlY3REdXJhdGlvbiA9IDA7XG4gICAgICAgICAgICBzdGF0ZU5vZGUucGFzc2l2ZUVmZmVjdER1cmF0aW9uID0gMDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIFN1c3BlbnNlQ29tcG9uZW50OlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhciBzdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG5cbiAgICAgICAgICAgIGlmIChzdGF0ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAvLyB3aGV0aGVyIHRvIHJldHJ5IHRoZSBwcmltYXJ5IGNoaWxkcmVuLCBvciB0byBza2lwIG92ZXIgaXQgYW5kXG4gICAgICAgICAgICAgIC8vIGdvIHN0cmFpZ2h0IHRvIHRoZSBmYWxsYmFjay4gQ2hlY2sgdGhlIHByaW9yaXR5IG9mIHRoZSBwcmltYXJ5XG4gICAgICAgICAgICAgIC8vIGNoaWxkIGZyYWdtZW50LlxuXG5cbiAgICAgICAgICAgICAgdmFyIHByaW1hcnlDaGlsZEZyYWdtZW50ID0gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG4gICAgICAgICAgICAgIHZhciBwcmltYXJ5Q2hpbGRMYW5lcyA9IHByaW1hcnlDaGlsZEZyYWdtZW50LmNoaWxkTGFuZXM7XG5cbiAgICAgICAgICAgICAgaWYgKGluY2x1ZGVzU29tZUxhbmUocmVuZGVyTGFuZXMsIHByaW1hcnlDaGlsZExhbmVzKSkge1xuICAgICAgICAgICAgICAgIC8vIFRoZSBwcmltYXJ5IGNoaWxkcmVuIGhhdmUgcGVuZGluZyB3b3JrLiBVc2UgdGhlIG5vcm1hbCBwYXRoXG4gICAgICAgICAgICAgICAgLy8gdG8gYXR0ZW1wdCB0byByZW5kZXIgdGhlIHByaW1hcnkgY2hpbGRyZW4gYWdhaW4uXG4gICAgICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZVN1c3BlbnNlQ29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gVGhlIHByaW1hcnkgY2hpbGQgZnJhZ21lbnQgZG9lcyBub3QgaGF2ZSBwZW5kaW5nIHdvcmsgbWFya2VkXG4gICAgICAgICAgICAgICAgLy8gb24gaXRcbiAgICAgICAgICAgICAgICBwdXNoU3VzcGVuc2VDb250ZXh0KHdvcmtJblByb2dyZXNzLCBzZXREZWZhdWx0U2hhbGxvd1N1c3BlbnNlQ29udGV4dChzdXNwZW5zZVN0YWNrQ3Vyc29yLmN1cnJlbnQpKTsgLy8gVGhlIHByaW1hcnkgY2hpbGRyZW4gZG8gbm90IGhhdmUgcGVuZGluZyB3b3JrIHdpdGggc3VmZmljaWVudFxuICAgICAgICAgICAgICAgIC8vIHByaW9yaXR5LiBCYWlsb3V0LlxuXG4gICAgICAgICAgICAgICAgdmFyIGNoaWxkID0gYmFpbG91dE9uQWxyZWFkeUZpbmlzaGVkV29yayhjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGNoaWxkICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAvLyBUaGUgZmFsbGJhY2sgY2hpbGRyZW4gaGF2ZSBwZW5kaW5nIHdvcmsuIFNraXAgb3ZlciB0aGVcbiAgICAgICAgICAgICAgICAgIC8vIHByaW1hcnkgY2hpbGRyZW4gYW5kIHdvcmsgb24gdGhlIGZhbGxiYWNrLlxuICAgICAgICAgICAgICAgICAgcmV0dXJuIGNoaWxkLnNpYmxpbmc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcHVzaFN1c3BlbnNlQ29udGV4dCh3b3JrSW5Qcm9ncmVzcywgc2V0RGVmYXVsdFNoYWxsb3dTdXNwZW5zZUNvbnRleHQoc3VzcGVuc2VTdGFja0N1cnNvci5jdXJyZW50KSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICBjYXNlIFN1c3BlbnNlTGlzdENvbXBvbmVudDpcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YXIgZGlkU3VzcGVuZEJlZm9yZSA9IChjdXJyZW50LmZsYWdzICYgRGlkQ2FwdHVyZSkgIT09IE5vRmxhZ3M7XG5cbiAgICAgICAgICAgIHZhciBfaGFzQ2hpbGRXb3JrID0gaW5jbHVkZXNTb21lTGFuZShyZW5kZXJMYW5lcywgd29ya0luUHJvZ3Jlc3MuY2hpbGRMYW5lcyk7XG5cbiAgICAgICAgICAgIGlmIChkaWRTdXNwZW5kQmVmb3JlKSB7XG4gICAgICAgICAgICAgIGlmIChfaGFzQ2hpbGRXb3JrKSB7XG4gICAgICAgICAgICAgICAgLy8gSWYgc29tZXRoaW5nIHdhcyBpbiBmYWxsYmFjayBzdGF0ZSBsYXN0IHRpbWUsIGFuZCB3ZSBoYXZlIGFsbCB0aGVcbiAgICAgICAgICAgICAgICAvLyBzYW1lIGNoaWxkcmVuIHRoZW4gd2UncmUgc3RpbGwgaW4gcHJvZ3Jlc3NpdmUgbG9hZGluZyBzdGF0ZS5cbiAgICAgICAgICAgICAgICAvLyBTb21ldGhpbmcgbWlnaHQgZ2V0IHVuYmxvY2tlZCBieSBzdGF0ZSB1cGRhdGVzIG9yIHJldHJpZXMgaW4gdGhlXG4gICAgICAgICAgICAgICAgLy8gdHJlZSB3aGljaCB3aWxsIGFmZmVjdCB0aGUgdGFpbC4gU28gd2UgbmVlZCB0byB1c2UgdGhlIG5vcm1hbFxuICAgICAgICAgICAgICAgIC8vIHBhdGggdG8gY29tcHV0ZSB0aGUgY29ycmVjdCB0YWlsLlxuICAgICAgICAgICAgICAgIHJldHVybiB1cGRhdGVTdXNwZW5zZUxpc3RDb21wb25lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKTtcbiAgICAgICAgICAgICAgfSAvLyBJZiBub25lIG9mIHRoZSBjaGlsZHJlbiBoYWQgYW55IHdvcmssIHRoYXQgbWVhbnMgdGhhdCBub25lIG9mXG4gICAgICAgICAgICAgIC8vIHRoZW0gZ290IHJldHJpZWQgc28gdGhleSdsbCBzdGlsbCBiZSBibG9ja2VkIGluIHRoZSBzYW1lIHdheVxuICAgICAgICAgICAgICAvLyBhcyBiZWZvcmUuIFdlIGNhbiBmYXN0IGJhaWwgb3V0LlxuXG5cbiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gRGlkQ2FwdHVyZTtcbiAgICAgICAgICAgIH0gLy8gSWYgbm90aGluZyBzdXNwZW5kZWQgYmVmb3JlIGFuZCB3ZSdyZSByZW5kZXJpbmcgdGhlIHNhbWUgY2hpbGRyZW4sXG4gICAgICAgICAgICAvLyB0aGVuIHRoZSB0YWlsIGRvZXNuJ3QgbWF0dGVyLiBBbnl0aGluZyBuZXcgdGhhdCBzdXNwZW5kcyB3aWxsIHdvcmtcbiAgICAgICAgICAgIC8vIGluIHRoZSBcInRvZ2V0aGVyXCIgbW9kZSwgc28gd2UgY2FuIGNvbnRpbnVlIGZyb20gdGhlIHN0YXRlIHdlIGhhZC5cblxuXG4gICAgICAgICAgICB2YXIgcmVuZGVyU3RhdGUgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlO1xuXG4gICAgICAgICAgICBpZiAocmVuZGVyU3RhdGUgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgLy8gUmVzZXQgdG8gdGhlIFwidG9nZXRoZXJcIiBtb2RlIGluIGNhc2Ugd2UndmUgc3RhcnRlZCBhIGRpZmZlcmVudFxuICAgICAgICAgICAgICAvLyB1cGRhdGUgaW4gdGhlIHBhc3QgYnV0IGRpZG4ndCBjb21wbGV0ZSBpdC5cbiAgICAgICAgICAgICAgcmVuZGVyU3RhdGUucmVuZGVyaW5nID0gbnVsbDtcbiAgICAgICAgICAgICAgcmVuZGVyU3RhdGUudGFpbCA9IG51bGw7XG4gICAgICAgICAgICAgIHJlbmRlclN0YXRlLmxhc3RFZmZlY3QgPSBudWxsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBwdXNoU3VzcGVuc2VDb250ZXh0KHdvcmtJblByb2dyZXNzLCBzdXNwZW5zZVN0YWNrQ3Vyc29yLmN1cnJlbnQpO1xuXG4gICAgICAgICAgICBpZiAoX2hhc0NoaWxkV29yaykge1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIElmIG5vbmUgb2YgdGhlIGNoaWxkcmVuIGhhZCBhbnkgd29yaywgdGhhdCBtZWFucyB0aGF0IG5vbmUgb2ZcbiAgICAgICAgICAgICAgLy8gdGhlbSBnb3QgcmV0cmllZCBzbyB0aGV5J2xsIHN0aWxsIGJlIGJsb2NrZWQgaW4gdGhlIHNhbWUgd2F5XG4gICAgICAgICAgICAgIC8vIGFzIGJlZm9yZS4gV2UgY2FuIGZhc3QgYmFpbCBvdXQuXG4gICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICBjYXNlIE9mZnNjcmVlbkNvbXBvbmVudDpcbiAgICAgICAgY2FzZSBMZWdhY3lIaWRkZW5Db21wb25lbnQ6XG4gICAgICAgICAge1xuICAgICAgICAgICAgLy8gTmVlZCB0byBjaGVjayBpZiB0aGUgdHJlZSBzdGlsbCBuZWVkcyB0byBiZSBkZWZlcnJlZC4gVGhpcyBpc1xuICAgICAgICAgICAgLy8gYWxtb3N0IGlkZW50aWNhbCB0byB0aGUgbG9naWMgdXNlZCBpbiB0aGUgbm9ybWFsIHVwZGF0ZSBwYXRoLFxuICAgICAgICAgICAgLy8gc28gd2UnbGwganVzdCBlbnRlciB0aGF0LiBUaGUgb25seSBkaWZmZXJlbmNlIGlzIHdlJ2xsIGJhaWwgb3V0XG4gICAgICAgICAgICAvLyBhdCB0aGUgbmV4dCBsZXZlbCBpbnN0ZWFkIG9mIHRoaXMgb25lLCBiZWNhdXNlIHRoZSBjaGlsZCBwcm9wc1xuICAgICAgICAgICAgLy8gaGF2ZSBub3QgY2hhbmdlZC4gV2hpY2ggaXMgZmluZS5cbiAgICAgICAgICAgIC8vIFRPRE86IFByb2JhYmx5IHNob3VsZCByZWZhY3RvciBgYmVnaW5Xb3JrYCB0byBzcGxpdCB0aGUgYmFpbG91dFxuICAgICAgICAgICAgLy8gcGF0aCBmcm9tIHRoZSBub3JtYWwgcGF0aC4gSSdtIHRlbXB0ZWQgdG8gZG8gYSBsYWJlbGVkIGJyZWFrIGhlcmVcbiAgICAgICAgICAgIC8vIGJ1dCBJIHdvbid0IDopXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5sYW5lcyA9IE5vTGFuZXM7XG4gICAgICAgICAgICByZXR1cm4gdXBkYXRlT2Zmc2NyZWVuQ29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG4gICAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gYmFpbG91dE9uQWxyZWFkeUZpbmlzaGVkV29yayhjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoKGN1cnJlbnQuZmxhZ3MgJiBGb3JjZVVwZGF0ZUZvckxlZ2FjeVN1c3BlbnNlKSAhPT0gTm9GbGFncykge1xuICAgICAgICAvLyBUaGlzIGlzIGEgc3BlY2lhbCBjYXNlIHRoYXQgb25seSBleGlzdHMgZm9yIGxlZ2FjeSBtb2RlLlxuICAgICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L3B1bGwvMTkyMTYuXG4gICAgICAgIGRpZFJlY2VpdmVVcGRhdGUgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gQW4gdXBkYXRlIHdhcyBzY2hlZHVsZWQgb24gdGhpcyBmaWJlciwgYnV0IHRoZXJlIGFyZSBubyBuZXcgcHJvcHNcbiAgICAgICAgLy8gbm9yIGxlZ2FjeSBjb250ZXh0LiBTZXQgdGhpcyB0byBmYWxzZS4gSWYgYW4gdXBkYXRlIHF1ZXVlIG9yIGNvbnRleHRcbiAgICAgICAgLy8gY29uc3VtZXIgcHJvZHVjZXMgYSBjaGFuZ2VkIHZhbHVlLCBpdCB3aWxsIHNldCB0aGlzIHRvIHRydWUuIE90aGVyd2lzZSxcbiAgICAgICAgLy8gdGhlIGNvbXBvbmVudCB3aWxsIGFzc3VtZSB0aGUgY2hpbGRyZW4gaGF2ZSBub3QgY2hhbmdlZCBhbmQgYmFpbCBvdXQuXG4gICAgICAgIGRpZFJlY2VpdmVVcGRhdGUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgZGlkUmVjZWl2ZVVwZGF0ZSA9IGZhbHNlO1xuICB9IC8vIEJlZm9yZSBlbnRlcmluZyB0aGUgYmVnaW4gcGhhc2UsIGNsZWFyIHBlbmRpbmcgdXBkYXRlIHByaW9yaXR5LlxuICAvLyBUT0RPOiBUaGlzIGFzc3VtZXMgdGhhdCB3ZSdyZSBhYm91dCB0byBldmFsdWF0ZSB0aGUgY29tcG9uZW50IGFuZCBwcm9jZXNzXG4gIC8vIHRoZSB1cGRhdGUgcXVldWUuIEhvd2V2ZXIsIHRoZXJlJ3MgYW4gZXhjZXB0aW9uOiBTaW1wbGVNZW1vQ29tcG9uZW50XG4gIC8vIHNvbWV0aW1lcyBiYWlscyBvdXQgbGF0ZXIgaW4gdGhlIGJlZ2luIHBoYXNlLiBUaGlzIGluZGljYXRlcyB0aGF0IHdlIHNob3VsZFxuICAvLyBtb3ZlIHRoaXMgYXNzaWdubWVudCBvdXQgb2YgdGhlIGNvbW1vbiBwYXRoIGFuZCBpbnRvIGVhY2ggYnJhbmNoLlxuXG5cbiAgd29ya0luUHJvZ3Jlc3MubGFuZXMgPSBOb0xhbmVzO1xuXG4gIHN3aXRjaCAod29ya0luUHJvZ3Jlc3MudGFnKSB7XG4gICAgY2FzZSBJbmRldGVybWluYXRlQ29tcG9uZW50OlxuICAgICAge1xuICAgICAgICByZXR1cm4gbW91bnRJbmRldGVybWluYXRlQ29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCB3b3JrSW5Qcm9ncmVzcy50eXBlLCByZW5kZXJMYW5lcyk7XG4gICAgICB9XG5cbiAgICBjYXNlIExhenlDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHZhciBlbGVtZW50VHlwZSA9IHdvcmtJblByb2dyZXNzLmVsZW1lbnRUeXBlO1xuICAgICAgICByZXR1cm4gbW91bnRMYXp5Q29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBlbGVtZW50VHlwZSwgdXBkYXRlTGFuZXMsIHJlbmRlckxhbmVzKTtcbiAgICAgIH1cblxuICAgIGNhc2UgRnVuY3Rpb25Db21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHZhciBfQ29tcG9uZW50ID0gd29ya0luUHJvZ3Jlc3MudHlwZTtcbiAgICAgICAgdmFyIHVucmVzb2x2ZWRQcm9wcyA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcztcbiAgICAgICAgdmFyIHJlc29sdmVkUHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy5lbGVtZW50VHlwZSA9PT0gX0NvbXBvbmVudCA/IHVucmVzb2x2ZWRQcm9wcyA6IHJlc29sdmVEZWZhdWx0UHJvcHMoX0NvbXBvbmVudCwgdW5yZXNvbHZlZFByb3BzKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZUZ1bmN0aW9uQ29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBfQ29tcG9uZW50LCByZXNvbHZlZFByb3BzLCByZW5kZXJMYW5lcyk7XG4gICAgICB9XG5cbiAgICBjYXNlIENsYXNzQ29tcG9uZW50OlxuICAgICAge1xuICAgICAgICB2YXIgX0NvbXBvbmVudDIgPSB3b3JrSW5Qcm9ncmVzcy50eXBlO1xuICAgICAgICB2YXIgX3VucmVzb2x2ZWRQcm9wcyA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcztcblxuICAgICAgICB2YXIgX3Jlc29sdmVkUHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy5lbGVtZW50VHlwZSA9PT0gX0NvbXBvbmVudDIgPyBfdW5yZXNvbHZlZFByb3BzIDogcmVzb2x2ZURlZmF1bHRQcm9wcyhfQ29tcG9uZW50MiwgX3VucmVzb2x2ZWRQcm9wcyk7XG5cbiAgICAgICAgcmV0dXJuIHVwZGF0ZUNsYXNzQ29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBfQ29tcG9uZW50MiwgX3Jlc29sdmVkUHJvcHMsIHJlbmRlckxhbmVzKTtcbiAgICAgIH1cblxuICAgIGNhc2UgSG9zdFJvb3Q6XG4gICAgICByZXR1cm4gdXBkYXRlSG9zdFJvb3QoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKTtcblxuICAgIGNhc2UgSG9zdENvbXBvbmVudDpcbiAgICAgIHJldHVybiB1cGRhdGVIb3N0Q29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG5cbiAgICBjYXNlIEhvc3RUZXh0OlxuICAgICAgcmV0dXJuIHVwZGF0ZUhvc3RUZXh0KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzKTtcblxuICAgIGNhc2UgU3VzcGVuc2VDb21wb25lbnQ6XG4gICAgICByZXR1cm4gdXBkYXRlU3VzcGVuc2VDb21wb25lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKTtcblxuICAgIGNhc2UgSG9zdFBvcnRhbDpcbiAgICAgIHJldHVybiB1cGRhdGVQb3J0YWxDb21wb25lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKTtcblxuICAgIGNhc2UgRm9yd2FyZFJlZjpcbiAgICAgIHtcbiAgICAgICAgdmFyIHR5cGUgPSB3b3JrSW5Qcm9ncmVzcy50eXBlO1xuICAgICAgICB2YXIgX3VucmVzb2x2ZWRQcm9wczIgPSB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHM7XG5cbiAgICAgICAgdmFyIF9yZXNvbHZlZFByb3BzMiA9IHdvcmtJblByb2dyZXNzLmVsZW1lbnRUeXBlID09PSB0eXBlID8gX3VucmVzb2x2ZWRQcm9wczIgOiByZXNvbHZlRGVmYXVsdFByb3BzKHR5cGUsIF91bnJlc29sdmVkUHJvcHMyKTtcblxuICAgICAgICByZXR1cm4gdXBkYXRlRm9yd2FyZFJlZihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgdHlwZSwgX3Jlc29sdmVkUHJvcHMyLCByZW5kZXJMYW5lcyk7XG4gICAgICB9XG5cbiAgICBjYXNlIEZyYWdtZW50OlxuICAgICAgcmV0dXJuIHVwZGF0ZUZyYWdtZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG5cbiAgICBjYXNlIE1vZGU6XG4gICAgICByZXR1cm4gdXBkYXRlTW9kZShjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpO1xuXG4gICAgY2FzZSBQcm9maWxlcjpcbiAgICAgIHJldHVybiB1cGRhdGVQcm9maWxlcihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpO1xuXG4gICAgY2FzZSBDb250ZXh0UHJvdmlkZXI6XG4gICAgICByZXR1cm4gdXBkYXRlQ29udGV4dFByb3ZpZGVyKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG5cbiAgICBjYXNlIENvbnRleHRDb25zdW1lcjpcbiAgICAgIHJldHVybiB1cGRhdGVDb250ZXh0Q29uc3VtZXIoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKTtcblxuICAgIGNhc2UgTWVtb0NvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgdmFyIF90eXBlMiA9IHdvcmtJblByb2dyZXNzLnR5cGU7XG4gICAgICAgIHZhciBfdW5yZXNvbHZlZFByb3BzMyA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wczsgLy8gUmVzb2x2ZSBvdXRlciBwcm9wcyBmaXJzdCwgdGhlbiByZXNvbHZlIGlubmVyIHByb3BzLlxuXG4gICAgICAgIHZhciBfcmVzb2x2ZWRQcm9wczMgPSByZXNvbHZlRGVmYXVsdFByb3BzKF90eXBlMiwgX3VucmVzb2x2ZWRQcm9wczMpO1xuXG4gICAgICAgIHtcbiAgICAgICAgICBpZiAod29ya0luUHJvZ3Jlc3MudHlwZSAhPT0gd29ya0luUHJvZ3Jlc3MuZWxlbWVudFR5cGUpIHtcbiAgICAgICAgICAgIHZhciBvdXRlclByb3BUeXBlcyA9IF90eXBlMi5wcm9wVHlwZXM7XG5cbiAgICAgICAgICAgIGlmIChvdXRlclByb3BUeXBlcykge1xuICAgICAgICAgICAgICBjaGVja1Byb3BUeXBlcyhvdXRlclByb3BUeXBlcywgX3Jlc29sdmVkUHJvcHMzLCAvLyBSZXNvbHZlZCBmb3Igb3V0ZXIgb25seVxuICAgICAgICAgICAgICAncHJvcCcsIGdldENvbXBvbmVudE5hbWUoX3R5cGUyKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgX3Jlc29sdmVkUHJvcHMzID0gcmVzb2x2ZURlZmF1bHRQcm9wcyhfdHlwZTIudHlwZSwgX3Jlc29sdmVkUHJvcHMzKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZU1lbW9Db21wb25lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIF90eXBlMiwgX3Jlc29sdmVkUHJvcHMzLCB1cGRhdGVMYW5lcywgcmVuZGVyTGFuZXMpO1xuICAgICAgfVxuXG4gICAgY2FzZSBTaW1wbGVNZW1vQ29tcG9uZW50OlxuICAgICAge1xuICAgICAgICByZXR1cm4gdXBkYXRlU2ltcGxlTWVtb0NvbXBvbmVudChjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgd29ya0luUHJvZ3Jlc3MudHlwZSwgd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzLCB1cGRhdGVMYW5lcywgcmVuZGVyTGFuZXMpO1xuICAgICAgfVxuXG4gICAgY2FzZSBJbmNvbXBsZXRlQ2xhc3NDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHZhciBfQ29tcG9uZW50MyA9IHdvcmtJblByb2dyZXNzLnR5cGU7XG4gICAgICAgIHZhciBfdW5yZXNvbHZlZFByb3BzNCA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcztcblxuICAgICAgICB2YXIgX3Jlc29sdmVkUHJvcHM0ID0gd29ya0luUHJvZ3Jlc3MuZWxlbWVudFR5cGUgPT09IF9Db21wb25lbnQzID8gX3VucmVzb2x2ZWRQcm9wczQgOiByZXNvbHZlRGVmYXVsdFByb3BzKF9Db21wb25lbnQzLCBfdW5yZXNvbHZlZFByb3BzNCk7XG5cbiAgICAgICAgcmV0dXJuIG1vdW50SW5jb21wbGV0ZUNsYXNzQ29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBfQ29tcG9uZW50MywgX3Jlc29sdmVkUHJvcHM0LCByZW5kZXJMYW5lcyk7XG4gICAgICB9XG5cbiAgICBjYXNlIFN1c3BlbnNlTGlzdENvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZVN1c3BlbnNlTGlzdENvbXBvbmVudChjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpO1xuICAgICAgfVxuXG4gICAgY2FzZSBGdW5kYW1lbnRhbENvbXBvbmVudDpcbiAgICAgIHtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgIGNhc2UgU2NvcGVDb21wb25lbnQ6XG4gICAgICB7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICBjYXNlIEJsb2NrOlxuICAgICAge1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgY2FzZSBPZmZzY3JlZW5Db21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHJldHVybiB1cGRhdGVPZmZzY3JlZW5Db21wb25lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKTtcbiAgICAgIH1cblxuICAgIGNhc2UgTGVnYWN5SGlkZGVuQ29tcG9uZW50OlxuICAgICAge1xuICAgICAgICByZXR1cm4gdXBkYXRlTGVnYWN5SGlkZGVuQ29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG4gICAgICB9XG4gIH1cblxuICB7XG4gICAge1xuICAgICAgdGhyb3cgRXJyb3IoIFwiVW5rbm93biB1bml0IG9mIHdvcmsgdGFnIChcIiArIHdvcmtJblByb2dyZXNzLnRhZyArIFwiKS4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIiApO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBtYXJrVXBkYXRlKHdvcmtJblByb2dyZXNzKSB7XG4gIC8vIFRhZyB0aGUgZmliZXIgd2l0aCBhbiB1cGRhdGUgZWZmZWN0LiBUaGlzIHR1cm5zIGEgUGxhY2VtZW50IGludG9cbiAgLy8gYSBQbGFjZW1lbnRBbmRVcGRhdGUuXG4gIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IFVwZGF0ZTtcbn1cblxuZnVuY3Rpb24gbWFya1JlZiQxKHdvcmtJblByb2dyZXNzKSB7XG4gIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IFJlZjtcbn1cblxudmFyIGFwcGVuZEFsbENoaWxkcmVuO1xudmFyIHVwZGF0ZUhvc3RDb250YWluZXI7XG52YXIgdXBkYXRlSG9zdENvbXBvbmVudCQxO1xudmFyIHVwZGF0ZUhvc3RUZXh0JDE7XG5cbntcbiAgLy8gTXV0YXRpb24gbW9kZVxuICBhcHBlbmRBbGxDaGlsZHJlbiA9IGZ1bmN0aW9uIChwYXJlbnQsIHdvcmtJblByb2dyZXNzLCBuZWVkc1Zpc2liaWxpdHlUb2dnbGUsIGlzSGlkZGVuKSB7XG4gICAgLy8gV2Ugb25seSBoYXZlIHRoZSB0b3AgRmliZXIgdGhhdCB3YXMgY3JlYXRlZCBidXQgd2UgbmVlZCByZWN1cnNlIGRvd24gaXRzXG4gICAgLy8gY2hpbGRyZW4gdG8gZmluZCBhbGwgdGhlIHRlcm1pbmFsIG5vZGVzLlxuICAgIHZhciBub2RlID0gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG5cbiAgICB3aGlsZSAobm9kZSAhPT0gbnVsbCkge1xuICAgICAgaWYgKG5vZGUudGFnID09PSBIb3N0Q29tcG9uZW50IHx8IG5vZGUudGFnID09PSBIb3N0VGV4dCkge1xuICAgICAgICBhcHBlbmRJbml0aWFsQ2hpbGQocGFyZW50LCBub2RlLnN0YXRlTm9kZSk7XG4gICAgICB9IGVsc2UgaWYgKG5vZGUudGFnID09PSBIb3N0UG9ydGFsKSA7IGVsc2UgaWYgKG5vZGUuY2hpbGQgIT09IG51bGwpIHtcbiAgICAgICAgbm9kZS5jaGlsZC5yZXR1cm4gPSBub2RlO1xuICAgICAgICBub2RlID0gbm9kZS5jaGlsZDtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChub2RlID09PSB3b3JrSW5Qcm9ncmVzcykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHdoaWxlIChub2RlLnNpYmxpbmcgPT09IG51bGwpIHtcbiAgICAgICAgaWYgKG5vZGUucmV0dXJuID09PSBudWxsIHx8IG5vZGUucmV0dXJuID09PSB3b3JrSW5Qcm9ncmVzcykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIG5vZGUgPSBub2RlLnJldHVybjtcbiAgICAgIH1cblxuICAgICAgbm9kZS5zaWJsaW5nLnJldHVybiA9IG5vZGUucmV0dXJuO1xuICAgICAgbm9kZSA9IG5vZGUuc2libGluZztcbiAgICB9XG4gIH07XG5cbiAgdXBkYXRlSG9zdENvbnRhaW5lciA9IGZ1bmN0aW9uICh3b3JrSW5Qcm9ncmVzcykgey8vIE5vb3BcbiAgfTtcblxuICB1cGRhdGVIb3N0Q29tcG9uZW50JDEgPSBmdW5jdGlvbiAoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHR5cGUsIG5ld1Byb3BzLCByb290Q29udGFpbmVySW5zdGFuY2UpIHtcbiAgICAvLyBJZiB3ZSBoYXZlIGFuIGFsdGVybmF0ZSwgdGhhdCBtZWFucyB0aGlzIGlzIGFuIHVwZGF0ZSBhbmQgd2UgbmVlZCB0b1xuICAgIC8vIHNjaGVkdWxlIGEgc2lkZS1lZmZlY3QgdG8gZG8gdGhlIHVwZGF0ZXMuXG4gICAgdmFyIG9sZFByb3BzID0gY3VycmVudC5tZW1vaXplZFByb3BzO1xuXG4gICAgaWYgKG9sZFByb3BzID09PSBuZXdQcm9wcykge1xuICAgICAgLy8gSW4gbXV0YXRpb24gbW9kZSwgdGhpcyBpcyBzdWZmaWNpZW50IGZvciBhIGJhaWxvdXQgYmVjYXVzZVxuICAgICAgLy8gd2Ugd29uJ3QgdG91Y2ggdGhpcyBub2RlIGV2ZW4gaWYgY2hpbGRyZW4gY2hhbmdlZC5cbiAgICAgIHJldHVybjtcbiAgICB9IC8vIElmIHdlIGdldCB1cGRhdGVkIGJlY2F1c2Ugb25lIG9mIG91ciBjaGlsZHJlbiB1cGRhdGVkLCB3ZSBkb24ndFxuICAgIC8vIGhhdmUgbmV3UHJvcHMgc28gd2UnbGwgaGF2ZSB0byByZXVzZSB0aGVtLlxuICAgIC8vIFRPRE86IFNwbGl0IHRoZSB1cGRhdGUgQVBJIGFzIHNlcGFyYXRlIGZvciB0aGUgcHJvcHMgdnMuIGNoaWxkcmVuLlxuICAgIC8vIEV2ZW4gYmV0dGVyIHdvdWxkIGJlIGlmIGNoaWxkcmVuIHdlcmVuJ3Qgc3BlY2lhbCBjYXNlZCBhdCBhbGwgdGhvLlxuXG5cbiAgICB2YXIgaW5zdGFuY2UgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG4gICAgdmFyIGN1cnJlbnRIb3N0Q29udGV4dCA9IGdldEhvc3RDb250ZXh0KCk7IC8vIFRPRE86IEV4cGVyaWVuY2luZyBhbiBlcnJvciB3aGVyZSBvbGRQcm9wcyBpcyBudWxsLiBTdWdnZXN0cyBhIGhvc3RcbiAgICAvLyBjb21wb25lbnQgaXMgaGl0dGluZyB0aGUgcmVzdW1lIHBhdGguIEZpZ3VyZSBvdXQgd2h5LiBQb3NzaWJseVxuICAgIC8vIHJlbGF0ZWQgdG8gYGhpZGRlbmAuXG5cbiAgICB2YXIgdXBkYXRlUGF5bG9hZCA9IHByZXBhcmVVcGRhdGUoaW5zdGFuY2UsIHR5cGUsIG9sZFByb3BzLCBuZXdQcm9wcywgcm9vdENvbnRhaW5lckluc3RhbmNlLCBjdXJyZW50SG9zdENvbnRleHQpOyAvLyBUT0RPOiBUeXBlIHRoaXMgc3BlY2lmaWMgdG8gdGhpcyB0eXBlIG9mIGNvbXBvbmVudC5cblxuICAgIHdvcmtJblByb2dyZXNzLnVwZGF0ZVF1ZXVlID0gdXBkYXRlUGF5bG9hZDsgLy8gSWYgdGhlIHVwZGF0ZSBwYXlsb2FkIGluZGljYXRlcyB0aGF0IHRoZXJlIGlzIGEgY2hhbmdlIG9yIGlmIHRoZXJlXG4gICAgLy8gaXMgYSBuZXcgcmVmIHdlIG1hcmsgdGhpcyBhcyBhbiB1cGRhdGUuIEFsbCB0aGUgd29yayBpcyBkb25lIGluIGNvbW1pdFdvcmsuXG5cbiAgICBpZiAodXBkYXRlUGF5bG9hZCkge1xuICAgICAgbWFya1VwZGF0ZSh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgfVxuICB9O1xuXG4gIHVwZGF0ZUhvc3RUZXh0JDEgPSBmdW5jdGlvbiAoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIG9sZFRleHQsIG5ld1RleHQpIHtcbiAgICAvLyBJZiB0aGUgdGV4dCBkaWZmZXJzLCBtYXJrIGl0IGFzIGFuIHVwZGF0ZS4gQWxsIHRoZSB3b3JrIGluIGRvbmUgaW4gY29tbWl0V29yay5cbiAgICBpZiAob2xkVGV4dCAhPT0gbmV3VGV4dCkge1xuICAgICAgbWFya1VwZGF0ZSh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgfVxuICB9O1xufVxuXG5mdW5jdGlvbiBjdXRPZmZUYWlsSWZOZWVkZWQocmVuZGVyU3RhdGUsIGhhc1JlbmRlcmVkQVRhaWxGYWxsYmFjaykge1xuICBpZiAoZ2V0SXNIeWRyYXRpbmcoKSkge1xuICAgIC8vIElmIHdlJ3JlIGh5ZHJhdGluZywgd2Ugc2hvdWxkIGNvbnN1bWUgYXMgbWFueSBpdGVtcyBhcyB3ZSBjYW5cbiAgICAvLyBzbyB3ZSBkb24ndCBsZWF2ZSBhbnkgYmVoaW5kLlxuICAgIHJldHVybjtcbiAgfVxuXG4gIHN3aXRjaCAocmVuZGVyU3RhdGUudGFpbE1vZGUpIHtcbiAgICBjYXNlICdoaWRkZW4nOlxuICAgICAge1xuICAgICAgICAvLyBBbnkgaW5zZXJ0aW9ucyBhdCB0aGUgZW5kIG9mIHRoZSB0YWlsIGxpc3QgYWZ0ZXIgdGhpcyBwb2ludFxuICAgICAgICAvLyBzaG91bGQgYmUgaW52aXNpYmxlLiBJZiB0aGVyZSBhcmUgYWxyZWFkeSBtb3VudGVkIGJvdW5kYXJpZXNcbiAgICAgICAgLy8gYW55dGhpbmcgYmVmb3JlIHRoZW0gYXJlIG5vdCBjb25zaWRlcmVkIGZvciBjb2xsYXBzaW5nLlxuICAgICAgICAvLyBUaGVyZWZvcmUgd2UgbmVlZCB0byBnbyB0aHJvdWdoIHRoZSB3aG9sZSB0YWlsIHRvIGZpbmQgaWZcbiAgICAgICAgLy8gdGhlcmUgYXJlIGFueS5cbiAgICAgICAgdmFyIHRhaWxOb2RlID0gcmVuZGVyU3RhdGUudGFpbDtcbiAgICAgICAgdmFyIGxhc3RUYWlsTm9kZSA9IG51bGw7XG5cbiAgICAgICAgd2hpbGUgKHRhaWxOb2RlICE9PSBudWxsKSB7XG4gICAgICAgICAgaWYgKHRhaWxOb2RlLmFsdGVybmF0ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgbGFzdFRhaWxOb2RlID0gdGFpbE5vZGU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGFpbE5vZGUgPSB0YWlsTm9kZS5zaWJsaW5nO1xuICAgICAgICB9IC8vIE5leHQgd2UncmUgc2ltcGx5IGdvaW5nIHRvIGRlbGV0ZSBhbGwgaW5zZXJ0aW9ucyBhZnRlciB0aGVcbiAgICAgICAgLy8gbGFzdCByZW5kZXJlZCBpdGVtLlxuXG5cbiAgICAgICAgaWYgKGxhc3RUYWlsTm9kZSA9PT0gbnVsbCkge1xuICAgICAgICAgIC8vIEFsbCByZW1haW5pbmcgaXRlbXMgaW4gdGhlIHRhaWwgYXJlIGluc2VydGlvbnMuXG4gICAgICAgICAgcmVuZGVyU3RhdGUudGFpbCA9IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gRGV0YWNoIHRoZSBpbnNlcnRpb24gYWZ0ZXIgdGhlIGxhc3Qgbm9kZSB0aGF0IHdhcyBhbHJlYWR5XG4gICAgICAgICAgLy8gaW5zZXJ0ZWQuXG4gICAgICAgICAgbGFzdFRhaWxOb2RlLnNpYmxpbmcgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICBjYXNlICdjb2xsYXBzZWQnOlxuICAgICAge1xuICAgICAgICAvLyBBbnkgaW5zZXJ0aW9ucyBhdCB0aGUgZW5kIG9mIHRoZSB0YWlsIGxpc3QgYWZ0ZXIgdGhpcyBwb2ludFxuICAgICAgICAvLyBzaG91bGQgYmUgaW52aXNpYmxlLiBJZiB0aGVyZSBhcmUgYWxyZWFkeSBtb3VudGVkIGJvdW5kYXJpZXNcbiAgICAgICAgLy8gYW55dGhpbmcgYmVmb3JlIHRoZW0gYXJlIG5vdCBjb25zaWRlcmVkIGZvciBjb2xsYXBzaW5nLlxuICAgICAgICAvLyBUaGVyZWZvcmUgd2UgbmVlZCB0byBnbyB0aHJvdWdoIHRoZSB3aG9sZSB0YWlsIHRvIGZpbmQgaWZcbiAgICAgICAgLy8gdGhlcmUgYXJlIGFueS5cbiAgICAgICAgdmFyIF90YWlsTm9kZSA9IHJlbmRlclN0YXRlLnRhaWw7XG4gICAgICAgIHZhciBfbGFzdFRhaWxOb2RlID0gbnVsbDtcblxuICAgICAgICB3aGlsZSAoX3RhaWxOb2RlICE9PSBudWxsKSB7XG4gICAgICAgICAgaWYgKF90YWlsTm9kZS5hbHRlcm5hdGUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIF9sYXN0VGFpbE5vZGUgPSBfdGFpbE5vZGU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgX3RhaWxOb2RlID0gX3RhaWxOb2RlLnNpYmxpbmc7XG4gICAgICAgIH0gLy8gTmV4dCB3ZSdyZSBzaW1wbHkgZ29pbmcgdG8gZGVsZXRlIGFsbCBpbnNlcnRpb25zIGFmdGVyIHRoZVxuICAgICAgICAvLyBsYXN0IHJlbmRlcmVkIGl0ZW0uXG5cblxuICAgICAgICBpZiAoX2xhc3RUYWlsTm9kZSA9PT0gbnVsbCkge1xuICAgICAgICAgIC8vIEFsbCByZW1haW5pbmcgaXRlbXMgaW4gdGhlIHRhaWwgYXJlIGluc2VydGlvbnMuXG4gICAgICAgICAgaWYgKCFoYXNSZW5kZXJlZEFUYWlsRmFsbGJhY2sgJiYgcmVuZGVyU3RhdGUudGFpbCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gV2Ugc3VzcGVuZGVkIGR1cmluZyB0aGUgaGVhZC4gV2Ugd2FudCB0byBzaG93IGF0IGxlYXN0IG9uZVxuICAgICAgICAgICAgLy8gcm93IGF0IHRoZSB0YWlsLiBTbyB3ZSdsbCBrZWVwIG9uIGFuZCBjdXQgb2ZmIHRoZSByZXN0LlxuICAgICAgICAgICAgcmVuZGVyU3RhdGUudGFpbC5zaWJsaW5nID0gbnVsbDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVuZGVyU3RhdGUudGFpbCA9IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIERldGFjaCB0aGUgaW5zZXJ0aW9uIGFmdGVyIHRoZSBsYXN0IG5vZGUgdGhhdCB3YXMgYWxyZWFkeVxuICAgICAgICAgIC8vIGluc2VydGVkLlxuICAgICAgICAgIF9sYXN0VGFpbE5vZGUuc2libGluZyA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjb21wbGV0ZVdvcmsoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKSB7XG4gIHZhciBuZXdQcm9wcyA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcztcblxuICBzd2l0Y2ggKHdvcmtJblByb2dyZXNzLnRhZykge1xuICAgIGNhc2UgSW5kZXRlcm1pbmF0ZUNvbXBvbmVudDpcbiAgICBjYXNlIExhenlDb21wb25lbnQ6XG4gICAgY2FzZSBTaW1wbGVNZW1vQ29tcG9uZW50OlxuICAgIGNhc2UgRnVuY3Rpb25Db21wb25lbnQ6XG4gICAgY2FzZSBGb3J3YXJkUmVmOlxuICAgIGNhc2UgRnJhZ21lbnQ6XG4gICAgY2FzZSBNb2RlOlxuICAgIGNhc2UgUHJvZmlsZXI6XG4gICAgY2FzZSBDb250ZXh0Q29uc3VtZXI6XG4gICAgY2FzZSBNZW1vQ29tcG9uZW50OlxuICAgICAgcmV0dXJuIG51bGw7XG5cbiAgICBjYXNlIENsYXNzQ29tcG9uZW50OlxuICAgICAge1xuICAgICAgICB2YXIgQ29tcG9uZW50ID0gd29ya0luUHJvZ3Jlc3MudHlwZTtcblxuICAgICAgICBpZiAoaXNDb250ZXh0UHJvdmlkZXIoQ29tcG9uZW50KSkge1xuICAgICAgICAgIHBvcENvbnRleHQod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICBjYXNlIEhvc3RSb290OlxuICAgICAge1xuICAgICAgICBwb3BIb3N0Q29udGFpbmVyKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgcG9wVG9wTGV2ZWxDb250ZXh0T2JqZWN0KHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgcmVzZXRXb3JrSW5Qcm9ncmVzc1ZlcnNpb25zKCk7XG4gICAgICAgIHZhciBmaWJlclJvb3QgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG5cbiAgICAgICAgaWYgKGZpYmVyUm9vdC5wZW5kaW5nQ29udGV4dCkge1xuICAgICAgICAgIGZpYmVyUm9vdC5jb250ZXh0ID0gZmliZXJSb290LnBlbmRpbmdDb250ZXh0O1xuICAgICAgICAgIGZpYmVyUm9vdC5wZW5kaW5nQ29udGV4dCA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY3VycmVudCA9PT0gbnVsbCB8fCBjdXJyZW50LmNoaWxkID09PSBudWxsKSB7XG4gICAgICAgICAgLy8gSWYgd2UgaHlkcmF0ZWQsIHBvcCBzbyB0aGF0IHdlIGNhbiBkZWxldGUgYW55IHJlbWFpbmluZyBjaGlsZHJlblxuICAgICAgICAgIC8vIHRoYXQgd2VyZW4ndCBoeWRyYXRlZC5cbiAgICAgICAgICB2YXIgd2FzSHlkcmF0ZWQgPSBwb3BIeWRyYXRpb25TdGF0ZSh3b3JrSW5Qcm9ncmVzcyk7XG5cbiAgICAgICAgICBpZiAod2FzSHlkcmF0ZWQpIHtcbiAgICAgICAgICAgIC8vIElmIHdlIGh5ZHJhdGVkLCB0aGVuIHdlJ2xsIG5lZWQgdG8gc2NoZWR1bGUgYW4gdXBkYXRlIGZvclxuICAgICAgICAgICAgLy8gdGhlIGNvbW1pdCBzaWRlLWVmZmVjdHMgb24gdGhlIHJvb3QuXG4gICAgICAgICAgICBtYXJrVXBkYXRlKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKCFmaWJlclJvb3QuaHlkcmF0ZSkge1xuICAgICAgICAgICAgLy8gU2NoZWR1bGUgYW4gZWZmZWN0IHRvIGNsZWFyIHRoaXMgY29udGFpbmVyIGF0IHRoZSBzdGFydCBvZiB0aGUgbmV4dCBjb21taXQuXG4gICAgICAgICAgICAvLyBUaGlzIGhhbmRsZXMgdGhlIGNhc2Ugb2YgUmVhY3QgcmVuZGVyaW5nIGludG8gYSBjb250YWluZXIgd2l0aCBwcmV2aW91cyBjaGlsZHJlbi5cbiAgICAgICAgICAgIC8vIEl0J3MgYWxzbyBzYWZlIHRvIGRvIGZvciB1cGRhdGVzIHRvbywgYmVjYXVzZSBjdXJyZW50LmNoaWxkIHdvdWxkIG9ubHkgYmUgbnVsbFxuICAgICAgICAgICAgLy8gaWYgdGhlIHByZXZpb3VzIHJlbmRlciB3YXMgbnVsbCAoc28gdGhlIHRoZSBjb250YWluZXIgd291bGQgYWxyZWFkeSBiZSBlbXB0eSkuXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBTbmFwc2hvdDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB1cGRhdGVIb3N0Q29udGFpbmVyKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICBjYXNlIEhvc3RDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHBvcEhvc3RDb250ZXh0KHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgdmFyIHJvb3RDb250YWluZXJJbnN0YW5jZSA9IGdldFJvb3RIb3N0Q29udGFpbmVyKCk7XG4gICAgICAgIHZhciB0eXBlID0gd29ya0luUHJvZ3Jlc3MudHlwZTtcblxuICAgICAgICBpZiAoY3VycmVudCAhPT0gbnVsbCAmJiB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGUgIT0gbnVsbCkge1xuICAgICAgICAgIHVwZGF0ZUhvc3RDb21wb25lbnQkMShjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgdHlwZSwgbmV3UHJvcHMsIHJvb3RDb250YWluZXJJbnN0YW5jZSk7XG5cbiAgICAgICAgICBpZiAoY3VycmVudC5yZWYgIT09IHdvcmtJblByb2dyZXNzLnJlZikge1xuICAgICAgICAgICAgbWFya1JlZiQxKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKCFuZXdQcm9wcykge1xuICAgICAgICAgICAgaWYgKCEod29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlICE9PSBudWxsKSkge1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoIFwiV2UgbXVzdCBoYXZlIG5ldyBwcm9wcyBmb3IgbmV3IG1vdW50cy4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIiApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IC8vIFRoaXMgY2FuIGhhcHBlbiB3aGVuIHdlIGFib3J0IHdvcmsuXG5cblxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdmFyIGN1cnJlbnRIb3N0Q29udGV4dCA9IGdldEhvc3RDb250ZXh0KCk7IC8vIFRPRE86IE1vdmUgY3JlYXRlSW5zdGFuY2UgdG8gYmVnaW5Xb3JrIGFuZCBrZWVwIGl0IG9uIGEgY29udGV4dFxuICAgICAgICAgIC8vIFwic3RhY2tcIiBhcyB0aGUgcGFyZW50LiBUaGVuIGFwcGVuZCBjaGlsZHJlbiBhcyB3ZSBnbyBpbiBiZWdpbldvcmtcbiAgICAgICAgICAvLyBvciBjb21wbGV0ZVdvcmsgZGVwZW5kaW5nIG9uIHdoZXRoZXIgd2Ugd2FudCB0byBhZGQgdGhlbSB0b3AtPmRvd24gb3JcbiAgICAgICAgICAvLyBib3R0b20tPnVwLiBUb3AtPmRvd24gaXMgZmFzdGVyIGluIElFMTEuXG5cbiAgICAgICAgICB2YXIgX3dhc0h5ZHJhdGVkID0gcG9wSHlkcmF0aW9uU3RhdGUod29ya0luUHJvZ3Jlc3MpO1xuXG4gICAgICAgICAgaWYgKF93YXNIeWRyYXRlZCkge1xuICAgICAgICAgICAgLy8gVE9ETzogTW92ZSB0aGlzIGFuZCBjcmVhdGVJbnN0YW5jZSBzdGVwIGludG8gdGhlIGJlZ2luUGhhc2VcbiAgICAgICAgICAgIC8vIHRvIGNvbnNvbGlkYXRlLlxuICAgICAgICAgICAgaWYgKHByZXBhcmVUb0h5ZHJhdGVIb3N0SW5zdGFuY2Uod29ya0luUHJvZ3Jlc3MsIHJvb3RDb250YWluZXJJbnN0YW5jZSwgY3VycmVudEhvc3RDb250ZXh0KSkge1xuICAgICAgICAgICAgICAvLyBJZiBjaGFuZ2VzIHRvIHRoZSBoeWRyYXRlZCBub2RlIG5lZWQgdG8gYmUgYXBwbGllZCBhdCB0aGVcbiAgICAgICAgICAgICAgLy8gY29tbWl0LXBoYXNlIHdlIG1hcmsgdGhpcyBhcyBzdWNoLlxuICAgICAgICAgICAgICBtYXJrVXBkYXRlKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFyIGluc3RhbmNlID0gY3JlYXRlSW5zdGFuY2UodHlwZSwgbmV3UHJvcHMsIHJvb3RDb250YWluZXJJbnN0YW5jZSwgY3VycmVudEhvc3RDb250ZXh0LCB3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgICAgICBhcHBlbmRBbGxDaGlsZHJlbihpbnN0YW5jZSwgd29ya0luUHJvZ3Jlc3MsIGZhbHNlLCBmYWxzZSk7XG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGUgPSBpbnN0YW5jZTsgLy8gQ2VydGFpbiByZW5kZXJlcnMgcmVxdWlyZSBjb21taXQtdGltZSBlZmZlY3RzIGZvciBpbml0aWFsIG1vdW50LlxuICAgICAgICAgICAgLy8gKGVnIERPTSByZW5kZXJlciBzdXBwb3J0cyBhdXRvLWZvY3VzIGZvciBjZXJ0YWluIGVsZW1lbnRzKS5cbiAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSBzdWNoIHJlbmRlcmVycyBnZXQgc2NoZWR1bGVkIGZvciBsYXRlciB3b3JrLlxuXG4gICAgICAgICAgICBpZiAoZmluYWxpemVJbml0aWFsQ2hpbGRyZW4oaW5zdGFuY2UsIHR5cGUsIG5ld1Byb3BzLCByb290Q29udGFpbmVySW5zdGFuY2UpKSB7XG4gICAgICAgICAgICAgIG1hcmtVcGRhdGUod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh3b3JrSW5Qcm9ncmVzcy5yZWYgIT09IG51bGwpIHtcbiAgICAgICAgICAgIC8vIElmIHRoZXJlIGlzIGEgcmVmIG9uIGEgaG9zdCBub2RlIHdlIG5lZWQgdG8gc2NoZWR1bGUgYSBjYWxsYmFja1xuICAgICAgICAgICAgbWFya1JlZiQxKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgIGNhc2UgSG9zdFRleHQ6XG4gICAgICB7XG4gICAgICAgIHZhciBuZXdUZXh0ID0gbmV3UHJvcHM7XG5cbiAgICAgICAgaWYgKGN1cnJlbnQgJiYgd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlICE9IG51bGwpIHtcbiAgICAgICAgICB2YXIgb2xkVGV4dCA9IGN1cnJlbnQubWVtb2l6ZWRQcm9wczsgLy8gSWYgd2UgaGF2ZSBhbiBhbHRlcm5hdGUsIHRoYXQgbWVhbnMgdGhpcyBpcyBhbiB1cGRhdGUgYW5kIHdlIG5lZWRcbiAgICAgICAgICAvLyB0byBzY2hlZHVsZSBhIHNpZGUtZWZmZWN0IHRvIGRvIHRoZSB1cGRhdGVzLlxuXG4gICAgICAgICAgdXBkYXRlSG9zdFRleHQkMShjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgb2xkVGV4dCwgbmV3VGV4dCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBuZXdUZXh0ICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgaWYgKCEod29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlICE9PSBudWxsKSkge1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoIFwiV2UgbXVzdCBoYXZlIG5ldyBwcm9wcyBmb3IgbmV3IG1vdW50cy4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIiApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IC8vIFRoaXMgY2FuIGhhcHBlbiB3aGVuIHdlIGFib3J0IHdvcmsuXG5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICB2YXIgX3Jvb3RDb250YWluZXJJbnN0YW5jZSA9IGdldFJvb3RIb3N0Q29udGFpbmVyKCk7XG5cbiAgICAgICAgICB2YXIgX2N1cnJlbnRIb3N0Q29udGV4dCA9IGdldEhvc3RDb250ZXh0KCk7XG5cbiAgICAgICAgICB2YXIgX3dhc0h5ZHJhdGVkMiA9IHBvcEh5ZHJhdGlvblN0YXRlKHdvcmtJblByb2dyZXNzKTtcblxuICAgICAgICAgIGlmIChfd2FzSHlkcmF0ZWQyKSB7XG4gICAgICAgICAgICBpZiAocHJlcGFyZVRvSHlkcmF0ZUhvc3RUZXh0SW5zdGFuY2Uod29ya0luUHJvZ3Jlc3MpKSB7XG4gICAgICAgICAgICAgIG1hcmtVcGRhdGUod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGUgPSBjcmVhdGVUZXh0SW5zdGFuY2UobmV3VGV4dCwgX3Jvb3RDb250YWluZXJJbnN0YW5jZSwgX2N1cnJlbnRIb3N0Q29udGV4dCwgd29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgY2FzZSBTdXNwZW5zZUNvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgcG9wU3VzcGVuc2VDb250ZXh0KHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgdmFyIG5leHRTdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG5cbiAgICAgICAgaWYgKCh3b3JrSW5Qcm9ncmVzcy5mbGFncyAmIERpZENhcHR1cmUpICE9PSBOb0ZsYWdzKSB7XG4gICAgICAgICAgLy8gU29tZXRoaW5nIHN1c3BlbmRlZC4gUmUtcmVuZGVyIHdpdGggdGhlIGZhbGxiYWNrIGNoaWxkcmVuLlxuICAgICAgICAgIHdvcmtJblByb2dyZXNzLmxhbmVzID0gcmVuZGVyTGFuZXM7IC8vIERvIG5vdCByZXNldCB0aGUgZWZmZWN0IGxpc3QuXG5cbiAgICAgICAgICBpZiAoICh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUpIHtcbiAgICAgICAgICAgIHRyYW5zZmVyQWN0dWFsRHVyYXRpb24od29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzcztcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBuZXh0RGlkVGltZW91dCA9IG5leHRTdGF0ZSAhPT0gbnVsbDtcbiAgICAgICAgdmFyIHByZXZEaWRUaW1lb3V0ID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKGN1cnJlbnQgPT09IG51bGwpIHtcbiAgICAgICAgICBpZiAod29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRQcm9wcy5mYWxsYmFjayAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBwb3BIeWRyYXRpb25TdGF0ZSh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhciBwcmV2U3RhdGUgPSBjdXJyZW50Lm1lbW9pemVkU3RhdGU7XG4gICAgICAgICAgcHJldkRpZFRpbWVvdXQgPSBwcmV2U3RhdGUgIT09IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobmV4dERpZFRpbWVvdXQgJiYgIXByZXZEaWRUaW1lb3V0KSB7XG4gICAgICAgICAgLy8gSWYgdGhpcyBzdWJ0cmVlZSBpcyBydW5uaW5nIGluIGJsb2NraW5nIG1vZGUgd2UgY2FuIHN1c3BlbmQsXG4gICAgICAgICAgLy8gb3RoZXJ3aXNlIHdlIHdvbid0IHN1c3BlbmQuXG4gICAgICAgICAgLy8gVE9ETzogVGhpcyB3aWxsIHN0aWxsIHN1c3BlbmQgYSBzeW5jaHJvbm91cyB0cmVlIGlmIGFueXRoaW5nXG4gICAgICAgICAgLy8gaW4gdGhlIGNvbmN1cnJlbnQgdHJlZSBhbHJlYWR5IHN1c3BlbmRlZCBkdXJpbmcgdGhpcyByZW5kZXIuXG4gICAgICAgICAgLy8gVGhpcyBpcyBhIGtub3duIGJ1Zy5cbiAgICAgICAgICBpZiAoKHdvcmtJblByb2dyZXNzLm1vZGUgJiBCbG9ja2luZ01vZGUpICE9PSBOb01vZGUpIHtcbiAgICAgICAgICAgIC8vIFRPRE86IE1vdmUgdGhpcyBiYWNrIHRvIHRocm93RXhjZXB0aW9uIGJlY2F1c2UgdGhpcyBpcyB0b28gbGF0ZVxuICAgICAgICAgICAgLy8gaWYgdGhpcyBpcyBhIGxhcmdlIHRyZWUgd2hpY2ggaXMgY29tbW9uIGZvciBpbml0aWFsIGxvYWRzLiBXZVxuICAgICAgICAgICAgLy8gZG9uJ3Qga25vdyBpZiB3ZSBzaG91bGQgcmVzdGFydCBhIHJlbmRlciBvciBub3QgdW50aWwgd2UgZ2V0XG4gICAgICAgICAgICAvLyB0aGlzIG1hcmtlciwgYW5kIHRoaXMgaXMgdG9vIGxhdGUuXG4gICAgICAgICAgICAvLyBJZiB0aGlzIHJlbmRlciBhbHJlYWR5IGhhZCBhIHBpbmcgb3IgbG93ZXIgcHJpIHVwZGF0ZXMsXG4gICAgICAgICAgICAvLyBhbmQgdGhpcyBpcyB0aGUgZmlyc3QgdGltZSB3ZSBrbm93IHdlJ3JlIGdvaW5nIHRvIHN1c3BlbmQgd2VcbiAgICAgICAgICAgIC8vIHNob3VsZCBiZSBhYmxlIHRvIGltbWVkaWF0ZWx5IHJlc3RhcnQgZnJvbSB3aXRoaW4gdGhyb3dFeGNlcHRpb24uXG4gICAgICAgICAgICB2YXIgaGFzSW52aXNpYmxlQ2hpbGRDb250ZXh0ID0gY3VycmVudCA9PT0gbnVsbCAmJiB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFByb3BzLnVuc3RhYmxlX2F2b2lkVGhpc0ZhbGxiYWNrICE9PSB0cnVlO1xuXG4gICAgICAgICAgICBpZiAoaGFzSW52aXNpYmxlQ2hpbGRDb250ZXh0IHx8IGhhc1N1c3BlbnNlQ29udGV4dChzdXNwZW5zZVN0YWNrQ3Vyc29yLmN1cnJlbnQsIEludmlzaWJsZVBhcmVudFN1c3BlbnNlQ29udGV4dCkpIHtcbiAgICAgICAgICAgICAgLy8gSWYgdGhpcyB3YXMgaW4gYW4gaW52aXNpYmxlIHRyZWUgb3IgYSBuZXcgcmVuZGVyLCB0aGVuIHNob3dpbmdcbiAgICAgICAgICAgICAgLy8gdGhpcyBib3VuZGFyeSBpcyBvay5cbiAgICAgICAgICAgICAgcmVuZGVyRGlkU3VzcGVuZCgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8gT3RoZXJ3aXNlLCB3ZSdyZSBnb2luZyB0byBoYXZlIHRvIGhpZGUgY29udGVudCBzbyB3ZSBzaG91bGRcbiAgICAgICAgICAgICAgLy8gc3VzcGVuZCBmb3IgbG9uZ2VyIGlmIHBvc3NpYmxlLlxuICAgICAgICAgICAgICByZW5kZXJEaWRTdXNwZW5kRGVsYXlJZlBvc3NpYmxlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAge1xuICAgICAgICAgIC8vIFRPRE86IE9ubHkgc2NoZWR1bGUgdXBkYXRlcyBpZiB0aGVzZSB2YWx1ZXMgYXJlIG5vbiBlcXVhbCwgaS5lLiBpdCBjaGFuZ2VkLlxuICAgICAgICAgIGlmIChuZXh0RGlkVGltZW91dCB8fCBwcmV2RGlkVGltZW91dCkge1xuICAgICAgICAgICAgLy8gSWYgdGhpcyBib3VuZGFyeSBqdXN0IHRpbWVkIG91dCwgc2NoZWR1bGUgYW4gZWZmZWN0IHRvIGF0dGFjaCBhXG4gICAgICAgICAgICAvLyByZXRyeSBsaXN0ZW5lciB0byB0aGUgcHJvbWlzZS4gVGhpcyBmbGFnIGlzIGFsc28gdXNlZCB0byBoaWRlIHRoZVxuICAgICAgICAgICAgLy8gcHJpbWFyeSBjaGlsZHJlbi4gSW4gbXV0YXRpb24gbW9kZSwgd2UgYWxzbyBuZWVkIHRoZSBmbGFnIHRvXG4gICAgICAgICAgICAvLyAqdW5oaWRlKiBjaGlsZHJlbiB0aGF0IHdlcmUgcHJldmlvdXNseSBoaWRkZW4sIHNvIGNoZWNrIGlmIHRoaXNcbiAgICAgICAgICAgIC8vIGlzIGN1cnJlbnRseSB0aW1lZCBvdXQsIHRvby5cbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IFVwZGF0ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgIGNhc2UgSG9zdFBvcnRhbDpcbiAgICAgIHBvcEhvc3RDb250YWluZXIod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgdXBkYXRlSG9zdENvbnRhaW5lcih3b3JrSW5Qcm9ncmVzcyk7XG5cbiAgICAgIGlmIChjdXJyZW50ID09PSBudWxsKSB7XG4gICAgICAgIHByZXBhcmVQb3J0YWxNb3VudCh3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBudWxsO1xuXG4gICAgY2FzZSBDb250ZXh0UHJvdmlkZXI6XG4gICAgICAvLyBQb3AgcHJvdmlkZXIgZmliZXJcbiAgICAgIHBvcFByb3ZpZGVyKHdvcmtJblByb2dyZXNzKTtcbiAgICAgIHJldHVybiBudWxsO1xuXG4gICAgY2FzZSBJbmNvbXBsZXRlQ2xhc3NDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIC8vIFNhbWUgYXMgY2xhc3MgY29tcG9uZW50IGNhc2UuIEkgcHV0IGl0IGRvd24gaGVyZSBzbyB0aGF0IHRoZSB0YWdzIGFyZVxuICAgICAgICAvLyBzZXF1ZW50aWFsIHRvIGVuc3VyZSB0aGlzIHN3aXRjaCBpcyBjb21waWxlZCB0byBhIGp1bXAgdGFibGUuXG4gICAgICAgIHZhciBfQ29tcG9uZW50ID0gd29ya0luUHJvZ3Jlc3MudHlwZTtcblxuICAgICAgICBpZiAoaXNDb250ZXh0UHJvdmlkZXIoX0NvbXBvbmVudCkpIHtcbiAgICAgICAgICBwb3BDb250ZXh0KHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgY2FzZSBTdXNwZW5zZUxpc3RDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHBvcFN1c3BlbnNlQ29udGV4dCh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgIHZhciByZW5kZXJTdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG5cbiAgICAgICAgaWYgKHJlbmRlclN0YXRlID09PSBudWxsKSB7XG4gICAgICAgICAgLy8gV2UncmUgcnVubmluZyBpbiB0aGUgZGVmYXVsdCwgXCJpbmRlcGVuZGVudFwiIG1vZGUuXG4gICAgICAgICAgLy8gV2UgZG9uJ3QgZG8gYW55dGhpbmcgaW4gdGhpcyBtb2RlLlxuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGRpZFN1c3BlbmRBbHJlYWR5ID0gKHdvcmtJblByb2dyZXNzLmZsYWdzICYgRGlkQ2FwdHVyZSkgIT09IE5vRmxhZ3M7XG4gICAgICAgIHZhciByZW5kZXJlZFRhaWwgPSByZW5kZXJTdGF0ZS5yZW5kZXJpbmc7XG5cbiAgICAgICAgaWYgKHJlbmRlcmVkVGFpbCA9PT0gbnVsbCkge1xuICAgICAgICAgIC8vIFdlIGp1c3QgcmVuZGVyZWQgdGhlIGhlYWQuXG4gICAgICAgICAgaWYgKCFkaWRTdXNwZW5kQWxyZWFkeSkge1xuICAgICAgICAgICAgLy8gVGhpcyBpcyB0aGUgZmlyc3QgcGFzcy4gV2UgbmVlZCB0byBmaWd1cmUgb3V0IGlmIGFueXRoaW5nIGlzIHN0aWxsXG4gICAgICAgICAgICAvLyBzdXNwZW5kZWQgaW4gdGhlIHJlbmRlcmVkIHNldC5cbiAgICAgICAgICAgIC8vIElmIG5ldyBjb250ZW50IHVuc3VzcGVuZGVkLCBidXQgdGhlcmUncyBzdGlsbCBzb21lIGNvbnRlbnQgdGhhdFxuICAgICAgICAgICAgLy8gZGlkbid0LiBUaGVuIHdlIG5lZWQgdG8gZG8gYSBzZWNvbmQgcGFzcyB0aGF0IGZvcmNlcyBldmVyeXRoaW5nXG4gICAgICAgICAgICAvLyB0byBrZWVwIHNob3dpbmcgdGhlaXIgZmFsbGJhY2tzLlxuICAgICAgICAgICAgLy8gV2UgbWlnaHQgYmUgc3VzcGVuZGVkIGlmIHNvbWV0aGluZyBpbiB0aGlzIHJlbmRlciBwYXNzIHN1c3BlbmRlZCwgb3JcbiAgICAgICAgICAgIC8vIHNvbWV0aGluZyBpbiB0aGUgcHJldmlvdXMgY29tbWl0dGVkIHBhc3Mgc3VzcGVuZGVkLiBPdGhlcndpc2UsXG4gICAgICAgICAgICAvLyB0aGVyZSdzIG5vIGNoYW5jZSBzbyB3ZSBjYW4gc2tpcCB0aGUgZXhwZW5zaXZlIGNhbGwgdG9cbiAgICAgICAgICAgIC8vIGZpbmRGaXJzdFN1c3BlbmRlZC5cbiAgICAgICAgICAgIHZhciBjYW5ub3RCZVN1c3BlbmRlZCA9IHJlbmRlckhhc05vdFN1c3BlbmRlZFlldCgpICYmIChjdXJyZW50ID09PSBudWxsIHx8IChjdXJyZW50LmZsYWdzICYgRGlkQ2FwdHVyZSkgPT09IE5vRmxhZ3MpO1xuXG4gICAgICAgICAgICBpZiAoIWNhbm5vdEJlU3VzcGVuZGVkKSB7XG4gICAgICAgICAgICAgIHZhciByb3cgPSB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcblxuICAgICAgICAgICAgICB3aGlsZSAocm93ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdmFyIHN1c3BlbmRlZCA9IGZpbmRGaXJzdFN1c3BlbmRlZChyb3cpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHN1c3BlbmRlZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgZGlkU3VzcGVuZEFscmVhZHkgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gRGlkQ2FwdHVyZTtcbiAgICAgICAgICAgICAgICAgIGN1dE9mZlRhaWxJZk5lZWRlZChyZW5kZXJTdGF0ZSwgZmFsc2UpOyAvLyBJZiB0aGlzIGlzIGEgbmV3bHkgc3VzcGVuZGVkIHRyZWUsIGl0IG1pZ2h0IG5vdCBnZXQgY29tbWl0dGVkIGFzXG4gICAgICAgICAgICAgICAgICAvLyBwYXJ0IG9mIHRoZSBzZWNvbmQgcGFzcy4gSW4gdGhhdCBjYXNlIG5vdGhpbmcgd2lsbCBzdWJzY3JpYmUgdG9cbiAgICAgICAgICAgICAgICAgIC8vIGl0cyB0aGVubmFibGVzLiBJbnN0ZWFkLCB3ZSdsbCB0cmFuc2ZlciBpdHMgdGhlbm5hYmxlcyB0byB0aGVcbiAgICAgICAgICAgICAgICAgIC8vIFN1c3BlbnNlTGlzdCBzbyB0aGF0IGl0IGNhbiByZXRyeSBpZiB0aGV5IHJlc29sdmUuXG4gICAgICAgICAgICAgICAgICAvLyBUaGVyZSBtaWdodCBiZSBtdWx0aXBsZSBvZiB0aGVzZSBpbiB0aGUgbGlzdCBidXQgc2luY2Ugd2UncmVcbiAgICAgICAgICAgICAgICAgIC8vIGdvaW5nIHRvIHdhaXQgZm9yIGFsbCBvZiB0aGVtIGFueXdheSwgaXQgZG9lc24ndCByZWFsbHkgbWF0dGVyXG4gICAgICAgICAgICAgICAgICAvLyB3aGljaCBvbmVzIGdldHMgdG8gcGluZy4gSW4gdGhlb3J5IHdlIGNvdWxkIGdldCBjbGV2ZXIgYW5kIGtlZXBcbiAgICAgICAgICAgICAgICAgIC8vIHRyYWNrIG9mIGhvdyBtYW55IGRlcGVuZGVuY2llcyByZW1haW4gYnV0IGl0IGdldHMgdHJpY2t5IGJlY2F1c2VcbiAgICAgICAgICAgICAgICAgIC8vIGluIHRoZSBtZWFudGltZSwgd2UgY2FuIGFkZC9yZW1vdmUvY2hhbmdlIGl0ZW1zIGFuZCBkZXBlbmRlbmNpZXMuXG4gICAgICAgICAgICAgICAgICAvLyBXZSBtaWdodCBiYWlsIG91dCBvZiB0aGUgbG9vcCBiZWZvcmUgZmluZGluZyBhbnkgYnV0IHRoYXRcbiAgICAgICAgICAgICAgICAgIC8vIGRvZXNuJ3QgbWF0dGVyIHNpbmNlIHRoYXQgbWVhbnMgdGhhdCB0aGUgb3RoZXIgYm91bmRhcmllcyB0aGF0XG4gICAgICAgICAgICAgICAgICAvLyB3ZSBkaWQgZmluZCBhbHJlYWR5IGhhcyB0aGVpciBsaXN0ZW5lcnMgYXR0YWNoZWQuXG5cbiAgICAgICAgICAgICAgICAgIHZhciBuZXdUaGVubmFibGVzID0gc3VzcGVuZGVkLnVwZGF0ZVF1ZXVlO1xuXG4gICAgICAgICAgICAgICAgICBpZiAobmV3VGhlbm5hYmxlcyAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy51cGRhdGVRdWV1ZSA9IG5ld1RoZW5uYWJsZXM7XG4gICAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IFVwZGF0ZTtcbiAgICAgICAgICAgICAgICAgIH0gLy8gUmVyZW5kZXIgdGhlIHdob2xlIGxpc3QsIGJ1dCB0aGlzIHRpbWUsIHdlJ2xsIGZvcmNlIGZhbGxiYWNrc1xuICAgICAgICAgICAgICAgICAgLy8gdG8gc3RheSBpbiBwbGFjZS5cbiAgICAgICAgICAgICAgICAgIC8vIFJlc2V0IHRoZSBlZmZlY3QgbGlzdCBiZWZvcmUgZG9pbmcgdGhlIHNlY29uZCBwYXNzIHNpbmNlIHRoYXQncyBub3cgaW52YWxpZC5cblxuXG4gICAgICAgICAgICAgICAgICBpZiAocmVuZGVyU3RhdGUubGFzdEVmZmVjdCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5maXJzdEVmZmVjdCA9IG51bGw7XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLmxhc3RFZmZlY3QgPSByZW5kZXJTdGF0ZS5sYXN0RWZmZWN0OyAvLyBSZXNldCB0aGUgY2hpbGQgZmliZXJzIHRvIHRoZWlyIG9yaWdpbmFsIHN0YXRlLlxuXG4gICAgICAgICAgICAgICAgICByZXNldENoaWxkRmliZXJzKHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7IC8vIFNldCB1cCB0aGUgU3VzcGVuc2UgQ29udGV4dCB0byBmb3JjZSBzdXNwZW5zZSBhbmQgaW1tZWRpYXRlbHlcbiAgICAgICAgICAgICAgICAgIC8vIHJlcmVuZGVyIHRoZSBjaGlsZHJlbi5cblxuICAgICAgICAgICAgICAgICAgcHVzaFN1c3BlbnNlQ29udGV4dCh3b3JrSW5Qcm9ncmVzcywgc2V0U2hhbGxvd1N1c3BlbnNlQ29udGV4dChzdXNwZW5zZVN0YWNrQ3Vyc29yLmN1cnJlbnQsIEZvcmNlU3VzcGVuc2VGYWxsYmFjaykpO1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIHdvcmtJblByb2dyZXNzLmNoaWxkO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJvdyA9IHJvdy5zaWJsaW5nO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChyZW5kZXJTdGF0ZS50YWlsICE9PSBudWxsICYmIG5vdygpID4gZ2V0UmVuZGVyVGFyZ2V0VGltZSgpKSB7XG4gICAgICAgICAgICAgIC8vIFdlIGhhdmUgYWxyZWFkeSBwYXNzZWQgb3VyIENQVSBkZWFkbGluZSBidXQgd2Ugc3RpbGwgaGF2ZSByb3dzXG4gICAgICAgICAgICAgIC8vIGxlZnQgaW4gdGhlIHRhaWwuIFdlJ2xsIGp1c3QgZ2l2ZSB1cCBmdXJ0aGVyIGF0dGVtcHRzIHRvIHJlbmRlclxuICAgICAgICAgICAgICAvLyB0aGUgbWFpbiBjb250ZW50IGFuZCBvbmx5IHJlbmRlciBmYWxsYmFja3MuXG4gICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IERpZENhcHR1cmU7XG4gICAgICAgICAgICAgIGRpZFN1c3BlbmRBbHJlYWR5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgY3V0T2ZmVGFpbElmTmVlZGVkKHJlbmRlclN0YXRlLCBmYWxzZSk7IC8vIFNpbmNlIG5vdGhpbmcgYWN0dWFsbHkgc3VzcGVuZGVkLCB0aGVyZSB3aWxsIG5vdGhpbmcgdG8gcGluZyB0aGlzXG4gICAgICAgICAgICAgIC8vIHRvIGdldCBpdCBzdGFydGVkIGJhY2sgdXAgdG8gYXR0ZW1wdCB0aGUgbmV4dCBpdGVtLiBXaGlsZSBpbiB0ZXJtc1xuICAgICAgICAgICAgICAvLyBvZiBwcmlvcml0eSB0aGlzIHdvcmsgaGFzIHRoZSBzYW1lIHByaW9yaXR5IGFzIHRoaXMgY3VycmVudCByZW5kZXIsXG4gICAgICAgICAgICAgIC8vIGl0J3Mgbm90IHBhcnQgb2YgdGhlIHNhbWUgdHJhbnNpdGlvbiBvbmNlIHRoZSB0cmFuc2l0aW9uIGhhc1xuICAgICAgICAgICAgICAvLyBjb21taXR0ZWQuIElmIGl0J3Mgc3luYywgd2Ugc3RpbGwgd2FudCB0byB5aWVsZCBzbyB0aGF0IGl0IGNhbiBiZVxuICAgICAgICAgICAgICAvLyBwYWludGVkLiBDb25jZXB0dWFsbHksIHRoaXMgaXMgcmVhbGx5IHRoZSBzYW1lIGFzIHBpbmdpbmcuXG4gICAgICAgICAgICAgIC8vIFdlIGNhbiB1c2UgYW55IFJldHJ5TGFuZSBldmVuIGlmIGl0J3MgdGhlIG9uZSBjdXJyZW50bHkgcmVuZGVyaW5nXG4gICAgICAgICAgICAgIC8vIHNpbmNlIHdlJ3JlIGxlYXZpbmcgaXQgYmVoaW5kIG9uIHRoaXMgbm9kZS5cblxuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5sYW5lcyA9IFNvbWVSZXRyeUxhbmU7XG5cbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG1hcmtTcGF3bmVkV29yayhTb21lUmV0cnlMYW5lKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjdXRPZmZUYWlsSWZOZWVkZWQocmVuZGVyU3RhdGUsIGZhbHNlKTtcbiAgICAgICAgICB9IC8vIE5leHQgd2UncmUgZ29pbmcgdG8gcmVuZGVyIHRoZSB0YWlsLlxuXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gQXBwZW5kIHRoZSByZW5kZXJlZCByb3cgdG8gdGhlIGNoaWxkIGxpc3QuXG4gICAgICAgICAgaWYgKCFkaWRTdXNwZW5kQWxyZWFkeSkge1xuICAgICAgICAgICAgdmFyIF9zdXNwZW5kZWQgPSBmaW5kRmlyc3RTdXNwZW5kZWQocmVuZGVyZWRUYWlsKTtcblxuICAgICAgICAgICAgaWYgKF9zdXNwZW5kZWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gRGlkQ2FwdHVyZTtcbiAgICAgICAgICAgICAgZGlkU3VzcGVuZEFscmVhZHkgPSB0cnVlOyAvLyBFbnN1cmUgd2UgdHJhbnNmZXIgdGhlIHVwZGF0ZSBxdWV1ZSB0byB0aGUgcGFyZW50IHNvIHRoYXQgaXQgZG9lc24ndFxuICAgICAgICAgICAgICAvLyBnZXQgbG9zdCBpZiB0aGlzIHJvdyBlbmRzIHVwIGRyb3BwZWQgZHVyaW5nIGEgc2Vjb25kIHBhc3MuXG5cbiAgICAgICAgICAgICAgdmFyIF9uZXdUaGVubmFibGVzID0gX3N1c3BlbmRlZC51cGRhdGVRdWV1ZTtcblxuICAgICAgICAgICAgICBpZiAoX25ld1RoZW5uYWJsZXMgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy51cGRhdGVRdWV1ZSA9IF9uZXdUaGVubmFibGVzO1xuICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IFVwZGF0ZTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGN1dE9mZlRhaWxJZk5lZWRlZChyZW5kZXJTdGF0ZSwgdHJ1ZSk7IC8vIFRoaXMgbWlnaHQgaGF2ZSBiZWVuIG1vZGlmaWVkLlxuXG4gICAgICAgICAgICAgIGlmIChyZW5kZXJTdGF0ZS50YWlsID09PSBudWxsICYmIHJlbmRlclN0YXRlLnRhaWxNb2RlID09PSAnaGlkZGVuJyAmJiAhcmVuZGVyZWRUYWlsLmFsdGVybmF0ZSAmJiAhZ2V0SXNIeWRyYXRpbmcoKSAvLyBXZSBkb24ndCBjdXQgaXQgaWYgd2UncmUgaHlkcmF0aW5nLlxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gZGVsZXRlIHRoZSByb3cgd2UganVzdCByZW5kZXJlZC5cbiAgICAgICAgICAgICAgICAgIC8vIFJlc2V0IHRoZSBlZmZlY3QgbGlzdCB0byB3aGF0IGl0IHdhcyBiZWZvcmUgd2UgcmVuZGVyZWQgdGhpc1xuICAgICAgICAgICAgICAgICAgLy8gY2hpbGQuIFRoZSBuZXN0ZWQgY2hpbGRyZW4gaGF2ZSBhbHJlYWR5IGFwcGVuZGVkIHRoZW1zZWx2ZXMuXG4gICAgICAgICAgICAgICAgICB2YXIgbGFzdEVmZmVjdCA9IHdvcmtJblByb2dyZXNzLmxhc3RFZmZlY3QgPSByZW5kZXJTdGF0ZS5sYXN0RWZmZWN0OyAvLyBSZW1vdmUgYW55IGVmZmVjdHMgdGhhdCB3ZXJlIGFwcGVuZGVkIGFmdGVyIHRoaXMgcG9pbnQuXG5cbiAgICAgICAgICAgICAgICAgIGlmIChsYXN0RWZmZWN0ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGxhc3RFZmZlY3QubmV4dEVmZmVjdCA9IG51bGw7XG4gICAgICAgICAgICAgICAgICB9IC8vIFdlJ3JlIGRvbmUuXG5cblxuICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmICggLy8gVGhlIHRpbWUgaXQgdG9vayB0byByZW5kZXIgbGFzdCByb3cgaXMgZ3JlYXRlciB0aGFuIHRoZSByZW1haW5pbmdcbiAgICAgICAgICAgIC8vIHRpbWUgd2UgaGF2ZSB0byByZW5kZXIuIFNvIHJlbmRlcmluZyBvbmUgbW9yZSByb3cgd291bGQgbGlrZWx5XG4gICAgICAgICAgICAvLyBleGNlZWQgaXQuXG4gICAgICAgICAgICBub3coKSAqIDIgLSByZW5kZXJTdGF0ZS5yZW5kZXJpbmdTdGFydFRpbWUgPiBnZXRSZW5kZXJUYXJnZXRUaW1lKCkgJiYgcmVuZGVyTGFuZXMgIT09IE9mZnNjcmVlbkxhbmUpIHtcbiAgICAgICAgICAgICAgLy8gV2UgaGF2ZSBub3cgcGFzc2VkIG91ciBDUFUgZGVhZGxpbmUgYW5kIHdlJ2xsIGp1c3QgZ2l2ZSB1cCBmdXJ0aGVyXG4gICAgICAgICAgICAgIC8vIGF0dGVtcHRzIHRvIHJlbmRlciB0aGUgbWFpbiBjb250ZW50IGFuZCBvbmx5IHJlbmRlciBmYWxsYmFja3MuXG4gICAgICAgICAgICAgIC8vIFRoZSBhc3N1bXB0aW9uIGlzIHRoYXQgdGhpcyBpcyB1c3VhbGx5IGZhc3Rlci5cbiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gRGlkQ2FwdHVyZTtcbiAgICAgICAgICAgICAgZGlkU3VzcGVuZEFscmVhZHkgPSB0cnVlO1xuICAgICAgICAgICAgICBjdXRPZmZUYWlsSWZOZWVkZWQocmVuZGVyU3RhdGUsIGZhbHNlKTsgLy8gU2luY2Ugbm90aGluZyBhY3R1YWxseSBzdXNwZW5kZWQsIHRoZXJlIHdpbGwgbm90aGluZyB0byBwaW5nIHRoaXNcbiAgICAgICAgICAgICAgLy8gdG8gZ2V0IGl0IHN0YXJ0ZWQgYmFjayB1cCB0byBhdHRlbXB0IHRoZSBuZXh0IGl0ZW0uIFdoaWxlIGluIHRlcm1zXG4gICAgICAgICAgICAgIC8vIG9mIHByaW9yaXR5IHRoaXMgd29yayBoYXMgdGhlIHNhbWUgcHJpb3JpdHkgYXMgdGhpcyBjdXJyZW50IHJlbmRlcixcbiAgICAgICAgICAgICAgLy8gaXQncyBub3QgcGFydCBvZiB0aGUgc2FtZSB0cmFuc2l0aW9uIG9uY2UgdGhlIHRyYW5zaXRpb24gaGFzXG4gICAgICAgICAgICAgIC8vIGNvbW1pdHRlZC4gSWYgaXQncyBzeW5jLCB3ZSBzdGlsbCB3YW50IHRvIHlpZWxkIHNvIHRoYXQgaXQgY2FuIGJlXG4gICAgICAgICAgICAgIC8vIHBhaW50ZWQuIENvbmNlcHR1YWxseSwgdGhpcyBpcyByZWFsbHkgdGhlIHNhbWUgYXMgcGluZ2luZy5cbiAgICAgICAgICAgICAgLy8gV2UgY2FuIHVzZSBhbnkgUmV0cnlMYW5lIGV2ZW4gaWYgaXQncyB0aGUgb25lIGN1cnJlbnRseSByZW5kZXJpbmdcbiAgICAgICAgICAgICAgLy8gc2luY2Ugd2UncmUgbGVhdmluZyBpdCBiZWhpbmQgb24gdGhpcyBub2RlLlxuXG4gICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLmxhbmVzID0gU29tZVJldHJ5TGFuZTtcblxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbWFya1NwYXduZWRXb3JrKFNvbWVSZXRyeUxhbmUpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHJlbmRlclN0YXRlLmlzQmFja3dhcmRzKSB7XG4gICAgICAgICAgICAvLyBUaGUgZWZmZWN0IGxpc3Qgb2YgdGhlIGJhY2t3YXJkcyB0YWlsIHdpbGwgaGF2ZSBiZWVuIGFkZGVkXG4gICAgICAgICAgICAvLyB0byB0aGUgZW5kLiBUaGlzIGJyZWFrcyB0aGUgZ3VhcmFudGVlIHRoYXQgbGlmZS1jeWNsZXMgZmlyZSBpblxuICAgICAgICAgICAgLy8gc2libGluZyBvcmRlciBidXQgdGhhdCBpc24ndCBhIHN0cm9uZyBndWFyYW50ZWUgcHJvbWlzZWQgYnkgUmVhY3QuXG4gICAgICAgICAgICAvLyBFc3BlY2lhbGx5IHNpbmNlIHRoZXNlIG1pZ2h0IGFsc28ganVzdCBwb3AgaW4gZHVyaW5nIGZ1dHVyZSBjb21taXRzLlxuICAgICAgICAgICAgLy8gQXBwZW5kIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpc3QuXG4gICAgICAgICAgICByZW5kZXJlZFRhaWwuc2libGluZyA9IHdvcmtJblByb2dyZXNzLmNoaWxkO1xuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MuY2hpbGQgPSByZW5kZXJlZFRhaWw7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciBwcmV2aW91c1NpYmxpbmcgPSByZW5kZXJTdGF0ZS5sYXN0O1xuXG4gICAgICAgICAgICBpZiAocHJldmlvdXNTaWJsaW5nICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIHByZXZpb3VzU2libGluZy5zaWJsaW5nID0gcmVuZGVyZWRUYWlsO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MuY2hpbGQgPSByZW5kZXJlZFRhaWw7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJlbmRlclN0YXRlLmxhc3QgPSByZW5kZXJlZFRhaWw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJlbmRlclN0YXRlLnRhaWwgIT09IG51bGwpIHtcbiAgICAgICAgICAvLyBXZSBzdGlsbCBoYXZlIHRhaWwgcm93cyB0byByZW5kZXIuXG4gICAgICAgICAgLy8gUG9wIGEgcm93LlxuICAgICAgICAgIHZhciBuZXh0ID0gcmVuZGVyU3RhdGUudGFpbDtcbiAgICAgICAgICByZW5kZXJTdGF0ZS5yZW5kZXJpbmcgPSBuZXh0O1xuICAgICAgICAgIHJlbmRlclN0YXRlLnRhaWwgPSBuZXh0LnNpYmxpbmc7XG4gICAgICAgICAgcmVuZGVyU3RhdGUubGFzdEVmZmVjdCA9IHdvcmtJblByb2dyZXNzLmxhc3RFZmZlY3Q7XG4gICAgICAgICAgcmVuZGVyU3RhdGUucmVuZGVyaW5nU3RhcnRUaW1lID0gbm93KCk7XG4gICAgICAgICAgbmV4dC5zaWJsaW5nID0gbnVsbDsgLy8gUmVzdG9yZSB0aGUgY29udGV4dC5cbiAgICAgICAgICAvLyBUT0RPOiBXZSBjYW4gcHJvYmFibHkganVzdCBhdm9pZCBwb3BwaW5nIGl0IGluc3RlYWQgYW5kIG9ubHlcbiAgICAgICAgICAvLyBzZXR0aW5nIGl0IHRoZSBmaXJzdCB0aW1lIHdlIGdvIGZyb20gbm90IHN1c3BlbmRlZCB0byBzdXNwZW5kZWQuXG5cbiAgICAgICAgICB2YXIgc3VzcGVuc2VDb250ZXh0ID0gc3VzcGVuc2VTdGFja0N1cnNvci5jdXJyZW50O1xuXG4gICAgICAgICAgaWYgKGRpZFN1c3BlbmRBbHJlYWR5KSB7XG4gICAgICAgICAgICBzdXNwZW5zZUNvbnRleHQgPSBzZXRTaGFsbG93U3VzcGVuc2VDb250ZXh0KHN1c3BlbnNlQ29udGV4dCwgRm9yY2VTdXNwZW5zZUZhbGxiYWNrKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3VzcGVuc2VDb250ZXh0ID0gc2V0RGVmYXVsdFNoYWxsb3dTdXNwZW5zZUNvbnRleHQoc3VzcGVuc2VDb250ZXh0KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBwdXNoU3VzcGVuc2VDb250ZXh0KHdvcmtJblByb2dyZXNzLCBzdXNwZW5zZUNvbnRleHQpOyAvLyBEbyBhIHBhc3Mgb3ZlciB0aGUgbmV4dCByb3cuXG5cbiAgICAgICAgICByZXR1cm4gbmV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgY2FzZSBGdW5kYW1lbnRhbENvbXBvbmVudDpcbiAgICAgIHtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgIGNhc2UgU2NvcGVDb21wb25lbnQ6XG4gICAgICB7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICBjYXNlIEJsb2NrOlxuXG4gICAgICBicmVhaztcblxuICAgIGNhc2UgT2Zmc2NyZWVuQ29tcG9uZW50OlxuICAgIGNhc2UgTGVnYWN5SGlkZGVuQ29tcG9uZW50OlxuICAgICAge1xuICAgICAgICBwb3BSZW5kZXJMYW5lcyh3b3JrSW5Qcm9ncmVzcyk7XG5cbiAgICAgICAgaWYgKGN1cnJlbnQgIT09IG51bGwpIHtcbiAgICAgICAgICB2YXIgX25leHRTdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG4gICAgICAgICAgdmFyIF9wcmV2U3RhdGUgPSBjdXJyZW50Lm1lbW9pemVkU3RhdGU7XG4gICAgICAgICAgdmFyIHByZXZJc0hpZGRlbiA9IF9wcmV2U3RhdGUgIT09IG51bGw7XG4gICAgICAgICAgdmFyIG5leHRJc0hpZGRlbiA9IF9uZXh0U3RhdGUgIT09IG51bGw7XG5cbiAgICAgICAgICBpZiAocHJldklzSGlkZGVuICE9PSBuZXh0SXNIaWRkZW4gJiYgbmV3UHJvcHMubW9kZSAhPT0gJ3Vuc3RhYmxlLWRlZmVyLXdpdGhvdXQtaGlkaW5nJykge1xuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gVXBkYXRlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICB9XG5cbiAge1xuICAgIHtcbiAgICAgIHRocm93IEVycm9yKCBcIlVua25vd24gdW5pdCBvZiB3b3JrIHRhZyAoXCIgKyB3b3JrSW5Qcm9ncmVzcy50YWcgKyBcIikuIFRoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCIgKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gdW53aW5kV29yayh3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpIHtcbiAgc3dpdGNoICh3b3JrSW5Qcm9ncmVzcy50YWcpIHtcbiAgICBjYXNlIENsYXNzQ29tcG9uZW50OlxuICAgICAge1xuICAgICAgICB2YXIgQ29tcG9uZW50ID0gd29ya0luUHJvZ3Jlc3MudHlwZTtcblxuICAgICAgICBpZiAoaXNDb250ZXh0UHJvdmlkZXIoQ29tcG9uZW50KSkge1xuICAgICAgICAgIHBvcENvbnRleHQod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGZsYWdzID0gd29ya0luUHJvZ3Jlc3MuZmxhZ3M7XG5cbiAgICAgICAgaWYgKGZsYWdzICYgU2hvdWxkQ2FwdHVyZSkge1xuICAgICAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzID0gZmxhZ3MgJiB+U2hvdWxkQ2FwdHVyZSB8IERpZENhcHR1cmU7XG5cbiAgICAgICAgICBpZiAoICh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUpIHtcbiAgICAgICAgICAgIHRyYW5zZmVyQWN0dWFsRHVyYXRpb24od29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzcztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgY2FzZSBIb3N0Um9vdDpcbiAgICAgIHtcbiAgICAgICAgcG9wSG9zdENvbnRhaW5lcih3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgIHBvcFRvcExldmVsQ29udGV4dE9iamVjdCh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgIHJlc2V0V29ya0luUHJvZ3Jlc3NWZXJzaW9ucygpO1xuICAgICAgICB2YXIgX2ZsYWdzID0gd29ya0luUHJvZ3Jlc3MuZmxhZ3M7XG5cbiAgICAgICAgaWYgKCEoKF9mbGFncyAmIERpZENhcHR1cmUpID09PSBOb0ZsYWdzKSkge1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRocm93IEVycm9yKCBcIlRoZSByb290IGZhaWxlZCB0byB1bm1vdW50IGFmdGVyIGFuIGVycm9yLiBUaGlzIGlzIGxpa2VseSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCIgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyA9IF9mbGFncyAmIH5TaG91bGRDYXB0dXJlIHwgRGlkQ2FwdHVyZTtcbiAgICAgICAgcmV0dXJuIHdvcmtJblByb2dyZXNzO1xuICAgICAgfVxuXG4gICAgY2FzZSBIb3N0Q29tcG9uZW50OlxuICAgICAge1xuICAgICAgICAvLyBUT0RPOiBwb3BIeWRyYXRpb25TdGF0ZVxuICAgICAgICBwb3BIb3N0Q29udGV4dCh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgY2FzZSBTdXNwZW5zZUNvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgcG9wU3VzcGVuc2VDb250ZXh0KHdvcmtJblByb2dyZXNzKTtcblxuICAgICAgICB2YXIgX2ZsYWdzMiA9IHdvcmtJblByb2dyZXNzLmZsYWdzO1xuXG4gICAgICAgIGlmIChfZmxhZ3MyICYgU2hvdWxkQ2FwdHVyZSkge1xuICAgICAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzID0gX2ZsYWdzMiAmIH5TaG91bGRDYXB0dXJlIHwgRGlkQ2FwdHVyZTsgLy8gQ2FwdHVyZWQgYSBzdXNwZW5zZSBlZmZlY3QuIFJlLXJlbmRlciB0aGUgYm91bmRhcnkuXG5cbiAgICAgICAgICBpZiAoICh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUpIHtcbiAgICAgICAgICAgIHRyYW5zZmVyQWN0dWFsRHVyYXRpb24od29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzcztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgY2FzZSBTdXNwZW5zZUxpc3RDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHBvcFN1c3BlbnNlQ29udGV4dCh3b3JrSW5Qcm9ncmVzcyk7IC8vIFN1c3BlbnNlTGlzdCBkb2Vzbid0IGFjdHVhbGx5IGNhdGNoIGFueXRoaW5nLiBJdCBzaG91bGQndmUgYmVlblxuICAgICAgICAvLyBjYXVnaHQgYnkgYSBuZXN0ZWQgYm91bmRhcnkuIElmIG5vdCwgaXQgc2hvdWxkIGJ1YmJsZSB0aHJvdWdoLlxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgY2FzZSBIb3N0UG9ydGFsOlxuICAgICAgcG9wSG9zdENvbnRhaW5lcih3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICByZXR1cm4gbnVsbDtcblxuICAgIGNhc2UgQ29udGV4dFByb3ZpZGVyOlxuICAgICAgcG9wUHJvdmlkZXIod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgcmV0dXJuIG51bGw7XG5cbiAgICBjYXNlIE9mZnNjcmVlbkNvbXBvbmVudDpcbiAgICBjYXNlIExlZ2FjeUhpZGRlbkNvbXBvbmVudDpcbiAgICAgIHBvcFJlbmRlckxhbmVzKHdvcmtJblByb2dyZXNzKTtcbiAgICAgIHJldHVybiBudWxsO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmZ1bmN0aW9uIHVud2luZEludGVycnVwdGVkV29yayhpbnRlcnJ1cHRlZFdvcmspIHtcbiAgc3dpdGNoIChpbnRlcnJ1cHRlZFdvcmsudGFnKSB7XG4gICAgY2FzZSBDbGFzc0NvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgdmFyIGNoaWxkQ29udGV4dFR5cGVzID0gaW50ZXJydXB0ZWRXb3JrLnR5cGUuY2hpbGRDb250ZXh0VHlwZXM7XG5cbiAgICAgICAgaWYgKGNoaWxkQ29udGV4dFR5cGVzICE9PSBudWxsICYmIGNoaWxkQ29udGV4dFR5cGVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBwb3BDb250ZXh0KGludGVycnVwdGVkV29yayk7XG4gICAgICAgIH1cblxuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgIGNhc2UgSG9zdFJvb3Q6XG4gICAgICB7XG4gICAgICAgIHBvcEhvc3RDb250YWluZXIoaW50ZXJydXB0ZWRXb3JrKTtcbiAgICAgICAgcG9wVG9wTGV2ZWxDb250ZXh0T2JqZWN0KGludGVycnVwdGVkV29yayk7XG4gICAgICAgIHJlc2V0V29ya0luUHJvZ3Jlc3NWZXJzaW9ucygpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgIGNhc2UgSG9zdENvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgcG9wSG9zdENvbnRleHQoaW50ZXJydXB0ZWRXb3JrKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICBjYXNlIEhvc3RQb3J0YWw6XG4gICAgICBwb3BIb3N0Q29udGFpbmVyKGludGVycnVwdGVkV29yayk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgU3VzcGVuc2VDb21wb25lbnQ6XG4gICAgICBwb3BTdXNwZW5zZUNvbnRleHQoaW50ZXJydXB0ZWRXb3JrKTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBTdXNwZW5zZUxpc3RDb21wb25lbnQ6XG4gICAgICBwb3BTdXNwZW5zZUNvbnRleHQoaW50ZXJydXB0ZWRXb3JrKTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBDb250ZXh0UHJvdmlkZXI6XG4gICAgICBwb3BQcm92aWRlcihpbnRlcnJ1cHRlZFdvcmspO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIE9mZnNjcmVlbkNvbXBvbmVudDpcbiAgICBjYXNlIExlZ2FjeUhpZGRlbkNvbXBvbmVudDpcbiAgICAgIHBvcFJlbmRlckxhbmVzKGludGVycnVwdGVkV29yayk7XG4gICAgICBicmVhaztcbiAgfVxufVxuXG5mdW5jdGlvbiBjcmVhdGVDYXB0dXJlZFZhbHVlKHZhbHVlLCBzb3VyY2UpIHtcbiAgLy8gSWYgdGhlIHZhbHVlIGlzIGFuIGVycm9yLCBjYWxsIHRoaXMgZnVuY3Rpb24gaW1tZWRpYXRlbHkgYWZ0ZXIgaXQgaXMgdGhyb3duXG4gIC8vIHNvIHRoZSBzdGFjayBpcyBhY2N1cmF0ZS5cbiAgcmV0dXJuIHtcbiAgICB2YWx1ZTogdmFsdWUsXG4gICAgc291cmNlOiBzb3VyY2UsXG4gICAgc3RhY2s6IGdldFN0YWNrQnlGaWJlckluRGV2QW5kUHJvZChzb3VyY2UpXG4gIH07XG59XG5cbi8vIFRoaXMgbW9kdWxlIGlzIGZvcmtlZCBpbiBkaWZmZXJlbnQgZW52aXJvbm1lbnRzLlxuLy8gQnkgZGVmYXVsdCwgcmV0dXJuIGB0cnVlYCB0byBsb2cgZXJyb3JzIHRvIHRoZSBjb25zb2xlLlxuLy8gRm9ya3MgY2FuIHJldHVybiBgZmFsc2VgIGlmIHRoaXMgaXNuJ3QgZGVzaXJhYmxlLlxuZnVuY3Rpb24gc2hvd0Vycm9yRGlhbG9nKGJvdW5kYXJ5LCBlcnJvckluZm8pIHtcbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIGxvZ0NhcHR1cmVkRXJyb3IoYm91bmRhcnksIGVycm9ySW5mbykge1xuICB0cnkge1xuICAgIHZhciBsb2dFcnJvciA9IHNob3dFcnJvckRpYWxvZyhib3VuZGFyeSwgZXJyb3JJbmZvKTsgLy8gQWxsb3cgaW5qZWN0ZWQgc2hvd0Vycm9yRGlhbG9nKCkgdG8gcHJldmVudCBkZWZhdWx0IGNvbnNvbGUuZXJyb3IgbG9nZ2luZy5cbiAgICAvLyBUaGlzIGVuYWJsZXMgcmVuZGVyZXJzIGxpa2UgUmVhY3ROYXRpdmUgdG8gYmV0dGVyIG1hbmFnZSByZWRib3ggYmVoYXZpb3IuXG5cbiAgICBpZiAobG9nRXJyb3IgPT09IGZhbHNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIGVycm9yID0gZXJyb3JJbmZvLnZhbHVlO1xuXG4gICAgaWYgKHRydWUpIHtcbiAgICAgIHZhciBzb3VyY2UgPSBlcnJvckluZm8uc291cmNlO1xuICAgICAgdmFyIHN0YWNrID0gZXJyb3JJbmZvLnN0YWNrO1xuICAgICAgdmFyIGNvbXBvbmVudFN0YWNrID0gc3RhY2sgIT09IG51bGwgPyBzdGFjayA6ICcnOyAvLyBCcm93c2VycyBzdXBwb3J0IHNpbGVuY2luZyB1bmNhdWdodCBlcnJvcnMgYnkgY2FsbGluZ1xuICAgICAgLy8gYHByZXZlbnREZWZhdWx0KClgIGluIHdpbmRvdyBgZXJyb3JgIGhhbmRsZXIuXG4gICAgICAvLyBXZSByZWNvcmQgdGhpcyBpbmZvcm1hdGlvbiBhcyBhbiBleHBhbmRvIG9uIHRoZSBlcnJvci5cblxuICAgICAgaWYgKGVycm9yICE9IG51bGwgJiYgZXJyb3IuX3N1cHByZXNzTG9nZ2luZykge1xuICAgICAgICBpZiAoYm91bmRhcnkudGFnID09PSBDbGFzc0NvbXBvbmVudCkge1xuICAgICAgICAgIC8vIFRoZSBlcnJvciBpcyByZWNvdmVyYWJsZSBhbmQgd2FzIHNpbGVuY2VkLlxuICAgICAgICAgIC8vIElnbm9yZSBpdCBhbmQgZG9uJ3QgcHJpbnQgdGhlIHN0YWNrIGFkZGVuZHVtLlxuICAgICAgICAgIC8vIFRoaXMgaXMgaGFuZHkgZm9yIHRlc3RpbmcgZXJyb3IgYm91bmRhcmllcyB3aXRob3V0IG5vaXNlLlxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSAvLyBUaGUgZXJyb3IgaXMgZmF0YWwuIFNpbmNlIHRoZSBzaWxlbmNpbmcgbWlnaHQgaGF2ZVxuICAgICAgICAvLyBiZWVuIGFjY2lkZW50YWwsIHdlJ2xsIHN1cmZhY2UgaXQgYW55d2F5LlxuICAgICAgICAvLyBIb3dldmVyLCB0aGUgYnJvd3NlciB3b3VsZCBoYXZlIHNpbGVuY2VkIHRoZSBvcmlnaW5hbCBlcnJvclxuICAgICAgICAvLyBzbyB3ZSdsbCBwcmludCBpdCBmaXJzdCwgYW5kIHRoZW4gcHJpbnQgdGhlIHN0YWNrIGFkZGVuZHVtLlxuXG5cbiAgICAgICAgY29uc29sZVsnZXJyb3InXShlcnJvcik7IC8vIERvbid0IHRyYW5zZm9ybSB0byBvdXIgd3JhcHBlclxuICAgICAgICAvLyBGb3IgYSBtb3JlIGRldGFpbGVkIGRlc2NyaXB0aW9uIG9mIHRoaXMgYmxvY2ssIHNlZTpcbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L3B1bGwvMTMzODRcbiAgICAgIH1cblxuICAgICAgdmFyIGNvbXBvbmVudE5hbWUgPSBzb3VyY2UgPyBnZXRDb21wb25lbnROYW1lKHNvdXJjZS50eXBlKSA6IG51bGw7XG4gICAgICB2YXIgY29tcG9uZW50TmFtZU1lc3NhZ2UgPSBjb21wb25lbnROYW1lID8gXCJUaGUgYWJvdmUgZXJyb3Igb2NjdXJyZWQgaW4gdGhlIDxcIiArIGNvbXBvbmVudE5hbWUgKyBcIj4gY29tcG9uZW50OlwiIDogJ1RoZSBhYm92ZSBlcnJvciBvY2N1cnJlZCBpbiBvbmUgb2YgeW91ciBSZWFjdCBjb21wb25lbnRzOic7XG4gICAgICB2YXIgZXJyb3JCb3VuZGFyeU1lc3NhZ2U7XG4gICAgICB2YXIgZXJyb3JCb3VuZGFyeU5hbWUgPSBnZXRDb21wb25lbnROYW1lKGJvdW5kYXJ5LnR5cGUpO1xuXG4gICAgICBpZiAoZXJyb3JCb3VuZGFyeU5hbWUpIHtcbiAgICAgICAgZXJyb3JCb3VuZGFyeU1lc3NhZ2UgPSBcIlJlYWN0IHdpbGwgdHJ5IHRvIHJlY3JlYXRlIHRoaXMgY29tcG9uZW50IHRyZWUgZnJvbSBzY3JhdGNoIFwiICsgKFwidXNpbmcgdGhlIGVycm9yIGJvdW5kYXJ5IHlvdSBwcm92aWRlZCwgXCIgKyBlcnJvckJvdW5kYXJ5TmFtZSArIFwiLlwiKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVycm9yQm91bmRhcnlNZXNzYWdlID0gJ0NvbnNpZGVyIGFkZGluZyBhbiBlcnJvciBib3VuZGFyeSB0byB5b3VyIHRyZWUgdG8gY3VzdG9taXplIGVycm9yIGhhbmRsaW5nIGJlaGF2aW9yLlxcbicgKyAnVmlzaXQgaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL2Vycm9yLWJvdW5kYXJpZXMgdG8gbGVhcm4gbW9yZSBhYm91dCBlcnJvciBib3VuZGFyaWVzLic7XG4gICAgICB9XG5cbiAgICAgIHZhciBjb21iaW5lZE1lc3NhZ2UgPSBjb21wb25lbnROYW1lTWVzc2FnZSArIFwiXFxuXCIgKyBjb21wb25lbnRTdGFjayArIFwiXFxuXFxuXCIgKyAoXCJcIiArIGVycm9yQm91bmRhcnlNZXNzYWdlKTsgLy8gSW4gZGV2ZWxvcG1lbnQsIHdlIHByb3ZpZGUgb3VyIG93biBtZXNzYWdlIHdpdGgganVzdCB0aGUgY29tcG9uZW50IHN0YWNrLlxuICAgICAgLy8gV2UgZG9uJ3QgaW5jbHVkZSB0aGUgb3JpZ2luYWwgZXJyb3IgbWVzc2FnZSBhbmQgSlMgc3RhY2sgYmVjYXVzZSB0aGUgYnJvd3NlclxuICAgICAgLy8gaGFzIGFscmVhZHkgcHJpbnRlZCBpdC4gRXZlbiBpZiB0aGUgYXBwbGljYXRpb24gc3dhbGxvd3MgdGhlIGVycm9yLCBpdCBpcyBzdGlsbFxuICAgICAgLy8gZGlzcGxheWVkIGJ5IHRoZSBicm93c2VyIHRoYW5rcyB0byB0aGUgREVWLW9ubHkgZmFrZSBldmVudCB0cmljayBpbiBSZWFjdEVycm9yVXRpbHMuXG5cbiAgICAgIGNvbnNvbGVbJ2Vycm9yJ10oY29tYmluZWRNZXNzYWdlKTsgLy8gRG9uJ3QgdHJhbnNmb3JtIHRvIG91ciB3cmFwcGVyXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEluIHByb2R1Y3Rpb24sIHdlIHByaW50IHRoZSBlcnJvciBkaXJlY3RseS5cbiAgICAgIC8vIFRoaXMgd2lsbCBpbmNsdWRlIHRoZSBtZXNzYWdlLCB0aGUgSlMgc3RhY2ssIGFuZCBhbnl0aGluZyB0aGUgYnJvd3NlciB3YW50cyB0byBzaG93LlxuICAgICAgLy8gV2UgcGFzcyB0aGUgZXJyb3Igb2JqZWN0IGluc3RlYWQgb2YgY3VzdG9tIG1lc3NhZ2Ugc28gdGhhdCB0aGUgYnJvd3NlciBkaXNwbGF5cyB0aGUgZXJyb3IgbmF0aXZlbHkuXG4gICAgICBjb25zb2xlWydlcnJvciddKGVycm9yKTsgLy8gRG9uJ3QgdHJhbnNmb3JtIHRvIG91ciB3cmFwcGVyXG4gICAgfVxuICB9IGNhdGNoIChlKSB7XG4gICAgLy8gVGhpcyBtZXRob2QgbXVzdCBub3QgdGhyb3csIG9yIFJlYWN0IGludGVybmFsIHN0YXRlIHdpbGwgZ2V0IG1lc3NlZCB1cC5cbiAgICAvLyBJZiBjb25zb2xlLmVycm9yIGlzIG92ZXJyaWRkZW4sIG9yIGxvZ0NhcHR1cmVkRXJyb3IoKSBzaG93cyBhIGRpYWxvZyB0aGF0IHRocm93cyxcbiAgICAvLyB3ZSB3YW50IHRvIHJlcG9ydCB0aGlzIGVycm9yIG91dHNpZGUgb2YgdGhlIG5vcm1hbCBzdGFjayBhcyBhIGxhc3QgcmVzb3J0LlxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMTMxODhcbiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgIHRocm93IGU7XG4gICAgfSk7XG4gIH1cbn1cblxudmFyIFBvc3NpYmx5V2Vha01hcCQxID0gdHlwZW9mIFdlYWtNYXAgPT09ICdmdW5jdGlvbicgPyBXZWFrTWFwIDogTWFwO1xuXG5mdW5jdGlvbiBjcmVhdGVSb290RXJyb3JVcGRhdGUoZmliZXIsIGVycm9ySW5mbywgbGFuZSkge1xuICB2YXIgdXBkYXRlID0gY3JlYXRlVXBkYXRlKE5vVGltZXN0YW1wLCBsYW5lKTsgLy8gVW5tb3VudCB0aGUgcm9vdCBieSByZW5kZXJpbmcgbnVsbC5cblxuICB1cGRhdGUudGFnID0gQ2FwdHVyZVVwZGF0ZTsgLy8gQ2F1dGlvbjogUmVhY3QgRGV2VG9vbHMgY3VycmVudGx5IGRlcGVuZHMgb24gdGhpcyBwcm9wZXJ0eVxuICAvLyBiZWluZyBjYWxsZWQgXCJlbGVtZW50XCIuXG5cbiAgdXBkYXRlLnBheWxvYWQgPSB7XG4gICAgZWxlbWVudDogbnVsbFxuICB9O1xuICB2YXIgZXJyb3IgPSBlcnJvckluZm8udmFsdWU7XG5cbiAgdXBkYXRlLmNhbGxiYWNrID0gZnVuY3Rpb24gKCkge1xuICAgIG9uVW5jYXVnaHRFcnJvcihlcnJvcik7XG4gICAgbG9nQ2FwdHVyZWRFcnJvcihmaWJlciwgZXJyb3JJbmZvKTtcbiAgfTtcblxuICByZXR1cm4gdXBkYXRlO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVDbGFzc0Vycm9yVXBkYXRlKGZpYmVyLCBlcnJvckluZm8sIGxhbmUpIHtcbiAgdmFyIHVwZGF0ZSA9IGNyZWF0ZVVwZGF0ZShOb1RpbWVzdGFtcCwgbGFuZSk7XG4gIHVwZGF0ZS50YWcgPSBDYXB0dXJlVXBkYXRlO1xuICB2YXIgZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yID0gZmliZXIudHlwZS5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3I7XG5cbiAgaWYgKHR5cGVvZiBnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IgPT09ICdmdW5jdGlvbicpIHtcbiAgICB2YXIgZXJyb3IkMSA9IGVycm9ySW5mby52YWx1ZTtcblxuICAgIHVwZGF0ZS5wYXlsb2FkID0gZnVuY3Rpb24gKCkge1xuICAgICAgbG9nQ2FwdHVyZWRFcnJvcihmaWJlciwgZXJyb3JJbmZvKTtcbiAgICAgIHJldHVybiBnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IoZXJyb3IkMSk7XG4gICAgfTtcbiAgfVxuXG4gIHZhciBpbnN0ID0gZmliZXIuc3RhdGVOb2RlO1xuXG4gIGlmIChpbnN0ICE9PSBudWxsICYmIHR5cGVvZiBpbnN0LmNvbXBvbmVudERpZENhdGNoID09PSAnZnVuY3Rpb24nKSB7XG4gICAgdXBkYXRlLmNhbGxiYWNrID0gZnVuY3Rpb24gY2FsbGJhY2soKSB7XG4gICAgICB7XG4gICAgICAgIG1hcmtGYWlsZWRFcnJvckJvdW5kYXJ5Rm9ySG90UmVsb2FkaW5nKGZpYmVyKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiBnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgLy8gVG8gcHJlc2VydmUgdGhlIHByZWV4aXN0aW5nIHJldHJ5IGJlaGF2aW9yIG9mIGVycm9yIGJvdW5kYXJpZXMsXG4gICAgICAgIC8vIHdlIGtlZXAgdHJhY2sgb2Ygd2hpY2ggb25lcyBhbHJlYWR5IGZhaWxlZCBkdXJpbmcgdGhpcyBiYXRjaC5cbiAgICAgICAgLy8gVGhpcyBnZXRzIHJlc2V0IGJlZm9yZSB3ZSB5aWVsZCBiYWNrIHRvIHRoZSBicm93c2VyLlxuICAgICAgICAvLyBUT0RPOiBXYXJuIGluIHN0cmljdCBtb2RlIGlmIGdldERlcml2ZWRTdGF0ZUZyb21FcnJvciBpc1xuICAgICAgICAvLyBub3QgZGVmaW5lZC5cbiAgICAgICAgbWFya0xlZ2FjeUVycm9yQm91bmRhcnlBc0ZhaWxlZCh0aGlzKTsgLy8gT25seSBsb2cgaGVyZSBpZiBjb21wb25lbnREaWRDYXRjaCBpcyB0aGUgb25seSBlcnJvciBib3VuZGFyeSBtZXRob2QgZGVmaW5lZFxuXG4gICAgICAgIGxvZ0NhcHR1cmVkRXJyb3IoZmliZXIsIGVycm9ySW5mbyk7XG4gICAgICB9XG5cbiAgICAgIHZhciBlcnJvciQxID0gZXJyb3JJbmZvLnZhbHVlO1xuICAgICAgdmFyIHN0YWNrID0gZXJyb3JJbmZvLnN0YWNrO1xuICAgICAgdGhpcy5jb21wb25lbnREaWRDYXRjaChlcnJvciQxLCB7XG4gICAgICAgIGNvbXBvbmVudFN0YWNrOiBzdGFjayAhPT0gbnVsbCA/IHN0YWNrIDogJydcbiAgICAgIH0pO1xuXG4gICAgICB7XG4gICAgICAgIGlmICh0eXBlb2YgZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgLy8gSWYgY29tcG9uZW50RGlkQ2F0Y2ggaXMgdGhlIG9ubHkgZXJyb3IgYm91bmRhcnkgbWV0aG9kIGRlZmluZWQsXG4gICAgICAgICAgLy8gdGhlbiBpdCBuZWVkcyB0byBjYWxsIHNldFN0YXRlIHRvIHJlY292ZXIgZnJvbSBlcnJvcnMuXG4gICAgICAgICAgLy8gSWYgbm8gc3RhdGUgdXBkYXRlIGlzIHNjaGVkdWxlZCB0aGVuIHRoZSBib3VuZGFyeSB3aWxsIHN3YWxsb3cgdGhlIGVycm9yLlxuICAgICAgICAgIGlmICghaW5jbHVkZXNTb21lTGFuZShmaWJlci5sYW5lcywgU3luY0xhbmUpKSB7XG4gICAgICAgICAgICBlcnJvcignJXM6IEVycm9yIGJvdW5kYXJpZXMgc2hvdWxkIGltcGxlbWVudCBnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IoKS4gJyArICdJbiB0aGF0IG1ldGhvZCwgcmV0dXJuIGEgc3RhdGUgdXBkYXRlIHRvIGRpc3BsYXkgYW4gZXJyb3IgbWVzc2FnZSBvciBmYWxsYmFjayBVSS4nLCBnZXRDb21wb25lbnROYW1lKGZpYmVyLnR5cGUpIHx8ICdVbmtub3duJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICB1cGRhdGUuY2FsbGJhY2sgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBtYXJrRmFpbGVkRXJyb3JCb3VuZGFyeUZvckhvdFJlbG9hZGluZyhmaWJlcik7XG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB1cGRhdGU7XG59XG5cbmZ1bmN0aW9uIGF0dGFjaFBpbmdMaXN0ZW5lcihyb290LCB3YWtlYWJsZSwgbGFuZXMpIHtcbiAgLy8gQXR0YWNoIGEgbGlzdGVuZXIgdG8gdGhlIHByb21pc2UgdG8gXCJwaW5nXCIgdGhlIHJvb3QgYW5kIHJldHJ5LiBCdXQgb25seSBpZlxuICAvLyBvbmUgZG9lcyBub3QgYWxyZWFkeSBleGlzdCBmb3IgdGhlIGxhbmVzIHdlJ3JlIGN1cnJlbnRseSByZW5kZXJpbmcgKHdoaWNoXG4gIC8vIGFjdHMgbGlrZSBhIFwidGhyZWFkIElEXCIgaGVyZSkuXG4gIHZhciBwaW5nQ2FjaGUgPSByb290LnBpbmdDYWNoZTtcbiAgdmFyIHRocmVhZElEcztcblxuICBpZiAocGluZ0NhY2hlID09PSBudWxsKSB7XG4gICAgcGluZ0NhY2hlID0gcm9vdC5waW5nQ2FjaGUgPSBuZXcgUG9zc2libHlXZWFrTWFwJDEoKTtcbiAgICB0aHJlYWRJRHMgPSBuZXcgU2V0KCk7XG4gICAgcGluZ0NhY2hlLnNldCh3YWtlYWJsZSwgdGhyZWFkSURzKTtcbiAgfSBlbHNlIHtcbiAgICB0aHJlYWRJRHMgPSBwaW5nQ2FjaGUuZ2V0KHdha2VhYmxlKTtcblxuICAgIGlmICh0aHJlYWRJRHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyZWFkSURzID0gbmV3IFNldCgpO1xuICAgICAgcGluZ0NhY2hlLnNldCh3YWtlYWJsZSwgdGhyZWFkSURzKTtcbiAgICB9XG4gIH1cblxuICBpZiAoIXRocmVhZElEcy5oYXMobGFuZXMpKSB7XG4gICAgLy8gTWVtb2l6ZSB1c2luZyB0aGUgdGhyZWFkIElEIHRvIHByZXZlbnQgcmVkdW5kYW50IGxpc3RlbmVycy5cbiAgICB0aHJlYWRJRHMuYWRkKGxhbmVzKTtcbiAgICB2YXIgcGluZyA9IHBpbmdTdXNwZW5kZWRSb290LmJpbmQobnVsbCwgcm9vdCwgd2FrZWFibGUsIGxhbmVzKTtcbiAgICB3YWtlYWJsZS50aGVuKHBpbmcsIHBpbmcpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHRocm93RXhjZXB0aW9uKHJvb3QsIHJldHVybkZpYmVyLCBzb3VyY2VGaWJlciwgdmFsdWUsIHJvb3RSZW5kZXJMYW5lcykge1xuICAvLyBUaGUgc291cmNlIGZpYmVyIGRpZCBub3QgY29tcGxldGUuXG4gIHNvdXJjZUZpYmVyLmZsYWdzIHw9IEluY29tcGxldGU7IC8vIEl0cyBlZmZlY3QgbGlzdCBpcyBubyBsb25nZXIgdmFsaWQuXG5cbiAgc291cmNlRmliZXIuZmlyc3RFZmZlY3QgPSBzb3VyY2VGaWJlci5sYXN0RWZmZWN0ID0gbnVsbDtcblxuICBpZiAodmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgdmFsdWUudGhlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIC8vIFRoaXMgaXMgYSB3YWtlYWJsZS5cbiAgICB2YXIgd2FrZWFibGUgPSB2YWx1ZTtcblxuICAgIGlmICgoc291cmNlRmliZXIubW9kZSAmIEJsb2NraW5nTW9kZSkgPT09IE5vTW9kZSkge1xuICAgICAgLy8gUmVzZXQgdGhlIG1lbW9pemVkU3RhdGUgdG8gd2hhdCBpdCB3YXMgYmVmb3JlIHdlIGF0dGVtcHRlZFxuICAgICAgLy8gdG8gcmVuZGVyIGl0LlxuICAgICAgdmFyIGN1cnJlbnRTb3VyY2UgPSBzb3VyY2VGaWJlci5hbHRlcm5hdGU7XG5cbiAgICAgIGlmIChjdXJyZW50U291cmNlKSB7XG4gICAgICAgIHNvdXJjZUZpYmVyLnVwZGF0ZVF1ZXVlID0gY3VycmVudFNvdXJjZS51cGRhdGVRdWV1ZTtcbiAgICAgICAgc291cmNlRmliZXIubWVtb2l6ZWRTdGF0ZSA9IGN1cnJlbnRTb3VyY2UubWVtb2l6ZWRTdGF0ZTtcbiAgICAgICAgc291cmNlRmliZXIubGFuZXMgPSBjdXJyZW50U291cmNlLmxhbmVzO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc291cmNlRmliZXIudXBkYXRlUXVldWUgPSBudWxsO1xuICAgICAgICBzb3VyY2VGaWJlci5tZW1vaXplZFN0YXRlID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgaGFzSW52aXNpYmxlUGFyZW50Qm91bmRhcnkgPSBoYXNTdXNwZW5zZUNvbnRleHQoc3VzcGVuc2VTdGFja0N1cnNvci5jdXJyZW50LCBJbnZpc2libGVQYXJlbnRTdXNwZW5zZUNvbnRleHQpOyAvLyBTY2hlZHVsZSB0aGUgbmVhcmVzdCBTdXNwZW5zZSB0byByZS1yZW5kZXIgdGhlIHRpbWVkIG91dCB2aWV3LlxuXG4gICAgdmFyIF93b3JrSW5Qcm9ncmVzcyA9IHJldHVybkZpYmVyO1xuXG4gICAgZG8ge1xuICAgICAgaWYgKF93b3JrSW5Qcm9ncmVzcy50YWcgPT09IFN1c3BlbnNlQ29tcG9uZW50ICYmIHNob3VsZENhcHR1cmVTdXNwZW5zZShfd29ya0luUHJvZ3Jlc3MsIGhhc0ludmlzaWJsZVBhcmVudEJvdW5kYXJ5KSkge1xuICAgICAgICAvLyBGb3VuZCB0aGUgbmVhcmVzdCBib3VuZGFyeS5cbiAgICAgICAgLy8gU3Rhc2ggdGhlIHByb21pc2Ugb24gdGhlIGJvdW5kYXJ5IGZpYmVyLiBJZiB0aGUgYm91bmRhcnkgdGltZXMgb3V0LCB3ZSdsbFxuICAgICAgICAvLyBhdHRhY2ggYW5vdGhlciBsaXN0ZW5lciB0byBmbGlwIHRoZSBib3VuZGFyeSBiYWNrIHRvIGl0cyBub3JtYWwgc3RhdGUuXG4gICAgICAgIHZhciB3YWtlYWJsZXMgPSBfd29ya0luUHJvZ3Jlc3MudXBkYXRlUXVldWU7XG5cbiAgICAgICAgaWYgKHdha2VhYmxlcyA9PT0gbnVsbCkge1xuICAgICAgICAgIHZhciB1cGRhdGVRdWV1ZSA9IG5ldyBTZXQoKTtcbiAgICAgICAgICB1cGRhdGVRdWV1ZS5hZGQod2FrZWFibGUpO1xuICAgICAgICAgIF93b3JrSW5Qcm9ncmVzcy51cGRhdGVRdWV1ZSA9IHVwZGF0ZVF1ZXVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHdha2VhYmxlcy5hZGQod2FrZWFibGUpO1xuICAgICAgICB9IC8vIElmIHRoZSBib3VuZGFyeSBpcyBvdXRzaWRlIG9mIGJsb2NraW5nIG1vZGUsIHdlIHNob3VsZCAqbm90KlxuICAgICAgICAvLyBzdXNwZW5kIHRoZSBjb21taXQuIFByZXRlbmQgYXMgaWYgdGhlIHN1c3BlbmRlZCBjb21wb25lbnQgcmVuZGVyZWRcbiAgICAgICAgLy8gbnVsbCBhbmQga2VlcCByZW5kZXJpbmcuIEluIHRoZSBjb21taXQgcGhhc2UsIHdlJ2xsIHNjaGVkdWxlIGFcbiAgICAgICAgLy8gc3Vic2VxdWVudCBzeW5jaHJvbm91cyB1cGRhdGUgdG8gcmUtcmVuZGVyIHRoZSBTdXNwZW5zZS5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gTm90ZTogSXQgZG9lc24ndCBtYXR0ZXIgd2hldGhlciB0aGUgY29tcG9uZW50IHRoYXQgc3VzcGVuZGVkIHdhc1xuICAgICAgICAvLyBpbnNpZGUgYSBibG9ja2luZyBtb2RlIHRyZWUuIElmIHRoZSBTdXNwZW5zZSBpcyBvdXRzaWRlIG9mIGl0LCB3ZVxuICAgICAgICAvLyBzaG91bGQgKm5vdCogc3VzcGVuZCB0aGUgY29tbWl0LlxuXG5cbiAgICAgICAgaWYgKChfd29ya0luUHJvZ3Jlc3MubW9kZSAmIEJsb2NraW5nTW9kZSkgPT09IE5vTW9kZSkge1xuICAgICAgICAgIF93b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBEaWRDYXB0dXJlO1xuICAgICAgICAgIHNvdXJjZUZpYmVyLmZsYWdzIHw9IEZvcmNlVXBkYXRlRm9yTGVnYWN5U3VzcGVuc2U7IC8vIFdlJ3JlIGdvaW5nIHRvIGNvbW1pdCB0aGlzIGZpYmVyIGV2ZW4gdGhvdWdoIGl0IGRpZG4ndCBjb21wbGV0ZS5cbiAgICAgICAgICAvLyBCdXQgd2Ugc2hvdWxkbid0IGNhbGwgYW55IGxpZmVjeWNsZSBtZXRob2RzIG9yIGNhbGxiYWNrcy4gUmVtb3ZlXG4gICAgICAgICAgLy8gYWxsIGxpZmVjeWNsZSBlZmZlY3QgdGFncy5cblxuICAgICAgICAgIHNvdXJjZUZpYmVyLmZsYWdzICY9IH4oTGlmZWN5Y2xlRWZmZWN0TWFzayB8IEluY29tcGxldGUpO1xuXG4gICAgICAgICAgaWYgKHNvdXJjZUZpYmVyLnRhZyA9PT0gQ2xhc3NDb21wb25lbnQpIHtcbiAgICAgICAgICAgIHZhciBjdXJyZW50U291cmNlRmliZXIgPSBzb3VyY2VGaWJlci5hbHRlcm5hdGU7XG5cbiAgICAgICAgICAgIGlmIChjdXJyZW50U291cmNlRmliZXIgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgLy8gVGhpcyBpcyBhIG5ldyBtb3VudC4gQ2hhbmdlIHRoZSB0YWcgc28gaXQncyBub3QgbWlzdGFrZW4gZm9yIGFcbiAgICAgICAgICAgICAgLy8gY29tcGxldGVkIGNsYXNzIGNvbXBvbmVudC4gRm9yIGV4YW1wbGUsIHdlIHNob3VsZCBub3QgY2FsbFxuICAgICAgICAgICAgICAvLyBjb21wb25lbnRXaWxsVW5tb3VudCBpZiBpdCBpcyBkZWxldGVkLlxuICAgICAgICAgICAgICBzb3VyY2VGaWJlci50YWcgPSBJbmNvbXBsZXRlQ2xhc3NDb21wb25lbnQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAvLyBXaGVuIHdlIHRyeSByZW5kZXJpbmcgYWdhaW4sIHdlIHNob3VsZCBub3QgcmV1c2UgdGhlIGN1cnJlbnQgZmliZXIsXG4gICAgICAgICAgICAgIC8vIHNpbmNlIGl0J3Mga25vd24gdG8gYmUgaW4gYW4gaW5jb25zaXN0ZW50IHN0YXRlLiBVc2UgYSBmb3JjZSB1cGRhdGUgdG9cbiAgICAgICAgICAgICAgLy8gcHJldmVudCBhIGJhaWwgb3V0LlxuICAgICAgICAgICAgICB2YXIgdXBkYXRlID0gY3JlYXRlVXBkYXRlKE5vVGltZXN0YW1wLCBTeW5jTGFuZSk7XG4gICAgICAgICAgICAgIHVwZGF0ZS50YWcgPSBGb3JjZVVwZGF0ZTtcbiAgICAgICAgICAgICAgZW5xdWV1ZVVwZGF0ZShzb3VyY2VGaWJlciwgdXBkYXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IC8vIFRoZSBzb3VyY2UgZmliZXIgZGlkIG5vdCBjb21wbGV0ZS4gTWFyayBpdCB3aXRoIFN5bmMgcHJpb3JpdHkgdG9cbiAgICAgICAgICAvLyBpbmRpY2F0ZSB0aGF0IGl0IHN0aWxsIGhhcyBwZW5kaW5nIHdvcmsuXG5cblxuICAgICAgICAgIHNvdXJjZUZpYmVyLmxhbmVzID0gbWVyZ2VMYW5lcyhzb3VyY2VGaWJlci5sYW5lcywgU3luY0xhbmUpOyAvLyBFeGl0IHdpdGhvdXQgc3VzcGVuZGluZy5cblxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSAvLyBDb25maXJtZWQgdGhhdCB0aGUgYm91bmRhcnkgaXMgaW4gYSBjb25jdXJyZW50IG1vZGUgdHJlZS4gQ29udGludWVcbiAgICAgICAgLy8gd2l0aCB0aGUgbm9ybWFsIHN1c3BlbmQgcGF0aC5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gQWZ0ZXIgdGhpcyB3ZSdsbCB1c2UgYSBzZXQgb2YgaGV1cmlzdGljcyB0byBkZXRlcm1pbmUgd2hldGhlciB0aGlzXG4gICAgICAgIC8vIHJlbmRlciBwYXNzIHdpbGwgcnVuIHRvIGNvbXBsZXRpb24gb3IgcmVzdGFydCBvciBcInN1c3BlbmRcIiB0aGUgY29tbWl0LlxuICAgICAgICAvLyBUaGUgYWN0dWFsIGxvZ2ljIGZvciB0aGlzIGlzIHNwcmVhZCBvdXQgaW4gZGlmZmVyZW50IHBsYWNlcy5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gVGhpcyBmaXJzdCBwcmluY2lwbGUgaXMgdGhhdCBpZiB3ZSdyZSBnb2luZyB0byBzdXNwZW5kIHdoZW4gd2UgY29tcGxldGVcbiAgICAgICAgLy8gYSByb290LCB0aGVuIHdlIHNob3VsZCBhbHNvIHJlc3RhcnQgaWYgd2UgZ2V0IGFuIHVwZGF0ZSBvciBwaW5nIHRoYXRcbiAgICAgICAgLy8gbWlnaHQgdW5zdXNwZW5kIGl0LCBhbmQgdmljZSB2ZXJzYS4gVGhlIG9ubHkgcmVhc29uIHRvIHN1c3BlbmQgaXNcbiAgICAgICAgLy8gYmVjYXVzZSB5b3UgdGhpbmsgeW91IG1pZ2h0IHdhbnQgdG8gcmVzdGFydCBiZWZvcmUgY29tbWl0dGluZy4gSG93ZXZlcixcbiAgICAgICAgLy8gaXQgZG9lc24ndCBtYWtlIHNlbnNlIHRvIHJlc3RhcnQgb25seSB3aGlsZSBpbiB0aGUgcGVyaW9kIHdlJ3JlIHN1c3BlbmRlZC5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gUmVzdGFydGluZyB0b28gYWdncmVzc2l2ZWx5IGlzIGFsc28gbm90IGdvb2QgYmVjYXVzZSBpdCBzdGFydmVzIG91dCBhbnlcbiAgICAgICAgLy8gaW50ZXJtZWRpYXRlIGxvYWRpbmcgc3RhdGUuIFNvIHdlIHVzZSBoZXVyaXN0aWNzIHRvIGRldGVybWluZSB3aGVuLlxuICAgICAgICAvLyBTdXNwZW5zZSBIZXVyaXN0aWNzXG4gICAgICAgIC8vXG4gICAgICAgIC8vIElmIG5vdGhpbmcgdGhyZXcgYSBQcm9taXNlIG9yIGFsbCB0aGUgc2FtZSBmYWxsYmFja3MgYXJlIGFscmVhZHkgc2hvd2luZyxcbiAgICAgICAgLy8gdGhlbiBkb24ndCBzdXNwZW5kL3Jlc3RhcnQuXG4gICAgICAgIC8vXG4gICAgICAgIC8vIElmIHRoaXMgaXMgYW4gaW5pdGlhbCByZW5kZXIgb2YgYSBuZXcgdHJlZSBvZiBTdXNwZW5zZSBib3VuZGFyaWVzIGFuZFxuICAgICAgICAvLyB0aG9zZSB0cmlnZ2VyIGEgZmFsbGJhY2ssIHRoZW4gZG9uJ3Qgc3VzcGVuZC9yZXN0YXJ0LiBXZSB3YW50IHRvIGVuc3VyZVxuICAgICAgICAvLyB0aGF0IHdlIGNhbiBzaG93IHRoZSBpbml0aWFsIGxvYWRpbmcgc3RhdGUgYXMgcXVpY2tseSBhcyBwb3NzaWJsZS5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gSWYgd2UgaGl0IGEgXCJEZWxheWVkXCIgY2FzZSwgc3VjaCBhcyB3aGVuIHdlJ2Qgc3dpdGNoIGZyb20gY29udGVudCBiYWNrIGludG9cbiAgICAgICAgLy8gYSBmYWxsYmFjaywgdGhlbiB3ZSBzaG91bGQgYWx3YXlzIHN1c3BlbmQvcmVzdGFydC4gVHJhbnNpdGlvbnMgYXBwbHlcbiAgICAgICAgLy8gdG8gdGhpcyBjYXNlLiBJZiBub25lIGlzIGRlZmluZWQsIEpORCBpcyB1c2VkIGluc3RlYWQuXG4gICAgICAgIC8vXG4gICAgICAgIC8vIElmIHdlJ3JlIGFscmVhZHkgc2hvd2luZyBhIGZhbGxiYWNrIGFuZCBpdCBnZXRzIFwicmV0cmllZFwiLCBhbGxvd2luZyB1cyB0byBzaG93XG4gICAgICAgIC8vIGFub3RoZXIgbGV2ZWwsIGJ1dCB0aGVyZSdzIHN0aWxsIGFuIGlubmVyIGJvdW5kYXJ5IHRoYXQgd291bGQgc2hvdyBhIGZhbGxiYWNrLFxuICAgICAgICAvLyB0aGVuIHdlIHN1c3BlbmQvcmVzdGFydCBmb3IgNTAwbXMgc2luY2UgdGhlIGxhc3QgdGltZSB3ZSBzaG93ZWQgYSBmYWxsYmFja1xuICAgICAgICAvLyBhbnl3aGVyZSBpbiB0aGUgdHJlZS4gVGhpcyBlZmZlY3RpdmVseSB0aHJvdHRsZXMgcHJvZ3Jlc3NpdmUgbG9hZGluZyBpbnRvIGFcbiAgICAgICAgLy8gY29uc2lzdGVudCB0cmFpbiBvZiBjb21taXRzLiBUaGlzIGFsc28gZ2l2ZXMgdXMgYW4gb3Bwb3J0dW5pdHkgdG8gcmVzdGFydCB0b1xuICAgICAgICAvLyBnZXQgdG8gdGhlIGNvbXBsZXRlZCBzdGF0ZSBzbGlnaHRseSBlYXJsaWVyLlxuICAgICAgICAvL1xuICAgICAgICAvLyBJZiB0aGVyZSdzIGFtYmlndWl0eSBkdWUgdG8gYmF0Y2hpbmcgaXQncyByZXNvbHZlZCBpbiBwcmVmZXJlbmNlIG9mOlxuICAgICAgICAvLyAxKSBcImRlbGF5ZWRcIiwgMikgXCJpbml0aWFsIHJlbmRlclwiLCAzKSBcInJldHJ5XCIuXG4gICAgICAgIC8vXG4gICAgICAgIC8vIFdlIHdhbnQgdG8gZW5zdXJlIHRoYXQgYSBcImJ1c3lcIiBzdGF0ZSBkb2Vzbid0IGdldCBmb3JjZSBjb21taXR0ZWQuIFdlIHdhbnQgdG9cbiAgICAgICAgLy8gZW5zdXJlIHRoYXQgbmV3IGluaXRpYWwgbG9hZGluZyBzdGF0ZXMgY2FuIGNvbW1pdCBhcyBzb29uIGFzIHBvc3NpYmxlLlxuXG5cbiAgICAgICAgYXR0YWNoUGluZ0xpc3RlbmVyKHJvb3QsIHdha2VhYmxlLCByb290UmVuZGVyTGFuZXMpO1xuICAgICAgICBfd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gU2hvdWxkQ2FwdHVyZTtcbiAgICAgICAgX3dvcmtJblByb2dyZXNzLmxhbmVzID0gcm9vdFJlbmRlckxhbmVzO1xuICAgICAgICByZXR1cm47XG4gICAgICB9IC8vIFRoaXMgYm91bmRhcnkgYWxyZWFkeSBjYXB0dXJlZCBkdXJpbmcgdGhpcyByZW5kZXIuIENvbnRpbnVlIHRvIHRoZSBuZXh0XG4gICAgICAvLyBib3VuZGFyeS5cblxuXG4gICAgICBfd29ya0luUHJvZ3Jlc3MgPSBfd29ya0luUHJvZ3Jlc3MucmV0dXJuO1xuICAgIH0gd2hpbGUgKF93b3JrSW5Qcm9ncmVzcyAhPT0gbnVsbCk7IC8vIE5vIGJvdW5kYXJ5IHdhcyBmb3VuZC4gRmFsbHRocm91Z2ggdG8gZXJyb3IgbW9kZS5cbiAgICAvLyBUT0RPOiBVc2UgaW52YXJpYW50IHNvIHRoZSBtZXNzYWdlIGlzIHN0cmlwcGVkIGluIHByb2Q/XG5cblxuICAgIHZhbHVlID0gbmV3IEVycm9yKChnZXRDb21wb25lbnROYW1lKHNvdXJjZUZpYmVyLnR5cGUpIHx8ICdBIFJlYWN0IGNvbXBvbmVudCcpICsgJyBzdXNwZW5kZWQgd2hpbGUgcmVuZGVyaW5nLCBidXQgbm8gZmFsbGJhY2sgVUkgd2FzIHNwZWNpZmllZC5cXG4nICsgJ1xcbicgKyAnQWRkIGEgPFN1c3BlbnNlIGZhbGxiYWNrPS4uLj4gY29tcG9uZW50IGhpZ2hlciBpbiB0aGUgdHJlZSB0byAnICsgJ3Byb3ZpZGUgYSBsb2FkaW5nIGluZGljYXRvciBvciBwbGFjZWhvbGRlciB0byBkaXNwbGF5LicpO1xuICB9IC8vIFdlIGRpZG4ndCBmaW5kIGEgYm91bmRhcnkgdGhhdCBjb3VsZCBoYW5kbGUgdGhpcyB0eXBlIG9mIGV4Y2VwdGlvbi4gU3RhcnRcbiAgLy8gb3ZlciBhbmQgdHJhdmVyc2UgcGFyZW50IHBhdGggYWdhaW4sIHRoaXMgdGltZSB0cmVhdGluZyB0aGUgZXhjZXB0aW9uXG4gIC8vIGFzIGFuIGVycm9yLlxuXG5cbiAgcmVuZGVyRGlkRXJyb3IoKTtcbiAgdmFsdWUgPSBjcmVhdGVDYXB0dXJlZFZhbHVlKHZhbHVlLCBzb3VyY2VGaWJlcik7XG4gIHZhciB3b3JrSW5Qcm9ncmVzcyA9IHJldHVybkZpYmVyO1xuXG4gIGRvIHtcbiAgICBzd2l0Y2ggKHdvcmtJblByb2dyZXNzLnRhZykge1xuICAgICAgY2FzZSBIb3N0Um9vdDpcbiAgICAgICAge1xuICAgICAgICAgIHZhciBfZXJyb3JJbmZvID0gdmFsdWU7XG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gU2hvdWxkQ2FwdHVyZTtcbiAgICAgICAgICB2YXIgbGFuZSA9IHBpY2tBcmJpdHJhcnlMYW5lKHJvb3RSZW5kZXJMYW5lcyk7XG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MubGFuZXMgPSBtZXJnZUxhbmVzKHdvcmtJblByb2dyZXNzLmxhbmVzLCBsYW5lKTtcblxuICAgICAgICAgIHZhciBfdXBkYXRlID0gY3JlYXRlUm9vdEVycm9yVXBkYXRlKHdvcmtJblByb2dyZXNzLCBfZXJyb3JJbmZvLCBsYW5lKTtcblxuICAgICAgICAgIGVucXVldWVDYXB0dXJlZFVwZGF0ZSh3b3JrSW5Qcm9ncmVzcywgX3VwZGF0ZSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgIGNhc2UgQ2xhc3NDb21wb25lbnQ6XG4gICAgICAgIC8vIENhcHR1cmUgYW5kIHJldHJ5XG4gICAgICAgIHZhciBlcnJvckluZm8gPSB2YWx1ZTtcbiAgICAgICAgdmFyIGN0b3IgPSB3b3JrSW5Qcm9ncmVzcy50eXBlO1xuICAgICAgICB2YXIgaW5zdGFuY2UgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG5cbiAgICAgICAgaWYgKCh3b3JrSW5Qcm9ncmVzcy5mbGFncyAmIERpZENhcHR1cmUpID09PSBOb0ZsYWdzICYmICh0eXBlb2YgY3Rvci5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IgPT09ICdmdW5jdGlvbicgfHwgaW5zdGFuY2UgIT09IG51bGwgJiYgdHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudERpZENhdGNoID09PSAnZnVuY3Rpb24nICYmICFpc0FscmVhZHlGYWlsZWRMZWdhY3lFcnJvckJvdW5kYXJ5KGluc3RhbmNlKSkpIHtcbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBTaG91bGRDYXB0dXJlO1xuXG4gICAgICAgICAgdmFyIF9sYW5lID0gcGlja0FyYml0cmFyeUxhbmUocm9vdFJlbmRlckxhbmVzKTtcblxuICAgICAgICAgIHdvcmtJblByb2dyZXNzLmxhbmVzID0gbWVyZ2VMYW5lcyh3b3JrSW5Qcm9ncmVzcy5sYW5lcywgX2xhbmUpOyAvLyBTY2hlZHVsZSB0aGUgZXJyb3IgYm91bmRhcnkgdG8gcmUtcmVuZGVyIHVzaW5nIHVwZGF0ZWQgc3RhdGVcblxuICAgICAgICAgIHZhciBfdXBkYXRlMiA9IGNyZWF0ZUNsYXNzRXJyb3JVcGRhdGUod29ya0luUHJvZ3Jlc3MsIGVycm9ySW5mbywgX2xhbmUpO1xuXG4gICAgICAgICAgZW5xdWV1ZUNhcHR1cmVkVXBkYXRlKHdvcmtJblByb2dyZXNzLCBfdXBkYXRlMik7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgd29ya0luUHJvZ3Jlc3MgPSB3b3JrSW5Qcm9ncmVzcy5yZXR1cm47XG4gIH0gd2hpbGUgKHdvcmtJblByb2dyZXNzICE9PSBudWxsKTtcbn1cblxudmFyIGRpZFdhcm5BYm91dFVuZGVmaW5lZFNuYXBzaG90QmVmb3JlVXBkYXRlID0gbnVsbDtcblxue1xuICBkaWRXYXJuQWJvdXRVbmRlZmluZWRTbmFwc2hvdEJlZm9yZVVwZGF0ZSA9IG5ldyBTZXQoKTtcbn1cblxudmFyIFBvc3NpYmx5V2Vha1NldCA9IHR5cGVvZiBXZWFrU2V0ID09PSAnZnVuY3Rpb24nID8gV2Vha1NldCA6IFNldDtcblxudmFyIGNhbGxDb21wb25lbnRXaWxsVW5tb3VudFdpdGhUaW1lciA9IGZ1bmN0aW9uIChjdXJyZW50LCBpbnN0YW5jZSkge1xuICBpbnN0YW5jZS5wcm9wcyA9IGN1cnJlbnQubWVtb2l6ZWRQcm9wcztcbiAgaW5zdGFuY2Uuc3RhdGUgPSBjdXJyZW50Lm1lbW9pemVkU3RhdGU7XG5cbiAge1xuICAgIGluc3RhbmNlLmNvbXBvbmVudFdpbGxVbm1vdW50KCk7XG4gIH1cbn07IC8vIENhcHR1cmUgZXJyb3JzIHNvIHRoZXkgZG9uJ3QgaW50ZXJydXB0IHVubW91bnRpbmcuXG5cblxuZnVuY3Rpb24gc2FmZWx5Q2FsbENvbXBvbmVudFdpbGxVbm1vdW50KGN1cnJlbnQsIGluc3RhbmNlKSB7XG4gIHtcbiAgICBpbnZva2VHdWFyZGVkQ2FsbGJhY2sobnVsbCwgY2FsbENvbXBvbmVudFdpbGxVbm1vdW50V2l0aFRpbWVyLCBudWxsLCBjdXJyZW50LCBpbnN0YW5jZSk7XG5cbiAgICBpZiAoaGFzQ2F1Z2h0RXJyb3IoKSkge1xuICAgICAgdmFyIHVubW91bnRFcnJvciA9IGNsZWFyQ2F1Z2h0RXJyb3IoKTtcbiAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGN1cnJlbnQsIHVubW91bnRFcnJvcik7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHNhZmVseURldGFjaFJlZihjdXJyZW50KSB7XG4gIHZhciByZWYgPSBjdXJyZW50LnJlZjtcblxuICBpZiAocmVmICE9PSBudWxsKSB7XG4gICAgaWYgKHR5cGVvZiByZWYgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHtcbiAgICAgICAgaW52b2tlR3VhcmRlZENhbGxiYWNrKG51bGwsIHJlZiwgbnVsbCwgbnVsbCk7XG5cbiAgICAgICAgaWYgKGhhc0NhdWdodEVycm9yKCkpIHtcbiAgICAgICAgICB2YXIgcmVmRXJyb3IgPSBjbGVhckNhdWdodEVycm9yKCk7XG4gICAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoY3VycmVudCwgcmVmRXJyb3IpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gc2FmZWx5Q2FsbERlc3Ryb3koY3VycmVudCwgZGVzdHJveSkge1xuICB7XG4gICAgaW52b2tlR3VhcmRlZENhbGxiYWNrKG51bGwsIGRlc3Ryb3ksIG51bGwpO1xuXG4gICAgaWYgKGhhc0NhdWdodEVycm9yKCkpIHtcbiAgICAgIHZhciBlcnJvciA9IGNsZWFyQ2F1Z2h0RXJyb3IoKTtcbiAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGN1cnJlbnQsIGVycm9yKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gY29tbWl0QmVmb3JlTXV0YXRpb25MaWZlQ3ljbGVzKGN1cnJlbnQsIGZpbmlzaGVkV29yaykge1xuICBzd2l0Y2ggKGZpbmlzaGVkV29yay50YWcpIHtcbiAgICBjYXNlIEZ1bmN0aW9uQ29tcG9uZW50OlxuICAgIGNhc2UgRm9yd2FyZFJlZjpcbiAgICBjYXNlIFNpbXBsZU1lbW9Db21wb25lbnQ6XG4gICAgY2FzZSBCbG9jazpcbiAgICAgIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgY2FzZSBDbGFzc0NvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgaWYgKGZpbmlzaGVkV29yay5mbGFncyAmIFNuYXBzaG90KSB7XG4gICAgICAgICAgaWYgKGN1cnJlbnQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHZhciBwcmV2UHJvcHMgPSBjdXJyZW50Lm1lbW9pemVkUHJvcHM7XG4gICAgICAgICAgICB2YXIgcHJldlN0YXRlID0gY3VycmVudC5tZW1vaXplZFN0YXRlO1xuICAgICAgICAgICAgdmFyIGluc3RhbmNlID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZTsgLy8gV2UgY291bGQgdXBkYXRlIGluc3RhbmNlIHByb3BzIGFuZCBzdGF0ZSBoZXJlLFxuICAgICAgICAgICAgLy8gYnV0IGluc3RlYWQgd2UgcmVseSBvbiB0aGVtIGJlaW5nIHNldCBkdXJpbmcgbGFzdCByZW5kZXIuXG4gICAgICAgICAgICAvLyBUT0RPOiByZXZpc2l0IHRoaXMgd2hlbiB3ZSBpbXBsZW1lbnQgcmVzdW1pbmcuXG5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWYgKGZpbmlzaGVkV29yay50eXBlID09PSBmaW5pc2hlZFdvcmsuZWxlbWVudFR5cGUgJiYgIWRpZFdhcm5BYm91dFJlYXNzaWduaW5nUHJvcHMpIHtcbiAgICAgICAgICAgICAgICBpZiAoaW5zdGFuY2UucHJvcHMgIT09IGZpbmlzaGVkV29yay5tZW1vaXplZFByb3BzKSB7XG4gICAgICAgICAgICAgICAgICBlcnJvcignRXhwZWN0ZWQgJXMgcHJvcHMgdG8gbWF0Y2ggbWVtb2l6ZWQgcHJvcHMgYmVmb3JlICcgKyAnZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUuICcgKyAnVGhpcyBtaWdodCBlaXRoZXIgYmUgYmVjYXVzZSBvZiBhIGJ1ZyBpbiBSZWFjdCwgb3IgYmVjYXVzZSAnICsgJ2EgY29tcG9uZW50IHJlYXNzaWducyBpdHMgb3duIGB0aGlzLnByb3BzYC4gJyArICdQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nLCBnZXRDb21wb25lbnROYW1lKGZpbmlzaGVkV29yay50eXBlKSB8fCAnaW5zdGFuY2UnKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoaW5zdGFuY2Uuc3RhdGUgIT09IGZpbmlzaGVkV29yay5tZW1vaXplZFN0YXRlKSB7XG4gICAgICAgICAgICAgICAgICBlcnJvcignRXhwZWN0ZWQgJXMgc3RhdGUgdG8gbWF0Y2ggbWVtb2l6ZWQgc3RhdGUgYmVmb3JlICcgKyAnZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUuICcgKyAnVGhpcyBtaWdodCBlaXRoZXIgYmUgYmVjYXVzZSBvZiBhIGJ1ZyBpbiBSZWFjdCwgb3IgYmVjYXVzZSAnICsgJ2EgY29tcG9uZW50IHJlYXNzaWducyBpdHMgb3duIGB0aGlzLnN0YXRlYC4gJyArICdQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nLCBnZXRDb21wb25lbnROYW1lKGZpbmlzaGVkV29yay50eXBlKSB8fCAnaW5zdGFuY2UnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdmFyIHNuYXBzaG90ID0gaW5zdGFuY2UuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUoZmluaXNoZWRXb3JrLmVsZW1lbnRUeXBlID09PSBmaW5pc2hlZFdvcmsudHlwZSA/IHByZXZQcm9wcyA6IHJlc29sdmVEZWZhdWx0UHJvcHMoZmluaXNoZWRXb3JrLnR5cGUsIHByZXZQcm9wcyksIHByZXZTdGF0ZSk7XG5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdmFyIGRpZFdhcm5TZXQgPSBkaWRXYXJuQWJvdXRVbmRlZmluZWRTbmFwc2hvdEJlZm9yZVVwZGF0ZTtcblxuICAgICAgICAgICAgICBpZiAoc25hcHNob3QgPT09IHVuZGVmaW5lZCAmJiAhZGlkV2FyblNldC5oYXMoZmluaXNoZWRXb3JrLnR5cGUpKSB7XG4gICAgICAgICAgICAgICAgZGlkV2FyblNldC5hZGQoZmluaXNoZWRXb3JrLnR5cGUpO1xuXG4gICAgICAgICAgICAgICAgZXJyb3IoJyVzLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlKCk6IEEgc25hcHNob3QgdmFsdWUgKG9yIG51bGwpICcgKyAnbXVzdCBiZSByZXR1cm5lZC4gWW91IGhhdmUgcmV0dXJuZWQgdW5kZWZpbmVkLicsIGdldENvbXBvbmVudE5hbWUoZmluaXNoZWRXb3JrLnR5cGUpKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpbnN0YW5jZS5fX3JlYWN0SW50ZXJuYWxTbmFwc2hvdEJlZm9yZVVwZGF0ZSA9IHNuYXBzaG90O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgIGNhc2UgSG9zdFJvb3Q6XG4gICAgICB7XG4gICAgICAgIHtcbiAgICAgICAgICBpZiAoZmluaXNoZWRXb3JrLmZsYWdzICYgU25hcHNob3QpIHtcbiAgICAgICAgICAgIHZhciByb290ID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZTtcbiAgICAgICAgICAgIGNsZWFyQ29udGFpbmVyKHJvb3QuY29udGFpbmVySW5mbyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgY2FzZSBIb3N0Q29tcG9uZW50OlxuICAgIGNhc2UgSG9zdFRleHQ6XG4gICAgY2FzZSBIb3N0UG9ydGFsOlxuICAgIGNhc2UgSW5jb21wbGV0ZUNsYXNzQ29tcG9uZW50OlxuICAgICAgLy8gTm90aGluZyB0byBkbyBmb3IgdGhlc2UgY29tcG9uZW50IHR5cGVzXG4gICAgICByZXR1cm47XG4gIH1cblxuICB7XG4gICAge1xuICAgICAgdGhyb3cgRXJyb3IoIFwiVGhpcyB1bml0IG9mIHdvcmsgdGFnIHNob3VsZCBub3QgaGF2ZSBzaWRlLWVmZmVjdHMuIFRoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCIgKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gY29tbWl0SG9va0VmZmVjdExpc3RVbm1vdW50KHRhZywgZmluaXNoZWRXb3JrKSB7XG4gIHZhciB1cGRhdGVRdWV1ZSA9IGZpbmlzaGVkV29yay51cGRhdGVRdWV1ZTtcbiAgdmFyIGxhc3RFZmZlY3QgPSB1cGRhdGVRdWV1ZSAhPT0gbnVsbCA/IHVwZGF0ZVF1ZXVlLmxhc3RFZmZlY3QgOiBudWxsO1xuXG4gIGlmIChsYXN0RWZmZWN0ICE9PSBudWxsKSB7XG4gICAgdmFyIGZpcnN0RWZmZWN0ID0gbGFzdEVmZmVjdC5uZXh0O1xuICAgIHZhciBlZmZlY3QgPSBmaXJzdEVmZmVjdDtcblxuICAgIGRvIHtcbiAgICAgIGlmICgoZWZmZWN0LnRhZyAmIHRhZykgPT09IHRhZykge1xuICAgICAgICAvLyBVbm1vdW50XG4gICAgICAgIHZhciBkZXN0cm95ID0gZWZmZWN0LmRlc3Ryb3k7XG4gICAgICAgIGVmZmVjdC5kZXN0cm95ID0gdW5kZWZpbmVkO1xuXG4gICAgICAgIGlmIChkZXN0cm95ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBkZXN0cm95KCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZWZmZWN0ID0gZWZmZWN0Lm5leHQ7XG4gICAgfSB3aGlsZSAoZWZmZWN0ICE9PSBmaXJzdEVmZmVjdCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gY29tbWl0SG9va0VmZmVjdExpc3RNb3VudCh0YWcsIGZpbmlzaGVkV29yaykge1xuICB2YXIgdXBkYXRlUXVldWUgPSBmaW5pc2hlZFdvcmsudXBkYXRlUXVldWU7XG4gIHZhciBsYXN0RWZmZWN0ID0gdXBkYXRlUXVldWUgIT09IG51bGwgPyB1cGRhdGVRdWV1ZS5sYXN0RWZmZWN0IDogbnVsbDtcblxuICBpZiAobGFzdEVmZmVjdCAhPT0gbnVsbCkge1xuICAgIHZhciBmaXJzdEVmZmVjdCA9IGxhc3RFZmZlY3QubmV4dDtcbiAgICB2YXIgZWZmZWN0ID0gZmlyc3RFZmZlY3Q7XG5cbiAgICBkbyB7XG4gICAgICBpZiAoKGVmZmVjdC50YWcgJiB0YWcpID09PSB0YWcpIHtcbiAgICAgICAgLy8gTW91bnRcbiAgICAgICAgdmFyIGNyZWF0ZSA9IGVmZmVjdC5jcmVhdGU7XG4gICAgICAgIGVmZmVjdC5kZXN0cm95ID0gY3JlYXRlKCk7XG5cbiAgICAgICAge1xuICAgICAgICAgIHZhciBkZXN0cm95ID0gZWZmZWN0LmRlc3Ryb3k7XG5cbiAgICAgICAgICBpZiAoZGVzdHJveSAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiBkZXN0cm95ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB2YXIgYWRkZW5kdW0gPSB2b2lkIDA7XG5cbiAgICAgICAgICAgIGlmIChkZXN0cm95ID09PSBudWxsKSB7XG4gICAgICAgICAgICAgIGFkZGVuZHVtID0gJyBZb3UgcmV0dXJuZWQgbnVsbC4gSWYgeW91ciBlZmZlY3QgZG9lcyBub3QgcmVxdWlyZSBjbGVhbiAnICsgJ3VwLCByZXR1cm4gdW5kZWZpbmVkIChvciBub3RoaW5nKS4nO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZGVzdHJveS50aGVuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgIGFkZGVuZHVtID0gJ1xcblxcbkl0IGxvb2tzIGxpa2UgeW91IHdyb3RlIHVzZUVmZmVjdChhc3luYyAoKSA9PiAuLi4pIG9yIHJldHVybmVkIGEgUHJvbWlzZS4gJyArICdJbnN0ZWFkLCB3cml0ZSB0aGUgYXN5bmMgZnVuY3Rpb24gaW5zaWRlIHlvdXIgZWZmZWN0ICcgKyAnYW5kIGNhbGwgaXQgaW1tZWRpYXRlbHk6XFxuXFxuJyArICd1c2VFZmZlY3QoKCkgPT4ge1xcbicgKyAnICBhc3luYyBmdW5jdGlvbiBmZXRjaERhdGEoKSB7XFxuJyArICcgICAgLy8gWW91IGNhbiBhd2FpdCBoZXJlXFxuJyArICcgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBNeUFQSS5nZXREYXRhKHNvbWVJZCk7XFxuJyArICcgICAgLy8gLi4uXFxuJyArICcgIH1cXG4nICsgJyAgZmV0Y2hEYXRhKCk7XFxuJyArIFwifSwgW3NvbWVJZF0pOyAvLyBPciBbXSBpZiBlZmZlY3QgZG9lc24ndCBuZWVkIHByb3BzIG9yIHN0YXRlXFxuXFxuXCIgKyAnTGVhcm4gbW9yZSBhYm91dCBkYXRhIGZldGNoaW5nIHdpdGggSG9va3M6IGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9ob29rcy1kYXRhLWZldGNoaW5nJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGFkZGVuZHVtID0gJyBZb3UgcmV0dXJuZWQ6ICcgKyBkZXN0cm95O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBlcnJvcignQW4gZWZmZWN0IGZ1bmN0aW9uIG11c3Qgbm90IHJldHVybiBhbnl0aGluZyBiZXNpZGVzIGEgZnVuY3Rpb24sICcgKyAnd2hpY2ggaXMgdXNlZCBmb3IgY2xlYW4tdXAuJXMnLCBhZGRlbmR1bSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGVmZmVjdCA9IGVmZmVjdC5uZXh0O1xuICAgIH0gd2hpbGUgKGVmZmVjdCAhPT0gZmlyc3RFZmZlY3QpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHNjaGVkdWxlUGFzc2l2ZUVmZmVjdHMoZmluaXNoZWRXb3JrKSB7XG4gIHZhciB1cGRhdGVRdWV1ZSA9IGZpbmlzaGVkV29yay51cGRhdGVRdWV1ZTtcbiAgdmFyIGxhc3RFZmZlY3QgPSB1cGRhdGVRdWV1ZSAhPT0gbnVsbCA/IHVwZGF0ZVF1ZXVlLmxhc3RFZmZlY3QgOiBudWxsO1xuXG4gIGlmIChsYXN0RWZmZWN0ICE9PSBudWxsKSB7XG4gICAgdmFyIGZpcnN0RWZmZWN0ID0gbGFzdEVmZmVjdC5uZXh0O1xuICAgIHZhciBlZmZlY3QgPSBmaXJzdEVmZmVjdDtcblxuICAgIGRvIHtcbiAgICAgIHZhciBfZWZmZWN0ID0gZWZmZWN0LFxuICAgICAgICAgIG5leHQgPSBfZWZmZWN0Lm5leHQsXG4gICAgICAgICAgdGFnID0gX2VmZmVjdC50YWc7XG5cbiAgICAgIGlmICgodGFnICYgUGFzc2l2ZSQxKSAhPT0gTm9GbGFncyQxICYmICh0YWcgJiBIYXNFZmZlY3QpICE9PSBOb0ZsYWdzJDEpIHtcbiAgICAgICAgZW5xdWV1ZVBlbmRpbmdQYXNzaXZlSG9va0VmZmVjdFVubW91bnQoZmluaXNoZWRXb3JrLCBlZmZlY3QpO1xuICAgICAgICBlbnF1ZXVlUGVuZGluZ1Bhc3NpdmVIb29rRWZmZWN0TW91bnQoZmluaXNoZWRXb3JrLCBlZmZlY3QpO1xuICAgICAgfVxuXG4gICAgICBlZmZlY3QgPSBuZXh0O1xuICAgIH0gd2hpbGUgKGVmZmVjdCAhPT0gZmlyc3RFZmZlY3QpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNvbW1pdExpZmVDeWNsZXMoZmluaXNoZWRSb290LCBjdXJyZW50LCBmaW5pc2hlZFdvcmssIGNvbW1pdHRlZExhbmVzKSB7XG4gIHN3aXRjaCAoZmluaXNoZWRXb3JrLnRhZykge1xuICAgIGNhc2UgRnVuY3Rpb25Db21wb25lbnQ6XG4gICAgY2FzZSBGb3J3YXJkUmVmOlxuICAgIGNhc2UgU2ltcGxlTWVtb0NvbXBvbmVudDpcbiAgICBjYXNlIEJsb2NrOlxuICAgICAge1xuICAgICAgICAvLyBBdCB0aGlzIHBvaW50IGxheW91dCBlZmZlY3RzIGhhdmUgYWxyZWFkeSBiZWVuIGRlc3Ryb3llZCAoZHVyaW5nIG11dGF0aW9uIHBoYXNlKS5cbiAgICAgICAgLy8gVGhpcyBpcyBkb25lIHRvIHByZXZlbnQgc2libGluZyBjb21wb25lbnQgZWZmZWN0cyBmcm9tIGludGVyZmVyaW5nIHdpdGggZWFjaCBvdGhlcixcbiAgICAgICAgLy8gZS5nLiBhIGRlc3Ryb3kgZnVuY3Rpb24gaW4gb25lIGNvbXBvbmVudCBzaG91bGQgbmV2ZXIgb3ZlcnJpZGUgYSByZWYgc2V0XG4gICAgICAgIC8vIGJ5IGEgY3JlYXRlIGZ1bmN0aW9uIGluIGFub3RoZXIgY29tcG9uZW50IGR1cmluZyB0aGUgc2FtZSBjb21taXQuXG4gICAgICAgIHtcbiAgICAgICAgICBjb21taXRIb29rRWZmZWN0TGlzdE1vdW50KExheW91dCB8IEhhc0VmZmVjdCwgZmluaXNoZWRXb3JrKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNjaGVkdWxlUGFzc2l2ZUVmZmVjdHMoZmluaXNoZWRXb3JrKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgY2FzZSBDbGFzc0NvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgdmFyIGluc3RhbmNlID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZTtcblxuICAgICAgICBpZiAoZmluaXNoZWRXb3JrLmZsYWdzICYgVXBkYXRlKSB7XG4gICAgICAgICAgaWYgKGN1cnJlbnQgPT09IG51bGwpIHtcbiAgICAgICAgICAgIC8vIFdlIGNvdWxkIHVwZGF0ZSBpbnN0YW5jZSBwcm9wcyBhbmQgc3RhdGUgaGVyZSxcbiAgICAgICAgICAgIC8vIGJ1dCBpbnN0ZWFkIHdlIHJlbHkgb24gdGhlbSBiZWluZyBzZXQgZHVyaW5nIGxhc3QgcmVuZGVyLlxuICAgICAgICAgICAgLy8gVE9ETzogcmV2aXNpdCB0aGlzIHdoZW4gd2UgaW1wbGVtZW50IHJlc3VtaW5nLlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpZiAoZmluaXNoZWRXb3JrLnR5cGUgPT09IGZpbmlzaGVkV29yay5lbGVtZW50VHlwZSAmJiAhZGlkV2FybkFib3V0UmVhc3NpZ25pbmdQcm9wcykge1xuICAgICAgICAgICAgICAgIGlmIChpbnN0YW5jZS5wcm9wcyAhPT0gZmluaXNoZWRXb3JrLm1lbW9pemVkUHJvcHMpIHtcbiAgICAgICAgICAgICAgICAgIGVycm9yKCdFeHBlY3RlZCAlcyBwcm9wcyB0byBtYXRjaCBtZW1vaXplZCBwcm9wcyBiZWZvcmUgJyArICdjb21wb25lbnREaWRNb3VudC4gJyArICdUaGlzIG1pZ2h0IGVpdGhlciBiZSBiZWNhdXNlIG9mIGEgYnVnIGluIFJlYWN0LCBvciBiZWNhdXNlICcgKyAnYSBjb21wb25lbnQgcmVhc3NpZ25zIGl0cyBvd24gYHRoaXMucHJvcHNgLiAnICsgJ1BsZWFzZSBmaWxlIGFuIGlzc3VlLicsIGdldENvbXBvbmVudE5hbWUoZmluaXNoZWRXb3JrLnR5cGUpIHx8ICdpbnN0YW5jZScpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChpbnN0YW5jZS5zdGF0ZSAhPT0gZmluaXNoZWRXb3JrLm1lbW9pemVkU3RhdGUpIHtcbiAgICAgICAgICAgICAgICAgIGVycm9yKCdFeHBlY3RlZCAlcyBzdGF0ZSB0byBtYXRjaCBtZW1vaXplZCBzdGF0ZSBiZWZvcmUgJyArICdjb21wb25lbnREaWRNb3VudC4gJyArICdUaGlzIG1pZ2h0IGVpdGhlciBiZSBiZWNhdXNlIG9mIGEgYnVnIGluIFJlYWN0LCBvciBiZWNhdXNlICcgKyAnYSBjb21wb25lbnQgcmVhc3NpZ25zIGl0cyBvd24gYHRoaXMuc3RhdGVgLiAnICsgJ1BsZWFzZSBmaWxlIGFuIGlzc3VlLicsIGdldENvbXBvbmVudE5hbWUoZmluaXNoZWRXb3JrLnR5cGUpIHx8ICdpbnN0YW5jZScpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGluc3RhbmNlLmNvbXBvbmVudERpZE1vdW50KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciBwcmV2UHJvcHMgPSBmaW5pc2hlZFdvcmsuZWxlbWVudFR5cGUgPT09IGZpbmlzaGVkV29yay50eXBlID8gY3VycmVudC5tZW1vaXplZFByb3BzIDogcmVzb2x2ZURlZmF1bHRQcm9wcyhmaW5pc2hlZFdvcmsudHlwZSwgY3VycmVudC5tZW1vaXplZFByb3BzKTtcbiAgICAgICAgICAgIHZhciBwcmV2U3RhdGUgPSBjdXJyZW50Lm1lbW9pemVkU3RhdGU7IC8vIFdlIGNvdWxkIHVwZGF0ZSBpbnN0YW5jZSBwcm9wcyBhbmQgc3RhdGUgaGVyZSxcbiAgICAgICAgICAgIC8vIGJ1dCBpbnN0ZWFkIHdlIHJlbHkgb24gdGhlbSBiZWluZyBzZXQgZHVyaW5nIGxhc3QgcmVuZGVyLlxuICAgICAgICAgICAgLy8gVE9ETzogcmV2aXNpdCB0aGlzIHdoZW4gd2UgaW1wbGVtZW50IHJlc3VtaW5nLlxuXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGlmIChmaW5pc2hlZFdvcmsudHlwZSA9PT0gZmluaXNoZWRXb3JrLmVsZW1lbnRUeXBlICYmICFkaWRXYXJuQWJvdXRSZWFzc2lnbmluZ1Byb3BzKSB7XG4gICAgICAgICAgICAgICAgaWYgKGluc3RhbmNlLnByb3BzICE9PSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRQcm9wcykge1xuICAgICAgICAgICAgICAgICAgZXJyb3IoJ0V4cGVjdGVkICVzIHByb3BzIHRvIG1hdGNoIG1lbW9pemVkIHByb3BzIGJlZm9yZSAnICsgJ2NvbXBvbmVudERpZFVwZGF0ZS4gJyArICdUaGlzIG1pZ2h0IGVpdGhlciBiZSBiZWNhdXNlIG9mIGEgYnVnIGluIFJlYWN0LCBvciBiZWNhdXNlICcgKyAnYSBjb21wb25lbnQgcmVhc3NpZ25zIGl0cyBvd24gYHRoaXMucHJvcHNgLiAnICsgJ1BsZWFzZSBmaWxlIGFuIGlzc3VlLicsIGdldENvbXBvbmVudE5hbWUoZmluaXNoZWRXb3JrLnR5cGUpIHx8ICdpbnN0YW5jZScpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChpbnN0YW5jZS5zdGF0ZSAhPT0gZmluaXNoZWRXb3JrLm1lbW9pemVkU3RhdGUpIHtcbiAgICAgICAgICAgICAgICAgIGVycm9yKCdFeHBlY3RlZCAlcyBzdGF0ZSB0byBtYXRjaCBtZW1vaXplZCBzdGF0ZSBiZWZvcmUgJyArICdjb21wb25lbnREaWRVcGRhdGUuICcgKyAnVGhpcyBtaWdodCBlaXRoZXIgYmUgYmVjYXVzZSBvZiBhIGJ1ZyBpbiBSZWFjdCwgb3IgYmVjYXVzZSAnICsgJ2EgY29tcG9uZW50IHJlYXNzaWducyBpdHMgb3duIGB0aGlzLnN0YXRlYC4gJyArICdQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nLCBnZXRDb21wb25lbnROYW1lKGZpbmlzaGVkV29yay50eXBlKSB8fCAnaW5zdGFuY2UnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpbnN0YW5jZS5jb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzLCBwcmV2U3RhdGUsIGluc3RhbmNlLl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90QmVmb3JlVXBkYXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gLy8gVE9ETzogSSB0aGluayB0aGlzIGlzIG5vdyBhbHdheXMgbm9uLW51bGwgYnkgdGhlIHRpbWUgaXQgcmVhY2hlcyB0aGVcbiAgICAgICAgLy8gY29tbWl0IHBoYXNlLiBDb25zaWRlciByZW1vdmluZyB0aGUgdHlwZSBjaGVjay5cblxuXG4gICAgICAgIHZhciB1cGRhdGVRdWV1ZSA9IGZpbmlzaGVkV29yay51cGRhdGVRdWV1ZTtcblxuICAgICAgICBpZiAodXBkYXRlUXVldWUgIT09IG51bGwpIHtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZiAoZmluaXNoZWRXb3JrLnR5cGUgPT09IGZpbmlzaGVkV29yay5lbGVtZW50VHlwZSAmJiAhZGlkV2FybkFib3V0UmVhc3NpZ25pbmdQcm9wcykge1xuICAgICAgICAgICAgICBpZiAoaW5zdGFuY2UucHJvcHMgIT09IGZpbmlzaGVkV29yay5tZW1vaXplZFByb3BzKSB7XG4gICAgICAgICAgICAgICAgZXJyb3IoJ0V4cGVjdGVkICVzIHByb3BzIHRvIG1hdGNoIG1lbW9pemVkIHByb3BzIGJlZm9yZSAnICsgJ3Byb2Nlc3NpbmcgdGhlIHVwZGF0ZSBxdWV1ZS4gJyArICdUaGlzIG1pZ2h0IGVpdGhlciBiZSBiZWNhdXNlIG9mIGEgYnVnIGluIFJlYWN0LCBvciBiZWNhdXNlICcgKyAnYSBjb21wb25lbnQgcmVhc3NpZ25zIGl0cyBvd24gYHRoaXMucHJvcHNgLiAnICsgJ1BsZWFzZSBmaWxlIGFuIGlzc3VlLicsIGdldENvbXBvbmVudE5hbWUoZmluaXNoZWRXb3JrLnR5cGUpIHx8ICdpbnN0YW5jZScpO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgaWYgKGluc3RhbmNlLnN0YXRlICE9PSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRTdGF0ZSkge1xuICAgICAgICAgICAgICAgIGVycm9yKCdFeHBlY3RlZCAlcyBzdGF0ZSB0byBtYXRjaCBtZW1vaXplZCBzdGF0ZSBiZWZvcmUgJyArICdwcm9jZXNzaW5nIHRoZSB1cGRhdGUgcXVldWUuICcgKyAnVGhpcyBtaWdodCBlaXRoZXIgYmUgYmVjYXVzZSBvZiBhIGJ1ZyBpbiBSZWFjdCwgb3IgYmVjYXVzZSAnICsgJ2EgY29tcG9uZW50IHJlYXNzaWducyBpdHMgb3duIGB0aGlzLnN0YXRlYC4gJyArICdQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nLCBnZXRDb21wb25lbnROYW1lKGZpbmlzaGVkV29yay50eXBlKSB8fCAnaW5zdGFuY2UnKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gLy8gV2UgY291bGQgdXBkYXRlIGluc3RhbmNlIHByb3BzIGFuZCBzdGF0ZSBoZXJlLFxuICAgICAgICAgIC8vIGJ1dCBpbnN0ZWFkIHdlIHJlbHkgb24gdGhlbSBiZWluZyBzZXQgZHVyaW5nIGxhc3QgcmVuZGVyLlxuICAgICAgICAgIC8vIFRPRE86IHJldmlzaXQgdGhpcyB3aGVuIHdlIGltcGxlbWVudCByZXN1bWluZy5cblxuXG4gICAgICAgICAgY29tbWl0VXBkYXRlUXVldWUoZmluaXNoZWRXb3JrLCB1cGRhdGVRdWV1ZSwgaW5zdGFuY2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgY2FzZSBIb3N0Um9vdDpcbiAgICAgIHtcbiAgICAgICAgLy8gVE9ETzogSSB0aGluayB0aGlzIGlzIG5vdyBhbHdheXMgbm9uLW51bGwgYnkgdGhlIHRpbWUgaXQgcmVhY2hlcyB0aGVcbiAgICAgICAgLy8gY29tbWl0IHBoYXNlLiBDb25zaWRlciByZW1vdmluZyB0aGUgdHlwZSBjaGVjay5cbiAgICAgICAgdmFyIF91cGRhdGVRdWV1ZSA9IGZpbmlzaGVkV29yay51cGRhdGVRdWV1ZTtcblxuICAgICAgICBpZiAoX3VwZGF0ZVF1ZXVlICE9PSBudWxsKSB7XG4gICAgICAgICAgdmFyIF9pbnN0YW5jZSA9IG51bGw7XG5cbiAgICAgICAgICBpZiAoZmluaXNoZWRXb3JrLmNoaWxkICE9PSBudWxsKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKGZpbmlzaGVkV29yay5jaGlsZC50YWcpIHtcbiAgICAgICAgICAgICAgY2FzZSBIb3N0Q29tcG9uZW50OlxuICAgICAgICAgICAgICAgIF9pbnN0YW5jZSA9IGdldFB1YmxpY0luc3RhbmNlKGZpbmlzaGVkV29yay5jaGlsZC5zdGF0ZU5vZGUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgIGNhc2UgQ2xhc3NDb21wb25lbnQ6XG4gICAgICAgICAgICAgICAgX2luc3RhbmNlID0gZmluaXNoZWRXb3JrLmNoaWxkLnN0YXRlTm9kZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb21taXRVcGRhdGVRdWV1ZShmaW5pc2hlZFdvcmssIF91cGRhdGVRdWV1ZSwgX2luc3RhbmNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgIGNhc2UgSG9zdENvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgdmFyIF9pbnN0YW5jZTIgPSBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlOyAvLyBSZW5kZXJlcnMgbWF5IHNjaGVkdWxlIHdvcmsgdG8gYmUgZG9uZSBhZnRlciBob3N0IGNvbXBvbmVudHMgYXJlIG1vdW50ZWRcbiAgICAgICAgLy8gKGVnIERPTSByZW5kZXJlciBtYXkgc2NoZWR1bGUgYXV0by1mb2N1cyBmb3IgaW5wdXRzIGFuZCBmb3JtIGNvbnRyb2xzKS5cbiAgICAgICAgLy8gVGhlc2UgZWZmZWN0cyBzaG91bGQgb25seSBiZSBjb21taXR0ZWQgd2hlbiBjb21wb25lbnRzIGFyZSBmaXJzdCBtb3VudGVkLFxuICAgICAgICAvLyBha2Egd2hlbiB0aGVyZSBpcyBubyBjdXJyZW50L2FsdGVybmF0ZS5cblxuICAgICAgICBpZiAoY3VycmVudCA9PT0gbnVsbCAmJiBmaW5pc2hlZFdvcmsuZmxhZ3MgJiBVcGRhdGUpIHtcbiAgICAgICAgICB2YXIgdHlwZSA9IGZpbmlzaGVkV29yay50eXBlO1xuICAgICAgICAgIHZhciBwcm9wcyA9IGZpbmlzaGVkV29yay5tZW1vaXplZFByb3BzO1xuICAgICAgICAgIGNvbW1pdE1vdW50KF9pbnN0YW5jZTIsIHR5cGUsIHByb3BzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgIGNhc2UgSG9zdFRleHQ6XG4gICAgICB7XG4gICAgICAgIC8vIFdlIGhhdmUgbm8gbGlmZS1jeWNsZXMgYXNzb2NpYXRlZCB3aXRoIHRleHQuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgIGNhc2UgSG9zdFBvcnRhbDpcbiAgICAgIHtcbiAgICAgICAgLy8gV2UgaGF2ZSBubyBsaWZlLWN5Y2xlcyBhc3NvY2lhdGVkIHdpdGggcG9ydGFscy5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgY2FzZSBQcm9maWxlcjpcbiAgICAgIHtcbiAgICAgICAge1xuICAgICAgICAgIHZhciBfZmluaXNoZWRXb3JrJG1lbW9pemUyID0gZmluaXNoZWRXb3JrLm1lbW9pemVkUHJvcHMsXG4gICAgICAgICAgICAgIG9uQ29tbWl0ID0gX2ZpbmlzaGVkV29yayRtZW1vaXplMi5vbkNvbW1pdCxcbiAgICAgICAgICAgICAgb25SZW5kZXIgPSBfZmluaXNoZWRXb3JrJG1lbW9pemUyLm9uUmVuZGVyO1xuICAgICAgICAgIHZhciBlZmZlY3REdXJhdGlvbiA9IGZpbmlzaGVkV29yay5zdGF0ZU5vZGUuZWZmZWN0RHVyYXRpb247XG4gICAgICAgICAgdmFyIGNvbW1pdFRpbWUgPSBnZXRDb21taXRUaW1lKCk7XG5cbiAgICAgICAgICBpZiAodHlwZW9mIG9uUmVuZGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG9uUmVuZGVyKGZpbmlzaGVkV29yay5tZW1vaXplZFByb3BzLmlkLCBjdXJyZW50ID09PSBudWxsID8gJ21vdW50JyA6ICd1cGRhdGUnLCBmaW5pc2hlZFdvcmsuYWN0dWFsRHVyYXRpb24sIGZpbmlzaGVkV29yay50cmVlQmFzZUR1cmF0aW9uLCBmaW5pc2hlZFdvcmsuYWN0dWFsU3RhcnRUaW1lLCBjb21taXRUaW1lLCBmaW5pc2hlZFJvb3QubWVtb2l6ZWRJbnRlcmFjdGlvbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgIGNhc2UgU3VzcGVuc2VDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIGNvbW1pdFN1c3BlbnNlSHlkcmF0aW9uQ2FsbGJhY2tzKGZpbmlzaGVkUm9vdCwgZmluaXNoZWRXb3JrKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgY2FzZSBTdXNwZW5zZUxpc3RDb21wb25lbnQ6XG4gICAgY2FzZSBJbmNvbXBsZXRlQ2xhc3NDb21wb25lbnQ6XG4gICAgY2FzZSBGdW5kYW1lbnRhbENvbXBvbmVudDpcbiAgICBjYXNlIFNjb3BlQ29tcG9uZW50OlxuICAgIGNhc2UgT2Zmc2NyZWVuQ29tcG9uZW50OlxuICAgIGNhc2UgTGVnYWN5SGlkZGVuQ29tcG9uZW50OlxuICAgICAgcmV0dXJuO1xuICB9XG5cbiAge1xuICAgIHtcbiAgICAgIHRocm93IEVycm9yKCBcIlRoaXMgdW5pdCBvZiB3b3JrIHRhZyBzaG91bGQgbm90IGhhdmUgc2lkZS1lZmZlY3RzLiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLlwiICk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGhpZGVPclVuaGlkZUFsbENoaWxkcmVuKGZpbmlzaGVkV29yaywgaXNIaWRkZW4pIHtcbiAge1xuICAgIC8vIFdlIG9ubHkgaGF2ZSB0aGUgdG9wIEZpYmVyIHRoYXQgd2FzIGluc2VydGVkIGJ1dCB3ZSBuZWVkIHRvIHJlY3Vyc2UgZG93biBpdHNcbiAgICAvLyBjaGlsZHJlbiB0byBmaW5kIGFsbCB0aGUgdGVybWluYWwgbm9kZXMuXG4gICAgdmFyIG5vZGUgPSBmaW5pc2hlZFdvcms7XG5cbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgaWYgKG5vZGUudGFnID09PSBIb3N0Q29tcG9uZW50KSB7XG4gICAgICAgIHZhciBpbnN0YW5jZSA9IG5vZGUuc3RhdGVOb2RlO1xuXG4gICAgICAgIGlmIChpc0hpZGRlbikge1xuICAgICAgICAgIGhpZGVJbnN0YW5jZShpbnN0YW5jZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdW5oaWRlSW5zdGFuY2Uobm9kZS5zdGF0ZU5vZGUsIG5vZGUubWVtb2l6ZWRQcm9wcyk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAobm9kZS50YWcgPT09IEhvc3RUZXh0KSB7XG4gICAgICAgIHZhciBfaW5zdGFuY2UzID0gbm9kZS5zdGF0ZU5vZGU7XG5cbiAgICAgICAgaWYgKGlzSGlkZGVuKSB7XG4gICAgICAgICAgaGlkZVRleHRJbnN0YW5jZShfaW5zdGFuY2UzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB1bmhpZGVUZXh0SW5zdGFuY2UoX2luc3RhbmNlMywgbm9kZS5tZW1vaXplZFByb3BzKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICgobm9kZS50YWcgPT09IE9mZnNjcmVlbkNvbXBvbmVudCB8fCBub2RlLnRhZyA9PT0gTGVnYWN5SGlkZGVuQ29tcG9uZW50KSAmJiBub2RlLm1lbW9pemVkU3RhdGUgIT09IG51bGwgJiYgbm9kZSAhPT0gZmluaXNoZWRXb3JrKSA7IGVsc2UgaWYgKG5vZGUuY2hpbGQgIT09IG51bGwpIHtcbiAgICAgICAgbm9kZS5jaGlsZC5yZXR1cm4gPSBub2RlO1xuICAgICAgICBub2RlID0gbm9kZS5jaGlsZDtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChub2RlID09PSBmaW5pc2hlZFdvcmspIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB3aGlsZSAobm9kZS5zaWJsaW5nID09PSBudWxsKSB7XG4gICAgICAgIGlmIChub2RlLnJldHVybiA9PT0gbnVsbCB8fCBub2RlLnJldHVybiA9PT0gZmluaXNoZWRXb3JrKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbm9kZSA9IG5vZGUucmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBub2RlLnNpYmxpbmcucmV0dXJuID0gbm9kZS5yZXR1cm47XG4gICAgICBub2RlID0gbm9kZS5zaWJsaW5nO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjb21taXRBdHRhY2hSZWYoZmluaXNoZWRXb3JrKSB7XG4gIHZhciByZWYgPSBmaW5pc2hlZFdvcmsucmVmO1xuXG4gIGlmIChyZWYgIT09IG51bGwpIHtcbiAgICB2YXIgaW5zdGFuY2UgPSBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlO1xuICAgIHZhciBpbnN0YW5jZVRvVXNlO1xuXG4gICAgc3dpdGNoIChmaW5pc2hlZFdvcmsudGFnKSB7XG4gICAgICBjYXNlIEhvc3RDb21wb25lbnQ6XG4gICAgICAgIGluc3RhbmNlVG9Vc2UgPSBnZXRQdWJsaWNJbnN0YW5jZShpbnN0YW5jZSk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBpbnN0YW5jZVRvVXNlID0gaW5zdGFuY2U7XG4gICAgfSAvLyBNb3ZlZCBvdXRzaWRlIHRvIGVuc3VyZSBEQ0Ugd29ya3Mgd2l0aCB0aGlzIGZsYWdcblxuICAgIGlmICh0eXBlb2YgcmVmID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZWYoaW5zdGFuY2VUb1VzZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHtcbiAgICAgICAgaWYgKCFyZWYuaGFzT3duUHJvcGVydHkoJ2N1cnJlbnQnKSkge1xuICAgICAgICAgIGVycm9yKCdVbmV4cGVjdGVkIHJlZiBvYmplY3QgcHJvdmlkZWQgZm9yICVzLiAnICsgJ1VzZSBlaXRoZXIgYSByZWYtc2V0dGVyIGZ1bmN0aW9uIG9yIFJlYWN0LmNyZWF0ZVJlZigpLicsIGdldENvbXBvbmVudE5hbWUoZmluaXNoZWRXb3JrLnR5cGUpKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZWYuY3VycmVudCA9IGluc3RhbmNlVG9Vc2U7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGNvbW1pdERldGFjaFJlZihjdXJyZW50KSB7XG4gIHZhciBjdXJyZW50UmVmID0gY3VycmVudC5yZWY7XG5cbiAgaWYgKGN1cnJlbnRSZWYgIT09IG51bGwpIHtcbiAgICBpZiAodHlwZW9mIGN1cnJlbnRSZWYgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGN1cnJlbnRSZWYobnVsbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGN1cnJlbnRSZWYuY3VycmVudCA9IG51bGw7XG4gICAgfVxuICB9XG59IC8vIFVzZXItb3JpZ2luYXRpbmcgZXJyb3JzIChsaWZlY3ljbGVzIGFuZCByZWZzKSBzaG91bGQgbm90IGludGVycnVwdFxuLy8gZGVsZXRpb24sIHNvIGRvbid0IGxldCB0aGVtIHRocm93LiBIb3N0LW9yaWdpbmF0aW5nIGVycm9ycyBzaG91bGRcbi8vIGludGVycnVwdCBkZWxldGlvbiwgc28gaXQncyBva2F5XG5cblxuZnVuY3Rpb24gY29tbWl0VW5tb3VudChmaW5pc2hlZFJvb3QsIGN1cnJlbnQsIHJlbmRlclByaW9yaXR5TGV2ZWwpIHtcbiAgb25Db21taXRVbm1vdW50KGN1cnJlbnQpO1xuXG4gIHN3aXRjaCAoY3VycmVudC50YWcpIHtcbiAgICBjYXNlIEZ1bmN0aW9uQ29tcG9uZW50OlxuICAgIGNhc2UgRm9yd2FyZFJlZjpcbiAgICBjYXNlIE1lbW9Db21wb25lbnQ6XG4gICAgY2FzZSBTaW1wbGVNZW1vQ29tcG9uZW50OlxuICAgIGNhc2UgQmxvY2s6XG4gICAgICB7XG4gICAgICAgIHZhciB1cGRhdGVRdWV1ZSA9IGN1cnJlbnQudXBkYXRlUXVldWU7XG5cbiAgICAgICAgaWYgKHVwZGF0ZVF1ZXVlICE9PSBudWxsKSB7XG4gICAgICAgICAgdmFyIGxhc3RFZmZlY3QgPSB1cGRhdGVRdWV1ZS5sYXN0RWZmZWN0O1xuXG4gICAgICAgICAgaWYgKGxhc3RFZmZlY3QgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHZhciBmaXJzdEVmZmVjdCA9IGxhc3RFZmZlY3QubmV4dDtcbiAgICAgICAgICAgIHZhciBlZmZlY3QgPSBmaXJzdEVmZmVjdDtcblxuICAgICAgICAgICAgZG8ge1xuICAgICAgICAgICAgICB2YXIgX2VmZmVjdDIgPSBlZmZlY3QsXG4gICAgICAgICAgICAgICAgICBkZXN0cm95ID0gX2VmZmVjdDIuZGVzdHJveSxcbiAgICAgICAgICAgICAgICAgIHRhZyA9IF9lZmZlY3QyLnRhZztcblxuICAgICAgICAgICAgICBpZiAoZGVzdHJveSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgaWYgKCh0YWcgJiBQYXNzaXZlJDEpICE9PSBOb0ZsYWdzJDEpIHtcbiAgICAgICAgICAgICAgICAgIGVucXVldWVQZW5kaW5nUGFzc2l2ZUhvb2tFZmZlY3RVbm1vdW50KGN1cnJlbnQsIGVmZmVjdCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgc2FmZWx5Q2FsbERlc3Ryb3koY3VycmVudCwgZGVzdHJveSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgZWZmZWN0ID0gZWZmZWN0Lm5leHQ7XG4gICAgICAgICAgICB9IHdoaWxlIChlZmZlY3QgIT09IGZpcnN0RWZmZWN0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICBjYXNlIENsYXNzQ29tcG9uZW50OlxuICAgICAge1xuICAgICAgICBzYWZlbHlEZXRhY2hSZWYoY3VycmVudCk7XG4gICAgICAgIHZhciBpbnN0YW5jZSA9IGN1cnJlbnQuc3RhdGVOb2RlO1xuXG4gICAgICAgIGlmICh0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50V2lsbFVubW91bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICBzYWZlbHlDYWxsQ29tcG9uZW50V2lsbFVubW91bnQoY3VycmVudCwgaW5zdGFuY2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgY2FzZSBIb3N0Q29tcG9uZW50OlxuICAgICAge1xuICAgICAgICBzYWZlbHlEZXRhY2hSZWYoY3VycmVudCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgIGNhc2UgSG9zdFBvcnRhbDpcbiAgICAgIHtcbiAgICAgICAgLy8gVE9ETzogdGhpcyBpcyByZWN1cnNpdmUuXG4gICAgICAgIC8vIFdlIGFyZSBhbHNvIG5vdCB1c2luZyB0aGlzIHBhcmVudCBiZWNhdXNlXG4gICAgICAgIC8vIHRoZSBwb3J0YWwgd2lsbCBnZXQgcHVzaGVkIGltbWVkaWF0ZWx5LlxuICAgICAgICB7XG4gICAgICAgICAgdW5tb3VudEhvc3RDb21wb25lbnRzKGZpbmlzaGVkUm9vdCwgY3VycmVudCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICBjYXNlIEZ1bmRhbWVudGFsQ29tcG9uZW50OlxuICAgICAge1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgIGNhc2UgRGVoeWRyYXRlZEZyYWdtZW50OlxuICAgICAge1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgIGNhc2UgU2NvcGVDb21wb25lbnQ6XG4gICAgICB7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGNvbW1pdE5lc3RlZFVubW91bnRzKGZpbmlzaGVkUm9vdCwgcm9vdCwgcmVuZGVyUHJpb3JpdHlMZXZlbCkge1xuICAvLyBXaGlsZSB3ZSdyZSBpbnNpZGUgYSByZW1vdmVkIGhvc3Qgbm9kZSB3ZSBkb24ndCB3YW50IHRvIGNhbGxcbiAgLy8gcmVtb3ZlQ2hpbGQgb24gdGhlIGlubmVyIG5vZGVzIGJlY2F1c2UgdGhleSdyZSByZW1vdmVkIGJ5IHRoZSB0b3BcbiAgLy8gY2FsbCBhbnl3YXkuIFdlIGFsc28gd2FudCB0byBjYWxsIGNvbXBvbmVudFdpbGxVbm1vdW50IG9uIGFsbFxuICAvLyBjb21wb3NpdGVzIGJlZm9yZSB0aGlzIGhvc3Qgbm9kZSBpcyByZW1vdmVkIGZyb20gdGhlIHRyZWUuIFRoZXJlZm9yZVxuICAvLyB3ZSBkbyBhbiBpbm5lciBsb29wIHdoaWxlIHdlJ3JlIHN0aWxsIGluc2lkZSB0aGUgaG9zdCBub2RlLlxuICB2YXIgbm9kZSA9IHJvb3Q7XG5cbiAgd2hpbGUgKHRydWUpIHtcbiAgICBjb21taXRVbm1vdW50KGZpbmlzaGVkUm9vdCwgbm9kZSk7IC8vIFZpc2l0IGNoaWxkcmVuIGJlY2F1c2UgdGhleSBtYXkgY29udGFpbiBtb3JlIGNvbXBvc2l0ZSBvciBob3N0IG5vZGVzLlxuICAgIC8vIFNraXAgcG9ydGFscyBiZWNhdXNlIGNvbW1pdFVubW91bnQoKSBjdXJyZW50bHkgdmlzaXRzIHRoZW0gcmVjdXJzaXZlbHkuXG5cbiAgICBpZiAobm9kZS5jaGlsZCAhPT0gbnVsbCAmJiAoIC8vIElmIHdlIHVzZSBtdXRhdGlvbiB3ZSBkcmlsbCBkb3duIGludG8gcG9ydGFscyB1c2luZyBjb21taXRVbm1vdW50IGFib3ZlLlxuICAgIC8vIElmIHdlIGRvbid0IHVzZSBtdXRhdGlvbiB3ZSBkcmlsbCBkb3duIGludG8gcG9ydGFscyBoZXJlIGluc3RlYWQuXG4gICAgIG5vZGUudGFnICE9PSBIb3N0UG9ydGFsKSkge1xuICAgICAgbm9kZS5jaGlsZC5yZXR1cm4gPSBub2RlO1xuICAgICAgbm9kZSA9IG5vZGUuY2hpbGQ7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAobm9kZSA9PT0gcm9vdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHdoaWxlIChub2RlLnNpYmxpbmcgPT09IG51bGwpIHtcbiAgICAgIGlmIChub2RlLnJldHVybiA9PT0gbnVsbCB8fCBub2RlLnJldHVybiA9PT0gcm9vdCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIG5vZGUgPSBub2RlLnJldHVybjtcbiAgICB9XG5cbiAgICBub2RlLnNpYmxpbmcucmV0dXJuID0gbm9kZS5yZXR1cm47XG4gICAgbm9kZSA9IG5vZGUuc2libGluZztcbiAgfVxufVxuXG5mdW5jdGlvbiBkZXRhY2hGaWJlck11dGF0aW9uKGZpYmVyKSB7XG4gIC8vIEN1dCBvZmYgdGhlIHJldHVybiBwb2ludGVycyB0byBkaXNjb25uZWN0IGl0IGZyb20gdGhlIHRyZWUuIElkZWFsbHksIHdlXG4gIC8vIHNob3VsZCBjbGVhciB0aGUgY2hpbGQgcG9pbnRlciBvZiB0aGUgcGFyZW50IGFsdGVybmF0ZSB0byBsZXQgdGhpc1xuICAvLyBnZXQgR0M6ZWQgYnV0IHdlIGRvbid0IGtub3cgd2hpY2ggZm9yIHN1cmUgd2hpY2ggcGFyZW50IGlzIHRoZSBjdXJyZW50XG4gIC8vIG9uZSBzbyB3ZSdsbCBzZXR0bGUgZm9yIEdDOmluZyB0aGUgc3VidHJlZSBvZiB0aGlzIGNoaWxkLiBUaGlzIGNoaWxkXG4gIC8vIGl0c2VsZiB3aWxsIGJlIEdDOmVkIHdoZW4gdGhlIHBhcmVudCB1cGRhdGVzIHRoZSBuZXh0IHRpbWUuXG4gIC8vIE5vdGU6IHdlIGNhbm5vdCBudWxsIG91dCBzaWJsaW5nIGhlcmUsIG90aGVyd2lzZSBpdCBjYW4gY2F1c2UgaXNzdWVzXG4gIC8vIHdpdGggZmluZERPTU5vZGUgYW5kIGhvdyBpdCByZXF1aXJlcyB0aGUgc2libGluZyBmaWVsZCB0byBjYXJyeSBvdXRcbiAgLy8gdHJhdmVyc2FsIGluIGEgbGF0ZXIgZWZmZWN0LiBTZWUgUFIgIzE2ODIwLiBXZSBub3cgY2xlYXIgdGhlIHNpYmxpbmdcbiAgLy8gZmllbGQgYWZ0ZXIgZWZmZWN0cywgc2VlOiBkZXRhY2hGaWJlckFmdGVyRWZmZWN0cy5cbiAgLy9cbiAgLy8gRG9uJ3QgZGlzY29ubmVjdCBzdGF0ZU5vZGUgbm93OyBpdCB3aWxsIGJlIGRldGFjaGVkIGluIGRldGFjaEZpYmVyQWZ0ZXJFZmZlY3RzLlxuICAvLyBJdCBtYXkgYmUgcmVxdWlyZWQgaWYgdGhlIGN1cnJlbnQgY29tcG9uZW50IGlzIGFuIGVycm9yIGJvdW5kYXJ5LFxuICAvLyBhbmQgb25lIG9mIGl0cyBkZXNjZW5kYW50cyB0aHJvd3Mgd2hpbGUgdW5tb3VudGluZyBhIHBhc3NpdmUgZWZmZWN0LlxuICBmaWJlci5hbHRlcm5hdGUgPSBudWxsO1xuICBmaWJlci5jaGlsZCA9IG51bGw7XG4gIGZpYmVyLmRlcGVuZGVuY2llcyA9IG51bGw7XG4gIGZpYmVyLmZpcnN0RWZmZWN0ID0gbnVsbDtcbiAgZmliZXIubGFzdEVmZmVjdCA9IG51bGw7XG4gIGZpYmVyLm1lbW9pemVkUHJvcHMgPSBudWxsO1xuICBmaWJlci5tZW1vaXplZFN0YXRlID0gbnVsbDtcbiAgZmliZXIucGVuZGluZ1Byb3BzID0gbnVsbDtcbiAgZmliZXIucmV0dXJuID0gbnVsbDtcbiAgZmliZXIudXBkYXRlUXVldWUgPSBudWxsO1xuXG4gIHtcbiAgICBmaWJlci5fZGVidWdPd25lciA9IG51bGw7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0SG9zdFBhcmVudEZpYmVyKGZpYmVyKSB7XG4gIHZhciBwYXJlbnQgPSBmaWJlci5yZXR1cm47XG5cbiAgd2hpbGUgKHBhcmVudCAhPT0gbnVsbCkge1xuICAgIGlmIChpc0hvc3RQYXJlbnQocGFyZW50KSkge1xuICAgICAgcmV0dXJuIHBhcmVudDtcbiAgICB9XG5cbiAgICBwYXJlbnQgPSBwYXJlbnQucmV0dXJuO1xuICB9XG5cbiAge1xuICAgIHtcbiAgICAgIHRocm93IEVycm9yKCBcIkV4cGVjdGVkIHRvIGZpbmQgYSBob3N0IHBhcmVudC4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIiApO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBpc0hvc3RQYXJlbnQoZmliZXIpIHtcbiAgcmV0dXJuIGZpYmVyLnRhZyA9PT0gSG9zdENvbXBvbmVudCB8fCBmaWJlci50YWcgPT09IEhvc3RSb290IHx8IGZpYmVyLnRhZyA9PT0gSG9zdFBvcnRhbDtcbn1cblxuZnVuY3Rpb24gZ2V0SG9zdFNpYmxpbmcoZmliZXIpIHtcbiAgLy8gV2UncmUgZ29pbmcgdG8gc2VhcmNoIGZvcndhcmQgaW50byB0aGUgdHJlZSB1bnRpbCB3ZSBmaW5kIGEgc2libGluZyBob3N0XG4gIC8vIG5vZGUuIFVuZm9ydHVuYXRlbHksIGlmIG11bHRpcGxlIGluc2VydGlvbnMgYXJlIGRvbmUgaW4gYSByb3cgd2UgaGF2ZSB0b1xuICAvLyBzZWFyY2ggcGFzdCB0aGVtLiBUaGlzIGxlYWRzIHRvIGV4cG9uZW50aWFsIHNlYXJjaCBmb3IgdGhlIG5leHQgc2libGluZy5cbiAgLy8gVE9ETzogRmluZCBhIG1vcmUgZWZmaWNpZW50IHdheSB0byBkbyB0aGlzLlxuICB2YXIgbm9kZSA9IGZpYmVyO1xuXG4gIHNpYmxpbmdzOiB3aGlsZSAodHJ1ZSkge1xuICAgIC8vIElmIHdlIGRpZG4ndCBmaW5kIGFueXRoaW5nLCBsZXQncyB0cnkgdGhlIG5leHQgc2libGluZy5cbiAgICB3aGlsZSAobm9kZS5zaWJsaW5nID09PSBudWxsKSB7XG4gICAgICBpZiAobm9kZS5yZXR1cm4gPT09IG51bGwgfHwgaXNIb3N0UGFyZW50KG5vZGUucmV0dXJuKSkge1xuICAgICAgICAvLyBJZiB3ZSBwb3Agb3V0IG9mIHRoZSByb290IG9yIGhpdCB0aGUgcGFyZW50IHRoZSBmaWJlciB3ZSBhcmUgdGhlXG4gICAgICAgIC8vIGxhc3Qgc2libGluZy5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIG5vZGUgPSBub2RlLnJldHVybjtcbiAgICB9XG5cbiAgICBub2RlLnNpYmxpbmcucmV0dXJuID0gbm9kZS5yZXR1cm47XG4gICAgbm9kZSA9IG5vZGUuc2libGluZztcblxuICAgIHdoaWxlIChub2RlLnRhZyAhPT0gSG9zdENvbXBvbmVudCAmJiBub2RlLnRhZyAhPT0gSG9zdFRleHQgJiYgbm9kZS50YWcgIT09IERlaHlkcmF0ZWRGcmFnbWVudCkge1xuICAgICAgLy8gSWYgaXQgaXMgbm90IGhvc3Qgbm9kZSBhbmQsIHdlIG1pZ2h0IGhhdmUgYSBob3N0IG5vZGUgaW5zaWRlIGl0LlxuICAgICAgLy8gVHJ5IHRvIHNlYXJjaCBkb3duIHVudGlsIHdlIGZpbmQgb25lLlxuICAgICAgaWYgKG5vZGUuZmxhZ3MgJiBQbGFjZW1lbnQpIHtcbiAgICAgICAgLy8gSWYgd2UgZG9uJ3QgaGF2ZSBhIGNoaWxkLCB0cnkgdGhlIHNpYmxpbmdzIGluc3RlYWQuXG4gICAgICAgIGNvbnRpbnVlIHNpYmxpbmdzO1xuICAgICAgfSAvLyBJZiB3ZSBkb24ndCBoYXZlIGEgY2hpbGQsIHRyeSB0aGUgc2libGluZ3MgaW5zdGVhZC5cbiAgICAgIC8vIFdlIGFsc28gc2tpcCBwb3J0YWxzIGJlY2F1c2UgdGhleSBhcmUgbm90IHBhcnQgb2YgdGhpcyBob3N0IHRyZWUuXG5cblxuICAgICAgaWYgKG5vZGUuY2hpbGQgPT09IG51bGwgfHwgbm9kZS50YWcgPT09IEhvc3RQb3J0YWwpIHtcbiAgICAgICAgY29udGludWUgc2libGluZ3M7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBub2RlLmNoaWxkLnJldHVybiA9IG5vZGU7XG4gICAgICAgIG5vZGUgPSBub2RlLmNoaWxkO1xuICAgICAgfVxuICAgIH0gLy8gQ2hlY2sgaWYgdGhpcyBob3N0IG5vZGUgaXMgc3RhYmxlIG9yIGFib3V0IHRvIGJlIHBsYWNlZC5cblxuXG4gICAgaWYgKCEobm9kZS5mbGFncyAmIFBsYWNlbWVudCkpIHtcbiAgICAgIC8vIEZvdW5kIGl0IVxuICAgICAgcmV0dXJuIG5vZGUuc3RhdGVOb2RlO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjb21taXRQbGFjZW1lbnQoZmluaXNoZWRXb3JrKSB7XG5cblxuICB2YXIgcGFyZW50RmliZXIgPSBnZXRIb3N0UGFyZW50RmliZXIoZmluaXNoZWRXb3JrKTsgLy8gTm90ZTogdGhlc2UgdHdvIHZhcmlhYmxlcyAqbXVzdCogYWx3YXlzIGJlIHVwZGF0ZWQgdG9nZXRoZXIuXG5cbiAgdmFyIHBhcmVudDtcbiAgdmFyIGlzQ29udGFpbmVyO1xuICB2YXIgcGFyZW50U3RhdGVOb2RlID0gcGFyZW50RmliZXIuc3RhdGVOb2RlO1xuXG4gIHN3aXRjaCAocGFyZW50RmliZXIudGFnKSB7XG4gICAgY2FzZSBIb3N0Q29tcG9uZW50OlxuICAgICAgcGFyZW50ID0gcGFyZW50U3RhdGVOb2RlO1xuICAgICAgaXNDb250YWluZXIgPSBmYWxzZTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBIb3N0Um9vdDpcbiAgICAgIHBhcmVudCA9IHBhcmVudFN0YXRlTm9kZS5jb250YWluZXJJbmZvO1xuICAgICAgaXNDb250YWluZXIgPSB0cnVlO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIEhvc3RQb3J0YWw6XG4gICAgICBwYXJlbnQgPSBwYXJlbnRTdGF0ZU5vZGUuY29udGFpbmVySW5mbztcbiAgICAgIGlzQ29udGFpbmVyID0gdHJ1ZTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBGdW5kYW1lbnRhbENvbXBvbmVudDpcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZS1uby1mYWxsdGhyb3VnaFxuXG4gICAgZGVmYXVsdDpcbiAgICAgIHtcbiAgICAgICAge1xuICAgICAgICAgIHRocm93IEVycm9yKCBcIkludmFsaWQgaG9zdCBwYXJlbnQgZmliZXIuIFRoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCIgKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gIH1cblxuICBpZiAocGFyZW50RmliZXIuZmxhZ3MgJiBDb250ZW50UmVzZXQpIHtcbiAgICAvLyBSZXNldCB0aGUgdGV4dCBjb250ZW50IG9mIHRoZSBwYXJlbnQgYmVmb3JlIGRvaW5nIGFueSBpbnNlcnRpb25zXG4gICAgcmVzZXRUZXh0Q29udGVudChwYXJlbnQpOyAvLyBDbGVhciBDb250ZW50UmVzZXQgZnJvbSB0aGUgZWZmZWN0IHRhZ1xuXG4gICAgcGFyZW50RmliZXIuZmxhZ3MgJj0gfkNvbnRlbnRSZXNldDtcbiAgfVxuXG4gIHZhciBiZWZvcmUgPSBnZXRIb3N0U2libGluZyhmaW5pc2hlZFdvcmspOyAvLyBXZSBvbmx5IGhhdmUgdGhlIHRvcCBGaWJlciB0aGF0IHdhcyBpbnNlcnRlZCBidXQgd2UgbmVlZCB0byByZWN1cnNlIGRvd24gaXRzXG4gIC8vIGNoaWxkcmVuIHRvIGZpbmQgYWxsIHRoZSB0ZXJtaW5hbCBub2Rlcy5cblxuICBpZiAoaXNDb250YWluZXIpIHtcbiAgICBpbnNlcnRPckFwcGVuZFBsYWNlbWVudE5vZGVJbnRvQ29udGFpbmVyKGZpbmlzaGVkV29yaywgYmVmb3JlLCBwYXJlbnQpO1xuICB9IGVsc2Uge1xuICAgIGluc2VydE9yQXBwZW5kUGxhY2VtZW50Tm9kZShmaW5pc2hlZFdvcmssIGJlZm9yZSwgcGFyZW50KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpbnNlcnRPckFwcGVuZFBsYWNlbWVudE5vZGVJbnRvQ29udGFpbmVyKG5vZGUsIGJlZm9yZSwgcGFyZW50KSB7XG4gIHZhciB0YWcgPSBub2RlLnRhZztcbiAgdmFyIGlzSG9zdCA9IHRhZyA9PT0gSG9zdENvbXBvbmVudCB8fCB0YWcgPT09IEhvc3RUZXh0O1xuXG4gIGlmIChpc0hvc3QgfHwgZW5hYmxlRnVuZGFtZW50YWxBUEkgKSB7XG4gICAgdmFyIHN0YXRlTm9kZSA9IGlzSG9zdCA/IG5vZGUuc3RhdGVOb2RlIDogbm9kZS5zdGF0ZU5vZGUuaW5zdGFuY2U7XG5cbiAgICBpZiAoYmVmb3JlKSB7XG4gICAgICBpbnNlcnRJbkNvbnRhaW5lckJlZm9yZShwYXJlbnQsIHN0YXRlTm9kZSwgYmVmb3JlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXBwZW5kQ2hpbGRUb0NvbnRhaW5lcihwYXJlbnQsIHN0YXRlTm9kZSk7XG4gICAgfVxuICB9IGVsc2UgaWYgKHRhZyA9PT0gSG9zdFBvcnRhbCkgOyBlbHNlIHtcbiAgICB2YXIgY2hpbGQgPSBub2RlLmNoaWxkO1xuXG4gICAgaWYgKGNoaWxkICE9PSBudWxsKSB7XG4gICAgICBpbnNlcnRPckFwcGVuZFBsYWNlbWVudE5vZGVJbnRvQ29udGFpbmVyKGNoaWxkLCBiZWZvcmUsIHBhcmVudCk7XG4gICAgICB2YXIgc2libGluZyA9IGNoaWxkLnNpYmxpbmc7XG5cbiAgICAgIHdoaWxlIChzaWJsaW5nICE9PSBudWxsKSB7XG4gICAgICAgIGluc2VydE9yQXBwZW5kUGxhY2VtZW50Tm9kZUludG9Db250YWluZXIoc2libGluZywgYmVmb3JlLCBwYXJlbnQpO1xuICAgICAgICBzaWJsaW5nID0gc2libGluZy5zaWJsaW5nO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBpbnNlcnRPckFwcGVuZFBsYWNlbWVudE5vZGUobm9kZSwgYmVmb3JlLCBwYXJlbnQpIHtcbiAgdmFyIHRhZyA9IG5vZGUudGFnO1xuICB2YXIgaXNIb3N0ID0gdGFnID09PSBIb3N0Q29tcG9uZW50IHx8IHRhZyA9PT0gSG9zdFRleHQ7XG5cbiAgaWYgKGlzSG9zdCB8fCBlbmFibGVGdW5kYW1lbnRhbEFQSSApIHtcbiAgICB2YXIgc3RhdGVOb2RlID0gaXNIb3N0ID8gbm9kZS5zdGF0ZU5vZGUgOiBub2RlLnN0YXRlTm9kZS5pbnN0YW5jZTtcblxuICAgIGlmIChiZWZvcmUpIHtcbiAgICAgIGluc2VydEJlZm9yZShwYXJlbnQsIHN0YXRlTm9kZSwgYmVmb3JlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXBwZW5kQ2hpbGQocGFyZW50LCBzdGF0ZU5vZGUpO1xuICAgIH1cbiAgfSBlbHNlIGlmICh0YWcgPT09IEhvc3RQb3J0YWwpIDsgZWxzZSB7XG4gICAgdmFyIGNoaWxkID0gbm9kZS5jaGlsZDtcblxuICAgIGlmIChjaGlsZCAhPT0gbnVsbCkge1xuICAgICAgaW5zZXJ0T3JBcHBlbmRQbGFjZW1lbnROb2RlKGNoaWxkLCBiZWZvcmUsIHBhcmVudCk7XG4gICAgICB2YXIgc2libGluZyA9IGNoaWxkLnNpYmxpbmc7XG5cbiAgICAgIHdoaWxlIChzaWJsaW5nICE9PSBudWxsKSB7XG4gICAgICAgIGluc2VydE9yQXBwZW5kUGxhY2VtZW50Tm9kZShzaWJsaW5nLCBiZWZvcmUsIHBhcmVudCk7XG4gICAgICAgIHNpYmxpbmcgPSBzaWJsaW5nLnNpYmxpbmc7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHVubW91bnRIb3N0Q29tcG9uZW50cyhmaW5pc2hlZFJvb3QsIGN1cnJlbnQsIHJlbmRlclByaW9yaXR5TGV2ZWwpIHtcbiAgLy8gV2Ugb25seSBoYXZlIHRoZSB0b3AgRmliZXIgdGhhdCB3YXMgZGVsZXRlZCBidXQgd2UgbmVlZCB0byByZWN1cnNlIGRvd24gaXRzXG4gIC8vIGNoaWxkcmVuIHRvIGZpbmQgYWxsIHRoZSB0ZXJtaW5hbCBub2Rlcy5cbiAgdmFyIG5vZGUgPSBjdXJyZW50OyAvLyBFYWNoIGl0ZXJhdGlvbiwgY3VycmVudFBhcmVudCBpcyBwb3B1bGF0ZWQgd2l0aCBub2RlJ3MgaG9zdCBwYXJlbnQgaWYgbm90XG4gIC8vIGN1cnJlbnRQYXJlbnRJc1ZhbGlkLlxuXG4gIHZhciBjdXJyZW50UGFyZW50SXNWYWxpZCA9IGZhbHNlOyAvLyBOb3RlOiB0aGVzZSB0d28gdmFyaWFibGVzICptdXN0KiBhbHdheXMgYmUgdXBkYXRlZCB0b2dldGhlci5cblxuICB2YXIgY3VycmVudFBhcmVudDtcbiAgdmFyIGN1cnJlbnRQYXJlbnRJc0NvbnRhaW5lcjtcblxuICB3aGlsZSAodHJ1ZSkge1xuICAgIGlmICghY3VycmVudFBhcmVudElzVmFsaWQpIHtcbiAgICAgIHZhciBwYXJlbnQgPSBub2RlLnJldHVybjtcblxuICAgICAgZmluZFBhcmVudDogd2hpbGUgKHRydWUpIHtcbiAgICAgICAgaWYgKCEocGFyZW50ICE9PSBudWxsKSkge1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRocm93IEVycm9yKCBcIkV4cGVjdGVkIHRvIGZpbmQgYSBob3N0IHBhcmVudC4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIiApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBwYXJlbnRTdGF0ZU5vZGUgPSBwYXJlbnQuc3RhdGVOb2RlO1xuXG4gICAgICAgIHN3aXRjaCAocGFyZW50LnRhZykge1xuICAgICAgICAgIGNhc2UgSG9zdENvbXBvbmVudDpcbiAgICAgICAgICAgIGN1cnJlbnRQYXJlbnQgPSBwYXJlbnRTdGF0ZU5vZGU7XG4gICAgICAgICAgICBjdXJyZW50UGFyZW50SXNDb250YWluZXIgPSBmYWxzZTtcbiAgICAgICAgICAgIGJyZWFrIGZpbmRQYXJlbnQ7XG5cbiAgICAgICAgICBjYXNlIEhvc3RSb290OlxuICAgICAgICAgICAgY3VycmVudFBhcmVudCA9IHBhcmVudFN0YXRlTm9kZS5jb250YWluZXJJbmZvO1xuICAgICAgICAgICAgY3VycmVudFBhcmVudElzQ29udGFpbmVyID0gdHJ1ZTtcbiAgICAgICAgICAgIGJyZWFrIGZpbmRQYXJlbnQ7XG5cbiAgICAgICAgICBjYXNlIEhvc3RQb3J0YWw6XG4gICAgICAgICAgICBjdXJyZW50UGFyZW50ID0gcGFyZW50U3RhdGVOb2RlLmNvbnRhaW5lckluZm87XG4gICAgICAgICAgICBjdXJyZW50UGFyZW50SXNDb250YWluZXIgPSB0cnVlO1xuICAgICAgICAgICAgYnJlYWsgZmluZFBhcmVudDtcblxuICAgICAgICB9XG5cbiAgICAgICAgcGFyZW50ID0gcGFyZW50LnJldHVybjtcbiAgICAgIH1cblxuICAgICAgY3VycmVudFBhcmVudElzVmFsaWQgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmIChub2RlLnRhZyA9PT0gSG9zdENvbXBvbmVudCB8fCBub2RlLnRhZyA9PT0gSG9zdFRleHQpIHtcbiAgICAgIGNvbW1pdE5lc3RlZFVubW91bnRzKGZpbmlzaGVkUm9vdCwgbm9kZSk7IC8vIEFmdGVyIGFsbCB0aGUgY2hpbGRyZW4gaGF2ZSB1bm1vdW50ZWQsIGl0IGlzIG5vdyBzYWZlIHRvIHJlbW92ZSB0aGVcbiAgICAgIC8vIG5vZGUgZnJvbSB0aGUgdHJlZS5cblxuICAgICAgaWYgKGN1cnJlbnRQYXJlbnRJc0NvbnRhaW5lcikge1xuICAgICAgICByZW1vdmVDaGlsZEZyb21Db250YWluZXIoY3VycmVudFBhcmVudCwgbm9kZS5zdGF0ZU5vZGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVtb3ZlQ2hpbGQoY3VycmVudFBhcmVudCwgbm9kZS5zdGF0ZU5vZGUpO1xuICAgICAgfSAvLyBEb24ndCB2aXNpdCBjaGlsZHJlbiBiZWNhdXNlIHdlIGFscmVhZHkgdmlzaXRlZCB0aGVtLlxuXG4gICAgfSBlbHNlIGlmIChub2RlLnRhZyA9PT0gSG9zdFBvcnRhbCkge1xuICAgICAgaWYgKG5vZGUuY2hpbGQgIT09IG51bGwpIHtcbiAgICAgICAgLy8gV2hlbiB3ZSBnbyBpbnRvIGEgcG9ydGFsLCBpdCBiZWNvbWVzIHRoZSBwYXJlbnQgdG8gcmVtb3ZlIGZyb20uXG4gICAgICAgIC8vIFdlIHdpbGwgcmVhc3NpZ24gaXQgYmFjayB3aGVuIHdlIHBvcCB0aGUgcG9ydGFsIG9uIHRoZSB3YXkgdXAuXG4gICAgICAgIGN1cnJlbnRQYXJlbnQgPSBub2RlLnN0YXRlTm9kZS5jb250YWluZXJJbmZvO1xuICAgICAgICBjdXJyZW50UGFyZW50SXNDb250YWluZXIgPSB0cnVlOyAvLyBWaXNpdCBjaGlsZHJlbiBiZWNhdXNlIHBvcnRhbHMgbWlnaHQgY29udGFpbiBob3N0IGNvbXBvbmVudHMuXG5cbiAgICAgICAgbm9kZS5jaGlsZC5yZXR1cm4gPSBub2RlO1xuICAgICAgICBub2RlID0gbm9kZS5jaGlsZDtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbW1pdFVubW91bnQoZmluaXNoZWRSb290LCBub2RlKTsgLy8gVmlzaXQgY2hpbGRyZW4gYmVjYXVzZSB3ZSBtYXkgZmluZCBtb3JlIGhvc3QgY29tcG9uZW50cyBiZWxvdy5cblxuICAgICAgaWYgKG5vZGUuY2hpbGQgIT09IG51bGwpIHtcbiAgICAgICAgbm9kZS5jaGlsZC5yZXR1cm4gPSBub2RlO1xuICAgICAgICBub2RlID0gbm9kZS5jaGlsZDtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG5vZGUgPT09IGN1cnJlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB3aGlsZSAobm9kZS5zaWJsaW5nID09PSBudWxsKSB7XG4gICAgICBpZiAobm9kZS5yZXR1cm4gPT09IG51bGwgfHwgbm9kZS5yZXR1cm4gPT09IGN1cnJlbnQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBub2RlID0gbm9kZS5yZXR1cm47XG5cbiAgICAgIGlmIChub2RlLnRhZyA9PT0gSG9zdFBvcnRhbCkge1xuICAgICAgICAvLyBXaGVuIHdlIGdvIG91dCBvZiB0aGUgcG9ydGFsLCB3ZSBuZWVkIHRvIHJlc3RvcmUgdGhlIHBhcmVudC5cbiAgICAgICAgLy8gU2luY2Ugd2UgZG9uJ3Qga2VlcCBhIHN0YWNrIG9mIHRoZW0sIHdlIHdpbGwgc2VhcmNoIGZvciBpdC5cbiAgICAgICAgY3VycmVudFBhcmVudElzVmFsaWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBub2RlLnNpYmxpbmcucmV0dXJuID0gbm9kZS5yZXR1cm47XG4gICAgbm9kZSA9IG5vZGUuc2libGluZztcbiAgfVxufVxuXG5mdW5jdGlvbiBjb21taXREZWxldGlvbihmaW5pc2hlZFJvb3QsIGN1cnJlbnQsIHJlbmRlclByaW9yaXR5TGV2ZWwpIHtcbiAge1xuICAgIC8vIFJlY3Vyc2l2ZWx5IGRlbGV0ZSBhbGwgaG9zdCBub2RlcyBmcm9tIHRoZSBwYXJlbnQuXG4gICAgLy8gRGV0YWNoIHJlZnMgYW5kIGNhbGwgY29tcG9uZW50V2lsbFVubW91bnQoKSBvbiB0aGUgd2hvbGUgc3VidHJlZS5cbiAgICB1bm1vdW50SG9zdENvbXBvbmVudHMoZmluaXNoZWRSb290LCBjdXJyZW50KTtcbiAgfVxuXG4gIHZhciBhbHRlcm5hdGUgPSBjdXJyZW50LmFsdGVybmF0ZTtcbiAgZGV0YWNoRmliZXJNdXRhdGlvbihjdXJyZW50KTtcblxuICBpZiAoYWx0ZXJuYXRlICE9PSBudWxsKSB7XG4gICAgZGV0YWNoRmliZXJNdXRhdGlvbihhbHRlcm5hdGUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNvbW1pdFdvcmsoY3VycmVudCwgZmluaXNoZWRXb3JrKSB7XG5cbiAgc3dpdGNoIChmaW5pc2hlZFdvcmsudGFnKSB7XG4gICAgY2FzZSBGdW5jdGlvbkNvbXBvbmVudDpcbiAgICBjYXNlIEZvcndhcmRSZWY6XG4gICAgY2FzZSBNZW1vQ29tcG9uZW50OlxuICAgIGNhc2UgU2ltcGxlTWVtb0NvbXBvbmVudDpcbiAgICBjYXNlIEJsb2NrOlxuICAgICAge1xuICAgICAgICAvLyBMYXlvdXQgZWZmZWN0cyBhcmUgZGVzdHJveWVkIGR1cmluZyB0aGUgbXV0YXRpb24gcGhhc2Ugc28gdGhhdCBhbGxcbiAgICAgICAgLy8gZGVzdHJveSBmdW5jdGlvbnMgZm9yIGFsbCBmaWJlcnMgYXJlIGNhbGxlZCBiZWZvcmUgYW55IGNyZWF0ZSBmdW5jdGlvbnMuXG4gICAgICAgIC8vIFRoaXMgcHJldmVudHMgc2libGluZyBjb21wb25lbnQgZWZmZWN0cyBmcm9tIGludGVyZmVyaW5nIHdpdGggZWFjaCBvdGhlcixcbiAgICAgICAgLy8gZS5nLiBhIGRlc3Ryb3kgZnVuY3Rpb24gaW4gb25lIGNvbXBvbmVudCBzaG91bGQgbmV2ZXIgb3ZlcnJpZGUgYSByZWYgc2V0XG4gICAgICAgIC8vIGJ5IGEgY3JlYXRlIGZ1bmN0aW9uIGluIGFub3RoZXIgY29tcG9uZW50IGR1cmluZyB0aGUgc2FtZSBjb21taXQuXG4gICAgICAgIHtcbiAgICAgICAgICBjb21taXRIb29rRWZmZWN0TGlzdFVubW91bnQoTGF5b3V0IHwgSGFzRWZmZWN0LCBmaW5pc2hlZFdvcmspO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgY2FzZSBDbGFzc0NvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgY2FzZSBIb3N0Q29tcG9uZW50OlxuICAgICAge1xuICAgICAgICB2YXIgaW5zdGFuY2UgPSBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlO1xuXG4gICAgICAgIGlmIChpbnN0YW5jZSAhPSBudWxsKSB7XG4gICAgICAgICAgLy8gQ29tbWl0IHRoZSB3b3JrIHByZXBhcmVkIGVhcmxpZXIuXG4gICAgICAgICAgdmFyIG5ld1Byb3BzID0gZmluaXNoZWRXb3JrLm1lbW9pemVkUHJvcHM7IC8vIEZvciBoeWRyYXRpb24gd2UgcmV1c2UgdGhlIHVwZGF0ZSBwYXRoIGJ1dCB3ZSB0cmVhdCB0aGUgb2xkUHJvcHNcbiAgICAgICAgICAvLyBhcyB0aGUgbmV3UHJvcHMuIFRoZSB1cGRhdGVQYXlsb2FkIHdpbGwgY29udGFpbiB0aGUgcmVhbCBjaGFuZ2UgaW5cbiAgICAgICAgICAvLyB0aGlzIGNhc2UuXG5cbiAgICAgICAgICB2YXIgb2xkUHJvcHMgPSBjdXJyZW50ICE9PSBudWxsID8gY3VycmVudC5tZW1vaXplZFByb3BzIDogbmV3UHJvcHM7XG4gICAgICAgICAgdmFyIHR5cGUgPSBmaW5pc2hlZFdvcmsudHlwZTsgLy8gVE9ETzogVHlwZSB0aGUgdXBkYXRlUXVldWUgdG8gYmUgc3BlY2lmaWMgdG8gaG9zdCBjb21wb25lbnRzLlxuXG4gICAgICAgICAgdmFyIHVwZGF0ZVBheWxvYWQgPSBmaW5pc2hlZFdvcmsudXBkYXRlUXVldWU7XG4gICAgICAgICAgZmluaXNoZWRXb3JrLnVwZGF0ZVF1ZXVlID0gbnVsbDtcblxuICAgICAgICAgIGlmICh1cGRhdGVQYXlsb2FkICE9PSBudWxsKSB7XG4gICAgICAgICAgICBjb21taXRVcGRhdGUoaW5zdGFuY2UsIHVwZGF0ZVBheWxvYWQsIHR5cGUsIG9sZFByb3BzLCBuZXdQcm9wcyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgY2FzZSBIb3N0VGV4dDpcbiAgICAgIHtcbiAgICAgICAgaWYgKCEoZmluaXNoZWRXb3JrLnN0YXRlTm9kZSAhPT0gbnVsbCkpIHtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvciggXCJUaGlzIHNob3VsZCBoYXZlIGEgdGV4dCBub2RlIGluaXRpYWxpemVkLiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLlwiICk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHRleHRJbnN0YW5jZSA9IGZpbmlzaGVkV29yay5zdGF0ZU5vZGU7XG4gICAgICAgIHZhciBuZXdUZXh0ID0gZmluaXNoZWRXb3JrLm1lbW9pemVkUHJvcHM7IC8vIEZvciBoeWRyYXRpb24gd2UgcmV1c2UgdGhlIHVwZGF0ZSBwYXRoIGJ1dCB3ZSB0cmVhdCB0aGUgb2xkUHJvcHNcbiAgICAgICAgLy8gYXMgdGhlIG5ld1Byb3BzLiBUaGUgdXBkYXRlUGF5bG9hZCB3aWxsIGNvbnRhaW4gdGhlIHJlYWwgY2hhbmdlIGluXG4gICAgICAgIC8vIHRoaXMgY2FzZS5cblxuICAgICAgICB2YXIgb2xkVGV4dCA9IGN1cnJlbnQgIT09IG51bGwgPyBjdXJyZW50Lm1lbW9pemVkUHJvcHMgOiBuZXdUZXh0O1xuICAgICAgICBjb21taXRUZXh0VXBkYXRlKHRleHRJbnN0YW5jZSwgb2xkVGV4dCwgbmV3VGV4dCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgIGNhc2UgSG9zdFJvb3Q6XG4gICAgICB7XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgX3Jvb3QgPSBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlO1xuXG4gICAgICAgICAgaWYgKF9yb290Lmh5ZHJhdGUpIHtcbiAgICAgICAgICAgIC8vIFdlJ3ZlIGp1c3QgaHlkcmF0ZWQuIE5vIG5lZWQgdG8gaHlkcmF0ZSBhZ2Fpbi5cbiAgICAgICAgICAgIF9yb290Lmh5ZHJhdGUgPSBmYWxzZTtcbiAgICAgICAgICAgIGNvbW1pdEh5ZHJhdGVkQ29udGFpbmVyKF9yb290LmNvbnRhaW5lckluZm8pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgIGNhc2UgUHJvZmlsZXI6XG4gICAgICB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgIGNhc2UgU3VzcGVuc2VDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIGNvbW1pdFN1c3BlbnNlQ29tcG9uZW50KGZpbmlzaGVkV29yayk7XG4gICAgICAgIGF0dGFjaFN1c3BlbnNlUmV0cnlMaXN0ZW5lcnMoZmluaXNoZWRXb3JrKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgY2FzZSBTdXNwZW5zZUxpc3RDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIGF0dGFjaFN1c3BlbnNlUmV0cnlMaXN0ZW5lcnMoZmluaXNoZWRXb3JrKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgY2FzZSBJbmNvbXBsZXRlQ2xhc3NDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgIGNhc2UgRnVuZGFtZW50YWxDb21wb25lbnQ6XG4gICAgICB7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICBjYXNlIFNjb3BlQ29tcG9uZW50OlxuICAgICAge1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgY2FzZSBPZmZzY3JlZW5Db21wb25lbnQ6XG4gICAgY2FzZSBMZWdhY3lIaWRkZW5Db21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHZhciBuZXdTdGF0ZSA9IGZpbmlzaGVkV29yay5tZW1vaXplZFN0YXRlO1xuICAgICAgICB2YXIgaXNIaWRkZW4gPSBuZXdTdGF0ZSAhPT0gbnVsbDtcbiAgICAgICAgaGlkZU9yVW5oaWRlQWxsQ2hpbGRyZW4oZmluaXNoZWRXb3JrLCBpc0hpZGRlbik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgfVxuXG4gIHtcbiAgICB7XG4gICAgICB0aHJvdyBFcnJvciggXCJUaGlzIHVuaXQgb2Ygd29yayB0YWcgc2hvdWxkIG5vdCBoYXZlIHNpZGUtZWZmZWN0cy4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIiApO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjb21taXRTdXNwZW5zZUNvbXBvbmVudChmaW5pc2hlZFdvcmspIHtcbiAgdmFyIG5ld1N0YXRlID0gZmluaXNoZWRXb3JrLm1lbW9pemVkU3RhdGU7XG5cbiAgaWYgKG5ld1N0YXRlICE9PSBudWxsKSB7XG4gICAgbWFya0NvbW1pdFRpbWVPZkZhbGxiYWNrKCk7XG5cbiAgICB7XG4gICAgICAvLyBIaWRlIHRoZSBPZmZzY3JlZW4gY29tcG9uZW50IHRoYXQgY29udGFpbnMgdGhlIHByaW1hcnkgY2hpbGRyZW4uIFRPRE86XG4gICAgICAvLyBJZGVhbGx5LCB0aGlzIGVmZmVjdCB3b3VsZCBoYXZlIGJlZW4gc2NoZWR1bGVkIG9uIHRoZSBPZmZzY3JlZW4gZmliZXJcbiAgICAgIC8vIGl0c2VsZi4gVGhhdCdzIGhvdyB1bmhpZGluZyB3b3JrczogdGhlIE9mZnNjcmVlbiBjb21wb25lbnQgc2NoZWR1bGVzIGFuXG4gICAgICAvLyBlZmZlY3Qgb24gaXRzZWxmLiBIb3dldmVyLCBpbiB0aGlzIGNhc2UsIHRoZSBjb21wb25lbnQgZGlkbid0IGNvbXBsZXRlLFxuICAgICAgLy8gc28gdGhlIGZpYmVyIHdhcyBuZXZlciBhZGRlZCB0byB0aGUgZWZmZWN0IGxpc3QgaW4gdGhlIG5vcm1hbCBwYXRoLiBXZVxuICAgICAgLy8gY291bGQgaGF2ZSBhcHBlbmRlZCBpdCB0byB0aGUgZWZmZWN0IGxpc3QgaW4gdGhlIFN1c3BlbnNlIGNvbXBvbmVudCdzXG4gICAgICAvLyBzZWNvbmQgcGFzcywgYnV0IGRvaW5nIGl0IHRoaXMgd2F5IGlzIGxlc3MgY29tcGxpY2F0ZWQuIFRoaXMgd291bGQgYmVcbiAgICAgIC8vIHNpbXBsZXIgaWYgd2UgZ290IHJpZCBvZiB0aGUgZWZmZWN0IGxpc3QgYW5kIHRyYXZlcnNlZCB0aGUgdHJlZSwgbGlrZVxuICAgICAgLy8gd2UncmUgcGxhbm5pbmcgdG8gZG8uXG4gICAgICB2YXIgcHJpbWFyeUNoaWxkUGFyZW50ID0gZmluaXNoZWRXb3JrLmNoaWxkO1xuICAgICAgaGlkZU9yVW5oaWRlQWxsQ2hpbGRyZW4ocHJpbWFyeUNoaWxkUGFyZW50LCB0cnVlKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gY29tbWl0U3VzcGVuc2VIeWRyYXRpb25DYWxsYmFja3MoZmluaXNoZWRSb290LCBmaW5pc2hlZFdvcmspIHtcblxuICB2YXIgbmV3U3RhdGUgPSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRTdGF0ZTtcblxuICBpZiAobmV3U3RhdGUgPT09IG51bGwpIHtcbiAgICB2YXIgY3VycmVudCA9IGZpbmlzaGVkV29yay5hbHRlcm5hdGU7XG5cbiAgICBpZiAoY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgdmFyIHByZXZTdGF0ZSA9IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZTtcblxuICAgICAgaWYgKHByZXZTdGF0ZSAhPT0gbnVsbCkge1xuICAgICAgICB2YXIgc3VzcGVuc2VJbnN0YW5jZSA9IHByZXZTdGF0ZS5kZWh5ZHJhdGVkO1xuXG4gICAgICAgIGlmIChzdXNwZW5zZUluc3RhbmNlICE9PSBudWxsKSB7XG4gICAgICAgICAgY29tbWl0SHlkcmF0ZWRTdXNwZW5zZUluc3RhbmNlKHN1c3BlbnNlSW5zdGFuY2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGF0dGFjaFN1c3BlbnNlUmV0cnlMaXN0ZW5lcnMoZmluaXNoZWRXb3JrKSB7XG4gIC8vIElmIHRoaXMgYm91bmRhcnkganVzdCB0aW1lZCBvdXQsIHRoZW4gaXQgd2lsbCBoYXZlIGEgc2V0IG9mIHdha2VhYmxlcy5cbiAgLy8gRm9yIGVhY2ggd2FrZWFibGUsIGF0dGFjaCBhIGxpc3RlbmVyIHNvIHRoYXQgd2hlbiBpdCByZXNvbHZlcywgUmVhY3RcbiAgLy8gYXR0ZW1wdHMgdG8gcmUtcmVuZGVyIHRoZSBib3VuZGFyeSBpbiB0aGUgcHJpbWFyeSAocHJlLXRpbWVvdXQpIHN0YXRlLlxuICB2YXIgd2FrZWFibGVzID0gZmluaXNoZWRXb3JrLnVwZGF0ZVF1ZXVlO1xuXG4gIGlmICh3YWtlYWJsZXMgIT09IG51bGwpIHtcbiAgICBmaW5pc2hlZFdvcmsudXBkYXRlUXVldWUgPSBudWxsO1xuICAgIHZhciByZXRyeUNhY2hlID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZTtcblxuICAgIGlmIChyZXRyeUNhY2hlID09PSBudWxsKSB7XG4gICAgICByZXRyeUNhY2hlID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZSA9IG5ldyBQb3NzaWJseVdlYWtTZXQoKTtcbiAgICB9XG5cbiAgICB3YWtlYWJsZXMuZm9yRWFjaChmdW5jdGlvbiAod2FrZWFibGUpIHtcbiAgICAgIC8vIE1lbW9pemUgdXNpbmcgdGhlIGJvdW5kYXJ5IGZpYmVyIHRvIHByZXZlbnQgcmVkdW5kYW50IGxpc3RlbmVycy5cbiAgICAgIHZhciByZXRyeSA9IHJlc29sdmVSZXRyeVdha2VhYmxlLmJpbmQobnVsbCwgZmluaXNoZWRXb3JrLCB3YWtlYWJsZSk7XG5cbiAgICAgIGlmICghcmV0cnlDYWNoZS5oYXMod2FrZWFibGUpKSB7XG4gICAgICAgIHtcbiAgICAgICAgICBpZiAod2FrZWFibGUuX19yZWFjdERvTm90VHJhY2VJbnRlcmFjdGlvbnMgIT09IHRydWUpIHtcbiAgICAgICAgICAgIHJldHJ5ID0gdHJhY2luZy51bnN0YWJsZV93cmFwKHJldHJ5KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXRyeUNhY2hlLmFkZCh3YWtlYWJsZSk7XG4gICAgICAgIHdha2VhYmxlLnRoZW4ocmV0cnksIHJldHJ5KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufSAvLyBUaGlzIGZ1bmN0aW9uIGRldGVjdHMgd2hlbiBhIFN1c3BlbnNlIGJvdW5kYXJ5IGdvZXMgZnJvbSB2aXNpYmxlIHRvIGhpZGRlbi5cbi8vIEl0IHJldHVybnMgZmFsc2UgaWYgdGhlIGJvdW5kYXJ5IGlzIGFscmVhZHkgaGlkZGVuLlxuLy8gVE9ETzogVXNlIGFuIGVmZmVjdCB0YWcuXG5cblxuZnVuY3Rpb24gaXNTdXNwZW5zZUJvdW5kYXJ5QmVpbmdIaWRkZW4oY3VycmVudCwgZmluaXNoZWRXb3JrKSB7XG4gIGlmIChjdXJyZW50ICE9PSBudWxsKSB7XG4gICAgdmFyIG9sZFN0YXRlID0gY3VycmVudC5tZW1vaXplZFN0YXRlO1xuXG4gICAgaWYgKG9sZFN0YXRlID09PSBudWxsIHx8IG9sZFN0YXRlLmRlaHlkcmF0ZWQgIT09IG51bGwpIHtcbiAgICAgIHZhciBuZXdTdGF0ZSA9IGZpbmlzaGVkV29yay5tZW1vaXplZFN0YXRlO1xuICAgICAgcmV0dXJuIG5ld1N0YXRlICE9PSBudWxsICYmIG5ld1N0YXRlLmRlaHlkcmF0ZWQgPT09IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBjb21taXRSZXNldFRleHRDb250ZW50KGN1cnJlbnQpIHtcblxuICByZXNldFRleHRDb250ZW50KGN1cnJlbnQuc3RhdGVOb2RlKTtcbn1cblxudmFyIENPTVBPTkVOVF9UWVBFID0gMDtcbnZhciBIQVNfUFNFVURPX0NMQVNTX1RZUEUgPSAxO1xudmFyIFJPTEVfVFlQRSA9IDI7XG52YXIgVEVTVF9OQU1FX1RZUEUgPSAzO1xudmFyIFRFWFRfVFlQRSA9IDQ7XG5cbmlmICh0eXBlb2YgU3ltYm9sID09PSAnZnVuY3Rpb24nICYmIFN5bWJvbC5mb3IpIHtcbiAgdmFyIHN5bWJvbEZvciQxID0gU3ltYm9sLmZvcjtcbiAgQ09NUE9ORU5UX1RZUEUgPSBzeW1ib2xGb3IkMSgnc2VsZWN0b3IuY29tcG9uZW50Jyk7XG4gIEhBU19QU0VVRE9fQ0xBU1NfVFlQRSA9IHN5bWJvbEZvciQxKCdzZWxlY3Rvci5oYXNfcHNldWRvX2NsYXNzJyk7XG4gIFJPTEVfVFlQRSA9IHN5bWJvbEZvciQxKCdzZWxlY3Rvci5yb2xlJyk7XG4gIFRFU1RfTkFNRV9UWVBFID0gc3ltYm9sRm9yJDEoJ3NlbGVjdG9yLnRlc3RfaWQnKTtcbiAgVEVYVF9UWVBFID0gc3ltYm9sRm9yJDEoJ3NlbGVjdG9yLnRleHQnKTtcbn1cbnZhciBjb21taXRIb29rcyA9IFtdO1xuZnVuY3Rpb24gb25Db21taXRSb290JDEoKSB7XG4gIHtcbiAgICBjb21taXRIb29rcy5mb3JFYWNoKGZ1bmN0aW9uIChjb21taXRIb29rKSB7XG4gICAgICByZXR1cm4gY29tbWl0SG9vaygpO1xuICAgIH0pO1xuICB9XG59XG5cbnZhciBjZWlsID0gTWF0aC5jZWlsO1xudmFyIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMiA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0Q3VycmVudERpc3BhdGNoZXIsXG4gICAgUmVhY3RDdXJyZW50T3duZXIkMiA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0Q3VycmVudE93bmVyLFxuICAgIElzU29tZVJlbmRlcmVyQWN0aW5nID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuSXNTb21lUmVuZGVyZXJBY3Rpbmc7XG52YXIgTm9Db250ZXh0ID1cbi8qICAgICAgICAgICAgICovXG4wO1xudmFyIEJhdGNoZWRDb250ZXh0ID1cbi8qICAgICAgICAgICAgICAgKi9cbjE7XG52YXIgRXZlbnRDb250ZXh0ID1cbi8qICAgICAgICAgICAgICAgICAqL1xuMjtcbnZhciBEaXNjcmV0ZUV2ZW50Q29udGV4dCA9XG4vKiAgICAgICAgICovXG40O1xudmFyIExlZ2FjeVVuYmF0Y2hlZENvbnRleHQgPVxuLyogICAgICAgKi9cbjg7XG52YXIgUmVuZGVyQ29udGV4dCA9XG4vKiAgICAgICAgICAgICAgICAqL1xuMTY7XG52YXIgQ29tbWl0Q29udGV4dCA9XG4vKiAgICAgICAgICAgICAgICAqL1xuMzI7XG52YXIgUmV0cnlBZnRlckVycm9yID1cbi8qICAgICAgICovXG42NDtcbnZhciBSb290SW5jb21wbGV0ZSA9IDA7XG52YXIgUm9vdEZhdGFsRXJyb3JlZCA9IDE7XG52YXIgUm9vdEVycm9yZWQgPSAyO1xudmFyIFJvb3RTdXNwZW5kZWQgPSAzO1xudmFyIFJvb3RTdXNwZW5kZWRXaXRoRGVsYXkgPSA0O1xudmFyIFJvb3RDb21wbGV0ZWQgPSA1OyAvLyBEZXNjcmliZXMgd2hlcmUgd2UgYXJlIGluIHRoZSBSZWFjdCBleGVjdXRpb24gc3RhY2tcblxudmFyIGV4ZWN1dGlvbkNvbnRleHQgPSBOb0NvbnRleHQ7IC8vIFRoZSByb290IHdlJ3JlIHdvcmtpbmcgb25cblxudmFyIHdvcmtJblByb2dyZXNzUm9vdCA9IG51bGw7IC8vIFRoZSBmaWJlciB3ZSdyZSB3b3JraW5nIG9uXG5cbnZhciB3b3JrSW5Qcm9ncmVzcyA9IG51bGw7IC8vIFRoZSBsYW5lcyB3ZSdyZSByZW5kZXJpbmdcblxudmFyIHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzID0gTm9MYW5lczsgLy8gU3RhY2sgdGhhdCBhbGxvd3MgY29tcG9uZW50cyB0byBjaGFuZ2UgdGhlIHJlbmRlciBsYW5lcyBmb3IgaXRzIHN1YnRyZWVcbi8vIFRoaXMgaXMgYSBzdXBlcnNldCBvZiB0aGUgbGFuZXMgd2Ugc3RhcnRlZCB3b3JraW5nIG9uIGF0IHRoZSByb290LiBUaGUgb25seVxuLy8gY2FzZSB3aGVyZSBpdCdzIGRpZmZlcmVudCBmcm9tIGB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lc2AgaXMgd2hlbiB3ZVxuLy8gZW50ZXIgYSBzdWJ0cmVlIHRoYXQgaXMgaGlkZGVuIGFuZCBuZWVkcyB0byBiZSB1bmhpZGRlbjogU3VzcGVuc2UgYW5kXG4vLyBPZmZzY3JlZW4gY29tcG9uZW50LlxuLy9cbi8vIE1vc3QgdGhpbmdzIGluIHRoZSB3b3JrIGxvb3Agc2hvdWxkIGRlYWwgd2l0aCB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcy5cbi8vIE1vc3QgdGhpbmdzIGluIGJlZ2luL2NvbXBsZXRlIHBoYXNlcyBzaG91bGQgZGVhbCB3aXRoIHN1YnRyZWVSZW5kZXJMYW5lcy5cblxudmFyIHN1YnRyZWVSZW5kZXJMYW5lcyA9IE5vTGFuZXM7XG52YXIgc3VidHJlZVJlbmRlckxhbmVzQ3Vyc29yID0gY3JlYXRlQ3Vyc29yKE5vTGFuZXMpOyAvLyBXaGV0aGVyIHRvIHJvb3QgY29tcGxldGVkLCBlcnJvcmVkLCBzdXNwZW5kZWQsIGV0Yy5cblxudmFyIHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgPSBSb290SW5jb21wbGV0ZTsgLy8gQSBmYXRhbCBlcnJvciwgaWYgb25lIGlzIHRocm93blxuXG52YXIgd29ya0luUHJvZ3Jlc3NSb290RmF0YWxFcnJvciA9IG51bGw7IC8vIFwiSW5jbHVkZWRcIiBsYW5lcyByZWZlciB0byBsYW5lcyB0aGF0IHdlcmUgd29ya2VkIG9uIGR1cmluZyB0aGlzIHJlbmRlci4gSXQnc1xuLy8gc2xpZ2h0bHkgZGlmZmVyZW50IHRoYW4gYHJlbmRlckxhbmVzYCBiZWNhdXNlIGByZW5kZXJMYW5lc2AgY2FuIGNoYW5nZSBhcyB5b3Vcbi8vIGVudGVyIGFuZCBleGl0IGFuIE9mZnNjcmVlbiB0cmVlLiBUaGlzIHZhbHVlIGlzIHRoZSBjb21iaW5hdGlvbiBvZiBhbGwgcmVuZGVyXG4vLyBsYW5lcyBmb3IgdGhlIGVudGlyZSByZW5kZXIgcGhhc2UuXG5cbnZhciB3b3JrSW5Qcm9ncmVzc1Jvb3RJbmNsdWRlZExhbmVzID0gTm9MYW5lczsgLy8gVGhlIHdvcmsgbGVmdCBvdmVyIGJ5IGNvbXBvbmVudHMgdGhhdCB3ZXJlIHZpc2l0ZWQgZHVyaW5nIHRoaXMgcmVuZGVyLiBPbmx5XG4vLyBpbmNsdWRlcyB1bnByb2Nlc3NlZCB1cGRhdGVzLCBub3Qgd29yayBpbiBiYWlsZWQgb3V0IGNoaWxkcmVuLlxuXG52YXIgd29ya0luUHJvZ3Jlc3NSb290U2tpcHBlZExhbmVzID0gTm9MYW5lczsgLy8gTGFuZXMgdGhhdCB3ZXJlIHVwZGF0ZWQgKGluIGFuIGludGVybGVhdmVkIGV2ZW50KSBkdXJpbmcgdGhpcyByZW5kZXIuXG5cbnZhciB3b3JrSW5Qcm9ncmVzc1Jvb3RVcGRhdGVkTGFuZXMgPSBOb0xhbmVzOyAvLyBMYW5lcyB0aGF0IHdlcmUgcGluZ2VkIChpbiBhbiBpbnRlcmxlYXZlZCBldmVudCkgZHVyaW5nIHRoaXMgcmVuZGVyLlxuXG52YXIgd29ya0luUHJvZ3Jlc3NSb290UGluZ2VkTGFuZXMgPSBOb0xhbmVzO1xudmFyIG1vc3RSZWNlbnRseVVwZGF0ZWRSb290ID0gbnVsbDsgLy8gVGhlIG1vc3QgcmVjZW50IHRpbWUgd2UgY29tbWl0dGVkIGEgZmFsbGJhY2suIFRoaXMgbGV0cyB1cyBlbnN1cmUgYSB0cmFpblxuLy8gbW9kZWwgd2hlcmUgd2UgZG9uJ3QgY29tbWl0IG5ldyBsb2FkaW5nIHN0YXRlcyBpbiB0b28gcXVpY2sgc3VjY2Vzc2lvbi5cblxudmFyIGdsb2JhbE1vc3RSZWNlbnRGYWxsYmFja1RpbWUgPSAwO1xudmFyIEZBTExCQUNLX1RIUk9UVExFX01TID0gNTAwOyAvLyBUaGUgYWJzb2x1dGUgdGltZSBmb3Igd2hlbiB3ZSBzaG91bGQgc3RhcnQgZ2l2aW5nIHVwIG9uIHJlbmRlcmluZ1xuLy8gbW9yZSBhbmQgcHJlZmVyIENQVSBzdXNwZW5zZSBoZXVyaXN0aWNzIGluc3RlYWQuXG5cbnZhciB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJUYXJnZXRUaW1lID0gSW5maW5pdHk7IC8vIEhvdyBsb25nIGEgcmVuZGVyIGlzIHN1cHBvc2VkIHRvIHRha2UgYmVmb3JlIHdlIHN0YXJ0IGZvbGxvd2luZyBDUFVcbi8vIHN1c3BlbnNlIGhldXJpc3RpY3MgYW5kIG9wdCBvdXQgb2YgcmVuZGVyaW5nIG1vcmUgY29udGVudC5cblxudmFyIFJFTkRFUl9USU1FT1VUX01TID0gNTAwO1xuXG5mdW5jdGlvbiByZXNldFJlbmRlclRpbWVyKCkge1xuICB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJUYXJnZXRUaW1lID0gbm93KCkgKyBSRU5ERVJfVElNRU9VVF9NUztcbn1cblxuZnVuY3Rpb24gZ2V0UmVuZGVyVGFyZ2V0VGltZSgpIHtcbiAgcmV0dXJuIHdvcmtJblByb2dyZXNzUm9vdFJlbmRlclRhcmdldFRpbWU7XG59XG52YXIgbmV4dEVmZmVjdCA9IG51bGw7XG52YXIgaGFzVW5jYXVnaHRFcnJvciA9IGZhbHNlO1xudmFyIGZpcnN0VW5jYXVnaHRFcnJvciA9IG51bGw7XG52YXIgbGVnYWN5RXJyb3JCb3VuZGFyaWVzVGhhdEFscmVhZHlGYWlsZWQgPSBudWxsO1xudmFyIHJvb3REb2VzSGF2ZVBhc3NpdmVFZmZlY3RzID0gZmFsc2U7XG52YXIgcm9vdFdpdGhQZW5kaW5nUGFzc2l2ZUVmZmVjdHMgPSBudWxsO1xudmFyIHBlbmRpbmdQYXNzaXZlRWZmZWN0c1JlbmRlclByaW9yaXR5ID0gTm9Qcmlvcml0eSQxO1xudmFyIHBlbmRpbmdQYXNzaXZlRWZmZWN0c0xhbmVzID0gTm9MYW5lcztcbnZhciBwZW5kaW5nUGFzc2l2ZUhvb2tFZmZlY3RzTW91bnQgPSBbXTtcbnZhciBwZW5kaW5nUGFzc2l2ZUhvb2tFZmZlY3RzVW5tb3VudCA9IFtdO1xudmFyIHJvb3RzV2l0aFBlbmRpbmdEaXNjcmV0ZVVwZGF0ZXMgPSBudWxsOyAvLyBVc2UgdGhlc2UgdG8gcHJldmVudCBhbiBpbmZpbml0ZSBsb29wIG9mIG5lc3RlZCB1cGRhdGVzXG5cbnZhciBORVNURURfVVBEQVRFX0xJTUlUID0gNTA7XG52YXIgbmVzdGVkVXBkYXRlQ291bnQgPSAwO1xudmFyIHJvb3RXaXRoTmVzdGVkVXBkYXRlcyA9IG51bGw7XG52YXIgTkVTVEVEX1BBU1NJVkVfVVBEQVRFX0xJTUlUID0gNTA7XG52YXIgbmVzdGVkUGFzc2l2ZVVwZGF0ZUNvdW50ID0gMDsgLy8gTWFya3MgdGhlIG5lZWQgdG8gcmVzY2hlZHVsZSBwZW5kaW5nIGludGVyYWN0aW9ucyBhdCB0aGVzZSBsYW5lc1xuLy8gZHVyaW5nIHRoZSBjb21taXQgcGhhc2UuIFRoaXMgZW5hYmxlcyB0aGVtIHRvIGJlIHRyYWNlZCBhY3Jvc3MgY29tcG9uZW50c1xuLy8gdGhhdCBzcGF3biBuZXcgd29yayBkdXJpbmcgcmVuZGVyLiBFLmcuIGhpZGRlbiBib3VuZGFyaWVzLCBzdXNwZW5kZWQgU1NSXG4vLyBoeWRyYXRpb24gb3IgU3VzcGVuc2VMaXN0LlxuLy8gVE9ETzogQ2FuIHVzZSBhIGJpdG1hc2sgaW5zdGVhZCBvZiBhbiBhcnJheVxuXG52YXIgc3Bhd25lZFdvcmtEdXJpbmdSZW5kZXIgPSBudWxsOyAvLyBJZiB0d28gdXBkYXRlcyBhcmUgc2NoZWR1bGVkIHdpdGhpbiB0aGUgc2FtZSBldmVudCwgd2Ugc2hvdWxkIHRyZWF0IHRoZWlyXG4vLyBldmVudCB0aW1lcyBhcyBzaW11bHRhbmVvdXMsIGV2ZW4gaWYgdGhlIGFjdHVhbCBjbG9jayB0aW1lIGhhcyBhZHZhbmNlZFxuLy8gYmV0d2VlbiB0aGUgZmlyc3QgYW5kIHNlY29uZCBjYWxsLlxuXG52YXIgY3VycmVudEV2ZW50VGltZSA9IE5vVGltZXN0YW1wO1xudmFyIGN1cnJlbnRFdmVudFdpcExhbmVzID0gTm9MYW5lcztcbnZhciBjdXJyZW50RXZlbnRQZW5kaW5nTGFuZXMgPSBOb0xhbmVzOyAvLyBEZXYgb25seSBmbGFnIHRoYXQgdHJhY2tzIGlmIHBhc3NpdmUgZWZmZWN0cyBhcmUgY3VycmVudGx5IGJlaW5nIGZsdXNoZWQuXG4vLyBXZSB3YXJuIGFib3V0IHN0YXRlIHVwZGF0ZXMgZm9yIHVubW91bnRlZCBjb21wb25lbnRzIGRpZmZlcmVudGx5IGluIHRoaXMgY2FzZS5cblxudmFyIGlzRmx1c2hpbmdQYXNzaXZlRWZmZWN0cyA9IGZhbHNlO1xudmFyIGZvY3VzZWRJbnN0YW5jZUhhbmRsZSA9IG51bGw7XG52YXIgc2hvdWxkRmlyZUFmdGVyQWN0aXZlSW5zdGFuY2VCbHVyID0gZmFsc2U7XG5mdW5jdGlvbiBnZXRXb3JrSW5Qcm9ncmVzc1Jvb3QoKSB7XG4gIHJldHVybiB3b3JrSW5Qcm9ncmVzc1Jvb3Q7XG59XG5mdW5jdGlvbiByZXF1ZXN0RXZlbnRUaW1lKCkge1xuICBpZiAoKGV4ZWN1dGlvbkNvbnRleHQgJiAoUmVuZGVyQ29udGV4dCB8IENvbW1pdENvbnRleHQpKSAhPT0gTm9Db250ZXh0KSB7XG4gICAgLy8gV2UncmUgaW5zaWRlIFJlYWN0LCBzbyBpdCdzIGZpbmUgdG8gcmVhZCB0aGUgYWN0dWFsIHRpbWUuXG4gICAgcmV0dXJuIG5vdygpO1xuICB9IC8vIFdlJ3JlIG5vdCBpbnNpZGUgUmVhY3QsIHNvIHdlIG1heSBiZSBpbiB0aGUgbWlkZGxlIG9mIGEgYnJvd3NlciBldmVudC5cblxuXG4gIGlmIChjdXJyZW50RXZlbnRUaW1lICE9PSBOb1RpbWVzdGFtcCkge1xuICAgIC8vIFVzZSB0aGUgc2FtZSBzdGFydCB0aW1lIGZvciBhbGwgdXBkYXRlcyB1bnRpbCB3ZSBlbnRlciBSZWFjdCBhZ2Fpbi5cbiAgICByZXR1cm4gY3VycmVudEV2ZW50VGltZTtcbiAgfSAvLyBUaGlzIGlzIHRoZSBmaXJzdCB1cGRhdGUgc2luY2UgUmVhY3QgeWllbGRlZC4gQ29tcHV0ZSBhIG5ldyBzdGFydCB0aW1lLlxuXG5cbiAgY3VycmVudEV2ZW50VGltZSA9IG5vdygpO1xuICByZXR1cm4gY3VycmVudEV2ZW50VGltZTtcbn1cbmZ1bmN0aW9uIHJlcXVlc3RVcGRhdGVMYW5lKGZpYmVyKSB7XG4gIC8vIFNwZWNpYWwgY2FzZXNcbiAgdmFyIG1vZGUgPSBmaWJlci5tb2RlO1xuXG4gIGlmICgobW9kZSAmIEJsb2NraW5nTW9kZSkgPT09IE5vTW9kZSkge1xuICAgIHJldHVybiBTeW5jTGFuZTtcbiAgfSBlbHNlIGlmICgobW9kZSAmIENvbmN1cnJlbnRNb2RlKSA9PT0gTm9Nb2RlKSB7XG4gICAgcmV0dXJuIGdldEN1cnJlbnRQcmlvcml0eUxldmVsKCkgPT09IEltbWVkaWF0ZVByaW9yaXR5JDEgPyBTeW5jTGFuZSA6IFN5bmNCYXRjaGVkTGFuZTtcbiAgfSAvLyBUaGUgYWxnb3JpdGhtIGZvciBhc3NpZ25pbmcgYW4gdXBkYXRlIHRvIGEgbGFuZSBzaG91bGQgYmUgc3RhYmxlIGZvciBhbGxcbiAgLy8gdXBkYXRlcyBhdCB0aGUgc2FtZSBwcmlvcml0eSB3aXRoaW4gdGhlIHNhbWUgZXZlbnQuIFRvIGRvIHRoaXMsIHRoZSBpbnB1dHNcbiAgLy8gdG8gdGhlIGFsZ29yaXRobSBtdXN0IGJlIHRoZSBzYW1lLiBGb3IgZXhhbXBsZSwgd2UgdXNlIHRoZSBgcmVuZGVyTGFuZXNgXG4gIC8vIHRvIGF2b2lkIGNob29zaW5nIGEgbGFuZSB0aGF0IGlzIGFscmVhZHkgaW4gdGhlIG1pZGRsZSBvZiByZW5kZXJpbmcuXG4gIC8vXG4gIC8vIEhvd2V2ZXIsIHRoZSBcImluY2x1ZGVkXCIgbGFuZXMgY291bGQgYmUgbXV0YXRlZCBpbiBiZXR3ZWVuIHVwZGF0ZXMgaW4gdGhlXG4gIC8vIHNhbWUgZXZlbnQsIGxpa2UgaWYgeW91IHBlcmZvcm0gYW4gdXBkYXRlIGluc2lkZSBgZmx1c2hTeW5jYC4gT3IgYW55IG90aGVyXG4gIC8vIGNvZGUgcGF0aCB0aGF0IG1pZ2h0IGNhbGwgYHByZXBhcmVGcmVzaFN0YWNrYC5cbiAgLy9cbiAgLy8gVGhlIHRyaWNrIHdlIHVzZSBpcyB0byBjYWNoZSB0aGUgZmlyc3Qgb2YgZWFjaCBvZiB0aGVzZSBpbnB1dHMgd2l0aGluIGFuXG4gIC8vIGV2ZW50LiBUaGVuIHJlc2V0IHRoZSBjYWNoZWQgdmFsdWVzIG9uY2Ugd2UgY2FuIGJlIHN1cmUgdGhlIGV2ZW50IGlzIG92ZXIuXG4gIC8vIE91ciBoZXVyaXN0aWMgZm9yIHRoYXQgaXMgd2hlbmV2ZXIgd2UgZW50ZXIgYSBjb25jdXJyZW50IHdvcmsgbG9vcC5cbiAgLy9cbiAgLy8gV2UnbGwgZG8gdGhlIHNhbWUgZm9yIGBjdXJyZW50RXZlbnRQZW5kaW5nTGFuZXNgIGJlbG93LlxuXG5cbiAgaWYgKGN1cnJlbnRFdmVudFdpcExhbmVzID09PSBOb0xhbmVzKSB7XG4gICAgY3VycmVudEV2ZW50V2lwTGFuZXMgPSB3b3JrSW5Qcm9ncmVzc1Jvb3RJbmNsdWRlZExhbmVzO1xuICB9XG5cbiAgdmFyIGlzVHJhbnNpdGlvbiA9IHJlcXVlc3RDdXJyZW50VHJhbnNpdGlvbigpICE9PSBOb1RyYW5zaXRpb247XG5cbiAgaWYgKGlzVHJhbnNpdGlvbikge1xuICAgIGlmIChjdXJyZW50RXZlbnRQZW5kaW5nTGFuZXMgIT09IE5vTGFuZXMpIHtcbiAgICAgIGN1cnJlbnRFdmVudFBlbmRpbmdMYW5lcyA9IG1vc3RSZWNlbnRseVVwZGF0ZWRSb290ICE9PSBudWxsID8gbW9zdFJlY2VudGx5VXBkYXRlZFJvb3QucGVuZGluZ0xhbmVzIDogTm9MYW5lcztcbiAgICB9XG5cbiAgICByZXR1cm4gZmluZFRyYW5zaXRpb25MYW5lKGN1cnJlbnRFdmVudFdpcExhbmVzLCBjdXJyZW50RXZlbnRQZW5kaW5nTGFuZXMpO1xuICB9IC8vIFRPRE86IFJlbW92ZSB0aGlzIGRlcGVuZGVuY3kgb24gdGhlIFNjaGVkdWxlciBwcmlvcml0eS5cbiAgLy8gVG8gZG8gdGhhdCwgd2UncmUgcmVwbGFjaW5nIGl0IHdpdGggYW4gdXBkYXRlIGxhbmUgcHJpb3JpdHkuXG5cblxuICB2YXIgc2NoZWR1bGVyUHJpb3JpdHkgPSBnZXRDdXJyZW50UHJpb3JpdHlMZXZlbCgpOyAvLyBUaGUgb2xkIGJlaGF2aW9yIHdhcyB1c2luZyB0aGUgcHJpb3JpdHkgbGV2ZWwgb2YgdGhlIFNjaGVkdWxlci5cbiAgLy8gVGhpcyBjb3VwbGVzIFJlYWN0IHRvIHRoZSBTY2hlZHVsZXIgaW50ZXJuYWxzLCBzbyB3ZSdyZSByZXBsYWNpbmcgaXRcbiAgLy8gd2l0aCB0aGUgY3VycmVudFVwZGF0ZUxhbmVQcmlvcml0eSBhYm92ZS4gQXMgYW4gZXhhbXBsZSBvZiBob3cgdGhpc1xuICAvLyBjb3VsZCBiZSBwcm9ibGVtYXRpYywgaWYgd2UncmUgbm90IGluc2lkZSBgU2NoZWR1bGVyLnJ1bldpdGhQcmlvcml0eWAsXG4gIC8vIHRoZW4gd2UnbGwgZ2V0IHRoZSBwcmlvcml0eSBvZiB0aGUgY3VycmVudCBydW5uaW5nIFNjaGVkdWxlciB0YXNrLFxuICAvLyB3aGljaCBpcyBwcm9iYWJseSBub3Qgd2hhdCB3ZSB3YW50LlxuXG4gIHZhciBsYW5lO1xuXG4gIGlmICggLy8gVE9ETzogVGVtcG9yYXJ5LiBXZSdyZSByZW1vdmluZyB0aGUgY29uY2VwdCBvZiBkaXNjcmV0ZSB1cGRhdGVzLlxuICAoZXhlY3V0aW9uQ29udGV4dCAmIERpc2NyZXRlRXZlbnRDb250ZXh0KSAhPT0gTm9Db250ZXh0ICYmIHNjaGVkdWxlclByaW9yaXR5ID09PSBVc2VyQmxvY2tpbmdQcmlvcml0eSQyKSB7XG4gICAgbGFuZSA9IGZpbmRVcGRhdGVMYW5lKElucHV0RGlzY3JldGVMYW5lUHJpb3JpdHksIGN1cnJlbnRFdmVudFdpcExhbmVzKTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgc2NoZWR1bGVyTGFuZVByaW9yaXR5ID0gc2NoZWR1bGVyUHJpb3JpdHlUb0xhbmVQcmlvcml0eShzY2hlZHVsZXJQcmlvcml0eSk7XG5cbiAgICBsYW5lID0gZmluZFVwZGF0ZUxhbmUoc2NoZWR1bGVyTGFuZVByaW9yaXR5LCBjdXJyZW50RXZlbnRXaXBMYW5lcyk7XG4gIH1cblxuICByZXR1cm4gbGFuZTtcbn1cblxuZnVuY3Rpb24gcmVxdWVzdFJldHJ5TGFuZShmaWJlcikge1xuICAvLyBUaGlzIGlzIGEgZm9yayBvZiBgcmVxdWVzdFVwZGF0ZUxhbmVgIGRlc2lnbmVkIHNwZWNpZmljYWxseSBmb3IgU3VzcGVuc2VcbiAgLy8gXCJyZXRyaWVzXCIg4oCUIGEgc3BlY2lhbCB1cGRhdGUgdGhhdCBhdHRlbXB0cyB0byBmbGlwIGEgU3VzcGVuc2UgYm91bmRhcnlcbiAgLy8gZnJvbSBpdHMgcGxhY2Vob2xkZXIgc3RhdGUgdG8gaXRzIHByaW1hcnkvcmVzb2x2ZWQgc3RhdGUuXG4gIC8vIFNwZWNpYWwgY2FzZXNcbiAgdmFyIG1vZGUgPSBmaWJlci5tb2RlO1xuXG4gIGlmICgobW9kZSAmIEJsb2NraW5nTW9kZSkgPT09IE5vTW9kZSkge1xuICAgIHJldHVybiBTeW5jTGFuZTtcbiAgfSBlbHNlIGlmICgobW9kZSAmIENvbmN1cnJlbnRNb2RlKSA9PT0gTm9Nb2RlKSB7XG4gICAgcmV0dXJuIGdldEN1cnJlbnRQcmlvcml0eUxldmVsKCkgPT09IEltbWVkaWF0ZVByaW9yaXR5JDEgPyBTeW5jTGFuZSA6IFN5bmNCYXRjaGVkTGFuZTtcbiAgfSAvLyBTZWUgYHJlcXVlc3RVcGRhdGVMYW5lYCBmb3IgZXhwbGFuYXRpb24gb2YgYGN1cnJlbnRFdmVudFdpcExhbmVzYFxuXG5cbiAgaWYgKGN1cnJlbnRFdmVudFdpcExhbmVzID09PSBOb0xhbmVzKSB7XG4gICAgY3VycmVudEV2ZW50V2lwTGFuZXMgPSB3b3JrSW5Qcm9ncmVzc1Jvb3RJbmNsdWRlZExhbmVzO1xuICB9XG5cbiAgcmV0dXJuIGZpbmRSZXRyeUxhbmUoY3VycmVudEV2ZW50V2lwTGFuZXMpO1xufVxuXG5mdW5jdGlvbiBzY2hlZHVsZVVwZGF0ZU9uRmliZXIoZmliZXIsIGxhbmUsIGV2ZW50VGltZSkge1xuICBjaGVja0Zvck5lc3RlZFVwZGF0ZXMoKTtcbiAgd2FybkFib3V0UmVuZGVyUGhhc2VVcGRhdGVzSW5ERVYoZmliZXIpO1xuICB2YXIgcm9vdCA9IG1hcmtVcGRhdGVMYW5lRnJvbUZpYmVyVG9Sb290KGZpYmVyLCBsYW5lKTtcblxuICBpZiAocm9vdCA9PT0gbnVsbCkge1xuICAgIHdhcm5BYm91dFVwZGF0ZU9uVW5tb3VudGVkRmliZXJJbkRFVihmaWJlcik7XG4gICAgcmV0dXJuIG51bGw7XG4gIH0gLy8gTWFyayB0aGF0IHRoZSByb290IGhhcyBhIHBlbmRpbmcgdXBkYXRlLlxuXG5cbiAgbWFya1Jvb3RVcGRhdGVkKHJvb3QsIGxhbmUsIGV2ZW50VGltZSk7XG5cbiAgaWYgKHJvb3QgPT09IHdvcmtJblByb2dyZXNzUm9vdCkge1xuICAgIC8vIFJlY2VpdmVkIGFuIHVwZGF0ZSB0byBhIHRyZWUgdGhhdCdzIGluIHRoZSBtaWRkbGUgb2YgcmVuZGVyaW5nLiBNYXJrXG4gICAgLy8gdGhhdCB0aGVyZSB3YXMgYW4gaW50ZXJsZWF2ZWQgdXBkYXRlIHdvcmsgb24gdGhpcyByb290LiBVbmxlc3MgdGhlXG4gICAgLy8gYGRlZmVyUmVuZGVyUGhhc2VVcGRhdGVUb05leHRCYXRjaGAgZmxhZyBpcyBvZmYgYW5kIHRoaXMgaXMgYSByZW5kZXJcbiAgICAvLyBwaGFzZSB1cGRhdGUuIEluIHRoYXQgY2FzZSwgd2UgZG9uJ3QgdHJlYXQgcmVuZGVyIHBoYXNlIHVwZGF0ZXMgYXMgaWZcbiAgICAvLyB0aGV5IHdlcmUgaW50ZXJsZWF2ZWQsIGZvciBiYWNrd2FyZHMgY29tcGF0IHJlYXNvbnMuXG4gICAge1xuICAgICAgd29ya0luUHJvZ3Jlc3NSb290VXBkYXRlZExhbmVzID0gbWVyZ2VMYW5lcyh3b3JrSW5Qcm9ncmVzc1Jvb3RVcGRhdGVkTGFuZXMsIGxhbmUpO1xuICAgIH1cblxuICAgIGlmICh3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzID09PSBSb290U3VzcGVuZGVkV2l0aERlbGF5KSB7XG4gICAgICAvLyBUaGUgcm9vdCBhbHJlYWR5IHN1c3BlbmRlZCB3aXRoIGEgZGVsYXksIHdoaWNoIG1lYW5zIHRoaXMgcmVuZGVyXG4gICAgICAvLyBkZWZpbml0ZWx5IHdvbid0IGZpbmlzaC4gU2luY2Ugd2UgaGF2ZSBhIG5ldyB1cGRhdGUsIGxldCdzIG1hcmsgaXQgYXNcbiAgICAgIC8vIHN1c3BlbmRlZCBub3csIHJpZ2h0IGJlZm9yZSBtYXJraW5nIHRoZSBpbmNvbWluZyB1cGRhdGUuIFRoaXMgaGFzIHRoZVxuICAgICAgLy8gZWZmZWN0IG9mIGludGVycnVwdGluZyB0aGUgY3VycmVudCByZW5kZXIgYW5kIHN3aXRjaGluZyB0byB0aGUgdXBkYXRlLlxuICAgICAgLy8gVE9ETzogTWFrZSBzdXJlIHRoaXMgZG9lc24ndCBvdmVycmlkZSBwaW5ncyB0aGF0IGhhcHBlbiB3aGlsZSB3ZSd2ZVxuICAgICAgLy8gYWxyZWFkeSBzdGFydGVkIHJlbmRlcmluZy5cbiAgICAgIG1hcmtSb290U3VzcGVuZGVkJDEocm9vdCwgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMpO1xuICAgIH1cbiAgfSAvLyBUT0RPOiByZXF1ZXN0VXBkYXRlTGFuZVByaW9yaXR5IGFsc28gcmVhZHMgdGhlIHByaW9yaXR5LiBQYXNzIHRoZVxuICAvLyBwcmlvcml0eSBhcyBhbiBhcmd1bWVudCB0byB0aGF0IGZ1bmN0aW9uIGFuZCB0aGlzIG9uZS5cblxuXG4gIHZhciBwcmlvcml0eUxldmVsID0gZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWwoKTtcblxuICBpZiAobGFuZSA9PT0gU3luY0xhbmUpIHtcbiAgICBpZiAoIC8vIENoZWNrIGlmIHdlJ3JlIGluc2lkZSB1bmJhdGNoZWRVcGRhdGVzXG4gICAgKGV4ZWN1dGlvbkNvbnRleHQgJiBMZWdhY3lVbmJhdGNoZWRDb250ZXh0KSAhPT0gTm9Db250ZXh0ICYmIC8vIENoZWNrIGlmIHdlJ3JlIG5vdCBhbHJlYWR5IHJlbmRlcmluZ1xuICAgIChleGVjdXRpb25Db250ZXh0ICYgKFJlbmRlckNvbnRleHQgfCBDb21taXRDb250ZXh0KSkgPT09IE5vQ29udGV4dCkge1xuICAgICAgLy8gUmVnaXN0ZXIgcGVuZGluZyBpbnRlcmFjdGlvbnMgb24gdGhlIHJvb3QgdG8gYXZvaWQgbG9zaW5nIHRyYWNlZCBpbnRlcmFjdGlvbiBkYXRhLlxuICAgICAgc2NoZWR1bGVQZW5kaW5nSW50ZXJhY3Rpb25zKHJvb3QsIGxhbmUpOyAvLyBUaGlzIGlzIGEgbGVnYWN5IGVkZ2UgY2FzZS4gVGhlIGluaXRpYWwgbW91bnQgb2YgYSBSZWFjdERPTS5yZW5kZXItZWRcbiAgICAgIC8vIHJvb3QgaW5zaWRlIG9mIGJhdGNoZWRVcGRhdGVzIHNob3VsZCBiZSBzeW5jaHJvbm91cywgYnV0IGxheW91dCB1cGRhdGVzXG4gICAgICAvLyBzaG91bGQgYmUgZGVmZXJyZWQgdW50aWwgdGhlIGVuZCBvZiB0aGUgYmF0Y2guXG5cbiAgICAgIHBlcmZvcm1TeW5jV29ya09uUm9vdChyb290KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZW5zdXJlUm9vdElzU2NoZWR1bGVkKHJvb3QsIGV2ZW50VGltZSk7XG4gICAgICBzY2hlZHVsZVBlbmRpbmdJbnRlcmFjdGlvbnMocm9vdCwgbGFuZSk7XG5cbiAgICAgIGlmIChleGVjdXRpb25Db250ZXh0ID09PSBOb0NvbnRleHQpIHtcbiAgICAgICAgLy8gRmx1c2ggdGhlIHN5bmNocm9ub3VzIHdvcmsgbm93LCB1bmxlc3Mgd2UncmUgYWxyZWFkeSB3b3JraW5nIG9yIGluc2lkZVxuICAgICAgICAvLyBhIGJhdGNoLiBUaGlzIGlzIGludGVudGlvbmFsbHkgaW5zaWRlIHNjaGVkdWxlVXBkYXRlT25GaWJlciBpbnN0ZWFkIG9mXG4gICAgICAgIC8vIHNjaGVkdWxlQ2FsbGJhY2tGb3JGaWJlciB0byBwcmVzZXJ2ZSB0aGUgYWJpbGl0eSB0byBzY2hlZHVsZSBhIGNhbGxiYWNrXG4gICAgICAgIC8vIHdpdGhvdXQgaW1tZWRpYXRlbHkgZmx1c2hpbmcgaXQuIFdlIG9ubHkgZG8gdGhpcyBmb3IgdXNlci1pbml0aWF0ZWRcbiAgICAgICAgLy8gdXBkYXRlcywgdG8gcHJlc2VydmUgaGlzdG9yaWNhbCBiZWhhdmlvciBvZiBsZWdhY3kgbW9kZS5cbiAgICAgICAgcmVzZXRSZW5kZXJUaW1lcigpO1xuICAgICAgICBmbHVzaFN5bmNDYWxsYmFja1F1ZXVlKCk7XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIC8vIFNjaGVkdWxlIGEgZGlzY3JldGUgdXBkYXRlIGJ1dCBvbmx5IGlmIGl0J3Mgbm90IFN5bmMuXG4gICAgaWYgKChleGVjdXRpb25Db250ZXh0ICYgRGlzY3JldGVFdmVudENvbnRleHQpICE9PSBOb0NvbnRleHQgJiYgKCAvLyBPbmx5IHVwZGF0ZXMgYXQgdXNlci1ibG9ja2luZyBwcmlvcml0eSBvciBncmVhdGVyIGFyZSBjb25zaWRlcmVkXG4gICAgLy8gZGlzY3JldGUsIGV2ZW4gaW5zaWRlIGEgZGlzY3JldGUgZXZlbnQuXG4gICAgcHJpb3JpdHlMZXZlbCA9PT0gVXNlckJsb2NraW5nUHJpb3JpdHkkMiB8fCBwcmlvcml0eUxldmVsID09PSBJbW1lZGlhdGVQcmlvcml0eSQxKSkge1xuICAgICAgLy8gVGhpcyBpcyB0aGUgcmVzdWx0IG9mIGEgZGlzY3JldGUgZXZlbnQuIFRyYWNrIHRoZSBsb3dlc3QgcHJpb3JpdHlcbiAgICAgIC8vIGRpc2NyZXRlIHVwZGF0ZSBwZXIgcm9vdCBzbyB3ZSBjYW4gZmx1c2ggdGhlbSBlYXJseSwgaWYgbmVlZGVkLlxuICAgICAgaWYgKHJvb3RzV2l0aFBlbmRpbmdEaXNjcmV0ZVVwZGF0ZXMgPT09IG51bGwpIHtcbiAgICAgICAgcm9vdHNXaXRoUGVuZGluZ0Rpc2NyZXRlVXBkYXRlcyA9IG5ldyBTZXQoW3Jvb3RdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJvb3RzV2l0aFBlbmRpbmdEaXNjcmV0ZVVwZGF0ZXMuYWRkKHJvb3QpO1xuICAgICAgfVxuICAgIH0gLy8gU2NoZWR1bGUgb3RoZXIgdXBkYXRlcyBhZnRlciBpbiBjYXNlIHRoZSBjYWxsYmFjayBpcyBzeW5jLlxuXG5cbiAgICBlbnN1cmVSb290SXNTY2hlZHVsZWQocm9vdCwgZXZlbnRUaW1lKTtcbiAgICBzY2hlZHVsZVBlbmRpbmdJbnRlcmFjdGlvbnMocm9vdCwgbGFuZSk7XG4gIH0gLy8gV2UgdXNlIHRoaXMgd2hlbiBhc3NpZ25pbmcgYSBsYW5lIGZvciBhIHRyYW5zaXRpb24gaW5zaWRlXG4gIC8vIGByZXF1ZXN0VXBkYXRlTGFuZWAuIFdlIGFzc3VtZSBpdCdzIHRoZSBzYW1lIGFzIHRoZSByb290IGJlaW5nIHVwZGF0ZWQsXG4gIC8vIHNpbmNlIGluIHRoZSBjb21tb24gY2FzZSBvZiBhIHNpbmdsZSByb290IGFwcCBpdCBwcm9iYWJseSBpcy4gSWYgaXQncyBub3RcbiAgLy8gdGhlIHNhbWUgcm9vdCwgdGhlbiBpdCdzIG5vdCBhIGh1Z2UgZGVhbCwgd2UganVzdCBtaWdodCBiYXRjaCBtb3JlIHN0dWZmXG4gIC8vIHRvZ2V0aGVyIG1vcmUgdGhhbiBuZWNlc3NhcnkuXG5cblxuICBtb3N0UmVjZW50bHlVcGRhdGVkUm9vdCA9IHJvb3Q7XG59IC8vIFRoaXMgaXMgc3BsaXQgaW50byBhIHNlcGFyYXRlIGZ1bmN0aW9uIHNvIHdlIGNhbiBtYXJrIGEgZmliZXIgd2l0aCBwZW5kaW5nXG4vLyB3b3JrIHdpdGhvdXQgdHJlYXRpbmcgaXQgYXMgYSB0eXBpY2FsIHVwZGF0ZSB0aGF0IG9yaWdpbmF0ZXMgZnJvbSBhbiBldmVudDtcbi8vIGUuZy4gcmV0cnlpbmcgYSBTdXNwZW5zZSBib3VuZGFyeSBpc24ndCBhbiB1cGRhdGUsIGJ1dCBpdCBkb2VzIHNjaGVkdWxlIHdvcmtcbi8vIG9uIGEgZmliZXIuXG5cbmZ1bmN0aW9uIG1hcmtVcGRhdGVMYW5lRnJvbUZpYmVyVG9Sb290KHNvdXJjZUZpYmVyLCBsYW5lKSB7XG4gIC8vIFVwZGF0ZSB0aGUgc291cmNlIGZpYmVyJ3MgbGFuZXNcbiAgc291cmNlRmliZXIubGFuZXMgPSBtZXJnZUxhbmVzKHNvdXJjZUZpYmVyLmxhbmVzLCBsYW5lKTtcbiAgdmFyIGFsdGVybmF0ZSA9IHNvdXJjZUZpYmVyLmFsdGVybmF0ZTtcblxuICBpZiAoYWx0ZXJuYXRlICE9PSBudWxsKSB7XG4gICAgYWx0ZXJuYXRlLmxhbmVzID0gbWVyZ2VMYW5lcyhhbHRlcm5hdGUubGFuZXMsIGxhbmUpO1xuICB9XG5cbiAge1xuICAgIGlmIChhbHRlcm5hdGUgPT09IG51bGwgJiYgKHNvdXJjZUZpYmVyLmZsYWdzICYgKFBsYWNlbWVudCB8IEh5ZHJhdGluZykpICE9PSBOb0ZsYWdzKSB7XG4gICAgICB3YXJuQWJvdXRVcGRhdGVPbk5vdFlldE1vdW50ZWRGaWJlckluREVWKHNvdXJjZUZpYmVyKTtcbiAgICB9XG4gIH0gLy8gV2FsayB0aGUgcGFyZW50IHBhdGggdG8gdGhlIHJvb3QgYW5kIHVwZGF0ZSB0aGUgY2hpbGQgZXhwaXJhdGlvbiB0aW1lLlxuXG5cbiAgdmFyIG5vZGUgPSBzb3VyY2VGaWJlcjtcbiAgdmFyIHBhcmVudCA9IHNvdXJjZUZpYmVyLnJldHVybjtcblxuICB3aGlsZSAocGFyZW50ICE9PSBudWxsKSB7XG4gICAgcGFyZW50LmNoaWxkTGFuZXMgPSBtZXJnZUxhbmVzKHBhcmVudC5jaGlsZExhbmVzLCBsYW5lKTtcbiAgICBhbHRlcm5hdGUgPSBwYXJlbnQuYWx0ZXJuYXRlO1xuXG4gICAgaWYgKGFsdGVybmF0ZSAhPT0gbnVsbCkge1xuICAgICAgYWx0ZXJuYXRlLmNoaWxkTGFuZXMgPSBtZXJnZUxhbmVzKGFsdGVybmF0ZS5jaGlsZExhbmVzLCBsYW5lKTtcbiAgICB9IGVsc2Uge1xuICAgICAge1xuICAgICAgICBpZiAoKHBhcmVudC5mbGFncyAmIChQbGFjZW1lbnQgfCBIeWRyYXRpbmcpKSAhPT0gTm9GbGFncykge1xuICAgICAgICAgIHdhcm5BYm91dFVwZGF0ZU9uTm90WWV0TW91bnRlZEZpYmVySW5ERVYoc291cmNlRmliZXIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgbm9kZSA9IHBhcmVudDtcbiAgICBwYXJlbnQgPSBwYXJlbnQucmV0dXJuO1xuICB9XG5cbiAgaWYgKG5vZGUudGFnID09PSBIb3N0Um9vdCkge1xuICAgIHZhciByb290ID0gbm9kZS5zdGF0ZU5vZGU7XG4gICAgcmV0dXJuIHJvb3Q7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn0gLy8gVXNlIHRoaXMgZnVuY3Rpb24gdG8gc2NoZWR1bGUgYSB0YXNrIGZvciBhIHJvb3QuIFRoZXJlJ3Mgb25seSBvbmUgdGFzayBwZXJcbi8vIHJvb3Q7IGlmIGEgdGFzayB3YXMgYWxyZWFkeSBzY2hlZHVsZWQsIHdlJ2xsIGNoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgcHJpb3JpdHlcbi8vIG9mIHRoZSBleGlzdGluZyB0YXNrIGlzIHRoZSBzYW1lIGFzIHRoZSBwcmlvcml0eSBvZiB0aGUgbmV4dCBsZXZlbCB0aGF0IHRoZVxuLy8gcm9vdCBoYXMgd29yayBvbi4gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgb24gZXZlcnkgdXBkYXRlLCBhbmQgcmlnaHQgYmVmb3JlXG4vLyBleGl0aW5nIGEgdGFzay5cblxuXG5mdW5jdGlvbiBlbnN1cmVSb290SXNTY2hlZHVsZWQocm9vdCwgY3VycmVudFRpbWUpIHtcbiAgdmFyIGV4aXN0aW5nQ2FsbGJhY2tOb2RlID0gcm9vdC5jYWxsYmFja05vZGU7IC8vIENoZWNrIGlmIGFueSBsYW5lcyBhcmUgYmVpbmcgc3RhcnZlZCBieSBvdGhlciB3b3JrLiBJZiBzbywgbWFyayB0aGVtIGFzXG4gIC8vIGV4cGlyZWQgc28gd2Uga25vdyB0byB3b3JrIG9uIHRob3NlIG5leHQuXG5cbiAgbWFya1N0YXJ2ZWRMYW5lc0FzRXhwaXJlZChyb290LCBjdXJyZW50VGltZSk7IC8vIERldGVybWluZSB0aGUgbmV4dCBsYW5lcyB0byB3b3JrIG9uLCBhbmQgdGhlaXIgcHJpb3JpdHkuXG5cbiAgdmFyIG5leHRMYW5lcyA9IGdldE5leHRMYW5lcyhyb290LCByb290ID09PSB3b3JrSW5Qcm9ncmVzc1Jvb3QgPyB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyA6IE5vTGFuZXMpOyAvLyBUaGlzIHJldHVybnMgdGhlIHByaW9yaXR5IGxldmVsIGNvbXB1dGVkIGR1cmluZyB0aGUgYGdldE5leHRMYW5lc2AgY2FsbC5cblxuICB2YXIgbmV3Q2FsbGJhY2tQcmlvcml0eSA9IHJldHVybk5leHRMYW5lc1ByaW9yaXR5KCk7XG5cbiAgaWYgKG5leHRMYW5lcyA9PT0gTm9MYW5lcykge1xuICAgIC8vIFNwZWNpYWwgY2FzZTogVGhlcmUncyBub3RoaW5nIHRvIHdvcmsgb24uXG4gICAgaWYgKGV4aXN0aW5nQ2FsbGJhY2tOb2RlICE9PSBudWxsKSB7XG4gICAgICBjYW5jZWxDYWxsYmFjayhleGlzdGluZ0NhbGxiYWNrTm9kZSk7XG4gICAgICByb290LmNhbGxiYWNrTm9kZSA9IG51bGw7XG4gICAgICByb290LmNhbGxiYWNrUHJpb3JpdHkgPSBOb0xhbmVQcmlvcml0eTtcbiAgICB9XG5cbiAgICByZXR1cm47XG4gIH0gLy8gQ2hlY2sgaWYgdGhlcmUncyBhbiBleGlzdGluZyB0YXNrLiBXZSBtYXkgYmUgYWJsZSB0byByZXVzZSBpdC5cblxuXG4gIGlmIChleGlzdGluZ0NhbGxiYWNrTm9kZSAhPT0gbnVsbCkge1xuICAgIHZhciBleGlzdGluZ0NhbGxiYWNrUHJpb3JpdHkgPSByb290LmNhbGxiYWNrUHJpb3JpdHk7XG5cbiAgICBpZiAoZXhpc3RpbmdDYWxsYmFja1ByaW9yaXR5ID09PSBuZXdDYWxsYmFja1ByaW9yaXR5KSB7XG4gICAgICAvLyBUaGUgcHJpb3JpdHkgaGFzbid0IGNoYW5nZWQuIFdlIGNhbiByZXVzZSB0aGUgZXhpc3RpbmcgdGFzay4gRXhpdC5cbiAgICAgIHJldHVybjtcbiAgICB9IC8vIFRoZSBwcmlvcml0eSBjaGFuZ2VkLiBDYW5jZWwgdGhlIGV4aXN0aW5nIGNhbGxiYWNrLiBXZSdsbCBzY2hlZHVsZSBhIG5ld1xuICAgIC8vIG9uZSBiZWxvdy5cblxuXG4gICAgY2FuY2VsQ2FsbGJhY2soZXhpc3RpbmdDYWxsYmFja05vZGUpO1xuICB9IC8vIFNjaGVkdWxlIGEgbmV3IGNhbGxiYWNrLlxuXG5cbiAgdmFyIG5ld0NhbGxiYWNrTm9kZTtcblxuICBpZiAobmV3Q2FsbGJhY2tQcmlvcml0eSA9PT0gU3luY0xhbmVQcmlvcml0eSkge1xuICAgIC8vIFNwZWNpYWwgY2FzZTogU3luYyBSZWFjdCBjYWxsYmFja3MgYXJlIHNjaGVkdWxlZCBvbiBhIHNwZWNpYWxcbiAgICAvLyBpbnRlcm5hbCBxdWV1ZVxuICAgIG5ld0NhbGxiYWNrTm9kZSA9IHNjaGVkdWxlU3luY0NhbGxiYWNrKHBlcmZvcm1TeW5jV29ya09uUm9vdC5iaW5kKG51bGwsIHJvb3QpKTtcbiAgfSBlbHNlIGlmIChuZXdDYWxsYmFja1ByaW9yaXR5ID09PSBTeW5jQmF0Y2hlZExhbmVQcmlvcml0eSkge1xuICAgIG5ld0NhbGxiYWNrTm9kZSA9IHNjaGVkdWxlQ2FsbGJhY2soSW1tZWRpYXRlUHJpb3JpdHkkMSwgcGVyZm9ybVN5bmNXb3JrT25Sb290LmJpbmQobnVsbCwgcm9vdCkpO1xuICB9IGVsc2Uge1xuICAgIHZhciBzY2hlZHVsZXJQcmlvcml0eUxldmVsID0gbGFuZVByaW9yaXR5VG9TY2hlZHVsZXJQcmlvcml0eShuZXdDYWxsYmFja1ByaW9yaXR5KTtcbiAgICBuZXdDYWxsYmFja05vZGUgPSBzY2hlZHVsZUNhbGxiYWNrKHNjaGVkdWxlclByaW9yaXR5TGV2ZWwsIHBlcmZvcm1Db25jdXJyZW50V29ya09uUm9vdC5iaW5kKG51bGwsIHJvb3QpKTtcbiAgfVxuXG4gIHJvb3QuY2FsbGJhY2tQcmlvcml0eSA9IG5ld0NhbGxiYWNrUHJpb3JpdHk7XG4gIHJvb3QuY2FsbGJhY2tOb2RlID0gbmV3Q2FsbGJhY2tOb2RlO1xufSAvLyBUaGlzIGlzIHRoZSBlbnRyeSBwb2ludCBmb3IgZXZlcnkgY29uY3VycmVudCB0YXNrLCBpLmUuIGFueXRoaW5nIHRoYXRcbi8vIGdvZXMgdGhyb3VnaCBTY2hlZHVsZXIuXG5cblxuZnVuY3Rpb24gcGVyZm9ybUNvbmN1cnJlbnRXb3JrT25Sb290KHJvb3QpIHtcbiAgLy8gU2luY2Ugd2Uga25vdyB3ZSdyZSBpbiBhIFJlYWN0IGV2ZW50LCB3ZSBjYW4gY2xlYXIgdGhlIGN1cnJlbnRcbiAgLy8gZXZlbnQgdGltZS4gVGhlIG5leHQgdXBkYXRlIHdpbGwgY29tcHV0ZSBhIG5ldyBldmVudCB0aW1lLlxuICBjdXJyZW50RXZlbnRUaW1lID0gTm9UaW1lc3RhbXA7XG4gIGN1cnJlbnRFdmVudFdpcExhbmVzID0gTm9MYW5lcztcbiAgY3VycmVudEV2ZW50UGVuZGluZ0xhbmVzID0gTm9MYW5lcztcblxuICBpZiAoISgoZXhlY3V0aW9uQ29udGV4dCAmIChSZW5kZXJDb250ZXh0IHwgQ29tbWl0Q29udGV4dCkpID09PSBOb0NvbnRleHQpKSB7XG4gICAge1xuICAgICAgdGhyb3cgRXJyb3IoIFwiU2hvdWxkIG5vdCBhbHJlYWR5IGJlIHdvcmtpbmcuXCIgKTtcbiAgICB9XG4gIH0gLy8gRmx1c2ggYW55IHBlbmRpbmcgcGFzc2l2ZSBlZmZlY3RzIGJlZm9yZSBkZWNpZGluZyB3aGljaCBsYW5lcyB0byB3b3JrIG9uLFxuICAvLyBpbiBjYXNlIHRoZXkgc2NoZWR1bGUgYWRkaXRpb25hbCB3b3JrLlxuXG5cbiAgdmFyIG9yaWdpbmFsQ2FsbGJhY2tOb2RlID0gcm9vdC5jYWxsYmFja05vZGU7XG4gIHZhciBkaWRGbHVzaFBhc3NpdmVFZmZlY3RzID0gZmx1c2hQYXNzaXZlRWZmZWN0cygpO1xuXG4gIGlmIChkaWRGbHVzaFBhc3NpdmVFZmZlY3RzKSB7XG4gICAgLy8gU29tZXRoaW5nIGluIHRoZSBwYXNzaXZlIGVmZmVjdCBwaGFzZSBtYXkgaGF2ZSBjYW5jZWxlZCB0aGUgY3VycmVudCB0YXNrLlxuICAgIC8vIENoZWNrIGlmIHRoZSB0YXNrIG5vZGUgZm9yIHRoaXMgcm9vdCB3YXMgY2hhbmdlZC5cbiAgICBpZiAocm9vdC5jYWxsYmFja05vZGUgIT09IG9yaWdpbmFsQ2FsbGJhY2tOb2RlKSB7XG4gICAgICAvLyBUaGUgY3VycmVudCB0YXNrIHdhcyBjYW5jZWxlZC4gRXhpdC4gV2UgZG9uJ3QgbmVlZCB0byBjYWxsXG4gICAgICAvLyBgZW5zdXJlUm9vdElzU2NoZWR1bGVkYCBiZWNhdXNlIHRoZSBjaGVjayBhYm92ZSBpbXBsaWVzIGVpdGhlciB0aGF0XG4gICAgICAvLyB0aGVyZSdzIGEgbmV3IHRhc2ssIG9yIHRoYXQgdGhlcmUncyBubyByZW1haW5pbmcgd29yayBvbiB0aGlzIHJvb3QuXG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH0gLy8gRGV0ZXJtaW5lIHRoZSBuZXh0IGV4cGlyYXRpb24gdGltZSB0byB3b3JrIG9uLCB1c2luZyB0aGUgZmllbGRzIHN0b3JlZFxuICAvLyBvbiB0aGUgcm9vdC5cblxuXG4gIHZhciBsYW5lcyA9IGdldE5leHRMYW5lcyhyb290LCByb290ID09PSB3b3JrSW5Qcm9ncmVzc1Jvb3QgPyB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyA6IE5vTGFuZXMpO1xuXG4gIGlmIChsYW5lcyA9PT0gTm9MYW5lcykge1xuICAgIC8vIERlZmVuc2l2ZSBjb2RpbmcuIFRoaXMgaXMgbmV2ZXIgZXhwZWN0ZWQgdG8gaGFwcGVuLlxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgdmFyIGV4aXRTdGF0dXMgPSByZW5kZXJSb290Q29uY3VycmVudChyb290LCBsYW5lcyk7XG5cbiAgaWYgKGluY2x1ZGVzU29tZUxhbmUod29ya0luUHJvZ3Jlc3NSb290SW5jbHVkZWRMYW5lcywgd29ya0luUHJvZ3Jlc3NSb290VXBkYXRlZExhbmVzKSkge1xuICAgIC8vIFRoZSByZW5kZXIgaW5jbHVkZWQgbGFuZXMgdGhhdCB3ZXJlIHVwZGF0ZWQgZHVyaW5nIHRoZSByZW5kZXIgcGhhc2UuXG4gICAgLy8gRm9yIGV4YW1wbGUsIHdoZW4gdW5oaWRpbmcgYSBoaWRkZW4gdHJlZSwgd2UgaW5jbHVkZSBhbGwgdGhlIGxhbmVzXG4gICAgLy8gdGhhdCB3ZXJlIHByZXZpb3VzbHkgc2tpcHBlZCB3aGVuIHRoZSB0cmVlIHdhcyBoaWRkZW4uIFRoYXQgc2V0IG9mXG4gICAgLy8gbGFuZXMgaXMgYSBzdXBlcnNldCBvZiB0aGUgbGFuZXMgd2Ugc3RhcnRlZCByZW5kZXJpbmcgd2l0aC5cbiAgICAvL1xuICAgIC8vIFNvIHdlJ2xsIHRocm93IG91dCB0aGUgY3VycmVudCB3b3JrIGFuZCByZXN0YXJ0LlxuICAgIHByZXBhcmVGcmVzaFN0YWNrKHJvb3QsIE5vTGFuZXMpO1xuICB9IGVsc2UgaWYgKGV4aXRTdGF0dXMgIT09IFJvb3RJbmNvbXBsZXRlKSB7XG4gICAgaWYgKGV4aXRTdGF0dXMgPT09IFJvb3RFcnJvcmVkKSB7XG4gICAgICBleGVjdXRpb25Db250ZXh0IHw9IFJldHJ5QWZ0ZXJFcnJvcjsgLy8gSWYgYW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIGh5ZHJhdGlvbixcbiAgICAgIC8vIGRpc2NhcmQgc2VydmVyIHJlc3BvbnNlIGFuZCBmYWxsIGJhY2sgdG8gY2xpZW50IHNpZGUgcmVuZGVyLlxuXG4gICAgICBpZiAocm9vdC5oeWRyYXRlKSB7XG4gICAgICAgIHJvb3QuaHlkcmF0ZSA9IGZhbHNlO1xuICAgICAgICBjbGVhckNvbnRhaW5lcihyb290LmNvbnRhaW5lckluZm8pO1xuICAgICAgfSAvLyBJZiBzb21ldGhpbmcgdGhyZXcgYW4gZXJyb3IsIHRyeSByZW5kZXJpbmcgb25lIG1vcmUgdGltZS4gV2UnbGwgcmVuZGVyXG4gICAgICAvLyBzeW5jaHJvbm91c2x5IHRvIGJsb2NrIGNvbmN1cnJlbnQgZGF0YSBtdXRhdGlvbnMsIGFuZCB3ZSdsbCBpbmNsdWRlc1xuICAgICAgLy8gYWxsIHBlbmRpbmcgdXBkYXRlcyBhcmUgaW5jbHVkZWQuIElmIGl0IHN0aWxsIGZhaWxzIGFmdGVyIHRoZSBzZWNvbmRcbiAgICAgIC8vIGF0dGVtcHQsIHdlJ2xsIGdpdmUgdXAgYW5kIGNvbW1pdCB0aGUgcmVzdWx0aW5nIHRyZWUuXG5cblxuICAgICAgbGFuZXMgPSBnZXRMYW5lc1RvUmV0cnlTeW5jaHJvbm91c2x5T25FcnJvcihyb290KTtcblxuICAgICAgaWYgKGxhbmVzICE9PSBOb0xhbmVzKSB7XG4gICAgICAgIGV4aXRTdGF0dXMgPSByZW5kZXJSb290U3luYyhyb290LCBsYW5lcyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGV4aXRTdGF0dXMgPT09IFJvb3RGYXRhbEVycm9yZWQpIHtcbiAgICAgIHZhciBmYXRhbEVycm9yID0gd29ya0luUHJvZ3Jlc3NSb290RmF0YWxFcnJvcjtcbiAgICAgIHByZXBhcmVGcmVzaFN0YWNrKHJvb3QsIE5vTGFuZXMpO1xuICAgICAgbWFya1Jvb3RTdXNwZW5kZWQkMShyb290LCBsYW5lcyk7XG4gICAgICBlbnN1cmVSb290SXNTY2hlZHVsZWQocm9vdCwgbm93KCkpO1xuICAgICAgdGhyb3cgZmF0YWxFcnJvcjtcbiAgICB9IC8vIFdlIG5vdyBoYXZlIGEgY29uc2lzdGVudCB0cmVlLiBUaGUgbmV4dCBzdGVwIGlzIGVpdGhlciB0byBjb21taXQgaXQsXG4gICAgLy8gb3IsIGlmIHNvbWV0aGluZyBzdXNwZW5kZWQsIHdhaXQgdG8gY29tbWl0IGl0IGFmdGVyIGEgdGltZW91dC5cblxuXG4gICAgdmFyIGZpbmlzaGVkV29yayA9IHJvb3QuY3VycmVudC5hbHRlcm5hdGU7XG4gICAgcm9vdC5maW5pc2hlZFdvcmsgPSBmaW5pc2hlZFdvcms7XG4gICAgcm9vdC5maW5pc2hlZExhbmVzID0gbGFuZXM7XG4gICAgZmluaXNoQ29uY3VycmVudFJlbmRlcihyb290LCBleGl0U3RhdHVzLCBsYW5lcyk7XG4gIH1cblxuICBlbnN1cmVSb290SXNTY2hlZHVsZWQocm9vdCwgbm93KCkpO1xuXG4gIGlmIChyb290LmNhbGxiYWNrTm9kZSA9PT0gb3JpZ2luYWxDYWxsYmFja05vZGUpIHtcbiAgICAvLyBUaGUgdGFzayBub2RlIHNjaGVkdWxlZCBmb3IgdGhpcyByb290IGlzIHRoZSBzYW1lIG9uZSB0aGF0J3NcbiAgICAvLyBjdXJyZW50bHkgZXhlY3V0ZWQuIE5lZWQgdG8gcmV0dXJuIGEgY29udGludWF0aW9uLlxuICAgIHJldHVybiBwZXJmb3JtQ29uY3VycmVudFdvcmtPblJvb3QuYmluZChudWxsLCByb290KTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiBmaW5pc2hDb25jdXJyZW50UmVuZGVyKHJvb3QsIGV4aXRTdGF0dXMsIGxhbmVzKSB7XG4gIHN3aXRjaCAoZXhpdFN0YXR1cykge1xuICAgIGNhc2UgUm9vdEluY29tcGxldGU6XG4gICAgY2FzZSBSb290RmF0YWxFcnJvcmVkOlxuICAgICAge1xuICAgICAgICB7XG4gICAgICAgICAge1xuICAgICAgICAgICAgdGhyb3cgRXJyb3IoIFwiUm9vdCBkaWQgbm90IGNvbXBsZXRlLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LlwiICk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgLy8gRmxvdyBrbm93cyBhYm91dCBpbnZhcmlhbnQsIHNvIGl0IGNvbXBsYWlucyBpZiBJIGFkZCBhIGJyZWFrXG4gICAgLy8gc3RhdGVtZW50LCBidXQgZXNsaW50IGRvZXNuJ3Qga25vdyBhYm91dCBpbnZhcmlhbnQsIHNvIGl0IGNvbXBsYWluc1xuICAgIC8vIGlmIEkgZG8uIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1mYWxsdGhyb3VnaFxuXG4gICAgY2FzZSBSb290RXJyb3JlZDpcbiAgICAgIHtcbiAgICAgICAgLy8gV2Ugc2hvdWxkIGhhdmUgYWxyZWFkeSBhdHRlbXB0ZWQgdG8gcmV0cnkgdGhpcyB0cmVlLiBJZiB3ZSByZWFjaGVkXG4gICAgICAgIC8vIHRoaXMgcG9pbnQsIGl0IGVycm9yZWQgYWdhaW4uIENvbW1pdCBpdC5cbiAgICAgICAgY29tbWl0Um9vdChyb290KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICBjYXNlIFJvb3RTdXNwZW5kZWQ6XG4gICAgICB7XG4gICAgICAgIG1hcmtSb290U3VzcGVuZGVkJDEocm9vdCwgbGFuZXMpOyAvLyBXZSBoYXZlIGFuIGFjY2VwdGFibGUgbG9hZGluZyBzdGF0ZS4gV2UgbmVlZCB0byBmaWd1cmUgb3V0IGlmIHdlXG4gICAgICAgIC8vIHNob3VsZCBpbW1lZGlhdGVseSBjb21taXQgaXQgb3Igd2FpdCBhIGJpdC5cblxuICAgICAgICBpZiAoaW5jbHVkZXNPbmx5UmV0cmllcyhsYW5lcykgJiYgLy8gZG8gbm90IGRlbGF5IGlmIHdlJ3JlIGluc2lkZSBhbiBhY3QoKSBzY29wZVxuICAgICAgICAhc2hvdWxkRm9yY2VGbHVzaEZhbGxiYWNrc0luREVWKCkpIHtcbiAgICAgICAgICAvLyBUaGlzIHJlbmRlciBvbmx5IGluY2x1ZGVkIHJldHJpZXMsIG5vIHVwZGF0ZXMuIFRocm90dGxlIGNvbW1pdHRpbmdcbiAgICAgICAgICAvLyByZXRyaWVzIHNvIHRoYXQgd2UgZG9uJ3Qgc2hvdyB0b28gbWFueSBsb2FkaW5nIHN0YXRlcyB0b28gcXVpY2tseS5cbiAgICAgICAgICB2YXIgbXNVbnRpbFRpbWVvdXQgPSBnbG9iYWxNb3N0UmVjZW50RmFsbGJhY2tUaW1lICsgRkFMTEJBQ0tfVEhST1RUTEVfTVMgLSBub3coKTsgLy8gRG9uJ3QgYm90aGVyIHdpdGggYSB2ZXJ5IHNob3J0IHN1c3BlbnNlIHRpbWUuXG5cbiAgICAgICAgICBpZiAobXNVbnRpbFRpbWVvdXQgPiAxMCkge1xuICAgICAgICAgICAgdmFyIG5leHRMYW5lcyA9IGdldE5leHRMYW5lcyhyb290LCBOb0xhbmVzKTtcblxuICAgICAgICAgICAgaWYgKG5leHRMYW5lcyAhPT0gTm9MYW5lcykge1xuICAgICAgICAgICAgICAvLyBUaGVyZSdzIGFkZGl0aW9uYWwgd29yayBvbiB0aGlzIHJvb3QuXG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgc3VzcGVuZGVkTGFuZXMgPSByb290LnN1c3BlbmRlZExhbmVzO1xuXG4gICAgICAgICAgICBpZiAoIWlzU3Vic2V0T2ZMYW5lcyhzdXNwZW5kZWRMYW5lcywgbGFuZXMpKSB7XG4gICAgICAgICAgICAgIC8vIFdlIHNob3VsZCBwcmVmZXIgdG8gcmVuZGVyIHRoZSBmYWxsYmFjayBvZiBhdCB0aGUgbGFzdFxuICAgICAgICAgICAgICAvLyBzdXNwZW5kZWQgbGV2ZWwuIFBpbmcgdGhlIGxhc3Qgc3VzcGVuZGVkIGxldmVsIHRvIHRyeVxuICAgICAgICAgICAgICAvLyByZW5kZXJpbmcgaXQgYWdhaW4uXG4gICAgICAgICAgICAgIC8vIEZJWE1FOiBXaGF0IGlmIHRoZSBzdXNwZW5kZWQgbGFuZXMgYXJlIElkbGU/IFNob3VsZCBub3QgcmVzdGFydC5cbiAgICAgICAgICAgICAgdmFyIGV2ZW50VGltZSA9IHJlcXVlc3RFdmVudFRpbWUoKTtcbiAgICAgICAgICAgICAgbWFya1Jvb3RQaW5nZWQocm9vdCwgc3VzcGVuZGVkTGFuZXMpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH0gLy8gVGhlIHJlbmRlciBpcyBzdXNwZW5kZWQsIGl0IGhhc24ndCB0aW1lZCBvdXQsIGFuZCB0aGVyZSdzIG5vXG4gICAgICAgICAgICAvLyBsb3dlciBwcmlvcml0eSB3b3JrIHRvIGRvLiBJbnN0ZWFkIG9mIGNvbW1pdHRpbmcgdGhlIGZhbGxiYWNrXG4gICAgICAgICAgICAvLyBpbW1lZGlhdGVseSwgd2FpdCBmb3IgbW9yZSBkYXRhIHRvIGFycml2ZS5cblxuXG4gICAgICAgICAgICByb290LnRpbWVvdXRIYW5kbGUgPSBzY2hlZHVsZVRpbWVvdXQoY29tbWl0Um9vdC5iaW5kKG51bGwsIHJvb3QpLCBtc1VudGlsVGltZW91dCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH0gLy8gVGhlIHdvcmsgZXhwaXJlZC4gQ29tbWl0IGltbWVkaWF0ZWx5LlxuXG5cbiAgICAgICAgY29tbWl0Um9vdChyb290KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICBjYXNlIFJvb3RTdXNwZW5kZWRXaXRoRGVsYXk6XG4gICAgICB7XG4gICAgICAgIG1hcmtSb290U3VzcGVuZGVkJDEocm9vdCwgbGFuZXMpO1xuXG4gICAgICAgIGlmIChpbmNsdWRlc09ubHlUcmFuc2l0aW9ucyhsYW5lcykpIHtcbiAgICAgICAgICAvLyBUaGlzIGlzIGEgdHJhbnNpdGlvbiwgc28gd2Ugc2hvdWxkIGV4aXQgd2l0aG91dCBjb21taXR0aW5nIGFcbiAgICAgICAgICAvLyBwbGFjZWhvbGRlciBhbmQgd2l0aG91dCBzY2hlZHVsaW5nIGEgdGltZW91dC4gRGVsYXkgaW5kZWZpbml0ZWx5XG4gICAgICAgICAgLy8gdW50aWwgd2UgcmVjZWl2ZSBtb3JlIGRhdGEuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXNob3VsZEZvcmNlRmx1c2hGYWxsYmFja3NJbkRFVigpKSB7XG4gICAgICAgICAgLy8gVGhpcyBpcyBub3QgYSB0cmFuc2l0aW9uLCBidXQgd2UgZGlkIHRyaWdnZXIgYW4gYXZvaWRlZCBzdGF0ZS5cbiAgICAgICAgICAvLyBTY2hlZHVsZSBhIHBsYWNlaG9sZGVyIHRvIGRpc3BsYXkgYWZ0ZXIgYSBzaG9ydCBkZWxheSwgdXNpbmcgdGhlIEp1c3RcbiAgICAgICAgICAvLyBOb3RpY2VhYmxlIERpZmZlcmVuY2UuXG4gICAgICAgICAgLy8gVE9ETzogSXMgdGhlIEpORCBvcHRpbWl6YXRpb24gd29ydGggdGhlIGFkZGVkIGNvbXBsZXhpdHk/IElmIHRoaXMgaXNcbiAgICAgICAgICAvLyB0aGUgb25seSByZWFzb24gd2UgdHJhY2sgdGhlIGV2ZW50IHRpbWUsIHRoZW4gcHJvYmFibHkgbm90LlxuICAgICAgICAgIC8vIENvbnNpZGVyIHJlbW92aW5nLlxuICAgICAgICAgIHZhciBtb3N0UmVjZW50RXZlbnRUaW1lID0gZ2V0TW9zdFJlY2VudEV2ZW50VGltZShyb290LCBsYW5lcyk7XG4gICAgICAgICAgdmFyIGV2ZW50VGltZU1zID0gbW9zdFJlY2VudEV2ZW50VGltZTtcbiAgICAgICAgICB2YXIgdGltZUVsYXBzZWRNcyA9IG5vdygpIC0gZXZlbnRUaW1lTXM7XG5cbiAgICAgICAgICB2YXIgX21zVW50aWxUaW1lb3V0ID0gam5kKHRpbWVFbGFwc2VkTXMpIC0gdGltZUVsYXBzZWRNczsgLy8gRG9uJ3QgYm90aGVyIHdpdGggYSB2ZXJ5IHNob3J0IHN1c3BlbnNlIHRpbWUuXG5cblxuICAgICAgICAgIGlmIChfbXNVbnRpbFRpbWVvdXQgPiAxMCkge1xuICAgICAgICAgICAgLy8gSW5zdGVhZCBvZiBjb21taXR0aW5nIHRoZSBmYWxsYmFjayBpbW1lZGlhdGVseSwgd2FpdCBmb3IgbW9yZSBkYXRhXG4gICAgICAgICAgICAvLyB0byBhcnJpdmUuXG4gICAgICAgICAgICByb290LnRpbWVvdXRIYW5kbGUgPSBzY2hlZHVsZVRpbWVvdXQoY29tbWl0Um9vdC5iaW5kKG51bGwsIHJvb3QpLCBfbXNVbnRpbFRpbWVvdXQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9IC8vIENvbW1pdCB0aGUgcGxhY2Vob2xkZXIuXG5cblxuICAgICAgICBjb21taXRSb290KHJvb3QpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgIGNhc2UgUm9vdENvbXBsZXRlZDpcbiAgICAgIHtcbiAgICAgICAgLy8gVGhlIHdvcmsgY29tcGxldGVkLiBSZWFkeSB0byBjb21taXQuXG4gICAgICAgIGNvbW1pdFJvb3Qocm9vdCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgZGVmYXVsdDpcbiAgICAgIHtcbiAgICAgICAge1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRocm93IEVycm9yKCBcIlVua25vd24gcm9vdCBleGl0IHN0YXR1cy5cIiApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIG1hcmtSb290U3VzcGVuZGVkJDEocm9vdCwgc3VzcGVuZGVkTGFuZXMpIHtcbiAgLy8gV2hlbiBzdXNwZW5kaW5nLCB3ZSBzaG91bGQgYWx3YXlzIGV4Y2x1ZGUgbGFuZXMgdGhhdCB3ZXJlIHBpbmdlZCBvciAobW9yZVxuICAvLyByYXJlbHksIHNpbmNlIHdlIHRyeSB0byBhdm9pZCBpdCkgdXBkYXRlZCBkdXJpbmcgdGhlIHJlbmRlciBwaGFzZS5cbiAgLy8gVE9ETzogTG9sIG1heWJlIHRoZXJlJ3MgYSBiZXR0ZXIgd2F5IHRvIGZhY3RvciB0aGlzIGJlc2lkZXMgdGhpc1xuICAvLyBvYm5veGlvdXNseSBuYW1lZCBmdW5jdGlvbiA6KVxuICBzdXNwZW5kZWRMYW5lcyA9IHJlbW92ZUxhbmVzKHN1c3BlbmRlZExhbmVzLCB3b3JrSW5Qcm9ncmVzc1Jvb3RQaW5nZWRMYW5lcyk7XG4gIHN1c3BlbmRlZExhbmVzID0gcmVtb3ZlTGFuZXMoc3VzcGVuZGVkTGFuZXMsIHdvcmtJblByb2dyZXNzUm9vdFVwZGF0ZWRMYW5lcyk7XG4gIG1hcmtSb290U3VzcGVuZGVkKHJvb3QsIHN1c3BlbmRlZExhbmVzKTtcbn0gLy8gVGhpcyBpcyB0aGUgZW50cnkgcG9pbnQgZm9yIHN5bmNocm9ub3VzIHRhc2tzIHRoYXQgZG9uJ3QgZ29cbi8vIHRocm91Z2ggU2NoZWR1bGVyXG5cblxuZnVuY3Rpb24gcGVyZm9ybVN5bmNXb3JrT25Sb290KHJvb3QpIHtcbiAgaWYgKCEoKGV4ZWN1dGlvbkNvbnRleHQgJiAoUmVuZGVyQ29udGV4dCB8IENvbW1pdENvbnRleHQpKSA9PT0gTm9Db250ZXh0KSkge1xuICAgIHtcbiAgICAgIHRocm93IEVycm9yKCBcIlNob3VsZCBub3QgYWxyZWFkeSBiZSB3b3JraW5nLlwiICk7XG4gICAgfVxuICB9XG5cbiAgZmx1c2hQYXNzaXZlRWZmZWN0cygpO1xuICB2YXIgbGFuZXM7XG4gIHZhciBleGl0U3RhdHVzO1xuXG4gIGlmIChyb290ID09PSB3b3JrSW5Qcm9ncmVzc1Jvb3QgJiYgaW5jbHVkZXNTb21lTGFuZShyb290LmV4cGlyZWRMYW5lcywgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMpKSB7XG4gICAgLy8gVGhlcmUncyBhIHBhcnRpYWwgdHJlZSwgYW5kIGF0IGxlYXN0IG9uZSBvZiBpdHMgbGFuZXMgaGFzIGV4cGlyZWQuIEZpbmlzaFxuICAgIC8vIHJlbmRlcmluZyBpdCBiZWZvcmUgcmVuZGVyaW5nIHRoZSByZXN0IG9mIHRoZSBleHBpcmVkIHdvcmsuXG4gICAgbGFuZXMgPSB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcztcbiAgICBleGl0U3RhdHVzID0gcmVuZGVyUm9vdFN5bmMocm9vdCwgbGFuZXMpO1xuXG4gICAgaWYgKGluY2x1ZGVzU29tZUxhbmUod29ya0luUHJvZ3Jlc3NSb290SW5jbHVkZWRMYW5lcywgd29ya0luUHJvZ3Jlc3NSb290VXBkYXRlZExhbmVzKSkge1xuICAgICAgLy8gVGhlIHJlbmRlciBpbmNsdWRlZCBsYW5lcyB0aGF0IHdlcmUgdXBkYXRlZCBkdXJpbmcgdGhlIHJlbmRlciBwaGFzZS5cbiAgICAgIC8vIEZvciBleGFtcGxlLCB3aGVuIHVuaGlkaW5nIGEgaGlkZGVuIHRyZWUsIHdlIGluY2x1ZGUgYWxsIHRoZSBsYW5lc1xuICAgICAgLy8gdGhhdCB3ZXJlIHByZXZpb3VzbHkgc2tpcHBlZCB3aGVuIHRoZSB0cmVlIHdhcyBoaWRkZW4uIFRoYXQgc2V0IG9mXG4gICAgICAvLyBsYW5lcyBpcyBhIHN1cGVyc2V0IG9mIHRoZSBsYW5lcyB3ZSBzdGFydGVkIHJlbmRlcmluZyB3aXRoLlxuICAgICAgLy9cbiAgICAgIC8vIE5vdGUgdGhhdCB0aGlzIG9ubHkgaGFwcGVucyB3aGVuIHBhcnQgb2YgdGhlIHRyZWUgaXMgcmVuZGVyZWRcbiAgICAgIC8vIGNvbmN1cnJlbnRseS4gSWYgdGhlIHdob2xlIHRyZWUgaXMgcmVuZGVyZWQgc3luY2hyb25vdXNseSwgdGhlbiB0aGVyZVxuICAgICAgLy8gYXJlIG5vIGludGVybGVhdmVkIGV2ZW50cy5cbiAgICAgIGxhbmVzID0gZ2V0TmV4dExhbmVzKHJvb3QsIGxhbmVzKTtcbiAgICAgIGV4aXRTdGF0dXMgPSByZW5kZXJSb290U3luYyhyb290LCBsYW5lcyk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGxhbmVzID0gZ2V0TmV4dExhbmVzKHJvb3QsIE5vTGFuZXMpO1xuICAgIGV4aXRTdGF0dXMgPSByZW5kZXJSb290U3luYyhyb290LCBsYW5lcyk7XG4gIH1cblxuICBpZiAocm9vdC50YWcgIT09IExlZ2FjeVJvb3QgJiYgZXhpdFN0YXR1cyA9PT0gUm9vdEVycm9yZWQpIHtcbiAgICBleGVjdXRpb25Db250ZXh0IHw9IFJldHJ5QWZ0ZXJFcnJvcjsgLy8gSWYgYW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIGh5ZHJhdGlvbixcbiAgICAvLyBkaXNjYXJkIHNlcnZlciByZXNwb25zZSBhbmQgZmFsbCBiYWNrIHRvIGNsaWVudCBzaWRlIHJlbmRlci5cblxuICAgIGlmIChyb290Lmh5ZHJhdGUpIHtcbiAgICAgIHJvb3QuaHlkcmF0ZSA9IGZhbHNlO1xuICAgICAgY2xlYXJDb250YWluZXIocm9vdC5jb250YWluZXJJbmZvKTtcbiAgICB9IC8vIElmIHNvbWV0aGluZyB0aHJldyBhbiBlcnJvciwgdHJ5IHJlbmRlcmluZyBvbmUgbW9yZSB0aW1lLiBXZSdsbCByZW5kZXJcbiAgICAvLyBzeW5jaHJvbm91c2x5IHRvIGJsb2NrIGNvbmN1cnJlbnQgZGF0YSBtdXRhdGlvbnMsIGFuZCB3ZSdsbCBpbmNsdWRlc1xuICAgIC8vIGFsbCBwZW5kaW5nIHVwZGF0ZXMgYXJlIGluY2x1ZGVkLiBJZiBpdCBzdGlsbCBmYWlscyBhZnRlciB0aGUgc2Vjb25kXG4gICAgLy8gYXR0ZW1wdCwgd2UnbGwgZ2l2ZSB1cCBhbmQgY29tbWl0IHRoZSByZXN1bHRpbmcgdHJlZS5cblxuXG4gICAgbGFuZXMgPSBnZXRMYW5lc1RvUmV0cnlTeW5jaHJvbm91c2x5T25FcnJvcihyb290KTtcblxuICAgIGlmIChsYW5lcyAhPT0gTm9MYW5lcykge1xuICAgICAgZXhpdFN0YXR1cyA9IHJlbmRlclJvb3RTeW5jKHJvb3QsIGxhbmVzKTtcbiAgICB9XG4gIH1cblxuICBpZiAoZXhpdFN0YXR1cyA9PT0gUm9vdEZhdGFsRXJyb3JlZCkge1xuICAgIHZhciBmYXRhbEVycm9yID0gd29ya0luUHJvZ3Jlc3NSb290RmF0YWxFcnJvcjtcbiAgICBwcmVwYXJlRnJlc2hTdGFjayhyb290LCBOb0xhbmVzKTtcbiAgICBtYXJrUm9vdFN1c3BlbmRlZCQxKHJvb3QsIGxhbmVzKTtcbiAgICBlbnN1cmVSb290SXNTY2hlZHVsZWQocm9vdCwgbm93KCkpO1xuICAgIHRocm93IGZhdGFsRXJyb3I7XG4gIH0gLy8gV2Ugbm93IGhhdmUgYSBjb25zaXN0ZW50IHRyZWUuIEJlY2F1c2UgdGhpcyBpcyBhIHN5bmMgcmVuZGVyLCB3ZVxuICAvLyB3aWxsIGNvbW1pdCBpdCBldmVuIGlmIHNvbWV0aGluZyBzdXNwZW5kZWQuXG5cblxuICB2YXIgZmluaXNoZWRXb3JrID0gcm9vdC5jdXJyZW50LmFsdGVybmF0ZTtcbiAgcm9vdC5maW5pc2hlZFdvcmsgPSBmaW5pc2hlZFdvcms7XG4gIHJvb3QuZmluaXNoZWRMYW5lcyA9IGxhbmVzO1xuICBjb21taXRSb290KHJvb3QpOyAvLyBCZWZvcmUgZXhpdGluZywgbWFrZSBzdXJlIHRoZXJlJ3MgYSBjYWxsYmFjayBzY2hlZHVsZWQgZm9yIHRoZSBuZXh0XG4gIC8vIHBlbmRpbmcgbGV2ZWwuXG5cbiAgZW5zdXJlUm9vdElzU2NoZWR1bGVkKHJvb3QsIG5vdygpKTtcbiAgcmV0dXJuIG51bGw7XG59XG5mdW5jdGlvbiBmbHVzaERpc2NyZXRlVXBkYXRlcygpIHtcbiAgLy8gVE9ETzogU2hvdWxkIGJlIGFibGUgdG8gZmx1c2ggaW5zaWRlIGJhdGNoZWRVcGRhdGVzLCBidXQgbm90IGluc2lkZSBgYWN0YC5cbiAgLy8gSG93ZXZlciwgYGFjdGAgdXNlcyBgYmF0Y2hlZFVwZGF0ZXNgLCBzbyB0aGVyZSdzIG5vIHdheSB0byBkaXN0aW5ndWlzaFxuICAvLyB0aG9zZSB0d28gY2FzZXMuIE5lZWQgdG8gZml4IHRoaXMgYmVmb3JlIGV4cG9zaW5nIGZsdXNoRGlzY3JldGVVcGRhdGVzXG4gIC8vIGFzIGEgcHVibGljIEFQSS5cbiAgaWYgKChleGVjdXRpb25Db250ZXh0ICYgKEJhdGNoZWRDb250ZXh0IHwgUmVuZGVyQ29udGV4dCB8IENvbW1pdENvbnRleHQpKSAhPT0gTm9Db250ZXh0KSB7XG4gICAge1xuICAgICAgaWYgKChleGVjdXRpb25Db250ZXh0ICYgUmVuZGVyQ29udGV4dCkgIT09IE5vQ29udGV4dCkge1xuICAgICAgICBlcnJvcigndW5zdGFibGVfZmx1c2hEaXNjcmV0ZVVwZGF0ZXM6IENhbm5vdCBmbHVzaCB1cGRhdGVzIHdoZW4gUmVhY3QgaXMgJyArICdhbHJlYWR5IHJlbmRlcmluZy4nKTtcbiAgICAgIH1cbiAgICB9IC8vIFdlJ3JlIGFscmVhZHkgcmVuZGVyaW5nLCBzbyB3ZSBjYW4ndCBzeW5jaHJvbm91c2x5IGZsdXNoIHBlbmRpbmcgd29yay5cbiAgICAvLyBUaGlzIGlzIHByb2JhYmx5IGEgbmVzdGVkIGV2ZW50IGRpc3BhdGNoIHRyaWdnZXJlZCBieSBhIGxpZmVjeWNsZS9lZmZlY3QsXG4gICAgLy8gbGlrZSBgZWwuZm9jdXMoKWAuIEV4aXQuXG5cblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGZsdXNoUGVuZGluZ0Rpc2NyZXRlVXBkYXRlcygpOyAvLyBJZiB0aGUgZGlzY3JldGUgdXBkYXRlcyBzY2hlZHVsZWQgcGFzc2l2ZSBlZmZlY3RzLCBmbHVzaCB0aGVtIG5vdyBzbyB0aGF0XG4gIC8vIHRoZXkgZmlyZSBiZWZvcmUgdGhlIG5leHQgc2VyaWFsIGV2ZW50LlxuXG4gIGZsdXNoUGFzc2l2ZUVmZmVjdHMoKTtcbn1cblxuZnVuY3Rpb24gZmx1c2hQZW5kaW5nRGlzY3JldGVVcGRhdGVzKCkge1xuICBpZiAocm9vdHNXaXRoUGVuZGluZ0Rpc2NyZXRlVXBkYXRlcyAhPT0gbnVsbCkge1xuICAgIC8vIEZvciBlYWNoIHJvb3Qgd2l0aCBwZW5kaW5nIGRpc2NyZXRlIHVwZGF0ZXMsIHNjaGVkdWxlIGEgY2FsbGJhY2sgdG9cbiAgICAvLyBpbW1lZGlhdGVseSBmbHVzaCB0aGVtLlxuICAgIHZhciByb290cyA9IHJvb3RzV2l0aFBlbmRpbmdEaXNjcmV0ZVVwZGF0ZXM7XG4gICAgcm9vdHNXaXRoUGVuZGluZ0Rpc2NyZXRlVXBkYXRlcyA9IG51bGw7XG4gICAgcm9vdHMuZm9yRWFjaChmdW5jdGlvbiAocm9vdCkge1xuICAgICAgbWFya0Rpc2NyZXRlVXBkYXRlc0V4cGlyZWQocm9vdCk7XG4gICAgICBlbnN1cmVSb290SXNTY2hlZHVsZWQocm9vdCwgbm93KCkpO1xuICAgIH0pO1xuICB9IC8vIE5vdyBmbHVzaCB0aGUgaW1tZWRpYXRlIHF1ZXVlLlxuXG5cbiAgZmx1c2hTeW5jQ2FsbGJhY2tRdWV1ZSgpO1xufVxuXG5mdW5jdGlvbiBiYXRjaGVkVXBkYXRlcyQxKGZuLCBhKSB7XG4gIHZhciBwcmV2RXhlY3V0aW9uQ29udGV4dCA9IGV4ZWN1dGlvbkNvbnRleHQ7XG4gIGV4ZWN1dGlvbkNvbnRleHQgfD0gQmF0Y2hlZENvbnRleHQ7XG5cbiAgdHJ5IHtcbiAgICByZXR1cm4gZm4oYSk7XG4gIH0gZmluYWxseSB7XG4gICAgZXhlY3V0aW9uQ29udGV4dCA9IHByZXZFeGVjdXRpb25Db250ZXh0O1xuXG4gICAgaWYgKGV4ZWN1dGlvbkNvbnRleHQgPT09IE5vQ29udGV4dCkge1xuICAgICAgLy8gRmx1c2ggdGhlIGltbWVkaWF0ZSBjYWxsYmFja3MgdGhhdCB3ZXJlIHNjaGVkdWxlZCBkdXJpbmcgdGhpcyBiYXRjaFxuICAgICAgcmVzZXRSZW5kZXJUaW1lcigpO1xuICAgICAgZmx1c2hTeW5jQ2FsbGJhY2tRdWV1ZSgpO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gYmF0Y2hlZEV2ZW50VXBkYXRlcyQxKGZuLCBhKSB7XG4gIHZhciBwcmV2RXhlY3V0aW9uQ29udGV4dCA9IGV4ZWN1dGlvbkNvbnRleHQ7XG4gIGV4ZWN1dGlvbkNvbnRleHQgfD0gRXZlbnRDb250ZXh0O1xuXG4gIHRyeSB7XG4gICAgcmV0dXJuIGZuKGEpO1xuICB9IGZpbmFsbHkge1xuICAgIGV4ZWN1dGlvbkNvbnRleHQgPSBwcmV2RXhlY3V0aW9uQ29udGV4dDtcblxuICAgIGlmIChleGVjdXRpb25Db250ZXh0ID09PSBOb0NvbnRleHQpIHtcbiAgICAgIC8vIEZsdXNoIHRoZSBpbW1lZGlhdGUgY2FsbGJhY2tzIHRoYXQgd2VyZSBzY2hlZHVsZWQgZHVyaW5nIHRoaXMgYmF0Y2hcbiAgICAgIHJlc2V0UmVuZGVyVGltZXIoKTtcbiAgICAgIGZsdXNoU3luY0NhbGxiYWNrUXVldWUoKTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIGRpc2NyZXRlVXBkYXRlcyQxKGZuLCBhLCBiLCBjLCBkKSB7XG4gIHZhciBwcmV2RXhlY3V0aW9uQ29udGV4dCA9IGV4ZWN1dGlvbkNvbnRleHQ7XG4gIGV4ZWN1dGlvbkNvbnRleHQgfD0gRGlzY3JldGVFdmVudENvbnRleHQ7XG5cbiAge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gcnVuV2l0aFByaW9yaXR5JDEoVXNlckJsb2NraW5nUHJpb3JpdHkkMiwgZm4uYmluZChudWxsLCBhLCBiLCBjLCBkKSk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGV4ZWN1dGlvbkNvbnRleHQgPSBwcmV2RXhlY3V0aW9uQ29udGV4dDtcblxuICAgICAgaWYgKGV4ZWN1dGlvbkNvbnRleHQgPT09IE5vQ29udGV4dCkge1xuICAgICAgICAvLyBGbHVzaCB0aGUgaW1tZWRpYXRlIGNhbGxiYWNrcyB0aGF0IHdlcmUgc2NoZWR1bGVkIGR1cmluZyB0aGlzIGJhdGNoXG4gICAgICAgIHJlc2V0UmVuZGVyVGltZXIoKTtcbiAgICAgICAgZmx1c2hTeW5jQ2FsbGJhY2tRdWV1ZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gdW5iYXRjaGVkVXBkYXRlcyhmbiwgYSkge1xuICB2YXIgcHJldkV4ZWN1dGlvbkNvbnRleHQgPSBleGVjdXRpb25Db250ZXh0O1xuICBleGVjdXRpb25Db250ZXh0ICY9IH5CYXRjaGVkQ29udGV4dDtcbiAgZXhlY3V0aW9uQ29udGV4dCB8PSBMZWdhY3lVbmJhdGNoZWRDb250ZXh0O1xuXG4gIHRyeSB7XG4gICAgcmV0dXJuIGZuKGEpO1xuICB9IGZpbmFsbHkge1xuICAgIGV4ZWN1dGlvbkNvbnRleHQgPSBwcmV2RXhlY3V0aW9uQ29udGV4dDtcblxuICAgIGlmIChleGVjdXRpb25Db250ZXh0ID09PSBOb0NvbnRleHQpIHtcbiAgICAgIC8vIEZsdXNoIHRoZSBpbW1lZGlhdGUgY2FsbGJhY2tzIHRoYXQgd2VyZSBzY2hlZHVsZWQgZHVyaW5nIHRoaXMgYmF0Y2hcbiAgICAgIHJlc2V0UmVuZGVyVGltZXIoKTtcbiAgICAgIGZsdXNoU3luY0NhbGxiYWNrUXVldWUoKTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIGZsdXNoU3luYyhmbiwgYSkge1xuICB2YXIgcHJldkV4ZWN1dGlvbkNvbnRleHQgPSBleGVjdXRpb25Db250ZXh0O1xuXG4gIGlmICgocHJldkV4ZWN1dGlvbkNvbnRleHQgJiAoUmVuZGVyQ29udGV4dCB8IENvbW1pdENvbnRleHQpKSAhPT0gTm9Db250ZXh0KSB7XG4gICAge1xuICAgICAgZXJyb3IoJ2ZsdXNoU3luYyB3YXMgY2FsbGVkIGZyb20gaW5zaWRlIGEgbGlmZWN5Y2xlIG1ldGhvZC4gUmVhY3QgY2Fubm90ICcgKyAnZmx1c2ggd2hlbiBSZWFjdCBpcyBhbHJlYWR5IHJlbmRlcmluZy4gQ29uc2lkZXIgbW92aW5nIHRoaXMgY2FsbCB0byAnICsgJ2Egc2NoZWR1bGVyIHRhc2sgb3IgbWljcm8gdGFzay4nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZm4oYSk7XG4gIH1cblxuICBleGVjdXRpb25Db250ZXh0IHw9IEJhdGNoZWRDb250ZXh0O1xuXG4gIHtcbiAgICB0cnkge1xuICAgICAgaWYgKGZuKSB7XG4gICAgICAgIHJldHVybiBydW5XaXRoUHJpb3JpdHkkMShJbW1lZGlhdGVQcmlvcml0eSQxLCBmbi5iaW5kKG51bGwsIGEpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGV4ZWN1dGlvbkNvbnRleHQgPSBwcmV2RXhlY3V0aW9uQ29udGV4dDsgLy8gRmx1c2ggdGhlIGltbWVkaWF0ZSBjYWxsYmFja3MgdGhhdCB3ZXJlIHNjaGVkdWxlZCBkdXJpbmcgdGhpcyBiYXRjaC5cbiAgICAgIC8vIE5vdGUgdGhhdCB0aGlzIHdpbGwgaGFwcGVuIGV2ZW4gaWYgYmF0Y2hlZFVwZGF0ZXMgaXMgaGlnaGVyIHVwXG4gICAgICAvLyB0aGUgc3RhY2suXG5cbiAgICAgIGZsdXNoU3luY0NhbGxiYWNrUXVldWUoKTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIHB1c2hSZW5kZXJMYW5lcyhmaWJlciwgbGFuZXMpIHtcbiAgcHVzaChzdWJ0cmVlUmVuZGVyTGFuZXNDdXJzb3IsIHN1YnRyZWVSZW5kZXJMYW5lcywgZmliZXIpO1xuICBzdWJ0cmVlUmVuZGVyTGFuZXMgPSBtZXJnZUxhbmVzKHN1YnRyZWVSZW5kZXJMYW5lcywgbGFuZXMpO1xuICB3b3JrSW5Qcm9ncmVzc1Jvb3RJbmNsdWRlZExhbmVzID0gbWVyZ2VMYW5lcyh3b3JrSW5Qcm9ncmVzc1Jvb3RJbmNsdWRlZExhbmVzLCBsYW5lcyk7XG59XG5mdW5jdGlvbiBwb3BSZW5kZXJMYW5lcyhmaWJlcikge1xuICBzdWJ0cmVlUmVuZGVyTGFuZXMgPSBzdWJ0cmVlUmVuZGVyTGFuZXNDdXJzb3IuY3VycmVudDtcbiAgcG9wKHN1YnRyZWVSZW5kZXJMYW5lc0N1cnNvciwgZmliZXIpO1xufVxuXG5mdW5jdGlvbiBwcmVwYXJlRnJlc2hTdGFjayhyb290LCBsYW5lcykge1xuICByb290LmZpbmlzaGVkV29yayA9IG51bGw7XG4gIHJvb3QuZmluaXNoZWRMYW5lcyA9IE5vTGFuZXM7XG4gIHZhciB0aW1lb3V0SGFuZGxlID0gcm9vdC50aW1lb3V0SGFuZGxlO1xuXG4gIGlmICh0aW1lb3V0SGFuZGxlICE9PSBub1RpbWVvdXQpIHtcbiAgICAvLyBUaGUgcm9vdCBwcmV2aW91cyBzdXNwZW5kZWQgYW5kIHNjaGVkdWxlZCBhIHRpbWVvdXQgdG8gY29tbWl0IGEgZmFsbGJhY2tcbiAgICAvLyBzdGF0ZS4gTm93IHRoYXQgd2UgaGF2ZSBhZGRpdGlvbmFsIHdvcmssIGNhbmNlbCB0aGUgdGltZW91dC5cbiAgICByb290LnRpbWVvdXRIYW5kbGUgPSBub1RpbWVvdXQ7IC8vICRGbG93Rml4TWUgQ29tcGxhaW5zIG5vVGltZW91dCBpcyBub3QgYSBUaW1lb3V0SUQsIGRlc3BpdGUgdGhlIGNoZWNrIGFib3ZlXG5cbiAgICBjYW5jZWxUaW1lb3V0KHRpbWVvdXRIYW5kbGUpO1xuICB9XG5cbiAgaWYgKHdvcmtJblByb2dyZXNzICE9PSBudWxsKSB7XG4gICAgdmFyIGludGVycnVwdGVkV29yayA9IHdvcmtJblByb2dyZXNzLnJldHVybjtcblxuICAgIHdoaWxlIChpbnRlcnJ1cHRlZFdvcmsgIT09IG51bGwpIHtcbiAgICAgIHVud2luZEludGVycnVwdGVkV29yayhpbnRlcnJ1cHRlZFdvcmspO1xuICAgICAgaW50ZXJydXB0ZWRXb3JrID0gaW50ZXJydXB0ZWRXb3JrLnJldHVybjtcbiAgICB9XG4gIH1cblxuICB3b3JrSW5Qcm9ncmVzc1Jvb3QgPSByb290O1xuICB3b3JrSW5Qcm9ncmVzcyA9IGNyZWF0ZVdvcmtJblByb2dyZXNzKHJvb3QuY3VycmVudCwgbnVsbCk7XG4gIHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzID0gc3VidHJlZVJlbmRlckxhbmVzID0gd29ya0luUHJvZ3Jlc3NSb290SW5jbHVkZWRMYW5lcyA9IGxhbmVzO1xuICB3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzID0gUm9vdEluY29tcGxldGU7XG4gIHdvcmtJblByb2dyZXNzUm9vdEZhdGFsRXJyb3IgPSBudWxsO1xuICB3b3JrSW5Qcm9ncmVzc1Jvb3RTa2lwcGVkTGFuZXMgPSBOb0xhbmVzO1xuICB3b3JrSW5Qcm9ncmVzc1Jvb3RVcGRhdGVkTGFuZXMgPSBOb0xhbmVzO1xuICB3b3JrSW5Qcm9ncmVzc1Jvb3RQaW5nZWRMYW5lcyA9IE5vTGFuZXM7XG5cbiAge1xuICAgIHNwYXduZWRXb3JrRHVyaW5nUmVuZGVyID0gbnVsbDtcbiAgfVxuXG4gIHtcbiAgICBSZWFjdFN0cmljdE1vZGVXYXJuaW5ncy5kaXNjYXJkUGVuZGluZ1dhcm5pbmdzKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaGFuZGxlRXJyb3Iocm9vdCwgdGhyb3duVmFsdWUpIHtcbiAgZG8ge1xuICAgIHZhciBlcnJvcmVkV29yayA9IHdvcmtJblByb2dyZXNzO1xuXG4gICAgdHJ5IHtcbiAgICAgIC8vIFJlc2V0IG1vZHVsZS1sZXZlbCBzdGF0ZSB0aGF0IHdhcyBzZXQgZHVyaW5nIHRoZSByZW5kZXIgcGhhc2UuXG4gICAgICByZXNldENvbnRleHREZXBlbmRlbmNpZXMoKTtcbiAgICAgIHJlc2V0SG9va3NBZnRlclRocm93KCk7XG4gICAgICByZXNldEN1cnJlbnRGaWJlcigpOyAvLyBUT0RPOiBJIGZvdW5kIGFuZCBhZGRlZCB0aGlzIG1pc3NpbmcgbGluZSB3aGlsZSBpbnZlc3RpZ2F0aW5nIGFcbiAgICAgIC8vIHNlcGFyYXRlIGlzc3VlLiBXcml0ZSBhIHJlZ3Jlc3Npb24gdGVzdCB1c2luZyBzdHJpbmcgcmVmcy5cblxuICAgICAgUmVhY3RDdXJyZW50T3duZXIkMi5jdXJyZW50ID0gbnVsbDtcblxuICAgICAgaWYgKGVycm9yZWRXb3JrID09PSBudWxsIHx8IGVycm9yZWRXb3JrLnJldHVybiA9PT0gbnVsbCkge1xuICAgICAgICAvLyBFeHBlY3RlZCB0byBiZSB3b3JraW5nIG9uIGEgbm9uLXJvb3QgZmliZXIuIFRoaXMgaXMgYSBmYXRhbCBlcnJvclxuICAgICAgICAvLyBiZWNhdXNlIHRoZXJlJ3Mgbm8gYW5jZXN0b3IgdGhhdCBjYW4gaGFuZGxlIGl0OyB0aGUgcm9vdCBpc1xuICAgICAgICAvLyBzdXBwb3NlZCB0byBjYXB0dXJlIGFsbCBlcnJvcnMgdGhhdCB3ZXJlbid0IGNhdWdodCBieSBhbiBlcnJvclxuICAgICAgICAvLyBib3VuZGFyeS5cbiAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyA9IFJvb3RGYXRhbEVycm9yZWQ7XG4gICAgICAgIHdvcmtJblByb2dyZXNzUm9vdEZhdGFsRXJyb3IgPSB0aHJvd25WYWx1ZTsgLy8gU2V0IGB3b3JrSW5Qcm9ncmVzc2AgdG8gbnVsbC4gVGhpcyByZXByZXNlbnRzIGFkdmFuY2luZyB0byB0aGUgbmV4dFxuICAgICAgICAvLyBzaWJsaW5nLCBvciB0aGUgcGFyZW50IGlmIHRoZXJlIGFyZSBubyBzaWJsaW5ncy4gQnV0IHNpbmNlIHRoZSByb290XG4gICAgICAgIC8vIGhhcyBubyBzaWJsaW5ncyBub3IgYSBwYXJlbnQsIHdlIHNldCBpdCB0byBudWxsLiBVc3VhbGx5IHRoaXMgaXNcbiAgICAgICAgLy8gaGFuZGxlZCBieSBgY29tcGxldGVVbml0T2ZXb3JrYCBvciBgdW53aW5kV29ya2AsIGJ1dCBzaW5jZSB3ZSdyZVxuICAgICAgICAvLyBpbnRlbnRpb25hbGx5IG5vdCBjYWxsaW5nIHRob3NlLCB3ZSBuZWVkIHNldCBpdCBoZXJlLlxuICAgICAgICAvLyBUT0RPOiBDb25zaWRlciBjYWxsaW5nIGB1bndpbmRXb3JrYCB0byBwb3AgdGhlIGNvbnRleHRzLlxuXG4gICAgICAgIHdvcmtJblByb2dyZXNzID0gbnVsbDtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoZW5hYmxlUHJvZmlsZXJUaW1lciAmJiBlcnJvcmVkV29yay5tb2RlICYgUHJvZmlsZU1vZGUpIHtcbiAgICAgICAgLy8gUmVjb3JkIHRoZSB0aW1lIHNwZW50IHJlbmRlcmluZyBiZWZvcmUgYW4gZXJyb3Igd2FzIHRocm93bi4gVGhpc1xuICAgICAgICAvLyBhdm9pZHMgaW5hY2N1cmF0ZSBQcm9maWxlciBkdXJhdGlvbnMgaW4gdGhlIGNhc2Ugb2YgYVxuICAgICAgICAvLyBzdXNwZW5kZWQgcmVuZGVyLlxuICAgICAgICBzdG9wUHJvZmlsZXJUaW1lcklmUnVubmluZ0FuZFJlY29yZERlbHRhKGVycm9yZWRXb3JrLCB0cnVlKTtcbiAgICAgIH1cblxuICAgICAgdGhyb3dFeGNlcHRpb24ocm9vdCwgZXJyb3JlZFdvcmsucmV0dXJuLCBlcnJvcmVkV29yaywgdGhyb3duVmFsdWUsIHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzKTtcbiAgICAgIGNvbXBsZXRlVW5pdE9mV29yayhlcnJvcmVkV29yayk7XG4gICAgfSBjYXRjaCAoeWV0QW5vdGhlclRocm93blZhbHVlKSB7XG4gICAgICAvLyBTb21ldGhpbmcgaW4gdGhlIHJldHVybiBwYXRoIGFsc28gdGhyZXcuXG4gICAgICB0aHJvd25WYWx1ZSA9IHlldEFub3RoZXJUaHJvd25WYWx1ZTtcblxuICAgICAgaWYgKHdvcmtJblByb2dyZXNzID09PSBlcnJvcmVkV29yayAmJiBlcnJvcmVkV29yayAhPT0gbnVsbCkge1xuICAgICAgICAvLyBJZiB0aGlzIGJvdW5kYXJ5IGhhcyBhbHJlYWR5IGVycm9yZWQsIHRoZW4gd2UgaGFkIHRyb3VibGUgcHJvY2Vzc2luZ1xuICAgICAgICAvLyB0aGUgZXJyb3IuIEJ1YmJsZSBpdCB0byB0aGUgbmV4dCBib3VuZGFyeS5cbiAgICAgICAgZXJyb3JlZFdvcmsgPSBlcnJvcmVkV29yay5yZXR1cm47XG4gICAgICAgIHdvcmtJblByb2dyZXNzID0gZXJyb3JlZFdvcms7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlcnJvcmVkV29yayA9IHdvcmtJblByb2dyZXNzO1xuICAgICAgfVxuXG4gICAgICBjb250aW51ZTtcbiAgICB9IC8vIFJldHVybiB0byB0aGUgbm9ybWFsIHdvcmsgbG9vcC5cblxuXG4gICAgcmV0dXJuO1xuICB9IHdoaWxlICh0cnVlKTtcbn1cblxuZnVuY3Rpb24gcHVzaERpc3BhdGNoZXIoKSB7XG4gIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMi5jdXJyZW50O1xuICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDIuY3VycmVudCA9IENvbnRleHRPbmx5RGlzcGF0Y2hlcjtcblxuICBpZiAocHJldkRpc3BhdGNoZXIgPT09IG51bGwpIHtcbiAgICAvLyBUaGUgUmVhY3QgaXNvbW9ycGhpYyBwYWNrYWdlIGRvZXMgbm90IGluY2x1ZGUgYSBkZWZhdWx0IGRpc3BhdGNoZXIuXG4gICAgLy8gSW5zdGVhZCB0aGUgZmlyc3QgcmVuZGVyZXIgd2lsbCBsYXppbHkgYXR0YWNoIG9uZSwgaW4gb3JkZXIgdG8gZ2l2ZVxuICAgIC8vIG5pY2VyIGVycm9yIG1lc3NhZ2VzLlxuICAgIHJldHVybiBDb250ZXh0T25seURpc3BhdGNoZXI7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHByZXZEaXNwYXRjaGVyO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBvcERpc3BhdGNoZXIocHJldkRpc3BhdGNoZXIpIHtcbiAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQyLmN1cnJlbnQgPSBwcmV2RGlzcGF0Y2hlcjtcbn1cblxuZnVuY3Rpb24gcHVzaEludGVyYWN0aW9ucyhyb290KSB7XG4gIHtcbiAgICB2YXIgcHJldkludGVyYWN0aW9ucyA9IHRyYWNpbmcuX19pbnRlcmFjdGlvbnNSZWYuY3VycmVudDtcbiAgICB0cmFjaW5nLl9faW50ZXJhY3Rpb25zUmVmLmN1cnJlbnQgPSByb290Lm1lbW9pemVkSW50ZXJhY3Rpb25zO1xuICAgIHJldHVybiBwcmV2SW50ZXJhY3Rpb25zO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBvcEludGVyYWN0aW9ucyhwcmV2SW50ZXJhY3Rpb25zKSB7XG4gIHtcbiAgICB0cmFjaW5nLl9faW50ZXJhY3Rpb25zUmVmLmN1cnJlbnQgPSBwcmV2SW50ZXJhY3Rpb25zO1xuICB9XG59XG5cbmZ1bmN0aW9uIG1hcmtDb21taXRUaW1lT2ZGYWxsYmFjaygpIHtcbiAgZ2xvYmFsTW9zdFJlY2VudEZhbGxiYWNrVGltZSA9IG5vdygpO1xufVxuZnVuY3Rpb24gbWFya1NraXBwZWRVcGRhdGVMYW5lcyhsYW5lKSB7XG4gIHdvcmtJblByb2dyZXNzUm9vdFNraXBwZWRMYW5lcyA9IG1lcmdlTGFuZXMobGFuZSwgd29ya0luUHJvZ3Jlc3NSb290U2tpcHBlZExhbmVzKTtcbn1cbmZ1bmN0aW9uIHJlbmRlckRpZFN1c3BlbmQoKSB7XG4gIGlmICh3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzID09PSBSb290SW5jb21wbGV0ZSkge1xuICAgIHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgPSBSb290U3VzcGVuZGVkO1xuICB9XG59XG5mdW5jdGlvbiByZW5kZXJEaWRTdXNwZW5kRGVsYXlJZlBvc3NpYmxlKCkge1xuICBpZiAod29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyA9PT0gUm9vdEluY29tcGxldGUgfHwgd29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyA9PT0gUm9vdFN1c3BlbmRlZCkge1xuICAgIHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgPSBSb290U3VzcGVuZGVkV2l0aERlbGF5O1xuICB9IC8vIENoZWNrIGlmIHRoZXJlIGFyZSB1cGRhdGVzIHRoYXQgd2Ugc2tpcHBlZCB0cmVlIHRoYXQgbWlnaHQgaGF2ZSB1bmJsb2NrZWRcbiAgLy8gdGhpcyByZW5kZXIuXG5cblxuICBpZiAod29ya0luUHJvZ3Jlc3NSb290ICE9PSBudWxsICYmIChpbmNsdWRlc05vbklkbGVXb3JrKHdvcmtJblByb2dyZXNzUm9vdFNraXBwZWRMYW5lcykgfHwgaW5jbHVkZXNOb25JZGxlV29yayh3b3JrSW5Qcm9ncmVzc1Jvb3RVcGRhdGVkTGFuZXMpKSkge1xuICAgIC8vIE1hcmsgdGhlIGN1cnJlbnQgcmVuZGVyIGFzIHN1c3BlbmRlZCBzbyB0aGF0IHdlIHN3aXRjaCB0byB3b3JraW5nIG9uXG4gICAgLy8gdGhlIHVwZGF0ZXMgdGhhdCB3ZXJlIHNraXBwZWQuIFVzdWFsbHkgd2Ugb25seSBzdXNwZW5kIGF0IHRoZSBlbmQgb2ZcbiAgICAvLyB0aGUgcmVuZGVyIHBoYXNlLlxuICAgIC8vIFRPRE86IFdlIHNob3VsZCBwcm9iYWJseSBhbHdheXMgbWFyayB0aGUgcm9vdCBhcyBzdXNwZW5kZWQgaW1tZWRpYXRlbHlcbiAgICAvLyAoaW5zaWRlIHRoaXMgZnVuY3Rpb24pLCBzaW5jZSBieSBzdXNwZW5kaW5nIGF0IHRoZSBlbmQgb2YgdGhlIHJlbmRlclxuICAgIC8vIHBoYXNlIGludHJvZHVjZXMgYSBwb3RlbnRpYWwgbWlzdGFrZSB3aGVyZSB3ZSBzdXNwZW5kIGxhbmVzIHRoYXQgd2VyZVxuICAgIC8vIHBpbmdlZCBvciB1cGRhdGVkIHdoaWxlIHdlIHdlcmUgcmVuZGVyaW5nLlxuICAgIG1hcmtSb290U3VzcGVuZGVkJDEod29ya0luUHJvZ3Jlc3NSb290LCB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyk7XG4gIH1cbn1cbmZ1bmN0aW9uIHJlbmRlckRpZEVycm9yKCkge1xuICBpZiAod29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyAhPT0gUm9vdENvbXBsZXRlZCkge1xuICAgIHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgPSBSb290RXJyb3JlZDtcbiAgfVxufSAvLyBDYWxsZWQgZHVyaW5nIHJlbmRlciB0byBkZXRlcm1pbmUgaWYgYW55dGhpbmcgaGFzIHN1c3BlbmRlZC5cbi8vIFJldHVybnMgZmFsc2UgaWYgd2UncmUgbm90IHN1cmUuXG5cbmZ1bmN0aW9uIHJlbmRlckhhc05vdFN1c3BlbmRlZFlldCgpIHtcbiAgLy8gSWYgc29tZXRoaW5nIGVycm9yZWQgb3IgY29tcGxldGVkLCB3ZSBjYW4ndCByZWFsbHkgYmUgc3VyZSxcbiAgLy8gc28gdGhvc2UgYXJlIGZhbHNlLlxuICByZXR1cm4gd29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyA9PT0gUm9vdEluY29tcGxldGU7XG59XG5cbmZ1bmN0aW9uIHJlbmRlclJvb3RTeW5jKHJvb3QsIGxhbmVzKSB7XG4gIHZhciBwcmV2RXhlY3V0aW9uQ29udGV4dCA9IGV4ZWN1dGlvbkNvbnRleHQ7XG4gIGV4ZWN1dGlvbkNvbnRleHQgfD0gUmVuZGVyQ29udGV4dDtcbiAgdmFyIHByZXZEaXNwYXRjaGVyID0gcHVzaERpc3BhdGNoZXIoKTsgLy8gSWYgdGhlIHJvb3Qgb3IgbGFuZXMgaGF2ZSBjaGFuZ2VkLCB0aHJvdyBvdXQgdGhlIGV4aXN0aW5nIHN0YWNrXG4gIC8vIGFuZCBwcmVwYXJlIGEgZnJlc2ggb25lLiBPdGhlcndpc2Ugd2UnbGwgY29udGludWUgd2hlcmUgd2UgbGVmdCBvZmYuXG5cbiAgaWYgKHdvcmtJblByb2dyZXNzUm9vdCAhPT0gcm9vdCB8fCB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyAhPT0gbGFuZXMpIHtcbiAgICBwcmVwYXJlRnJlc2hTdGFjayhyb290LCBsYW5lcyk7XG4gICAgc3RhcnRXb3JrT25QZW5kaW5nSW50ZXJhY3Rpb25zKHJvb3QsIGxhbmVzKTtcbiAgfVxuXG4gIHZhciBwcmV2SW50ZXJhY3Rpb25zID0gcHVzaEludGVyYWN0aW9ucyhyb290KTtcblxuICBkbyB7XG4gICAgdHJ5IHtcbiAgICAgIHdvcmtMb29wU3luYygpO1xuICAgICAgYnJlYWs7XG4gICAgfSBjYXRjaCAodGhyb3duVmFsdWUpIHtcbiAgICAgIGhhbmRsZUVycm9yKHJvb3QsIHRocm93blZhbHVlKTtcbiAgICB9XG4gIH0gd2hpbGUgKHRydWUpO1xuXG4gIHJlc2V0Q29udGV4dERlcGVuZGVuY2llcygpO1xuXG4gIHtcbiAgICBwb3BJbnRlcmFjdGlvbnMocHJldkludGVyYWN0aW9ucyk7XG4gIH1cblxuICBleGVjdXRpb25Db250ZXh0ID0gcHJldkV4ZWN1dGlvbkNvbnRleHQ7XG4gIHBvcERpc3BhdGNoZXIocHJldkRpc3BhdGNoZXIpO1xuXG4gIGlmICh3b3JrSW5Qcm9ncmVzcyAhPT0gbnVsbCkge1xuICAgIC8vIFRoaXMgaXMgYSBzeW5jIHJlbmRlciwgc28gd2Ugc2hvdWxkIGhhdmUgZmluaXNoZWQgdGhlIHdob2xlIHRyZWUuXG4gICAge1xuICAgICAge1xuICAgICAgICB0aHJvdyBFcnJvciggXCJDYW5ub3QgY29tbWl0IGFuIGluY29tcGxldGUgcm9vdC4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIiApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG5cbiAgd29ya0luUHJvZ3Jlc3NSb290ID0gbnVsbDtcbiAgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMgPSBOb0xhbmVzO1xuICByZXR1cm4gd29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cztcbn0gLy8gVGhlIHdvcmsgbG9vcCBpcyBhbiBleHRyZW1lbHkgaG90IHBhdGguIFRlbGwgQ2xvc3VyZSBub3QgdG8gaW5saW5lIGl0LlxuXG4vKiogQG5vaW5saW5lICovXG5cblxuZnVuY3Rpb24gd29ya0xvb3BTeW5jKCkge1xuICAvLyBBbHJlYWR5IHRpbWVkIG91dCwgc28gcGVyZm9ybSB3b3JrIHdpdGhvdXQgY2hlY2tpbmcgaWYgd2UgbmVlZCB0byB5aWVsZC5cbiAgd2hpbGUgKHdvcmtJblByb2dyZXNzICE9PSBudWxsKSB7XG4gICAgcGVyZm9ybVVuaXRPZldvcmsod29ya0luUHJvZ3Jlc3MpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlbmRlclJvb3RDb25jdXJyZW50KHJvb3QsIGxhbmVzKSB7XG4gIHZhciBwcmV2RXhlY3V0aW9uQ29udGV4dCA9IGV4ZWN1dGlvbkNvbnRleHQ7XG4gIGV4ZWN1dGlvbkNvbnRleHQgfD0gUmVuZGVyQ29udGV4dDtcbiAgdmFyIHByZXZEaXNwYXRjaGVyID0gcHVzaERpc3BhdGNoZXIoKTsgLy8gSWYgdGhlIHJvb3Qgb3IgbGFuZXMgaGF2ZSBjaGFuZ2VkLCB0aHJvdyBvdXQgdGhlIGV4aXN0aW5nIHN0YWNrXG4gIC8vIGFuZCBwcmVwYXJlIGEgZnJlc2ggb25lLiBPdGhlcndpc2Ugd2UnbGwgY29udGludWUgd2hlcmUgd2UgbGVmdCBvZmYuXG5cbiAgaWYgKHdvcmtJblByb2dyZXNzUm9vdCAhPT0gcm9vdCB8fCB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyAhPT0gbGFuZXMpIHtcbiAgICByZXNldFJlbmRlclRpbWVyKCk7XG4gICAgcHJlcGFyZUZyZXNoU3RhY2socm9vdCwgbGFuZXMpO1xuICAgIHN0YXJ0V29ya09uUGVuZGluZ0ludGVyYWN0aW9ucyhyb290LCBsYW5lcyk7XG4gIH1cblxuICB2YXIgcHJldkludGVyYWN0aW9ucyA9IHB1c2hJbnRlcmFjdGlvbnMocm9vdCk7XG5cbiAgZG8ge1xuICAgIHRyeSB7XG4gICAgICB3b3JrTG9vcENvbmN1cnJlbnQoKTtcbiAgICAgIGJyZWFrO1xuICAgIH0gY2F0Y2ggKHRocm93blZhbHVlKSB7XG4gICAgICBoYW5kbGVFcnJvcihyb290LCB0aHJvd25WYWx1ZSk7XG4gICAgfVxuICB9IHdoaWxlICh0cnVlKTtcblxuICByZXNldENvbnRleHREZXBlbmRlbmNpZXMoKTtcblxuICB7XG4gICAgcG9wSW50ZXJhY3Rpb25zKHByZXZJbnRlcmFjdGlvbnMpO1xuICB9XG5cbiAgcG9wRGlzcGF0Y2hlcihwcmV2RGlzcGF0Y2hlcik7XG4gIGV4ZWN1dGlvbkNvbnRleHQgPSBwcmV2RXhlY3V0aW9uQ29udGV4dDtcblxuXG4gIGlmICh3b3JrSW5Qcm9ncmVzcyAhPT0gbnVsbCkge1xuXG4gICAgcmV0dXJuIFJvb3RJbmNvbXBsZXRlO1xuICB9IGVsc2Uge1xuXG5cbiAgICB3b3JrSW5Qcm9ncmVzc1Jvb3QgPSBudWxsO1xuICAgIHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzID0gTm9MYW5lczsgLy8gUmV0dXJuIHRoZSBmaW5hbCBleGl0IHN0YXR1cy5cblxuICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzO1xuICB9XG59XG4vKiogQG5vaW5saW5lICovXG5cblxuZnVuY3Rpb24gd29ya0xvb3BDb25jdXJyZW50KCkge1xuICAvLyBQZXJmb3JtIHdvcmsgdW50aWwgU2NoZWR1bGVyIGFza3MgdXMgdG8geWllbGRcbiAgd2hpbGUgKHdvcmtJblByb2dyZXNzICE9PSBudWxsICYmICFzaG91bGRZaWVsZCgpKSB7XG4gICAgcGVyZm9ybVVuaXRPZldvcmsod29ya0luUHJvZ3Jlc3MpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBlcmZvcm1Vbml0T2ZXb3JrKHVuaXRPZldvcmspIHtcbiAgLy8gVGhlIGN1cnJlbnQsIGZsdXNoZWQsIHN0YXRlIG9mIHRoaXMgZmliZXIgaXMgdGhlIGFsdGVybmF0ZS4gSWRlYWxseVxuICAvLyBub3RoaW5nIHNob3VsZCByZWx5IG9uIHRoaXMsIGJ1dCByZWx5aW5nIG9uIGl0IGhlcmUgbWVhbnMgdGhhdCB3ZSBkb24ndFxuICAvLyBuZWVkIGFuIGFkZGl0aW9uYWwgZmllbGQgb24gdGhlIHdvcmsgaW4gcHJvZ3Jlc3MuXG4gIHZhciBjdXJyZW50ID0gdW5pdE9mV29yay5hbHRlcm5hdGU7XG4gIHNldEN1cnJlbnRGaWJlcih1bml0T2ZXb3JrKTtcbiAgdmFyIG5leHQ7XG5cbiAgaWYgKCAodW5pdE9mV29yay5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUpIHtcbiAgICBzdGFydFByb2ZpbGVyVGltZXIodW5pdE9mV29yayk7XG4gICAgbmV4dCA9IGJlZ2luV29yayQxKGN1cnJlbnQsIHVuaXRPZldvcmssIHN1YnRyZWVSZW5kZXJMYW5lcyk7XG4gICAgc3RvcFByb2ZpbGVyVGltZXJJZlJ1bm5pbmdBbmRSZWNvcmREZWx0YSh1bml0T2ZXb3JrLCB0cnVlKTtcbiAgfSBlbHNlIHtcbiAgICBuZXh0ID0gYmVnaW5Xb3JrJDEoY3VycmVudCwgdW5pdE9mV29yaywgc3VidHJlZVJlbmRlckxhbmVzKTtcbiAgfVxuXG4gIHJlc2V0Q3VycmVudEZpYmVyKCk7XG4gIHVuaXRPZldvcmsubWVtb2l6ZWRQcm9wcyA9IHVuaXRPZldvcmsucGVuZGluZ1Byb3BzO1xuXG4gIGlmIChuZXh0ID09PSBudWxsKSB7XG4gICAgLy8gSWYgdGhpcyBkb2Vzbid0IHNwYXduIG5ldyB3b3JrLCBjb21wbGV0ZSB0aGUgY3VycmVudCB3b3JrLlxuICAgIGNvbXBsZXRlVW5pdE9mV29yayh1bml0T2ZXb3JrKTtcbiAgfSBlbHNlIHtcbiAgICB3b3JrSW5Qcm9ncmVzcyA9IG5leHQ7XG4gIH1cblxuICBSZWFjdEN1cnJlbnRPd25lciQyLmN1cnJlbnQgPSBudWxsO1xufVxuXG5mdW5jdGlvbiBjb21wbGV0ZVVuaXRPZldvcmsodW5pdE9mV29yaykge1xuICAvLyBBdHRlbXB0IHRvIGNvbXBsZXRlIHRoZSBjdXJyZW50IHVuaXQgb2Ygd29yaywgdGhlbiBtb3ZlIHRvIHRoZSBuZXh0XG4gIC8vIHNpYmxpbmcuIElmIHRoZXJlIGFyZSBubyBtb3JlIHNpYmxpbmdzLCByZXR1cm4gdG8gdGhlIHBhcmVudCBmaWJlci5cbiAgdmFyIGNvbXBsZXRlZFdvcmsgPSB1bml0T2ZXb3JrO1xuXG4gIGRvIHtcbiAgICAvLyBUaGUgY3VycmVudCwgZmx1c2hlZCwgc3RhdGUgb2YgdGhpcyBmaWJlciBpcyB0aGUgYWx0ZXJuYXRlLiBJZGVhbGx5XG4gICAgLy8gbm90aGluZyBzaG91bGQgcmVseSBvbiB0aGlzLCBidXQgcmVseWluZyBvbiBpdCBoZXJlIG1lYW5zIHRoYXQgd2UgZG9uJ3RcbiAgICAvLyBuZWVkIGFuIGFkZGl0aW9uYWwgZmllbGQgb24gdGhlIHdvcmsgaW4gcHJvZ3Jlc3MuXG4gICAgdmFyIGN1cnJlbnQgPSBjb21wbGV0ZWRXb3JrLmFsdGVybmF0ZTtcbiAgICB2YXIgcmV0dXJuRmliZXIgPSBjb21wbGV0ZWRXb3JrLnJldHVybjsgLy8gQ2hlY2sgaWYgdGhlIHdvcmsgY29tcGxldGVkIG9yIGlmIHNvbWV0aGluZyB0aHJldy5cblxuICAgIGlmICgoY29tcGxldGVkV29yay5mbGFncyAmIEluY29tcGxldGUpID09PSBOb0ZsYWdzKSB7XG4gICAgICBzZXRDdXJyZW50RmliZXIoY29tcGxldGVkV29yayk7XG4gICAgICB2YXIgbmV4dCA9IHZvaWQgMDtcblxuICAgICAgaWYgKCAoY29tcGxldGVkV29yay5tb2RlICYgUHJvZmlsZU1vZGUpID09PSBOb01vZGUpIHtcbiAgICAgICAgbmV4dCA9IGNvbXBsZXRlV29yayhjdXJyZW50LCBjb21wbGV0ZWRXb3JrLCBzdWJ0cmVlUmVuZGVyTGFuZXMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3RhcnRQcm9maWxlclRpbWVyKGNvbXBsZXRlZFdvcmspO1xuICAgICAgICBuZXh0ID0gY29tcGxldGVXb3JrKGN1cnJlbnQsIGNvbXBsZXRlZFdvcmssIHN1YnRyZWVSZW5kZXJMYW5lcyk7IC8vIFVwZGF0ZSByZW5kZXIgZHVyYXRpb24gYXNzdW1pbmcgd2UgZGlkbid0IGVycm9yLlxuXG4gICAgICAgIHN0b3BQcm9maWxlclRpbWVySWZSdW5uaW5nQW5kUmVjb3JkRGVsdGEoY29tcGxldGVkV29yaywgZmFsc2UpO1xuICAgICAgfVxuXG4gICAgICByZXNldEN1cnJlbnRGaWJlcigpO1xuXG4gICAgICBpZiAobmV4dCAhPT0gbnVsbCkge1xuICAgICAgICAvLyBDb21wbGV0aW5nIHRoaXMgZmliZXIgc3Bhd25lZCBuZXcgd29yay4gV29yayBvbiB0aGF0IG5leHQuXG4gICAgICAgIHdvcmtJblByb2dyZXNzID0gbmV4dDtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICByZXNldENoaWxkTGFuZXMoY29tcGxldGVkV29yayk7XG5cbiAgICAgIGlmIChyZXR1cm5GaWJlciAhPT0gbnVsbCAmJiAvLyBEbyBub3QgYXBwZW5kIGVmZmVjdHMgdG8gcGFyZW50cyBpZiBhIHNpYmxpbmcgZmFpbGVkIHRvIGNvbXBsZXRlXG4gICAgICAocmV0dXJuRmliZXIuZmxhZ3MgJiBJbmNvbXBsZXRlKSA9PT0gTm9GbGFncykge1xuICAgICAgICAvLyBBcHBlbmQgYWxsIHRoZSBlZmZlY3RzIG9mIHRoZSBzdWJ0cmVlIGFuZCB0aGlzIGZpYmVyIG9udG8gdGhlIGVmZmVjdFxuICAgICAgICAvLyBsaXN0IG9mIHRoZSBwYXJlbnQuIFRoZSBjb21wbGV0aW9uIG9yZGVyIG9mIHRoZSBjaGlsZHJlbiBhZmZlY3RzIHRoZVxuICAgICAgICAvLyBzaWRlLWVmZmVjdCBvcmRlci5cbiAgICAgICAgaWYgKHJldHVybkZpYmVyLmZpcnN0RWZmZWN0ID09PSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuRmliZXIuZmlyc3RFZmZlY3QgPSBjb21wbGV0ZWRXb3JrLmZpcnN0RWZmZWN0O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvbXBsZXRlZFdvcmsubGFzdEVmZmVjdCAhPT0gbnVsbCkge1xuICAgICAgICAgIGlmIChyZXR1cm5GaWJlci5sYXN0RWZmZWN0ICE9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm5GaWJlci5sYXN0RWZmZWN0Lm5leHRFZmZlY3QgPSBjb21wbGV0ZWRXb3JrLmZpcnN0RWZmZWN0O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybkZpYmVyLmxhc3RFZmZlY3QgPSBjb21wbGV0ZWRXb3JrLmxhc3RFZmZlY3Q7XG4gICAgICAgIH0gLy8gSWYgdGhpcyBmaWJlciBoYWQgc2lkZS1lZmZlY3RzLCB3ZSBhcHBlbmQgaXQgQUZURVIgdGhlIGNoaWxkcmVuJ3NcbiAgICAgICAgLy8gc2lkZS1lZmZlY3RzLiBXZSBjYW4gcGVyZm9ybSBjZXJ0YWluIHNpZGUtZWZmZWN0cyBlYXJsaWVyIGlmIG5lZWRlZCxcbiAgICAgICAgLy8gYnkgZG9pbmcgbXVsdGlwbGUgcGFzc2VzIG92ZXIgdGhlIGVmZmVjdCBsaXN0LiBXZSBkb24ndCB3YW50IHRvXG4gICAgICAgIC8vIHNjaGVkdWxlIG91ciBvd24gc2lkZS1lZmZlY3Qgb24gb3VyIG93biBsaXN0IGJlY2F1c2UgaWYgZW5kIHVwXG4gICAgICAgIC8vIHJldXNpbmcgY2hpbGRyZW4gd2UnbGwgc2NoZWR1bGUgdGhpcyBlZmZlY3Qgb250byBpdHNlbGYgc2luY2Ugd2UncmVcbiAgICAgICAgLy8gYXQgdGhlIGVuZC5cblxuXG4gICAgICAgIHZhciBmbGFncyA9IGNvbXBsZXRlZFdvcmsuZmxhZ3M7IC8vIFNraXAgYm90aCBOb1dvcmsgYW5kIFBlcmZvcm1lZFdvcmsgdGFncyB3aGVuIGNyZWF0aW5nIHRoZSBlZmZlY3RcbiAgICAgICAgLy8gbGlzdC4gUGVyZm9ybWVkV29yayBlZmZlY3QgaXMgcmVhZCBieSBSZWFjdCBEZXZUb29scyBidXQgc2hvdWxkbid0IGJlXG4gICAgICAgIC8vIGNvbW1pdHRlZC5cblxuICAgICAgICBpZiAoZmxhZ3MgPiBQZXJmb3JtZWRXb3JrKSB7XG4gICAgICAgICAgaWYgKHJldHVybkZpYmVyLmxhc3RFZmZlY3QgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybkZpYmVyLmxhc3RFZmZlY3QubmV4dEVmZmVjdCA9IGNvbXBsZXRlZFdvcms7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybkZpYmVyLmZpcnN0RWZmZWN0ID0gY29tcGxldGVkV29yaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm5GaWJlci5sYXN0RWZmZWN0ID0gY29tcGxldGVkV29yaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUaGlzIGZpYmVyIGRpZCBub3QgY29tcGxldGUgYmVjYXVzZSBzb21ldGhpbmcgdGhyZXcuIFBvcCB2YWx1ZXMgb2ZmXG4gICAgICAvLyB0aGUgc3RhY2sgd2l0aG91dCBlbnRlcmluZyB0aGUgY29tcGxldGUgcGhhc2UuIElmIHRoaXMgaXMgYSBib3VuZGFyeSxcbiAgICAgIC8vIGNhcHR1cmUgdmFsdWVzIGlmIHBvc3NpYmxlLlxuICAgICAgdmFyIF9uZXh0ID0gdW53aW5kV29yayhjb21wbGV0ZWRXb3JrKTsgLy8gQmVjYXVzZSB0aGlzIGZpYmVyIGRpZCBub3QgY29tcGxldGUsIGRvbid0IHJlc2V0IGl0cyBleHBpcmF0aW9uIHRpbWUuXG5cblxuICAgICAgaWYgKF9uZXh0ICE9PSBudWxsKSB7XG4gICAgICAgIC8vIElmIGNvbXBsZXRpbmcgdGhpcyB3b3JrIHNwYXduZWQgbmV3IHdvcmssIGRvIHRoYXQgbmV4dC4gV2UnbGwgY29tZVxuICAgICAgICAvLyBiYWNrIGhlcmUgYWdhaW4uXG4gICAgICAgIC8vIFNpbmNlIHdlJ3JlIHJlc3RhcnRpbmcsIHJlbW92ZSBhbnl0aGluZyB0aGF0IGlzIG5vdCBhIGhvc3QgZWZmZWN0XG4gICAgICAgIC8vIGZyb20gdGhlIGVmZmVjdCB0YWcuXG4gICAgICAgIF9uZXh0LmZsYWdzICY9IEhvc3RFZmZlY3RNYXNrO1xuICAgICAgICB3b3JrSW5Qcm9ncmVzcyA9IF9uZXh0O1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICggKGNvbXBsZXRlZFdvcmsubW9kZSAmIFByb2ZpbGVNb2RlKSAhPT0gTm9Nb2RlKSB7XG4gICAgICAgIC8vIFJlY29yZCB0aGUgcmVuZGVyIGR1cmF0aW9uIGZvciB0aGUgZmliZXIgdGhhdCBlcnJvcmVkLlxuICAgICAgICBzdG9wUHJvZmlsZXJUaW1lcklmUnVubmluZ0FuZFJlY29yZERlbHRhKGNvbXBsZXRlZFdvcmssIGZhbHNlKTsgLy8gSW5jbHVkZSB0aGUgdGltZSBzcGVudCB3b3JraW5nIG9uIGZhaWxlZCBjaGlsZHJlbiBiZWZvcmUgY29udGludWluZy5cblxuICAgICAgICB2YXIgYWN0dWFsRHVyYXRpb24gPSBjb21wbGV0ZWRXb3JrLmFjdHVhbER1cmF0aW9uO1xuICAgICAgICB2YXIgY2hpbGQgPSBjb21wbGV0ZWRXb3JrLmNoaWxkO1xuXG4gICAgICAgIHdoaWxlIChjaGlsZCAhPT0gbnVsbCkge1xuICAgICAgICAgIGFjdHVhbER1cmF0aW9uICs9IGNoaWxkLmFjdHVhbER1cmF0aW9uO1xuICAgICAgICAgIGNoaWxkID0gY2hpbGQuc2libGluZztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbXBsZXRlZFdvcmsuYWN0dWFsRHVyYXRpb24gPSBhY3R1YWxEdXJhdGlvbjtcbiAgICAgIH1cblxuICAgICAgaWYgKHJldHVybkZpYmVyICE9PSBudWxsKSB7XG4gICAgICAgIC8vIE1hcmsgdGhlIHBhcmVudCBmaWJlciBhcyBpbmNvbXBsZXRlIGFuZCBjbGVhciBpdHMgZWZmZWN0IGxpc3QuXG4gICAgICAgIHJldHVybkZpYmVyLmZpcnN0RWZmZWN0ID0gcmV0dXJuRmliZXIubGFzdEVmZmVjdCA9IG51bGw7XG4gICAgICAgIHJldHVybkZpYmVyLmZsYWdzIHw9IEluY29tcGxldGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIHNpYmxpbmdGaWJlciA9IGNvbXBsZXRlZFdvcmsuc2libGluZztcblxuICAgIGlmIChzaWJsaW5nRmliZXIgIT09IG51bGwpIHtcbiAgICAgIC8vIElmIHRoZXJlIGlzIG1vcmUgd29yayB0byBkbyBpbiB0aGlzIHJldHVybkZpYmVyLCBkbyB0aGF0IG5leHQuXG4gICAgICB3b3JrSW5Qcm9ncmVzcyA9IHNpYmxpbmdGaWJlcjtcbiAgICAgIHJldHVybjtcbiAgICB9IC8vIE90aGVyd2lzZSwgcmV0dXJuIHRvIHRoZSBwYXJlbnRcblxuXG4gICAgY29tcGxldGVkV29yayA9IHJldHVybkZpYmVyOyAvLyBVcGRhdGUgdGhlIG5leHQgdGhpbmcgd2UncmUgd29ya2luZyBvbiBpbiBjYXNlIHNvbWV0aGluZyB0aHJvd3MuXG5cbiAgICB3b3JrSW5Qcm9ncmVzcyA9IGNvbXBsZXRlZFdvcms7XG4gIH0gd2hpbGUgKGNvbXBsZXRlZFdvcmsgIT09IG51bGwpOyAvLyBXZSd2ZSByZWFjaGVkIHRoZSByb290LlxuXG5cbiAgaWYgKHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgPT09IFJvb3RJbmNvbXBsZXRlKSB7XG4gICAgd29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyA9IFJvb3RDb21wbGV0ZWQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVzZXRDaGlsZExhbmVzKGNvbXBsZXRlZFdvcmspIHtcbiAgaWYgKCAvLyBUT0RPOiBNb3ZlIHRoaXMgY2hlY2sgb3V0IG9mIHRoZSBob3QgcGF0aCBieSBtb3ZpbmcgYHJlc2V0Q2hpbGRMYW5lc2BcbiAgLy8gdG8gc3dpdGNoIHN0YXRlbWVudCBpbiBgY29tcGxldGVXb3JrYC5cbiAgKGNvbXBsZXRlZFdvcmsudGFnID09PSBMZWdhY3lIaWRkZW5Db21wb25lbnQgfHwgY29tcGxldGVkV29yay50YWcgPT09IE9mZnNjcmVlbkNvbXBvbmVudCkgJiYgY29tcGxldGVkV29yay5tZW1vaXplZFN0YXRlICE9PSBudWxsICYmICFpbmNsdWRlc1NvbWVMYW5lKHN1YnRyZWVSZW5kZXJMYW5lcywgT2Zmc2NyZWVuTGFuZSkgJiYgKGNvbXBsZXRlZFdvcmsubW9kZSAmIENvbmN1cnJlbnRNb2RlKSAhPT0gTm9MYW5lcykge1xuICAgIC8vIFRoZSBjaGlsZHJlbiBvZiB0aGlzIGNvbXBvbmVudCBhcmUgaGlkZGVuLiBEb24ndCBidWJibGUgdGhlaXJcbiAgICAvLyBleHBpcmF0aW9uIHRpbWVzLlxuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciBuZXdDaGlsZExhbmVzID0gTm9MYW5lczsgLy8gQnViYmxlIHVwIHRoZSBlYXJsaWVzdCBleHBpcmF0aW9uIHRpbWUuXG5cbiAgaWYgKCAoY29tcGxldGVkV29yay5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUpIHtcbiAgICAvLyBJbiBwcm9maWxpbmcgbW9kZSwgcmVzZXRDaGlsZEV4cGlyYXRpb25UaW1lIGlzIGFsc28gdXNlZCB0byByZXNldFxuICAgIC8vIHByb2ZpbGVyIGR1cmF0aW9ucy5cbiAgICB2YXIgYWN0dWFsRHVyYXRpb24gPSBjb21wbGV0ZWRXb3JrLmFjdHVhbER1cmF0aW9uO1xuICAgIHZhciB0cmVlQmFzZUR1cmF0aW9uID0gY29tcGxldGVkV29yay5zZWxmQmFzZUR1cmF0aW9uOyAvLyBXaGVuIGEgZmliZXIgaXMgY2xvbmVkLCBpdHMgYWN0dWFsRHVyYXRpb24gaXMgcmVzZXQgdG8gMC4gVGhpcyB2YWx1ZSB3aWxsXG4gICAgLy8gb25seSBiZSB1cGRhdGVkIGlmIHdvcmsgaXMgZG9uZSBvbiB0aGUgZmliZXIgKGkuZS4gaXQgZG9lc24ndCBiYWlsb3V0KS5cbiAgICAvLyBXaGVuIHdvcmsgaXMgZG9uZSwgaXQgc2hvdWxkIGJ1YmJsZSB0byB0aGUgcGFyZW50J3MgYWN0dWFsRHVyYXRpb24uIElmXG4gICAgLy8gdGhlIGZpYmVyIGhhcyBub3QgYmVlbiBjbG9uZWQgdGhvdWdoLCAobWVhbmluZyBubyB3b3JrIHdhcyBkb25lKSwgdGhlblxuICAgIC8vIHRoaXMgdmFsdWUgd2lsbCByZWZsZWN0IHRoZSBhbW91bnQgb2YgdGltZSBzcGVudCB3b3JraW5nIG9uIGEgcHJldmlvdXNcbiAgICAvLyByZW5kZXIuIEluIHRoYXQgY2FzZSBpdCBzaG91bGQgbm90IGJ1YmJsZS4gV2UgZGV0ZXJtaW5lIHdoZXRoZXIgaXQgd2FzXG4gICAgLy8gY2xvbmVkIGJ5IGNvbXBhcmluZyB0aGUgY2hpbGQgcG9pbnRlci5cblxuICAgIHZhciBzaG91bGRCdWJibGVBY3R1YWxEdXJhdGlvbnMgPSBjb21wbGV0ZWRXb3JrLmFsdGVybmF0ZSA9PT0gbnVsbCB8fCBjb21wbGV0ZWRXb3JrLmNoaWxkICE9PSBjb21wbGV0ZWRXb3JrLmFsdGVybmF0ZS5jaGlsZDtcbiAgICB2YXIgY2hpbGQgPSBjb21wbGV0ZWRXb3JrLmNoaWxkO1xuXG4gICAgd2hpbGUgKGNoaWxkICE9PSBudWxsKSB7XG4gICAgICBuZXdDaGlsZExhbmVzID0gbWVyZ2VMYW5lcyhuZXdDaGlsZExhbmVzLCBtZXJnZUxhbmVzKGNoaWxkLmxhbmVzLCBjaGlsZC5jaGlsZExhbmVzKSk7XG5cbiAgICAgIGlmIChzaG91bGRCdWJibGVBY3R1YWxEdXJhdGlvbnMpIHtcbiAgICAgICAgYWN0dWFsRHVyYXRpb24gKz0gY2hpbGQuYWN0dWFsRHVyYXRpb247XG4gICAgICB9XG5cbiAgICAgIHRyZWVCYXNlRHVyYXRpb24gKz0gY2hpbGQudHJlZUJhc2VEdXJhdGlvbjtcbiAgICAgIGNoaWxkID0gY2hpbGQuc2libGluZztcbiAgICB9XG5cbiAgICB2YXIgaXNUaW1lZE91dFN1c3BlbnNlID0gY29tcGxldGVkV29yay50YWcgPT09IFN1c3BlbnNlQ29tcG9uZW50ICYmIGNvbXBsZXRlZFdvcmsubWVtb2l6ZWRTdGF0ZSAhPT0gbnVsbDtcblxuICAgIGlmIChpc1RpbWVkT3V0U3VzcGVuc2UpIHtcbiAgICAgIC8vIERvbid0IGNvdW50IHRpbWUgc3BlbnQgaW4gYSB0aW1lZCBvdXQgU3VzcGVuc2Ugc3VidHJlZSBhcyBwYXJ0IG9mIHRoZSBiYXNlIGR1cmF0aW9uLlxuICAgICAgdmFyIHByaW1hcnlDaGlsZEZyYWdtZW50ID0gY29tcGxldGVkV29yay5jaGlsZDtcblxuICAgICAgaWYgKHByaW1hcnlDaGlsZEZyYWdtZW50ICE9PSBudWxsKSB7XG4gICAgICAgIHRyZWVCYXNlRHVyYXRpb24gLT0gcHJpbWFyeUNoaWxkRnJhZ21lbnQudHJlZUJhc2VEdXJhdGlvbjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wbGV0ZWRXb3JrLmFjdHVhbER1cmF0aW9uID0gYWN0dWFsRHVyYXRpb247XG4gICAgY29tcGxldGVkV29yay50cmVlQmFzZUR1cmF0aW9uID0gdHJlZUJhc2VEdXJhdGlvbjtcbiAgfSBlbHNlIHtcbiAgICB2YXIgX2NoaWxkID0gY29tcGxldGVkV29yay5jaGlsZDtcblxuICAgIHdoaWxlIChfY2hpbGQgIT09IG51bGwpIHtcbiAgICAgIG5ld0NoaWxkTGFuZXMgPSBtZXJnZUxhbmVzKG5ld0NoaWxkTGFuZXMsIG1lcmdlTGFuZXMoX2NoaWxkLmxhbmVzLCBfY2hpbGQuY2hpbGRMYW5lcykpO1xuICAgICAgX2NoaWxkID0gX2NoaWxkLnNpYmxpbmc7XG4gICAgfVxuICB9XG5cbiAgY29tcGxldGVkV29yay5jaGlsZExhbmVzID0gbmV3Q2hpbGRMYW5lcztcbn1cblxuZnVuY3Rpb24gY29tbWl0Um9vdChyb290KSB7XG4gIHZhciByZW5kZXJQcmlvcml0eUxldmVsID0gZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWwoKTtcbiAgcnVuV2l0aFByaW9yaXR5JDEoSW1tZWRpYXRlUHJpb3JpdHkkMSwgY29tbWl0Um9vdEltcGwuYmluZChudWxsLCByb290LCByZW5kZXJQcmlvcml0eUxldmVsKSk7XG4gIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiBjb21taXRSb290SW1wbChyb290LCByZW5kZXJQcmlvcml0eUxldmVsKSB7XG4gIGRvIHtcbiAgICAvLyBgZmx1c2hQYXNzaXZlRWZmZWN0c2Agd2lsbCBjYWxsIGBmbHVzaFN5bmNVcGRhdGVRdWV1ZWAgYXQgdGhlIGVuZCwgd2hpY2hcbiAgICAvLyBtZWFucyBgZmx1c2hQYXNzaXZlRWZmZWN0c2Agd2lsbCBzb21ldGltZXMgcmVzdWx0IGluIGFkZGl0aW9uYWxcbiAgICAvLyBwYXNzaXZlIGVmZmVjdHMuIFNvIHdlIG5lZWQgdG8ga2VlcCBmbHVzaGluZyBpbiBhIGxvb3AgdW50aWwgdGhlcmUgYXJlXG4gICAgLy8gbm8gbW9yZSBwZW5kaW5nIGVmZmVjdHMuXG4gICAgLy8gVE9ETzogTWlnaHQgYmUgYmV0dGVyIGlmIGBmbHVzaFBhc3NpdmVFZmZlY3RzYCBkaWQgbm90IGF1dG9tYXRpY2FsbHlcbiAgICAvLyBmbHVzaCBzeW5jaHJvbm91cyB3b3JrIGF0IHRoZSBlbmQsIHRvIGF2b2lkIGZhY3RvcmluZyBoYXphcmRzIGxpa2UgdGhpcy5cbiAgICBmbHVzaFBhc3NpdmVFZmZlY3RzKCk7XG4gIH0gd2hpbGUgKHJvb3RXaXRoUGVuZGluZ1Bhc3NpdmVFZmZlY3RzICE9PSBudWxsKTtcblxuICBmbHVzaFJlbmRlclBoYXNlU3RyaWN0TW9kZVdhcm5pbmdzSW5ERVYoKTtcblxuICBpZiAoISgoZXhlY3V0aW9uQ29udGV4dCAmIChSZW5kZXJDb250ZXh0IHwgQ29tbWl0Q29udGV4dCkpID09PSBOb0NvbnRleHQpKSB7XG4gICAge1xuICAgICAgdGhyb3cgRXJyb3IoIFwiU2hvdWxkIG5vdCBhbHJlYWR5IGJlIHdvcmtpbmcuXCIgKTtcbiAgICB9XG4gIH1cblxuICB2YXIgZmluaXNoZWRXb3JrID0gcm9vdC5maW5pc2hlZFdvcms7XG4gIHZhciBsYW5lcyA9IHJvb3QuZmluaXNoZWRMYW5lcztcblxuICBpZiAoZmluaXNoZWRXb3JrID09PSBudWxsKSB7XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJvb3QuZmluaXNoZWRXb3JrID0gbnVsbDtcbiAgcm9vdC5maW5pc2hlZExhbmVzID0gTm9MYW5lcztcblxuICBpZiAoIShmaW5pc2hlZFdvcmsgIT09IHJvb3QuY3VycmVudCkpIHtcbiAgICB7XG4gICAgICB0aHJvdyBFcnJvciggXCJDYW5ub3QgY29tbWl0IHRoZSBzYW1lIHRyZWUgYXMgYmVmb3JlLiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLlwiICk7XG4gICAgfVxuICB9IC8vIGNvbW1pdFJvb3QgbmV2ZXIgcmV0dXJucyBhIGNvbnRpbnVhdGlvbjsgaXQgYWx3YXlzIGZpbmlzaGVzIHN5bmNocm9ub3VzbHkuXG4gIC8vIFNvIHdlIGNhbiBjbGVhciB0aGVzZSBub3cgdG8gYWxsb3cgYSBuZXcgY2FsbGJhY2sgdG8gYmUgc2NoZWR1bGVkLlxuXG5cbiAgcm9vdC5jYWxsYmFja05vZGUgPSBudWxsOyAvLyBVcGRhdGUgdGhlIGZpcnN0IGFuZCBsYXN0IHBlbmRpbmcgdGltZXMgb24gdGhpcyByb290LiBUaGUgbmV3IGZpcnN0XG4gIC8vIHBlbmRpbmcgdGltZSBpcyB3aGF0ZXZlciBpcyBsZWZ0IG9uIHRoZSByb290IGZpYmVyLlxuXG4gIHZhciByZW1haW5pbmdMYW5lcyA9IG1lcmdlTGFuZXMoZmluaXNoZWRXb3JrLmxhbmVzLCBmaW5pc2hlZFdvcmsuY2hpbGRMYW5lcyk7XG4gIG1hcmtSb290RmluaXNoZWQocm9vdCwgcmVtYWluaW5nTGFuZXMpOyAvLyBDbGVhciBhbHJlYWR5IGZpbmlzaGVkIGRpc2NyZXRlIHVwZGF0ZXMgaW4gY2FzZSB0aGF0IGEgbGF0ZXIgY2FsbCBvZlxuICAvLyBgZmx1c2hEaXNjcmV0ZVVwZGF0ZXNgIHN0YXJ0cyBhIHVzZWxlc3MgcmVuZGVyIHBhc3Mgd2hpY2ggbWF5IGNhbmNlbHNcbiAgLy8gYSBzY2hlZHVsZWQgdGltZW91dC5cblxuICBpZiAocm9vdHNXaXRoUGVuZGluZ0Rpc2NyZXRlVXBkYXRlcyAhPT0gbnVsbCkge1xuICAgIGlmICghaGFzRGlzY3JldGVMYW5lcyhyZW1haW5pbmdMYW5lcykgJiYgcm9vdHNXaXRoUGVuZGluZ0Rpc2NyZXRlVXBkYXRlcy5oYXMocm9vdCkpIHtcbiAgICAgIHJvb3RzV2l0aFBlbmRpbmdEaXNjcmV0ZVVwZGF0ZXMuZGVsZXRlKHJvb3QpO1xuICAgIH1cbiAgfVxuXG4gIGlmIChyb290ID09PSB3b3JrSW5Qcm9ncmVzc1Jvb3QpIHtcbiAgICAvLyBXZSBjYW4gcmVzZXQgdGhlc2Ugbm93IHRoYXQgdGhleSBhcmUgZmluaXNoZWQuXG4gICAgd29ya0luUHJvZ3Jlc3NSb290ID0gbnVsbDtcbiAgICB3b3JrSW5Qcm9ncmVzcyA9IG51bGw7XG4gICAgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMgPSBOb0xhbmVzO1xuICB9IC8vIEdldCB0aGUgbGlzdCBvZiBlZmZlY3RzLlxuXG5cbiAgdmFyIGZpcnN0RWZmZWN0O1xuXG4gIGlmIChmaW5pc2hlZFdvcmsuZmxhZ3MgPiBQZXJmb3JtZWRXb3JrKSB7XG4gICAgLy8gQSBmaWJlcidzIGVmZmVjdCBsaXN0IGNvbnNpc3RzIG9ubHkgb2YgaXRzIGNoaWxkcmVuLCBub3QgaXRzZWxmLiBTbyBpZlxuICAgIC8vIHRoZSByb290IGhhcyBhbiBlZmZlY3QsIHdlIG5lZWQgdG8gYWRkIGl0IHRvIHRoZSBlbmQgb2YgdGhlIGxpc3QuIFRoZVxuICAgIC8vIHJlc3VsdGluZyBsaXN0IGlzIHRoZSBzZXQgdGhhdCB3b3VsZCBiZWxvbmcgdG8gdGhlIHJvb3QncyBwYXJlbnQsIGlmIGl0XG4gICAgLy8gaGFkIG9uZTsgdGhhdCBpcywgYWxsIHRoZSBlZmZlY3RzIGluIHRoZSB0cmVlIGluY2x1ZGluZyB0aGUgcm9vdC5cbiAgICBpZiAoZmluaXNoZWRXb3JrLmxhc3RFZmZlY3QgIT09IG51bGwpIHtcbiAgICAgIGZpbmlzaGVkV29yay5sYXN0RWZmZWN0Lm5leHRFZmZlY3QgPSBmaW5pc2hlZFdvcms7XG4gICAgICBmaXJzdEVmZmVjdCA9IGZpbmlzaGVkV29yay5maXJzdEVmZmVjdDtcbiAgICB9IGVsc2Uge1xuICAgICAgZmlyc3RFZmZlY3QgPSBmaW5pc2hlZFdvcms7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIC8vIFRoZXJlIGlzIG5vIGVmZmVjdCBvbiB0aGUgcm9vdC5cbiAgICBmaXJzdEVmZmVjdCA9IGZpbmlzaGVkV29yay5maXJzdEVmZmVjdDtcbiAgfVxuXG4gIGlmIChmaXJzdEVmZmVjdCAhPT0gbnVsbCkge1xuXG4gICAgdmFyIHByZXZFeGVjdXRpb25Db250ZXh0ID0gZXhlY3V0aW9uQ29udGV4dDtcbiAgICBleGVjdXRpb25Db250ZXh0IHw9IENvbW1pdENvbnRleHQ7XG4gICAgdmFyIHByZXZJbnRlcmFjdGlvbnMgPSBwdXNoSW50ZXJhY3Rpb25zKHJvb3QpOyAvLyBSZXNldCB0aGlzIHRvIG51bGwgYmVmb3JlIGNhbGxpbmcgbGlmZWN5Y2xlc1xuXG4gICAgUmVhY3RDdXJyZW50T3duZXIkMi5jdXJyZW50ID0gbnVsbDsgLy8gVGhlIGNvbW1pdCBwaGFzZSBpcyBicm9rZW4gaW50byBzZXZlcmFsIHN1Yi1waGFzZXMuIFdlIGRvIGEgc2VwYXJhdGUgcGFzc1xuICAgIC8vIG9mIHRoZSBlZmZlY3QgbGlzdCBmb3IgZWFjaCBwaGFzZTogYWxsIG11dGF0aW9uIGVmZmVjdHMgY29tZSBiZWZvcmUgYWxsXG4gICAgLy8gbGF5b3V0IGVmZmVjdHMsIGFuZCBzbyBvbi5cbiAgICAvLyBUaGUgZmlyc3QgcGhhc2UgYSBcImJlZm9yZSBtdXRhdGlvblwiIHBoYXNlLiBXZSB1c2UgdGhpcyBwaGFzZSB0byByZWFkIHRoZVxuICAgIC8vIHN0YXRlIG9mIHRoZSBob3N0IHRyZWUgcmlnaHQgYmVmb3JlIHdlIG11dGF0ZSBpdC4gVGhpcyBpcyB3aGVyZVxuICAgIC8vIGdldFNuYXBzaG90QmVmb3JlVXBkYXRlIGlzIGNhbGxlZC5cblxuICAgIGZvY3VzZWRJbnN0YW5jZUhhbmRsZSA9IHByZXBhcmVGb3JDb21taXQocm9vdC5jb250YWluZXJJbmZvKTtcbiAgICBzaG91bGRGaXJlQWZ0ZXJBY3RpdmVJbnN0YW5jZUJsdXIgPSBmYWxzZTtcbiAgICBuZXh0RWZmZWN0ID0gZmlyc3RFZmZlY3Q7XG5cbiAgICBkbyB7XG4gICAgICB7XG4gICAgICAgIGludm9rZUd1YXJkZWRDYWxsYmFjayhudWxsLCBjb21taXRCZWZvcmVNdXRhdGlvbkVmZmVjdHMsIG51bGwpO1xuXG4gICAgICAgIGlmIChoYXNDYXVnaHRFcnJvcigpKSB7XG4gICAgICAgICAgaWYgKCEobmV4dEVmZmVjdCAhPT0gbnVsbCkpIHtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoIFwiU2hvdWxkIGJlIHdvcmtpbmcgb24gYW4gZWZmZWN0LlwiICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdmFyIGVycm9yID0gY2xlYXJDYXVnaHRFcnJvcigpO1xuICAgICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKG5leHRFZmZlY3QsIGVycm9yKTtcbiAgICAgICAgICBuZXh0RWZmZWN0ID0gbmV4dEVmZmVjdC5uZXh0RWZmZWN0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSB3aGlsZSAobmV4dEVmZmVjdCAhPT0gbnVsbCk7IC8vIFdlIG5vIGxvbmdlciBuZWVkIHRvIHRyYWNrIHRoZSBhY3RpdmUgaW5zdGFuY2UgZmliZXJcblxuXG4gICAgZm9jdXNlZEluc3RhbmNlSGFuZGxlID0gbnVsbDtcblxuICAgIHtcbiAgICAgIC8vIE1hcmsgdGhlIGN1cnJlbnQgY29tbWl0IHRpbWUgdG8gYmUgc2hhcmVkIGJ5IGFsbCBQcm9maWxlcnMgaW4gdGhpc1xuICAgICAgLy8gYmF0Y2guIFRoaXMgZW5hYmxlcyB0aGVtIHRvIGJlIGdyb3VwZWQgbGF0ZXIuXG4gICAgICByZWNvcmRDb21taXRUaW1lKCk7XG4gICAgfSAvLyBUaGUgbmV4dCBwaGFzZSBpcyB0aGUgbXV0YXRpb24gcGhhc2UsIHdoZXJlIHdlIG11dGF0ZSB0aGUgaG9zdCB0cmVlLlxuXG5cbiAgICBuZXh0RWZmZWN0ID0gZmlyc3RFZmZlY3Q7XG5cbiAgICBkbyB7XG4gICAgICB7XG4gICAgICAgIGludm9rZUd1YXJkZWRDYWxsYmFjayhudWxsLCBjb21taXRNdXRhdGlvbkVmZmVjdHMsIG51bGwsIHJvb3QsIHJlbmRlclByaW9yaXR5TGV2ZWwpO1xuXG4gICAgICAgIGlmIChoYXNDYXVnaHRFcnJvcigpKSB7XG4gICAgICAgICAgaWYgKCEobmV4dEVmZmVjdCAhPT0gbnVsbCkpIHtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoIFwiU2hvdWxkIGJlIHdvcmtpbmcgb24gYW4gZWZmZWN0LlwiICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdmFyIF9lcnJvciA9IGNsZWFyQ2F1Z2h0RXJyb3IoKTtcblxuICAgICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKG5leHRFZmZlY3QsIF9lcnJvcik7XG4gICAgICAgICAgbmV4dEVmZmVjdCA9IG5leHRFZmZlY3QubmV4dEVmZmVjdDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gd2hpbGUgKG5leHRFZmZlY3QgIT09IG51bGwpO1xuXG4gICAgcmVzZXRBZnRlckNvbW1pdChyb290LmNvbnRhaW5lckluZm8pOyAvLyBUaGUgd29yay1pbi1wcm9ncmVzcyB0cmVlIGlzIG5vdyB0aGUgY3VycmVudCB0cmVlLiBUaGlzIG11c3QgY29tZSBhZnRlclxuICAgIC8vIHRoZSBtdXRhdGlvbiBwaGFzZSwgc28gdGhhdCB0aGUgcHJldmlvdXMgdHJlZSBpcyBzdGlsbCBjdXJyZW50IGR1cmluZ1xuICAgIC8vIGNvbXBvbmVudFdpbGxVbm1vdW50LCBidXQgYmVmb3JlIHRoZSBsYXlvdXQgcGhhc2UsIHNvIHRoYXQgdGhlIGZpbmlzaGVkXG4gICAgLy8gd29yayBpcyBjdXJyZW50IGR1cmluZyBjb21wb25lbnREaWRNb3VudC9VcGRhdGUuXG5cbiAgICByb290LmN1cnJlbnQgPSBmaW5pc2hlZFdvcms7IC8vIFRoZSBuZXh0IHBoYXNlIGlzIHRoZSBsYXlvdXQgcGhhc2UsIHdoZXJlIHdlIGNhbGwgZWZmZWN0cyB0aGF0IHJlYWRcbiAgICAvLyB0aGUgaG9zdCB0cmVlIGFmdGVyIGl0J3MgYmVlbiBtdXRhdGVkLiBUaGUgaWRpb21hdGljIHVzZSBjYXNlIGZvciB0aGlzIGlzXG4gICAgLy8gbGF5b3V0LCBidXQgY2xhc3MgY29tcG9uZW50IGxpZmVjeWNsZXMgYWxzbyBmaXJlIGhlcmUgZm9yIGxlZ2FjeSByZWFzb25zLlxuXG4gICAgbmV4dEVmZmVjdCA9IGZpcnN0RWZmZWN0O1xuXG4gICAgZG8ge1xuICAgICAge1xuICAgICAgICBpbnZva2VHdWFyZGVkQ2FsbGJhY2sobnVsbCwgY29tbWl0TGF5b3V0RWZmZWN0cywgbnVsbCwgcm9vdCwgbGFuZXMpO1xuXG4gICAgICAgIGlmIChoYXNDYXVnaHRFcnJvcigpKSB7XG4gICAgICAgICAgaWYgKCEobmV4dEVmZmVjdCAhPT0gbnVsbCkpIHtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoIFwiU2hvdWxkIGJlIHdvcmtpbmcgb24gYW4gZWZmZWN0LlwiICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdmFyIF9lcnJvcjIgPSBjbGVhckNhdWdodEVycm9yKCk7XG5cbiAgICAgICAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcihuZXh0RWZmZWN0LCBfZXJyb3IyKTtcbiAgICAgICAgICBuZXh0RWZmZWN0ID0gbmV4dEVmZmVjdC5uZXh0RWZmZWN0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSB3aGlsZSAobmV4dEVmZmVjdCAhPT0gbnVsbCk7XG5cbiAgICBuZXh0RWZmZWN0ID0gbnVsbDsgLy8gVGVsbCBTY2hlZHVsZXIgdG8geWllbGQgYXQgdGhlIGVuZCBvZiB0aGUgZnJhbWUsIHNvIHRoZSBicm93c2VyIGhhcyBhblxuICAgIC8vIG9wcG9ydHVuaXR5IHRvIHBhaW50LlxuXG4gICAgcmVxdWVzdFBhaW50KCk7XG5cbiAgICB7XG4gICAgICBwb3BJbnRlcmFjdGlvbnMocHJldkludGVyYWN0aW9ucyk7XG4gICAgfVxuXG4gICAgZXhlY3V0aW9uQ29udGV4dCA9IHByZXZFeGVjdXRpb25Db250ZXh0O1xuICB9IGVsc2Uge1xuICAgIC8vIE5vIGVmZmVjdHMuXG4gICAgcm9vdC5jdXJyZW50ID0gZmluaXNoZWRXb3JrOyAvLyBNZWFzdXJlIHRoZXNlIGFueXdheSBzbyB0aGUgZmxhbWVncmFwaCBleHBsaWNpdGx5IHNob3dzIHRoYXQgdGhlcmUgd2VyZVxuICAgIC8vIG5vIGVmZmVjdHMuXG4gICAgLy8gVE9ETzogTWF5YmUgdGhlcmUncyBhIGJldHRlciB3YXkgdG8gcmVwb3J0IHRoaXMuXG5cbiAgICB7XG4gICAgICByZWNvcmRDb21taXRUaW1lKCk7XG4gICAgfVxuICB9XG5cbiAgdmFyIHJvb3REaWRIYXZlUGFzc2l2ZUVmZmVjdHMgPSByb290RG9lc0hhdmVQYXNzaXZlRWZmZWN0cztcblxuICBpZiAocm9vdERvZXNIYXZlUGFzc2l2ZUVmZmVjdHMpIHtcbiAgICAvLyBUaGlzIGNvbW1pdCBoYXMgcGFzc2l2ZSBlZmZlY3RzLiBTdGFzaCBhIHJlZmVyZW5jZSB0byB0aGVtLiBCdXQgZG9uJ3RcbiAgICAvLyBzY2hlZHVsZSBhIGNhbGxiYWNrIHVudGlsIGFmdGVyIGZsdXNoaW5nIGxheW91dCB3b3JrLlxuICAgIHJvb3REb2VzSGF2ZVBhc3NpdmVFZmZlY3RzID0gZmFsc2U7XG4gICAgcm9vdFdpdGhQZW5kaW5nUGFzc2l2ZUVmZmVjdHMgPSByb290O1xuICAgIHBlbmRpbmdQYXNzaXZlRWZmZWN0c0xhbmVzID0gbGFuZXM7XG4gICAgcGVuZGluZ1Bhc3NpdmVFZmZlY3RzUmVuZGVyUHJpb3JpdHkgPSByZW5kZXJQcmlvcml0eUxldmVsO1xuICB9IGVsc2Uge1xuICAgIC8vIFdlIGFyZSBkb25lIHdpdGggdGhlIGVmZmVjdCBjaGFpbiBhdCB0aGlzIHBvaW50IHNvIGxldCdzIGNsZWFyIHRoZVxuICAgIC8vIG5leHRFZmZlY3QgcG9pbnRlcnMgdG8gYXNzaXN0IHdpdGggR0MuIElmIHdlIGhhdmUgcGFzc2l2ZSBlZmZlY3RzLCB3ZSdsbFxuICAgIC8vIGNsZWFyIHRoaXMgaW4gZmx1c2hQYXNzaXZlRWZmZWN0cy5cbiAgICBuZXh0RWZmZWN0ID0gZmlyc3RFZmZlY3Q7XG5cbiAgICB3aGlsZSAobmV4dEVmZmVjdCAhPT0gbnVsbCkge1xuICAgICAgdmFyIG5leHROZXh0RWZmZWN0ID0gbmV4dEVmZmVjdC5uZXh0RWZmZWN0O1xuICAgICAgbmV4dEVmZmVjdC5uZXh0RWZmZWN0ID0gbnVsbDtcblxuICAgICAgaWYgKG5leHRFZmZlY3QuZmxhZ3MgJiBEZWxldGlvbikge1xuICAgICAgICBkZXRhY2hGaWJlckFmdGVyRWZmZWN0cyhuZXh0RWZmZWN0KTtcbiAgICAgIH1cblxuICAgICAgbmV4dEVmZmVjdCA9IG5leHROZXh0RWZmZWN0O1xuICAgIH1cbiAgfSAvLyBSZWFkIHRoaXMgYWdhaW4sIHNpbmNlIGFuIGVmZmVjdCBtaWdodCBoYXZlIHVwZGF0ZWQgaXRcblxuXG4gIHJlbWFpbmluZ0xhbmVzID0gcm9vdC5wZW5kaW5nTGFuZXM7IC8vIENoZWNrIGlmIHRoZXJlJ3MgcmVtYWluaW5nIHdvcmsgb24gdGhpcyByb290XG5cbiAgaWYgKHJlbWFpbmluZ0xhbmVzICE9PSBOb0xhbmVzKSB7XG4gICAge1xuICAgICAgaWYgKHNwYXduZWRXb3JrRHVyaW5nUmVuZGVyICE9PSBudWxsKSB7XG4gICAgICAgIHZhciBleHBpcmF0aW9uVGltZXMgPSBzcGF3bmVkV29ya0R1cmluZ1JlbmRlcjtcbiAgICAgICAgc3Bhd25lZFdvcmtEdXJpbmdSZW5kZXIgPSBudWxsO1xuXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXhwaXJhdGlvblRpbWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgc2NoZWR1bGVJbnRlcmFjdGlvbnMocm9vdCwgZXhwaXJhdGlvblRpbWVzW2ldLCByb290Lm1lbW9pemVkSW50ZXJhY3Rpb25zKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBzY2hlZHVsZVBlbmRpbmdJbnRlcmFjdGlvbnMocm9vdCwgcmVtYWluaW5nTGFuZXMpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBJZiB0aGVyZSdzIG5vIHJlbWFpbmluZyB3b3JrLCB3ZSBjYW4gY2xlYXIgdGhlIHNldCBvZiBhbHJlYWR5IGZhaWxlZFxuICAgIC8vIGVycm9yIGJvdW5kYXJpZXMuXG4gICAgbGVnYWN5RXJyb3JCb3VuZGFyaWVzVGhhdEFscmVhZHlGYWlsZWQgPSBudWxsO1xuICB9XG5cbiAge1xuICAgIGlmICghcm9vdERpZEhhdmVQYXNzaXZlRWZmZWN0cykge1xuICAgICAgLy8gSWYgdGhlcmUgYXJlIG5vIHBhc3NpdmUgZWZmZWN0cywgdGhlbiB3ZSBjYW4gY29tcGxldGUgdGhlIHBlbmRpbmcgaW50ZXJhY3Rpb25zLlxuICAgICAgLy8gT3RoZXJ3aXNlLCB3ZSdsbCB3YWl0IHVudGlsIGFmdGVyIHRoZSBwYXNzaXZlIGVmZmVjdHMgYXJlIGZsdXNoZWQuXG4gICAgICAvLyBXYWl0IHRvIGRvIHRoaXMgdW50aWwgYWZ0ZXIgcmVtYWluaW5nIHdvcmsgaGFzIGJlZW4gc2NoZWR1bGVkLFxuICAgICAgLy8gc28gdGhhdCB3ZSBkb24ndCBwcmVtYXR1cmVseSBzaWduYWwgY29tcGxldGUgZm9yIGludGVyYWN0aW9ucyB3aGVuIHRoZXJlJ3MgZS5nLiBoaWRkZW4gd29yay5cbiAgICAgIGZpbmlzaFBlbmRpbmdJbnRlcmFjdGlvbnMocm9vdCwgbGFuZXMpO1xuICAgIH1cbiAgfVxuXG4gIGlmIChyZW1haW5pbmdMYW5lcyA9PT0gU3luY0xhbmUpIHtcbiAgICAvLyBDb3VudCB0aGUgbnVtYmVyIG9mIHRpbWVzIHRoZSByb290IHN5bmNocm9ub3VzbHkgcmUtcmVuZGVycyB3aXRob3V0XG4gICAgLy8gZmluaXNoaW5nLiBJZiB0aGVyZSBhcmUgdG9vIG1hbnksIGl0IGluZGljYXRlcyBhbiBpbmZpbml0ZSB1cGRhdGUgbG9vcC5cbiAgICBpZiAocm9vdCA9PT0gcm9vdFdpdGhOZXN0ZWRVcGRhdGVzKSB7XG4gICAgICBuZXN0ZWRVcGRhdGVDb3VudCsrO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXN0ZWRVcGRhdGVDb3VudCA9IDA7XG4gICAgICByb290V2l0aE5lc3RlZFVwZGF0ZXMgPSByb290O1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBuZXN0ZWRVcGRhdGVDb3VudCA9IDA7XG4gIH1cblxuICBvbkNvbW1pdFJvb3QoZmluaXNoZWRXb3JrLnN0YXRlTm9kZSwgcmVuZGVyUHJpb3JpdHlMZXZlbCk7XG5cbiAge1xuICAgIG9uQ29tbWl0Um9vdCQxKCk7XG4gIH0gLy8gQWx3YXlzIGNhbGwgdGhpcyBiZWZvcmUgZXhpdGluZyBgY29tbWl0Um9vdGAsIHRvIGVuc3VyZSB0aGF0IGFueVxuICAvLyBhZGRpdGlvbmFsIHdvcmsgb24gdGhpcyByb290IGlzIHNjaGVkdWxlZC5cblxuXG4gIGVuc3VyZVJvb3RJc1NjaGVkdWxlZChyb290LCBub3coKSk7XG5cbiAgaWYgKGhhc1VuY2F1Z2h0RXJyb3IpIHtcbiAgICBoYXNVbmNhdWdodEVycm9yID0gZmFsc2U7XG4gICAgdmFyIF9lcnJvcjMgPSBmaXJzdFVuY2F1Z2h0RXJyb3I7XG4gICAgZmlyc3RVbmNhdWdodEVycm9yID0gbnVsbDtcbiAgICB0aHJvdyBfZXJyb3IzO1xuICB9XG5cbiAgaWYgKChleGVjdXRpb25Db250ZXh0ICYgTGVnYWN5VW5iYXRjaGVkQ29udGV4dCkgIT09IE5vQ29udGV4dCkge1xuICAgIC8vIGEgUmVhY3RET00ucmVuZGVyLWVkIHJvb3QgaW5zaWRlIG9mIGJhdGNoZWRVcGRhdGVzLiBUaGUgY29tbWl0IGZpcmVkXG4gICAgLy8gc3luY2hyb25vdXNseSwgYnV0IGxheW91dCB1cGRhdGVzIHNob3VsZCBiZSBkZWZlcnJlZCB1bnRpbCB0aGUgZW5kXG4gICAgLy8gb2YgdGhlIGJhdGNoLlxuXG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfSAvLyBJZiBsYXlvdXQgd29yayB3YXMgc2NoZWR1bGVkLCBmbHVzaCBpdCBub3cuXG5cblxuICBmbHVzaFN5bmNDYWxsYmFja1F1ZXVlKCk7XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIGNvbW1pdEJlZm9yZU11dGF0aW9uRWZmZWN0cygpIHtcbiAgd2hpbGUgKG5leHRFZmZlY3QgIT09IG51bGwpIHtcbiAgICB2YXIgY3VycmVudCA9IG5leHRFZmZlY3QuYWx0ZXJuYXRlO1xuXG4gICAgaWYgKCFzaG91bGRGaXJlQWZ0ZXJBY3RpdmVJbnN0YW5jZUJsdXIgJiYgZm9jdXNlZEluc3RhbmNlSGFuZGxlICE9PSBudWxsKSB7XG4gICAgICBpZiAoKG5leHRFZmZlY3QuZmxhZ3MgJiBEZWxldGlvbikgIT09IE5vRmxhZ3MpIHtcbiAgICAgICAgaWYgKGRvZXNGaWJlckNvbnRhaW4obmV4dEVmZmVjdCwgZm9jdXNlZEluc3RhbmNlSGFuZGxlKSkge1xuICAgICAgICAgIHNob3VsZEZpcmVBZnRlckFjdGl2ZUluc3RhbmNlQmx1ciA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFRPRE86IE1vdmUgdGhpcyBvdXQgb2YgdGhlIGhvdCBwYXRoIHVzaW5nIGEgZGVkaWNhdGVkIGVmZmVjdCB0YWcuXG4gICAgICAgIGlmIChuZXh0RWZmZWN0LnRhZyA9PT0gU3VzcGVuc2VDb21wb25lbnQgJiYgaXNTdXNwZW5zZUJvdW5kYXJ5QmVpbmdIaWRkZW4oY3VycmVudCwgbmV4dEVmZmVjdCkgJiYgZG9lc0ZpYmVyQ29udGFpbihuZXh0RWZmZWN0LCBmb2N1c2VkSW5zdGFuY2VIYW5kbGUpKSB7XG4gICAgICAgICAgc2hvdWxkRmlyZUFmdGVyQWN0aXZlSW5zdGFuY2VCbHVyID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBmbGFncyA9IG5leHRFZmZlY3QuZmxhZ3M7XG5cbiAgICBpZiAoKGZsYWdzICYgU25hcHNob3QpICE9PSBOb0ZsYWdzKSB7XG4gICAgICBzZXRDdXJyZW50RmliZXIobmV4dEVmZmVjdCk7XG4gICAgICBjb21taXRCZWZvcmVNdXRhdGlvbkxpZmVDeWNsZXMoY3VycmVudCwgbmV4dEVmZmVjdCk7XG4gICAgICByZXNldEN1cnJlbnRGaWJlcigpO1xuICAgIH1cblxuICAgIGlmICgoZmxhZ3MgJiBQYXNzaXZlKSAhPT0gTm9GbGFncykge1xuICAgICAgLy8gSWYgdGhlcmUgYXJlIHBhc3NpdmUgZWZmZWN0cywgc2NoZWR1bGUgYSBjYWxsYmFjayB0byBmbHVzaCBhdFxuICAgICAgLy8gdGhlIGVhcmxpZXN0IG9wcG9ydHVuaXR5LlxuICAgICAgaWYgKCFyb290RG9lc0hhdmVQYXNzaXZlRWZmZWN0cykge1xuICAgICAgICByb290RG9lc0hhdmVQYXNzaXZlRWZmZWN0cyA9IHRydWU7XG4gICAgICAgIHNjaGVkdWxlQ2FsbGJhY2soTm9ybWFsUHJpb3JpdHkkMSwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGZsdXNoUGFzc2l2ZUVmZmVjdHMoKTtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbmV4dEVmZmVjdCA9IG5leHRFZmZlY3QubmV4dEVmZmVjdDtcbiAgfVxufVxuXG5mdW5jdGlvbiBjb21taXRNdXRhdGlvbkVmZmVjdHMocm9vdCwgcmVuZGVyUHJpb3JpdHlMZXZlbCkge1xuICAvLyBUT0RPOiBTaG91bGQgcHJvYmFibHkgbW92ZSB0aGUgYnVsayBvZiB0aGlzIGZ1bmN0aW9uIHRvIGNvbW1pdFdvcmsuXG4gIHdoaWxlIChuZXh0RWZmZWN0ICE9PSBudWxsKSB7XG4gICAgc2V0Q3VycmVudEZpYmVyKG5leHRFZmZlY3QpO1xuICAgIHZhciBmbGFncyA9IG5leHRFZmZlY3QuZmxhZ3M7XG5cbiAgICBpZiAoZmxhZ3MgJiBDb250ZW50UmVzZXQpIHtcbiAgICAgIGNvbW1pdFJlc2V0VGV4dENvbnRlbnQobmV4dEVmZmVjdCk7XG4gICAgfVxuXG4gICAgaWYgKGZsYWdzICYgUmVmKSB7XG4gICAgICB2YXIgY3VycmVudCA9IG5leHRFZmZlY3QuYWx0ZXJuYXRlO1xuXG4gICAgICBpZiAoY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgICBjb21taXREZXRhY2hSZWYoY3VycmVudCk7XG4gICAgICB9XG4gICAgfSAvLyBUaGUgZm9sbG93aW5nIHN3aXRjaCBzdGF0ZW1lbnQgaXMgb25seSBjb25jZXJuZWQgYWJvdXQgcGxhY2VtZW50LFxuICAgIC8vIHVwZGF0ZXMsIGFuZCBkZWxldGlvbnMuIFRvIGF2b2lkIG5lZWRpbmcgdG8gYWRkIGEgY2FzZSBmb3IgZXZlcnkgcG9zc2libGVcbiAgICAvLyBiaXRtYXAgdmFsdWUsIHdlIHJlbW92ZSB0aGUgc2Vjb25kYXJ5IGVmZmVjdHMgZnJvbSB0aGUgZWZmZWN0IHRhZyBhbmRcbiAgICAvLyBzd2l0Y2ggb24gdGhhdCB2YWx1ZS5cblxuXG4gICAgdmFyIHByaW1hcnlGbGFncyA9IGZsYWdzICYgKFBsYWNlbWVudCB8IFVwZGF0ZSB8IERlbGV0aW9uIHwgSHlkcmF0aW5nKTtcblxuICAgIHN3aXRjaCAocHJpbWFyeUZsYWdzKSB7XG4gICAgICBjYXNlIFBsYWNlbWVudDpcbiAgICAgICAge1xuICAgICAgICAgIGNvbW1pdFBsYWNlbWVudChuZXh0RWZmZWN0KTsgLy8gQ2xlYXIgdGhlIFwicGxhY2VtZW50XCIgZnJvbSBlZmZlY3QgdGFnIHNvIHRoYXQgd2Uga25vdyB0aGF0IHRoaXMgaXNcbiAgICAgICAgICAvLyBpbnNlcnRlZCwgYmVmb3JlIGFueSBsaWZlLWN5Y2xlcyBsaWtlIGNvbXBvbmVudERpZE1vdW50IGdldHMgY2FsbGVkLlxuICAgICAgICAgIC8vIFRPRE86IGZpbmRET01Ob2RlIGRvZXNuJ3QgcmVseSBvbiB0aGlzIGFueSBtb3JlIGJ1dCBpc01vdW50ZWQgZG9lc1xuICAgICAgICAgIC8vIGFuZCBpc01vdW50ZWQgaXMgZGVwcmVjYXRlZCBhbnl3YXkgc28gd2Ugc2hvdWxkIGJlIGFibGUgdG8ga2lsbCB0aGlzLlxuXG4gICAgICAgICAgbmV4dEVmZmVjdC5mbGFncyAmPSB+UGxhY2VtZW50O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgIGNhc2UgUGxhY2VtZW50QW5kVXBkYXRlOlxuICAgICAgICB7XG4gICAgICAgICAgLy8gUGxhY2VtZW50XG4gICAgICAgICAgY29tbWl0UGxhY2VtZW50KG5leHRFZmZlY3QpOyAvLyBDbGVhciB0aGUgXCJwbGFjZW1lbnRcIiBmcm9tIGVmZmVjdCB0YWcgc28gdGhhdCB3ZSBrbm93IHRoYXQgdGhpcyBpc1xuICAgICAgICAgIC8vIGluc2VydGVkLCBiZWZvcmUgYW55IGxpZmUtY3ljbGVzIGxpa2UgY29tcG9uZW50RGlkTW91bnQgZ2V0cyBjYWxsZWQuXG5cbiAgICAgICAgICBuZXh0RWZmZWN0LmZsYWdzICY9IH5QbGFjZW1lbnQ7IC8vIFVwZGF0ZVxuXG4gICAgICAgICAgdmFyIF9jdXJyZW50ID0gbmV4dEVmZmVjdC5hbHRlcm5hdGU7XG4gICAgICAgICAgY29tbWl0V29yayhfY3VycmVudCwgbmV4dEVmZmVjdCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgY2FzZSBIeWRyYXRpbmc6XG4gICAgICAgIHtcbiAgICAgICAgICBuZXh0RWZmZWN0LmZsYWdzICY9IH5IeWRyYXRpbmc7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgY2FzZSBIeWRyYXRpbmdBbmRVcGRhdGU6XG4gICAgICAgIHtcbiAgICAgICAgICBuZXh0RWZmZWN0LmZsYWdzICY9IH5IeWRyYXRpbmc7IC8vIFVwZGF0ZVxuXG4gICAgICAgICAgdmFyIF9jdXJyZW50MiA9IG5leHRFZmZlY3QuYWx0ZXJuYXRlO1xuICAgICAgICAgIGNvbW1pdFdvcmsoX2N1cnJlbnQyLCBuZXh0RWZmZWN0KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICBjYXNlIFVwZGF0ZTpcbiAgICAgICAge1xuICAgICAgICAgIHZhciBfY3VycmVudDMgPSBuZXh0RWZmZWN0LmFsdGVybmF0ZTtcbiAgICAgICAgICBjb21taXRXb3JrKF9jdXJyZW50MywgbmV4dEVmZmVjdCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgY2FzZSBEZWxldGlvbjpcbiAgICAgICAge1xuICAgICAgICAgIGNvbW1pdERlbGV0aW9uKHJvb3QsIG5leHRFZmZlY3QpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVzZXRDdXJyZW50RmliZXIoKTtcbiAgICBuZXh0RWZmZWN0ID0gbmV4dEVmZmVjdC5uZXh0RWZmZWN0O1xuICB9XG59XG5cbmZ1bmN0aW9uIGNvbW1pdExheW91dEVmZmVjdHMocm9vdCwgY29tbWl0dGVkTGFuZXMpIHtcblxuXG4gIHdoaWxlIChuZXh0RWZmZWN0ICE9PSBudWxsKSB7XG4gICAgc2V0Q3VycmVudEZpYmVyKG5leHRFZmZlY3QpO1xuICAgIHZhciBmbGFncyA9IG5leHRFZmZlY3QuZmxhZ3M7XG5cbiAgICBpZiAoZmxhZ3MgJiAoVXBkYXRlIHwgQ2FsbGJhY2spKSB7XG4gICAgICB2YXIgY3VycmVudCA9IG5leHRFZmZlY3QuYWx0ZXJuYXRlO1xuICAgICAgY29tbWl0TGlmZUN5Y2xlcyhyb290LCBjdXJyZW50LCBuZXh0RWZmZWN0KTtcbiAgICB9XG5cbiAgICB7XG4gICAgICBpZiAoZmxhZ3MgJiBSZWYpIHtcbiAgICAgICAgY29tbWl0QXR0YWNoUmVmKG5leHRFZmZlY3QpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJlc2V0Q3VycmVudEZpYmVyKCk7XG4gICAgbmV4dEVmZmVjdCA9IG5leHRFZmZlY3QubmV4dEVmZmVjdDtcbiAgfVxufVxuXG5mdW5jdGlvbiBmbHVzaFBhc3NpdmVFZmZlY3RzKCkge1xuICAvLyBSZXR1cm5zIHdoZXRoZXIgcGFzc2l2ZSBlZmZlY3RzIHdlcmUgZmx1c2hlZC5cbiAgaWYgKHBlbmRpbmdQYXNzaXZlRWZmZWN0c1JlbmRlclByaW9yaXR5ICE9PSBOb1ByaW9yaXR5JDEpIHtcbiAgICB2YXIgcHJpb3JpdHlMZXZlbCA9IHBlbmRpbmdQYXNzaXZlRWZmZWN0c1JlbmRlclByaW9yaXR5ID4gTm9ybWFsUHJpb3JpdHkkMSA/IE5vcm1hbFByaW9yaXR5JDEgOiBwZW5kaW5nUGFzc2l2ZUVmZmVjdHNSZW5kZXJQcmlvcml0eTtcbiAgICBwZW5kaW5nUGFzc2l2ZUVmZmVjdHNSZW5kZXJQcmlvcml0eSA9IE5vUHJpb3JpdHkkMTtcblxuICAgIHtcbiAgICAgIHJldHVybiBydW5XaXRoUHJpb3JpdHkkMShwcmlvcml0eUxldmVsLCBmbHVzaFBhc3NpdmVFZmZlY3RzSW1wbCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuZnVuY3Rpb24gZW5xdWV1ZVBlbmRpbmdQYXNzaXZlSG9va0VmZmVjdE1vdW50KGZpYmVyLCBlZmZlY3QpIHtcbiAgcGVuZGluZ1Bhc3NpdmVIb29rRWZmZWN0c01vdW50LnB1c2goZWZmZWN0LCBmaWJlcik7XG5cbiAgaWYgKCFyb290RG9lc0hhdmVQYXNzaXZlRWZmZWN0cykge1xuICAgIHJvb3REb2VzSGF2ZVBhc3NpdmVFZmZlY3RzID0gdHJ1ZTtcbiAgICBzY2hlZHVsZUNhbGxiYWNrKE5vcm1hbFByaW9yaXR5JDEsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGZsdXNoUGFzc2l2ZUVmZmVjdHMoKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0pO1xuICB9XG59XG5mdW5jdGlvbiBlbnF1ZXVlUGVuZGluZ1Bhc3NpdmVIb29rRWZmZWN0VW5tb3VudChmaWJlciwgZWZmZWN0KSB7XG4gIHBlbmRpbmdQYXNzaXZlSG9va0VmZmVjdHNVbm1vdW50LnB1c2goZWZmZWN0LCBmaWJlcik7XG5cbiAge1xuICAgIGZpYmVyLmZsYWdzIHw9IFBhc3NpdmVVbm1vdW50UGVuZGluZ0RldjtcbiAgICB2YXIgYWx0ZXJuYXRlID0gZmliZXIuYWx0ZXJuYXRlO1xuXG4gICAgaWYgKGFsdGVybmF0ZSAhPT0gbnVsbCkge1xuICAgICAgYWx0ZXJuYXRlLmZsYWdzIHw9IFBhc3NpdmVVbm1vdW50UGVuZGluZ0RldjtcbiAgICB9XG4gIH1cblxuICBpZiAoIXJvb3REb2VzSGF2ZVBhc3NpdmVFZmZlY3RzKSB7XG4gICAgcm9vdERvZXNIYXZlUGFzc2l2ZUVmZmVjdHMgPSB0cnVlO1xuICAgIHNjaGVkdWxlQ2FsbGJhY2soTm9ybWFsUHJpb3JpdHkkMSwgZnVuY3Rpb24gKCkge1xuICAgICAgZmx1c2hQYXNzaXZlRWZmZWN0cygpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaW52b2tlUGFzc2l2ZUVmZmVjdENyZWF0ZShlZmZlY3QpIHtcbiAgdmFyIGNyZWF0ZSA9IGVmZmVjdC5jcmVhdGU7XG4gIGVmZmVjdC5kZXN0cm95ID0gY3JlYXRlKCk7XG59XG5cbmZ1bmN0aW9uIGZsdXNoUGFzc2l2ZUVmZmVjdHNJbXBsKCkge1xuICBpZiAocm9vdFdpdGhQZW5kaW5nUGFzc2l2ZUVmZmVjdHMgPT09IG51bGwpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB2YXIgcm9vdCA9IHJvb3RXaXRoUGVuZGluZ1Bhc3NpdmVFZmZlY3RzO1xuICB2YXIgbGFuZXMgPSBwZW5kaW5nUGFzc2l2ZUVmZmVjdHNMYW5lcztcbiAgcm9vdFdpdGhQZW5kaW5nUGFzc2l2ZUVmZmVjdHMgPSBudWxsO1xuICBwZW5kaW5nUGFzc2l2ZUVmZmVjdHNMYW5lcyA9IE5vTGFuZXM7XG5cbiAgaWYgKCEoKGV4ZWN1dGlvbkNvbnRleHQgJiAoUmVuZGVyQ29udGV4dCB8IENvbW1pdENvbnRleHQpKSA9PT0gTm9Db250ZXh0KSkge1xuICAgIHtcbiAgICAgIHRocm93IEVycm9yKCBcIkNhbm5vdCBmbHVzaCBwYXNzaXZlIGVmZmVjdHMgd2hpbGUgYWxyZWFkeSByZW5kZXJpbmcuXCIgKTtcbiAgICB9XG4gIH1cblxuICB7XG4gICAgaXNGbHVzaGluZ1Bhc3NpdmVFZmZlY3RzID0gdHJ1ZTtcbiAgfVxuXG4gIHZhciBwcmV2RXhlY3V0aW9uQ29udGV4dCA9IGV4ZWN1dGlvbkNvbnRleHQ7XG4gIGV4ZWN1dGlvbkNvbnRleHQgfD0gQ29tbWl0Q29udGV4dDtcbiAgdmFyIHByZXZJbnRlcmFjdGlvbnMgPSBwdXNoSW50ZXJhY3Rpb25zKHJvb3QpOyAvLyBJdCdzIGltcG9ydGFudCB0aGF0IEFMTCBwZW5kaW5nIHBhc3NpdmUgZWZmZWN0IGRlc3Ryb3kgZnVuY3Rpb25zIGFyZSBjYWxsZWRcbiAgLy8gYmVmb3JlIEFOWSBwYXNzaXZlIGVmZmVjdCBjcmVhdGUgZnVuY3Rpb25zIGFyZSBjYWxsZWQuXG4gIC8vIE90aGVyd2lzZSBlZmZlY3RzIGluIHNpYmxpbmcgY29tcG9uZW50cyBtaWdodCBpbnRlcmZlcmUgd2l0aCBlYWNoIG90aGVyLlxuICAvLyBlLmcuIGEgZGVzdHJveSBmdW5jdGlvbiBpbiBvbmUgY29tcG9uZW50IG1heSB1bmludGVudGlvbmFsbHkgb3ZlcnJpZGUgYSByZWZcbiAgLy8gdmFsdWUgc2V0IGJ5IGEgY3JlYXRlIGZ1bmN0aW9uIGluIGFub3RoZXIgY29tcG9uZW50LlxuICAvLyBMYXlvdXQgZWZmZWN0cyBoYXZlIHRoZSBzYW1lIGNvbnN0cmFpbnQuXG4gIC8vIEZpcnN0IHBhc3M6IERlc3Ryb3kgc3RhbGUgcGFzc2l2ZSBlZmZlY3RzLlxuXG4gIHZhciB1bm1vdW50RWZmZWN0cyA9IHBlbmRpbmdQYXNzaXZlSG9va0VmZmVjdHNVbm1vdW50O1xuICBwZW5kaW5nUGFzc2l2ZUhvb2tFZmZlY3RzVW5tb3VudCA9IFtdO1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgdW5tb3VudEVmZmVjdHMubGVuZ3RoOyBpICs9IDIpIHtcbiAgICB2YXIgX2VmZmVjdCA9IHVubW91bnRFZmZlY3RzW2ldO1xuICAgIHZhciBmaWJlciA9IHVubW91bnRFZmZlY3RzW2kgKyAxXTtcbiAgICB2YXIgZGVzdHJveSA9IF9lZmZlY3QuZGVzdHJveTtcbiAgICBfZWZmZWN0LmRlc3Ryb3kgPSB1bmRlZmluZWQ7XG5cbiAgICB7XG4gICAgICBmaWJlci5mbGFncyAmPSB+UGFzc2l2ZVVubW91bnRQZW5kaW5nRGV2O1xuICAgICAgdmFyIGFsdGVybmF0ZSA9IGZpYmVyLmFsdGVybmF0ZTtcblxuICAgICAgaWYgKGFsdGVybmF0ZSAhPT0gbnVsbCkge1xuICAgICAgICBhbHRlcm5hdGUuZmxhZ3MgJj0gflBhc3NpdmVVbm1vdW50UGVuZGluZ0RldjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGRlc3Ryb3kgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHtcbiAgICAgICAgc2V0Q3VycmVudEZpYmVyKGZpYmVyKTtcblxuICAgICAgICB7XG4gICAgICAgICAgaW52b2tlR3VhcmRlZENhbGxiYWNrKG51bGwsIGRlc3Ryb3ksIG51bGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGhhc0NhdWdodEVycm9yKCkpIHtcbiAgICAgICAgICBpZiAoIShmaWJlciAhPT0gbnVsbCkpIHtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoIFwiU2hvdWxkIGJlIHdvcmtpbmcgb24gYW4gZWZmZWN0LlwiICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdmFyIGVycm9yID0gY2xlYXJDYXVnaHRFcnJvcigpO1xuICAgICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGZpYmVyLCBlcnJvcik7XG4gICAgICAgIH1cblxuICAgICAgICByZXNldEN1cnJlbnRGaWJlcigpO1xuICAgICAgfVxuICAgIH1cbiAgfSAvLyBTZWNvbmQgcGFzczogQ3JlYXRlIG5ldyBwYXNzaXZlIGVmZmVjdHMuXG5cblxuICB2YXIgbW91bnRFZmZlY3RzID0gcGVuZGluZ1Bhc3NpdmVIb29rRWZmZWN0c01vdW50O1xuICBwZW5kaW5nUGFzc2l2ZUhvb2tFZmZlY3RzTW91bnQgPSBbXTtcblxuICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgbW91bnRFZmZlY3RzLmxlbmd0aDsgX2kgKz0gMikge1xuICAgIHZhciBfZWZmZWN0MiA9IG1vdW50RWZmZWN0c1tfaV07XG4gICAgdmFyIF9maWJlciA9IG1vdW50RWZmZWN0c1tfaSArIDFdO1xuXG4gICAge1xuICAgICAgc2V0Q3VycmVudEZpYmVyKF9maWJlcik7XG5cbiAgICAgIHtcbiAgICAgICAgaW52b2tlR3VhcmRlZENhbGxiYWNrKG51bGwsIGludm9rZVBhc3NpdmVFZmZlY3RDcmVhdGUsIG51bGwsIF9lZmZlY3QyKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0NhdWdodEVycm9yKCkpIHtcbiAgICAgICAgaWYgKCEoX2ZpYmVyICE9PSBudWxsKSkge1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRocm93IEVycm9yKCBcIlNob3VsZCBiZSB3b3JraW5nIG9uIGFuIGVmZmVjdC5cIiApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBfZXJyb3I0ID0gY2xlYXJDYXVnaHRFcnJvcigpO1xuXG4gICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKF9maWJlciwgX2Vycm9yNCk7XG4gICAgICB9XG5cbiAgICAgIHJlc2V0Q3VycmVudEZpYmVyKCk7XG4gICAgfVxuICB9IC8vIE5vdGU6IFRoaXMgY3VycmVudGx5IGFzc3VtZXMgdGhlcmUgYXJlIG5vIHBhc3NpdmUgZWZmZWN0cyBvbiB0aGUgcm9vdCBmaWJlclxuICAvLyBiZWNhdXNlIHRoZSByb290IGlzIG5vdCBwYXJ0IG9mIGl0cyBvd24gZWZmZWN0IGxpc3QuXG4gIC8vIFRoaXMgY291bGQgY2hhbmdlIGluIHRoZSBmdXR1cmUuXG5cblxuICB2YXIgZWZmZWN0ID0gcm9vdC5jdXJyZW50LmZpcnN0RWZmZWN0O1xuXG4gIHdoaWxlIChlZmZlY3QgIT09IG51bGwpIHtcbiAgICB2YXIgbmV4dE5leHRFZmZlY3QgPSBlZmZlY3QubmV4dEVmZmVjdDsgLy8gUmVtb3ZlIG5leHRFZmZlY3QgcG9pbnRlciB0byBhc3Npc3QgR0NcblxuICAgIGVmZmVjdC5uZXh0RWZmZWN0ID0gbnVsbDtcblxuICAgIGlmIChlZmZlY3QuZmxhZ3MgJiBEZWxldGlvbikge1xuICAgICAgZGV0YWNoRmliZXJBZnRlckVmZmVjdHMoZWZmZWN0KTtcbiAgICB9XG5cbiAgICBlZmZlY3QgPSBuZXh0TmV4dEVmZmVjdDtcbiAgfVxuXG4gIHtcbiAgICBwb3BJbnRlcmFjdGlvbnMocHJldkludGVyYWN0aW9ucyk7XG4gICAgZmluaXNoUGVuZGluZ0ludGVyYWN0aW9ucyhyb290LCBsYW5lcyk7XG4gIH1cblxuICB7XG4gICAgaXNGbHVzaGluZ1Bhc3NpdmVFZmZlY3RzID0gZmFsc2U7XG4gIH1cblxuICBleGVjdXRpb25Db250ZXh0ID0gcHJldkV4ZWN1dGlvbkNvbnRleHQ7XG4gIGZsdXNoU3luY0NhbGxiYWNrUXVldWUoKTsgLy8gSWYgYWRkaXRpb25hbCBwYXNzaXZlIGVmZmVjdHMgd2VyZSBzY2hlZHVsZWQsIGluY3JlbWVudCBhIGNvdW50ZXIuIElmIHRoaXNcbiAgLy8gZXhjZWVkcyB0aGUgbGltaXQsIHdlJ2xsIGZpcmUgYSB3YXJuaW5nLlxuXG4gIG5lc3RlZFBhc3NpdmVVcGRhdGVDb3VudCA9IHJvb3RXaXRoUGVuZGluZ1Bhc3NpdmVFZmZlY3RzID09PSBudWxsID8gMCA6IG5lc3RlZFBhc3NpdmVVcGRhdGVDb3VudCArIDE7XG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBpc0FscmVhZHlGYWlsZWRMZWdhY3lFcnJvckJvdW5kYXJ5KGluc3RhbmNlKSB7XG4gIHJldHVybiBsZWdhY3lFcnJvckJvdW5kYXJpZXNUaGF0QWxyZWFkeUZhaWxlZCAhPT0gbnVsbCAmJiBsZWdhY3lFcnJvckJvdW5kYXJpZXNUaGF0QWxyZWFkeUZhaWxlZC5oYXMoaW5zdGFuY2UpO1xufVxuZnVuY3Rpb24gbWFya0xlZ2FjeUVycm9yQm91bmRhcnlBc0ZhaWxlZChpbnN0YW5jZSkge1xuICBpZiAobGVnYWN5RXJyb3JCb3VuZGFyaWVzVGhhdEFscmVhZHlGYWlsZWQgPT09IG51bGwpIHtcbiAgICBsZWdhY3lFcnJvckJvdW5kYXJpZXNUaGF0QWxyZWFkeUZhaWxlZCA9IG5ldyBTZXQoW2luc3RhbmNlXSk7XG4gIH0gZWxzZSB7XG4gICAgbGVnYWN5RXJyb3JCb3VuZGFyaWVzVGhhdEFscmVhZHlGYWlsZWQuYWRkKGluc3RhbmNlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwcmVwYXJlVG9UaHJvd1VuY2F1Z2h0RXJyb3IoZXJyb3IpIHtcbiAgaWYgKCFoYXNVbmNhdWdodEVycm9yKSB7XG4gICAgaGFzVW5jYXVnaHRFcnJvciA9IHRydWU7XG4gICAgZmlyc3RVbmNhdWdodEVycm9yID0gZXJyb3I7XG4gIH1cbn1cblxudmFyIG9uVW5jYXVnaHRFcnJvciA9IHByZXBhcmVUb1Rocm93VW5jYXVnaHRFcnJvcjtcblxuZnVuY3Rpb24gY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3JPblJvb3Qocm9vdEZpYmVyLCBzb3VyY2VGaWJlciwgZXJyb3IpIHtcbiAgdmFyIGVycm9ySW5mbyA9IGNyZWF0ZUNhcHR1cmVkVmFsdWUoZXJyb3IsIHNvdXJjZUZpYmVyKTtcbiAgdmFyIHVwZGF0ZSA9IGNyZWF0ZVJvb3RFcnJvclVwZGF0ZShyb290RmliZXIsIGVycm9ySW5mbywgU3luY0xhbmUpO1xuICBlbnF1ZXVlVXBkYXRlKHJvb3RGaWJlciwgdXBkYXRlKTtcbiAgdmFyIGV2ZW50VGltZSA9IHJlcXVlc3RFdmVudFRpbWUoKTtcbiAgdmFyIHJvb3QgPSBtYXJrVXBkYXRlTGFuZUZyb21GaWJlclRvUm9vdChyb290RmliZXIsIFN5bmNMYW5lKTtcblxuICBpZiAocm9vdCAhPT0gbnVsbCkge1xuICAgIG1hcmtSb290VXBkYXRlZChyb290LCBTeW5jTGFuZSwgZXZlbnRUaW1lKTtcbiAgICBlbnN1cmVSb290SXNTY2hlZHVsZWQocm9vdCwgZXZlbnRUaW1lKTtcbiAgICBzY2hlZHVsZVBlbmRpbmdJbnRlcmFjdGlvbnMocm9vdCwgU3luY0xhbmUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKHNvdXJjZUZpYmVyLCBlcnJvcikge1xuICBpZiAoc291cmNlRmliZXIudGFnID09PSBIb3N0Um9vdCkge1xuICAgIC8vIEVycm9yIHdhcyB0aHJvd24gYXQgdGhlIHJvb3QuIFRoZXJlIGlzIG5vIHBhcmVudCwgc28gdGhlIHJvb3RcbiAgICAvLyBpdHNlbGYgc2hvdWxkIGNhcHR1cmUgaXQuXG4gICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3JPblJvb3Qoc291cmNlRmliZXIsIHNvdXJjZUZpYmVyLCBlcnJvcik7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdmFyIGZpYmVyID0gc291cmNlRmliZXIucmV0dXJuO1xuXG4gIHdoaWxlIChmaWJlciAhPT0gbnVsbCkge1xuICAgIGlmIChmaWJlci50YWcgPT09IEhvc3RSb290KSB7XG4gICAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvck9uUm9vdChmaWJlciwgc291cmNlRmliZXIsIGVycm9yKTtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKGZpYmVyLnRhZyA9PT0gQ2xhc3NDb21wb25lbnQpIHtcbiAgICAgIHZhciBjdG9yID0gZmliZXIudHlwZTtcbiAgICAgIHZhciBpbnN0YW5jZSA9IGZpYmVyLnN0YXRlTm9kZTtcblxuICAgICAgaWYgKHR5cGVvZiBjdG9yLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvciA9PT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50RGlkQ2F0Y2ggPT09ICdmdW5jdGlvbicgJiYgIWlzQWxyZWFkeUZhaWxlZExlZ2FjeUVycm9yQm91bmRhcnkoaW5zdGFuY2UpKSB7XG4gICAgICAgIHZhciBlcnJvckluZm8gPSBjcmVhdGVDYXB0dXJlZFZhbHVlKGVycm9yLCBzb3VyY2VGaWJlcik7XG4gICAgICAgIHZhciB1cGRhdGUgPSBjcmVhdGVDbGFzc0Vycm9yVXBkYXRlKGZpYmVyLCBlcnJvckluZm8sIFN5bmNMYW5lKTtcbiAgICAgICAgZW5xdWV1ZVVwZGF0ZShmaWJlciwgdXBkYXRlKTtcbiAgICAgICAgdmFyIGV2ZW50VGltZSA9IHJlcXVlc3RFdmVudFRpbWUoKTtcbiAgICAgICAgdmFyIHJvb3QgPSBtYXJrVXBkYXRlTGFuZUZyb21GaWJlclRvUm9vdChmaWJlciwgU3luY0xhbmUpO1xuXG4gICAgICAgIGlmIChyb290ICE9PSBudWxsKSB7XG4gICAgICAgICAgbWFya1Jvb3RVcGRhdGVkKHJvb3QsIFN5bmNMYW5lLCBldmVudFRpbWUpO1xuICAgICAgICAgIGVuc3VyZVJvb3RJc1NjaGVkdWxlZChyb290LCBldmVudFRpbWUpO1xuICAgICAgICAgIHNjaGVkdWxlUGVuZGluZ0ludGVyYWN0aW9ucyhyb290LCBTeW5jTGFuZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gVGhpcyBjb21wb25lbnQgaGFzIGFscmVhZHkgYmVlbiB1bm1vdW50ZWQuXG4gICAgICAgICAgLy8gV2UgY2FuJ3Qgc2NoZWR1bGUgYW55IGZvbGxvdyB1cCB3b3JrIGZvciB0aGUgcm9vdCBiZWNhdXNlIHRoZSBmaWJlciBpcyBhbHJlYWR5IHVubW91bnRlZCxcbiAgICAgICAgICAvLyBidXQgd2UgY2FuIHN0aWxsIGNhbGwgdGhlIGxvZy1vbmx5IGJvdW5kYXJ5IHNvIHRoZSBlcnJvciBpc24ndCBzd2FsbG93ZWQuXG4gICAgICAgICAgLy9cbiAgICAgICAgICAvLyBUT0RPIFRoaXMgaXMgb25seSBhIHRlbXBvcmFyeSBiYW5kYWlkIGZvciB0aGUgb2xkIHJlY29uY2lsZXIgZm9yay5cbiAgICAgICAgICAvLyBXZSBjYW4gZGVsZXRlIHRoaXMgc3BlY2lhbCBjYXNlIG9uY2UgdGhlIG5ldyBmb3JrIGlzIG1lcmdlZC5cbiAgICAgICAgICBpZiAodHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudERpZENhdGNoID09PSAnZnVuY3Rpb24nICYmICFpc0FscmVhZHlGYWlsZWRMZWdhY3lFcnJvckJvdW5kYXJ5KGluc3RhbmNlKSkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgaW5zdGFuY2UuY29tcG9uZW50RGlkQ2F0Y2goZXJyb3IsIGVycm9ySW5mbyk7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvclRvSWdub3JlKSB7Ly8gVE9ETyBJZ25vcmUgdGhpcyBlcnJvcj8gUmV0aHJvdyBpdD9cbiAgICAgICAgICAgICAgLy8gVGhpcyBpcyBraW5kIG9mIGFuIGVkZ2UgY2FzZS5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgZmliZXIgPSBmaWJlci5yZXR1cm47XG4gIH1cbn1cbmZ1bmN0aW9uIHBpbmdTdXNwZW5kZWRSb290KHJvb3QsIHdha2VhYmxlLCBwaW5nZWRMYW5lcykge1xuICB2YXIgcGluZ0NhY2hlID0gcm9vdC5waW5nQ2FjaGU7XG5cbiAgaWYgKHBpbmdDYWNoZSAhPT0gbnVsbCkge1xuICAgIC8vIFRoZSB3YWtlYWJsZSByZXNvbHZlZCwgc28gd2Ugbm8gbG9uZ2VyIG5lZWQgdG8gbWVtb2l6ZSwgYmVjYXVzZSBpdCB3aWxsXG4gICAgLy8gbmV2ZXIgYmUgdGhyb3duIGFnYWluLlxuICAgIHBpbmdDYWNoZS5kZWxldGUod2FrZWFibGUpO1xuICB9XG5cbiAgdmFyIGV2ZW50VGltZSA9IHJlcXVlc3RFdmVudFRpbWUoKTtcbiAgbWFya1Jvb3RQaW5nZWQocm9vdCwgcGluZ2VkTGFuZXMpO1xuXG4gIGlmICh3b3JrSW5Qcm9ncmVzc1Jvb3QgPT09IHJvb3QgJiYgaXNTdWJzZXRPZkxhbmVzKHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzLCBwaW5nZWRMYW5lcykpIHtcbiAgICAvLyBSZWNlaXZlZCBhIHBpbmcgYXQgdGhlIHNhbWUgcHJpb3JpdHkgbGV2ZWwgYXQgd2hpY2ggd2UncmUgY3VycmVudGx5XG4gICAgLy8gcmVuZGVyaW5nLiBXZSBtaWdodCB3YW50IHRvIHJlc3RhcnQgdGhpcyByZW5kZXIuIFRoaXMgc2hvdWxkIG1pcnJvclxuICAgIC8vIHRoZSBsb2dpYyBvZiB3aGV0aGVyIG9yIG5vdCBhIHJvb3Qgc3VzcGVuZHMgb25jZSBpdCBjb21wbGV0ZXMuXG4gICAgLy8gVE9ETzogSWYgd2UncmUgcmVuZGVyaW5nIHN5bmMgZWl0aGVyIGR1ZSB0byBTeW5jLCBCYXRjaGVkIG9yIGV4cGlyZWQsXG4gICAgLy8gd2Ugc2hvdWxkIHByb2JhYmx5IG5ldmVyIHJlc3RhcnQuXG4gICAgLy8gSWYgd2UncmUgc3VzcGVuZGVkIHdpdGggZGVsYXksIG9yIGlmIGl0J3MgYSByZXRyeSwgd2UnbGwgYWx3YXlzIHN1c3BlbmRcbiAgICAvLyBzbyB3ZSBjYW4gYWx3YXlzIHJlc3RhcnQuXG4gICAgaWYgKHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgPT09IFJvb3RTdXNwZW5kZWRXaXRoRGVsYXkgfHwgd29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyA9PT0gUm9vdFN1c3BlbmRlZCAmJiBpbmNsdWRlc09ubHlSZXRyaWVzKHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzKSAmJiBub3coKSAtIGdsb2JhbE1vc3RSZWNlbnRGYWxsYmFja1RpbWUgPCBGQUxMQkFDS19USFJPVFRMRV9NUykge1xuICAgICAgLy8gUmVzdGFydCBmcm9tIHRoZSByb290LlxuICAgICAgcHJlcGFyZUZyZXNoU3RhY2socm9vdCwgTm9MYW5lcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEV2ZW4gdGhvdWdoIHdlIGNhbid0IHJlc3RhcnQgcmlnaHQgbm93LCB3ZSBtaWdodCBnZXQgYW5cbiAgICAgIC8vIG9wcG9ydHVuaXR5IGxhdGVyLiBTbyB3ZSBtYXJrIHRoaXMgcmVuZGVyIGFzIGhhdmluZyBhIHBpbmcuXG4gICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RQaW5nZWRMYW5lcyA9IG1lcmdlTGFuZXMod29ya0luUHJvZ3Jlc3NSb290UGluZ2VkTGFuZXMsIHBpbmdlZExhbmVzKTtcbiAgICB9XG4gIH1cblxuICBlbnN1cmVSb290SXNTY2hlZHVsZWQocm9vdCwgZXZlbnRUaW1lKTtcbiAgc2NoZWR1bGVQZW5kaW5nSW50ZXJhY3Rpb25zKHJvb3QsIHBpbmdlZExhbmVzKTtcbn1cblxuZnVuY3Rpb24gcmV0cnlUaW1lZE91dEJvdW5kYXJ5KGJvdW5kYXJ5RmliZXIsIHJldHJ5TGFuZSkge1xuICAvLyBUaGUgYm91bmRhcnkgZmliZXIgKGEgU3VzcGVuc2UgY29tcG9uZW50IG9yIFN1c3BlbnNlTGlzdCBjb21wb25lbnQpXG4gIC8vIHByZXZpb3VzbHkgd2FzIHJlbmRlcmVkIGluIGl0cyBmYWxsYmFjayBzdGF0ZS4gT25lIG9mIHRoZSBwcm9taXNlcyB0aGF0XG4gIC8vIHN1c3BlbmRlZCBpdCBoYXMgcmVzb2x2ZWQsIHdoaWNoIG1lYW5zIGF0IGxlYXN0IHBhcnQgb2YgdGhlIHRyZWUgd2FzXG4gIC8vIGxpa2VseSB1bmJsb2NrZWQuIFRyeSByZW5kZXJpbmcgYWdhaW4sIGF0IGEgbmV3IGV4cGlyYXRpb24gdGltZS5cbiAgaWYgKHJldHJ5TGFuZSA9PT0gTm9MYW5lKSB7XG4gICAgcmV0cnlMYW5lID0gcmVxdWVzdFJldHJ5TGFuZShib3VuZGFyeUZpYmVyKTtcbiAgfSAvLyBUT0RPOiBTcGVjaWFsIGNhc2UgaWRsZSBwcmlvcml0eT9cblxuXG4gIHZhciBldmVudFRpbWUgPSByZXF1ZXN0RXZlbnRUaW1lKCk7XG4gIHZhciByb290ID0gbWFya1VwZGF0ZUxhbmVGcm9tRmliZXJUb1Jvb3QoYm91bmRhcnlGaWJlciwgcmV0cnlMYW5lKTtcblxuICBpZiAocm9vdCAhPT0gbnVsbCkge1xuICAgIG1hcmtSb290VXBkYXRlZChyb290LCByZXRyeUxhbmUsIGV2ZW50VGltZSk7XG4gICAgZW5zdXJlUm9vdElzU2NoZWR1bGVkKHJvb3QsIGV2ZW50VGltZSk7XG4gICAgc2NoZWR1bGVQZW5kaW5nSW50ZXJhY3Rpb25zKHJvb3QsIHJldHJ5TGFuZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIHJlc29sdmVSZXRyeVdha2VhYmxlKGJvdW5kYXJ5RmliZXIsIHdha2VhYmxlKSB7XG4gIHZhciByZXRyeUxhbmUgPSBOb0xhbmU7IC8vIERlZmF1bHRcblxuICB2YXIgcmV0cnlDYWNoZTtcblxuICB7XG4gICAgcmV0cnlDYWNoZSA9IGJvdW5kYXJ5RmliZXIuc3RhdGVOb2RlO1xuICB9XG5cbiAgaWYgKHJldHJ5Q2FjaGUgIT09IG51bGwpIHtcbiAgICAvLyBUaGUgd2FrZWFibGUgcmVzb2x2ZWQsIHNvIHdlIG5vIGxvbmdlciBuZWVkIHRvIG1lbW9pemUsIGJlY2F1c2UgaXQgd2lsbFxuICAgIC8vIG5ldmVyIGJlIHRocm93biBhZ2Fpbi5cbiAgICByZXRyeUNhY2hlLmRlbGV0ZSh3YWtlYWJsZSk7XG4gIH1cblxuICByZXRyeVRpbWVkT3V0Qm91bmRhcnkoYm91bmRhcnlGaWJlciwgcmV0cnlMYW5lKTtcbn0gLy8gQ29tcHV0ZXMgdGhlIG5leHQgSnVzdCBOb3RpY2VhYmxlIERpZmZlcmVuY2UgKEpORCkgYm91bmRhcnkuXG4vLyBUaGUgdGhlb3J5IGlzIHRoYXQgYSBwZXJzb24gY2FuJ3QgdGVsbCB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHNtYWxsIGRpZmZlcmVuY2VzIGluIHRpbWUuXG4vLyBUaGVyZWZvcmUsIGlmIHdlIHdhaXQgYSBiaXQgbG9uZ2VyIHRoYW4gbmVjZXNzYXJ5IHRoYXQgd29uJ3QgdHJhbnNsYXRlIHRvIGEgbm90aWNlYWJsZVxuLy8gZGlmZmVyZW5jZSBpbiB0aGUgZXhwZXJpZW5jZS4gSG93ZXZlciwgd2FpdGluZyBmb3IgbG9uZ2VyIG1pZ2h0IG1lYW4gdGhhdCB3ZSBjYW4gYXZvaWRcbi8vIHNob3dpbmcgYW4gaW50ZXJtZWRpYXRlIGxvYWRpbmcgc3RhdGUuIFRoZSBsb25nZXIgd2UgaGF2ZSBhbHJlYWR5IHdhaXRlZCwgdGhlIGhhcmRlciBpdFxuLy8gaXMgdG8gdGVsbCBzbWFsbCBkaWZmZXJlbmNlcyBpbiB0aW1lLiBUaGVyZWZvcmUsIHRoZSBsb25nZXIgd2UndmUgYWxyZWFkeSB3YWl0ZWQsXG4vLyB0aGUgbG9uZ2VyIHdlIGNhbiB3YWl0IGFkZGl0aW9uYWxseS4gQXQgc29tZSBwb2ludCB3ZSBoYXZlIHRvIGdpdmUgdXAgdGhvdWdoLlxuLy8gV2UgcGljayBhIHRyYWluIG1vZGVsIHdoZXJlIHRoZSBuZXh0IGJvdW5kYXJ5IGNvbW1pdHMgYXQgYSBjb25zaXN0ZW50IHNjaGVkdWxlLlxuLy8gVGhlc2UgcGFydGljdWxhciBudW1iZXJzIGFyZSB2YWd1ZSBlc3RpbWF0ZXMuIFdlIGV4cGVjdCB0byBhZGp1c3QgdGhlbSBiYXNlZCBvbiByZXNlYXJjaC5cblxuZnVuY3Rpb24gam5kKHRpbWVFbGFwc2VkKSB7XG4gIHJldHVybiB0aW1lRWxhcHNlZCA8IDEyMCA/IDEyMCA6IHRpbWVFbGFwc2VkIDwgNDgwID8gNDgwIDogdGltZUVsYXBzZWQgPCAxMDgwID8gMTA4MCA6IHRpbWVFbGFwc2VkIDwgMTkyMCA/IDE5MjAgOiB0aW1lRWxhcHNlZCA8IDMwMDAgPyAzMDAwIDogdGltZUVsYXBzZWQgPCA0MzIwID8gNDMyMCA6IGNlaWwodGltZUVsYXBzZWQgLyAxOTYwKSAqIDE5NjA7XG59XG5cbmZ1bmN0aW9uIGNoZWNrRm9yTmVzdGVkVXBkYXRlcygpIHtcbiAgaWYgKG5lc3RlZFVwZGF0ZUNvdW50ID4gTkVTVEVEX1VQREFURV9MSU1JVCkge1xuICAgIG5lc3RlZFVwZGF0ZUNvdW50ID0gMDtcbiAgICByb290V2l0aE5lc3RlZFVwZGF0ZXMgPSBudWxsO1xuXG4gICAge1xuICAgICAge1xuICAgICAgICB0aHJvdyBFcnJvciggXCJNYXhpbXVtIHVwZGF0ZSBkZXB0aCBleGNlZWRlZC4gVGhpcyBjYW4gaGFwcGVuIHdoZW4gYSBjb21wb25lbnQgcmVwZWF0ZWRseSBjYWxscyBzZXRTdGF0ZSBpbnNpZGUgY29tcG9uZW50V2lsbFVwZGF0ZSBvciBjb21wb25lbnREaWRVcGRhdGUuIFJlYWN0IGxpbWl0cyB0aGUgbnVtYmVyIG9mIG5lc3RlZCB1cGRhdGVzIHRvIHByZXZlbnQgaW5maW5pdGUgbG9vcHMuXCIgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB7XG4gICAgaWYgKG5lc3RlZFBhc3NpdmVVcGRhdGVDb3VudCA+IE5FU1RFRF9QQVNTSVZFX1VQREFURV9MSU1JVCkge1xuICAgICAgbmVzdGVkUGFzc2l2ZVVwZGF0ZUNvdW50ID0gMDtcblxuICAgICAgZXJyb3IoJ01heGltdW0gdXBkYXRlIGRlcHRoIGV4Y2VlZGVkLiBUaGlzIGNhbiBoYXBwZW4gd2hlbiBhIGNvbXBvbmVudCAnICsgXCJjYWxscyBzZXRTdGF0ZSBpbnNpZGUgdXNlRWZmZWN0LCBidXQgdXNlRWZmZWN0IGVpdGhlciBkb2Vzbid0IFwiICsgJ2hhdmUgYSBkZXBlbmRlbmN5IGFycmF5LCBvciBvbmUgb2YgdGhlIGRlcGVuZGVuY2llcyBjaGFuZ2VzIG9uICcgKyAnZXZlcnkgcmVuZGVyLicpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBmbHVzaFJlbmRlclBoYXNlU3RyaWN0TW9kZVdhcm5pbmdzSW5ERVYoKSB7XG4gIHtcbiAgICBSZWFjdFN0cmljdE1vZGVXYXJuaW5ncy5mbHVzaExlZ2FjeUNvbnRleHRXYXJuaW5nKCk7XG5cbiAgICB7XG4gICAgICBSZWFjdFN0cmljdE1vZGVXYXJuaW5ncy5mbHVzaFBlbmRpbmdVbnNhZmVMaWZlY3ljbGVXYXJuaW5ncygpO1xuICAgIH1cbiAgfVxufVxuXG52YXIgZGlkV2FyblN0YXRlVXBkYXRlRm9yTm90WWV0TW91bnRlZENvbXBvbmVudCA9IG51bGw7XG5cbmZ1bmN0aW9uIHdhcm5BYm91dFVwZGF0ZU9uTm90WWV0TW91bnRlZEZpYmVySW5ERVYoZmliZXIpIHtcbiAge1xuICAgIGlmICgoZXhlY3V0aW9uQ29udGV4dCAmIFJlbmRlckNvbnRleHQpICE9PSBOb0NvbnRleHQpIHtcbiAgICAgIC8vIFdlIGxldCB0aGUgb3RoZXIgd2FybmluZyBhYm91dCByZW5kZXIgcGhhc2UgdXBkYXRlcyBkZWFsIHdpdGggdGhpcyBvbmUuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCEoZmliZXIubW9kZSAmIChCbG9ja2luZ01vZGUgfCBDb25jdXJyZW50TW9kZSkpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIHRhZyA9IGZpYmVyLnRhZztcblxuICAgIGlmICh0YWcgIT09IEluZGV0ZXJtaW5hdGVDb21wb25lbnQgJiYgdGFnICE9PSBIb3N0Um9vdCAmJiB0YWcgIT09IENsYXNzQ29tcG9uZW50ICYmIHRhZyAhPT0gRnVuY3Rpb25Db21wb25lbnQgJiYgdGFnICE9PSBGb3J3YXJkUmVmICYmIHRhZyAhPT0gTWVtb0NvbXBvbmVudCAmJiB0YWcgIT09IFNpbXBsZU1lbW9Db21wb25lbnQgJiYgdGFnICE9PSBCbG9jaykge1xuICAgICAgLy8gT25seSB3YXJuIGZvciB1c2VyLWRlZmluZWQgY29tcG9uZW50cywgbm90IGludGVybmFsIG9uZXMgbGlrZSBTdXNwZW5zZS5cbiAgICAgIHJldHVybjtcbiAgICB9IC8vIFdlIHNob3cgdGhlIHdob2xlIHN0YWNrIGJ1dCBkZWR1cGUgb24gdGhlIHRvcCBjb21wb25lbnQncyBuYW1lIGJlY2F1c2VcbiAgICAvLyB0aGUgcHJvYmxlbWF0aWMgY29kZSBhbG1vc3QgYWx3YXlzIGxpZXMgaW5zaWRlIHRoYXQgY29tcG9uZW50LlxuXG5cbiAgICB2YXIgY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWUoZmliZXIudHlwZSkgfHwgJ1JlYWN0Q29tcG9uZW50JztcblxuICAgIGlmIChkaWRXYXJuU3RhdGVVcGRhdGVGb3JOb3RZZXRNb3VudGVkQ29tcG9uZW50ICE9PSBudWxsKSB7XG4gICAgICBpZiAoZGlkV2FyblN0YXRlVXBkYXRlRm9yTm90WWV0TW91bnRlZENvbXBvbmVudC5oYXMoY29tcG9uZW50TmFtZSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBkaWRXYXJuU3RhdGVVcGRhdGVGb3JOb3RZZXRNb3VudGVkQ29tcG9uZW50LmFkZChjb21wb25lbnROYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGlkV2FyblN0YXRlVXBkYXRlRm9yTm90WWV0TW91bnRlZENvbXBvbmVudCA9IG5ldyBTZXQoW2NvbXBvbmVudE5hbWVdKTtcbiAgICB9XG5cbiAgICB2YXIgcHJldmlvdXNGaWJlciA9IGN1cnJlbnQ7XG5cbiAgICB0cnkge1xuICAgICAgc2V0Q3VycmVudEZpYmVyKGZpYmVyKTtcblxuICAgICAgZXJyb3IoXCJDYW4ndCBwZXJmb3JtIGEgUmVhY3Qgc3RhdGUgdXBkYXRlIG9uIGEgY29tcG9uZW50IHRoYXQgaGFzbid0IG1vdW50ZWQgeWV0LiBcIiArICdUaGlzIGluZGljYXRlcyB0aGF0IHlvdSBoYXZlIGEgc2lkZS1lZmZlY3QgaW4geW91ciByZW5kZXIgZnVuY3Rpb24gdGhhdCAnICsgJ2FzeW5jaHJvbm91c2x5IGxhdGVyIGNhbGxzIHRyaWVzIHRvIHVwZGF0ZSB0aGUgY29tcG9uZW50LiBNb3ZlIHRoaXMgd29yayB0byAnICsgJ3VzZUVmZmVjdCBpbnN0ZWFkLicpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAocHJldmlvdXNGaWJlcikge1xuICAgICAgICBzZXRDdXJyZW50RmliZXIoZmliZXIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzZXRDdXJyZW50RmliZXIoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxudmFyIGRpZFdhcm5TdGF0ZVVwZGF0ZUZvclVubW91bnRlZENvbXBvbmVudCA9IG51bGw7XG5cbmZ1bmN0aW9uIHdhcm5BYm91dFVwZGF0ZU9uVW5tb3VudGVkRmliZXJJbkRFVihmaWJlcikge1xuICB7XG4gICAgdmFyIHRhZyA9IGZpYmVyLnRhZztcblxuICAgIGlmICh0YWcgIT09IEhvc3RSb290ICYmIHRhZyAhPT0gQ2xhc3NDb21wb25lbnQgJiYgdGFnICE9PSBGdW5jdGlvbkNvbXBvbmVudCAmJiB0YWcgIT09IEZvcndhcmRSZWYgJiYgdGFnICE9PSBNZW1vQ29tcG9uZW50ICYmIHRhZyAhPT0gU2ltcGxlTWVtb0NvbXBvbmVudCAmJiB0YWcgIT09IEJsb2NrKSB7XG4gICAgICAvLyBPbmx5IHdhcm4gZm9yIHVzZXItZGVmaW5lZCBjb21wb25lbnRzLCBub3QgaW50ZXJuYWwgb25lcyBsaWtlIFN1c3BlbnNlLlxuICAgICAgcmV0dXJuO1xuICAgIH0gLy8gSWYgdGhlcmUgYXJlIHBlbmRpbmcgcGFzc2l2ZSBlZmZlY3RzIHVubW91bnRzIGZvciB0aGlzIEZpYmVyLFxuICAgIC8vIHdlIGNhbiBhc3N1bWUgdGhhdCB0aGV5IHdvdWxkIGhhdmUgcHJldmVudGVkIHRoaXMgdXBkYXRlLlxuXG5cbiAgICBpZiAoKGZpYmVyLmZsYWdzICYgUGFzc2l2ZVVubW91bnRQZW5kaW5nRGV2KSAhPT0gTm9GbGFncykge1xuICAgICAgcmV0dXJuO1xuICAgIH0gLy8gV2Ugc2hvdyB0aGUgd2hvbGUgc3RhY2sgYnV0IGRlZHVwZSBvbiB0aGUgdG9wIGNvbXBvbmVudCdzIG5hbWUgYmVjYXVzZVxuICAgIC8vIHRoZSBwcm9ibGVtYXRpYyBjb2RlIGFsbW9zdCBhbHdheXMgbGllcyBpbnNpZGUgdGhhdCBjb21wb25lbnQuXG5cblxuICAgIHZhciBjb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZShmaWJlci50eXBlKSB8fCAnUmVhY3RDb21wb25lbnQnO1xuXG4gICAgaWYgKGRpZFdhcm5TdGF0ZVVwZGF0ZUZvclVubW91bnRlZENvbXBvbmVudCAhPT0gbnVsbCkge1xuICAgICAgaWYgKGRpZFdhcm5TdGF0ZVVwZGF0ZUZvclVubW91bnRlZENvbXBvbmVudC5oYXMoY29tcG9uZW50TmFtZSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBkaWRXYXJuU3RhdGVVcGRhdGVGb3JVbm1vdW50ZWRDb21wb25lbnQuYWRkKGNvbXBvbmVudE5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkaWRXYXJuU3RhdGVVcGRhdGVGb3JVbm1vdW50ZWRDb21wb25lbnQgPSBuZXcgU2V0KFtjb21wb25lbnROYW1lXSk7XG4gICAgfVxuXG4gICAgaWYgKGlzRmx1c2hpbmdQYXNzaXZlRWZmZWN0cykgOyBlbHNlIHtcbiAgICAgIHZhciBwcmV2aW91c0ZpYmVyID0gY3VycmVudDtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgc2V0Q3VycmVudEZpYmVyKGZpYmVyKTtcblxuICAgICAgICBlcnJvcihcIkNhbid0IHBlcmZvcm0gYSBSZWFjdCBzdGF0ZSB1cGRhdGUgb24gYW4gdW5tb3VudGVkIGNvbXBvbmVudC4gVGhpcyBcIiArICdpcyBhIG5vLW9wLCBidXQgaXQgaW5kaWNhdGVzIGEgbWVtb3J5IGxlYWsgaW4geW91ciBhcHBsaWNhdGlvbi4gVG8gJyArICdmaXgsIGNhbmNlbCBhbGwgc3Vic2NyaXB0aW9ucyBhbmQgYXN5bmNocm9ub3VzIHRhc2tzIGluICVzLicsIHRhZyA9PT0gQ2xhc3NDb21wb25lbnQgPyAndGhlIGNvbXBvbmVudFdpbGxVbm1vdW50IG1ldGhvZCcgOiAnYSB1c2VFZmZlY3QgY2xlYW51cCBmdW5jdGlvbicpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgaWYgKHByZXZpb3VzRmliZXIpIHtcbiAgICAgICAgICBzZXRDdXJyZW50RmliZXIoZmliZXIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc2V0Q3VycmVudEZpYmVyKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxudmFyIGJlZ2luV29yayQxO1xuXG57XG4gIHZhciBkdW1teUZpYmVyID0gbnVsbDtcblxuICBiZWdpbldvcmskMSA9IGZ1bmN0aW9uIChjdXJyZW50LCB1bml0T2ZXb3JrLCBsYW5lcykge1xuICAgIC8vIElmIGEgY29tcG9uZW50IHRocm93cyBhbiBlcnJvciwgd2UgcmVwbGF5IGl0IGFnYWluIGluIGEgc3luY2hyb25vdXNseVxuICAgIC8vIGRpc3BhdGNoZWQgZXZlbnQsIHNvIHRoYXQgdGhlIGRlYnVnZ2VyIHdpbGwgdHJlYXQgaXQgYXMgYW4gdW5jYXVnaHRcbiAgICAvLyBlcnJvciBTZWUgUmVhY3RFcnJvclV0aWxzIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICAgIC8vIEJlZm9yZSBlbnRlcmluZyB0aGUgYmVnaW4gcGhhc2UsIGNvcHkgdGhlIHdvcmstaW4tcHJvZ3Jlc3Mgb250byBhIGR1bW15XG4gICAgLy8gZmliZXIuIElmIGJlZ2luV29yayB0aHJvd3MsIHdlJ2xsIHVzZSB0aGlzIHRvIHJlc2V0IHRoZSBzdGF0ZS5cbiAgICB2YXIgb3JpZ2luYWxXb3JrSW5Qcm9ncmVzc0NvcHkgPSBhc3NpZ25GaWJlclByb3BlcnRpZXNJbkRFVihkdW1teUZpYmVyLCB1bml0T2ZXb3JrKTtcblxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYmVnaW5Xb3JrKGN1cnJlbnQsIHVuaXRPZldvcmssIGxhbmVzKTtcbiAgICB9IGNhdGNoIChvcmlnaW5hbEVycm9yKSB7XG4gICAgICBpZiAob3JpZ2luYWxFcnJvciAhPT0gbnVsbCAmJiB0eXBlb2Ygb3JpZ2luYWxFcnJvciA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG9yaWdpbmFsRXJyb3IudGhlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAvLyBEb24ndCByZXBsYXkgcHJvbWlzZXMuIFRyZWF0IGV2ZXJ5dGhpbmcgZWxzZSBsaWtlIGFuIGVycm9yLlxuICAgICAgICB0aHJvdyBvcmlnaW5hbEVycm9yO1xuICAgICAgfSAvLyBLZWVwIHRoaXMgY29kZSBpbiBzeW5jIHdpdGggaGFuZGxlRXJyb3I7IGFueSBjaGFuZ2VzIGhlcmUgbXVzdCBoYXZlXG4gICAgICAvLyBjb3JyZXNwb25kaW5nIGNoYW5nZXMgdGhlcmUuXG5cblxuICAgICAgcmVzZXRDb250ZXh0RGVwZW5kZW5jaWVzKCk7XG4gICAgICByZXNldEhvb2tzQWZ0ZXJUaHJvdygpOyAvLyBEb24ndCByZXNldCBjdXJyZW50IGRlYnVnIGZpYmVyLCBzaW5jZSB3ZSdyZSBhYm91dCB0byB3b3JrIG9uIHRoZVxuICAgICAgLy8gc2FtZSBmaWJlciBhZ2Fpbi5cbiAgICAgIC8vIFVud2luZCB0aGUgZmFpbGVkIHN0YWNrIGZyYW1lXG5cbiAgICAgIHVud2luZEludGVycnVwdGVkV29yayh1bml0T2ZXb3JrKTsgLy8gUmVzdG9yZSB0aGUgb3JpZ2luYWwgcHJvcGVydGllcyBvZiB0aGUgZmliZXIuXG5cbiAgICAgIGFzc2lnbkZpYmVyUHJvcGVydGllc0luREVWKHVuaXRPZldvcmssIG9yaWdpbmFsV29ya0luUHJvZ3Jlc3NDb3B5KTtcblxuICAgICAgaWYgKCB1bml0T2ZXb3JrLm1vZGUgJiBQcm9maWxlTW9kZSkge1xuICAgICAgICAvLyBSZXNldCB0aGUgcHJvZmlsZXIgdGltZXIuXG4gICAgICAgIHN0YXJ0UHJvZmlsZXJUaW1lcih1bml0T2ZXb3JrKTtcbiAgICAgIH0gLy8gUnVuIGJlZ2luV29yayBhZ2Fpbi5cblxuXG4gICAgICBpbnZva2VHdWFyZGVkQ2FsbGJhY2sobnVsbCwgYmVnaW5Xb3JrLCBudWxsLCBjdXJyZW50LCB1bml0T2ZXb3JrLCBsYW5lcyk7XG5cbiAgICAgIGlmIChoYXNDYXVnaHRFcnJvcigpKSB7XG4gICAgICAgIHZhciByZXBsYXlFcnJvciA9IGNsZWFyQ2F1Z2h0RXJyb3IoKTsgLy8gYGludm9rZUd1YXJkZWRDYWxsYmFja2Agc29tZXRpbWVzIHNldHMgYW4gZXhwYW5kbyBgX3N1cHByZXNzTG9nZ2luZ2AuXG4gICAgICAgIC8vIFJldGhyb3cgdGhpcyBlcnJvciBpbnN0ZWFkIG9mIHRoZSBvcmlnaW5hbCBvbmUuXG5cbiAgICAgICAgdGhyb3cgcmVwbGF5RXJyb3I7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBUaGlzIGJyYW5jaCBpcyByZWFjaGFibGUgaWYgdGhlIHJlbmRlciBwaGFzZSBpcyBpbXB1cmUuXG4gICAgICAgIHRocm93IG9yaWdpbmFsRXJyb3I7XG4gICAgICB9XG4gICAgfVxuICB9O1xufVxuXG52YXIgZGlkV2FybkFib3V0VXBkYXRlSW5SZW5kZXIgPSBmYWxzZTtcbnZhciBkaWRXYXJuQWJvdXRVcGRhdGVJblJlbmRlckZvckFub3RoZXJDb21wb25lbnQ7XG5cbntcbiAgZGlkV2FybkFib3V0VXBkYXRlSW5SZW5kZXJGb3JBbm90aGVyQ29tcG9uZW50ID0gbmV3IFNldCgpO1xufVxuXG5mdW5jdGlvbiB3YXJuQWJvdXRSZW5kZXJQaGFzZVVwZGF0ZXNJbkRFVihmaWJlcikge1xuICB7XG4gICAgaWYgKGlzUmVuZGVyaW5nICYmIChleGVjdXRpb25Db250ZXh0ICYgUmVuZGVyQ29udGV4dCkgIT09IE5vQ29udGV4dCAmJiAhZ2V0SXNVcGRhdGluZ09wYXF1ZVZhbHVlSW5SZW5kZXJQaGFzZUluREVWKCkpIHtcbiAgICAgIHN3aXRjaCAoZmliZXIudGFnKSB7XG4gICAgICAgIGNhc2UgRnVuY3Rpb25Db21wb25lbnQ6XG4gICAgICAgIGNhc2UgRm9yd2FyZFJlZjpcbiAgICAgICAgY2FzZSBTaW1wbGVNZW1vQ29tcG9uZW50OlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhciByZW5kZXJpbmdDb21wb25lbnROYW1lID0gd29ya0luUHJvZ3Jlc3MgJiYgZ2V0Q29tcG9uZW50TmFtZSh3b3JrSW5Qcm9ncmVzcy50eXBlKSB8fCAnVW5rbm93bic7IC8vIERlZHVwZSBieSB0aGUgcmVuZGVyaW5nIGNvbXBvbmVudCBiZWNhdXNlIGl0J3MgdGhlIG9uZSB0aGF0IG5lZWRzIHRvIGJlIGZpeGVkLlxuXG4gICAgICAgICAgICB2YXIgZGVkdXBlS2V5ID0gcmVuZGVyaW5nQ29tcG9uZW50TmFtZTtcblxuICAgICAgICAgICAgaWYgKCFkaWRXYXJuQWJvdXRVcGRhdGVJblJlbmRlckZvckFub3RoZXJDb21wb25lbnQuaGFzKGRlZHVwZUtleSkpIHtcbiAgICAgICAgICAgICAgZGlkV2FybkFib3V0VXBkYXRlSW5SZW5kZXJGb3JBbm90aGVyQ29tcG9uZW50LmFkZChkZWR1cGVLZXkpO1xuICAgICAgICAgICAgICB2YXIgc2V0U3RhdGVDb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZShmaWJlci50eXBlKSB8fCAnVW5rbm93bic7XG5cbiAgICAgICAgICAgICAgZXJyb3IoJ0Nhbm5vdCB1cGRhdGUgYSBjb21wb25lbnQgKGAlc2ApIHdoaWxlIHJlbmRlcmluZyBhICcgKyAnZGlmZmVyZW50IGNvbXBvbmVudCAoYCVzYCkuIFRvIGxvY2F0ZSB0aGUgYmFkIHNldFN0YXRlKCkgY2FsbCBpbnNpZGUgYCVzYCwgJyArICdmb2xsb3cgdGhlIHN0YWNrIHRyYWNlIGFzIGRlc2NyaWJlZCBpbiBodHRwczovL3JlYWN0anMub3JnL2xpbmsvc2V0c3RhdGUtaW4tcmVuZGVyJywgc2V0U3RhdGVDb21wb25lbnROYW1lLCByZW5kZXJpbmdDb21wb25lbnROYW1lLCByZW5kZXJpbmdDb21wb25lbnROYW1lKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgIGNhc2UgQ2xhc3NDb21wb25lbnQ6XG4gICAgICAgICAge1xuICAgICAgICAgICAgaWYgKCFkaWRXYXJuQWJvdXRVcGRhdGVJblJlbmRlcikge1xuICAgICAgICAgICAgICBlcnJvcignQ2Fubm90IHVwZGF0ZSBkdXJpbmcgYW4gZXhpc3Rpbmcgc3RhdGUgdHJhbnNpdGlvbiAoc3VjaCBhcyAnICsgJ3dpdGhpbiBgcmVuZGVyYCkuIFJlbmRlciBtZXRob2RzIHNob3VsZCBiZSBhIHB1cmUgJyArICdmdW5jdGlvbiBvZiBwcm9wcyBhbmQgc3RhdGUuJyk7XG5cbiAgICAgICAgICAgICAgZGlkV2FybkFib3V0VXBkYXRlSW5SZW5kZXIgPSB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59IC8vIGEgJ3NoYXJlZCcgdmFyaWFibGUgdGhhdCBjaGFuZ2VzIHdoZW4gYWN0KCkgb3BlbnMvY2xvc2VzIGluIHRlc3RzLlxuXG5cbnZhciBJc1RoaXNSZW5kZXJlckFjdGluZyA9IHtcbiAgY3VycmVudDogZmFsc2Vcbn07XG5mdW5jdGlvbiB3YXJuSWZOb3RTY29wZWRXaXRoTWF0Y2hpbmdBY3QoZmliZXIpIHtcbiAge1xuICAgIGlmICggSXNTb21lUmVuZGVyZXJBY3RpbmcuY3VycmVudCA9PT0gdHJ1ZSAmJiBJc1RoaXNSZW5kZXJlckFjdGluZy5jdXJyZW50ICE9PSB0cnVlKSB7XG4gICAgICB2YXIgcHJldmlvdXNGaWJlciA9IGN1cnJlbnQ7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHNldEN1cnJlbnRGaWJlcihmaWJlcik7XG5cbiAgICAgICAgZXJyb3IoXCJJdCBsb29rcyBsaWtlIHlvdSdyZSB1c2luZyB0aGUgd3JvbmcgYWN0KCkgYXJvdW5kIHlvdXIgdGVzdCBpbnRlcmFjdGlvbnMuXFxuXCIgKyAnQmUgc3VyZSB0byB1c2UgdGhlIG1hdGNoaW5nIHZlcnNpb24gb2YgYWN0KCkgY29ycmVzcG9uZGluZyB0byB5b3VyIHJlbmRlcmVyOlxcblxcbicgKyAnLy8gZm9yIHJlYWN0LWRvbTpcXG4nICsgLy8gQnJlYWsgdXAgaW1wb3J0cyB0byBhdm9pZCBhY2NpZGVudGFsbHkgcGFyc2luZyB0aGVtIGFzIGRlcGVuZGVuY2llcy5cbiAgICAgICAgJ2ltcG9ydCB7YWN0fSBmcicgKyBcIm9tICdyZWFjdC1kb20vdGVzdC11dGlscyc7XFxuXCIgKyAnLy8gLi4uXFxuJyArICdhY3QoKCkgPT4gLi4uKTtcXG5cXG4nICsgJy8vIGZvciByZWFjdC10ZXN0LXJlbmRlcmVyOlxcbicgKyAvLyBCcmVhayB1cCBpbXBvcnRzIHRvIGF2b2lkIGFjY2lkZW50YWxseSBwYXJzaW5nIHRoZW0gYXMgZGVwZW5kZW5jaWVzLlxuICAgICAgICAnaW1wb3J0IFRlc3RSZW5kZXJlciBmcicgKyBcIm9tIHJlYWN0LXRlc3QtcmVuZGVyZXInO1xcblwiICsgJ2NvbnN0IHthY3R9ID0gVGVzdFJlbmRlcmVyO1xcbicgKyAnLy8gLi4uXFxuJyArICdhY3QoKCkgPT4gLi4uKTsnKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGlmIChwcmV2aW91c0ZpYmVyKSB7XG4gICAgICAgICAgc2V0Q3VycmVudEZpYmVyKGZpYmVyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXNldEN1cnJlbnRGaWJlcigpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiB3YXJuSWZOb3RDdXJyZW50bHlBY3RpbmdFZmZlY3RzSW5ERVYoZmliZXIpIHtcbiAge1xuICAgIGlmICggKGZpYmVyLm1vZGUgJiBTdHJpY3RNb2RlKSAhPT0gTm9Nb2RlICYmIElzU29tZVJlbmRlcmVyQWN0aW5nLmN1cnJlbnQgPT09IGZhbHNlICYmIElzVGhpc1JlbmRlcmVyQWN0aW5nLmN1cnJlbnQgPT09IGZhbHNlKSB7XG4gICAgICBlcnJvcignQW4gdXBkYXRlIHRvICVzIHJhbiBhbiBlZmZlY3QsIGJ1dCB3YXMgbm90IHdyYXBwZWQgaW4gYWN0KC4uLikuXFxuXFxuJyArICdXaGVuIHRlc3RpbmcsIGNvZGUgdGhhdCBjYXVzZXMgUmVhY3Qgc3RhdGUgdXBkYXRlcyBzaG91bGQgYmUgJyArICd3cmFwcGVkIGludG8gYWN0KC4uLik6XFxuXFxuJyArICdhY3QoKCkgPT4ge1xcbicgKyAnICAvKiBmaXJlIGV2ZW50cyB0aGF0IHVwZGF0ZSBzdGF0ZSAqL1xcbicgKyAnfSk7XFxuJyArICcvKiBhc3NlcnQgb24gdGhlIG91dHB1dCAqL1xcblxcbicgKyBcIlRoaXMgZW5zdXJlcyB0aGF0IHlvdSdyZSB0ZXN0aW5nIHRoZSBiZWhhdmlvciB0aGUgdXNlciB3b3VsZCBzZWUgXCIgKyAnaW4gdGhlIGJyb3dzZXIuJyArICcgTGVhcm4gbW9yZSBhdCBodHRwczovL3JlYWN0anMub3JnL2xpbmsvd3JhcC10ZXN0cy13aXRoLWFjdCcsIGdldENvbXBvbmVudE5hbWUoZmliZXIudHlwZSkpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB3YXJuSWZOb3RDdXJyZW50bHlBY3RpbmdVcGRhdGVzSW5ERVYoZmliZXIpIHtcbiAge1xuICAgIGlmICggZXhlY3V0aW9uQ29udGV4dCA9PT0gTm9Db250ZXh0ICYmIElzU29tZVJlbmRlcmVyQWN0aW5nLmN1cnJlbnQgPT09IGZhbHNlICYmIElzVGhpc1JlbmRlcmVyQWN0aW5nLmN1cnJlbnQgPT09IGZhbHNlKSB7XG4gICAgICB2YXIgcHJldmlvdXNGaWJlciA9IGN1cnJlbnQ7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHNldEN1cnJlbnRGaWJlcihmaWJlcik7XG5cbiAgICAgICAgZXJyb3IoJ0FuIHVwZGF0ZSB0byAlcyBpbnNpZGUgYSB0ZXN0IHdhcyBub3Qgd3JhcHBlZCBpbiBhY3QoLi4uKS5cXG5cXG4nICsgJ1doZW4gdGVzdGluZywgY29kZSB0aGF0IGNhdXNlcyBSZWFjdCBzdGF0ZSB1cGRhdGVzIHNob3VsZCBiZSAnICsgJ3dyYXBwZWQgaW50byBhY3QoLi4uKTpcXG5cXG4nICsgJ2FjdCgoKSA9PiB7XFxuJyArICcgIC8qIGZpcmUgZXZlbnRzIHRoYXQgdXBkYXRlIHN0YXRlICovXFxuJyArICd9KTtcXG4nICsgJy8qIGFzc2VydCBvbiB0aGUgb3V0cHV0ICovXFxuXFxuJyArIFwiVGhpcyBlbnN1cmVzIHRoYXQgeW91J3JlIHRlc3RpbmcgdGhlIGJlaGF2aW9yIHRoZSB1c2VyIHdvdWxkIHNlZSBcIiArICdpbiB0aGUgYnJvd3Nlci4nICsgJyBMZWFybiBtb3JlIGF0IGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay93cmFwLXRlc3RzLXdpdGgtYWN0JywgZ2V0Q29tcG9uZW50TmFtZShmaWJlci50eXBlKSk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBpZiAocHJldmlvdXNGaWJlcikge1xuICAgICAgICAgIHNldEN1cnJlbnRGaWJlcihmaWJlcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzZXRDdXJyZW50RmliZXIoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG52YXIgd2FybklmTm90Q3VycmVudGx5QWN0aW5nVXBkYXRlc0luRGV2ID0gd2FybklmTm90Q3VycmVudGx5QWN0aW5nVXBkYXRlc0luREVWOyAvLyBJbiB0ZXN0cywgd2Ugd2FudCB0byBlbmZvcmNlIGEgbW9ja2VkIHNjaGVkdWxlci5cblxudmFyIGRpZFdhcm5BYm91dFVubW9ja2VkU2NoZWR1bGVyID0gZmFsc2U7IC8vIFRPRE8gQmVmb3JlIHdlIHJlbGVhc2UgY29uY3VycmVudCBtb2RlLCByZXZpc2l0IHRoaXMgYW5kIGRlY2lkZSB3aGV0aGVyIGEgbW9ja2VkXG4vLyBzY2hlZHVsZXIgaXMgdGhlIGFjdHVhbCByZWNvbW1lbmRhdGlvbi4gVGhlIGFsdGVybmF0aXZlIGNvdWxkIGJlIGEgdGVzdGluZyBidWlsZCxcbi8vIGEgbmV3IGxpYiwgb3Igd2hhdGV2ZXI7IHdlIGR1bm5vIGp1c3QgeWV0LiBUaGlzIG1lc3NhZ2UgaXMgZm9yIGVhcmx5IGFkb3B0ZXJzXG4vLyB0byBnZXQgdGhlaXIgdGVzdHMgcmlnaHQuXG5cbmZ1bmN0aW9uIHdhcm5JZlVubW9ja2VkU2NoZWR1bGVyKGZpYmVyKSB7XG4gIHtcbiAgICBpZiAoZGlkV2FybkFib3V0VW5tb2NrZWRTY2hlZHVsZXIgPT09IGZhbHNlICYmIFNjaGVkdWxlci51bnN0YWJsZV9mbHVzaEFsbFdpdGhvdXRBc3NlcnRpbmcgPT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKGZpYmVyLm1vZGUgJiBCbG9ja2luZ01vZGUgfHwgZmliZXIubW9kZSAmIENvbmN1cnJlbnRNb2RlKSB7XG4gICAgICAgIGRpZFdhcm5BYm91dFVubW9ja2VkU2NoZWR1bGVyID0gdHJ1ZTtcblxuICAgICAgICBlcnJvcignSW4gQ29uY3VycmVudCBvciBTeW5jIG1vZGVzLCB0aGUgXCJzY2hlZHVsZXJcIiBtb2R1bGUgbmVlZHMgdG8gYmUgbW9ja2VkICcgKyAndG8gZ3VhcmFudGVlIGNvbnNpc3RlbnQgYmVoYXZpb3VyIGFjcm9zcyB0ZXN0cyBhbmQgYnJvd3NlcnMuICcgKyAnRm9yIGV4YW1wbGUsIHdpdGggamVzdDogXFxuJyArIC8vIEJyZWFrIHVwIHJlcXVpcmVzIHRvIGF2b2lkIGFjY2lkZW50YWxseSBwYXJzaW5nIHRoZW0gYXMgZGVwZW5kZW5jaWVzLlxuICAgICAgICBcImplc3QubW9jaygnc2NoZWR1bGVyJywgKCkgPT4gcmVxdWlyZVwiICsgXCIoJ3NjaGVkdWxlci91bnN0YWJsZV9tb2NrJykpO1xcblxcblwiICsgJ0ZvciBtb3JlIGluZm8sIHZpc2l0IGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9tb2NrLXNjaGVkdWxlcicpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjb21wdXRlVGhyZWFkSUQocm9vdCwgbGFuZSkge1xuICAvLyBJbnRlcmFjdGlvbiB0aHJlYWRzIGFyZSB1bmlxdWUgcGVyIHJvb3QgYW5kIGV4cGlyYXRpb24gdGltZS5cbiAgLy8gTk9URTogSW50ZW50aW9uYWxseSB1bnNvdW5kIGNhc3QuIEFsbCB0aGF0IG1hdHRlcnMgaXMgdGhhdCBpdCdzIGEgbnVtYmVyXG4gIC8vIGFuZCBpdCByZXByZXNlbnRzIGEgYmF0Y2ggb2Ygd29yay4gQ291bGQgbWFrZSBhIGhlbHBlciBmdW5jdGlvbiBpbnN0ZWFkLFxuICAvLyBidXQgbWVoIHRoaXMgaXMgZmluZSBmb3Igbm93LlxuICByZXR1cm4gbGFuZSAqIDEwMDAgKyByb290LmludGVyYWN0aW9uVGhyZWFkSUQ7XG59XG5cbmZ1bmN0aW9uIG1hcmtTcGF3bmVkV29yayhsYW5lKSB7XG5cbiAgaWYgKHNwYXduZWRXb3JrRHVyaW5nUmVuZGVyID09PSBudWxsKSB7XG4gICAgc3Bhd25lZFdvcmtEdXJpbmdSZW5kZXIgPSBbbGFuZV07XG4gIH0gZWxzZSB7XG4gICAgc3Bhd25lZFdvcmtEdXJpbmdSZW5kZXIucHVzaChsYW5lKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBzY2hlZHVsZUludGVyYWN0aW9ucyhyb290LCBsYW5lLCBpbnRlcmFjdGlvbnMpIHtcblxuICBpZiAoaW50ZXJhY3Rpb25zLnNpemUgPiAwKSB7XG4gICAgdmFyIHBlbmRpbmdJbnRlcmFjdGlvbk1hcCA9IHJvb3QucGVuZGluZ0ludGVyYWN0aW9uTWFwO1xuICAgIHZhciBwZW5kaW5nSW50ZXJhY3Rpb25zID0gcGVuZGluZ0ludGVyYWN0aW9uTWFwLmdldChsYW5lKTtcblxuICAgIGlmIChwZW5kaW5nSW50ZXJhY3Rpb25zICE9IG51bGwpIHtcbiAgICAgIGludGVyYWN0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uIChpbnRlcmFjdGlvbikge1xuICAgICAgICBpZiAoIXBlbmRpbmdJbnRlcmFjdGlvbnMuaGFzKGludGVyYWN0aW9uKSkge1xuICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgcGVuZGluZyBhc3luYyB3b3JrIGNvdW50IGZvciBwcmV2aW91c2x5IHVuc2NoZWR1bGVkIGludGVyYWN0aW9uLlxuICAgICAgICAgIGludGVyYWN0aW9uLl9fY291bnQrKztcbiAgICAgICAgfVxuXG4gICAgICAgIHBlbmRpbmdJbnRlcmFjdGlvbnMuYWRkKGludGVyYWN0aW9uKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBwZW5kaW5nSW50ZXJhY3Rpb25NYXAuc2V0KGxhbmUsIG5ldyBTZXQoaW50ZXJhY3Rpb25zKSk7IC8vIFVwZGF0ZSB0aGUgcGVuZGluZyBhc3luYyB3b3JrIGNvdW50IGZvciB0aGUgY3VycmVudCBpbnRlcmFjdGlvbnMuXG5cbiAgICAgIGludGVyYWN0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uIChpbnRlcmFjdGlvbikge1xuICAgICAgICBpbnRlcmFjdGlvbi5fX2NvdW50Kys7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB2YXIgc3Vic2NyaWJlciA9IHRyYWNpbmcuX19zdWJzY3JpYmVyUmVmLmN1cnJlbnQ7XG5cbiAgICBpZiAoc3Vic2NyaWJlciAhPT0gbnVsbCkge1xuICAgICAgdmFyIHRocmVhZElEID0gY29tcHV0ZVRocmVhZElEKHJvb3QsIGxhbmUpO1xuICAgICAgc3Vic2NyaWJlci5vbldvcmtTY2hlZHVsZWQoaW50ZXJhY3Rpb25zLCB0aHJlYWRJRCk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHNjaGVkdWxlUGVuZGluZ0ludGVyYWN0aW9ucyhyb290LCBsYW5lKSB7XG5cbiAgc2NoZWR1bGVJbnRlcmFjdGlvbnMocm9vdCwgbGFuZSwgdHJhY2luZy5fX2ludGVyYWN0aW9uc1JlZi5jdXJyZW50KTtcbn1cblxuZnVuY3Rpb24gc3RhcnRXb3JrT25QZW5kaW5nSW50ZXJhY3Rpb25zKHJvb3QsIGxhbmVzKSB7XG4gIC8vIHdlIGNhbiBhY2N1cmF0ZWx5IGF0dHJpYnV0ZSB0aW1lIHNwZW50IHdvcmtpbmcgb24gaXQsIEFuZCBzbyB0aGF0IGNhc2NhZGluZ1xuICAvLyB3b3JrIHRyaWdnZXJlZCBkdXJpbmcgdGhlIHJlbmRlciBwaGFzZSB3aWxsIGJlIGFzc29jaWF0ZWQgd2l0aCBpdC5cblxuXG4gIHZhciBpbnRlcmFjdGlvbnMgPSBuZXcgU2V0KCk7XG4gIHJvb3QucGVuZGluZ0ludGVyYWN0aW9uTWFwLmZvckVhY2goZnVuY3Rpb24gKHNjaGVkdWxlZEludGVyYWN0aW9ucywgc2NoZWR1bGVkTGFuZSkge1xuICAgIGlmIChpbmNsdWRlc1NvbWVMYW5lKGxhbmVzLCBzY2hlZHVsZWRMYW5lKSkge1xuICAgICAgc2NoZWR1bGVkSW50ZXJhY3Rpb25zLmZvckVhY2goZnVuY3Rpb24gKGludGVyYWN0aW9uKSB7XG4gICAgICAgIHJldHVybiBpbnRlcmFjdGlvbnMuYWRkKGludGVyYWN0aW9uKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfSk7IC8vIFN0b3JlIHRoZSBjdXJyZW50IHNldCBvZiBpbnRlcmFjdGlvbnMgb24gdGhlIEZpYmVyUm9vdCBmb3IgYSBmZXcgcmVhc29uczpcbiAgLy8gV2UgY2FuIHJlLXVzZSBpdCBpbiBob3QgZnVuY3Rpb25zIGxpa2UgcGVyZm9ybUNvbmN1cnJlbnRXb3JrT25Sb290KClcbiAgLy8gd2l0aG91dCBoYXZpbmcgdG8gcmVjYWxjdWxhdGUgaXQuIFdlIHdpbGwgYWxzbyB1c2UgaXQgaW4gY29tbWl0V29yaygpIHRvXG4gIC8vIHBhc3MgdG8gYW55IFByb2ZpbGVyIG9uUmVuZGVyKCkgaG9va3MuIFRoaXMgYWxzbyBwcm92aWRlcyBEZXZUb29scyB3aXRoIGFcbiAgLy8gd2F5IHRvIGFjY2VzcyBpdCB3aGVuIHRoZSBvbkNvbW1pdFJvb3QoKSBob29rIGlzIGNhbGxlZC5cblxuICByb290Lm1lbW9pemVkSW50ZXJhY3Rpb25zID0gaW50ZXJhY3Rpb25zO1xuXG4gIGlmIChpbnRlcmFjdGlvbnMuc2l6ZSA+IDApIHtcbiAgICB2YXIgc3Vic2NyaWJlciA9IHRyYWNpbmcuX19zdWJzY3JpYmVyUmVmLmN1cnJlbnQ7XG5cbiAgICBpZiAoc3Vic2NyaWJlciAhPT0gbnVsbCkge1xuICAgICAgdmFyIHRocmVhZElEID0gY29tcHV0ZVRocmVhZElEKHJvb3QsIGxhbmVzKTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgc3Vic2NyaWJlci5vbldvcmtTdGFydGVkKGludGVyYWN0aW9ucywgdGhyZWFkSUQpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgLy8gSWYgdGhlIHN1YnNjcmliZXIgdGhyb3dzLCByZXRocm93IGl0IGluIGEgc2VwYXJhdGUgdGFza1xuICAgICAgICBzY2hlZHVsZUNhbGxiYWNrKEltbWVkaWF0ZVByaW9yaXR5JDEsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGZpbmlzaFBlbmRpbmdJbnRlcmFjdGlvbnMocm9vdCwgY29tbWl0dGVkTGFuZXMpIHtcblxuICB2YXIgcmVtYWluaW5nTGFuZXNBZnRlckNvbW1pdCA9IHJvb3QucGVuZGluZ0xhbmVzO1xuICB2YXIgc3Vic2NyaWJlcjtcblxuICB0cnkge1xuICAgIHN1YnNjcmliZXIgPSB0cmFjaW5nLl9fc3Vic2NyaWJlclJlZi5jdXJyZW50O1xuXG4gICAgaWYgKHN1YnNjcmliZXIgIT09IG51bGwgJiYgcm9vdC5tZW1vaXplZEludGVyYWN0aW9ucy5zaXplID4gMCkge1xuICAgICAgLy8gRklYTUU6IE1vcmUgdGhhbiBvbmUgbGFuZSBjYW4gZmluaXNoIGluIGEgc2luZ2xlIGNvbW1pdC5cbiAgICAgIHZhciB0aHJlYWRJRCA9IGNvbXB1dGVUaHJlYWRJRChyb290LCBjb21taXR0ZWRMYW5lcyk7XG4gICAgICBzdWJzY3JpYmVyLm9uV29ya1N0b3BwZWQocm9vdC5tZW1vaXplZEludGVyYWN0aW9ucywgdGhyZWFkSUQpO1xuICAgIH1cbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAvLyBJZiB0aGUgc3Vic2NyaWJlciB0aHJvd3MsIHJldGhyb3cgaXQgaW4gYSBzZXBhcmF0ZSB0YXNrXG4gICAgc2NoZWR1bGVDYWxsYmFjayhJbW1lZGlhdGVQcmlvcml0eSQxLCBmdW5jdGlvbiAoKSB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9KTtcbiAgfSBmaW5hbGx5IHtcbiAgICAvLyBDbGVhciBjb21wbGV0ZWQgaW50ZXJhY3Rpb25zIGZyb20gdGhlIHBlbmRpbmcgTWFwLlxuICAgIC8vIFVubGVzcyB0aGUgcmVuZGVyIHdhcyBzdXNwZW5kZWQgb3IgY2FzY2FkaW5nIHdvcmsgd2FzIHNjaGVkdWxlZCxcbiAgICAvLyBJbiB3aGljaCBjYXNl4oCTIGxlYXZlIHBlbmRpbmcgaW50ZXJhY3Rpb25zIHVudGlsIHRoZSBzdWJzZXF1ZW50IHJlbmRlci5cbiAgICB2YXIgcGVuZGluZ0ludGVyYWN0aW9uTWFwID0gcm9vdC5wZW5kaW5nSW50ZXJhY3Rpb25NYXA7XG4gICAgcGVuZGluZ0ludGVyYWN0aW9uTWFwLmZvckVhY2goZnVuY3Rpb24gKHNjaGVkdWxlZEludGVyYWN0aW9ucywgbGFuZSkge1xuICAgICAgLy8gT25seSBkZWNyZW1lbnQgdGhlIHBlbmRpbmcgaW50ZXJhY3Rpb24gY291bnQgaWYgd2UncmUgZG9uZS5cbiAgICAgIC8vIElmIHRoZXJlJ3Mgc3RpbGwgd29yayBhdCB0aGUgY3VycmVudCBwcmlvcml0eSxcbiAgICAgIC8vIFRoYXQgaW5kaWNhdGVzIHRoYXQgd2UgYXJlIHdhaXRpbmcgZm9yIHN1c3BlbnNlIGRhdGEuXG4gICAgICBpZiAoIWluY2x1ZGVzU29tZUxhbmUocmVtYWluaW5nTGFuZXNBZnRlckNvbW1pdCwgbGFuZSkpIHtcbiAgICAgICAgcGVuZGluZ0ludGVyYWN0aW9uTWFwLmRlbGV0ZShsYW5lKTtcbiAgICAgICAgc2NoZWR1bGVkSW50ZXJhY3Rpb25zLmZvckVhY2goZnVuY3Rpb24gKGludGVyYWN0aW9uKSB7XG4gICAgICAgICAgaW50ZXJhY3Rpb24uX19jb3VudC0tO1xuXG4gICAgICAgICAgaWYgKHN1YnNjcmliZXIgIT09IG51bGwgJiYgaW50ZXJhY3Rpb24uX19jb3VudCA9PT0gMCkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgc3Vic2NyaWJlci5vbkludGVyYWN0aW9uU2NoZWR1bGVkV29ya0NvbXBsZXRlZChpbnRlcmFjdGlvbik7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAvLyBJZiB0aGUgc3Vic2NyaWJlciB0aHJvd3MsIHJldGhyb3cgaXQgaW4gYSBzZXBhcmF0ZSB0YXNrXG4gICAgICAgICAgICAgIHNjaGVkdWxlQ2FsbGJhY2soSW1tZWRpYXRlUHJpb3JpdHkkMSwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59IC8vIGBhY3RgIHRlc3RpbmcgQVBJXG5cbmZ1bmN0aW9uIHNob3VsZEZvcmNlRmx1c2hGYWxsYmFja3NJbkRFVigpIHtcbiAgLy8gTmV2ZXIgZm9yY2UgZmx1c2ggaW4gcHJvZHVjdGlvbi4gVGhpcyBmdW5jdGlvbiBzaG91bGQgZ2V0IHN0cmlwcGVkIG91dC5cbiAgcmV0dXJuICBhY3RpbmdVcGRhdGVzU2NvcGVEZXB0aCA+IDA7XG59XG4vLyBzbyB3ZSBjYW4gdGVsbCBpZiBhbnkgYXN5bmMgYWN0KCkgY2FsbHMgdHJ5IHRvIHJ1biBpbiBwYXJhbGxlbC5cblxuXG52YXIgYWN0aW5nVXBkYXRlc1Njb3BlRGVwdGggPSAwO1xuXG5mdW5jdGlvbiBkZXRhY2hGaWJlckFmdGVyRWZmZWN0cyhmaWJlcikge1xuICBmaWJlci5zaWJsaW5nID0gbnVsbDtcbiAgZmliZXIuc3RhdGVOb2RlID0gbnVsbDtcbn1cblxudmFyIHJlc29sdmVGYW1pbHkgPSBudWxsOyAvLyAkRmxvd0ZpeE1lIEZsb3cgZ2V0cyBjb25mdXNlZCBieSBhIFdlYWtTZXQgZmVhdHVyZSBjaGVjayBiZWxvdy5cblxudmFyIGZhaWxlZEJvdW5kYXJpZXMgPSBudWxsO1xudmFyIHNldFJlZnJlc2hIYW5kbGVyID0gZnVuY3Rpb24gKGhhbmRsZXIpIHtcbiAge1xuICAgIHJlc29sdmVGYW1pbHkgPSBoYW5kbGVyO1xuICB9XG59O1xuZnVuY3Rpb24gcmVzb2x2ZUZ1bmN0aW9uRm9ySG90UmVsb2FkaW5nKHR5cGUpIHtcbiAge1xuICAgIGlmIChyZXNvbHZlRmFtaWx5ID09PSBudWxsKSB7XG4gICAgICAvLyBIb3QgcmVsb2FkaW5nIGlzIGRpc2FibGVkLlxuICAgICAgcmV0dXJuIHR5cGU7XG4gICAgfVxuXG4gICAgdmFyIGZhbWlseSA9IHJlc29sdmVGYW1pbHkodHlwZSk7XG5cbiAgICBpZiAoZmFtaWx5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB0eXBlO1xuICAgIH0gLy8gVXNlIHRoZSBsYXRlc3Qga25vd24gaW1wbGVtZW50YXRpb24uXG5cblxuICAgIHJldHVybiBmYW1pbHkuY3VycmVudDtcbiAgfVxufVxuZnVuY3Rpb24gcmVzb2x2ZUNsYXNzRm9ySG90UmVsb2FkaW5nKHR5cGUpIHtcbiAgLy8gTm8gaW1wbGVtZW50YXRpb24gZGlmZmVyZW5jZXMuXG4gIHJldHVybiByZXNvbHZlRnVuY3Rpb25Gb3JIb3RSZWxvYWRpbmcodHlwZSk7XG59XG5mdW5jdGlvbiByZXNvbHZlRm9yd2FyZFJlZkZvckhvdFJlbG9hZGluZyh0eXBlKSB7XG4gIHtcbiAgICBpZiAocmVzb2x2ZUZhbWlseSA9PT0gbnVsbCkge1xuICAgICAgLy8gSG90IHJlbG9hZGluZyBpcyBkaXNhYmxlZC5cbiAgICAgIHJldHVybiB0eXBlO1xuICAgIH1cblxuICAgIHZhciBmYW1pbHkgPSByZXNvbHZlRmFtaWx5KHR5cGUpO1xuXG4gICAgaWYgKGZhbWlseSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBDaGVjayBpZiB3ZSdyZSBkZWFsaW5nIHdpdGggYSByZWFsIGZvcndhcmRSZWYuIERvbid0IHdhbnQgdG8gY3Jhc2ggZWFybHkuXG4gICAgICBpZiAodHlwZSAhPT0gbnVsbCAmJiB0eXBlICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIHR5cGUucmVuZGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIC8vIEZvcndhcmRSZWYgaXMgc3BlY2lhbCBiZWNhdXNlIGl0cyByZXNvbHZlZCAudHlwZSBpcyBhbiBvYmplY3QsXG4gICAgICAgIC8vIGJ1dCBpdCdzIHBvc3NpYmxlIHRoYXQgd2Ugb25seSBoYXZlIGl0cyBpbm5lciByZW5kZXIgZnVuY3Rpb24gaW4gdGhlIG1hcC5cbiAgICAgICAgLy8gSWYgdGhhdCBpbm5lciByZW5kZXIgZnVuY3Rpb24gaXMgZGlmZmVyZW50LCB3ZSdsbCBidWlsZCBhIG5ldyBmb3J3YXJkUmVmIHR5cGUuXG4gICAgICAgIHZhciBjdXJyZW50UmVuZGVyID0gcmVzb2x2ZUZ1bmN0aW9uRm9ySG90UmVsb2FkaW5nKHR5cGUucmVuZGVyKTtcblxuICAgICAgICBpZiAodHlwZS5yZW5kZXIgIT09IGN1cnJlbnRSZW5kZXIpIHtcbiAgICAgICAgICB2YXIgc3ludGhldGljVHlwZSA9IHtcbiAgICAgICAgICAgICQkdHlwZW9mOiBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFLFxuICAgICAgICAgICAgcmVuZGVyOiBjdXJyZW50UmVuZGVyXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGlmICh0eXBlLmRpc3BsYXlOYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHN5bnRoZXRpY1R5cGUuZGlzcGxheU5hbWUgPSB0eXBlLmRpc3BsYXlOYW1lO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBzeW50aGV0aWNUeXBlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0eXBlO1xuICAgIH0gLy8gVXNlIHRoZSBsYXRlc3Qga25vd24gaW1wbGVtZW50YXRpb24uXG5cblxuICAgIHJldHVybiBmYW1pbHkuY3VycmVudDtcbiAgfVxufVxuZnVuY3Rpb24gaXNDb21wYXRpYmxlRmFtaWx5Rm9ySG90UmVsb2FkaW5nKGZpYmVyLCBlbGVtZW50KSB7XG4gIHtcbiAgICBpZiAocmVzb2x2ZUZhbWlseSA9PT0gbnVsbCkge1xuICAgICAgLy8gSG90IHJlbG9hZGluZyBpcyBkaXNhYmxlZC5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICB2YXIgcHJldlR5cGUgPSBmaWJlci5lbGVtZW50VHlwZTtcbiAgICB2YXIgbmV4dFR5cGUgPSBlbGVtZW50LnR5cGU7IC8vIElmIHdlIGdvdCBoZXJlLCB3ZSBrbm93IHR5cGVzIGFyZW4ndCA9PT0gZXF1YWwuXG5cbiAgICB2YXIgbmVlZHNDb21wYXJlRmFtaWxpZXMgPSBmYWxzZTtcbiAgICB2YXIgJCR0eXBlb2ZOZXh0VHlwZSA9IHR5cGVvZiBuZXh0VHlwZSA9PT0gJ29iamVjdCcgJiYgbmV4dFR5cGUgIT09IG51bGwgPyBuZXh0VHlwZS4kJHR5cGVvZiA6IG51bGw7XG5cbiAgICBzd2l0Y2ggKGZpYmVyLnRhZykge1xuICAgICAgY2FzZSBDbGFzc0NvbXBvbmVudDpcbiAgICAgICAge1xuICAgICAgICAgIGlmICh0eXBlb2YgbmV4dFR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIG5lZWRzQ29tcGFyZUZhbWlsaWVzID0gdHJ1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICBjYXNlIEZ1bmN0aW9uQ29tcG9uZW50OlxuICAgICAgICB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBuZXh0VHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgbmVlZHNDb21wYXJlRmFtaWxpZXMgPSB0cnVlO1xuICAgICAgICAgIH0gZWxzZSBpZiAoJCR0eXBlb2ZOZXh0VHlwZSA9PT0gUkVBQ1RfTEFaWV9UWVBFKSB7XG4gICAgICAgICAgICAvLyBXZSBkb24ndCBrbm93IHRoZSBpbm5lciB0eXBlIHlldC5cbiAgICAgICAgICAgIC8vIFdlJ3JlIGdvaW5nIHRvIGFzc3VtZSB0aGF0IHRoZSBsYXp5IGlubmVyIHR5cGUgaXMgc3RhYmxlLFxuICAgICAgICAgICAgLy8gYW5kIHNvIGl0IGlzIHN1ZmZpY2llbnQgdG8gYXZvaWQgcmVjb25jaWxpbmcgaXQgYXdheS5cbiAgICAgICAgICAgIC8vIFdlJ3JlIG5vdCBnb2luZyB0byB1bndyYXAgb3IgYWN0dWFsbHkgdXNlIHRoZSBuZXcgbGF6eSB0eXBlLlxuICAgICAgICAgICAgbmVlZHNDb21wYXJlRmFtaWxpZXMgPSB0cnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgIGNhc2UgRm9yd2FyZFJlZjpcbiAgICAgICAge1xuICAgICAgICAgIGlmICgkJHR5cGVvZk5leHRUeXBlID09PSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFKSB7XG4gICAgICAgICAgICBuZWVkc0NvbXBhcmVGYW1pbGllcyA9IHRydWU7XG4gICAgICAgICAgfSBlbHNlIGlmICgkJHR5cGVvZk5leHRUeXBlID09PSBSRUFDVF9MQVpZX1RZUEUpIHtcbiAgICAgICAgICAgIG5lZWRzQ29tcGFyZUZhbWlsaWVzID0gdHJ1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICBjYXNlIE1lbW9Db21wb25lbnQ6XG4gICAgICBjYXNlIFNpbXBsZU1lbW9Db21wb25lbnQ6XG4gICAgICAgIHtcbiAgICAgICAgICBpZiAoJCR0eXBlb2ZOZXh0VHlwZSA9PT0gUkVBQ1RfTUVNT19UWVBFKSB7XG4gICAgICAgICAgICAvLyBUT0RPOiBpZiBpdCB3YXMgYnV0IGNhbiBubyBsb25nZXIgYmUgc2ltcGxlLFxuICAgICAgICAgICAgLy8gd2Ugc2hvdWxkbid0IHNldCB0aGlzLlxuICAgICAgICAgICAgbmVlZHNDb21wYXJlRmFtaWxpZXMgPSB0cnVlO1xuICAgICAgICAgIH0gZWxzZSBpZiAoJCR0eXBlb2ZOZXh0VHlwZSA9PT0gUkVBQ1RfTEFaWV9UWVBFKSB7XG4gICAgICAgICAgICBuZWVkc0NvbXBhcmVGYW1pbGllcyA9IHRydWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gLy8gQ2hlY2sgaWYgYm90aCB0eXBlcyBoYXZlIGEgZmFtaWx5IGFuZCBpdCdzIHRoZSBzYW1lIG9uZS5cblxuXG4gICAgaWYgKG5lZWRzQ29tcGFyZUZhbWlsaWVzKSB7XG4gICAgICAvLyBOb3RlOiBtZW1vKCkgYW5kIGZvcndhcmRSZWYoKSB3ZSdsbCBjb21wYXJlIG91dGVyIHJhdGhlciB0aGFuIGlubmVyIHR5cGUuXG4gICAgICAvLyBUaGlzIG1lYW5zIGJvdGggb2YgdGhlbSBuZWVkIHRvIGJlIHJlZ2lzdGVyZWQgdG8gcHJlc2VydmUgc3RhdGUuXG4gICAgICAvLyBJZiB3ZSB1bndyYXBwZWQgYW5kIGNvbXBhcmVkIHRoZSBpbm5lciB0eXBlcyBmb3Igd3JhcHBlcnMgaW5zdGVhZCxcbiAgICAgIC8vIHRoZW4gd2Ugd291bGQgcmlzayBmYWxzZWx5IHNheWluZyB0d28gc2VwYXJhdGUgbWVtbyhGb28pXG4gICAgICAvLyBjYWxscyBhcmUgZXF1aXZhbGVudCBiZWNhdXNlIHRoZXkgd3JhcCB0aGUgc2FtZSBGb28gZnVuY3Rpb24uXG4gICAgICB2YXIgcHJldkZhbWlseSA9IHJlc29sdmVGYW1pbHkocHJldlR5cGUpO1xuXG4gICAgICBpZiAocHJldkZhbWlseSAhPT0gdW5kZWZpbmVkICYmIHByZXZGYW1pbHkgPT09IHJlc29sdmVGYW1pbHkobmV4dFR5cGUpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuZnVuY3Rpb24gbWFya0ZhaWxlZEVycm9yQm91bmRhcnlGb3JIb3RSZWxvYWRpbmcoZmliZXIpIHtcbiAge1xuICAgIGlmIChyZXNvbHZlRmFtaWx5ID09PSBudWxsKSB7XG4gICAgICAvLyBIb3QgcmVsb2FkaW5nIGlzIGRpc2FibGVkLlxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgV2Vha1NldCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChmYWlsZWRCb3VuZGFyaWVzID09PSBudWxsKSB7XG4gICAgICBmYWlsZWRCb3VuZGFyaWVzID0gbmV3IFdlYWtTZXQoKTtcbiAgICB9XG5cbiAgICBmYWlsZWRCb3VuZGFyaWVzLmFkZChmaWJlcik7XG4gIH1cbn1cbnZhciBzY2hlZHVsZVJlZnJlc2ggPSBmdW5jdGlvbiAocm9vdCwgdXBkYXRlKSB7XG4gIHtcbiAgICBpZiAocmVzb2x2ZUZhbWlseSA9PT0gbnVsbCkge1xuICAgICAgLy8gSG90IHJlbG9hZGluZyBpcyBkaXNhYmxlZC5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2YXIgc3RhbGVGYW1pbGllcyA9IHVwZGF0ZS5zdGFsZUZhbWlsaWVzLFxuICAgICAgICB1cGRhdGVkRmFtaWxpZXMgPSB1cGRhdGUudXBkYXRlZEZhbWlsaWVzO1xuICAgIGZsdXNoUGFzc2l2ZUVmZmVjdHMoKTtcbiAgICBmbHVzaFN5bmMoZnVuY3Rpb24gKCkge1xuICAgICAgc2NoZWR1bGVGaWJlcnNXaXRoRmFtaWxpZXNSZWN1cnNpdmVseShyb290LmN1cnJlbnQsIHVwZGF0ZWRGYW1pbGllcywgc3RhbGVGYW1pbGllcyk7XG4gICAgfSk7XG4gIH1cbn07XG52YXIgc2NoZWR1bGVSb290ID0gZnVuY3Rpb24gKHJvb3QsIGVsZW1lbnQpIHtcbiAge1xuICAgIGlmIChyb290LmNvbnRleHQgIT09IGVtcHR5Q29udGV4dE9iamVjdCkge1xuICAgICAgLy8gU3VwZXIgZWRnZSBjYXNlOiByb290IGhhcyBhIGxlZ2FjeSBfcmVuZGVyU3VidHJlZSBjb250ZXh0XG4gICAgICAvLyBidXQgd2UgZG9uJ3Qga25vdyB0aGUgcGFyZW50Q29tcG9uZW50IHNvIHdlIGNhbid0IHBhc3MgaXQuXG4gICAgICAvLyBKdXN0IGlnbm9yZS4gV2UnbGwgZGVsZXRlIHRoaXMgd2l0aCBfcmVuZGVyU3VidHJlZSBjb2RlIHBhdGggbGF0ZXIuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZmx1c2hQYXNzaXZlRWZmZWN0cygpO1xuICAgIGZsdXNoU3luYyhmdW5jdGlvbiAoKSB7XG4gICAgICB1cGRhdGVDb250YWluZXIoZWxlbWVudCwgcm9vdCwgbnVsbCwgbnVsbCk7XG4gICAgfSk7XG4gIH1cbn07XG5cbmZ1bmN0aW9uIHNjaGVkdWxlRmliZXJzV2l0aEZhbWlsaWVzUmVjdXJzaXZlbHkoZmliZXIsIHVwZGF0ZWRGYW1pbGllcywgc3RhbGVGYW1pbGllcykge1xuICB7XG4gICAgdmFyIGFsdGVybmF0ZSA9IGZpYmVyLmFsdGVybmF0ZSxcbiAgICAgICAgY2hpbGQgPSBmaWJlci5jaGlsZCxcbiAgICAgICAgc2libGluZyA9IGZpYmVyLnNpYmxpbmcsXG4gICAgICAgIHRhZyA9IGZpYmVyLnRhZyxcbiAgICAgICAgdHlwZSA9IGZpYmVyLnR5cGU7XG4gICAgdmFyIGNhbmRpZGF0ZVR5cGUgPSBudWxsO1xuXG4gICAgc3dpdGNoICh0YWcpIHtcbiAgICAgIGNhc2UgRnVuY3Rpb25Db21wb25lbnQ6XG4gICAgICBjYXNlIFNpbXBsZU1lbW9Db21wb25lbnQ6XG4gICAgICBjYXNlIENsYXNzQ29tcG9uZW50OlxuICAgICAgICBjYW5kaWRhdGVUeXBlID0gdHlwZTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgRm9yd2FyZFJlZjpcbiAgICAgICAgY2FuZGlkYXRlVHlwZSA9IHR5cGUucmVuZGVyO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICBpZiAocmVzb2x2ZUZhbWlseSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCByZXNvbHZlRmFtaWx5IHRvIGJlIHNldCBkdXJpbmcgaG90IHJlbG9hZC4nKTtcbiAgICB9XG5cbiAgICB2YXIgbmVlZHNSZW5kZXIgPSBmYWxzZTtcbiAgICB2YXIgbmVlZHNSZW1vdW50ID0gZmFsc2U7XG5cbiAgICBpZiAoY2FuZGlkYXRlVHlwZSAhPT0gbnVsbCkge1xuICAgICAgdmFyIGZhbWlseSA9IHJlc29sdmVGYW1pbHkoY2FuZGlkYXRlVHlwZSk7XG5cbiAgICAgIGlmIChmYW1pbHkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAoc3RhbGVGYW1pbGllcy5oYXMoZmFtaWx5KSkge1xuICAgICAgICAgIG5lZWRzUmVtb3VudCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAodXBkYXRlZEZhbWlsaWVzLmhhcyhmYW1pbHkpKSB7XG4gICAgICAgICAgaWYgKHRhZyA9PT0gQ2xhc3NDb21wb25lbnQpIHtcbiAgICAgICAgICAgIG5lZWRzUmVtb3VudCA9IHRydWU7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5lZWRzUmVuZGVyID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZmFpbGVkQm91bmRhcmllcyAhPT0gbnVsbCkge1xuICAgICAgaWYgKGZhaWxlZEJvdW5kYXJpZXMuaGFzKGZpYmVyKSB8fCBhbHRlcm5hdGUgIT09IG51bGwgJiYgZmFpbGVkQm91bmRhcmllcy5oYXMoYWx0ZXJuYXRlKSkge1xuICAgICAgICBuZWVkc1JlbW91bnQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChuZWVkc1JlbW91bnQpIHtcbiAgICAgIGZpYmVyLl9kZWJ1Z05lZWRzUmVtb3VudCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKG5lZWRzUmVtb3VudCB8fCBuZWVkc1JlbmRlcikge1xuICAgICAgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKGZpYmVyLCBTeW5jTGFuZSwgTm9UaW1lc3RhbXApO1xuICAgIH1cblxuICAgIGlmIChjaGlsZCAhPT0gbnVsbCAmJiAhbmVlZHNSZW1vdW50KSB7XG4gICAgICBzY2hlZHVsZUZpYmVyc1dpdGhGYW1pbGllc1JlY3Vyc2l2ZWx5KGNoaWxkLCB1cGRhdGVkRmFtaWxpZXMsIHN0YWxlRmFtaWxpZXMpO1xuICAgIH1cblxuICAgIGlmIChzaWJsaW5nICE9PSBudWxsKSB7XG4gICAgICBzY2hlZHVsZUZpYmVyc1dpdGhGYW1pbGllc1JlY3Vyc2l2ZWx5KHNpYmxpbmcsIHVwZGF0ZWRGYW1pbGllcywgc3RhbGVGYW1pbGllcyk7XG4gICAgfVxuICB9XG59XG5cbnZhciBmaW5kSG9zdEluc3RhbmNlc0ZvclJlZnJlc2ggPSBmdW5jdGlvbiAocm9vdCwgZmFtaWxpZXMpIHtcbiAge1xuICAgIHZhciBob3N0SW5zdGFuY2VzID0gbmV3IFNldCgpO1xuICAgIHZhciB0eXBlcyA9IG5ldyBTZXQoZmFtaWxpZXMubWFwKGZ1bmN0aW9uIChmYW1pbHkpIHtcbiAgICAgIHJldHVybiBmYW1pbHkuY3VycmVudDtcbiAgICB9KSk7XG4gICAgZmluZEhvc3RJbnN0YW5jZXNGb3JNYXRjaGluZ0ZpYmVyc1JlY3Vyc2l2ZWx5KHJvb3QuY3VycmVudCwgdHlwZXMsIGhvc3RJbnN0YW5jZXMpO1xuICAgIHJldHVybiBob3N0SW5zdGFuY2VzO1xuICB9XG59O1xuXG5mdW5jdGlvbiBmaW5kSG9zdEluc3RhbmNlc0Zvck1hdGNoaW5nRmliZXJzUmVjdXJzaXZlbHkoZmliZXIsIHR5cGVzLCBob3N0SW5zdGFuY2VzKSB7XG4gIHtcbiAgICB2YXIgY2hpbGQgPSBmaWJlci5jaGlsZCxcbiAgICAgICAgc2libGluZyA9IGZpYmVyLnNpYmxpbmcsXG4gICAgICAgIHRhZyA9IGZpYmVyLnRhZyxcbiAgICAgICAgdHlwZSA9IGZpYmVyLnR5cGU7XG4gICAgdmFyIGNhbmRpZGF0ZVR5cGUgPSBudWxsO1xuXG4gICAgc3dpdGNoICh0YWcpIHtcbiAgICAgIGNhc2UgRnVuY3Rpb25Db21wb25lbnQ6XG4gICAgICBjYXNlIFNpbXBsZU1lbW9Db21wb25lbnQ6XG4gICAgICBjYXNlIENsYXNzQ29tcG9uZW50OlxuICAgICAgICBjYW5kaWRhdGVUeXBlID0gdHlwZTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgRm9yd2FyZFJlZjpcbiAgICAgICAgY2FuZGlkYXRlVHlwZSA9IHR5cGUucmVuZGVyO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICB2YXIgZGlkTWF0Y2ggPSBmYWxzZTtcblxuICAgIGlmIChjYW5kaWRhdGVUeXBlICE9PSBudWxsKSB7XG4gICAgICBpZiAodHlwZXMuaGFzKGNhbmRpZGF0ZVR5cGUpKSB7XG4gICAgICAgIGRpZE1hdGNoID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZGlkTWF0Y2gpIHtcbiAgICAgIC8vIFdlIGhhdmUgYSBtYXRjaC4gVGhpcyBvbmx5IGRyaWxscyBkb3duIHRvIHRoZSBjbG9zZXN0IGhvc3QgY29tcG9uZW50cy5cbiAgICAgIC8vIFRoZXJlJ3Mgbm8gbmVlZCB0byBzZWFyY2ggZGVlcGVyIGJlY2F1c2UgZm9yIHRoZSBwdXJwb3NlIG9mIGdpdmluZ1xuICAgICAgLy8gdmlzdWFsIGZlZWRiYWNrLCBcImZsYXNoaW5nXCIgb3V0ZXJtb3N0IHBhcmVudCByZWN0YW5nbGVzIGlzIHN1ZmZpY2llbnQuXG4gICAgICBmaW5kSG9zdEluc3RhbmNlc0ZvckZpYmVyU2hhbGxvd2x5KGZpYmVyLCBob3N0SW5zdGFuY2VzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSWYgdGhlcmUncyBubyBtYXRjaCwgbWF5YmUgdGhlcmUgd2lsbCBiZSBvbmUgZnVydGhlciBkb3duIGluIHRoZSBjaGlsZCB0cmVlLlxuICAgICAgaWYgKGNoaWxkICE9PSBudWxsKSB7XG4gICAgICAgIGZpbmRIb3N0SW5zdGFuY2VzRm9yTWF0Y2hpbmdGaWJlcnNSZWN1cnNpdmVseShjaGlsZCwgdHlwZXMsIGhvc3RJbnN0YW5jZXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChzaWJsaW5nICE9PSBudWxsKSB7XG4gICAgICBmaW5kSG9zdEluc3RhbmNlc0Zvck1hdGNoaW5nRmliZXJzUmVjdXJzaXZlbHkoc2libGluZywgdHlwZXMsIGhvc3RJbnN0YW5jZXMpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBmaW5kSG9zdEluc3RhbmNlc0ZvckZpYmVyU2hhbGxvd2x5KGZpYmVyLCBob3N0SW5zdGFuY2VzKSB7XG4gIHtcbiAgICB2YXIgZm91bmRIb3N0SW5zdGFuY2VzID0gZmluZENoaWxkSG9zdEluc3RhbmNlc0ZvckZpYmVyU2hhbGxvd2x5KGZpYmVyLCBob3N0SW5zdGFuY2VzKTtcblxuICAgIGlmIChmb3VuZEhvc3RJbnN0YW5jZXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9IC8vIElmIHdlIGRpZG4ndCBmaW5kIGFueSBob3N0IGNoaWxkcmVuLCBmYWxsYmFjayB0byBjbG9zZXN0IGhvc3QgcGFyZW50LlxuXG5cbiAgICB2YXIgbm9kZSA9IGZpYmVyO1xuXG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIHN3aXRjaCAobm9kZS50YWcpIHtcbiAgICAgICAgY2FzZSBIb3N0Q29tcG9uZW50OlxuICAgICAgICAgIGhvc3RJbnN0YW5jZXMuYWRkKG5vZGUuc3RhdGVOb2RlKTtcbiAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgY2FzZSBIb3N0UG9ydGFsOlxuICAgICAgICAgIGhvc3RJbnN0YW5jZXMuYWRkKG5vZGUuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pO1xuICAgICAgICAgIHJldHVybjtcblxuICAgICAgICBjYXNlIEhvc3RSb290OlxuICAgICAgICAgIGhvc3RJbnN0YW5jZXMuYWRkKG5vZGUuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKG5vZGUucmV0dXJuID09PSBudWxsKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgdG8gcmVhY2ggcm9vdCBmaXJzdC4nKTtcbiAgICAgIH1cblxuICAgICAgbm9kZSA9IG5vZGUucmV0dXJuO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBmaW5kQ2hpbGRIb3N0SW5zdGFuY2VzRm9yRmliZXJTaGFsbG93bHkoZmliZXIsIGhvc3RJbnN0YW5jZXMpIHtcbiAge1xuICAgIHZhciBub2RlID0gZmliZXI7XG4gICAgdmFyIGZvdW5kSG9zdEluc3RhbmNlcyA9IGZhbHNlO1xuXG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIGlmIChub2RlLnRhZyA9PT0gSG9zdENvbXBvbmVudCkge1xuICAgICAgICAvLyBXZSBnb3QgYSBtYXRjaC5cbiAgICAgICAgZm91bmRIb3N0SW5zdGFuY2VzID0gdHJ1ZTtcbiAgICAgICAgaG9zdEluc3RhbmNlcy5hZGQobm9kZS5zdGF0ZU5vZGUpOyAvLyBUaGVyZSBtYXkgc3RpbGwgYmUgbW9yZSwgc28ga2VlcCBzZWFyY2hpbmcuXG4gICAgICB9IGVsc2UgaWYgKG5vZGUuY2hpbGQgIT09IG51bGwpIHtcbiAgICAgICAgbm9kZS5jaGlsZC5yZXR1cm4gPSBub2RlO1xuICAgICAgICBub2RlID0gbm9kZS5jaGlsZDtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChub2RlID09PSBmaWJlcikge1xuICAgICAgICByZXR1cm4gZm91bmRIb3N0SW5zdGFuY2VzO1xuICAgICAgfVxuXG4gICAgICB3aGlsZSAobm9kZS5zaWJsaW5nID09PSBudWxsKSB7XG4gICAgICAgIGlmIChub2RlLnJldHVybiA9PT0gbnVsbCB8fCBub2RlLnJldHVybiA9PT0gZmliZXIpIHtcbiAgICAgICAgICByZXR1cm4gZm91bmRIb3N0SW5zdGFuY2VzO1xuICAgICAgICB9XG5cbiAgICAgICAgbm9kZSA9IG5vZGUucmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBub2RlLnNpYmxpbmcucmV0dXJuID0gbm9kZS5yZXR1cm47XG4gICAgICBub2RlID0gbm9kZS5zaWJsaW5nO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxudmFyIGhhc0JhZE1hcFBvbHlmaWxsO1xuXG57XG4gIGhhc0JhZE1hcFBvbHlmaWxsID0gZmFsc2U7XG5cbiAgdHJ5IHtcbiAgICB2YXIgbm9uRXh0ZW5zaWJsZU9iamVjdCA9IE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyh7fSk7XG4gICAgLyogZXNsaW50LWRpc2FibGUgbm8tbmV3ICovXG5cbiAgICBuZXcgTWFwKFtbbm9uRXh0ZW5zaWJsZU9iamVjdCwgbnVsbF1dKTtcbiAgICBuZXcgU2V0KFtub25FeHRlbnNpYmxlT2JqZWN0XSk7XG4gICAgLyogZXNsaW50LWVuYWJsZSBuby1uZXcgKi9cbiAgfSBjYXRjaCAoZSkge1xuICAgIC8vIFRPRE86IENvbnNpZGVyIHdhcm5pbmcgYWJvdXQgYmFkIHBvbHlmaWxsc1xuICAgIGhhc0JhZE1hcFBvbHlmaWxsID0gdHJ1ZTtcbiAgfVxufVxuXG52YXIgZGVidWdDb3VudGVyID0gMTtcblxuZnVuY3Rpb24gRmliZXJOb2RlKHRhZywgcGVuZGluZ1Byb3BzLCBrZXksIG1vZGUpIHtcbiAgLy8gSW5zdGFuY2VcbiAgdGhpcy50YWcgPSB0YWc7XG4gIHRoaXMua2V5ID0ga2V5O1xuICB0aGlzLmVsZW1lbnRUeXBlID0gbnVsbDtcbiAgdGhpcy50eXBlID0gbnVsbDtcbiAgdGhpcy5zdGF0ZU5vZGUgPSBudWxsOyAvLyBGaWJlclxuXG4gIHRoaXMucmV0dXJuID0gbnVsbDtcbiAgdGhpcy5jaGlsZCA9IG51bGw7XG4gIHRoaXMuc2libGluZyA9IG51bGw7XG4gIHRoaXMuaW5kZXggPSAwO1xuICB0aGlzLnJlZiA9IG51bGw7XG4gIHRoaXMucGVuZGluZ1Byb3BzID0gcGVuZGluZ1Byb3BzO1xuICB0aGlzLm1lbW9pemVkUHJvcHMgPSBudWxsO1xuICB0aGlzLnVwZGF0ZVF1ZXVlID0gbnVsbDtcbiAgdGhpcy5tZW1vaXplZFN0YXRlID0gbnVsbDtcbiAgdGhpcy5kZXBlbmRlbmNpZXMgPSBudWxsO1xuICB0aGlzLm1vZGUgPSBtb2RlOyAvLyBFZmZlY3RzXG5cbiAgdGhpcy5mbGFncyA9IE5vRmxhZ3M7XG4gIHRoaXMubmV4dEVmZmVjdCA9IG51bGw7XG4gIHRoaXMuZmlyc3RFZmZlY3QgPSBudWxsO1xuICB0aGlzLmxhc3RFZmZlY3QgPSBudWxsO1xuICB0aGlzLmxhbmVzID0gTm9MYW5lcztcbiAgdGhpcy5jaGlsZExhbmVzID0gTm9MYW5lcztcbiAgdGhpcy5hbHRlcm5hdGUgPSBudWxsO1xuXG4gIHtcbiAgICAvLyBOb3RlOiBUaGUgZm9sbG93aW5nIGlzIGRvbmUgdG8gYXZvaWQgYSB2OCBwZXJmb3JtYW5jZSBjbGlmZi5cbiAgICAvL1xuICAgIC8vIEluaXRpYWxpemluZyB0aGUgZmllbGRzIGJlbG93IHRvIHNtaXMgYW5kIGxhdGVyIHVwZGF0aW5nIHRoZW0gd2l0aFxuICAgIC8vIGRvdWJsZSB2YWx1ZXMgd2lsbCBjYXVzZSBGaWJlcnMgdG8gZW5kIHVwIGhhdmluZyBzZXBhcmF0ZSBzaGFwZXMuXG4gICAgLy8gVGhpcyBiZWhhdmlvci9idWcgaGFzIHNvbWV0aGluZyB0byBkbyB3aXRoIE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9uKCkuXG4gICAgLy8gRm9ydHVuYXRlbHkgdGhpcyBvbmx5IGltcGFjdHMgREVWIGJ1aWxkcy5cbiAgICAvLyBVbmZvcnR1bmF0ZWx5IGl0IG1ha2VzIFJlYWN0IHVudXNhYmx5IHNsb3cgZm9yIHNvbWUgYXBwbGljYXRpb25zLlxuICAgIC8vIFRvIHdvcmsgYXJvdW5kIHRoaXMsIGluaXRpYWxpemUgdGhlIGZpZWxkcyBiZWxvdyB3aXRoIGRvdWJsZXMuXG4gICAgLy9cbiAgICAvLyBMZWFybiBtb3JlIGFib3V0IHRoaXMgaGVyZTpcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzE0MzY1XG4gICAgLy8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9ODUzOFxuICAgIHRoaXMuYWN0dWFsRHVyYXRpb24gPSBOdW1iZXIuTmFOO1xuICAgIHRoaXMuYWN0dWFsU3RhcnRUaW1lID0gTnVtYmVyLk5hTjtcbiAgICB0aGlzLnNlbGZCYXNlRHVyYXRpb24gPSBOdW1iZXIuTmFOO1xuICAgIHRoaXMudHJlZUJhc2VEdXJhdGlvbiA9IE51bWJlci5OYU47IC8vIEl0J3Mgb2theSB0byByZXBsYWNlIHRoZSBpbml0aWFsIGRvdWJsZXMgd2l0aCBzbWlzIGFmdGVyIGluaXRpYWxpemF0aW9uLlxuICAgIC8vIFRoaXMgd29uJ3QgdHJpZ2dlciB0aGUgcGVyZm9ybWFuY2UgY2xpZmYgbWVudGlvbmVkIGFib3ZlLFxuICAgIC8vIGFuZCBpdCBzaW1wbGlmaWVzIG90aGVyIHByb2ZpbGVyIGNvZGUgKGluY2x1ZGluZyBEZXZUb29scykuXG5cbiAgICB0aGlzLmFjdHVhbER1cmF0aW9uID0gMDtcbiAgICB0aGlzLmFjdHVhbFN0YXJ0VGltZSA9IC0xO1xuICAgIHRoaXMuc2VsZkJhc2VEdXJhdGlvbiA9IDA7XG4gICAgdGhpcy50cmVlQmFzZUR1cmF0aW9uID0gMDtcbiAgfVxuXG4gIHtcbiAgICAvLyBUaGlzIGlzbid0IGRpcmVjdGx5IHVzZWQgYnV0IGlzIGhhbmR5IGZvciBkZWJ1Z2dpbmcgaW50ZXJuYWxzOlxuICAgIHRoaXMuX2RlYnVnSUQgPSBkZWJ1Z0NvdW50ZXIrKztcbiAgICB0aGlzLl9kZWJ1Z1NvdXJjZSA9IG51bGw7XG4gICAgdGhpcy5fZGVidWdPd25lciA9IG51bGw7XG4gICAgdGhpcy5fZGVidWdOZWVkc1JlbW91bnQgPSBmYWxzZTtcbiAgICB0aGlzLl9kZWJ1Z0hvb2tUeXBlcyA9IG51bGw7XG5cbiAgICBpZiAoIWhhc0JhZE1hcFBvbHlmaWxsICYmIHR5cGVvZiBPYmplY3QucHJldmVudEV4dGVuc2lvbnMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyh0aGlzKTtcbiAgICB9XG4gIH1cbn0gLy8gVGhpcyBpcyBhIGNvbnN0cnVjdG9yIGZ1bmN0aW9uLCByYXRoZXIgdGhhbiBhIFBPSk8gY29uc3RydWN0b3IsIHN0aWxsXG4vLyBwbGVhc2UgZW5zdXJlIHdlIGRvIHRoZSBmb2xsb3dpbmc6XG4vLyAxKSBOb2JvZHkgc2hvdWxkIGFkZCBhbnkgaW5zdGFuY2UgbWV0aG9kcyBvbiB0aGlzLiBJbnN0YW5jZSBtZXRob2RzIGNhbiBiZVxuLy8gICAgbW9yZSBkaWZmaWN1bHQgdG8gcHJlZGljdCB3aGVuIHRoZXkgZ2V0IG9wdGltaXplZCBhbmQgdGhleSBhcmUgYWxtb3N0XG4vLyAgICBuZXZlciBpbmxpbmVkIHByb3Blcmx5IGluIHN0YXRpYyBjb21waWxlcnMuXG4vLyAyKSBOb2JvZHkgc2hvdWxkIHJlbHkgb24gYGluc3RhbmNlb2YgRmliZXJgIGZvciB0eXBlIHRlc3RpbmcuIFdlIHNob3VsZFxuLy8gICAgYWx3YXlzIGtub3cgd2hlbiBpdCBpcyBhIGZpYmVyLlxuLy8gMykgV2UgbWlnaHQgd2FudCB0byBleHBlcmltZW50IHdpdGggdXNpbmcgbnVtZXJpYyBrZXlzIHNpbmNlIHRoZXkgYXJlIGVhc2llclxuLy8gICAgdG8gb3B0aW1pemUgaW4gYSBub24tSklUIGVudmlyb25tZW50LlxuLy8gNCkgV2UgY2FuIGVhc2lseSBnbyBmcm9tIGEgY29uc3RydWN0b3IgdG8gYSBjcmVhdGVGaWJlciBvYmplY3QgbGl0ZXJhbCBpZiB0aGF0XG4vLyAgICBpcyBmYXN0ZXIuXG4vLyA1KSBJdCBzaG91bGQgYmUgZWFzeSB0byBwb3J0IHRoaXMgdG8gYSBDIHN0cnVjdCBhbmQga2VlcCBhIEMgaW1wbGVtZW50YXRpb25cbi8vICAgIGNvbXBhdGlibGUuXG5cblxudmFyIGNyZWF0ZUZpYmVyID0gZnVuY3Rpb24gKHRhZywgcGVuZGluZ1Byb3BzLCBrZXksIG1vZGUpIHtcbiAgLy8gJEZsb3dGaXhNZTogdGhlIHNoYXBlcyBhcmUgZXhhY3QgaGVyZSBidXQgRmxvdyBkb2Vzbid0IGxpa2UgY29uc3RydWN0b3JzXG4gIHJldHVybiBuZXcgRmliZXJOb2RlKHRhZywgcGVuZGluZ1Byb3BzLCBrZXksIG1vZGUpO1xufTtcblxuZnVuY3Rpb24gc2hvdWxkQ29uc3RydWN0JDEoQ29tcG9uZW50KSB7XG4gIHZhciBwcm90b3R5cGUgPSBDb21wb25lbnQucHJvdG90eXBlO1xuICByZXR1cm4gISEocHJvdG90eXBlICYmIHByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50KTtcbn1cblxuZnVuY3Rpb24gaXNTaW1wbGVGdW5jdGlvbkNvbXBvbmVudCh0eXBlKSB7XG4gIHJldHVybiB0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJyAmJiAhc2hvdWxkQ29uc3RydWN0JDEodHlwZSkgJiYgdHlwZS5kZWZhdWx0UHJvcHMgPT09IHVuZGVmaW5lZDtcbn1cbmZ1bmN0aW9uIHJlc29sdmVMYXp5Q29tcG9uZW50VGFnKENvbXBvbmVudCkge1xuICBpZiAodHlwZW9mIENvbXBvbmVudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBzaG91bGRDb25zdHJ1Y3QkMShDb21wb25lbnQpID8gQ2xhc3NDb21wb25lbnQgOiBGdW5jdGlvbkNvbXBvbmVudDtcbiAgfSBlbHNlIGlmIChDb21wb25lbnQgIT09IHVuZGVmaW5lZCAmJiBDb21wb25lbnQgIT09IG51bGwpIHtcbiAgICB2YXIgJCR0eXBlb2YgPSBDb21wb25lbnQuJCR0eXBlb2Y7XG5cbiAgICBpZiAoJCR0eXBlb2YgPT09IFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUpIHtcbiAgICAgIHJldHVybiBGb3J3YXJkUmVmO1xuICAgIH1cblxuICAgIGlmICgkJHR5cGVvZiA9PT0gUkVBQ1RfTUVNT19UWVBFKSB7XG4gICAgICByZXR1cm4gTWVtb0NvbXBvbmVudDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gSW5kZXRlcm1pbmF0ZUNvbXBvbmVudDtcbn0gLy8gVGhpcyBpcyB1c2VkIHRvIGNyZWF0ZSBhbiBhbHRlcm5hdGUgZmliZXIgdG8gZG8gd29yayBvbi5cblxuZnVuY3Rpb24gY3JlYXRlV29ya0luUHJvZ3Jlc3MoY3VycmVudCwgcGVuZGluZ1Byb3BzKSB7XG4gIHZhciB3b3JrSW5Qcm9ncmVzcyA9IGN1cnJlbnQuYWx0ZXJuYXRlO1xuXG4gIGlmICh3b3JrSW5Qcm9ncmVzcyA9PT0gbnVsbCkge1xuICAgIC8vIFdlIHVzZSBhIGRvdWJsZSBidWZmZXJpbmcgcG9vbGluZyB0ZWNobmlxdWUgYmVjYXVzZSB3ZSBrbm93IHRoYXQgd2UnbGxcbiAgICAvLyBvbmx5IGV2ZXIgbmVlZCBhdCBtb3N0IHR3byB2ZXJzaW9ucyBvZiBhIHRyZWUuIFdlIHBvb2wgdGhlIFwib3RoZXJcIiB1bnVzZWRcbiAgICAvLyBub2RlIHRoYXQgd2UncmUgZnJlZSB0byByZXVzZS4gVGhpcyBpcyBsYXppbHkgY3JlYXRlZCB0byBhdm9pZCBhbGxvY2F0aW5nXG4gICAgLy8gZXh0cmEgb2JqZWN0cyBmb3IgdGhpbmdzIHRoYXQgYXJlIG5ldmVyIHVwZGF0ZWQuIEl0IGFsc28gYWxsb3cgdXMgdG9cbiAgICAvLyByZWNsYWltIHRoZSBleHRyYSBtZW1vcnkgaWYgbmVlZGVkLlxuICAgIHdvcmtJblByb2dyZXNzID0gY3JlYXRlRmliZXIoY3VycmVudC50YWcsIHBlbmRpbmdQcm9wcywgY3VycmVudC5rZXksIGN1cnJlbnQubW9kZSk7XG4gICAgd29ya0luUHJvZ3Jlc3MuZWxlbWVudFR5cGUgPSBjdXJyZW50LmVsZW1lbnRUeXBlO1xuICAgIHdvcmtJblByb2dyZXNzLnR5cGUgPSBjdXJyZW50LnR5cGU7XG4gICAgd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlID0gY3VycmVudC5zdGF0ZU5vZGU7XG5cbiAgICB7XG4gICAgICAvLyBERVYtb25seSBmaWVsZHNcbiAgICAgIHdvcmtJblByb2dyZXNzLl9kZWJ1Z0lEID0gY3VycmVudC5fZGVidWdJRDtcbiAgICAgIHdvcmtJblByb2dyZXNzLl9kZWJ1Z1NvdXJjZSA9IGN1cnJlbnQuX2RlYnVnU291cmNlO1xuICAgICAgd29ya0luUHJvZ3Jlc3MuX2RlYnVnT3duZXIgPSBjdXJyZW50Ll9kZWJ1Z093bmVyO1xuICAgICAgd29ya0luUHJvZ3Jlc3MuX2RlYnVnSG9va1R5cGVzID0gY3VycmVudC5fZGVidWdIb29rVHlwZXM7XG4gICAgfVxuXG4gICAgd29ya0luUHJvZ3Jlc3MuYWx0ZXJuYXRlID0gY3VycmVudDtcbiAgICBjdXJyZW50LmFsdGVybmF0ZSA9IHdvcmtJblByb2dyZXNzO1xuICB9IGVsc2Uge1xuICAgIHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcyA9IHBlbmRpbmdQcm9wczsgLy8gTmVlZGVkIGJlY2F1c2UgQmxvY2tzIHN0b3JlIGRhdGEgb24gdHlwZS5cblxuICAgIHdvcmtJblByb2dyZXNzLnR5cGUgPSBjdXJyZW50LnR5cGU7IC8vIFdlIGFscmVhZHkgaGF2ZSBhbiBhbHRlcm5hdGUuXG4gICAgLy8gUmVzZXQgdGhlIGVmZmVjdCB0YWcuXG5cbiAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyA9IE5vRmxhZ3M7IC8vIFRoZSBlZmZlY3QgbGlzdCBpcyBubyBsb25nZXIgdmFsaWQuXG5cbiAgICB3b3JrSW5Qcm9ncmVzcy5uZXh0RWZmZWN0ID0gbnVsbDtcbiAgICB3b3JrSW5Qcm9ncmVzcy5maXJzdEVmZmVjdCA9IG51bGw7XG4gICAgd29ya0luUHJvZ3Jlc3MubGFzdEVmZmVjdCA9IG51bGw7XG5cbiAgICB7XG4gICAgICAvLyBXZSBpbnRlbnRpb25hbGx5IHJlc2V0LCByYXRoZXIgdGhhbiBjb3B5LCBhY3R1YWxEdXJhdGlvbiAmIGFjdHVhbFN0YXJ0VGltZS5cbiAgICAgIC8vIFRoaXMgcHJldmVudHMgdGltZSBmcm9tIGVuZGxlc3NseSBhY2N1bXVsYXRpbmcgaW4gbmV3IGNvbW1pdHMuXG4gICAgICAvLyBUaGlzIGhhcyB0aGUgZG93bnNpZGUgb2YgcmVzZXR0aW5nIHZhbHVlcyBmb3IgZGlmZmVyZW50IHByaW9yaXR5IHJlbmRlcnMsXG4gICAgICAvLyBCdXQgd29ya3MgZm9yIHlpZWxkaW5nICh0aGUgY29tbW9uIGNhc2UpIGFuZCBzaG91bGQgc3VwcG9ydCByZXN1bWluZy5cbiAgICAgIHdvcmtJblByb2dyZXNzLmFjdHVhbER1cmF0aW9uID0gMDtcbiAgICAgIHdvcmtJblByb2dyZXNzLmFjdHVhbFN0YXJ0VGltZSA9IC0xO1xuICAgIH1cbiAgfVxuXG4gIHdvcmtJblByb2dyZXNzLmNoaWxkTGFuZXMgPSBjdXJyZW50LmNoaWxkTGFuZXM7XG4gIHdvcmtJblByb2dyZXNzLmxhbmVzID0gY3VycmVudC5sYW5lcztcbiAgd29ya0luUHJvZ3Jlc3MuY2hpbGQgPSBjdXJyZW50LmNoaWxkO1xuICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFByb3BzID0gY3VycmVudC5tZW1vaXplZFByb3BzO1xuICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gY3VycmVudC5tZW1vaXplZFN0YXRlO1xuICB3b3JrSW5Qcm9ncmVzcy51cGRhdGVRdWV1ZSA9IGN1cnJlbnQudXBkYXRlUXVldWU7IC8vIENsb25lIHRoZSBkZXBlbmRlbmNpZXMgb2JqZWN0LiBUaGlzIGlzIG11dGF0ZWQgZHVyaW5nIHRoZSByZW5kZXIgcGhhc2UsIHNvXG4gIC8vIGl0IGNhbm5vdCBiZSBzaGFyZWQgd2l0aCB0aGUgY3VycmVudCBmaWJlci5cblxuICB2YXIgY3VycmVudERlcGVuZGVuY2llcyA9IGN1cnJlbnQuZGVwZW5kZW5jaWVzO1xuICB3b3JrSW5Qcm9ncmVzcy5kZXBlbmRlbmNpZXMgPSBjdXJyZW50RGVwZW5kZW5jaWVzID09PSBudWxsID8gbnVsbCA6IHtcbiAgICBsYW5lczogY3VycmVudERlcGVuZGVuY2llcy5sYW5lcyxcbiAgICBmaXJzdENvbnRleHQ6IGN1cnJlbnREZXBlbmRlbmNpZXMuZmlyc3RDb250ZXh0XG4gIH07IC8vIFRoZXNlIHdpbGwgYmUgb3ZlcnJpZGRlbiBkdXJpbmcgdGhlIHBhcmVudCdzIHJlY29uY2lsaWF0aW9uXG5cbiAgd29ya0luUHJvZ3Jlc3Muc2libGluZyA9IGN1cnJlbnQuc2libGluZztcbiAgd29ya0luUHJvZ3Jlc3MuaW5kZXggPSBjdXJyZW50LmluZGV4O1xuICB3b3JrSW5Qcm9ncmVzcy5yZWYgPSBjdXJyZW50LnJlZjtcblxuICB7XG4gICAgd29ya0luUHJvZ3Jlc3Muc2VsZkJhc2VEdXJhdGlvbiA9IGN1cnJlbnQuc2VsZkJhc2VEdXJhdGlvbjtcbiAgICB3b3JrSW5Qcm9ncmVzcy50cmVlQmFzZUR1cmF0aW9uID0gY3VycmVudC50cmVlQmFzZUR1cmF0aW9uO1xuICB9XG5cbiAge1xuICAgIHdvcmtJblByb2dyZXNzLl9kZWJ1Z05lZWRzUmVtb3VudCA9IGN1cnJlbnQuX2RlYnVnTmVlZHNSZW1vdW50O1xuXG4gICAgc3dpdGNoICh3b3JrSW5Qcm9ncmVzcy50YWcpIHtcbiAgICAgIGNhc2UgSW5kZXRlcm1pbmF0ZUNvbXBvbmVudDpcbiAgICAgIGNhc2UgRnVuY3Rpb25Db21wb25lbnQ6XG4gICAgICBjYXNlIFNpbXBsZU1lbW9Db21wb25lbnQ6XG4gICAgICAgIHdvcmtJblByb2dyZXNzLnR5cGUgPSByZXNvbHZlRnVuY3Rpb25Gb3JIb3RSZWxvYWRpbmcoY3VycmVudC50eXBlKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgQ2xhc3NDb21wb25lbnQ6XG4gICAgICAgIHdvcmtJblByb2dyZXNzLnR5cGUgPSByZXNvbHZlQ2xhc3NGb3JIb3RSZWxvYWRpbmcoY3VycmVudC50eXBlKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgRm9yd2FyZFJlZjpcbiAgICAgICAgd29ya0luUHJvZ3Jlc3MudHlwZSA9IHJlc29sdmVGb3J3YXJkUmVmRm9ySG90UmVsb2FkaW5nKGN1cnJlbnQudHlwZSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB3b3JrSW5Qcm9ncmVzcztcbn0gLy8gVXNlZCB0byByZXVzZSBhIEZpYmVyIGZvciBhIHNlY29uZCBwYXNzLlxuXG5mdW5jdGlvbiByZXNldFdvcmtJblByb2dyZXNzKHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcykge1xuICAvLyBUaGlzIHJlc2V0cyB0aGUgRmliZXIgdG8gd2hhdCBjcmVhdGVGaWJlciBvciBjcmVhdGVXb3JrSW5Qcm9ncmVzcyB3b3VsZFxuICAvLyBoYXZlIHNldCB0aGUgdmFsdWVzIHRvIGJlZm9yZSBkdXJpbmcgdGhlIGZpcnN0IHBhc3MuIElkZWFsbHkgdGhpcyB3b3VsZG4ndFxuICAvLyBiZSBuZWNlc3NhcnkgYnV0IHVuZm9ydHVuYXRlbHkgbWFueSBjb2RlIHBhdGhzIHJlYWRzIGZyb20gdGhlIHdvcmtJblByb2dyZXNzXG4gIC8vIHdoZW4gdGhleSBzaG91bGQgYmUgcmVhZGluZyBmcm9tIGN1cnJlbnQgYW5kIHdyaXRpbmcgdG8gd29ya0luUHJvZ3Jlc3MuXG4gIC8vIFdlIGFzc3VtZSBwZW5kaW5nUHJvcHMsIGluZGV4LCBrZXksIHJlZiwgcmV0dXJuIGFyZSBzdGlsbCB1bnRvdWNoZWQgdG9cbiAgLy8gYXZvaWQgZG9pbmcgYW5vdGhlciByZWNvbmNpbGlhdGlvbi5cbiAgLy8gUmVzZXQgdGhlIGVmZmVjdCB0YWcgYnV0IGtlZXAgYW55IFBsYWNlbWVudCB0YWdzLCBzaW5jZSB0aGF0J3Mgc29tZXRoaW5nXG4gIC8vIHRoYXQgY2hpbGQgZmliZXIgaXMgc2V0dGluZywgbm90IHRoZSByZWNvbmNpbGlhdGlvbi5cbiAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgJj0gUGxhY2VtZW50OyAvLyBUaGUgZWZmZWN0IGxpc3QgaXMgbm8gbG9uZ2VyIHZhbGlkLlxuXG4gIHdvcmtJblByb2dyZXNzLm5leHRFZmZlY3QgPSBudWxsO1xuICB3b3JrSW5Qcm9ncmVzcy5maXJzdEVmZmVjdCA9IG51bGw7XG4gIHdvcmtJblByb2dyZXNzLmxhc3RFZmZlY3QgPSBudWxsO1xuICB2YXIgY3VycmVudCA9IHdvcmtJblByb2dyZXNzLmFsdGVybmF0ZTtcblxuICBpZiAoY3VycmVudCA9PT0gbnVsbCkge1xuICAgIC8vIFJlc2V0IHRvIGNyZWF0ZUZpYmVyJ3MgaW5pdGlhbCB2YWx1ZXMuXG4gICAgd29ya0luUHJvZ3Jlc3MuY2hpbGRMYW5lcyA9IE5vTGFuZXM7XG4gICAgd29ya0luUHJvZ3Jlc3MubGFuZXMgPSByZW5kZXJMYW5lcztcbiAgICB3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IG51bGw7XG4gICAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRQcm9wcyA9IG51bGw7XG4gICAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IG51bGw7XG4gICAgd29ya0luUHJvZ3Jlc3MudXBkYXRlUXVldWUgPSBudWxsO1xuICAgIHdvcmtJblByb2dyZXNzLmRlcGVuZGVuY2llcyA9IG51bGw7XG4gICAgd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlID0gbnVsbDtcblxuICAgIHtcbiAgICAgIC8vIE5vdGU6IFdlIGRvbid0IHJlc2V0IHRoZSBhY3R1YWxUaW1lIGNvdW50cy4gSXQncyB1c2VmdWwgdG8gYWNjdW11bGF0ZVxuICAgICAgLy8gYWN0dWFsIHRpbWUgYWNyb3NzIG11bHRpcGxlIHJlbmRlciBwYXNzZXMuXG4gICAgICB3b3JrSW5Qcm9ncmVzcy5zZWxmQmFzZUR1cmF0aW9uID0gMDtcbiAgICAgIHdvcmtJblByb2dyZXNzLnRyZWVCYXNlRHVyYXRpb24gPSAwO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBSZXNldCB0byB0aGUgY2xvbmVkIHZhbHVlcyB0aGF0IGNyZWF0ZVdvcmtJblByb2dyZXNzIHdvdWxkJ3ZlLlxuICAgIHdvcmtJblByb2dyZXNzLmNoaWxkTGFuZXMgPSBjdXJyZW50LmNoaWxkTGFuZXM7XG4gICAgd29ya0luUHJvZ3Jlc3MubGFuZXMgPSBjdXJyZW50LmxhbmVzO1xuICAgIHdvcmtJblByb2dyZXNzLmNoaWxkID0gY3VycmVudC5jaGlsZDtcbiAgICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFByb3BzID0gY3VycmVudC5tZW1vaXplZFByb3BzO1xuICAgIHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBjdXJyZW50Lm1lbW9pemVkU3RhdGU7XG4gICAgd29ya0luUHJvZ3Jlc3MudXBkYXRlUXVldWUgPSBjdXJyZW50LnVwZGF0ZVF1ZXVlOyAvLyBOZWVkZWQgYmVjYXVzZSBCbG9ja3Mgc3RvcmUgZGF0YSBvbiB0eXBlLlxuXG4gICAgd29ya0luUHJvZ3Jlc3MudHlwZSA9IGN1cnJlbnQudHlwZTsgLy8gQ2xvbmUgdGhlIGRlcGVuZGVuY2llcyBvYmplY3QuIFRoaXMgaXMgbXV0YXRlZCBkdXJpbmcgdGhlIHJlbmRlciBwaGFzZSwgc29cbiAgICAvLyBpdCBjYW5ub3QgYmUgc2hhcmVkIHdpdGggdGhlIGN1cnJlbnQgZmliZXIuXG5cbiAgICB2YXIgY3VycmVudERlcGVuZGVuY2llcyA9IGN1cnJlbnQuZGVwZW5kZW5jaWVzO1xuICAgIHdvcmtJblByb2dyZXNzLmRlcGVuZGVuY2llcyA9IGN1cnJlbnREZXBlbmRlbmNpZXMgPT09IG51bGwgPyBudWxsIDoge1xuICAgICAgbGFuZXM6IGN1cnJlbnREZXBlbmRlbmNpZXMubGFuZXMsXG4gICAgICBmaXJzdENvbnRleHQ6IGN1cnJlbnREZXBlbmRlbmNpZXMuZmlyc3RDb250ZXh0XG4gICAgfTtcblxuICAgIHtcbiAgICAgIC8vIE5vdGU6IFdlIGRvbid0IHJlc2V0IHRoZSBhY3R1YWxUaW1lIGNvdW50cy4gSXQncyB1c2VmdWwgdG8gYWNjdW11bGF0ZVxuICAgICAgLy8gYWN0dWFsIHRpbWUgYWNyb3NzIG11bHRpcGxlIHJlbmRlciBwYXNzZXMuXG4gICAgICB3b3JrSW5Qcm9ncmVzcy5zZWxmQmFzZUR1cmF0aW9uID0gY3VycmVudC5zZWxmQmFzZUR1cmF0aW9uO1xuICAgICAgd29ya0luUHJvZ3Jlc3MudHJlZUJhc2VEdXJhdGlvbiA9IGN1cnJlbnQudHJlZUJhc2VEdXJhdGlvbjtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gd29ya0luUHJvZ3Jlc3M7XG59XG5mdW5jdGlvbiBjcmVhdGVIb3N0Um9vdEZpYmVyKHRhZykge1xuICB2YXIgbW9kZTtcblxuICBpZiAodGFnID09PSBDb25jdXJyZW50Um9vdCkge1xuICAgIG1vZGUgPSBDb25jdXJyZW50TW9kZSB8IEJsb2NraW5nTW9kZSB8IFN0cmljdE1vZGU7XG4gIH0gZWxzZSBpZiAodGFnID09PSBCbG9ja2luZ1Jvb3QpIHtcbiAgICBtb2RlID0gQmxvY2tpbmdNb2RlIHwgU3RyaWN0TW9kZTtcbiAgfSBlbHNlIHtcbiAgICBtb2RlID0gTm9Nb2RlO1xuICB9XG5cbiAgaWYgKCBpc0RldlRvb2xzUHJlc2VudCkge1xuICAgIC8vIEFsd2F5cyBjb2xsZWN0IHByb2ZpbGUgdGltaW5ncyB3aGVuIERldlRvb2xzIGFyZSBwcmVzZW50LlxuICAgIC8vIFRoaXMgZW5hYmxlcyBEZXZUb29scyB0byBzdGFydCBjYXB0dXJpbmcgdGltaW5nIGF0IGFueSBwb2ludOKAk1xuICAgIC8vIFdpdGhvdXQgc29tZSBub2RlcyBpbiB0aGUgdHJlZSBoYXZpbmcgZW1wdHkgYmFzZSB0aW1lcy5cbiAgICBtb2RlIHw9IFByb2ZpbGVNb2RlO1xuICB9XG5cbiAgcmV0dXJuIGNyZWF0ZUZpYmVyKEhvc3RSb290LCBudWxsLCBudWxsLCBtb2RlKTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUZpYmVyRnJvbVR5cGVBbmRQcm9wcyh0eXBlLCAvLyBSZWFjdCRFbGVtZW50VHlwZVxua2V5LCBwZW5kaW5nUHJvcHMsIG93bmVyLCBtb2RlLCBsYW5lcykge1xuICB2YXIgZmliZXJUYWcgPSBJbmRldGVybWluYXRlQ29tcG9uZW50OyAvLyBUaGUgcmVzb2x2ZWQgdHlwZSBpcyBzZXQgaWYgd2Uga25vdyB3aGF0IHRoZSBmaW5hbCB0eXBlIHdpbGwgYmUuIEkuZS4gaXQncyBub3QgbGF6eS5cblxuICB2YXIgcmVzb2x2ZWRUeXBlID0gdHlwZTtcblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICBpZiAoc2hvdWxkQ29uc3RydWN0JDEodHlwZSkpIHtcbiAgICAgIGZpYmVyVGFnID0gQ2xhc3NDb21wb25lbnQ7XG5cbiAgICAgIHtcbiAgICAgICAgcmVzb2x2ZWRUeXBlID0gcmVzb2x2ZUNsYXNzRm9ySG90UmVsb2FkaW5nKHJlc29sdmVkVHlwZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHtcbiAgICAgICAgcmVzb2x2ZWRUeXBlID0gcmVzb2x2ZUZ1bmN0aW9uRm9ySG90UmVsb2FkaW5nKHJlc29sdmVkVHlwZSk7XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2UgaWYgKHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJykge1xuICAgIGZpYmVyVGFnID0gSG9zdENvbXBvbmVudDtcbiAgfSBlbHNlIHtcbiAgICBnZXRUYWc6IHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSBSRUFDVF9GUkFHTUVOVF9UWVBFOlxuICAgICAgICByZXR1cm4gY3JlYXRlRmliZXJGcm9tRnJhZ21lbnQocGVuZGluZ1Byb3BzLmNoaWxkcmVuLCBtb2RlLCBsYW5lcywga2V5KTtcblxuICAgICAgY2FzZSBSRUFDVF9ERUJVR19UUkFDSU5HX01PREVfVFlQRTpcbiAgICAgICAgZmliZXJUYWcgPSBNb2RlO1xuICAgICAgICBtb2RlIHw9IERlYnVnVHJhY2luZ01vZGU7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFJFQUNUX1NUUklDVF9NT0RFX1RZUEU6XG4gICAgICAgIGZpYmVyVGFnID0gTW9kZTtcbiAgICAgICAgbW9kZSB8PSBTdHJpY3RNb2RlO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBSRUFDVF9QUk9GSUxFUl9UWVBFOlxuICAgICAgICByZXR1cm4gY3JlYXRlRmliZXJGcm9tUHJvZmlsZXIocGVuZGluZ1Byb3BzLCBtb2RlLCBsYW5lcywga2V5KTtcblxuICAgICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9UWVBFOlxuICAgICAgICByZXR1cm4gY3JlYXRlRmliZXJGcm9tU3VzcGVuc2UocGVuZGluZ1Byb3BzLCBtb2RlLCBsYW5lcywga2V5KTtcblxuICAgICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEU6XG4gICAgICAgIHJldHVybiBjcmVhdGVGaWJlckZyb21TdXNwZW5zZUxpc3QocGVuZGluZ1Byb3BzLCBtb2RlLCBsYW5lcywga2V5KTtcblxuICAgICAgY2FzZSBSRUFDVF9PRkZTQ1JFRU5fVFlQRTpcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUZpYmVyRnJvbU9mZnNjcmVlbihwZW5kaW5nUHJvcHMsIG1vZGUsIGxhbmVzLCBrZXkpO1xuXG4gICAgICBjYXNlIFJFQUNUX0xFR0FDWV9ISURERU5fVFlQRTpcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUZpYmVyRnJvbUxlZ2FjeUhpZGRlbihwZW5kaW5nUHJvcHMsIG1vZGUsIGxhbmVzLCBrZXkpO1xuXG4gICAgICBjYXNlIFJFQUNUX1NDT1BFX1RZUEU6XG5cbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1mYWxsdGhyb3VnaFxuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB7XG4gICAgICAgICAgaWYgKHR5cGVvZiB0eXBlID09PSAnb2JqZWN0JyAmJiB0eXBlICE9PSBudWxsKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHR5cGUuJCR0eXBlb2YpIHtcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9QUk9WSURFUl9UWVBFOlxuICAgICAgICAgICAgICAgIGZpYmVyVGFnID0gQ29udGV4dFByb3ZpZGVyO1xuICAgICAgICAgICAgICAgIGJyZWFrIGdldFRhZztcblxuICAgICAgICAgICAgICBjYXNlIFJFQUNUX0NPTlRFWFRfVFlQRTpcbiAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIGEgY29uc3VtZXJcbiAgICAgICAgICAgICAgICBmaWJlclRhZyA9IENvbnRleHRDb25zdW1lcjtcbiAgICAgICAgICAgICAgICBicmVhayBnZXRUYWc7XG5cbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFOlxuICAgICAgICAgICAgICAgIGZpYmVyVGFnID0gRm9yd2FyZFJlZjtcblxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIHJlc29sdmVkVHlwZSA9IHJlc29sdmVGb3J3YXJkUmVmRm9ySG90UmVsb2FkaW5nKHJlc29sdmVkVHlwZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgYnJlYWsgZ2V0VGFnO1xuXG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOlxuICAgICAgICAgICAgICAgIGZpYmVyVGFnID0gTWVtb0NvbXBvbmVudDtcbiAgICAgICAgICAgICAgICBicmVhayBnZXRUYWc7XG5cbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgICAgICAgICAgZmliZXJUYWcgPSBMYXp5Q29tcG9uZW50O1xuICAgICAgICAgICAgICAgIHJlc29sdmVkVHlwZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgYnJlYWsgZ2V0VGFnO1xuXG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfQkxPQ0tfVFlQRTpcbiAgICAgICAgICAgICAgICBmaWJlclRhZyA9IEJsb2NrO1xuICAgICAgICAgICAgICAgIGJyZWFrIGdldFRhZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICB2YXIgaW5mbyA9ICcnO1xuXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWYgKHR5cGUgPT09IHVuZGVmaW5lZCB8fCB0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcgJiYgdHlwZSAhPT0gbnVsbCAmJiBPYmplY3Qua2V5cyh0eXBlKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgaW5mbyArPSAnIFlvdSBsaWtlbHkgZm9yZ290IHRvIGV4cG9ydCB5b3VyIGNvbXBvbmVudCBmcm9tIHRoZSBmaWxlICcgKyBcIml0J3MgZGVmaW5lZCBpbiwgb3IgeW91IG1pZ2h0IGhhdmUgbWl4ZWQgdXAgZGVmYXVsdCBhbmQgXCIgKyAnbmFtZWQgaW1wb3J0cy4nO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgb3duZXJOYW1lID0gb3duZXIgPyBnZXRDb21wb25lbnROYW1lKG93bmVyLnR5cGUpIDogbnVsbDtcblxuICAgICAgICAgICAgaWYgKG93bmVyTmFtZSkge1xuICAgICAgICAgICAgICBpbmZvICs9ICdcXG5cXG5DaGVjayB0aGUgcmVuZGVyIG1ldGhvZCBvZiBgJyArIG93bmVyTmFtZSArICdgLic7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAge1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aHJvdyBFcnJvciggXCJFbGVtZW50IHR5cGUgaXMgaW52YWxpZDogZXhwZWN0ZWQgYSBzdHJpbmcgKGZvciBidWlsdC1pbiBjb21wb25lbnRzKSBvciBhIGNsYXNzL2Z1bmN0aW9uIChmb3IgY29tcG9zaXRlIGNvbXBvbmVudHMpIGJ1dCBnb3Q6IFwiICsgKHR5cGUgPT0gbnVsbCA/IHR5cGUgOiB0eXBlb2YgdHlwZSkgKyBcIi5cIiArIGluZm8gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gIH1cblxuICB2YXIgZmliZXIgPSBjcmVhdGVGaWJlcihmaWJlclRhZywgcGVuZGluZ1Byb3BzLCBrZXksIG1vZGUpO1xuICBmaWJlci5lbGVtZW50VHlwZSA9IHR5cGU7XG4gIGZpYmVyLnR5cGUgPSByZXNvbHZlZFR5cGU7XG4gIGZpYmVyLmxhbmVzID0gbGFuZXM7XG5cbiAge1xuICAgIGZpYmVyLl9kZWJ1Z093bmVyID0gb3duZXI7XG4gIH1cblxuICByZXR1cm4gZmliZXI7XG59XG5mdW5jdGlvbiBjcmVhdGVGaWJlckZyb21FbGVtZW50KGVsZW1lbnQsIG1vZGUsIGxhbmVzKSB7XG4gIHZhciBvd25lciA9IG51bGw7XG5cbiAge1xuICAgIG93bmVyID0gZWxlbWVudC5fb3duZXI7XG4gIH1cblxuICB2YXIgdHlwZSA9IGVsZW1lbnQudHlwZTtcbiAgdmFyIGtleSA9IGVsZW1lbnQua2V5O1xuICB2YXIgcGVuZGluZ1Byb3BzID0gZWxlbWVudC5wcm9wcztcbiAgdmFyIGZpYmVyID0gY3JlYXRlRmliZXJGcm9tVHlwZUFuZFByb3BzKHR5cGUsIGtleSwgcGVuZGluZ1Byb3BzLCBvd25lciwgbW9kZSwgbGFuZXMpO1xuXG4gIHtcbiAgICBmaWJlci5fZGVidWdTb3VyY2UgPSBlbGVtZW50Ll9zb3VyY2U7XG4gICAgZmliZXIuX2RlYnVnT3duZXIgPSBlbGVtZW50Ll9vd25lcjtcbiAgfVxuXG4gIHJldHVybiBmaWJlcjtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUZpYmVyRnJvbUZyYWdtZW50KGVsZW1lbnRzLCBtb2RlLCBsYW5lcywga2V5KSB7XG4gIHZhciBmaWJlciA9IGNyZWF0ZUZpYmVyKEZyYWdtZW50LCBlbGVtZW50cywga2V5LCBtb2RlKTtcbiAgZmliZXIubGFuZXMgPSBsYW5lcztcbiAgcmV0dXJuIGZpYmVyO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVGaWJlckZyb21Qcm9maWxlcihwZW5kaW5nUHJvcHMsIG1vZGUsIGxhbmVzLCBrZXkpIHtcbiAge1xuICAgIGlmICh0eXBlb2YgcGVuZGluZ1Byb3BzLmlkICE9PSAnc3RyaW5nJykge1xuICAgICAgZXJyb3IoJ1Byb2ZpbGVyIG11c3Qgc3BlY2lmeSBhbiBcImlkXCIgYXMgYSBwcm9wJyk7XG4gICAgfVxuICB9XG5cbiAgdmFyIGZpYmVyID0gY3JlYXRlRmliZXIoUHJvZmlsZXIsIHBlbmRpbmdQcm9wcywga2V5LCBtb2RlIHwgUHJvZmlsZU1vZGUpOyAvLyBUT0RPOiBUaGUgUHJvZmlsZXIgZmliZXIgc2hvdWxkbid0IGhhdmUgYSB0eXBlLiBJdCBoYXMgYSB0YWcuXG5cbiAgZmliZXIuZWxlbWVudFR5cGUgPSBSRUFDVF9QUk9GSUxFUl9UWVBFO1xuICBmaWJlci50eXBlID0gUkVBQ1RfUFJPRklMRVJfVFlQRTtcbiAgZmliZXIubGFuZXMgPSBsYW5lcztcblxuICB7XG4gICAgZmliZXIuc3RhdGVOb2RlID0ge1xuICAgICAgZWZmZWN0RHVyYXRpb246IDAsXG4gICAgICBwYXNzaXZlRWZmZWN0RHVyYXRpb246IDBcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIGZpYmVyO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVGaWJlckZyb21TdXNwZW5zZShwZW5kaW5nUHJvcHMsIG1vZGUsIGxhbmVzLCBrZXkpIHtcbiAgdmFyIGZpYmVyID0gY3JlYXRlRmliZXIoU3VzcGVuc2VDb21wb25lbnQsIHBlbmRpbmdQcm9wcywga2V5LCBtb2RlKTsgLy8gVE9ETzogVGhlIFN1c3BlbnNlQ29tcG9uZW50IGZpYmVyIHNob3VsZG4ndCBoYXZlIGEgdHlwZS4gSXQgaGFzIGEgdGFnLlxuICAvLyBUaGlzIG5lZWRzIHRvIGJlIGZpeGVkIGluIGdldENvbXBvbmVudE5hbWUgc28gdGhhdCBpdCByZWxpZXMgb24gdGhlIHRhZ1xuICAvLyBpbnN0ZWFkLlxuXG4gIGZpYmVyLnR5cGUgPSBSRUFDVF9TVVNQRU5TRV9UWVBFO1xuICBmaWJlci5lbGVtZW50VHlwZSA9IFJFQUNUX1NVU1BFTlNFX1RZUEU7XG4gIGZpYmVyLmxhbmVzID0gbGFuZXM7XG4gIHJldHVybiBmaWJlcjtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUZpYmVyRnJvbVN1c3BlbnNlTGlzdChwZW5kaW5nUHJvcHMsIG1vZGUsIGxhbmVzLCBrZXkpIHtcbiAgdmFyIGZpYmVyID0gY3JlYXRlRmliZXIoU3VzcGVuc2VMaXN0Q29tcG9uZW50LCBwZW5kaW5nUHJvcHMsIGtleSwgbW9kZSk7XG5cbiAge1xuICAgIC8vIFRPRE86IFRoZSBTdXNwZW5zZUxpc3RDb21wb25lbnQgZmliZXIgc2hvdWxkbid0IGhhdmUgYSB0eXBlLiBJdCBoYXMgYSB0YWcuXG4gICAgLy8gVGhpcyBuZWVkcyB0byBiZSBmaXhlZCBpbiBnZXRDb21wb25lbnROYW1lIHNvIHRoYXQgaXQgcmVsaWVzIG9uIHRoZSB0YWdcbiAgICAvLyBpbnN0ZWFkLlxuICAgIGZpYmVyLnR5cGUgPSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEU7XG4gIH1cblxuICBmaWJlci5lbGVtZW50VHlwZSA9IFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRTtcbiAgZmliZXIubGFuZXMgPSBsYW5lcztcbiAgcmV0dXJuIGZpYmVyO1xufVxuZnVuY3Rpb24gY3JlYXRlRmliZXJGcm9tT2Zmc2NyZWVuKHBlbmRpbmdQcm9wcywgbW9kZSwgbGFuZXMsIGtleSkge1xuICB2YXIgZmliZXIgPSBjcmVhdGVGaWJlcihPZmZzY3JlZW5Db21wb25lbnQsIHBlbmRpbmdQcm9wcywga2V5LCBtb2RlKTsgLy8gVE9ETzogVGhlIE9mZnNjcmVlbkNvbXBvbmVudCBmaWJlciBzaG91bGRuJ3QgaGF2ZSBhIHR5cGUuIEl0IGhhcyBhIHRhZy5cbiAgLy8gVGhpcyBuZWVkcyB0byBiZSBmaXhlZCBpbiBnZXRDb21wb25lbnROYW1lIHNvIHRoYXQgaXQgcmVsaWVzIG9uIHRoZSB0YWdcbiAgLy8gaW5zdGVhZC5cblxuICB7XG4gICAgZmliZXIudHlwZSA9IFJFQUNUX09GRlNDUkVFTl9UWVBFO1xuICB9XG5cbiAgZmliZXIuZWxlbWVudFR5cGUgPSBSRUFDVF9PRkZTQ1JFRU5fVFlQRTtcbiAgZmliZXIubGFuZXMgPSBsYW5lcztcbiAgcmV0dXJuIGZpYmVyO1xufVxuZnVuY3Rpb24gY3JlYXRlRmliZXJGcm9tTGVnYWN5SGlkZGVuKHBlbmRpbmdQcm9wcywgbW9kZSwgbGFuZXMsIGtleSkge1xuICB2YXIgZmliZXIgPSBjcmVhdGVGaWJlcihMZWdhY3lIaWRkZW5Db21wb25lbnQsIHBlbmRpbmdQcm9wcywga2V5LCBtb2RlKTsgLy8gVE9ETzogVGhlIExlZ2FjeUhpZGRlbiBmaWJlciBzaG91bGRuJ3QgaGF2ZSBhIHR5cGUuIEl0IGhhcyBhIHRhZy5cbiAgLy8gVGhpcyBuZWVkcyB0byBiZSBmaXhlZCBpbiBnZXRDb21wb25lbnROYW1lIHNvIHRoYXQgaXQgcmVsaWVzIG9uIHRoZSB0YWdcbiAgLy8gaW5zdGVhZC5cblxuICB7XG4gICAgZmliZXIudHlwZSA9IFJFQUNUX0xFR0FDWV9ISURERU5fVFlQRTtcbiAgfVxuXG4gIGZpYmVyLmVsZW1lbnRUeXBlID0gUkVBQ1RfTEVHQUNZX0hJRERFTl9UWVBFO1xuICBmaWJlci5sYW5lcyA9IGxhbmVzO1xuICByZXR1cm4gZmliZXI7XG59XG5mdW5jdGlvbiBjcmVhdGVGaWJlckZyb21UZXh0KGNvbnRlbnQsIG1vZGUsIGxhbmVzKSB7XG4gIHZhciBmaWJlciA9IGNyZWF0ZUZpYmVyKEhvc3RUZXh0LCBjb250ZW50LCBudWxsLCBtb2RlKTtcbiAgZmliZXIubGFuZXMgPSBsYW5lcztcbiAgcmV0dXJuIGZpYmVyO1xufVxuZnVuY3Rpb24gY3JlYXRlRmliZXJGcm9tSG9zdEluc3RhbmNlRm9yRGVsZXRpb24oKSB7XG4gIHZhciBmaWJlciA9IGNyZWF0ZUZpYmVyKEhvc3RDb21wb25lbnQsIG51bGwsIG51bGwsIE5vTW9kZSk7IC8vIFRPRE86IFRoZXNlIHNob3VsZCBub3QgbmVlZCBhIHR5cGUuXG5cbiAgZmliZXIuZWxlbWVudFR5cGUgPSAnREVMRVRFRCc7XG4gIGZpYmVyLnR5cGUgPSAnREVMRVRFRCc7XG4gIHJldHVybiBmaWJlcjtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUZpYmVyRnJvbVBvcnRhbChwb3J0YWwsIG1vZGUsIGxhbmVzKSB7XG4gIHZhciBwZW5kaW5nUHJvcHMgPSBwb3J0YWwuY2hpbGRyZW4gIT09IG51bGwgPyBwb3J0YWwuY2hpbGRyZW4gOiBbXTtcbiAgdmFyIGZpYmVyID0gY3JlYXRlRmliZXIoSG9zdFBvcnRhbCwgcGVuZGluZ1Byb3BzLCBwb3J0YWwua2V5LCBtb2RlKTtcbiAgZmliZXIubGFuZXMgPSBsYW5lcztcbiAgZmliZXIuc3RhdGVOb2RlID0ge1xuICAgIGNvbnRhaW5lckluZm86IHBvcnRhbC5jb250YWluZXJJbmZvLFxuICAgIHBlbmRpbmdDaGlsZHJlbjogbnVsbCxcbiAgICAvLyBVc2VkIGJ5IHBlcnNpc3RlbnQgdXBkYXRlc1xuICAgIGltcGxlbWVudGF0aW9uOiBwb3J0YWwuaW1wbGVtZW50YXRpb25cbiAgfTtcbiAgcmV0dXJuIGZpYmVyO1xufSAvLyBVc2VkIGZvciBzdGFzaGluZyBXSVAgcHJvcGVydGllcyB0byByZXBsYXkgZmFpbGVkIHdvcmsgaW4gREVWLlxuXG5mdW5jdGlvbiBhc3NpZ25GaWJlclByb3BlcnRpZXNJbkRFVih0YXJnZXQsIHNvdXJjZSkge1xuICBpZiAodGFyZ2V0ID09PSBudWxsKSB7XG4gICAgLy8gVGhpcyBGaWJlcidzIGluaXRpYWwgcHJvcGVydGllcyB3aWxsIGFsd2F5cyBiZSBvdmVyd3JpdHRlbi5cbiAgICAvLyBXZSBvbmx5IHVzZSBhIEZpYmVyIHRvIGVuc3VyZSB0aGUgc2FtZSBoaWRkZW4gY2xhc3Mgc28gREVWIGlzbid0IHNsb3cuXG4gICAgdGFyZ2V0ID0gY3JlYXRlRmliZXIoSW5kZXRlcm1pbmF0ZUNvbXBvbmVudCwgbnVsbCwgbnVsbCwgTm9Nb2RlKTtcbiAgfSAvLyBUaGlzIGlzIGludGVudGlvbmFsbHkgd3JpdHRlbiBhcyBhIGxpc3Qgb2YgYWxsIHByb3BlcnRpZXMuXG4gIC8vIFdlIHRyaWVkIHRvIHVzZSBPYmplY3QuYXNzaWduKCkgaW5zdGVhZCBidXQgdGhpcyBpcyBjYWxsZWQgaW5cbiAgLy8gdGhlIGhvdHRlc3QgcGF0aCwgYW5kIE9iamVjdC5hc3NpZ24oKSB3YXMgdG9vIHNsb3c6XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMTI1MDJcbiAgLy8gVGhpcyBjb2RlIGlzIERFVi1vbmx5IHNvIHNpemUgaXMgbm90IGEgY29uY2Vybi5cblxuXG4gIHRhcmdldC50YWcgPSBzb3VyY2UudGFnO1xuICB0YXJnZXQua2V5ID0gc291cmNlLmtleTtcbiAgdGFyZ2V0LmVsZW1lbnRUeXBlID0gc291cmNlLmVsZW1lbnRUeXBlO1xuICB0YXJnZXQudHlwZSA9IHNvdXJjZS50eXBlO1xuICB0YXJnZXQuc3RhdGVOb2RlID0gc291cmNlLnN0YXRlTm9kZTtcbiAgdGFyZ2V0LnJldHVybiA9IHNvdXJjZS5yZXR1cm47XG4gIHRhcmdldC5jaGlsZCA9IHNvdXJjZS5jaGlsZDtcbiAgdGFyZ2V0LnNpYmxpbmcgPSBzb3VyY2Uuc2libGluZztcbiAgdGFyZ2V0LmluZGV4ID0gc291cmNlLmluZGV4O1xuICB0YXJnZXQucmVmID0gc291cmNlLnJlZjtcbiAgdGFyZ2V0LnBlbmRpbmdQcm9wcyA9IHNvdXJjZS5wZW5kaW5nUHJvcHM7XG4gIHRhcmdldC5tZW1vaXplZFByb3BzID0gc291cmNlLm1lbW9pemVkUHJvcHM7XG4gIHRhcmdldC51cGRhdGVRdWV1ZSA9IHNvdXJjZS51cGRhdGVRdWV1ZTtcbiAgdGFyZ2V0Lm1lbW9pemVkU3RhdGUgPSBzb3VyY2UubWVtb2l6ZWRTdGF0ZTtcbiAgdGFyZ2V0LmRlcGVuZGVuY2llcyA9IHNvdXJjZS5kZXBlbmRlbmNpZXM7XG4gIHRhcmdldC5tb2RlID0gc291cmNlLm1vZGU7XG4gIHRhcmdldC5mbGFncyA9IHNvdXJjZS5mbGFncztcbiAgdGFyZ2V0Lm5leHRFZmZlY3QgPSBzb3VyY2UubmV4dEVmZmVjdDtcbiAgdGFyZ2V0LmZpcnN0RWZmZWN0ID0gc291cmNlLmZpcnN0RWZmZWN0O1xuICB0YXJnZXQubGFzdEVmZmVjdCA9IHNvdXJjZS5sYXN0RWZmZWN0O1xuICB0YXJnZXQubGFuZXMgPSBzb3VyY2UubGFuZXM7XG4gIHRhcmdldC5jaGlsZExhbmVzID0gc291cmNlLmNoaWxkTGFuZXM7XG4gIHRhcmdldC5hbHRlcm5hdGUgPSBzb3VyY2UuYWx0ZXJuYXRlO1xuXG4gIHtcbiAgICB0YXJnZXQuYWN0dWFsRHVyYXRpb24gPSBzb3VyY2UuYWN0dWFsRHVyYXRpb247XG4gICAgdGFyZ2V0LmFjdHVhbFN0YXJ0VGltZSA9IHNvdXJjZS5hY3R1YWxTdGFydFRpbWU7XG4gICAgdGFyZ2V0LnNlbGZCYXNlRHVyYXRpb24gPSBzb3VyY2Uuc2VsZkJhc2VEdXJhdGlvbjtcbiAgICB0YXJnZXQudHJlZUJhc2VEdXJhdGlvbiA9IHNvdXJjZS50cmVlQmFzZUR1cmF0aW9uO1xuICB9XG5cbiAgdGFyZ2V0Ll9kZWJ1Z0lEID0gc291cmNlLl9kZWJ1Z0lEO1xuICB0YXJnZXQuX2RlYnVnU291cmNlID0gc291cmNlLl9kZWJ1Z1NvdXJjZTtcbiAgdGFyZ2V0Ll9kZWJ1Z093bmVyID0gc291cmNlLl9kZWJ1Z093bmVyO1xuICB0YXJnZXQuX2RlYnVnTmVlZHNSZW1vdW50ID0gc291cmNlLl9kZWJ1Z05lZWRzUmVtb3VudDtcbiAgdGFyZ2V0Ll9kZWJ1Z0hvb2tUeXBlcyA9IHNvdXJjZS5fZGVidWdIb29rVHlwZXM7XG4gIHJldHVybiB0YXJnZXQ7XG59XG5cbmZ1bmN0aW9uIEZpYmVyUm9vdE5vZGUoY29udGFpbmVySW5mbywgdGFnLCBoeWRyYXRlKSB7XG4gIHRoaXMudGFnID0gdGFnO1xuICB0aGlzLmNvbnRhaW5lckluZm8gPSBjb250YWluZXJJbmZvO1xuICB0aGlzLnBlbmRpbmdDaGlsZHJlbiA9IG51bGw7XG4gIHRoaXMuY3VycmVudCA9IG51bGw7XG4gIHRoaXMucGluZ0NhY2hlID0gbnVsbDtcbiAgdGhpcy5maW5pc2hlZFdvcmsgPSBudWxsO1xuICB0aGlzLnRpbWVvdXRIYW5kbGUgPSBub1RpbWVvdXQ7XG4gIHRoaXMuY29udGV4dCA9IG51bGw7XG4gIHRoaXMucGVuZGluZ0NvbnRleHQgPSBudWxsO1xuICB0aGlzLmh5ZHJhdGUgPSBoeWRyYXRlO1xuICB0aGlzLmNhbGxiYWNrTm9kZSA9IG51bGw7XG4gIHRoaXMuY2FsbGJhY2tQcmlvcml0eSA9IE5vTGFuZVByaW9yaXR5O1xuICB0aGlzLmV2ZW50VGltZXMgPSBjcmVhdGVMYW5lTWFwKE5vTGFuZXMpO1xuICB0aGlzLmV4cGlyYXRpb25UaW1lcyA9IGNyZWF0ZUxhbmVNYXAoTm9UaW1lc3RhbXApO1xuICB0aGlzLnBlbmRpbmdMYW5lcyA9IE5vTGFuZXM7XG4gIHRoaXMuc3VzcGVuZGVkTGFuZXMgPSBOb0xhbmVzO1xuICB0aGlzLnBpbmdlZExhbmVzID0gTm9MYW5lcztcbiAgdGhpcy5leHBpcmVkTGFuZXMgPSBOb0xhbmVzO1xuICB0aGlzLm11dGFibGVSZWFkTGFuZXMgPSBOb0xhbmVzO1xuICB0aGlzLmZpbmlzaGVkTGFuZXMgPSBOb0xhbmVzO1xuICB0aGlzLmVudGFuZ2xlZExhbmVzID0gTm9MYW5lcztcbiAgdGhpcy5lbnRhbmdsZW1lbnRzID0gY3JlYXRlTGFuZU1hcChOb0xhbmVzKTtcblxuICB7XG4gICAgdGhpcy5tdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhID0gbnVsbDtcbiAgfVxuXG4gIHtcbiAgICB0aGlzLmludGVyYWN0aW9uVGhyZWFkSUQgPSB0cmFjaW5nLnVuc3RhYmxlX2dldFRocmVhZElEKCk7XG4gICAgdGhpcy5tZW1vaXplZEludGVyYWN0aW9ucyA9IG5ldyBTZXQoKTtcbiAgICB0aGlzLnBlbmRpbmdJbnRlcmFjdGlvbk1hcCA9IG5ldyBNYXAoKTtcbiAgfVxuXG4gIHtcbiAgICBzd2l0Y2ggKHRhZykge1xuICAgICAgY2FzZSBCbG9ja2luZ1Jvb3Q6XG4gICAgICAgIHRoaXMuX2RlYnVnUm9vdFR5cGUgPSAnY3JlYXRlQmxvY2tpbmdSb290KCknO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBDb25jdXJyZW50Um9vdDpcbiAgICAgICAgdGhpcy5fZGVidWdSb290VHlwZSA9ICdjcmVhdGVSb290KCknO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBMZWdhY3lSb290OlxuICAgICAgICB0aGlzLl9kZWJ1Z1Jvb3RUeXBlID0gJ2NyZWF0ZUxlZ2FjeVJvb3QoKSc7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjcmVhdGVGaWJlclJvb3QoY29udGFpbmVySW5mbywgdGFnLCBoeWRyYXRlLCBoeWRyYXRpb25DYWxsYmFja3MpIHtcbiAgdmFyIHJvb3QgPSBuZXcgRmliZXJSb290Tm9kZShjb250YWluZXJJbmZvLCB0YWcsIGh5ZHJhdGUpO1xuICAvLyBzdGF0ZU5vZGUgaXMgYW55LlxuXG5cbiAgdmFyIHVuaW5pdGlhbGl6ZWRGaWJlciA9IGNyZWF0ZUhvc3RSb290RmliZXIodGFnKTtcbiAgcm9vdC5jdXJyZW50ID0gdW5pbml0aWFsaXplZEZpYmVyO1xuICB1bmluaXRpYWxpemVkRmliZXIuc3RhdGVOb2RlID0gcm9vdDtcbiAgaW5pdGlhbGl6ZVVwZGF0ZVF1ZXVlKHVuaW5pdGlhbGl6ZWRGaWJlcik7XG4gIHJldHVybiByb290O1xufVxuXG4vLyBUaGlzIGVuc3VyZXMgdGhhdCB0aGUgdmVyc2lvbiB1c2VkIGZvciBzZXJ2ZXIgcmVuZGVyaW5nIG1hdGNoZXMgdGhlIG9uZVxuLy8gdGhhdCBpcyBldmVudHVhbGx5IHJlYWQgZHVyaW5nIGh5ZHJhdGlvbi5cbi8vIElmIHRoZXkgZG9uJ3QgbWF0Y2ggdGhlcmUncyBhIHBvdGVudGlhbCB0ZWFyIGFuZCBhIGZ1bGwgZGVvcHQgcmVuZGVyIGlzIHJlcXVpcmVkLlxuXG5mdW5jdGlvbiByZWdpc3Rlck11dGFibGVTb3VyY2VGb3JIeWRyYXRpb24ocm9vdCwgbXV0YWJsZVNvdXJjZSkge1xuICB2YXIgZ2V0VmVyc2lvbiA9IG11dGFibGVTb3VyY2UuX2dldFZlcnNpb247XG4gIHZhciB2ZXJzaW9uID0gZ2V0VmVyc2lvbihtdXRhYmxlU291cmNlLl9zb3VyY2UpOyAvLyBUT0RPIENsZWFyIHRoaXMgZGF0YSBvbmNlIGFsbCBwZW5kaW5nIGh5ZHJhdGlvbiB3b3JrIGlzIGZpbmlzaGVkLlxuICAvLyBSZXRhaW5pbmcgaXQgZm9yZXZlciBtYXkgaW50ZXJmZXJlIHdpdGggR0MuXG5cbiAgaWYgKHJvb3QubXV0YWJsZVNvdXJjZUVhZ2VySHlkcmF0aW9uRGF0YSA9PSBudWxsKSB7XG4gICAgcm9vdC5tdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhID0gW211dGFibGVTb3VyY2UsIHZlcnNpb25dO1xuICB9IGVsc2Uge1xuICAgIHJvb3QubXV0YWJsZVNvdXJjZUVhZ2VySHlkcmF0aW9uRGF0YS5wdXNoKG11dGFibGVTb3VyY2UsIHZlcnNpb24pO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVBvcnRhbChjaGlsZHJlbiwgY29udGFpbmVySW5mbywgLy8gVE9ETzogZmlndXJlIG91dCB0aGUgQVBJIGZvciBjcm9zcy1yZW5kZXJlciBpbXBsZW1lbnRhdGlvbi5cbmltcGxlbWVudGF0aW9uKSB7XG4gIHZhciBrZXkgPSBhcmd1bWVudHMubGVuZ3RoID4gMyAmJiBhcmd1bWVudHNbM10gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1szXSA6IG51bGw7XG4gIHJldHVybiB7XG4gICAgLy8gVGhpcyB0YWcgYWxsb3cgdXMgdG8gdW5pcXVlbHkgaWRlbnRpZnkgdGhpcyBhcyBhIFJlYWN0IFBvcnRhbFxuICAgICQkdHlwZW9mOiBSRUFDVF9QT1JUQUxfVFlQRSxcbiAgICBrZXk6IGtleSA9PSBudWxsID8gbnVsbCA6ICcnICsga2V5LFxuICAgIGNoaWxkcmVuOiBjaGlsZHJlbixcbiAgICBjb250YWluZXJJbmZvOiBjb250YWluZXJJbmZvLFxuICAgIGltcGxlbWVudGF0aW9uOiBpbXBsZW1lbnRhdGlvblxuICB9O1xufVxuXG52YXIgZGlkV2FybkFib3V0TmVzdGVkVXBkYXRlcztcbnZhciBkaWRXYXJuQWJvdXRGaW5kTm9kZUluU3RyaWN0TW9kZTtcblxue1xuICBkaWRXYXJuQWJvdXROZXN0ZWRVcGRhdGVzID0gZmFsc2U7XG4gIGRpZFdhcm5BYm91dEZpbmROb2RlSW5TdHJpY3RNb2RlID0ge307XG59XG5cbmZ1bmN0aW9uIGdldENvbnRleHRGb3JTdWJ0cmVlKHBhcmVudENvbXBvbmVudCkge1xuICBpZiAoIXBhcmVudENvbXBvbmVudCkge1xuICAgIHJldHVybiBlbXB0eUNvbnRleHRPYmplY3Q7XG4gIH1cblxuICB2YXIgZmliZXIgPSBnZXQocGFyZW50Q29tcG9uZW50KTtcbiAgdmFyIHBhcmVudENvbnRleHQgPSBmaW5kQ3VycmVudFVubWFza2VkQ29udGV4dChmaWJlcik7XG5cbiAgaWYgKGZpYmVyLnRhZyA9PT0gQ2xhc3NDb21wb25lbnQpIHtcbiAgICB2YXIgQ29tcG9uZW50ID0gZmliZXIudHlwZTtcblxuICAgIGlmIChpc0NvbnRleHRQcm92aWRlcihDb21wb25lbnQpKSB7XG4gICAgICByZXR1cm4gcHJvY2Vzc0NoaWxkQ29udGV4dChmaWJlciwgQ29tcG9uZW50LCBwYXJlbnRDb250ZXh0KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcGFyZW50Q29udGV4dDtcbn1cblxuZnVuY3Rpb24gZmluZEhvc3RJbnN0YW5jZVdpdGhXYXJuaW5nKGNvbXBvbmVudCwgbWV0aG9kTmFtZSkge1xuICB7XG4gICAgdmFyIGZpYmVyID0gZ2V0KGNvbXBvbmVudCk7XG5cbiAgICBpZiAoZmliZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHR5cGVvZiBjb21wb25lbnQucmVuZGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvciggXCJVbmFibGUgdG8gZmluZCBub2RlIG9uIGFuIHVubW91bnRlZCBjb21wb25lbnQuXCIgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvciggXCJBcmd1bWVudCBhcHBlYXJzIHRvIG5vdCBiZSBhIFJlYWN0Q29tcG9uZW50LiBLZXlzOiBcIiArIE9iamVjdC5rZXlzKGNvbXBvbmVudCkgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgaG9zdEZpYmVyID0gZmluZEN1cnJlbnRIb3N0RmliZXIoZmliZXIpO1xuXG4gICAgaWYgKGhvc3RGaWJlciA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKGhvc3RGaWJlci5tb2RlICYgU3RyaWN0TW9kZSkge1xuICAgICAgdmFyIGNvbXBvbmVudE5hbWUgPSBnZXRDb21wb25lbnROYW1lKGZpYmVyLnR5cGUpIHx8ICdDb21wb25lbnQnO1xuXG4gICAgICBpZiAoIWRpZFdhcm5BYm91dEZpbmROb2RlSW5TdHJpY3RNb2RlW2NvbXBvbmVudE5hbWVdKSB7XG4gICAgICAgIGRpZFdhcm5BYm91dEZpbmROb2RlSW5TdHJpY3RNb2RlW2NvbXBvbmVudE5hbWVdID0gdHJ1ZTtcbiAgICAgICAgdmFyIHByZXZpb3VzRmliZXIgPSBjdXJyZW50O1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgc2V0Q3VycmVudEZpYmVyKGhvc3RGaWJlcik7XG5cbiAgICAgICAgICBpZiAoZmliZXIubW9kZSAmIFN0cmljdE1vZGUpIHtcbiAgICAgICAgICAgIGVycm9yKCclcyBpcyBkZXByZWNhdGVkIGluIFN0cmljdE1vZGUuICcgKyAnJXMgd2FzIHBhc3NlZCBhbiBpbnN0YW5jZSBvZiAlcyB3aGljaCBpcyBpbnNpZGUgU3RyaWN0TW9kZS4gJyArICdJbnN0ZWFkLCBhZGQgYSByZWYgZGlyZWN0bHkgdG8gdGhlIGVsZW1lbnQgeW91IHdhbnQgdG8gcmVmZXJlbmNlLiAnICsgJ0xlYXJuIG1vcmUgYWJvdXQgdXNpbmcgcmVmcyBzYWZlbHkgaGVyZTogJyArICdodHRwczovL3JlYWN0anMub3JnL2xpbmsvc3RyaWN0LW1vZGUtZmluZC1ub2RlJywgbWV0aG9kTmFtZSwgbWV0aG9kTmFtZSwgY29tcG9uZW50TmFtZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVycm9yKCclcyBpcyBkZXByZWNhdGVkIGluIFN0cmljdE1vZGUuICcgKyAnJXMgd2FzIHBhc3NlZCBhbiBpbnN0YW5jZSBvZiAlcyB3aGljaCByZW5kZXJzIFN0cmljdE1vZGUgY2hpbGRyZW4uICcgKyAnSW5zdGVhZCwgYWRkIGEgcmVmIGRpcmVjdGx5IHRvIHRoZSBlbGVtZW50IHlvdSB3YW50IHRvIHJlZmVyZW5jZS4gJyArICdMZWFybiBtb3JlIGFib3V0IHVzaW5nIHJlZnMgc2FmZWx5IGhlcmU6ICcgKyAnaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3N0cmljdC1tb2RlLWZpbmQtbm9kZScsIG1ldGhvZE5hbWUsIG1ldGhvZE5hbWUsIGNvbXBvbmVudE5hbWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAvLyBJZGVhbGx5IHRoaXMgc2hvdWxkIHJlc2V0IHRvIHByZXZpb3VzIGJ1dCB0aGlzIHNob3VsZG4ndCBiZSBjYWxsZWQgaW5cbiAgICAgICAgICAvLyByZW5kZXIgYW5kIHRoZXJlJ3MgYW5vdGhlciB3YXJuaW5nIGZvciB0aGF0IGFueXdheS5cbiAgICAgICAgICBpZiAocHJldmlvdXNGaWJlcikge1xuICAgICAgICAgICAgc2V0Q3VycmVudEZpYmVyKHByZXZpb3VzRmliZXIpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXNldEN1cnJlbnRGaWJlcigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBob3N0RmliZXIuc3RhdGVOb2RlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUNvbnRhaW5lcihjb250YWluZXJJbmZvLCB0YWcsIGh5ZHJhdGUsIGh5ZHJhdGlvbkNhbGxiYWNrcykge1xuICByZXR1cm4gY3JlYXRlRmliZXJSb290KGNvbnRhaW5lckluZm8sIHRhZywgaHlkcmF0ZSk7XG59XG5mdW5jdGlvbiB1cGRhdGVDb250YWluZXIoZWxlbWVudCwgY29udGFpbmVyLCBwYXJlbnRDb21wb25lbnQsIGNhbGxiYWNrKSB7XG4gIHtcbiAgICBvblNjaGVkdWxlUm9vdChjb250YWluZXIsIGVsZW1lbnQpO1xuICB9XG5cbiAgdmFyIGN1cnJlbnQkMSA9IGNvbnRhaW5lci5jdXJyZW50O1xuICB2YXIgZXZlbnRUaW1lID0gcmVxdWVzdEV2ZW50VGltZSgpO1xuXG4gIHtcbiAgICAvLyAkRmxvd0V4cGVjdGVkRXJyb3IgLSBqZXN0IGlzbid0IGEgZ2xvYmFsLCBhbmQgaXNuJ3QgcmVjb2duaXplZCBvdXRzaWRlIG9mIHRlc3RzXG4gICAgaWYgKCd1bmRlZmluZWQnICE9PSB0eXBlb2YgamVzdCkge1xuICAgICAgd2FybklmVW5tb2NrZWRTY2hlZHVsZXIoY3VycmVudCQxKTtcbiAgICAgIHdhcm5JZk5vdFNjb3BlZFdpdGhNYXRjaGluZ0FjdChjdXJyZW50JDEpO1xuICAgIH1cbiAgfVxuXG4gIHZhciBsYW5lID0gcmVxdWVzdFVwZGF0ZUxhbmUoY3VycmVudCQxKTtcblxuICB2YXIgY29udGV4dCA9IGdldENvbnRleHRGb3JTdWJ0cmVlKHBhcmVudENvbXBvbmVudCk7XG5cbiAgaWYgKGNvbnRhaW5lci5jb250ZXh0ID09PSBudWxsKSB7XG4gICAgY29udGFpbmVyLmNvbnRleHQgPSBjb250ZXh0O1xuICB9IGVsc2Uge1xuICAgIGNvbnRhaW5lci5wZW5kaW5nQ29udGV4dCA9IGNvbnRleHQ7XG4gIH1cblxuICB7XG4gICAgaWYgKGlzUmVuZGVyaW5nICYmIGN1cnJlbnQgIT09IG51bGwgJiYgIWRpZFdhcm5BYm91dE5lc3RlZFVwZGF0ZXMpIHtcbiAgICAgIGRpZFdhcm5BYm91dE5lc3RlZFVwZGF0ZXMgPSB0cnVlO1xuXG4gICAgICBlcnJvcignUmVuZGVyIG1ldGhvZHMgc2hvdWxkIGJlIGEgcHVyZSBmdW5jdGlvbiBvZiBwcm9wcyBhbmQgc3RhdGU7ICcgKyAndHJpZ2dlcmluZyBuZXN0ZWQgY29tcG9uZW50IHVwZGF0ZXMgZnJvbSByZW5kZXIgaXMgbm90IGFsbG93ZWQuICcgKyAnSWYgbmVjZXNzYXJ5LCB0cmlnZ2VyIG5lc3RlZCB1cGRhdGVzIGluIGNvbXBvbmVudERpZFVwZGF0ZS5cXG5cXG4nICsgJ0NoZWNrIHRoZSByZW5kZXIgbWV0aG9kIG9mICVzLicsIGdldENvbXBvbmVudE5hbWUoY3VycmVudC50eXBlKSB8fCAnVW5rbm93bicpO1xuICAgIH1cbiAgfVxuXG4gIHZhciB1cGRhdGUgPSBjcmVhdGVVcGRhdGUoZXZlbnRUaW1lLCBsYW5lKTsgLy8gQ2F1dGlvbjogUmVhY3QgRGV2VG9vbHMgY3VycmVudGx5IGRlcGVuZHMgb24gdGhpcyBwcm9wZXJ0eVxuICAvLyBiZWluZyBjYWxsZWQgXCJlbGVtZW50XCIuXG5cbiAgdXBkYXRlLnBheWxvYWQgPSB7XG4gICAgZWxlbWVudDogZWxlbWVudFxuICB9O1xuICBjYWxsYmFjayA9IGNhbGxiYWNrID09PSB1bmRlZmluZWQgPyBudWxsIDogY2FsbGJhY2s7XG5cbiAgaWYgKGNhbGxiYWNrICE9PSBudWxsKSB7XG4gICAge1xuICAgICAgaWYgKHR5cGVvZiBjYWxsYmFjayAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBlcnJvcigncmVuZGVyKC4uLik6IEV4cGVjdGVkIHRoZSBsYXN0IG9wdGlvbmFsIGBjYWxsYmFja2AgYXJndW1lbnQgdG8gYmUgYSAnICsgJ2Z1bmN0aW9uLiBJbnN0ZWFkIHJlY2VpdmVkOiAlcy4nLCBjYWxsYmFjayk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdXBkYXRlLmNhbGxiYWNrID0gY2FsbGJhY2s7XG4gIH1cblxuICBlbnF1ZXVlVXBkYXRlKGN1cnJlbnQkMSwgdXBkYXRlKTtcbiAgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKGN1cnJlbnQkMSwgbGFuZSwgZXZlbnRUaW1lKTtcbiAgcmV0dXJuIGxhbmU7XG59XG5mdW5jdGlvbiBnZXRQdWJsaWNSb290SW5zdGFuY2UoY29udGFpbmVyKSB7XG4gIHZhciBjb250YWluZXJGaWJlciA9IGNvbnRhaW5lci5jdXJyZW50O1xuXG4gIGlmICghY29udGFpbmVyRmliZXIuY2hpbGQpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHN3aXRjaCAoY29udGFpbmVyRmliZXIuY2hpbGQudGFnKSB7XG4gICAgY2FzZSBIb3N0Q29tcG9uZW50OlxuICAgICAgcmV0dXJuIGdldFB1YmxpY0luc3RhbmNlKGNvbnRhaW5lckZpYmVyLmNoaWxkLnN0YXRlTm9kZSk7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGNvbnRhaW5lckZpYmVyLmNoaWxkLnN0YXRlTm9kZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBtYXJrUmV0cnlMYW5lSW1wbChmaWJlciwgcmV0cnlMYW5lKSB7XG4gIHZhciBzdXNwZW5zZVN0YXRlID0gZmliZXIubWVtb2l6ZWRTdGF0ZTtcblxuICBpZiAoc3VzcGVuc2VTdGF0ZSAhPT0gbnVsbCAmJiBzdXNwZW5zZVN0YXRlLmRlaHlkcmF0ZWQgIT09IG51bGwpIHtcbiAgICBzdXNwZW5zZVN0YXRlLnJldHJ5TGFuZSA9IGhpZ2hlclByaW9yaXR5TGFuZShzdXNwZW5zZVN0YXRlLnJldHJ5TGFuZSwgcmV0cnlMYW5lKTtcbiAgfVxufSAvLyBJbmNyZWFzZXMgdGhlIHByaW9yaXR5IG9mIHRoZW5uYWJsZXMgd2hlbiB0aGV5IHJlc29sdmUgd2l0aGluIHRoaXMgYm91bmRhcnkuXG5cblxuZnVuY3Rpb24gbWFya1JldHJ5TGFuZUlmTm90SHlkcmF0ZWQoZmliZXIsIHJldHJ5TGFuZSkge1xuICBtYXJrUmV0cnlMYW5lSW1wbChmaWJlciwgcmV0cnlMYW5lKTtcbiAgdmFyIGFsdGVybmF0ZSA9IGZpYmVyLmFsdGVybmF0ZTtcblxuICBpZiAoYWx0ZXJuYXRlKSB7XG4gICAgbWFya1JldHJ5TGFuZUltcGwoYWx0ZXJuYXRlLCByZXRyeUxhbmUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGF0dGVtcHRVc2VyQmxvY2tpbmdIeWRyYXRpb24kMShmaWJlcikge1xuICBpZiAoZmliZXIudGFnICE9PSBTdXNwZW5zZUNvbXBvbmVudCkge1xuICAgIC8vIFdlIGlnbm9yZSBIb3N0Um9vdHMgaGVyZSBiZWNhdXNlIHdlIGNhbid0IGluY3JlYXNlXG4gICAgLy8gdGhlaXIgcHJpb3JpdHkgYW5kIHRoZXkgc2hvdWxkIG5vdCBzdXNwZW5kIG9uIEkvTyxcbiAgICAvLyBzaW5jZSB5b3UgaGF2ZSB0byB3cmFwIGFueXRoaW5nIHRoYXQgbWlnaHQgc3VzcGVuZCBpblxuICAgIC8vIFN1c3BlbnNlLlxuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciBldmVudFRpbWUgPSByZXF1ZXN0RXZlbnRUaW1lKCk7XG4gIHZhciBsYW5lID0gSW5wdXREaXNjcmV0ZUh5ZHJhdGlvbkxhbmU7XG4gIHNjaGVkdWxlVXBkYXRlT25GaWJlcihmaWJlciwgbGFuZSwgZXZlbnRUaW1lKTtcbiAgbWFya1JldHJ5TGFuZUlmTm90SHlkcmF0ZWQoZmliZXIsIGxhbmUpO1xufVxuZnVuY3Rpb24gYXR0ZW1wdENvbnRpbnVvdXNIeWRyYXRpb24kMShmaWJlcikge1xuICBpZiAoZmliZXIudGFnICE9PSBTdXNwZW5zZUNvbXBvbmVudCkge1xuICAgIC8vIFdlIGlnbm9yZSBIb3N0Um9vdHMgaGVyZSBiZWNhdXNlIHdlIGNhbid0IGluY3JlYXNlXG4gICAgLy8gdGhlaXIgcHJpb3JpdHkgYW5kIHRoZXkgc2hvdWxkIG5vdCBzdXNwZW5kIG9uIEkvTyxcbiAgICAvLyBzaW5jZSB5b3UgaGF2ZSB0byB3cmFwIGFueXRoaW5nIHRoYXQgbWlnaHQgc3VzcGVuZCBpblxuICAgIC8vIFN1c3BlbnNlLlxuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciBldmVudFRpbWUgPSByZXF1ZXN0RXZlbnRUaW1lKCk7XG4gIHZhciBsYW5lID0gU2VsZWN0aXZlSHlkcmF0aW9uTGFuZTtcbiAgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKGZpYmVyLCBsYW5lLCBldmVudFRpbWUpO1xuICBtYXJrUmV0cnlMYW5lSWZOb3RIeWRyYXRlZChmaWJlciwgbGFuZSk7XG59XG5mdW5jdGlvbiBhdHRlbXB0SHlkcmF0aW9uQXRDdXJyZW50UHJpb3JpdHkkMShmaWJlcikge1xuICBpZiAoZmliZXIudGFnICE9PSBTdXNwZW5zZUNvbXBvbmVudCkge1xuICAgIC8vIFdlIGlnbm9yZSBIb3N0Um9vdHMgaGVyZSBiZWNhdXNlIHdlIGNhbid0IGluY3JlYXNlXG4gICAgLy8gdGhlaXIgcHJpb3JpdHkgb3RoZXIgdGhhbiBzeW5jaHJvbm91c2x5IGZsdXNoIGl0LlxuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciBldmVudFRpbWUgPSByZXF1ZXN0RXZlbnRUaW1lKCk7XG4gIHZhciBsYW5lID0gcmVxdWVzdFVwZGF0ZUxhbmUoZmliZXIpO1xuICBzY2hlZHVsZVVwZGF0ZU9uRmliZXIoZmliZXIsIGxhbmUsIGV2ZW50VGltZSk7XG4gIG1hcmtSZXRyeUxhbmVJZk5vdEh5ZHJhdGVkKGZpYmVyLCBsYW5lKTtcbn1cbmZ1bmN0aW9uIHJ1bldpdGhQcmlvcml0eSQyKHByaW9yaXR5LCBmbikge1xuXG4gIHRyeSB7XG4gICAgc2V0Q3VycmVudFVwZGF0ZUxhbmVQcmlvcml0eShwcmlvcml0eSk7XG4gICAgcmV0dXJuIGZuKCk7XG4gIH0gZmluYWxseSB7XG4gIH1cbn1cbmZ1bmN0aW9uIGZpbmRIb3N0SW5zdGFuY2VXaXRoTm9Qb3J0YWxzKGZpYmVyKSB7XG4gIHZhciBob3N0RmliZXIgPSBmaW5kQ3VycmVudEhvc3RGaWJlcldpdGhOb1BvcnRhbHMoZmliZXIpO1xuXG4gIGlmIChob3N0RmliZXIgPT09IG51bGwpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmIChob3N0RmliZXIudGFnID09PSBGdW5kYW1lbnRhbENvbXBvbmVudCkge1xuICAgIHJldHVybiBob3N0RmliZXIuc3RhdGVOb2RlLmluc3RhbmNlO1xuICB9XG5cbiAgcmV0dXJuIGhvc3RGaWJlci5zdGF0ZU5vZGU7XG59XG5cbnZhciBzaG91bGRTdXNwZW5kSW1wbCA9IGZ1bmN0aW9uIChmaWJlcikge1xuICByZXR1cm4gZmFsc2U7XG59O1xuXG5mdW5jdGlvbiBzaG91bGRTdXNwZW5kKGZpYmVyKSB7XG4gIHJldHVybiBzaG91bGRTdXNwZW5kSW1wbChmaWJlcik7XG59XG52YXIgb3ZlcnJpZGVIb29rU3RhdGUgPSBudWxsO1xudmFyIG92ZXJyaWRlSG9va1N0YXRlRGVsZXRlUGF0aCA9IG51bGw7XG52YXIgb3ZlcnJpZGVIb29rU3RhdGVSZW5hbWVQYXRoID0gbnVsbDtcbnZhciBvdmVycmlkZVByb3BzID0gbnVsbDtcbnZhciBvdmVycmlkZVByb3BzRGVsZXRlUGF0aCA9IG51bGw7XG52YXIgb3ZlcnJpZGVQcm9wc1JlbmFtZVBhdGggPSBudWxsO1xudmFyIHNjaGVkdWxlVXBkYXRlID0gbnVsbDtcbnZhciBzZXRTdXNwZW5zZUhhbmRsZXIgPSBudWxsO1xuXG57XG4gIHZhciBjb3B5V2l0aERlbGV0ZUltcGwgPSBmdW5jdGlvbiAob2JqLCBwYXRoLCBpbmRleCkge1xuICAgIHZhciBrZXkgPSBwYXRoW2luZGV4XTtcbiAgICB2YXIgdXBkYXRlZCA9IEFycmF5LmlzQXJyYXkob2JqKSA/IG9iai5zbGljZSgpIDogX2Fzc2lnbih7fSwgb2JqKTtcblxuICAgIGlmIChpbmRleCArIDEgPT09IHBhdGgubGVuZ3RoKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh1cGRhdGVkKSkge1xuICAgICAgICB1cGRhdGVkLnNwbGljZShrZXksIDEpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGVsZXRlIHVwZGF0ZWRba2V5XTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVwZGF0ZWQ7XG4gICAgfSAvLyAkRmxvd0ZpeE1lIG51bWJlciBvciBzdHJpbmcgaXMgZmluZSBoZXJlXG5cblxuICAgIHVwZGF0ZWRba2V5XSA9IGNvcHlXaXRoRGVsZXRlSW1wbChvYmpba2V5XSwgcGF0aCwgaW5kZXggKyAxKTtcbiAgICByZXR1cm4gdXBkYXRlZDtcbiAgfTtcblxuICB2YXIgY29weVdpdGhEZWxldGUgPSBmdW5jdGlvbiAob2JqLCBwYXRoKSB7XG4gICAgcmV0dXJuIGNvcHlXaXRoRGVsZXRlSW1wbChvYmosIHBhdGgsIDApO1xuICB9O1xuXG4gIHZhciBjb3B5V2l0aFJlbmFtZUltcGwgPSBmdW5jdGlvbiAob2JqLCBvbGRQYXRoLCBuZXdQYXRoLCBpbmRleCkge1xuICAgIHZhciBvbGRLZXkgPSBvbGRQYXRoW2luZGV4XTtcbiAgICB2YXIgdXBkYXRlZCA9IEFycmF5LmlzQXJyYXkob2JqKSA/IG9iai5zbGljZSgpIDogX2Fzc2lnbih7fSwgb2JqKTtcblxuICAgIGlmIChpbmRleCArIDEgPT09IG9sZFBhdGgubGVuZ3RoKSB7XG4gICAgICB2YXIgbmV3S2V5ID0gbmV3UGF0aFtpbmRleF07IC8vICRGbG93Rml4TWUgbnVtYmVyIG9yIHN0cmluZyBpcyBmaW5lIGhlcmVcblxuICAgICAgdXBkYXRlZFtuZXdLZXldID0gdXBkYXRlZFtvbGRLZXldO1xuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh1cGRhdGVkKSkge1xuICAgICAgICB1cGRhdGVkLnNwbGljZShvbGRLZXksIDEpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGVsZXRlIHVwZGF0ZWRbb2xkS2V5XTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gJEZsb3dGaXhNZSBudW1iZXIgb3Igc3RyaW5nIGlzIGZpbmUgaGVyZVxuICAgICAgdXBkYXRlZFtvbGRLZXldID0gY29weVdpdGhSZW5hbWVJbXBsKCAvLyAkRmxvd0ZpeE1lIG51bWJlciBvciBzdHJpbmcgaXMgZmluZSBoZXJlXG4gICAgICBvYmpbb2xkS2V5XSwgb2xkUGF0aCwgbmV3UGF0aCwgaW5kZXggKyAxKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdXBkYXRlZDtcbiAgfTtcblxuICB2YXIgY29weVdpdGhSZW5hbWUgPSBmdW5jdGlvbiAob2JqLCBvbGRQYXRoLCBuZXdQYXRoKSB7XG4gICAgaWYgKG9sZFBhdGgubGVuZ3RoICE9PSBuZXdQYXRoLmxlbmd0aCkge1xuICAgICAgd2FybignY29weVdpdGhSZW5hbWUoKSBleHBlY3RzIHBhdGhzIG9mIHRoZSBzYW1lIGxlbmd0aCcpO1xuXG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbmV3UGF0aC5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgICAgaWYgKG9sZFBhdGhbaV0gIT09IG5ld1BhdGhbaV0pIHtcbiAgICAgICAgICB3YXJuKCdjb3B5V2l0aFJlbmFtZSgpIGV4cGVjdHMgcGF0aHMgdG8gYmUgdGhlIHNhbWUgZXhjZXB0IGZvciB0aGUgZGVlcGVzdCBrZXknKTtcblxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjb3B5V2l0aFJlbmFtZUltcGwob2JqLCBvbGRQYXRoLCBuZXdQYXRoLCAwKTtcbiAgfTtcblxuICB2YXIgY29weVdpdGhTZXRJbXBsID0gZnVuY3Rpb24gKG9iaiwgcGF0aCwgaW5kZXgsIHZhbHVlKSB7XG4gICAgaWYgKGluZGV4ID49IHBhdGgubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgdmFyIGtleSA9IHBhdGhbaW5kZXhdO1xuICAgIHZhciB1cGRhdGVkID0gQXJyYXkuaXNBcnJheShvYmopID8gb2JqLnNsaWNlKCkgOiBfYXNzaWduKHt9LCBvYmopOyAvLyAkRmxvd0ZpeE1lIG51bWJlciBvciBzdHJpbmcgaXMgZmluZSBoZXJlXG5cbiAgICB1cGRhdGVkW2tleV0gPSBjb3B5V2l0aFNldEltcGwob2JqW2tleV0sIHBhdGgsIGluZGV4ICsgMSwgdmFsdWUpO1xuICAgIHJldHVybiB1cGRhdGVkO1xuICB9O1xuXG4gIHZhciBjb3B5V2l0aFNldCA9IGZ1bmN0aW9uIChvYmosIHBhdGgsIHZhbHVlKSB7XG4gICAgcmV0dXJuIGNvcHlXaXRoU2V0SW1wbChvYmosIHBhdGgsIDAsIHZhbHVlKTtcbiAgfTtcblxuICB2YXIgZmluZEhvb2sgPSBmdW5jdGlvbiAoZmliZXIsIGlkKSB7XG4gICAgLy8gRm9yIG5vdywgdGhlIFwiaWRcIiBvZiBzdGF0ZWZ1bCBob29rcyBpcyBqdXN0IHRoZSBzdGF0ZWZ1bCBob29rIGluZGV4LlxuICAgIC8vIFRoaXMgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlIHdpdGggZS5nLiBuZXN0ZWQgaG9va3MuXG4gICAgdmFyIGN1cnJlbnRIb29rID0gZmliZXIubWVtb2l6ZWRTdGF0ZTtcblxuICAgIHdoaWxlIChjdXJyZW50SG9vayAhPT0gbnVsbCAmJiBpZCA+IDApIHtcbiAgICAgIGN1cnJlbnRIb29rID0gY3VycmVudEhvb2submV4dDtcbiAgICAgIGlkLS07XG4gICAgfVxuXG4gICAgcmV0dXJuIGN1cnJlbnRIb29rO1xuICB9OyAvLyBTdXBwb3J0IERldlRvb2xzIGVkaXRhYmxlIHZhbHVlcyBmb3IgdXNlU3RhdGUgYW5kIHVzZVJlZHVjZXIuXG5cblxuICBvdmVycmlkZUhvb2tTdGF0ZSA9IGZ1bmN0aW9uIChmaWJlciwgaWQsIHBhdGgsIHZhbHVlKSB7XG4gICAgdmFyIGhvb2sgPSBmaW5kSG9vayhmaWJlciwgaWQpO1xuXG4gICAgaWYgKGhvb2sgIT09IG51bGwpIHtcbiAgICAgIHZhciBuZXdTdGF0ZSA9IGNvcHlXaXRoU2V0KGhvb2subWVtb2l6ZWRTdGF0ZSwgcGF0aCwgdmFsdWUpO1xuICAgICAgaG9vay5tZW1vaXplZFN0YXRlID0gbmV3U3RhdGU7XG4gICAgICBob29rLmJhc2VTdGF0ZSA9IG5ld1N0YXRlOyAvLyBXZSBhcmVuJ3QgYWN0dWFsbHkgYWRkaW5nIGFuIHVwZGF0ZSB0byB0aGUgcXVldWUsXG4gICAgICAvLyBiZWNhdXNlIHRoZXJlIGlzIG5vIHVwZGF0ZSB3ZSBjYW4gYWRkIGZvciB1c2VSZWR1Y2VyIGhvb2tzIHRoYXQgd29uJ3QgdHJpZ2dlciBhbiBlcnJvci5cbiAgICAgIC8vIChUaGVyZSdzIG5vIGFwcHJvcHJpYXRlIGFjdGlvbiB0eXBlIGZvciBEZXZUb29scyBvdmVycmlkZXMuKVxuICAgICAgLy8gQXMgYSByZXN1bHQgdGhvdWdoLCBSZWFjdCB3aWxsIHNlZSB0aGUgc2NoZWR1bGVkIHVwZGF0ZSBhcyBhIG5vb3AgYW5kIGJhaWxvdXQuXG4gICAgICAvLyBTaGFsbG93IGNsb25pbmcgcHJvcHMgd29ya3MgYXMgYSB3b3JrYXJvdW5kIGZvciBub3cgdG8gYnlwYXNzIHRoZSBiYWlsb3V0IGNoZWNrLlxuXG4gICAgICBmaWJlci5tZW1vaXplZFByb3BzID0gX2Fzc2lnbih7fSwgZmliZXIubWVtb2l6ZWRQcm9wcyk7XG4gICAgICBzY2hlZHVsZVVwZGF0ZU9uRmliZXIoZmliZXIsIFN5bmNMYW5lLCBOb1RpbWVzdGFtcCk7XG4gICAgfVxuICB9O1xuXG4gIG92ZXJyaWRlSG9va1N0YXRlRGVsZXRlUGF0aCA9IGZ1bmN0aW9uIChmaWJlciwgaWQsIHBhdGgpIHtcbiAgICB2YXIgaG9vayA9IGZpbmRIb29rKGZpYmVyLCBpZCk7XG5cbiAgICBpZiAoaG9vayAhPT0gbnVsbCkge1xuICAgICAgdmFyIG5ld1N0YXRlID0gY29weVdpdGhEZWxldGUoaG9vay5tZW1vaXplZFN0YXRlLCBwYXRoKTtcbiAgICAgIGhvb2subWVtb2l6ZWRTdGF0ZSA9IG5ld1N0YXRlO1xuICAgICAgaG9vay5iYXNlU3RhdGUgPSBuZXdTdGF0ZTsgLy8gV2UgYXJlbid0IGFjdHVhbGx5IGFkZGluZyBhbiB1cGRhdGUgdG8gdGhlIHF1ZXVlLFxuICAgICAgLy8gYmVjYXVzZSB0aGVyZSBpcyBubyB1cGRhdGUgd2UgY2FuIGFkZCBmb3IgdXNlUmVkdWNlciBob29rcyB0aGF0IHdvbid0IHRyaWdnZXIgYW4gZXJyb3IuXG4gICAgICAvLyAoVGhlcmUncyBubyBhcHByb3ByaWF0ZSBhY3Rpb24gdHlwZSBmb3IgRGV2VG9vbHMgb3ZlcnJpZGVzLilcbiAgICAgIC8vIEFzIGEgcmVzdWx0IHRob3VnaCwgUmVhY3Qgd2lsbCBzZWUgdGhlIHNjaGVkdWxlZCB1cGRhdGUgYXMgYSBub29wIGFuZCBiYWlsb3V0LlxuICAgICAgLy8gU2hhbGxvdyBjbG9uaW5nIHByb3BzIHdvcmtzIGFzIGEgd29ya2Fyb3VuZCBmb3Igbm93IHRvIGJ5cGFzcyB0aGUgYmFpbG91dCBjaGVjay5cblxuICAgICAgZmliZXIubWVtb2l6ZWRQcm9wcyA9IF9hc3NpZ24oe30sIGZpYmVyLm1lbW9pemVkUHJvcHMpO1xuICAgICAgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKGZpYmVyLCBTeW5jTGFuZSwgTm9UaW1lc3RhbXApO1xuICAgIH1cbiAgfTtcblxuICBvdmVycmlkZUhvb2tTdGF0ZVJlbmFtZVBhdGggPSBmdW5jdGlvbiAoZmliZXIsIGlkLCBvbGRQYXRoLCBuZXdQYXRoKSB7XG4gICAgdmFyIGhvb2sgPSBmaW5kSG9vayhmaWJlciwgaWQpO1xuXG4gICAgaWYgKGhvb2sgIT09IG51bGwpIHtcbiAgICAgIHZhciBuZXdTdGF0ZSA9IGNvcHlXaXRoUmVuYW1lKGhvb2subWVtb2l6ZWRTdGF0ZSwgb2xkUGF0aCwgbmV3UGF0aCk7XG4gICAgICBob29rLm1lbW9pemVkU3RhdGUgPSBuZXdTdGF0ZTtcbiAgICAgIGhvb2suYmFzZVN0YXRlID0gbmV3U3RhdGU7IC8vIFdlIGFyZW4ndCBhY3R1YWxseSBhZGRpbmcgYW4gdXBkYXRlIHRvIHRoZSBxdWV1ZSxcbiAgICAgIC8vIGJlY2F1c2UgdGhlcmUgaXMgbm8gdXBkYXRlIHdlIGNhbiBhZGQgZm9yIHVzZVJlZHVjZXIgaG9va3MgdGhhdCB3b24ndCB0cmlnZ2VyIGFuIGVycm9yLlxuICAgICAgLy8gKFRoZXJlJ3Mgbm8gYXBwcm9wcmlhdGUgYWN0aW9uIHR5cGUgZm9yIERldlRvb2xzIG92ZXJyaWRlcy4pXG4gICAgICAvLyBBcyBhIHJlc3VsdCB0aG91Z2gsIFJlYWN0IHdpbGwgc2VlIHRoZSBzY2hlZHVsZWQgdXBkYXRlIGFzIGEgbm9vcCBhbmQgYmFpbG91dC5cbiAgICAgIC8vIFNoYWxsb3cgY2xvbmluZyBwcm9wcyB3b3JrcyBhcyBhIHdvcmthcm91bmQgZm9yIG5vdyB0byBieXBhc3MgdGhlIGJhaWxvdXQgY2hlY2suXG5cbiAgICAgIGZpYmVyLm1lbW9pemVkUHJvcHMgPSBfYXNzaWduKHt9LCBmaWJlci5tZW1vaXplZFByb3BzKTtcbiAgICAgIHNjaGVkdWxlVXBkYXRlT25GaWJlcihmaWJlciwgU3luY0xhbmUsIE5vVGltZXN0YW1wKTtcbiAgICB9XG4gIH07IC8vIFN1cHBvcnQgRGV2VG9vbHMgcHJvcHMgZm9yIGZ1bmN0aW9uIGNvbXBvbmVudHMsIGZvcndhcmRSZWYsIG1lbW8sIGhvc3QgY29tcG9uZW50cywgZXRjLlxuXG5cbiAgb3ZlcnJpZGVQcm9wcyA9IGZ1bmN0aW9uIChmaWJlciwgcGF0aCwgdmFsdWUpIHtcbiAgICBmaWJlci5wZW5kaW5nUHJvcHMgPSBjb3B5V2l0aFNldChmaWJlci5tZW1vaXplZFByb3BzLCBwYXRoLCB2YWx1ZSk7XG5cbiAgICBpZiAoZmliZXIuYWx0ZXJuYXRlKSB7XG4gICAgICBmaWJlci5hbHRlcm5hdGUucGVuZGluZ1Byb3BzID0gZmliZXIucGVuZGluZ1Byb3BzO1xuICAgIH1cblxuICAgIHNjaGVkdWxlVXBkYXRlT25GaWJlcihmaWJlciwgU3luY0xhbmUsIE5vVGltZXN0YW1wKTtcbiAgfTtcblxuICBvdmVycmlkZVByb3BzRGVsZXRlUGF0aCA9IGZ1bmN0aW9uIChmaWJlciwgcGF0aCkge1xuICAgIGZpYmVyLnBlbmRpbmdQcm9wcyA9IGNvcHlXaXRoRGVsZXRlKGZpYmVyLm1lbW9pemVkUHJvcHMsIHBhdGgpO1xuXG4gICAgaWYgKGZpYmVyLmFsdGVybmF0ZSkge1xuICAgICAgZmliZXIuYWx0ZXJuYXRlLnBlbmRpbmdQcm9wcyA9IGZpYmVyLnBlbmRpbmdQcm9wcztcbiAgICB9XG5cbiAgICBzY2hlZHVsZVVwZGF0ZU9uRmliZXIoZmliZXIsIFN5bmNMYW5lLCBOb1RpbWVzdGFtcCk7XG4gIH07XG5cbiAgb3ZlcnJpZGVQcm9wc1JlbmFtZVBhdGggPSBmdW5jdGlvbiAoZmliZXIsIG9sZFBhdGgsIG5ld1BhdGgpIHtcbiAgICBmaWJlci5wZW5kaW5nUHJvcHMgPSBjb3B5V2l0aFJlbmFtZShmaWJlci5tZW1vaXplZFByb3BzLCBvbGRQYXRoLCBuZXdQYXRoKTtcblxuICAgIGlmIChmaWJlci5hbHRlcm5hdGUpIHtcbiAgICAgIGZpYmVyLmFsdGVybmF0ZS5wZW5kaW5nUHJvcHMgPSBmaWJlci5wZW5kaW5nUHJvcHM7XG4gICAgfVxuXG4gICAgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKGZpYmVyLCBTeW5jTGFuZSwgTm9UaW1lc3RhbXApO1xuICB9O1xuXG4gIHNjaGVkdWxlVXBkYXRlID0gZnVuY3Rpb24gKGZpYmVyKSB7XG4gICAgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKGZpYmVyLCBTeW5jTGFuZSwgTm9UaW1lc3RhbXApO1xuICB9O1xuXG4gIHNldFN1c3BlbnNlSGFuZGxlciA9IGZ1bmN0aW9uIChuZXdTaG91bGRTdXNwZW5kSW1wbCkge1xuICAgIHNob3VsZFN1c3BlbmRJbXBsID0gbmV3U2hvdWxkU3VzcGVuZEltcGw7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGZpbmRIb3N0SW5zdGFuY2VCeUZpYmVyKGZpYmVyKSB7XG4gIHZhciBob3N0RmliZXIgPSBmaW5kQ3VycmVudEhvc3RGaWJlcihmaWJlcik7XG5cbiAgaWYgKGhvc3RGaWJlciA9PT0gbnVsbCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIGhvc3RGaWJlci5zdGF0ZU5vZGU7XG59XG5cbmZ1bmN0aW9uIGVtcHR5RmluZEZpYmVyQnlIb3N0SW5zdGFuY2UoaW5zdGFuY2UpIHtcbiAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIGdldEN1cnJlbnRGaWJlckZvckRldlRvb2xzKCkge1xuICByZXR1cm4gY3VycmVudDtcbn1cblxuZnVuY3Rpb24gaW5qZWN0SW50b0RldlRvb2xzKGRldlRvb2xzQ29uZmlnKSB7XG4gIHZhciBmaW5kRmliZXJCeUhvc3RJbnN0YW5jZSA9IGRldlRvb2xzQ29uZmlnLmZpbmRGaWJlckJ5SG9zdEluc3RhbmNlO1xuICB2YXIgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0Q3VycmVudERpc3BhdGNoZXI7XG4gIHJldHVybiBpbmplY3RJbnRlcm5hbHMoe1xuICAgIGJ1bmRsZVR5cGU6IGRldlRvb2xzQ29uZmlnLmJ1bmRsZVR5cGUsXG4gICAgdmVyc2lvbjogZGV2VG9vbHNDb25maWcudmVyc2lvbixcbiAgICByZW5kZXJlclBhY2thZ2VOYW1lOiBkZXZUb29sc0NvbmZpZy5yZW5kZXJlclBhY2thZ2VOYW1lLFxuICAgIHJlbmRlcmVyQ29uZmlnOiBkZXZUb29sc0NvbmZpZy5yZW5kZXJlckNvbmZpZyxcbiAgICBvdmVycmlkZUhvb2tTdGF0ZTogb3ZlcnJpZGVIb29rU3RhdGUsXG4gICAgb3ZlcnJpZGVIb29rU3RhdGVEZWxldGVQYXRoOiBvdmVycmlkZUhvb2tTdGF0ZURlbGV0ZVBhdGgsXG4gICAgb3ZlcnJpZGVIb29rU3RhdGVSZW5hbWVQYXRoOiBvdmVycmlkZUhvb2tTdGF0ZVJlbmFtZVBhdGgsXG4gICAgb3ZlcnJpZGVQcm9wczogb3ZlcnJpZGVQcm9wcyxcbiAgICBvdmVycmlkZVByb3BzRGVsZXRlUGF0aDogb3ZlcnJpZGVQcm9wc0RlbGV0ZVBhdGgsXG4gICAgb3ZlcnJpZGVQcm9wc1JlbmFtZVBhdGg6IG92ZXJyaWRlUHJvcHNSZW5hbWVQYXRoLFxuICAgIHNldFN1c3BlbnNlSGFuZGxlcjogc2V0U3VzcGVuc2VIYW5kbGVyLFxuICAgIHNjaGVkdWxlVXBkYXRlOiBzY2hlZHVsZVVwZGF0ZSxcbiAgICBjdXJyZW50RGlzcGF0Y2hlclJlZjogUmVhY3RDdXJyZW50RGlzcGF0Y2hlcixcbiAgICBmaW5kSG9zdEluc3RhbmNlQnlGaWJlcjogZmluZEhvc3RJbnN0YW5jZUJ5RmliZXIsXG4gICAgZmluZEZpYmVyQnlIb3N0SW5zdGFuY2U6IGZpbmRGaWJlckJ5SG9zdEluc3RhbmNlIHx8IGVtcHR5RmluZEZpYmVyQnlIb3N0SW5zdGFuY2UsXG4gICAgLy8gUmVhY3QgUmVmcmVzaFxuICAgIGZpbmRIb3N0SW5zdGFuY2VzRm9yUmVmcmVzaDogIGZpbmRIb3N0SW5zdGFuY2VzRm9yUmVmcmVzaCAsXG4gICAgc2NoZWR1bGVSZWZyZXNoOiAgc2NoZWR1bGVSZWZyZXNoICxcbiAgICBzY2hlZHVsZVJvb3Q6ICBzY2hlZHVsZVJvb3QgLFxuICAgIHNldFJlZnJlc2hIYW5kbGVyOiAgc2V0UmVmcmVzaEhhbmRsZXIgLFxuICAgIC8vIEVuYWJsZXMgRGV2VG9vbHMgdG8gYXBwZW5kIG93bmVyIHN0YWNrcyB0byBlcnJvciBtZXNzYWdlcyBpbiBERVYgbW9kZS5cbiAgICBnZXRDdXJyZW50RmliZXI6ICBnZXRDdXJyZW50RmliZXJGb3JEZXZUb29scyBcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIFJlYWN0RE9NUm9vdChjb250YWluZXIsIG9wdGlvbnMpIHtcbiAgdGhpcy5faW50ZXJuYWxSb290ID0gY3JlYXRlUm9vdEltcGwoY29udGFpbmVyLCBDb25jdXJyZW50Um9vdCwgb3B0aW9ucyk7XG59XG5cbmZ1bmN0aW9uIFJlYWN0RE9NQmxvY2tpbmdSb290KGNvbnRhaW5lciwgdGFnLCBvcHRpb25zKSB7XG4gIHRoaXMuX2ludGVybmFsUm9vdCA9IGNyZWF0ZVJvb3RJbXBsKGNvbnRhaW5lciwgdGFnLCBvcHRpb25zKTtcbn1cblxuUmVhY3RET01Sb290LnByb3RvdHlwZS5yZW5kZXIgPSBSZWFjdERPTUJsb2NraW5nUm9vdC5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gKGNoaWxkcmVuKSB7XG4gIHZhciByb290ID0gdGhpcy5faW50ZXJuYWxSb290O1xuXG4gIHtcbiAgICBpZiAodHlwZW9mIGFyZ3VtZW50c1sxXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgZXJyb3IoJ3JlbmRlciguLi4pOiBkb2VzIG5vdCBzdXBwb3J0IHRoZSBzZWNvbmQgY2FsbGJhY2sgYXJndW1lbnQuICcgKyAnVG8gZXhlY3V0ZSBhIHNpZGUgZWZmZWN0IGFmdGVyIHJlbmRlcmluZywgZGVjbGFyZSBpdCBpbiBhIGNvbXBvbmVudCBib2R5IHdpdGggdXNlRWZmZWN0KCkuJyk7XG4gICAgfVxuXG4gICAgdmFyIGNvbnRhaW5lciA9IHJvb3QuY29udGFpbmVySW5mbztcblxuICAgIGlmIChjb250YWluZXIubm9kZVR5cGUgIT09IENPTU1FTlRfTk9ERSkge1xuICAgICAgdmFyIGhvc3RJbnN0YW5jZSA9IGZpbmRIb3N0SW5zdGFuY2VXaXRoTm9Qb3J0YWxzKHJvb3QuY3VycmVudCk7XG5cbiAgICAgIGlmIChob3N0SW5zdGFuY2UpIHtcbiAgICAgICAgaWYgKGhvc3RJbnN0YW5jZS5wYXJlbnROb2RlICE9PSBjb250YWluZXIpIHtcbiAgICAgICAgICBlcnJvcigncmVuZGVyKC4uLik6IEl0IGxvb2tzIGxpa2UgdGhlIFJlYWN0LXJlbmRlcmVkIGNvbnRlbnQgb2YgdGhlICcgKyAncm9vdCBjb250YWluZXIgd2FzIHJlbW92ZWQgd2l0aG91dCB1c2luZyBSZWFjdC4gVGhpcyBpcyBub3QgJyArICdzdXBwb3J0ZWQgYW5kIHdpbGwgY2F1c2UgZXJyb3JzLiBJbnN0ZWFkLCBjYWxsICcgKyBcInJvb3QudW5tb3VudCgpIHRvIGVtcHR5IGEgcm9vdCdzIGNvbnRhaW5lci5cIik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB1cGRhdGVDb250YWluZXIoY2hpbGRyZW4sIHJvb3QsIG51bGwsIG51bGwpO1xufTtcblxuUmVhY3RET01Sb290LnByb3RvdHlwZS51bm1vdW50ID0gUmVhY3RET01CbG9ja2luZ1Jvb3QucHJvdG90eXBlLnVubW91bnQgPSBmdW5jdGlvbiAoKSB7XG4gIHtcbiAgICBpZiAodHlwZW9mIGFyZ3VtZW50c1swXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgZXJyb3IoJ3VubW91bnQoLi4uKTogZG9lcyBub3Qgc3VwcG9ydCBhIGNhbGxiYWNrIGFyZ3VtZW50LiAnICsgJ1RvIGV4ZWN1dGUgYSBzaWRlIGVmZmVjdCBhZnRlciByZW5kZXJpbmcsIGRlY2xhcmUgaXQgaW4gYSBjb21wb25lbnQgYm9keSB3aXRoIHVzZUVmZmVjdCgpLicpO1xuICAgIH1cbiAgfVxuXG4gIHZhciByb290ID0gdGhpcy5faW50ZXJuYWxSb290O1xuICB2YXIgY29udGFpbmVyID0gcm9vdC5jb250YWluZXJJbmZvO1xuICB1cGRhdGVDb250YWluZXIobnVsbCwgcm9vdCwgbnVsbCwgZnVuY3Rpb24gKCkge1xuICAgIHVubWFya0NvbnRhaW5lckFzUm9vdChjb250YWluZXIpO1xuICB9KTtcbn07XG5cbmZ1bmN0aW9uIGNyZWF0ZVJvb3RJbXBsKGNvbnRhaW5lciwgdGFnLCBvcHRpb25zKSB7XG4gIC8vIFRhZyBpcyBlaXRoZXIgTGVnYWN5Um9vdCBvciBDb25jdXJyZW50IFJvb3RcbiAgdmFyIGh5ZHJhdGUgPSBvcHRpb25zICE9IG51bGwgJiYgb3B0aW9ucy5oeWRyYXRlID09PSB0cnVlO1xuICB2YXIgaHlkcmF0aW9uQ2FsbGJhY2tzID0gb3B0aW9ucyAhPSBudWxsICYmIG9wdGlvbnMuaHlkcmF0aW9uT3B0aW9ucyB8fCBudWxsO1xuICB2YXIgbXV0YWJsZVNvdXJjZXMgPSBvcHRpb25zICE9IG51bGwgJiYgb3B0aW9ucy5oeWRyYXRpb25PcHRpb25zICE9IG51bGwgJiYgb3B0aW9ucy5oeWRyYXRpb25PcHRpb25zLm11dGFibGVTb3VyY2VzIHx8IG51bGw7XG4gIHZhciByb290ID0gY3JlYXRlQ29udGFpbmVyKGNvbnRhaW5lciwgdGFnLCBoeWRyYXRlKTtcbiAgbWFya0NvbnRhaW5lckFzUm9vdChyb290LmN1cnJlbnQsIGNvbnRhaW5lcik7XG4gIHZhciBjb250YWluZXJOb2RlVHlwZSA9IGNvbnRhaW5lci5ub2RlVHlwZTtcblxuICB7XG4gICAgdmFyIHJvb3RDb250YWluZXJFbGVtZW50ID0gY29udGFpbmVyLm5vZGVUeXBlID09PSBDT01NRU5UX05PREUgPyBjb250YWluZXIucGFyZW50Tm9kZSA6IGNvbnRhaW5lcjtcbiAgICBsaXN0ZW5Ub0FsbFN1cHBvcnRlZEV2ZW50cyhyb290Q29udGFpbmVyRWxlbWVudCk7XG4gIH1cblxuICBpZiAobXV0YWJsZVNvdXJjZXMpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG11dGFibGVTb3VyY2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgbXV0YWJsZVNvdXJjZSA9IG11dGFibGVTb3VyY2VzW2ldO1xuICAgICAgcmVnaXN0ZXJNdXRhYmxlU291cmNlRm9ySHlkcmF0aW9uKHJvb3QsIG11dGFibGVTb3VyY2UpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByb290O1xufVxuZnVuY3Rpb24gY3JlYXRlTGVnYWN5Um9vdChjb250YWluZXIsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIG5ldyBSZWFjdERPTUJsb2NraW5nUm9vdChjb250YWluZXIsIExlZ2FjeVJvb3QsIG9wdGlvbnMpO1xufVxuZnVuY3Rpb24gaXNWYWxpZENvbnRhaW5lcihub2RlKSB7XG4gIHJldHVybiAhIShub2RlICYmIChub2RlLm5vZGVUeXBlID09PSBFTEVNRU5UX05PREUgfHwgbm9kZS5ub2RlVHlwZSA9PT0gRE9DVU1FTlRfTk9ERSB8fCBub2RlLm5vZGVUeXBlID09PSBET0NVTUVOVF9GUkFHTUVOVF9OT0RFIHx8IG5vZGUubm9kZVR5cGUgPT09IENPTU1FTlRfTk9ERSAmJiBub2RlLm5vZGVWYWx1ZSA9PT0gJyByZWFjdC1tb3VudC1wb2ludC11bnN0YWJsZSAnKSk7XG59XG5cbnZhciBSZWFjdEN1cnJlbnRPd25lciQzID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3RDdXJyZW50T3duZXI7XG52YXIgdG9wTGV2ZWxVcGRhdGVXYXJuaW5ncztcbnZhciB3YXJuZWRBYm91dEh5ZHJhdGVBUEkgPSBmYWxzZTtcblxue1xuICB0b3BMZXZlbFVwZGF0ZVdhcm5pbmdzID0gZnVuY3Rpb24gKGNvbnRhaW5lcikge1xuICAgIGlmIChjb250YWluZXIuX3JlYWN0Um9vdENvbnRhaW5lciAmJiBjb250YWluZXIubm9kZVR5cGUgIT09IENPTU1FTlRfTk9ERSkge1xuICAgICAgdmFyIGhvc3RJbnN0YW5jZSA9IGZpbmRIb3N0SW5zdGFuY2VXaXRoTm9Qb3J0YWxzKGNvbnRhaW5lci5fcmVhY3RSb290Q29udGFpbmVyLl9pbnRlcm5hbFJvb3QuY3VycmVudCk7XG5cbiAgICAgIGlmIChob3N0SW5zdGFuY2UpIHtcbiAgICAgICAgaWYgKGhvc3RJbnN0YW5jZS5wYXJlbnROb2RlICE9PSBjb250YWluZXIpIHtcbiAgICAgICAgICBlcnJvcigncmVuZGVyKC4uLik6IEl0IGxvb2tzIGxpa2UgdGhlIFJlYWN0LXJlbmRlcmVkIGNvbnRlbnQgb2YgdGhpcyAnICsgJ2NvbnRhaW5lciB3YXMgcmVtb3ZlZCB3aXRob3V0IHVzaW5nIFJlYWN0LiBUaGlzIGlzIG5vdCAnICsgJ3N1cHBvcnRlZCBhbmQgd2lsbCBjYXVzZSBlcnJvcnMuIEluc3RlYWQsIGNhbGwgJyArICdSZWFjdERPTS51bm1vdW50Q29tcG9uZW50QXROb2RlIHRvIGVtcHR5IGEgY29udGFpbmVyLicpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGlzUm9vdFJlbmRlcmVkQnlTb21lUmVhY3QgPSAhIWNvbnRhaW5lci5fcmVhY3RSb290Q29udGFpbmVyO1xuICAgIHZhciByb290RWwgPSBnZXRSZWFjdFJvb3RFbGVtZW50SW5Db250YWluZXIoY29udGFpbmVyKTtcbiAgICB2YXIgaGFzTm9uUm9vdFJlYWN0Q2hpbGQgPSAhIShyb290RWwgJiYgZ2V0SW5zdGFuY2VGcm9tTm9kZShyb290RWwpKTtcblxuICAgIGlmIChoYXNOb25Sb290UmVhY3RDaGlsZCAmJiAhaXNSb290UmVuZGVyZWRCeVNvbWVSZWFjdCkge1xuICAgICAgZXJyb3IoJ3JlbmRlciguLi4pOiBSZXBsYWNpbmcgUmVhY3QtcmVuZGVyZWQgY2hpbGRyZW4gd2l0aCBhIG5ldyByb290ICcgKyAnY29tcG9uZW50LiBJZiB5b3UgaW50ZW5kZWQgdG8gdXBkYXRlIHRoZSBjaGlsZHJlbiBvZiB0aGlzIG5vZGUsICcgKyAneW91IHNob3VsZCBpbnN0ZWFkIGhhdmUgdGhlIGV4aXN0aW5nIGNoaWxkcmVuIHVwZGF0ZSB0aGVpciBzdGF0ZSAnICsgJ2FuZCByZW5kZXIgdGhlIG5ldyBjb21wb25lbnRzIGluc3RlYWQgb2YgY2FsbGluZyBSZWFjdERPTS5yZW5kZXIuJyk7XG4gICAgfVxuXG4gICAgaWYgKGNvbnRhaW5lci5ub2RlVHlwZSA9PT0gRUxFTUVOVF9OT0RFICYmIGNvbnRhaW5lci50YWdOYW1lICYmIGNvbnRhaW5lci50YWdOYW1lLnRvVXBwZXJDYXNlKCkgPT09ICdCT0RZJykge1xuICAgICAgZXJyb3IoJ3JlbmRlcigpOiBSZW5kZXJpbmcgY29tcG9uZW50cyBkaXJlY3RseSBpbnRvIGRvY3VtZW50LmJvZHkgaXMgJyArICdkaXNjb3VyYWdlZCwgc2luY2UgaXRzIGNoaWxkcmVuIGFyZSBvZnRlbiBtYW5pcHVsYXRlZCBieSB0aGlyZC1wYXJ0eSAnICsgJ3NjcmlwdHMgYW5kIGJyb3dzZXIgZXh0ZW5zaW9ucy4gVGhpcyBtYXkgbGVhZCB0byBzdWJ0bGUgJyArICdyZWNvbmNpbGlhdGlvbiBpc3N1ZXMuIFRyeSByZW5kZXJpbmcgaW50byBhIGNvbnRhaW5lciBlbGVtZW50IGNyZWF0ZWQgJyArICdmb3IgeW91ciBhcHAuJyk7XG4gICAgfVxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRSZWFjdFJvb3RFbGVtZW50SW5Db250YWluZXIoY29udGFpbmVyKSB7XG4gIGlmICghY29udGFpbmVyKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpZiAoY29udGFpbmVyLm5vZGVUeXBlID09PSBET0NVTUVOVF9OT0RFKSB7XG4gICAgcmV0dXJuIGNvbnRhaW5lci5kb2N1bWVudEVsZW1lbnQ7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGNvbnRhaW5lci5maXJzdENoaWxkO1xuICB9XG59XG5cbmZ1bmN0aW9uIHNob3VsZEh5ZHJhdGVEdWVUb0xlZ2FjeUhldXJpc3RpYyhjb250YWluZXIpIHtcbiAgdmFyIHJvb3RFbGVtZW50ID0gZ2V0UmVhY3RSb290RWxlbWVudEluQ29udGFpbmVyKGNvbnRhaW5lcik7XG4gIHJldHVybiAhIShyb290RWxlbWVudCAmJiByb290RWxlbWVudC5ub2RlVHlwZSA9PT0gRUxFTUVOVF9OT0RFICYmIHJvb3RFbGVtZW50Lmhhc0F0dHJpYnV0ZShST09UX0FUVFJJQlVURV9OQU1FKSk7XG59XG5cbmZ1bmN0aW9uIGxlZ2FjeUNyZWF0ZVJvb3RGcm9tRE9NQ29udGFpbmVyKGNvbnRhaW5lciwgZm9yY2VIeWRyYXRlKSB7XG4gIHZhciBzaG91bGRIeWRyYXRlID0gZm9yY2VIeWRyYXRlIHx8IHNob3VsZEh5ZHJhdGVEdWVUb0xlZ2FjeUhldXJpc3RpYyhjb250YWluZXIpOyAvLyBGaXJzdCBjbGVhciBhbnkgZXhpc3RpbmcgY29udGVudC5cblxuICBpZiAoIXNob3VsZEh5ZHJhdGUpIHtcbiAgICB2YXIgd2FybmVkID0gZmFsc2U7XG4gICAgdmFyIHJvb3RTaWJsaW5nO1xuXG4gICAgd2hpbGUgKHJvb3RTaWJsaW5nID0gY29udGFpbmVyLmxhc3RDaGlsZCkge1xuICAgICAge1xuICAgICAgICBpZiAoIXdhcm5lZCAmJiByb290U2libGluZy5ub2RlVHlwZSA9PT0gRUxFTUVOVF9OT0RFICYmIHJvb3RTaWJsaW5nLmhhc0F0dHJpYnV0ZShST09UX0FUVFJJQlVURV9OQU1FKSkge1xuICAgICAgICAgIHdhcm5lZCA9IHRydWU7XG5cbiAgICAgICAgICBlcnJvcigncmVuZGVyKCk6IFRhcmdldCBub2RlIGhhcyBtYXJrdXAgcmVuZGVyZWQgYnkgUmVhY3QsIGJ1dCB0aGVyZSAnICsgJ2FyZSB1bnJlbGF0ZWQgbm9kZXMgYXMgd2VsbC4gVGhpcyBpcyBtb3N0IGNvbW1vbmx5IGNhdXNlZCBieSAnICsgJ3doaXRlLXNwYWNlIGluc2VydGVkIGFyb3VuZCBzZXJ2ZXItcmVuZGVyZWQgbWFya3VwLicpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnRhaW5lci5yZW1vdmVDaGlsZChyb290U2libGluZyk7XG4gICAgfVxuICB9XG5cbiAge1xuICAgIGlmIChzaG91bGRIeWRyYXRlICYmICFmb3JjZUh5ZHJhdGUgJiYgIXdhcm5lZEFib3V0SHlkcmF0ZUFQSSkge1xuICAgICAgd2FybmVkQWJvdXRIeWRyYXRlQVBJID0gdHJ1ZTtcblxuICAgICAgd2FybigncmVuZGVyKCk6IENhbGxpbmcgUmVhY3RET00ucmVuZGVyKCkgdG8gaHlkcmF0ZSBzZXJ2ZXItcmVuZGVyZWQgbWFya3VwICcgKyAnd2lsbCBzdG9wIHdvcmtpbmcgaW4gUmVhY3QgdjE4LiBSZXBsYWNlIHRoZSBSZWFjdERPTS5yZW5kZXIoKSBjYWxsICcgKyAnd2l0aCBSZWFjdERPTS5oeWRyYXRlKCkgaWYgeW91IHdhbnQgUmVhY3QgdG8gYXR0YWNoIHRvIHRoZSBzZXJ2ZXIgSFRNTC4nKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gY3JlYXRlTGVnYWN5Um9vdChjb250YWluZXIsIHNob3VsZEh5ZHJhdGUgPyB7XG4gICAgaHlkcmF0ZTogdHJ1ZVxuICB9IDogdW5kZWZpbmVkKTtcbn1cblxuZnVuY3Rpb24gd2Fybk9uSW52YWxpZENhbGxiYWNrJDEoY2FsbGJhY2ssIGNhbGxlck5hbWUpIHtcbiAge1xuICAgIGlmIChjYWxsYmFjayAhPT0gbnVsbCAmJiB0eXBlb2YgY2FsbGJhY2sgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGVycm9yKCclcyguLi4pOiBFeHBlY3RlZCB0aGUgbGFzdCBvcHRpb25hbCBgY2FsbGJhY2tgIGFyZ3VtZW50IHRvIGJlIGEgJyArICdmdW5jdGlvbi4gSW5zdGVhZCByZWNlaXZlZDogJXMuJywgY2FsbGVyTmFtZSwgY2FsbGJhY2spO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBsZWdhY3lSZW5kZXJTdWJ0cmVlSW50b0NvbnRhaW5lcihwYXJlbnRDb21wb25lbnQsIGNoaWxkcmVuLCBjb250YWluZXIsIGZvcmNlSHlkcmF0ZSwgY2FsbGJhY2spIHtcbiAge1xuICAgIHRvcExldmVsVXBkYXRlV2FybmluZ3MoY29udGFpbmVyKTtcbiAgICB3YXJuT25JbnZhbGlkQ2FsbGJhY2skMShjYWxsYmFjayA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGNhbGxiYWNrLCAncmVuZGVyJyk7XG4gIH0gLy8gVE9ETzogV2l0aG91dCBgYW55YCB0eXBlLCBGbG93IHNheXMgXCJQcm9wZXJ0eSBjYW5ub3QgYmUgYWNjZXNzZWQgb24gYW55XG4gIC8vIG1lbWJlciBvZiBpbnRlcnNlY3Rpb24gdHlwZS5cIiBXaHl5eXl5eS5cblxuXG4gIHZhciByb290ID0gY29udGFpbmVyLl9yZWFjdFJvb3RDb250YWluZXI7XG4gIHZhciBmaWJlclJvb3Q7XG5cbiAgaWYgKCFyb290KSB7XG4gICAgLy8gSW5pdGlhbCBtb3VudFxuICAgIHJvb3QgPSBjb250YWluZXIuX3JlYWN0Um9vdENvbnRhaW5lciA9IGxlZ2FjeUNyZWF0ZVJvb3RGcm9tRE9NQ29udGFpbmVyKGNvbnRhaW5lciwgZm9yY2VIeWRyYXRlKTtcbiAgICBmaWJlclJvb3QgPSByb290Ll9pbnRlcm5hbFJvb3Q7XG5cbiAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB2YXIgb3JpZ2luYWxDYWxsYmFjayA9IGNhbGxiYWNrO1xuXG4gICAgICBjYWxsYmFjayA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIGluc3RhbmNlID0gZ2V0UHVibGljUm9vdEluc3RhbmNlKGZpYmVyUm9vdCk7XG4gICAgICAgIG9yaWdpbmFsQ2FsbGJhY2suY2FsbChpbnN0YW5jZSk7XG4gICAgICB9O1xuICAgIH0gLy8gSW5pdGlhbCBtb3VudCBzaG91bGQgbm90IGJlIGJhdGNoZWQuXG5cblxuICAgIHVuYmF0Y2hlZFVwZGF0ZXMoZnVuY3Rpb24gKCkge1xuICAgICAgdXBkYXRlQ29udGFpbmVyKGNoaWxkcmVuLCBmaWJlclJvb3QsIHBhcmVudENvbXBvbmVudCwgY2FsbGJhY2spO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIGZpYmVyUm9vdCA9IHJvb3QuX2ludGVybmFsUm9vdDtcblxuICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHZhciBfb3JpZ2luYWxDYWxsYmFjayA9IGNhbGxiYWNrO1xuXG4gICAgICBjYWxsYmFjayA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIGluc3RhbmNlID0gZ2V0UHVibGljUm9vdEluc3RhbmNlKGZpYmVyUm9vdCk7XG5cbiAgICAgICAgX29yaWdpbmFsQ2FsbGJhY2suY2FsbChpbnN0YW5jZSk7XG4gICAgICB9O1xuICAgIH0gLy8gVXBkYXRlXG5cblxuICAgIHVwZGF0ZUNvbnRhaW5lcihjaGlsZHJlbiwgZmliZXJSb290LCBwYXJlbnRDb21wb25lbnQsIGNhbGxiYWNrKTtcbiAgfVxuXG4gIHJldHVybiBnZXRQdWJsaWNSb290SW5zdGFuY2UoZmliZXJSb290KTtcbn1cblxuZnVuY3Rpb24gZmluZERPTU5vZGUoY29tcG9uZW50T3JFbGVtZW50KSB7XG4gIHtcbiAgICB2YXIgb3duZXIgPSBSZWFjdEN1cnJlbnRPd25lciQzLmN1cnJlbnQ7XG5cbiAgICBpZiAob3duZXIgIT09IG51bGwgJiYgb3duZXIuc3RhdGVOb2RlICE9PSBudWxsKSB7XG4gICAgICB2YXIgd2FybmVkQWJvdXRSZWZzSW5SZW5kZXIgPSBvd25lci5zdGF0ZU5vZGUuX3dhcm5lZEFib3V0UmVmc0luUmVuZGVyO1xuXG4gICAgICBpZiAoIXdhcm5lZEFib3V0UmVmc0luUmVuZGVyKSB7XG4gICAgICAgIGVycm9yKCclcyBpcyBhY2Nlc3NpbmcgZmluZERPTU5vZGUgaW5zaWRlIGl0cyByZW5kZXIoKS4gJyArICdyZW5kZXIoKSBzaG91bGQgYmUgYSBwdXJlIGZ1bmN0aW9uIG9mIHByb3BzIGFuZCBzdGF0ZS4gSXQgc2hvdWxkICcgKyAnbmV2ZXIgYWNjZXNzIHNvbWV0aGluZyB0aGF0IHJlcXVpcmVzIHN0YWxlIGRhdGEgZnJvbSB0aGUgcHJldmlvdXMgJyArICdyZW5kZXIsIHN1Y2ggYXMgcmVmcy4gTW92ZSB0aGlzIGxvZ2ljIHRvIGNvbXBvbmVudERpZE1vdW50IGFuZCAnICsgJ2NvbXBvbmVudERpZFVwZGF0ZSBpbnN0ZWFkLicsIGdldENvbXBvbmVudE5hbWUob3duZXIudHlwZSkgfHwgJ0EgY29tcG9uZW50Jyk7XG4gICAgICB9XG5cbiAgICAgIG93bmVyLnN0YXRlTm9kZS5fd2FybmVkQWJvdXRSZWZzSW5SZW5kZXIgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGlmIChjb21wb25lbnRPckVsZW1lbnQgPT0gbnVsbCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKGNvbXBvbmVudE9yRWxlbWVudC5ub2RlVHlwZSA9PT0gRUxFTUVOVF9OT0RFKSB7XG4gICAgcmV0dXJuIGNvbXBvbmVudE9yRWxlbWVudDtcbiAgfVxuXG4gIHtcbiAgICByZXR1cm4gZmluZEhvc3RJbnN0YW5jZVdpdGhXYXJuaW5nKGNvbXBvbmVudE9yRWxlbWVudCwgJ2ZpbmRET01Ob2RlJyk7XG4gIH1cbn1cbmZ1bmN0aW9uIGh5ZHJhdGUoZWxlbWVudCwgY29udGFpbmVyLCBjYWxsYmFjaykge1xuICBpZiAoIWlzVmFsaWRDb250YWluZXIoY29udGFpbmVyKSkge1xuICAgIHtcbiAgICAgIHRocm93IEVycm9yKCBcIlRhcmdldCBjb250YWluZXIgaXMgbm90IGEgRE9NIGVsZW1lbnQuXCIgKTtcbiAgICB9XG4gIH1cblxuICB7XG4gICAgdmFyIGlzTW9kZXJuUm9vdCA9IGlzQ29udGFpbmVyTWFya2VkQXNSb290KGNvbnRhaW5lcikgJiYgY29udGFpbmVyLl9yZWFjdFJvb3RDb250YWluZXIgPT09IHVuZGVmaW5lZDtcblxuICAgIGlmIChpc01vZGVyblJvb3QpIHtcbiAgICAgIGVycm9yKCdZb3UgYXJlIGNhbGxpbmcgUmVhY3RET00uaHlkcmF0ZSgpIG9uIGEgY29udGFpbmVyIHRoYXQgd2FzIHByZXZpb3VzbHkgJyArICdwYXNzZWQgdG8gUmVhY3RET00uY3JlYXRlUm9vdCgpLiBUaGlzIGlzIG5vdCBzdXBwb3J0ZWQuICcgKyAnRGlkIHlvdSBtZWFuIHRvIGNhbGwgY3JlYXRlUm9vdChjb250YWluZXIsIHtoeWRyYXRlOiB0cnVlfSkucmVuZGVyKGVsZW1lbnQpPycpO1xuICAgIH1cbiAgfSAvLyBUT0RPOiB0aHJvdyBvciB3YXJuIGlmIHdlIGNvdWxkbid0IGh5ZHJhdGU/XG5cblxuICByZXR1cm4gbGVnYWN5UmVuZGVyU3VidHJlZUludG9Db250YWluZXIobnVsbCwgZWxlbWVudCwgY29udGFpbmVyLCB0cnVlLCBjYWxsYmFjayk7XG59XG5mdW5jdGlvbiByZW5kZXIoZWxlbWVudCwgY29udGFpbmVyLCBjYWxsYmFjaykge1xuICBpZiAoIWlzVmFsaWRDb250YWluZXIoY29udGFpbmVyKSkge1xuICAgIHtcbiAgICAgIHRocm93IEVycm9yKCBcIlRhcmdldCBjb250YWluZXIgaXMgbm90IGEgRE9NIGVsZW1lbnQuXCIgKTtcbiAgICB9XG4gIH1cblxuICB7XG4gICAgdmFyIGlzTW9kZXJuUm9vdCA9IGlzQ29udGFpbmVyTWFya2VkQXNSb290KGNvbnRhaW5lcikgJiYgY29udGFpbmVyLl9yZWFjdFJvb3RDb250YWluZXIgPT09IHVuZGVmaW5lZDtcblxuICAgIGlmIChpc01vZGVyblJvb3QpIHtcbiAgICAgIGVycm9yKCdZb3UgYXJlIGNhbGxpbmcgUmVhY3RET00ucmVuZGVyKCkgb24gYSBjb250YWluZXIgdGhhdCB3YXMgcHJldmlvdXNseSAnICsgJ3Bhc3NlZCB0byBSZWFjdERPTS5jcmVhdGVSb290KCkuIFRoaXMgaXMgbm90IHN1cHBvcnRlZC4gJyArICdEaWQgeW91IG1lYW4gdG8gY2FsbCByb290LnJlbmRlcihlbGVtZW50KT8nKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbGVnYWN5UmVuZGVyU3VidHJlZUludG9Db250YWluZXIobnVsbCwgZWxlbWVudCwgY29udGFpbmVyLCBmYWxzZSwgY2FsbGJhY2spO1xufVxuZnVuY3Rpb24gdW5zdGFibGVfcmVuZGVyU3VidHJlZUludG9Db250YWluZXIocGFyZW50Q29tcG9uZW50LCBlbGVtZW50LCBjb250YWluZXJOb2RlLCBjYWxsYmFjaykge1xuICBpZiAoIWlzVmFsaWRDb250YWluZXIoY29udGFpbmVyTm9kZSkpIHtcbiAgICB7XG4gICAgICB0aHJvdyBFcnJvciggXCJUYXJnZXQgY29udGFpbmVyIGlzIG5vdCBhIERPTSBlbGVtZW50LlwiICk7XG4gICAgfVxuICB9XG5cbiAgaWYgKCEocGFyZW50Q29tcG9uZW50ICE9IG51bGwgJiYgaGFzKHBhcmVudENvbXBvbmVudCkpKSB7XG4gICAge1xuICAgICAgdGhyb3cgRXJyb3IoIFwicGFyZW50Q29tcG9uZW50IG11c3QgYmUgYSB2YWxpZCBSZWFjdCBDb21wb25lbnRcIiApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBsZWdhY3lSZW5kZXJTdWJ0cmVlSW50b0NvbnRhaW5lcihwYXJlbnRDb21wb25lbnQsIGVsZW1lbnQsIGNvbnRhaW5lck5vZGUsIGZhbHNlLCBjYWxsYmFjayk7XG59XG5mdW5jdGlvbiB1bm1vdW50Q29tcG9uZW50QXROb2RlKGNvbnRhaW5lcikge1xuICBpZiAoIWlzVmFsaWRDb250YWluZXIoY29udGFpbmVyKSkge1xuICAgIHtcbiAgICAgIHRocm93IEVycm9yKCBcInVubW91bnRDb21wb25lbnRBdE5vZGUoLi4uKTogVGFyZ2V0IGNvbnRhaW5lciBpcyBub3QgYSBET00gZWxlbWVudC5cIiApO1xuICAgIH1cbiAgfVxuXG4gIHtcbiAgICB2YXIgaXNNb2Rlcm5Sb290ID0gaXNDb250YWluZXJNYXJrZWRBc1Jvb3QoY29udGFpbmVyKSAmJiBjb250YWluZXIuX3JlYWN0Um9vdENvbnRhaW5lciA9PT0gdW5kZWZpbmVkO1xuXG4gICAgaWYgKGlzTW9kZXJuUm9vdCkge1xuICAgICAgZXJyb3IoJ1lvdSBhcmUgY2FsbGluZyBSZWFjdERPTS51bm1vdW50Q29tcG9uZW50QXROb2RlKCkgb24gYSBjb250YWluZXIgdGhhdCB3YXMgcHJldmlvdXNseSAnICsgJ3Bhc3NlZCB0byBSZWFjdERPTS5jcmVhdGVSb290KCkuIFRoaXMgaXMgbm90IHN1cHBvcnRlZC4gRGlkIHlvdSBtZWFuIHRvIGNhbGwgcm9vdC51bm1vdW50KCk/Jyk7XG4gICAgfVxuICB9XG5cbiAgaWYgKGNvbnRhaW5lci5fcmVhY3RSb290Q29udGFpbmVyKSB7XG4gICAge1xuICAgICAgdmFyIHJvb3RFbCA9IGdldFJlYWN0Um9vdEVsZW1lbnRJbkNvbnRhaW5lcihjb250YWluZXIpO1xuICAgICAgdmFyIHJlbmRlcmVkQnlEaWZmZXJlbnRSZWFjdCA9IHJvb3RFbCAmJiAhZ2V0SW5zdGFuY2VGcm9tTm9kZShyb290RWwpO1xuXG4gICAgICBpZiAocmVuZGVyZWRCeURpZmZlcmVudFJlYWN0KSB7XG4gICAgICAgIGVycm9yKFwidW5tb3VudENvbXBvbmVudEF0Tm9kZSgpOiBUaGUgbm9kZSB5b3UncmUgYXR0ZW1wdGluZyB0byB1bm1vdW50IFwiICsgJ3dhcyByZW5kZXJlZCBieSBhbm90aGVyIGNvcHkgb2YgUmVhY3QuJyk7XG4gICAgICB9XG4gICAgfSAvLyBVbm1vdW50IHNob3VsZCBub3QgYmUgYmF0Y2hlZC5cblxuXG4gICAgdW5iYXRjaGVkVXBkYXRlcyhmdW5jdGlvbiAoKSB7XG4gICAgICBsZWdhY3lSZW5kZXJTdWJ0cmVlSW50b0NvbnRhaW5lcihudWxsLCBudWxsLCBjb250YWluZXIsIGZhbHNlLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIC8vICRGbG93Rml4TWUgVGhpcyBzaG91bGQgcHJvYmFibHkgdXNlIGBkZWxldGUgY29udGFpbmVyLl9yZWFjdFJvb3RDb250YWluZXJgXG4gICAgICAgIGNvbnRhaW5lci5fcmVhY3RSb290Q29udGFpbmVyID0gbnVsbDtcbiAgICAgICAgdW5tYXJrQ29udGFpbmVyQXNSb290KGNvbnRhaW5lcik7XG4gICAgICB9KTtcbiAgICB9KTsgLy8gSWYgeW91IGNhbGwgdW5tb3VudENvbXBvbmVudEF0Tm9kZSB0d2ljZSBpbiBxdWljayBzdWNjZXNzaW9uLCB5b3UnbGxcbiAgICAvLyBnZXQgYHRydWVgIHR3aWNlLiBUaGF0J3MgcHJvYmFibHkgZmluZT9cblxuICAgIHJldHVybiB0cnVlO1xuICB9IGVsc2Uge1xuICAgIHtcbiAgICAgIHZhciBfcm9vdEVsID0gZ2V0UmVhY3RSb290RWxlbWVudEluQ29udGFpbmVyKGNvbnRhaW5lcik7XG5cbiAgICAgIHZhciBoYXNOb25Sb290UmVhY3RDaGlsZCA9ICEhKF9yb290RWwgJiYgZ2V0SW5zdGFuY2VGcm9tTm9kZShfcm9vdEVsKSk7IC8vIENoZWNrIGlmIHRoZSBjb250YWluZXIgaXRzZWxmIGlzIGEgUmVhY3Qgcm9vdCBub2RlLlxuXG4gICAgICB2YXIgaXNDb250YWluZXJSZWFjdFJvb3QgPSBjb250YWluZXIubm9kZVR5cGUgPT09IEVMRU1FTlRfTk9ERSAmJiBpc1ZhbGlkQ29udGFpbmVyKGNvbnRhaW5lci5wYXJlbnROb2RlKSAmJiAhIWNvbnRhaW5lci5wYXJlbnROb2RlLl9yZWFjdFJvb3RDb250YWluZXI7XG5cbiAgICAgIGlmIChoYXNOb25Sb290UmVhY3RDaGlsZCkge1xuICAgICAgICBlcnJvcihcInVubW91bnRDb21wb25lbnRBdE5vZGUoKTogVGhlIG5vZGUgeW91J3JlIGF0dGVtcHRpbmcgdG8gdW5tb3VudCBcIiArICd3YXMgcmVuZGVyZWQgYnkgUmVhY3QgYW5kIGlzIG5vdCBhIHRvcC1sZXZlbCBjb250YWluZXIuICVzJywgaXNDb250YWluZXJSZWFjdFJvb3QgPyAnWW91IG1heSBoYXZlIGFjY2lkZW50YWxseSBwYXNzZWQgaW4gYSBSZWFjdCByb290IG5vZGUgaW5zdGVhZCAnICsgJ29mIGl0cyBjb250YWluZXIuJyA6ICdJbnN0ZWFkLCBoYXZlIHRoZSBwYXJlbnQgY29tcG9uZW50IHVwZGF0ZSBpdHMgc3RhdGUgYW5kICcgKyAncmVyZW5kZXIgaW4gb3JkZXIgdG8gcmVtb3ZlIHRoaXMgY29tcG9uZW50LicpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5zZXRBdHRlbXB0VXNlckJsb2NraW5nSHlkcmF0aW9uKGF0dGVtcHRVc2VyQmxvY2tpbmdIeWRyYXRpb24kMSk7XG5zZXRBdHRlbXB0Q29udGludW91c0h5ZHJhdGlvbihhdHRlbXB0Q29udGludW91c0h5ZHJhdGlvbiQxKTtcbnNldEF0dGVtcHRIeWRyYXRpb25BdEN1cnJlbnRQcmlvcml0eShhdHRlbXB0SHlkcmF0aW9uQXRDdXJyZW50UHJpb3JpdHkkMSk7XG5zZXRBdHRlbXB0SHlkcmF0aW9uQXRQcmlvcml0eShydW5XaXRoUHJpb3JpdHkkMik7XG52YXIgZGlkV2FybkFib3V0VW5zdGFibGVDcmVhdGVQb3J0YWwgPSBmYWxzZTtcblxue1xuICBpZiAodHlwZW9mIE1hcCAhPT0gJ2Z1bmN0aW9uJyB8fCAvLyAkRmxvd0lzc3VlIEZsb3cgaW5jb3JyZWN0bHkgdGhpbmtzIE1hcCBoYXMgbm8gcHJvdG90eXBlXG4gIE1hcC5wcm90b3R5cGUgPT0gbnVsbCB8fCB0eXBlb2YgTWFwLnByb3RvdHlwZS5mb3JFYWNoICE9PSAnZnVuY3Rpb24nIHx8IHR5cGVvZiBTZXQgIT09ICdmdW5jdGlvbicgfHwgLy8gJEZsb3dJc3N1ZSBGbG93IGluY29ycmVjdGx5IHRoaW5rcyBTZXQgaGFzIG5vIHByb3RvdHlwZVxuICBTZXQucHJvdG90eXBlID09IG51bGwgfHwgdHlwZW9mIFNldC5wcm90b3R5cGUuY2xlYXIgIT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIFNldC5wcm90b3R5cGUuZm9yRWFjaCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIGVycm9yKCdSZWFjdCBkZXBlbmRzIG9uIE1hcCBhbmQgU2V0IGJ1aWx0LWluIHR5cGVzLiBNYWtlIHN1cmUgdGhhdCB5b3UgbG9hZCBhICcgKyAncG9seWZpbGwgaW4gb2xkZXIgYnJvd3NlcnMuIGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9yZWFjdC1wb2x5ZmlsbHMnKTtcbiAgfVxufVxuXG5zZXRSZXN0b3JlSW1wbGVtZW50YXRpb24ocmVzdG9yZUNvbnRyb2xsZWRTdGF0ZSQzKTtcbnNldEJhdGNoaW5nSW1wbGVtZW50YXRpb24oYmF0Y2hlZFVwZGF0ZXMkMSwgZGlzY3JldGVVcGRhdGVzJDEsIGZsdXNoRGlzY3JldGVVcGRhdGVzLCBiYXRjaGVkRXZlbnRVcGRhdGVzJDEpO1xuXG5mdW5jdGlvbiBjcmVhdGVQb3J0YWwkMShjaGlsZHJlbiwgY29udGFpbmVyKSB7XG4gIHZhciBrZXkgPSBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiBhcmd1bWVudHNbMl0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1syXSA6IG51bGw7XG5cbiAgaWYgKCFpc1ZhbGlkQ29udGFpbmVyKGNvbnRhaW5lcikpIHtcbiAgICB7XG4gICAgICB0aHJvdyBFcnJvciggXCJUYXJnZXQgY29udGFpbmVyIGlzIG5vdCBhIERPTSBlbGVtZW50LlwiICk7XG4gICAgfVxuICB9IC8vIFRPRE86IHBhc3MgUmVhY3RET00gcG9ydGFsIGltcGxlbWVudGF0aW9uIGFzIHRoaXJkIGFyZ3VtZW50XG4gIC8vICRGbG93Rml4TWUgVGhlIEZsb3cgdHlwZSBpcyBvcGFxdWUgYnV0IHRoZXJlJ3Mgbm8gd2F5IHRvIGFjdHVhbGx5IGNyZWF0ZSBpdC5cblxuXG4gIHJldHVybiBjcmVhdGVQb3J0YWwoY2hpbGRyZW4sIGNvbnRhaW5lciwgbnVsbCwga2V5KTtcbn1cblxuZnVuY3Rpb24gcmVuZGVyU3VidHJlZUludG9Db250YWluZXIocGFyZW50Q29tcG9uZW50LCBlbGVtZW50LCBjb250YWluZXJOb2RlLCBjYWxsYmFjaykge1xuXG4gIHJldHVybiB1bnN0YWJsZV9yZW5kZXJTdWJ0cmVlSW50b0NvbnRhaW5lcihwYXJlbnRDb21wb25lbnQsIGVsZW1lbnQsIGNvbnRhaW5lck5vZGUsIGNhbGxiYWNrKTtcbn1cblxuZnVuY3Rpb24gdW5zdGFibGVfY3JlYXRlUG9ydGFsKGNoaWxkcmVuLCBjb250YWluZXIpIHtcbiAgdmFyIGtleSA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDogbnVsbDtcblxuICB7XG4gICAgaWYgKCFkaWRXYXJuQWJvdXRVbnN0YWJsZUNyZWF0ZVBvcnRhbCkge1xuICAgICAgZGlkV2FybkFib3V0VW5zdGFibGVDcmVhdGVQb3J0YWwgPSB0cnVlO1xuXG4gICAgICB3YXJuKCdUaGUgUmVhY3RET00udW5zdGFibGVfY3JlYXRlUG9ydGFsKCkgYWxpYXMgaGFzIGJlZW4gZGVwcmVjYXRlZCwgJyArICdhbmQgd2lsbCBiZSByZW1vdmVkIGluIFJlYWN0IDE4Ky4gVXBkYXRlIHlvdXIgY29kZSB0byB1c2UgJyArICdSZWFjdERPTS5jcmVhdGVQb3J0YWwoKSBpbnN0ZWFkLiBJdCBoYXMgdGhlIGV4YWN0IHNhbWUgQVBJLCAnICsgJ2J1dCB3aXRob3V0IHRoZSBcInVuc3RhYmxlX1wiIHByZWZpeC4nKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gY3JlYXRlUG9ydGFsJDEoY2hpbGRyZW4sIGNvbnRhaW5lciwga2V5KTtcbn1cblxudmFyIEludGVybmFscyA9IHtcbiAgLy8gS2VlcCBpbiBzeW5jIHdpdGggUmVhY3RUZXN0VXRpbHMuanMsIGFuZCBSZWFjdFRlc3RVdGlsc0FjdC5qcy5cbiAgLy8gVGhpcyBpcyBhbiBhcnJheSBmb3IgYmV0dGVyIG1pbmlmaWNhdGlvbi5cbiAgRXZlbnRzOiBbZ2V0SW5zdGFuY2VGcm9tTm9kZSwgZ2V0Tm9kZUZyb21JbnN0YW5jZSwgZ2V0RmliZXJDdXJyZW50UHJvcHNGcm9tTm9kZSwgZW5xdWV1ZVN0YXRlUmVzdG9yZSwgcmVzdG9yZVN0YXRlSWZOZWVkZWQsIGZsdXNoUGFzc2l2ZUVmZmVjdHMsIC8vIFRPRE86IFRoaXMgaXMgcmVsYXRlZCB0byBgYWN0YCwgbm90IGV2ZW50cy4gTW92ZSB0byBzZXBhcmF0ZSBrZXk/XG4gIElzVGhpc1JlbmRlcmVyQWN0aW5nXVxufTtcbnZhciBmb3VuZERldlRvb2xzID0gaW5qZWN0SW50b0RldlRvb2xzKHtcbiAgZmluZEZpYmVyQnlIb3N0SW5zdGFuY2U6IGdldENsb3Nlc3RJbnN0YW5jZUZyb21Ob2RlLFxuICBidW5kbGVUeXBlOiAgMSAsXG4gIHZlcnNpb246IFJlYWN0VmVyc2lvbixcbiAgcmVuZGVyZXJQYWNrYWdlTmFtZTogJ3JlYWN0LWRvbSdcbn0pO1xuXG57XG4gIGlmICghZm91bmREZXZUb29scyAmJiBjYW5Vc2VET00gJiYgd2luZG93LnRvcCA9PT0gd2luZG93LnNlbGYpIHtcbiAgICAvLyBJZiB3ZSdyZSBpbiBDaHJvbWUgb3IgRmlyZWZveCwgcHJvdmlkZSBhIGRvd25sb2FkIGxpbmsgaWYgbm90IGluc3RhbGxlZC5cbiAgICBpZiAobmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCdDaHJvbWUnKSA+IC0xICYmIG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZignRWRnZScpID09PSAtMSB8fCBuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoJ0ZpcmVmb3gnKSA+IC0xKSB7XG4gICAgICB2YXIgcHJvdG9jb2wgPSB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2w7IC8vIERvbid0IHdhcm4gaW4gZXhvdGljIGNhc2VzIGxpa2UgY2hyb21lLWV4dGVuc2lvbjovLy5cblxuICAgICAgaWYgKC9eKGh0dHBzP3xmaWxlKTokLy50ZXN0KHByb3RvY29sKSkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nXG4gICAgICAgIGNvbnNvbGUuaW5mbygnJWNEb3dubG9hZCB0aGUgUmVhY3QgRGV2VG9vbHMgJyArICdmb3IgYSBiZXR0ZXIgZGV2ZWxvcG1lbnQgZXhwZXJpZW5jZTogJyArICdodHRwczovL3JlYWN0anMub3JnL2xpbmsvcmVhY3QtZGV2dG9vbHMnICsgKHByb3RvY29sID09PSAnZmlsZTonID8gJ1xcbllvdSBtaWdodCBuZWVkIHRvIHVzZSBhIGxvY2FsIEhUVFAgc2VydmVyIChpbnN0ZWFkIG9mIGZpbGU6Ly8pOiAnICsgJ2h0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9yZWFjdC1kZXZ0b29scy1mYXEnIDogJycpLCAnZm9udC13ZWlnaHQ6Ym9sZCcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnRzLl9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEID0gSW50ZXJuYWxzO1xuZXhwb3J0cy5jcmVhdGVQb3J0YWwgPSBjcmVhdGVQb3J0YWwkMTtcbmV4cG9ydHMuZmluZERPTU5vZGUgPSBmaW5kRE9NTm9kZTtcbmV4cG9ydHMuZmx1c2hTeW5jID0gZmx1c2hTeW5jO1xuZXhwb3J0cy5oeWRyYXRlID0gaHlkcmF0ZTtcbmV4cG9ydHMucmVuZGVyID0gcmVuZGVyO1xuZXhwb3J0cy51bm1vdW50Q29tcG9uZW50QXROb2RlID0gdW5tb3VudENvbXBvbmVudEF0Tm9kZTtcbmV4cG9ydHMudW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXMgPSBiYXRjaGVkVXBkYXRlcyQxO1xuZXhwb3J0cy51bnN0YWJsZV9jcmVhdGVQb3J0YWwgPSB1bnN0YWJsZV9jcmVhdGVQb3J0YWw7XG5leHBvcnRzLnVuc3RhYmxlX3JlbmRlclN1YnRyZWVJbnRvQ29udGFpbmVyID0gcmVuZGVyU3VidHJlZUludG9Db250YWluZXI7XG5leHBvcnRzLnZlcnNpb24gPSBSZWFjdFZlcnNpb247XG4gIH0pKCk7XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-dom/cjs/react-dom.development.js\n"); + +/***/ }), + +/***/ "./node_modules/react-dom/index.js": +/*!*****************************************!*\ + !*** ./node_modules/react-dom/index.js ***! + \*****************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (true) {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-dom.development.js */ \"./node_modules/react-dom/cjs/react-dom.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLElBQXFDO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLElBQUksS0FBcUMsRUFBRSxFQUsxQyxDQUFDO0FBQ0YsRUFBRSxtSUFBMEQ7QUFDNUQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9pbmRleC5qcz83NzIyIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuZnVuY3Rpb24gY2hlY2tEQ0UoKSB7XG4gIC8qIGdsb2JhbCBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gKi9cbiAgaWYgKFxuICAgIHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gPT09ICd1bmRlZmluZWQnIHx8XG4gICAgdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRSAhPT0gJ2Z1bmN0aW9uJ1xuICApIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAvLyBUaGlzIGJyYW5jaCBpcyB1bnJlYWNoYWJsZSBiZWNhdXNlIHRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWRcbiAgICAvLyBpbiBwcm9kdWN0aW9uLCBidXQgdGhlIGNvbmRpdGlvbiBpcyB0cnVlIG9ubHkgaW4gZGV2ZWxvcG1lbnQuXG4gICAgLy8gVGhlcmVmb3JlIGlmIHRoZSBicmFuY2ggaXMgc3RpbGwgaGVyZSwgZGVhZCBjb2RlIGVsaW1pbmF0aW9uIHdhc24ndFxuICAgIC8vIHByb3Blcmx5IGFwcGxpZWQuXG4gICAgLy8gRG9uJ3QgY2hhbmdlIHRoZSBtZXNzYWdlLiBSZWFjdCBEZXZUb29scyByZWxpZXMgb24gaXQuIEFsc28gbWFrZSBzdXJlXG4gICAgLy8gdGhpcyBtZXNzYWdlIGRvZXNuJ3Qgb2NjdXIgZWxzZXdoZXJlIGluIHRoaXMgZnVuY3Rpb24sIG9yIGl0IHdpbGwgY2F1c2VcbiAgICAvLyBhIGZhbHNlIHBvc2l0aXZlLlxuICAgIHRocm93IG5ldyBFcnJvcignXl9eJyk7XG4gIH1cbiAgdHJ5IHtcbiAgICAvLyBWZXJpZnkgdGhhdCB0aGUgY29kZSBhYm92ZSBoYXMgYmVlbiBkZWFkIGNvZGUgZWxpbWluYXRlZCAoRENFJ2QpLlxuICAgIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRShjaGVja0RDRSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIC8vIERldlRvb2xzIHNob3VsZG4ndCBjcmFzaCBSZWFjdCwgbm8gbWF0dGVyIHdoYXQuXG4gICAgLy8gV2Ugc2hvdWxkIHN0aWxsIHJlcG9ydCBpbiBjYXNlIHdlIGJyZWFrIHRoaXMgY29kZS5cbiAgICBjb25zb2xlLmVycm9yKGVycik7XG4gIH1cbn1cblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgLy8gRENFIGNoZWNrIHNob3VsZCBoYXBwZW4gYmVmb3JlIFJlYWN0RE9NIGJ1bmRsZSBleGVjdXRlcyBzbyB0aGF0XG4gIC8vIERldlRvb2xzIGNhbiByZXBvcnQgYmFkIG1pbmlmaWNhdGlvbiBkdXJpbmcgaW5qZWN0aW9uLlxuICBjaGVja0RDRSgpO1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWRvbS5wcm9kdWN0aW9uLm1pbi5qcycpO1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1kb20uZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-dom/index.js\n"); + +/***/ }), + +/***/ "./node_modules/react-is/cjs/react-is.development.js": +/*!***********************************************************!*\ + !*** ./node_modules/react-is/cjs/react-is.development.js ***! + \***********************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("/** @license React v17.0.2\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its 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\n\n\nif (true) {\n (function() {\n'use strict';\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar REACT_ELEMENT_TYPE = 0xeac7;\nvar REACT_PORTAL_TYPE = 0xeaca;\nvar REACT_FRAGMENT_TYPE = 0xeacb;\nvar REACT_STRICT_MODE_TYPE = 0xeacc;\nvar REACT_PROFILER_TYPE = 0xead2;\nvar REACT_PROVIDER_TYPE = 0xeacd;\nvar REACT_CONTEXT_TYPE = 0xeace;\nvar REACT_FORWARD_REF_TYPE = 0xead0;\nvar REACT_SUSPENSE_TYPE = 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = 0xead8;\nvar REACT_MEMO_TYPE = 0xead3;\nvar REACT_LAZY_TYPE = 0xead4;\nvar REACT_BLOCK_TYPE = 0xead9;\nvar REACT_SERVER_BLOCK_TYPE = 0xeada;\nvar REACT_FUNDAMENTAL_TYPE = 0xead5;\nvar REACT_SCOPE_TYPE = 0xead7;\nvar REACT_OPAQUE_ID_TYPE = 0xeae0;\nvar REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1;\nvar REACT_OFFSCREEN_TYPE = 0xeae2;\nvar REACT_LEGACY_HIDDEN_TYPE = 0xeae3;\n\nif (typeof Symbol === 'function' && Symbol.for) {\n var symbolFor = Symbol.for;\n REACT_ELEMENT_TYPE = symbolFor('react.element');\n REACT_PORTAL_TYPE = symbolFor('react.portal');\n REACT_FRAGMENT_TYPE = symbolFor('react.fragment');\n REACT_STRICT_MODE_TYPE = symbolFor('react.strict_mode');\n REACT_PROFILER_TYPE = symbolFor('react.profiler');\n REACT_PROVIDER_TYPE = symbolFor('react.provider');\n REACT_CONTEXT_TYPE = symbolFor('react.context');\n REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref');\n REACT_SUSPENSE_TYPE = symbolFor('react.suspense');\n REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list');\n REACT_MEMO_TYPE = symbolFor('react.memo');\n REACT_LAZY_TYPE = symbolFor('react.lazy');\n REACT_BLOCK_TYPE = symbolFor('react.block');\n REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block');\n REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental');\n REACT_SCOPE_TYPE = symbolFor('react.scope');\n REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id');\n REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode');\n REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen');\n REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden');\n}\n\n// Filter certain DOM attributes (e.g. src, href) if their values are empty strings.\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || type === REACT_DEBUG_TRACING_MODE_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_LEGACY_HIDDEN_TYPE || enableScopeAPI ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_BLOCK_TYPE || type[0] === REACT_SERVER_BLOCK_TYPE) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\nvar hasWarnedAboutDeprecatedIsConcurrentMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isConcurrentMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsConcurrentMode) {\n hasWarnedAboutDeprecatedIsConcurrentMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isConcurrentMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtaXMvY2pzL3JlYWN0LWlzLmRldmVsb3BtZW50LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWE7O0FBRWIsSUFBSSxJQUFxQztBQUN6QztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUEsNEJBQTRCOztBQUU1QjtBQUNBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNEQUFzRDs7QUFFdEQ7QUFDQTtBQUNBO0FBQ0Esa0RBQWtEOztBQUVsRDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVEQUF1RDs7QUFFdkQ7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsdUJBQXVCO0FBQ3ZCLHVCQUF1QjtBQUN2QixlQUFlO0FBQ2Ysa0JBQWtCO0FBQ2xCLGdCQUFnQjtBQUNoQixZQUFZO0FBQ1osWUFBWTtBQUNaLGNBQWM7QUFDZCxnQkFBZ0I7QUFDaEIsa0JBQWtCO0FBQ2xCLGdCQUFnQjtBQUNoQixtQkFBbUI7QUFDbkIsd0JBQXdCO0FBQ3hCLHlCQUF5QjtBQUN6Qix5QkFBeUI7QUFDekIsaUJBQWlCO0FBQ2pCLG9CQUFvQjtBQUNwQixrQkFBa0I7QUFDbEIsY0FBYztBQUNkLGNBQWM7QUFDZCxnQkFBZ0I7QUFDaEIsa0JBQWtCO0FBQ2xCLG9CQUFvQjtBQUNwQixrQkFBa0I7QUFDbEIsMEJBQTBCO0FBQzFCLGNBQWM7QUFDZCxHQUFHO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWlzL2Nqcy9yZWFjdC1pcy5kZXZlbG9wbWVudC5qcz80OTZhIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBAbGljZW5zZSBSZWFjdCB2MTcuMC4yXG4gKiByZWFjdC1pcy5kZXZlbG9wbWVudC5qc1xuICpcbiAqIENvcHlyaWdodCAoYykgRmFjZWJvb2ssIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAoZnVuY3Rpb24oKSB7XG4ndXNlIHN0cmljdCc7XG5cbi8vIEFUVEVOVElPTlxuLy8gV2hlbiBhZGRpbmcgbmV3IHN5bWJvbHMgdG8gdGhpcyBmaWxlLFxuLy8gUGxlYXNlIGNvbnNpZGVyIGFsc28gYWRkaW5nIHRvICdyZWFjdC1kZXZ0b29scy1zaGFyZWQvc3JjL2JhY2tlbmQvUmVhY3RTeW1ib2xzJ1xuLy8gVGhlIFN5bWJvbCB1c2VkIHRvIHRhZyB0aGUgUmVhY3RFbGVtZW50LWxpa2UgdHlwZXMuIElmIHRoZXJlIGlzIG5vIG5hdGl2ZSBTeW1ib2xcbi8vIG5vciBwb2x5ZmlsbCwgdGhlbiBhIHBsYWluIG51bWJlciBpcyB1c2VkIGZvciBwZXJmb3JtYW5jZS5cbnZhciBSRUFDVF9FTEVNRU5UX1RZUEUgPSAweGVhYzc7XG52YXIgUkVBQ1RfUE9SVEFMX1RZUEUgPSAweGVhY2E7XG52YXIgUkVBQ1RfRlJBR01FTlRfVFlQRSA9IDB4ZWFjYjtcbnZhciBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFID0gMHhlYWNjO1xudmFyIFJFQUNUX1BST0ZJTEVSX1RZUEUgPSAweGVhZDI7XG52YXIgUkVBQ1RfUFJPVklERVJfVFlQRSA9IDB4ZWFjZDtcbnZhciBSRUFDVF9DT05URVhUX1RZUEUgPSAweGVhY2U7XG52YXIgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSA9IDB4ZWFkMDtcbnZhciBSRUFDVF9TVVNQRU5TRV9UWVBFID0gMHhlYWQxO1xudmFyIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSA9IDB4ZWFkODtcbnZhciBSRUFDVF9NRU1PX1RZUEUgPSAweGVhZDM7XG52YXIgUkVBQ1RfTEFaWV9UWVBFID0gMHhlYWQ0O1xudmFyIFJFQUNUX0JMT0NLX1RZUEUgPSAweGVhZDk7XG52YXIgUkVBQ1RfU0VSVkVSX0JMT0NLX1RZUEUgPSAweGVhZGE7XG52YXIgUkVBQ1RfRlVOREFNRU5UQUxfVFlQRSA9IDB4ZWFkNTtcbnZhciBSRUFDVF9TQ09QRV9UWVBFID0gMHhlYWQ3O1xudmFyIFJFQUNUX09QQVFVRV9JRF9UWVBFID0gMHhlYWUwO1xudmFyIFJFQUNUX0RFQlVHX1RSQUNJTkdfTU9ERV9UWVBFID0gMHhlYWUxO1xudmFyIFJFQUNUX09GRlNDUkVFTl9UWVBFID0gMHhlYWUyO1xudmFyIFJFQUNUX0xFR0FDWV9ISURERU5fVFlQRSA9IDB4ZWFlMztcblxuaWYgKHR5cGVvZiBTeW1ib2wgPT09ICdmdW5jdGlvbicgJiYgU3ltYm9sLmZvcikge1xuICB2YXIgc3ltYm9sRm9yID0gU3ltYm9sLmZvcjtcbiAgUkVBQ1RfRUxFTUVOVF9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5lbGVtZW50Jyk7XG4gIFJFQUNUX1BPUlRBTF9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5wb3J0YWwnKTtcbiAgUkVBQ1RfRlJBR01FTlRfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QuZnJhZ21lbnQnKTtcbiAgUkVBQ1RfU1RSSUNUX01PREVfVFlQRSA9IHN5bWJvbEZvcigncmVhY3Quc3RyaWN0X21vZGUnKTtcbiAgUkVBQ1RfUFJPRklMRVJfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QucHJvZmlsZXInKTtcbiAgUkVBQ1RfUFJPVklERVJfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QucHJvdmlkZXInKTtcbiAgUkVBQ1RfQ09OVEVYVF9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5jb250ZXh0Jyk7XG4gIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LmZvcndhcmRfcmVmJyk7XG4gIFJFQUNUX1NVU1BFTlNFX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LnN1c3BlbnNlJyk7XG4gIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSA9IHN5bWJvbEZvcigncmVhY3Quc3VzcGVuc2VfbGlzdCcpO1xuICBSRUFDVF9NRU1PX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0Lm1lbW8nKTtcbiAgUkVBQ1RfTEFaWV9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5sYXp5Jyk7XG4gIFJFQUNUX0JMT0NLX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LmJsb2NrJyk7XG4gIFJFQUNUX1NFUlZFUl9CTE9DS19UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5zZXJ2ZXIuYmxvY2snKTtcbiAgUkVBQ1RfRlVOREFNRU5UQUxfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QuZnVuZGFtZW50YWwnKTtcbiAgUkVBQ1RfU0NPUEVfVFlQRSA9IHN5bWJvbEZvcigncmVhY3Quc2NvcGUnKTtcbiAgUkVBQ1RfT1BBUVVFX0lEX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0Lm9wYXF1ZS5pZCcpO1xuICBSRUFDVF9ERUJVR19UUkFDSU5HX01PREVfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QuZGVidWdfdHJhY2VfbW9kZScpO1xuICBSRUFDVF9PRkZTQ1JFRU5fVFlQRSA9IHN5bWJvbEZvcigncmVhY3Qub2Zmc2NyZWVuJyk7XG4gIFJFQUNUX0xFR0FDWV9ISURERU5fVFlQRSA9IHN5bWJvbEZvcigncmVhY3QubGVnYWN5X2hpZGRlbicpO1xufVxuXG4vLyBGaWx0ZXIgY2VydGFpbiBET00gYXR0cmlidXRlcyAoZS5nLiBzcmMsIGhyZWYpIGlmIHRoZWlyIHZhbHVlcyBhcmUgZW1wdHkgc3RyaW5ncy5cblxudmFyIGVuYWJsZVNjb3BlQVBJID0gZmFsc2U7IC8vIEV4cGVyaW1lbnRhbCBDcmVhdGUgRXZlbnQgSGFuZGxlIEFQSS5cblxuZnVuY3Rpb24gaXNWYWxpZEVsZW1lbnRUeXBlKHR5cGUpIHtcbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiB0cnVlO1xuICB9IC8vIE5vdGU6IHR5cGVvZiBtaWdodCBiZSBvdGhlciB0aGFuICdzeW1ib2wnIG9yICdudW1iZXInIChlLmcuIGlmIGl0J3MgYSBwb2x5ZmlsbCkuXG5cblxuICBpZiAodHlwZSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9QUk9GSUxFUl9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX0RFQlVHX1RSQUNJTkdfTU9ERV9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgfHwgdHlwZSA9PT0gUkVBQ1RfU1VTUEVOU0VfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUgfHwgdHlwZSA9PT0gUkVBQ1RfTEVHQUNZX0hJRERFTl9UWVBFIHx8IGVuYWJsZVNjb3BlQVBJICkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnb2JqZWN0JyAmJiB0eXBlICE9PSBudWxsKSB7XG4gICAgaWYgKHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0xBWllfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9NRU1PX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfUFJPVklERVJfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9DT05URVhUX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9GVU5EQU1FTlRBTF9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0JMT0NLX1RZUEUgfHwgdHlwZVswXSA9PT0gUkVBQ1RfU0VSVkVSX0JMT0NLX1RZUEUpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gdHlwZU9mKG9iamVjdCkge1xuICBpZiAodHlwZW9mIG9iamVjdCA9PT0gJ29iamVjdCcgJiYgb2JqZWN0ICE9PSBudWxsKSB7XG4gICAgdmFyICQkdHlwZW9mID0gb2JqZWN0LiQkdHlwZW9mO1xuXG4gICAgc3dpdGNoICgkJHR5cGVvZikge1xuICAgICAgY2FzZSBSRUFDVF9FTEVNRU5UX1RZUEU6XG4gICAgICAgIHZhciB0eXBlID0gb2JqZWN0LnR5cGU7XG5cbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgY2FzZSBSRUFDVF9GUkFHTUVOVF9UWVBFOlxuICAgICAgICAgIGNhc2UgUkVBQ1RfUFJPRklMRVJfVFlQRTpcbiAgICAgICAgICBjYXNlIFJFQUNUX1NUUklDVF9NT0RFX1RZUEU6XG4gICAgICAgICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9UWVBFOlxuICAgICAgICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFOlxuICAgICAgICAgICAgcmV0dXJuIHR5cGU7XG5cbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdmFyICQkdHlwZW9mVHlwZSA9IHR5cGUgJiYgdHlwZS4kJHR5cGVvZjtcblxuICAgICAgICAgICAgc3dpdGNoICgkJHR5cGVvZlR5cGUpIHtcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9DT05URVhUX1RZUEU6XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTpcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOlxuICAgICAgICAgICAgICBjYXNlIFJFQUNUX1BST1ZJREVSX1RZUEU6XG4gICAgICAgICAgICAgICAgcmV0dXJuICQkdHlwZW9mVHlwZTtcblxuICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiAkJHR5cGVvZjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgIGNhc2UgUkVBQ1RfUE9SVEFMX1RZUEU6XG4gICAgICAgIHJldHVybiAkJHR5cGVvZjtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxudmFyIENvbnRleHRDb25zdW1lciA9IFJFQUNUX0NPTlRFWFRfVFlQRTtcbnZhciBDb250ZXh0UHJvdmlkZXIgPSBSRUFDVF9QUk9WSURFUl9UWVBFO1xudmFyIEVsZW1lbnQgPSBSRUFDVF9FTEVNRU5UX1RZUEU7XG52YXIgRm9yd2FyZFJlZiA9IFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU7XG52YXIgRnJhZ21lbnQgPSBSRUFDVF9GUkFHTUVOVF9UWVBFO1xudmFyIExhenkgPSBSRUFDVF9MQVpZX1RZUEU7XG52YXIgTWVtbyA9IFJFQUNUX01FTU9fVFlQRTtcbnZhciBQb3J0YWwgPSBSRUFDVF9QT1JUQUxfVFlQRTtcbnZhciBQcm9maWxlciA9IFJFQUNUX1BST0ZJTEVSX1RZUEU7XG52YXIgU3RyaWN0TW9kZSA9IFJFQUNUX1NUUklDVF9NT0RFX1RZUEU7XG52YXIgU3VzcGVuc2UgPSBSRUFDVF9TVVNQRU5TRV9UWVBFO1xudmFyIGhhc1dhcm5lZEFib3V0RGVwcmVjYXRlZElzQXN5bmNNb2RlID0gZmFsc2U7XG52YXIgaGFzV2FybmVkQWJvdXREZXByZWNhdGVkSXNDb25jdXJyZW50TW9kZSA9IGZhbHNlOyAvLyBBc3luY01vZGUgc2hvdWxkIGJlIGRlcHJlY2F0ZWRcblxuZnVuY3Rpb24gaXNBc3luY01vZGUob2JqZWN0KSB7XG4gIHtcbiAgICBpZiAoIWhhc1dhcm5lZEFib3V0RGVwcmVjYXRlZElzQXN5bmNNb2RlKSB7XG4gICAgICBoYXNXYXJuZWRBYm91dERlcHJlY2F0ZWRJc0FzeW5jTW9kZSA9IHRydWU7IC8vIFVzaW5nIGNvbnNvbGVbJ3dhcm4nXSB0byBldmFkZSBCYWJlbCBhbmQgRVNMaW50XG5cbiAgICAgIGNvbnNvbGVbJ3dhcm4nXSgnVGhlIFJlYWN0SXMuaXNBc3luY01vZGUoKSBhbGlhcyBoYXMgYmVlbiBkZXByZWNhdGVkLCAnICsgJ2FuZCB3aWxsIGJlIHJlbW92ZWQgaW4gUmVhY3QgMTgrLicpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cbmZ1bmN0aW9uIGlzQ29uY3VycmVudE1vZGUob2JqZWN0KSB7XG4gIHtcbiAgICBpZiAoIWhhc1dhcm5lZEFib3V0RGVwcmVjYXRlZElzQ29uY3VycmVudE1vZGUpIHtcbiAgICAgIGhhc1dhcm5lZEFib3V0RGVwcmVjYXRlZElzQ29uY3VycmVudE1vZGUgPSB0cnVlOyAvLyBVc2luZyBjb25zb2xlWyd3YXJuJ10gdG8gZXZhZGUgQmFiZWwgYW5kIEVTTGludFxuXG4gICAgICBjb25zb2xlWyd3YXJuJ10oJ1RoZSBSZWFjdElzLmlzQ29uY3VycmVudE1vZGUoKSBhbGlhcyBoYXMgYmVlbiBkZXByZWNhdGVkLCAnICsgJ2FuZCB3aWxsIGJlIHJlbW92ZWQgaW4gUmVhY3QgMTgrLicpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cbmZ1bmN0aW9uIGlzQ29udGV4dENvbnN1bWVyKG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX0NPTlRFWFRfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzQ29udGV4dFByb3ZpZGVyKG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX1BST1ZJREVSX1RZUEU7XG59XG5mdW5jdGlvbiBpc0VsZW1lbnQob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlb2Ygb2JqZWN0ID09PSAnb2JqZWN0JyAmJiBvYmplY3QgIT09IG51bGwgJiYgb2JqZWN0LiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEU7XG59XG5mdW5jdGlvbiBpc0ZvcndhcmRSZWYob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzRnJhZ21lbnQob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzTGF6eShvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9MQVpZX1RZUEU7XG59XG5mdW5jdGlvbiBpc01lbW8ob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfTUVNT19UWVBFO1xufVxuZnVuY3Rpb24gaXNQb3J0YWwob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfUE9SVEFMX1RZUEU7XG59XG5mdW5jdGlvbiBpc1Byb2ZpbGVyKG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX1BST0ZJTEVSX1RZUEU7XG59XG5mdW5jdGlvbiBpc1N0cmljdE1vZGUob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfU1RSSUNUX01PREVfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzU3VzcGVuc2Uob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfU1VTUEVOU0VfVFlQRTtcbn1cblxuZXhwb3J0cy5Db250ZXh0Q29uc3VtZXIgPSBDb250ZXh0Q29uc3VtZXI7XG5leHBvcnRzLkNvbnRleHRQcm92aWRlciA9IENvbnRleHRQcm92aWRlcjtcbmV4cG9ydHMuRWxlbWVudCA9IEVsZW1lbnQ7XG5leHBvcnRzLkZvcndhcmRSZWYgPSBGb3J3YXJkUmVmO1xuZXhwb3J0cy5GcmFnbWVudCA9IEZyYWdtZW50O1xuZXhwb3J0cy5MYXp5ID0gTGF6eTtcbmV4cG9ydHMuTWVtbyA9IE1lbW87XG5leHBvcnRzLlBvcnRhbCA9IFBvcnRhbDtcbmV4cG9ydHMuUHJvZmlsZXIgPSBQcm9maWxlcjtcbmV4cG9ydHMuU3RyaWN0TW9kZSA9IFN0cmljdE1vZGU7XG5leHBvcnRzLlN1c3BlbnNlID0gU3VzcGVuc2U7XG5leHBvcnRzLmlzQXN5bmNNb2RlID0gaXNBc3luY01vZGU7XG5leHBvcnRzLmlzQ29uY3VycmVudE1vZGUgPSBpc0NvbmN1cnJlbnRNb2RlO1xuZXhwb3J0cy5pc0NvbnRleHRDb25zdW1lciA9IGlzQ29udGV4dENvbnN1bWVyO1xuZXhwb3J0cy5pc0NvbnRleHRQcm92aWRlciA9IGlzQ29udGV4dFByb3ZpZGVyO1xuZXhwb3J0cy5pc0VsZW1lbnQgPSBpc0VsZW1lbnQ7XG5leHBvcnRzLmlzRm9yd2FyZFJlZiA9IGlzRm9yd2FyZFJlZjtcbmV4cG9ydHMuaXNGcmFnbWVudCA9IGlzRnJhZ21lbnQ7XG5leHBvcnRzLmlzTGF6eSA9IGlzTGF6eTtcbmV4cG9ydHMuaXNNZW1vID0gaXNNZW1vO1xuZXhwb3J0cy5pc1BvcnRhbCA9IGlzUG9ydGFsO1xuZXhwb3J0cy5pc1Byb2ZpbGVyID0gaXNQcm9maWxlcjtcbmV4cG9ydHMuaXNTdHJpY3RNb2RlID0gaXNTdHJpY3RNb2RlO1xuZXhwb3J0cy5pc1N1c3BlbnNlID0gaXNTdXNwZW5zZTtcbmV4cG9ydHMuaXNWYWxpZEVsZW1lbnRUeXBlID0gaXNWYWxpZEVsZW1lbnRUeXBlO1xuZXhwb3J0cy50eXBlT2YgPSB0eXBlT2Y7XG4gIH0pKCk7XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-is/cjs/react-is.development.js\n"); + +/***/ }), + +/***/ "./node_modules/react-is/index.js": +/*!****************************************!*\ + !*** ./node_modules/react-is/index.js ***! + \****************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ \"./node_modules/react-is/cjs/react-is.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtaXMvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsSUFBSSxLQUFxQyxFQUFFLEVBRTFDLENBQUM7QUFDRixFQUFFLGdJQUF5RDtBQUMzRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmVhY3QtaXMvaW5kZXguanM/YjMxMyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtaXMucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtaXMuZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-is/index.js\n"); + +/***/ }), + +/***/ "./node_modules/react/cjs/react.development.js": +/*!*****************************************************!*\ + !*** ./node_modules/react/cjs/react.development.js ***! + \*****************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("/** @license React v17.0.2\n * react.development.js\n *\n * Copyright (c) Facebook, Inc. and its 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\n\n\nif (true) {\n (function() {\n'use strict';\n\nvar _assign = __webpack_require__(/*! object-assign */ \"./node_modules/next/dist/build/polyfills/object-assign.js\");\n\n// TODO: this is special because it gets imported during build.\nvar ReactVersion = '17.0.2';\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar REACT_ELEMENT_TYPE = 0xeac7;\nvar REACT_PORTAL_TYPE = 0xeaca;\nexports.Fragment = 0xeacb;\nexports.StrictMode = 0xeacc;\nexports.Profiler = 0xead2;\nvar REACT_PROVIDER_TYPE = 0xeacd;\nvar REACT_CONTEXT_TYPE = 0xeace;\nvar REACT_FORWARD_REF_TYPE = 0xead0;\nexports.Suspense = 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = 0xead8;\nvar REACT_MEMO_TYPE = 0xead3;\nvar REACT_LAZY_TYPE = 0xead4;\nvar REACT_BLOCK_TYPE = 0xead9;\nvar REACT_SERVER_BLOCK_TYPE = 0xeada;\nvar REACT_FUNDAMENTAL_TYPE = 0xead5;\nvar REACT_SCOPE_TYPE = 0xead7;\nvar REACT_OPAQUE_ID_TYPE = 0xeae0;\nvar REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1;\nvar REACT_OFFSCREEN_TYPE = 0xeae2;\nvar REACT_LEGACY_HIDDEN_TYPE = 0xeae3;\n\nif (typeof Symbol === 'function' && Symbol.for) {\n var symbolFor = Symbol.for;\n REACT_ELEMENT_TYPE = symbolFor('react.element');\n REACT_PORTAL_TYPE = symbolFor('react.portal');\n exports.Fragment = symbolFor('react.fragment');\n exports.StrictMode = symbolFor('react.strict_mode');\n exports.Profiler = symbolFor('react.profiler');\n REACT_PROVIDER_TYPE = symbolFor('react.provider');\n REACT_CONTEXT_TYPE = symbolFor('react.context');\n REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref');\n exports.Suspense = symbolFor('react.suspense');\n REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list');\n REACT_MEMO_TYPE = symbolFor('react.memo');\n REACT_LAZY_TYPE = symbolFor('react.lazy');\n REACT_BLOCK_TYPE = symbolFor('react.block');\n REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block');\n REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental');\n REACT_SCOPE_TYPE = symbolFor('react.scope');\n REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id');\n REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode');\n REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen');\n REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden');\n}\n\nvar MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\n return null;\n }\n\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n\n return null;\n}\n\n/**\n * Keeps track of the current dispatcher.\n */\nvar ReactCurrentDispatcher = {\n /**\n * @internal\n * @type {ReactComponent}\n */\n current: null\n};\n\n/**\n * Keeps track of the current batch's configuration such as how long an update\n * should suspend for if it needs to.\n */\nvar ReactCurrentBatchConfig = {\n transition: 0\n};\n\n/**\n * Keeps track of the current owner.\n *\n * The current owner is the component who should own any components that are\n * currently being constructed.\n */\nvar ReactCurrentOwner = {\n /**\n * @internal\n * @type {ReactComponent}\n */\n current: null\n};\n\nvar ReactDebugCurrentFrame = {};\nvar currentExtraStackFrame = null;\nfunction setExtraStackFrame(stack) {\n {\n currentExtraStackFrame = stack;\n }\n}\n\n{\n ReactDebugCurrentFrame.setExtraStackFrame = function (stack) {\n {\n currentExtraStackFrame = stack;\n }\n }; // Stack implementation injected by the current renderer.\n\n\n ReactDebugCurrentFrame.getCurrentStack = null;\n\n ReactDebugCurrentFrame.getStackAddendum = function () {\n var stack = ''; // Add an extra top frame while an element is being validated\n\n if (currentExtraStackFrame) {\n stack += currentExtraStackFrame;\n } // Delegate to the injected renderer-specific implementation\n\n\n var impl = ReactDebugCurrentFrame.getCurrentStack;\n\n if (impl) {\n stack += impl() || '';\n }\n\n return stack;\n };\n}\n\n/**\n * Used by act() to track whether you're inside an act() scope.\n */\nvar IsSomeRendererActing = {\n current: false\n};\n\nvar ReactSharedInternals = {\n ReactCurrentDispatcher: ReactCurrentDispatcher,\n ReactCurrentBatchConfig: ReactCurrentBatchConfig,\n ReactCurrentOwner: ReactCurrentOwner,\n IsSomeRendererActing: IsSomeRendererActing,\n // Used by renderers to avoid bundling object-assign twice in UMD bundles:\n assign: _assign\n};\n\n{\n ReactSharedInternals.ReactDebugCurrentFrame = ReactDebugCurrentFrame;\n}\n\n// by calls to these methods by a Babel plugin.\n//\n// In PROD (or in packages without access to React internals),\n// they are left as they are instead.\n\nfunction warn(format) {\n {\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\n printWarning('warn', format, args);\n }\n}\nfunction error(format) {\n {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n printWarning('error', format, args);\n }\n}\n\nfunction printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n }\n\n var argsWithFormat = args.map(function (item) {\n return '' + item;\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n}\n\nvar didWarnStateUpdateForUnmountedComponent = {};\n\nfunction warnNoop(publicInstance, callerName) {\n {\n var _constructor = publicInstance.constructor;\n var componentName = _constructor && (_constructor.displayName || _constructor.name) || 'ReactClass';\n var warningKey = componentName + \".\" + callerName;\n\n if (didWarnStateUpdateForUnmountedComponent[warningKey]) {\n return;\n }\n\n error(\"Can't call %s on a component that is not yet mounted. \" + 'This is a no-op, but it might indicate a bug in your application. ' + 'Instead, assign to `this.state` directly or define a `state = {};` ' + 'class property with the desired state in the %s component.', callerName, componentName);\n\n didWarnStateUpdateForUnmountedComponent[warningKey] = true;\n }\n}\n/**\n * This is the abstract API for an update queue.\n */\n\n\nvar ReactNoopUpdateQueue = {\n /**\n * Checks whether or not this composite component is mounted.\n * @param {ReactClass} publicInstance The instance we want to test.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function (publicInstance) {\n return false;\n },\n\n /**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {?function} callback Called after component is updated.\n * @param {?string} callerName name of the calling function in the public API.\n * @internal\n */\n enqueueForceUpdate: function (publicInstance, callback, callerName) {\n warnNoop(publicInstance, 'forceUpdate');\n },\n\n /**\n * Replaces all of the state. Always use this or `setState` to mutate state.\n * You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} completeState Next state.\n * @param {?function} callback Called after component is updated.\n * @param {?string} callerName name of the calling function in the public API.\n * @internal\n */\n enqueueReplaceState: function (publicInstance, completeState, callback, callerName) {\n warnNoop(publicInstance, 'replaceState');\n },\n\n /**\n * Sets a subset of the state. This only exists because _pendingState is\n * internal. This provides a merging strategy that is not available to deep\n * properties which is confusing. TODO: Expose pendingState or don't use it\n * during the merge.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} partialState Next partial state to be merged with state.\n * @param {?function} callback Called after component is updated.\n * @param {?string} Name of the calling function in the public API.\n * @internal\n */\n enqueueSetState: function (publicInstance, partialState, callback, callerName) {\n warnNoop(publicInstance, 'setState');\n }\n};\n\nvar emptyObject = {};\n\n{\n Object.freeze(emptyObject);\n}\n/**\n * Base class helpers for the updating state of a component.\n */\n\n\nfunction Component(props, context, updater) {\n this.props = props;\n this.context = context; // If a component has string refs, we will assign a different object later.\n\n this.refs = emptyObject; // We initialize the default updater but the real one gets injected by the\n // renderer.\n\n this.updater = updater || ReactNoopUpdateQueue;\n}\n\nComponent.prototype.isReactComponent = {};\n/**\n * Sets a subset of the state. Always use this to mutate\n * state. You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * There is no guarantee that calls to `setState` will run synchronously,\n * as they may eventually be batched together. You can provide an optional\n * callback that will be executed when the call to setState is actually\n * completed.\n *\n * When a function is provided to setState, it will be called at some point in\n * the future (not synchronously). It will be called with the up to date\n * component arguments (state, props, context). These values can be different\n * from this.* because your function may be called after receiveProps but before\n * shouldComponentUpdate, and this new state, props, and context will not yet be\n * assigned to this.\n *\n * @param {object|function} partialState Next partial state or function to\n * produce next partial state to be merged with current state.\n * @param {?function} callback Called after state is updated.\n * @final\n * @protected\n */\n\nComponent.prototype.setState = function (partialState, callback) {\n if (!(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null)) {\n {\n throw Error( \"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\" );\n }\n }\n\n this.updater.enqueueSetState(this, partialState, callback, 'setState');\n};\n/**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {?function} callback Called after update is complete.\n * @final\n * @protected\n */\n\n\nComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, 'forceUpdate');\n};\n/**\n * Deprecated APIs. These APIs used to exist on classic React classes but since\n * we would like to deprecate them, we're not going to move them over to this\n * modern base class. Instead, we define a getter that warns if it's accessed.\n */\n\n\n{\n var deprecatedAPIs = {\n isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],\n replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).']\n };\n\n var defineDeprecationWarning = function (methodName, info) {\n Object.defineProperty(Component.prototype, methodName, {\n get: function () {\n warn('%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]);\n\n return undefined;\n }\n });\n };\n\n for (var fnName in deprecatedAPIs) {\n if (deprecatedAPIs.hasOwnProperty(fnName)) {\n defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n }\n }\n}\n\nfunction ComponentDummy() {}\n\nComponentDummy.prototype = Component.prototype;\n/**\n * Convenience component with default shallow equality check for sCU.\n */\n\nfunction PureComponent(props, context, updater) {\n this.props = props;\n this.context = context; // If a component has string refs, we will assign a different object later.\n\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\n\nvar pureComponentPrototype = PureComponent.prototype = new ComponentDummy();\npureComponentPrototype.constructor = PureComponent; // Avoid an extra prototype jump for these methods.\n\n_assign(pureComponentPrototype, Component.prototype);\n\npureComponentPrototype.isPureReactComponent = true;\n\n// an immutable object with a single mutable value\nfunction createRef() {\n var refObject = {\n current: null\n };\n\n {\n Object.seal(refObject);\n }\n\n return refObject;\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var functionName = innerType.displayName || innerType.name || '';\n return outerType.displayName || (functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName);\n}\n\nfunction getContextName(type) {\n return type.displayName || 'Context';\n}\n\nfunction getComponentName(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n\n {\n if (typeof type.tag === 'number') {\n error('Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.');\n }\n }\n\n if (typeof type === 'function') {\n return type.displayName || type.name || null;\n }\n\n if (typeof type === 'string') {\n return type;\n }\n\n switch (type) {\n case exports.Fragment:\n return 'Fragment';\n\n case REACT_PORTAL_TYPE:\n return 'Portal';\n\n case exports.Profiler:\n return 'Profiler';\n\n case exports.StrictMode:\n return 'StrictMode';\n\n case exports.Suspense:\n return 'Suspense';\n\n case REACT_SUSPENSE_LIST_TYPE:\n return 'SuspenseList';\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + '.Consumer';\n\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + '.Provider';\n\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, 'ForwardRef');\n\n case REACT_MEMO_TYPE:\n return getComponentName(type.type);\n\n case REACT_BLOCK_TYPE:\n return getComponentName(type._render);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n return getComponentName(init(payload));\n } catch (x) {\n return null;\n }\n }\n }\n }\n\n return null;\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n};\nvar specialPropKeyWarningShown, specialPropRefWarningShown, didWarnAboutStringRefs;\n\n{\n didWarnAboutStringRefs = {};\n}\n\nfunction hasValidRef(config) {\n {\n if (hasOwnProperty.call(config, 'ref')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n {\n if (hasOwnProperty.call(config, 'key')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.key !== undefined;\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n var warnAboutAccessingKey = function () {\n {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n\n error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n }\n };\n\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n var warnAboutAccessingRef = function () {\n {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n\n error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n }\n };\n\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n}\n\nfunction warnIfStringRefCannotBeAutoConverted(config) {\n {\n if (typeof config.ref === 'string' && ReactCurrentOwner.current && config.__self && ReactCurrentOwner.current.stateNode !== config.__self) {\n var componentName = getComponentName(ReactCurrentOwner.current.type);\n\n if (!didWarnAboutStringRefs[componentName]) {\n error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', componentName, config.ref);\n\n didWarnAboutStringRefs[componentName] = true;\n }\n }\n }\n}\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */\n\n\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allows us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n // Record the component responsible for creating this element.\n _owner: owner\n };\n\n {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n\n Object.defineProperty(element._store, 'validated', {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n }); // self and source are DEV only properties.\n\n Object.defineProperty(element, '_self', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n }); // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n\n Object.defineProperty(element, '_source', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n\n return element;\n};\n/**\n * Create and return a new ReactElement of the given type.\n * See https://reactjs.org/docs/react-api.html#createelement\n */\n\nfunction createElement(type, config, children) {\n var propName; // Reserved names are extracted\n\n var props = {};\n var key = null;\n var ref = null;\n var self = null;\n var source = null;\n\n if (config != null) {\n if (hasValidRef(config)) {\n ref = config.ref;\n\n {\n warnIfStringRefCannotBeAutoConverted(config);\n }\n }\n\n if (hasValidKey(config)) {\n key = '' + config.key;\n }\n\n self = config.__self === undefined ? null : config.__self;\n source = config.__source === undefined ? null : config.__source; // Remaining properties are added to a new props object\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n }\n } // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n\n\n var childrenLength = arguments.length - 2;\n\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 2];\n }\n\n {\n if (Object.freeze) {\n Object.freeze(childArray);\n }\n }\n\n props.children = childArray;\n } // Resolve default props\n\n\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n\n {\n if (key || ref) {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n }\n\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n}\nfunction cloneAndReplaceKey(oldElement, newKey) {\n var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props);\n return newElement;\n}\n/**\n * Clone and return a new ReactElement using element as the starting point.\n * See https://reactjs.org/docs/react-api.html#cloneelement\n */\n\nfunction cloneElement(element, config, children) {\n if (!!(element === null || element === undefined)) {\n {\n throw Error( \"React.cloneElement(...): The argument must be a React element, but you passed \" + element + \".\" );\n }\n }\n\n var propName; // Original props are copied\n\n var props = _assign({}, element.props); // Reserved names are extracted\n\n\n var key = element.key;\n var ref = element.ref; // Self is preserved since the owner is preserved.\n\n var self = element._self; // Source is preserved since cloneElement is unlikely to be targeted by a\n // transpiler, and the original source is probably a better indicator of the\n // true owner.\n\n var source = element._source; // Owner will be preserved, unless ref is overridden\n\n var owner = element._owner;\n\n if (config != null) {\n if (hasValidRef(config)) {\n // Silently steal the ref from the parent.\n ref = config.ref;\n owner = ReactCurrentOwner.current;\n }\n\n if (hasValidKey(config)) {\n key = '' + config.key;\n } // Remaining properties override existing props\n\n\n var defaultProps;\n\n if (element.type && element.type.defaultProps) {\n defaultProps = element.type.defaultProps;\n }\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n if (config[propName] === undefined && defaultProps !== undefined) {\n // Resolve default props\n props[propName] = defaultProps[propName];\n } else {\n props[propName] = config[propName];\n }\n }\n }\n } // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n\n\n var childrenLength = arguments.length - 2;\n\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 2];\n }\n\n props.children = childArray;\n }\n\n return ReactElement(element.type, key, ref, self, source, owner, props);\n}\n/**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */\n\nfunction isValidElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\n\nvar SEPARATOR = '.';\nvar SUBSEPARATOR = ':';\n/**\n * Escape and wrap key so it is safe to use as a reactid\n *\n * @param {string} key to be escaped.\n * @return {string} the escaped key.\n */\n\nfunction escape(key) {\n var escapeRegex = /[=:]/g;\n var escaperLookup = {\n '=': '=0',\n ':': '=2'\n };\n var escapedString = key.replace(escapeRegex, function (match) {\n return escaperLookup[match];\n });\n return '$' + escapedString;\n}\n/**\n * TODO: Test that a single child and an array with one item have the same key\n * pattern.\n */\n\n\nvar didWarnAboutMaps = false;\nvar userProvidedKeyEscapeRegex = /\\/+/g;\n\nfunction escapeUserProvidedKey(text) {\n return text.replace(userProvidedKeyEscapeRegex, '$&/');\n}\n/**\n * Generate a key string that identifies a element within a set.\n *\n * @param {*} element A element that could contain a manual key.\n * @param {number} index Index that is used if a manual key is not provided.\n * @return {string}\n */\n\n\nfunction getElementKey(element, index) {\n // Do some typechecking here since we call this blindly. We want to ensure\n // that we don't block potential future ES APIs.\n if (typeof element === 'object' && element !== null && element.key != null) {\n // Explicit key\n return escape('' + element.key);\n } // Implicit key determined by the index in the set\n\n\n return index.toString(36);\n}\n\nfunction mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n\n if (type === 'undefined' || type === 'boolean') {\n // All of the above are perceived as null.\n children = null;\n }\n\n var invokeCallback = false;\n\n if (children === null) {\n invokeCallback = true;\n } else {\n switch (type) {\n case 'string':\n case 'number':\n invokeCallback = true;\n break;\n\n case 'object':\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = true;\n }\n\n }\n }\n\n if (invokeCallback) {\n var _child = children;\n var mappedChild = callback(_child); // If it's the only child, treat the name as if it was wrapped in an array\n // so that it's consistent if the number of children grows:\n\n var childKey = nameSoFar === '' ? SEPARATOR + getElementKey(_child, 0) : nameSoFar;\n\n if (Array.isArray(mappedChild)) {\n var escapedChildKey = '';\n\n if (childKey != null) {\n escapedChildKey = escapeUserProvidedKey(childKey) + '/';\n }\n\n mapIntoArray(mappedChild, array, escapedChildKey, '', function (c) {\n return c;\n });\n } else if (mappedChild != null) {\n if (isValidElement(mappedChild)) {\n mappedChild = cloneAndReplaceKey(mappedChild, // Keep both the (mapped) and old keys if they differ, just as\n // traverseAllChildren used to do for objects as children\n escapedPrefix + ( // $FlowFixMe Flow incorrectly thinks React.Portal doesn't have a key\n mappedChild.key && (!_child || _child.key !== mappedChild.key) ? // $FlowFixMe Flow incorrectly thinks existing element's key can be a number\n escapeUserProvidedKey('' + mappedChild.key) + '/' : '') + childKey);\n }\n\n array.push(mappedChild);\n }\n\n return 1;\n }\n\n var child;\n var nextName;\n var subtreeCount = 0; // Count of children found in the current subtree.\n\n var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR;\n\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n nextName = nextNamePrefix + getElementKey(child, i);\n subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback);\n }\n } else {\n var iteratorFn = getIteratorFn(children);\n\n if (typeof iteratorFn === 'function') {\n var iterableChildren = children;\n\n {\n // Warn about using Maps as children\n if (iteratorFn === iterableChildren.entries) {\n if (!didWarnAboutMaps) {\n warn('Using Maps as children is not supported. ' + 'Use an array of keyed ReactElements instead.');\n }\n\n didWarnAboutMaps = true;\n }\n }\n\n var iterator = iteratorFn.call(iterableChildren);\n var step;\n var ii = 0;\n\n while (!(step = iterator.next()).done) {\n child = step.value;\n nextName = nextNamePrefix + getElementKey(child, ii++);\n subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback);\n }\n } else if (type === 'object') {\n var childrenString = '' + children;\n\n {\n {\n throw Error( \"Objects are not valid as a React child (found: \" + (childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString) + \"). If you meant to render a collection of children, use an array instead.\" );\n }\n }\n }\n }\n\n return subtreeCount;\n}\n\n/**\n * Maps children that are typically specified as `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenmap\n *\n * The provided mapFunction(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} func The map function.\n * @param {*} context Context for mapFunction.\n * @return {object} Object containing the ordered map of results.\n */\nfunction mapChildren(children, func, context) {\n if (children == null) {\n return children;\n }\n\n var result = [];\n var count = 0;\n mapIntoArray(children, result, '', '', function (child) {\n return func.call(context, child, count++);\n });\n return result;\n}\n/**\n * Count the number of children that are typically specified as\n * `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrencount\n *\n * @param {?*} children Children tree container.\n * @return {number} The number of children.\n */\n\n\nfunction countChildren(children) {\n var n = 0;\n mapChildren(children, function () {\n n++; // Don't return anything\n });\n return n;\n}\n\n/**\n * Iterates through children that are typically specified as `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenforeach\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} forEachFunc\n * @param {*} forEachContext Context for forEachContext.\n */\nfunction forEachChildren(children, forEachFunc, forEachContext) {\n mapChildren(children, function () {\n forEachFunc.apply(this, arguments); // Don't return anything.\n }, forEachContext);\n}\n/**\n * Flatten a children object (typically specified as `props.children`) and\n * return an array with appropriately re-keyed children.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrentoarray\n */\n\n\nfunction toArray(children) {\n return mapChildren(children, function (child) {\n return child;\n }) || [];\n}\n/**\n * Returns the first child in a collection of children and verifies that there\n * is only one child in the collection.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenonly\n *\n * The current implementation of this function assumes that a single child gets\n * passed without a wrapper, but the purpose of this helper function is to\n * abstract away the particular structure of children.\n *\n * @param {?object} children Child collection structure.\n * @return {ReactElement} The first and only `ReactElement` contained in the\n * structure.\n */\n\n\nfunction onlyChild(children) {\n if (!isValidElement(children)) {\n {\n throw Error( \"React.Children.only expected to receive a single React element child.\" );\n }\n }\n\n return children;\n}\n\nfunction createContext(defaultValue, calculateChangedBits) {\n if (calculateChangedBits === undefined) {\n calculateChangedBits = null;\n } else {\n {\n if (calculateChangedBits !== null && typeof calculateChangedBits !== 'function') {\n error('createContext: Expected the optional second argument to be a ' + 'function. Instead received: %s', calculateChangedBits);\n }\n }\n }\n\n var context = {\n $$typeof: REACT_CONTEXT_TYPE,\n _calculateChangedBits: calculateChangedBits,\n // As a workaround to support multiple concurrent renderers, we categorize\n // some renderers as primary and others as secondary. We only expect\n // there to be two concurrent renderers at most: React Native (primary) and\n // Fabric (secondary); React DOM (primary) and React ART (secondary).\n // Secondary renderers store their context values on separate fields.\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n // Used to track how many concurrent renderers this context currently\n // supports within in a single renderer. Such as parallel server rendering.\n _threadCount: 0,\n // These are circular\n Provider: null,\n Consumer: null\n };\n context.Provider = {\n $$typeof: REACT_PROVIDER_TYPE,\n _context: context\n };\n var hasWarnedAboutUsingNestedContextConsumers = false;\n var hasWarnedAboutUsingConsumerProvider = false;\n var hasWarnedAboutDisplayNameOnConsumer = false;\n\n {\n // A separate object, but proxies back to the original context object for\n // backwards compatibility. It has a different $$typeof, so we can properly\n // warn for the incorrect usage of Context as a Consumer.\n var Consumer = {\n $$typeof: REACT_CONTEXT_TYPE,\n _context: context,\n _calculateChangedBits: context._calculateChangedBits\n }; // $FlowFixMe: Flow complains about not setting a value, which is intentional here\n\n Object.defineProperties(Consumer, {\n Provider: {\n get: function () {\n if (!hasWarnedAboutUsingConsumerProvider) {\n hasWarnedAboutUsingConsumerProvider = true;\n\n error('Rendering <Context.Consumer.Provider> is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Provider> instead?');\n }\n\n return context.Provider;\n },\n set: function (_Provider) {\n context.Provider = _Provider;\n }\n },\n _currentValue: {\n get: function () {\n return context._currentValue;\n },\n set: function (_currentValue) {\n context._currentValue = _currentValue;\n }\n },\n _currentValue2: {\n get: function () {\n return context._currentValue2;\n },\n set: function (_currentValue2) {\n context._currentValue2 = _currentValue2;\n }\n },\n _threadCount: {\n get: function () {\n return context._threadCount;\n },\n set: function (_threadCount) {\n context._threadCount = _threadCount;\n }\n },\n Consumer: {\n get: function () {\n if (!hasWarnedAboutUsingNestedContextConsumers) {\n hasWarnedAboutUsingNestedContextConsumers = true;\n\n error('Rendering <Context.Consumer.Consumer> is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Consumer> instead?');\n }\n\n return context.Consumer;\n }\n },\n displayName: {\n get: function () {\n return context.displayName;\n },\n set: function (displayName) {\n if (!hasWarnedAboutDisplayNameOnConsumer) {\n warn('Setting `displayName` on Context.Consumer has no effect. ' + \"You should set it directly on the context with Context.displayName = '%s'.\", displayName);\n\n hasWarnedAboutDisplayNameOnConsumer = true;\n }\n }\n }\n }); // $FlowFixMe: Flow complains about missing properties because it doesn't understand defineProperty\n\n context.Consumer = Consumer;\n }\n\n {\n context._currentRenderer = null;\n context._currentRenderer2 = null;\n }\n\n return context;\n}\n\nvar Uninitialized = -1;\nvar Pending = 0;\nvar Resolved = 1;\nvar Rejected = 2;\n\nfunction lazyInitializer(payload) {\n if (payload._status === Uninitialized) {\n var ctor = payload._result;\n var thenable = ctor(); // Transition to the next state.\n\n var pending = payload;\n pending._status = Pending;\n pending._result = thenable;\n thenable.then(function (moduleObject) {\n if (payload._status === Pending) {\n var defaultExport = moduleObject.default;\n\n {\n if (defaultExport === undefined) {\n error('lazy: Expected the result of a dynamic import() call. ' + 'Instead received: %s\\n\\nYour code should look like: \\n ' + // Break up imports to avoid accidentally parsing them as dependencies.\n 'const MyComponent = lazy(() => imp' + \"ort('./MyComponent'))\", moduleObject);\n }\n } // Transition to the next state.\n\n\n var resolved = payload;\n resolved._status = Resolved;\n resolved._result = defaultExport;\n }\n }, function (error) {\n if (payload._status === Pending) {\n // Transition to the next state.\n var rejected = payload;\n rejected._status = Rejected;\n rejected._result = error;\n }\n });\n }\n\n if (payload._status === Resolved) {\n return payload._result;\n } else {\n throw payload._result;\n }\n}\n\nfunction lazy(ctor) {\n var payload = {\n // We use these fields to store the result.\n _status: -1,\n _result: ctor\n };\n var lazyType = {\n $$typeof: REACT_LAZY_TYPE,\n _payload: payload,\n _init: lazyInitializer\n };\n\n {\n // In production, this would just set it on the object.\n var defaultProps;\n var propTypes; // $FlowFixMe\n\n Object.defineProperties(lazyType, {\n defaultProps: {\n configurable: true,\n get: function () {\n return defaultProps;\n },\n set: function (newDefaultProps) {\n error('React.lazy(...): It is not supported to assign `defaultProps` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.');\n\n defaultProps = newDefaultProps; // Match production behavior more closely:\n // $FlowFixMe\n\n Object.defineProperty(lazyType, 'defaultProps', {\n enumerable: true\n });\n }\n },\n propTypes: {\n configurable: true,\n get: function () {\n return propTypes;\n },\n set: function (newPropTypes) {\n error('React.lazy(...): It is not supported to assign `propTypes` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.');\n\n propTypes = newPropTypes; // Match production behavior more closely:\n // $FlowFixMe\n\n Object.defineProperty(lazyType, 'propTypes', {\n enumerable: true\n });\n }\n }\n });\n }\n\n return lazyType;\n}\n\nfunction forwardRef(render) {\n {\n if (render != null && render.$$typeof === REACT_MEMO_TYPE) {\n error('forwardRef requires a render function but received a `memo` ' + 'component. Instead of forwardRef(memo(...)), use ' + 'memo(forwardRef(...)).');\n } else if (typeof render !== 'function') {\n error('forwardRef requires a render function but was given %s.', render === null ? 'null' : typeof render);\n } else {\n if (render.length !== 0 && render.length !== 2) {\n error('forwardRef render functions accept exactly two parameters: props and ref. %s', render.length === 1 ? 'Did you forget to use the ref parameter?' : 'Any additional parameter will be undefined.');\n }\n }\n\n if (render != null) {\n if (render.defaultProps != null || render.propTypes != null) {\n error('forwardRef render functions do not support propTypes or defaultProps. ' + 'Did you accidentally pass a React component?');\n }\n }\n }\n\n var elementType = {\n $$typeof: REACT_FORWARD_REF_TYPE,\n render: render\n };\n\n {\n var ownName;\n Object.defineProperty(elementType, 'displayName', {\n enumerable: false,\n configurable: true,\n get: function () {\n return ownName;\n },\n set: function (name) {\n ownName = name;\n\n if (render.displayName == null) {\n render.displayName = name;\n }\n }\n });\n }\n\n return elementType;\n}\n\n// Filter certain DOM attributes (e.g. src, href) if their values are empty strings.\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === exports.Fragment || type === exports.Profiler || type === REACT_DEBUG_TRACING_MODE_TYPE || type === exports.StrictMode || type === exports.Suspense || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_LEGACY_HIDDEN_TYPE || enableScopeAPI ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_BLOCK_TYPE || type[0] === REACT_SERVER_BLOCK_TYPE) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction memo(type, compare) {\n {\n if (!isValidElementType(type)) {\n error('memo: The first argument must be a component. Instead ' + 'received: %s', type === null ? 'null' : typeof type);\n }\n }\n\n var elementType = {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: compare === undefined ? null : compare\n };\n\n {\n var ownName;\n Object.defineProperty(elementType, 'displayName', {\n enumerable: false,\n configurable: true,\n get: function () {\n return ownName;\n },\n set: function (name) {\n ownName = name;\n\n if (type.displayName == null) {\n type.displayName = name;\n }\n }\n });\n }\n\n return elementType;\n}\n\nfunction resolveDispatcher() {\n var dispatcher = ReactCurrentDispatcher.current;\n\n if (!(dispatcher !== null)) {\n {\n throw Error( \"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.\" );\n }\n }\n\n return dispatcher;\n}\n\nfunction useContext(Context, unstable_observedBits) {\n var dispatcher = resolveDispatcher();\n\n {\n if (unstable_observedBits !== undefined) {\n error('useContext() second argument is reserved for future ' + 'use in React. Passing it is not supported. ' + 'You passed: %s.%s', unstable_observedBits, typeof unstable_observedBits === 'number' && Array.isArray(arguments[2]) ? '\\n\\nDid you call array.map(useContext)? ' + 'Calling Hooks inside a loop is not supported. ' + 'Learn more at https://reactjs.org/link/rules-of-hooks' : '');\n } // TODO: add a more generic warning for invalid values.\n\n\n if (Context._context !== undefined) {\n var realContext = Context._context; // Don't deduplicate because this legitimately causes bugs\n // and nobody should be using this in existing code.\n\n if (realContext.Consumer === Context) {\n error('Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be ' + 'removed in a future major release. Did you mean to call useContext(Context) instead?');\n } else if (realContext.Provider === Context) {\n error('Calling useContext(Context.Provider) is not supported. ' + 'Did you mean to call useContext(Context) instead?');\n }\n }\n }\n\n return dispatcher.useContext(Context, unstable_observedBits);\n}\nfunction useState(initialState) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useState(initialState);\n}\nfunction useReducer(reducer, initialArg, init) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useReducer(reducer, initialArg, init);\n}\nfunction useRef(initialValue) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useRef(initialValue);\n}\nfunction useEffect(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useEffect(create, deps);\n}\nfunction useLayoutEffect(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useLayoutEffect(create, deps);\n}\nfunction useCallback(callback, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useCallback(callback, deps);\n}\nfunction useMemo(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useMemo(create, deps);\n}\nfunction useImperativeHandle(ref, create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useImperativeHandle(ref, create, deps);\n}\nfunction useDebugValue(value, formatterFn) {\n {\n var dispatcher = resolveDispatcher();\n return dispatcher.useDebugValue(value, formatterFn);\n }\n}\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n disabledDepth++;\n }\n}\nfunction reenableLogs() {\n {\n disabledDepth--;\n\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n log: _assign({}, props, {\n value: prevLog\n }),\n info: _assign({}, props, {\n value: prevInfo\n }),\n warn: _assign({}, props, {\n value: prevWarn\n }),\n error: _assign({}, props, {\n value: prevError\n }),\n group: _assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: _assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: _assign({}, props, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n if (disabledDepth < 0) {\n error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n }\n }\n}\n\nvar ReactCurrentDispatcher$1 = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || '';\n }\n } // We use the prefix to ensure our stacks line up with native stack frames.\n\n\n return '\\n' + prefix + name;\n }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n}\n\nfunction describeNativeComponentFrame(fn, construct) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if (!fn || reentry) {\n return '';\n }\n\n {\n var frame = componentFrameCache.get(fn);\n\n if (frame !== undefined) {\n return frame;\n }\n }\n\n var control;\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n\n {\n previousDispatcher = ReactCurrentDispatcher$1.current; // Set the dispatcher in DEV because this might be call in the render function\n // for warnings.\n\n ReactCurrentDispatcher$1.current = null;\n disableLogs();\n }\n\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function () {\n throw Error();\n }; // $FlowFixMe\n\n\n Object.defineProperty(Fake.prototype, 'props', {\n set: function () {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n\n if (typeof Reflect === 'object' && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n }\n\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n }\n\n fn();\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === 'string') {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sample.stack.split('\\n');\n var controlLines = control.stack.split('\\n');\n var s = sampleLines.length - 1;\n var c = controlLines.length - 1;\n\n while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n\n for (; s >= 1 && c >= 0; s--, c--) {\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at ');\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, _frame);\n }\n } // Return the line we found.\n\n\n return _frame;\n }\n } while (s >= 1 && c >= 0);\n }\n\n break;\n }\n }\n }\n } finally {\n reentry = false;\n\n {\n ReactCurrentDispatcher$1.current = previousDispatcher;\n reenableLogs();\n }\n\n Error.prepareStackTrace = previousPrepareStackTrace;\n } // Fallback to just using the name if we couldn't make it throw.\n\n\n var name = fn ? fn.displayName || fn.name : '';\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n\n return syntheticFrame;\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n}\n\nfunction shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n if (type == null) {\n return '';\n }\n\n if (typeof type === 'function') {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n\n if (typeof type === 'string') {\n return describeBuiltInComponentFrame(type);\n }\n\n switch (type) {\n case exports.Suspense:\n return describeBuiltInComponentFrame('Suspense');\n\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame('SuspenseList');\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n\n case REACT_MEMO_TYPE:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n case REACT_BLOCK_TYPE:\n return describeFunctionComponentFrame(type._render);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n\n return '';\n}\n\nvar loggedTypeFailures = {};\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n }\n }\n}\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\n {\n // $FlowFixMe This is okay but Flow doesn't know it.\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n } catch (ex) {\n error$1 = ex;\n }\n\n if (error$1 && !(error$1 instanceof Error)) {\n setCurrentlyValidatingElement(element);\n\n error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n\n setCurrentlyValidatingElement(null);\n }\n\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error$1.message] = true;\n setCurrentlyValidatingElement(element);\n\n error('Failed %s type: %s', location, error$1.message);\n\n setCurrentlyValidatingElement(null);\n }\n }\n }\n }\n}\n\nfunction setCurrentlyValidatingElement$1(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n setExtraStackFrame(stack);\n } else {\n setExtraStackFrame(null);\n }\n }\n}\n\nvar propTypesMisspellWarningShown;\n\n{\n propTypesMisspellWarningShown = false;\n}\n\nfunction getDeclarationErrorAddendum() {\n if (ReactCurrentOwner.current) {\n var name = getComponentName(ReactCurrentOwner.current.type);\n\n if (name) {\n return '\\n\\nCheck the render method of `' + name + '`.';\n }\n }\n\n return '';\n}\n\nfunction getSourceInfoErrorAddendum(source) {\n if (source !== undefined) {\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n var lineNumber = source.lineNumber;\n return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n }\n\n return '';\n}\n\nfunction getSourceInfoErrorAddendumForProps(elementProps) {\n if (elementProps !== null && elementProps !== undefined) {\n return getSourceInfoErrorAddendum(elementProps.__source);\n }\n\n return '';\n}\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n\n\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n var info = getDeclarationErrorAddendum();\n\n if (!info) {\n var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n\n if (parentName) {\n info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n }\n }\n\n return info;\n}\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\n\n\nfunction validateExplicitKey(element, parentType) {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n\n element._store.validated = true;\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n return;\n }\n\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n\n var childOwner = '';\n\n if (element && element._owner && element._owner !== ReactCurrentOwner.current) {\n // Give the component that originally created this child.\n childOwner = \" It was passed a child from \" + getComponentName(element._owner.type) + \".\";\n }\n\n {\n setCurrentlyValidatingElement$1(element);\n\n error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\n\n setCurrentlyValidatingElement$1(null);\n }\n}\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\n\n\nfunction validateChildKeys(node, parentType) {\n if (typeof node !== 'object') {\n return;\n }\n\n if (Array.isArray(node)) {\n for (var i = 0; i < node.length; i++) {\n var child = node[i];\n\n if (isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else if (node) {\n var iteratorFn = getIteratorFn(node);\n\n if (typeof iteratorFn === 'function') {\n // Entry iterators used to provide implicit keys,\n // but now we print a separate warning for them later.\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n\n while (!(step = iterator.next()).done) {\n if (isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n}\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\n\n\nfunction validatePropTypes(element) {\n {\n var type = element.type;\n\n if (type === null || type === undefined || typeof type === 'string') {\n return;\n }\n\n var propTypes;\n\n if (typeof type === 'function') {\n propTypes = type.propTypes;\n } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n // Inner props are checked in the reconciler.\n type.$$typeof === REACT_MEMO_TYPE)) {\n propTypes = type.propTypes;\n } else {\n return;\n }\n\n if (propTypes) {\n // Intentionally inside to avoid triggering lazy initializers:\n var name = getComponentName(type);\n checkPropTypes(propTypes, element.props, 'prop', name, element);\n } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n\n var _name = getComponentName(type);\n\n error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');\n }\n\n if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\n error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\n }\n }\n}\n/**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\n\n\nfunction validateFragmentProps(fragment) {\n {\n var keys = Object.keys(fragment.props);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (key !== 'children' && key !== 'key') {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n\n setCurrentlyValidatingElement$1(null);\n break;\n }\n }\n\n if (fragment.ref !== null) {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid attribute `ref` supplied to `React.Fragment`.');\n\n setCurrentlyValidatingElement$1(null);\n }\n }\n}\nfunction createElementWithValidation(type, props, children) {\n var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n\n if (!validType) {\n var info = '';\n\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n }\n\n var sourceInfo = getSourceInfoErrorAddendumForProps(props);\n\n if (sourceInfo) {\n info += sourceInfo;\n } else {\n info += getDeclarationErrorAddendum();\n }\n\n var typeString;\n\n if (type === null) {\n typeString = 'null';\n } else if (Array.isArray(type)) {\n typeString = 'array';\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n typeString = \"<\" + (getComponentName(type.type) || 'Unknown') + \" />\";\n info = ' Did you accidentally export a JSX literal instead of a component?';\n } else {\n typeString = typeof type;\n }\n\n {\n error('React.createElement: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n }\n }\n\n var element = createElement.apply(this, arguments); // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n\n if (element == null) {\n return element;\n } // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n\n\n if (validType) {\n for (var i = 2; i < arguments.length; i++) {\n validateChildKeys(arguments[i], type);\n }\n }\n\n if (type === exports.Fragment) {\n validateFragmentProps(element);\n } else {\n validatePropTypes(element);\n }\n\n return element;\n}\nvar didWarnAboutDeprecatedCreateFactory = false;\nfunction createFactoryWithValidation(type) {\n var validatedFactory = createElementWithValidation.bind(null, type);\n validatedFactory.type = type;\n\n {\n if (!didWarnAboutDeprecatedCreateFactory) {\n didWarnAboutDeprecatedCreateFactory = true;\n\n warn('React.createFactory() is deprecated and will be removed in ' + 'a future major release. Consider using JSX ' + 'or use React.createElement() directly instead.');\n } // Legacy hook: remove it\n\n\n Object.defineProperty(validatedFactory, 'type', {\n enumerable: false,\n get: function () {\n warn('Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.');\n\n Object.defineProperty(this, 'type', {\n value: type\n });\n return type;\n }\n });\n }\n\n return validatedFactory;\n}\nfunction cloneElementWithValidation(element, props, children) {\n var newElement = cloneElement.apply(this, arguments);\n\n for (var i = 2; i < arguments.length; i++) {\n validateChildKeys(arguments[i], newElement.type);\n }\n\n validatePropTypes(newElement);\n return newElement;\n}\n\n{\n\n try {\n var frozenObject = Object.freeze({});\n /* eslint-disable no-new */\n\n new Map([[frozenObject, null]]);\n new Set([frozenObject]);\n /* eslint-enable no-new */\n } catch (e) {\n }\n}\n\nvar createElement$1 = createElementWithValidation ;\nvar cloneElement$1 = cloneElementWithValidation ;\nvar createFactory = createFactoryWithValidation ;\nvar Children = {\n map: mapChildren,\n forEach: forEachChildren,\n count: countChildren,\n toArray: toArray,\n only: onlyChild\n};\n\nexports.Children = Children;\nexports.Component = Component;\nexports.PureComponent = PureComponent;\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactSharedInternals;\nexports.cloneElement = cloneElement$1;\nexports.createContext = createContext;\nexports.createElement = createElement$1;\nexports.createFactory = createFactory;\nexports.createRef = createRef;\nexports.forwardRef = forwardRef;\nexports.isValidElement = isValidElement;\nexports.lazy = lazy;\nexports.memo = memo;\nexports.useCallback = useCallback;\nexports.useContext = useContext;\nexports.useDebugValue = useDebugValue;\nexports.useEffect = useEffect;\nexports.useImperativeHandle = useImperativeHandle;\nexports.useLayoutEffect = useLayoutEffect;\nexports.useMemo = useMemo;\nexports.useReducer = useReducer;\nexports.useRef = useRef;\nexports.useState = useState;\nexports.version = ReactVersion;\n })();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QvY2pzL3JlYWN0LmRldmVsb3BtZW50LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWE7O0FBRWIsSUFBSSxJQUFxQztBQUN6QztBQUNBOztBQUVBLGNBQWMsbUJBQU8sQ0FBQyxnRkFBZTs7QUFFckM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQixrQkFBa0I7QUFDbEIsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRSxnQkFBZ0I7QUFDbEIsRUFBRSxrQkFBa0I7QUFDcEIsRUFBRSxnQkFBZ0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0EsRUFBRSxnQkFBZ0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7OztBQUdMOztBQUVBO0FBQ0Esb0JBQW9COztBQUVwQjtBQUNBO0FBQ0EsTUFBTTs7O0FBR047O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLDJGQUEyRixhQUFhO0FBQ3hHO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtGQUErRixlQUFlO0FBQzlHO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSyxHQUFHOztBQUVSLGtEQUFrRDtBQUNsRDtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSw4TUFBOE07O0FBRTlNO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxZQUFZO0FBQ3pCLGNBQWMsU0FBUztBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsWUFBWTtBQUN6QixhQUFhLFdBQVc7QUFDeEIsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsWUFBWTtBQUN6QixhQUFhLFFBQVE7QUFDckIsYUFBYSxXQUFXO0FBQ3hCLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxZQUFZO0FBQ3pCLGFBQWEsUUFBUTtBQUNyQixhQUFhLFdBQVc7QUFDeEIsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQSwwQkFBMEI7O0FBRTFCLDJCQUEyQjtBQUMzQjs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLGlCQUFpQjtBQUM1QjtBQUNBLFdBQVcsV0FBVztBQUN0QjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsV0FBVztBQUN0QjtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLDBCQUEwQjs7QUFFMUI7QUFDQTtBQUNBOztBQUVBO0FBQ0Esb0RBQW9EOztBQUVwRDs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxXQUFXLEdBQUc7QUFDZCxXQUFXLEdBQUc7QUFDZCxXQUFXLGVBQWU7QUFDMUIsV0FBVyxHQUFHO0FBQ2QsV0FBVyxHQUFHO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZDtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSyxHQUFHOztBQUVSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLLEdBQUc7QUFDUjs7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QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBOztBQUVBOztBQUVBLDRCQUE0Qjs7QUFFNUI7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNOzs7QUFHTjtBQUNBLDBDQUEwQztBQUMxQzs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7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Q0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsZ0JBQWdCO0FBQ2hCLGlCQUFpQjtBQUNqQixxQkFBcUI7QUFDckIsMERBQTBEO0FBQzFELG9CQUFvQjtBQUNwQixxQkFBcUI7QUFDckIscUJBQXFCO0FBQ3JCLHFCQUFxQjtBQUNyQixpQkFBaUI7QUFDakIsa0JBQWtCO0FBQ2xCLHNCQUFzQjtBQUN0QixZQUFZO0FBQ1osWUFBWTtBQUNaLG1CQUFtQjtBQUNuQixrQkFBa0I7QUFDbEIscUJBQXFCO0FBQ3JCLGlCQUFpQjtBQUNqQiwyQkFBMkI7QUFDM0IsdUJBQXVCO0FBQ3ZCLGVBQWU7QUFDZixrQkFBa0I7QUFDbEIsY0FBYztBQUNkLGdCQUFnQjtBQUNoQixlQUFlO0FBQ2YsR0FBRztBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9yZWFjdC9janMvcmVhY3QuZGV2ZWxvcG1lbnQuanM/MWI3ZSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQGxpY2Vuc2UgUmVhY3QgdjE3LjAuMlxuICogcmVhY3QuZGV2ZWxvcG1lbnQuanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIEZhY2Vib29rLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgKGZ1bmN0aW9uKCkge1xuJ3VzZSBzdHJpY3QnO1xuXG52YXIgX2Fzc2lnbiA9IHJlcXVpcmUoJ29iamVjdC1hc3NpZ24nKTtcblxuLy8gVE9ETzogdGhpcyBpcyBzcGVjaWFsIGJlY2F1c2UgaXQgZ2V0cyBpbXBvcnRlZCBkdXJpbmcgYnVpbGQuXG52YXIgUmVhY3RWZXJzaW9uID0gJzE3LjAuMic7XG5cbi8vIEFUVEVOVElPTlxuLy8gV2hlbiBhZGRpbmcgbmV3IHN5bWJvbHMgdG8gdGhpcyBmaWxlLFxuLy8gUGxlYXNlIGNvbnNpZGVyIGFsc28gYWRkaW5nIHRvICdyZWFjdC1kZXZ0b29scy1zaGFyZWQvc3JjL2JhY2tlbmQvUmVhY3RTeW1ib2xzJ1xuLy8gVGhlIFN5bWJvbCB1c2VkIHRvIHRhZyB0aGUgUmVhY3RFbGVtZW50LWxpa2UgdHlwZXMuIElmIHRoZXJlIGlzIG5vIG5hdGl2ZSBTeW1ib2xcbi8vIG5vciBwb2x5ZmlsbCwgdGhlbiBhIHBsYWluIG51bWJlciBpcyB1c2VkIGZvciBwZXJmb3JtYW5jZS5cbnZhciBSRUFDVF9FTEVNRU5UX1RZUEUgPSAweGVhYzc7XG52YXIgUkVBQ1RfUE9SVEFMX1RZUEUgPSAweGVhY2E7XG5leHBvcnRzLkZyYWdtZW50ID0gMHhlYWNiO1xuZXhwb3J0cy5TdHJpY3RNb2RlID0gMHhlYWNjO1xuZXhwb3J0cy5Qcm9maWxlciA9IDB4ZWFkMjtcbnZhciBSRUFDVF9QUk9WSURFUl9UWVBFID0gMHhlYWNkO1xudmFyIFJFQUNUX0NPTlRFWFRfVFlQRSA9IDB4ZWFjZTtcbnZhciBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFID0gMHhlYWQwO1xuZXhwb3J0cy5TdXNwZW5zZSA9IDB4ZWFkMTtcbnZhciBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUgPSAweGVhZDg7XG52YXIgUkVBQ1RfTUVNT19UWVBFID0gMHhlYWQzO1xudmFyIFJFQUNUX0xBWllfVFlQRSA9IDB4ZWFkNDtcbnZhciBSRUFDVF9CTE9DS19UWVBFID0gMHhlYWQ5O1xudmFyIFJFQUNUX1NFUlZFUl9CTE9DS19UWVBFID0gMHhlYWRhO1xudmFyIFJFQUNUX0ZVTkRBTUVOVEFMX1RZUEUgPSAweGVhZDU7XG52YXIgUkVBQ1RfU0NPUEVfVFlQRSA9IDB4ZWFkNztcbnZhciBSRUFDVF9PUEFRVUVfSURfVFlQRSA9IDB4ZWFlMDtcbnZhciBSRUFDVF9ERUJVR19UUkFDSU5HX01PREVfVFlQRSA9IDB4ZWFlMTtcbnZhciBSRUFDVF9PRkZTQ1JFRU5fVFlQRSA9IDB4ZWFlMjtcbnZhciBSRUFDVF9MRUdBQ1lfSElEREVOX1RZUEUgPSAweGVhZTM7XG5cbmlmICh0eXBlb2YgU3ltYm9sID09PSAnZnVuY3Rpb24nICYmIFN5bWJvbC5mb3IpIHtcbiAgdmFyIHN5bWJvbEZvciA9IFN5bWJvbC5mb3I7XG4gIFJFQUNUX0VMRU1FTlRfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QuZWxlbWVudCcpO1xuICBSRUFDVF9QT1JUQUxfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QucG9ydGFsJyk7XG4gIGV4cG9ydHMuRnJhZ21lbnQgPSBzeW1ib2xGb3IoJ3JlYWN0LmZyYWdtZW50Jyk7XG4gIGV4cG9ydHMuU3RyaWN0TW9kZSA9IHN5bWJvbEZvcigncmVhY3Quc3RyaWN0X21vZGUnKTtcbiAgZXhwb3J0cy5Qcm9maWxlciA9IHN5bWJvbEZvcigncmVhY3QucHJvZmlsZXInKTtcbiAgUkVBQ1RfUFJPVklERVJfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QucHJvdmlkZXInKTtcbiAgUkVBQ1RfQ09OVEVYVF9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5jb250ZXh0Jyk7XG4gIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LmZvcndhcmRfcmVmJyk7XG4gIGV4cG9ydHMuU3VzcGVuc2UgPSBzeW1ib2xGb3IoJ3JlYWN0LnN1c3BlbnNlJyk7XG4gIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSA9IHN5bWJvbEZvcigncmVhY3Quc3VzcGVuc2VfbGlzdCcpO1xuICBSRUFDVF9NRU1PX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0Lm1lbW8nKTtcbiAgUkVBQ1RfTEFaWV9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5sYXp5Jyk7XG4gIFJFQUNUX0JMT0NLX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LmJsb2NrJyk7XG4gIFJFQUNUX1NFUlZFUl9CTE9DS19UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5zZXJ2ZXIuYmxvY2snKTtcbiAgUkVBQ1RfRlVOREFNRU5UQUxfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QuZnVuZGFtZW50YWwnKTtcbiAgUkVBQ1RfU0NPUEVfVFlQRSA9IHN5bWJvbEZvcigncmVhY3Quc2NvcGUnKTtcbiAgUkVBQ1RfT1BBUVVFX0lEX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0Lm9wYXF1ZS5pZCcpO1xuICBSRUFDVF9ERUJVR19UUkFDSU5HX01PREVfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QuZGVidWdfdHJhY2VfbW9kZScpO1xuICBSRUFDVF9PRkZTQ1JFRU5fVFlQRSA9IHN5bWJvbEZvcigncmVhY3Qub2Zmc2NyZWVuJyk7XG4gIFJFQUNUX0xFR0FDWV9ISURERU5fVFlQRSA9IHN5bWJvbEZvcigncmVhY3QubGVnYWN5X2hpZGRlbicpO1xufVxuXG52YXIgTUFZQkVfSVRFUkFUT1JfU1lNQk9MID0gdHlwZW9mIFN5bWJvbCA9PT0gJ2Z1bmN0aW9uJyAmJiBTeW1ib2wuaXRlcmF0b3I7XG52YXIgRkFVWF9JVEVSQVRPUl9TWU1CT0wgPSAnQEBpdGVyYXRvcic7XG5mdW5jdGlvbiBnZXRJdGVyYXRvckZuKG1heWJlSXRlcmFibGUpIHtcbiAgaWYgKG1heWJlSXRlcmFibGUgPT09IG51bGwgfHwgdHlwZW9mIG1heWJlSXRlcmFibGUgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICB2YXIgbWF5YmVJdGVyYXRvciA9IE1BWUJFX0lURVJBVE9SX1NZTUJPTCAmJiBtYXliZUl0ZXJhYmxlW01BWUJFX0lURVJBVE9SX1NZTUJPTF0gfHwgbWF5YmVJdGVyYWJsZVtGQVVYX0lURVJBVE9SX1NZTUJPTF07XG5cbiAgaWYgKHR5cGVvZiBtYXliZUl0ZXJhdG9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIG1heWJlSXRlcmF0b3I7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBLZWVwcyB0cmFjayBvZiB0aGUgY3VycmVudCBkaXNwYXRjaGVyLlxuICovXG52YXIgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciA9IHtcbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBAdHlwZSB7UmVhY3RDb21wb25lbnR9XG4gICAqL1xuICBjdXJyZW50OiBudWxsXG59O1xuXG4vKipcbiAqIEtlZXBzIHRyYWNrIG9mIHRoZSBjdXJyZW50IGJhdGNoJ3MgY29uZmlndXJhdGlvbiBzdWNoIGFzIGhvdyBsb25nIGFuIHVwZGF0ZVxuICogc2hvdWxkIHN1c3BlbmQgZm9yIGlmIGl0IG5lZWRzIHRvLlxuICovXG52YXIgUmVhY3RDdXJyZW50QmF0Y2hDb25maWcgPSB7XG4gIHRyYW5zaXRpb246IDBcbn07XG5cbi8qKlxuICogS2VlcHMgdHJhY2sgb2YgdGhlIGN1cnJlbnQgb3duZXIuXG4gKlxuICogVGhlIGN1cnJlbnQgb3duZXIgaXMgdGhlIGNvbXBvbmVudCB3aG8gc2hvdWxkIG93biBhbnkgY29tcG9uZW50cyB0aGF0IGFyZVxuICogY3VycmVudGx5IGJlaW5nIGNvbnN0cnVjdGVkLlxuICovXG52YXIgUmVhY3RDdXJyZW50T3duZXIgPSB7XG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogQHR5cGUge1JlYWN0Q29tcG9uZW50fVxuICAgKi9cbiAgY3VycmVudDogbnVsbFxufTtcblxudmFyIFJlYWN0RGVidWdDdXJyZW50RnJhbWUgPSB7fTtcbnZhciBjdXJyZW50RXh0cmFTdGFja0ZyYW1lID0gbnVsbDtcbmZ1bmN0aW9uIHNldEV4dHJhU3RhY2tGcmFtZShzdGFjaykge1xuICB7XG4gICAgY3VycmVudEV4dHJhU3RhY2tGcmFtZSA9IHN0YWNrO1xuICB9XG59XG5cbntcbiAgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZS5zZXRFeHRyYVN0YWNrRnJhbWUgPSBmdW5jdGlvbiAoc3RhY2spIHtcbiAgICB7XG4gICAgICBjdXJyZW50RXh0cmFTdGFja0ZyYW1lID0gc3RhY2s7XG4gICAgfVxuICB9OyAvLyBTdGFjayBpbXBsZW1lbnRhdGlvbiBpbmplY3RlZCBieSB0aGUgY3VycmVudCByZW5kZXJlci5cblxuXG4gIFJlYWN0RGVidWdDdXJyZW50RnJhbWUuZ2V0Q3VycmVudFN0YWNrID0gbnVsbDtcblxuICBSZWFjdERlYnVnQ3VycmVudEZyYW1lLmdldFN0YWNrQWRkZW5kdW0gPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHN0YWNrID0gJyc7IC8vIEFkZCBhbiBleHRyYSB0b3AgZnJhbWUgd2hpbGUgYW4gZWxlbWVudCBpcyBiZWluZyB2YWxpZGF0ZWRcblxuICAgIGlmIChjdXJyZW50RXh0cmFTdGFja0ZyYW1lKSB7XG4gICAgICBzdGFjayArPSBjdXJyZW50RXh0cmFTdGFja0ZyYW1lO1xuICAgIH0gLy8gRGVsZWdhdGUgdG8gdGhlIGluamVjdGVkIHJlbmRlcmVyLXNwZWNpZmljIGltcGxlbWVudGF0aW9uXG5cblxuICAgIHZhciBpbXBsID0gUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZS5nZXRDdXJyZW50U3RhY2s7XG5cbiAgICBpZiAoaW1wbCkge1xuICAgICAgc3RhY2sgKz0gaW1wbCgpIHx8ICcnO1xuICAgIH1cblxuICAgIHJldHVybiBzdGFjaztcbiAgfTtcbn1cblxuLyoqXG4gKiBVc2VkIGJ5IGFjdCgpIHRvIHRyYWNrIHdoZXRoZXIgeW91J3JlIGluc2lkZSBhbiBhY3QoKSBzY29wZS5cbiAqL1xudmFyIElzU29tZVJlbmRlcmVyQWN0aW5nID0ge1xuICBjdXJyZW50OiBmYWxzZVxufTtcblxudmFyIFJlYWN0U2hhcmVkSW50ZXJuYWxzID0ge1xuICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyOiBSZWFjdEN1cnJlbnREaXNwYXRjaGVyLFxuICBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZzogUmVhY3RDdXJyZW50QmF0Y2hDb25maWcsXG4gIFJlYWN0Q3VycmVudE93bmVyOiBSZWFjdEN1cnJlbnRPd25lcixcbiAgSXNTb21lUmVuZGVyZXJBY3Rpbmc6IElzU29tZVJlbmRlcmVyQWN0aW5nLFxuICAvLyBVc2VkIGJ5IHJlbmRlcmVycyB0byBhdm9pZCBidW5kbGluZyBvYmplY3QtYXNzaWduIHR3aWNlIGluIFVNRCBidW5kbGVzOlxuICBhc3NpZ246IF9hc3NpZ25cbn07XG5cbntcbiAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSA9IFJlYWN0RGVidWdDdXJyZW50RnJhbWU7XG59XG5cbi8vIGJ5IGNhbGxzIHRvIHRoZXNlIG1ldGhvZHMgYnkgYSBCYWJlbCBwbHVnaW4uXG4vL1xuLy8gSW4gUFJPRCAob3IgaW4gcGFja2FnZXMgd2l0aG91dCBhY2Nlc3MgdG8gUmVhY3QgaW50ZXJuYWxzKSxcbi8vIHRoZXkgYXJlIGxlZnQgYXMgdGhleSBhcmUgaW5zdGVhZC5cblxuZnVuY3Rpb24gd2Fybihmb3JtYXQpIHtcbiAge1xuICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4gPiAxID8gX2xlbiAtIDEgOiAwKSwgX2tleSA9IDE7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgIGFyZ3NbX2tleSAtIDFdID0gYXJndW1lbnRzW19rZXldO1xuICAgIH1cblxuICAgIHByaW50V2FybmluZygnd2FybicsIGZvcm1hdCwgYXJncyk7XG4gIH1cbn1cbmZ1bmN0aW9uIGVycm9yKGZvcm1hdCkge1xuICB7XG4gICAgZm9yICh2YXIgX2xlbjIgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4yID4gMSA/IF9sZW4yIC0gMSA6IDApLCBfa2V5MiA9IDE7IF9rZXkyIDwgX2xlbjI7IF9rZXkyKyspIHtcbiAgICAgIGFyZ3NbX2tleTIgLSAxXSA9IGFyZ3VtZW50c1tfa2V5Ml07XG4gICAgfVxuXG4gICAgcHJpbnRXYXJuaW5nKCdlcnJvcicsIGZvcm1hdCwgYXJncyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcHJpbnRXYXJuaW5nKGxldmVsLCBmb3JtYXQsIGFyZ3MpIHtcbiAgLy8gV2hlbiBjaGFuZ2luZyB0aGlzIGxvZ2ljLCB5b3UgbWlnaHQgd2FudCB0byBhbHNvXG4gIC8vIHVwZGF0ZSBjb25zb2xlV2l0aFN0YWNrRGV2Lnd3dy5qcyBhcyB3ZWxsLlxuICB7XG4gICAgdmFyIFJlYWN0RGVidWdDdXJyZW50RnJhbWUgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdERlYnVnQ3VycmVudEZyYW1lO1xuICAgIHZhciBzdGFjayA9IFJlYWN0RGVidWdDdXJyZW50RnJhbWUuZ2V0U3RhY2tBZGRlbmR1bSgpO1xuXG4gICAgaWYgKHN0YWNrICE9PSAnJykge1xuICAgICAgZm9ybWF0ICs9ICclcyc7XG4gICAgICBhcmdzID0gYXJncy5jb25jYXQoW3N0YWNrXSk7XG4gICAgfVxuXG4gICAgdmFyIGFyZ3NXaXRoRm9ybWF0ID0gYXJncy5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgIHJldHVybiAnJyArIGl0ZW07XG4gICAgfSk7IC8vIENhcmVmdWw6IFJOIGN1cnJlbnRseSBkZXBlbmRzIG9uIHRoaXMgcHJlZml4XG5cbiAgICBhcmdzV2l0aEZvcm1hdC51bnNoaWZ0KCdXYXJuaW5nOiAnICsgZm9ybWF0KTsgLy8gV2UgaW50ZW50aW9uYWxseSBkb24ndCB1c2Ugc3ByZWFkIChvciAuYXBwbHkpIGRpcmVjdGx5IGJlY2F1c2UgaXRcbiAgICAvLyBicmVha3MgSUU5OiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzEzNjEwXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL25vLXByb2R1Y3Rpb24tbG9nZ2luZ1xuXG4gICAgRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5LmNhbGwoY29uc29sZVtsZXZlbF0sIGNvbnNvbGUsIGFyZ3NXaXRoRm9ybWF0KTtcbiAgfVxufVxuXG52YXIgZGlkV2FyblN0YXRlVXBkYXRlRm9yVW5tb3VudGVkQ29tcG9uZW50ID0ge307XG5cbmZ1bmN0aW9uIHdhcm5Ob29wKHB1YmxpY0luc3RhbmNlLCBjYWxsZXJOYW1lKSB7XG4gIHtcbiAgICB2YXIgX2NvbnN0cnVjdG9yID0gcHVibGljSW5zdGFuY2UuY29uc3RydWN0b3I7XG4gICAgdmFyIGNvbXBvbmVudE5hbWUgPSBfY29uc3RydWN0b3IgJiYgKF9jb25zdHJ1Y3Rvci5kaXNwbGF5TmFtZSB8fCBfY29uc3RydWN0b3IubmFtZSkgfHwgJ1JlYWN0Q2xhc3MnO1xuICAgIHZhciB3YXJuaW5nS2V5ID0gY29tcG9uZW50TmFtZSArIFwiLlwiICsgY2FsbGVyTmFtZTtcblxuICAgIGlmIChkaWRXYXJuU3RhdGVVcGRhdGVGb3JVbm1vdW50ZWRDb21wb25lbnRbd2FybmluZ0tleV0pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBlcnJvcihcIkNhbid0IGNhbGwgJXMgb24gYSBjb21wb25lbnQgdGhhdCBpcyBub3QgeWV0IG1vdW50ZWQuIFwiICsgJ1RoaXMgaXMgYSBuby1vcCwgYnV0IGl0IG1pZ2h0IGluZGljYXRlIGEgYnVnIGluIHlvdXIgYXBwbGljYXRpb24uICcgKyAnSW5zdGVhZCwgYXNzaWduIHRvIGB0aGlzLnN0YXRlYCBkaXJlY3RseSBvciBkZWZpbmUgYSBgc3RhdGUgPSB7fTtgICcgKyAnY2xhc3MgcHJvcGVydHkgd2l0aCB0aGUgZGVzaXJlZCBzdGF0ZSBpbiB0aGUgJXMgY29tcG9uZW50LicsIGNhbGxlck5hbWUsIGNvbXBvbmVudE5hbWUpO1xuXG4gICAgZGlkV2FyblN0YXRlVXBkYXRlRm9yVW5tb3VudGVkQ29tcG9uZW50W3dhcm5pbmdLZXldID0gdHJ1ZTtcbiAgfVxufVxuLyoqXG4gKiBUaGlzIGlzIHRoZSBhYnN0cmFjdCBBUEkgZm9yIGFuIHVwZGF0ZSBxdWV1ZS5cbiAqL1xuXG5cbnZhciBSZWFjdE5vb3BVcGRhdGVRdWV1ZSA9IHtcbiAgLyoqXG4gICAqIENoZWNrcyB3aGV0aGVyIG9yIG5vdCB0aGlzIGNvbXBvc2l0ZSBjb21wb25lbnQgaXMgbW91bnRlZC5cbiAgICogQHBhcmFtIHtSZWFjdENsYXNzfSBwdWJsaWNJbnN0YW5jZSBUaGUgaW5zdGFuY2Ugd2Ugd2FudCB0byB0ZXN0LlxuICAgKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIGlmIG1vdW50ZWQsIGZhbHNlIG90aGVyd2lzZS5cbiAgICogQHByb3RlY3RlZFxuICAgKiBAZmluYWxcbiAgICovXG4gIGlzTW91bnRlZDogZnVuY3Rpb24gKHB1YmxpY0luc3RhbmNlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9LFxuXG4gIC8qKlxuICAgKiBGb3JjZXMgYW4gdXBkYXRlLiBUaGlzIHNob3VsZCBvbmx5IGJlIGludm9rZWQgd2hlbiBpdCBpcyBrbm93biB3aXRoXG4gICAqIGNlcnRhaW50eSB0aGF0IHdlIGFyZSAqKm5vdCoqIGluIGEgRE9NIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBZb3UgbWF5IHdhbnQgdG8gY2FsbCB0aGlzIHdoZW4geW91IGtub3cgdGhhdCBzb21lIGRlZXBlciBhc3BlY3Qgb2YgdGhlXG4gICAqIGNvbXBvbmVudCdzIHN0YXRlIGhhcyBjaGFuZ2VkIGJ1dCBgc2V0U3RhdGVgIHdhcyBub3QgY2FsbGVkLlxuICAgKlxuICAgKiBUaGlzIHdpbGwgbm90IGludm9rZSBgc2hvdWxkQ29tcG9uZW50VXBkYXRlYCwgYnV0IGl0IHdpbGwgaW52b2tlXG4gICAqIGBjb21wb25lbnRXaWxsVXBkYXRlYCBhbmQgYGNvbXBvbmVudERpZFVwZGF0ZWAuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVhY3RDbGFzc30gcHVibGljSW5zdGFuY2UgVGhlIGluc3RhbmNlIHRoYXQgc2hvdWxkIHJlcmVuZGVyLlxuICAgKiBAcGFyYW0gez9mdW5jdGlvbn0gY2FsbGJhY2sgQ2FsbGVkIGFmdGVyIGNvbXBvbmVudCBpcyB1cGRhdGVkLlxuICAgKiBAcGFyYW0gez9zdHJpbmd9IGNhbGxlck5hbWUgbmFtZSBvZiB0aGUgY2FsbGluZyBmdW5jdGlvbiBpbiB0aGUgcHVibGljIEFQSS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBlbnF1ZXVlRm9yY2VVcGRhdGU6IGZ1bmN0aW9uIChwdWJsaWNJbnN0YW5jZSwgY2FsbGJhY2ssIGNhbGxlck5hbWUpIHtcbiAgICB3YXJuTm9vcChwdWJsaWNJbnN0YW5jZSwgJ2ZvcmNlVXBkYXRlJyk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlcGxhY2VzIGFsbCBvZiB0aGUgc3RhdGUuIEFsd2F5cyB1c2UgdGhpcyBvciBgc2V0U3RhdGVgIHRvIG11dGF0ZSBzdGF0ZS5cbiAgICogWW91IHNob3VsZCB0cmVhdCBgdGhpcy5zdGF0ZWAgYXMgaW1tdXRhYmxlLlxuICAgKlxuICAgKiBUaGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBgdGhpcy5zdGF0ZWAgd2lsbCBiZSBpbW1lZGlhdGVseSB1cGRhdGVkLCBzb1xuICAgKiBhY2Nlc3NpbmcgYHRoaXMuc3RhdGVgIGFmdGVyIGNhbGxpbmcgdGhpcyBtZXRob2QgbWF5IHJldHVybiB0aGUgb2xkIHZhbHVlLlxuICAgKlxuICAgKiBAcGFyYW0ge1JlYWN0Q2xhc3N9IHB1YmxpY0luc3RhbmNlIFRoZSBpbnN0YW5jZSB0aGF0IHNob3VsZCByZXJlbmRlci5cbiAgICogQHBhcmFtIHtvYmplY3R9IGNvbXBsZXRlU3RhdGUgTmV4dCBzdGF0ZS5cbiAgICogQHBhcmFtIHs/ZnVuY3Rpb259IGNhbGxiYWNrIENhbGxlZCBhZnRlciBjb21wb25lbnQgaXMgdXBkYXRlZC5cbiAgICogQHBhcmFtIHs/c3RyaW5nfSBjYWxsZXJOYW1lIG5hbWUgb2YgdGhlIGNhbGxpbmcgZnVuY3Rpb24gaW4gdGhlIHB1YmxpYyBBUEkuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZW5xdWV1ZVJlcGxhY2VTdGF0ZTogZnVuY3Rpb24gKHB1YmxpY0luc3RhbmNlLCBjb21wbGV0ZVN0YXRlLCBjYWxsYmFjaywgY2FsbGVyTmFtZSkge1xuICAgIHdhcm5Ob29wKHB1YmxpY0luc3RhbmNlLCAncmVwbGFjZVN0YXRlJyk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFNldHMgYSBzdWJzZXQgb2YgdGhlIHN0YXRlLiBUaGlzIG9ubHkgZXhpc3RzIGJlY2F1c2UgX3BlbmRpbmdTdGF0ZSBpc1xuICAgKiBpbnRlcm5hbC4gVGhpcyBwcm92aWRlcyBhIG1lcmdpbmcgc3RyYXRlZ3kgdGhhdCBpcyBub3QgYXZhaWxhYmxlIHRvIGRlZXBcbiAgICogcHJvcGVydGllcyB3aGljaCBpcyBjb25mdXNpbmcuIFRPRE86IEV4cG9zZSBwZW5kaW5nU3RhdGUgb3IgZG9uJ3QgdXNlIGl0XG4gICAqIGR1cmluZyB0aGUgbWVyZ2UuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVhY3RDbGFzc30gcHVibGljSW5zdGFuY2UgVGhlIGluc3RhbmNlIHRoYXQgc2hvdWxkIHJlcmVuZGVyLlxuICAgKiBAcGFyYW0ge29iamVjdH0gcGFydGlhbFN0YXRlIE5leHQgcGFydGlhbCBzdGF0ZSB0byBiZSBtZXJnZWQgd2l0aCBzdGF0ZS5cbiAgICogQHBhcmFtIHs/ZnVuY3Rpb259IGNhbGxiYWNrIENhbGxlZCBhZnRlciBjb21wb25lbnQgaXMgdXBkYXRlZC5cbiAgICogQHBhcmFtIHs/c3RyaW5nfSBOYW1lIG9mIHRoZSBjYWxsaW5nIGZ1bmN0aW9uIGluIHRoZSBwdWJsaWMgQVBJLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGVucXVldWVTZXRTdGF0ZTogZnVuY3Rpb24gKHB1YmxpY0luc3RhbmNlLCBwYXJ0aWFsU3RhdGUsIGNhbGxiYWNrLCBjYWxsZXJOYW1lKSB7XG4gICAgd2Fybk5vb3AocHVibGljSW5zdGFuY2UsICdzZXRTdGF0ZScpO1xuICB9XG59O1xuXG52YXIgZW1wdHlPYmplY3QgPSB7fTtcblxue1xuICBPYmplY3QuZnJlZXplKGVtcHR5T2JqZWN0KTtcbn1cbi8qKlxuICogQmFzZSBjbGFzcyBoZWxwZXJzIGZvciB0aGUgdXBkYXRpbmcgc3RhdGUgb2YgYSBjb21wb25lbnQuXG4gKi9cblxuXG5mdW5jdGlvbiBDb21wb25lbnQocHJvcHMsIGNvbnRleHQsIHVwZGF0ZXIpIHtcbiAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICB0aGlzLmNvbnRleHQgPSBjb250ZXh0OyAvLyBJZiBhIGNvbXBvbmVudCBoYXMgc3RyaW5nIHJlZnMsIHdlIHdpbGwgYXNzaWduIGEgZGlmZmVyZW50IG9iamVjdCBsYXRlci5cblxuICB0aGlzLnJlZnMgPSBlbXB0eU9iamVjdDsgLy8gV2UgaW5pdGlhbGl6ZSB0aGUgZGVmYXVsdCB1cGRhdGVyIGJ1dCB0aGUgcmVhbCBvbmUgZ2V0cyBpbmplY3RlZCBieSB0aGVcbiAgLy8gcmVuZGVyZXIuXG5cbiAgdGhpcy51cGRhdGVyID0gdXBkYXRlciB8fCBSZWFjdE5vb3BVcGRhdGVRdWV1ZTtcbn1cblxuQ29tcG9uZW50LnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50ID0ge307XG4vKipcbiAqIFNldHMgYSBzdWJzZXQgb2YgdGhlIHN0YXRlLiBBbHdheXMgdXNlIHRoaXMgdG8gbXV0YXRlXG4gKiBzdGF0ZS4gWW91IHNob3VsZCB0cmVhdCBgdGhpcy5zdGF0ZWAgYXMgaW1tdXRhYmxlLlxuICpcbiAqIFRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IGB0aGlzLnN0YXRlYCB3aWxsIGJlIGltbWVkaWF0ZWx5IHVwZGF0ZWQsIHNvXG4gKiBhY2Nlc3NpbmcgYHRoaXMuc3RhdGVgIGFmdGVyIGNhbGxpbmcgdGhpcyBtZXRob2QgbWF5IHJldHVybiB0aGUgb2xkIHZhbHVlLlxuICpcbiAqIFRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IGNhbGxzIHRvIGBzZXRTdGF0ZWAgd2lsbCBydW4gc3luY2hyb25vdXNseSxcbiAqIGFzIHRoZXkgbWF5IGV2ZW50dWFsbHkgYmUgYmF0Y2hlZCB0b2dldGhlci4gIFlvdSBjYW4gcHJvdmlkZSBhbiBvcHRpb25hbFxuICogY2FsbGJhY2sgdGhhdCB3aWxsIGJlIGV4ZWN1dGVkIHdoZW4gdGhlIGNhbGwgdG8gc2V0U3RhdGUgaXMgYWN0dWFsbHlcbiAqIGNvbXBsZXRlZC5cbiAqXG4gKiBXaGVuIGEgZnVuY3Rpb24gaXMgcHJvdmlkZWQgdG8gc2V0U3RhdGUsIGl0IHdpbGwgYmUgY2FsbGVkIGF0IHNvbWUgcG9pbnQgaW5cbiAqIHRoZSBmdXR1cmUgKG5vdCBzeW5jaHJvbm91c2x5KS4gSXQgd2lsbCBiZSBjYWxsZWQgd2l0aCB0aGUgdXAgdG8gZGF0ZVxuICogY29tcG9uZW50IGFyZ3VtZW50cyAoc3RhdGUsIHByb3BzLCBjb250ZXh0KS4gVGhlc2UgdmFsdWVzIGNhbiBiZSBkaWZmZXJlbnRcbiAqIGZyb20gdGhpcy4qIGJlY2F1c2UgeW91ciBmdW5jdGlvbiBtYXkgYmUgY2FsbGVkIGFmdGVyIHJlY2VpdmVQcm9wcyBidXQgYmVmb3JlXG4gKiBzaG91bGRDb21wb25lbnRVcGRhdGUsIGFuZCB0aGlzIG5ldyBzdGF0ZSwgcHJvcHMsIGFuZCBjb250ZXh0IHdpbGwgbm90IHlldCBiZVxuICogYXNzaWduZWQgdG8gdGhpcy5cbiAqXG4gKiBAcGFyYW0ge29iamVjdHxmdW5jdGlvbn0gcGFydGlhbFN0YXRlIE5leHQgcGFydGlhbCBzdGF0ZSBvciBmdW5jdGlvbiB0b1xuICogICAgICAgIHByb2R1Y2UgbmV4dCBwYXJ0aWFsIHN0YXRlIHRvIGJlIG1lcmdlZCB3aXRoIGN1cnJlbnQgc3RhdGUuXG4gKiBAcGFyYW0gez9mdW5jdGlvbn0gY2FsbGJhY2sgQ2FsbGVkIGFmdGVyIHN0YXRlIGlzIHVwZGF0ZWQuXG4gKiBAZmluYWxcbiAqIEBwcm90ZWN0ZWRcbiAqL1xuXG5Db21wb25lbnQucHJvdG90eXBlLnNldFN0YXRlID0gZnVuY3Rpb24gKHBhcnRpYWxTdGF0ZSwgY2FsbGJhY2spIHtcbiAgaWYgKCEodHlwZW9mIHBhcnRpYWxTdGF0ZSA9PT0gJ29iamVjdCcgfHwgdHlwZW9mIHBhcnRpYWxTdGF0ZSA9PT0gJ2Z1bmN0aW9uJyB8fCBwYXJ0aWFsU3RhdGUgPT0gbnVsbCkpIHtcbiAgICB7XG4gICAgICB0aHJvdyBFcnJvciggXCJzZXRTdGF0ZSguLi4pOiB0YWtlcyBhbiBvYmplY3Qgb2Ygc3RhdGUgdmFyaWFibGVzIHRvIHVwZGF0ZSBvciBhIGZ1bmN0aW9uIHdoaWNoIHJldHVybnMgYW4gb2JqZWN0IG9mIHN0YXRlIHZhcmlhYmxlcy5cIiApO1xuICAgIH1cbiAgfVxuXG4gIHRoaXMudXBkYXRlci5lbnF1ZXVlU2V0U3RhdGUodGhpcywgcGFydGlhbFN0YXRlLCBjYWxsYmFjaywgJ3NldFN0YXRlJyk7XG59O1xuLyoqXG4gKiBGb3JjZXMgYW4gdXBkYXRlLiBUaGlzIHNob3VsZCBvbmx5IGJlIGludm9rZWQgd2hlbiBpdCBpcyBrbm93biB3aXRoXG4gKiBjZXJ0YWludHkgdGhhdCB3ZSBhcmUgKipub3QqKiBpbiBhIERPTSB0cmFuc2FjdGlvbi5cbiAqXG4gKiBZb3UgbWF5IHdhbnQgdG8gY2FsbCB0aGlzIHdoZW4geW91IGtub3cgdGhhdCBzb21lIGRlZXBlciBhc3BlY3Qgb2YgdGhlXG4gKiBjb21wb25lbnQncyBzdGF0ZSBoYXMgY2hhbmdlZCBidXQgYHNldFN0YXRlYCB3YXMgbm90IGNhbGxlZC5cbiAqXG4gKiBUaGlzIHdpbGwgbm90IGludm9rZSBgc2hvdWxkQ29tcG9uZW50VXBkYXRlYCwgYnV0IGl0IHdpbGwgaW52b2tlXG4gKiBgY29tcG9uZW50V2lsbFVwZGF0ZWAgYW5kIGBjb21wb25lbnREaWRVcGRhdGVgLlxuICpcbiAqIEBwYXJhbSB7P2Z1bmN0aW9ufSBjYWxsYmFjayBDYWxsZWQgYWZ0ZXIgdXBkYXRlIGlzIGNvbXBsZXRlLlxuICogQGZpbmFsXG4gKiBAcHJvdGVjdGVkXG4gKi9cblxuXG5Db21wb25lbnQucHJvdG90eXBlLmZvcmNlVXBkYXRlID0gZnVuY3Rpb24gKGNhbGxiYWNrKSB7XG4gIHRoaXMudXBkYXRlci5lbnF1ZXVlRm9yY2VVcGRhdGUodGhpcywgY2FsbGJhY2ssICdmb3JjZVVwZGF0ZScpO1xufTtcbi8qKlxuICogRGVwcmVjYXRlZCBBUElzLiBUaGVzZSBBUElzIHVzZWQgdG8gZXhpc3Qgb24gY2xhc3NpYyBSZWFjdCBjbGFzc2VzIGJ1dCBzaW5jZVxuICogd2Ugd291bGQgbGlrZSB0byBkZXByZWNhdGUgdGhlbSwgd2UncmUgbm90IGdvaW5nIHRvIG1vdmUgdGhlbSBvdmVyIHRvIHRoaXNcbiAqIG1vZGVybiBiYXNlIGNsYXNzLiBJbnN0ZWFkLCB3ZSBkZWZpbmUgYSBnZXR0ZXIgdGhhdCB3YXJucyBpZiBpdCdzIGFjY2Vzc2VkLlxuICovXG5cblxue1xuICB2YXIgZGVwcmVjYXRlZEFQSXMgPSB7XG4gICAgaXNNb3VudGVkOiBbJ2lzTW91bnRlZCcsICdJbnN0ZWFkLCBtYWtlIHN1cmUgdG8gY2xlYW4gdXAgc3Vic2NyaXB0aW9ucyBhbmQgcGVuZGluZyByZXF1ZXN0cyBpbiAnICsgJ2NvbXBvbmVudFdpbGxVbm1vdW50IHRvIHByZXZlbnQgbWVtb3J5IGxlYWtzLiddLFxuICAgIHJlcGxhY2VTdGF0ZTogWydyZXBsYWNlU3RhdGUnLCAnUmVmYWN0b3IgeW91ciBjb2RlIHRvIHVzZSBzZXRTdGF0ZSBpbnN0ZWFkIChzZWUgJyArICdodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzMyMzYpLiddXG4gIH07XG5cbiAgdmFyIGRlZmluZURlcHJlY2F0aW9uV2FybmluZyA9IGZ1bmN0aW9uIChtZXRob2ROYW1lLCBpbmZvKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KENvbXBvbmVudC5wcm90b3R5cGUsIG1ldGhvZE5hbWUsIHtcbiAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICB3YXJuKCclcyguLi4pIGlzIGRlcHJlY2F0ZWQgaW4gcGxhaW4gSmF2YVNjcmlwdCBSZWFjdCBjbGFzc2VzLiAlcycsIGluZm9bMF0sIGluZm9bMV0pO1xuXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgfSk7XG4gIH07XG5cbiAgZm9yICh2YXIgZm5OYW1lIGluIGRlcHJlY2F0ZWRBUElzKSB7XG4gICAgaWYgKGRlcHJlY2F0ZWRBUElzLmhhc093blByb3BlcnR5KGZuTmFtZSkpIHtcbiAgICAgIGRlZmluZURlcHJlY2F0aW9uV2FybmluZyhmbk5hbWUsIGRlcHJlY2F0ZWRBUElzW2ZuTmFtZV0pO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBDb21wb25lbnREdW1teSgpIHt9XG5cbkNvbXBvbmVudER1bW15LnByb3RvdHlwZSA9IENvbXBvbmVudC5wcm90b3R5cGU7XG4vKipcbiAqIENvbnZlbmllbmNlIGNvbXBvbmVudCB3aXRoIGRlZmF1bHQgc2hhbGxvdyBlcXVhbGl0eSBjaGVjayBmb3Igc0NVLlxuICovXG5cbmZ1bmN0aW9uIFB1cmVDb21wb25lbnQocHJvcHMsIGNvbnRleHQsIHVwZGF0ZXIpIHtcbiAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICB0aGlzLmNvbnRleHQgPSBjb250ZXh0OyAvLyBJZiBhIGNvbXBvbmVudCBoYXMgc3RyaW5nIHJlZnMsIHdlIHdpbGwgYXNzaWduIGEgZGlmZmVyZW50IG9iamVjdCBsYXRlci5cblxuICB0aGlzLnJlZnMgPSBlbXB0eU9iamVjdDtcbiAgdGhpcy51cGRhdGVyID0gdXBkYXRlciB8fCBSZWFjdE5vb3BVcGRhdGVRdWV1ZTtcbn1cblxudmFyIHB1cmVDb21wb25lbnRQcm90b3R5cGUgPSBQdXJlQ29tcG9uZW50LnByb3RvdHlwZSA9IG5ldyBDb21wb25lbnREdW1teSgpO1xucHVyZUNvbXBvbmVudFByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IFB1cmVDb21wb25lbnQ7IC8vIEF2b2lkIGFuIGV4dHJhIHByb3RvdHlwZSBqdW1wIGZvciB0aGVzZSBtZXRob2RzLlxuXG5fYXNzaWduKHB1cmVDb21wb25lbnRQcm90b3R5cGUsIENvbXBvbmVudC5wcm90b3R5cGUpO1xuXG5wdXJlQ29tcG9uZW50UHJvdG90eXBlLmlzUHVyZVJlYWN0Q29tcG9uZW50ID0gdHJ1ZTtcblxuLy8gYW4gaW1tdXRhYmxlIG9iamVjdCB3aXRoIGEgc2luZ2xlIG11dGFibGUgdmFsdWVcbmZ1bmN0aW9uIGNyZWF0ZVJlZigpIHtcbiAgdmFyIHJlZk9iamVjdCA9IHtcbiAgICBjdXJyZW50OiBudWxsXG4gIH07XG5cbiAge1xuICAgIE9iamVjdC5zZWFsKHJlZk9iamVjdCk7XG4gIH1cblxuICByZXR1cm4gcmVmT2JqZWN0O1xufVxuXG5mdW5jdGlvbiBnZXRXcmFwcGVkTmFtZShvdXRlclR5cGUsIGlubmVyVHlwZSwgd3JhcHBlck5hbWUpIHtcbiAgdmFyIGZ1bmN0aW9uTmFtZSA9IGlubmVyVHlwZS5kaXNwbGF5TmFtZSB8fCBpbm5lclR5cGUubmFtZSB8fCAnJztcbiAgcmV0dXJuIG91dGVyVHlwZS5kaXNwbGF5TmFtZSB8fCAoZnVuY3Rpb25OYW1lICE9PSAnJyA/IHdyYXBwZXJOYW1lICsgXCIoXCIgKyBmdW5jdGlvbk5hbWUgKyBcIilcIiA6IHdyYXBwZXJOYW1lKTtcbn1cblxuZnVuY3Rpb24gZ2V0Q29udGV4dE5hbWUodHlwZSkge1xuICByZXR1cm4gdHlwZS5kaXNwbGF5TmFtZSB8fCAnQ29udGV4dCc7XG59XG5cbmZ1bmN0aW9uIGdldENvbXBvbmVudE5hbWUodHlwZSkge1xuICBpZiAodHlwZSA9PSBudWxsKSB7XG4gICAgLy8gSG9zdCByb290LCB0ZXh0IG5vZGUgb3IganVzdCBpbnZhbGlkIHR5cGUuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICB7XG4gICAgaWYgKHR5cGVvZiB0eXBlLnRhZyA9PT0gJ251bWJlcicpIHtcbiAgICAgIGVycm9yKCdSZWNlaXZlZCBhbiB1bmV4cGVjdGVkIG9iamVjdCBpbiBnZXRDb21wb25lbnROYW1lKCkuICcgKyAnVGhpcyBpcyBsaWtlbHkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicpO1xuICAgIH1cbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiB0eXBlLmRpc3BsYXlOYW1lIHx8IHR5cGUubmFtZSB8fCBudWxsO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB0eXBlO1xuICB9XG5cbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSBleHBvcnRzLkZyYWdtZW50OlxuICAgICAgcmV0dXJuICdGcmFnbWVudCc7XG5cbiAgICBjYXNlIFJFQUNUX1BPUlRBTF9UWVBFOlxuICAgICAgcmV0dXJuICdQb3J0YWwnO1xuXG4gICAgY2FzZSBleHBvcnRzLlByb2ZpbGVyOlxuICAgICAgcmV0dXJuICdQcm9maWxlcic7XG5cbiAgICBjYXNlIGV4cG9ydHMuU3RyaWN0TW9kZTpcbiAgICAgIHJldHVybiAnU3RyaWN0TW9kZSc7XG5cbiAgICBjYXNlIGV4cG9ydHMuU3VzcGVuc2U6XG4gICAgICByZXR1cm4gJ1N1c3BlbnNlJztcblxuICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFOlxuICAgICAgcmV0dXJuICdTdXNwZW5zZUxpc3QnO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnb2JqZWN0Jykge1xuICAgIHN3aXRjaCAodHlwZS4kJHR5cGVvZikge1xuICAgICAgY2FzZSBSRUFDVF9DT05URVhUX1RZUEU6XG4gICAgICAgIHZhciBjb250ZXh0ID0gdHlwZTtcbiAgICAgICAgcmV0dXJuIGdldENvbnRleHROYW1lKGNvbnRleHQpICsgJy5Db25zdW1lcic7XG5cbiAgICAgIGNhc2UgUkVBQ1RfUFJPVklERVJfVFlQRTpcbiAgICAgICAgdmFyIHByb3ZpZGVyID0gdHlwZTtcbiAgICAgICAgcmV0dXJuIGdldENvbnRleHROYW1lKHByb3ZpZGVyLl9jb250ZXh0KSArICcuUHJvdmlkZXInO1xuXG4gICAgICBjYXNlIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU6XG4gICAgICAgIHJldHVybiBnZXRXcmFwcGVkTmFtZSh0eXBlLCB0eXBlLnJlbmRlciwgJ0ZvcndhcmRSZWYnKTtcblxuICAgICAgY2FzZSBSRUFDVF9NRU1PX1RZUEU6XG4gICAgICAgIHJldHVybiBnZXRDb21wb25lbnROYW1lKHR5cGUudHlwZSk7XG5cbiAgICAgIGNhc2UgUkVBQ1RfQkxPQ0tfVFlQRTpcbiAgICAgICAgcmV0dXJuIGdldENvbXBvbmVudE5hbWUodHlwZS5fcmVuZGVyKTtcblxuICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgbGF6eUNvbXBvbmVudCA9IHR5cGU7XG4gICAgICAgICAgdmFyIHBheWxvYWQgPSBsYXp5Q29tcG9uZW50Ll9wYXlsb2FkO1xuICAgICAgICAgIHZhciBpbml0ID0gbGF6eUNvbXBvbmVudC5faW5pdDtcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0Q29tcG9uZW50TmFtZShpbml0KHBheWxvYWQpKTtcbiAgICAgICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxudmFyIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbnZhciBSRVNFUlZFRF9QUk9QUyA9IHtcbiAga2V5OiB0cnVlLFxuICByZWY6IHRydWUsXG4gIF9fc2VsZjogdHJ1ZSxcbiAgX19zb3VyY2U6IHRydWVcbn07XG52YXIgc3BlY2lhbFByb3BLZXlXYXJuaW5nU2hvd24sIHNwZWNpYWxQcm9wUmVmV2FybmluZ1Nob3duLCBkaWRXYXJuQWJvdXRTdHJpbmdSZWZzO1xuXG57XG4gIGRpZFdhcm5BYm91dFN0cmluZ1JlZnMgPSB7fTtcbn1cblxuZnVuY3Rpb24gaGFzVmFsaWRSZWYoY29uZmlnKSB7XG4gIHtcbiAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChjb25maWcsICdyZWYnKSkge1xuICAgICAgdmFyIGdldHRlciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoY29uZmlnLCAncmVmJykuZ2V0O1xuXG4gICAgICBpZiAoZ2V0dGVyICYmIGdldHRlci5pc1JlYWN0V2FybmluZykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNvbmZpZy5yZWYgIT09IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gaGFzVmFsaWRLZXkoY29uZmlnKSB7XG4gIHtcbiAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChjb25maWcsICdrZXknKSkge1xuICAgICAgdmFyIGdldHRlciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoY29uZmlnLCAna2V5JykuZ2V0O1xuXG4gICAgICBpZiAoZ2V0dGVyICYmIGdldHRlci5pc1JlYWN0V2FybmluZykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNvbmZpZy5rZXkgIT09IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gZGVmaW5lS2V5UHJvcFdhcm5pbmdHZXR0ZXIocHJvcHMsIGRpc3BsYXlOYW1lKSB7XG4gIHZhciB3YXJuQWJvdXRBY2Nlc3NpbmdLZXkgPSBmdW5jdGlvbiAoKSB7XG4gICAge1xuICAgICAgaWYgKCFzcGVjaWFsUHJvcEtleVdhcm5pbmdTaG93bikge1xuICAgICAgICBzcGVjaWFsUHJvcEtleVdhcm5pbmdTaG93biA9IHRydWU7XG5cbiAgICAgICAgZXJyb3IoJyVzOiBga2V5YCBpcyBub3QgYSBwcm9wLiBUcnlpbmcgdG8gYWNjZXNzIGl0IHdpbGwgcmVzdWx0ICcgKyAnaW4gYHVuZGVmaW5lZGAgYmVpbmcgcmV0dXJuZWQuIElmIHlvdSBuZWVkIHRvIGFjY2VzcyB0aGUgc2FtZSAnICsgJ3ZhbHVlIHdpdGhpbiB0aGUgY2hpbGQgY29tcG9uZW50LCB5b3Ugc2hvdWxkIHBhc3MgaXQgYXMgYSBkaWZmZXJlbnQgJyArICdwcm9wLiAoaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3NwZWNpYWwtcHJvcHMpJywgZGlzcGxheU5hbWUpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICB3YXJuQWJvdXRBY2Nlc3NpbmdLZXkuaXNSZWFjdFdhcm5pbmcgPSB0cnVlO1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvcHMsICdrZXknLCB7XG4gICAgZ2V0OiB3YXJuQWJvdXRBY2Nlc3NpbmdLZXksXG4gICAgY29uZmlndXJhYmxlOiB0cnVlXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBkZWZpbmVSZWZQcm9wV2FybmluZ0dldHRlcihwcm9wcywgZGlzcGxheU5hbWUpIHtcbiAgdmFyIHdhcm5BYm91dEFjY2Vzc2luZ1JlZiA9IGZ1bmN0aW9uICgpIHtcbiAgICB7XG4gICAgICBpZiAoIXNwZWNpYWxQcm9wUmVmV2FybmluZ1Nob3duKSB7XG4gICAgICAgIHNwZWNpYWxQcm9wUmVmV2FybmluZ1Nob3duID0gdHJ1ZTtcblxuICAgICAgICBlcnJvcignJXM6IGByZWZgIGlzIG5vdCBhIHByb3AuIFRyeWluZyB0byBhY2Nlc3MgaXQgd2lsbCByZXN1bHQgJyArICdpbiBgdW5kZWZpbmVkYCBiZWluZyByZXR1cm5lZC4gSWYgeW91IG5lZWQgdG8gYWNjZXNzIHRoZSBzYW1lICcgKyAndmFsdWUgd2l0aGluIHRoZSBjaGlsZCBjb21wb25lbnQsIHlvdSBzaG91bGQgcGFzcyBpdCBhcyBhIGRpZmZlcmVudCAnICsgJ3Byb3AuIChodHRwczovL3JlYWN0anMub3JnL2xpbmsvc3BlY2lhbC1wcm9wcyknLCBkaXNwbGF5TmFtZSk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIHdhcm5BYm91dEFjY2Vzc2luZ1JlZi5pc1JlYWN0V2FybmluZyA9IHRydWU7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm9wcywgJ3JlZicsIHtcbiAgICBnZXQ6IHdhcm5BYm91dEFjY2Vzc2luZ1JlZixcbiAgICBjb25maWd1cmFibGU6IHRydWVcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHdhcm5JZlN0cmluZ1JlZkNhbm5vdEJlQXV0b0NvbnZlcnRlZChjb25maWcpIHtcbiAge1xuICAgIGlmICh0eXBlb2YgY29uZmlnLnJlZiA9PT0gJ3N0cmluZycgJiYgUmVhY3RDdXJyZW50T3duZXIuY3VycmVudCAmJiBjb25maWcuX19zZWxmICYmIFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQuc3RhdGVOb2RlICE9PSBjb25maWcuX19zZWxmKSB7XG4gICAgICB2YXIgY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWUoUmVhY3RDdXJyZW50T3duZXIuY3VycmVudC50eXBlKTtcblxuICAgICAgaWYgKCFkaWRXYXJuQWJvdXRTdHJpbmdSZWZzW2NvbXBvbmVudE5hbWVdKSB7XG4gICAgICAgIGVycm9yKCdDb21wb25lbnQgXCIlc1wiIGNvbnRhaW5zIHRoZSBzdHJpbmcgcmVmIFwiJXNcIi4gJyArICdTdXBwb3J0IGZvciBzdHJpbmcgcmVmcyB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgbWFqb3IgcmVsZWFzZS4gJyArICdUaGlzIGNhc2UgY2Fubm90IGJlIGF1dG9tYXRpY2FsbHkgY29udmVydGVkIHRvIGFuIGFycm93IGZ1bmN0aW9uLiAnICsgJ1dlIGFzayB5b3UgdG8gbWFudWFsbHkgZml4IHRoaXMgY2FzZSBieSB1c2luZyB1c2VSZWYoKSBvciBjcmVhdGVSZWYoKSBpbnN0ZWFkLiAnICsgJ0xlYXJuIG1vcmUgYWJvdXQgdXNpbmcgcmVmcyBzYWZlbHkgaGVyZTogJyArICdodHRwczovL3JlYWN0anMub3JnL2xpbmsvc3RyaWN0LW1vZGUtc3RyaW5nLXJlZicsIGNvbXBvbmVudE5hbWUsIGNvbmZpZy5yZWYpO1xuXG4gICAgICAgIGRpZFdhcm5BYm91dFN0cmluZ1JlZnNbY29tcG9uZW50TmFtZV0gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuLyoqXG4gKiBGYWN0b3J5IG1ldGhvZCB0byBjcmVhdGUgYSBuZXcgUmVhY3QgZWxlbWVudC4gVGhpcyBubyBsb25nZXIgYWRoZXJlcyB0b1xuICogdGhlIGNsYXNzIHBhdHRlcm4sIHNvIGRvIG5vdCB1c2UgbmV3IHRvIGNhbGwgaXQuIEFsc28sIGluc3RhbmNlb2YgY2hlY2tcbiAqIHdpbGwgbm90IHdvcmsuIEluc3RlYWQgdGVzdCAkJHR5cGVvZiBmaWVsZCBhZ2FpbnN0IFN5bWJvbC5mb3IoJ3JlYWN0LmVsZW1lbnQnKSB0byBjaGVja1xuICogaWYgc29tZXRoaW5nIGlzIGEgUmVhY3QgRWxlbWVudC5cbiAqXG4gKiBAcGFyYW0geyp9IHR5cGVcbiAqIEBwYXJhbSB7Kn0gcHJvcHNcbiAqIEBwYXJhbSB7Kn0ga2V5XG4gKiBAcGFyYW0ge3N0cmluZ3xvYmplY3R9IHJlZlxuICogQHBhcmFtIHsqfSBvd25lclxuICogQHBhcmFtIHsqfSBzZWxmIEEgKnRlbXBvcmFyeSogaGVscGVyIHRvIGRldGVjdCBwbGFjZXMgd2hlcmUgYHRoaXNgIGlzXG4gKiBkaWZmZXJlbnQgZnJvbSB0aGUgYG93bmVyYCB3aGVuIFJlYWN0LmNyZWF0ZUVsZW1lbnQgaXMgY2FsbGVkLCBzbyB0aGF0IHdlXG4gKiBjYW4gd2Fybi4gV2Ugd2FudCB0byBnZXQgcmlkIG9mIG93bmVyIGFuZCByZXBsYWNlIHN0cmluZyBgcmVmYHMgd2l0aCBhcnJvd1xuICogZnVuY3Rpb25zLCBhbmQgYXMgbG9uZyBhcyBgdGhpc2AgYW5kIG93bmVyIGFyZSB0aGUgc2FtZSwgdGhlcmUgd2lsbCBiZSBub1xuICogY2hhbmdlIGluIGJlaGF2aW9yLlxuICogQHBhcmFtIHsqfSBzb3VyY2UgQW4gYW5ub3RhdGlvbiBvYmplY3QgKGFkZGVkIGJ5IGEgdHJhbnNwaWxlciBvciBvdGhlcndpc2UpXG4gKiBpbmRpY2F0aW5nIGZpbGVuYW1lLCBsaW5lIG51bWJlciwgYW5kL29yIG90aGVyIGluZm9ybWF0aW9uLlxuICogQGludGVybmFsXG4gKi9cblxuXG52YXIgUmVhY3RFbGVtZW50ID0gZnVuY3Rpb24gKHR5cGUsIGtleSwgcmVmLCBzZWxmLCBzb3VyY2UsIG93bmVyLCBwcm9wcykge1xuICB2YXIgZWxlbWVudCA9IHtcbiAgICAvLyBUaGlzIHRhZyBhbGxvd3MgdXMgdG8gdW5pcXVlbHkgaWRlbnRpZnkgdGhpcyBhcyBhIFJlYWN0IEVsZW1lbnRcbiAgICAkJHR5cGVvZjogUkVBQ1RfRUxFTUVOVF9UWVBFLFxuICAgIC8vIEJ1aWx0LWluIHByb3BlcnRpZXMgdGhhdCBiZWxvbmcgb24gdGhlIGVsZW1lbnRcbiAgICB0eXBlOiB0eXBlLFxuICAgIGtleToga2V5LFxuICAgIHJlZjogcmVmLFxuICAgIHByb3BzOiBwcm9wcyxcbiAgICAvLyBSZWNvcmQgdGhlIGNvbXBvbmVudCByZXNwb25zaWJsZSBmb3IgY3JlYXRpbmcgdGhpcyBlbGVtZW50LlxuICAgIF9vd25lcjogb3duZXJcbiAgfTtcblxuICB7XG4gICAgLy8gVGhlIHZhbGlkYXRpb24gZmxhZyBpcyBjdXJyZW50bHkgbXV0YXRpdmUuIFdlIHB1dCBpdCBvblxuICAgIC8vIGFuIGV4dGVybmFsIGJhY2tpbmcgc3RvcmUgc28gdGhhdCB3ZSBjYW4gZnJlZXplIHRoZSB3aG9sZSBvYmplY3QuXG4gICAgLy8gVGhpcyBjYW4gYmUgcmVwbGFjZWQgd2l0aCBhIFdlYWtNYXAgb25jZSB0aGV5IGFyZSBpbXBsZW1lbnRlZCBpblxuICAgIC8vIGNvbW1vbmx5IHVzZWQgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnRzLlxuICAgIGVsZW1lbnQuX3N0b3JlID0ge307IC8vIFRvIG1ha2UgY29tcGFyaW5nIFJlYWN0RWxlbWVudHMgZWFzaWVyIGZvciB0ZXN0aW5nIHB1cnBvc2VzLCB3ZSBtYWtlXG4gICAgLy8gdGhlIHZhbGlkYXRpb24gZmxhZyBub24tZW51bWVyYWJsZSAod2hlcmUgcG9zc2libGUsIHdoaWNoIHNob3VsZFxuICAgIC8vIGluY2x1ZGUgZXZlcnkgZW52aXJvbm1lbnQgd2UgcnVuIHRlc3RzIGluKSwgc28gdGhlIHRlc3QgZnJhbWV3b3JrXG4gICAgLy8gaWdub3JlcyBpdC5cblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlbGVtZW50Ll9zdG9yZSwgJ3ZhbGlkYXRlZCcsIHtcbiAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgdmFsdWU6IGZhbHNlXG4gICAgfSk7IC8vIHNlbGYgYW5kIHNvdXJjZSBhcmUgREVWIG9ubHkgcHJvcGVydGllcy5cblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlbGVtZW50LCAnX3NlbGYnLCB7XG4gICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICB2YWx1ZTogc2VsZlxuICAgIH0pOyAvLyBUd28gZWxlbWVudHMgY3JlYXRlZCBpbiB0d28gZGlmZmVyZW50IHBsYWNlcyBzaG91bGQgYmUgY29uc2lkZXJlZFxuICAgIC8vIGVxdWFsIGZvciB0ZXN0aW5nIHB1cnBvc2VzIGFuZCB0aGVyZWZvcmUgd2UgaGlkZSBpdCBmcm9tIGVudW1lcmF0aW9uLlxuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGVsZW1lbnQsICdfc291cmNlJywge1xuICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgICAgdmFsdWU6IHNvdXJjZVxuICAgIH0pO1xuXG4gICAgaWYgKE9iamVjdC5mcmVlemUpIHtcbiAgICAgIE9iamVjdC5mcmVlemUoZWxlbWVudC5wcm9wcyk7XG4gICAgICBPYmplY3QuZnJlZXplKGVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBlbGVtZW50O1xufTtcbi8qKlxuICogQ3JlYXRlIGFuZCByZXR1cm4gYSBuZXcgUmVhY3RFbGVtZW50IG9mIHRoZSBnaXZlbiB0eXBlLlxuICogU2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9yZWFjdC1hcGkuaHRtbCNjcmVhdGVlbGVtZW50XG4gKi9cblxuZnVuY3Rpb24gY3JlYXRlRWxlbWVudCh0eXBlLCBjb25maWcsIGNoaWxkcmVuKSB7XG4gIHZhciBwcm9wTmFtZTsgLy8gUmVzZXJ2ZWQgbmFtZXMgYXJlIGV4dHJhY3RlZFxuXG4gIHZhciBwcm9wcyA9IHt9O1xuICB2YXIga2V5ID0gbnVsbDtcbiAgdmFyIHJlZiA9IG51bGw7XG4gIHZhciBzZWxmID0gbnVsbDtcbiAgdmFyIHNvdXJjZSA9IG51bGw7XG5cbiAgaWYgKGNvbmZpZyAhPSBudWxsKSB7XG4gICAgaWYgKGhhc1ZhbGlkUmVmKGNvbmZpZykpIHtcbiAgICAgIHJlZiA9IGNvbmZpZy5yZWY7XG5cbiAgICAgIHtcbiAgICAgICAgd2FybklmU3RyaW5nUmVmQ2Fubm90QmVBdXRvQ29udmVydGVkKGNvbmZpZyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGhhc1ZhbGlkS2V5KGNvbmZpZykpIHtcbiAgICAgIGtleSA9ICcnICsgY29uZmlnLmtleTtcbiAgICB9XG5cbiAgICBzZWxmID0gY29uZmlnLl9fc2VsZiA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGNvbmZpZy5fX3NlbGY7XG4gICAgc291cmNlID0gY29uZmlnLl9fc291cmNlID09PSB1bmRlZmluZWQgPyBudWxsIDogY29uZmlnLl9fc291cmNlOyAvLyBSZW1haW5pbmcgcHJvcGVydGllcyBhcmUgYWRkZWQgdG8gYSBuZXcgcHJvcHMgb2JqZWN0XG5cbiAgICBmb3IgKHByb3BOYW1lIGluIGNvbmZpZykge1xuICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoY29uZmlnLCBwcm9wTmFtZSkgJiYgIVJFU0VSVkVEX1BST1BTLmhhc093blByb3BlcnR5KHByb3BOYW1lKSkge1xuICAgICAgICBwcm9wc1twcm9wTmFtZV0gPSBjb25maWdbcHJvcE5hbWVdO1xuICAgICAgfVxuICAgIH1cbiAgfSAvLyBDaGlsZHJlbiBjYW4gYmUgbW9yZSB0aGFuIG9uZSBhcmd1bWVudCwgYW5kIHRob3NlIGFyZSB0cmFuc2ZlcnJlZCBvbnRvXG4gIC8vIHRoZSBuZXdseSBhbGxvY2F0ZWQgcHJvcHMgb2JqZWN0LlxuXG5cbiAgdmFyIGNoaWxkcmVuTGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aCAtIDI7XG5cbiAgaWYgKGNoaWxkcmVuTGVuZ3RoID09PSAxKSB7XG4gICAgcHJvcHMuY2hpbGRyZW4gPSBjaGlsZHJlbjtcbiAgfSBlbHNlIGlmIChjaGlsZHJlbkxlbmd0aCA+IDEpIHtcbiAgICB2YXIgY2hpbGRBcnJheSA9IEFycmF5KGNoaWxkcmVuTGVuZ3RoKTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW5MZW5ndGg7IGkrKykge1xuICAgICAgY2hpbGRBcnJheVtpXSA9IGFyZ3VtZW50c1tpICsgMl07XG4gICAgfVxuXG4gICAge1xuICAgICAgaWYgKE9iamVjdC5mcmVlemUpIHtcbiAgICAgICAgT2JqZWN0LmZyZWV6ZShjaGlsZEFycmF5KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcm9wcy5jaGlsZHJlbiA9IGNoaWxkQXJyYXk7XG4gIH0gLy8gUmVzb2x2ZSBkZWZhdWx0IHByb3BzXG5cblxuICBpZiAodHlwZSAmJiB0eXBlLmRlZmF1bHRQcm9wcykge1xuICAgIHZhciBkZWZhdWx0UHJvcHMgPSB0eXBlLmRlZmF1bHRQcm9wcztcblxuICAgIGZvciAocHJvcE5hbWUgaW4gZGVmYXVsdFByb3BzKSB7XG4gICAgICBpZiAocHJvcHNbcHJvcE5hbWVdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcHJvcHNbcHJvcE5hbWVdID0gZGVmYXVsdFByb3BzW3Byb3BOYW1lXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB7XG4gICAgaWYgKGtleSB8fCByZWYpIHtcbiAgICAgIHZhciBkaXNwbGF5TmFtZSA9IHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nID8gdHlwZS5kaXNwbGF5TmFtZSB8fCB0eXBlLm5hbWUgfHwgJ1Vua25vd24nIDogdHlwZTtcblxuICAgICAgaWYgKGtleSkge1xuICAgICAgICBkZWZpbmVLZXlQcm9wV2FybmluZ0dldHRlcihwcm9wcywgZGlzcGxheU5hbWUpO1xuICAgICAgfVxuXG4gICAgICBpZiAocmVmKSB7XG4gICAgICAgIGRlZmluZVJlZlByb3BXYXJuaW5nR2V0dGVyKHByb3BzLCBkaXNwbGF5TmFtZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFJlYWN0RWxlbWVudCh0eXBlLCBrZXksIHJlZiwgc2VsZiwgc291cmNlLCBSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50LCBwcm9wcyk7XG59XG5mdW5jdGlvbiBjbG9uZUFuZFJlcGxhY2VLZXkob2xkRWxlbWVudCwgbmV3S2V5KSB7XG4gIHZhciBuZXdFbGVtZW50ID0gUmVhY3RFbGVtZW50KG9sZEVsZW1lbnQudHlwZSwgbmV3S2V5LCBvbGRFbGVtZW50LnJlZiwgb2xkRWxlbWVudC5fc2VsZiwgb2xkRWxlbWVudC5fc291cmNlLCBvbGRFbGVtZW50Ll9vd25lciwgb2xkRWxlbWVudC5wcm9wcyk7XG4gIHJldHVybiBuZXdFbGVtZW50O1xufVxuLyoqXG4gKiBDbG9uZSBhbmQgcmV0dXJuIGEgbmV3IFJlYWN0RWxlbWVudCB1c2luZyBlbGVtZW50IGFzIHRoZSBzdGFydGluZyBwb2ludC5cbiAqIFNlZSBodHRwczovL3JlYWN0anMub3JnL2RvY3MvcmVhY3QtYXBpLmh0bWwjY2xvbmVlbGVtZW50XG4gKi9cblxuZnVuY3Rpb24gY2xvbmVFbGVtZW50KGVsZW1lbnQsIGNvbmZpZywgY2hpbGRyZW4pIHtcbiAgaWYgKCEhKGVsZW1lbnQgPT09IG51bGwgfHwgZWxlbWVudCA9PT0gdW5kZWZpbmVkKSkge1xuICAgIHtcbiAgICAgIHRocm93IEVycm9yKCBcIlJlYWN0LmNsb25lRWxlbWVudCguLi4pOiBUaGUgYXJndW1lbnQgbXVzdCBiZSBhIFJlYWN0IGVsZW1lbnQsIGJ1dCB5b3UgcGFzc2VkIFwiICsgZWxlbWVudCArIFwiLlwiICk7XG4gICAgfVxuICB9XG5cbiAgdmFyIHByb3BOYW1lOyAvLyBPcmlnaW5hbCBwcm9wcyBhcmUgY29waWVkXG5cbiAgdmFyIHByb3BzID0gX2Fzc2lnbih7fSwgZWxlbWVudC5wcm9wcyk7IC8vIFJlc2VydmVkIG5hbWVzIGFyZSBleHRyYWN0ZWRcblxuXG4gIHZhciBrZXkgPSBlbGVtZW50LmtleTtcbiAgdmFyIHJlZiA9IGVsZW1lbnQucmVmOyAvLyBTZWxmIGlzIHByZXNlcnZlZCBzaW5jZSB0aGUgb3duZXIgaXMgcHJlc2VydmVkLlxuXG4gIHZhciBzZWxmID0gZWxlbWVudC5fc2VsZjsgLy8gU291cmNlIGlzIHByZXNlcnZlZCBzaW5jZSBjbG9uZUVsZW1lbnQgaXMgdW5saWtlbHkgdG8gYmUgdGFyZ2V0ZWQgYnkgYVxuICAvLyB0cmFuc3BpbGVyLCBhbmQgdGhlIG9yaWdpbmFsIHNvdXJjZSBpcyBwcm9iYWJseSBhIGJldHRlciBpbmRpY2F0b3Igb2YgdGhlXG4gIC8vIHRydWUgb3duZXIuXG5cbiAgdmFyIHNvdXJjZSA9IGVsZW1lbnQuX3NvdXJjZTsgLy8gT3duZXIgd2lsbCBiZSBwcmVzZXJ2ZWQsIHVubGVzcyByZWYgaXMgb3ZlcnJpZGRlblxuXG4gIHZhciBvd25lciA9IGVsZW1lbnQuX293bmVyO1xuXG4gIGlmIChjb25maWcgIT0gbnVsbCkge1xuICAgIGlmIChoYXNWYWxpZFJlZihjb25maWcpKSB7XG4gICAgICAvLyBTaWxlbnRseSBzdGVhbCB0aGUgcmVmIGZyb20gdGhlIHBhcmVudC5cbiAgICAgIHJlZiA9IGNvbmZpZy5yZWY7XG4gICAgICBvd25lciA9IFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQ7XG4gICAgfVxuXG4gICAgaWYgKGhhc1ZhbGlkS2V5KGNvbmZpZykpIHtcbiAgICAgIGtleSA9ICcnICsgY29uZmlnLmtleTtcbiAgICB9IC8vIFJlbWFpbmluZyBwcm9wZXJ0aWVzIG92ZXJyaWRlIGV4aXN0aW5nIHByb3BzXG5cblxuICAgIHZhciBkZWZhdWx0UHJvcHM7XG5cbiAgICBpZiAoZWxlbWVudC50eXBlICYmIGVsZW1lbnQudHlwZS5kZWZhdWx0UHJvcHMpIHtcbiAgICAgIGRlZmF1bHRQcm9wcyA9IGVsZW1lbnQudHlwZS5kZWZhdWx0UHJvcHM7XG4gICAgfVxuXG4gICAgZm9yIChwcm9wTmFtZSBpbiBjb25maWcpIHtcbiAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbmZpZywgcHJvcE5hbWUpICYmICFSRVNFUlZFRF9QUk9QUy5oYXNPd25Qcm9wZXJ0eShwcm9wTmFtZSkpIHtcbiAgICAgICAgaWYgKGNvbmZpZ1twcm9wTmFtZV0gPT09IHVuZGVmaW5lZCAmJiBkZWZhdWx0UHJvcHMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIC8vIFJlc29sdmUgZGVmYXVsdCBwcm9wc1xuICAgICAgICAgIHByb3BzW3Byb3BOYW1lXSA9IGRlZmF1bHRQcm9wc1twcm9wTmFtZV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcHJvcHNbcHJvcE5hbWVdID0gY29uZmlnW3Byb3BOYW1lXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSAvLyBDaGlsZHJlbiBjYW4gYmUgbW9yZSB0aGFuIG9uZSBhcmd1bWVudCwgYW5kIHRob3NlIGFyZSB0cmFuc2ZlcnJlZCBvbnRvXG4gIC8vIHRoZSBuZXdseSBhbGxvY2F0ZWQgcHJvcHMgb2JqZWN0LlxuXG5cbiAgdmFyIGNoaWxkcmVuTGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aCAtIDI7XG5cbiAgaWYgKGNoaWxkcmVuTGVuZ3RoID09PSAxKSB7XG4gICAgcHJvcHMuY2hpbGRyZW4gPSBjaGlsZHJlbjtcbiAgfSBlbHNlIGlmIChjaGlsZHJlbkxlbmd0aCA+IDEpIHtcbiAgICB2YXIgY2hpbGRBcnJheSA9IEFycmF5KGNoaWxkcmVuTGVuZ3RoKTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW5MZW5ndGg7IGkrKykge1xuICAgICAgY2hpbGRBcnJheVtpXSA9IGFyZ3VtZW50c1tpICsgMl07XG4gICAgfVxuXG4gICAgcHJvcHMuY2hpbGRyZW4gPSBjaGlsZEFycmF5O1xuICB9XG5cbiAgcmV0dXJuIFJlYWN0RWxlbWVudChlbGVtZW50LnR5cGUsIGtleSwgcmVmLCBzZWxmLCBzb3VyY2UsIG93bmVyLCBwcm9wcyk7XG59XG4vKipcbiAqIFZlcmlmaWVzIHRoZSBvYmplY3QgaXMgYSBSZWFjdEVsZW1lbnQuXG4gKiBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL3JlYWN0LWFwaS5odG1sI2lzdmFsaWRlbGVtZW50XG4gKiBAcGFyYW0gez9vYmplY3R9IG9iamVjdFxuICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSBpZiBgb2JqZWN0YCBpcyBhIFJlYWN0RWxlbWVudC5cbiAqIEBmaW5hbFxuICovXG5cbmZ1bmN0aW9uIGlzVmFsaWRFbGVtZW50KG9iamVjdCkge1xuICByZXR1cm4gdHlwZW9mIG9iamVjdCA9PT0gJ29iamVjdCcgJiYgb2JqZWN0ICE9PSBudWxsICYmIG9iamVjdC4kJHR5cGVvZiA9PT0gUkVBQ1RfRUxFTUVOVF9UWVBFO1xufVxuXG52YXIgU0VQQVJBVE9SID0gJy4nO1xudmFyIFNVQlNFUEFSQVRPUiA9ICc6Jztcbi8qKlxuICogRXNjYXBlIGFuZCB3cmFwIGtleSBzbyBpdCBpcyBzYWZlIHRvIHVzZSBhcyBhIHJlYWN0aWRcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IHRvIGJlIGVzY2FwZWQuXG4gKiBAcmV0dXJuIHtzdHJpbmd9IHRoZSBlc2NhcGVkIGtleS5cbiAqL1xuXG5mdW5jdGlvbiBlc2NhcGUoa2V5KSB7XG4gIHZhciBlc2NhcGVSZWdleCA9IC9bPTpdL2c7XG4gIHZhciBlc2NhcGVyTG9va3VwID0ge1xuICAgICc9JzogJz0wJyxcbiAgICAnOic6ICc9MidcbiAgfTtcbiAgdmFyIGVzY2FwZWRTdHJpbmcgPSBrZXkucmVwbGFjZShlc2NhcGVSZWdleCwgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgcmV0dXJuIGVzY2FwZXJMb29rdXBbbWF0Y2hdO1xuICB9KTtcbiAgcmV0dXJuICckJyArIGVzY2FwZWRTdHJpbmc7XG59XG4vKipcbiAqIFRPRE86IFRlc3QgdGhhdCBhIHNpbmdsZSBjaGlsZCBhbmQgYW4gYXJyYXkgd2l0aCBvbmUgaXRlbSBoYXZlIHRoZSBzYW1lIGtleVxuICogcGF0dGVybi5cbiAqL1xuXG5cbnZhciBkaWRXYXJuQWJvdXRNYXBzID0gZmFsc2U7XG52YXIgdXNlclByb3ZpZGVkS2V5RXNjYXBlUmVnZXggPSAvXFwvKy9nO1xuXG5mdW5jdGlvbiBlc2NhcGVVc2VyUHJvdmlkZWRLZXkodGV4dCkge1xuICByZXR1cm4gdGV4dC5yZXBsYWNlKHVzZXJQcm92aWRlZEtleUVzY2FwZVJlZ2V4LCAnJCYvJyk7XG59XG4vKipcbiAqIEdlbmVyYXRlIGEga2V5IHN0cmluZyB0aGF0IGlkZW50aWZpZXMgYSBlbGVtZW50IHdpdGhpbiBhIHNldC5cbiAqXG4gKiBAcGFyYW0geyp9IGVsZW1lbnQgQSBlbGVtZW50IHRoYXQgY291bGQgY29udGFpbiBhIG1hbnVhbCBrZXkuXG4gKiBAcGFyYW0ge251bWJlcn0gaW5kZXggSW5kZXggdGhhdCBpcyB1c2VkIGlmIGEgbWFudWFsIGtleSBpcyBub3QgcHJvdmlkZWQuXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cblxuXG5mdW5jdGlvbiBnZXRFbGVtZW50S2V5KGVsZW1lbnQsIGluZGV4KSB7XG4gIC8vIERvIHNvbWUgdHlwZWNoZWNraW5nIGhlcmUgc2luY2Ugd2UgY2FsbCB0aGlzIGJsaW5kbHkuIFdlIHdhbnQgdG8gZW5zdXJlXG4gIC8vIHRoYXQgd2UgZG9uJ3QgYmxvY2sgcG90ZW50aWFsIGZ1dHVyZSBFUyBBUElzLlxuICBpZiAodHlwZW9mIGVsZW1lbnQgPT09ICdvYmplY3QnICYmIGVsZW1lbnQgIT09IG51bGwgJiYgZWxlbWVudC5rZXkgIT0gbnVsbCkge1xuICAgIC8vIEV4cGxpY2l0IGtleVxuICAgIHJldHVybiBlc2NhcGUoJycgKyBlbGVtZW50LmtleSk7XG4gIH0gLy8gSW1wbGljaXQga2V5IGRldGVybWluZWQgYnkgdGhlIGluZGV4IGluIHRoZSBzZXRcblxuXG4gIHJldHVybiBpbmRleC50b1N0cmluZygzNik7XG59XG5cbmZ1bmN0aW9uIG1hcEludG9BcnJheShjaGlsZHJlbiwgYXJyYXksIGVzY2FwZWRQcmVmaXgsIG5hbWVTb0ZhciwgY2FsbGJhY2spIHtcbiAgdmFyIHR5cGUgPSB0eXBlb2YgY2hpbGRyZW47XG5cbiAgaWYgKHR5cGUgPT09ICd1bmRlZmluZWQnIHx8IHR5cGUgPT09ICdib29sZWFuJykge1xuICAgIC8vIEFsbCBvZiB0aGUgYWJvdmUgYXJlIHBlcmNlaXZlZCBhcyBudWxsLlxuICAgIGNoaWxkcmVuID0gbnVsbDtcbiAgfVxuXG4gIHZhciBpbnZva2VDYWxsYmFjayA9IGZhbHNlO1xuXG4gIGlmIChjaGlsZHJlbiA9PT0gbnVsbCkge1xuICAgIGludm9rZUNhbGxiYWNrID0gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICBpbnZva2VDYWxsYmFjayA9IHRydWU7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdvYmplY3QnOlxuICAgICAgICBzd2l0Y2ggKGNoaWxkcmVuLiQkdHlwZW9mKSB7XG4gICAgICAgICAgY2FzZSBSRUFDVF9FTEVNRU5UX1RZUEU6XG4gICAgICAgICAgY2FzZSBSRUFDVF9QT1JUQUxfVFlQRTpcbiAgICAgICAgICAgIGludm9rZUNhbGxiYWNrID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgfVxuICB9XG5cbiAgaWYgKGludm9rZUNhbGxiYWNrKSB7XG4gICAgdmFyIF9jaGlsZCA9IGNoaWxkcmVuO1xuICAgIHZhciBtYXBwZWRDaGlsZCA9IGNhbGxiYWNrKF9jaGlsZCk7IC8vIElmIGl0J3MgdGhlIG9ubHkgY2hpbGQsIHRyZWF0IHRoZSBuYW1lIGFzIGlmIGl0IHdhcyB3cmFwcGVkIGluIGFuIGFycmF5XG4gICAgLy8gc28gdGhhdCBpdCdzIGNvbnNpc3RlbnQgaWYgdGhlIG51bWJlciBvZiBjaGlsZHJlbiBncm93czpcblxuICAgIHZhciBjaGlsZEtleSA9IG5hbWVTb0ZhciA9PT0gJycgPyBTRVBBUkFUT1IgKyBnZXRFbGVtZW50S2V5KF9jaGlsZCwgMCkgOiBuYW1lU29GYXI7XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShtYXBwZWRDaGlsZCkpIHtcbiAgICAgIHZhciBlc2NhcGVkQ2hpbGRLZXkgPSAnJztcblxuICAgICAgaWYgKGNoaWxkS2V5ICE9IG51bGwpIHtcbiAgICAgICAgZXNjYXBlZENoaWxkS2V5ID0gZXNjYXBlVXNlclByb3ZpZGVkS2V5KGNoaWxkS2V5KSArICcvJztcbiAgICAgIH1cblxuICAgICAgbWFwSW50b0FycmF5KG1hcHBlZENoaWxkLCBhcnJheSwgZXNjYXBlZENoaWxkS2V5LCAnJywgZnVuY3Rpb24gKGMpIHtcbiAgICAgICAgcmV0dXJuIGM7XG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKG1hcHBlZENoaWxkICE9IG51bGwpIHtcbiAgICAgIGlmIChpc1ZhbGlkRWxlbWVudChtYXBwZWRDaGlsZCkpIHtcbiAgICAgICAgbWFwcGVkQ2hpbGQgPSBjbG9uZUFuZFJlcGxhY2VLZXkobWFwcGVkQ2hpbGQsIC8vIEtlZXAgYm90aCB0aGUgKG1hcHBlZCkgYW5kIG9sZCBrZXlzIGlmIHRoZXkgZGlmZmVyLCBqdXN0IGFzXG4gICAgICAgIC8vIHRyYXZlcnNlQWxsQ2hpbGRyZW4gdXNlZCB0byBkbyBmb3Igb2JqZWN0cyBhcyBjaGlsZHJlblxuICAgICAgICBlc2NhcGVkUHJlZml4ICsgKCAvLyAkRmxvd0ZpeE1lIEZsb3cgaW5jb3JyZWN0bHkgdGhpbmtzIFJlYWN0LlBvcnRhbCBkb2Vzbid0IGhhdmUgYSBrZXlcbiAgICAgICAgbWFwcGVkQ2hpbGQua2V5ICYmICghX2NoaWxkIHx8IF9jaGlsZC5rZXkgIT09IG1hcHBlZENoaWxkLmtleSkgPyAvLyAkRmxvd0ZpeE1lIEZsb3cgaW5jb3JyZWN0bHkgdGhpbmtzIGV4aXN0aW5nIGVsZW1lbnQncyBrZXkgY2FuIGJlIGEgbnVtYmVyXG4gICAgICAgIGVzY2FwZVVzZXJQcm92aWRlZEtleSgnJyArIG1hcHBlZENoaWxkLmtleSkgKyAnLycgOiAnJykgKyBjaGlsZEtleSk7XG4gICAgICB9XG5cbiAgICAgIGFycmF5LnB1c2gobWFwcGVkQ2hpbGQpO1xuICAgIH1cblxuICAgIHJldHVybiAxO1xuICB9XG5cbiAgdmFyIGNoaWxkO1xuICB2YXIgbmV4dE5hbWU7XG4gIHZhciBzdWJ0cmVlQ291bnQgPSAwOyAvLyBDb3VudCBvZiBjaGlsZHJlbiBmb3VuZCBpbiB0aGUgY3VycmVudCBzdWJ0cmVlLlxuXG4gIHZhciBuZXh0TmFtZVByZWZpeCA9IG5hbWVTb0ZhciA9PT0gJycgPyBTRVBBUkFUT1IgOiBuYW1lU29GYXIgKyBTVUJTRVBBUkFUT1I7XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgY2hpbGQgPSBjaGlsZHJlbltpXTtcbiAgICAgIG5leHROYW1lID0gbmV4dE5hbWVQcmVmaXggKyBnZXRFbGVtZW50S2V5KGNoaWxkLCBpKTtcbiAgICAgIHN1YnRyZWVDb3VudCArPSBtYXBJbnRvQXJyYXkoY2hpbGQsIGFycmF5LCBlc2NhcGVkUHJlZml4LCBuZXh0TmFtZSwgY2FsbGJhY2spO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB2YXIgaXRlcmF0b3JGbiA9IGdldEl0ZXJhdG9yRm4oY2hpbGRyZW4pO1xuXG4gICAgaWYgKHR5cGVvZiBpdGVyYXRvckZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB2YXIgaXRlcmFibGVDaGlsZHJlbiA9IGNoaWxkcmVuO1xuXG4gICAgICB7XG4gICAgICAgIC8vIFdhcm4gYWJvdXQgdXNpbmcgTWFwcyBhcyBjaGlsZHJlblxuICAgICAgICBpZiAoaXRlcmF0b3JGbiA9PT0gaXRlcmFibGVDaGlsZHJlbi5lbnRyaWVzKSB7XG4gICAgICAgICAgaWYgKCFkaWRXYXJuQWJvdXRNYXBzKSB7XG4gICAgICAgICAgICB3YXJuKCdVc2luZyBNYXBzIGFzIGNoaWxkcmVuIGlzIG5vdCBzdXBwb3J0ZWQuICcgKyAnVXNlIGFuIGFycmF5IG9mIGtleWVkIFJlYWN0RWxlbWVudHMgaW5zdGVhZC4nKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBkaWRXYXJuQWJvdXRNYXBzID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB2YXIgaXRlcmF0b3IgPSBpdGVyYXRvckZuLmNhbGwoaXRlcmFibGVDaGlsZHJlbik7XG4gICAgICB2YXIgc3RlcDtcbiAgICAgIHZhciBpaSA9IDA7XG5cbiAgICAgIHdoaWxlICghKHN0ZXAgPSBpdGVyYXRvci5uZXh0KCkpLmRvbmUpIHtcbiAgICAgICAgY2hpbGQgPSBzdGVwLnZhbHVlO1xuICAgICAgICBuZXh0TmFtZSA9IG5leHROYW1lUHJlZml4ICsgZ2V0RWxlbWVudEtleShjaGlsZCwgaWkrKyk7XG4gICAgICAgIHN1YnRyZWVDb3VudCArPSBtYXBJbnRvQXJyYXkoY2hpbGQsIGFycmF5LCBlc2NhcGVkUHJlZml4LCBuZXh0TmFtZSwgY2FsbGJhY2spO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHZhciBjaGlsZHJlblN0cmluZyA9ICcnICsgY2hpbGRyZW47XG5cbiAgICAgIHtcbiAgICAgICAge1xuICAgICAgICAgIHRocm93IEVycm9yKCBcIk9iamVjdHMgYXJlIG5vdCB2YWxpZCBhcyBhIFJlYWN0IGNoaWxkIChmb3VuZDogXCIgKyAoY2hpbGRyZW5TdHJpbmcgPT09ICdbb2JqZWN0IE9iamVjdF0nID8gJ29iamVjdCB3aXRoIGtleXMgeycgKyBPYmplY3Qua2V5cyhjaGlsZHJlbikuam9pbignLCAnKSArICd9JyA6IGNoaWxkcmVuU3RyaW5nKSArIFwiKS4gSWYgeW91IG1lYW50IHRvIHJlbmRlciBhIGNvbGxlY3Rpb24gb2YgY2hpbGRyZW4sIHVzZSBhbiBhcnJheSBpbnN0ZWFkLlwiICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3VidHJlZUNvdW50O1xufVxuXG4vKipcbiAqIE1hcHMgY2hpbGRyZW4gdGhhdCBhcmUgdHlwaWNhbGx5IHNwZWNpZmllZCBhcyBgcHJvcHMuY2hpbGRyZW5gLlxuICpcbiAqIFNlZSBodHRwczovL3JlYWN0anMub3JnL2RvY3MvcmVhY3QtYXBpLmh0bWwjcmVhY3RjaGlsZHJlbm1hcFxuICpcbiAqIFRoZSBwcm92aWRlZCBtYXBGdW5jdGlvbihjaGlsZCwgaW5kZXgpIHdpbGwgYmUgY2FsbGVkIGZvciBlYWNoXG4gKiBsZWFmIGNoaWxkLlxuICpcbiAqIEBwYXJhbSB7Pyp9IGNoaWxkcmVuIENoaWxkcmVuIHRyZWUgY29udGFpbmVyLlxuICogQHBhcmFtIHtmdW5jdGlvbigqLCBpbnQpfSBmdW5jIFRoZSBtYXAgZnVuY3Rpb24uXG4gKiBAcGFyYW0geyp9IGNvbnRleHQgQ29udGV4dCBmb3IgbWFwRnVuY3Rpb24uXG4gKiBAcmV0dXJuIHtvYmplY3R9IE9iamVjdCBjb250YWluaW5nIHRoZSBvcmRlcmVkIG1hcCBvZiByZXN1bHRzLlxuICovXG5mdW5jdGlvbiBtYXBDaGlsZHJlbihjaGlsZHJlbiwgZnVuYywgY29udGV4dCkge1xuICBpZiAoY2hpbGRyZW4gPT0gbnVsbCkge1xuICAgIHJldHVybiBjaGlsZHJlbjtcbiAgfVxuXG4gIHZhciByZXN1bHQgPSBbXTtcbiAgdmFyIGNvdW50ID0gMDtcbiAgbWFwSW50b0FycmF5KGNoaWxkcmVuLCByZXN1bHQsICcnLCAnJywgZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgcmV0dXJuIGZ1bmMuY2FsbChjb250ZXh0LCBjaGlsZCwgY291bnQrKyk7XG4gIH0pO1xuICByZXR1cm4gcmVzdWx0O1xufVxuLyoqXG4gKiBDb3VudCB0aGUgbnVtYmVyIG9mIGNoaWxkcmVuIHRoYXQgYXJlIHR5cGljYWxseSBzcGVjaWZpZWQgYXNcbiAqIGBwcm9wcy5jaGlsZHJlbmAuXG4gKlxuICogU2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9yZWFjdC1hcGkuaHRtbCNyZWFjdGNoaWxkcmVuY291bnRcbiAqXG4gKiBAcGFyYW0gez8qfSBjaGlsZHJlbiBDaGlsZHJlbiB0cmVlIGNvbnRhaW5lci5cbiAqIEByZXR1cm4ge251bWJlcn0gVGhlIG51bWJlciBvZiBjaGlsZHJlbi5cbiAqL1xuXG5cbmZ1bmN0aW9uIGNvdW50Q2hpbGRyZW4oY2hpbGRyZW4pIHtcbiAgdmFyIG4gPSAwO1xuICBtYXBDaGlsZHJlbihjaGlsZHJlbiwgZnVuY3Rpb24gKCkge1xuICAgIG4rKzsgLy8gRG9uJ3QgcmV0dXJuIGFueXRoaW5nXG4gIH0pO1xuICByZXR1cm4gbjtcbn1cblxuLyoqXG4gKiBJdGVyYXRlcyB0aHJvdWdoIGNoaWxkcmVuIHRoYXQgYXJlIHR5cGljYWxseSBzcGVjaWZpZWQgYXMgYHByb3BzLmNoaWxkcmVuYC5cbiAqXG4gKiBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL3JlYWN0LWFwaS5odG1sI3JlYWN0Y2hpbGRyZW5mb3JlYWNoXG4gKlxuICogVGhlIHByb3ZpZGVkIGZvckVhY2hGdW5jKGNoaWxkLCBpbmRleCkgd2lsbCBiZSBjYWxsZWQgZm9yIGVhY2hcbiAqIGxlYWYgY2hpbGQuXG4gKlxuICogQHBhcmFtIHs/Kn0gY2hpbGRyZW4gQ2hpbGRyZW4gdHJlZSBjb250YWluZXIuXG4gKiBAcGFyYW0ge2Z1bmN0aW9uKCosIGludCl9IGZvckVhY2hGdW5jXG4gKiBAcGFyYW0geyp9IGZvckVhY2hDb250ZXh0IENvbnRleHQgZm9yIGZvckVhY2hDb250ZXh0LlxuICovXG5mdW5jdGlvbiBmb3JFYWNoQ2hpbGRyZW4oY2hpbGRyZW4sIGZvckVhY2hGdW5jLCBmb3JFYWNoQ29udGV4dCkge1xuICBtYXBDaGlsZHJlbihjaGlsZHJlbiwgZnVuY3Rpb24gKCkge1xuICAgIGZvckVhY2hGdW5jLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IC8vIERvbid0IHJldHVybiBhbnl0aGluZy5cbiAgfSwgZm9yRWFjaENvbnRleHQpO1xufVxuLyoqXG4gKiBGbGF0dGVuIGEgY2hpbGRyZW4gb2JqZWN0ICh0eXBpY2FsbHkgc3BlY2lmaWVkIGFzIGBwcm9wcy5jaGlsZHJlbmApIGFuZFxuICogcmV0dXJuIGFuIGFycmF5IHdpdGggYXBwcm9wcmlhdGVseSByZS1rZXllZCBjaGlsZHJlbi5cbiAqXG4gKiBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL3JlYWN0LWFwaS5odG1sI3JlYWN0Y2hpbGRyZW50b2FycmF5XG4gKi9cblxuXG5mdW5jdGlvbiB0b0FycmF5KGNoaWxkcmVuKSB7XG4gIHJldHVybiBtYXBDaGlsZHJlbihjaGlsZHJlbiwgZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgcmV0dXJuIGNoaWxkO1xuICB9KSB8fCBbXTtcbn1cbi8qKlxuICogUmV0dXJucyB0aGUgZmlyc3QgY2hpbGQgaW4gYSBjb2xsZWN0aW9uIG9mIGNoaWxkcmVuIGFuZCB2ZXJpZmllcyB0aGF0IHRoZXJlXG4gKiBpcyBvbmx5IG9uZSBjaGlsZCBpbiB0aGUgY29sbGVjdGlvbi5cbiAqXG4gKiBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL3JlYWN0LWFwaS5odG1sI3JlYWN0Y2hpbGRyZW5vbmx5XG4gKlxuICogVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gb2YgdGhpcyBmdW5jdGlvbiBhc3N1bWVzIHRoYXQgYSBzaW5nbGUgY2hpbGQgZ2V0c1xuICogcGFzc2VkIHdpdGhvdXQgYSB3cmFwcGVyLCBidXQgdGhlIHB1cnBvc2Ugb2YgdGhpcyBoZWxwZXIgZnVuY3Rpb24gaXMgdG9cbiAqIGFic3RyYWN0IGF3YXkgdGhlIHBhcnRpY3VsYXIgc3RydWN0dXJlIG9mIGNoaWxkcmVuLlxuICpcbiAqIEBwYXJhbSB7P29iamVjdH0gY2hpbGRyZW4gQ2hpbGQgY29sbGVjdGlvbiBzdHJ1Y3R1cmUuXG4gKiBAcmV0dXJuIHtSZWFjdEVsZW1lbnR9IFRoZSBmaXJzdCBhbmQgb25seSBgUmVhY3RFbGVtZW50YCBjb250YWluZWQgaW4gdGhlXG4gKiBzdHJ1Y3R1cmUuXG4gKi9cblxuXG5mdW5jdGlvbiBvbmx5Q2hpbGQoY2hpbGRyZW4pIHtcbiAgaWYgKCFpc1ZhbGlkRWxlbWVudChjaGlsZHJlbikpIHtcbiAgICB7XG4gICAgICB0aHJvdyBFcnJvciggXCJSZWFjdC5DaGlsZHJlbi5vbmx5IGV4cGVjdGVkIHRvIHJlY2VpdmUgYSBzaW5nbGUgUmVhY3QgZWxlbWVudCBjaGlsZC5cIiApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjaGlsZHJlbjtcbn1cblxuZnVuY3Rpb24gY3JlYXRlQ29udGV4dChkZWZhdWx0VmFsdWUsIGNhbGN1bGF0ZUNoYW5nZWRCaXRzKSB7XG4gIGlmIChjYWxjdWxhdGVDaGFuZ2VkQml0cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgY2FsY3VsYXRlQ2hhbmdlZEJpdHMgPSBudWxsO1xuICB9IGVsc2Uge1xuICAgIHtcbiAgICAgIGlmIChjYWxjdWxhdGVDaGFuZ2VkQml0cyAhPT0gbnVsbCAmJiB0eXBlb2YgY2FsY3VsYXRlQ2hhbmdlZEJpdHMgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgZXJyb3IoJ2NyZWF0ZUNvbnRleHQ6IEV4cGVjdGVkIHRoZSBvcHRpb25hbCBzZWNvbmQgYXJndW1lbnQgdG8gYmUgYSAnICsgJ2Z1bmN0aW9uLiBJbnN0ZWFkIHJlY2VpdmVkOiAlcycsIGNhbGN1bGF0ZUNoYW5nZWRCaXRzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB2YXIgY29udGV4dCA9IHtcbiAgICAkJHR5cGVvZjogUkVBQ1RfQ09OVEVYVF9UWVBFLFxuICAgIF9jYWxjdWxhdGVDaGFuZ2VkQml0czogY2FsY3VsYXRlQ2hhbmdlZEJpdHMsXG4gICAgLy8gQXMgYSB3b3JrYXJvdW5kIHRvIHN1cHBvcnQgbXVsdGlwbGUgY29uY3VycmVudCByZW5kZXJlcnMsIHdlIGNhdGVnb3JpemVcbiAgICAvLyBzb21lIHJlbmRlcmVycyBhcyBwcmltYXJ5IGFuZCBvdGhlcnMgYXMgc2Vjb25kYXJ5LiBXZSBvbmx5IGV4cGVjdFxuICAgIC8vIHRoZXJlIHRvIGJlIHR3byBjb25jdXJyZW50IHJlbmRlcmVycyBhdCBtb3N0OiBSZWFjdCBOYXRpdmUgKHByaW1hcnkpIGFuZFxuICAgIC8vIEZhYnJpYyAoc2Vjb25kYXJ5KTsgUmVhY3QgRE9NIChwcmltYXJ5KSBhbmQgUmVhY3QgQVJUIChzZWNvbmRhcnkpLlxuICAgIC8vIFNlY29uZGFyeSByZW5kZXJlcnMgc3RvcmUgdGhlaXIgY29udGV4dCB2YWx1ZXMgb24gc2VwYXJhdGUgZmllbGRzLlxuICAgIF9jdXJyZW50VmFsdWU6IGRlZmF1bHRWYWx1ZSxcbiAgICBfY3VycmVudFZhbHVlMjogZGVmYXVsdFZhbHVlLFxuICAgIC8vIFVzZWQgdG8gdHJhY2sgaG93IG1hbnkgY29uY3VycmVudCByZW5kZXJlcnMgdGhpcyBjb250ZXh0IGN1cnJlbnRseVxuICAgIC8vIHN1cHBvcnRzIHdpdGhpbiBpbiBhIHNpbmdsZSByZW5kZXJlci4gU3VjaCBhcyBwYXJhbGxlbCBzZXJ2ZXIgcmVuZGVyaW5nLlxuICAgIF90aHJlYWRDb3VudDogMCxcbiAgICAvLyBUaGVzZSBhcmUgY2lyY3VsYXJcbiAgICBQcm92aWRlcjogbnVsbCxcbiAgICBDb25zdW1lcjogbnVsbFxuICB9O1xuICBjb250ZXh0LlByb3ZpZGVyID0ge1xuICAgICQkdHlwZW9mOiBSRUFDVF9QUk9WSURFUl9UWVBFLFxuICAgIF9jb250ZXh0OiBjb250ZXh0XG4gIH07XG4gIHZhciBoYXNXYXJuZWRBYm91dFVzaW5nTmVzdGVkQ29udGV4dENvbnN1bWVycyA9IGZhbHNlO1xuICB2YXIgaGFzV2FybmVkQWJvdXRVc2luZ0NvbnN1bWVyUHJvdmlkZXIgPSBmYWxzZTtcbiAgdmFyIGhhc1dhcm5lZEFib3V0RGlzcGxheU5hbWVPbkNvbnN1bWVyID0gZmFsc2U7XG5cbiAge1xuICAgIC8vIEEgc2VwYXJhdGUgb2JqZWN0LCBidXQgcHJveGllcyBiYWNrIHRvIHRoZSBvcmlnaW5hbCBjb250ZXh0IG9iamVjdCBmb3JcbiAgICAvLyBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS4gSXQgaGFzIGEgZGlmZmVyZW50ICQkdHlwZW9mLCBzbyB3ZSBjYW4gcHJvcGVybHlcbiAgICAvLyB3YXJuIGZvciB0aGUgaW5jb3JyZWN0IHVzYWdlIG9mIENvbnRleHQgYXMgYSBDb25zdW1lci5cbiAgICB2YXIgQ29uc3VtZXIgPSB7XG4gICAgICAkJHR5cGVvZjogUkVBQ1RfQ09OVEVYVF9UWVBFLFxuICAgICAgX2NvbnRleHQ6IGNvbnRleHQsXG4gICAgICBfY2FsY3VsYXRlQ2hhbmdlZEJpdHM6IGNvbnRleHQuX2NhbGN1bGF0ZUNoYW5nZWRCaXRzXG4gICAgfTsgLy8gJEZsb3dGaXhNZTogRmxvdyBjb21wbGFpbnMgYWJvdXQgbm90IHNldHRpbmcgYSB2YWx1ZSwgd2hpY2ggaXMgaW50ZW50aW9uYWwgaGVyZVxuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoQ29uc3VtZXIsIHtcbiAgICAgIFByb3ZpZGVyOiB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGlmICghaGFzV2FybmVkQWJvdXRVc2luZ0NvbnN1bWVyUHJvdmlkZXIpIHtcbiAgICAgICAgICAgIGhhc1dhcm5lZEFib3V0VXNpbmdDb25zdW1lclByb3ZpZGVyID0gdHJ1ZTtcblxuICAgICAgICAgICAgZXJyb3IoJ1JlbmRlcmluZyA8Q29udGV4dC5Db25zdW1lci5Qcm92aWRlcj4gaXMgbm90IHN1cHBvcnRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluICcgKyAnYSBmdXR1cmUgbWFqb3IgcmVsZWFzZS4gRGlkIHlvdSBtZWFuIHRvIHJlbmRlciA8Q29udGV4dC5Qcm92aWRlcj4gaW5zdGVhZD8nKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gY29udGV4dC5Qcm92aWRlcjtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAoX1Byb3ZpZGVyKSB7XG4gICAgICAgICAgY29udGV4dC5Qcm92aWRlciA9IF9Qcm92aWRlcjtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIF9jdXJyZW50VmFsdWU6IHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIGNvbnRleHQuX2N1cnJlbnRWYWx1ZTtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAoX2N1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgIGNvbnRleHQuX2N1cnJlbnRWYWx1ZSA9IF9jdXJyZW50VmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBfY3VycmVudFZhbHVlMjoge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gY29udGV4dC5fY3VycmVudFZhbHVlMjtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAoX2N1cnJlbnRWYWx1ZTIpIHtcbiAgICAgICAgICBjb250ZXh0Ll9jdXJyZW50VmFsdWUyID0gX2N1cnJlbnRWYWx1ZTI7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBfdGhyZWFkQ291bnQ6IHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIGNvbnRleHQuX3RocmVhZENvdW50O1xuICAgICAgICB9LFxuICAgICAgICBzZXQ6IGZ1bmN0aW9uIChfdGhyZWFkQ291bnQpIHtcbiAgICAgICAgICBjb250ZXh0Ll90aHJlYWRDb3VudCA9IF90aHJlYWRDb3VudDtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIENvbnN1bWVyOiB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGlmICghaGFzV2FybmVkQWJvdXRVc2luZ05lc3RlZENvbnRleHRDb25zdW1lcnMpIHtcbiAgICAgICAgICAgIGhhc1dhcm5lZEFib3V0VXNpbmdOZXN0ZWRDb250ZXh0Q29uc3VtZXJzID0gdHJ1ZTtcblxuICAgICAgICAgICAgZXJyb3IoJ1JlbmRlcmluZyA8Q29udGV4dC5Db25zdW1lci5Db25zdW1lcj4gaXMgbm90IHN1cHBvcnRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluICcgKyAnYSBmdXR1cmUgbWFqb3IgcmVsZWFzZS4gRGlkIHlvdSBtZWFuIHRvIHJlbmRlciA8Q29udGV4dC5Db25zdW1lcj4gaW5zdGVhZD8nKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gY29udGV4dC5Db25zdW1lcjtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGRpc3BsYXlOYW1lOiB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBjb250ZXh0LmRpc3BsYXlOYW1lO1xuICAgICAgICB9LFxuICAgICAgICBzZXQ6IGZ1bmN0aW9uIChkaXNwbGF5TmFtZSkge1xuICAgICAgICAgIGlmICghaGFzV2FybmVkQWJvdXREaXNwbGF5TmFtZU9uQ29uc3VtZXIpIHtcbiAgICAgICAgICAgIHdhcm4oJ1NldHRpbmcgYGRpc3BsYXlOYW1lYCBvbiBDb250ZXh0LkNvbnN1bWVyIGhhcyBubyBlZmZlY3QuICcgKyBcIllvdSBzaG91bGQgc2V0IGl0IGRpcmVjdGx5IG9uIHRoZSBjb250ZXh0IHdpdGggQ29udGV4dC5kaXNwbGF5TmFtZSA9ICclcycuXCIsIGRpc3BsYXlOYW1lKTtcblxuICAgICAgICAgICAgaGFzV2FybmVkQWJvdXREaXNwbGF5TmFtZU9uQ29uc3VtZXIgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pOyAvLyAkRmxvd0ZpeE1lOiBGbG93IGNvbXBsYWlucyBhYm91dCBtaXNzaW5nIHByb3BlcnRpZXMgYmVjYXVzZSBpdCBkb2Vzbid0IHVuZGVyc3RhbmQgZGVmaW5lUHJvcGVydHlcblxuICAgIGNvbnRleHQuQ29uc3VtZXIgPSBDb25zdW1lcjtcbiAgfVxuXG4gIHtcbiAgICBjb250ZXh0Ll9jdXJyZW50UmVuZGVyZXIgPSBudWxsO1xuICAgIGNvbnRleHQuX2N1cnJlbnRSZW5kZXJlcjIgPSBudWxsO1xuICB9XG5cbiAgcmV0dXJuIGNvbnRleHQ7XG59XG5cbnZhciBVbmluaXRpYWxpemVkID0gLTE7XG52YXIgUGVuZGluZyA9IDA7XG52YXIgUmVzb2x2ZWQgPSAxO1xudmFyIFJlamVjdGVkID0gMjtcblxuZnVuY3Rpb24gbGF6eUluaXRpYWxpemVyKHBheWxvYWQpIHtcbiAgaWYgKHBheWxvYWQuX3N0YXR1cyA9PT0gVW5pbml0aWFsaXplZCkge1xuICAgIHZhciBjdG9yID0gcGF5bG9hZC5fcmVzdWx0O1xuICAgIHZhciB0aGVuYWJsZSA9IGN0b3IoKTsgLy8gVHJhbnNpdGlvbiB0byB0aGUgbmV4dCBzdGF0ZS5cblxuICAgIHZhciBwZW5kaW5nID0gcGF5bG9hZDtcbiAgICBwZW5kaW5nLl9zdGF0dXMgPSBQZW5kaW5nO1xuICAgIHBlbmRpbmcuX3Jlc3VsdCA9IHRoZW5hYmxlO1xuICAgIHRoZW5hYmxlLnRoZW4oZnVuY3Rpb24gKG1vZHVsZU9iamVjdCkge1xuICAgICAgaWYgKHBheWxvYWQuX3N0YXR1cyA9PT0gUGVuZGluZykge1xuICAgICAgICB2YXIgZGVmYXVsdEV4cG9ydCA9IG1vZHVsZU9iamVjdC5kZWZhdWx0O1xuXG4gICAgICAgIHtcbiAgICAgICAgICBpZiAoZGVmYXVsdEV4cG9ydCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBlcnJvcignbGF6eTogRXhwZWN0ZWQgdGhlIHJlc3VsdCBvZiBhIGR5bmFtaWMgaW1wb3J0KCkgY2FsbC4gJyArICdJbnN0ZWFkIHJlY2VpdmVkOiAlc1xcblxcbllvdXIgY29kZSBzaG91bGQgbG9vayBsaWtlOiBcXG4gICcgKyAvLyBCcmVhayB1cCBpbXBvcnRzIHRvIGF2b2lkIGFjY2lkZW50YWxseSBwYXJzaW5nIHRoZW0gYXMgZGVwZW5kZW5jaWVzLlxuICAgICAgICAgICAgJ2NvbnN0IE15Q29tcG9uZW50ID0gbGF6eSgoKSA9PiBpbXAnICsgXCJvcnQoJy4vTXlDb21wb25lbnQnKSlcIiwgbW9kdWxlT2JqZWN0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gLy8gVHJhbnNpdGlvbiB0byB0aGUgbmV4dCBzdGF0ZS5cblxuXG4gICAgICAgIHZhciByZXNvbHZlZCA9IHBheWxvYWQ7XG4gICAgICAgIHJlc29sdmVkLl9zdGF0dXMgPSBSZXNvbHZlZDtcbiAgICAgICAgcmVzb2x2ZWQuX3Jlc3VsdCA9IGRlZmF1bHRFeHBvcnQ7XG4gICAgICB9XG4gICAgfSwgZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICBpZiAocGF5bG9hZC5fc3RhdHVzID09PSBQZW5kaW5nKSB7XG4gICAgICAgIC8vIFRyYW5zaXRpb24gdG8gdGhlIG5leHQgc3RhdGUuXG4gICAgICAgIHZhciByZWplY3RlZCA9IHBheWxvYWQ7XG4gICAgICAgIHJlamVjdGVkLl9zdGF0dXMgPSBSZWplY3RlZDtcbiAgICAgICAgcmVqZWN0ZWQuX3Jlc3VsdCA9IGVycm9yO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgaWYgKHBheWxvYWQuX3N0YXR1cyA9PT0gUmVzb2x2ZWQpIHtcbiAgICByZXR1cm4gcGF5bG9hZC5fcmVzdWx0O1xuICB9IGVsc2Uge1xuICAgIHRocm93IHBheWxvYWQuX3Jlc3VsdDtcbiAgfVxufVxuXG5mdW5jdGlvbiBsYXp5KGN0b3IpIHtcbiAgdmFyIHBheWxvYWQgPSB7XG4gICAgLy8gV2UgdXNlIHRoZXNlIGZpZWxkcyB0byBzdG9yZSB0aGUgcmVzdWx0LlxuICAgIF9zdGF0dXM6IC0xLFxuICAgIF9yZXN1bHQ6IGN0b3JcbiAgfTtcbiAgdmFyIGxhenlUeXBlID0ge1xuICAgICQkdHlwZW9mOiBSRUFDVF9MQVpZX1RZUEUsXG4gICAgX3BheWxvYWQ6IHBheWxvYWQsXG4gICAgX2luaXQ6IGxhenlJbml0aWFsaXplclxuICB9O1xuXG4gIHtcbiAgICAvLyBJbiBwcm9kdWN0aW9uLCB0aGlzIHdvdWxkIGp1c3Qgc2V0IGl0IG9uIHRoZSBvYmplY3QuXG4gICAgdmFyIGRlZmF1bHRQcm9wcztcbiAgICB2YXIgcHJvcFR5cGVzOyAvLyAkRmxvd0ZpeE1lXG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhsYXp5VHlwZSwge1xuICAgICAgZGVmYXVsdFByb3BzOiB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIGRlZmF1bHRQcm9wcztcbiAgICAgICAgfSxcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAobmV3RGVmYXVsdFByb3BzKSB7XG4gICAgICAgICAgZXJyb3IoJ1JlYWN0LmxhenkoLi4uKTogSXQgaXMgbm90IHN1cHBvcnRlZCB0byBhc3NpZ24gYGRlZmF1bHRQcm9wc2AgdG8gJyArICdhIGxhenkgY29tcG9uZW50IGltcG9ydC4gRWl0aGVyIHNwZWNpZnkgdGhlbSB3aGVyZSB0aGUgY29tcG9uZW50ICcgKyAnaXMgZGVmaW5lZCwgb3IgY3JlYXRlIGEgd3JhcHBpbmcgY29tcG9uZW50IGFyb3VuZCBpdC4nKTtcblxuICAgICAgICAgIGRlZmF1bHRQcm9wcyA9IG5ld0RlZmF1bHRQcm9wczsgLy8gTWF0Y2ggcHJvZHVjdGlvbiBiZWhhdmlvciBtb3JlIGNsb3NlbHk6XG4gICAgICAgICAgLy8gJEZsb3dGaXhNZVxuXG4gICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGxhenlUeXBlLCAnZGVmYXVsdFByb3BzJywge1xuICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgcHJvcFR5cGVzOiB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIHByb3BUeXBlcztcbiAgICAgICAgfSxcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAobmV3UHJvcFR5cGVzKSB7XG4gICAgICAgICAgZXJyb3IoJ1JlYWN0LmxhenkoLi4uKTogSXQgaXMgbm90IHN1cHBvcnRlZCB0byBhc3NpZ24gYHByb3BUeXBlc2AgdG8gJyArICdhIGxhenkgY29tcG9uZW50IGltcG9ydC4gRWl0aGVyIHNwZWNpZnkgdGhlbSB3aGVyZSB0aGUgY29tcG9uZW50ICcgKyAnaXMgZGVmaW5lZCwgb3IgY3JlYXRlIGEgd3JhcHBpbmcgY29tcG9uZW50IGFyb3VuZCBpdC4nKTtcblxuICAgICAgICAgIHByb3BUeXBlcyA9IG5ld1Byb3BUeXBlczsgLy8gTWF0Y2ggcHJvZHVjdGlvbiBiZWhhdmlvciBtb3JlIGNsb3NlbHk6XG4gICAgICAgICAgLy8gJEZsb3dGaXhNZVxuXG4gICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGxhenlUeXBlLCAncHJvcFR5cGVzJywge1xuICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gbGF6eVR5cGU7XG59XG5cbmZ1bmN0aW9uIGZvcndhcmRSZWYocmVuZGVyKSB7XG4gIHtcbiAgICBpZiAocmVuZGVyICE9IG51bGwgJiYgcmVuZGVyLiQkdHlwZW9mID09PSBSRUFDVF9NRU1PX1RZUEUpIHtcbiAgICAgIGVycm9yKCdmb3J3YXJkUmVmIHJlcXVpcmVzIGEgcmVuZGVyIGZ1bmN0aW9uIGJ1dCByZWNlaXZlZCBhIGBtZW1vYCAnICsgJ2NvbXBvbmVudC4gSW5zdGVhZCBvZiBmb3J3YXJkUmVmKG1lbW8oLi4uKSksIHVzZSAnICsgJ21lbW8oZm9yd2FyZFJlZiguLi4pKS4nKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiByZW5kZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGVycm9yKCdmb3J3YXJkUmVmIHJlcXVpcmVzIGEgcmVuZGVyIGZ1bmN0aW9uIGJ1dCB3YXMgZ2l2ZW4gJXMuJywgcmVuZGVyID09PSBudWxsID8gJ251bGwnIDogdHlwZW9mIHJlbmRlcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChyZW5kZXIubGVuZ3RoICE9PSAwICYmIHJlbmRlci5sZW5ndGggIT09IDIpIHtcbiAgICAgICAgZXJyb3IoJ2ZvcndhcmRSZWYgcmVuZGVyIGZ1bmN0aW9ucyBhY2NlcHQgZXhhY3RseSB0d28gcGFyYW1ldGVyczogcHJvcHMgYW5kIHJlZi4gJXMnLCByZW5kZXIubGVuZ3RoID09PSAxID8gJ0RpZCB5b3UgZm9yZ2V0IHRvIHVzZSB0aGUgcmVmIHBhcmFtZXRlcj8nIDogJ0FueSBhZGRpdGlvbmFsIHBhcmFtZXRlciB3aWxsIGJlIHVuZGVmaW5lZC4nKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocmVuZGVyICE9IG51bGwpIHtcbiAgICAgIGlmIChyZW5kZXIuZGVmYXVsdFByb3BzICE9IG51bGwgfHwgcmVuZGVyLnByb3BUeXBlcyAhPSBudWxsKSB7XG4gICAgICAgIGVycm9yKCdmb3J3YXJkUmVmIHJlbmRlciBmdW5jdGlvbnMgZG8gbm90IHN1cHBvcnQgcHJvcFR5cGVzIG9yIGRlZmF1bHRQcm9wcy4gJyArICdEaWQgeW91IGFjY2lkZW50YWxseSBwYXNzIGEgUmVhY3QgY29tcG9uZW50PycpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHZhciBlbGVtZW50VHlwZSA9IHtcbiAgICAkJHR5cGVvZjogUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSxcbiAgICByZW5kZXI6IHJlbmRlclxuICB9O1xuXG4gIHtcbiAgICB2YXIgb3duTmFtZTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZWxlbWVudFR5cGUsICdkaXNwbGF5TmFtZScsIHtcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBvd25OYW1lO1xuICAgICAgfSxcbiAgICAgIHNldDogZnVuY3Rpb24gKG5hbWUpIHtcbiAgICAgICAgb3duTmFtZSA9IG5hbWU7XG5cbiAgICAgICAgaWYgKHJlbmRlci5kaXNwbGF5TmFtZSA9PSBudWxsKSB7XG4gICAgICAgICAgcmVuZGVyLmRpc3BsYXlOYW1lID0gbmFtZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGVsZW1lbnRUeXBlO1xufVxuXG4vLyBGaWx0ZXIgY2VydGFpbiBET00gYXR0cmlidXRlcyAoZS5nLiBzcmMsIGhyZWYpIGlmIHRoZWlyIHZhbHVlcyBhcmUgZW1wdHkgc3RyaW5ncy5cblxudmFyIGVuYWJsZVNjb3BlQVBJID0gZmFsc2U7IC8vIEV4cGVyaW1lbnRhbCBDcmVhdGUgRXZlbnQgSGFuZGxlIEFQSS5cblxuZnVuY3Rpb24gaXNWYWxpZEVsZW1lbnRUeXBlKHR5cGUpIHtcbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiB0cnVlO1xuICB9IC8vIE5vdGU6IHR5cGVvZiBtaWdodCBiZSBvdGhlciB0aGFuICdzeW1ib2wnIG9yICdudW1iZXInIChlLmcuIGlmIGl0J3MgYSBwb2x5ZmlsbCkuXG5cblxuICBpZiAodHlwZSA9PT0gZXhwb3J0cy5GcmFnbWVudCB8fCB0eXBlID09PSBleHBvcnRzLlByb2ZpbGVyIHx8IHR5cGUgPT09IFJFQUNUX0RFQlVHX1RSQUNJTkdfTU9ERV9UWVBFIHx8IHR5cGUgPT09IGV4cG9ydHMuU3RyaWN0TW9kZSB8fCB0eXBlID09PSBleHBvcnRzLlN1c3BlbnNlIHx8IHR5cGUgPT09IFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9MRUdBQ1lfSElEREVOX1RZUEUgfHwgZW5hYmxlU2NvcGVBUEkgKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdvYmplY3QnICYmIHR5cGUgIT09IG51bGwpIHtcbiAgICBpZiAodHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTEFaWV9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX01FTU9fVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9QUk9WSURFUl9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0NPTlRFWFRfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0ZVTkRBTUVOVEFMX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQkxPQ0tfVFlQRSB8fCB0eXBlWzBdID09PSBSRUFDVF9TRVJWRVJfQkxPQ0tfVFlQRSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBtZW1vKHR5cGUsIGNvbXBhcmUpIHtcbiAge1xuICAgIGlmICghaXNWYWxpZEVsZW1lbnRUeXBlKHR5cGUpKSB7XG4gICAgICBlcnJvcignbWVtbzogVGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgYSBjb21wb25lbnQuIEluc3RlYWQgJyArICdyZWNlaXZlZDogJXMnLCB0eXBlID09PSBudWxsID8gJ251bGwnIDogdHlwZW9mIHR5cGUpO1xuICAgIH1cbiAgfVxuXG4gIHZhciBlbGVtZW50VHlwZSA9IHtcbiAgICAkJHR5cGVvZjogUkVBQ1RfTUVNT19UWVBFLFxuICAgIHR5cGU6IHR5cGUsXG4gICAgY29tcGFyZTogY29tcGFyZSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGNvbXBhcmVcbiAgfTtcblxuICB7XG4gICAgdmFyIG93bk5hbWU7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGVsZW1lbnRUeXBlLCAnZGlzcGxheU5hbWUnLCB7XG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gb3duTmFtZTtcbiAgICAgIH0sXG4gICAgICBzZXQ6IGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgICAgIG93bk5hbWUgPSBuYW1lO1xuXG4gICAgICAgIGlmICh0eXBlLmRpc3BsYXlOYW1lID09IG51bGwpIHtcbiAgICAgICAgICB0eXBlLmRpc3BsYXlOYW1lID0gbmFtZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGVsZW1lbnRUeXBlO1xufVxuXG5mdW5jdGlvbiByZXNvbHZlRGlzcGF0Y2hlcigpIHtcbiAgdmFyIGRpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyLmN1cnJlbnQ7XG5cbiAgaWYgKCEoZGlzcGF0Y2hlciAhPT0gbnVsbCkpIHtcbiAgICB7XG4gICAgICB0aHJvdyBFcnJvciggXCJJbnZhbGlkIGhvb2sgY2FsbC4gSG9va3MgY2FuIG9ubHkgYmUgY2FsbGVkIGluc2lkZSBvZiB0aGUgYm9keSBvZiBhIGZ1bmN0aW9uIGNvbXBvbmVudC4gVGhpcyBjb3VsZCBoYXBwZW4gZm9yIG9uZSBvZiB0aGUgZm9sbG93aW5nIHJlYXNvbnM6XFxuMS4gWW91IG1pZ2h0IGhhdmUgbWlzbWF0Y2hpbmcgdmVyc2lvbnMgb2YgUmVhY3QgYW5kIHRoZSByZW5kZXJlciAoc3VjaCBhcyBSZWFjdCBET00pXFxuMi4gWW91IG1pZ2h0IGJlIGJyZWFraW5nIHRoZSBSdWxlcyBvZiBIb29rc1xcbjMuIFlvdSBtaWdodCBoYXZlIG1vcmUgdGhhbiBvbmUgY29weSBvZiBSZWFjdCBpbiB0aGUgc2FtZSBhcHBcXG5TZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL2ludmFsaWQtaG9vay1jYWxsIGZvciB0aXBzIGFib3V0IGhvdyB0byBkZWJ1ZyBhbmQgZml4IHRoaXMgcHJvYmxlbS5cIiApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkaXNwYXRjaGVyO1xufVxuXG5mdW5jdGlvbiB1c2VDb250ZXh0KENvbnRleHQsIHVuc3RhYmxlX29ic2VydmVkQml0cykge1xuICB2YXIgZGlzcGF0Y2hlciA9IHJlc29sdmVEaXNwYXRjaGVyKCk7XG5cbiAge1xuICAgIGlmICh1bnN0YWJsZV9vYnNlcnZlZEJpdHMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgZXJyb3IoJ3VzZUNvbnRleHQoKSBzZWNvbmQgYXJndW1lbnQgaXMgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSAnICsgJ3VzZSBpbiBSZWFjdC4gUGFzc2luZyBpdCBpcyBub3Qgc3VwcG9ydGVkLiAnICsgJ1lvdSBwYXNzZWQ6ICVzLiVzJywgdW5zdGFibGVfb2JzZXJ2ZWRCaXRzLCB0eXBlb2YgdW5zdGFibGVfb2JzZXJ2ZWRCaXRzID09PSAnbnVtYmVyJyAmJiBBcnJheS5pc0FycmF5KGFyZ3VtZW50c1syXSkgPyAnXFxuXFxuRGlkIHlvdSBjYWxsIGFycmF5Lm1hcCh1c2VDb250ZXh0KT8gJyArICdDYWxsaW5nIEhvb2tzIGluc2lkZSBhIGxvb3AgaXMgbm90IHN1cHBvcnRlZC4gJyArICdMZWFybiBtb3JlIGF0IGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9ydWxlcy1vZi1ob29rcycgOiAnJyk7XG4gICAgfSAvLyBUT0RPOiBhZGQgYSBtb3JlIGdlbmVyaWMgd2FybmluZyBmb3IgaW52YWxpZCB2YWx1ZXMuXG5cblxuICAgIGlmIChDb250ZXh0Ll9jb250ZXh0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHZhciByZWFsQ29udGV4dCA9IENvbnRleHQuX2NvbnRleHQ7IC8vIERvbid0IGRlZHVwbGljYXRlIGJlY2F1c2UgdGhpcyBsZWdpdGltYXRlbHkgY2F1c2VzIGJ1Z3NcbiAgICAgIC8vIGFuZCBub2JvZHkgc2hvdWxkIGJlIHVzaW5nIHRoaXMgaW4gZXhpc3RpbmcgY29kZS5cblxuICAgICAgaWYgKHJlYWxDb250ZXh0LkNvbnN1bWVyID09PSBDb250ZXh0KSB7XG4gICAgICAgIGVycm9yKCdDYWxsaW5nIHVzZUNvbnRleHQoQ29udGV4dC5Db25zdW1lcikgaXMgbm90IHN1cHBvcnRlZCwgbWF5IGNhdXNlIGJ1Z3MsIGFuZCB3aWxsIGJlICcgKyAncmVtb3ZlZCBpbiBhIGZ1dHVyZSBtYWpvciByZWxlYXNlLiBEaWQgeW91IG1lYW4gdG8gY2FsbCB1c2VDb250ZXh0KENvbnRleHQpIGluc3RlYWQ/Jyk7XG4gICAgICB9IGVsc2UgaWYgKHJlYWxDb250ZXh0LlByb3ZpZGVyID09PSBDb250ZXh0KSB7XG4gICAgICAgIGVycm9yKCdDYWxsaW5nIHVzZUNvbnRleHQoQ29udGV4dC5Qcm92aWRlcikgaXMgbm90IHN1cHBvcnRlZC4gJyArICdEaWQgeW91IG1lYW4gdG8gY2FsbCB1c2VDb250ZXh0KENvbnRleHQpIGluc3RlYWQ/Jyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlQ29udGV4dChDb250ZXh0LCB1bnN0YWJsZV9vYnNlcnZlZEJpdHMpO1xufVxuZnVuY3Rpb24gdXNlU3RhdGUoaW5pdGlhbFN0YXRlKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlU3RhdGUoaW5pdGlhbFN0YXRlKTtcbn1cbmZ1bmN0aW9uIHVzZVJlZHVjZXIocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCkge1xuICB2YXIgZGlzcGF0Y2hlciA9IHJlc29sdmVEaXNwYXRjaGVyKCk7XG4gIHJldHVybiBkaXNwYXRjaGVyLnVzZVJlZHVjZXIocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCk7XG59XG5mdW5jdGlvbiB1c2VSZWYoaW5pdGlhbFZhbHVlKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlUmVmKGluaXRpYWxWYWx1ZSk7XG59XG5mdW5jdGlvbiB1c2VFZmZlY3QoY3JlYXRlLCBkZXBzKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlRWZmZWN0KGNyZWF0ZSwgZGVwcyk7XG59XG5mdW5jdGlvbiB1c2VMYXlvdXRFZmZlY3QoY3JlYXRlLCBkZXBzKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlTGF5b3V0RWZmZWN0KGNyZWF0ZSwgZGVwcyk7XG59XG5mdW5jdGlvbiB1c2VDYWxsYmFjayhjYWxsYmFjaywgZGVwcykge1xuICB2YXIgZGlzcGF0Y2hlciA9IHJlc29sdmVEaXNwYXRjaGVyKCk7XG4gIHJldHVybiBkaXNwYXRjaGVyLnVzZUNhbGxiYWNrKGNhbGxiYWNrLCBkZXBzKTtcbn1cbmZ1bmN0aW9uIHVzZU1lbW8oY3JlYXRlLCBkZXBzKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlTWVtbyhjcmVhdGUsIGRlcHMpO1xufVxuZnVuY3Rpb24gdXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsIGNyZWF0ZSwgZGVwcykge1xuICB2YXIgZGlzcGF0Y2hlciA9IHJlc29sdmVEaXNwYXRjaGVyKCk7XG4gIHJldHVybiBkaXNwYXRjaGVyLnVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCBjcmVhdGUsIGRlcHMpO1xufVxuZnVuY3Rpb24gdXNlRGVidWdWYWx1ZSh2YWx1ZSwgZm9ybWF0dGVyRm4pIHtcbiAge1xuICAgIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgICByZXR1cm4gZGlzcGF0Y2hlci51c2VEZWJ1Z1ZhbHVlKHZhbHVlLCBmb3JtYXR0ZXJGbik7XG4gIH1cbn1cblxuLy8gSGVscGVycyB0byBwYXRjaCBjb25zb2xlLmxvZ3MgdG8gYXZvaWQgbG9nZ2luZyBkdXJpbmcgc2lkZS1lZmZlY3QgZnJlZVxuLy8gcmVwbGF5aW5nIG9uIHJlbmRlciBmdW5jdGlvbi4gVGhpcyBjdXJyZW50bHkgb25seSBwYXRjaGVzIHRoZSBvYmplY3Rcbi8vIGxhemlseSB3aGljaCB3b24ndCBjb3ZlciBpZiB0aGUgbG9nIGZ1bmN0aW9uIHdhcyBleHRyYWN0ZWQgZWFnZXJseS5cbi8vIFdlIGNvdWxkIGFsc28gZWFnZXJseSBwYXRjaCB0aGUgbWV0aG9kLlxudmFyIGRpc2FibGVkRGVwdGggPSAwO1xudmFyIHByZXZMb2c7XG52YXIgcHJldkluZm87XG52YXIgcHJldldhcm47XG52YXIgcHJldkVycm9yO1xudmFyIHByZXZHcm91cDtcbnZhciBwcmV2R3JvdXBDb2xsYXBzZWQ7XG52YXIgcHJldkdyb3VwRW5kO1xuXG5mdW5jdGlvbiBkaXNhYmxlZExvZygpIHt9XG5cbmRpc2FibGVkTG9nLl9fcmVhY3REaXNhYmxlZExvZyA9IHRydWU7XG5mdW5jdGlvbiBkaXNhYmxlTG9ncygpIHtcbiAge1xuICAgIGlmIChkaXNhYmxlZERlcHRoID09PSAwKSB7XG4gICAgICAvKiBlc2xpbnQtZGlzYWJsZSByZWFjdC1pbnRlcm5hbC9uby1wcm9kdWN0aW9uLWxvZ2dpbmcgKi9cbiAgICAgIHByZXZMb2cgPSBjb25zb2xlLmxvZztcbiAgICAgIHByZXZJbmZvID0gY29uc29sZS5pbmZvO1xuICAgICAgcHJldldhcm4gPSBjb25zb2xlLndhcm47XG4gICAgICBwcmV2RXJyb3IgPSBjb25zb2xlLmVycm9yO1xuICAgICAgcHJldkdyb3VwID0gY29uc29sZS5ncm91cDtcbiAgICAgIHByZXZHcm91cENvbGxhcHNlZCA9IGNvbnNvbGUuZ3JvdXBDb2xsYXBzZWQ7XG4gICAgICBwcmV2R3JvdXBFbmQgPSBjb25zb2xlLmdyb3VwRW5kOyAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzE5MDk5XG5cbiAgICAgIHZhciBwcm9wcyA9IHtcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICB2YWx1ZTogZGlzYWJsZWRMb2csXG4gICAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgICB9OyAvLyAkRmxvd0ZpeE1lIEZsb3cgdGhpbmtzIGNvbnNvbGUgaXMgaW1tdXRhYmxlLlxuXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhjb25zb2xlLCB7XG4gICAgICAgIGluZm86IHByb3BzLFxuICAgICAgICBsb2c6IHByb3BzLFxuICAgICAgICB3YXJuOiBwcm9wcyxcbiAgICAgICAgZXJyb3I6IHByb3BzLFxuICAgICAgICBncm91cDogcHJvcHMsXG4gICAgICAgIGdyb3VwQ29sbGFwc2VkOiBwcm9wcyxcbiAgICAgICAgZ3JvdXBFbmQ6IHByb3BzXG4gICAgICB9KTtcbiAgICAgIC8qIGVzbGludC1lbmFibGUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nICovXG4gICAgfVxuXG4gICAgZGlzYWJsZWREZXB0aCsrO1xuICB9XG59XG5mdW5jdGlvbiByZWVuYWJsZUxvZ3MoKSB7XG4gIHtcbiAgICBkaXNhYmxlZERlcHRoLS07XG5cbiAgICBpZiAoZGlzYWJsZWREZXB0aCA9PT0gMCkge1xuICAgICAgLyogZXNsaW50LWRpc2FibGUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nICovXG4gICAgICB2YXIgcHJvcHMgPSB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgd3JpdGFibGU6IHRydWVcbiAgICAgIH07IC8vICRGbG93Rml4TWUgRmxvdyB0aGlua3MgY29uc29sZSBpcyBpbW11dGFibGUuXG5cbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGNvbnNvbGUsIHtcbiAgICAgICAgbG9nOiBfYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2TG9nXG4gICAgICAgIH0pLFxuICAgICAgICBpbmZvOiBfYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2SW5mb1xuICAgICAgICB9KSxcbiAgICAgICAgd2FybjogX2Fzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldldhcm5cbiAgICAgICAgfSksXG4gICAgICAgIGVycm9yOiBfYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2RXJyb3JcbiAgICAgICAgfSksXG4gICAgICAgIGdyb3VwOiBfYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2R3JvdXBcbiAgICAgICAgfSksXG4gICAgICAgIGdyb3VwQ29sbGFwc2VkOiBfYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2R3JvdXBDb2xsYXBzZWRcbiAgICAgICAgfSksXG4gICAgICAgIGdyb3VwRW5kOiBfYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2R3JvdXBFbmRcbiAgICAgICAgfSlcbiAgICAgIH0pO1xuICAgICAgLyogZXNsaW50LWVuYWJsZSByZWFjdC1pbnRlcm5hbC9uby1wcm9kdWN0aW9uLWxvZ2dpbmcgKi9cbiAgICB9XG5cbiAgICBpZiAoZGlzYWJsZWREZXB0aCA8IDApIHtcbiAgICAgIGVycm9yKCdkaXNhYmxlZERlcHRoIGZlbGwgYmVsb3cgemVyby4gJyArICdUaGlzIGlzIGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nKTtcbiAgICB9XG4gIH1cbn1cblxudmFyIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMSA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0Q3VycmVudERpc3BhdGNoZXI7XG52YXIgcHJlZml4O1xuZnVuY3Rpb24gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUobmFtZSwgc291cmNlLCBvd25lckZuKSB7XG4gIHtcbiAgICBpZiAocHJlZml4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIEV4dHJhY3QgdGhlIFZNIHNwZWNpZmljIHByZWZpeCB1c2VkIGJ5IGVhY2ggbGluZS5cbiAgICAgIHRyeSB7XG4gICAgICAgIHRocm93IEVycm9yKCk7XG4gICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgIHZhciBtYXRjaCA9IHguc3RhY2sudHJpbSgpLm1hdGNoKC9cXG4oICooYXQgKT8pLyk7XG4gICAgICAgIHByZWZpeCA9IG1hdGNoICYmIG1hdGNoWzFdIHx8ICcnO1xuICAgICAgfVxuICAgIH0gLy8gV2UgdXNlIHRoZSBwcmVmaXggdG8gZW5zdXJlIG91ciBzdGFja3MgbGluZSB1cCB3aXRoIG5hdGl2ZSBzdGFjayBmcmFtZXMuXG5cblxuICAgIHJldHVybiAnXFxuJyArIHByZWZpeCArIG5hbWU7XG4gIH1cbn1cbnZhciByZWVudHJ5ID0gZmFsc2U7XG52YXIgY29tcG9uZW50RnJhbWVDYWNoZTtcblxue1xuICB2YXIgUG9zc2libHlXZWFrTWFwID0gdHlwZW9mIFdlYWtNYXAgPT09ICdmdW5jdGlvbicgPyBXZWFrTWFwIDogTWFwO1xuICBjb21wb25lbnRGcmFtZUNhY2hlID0gbmV3IFBvc3NpYmx5V2Vha01hcCgpO1xufVxuXG5mdW5jdGlvbiBkZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lKGZuLCBjb25zdHJ1Y3QpIHtcbiAgLy8gSWYgc29tZXRoaW5nIGFza2VkIGZvciBhIHN0YWNrIGluc2lkZSBhIGZha2UgcmVuZGVyLCBpdCBzaG91bGQgZ2V0IGlnbm9yZWQuXG4gIGlmICghZm4gfHwgcmVlbnRyeSkge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHtcbiAgICB2YXIgZnJhbWUgPSBjb21wb25lbnRGcmFtZUNhY2hlLmdldChmbik7XG5cbiAgICBpZiAoZnJhbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGZyYW1lO1xuICAgIH1cbiAgfVxuXG4gIHZhciBjb250cm9sO1xuICByZWVudHJ5ID0gdHJ1ZTtcbiAgdmFyIHByZXZpb3VzUHJlcGFyZVN0YWNrVHJhY2UgPSBFcnJvci5wcmVwYXJlU3RhY2tUcmFjZTsgLy8gJEZsb3dGaXhNZSBJdCBkb2VzIGFjY2VwdCB1bmRlZmluZWQuXG5cbiAgRXJyb3IucHJlcGFyZVN0YWNrVHJhY2UgPSB1bmRlZmluZWQ7XG4gIHZhciBwcmV2aW91c0Rpc3BhdGNoZXI7XG5cbiAge1xuICAgIHByZXZpb3VzRGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50OyAvLyBTZXQgdGhlIGRpc3BhdGNoZXIgaW4gREVWIGJlY2F1c2UgdGhpcyBtaWdodCBiZSBjYWxsIGluIHRoZSByZW5kZXIgZnVuY3Rpb25cbiAgICAvLyBmb3Igd2FybmluZ3MuXG5cbiAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IG51bGw7XG4gICAgZGlzYWJsZUxvZ3MoKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgLy8gVGhpcyBzaG91bGQgdGhyb3cuXG4gICAgaWYgKGNvbnN0cnVjdCkge1xuICAgICAgLy8gU29tZXRoaW5nIHNob3VsZCBiZSBzZXR0aW5nIHRoZSBwcm9wcyBpbiB0aGUgY29uc3RydWN0b3IuXG4gICAgICB2YXIgRmFrZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoKTtcbiAgICAgIH07IC8vICRGbG93Rml4TWVcblxuXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRmFrZS5wcm90b3R5cGUsICdwcm9wcycsIHtcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgLy8gV2UgdXNlIGEgdGhyb3dpbmcgc2V0dGVyIGluc3RlYWQgb2YgZnJvemVuIG9yIG5vbi13cml0YWJsZSBwcm9wc1xuICAgICAgICAgIC8vIGJlY2F1c2UgdGhhdCB3b24ndCB0aHJvdyBpbiBhIG5vbi1zdHJpY3QgbW9kZSBmdW5jdGlvbi5cbiAgICAgICAgICB0aHJvdyBFcnJvcigpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSAnb2JqZWN0JyAmJiBSZWZsZWN0LmNvbnN0cnVjdCkge1xuICAgICAgICAvLyBXZSBjb25zdHJ1Y3QgYSBkaWZmZXJlbnQgY29udHJvbCBmb3IgdGhpcyBjYXNlIHRvIGluY2x1ZGUgYW55IGV4dHJhXG4gICAgICAgIC8vIGZyYW1lcyBhZGRlZCBieSB0aGUgY29uc3RydWN0IGNhbGwuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgUmVmbGVjdC5jb25zdHJ1Y3QoRmFrZSwgW10pO1xuICAgICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgICAgY29udHJvbCA9IHg7XG4gICAgICAgIH1cblxuICAgICAgICBSZWZsZWN0LmNvbnN0cnVjdChmbiwgW10sIEZha2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBGYWtlLmNhbGwoKTtcbiAgICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICAgIGNvbnRyb2wgPSB4O1xuICAgICAgICB9XG5cbiAgICAgICAgZm4uY2FsbChGYWtlLnByb3RvdHlwZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRocm93IEVycm9yKCk7XG4gICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgIGNvbnRyb2wgPSB4O1xuICAgICAgfVxuXG4gICAgICBmbigpO1xuICAgIH1cbiAgfSBjYXRjaCAoc2FtcGxlKSB7XG4gICAgLy8gVGhpcyBpcyBpbmxpbmVkIG1hbnVhbGx5IGJlY2F1c2UgY2xvc3VyZSBkb2Vzbid0IGRvIGl0IGZvciB1cy5cbiAgICBpZiAoc2FtcGxlICYmIGNvbnRyb2wgJiYgdHlwZW9mIHNhbXBsZS5zdGFjayA9PT0gJ3N0cmluZycpIHtcbiAgICAgIC8vIFRoaXMgZXh0cmFjdHMgdGhlIGZpcnN0IGZyYW1lIGZyb20gdGhlIHNhbXBsZSB0aGF0IGlzbid0IGFsc28gaW4gdGhlIGNvbnRyb2wuXG4gICAgICAvLyBTa2lwcGluZyBvbmUgZnJhbWUgdGhhdCB3ZSBhc3N1bWUgaXMgdGhlIGZyYW1lIHRoYXQgY2FsbHMgdGhlIHR3by5cbiAgICAgIHZhciBzYW1wbGVMaW5lcyA9IHNhbXBsZS5zdGFjay5zcGxpdCgnXFxuJyk7XG4gICAgICB2YXIgY29udHJvbExpbmVzID0gY29udHJvbC5zdGFjay5zcGxpdCgnXFxuJyk7XG4gICAgICB2YXIgcyA9IHNhbXBsZUxpbmVzLmxlbmd0aCAtIDE7XG4gICAgICB2YXIgYyA9IGNvbnRyb2xMaW5lcy5sZW5ndGggLSAxO1xuXG4gICAgICB3aGlsZSAocyA+PSAxICYmIGMgPj0gMCAmJiBzYW1wbGVMaW5lc1tzXSAhPT0gY29udHJvbExpbmVzW2NdKSB7XG4gICAgICAgIC8vIFdlIGV4cGVjdCBhdCBsZWFzdCBvbmUgc3RhY2sgZnJhbWUgdG8gYmUgc2hhcmVkLlxuICAgICAgICAvLyBUeXBpY2FsbHkgdGhpcyB3aWxsIGJlIHRoZSByb290IG1vc3Qgb25lLiBIb3dldmVyLCBzdGFjayBmcmFtZXMgbWF5IGJlXG4gICAgICAgIC8vIGN1dCBvZmYgZHVlIHRvIG1heGltdW0gc3RhY2sgbGltaXRzLiBJbiB0aGlzIGNhc2UsIG9uZSBtYXliZSBjdXQgb2ZmXG4gICAgICAgIC8vIGVhcmxpZXIgdGhhbiB0aGUgb3RoZXIuIFdlIGFzc3VtZSB0aGF0IHRoZSBzYW1wbGUgaXMgbG9uZ2VyIG9yIHRoZSBzYW1lXG4gICAgICAgIC8vIGFuZCB0aGVyZSBmb3IgY3V0IG9mZiBlYXJsaWVyLiBTbyB3ZSBzaG91bGQgZmluZCB0aGUgcm9vdCBtb3N0IGZyYW1lIGluXG4gICAgICAgIC8vIHRoZSBzYW1wbGUgc29tZXdoZXJlIGluIHRoZSBjb250cm9sLlxuICAgICAgICBjLS07XG4gICAgICB9XG5cbiAgICAgIGZvciAoOyBzID49IDEgJiYgYyA+PSAwOyBzLS0sIGMtLSkge1xuICAgICAgICAvLyBOZXh0IHdlIGZpbmQgdGhlIGZpcnN0IG9uZSB0aGF0IGlzbid0IHRoZSBzYW1lIHdoaWNoIHNob3VsZCBiZSB0aGVcbiAgICAgICAgLy8gZnJhbWUgdGhhdCBjYWxsZWQgb3VyIHNhbXBsZSBmdW5jdGlvbiBhbmQgdGhlIGNvbnRyb2wuXG4gICAgICAgIGlmIChzYW1wbGVMaW5lc1tzXSAhPT0gY29udHJvbExpbmVzW2NdKSB7XG4gICAgICAgICAgLy8gSW4gVjgsIHRoZSBmaXJzdCBsaW5lIGlzIGRlc2NyaWJpbmcgdGhlIG1lc3NhZ2UgYnV0IG90aGVyIFZNcyBkb24ndC5cbiAgICAgICAgICAvLyBJZiB3ZSdyZSBhYm91dCB0byByZXR1cm4gdGhlIGZpcnN0IGxpbmUsIGFuZCB0aGUgY29udHJvbCBpcyBhbHNvIG9uIHRoZSBzYW1lXG4gICAgICAgICAgLy8gbGluZSwgdGhhdCdzIGEgcHJldHR5IGdvb2QgaW5kaWNhdG9yIHRoYXQgb3VyIHNhbXBsZSB0aHJldyBhdCBzYW1lIGxpbmUgYXNcbiAgICAgICAgICAvLyB0aGUgY29udHJvbC4gSS5lLiBiZWZvcmUgd2UgZW50ZXJlZCB0aGUgc2FtcGxlIGZyYW1lLiBTbyB3ZSBpZ25vcmUgdGhpcyByZXN1bHQuXG4gICAgICAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIGlmIHlvdSBwYXNzZWQgYSBjbGFzcyB0byBmdW5jdGlvbiBjb21wb25lbnQsIG9yIG5vbi1mdW5jdGlvbi5cbiAgICAgICAgICBpZiAocyAhPT0gMSB8fCBjICE9PSAxKSB7XG4gICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgIHMtLTtcbiAgICAgICAgICAgICAgYy0tOyAvLyBXZSBtYXkgc3RpbGwgaGF2ZSBzaW1pbGFyIGludGVybWVkaWF0ZSBmcmFtZXMgZnJvbSB0aGUgY29uc3RydWN0IGNhbGwuXG4gICAgICAgICAgICAgIC8vIFRoZSBuZXh0IG9uZSB0aGF0IGlzbid0IHRoZSBzYW1lIHNob3VsZCBiZSBvdXIgbWF0Y2ggdGhvdWdoLlxuXG4gICAgICAgICAgICAgIGlmIChjIDwgMCB8fCBzYW1wbGVMaW5lc1tzXSAhPT0gY29udHJvbExpbmVzW2NdKSB7XG4gICAgICAgICAgICAgICAgLy8gVjggYWRkcyBhIFwibmV3XCIgcHJlZml4IGZvciBuYXRpdmUgY2xhc3Nlcy4gTGV0J3MgcmVtb3ZlIGl0IHRvIG1ha2UgaXQgcHJldHRpZXIuXG4gICAgICAgICAgICAgICAgdmFyIF9mcmFtZSA9ICdcXG4nICsgc2FtcGxlTGluZXNbc10ucmVwbGFjZSgnIGF0IG5ldyAnLCAnIGF0ICcpO1xuXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBmbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRGcmFtZUNhY2hlLnNldChmbiwgX2ZyYW1lKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IC8vIFJldHVybiB0aGUgbGluZSB3ZSBmb3VuZC5cblxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIF9mcmFtZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSB3aGlsZSAocyA+PSAxICYmIGMgPj0gMCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0gZmluYWxseSB7XG4gICAgcmVlbnRyeSA9IGZhbHNlO1xuXG4gICAge1xuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBwcmV2aW91c0Rpc3BhdGNoZXI7XG4gICAgICByZWVuYWJsZUxvZ3MoKTtcbiAgICB9XG5cbiAgICBFcnJvci5wcmVwYXJlU3RhY2tUcmFjZSA9IHByZXZpb3VzUHJlcGFyZVN0YWNrVHJhY2U7XG4gIH0gLy8gRmFsbGJhY2sgdG8ganVzdCB1c2luZyB0aGUgbmFtZSBpZiB3ZSBjb3VsZG4ndCBtYWtlIGl0IHRocm93LlxuXG5cbiAgdmFyIG5hbWUgPSBmbiA/IGZuLmRpc3BsYXlOYW1lIHx8IGZuLm5hbWUgOiAnJztcbiAgdmFyIHN5bnRoZXRpY0ZyYW1lID0gbmFtZSA/IGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKG5hbWUpIDogJyc7XG5cbiAge1xuICAgIGlmICh0eXBlb2YgZm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNvbXBvbmVudEZyYW1lQ2FjaGUuc2V0KGZuLCBzeW50aGV0aWNGcmFtZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN5bnRoZXRpY0ZyYW1lO1xufVxuZnVuY3Rpb24gZGVzY3JpYmVGdW5jdGlvbkNvbXBvbmVudEZyYW1lKGZuLCBzb3VyY2UsIG93bmVyRm4pIHtcbiAge1xuICAgIHJldHVybiBkZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lKGZuLCBmYWxzZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gc2hvdWxkQ29uc3RydWN0KENvbXBvbmVudCkge1xuICB2YXIgcHJvdG90eXBlID0gQ29tcG9uZW50LnByb3RvdHlwZTtcbiAgcmV0dXJuICEhKHByb3RvdHlwZSAmJiBwcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudCk7XG59XG5cbmZ1bmN0aW9uIGRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFVih0eXBlLCBzb3VyY2UsIG93bmVyRm4pIHtcblxuICBpZiAodHlwZSA9PSBudWxsKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAge1xuICAgICAgcmV0dXJuIGRlc2NyaWJlTmF0aXZlQ29tcG9uZW50RnJhbWUodHlwZSwgc2hvdWxkQ29uc3RydWN0KHR5cGUpKTtcbiAgICB9XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKHR5cGUpO1xuICB9XG5cbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSBleHBvcnRzLlN1c3BlbnNlOlxuICAgICAgcmV0dXJuIGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKCdTdXNwZW5zZScpO1xuXG4gICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEU6XG4gICAgICByZXR1cm4gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUoJ1N1c3BlbnNlTGlzdCcpO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnb2JqZWN0Jykge1xuICAgIHN3aXRjaCAodHlwZS4kJHR5cGVvZikge1xuICAgICAgY2FzZSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFOlxuICAgICAgICByZXR1cm4gZGVzY3JpYmVGdW5jdGlvbkNvbXBvbmVudEZyYW1lKHR5cGUucmVuZGVyKTtcblxuICAgICAgY2FzZSBSRUFDVF9NRU1PX1RZUEU6XG4gICAgICAgIC8vIE1lbW8gbWF5IGNvbnRhaW4gYW55IGNvbXBvbmVudCB0eXBlIHNvIHdlIHJlY3Vyc2l2ZWx5IHJlc29sdmUgaXQuXG4gICAgICAgIHJldHVybiBkZXNjcmliZVVua25vd25FbGVtZW50VHlwZUZyYW1lSW5ERVYodHlwZS50eXBlLCBzb3VyY2UsIG93bmVyRm4pO1xuXG4gICAgICBjYXNlIFJFQUNUX0JMT0NLX1RZUEU6XG4gICAgICAgIHJldHVybiBkZXNjcmliZUZ1bmN0aW9uQ29tcG9uZW50RnJhbWUodHlwZS5fcmVuZGVyKTtcblxuICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgbGF6eUNvbXBvbmVudCA9IHR5cGU7XG4gICAgICAgICAgdmFyIHBheWxvYWQgPSBsYXp5Q29tcG9uZW50Ll9wYXlsb2FkO1xuICAgICAgICAgIHZhciBpbml0ID0gbGF6eUNvbXBvbmVudC5faW5pdDtcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBMYXp5IG1heSBjb250YWluIGFueSBjb21wb25lbnQgdHlwZSBzbyB3ZSByZWN1cnNpdmVseSByZXNvbHZlIGl0LlxuICAgICAgICAgICAgcmV0dXJuIGRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFVihpbml0KHBheWxvYWQpLCBzb3VyY2UsIG93bmVyRm4pO1xuICAgICAgICAgIH0gY2F0Y2ggKHgpIHt9XG4gICAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gJyc7XG59XG5cbnZhciBsb2dnZWRUeXBlRmFpbHVyZXMgPSB7fTtcbnZhciBSZWFjdERlYnVnQ3VycmVudEZyYW1lJDEgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdERlYnVnQ3VycmVudEZyYW1lO1xuXG5mdW5jdGlvbiBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChlbGVtZW50KSB7XG4gIHtcbiAgICBpZiAoZWxlbWVudCkge1xuICAgICAgdmFyIG93bmVyID0gZWxlbWVudC5fb3duZXI7XG4gICAgICB2YXIgc3RhY2sgPSBkZXNjcmliZVVua25vd25FbGVtZW50VHlwZUZyYW1lSW5ERVYoZWxlbWVudC50eXBlLCBlbGVtZW50Ll9zb3VyY2UsIG93bmVyID8gb3duZXIudHlwZSA6IG51bGwpO1xuICAgICAgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSQxLnNldEV4dHJhU3RhY2tGcmFtZShzdGFjayk7XG4gICAgfSBlbHNlIHtcbiAgICAgIFJlYWN0RGVidWdDdXJyZW50RnJhbWUkMS5zZXRFeHRyYVN0YWNrRnJhbWUobnVsbCk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGNoZWNrUHJvcFR5cGVzKHR5cGVTcGVjcywgdmFsdWVzLCBsb2NhdGlvbiwgY29tcG9uZW50TmFtZSwgZWxlbWVudCkge1xuICB7XG4gICAgLy8gJEZsb3dGaXhNZSBUaGlzIGlzIG9rYXkgYnV0IEZsb3cgZG9lc24ndCBrbm93IGl0LlxuICAgIHZhciBoYXMgPSBGdW5jdGlvbi5jYWxsLmJpbmQoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSk7XG5cbiAgICBmb3IgKHZhciB0eXBlU3BlY05hbWUgaW4gdHlwZVNwZWNzKSB7XG4gICAgICBpZiAoaGFzKHR5cGVTcGVjcywgdHlwZVNwZWNOYW1lKSkge1xuICAgICAgICB2YXIgZXJyb3IkMSA9IHZvaWQgMDsgLy8gUHJvcCB0eXBlIHZhbGlkYXRpb24gbWF5IHRocm93LiBJbiBjYXNlIHRoZXkgZG8sIHdlIGRvbid0IHdhbnQgdG9cbiAgICAgICAgLy8gZmFpbCB0aGUgcmVuZGVyIHBoYXNlIHdoZXJlIGl0IGRpZG4ndCBmYWlsIGJlZm9yZS4gU28gd2UgbG9nIGl0LlxuICAgICAgICAvLyBBZnRlciB0aGVzZSBoYXZlIGJlZW4gY2xlYW5lZCB1cCwgd2UnbGwgbGV0IHRoZW0gdGhyb3cuXG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAvLyBUaGlzIGlzIGludGVudGlvbmFsbHkgYW4gaW52YXJpYW50IHRoYXQgZ2V0cyBjYXVnaHQuIEl0J3MgdGhlIHNhbWVcbiAgICAgICAgICAvLyBiZWhhdmlvciBhcyB3aXRob3V0IHRoaXMgc3RhdGVtZW50IGV4Y2VwdCB3aXRoIGEgYmV0dGVyIG1lc3NhZ2UuXG4gICAgICAgICAgaWYgKHR5cGVvZiB0eXBlU3BlY3NbdHlwZVNwZWNOYW1lXSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdmFyIGVyciA9IEVycm9yKChjb21wb25lbnROYW1lIHx8ICdSZWFjdCBjbGFzcycpICsgJzogJyArIGxvY2F0aW9uICsgJyB0eXBlIGAnICsgdHlwZVNwZWNOYW1lICsgJ2AgaXMgaW52YWxpZDsgJyArICdpdCBtdXN0IGJlIGEgZnVuY3Rpb24sIHVzdWFsbHkgZnJvbSB0aGUgYHByb3AtdHlwZXNgIHBhY2thZ2UsIGJ1dCByZWNlaXZlZCBgJyArIHR5cGVvZiB0eXBlU3BlY3NbdHlwZVNwZWNOYW1lXSArICdgLicgKyAnVGhpcyBvZnRlbiBoYXBwZW5zIGJlY2F1c2Ugb2YgdHlwb3Mgc3VjaCBhcyBgUHJvcFR5cGVzLmZ1bmN0aW9uYCBpbnN0ZWFkIG9mIGBQcm9wVHlwZXMuZnVuY2AuJyk7XG4gICAgICAgICAgICBlcnIubmFtZSA9ICdJbnZhcmlhbnQgVmlvbGF0aW9uJztcbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBlcnJvciQxID0gdHlwZVNwZWNzW3R5cGVTcGVjTmFtZV0odmFsdWVzLCB0eXBlU3BlY05hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBudWxsLCAnU0VDUkVUX0RPX05PVF9QQVNTX1RISVNfT1JfWU9VX1dJTExfQkVfRklSRUQnKTtcbiAgICAgICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgICAgICBlcnJvciQxID0gZXg7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXJyb3IkMSAmJiAhKGVycm9yJDEgaW5zdGFuY2VvZiBFcnJvcikpIHtcbiAgICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChlbGVtZW50KTtcblxuICAgICAgICAgIGVycm9yKCclczogdHlwZSBzcGVjaWZpY2F0aW9uIG9mICVzJyArICcgYCVzYCBpcyBpbnZhbGlkOyB0aGUgdHlwZSBjaGVja2VyICcgKyAnZnVuY3Rpb24gbXVzdCByZXR1cm4gYG51bGxgIG9yIGFuIGBFcnJvcmAgYnV0IHJldHVybmVkIGEgJXMuICcgKyAnWW91IG1heSBoYXZlIGZvcmdvdHRlbiB0byBwYXNzIGFuIGFyZ3VtZW50IHRvIHRoZSB0eXBlIGNoZWNrZXIgJyArICdjcmVhdG9yIChhcnJheU9mLCBpbnN0YW5jZU9mLCBvYmplY3RPZiwgb25lT2YsIG9uZU9mVHlwZSwgYW5kICcgKyAnc2hhcGUgYWxsIHJlcXVpcmUgYW4gYXJndW1lbnQpLicsIGNvbXBvbmVudE5hbWUgfHwgJ1JlYWN0IGNsYXNzJywgbG9jYXRpb24sIHR5cGVTcGVjTmFtZSwgdHlwZW9mIGVycm9yJDEpO1xuXG4gICAgICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQobnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXJyb3IkMSBpbnN0YW5jZW9mIEVycm9yICYmICEoZXJyb3IkMS5tZXNzYWdlIGluIGxvZ2dlZFR5cGVGYWlsdXJlcykpIHtcbiAgICAgICAgICAvLyBPbmx5IG1vbml0b3IgdGhpcyBmYWlsdXJlIG9uY2UgYmVjYXVzZSB0aGVyZSB0ZW5kcyB0byBiZSBhIGxvdCBvZiB0aGVcbiAgICAgICAgICAvLyBzYW1lIGVycm9yLlxuICAgICAgICAgIGxvZ2dlZFR5cGVGYWlsdXJlc1tlcnJvciQxLm1lc3NhZ2VdID0gdHJ1ZTtcbiAgICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChlbGVtZW50KTtcblxuICAgICAgICAgIGVycm9yKCdGYWlsZWQgJXMgdHlwZTogJXMnLCBsb2NhdGlvbiwgZXJyb3IkMS5tZXNzYWdlKTtcblxuICAgICAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50KG51bGwpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50JDEoZWxlbWVudCkge1xuICB7XG4gICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgIHZhciBvd25lciA9IGVsZW1lbnQuX293bmVyO1xuICAgICAgdmFyIHN0YWNrID0gZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWKGVsZW1lbnQudHlwZSwgZWxlbWVudC5fc291cmNlLCBvd25lciA/IG93bmVyLnR5cGUgOiBudWxsKTtcbiAgICAgIHNldEV4dHJhU3RhY2tGcmFtZShzdGFjayk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldEV4dHJhU3RhY2tGcmFtZShudWxsKTtcbiAgICB9XG4gIH1cbn1cblxudmFyIHByb3BUeXBlc01pc3NwZWxsV2FybmluZ1Nob3duO1xuXG57XG4gIHByb3BUeXBlc01pc3NwZWxsV2FybmluZ1Nob3duID0gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIGdldERlY2xhcmF0aW9uRXJyb3JBZGRlbmR1bSgpIHtcbiAgaWYgKFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQpIHtcbiAgICB2YXIgbmFtZSA9IGdldENvbXBvbmVudE5hbWUoUmVhY3RDdXJyZW50T3duZXIuY3VycmVudC50eXBlKTtcblxuICAgIGlmIChuYW1lKSB7XG4gICAgICByZXR1cm4gJ1xcblxcbkNoZWNrIHRoZSByZW5kZXIgbWV0aG9kIG9mIGAnICsgbmFtZSArICdgLic7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuICcnO1xufVxuXG5mdW5jdGlvbiBnZXRTb3VyY2VJbmZvRXJyb3JBZGRlbmR1bShzb3VyY2UpIHtcbiAgaWYgKHNvdXJjZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdmFyIGZpbGVOYW1lID0gc291cmNlLmZpbGVOYW1lLnJlcGxhY2UoL14uKltcXFxcXFwvXS8sICcnKTtcbiAgICB2YXIgbGluZU51bWJlciA9IHNvdXJjZS5saW5lTnVtYmVyO1xuICAgIHJldHVybiAnXFxuXFxuQ2hlY2sgeW91ciBjb2RlIGF0ICcgKyBmaWxlTmFtZSArICc6JyArIGxpbmVOdW1iZXIgKyAnLic7XG4gIH1cblxuICByZXR1cm4gJyc7XG59XG5cbmZ1bmN0aW9uIGdldFNvdXJjZUluZm9FcnJvckFkZGVuZHVtRm9yUHJvcHMoZWxlbWVudFByb3BzKSB7XG4gIGlmIChlbGVtZW50UHJvcHMgIT09IG51bGwgJiYgZWxlbWVudFByb3BzICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gZ2V0U291cmNlSW5mb0Vycm9yQWRkZW5kdW0oZWxlbWVudFByb3BzLl9fc291cmNlKTtcbiAgfVxuXG4gIHJldHVybiAnJztcbn1cbi8qKlxuICogV2FybiBpZiB0aGVyZSdzIG5vIGtleSBleHBsaWNpdGx5IHNldCBvbiBkeW5hbWljIGFycmF5cyBvZiBjaGlsZHJlbiBvclxuICogb2JqZWN0IGtleXMgYXJlIG5vdCB2YWxpZC4gVGhpcyBhbGxvd3MgdXMgdG8ga2VlcCB0cmFjayBvZiBjaGlsZHJlbiBiZXR3ZWVuXG4gKiB1cGRhdGVzLlxuICovXG5cblxudmFyIG93bmVySGFzS2V5VXNlV2FybmluZyA9IHt9O1xuXG5mdW5jdGlvbiBnZXRDdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvKHBhcmVudFR5cGUpIHtcbiAgdmFyIGluZm8gPSBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0oKTtcblxuICBpZiAoIWluZm8pIHtcbiAgICB2YXIgcGFyZW50TmFtZSA9IHR5cGVvZiBwYXJlbnRUeXBlID09PSAnc3RyaW5nJyA/IHBhcmVudFR5cGUgOiBwYXJlbnRUeXBlLmRpc3BsYXlOYW1lIHx8IHBhcmVudFR5cGUubmFtZTtcblxuICAgIGlmIChwYXJlbnROYW1lKSB7XG4gICAgICBpbmZvID0gXCJcXG5cXG5DaGVjayB0aGUgdG9wLWxldmVsIHJlbmRlciBjYWxsIHVzaW5nIDxcIiArIHBhcmVudE5hbWUgKyBcIj4uXCI7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGluZm87XG59XG4vKipcbiAqIFdhcm4gaWYgdGhlIGVsZW1lbnQgZG9lc24ndCBoYXZlIGFuIGV4cGxpY2l0IGtleSBhc3NpZ25lZCB0byBpdC5cbiAqIFRoaXMgZWxlbWVudCBpcyBpbiBhbiBhcnJheS4gVGhlIGFycmF5IGNvdWxkIGdyb3cgYW5kIHNocmluayBvciBiZVxuICogcmVvcmRlcmVkLiBBbGwgY2hpbGRyZW4gdGhhdCBoYXZlbid0IGFscmVhZHkgYmVlbiB2YWxpZGF0ZWQgYXJlIHJlcXVpcmVkIHRvXG4gKiBoYXZlIGEgXCJrZXlcIiBwcm9wZXJ0eSBhc3NpZ25lZCB0byBpdC4gRXJyb3Igc3RhdHVzZXMgYXJlIGNhY2hlZCBzbyBhIHdhcm5pbmdcbiAqIHdpbGwgb25seSBiZSBzaG93biBvbmNlLlxuICpcbiAqIEBpbnRlcm5hbFxuICogQHBhcmFtIHtSZWFjdEVsZW1lbnR9IGVsZW1lbnQgRWxlbWVudCB0aGF0IHJlcXVpcmVzIGEga2V5LlxuICogQHBhcmFtIHsqfSBwYXJlbnRUeXBlIGVsZW1lbnQncyBwYXJlbnQncyB0eXBlLlxuICovXG5cblxuZnVuY3Rpb24gdmFsaWRhdGVFeHBsaWNpdEtleShlbGVtZW50LCBwYXJlbnRUeXBlKSB7XG4gIGlmICghZWxlbWVudC5fc3RvcmUgfHwgZWxlbWVudC5fc3RvcmUudmFsaWRhdGVkIHx8IGVsZW1lbnQua2V5ICE9IG51bGwpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBlbGVtZW50Ll9zdG9yZS52YWxpZGF0ZWQgPSB0cnVlO1xuICB2YXIgY3VycmVudENvbXBvbmVudEVycm9ySW5mbyA9IGdldEN1cnJlbnRDb21wb25lbnRFcnJvckluZm8ocGFyZW50VHlwZSk7XG5cbiAgaWYgKG93bmVySGFzS2V5VXNlV2FybmluZ1tjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvXSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIG93bmVySGFzS2V5VXNlV2FybmluZ1tjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvXSA9IHRydWU7IC8vIFVzdWFsbHkgdGhlIGN1cnJlbnQgb3duZXIgaXMgdGhlIG9mZmVuZGVyLCBidXQgaWYgaXQgYWNjZXB0cyBjaGlsZHJlbiBhcyBhXG4gIC8vIHByb3BlcnR5LCBpdCBtYXkgYmUgdGhlIGNyZWF0b3Igb2YgdGhlIGNoaWxkIHRoYXQncyByZXNwb25zaWJsZSBmb3JcbiAgLy8gYXNzaWduaW5nIGl0IGEga2V5LlxuXG4gIHZhciBjaGlsZE93bmVyID0gJyc7XG5cbiAgaWYgKGVsZW1lbnQgJiYgZWxlbWVudC5fb3duZXIgJiYgZWxlbWVudC5fb3duZXIgIT09IFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQpIHtcbiAgICAvLyBHaXZlIHRoZSBjb21wb25lbnQgdGhhdCBvcmlnaW5hbGx5IGNyZWF0ZWQgdGhpcyBjaGlsZC5cbiAgICBjaGlsZE93bmVyID0gXCIgSXQgd2FzIHBhc3NlZCBhIGNoaWxkIGZyb20gXCIgKyBnZXRDb21wb25lbnROYW1lKGVsZW1lbnQuX293bmVyLnR5cGUpICsgXCIuXCI7XG4gIH1cblxuICB7XG4gICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQkMShlbGVtZW50KTtcblxuICAgIGVycm9yKCdFYWNoIGNoaWxkIGluIGEgbGlzdCBzaG91bGQgaGF2ZSBhIHVuaXF1ZSBcImtleVwiIHByb3AuJyArICclcyVzIFNlZSBodHRwczovL3JlYWN0anMub3JnL2xpbmsvd2FybmluZy1rZXlzIGZvciBtb3JlIGluZm9ybWF0aW9uLicsIGN1cnJlbnRDb21wb25lbnRFcnJvckluZm8sIGNoaWxkT3duZXIpO1xuXG4gICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQkMShudWxsKTtcbiAgfVxufVxuLyoqXG4gKiBFbnN1cmUgdGhhdCBldmVyeSBlbGVtZW50IGVpdGhlciBpcyBwYXNzZWQgaW4gYSBzdGF0aWMgbG9jYXRpb24sIGluIGFuXG4gKiBhcnJheSB3aXRoIGFuIGV4cGxpY2l0IGtleXMgcHJvcGVydHkgZGVmaW5lZCwgb3IgaW4gYW4gb2JqZWN0IGxpdGVyYWxcbiAqIHdpdGggdmFsaWQga2V5IHByb3BlcnR5LlxuICpcbiAqIEBpbnRlcm5hbFxuICogQHBhcmFtIHtSZWFjdE5vZGV9IG5vZGUgU3RhdGljYWxseSBwYXNzZWQgY2hpbGQgb2YgYW55IHR5cGUuXG4gKiBAcGFyYW0geyp9IHBhcmVudFR5cGUgbm9kZSdzIHBhcmVudCdzIHR5cGUuXG4gKi9cblxuXG5mdW5jdGlvbiB2YWxpZGF0ZUNoaWxkS2V5cyhub2RlLCBwYXJlbnRUeXBlKSB7XG4gIGlmICh0eXBlb2Ygbm9kZSAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoQXJyYXkuaXNBcnJheShub2RlKSkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZS5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGNoaWxkID0gbm9kZVtpXTtcblxuICAgICAgaWYgKGlzVmFsaWRFbGVtZW50KGNoaWxkKSkge1xuICAgICAgICB2YWxpZGF0ZUV4cGxpY2l0S2V5KGNoaWxkLCBwYXJlbnRUeXBlKTtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSBpZiAoaXNWYWxpZEVsZW1lbnQobm9kZSkpIHtcbiAgICAvLyBUaGlzIGVsZW1lbnQgd2FzIHBhc3NlZCBpbiBhIHZhbGlkIGxvY2F0aW9uLlxuICAgIGlmIChub2RlLl9zdG9yZSkge1xuICAgICAgbm9kZS5fc3RvcmUudmFsaWRhdGVkID0gdHJ1ZTtcbiAgICB9XG4gIH0gZWxzZSBpZiAobm9kZSkge1xuICAgIHZhciBpdGVyYXRvckZuID0gZ2V0SXRlcmF0b3JGbihub2RlKTtcblxuICAgIGlmICh0eXBlb2YgaXRlcmF0b3JGbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgLy8gRW50cnkgaXRlcmF0b3JzIHVzZWQgdG8gcHJvdmlkZSBpbXBsaWNpdCBrZXlzLFxuICAgICAgLy8gYnV0IG5vdyB3ZSBwcmludCBhIHNlcGFyYXRlIHdhcm5pbmcgZm9yIHRoZW0gbGF0ZXIuXG4gICAgICBpZiAoaXRlcmF0b3JGbiAhPT0gbm9kZS5lbnRyaWVzKSB7XG4gICAgICAgIHZhciBpdGVyYXRvciA9IGl0ZXJhdG9yRm4uY2FsbChub2RlKTtcbiAgICAgICAgdmFyIHN0ZXA7XG5cbiAgICAgICAgd2hpbGUgKCEoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSkuZG9uZSkge1xuICAgICAgICAgIGlmIChpc1ZhbGlkRWxlbWVudChzdGVwLnZhbHVlKSkge1xuICAgICAgICAgICAgdmFsaWRhdGVFeHBsaWNpdEtleShzdGVwLnZhbHVlLCBwYXJlbnRUeXBlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbi8qKlxuICogR2l2ZW4gYW4gZWxlbWVudCwgdmFsaWRhdGUgdGhhdCBpdHMgcHJvcHMgZm9sbG93IHRoZSBwcm9wVHlwZXMgZGVmaW5pdGlvbixcbiAqIHByb3ZpZGVkIGJ5IHRoZSB0eXBlLlxuICpcbiAqIEBwYXJhbSB7UmVhY3RFbGVtZW50fSBlbGVtZW50XG4gKi9cblxuXG5mdW5jdGlvbiB2YWxpZGF0ZVByb3BUeXBlcyhlbGVtZW50KSB7XG4gIHtcbiAgICB2YXIgdHlwZSA9IGVsZW1lbnQudHlwZTtcblxuICAgIGlmICh0eXBlID09PSBudWxsIHx8IHR5cGUgPT09IHVuZGVmaW5lZCB8fCB0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2YXIgcHJvcFR5cGVzO1xuXG4gICAgaWYgKHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBwcm9wVHlwZXMgPSB0eXBlLnByb3BUeXBlcztcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB0eXBlID09PSAnb2JqZWN0JyAmJiAodHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSB8fCAvLyBOb3RlOiBNZW1vIG9ubHkgY2hlY2tzIG91dGVyIHByb3BzIGhlcmUuXG4gICAgLy8gSW5uZXIgcHJvcHMgYXJlIGNoZWNrZWQgaW4gdGhlIHJlY29uY2lsZXIuXG4gICAgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTUVNT19UWVBFKSkge1xuICAgICAgcHJvcFR5cGVzID0gdHlwZS5wcm9wVHlwZXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAocHJvcFR5cGVzKSB7XG4gICAgICAvLyBJbnRlbnRpb25hbGx5IGluc2lkZSB0byBhdm9pZCB0cmlnZ2VyaW5nIGxhenkgaW5pdGlhbGl6ZXJzOlxuICAgICAgdmFyIG5hbWUgPSBnZXRDb21wb25lbnROYW1lKHR5cGUpO1xuICAgICAgY2hlY2tQcm9wVHlwZXMocHJvcFR5cGVzLCBlbGVtZW50LnByb3BzLCAncHJvcCcsIG5hbWUsIGVsZW1lbnQpO1xuICAgIH0gZWxzZSBpZiAodHlwZS5Qcm9wVHlwZXMgIT09IHVuZGVmaW5lZCAmJiAhcHJvcFR5cGVzTWlzc3BlbGxXYXJuaW5nU2hvd24pIHtcbiAgICAgIHByb3BUeXBlc01pc3NwZWxsV2FybmluZ1Nob3duID0gdHJ1ZTsgLy8gSW50ZW50aW9uYWxseSBpbnNpZGUgdG8gYXZvaWQgdHJpZ2dlcmluZyBsYXp5IGluaXRpYWxpemVyczpcblxuICAgICAgdmFyIF9uYW1lID0gZ2V0Q29tcG9uZW50TmFtZSh0eXBlKTtcblxuICAgICAgZXJyb3IoJ0NvbXBvbmVudCAlcyBkZWNsYXJlZCBgUHJvcFR5cGVzYCBpbnN0ZWFkIG9mIGBwcm9wVHlwZXNgLiBEaWQgeW91IG1pc3NwZWxsIHRoZSBwcm9wZXJ0eSBhc3NpZ25tZW50PycsIF9uYW1lIHx8ICdVbmtub3duJyk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB0eXBlLmdldERlZmF1bHRQcm9wcyA9PT0gJ2Z1bmN0aW9uJyAmJiAhdHlwZS5nZXREZWZhdWx0UHJvcHMuaXNSZWFjdENsYXNzQXBwcm92ZWQpIHtcbiAgICAgIGVycm9yKCdnZXREZWZhdWx0UHJvcHMgaXMgb25seSB1c2VkIG9uIGNsYXNzaWMgUmVhY3QuY3JlYXRlQ2xhc3MgJyArICdkZWZpbml0aW9ucy4gVXNlIGEgc3RhdGljIHByb3BlcnR5IG5hbWVkIGBkZWZhdWx0UHJvcHNgIGluc3RlYWQuJyk7XG4gICAgfVxuICB9XG59XG4vKipcbiAqIEdpdmVuIGEgZnJhZ21lbnQsIHZhbGlkYXRlIHRoYXQgaXQgY2FuIG9ubHkgYmUgcHJvdmlkZWQgd2l0aCBmcmFnbWVudCBwcm9wc1xuICogQHBhcmFtIHtSZWFjdEVsZW1lbnR9IGZyYWdtZW50XG4gKi9cblxuXG5mdW5jdGlvbiB2YWxpZGF0ZUZyYWdtZW50UHJvcHMoZnJhZ21lbnQpIHtcbiAge1xuICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoZnJhZ21lbnQucHJvcHMpO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIga2V5ID0ga2V5c1tpXTtcblxuICAgICAgaWYgKGtleSAhPT0gJ2NoaWxkcmVuJyAmJiBrZXkgIT09ICdrZXknKSB7XG4gICAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50JDEoZnJhZ21lbnQpO1xuXG4gICAgICAgIGVycm9yKCdJbnZhbGlkIHByb3AgYCVzYCBzdXBwbGllZCB0byBgUmVhY3QuRnJhZ21lbnRgLiAnICsgJ1JlYWN0LkZyYWdtZW50IGNhbiBvbmx5IGhhdmUgYGtleWAgYW5kIGBjaGlsZHJlbmAgcHJvcHMuJywga2V5KTtcblxuICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudCQxKG51bGwpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZnJhZ21lbnQucmVmICE9PSBudWxsKSB7XG4gICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudCQxKGZyYWdtZW50KTtcblxuICAgICAgZXJyb3IoJ0ludmFsaWQgYXR0cmlidXRlIGByZWZgIHN1cHBsaWVkIHRvIGBSZWFjdC5GcmFnbWVudGAuJyk7XG5cbiAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50JDEobnVsbCk7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBjcmVhdGVFbGVtZW50V2l0aFZhbGlkYXRpb24odHlwZSwgcHJvcHMsIGNoaWxkcmVuKSB7XG4gIHZhciB2YWxpZFR5cGUgPSBpc1ZhbGlkRWxlbWVudFR5cGUodHlwZSk7IC8vIFdlIHdhcm4gaW4gdGhpcyBjYXNlIGJ1dCBkb24ndCB0aHJvdy4gV2UgZXhwZWN0IHRoZSBlbGVtZW50IGNyZWF0aW9uIHRvXG4gIC8vIHN1Y2NlZWQgYW5kIHRoZXJlIHdpbGwgbGlrZWx5IGJlIGVycm9ycyBpbiByZW5kZXIuXG5cbiAgaWYgKCF2YWxpZFR5cGUpIHtcbiAgICB2YXIgaW5mbyA9ICcnO1xuXG4gICAgaWYgKHR5cGUgPT09IHVuZGVmaW5lZCB8fCB0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcgJiYgdHlwZSAhPT0gbnVsbCAmJiBPYmplY3Qua2V5cyh0eXBlKS5sZW5ndGggPT09IDApIHtcbiAgICAgIGluZm8gKz0gJyBZb3UgbGlrZWx5IGZvcmdvdCB0byBleHBvcnQgeW91ciBjb21wb25lbnQgZnJvbSB0aGUgZmlsZSAnICsgXCJpdCdzIGRlZmluZWQgaW4sIG9yIHlvdSBtaWdodCBoYXZlIG1peGVkIHVwIGRlZmF1bHQgYW5kIG5hbWVkIGltcG9ydHMuXCI7XG4gICAgfVxuXG4gICAgdmFyIHNvdXJjZUluZm8gPSBnZXRTb3VyY2VJbmZvRXJyb3JBZGRlbmR1bUZvclByb3BzKHByb3BzKTtcblxuICAgIGlmIChzb3VyY2VJbmZvKSB7XG4gICAgICBpbmZvICs9IHNvdXJjZUluZm87XG4gICAgfSBlbHNlIHtcbiAgICAgIGluZm8gKz0gZ2V0RGVjbGFyYXRpb25FcnJvckFkZGVuZHVtKCk7XG4gICAgfVxuXG4gICAgdmFyIHR5cGVTdHJpbmc7XG5cbiAgICBpZiAodHlwZSA9PT0gbnVsbCkge1xuICAgICAgdHlwZVN0cmluZyA9ICdudWxsJztcbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodHlwZSkpIHtcbiAgICAgIHR5cGVTdHJpbmcgPSAnYXJyYXknO1xuICAgIH0gZWxzZSBpZiAodHlwZSAhPT0gdW5kZWZpbmVkICYmIHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0VMRU1FTlRfVFlQRSkge1xuICAgICAgdHlwZVN0cmluZyA9IFwiPFwiICsgKGdldENvbXBvbmVudE5hbWUodHlwZS50eXBlKSB8fCAnVW5rbm93bicpICsgXCIgLz5cIjtcbiAgICAgIGluZm8gPSAnIERpZCB5b3UgYWNjaWRlbnRhbGx5IGV4cG9ydCBhIEpTWCBsaXRlcmFsIGluc3RlYWQgb2YgYSBjb21wb25lbnQ/JztcbiAgICB9IGVsc2Uge1xuICAgICAgdHlwZVN0cmluZyA9IHR5cGVvZiB0eXBlO1xuICAgIH1cblxuICAgIHtcbiAgICAgIGVycm9yKCdSZWFjdC5jcmVhdGVFbGVtZW50OiB0eXBlIGlzIGludmFsaWQgLS0gZXhwZWN0ZWQgYSBzdHJpbmcgKGZvciAnICsgJ2J1aWx0LWluIGNvbXBvbmVudHMpIG9yIGEgY2xhc3MvZnVuY3Rpb24gKGZvciBjb21wb3NpdGUgJyArICdjb21wb25lbnRzKSBidXQgZ290OiAlcy4lcycsIHR5cGVTdHJpbmcsIGluZm8pO1xuICAgIH1cbiAgfVxuXG4gIHZhciBlbGVtZW50ID0gY3JlYXRlRWxlbWVudC5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyAvLyBUaGUgcmVzdWx0IGNhbiBiZSBudWxsaXNoIGlmIGEgbW9jayBvciBhIGN1c3RvbSBmdW5jdGlvbiBpcyB1c2VkLlxuICAvLyBUT0RPOiBEcm9wIHRoaXMgd2hlbiB0aGVzZSBhcmUgbm8gbG9uZ2VyIGFsbG93ZWQgYXMgdGhlIHR5cGUgYXJndW1lbnQuXG5cbiAgaWYgKGVsZW1lbnQgPT0gbnVsbCkge1xuICAgIHJldHVybiBlbGVtZW50O1xuICB9IC8vIFNraXAga2V5IHdhcm5pbmcgaWYgdGhlIHR5cGUgaXNuJ3QgdmFsaWQgc2luY2Ugb3VyIGtleSB2YWxpZGF0aW9uIGxvZ2ljXG4gIC8vIGRvZXNuJ3QgZXhwZWN0IGEgbm9uLXN0cmluZy9mdW5jdGlvbiB0eXBlIGFuZCBjYW4gdGhyb3cgY29uZnVzaW5nIGVycm9ycy5cbiAgLy8gV2UgZG9uJ3Qgd2FudCBleGNlcHRpb24gYmVoYXZpb3IgdG8gZGlmZmVyIGJldHdlZW4gZGV2IGFuZCBwcm9kLlxuICAvLyAoUmVuZGVyaW5nIHdpbGwgdGhyb3cgd2l0aCBhIGhlbHBmdWwgbWVzc2FnZSBhbmQgYXMgc29vbiBhcyB0aGUgdHlwZSBpc1xuICAvLyBmaXhlZCwgdGhlIGtleSB3YXJuaW5ncyB3aWxsIGFwcGVhci4pXG5cblxuICBpZiAodmFsaWRUeXBlKSB7XG4gICAgZm9yICh2YXIgaSA9IDI7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhbGlkYXRlQ2hpbGRLZXlzKGFyZ3VtZW50c1tpXSwgdHlwZSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGUgPT09IGV4cG9ydHMuRnJhZ21lbnQpIHtcbiAgICB2YWxpZGF0ZUZyYWdtZW50UHJvcHMoZWxlbWVudCk7XG4gIH0gZWxzZSB7XG4gICAgdmFsaWRhdGVQcm9wVHlwZXMoZWxlbWVudCk7XG4gIH1cblxuICByZXR1cm4gZWxlbWVudDtcbn1cbnZhciBkaWRXYXJuQWJvdXREZXByZWNhdGVkQ3JlYXRlRmFjdG9yeSA9IGZhbHNlO1xuZnVuY3Rpb24gY3JlYXRlRmFjdG9yeVdpdGhWYWxpZGF0aW9uKHR5cGUpIHtcbiAgdmFyIHZhbGlkYXRlZEZhY3RvcnkgPSBjcmVhdGVFbGVtZW50V2l0aFZhbGlkYXRpb24uYmluZChudWxsLCB0eXBlKTtcbiAgdmFsaWRhdGVkRmFjdG9yeS50eXBlID0gdHlwZTtcblxuICB7XG4gICAgaWYgKCFkaWRXYXJuQWJvdXREZXByZWNhdGVkQ3JlYXRlRmFjdG9yeSkge1xuICAgICAgZGlkV2FybkFib3V0RGVwcmVjYXRlZENyZWF0ZUZhY3RvcnkgPSB0cnVlO1xuXG4gICAgICB3YXJuKCdSZWFjdC5jcmVhdGVGYWN0b3J5KCkgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluICcgKyAnYSBmdXR1cmUgbWFqb3IgcmVsZWFzZS4gQ29uc2lkZXIgdXNpbmcgSlNYICcgKyAnb3IgdXNlIFJlYWN0LmNyZWF0ZUVsZW1lbnQoKSBkaXJlY3RseSBpbnN0ZWFkLicpO1xuICAgIH0gLy8gTGVnYWN5IGhvb2s6IHJlbW92ZSBpdFxuXG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodmFsaWRhdGVkRmFjdG9yeSwgJ3R5cGUnLCB7XG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICB3YXJuKCdGYWN0b3J5LnR5cGUgaXMgZGVwcmVjYXRlZC4gQWNjZXNzIHRoZSBjbGFzcyBkaXJlY3RseSAnICsgJ2JlZm9yZSBwYXNzaW5nIGl0IHRvIGNyZWF0ZUZhY3RvcnkuJyk7XG5cbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICd0eXBlJywge1xuICAgICAgICAgIHZhbHVlOiB0eXBlXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdHlwZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiB2YWxpZGF0ZWRGYWN0b3J5O1xufVxuZnVuY3Rpb24gY2xvbmVFbGVtZW50V2l0aFZhbGlkYXRpb24oZWxlbWVudCwgcHJvcHMsIGNoaWxkcmVuKSB7XG4gIHZhciBuZXdFbGVtZW50ID0gY2xvbmVFbGVtZW50LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG5cbiAgZm9yICh2YXIgaSA9IDI7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICB2YWxpZGF0ZUNoaWxkS2V5cyhhcmd1bWVudHNbaV0sIG5ld0VsZW1lbnQudHlwZSk7XG4gIH1cblxuICB2YWxpZGF0ZVByb3BUeXBlcyhuZXdFbGVtZW50KTtcbiAgcmV0dXJuIG5ld0VsZW1lbnQ7XG59XG5cbntcblxuICB0cnkge1xuICAgIHZhciBmcm96ZW5PYmplY3QgPSBPYmplY3QuZnJlZXplKHt9KTtcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBuby1uZXcgKi9cblxuICAgIG5ldyBNYXAoW1tmcm96ZW5PYmplY3QsIG51bGxdXSk7XG4gICAgbmV3IFNldChbZnJvemVuT2JqZWN0XSk7XG4gICAgLyogZXNsaW50LWVuYWJsZSBuby1uZXcgKi9cbiAgfSBjYXRjaCAoZSkge1xuICB9XG59XG5cbnZhciBjcmVhdGVFbGVtZW50JDEgPSAgY3JlYXRlRWxlbWVudFdpdGhWYWxpZGF0aW9uIDtcbnZhciBjbG9uZUVsZW1lbnQkMSA9ICBjbG9uZUVsZW1lbnRXaXRoVmFsaWRhdGlvbiA7XG52YXIgY3JlYXRlRmFjdG9yeSA9ICBjcmVhdGVGYWN0b3J5V2l0aFZhbGlkYXRpb24gO1xudmFyIENoaWxkcmVuID0ge1xuICBtYXA6IG1hcENoaWxkcmVuLFxuICBmb3JFYWNoOiBmb3JFYWNoQ2hpbGRyZW4sXG4gIGNvdW50OiBjb3VudENoaWxkcmVuLFxuICB0b0FycmF5OiB0b0FycmF5LFxuICBvbmx5OiBvbmx5Q2hpbGRcbn07XG5cbmV4cG9ydHMuQ2hpbGRyZW4gPSBDaGlsZHJlbjtcbmV4cG9ydHMuQ29tcG9uZW50ID0gQ29tcG9uZW50O1xuZXhwb3J0cy5QdXJlQ29tcG9uZW50ID0gUHVyZUNvbXBvbmVudDtcbmV4cG9ydHMuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQgPSBSZWFjdFNoYXJlZEludGVybmFscztcbmV4cG9ydHMuY2xvbmVFbGVtZW50ID0gY2xvbmVFbGVtZW50JDE7XG5leHBvcnRzLmNyZWF0ZUNvbnRleHQgPSBjcmVhdGVDb250ZXh0O1xuZXhwb3J0cy5jcmVhdGVFbGVtZW50ID0gY3JlYXRlRWxlbWVudCQxO1xuZXhwb3J0cy5jcmVhdGVGYWN0b3J5ID0gY3JlYXRlRmFjdG9yeTtcbmV4cG9ydHMuY3JlYXRlUmVmID0gY3JlYXRlUmVmO1xuZXhwb3J0cy5mb3J3YXJkUmVmID0gZm9yd2FyZFJlZjtcbmV4cG9ydHMuaXNWYWxpZEVsZW1lbnQgPSBpc1ZhbGlkRWxlbWVudDtcbmV4cG9ydHMubGF6eSA9IGxhenk7XG5leHBvcnRzLm1lbW8gPSBtZW1vO1xuZXhwb3J0cy51c2VDYWxsYmFjayA9IHVzZUNhbGxiYWNrO1xuZXhwb3J0cy51c2VDb250ZXh0ID0gdXNlQ29udGV4dDtcbmV4cG9ydHMudXNlRGVidWdWYWx1ZSA9IHVzZURlYnVnVmFsdWU7XG5leHBvcnRzLnVzZUVmZmVjdCA9IHVzZUVmZmVjdDtcbmV4cG9ydHMudXNlSW1wZXJhdGl2ZUhhbmRsZSA9IHVzZUltcGVyYXRpdmVIYW5kbGU7XG5leHBvcnRzLnVzZUxheW91dEVmZmVjdCA9IHVzZUxheW91dEVmZmVjdDtcbmV4cG9ydHMudXNlTWVtbyA9IHVzZU1lbW87XG5leHBvcnRzLnVzZVJlZHVjZXIgPSB1c2VSZWR1Y2VyO1xuZXhwb3J0cy51c2VSZWYgPSB1c2VSZWY7XG5leHBvcnRzLnVzZVN0YXRlID0gdXNlU3RhdGU7XG5leHBvcnRzLnZlcnNpb24gPSBSZWFjdFZlcnNpb247XG4gIH0pKCk7XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react/cjs/react.development.js\n"); + +/***/ }), + +/***/ "./node_modules/react/index.js": +/*!*************************************!*\ + !*** ./node_modules/react/index.js ***! + \*************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react.development.js */ \"./node_modules/react/cjs/react.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsSUFBSSxLQUFxQyxFQUFFLEVBRTFDLENBQUM7QUFDRixFQUFFLHVIQUFzRDtBQUN4RCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmVhY3QvaW5kZXguanM/MWZiMiJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QuZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react/index.js\n"); + +/***/ }), + +/***/ "./node_modules/regenerator-runtime/runtime.js": +/*!*****************************************************!*\ + !*** ./node_modules/regenerator-runtime/runtime.js ***! + \*****************************************************/ +/***/ (function(module) { + +eval("/**\n * Copyright (c) 2014-present, Facebook, Inc.\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\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n true ? module.exports : 0\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVnZW5lcmF0b3ItcnVudGltZS9ydW50aW1lLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZixNQUFNO0FBQ04sZUFBZTtBQUNmO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMERBQTBEO0FBQzFEO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBLFdBQVc7QUFDWDs7QUFFQTtBQUNBO0FBQ0Esd0NBQXdDLFdBQVc7QUFDbkQ7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDRCQUE0QjtBQUM1QjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUEsVUFBVTtBQUNWO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxxQ0FBcUMsY0FBYztBQUNuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7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QUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmVnZW5lcmF0b3ItcnVudGltZS9ydW50aW1lLmpzP2M1NmUiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTQtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG52YXIgcnVudGltZSA9IChmdW5jdGlvbiAoZXhwb3J0cykge1xuICBcInVzZSBzdHJpY3RcIjtcblxuICB2YXIgT3AgPSBPYmplY3QucHJvdG90eXBlO1xuICB2YXIgaGFzT3duID0gT3AuaGFzT3duUHJvcGVydHk7XG4gIHZhciB1bmRlZmluZWQ7IC8vIE1vcmUgY29tcHJlc3NpYmxlIHRoYW4gdm9pZCAwLlxuICB2YXIgJFN5bWJvbCA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiA/IFN5bWJvbCA6IHt9O1xuICB2YXIgaXRlcmF0b3JTeW1ib2wgPSAkU3ltYm9sLml0ZXJhdG9yIHx8IFwiQEBpdGVyYXRvclwiO1xuICB2YXIgYXN5bmNJdGVyYXRvclN5bWJvbCA9ICRTeW1ib2wuYXN5bmNJdGVyYXRvciB8fCBcIkBAYXN5bmNJdGVyYXRvclwiO1xuICB2YXIgdG9TdHJpbmdUYWdTeW1ib2wgPSAkU3ltYm9sLnRvU3RyaW5nVGFnIHx8IFwiQEB0b1N0cmluZ1RhZ1wiO1xuXG4gIGZ1bmN0aW9uIHdyYXAoaW5uZXJGbiwgb3V0ZXJGbiwgc2VsZiwgdHJ5TG9jc0xpc3QpIHtcbiAgICAvLyBJZiBvdXRlckZuIHByb3ZpZGVkIGFuZCBvdXRlckZuLnByb3RvdHlwZSBpcyBhIEdlbmVyYXRvciwgdGhlbiBvdXRlckZuLnByb3RvdHlwZSBpbnN0YW5jZW9mIEdlbmVyYXRvci5cbiAgICB2YXIgcHJvdG9HZW5lcmF0b3IgPSBvdXRlckZuICYmIG91dGVyRm4ucHJvdG90eXBlIGluc3RhbmNlb2YgR2VuZXJhdG9yID8gb3V0ZXJGbiA6IEdlbmVyYXRvcjtcbiAgICB2YXIgZ2VuZXJhdG9yID0gT2JqZWN0LmNyZWF0ZShwcm90b0dlbmVyYXRvci5wcm90b3R5cGUpO1xuICAgIHZhciBjb250ZXh0ID0gbmV3IENvbnRleHQodHJ5TG9jc0xpc3QgfHwgW10pO1xuXG4gICAgLy8gVGhlIC5faW52b2tlIG1ldGhvZCB1bmlmaWVzIHRoZSBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlIC5uZXh0LFxuICAgIC8vIC50aHJvdywgYW5kIC5yZXR1cm4gbWV0aG9kcy5cbiAgICBnZW5lcmF0b3IuX2ludm9rZSA9IG1ha2VJbnZva2VNZXRob2QoaW5uZXJGbiwgc2VsZiwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gZ2VuZXJhdG9yO1xuICB9XG4gIGV4cG9ydHMud3JhcCA9IHdyYXA7XG5cbiAgLy8gVHJ5L2NhdGNoIGhlbHBlciB0byBtaW5pbWl6ZSBkZW9wdGltaXphdGlvbnMuIFJldHVybnMgYSBjb21wbGV0aW9uXG4gIC8vIHJlY29yZCBsaWtlIGNvbnRleHQudHJ5RW50cmllc1tpXS5jb21wbGV0aW9uLiBUaGlzIGludGVyZmFjZSBjb3VsZFxuICAvLyBoYXZlIGJlZW4gKGFuZCB3YXMgcHJldmlvdXNseSkgZGVzaWduZWQgdG8gdGFrZSBhIGNsb3N1cmUgdG8gYmVcbiAgLy8gaW52b2tlZCB3aXRob3V0IGFyZ3VtZW50cywgYnV0IGluIGFsbCB0aGUgY2FzZXMgd2UgY2FyZSBhYm91dCB3ZVxuICAvLyBhbHJlYWR5IGhhdmUgYW4gZXhpc3RpbmcgbWV0aG9kIHdlIHdhbnQgdG8gY2FsbCwgc28gdGhlcmUncyBubyBuZWVkXG4gIC8vIHRvIGNyZWF0ZSBhIG5ldyBmdW5jdGlvbiBvYmplY3QuIFdlIGNhbiBldmVuIGdldCBhd2F5IHdpdGggYXNzdW1pbmdcbiAgLy8gdGhlIG1ldGhvZCB0YWtlcyBleGFjdGx5IG9uZSBhcmd1bWVudCwgc2luY2UgdGhhdCBoYXBwZW5zIHRvIGJlIHRydWVcbiAgLy8gaW4gZXZlcnkgY2FzZSwgc28gd2UgZG9uJ3QgaGF2ZSB0byB0b3VjaCB0aGUgYXJndW1lbnRzIG9iamVjdC4gVGhlXG4gIC8vIG9ubHkgYWRkaXRpb25hbCBhbGxvY2F0aW9uIHJlcXVpcmVkIGlzIHRoZSBjb21wbGV0aW9uIHJlY29yZCwgd2hpY2hcbiAgLy8gaGFzIGEgc3RhYmxlIHNoYXBlIGFuZCBzbyBob3BlZnVsbHkgc2hvdWxkIGJlIGNoZWFwIHRvIGFsbG9jYXRlLlxuICBmdW5jdGlvbiB0cnlDYXRjaChmbiwgb2JqLCBhcmcpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHsgdHlwZTogXCJub3JtYWxcIiwgYXJnOiBmbi5jYWxsKG9iaiwgYXJnKSB9O1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgcmV0dXJuIHsgdHlwZTogXCJ0aHJvd1wiLCBhcmc6IGVyciB9O1xuICAgIH1cbiAgfVxuXG4gIHZhciBHZW5TdGF0ZVN1c3BlbmRlZFN0YXJ0ID0gXCJzdXNwZW5kZWRTdGFydFwiO1xuICB2YXIgR2VuU3RhdGVTdXNwZW5kZWRZaWVsZCA9IFwic3VzcGVuZGVkWWllbGRcIjtcbiAgdmFyIEdlblN0YXRlRXhlY3V0aW5nID0gXCJleGVjdXRpbmdcIjtcbiAgdmFyIEdlblN0YXRlQ29tcGxldGVkID0gXCJjb21wbGV0ZWRcIjtcblxuICAvLyBSZXR1cm5pbmcgdGhpcyBvYmplY3QgZnJvbSB0aGUgaW5uZXJGbiBoYXMgdGhlIHNhbWUgZWZmZWN0IGFzXG4gIC8vIGJyZWFraW5nIG91dCBvZiB0aGUgZGlzcGF0Y2ggc3dpdGNoIHN0YXRlbWVudC5cbiAgdmFyIENvbnRpbnVlU2VudGluZWwgPSB7fTtcblxuICAvLyBEdW1teSBjb25zdHJ1Y3RvciBmdW5jdGlvbnMgdGhhdCB3ZSB1c2UgYXMgdGhlIC5jb25zdHJ1Y3RvciBhbmRcbiAgLy8gLmNvbnN0cnVjdG9yLnByb3RvdHlwZSBwcm9wZXJ0aWVzIGZvciBmdW5jdGlvbnMgdGhhdCByZXR1cm4gR2VuZXJhdG9yXG4gIC8vIG9iamVjdHMuIEZvciBmdWxsIHNwZWMgY29tcGxpYW5jZSwgeW91IG1heSB3aXNoIHRvIGNvbmZpZ3VyZSB5b3VyXG4gIC8vIG1pbmlmaWVyIG5vdCB0byBtYW5nbGUgdGhlIG5hbWVzIG9mIHRoZXNlIHR3byBmdW5jdGlvbnMuXG4gIGZ1bmN0aW9uIEdlbmVyYXRvcigpIHt9XG4gIGZ1bmN0aW9uIEdlbmVyYXRvckZ1bmN0aW9uKCkge31cbiAgZnVuY3Rpb24gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUoKSB7fVxuXG4gIC8vIFRoaXMgaXMgYSBwb2x5ZmlsbCBmb3IgJUl0ZXJhdG9yUHJvdG90eXBlJSBmb3IgZW52aXJvbm1lbnRzIHRoYXRcbiAgLy8gZG9uJ3QgbmF0aXZlbHkgc3VwcG9ydCBpdC5cbiAgdmFyIEl0ZXJhdG9yUHJvdG90eXBlID0ge307XG4gIEl0ZXJhdG9yUHJvdG90eXBlW2l0ZXJhdG9yU3ltYm9sXSA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICB2YXIgZ2V0UHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Y7XG4gIHZhciBOYXRpdmVJdGVyYXRvclByb3RvdHlwZSA9IGdldFByb3RvICYmIGdldFByb3RvKGdldFByb3RvKHZhbHVlcyhbXSkpKTtcbiAgaWYgKE5hdGl2ZUl0ZXJhdG9yUHJvdG90eXBlICYmXG4gICAgICBOYXRpdmVJdGVyYXRvclByb3RvdHlwZSAhPT0gT3AgJiZcbiAgICAgIGhhc093bi5jYWxsKE5hdGl2ZUl0ZXJhdG9yUHJvdG90eXBlLCBpdGVyYXRvclN5bWJvbCkpIHtcbiAgICAvLyBUaGlzIGVudmlyb25tZW50IGhhcyBhIG5hdGl2ZSAlSXRlcmF0b3JQcm90b3R5cGUlOyB1c2UgaXQgaW5zdGVhZFxuICAgIC8vIG9mIHRoZSBwb2x5ZmlsbC5cbiAgICBJdGVyYXRvclByb3RvdHlwZSA9IE5hdGl2ZUl0ZXJhdG9yUHJvdG90eXBlO1xuICB9XG5cbiAgdmFyIEdwID0gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUucHJvdG90eXBlID1cbiAgICBHZW5lcmF0b3IucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShJdGVyYXRvclByb3RvdHlwZSk7XG4gIEdlbmVyYXRvckZ1bmN0aW9uLnByb3RvdHlwZSA9IEdwLmNvbnN0cnVjdG9yID0gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGU7XG4gIEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLmNvbnN0cnVjdG9yID0gR2VuZXJhdG9yRnVuY3Rpb247XG4gIEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlW3RvU3RyaW5nVGFnU3ltYm9sXSA9XG4gICAgR2VuZXJhdG9yRnVuY3Rpb24uZGlzcGxheU5hbWUgPSBcIkdlbmVyYXRvckZ1bmN0aW9uXCI7XG5cbiAgLy8gSGVscGVyIGZvciBkZWZpbmluZyB0aGUgLm5leHQsIC50aHJvdywgYW5kIC5yZXR1cm4gbWV0aG9kcyBvZiB0aGVcbiAgLy8gSXRlcmF0b3IgaW50ZXJmYWNlIGluIHRlcm1zIG9mIGEgc2luZ2xlIC5faW52b2tlIG1ldGhvZC5cbiAgZnVuY3Rpb24gZGVmaW5lSXRlcmF0b3JNZXRob2RzKHByb3RvdHlwZSkge1xuICAgIFtcIm5leHRcIiwgXCJ0aHJvd1wiLCBcInJldHVyblwiXS5mb3JFYWNoKGZ1bmN0aW9uKG1ldGhvZCkge1xuICAgICAgcHJvdG90eXBlW21ldGhvZF0gPSBmdW5jdGlvbihhcmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ludm9rZShtZXRob2QsIGFyZyk7XG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgZXhwb3J0cy5pc0dlbmVyYXRvckZ1bmN0aW9uID0gZnVuY3Rpb24oZ2VuRnVuKSB7XG4gICAgdmFyIGN0b3IgPSB0eXBlb2YgZ2VuRnVuID09PSBcImZ1bmN0aW9uXCIgJiYgZ2VuRnVuLmNvbnN0cnVjdG9yO1xuICAgIHJldHVybiBjdG9yXG4gICAgICA/IGN0b3IgPT09IEdlbmVyYXRvckZ1bmN0aW9uIHx8XG4gICAgICAgIC8vIEZvciB0aGUgbmF0aXZlIEdlbmVyYXRvckZ1bmN0aW9uIGNvbnN0cnVjdG9yLCB0aGUgYmVzdCB3ZSBjYW5cbiAgICAgICAgLy8gZG8gaXMgdG8gY2hlY2sgaXRzIC5uYW1lIHByb3BlcnR5LlxuICAgICAgICAoY3Rvci5kaXNwbGF5TmFtZSB8fCBjdG9yLm5hbWUpID09PSBcIkdlbmVyYXRvckZ1bmN0aW9uXCJcbiAgICAgIDogZmFsc2U7XG4gIH07XG5cbiAgZXhwb3J0cy5tYXJrID0gZnVuY3Rpb24oZ2VuRnVuKSB7XG4gICAgaWYgKE9iamVjdC5zZXRQcm90b3R5cGVPZikge1xuICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKGdlbkZ1biwgR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBnZW5GdW4uX19wcm90b19fID0gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGU7XG4gICAgICBpZiAoISh0b1N0cmluZ1RhZ1N5bWJvbCBpbiBnZW5GdW4pKSB7XG4gICAgICAgIGdlbkZ1blt0b1N0cmluZ1RhZ1N5bWJvbF0gPSBcIkdlbmVyYXRvckZ1bmN0aW9uXCI7XG4gICAgICB9XG4gICAgfVxuICAgIGdlbkZ1bi5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKEdwKTtcbiAgICByZXR1cm4gZ2VuRnVuO1xuICB9O1xuXG4gIC8vIFdpdGhpbiB0aGUgYm9keSBvZiBhbnkgYXN5bmMgZnVuY3Rpb24sIGBhd2FpdCB4YCBpcyB0cmFuc2Zvcm1lZCB0b1xuICAvLyBgeWllbGQgcmVnZW5lcmF0b3JSdW50aW1lLmF3cmFwKHgpYCwgc28gdGhhdCB0aGUgcnVudGltZSBjYW4gdGVzdFxuICAvLyBgaGFzT3duLmNhbGwodmFsdWUsIFwiX19hd2FpdFwiKWAgdG8gZGV0ZXJtaW5lIGlmIHRoZSB5aWVsZGVkIHZhbHVlIGlzXG4gIC8vIG1lYW50IHRvIGJlIGF3YWl0ZWQuXG4gIGV4cG9ydHMuYXdyYXAgPSBmdW5jdGlvbihhcmcpIHtcbiAgICByZXR1cm4geyBfX2F3YWl0OiBhcmcgfTtcbiAgfTtcblxuICBmdW5jdGlvbiBBc3luY0l0ZXJhdG9yKGdlbmVyYXRvciwgUHJvbWlzZUltcGwpIHtcbiAgICBmdW5jdGlvbiBpbnZva2UobWV0aG9kLCBhcmcsIHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgdmFyIHJlY29yZCA9IHRyeUNhdGNoKGdlbmVyYXRvclttZXRob2RdLCBnZW5lcmF0b3IsIGFyZyk7XG4gICAgICBpZiAocmVjb3JkLnR5cGUgPT09IFwidGhyb3dcIikge1xuICAgICAgICByZWplY3QocmVjb3JkLmFyZyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgcmVzdWx0ID0gcmVjb3JkLmFyZztcbiAgICAgICAgdmFyIHZhbHVlID0gcmVzdWx0LnZhbHVlO1xuICAgICAgICBpZiAodmFsdWUgJiZcbiAgICAgICAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJlxuICAgICAgICAgICAgaGFzT3duLmNhbGwodmFsdWUsIFwiX19hd2FpdFwiKSkge1xuICAgICAgICAgIHJldHVybiBQcm9taXNlSW1wbC5yZXNvbHZlKHZhbHVlLl9fYXdhaXQpLnRoZW4oZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgICAgICAgIGludm9rZShcIm5leHRcIiwgdmFsdWUsIHJlc29sdmUsIHJlamVjdCk7XG4gICAgICAgICAgfSwgZnVuY3Rpb24oZXJyKSB7XG4gICAgICAgICAgICBpbnZva2UoXCJ0aHJvd1wiLCBlcnIsIHJlc29sdmUsIHJlamVjdCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gUHJvbWlzZUltcGwucmVzb2x2ZSh2YWx1ZSkudGhlbihmdW5jdGlvbih1bndyYXBwZWQpIHtcbiAgICAgICAgICAvLyBXaGVuIGEgeWllbGRlZCBQcm9taXNlIGlzIHJlc29sdmVkLCBpdHMgZmluYWwgdmFsdWUgYmVjb21lc1xuICAgICAgICAgIC8vIHRoZSAudmFsdWUgb2YgdGhlIFByb21pc2U8e3ZhbHVlLGRvbmV9PiByZXN1bHQgZm9yIHRoZVxuICAgICAgICAgIC8vIGN1cnJlbnQgaXRlcmF0aW9uLlxuICAgICAgICAgIHJlc3VsdC52YWx1ZSA9IHVud3JhcHBlZDtcbiAgICAgICAgICByZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgIH0sIGZ1bmN0aW9uKGVycm9yKSB7XG4gICAgICAgICAgLy8gSWYgYSByZWplY3RlZCBQcm9taXNlIHdhcyB5aWVsZGVkLCB0aHJvdyB0aGUgcmVqZWN0aW9uIGJhY2tcbiAgICAgICAgICAvLyBpbnRvIHRoZSBhc3luYyBnZW5lcmF0b3IgZnVuY3Rpb24gc28gaXQgY2FuIGJlIGhhbmRsZWQgdGhlcmUuXG4gICAgICAgICAgcmV0dXJuIGludm9rZShcInRocm93XCIsIGVycm9yLCByZXNvbHZlLCByZWplY3QpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgcHJldmlvdXNQcm9taXNlO1xuXG4gICAgZnVuY3Rpb24gZW5xdWV1ZShtZXRob2QsIGFyZykge1xuICAgICAgZnVuY3Rpb24gY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmcoKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZUltcGwoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgaW52b2tlKG1ldGhvZCwgYXJnLCByZXNvbHZlLCByZWplY3QpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHByZXZpb3VzUHJvbWlzZSA9XG4gICAgICAgIC8vIElmIGVucXVldWUgaGFzIGJlZW4gY2FsbGVkIGJlZm9yZSwgdGhlbiB3ZSB3YW50IHRvIHdhaXQgdW50aWxcbiAgICAgICAgLy8gYWxsIHByZXZpb3VzIFByb21pc2VzIGhhdmUgYmVlbiByZXNvbHZlZCBiZWZvcmUgY2FsbGluZyBpbnZva2UsXG4gICAgICAgIC8vIHNvIHRoYXQgcmVzdWx0cyBhcmUgYWx3YXlzIGRlbGl2ZXJlZCBpbiB0aGUgY29ycmVjdCBvcmRlci4gSWZcbiAgICAgICAgLy8gZW5xdWV1ZSBoYXMgbm90IGJlZW4gY2FsbGVkIGJlZm9yZSwgdGhlbiBpdCBpcyBpbXBvcnRhbnQgdG9cbiAgICAgICAgLy8gY2FsbCBpbnZva2UgaW1tZWRpYXRlbHksIHdpdGhvdXQgd2FpdGluZyBvbiBhIGNhbGxiYWNrIHRvIGZpcmUsXG4gICAgICAgIC8vIHNvIHRoYXQgdGhlIGFzeW5jIGdlbmVyYXRvciBmdW5jdGlvbiBoYXMgdGhlIG9wcG9ydHVuaXR5IHRvIGRvXG4gICAgICAgIC8vIGFueSBuZWNlc3Nhcnkgc2V0dXAgaW4gYSBwcmVkaWN0YWJsZSB3YXkuIFRoaXMgcHJlZGljdGFiaWxpdHlcbiAgICAgICAgLy8gaXMgd2h5IHRoZSBQcm9taXNlIGNvbnN0cnVjdG9yIHN5bmNocm9ub3VzbHkgaW52b2tlcyBpdHNcbiAgICAgICAgLy8gZXhlY3V0b3IgY2FsbGJhY2ssIGFuZCB3aHkgYXN5bmMgZnVuY3Rpb25zIHN5bmNocm9ub3VzbHlcbiAgICAgICAgLy8gZXhlY3V0ZSBjb2RlIGJlZm9yZSB0aGUgZmlyc3QgYXdhaXQuIFNpbmNlIHdlIGltcGxlbWVudCBzaW1wbGVcbiAgICAgICAgLy8gYXN5bmMgZnVuY3Rpb25zIGluIHRlcm1zIG9mIGFzeW5jIGdlbmVyYXRvcnMsIGl0IGlzIGVzcGVjaWFsbHlcbiAgICAgICAgLy8gaW1wb3J0YW50IHRvIGdldCB0aGlzIHJpZ2h0LCBldmVuIHRob3VnaCBpdCByZXF1aXJlcyBjYXJlLlxuICAgICAgICBwcmV2aW91c1Byb21pc2UgPyBwcmV2aW91c1Byb21pc2UudGhlbihcbiAgICAgICAgICBjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZyxcbiAgICAgICAgICAvLyBBdm9pZCBwcm9wYWdhdGluZyBmYWlsdXJlcyB0byBQcm9taXNlcyByZXR1cm5lZCBieSBsYXRlclxuICAgICAgICAgIC8vIGludm9jYXRpb25zIG9mIHRoZSBpdGVyYXRvci5cbiAgICAgICAgICBjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZ1xuICAgICAgICApIDogY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmcoKTtcbiAgICB9XG5cbiAgICAvLyBEZWZpbmUgdGhlIHVuaWZpZWQgaGVscGVyIG1ldGhvZCB0aGF0IGlzIHVzZWQgdG8gaW1wbGVtZW50IC5uZXh0LFxuICAgIC8vIC50aHJvdywgYW5kIC5yZXR1cm4gKHNlZSBkZWZpbmVJdGVyYXRvck1ldGhvZHMpLlxuICAgIHRoaXMuX2ludm9rZSA9IGVucXVldWU7XG4gIH1cblxuICBkZWZpbmVJdGVyYXRvck1ldGhvZHMoQXN5bmNJdGVyYXRvci5wcm90b3R5cGUpO1xuICBBc3luY0l0ZXJhdG9yLnByb3RvdHlwZVthc3luY0l0ZXJhdG9yU3ltYm9sXSA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcbiAgZXhwb3J0cy5Bc3luY0l0ZXJhdG9yID0gQXN5bmNJdGVyYXRvcjtcblxuICAvLyBOb3RlIHRoYXQgc2ltcGxlIGFzeW5jIGZ1bmN0aW9ucyBhcmUgaW1wbGVtZW50ZWQgb24gdG9wIG9mXG4gIC8vIEFzeW5jSXRlcmF0b3Igb2JqZWN0czsgdGhleSBqdXN0IHJldHVybiBhIFByb21pc2UgZm9yIHRoZSB2YWx1ZSBvZlxuICAvLyB0aGUgZmluYWwgcmVzdWx0IHByb2R1Y2VkIGJ5IHRoZSBpdGVyYXRvci5cbiAgZXhwb3J0cy5hc3luYyA9IGZ1bmN0aW9uKGlubmVyRm4sIG91dGVyRm4sIHNlbGYsIHRyeUxvY3NMaXN0LCBQcm9taXNlSW1wbCkge1xuICAgIGlmIChQcm9taXNlSW1wbCA9PT0gdm9pZCAwKSBQcm9taXNlSW1wbCA9IFByb21pc2U7XG5cbiAgICB2YXIgaXRlciA9IG5ldyBBc3luY0l0ZXJhdG9yKFxuICAgICAgd3JhcChpbm5lckZuLCBvdXRlckZuLCBzZWxmLCB0cnlMb2NzTGlzdCksXG4gICAgICBQcm9taXNlSW1wbFxuICAgICk7XG5cbiAgICByZXR1cm4gZXhwb3J0cy5pc0dlbmVyYXRvckZ1bmN0aW9uKG91dGVyRm4pXG4gICAgICA/IGl0ZXIgLy8gSWYgb3V0ZXJGbiBpcyBhIGdlbmVyYXRvciwgcmV0dXJuIHRoZSBmdWxsIGl0ZXJhdG9yLlxuICAgICAgOiBpdGVyLm5leHQoKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkge1xuICAgICAgICAgIHJldHVybiByZXN1bHQuZG9uZSA/IHJlc3VsdC52YWx1ZSA6IGl0ZXIubmV4dCgpO1xuICAgICAgICB9KTtcbiAgfTtcblxuICBmdW5jdGlvbiBtYWtlSW52b2tlTWV0aG9kKGlubmVyRm4sIHNlbGYsIGNvbnRleHQpIHtcbiAgICB2YXIgc3RhdGUgPSBHZW5TdGF0ZVN1c3BlbmRlZFN0YXJ0O1xuXG4gICAgcmV0dXJuIGZ1bmN0aW9uIGludm9rZShtZXRob2QsIGFyZykge1xuICAgICAgaWYgKHN0YXRlID09PSBHZW5TdGF0ZUV4ZWN1dGluZykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nXCIpO1xuICAgICAgfVxuXG4gICAgICBpZiAoc3RhdGUgPT09IEdlblN0YXRlQ29tcGxldGVkKSB7XG4gICAgICAgIGlmIChtZXRob2QgPT09IFwidGhyb3dcIikge1xuICAgICAgICAgIHRocm93IGFyZztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEJlIGZvcmdpdmluZywgcGVyIDI1LjMuMy4zLjMgb2YgdGhlIHNwZWM6XG4gICAgICAgIC8vIGh0dHBzOi8vcGVvcGxlLm1vemlsbGEub3JnL35qb3JlbmRvcmZmL2VzNi1kcmFmdC5odG1sI3NlYy1nZW5lcmF0b3JyZXN1bWVcbiAgICAgICAgcmV0dXJuIGRvbmVSZXN1bHQoKTtcbiAgICAgIH1cblxuICAgICAgY29udGV4dC5tZXRob2QgPSBtZXRob2Q7XG4gICAgICBjb250ZXh0LmFyZyA9IGFyZztcblxuICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgdmFyIGRlbGVnYXRlID0gY29udGV4dC5kZWxlZ2F0ZTtcbiAgICAgICAgaWYgKGRlbGVnYXRlKSB7XG4gICAgICAgICAgdmFyIGRlbGVnYXRlUmVzdWx0ID0gbWF5YmVJbnZva2VEZWxlZ2F0ZShkZWxlZ2F0ZSwgY29udGV4dCk7XG4gICAgICAgICAgaWYgKGRlbGVnYXRlUmVzdWx0KSB7XG4gICAgICAgICAgICBpZiAoZGVsZWdhdGVSZXN1bHQgPT09IENvbnRpbnVlU2VudGluZWwpIGNvbnRpbnVlO1xuICAgICAgICAgICAgcmV0dXJuIGRlbGVnYXRlUmVzdWx0O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb250ZXh0Lm1ldGhvZCA9PT0gXCJuZXh0XCIpIHtcbiAgICAgICAgICAvLyBTZXR0aW5nIGNvbnRleHQuX3NlbnQgZm9yIGxlZ2FjeSBzdXBwb3J0IG9mIEJhYmVsJ3NcbiAgICAgICAgICAvLyBmdW5jdGlvbi5zZW50IGltcGxlbWVudGF0aW9uLlxuICAgICAgICAgIGNvbnRleHQuc2VudCA9IGNvbnRleHQuX3NlbnQgPSBjb250ZXh0LmFyZztcblxuICAgICAgICB9IGVsc2UgaWYgKGNvbnRleHQubWV0aG9kID09PSBcInRocm93XCIpIHtcbiAgICAgICAgICBpZiAoc3RhdGUgPT09IEdlblN0YXRlU3VzcGVuZGVkU3RhcnQpIHtcbiAgICAgICAgICAgIHN0YXRlID0gR2VuU3RhdGVDb21wbGV0ZWQ7XG4gICAgICAgICAgICB0aHJvdyBjb250ZXh0LmFyZztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb250ZXh0LmRpc3BhdGNoRXhjZXB0aW9uKGNvbnRleHQuYXJnKTtcblxuICAgICAgICB9IGVsc2UgaWYgKGNvbnRleHQubWV0aG9kID09PSBcInJldHVyblwiKSB7XG4gICAgICAgICAgY29udGV4dC5hYnJ1cHQoXCJyZXR1cm5cIiwgY29udGV4dC5hcmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RhdGUgPSBHZW5TdGF0ZUV4ZWN1dGluZztcblxuICAgICAgICB2YXIgcmVjb3JkID0gdHJ5Q2F0Y2goaW5uZXJGbiwgc2VsZiwgY29udGV4dCk7XG4gICAgICAgIGlmIChyZWNvcmQudHlwZSA9PT0gXCJub3JtYWxcIikge1xuICAgICAgICAgIC8vIElmIGFuIGV4Y2VwdGlvbiBpcyB0aHJvd24gZnJvbSBpbm5lckZuLCB3ZSBsZWF2ZSBzdGF0ZSA9PT1cbiAgICAgICAgICAvLyBHZW5TdGF0ZUV4ZWN1dGluZyBhbmQgbG9vcCBiYWNrIGZvciBhbm90aGVyIGludm9jYXRpb24uXG4gICAgICAgICAgc3RhdGUgPSBjb250ZXh0LmRvbmVcbiAgICAgICAgICAgID8gR2VuU3RhdGVDb21wbGV0ZWRcbiAgICAgICAgICAgIDogR2VuU3RhdGVTdXNwZW5kZWRZaWVsZDtcblxuICAgICAgICAgIGlmIChyZWNvcmQuYXJnID09PSBDb250aW51ZVNlbnRpbmVsKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdmFsdWU6IHJlY29yZC5hcmcsXG4gICAgICAgICAgICBkb25lOiBjb250ZXh0LmRvbmVcbiAgICAgICAgICB9O1xuXG4gICAgICAgIH0gZWxzZSBpZiAocmVjb3JkLnR5cGUgPT09IFwidGhyb3dcIikge1xuICAgICAgICAgIHN0YXRlID0gR2VuU3RhdGVDb21wbGV0ZWQ7XG4gICAgICAgICAgLy8gRGlzcGF0Y2ggdGhlIGV4Y2VwdGlvbiBieSBsb29waW5nIGJhY2sgYXJvdW5kIHRvIHRoZVxuICAgICAgICAgIC8vIGNvbnRleHQuZGlzcGF0Y2hFeGNlcHRpb24oY29udGV4dC5hcmcpIGNhbGwgYWJvdmUuXG4gICAgICAgICAgY29udGV4dC5tZXRob2QgPSBcInRocm93XCI7XG4gICAgICAgICAgY29udGV4dC5hcmcgPSByZWNvcmQuYXJnO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIC8vIENhbGwgZGVsZWdhdGUuaXRlcmF0b3JbY29udGV4dC5tZXRob2RdKGNvbnRleHQuYXJnKSBhbmQgaGFuZGxlIHRoZVxuICAvLyByZXN1bHQsIGVpdGhlciBieSByZXR1cm5pbmcgYSB7IHZhbHVlLCBkb25lIH0gcmVzdWx0IGZyb20gdGhlXG4gIC8vIGRlbGVnYXRlIGl0ZXJhdG9yLCBvciBieSBtb2RpZnlpbmcgY29udGV4dC5tZXRob2QgYW5kIGNvbnRleHQuYXJnLFxuICAvLyBzZXR0aW5nIGNvbnRleHQuZGVsZWdhdGUgdG8gbnVsbCwgYW5kIHJldHVybmluZyB0aGUgQ29udGludWVTZW50aW5lbC5cbiAgZnVuY3Rpb24gbWF5YmVJbnZva2VEZWxlZ2F0ZShkZWxlZ2F0ZSwgY29udGV4dCkge1xuICAgIHZhciBtZXRob2QgPSBkZWxlZ2F0ZS5pdGVyYXRvcltjb250ZXh0Lm1ldGhvZF07XG4gICAgaWYgKG1ldGhvZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBBIC50aHJvdyBvciAucmV0dXJuIHdoZW4gdGhlIGRlbGVnYXRlIGl0ZXJhdG9yIGhhcyBubyAudGhyb3dcbiAgICAgIC8vIG1ldGhvZCBhbHdheXMgdGVybWluYXRlcyB0aGUgeWllbGQqIGxvb3AuXG4gICAgICBjb250ZXh0LmRlbGVnYXRlID0gbnVsbDtcblxuICAgICAgaWYgKGNvbnRleHQubWV0aG9kID09PSBcInRocm93XCIpIHtcbiAgICAgICAgLy8gTm90ZTogW1wicmV0dXJuXCJdIG11c3QgYmUgdXNlZCBmb3IgRVMzIHBhcnNpbmcgY29tcGF0aWJpbGl0eS5cbiAgICAgICAgaWYgKGRlbGVnYXRlLml0ZXJhdG9yW1wicmV0dXJuXCJdKSB7XG4gICAgICAgICAgLy8gSWYgdGhlIGRlbGVnYXRlIGl0ZXJhdG9yIGhhcyBhIHJldHVybiBtZXRob2QsIGdpdmUgaXQgYVxuICAgICAgICAgIC8vIGNoYW5jZSB0byBjbGVhbiB1cC5cbiAgICAgICAgICBjb250ZXh0Lm1ldGhvZCA9IFwicmV0dXJuXCI7XG4gICAgICAgICAgY29udGV4dC5hcmcgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgbWF5YmVJbnZva2VEZWxlZ2F0ZShkZWxlZ2F0ZSwgY29udGV4dCk7XG5cbiAgICAgICAgICBpZiAoY29udGV4dC5tZXRob2QgPT09IFwidGhyb3dcIikge1xuICAgICAgICAgICAgLy8gSWYgbWF5YmVJbnZva2VEZWxlZ2F0ZShjb250ZXh0KSBjaGFuZ2VkIGNvbnRleHQubWV0aG9kIGZyb21cbiAgICAgICAgICAgIC8vIFwicmV0dXJuXCIgdG8gXCJ0aHJvd1wiLCBsZXQgdGhhdCBvdmVycmlkZSB0aGUgVHlwZUVycm9yIGJlbG93LlxuICAgICAgICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29udGV4dC5tZXRob2QgPSBcInRocm93XCI7XG4gICAgICAgIGNvbnRleHQuYXJnID0gbmV3IFR5cGVFcnJvcihcbiAgICAgICAgICBcIlRoZSBpdGVyYXRvciBkb2VzIG5vdCBwcm92aWRlIGEgJ3Rocm93JyBtZXRob2RcIik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBDb250aW51ZVNlbnRpbmVsO1xuICAgIH1cblxuICAgIHZhciByZWNvcmQgPSB0cnlDYXRjaChtZXRob2QsIGRlbGVnYXRlLml0ZXJhdG9yLCBjb250ZXh0LmFyZyk7XG5cbiAgICBpZiAocmVjb3JkLnR5cGUgPT09IFwidGhyb3dcIikge1xuICAgICAgY29udGV4dC5tZXRob2QgPSBcInRocm93XCI7XG4gICAgICBjb250ZXh0LmFyZyA9IHJlY29yZC5hcmc7XG4gICAgICBjb250ZXh0LmRlbGVnYXRlID0gbnVsbDtcbiAgICAgIHJldHVybiBDb250aW51ZVNlbnRpbmVsO1xuICAgIH1cblxuICAgIHZhciBpbmZvID0gcmVjb3JkLmFyZztcblxuICAgIGlmICghIGluZm8pIHtcbiAgICAgIGNvbnRleHQubWV0aG9kID0gXCJ0aHJvd1wiO1xuICAgICAgY29udGV4dC5hcmcgPSBuZXcgVHlwZUVycm9yKFwiaXRlcmF0b3IgcmVzdWx0IGlzIG5vdCBhbiBvYmplY3RcIik7XG4gICAgICBjb250ZXh0LmRlbGVnYXRlID0gbnVsbDtcbiAgICAgIHJldHVybiBDb250aW51ZVNlbnRpbmVsO1xuICAgIH1cblxuICAgIGlmIChpbmZvLmRvbmUpIHtcbiAgICAgIC8vIEFzc2lnbiB0aGUgcmVzdWx0IG9mIHRoZSBmaW5pc2hlZCBkZWxlZ2F0ZSB0byB0aGUgdGVtcG9yYXJ5XG4gICAgICAvLyB2YXJpYWJsZSBzcGVjaWZpZWQgYnkgZGVsZWdhdGUucmVzdWx0TmFtZSAoc2VlIGRlbGVnYXRlWWllbGQpLlxuICAgICAgY29udGV4dFtkZWxlZ2F0ZS5yZXN1bHROYW1lXSA9IGluZm8udmFsdWU7XG5cbiAgICAgIC8vIFJlc3VtZSBleGVjdXRpb24gYXQgdGhlIGRlc2lyZWQgbG9jYXRpb24gKHNlZSBkZWxlZ2F0ZVlpZWxkKS5cbiAgICAgIGNvbnRleHQubmV4dCA9IGRlbGVnYXRlLm5leHRMb2M7XG5cbiAgICAgIC8vIElmIGNvbnRleHQubWV0aG9kIHdhcyBcInRocm93XCIgYnV0IHRoZSBkZWxlZ2F0ZSBoYW5kbGVkIHRoZVxuICAgICAgLy8gZXhjZXB0aW9uLCBsZXQgdGhlIG91dGVyIGdlbmVyYXRvciBwcm9jZWVkIG5vcm1hbGx5LiBJZlxuICAgICAgLy8gY29udGV4dC5tZXRob2Qgd2FzIFwibmV4dFwiLCBmb3JnZXQgY29udGV4dC5hcmcgc2luY2UgaXQgaGFzIGJlZW5cbiAgICAgIC8vIFwiY29uc3VtZWRcIiBieSB0aGUgZGVsZWdhdGUgaXRlcmF0b3IuIElmIGNvbnRleHQubWV0aG9kIHdhc1xuICAgICAgLy8gXCJyZXR1cm5cIiwgYWxsb3cgdGhlIG9yaWdpbmFsIC5yZXR1cm4gY2FsbCB0byBjb250aW51ZSBpbiB0aGVcbiAgICAgIC8vIG91dGVyIGdlbmVyYXRvci5cbiAgICAgIGlmIChjb250ZXh0Lm1ldGhvZCAhPT0gXCJyZXR1cm5cIikge1xuICAgICAgICBjb250ZXh0Lm1ldGhvZCA9IFwibmV4dFwiO1xuICAgICAgICBjb250ZXh0LmFyZyA9IHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBSZS15aWVsZCB0aGUgcmVzdWx0IHJldHVybmVkIGJ5IHRoZSBkZWxlZ2F0ZSBtZXRob2QuXG4gICAgICByZXR1cm4gaW5mbztcbiAgICB9XG5cbiAgICAvLyBUaGUgZGVsZWdhdGUgaXRlcmF0b3IgaXMgZmluaXNoZWQsIHNvIGZvcmdldCBpdCBhbmQgY29udGludWUgd2l0aFxuICAgIC8vIHRoZSBvdXRlciBnZW5lcmF0b3IuXG4gICAgY29udGV4dC5kZWxlZ2F0ZSA9IG51bGw7XG4gICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gIH1cblxuICAvLyBEZWZpbmUgR2VuZXJhdG9yLnByb3RvdHlwZS57bmV4dCx0aHJvdyxyZXR1cm59IGluIHRlcm1zIG9mIHRoZVxuICAvLyB1bmlmaWVkIC5faW52b2tlIGhlbHBlciBtZXRob2QuXG4gIGRlZmluZUl0ZXJhdG9yTWV0aG9kcyhHcCk7XG5cbiAgR3BbdG9TdHJpbmdUYWdTeW1ib2xdID0gXCJHZW5lcmF0b3JcIjtcblxuICAvLyBBIEdlbmVyYXRvciBzaG91bGQgYWx3YXlzIHJldHVybiBpdHNlbGYgYXMgdGhlIGl0ZXJhdG9yIG9iamVjdCB3aGVuIHRoZVxuICAvLyBAQGl0ZXJhdG9yIGZ1bmN0aW9uIGlzIGNhbGxlZCBvbiBpdC4gU29tZSBicm93c2VycycgaW1wbGVtZW50YXRpb25zIG9mIHRoZVxuICAvLyBpdGVyYXRvciBwcm90b3R5cGUgY2hhaW4gaW5jb3JyZWN0bHkgaW1wbGVtZW50IHRoaXMsIGNhdXNpbmcgdGhlIEdlbmVyYXRvclxuICAvLyBvYmplY3QgdG8gbm90IGJlIHJldHVybmVkIGZyb20gdGhpcyBjYWxsLiBUaGlzIGVuc3VyZXMgdGhhdCBkb2Vzbid0IGhhcHBlbi5cbiAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWdlbmVyYXRvci9pc3N1ZXMvMjc0IGZvciBtb3JlIGRldGFpbHMuXG4gIEdwW2l0ZXJhdG9yU3ltYm9sXSA9IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIEdwLnRvU3RyaW5nID0gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIFwiW29iamVjdCBHZW5lcmF0b3JdXCI7XG4gIH07XG5cbiAgZnVuY3Rpb24gcHVzaFRyeUVudHJ5KGxvY3MpIHtcbiAgICB2YXIgZW50cnkgPSB7IHRyeUxvYzogbG9jc1swXSB9O1xuXG4gICAgaWYgKDEgaW4gbG9jcykge1xuICAgICAgZW50cnkuY2F0Y2hMb2MgPSBsb2NzWzFdO1xuICAgIH1cblxuICAgIGlmICgyIGluIGxvY3MpIHtcbiAgICAgIGVudHJ5LmZpbmFsbHlMb2MgPSBsb2NzWzJdO1xuICAgICAgZW50cnkuYWZ0ZXJMb2MgPSBsb2NzWzNdO1xuICAgIH1cblxuICAgIHRoaXMudHJ5RW50cmllcy5wdXNoKGVudHJ5KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlc2V0VHJ5RW50cnkoZW50cnkpIHtcbiAgICB2YXIgcmVjb3JkID0gZW50cnkuY29tcGxldGlvbiB8fCB7fTtcbiAgICByZWNvcmQudHlwZSA9IFwibm9ybWFsXCI7XG4gICAgZGVsZXRlIHJlY29yZC5hcmc7XG4gICAgZW50cnkuY29tcGxldGlvbiA9IHJlY29yZDtcbiAgfVxuXG4gIGZ1bmN0aW9uIENvbnRleHQodHJ5TG9jc0xpc3QpIHtcbiAgICAvLyBUaGUgcm9vdCBlbnRyeSBvYmplY3QgKGVmZmVjdGl2ZWx5IGEgdHJ5IHN0YXRlbWVudCB3aXRob3V0IGEgY2F0Y2hcbiAgICAvLyBvciBhIGZpbmFsbHkgYmxvY2spIGdpdmVzIHVzIGEgcGxhY2UgdG8gc3RvcmUgdmFsdWVzIHRocm93biBmcm9tXG4gICAgLy8gbG9jYXRpb25zIHdoZXJlIHRoZXJlIGlzIG5vIGVuY2xvc2luZyB0cnkgc3RhdGVtZW50LlxuICAgIHRoaXMudHJ5RW50cmllcyA9IFt7IHRyeUxvYzogXCJyb290XCIgfV07XG4gICAgdHJ5TG9jc0xpc3QuZm9yRWFjaChwdXNoVHJ5RW50cnksIHRoaXMpO1xuICAgIHRoaXMucmVzZXQodHJ1ZSk7XG4gIH1cblxuICBleHBvcnRzLmtleXMgPSBmdW5jdGlvbihvYmplY3QpIHtcbiAgICB2YXIga2V5cyA9IFtdO1xuICAgIGZvciAodmFyIGtleSBpbiBvYmplY3QpIHtcbiAgICAgIGtleXMucHVzaChrZXkpO1xuICAgIH1cbiAgICBrZXlzLnJldmVyc2UoKTtcblxuICAgIC8vIFJhdGhlciB0aGFuIHJldHVybmluZyBhbiBvYmplY3Qgd2l0aCBhIG5leHQgbWV0aG9kLCB3ZSBrZWVwXG4gICAgLy8gdGhpbmdzIHNpbXBsZSBhbmQgcmV0dXJuIHRoZSBuZXh0IGZ1bmN0aW9uIGl0c2VsZi5cbiAgICByZXR1cm4gZnVuY3Rpb24gbmV4dCgpIHtcbiAgICAgIHdoaWxlIChrZXlzLmxlbmd0aCkge1xuICAgICAgICB2YXIga2V5ID0ga2V5cy5wb3AoKTtcbiAgICAgICAgaWYgKGtleSBpbiBvYmplY3QpIHtcbiAgICAgICAgICBuZXh0LnZhbHVlID0ga2V5O1xuICAgICAgICAgIG5leHQuZG9uZSA9IGZhbHNlO1xuICAgICAgICAgIHJldHVybiBuZXh0O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFRvIGF2b2lkIGNyZWF0aW5nIGFuIGFkZGl0aW9uYWwgb2JqZWN0LCB3ZSBqdXN0IGhhbmcgdGhlIC52YWx1ZVxuICAgICAgLy8gYW5kIC5kb25lIHByb3BlcnRpZXMgb2ZmIHRoZSBuZXh0IGZ1bmN0aW9uIG9iamVjdCBpdHNlbGYuIFRoaXNcbiAgICAgIC8vIGFsc28gZW5zdXJlcyB0aGF0IHRoZSBtaW5pZmllciB3aWxsIG5vdCBhbm9ueW1pemUgdGhlIGZ1bmN0aW9uLlxuICAgICAgbmV4dC5kb25lID0gdHJ1ZTtcbiAgICAgIHJldHVybiBuZXh0O1xuICAgIH07XG4gIH07XG5cbiAgZnVuY3Rpb24gdmFsdWVzKGl0ZXJhYmxlKSB7XG4gICAgaWYgKGl0ZXJhYmxlKSB7XG4gICAgICB2YXIgaXRlcmF0b3JNZXRob2QgPSBpdGVyYWJsZVtpdGVyYXRvclN5bWJvbF07XG4gICAgICBpZiAoaXRlcmF0b3JNZXRob2QpIHtcbiAgICAgICAgcmV0dXJuIGl0ZXJhdG9yTWV0aG9kLmNhbGwoaXRlcmFibGUpO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIGl0ZXJhYmxlLm5leHQgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICByZXR1cm4gaXRlcmFibGU7XG4gICAgICB9XG5cbiAgICAgIGlmICghaXNOYU4oaXRlcmFibGUubGVuZ3RoKSkge1xuICAgICAgICB2YXIgaSA9IC0xLCBuZXh0ID0gZnVuY3Rpb24gbmV4dCgpIHtcbiAgICAgICAgICB3aGlsZSAoKytpIDwgaXRlcmFibGUubGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAoaGFzT3duLmNhbGwoaXRlcmFibGUsIGkpKSB7XG4gICAgICAgICAgICAgIG5leHQudmFsdWUgPSBpdGVyYWJsZVtpXTtcbiAgICAgICAgICAgICAgbmV4dC5kb25lID0gZmFsc2U7XG4gICAgICAgICAgICAgIHJldHVybiBuZXh0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIG5leHQudmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgbmV4dC5kb25lID0gdHJ1ZTtcblxuICAgICAgICAgIHJldHVybiBuZXh0O1xuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBuZXh0Lm5leHQgPSBuZXh0O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJldHVybiBhbiBpdGVyYXRvciB3aXRoIG5vIHZhbHVlcy5cbiAgICByZXR1cm4geyBuZXh0OiBkb25lUmVzdWx0IH07XG4gIH1cbiAgZXhwb3J0cy52YWx1ZXMgPSB2YWx1ZXM7XG5cbiAgZnVuY3Rpb24gZG9uZVJlc3VsdCgpIHtcbiAgICByZXR1cm4geyB2YWx1ZTogdW5kZWZpbmVkLCBkb25lOiB0cnVlIH07XG4gIH1cblxuICBDb250ZXh0LnByb3RvdHlwZSA9IHtcbiAgICBjb25zdHJ1Y3RvcjogQ29udGV4dCxcblxuICAgIHJlc2V0OiBmdW5jdGlvbihza2lwVGVtcFJlc2V0KSB7XG4gICAgICB0aGlzLnByZXYgPSAwO1xuICAgICAgdGhpcy5uZXh0ID0gMDtcbiAgICAgIC8vIFJlc2V0dGluZyBjb250ZXh0Ll9zZW50IGZvciBsZWdhY3kgc3VwcG9ydCBvZiBCYWJlbCdzXG4gICAgICAvLyBmdW5jdGlvbi5zZW50IGltcGxlbWVudGF0aW9uLlxuICAgICAgdGhpcy5zZW50ID0gdGhpcy5fc2VudCA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuZG9uZSA9IGZhbHNlO1xuICAgICAgdGhpcy5kZWxlZ2F0ZSA9IG51bGw7XG5cbiAgICAgIHRoaXMubWV0aG9kID0gXCJuZXh0XCI7XG4gICAgICB0aGlzLmFyZyA9IHVuZGVmaW5lZDtcblxuICAgICAgdGhpcy50cnlFbnRyaWVzLmZvckVhY2gocmVzZXRUcnlFbnRyeSk7XG5cbiAgICAgIGlmICghc2tpcFRlbXBSZXNldCkge1xuICAgICAgICBmb3IgKHZhciBuYW1lIGluIHRoaXMpIHtcbiAgICAgICAgICAvLyBOb3Qgc3VyZSBhYm91dCB0aGUgb3B0aW1hbCBvcmRlciBvZiB0aGVzZSBjb25kaXRpb25zOlxuICAgICAgICAgIGlmIChuYW1lLmNoYXJBdCgwKSA9PT0gXCJ0XCIgJiZcbiAgICAgICAgICAgICAgaGFzT3duLmNhbGwodGhpcywgbmFtZSkgJiZcbiAgICAgICAgICAgICAgIWlzTmFOKCtuYW1lLnNsaWNlKDEpKSkge1xuICAgICAgICAgICAgdGhpc1tuYW1lXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuXG4gICAgc3RvcDogZnVuY3Rpb24oKSB7XG4gICAgICB0aGlzLmRvbmUgPSB0cnVlO1xuXG4gICAgICB2YXIgcm9vdEVudHJ5ID0gdGhpcy50cnlFbnRyaWVzWzBdO1xuICAgICAgdmFyIHJvb3RSZWNvcmQgPSByb290RW50cnkuY29tcGxldGlvbjtcbiAgICAgIGlmIChyb290UmVjb3JkLnR5cGUgPT09IFwidGhyb3dcIikge1xuICAgICAgICB0aHJvdyByb290UmVjb3JkLmFyZztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMucnZhbDtcbiAgICB9LFxuXG4gICAgZGlzcGF0Y2hFeGNlcHRpb246IGZ1bmN0aW9uKGV4Y2VwdGlvbikge1xuICAgICAgaWYgKHRoaXMuZG9uZSkge1xuICAgICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgICB9XG5cbiAgICAgIHZhciBjb250ZXh0ID0gdGhpcztcbiAgICAgIGZ1bmN0aW9uIGhhbmRsZShsb2MsIGNhdWdodCkge1xuICAgICAgICByZWNvcmQudHlwZSA9IFwidGhyb3dcIjtcbiAgICAgICAgcmVjb3JkLmFyZyA9IGV4Y2VwdGlvbjtcbiAgICAgICAgY29udGV4dC5uZXh0ID0gbG9jO1xuXG4gICAgICAgIGlmIChjYXVnaHQpIHtcbiAgICAgICAgICAvLyBJZiB0aGUgZGlzcGF0Y2hlZCBleGNlcHRpb24gd2FzIGNhdWdodCBieSBhIGNhdGNoIGJsb2NrLFxuICAgICAgICAgIC8vIHRoZW4gbGV0IHRoYXQgY2F0Y2ggYmxvY2sgaGFuZGxlIHRoZSBleGNlcHRpb24gbm9ybWFsbHkuXG4gICAgICAgICAgY29udGV4dC5tZXRob2QgPSBcIm5leHRcIjtcbiAgICAgICAgICBjb250ZXh0LmFyZyA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAhISBjYXVnaHQ7XG4gICAgICB9XG5cbiAgICAgIGZvciAodmFyIGkgPSB0aGlzLnRyeUVudHJpZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyAtLWkpIHtcbiAgICAgICAgdmFyIGVudHJ5ID0gdGhpcy50cnlFbnRyaWVzW2ldO1xuICAgICAgICB2YXIgcmVjb3JkID0gZW50cnkuY29tcGxldGlvbjtcblxuICAgICAgICBpZiAoZW50cnkudHJ5TG9jID09PSBcInJvb3RcIikge1xuICAgICAgICAgIC8vIEV4Y2VwdGlvbiB0aHJvd24gb3V0c2lkZSBvZiBhbnkgdHJ5IGJsb2NrIHRoYXQgY291bGQgaGFuZGxlXG4gICAgICAgICAgLy8gaXQsIHNvIHNldCB0aGUgY29tcGxldGlvbiB2YWx1ZSBvZiB0aGUgZW50aXJlIGZ1bmN0aW9uIHRvXG4gICAgICAgICAgLy8gdGhyb3cgdGhlIGV4Y2VwdGlvbi5cbiAgICAgICAgICByZXR1cm4gaGFuZGxlKFwiZW5kXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGVudHJ5LnRyeUxvYyA8PSB0aGlzLnByZXYpIHtcbiAgICAgICAgICB2YXIgaGFzQ2F0Y2ggPSBoYXNPd24uY2FsbChlbnRyeSwgXCJjYXRjaExvY1wiKTtcbiAgICAgICAgICB2YXIgaGFzRmluYWxseSA9IGhhc093bi5jYWxsKGVudHJ5LCBcImZpbmFsbHlMb2NcIik7XG5cbiAgICAgICAgICBpZiAoaGFzQ2F0Y2ggJiYgaGFzRmluYWxseSkge1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGVudHJ5LmNhdGNoTG9jKSB7XG4gICAgICAgICAgICAgIHJldHVybiBoYW5kbGUoZW50cnkuY2F0Y2hMb2MsIHRydWUpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnByZXYgPCBlbnRyeS5maW5hbGx5TG9jKSB7XG4gICAgICAgICAgICAgIHJldHVybiBoYW5kbGUoZW50cnkuZmluYWxseUxvYyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICB9IGVsc2UgaWYgKGhhc0NhdGNoKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5wcmV2IDwgZW50cnkuY2F0Y2hMb2MpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGhhbmRsZShlbnRyeS5jYXRjaExvYywgdHJ1ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICB9IGVsc2UgaWYgKGhhc0ZpbmFsbHkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnByZXYgPCBlbnRyeS5maW5hbGx5TG9jKSB7XG4gICAgICAgICAgICAgIHJldHVybiBoYW5kbGUoZW50cnkuZmluYWxseUxvYyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwidHJ5IHN0YXRlbWVudCB3aXRob3V0IGNhdGNoIG9yIGZpbmFsbHlcIik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcblxuICAgIGFicnVwdDogZnVuY3Rpb24odHlwZSwgYXJnKSB7XG4gICAgICBmb3IgKHZhciBpID0gdGhpcy50cnlFbnRyaWVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgLS1pKSB7XG4gICAgICAgIHZhciBlbnRyeSA9IHRoaXMudHJ5RW50cmllc1tpXTtcbiAgICAgICAgaWYgKGVudHJ5LnRyeUxvYyA8PSB0aGlzLnByZXYgJiZcbiAgICAgICAgICAgIGhhc093bi5jYWxsKGVudHJ5LCBcImZpbmFsbHlMb2NcIikgJiZcbiAgICAgICAgICAgIHRoaXMucHJldiA8IGVudHJ5LmZpbmFsbHlMb2MpIHtcbiAgICAgICAgICB2YXIgZmluYWxseUVudHJ5ID0gZW50cnk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGZpbmFsbHlFbnRyeSAmJlxuICAgICAgICAgICh0eXBlID09PSBcImJyZWFrXCIgfHxcbiAgICAgICAgICAgdHlwZSA9PT0gXCJjb250aW51ZVwiKSAmJlxuICAgICAgICAgIGZpbmFsbHlFbnRyeS50cnlMb2MgPD0gYXJnICYmXG4gICAgICAgICAgYXJnIDw9IGZpbmFsbHlFbnRyeS5maW5hbGx5TG9jKSB7XG4gICAgICAgIC8vIElnbm9yZSB0aGUgZmluYWxseSBlbnRyeSBpZiBjb250cm9sIGlzIG5vdCBqdW1waW5nIHRvIGFcbiAgICAgICAgLy8gbG9jYXRpb24gb3V0c2lkZSB0aGUgdHJ5L2NhdGNoIGJsb2NrLlxuICAgICAgICBmaW5hbGx5RW50cnkgPSBudWxsO1xuICAgICAgfVxuXG4gICAgICB2YXIgcmVjb3JkID0gZmluYWxseUVudHJ5ID8gZmluYWxseUVudHJ5LmNvbXBsZXRpb24gOiB7fTtcbiAgICAgIHJlY29yZC50eXBlID0gdHlwZTtcbiAgICAgIHJlY29yZC5hcmcgPSBhcmc7XG5cbiAgICAgIGlmIChmaW5hbGx5RW50cnkpIHtcbiAgICAgICAgdGhpcy5tZXRob2QgPSBcIm5leHRcIjtcbiAgICAgICAgdGhpcy5uZXh0ID0gZmluYWxseUVudHJ5LmZpbmFsbHlMb2M7XG4gICAgICAgIHJldHVybiBDb250aW51ZVNlbnRpbmVsO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5jb21wbGV0ZShyZWNvcmQpO1xuICAgIH0sXG5cbiAgICBjb21wbGV0ZTogZnVuY3Rpb24ocmVjb3JkLCBhZnRlckxvYykge1xuICAgICAgaWYgKHJlY29yZC50eXBlID09PSBcInRocm93XCIpIHtcbiAgICAgICAgdGhyb3cgcmVjb3JkLmFyZztcbiAgICAgIH1cblxuICAgICAgaWYgKHJlY29yZC50eXBlID09PSBcImJyZWFrXCIgfHxcbiAgICAgICAgICByZWNvcmQudHlwZSA9PT0gXCJjb250aW51ZVwiKSB7XG4gICAgICAgIHRoaXMubmV4dCA9IHJlY29yZC5hcmc7XG4gICAgICB9IGVsc2UgaWYgKHJlY29yZC50eXBlID09PSBcInJldHVyblwiKSB7XG4gICAgICAgIHRoaXMucnZhbCA9IHRoaXMuYXJnID0gcmVjb3JkLmFyZztcbiAgICAgICAgdGhpcy5tZXRob2QgPSBcInJldHVyblwiO1xuICAgICAgICB0aGlzLm5leHQgPSBcImVuZFwiO1xuICAgICAgfSBlbHNlIGlmIChyZWNvcmQudHlwZSA9PT0gXCJub3JtYWxcIiAmJiBhZnRlckxvYykge1xuICAgICAgICB0aGlzLm5leHQgPSBhZnRlckxvYztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gICAgfSxcblxuICAgIGZpbmlzaDogZnVuY3Rpb24oZmluYWxseUxvYykge1xuICAgICAgZm9yICh2YXIgaSA9IHRoaXMudHJ5RW50cmllcy5sZW5ndGggLSAxOyBpID49IDA7IC0taSkge1xuICAgICAgICB2YXIgZW50cnkgPSB0aGlzLnRyeUVudHJpZXNbaV07XG4gICAgICAgIGlmIChlbnRyeS5maW5hbGx5TG9jID09PSBmaW5hbGx5TG9jKSB7XG4gICAgICAgICAgdGhpcy5jb21wbGV0ZShlbnRyeS5jb21wbGV0aW9uLCBlbnRyeS5hZnRlckxvYyk7XG4gICAgICAgICAgcmVzZXRUcnlFbnRyeShlbnRyeSk7XG4gICAgICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuXG4gICAgXCJjYXRjaFwiOiBmdW5jdGlvbih0cnlMb2MpIHtcbiAgICAgIGZvciAodmFyIGkgPSB0aGlzLnRyeUVudHJpZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyAtLWkpIHtcbiAgICAgICAgdmFyIGVudHJ5ID0gdGhpcy50cnlFbnRyaWVzW2ldO1xuICAgICAgICBpZiAoZW50cnkudHJ5TG9jID09PSB0cnlMb2MpIHtcbiAgICAgICAgICB2YXIgcmVjb3JkID0gZW50cnkuY29tcGxldGlvbjtcbiAgICAgICAgICBpZiAocmVjb3JkLnR5cGUgPT09IFwidGhyb3dcIikge1xuICAgICAgICAgICAgdmFyIHRocm93biA9IHJlY29yZC5hcmc7XG4gICAgICAgICAgICByZXNldFRyeUVudHJ5KGVudHJ5KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRocm93bjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBUaGUgY29udGV4dC5jYXRjaCBtZXRob2QgbXVzdCBvbmx5IGJlIGNhbGxlZCB3aXRoIGEgbG9jYXRpb25cbiAgICAgIC8vIGFyZ3VtZW50IHRoYXQgY29ycmVzcG9uZHMgdG8gYSBrbm93biBjYXRjaCBibG9jay5cbiAgICAgIHRocm93IG5ldyBFcnJvcihcImlsbGVnYWwgY2F0Y2ggYXR0ZW1wdFwiKTtcbiAgICB9LFxuXG4gICAgZGVsZWdhdGVZaWVsZDogZnVuY3Rpb24oaXRlcmFibGUsIHJlc3VsdE5hbWUsIG5leHRMb2MpIHtcbiAgICAgIHRoaXMuZGVsZWdhdGUgPSB7XG4gICAgICAgIGl0ZXJhdG9yOiB2YWx1ZXMoaXRlcmFibGUpLFxuICAgICAgICByZXN1bHROYW1lOiByZXN1bHROYW1lLFxuICAgICAgICBuZXh0TG9jOiBuZXh0TG9jXG4gICAgICB9O1xuXG4gICAgICBpZiAodGhpcy5tZXRob2QgPT09IFwibmV4dFwiKSB7XG4gICAgICAgIC8vIERlbGliZXJhdGVseSBmb3JnZXQgdGhlIGxhc3Qgc2VudCB2YWx1ZSBzbyB0aGF0IHdlIGRvbid0XG4gICAgICAgIC8vIGFjY2lkZW50YWxseSBwYXNzIGl0IG9uIHRvIHRoZSBkZWxlZ2F0ZS5cbiAgICAgICAgdGhpcy5hcmcgPSB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBDb250aW51ZVNlbnRpbmVsO1xuICAgIH1cbiAgfTtcblxuICAvLyBSZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhpcyBzY3JpcHQgaXMgZXhlY3V0aW5nIGFzIGEgQ29tbW9uSlMgbW9kdWxlXG4gIC8vIG9yIG5vdCwgcmV0dXJuIHRoZSBydW50aW1lIG9iamVjdCBzbyB0aGF0IHdlIGNhbiBkZWNsYXJlIHRoZSB2YXJpYWJsZVxuICAvLyByZWdlbmVyYXRvclJ1bnRpbWUgaW4gdGhlIG91dGVyIHNjb3BlLCB3aGljaCBhbGxvd3MgdGhpcyBtb2R1bGUgdG8gYmVcbiAgLy8gaW5qZWN0ZWQgZWFzaWx5IGJ5IGBiaW4vcmVnZW5lcmF0b3IgLS1pbmNsdWRlLXJ1bnRpbWUgc2NyaXB0LmpzYC5cbiAgcmV0dXJuIGV4cG9ydHM7XG5cbn0oXG4gIC8vIElmIHRoaXMgc2NyaXB0IGlzIGV4ZWN1dGluZyBhcyBhIENvbW1vbkpTIG1vZHVsZSwgdXNlIG1vZHVsZS5leHBvcnRzXG4gIC8vIGFzIHRoZSByZWdlbmVyYXRvclJ1bnRpbWUgbmFtZXNwYWNlLiBPdGhlcndpc2UgY3JlYXRlIGEgbmV3IGVtcHR5XG4gIC8vIG9iamVjdC4gRWl0aGVyIHdheSwgdGhlIHJlc3VsdGluZyBvYmplY3Qgd2lsbCBiZSB1c2VkIHRvIGluaXRpYWxpemVcbiAgLy8gdGhlIHJlZ2VuZXJhdG9yUnVudGltZSB2YXJpYWJsZSBhdCB0aGUgdG9wIG9mIHRoaXMgZmlsZS5cbiAgdHlwZW9mIG1vZHVsZSA9PT0gXCJvYmplY3RcIiA/IG1vZHVsZS5leHBvcnRzIDoge31cbikpO1xuXG50cnkge1xuICByZWdlbmVyYXRvclJ1bnRpbWUgPSBydW50aW1lO1xufSBjYXRjaCAoYWNjaWRlbnRhbFN0cmljdE1vZGUpIHtcbiAgLy8gVGhpcyBtb2R1bGUgc2hvdWxkIG5vdCBiZSBydW5uaW5nIGluIHN0cmljdCBtb2RlLCBzbyB0aGUgYWJvdmVcbiAgLy8gYXNzaWdubWVudCBzaG91bGQgYWx3YXlzIHdvcmsgdW5sZXNzIHNvbWV0aGluZyBpcyBtaXNjb25maWd1cmVkLiBKdXN0XG4gIC8vIGluIGNhc2UgcnVudGltZS5qcyBhY2NpZGVudGFsbHkgcnVucyBpbiBzdHJpY3QgbW9kZSwgd2UgY2FuIGVzY2FwZVxuICAvLyBzdHJpY3QgbW9kZSB1c2luZyBhIGdsb2JhbCBGdW5jdGlvbiBjYWxsLiBUaGlzIGNvdWxkIGNvbmNlaXZhYmx5IGZhaWxcbiAgLy8gaWYgYSBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBmb3JiaWRzIHVzaW5nIEZ1bmN0aW9uLCBidXQgaW4gdGhhdCBjYXNlXG4gIC8vIHRoZSBwcm9wZXIgc29sdXRpb24gaXMgdG8gZml4IHRoZSBhY2NpZGVudGFsIHN0cmljdCBtb2RlIHByb2JsZW0uIElmXG4gIC8vIHlvdSd2ZSBtaXNjb25maWd1cmVkIHlvdXIgYnVuZGxlciB0byBmb3JjZSBzdHJpY3QgbW9kZSBhbmQgYXBwbGllZCBhXG4gIC8vIENTUCB0byBmb3JiaWQgRnVuY3Rpb24sIGFuZCB5b3UncmUgbm90IHdpbGxpbmcgdG8gZml4IGVpdGhlciBvZiB0aG9zZVxuICAvLyBwcm9ibGVtcywgcGxlYXNlIGRldGFpbCB5b3VyIHVuaXF1ZSBwcmVkaWNhbWVudCBpbiBhIEdpdEh1YiBpc3N1ZS5cbiAgRnVuY3Rpb24oXCJyXCIsIFwicmVnZW5lcmF0b3JSdW50aW1lID0gclwiKShydW50aW1lKTtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/regenerator-runtime/runtime.js\n"); + +/***/ }), + +/***/ "./node_modules/scheduler/cjs/scheduler-tracing.development.js": +/*!*********************************************************************!*\ + !*** ./node_modules/scheduler/cjs/scheduler-tracing.development.js ***! + \*********************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("/** @license React v0.20.2\n * scheduler-tracing.development.js\n *\n * Copyright (c) Facebook, Inc. and its 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\n\n\nif (true) {\n (function() {\n'use strict';\n\nvar DEFAULT_THREAD_ID = 0; // Counters used to generate unique IDs.\n\nvar interactionIDCounter = 0;\nvar threadIDCounter = 0; // Set of currently traced interactions.\n// Interactions \"stack\"–\n// Meaning that newly traced interactions are appended to the previously active set.\n// When an interaction goes out of scope, the previous set (if any) is restored.\n\nexports.__interactionsRef = null; // Listener(s) to notify when interactions begin and end.\n\nexports.__subscriberRef = null;\n\n{\n exports.__interactionsRef = {\n current: new Set()\n };\n exports.__subscriberRef = {\n current: null\n };\n}\nfunction unstable_clear(callback) {\n\n var prevInteractions = exports.__interactionsRef.current;\n exports.__interactionsRef.current = new Set();\n\n try {\n return callback();\n } finally {\n exports.__interactionsRef.current = prevInteractions;\n }\n}\nfunction unstable_getCurrent() {\n {\n return exports.__interactionsRef.current;\n }\n}\nfunction unstable_getThreadID() {\n return ++threadIDCounter;\n}\nfunction unstable_trace(name, timestamp, callback) {\n var threadID = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : DEFAULT_THREAD_ID;\n\n var interaction = {\n __count: 1,\n id: interactionIDCounter++,\n name: name,\n timestamp: timestamp\n };\n var prevInteractions = exports.__interactionsRef.current; // Traced interactions should stack/accumulate.\n // To do that, clone the current interactions.\n // The previous set will be restored upon completion.\n\n var interactions = new Set(prevInteractions);\n interactions.add(interaction);\n exports.__interactionsRef.current = interactions;\n var subscriber = exports.__subscriberRef.current;\n var returnValue;\n\n try {\n if (subscriber !== null) {\n subscriber.onInteractionTraced(interaction);\n }\n } finally {\n try {\n if (subscriber !== null) {\n subscriber.onWorkStarted(interactions, threadID);\n }\n } finally {\n try {\n returnValue = callback();\n } finally {\n exports.__interactionsRef.current = prevInteractions;\n\n try {\n if (subscriber !== null) {\n subscriber.onWorkStopped(interactions, threadID);\n }\n } finally {\n interaction.__count--; // If no async work was scheduled for this interaction,\n // Notify subscribers that it's completed.\n\n if (subscriber !== null && interaction.__count === 0) {\n subscriber.onInteractionScheduledWorkCompleted(interaction);\n }\n }\n }\n }\n }\n\n return returnValue;\n}\nfunction unstable_wrap(callback) {\n var threadID = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_THREAD_ID;\n\n var wrappedInteractions = exports.__interactionsRef.current;\n var subscriber = exports.__subscriberRef.current;\n\n if (subscriber !== null) {\n subscriber.onWorkScheduled(wrappedInteractions, threadID);\n } // Update the pending async work count for the current interactions.\n // Update after calling subscribers in case of error.\n\n\n wrappedInteractions.forEach(function (interaction) {\n interaction.__count++;\n });\n var hasRun = false;\n\n function wrapped() {\n var prevInteractions = exports.__interactionsRef.current;\n exports.__interactionsRef.current = wrappedInteractions;\n subscriber = exports.__subscriberRef.current;\n\n try {\n var returnValue;\n\n try {\n if (subscriber !== null) {\n subscriber.onWorkStarted(wrappedInteractions, threadID);\n }\n } finally {\n try {\n returnValue = callback.apply(undefined, arguments);\n } finally {\n exports.__interactionsRef.current = prevInteractions;\n\n if (subscriber !== null) {\n subscriber.onWorkStopped(wrappedInteractions, threadID);\n }\n }\n }\n\n return returnValue;\n } finally {\n if (!hasRun) {\n // We only expect a wrapped function to be executed once,\n // But in the event that it's executed more than once–\n // Only decrement the outstanding interaction counts once.\n hasRun = true; // Update pending async counts for all wrapped interactions.\n // If this was the last scheduled async work for any of them,\n // Mark them as completed.\n\n wrappedInteractions.forEach(function (interaction) {\n interaction.__count--;\n\n if (subscriber !== null && interaction.__count === 0) {\n subscriber.onInteractionScheduledWorkCompleted(interaction);\n }\n });\n }\n }\n }\n\n wrapped.cancel = function cancel() {\n subscriber = exports.__subscriberRef.current;\n\n try {\n if (subscriber !== null) {\n subscriber.onWorkCanceled(wrappedInteractions, threadID);\n }\n } finally {\n // Update pending async counts for all wrapped interactions.\n // If this was the last scheduled async work for any of them,\n // Mark them as completed.\n wrappedInteractions.forEach(function (interaction) {\n interaction.__count--;\n\n if (subscriber && interaction.__count === 0) {\n subscriber.onInteractionScheduledWorkCompleted(interaction);\n }\n });\n }\n };\n\n return wrapped;\n}\n\nvar subscribers = null;\n\n{\n subscribers = new Set();\n}\n\nfunction unstable_subscribe(subscriber) {\n {\n subscribers.add(subscriber);\n\n if (subscribers.size === 1) {\n exports.__subscriberRef.current = {\n onInteractionScheduledWorkCompleted: onInteractionScheduledWorkCompleted,\n onInteractionTraced: onInteractionTraced,\n onWorkCanceled: onWorkCanceled,\n onWorkScheduled: onWorkScheduled,\n onWorkStarted: onWorkStarted,\n onWorkStopped: onWorkStopped\n };\n }\n }\n}\nfunction unstable_unsubscribe(subscriber) {\n {\n subscribers.delete(subscriber);\n\n if (subscribers.size === 0) {\n exports.__subscriberRef.current = null;\n }\n }\n}\n\nfunction onInteractionTraced(interaction) {\n var didCatchError = false;\n var caughtError = null;\n subscribers.forEach(function (subscriber) {\n try {\n subscriber.onInteractionTraced(interaction);\n } catch (error) {\n if (!didCatchError) {\n didCatchError = true;\n caughtError = error;\n }\n }\n });\n\n if (didCatchError) {\n throw caughtError;\n }\n}\n\nfunction onInteractionScheduledWorkCompleted(interaction) {\n var didCatchError = false;\n var caughtError = null;\n subscribers.forEach(function (subscriber) {\n try {\n subscriber.onInteractionScheduledWorkCompleted(interaction);\n } catch (error) {\n if (!didCatchError) {\n didCatchError = true;\n caughtError = error;\n }\n }\n });\n\n if (didCatchError) {\n throw caughtError;\n }\n}\n\nfunction onWorkScheduled(interactions, threadID) {\n var didCatchError = false;\n var caughtError = null;\n subscribers.forEach(function (subscriber) {\n try {\n subscriber.onWorkScheduled(interactions, threadID);\n } catch (error) {\n if (!didCatchError) {\n didCatchError = true;\n caughtError = error;\n }\n }\n });\n\n if (didCatchError) {\n throw caughtError;\n }\n}\n\nfunction onWorkStarted(interactions, threadID) {\n var didCatchError = false;\n var caughtError = null;\n subscribers.forEach(function (subscriber) {\n try {\n subscriber.onWorkStarted(interactions, threadID);\n } catch (error) {\n if (!didCatchError) {\n didCatchError = true;\n caughtError = error;\n }\n }\n });\n\n if (didCatchError) {\n throw caughtError;\n }\n}\n\nfunction onWorkStopped(interactions, threadID) {\n var didCatchError = false;\n var caughtError = null;\n subscribers.forEach(function (subscriber) {\n try {\n subscriber.onWorkStopped(interactions, threadID);\n } catch (error) {\n if (!didCatchError) {\n didCatchError = true;\n caughtError = error;\n }\n }\n });\n\n if (didCatchError) {\n throw caughtError;\n }\n}\n\nfunction onWorkCanceled(interactions, threadID) {\n var didCatchError = false;\n var caughtError = null;\n subscribers.forEach(function (subscriber) {\n try {\n subscriber.onWorkCanceled(interactions, threadID);\n } catch (error) {\n if (!didCatchError) {\n didCatchError = true;\n caughtError = error;\n }\n }\n });\n\n if (didCatchError) {\n throw caughtError;\n }\n}\n\nexports.unstable_clear = unstable_clear;\nexports.unstable_getCurrent = unstable_getCurrent;\nexports.unstable_getThreadID = unstable_getThreadID;\nexports.unstable_subscribe = unstable_subscribe;\nexports.unstable_trace = unstable_trace;\nexports.unstable_unsubscribe = unstable_unsubscribe;\nexports.unstable_wrap = unstable_wrap;\n })();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc2NoZWR1bGVyL2Nqcy9zY2hlZHVsZXItdHJhY2luZy5kZXZlbG9wbWVudC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVhOztBQUViLElBQUksSUFBcUM7QUFDekM7QUFDQTs7QUFFQSwyQkFBMkI7O0FBRTNCO0FBQ0EseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQTs7QUFFQSx5QkFBeUIsU0FBUzs7QUFFbEMsdUJBQXVCOztBQUV2QjtBQUNBLEVBQUUseUJBQXlCO0FBQzNCO0FBQ0E7QUFDQSxFQUFFLHVCQUF1QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEVBQUUsaUNBQWlDOztBQUVuQztBQUNBO0FBQ0EsSUFBSTtBQUNKLElBQUksaUNBQWlDO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0REFBNEQ7QUFDNUQ7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsRUFBRSxpQ0FBaUM7QUFDbkM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsUUFBUTtBQUNSLFFBQVEsaUNBQWlDOztBQUV6QztBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVixpQ0FBaUM7QUFDakM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOzs7QUFHQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQSxJQUFJLGlDQUFpQztBQUNyQzs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxVQUFVO0FBQ1YsVUFBVSxpQ0FBaUM7O0FBRTNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUI7QUFDdkI7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLE1BQU0sK0JBQStCO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsTUFBTSwrQkFBK0I7QUFDckM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBOztBQUVBLHNCQUFzQjtBQUN0QiwyQkFBMkI7QUFDM0IsNEJBQTRCO0FBQzVCLDBCQUEwQjtBQUMxQixzQkFBc0I7QUFDdEIsNEJBQTRCO0FBQzVCLHFCQUFxQjtBQUNyQixHQUFHO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3NjaGVkdWxlci9janMvc2NoZWR1bGVyLXRyYWNpbmcuZGV2ZWxvcG1lbnQuanM/MTQ4ZSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQGxpY2Vuc2UgUmVhY3QgdjAuMjAuMlxuICogc2NoZWR1bGVyLXRyYWNpbmcuZGV2ZWxvcG1lbnQuanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIEZhY2Vib29rLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgKGZ1bmN0aW9uKCkge1xuJ3VzZSBzdHJpY3QnO1xuXG52YXIgREVGQVVMVF9USFJFQURfSUQgPSAwOyAvLyBDb3VudGVycyB1c2VkIHRvIGdlbmVyYXRlIHVuaXF1ZSBJRHMuXG5cbnZhciBpbnRlcmFjdGlvbklEQ291bnRlciA9IDA7XG52YXIgdGhyZWFkSURDb3VudGVyID0gMDsgLy8gU2V0IG9mIGN1cnJlbnRseSB0cmFjZWQgaW50ZXJhY3Rpb25zLlxuLy8gSW50ZXJhY3Rpb25zIFwic3RhY2tcIuKAk1xuLy8gTWVhbmluZyB0aGF0IG5ld2x5IHRyYWNlZCBpbnRlcmFjdGlvbnMgYXJlIGFwcGVuZGVkIHRvIHRoZSBwcmV2aW91c2x5IGFjdGl2ZSBzZXQuXG4vLyBXaGVuIGFuIGludGVyYWN0aW9uIGdvZXMgb3V0IG9mIHNjb3BlLCB0aGUgcHJldmlvdXMgc2V0IChpZiBhbnkpIGlzIHJlc3RvcmVkLlxuXG5leHBvcnRzLl9faW50ZXJhY3Rpb25zUmVmID0gbnVsbDsgLy8gTGlzdGVuZXIocykgdG8gbm90aWZ5IHdoZW4gaW50ZXJhY3Rpb25zIGJlZ2luIGFuZCBlbmQuXG5cbmV4cG9ydHMuX19zdWJzY3JpYmVyUmVmID0gbnVsbDtcblxue1xuICBleHBvcnRzLl9faW50ZXJhY3Rpb25zUmVmID0ge1xuICAgIGN1cnJlbnQ6IG5ldyBTZXQoKVxuICB9O1xuICBleHBvcnRzLl9fc3Vic2NyaWJlclJlZiA9IHtcbiAgICBjdXJyZW50OiBudWxsXG4gIH07XG59XG5mdW5jdGlvbiB1bnN0YWJsZV9jbGVhcihjYWxsYmFjaykge1xuXG4gIHZhciBwcmV2SW50ZXJhY3Rpb25zID0gZXhwb3J0cy5fX2ludGVyYWN0aW9uc1JlZi5jdXJyZW50O1xuICBleHBvcnRzLl9faW50ZXJhY3Rpb25zUmVmLmN1cnJlbnQgPSBuZXcgU2V0KCk7XG5cbiAgdHJ5IHtcbiAgICByZXR1cm4gY2FsbGJhY2soKTtcbiAgfSBmaW5hbGx5IHtcbiAgICBleHBvcnRzLl9faW50ZXJhY3Rpb25zUmVmLmN1cnJlbnQgPSBwcmV2SW50ZXJhY3Rpb25zO1xuICB9XG59XG5mdW5jdGlvbiB1bnN0YWJsZV9nZXRDdXJyZW50KCkge1xuICB7XG4gICAgcmV0dXJuIGV4cG9ydHMuX19pbnRlcmFjdGlvbnNSZWYuY3VycmVudDtcbiAgfVxufVxuZnVuY3Rpb24gdW5zdGFibGVfZ2V0VGhyZWFkSUQoKSB7XG4gIHJldHVybiArK3RocmVhZElEQ291bnRlcjtcbn1cbmZ1bmN0aW9uIHVuc3RhYmxlX3RyYWNlKG5hbWUsIHRpbWVzdGFtcCwgY2FsbGJhY2spIHtcbiAgdmFyIHRocmVhZElEID0gYXJndW1lbnRzLmxlbmd0aCA+IDMgJiYgYXJndW1lbnRzWzNdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbM10gOiBERUZBVUxUX1RIUkVBRF9JRDtcblxuICB2YXIgaW50ZXJhY3Rpb24gPSB7XG4gICAgX19jb3VudDogMSxcbiAgICBpZDogaW50ZXJhY3Rpb25JRENvdW50ZXIrKyxcbiAgICBuYW1lOiBuYW1lLFxuICAgIHRpbWVzdGFtcDogdGltZXN0YW1wXG4gIH07XG4gIHZhciBwcmV2SW50ZXJhY3Rpb25zID0gZXhwb3J0cy5fX2ludGVyYWN0aW9uc1JlZi5jdXJyZW50OyAvLyBUcmFjZWQgaW50ZXJhY3Rpb25zIHNob3VsZCBzdGFjay9hY2N1bXVsYXRlLlxuICAvLyBUbyBkbyB0aGF0LCBjbG9uZSB0aGUgY3VycmVudCBpbnRlcmFjdGlvbnMuXG4gIC8vIFRoZSBwcmV2aW91cyBzZXQgd2lsbCBiZSByZXN0b3JlZCB1cG9uIGNvbXBsZXRpb24uXG5cbiAgdmFyIGludGVyYWN0aW9ucyA9IG5ldyBTZXQocHJldkludGVyYWN0aW9ucyk7XG4gIGludGVyYWN0aW9ucy5hZGQoaW50ZXJhY3Rpb24pO1xuICBleHBvcnRzLl9faW50ZXJhY3Rpb25zUmVmLmN1cnJlbnQgPSBpbnRlcmFjdGlvbnM7XG4gIHZhciBzdWJzY3JpYmVyID0gZXhwb3J0cy5fX3N1YnNjcmliZXJSZWYuY3VycmVudDtcbiAgdmFyIHJldHVyblZhbHVlO1xuXG4gIHRyeSB7XG4gICAgaWYgKHN1YnNjcmliZXIgIT09IG51bGwpIHtcbiAgICAgIHN1YnNjcmliZXIub25JbnRlcmFjdGlvblRyYWNlZChpbnRlcmFjdGlvbik7XG4gICAgfVxuICB9IGZpbmFsbHkge1xuICAgIHRyeSB7XG4gICAgICBpZiAoc3Vic2NyaWJlciAhPT0gbnVsbCkge1xuICAgICAgICBzdWJzY3JpYmVyLm9uV29ya1N0YXJ0ZWQoaW50ZXJhY3Rpb25zLCB0aHJlYWRJRCk7XG4gICAgICB9XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVyblZhbHVlID0gY2FsbGJhY2soKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGV4cG9ydHMuX19pbnRlcmFjdGlvbnNSZWYuY3VycmVudCA9IHByZXZJbnRlcmFjdGlvbnM7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBpZiAoc3Vic2NyaWJlciAhPT0gbnVsbCkge1xuICAgICAgICAgICAgc3Vic2NyaWJlci5vbldvcmtTdG9wcGVkKGludGVyYWN0aW9ucywgdGhyZWFkSUQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICBpbnRlcmFjdGlvbi5fX2NvdW50LS07IC8vIElmIG5vIGFzeW5jIHdvcmsgd2FzIHNjaGVkdWxlZCBmb3IgdGhpcyBpbnRlcmFjdGlvbixcbiAgICAgICAgICAvLyBOb3RpZnkgc3Vic2NyaWJlcnMgdGhhdCBpdCdzIGNvbXBsZXRlZC5cblxuICAgICAgICAgIGlmIChzdWJzY3JpYmVyICE9PSBudWxsICYmIGludGVyYWN0aW9uLl9fY291bnQgPT09IDApIHtcbiAgICAgICAgICAgIHN1YnNjcmliZXIub25JbnRlcmFjdGlvblNjaGVkdWxlZFdvcmtDb21wbGV0ZWQoaW50ZXJhY3Rpb24pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXR1cm5WYWx1ZTtcbn1cbmZ1bmN0aW9uIHVuc3RhYmxlX3dyYXAoY2FsbGJhY2spIHtcbiAgdmFyIHRocmVhZElEID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiBERUZBVUxUX1RIUkVBRF9JRDtcblxuICB2YXIgd3JhcHBlZEludGVyYWN0aW9ucyA9IGV4cG9ydHMuX19pbnRlcmFjdGlvbnNSZWYuY3VycmVudDtcbiAgdmFyIHN1YnNjcmliZXIgPSBleHBvcnRzLl9fc3Vic2NyaWJlclJlZi5jdXJyZW50O1xuXG4gIGlmIChzdWJzY3JpYmVyICE9PSBudWxsKSB7XG4gICAgc3Vic2NyaWJlci5vbldvcmtTY2hlZHVsZWQod3JhcHBlZEludGVyYWN0aW9ucywgdGhyZWFkSUQpO1xuICB9IC8vIFVwZGF0ZSB0aGUgcGVuZGluZyBhc3luYyB3b3JrIGNvdW50IGZvciB0aGUgY3VycmVudCBpbnRlcmFjdGlvbnMuXG4gIC8vIFVwZGF0ZSBhZnRlciBjYWxsaW5nIHN1YnNjcmliZXJzIGluIGNhc2Ugb2YgZXJyb3IuXG5cblxuICB3cmFwcGVkSW50ZXJhY3Rpb25zLmZvckVhY2goZnVuY3Rpb24gKGludGVyYWN0aW9uKSB7XG4gICAgaW50ZXJhY3Rpb24uX19jb3VudCsrO1xuICB9KTtcbiAgdmFyIGhhc1J1biA9IGZhbHNlO1xuXG4gIGZ1bmN0aW9uIHdyYXBwZWQoKSB7XG4gICAgdmFyIHByZXZJbnRlcmFjdGlvbnMgPSBleHBvcnRzLl9faW50ZXJhY3Rpb25zUmVmLmN1cnJlbnQ7XG4gICAgZXhwb3J0cy5fX2ludGVyYWN0aW9uc1JlZi5jdXJyZW50ID0gd3JhcHBlZEludGVyYWN0aW9ucztcbiAgICBzdWJzY3JpYmVyID0gZXhwb3J0cy5fX3N1YnNjcmliZXJSZWYuY3VycmVudDtcblxuICAgIHRyeSB7XG4gICAgICB2YXIgcmV0dXJuVmFsdWU7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGlmIChzdWJzY3JpYmVyICE9PSBudWxsKSB7XG4gICAgICAgICAgc3Vic2NyaWJlci5vbldvcmtTdGFydGVkKHdyYXBwZWRJbnRlcmFjdGlvbnMsIHRocmVhZElEKTtcbiAgICAgICAgfVxuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm5WYWx1ZSA9IGNhbGxiYWNrLmFwcGx5KHVuZGVmaW5lZCwgYXJndW1lbnRzKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICBleHBvcnRzLl9faW50ZXJhY3Rpb25zUmVmLmN1cnJlbnQgPSBwcmV2SW50ZXJhY3Rpb25zO1xuXG4gICAgICAgICAgaWYgKHN1YnNjcmliZXIgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHN1YnNjcmliZXIub25Xb3JrU3RvcHBlZCh3cmFwcGVkSW50ZXJhY3Rpb25zLCB0aHJlYWRJRCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXR1cm5WYWx1ZTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgaWYgKCFoYXNSdW4pIHtcbiAgICAgICAgLy8gV2Ugb25seSBleHBlY3QgYSB3cmFwcGVkIGZ1bmN0aW9uIHRvIGJlIGV4ZWN1dGVkIG9uY2UsXG4gICAgICAgIC8vIEJ1dCBpbiB0aGUgZXZlbnQgdGhhdCBpdCdzIGV4ZWN1dGVkIG1vcmUgdGhhbiBvbmNl4oCTXG4gICAgICAgIC8vIE9ubHkgZGVjcmVtZW50IHRoZSBvdXRzdGFuZGluZyBpbnRlcmFjdGlvbiBjb3VudHMgb25jZS5cbiAgICAgICAgaGFzUnVuID0gdHJ1ZTsgLy8gVXBkYXRlIHBlbmRpbmcgYXN5bmMgY291bnRzIGZvciBhbGwgd3JhcHBlZCBpbnRlcmFjdGlvbnMuXG4gICAgICAgIC8vIElmIHRoaXMgd2FzIHRoZSBsYXN0IHNjaGVkdWxlZCBhc3luYyB3b3JrIGZvciBhbnkgb2YgdGhlbSxcbiAgICAgICAgLy8gTWFyayB0aGVtIGFzIGNvbXBsZXRlZC5cblxuICAgICAgICB3cmFwcGVkSW50ZXJhY3Rpb25zLmZvckVhY2goZnVuY3Rpb24gKGludGVyYWN0aW9uKSB7XG4gICAgICAgICAgaW50ZXJhY3Rpb24uX19jb3VudC0tO1xuXG4gICAgICAgICAgaWYgKHN1YnNjcmliZXIgIT09IG51bGwgJiYgaW50ZXJhY3Rpb24uX19jb3VudCA9PT0gMCkge1xuICAgICAgICAgICAgc3Vic2NyaWJlci5vbkludGVyYWN0aW9uU2NoZWR1bGVkV29ya0NvbXBsZXRlZChpbnRlcmFjdGlvbik7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB3cmFwcGVkLmNhbmNlbCA9IGZ1bmN0aW9uIGNhbmNlbCgpIHtcbiAgICBzdWJzY3JpYmVyID0gZXhwb3J0cy5fX3N1YnNjcmliZXJSZWYuY3VycmVudDtcblxuICAgIHRyeSB7XG4gICAgICBpZiAoc3Vic2NyaWJlciAhPT0gbnVsbCkge1xuICAgICAgICBzdWJzY3JpYmVyLm9uV29ya0NhbmNlbGVkKHdyYXBwZWRJbnRlcmFjdGlvbnMsIHRocmVhZElEKTtcbiAgICAgIH1cbiAgICB9IGZpbmFsbHkge1xuICAgICAgLy8gVXBkYXRlIHBlbmRpbmcgYXN5bmMgY291bnRzIGZvciBhbGwgd3JhcHBlZCBpbnRlcmFjdGlvbnMuXG4gICAgICAvLyBJZiB0aGlzIHdhcyB0aGUgbGFzdCBzY2hlZHVsZWQgYXN5bmMgd29yayBmb3IgYW55IG9mIHRoZW0sXG4gICAgICAvLyBNYXJrIHRoZW0gYXMgY29tcGxldGVkLlxuICAgICAgd3JhcHBlZEludGVyYWN0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uIChpbnRlcmFjdGlvbikge1xuICAgICAgICBpbnRlcmFjdGlvbi5fX2NvdW50LS07XG5cbiAgICAgICAgaWYgKHN1YnNjcmliZXIgJiYgaW50ZXJhY3Rpb24uX19jb3VudCA9PT0gMCkge1xuICAgICAgICAgIHN1YnNjcmliZXIub25JbnRlcmFjdGlvblNjaGVkdWxlZFdvcmtDb21wbGV0ZWQoaW50ZXJhY3Rpb24pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIHdyYXBwZWQ7XG59XG5cbnZhciBzdWJzY3JpYmVycyA9IG51bGw7XG5cbntcbiAgc3Vic2NyaWJlcnMgPSBuZXcgU2V0KCk7XG59XG5cbmZ1bmN0aW9uIHVuc3RhYmxlX3N1YnNjcmliZShzdWJzY3JpYmVyKSB7XG4gIHtcbiAgICBzdWJzY3JpYmVycy5hZGQoc3Vic2NyaWJlcik7XG5cbiAgICBpZiAoc3Vic2NyaWJlcnMuc2l6ZSA9PT0gMSkge1xuICAgICAgZXhwb3J0cy5fX3N1YnNjcmliZXJSZWYuY3VycmVudCA9IHtcbiAgICAgICAgb25JbnRlcmFjdGlvblNjaGVkdWxlZFdvcmtDb21wbGV0ZWQ6IG9uSW50ZXJhY3Rpb25TY2hlZHVsZWRXb3JrQ29tcGxldGVkLFxuICAgICAgICBvbkludGVyYWN0aW9uVHJhY2VkOiBvbkludGVyYWN0aW9uVHJhY2VkLFxuICAgICAgICBvbldvcmtDYW5jZWxlZDogb25Xb3JrQ2FuY2VsZWQsXG4gICAgICAgIG9uV29ya1NjaGVkdWxlZDogb25Xb3JrU2NoZWR1bGVkLFxuICAgICAgICBvbldvcmtTdGFydGVkOiBvbldvcmtTdGFydGVkLFxuICAgICAgICBvbldvcmtTdG9wcGVkOiBvbldvcmtTdG9wcGVkXG4gICAgICB9O1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gdW5zdGFibGVfdW5zdWJzY3JpYmUoc3Vic2NyaWJlcikge1xuICB7XG4gICAgc3Vic2NyaWJlcnMuZGVsZXRlKHN1YnNjcmliZXIpO1xuXG4gICAgaWYgKHN1YnNjcmliZXJzLnNpemUgPT09IDApIHtcbiAgICAgIGV4cG9ydHMuX19zdWJzY3JpYmVyUmVmLmN1cnJlbnQgPSBudWxsO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBvbkludGVyYWN0aW9uVHJhY2VkKGludGVyYWN0aW9uKSB7XG4gIHZhciBkaWRDYXRjaEVycm9yID0gZmFsc2U7XG4gIHZhciBjYXVnaHRFcnJvciA9IG51bGw7XG4gIHN1YnNjcmliZXJzLmZvckVhY2goZnVuY3Rpb24gKHN1YnNjcmliZXIpIHtcbiAgICB0cnkge1xuICAgICAgc3Vic2NyaWJlci5vbkludGVyYWN0aW9uVHJhY2VkKGludGVyYWN0aW9uKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaWYgKCFkaWRDYXRjaEVycm9yKSB7XG4gICAgICAgIGRpZENhdGNoRXJyb3IgPSB0cnVlO1xuICAgICAgICBjYXVnaHRFcnJvciA9IGVycm9yO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgaWYgKGRpZENhdGNoRXJyb3IpIHtcbiAgICB0aHJvdyBjYXVnaHRFcnJvcjtcbiAgfVxufVxuXG5mdW5jdGlvbiBvbkludGVyYWN0aW9uU2NoZWR1bGVkV29ya0NvbXBsZXRlZChpbnRlcmFjdGlvbikge1xuICB2YXIgZGlkQ2F0Y2hFcnJvciA9IGZhbHNlO1xuICB2YXIgY2F1Z2h0RXJyb3IgPSBudWxsO1xuICBzdWJzY3JpYmVycy5mb3JFYWNoKGZ1bmN0aW9uIChzdWJzY3JpYmVyKSB7XG4gICAgdHJ5IHtcbiAgICAgIHN1YnNjcmliZXIub25JbnRlcmFjdGlvblNjaGVkdWxlZFdvcmtDb21wbGV0ZWQoaW50ZXJhY3Rpb24pO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAoIWRpZENhdGNoRXJyb3IpIHtcbiAgICAgICAgZGlkQ2F0Y2hFcnJvciA9IHRydWU7XG4gICAgICAgIGNhdWdodEVycm9yID0gZXJyb3I7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICBpZiAoZGlkQ2F0Y2hFcnJvcikge1xuICAgIHRocm93IGNhdWdodEVycm9yO1xuICB9XG59XG5cbmZ1bmN0aW9uIG9uV29ya1NjaGVkdWxlZChpbnRlcmFjdGlvbnMsIHRocmVhZElEKSB7XG4gIHZhciBkaWRDYXRjaEVycm9yID0gZmFsc2U7XG4gIHZhciBjYXVnaHRFcnJvciA9IG51bGw7XG4gIHN1YnNjcmliZXJzLmZvckVhY2goZnVuY3Rpb24gKHN1YnNjcmliZXIpIHtcbiAgICB0cnkge1xuICAgICAgc3Vic2NyaWJlci5vbldvcmtTY2hlZHVsZWQoaW50ZXJhY3Rpb25zLCB0aHJlYWRJRCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmICghZGlkQ2F0Y2hFcnJvcikge1xuICAgICAgICBkaWRDYXRjaEVycm9yID0gdHJ1ZTtcbiAgICAgICAgY2F1Z2h0RXJyb3IgPSBlcnJvcjtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIGlmIChkaWRDYXRjaEVycm9yKSB7XG4gICAgdGhyb3cgY2F1Z2h0RXJyb3I7XG4gIH1cbn1cblxuZnVuY3Rpb24gb25Xb3JrU3RhcnRlZChpbnRlcmFjdGlvbnMsIHRocmVhZElEKSB7XG4gIHZhciBkaWRDYXRjaEVycm9yID0gZmFsc2U7XG4gIHZhciBjYXVnaHRFcnJvciA9IG51bGw7XG4gIHN1YnNjcmliZXJzLmZvckVhY2goZnVuY3Rpb24gKHN1YnNjcmliZXIpIHtcbiAgICB0cnkge1xuICAgICAgc3Vic2NyaWJlci5vbldvcmtTdGFydGVkKGludGVyYWN0aW9ucywgdGhyZWFkSUQpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAoIWRpZENhdGNoRXJyb3IpIHtcbiAgICAgICAgZGlkQ2F0Y2hFcnJvciA9IHRydWU7XG4gICAgICAgIGNhdWdodEVycm9yID0gZXJyb3I7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICBpZiAoZGlkQ2F0Y2hFcnJvcikge1xuICAgIHRocm93IGNhdWdodEVycm9yO1xuICB9XG59XG5cbmZ1bmN0aW9uIG9uV29ya1N0b3BwZWQoaW50ZXJhY3Rpb25zLCB0aHJlYWRJRCkge1xuICB2YXIgZGlkQ2F0Y2hFcnJvciA9IGZhbHNlO1xuICB2YXIgY2F1Z2h0RXJyb3IgPSBudWxsO1xuICBzdWJzY3JpYmVycy5mb3JFYWNoKGZ1bmN0aW9uIChzdWJzY3JpYmVyKSB7XG4gICAgdHJ5IHtcbiAgICAgIHN1YnNjcmliZXIub25Xb3JrU3RvcHBlZChpbnRlcmFjdGlvbnMsIHRocmVhZElEKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaWYgKCFkaWRDYXRjaEVycm9yKSB7XG4gICAgICAgIGRpZENhdGNoRXJyb3IgPSB0cnVlO1xuICAgICAgICBjYXVnaHRFcnJvciA9IGVycm9yO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgaWYgKGRpZENhdGNoRXJyb3IpIHtcbiAgICB0aHJvdyBjYXVnaHRFcnJvcjtcbiAgfVxufVxuXG5mdW5jdGlvbiBvbldvcmtDYW5jZWxlZChpbnRlcmFjdGlvbnMsIHRocmVhZElEKSB7XG4gIHZhciBkaWRDYXRjaEVycm9yID0gZmFsc2U7XG4gIHZhciBjYXVnaHRFcnJvciA9IG51bGw7XG4gIHN1YnNjcmliZXJzLmZvckVhY2goZnVuY3Rpb24gKHN1YnNjcmliZXIpIHtcbiAgICB0cnkge1xuICAgICAgc3Vic2NyaWJlci5vbldvcmtDYW5jZWxlZChpbnRlcmFjdGlvbnMsIHRocmVhZElEKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaWYgKCFkaWRDYXRjaEVycm9yKSB7XG4gICAgICAgIGRpZENhdGNoRXJyb3IgPSB0cnVlO1xuICAgICAgICBjYXVnaHRFcnJvciA9IGVycm9yO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgaWYgKGRpZENhdGNoRXJyb3IpIHtcbiAgICB0aHJvdyBjYXVnaHRFcnJvcjtcbiAgfVxufVxuXG5leHBvcnRzLnVuc3RhYmxlX2NsZWFyID0gdW5zdGFibGVfY2xlYXI7XG5leHBvcnRzLnVuc3RhYmxlX2dldEN1cnJlbnQgPSB1bnN0YWJsZV9nZXRDdXJyZW50O1xuZXhwb3J0cy51bnN0YWJsZV9nZXRUaHJlYWRJRCA9IHVuc3RhYmxlX2dldFRocmVhZElEO1xuZXhwb3J0cy51bnN0YWJsZV9zdWJzY3JpYmUgPSB1bnN0YWJsZV9zdWJzY3JpYmU7XG5leHBvcnRzLnVuc3RhYmxlX3RyYWNlID0gdW5zdGFibGVfdHJhY2U7XG5leHBvcnRzLnVuc3RhYmxlX3Vuc3Vic2NyaWJlID0gdW5zdGFibGVfdW5zdWJzY3JpYmU7XG5leHBvcnRzLnVuc3RhYmxlX3dyYXAgPSB1bnN0YWJsZV93cmFwO1xuICB9KSgpO1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/scheduler/cjs/scheduler-tracing.development.js\n"); + +/***/ }), + +/***/ "./node_modules/scheduler/cjs/scheduler.development.js": +/*!*************************************************************!*\ + !*** ./node_modules/scheduler/cjs/scheduler.development.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("/** @license React v0.20.2\n * scheduler.development.js\n *\n * Copyright (c) Facebook, Inc. and its 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\n\n\nif (true) {\n (function() {\n'use strict';\n\nvar enableSchedulerDebugging = false;\nvar enableProfiling = false;\n\nvar requestHostCallback;\nvar requestHostTimeout;\nvar cancelHostTimeout;\nvar requestPaint;\nvar hasPerformanceNow = typeof performance === 'object' && typeof performance.now === 'function';\n\nif (hasPerformanceNow) {\n var localPerformance = performance;\n\n exports.unstable_now = function () {\n return localPerformance.now();\n };\n} else {\n var localDate = Date;\n var initialTime = localDate.now();\n\n exports.unstable_now = function () {\n return localDate.now() - initialTime;\n };\n}\n\nif ( // If Scheduler runs in a non-DOM environment, it falls back to a naive\n// implementation using setTimeout.\ntypeof window === 'undefined' || // Check if MessageChannel is supported, too.\ntypeof MessageChannel !== 'function') {\n // If this accidentally gets imported in a non-browser environment, e.g. JavaScriptCore,\n // fallback to a naive implementation.\n var _callback = null;\n var _timeoutID = null;\n\n var _flushCallback = function () {\n if (_callback !== null) {\n try {\n var currentTime = exports.unstable_now();\n var hasRemainingTime = true;\n\n _callback(hasRemainingTime, currentTime);\n\n _callback = null;\n } catch (e) {\n setTimeout(_flushCallback, 0);\n throw e;\n }\n }\n };\n\n requestHostCallback = function (cb) {\n if (_callback !== null) {\n // Protect against re-entrancy.\n setTimeout(requestHostCallback, 0, cb);\n } else {\n _callback = cb;\n setTimeout(_flushCallback, 0);\n }\n };\n\n requestHostTimeout = function (cb, ms) {\n _timeoutID = setTimeout(cb, ms);\n };\n\n cancelHostTimeout = function () {\n clearTimeout(_timeoutID);\n };\n\n exports.unstable_shouldYield = function () {\n return false;\n };\n\n requestPaint = exports.unstable_forceFrameRate = function () {};\n} else {\n // Capture local references to native APIs, in case a polyfill overrides them.\n var _setTimeout = window.setTimeout;\n var _clearTimeout = window.clearTimeout;\n\n if (typeof console !== 'undefined') {\n // TODO: Scheduler no longer requires these methods to be polyfilled. But\n // maybe we want to continue warning if they don't exist, to preserve the\n // option to rely on it in the future?\n var requestAnimationFrame = window.requestAnimationFrame;\n var cancelAnimationFrame = window.cancelAnimationFrame;\n\n if (typeof requestAnimationFrame !== 'function') {\n // Using console['error'] to evade Babel and ESLint\n console['error'](\"This browser doesn't support requestAnimationFrame. \" + 'Make sure that you load a ' + 'polyfill in older browsers. https://reactjs.org/link/react-polyfills');\n }\n\n if (typeof cancelAnimationFrame !== 'function') {\n // Using console['error'] to evade Babel and ESLint\n console['error'](\"This browser doesn't support cancelAnimationFrame. \" + 'Make sure that you load a ' + 'polyfill in older browsers. https://reactjs.org/link/react-polyfills');\n }\n }\n\n var isMessageLoopRunning = false;\n var scheduledHostCallback = null;\n var taskTimeoutID = -1; // Scheduler periodically yields in case there is other work on the main\n // thread, like user events. By default, it yields multiple times per frame.\n // It does not attempt to align with frame boundaries, since most tasks don't\n // need to be frame aligned; for those that do, use requestAnimationFrame.\n\n var yieldInterval = 5;\n var deadline = 0; // TODO: Make this configurable\n\n {\n // `isInputPending` is not available. Since we have no way of knowing if\n // there's pending input, always yield at the end of the frame.\n exports.unstable_shouldYield = function () {\n return exports.unstable_now() >= deadline;\n }; // Since we yield every frame regardless, `requestPaint` has no effect.\n\n\n requestPaint = function () {};\n }\n\n exports.unstable_forceFrameRate = function (fps) {\n if (fps < 0 || fps > 125) {\n // Using console['error'] to evade Babel and ESLint\n console['error']('forceFrameRate takes a positive int between 0 and 125, ' + 'forcing frame rates higher than 125 fps is not supported');\n return;\n }\n\n if (fps > 0) {\n yieldInterval = Math.floor(1000 / fps);\n } else {\n // reset the framerate\n yieldInterval = 5;\n }\n };\n\n var performWorkUntilDeadline = function () {\n if (scheduledHostCallback !== null) {\n var currentTime = exports.unstable_now(); // Yield after `yieldInterval` ms, regardless of where we are in the vsync\n // cycle. This means there's always time remaining at the beginning of\n // the message event.\n\n deadline = currentTime + yieldInterval;\n var hasTimeRemaining = true;\n\n try {\n var hasMoreWork = scheduledHostCallback(hasTimeRemaining, currentTime);\n\n if (!hasMoreWork) {\n isMessageLoopRunning = false;\n scheduledHostCallback = null;\n } else {\n // If there's more work, schedule the next message event at the end\n // of the preceding one.\n port.postMessage(null);\n }\n } catch (error) {\n // If a scheduler task throws, exit the current browser task so the\n // error can be observed.\n port.postMessage(null);\n throw error;\n }\n } else {\n isMessageLoopRunning = false;\n } // Yielding to the browser will give it a chance to paint, so we can\n };\n\n var channel = new MessageChannel();\n var port = channel.port2;\n channel.port1.onmessage = performWorkUntilDeadline;\n\n requestHostCallback = function (callback) {\n scheduledHostCallback = callback;\n\n if (!isMessageLoopRunning) {\n isMessageLoopRunning = true;\n port.postMessage(null);\n }\n };\n\n requestHostTimeout = function (callback, ms) {\n taskTimeoutID = _setTimeout(function () {\n callback(exports.unstable_now());\n }, ms);\n };\n\n cancelHostTimeout = function () {\n _clearTimeout(taskTimeoutID);\n\n taskTimeoutID = -1;\n };\n}\n\nfunction push(heap, node) {\n var index = heap.length;\n heap.push(node);\n siftUp(heap, node, index);\n}\nfunction peek(heap) {\n var first = heap[0];\n return first === undefined ? null : first;\n}\nfunction pop(heap) {\n var first = heap[0];\n\n if (first !== undefined) {\n var last = heap.pop();\n\n if (last !== first) {\n heap[0] = last;\n siftDown(heap, last, 0);\n }\n\n return first;\n } else {\n return null;\n }\n}\n\nfunction siftUp(heap, node, i) {\n var index = i;\n\n while (true) {\n var parentIndex = index - 1 >>> 1;\n var parent = heap[parentIndex];\n\n if (parent !== undefined && compare(parent, node) > 0) {\n // The parent is larger. Swap positions.\n heap[parentIndex] = node;\n heap[index] = parent;\n index = parentIndex;\n } else {\n // The parent is smaller. Exit.\n return;\n }\n }\n}\n\nfunction siftDown(heap, node, i) {\n var index = i;\n var length = heap.length;\n\n while (index < length) {\n var leftIndex = (index + 1) * 2 - 1;\n var left = heap[leftIndex];\n var rightIndex = leftIndex + 1;\n var right = heap[rightIndex]; // If the left or right node is smaller, swap with the smaller of those.\n\n if (left !== undefined && compare(left, node) < 0) {\n if (right !== undefined && compare(right, left) < 0) {\n heap[index] = right;\n heap[rightIndex] = node;\n index = rightIndex;\n } else {\n heap[index] = left;\n heap[leftIndex] = node;\n index = leftIndex;\n }\n } else if (right !== undefined && compare(right, node) < 0) {\n heap[index] = right;\n heap[rightIndex] = node;\n index = rightIndex;\n } else {\n // Neither child is smaller. Exit.\n return;\n }\n }\n}\n\nfunction compare(a, b) {\n // Compare sort index first, then task id.\n var diff = a.sortIndex - b.sortIndex;\n return diff !== 0 ? diff : a.id - b.id;\n}\n\n// TODO: Use symbols?\nvar ImmediatePriority = 1;\nvar UserBlockingPriority = 2;\nvar NormalPriority = 3;\nvar LowPriority = 4;\nvar IdlePriority = 5;\n\nfunction markTaskErrored(task, ms) {\n}\n\n/* eslint-disable no-var */\n// Math.pow(2, 30) - 1\n// 0b111111111111111111111111111111\n\nvar maxSigned31BitInt = 1073741823; // Times out immediately\n\nvar IMMEDIATE_PRIORITY_TIMEOUT = -1; // Eventually times out\n\nvar USER_BLOCKING_PRIORITY_TIMEOUT = 250;\nvar NORMAL_PRIORITY_TIMEOUT = 5000;\nvar LOW_PRIORITY_TIMEOUT = 10000; // Never times out\n\nvar IDLE_PRIORITY_TIMEOUT = maxSigned31BitInt; // Tasks are stored on a min heap\n\nvar taskQueue = [];\nvar timerQueue = []; // Incrementing id counter. Used to maintain insertion order.\n\nvar taskIdCounter = 1; // Pausing the scheduler is useful for debugging.\nvar currentTask = null;\nvar currentPriorityLevel = NormalPriority; // This is set while performing work, to prevent re-entrancy.\n\nvar isPerformingWork = false;\nvar isHostCallbackScheduled = false;\nvar isHostTimeoutScheduled = false;\n\nfunction advanceTimers(currentTime) {\n // Check for tasks that are no longer delayed and add them to the queue.\n var timer = peek(timerQueue);\n\n while (timer !== null) {\n if (timer.callback === null) {\n // Timer was cancelled.\n pop(timerQueue);\n } else if (timer.startTime <= currentTime) {\n // Timer fired. Transfer to the task queue.\n pop(timerQueue);\n timer.sortIndex = timer.expirationTime;\n push(taskQueue, timer);\n } else {\n // Remaining timers are pending.\n return;\n }\n\n timer = peek(timerQueue);\n }\n}\n\nfunction handleTimeout(currentTime) {\n isHostTimeoutScheduled = false;\n advanceTimers(currentTime);\n\n if (!isHostCallbackScheduled) {\n if (peek(taskQueue) !== null) {\n isHostCallbackScheduled = true;\n requestHostCallback(flushWork);\n } else {\n var firstTimer = peek(timerQueue);\n\n if (firstTimer !== null) {\n requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n }\n }\n }\n}\n\nfunction flushWork(hasTimeRemaining, initialTime) {\n\n\n isHostCallbackScheduled = false;\n\n if (isHostTimeoutScheduled) {\n // We scheduled a timeout but it's no longer needed. Cancel it.\n isHostTimeoutScheduled = false;\n cancelHostTimeout();\n }\n\n isPerformingWork = true;\n var previousPriorityLevel = currentPriorityLevel;\n\n try {\n if (enableProfiling) {\n try {\n return workLoop(hasTimeRemaining, initialTime);\n } catch (error) {\n if (currentTask !== null) {\n var currentTime = exports.unstable_now();\n markTaskErrored(currentTask, currentTime);\n currentTask.isQueued = false;\n }\n\n throw error;\n }\n } else {\n // No catch in prod code path.\n return workLoop(hasTimeRemaining, initialTime);\n }\n } finally {\n currentTask = null;\n currentPriorityLevel = previousPriorityLevel;\n isPerformingWork = false;\n }\n}\n\nfunction workLoop(hasTimeRemaining, initialTime) {\n var currentTime = initialTime;\n advanceTimers(currentTime);\n currentTask = peek(taskQueue);\n\n while (currentTask !== null && !(enableSchedulerDebugging )) {\n if (currentTask.expirationTime > currentTime && (!hasTimeRemaining || exports.unstable_shouldYield())) {\n // This currentTask hasn't expired, and we've reached the deadline.\n break;\n }\n\n var callback = currentTask.callback;\n\n if (typeof callback === 'function') {\n currentTask.callback = null;\n currentPriorityLevel = currentTask.priorityLevel;\n var didUserCallbackTimeout = currentTask.expirationTime <= currentTime;\n\n var continuationCallback = callback(didUserCallbackTimeout);\n currentTime = exports.unstable_now();\n\n if (typeof continuationCallback === 'function') {\n currentTask.callback = continuationCallback;\n } else {\n\n if (currentTask === peek(taskQueue)) {\n pop(taskQueue);\n }\n }\n\n advanceTimers(currentTime);\n } else {\n pop(taskQueue);\n }\n\n currentTask = peek(taskQueue);\n } // Return whether there's additional work\n\n\n if (currentTask !== null) {\n return true;\n } else {\n var firstTimer = peek(timerQueue);\n\n if (firstTimer !== null) {\n requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n }\n\n return false;\n }\n}\n\nfunction unstable_runWithPriority(priorityLevel, eventHandler) {\n switch (priorityLevel) {\n case ImmediatePriority:\n case UserBlockingPriority:\n case NormalPriority:\n case LowPriority:\n case IdlePriority:\n break;\n\n default:\n priorityLevel = NormalPriority;\n }\n\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n}\n\nfunction unstable_next(eventHandler) {\n var priorityLevel;\n\n switch (currentPriorityLevel) {\n case ImmediatePriority:\n case UserBlockingPriority:\n case NormalPriority:\n // Shift down to normal priority\n priorityLevel = NormalPriority;\n break;\n\n default:\n // Anything lower than normal priority should remain at the current level.\n priorityLevel = currentPriorityLevel;\n break;\n }\n\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n}\n\nfunction unstable_wrapCallback(callback) {\n var parentPriorityLevel = currentPriorityLevel;\n return function () {\n // This is a fork of runWithPriority, inlined for performance.\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = parentPriorityLevel;\n\n try {\n return callback.apply(this, arguments);\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n };\n}\n\nfunction unstable_scheduleCallback(priorityLevel, callback, options) {\n var currentTime = exports.unstable_now();\n var startTime;\n\n if (typeof options === 'object' && options !== null) {\n var delay = options.delay;\n\n if (typeof delay === 'number' && delay > 0) {\n startTime = currentTime + delay;\n } else {\n startTime = currentTime;\n }\n } else {\n startTime = currentTime;\n }\n\n var timeout;\n\n switch (priorityLevel) {\n case ImmediatePriority:\n timeout = IMMEDIATE_PRIORITY_TIMEOUT;\n break;\n\n case UserBlockingPriority:\n timeout = USER_BLOCKING_PRIORITY_TIMEOUT;\n break;\n\n case IdlePriority:\n timeout = IDLE_PRIORITY_TIMEOUT;\n break;\n\n case LowPriority:\n timeout = LOW_PRIORITY_TIMEOUT;\n break;\n\n case NormalPriority:\n default:\n timeout = NORMAL_PRIORITY_TIMEOUT;\n break;\n }\n\n var expirationTime = startTime + timeout;\n var newTask = {\n id: taskIdCounter++,\n callback: callback,\n priorityLevel: priorityLevel,\n startTime: startTime,\n expirationTime: expirationTime,\n sortIndex: -1\n };\n\n if (startTime > currentTime) {\n // This is a delayed task.\n newTask.sortIndex = startTime;\n push(timerQueue, newTask);\n\n if (peek(taskQueue) === null && newTask === peek(timerQueue)) {\n // All tasks are delayed, and this is the task with the earliest delay.\n if (isHostTimeoutScheduled) {\n // Cancel an existing timeout.\n cancelHostTimeout();\n } else {\n isHostTimeoutScheduled = true;\n } // Schedule a timeout.\n\n\n requestHostTimeout(handleTimeout, startTime - currentTime);\n }\n } else {\n newTask.sortIndex = expirationTime;\n push(taskQueue, newTask);\n // wait until the next time we yield.\n\n\n if (!isHostCallbackScheduled && !isPerformingWork) {\n isHostCallbackScheduled = true;\n requestHostCallback(flushWork);\n }\n }\n\n return newTask;\n}\n\nfunction unstable_pauseExecution() {\n}\n\nfunction unstable_continueExecution() {\n\n if (!isHostCallbackScheduled && !isPerformingWork) {\n isHostCallbackScheduled = true;\n requestHostCallback(flushWork);\n }\n}\n\nfunction unstable_getFirstCallbackNode() {\n return peek(taskQueue);\n}\n\nfunction unstable_cancelCallback(task) {\n // remove from the queue because you can't remove arbitrary nodes from an\n // array based heap, only the first one.)\n\n\n task.callback = null;\n}\n\nfunction unstable_getCurrentPriorityLevel() {\n return currentPriorityLevel;\n}\n\nvar unstable_requestPaint = requestPaint;\nvar unstable_Profiling = null;\n\nexports.unstable_IdlePriority = IdlePriority;\nexports.unstable_ImmediatePriority = ImmediatePriority;\nexports.unstable_LowPriority = LowPriority;\nexports.unstable_NormalPriority = NormalPriority;\nexports.unstable_Profiling = unstable_Profiling;\nexports.unstable_UserBlockingPriority = UserBlockingPriority;\nexports.unstable_cancelCallback = unstable_cancelCallback;\nexports.unstable_continueExecution = unstable_continueExecution;\nexports.unstable_getCurrentPriorityLevel = unstable_getCurrentPriorityLevel;\nexports.unstable_getFirstCallbackNode = unstable_getFirstCallbackNode;\nexports.unstable_next = unstable_next;\nexports.unstable_pauseExecution = unstable_pauseExecution;\nexports.unstable_requestPaint = unstable_requestPaint;\nexports.unstable_runWithPriority = unstable_runWithPriority;\nexports.unstable_scheduleCallback = unstable_scheduleCallback;\nexports.unstable_wrapCallback = unstable_wrapCallback;\n })();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc2NoZWR1bGVyL2Nqcy9zY2hlZHVsZXIuZGV2ZWxvcG1lbnQuanMuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFYTs7QUFFYixJQUFJLElBQXFDO0FBQ3pDO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEsRUFBRSxvQkFBb0I7QUFDdEI7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBOztBQUVBLEVBQUUsb0JBQW9CO0FBQ3RCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLEVBQUUsNEJBQTRCO0FBQzlCO0FBQ0E7O0FBRUEsaUJBQWlCLCtCQUErQjtBQUNoRCxFQUFFO0FBQ0Y7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSwwQkFBMEI7QUFDMUI7QUFDQTtBQUNBLCtCQUErQjs7QUFFL0I7QUFDQSxvQkFBb0I7O0FBRXBCO0FBQ0E7QUFDQTtBQUNBLElBQUksNEJBQTRCO0FBQ2hDO0FBQ0EsT0FBTzs7O0FBR1A7QUFDQTs7QUFFQSxFQUFFLCtCQUErQjtBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGdEQUFnRDtBQUNoRDtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBLE1BQU07QUFDTjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0M7O0FBRWxDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsb0NBQW9DOztBQUVwQyxxQ0FBcUM7O0FBRXJDO0FBQ0E7QUFDQSxrQ0FBa0M7O0FBRWxDLCtDQUErQzs7QUFFL0M7QUFDQSxxQkFBcUI7O0FBRXJCLHVCQUF1QjtBQUN2QjtBQUNBLDJDQUEyQzs7QUFFM0M7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7OztBQUdBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFROztBQUVSO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7QUFDQSxJQUFJOzs7QUFHSjtBQUNBO0FBQ0EsSUFBSTtBQUNKOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0EsUUFBUTs7O0FBR1I7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSw2QkFBNkI7QUFDN0Isa0NBQWtDO0FBQ2xDLDRCQUE0QjtBQUM1QiwrQkFBK0I7QUFDL0IsMEJBQTBCO0FBQzFCLHFDQUFxQztBQUNyQywrQkFBK0I7QUFDL0Isa0NBQWtDO0FBQ2xDLHdDQUF3QztBQUN4QyxxQ0FBcUM7QUFDckMscUJBQXFCO0FBQ3JCLCtCQUErQjtBQUMvQiw2QkFBNkI7QUFDN0IsZ0NBQWdDO0FBQ2hDLGlDQUFpQztBQUNqQyw2QkFBNkI7QUFDN0IsR0FBRztBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zY2hlZHVsZXIvY2pzL3NjaGVkdWxlci5kZXZlbG9wbWVudC5qcz9iY2QyIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBAbGljZW5zZSBSZWFjdCB2MC4yMC4yXG4gKiBzY2hlZHVsZXIuZGV2ZWxvcG1lbnQuanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIEZhY2Vib29rLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgKGZ1bmN0aW9uKCkge1xuJ3VzZSBzdHJpY3QnO1xuXG52YXIgZW5hYmxlU2NoZWR1bGVyRGVidWdnaW5nID0gZmFsc2U7XG52YXIgZW5hYmxlUHJvZmlsaW5nID0gZmFsc2U7XG5cbnZhciByZXF1ZXN0SG9zdENhbGxiYWNrO1xudmFyIHJlcXVlc3RIb3N0VGltZW91dDtcbnZhciBjYW5jZWxIb3N0VGltZW91dDtcbnZhciByZXF1ZXN0UGFpbnQ7XG52YXIgaGFzUGVyZm9ybWFuY2VOb3cgPSB0eXBlb2YgcGVyZm9ybWFuY2UgPT09ICdvYmplY3QnICYmIHR5cGVvZiBwZXJmb3JtYW5jZS5ub3cgPT09ICdmdW5jdGlvbic7XG5cbmlmIChoYXNQZXJmb3JtYW5jZU5vdykge1xuICB2YXIgbG9jYWxQZXJmb3JtYW5jZSA9IHBlcmZvcm1hbmNlO1xuXG4gIGV4cG9ydHMudW5zdGFibGVfbm93ID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBsb2NhbFBlcmZvcm1hbmNlLm5vdygpO1xuICB9O1xufSBlbHNlIHtcbiAgdmFyIGxvY2FsRGF0ZSA9IERhdGU7XG4gIHZhciBpbml0aWFsVGltZSA9IGxvY2FsRGF0ZS5ub3coKTtcblxuICBleHBvcnRzLnVuc3RhYmxlX25vdyA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gbG9jYWxEYXRlLm5vdygpIC0gaW5pdGlhbFRpbWU7XG4gIH07XG59XG5cbmlmICggLy8gSWYgU2NoZWR1bGVyIHJ1bnMgaW4gYSBub24tRE9NIGVudmlyb25tZW50LCBpdCBmYWxscyBiYWNrIHRvIGEgbmFpdmVcbi8vIGltcGxlbWVudGF0aW9uIHVzaW5nIHNldFRpbWVvdXQuXG50eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyB8fCAvLyBDaGVjayBpZiBNZXNzYWdlQ2hhbm5lbCBpcyBzdXBwb3J0ZWQsIHRvby5cbnR5cGVvZiBNZXNzYWdlQ2hhbm5lbCAhPT0gJ2Z1bmN0aW9uJykge1xuICAvLyBJZiB0aGlzIGFjY2lkZW50YWxseSBnZXRzIGltcG9ydGVkIGluIGEgbm9uLWJyb3dzZXIgZW52aXJvbm1lbnQsIGUuZy4gSmF2YVNjcmlwdENvcmUsXG4gIC8vIGZhbGxiYWNrIHRvIGEgbmFpdmUgaW1wbGVtZW50YXRpb24uXG4gIHZhciBfY2FsbGJhY2sgPSBudWxsO1xuICB2YXIgX3RpbWVvdXRJRCA9IG51bGw7XG5cbiAgdmFyIF9mbHVzaENhbGxiYWNrID0gZnVuY3Rpb24gKCkge1xuICAgIGlmIChfY2FsbGJhY2sgIT09IG51bGwpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHZhciBjdXJyZW50VGltZSA9IGV4cG9ydHMudW5zdGFibGVfbm93KCk7XG4gICAgICAgIHZhciBoYXNSZW1haW5pbmdUaW1lID0gdHJ1ZTtcblxuICAgICAgICBfY2FsbGJhY2soaGFzUmVtYWluaW5nVGltZSwgY3VycmVudFRpbWUpO1xuXG4gICAgICAgIF9jYWxsYmFjayA9IG51bGw7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHNldFRpbWVvdXQoX2ZsdXNoQ2FsbGJhY2ssIDApO1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICByZXF1ZXN0SG9zdENhbGxiYWNrID0gZnVuY3Rpb24gKGNiKSB7XG4gICAgaWYgKF9jYWxsYmFjayAhPT0gbnVsbCkge1xuICAgICAgLy8gUHJvdGVjdCBhZ2FpbnN0IHJlLWVudHJhbmN5LlxuICAgICAgc2V0VGltZW91dChyZXF1ZXN0SG9zdENhbGxiYWNrLCAwLCBjYik7XG4gICAgfSBlbHNlIHtcbiAgICAgIF9jYWxsYmFjayA9IGNiO1xuICAgICAgc2V0VGltZW91dChfZmx1c2hDYWxsYmFjaywgMCk7XG4gICAgfVxuICB9O1xuXG4gIHJlcXVlc3RIb3N0VGltZW91dCA9IGZ1bmN0aW9uIChjYiwgbXMpIHtcbiAgICBfdGltZW91dElEID0gc2V0VGltZW91dChjYiwgbXMpO1xuICB9O1xuXG4gIGNhbmNlbEhvc3RUaW1lb3V0ID0gZnVuY3Rpb24gKCkge1xuICAgIGNsZWFyVGltZW91dChfdGltZW91dElEKTtcbiAgfTtcblxuICBleHBvcnRzLnVuc3RhYmxlX3Nob3VsZFlpZWxkID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfTtcblxuICByZXF1ZXN0UGFpbnQgPSBleHBvcnRzLnVuc3RhYmxlX2ZvcmNlRnJhbWVSYXRlID0gZnVuY3Rpb24gKCkge307XG59IGVsc2Uge1xuICAvLyBDYXB0dXJlIGxvY2FsIHJlZmVyZW5jZXMgdG8gbmF0aXZlIEFQSXMsIGluIGNhc2UgYSBwb2x5ZmlsbCBvdmVycmlkZXMgdGhlbS5cbiAgdmFyIF9zZXRUaW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQ7XG4gIHZhciBfY2xlYXJUaW1lb3V0ID0gd2luZG93LmNsZWFyVGltZW91dDtcblxuICBpZiAodHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgLy8gVE9ETzogU2NoZWR1bGVyIG5vIGxvbmdlciByZXF1aXJlcyB0aGVzZSBtZXRob2RzIHRvIGJlIHBvbHlmaWxsZWQuIEJ1dFxuICAgIC8vIG1heWJlIHdlIHdhbnQgdG8gY29udGludWUgd2FybmluZyBpZiB0aGV5IGRvbid0IGV4aXN0LCB0byBwcmVzZXJ2ZSB0aGVcbiAgICAvLyBvcHRpb24gdG8gcmVseSBvbiBpdCBpbiB0aGUgZnV0dXJlP1xuICAgIHZhciByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgPSB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lO1xuICAgIHZhciBjYW5jZWxBbmltYXRpb25GcmFtZSA9IHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZTtcblxuICAgIGlmICh0eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAvLyBVc2luZyBjb25zb2xlWydlcnJvciddIHRvIGV2YWRlIEJhYmVsIGFuZCBFU0xpbnRcbiAgICAgIGNvbnNvbGVbJ2Vycm9yJ10oXCJUaGlzIGJyb3dzZXIgZG9lc24ndCBzdXBwb3J0IHJlcXVlc3RBbmltYXRpb25GcmFtZS4gXCIgKyAnTWFrZSBzdXJlIHRoYXQgeW91IGxvYWQgYSAnICsgJ3BvbHlmaWxsIGluIG9sZGVyIGJyb3dzZXJzLiBodHRwczovL3JlYWN0anMub3JnL2xpbmsvcmVhY3QtcG9seWZpbGxzJyk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBjYW5jZWxBbmltYXRpb25GcmFtZSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgLy8gVXNpbmcgY29uc29sZVsnZXJyb3InXSB0byBldmFkZSBCYWJlbCBhbmQgRVNMaW50XG4gICAgICBjb25zb2xlWydlcnJvciddKFwiVGhpcyBicm93c2VyIGRvZXNuJ3Qgc3VwcG9ydCBjYW5jZWxBbmltYXRpb25GcmFtZS4gXCIgKyAnTWFrZSBzdXJlIHRoYXQgeW91IGxvYWQgYSAnICsgJ3BvbHlmaWxsIGluIG9sZGVyIGJyb3dzZXJzLiBodHRwczovL3JlYWN0anMub3JnL2xpbmsvcmVhY3QtcG9seWZpbGxzJyk7XG4gICAgfVxuICB9XG5cbiAgdmFyIGlzTWVzc2FnZUxvb3BSdW5uaW5nID0gZmFsc2U7XG4gIHZhciBzY2hlZHVsZWRIb3N0Q2FsbGJhY2sgPSBudWxsO1xuICB2YXIgdGFza1RpbWVvdXRJRCA9IC0xOyAvLyBTY2hlZHVsZXIgcGVyaW9kaWNhbGx5IHlpZWxkcyBpbiBjYXNlIHRoZXJlIGlzIG90aGVyIHdvcmsgb24gdGhlIG1haW5cbiAgLy8gdGhyZWFkLCBsaWtlIHVzZXIgZXZlbnRzLiBCeSBkZWZhdWx0LCBpdCB5aWVsZHMgbXVsdGlwbGUgdGltZXMgcGVyIGZyYW1lLlxuICAvLyBJdCBkb2VzIG5vdCBhdHRlbXB0IHRvIGFsaWduIHdpdGggZnJhbWUgYm91bmRhcmllcywgc2luY2UgbW9zdCB0YXNrcyBkb24ndFxuICAvLyBuZWVkIHRvIGJlIGZyYW1lIGFsaWduZWQ7IGZvciB0aG9zZSB0aGF0IGRvLCB1c2UgcmVxdWVzdEFuaW1hdGlvbkZyYW1lLlxuXG4gIHZhciB5aWVsZEludGVydmFsID0gNTtcbiAgdmFyIGRlYWRsaW5lID0gMDsgLy8gVE9ETzogTWFrZSB0aGlzIGNvbmZpZ3VyYWJsZVxuXG4gIHtcbiAgICAvLyBgaXNJbnB1dFBlbmRpbmdgIGlzIG5vdCBhdmFpbGFibGUuIFNpbmNlIHdlIGhhdmUgbm8gd2F5IG9mIGtub3dpbmcgaWZcbiAgICAvLyB0aGVyZSdzIHBlbmRpbmcgaW5wdXQsIGFsd2F5cyB5aWVsZCBhdCB0aGUgZW5kIG9mIHRoZSBmcmFtZS5cbiAgICBleHBvcnRzLnVuc3RhYmxlX3Nob3VsZFlpZWxkID0gZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGV4cG9ydHMudW5zdGFibGVfbm93KCkgPj0gZGVhZGxpbmU7XG4gICAgfTsgLy8gU2luY2Ugd2UgeWllbGQgZXZlcnkgZnJhbWUgcmVnYXJkbGVzcywgYHJlcXVlc3RQYWludGAgaGFzIG5vIGVmZmVjdC5cblxuXG4gICAgcmVxdWVzdFBhaW50ID0gZnVuY3Rpb24gKCkge307XG4gIH1cblxuICBleHBvcnRzLnVuc3RhYmxlX2ZvcmNlRnJhbWVSYXRlID0gZnVuY3Rpb24gKGZwcykge1xuICAgIGlmIChmcHMgPCAwIHx8IGZwcyA+IDEyNSkge1xuICAgICAgLy8gVXNpbmcgY29uc29sZVsnZXJyb3InXSB0byBldmFkZSBCYWJlbCBhbmQgRVNMaW50XG4gICAgICBjb25zb2xlWydlcnJvciddKCdmb3JjZUZyYW1lUmF0ZSB0YWtlcyBhIHBvc2l0aXZlIGludCBiZXR3ZWVuIDAgYW5kIDEyNSwgJyArICdmb3JjaW5nIGZyYW1lIHJhdGVzIGhpZ2hlciB0aGFuIDEyNSBmcHMgaXMgbm90IHN1cHBvcnRlZCcpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChmcHMgPiAwKSB7XG4gICAgICB5aWVsZEludGVydmFsID0gTWF0aC5mbG9vcigxMDAwIC8gZnBzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gcmVzZXQgdGhlIGZyYW1lcmF0ZVxuICAgICAgeWllbGRJbnRlcnZhbCA9IDU7XG4gICAgfVxuICB9O1xuXG4gIHZhciBwZXJmb3JtV29ya1VudGlsRGVhZGxpbmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHNjaGVkdWxlZEhvc3RDYWxsYmFjayAhPT0gbnVsbCkge1xuICAgICAgdmFyIGN1cnJlbnRUaW1lID0gZXhwb3J0cy51bnN0YWJsZV9ub3coKTsgLy8gWWllbGQgYWZ0ZXIgYHlpZWxkSW50ZXJ2YWxgIG1zLCByZWdhcmRsZXNzIG9mIHdoZXJlIHdlIGFyZSBpbiB0aGUgdnN5bmNcbiAgICAgIC8vIGN5Y2xlLiBUaGlzIG1lYW5zIHRoZXJlJ3MgYWx3YXlzIHRpbWUgcmVtYWluaW5nIGF0IHRoZSBiZWdpbm5pbmcgb2ZcbiAgICAgIC8vIHRoZSBtZXNzYWdlIGV2ZW50LlxuXG4gICAgICBkZWFkbGluZSA9IGN1cnJlbnRUaW1lICsgeWllbGRJbnRlcnZhbDtcbiAgICAgIHZhciBoYXNUaW1lUmVtYWluaW5nID0gdHJ1ZTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgdmFyIGhhc01vcmVXb3JrID0gc2NoZWR1bGVkSG9zdENhbGxiYWNrKGhhc1RpbWVSZW1haW5pbmcsIGN1cnJlbnRUaW1lKTtcblxuICAgICAgICBpZiAoIWhhc01vcmVXb3JrKSB7XG4gICAgICAgICAgaXNNZXNzYWdlTG9vcFJ1bm5pbmcgPSBmYWxzZTtcbiAgICAgICAgICBzY2hlZHVsZWRIb3N0Q2FsbGJhY2sgPSBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIElmIHRoZXJlJ3MgbW9yZSB3b3JrLCBzY2hlZHVsZSB0aGUgbmV4dCBtZXNzYWdlIGV2ZW50IGF0IHRoZSBlbmRcbiAgICAgICAgICAvLyBvZiB0aGUgcHJlY2VkaW5nIG9uZS5cbiAgICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKG51bGwpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAvLyBJZiBhIHNjaGVkdWxlciB0YXNrIHRocm93cywgZXhpdCB0aGUgY3VycmVudCBicm93c2VyIHRhc2sgc28gdGhlXG4gICAgICAgIC8vIGVycm9yIGNhbiBiZSBvYnNlcnZlZC5cbiAgICAgICAgcG9ydC5wb3N0TWVzc2FnZShudWxsKTtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlzTWVzc2FnZUxvb3BSdW5uaW5nID0gZmFsc2U7XG4gICAgfSAvLyBZaWVsZGluZyB0byB0aGUgYnJvd3NlciB3aWxsIGdpdmUgaXQgYSBjaGFuY2UgdG8gcGFpbnQsIHNvIHdlIGNhblxuICB9O1xuXG4gIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7XG4gIHZhciBwb3J0ID0gY2hhbm5lbC5wb3J0MjtcbiAgY2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2UgPSBwZXJmb3JtV29ya1VudGlsRGVhZGxpbmU7XG5cbiAgcmVxdWVzdEhvc3RDYWxsYmFjayA9IGZ1bmN0aW9uIChjYWxsYmFjaykge1xuICAgIHNjaGVkdWxlZEhvc3RDYWxsYmFjayA9IGNhbGxiYWNrO1xuXG4gICAgaWYgKCFpc01lc3NhZ2VMb29wUnVubmluZykge1xuICAgICAgaXNNZXNzYWdlTG9vcFJ1bm5pbmcgPSB0cnVlO1xuICAgICAgcG9ydC5wb3N0TWVzc2FnZShudWxsKTtcbiAgICB9XG4gIH07XG5cbiAgcmVxdWVzdEhvc3RUaW1lb3V0ID0gZnVuY3Rpb24gKGNhbGxiYWNrLCBtcykge1xuICAgIHRhc2tUaW1lb3V0SUQgPSBfc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICBjYWxsYmFjayhleHBvcnRzLnVuc3RhYmxlX25vdygpKTtcbiAgICB9LCBtcyk7XG4gIH07XG5cbiAgY2FuY2VsSG9zdFRpbWVvdXQgPSBmdW5jdGlvbiAoKSB7XG4gICAgX2NsZWFyVGltZW91dCh0YXNrVGltZW91dElEKTtcblxuICAgIHRhc2tUaW1lb3V0SUQgPSAtMTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gcHVzaChoZWFwLCBub2RlKSB7XG4gIHZhciBpbmRleCA9IGhlYXAubGVuZ3RoO1xuICBoZWFwLnB1c2gobm9kZSk7XG4gIHNpZnRVcChoZWFwLCBub2RlLCBpbmRleCk7XG59XG5mdW5jdGlvbiBwZWVrKGhlYXApIHtcbiAgdmFyIGZpcnN0ID0gaGVhcFswXTtcbiAgcmV0dXJuIGZpcnN0ID09PSB1bmRlZmluZWQgPyBudWxsIDogZmlyc3Q7XG59XG5mdW5jdGlvbiBwb3AoaGVhcCkge1xuICB2YXIgZmlyc3QgPSBoZWFwWzBdO1xuXG4gIGlmIChmaXJzdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdmFyIGxhc3QgPSBoZWFwLnBvcCgpO1xuXG4gICAgaWYgKGxhc3QgIT09IGZpcnN0KSB7XG4gICAgICBoZWFwWzBdID0gbGFzdDtcbiAgICAgIHNpZnREb3duKGhlYXAsIGxhc3QsIDApO1xuICAgIH1cblxuICAgIHJldHVybiBmaXJzdDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5mdW5jdGlvbiBzaWZ0VXAoaGVhcCwgbm9kZSwgaSkge1xuICB2YXIgaW5kZXggPSBpO1xuXG4gIHdoaWxlICh0cnVlKSB7XG4gICAgdmFyIHBhcmVudEluZGV4ID0gaW5kZXggLSAxID4+PiAxO1xuICAgIHZhciBwYXJlbnQgPSBoZWFwW3BhcmVudEluZGV4XTtcblxuICAgIGlmIChwYXJlbnQgIT09IHVuZGVmaW5lZCAmJiBjb21wYXJlKHBhcmVudCwgbm9kZSkgPiAwKSB7XG4gICAgICAvLyBUaGUgcGFyZW50IGlzIGxhcmdlci4gU3dhcCBwb3NpdGlvbnMuXG4gICAgICBoZWFwW3BhcmVudEluZGV4XSA9IG5vZGU7XG4gICAgICBoZWFwW2luZGV4XSA9IHBhcmVudDtcbiAgICAgIGluZGV4ID0gcGFyZW50SW5kZXg7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRoZSBwYXJlbnQgaXMgc21hbGxlci4gRXhpdC5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gc2lmdERvd24oaGVhcCwgbm9kZSwgaSkge1xuICB2YXIgaW5kZXggPSBpO1xuICB2YXIgbGVuZ3RoID0gaGVhcC5sZW5ndGg7XG5cbiAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgdmFyIGxlZnRJbmRleCA9IChpbmRleCArIDEpICogMiAtIDE7XG4gICAgdmFyIGxlZnQgPSBoZWFwW2xlZnRJbmRleF07XG4gICAgdmFyIHJpZ2h0SW5kZXggPSBsZWZ0SW5kZXggKyAxO1xuICAgIHZhciByaWdodCA9IGhlYXBbcmlnaHRJbmRleF07IC8vIElmIHRoZSBsZWZ0IG9yIHJpZ2h0IG5vZGUgaXMgc21hbGxlciwgc3dhcCB3aXRoIHRoZSBzbWFsbGVyIG9mIHRob3NlLlxuXG4gICAgaWYgKGxlZnQgIT09IHVuZGVmaW5lZCAmJiBjb21wYXJlKGxlZnQsIG5vZGUpIDwgMCkge1xuICAgICAgaWYgKHJpZ2h0ICE9PSB1bmRlZmluZWQgJiYgY29tcGFyZShyaWdodCwgbGVmdCkgPCAwKSB7XG4gICAgICAgIGhlYXBbaW5kZXhdID0gcmlnaHQ7XG4gICAgICAgIGhlYXBbcmlnaHRJbmRleF0gPSBub2RlO1xuICAgICAgICBpbmRleCA9IHJpZ2h0SW5kZXg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBoZWFwW2luZGV4XSA9IGxlZnQ7XG4gICAgICAgIGhlYXBbbGVmdEluZGV4XSA9IG5vZGU7XG4gICAgICAgIGluZGV4ID0gbGVmdEluZGV4O1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAocmlnaHQgIT09IHVuZGVmaW5lZCAmJiBjb21wYXJlKHJpZ2h0LCBub2RlKSA8IDApIHtcbiAgICAgIGhlYXBbaW5kZXhdID0gcmlnaHQ7XG4gICAgICBoZWFwW3JpZ2h0SW5kZXhdID0gbm9kZTtcbiAgICAgIGluZGV4ID0gcmlnaHRJbmRleDtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTmVpdGhlciBjaGlsZCBpcyBzbWFsbGVyLiBFeGl0LlxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjb21wYXJlKGEsIGIpIHtcbiAgLy8gQ29tcGFyZSBzb3J0IGluZGV4IGZpcnN0LCB0aGVuIHRhc2sgaWQuXG4gIHZhciBkaWZmID0gYS5zb3J0SW5kZXggLSBiLnNvcnRJbmRleDtcbiAgcmV0dXJuIGRpZmYgIT09IDAgPyBkaWZmIDogYS5pZCAtIGIuaWQ7XG59XG5cbi8vIFRPRE86IFVzZSBzeW1ib2xzP1xudmFyIEltbWVkaWF0ZVByaW9yaXR5ID0gMTtcbnZhciBVc2VyQmxvY2tpbmdQcmlvcml0eSA9IDI7XG52YXIgTm9ybWFsUHJpb3JpdHkgPSAzO1xudmFyIExvd1ByaW9yaXR5ID0gNDtcbnZhciBJZGxlUHJpb3JpdHkgPSA1O1xuXG5mdW5jdGlvbiBtYXJrVGFza0Vycm9yZWQodGFzaywgbXMpIHtcbn1cblxuLyogZXNsaW50LWRpc2FibGUgbm8tdmFyICovXG4vLyBNYXRoLnBvdygyLCAzMCkgLSAxXG4vLyAwYjExMTExMTExMTExMTExMTExMTExMTExMTExMTExMVxuXG52YXIgbWF4U2lnbmVkMzFCaXRJbnQgPSAxMDczNzQxODIzOyAvLyBUaW1lcyBvdXQgaW1tZWRpYXRlbHlcblxudmFyIElNTUVESUFURV9QUklPUklUWV9USU1FT1VUID0gLTE7IC8vIEV2ZW50dWFsbHkgdGltZXMgb3V0XG5cbnZhciBVU0VSX0JMT0NLSU5HX1BSSU9SSVRZX1RJTUVPVVQgPSAyNTA7XG52YXIgTk9STUFMX1BSSU9SSVRZX1RJTUVPVVQgPSA1MDAwO1xudmFyIExPV19QUklPUklUWV9USU1FT1VUID0gMTAwMDA7IC8vIE5ldmVyIHRpbWVzIG91dFxuXG52YXIgSURMRV9QUklPUklUWV9USU1FT1VUID0gbWF4U2lnbmVkMzFCaXRJbnQ7IC8vIFRhc2tzIGFyZSBzdG9yZWQgb24gYSBtaW4gaGVhcFxuXG52YXIgdGFza1F1ZXVlID0gW107XG52YXIgdGltZXJRdWV1ZSA9IFtdOyAvLyBJbmNyZW1lbnRpbmcgaWQgY291bnRlci4gVXNlZCB0byBtYWludGFpbiBpbnNlcnRpb24gb3JkZXIuXG5cbnZhciB0YXNrSWRDb3VudGVyID0gMTsgLy8gUGF1c2luZyB0aGUgc2NoZWR1bGVyIGlzIHVzZWZ1bCBmb3IgZGVidWdnaW5nLlxudmFyIGN1cnJlbnRUYXNrID0gbnVsbDtcbnZhciBjdXJyZW50UHJpb3JpdHlMZXZlbCA9IE5vcm1hbFByaW9yaXR5OyAvLyBUaGlzIGlzIHNldCB3aGlsZSBwZXJmb3JtaW5nIHdvcmssIHRvIHByZXZlbnQgcmUtZW50cmFuY3kuXG5cbnZhciBpc1BlcmZvcm1pbmdXb3JrID0gZmFsc2U7XG52YXIgaXNIb3N0Q2FsbGJhY2tTY2hlZHVsZWQgPSBmYWxzZTtcbnZhciBpc0hvc3RUaW1lb3V0U2NoZWR1bGVkID0gZmFsc2U7XG5cbmZ1bmN0aW9uIGFkdmFuY2VUaW1lcnMoY3VycmVudFRpbWUpIHtcbiAgLy8gQ2hlY2sgZm9yIHRhc2tzIHRoYXQgYXJlIG5vIGxvbmdlciBkZWxheWVkIGFuZCBhZGQgdGhlbSB0byB0aGUgcXVldWUuXG4gIHZhciB0aW1lciA9IHBlZWsodGltZXJRdWV1ZSk7XG5cbiAgd2hpbGUgKHRpbWVyICE9PSBudWxsKSB7XG4gICAgaWYgKHRpbWVyLmNhbGxiYWNrID09PSBudWxsKSB7XG4gICAgICAvLyBUaW1lciB3YXMgY2FuY2VsbGVkLlxuICAgICAgcG9wKHRpbWVyUXVldWUpO1xuICAgIH0gZWxzZSBpZiAodGltZXIuc3RhcnRUaW1lIDw9IGN1cnJlbnRUaW1lKSB7XG4gICAgICAvLyBUaW1lciBmaXJlZC4gVHJhbnNmZXIgdG8gdGhlIHRhc2sgcXVldWUuXG4gICAgICBwb3AodGltZXJRdWV1ZSk7XG4gICAgICB0aW1lci5zb3J0SW5kZXggPSB0aW1lci5leHBpcmF0aW9uVGltZTtcbiAgICAgIHB1c2godGFza1F1ZXVlLCB0aW1lcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFJlbWFpbmluZyB0aW1lcnMgYXJlIHBlbmRpbmcuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGltZXIgPSBwZWVrKHRpbWVyUXVldWUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGhhbmRsZVRpbWVvdXQoY3VycmVudFRpbWUpIHtcbiAgaXNIb3N0VGltZW91dFNjaGVkdWxlZCA9IGZhbHNlO1xuICBhZHZhbmNlVGltZXJzKGN1cnJlbnRUaW1lKTtcblxuICBpZiAoIWlzSG9zdENhbGxiYWNrU2NoZWR1bGVkKSB7XG4gICAgaWYgKHBlZWsodGFza1F1ZXVlKSAhPT0gbnVsbCkge1xuICAgICAgaXNIb3N0Q2FsbGJhY2tTY2hlZHVsZWQgPSB0cnVlO1xuICAgICAgcmVxdWVzdEhvc3RDYWxsYmFjayhmbHVzaFdvcmspO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgZmlyc3RUaW1lciA9IHBlZWsodGltZXJRdWV1ZSk7XG5cbiAgICAgIGlmIChmaXJzdFRpbWVyICE9PSBudWxsKSB7XG4gICAgICAgIHJlcXVlc3RIb3N0VGltZW91dChoYW5kbGVUaW1lb3V0LCBmaXJzdFRpbWVyLnN0YXJ0VGltZSAtIGN1cnJlbnRUaW1lKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZmx1c2hXb3JrKGhhc1RpbWVSZW1haW5pbmcsIGluaXRpYWxUaW1lKSB7XG5cblxuICBpc0hvc3RDYWxsYmFja1NjaGVkdWxlZCA9IGZhbHNlO1xuXG4gIGlmIChpc0hvc3RUaW1lb3V0U2NoZWR1bGVkKSB7XG4gICAgLy8gV2Ugc2NoZWR1bGVkIGEgdGltZW91dCBidXQgaXQncyBubyBsb25nZXIgbmVlZGVkLiBDYW5jZWwgaXQuXG4gICAgaXNIb3N0VGltZW91dFNjaGVkdWxlZCA9IGZhbHNlO1xuICAgIGNhbmNlbEhvc3RUaW1lb3V0KCk7XG4gIH1cblxuICBpc1BlcmZvcm1pbmdXb3JrID0gdHJ1ZTtcbiAgdmFyIHByZXZpb3VzUHJpb3JpdHlMZXZlbCA9IGN1cnJlbnRQcmlvcml0eUxldmVsO1xuXG4gIHRyeSB7XG4gICAgaWYgKGVuYWJsZVByb2ZpbGluZykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHdvcmtMb29wKGhhc1RpbWVSZW1haW5pbmcsIGluaXRpYWxUaW1lKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGlmIChjdXJyZW50VGFzayAhPT0gbnVsbCkge1xuICAgICAgICAgIHZhciBjdXJyZW50VGltZSA9IGV4cG9ydHMudW5zdGFibGVfbm93KCk7XG4gICAgICAgICAgbWFya1Rhc2tFcnJvcmVkKGN1cnJlbnRUYXNrLCBjdXJyZW50VGltZSk7XG4gICAgICAgICAgY3VycmVudFRhc2suaXNRdWV1ZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBObyBjYXRjaCBpbiBwcm9kIGNvZGUgcGF0aC5cbiAgICAgIHJldHVybiB3b3JrTG9vcChoYXNUaW1lUmVtYWluaW5nLCBpbml0aWFsVGltZSk7XG4gICAgfVxuICB9IGZpbmFsbHkge1xuICAgIGN1cnJlbnRUYXNrID0gbnVsbDtcbiAgICBjdXJyZW50UHJpb3JpdHlMZXZlbCA9IHByZXZpb3VzUHJpb3JpdHlMZXZlbDtcbiAgICBpc1BlcmZvcm1pbmdXb3JrID0gZmFsc2U7XG4gIH1cbn1cblxuZnVuY3Rpb24gd29ya0xvb3AoaGFzVGltZVJlbWFpbmluZywgaW5pdGlhbFRpbWUpIHtcbiAgdmFyIGN1cnJlbnRUaW1lID0gaW5pdGlhbFRpbWU7XG4gIGFkdmFuY2VUaW1lcnMoY3VycmVudFRpbWUpO1xuICBjdXJyZW50VGFzayA9IHBlZWsodGFza1F1ZXVlKTtcblxuICB3aGlsZSAoY3VycmVudFRhc2sgIT09IG51bGwgJiYgIShlbmFibGVTY2hlZHVsZXJEZWJ1Z2dpbmcgKSkge1xuICAgIGlmIChjdXJyZW50VGFzay5leHBpcmF0aW9uVGltZSA+IGN1cnJlbnRUaW1lICYmICghaGFzVGltZVJlbWFpbmluZyB8fCBleHBvcnRzLnVuc3RhYmxlX3Nob3VsZFlpZWxkKCkpKSB7XG4gICAgICAvLyBUaGlzIGN1cnJlbnRUYXNrIGhhc24ndCBleHBpcmVkLCBhbmQgd2UndmUgcmVhY2hlZCB0aGUgZGVhZGxpbmUuXG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICB2YXIgY2FsbGJhY2sgPSBjdXJyZW50VGFzay5jYWxsYmFjaztcblxuICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGN1cnJlbnRUYXNrLmNhbGxiYWNrID0gbnVsbDtcbiAgICAgIGN1cnJlbnRQcmlvcml0eUxldmVsID0gY3VycmVudFRhc2sucHJpb3JpdHlMZXZlbDtcbiAgICAgIHZhciBkaWRVc2VyQ2FsbGJhY2tUaW1lb3V0ID0gY3VycmVudFRhc2suZXhwaXJhdGlvblRpbWUgPD0gY3VycmVudFRpbWU7XG5cbiAgICAgIHZhciBjb250aW51YXRpb25DYWxsYmFjayA9IGNhbGxiYWNrKGRpZFVzZXJDYWxsYmFja1RpbWVvdXQpO1xuICAgICAgY3VycmVudFRpbWUgPSBleHBvcnRzLnVuc3RhYmxlX25vdygpO1xuXG4gICAgICBpZiAodHlwZW9mIGNvbnRpbnVhdGlvbkNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGN1cnJlbnRUYXNrLmNhbGxiYWNrID0gY29udGludWF0aW9uQ2FsbGJhY2s7XG4gICAgICB9IGVsc2Uge1xuXG4gICAgICAgIGlmIChjdXJyZW50VGFzayA9PT0gcGVlayh0YXNrUXVldWUpKSB7XG4gICAgICAgICAgcG9wKHRhc2tRdWV1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgYWR2YW5jZVRpbWVycyhjdXJyZW50VGltZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBvcCh0YXNrUXVldWUpO1xuICAgIH1cblxuICAgIGN1cnJlbnRUYXNrID0gcGVlayh0YXNrUXVldWUpO1xuICB9IC8vIFJldHVybiB3aGV0aGVyIHRoZXJlJ3MgYWRkaXRpb25hbCB3b3JrXG5cblxuICBpZiAoY3VycmVudFRhc2sgIT09IG51bGwpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgZmlyc3RUaW1lciA9IHBlZWsodGltZXJRdWV1ZSk7XG5cbiAgICBpZiAoZmlyc3RUaW1lciAhPT0gbnVsbCkge1xuICAgICAgcmVxdWVzdEhvc3RUaW1lb3V0KGhhbmRsZVRpbWVvdXQsIGZpcnN0VGltZXIuc3RhcnRUaW1lIC0gY3VycmVudFRpbWUpO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5mdW5jdGlvbiB1bnN0YWJsZV9ydW5XaXRoUHJpb3JpdHkocHJpb3JpdHlMZXZlbCwgZXZlbnRIYW5kbGVyKSB7XG4gIHN3aXRjaCAocHJpb3JpdHlMZXZlbCkge1xuICAgIGNhc2UgSW1tZWRpYXRlUHJpb3JpdHk6XG4gICAgY2FzZSBVc2VyQmxvY2tpbmdQcmlvcml0eTpcbiAgICBjYXNlIE5vcm1hbFByaW9yaXR5OlxuICAgIGNhc2UgTG93UHJpb3JpdHk6XG4gICAgY2FzZSBJZGxlUHJpb3JpdHk6XG4gICAgICBicmVhaztcblxuICAgIGRlZmF1bHQ6XG4gICAgICBwcmlvcml0eUxldmVsID0gTm9ybWFsUHJpb3JpdHk7XG4gIH1cblxuICB2YXIgcHJldmlvdXNQcmlvcml0eUxldmVsID0gY3VycmVudFByaW9yaXR5TGV2ZWw7XG4gIGN1cnJlbnRQcmlvcml0eUxldmVsID0gcHJpb3JpdHlMZXZlbDtcblxuICB0cnkge1xuICAgIHJldHVybiBldmVudEhhbmRsZXIoKTtcbiAgfSBmaW5hbGx5IHtcbiAgICBjdXJyZW50UHJpb3JpdHlMZXZlbCA9IHByZXZpb3VzUHJpb3JpdHlMZXZlbDtcbiAgfVxufVxuXG5mdW5jdGlvbiB1bnN0YWJsZV9uZXh0KGV2ZW50SGFuZGxlcikge1xuICB2YXIgcHJpb3JpdHlMZXZlbDtcblxuICBzd2l0Y2ggKGN1cnJlbnRQcmlvcml0eUxldmVsKSB7XG4gICAgY2FzZSBJbW1lZGlhdGVQcmlvcml0eTpcbiAgICBjYXNlIFVzZXJCbG9ja2luZ1ByaW9yaXR5OlxuICAgIGNhc2UgTm9ybWFsUHJpb3JpdHk6XG4gICAgICAvLyBTaGlmdCBkb3duIHRvIG5vcm1hbCBwcmlvcml0eVxuICAgICAgcHJpb3JpdHlMZXZlbCA9IE5vcm1hbFByaW9yaXR5O1xuICAgICAgYnJlYWs7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgLy8gQW55dGhpbmcgbG93ZXIgdGhhbiBub3JtYWwgcHJpb3JpdHkgc2hvdWxkIHJlbWFpbiBhdCB0aGUgY3VycmVudCBsZXZlbC5cbiAgICAgIHByaW9yaXR5TGV2ZWwgPSBjdXJyZW50UHJpb3JpdHlMZXZlbDtcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgdmFyIHByZXZpb3VzUHJpb3JpdHlMZXZlbCA9IGN1cnJlbnRQcmlvcml0eUxldmVsO1xuICBjdXJyZW50UHJpb3JpdHlMZXZlbCA9IHByaW9yaXR5TGV2ZWw7XG5cbiAgdHJ5IHtcbiAgICByZXR1cm4gZXZlbnRIYW5kbGVyKCk7XG4gIH0gZmluYWxseSB7XG4gICAgY3VycmVudFByaW9yaXR5TGV2ZWwgPSBwcmV2aW91c1ByaW9yaXR5TGV2ZWw7XG4gIH1cbn1cblxuZnVuY3Rpb24gdW5zdGFibGVfd3JhcENhbGxiYWNrKGNhbGxiYWNrKSB7XG4gIHZhciBwYXJlbnRQcmlvcml0eUxldmVsID0gY3VycmVudFByaW9yaXR5TGV2ZWw7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgLy8gVGhpcyBpcyBhIGZvcmsgb2YgcnVuV2l0aFByaW9yaXR5LCBpbmxpbmVkIGZvciBwZXJmb3JtYW5jZS5cbiAgICB2YXIgcHJldmlvdXNQcmlvcml0eUxldmVsID0gY3VycmVudFByaW9yaXR5TGV2ZWw7XG4gICAgY3VycmVudFByaW9yaXR5TGV2ZWwgPSBwYXJlbnRQcmlvcml0eUxldmVsO1xuXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBjYWxsYmFjay5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBjdXJyZW50UHJpb3JpdHlMZXZlbCA9IHByZXZpb3VzUHJpb3JpdHlMZXZlbDtcbiAgICB9XG4gIH07XG59XG5cbmZ1bmN0aW9uIHVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2socHJpb3JpdHlMZXZlbCwgY2FsbGJhY2ssIG9wdGlvbnMpIHtcbiAgdmFyIGN1cnJlbnRUaW1lID0gZXhwb3J0cy51bnN0YWJsZV9ub3coKTtcbiAgdmFyIHN0YXJ0VGltZTtcblxuICBpZiAodHlwZW9mIG9wdGlvbnMgPT09ICdvYmplY3QnICYmIG9wdGlvbnMgIT09IG51bGwpIHtcbiAgICB2YXIgZGVsYXkgPSBvcHRpb25zLmRlbGF5O1xuXG4gICAgaWYgKHR5cGVvZiBkZWxheSA9PT0gJ251bWJlcicgJiYgZGVsYXkgPiAwKSB7XG4gICAgICBzdGFydFRpbWUgPSBjdXJyZW50VGltZSArIGRlbGF5O1xuICAgIH0gZWxzZSB7XG4gICAgICBzdGFydFRpbWUgPSBjdXJyZW50VGltZTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgc3RhcnRUaW1lID0gY3VycmVudFRpbWU7XG4gIH1cblxuICB2YXIgdGltZW91dDtcblxuICBzd2l0Y2ggKHByaW9yaXR5TGV2ZWwpIHtcbiAgICBjYXNlIEltbWVkaWF0ZVByaW9yaXR5OlxuICAgICAgdGltZW91dCA9IElNTUVESUFURV9QUklPUklUWV9USU1FT1VUO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIFVzZXJCbG9ja2luZ1ByaW9yaXR5OlxuICAgICAgdGltZW91dCA9IFVTRVJfQkxPQ0tJTkdfUFJJT1JJVFlfVElNRU9VVDtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBJZGxlUHJpb3JpdHk6XG4gICAgICB0aW1lb3V0ID0gSURMRV9QUklPUklUWV9USU1FT1VUO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIExvd1ByaW9yaXR5OlxuICAgICAgdGltZW91dCA9IExPV19QUklPUklUWV9USU1FT1VUO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIE5vcm1hbFByaW9yaXR5OlxuICAgIGRlZmF1bHQ6XG4gICAgICB0aW1lb3V0ID0gTk9STUFMX1BSSU9SSVRZX1RJTUVPVVQ7XG4gICAgICBicmVhaztcbiAgfVxuXG4gIHZhciBleHBpcmF0aW9uVGltZSA9IHN0YXJ0VGltZSArIHRpbWVvdXQ7XG4gIHZhciBuZXdUYXNrID0ge1xuICAgIGlkOiB0YXNrSWRDb3VudGVyKyssXG4gICAgY2FsbGJhY2s6IGNhbGxiYWNrLFxuICAgIHByaW9yaXR5TGV2ZWw6IHByaW9yaXR5TGV2ZWwsXG4gICAgc3RhcnRUaW1lOiBzdGFydFRpbWUsXG4gICAgZXhwaXJhdGlvblRpbWU6IGV4cGlyYXRpb25UaW1lLFxuICAgIHNvcnRJbmRleDogLTFcbiAgfTtcblxuICBpZiAoc3RhcnRUaW1lID4gY3VycmVudFRpbWUpIHtcbiAgICAvLyBUaGlzIGlzIGEgZGVsYXllZCB0YXNrLlxuICAgIG5ld1Rhc2suc29ydEluZGV4ID0gc3RhcnRUaW1lO1xuICAgIHB1c2godGltZXJRdWV1ZSwgbmV3VGFzayk7XG5cbiAgICBpZiAocGVlayh0YXNrUXVldWUpID09PSBudWxsICYmIG5ld1Rhc2sgPT09IHBlZWsodGltZXJRdWV1ZSkpIHtcbiAgICAgIC8vIEFsbCB0YXNrcyBhcmUgZGVsYXllZCwgYW5kIHRoaXMgaXMgdGhlIHRhc2sgd2l0aCB0aGUgZWFybGllc3QgZGVsYXkuXG4gICAgICBpZiAoaXNIb3N0VGltZW91dFNjaGVkdWxlZCkge1xuICAgICAgICAvLyBDYW5jZWwgYW4gZXhpc3RpbmcgdGltZW91dC5cbiAgICAgICAgY2FuY2VsSG9zdFRpbWVvdXQoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlzSG9zdFRpbWVvdXRTY2hlZHVsZWQgPSB0cnVlO1xuICAgICAgfSAvLyBTY2hlZHVsZSBhIHRpbWVvdXQuXG5cblxuICAgICAgcmVxdWVzdEhvc3RUaW1lb3V0KGhhbmRsZVRpbWVvdXQsIHN0YXJ0VGltZSAtIGN1cnJlbnRUaW1lKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgbmV3VGFzay5zb3J0SW5kZXggPSBleHBpcmF0aW9uVGltZTtcbiAgICBwdXNoKHRhc2tRdWV1ZSwgbmV3VGFzayk7XG4gICAgLy8gd2FpdCB1bnRpbCB0aGUgbmV4dCB0aW1lIHdlIHlpZWxkLlxuXG5cbiAgICBpZiAoIWlzSG9zdENhbGxiYWNrU2NoZWR1bGVkICYmICFpc1BlcmZvcm1pbmdXb3JrKSB7XG4gICAgICBpc0hvc3RDYWxsYmFja1NjaGVkdWxlZCA9IHRydWU7XG4gICAgICByZXF1ZXN0SG9zdENhbGxiYWNrKGZsdXNoV29yayk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5ld1Rhc2s7XG59XG5cbmZ1bmN0aW9uIHVuc3RhYmxlX3BhdXNlRXhlY3V0aW9uKCkge1xufVxuXG5mdW5jdGlvbiB1bnN0YWJsZV9jb250aW51ZUV4ZWN1dGlvbigpIHtcblxuICBpZiAoIWlzSG9zdENhbGxiYWNrU2NoZWR1bGVkICYmICFpc1BlcmZvcm1pbmdXb3JrKSB7XG4gICAgaXNIb3N0Q2FsbGJhY2tTY2hlZHVsZWQgPSB0cnVlO1xuICAgIHJlcXVlc3RIb3N0Q2FsbGJhY2soZmx1c2hXb3JrKTtcbiAgfVxufVxuXG5mdW5jdGlvbiB1bnN0YWJsZV9nZXRGaXJzdENhbGxiYWNrTm9kZSgpIHtcbiAgcmV0dXJuIHBlZWsodGFza1F1ZXVlKTtcbn1cblxuZnVuY3Rpb24gdW5zdGFibGVfY2FuY2VsQ2FsbGJhY2sodGFzaykge1xuICAvLyByZW1vdmUgZnJvbSB0aGUgcXVldWUgYmVjYXVzZSB5b3UgY2FuJ3QgcmVtb3ZlIGFyYml0cmFyeSBub2RlcyBmcm9tIGFuXG4gIC8vIGFycmF5IGJhc2VkIGhlYXAsIG9ubHkgdGhlIGZpcnN0IG9uZS4pXG5cblxuICB0YXNrLmNhbGxiYWNrID0gbnVsbDtcbn1cblxuZnVuY3Rpb24gdW5zdGFibGVfZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWwoKSB7XG4gIHJldHVybiBjdXJyZW50UHJpb3JpdHlMZXZlbDtcbn1cblxudmFyIHVuc3RhYmxlX3JlcXVlc3RQYWludCA9IHJlcXVlc3RQYWludDtcbnZhciB1bnN0YWJsZV9Qcm9maWxpbmcgPSAgbnVsbDtcblxuZXhwb3J0cy51bnN0YWJsZV9JZGxlUHJpb3JpdHkgPSBJZGxlUHJpb3JpdHk7XG5leHBvcnRzLnVuc3RhYmxlX0ltbWVkaWF0ZVByaW9yaXR5ID0gSW1tZWRpYXRlUHJpb3JpdHk7XG5leHBvcnRzLnVuc3RhYmxlX0xvd1ByaW9yaXR5ID0gTG93UHJpb3JpdHk7XG5leHBvcnRzLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5ID0gTm9ybWFsUHJpb3JpdHk7XG5leHBvcnRzLnVuc3RhYmxlX1Byb2ZpbGluZyA9IHVuc3RhYmxlX1Byb2ZpbGluZztcbmV4cG9ydHMudW5zdGFibGVfVXNlckJsb2NraW5nUHJpb3JpdHkgPSBVc2VyQmxvY2tpbmdQcmlvcml0eTtcbmV4cG9ydHMudW5zdGFibGVfY2FuY2VsQ2FsbGJhY2sgPSB1bnN0YWJsZV9jYW5jZWxDYWxsYmFjaztcbmV4cG9ydHMudW5zdGFibGVfY29udGludWVFeGVjdXRpb24gPSB1bnN0YWJsZV9jb250aW51ZUV4ZWN1dGlvbjtcbmV4cG9ydHMudW5zdGFibGVfZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWwgPSB1bnN0YWJsZV9nZXRDdXJyZW50UHJpb3JpdHlMZXZlbDtcbmV4cG9ydHMudW5zdGFibGVfZ2V0Rmlyc3RDYWxsYmFja05vZGUgPSB1bnN0YWJsZV9nZXRGaXJzdENhbGxiYWNrTm9kZTtcbmV4cG9ydHMudW5zdGFibGVfbmV4dCA9IHVuc3RhYmxlX25leHQ7XG5leHBvcnRzLnVuc3RhYmxlX3BhdXNlRXhlY3V0aW9uID0gdW5zdGFibGVfcGF1c2VFeGVjdXRpb247XG5leHBvcnRzLnVuc3RhYmxlX3JlcXVlc3RQYWludCA9IHVuc3RhYmxlX3JlcXVlc3RQYWludDtcbmV4cG9ydHMudW5zdGFibGVfcnVuV2l0aFByaW9yaXR5ID0gdW5zdGFibGVfcnVuV2l0aFByaW9yaXR5O1xuZXhwb3J0cy51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrID0gdW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjaztcbmV4cG9ydHMudW5zdGFibGVfd3JhcENhbGxiYWNrID0gdW5zdGFibGVfd3JhcENhbGxiYWNrO1xuICB9KSgpO1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/scheduler/cjs/scheduler.development.js\n"); + +/***/ }), + +/***/ "./node_modules/scheduler/index.js": +/*!*****************************************!*\ + !*** ./node_modules/scheduler/index.js ***! + \*****************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/scheduler.development.js */ \"./node_modules/scheduler/cjs/scheduler.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc2NoZWR1bGVyL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLElBQUksS0FBcUMsRUFBRSxFQUUxQyxDQUFDO0FBQ0YsRUFBRSxtSUFBMEQ7QUFDNUQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3NjaGVkdWxlci9pbmRleC5qcz9jN2NjIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9zY2hlZHVsZXIucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvc2NoZWR1bGVyLmRldmVsb3BtZW50LmpzJyk7XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/scheduler/index.js\n"); + +/***/ }), + +/***/ "./node_modules/scheduler/tracing.js": +/*!*******************************************!*\ + !*** ./node_modules/scheduler/tracing.js ***! + \*******************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/scheduler-tracing.development.js */ \"./node_modules/scheduler/cjs/scheduler-tracing.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc2NoZWR1bGVyL3RyYWNpbmcuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsSUFBSSxLQUFxQyxFQUFFLEVBRTFDLENBQUM7QUFDRixFQUFFLG1KQUFrRTtBQUNwRSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc2NoZWR1bGVyL3RyYWNpbmcuanM/NjdjMiJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvc2NoZWR1bGVyLXRyYWNpbmcucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvc2NoZWR1bGVyLXRyYWNpbmcuZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/scheduler/tracing.js\n"); + +/***/ }), + +/***/ "./node_modules/stacktrace-parser/dist/stack-trace-parser.esm.js": +/*!***********************************************************************!*\ + !*** ./node_modules/stacktrace-parser/dist/stack-trace-parser.esm.js ***! + \***********************************************************************/ +/***/ (function(__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 */ \"parse\": function() { return /* binding */ parse; }\n/* harmony export */ });\nvar UNKNOWN_FUNCTION = '<unknown>';\n/**\n * This parses the different stack traces and puts them into one format\n * This borrows heavily from TraceKit (https://github.com/csnover/TraceKit)\n */\n\nfunction parse(stackString) {\n var lines = stackString.split('\\n');\n return lines.reduce(function (stack, line) {\n var parseResult = parseChrome(line) || parseWinjs(line) || parseGecko(line) || parseNode(line) || parseJSC(line);\n\n if (parseResult) {\n stack.push(parseResult);\n }\n\n return stack;\n }, []);\n}\nvar chromeRe = /^\\s*at (.*?) ?\\(((?:file|https?|blob|chrome-extension|native|eval|webpack|<anonymous>|\\/|[a-z]:\\\\|\\\\\\\\).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\nvar chromeEvalRe = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n\nfunction parseChrome(line) {\n var parts = chromeRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n var isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line\n\n var isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n\n var submatch = chromeEvalRe.exec(parts[2]);\n\n if (isEval && submatch != null) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = submatch[1]; // url\n\n parts[3] = submatch[2]; // line\n\n parts[4] = submatch[3]; // column\n }\n\n return {\n file: !isNative ? parts[2] : null,\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: isNative ? [parts[2]] : [],\n lineNumber: parts[3] ? +parts[3] : null,\n column: parts[4] ? +parts[4] : null\n };\n}\n\nvar winjsRe = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nfunction parseWinjs(line) {\n var parts = winjsRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n return {\n file: parts[2],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: [],\n lineNumber: +parts[3],\n column: parts[4] ? +parts[4] : null\n };\n}\n\nvar geckoRe = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nvar geckoEvalRe = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\n\nfunction parseGecko(line) {\n var parts = geckoRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n var isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n var submatch = geckoEvalRe.exec(parts[3]);\n\n if (isEval && submatch != null) {\n // throw out eval line/column and use top-most line number\n parts[3] = submatch[1];\n parts[4] = submatch[2];\n parts[5] = null; // no column when eval\n }\n\n return {\n file: parts[3],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: parts[2] ? parts[2].split(',') : [],\n lineNumber: parts[4] ? +parts[4] : null,\n column: parts[5] ? +parts[5] : null\n };\n}\n\nvar javaScriptCoreRe = /^\\s*(?:([^@]*)(?:\\((.*?)\\))?@)?(\\S.*?):(\\d+)(?::(\\d+))?\\s*$/i;\n\nfunction parseJSC(line) {\n var parts = javaScriptCoreRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n return {\n file: parts[3],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: [],\n lineNumber: +parts[4],\n column: parts[5] ? +parts[5] : null\n };\n}\n\nvar nodeRe = /^\\s*at (?:((?:\\[object object\\])?[^\\\\/]+(?: \\[as \\S+\\])?) )?\\(?(.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nfunction parseNode(line) {\n var parts = nodeRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n return {\n file: parts[2],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: [],\n lineNumber: +parts[3],\n column: parts[4] ? +parts[4] : null\n };\n}\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3RhY2t0cmFjZS1wYXJzZXIvZGlzdC9zdGFjay10cmFjZS1wYXJzZXIuZXNtLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQStEOztBQUUvRCwyREFBMkQ7O0FBRTNEOztBQUVBO0FBQ0E7QUFDQSw0QkFBNEI7O0FBRTVCLDRCQUE0Qjs7QUFFNUIsNEJBQTRCO0FBQzVCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zdGFja3RyYWNlLXBhcnNlci9kaXN0L3N0YWNrLXRyYWNlLXBhcnNlci5lc20uanM/NmE0YSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgVU5LTk9XTl9GVU5DVElPTiA9ICc8dW5rbm93bj4nO1xuLyoqXG4gKiBUaGlzIHBhcnNlcyB0aGUgZGlmZmVyZW50IHN0YWNrIHRyYWNlcyBhbmQgcHV0cyB0aGVtIGludG8gb25lIGZvcm1hdFxuICogVGhpcyBib3Jyb3dzIGhlYXZpbHkgZnJvbSBUcmFjZUtpdCAoaHR0cHM6Ly9naXRodWIuY29tL2Nzbm92ZXIvVHJhY2VLaXQpXG4gKi9cblxuZnVuY3Rpb24gcGFyc2Uoc3RhY2tTdHJpbmcpIHtcbiAgdmFyIGxpbmVzID0gc3RhY2tTdHJpbmcuc3BsaXQoJ1xcbicpO1xuICByZXR1cm4gbGluZXMucmVkdWNlKGZ1bmN0aW9uIChzdGFjaywgbGluZSkge1xuICAgIHZhciBwYXJzZVJlc3VsdCA9IHBhcnNlQ2hyb21lKGxpbmUpIHx8IHBhcnNlV2luanMobGluZSkgfHwgcGFyc2VHZWNrbyhsaW5lKSB8fCBwYXJzZU5vZGUobGluZSkgfHwgcGFyc2VKU0MobGluZSk7XG5cbiAgICBpZiAocGFyc2VSZXN1bHQpIHtcbiAgICAgIHN0YWNrLnB1c2gocGFyc2VSZXN1bHQpO1xuICAgIH1cblxuICAgIHJldHVybiBzdGFjaztcbiAgfSwgW10pO1xufVxudmFyIGNocm9tZVJlID0gL15cXHMqYXQgKC4qPykgP1xcKCgoPzpmaWxlfGh0dHBzP3xibG9ifGNocm9tZS1leHRlbnNpb258bmF0aXZlfGV2YWx8d2VicGFja3w8YW5vbnltb3VzPnxcXC98W2Etel06XFxcXHxcXFxcXFxcXCkuKj8pKD86OihcXGQrKSk/KD86OihcXGQrKSk/XFwpP1xccyokL2k7XG52YXIgY2hyb21lRXZhbFJlID0gL1xcKChcXFMqKSg/OjooXFxkKykpKD86OihcXGQrKSlcXCkvO1xuXG5mdW5jdGlvbiBwYXJzZUNocm9tZShsaW5lKSB7XG4gIHZhciBwYXJ0cyA9IGNocm9tZVJlLmV4ZWMobGluZSk7XG5cbiAgaWYgKCFwYXJ0cykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgdmFyIGlzTmF0aXZlID0gcGFydHNbMl0gJiYgcGFydHNbMl0uaW5kZXhPZignbmF0aXZlJykgPT09IDA7IC8vIHN0YXJ0IG9mIGxpbmVcblxuICB2YXIgaXNFdmFsID0gcGFydHNbMl0gJiYgcGFydHNbMl0uaW5kZXhPZignZXZhbCcpID09PSAwOyAvLyBzdGFydCBvZiBsaW5lXG5cbiAgdmFyIHN1Ym1hdGNoID0gY2hyb21lRXZhbFJlLmV4ZWMocGFydHNbMl0pO1xuXG4gIGlmIChpc0V2YWwgJiYgc3VibWF0Y2ggIT0gbnVsbCkge1xuICAgIC8vIHRocm93IG91dCBldmFsIGxpbmUvY29sdW1uIGFuZCB1c2UgdG9wLW1vc3QgbGluZS9jb2x1bW4gbnVtYmVyXG4gICAgcGFydHNbMl0gPSBzdWJtYXRjaFsxXTsgLy8gdXJsXG5cbiAgICBwYXJ0c1szXSA9IHN1Ym1hdGNoWzJdOyAvLyBsaW5lXG5cbiAgICBwYXJ0c1s0XSA9IHN1Ym1hdGNoWzNdOyAvLyBjb2x1bW5cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZmlsZTogIWlzTmF0aXZlID8gcGFydHNbMl0gOiBudWxsLFxuICAgIG1ldGhvZE5hbWU6IHBhcnRzWzFdIHx8IFVOS05PV05fRlVOQ1RJT04sXG4gICAgYXJndW1lbnRzOiBpc05hdGl2ZSA/IFtwYXJ0c1syXV0gOiBbXSxcbiAgICBsaW5lTnVtYmVyOiBwYXJ0c1szXSA/ICtwYXJ0c1szXSA6IG51bGwsXG4gICAgY29sdW1uOiBwYXJ0c1s0XSA/ICtwYXJ0c1s0XSA6IG51bGxcbiAgfTtcbn1cblxudmFyIHdpbmpzUmUgPSAvXlxccyphdCAoPzooKD86XFxbb2JqZWN0IG9iamVjdFxcXSk/LispICk/XFwoPygoPzpmaWxlfG1zLWFwcHh8aHR0cHM/fHdlYnBhY2t8YmxvYik6Lio/KTooXFxkKykoPzo6KFxcZCspKT9cXCk/XFxzKiQvaTtcblxuZnVuY3Rpb24gcGFyc2VXaW5qcyhsaW5lKSB7XG4gIHZhciBwYXJ0cyA9IHdpbmpzUmUuZXhlYyhsaW5lKTtcblxuICBpZiAoIXBhcnRzKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGZpbGU6IHBhcnRzWzJdLFxuICAgIG1ldGhvZE5hbWU6IHBhcnRzWzFdIHx8IFVOS05PV05fRlVOQ1RJT04sXG4gICAgYXJndW1lbnRzOiBbXSxcbiAgICBsaW5lTnVtYmVyOiArcGFydHNbM10sXG4gICAgY29sdW1uOiBwYXJ0c1s0XSA/ICtwYXJ0c1s0XSA6IG51bGxcbiAgfTtcbn1cblxudmFyIGdlY2tvUmUgPSAvXlxccyooLio/KSg/OlxcKCguKj8pXFwpKT8oPzpefEApKCg/OmZpbGV8aHR0cHM/fGJsb2J8Y2hyb21lfHdlYnBhY2t8cmVzb3VyY2V8XFxbbmF0aXZlKS4qP3xbXkBdKmJ1bmRsZSkoPzo6KFxcZCspKT8oPzo6KFxcZCspKT9cXHMqJC9pO1xudmFyIGdlY2tvRXZhbFJlID0gLyhcXFMrKSBsaW5lIChcXGQrKSg/OiA+IGV2YWwgbGluZSBcXGQrKSogPiBldmFsL2k7XG5cbmZ1bmN0aW9uIHBhcnNlR2Vja28obGluZSkge1xuICB2YXIgcGFydHMgPSBnZWNrb1JlLmV4ZWMobGluZSk7XG5cbiAgaWYgKCFwYXJ0cykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgdmFyIGlzRXZhbCA9IHBhcnRzWzNdICYmIHBhcnRzWzNdLmluZGV4T2YoJyA+IGV2YWwnKSA+IC0xO1xuICB2YXIgc3VibWF0Y2ggPSBnZWNrb0V2YWxSZS5leGVjKHBhcnRzWzNdKTtcblxuICBpZiAoaXNFdmFsICYmIHN1Ym1hdGNoICE9IG51bGwpIHtcbiAgICAvLyB0aHJvdyBvdXQgZXZhbCBsaW5lL2NvbHVtbiBhbmQgdXNlIHRvcC1tb3N0IGxpbmUgbnVtYmVyXG4gICAgcGFydHNbM10gPSBzdWJtYXRjaFsxXTtcbiAgICBwYXJ0c1s0XSA9IHN1Ym1hdGNoWzJdO1xuICAgIHBhcnRzWzVdID0gbnVsbDsgLy8gbm8gY29sdW1uIHdoZW4gZXZhbFxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBmaWxlOiBwYXJ0c1szXSxcbiAgICBtZXRob2ROYW1lOiBwYXJ0c1sxXSB8fCBVTktOT1dOX0ZVTkNUSU9OLFxuICAgIGFyZ3VtZW50czogcGFydHNbMl0gPyBwYXJ0c1syXS5zcGxpdCgnLCcpIDogW10sXG4gICAgbGluZU51bWJlcjogcGFydHNbNF0gPyArcGFydHNbNF0gOiBudWxsLFxuICAgIGNvbHVtbjogcGFydHNbNV0gPyArcGFydHNbNV0gOiBudWxsXG4gIH07XG59XG5cbnZhciBqYXZhU2NyaXB0Q29yZVJlID0gL15cXHMqKD86KFteQF0qKSg/OlxcKCguKj8pXFwpKT9AKT8oXFxTLio/KTooXFxkKykoPzo6KFxcZCspKT9cXHMqJC9pO1xuXG5mdW5jdGlvbiBwYXJzZUpTQyhsaW5lKSB7XG4gIHZhciBwYXJ0cyA9IGphdmFTY3JpcHRDb3JlUmUuZXhlYyhsaW5lKTtcblxuICBpZiAoIXBhcnRzKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGZpbGU6IHBhcnRzWzNdLFxuICAgIG1ldGhvZE5hbWU6IHBhcnRzWzFdIHx8IFVOS05PV05fRlVOQ1RJT04sXG4gICAgYXJndW1lbnRzOiBbXSxcbiAgICBsaW5lTnVtYmVyOiArcGFydHNbNF0sXG4gICAgY29sdW1uOiBwYXJ0c1s1XSA/ICtwYXJ0c1s1XSA6IG51bGxcbiAgfTtcbn1cblxudmFyIG5vZGVSZSA9IC9eXFxzKmF0ICg/OigoPzpcXFtvYmplY3Qgb2JqZWN0XFxdKT9bXlxcXFwvXSsoPzogXFxbYXMgXFxTK1xcXSk/KSApP1xcKD8oLio/KTooXFxkKykoPzo6KFxcZCspKT9cXCk/XFxzKiQvaTtcblxuZnVuY3Rpb24gcGFyc2VOb2RlKGxpbmUpIHtcbiAgdmFyIHBhcnRzID0gbm9kZVJlLmV4ZWMobGluZSk7XG5cbiAgaWYgKCFwYXJ0cykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBmaWxlOiBwYXJ0c1syXSxcbiAgICBtZXRob2ROYW1lOiBwYXJ0c1sxXSB8fCBVTktOT1dOX0ZVTkNUSU9OLFxuICAgIGFyZ3VtZW50czogW10sXG4gICAgbGluZU51bWJlcjogK3BhcnRzWzNdLFxuICAgIGNvbHVtbjogcGFydHNbNF0gPyArcGFydHNbNF0gOiBudWxsXG4gIH07XG59XG5cbmV4cG9ydCB7IHBhcnNlIH07XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/stacktrace-parser/dist/stack-trace-parser.esm.js\n"); + +/***/ }), + +/***/ "./node_modules/string-hash/index.js": +/*!*******************************************!*\ + !*** ./node_modules/string-hash/index.js ***! + \*******************************************/ +/***/ (function(module) { + +"use strict"; +eval("\n\nfunction hash(str) {\n var hash = 5381,\n i = str.length;\n\n while(i) {\n hash = (hash * 33) ^ str.charCodeAt(--i);\n }\n\n /* JavaScript does bitwise operations (like XOR, above) on 32-bit signed\n * integers. Since we want the results to be always positive, convert the\n * signed int to an unsigned by doing an unsigned bitshift. */\n return hash >>> 0;\n}\n\nmodule.exports = hash;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3RyaW5nLWhhc2gvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWI7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zdHJpbmctaGFzaC9pbmRleC5qcz84MTk4Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5mdW5jdGlvbiBoYXNoKHN0cikge1xuICB2YXIgaGFzaCA9IDUzODEsXG4gICAgICBpICAgID0gc3RyLmxlbmd0aDtcblxuICB3aGlsZShpKSB7XG4gICAgaGFzaCA9IChoYXNoICogMzMpIF4gc3RyLmNoYXJDb2RlQXQoLS1pKTtcbiAgfVxuXG4gIC8qIEphdmFTY3JpcHQgZG9lcyBiaXR3aXNlIG9wZXJhdGlvbnMgKGxpa2UgWE9SLCBhYm92ZSkgb24gMzItYml0IHNpZ25lZFxuICAgKiBpbnRlZ2Vycy4gU2luY2Ugd2Ugd2FudCB0aGUgcmVzdWx0cyB0byBiZSBhbHdheXMgcG9zaXRpdmUsIGNvbnZlcnQgdGhlXG4gICAqIHNpZ25lZCBpbnQgdG8gYW4gdW5zaWduZWQgYnkgZG9pbmcgYW4gdW5zaWduZWQgYml0c2hpZnQuICovXG4gIHJldHVybiBoYXNoID4+PiAwO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGhhc2g7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/string-hash/index.js\n"); + +/***/ }), + +/***/ "./node_modules/styled-jsx/dist/index.js": +/*!***********************************************!*\ + !*** ./node_modules/styled-jsx/dist/index.js ***! + \***********************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nexports.__esModule = true;\nexports.useStyleRegistry = exports.createStyleRegistry = exports.StyleRegistry = void 0;\n\nvar _stylesheetRegistry = __webpack_require__(/*! ./stylesheet-registry */ \"./node_modules/styled-jsx/dist/stylesheet-registry.js\");\n\nexports.StyleRegistry = _stylesheetRegistry.StyleRegistry;\nexports.createStyleRegistry = _stylesheetRegistry.createStyleRegistry;\nexports.useStyleRegistry = _stylesheetRegistry.useStyleRegistry;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3R5bGVkLWpzeC9kaXN0L2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLGtCQUFrQjtBQUNsQix3QkFBd0IsR0FBRywyQkFBMkIsR0FBRyxxQkFBcUI7O0FBRTlFLDBCQUEwQixtQkFBTyxDQUFDLG9GQUF1Qjs7QUFFekQscUJBQXFCO0FBQ3JCLDJCQUEyQjtBQUMzQix3QkFBd0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N0eWxlZC1qc3gvZGlzdC9pbmRleC5qcz9kYzJiIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy51c2VTdHlsZVJlZ2lzdHJ5ID0gZXhwb3J0cy5jcmVhdGVTdHlsZVJlZ2lzdHJ5ID0gZXhwb3J0cy5TdHlsZVJlZ2lzdHJ5ID0gdm9pZCAwO1xuXG52YXIgX3N0eWxlc2hlZXRSZWdpc3RyeSA9IHJlcXVpcmUoXCIuL3N0eWxlc2hlZXQtcmVnaXN0cnlcIik7XG5cbmV4cG9ydHMuU3R5bGVSZWdpc3RyeSA9IF9zdHlsZXNoZWV0UmVnaXN0cnkuU3R5bGVSZWdpc3RyeTtcbmV4cG9ydHMuY3JlYXRlU3R5bGVSZWdpc3RyeSA9IF9zdHlsZXNoZWV0UmVnaXN0cnkuY3JlYXRlU3R5bGVSZWdpc3RyeTtcbmV4cG9ydHMudXNlU3R5bGVSZWdpc3RyeSA9IF9zdHlsZXNoZWV0UmVnaXN0cnkudXNlU3R5bGVSZWdpc3RyeTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/styled-jsx/dist/index.js\n"); + +/***/ }), + +/***/ "./node_modules/styled-jsx/dist/lib/hash.js": +/*!**************************************************!*\ + !*** ./node_modules/styled-jsx/dist/lib/hash.js ***! + \**************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nexports.__esModule = true;\nexports.computeId = computeId;\nexports.computeSelector = computeSelector;\n\nvar _stringHash = _interopRequireDefault(__webpack_require__(/*! string-hash */ \"./node_modules/string-hash/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar sanitize = function sanitize(rule) {\n return rule.replace(/\\/style/gi, '\\\\/style');\n};\n\nvar cache = {};\n/**\n * computeId\n *\n * Compute and memoize a jsx id from a basedId and optionally props.\n */\n\nfunction computeId(baseId, props) {\n if (!props) {\n return \"jsx-\" + baseId;\n }\n\n var propsToString = String(props);\n var key = baseId + propsToString;\n\n if (!cache[key]) {\n cache[key] = \"jsx-\" + (0, _stringHash[\"default\"])(baseId + \"-\" + propsToString);\n }\n\n return cache[key];\n}\n/**\n * computeSelector\n *\n * Compute and memoize dynamic selectors.\n */\n\n\nfunction computeSelector(id, css) {\n var selectoPlaceholderRegexp = /__jsx-style-dynamic-selector/g; // Sanitize SSR-ed CSS.\n // Client side code doesn't need to be sanitized since we use\n // document.createTextNode (dev) and the CSSOM api sheet.insertRule (prod).\n\n if (typeof window === 'undefined') {\n css = sanitize(css);\n }\n\n var idcss = id + css;\n\n if (!cache[idcss]) {\n cache[idcss] = css.replace(selectoPlaceholderRegexp, id);\n }\n\n return cache[idcss];\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3R5bGVkLWpzeC9kaXN0L2xpYi9oYXNoLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLGtCQUFrQjtBQUNsQixpQkFBaUI7QUFDakIsdUJBQXVCOztBQUV2Qix5Q0FBeUMsbUJBQU8sQ0FBQyx3REFBYTs7QUFFOUQsdUNBQXVDLHVDQUF1Qzs7QUFFOUU7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQSxrRUFBa0U7QUFDbEU7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N0eWxlZC1qc3gvZGlzdC9saWIvaGFzaC5qcz8yM2Y4Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5jb21wdXRlSWQgPSBjb21wdXRlSWQ7XG5leHBvcnRzLmNvbXB1dGVTZWxlY3RvciA9IGNvbXB1dGVTZWxlY3RvcjtcblxudmFyIF9zdHJpbmdIYXNoID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwic3RyaW5nLWhhc2hcIikpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxudmFyIHNhbml0aXplID0gZnVuY3Rpb24gc2FuaXRpemUocnVsZSkge1xuICByZXR1cm4gcnVsZS5yZXBsYWNlKC9cXC9zdHlsZS9naSwgJ1xcXFwvc3R5bGUnKTtcbn07XG5cbnZhciBjYWNoZSA9IHt9O1xuLyoqXG4gKiBjb21wdXRlSWRcbiAqXG4gKiBDb21wdXRlIGFuZCBtZW1vaXplIGEganN4IGlkIGZyb20gYSBiYXNlZElkIGFuZCBvcHRpb25hbGx5IHByb3BzLlxuICovXG5cbmZ1bmN0aW9uIGNvbXB1dGVJZChiYXNlSWQsIHByb3BzKSB7XG4gIGlmICghcHJvcHMpIHtcbiAgICByZXR1cm4gXCJqc3gtXCIgKyBiYXNlSWQ7XG4gIH1cblxuICB2YXIgcHJvcHNUb1N0cmluZyA9IFN0cmluZyhwcm9wcyk7XG4gIHZhciBrZXkgPSBiYXNlSWQgKyBwcm9wc1RvU3RyaW5nO1xuXG4gIGlmICghY2FjaGVba2V5XSkge1xuICAgIGNhY2hlW2tleV0gPSBcImpzeC1cIiArICgwLCBfc3RyaW5nSGFzaFtcImRlZmF1bHRcIl0pKGJhc2VJZCArIFwiLVwiICsgcHJvcHNUb1N0cmluZyk7XG4gIH1cblxuICByZXR1cm4gY2FjaGVba2V5XTtcbn1cbi8qKlxuICogY29tcHV0ZVNlbGVjdG9yXG4gKlxuICogQ29tcHV0ZSBhbmQgbWVtb2l6ZSBkeW5hbWljIHNlbGVjdG9ycy5cbiAqL1xuXG5cbmZ1bmN0aW9uIGNvbXB1dGVTZWxlY3RvcihpZCwgY3NzKSB7XG4gIHZhciBzZWxlY3RvUGxhY2Vob2xkZXJSZWdleHAgPSAvX19qc3gtc3R5bGUtZHluYW1pYy1zZWxlY3Rvci9nOyAvLyBTYW5pdGl6ZSBTU1ItZWQgQ1NTLlxuICAvLyBDbGllbnQgc2lkZSBjb2RlIGRvZXNuJ3QgbmVlZCB0byBiZSBzYW5pdGl6ZWQgc2luY2Ugd2UgdXNlXG4gIC8vIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlIChkZXYpIGFuZCB0aGUgQ1NTT00gYXBpIHNoZWV0Lmluc2VydFJ1bGUgKHByb2QpLlxuXG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgIGNzcyA9IHNhbml0aXplKGNzcyk7XG4gIH1cblxuICB2YXIgaWRjc3MgPSBpZCArIGNzcztcblxuICBpZiAoIWNhY2hlW2lkY3NzXSkge1xuICAgIGNhY2hlW2lkY3NzXSA9IGNzcy5yZXBsYWNlKHNlbGVjdG9QbGFjZWhvbGRlclJlZ2V4cCwgaWQpO1xuICB9XG5cbiAgcmV0dXJuIGNhY2hlW2lkY3NzXTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/styled-jsx/dist/lib/hash.js\n"); + +/***/ }), + +/***/ "./node_modules/styled-jsx/dist/lib/stylesheet.js": +/*!********************************************************!*\ + !*** ./node_modules/styled-jsx/dist/lib/stylesheet.js ***! + \********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("/* provided dependency */ var process = __webpack_require__(/*! process */ \"./node_modules/process/browser.js\");\n\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/*\nBased on Glamor's sheet\nhttps://github.com/threepointone/glamor/blob/667b480d31b3721a905021b26e1290ce92ca2879/src/sheet.js\n*/\nvar isProd = typeof process !== 'undefined' && process.env && \"development\" === 'production';\n\nvar isString = function isString(o) {\n return Object.prototype.toString.call(o) === '[object String]';\n};\n\nvar StyleSheet = /*#__PURE__*/function () {\n function StyleSheet(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$name = _ref.name,\n name = _ref$name === void 0 ? 'stylesheet' : _ref$name,\n _ref$optimizeForSpeed = _ref.optimizeForSpeed,\n optimizeForSpeed = _ref$optimizeForSpeed === void 0 ? isProd : _ref$optimizeForSpeed,\n _ref$isBrowser = _ref.isBrowser,\n isBrowser = _ref$isBrowser === void 0 ? typeof window !== 'undefined' : _ref$isBrowser;\n\n invariant(isString(name), '`name` must be a string');\n this._name = name;\n this._deletedRulePlaceholder = \"#\" + name + \"-deleted-rule____{}\";\n invariant(typeof optimizeForSpeed === 'boolean', '`optimizeForSpeed` must be a boolean');\n this._optimizeForSpeed = optimizeForSpeed;\n this._isBrowser = isBrowser;\n this._serverSheet = undefined;\n this._tags = [];\n this._injected = false;\n this._rulesCount = 0;\n var node = this._isBrowser && document.querySelector('meta[property=\"csp-nonce\"]');\n this._nonce = node ? node.getAttribute('content') : null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.setOptimizeForSpeed = function setOptimizeForSpeed(bool) {\n invariant(typeof bool === 'boolean', '`setOptimizeForSpeed` accepts a boolean');\n invariant(this._rulesCount === 0, 'optimizeForSpeed cannot be when rules have already been inserted');\n this.flush();\n this._optimizeForSpeed = bool;\n this.inject();\n };\n\n _proto.isOptimizeForSpeed = function isOptimizeForSpeed() {\n return this._optimizeForSpeed;\n };\n\n _proto.inject = function inject() {\n var _this = this;\n\n invariant(!this._injected, 'sheet already injected');\n this._injected = true;\n\n if (this._isBrowser && this._optimizeForSpeed) {\n this._tags[0] = this.makeStyleTag(this._name);\n this._optimizeForSpeed = 'insertRule' in this.getSheet();\n\n if (!this._optimizeForSpeed) {\n if (!isProd) {\n console.warn('StyleSheet: optimizeForSpeed mode not supported falling back to standard mode.');\n }\n\n this.flush();\n this._injected = true;\n }\n\n return;\n }\n\n this._serverSheet = {\n cssRules: [],\n insertRule: function insertRule(rule, index) {\n if (typeof index === 'number') {\n _this._serverSheet.cssRules[index] = {\n cssText: rule\n };\n } else {\n _this._serverSheet.cssRules.push({\n cssText: rule\n });\n }\n\n return index;\n },\n deleteRule: function deleteRule(index) {\n _this._serverSheet.cssRules[index] = null;\n }\n };\n };\n\n _proto.getSheetForTag = function getSheetForTag(tag) {\n if (tag.sheet) {\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n return document.styleSheets[i];\n }\n }\n };\n\n _proto.getSheet = function getSheet() {\n return this.getSheetForTag(this._tags[this._tags.length - 1]);\n };\n\n _proto.insertRule = function insertRule(rule, index) {\n invariant(isString(rule), '`insertRule` accepts only strings');\n\n if (!this._isBrowser) {\n if (typeof index !== 'number') {\n index = this._serverSheet.cssRules.length;\n }\n\n this._serverSheet.insertRule(rule, index);\n\n return this._rulesCount++;\n }\n\n if (this._optimizeForSpeed) {\n var sheet = this.getSheet();\n\n if (typeof index !== 'number') {\n index = sheet.cssRules.length;\n } // this weirdness for perf, and chrome's weird bug\n // https://stackoverflow.com/questions/20007992/chrome-suddenly-stopped-accepting-insertrule\n\n\n try {\n sheet.insertRule(rule, index);\n } catch (error) {\n if (!isProd) {\n console.warn(\"StyleSheet: illegal rule: \\n\\n\" + rule + \"\\n\\nSee https://stackoverflow.com/q/20007992 for more info\");\n }\n\n return -1;\n }\n } else {\n var insertionPoint = this._tags[index];\n\n this._tags.push(this.makeStyleTag(this._name, rule, insertionPoint));\n }\n\n return this._rulesCount++;\n };\n\n _proto.replaceRule = function replaceRule(index, rule) {\n if (this._optimizeForSpeed || !this._isBrowser) {\n var sheet = this._isBrowser ? this.getSheet() : this._serverSheet;\n\n if (!rule.trim()) {\n rule = this._deletedRulePlaceholder;\n }\n\n if (!sheet.cssRules[index]) {\n // @TBD Should we throw an error?\n return index;\n }\n\n sheet.deleteRule(index);\n\n try {\n sheet.insertRule(rule, index);\n } catch (error) {\n if (!isProd) {\n console.warn(\"StyleSheet: illegal rule: \\n\\n\" + rule + \"\\n\\nSee https://stackoverflow.com/q/20007992 for more info\");\n } // In order to preserve the indices we insert a deleteRulePlaceholder\n\n\n sheet.insertRule(this._deletedRulePlaceholder, index);\n }\n } else {\n var tag = this._tags[index];\n invariant(tag, \"old rule at index `\" + index + \"` not found\");\n tag.textContent = rule;\n }\n\n return index;\n };\n\n _proto.deleteRule = function deleteRule(index) {\n if (!this._isBrowser) {\n this._serverSheet.deleteRule(index);\n\n return;\n }\n\n if (this._optimizeForSpeed) {\n this.replaceRule(index, '');\n } else {\n var tag = this._tags[index];\n invariant(tag, \"rule at index `\" + index + \"` not found\");\n tag.parentNode.removeChild(tag);\n this._tags[index] = null;\n }\n };\n\n _proto.flush = function flush() {\n this._injected = false;\n this._rulesCount = 0;\n\n if (this._isBrowser) {\n this._tags.forEach(function (tag) {\n return tag && tag.parentNode.removeChild(tag);\n });\n\n this._tags = [];\n } else {\n // simpler on server\n this._serverSheet.cssRules = [];\n }\n };\n\n _proto.cssRules = function cssRules() {\n var _this2 = this;\n\n if (!this._isBrowser) {\n return this._serverSheet.cssRules;\n }\n\n return this._tags.reduce(function (rules, tag) {\n if (tag) {\n rules = rules.concat(Array.prototype.map.call(_this2.getSheetForTag(tag).cssRules, function (rule) {\n return rule.cssText === _this2._deletedRulePlaceholder ? null : rule;\n }));\n } else {\n rules.push(null);\n }\n\n return rules;\n }, []);\n };\n\n _proto.makeStyleTag = function makeStyleTag(name, cssString, relativeToTag) {\n if (cssString) {\n invariant(isString(cssString), 'makeStyleTag acceps only strings as second parameter');\n }\n\n var tag = document.createElement('style');\n if (this._nonce) tag.setAttribute('nonce', this._nonce);\n tag.type = 'text/css';\n tag.setAttribute(\"data-\" + name, '');\n\n if (cssString) {\n tag.appendChild(document.createTextNode(cssString));\n }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n\n if (relativeToTag) {\n head.insertBefore(tag, relativeToTag);\n } else {\n head.appendChild(tag);\n }\n\n return tag;\n };\n\n _createClass(StyleSheet, [{\n key: \"length\",\n get: function get() {\n return this._rulesCount;\n }\n }]);\n\n return StyleSheet;\n}();\n\nexports[\"default\"] = StyleSheet;\n\nfunction invariant(condition, message) {\n if (!condition) {\n throw new Error(\"StyleSheet: \" + message + \".\");\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3R5bGVkLWpzeC9kaXN0L2xpYi9zdHlsZXNoZWV0LmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7QUFFYixrQkFBa0I7QUFDbEIsa0JBQWtCOztBQUVsQiw0Q0FBNEMsZ0JBQWdCLGtCQUFrQixPQUFPLDJCQUEyQix3REFBd0QsZ0NBQWdDLHVEQUF1RDs7QUFFL1AsOERBQThELHNFQUFzRSw4REFBOEQ7O0FBRWxNO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLE9BQU8sb0JBQW9CLE9BQU8sUUFBUSxhQUFvQjs7QUFFbEY7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxxQ0FBcUM7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxvRUFBb0U7QUFDcEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLFdBQVc7QUFDWDs7QUFFQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07OztBQUdOLG9CQUFvQixpQ0FBaUM7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjs7O0FBR0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxVQUFVOzs7QUFHVjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE9BQU87O0FBRVA7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsUUFBUTtBQUNSO0FBQ0E7O0FBRUE7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0EsQ0FBQzs7QUFFRCxrQkFBa0I7O0FBRWxCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N0eWxlZC1qc3gvZGlzdC9saWIvc3R5bGVzaGVldC5qcz8xODZhIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH1cblxuZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH1cblxuLypcbkJhc2VkIG9uIEdsYW1vcidzIHNoZWV0XG5odHRwczovL2dpdGh1Yi5jb20vdGhyZWVwb2ludG9uZS9nbGFtb3IvYmxvYi82NjdiNDgwZDMxYjM3MjFhOTA1MDIxYjI2ZTEyOTBjZTkyY2EyODc5L3NyYy9zaGVldC5qc1xuKi9cbnZhciBpc1Byb2QgPSB0eXBlb2YgcHJvY2VzcyAhPT0gJ3VuZGVmaW5lZCcgJiYgcHJvY2Vzcy5lbnYgJiYgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJztcblxudmFyIGlzU3RyaW5nID0gZnVuY3Rpb24gaXNTdHJpbmcobykge1xuICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pID09PSAnW29iamVjdCBTdHJpbmddJztcbn07XG5cbnZhciBTdHlsZVNoZWV0ID0gLyojX19QVVJFX18qL2Z1bmN0aW9uICgpIHtcbiAgZnVuY3Rpb24gU3R5bGVTaGVldChfdGVtcCkge1xuICAgIHZhciBfcmVmID0gX3RlbXAgPT09IHZvaWQgMCA/IHt9IDogX3RlbXAsXG4gICAgICAgIF9yZWYkbmFtZSA9IF9yZWYubmFtZSxcbiAgICAgICAgbmFtZSA9IF9yZWYkbmFtZSA9PT0gdm9pZCAwID8gJ3N0eWxlc2hlZXQnIDogX3JlZiRuYW1lLFxuICAgICAgICBfcmVmJG9wdGltaXplRm9yU3BlZWQgPSBfcmVmLm9wdGltaXplRm9yU3BlZWQsXG4gICAgICAgIG9wdGltaXplRm9yU3BlZWQgPSBfcmVmJG9wdGltaXplRm9yU3BlZWQgPT09IHZvaWQgMCA/IGlzUHJvZCA6IF9yZWYkb3B0aW1pemVGb3JTcGVlZCxcbiAgICAgICAgX3JlZiRpc0Jyb3dzZXIgPSBfcmVmLmlzQnJvd3NlcixcbiAgICAgICAgaXNCcm93c2VyID0gX3JlZiRpc0Jyb3dzZXIgPT09IHZvaWQgMCA/IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnIDogX3JlZiRpc0Jyb3dzZXI7XG5cbiAgICBpbnZhcmlhbnQoaXNTdHJpbmcobmFtZSksICdgbmFtZWAgbXVzdCBiZSBhIHN0cmluZycpO1xuICAgIHRoaXMuX25hbWUgPSBuYW1lO1xuICAgIHRoaXMuX2RlbGV0ZWRSdWxlUGxhY2Vob2xkZXIgPSBcIiNcIiArIG5hbWUgKyBcIi1kZWxldGVkLXJ1bGVfX19fe31cIjtcbiAgICBpbnZhcmlhbnQodHlwZW9mIG9wdGltaXplRm9yU3BlZWQgPT09ICdib29sZWFuJywgJ2BvcHRpbWl6ZUZvclNwZWVkYCBtdXN0IGJlIGEgYm9vbGVhbicpO1xuICAgIHRoaXMuX29wdGltaXplRm9yU3BlZWQgPSBvcHRpbWl6ZUZvclNwZWVkO1xuICAgIHRoaXMuX2lzQnJvd3NlciA9IGlzQnJvd3NlcjtcbiAgICB0aGlzLl9zZXJ2ZXJTaGVldCA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLl90YWdzID0gW107XG4gICAgdGhpcy5faW5qZWN0ZWQgPSBmYWxzZTtcbiAgICB0aGlzLl9ydWxlc0NvdW50ID0gMDtcbiAgICB2YXIgbm9kZSA9IHRoaXMuX2lzQnJvd3NlciAmJiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdtZXRhW3Byb3BlcnR5PVwiY3NwLW5vbmNlXCJdJyk7XG4gICAgdGhpcy5fbm9uY2UgPSBub2RlID8gbm9kZS5nZXRBdHRyaWJ1dGUoJ2NvbnRlbnQnKSA6IG51bGw7XG4gIH1cblxuICB2YXIgX3Byb3RvID0gU3R5bGVTaGVldC5wcm90b3R5cGU7XG5cbiAgX3Byb3RvLnNldE9wdGltaXplRm9yU3BlZWQgPSBmdW5jdGlvbiBzZXRPcHRpbWl6ZUZvclNwZWVkKGJvb2wpIHtcbiAgICBpbnZhcmlhbnQodHlwZW9mIGJvb2wgPT09ICdib29sZWFuJywgJ2BzZXRPcHRpbWl6ZUZvclNwZWVkYCBhY2NlcHRzIGEgYm9vbGVhbicpO1xuICAgIGludmFyaWFudCh0aGlzLl9ydWxlc0NvdW50ID09PSAwLCAnb3B0aW1pemVGb3JTcGVlZCBjYW5ub3QgYmUgd2hlbiBydWxlcyBoYXZlIGFscmVhZHkgYmVlbiBpbnNlcnRlZCcpO1xuICAgIHRoaXMuZmx1c2goKTtcbiAgICB0aGlzLl9vcHRpbWl6ZUZvclNwZWVkID0gYm9vbDtcbiAgICB0aGlzLmluamVjdCgpO1xuICB9O1xuXG4gIF9wcm90by5pc09wdGltaXplRm9yU3BlZWQgPSBmdW5jdGlvbiBpc09wdGltaXplRm9yU3BlZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX29wdGltaXplRm9yU3BlZWQ7XG4gIH07XG5cbiAgX3Byb3RvLmluamVjdCA9IGZ1bmN0aW9uIGluamVjdCgpIHtcbiAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgaW52YXJpYW50KCF0aGlzLl9pbmplY3RlZCwgJ3NoZWV0IGFscmVhZHkgaW5qZWN0ZWQnKTtcbiAgICB0aGlzLl9pbmplY3RlZCA9IHRydWU7XG5cbiAgICBpZiAodGhpcy5faXNCcm93c2VyICYmIHRoaXMuX29wdGltaXplRm9yU3BlZWQpIHtcbiAgICAgIHRoaXMuX3RhZ3NbMF0gPSB0aGlzLm1ha2VTdHlsZVRhZyh0aGlzLl9uYW1lKTtcbiAgICAgIHRoaXMuX29wdGltaXplRm9yU3BlZWQgPSAnaW5zZXJ0UnVsZScgaW4gdGhpcy5nZXRTaGVldCgpO1xuXG4gICAgICBpZiAoIXRoaXMuX29wdGltaXplRm9yU3BlZWQpIHtcbiAgICAgICAgaWYgKCFpc1Byb2QpIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oJ1N0eWxlU2hlZXQ6IG9wdGltaXplRm9yU3BlZWQgbW9kZSBub3Qgc3VwcG9ydGVkIGZhbGxpbmcgYmFjayB0byBzdGFuZGFyZCBtb2RlLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5mbHVzaCgpO1xuICAgICAgICB0aGlzLl9pbmplY3RlZCA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9zZXJ2ZXJTaGVldCA9IHtcbiAgICAgIGNzc1J1bGVzOiBbXSxcbiAgICAgIGluc2VydFJ1bGU6IGZ1bmN0aW9uIGluc2VydFJ1bGUocnVsZSwgaW5kZXgpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBpbmRleCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICBfdGhpcy5fc2VydmVyU2hlZXQuY3NzUnVsZXNbaW5kZXhdID0ge1xuICAgICAgICAgICAgY3NzVGV4dDogcnVsZVxuICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgX3RoaXMuX3NlcnZlclNoZWV0LmNzc1J1bGVzLnB1c2goe1xuICAgICAgICAgICAgY3NzVGV4dDogcnVsZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgICAgfSxcbiAgICAgIGRlbGV0ZVJ1bGU6IGZ1bmN0aW9uIGRlbGV0ZVJ1bGUoaW5kZXgpIHtcbiAgICAgICAgX3RoaXMuX3NlcnZlclNoZWV0LmNzc1J1bGVzW2luZGV4XSA9IG51bGw7XG4gICAgICB9XG4gICAgfTtcbiAgfTtcblxuICBfcHJvdG8uZ2V0U2hlZXRGb3JUYWcgPSBmdW5jdGlvbiBnZXRTaGVldEZvclRhZyh0YWcpIHtcbiAgICBpZiAodGFnLnNoZWV0KSB7XG4gICAgICByZXR1cm4gdGFnLnNoZWV0O1xuICAgIH0gLy8gdGhpcyB3ZWlyZG5lc3MgYnJvdWdodCB0byB5b3UgYnkgZmlyZWZveFxuXG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRvY3VtZW50LnN0eWxlU2hlZXRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoZG9jdW1lbnQuc3R5bGVTaGVldHNbaV0ub3duZXJOb2RlID09PSB0YWcpIHtcbiAgICAgICAgcmV0dXJuIGRvY3VtZW50LnN0eWxlU2hlZXRzW2ldO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICBfcHJvdG8uZ2V0U2hlZXQgPSBmdW5jdGlvbiBnZXRTaGVldCgpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRTaGVldEZvclRhZyh0aGlzLl90YWdzW3RoaXMuX3RhZ3MubGVuZ3RoIC0gMV0pO1xuICB9O1xuXG4gIF9wcm90by5pbnNlcnRSdWxlID0gZnVuY3Rpb24gaW5zZXJ0UnVsZShydWxlLCBpbmRleCkge1xuICAgIGludmFyaWFudChpc1N0cmluZyhydWxlKSwgJ2BpbnNlcnRSdWxlYCBhY2NlcHRzIG9ubHkgc3RyaW5ncycpO1xuXG4gICAgaWYgKCF0aGlzLl9pc0Jyb3dzZXIpIHtcbiAgICAgIGlmICh0eXBlb2YgaW5kZXggIT09ICdudW1iZXInKSB7XG4gICAgICAgIGluZGV4ID0gdGhpcy5fc2VydmVyU2hlZXQuY3NzUnVsZXMubGVuZ3RoO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9zZXJ2ZXJTaGVldC5pbnNlcnRSdWxlKHJ1bGUsIGluZGV4KTtcblxuICAgICAgcmV0dXJuIHRoaXMuX3J1bGVzQ291bnQrKztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fb3B0aW1pemVGb3JTcGVlZCkge1xuICAgICAgdmFyIHNoZWV0ID0gdGhpcy5nZXRTaGVldCgpO1xuXG4gICAgICBpZiAodHlwZW9mIGluZGV4ICE9PSAnbnVtYmVyJykge1xuICAgICAgICBpbmRleCA9IHNoZWV0LmNzc1J1bGVzLmxlbmd0aDtcbiAgICAgIH0gLy8gdGhpcyB3ZWlyZG5lc3MgZm9yIHBlcmYsIGFuZCBjaHJvbWUncyB3ZWlyZCBidWdcbiAgICAgIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzIwMDA3OTkyL2Nocm9tZS1zdWRkZW5seS1zdG9wcGVkLWFjY2VwdGluZy1pbnNlcnRydWxlXG5cblxuICAgICAgdHJ5IHtcbiAgICAgICAgc2hlZXQuaW5zZXJ0UnVsZShydWxlLCBpbmRleCk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBpZiAoIWlzUHJvZCkge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcIlN0eWxlU2hlZXQ6IGlsbGVnYWwgcnVsZTogXFxuXFxuXCIgKyBydWxlICsgXCJcXG5cXG5TZWUgaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xLzIwMDA3OTkyIGZvciBtb3JlIGluZm9cIik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gLTE7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBpbnNlcnRpb25Qb2ludCA9IHRoaXMuX3RhZ3NbaW5kZXhdO1xuXG4gICAgICB0aGlzLl90YWdzLnB1c2godGhpcy5tYWtlU3R5bGVUYWcodGhpcy5fbmFtZSwgcnVsZSwgaW5zZXJ0aW9uUG9pbnQpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fcnVsZXNDb3VudCsrO1xuICB9O1xuXG4gIF9wcm90by5yZXBsYWNlUnVsZSA9IGZ1bmN0aW9uIHJlcGxhY2VSdWxlKGluZGV4LCBydWxlKSB7XG4gICAgaWYgKHRoaXMuX29wdGltaXplRm9yU3BlZWQgfHwgIXRoaXMuX2lzQnJvd3Nlcikge1xuICAgICAgdmFyIHNoZWV0ID0gdGhpcy5faXNCcm93c2VyID8gdGhpcy5nZXRTaGVldCgpIDogdGhpcy5fc2VydmVyU2hlZXQ7XG5cbiAgICAgIGlmICghcnVsZS50cmltKCkpIHtcbiAgICAgICAgcnVsZSA9IHRoaXMuX2RlbGV0ZWRSdWxlUGxhY2Vob2xkZXI7XG4gICAgICB9XG5cbiAgICAgIGlmICghc2hlZXQuY3NzUnVsZXNbaW5kZXhdKSB7XG4gICAgICAgIC8vIEBUQkQgU2hvdWxkIHdlIHRocm93IGFuIGVycm9yP1xuICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgICB9XG5cbiAgICAgIHNoZWV0LmRlbGV0ZVJ1bGUoaW5kZXgpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBzaGVldC5pbnNlcnRSdWxlKHJ1bGUsIGluZGV4KTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGlmICghaXNQcm9kKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFwiU3R5bGVTaGVldDogaWxsZWdhbCBydWxlOiBcXG5cXG5cIiArIHJ1bGUgKyBcIlxcblxcblNlZSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3EvMjAwMDc5OTIgZm9yIG1vcmUgaW5mb1wiKTtcbiAgICAgICAgfSAvLyBJbiBvcmRlciB0byBwcmVzZXJ2ZSB0aGUgaW5kaWNlcyB3ZSBpbnNlcnQgYSBkZWxldGVSdWxlUGxhY2Vob2xkZXJcblxuXG4gICAgICAgIHNoZWV0Lmluc2VydFJ1bGUodGhpcy5fZGVsZXRlZFJ1bGVQbGFjZWhvbGRlciwgaW5kZXgpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgdGFnID0gdGhpcy5fdGFnc1tpbmRleF07XG4gICAgICBpbnZhcmlhbnQodGFnLCBcIm9sZCBydWxlIGF0IGluZGV4IGBcIiArIGluZGV4ICsgXCJgIG5vdCBmb3VuZFwiKTtcbiAgICAgIHRhZy50ZXh0Q29udGVudCA9IHJ1bGU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGluZGV4O1xuICB9O1xuXG4gIF9wcm90by5kZWxldGVSdWxlID0gZnVuY3Rpb24gZGVsZXRlUnVsZShpbmRleCkge1xuICAgIGlmICghdGhpcy5faXNCcm93c2VyKSB7XG4gICAgICB0aGlzLl9zZXJ2ZXJTaGVldC5kZWxldGVSdWxlKGluZGV4KTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9vcHRpbWl6ZUZvclNwZWVkKSB7XG4gICAgICB0aGlzLnJlcGxhY2VSdWxlKGluZGV4LCAnJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciB0YWcgPSB0aGlzLl90YWdzW2luZGV4XTtcbiAgICAgIGludmFyaWFudCh0YWcsIFwicnVsZSBhdCBpbmRleCBgXCIgKyBpbmRleCArIFwiYCBub3QgZm91bmRcIik7XG4gICAgICB0YWcucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0YWcpO1xuICAgICAgdGhpcy5fdGFnc1tpbmRleF0gPSBudWxsO1xuICAgIH1cbiAgfTtcblxuICBfcHJvdG8uZmx1c2ggPSBmdW5jdGlvbiBmbHVzaCgpIHtcbiAgICB0aGlzLl9pbmplY3RlZCA9IGZhbHNlO1xuICAgIHRoaXMuX3J1bGVzQ291bnQgPSAwO1xuXG4gICAgaWYgKHRoaXMuX2lzQnJvd3Nlcikge1xuICAgICAgdGhpcy5fdGFncy5mb3JFYWNoKGZ1bmN0aW9uICh0YWcpIHtcbiAgICAgICAgcmV0dXJuIHRhZyAmJiB0YWcucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0YWcpO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuX3RhZ3MgPSBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gc2ltcGxlciBvbiBzZXJ2ZXJcbiAgICAgIHRoaXMuX3NlcnZlclNoZWV0LmNzc1J1bGVzID0gW107XG4gICAgfVxuICB9O1xuXG4gIF9wcm90by5jc3NSdWxlcyA9IGZ1bmN0aW9uIGNzc1J1bGVzKCkge1xuICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgaWYgKCF0aGlzLl9pc0Jyb3dzZXIpIHtcbiAgICAgIHJldHVybiB0aGlzLl9zZXJ2ZXJTaGVldC5jc3NSdWxlcztcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fdGFncy5yZWR1Y2UoZnVuY3Rpb24gKHJ1bGVzLCB0YWcpIHtcbiAgICAgIGlmICh0YWcpIHtcbiAgICAgICAgcnVsZXMgPSBydWxlcy5jb25jYXQoQXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKF90aGlzMi5nZXRTaGVldEZvclRhZyh0YWcpLmNzc1J1bGVzLCBmdW5jdGlvbiAocnVsZSkge1xuICAgICAgICAgIHJldHVybiBydWxlLmNzc1RleHQgPT09IF90aGlzMi5fZGVsZXRlZFJ1bGVQbGFjZWhvbGRlciA/IG51bGwgOiBydWxlO1xuICAgICAgICB9KSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBydWxlcy5wdXNoKG51bGwpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcnVsZXM7XG4gICAgfSwgW10pO1xuICB9O1xuXG4gIF9wcm90by5tYWtlU3R5bGVUYWcgPSBmdW5jdGlvbiBtYWtlU3R5bGVUYWcobmFtZSwgY3NzU3RyaW5nLCByZWxhdGl2ZVRvVGFnKSB7XG4gICAgaWYgKGNzc1N0cmluZykge1xuICAgICAgaW52YXJpYW50KGlzU3RyaW5nKGNzc1N0cmluZyksICdtYWtlU3R5bGVUYWcgYWNjZXBzIG9ubHkgc3RyaW5ncyBhcyBzZWNvbmQgcGFyYW1ldGVyJyk7XG4gICAgfVxuXG4gICAgdmFyIHRhZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gICAgaWYgKHRoaXMuX25vbmNlKSB0YWcuc2V0QXR0cmlidXRlKCdub25jZScsIHRoaXMuX25vbmNlKTtcbiAgICB0YWcudHlwZSA9ICd0ZXh0L2Nzcyc7XG4gICAgdGFnLnNldEF0dHJpYnV0ZShcImRhdGEtXCIgKyBuYW1lLCAnJyk7XG5cbiAgICBpZiAoY3NzU3RyaW5nKSB7XG4gICAgICB0YWcuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzU3RyaW5nKSk7XG4gICAgfVxuXG4gICAgdmFyIGhlYWQgPSBkb2N1bWVudC5oZWFkIHx8IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF07XG5cbiAgICBpZiAocmVsYXRpdmVUb1RhZykge1xuICAgICAgaGVhZC5pbnNlcnRCZWZvcmUodGFnLCByZWxhdGl2ZVRvVGFnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaGVhZC5hcHBlbmRDaGlsZCh0YWcpO1xuICAgIH1cblxuICAgIHJldHVybiB0YWc7XG4gIH07XG5cbiAgX2NyZWF0ZUNsYXNzKFN0eWxlU2hlZXQsIFt7XG4gICAga2V5OiBcImxlbmd0aFwiLFxuICAgIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgICAgcmV0dXJuIHRoaXMuX3J1bGVzQ291bnQ7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIFN0eWxlU2hlZXQ7XG59KCk7XG5cbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gU3R5bGVTaGVldDtcblxuZnVuY3Rpb24gaW52YXJpYW50KGNvbmRpdGlvbiwgbWVzc2FnZSkge1xuICBpZiAoIWNvbmRpdGlvbikge1xuICAgIHRocm93IG5ldyBFcnJvcihcIlN0eWxlU2hlZXQ6IFwiICsgbWVzc2FnZSArIFwiLlwiKTtcbiAgfVxufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/styled-jsx/dist/lib/stylesheet.js\n"); + +/***/ }), + +/***/ "./node_modules/styled-jsx/dist/stylesheet-registry.js": +/*!*************************************************************!*\ + !*** ./node_modules/styled-jsx/dist/stylesheet-registry.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nexports.__esModule = true;\nexports.createStyleRegistry = createStyleRegistry;\nexports.StyleRegistry = StyleRegistry;\nexports.useStyleRegistry = useStyleRegistry;\nexports.StyleSheetContext = exports.StyleSheetRegistry = void 0;\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _stylesheet = _interopRequireDefault(__webpack_require__(/*! ./lib/stylesheet */ \"./node_modules/styled-jsx/dist/lib/stylesheet.js\"));\n\nvar _hash = __webpack_require__(/*! ./lib/hash */ \"./node_modules/styled-jsx/dist/lib/hash.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction mapRulesToStyle(cssRules, options) {\n if (options === void 0) {\n options = {};\n }\n\n return cssRules.map(function (args) {\n var id = args[0];\n var css = args[1];\n return _react[\"default\"].createElement('style', {\n id: \"__\" + id,\n // Avoid warnings upon render with a key\n key: \"__\" + id,\n nonce: options.nonce ? options.nonce : undefined,\n dangerouslySetInnerHTML: {\n __html: css\n }\n });\n });\n}\n\nvar StyleSheetRegistry = /*#__PURE__*/function () {\n function StyleSheetRegistry(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$styleSheet = _ref.styleSheet,\n styleSheet = _ref$styleSheet === void 0 ? null : _ref$styleSheet,\n _ref$optimizeForSpeed = _ref.optimizeForSpeed,\n optimizeForSpeed = _ref$optimizeForSpeed === void 0 ? false : _ref$optimizeForSpeed,\n _ref$isBrowser = _ref.isBrowser,\n isBrowser = _ref$isBrowser === void 0 ? typeof window !== 'undefined' : _ref$isBrowser;\n\n this._sheet = styleSheet || new _stylesheet[\"default\"]({\n name: 'styled-jsx',\n optimizeForSpeed: optimizeForSpeed\n });\n\n this._sheet.inject();\n\n if (styleSheet && typeof optimizeForSpeed === 'boolean') {\n this._sheet.setOptimizeForSpeed(optimizeForSpeed);\n\n this._optimizeForSpeed = this._sheet.isOptimizeForSpeed();\n }\n\n this._isBrowser = isBrowser;\n this._fromServer = undefined;\n this._indices = {};\n this._instancesCounts = {};\n }\n\n var _proto = StyleSheetRegistry.prototype;\n\n _proto.add = function add(props) {\n var _this = this;\n\n if (undefined === this._optimizeForSpeed) {\n this._optimizeForSpeed = Array.isArray(props.children);\n\n this._sheet.setOptimizeForSpeed(this._optimizeForSpeed);\n\n this._optimizeForSpeed = this._sheet.isOptimizeForSpeed();\n }\n\n if (this._isBrowser && !this._fromServer) {\n this._fromServer = this.selectFromServer();\n this._instancesCounts = Object.keys(this._fromServer).reduce(function (acc, tagName) {\n acc[tagName] = 0;\n return acc;\n }, {});\n }\n\n var _this$getIdAndRules = this.getIdAndRules(props),\n styleId = _this$getIdAndRules.styleId,\n rules = _this$getIdAndRules.rules; // Deduping: just increase the instances count.\n\n\n if (styleId in this._instancesCounts) {\n this._instancesCounts[styleId] += 1;\n return;\n }\n\n var indices = rules.map(function (rule) {\n return _this._sheet.insertRule(rule);\n }) // Filter out invalid rules\n .filter(function (index) {\n return index !== -1;\n });\n this._indices[styleId] = indices;\n this._instancesCounts[styleId] = 1;\n };\n\n _proto.remove = function remove(props) {\n var _this2 = this;\n\n var _this$getIdAndRules2 = this.getIdAndRules(props),\n styleId = _this$getIdAndRules2.styleId;\n\n invariant(styleId in this._instancesCounts, \"styleId: `\" + styleId + \"` not found\");\n this._instancesCounts[styleId] -= 1;\n\n if (this._instancesCounts[styleId] < 1) {\n var tagFromServer = this._fromServer && this._fromServer[styleId];\n\n if (tagFromServer) {\n tagFromServer.parentNode.removeChild(tagFromServer);\n delete this._fromServer[styleId];\n } else {\n this._indices[styleId].forEach(function (index) {\n return _this2._sheet.deleteRule(index);\n });\n\n delete this._indices[styleId];\n }\n\n delete this._instancesCounts[styleId];\n }\n };\n\n _proto.update = function update(props, nextProps) {\n this.add(nextProps);\n this.remove(props);\n };\n\n _proto.flush = function flush() {\n this._sheet.flush();\n\n this._sheet.inject();\n\n this._fromServer = undefined;\n this._indices = {};\n this._instancesCounts = {};\n };\n\n _proto.cssRules = function cssRules() {\n var _this3 = this;\n\n var fromServer = this._fromServer ? Object.keys(this._fromServer).map(function (styleId) {\n return [styleId, _this3._fromServer[styleId]];\n }) : [];\n\n var cssRules = this._sheet.cssRules();\n\n return fromServer.concat(Object.keys(this._indices).map(function (styleId) {\n return [styleId, _this3._indices[styleId].map(function (index) {\n return cssRules[index].cssText;\n }).join(_this3._optimizeForSpeed ? '' : '\\n')];\n }) // filter out empty rules\n .filter(function (rule) {\n return Boolean(rule[1]);\n }));\n };\n\n _proto.styles = function styles(options) {\n return mapRulesToStyle(this.cssRules(), options);\n };\n\n _proto.getIdAndRules = function getIdAndRules(props) {\n var css = props.children,\n dynamic = props.dynamic,\n id = props.id;\n\n if (dynamic) {\n var styleId = (0, _hash.computeId)(id, dynamic);\n return {\n styleId: styleId,\n rules: Array.isArray(css) ? css.map(function (rule) {\n return (0, _hash.computeSelector)(styleId, rule);\n }) : [(0, _hash.computeSelector)(styleId, css)]\n };\n }\n\n return {\n styleId: (0, _hash.computeId)(id),\n rules: Array.isArray(css) ? css : [css]\n };\n }\n /**\n * selectFromServer\n *\n * Collects style tags from the document with id __jsx-XXX\n */\n ;\n\n _proto.selectFromServer = function selectFromServer() {\n var elements = Array.prototype.slice.call(document.querySelectorAll('[id^=\"__jsx-\"]'));\n return elements.reduce(function (acc, element) {\n var id = element.id.slice(2);\n acc[id] = element;\n return acc;\n }, {});\n };\n\n return StyleSheetRegistry;\n}();\n\nexports.StyleSheetRegistry = StyleSheetRegistry;\n\nfunction invariant(condition, message) {\n if (!condition) {\n throw new Error(\"StyleSheetRegistry: \" + message + \".\");\n }\n}\n\nvar StyleSheetContext = (0, _react.createContext)(null);\nexports.StyleSheetContext = StyleSheetContext;\n\nfunction createStyleRegistry() {\n return new StyleSheetRegistry();\n}\n\nfunction StyleRegistry(_ref2) {\n var configuredRegistry = _ref2.registry,\n children = _ref2.children;\n var rootRegistry = (0, _react.useContext)(StyleSheetContext);\n\n var _useState = (0, _react.useState)(function () {\n return rootRegistry || configuredRegistry || createStyleRegistry();\n }),\n registry = _useState[0];\n\n return _react[\"default\"].createElement(StyleSheetContext.Provider, {\n value: registry\n }, children);\n}\n\nfunction useStyleRegistry() {\n return (0, _react.useContext)(StyleSheetContext);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3R5bGVkLWpzeC9kaXN0L3N0eWxlc2hlZXQtcmVnaXN0cnkuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsa0JBQWtCO0FBQ2xCLDJCQUEyQjtBQUMzQixxQkFBcUI7QUFDckIsd0JBQXdCO0FBQ3hCLHlCQUF5QixHQUFHLDBCQUEwQjs7QUFFdEQscUNBQXFDLG1CQUFPLENBQUMsNENBQU87O0FBRXBELHlDQUF5QyxtQkFBTyxDQUFDLDBFQUFrQjs7QUFFbkUsWUFBWSxtQkFBTyxDQUFDLDhEQUFZOztBQUVoQyx1Q0FBdUMsdUNBQXVDOztBQUU5RSxzQ0FBc0MsZ0RBQWdELDJCQUEyQixpRUFBaUUsaUJBQWlCOztBQUVuTSx3Q0FBd0MsNkJBQTZCLGNBQWMsNEVBQTRFLFNBQVMsb0JBQW9CLHdDQUF3QywrQkFBK0IseUJBQXlCLGlCQUFpQixzRkFBc0YsdUJBQXVCLHNEQUFzRCxxRkFBcUYsc0NBQXNDLDRDQUE0QyxPQUFPLDhCQUE4Qix5QkFBeUIsYUFBYSwwQkFBMEI7O0FBRTV0QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0EscUNBQXFDO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLElBQUk7QUFDWDs7QUFFQTtBQUNBO0FBQ0EsMkNBQTJDOzs7QUFHM0M7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsU0FBUzs7QUFFVDtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEtBQUs7O0FBRUw7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUssSUFBSTtBQUNUOztBQUVBO0FBQ0EsQ0FBQzs7QUFFRCwwQkFBMEI7O0FBRTFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSx5QkFBeUI7O0FBRXpCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zdHlsZWQtanN4L2Rpc3Qvc3R5bGVzaGVldC1yZWdpc3RyeS5qcz81ODBhIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5jcmVhdGVTdHlsZVJlZ2lzdHJ5ID0gY3JlYXRlU3R5bGVSZWdpc3RyeTtcbmV4cG9ydHMuU3R5bGVSZWdpc3RyeSA9IFN0eWxlUmVnaXN0cnk7XG5leHBvcnRzLnVzZVN0eWxlUmVnaXN0cnkgPSB1c2VTdHlsZVJlZ2lzdHJ5O1xuZXhwb3J0cy5TdHlsZVNoZWV0Q29udGV4dCA9IGV4cG9ydHMuU3R5bGVTaGVldFJlZ2lzdHJ5ID0gdm9pZCAwO1xuXG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcblxudmFyIF9zdHlsZXNoZWV0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9saWIvc3R5bGVzaGVldFwiKSk7XG5cbnZhciBfaGFzaCA9IHJlcXVpcmUoXCIuL2xpYi9oYXNoXCIpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7IHZhciBjYWNoZSA9IG5ldyBXZWFrTWFwKCk7IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgcmV0dXJuIGNhY2hlOyB9OyByZXR1cm4gY2FjaGU7IH1cblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7IGlmIChvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHsgcmV0dXJuIG9iajsgfSBpZiAob2JqID09PSBudWxsIHx8IHR5cGVvZiBvYmogIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7IHJldHVybiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfSB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKTsgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7IHJldHVybiBjYWNoZS5nZXQob2JqKTsgfSB2YXIgbmV3T2JqID0ge307IHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjsgZm9yICh2YXIga2V5IGluIG9iaikgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkgeyB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDsgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpOyB9IGVsc2UgeyBuZXdPYmpba2V5XSA9IG9ialtrZXldOyB9IH0gfSBuZXdPYmpbXCJkZWZhdWx0XCJdID0gb2JqOyBpZiAoY2FjaGUpIHsgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTsgfSByZXR1cm4gbmV3T2JqOyB9XG5cbmZ1bmN0aW9uIG1hcFJ1bGVzVG9TdHlsZShjc3NSdWxlcywgb3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG5cbiAgcmV0dXJuIGNzc1J1bGVzLm1hcChmdW5jdGlvbiAoYXJncykge1xuICAgIHZhciBpZCA9IGFyZ3NbMF07XG4gICAgdmFyIGNzcyA9IGFyZ3NbMV07XG4gICAgcmV0dXJuIF9yZWFjdFtcImRlZmF1bHRcIl0uY3JlYXRlRWxlbWVudCgnc3R5bGUnLCB7XG4gICAgICBpZDogXCJfX1wiICsgaWQsXG4gICAgICAvLyBBdm9pZCB3YXJuaW5ncyB1cG9uIHJlbmRlciB3aXRoIGEga2V5XG4gICAgICBrZXk6IFwiX19cIiArIGlkLFxuICAgICAgbm9uY2U6IG9wdGlvbnMubm9uY2UgPyBvcHRpb25zLm5vbmNlIDogdW5kZWZpbmVkLFxuICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6IHtcbiAgICAgICAgX19odG1sOiBjc3NcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59XG5cbnZhciBTdHlsZVNoZWV0UmVnaXN0cnkgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkge1xuICBmdW5jdGlvbiBTdHlsZVNoZWV0UmVnaXN0cnkoX3RlbXApIHtcbiAgICB2YXIgX3JlZiA9IF90ZW1wID09PSB2b2lkIDAgPyB7fSA6IF90ZW1wLFxuICAgICAgICBfcmVmJHN0eWxlU2hlZXQgPSBfcmVmLnN0eWxlU2hlZXQsXG4gICAgICAgIHN0eWxlU2hlZXQgPSBfcmVmJHN0eWxlU2hlZXQgPT09IHZvaWQgMCA/IG51bGwgOiBfcmVmJHN0eWxlU2hlZXQsXG4gICAgICAgIF9yZWYkb3B0aW1pemVGb3JTcGVlZCA9IF9yZWYub3B0aW1pemVGb3JTcGVlZCxcbiAgICAgICAgb3B0aW1pemVGb3JTcGVlZCA9IF9yZWYkb3B0aW1pemVGb3JTcGVlZCA9PT0gdm9pZCAwID8gZmFsc2UgOiBfcmVmJG9wdGltaXplRm9yU3BlZWQsXG4gICAgICAgIF9yZWYkaXNCcm93c2VyID0gX3JlZi5pc0Jyb3dzZXIsXG4gICAgICAgIGlzQnJvd3NlciA9IF9yZWYkaXNCcm93c2VyID09PSB2b2lkIDAgPyB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyA6IF9yZWYkaXNCcm93c2VyO1xuXG4gICAgdGhpcy5fc2hlZXQgPSBzdHlsZVNoZWV0IHx8IG5ldyBfc3R5bGVzaGVldFtcImRlZmF1bHRcIl0oe1xuICAgICAgbmFtZTogJ3N0eWxlZC1qc3gnLFxuICAgICAgb3B0aW1pemVGb3JTcGVlZDogb3B0aW1pemVGb3JTcGVlZFxuICAgIH0pO1xuXG4gICAgdGhpcy5fc2hlZXQuaW5qZWN0KCk7XG5cbiAgICBpZiAoc3R5bGVTaGVldCAmJiB0eXBlb2Ygb3B0aW1pemVGb3JTcGVlZCA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICB0aGlzLl9zaGVldC5zZXRPcHRpbWl6ZUZvclNwZWVkKG9wdGltaXplRm9yU3BlZWQpO1xuXG4gICAgICB0aGlzLl9vcHRpbWl6ZUZvclNwZWVkID0gdGhpcy5fc2hlZXQuaXNPcHRpbWl6ZUZvclNwZWVkKCk7XG4gICAgfVxuXG4gICAgdGhpcy5faXNCcm93c2VyID0gaXNCcm93c2VyO1xuICAgIHRoaXMuX2Zyb21TZXJ2ZXIgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5faW5kaWNlcyA9IHt9O1xuICAgIHRoaXMuX2luc3RhbmNlc0NvdW50cyA9IHt9O1xuICB9XG5cbiAgdmFyIF9wcm90byA9IFN0eWxlU2hlZXRSZWdpc3RyeS5wcm90b3R5cGU7XG5cbiAgX3Byb3RvLmFkZCA9IGZ1bmN0aW9uIGFkZChwcm9wcykge1xuICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICBpZiAodW5kZWZpbmVkID09PSB0aGlzLl9vcHRpbWl6ZUZvclNwZWVkKSB7XG4gICAgICB0aGlzLl9vcHRpbWl6ZUZvclNwZWVkID0gQXJyYXkuaXNBcnJheShwcm9wcy5jaGlsZHJlbik7XG5cbiAgICAgIHRoaXMuX3NoZWV0LnNldE9wdGltaXplRm9yU3BlZWQodGhpcy5fb3B0aW1pemVGb3JTcGVlZCk7XG5cbiAgICAgIHRoaXMuX29wdGltaXplRm9yU3BlZWQgPSB0aGlzLl9zaGVldC5pc09wdGltaXplRm9yU3BlZWQoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5faXNCcm93c2VyICYmICF0aGlzLl9mcm9tU2VydmVyKSB7XG4gICAgICB0aGlzLl9mcm9tU2VydmVyID0gdGhpcy5zZWxlY3RGcm9tU2VydmVyKCk7XG4gICAgICB0aGlzLl9pbnN0YW5jZXNDb3VudHMgPSBPYmplY3Qua2V5cyh0aGlzLl9mcm9tU2VydmVyKS5yZWR1Y2UoZnVuY3Rpb24gKGFjYywgdGFnTmFtZSkge1xuICAgICAgICBhY2NbdGFnTmFtZV0gPSAwO1xuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSwge30pO1xuICAgIH1cblxuICAgIHZhciBfdGhpcyRnZXRJZEFuZFJ1bGVzID0gdGhpcy5nZXRJZEFuZFJ1bGVzKHByb3BzKSxcbiAgICAgICAgc3R5bGVJZCA9IF90aGlzJGdldElkQW5kUnVsZXMuc3R5bGVJZCxcbiAgICAgICAgcnVsZXMgPSBfdGhpcyRnZXRJZEFuZFJ1bGVzLnJ1bGVzOyAvLyBEZWR1cGluZzoganVzdCBpbmNyZWFzZSB0aGUgaW5zdGFuY2VzIGNvdW50LlxuXG5cbiAgICBpZiAoc3R5bGVJZCBpbiB0aGlzLl9pbnN0YW5jZXNDb3VudHMpIHtcbiAgICAgIHRoaXMuX2luc3RhbmNlc0NvdW50c1tzdHlsZUlkXSArPSAxO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciBpbmRpY2VzID0gcnVsZXMubWFwKGZ1bmN0aW9uIChydWxlKSB7XG4gICAgICByZXR1cm4gX3RoaXMuX3NoZWV0Lmluc2VydFJ1bGUocnVsZSk7XG4gICAgfSkgLy8gRmlsdGVyIG91dCBpbnZhbGlkIHJ1bGVzXG4gICAgLmZpbHRlcihmdW5jdGlvbiAoaW5kZXgpIHtcbiAgICAgIHJldHVybiBpbmRleCAhPT0gLTE7XG4gICAgfSk7XG4gICAgdGhpcy5faW5kaWNlc1tzdHlsZUlkXSA9IGluZGljZXM7XG4gICAgdGhpcy5faW5zdGFuY2VzQ291bnRzW3N0eWxlSWRdID0gMTtcbiAgfTtcblxuICBfcHJvdG8ucmVtb3ZlID0gZnVuY3Rpb24gcmVtb3ZlKHByb3BzKSB7XG4gICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICB2YXIgX3RoaXMkZ2V0SWRBbmRSdWxlczIgPSB0aGlzLmdldElkQW5kUnVsZXMocHJvcHMpLFxuICAgICAgICBzdHlsZUlkID0gX3RoaXMkZ2V0SWRBbmRSdWxlczIuc3R5bGVJZDtcblxuICAgIGludmFyaWFudChzdHlsZUlkIGluIHRoaXMuX2luc3RhbmNlc0NvdW50cywgXCJzdHlsZUlkOiBgXCIgKyBzdHlsZUlkICsgXCJgIG5vdCBmb3VuZFwiKTtcbiAgICB0aGlzLl9pbnN0YW5jZXNDb3VudHNbc3R5bGVJZF0gLT0gMTtcblxuICAgIGlmICh0aGlzLl9pbnN0YW5jZXNDb3VudHNbc3R5bGVJZF0gPCAxKSB7XG4gICAgICB2YXIgdGFnRnJvbVNlcnZlciA9IHRoaXMuX2Zyb21TZXJ2ZXIgJiYgdGhpcy5fZnJvbVNlcnZlcltzdHlsZUlkXTtcblxuICAgICAgaWYgKHRhZ0Zyb21TZXJ2ZXIpIHtcbiAgICAgICAgdGFnRnJvbVNlcnZlci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRhZ0Zyb21TZXJ2ZXIpO1xuICAgICAgICBkZWxldGUgdGhpcy5fZnJvbVNlcnZlcltzdHlsZUlkXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2luZGljZXNbc3R5bGVJZF0uZm9yRWFjaChmdW5jdGlvbiAoaW5kZXgpIHtcbiAgICAgICAgICByZXR1cm4gX3RoaXMyLl9zaGVldC5kZWxldGVSdWxlKGluZGV4KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZGVsZXRlIHRoaXMuX2luZGljZXNbc3R5bGVJZF07XG4gICAgICB9XG5cbiAgICAgIGRlbGV0ZSB0aGlzLl9pbnN0YW5jZXNDb3VudHNbc3R5bGVJZF07XG4gICAgfVxuICB9O1xuXG4gIF9wcm90by51cGRhdGUgPSBmdW5jdGlvbiB1cGRhdGUocHJvcHMsIG5leHRQcm9wcykge1xuICAgIHRoaXMuYWRkKG5leHRQcm9wcyk7XG4gICAgdGhpcy5yZW1vdmUocHJvcHMpO1xuICB9O1xuXG4gIF9wcm90by5mbHVzaCA9IGZ1bmN0aW9uIGZsdXNoKCkge1xuICAgIHRoaXMuX3NoZWV0LmZsdXNoKCk7XG5cbiAgICB0aGlzLl9zaGVldC5pbmplY3QoKTtcblxuICAgIHRoaXMuX2Zyb21TZXJ2ZXIgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5faW5kaWNlcyA9IHt9O1xuICAgIHRoaXMuX2luc3RhbmNlc0NvdW50cyA9IHt9O1xuICB9O1xuXG4gIF9wcm90by5jc3NSdWxlcyA9IGZ1bmN0aW9uIGNzc1J1bGVzKCkge1xuICAgIHZhciBfdGhpczMgPSB0aGlzO1xuXG4gICAgdmFyIGZyb21TZXJ2ZXIgPSB0aGlzLl9mcm9tU2VydmVyID8gT2JqZWN0LmtleXModGhpcy5fZnJvbVNlcnZlcikubWFwKGZ1bmN0aW9uIChzdHlsZUlkKSB7XG4gICAgICByZXR1cm4gW3N0eWxlSWQsIF90aGlzMy5fZnJvbVNlcnZlcltzdHlsZUlkXV07XG4gICAgfSkgOiBbXTtcblxuICAgIHZhciBjc3NSdWxlcyA9IHRoaXMuX3NoZWV0LmNzc1J1bGVzKCk7XG5cbiAgICByZXR1cm4gZnJvbVNlcnZlci5jb25jYXQoT2JqZWN0LmtleXModGhpcy5faW5kaWNlcykubWFwKGZ1bmN0aW9uIChzdHlsZUlkKSB7XG4gICAgICByZXR1cm4gW3N0eWxlSWQsIF90aGlzMy5faW5kaWNlc1tzdHlsZUlkXS5tYXAoZnVuY3Rpb24gKGluZGV4KSB7XG4gICAgICAgIHJldHVybiBjc3NSdWxlc1tpbmRleF0uY3NzVGV4dDtcbiAgICAgIH0pLmpvaW4oX3RoaXMzLl9vcHRpbWl6ZUZvclNwZWVkID8gJycgOiAnXFxuJyldO1xuICAgIH0pIC8vIGZpbHRlciBvdXQgZW1wdHkgcnVsZXNcbiAgICAuZmlsdGVyKGZ1bmN0aW9uIChydWxlKSB7XG4gICAgICByZXR1cm4gQm9vbGVhbihydWxlWzFdKTtcbiAgICB9KSk7XG4gIH07XG5cbiAgX3Byb3RvLnN0eWxlcyA9IGZ1bmN0aW9uIHN0eWxlcyhvcHRpb25zKSB7XG4gICAgcmV0dXJuIG1hcFJ1bGVzVG9TdHlsZSh0aGlzLmNzc1J1bGVzKCksIG9wdGlvbnMpO1xuICB9O1xuXG4gIF9wcm90by5nZXRJZEFuZFJ1bGVzID0gZnVuY3Rpb24gZ2V0SWRBbmRSdWxlcyhwcm9wcykge1xuICAgIHZhciBjc3MgPSBwcm9wcy5jaGlsZHJlbixcbiAgICAgICAgZHluYW1pYyA9IHByb3BzLmR5bmFtaWMsXG4gICAgICAgIGlkID0gcHJvcHMuaWQ7XG5cbiAgICBpZiAoZHluYW1pYykge1xuICAgICAgdmFyIHN0eWxlSWQgPSAoMCwgX2hhc2guY29tcHV0ZUlkKShpZCwgZHluYW1pYyk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdHlsZUlkOiBzdHlsZUlkLFxuICAgICAgICBydWxlczogQXJyYXkuaXNBcnJheShjc3MpID8gY3NzLm1hcChmdW5jdGlvbiAocnVsZSkge1xuICAgICAgICAgIHJldHVybiAoMCwgX2hhc2guY29tcHV0ZVNlbGVjdG9yKShzdHlsZUlkLCBydWxlKTtcbiAgICAgICAgfSkgOiBbKDAsIF9oYXNoLmNvbXB1dGVTZWxlY3Rvcikoc3R5bGVJZCwgY3NzKV1cbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHN0eWxlSWQ6ICgwLCBfaGFzaC5jb21wdXRlSWQpKGlkKSxcbiAgICAgIHJ1bGVzOiBBcnJheS5pc0FycmF5KGNzcykgPyBjc3MgOiBbY3NzXVxuICAgIH07XG4gIH1cbiAgLyoqXG4gICAqIHNlbGVjdEZyb21TZXJ2ZXJcbiAgICpcbiAgICogQ29sbGVjdHMgc3R5bGUgdGFncyBmcm9tIHRoZSBkb2N1bWVudCB3aXRoIGlkIF9fanN4LVhYWFxuICAgKi9cbiAgO1xuXG4gIF9wcm90by5zZWxlY3RGcm9tU2VydmVyID0gZnVuY3Rpb24gc2VsZWN0RnJvbVNlcnZlcigpIHtcbiAgICB2YXIgZWxlbWVudHMgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbaWRePVwiX19qc3gtXCJdJykpO1xuICAgIHJldHVybiBlbGVtZW50cy5yZWR1Y2UoZnVuY3Rpb24gKGFjYywgZWxlbWVudCkge1xuICAgICAgdmFyIGlkID0gZWxlbWVudC5pZC5zbGljZSgyKTtcbiAgICAgIGFjY1tpZF0gPSBlbGVtZW50O1xuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7fSk7XG4gIH07XG5cbiAgcmV0dXJuIFN0eWxlU2hlZXRSZWdpc3RyeTtcbn0oKTtcblxuZXhwb3J0cy5TdHlsZVNoZWV0UmVnaXN0cnkgPSBTdHlsZVNoZWV0UmVnaXN0cnk7XG5cbmZ1bmN0aW9uIGludmFyaWFudChjb25kaXRpb24sIG1lc3NhZ2UpIHtcbiAgaWYgKCFjb25kaXRpb24pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJTdHlsZVNoZWV0UmVnaXN0cnk6IFwiICsgbWVzc2FnZSArIFwiLlwiKTtcbiAgfVxufVxuXG52YXIgU3R5bGVTaGVldENvbnRleHQgPSAoMCwgX3JlYWN0LmNyZWF0ZUNvbnRleHQpKG51bGwpO1xuZXhwb3J0cy5TdHlsZVNoZWV0Q29udGV4dCA9IFN0eWxlU2hlZXRDb250ZXh0O1xuXG5mdW5jdGlvbiBjcmVhdGVTdHlsZVJlZ2lzdHJ5KCkge1xuICByZXR1cm4gbmV3IFN0eWxlU2hlZXRSZWdpc3RyeSgpO1xufVxuXG5mdW5jdGlvbiBTdHlsZVJlZ2lzdHJ5KF9yZWYyKSB7XG4gIHZhciBjb25maWd1cmVkUmVnaXN0cnkgPSBfcmVmMi5yZWdpc3RyeSxcbiAgICAgIGNoaWxkcmVuID0gX3JlZjIuY2hpbGRyZW47XG4gIHZhciByb290UmVnaXN0cnkgPSAoMCwgX3JlYWN0LnVzZUNvbnRleHQpKFN0eWxlU2hlZXRDb250ZXh0KTtcblxuICB2YXIgX3VzZVN0YXRlID0gKDAsIF9yZWFjdC51c2VTdGF0ZSkoZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiByb290UmVnaXN0cnkgfHwgY29uZmlndXJlZFJlZ2lzdHJ5IHx8IGNyZWF0ZVN0eWxlUmVnaXN0cnkoKTtcbiAgfSksXG4gICAgICByZWdpc3RyeSA9IF91c2VTdGF0ZVswXTtcblxuICByZXR1cm4gX3JlYWN0W1wiZGVmYXVsdFwiXS5jcmVhdGVFbGVtZW50KFN0eWxlU2hlZXRDb250ZXh0LlByb3ZpZGVyLCB7XG4gICAgdmFsdWU6IHJlZ2lzdHJ5XG4gIH0sIGNoaWxkcmVuKTtcbn1cblxuZnVuY3Rpb24gdXNlU3R5bGVSZWdpc3RyeSgpIHtcbiAgcmV0dXJuICgwLCBfcmVhY3QudXNlQ29udGV4dCkoU3R5bGVTaGVldENvbnRleHQpO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/styled-jsx/dist/stylesheet-registry.js\n"); + +/***/ }), + +/***/ "./node_modules/styled-jsx/index.js": +/*!******************************************!*\ + !*** ./node_modules/styled-jsx/index.js ***! + \******************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("module.exports = __webpack_require__(/*! ./dist */ \"./node_modules/styled-jsx/dist/index.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3R5bGVkLWpzeC9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQSw2RkFBa0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N0eWxlZC1qc3gvaW5kZXguanM/ZGJkOSJdLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vZGlzdCcpXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/styled-jsx/index.js\n"); + +/***/ }), + +/***/ "?506d": +/*!******************************************!*\ + !*** ./utils/resolve-rewrites (ignored) ***! + \******************************************/ +/***/ (function() { + +/* (ignored) */ + +/***/ }) + +}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); } +/******/ var __webpack_exports__ = (__webpack_exec__("./node_modules/next/dist/client/next-dev.js")); +/******/ _N_E = __webpack_exports__; +/******/ } +]); \ No newline at end of file diff --git a/.next/static/chunks/fallback/node_modules_next_dist_client_dev_noop_js.js b/.next/static/chunks/fallback/node_modules_next_dist_client_dev_noop_js.js new file mode 100644 index 0000000..4ebcfae --- /dev/null +++ b/.next/static/chunks/fallback/node_modules_next_dist_client_dev_noop_js.js @@ -0,0 +1,22 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["node_modules_next_dist_client_dev_noop_js"],{ + +/***/ "./node_modules/next/dist/client/dev/noop.js": +/*!***************************************************!*\ + !*** ./node_modules/next/dist/client/dev/noop.js ***! + \***************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvbm9vcC5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvZGV2L25vb3AuanM/NGRmZiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bm9vcC5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/noop.js\n"); + +/***/ }) + +}]); \ No newline at end of file diff --git a/.next/static/chunks/fallback/node_modules_next_dist_pages__error_js.js b/.next/static/chunks/fallback/node_modules_next_dist_pages__error_js.js new file mode 100644 index 0000000..ae81808 --- /dev/null +++ b/.next/static/chunks/fallback/node_modules_next_dist_pages__error_js.js @@ -0,0 +1,62 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["node_modules_next_dist_pages__error_js"],{ + +/***/ "./node_modules/next/dist/pages/_error.js": +/*!************************************************!*\ + !*** ./node_modules/next/dist/pages/_error.js ***! + \************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _classCallCheck = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\");\n\nvar _createClass = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\");\n\nvar _inherits = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/inherits */ \"./node_modules/@babel/runtime/helpers/inherits.js\");\n\nvar _possibleConstructorReturn = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/possibleConstructorReturn */ \"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\");\n\nvar _getPrototypeOf = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/getPrototypeOf */ \"./node_modules/@babel/runtime/helpers/getPrototypeOf.js\");\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _head = _interopRequireDefault(__webpack_require__(/*! ../shared/lib/head */ \"./node_modules/next/dist/shared/lib/head.js\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar statusCodes = {\n 400: 'Bad Request',\n 404: 'This page could not be found',\n 405: 'Method Not Allowed',\n 500: 'Internal Server Error'\n};\n\nfunction _getInitialProps(_ref) {\n var res = _ref.res,\n err = _ref.err;\n var statusCode = res && res.statusCode ? res.statusCode : err ? err.statusCode : 404;\n return {\n statusCode: statusCode\n };\n}\n\nvar Error = /*#__PURE__*/function (_react$default$Compon) {\n _inherits(Error, _react$default$Compon);\n\n var _super = _createSuper(Error);\n\n function Error() {\n _classCallCheck(this, Error);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Error, [{\n key: \"render\",\n value: function render() {\n var statusCode = this.props.statusCode;\n var title = this.props.title || statusCodes[statusCode] || 'An unexpected error has occurred';\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n style: styles.error\n }, /*#__PURE__*/_react[\"default\"].createElement(_head[\"default\"], null, /*#__PURE__*/_react[\"default\"].createElement(\"title\", null, statusCode ? \"\".concat(statusCode, \": \").concat(title) : 'Application error: a client-side exception has occurred')), /*#__PURE__*/_react[\"default\"].createElement(\"div\", null, /*#__PURE__*/_react[\"default\"].createElement(\"style\", {\n dangerouslySetInnerHTML: {\n __html: 'body { margin: 0 }'\n }\n }), statusCode ? /*#__PURE__*/_react[\"default\"].createElement(\"h1\", {\n style: styles.h1\n }, statusCode) : null, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n style: styles.desc\n }, /*#__PURE__*/_react[\"default\"].createElement(\"h2\", {\n style: styles.h2\n }, this.props.title || statusCode ? title : /*#__PURE__*/_react[\"default\"].createElement(_react[\"default\"].Fragment, null, \"Application error: a client-side exception has occurred (see the browser console for more information)\"), \".\"))));\n }\n }]);\n\n return Error;\n}(_react[\"default\"].Component);\n\nError.displayName = 'ErrorPage';\nError.getInitialProps = _getInitialProps;\nError.origGetInitialProps = _getInitialProps;\nexports[\"default\"] = Error;\nvar styles = {\n error: {\n color: '#000',\n background: '#fff',\n fontFamily: '-apple-system, BlinkMacSystemFont, Roboto, \"Segoe UI\", \"Fira Sans\", Avenir, \"Helvetica Neue\", \"Lucida Grande\", sans-serif',\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 textAlign: 'left',\n lineHeight: '49px',\n height: '49px',\n verticalAlign: 'middle'\n },\n h1: {\n display: 'inline-block',\n borderRight: '1px solid rgba(0, 0, 0,.3)',\n margin: 0,\n marginRight: '20px',\n padding: '10px 23px 10px 0',\n fontSize: '24px',\n fontWeight: 500,\n verticalAlign: 'top'\n },\n h2: {\n fontSize: '14px',\n fontWeight: 'normal',\n lineHeight: 'inherit',\n margin: 0,\n padding: 0\n }\n};\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3BhZ2VzL19lcnJvci5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDYkEsOENBQTZDO0FBQ3pDRyxFQUFBQSxLQUFLLEVBQUU7QUFEa0MsQ0FBN0M7QUFHQUQsa0JBQUEsR0FBa0IsS0FBSyxDQUF2Qjs7QUFDQSxJQUFJRSxNQUFNLEdBQUdDLHNCQUFzQixDQUFDQyxtQkFBTyxDQUFDLDRDQUFELENBQVIsQ0FBbkM7O0FBQ0EsSUFBSUMsS0FBSyxHQUFHRixzQkFBc0IsQ0FBQ0MsbUJBQU8sQ0FBQyx1RUFBRCxDQUFSLENBQWxDOztBQUNBLFNBQVNELHNCQUFULENBQWdDRyxHQUFoQyxFQUFxQztBQUNqQyxTQUFPQSxHQUFHLElBQUlBLEdBQUcsQ0FBQ0MsVUFBWCxHQUF3QkQsR0FBeEIsR0FBOEI7QUFDakMsZUFBU0E7QUFEd0IsR0FBckM7QUFHSDs7QUFDRCxJQUFNRSxXQUFXLEdBQUc7QUFDaEIsT0FBSyxhQURXO0FBRWhCLE9BQUssOEJBRlc7QUFHaEIsT0FBSyxvQkFIVztBQUloQixPQUFLO0FBSlcsQ0FBcEI7O0FBTUEsU0FBU0MsZ0JBQVQsT0FBMEM7QUFBQSxNQUFkQyxHQUFjLFFBQWRBLEdBQWM7QUFBQSxNQUFSQyxHQUFRLFFBQVJBLEdBQVE7QUFDdEMsTUFBTUMsVUFBVSxHQUFHRixHQUFHLElBQUlBLEdBQUcsQ0FBQ0UsVUFBWCxHQUF3QkYsR0FBRyxDQUFDRSxVQUE1QixHQUF5Q0QsR0FBRyxHQUFHQSxHQUFHLENBQUNDLFVBQVAsR0FBb0IsR0FBbkY7QUFDQSxTQUFPO0FBQ0hBLElBQUFBLFVBQVUsRUFBVkE7QUFERyxHQUFQO0FBR0g7O0lBQ0tDOzs7Ozs7Ozs7Ozs7O1dBQ0Ysa0JBQVM7QUFDTCxVQUFRRCxVQUFSLEdBQXdCLEtBQUtFLEtBQTdCLENBQVFGLFVBQVI7QUFDQSxVQUFNRyxLQUFLLEdBQUcsS0FBS0QsS0FBTCxDQUFXQyxLQUFYLElBQW9CUCxXQUFXLENB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LElBQUFBLFFBQVEsRUFBRSxNQU5WO0FBT0FDLElBQUFBLFVBQVUsRUFBRSxHQVBaO0FBUUFOLElBQUFBLGFBQWEsRUFBRTtBQVJmLEdBbkJPO0FBNkJYaEIsRUFBQUEsRUFBRSxFQUFFO0FBQ0FxQixJQUFBQSxRQUFRLEVBQUUsTUFEVjtBQUVBQyxJQUFBQSxVQUFVLEVBQUUsUUFGWjtBQUdBUCxJQUFBQSxVQUFVLEVBQUUsU0FIWjtBQUlBRyxJQUFBQSxNQUFNLEVBQUUsQ0FKUjtBQUtBRSxJQUFBQSxPQUFPLEVBQUU7QUFMVDtBQTdCTyxDQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvcGFnZXMvX2Vycm9yLmpzPzE4ZjIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7XG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xudmFyIF9oZWFkID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9oZWFkXCIpKTtcbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbmNvbnN0IHN0YXR1c0NvZGVzID0ge1xuICAgIDQwMDogJ0JhZCBSZXF1ZXN0JyxcbiAgICA0MDQ6ICdUaGlzIHBhZ2UgY291bGQgbm90IGJlIGZvdW5kJyxcbiAgICA0MDU6ICdNZXRob2QgTm90IEFsbG93ZWQnLFxuICAgIDUwMDogJ0ludGVybmFsIFNlcnZlciBFcnJvcidcbn07XG5mdW5jdGlvbiBfZ2V0SW5pdGlhbFByb3BzKHsgcmVzICwgZXJyICB9KSB7XG4gICAgY29uc3Qgc3RhdHVzQ29kZSA9IHJlcyAmJiByZXMuc3RhdHVzQ29kZSA/IHJlcy5zdGF0dXNDb2RlIDogZXJyID8gZXJyLnN0YXR1c0NvZGUgOiA0MDQ7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc3RhdHVzQ29kZVxuICAgIH07XG59XG5jbGFzcyBFcnJvciBleHRlbmRzIF9yZWFjdC5kZWZhdWx0LkNvbXBvbmVudCB7XG4gICAgcmVuZGVyKCkge1xuICAgICAgICBjb25zdCB7IHN0YXR1c0NvZGUgIH0gPSB0aGlzLnByb3BzO1xuICAgICAgICBjb25zdCB0aXRsZSA9IHRoaXMucHJvcHMudGl0bGUgfHwgc3RhdHVzQ29kZXNbc3RhdHVzQ29kZV0gfHwgJ0FuIHVuZXhwZWN0ZWQgZXJyb3IgaGFzIG9jY3VycmVkJztcbiAgICAgICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgICAgICBzdHlsZTogc3R5bGVzLmVycm9yXG4gICAgICAgIH0sIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChfaGVhZC5kZWZhdWx0LCBudWxsLCAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJ0aXRsZVwiLCBudWxsLCBzdGF0dXNDb2RlID8gYCR7c3RhdHVzQ29kZX06ICR7dGl0bGV9YCA6ICdBcHBsaWNhdGlvbiBlcnJvcjogYSBjbGllbnQtc2lkZSBleGNlcHRpb24gaGFzIG9jY3VycmVkJykpLCAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgbnVsbCwgLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwic3R5bGVcIiwge1xuICAgICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6IHtcbiAgICAgICAgICAgICAgICBfX2h0bWw6ICdib2R5IHsgbWFyZ2luOiAwIH0nXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLCBzdGF0dXNDb2RlID8gLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiaDFcIiwge1xuICAgICAgICAgICAgc3R5bGU6IHN0eWxlcy5oMVxuICAgICAgICB9LCBzdGF0dXNDb2RlKSA6IG51bGwsIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgICAgICBzdHlsZTogc3R5bGVzLmRlc2NcbiAgICAgICAgfSwgLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiaDJcIiwge1xuICAgICAgICAgICAgc3R5bGU6IHN0eWxlcy5oMlxuICAgICAgICB9LCB0aGlzLnByb3BzLnRpdGxlIHx8IHN0YXR1c0NvZGUgPyB0aXRsZSA6IC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChfcmVhY3QuZGVmYXVsdC5GcmFnbWVudCwgbnVsbCwgXCJBcHBsaWNhdGlvbiBlcnJvcjogYSBjbGllbnQtc2lkZSBleGNlcHRpb24gaGFzIG9jY3VycmVkIChzZWUgdGhlIGJyb3dzZXIgY29uc29sZSBmb3IgbW9yZSBpbmZvcm1hdGlvbilcIiksIFwiLlwiKSkpKSk7XG4gICAgfVxufVxuRXJyb3IuZGlzcGxheU5hbWUgPSAnRXJyb3JQYWdlJztcbkVycm9yLmdldEluaXRpYWxQcm9wcyA9IF9nZXRJbml0aWFsUHJvcHM7XG5FcnJvci5vcmlnR2V0SW5pdGlhbFByb3BzID0gX2dldEluaXRpYWxQcm9wcztcbmV4cG9ydHMuZGVmYXVsdCA9IEVycm9yO1xuY29uc3Qgc3R5bGVzID0ge1xuICAgIGVycm9yOiB7XG4gICAgICAgIGNvbG9yOiAnIzAwMCcsXG4gICAgICAgIGJhY2tncm91bmQ6ICcjZmZmJyxcbiAgICAgICAgZm9udEZhbWlseTogJy1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgUm9ib3RvLCBcIlNlZ29lIFVJXCIsIFwiRmlyYSBTYW5zXCIsIEF2ZW5pciwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkx1Y2lkYSBHcmFuZGVcIiwgc2Fucy1zZXJpZicsXG4gICAgICAgIGhlaWdodDogJzEwMHZoJyxcbiAgICAgICAgdGV4dEFsaWduOiAnY2VudGVyJyxcbiAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJ1xuICAgIH0sXG4gICAgZGVzYzoge1xuICAgICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICAgICAgdGV4dEFsaWduOiAnbGVmdCcsXG4gICAgICAgIGxpbmVIZWlnaHQ6ICc0OXB4JyxcbiAgICAgICAgaGVpZ2h0OiAnNDlweCcsXG4gICAgICAgIHZlcnRpY2FsQWxpZ246ICdtaWRkbGUnXG4gICAgfSxcbiAgICBoMToge1xuICAgICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICAgICAgYm9yZGVyUmlnaHQ6ICcxcHggc29saWQgcmdiYSgwLCAwLCAwLC4zKScsXG4gICAgICAgIG1hcmdpbjogMCxcbiAgICAgICAgbWFyZ2luUmlnaHQ6ICcyMHB4JyxcbiAgICAgICAgcGFkZGluZzogJzEwcHggMjNweCAxMHB4IDAnLFxuICAgICAgICBmb250U2l6ZTogJzI0cHgnLFxuICAgICAgICBmb250V2VpZ2h0OiA1MDAsXG4gICAgICAgIHZlcnRpY2FsQWxpZ246ICd0b3AnXG4gICAgfSxcbiAgICBoMjoge1xuICAgICAgICBmb250U2l6ZTogJzE0cHgnLFxuICAgICAgICBmb250V2VpZ2h0OiAnbm9ybWFsJyxcbiAgICAgICAgbGluZUhlaWdodDogJ2luaGVyaXQnLFxuICAgICAgICBtYXJnaW46IDAsXG4gICAgICAgIHBhZGRpbmc6IDBcbiAgICB9XG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1fZXJyb3IuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfaGVhZCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJzdGF0dXNDb2RlcyIsIl9nZXRJbml0aWFsUHJvcHMiLCJyZXMiLCJlcnIiLCJzdGF0dXNDb2RlIiwiRXJyb3IiLCJwcm9wcyIsInRpdGxlIiwiY3JlYXRlRWxlbWVudCIsInN0eWxlIiwic3R5bGVzIiwiZXJyb3IiLCJkYW5nZXJvdXNseVNldElubmVySFRNTCIsIl9faHRtbCIsImgxIiwiZGVzYyIsImgyIiwiRnJhZ21lbnQiLCJDb21wb25lbnQiLCJkaXNwbGF5TmFtZSIsImdldEluaXRpYWxQcm9wcyIsIm9yaWdHZXRJbml0aWFsUHJvcHMiLCJjb2xvciIsImJhY2tncm91bmQiLCJmb250RmFtaWx5IiwiaGVpZ2h0IiwidGV4dEFsaWduIiwiZGlzcGxheSIsImZsZXhEaXJlY3Rpb24iLCJhbGlnbkl0ZW1zIiwianVzdGlmeUNvbnRlbnQiLCJsaW5lSGVpZ2h0IiwidmVydGljYWxBbGlnbiIsImJvcmRlclJpZ2h0IiwibWFyZ2luIiwibWFyZ2luUmlnaHQiLCJwYWRkaW5nIiwiZm9udFNpemUiLCJmb250V2VpZ2h0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/pages/_error.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/amp-context.js": +/*!**********************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/amp-context.js ***! + \**********************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.AmpStateContext = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar AmpStateContext = _react[\"default\"].createContext({});\n\nexports.AmpStateContext = AmpStateContext;\n\nif (true) {\n AmpStateContext.displayName = 'AmpStateContext';\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvYW1wLWNvbnRleHQuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCx1QkFBQSxHQUEwQixLQUFLLENBQS9COztBQUNBLElBQUlHLE1BQU0sR0FBR0Msc0JBQXNCLENBQUNDLG1CQUFPLENBQUMsNENBQUQsQ0FBUixDQUFuQzs7QUFDQSxTQUFTRCxzQkFBVCxDQUFnQ0UsR0FBaEMsRUFBcUM7QUFDakMsU0FBT0EsR0FBRyxJQUFJQSxHQUFHLENBQUNDLFVBQVgsR0FBd0JELEdBQXhCLEdBQThCO0FBQ2pDLGVBQVNBO0FBRHdCLEdBQXJDO0FBR0g7O0FBQ0QsSUFBTUosZUFBZSxHQUFHQyxNQUFNLFdBQU4sQ0FBZUssYUFBZixDQUE2QixFQUE3QixDQUF4Qjs7QUFFQVIsdUJBQUEsR0FBMEJFLGVBQTFCOztBQUNBLElBQUksTUFBdUM7QUFDdkNBLEVBQUFBLGVBQWUsQ0FBQ08sV0FBaEIsR0FBOEIsaUJBQTlCO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zaGFyZWQvbGliL2FtcC1jb250ZXh0LmpzP2U1YTciXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLkFtcFN0YXRlQ29udGV4dCA9IHZvaWQgMDtcbnZhciBfcmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5jb25zdCBBbXBTdGF0ZUNvbnRleHQgPSBfcmVhY3QuZGVmYXVsdC5jcmVhdGVDb250ZXh0KHtcbn0pO1xuZXhwb3J0cy5BbXBTdGF0ZUNvbnRleHQgPSBBbXBTdGF0ZUNvbnRleHQ7XG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIEFtcFN0YXRlQ29udGV4dC5kaXNwbGF5TmFtZSA9ICdBbXBTdGF0ZUNvbnRleHQnO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hbXAtY29udGV4dC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJBbXBTdGF0ZUNvbnRleHQiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIm9iaiIsIl9fZXNNb2R1bGUiLCJjcmVhdGVDb250ZXh0IiwiZGlzcGxheU5hbWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/amp-context.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/amp.js": +/*!**************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/amp.js ***! + \**************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _s = $RefreshSig$();\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.isInAmpMode = isInAmpMode;\nexports.useAmp = useAmp;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _ampContext = __webpack_require__(/*! ./amp-context */ \"./node_modules/next/dist/shared/lib/amp-context.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction isInAmpMode() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$ampFirst = _ref.ampFirst,\n ampFirst = _ref$ampFirst === void 0 ? false : _ref$ampFirst,\n _ref$hybrid = _ref.hybrid,\n hybrid = _ref$hybrid === void 0 ? false : _ref$hybrid,\n _ref$hasQuery = _ref.hasQuery,\n hasQuery = _ref$hasQuery === void 0 ? false : _ref$hasQuery;\n\n return ampFirst || hybrid && hasQuery;\n}\n\nfunction useAmp() {\n _s();\n\n // Don't assign the context value to a variable to save bytes\n return isInAmpMode(_react[\"default\"].useContext(_ampContext.AmpStateContext));\n}\n\n_s(useAmp, \"gDsCjeeItUuvgOWf1v4qoK9RF6k=\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvYW1wLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7OztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxtQkFBQSxHQUFzQkUsV0FBdEI7QUFDQUYsY0FBQSxHQUFpQkcsTUFBakI7O0FBQ0EsSUFBSUMsTUFBTSxHQUFHQyxzQkFBc0IsQ0FBQ0MsbUJBQU8sQ0FBQyw0Q0FBRCxDQUFSLENBQW5DOztBQUNBLElBQUlDLFdBQVcsR0FBR0QsbUJBQU8sQ0FBQyx5RUFBRCxDQUF6Qjs7QUFDQSxTQUFTRCxzQkFBVCxDQUFnQ0csR0FBaEMsRUFBcUM7QUFDakMsU0FBT0EsR0FBRyxJQUFJQSxHQUFHLENBQUNDLFVBQVgsR0FBd0JELEdBQXhCLEdBQThCO0FBQ2pDLGVBQVNBO0FBRHdCLEdBQXJDO0FBR0g7O0FBQ0QsU0FBU04sV0FBVCxHQUNHO0FBQUEsaUZBRDZFLEVBQzdFO0FBQUEsMkJBRG9CUSxRQUNwQjtBQUFBLE1BRG9CQSxRQUNwQiw4QkFEOEIsS0FDOUI7QUFBQSx5QkFEc0NDLE1BQ3RDO0FBQUEsTUFEc0NBLE1BQ3RDLDRCQUQ4QyxLQUM5QztBQUFBLDJCQURzREMsUUFDdEQ7QUFBQSxNQURzREEsUUFDdEQsOEJBRGdFLEtBQ2hFOztBQUNDLFNBQU9GLFFBQVEsSUFBSUMsTUFBTSxJQUFJQyxRQUE3QjtBQUNIOztBQUNELFNBQVNULE1BQVQsR0FBa0I7QUFBQTs7QUFDZDtBQUNBLFNBQU9ELFdBQVcsQ0FBQ0UsTUFBTSxXQUFOLENBQWVTLFVBQWYsQ0FBMEJOLFdBQVcsQ0FBQ08sZUFBdEMsQ0FBRCxDQUFsQjtBQUNIOztHQUhRWCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvYW1wLmpzPzVlNGYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmlzSW5BbXBNb2RlID0gaXNJbkFtcE1vZGU7XG5leHBvcnRzLnVzZUFtcCA9IHVzZUFtcDtcbnZhciBfcmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG52YXIgX2FtcENvbnRleHQgPSByZXF1aXJlKFwiLi9hbXAtY29udGV4dFwiKTtcbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGlzSW5BbXBNb2RlKHsgYW1wRmlyc3QgPWZhbHNlICwgaHlicmlkID1mYWxzZSAsIGhhc1F1ZXJ5ID1mYWxzZSAsICB9ID0ge1xufSkge1xuICAgIHJldHVybiBhbXBGaXJzdCB8fCBoeWJyaWQgJiYgaGFzUXVlcnk7XG59XG5mdW5jdGlvbiB1c2VBbXAoKSB7XG4gICAgLy8gRG9uJ3QgYXNzaWduIHRoZSBjb250ZXh0IHZhbHVlIHRvIGEgdmFyaWFibGUgdG8gc2F2ZSBieXRlc1xuICAgIHJldHVybiBpc0luQW1wTW9kZShfcmVhY3QuZGVmYXVsdC51c2VDb250ZXh0KF9hbXBDb250ZXh0LkFtcFN0YXRlQ29udGV4dCkpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hbXAuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiaXNJbkFtcE1vZGUiLCJ1c2VBbXAiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9hbXBDb250ZXh0Iiwib2JqIiwiX19lc01vZHVsZSIsImFtcEZpcnN0IiwiaHlicmlkIiwiaGFzUXVlcnkiLCJ1c2VDb250ZXh0IiwiQW1wU3RhdGVDb250ZXh0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/amp.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/head.js": +/*!***************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/head.js ***! + \***************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _defineProperty = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/defineProperty.js\");\n\nvar _s = $RefreshSig$();\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.defaultHead = defaultHead;\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _sideEffect = _interopRequireDefault(__webpack_require__(/*! ./side-effect */ \"./node_modules/next/dist/shared/lib/side-effect.js\"));\n\nvar _ampContext = __webpack_require__(/*! ./amp-context */ \"./node_modules/next/dist/shared/lib/amp-context.js\");\n\nvar _headManagerContext = __webpack_require__(/*! ./head-manager-context */ \"./node_modules/next/dist/shared/lib/head-manager-context.js\");\n\nvar _amp = __webpack_require__(/*! ./amp */ \"./node_modules/next/dist/shared/lib/amp.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n return newObj;\n }\n}\n\nfunction defaultHead() {\n var inAmpMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var head = [/*#__PURE__*/_react[\"default\"].createElement(\"meta\", {\n charSet: \"utf-8\"\n })];\n\n if (!inAmpMode) {\n head.push( /*#__PURE__*/_react[\"default\"].createElement(\"meta\", {\n name: \"viewport\",\n content: \"width=device-width\"\n }));\n }\n\n return head;\n}\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 } // Adds support for React.Fragment\n\n\n if (child.type === _react[\"default\"].Fragment) {\n return list.concat(_react[\"default\"].Children.toArray(child.props.children).reduce(function (fragmentList, fragmentChild) {\n if (typeof fragmentChild === 'string' || typeof fragmentChild === 'number') {\n return fragmentList;\n }\n\n return fragmentList.concat(fragmentChild);\n }, []));\n }\n\n return list.concat(child);\n}\n\nvar METATYPES = ['name', 'httpEquiv', 'charSet', 'itemProp'];\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*/\n\nfunction unique() {\n var keys = new Set();\n var tags = new Set();\n var metaTypes = new Set();\n var metaCategories = {};\n return function (h) {\n var isUnique = true;\n var hasKey = false;\n\n if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {\n hasKey = true;\n var key = h.key.slice(h.key.indexOf('$') + 1);\n\n if (keys.has(key)) {\n isUnique = false;\n } else {\n keys.add(key);\n }\n } // eslint-disable-next-line default-case\n\n\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\n break;\n\n case 'meta':\n for (var i = 0, len = METATYPES.length; i < len; i++) {\n var metatype = METATYPES[i];\n if (!h.props.hasOwnProperty(metatype)) continue;\n\n if (metatype === 'charSet') {\n if (metaTypes.has(metatype)) {\n isUnique = false;\n } else {\n metaTypes.add(metatype);\n }\n } else {\n var category = h.props[metatype];\n var categories = metaCategories[metatype] || new Set();\n\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\n break;\n }\n\n return isUnique;\n };\n}\n/**\n *\n * @param headElements List of multiple <Head> instances\n */\n\n\nfunction reduceComponents(headElements, props) {\n return headElements.reduce(function (list, headElement) {\n var headElementChildren = _react[\"default\"].Children.toArray(headElement.props.children);\n\n return list.concat(headElementChildren);\n }, []).reduce(onlyReactElement, []).reverse().concat(defaultHead(props.inAmpMode)).filter(unique()).reverse().map(function (c, i) {\n var key = c.key || i;\n\n if (false) { var newProps; }\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(c, {\n key: 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 */\n\n\nfunction Head(_ref) {\n _s();\n\n var children = _ref.children;\n var ampState = (0, _react).useContext(_ampContext.AmpStateContext);\n var headManager = (0, _react).useContext(_headManagerContext.HeadManagerContext);\n return /*#__PURE__*/_react[\"default\"].createElement(_sideEffect[\"default\"], {\n reduceComponentsToState: reduceComponents,\n headManager: headManager,\n inAmpMode: (0, _amp).isInAmpMode(ampState)\n }, children);\n}\n\n_s(Head, \"sCUayZmr5V93tUjujy03KdMBCec=\");\n\n_c = Head;\nvar _default = Head;\nexports[\"default\"] = _default;\n\nvar _c;\n\n$RefreshReg$(_c, \"Head\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaGVhZC5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7Ozs7Ozs7Ozs7QUFDYkEsOENBQTZDO0FBQ3pDRyxFQUFBQSxLQUFLLEVBQUU7QUFEa0MsQ0FBN0M7QUFHQUQsbUJBQUEsR0FBc0JFLFdBQXRCO0FBQ0FGLGtCQUFBLEdBQWtCLEtBQUssQ0FBdkI7O0FBQ0EsSUFBSUcsTUFBTSxHQUFHQyx1QkFBdUIsQ0FBQ0MsbUJBQU8sQ0FBQyw0Q0FBRCxDQUFSLENBQXBDOztBQUNBLElBQUlDLFdBQVcsR0FBR0Msc0JBQXNCLENBQUNGLG1CQUFPLENBQUMseUVBQUQsQ0FBUixDQUF4Qzs7QUFDQSxJQUFJRyxXQUFXLEdBQUdILG1CQUFPLENBQUMseUVBQUQsQ0FBekI7O0FBQ0EsSUFBSUksbUJBQW1CLEdBQUdKLG1CQUFPLENBQUMsMkZBQUQsQ0FBakM7O0FBQ0EsSUFBSUssSUFBSSxHQUFHTCxtQkFBTyxDQUFDLHlEQUFELENBQWxCOztBQUNBLFNBQVNFLHNCQUFULENBQWdDSSxHQUFoQyxFQUFxQztBQUNqQyxTQUFPQSxHQUFHLElBQUlBLEdBQUcsQ0FBQ0MsVUFBWCxHQUF3QkQsR0FBeEIsR0FBOEI7QUFDakMsZUFBU0E7QUFEd0IsR0FBckM7QUFHSDs7QUFDRCxTQUFTUCx1QkFBVCxDQUFpQ08sR0FBakMsRUFBc0M7QUFDbEMsTUFBSUEsR0FBRyxJQUFJQSxHQUFHLENBQUNDLFVBQWYsRUFBMkI7QUFDdkIsV0FBT0QsR0FBUDtBQUNILEdBRkQsTUFFTztBQUNILFFBQUlFLE1BQU0sR0FBRyxFQUFiOztBQUVBLFFBQUlGLEdBQUcsSUFBSSxJQUFYLEVBQWlCO0FBQ2IsV0FBSSxJQUFJRyxHQUFSLElBQWVILEdBQWYsRUFBbUI7QUFDZixZQUFJYixNQUFNLENBQUNpQixTQUFQLENBQWlCQyxjQUFqQixDQUFnQ0MsSUFBaEMsQ0FBcUNOLEdBQXJDLEVBQTBDRyxHQUExQyxDQUFKLEVBQW9EO0FBQ2hELGNB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cyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9oZWFkLmpzP2ZiNWQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHRIZWFkID0gZGVmYXVsdEhlYWQ7XG5leHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7XG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcbnZhciBfc2lkZUVmZmVjdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vc2lkZS1lZmZlY3RcIikpO1xudmFyIF9hbXBDb250ZXh0ID0gcmVxdWlyZShcIi4vYW1wLWNvbnRleHRcIik7XG52YXIgX2hlYWRNYW5hZ2VyQ29udGV4dCA9IHJlcXVpcmUoXCIuL2hlYWQtbWFuYWdlci1jb250ZXh0XCIpO1xudmFyIF9hbXAgPSByZXF1aXJlKFwiLi9hbXBcIik7XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHtcbiAgICBpZiAob2JqICYmIG9iai5fX2VzTW9kdWxlKSB7XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIG5ld09iaiA9IHtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKG9iaiAhPSBudWxsKSB7XG4gICAgICAgICAgICBmb3IodmFyIGtleSBpbiBvYmope1xuICAgICAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBkZXNjID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IHtcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3T2JqW2tleV0gPSBvYmpba2V5XTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBuZXdPYmouZGVmYXVsdCA9IG9iajtcbiAgICAgICAgcmV0dXJuIG5ld09iajtcbiAgICB9XG59XG5mdW5jdGlvbiBkZWZhdWx0SGVhZChpbkFtcE1vZGUgPSBmYWxzZSkge1xuICAgIGNvbnN0IGhlYWQgPSBbXG4gICAgICAgIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChcIm1ldGFcIiwge1xuICAgICAgICAgICAgY2hhclNldDogXCJ1dGYtOFwiXG4gICAgICAgIH0pXG4gICAgXTtcbiAgICBpZiAoIWluQW1wTW9kZSkge1xuICAgICAgICBoZWFkLnB1c2goLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwibWV0YVwiLCB7XG4gICAgICAgICAgICBuYW1lOiBcInZpZXdwb3J0XCIsXG4gICAgICAgICAgICBjb250ZW50OiBcIndpZHRoPWRldmljZS13aWR0aFwiXG4gICAgICAgIH0pKTtcbiAgICB9XG4gICAgcmV0dXJuIGhlYWQ7XG59XG5mdW5jdGlvbiBvbmx5UmVhY3RFbGVtZW50KGxpc3QsIGNoaWxkKSB7XG4gICAgLy8gUmVhY3QgY2hpbGRyZW4gY2FuIGJlIFwic3RyaW5nXCIgb3IgXCJudW1iZXJcIiBpbiB0aGlzIGNhc2Ugd2UgaWdub3JlIHRoZW0gZm9yIGJhY2t3YXJkcyBjb21wYXRcbiAgICBpZiAodHlwZW9mIGNoaWxkID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgY2hpbGQgPT09ICdudW1iZXInKSB7XG4gICAgICAgIHJldHVybiBsaXN0O1xuICAgIH1cbiAgICAvLyBBZGRzIHN1cHBvcnQgZm9yIFJlYWN0LkZyYWdtZW50XG4gICAgaWYgKGNoaWxkLnR5cGUgPT09IF9yZWFjdC5kZWZhdWx0LkZyYWdtZW50KSB7XG4gICAgICAgIHJldHVybiBsaXN0LmNvbmNhdChfcmVhY3QuZGVmYXVsdC5DaGlsZHJlbi50b0FycmF5KGNoaWxkLnByb3BzLmNoaWxkcmVuKS5yZWR1Y2UoKGZyYWdtZW50TGlzdCwgZnJhZ21lbnRDaGlsZCk9PntcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZnJhZ21lbnRDaGlsZCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIGZyYWdtZW50Q2hpbGQgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZyYWdtZW50TGlzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmcmFnbWVudExpc3QuY29uY2F0KGZyYWdtZW50Q2hpbGQpO1xuICAgICAgICB9LCBbXSkpO1xuICAgIH1cbiAgICByZXR1cm4gbGlzdC5jb25jYXQoY2hpbGQpO1xufVxuY29uc3QgTUVUQVRZUEVTID0gW1xuICAgICduYW1lJyxcbiAgICAnaHR0cEVxdWl2JyxcbiAgICAnY2hhclNldCcsXG4gICAgJ2l0ZW1Qcm9wJ1xuXTtcbi8qXG4gcmV0dXJucyBhIGZ1bmN0aW9uIGZvciBmaWx0ZXJpbmcgaGVhZCBjaGlsZCBlbGVtZW50c1xuIHdoaWNoIHNob3VsZG4ndCBiZSBkdXBsaWNhdGVkLCBsaWtlIDx0aXRsZS8+XG4gQWxzbyBhZGRzIHN1cHBvcnQgZm9yIGRlZHVwbGljYXRlZCBga2V5YCBwcm9wZXJ0aWVzXG4qLyBmdW5jdGlvbiB1bmlxdWUoKSB7XG4gICAgY29uc3Qga2V5cyA9IG5ldyBTZXQoKTtcbiAgICBjb25zdCB0YWdzID0gbmV3IFNldCgpO1xuICAgIGNvbnN0IG1ldGFUeXBlcyA9IG5ldyBTZXQoKTtcbiAgICBjb25zdCBtZXRhQ2F0ZWdvcmllcyA9IHtcbiAgICB9O1xuICAgIHJldHVybiAoaCk9PntcbiAgICAgICAgbGV0IGlzVW5pcXVlID0gdHJ1ZTtcbiAgICAgICAgbGV0IGhhc0tleSA9IGZhbHNlO1xuICAgICAgICBpZiAoaC5rZXkgJiYgdHlwZW9mIGgua2V5ICE9PSAnbnVtYmVyJyAmJiBoLmtleS5pbmRleE9mKCckJykgPiAwKSB7XG4gICAgICAgICAgICBoYXNLZXkgPSB0cnVlO1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gaC5rZXkuc2xpY2UoaC5rZXkuaW5kZXhPZignJCcpICsgMSk7XG4gICAgICAgICAgICBpZiAoa2V5cy5oYXMoa2V5KSkge1xuICAgICAgICAgICAgICAgIGlzVW5pcXVlID0gZmFsc2U7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGtleXMuYWRkKGtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGRlZmF1bHQtY2FzZVxuICAgICAgICBzd2l0Y2goaC50eXBlKXtcbiAgICAgICAgICAgIGNhc2UgJ3RpdGxlJzpcbiAgICAgICAgICAgIGNhc2UgJ2Jhc2UnOlxuICAgICAgICAgICAgICAgIGlmICh0YWdzLmhhcyhoLnR5cGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlzVW5pcXVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGFncy5hZGQoaC50eXBlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtZXRhJzpcbiAgICAgICAgICAgICAgICBmb3IobGV0IGkgPSAwLCBsZW4gPSBNRVRBVFlQRVMubGVuZ3RoOyBpIDwgbGVuOyBpKyspe1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtZXRhdHlwZSA9IE1FVEFUWVBFU1tpXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFoLnByb3BzLmhhc093blByb3BlcnR5KG1ldGF0eXBlKSkgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChtZXRhdHlwZSA9PT0gJ2NoYXJTZXQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobWV0YVR5cGVzLmhhcyhtZXRhdHlwZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1VuaXF1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhVHlwZXMuYWRkKG1ldGF0eXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNhdGVnb3J5ID0gaC5wcm9wc1ttZXRhdHlwZV07XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjYXRlZ29yaWVzID0gbWV0YUNhdGVnb3JpZXNbbWV0YXR5cGVdIHx8IG5ldyBTZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgobWV0YXR5cGUgIT09ICduYW1lJyB8fCAhaGFzS2V5KSAmJiBjYXRlZ29yaWVzLmhhcyhjYXRlZ29yeSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1VuaXF1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yaWVzLmFkZChjYXRlZ29yeSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YUNhdGVnb3JpZXNbbWV0YXR5cGVdID0gY2F0ZWdvcmllcztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNVbmlxdWU7XG4gICAgfTtcbn1cbi8qKlxuICpcbiAqIEBwYXJhbSBoZWFkRWxlbWVudHMgTGlzdCBvZiBtdWx0aXBsZSA8SGVhZD4gaW5zdGFuY2VzXG4gKi8gZnVuY3Rpb24gcmVkdWNlQ29tcG9uZW50cyhoZWFkRWxlbWVudHMsIHByb3BzKSB7XG4gICAgcmV0dXJuIGhlYWRFbGVtZW50cy5yZWR1Y2UoKGxpc3QsIGhlYWRFbGVtZW50KT0+e1xuICAgICAgICBjb25zdCBoZWFkRWxlbWVudENoaWxkcmVuID0gX3JlYWN0LmRlZmF1bHQuQ2hpbGRyZW4udG9BcnJheShoZWFkRWxlbWVudC5wcm9wcy5jaGlsZHJlbik7XG4gICAgICAgIHJldHVybiBsaXN0LmNvbmNhdChoZWFkRWxlbWVudENoaWxkcmVuKTtcbiAgICB9LCBbXSkucmVkdWNlKG9ubHlSZWFjdEVsZW1lbnQsIFtdKS5yZXZlcnNlKCkuY29uY2F0KGRlZmF1bHRIZWFkKHByb3BzLmluQW1wTW9kZSkpLmZpbHRlcih1bmlxdWUoKSkucmV2ZXJzZSgpLm1hcCgoYywgaSk9PntcbiAgICAgICAgY29uc3Qga2V5ID0gYy5rZXkgfHwgaTtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAnZGV2ZWxvcG1lbnQnICYmIHByb2Nlc3MuZW52Ll9fTkVYVF9PUFRJTUlaRV9GT05UUyAmJiAhcHJvcHMuaW5BbXBNb2RlKSB7XG4gICAgICAgICAgICBpZiAoYy50eXBlID09PSAnbGluaycgJiYgYy5wcm9wc1snaHJlZiddICYmIC8vIFRPRE8ocHJhdGVla2JoQCk6IFJlcGxhY2UgdGhpcyB3aXRoIGNvbnN0IGZyb20gYGNvbnN0YW50c2Agd2hlbiB0aGUgdHJlZSBzaGFraW5nIHdvcmtzLlxuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzcycsXG4gICAgICAgICAgICAgICAgJ2h0dHBzOi8vdXNlLnR5cGVraXQubmV0LydcbiAgICAgICAgICAgIF0uc29tZSgodXJsKT0+Yy5wcm9wc1snaHJlZiddLnN0YXJ0c1dpdGgodXJsKVxuICAgICAgICAgICAgKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld1Byb3BzID0ge1xuICAgICAgICAgICAgICAgICAgICAuLi5jLnByb3BzIHx8IHtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgbmV3UHJvcHNbJ2RhdGEtaHJlZiddID0gbmV3UHJvcHNbJ2hyZWYnXTtcbiAgICAgICAgICAgICAgICBuZXdQcm9wc1snaHJlZiddID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIC8vIEFkZCB0aGlzIGF0dHJpYnV0ZSB0byBtYWtlIGl0IGVhc3kgdG8gaWRlbnRpZnkgb3B0aW1pemVkIHRhZ3NcbiAgICAgICAgICAgICAgICBuZXdQcm9wc1snZGF0YS1vcHRpbWl6ZWQtZm9udHMnXSA9IHRydWU7XG4gICAgICAgICAgICAgICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY2xvbmVFbGVtZW50KGMsIG5ld1Byb3BzKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY2xvbmVFbGVtZW50KGMsIHtcbiAgICAgICAgICAgIGtleVxuICAgICAgICB9KSk7XG4gICAgfSk7XG59XG4vKipcbiAqIFRoaXMgY29tcG9uZW50IGluamVjdHMgZWxlbWVudHMgdG8gYDxoZWFkPmAgb2YgeW91ciBwYWdlLlxuICogVG8gYXZvaWQgZHVwbGljYXRlZCBgdGFnc2AgaW4gYDxoZWFkPmAgeW91IGNhbiB1c2UgdGhlIGBrZXlgIHByb3BlcnR5LCB3aGljaCB3aWxsIG1ha2Ugc3VyZSBldmVyeSB0YWcgaXMgb25seSByZW5kZXJlZCBvbmNlLlxuICovIGZ1bmN0aW9uIEhlYWQoeyBjaGlsZHJlbiAgfSkge1xuICAgIGNvbnN0IGFtcFN0YXRlID0gKDAsIF9yZWFjdCkudXNlQ29udGV4dChfYW1wQ29udGV4dC5BbXBTdGF0ZUNvbnRleHQpO1xuICAgIGNvbnN0IGhlYWRNYW5hZ2VyID0gKDAsIF9yZWFjdCkudXNlQ29udGV4dChfaGVhZE1hbmFnZXJDb250ZXh0LkhlYWRNYW5hZ2VyQ29udGV4dCk7XG4gICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChfc2lkZUVmZmVjdC5kZWZhdWx0LCB7XG4gICAgICAgIHJlZHVjZUNvbXBvbmVudHNUb1N0YXRlOiByZWR1Y2VDb21wb25lbnRzLFxuICAgICAgICBoZWFkTWFuYWdlcjogaGVhZE1hbmFnZXIsXG4gICAgICAgIGluQW1wTW9kZTogKDAsIF9hbXApLmlzSW5BbXBNb2RlKGFtcFN0YXRlKVxuICAgIH0sIGNoaWxkcmVuKSk7XG59XG52YXIgX2RlZmF1bHQgPSBIZWFkO1xuZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhlYWQuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiZGVmYXVsdEhlYWQiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc2lkZUVmZmVjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfYW1wQ29udGV4dCIsIl9oZWFkTWFuYWdlckNvbnRleHQiLCJfYW1wIiwib2JqIiwiX19lc01vZHVsZSIsIm5ld09iaiIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJnZXQiLCJzZXQiLCJpbkFtcE1vZGUiLCJoZWFkIiwiY3JlYXRlRWxlbWVudCIsImNoYXJTZXQiLCJwdXNoIiwibmFtZSIsImNvbnRlbnQiLCJvbmx5UmVhY3RFbGVtZW50IiwibGlzdCIsImNoaWxkIiwidHlwZSIsIkZyYWdtZW50IiwiY29uY2F0IiwiQ2hpbGRyZW4iLCJ0b0FycmF5IiwicHJvcHMiLCJjaGlsZHJlbiIsInJlZHVjZSIsImZyYWdtZW50TGlzdCIsImZyYWdtZW50Q2hpbGQiLCJNRVRBVFlQRVMiLCJ1bmlxdWUiLCJrZXlzIiwiU2V0IiwidGFncyIsIm1ldGFUeXBlcyIsIm1ldGFDYXRlZ29yaWVzIiwiaCIsImlzVW5pcXVlIiwiaGFzS2V5IiwiaW5kZXhPZiIsInNsaWNlIiwiaGFzIiwiYWRkIiwiaSIsImxlbiIsImxlbmd0aCIsIm1ldGF0eXBlIiwiY2F0ZWdvcnkiLCJjYXRlZ29yaWVzIiwicmVkdWNlQ29tcG9uZW50cyIsImhlYWRFbGVtZW50cyIsImhlYWRFbGVtZW50IiwiaGVhZEVsZW1lbnRDaGlsZHJlbiIsInJldmVyc2UiLCJmaWx0ZXIiLCJtYXAiLCJjIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9PUFRJTUlaRV9GT05UUyIsInNvbWUiLCJ1cmwiLCJzdGFydHNXaXRoIiwibmV3UHJvcHMiLCJ1bmRlZmluZWQiLCJjbG9uZUVsZW1lbnQiLCJIZWFkIiwiYW1wU3RhdGUiLCJ1c2VDb250ZXh0IiwiQW1wU3RhdGVDb250ZXh0IiwiaGVhZE1hbmFnZXIiLCJIZWFkTWFuYWdlckNvbnRleHQiLCJyZWR1Y2VDb21wb25lbnRzVG9TdGF0ZSIsImlzSW5BbXBNb2RlIiwiX2RlZmF1bHQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/head.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/side-effect.js": +/*!**********************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/side-effect.js ***! + \**********************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _toConsumableArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/toConsumableArray.js\");\n\nvar _classCallCheck = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\");\n\nvar _createClass = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\");\n\nvar _assertThisInitialized = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/assertThisInitialized */ \"./node_modules/@babel/runtime/helpers/assertThisInitialized.js\");\n\nvar _inherits = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/inherits */ \"./node_modules/@babel/runtime/helpers/inherits.js\");\n\nvar _possibleConstructorReturn = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/possibleConstructorReturn */ \"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\");\n\nvar _getPrototypeOf = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/getPrototypeOf */ \"./node_modules/@babel/runtime/helpers/getPrototypeOf.js\");\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n return newObj;\n }\n}\n\nvar isServer = false;\n\nvar _class = /*#__PURE__*/function (_react$Component) {\n _inherits(_class, _react$Component);\n\n var _super = _createSuper(_class);\n\n function _class(props) {\n var _this;\n\n _classCallCheck(this, _class);\n\n _this = _super.call(this, props);\n\n _this.emitChange = function () {\n if (_this._hasHeadManager) {\n _this.props.headManager.updateHead(_this.props.reduceComponentsToState(_toConsumableArray(_this.props.headManager.mountedInstances), _this.props));\n }\n };\n\n _this._hasHeadManager = _this.props.headManager && _this.props.headManager.mountedInstances;\n\n if (isServer && _this._hasHeadManager) {\n _this.props.headManager.mountedInstances.add(_assertThisInitialized(_this));\n\n _this.emitChange();\n }\n\n return _this;\n }\n\n _createClass(_class, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this._hasHeadManager) {\n this.props.headManager.mountedInstances.add(this);\n }\n\n this.emitChange();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.emitChange();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this._hasHeadManager) {\n this.props.headManager.mountedInstances[\"delete\"](this);\n }\n\n this.emitChange();\n }\n }, {\n key: \"render\",\n value: function render() {\n return null;\n }\n }]);\n\n return _class;\n}(_react.Component);\n\nexports[\"default\"] = _class;\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvc2lkZS1lZmZlY3QuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxrQkFBQSxHQUFrQixLQUFLLENBQXZCOztBQUNBLElBQUlFLE1BQU0sR0FBR0MsdUJBQXVCLENBQUNDLG1CQUFPLENBQUMsNENBQUQsQ0FBUixDQUFwQzs7QUFDQSxTQUFTRCx1QkFBVCxDQUFpQ0UsR0FBakMsRUFBc0M7QUFDbEMsTUFBSUEsR0FBRyxJQUFJQSxHQUFHLENBQUNDLFVBQWYsRUFBMkI7QUFDdkIsV0FBT0QsR0FBUDtBQUNILEdBRkQsTUFFTztBQUNILFFBQUlFLE1BQU0sR0FBRyxFQUFiOztBQUVBLFFBQUlGLEdBQUcsSUFBSSxJQUFYLEVBQWlCO0FBQ2IsV0FBSSxJQUFJRyxHQUFSLElBQWVILEdBQWYsRUFBbUI7QUFDZixZQUFJUCxNQUFNLENBQUNXLFNBQVAsQ0FBaUJDLGNBQWpCLENBQWdDQyxJQUFoQyxDQUFxQ04sR0FBckMsRUFBMENHLEdBQTFDLENBQUosRUFBb0Q7QUFDaEQsY0FBSUksSUFBSSxHQUFHZCxNQUFNLENBQUNDLGNBQVAsSUFBeUJELE1BQU0sQ0FBQ2Usd0JBQWhDLEdBQTJEZixNQUFNLENBQUNlLHdCQUFQLENBQWdDUixHQUFoQyxFQUFxQ0csR0FBckMsQ0FBM0QsR0FBdUcsRUFBbEg7O0FBRUEsY0FBSUksSUFBSSxDQUFDRSxHQUFMLElBQVlGLElBQUksQ0FBQ0csR0FBckIsRUFBMEI7QUFDdEJqQixZQUFBQSxNQUFNLENBQUNDLGNBQVAsQ0FBc0JRLE1BQXRCLEVBQThCQyxHQUE5QixFQUFtQ0ksSUFBbkM7QUFDSCxXQUZELE1BRU87QUFDSEwsWUFBQUEsTUFBTSxDQUFDQyxHQUFELENBQU4sR0FBY0gsR0FBRyxDQUFDRyxHQUFELENBQWpCO0FBQ0g7QUFDSjtBQUNKO0FBQ0o7O0FBQ0RELElBQUFBLE1BQU0sV0FBTixHQUFpQkYsR0FBakI7QUFDQSxXQUFPRSxNQUFQO0FBQ0g7QUFDSjs7QUFDRCxJQUFNUyxRQUFRLFFBQWQ7O0lBQ01DOzs7OztBQUNGLGtCQUFZQyxLQUFaLEVBQWtCO0FBQUE7O0FBQUE7O0FBQ2QsOEJBQU1BLEtBQU47O0FBQ0EsVUFBS0MsVUFBTCxHQUFrQixZQUFJO0FBQ2xCLFVBQUksTUFBS0MsZUFBVCxFQUEwQjtBQUN0QixjQUFLRixLQUFMLENBQVdHLFdBQVgsQ0FBdUJDLFVBQXZCLENBQWtDLE1BQUtKLEtBQUwsQ0FBV0ssdUJBQVgsb0JBQzNCLE1BQUtMLEtBQUwsQ0FBV0csV0FBWCxDQUF1QkcsZ0JBREksR0FFL0IsTUFBS04sS0FGMEIsQ0FBbEM7QUFHSDtBQUNKLEtBTkQ7O0FBT0EsVUFBS0UsZUFBTCxHQUF1QixNQUFLRixLQUFMLENBQVdHLFdBQVgsSUFBMEIsTUFBS0gsS0FBTCxDQUFXRyxXQUFYLENBQXVCRyxnQkFBeEU7O0FBQ0EsUUFBSVIsUUFBUSxJQUFJLE1BQUtJLGVBQXJCLEVBQXNDO0FBQ2xDLFlBQUtGLEtBQUwsQ0FBV0csV0FBWCxDQUF1QkcsZ0JBQXZCLENBQXdDQyxHQUF4Qzs7QUFDQSxZQUFLTixVQUFMO0FBQ0g7O0FBYmE7QUFjakI7Ozs7V0FDRCw2QkFBb0I7QUFDaEIsVUFBSSxLQUFLQyxlQUFULEVBQTBCO0FBQ3RCLGFBQUtGLEtBQUwsQ0FBV0csV0FBWCxDQUF1QkcsZ0JBQXZCLENBQXdDQyxHQUF4QyxDQUE0QyxJQUE1QztBQUNIOztBQUNELFdBQUtOLFVBQUw7QUFDSDs7O1dBQ0QsOEJBQXFCO0FBQ2pCLFdBQUtBLFVBQUw7QUFDSDs7O1dBQ0QsZ0NBQXVCO0FBQ25CLFVBQUksS0FBS0MsZUFBVCxFQUEwQjtBQUN0QixhQUFLRixLQUFMLENBQVdHLFdBQVgsQ0FBdUJHLGdCQUF2QixXQUErQyxJQUEvQztBQUNIOztBQUNELFdBQUtMLFVBQUw7QUFDSDs7O1dBQ0Qsa0JBQVM7QUFDTCxhQUFPLElBQVA7QUFDSDs7OztFQWpDZ0JqQixNQUFNLENBQUN3Qjs7QUFtQzVCMUIsa0JBQUEsR0FBa0JpQixNQUFsQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvc2lkZS1lZmZlY3QuanM/NDA4YyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IHZvaWQgMDtcbnZhciBfcmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7XG4gICAgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkge1xuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBuZXdPYmogPSB7XG4gICAgICAgIH07XG4gICAgICAgIGlmIChvYmogIT0gbnVsbCkge1xuICAgICAgICAgICAgZm9yKHZhciBrZXkgaW4gb2JqKXtcbiAgICAgICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiB7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGlmIChkZXNjLmdldCB8fCBkZXNjLnNldCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld09ialtrZXldID0gb2JqW2tleV07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbmV3T2JqLmRlZmF1bHQgPSBvYmo7XG4gICAgICAgIHJldHVybiBuZXdPYmo7XG4gICAgfVxufVxuY29uc3QgaXNTZXJ2ZXIgPSB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJztcbmNsYXNzIF9jbGFzcyBleHRlbmRzIF9yZWFjdC5Db21wb25lbnQge1xuICAgIGNvbnN0cnVjdG9yKHByb3BzKXtcbiAgICAgICAgc3VwZXIocHJvcHMpO1xuICAgICAgICB0aGlzLmVtaXRDaGFuZ2UgPSAoKT0+e1xuICAgICAgICAgICAgaWYgKHRoaXMuX2hhc0hlYWRNYW5hZ2VyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5oZWFkTWFuYWdlci51cGRhdGVIZWFkKHRoaXMucHJvcHMucmVkdWNlQ29tcG9uZW50c1RvU3RhdGUoW1xuICAgICAgICAgICAgICAgICAgICAuLi50aGlzLnByb3BzLmhlYWRNYW5hZ2VyLm1vdW50ZWRJbnN0YW5jZXNcbiAgICAgICAgICAgICAgICBdLCB0aGlzLnByb3BzKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuX2hhc0hlYWRNYW5hZ2VyID0gdGhpcy5wcm9wcy5oZWFkTWFuYWdlciAmJiB0aGlzLnByb3BzLmhlYWRNYW5hZ2VyLm1vdW50ZWRJbnN0YW5jZXM7XG4gICAgICAgIGlmIChpc1NlcnZlciAmJiB0aGlzLl9oYXNIZWFkTWFuYWdlcikge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5oZWFkTWFuYWdlci5tb3VudGVkSW5zdGFuY2VzLmFkZCh0aGlzKTtcbiAgICAgICAgICAgIHRoaXMuZW1pdENoYW5nZSgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgICBpZiAodGhpcy5faGFzSGVhZE1hbmFnZXIpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMuaGVhZE1hbmFnZXIubW91bnRlZEluc3RhbmNlcy5hZGQodGhpcyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbWl0Q2hhbmdlKCk7XG4gICAgfVxuICAgIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICAgICAgdGhpcy5lbWl0Q2hhbmdlKCk7XG4gICAgfVxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgICBpZiAodGhpcy5faGFzSGVhZE1hbmFnZXIpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMuaGVhZE1hbmFnZXIubW91bnRlZEluc3RhbmNlcy5kZWxldGUodGhpcyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbWl0Q2hhbmdlKCk7XG4gICAgfVxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxufVxuZXhwb3J0cy5kZWZhdWx0ID0gX2NsYXNzO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zaWRlLWVmZmVjdC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJvYmoiLCJfX2VzTW9kdWxlIiwibmV3T2JqIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImdldCIsInNldCIsImlzU2VydmVyIiwiX2NsYXNzIiwicHJvcHMiLCJlbWl0Q2hhbmdlIiwiX2hhc0hlYWRNYW5hZ2VyIiwiaGVhZE1hbmFnZXIiLCJ1cGRhdGVIZWFkIiwicmVkdWNlQ29tcG9uZW50c1RvU3RhdGUiLCJtb3VudGVkSW5zdGFuY2VzIiwiYWRkIiwiQ29tcG9uZW50Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/side-effect.js\n"); + +/***/ }) + +}]); \ No newline at end of file diff --git a/.next/static/chunks/fallback/pages/_app.js b/.next/static/chunks/fallback/pages/_app.js new file mode 100644 index 0000000..b00374d --- /dev/null +++ b/.next/static/chunks/fallback/pages/_app.js @@ -0,0 +1,39 @@ +/* + * 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/). + */ +(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["pages/_app"],{ + +/***/ "./node_modules/next/dist/pages/_app.js": +/*!**********************************************!*\ + !*** ./node_modules/next/dist/pages/_app.js ***! + \**********************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _classCallCheck = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\");\n\nvar _createClass = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\");\n\nvar _inherits = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/inherits */ \"./node_modules/@babel/runtime/helpers/inherits.js\");\n\nvar _possibleConstructorReturn = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/possibleConstructorReturn */ \"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\");\n\nvar _getPrototypeOf = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/getPrototypeOf */ \"./node_modules/@babel/runtime/helpers/getPrototypeOf.js\");\n\nvar _regeneratorRuntime = __webpack_require__(/*! ./node_modules/@babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"AppInitialProps\", ({\n enumerable: true,\n get: function get() {\n return _utils.AppInitialProps;\n }\n}));\nObject.defineProperty(exports, \"NextWebVitalsMetric\", ({\n enumerable: true,\n get: function get() {\n return _utils.NextWebVitalsMetric;\n }\n}));\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _utils = __webpack_require__(/*! ../shared/lib/utils */ \"./node_modules/next/dist/shared/lib/utils.js\");\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _appGetInitialProps() {\n _appGetInitialProps =\n /**\n * `App` component is used for initialize of pages. It allows for overwriting and full control of the `page` initialization.\n * This allows for keeping state between navigation, custom error handling, injecting additional data.\n */\n _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {\n var Component, ctx, pageProps;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n Component = _ref.Component, ctx = _ref.ctx;\n _context.next = 3;\n return (0, _utils).loadGetInitialProps(Component, ctx);\n\n case 3:\n pageProps = _context.sent;\n return _context.abrupt(\"return\", {\n pageProps: pageProps\n });\n\n case 5:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n return _appGetInitialProps.apply(this, arguments);\n}\n\nfunction appGetInitialProps(_) {\n return _appGetInitialProps.apply(this, arguments);\n}\n\nvar App = /*#__PURE__*/function (_react$default$Compon) {\n _inherits(App, _react$default$Compon);\n\n var _super = _createSuper(App);\n\n function App() {\n _classCallCheck(this, App);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(App, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n Component = _this$props.Component,\n pageProps = _this$props.pageProps;\n return /*#__PURE__*/_react[\"default\"].createElement(Component, Object.assign({}, pageProps));\n }\n }]);\n\n return App;\n}(_react[\"default\"].Component);\n\nApp.origGetInitialProps = appGetInitialProps;\nApp.getInitialProps = appGetInitialProps;\nexports[\"default\"] = App;\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3BhZ2VzL19hcHAuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDYkEsOENBQTZDO0FBQ3pDRyxFQUFBQSxLQUFLLEVBQUU7QUFEa0MsQ0FBN0M7QUFHQUgsbURBQWtEO0FBQzlDSSxFQUFBQSxVQUFVLEVBQUUsSUFEa0M7QUFFOUNDLEVBQUFBLEdBQUcsRUFBRSxlQUFXO0FBQ1osV0FBT0MsTUFBTSxDQUFDQyxlQUFkO0FBQ0g7QUFKNkMsQ0FBbEQ7QUFNQVAsdURBQXNEO0FBQ2xESSxFQUFBQSxVQUFVLEVBQUUsSUFEc0M7QUFFbERDLEVBQUFBLEdBQUcsRUFBRSxlQUFXO0FBQ1osV0FBT0MsTUFBTSxDQUFDRSxtQkFBZDtBQUNIO0FBSmlELENBQXREO0FBTUFOLGtCQUFBLEdBQWtCLEtBQUssQ0FBdkI7O0FBQ0EsSUFBSU8sTUFBTSxHQUFHQyxzQkFBc0IsQ0FBQ0MsbUJBQU8sQ0FBQyw0Q0FBRCxDQUFSLENBQW5DOztBQUNBLElBQUlMLE1BQU0sR0FBR0ssbUJBQU8sQ0FBQyx5RUFBRCxDQUFwQjs7QUFDQSxTQUFTQyxrQkFBVCxDQUE0QkMsR0FBNUIsRUFBaUNDLE9BQWpDLEVBQTBDQyxNQUExQyxFQUFrREMsS0FBbEQsRUFBeURDLE1BQXpELEVBQWlFQyxHQUFqRSxFQUFzRUMsR0FBdEUsRUFBMkU7QUFDdkUsTUFBSTtBQUNBLFFBQUlDLElBQUksR0FBR1AsR0FBRyxDQUFDSyxHQUFELENBQUgsQ0FBU0MsR0FBVCxDQUFYO0FBQ0EsUUFBSWhCLEtBQUssR0FBR2lCLElBQUksQ0FBQ2pCLEtBQWpCO0FBQ0gsR0FIRCxDQUdFLE9BQU9rQixLQUFQLEVBQWM7QUFDWk4sSUFBQUEsTUFBTSxDQUFDTSxLQUFELENBQU47QUFDQTtBQUNIOztBQUNELE1BQUlELElBQUksQ0FBQ0UsSUFBVCxFQUFlO0FBQ1hSLElBQUFBLE9BQU8sQ0FBQ1gsS0FBRCxDQUFQO0FBQ0gsR0FGRCxNQUVPO0FBQ0hvQixJQUFBQSxPQUFPLENBQUNULE9BQVIsQ0FBZ0JYLEtBQWhCLEVBQXVCcUIsSUFBdkIsQ0FBNEJSLEtBQTVCLEVBQW1DQyxNQUFuQztBQUNIO0FBQ0o7O0FBQ0QsU0FBU1EsaUJBQVQsQ0FBMkJDLEVBQTNCLEVBQStCO0FBQzNCLFNBQU8sWUFBVztBQUNkLFFBQUlDLElBQUksR0FBRyxJQUFYO0FBQUEsUUFBaUJDLElBQUksR0FBR0MsU0FBeEI7QUFDQSxXQUFPLElBQUlOLE9BQUosQ0FBWSxVQUFTVCxPQUFULEVBQWtCQyxNQUFsQixFQUEwQjtBQUN6QyxVQUFJRixHQUFHLEdBQUdhLEVBQUUsQ0FBQ0ksS0FBSCxDQUFTSCxJQUFULEVBQWVDLElBQWYsQ0FBVjs7QUFDQSxlQUFTWixLQUFULENBQWViLEtBQWYsRUFBc0I7QUFDbEJTLFFBQUFBLGtCQUFrQixDQUFDQyxHQUFELEVBQU1DLE9BQU4sRUFBZUMsTUFBZixFQUF1QkMsS0FBdkIsRUFBOEJDLE1BQTlCLEVBQXNDLE1BQXRDLEVBQThDZCxLQUE5QyxDQUFsQjtBQUNIOztBQUNELGVBQVNjLE1BQVQsQ0FBZ0JjLEdBQWhCLEVBQXFCO0FBQ2pCbkIsUUFBQUEsa0JBQWtCLENBQUNDLEdBQUQsRUFBTUMsT0FBTixFQUFlQyxNQUFmLEVBQXVCQyxLQUF2QixFQUE4QkMsTUFBOUIsRUFBc0MsT0FBdEMsRUFBK0NjLEdBQS9DLENBQWxCO0FBQ0g7O0FBQ0RmLE1BQUFBLEtBQUssQ0FBQ2dCLFNBQUQsQ0FBTDtBQUNILEtBVE0sQ0FBUDtBQVVILEdBWkQ7QUFhSDs7QUFDRCxTQUFTdEIsc0JBQVQsQ0FBZ0N1QixHQUFoQyxFQUFxQztBQUNqQyxTQUFPQSxHQUFHLElBQUlBLEdBQUcsQ0FBQ0MsVUFBWCxHQUF3QkQsR0FBeEIsR0FBOEI7QUFDakMsZUFBU0E7QUFEd0IsR0FBckM7QUFHSDs7QUFDRCxTQUFTRSxtQkFBVCxHQUErQjtBQUMzQkEsRUFBQUEsbUJBQW1CO0FBQUc7QUFDMUI7QUFDQTtBQUNBO0FBQUlWLEVBQUFBLGlCQUFpQix3Q0FBQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBWVcsWUFBQUEsU0FBWixRQUFZQSxTQUFaLEVBQXdCQyxHQUF4QixRQUF3QkEsR0FBeEI7QUFBQTtBQUNJLG1CQUFNLENBQUMsR0FBRy9CLE1BQUosRUFBWWdDLG1CQUFaLENBQWdDRixTQUFoQyxFQUEyQ0MsR0FBM0MsQ0FBTjs7QUFESjtBQUNSRSxZQUFBQSxTQURRO0FBQUEsNkNBRVA7QUFDSEEsY0FBQUEsU0FBUyxFQUFUQTtBQURHLGFBRk87O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsR0FBRCxFQUhqQjtBQVNBLFNBQU9KLG1CQUFtQixDQUFDTCxLQUFwQixDQUEwQixJQUExQixFQUFnQ0QsU0FBaEMsQ0FBUDtBQUNIOztBQUNELFNBQVNXLGtCQUFULENBQTRCQyxDQUE1QixFQUErQjtBQUMzQixTQUFPTixtQkFBbUIsQ0FBQ0wsS0FBcEIsQ0FBMEIsSUFBMUIsRUFBZ0NELFNBQWhDLENBQVA7QUFDSDs7SUFDS2E7Ozs7Ozs7Ozs7Ozs7V0FDRixrQkFBUztBQUNMLHdCQUFtQyxLQUFLQyxLQUF4QztBQUFBLFVBQVFQLFNBQVIsZUFBUUEsU0FBUjtBQUFBLFVBQW9CRyxTQUFwQixlQUFvQkEsU0FBcEI7QUFDQSxhQUFPLGFBQWM5QixNQUFNLFdBQU4sQ0FBZW1DLGFBQWYsQ0FBNkJSLFNBQTdCLEVBQXdDcEMsTUFBTSxDQUFDNkMsTUFBUCxDQUFjLEVBQWQsRUFDMUROLFNBRDBELENBQXhDLENBQXJCO0FBRUg7Ozs7RUFMYTlCLE1BQU0sV0FBTixDQUFlMkI7O0FBT2pDTSxHQUFHLENBQUNJLG1CQUFKLEdBQTBCTixrQkFBMUI7QUFDQUUsR0FBRyxDQUFDSyxlQUFKLEdBQXNCUCxrQkFBdEI7QUFDQXRDLGtCQUFBLEdBQWtCd0MsR0FBbEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9wYWdlcy9fYXBwLmpzPzk2MWQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJBcHBJbml0aWFsUHJvcHNcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF91dGlscy5BcHBJbml0aWFsUHJvcHM7XG4gICAgfVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJOZXh0V2ViVml0YWxzTWV0cmljXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfdXRpbHMuTmV4dFdlYlZpdGFsc01ldHJpYztcbiAgICB9XG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IHZvaWQgMDtcbnZhciBfcmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG52YXIgX3V0aWxzID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvdXRpbHNcIik7XG5mdW5jdGlvbiBhc3luY0dlbmVyYXRvclN0ZXAoZ2VuLCByZXNvbHZlLCByZWplY3QsIF9uZXh0LCBfdGhyb3csIGtleSwgYXJnKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgdmFyIGluZm8gPSBnZW5ba2V5XShhcmcpO1xuICAgICAgICB2YXIgdmFsdWUgPSBpbmZvLnZhbHVlO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGluZm8uZG9uZSkge1xuICAgICAgICByZXNvbHZlKHZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBQcm9taXNlLnJlc29sdmUodmFsdWUpLnRoZW4oX25leHQsIF90aHJvdyk7XG4gICAgfVxufVxuZnVuY3Rpb24gX2FzeW5jVG9HZW5lcmF0b3IoZm4pIHtcbiAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBzZWxmID0gdGhpcywgYXJncyA9IGFyZ3VtZW50cztcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICAgICAgdmFyIGdlbiA9IGZuLmFwcGx5KHNlbGYsIGFyZ3MpO1xuICAgICAgICAgICAgZnVuY3Rpb24gX25leHQodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBhc3luY0dlbmVyYXRvclN0ZXAoZ2VuLCByZXNvbHZlLCByZWplY3QsIF9uZXh0LCBfdGhyb3csIFwibmV4dFwiLCB2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmdW5jdGlvbiBfdGhyb3coZXJyKSB7XG4gICAgICAgICAgICAgICAgYXN5bmNHZW5lcmF0b3JTdGVwKGdlbiwgcmVzb2x2ZSwgcmVqZWN0LCBfbmV4dCwgX3Rocm93LCBcInRocm93XCIsIGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBfbmV4dCh1bmRlZmluZWQpO1xuICAgICAgICB9KTtcbiAgICB9O1xufVxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuZnVuY3Rpb24gX2FwcEdldEluaXRpYWxQcm9wcygpIHtcbiAgICBfYXBwR2V0SW5pdGlhbFByb3BzID0gLyoqXG4gKiBgQXBwYCBjb21wb25lbnQgaXMgdXNlZCBmb3IgaW5pdGlhbGl6ZSBvZiBwYWdlcy4gSXQgYWxsb3dzIGZvciBvdmVyd3JpdGluZyBhbmQgZnVsbCBjb250cm9sIG9mIHRoZSBgcGFnZWAgaW5pdGlhbGl6YXRpb24uXG4gKiBUaGlzIGFsbG93cyBmb3Iga2VlcGluZyBzdGF0ZSBiZXR3ZWVuIG5hdmlnYXRpb24sIGN1c3RvbSBlcnJvciBoYW5kbGluZywgaW5qZWN0aW5nIGFkZGl0aW9uYWwgZGF0YS5cbiAqLyBfYXN5bmNUb0dlbmVyYXRvcihmdW5jdGlvbiooeyBDb21wb25lbnQgLCBjdHggIH0pIHtcbiAgICAgICAgY29uc3QgcGFnZVByb3BzID0geWllbGQgKDAsIF91dGlscykubG9hZEdldEluaXRpYWxQcm9wcyhDb21wb25lbnQsIGN0eCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwYWdlUHJvcHNcbiAgICAgICAgfTtcbiAgICB9KTtcbiAgICByZXR1cm4gX2FwcEdldEluaXRpYWxQcm9wcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufVxuZnVuY3Rpb24gYXBwR2V0SW5pdGlhbFByb3BzKF8pIHtcbiAgICByZXR1cm4gX2FwcEdldEluaXRpYWxQcm9wcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufVxuY2xhc3MgQXBwIGV4dGVuZHMgX3JlYWN0LmRlZmF1bHQuQ29tcG9uZW50IHtcbiAgICByZW5kZXIoKSB7XG4gICAgICAgIGNvbnN0IHsgQ29tcG9uZW50ICwgcGFnZVByb3BzICB9ID0gdGhpcy5wcm9wcztcbiAgICAgICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChDb21wb25lbnQsIE9iamVjdC5hc3NpZ24oe1xuICAgICAgICB9LCBwYWdlUHJvcHMpKSk7XG4gICAgfVxufVxuQXBwLm9yaWdHZXRJbml0aWFsUHJvcHMgPSBhcHBHZXRJbml0aWFsUHJvcHM7XG5BcHAuZ2V0SW5pdGlhbFByb3BzID0gYXBwR2V0SW5pdGlhbFByb3BzO1xuZXhwb3J0cy5kZWZhdWx0ID0gQXBwO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1fYXBwLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImVudW1lcmFibGUiLCJnZXQiLCJfdXRpbHMiLCJBcHBJbml0aWFsUHJvcHMiLCJOZXh0V2ViVml0YWxzTWV0cmljIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJnZW4iLCJyZXNvbHZlIiwicmVqZWN0IiwiX25leHQiLCJfdGhyb3ciLCJrZXkiLCJhcmciLCJpbmZvIiwiZXJyb3IiLCJkb25lIiwiUHJvbWlzZSIsInRoZW4iLCJfYXN5bmNUb0dlbmVyYXRvciIsImZuIiwic2VsZiIsImFyZ3MiLCJhcmd1bWVudHMiLCJhcHBseSIsImVyciIsInVuZGVmaW5lZCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfYXBwR2V0SW5pdGlhbFByb3BzIiwiQ29tcG9uZW50IiwiY3R4IiwibG9hZEdldEluaXRpYWxQcm9wcyIsInBhZ2VQcm9wcyIsImFwcEdldEluaXRpYWxQcm9wcyIsIl8iLCJBcHAiLCJwcm9wcyIsImNyZWF0ZUVsZW1lbnQiLCJhc3NpZ24iLCJvcmlnR2V0SW5pdGlhbFByb3BzIiwiZ2V0SW5pdGlhbFByb3BzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/pages/_app.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2F_app&absolutePagePath=next%2Fdist%2Fpages%2F_app!": +/*!********************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2F_app&absolutePagePath=next%2Fdist%2Fpages%2F_app! ***! + \********************************************************************************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/_app\",\n function () {\n return __webpack_require__(/*! next/dist/pages/_app */ \"./node_modules/next/dist/pages/_app.js\");\n }\n ]);\n if(true) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/_app\"])\n });\n }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWNsaWVudC1wYWdlcy1sb2FkZXIuanM/cGFnZT0lMkZfYXBwJmFic29sdXRlUGFnZVBhdGg9bmV4dCUyRmRpc3QlMkZwYWdlcyUyRl9hcHAhLmpzIiwibWFwcGluZ3MiOiI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLG1CQUFPLENBQUMsb0VBQXNCO0FBQzdDO0FBQ0E7QUFDQSxPQUFPLElBQVU7QUFDakIsTUFBTSxVQUFVO0FBQ2hCO0FBQ0EsT0FBTztBQUNQO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLz80M2Y3Il0sInNvdXJjZXNDb250ZW50IjpbIlxuICAgICh3aW5kb3cuX19ORVhUX1AgPSB3aW5kb3cuX19ORVhUX1AgfHwgW10pLnB1c2goW1xuICAgICAgXCIvX2FwcFwiLFxuICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gcmVxdWlyZShcIm5leHQvZGlzdC9wYWdlcy9fYXBwXCIpO1xuICAgICAgfVxuICAgIF0pO1xuICAgIGlmKG1vZHVsZS5ob3QpIHtcbiAgICAgIG1vZHVsZS5ob3QuZGlzcG9zZShmdW5jdGlvbiAoKSB7XG4gICAgICAgIHdpbmRvdy5fX05FWFRfUC5wdXNoKFtcIi9fYXBwXCJdKVxuICAgICAgfSk7XG4gICAgfVxuICAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2F_app&absolutePagePath=next%2Fdist%2Fpages%2F_app!\n"); + +/***/ }) + +}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); } +/******/ __webpack_require__.O(0, ["main"], function() { return __webpack_exec__("./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2F_app&absolutePagePath=next%2Fdist%2Fpages%2F_app!"), __webpack_exec__("./node_modules/next/dist/client/router.js"); }); +/******/ var __webpack_exports__ = __webpack_require__.O(); +/******/ _N_E = __webpack_exports__; +/******/ } +]); \ No newline at end of file diff --git a/.next/static/chunks/fallback/pages/_error.js b/.next/static/chunks/fallback/pages/_error.js new file mode 100644 index 0000000..acee75d --- /dev/null +++ b/.next/static/chunks/fallback/pages/_error.js @@ -0,0 +1,83 @@ +/* + * 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/). + */ +(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["pages/_error"],{ + +/***/ "./node_modules/next/dist/pages/_error.js": +/*!************************************************!*\ + !*** ./node_modules/next/dist/pages/_error.js ***! + \************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _classCallCheck = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\");\n\nvar _createClass = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\");\n\nvar _inherits = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/inherits */ \"./node_modules/@babel/runtime/helpers/inherits.js\");\n\nvar _possibleConstructorReturn = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/possibleConstructorReturn */ \"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\");\n\nvar _getPrototypeOf = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/getPrototypeOf */ \"./node_modules/@babel/runtime/helpers/getPrototypeOf.js\");\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _head = _interopRequireDefault(__webpack_require__(/*! ../shared/lib/head */ \"./node_modules/next/dist/shared/lib/head.js\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar statusCodes = {\n 400: 'Bad Request',\n 404: 'This page could not be found',\n 405: 'Method Not Allowed',\n 500: 'Internal Server Error'\n};\n\nfunction _getInitialProps(_ref) {\n var res = _ref.res,\n err = _ref.err;\n var statusCode = res && res.statusCode ? res.statusCode : err ? err.statusCode : 404;\n return {\n statusCode: statusCode\n };\n}\n\nvar Error = /*#__PURE__*/function (_react$default$Compon) {\n _inherits(Error, _react$default$Compon);\n\n var _super = _createSuper(Error);\n\n function Error() {\n _classCallCheck(this, Error);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Error, [{\n key: \"render\",\n value: function render() {\n var statusCode = this.props.statusCode;\n var title = this.props.title || statusCodes[statusCode] || 'An unexpected error has occurred';\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n style: styles.error\n }, /*#__PURE__*/_react[\"default\"].createElement(_head[\"default\"], null, /*#__PURE__*/_react[\"default\"].createElement(\"title\", null, statusCode ? \"\".concat(statusCode, \": \").concat(title) : 'Application error: a client-side exception has occurred')), /*#__PURE__*/_react[\"default\"].createElement(\"div\", null, /*#__PURE__*/_react[\"default\"].createElement(\"style\", {\n dangerouslySetInnerHTML: {\n __html: 'body { margin: 0 }'\n }\n }), statusCode ? /*#__PURE__*/_react[\"default\"].createElement(\"h1\", {\n style: styles.h1\n }, statusCode) : null, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n style: styles.desc\n }, /*#__PURE__*/_react[\"default\"].createElement(\"h2\", {\n style: styles.h2\n }, this.props.title || statusCode ? title : /*#__PURE__*/_react[\"default\"].createElement(_react[\"default\"].Fragment, null, \"Application error: a client-side exception has occurred (see the browser console for more information)\"), \".\"))));\n }\n }]);\n\n return Error;\n}(_react[\"default\"].Component);\n\nError.displayName = 'ErrorPage';\nError.getInitialProps = _getInitialProps;\nError.origGetInitialProps = _getInitialProps;\nexports[\"default\"] = Error;\nvar styles = {\n error: {\n color: '#000',\n background: '#fff',\n fontFamily: '-apple-system, BlinkMacSystemFont, Roboto, \"Segoe UI\", \"Fira Sans\", Avenir, \"Helvetica Neue\", \"Lucida Grande\", sans-serif',\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 textAlign: 'left',\n lineHeight: '49px',\n height: '49px',\n verticalAlign: 'middle'\n },\n h1: {\n display: 'inline-block',\n borderRight: '1px solid rgba(0, 0, 0,.3)',\n margin: 0,\n marginRight: '20px',\n padding: '10px 23px 10px 0',\n fontSize: '24px',\n fontWeight: 500,\n verticalAlign: 'top'\n },\n h2: {\n fontSize: '14px',\n fontWeight: 'normal',\n lineHeight: 'inherit',\n margin: 0,\n padding: 0\n }\n};\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3BhZ2VzL19lcnJvci5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDYkEsOENBQTZDO0FBQ3pDRyxFQUFBQSxLQUFLLEVBQUU7QUFEa0MsQ0FBN0M7QUFHQUQsa0JBQUEsR0FBa0IsS0FBSyxDQUF2Qjs7QUFDQSxJQUFJRSxNQUFNLEdBQUdDLHNCQUFzQixDQUFDQyxtQkFBTyxDQUFDLDRDQUFELENBQVIsQ0FBbkM7O0FBQ0EsSUFBSUMsS0FBSyxHQUFHRixzQkFBc0IsQ0FBQ0MsbUJBQU8sQ0FBQyx1RUFBRCxDQUFSLENBQWxDOztBQUNBLFNBQVNELHNCQUFULENBQWdDRyxHQUFoQyxFQUFxQztBQUNqQyxTQUFPQSxHQUFHLElBQUlBLEdBQUcsQ0FBQ0MsVUFBWCxHQUF3QkQsR0FBeEIsR0FBOEI7QUFDakMsZUFBU0E7QUFEd0IsR0FBckM7QUFHSDs7QUFDRCxJQUFNRSxXQUFXLEdBQUc7QUFDaEIsT0FBSyxhQURXO0FBRWhCLE9BQUssOEJBRlc7QUFHaEIsT0FBSyxvQkFIVztBQUloQixPQUFLO0FBSlcsQ0FBcEI7O0FBTUEsU0FBU0MsZ0JBQVQsT0FBMEM7QUFBQSxNQUFkQyxHQUFjLFFBQWRBLEdBQWM7QUFBQSxNQUFSQyxHQUFRLFFBQVJBLEdBQVE7QUFDdEMsTUFBTUMsVUFBVSxHQUFHRixHQUFHLElBQUlBLEdBQUcsQ0FBQ0UsVUFBWCxHQUF3QkYsR0FBRyxDQUFDRSxVQUE1QixHQUF5Q0QsR0FBRyxHQUFHQSxHQUFHLENBQUNDLFVBQVAsR0FBb0IsR0FBbkY7QUFDQSxTQUFPO0FBQ0hBLElBQUFBLFVBQVUsRUFBVkE7QUFERyxHQUFQO0FBR0g7O0lBQ0tDOzs7Ozs7Ozs7Ozs7O1dBQ0Ysa0JBQVM7QUFDTCxVQUFRRCxVQUFSLEdBQXdCLEtBQUtFLEtBQTdCLENBQVFGLFVBQVI7QUFDQSxVQUFNRyxLQUFLLEdBQUcsS0FBS0QsS0FBTCxDQUFXQyxLQUFYLElBQW9CUCxXQUFXLENB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LElBQUFBLFFBQVEsRUFBRSxNQU5WO0FBT0FDLElBQUFBLFVBQVUsRUFBRSxHQVBaO0FBUUFOLElBQUFBLGFBQWEsRUFBRTtBQVJmLEdBbkJPO0FBNkJYaEIsRUFBQUEsRUFBRSxFQUFFO0FBQ0FxQixJQUFBQSxRQUFRLEVBQUUsTUFEVjtBQUVBQyxJQUFBQSxVQUFVLEVBQUUsUUFGWjtBQUdBUCxJQUFBQSxVQUFVLEVBQUUsU0FIWjtBQUlBRyxJQUFBQSxNQUFNLEVBQUUsQ0FKUjtBQUtBRSxJQUFBQSxPQUFPLEVBQUU7QUFMVDtBQTdCTyxDQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvcGFnZXMvX2Vycm9yLmpzPzE4ZjIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7XG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xudmFyIF9oZWFkID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9oZWFkXCIpKTtcbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbmNvbnN0IHN0YXR1c0NvZGVzID0ge1xuICAgIDQwMDogJ0JhZCBSZXF1ZXN0JyxcbiAgICA0MDQ6ICdUaGlzIHBhZ2UgY291bGQgbm90IGJlIGZvdW5kJyxcbiAgICA0MDU6ICdNZXRob2QgTm90IEFsbG93ZWQnLFxuICAgIDUwMDogJ0ludGVybmFsIFNlcnZlciBFcnJvcidcbn07XG5mdW5jdGlvbiBfZ2V0SW5pdGlhbFByb3BzKHsgcmVzICwgZXJyICB9KSB7XG4gICAgY29uc3Qgc3RhdHVzQ29kZSA9IHJlcyAmJiByZXMuc3RhdHVzQ29kZSA/IHJlcy5zdGF0dXNDb2RlIDogZXJyID8gZXJyLnN0YXR1c0NvZGUgOiA0MDQ7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc3RhdHVzQ29kZVxuICAgIH07XG59XG5jbGFzcyBFcnJvciBleHRlbmRzIF9yZWFjdC5kZWZhdWx0LkNvbXBvbmVudCB7XG4gICAgcmVuZGVyKCkge1xuICAgICAgICBjb25zdCB7IHN0YXR1c0NvZGUgIH0gPSB0aGlzLnByb3BzO1xuICAgICAgICBjb25zdCB0aXRsZSA9IHRoaXMucHJvcHMudGl0bGUgfHwgc3RhdHVzQ29kZXNbc3RhdHVzQ29kZV0gfHwgJ0FuIHVuZXhwZWN0ZWQgZXJyb3IgaGFzIG9jY3VycmVkJztcbiAgICAgICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgICAgICBzdHlsZTogc3R5bGVzLmVycm9yXG4gICAgICAgIH0sIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChfaGVhZC5kZWZhdWx0LCBudWxsLCAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJ0aXRsZVwiLCBudWxsLCBzdGF0dXNDb2RlID8gYCR7c3RhdHVzQ29kZX06ICR7dGl0bGV9YCA6ICdBcHBsaWNhdGlvbiBlcnJvcjogYSBjbGllbnQtc2lkZSBleGNlcHRpb24gaGFzIG9jY3VycmVkJykpLCAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgbnVsbCwgLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwic3R5bGVcIiwge1xuICAgICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6IHtcbiAgICAgICAgICAgICAgICBfX2h0bWw6ICdib2R5IHsgbWFyZ2luOiAwIH0nXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLCBzdGF0dXNDb2RlID8gLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiaDFcIiwge1xuICAgICAgICAgICAgc3R5bGU6IHN0eWxlcy5oMVxuICAgICAgICB9LCBzdGF0dXNDb2RlKSA6IG51bGwsIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgICAgICBzdHlsZTogc3R5bGVzLmRlc2NcbiAgICAgICAgfSwgLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiaDJcIiwge1xuICAgICAgICAgICAgc3R5bGU6IHN0eWxlcy5oMlxuICAgICAgICB9LCB0aGlzLnByb3BzLnRpdGxlIHx8IHN0YXR1c0NvZGUgPyB0aXRsZSA6IC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChfcmVhY3QuZGVmYXVsdC5GcmFnbWVudCwgbnVsbCwgXCJBcHBsaWNhdGlvbiBlcnJvcjogYSBjbGllbnQtc2lkZSBleGNlcHRpb24gaGFzIG9jY3VycmVkIChzZWUgdGhlIGJyb3dzZXIgY29uc29sZSBmb3IgbW9yZSBpbmZvcm1hdGlvbilcIiksIFwiLlwiKSkpKSk7XG4gICAgfVxufVxuRXJyb3IuZGlzcGxheU5hbWUgPSAnRXJyb3JQYWdlJztcbkVycm9yLmdldEluaXRpYWxQcm9wcyA9IF9nZXRJbml0aWFsUHJvcHM7XG5FcnJvci5vcmlnR2V0SW5pdGlhbFByb3BzID0gX2dldEluaXRpYWxQcm9wcztcbmV4cG9ydHMuZGVmYXVsdCA9IEVycm9yO1xuY29uc3Qgc3R5bGVzID0ge1xuICAgIGVycm9yOiB7XG4gICAgICAgIGNvbG9yOiAnIzAwMCcsXG4gICAgICAgIGJhY2tncm91bmQ6ICcjZmZmJyxcbiAgICAgICAgZm9udEZhbWlseTogJy1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgUm9ib3RvLCBcIlNlZ29lIFVJXCIsIFwiRmlyYSBTYW5zXCIsIEF2ZW5pciwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkx1Y2lkYSBHcmFuZGVcIiwgc2Fucy1zZXJpZicsXG4gICAgICAgIGhlaWdodDogJzEwMHZoJyxcbiAgICAgICAgdGV4dEFsaWduOiAnY2VudGVyJyxcbiAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJ1xuICAgIH0sXG4gICAgZGVzYzoge1xuICAgICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICAgICAgdGV4dEFsaWduOiAnbGVmdCcsXG4gICAgICAgIGxpbmVIZWlnaHQ6ICc0OXB4JyxcbiAgICAgICAgaGVpZ2h0OiAnNDlweCcsXG4gICAgICAgIHZlcnRpY2FsQWxpZ246ICdtaWRkbGUnXG4gICAgfSxcbiAgICBoMToge1xuICAgICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICAgICAgYm9yZGVyUmlnaHQ6ICcxcHggc29saWQgcmdiYSgwLCAwLCAwLC4zKScsXG4gICAgICAgIG1hcmdpbjogMCxcbiAgICAgICAgbWFyZ2luUmlnaHQ6ICcyMHB4JyxcbiAgICAgICAgcGFkZGluZzogJzEwcHggMjNweCAxMHB4IDAnLFxuICAgICAgICBmb250U2l6ZTogJzI0cHgnLFxuICAgICAgICBmb250V2VpZ2h0OiA1MDAsXG4gICAgICAgIHZlcnRpY2FsQWxpZ246ICd0b3AnXG4gICAgfSxcbiAgICBoMjoge1xuICAgICAgICBmb250U2l6ZTogJzE0cHgnLFxuICAgICAgICBmb250V2VpZ2h0OiAnbm9ybWFsJyxcbiAgICAgICAgbGluZUhlaWdodDogJ2luaGVyaXQnLFxuICAgICAgICBtYXJnaW46IDAsXG4gICAgICAgIHBhZGRpbmc6IDBcbiAgICB9XG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1fZXJyb3IuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfaGVhZCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJzdGF0dXNDb2RlcyIsIl9nZXRJbml0aWFsUHJvcHMiLCJyZXMiLCJlcnIiLCJzdGF0dXNDb2RlIiwiRXJyb3IiLCJwcm9wcyIsInRpdGxlIiwiY3JlYXRlRWxlbWVudCIsInN0eWxlIiwic3R5bGVzIiwiZXJyb3IiLCJkYW5nZXJvdXNseVNldElubmVySFRNTCIsIl9faHRtbCIsImgxIiwiZGVzYyIsImgyIiwiRnJhZ21lbnQiLCJDb21wb25lbnQiLCJkaXNwbGF5TmFtZSIsImdldEluaXRpYWxQcm9wcyIsIm9yaWdHZXRJbml0aWFsUHJvcHMiLCJjb2xvciIsImJhY2tncm91bmQiLCJmb250RmFtaWx5IiwiaGVpZ2h0IiwidGV4dEFsaWduIiwiZGlzcGxheSIsImZsZXhEaXJlY3Rpb24iLCJhbGlnbkl0ZW1zIiwianVzdGlmeUNvbnRlbnQiLCJsaW5lSGVpZ2h0IiwidmVydGljYWxBbGlnbiIsImJvcmRlclJpZ2h0IiwibWFyZ2luIiwibWFyZ2luUmlnaHQiLCJwYWRkaW5nIiwiZm9udFNpemUiLCJmb250V2VpZ2h0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/pages/_error.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/amp-context.js": +/*!**********************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/amp-context.js ***! + \**********************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.AmpStateContext = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar AmpStateContext = _react[\"default\"].createContext({});\n\nexports.AmpStateContext = AmpStateContext;\n\nif (true) {\n AmpStateContext.displayName = 'AmpStateContext';\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvYW1wLWNvbnRleHQuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCx1QkFBQSxHQUEwQixLQUFLLENBQS9COztBQUNBLElBQUlHLE1BQU0sR0FBR0Msc0JBQXNCLENBQUNDLG1CQUFPLENBQUMsNENBQUQsQ0FBUixDQUFuQzs7QUFDQSxTQUFTRCxzQkFBVCxDQUFnQ0UsR0FBaEMsRUFBcUM7QUFDakMsU0FBT0EsR0FBRyxJQUFJQSxHQUFHLENBQUNDLFVBQVgsR0FBd0JELEdBQXhCLEdBQThCO0FBQ2pDLGVBQVNBO0FBRHdCLEdBQXJDO0FBR0g7O0FBQ0QsSUFBTUosZUFBZSxHQUFHQyxNQUFNLFdBQU4sQ0FBZUssYUFBZixDQUE2QixFQUE3QixDQUF4Qjs7QUFFQVIsdUJBQUEsR0FBMEJFLGVBQTFCOztBQUNBLElBQUksTUFBdUM7QUFDdkNBLEVBQUFBLGVBQWUsQ0FBQ08sV0FBaEIsR0FBOEIsaUJBQTlCO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zaGFyZWQvbGliL2FtcC1jb250ZXh0LmpzP2U1YTciXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLkFtcFN0YXRlQ29udGV4dCA9IHZvaWQgMDtcbnZhciBfcmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5jb25zdCBBbXBTdGF0ZUNvbnRleHQgPSBfcmVhY3QuZGVmYXVsdC5jcmVhdGVDb250ZXh0KHtcbn0pO1xuZXhwb3J0cy5BbXBTdGF0ZUNvbnRleHQgPSBBbXBTdGF0ZUNvbnRleHQ7XG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIEFtcFN0YXRlQ29udGV4dC5kaXNwbGF5TmFtZSA9ICdBbXBTdGF0ZUNvbnRleHQnO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hbXAtY29udGV4dC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJBbXBTdGF0ZUNvbnRleHQiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIm9iaiIsIl9fZXNNb2R1bGUiLCJjcmVhdGVDb250ZXh0IiwiZGlzcGxheU5hbWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/amp-context.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/amp.js": +/*!**************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/amp.js ***! + \**************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _s = $RefreshSig$();\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.isInAmpMode = isInAmpMode;\nexports.useAmp = useAmp;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _ampContext = __webpack_require__(/*! ./amp-context */ \"./node_modules/next/dist/shared/lib/amp-context.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction isInAmpMode() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$ampFirst = _ref.ampFirst,\n ampFirst = _ref$ampFirst === void 0 ? false : _ref$ampFirst,\n _ref$hybrid = _ref.hybrid,\n hybrid = _ref$hybrid === void 0 ? false : _ref$hybrid,\n _ref$hasQuery = _ref.hasQuery,\n hasQuery = _ref$hasQuery === void 0 ? false : _ref$hasQuery;\n\n return ampFirst || hybrid && hasQuery;\n}\n\nfunction useAmp() {\n _s();\n\n // Don't assign the context value to a variable to save bytes\n return isInAmpMode(_react[\"default\"].useContext(_ampContext.AmpStateContext));\n}\n\n_s(useAmp, \"gDsCjeeItUuvgOWf1v4qoK9RF6k=\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvYW1wLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7OztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxtQkFBQSxHQUFzQkUsV0FBdEI7QUFDQUYsY0FBQSxHQUFpQkcsTUFBakI7O0FBQ0EsSUFBSUMsTUFBTSxHQUFHQyxzQkFBc0IsQ0FBQ0MsbUJBQU8sQ0FBQyw0Q0FBRCxDQUFSLENBQW5DOztBQUNBLElBQUlDLFdBQVcsR0FBR0QsbUJBQU8sQ0FBQyx5RUFBRCxDQUF6Qjs7QUFDQSxTQUFTRCxzQkFBVCxDQUFnQ0csR0FBaEMsRUFBcUM7QUFDakMsU0FBT0EsR0FBRyxJQUFJQSxHQUFHLENBQUNDLFVBQVgsR0FBd0JELEdBQXhCLEdBQThCO0FBQ2pDLGVBQVNBO0FBRHdCLEdBQXJDO0FBR0g7O0FBQ0QsU0FBU04sV0FBVCxHQUNHO0FBQUEsaUZBRDZFLEVBQzdFO0FBQUEsMkJBRG9CUSxRQUNwQjtBQUFBLE1BRG9CQSxRQUNwQiw4QkFEOEIsS0FDOUI7QUFBQSx5QkFEc0NDLE1BQ3RDO0FBQUEsTUFEc0NBLE1BQ3RDLDRCQUQ4QyxLQUM5QztBQUFBLDJCQURzREMsUUFDdEQ7QUFBQSxNQURzREEsUUFDdEQsOEJBRGdFLEtBQ2hFOztBQUNDLFNBQU9GLFFBQVEsSUFBSUMsTUFBTSxJQUFJQyxRQUE3QjtBQUNIOztBQUNELFNBQVNULE1BQVQsR0FBa0I7QUFBQTs7QUFDZDtBQUNBLFNBQU9ELFdBQVcsQ0FBQ0UsTUFBTSxXQUFOLENBQWVTLFVBQWYsQ0FBMEJOLFdBQVcsQ0FBQ08sZUFBdEMsQ0FBRCxDQUFsQjtBQUNIOztHQUhRWCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvYW1wLmpzPzVlNGYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmlzSW5BbXBNb2RlID0gaXNJbkFtcE1vZGU7XG5leHBvcnRzLnVzZUFtcCA9IHVzZUFtcDtcbnZhciBfcmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG52YXIgX2FtcENvbnRleHQgPSByZXF1aXJlKFwiLi9hbXAtY29udGV4dFwiKTtcbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGlzSW5BbXBNb2RlKHsgYW1wRmlyc3QgPWZhbHNlICwgaHlicmlkID1mYWxzZSAsIGhhc1F1ZXJ5ID1mYWxzZSAsICB9ID0ge1xufSkge1xuICAgIHJldHVybiBhbXBGaXJzdCB8fCBoeWJyaWQgJiYgaGFzUXVlcnk7XG59XG5mdW5jdGlvbiB1c2VBbXAoKSB7XG4gICAgLy8gRG9uJ3QgYXNzaWduIHRoZSBjb250ZXh0IHZhbHVlIHRvIGEgdmFyaWFibGUgdG8gc2F2ZSBieXRlc1xuICAgIHJldHVybiBpc0luQW1wTW9kZShfcmVhY3QuZGVmYXVsdC51c2VDb250ZXh0KF9hbXBDb250ZXh0LkFtcFN0YXRlQ29udGV4dCkpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hbXAuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiaXNJbkFtcE1vZGUiLCJ1c2VBbXAiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9hbXBDb250ZXh0Iiwib2JqIiwiX19lc01vZHVsZSIsImFtcEZpcnN0IiwiaHlicmlkIiwiaGFzUXVlcnkiLCJ1c2VDb250ZXh0IiwiQW1wU3RhdGVDb250ZXh0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/amp.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/head.js": +/*!***************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/head.js ***! + \***************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _defineProperty = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/defineProperty.js\");\n\nvar _s = $RefreshSig$();\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.defaultHead = defaultHead;\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _sideEffect = _interopRequireDefault(__webpack_require__(/*! ./side-effect */ \"./node_modules/next/dist/shared/lib/side-effect.js\"));\n\nvar _ampContext = __webpack_require__(/*! ./amp-context */ \"./node_modules/next/dist/shared/lib/amp-context.js\");\n\nvar _headManagerContext = __webpack_require__(/*! ./head-manager-context */ \"./node_modules/next/dist/shared/lib/head-manager-context.js\");\n\nvar _amp = __webpack_require__(/*! ./amp */ \"./node_modules/next/dist/shared/lib/amp.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n return newObj;\n }\n}\n\nfunction defaultHead() {\n var inAmpMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var head = [/*#__PURE__*/_react[\"default\"].createElement(\"meta\", {\n charSet: \"utf-8\"\n })];\n\n if (!inAmpMode) {\n head.push( /*#__PURE__*/_react[\"default\"].createElement(\"meta\", {\n name: \"viewport\",\n content: \"width=device-width\"\n }));\n }\n\n return head;\n}\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 } // Adds support for React.Fragment\n\n\n if (child.type === _react[\"default\"].Fragment) {\n return list.concat(_react[\"default\"].Children.toArray(child.props.children).reduce(function (fragmentList, fragmentChild) {\n if (typeof fragmentChild === 'string' || typeof fragmentChild === 'number') {\n return fragmentList;\n }\n\n return fragmentList.concat(fragmentChild);\n }, []));\n }\n\n return list.concat(child);\n}\n\nvar METATYPES = ['name', 'httpEquiv', 'charSet', 'itemProp'];\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*/\n\nfunction unique() {\n var keys = new Set();\n var tags = new Set();\n var metaTypes = new Set();\n var metaCategories = {};\n return function (h) {\n var isUnique = true;\n var hasKey = false;\n\n if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {\n hasKey = true;\n var key = h.key.slice(h.key.indexOf('$') + 1);\n\n if (keys.has(key)) {\n isUnique = false;\n } else {\n keys.add(key);\n }\n } // eslint-disable-next-line default-case\n\n\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\n break;\n\n case 'meta':\n for (var i = 0, len = METATYPES.length; i < len; i++) {\n var metatype = METATYPES[i];\n if (!h.props.hasOwnProperty(metatype)) continue;\n\n if (metatype === 'charSet') {\n if (metaTypes.has(metatype)) {\n isUnique = false;\n } else {\n metaTypes.add(metatype);\n }\n } else {\n var category = h.props[metatype];\n var categories = metaCategories[metatype] || new Set();\n\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\n break;\n }\n\n return isUnique;\n };\n}\n/**\n *\n * @param headElements List of multiple <Head> instances\n */\n\n\nfunction reduceComponents(headElements, props) {\n return headElements.reduce(function (list, headElement) {\n var headElementChildren = _react[\"default\"].Children.toArray(headElement.props.children);\n\n return list.concat(headElementChildren);\n }, []).reduce(onlyReactElement, []).reverse().concat(defaultHead(props.inAmpMode)).filter(unique()).reverse().map(function (c, i) {\n var key = c.key || i;\n\n if (false) { var newProps; }\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(c, {\n key: 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 */\n\n\nfunction Head(_ref) {\n _s();\n\n var children = _ref.children;\n var ampState = (0, _react).useContext(_ampContext.AmpStateContext);\n var headManager = (0, _react).useContext(_headManagerContext.HeadManagerContext);\n return /*#__PURE__*/_react[\"default\"].createElement(_sideEffect[\"default\"], {\n reduceComponentsToState: reduceComponents,\n headManager: headManager,\n inAmpMode: (0, _amp).isInAmpMode(ampState)\n }, children);\n}\n\n_s(Head, \"sCUayZmr5V93tUjujy03KdMBCec=\");\n\n_c = Head;\nvar _default = Head;\nexports[\"default\"] = _default;\n\nvar _c;\n\n$RefreshReg$(_c, \"Head\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaGVhZC5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7Ozs7Ozs7Ozs7QUFDYkEsOENBQTZDO0FBQ3pDRyxFQUFBQSxLQUFLLEVBQUU7QUFEa0MsQ0FBN0M7QUFHQUQsbUJBQUEsR0FBc0JFLFdBQXRCO0FBQ0FGLGtCQUFBLEdBQWtCLEtBQUssQ0FBdkI7O0FBQ0EsSUFBSUcsTUFBTSxHQUFHQyx1QkFBdUIsQ0FBQ0MsbUJBQU8sQ0FBQyw0Q0FBRCxDQUFSLENBQXBDOztBQUNBLElBQUlDLFdBQVcsR0FBR0Msc0JBQXNCLENBQUNGLG1CQUFPLENBQUMseUVBQUQsQ0FBUixDQUF4Qzs7QUFDQSxJQUFJRyxXQUFXLEdBQUdILG1CQUFPLENBQUMseUVBQUQsQ0FBekI7O0FBQ0EsSUFBSUksbUJBQW1CLEdBQUdKLG1CQUFPLENBQUMsMkZBQUQsQ0FBakM7O0FBQ0EsSUFBSUssSUFBSSxHQUFHTCxtQkFBTyxDQUFDLHlEQUFELENBQWxCOztBQUNBLFNBQVNFLHNCQUFULENBQWdDSSxHQUFoQyxFQUFxQztBQUNqQyxTQUFPQSxHQUFHLElBQUlBLEdBQUcsQ0FBQ0MsVUFBWCxHQUF3QkQsR0FBeEIsR0FBOEI7QUFDakMsZUFBU0E7QUFEd0IsR0FBckM7QUFHSDs7QUFDRCxTQUFTUCx1QkFBVCxDQUFpQ08sR0FBakMsRUFBc0M7QUFDbEMsTUFBSUEsR0FBRyxJQUFJQSxHQUFHLENBQUNDLFVBQWYsRUFBMkI7QUFDdkIsV0FBT0QsR0FBUDtBQUNILEdBRkQsTUFFTztBQUNILFFBQUlFLE1BQU0sR0FBRyxFQUFiOztBQUVBLFFBQUlGLEdBQUcsSUFBSSxJQUFYLEVBQWlCO0FBQ2IsV0FBSSxJQUFJRyxHQUFSLElBQWVILEdBQWYsRUFBbUI7QUFDZixZQUFJYixNQUFNLENBQUNpQixTQUFQLENBQWlCQyxjQUFqQixDQUFnQ0MsSUFBaEMsQ0FBcUNOLEdBQXJDLEVBQTBDRyxHQUExQyxDQUFKLEVBQW9EO0FBQ2hELGNB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cyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9oZWFkLmpzP2ZiNWQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHRIZWFkID0gZGVmYXVsdEhlYWQ7XG5leHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7XG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcbnZhciBfc2lkZUVmZmVjdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vc2lkZS1lZmZlY3RcIikpO1xudmFyIF9hbXBDb250ZXh0ID0gcmVxdWlyZShcIi4vYW1wLWNvbnRleHRcIik7XG52YXIgX2hlYWRNYW5hZ2VyQ29udGV4dCA9IHJlcXVpcmUoXCIuL2hlYWQtbWFuYWdlci1jb250ZXh0XCIpO1xudmFyIF9hbXAgPSByZXF1aXJlKFwiLi9hbXBcIik7XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHtcbiAgICBpZiAob2JqICYmIG9iai5fX2VzTW9kdWxlKSB7XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIG5ld09iaiA9IHtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKG9iaiAhPSBudWxsKSB7XG4gICAgICAgICAgICBmb3IodmFyIGtleSBpbiBvYmope1xuICAgICAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBkZXNjID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IHtcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3T2JqW2tleV0gPSBvYmpba2V5XTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBuZXdPYmouZGVmYXVsdCA9IG9iajtcbiAgICAgICAgcmV0dXJuIG5ld09iajtcbiAgICB9XG59XG5mdW5jdGlvbiBkZWZhdWx0SGVhZChpbkFtcE1vZGUgPSBmYWxzZSkge1xuICAgIGNvbnN0IGhlYWQgPSBbXG4gICAgICAgIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChcIm1ldGFcIiwge1xuICAgICAgICAgICAgY2hhclNldDogXCJ1dGYtOFwiXG4gICAgICAgIH0pXG4gICAgXTtcbiAgICBpZiAoIWluQW1wTW9kZSkge1xuICAgICAgICBoZWFkLnB1c2goLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwibWV0YVwiLCB7XG4gICAgICAgICAgICBuYW1lOiBcInZpZXdwb3J0XCIsXG4gICAgICAgICAgICBjb250ZW50OiBcIndpZHRoPWRldmljZS13aWR0aFwiXG4gICAgICAgIH0pKTtcbiAgICB9XG4gICAgcmV0dXJuIGhlYWQ7XG59XG5mdW5jdGlvbiBvbmx5UmVhY3RFbGVtZW50KGxpc3QsIGNoaWxkKSB7XG4gICAgLy8gUmVhY3QgY2hpbGRyZW4gY2FuIGJlIFwic3RyaW5nXCIgb3IgXCJudW1iZXJcIiBpbiB0aGlzIGNhc2Ugd2UgaWdub3JlIHRoZW0gZm9yIGJhY2t3YXJkcyBjb21wYXRcbiAgICBpZiAodHlwZW9mIGNoaWxkID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgY2hpbGQgPT09ICdudW1iZXInKSB7XG4gICAgICAgIHJldHVybiBsaXN0O1xuICAgIH1cbiAgICAvLyBBZGRzIHN1cHBvcnQgZm9yIFJlYWN0LkZyYWdtZW50XG4gICAgaWYgKGNoaWxkLnR5cGUgPT09IF9yZWFjdC5kZWZhdWx0LkZyYWdtZW50KSB7XG4gICAgICAgIHJldHVybiBsaXN0LmNvbmNhdChfcmVhY3QuZGVmYXVsdC5DaGlsZHJlbi50b0FycmF5KGNoaWxkLnByb3BzLmNoaWxkcmVuKS5yZWR1Y2UoKGZyYWdtZW50TGlzdCwgZnJhZ21lbnRDaGlsZCk9PntcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZnJhZ21lbnRDaGlsZCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIGZyYWdtZW50Q2hpbGQgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZyYWdtZW50TGlzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmcmFnbWVudExpc3QuY29uY2F0KGZyYWdtZW50Q2hpbGQpO1xuICAgICAgICB9LCBbXSkpO1xuICAgIH1cbiAgICByZXR1cm4gbGlzdC5jb25jYXQoY2hpbGQpO1xufVxuY29uc3QgTUVUQVRZUEVTID0gW1xuICAgICduYW1lJyxcbiAgICAnaHR0cEVxdWl2JyxcbiAgICAnY2hhclNldCcsXG4gICAgJ2l0ZW1Qcm9wJ1xuXTtcbi8qXG4gcmV0dXJucyBhIGZ1bmN0aW9uIGZvciBmaWx0ZXJpbmcgaGVhZCBjaGlsZCBlbGVtZW50c1xuIHdoaWNoIHNob3VsZG4ndCBiZSBkdXBsaWNhdGVkLCBsaWtlIDx0aXRsZS8+XG4gQWxzbyBhZGRzIHN1cHBvcnQgZm9yIGRlZHVwbGljYXRlZCBga2V5YCBwcm9wZXJ0aWVzXG4qLyBmdW5jdGlvbiB1bmlxdWUoKSB7XG4gICAgY29uc3Qga2V5cyA9IG5ldyBTZXQoKTtcbiAgICBjb25zdCB0YWdzID0gbmV3IFNldCgpO1xuICAgIGNvbnN0IG1ldGFUeXBlcyA9IG5ldyBTZXQoKTtcbiAgICBjb25zdCBtZXRhQ2F0ZWdvcmllcyA9IHtcbiAgICB9O1xuICAgIHJldHVybiAoaCk9PntcbiAgICAgICAgbGV0IGlzVW5pcXVlID0gdHJ1ZTtcbiAgICAgICAgbGV0IGhhc0tleSA9IGZhbHNlO1xuICAgICAgICBpZiAoaC5rZXkgJiYgdHlwZW9mIGgua2V5ICE9PSAnbnVtYmVyJyAmJiBoLmtleS5pbmRleE9mKCckJykgPiAwKSB7XG4gICAgICAgICAgICBoYXNLZXkgPSB0cnVlO1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gaC5rZXkuc2xpY2UoaC5rZXkuaW5kZXhPZignJCcpICsgMSk7XG4gICAgICAgICAgICBpZiAoa2V5cy5oYXMoa2V5KSkge1xuICAgICAgICAgICAgICAgIGlzVW5pcXVlID0gZmFsc2U7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGtleXMuYWRkKGtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGRlZmF1bHQtY2FzZVxuICAgICAgICBzd2l0Y2goaC50eXBlKXtcbiAgICAgICAgICAgIGNhc2UgJ3RpdGxlJzpcbiAgICAgICAgICAgIGNhc2UgJ2Jhc2UnOlxuICAgICAgICAgICAgICAgIGlmICh0YWdzLmhhcyhoLnR5cGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlzVW5pcXVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGFncy5hZGQoaC50eXBlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtZXRhJzpcbiAgICAgICAgICAgICAgICBmb3IobGV0IGkgPSAwLCBsZW4gPSBNRVRBVFlQRVMubGVuZ3RoOyBpIDwgbGVuOyBpKyspe1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtZXRhdHlwZSA9IE1FVEFUWVBFU1tpXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFoLnByb3BzLmhhc093blByb3BlcnR5KG1ldGF0eXBlKSkgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChtZXRhdHlwZSA9PT0gJ2NoYXJTZXQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobWV0YVR5cGVzLmhhcyhtZXRhdHlwZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1VuaXF1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhVHlwZXMuYWRkKG1ldGF0eXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNhdGVnb3J5ID0gaC5wcm9wc1ttZXRhdHlwZV07XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjYXRlZ29yaWVzID0gbWV0YUNhdGVnb3JpZXNbbWV0YXR5cGVdIHx8IG5ldyBTZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgobWV0YXR5cGUgIT09ICduYW1lJyB8fCAhaGFzS2V5KSAmJiBjYXRlZ29yaWVzLmhhcyhjYXRlZ29yeSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1VuaXF1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yaWVzLmFkZChjYXRlZ29yeSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YUNhdGVnb3JpZXNbbWV0YXR5cGVdID0gY2F0ZWdvcmllcztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNVbmlxdWU7XG4gICAgfTtcbn1cbi8qKlxuICpcbiAqIEBwYXJhbSBoZWFkRWxlbWVudHMgTGlzdCBvZiBtdWx0aXBsZSA8SGVhZD4gaW5zdGFuY2VzXG4gKi8gZnVuY3Rpb24gcmVkdWNlQ29tcG9uZW50cyhoZWFkRWxlbWVudHMsIHByb3BzKSB7XG4gICAgcmV0dXJuIGhlYWRFbGVtZW50cy5yZWR1Y2UoKGxpc3QsIGhlYWRFbGVtZW50KT0+e1xuICAgICAgICBjb25zdCBoZWFkRWxlbWVudENoaWxkcmVuID0gX3JlYWN0LmRlZmF1bHQuQ2hpbGRyZW4udG9BcnJheShoZWFkRWxlbWVudC5wcm9wcy5jaGlsZHJlbik7XG4gICAgICAgIHJldHVybiBsaXN0LmNvbmNhdChoZWFkRWxlbWVudENoaWxkcmVuKTtcbiAgICB9LCBbXSkucmVkdWNlKG9ubHlSZWFjdEVsZW1lbnQsIFtdKS5yZXZlcnNlKCkuY29uY2F0KGRlZmF1bHRIZWFkKHByb3BzLmluQW1wTW9kZSkpLmZpbHRlcih1bmlxdWUoKSkucmV2ZXJzZSgpLm1hcCgoYywgaSk9PntcbiAgICAgICAgY29uc3Qga2V5ID0gYy5rZXkgfHwgaTtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAnZGV2ZWxvcG1lbnQnICYmIHByb2Nlc3MuZW52Ll9fTkVYVF9PUFRJTUlaRV9GT05UUyAmJiAhcHJvcHMuaW5BbXBNb2RlKSB7XG4gICAgICAgICAgICBpZiAoYy50eXBlID09PSAnbGluaycgJiYgYy5wcm9wc1snaHJlZiddICYmIC8vIFRPRE8ocHJhdGVla2JoQCk6IFJlcGxhY2UgdGhpcyB3aXRoIGNvbnN0IGZyb20gYGNvbnN0YW50c2Agd2hlbiB0aGUgdHJlZSBzaGFraW5nIHdvcmtzLlxuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzcycsXG4gICAgICAgICAgICAgICAgJ2h0dHBzOi8vdXNlLnR5cGVraXQubmV0LydcbiAgICAgICAgICAgIF0uc29tZSgodXJsKT0+Yy5wcm9wc1snaHJlZiddLnN0YXJ0c1dpdGgodXJsKVxuICAgICAgICAgICAgKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld1Byb3BzID0ge1xuICAgICAgICAgICAgICAgICAgICAuLi5jLnByb3BzIHx8IHtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgbmV3UHJvcHNbJ2RhdGEtaHJlZiddID0gbmV3UHJvcHNbJ2hyZWYnXTtcbiAgICAgICAgICAgICAgICBuZXdQcm9wc1snaHJlZiddID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIC8vIEFkZCB0aGlzIGF0dHJpYnV0ZSB0byBtYWtlIGl0IGVhc3kgdG8gaWRlbnRpZnkgb3B0aW1pemVkIHRhZ3NcbiAgICAgICAgICAgICAgICBuZXdQcm9wc1snZGF0YS1vcHRpbWl6ZWQtZm9udHMnXSA9IHRydWU7XG4gICAgICAgICAgICAgICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY2xvbmVFbGVtZW50KGMsIG5ld1Byb3BzKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY2xvbmVFbGVtZW50KGMsIHtcbiAgICAgICAgICAgIGtleVxuICAgICAgICB9KSk7XG4gICAgfSk7XG59XG4vKipcbiAqIFRoaXMgY29tcG9uZW50IGluamVjdHMgZWxlbWVudHMgdG8gYDxoZWFkPmAgb2YgeW91ciBwYWdlLlxuICogVG8gYXZvaWQgZHVwbGljYXRlZCBgdGFnc2AgaW4gYDxoZWFkPmAgeW91IGNhbiB1c2UgdGhlIGBrZXlgIHByb3BlcnR5LCB3aGljaCB3aWxsIG1ha2Ugc3VyZSBldmVyeSB0YWcgaXMgb25seSByZW5kZXJlZCBvbmNlLlxuICovIGZ1bmN0aW9uIEhlYWQoeyBjaGlsZHJlbiAgfSkge1xuICAgIGNvbnN0IGFtcFN0YXRlID0gKDAsIF9yZWFjdCkudXNlQ29udGV4dChfYW1wQ29udGV4dC5BbXBTdGF0ZUNvbnRleHQpO1xuICAgIGNvbnN0IGhlYWRNYW5hZ2VyID0gKDAsIF9yZWFjdCkudXNlQ29udGV4dChfaGVhZE1hbmFnZXJDb250ZXh0LkhlYWRNYW5hZ2VyQ29udGV4dCk7XG4gICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChfc2lkZUVmZmVjdC5kZWZhdWx0LCB7XG4gICAgICAgIHJlZHVjZUNvbXBvbmVudHNUb1N0YXRlOiByZWR1Y2VDb21wb25lbnRzLFxuICAgICAgICBoZWFkTWFuYWdlcjogaGVhZE1hbmFnZXIsXG4gICAgICAgIGluQW1wTW9kZTogKDAsIF9hbXApLmlzSW5BbXBNb2RlKGFtcFN0YXRlKVxuICAgIH0sIGNoaWxkcmVuKSk7XG59XG52YXIgX2RlZmF1bHQgPSBIZWFkO1xuZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhlYWQuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiZGVmYXVsdEhlYWQiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc2lkZUVmZmVjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfYW1wQ29udGV4dCIsIl9oZWFkTWFuYWdlckNvbnRleHQiLCJfYW1wIiwib2JqIiwiX19lc01vZHVsZSIsIm5ld09iaiIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJnZXQiLCJzZXQiLCJpbkFtcE1vZGUiLCJoZWFkIiwiY3JlYXRlRWxlbWVudCIsImNoYXJTZXQiLCJwdXNoIiwibmFtZSIsImNvbnRlbnQiLCJvbmx5UmVhY3RFbGVtZW50IiwibGlzdCIsImNoaWxkIiwidHlwZSIsIkZyYWdtZW50IiwiY29uY2F0IiwiQ2hpbGRyZW4iLCJ0b0FycmF5IiwicHJvcHMiLCJjaGlsZHJlbiIsInJlZHVjZSIsImZyYWdtZW50TGlzdCIsImZyYWdtZW50Q2hpbGQiLCJNRVRBVFlQRVMiLCJ1bmlxdWUiLCJrZXlzIiwiU2V0IiwidGFncyIsIm1ldGFUeXBlcyIsIm1ldGFDYXRlZ29yaWVzIiwiaCIsImlzVW5pcXVlIiwiaGFzS2V5IiwiaW5kZXhPZiIsInNsaWNlIiwiaGFzIiwiYWRkIiwiaSIsImxlbiIsImxlbmd0aCIsIm1ldGF0eXBlIiwiY2F0ZWdvcnkiLCJjYXRlZ29yaWVzIiwicmVkdWNlQ29tcG9uZW50cyIsImhlYWRFbGVtZW50cyIsImhlYWRFbGVtZW50IiwiaGVhZEVsZW1lbnRDaGlsZHJlbiIsInJldmVyc2UiLCJmaWx0ZXIiLCJtYXAiLCJjIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9PUFRJTUlaRV9GT05UUyIsInNvbWUiLCJ1cmwiLCJzdGFydHNXaXRoIiwibmV3UHJvcHMiLCJ1bmRlZmluZWQiLCJjbG9uZUVsZW1lbnQiLCJIZWFkIiwiYW1wU3RhdGUiLCJ1c2VDb250ZXh0IiwiQW1wU3RhdGVDb250ZXh0IiwiaGVhZE1hbmFnZXIiLCJIZWFkTWFuYWdlckNvbnRleHQiLCJyZWR1Y2VDb21wb25lbnRzVG9TdGF0ZSIsImlzSW5BbXBNb2RlIiwiX2RlZmF1bHQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/head.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/side-effect.js": +/*!**********************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/side-effect.js ***! + \**********************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _toConsumableArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/toConsumableArray.js\");\n\nvar _classCallCheck = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\");\n\nvar _createClass = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\");\n\nvar _assertThisInitialized = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/assertThisInitialized */ \"./node_modules/@babel/runtime/helpers/assertThisInitialized.js\");\n\nvar _inherits = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/inherits */ \"./node_modules/@babel/runtime/helpers/inherits.js\");\n\nvar _possibleConstructorReturn = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/possibleConstructorReturn */ \"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\");\n\nvar _getPrototypeOf = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/getPrototypeOf */ \"./node_modules/@babel/runtime/helpers/getPrototypeOf.js\");\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n return newObj;\n }\n}\n\nvar isServer = false;\n\nvar _class = /*#__PURE__*/function (_react$Component) {\n _inherits(_class, _react$Component);\n\n var _super = _createSuper(_class);\n\n function _class(props) {\n var _this;\n\n _classCallCheck(this, _class);\n\n _this = _super.call(this, props);\n\n _this.emitChange = function () {\n if (_this._hasHeadManager) {\n _this.props.headManager.updateHead(_this.props.reduceComponentsToState(_toConsumableArray(_this.props.headManager.mountedInstances), _this.props));\n }\n };\n\n _this._hasHeadManager = _this.props.headManager && _this.props.headManager.mountedInstances;\n\n if (isServer && _this._hasHeadManager) {\n _this.props.headManager.mountedInstances.add(_assertThisInitialized(_this));\n\n _this.emitChange();\n }\n\n return _this;\n }\n\n _createClass(_class, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this._hasHeadManager) {\n this.props.headManager.mountedInstances.add(this);\n }\n\n this.emitChange();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.emitChange();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this._hasHeadManager) {\n this.props.headManager.mountedInstances[\"delete\"](this);\n }\n\n this.emitChange();\n }\n }, {\n key: \"render\",\n value: function render() {\n return null;\n }\n }]);\n\n return _class;\n}(_react.Component);\n\nexports[\"default\"] = _class;\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvc2lkZS1lZmZlY3QuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxrQkFBQSxHQUFrQixLQUFLLENBQXZCOztBQUNBLElBQUlFLE1BQU0sR0FBR0MsdUJBQXVCLENBQUNDLG1CQUFPLENBQUMsNENBQUQsQ0FBUixDQUFwQzs7QUFDQSxTQUFTRCx1QkFBVCxDQUFpQ0UsR0FBakMsRUFBc0M7QUFDbEMsTUFBSUEsR0FBRyxJQUFJQSxHQUFHLENBQUNDLFVBQWYsRUFBMkI7QUFDdkIsV0FBT0QsR0FBUDtBQUNILEdBRkQsTUFFTztBQUNILFFBQUlFLE1BQU0sR0FBRyxFQUFiOztBQUVBLFFBQUlGLEdBQUcsSUFBSSxJQUFYLEVBQWlCO0FBQ2IsV0FBSSxJQUFJRyxHQUFSLElBQWVILEdBQWYsRUFBbUI7QUFDZixZQUFJUCxNQUFNLENBQUNXLFNBQVAsQ0FBaUJDLGNBQWpCLENBQWdDQyxJQUFoQyxDQUFxQ04sR0FBckMsRUFBMENHLEdBQTFDLENBQUosRUFBb0Q7QUFDaEQsY0FBSUksSUFBSSxHQUFHZCxNQUFNLENBQUNDLGNBQVAsSUFBeUJELE1BQU0sQ0FBQ2Usd0JBQWhDLEdBQTJEZixNQUFNLENBQUNlLHdCQUFQLENBQWdDUixHQUFoQyxFQUFxQ0csR0FBckMsQ0FBM0QsR0FBdUcsRUFBbEg7O0FBRUEsY0FBSUksSUFBSSxDQUFDRSxHQUFMLElBQVlGLElBQUksQ0FBQ0csR0FBckIsRUFBMEI7QUFDdEJqQixZQUFBQSxNQUFNLENBQUNDLGNBQVAsQ0FBc0JRLE1BQXRCLEVBQThCQyxHQUE5QixFQUFtQ0ksSUFBbkM7QUFDSCxXQUZELE1BRU87QUFDSEwsWUFBQUEsTUFBTSxDQUFDQyxHQUFELENBQU4sR0FBY0gsR0FBRyxDQUFDRyxHQUFELENBQWpCO0FBQ0g7QUFDSjtBQUNKO0FBQ0o7O0FBQ0RELElBQUFBLE1BQU0sV0FBTixHQUFpQkYsR0FBakI7QUFDQSxXQUFPRSxNQUFQO0FBQ0g7QUFDSjs7QUFDRCxJQUFNUyxRQUFRLFFBQWQ7O0lBQ01DOzs7OztBQUNGLGtCQUFZQyxLQUFaLEVBQWtCO0FBQUE7O0FBQUE7O0FBQ2QsOEJBQU1BLEtBQU47O0FBQ0EsVUFBS0MsVUFBTCxHQUFrQixZQUFJO0FBQ2xCLFVBQUksTUFBS0MsZUFBVCxFQUEwQjtBQUN0QixjQUFLRixLQUFMLENBQVdHLFdBQVgsQ0FBdUJDLFVBQXZCLENBQWtDLE1BQUtKLEtBQUwsQ0FBV0ssdUJBQVgsb0JBQzNCLE1BQUtMLEtBQUwsQ0FBV0csV0FBWCxDQUF1QkcsZ0JBREksR0FFL0IsTUFBS04sS0FGMEIsQ0FBbEM7QUFHSDtBQUNKLEtBTkQ7O0FBT0EsVUFBS0UsZUFBTCxHQUF1QixNQUFLRixLQUFMLENBQVdHLFdBQVgsSUFBMEIsTUFBS0gsS0FBTCxDQUFXRyxXQUFYLENBQXVCRyxnQkFBeEU7O0FBQ0EsUUFBSVIsUUFBUSxJQUFJLE1BQUtJLGVBQXJCLEVBQXNDO0FBQ2xDLFlBQUtGLEtBQUwsQ0FBV0csV0FBWCxDQUF1QkcsZ0JBQXZCLENBQXdDQyxHQUF4Qzs7QUFDQSxZQUFLTixVQUFMO0FBQ0g7O0FBYmE7QUFjakI7Ozs7V0FDRCw2QkFBb0I7QUFDaEIsVUFBSSxLQUFLQyxlQUFULEVBQTBCO0FBQ3RCLGFBQUtGLEtBQUwsQ0FBV0csV0FBWCxDQUF1QkcsZ0JBQXZCLENBQXdDQyxHQUF4QyxDQUE0QyxJQUE1QztBQUNIOztBQUNELFdBQUtOLFVBQUw7QUFDSDs7O1dBQ0QsOEJBQXFCO0FBQ2pCLFdBQUtBLFVBQUw7QUFDSDs7O1dBQ0QsZ0NBQXVCO0FBQ25CLFVBQUksS0FBS0MsZUFBVCxFQUEwQjtBQUN0QixhQUFLRixLQUFMLENBQVdHLFdBQVgsQ0FBdUJHLGdCQUF2QixXQUErQyxJQUEvQztBQUNIOztBQUNELFdBQUtMLFVBQUw7QUFDSDs7O1dBQ0Qsa0JBQVM7QUFDTCxhQUFPLElBQVA7QUFDSDs7OztFQWpDZ0JqQixNQUFNLENBQUN3Qjs7QUFtQzVCMUIsa0JBQUEsR0FBa0JpQixNQUFsQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvc2lkZS1lZmZlY3QuanM/NDA4YyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IHZvaWQgMDtcbnZhciBfcmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7XG4gICAgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkge1xuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBuZXdPYmogPSB7XG4gICAgICAgIH07XG4gICAgICAgIGlmIChvYmogIT0gbnVsbCkge1xuICAgICAgICAgICAgZm9yKHZhciBrZXkgaW4gb2JqKXtcbiAgICAgICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiB7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGlmIChkZXNjLmdldCB8fCBkZXNjLnNldCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld09ialtrZXldID0gb2JqW2tleV07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbmV3T2JqLmRlZmF1bHQgPSBvYmo7XG4gICAgICAgIHJldHVybiBuZXdPYmo7XG4gICAgfVxufVxuY29uc3QgaXNTZXJ2ZXIgPSB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJztcbmNsYXNzIF9jbGFzcyBleHRlbmRzIF9yZWFjdC5Db21wb25lbnQge1xuICAgIGNvbnN0cnVjdG9yKHByb3BzKXtcbiAgICAgICAgc3VwZXIocHJvcHMpO1xuICAgICAgICB0aGlzLmVtaXRDaGFuZ2UgPSAoKT0+e1xuICAgICAgICAgICAgaWYgKHRoaXMuX2hhc0hlYWRNYW5hZ2VyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5oZWFkTWFuYWdlci51cGRhdGVIZWFkKHRoaXMucHJvcHMucmVkdWNlQ29tcG9uZW50c1RvU3RhdGUoW1xuICAgICAgICAgICAgICAgICAgICAuLi50aGlzLnByb3BzLmhlYWRNYW5hZ2VyLm1vdW50ZWRJbnN0YW5jZXNcbiAgICAgICAgICAgICAgICBdLCB0aGlzLnByb3BzKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuX2hhc0hlYWRNYW5hZ2VyID0gdGhpcy5wcm9wcy5oZWFkTWFuYWdlciAmJiB0aGlzLnByb3BzLmhlYWRNYW5hZ2VyLm1vdW50ZWRJbnN0YW5jZXM7XG4gICAgICAgIGlmIChpc1NlcnZlciAmJiB0aGlzLl9oYXNIZWFkTWFuYWdlcikge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5oZWFkTWFuYWdlci5tb3VudGVkSW5zdGFuY2VzLmFkZCh0aGlzKTtcbiAgICAgICAgICAgIHRoaXMuZW1pdENoYW5nZSgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgICBpZiAodGhpcy5faGFzSGVhZE1hbmFnZXIpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMuaGVhZE1hbmFnZXIubW91bnRlZEluc3RhbmNlcy5hZGQodGhpcyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbWl0Q2hhbmdlKCk7XG4gICAgfVxuICAgIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICAgICAgdGhpcy5lbWl0Q2hhbmdlKCk7XG4gICAgfVxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgICBpZiAodGhpcy5faGFzSGVhZE1hbmFnZXIpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMuaGVhZE1hbmFnZXIubW91bnRlZEluc3RhbmNlcy5kZWxldGUodGhpcyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbWl0Q2hhbmdlKCk7XG4gICAgfVxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxufVxuZXhwb3J0cy5kZWZhdWx0ID0gX2NsYXNzO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zaWRlLWVmZmVjdC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJvYmoiLCJfX2VzTW9kdWxlIiwibmV3T2JqIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImdldCIsInNldCIsImlzU2VydmVyIiwiX2NsYXNzIiwicHJvcHMiLCJlbWl0Q2hhbmdlIiwiX2hhc0hlYWRNYW5hZ2VyIiwiaGVhZE1hbmFnZXIiLCJ1cGRhdGVIZWFkIiwicmVkdWNlQ29tcG9uZW50c1RvU3RhdGUiLCJtb3VudGVkSW5zdGFuY2VzIiwiYWRkIiwiQ29tcG9uZW50Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/side-effect.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2F_error&absolutePagePath=next%2Fdist%2Fpages%2F_error!": +/*!************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2F_error&absolutePagePath=next%2Fdist%2Fpages%2F_error! ***! + \************************************************************************************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/_error\",\n function () {\n return __webpack_require__(/*! next/dist/pages/_error */ \"./node_modules/next/dist/pages/_error.js\");\n }\n ]);\n if(true) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/_error\"])\n });\n }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWNsaWVudC1wYWdlcy1sb2FkZXIuanM/cGFnZT0lMkZfZXJyb3ImYWJzb2x1dGVQYWdlUGF0aD1uZXh0JTJGZGlzdCUyRnBhZ2VzJTJGX2Vycm9yIS5qcyIsIm1hcHBpbmdzIjoiO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxtQkFBTyxDQUFDLHdFQUF3QjtBQUMvQztBQUNBO0FBQ0EsT0FBTyxJQUFVO0FBQ2pCLE1BQU0sVUFBVTtBQUNoQjtBQUNBLE9BQU87QUFDUDtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8/OWRlZSJdLCJzb3VyY2VzQ29udGVudCI6WyJcbiAgICAod2luZG93Ll9fTkVYVF9QID0gd2luZG93Ll9fTkVYVF9QIHx8IFtdKS5wdXNoKFtcbiAgICAgIFwiL19lcnJvclwiLFxuICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gcmVxdWlyZShcIm5leHQvZGlzdC9wYWdlcy9fZXJyb3JcIik7XG4gICAgICB9XG4gICAgXSk7XG4gICAgaWYobW9kdWxlLmhvdCkge1xuICAgICAgbW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgd2luZG93Ll9fTkVYVF9QLnB1c2goW1wiL19lcnJvclwiXSlcbiAgICAgIH0pO1xuICAgIH1cbiAgIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2F_error&absolutePagePath=next%2Fdist%2Fpages%2F_error!\n"); + +/***/ }) + +}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); } +/******/ __webpack_require__.O(0, ["pages/_app","main"], function() { return __webpack_exec__("./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2F_error&absolutePagePath=next%2Fdist%2Fpages%2F_error!"); }); +/******/ var __webpack_exports__ = __webpack_require__.O(); +/******/ _N_E = __webpack_exports__; +/******/ } +]); \ No newline at end of file diff --git a/.next/static/chunks/fallback/react-refresh.js b/.next/static/chunks/fallback/react-refresh.js new file mode 100644 index 0000000..d6ea912 --- /dev/null +++ b/.next/static/chunks/fallback/react-refresh.js @@ -0,0 +1,62 @@ +// runtime can't be in strict mode because a global variable is assign and maybe created. +/* + * 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/). + */ +(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["react-refresh"],{ + +/***/ "./node_modules/@next/react-refresh-utils/internal/helpers.js": +/*!********************************************************************!*\ + !*** ./node_modules/@next/react-refresh-utils/internal/helpers.js ***! + \********************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n/**\n * MIT License\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n// This file is copied from the Metro JavaScript bundler, with minor tweaks for\n// webpack 4 compatibility.\n//\n// https://github.com/facebook/metro/blob/d6b9685c730d0d63577db40f41369157f28dfa3a/packages/metro/src/lib/polyfills/require.js\nconst runtime_1 = __importDefault(__webpack_require__(/*! react-refresh/runtime */ \"./node_modules/react-refresh/runtime.js\"));\nfunction isSafeExport(key) {\n return (key === '__esModule' ||\n key === '__N_SSG' ||\n key === '__N_SSP' ||\n key === '__N_RSC' ||\n // TODO: remove this key from page config instead of allow listing it\n key === 'config');\n}\nfunction registerExportsForReactRefresh(moduleExports, moduleID) {\n runtime_1.default.register(moduleExports, moduleID + ' %exports%');\n if (moduleExports == null || typeof moduleExports !== 'object') {\n // Exit if we can't iterate over exports.\n // (This is important for legacy environments.)\n return;\n }\n for (var key in moduleExports) {\n if (isSafeExport(key)) {\n continue;\n }\n var exportValue = moduleExports[key];\n var typeID = moduleID + ' %exports% ' + key;\n runtime_1.default.register(exportValue, typeID);\n }\n}\nfunction isReactRefreshBoundary(moduleExports) {\n if (runtime_1.default.isLikelyComponentType(moduleExports)) {\n return true;\n }\n if (moduleExports == null || typeof moduleExports !== 'object') {\n // Exit if we can't iterate over exports.\n return false;\n }\n var hasExports = false;\n var areAllExportsComponents = true;\n for (var key in moduleExports) {\n hasExports = true;\n if (isSafeExport(key)) {\n continue;\n }\n var exportValue = moduleExports[key];\n if (!runtime_1.default.isLikelyComponentType(exportValue)) {\n areAllExportsComponents = false;\n }\n }\n return hasExports && areAllExportsComponents;\n}\nfunction shouldInvalidateReactRefreshBoundary(prevExports, nextExports) {\n var prevSignature = getRefreshBoundarySignature(prevExports);\n var nextSignature = getRefreshBoundarySignature(nextExports);\n if (prevSignature.length !== nextSignature.length) {\n return true;\n }\n for (var i = 0; i < nextSignature.length; i++) {\n if (prevSignature[i] !== nextSignature[i]) {\n return true;\n }\n }\n return false;\n}\nfunction getRefreshBoundarySignature(moduleExports) {\n var signature = [];\n signature.push(runtime_1.default.getFamilyByType(moduleExports));\n if (moduleExports == null || typeof moduleExports !== 'object') {\n // Exit if we can't iterate over exports.\n // (This is important for legacy environments.)\n return signature;\n }\n for (var key in moduleExports) {\n if (isSafeExport(key)) {\n continue;\n }\n var exportValue = moduleExports[key];\n signature.push(key);\n signature.push(runtime_1.default.getFamilyByType(exportValue));\n }\n return signature;\n}\nvar isUpdateScheduled = false;\nfunction scheduleUpdate() {\n if (isUpdateScheduled) {\n return;\n }\n function canApplyUpdate() {\n return module.hot.status() === 'idle';\n }\n isUpdateScheduled = true;\n setTimeout(function () {\n isUpdateScheduled = false;\n // Only trigger refresh if the webpack HMR state is idle\n if (canApplyUpdate()) {\n try {\n runtime_1.default.performReactRefresh();\n }\n catch (err) {\n console.warn('Warning: Failed to re-render. We will retry on the next Fast Refresh event.\\n' +\n err);\n }\n return;\n }\n return scheduleUpdate();\n }, 30);\n}\n// Needs to be compatible with IE11\nexports[\"default\"] = {\n registerExportsForReactRefresh: registerExportsForReactRefresh,\n isReactRefreshBoundary: isReactRefreshBoundary,\n shouldInvalidateReactRefreshBoundary: shouldInvalidateReactRefreshBoundary,\n getRefreshBoundarySignature: getRefreshBoundarySignature,\n scheduleUpdate: scheduleUpdate,\n};\n//# sourceMappingURL=helpers.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtcmVmcmVzaC11dGlscy9pbnRlcm5hbC9oZWxwZXJzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkNBQTZDO0FBQzdDO0FBQ0EsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0NBQWtDLG1CQUFPLENBQUMsc0VBQXVCO0FBQ2pFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLDBCQUEwQjtBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLFVBQVU7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLGtCQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BuZXh0L3JlYWN0LXJlZnJlc2gtdXRpbHMvaW50ZXJuYWwvaGVscGVycy5qcz85MDA5Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuLyoqXG4gKiBNSVQgTGljZW5zZVxuICpcbiAqIENvcHlyaWdodCAoYykgRmFjZWJvb2ssIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLlxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbiAqIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuICogU09GVFdBUkUuXG4gKi9cbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbi8vIFRoaXMgZmlsZSBpcyBjb3BpZWQgZnJvbSB0aGUgTWV0cm8gSmF2YVNjcmlwdCBidW5kbGVyLCB3aXRoIG1pbm9yIHR3ZWFrcyBmb3Jcbi8vIHdlYnBhY2sgNCBjb21wYXRpYmlsaXR5LlxuLy9cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9tZXRyby9ibG9iL2Q2Yjk2ODVjNzMwZDBkNjM1NzdkYjQwZjQxMzY5MTU3ZjI4ZGZhM2EvcGFja2FnZXMvbWV0cm8vc3JjL2xpYi9wb2x5ZmlsbHMvcmVxdWlyZS5qc1xuY29uc3QgcnVudGltZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJyZWFjdC1yZWZyZXNoL3J1bnRpbWVcIikpO1xuZnVuY3Rpb24gaXNTYWZlRXhwb3J0KGtleSkge1xuICAgIHJldHVybiAoa2V5ID09PSAnX19lc01vZHVsZScgfHxcbiAgICAgICAga2V5ID09PSAnX19OX1NTRycgfHxcbiAgICAgICAga2V5ID09PSAnX19OX1NTUCcgfHxcbiAgICAgICAga2V5ID09PSAnX19OX1JTQycgfHxcbiAgICAgICAgLy8gVE9ETzogcmVtb3ZlIHRoaXMga2V5IGZyb20gcGFnZSBjb25maWcgaW5zdGVhZCBvZiBhbGxvdyBsaXN0aW5nIGl0XG4gICAgICAgIGtleSA9PT0gJ2NvbmZpZycpO1xufVxuZnVuY3Rpb24gcmVnaXN0ZXJFeHBvcnRzRm9yUmVhY3RSZWZyZXNoKG1vZHVsZUV4cG9ydHMsIG1vZHVsZUlEKSB7XG4gICAgcnVudGltZV8xLmRlZmF1bHQucmVnaXN0ZXIobW9kdWxlRXhwb3J0cywgbW9kdWxlSUQgKyAnICVleHBvcnRzJScpO1xuICAgIGlmIChtb2R1bGVFeHBvcnRzID09IG51bGwgfHwgdHlwZW9mIG1vZHVsZUV4cG9ydHMgIT09ICdvYmplY3QnKSB7XG4gICAgICAgIC8vIEV4aXQgaWYgd2UgY2FuJ3QgaXRlcmF0ZSBvdmVyIGV4cG9ydHMuXG4gICAgICAgIC8vIChUaGlzIGlzIGltcG9ydGFudCBmb3IgbGVnYWN5IGVudmlyb25tZW50cy4pXG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZm9yICh2YXIga2V5IGluIG1vZHVsZUV4cG9ydHMpIHtcbiAgICAgICAgaWYgKGlzU2FmZUV4cG9ydChrZXkpKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZXhwb3J0VmFsdWUgPSBtb2R1bGVFeHBvcnRzW2tleV07XG4gICAgICAgIHZhciB0eXBlSUQgPSBtb2R1bGVJRCArICcgJWV4cG9ydHMlICcgKyBrZXk7XG4gICAgICAgIHJ1bnRpbWVfMS5kZWZhdWx0LnJlZ2lzdGVyKGV4cG9ydFZhbHVlLCB0eXBlSUQpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGlzUmVhY3RSZWZyZXNoQm91bmRhcnkobW9kdWxlRXhwb3J0cykge1xuICAgIGlmIChydW50aW1lXzEuZGVmYXVsdC5pc0xpa2VseUNvbXBvbmVudFR5cGUobW9kdWxlRXhwb3J0cykpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChtb2R1bGVFeHBvcnRzID09IG51bGwgfHwgdHlwZW9mIG1vZHVsZUV4cG9ydHMgIT09ICdvYmplY3QnKSB7XG4gICAgICAgIC8vIEV4aXQgaWYgd2UgY2FuJ3QgaXRlcmF0ZSBvdmVyIGV4cG9ydHMuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgdmFyIGhhc0V4cG9ydHMgPSBmYWxzZTtcbiAgICB2YXIgYXJlQWxsRXhwb3J0c0NvbXBvbmVudHMgPSB0cnVlO1xuICAgIGZvciAodmFyIGtleSBpbiBtb2R1bGVFeHBvcnRzKSB7XG4gICAgICAgIGhhc0V4cG9ydHMgPSB0cnVlO1xuICAgICAgICBpZiAoaXNTYWZlRXhwb3J0KGtleSkpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIHZhciBleHBvcnRWYWx1ZSA9IG1vZHVsZUV4cG9ydHNba2V5XTtcbiAgICAgICAgaWYgKCFydW50aW1lXzEuZGVmYXVsdC5pc0xpa2VseUNvbXBvbmVudFR5cGUoZXhwb3J0VmFsdWUpKSB7XG4gICAgICAgICAgICBhcmVBbGxFeHBvcnRzQ29tcG9uZW50cyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBoYXNFeHBvcnRzICYmIGFyZUFsbEV4cG9ydHNDb21wb25lbnRzO1xufVxuZnVuY3Rpb24gc2hvdWxkSW52YWxpZGF0ZVJlYWN0UmVmcmVzaEJvdW5kYXJ5KHByZXZFeHBvcnRzLCBuZXh0RXhwb3J0cykge1xuICAgIHZhciBwcmV2U2lnbmF0dXJlID0gZ2V0UmVmcmVzaEJvdW5kYXJ5U2lnbmF0dXJlKHByZXZFeHBvcnRzKTtcbiAgICB2YXIgbmV4dFNpZ25hdHVyZSA9IGdldFJlZnJlc2hCb3VuZGFyeVNpZ25hdHVyZShuZXh0RXhwb3J0cyk7XG4gICAgaWYgKHByZXZTaWduYXR1cmUubGVuZ3RoICE9PSBuZXh0U2lnbmF0dXJlLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuZXh0U2lnbmF0dXJlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChwcmV2U2lnbmF0dXJlW2ldICE9PSBuZXh0U2lnbmF0dXJlW2ldKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59XG5mdW5jdGlvbiBnZXRSZWZyZXNoQm91bmRhcnlTaWduYXR1cmUobW9kdWxlRXhwb3J0cykge1xuICAgIHZhciBzaWduYXR1cmUgPSBbXTtcbiAgICBzaWduYXR1cmUucHVzaChydW50aW1lXzEuZGVmYXVsdC5nZXRGYW1pbHlCeVR5cGUobW9kdWxlRXhwb3J0cykpO1xuICAgIGlmIChtb2R1bGVFeHBvcnRzID09IG51bGwgfHwgdHlwZW9mIG1vZHVsZUV4cG9ydHMgIT09ICdvYmplY3QnKSB7XG4gICAgICAgIC8vIEV4aXQgaWYgd2UgY2FuJ3QgaXRlcmF0ZSBvdmVyIGV4cG9ydHMuXG4gICAgICAgIC8vIChUaGlzIGlzIGltcG9ydGFudCBmb3IgbGVnYWN5IGVudmlyb25tZW50cy4pXG4gICAgICAgIHJldHVybiBzaWduYXR1cmU7XG4gICAgfVxuICAgIGZvciAodmFyIGtleSBpbiBtb2R1bGVFeHBvcnRzKSB7XG4gICAgICAgIGlmIChpc1NhZmVFeHBvcnQoa2V5KSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGV4cG9ydFZhbHVlID0gbW9kdWxlRXhwb3J0c1trZXldO1xuICAgICAgICBzaWduYXR1cmUucHVzaChrZXkpO1xuICAgICAgICBzaWduYXR1cmUucHVzaChydW50aW1lXzEuZGVmYXVsdC5nZXRGYW1pbHlCeVR5cGUoZXhwb3J0VmFsdWUpKTtcbiAgICB9XG4gICAgcmV0dXJuIHNpZ25hdHVyZTtcbn1cbnZhciBpc1VwZGF0ZVNjaGVkdWxlZCA9IGZhbHNlO1xuZnVuY3Rpb24gc2NoZWR1bGVVcGRhdGUoKSB7XG4gICAgaWYgKGlzVXBkYXRlU2NoZWR1bGVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZnVuY3Rpb24gY2FuQXBwbHlVcGRhdGUoKSB7XG4gICAgICAgIHJldHVybiBtb2R1bGUuaG90LnN0YXR1cygpID09PSAnaWRsZSc7XG4gICAgfVxuICAgIGlzVXBkYXRlU2NoZWR1bGVkID0gdHJ1ZTtcbiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaXNVcGRhdGVTY2hlZHVsZWQgPSBmYWxzZTtcbiAgICAgICAgLy8gT25seSB0cmlnZ2VyIHJlZnJlc2ggaWYgdGhlIHdlYnBhY2sgSE1SIHN0YXRlIGlzIGlkbGVcbiAgICAgICAgaWYgKGNhbkFwcGx5VXBkYXRlKCkpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcnVudGltZV8xLmRlZmF1bHQucGVyZm9ybVJlYWN0UmVmcmVzaCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignV2FybmluZzogRmFpbGVkIHRvIHJlLXJlbmRlci4gV2Ugd2lsbCByZXRyeSBvbiB0aGUgbmV4dCBGYXN0IFJlZnJlc2ggZXZlbnQuXFxuJyArXG4gICAgICAgICAgICAgICAgICAgIGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNjaGVkdWxlVXBkYXRlKCk7XG4gICAgfSwgMzApO1xufVxuLy8gTmVlZHMgdG8gYmUgY29tcGF0aWJsZSB3aXRoIElFMTFcbmV4cG9ydHMuZGVmYXVsdCA9IHtcbiAgICByZWdpc3RlckV4cG9ydHNGb3JSZWFjdFJlZnJlc2g6IHJlZ2lzdGVyRXhwb3J0c0ZvclJlYWN0UmVmcmVzaCxcbiAgICBpc1JlYWN0UmVmcmVzaEJvdW5kYXJ5OiBpc1JlYWN0UmVmcmVzaEJvdW5kYXJ5LFxuICAgIHNob3VsZEludmFsaWRhdGVSZWFjdFJlZnJlc2hCb3VuZGFyeTogc2hvdWxkSW52YWxpZGF0ZVJlYWN0UmVmcmVzaEJvdW5kYXJ5LFxuICAgIGdldFJlZnJlc2hCb3VuZGFyeVNpZ25hdHVyZTogZ2V0UmVmcmVzaEJvdW5kYXJ5U2lnbmF0dXJlLFxuICAgIHNjaGVkdWxlVXBkYXRlOiBzY2hlZHVsZVVwZGF0ZSxcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1oZWxwZXJzLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@next/react-refresh-utils/internal/helpers.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-refresh-utils/runtime.js": +/*!***********************************************************!*\ + !*** ./node_modules/@next/react-refresh-utils/runtime.js ***! + \***********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst runtime_1 = __importDefault(__webpack_require__(/*! react-refresh/runtime */ \"./node_modules/react-refresh/runtime.js\"));\nconst helpers_1 = __importDefault(__webpack_require__(/*! ./internal/helpers */ \"./node_modules/@next/react-refresh-utils/internal/helpers.js\"));\n// Hook into ReactDOM initialization\nruntime_1.default.injectIntoGlobalHook(self);\n// Register global helpers\nself.$RefreshHelpers$ = helpers_1.default;\n// Register a helper for module execution interception\nself.$RefreshInterceptModuleExecution$ = function (webpackModuleId) {\n var prevRefreshReg = self.$RefreshReg$;\n var prevRefreshSig = self.$RefreshSig$;\n self.$RefreshReg$ = function (type, id) {\n runtime_1.default.register(type, webpackModuleId + ' ' + id);\n };\n self.$RefreshSig$ = runtime_1.default.createSignatureFunctionForTransform;\n // Modeled after `useEffect` cleanup pattern:\n // https://reactjs.org/docs/hooks-effect.html#effects-with-cleanup\n return function () {\n self.$RefreshReg$ = prevRefreshReg;\n self.$RefreshSig$ = prevRefreshSig;\n };\n};\n//# sourceMappingURL=runtime.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtcmVmcmVzaC11dGlscy9ydW50aW1lLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQSw2Q0FBNkM7QUFDN0M7QUFDQSw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsa0NBQWtDLG1CQUFPLENBQUMsc0VBQXVCO0FBQ2pFLGtDQUFrQyxtQkFBTyxDQUFDLHdGQUFvQjtBQUM5RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AbmV4dC9yZWFjdC1yZWZyZXNoLXV0aWxzL3J1bnRpbWUuanM/MjMxOSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmNvbnN0IHJ1bnRpbWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwicmVhY3QtcmVmcmVzaC9ydW50aW1lXCIpKTtcbmNvbnN0IGhlbHBlcnNfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi9pbnRlcm5hbC9oZWxwZXJzXCIpKTtcbi8vIEhvb2sgaW50byBSZWFjdERPTSBpbml0aWFsaXphdGlvblxucnVudGltZV8xLmRlZmF1bHQuaW5qZWN0SW50b0dsb2JhbEhvb2soc2VsZik7XG4vLyBSZWdpc3RlciBnbG9iYWwgaGVscGVyc1xuc2VsZi4kUmVmcmVzaEhlbHBlcnMkID0gaGVscGVyc18xLmRlZmF1bHQ7XG4vLyBSZWdpc3RlciBhIGhlbHBlciBmb3IgbW9kdWxlIGV4ZWN1dGlvbiBpbnRlcmNlcHRpb25cbnNlbGYuJFJlZnJlc2hJbnRlcmNlcHRNb2R1bGVFeGVjdXRpb24kID0gZnVuY3Rpb24gKHdlYnBhY2tNb2R1bGVJZCkge1xuICAgIHZhciBwcmV2UmVmcmVzaFJlZyA9IHNlbGYuJFJlZnJlc2hSZWckO1xuICAgIHZhciBwcmV2UmVmcmVzaFNpZyA9IHNlbGYuJFJlZnJlc2hTaWckO1xuICAgIHNlbGYuJFJlZnJlc2hSZWckID0gZnVuY3Rpb24gKHR5cGUsIGlkKSB7XG4gICAgICAgIHJ1bnRpbWVfMS5kZWZhdWx0LnJlZ2lzdGVyKHR5cGUsIHdlYnBhY2tNb2R1bGVJZCArICcgJyArIGlkKTtcbiAgICB9O1xuICAgIHNlbGYuJFJlZnJlc2hTaWckID0gcnVudGltZV8xLmRlZmF1bHQuY3JlYXRlU2lnbmF0dXJlRnVuY3Rpb25Gb3JUcmFuc2Zvcm07XG4gICAgLy8gTW9kZWxlZCBhZnRlciBgdXNlRWZmZWN0YCBjbGVhbnVwIHBhdHRlcm46XG4gICAgLy8gaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL2hvb2tzLWVmZmVjdC5odG1sI2VmZmVjdHMtd2l0aC1jbGVhbnVwXG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgc2VsZi4kUmVmcmVzaFJlZyQgPSBwcmV2UmVmcmVzaFJlZztcbiAgICAgICAgc2VsZi4kUmVmcmVzaFNpZyQgPSBwcmV2UmVmcmVzaFNpZztcbiAgICB9O1xufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJ1bnRpbWUuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@next/react-refresh-utils/runtime.js\n"); + +/***/ }), + +/***/ "./node_modules/react-refresh/cjs/react-refresh-runtime.development.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/react-refresh/cjs/react-refresh-runtime.development.js ***! + \*****************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("/** @license React vundefined\n * react-refresh-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its 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\n\n\n\n\nif (true) {\n (function() {\n'use strict';\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar REACT_ELEMENT_TYPE = 0xeac7;\nvar REACT_PORTAL_TYPE = 0xeaca;\nvar REACT_FRAGMENT_TYPE = 0xeacb;\nvar REACT_STRICT_MODE_TYPE = 0xeacc;\nvar REACT_PROFILER_TYPE = 0xead2;\nvar REACT_PROVIDER_TYPE = 0xeacd;\nvar REACT_CONTEXT_TYPE = 0xeace;\nvar REACT_FORWARD_REF_TYPE = 0xead0;\nvar REACT_SUSPENSE_TYPE = 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = 0xead8;\nvar REACT_MEMO_TYPE = 0xead3;\nvar REACT_LAZY_TYPE = 0xead4;\nvar REACT_BLOCK_TYPE = 0xead9;\nvar REACT_SERVER_BLOCK_TYPE = 0xeada;\nvar REACT_FUNDAMENTAL_TYPE = 0xead5;\nvar REACT_RESPONDER_TYPE = 0xead6;\nvar REACT_SCOPE_TYPE = 0xead7;\nvar REACT_OPAQUE_ID_TYPE = 0xeae0;\nvar REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1;\nvar REACT_OFFSCREEN_TYPE = 0xeae2;\nvar REACT_LEGACY_HIDDEN_TYPE = 0xeae3;\n\nif (typeof Symbol === 'function' && Symbol.for) {\n var symbolFor = Symbol.for;\n REACT_ELEMENT_TYPE = symbolFor('react.element');\n REACT_PORTAL_TYPE = symbolFor('react.portal');\n REACT_FRAGMENT_TYPE = symbolFor('react.fragment');\n REACT_STRICT_MODE_TYPE = symbolFor('react.strict_mode');\n REACT_PROFILER_TYPE = symbolFor('react.profiler');\n REACT_PROVIDER_TYPE = symbolFor('react.provider');\n REACT_CONTEXT_TYPE = symbolFor('react.context');\n REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref');\n REACT_SUSPENSE_TYPE = symbolFor('react.suspense');\n REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list');\n REACT_MEMO_TYPE = symbolFor('react.memo');\n REACT_LAZY_TYPE = symbolFor('react.lazy');\n REACT_BLOCK_TYPE = symbolFor('react.block');\n REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block');\n REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental');\n REACT_RESPONDER_TYPE = symbolFor('react.responder');\n REACT_SCOPE_TYPE = symbolFor('react.scope');\n REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id');\n REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode');\n REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen');\n REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden');\n}\n\nvar PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map; // We never remove these associations.\n// It's OK to reference families, but use WeakMap/Set for types.\n\nvar allFamiliesByID = new Map();\nvar allFamiliesByType = new PossiblyWeakMap();\nvar allSignaturesByType = new PossiblyWeakMap(); // This WeakMap is read by React, so we only put families\n// that have actually been edited here. This keeps checks fast.\n// $FlowIssue\n\nvar updatedFamiliesByType = new PossiblyWeakMap(); // This is cleared on every performReactRefresh() call.\n// It is an array of [Family, NextType] tuples.\n\nvar pendingUpdates = []; // This is injected by the renderer via DevTools global hook.\n\nvar helpersByRendererID = new Map();\nvar helpersByRoot = new Map(); // We keep track of mounted roots so we can schedule updates.\n\nvar mountedRoots = new Set(); // If a root captures an error, we remember it so we can retry on edit.\n\nvar failedRoots = new Set(); // In environments that support WeakMap, we also remember the last element for every root.\n// It needs to be weak because we do this even for roots that failed to mount.\n// If there is no WeakMap, we won't attempt to do retrying.\n// $FlowIssue\n\nvar rootElements = // $FlowIssue\ntypeof WeakMap === 'function' ? new WeakMap() : null;\nvar isPerformingRefresh = false;\n\nfunction computeFullKey(signature) {\n if (signature.fullKey !== null) {\n return signature.fullKey;\n }\n\n var fullKey = signature.ownKey;\n var hooks;\n\n try {\n hooks = signature.getCustomHooks();\n } catch (err) {\n // This can happen in an edge case, e.g. if expression like Foo.useSomething\n // depends on Foo which is lazily initialized during rendering.\n // In that case just assume we'll have to remount.\n signature.forceReset = true;\n signature.fullKey = fullKey;\n return fullKey;\n }\n\n for (var i = 0; i < hooks.length; i++) {\n var hook = hooks[i];\n\n if (typeof hook !== 'function') {\n // Something's wrong. Assume we need to remount.\n signature.forceReset = true;\n signature.fullKey = fullKey;\n return fullKey;\n }\n\n var nestedHookSignature = allSignaturesByType.get(hook);\n\n if (nestedHookSignature === undefined) {\n // No signature means Hook wasn't in the source code, e.g. in a library.\n // We'll skip it because we can assume it won't change during this session.\n continue;\n }\n\n var nestedHookKey = computeFullKey(nestedHookSignature);\n\n if (nestedHookSignature.forceReset) {\n signature.forceReset = true;\n }\n\n fullKey += '\\n---\\n' + nestedHookKey;\n }\n\n signature.fullKey = fullKey;\n return fullKey;\n}\n\nfunction haveEqualSignatures(prevType, nextType) {\n var prevSignature = allSignaturesByType.get(prevType);\n var nextSignature = allSignaturesByType.get(nextType);\n\n if (prevSignature === undefined && nextSignature === undefined) {\n return true;\n }\n\n if (prevSignature === undefined || nextSignature === undefined) {\n return false;\n }\n\n if (computeFullKey(prevSignature) !== computeFullKey(nextSignature)) {\n return false;\n }\n\n if (nextSignature.forceReset) {\n return false;\n }\n\n return true;\n}\n\nfunction isReactClass(type) {\n return type.prototype && type.prototype.isReactComponent;\n}\n\nfunction canPreserveStateBetween(prevType, nextType) {\n if (isReactClass(prevType) || isReactClass(nextType)) {\n return false;\n }\n\n if (haveEqualSignatures(prevType, nextType)) {\n return true;\n }\n\n return false;\n}\n\nfunction resolveFamily(type) {\n // Only check updated types to keep lookups fast.\n return updatedFamiliesByType.get(type);\n} // If we didn't care about IE11, we could use new Map/Set(iterable).\n\n\nfunction cloneMap(map) {\n var clone = new Map();\n map.forEach(function (value, key) {\n clone.set(key, value);\n });\n return clone;\n}\n\nfunction cloneSet(set) {\n var clone = new Set();\n set.forEach(function (value) {\n clone.add(value);\n });\n return clone;\n}\n\nfunction performReactRefresh() {\n\n if (pendingUpdates.length === 0) {\n return null;\n }\n\n if (isPerformingRefresh) {\n return null;\n }\n\n isPerformingRefresh = true;\n\n try {\n var staleFamilies = new Set();\n var updatedFamilies = new Set();\n var updates = pendingUpdates;\n pendingUpdates = [];\n updates.forEach(function (_ref) {\n var family = _ref[0],\n nextType = _ref[1];\n // Now that we got a real edit, we can create associations\n // that will be read by the React reconciler.\n var prevType = family.current;\n updatedFamiliesByType.set(prevType, family);\n updatedFamiliesByType.set(nextType, family);\n family.current = nextType; // Determine whether this should be a re-render or a re-mount.\n\n if (canPreserveStateBetween(prevType, nextType)) {\n updatedFamilies.add(family);\n } else {\n staleFamilies.add(family);\n }\n }); // TODO: rename these fields to something more meaningful.\n\n var update = {\n updatedFamilies: updatedFamilies,\n // Families that will re-render preserving state\n staleFamilies: staleFamilies // Families that will be remounted\n\n };\n helpersByRendererID.forEach(function (helpers) {\n // Even if there are no roots, set the handler on first update.\n // This ensures that if *new* roots are mounted, they'll use the resolve handler.\n helpers.setRefreshHandler(resolveFamily);\n });\n var didError = false;\n var firstError = null; // We snapshot maps and sets that are mutated during commits.\n // If we don't do this, there is a risk they will be mutated while\n // we iterate over them. For example, trying to recover a failed root\n // may cause another root to be added to the failed list -- an infinite loop.\n\n var failedRootsSnapshot = cloneSet(failedRoots);\n var mountedRootsSnapshot = cloneSet(mountedRoots);\n var helpersByRootSnapshot = cloneMap(helpersByRoot);\n failedRootsSnapshot.forEach(function (root) {\n var helpers = helpersByRootSnapshot.get(root);\n\n if (helpers === undefined) {\n throw new Error('Could not find helpers for a root. This is a bug in React Refresh.');\n }\n\n if (!failedRoots.has(root)) {// No longer failed.\n }\n\n if (rootElements === null) {\n return;\n }\n\n if (!rootElements.has(root)) {\n return;\n }\n\n var element = rootElements.get(root);\n\n try {\n helpers.scheduleRoot(root, element);\n } catch (err) {\n if (!didError) {\n didError = true;\n firstError = err;\n } // Keep trying other roots.\n\n }\n });\n mountedRootsSnapshot.forEach(function (root) {\n var helpers = helpersByRootSnapshot.get(root);\n\n if (helpers === undefined) {\n throw new Error('Could not find helpers for a root. This is a bug in React Refresh.');\n }\n\n if (!mountedRoots.has(root)) {// No longer mounted.\n }\n\n try {\n helpers.scheduleRefresh(root, update);\n } catch (err) {\n if (!didError) {\n didError = true;\n firstError = err;\n } // Keep trying other roots.\n\n }\n });\n\n if (didError) {\n throw firstError;\n }\n\n return update;\n } finally {\n isPerformingRefresh = false;\n }\n}\nfunction register(type, id) {\n {\n if (type === null) {\n return;\n }\n\n if (typeof type !== 'function' && typeof type !== 'object') {\n return;\n } // This can happen in an edge case, e.g. if we register\n // return value of a HOC but it returns a cached component.\n // Ignore anything but the first registration for each type.\n\n\n if (allFamiliesByType.has(type)) {\n return;\n } // Create family or remember to update it.\n // None of this bookkeeping affects reconciliation\n // until the first performReactRefresh() call above.\n\n\n var family = allFamiliesByID.get(id);\n\n if (family === undefined) {\n family = {\n current: type\n };\n allFamiliesByID.set(id, family);\n } else {\n pendingUpdates.push([family, type]);\n }\n\n allFamiliesByType.set(type, family); // Visit inner types because we might not have registered them.\n\n if (typeof type === 'object' && type !== null) {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n register(type.render, id + '$render');\n break;\n\n case REACT_MEMO_TYPE:\n register(type.type, id + '$type');\n break;\n }\n }\n }\n}\nfunction setSignature(type, key) {\n var forceReset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var getCustomHooks = arguments.length > 3 ? arguments[3] : undefined;\n\n {\n allSignaturesByType.set(type, {\n forceReset: forceReset,\n ownKey: key,\n fullKey: null,\n getCustomHooks: getCustomHooks || function () {\n return [];\n }\n });\n }\n} // This is lazily called during first render for a type.\n// It captures Hook list at that time so inline requires don't break comparisons.\n\nfunction collectCustomHooksForSignature(type) {\n {\n var signature = allSignaturesByType.get(type);\n\n if (signature !== undefined) {\n computeFullKey(signature);\n }\n }\n}\nfunction getFamilyByID(id) {\n {\n return allFamiliesByID.get(id);\n }\n}\nfunction getFamilyByType(type) {\n {\n return allFamiliesByType.get(type);\n }\n}\nfunction findAffectedHostInstances(families) {\n {\n var affectedInstances = new Set();\n mountedRoots.forEach(function (root) {\n var helpers = helpersByRoot.get(root);\n\n if (helpers === undefined) {\n throw new Error('Could not find helpers for a root. This is a bug in React Refresh.');\n }\n\n var instancesForRoot = helpers.findHostInstancesForRefresh(root, families);\n instancesForRoot.forEach(function (inst) {\n affectedInstances.add(inst);\n });\n });\n return affectedInstances;\n }\n}\nfunction injectIntoGlobalHook(globalObject) {\n {\n // For React Native, the global hook will be set up by require('react-devtools-core').\n // That code will run before us. So we need to monkeypatch functions on existing hook.\n // For React Web, the global hook will be set up by the extension.\n // This will also run before us.\n var hook = globalObject.__REACT_DEVTOOLS_GLOBAL_HOOK__;\n\n if (hook === undefined) {\n // However, if there is no DevTools extension, we'll need to set up the global hook ourselves.\n // Note that in this case it's important that renderer code runs *after* this method call.\n // Otherwise, the renderer will think that there is no global hook, and won't do the injection.\n var nextID = 0;\n globalObject.__REACT_DEVTOOLS_GLOBAL_HOOK__ = hook = {\n renderers: new Map(),\n supportsFiber: true,\n inject: function (injected) {\n return nextID++;\n },\n onScheduleFiberRoot: function (id, root, children) {},\n onCommitFiberRoot: function (id, root, maybePriorityLevel, didError) {},\n onCommitFiberUnmount: function () {}\n };\n } // Here, we just want to get a reference to scheduleRefresh.\n\n\n var oldInject = hook.inject;\n\n hook.inject = function (injected) {\n var id = oldInject.apply(this, arguments);\n\n if (typeof injected.scheduleRefresh === 'function' && typeof injected.setRefreshHandler === 'function') {\n // This version supports React Refresh.\n helpersByRendererID.set(id, injected);\n }\n\n return id;\n }; // Do the same for any already injected roots.\n // This is useful if ReactDOM has already been initialized.\n // https://github.com/facebook/react/issues/17626\n\n\n hook.renderers.forEach(function (injected, id) {\n if (typeof injected.scheduleRefresh === 'function' && typeof injected.setRefreshHandler === 'function') {\n // This version supports React Refresh.\n helpersByRendererID.set(id, injected);\n }\n }); // We also want to track currently mounted roots.\n\n var oldOnCommitFiberRoot = hook.onCommitFiberRoot;\n\n var oldOnScheduleFiberRoot = hook.onScheduleFiberRoot || function () {};\n\n hook.onScheduleFiberRoot = function (id, root, children) {\n if (!isPerformingRefresh) {\n // If it was intentionally scheduled, don't attempt to restore.\n // This includes intentionally scheduled unmounts.\n failedRoots.delete(root);\n\n if (rootElements !== null) {\n rootElements.set(root, children);\n }\n }\n\n return oldOnScheduleFiberRoot.apply(this, arguments);\n };\n\n hook.onCommitFiberRoot = function (id, root, maybePriorityLevel, didError) {\n var helpers = helpersByRendererID.get(id);\n\n if (helpers === undefined) {\n return;\n }\n\n helpersByRoot.set(root, helpers);\n var current = root.current;\n var alternate = current.alternate; // We need to determine whether this root has just (un)mounted.\n // This logic is copy-pasted from similar logic in the DevTools backend.\n // If this breaks with some refactoring, you'll want to update DevTools too.\n\n if (alternate !== null) {\n var wasMounted = alternate.memoizedState != null && alternate.memoizedState.element != null;\n var isMounted = current.memoizedState != null && current.memoizedState.element != null;\n\n if (!wasMounted && isMounted) {\n // Mount a new root.\n mountedRoots.add(root);\n failedRoots.delete(root);\n } else if (wasMounted && isMounted) ; else if (wasMounted && !isMounted) {\n // Unmount an existing root.\n mountedRoots.delete(root);\n\n if (didError) {\n // We'll remount it on future edits.\n failedRoots.add(root);\n } else {\n helpersByRoot.delete(root);\n }\n } else if (!wasMounted && !isMounted) {\n if (didError) {\n // We'll remount it on future edits.\n failedRoots.add(root);\n }\n }\n } else {\n // Mount a new root.\n mountedRoots.add(root);\n }\n\n return oldOnCommitFiberRoot.apply(this, arguments);\n };\n }\n}\nfunction hasUnrecoverableErrors() {\n // TODO: delete this after removing dependency in RN.\n return false;\n} // Exposed for testing.\n\nfunction _getMountedRootCount() {\n {\n return mountedRoots.size;\n }\n} // This is a wrapper over more primitive functions for setting signature.\n// Signatures let us decide whether the Hook order has changed on refresh.\n//\n// This function is intended to be used as a transform target, e.g.:\n// var _s = createSignatureFunctionForTransform()\n//\n// function Hello() {\n// const [foo, setFoo] = useState(0);\n// const value = useCustomHook();\n// _s(); /* Second call triggers collecting the custom Hook list.\n// * This doesn't happen during the module evaluation because we\n// * don't want to change the module order with inline requires.\n// * Next calls are noops. */\n// return <h1>Hi</h1>;\n// }\n//\n// /* First call specifies the signature: */\n// _s(\n// Hello,\n// 'useState{[foo, setFoo]}(0)',\n// () => [useCustomHook], /* Lazy to avoid triggering inline requires */\n// );\n\nfunction createSignatureFunctionForTransform() {\n {\n // We'll fill in the signature in two steps.\n // First, we'll know the signature itself. This happens outside the component.\n // Then, we'll know the references to custom Hooks. This happens inside the component.\n // After that, the returned function will be a fast path no-op.\n var status = 'needsSignature';\n var savedType;\n var hasCustomHooks;\n return function (type, key, forceReset, getCustomHooks) {\n switch (status) {\n case 'needsSignature':\n if (type !== undefined) {\n // If we received an argument, this is the initial registration call.\n savedType = type;\n hasCustomHooks = typeof getCustomHooks === 'function';\n setSignature(type, key, forceReset, getCustomHooks); // The next call we expect is from inside a function, to fill in the custom Hooks.\n\n status = 'needsCustomHooks';\n }\n\n break;\n\n case 'needsCustomHooks':\n if (hasCustomHooks) {\n collectCustomHooksForSignature(savedType);\n }\n\n status = 'resolved';\n break;\n }\n\n return type;\n };\n }\n}\nfunction isLikelyComponentType(type) {\n {\n switch (typeof type) {\n case 'function':\n {\n // First, deal with classes.\n if (type.prototype != null) {\n if (type.prototype.isReactComponent) {\n // React class.\n return true;\n }\n\n var ownNames = Object.getOwnPropertyNames(type.prototype);\n\n if (ownNames.length > 1 || ownNames[0] !== 'constructor') {\n // This looks like a class.\n return false;\n } // eslint-disable-next-line no-proto\n\n\n if (type.prototype.__proto__ !== Object.prototype) {\n // It has a superclass.\n return false;\n } // Pass through.\n // This looks like a regular function with empty prototype.\n\n } // For plain functions and arrows, use name as a heuristic.\n\n\n var name = type.name || type.displayName;\n return typeof name === 'string' && /^[A-Z]/.test(name);\n }\n\n case 'object':\n {\n if (type != null) {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n case REACT_MEMO_TYPE:\n // Definitely React components.\n return true;\n\n default:\n return false;\n }\n }\n\n return false;\n }\n\n default:\n {\n return false;\n }\n }\n }\n}\n\nexports._getMountedRootCount = _getMountedRootCount;\nexports.collectCustomHooksForSignature = collectCustomHooksForSignature;\nexports.createSignatureFunctionForTransform = createSignatureFunctionForTransform;\nexports.findAffectedHostInstances = findAffectedHostInstances;\nexports.getFamilyByID = getFamilyByID;\nexports.getFamilyByType = getFamilyByType;\nexports.hasUnrecoverableErrors = hasUnrecoverableErrors;\nexports.injectIntoGlobalHook = injectIntoGlobalHook;\nexports.isLikelyComponentType = isLikelyComponentType;\nexports.performReactRefresh = performReactRefresh;\nexports.register = register;\nexports.setSignature = setSignature;\n })();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtcmVmcmVzaC9janMvcmVhY3QtcmVmcmVzaC1ydW50aW1lLmRldmVsb3BtZW50LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWE7Ozs7QUFJYixJQUFJLElBQXFDO0FBQ3pDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEscUVBQXFFO0FBQ3JFOztBQUVBO0FBQ0E7QUFDQSxpREFBaUQ7QUFDakQ7QUFDQTs7QUFFQSxtREFBbUQ7QUFDbkQ7O0FBRUEseUJBQXlCOztBQUV6QjtBQUNBLCtCQUErQjs7QUFFL0IsOEJBQThCOztBQUU5Qiw2QkFBNkI7QUFDN0I7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsa0JBQWtCLGtCQUFrQjtBQUNwQzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7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QTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFOztBQUVGO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxjQUFjO0FBQzdCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpRUFBaUU7O0FBRWpFO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxjQUFjOzs7QUFHZDtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7O0FBRUEsWUFBWTs7O0FBR1o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSw0QkFBNEI7QUFDNUIsc0NBQXNDO0FBQ3RDLDJDQUEyQztBQUMzQyxpQ0FBaUM7QUFDakMscUJBQXFCO0FBQ3JCLHVCQUF1QjtBQUN2Qiw4QkFBOEI7QUFDOUIsNEJBQTRCO0FBQzVCLDZCQUE2QjtBQUM3QiwyQkFBMkI7QUFDM0IsZ0JBQWdCO0FBQ2hCLG9CQUFvQjtBQUNwQixHQUFHO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXJlZnJlc2gvY2pzL3JlYWN0LXJlZnJlc2gtcnVudGltZS5kZXZlbG9wbWVudC5qcz83ODYyIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBAbGljZW5zZSBSZWFjdCB2dW5kZWZpbmVkXG4gKiByZWFjdC1yZWZyZXNoLXJ1bnRpbWUuZGV2ZWxvcG1lbnQuanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIEZhY2Vib29rLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cblxuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gIChmdW5jdGlvbigpIHtcbid1c2Ugc3RyaWN0JztcblxuLy8gQVRURU5USU9OXG4vLyBXaGVuIGFkZGluZyBuZXcgc3ltYm9scyB0byB0aGlzIGZpbGUsXG4vLyBQbGVhc2UgY29uc2lkZXIgYWxzbyBhZGRpbmcgdG8gJ3JlYWN0LWRldnRvb2xzLXNoYXJlZC9zcmMvYmFja2VuZC9SZWFjdFN5bWJvbHMnXG4vLyBUaGUgU3ltYm9sIHVzZWQgdG8gdGFnIHRoZSBSZWFjdEVsZW1lbnQtbGlrZSB0eXBlcy4gSWYgdGhlcmUgaXMgbm8gbmF0aXZlIFN5bWJvbFxuLy8gbm9yIHBvbHlmaWxsLCB0aGVuIGEgcGxhaW4gbnVtYmVyIGlzIHVzZWQgZm9yIHBlcmZvcm1hbmNlLlxudmFyIFJFQUNUX0VMRU1FTlRfVFlQRSA9IDB4ZWFjNztcbnZhciBSRUFDVF9QT1JUQUxfVFlQRSA9IDB4ZWFjYTtcbnZhciBSRUFDVF9GUkFHTUVOVF9UWVBFID0gMHhlYWNiO1xudmFyIFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgPSAweGVhY2M7XG52YXIgUkVBQ1RfUFJPRklMRVJfVFlQRSA9IDB4ZWFkMjtcbnZhciBSRUFDVF9QUk9WSURFUl9UWVBFID0gMHhlYWNkO1xudmFyIFJFQUNUX0NPTlRFWFRfVFlQRSA9IDB4ZWFjZTtcbnZhciBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFID0gMHhlYWQwO1xudmFyIFJFQUNUX1NVU1BFTlNFX1RZUEUgPSAweGVhZDE7XG52YXIgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFID0gMHhlYWQ4O1xudmFyIFJFQUNUX01FTU9fVFlQRSA9IDB4ZWFkMztcbnZhciBSRUFDVF9MQVpZX1RZUEUgPSAweGVhZDQ7XG52YXIgUkVBQ1RfQkxPQ0tfVFlQRSA9IDB4ZWFkOTtcbnZhciBSRUFDVF9TRVJWRVJfQkxPQ0tfVFlQRSA9IDB4ZWFkYTtcbnZhciBSRUFDVF9GVU5EQU1FTlRBTF9UWVBFID0gMHhlYWQ1O1xudmFyIFJFQUNUX1JFU1BPTkRFUl9UWVBFID0gMHhlYWQ2O1xudmFyIFJFQUNUX1NDT1BFX1RZUEUgPSAweGVhZDc7XG52YXIgUkVBQ1RfT1BBUVVFX0lEX1RZUEUgPSAweGVhZTA7XG52YXIgUkVBQ1RfREVCVUdfVFJBQ0lOR19NT0RFX1RZUEUgPSAweGVhZTE7XG52YXIgUkVBQ1RfT0ZGU0NSRUVOX1RZUEUgPSAweGVhZTI7XG52YXIgUkVBQ1RfTEVHQUNZX0hJRERFTl9UWVBFID0gMHhlYWUzO1xuXG5pZiAodHlwZW9mIFN5bWJvbCA9PT0gJ2Z1bmN0aW9uJyAmJiBTeW1ib2wuZm9yKSB7XG4gIHZhciBzeW1ib2xGb3IgPSBTeW1ib2wuZm9yO1xuICBSRUFDVF9FTEVNRU5UX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LmVsZW1lbnQnKTtcbiAgUkVBQ1RfUE9SVEFMX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LnBvcnRhbCcpO1xuICBSRUFDVF9GUkFHTUVOVF9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5mcmFnbWVudCcpO1xuICBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5zdHJpY3RfbW9kZScpO1xuICBSRUFDVF9QUk9GSUxFUl9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5wcm9maWxlcicpO1xuICBSRUFDVF9QUk9WSURFUl9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5wcm92aWRlcicpO1xuICBSRUFDVF9DT05URVhUX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LmNvbnRleHQnKTtcbiAgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QuZm9yd2FyZF9yZWYnKTtcbiAgUkVBQ1RfU1VTUEVOU0VfVFlQRSA9IHN5bWJvbEZvcigncmVhY3Quc3VzcGVuc2UnKTtcbiAgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5zdXNwZW5zZV9saXN0Jyk7XG4gIFJFQUNUX01FTU9fVFlQRSA9IHN5bWJvbEZvcigncmVhY3QubWVtbycpO1xuICBSRUFDVF9MQVpZX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LmxhenknKTtcbiAgUkVBQ1RfQkxPQ0tfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QuYmxvY2snKTtcbiAgUkVBQ1RfU0VSVkVSX0JMT0NLX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LnNlcnZlci5ibG9jaycpO1xuICBSRUFDVF9GVU5EQU1FTlRBTF9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5mdW5kYW1lbnRhbCcpO1xuICBSRUFDVF9SRVNQT05ERVJfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QucmVzcG9uZGVyJyk7XG4gIFJFQUNUX1NDT1BFX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LnNjb3BlJyk7XG4gIFJFQUNUX09QQVFVRV9JRF9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5vcGFxdWUuaWQnKTtcbiAgUkVBQ1RfREVCVUdfVFJBQ0lOR19NT0RFX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LmRlYnVnX3RyYWNlX21vZGUnKTtcbiAgUkVBQ1RfT0ZGU0NSRUVOX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0Lm9mZnNjcmVlbicpO1xuICBSRUFDVF9MRUdBQ1lfSElEREVOX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LmxlZ2FjeV9oaWRkZW4nKTtcbn1cblxudmFyIFBvc3NpYmx5V2Vha01hcCA9IHR5cGVvZiBXZWFrTWFwID09PSAnZnVuY3Rpb24nID8gV2Vha01hcCA6IE1hcDsgLy8gV2UgbmV2ZXIgcmVtb3ZlIHRoZXNlIGFzc29jaWF0aW9ucy5cbi8vIEl0J3MgT0sgdG8gcmVmZXJlbmNlIGZhbWlsaWVzLCBidXQgdXNlIFdlYWtNYXAvU2V0IGZvciB0eXBlcy5cblxudmFyIGFsbEZhbWlsaWVzQnlJRCA9IG5ldyBNYXAoKTtcbnZhciBhbGxGYW1pbGllc0J5VHlwZSA9IG5ldyBQb3NzaWJseVdlYWtNYXAoKTtcbnZhciBhbGxTaWduYXR1cmVzQnlUeXBlID0gbmV3IFBvc3NpYmx5V2Vha01hcCgpOyAvLyBUaGlzIFdlYWtNYXAgaXMgcmVhZCBieSBSZWFjdCwgc28gd2Ugb25seSBwdXQgZmFtaWxpZXNcbi8vIHRoYXQgaGF2ZSBhY3R1YWxseSBiZWVuIGVkaXRlZCBoZXJlLiBUaGlzIGtlZXBzIGNoZWNrcyBmYXN0LlxuLy8gJEZsb3dJc3N1ZVxuXG52YXIgdXBkYXRlZEZhbWlsaWVzQnlUeXBlID0gbmV3IFBvc3NpYmx5V2Vha01hcCgpOyAvLyBUaGlzIGlzIGNsZWFyZWQgb24gZXZlcnkgcGVyZm9ybVJlYWN0UmVmcmVzaCgpIGNhbGwuXG4vLyBJdCBpcyBhbiBhcnJheSBvZiBbRmFtaWx5LCBOZXh0VHlwZV0gdHVwbGVzLlxuXG52YXIgcGVuZGluZ1VwZGF0ZXMgPSBbXTsgLy8gVGhpcyBpcyBpbmplY3RlZCBieSB0aGUgcmVuZGVyZXIgdmlhIERldlRvb2xzIGdsb2JhbCBob29rLlxuXG52YXIgaGVscGVyc0J5UmVuZGVyZXJJRCA9IG5ldyBNYXAoKTtcbnZhciBoZWxwZXJzQnlSb290ID0gbmV3IE1hcCgpOyAvLyBXZSBrZWVwIHRyYWNrIG9mIG1vdW50ZWQgcm9vdHMgc28gd2UgY2FuIHNjaGVkdWxlIHVwZGF0ZXMuXG5cbnZhciBtb3VudGVkUm9vdHMgPSBuZXcgU2V0KCk7IC8vIElmIGEgcm9vdCBjYXB0dXJlcyBhbiBlcnJvciwgd2UgcmVtZW1iZXIgaXQgc28gd2UgY2FuIHJldHJ5IG9uIGVkaXQuXG5cbnZhciBmYWlsZWRSb290cyA9IG5ldyBTZXQoKTsgLy8gSW4gZW52aXJvbm1lbnRzIHRoYXQgc3VwcG9ydCBXZWFrTWFwLCB3ZSBhbHNvIHJlbWVtYmVyIHRoZSBsYXN0IGVsZW1lbnQgZm9yIGV2ZXJ5IHJvb3QuXG4vLyBJdCBuZWVkcyB0byBiZSB3ZWFrIGJlY2F1c2Ugd2UgZG8gdGhpcyBldmVuIGZvciByb290cyB0aGF0IGZhaWxlZCB0byBtb3VudC5cbi8vIElmIHRoZXJlIGlzIG5vIFdlYWtNYXAsIHdlIHdvbid0IGF0dGVtcHQgdG8gZG8gcmV0cnlpbmcuXG4vLyAkRmxvd0lzc3VlXG5cbnZhciByb290RWxlbWVudHMgPSAvLyAkRmxvd0lzc3VlXG50eXBlb2YgV2Vha01hcCA9PT0gJ2Z1bmN0aW9uJyA/IG5ldyBXZWFrTWFwKCkgOiBudWxsO1xudmFyIGlzUGVyZm9ybWluZ1JlZnJlc2ggPSBmYWxzZTtcblxuZnVuY3Rpb24gY29tcHV0ZUZ1bGxLZXkoc2lnbmF0dXJlKSB7XG4gIGlmIChzaWduYXR1cmUuZnVsbEtleSAhPT0gbnVsbCkge1xuICAgIHJldHVybiBzaWduYXR1cmUuZnVsbEtleTtcbiAgfVxuXG4gIHZhciBmdWxsS2V5ID0gc2lnbmF0dXJlLm93bktleTtcbiAgdmFyIGhvb2tzO1xuXG4gIHRyeSB7XG4gICAgaG9va3MgPSBzaWduYXR1cmUuZ2V0Q3VzdG9tSG9va3MoKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgLy8gVGhpcyBjYW4gaGFwcGVuIGluIGFuIGVkZ2UgY2FzZSwgZS5nLiBpZiBleHByZXNzaW9uIGxpa2UgRm9vLnVzZVNvbWV0aGluZ1xuICAgIC8vIGRlcGVuZHMgb24gRm9vIHdoaWNoIGlzIGxhemlseSBpbml0aWFsaXplZCBkdXJpbmcgcmVuZGVyaW5nLlxuICAgIC8vIEluIHRoYXQgY2FzZSBqdXN0IGFzc3VtZSB3ZSdsbCBoYXZlIHRvIHJlbW91bnQuXG4gICAgc2lnbmF0dXJlLmZvcmNlUmVzZXQgPSB0cnVlO1xuICAgIHNpZ25hdHVyZS5mdWxsS2V5ID0gZnVsbEtleTtcbiAgICByZXR1cm4gZnVsbEtleTtcbiAgfVxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgaG9va3MubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaG9vayA9IGhvb2tzW2ldO1xuXG4gICAgaWYgKHR5cGVvZiBob29rICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAvLyBTb21ldGhpbmcncyB3cm9uZy4gQXNzdW1lIHdlIG5lZWQgdG8gcmVtb3VudC5cbiAgICAgIHNpZ25hdHVyZS5mb3JjZVJlc2V0ID0gdHJ1ZTtcbiAgICAgIHNpZ25hdHVyZS5mdWxsS2V5ID0gZnVsbEtleTtcbiAgICAgIHJldHVybiBmdWxsS2V5O1xuICAgIH1cblxuICAgIHZhciBuZXN0ZWRIb29rU2lnbmF0dXJlID0gYWxsU2lnbmF0dXJlc0J5VHlwZS5nZXQoaG9vayk7XG5cbiAgICBpZiAobmVzdGVkSG9va1NpZ25hdHVyZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBObyBzaWduYXR1cmUgbWVhbnMgSG9vayB3YXNuJ3QgaW4gdGhlIHNvdXJjZSBjb2RlLCBlLmcuIGluIGEgbGlicmFyeS5cbiAgICAgIC8vIFdlJ2xsIHNraXAgaXQgYmVjYXVzZSB3ZSBjYW4gYXNzdW1lIGl0IHdvbid0IGNoYW5nZSBkdXJpbmcgdGhpcyBzZXNzaW9uLlxuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgdmFyIG5lc3RlZEhvb2tLZXkgPSBjb21wdXRlRnVsbEtleShuZXN0ZWRIb29rU2lnbmF0dXJlKTtcblxuICAgIGlmIChuZXN0ZWRIb29rU2lnbmF0dXJlLmZvcmNlUmVzZXQpIHtcbiAgICAgIHNpZ25hdHVyZS5mb3JjZVJlc2V0ID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBmdWxsS2V5ICs9ICdcXG4tLS1cXG4nICsgbmVzdGVkSG9va0tleTtcbiAgfVxuXG4gIHNpZ25hdHVyZS5mdWxsS2V5ID0gZnVsbEtleTtcbiAgcmV0dXJuIGZ1bGxLZXk7XG59XG5cbmZ1bmN0aW9uIGhhdmVFcXVhbFNpZ25hdHVyZXMocHJldlR5cGUsIG5leHRUeXBlKSB7XG4gIHZhciBwcmV2U2lnbmF0dXJlID0gYWxsU2lnbmF0dXJlc0J5VHlwZS5nZXQocHJldlR5cGUpO1xuICB2YXIgbmV4dFNpZ25hdHVyZSA9IGFsbFNpZ25hdHVyZXNCeVR5cGUuZ2V0KG5leHRUeXBlKTtcblxuICBpZiAocHJldlNpZ25hdHVyZSA9PT0gdW5kZWZpbmVkICYmIG5leHRTaWduYXR1cmUgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWYgKHByZXZTaWduYXR1cmUgPT09IHVuZGVmaW5lZCB8fCBuZXh0U2lnbmF0dXJlID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoY29tcHV0ZUZ1bGxLZXkocHJldlNpZ25hdHVyZSkgIT09IGNvbXB1dGVGdWxsS2V5KG5leHRTaWduYXR1cmUpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKG5leHRTaWduYXR1cmUuZm9yY2VSZXNldCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBpc1JlYWN0Q2xhc3ModHlwZSkge1xuICByZXR1cm4gdHlwZS5wcm90b3R5cGUgJiYgdHlwZS5wcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudDtcbn1cblxuZnVuY3Rpb24gY2FuUHJlc2VydmVTdGF0ZUJldHdlZW4ocHJldlR5cGUsIG5leHRUeXBlKSB7XG4gIGlmIChpc1JlYWN0Q2xhc3MocHJldlR5cGUpIHx8IGlzUmVhY3RDbGFzcyhuZXh0VHlwZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoaGF2ZUVxdWFsU2lnbmF0dXJlcyhwcmV2VHlwZSwgbmV4dFR5cGUpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIHJlc29sdmVGYW1pbHkodHlwZSkge1xuICAvLyBPbmx5IGNoZWNrIHVwZGF0ZWQgdHlwZXMgdG8ga2VlcCBsb29rdXBzIGZhc3QuXG4gIHJldHVybiB1cGRhdGVkRmFtaWxpZXNCeVR5cGUuZ2V0KHR5cGUpO1xufSAvLyBJZiB3ZSBkaWRuJ3QgY2FyZSBhYm91dCBJRTExLCB3ZSBjb3VsZCB1c2UgbmV3IE1hcC9TZXQoaXRlcmFibGUpLlxuXG5cbmZ1bmN0aW9uIGNsb25lTWFwKG1hcCkge1xuICB2YXIgY2xvbmUgPSBuZXcgTWFwKCk7XG4gIG1hcC5mb3JFYWNoKGZ1bmN0aW9uICh2YWx1ZSwga2V5KSB7XG4gICAgY2xvbmUuc2V0KGtleSwgdmFsdWUpO1xuICB9KTtcbiAgcmV0dXJuIGNsb25lO1xufVxuXG5mdW5jdGlvbiBjbG9uZVNldChzZXQpIHtcbiAgdmFyIGNsb25lID0gbmV3IFNldCgpO1xuICBzZXQuZm9yRWFjaChmdW5jdGlvbiAodmFsdWUpIHtcbiAgICBjbG9uZS5hZGQodmFsdWUpO1xuICB9KTtcbiAgcmV0dXJuIGNsb25lO1xufVxuXG5mdW5jdGlvbiBwZXJmb3JtUmVhY3RSZWZyZXNoKCkge1xuXG4gIGlmIChwZW5kaW5nVXBkYXRlcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmIChpc1BlcmZvcm1pbmdSZWZyZXNoKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpc1BlcmZvcm1pbmdSZWZyZXNoID0gdHJ1ZTtcblxuICB0cnkge1xuICAgIHZhciBzdGFsZUZhbWlsaWVzID0gbmV3IFNldCgpO1xuICAgIHZhciB1cGRhdGVkRmFtaWxpZXMgPSBuZXcgU2V0KCk7XG4gICAgdmFyIHVwZGF0ZXMgPSBwZW5kaW5nVXBkYXRlcztcbiAgICBwZW5kaW5nVXBkYXRlcyA9IFtdO1xuICAgIHVwZGF0ZXMuZm9yRWFjaChmdW5jdGlvbiAoX3JlZikge1xuICAgICAgdmFyIGZhbWlseSA9IF9yZWZbMF0sXG4gICAgICAgICAgbmV4dFR5cGUgPSBfcmVmWzFdO1xuICAgICAgLy8gTm93IHRoYXQgd2UgZ290IGEgcmVhbCBlZGl0LCB3ZSBjYW4gY3JlYXRlIGFzc29jaWF0aW9uc1xuICAgICAgLy8gdGhhdCB3aWxsIGJlIHJlYWQgYnkgdGhlIFJlYWN0IHJlY29uY2lsZXIuXG4gICAgICB2YXIgcHJldlR5cGUgPSBmYW1pbHkuY3VycmVudDtcbiAgICAgIHVwZGF0ZWRGYW1pbGllc0J5VHlwZS5zZXQocHJldlR5cGUsIGZhbWlseSk7XG4gICAgICB1cGRhdGVkRmFtaWxpZXNCeVR5cGUuc2V0KG5leHRUeXBlLCBmYW1pbHkpO1xuICAgICAgZmFtaWx5LmN1cnJlbnQgPSBuZXh0VHlwZTsgLy8gRGV0ZXJtaW5lIHdoZXRoZXIgdGhpcyBzaG91bGQgYmUgYSByZS1yZW5kZXIgb3IgYSByZS1tb3VudC5cblxuICAgICAgaWYgKGNhblByZXNlcnZlU3RhdGVCZXR3ZWVuKHByZXZUeXBlLCBuZXh0VHlwZSkpIHtcbiAgICAgICAgdXBkYXRlZEZhbWlsaWVzLmFkZChmYW1pbHkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3RhbGVGYW1pbGllcy5hZGQoZmFtaWx5KTtcbiAgICAgIH1cbiAgICB9KTsgLy8gVE9ETzogcmVuYW1lIHRoZXNlIGZpZWxkcyB0byBzb21ldGhpbmcgbW9yZSBtZWFuaW5nZnVsLlxuXG4gICAgdmFyIHVwZGF0ZSA9IHtcbiAgICAgIHVwZGF0ZWRGYW1pbGllczogdXBkYXRlZEZhbWlsaWVzLFxuICAgICAgLy8gRmFtaWxpZXMgdGhhdCB3aWxsIHJlLXJlbmRlciBwcmVzZXJ2aW5nIHN0YXRlXG4gICAgICBzdGFsZUZhbWlsaWVzOiBzdGFsZUZhbWlsaWVzIC8vIEZhbWlsaWVzIHRoYXQgd2lsbCBiZSByZW1vdW50ZWRcblxuICAgIH07XG4gICAgaGVscGVyc0J5UmVuZGVyZXJJRC5mb3JFYWNoKGZ1bmN0aW9uIChoZWxwZXJzKSB7XG4gICAgICAvLyBFdmVuIGlmIHRoZXJlIGFyZSBubyByb290cywgc2V0IHRoZSBoYW5kbGVyIG9uIGZpcnN0IHVwZGF0ZS5cbiAgICAgIC8vIFRoaXMgZW5zdXJlcyB0aGF0IGlmICpuZXcqIHJvb3RzIGFyZSBtb3VudGVkLCB0aGV5J2xsIHVzZSB0aGUgcmVzb2x2ZSBoYW5kbGVyLlxuICAgICAgaGVscGVycy5zZXRSZWZyZXNoSGFuZGxlcihyZXNvbHZlRmFtaWx5KTtcbiAgICB9KTtcbiAgICB2YXIgZGlkRXJyb3IgPSBmYWxzZTtcbiAgICB2YXIgZmlyc3RFcnJvciA9IG51bGw7IC8vIFdlIHNuYXBzaG90IG1hcHMgYW5kIHNldHMgdGhhdCBhcmUgbXV0YXRlZCBkdXJpbmcgY29tbWl0cy5cbiAgICAvLyBJZiB3ZSBkb24ndCBkbyB0aGlzLCB0aGVyZSBpcyBhIHJpc2sgdGhleSB3aWxsIGJlIG11dGF0ZWQgd2hpbGVcbiAgICAvLyB3ZSBpdGVyYXRlIG92ZXIgdGhlbS4gRm9yIGV4YW1wbGUsIHRyeWluZyB0byByZWNvdmVyIGEgZmFpbGVkIHJvb3RcbiAgICAvLyBtYXkgY2F1c2UgYW5vdGhlciByb290IHRvIGJlIGFkZGVkIHRvIHRoZSBmYWlsZWQgbGlzdCAtLSBhbiBpbmZpbml0ZSBsb29wLlxuXG4gICAgdmFyIGZhaWxlZFJvb3RzU25hcHNob3QgPSBjbG9uZVNldChmYWlsZWRSb290cyk7XG4gICAgdmFyIG1vdW50ZWRSb290c1NuYXBzaG90ID0gY2xvbmVTZXQobW91bnRlZFJvb3RzKTtcbiAgICB2YXIgaGVscGVyc0J5Um9vdFNuYXBzaG90ID0gY2xvbmVNYXAoaGVscGVyc0J5Um9vdCk7XG4gICAgZmFpbGVkUm9vdHNTbmFwc2hvdC5mb3JFYWNoKGZ1bmN0aW9uIChyb290KSB7XG4gICAgICB2YXIgaGVscGVycyA9IGhlbHBlcnNCeVJvb3RTbmFwc2hvdC5nZXQocm9vdCk7XG5cbiAgICAgIGlmIChoZWxwZXJzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgZmluZCBoZWxwZXJzIGZvciBhIHJvb3QuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QgUmVmcmVzaC4nKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFmYWlsZWRSb290cy5oYXMocm9vdCkpIHsvLyBObyBsb25nZXIgZmFpbGVkLlxuICAgICAgfVxuXG4gICAgICBpZiAocm9vdEVsZW1lbnRzID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKCFyb290RWxlbWVudHMuaGFzKHJvb3QpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdmFyIGVsZW1lbnQgPSByb290RWxlbWVudHMuZ2V0KHJvb3QpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBoZWxwZXJzLnNjaGVkdWxlUm9vdChyb290LCBlbGVtZW50KTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBpZiAoIWRpZEVycm9yKSB7XG4gICAgICAgICAgZGlkRXJyb3IgPSB0cnVlO1xuICAgICAgICAgIGZpcnN0RXJyb3IgPSBlcnI7XG4gICAgICAgIH0gLy8gS2VlcCB0cnlpbmcgb3RoZXIgcm9vdHMuXG5cbiAgICAgIH1cbiAgICB9KTtcbiAgICBtb3VudGVkUm9vdHNTbmFwc2hvdC5mb3JFYWNoKGZ1bmN0aW9uIChyb290KSB7XG4gICAgICB2YXIgaGVscGVycyA9IGhlbHBlcnNCeVJvb3RTbmFwc2hvdC5nZXQocm9vdCk7XG5cbiAgICAgIGlmIChoZWxwZXJzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgZmluZCBoZWxwZXJzIGZvciBhIHJvb3QuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QgUmVmcmVzaC4nKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFtb3VudGVkUm9vdHMuaGFzKHJvb3QpKSB7Ly8gTm8gbG9uZ2VyIG1vdW50ZWQuXG4gICAgICB9XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGhlbHBlcnMuc2NoZWR1bGVSZWZyZXNoKHJvb3QsIHVwZGF0ZSk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgaWYgKCFkaWRFcnJvcikge1xuICAgICAgICAgIGRpZEVycm9yID0gdHJ1ZTtcbiAgICAgICAgICBmaXJzdEVycm9yID0gZXJyO1xuICAgICAgICB9IC8vIEtlZXAgdHJ5aW5nIG90aGVyIHJvb3RzLlxuXG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoZGlkRXJyb3IpIHtcbiAgICAgIHRocm93IGZpcnN0RXJyb3I7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVwZGF0ZTtcbiAgfSBmaW5hbGx5IHtcbiAgICBpc1BlcmZvcm1pbmdSZWZyZXNoID0gZmFsc2U7XG4gIH1cbn1cbmZ1bmN0aW9uIHJlZ2lzdGVyKHR5cGUsIGlkKSB7XG4gIHtcbiAgICBpZiAodHlwZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdHlwZSAhPT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgdHlwZSAhPT0gJ29iamVjdCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9IC8vIFRoaXMgY2FuIGhhcHBlbiBpbiBhbiBlZGdlIGNhc2UsIGUuZy4gaWYgd2UgcmVnaXN0ZXJcbiAgICAvLyByZXR1cm4gdmFsdWUgb2YgYSBIT0MgYnV0IGl0IHJldHVybnMgYSBjYWNoZWQgY29tcG9uZW50LlxuICAgIC8vIElnbm9yZSBhbnl0aGluZyBidXQgdGhlIGZpcnN0IHJlZ2lzdHJhdGlvbiBmb3IgZWFjaCB0eXBlLlxuXG5cbiAgICBpZiAoYWxsRmFtaWxpZXNCeVR5cGUuaGFzKHR5cGUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfSAvLyBDcmVhdGUgZmFtaWx5IG9yIHJlbWVtYmVyIHRvIHVwZGF0ZSBpdC5cbiAgICAvLyBOb25lIG9mIHRoaXMgYm9va2tlZXBpbmcgYWZmZWN0cyByZWNvbmNpbGlhdGlvblxuICAgIC8vIHVudGlsIHRoZSBmaXJzdCBwZXJmb3JtUmVhY3RSZWZyZXNoKCkgY2FsbCBhYm92ZS5cblxuXG4gICAgdmFyIGZhbWlseSA9IGFsbEZhbWlsaWVzQnlJRC5nZXQoaWQpO1xuXG4gICAgaWYgKGZhbWlseSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBmYW1pbHkgPSB7XG4gICAgICAgIGN1cnJlbnQ6IHR5cGVcbiAgICAgIH07XG4gICAgICBhbGxGYW1pbGllc0J5SUQuc2V0KGlkLCBmYW1pbHkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBwZW5kaW5nVXBkYXRlcy5wdXNoKFtmYW1pbHksIHR5cGVdKTtcbiAgICB9XG5cbiAgICBhbGxGYW1pbGllc0J5VHlwZS5zZXQodHlwZSwgZmFtaWx5KTsgLy8gVmlzaXQgaW5uZXIgdHlwZXMgYmVjYXVzZSB3ZSBtaWdodCBub3QgaGF2ZSByZWdpc3RlcmVkIHRoZW0uXG5cbiAgICBpZiAodHlwZW9mIHR5cGUgPT09ICdvYmplY3QnICYmIHR5cGUgIT09IG51bGwpIHtcbiAgICAgIHN3aXRjaCAodHlwZS4kJHR5cGVvZikge1xuICAgICAgICBjYXNlIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU6XG4gICAgICAgICAgcmVnaXN0ZXIodHlwZS5yZW5kZXIsIGlkICsgJyRyZW5kZXInKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIFJFQUNUX01FTU9fVFlQRTpcbiAgICAgICAgICByZWdpc3Rlcih0eXBlLnR5cGUsIGlkICsgJyR0eXBlJyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBzZXRTaWduYXR1cmUodHlwZSwga2V5KSB7XG4gIHZhciBmb3JjZVJlc2V0ID0gYXJndW1lbnRzLmxlbmd0aCA+IDIgJiYgYXJndW1lbnRzWzJdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMl0gOiBmYWxzZTtcbiAgdmFyIGdldEN1c3RvbUhvb2tzID0gYXJndW1lbnRzLmxlbmd0aCA+IDMgPyBhcmd1bWVudHNbM10gOiB1bmRlZmluZWQ7XG5cbiAge1xuICAgIGFsbFNpZ25hdHVyZXNCeVR5cGUuc2V0KHR5cGUsIHtcbiAgICAgIGZvcmNlUmVzZXQ6IGZvcmNlUmVzZXQsXG4gICAgICBvd25LZXk6IGtleSxcbiAgICAgIGZ1bGxLZXk6IG51bGwsXG4gICAgICBnZXRDdXN0b21Ib29rczogZ2V0Q3VzdG9tSG9va3MgfHwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn0gLy8gVGhpcyBpcyBsYXppbHkgY2FsbGVkIGR1cmluZyBmaXJzdCByZW5kZXIgZm9yIGEgdHlwZS5cbi8vIEl0IGNhcHR1cmVzIEhvb2sgbGlzdCBhdCB0aGF0IHRpbWUgc28gaW5saW5lIHJlcXVpcmVzIGRvbid0IGJyZWFrIGNvbXBhcmlzb25zLlxuXG5mdW5jdGlvbiBjb2xsZWN0Q3VzdG9tSG9va3NGb3JTaWduYXR1cmUodHlwZSkge1xuICB7XG4gICAgdmFyIHNpZ25hdHVyZSA9IGFsbFNpZ25hdHVyZXNCeVR5cGUuZ2V0KHR5cGUpO1xuXG4gICAgaWYgKHNpZ25hdHVyZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb21wdXRlRnVsbEtleShzaWduYXR1cmUpO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gZ2V0RmFtaWx5QnlJRChpZCkge1xuICB7XG4gICAgcmV0dXJuIGFsbEZhbWlsaWVzQnlJRC5nZXQoaWQpO1xuICB9XG59XG5mdW5jdGlvbiBnZXRGYW1pbHlCeVR5cGUodHlwZSkge1xuICB7XG4gICAgcmV0dXJuIGFsbEZhbWlsaWVzQnlUeXBlLmdldCh0eXBlKTtcbiAgfVxufVxuZnVuY3Rpb24gZmluZEFmZmVjdGVkSG9zdEluc3RhbmNlcyhmYW1pbGllcykge1xuICB7XG4gICAgdmFyIGFmZmVjdGVkSW5zdGFuY2VzID0gbmV3IFNldCgpO1xuICAgIG1vdW50ZWRSb290cy5mb3JFYWNoKGZ1bmN0aW9uIChyb290KSB7XG4gICAgICB2YXIgaGVscGVycyA9IGhlbHBlcnNCeVJvb3QuZ2V0KHJvb3QpO1xuXG4gICAgICBpZiAoaGVscGVycyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQ291bGQgbm90IGZpbmQgaGVscGVycyBmb3IgYSByb290LiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0IFJlZnJlc2guJyk7XG4gICAgICB9XG5cbiAgICAgIHZhciBpbnN0YW5jZXNGb3JSb290ID0gaGVscGVycy5maW5kSG9zdEluc3RhbmNlc0ZvclJlZnJlc2gocm9vdCwgZmFtaWxpZXMpO1xuICAgICAgaW5zdGFuY2VzRm9yUm9vdC5mb3JFYWNoKGZ1bmN0aW9uIChpbnN0KSB7XG4gICAgICAgIGFmZmVjdGVkSW5zdGFuY2VzLmFkZChpbnN0KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiBhZmZlY3RlZEluc3RhbmNlcztcbiAgfVxufVxuZnVuY3Rpb24gaW5qZWN0SW50b0dsb2JhbEhvb2soZ2xvYmFsT2JqZWN0KSB7XG4gIHtcbiAgICAvLyBGb3IgUmVhY3QgTmF0aXZlLCB0aGUgZ2xvYmFsIGhvb2sgd2lsbCBiZSBzZXQgdXAgYnkgcmVxdWlyZSgncmVhY3QtZGV2dG9vbHMtY29yZScpLlxuICAgIC8vIFRoYXQgY29kZSB3aWxsIHJ1biBiZWZvcmUgdXMuIFNvIHdlIG5lZWQgdG8gbW9ua2V5cGF0Y2ggZnVuY3Rpb25zIG9uIGV4aXN0aW5nIGhvb2suXG4gICAgLy8gRm9yIFJlYWN0IFdlYiwgdGhlIGdsb2JhbCBob29rIHdpbGwgYmUgc2V0IHVwIGJ5IHRoZSBleHRlbnNpb24uXG4gICAgLy8gVGhpcyB3aWxsIGFsc28gcnVuIGJlZm9yZSB1cy5cbiAgICB2YXIgaG9vayA9IGdsb2JhbE9iamVjdC5fX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX187XG5cbiAgICBpZiAoaG9vayA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBIb3dldmVyLCBpZiB0aGVyZSBpcyBubyBEZXZUb29scyBleHRlbnNpb24sIHdlJ2xsIG5lZWQgdG8gc2V0IHVwIHRoZSBnbG9iYWwgaG9vayBvdXJzZWx2ZXMuXG4gICAgICAvLyBOb3RlIHRoYXQgaW4gdGhpcyBjYXNlIGl0J3MgaW1wb3J0YW50IHRoYXQgcmVuZGVyZXIgY29kZSBydW5zICphZnRlciogdGhpcyBtZXRob2QgY2FsbC5cbiAgICAgIC8vIE90aGVyd2lzZSwgdGhlIHJlbmRlcmVyIHdpbGwgdGhpbmsgdGhhdCB0aGVyZSBpcyBubyBnbG9iYWwgaG9vaywgYW5kIHdvbid0IGRvIHRoZSBpbmplY3Rpb24uXG4gICAgICB2YXIgbmV4dElEID0gMDtcbiAgICAgIGdsb2JhbE9iamVjdC5fX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gPSBob29rID0ge1xuICAgICAgICByZW5kZXJlcnM6IG5ldyBNYXAoKSxcbiAgICAgICAgc3VwcG9ydHNGaWJlcjogdHJ1ZSxcbiAgICAgICAgaW5qZWN0OiBmdW5jdGlvbiAoaW5qZWN0ZWQpIHtcbiAgICAgICAgICByZXR1cm4gbmV4dElEKys7XG4gICAgICAgIH0sXG4gICAgICAgIG9uU2NoZWR1bGVGaWJlclJvb3Q6IGZ1bmN0aW9uIChpZCwgcm9vdCwgY2hpbGRyZW4pIHt9LFxuICAgICAgICBvbkNvbW1pdEZpYmVyUm9vdDogZnVuY3Rpb24gKGlkLCByb290LCBtYXliZVByaW9yaXR5TGV2ZWwsIGRpZEVycm9yKSB7fSxcbiAgICAgICAgb25Db21taXRGaWJlclVubW91bnQ6IGZ1bmN0aW9uICgpIHt9XG4gICAgICB9O1xuICAgIH0gLy8gSGVyZSwgd2UganVzdCB3YW50IHRvIGdldCBhIHJlZmVyZW5jZSB0byBzY2hlZHVsZVJlZnJlc2guXG5cblxuICAgIHZhciBvbGRJbmplY3QgPSBob29rLmluamVjdDtcblxuICAgIGhvb2suaW5qZWN0ID0gZnVuY3Rpb24gKGluamVjdGVkKSB7XG4gICAgICB2YXIgaWQgPSBvbGRJbmplY3QuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcblxuICAgICAgaWYgKHR5cGVvZiBpbmplY3RlZC5zY2hlZHVsZVJlZnJlc2ggPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIGluamVjdGVkLnNldFJlZnJlc2hIYW5kbGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIC8vIFRoaXMgdmVyc2lvbiBzdXBwb3J0cyBSZWFjdCBSZWZyZXNoLlxuICAgICAgICBoZWxwZXJzQnlSZW5kZXJlcklELnNldChpZCwgaW5qZWN0ZWQpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gaWQ7XG4gICAgfTsgLy8gRG8gdGhlIHNhbWUgZm9yIGFueSBhbHJlYWR5IGluamVjdGVkIHJvb3RzLlxuICAgIC8vIFRoaXMgaXMgdXNlZnVsIGlmIFJlYWN0RE9NIGhhcyBhbHJlYWR5IGJlZW4gaW5pdGlhbGl6ZWQuXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xNzYyNlxuXG5cbiAgICBob29rLnJlbmRlcmVycy5mb3JFYWNoKGZ1bmN0aW9uIChpbmplY3RlZCwgaWQpIHtcbiAgICAgIGlmICh0eXBlb2YgaW5qZWN0ZWQuc2NoZWR1bGVSZWZyZXNoID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBpbmplY3RlZC5zZXRSZWZyZXNoSGFuZGxlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAvLyBUaGlzIHZlcnNpb24gc3VwcG9ydHMgUmVhY3QgUmVmcmVzaC5cbiAgICAgICAgaGVscGVyc0J5UmVuZGVyZXJJRC5zZXQoaWQsIGluamVjdGVkKTtcbiAgICAgIH1cbiAgICB9KTsgLy8gV2UgYWxzbyB3YW50IHRvIHRyYWNrIGN1cnJlbnRseSBtb3VudGVkIHJvb3RzLlxuXG4gICAgdmFyIG9sZE9uQ29tbWl0RmliZXJSb290ID0gaG9vay5vbkNvbW1pdEZpYmVyUm9vdDtcblxuICAgIHZhciBvbGRPblNjaGVkdWxlRmliZXJSb290ID0gaG9vay5vblNjaGVkdWxlRmliZXJSb290IHx8IGZ1bmN0aW9uICgpIHt9O1xuXG4gICAgaG9vay5vblNjaGVkdWxlRmliZXJSb290ID0gZnVuY3Rpb24gKGlkLCByb290LCBjaGlsZHJlbikge1xuICAgICAgaWYgKCFpc1BlcmZvcm1pbmdSZWZyZXNoKSB7XG4gICAgICAgIC8vIElmIGl0IHdhcyBpbnRlbnRpb25hbGx5IHNjaGVkdWxlZCwgZG9uJ3QgYXR0ZW1wdCB0byByZXN0b3JlLlxuICAgICAgICAvLyBUaGlzIGluY2x1ZGVzIGludGVudGlvbmFsbHkgc2NoZWR1bGVkIHVubW91bnRzLlxuICAgICAgICBmYWlsZWRSb290cy5kZWxldGUocm9vdCk7XG5cbiAgICAgICAgaWYgKHJvb3RFbGVtZW50cyAhPT0gbnVsbCkge1xuICAgICAgICAgIHJvb3RFbGVtZW50cy5zZXQocm9vdCwgY2hpbGRyZW4pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvbGRPblNjaGVkdWxlRmliZXJSb290LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgfTtcblxuICAgIGhvb2sub25Db21taXRGaWJlclJvb3QgPSBmdW5jdGlvbiAoaWQsIHJvb3QsIG1heWJlUHJpb3JpdHlMZXZlbCwgZGlkRXJyb3IpIHtcbiAgICAgIHZhciBoZWxwZXJzID0gaGVscGVyc0J5UmVuZGVyZXJJRC5nZXQoaWQpO1xuXG4gICAgICBpZiAoaGVscGVycyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaGVscGVyc0J5Um9vdC5zZXQocm9vdCwgaGVscGVycyk7XG4gICAgICB2YXIgY3VycmVudCA9IHJvb3QuY3VycmVudDtcbiAgICAgIHZhciBhbHRlcm5hdGUgPSBjdXJyZW50LmFsdGVybmF0ZTsgLy8gV2UgbmVlZCB0byBkZXRlcm1pbmUgd2hldGhlciB0aGlzIHJvb3QgaGFzIGp1c3QgKHVuKW1vdW50ZWQuXG4gICAgICAvLyBUaGlzIGxvZ2ljIGlzIGNvcHktcGFzdGVkIGZyb20gc2ltaWxhciBsb2dpYyBpbiB0aGUgRGV2VG9vbHMgYmFja2VuZC5cbiAgICAgIC8vIElmIHRoaXMgYnJlYWtzIHdpdGggc29tZSByZWZhY3RvcmluZywgeW91J2xsIHdhbnQgdG8gdXBkYXRlIERldlRvb2xzIHRvby5cblxuICAgICAgaWYgKGFsdGVybmF0ZSAhPT0gbnVsbCkge1xuICAgICAgICB2YXIgd2FzTW91bnRlZCA9IGFsdGVybmF0ZS5tZW1vaXplZFN0YXRlICE9IG51bGwgJiYgYWx0ZXJuYXRlLm1lbW9pemVkU3RhdGUuZWxlbWVudCAhPSBudWxsO1xuICAgICAgICB2YXIgaXNNb3VudGVkID0gY3VycmVudC5tZW1vaXplZFN0YXRlICE9IG51bGwgJiYgY3VycmVudC5tZW1vaXplZFN0YXRlLmVsZW1lbnQgIT0gbnVsbDtcblxuICAgICAgICBpZiAoIXdhc01vdW50ZWQgJiYgaXNNb3VudGVkKSB7XG4gICAgICAgICAgLy8gTW91bnQgYSBuZXcgcm9vdC5cbiAgICAgICAgICBtb3VudGVkUm9vdHMuYWRkKHJvb3QpO1xuICAgICAgICAgIGZhaWxlZFJvb3RzLmRlbGV0ZShyb290KTtcbiAgICAgICAgfSBlbHNlIGlmICh3YXNNb3VudGVkICYmIGlzTW91bnRlZCkgOyBlbHNlIGlmICh3YXNNb3VudGVkICYmICFpc01vdW50ZWQpIHtcbiAgICAgICAgICAvLyBVbm1vdW50IGFuIGV4aXN0aW5nIHJvb3QuXG4gICAgICAgICAgbW91bnRlZFJvb3RzLmRlbGV0ZShyb290KTtcblxuICAgICAgICAgIGlmIChkaWRFcnJvcikge1xuICAgICAgICAgICAgLy8gV2UnbGwgcmVtb3VudCBpdCBvbiBmdXR1cmUgZWRpdHMuXG4gICAgICAgICAgICBmYWlsZWRSb290cy5hZGQocm9vdCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGhlbHBlcnNCeVJvb3QuZGVsZXRlKHJvb3QpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICghd2FzTW91bnRlZCAmJiAhaXNNb3VudGVkKSB7XG4gICAgICAgICAgaWYgKGRpZEVycm9yKSB7XG4gICAgICAgICAgICAvLyBXZSdsbCByZW1vdW50IGl0IG9uIGZ1dHVyZSBlZGl0cy5cbiAgICAgICAgICAgIGZhaWxlZFJvb3RzLmFkZChyb290KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIE1vdW50IGEgbmV3IHJvb3QuXG4gICAgICAgIG1vdW50ZWRSb290cy5hZGQocm9vdCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvbGRPbkNvbW1pdEZpYmVyUm9vdC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIH07XG4gIH1cbn1cbmZ1bmN0aW9uIGhhc1VucmVjb3ZlcmFibGVFcnJvcnMoKSB7XG4gIC8vIFRPRE86IGRlbGV0ZSB0aGlzIGFmdGVyIHJlbW92aW5nIGRlcGVuZGVuY3kgaW4gUk4uXG4gIHJldHVybiBmYWxzZTtcbn0gLy8gRXhwb3NlZCBmb3IgdGVzdGluZy5cblxuZnVuY3Rpb24gX2dldE1vdW50ZWRSb290Q291bnQoKSB7XG4gIHtcbiAgICByZXR1cm4gbW91bnRlZFJvb3RzLnNpemU7XG4gIH1cbn0gLy8gVGhpcyBpcyBhIHdyYXBwZXIgb3ZlciBtb3JlIHByaW1pdGl2ZSBmdW5jdGlvbnMgZm9yIHNldHRpbmcgc2lnbmF0dXJlLlxuLy8gU2lnbmF0dXJlcyBsZXQgdXMgZGVjaWRlIHdoZXRoZXIgdGhlIEhvb2sgb3JkZXIgaGFzIGNoYW5nZWQgb24gcmVmcmVzaC5cbi8vXG4vLyBUaGlzIGZ1bmN0aW9uIGlzIGludGVuZGVkIHRvIGJlIHVzZWQgYXMgYSB0cmFuc2Zvcm0gdGFyZ2V0LCBlLmcuOlxuLy8gdmFyIF9zID0gY3JlYXRlU2lnbmF0dXJlRnVuY3Rpb25Gb3JUcmFuc2Zvcm0oKVxuLy9cbi8vIGZ1bmN0aW9uIEhlbGxvKCkge1xuLy8gICBjb25zdCBbZm9vLCBzZXRGb29dID0gdXNlU3RhdGUoMCk7XG4vLyAgIGNvbnN0IHZhbHVlID0gdXNlQ3VzdG9tSG9vaygpO1xuLy8gICBfcygpOyAvKiBTZWNvbmQgY2FsbCB0cmlnZ2VycyBjb2xsZWN0aW5nIHRoZSBjdXN0b20gSG9vayBsaXN0LlxuLy8gICAgICAgICAgKiBUaGlzIGRvZXNuJ3QgaGFwcGVuIGR1cmluZyB0aGUgbW9kdWxlIGV2YWx1YXRpb24gYmVjYXVzZSB3ZVxuLy8gICAgICAgICAgKiBkb24ndCB3YW50IHRvIGNoYW5nZSB0aGUgbW9kdWxlIG9yZGVyIHdpdGggaW5saW5lIHJlcXVpcmVzLlxuLy8gICAgICAgICAgKiBOZXh0IGNhbGxzIGFyZSBub29wcy4gKi9cbi8vICAgcmV0dXJuIDxoMT5IaTwvaDE+O1xuLy8gfVxuLy9cbi8vIC8qIEZpcnN0IGNhbGwgc3BlY2lmaWVzIHRoZSBzaWduYXR1cmU6ICovXG4vLyBfcyhcbi8vICAgSGVsbG8sXG4vLyAgICd1c2VTdGF0ZXtbZm9vLCBzZXRGb29dfSgwKScsXG4vLyAgICgpID0+IFt1c2VDdXN0b21Ib29rXSwgLyogTGF6eSB0byBhdm9pZCB0cmlnZ2VyaW5nIGlubGluZSByZXF1aXJlcyAqL1xuLy8gKTtcblxuZnVuY3Rpb24gY3JlYXRlU2lnbmF0dXJlRnVuY3Rpb25Gb3JUcmFuc2Zvcm0oKSB7XG4gIHtcbiAgICAvLyBXZSdsbCBmaWxsIGluIHRoZSBzaWduYXR1cmUgaW4gdHdvIHN0ZXBzLlxuICAgIC8vIEZpcnN0LCB3ZSdsbCBrbm93IHRoZSBzaWduYXR1cmUgaXRzZWxmLiBUaGlzIGhhcHBlbnMgb3V0c2lkZSB0aGUgY29tcG9uZW50LlxuICAgIC8vIFRoZW4sIHdlJ2xsIGtub3cgdGhlIHJlZmVyZW5jZXMgdG8gY3VzdG9tIEhvb2tzLiBUaGlzIGhhcHBlbnMgaW5zaWRlIHRoZSBjb21wb25lbnQuXG4gICAgLy8gQWZ0ZXIgdGhhdCwgdGhlIHJldHVybmVkIGZ1bmN0aW9uIHdpbGwgYmUgYSBmYXN0IHBhdGggbm8tb3AuXG4gICAgdmFyIHN0YXR1cyA9ICduZWVkc1NpZ25hdHVyZSc7XG4gICAgdmFyIHNhdmVkVHlwZTtcbiAgICB2YXIgaGFzQ3VzdG9tSG9va3M7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0eXBlLCBrZXksIGZvcmNlUmVzZXQsIGdldEN1c3RvbUhvb2tzKSB7XG4gICAgICBzd2l0Y2ggKHN0YXR1cykge1xuICAgICAgICBjYXNlICduZWVkc1NpZ25hdHVyZSc6XG4gICAgICAgICAgaWYgKHR5cGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgLy8gSWYgd2UgcmVjZWl2ZWQgYW4gYXJndW1lbnQsIHRoaXMgaXMgdGhlIGluaXRpYWwgcmVnaXN0cmF0aW9uIGNhbGwuXG4gICAgICAgICAgICBzYXZlZFR5cGUgPSB0eXBlO1xuICAgICAgICAgICAgaGFzQ3VzdG9tSG9va3MgPSB0eXBlb2YgZ2V0Q3VzdG9tSG9va3MgPT09ICdmdW5jdGlvbic7XG4gICAgICAgICAgICBzZXRTaWduYXR1cmUodHlwZSwga2V5LCBmb3JjZVJlc2V0LCBnZXRDdXN0b21Ib29rcyk7IC8vIFRoZSBuZXh0IGNhbGwgd2UgZXhwZWN0IGlzIGZyb20gaW5zaWRlIGEgZnVuY3Rpb24sIHRvIGZpbGwgaW4gdGhlIGN1c3RvbSBIb29rcy5cblxuICAgICAgICAgICAgc3RhdHVzID0gJ25lZWRzQ3VzdG9tSG9va3MnO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ25lZWRzQ3VzdG9tSG9va3MnOlxuICAgICAgICAgIGlmIChoYXNDdXN0b21Ib29rcykge1xuICAgICAgICAgICAgY29sbGVjdEN1c3RvbUhvb2tzRm9yU2lnbmF0dXJlKHNhdmVkVHlwZSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgc3RhdHVzID0gJ3Jlc29sdmVkJztcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHR5cGU7XG4gICAgfTtcbiAgfVxufVxuZnVuY3Rpb24gaXNMaWtlbHlDb21wb25lbnRUeXBlKHR5cGUpIHtcbiAge1xuICAgIHN3aXRjaCAodHlwZW9mIHR5cGUpIHtcbiAgICAgIGNhc2UgJ2Z1bmN0aW9uJzpcbiAgICAgICAge1xuICAgICAgICAgIC8vIEZpcnN0LCBkZWFsIHdpdGggY2xhc3Nlcy5cbiAgICAgICAgICBpZiAodHlwZS5wcm90b3R5cGUgIT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKHR5cGUucHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQpIHtcbiAgICAgICAgICAgICAgLy8gUmVhY3QgY2xhc3MuXG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgb3duTmFtZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0eXBlLnByb3RvdHlwZSk7XG5cbiAgICAgICAgICAgIGlmIChvd25OYW1lcy5sZW5ndGggPiAxIHx8IG93bk5hbWVzWzBdICE9PSAnY29uc3RydWN0b3InKSB7XG4gICAgICAgICAgICAgIC8vIFRoaXMgbG9va3MgbGlrZSBhIGNsYXNzLlxuICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm90b1xuXG5cbiAgICAgICAgICAgIGlmICh0eXBlLnByb3RvdHlwZS5fX3Byb3RvX18gIT09IE9iamVjdC5wcm90b3R5cGUpIHtcbiAgICAgICAgICAgICAgLy8gSXQgaGFzIGEgc3VwZXJjbGFzcy5cbiAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfSAvLyBQYXNzIHRocm91Z2guXG4gICAgICAgICAgICAvLyBUaGlzIGxvb2tzIGxpa2UgYSByZWd1bGFyIGZ1bmN0aW9uIHdpdGggZW1wdHkgcHJvdG90eXBlLlxuXG4gICAgICAgICAgfSAvLyBGb3IgcGxhaW4gZnVuY3Rpb25zIGFuZCBhcnJvd3MsIHVzZSBuYW1lIGFzIGEgaGV1cmlzdGljLlxuXG5cbiAgICAgICAgICB2YXIgbmFtZSA9IHR5cGUubmFtZSB8fCB0eXBlLmRpc3BsYXlOYW1lO1xuICAgICAgICAgIHJldHVybiB0eXBlb2YgbmFtZSA9PT0gJ3N0cmluZycgJiYgL15bQS1aXS8udGVzdChuYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICBjYXNlICdvYmplY3QnOlxuICAgICAgICB7XG4gICAgICAgICAgaWYgKHR5cGUgIT0gbnVsbCkge1xuICAgICAgICAgICAgc3dpdGNoICh0eXBlLiQkdHlwZW9mKSB7XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTpcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9NRU1PX1RZUEU6XG4gICAgICAgICAgICAgICAgLy8gRGVmaW5pdGVseSBSZWFjdCBjb21wb25lbnRzLlxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuXG4gICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydHMuX2dldE1vdW50ZWRSb290Q291bnQgPSBfZ2V0TW91bnRlZFJvb3RDb3VudDtcbmV4cG9ydHMuY29sbGVjdEN1c3RvbUhvb2tzRm9yU2lnbmF0dXJlID0gY29sbGVjdEN1c3RvbUhvb2tzRm9yU2lnbmF0dXJlO1xuZXhwb3J0cy5jcmVhdGVTaWduYXR1cmVGdW5jdGlvbkZvclRyYW5zZm9ybSA9IGNyZWF0ZVNpZ25hdHVyZUZ1bmN0aW9uRm9yVHJhbnNmb3JtO1xuZXhwb3J0cy5maW5kQWZmZWN0ZWRIb3N0SW5zdGFuY2VzID0gZmluZEFmZmVjdGVkSG9zdEluc3RhbmNlcztcbmV4cG9ydHMuZ2V0RmFtaWx5QnlJRCA9IGdldEZhbWlseUJ5SUQ7XG5leHBvcnRzLmdldEZhbWlseUJ5VHlwZSA9IGdldEZhbWlseUJ5VHlwZTtcbmV4cG9ydHMuaGFzVW5yZWNvdmVyYWJsZUVycm9ycyA9IGhhc1VucmVjb3ZlcmFibGVFcnJvcnM7XG5leHBvcnRzLmluamVjdEludG9HbG9iYWxIb29rID0gaW5qZWN0SW50b0dsb2JhbEhvb2s7XG5leHBvcnRzLmlzTGlrZWx5Q29tcG9uZW50VHlwZSA9IGlzTGlrZWx5Q29tcG9uZW50VHlwZTtcbmV4cG9ydHMucGVyZm9ybVJlYWN0UmVmcmVzaCA9IHBlcmZvcm1SZWFjdFJlZnJlc2g7XG5leHBvcnRzLnJlZ2lzdGVyID0gcmVnaXN0ZXI7XG5leHBvcnRzLnNldFNpZ25hdHVyZSA9IHNldFNpZ25hdHVyZTtcbiAgfSkoKTtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-refresh/cjs/react-refresh-runtime.development.js\n"); + +/***/ }), + +/***/ "./node_modules/react-refresh/runtime.js": +/*!***********************************************!*\ + !*** ./node_modules/react-refresh/runtime.js ***! + \***********************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-refresh-runtime.development.js */ \"./node_modules/react-refresh/cjs/react-refresh-runtime.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtcmVmcmVzaC9ydW50aW1lLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLElBQUksS0FBcUMsRUFBRSxFQUUxQyxDQUFDO0FBQ0YsRUFBRSwrSkFBc0U7QUFDeEUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXJlZnJlc2gvcnVudGltZS5qcz81ZmVkIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1yZWZyZXNoLXJ1bnRpbWUucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtcmVmcmVzaC1ydW50aW1lLmRldmVsb3BtZW50LmpzJyk7XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-refresh/runtime.js\n"); + +/***/ }) + +}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); } +/******/ var __webpack_exports__ = (__webpack_exec__("./node_modules/@next/react-refresh-utils/runtime.js")); +/******/ _N_E = __webpack_exports__; +/******/ } +]); \ No newline at end of file diff --git a/.next/static/chunks/fallback/webpack.js b/.next/static/chunks/fallback/webpack.js new file mode 100644 index 0000000..5dc4bb6 --- /dev/null +++ b/.next/static/chunks/fallback/webpack.js @@ -0,0 +1,1264 @@ +/* + * 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/). + */ +/******/ (function() { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({}); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ if (cachedModule.error !== undefined) throw cachedModule.error; +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ id: moduleId, +/******/ loaded: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ var threw = true; +/******/ try { +/******/ var execOptions = { id: moduleId, module: module, factory: __webpack_modules__[moduleId], require: __webpack_require__ }; +/******/ __webpack_require__.i.forEach(function(handler) { handler(execOptions); }); +/******/ module = execOptions.module; +/******/ execOptions.factory.call(module.exports, module, module.exports, execOptions.require); +/******/ threw = false; +/******/ } finally { +/******/ if(threw) delete __webpack_module_cache__[moduleId]; +/******/ } +/******/ +/******/ // Flag the module as loaded +/******/ module.loaded = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = __webpack_module_cache__; +/******/ +/******/ // expose the module execution interceptor +/******/ __webpack_require__.i = []; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ !function() { +/******/ var deferred = []; +/******/ __webpack_require__.O = function(result, chunkIds, fn, priority) { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/create fake namespace object */ +/******/ !function() { +/******/ var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; }; +/******/ var leafPrototypes; +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 16: return value when it's Promise-like +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = this(value); +/******/ if(mode & 8) return value; +/******/ if(typeof value === 'object' && value) { +/******/ if((mode & 4) && value.__esModule) return value; +/******/ if((mode & 16) && typeof value.then === 'function') return value; +/******/ } +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ var def = {}; +/******/ leafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)]; +/******/ for(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) { +/******/ Object.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; }); +/******/ } +/******/ def['default'] = function() { return value; }; +/******/ __webpack_require__.d(ns, def); +/******/ return ns; +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ !function() { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = function(exports, definition) { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/ensure chunk */ +/******/ !function() { +/******/ __webpack_require__.f = {}; +/******/ // This file contains only the entry chunk. +/******/ // The chunk loading function for additional chunks +/******/ __webpack_require__.e = function(chunkId) { +/******/ return Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) { +/******/ __webpack_require__.f[key](chunkId, promises); +/******/ return promises; +/******/ }, [])); +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/get javascript chunk filename */ +/******/ !function() { +/******/ // This function allow to reference async chunks +/******/ __webpack_require__.u = function(chunkId) { +/******/ // return url for filenames based on template +/******/ return "static/chunks/fallback/" + chunkId + ".js"; +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/get javascript update chunk filename */ +/******/ !function() { +/******/ // This function allow to reference all chunks +/******/ __webpack_require__.hu = function(chunkId) { +/******/ // return url for filenames based on template +/******/ return "static/webpack/" + chunkId + "." + __webpack_require__.h() + ".hot-update.js"; +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/get update manifest filename */ +/******/ !function() { +/******/ __webpack_require__.hmrF = function() { return "static/webpack/" + __webpack_require__.h() + ".webpack.hot-update.json"; }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "32338a6647e58729"; } +/******/ }(); +/******/ +/******/ /* webpack/runtime/global */ +/******/ !function() { +/******/ __webpack_require__.g = (function() { +/******/ if (typeof globalThis === 'object') return globalThis; +/******/ try { +/******/ return this || new Function('return this')(); +/******/ } catch (e) { +/******/ if (typeof window === 'object') return window; +/******/ } +/******/ })(); +/******/ }(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ !function() { +/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } +/******/ }(); +/******/ +/******/ /* webpack/runtime/load script */ +/******/ !function() { +/******/ var inProgress = {}; +/******/ var dataWebpackPrefix = "_N_E:"; +/******/ // loadScript function to load a script via script tag +/******/ __webpack_require__.l = function(url, done, key, chunkId) { +/******/ if(inProgress[url]) { inProgress[url].push(done); return; } +/******/ var script, needAttach; +/******/ if(key !== undefined) { +/******/ var scripts = document.getElementsByTagName("script"); +/******/ for(var i = 0; i < scripts.length; i++) { +/******/ var s = scripts[i]; +/******/ if(s.getAttribute("src") == url || s.getAttribute("data-webpack") == dataWebpackPrefix + key) { script = s; break; } +/******/ } +/******/ } +/******/ if(!script) { +/******/ needAttach = true; +/******/ script = document.createElement('script'); +/******/ +/******/ script.charset = 'utf-8'; +/******/ script.timeout = 120; +/******/ if (__webpack_require__.nc) { +/******/ script.setAttribute("nonce", __webpack_require__.nc); +/******/ } +/******/ script.setAttribute("data-webpack", dataWebpackPrefix + key); +/******/ script.src = url; +/******/ } +/******/ inProgress[url] = [done]; +/******/ var onScriptComplete = function(prev, event) { +/******/ // avoid mem leaks in IE. +/******/ script.onerror = script.onload = null; +/******/ clearTimeout(timeout); +/******/ var doneFns = inProgress[url]; +/******/ delete inProgress[url]; +/******/ script.parentNode && script.parentNode.removeChild(script); +/******/ doneFns && doneFns.forEach(function(fn) { return fn(event); }); +/******/ if(prev) return prev(event); +/******/ } +/******/ ; +/******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000); +/******/ script.onerror = onScriptComplete.bind(null, script.onerror); +/******/ script.onload = onScriptComplete.bind(null, script.onload); +/******/ needAttach && document.head.appendChild(script); +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ !function() { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/node module decorator */ +/******/ !function() { +/******/ __webpack_require__.nmd = function(module) { +/******/ module.paths = []; +/******/ if (!module.children) module.children = []; +/******/ return module; +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/runtimeId */ +/******/ !function() { +/******/ __webpack_require__.j = "webpack"; +/******/ }(); +/******/ +/******/ /* webpack/runtime/hot module replacement */ +/******/ !function() { +/******/ var currentModuleData = {}; +/******/ var installedModules = __webpack_require__.c; +/******/ +/******/ // module and require creation +/******/ var currentChildModule; +/******/ var currentParents = []; +/******/ +/******/ // status +/******/ var registeredStatusHandlers = []; +/******/ var currentStatus = "idle"; +/******/ +/******/ // while downloading +/******/ var blockingPromises; +/******/ +/******/ // The update info +/******/ var currentUpdateApplyHandlers; +/******/ var queuedInvalidatedModules; +/******/ +/******/ // eslint-disable-next-line no-unused-vars +/******/ __webpack_require__.hmrD = currentModuleData; +/******/ +/******/ __webpack_require__.i.push(function (options) { +/******/ var module = options.module; +/******/ var require = createRequire(options.require, options.id); +/******/ module.hot = createModuleHotObject(options.id, module); +/******/ module.parents = currentParents; +/******/ module.children = []; +/******/ currentParents = []; +/******/ options.require = require; +/******/ }); +/******/ +/******/ __webpack_require__.hmrC = {}; +/******/ __webpack_require__.hmrI = {}; +/******/ +/******/ function createRequire(require, moduleId) { +/******/ var me = installedModules[moduleId]; +/******/ if (!me) return require; +/******/ var fn = function (request) { +/******/ if (me.hot.active) { +/******/ if (installedModules[request]) { +/******/ var parents = installedModules[request].parents; +/******/ if (parents.indexOf(moduleId) === -1) { +/******/ parents.push(moduleId); +/******/ } +/******/ } else { +/******/ currentParents = [moduleId]; +/******/ currentChildModule = request; +/******/ } +/******/ if (me.children.indexOf(request) === -1) { +/******/ me.children.push(request); +/******/ } +/******/ } else { +/******/ console.warn( +/******/ "[HMR] unexpected require(" + +/******/ request + +/******/ ") from disposed module " + +/******/ moduleId +/******/ ); +/******/ currentParents = []; +/******/ } +/******/ return require(request); +/******/ }; +/******/ var createPropertyDescriptor = function (name) { +/******/ return { +/******/ configurable: true, +/******/ enumerable: true, +/******/ get: function () { +/******/ return require[name]; +/******/ }, +/******/ set: function (value) { +/******/ require[name] = value; +/******/ } +/******/ }; +/******/ }; +/******/ for (var name in require) { +/******/ if (Object.prototype.hasOwnProperty.call(require, name) && name !== "e") { +/******/ Object.defineProperty(fn, name, createPropertyDescriptor(name)); +/******/ } +/******/ } +/******/ fn.e = function (chunkId) { +/******/ return trackBlockingPromise(require.e(chunkId)); +/******/ }; +/******/ return fn; +/******/ } +/******/ +/******/ function createModuleHotObject(moduleId, me) { +/******/ var _main = currentChildModule !== moduleId; +/******/ var hot = { +/******/ // private stuff +/******/ _acceptedDependencies: {}, +/******/ _acceptedErrorHandlers: {}, +/******/ _declinedDependencies: {}, +/******/ _selfAccepted: false, +/******/ _selfDeclined: false, +/******/ _selfInvalidated: false, +/******/ _disposeHandlers: [], +/******/ _main: _main, +/******/ _requireSelf: function () { +/******/ currentParents = me.parents.slice(); +/******/ currentChildModule = _main ? undefined : moduleId; +/******/ __webpack_require__(moduleId); +/******/ }, +/******/ +/******/ // Module API +/******/ active: true, +/******/ accept: function (dep, callback, errorHandler) { +/******/ if (dep === undefined) hot._selfAccepted = true; +/******/ else if (typeof dep === "function") hot._selfAccepted = dep; +/******/ else if (typeof dep === "object" && dep !== null) { +/******/ for (var i = 0; i < dep.length; i++) { +/******/ hot._acceptedDependencies[dep[i]] = callback || function () {}; +/******/ hot._acceptedErrorHandlers[dep[i]] = errorHandler; +/******/ } +/******/ } else { +/******/ hot._acceptedDependencies[dep] = callback || function () {}; +/******/ hot._acceptedErrorHandlers[dep] = errorHandler; +/******/ } +/******/ }, +/******/ decline: function (dep) { +/******/ if (dep === undefined) hot._selfDeclined = true; +/******/ else if (typeof dep === "object" && dep !== null) +/******/ for (var i = 0; i < dep.length; i++) +/******/ hot._declinedDependencies[dep[i]] = true; +/******/ else hot._declinedDependencies[dep] = true; +/******/ }, +/******/ dispose: function (callback) { +/******/ hot._disposeHandlers.push(callback); +/******/ }, +/******/ addDisposeHandler: function (callback) { +/******/ hot._disposeHandlers.push(callback); +/******/ }, +/******/ removeDisposeHandler: function (callback) { +/******/ var idx = hot._disposeHandlers.indexOf(callback); +/******/ if (idx >= 0) hot._disposeHandlers.splice(idx, 1); +/******/ }, +/******/ invalidate: function () { +/******/ this._selfInvalidated = true; +/******/ switch (currentStatus) { +/******/ case "idle": +/******/ currentUpdateApplyHandlers = []; +/******/ Object.keys(__webpack_require__.hmrI).forEach(function (key) { +/******/ __webpack_require__.hmrI[key]( +/******/ moduleId, +/******/ currentUpdateApplyHandlers +/******/ ); +/******/ }); +/******/ setStatus("ready"); +/******/ break; +/******/ case "ready": +/******/ Object.keys(__webpack_require__.hmrI).forEach(function (key) { +/******/ __webpack_require__.hmrI[key]( +/******/ moduleId, +/******/ currentUpdateApplyHandlers +/******/ ); +/******/ }); +/******/ break; +/******/ case "prepare": +/******/ case "check": +/******/ case "dispose": +/******/ case "apply": +/******/ (queuedInvalidatedModules = queuedInvalidatedModules || []).push( +/******/ moduleId +/******/ ); +/******/ break; +/******/ default: +/******/ // ignore requests in error states +/******/ break; +/******/ } +/******/ }, +/******/ +/******/ // Management API +/******/ check: hotCheck, +/******/ apply: hotApply, +/******/ status: function (l) { +/******/ if (!l) return currentStatus; +/******/ registeredStatusHandlers.push(l); +/******/ }, +/******/ addStatusHandler: function (l) { +/******/ registeredStatusHandlers.push(l); +/******/ }, +/******/ removeStatusHandler: function (l) { +/******/ var idx = registeredStatusHandlers.indexOf(l); +/******/ if (idx >= 0) registeredStatusHandlers.splice(idx, 1); +/******/ }, +/******/ +/******/ //inherit from previous dispose call +/******/ data: currentModuleData[moduleId] +/******/ }; +/******/ currentChildModule = undefined; +/******/ return hot; +/******/ } +/******/ +/******/ function setStatus(newStatus) { +/******/ currentStatus = newStatus; +/******/ var results = []; +/******/ +/******/ for (var i = 0; i < registeredStatusHandlers.length; i++) +/******/ results[i] = registeredStatusHandlers[i].call(null, newStatus); +/******/ +/******/ return Promise.all(results); +/******/ } +/******/ +/******/ function trackBlockingPromise(promise) { +/******/ switch (currentStatus) { +/******/ case "ready": +/******/ setStatus("prepare"); +/******/ blockingPromises.push(promise); +/******/ waitForBlockingPromises(function () { +/******/ return setStatus("ready"); +/******/ }); +/******/ return promise; +/******/ case "prepare": +/******/ blockingPromises.push(promise); +/******/ return promise; +/******/ default: +/******/ return promise; +/******/ } +/******/ } +/******/ +/******/ function waitForBlockingPromises(fn) { +/******/ if (blockingPromises.length === 0) return fn(); +/******/ var blocker = blockingPromises; +/******/ blockingPromises = []; +/******/ return Promise.all(blocker).then(function () { +/******/ return waitForBlockingPromises(fn); +/******/ }); +/******/ } +/******/ +/******/ function hotCheck(applyOnUpdate) { +/******/ if (currentStatus !== "idle") { +/******/ throw new Error("check() is only allowed in idle status"); +/******/ } +/******/ return setStatus("check") +/******/ .then(__webpack_require__.hmrM) +/******/ .then(function (update) { +/******/ if (!update) { +/******/ return setStatus(applyInvalidatedModules() ? "ready" : "idle").then( +/******/ function () { +/******/ return null; +/******/ } +/******/ ); +/******/ } +/******/ +/******/ return setStatus("prepare").then(function () { +/******/ var updatedModules = []; +/******/ blockingPromises = []; +/******/ currentUpdateApplyHandlers = []; +/******/ +/******/ return Promise.all( +/******/ Object.keys(__webpack_require__.hmrC).reduce(function ( +/******/ promises, +/******/ key +/******/ ) { +/******/ __webpack_require__.hmrC[key]( +/******/ update.c, +/******/ update.r, +/******/ update.m, +/******/ promises, +/******/ currentUpdateApplyHandlers, +/******/ updatedModules +/******/ ); +/******/ return promises; +/******/ }, +/******/ []) +/******/ ).then(function () { +/******/ return waitForBlockingPromises(function () { +/******/ if (applyOnUpdate) { +/******/ return internalApply(applyOnUpdate); +/******/ } else { +/******/ return setStatus("ready").then(function () { +/******/ return updatedModules; +/******/ }); +/******/ } +/******/ }); +/******/ }); +/******/ }); +/******/ }); +/******/ } +/******/ +/******/ function hotApply(options) { +/******/ if (currentStatus !== "ready") { +/******/ return Promise.resolve().then(function () { +/******/ throw new Error("apply() is only allowed in ready status"); +/******/ }); +/******/ } +/******/ return internalApply(options); +/******/ } +/******/ +/******/ function internalApply(options) { +/******/ options = options || {}; +/******/ +/******/ applyInvalidatedModules(); +/******/ +/******/ var results = currentUpdateApplyHandlers.map(function (handler) { +/******/ return handler(options); +/******/ }); +/******/ currentUpdateApplyHandlers = undefined; +/******/ +/******/ var errors = results +/******/ .map(function (r) { +/******/ return r.error; +/******/ }) +/******/ .filter(Boolean); +/******/ +/******/ if (errors.length > 0) { +/******/ return setStatus("abort").then(function () { +/******/ throw errors[0]; +/******/ }); +/******/ } +/******/ +/******/ // Now in "dispose" phase +/******/ var disposePromise = setStatus("dispose"); +/******/ +/******/ results.forEach(function (result) { +/******/ if (result.dispose) result.dispose(); +/******/ }); +/******/ +/******/ // Now in "apply" phase +/******/ var applyPromise = setStatus("apply"); +/******/ +/******/ var error; +/******/ var reportError = function (err) { +/******/ if (!error) error = err; +/******/ }; +/******/ +/******/ var outdatedModules = []; +/******/ results.forEach(function (result) { +/******/ if (result.apply) { +/******/ var modules = result.apply(reportError); +/******/ if (modules) { +/******/ for (var i = 0; i < modules.length; i++) { +/******/ outdatedModules.push(modules[i]); +/******/ } +/******/ } +/******/ } +/******/ }); +/******/ +/******/ return Promise.all([disposePromise, applyPromise]).then(function () { +/******/ // handle errors in accept handlers and self accepted module load +/******/ if (error) { +/******/ return setStatus("fail").then(function () { +/******/ throw error; +/******/ }); +/******/ } +/******/ +/******/ if (queuedInvalidatedModules) { +/******/ return internalApply(options).then(function (list) { +/******/ outdatedModules.forEach(function (moduleId) { +/******/ if (list.indexOf(moduleId) < 0) list.push(moduleId); +/******/ }); +/******/ return list; +/******/ }); +/******/ } +/******/ +/******/ return setStatus("idle").then(function () { +/******/ return outdatedModules; +/******/ }); +/******/ }); +/******/ } +/******/ +/******/ function applyInvalidatedModules() { +/******/ if (queuedInvalidatedModules) { +/******/ if (!currentUpdateApplyHandlers) currentUpdateApplyHandlers = []; +/******/ Object.keys(__webpack_require__.hmrI).forEach(function (key) { +/******/ queuedInvalidatedModules.forEach(function (moduleId) { +/******/ __webpack_require__.hmrI[key]( +/******/ moduleId, +/******/ currentUpdateApplyHandlers +/******/ ); +/******/ }); +/******/ }); +/******/ queuedInvalidatedModules = undefined; +/******/ return true; +/******/ } +/******/ } +/******/ }(); +/******/ +/******/ /* webpack/runtime/publicPath */ +/******/ !function() { +/******/ __webpack_require__.p = "/_next/"; +/******/ }(); +/******/ +/******/ /* webpack/runtime/react refresh */ +/******/ !function() { +/******/ if (__webpack_require__.i) { +/******/ __webpack_require__.i.push(function(options) { +/******/ var originalFactory = options.factory; +/******/ options.factory = function(moduleObject, moduleExports, webpackRequire) { +/******/ var hasRefresh = typeof self !== "undefined" && !!self.$RefreshInterceptModuleExecution$; +/******/ var cleanup = hasRefresh ? self.$RefreshInterceptModuleExecution$(moduleObject.id) : function() {}; +/******/ try { +/******/ originalFactory.call(this, moduleObject, moduleExports, webpackRequire); +/******/ } finally { +/******/ cleanup(); +/******/ } +/******/ } +/******/ }) +/******/ } +/******/ }(); +/******/ +/******/ /* webpack/runtime/compat */ +/******/ +/******/ +/******/ // noop fns to prevent runtime errors during initialization +/******/ if (typeof self !== "undefined") { +/******/ self.$RefreshReg$ = function () {}; +/******/ self.$RefreshSig$ = function () { +/******/ return function (type) { +/******/ return type; +/******/ }; +/******/ }; +/******/ } +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ !function() { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = __webpack_require__.hmrS_jsonp = __webpack_require__.hmrS_jsonp || { +/******/ "webpack": 0 +/******/ }; +/******/ +/******/ __webpack_require__.f.j = function(chunkId, promises) { +/******/ // JSONP chunk loading for javascript +/******/ var installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined; +/******/ if(installedChunkData !== 0) { // 0 means "already installed". +/******/ +/******/ // a Promise means "currently loading". +/******/ if(installedChunkData) { +/******/ promises.push(installedChunkData[2]); +/******/ } else { +/******/ if("webpack" != chunkId) { +/******/ // setup Promise in chunk cache +/******/ var promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; }); +/******/ promises.push(installedChunkData[2] = promise); +/******/ +/******/ // start chunk loading +/******/ var url = __webpack_require__.p + __webpack_require__.u(chunkId); +/******/ // create error before stack unwound to get useful stacktrace later +/******/ var error = new Error(); +/******/ var loadingEnded = function(event) { +/******/ if(__webpack_require__.o(installedChunks, chunkId)) { +/******/ installedChunkData = installedChunks[chunkId]; +/******/ if(installedChunkData !== 0) installedChunks[chunkId] = undefined; +/******/ if(installedChunkData) { +/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); +/******/ var realSrc = event && event.target && event.target.src; +/******/ error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')'; +/******/ error.name = 'ChunkLoadError'; +/******/ error.type = errorType; +/******/ error.request = realSrc; +/******/ installedChunkData[1](error); +/******/ } +/******/ } +/******/ }; +/******/ __webpack_require__.l(url, loadingEnded, "chunk-" + chunkId, chunkId); +/******/ } else installedChunks[chunkId] = 0; +/******/ } +/******/ } +/******/ }; +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ var currentUpdatedModulesList; +/******/ var waitingUpdateResolves = {}; +/******/ function loadUpdateChunk(chunkId) { +/******/ return new Promise(function(resolve, reject) { +/******/ waitingUpdateResolves[chunkId] = resolve; +/******/ // start update chunk loading +/******/ var url = __webpack_require__.p + __webpack_require__.hu(chunkId); +/******/ // create error before stack unwound to get useful stacktrace later +/******/ var error = new Error(); +/******/ var loadingEnded = function(event) { +/******/ if(waitingUpdateResolves[chunkId]) { +/******/ waitingUpdateResolves[chunkId] = undefined +/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); +/******/ var realSrc = event && event.target && event.target.src; +/******/ error.message = 'Loading hot update chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')'; +/******/ error.name = 'ChunkLoadError'; +/******/ error.type = errorType; +/******/ error.request = realSrc; +/******/ reject(error); +/******/ } +/******/ }; +/******/ __webpack_require__.l(url, loadingEnded); +/******/ }); +/******/ } +/******/ +/******/ self["webpackHotUpdate_N_E"] = function(chunkId, moreModules, runtime) { +/******/ for(var moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ currentUpdate[moduleId] = moreModules[moduleId]; +/******/ if(currentUpdatedModulesList) currentUpdatedModulesList.push(moduleId); +/******/ } +/******/ } +/******/ if(runtime) currentUpdateRuntime.push(runtime); +/******/ if(waitingUpdateResolves[chunkId]) { +/******/ waitingUpdateResolves[chunkId](); +/******/ waitingUpdateResolves[chunkId] = undefined; +/******/ } +/******/ }; +/******/ +/******/ var currentUpdateChunks; +/******/ var currentUpdate; +/******/ var currentUpdateRemovedChunks; +/******/ var currentUpdateRuntime; +/******/ function applyHandler(options) { +/******/ if (__webpack_require__.f) delete __webpack_require__.f.jsonpHmr; +/******/ currentUpdateChunks = undefined; +/******/ function getAffectedModuleEffects(updateModuleId) { +/******/ var outdatedModules = [updateModuleId]; +/******/ var outdatedDependencies = {}; +/******/ +/******/ var queue = outdatedModules.map(function (id) { +/******/ return { +/******/ chain: [id], +/******/ id: id +/******/ }; +/******/ }); +/******/ while (queue.length > 0) { +/******/ var queueItem = queue.pop(); +/******/ var moduleId = queueItem.id; +/******/ var chain = queueItem.chain; +/******/ var module = __webpack_require__.c[moduleId]; +/******/ if ( +/******/ !module || +/******/ (module.hot._selfAccepted && !module.hot._selfInvalidated) +/******/ ) +/******/ continue; +/******/ if (module.hot._selfDeclined) { +/******/ return { +/******/ type: "self-declined", +/******/ chain: chain, +/******/ moduleId: moduleId +/******/ }; +/******/ } +/******/ if (module.hot._main) { +/******/ return { +/******/ type: "unaccepted", +/******/ chain: chain, +/******/ moduleId: moduleId +/******/ }; +/******/ } +/******/ for (var i = 0; i < module.parents.length; i++) { +/******/ var parentId = module.parents[i]; +/******/ var parent = __webpack_require__.c[parentId]; +/******/ if (!parent) continue; +/******/ if (parent.hot._declinedDependencies[moduleId]) { +/******/ return { +/******/ type: "declined", +/******/ chain: chain.concat([parentId]), +/******/ moduleId: moduleId, +/******/ parentId: parentId +/******/ }; +/******/ } +/******/ if (outdatedModules.indexOf(parentId) !== -1) continue; +/******/ if (parent.hot._acceptedDependencies[moduleId]) { +/******/ if (!outdatedDependencies[parentId]) +/******/ outdatedDependencies[parentId] = []; +/******/ addAllToSet(outdatedDependencies[parentId], [moduleId]); +/******/ continue; +/******/ } +/******/ delete outdatedDependencies[parentId]; +/******/ outdatedModules.push(parentId); +/******/ queue.push({ +/******/ chain: chain.concat([parentId]), +/******/ id: parentId +/******/ }); +/******/ } +/******/ } +/******/ +/******/ return { +/******/ type: "accepted", +/******/ moduleId: updateModuleId, +/******/ outdatedModules: outdatedModules, +/******/ outdatedDependencies: outdatedDependencies +/******/ }; +/******/ } +/******/ +/******/ function addAllToSet(a, b) { +/******/ for (var i = 0; i < b.length; i++) { +/******/ var item = b[i]; +/******/ if (a.indexOf(item) === -1) a.push(item); +/******/ } +/******/ } +/******/ +/******/ // at begin all updates modules are outdated +/******/ // the "outdated" status can propagate to parents if they don't accept the children +/******/ var outdatedDependencies = {}; +/******/ var outdatedModules = []; +/******/ var appliedUpdate = {}; +/******/ +/******/ var warnUnexpectedRequire = function warnUnexpectedRequire(module) { +/******/ console.warn( +/******/ "[HMR] unexpected require(" + module.id + ") to disposed module" +/******/ ); +/******/ }; +/******/ +/******/ for (var moduleId in currentUpdate) { +/******/ if (__webpack_require__.o(currentUpdate, moduleId)) { +/******/ var newModuleFactory = currentUpdate[moduleId]; +/******/ /** @type {TODO} */ +/******/ var result; +/******/ if (newModuleFactory) { +/******/ result = getAffectedModuleEffects(moduleId); +/******/ } else { +/******/ result = { +/******/ type: "disposed", +/******/ moduleId: moduleId +/******/ }; +/******/ } +/******/ /** @type {Error|false} */ +/******/ var abortError = false; +/******/ var doApply = false; +/******/ var doDispose = false; +/******/ var chainInfo = ""; +/******/ if (result.chain) { +/******/ chainInfo = "\nUpdate propagation: " + result.chain.join(" -> "); +/******/ } +/******/ switch (result.type) { +/******/ case "self-declined": +/******/ if (options.onDeclined) options.onDeclined(result); +/******/ if (!options.ignoreDeclined) +/******/ abortError = new Error( +/******/ "Aborted because of self decline: " + +/******/ result.moduleId + +/******/ chainInfo +/******/ ); +/******/ break; +/******/ case "declined": +/******/ if (options.onDeclined) options.onDeclined(result); +/******/ if (!options.ignoreDeclined) +/******/ abortError = new Error( +/******/ "Aborted because of declined dependency: " + +/******/ result.moduleId + +/******/ " in " + +/******/ result.parentId + +/******/ chainInfo +/******/ ); +/******/ break; +/******/ case "unaccepted": +/******/ if (options.onUnaccepted) options.onUnaccepted(result); +/******/ if (!options.ignoreUnaccepted) +/******/ abortError = new Error( +/******/ "Aborted because " + moduleId + " is not accepted" + chainInfo +/******/ ); +/******/ break; +/******/ case "accepted": +/******/ if (options.onAccepted) options.onAccepted(result); +/******/ doApply = true; +/******/ break; +/******/ case "disposed": +/******/ if (options.onDisposed) options.onDisposed(result); +/******/ doDispose = true; +/******/ break; +/******/ default: +/******/ throw new Error("Unexception type " + result.type); +/******/ } +/******/ if (abortError) { +/******/ return { +/******/ error: abortError +/******/ }; +/******/ } +/******/ if (doApply) { +/******/ appliedUpdate[moduleId] = newModuleFactory; +/******/ addAllToSet(outdatedModules, result.outdatedModules); +/******/ for (moduleId in result.outdatedDependencies) { +/******/ if (__webpack_require__.o(result.outdatedDependencies, moduleId)) { +/******/ if (!outdatedDependencies[moduleId]) +/******/ outdatedDependencies[moduleId] = []; +/******/ addAllToSet( +/******/ outdatedDependencies[moduleId], +/******/ result.outdatedDependencies[moduleId] +/******/ ); +/******/ } +/******/ } +/******/ } +/******/ if (doDispose) { +/******/ addAllToSet(outdatedModules, [result.moduleId]); +/******/ appliedUpdate[moduleId] = warnUnexpectedRequire; +/******/ } +/******/ } +/******/ } +/******/ currentUpdate = undefined; +/******/ +/******/ // Store self accepted outdated modules to require them later by the module system +/******/ var outdatedSelfAcceptedModules = []; +/******/ for (var j = 0; j < outdatedModules.length; j++) { +/******/ var outdatedModuleId = outdatedModules[j]; +/******/ var module = __webpack_require__.c[outdatedModuleId]; +/******/ if ( +/******/ module && +/******/ (module.hot._selfAccepted || module.hot._main) && +/******/ // removed self-accepted modules should not be required +/******/ appliedUpdate[outdatedModuleId] !== warnUnexpectedRequire && +/******/ // when called invalidate self-accepting is not possible +/******/ !module.hot._selfInvalidated +/******/ ) { +/******/ outdatedSelfAcceptedModules.push({ +/******/ module: outdatedModuleId, +/******/ require: module.hot._requireSelf, +/******/ errorHandler: module.hot._selfAccepted +/******/ }); +/******/ } +/******/ } +/******/ +/******/ var moduleOutdatedDependencies; +/******/ +/******/ return { +/******/ dispose: function () { +/******/ currentUpdateRemovedChunks.forEach(function (chunkId) { +/******/ delete installedChunks[chunkId]; +/******/ }); +/******/ currentUpdateRemovedChunks = undefined; +/******/ +/******/ var idx; +/******/ var queue = outdatedModules.slice(); +/******/ while (queue.length > 0) { +/******/ var moduleId = queue.pop(); +/******/ var module = __webpack_require__.c[moduleId]; +/******/ if (!module) continue; +/******/ +/******/ var data = {}; +/******/ +/******/ // Call dispose handlers +/******/ var disposeHandlers = module.hot._disposeHandlers; +/******/ for (j = 0; j < disposeHandlers.length; j++) { +/******/ disposeHandlers[j].call(null, data); +/******/ } +/******/ __webpack_require__.hmrD[moduleId] = data; +/******/ +/******/ // disable module (this disables requires from this module) +/******/ module.hot.active = false; +/******/ +/******/ // remove module from cache +/******/ delete __webpack_require__.c[moduleId]; +/******/ +/******/ // when disposing there is no need to call dispose handler +/******/ delete outdatedDependencies[moduleId]; +/******/ +/******/ // remove "parents" references from all children +/******/ for (j = 0; j < module.children.length; j++) { +/******/ var child = __webpack_require__.c[module.children[j]]; +/******/ if (!child) continue; +/******/ idx = child.parents.indexOf(moduleId); +/******/ if (idx >= 0) { +/******/ child.parents.splice(idx, 1); +/******/ } +/******/ } +/******/ } +/******/ +/******/ // remove outdated dependency from module children +/******/ var dependency; +/******/ for (var outdatedModuleId in outdatedDependencies) { +/******/ if (__webpack_require__.o(outdatedDependencies, outdatedModuleId)) { +/******/ module = __webpack_require__.c[outdatedModuleId]; +/******/ if (module) { +/******/ moduleOutdatedDependencies = +/******/ outdatedDependencies[outdatedModuleId]; +/******/ for (j = 0; j < moduleOutdatedDependencies.length; j++) { +/******/ dependency = moduleOutdatedDependencies[j]; +/******/ idx = module.children.indexOf(dependency); +/******/ if (idx >= 0) module.children.splice(idx, 1); +/******/ } +/******/ } +/******/ } +/******/ } +/******/ }, +/******/ apply: function (reportError) { +/******/ // insert new code +/******/ for (var updateModuleId in appliedUpdate) { +/******/ if (__webpack_require__.o(appliedUpdate, updateModuleId)) { +/******/ __webpack_require__.m[updateModuleId] = appliedUpdate[updateModuleId]; +/******/ } +/******/ } +/******/ +/******/ // run new runtime modules +/******/ for (var i = 0; i < currentUpdateRuntime.length; i++) { +/******/ currentUpdateRuntime[i](__webpack_require__); +/******/ } +/******/ +/******/ // call accept handlers +/******/ for (var outdatedModuleId in outdatedDependencies) { +/******/ if (__webpack_require__.o(outdatedDependencies, outdatedModuleId)) { +/******/ var module = __webpack_require__.c[outdatedModuleId]; +/******/ if (module) { +/******/ moduleOutdatedDependencies = +/******/ outdatedDependencies[outdatedModuleId]; +/******/ var callbacks = []; +/******/ var errorHandlers = []; +/******/ var dependenciesForCallbacks = []; +/******/ for (var j = 0; j < moduleOutdatedDependencies.length; j++) { +/******/ var dependency = moduleOutdatedDependencies[j]; +/******/ var acceptCallback = +/******/ module.hot._acceptedDependencies[dependency]; +/******/ var errorHandler = +/******/ module.hot._acceptedErrorHandlers[dependency]; +/******/ if (acceptCallback) { +/******/ if (callbacks.indexOf(acceptCallback) !== -1) continue; +/******/ callbacks.push(acceptCallback); +/******/ errorHandlers.push(errorHandler); +/******/ dependenciesForCallbacks.push(dependency); +/******/ } +/******/ } +/******/ for (var k = 0; k < callbacks.length; k++) { +/******/ try { +/******/ callbacks[k].call(null, moduleOutdatedDependencies); +/******/ } catch (err) { +/******/ if (typeof errorHandlers[k] === "function") { +/******/ try { +/******/ errorHandlers[k](err, { +/******/ moduleId: outdatedModuleId, +/******/ dependencyId: dependenciesForCallbacks[k] +/******/ }); +/******/ } catch (err2) { +/******/ if (options.onErrored) { +/******/ options.onErrored({ +/******/ type: "accept-error-handler-errored", +/******/ moduleId: outdatedModuleId, +/******/ dependencyId: dependenciesForCallbacks[k], +/******/ error: err2, +/******/ originalError: err +/******/ }); +/******/ } +/******/ if (!options.ignoreErrored) { +/******/ reportError(err2); +/******/ reportError(err); +/******/ } +/******/ } +/******/ } else { +/******/ if (options.onErrored) { +/******/ options.onErrored({ +/******/ type: "accept-errored", +/******/ moduleId: outdatedModuleId, +/******/ dependencyId: dependenciesForCallbacks[k], +/******/ error: err +/******/ }); +/******/ } +/******/ if (!options.ignoreErrored) { +/******/ reportError(err); +/******/ } +/******/ } +/******/ } +/******/ } +/******/ } +/******/ } +/******/ } +/******/ +/******/ // Load self accepted modules +/******/ for (var o = 0; o < outdatedSelfAcceptedModules.length; o++) { +/******/ var item = outdatedSelfAcceptedModules[o]; +/******/ var moduleId = item.module; +/******/ try { +/******/ item.require(moduleId); +/******/ } catch (err) { +/******/ if (typeof item.errorHandler === "function") { +/******/ try { +/******/ item.errorHandler(err, { +/******/ moduleId: moduleId, +/******/ module: __webpack_require__.c[moduleId] +/******/ }); +/******/ } catch (err2) { +/******/ if (options.onErrored) { +/******/ options.onErrored({ +/******/ type: "self-accept-error-handler-errored", +/******/ moduleId: moduleId, +/******/ error: err2, +/******/ originalError: err +/******/ }); +/******/ } +/******/ if (!options.ignoreErrored) { +/******/ reportError(err2); +/******/ reportError(err); +/******/ } +/******/ } +/******/ } else { +/******/ if (options.onErrored) { +/******/ options.onErrored({ +/******/ type: "self-accept-errored", +/******/ moduleId: moduleId, +/******/ error: err +/******/ }); +/******/ } +/******/ if (!options.ignoreErrored) { +/******/ reportError(err); +/******/ } +/******/ } +/******/ } +/******/ } +/******/ +/******/ return outdatedModules; +/******/ } +/******/ }; +/******/ } +/******/ __webpack_require__.hmrI.jsonp = function (moduleId, applyHandlers) { +/******/ if (!currentUpdate) { +/******/ currentUpdate = {}; +/******/ currentUpdateRuntime = []; +/******/ currentUpdateRemovedChunks = []; +/******/ applyHandlers.push(applyHandler); +/******/ } +/******/ if (!__webpack_require__.o(currentUpdate, moduleId)) { +/******/ currentUpdate[moduleId] = __webpack_require__.m[moduleId]; +/******/ } +/******/ }; +/******/ __webpack_require__.hmrC.jsonp = function ( +/******/ chunkIds, +/******/ removedChunks, +/******/ removedModules, +/******/ promises, +/******/ applyHandlers, +/******/ updatedModulesList +/******/ ) { +/******/ applyHandlers.push(applyHandler); +/******/ currentUpdateChunks = {}; +/******/ currentUpdateRemovedChunks = removedChunks; +/******/ currentUpdate = removedModules.reduce(function (obj, key) { +/******/ obj[key] = false; +/******/ return obj; +/******/ }, {}); +/******/ currentUpdateRuntime = []; +/******/ chunkIds.forEach(function (chunkId) { +/******/ if ( +/******/ __webpack_require__.o(installedChunks, chunkId) && +/******/ installedChunks[chunkId] !== undefined +/******/ ) { +/******/ promises.push(loadUpdateChunk(chunkId, updatedModulesList)); +/******/ currentUpdateChunks[chunkId] = true; +/******/ } +/******/ }); +/******/ if (__webpack_require__.f) { +/******/ __webpack_require__.f.jsonpHmr = function (chunkId, promises) { +/******/ if ( +/******/ currentUpdateChunks && +/******/ !__webpack_require__.o(currentUpdateChunks, chunkId) && +/******/ __webpack_require__.o(installedChunks, chunkId) && +/******/ installedChunks[chunkId] !== undefined +/******/ ) { +/******/ promises.push(loadUpdateChunk(chunkId)); +/******/ currentUpdateChunks[chunkId] = true; +/******/ } +/******/ }; +/******/ } +/******/ }; +/******/ +/******/ __webpack_require__.hmrM = function() { +/******/ if (typeof fetch === "undefined") throw new Error("No browser support: need fetch API"); +/******/ return fetch(__webpack_require__.p + __webpack_require__.hmrF()).then(function(response) { +/******/ if(response.status === 404) return; // no update available +/******/ if(!response.ok) throw new Error("Failed to fetch update manifest " + response.statusText); +/******/ return response.json(); +/******/ }); +/******/ }; +/******/ +/******/ __webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; }; +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = function(parentChunkLoadingFunction, data) { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkIds[i]] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ }(); +/******/ +/************************************************************************/ +/******/ +/******/ // module cache are used so entry inlining is disabled +/******/ +/******/ })() +; \ No newline at end of file diff --git a/.next/static/chunks/main.js b/.next/static/chunks/main.js new file mode 100644 index 0000000..27d6de4 --- /dev/null +++ b/.next/static/chunks/main.js @@ -0,0 +1,1434 @@ +/* + * 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/). + */ +(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["main"],{ + +/***/ "./node_modules/@babel/runtime/helpers/arrayLikeToArray.js": +/*!*****************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/arrayLikeToArray.js ***! + \*****************************************************************/ +/***/ (function(module) { + +eval("function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hcnJheUxpa2VUb0FycmF5LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7O0FBRUEseUNBQXlDLFNBQVM7QUFDbEQ7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLG1CQUFtQix5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvYXJyYXlMaWtlVG9BcnJheS5qcz9jZjA5Il0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9hcnJheUxpa2VUb0FycmF5KGFyciwgbGVuKSB7XG4gIGlmIChsZW4gPT0gbnVsbCB8fCBsZW4gPiBhcnIubGVuZ3RoKSBsZW4gPSBhcnIubGVuZ3RoO1xuXG4gIGZvciAodmFyIGkgPSAwLCBhcnIyID0gbmV3IEFycmF5KGxlbik7IGkgPCBsZW47IGkrKykge1xuICAgIGFycjJbaV0gPSBhcnJbaV07XG4gIH1cblxuICByZXR1cm4gYXJyMjtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfYXJyYXlMaWtlVG9BcnJheTtcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/arrayLikeToArray.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/arrayWithHoles.js": +/*!***************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/arrayWithHoles.js ***! + \***************************************************************/ +/***/ (function(module) { + +eval("function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hcnJheVdpdGhIb2xlcy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSx5QkFBeUIsbUJBQW1CLHlCQUF5QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hcnJheVdpdGhIb2xlcy5qcz9hNTI1Il0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9hcnJheVdpdGhIb2xlcyhhcnIpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoYXJyKSkgcmV0dXJuIGFycjtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfYXJyYXlXaXRoSG9sZXM7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/arrayWithHoles.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js": +/*!******************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js ***! + \******************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ \"./node_modules/@babel/runtime/helpers/arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hcnJheVdpdGhvdXRIb2xlcy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQSx1QkFBdUIsbUJBQU8sQ0FBQyx3RkFBdUI7O0FBRXREO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHlCQUF5QixtQkFBbUIseUJBQXlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2FycmF5V2l0aG91dEhvbGVzLmpzP2Y5OTgiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGFycmF5TGlrZVRvQXJyYXkgPSByZXF1aXJlKFwiLi9hcnJheUxpa2VUb0FycmF5LmpzXCIpO1xuXG5mdW5jdGlvbiBfYXJyYXlXaXRob3V0SG9sZXMoYXJyKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGFycikpIHJldHVybiBhcnJheUxpa2VUb0FycmF5KGFycik7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX2FycmF5V2l0aG91dEhvbGVzO1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/assertThisInitialized.js": +/*!**********************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/assertThisInitialized.js ***! + \**********************************************************************/ +/***/ (function(module) { + +eval("function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQuanMuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLHlCQUF5QixtQkFBbUIseUJBQXlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2Fzc2VydFRoaXNJbml0aWFsaXplZC5qcz8yMDE1Il0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikge1xuICBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7XG4gICAgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpO1xuICB9XG5cbiAgcmV0dXJuIHNlbGY7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX2Fzc2VydFRoaXNJbml0aWFsaXplZDtcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/assertThisInitialized.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/asyncToGenerator.js": +/*!*****************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/asyncToGenerator.js ***! + \*****************************************************************/ +/***/ (function(module) { + +eval("function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hc3luY1RvR2VuZXJhdG9yLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLG1CQUFtQix5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvYXN5bmNUb0dlbmVyYXRvci5qcz9kMzEyIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGFzeW5jR2VuZXJhdG9yU3RlcChnZW4sIHJlc29sdmUsIHJlamVjdCwgX25leHQsIF90aHJvdywga2V5LCBhcmcpIHtcbiAgdHJ5IHtcbiAgICB2YXIgaW5mbyA9IGdlbltrZXldKGFyZyk7XG4gICAgdmFyIHZhbHVlID0gaW5mby52YWx1ZTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZWplY3QoZXJyb3IpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChpbmZvLmRvbmUpIHtcbiAgICByZXNvbHZlKHZhbHVlKTtcbiAgfSBlbHNlIHtcbiAgICBQcm9taXNlLnJlc29sdmUodmFsdWUpLnRoZW4oX25leHQsIF90aHJvdyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gX2FzeW5jVG9HZW5lcmF0b3IoZm4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICAgIGFyZ3MgPSBhcmd1bWVudHM7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgIHZhciBnZW4gPSBmbi5hcHBseShzZWxmLCBhcmdzKTtcblxuICAgICAgZnVuY3Rpb24gX25leHQodmFsdWUpIHtcbiAgICAgICAgYXN5bmNHZW5lcmF0b3JTdGVwKGdlbiwgcmVzb2x2ZSwgcmVqZWN0LCBfbmV4dCwgX3Rocm93LCBcIm5leHRcIiwgdmFsdWUpO1xuICAgICAgfVxuXG4gICAgICBmdW5jdGlvbiBfdGhyb3coZXJyKSB7XG4gICAgICAgIGFzeW5jR2VuZXJhdG9yU3RlcChnZW4sIHJlc29sdmUsIHJlamVjdCwgX25leHQsIF90aHJvdywgXCJ0aHJvd1wiLCBlcnIpO1xuICAgICAgfVxuXG4gICAgICBfbmV4dCh1bmRlZmluZWQpO1xuICAgIH0pO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9hc3luY1RvR2VuZXJhdG9yO1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/asyncToGenerator.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/classCallCheck.js": +/*!***************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/classCallCheck.js ***! + \***************************************************************/ +/***/ (function(module) { + +eval("function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9jbGFzc0NhbGxDaGVjay5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLG1CQUFtQix5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvY2xhc3NDYWxsQ2hlY2suanM/YjdhZSJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7XG4gIGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9jbGFzc0NhbGxDaGVjaztcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/classCallCheck.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/construct.js": +/*!**********************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/construct.js ***! + \**********************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ \"./node_modules/@babel/runtime/helpers/setPrototypeOf.js\");\n\nvar isNativeReflectConstruct = __webpack_require__(/*! ./isNativeReflectConstruct.js */ \"./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js\");\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct;\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9jb25zdHJ1Y3QuanMuanMiLCJtYXBwaW5ncyI6IkFBQUEscUJBQXFCLG1CQUFPLENBQUMsb0ZBQXFCOztBQUVsRCwrQkFBK0IsbUJBQU8sQ0FBQyx3R0FBK0I7O0FBRXRFO0FBQ0E7QUFDQTtBQUNBLElBQUkseUJBQXlCLG1CQUFtQix5QkFBeUI7QUFDekUsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsSUFBSSx5QkFBeUIsbUJBQW1CLHlCQUF5QjtBQUN6RTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLG1CQUFtQix5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvY29uc3RydWN0LmpzPzI5MWUiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIHNldFByb3RvdHlwZU9mID0gcmVxdWlyZShcIi4vc2V0UHJvdG90eXBlT2YuanNcIik7XG5cbnZhciBpc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSByZXF1aXJlKFwiLi9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QuanNcIik7XG5cbmZ1bmN0aW9uIF9jb25zdHJ1Y3QoUGFyZW50LCBhcmdzLCBDbGFzcykge1xuICBpZiAoaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkpIHtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IF9jb25zdHJ1Y3QgPSBSZWZsZWN0LmNvbnN0cnVjdDtcbiAgICBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG4gIH0gZWxzZSB7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBfY29uc3RydWN0ID0gZnVuY3Rpb24gX2NvbnN0cnVjdChQYXJlbnQsIGFyZ3MsIENsYXNzKSB7XG4gICAgICB2YXIgYSA9IFtudWxsXTtcbiAgICAgIGEucHVzaC5hcHBseShhLCBhcmdzKTtcbiAgICAgIHZhciBDb25zdHJ1Y3RvciA9IEZ1bmN0aW9uLmJpbmQuYXBwbHkoUGFyZW50LCBhKTtcbiAgICAgIHZhciBpbnN0YW5jZSA9IG5ldyBDb25zdHJ1Y3RvcigpO1xuICAgICAgaWYgKENsYXNzKSBzZXRQcm90b3R5cGVPZihpbnN0YW5jZSwgQ2xhc3MucHJvdG90eXBlKTtcbiAgICAgIHJldHVybiBpbnN0YW5jZTtcbiAgICB9O1xuXG4gICAgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIF9jb25zdHJ1Y3QuYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfY29uc3RydWN0O1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/construct.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/createClass.js": +/*!************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/createClass.js ***! + \************************************************************/ +/***/ (function(module) { + +eval("function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9jcmVhdGVDbGFzcy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBLGtCQUFrQixrQkFBa0I7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHlCQUF5QixtQkFBbUIseUJBQXlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2NyZWF0ZUNsYXNzLmpzPzU0NmIiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTtcbiAgICBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7XG4gICAgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlO1xuICAgIGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpO1xuICB9XG59XG5cbmZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHtcbiAgaWYgKHByb3RvUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7XG4gIGlmIChzdGF0aWNQcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTtcbiAgcmV0dXJuIENvbnN0cnVjdG9yO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9jcmVhdGVDbGFzcztcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/createClass.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/defineProperty.js": +/*!***************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/defineProperty.js ***! + \***************************************************************/ +/***/ (function(module) { + +eval("function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9kZWZpbmVQcm9wZXJ0eS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxJQUFJO0FBQ0o7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLG1CQUFtQix5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZGVmaW5lUHJvcGVydHkuanM/ZDk0NiJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHZhbHVlKSB7XG4gIGlmIChrZXkgaW4gb2JqKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7XG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgd3JpdGFibGU6IHRydWVcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBvYmpba2V5XSA9IHZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIG9iajtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfZGVmaW5lUHJvcGVydHk7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/defineProperty.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js": +/*!***************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/getPrototypeOf.js ***! + \***************************************************************/ +/***/ (function(module) { + +eval("function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9nZXRQcm90b3R5cGVPZi5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUseUJBQXlCLG1CQUFtQix5QkFBeUI7QUFDdkU7QUFDQTs7QUFFQTtBQUNBLHlCQUF5QixtQkFBbUIseUJBQXlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2dldFByb3RvdHlwZU9mLmpzPzkwMDMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2Yobykge1xuICAgIHJldHVybiBvLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2Yobyk7XG4gIH07XG4gIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbiAgcmV0dXJuIF9nZXRQcm90b3R5cGVPZihvKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfZ2V0UHJvdG90eXBlT2Y7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/getPrototypeOf.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/inherits.js": +/*!*********************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/inherits.js ***! + \*********************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ \"./node_modules/@babel/runtime/helpers/setPrototypeOf.js\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbmhlcml0cy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQSxxQkFBcUIsbUJBQU8sQ0FBQyxvRkFBcUI7O0FBRWxEO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLG1CQUFtQix5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW5oZXJpdHMuanM/ZjM1YiJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgc2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKFwiLi9zZXRQcm90b3R5cGVPZi5qc1wiKTtcblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7XG4gIGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7XG4gIH1cblxuICBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHtcbiAgICBjb25zdHJ1Y3Rvcjoge1xuICAgICAgdmFsdWU6IHN1YkNsYXNzLFxuICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9XG4gIH0pO1xuICBpZiAoc3VwZXJDbGFzcykgc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9pbmhlcml0cztcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/inherits.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/isNativeFunction.js": +/*!*****************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/isNativeFunction.js ***! + \*****************************************************************/ +/***/ (function(module) { + +eval("function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nmodule.exports = _isNativeFunction;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pc05hdGl2ZUZ1bmN0aW9uLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHlCQUF5QixtQkFBbUIseUJBQXlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2lzTmF0aXZlRnVuY3Rpb24uanM/OGM4NSJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfaXNOYXRpdmVGdW5jdGlvbihmbikge1xuICByZXR1cm4gRnVuY3Rpb24udG9TdHJpbmcuY2FsbChmbikuaW5kZXhPZihcIltuYXRpdmUgY29kZV1cIikgIT09IC0xO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9pc05hdGl2ZUZ1bmN0aW9uO1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/isNativeFunction.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js": +/*!*************************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js ***! + \*************************************************************************/ +/***/ (function(module) { + +eval("function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nmodule.exports = _isNativeReflectConstruct;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QuanMuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxnRkFBZ0Y7QUFDaEY7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLG1CQUFtQix5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0LmpzPzFkNTQiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHtcbiAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiIHx8ICFSZWZsZWN0LmNvbnN0cnVjdCkgcmV0dXJuIGZhbHNlO1xuICBpZiAoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSkgcmV0dXJuIGZhbHNlO1xuICBpZiAodHlwZW9mIFByb3h5ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB0cnVlO1xuXG4gIHRyeSB7XG4gICAgQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sIFtdLCBmdW5jdGlvbiAoKSB7fSkpO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdDtcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/iterableToArray.js": +/*!****************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/iterableToArray.js ***! + \****************************************************************/ +/***/ (function(module) { + +eval("function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pdGVyYWJsZVRvQXJyYXkuanMuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLG1CQUFtQix5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaXRlcmFibGVUb0FycmF5LmpzPzgyNTEiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2l0ZXJhYmxlVG9BcnJheShpdGVyKSB7XG4gIGlmICh0eXBlb2YgU3ltYm9sICE9PSBcInVuZGVmaW5lZFwiICYmIGl0ZXJbU3ltYm9sLml0ZXJhdG9yXSAhPSBudWxsIHx8IGl0ZXJbXCJAQGl0ZXJhdG9yXCJdICE9IG51bGwpIHJldHVybiBBcnJheS5mcm9tKGl0ZXIpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9pdGVyYWJsZVRvQXJyYXk7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/iterableToArray.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js ***! + \*********************************************************************/ +/***/ (function(module) { + +eval("function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pdGVyYWJsZVRvQXJyYXlMaW1pdC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0EsNEJBQTRCLCtCQUErQjtBQUMzRDs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLHlCQUF5QixtQkFBbUIseUJBQXlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2l0ZXJhYmxlVG9BcnJheUxpbWl0LmpzP2FmZTciXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2l0ZXJhYmxlVG9BcnJheUxpbWl0KGFyciwgaSkge1xuICB2YXIgX2kgPSBhcnIgPT0gbnVsbCA/IG51bGwgOiB0eXBlb2YgU3ltYm9sICE9PSBcInVuZGVmaW5lZFwiICYmIGFycltTeW1ib2wuaXRlcmF0b3JdIHx8IGFycltcIkBAaXRlcmF0b3JcIl07XG5cbiAgaWYgKF9pID09IG51bGwpIHJldHVybjtcbiAgdmFyIF9hcnIgPSBbXTtcbiAgdmFyIF9uID0gdHJ1ZTtcbiAgdmFyIF9kID0gZmFsc2U7XG5cbiAgdmFyIF9zLCBfZTtcblxuICB0cnkge1xuICAgIGZvciAoX2kgPSBfaS5jYWxsKGFycik7ICEoX24gPSAoX3MgPSBfaS5uZXh0KCkpLmRvbmUpOyBfbiA9IHRydWUpIHtcbiAgICAgIF9hcnIucHVzaChfcy52YWx1ZSk7XG5cbiAgICAgIGlmIChpICYmIF9hcnIubGVuZ3RoID09PSBpKSBicmVhaztcbiAgICB9XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIF9kID0gdHJ1ZTtcbiAgICBfZSA9IGVycjtcbiAgfSBmaW5hbGx5IHtcbiAgICB0cnkge1xuICAgICAgaWYgKCFfbiAmJiBfaVtcInJldHVyblwiXSAhPSBudWxsKSBfaVtcInJldHVyblwiXSgpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAoX2QpIHRocm93IF9lO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBfYXJyO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9pdGVyYWJsZVRvQXJyYXlMaW1pdDtcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/nonIterableRest.js": +/*!****************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/nonIterableRest.js ***! + \****************************************************************/ +/***/ (function(module) { + +eval("function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableRest;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9ub25JdGVyYWJsZVJlc3QuanMuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLG1CQUFtQix5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvbm9uSXRlcmFibGVSZXN0LmpzPzRjMjAiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX25vbkl0ZXJhYmxlUmVzdCgpIHtcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfbm9uSXRlcmFibGVSZXN0O1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/nonIterableRest.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/nonIterableSpread.js": +/*!******************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/nonIterableSpread.js ***! + \******************************************************************/ +/***/ (function(module) { + +eval("function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9ub25JdGVyYWJsZVNwcmVhZC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSx5QkFBeUIsbUJBQW1CLHlCQUF5QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9ub25JdGVyYWJsZVNwcmVhZC5qcz9kMmZhIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9ub25JdGVyYWJsZVNwcmVhZCgpIHtcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIik7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX25vbkl0ZXJhYmxlU3ByZWFkO1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/nonIterableSpread.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js": +/*!**************************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js ***! + \**************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var _typeof = (__webpack_require__(/*! @babel/runtime/helpers/typeof */ \"./node_modules/@babel/runtime/helpers/typeof.js\")[\"default\"]);\n\nvar assertThisInitialized = __webpack_require__(/*! ./assertThisInitialized.js */ \"./node_modules/@babel/runtime/helpers/assertThisInitialized.js\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0hBQW1EOztBQUVqRSw0QkFBNEIsbUJBQU8sQ0FBQyxrR0FBNEI7O0FBRWhFO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSx5QkFBeUIsbUJBQW1CLHlCQUF5QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuLmpzPzBlYjkiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIF90eXBlb2YgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2ZcIilbXCJkZWZhdWx0XCJdO1xuXG52YXIgYXNzZXJ0VGhpc0luaXRpYWxpemVkID0gcmVxdWlyZShcIi4vYXNzZXJ0VGhpc0luaXRpYWxpemVkLmpzXCIpO1xuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7XG4gIGlmIChjYWxsICYmIChfdHlwZW9mKGNhbGwpID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpKSB7XG4gICAgcmV0dXJuIGNhbGw7XG4gIH0gZWxzZSBpZiAoY2FsbCAhPT0gdm9pZCAwKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkXCIpO1xuICB9XG5cbiAgcmV0dXJuIGFzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjtcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/setPrototypeOf.js": +/*!***************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/setPrototypeOf.js ***! + \***************************************************************/ +/***/ (function(module) { + +eval("function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9zZXRQcm90b3R5cGVPZi5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLEVBQUUseUJBQXlCLG1CQUFtQix5QkFBeUI7QUFDdkU7QUFDQTs7QUFFQTtBQUNBLHlCQUF5QixtQkFBbUIseUJBQXlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3NldFByb3RvdHlwZU9mLmpzPzA1MjYiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSBfc2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHtcbiAgICBvLl9fcHJvdG9fXyA9IHA7XG4gICAgcmV0dXJuIG87XG4gIH07XG5cbiAgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuICByZXR1cm4gX3NldFByb3RvdHlwZU9mKG8sIHApO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9zZXRQcm90b3R5cGVPZjtcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/setPrototypeOf.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/slicedToArray.js": +/*!**************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/slicedToArray.js ***! + \**************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var arrayWithHoles = __webpack_require__(/*! ./arrayWithHoles.js */ \"./node_modules/@babel/runtime/helpers/arrayWithHoles.js\");\n\nvar iterableToArrayLimit = __webpack_require__(/*! ./iterableToArrayLimit.js */ \"./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js\");\n\nvar unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ \"./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js\");\n\nvar nonIterableRest = __webpack_require__(/*! ./nonIterableRest.js */ \"./node_modules/@babel/runtime/helpers/nonIterableRest.js\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9zbGljZWRUb0FycmF5LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBLHFCQUFxQixtQkFBTyxDQUFDLG9GQUFxQjs7QUFFbEQsMkJBQTJCLG1CQUFPLENBQUMsZ0dBQTJCOztBQUU5RCxpQ0FBaUMsbUJBQU8sQ0FBQyw0R0FBaUM7O0FBRTFFLHNCQUFzQixtQkFBTyxDQUFDLHNGQUFzQjs7QUFFcEQ7QUFDQTtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLG1CQUFtQix5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvc2xpY2VkVG9BcnJheS5qcz9mNTBjIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBhcnJheVdpdGhIb2xlcyA9IHJlcXVpcmUoXCIuL2FycmF5V2l0aEhvbGVzLmpzXCIpO1xuXG52YXIgaXRlcmFibGVUb0FycmF5TGltaXQgPSByZXF1aXJlKFwiLi9pdGVyYWJsZVRvQXJyYXlMaW1pdC5qc1wiKTtcblxudmFyIHVuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5ID0gcmVxdWlyZShcIi4vdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkuanNcIik7XG5cbnZhciBub25JdGVyYWJsZVJlc3QgPSByZXF1aXJlKFwiLi9ub25JdGVyYWJsZVJlc3QuanNcIik7XG5cbmZ1bmN0aW9uIF9zbGljZWRUb0FycmF5KGFyciwgaSkge1xuICByZXR1cm4gYXJyYXlXaXRoSG9sZXMoYXJyKSB8fCBpdGVyYWJsZVRvQXJyYXlMaW1pdChhcnIsIGkpIHx8IHVuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KGFyciwgaSkgfHwgbm9uSXRlcmFibGVSZXN0KCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX3NsaWNlZFRvQXJyYXk7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/slicedToArray.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/toConsumableArray.js": +/*!******************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/toConsumableArray.js ***! + \******************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var arrayWithoutHoles = __webpack_require__(/*! ./arrayWithoutHoles.js */ \"./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js\");\n\nvar iterableToArray = __webpack_require__(/*! ./iterableToArray.js */ \"./node_modules/@babel/runtime/helpers/iterableToArray.js\");\n\nvar unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ \"./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js\");\n\nvar nonIterableSpread = __webpack_require__(/*! ./nonIterableSpread.js */ \"./node_modules/@babel/runtime/helpers/nonIterableSpread.js\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy90b0NvbnN1bWFibGVBcnJheS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQSx3QkFBd0IsbUJBQU8sQ0FBQywwRkFBd0I7O0FBRXhELHNCQUFzQixtQkFBTyxDQUFDLHNGQUFzQjs7QUFFcEQsaUNBQWlDLG1CQUFPLENBQUMsNEdBQWlDOztBQUUxRSx3QkFBd0IsbUJBQU8sQ0FBQywwRkFBd0I7O0FBRXhEO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHlCQUF5QixtQkFBbUIseUJBQXlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3RvQ29uc3VtYWJsZUFycmF5LmpzPzdlYmQiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGFycmF5V2l0aG91dEhvbGVzID0gcmVxdWlyZShcIi4vYXJyYXlXaXRob3V0SG9sZXMuanNcIik7XG5cbnZhciBpdGVyYWJsZVRvQXJyYXkgPSByZXF1aXJlKFwiLi9pdGVyYWJsZVRvQXJyYXkuanNcIik7XG5cbnZhciB1bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSA9IHJlcXVpcmUoXCIuL3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5LmpzXCIpO1xuXG52YXIgbm9uSXRlcmFibGVTcHJlYWQgPSByZXF1aXJlKFwiLi9ub25JdGVyYWJsZVNwcmVhZC5qc1wiKTtcblxuZnVuY3Rpb24gX3RvQ29uc3VtYWJsZUFycmF5KGFycikge1xuICByZXR1cm4gYXJyYXlXaXRob3V0SG9sZXMoYXJyKSB8fCBpdGVyYWJsZVRvQXJyYXkoYXJyKSB8fCB1bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShhcnIpIHx8IG5vbkl0ZXJhYmxlU3ByZWFkKCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX3RvQ29uc3VtYWJsZUFycmF5O1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/toConsumableArray.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/typeof.js": +/*!*******************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/typeof.js ***! + \*******************************************************/ +/***/ (function(module) { + +eval("function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2YuanMuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxJQUFJLHlCQUF5QixtQkFBbUIseUJBQXlCO0FBQ3pFLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUEsSUFBSSx5QkFBeUIsbUJBQW1CLHlCQUF5QjtBQUN6RTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLG1CQUFtQix5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvdHlwZW9mLmpzP2YzM2UiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX3R5cGVvZihvYmopIHtcbiAgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiO1xuXG4gIGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikge1xuICAgIG1vZHVsZS5leHBvcnRzID0gX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7XG4gICAgICByZXR1cm4gdHlwZW9mIG9iajtcbiAgICB9O1xuXG4gICAgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuICB9IGVsc2Uge1xuICAgIG1vZHVsZS5leHBvcnRzID0gX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7XG4gICAgICByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajtcbiAgICB9O1xuXG4gICAgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIF90eXBlb2Yob2JqKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfdHlwZW9mO1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/typeof.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js": +/*!***************************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js ***! + \***************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ \"./node_modules/@babel/runtime/helpers/arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQSx1QkFBdUIsbUJBQU8sQ0FBQyx3RkFBdUI7O0FBRXREO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSx5QkFBeUIsbUJBQW1CLHlCQUF5QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheS5qcz9kYTU3Il0sInNvdXJjZXNDb250ZW50IjpbInZhciBhcnJheUxpa2VUb0FycmF5ID0gcmVxdWlyZShcIi4vYXJyYXlMaWtlVG9BcnJheS5qc1wiKTtcblxuZnVuY3Rpb24gX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KG8sIG1pbkxlbikge1xuICBpZiAoIW8pIHJldHVybjtcbiAgaWYgKHR5cGVvZiBvID09PSBcInN0cmluZ1wiKSByZXR1cm4gYXJyYXlMaWtlVG9BcnJheShvLCBtaW5MZW4pO1xuICB2YXIgbiA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvKS5zbGljZSg4LCAtMSk7XG4gIGlmIChuID09PSBcIk9iamVjdFwiICYmIG8uY29uc3RydWN0b3IpIG4gPSBvLmNvbnN0cnVjdG9yLm5hbWU7XG4gIGlmIChuID09PSBcIk1hcFwiIHx8IG4gPT09IFwiU2V0XCIpIHJldHVybiBBcnJheS5mcm9tKG8pO1xuICBpZiAobiA9PT0gXCJBcmd1bWVudHNcIiB8fCAvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSkgcmV0dXJuIGFycmF5TGlrZVRvQXJyYXkobywgbWluTGVuKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXk7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/wrapNativeSuper.js": +/*!****************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/wrapNativeSuper.js ***! + \****************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var getPrototypeOf = __webpack_require__(/*! ./getPrototypeOf.js */ \"./node_modules/@babel/runtime/helpers/getPrototypeOf.js\");\n\nvar setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ \"./node_modules/@babel/runtime/helpers/setPrototypeOf.js\");\n\nvar isNativeFunction = __webpack_require__(/*! ./isNativeFunction.js */ \"./node_modules/@babel/runtime/helpers/isNativeFunction.js\");\n\nvar construct = __webpack_require__(/*! ./construct.js */ \"./node_modules/@babel/runtime/helpers/construct.js\");\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _wrapNativeSuper(Class);\n}\n\nmodule.exports = _wrapNativeSuper;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy93cmFwTmF0aXZlU3VwZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQUEscUJBQXFCLG1CQUFPLENBQUMsb0ZBQXFCOztBQUVsRCxxQkFBcUIsbUJBQU8sQ0FBQyxvRkFBcUI7O0FBRWxELHVCQUF1QixtQkFBTyxDQUFDLHdGQUF1Qjs7QUFFdEQsZ0JBQWdCLG1CQUFPLENBQUMsMEVBQWdCOztBQUV4QztBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQSxFQUFFLHlCQUF5QixtQkFBbUIseUJBQXlCO0FBQ3ZFO0FBQ0E7O0FBRUE7QUFDQSx5QkFBeUIsbUJBQW1CLHlCQUF5QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy93cmFwTmF0aXZlU3VwZXIuanM/ZjUyMSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZ2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKFwiLi9nZXRQcm90b3R5cGVPZi5qc1wiKTtcblxudmFyIHNldFByb3RvdHlwZU9mID0gcmVxdWlyZShcIi4vc2V0UHJvdG90eXBlT2YuanNcIik7XG5cbnZhciBpc05hdGl2ZUZ1bmN0aW9uID0gcmVxdWlyZShcIi4vaXNOYXRpdmVGdW5jdGlvbi5qc1wiKTtcblxudmFyIGNvbnN0cnVjdCA9IHJlcXVpcmUoXCIuL2NvbnN0cnVjdC5qc1wiKTtcblxuZnVuY3Rpb24gX3dyYXBOYXRpdmVTdXBlcihDbGFzcykge1xuICB2YXIgX2NhY2hlID0gdHlwZW9mIE1hcCA9PT0gXCJmdW5jdGlvblwiID8gbmV3IE1hcCgpIDogdW5kZWZpbmVkO1xuXG4gIG1vZHVsZS5leHBvcnRzID0gX3dyYXBOYXRpdmVTdXBlciA9IGZ1bmN0aW9uIF93cmFwTmF0aXZlU3VwZXIoQ2xhc3MpIHtcbiAgICBpZiAoQ2xhc3MgPT09IG51bGwgfHwgIWlzTmF0aXZlRnVuY3Rpb24oQ2xhc3MpKSByZXR1cm4gQ2xhc3M7XG5cbiAgICBpZiAodHlwZW9mIENsYXNzICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvblwiKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIF9jYWNoZSAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgaWYgKF9jYWNoZS5oYXMoQ2xhc3MpKSByZXR1cm4gX2NhY2hlLmdldChDbGFzcyk7XG5cbiAgICAgIF9jYWNoZS5zZXQoQ2xhc3MsIFdyYXBwZXIpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIFdyYXBwZXIoKSB7XG4gICAgICByZXR1cm4gY29uc3RydWN0KENsYXNzLCBhcmd1bWVudHMsIGdldFByb3RvdHlwZU9mKHRoaXMpLmNvbnN0cnVjdG9yKTtcbiAgICB9XG5cbiAgICBXcmFwcGVyLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoQ2xhc3MucHJvdG90eXBlLCB7XG4gICAgICBjb25zdHJ1Y3Rvcjoge1xuICAgICAgICB2YWx1ZTogV3JhcHBlcixcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gc2V0UHJvdG90eXBlT2YoV3JhcHBlciwgQ2xhc3MpO1xuICB9O1xuXG4gIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbiAgcmV0dXJuIF93cmFwTmF0aXZlU3VwZXIoQ2xhc3MpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF93cmFwTmF0aXZlU3VwZXI7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/wrapNativeSuper.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/regenerator/index.js": +/*!**********************************************************!*\ + !*** ./node_modules/@babel/runtime/regenerator/index.js ***! + \**********************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("module.exports = __webpack_require__(/*! regenerator-runtime */ \"./node_modules/regenerator-runtime/runtime.js\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvcmVnZW5lcmF0b3IvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQUEsZ0hBQStDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9yZWdlbmVyYXRvci9pbmRleC5qcz84MTQ0Il0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcInJlZ2VuZXJhdG9yLXJ1bnRpbWVcIik7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/regenerator/index.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/polyfill-module/dist/polyfill-module.js": +/*!********************************************************************!*\ + !*** ./node_modules/@next/polyfill-module/dist/polyfill-module.js ***! + \********************************************************************/ +/***/ (function() { + +eval("\"trimStart\"in String.prototype||(String.prototype.trimStart=String.prototype.trimLeft),\"trimEnd\"in String.prototype||(String.prototype.trimEnd=String.prototype.trimRight),\"description\"in Symbol.prototype||Object.defineProperty(Symbol.prototype,\"description\",{configurable:!0,get:function(){var t=/\\((.*)\\)/.exec(this.toString());return t?t[1]:void 0}}),Array.prototype.flat||(Array.prototype.flat=function(t,r){return r=this.concat.apply([],this),t>1&&r.some(Array.isArray)?r.flat(t-1):r},Array.prototype.flatMap=function(t,r){return this.map(t,r).flat()}),Promise.prototype.finally||(Promise.prototype.finally=function(t){if(\"function\"!=typeof t)return this.then(t,t);var r=this.constructor||Promise;return this.then(function(o){return r.resolve(t()).then(function(){return o})},function(o){return r.resolve(t()).then(function(){throw o})})});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcG9seWZpbGwtbW9kdWxlL2Rpc3QvcG9seWZpbGwtbW9kdWxlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBLG1RQUFtUSwrQkFBK0IsdUNBQXVDLHNCQUFzQiw0REFBNEQsNkVBQTZFLHVDQUF1Qyw0QkFBNEIsb0VBQW9FLDhDQUE4QyxnQ0FBZ0MsNkJBQTZCLHNDQUFzQyxTQUFTLEVBQUUsYUFBYSxzQ0FBc0MsUUFBUSxFQUFFLEVBQUUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BuZXh0L3BvbHlmaWxsLW1vZHVsZS9kaXN0L3BvbHlmaWxsLW1vZHVsZS5qcz9kNjg3Il0sInNvdXJjZXNDb250ZW50IjpbIlwidHJpbVN0YXJ0XCJpbiBTdHJpbmcucHJvdG90eXBlfHwoU3RyaW5nLnByb3RvdHlwZS50cmltU3RhcnQ9U3RyaW5nLnByb3RvdHlwZS50cmltTGVmdCksXCJ0cmltRW5kXCJpbiBTdHJpbmcucHJvdG90eXBlfHwoU3RyaW5nLnByb3RvdHlwZS50cmltRW5kPVN0cmluZy5wcm90b3R5cGUudHJpbVJpZ2h0KSxcImRlc2NyaXB0aW9uXCJpbiBTeW1ib2wucHJvdG90eXBlfHxPYmplY3QuZGVmaW5lUHJvcGVydHkoU3ltYm9sLnByb3RvdHlwZSxcImRlc2NyaXB0aW9uXCIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXt2YXIgdD0vXFwoKC4qKVxcKS8uZXhlYyh0aGlzLnRvU3RyaW5nKCkpO3JldHVybiB0P3RbMV06dm9pZCAwfX0pLEFycmF5LnByb3RvdHlwZS5mbGF0fHwoQXJyYXkucHJvdG90eXBlLmZsYXQ9ZnVuY3Rpb24odCxyKXtyZXR1cm4gcj10aGlzLmNvbmNhdC5hcHBseShbXSx0aGlzKSx0PjEmJnIuc29tZShBcnJheS5pc0FycmF5KT9yLmZsYXQodC0xKTpyfSxBcnJheS5wcm90b3R5cGUuZmxhdE1hcD1mdW5jdGlvbih0LHIpe3JldHVybiB0aGlzLm1hcCh0LHIpLmZsYXQoKX0pLFByb21pc2UucHJvdG90eXBlLmZpbmFsbHl8fChQcm9taXNlLnByb3RvdHlwZS5maW5hbGx5PWZ1bmN0aW9uKHQpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIHQpcmV0dXJuIHRoaXMudGhlbih0LHQpO3ZhciByPXRoaXMuY29uc3RydWN0b3J8fFByb21pc2U7cmV0dXJuIHRoaXMudGhlbihmdW5jdGlvbihvKXtyZXR1cm4gci5yZXNvbHZlKHQoKSkudGhlbihmdW5jdGlvbigpe3JldHVybiBvfSl9LGZ1bmN0aW9uKG8pe3JldHVybiByLnJlc29sdmUodCgpKS50aGVuKGZ1bmN0aW9uKCl7dGhyb3cgb30pfSl9KTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@next/polyfill-module/dist/polyfill-module.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/client.js": +/*!************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/client.js ***! + \************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nexports.__esModule = true;\nexports.onRefresh = exports.unregister = exports.register = exports.onBuildError = exports.onBuildOk = exports.ReactDevOverlay = exports.getNodeError = void 0;\nvar Bus = __importStar(__webpack_require__(/*! ./internal/bus */ \"./node_modules/@next/react-dev-overlay/lib/internal/bus.js\"));\nvar parseStack_1 = __webpack_require__(/*! ./internal/helpers/parseStack */ \"./node_modules/@next/react-dev-overlay/lib/internal/helpers/parseStack.js\");\nvar isRegistered = false;\nvar stackTraceLimit = undefined;\nfunction onUnhandledError(ev) {\n var error = ev === null || ev === void 0 ? void 0 : ev.error;\n if (!error || !(error instanceof Error) || typeof error.stack !== 'string') {\n // A non-error was thrown, we don't have anything to show. :-(\n return;\n }\n var e = error;\n Bus.emit({\n type: Bus.TYPE_UNHANDLED_ERROR,\n reason: error,\n frames: (0, parseStack_1.parseStack)(e.stack)\n });\n}\nfunction onUnhandledRejection(ev) {\n var reason = ev === null || ev === void 0 ? void 0 : ev.reason;\n if (!reason ||\n !(reason instanceof Error) ||\n typeof reason.stack !== 'string') {\n // A non-error was thrown, we don't have anything to show. :-(\n return;\n }\n var e = reason;\n Bus.emit({\n type: Bus.TYPE_UNHANDLED_REJECTION,\n reason: reason,\n frames: (0, parseStack_1.parseStack)(e.stack)\n });\n}\nfunction register() {\n if (isRegistered) {\n return;\n }\n isRegistered = true;\n try {\n var limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 50;\n stackTraceLimit = limit;\n }\n catch (_a) { }\n window.addEventListener('error', onUnhandledError);\n window.addEventListener('unhandledrejection', onUnhandledRejection);\n}\nexports.register = register;\nfunction unregister() {\n if (!isRegistered) {\n return;\n }\n isRegistered = false;\n if (stackTraceLimit !== undefined) {\n try {\n Error.stackTraceLimit = stackTraceLimit;\n }\n catch (_a) { }\n stackTraceLimit = undefined;\n }\n window.removeEventListener('error', onUnhandledError);\n window.removeEventListener('unhandledrejection', onUnhandledRejection);\n}\nexports.unregister = unregister;\nfunction onBuildOk() {\n Bus.emit({ type: Bus.TYPE_BUILD_OK });\n}\nexports.onBuildOk = onBuildOk;\nfunction onBuildError(message) {\n Bus.emit({ type: Bus.TYPE_BUILD_ERROR, message: message });\n}\nexports.onBuildError = onBuildError;\nfunction onRefresh() {\n Bus.emit({ type: Bus.TYPE_REFFRESH });\n}\nexports.onRefresh = onRefresh;\nvar nodeStackFrames_1 = __webpack_require__(/*! ./internal/helpers/nodeStackFrames */ \"./node_modules/@next/react-dev-overlay/lib/internal/helpers/nodeStackFrames.js\");\n__createBinding(exports, nodeStackFrames_1, \"getNodeError\");\nvar ReactDevOverlay_1 = __webpack_require__(/*! ./internal/ReactDevOverlay */ \"./node_modules/@next/react-dev-overlay/lib/internal/ReactDevOverlay.js\");\n__createBinding(exports, ReactDevOverlay_1, \"default\", \"ReactDevOverlay\");\n//# sourceMappingURL=client.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2NsaWVudC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0E7QUFDQSxtQ0FBbUMsb0NBQW9DLGdCQUFnQjtBQUN2RixDQUFDO0FBQ0Q7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBLDBDQUEwQyw0QkFBNEI7QUFDdEUsQ0FBQztBQUNEO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCLGlCQUFpQixHQUFHLGtCQUFrQixHQUFHLGdCQUFnQixHQUFHLG9CQUFvQixHQUFHLGlCQUFpQixHQUFHLHVCQUF1QixHQUFHLG9CQUFvQjtBQUNySix1QkFBdUIsbUJBQU8sQ0FBQyxrRkFBZ0I7QUFDL0MsbUJBQW1CLG1CQUFPLENBQUMsZ0hBQStCO0FBQzFEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBLGVBQWUseUJBQXlCO0FBQ3hDO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsZUFBZSw4Q0FBOEM7QUFDN0Q7QUFDQSxvQkFBb0I7QUFDcEI7QUFDQSxlQUFlLHlCQUF5QjtBQUN4QztBQUNBLGlCQUFpQjtBQUNqQix3QkFBd0IsbUJBQU8sQ0FBQywwSEFBb0M7QUFDcEU7QUFDQSx3QkFBd0IsbUJBQU8sQ0FBQywwR0FBNEI7QUFDNUQ7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2NsaWVudC5qcz80M2RkIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9fY3JlYXRlQmluZGluZyA9ICh0aGlzICYmIHRoaXMuX19jcmVhdGVCaW5kaW5nKSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH0pO1xufSkgOiAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIG9bazJdID0gbVtrXTtcbn0pKTtcbnZhciBfX3NldE1vZHVsZURlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9fc2V0TW9kdWxlRGVmYXVsdCkgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgdikge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBcImRlZmF1bHRcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdiB9KTtcbn0pIDogZnVuY3Rpb24obywgdikge1xuICAgIG9bXCJkZWZhdWx0XCJdID0gdjtcbn0pO1xudmFyIF9faW1wb3J0U3RhciA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnRTdGFyKSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDtcbiAgICB2YXIgcmVzdWx0ID0ge307XG4gICAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrIGluIG1vZCkgaWYgKGsgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChtb2QsIGspKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGspO1xuICAgIF9fc2V0TW9kdWxlRGVmYXVsdChyZXN1bHQsIG1vZCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5vblJlZnJlc2ggPSBleHBvcnRzLnVucmVnaXN0ZXIgPSBleHBvcnRzLnJlZ2lzdGVyID0gZXhwb3J0cy5vbkJ1aWxkRXJyb3IgPSBleHBvcnRzLm9uQnVpbGRPayA9IGV4cG9ydHMuUmVhY3REZXZPdmVybGF5ID0gZXhwb3J0cy5nZXROb2RlRXJyb3IgPSB2b2lkIDA7XG52YXIgQnVzID0gX19pbXBvcnRTdGFyKHJlcXVpcmUoXCIuL2ludGVybmFsL2J1c1wiKSk7XG52YXIgcGFyc2VTdGFja18xID0gcmVxdWlyZShcIi4vaW50ZXJuYWwvaGVscGVycy9wYXJzZVN0YWNrXCIpO1xudmFyIGlzUmVnaXN0ZXJlZCA9IGZhbHNlO1xudmFyIHN0YWNrVHJhY2VMaW1pdCA9IHVuZGVmaW5lZDtcbmZ1bmN0aW9uIG9uVW5oYW5kbGVkRXJyb3IoZXYpIHtcbiAgICB2YXIgZXJyb3IgPSBldiA9PT0gbnVsbCB8fCBldiA9PT0gdm9pZCAwID8gdm9pZCAwIDogZXYuZXJyb3I7XG4gICAgaWYgKCFlcnJvciB8fCAhKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHx8IHR5cGVvZiBlcnJvci5zdGFjayAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgLy8gQSBub24tZXJyb3Igd2FzIHRocm93biwgd2UgZG9uJ3QgaGF2ZSBhbnl0aGluZyB0byBzaG93LiA6LShcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2YXIgZSA9IGVycm9yO1xuICAgIEJ1cy5lbWl0KHtcbiAgICAgICAgdHlwZTogQnVzLlRZUEVfVU5IQU5ETEVEX0VSUk9SLFxuICAgICAgICByZWFzb246IGVycm9yLFxuICAgICAgICBmcmFtZXM6ICgwLCBwYXJzZVN0YWNrXzEucGFyc2VTdGFjaykoZS5zdGFjaylcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIG9uVW5oYW5kbGVkUmVqZWN0aW9uKGV2KSB7XG4gICAgdmFyIHJlYXNvbiA9IGV2ID09PSBudWxsIHx8IGV2ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBldi5yZWFzb247XG4gICAgaWYgKCFyZWFzb24gfHxcbiAgICAgICAgIShyZWFzb24gaW5zdGFuY2VvZiBFcnJvcikgfHxcbiAgICAgICAgdHlwZW9mIHJlYXNvbi5zdGFjayAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgLy8gQSBub24tZXJyb3Igd2FzIHRocm93biwgd2UgZG9uJ3QgaGF2ZSBhbnl0aGluZyB0byBzaG93LiA6LShcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2YXIgZSA9IHJlYXNvbjtcbiAgICBCdXMuZW1pdCh7XG4gICAgICAgIHR5cGU6IEJ1cy5UWVBFX1VOSEFORExFRF9SRUpFQ1RJT04sXG4gICAgICAgIHJlYXNvbjogcmVhc29uLFxuICAgICAgICBmcmFtZXM6ICgwLCBwYXJzZVN0YWNrXzEucGFyc2VTdGFjaykoZS5zdGFjaylcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIHJlZ2lzdGVyKCkge1xuICAgIGlmIChpc1JlZ2lzdGVyZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpc1JlZ2lzdGVyZWQgPSB0cnVlO1xuICAgIHRyeSB7XG4gICAgICAgIHZhciBsaW1pdCA9IEVycm9yLnN0YWNrVHJhY2VMaW1pdDtcbiAgICAgICAgRXJyb3Iuc3RhY2tUcmFjZUxpbWl0ID0gNTA7XG4gICAgICAgIHN0YWNrVHJhY2VMaW1pdCA9IGxpbWl0O1xuICAgIH1cbiAgICBjYXRjaCAoX2EpIHsgfVxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIG9uVW5oYW5kbGVkRXJyb3IpO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd1bmhhbmRsZWRyZWplY3Rpb24nLCBvblVuaGFuZGxlZFJlamVjdGlvbik7XG59XG5leHBvcnRzLnJlZ2lzdGVyID0gcmVnaXN0ZXI7XG5mdW5jdGlvbiB1bnJlZ2lzdGVyKCkge1xuICAgIGlmICghaXNSZWdpc3RlcmVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaXNSZWdpc3RlcmVkID0gZmFsc2U7XG4gICAgaWYgKHN0YWNrVHJhY2VMaW1pdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBFcnJvci5zdGFja1RyYWNlTGltaXQgPSBzdGFja1RyYWNlTGltaXQ7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKF9hKSB7IH1cbiAgICAgICAgc3RhY2tUcmFjZUxpbWl0ID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignZXJyb3InLCBvblVuaGFuZGxlZEVycm9yKTtcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigndW5oYW5kbGVkcmVqZWN0aW9uJywgb25VbmhhbmRsZWRSZWplY3Rpb24pO1xufVxuZXhwb3J0cy51bnJlZ2lzdGVyID0gdW5yZWdpc3RlcjtcbmZ1bmN0aW9uIG9uQnVpbGRPaygpIHtcbiAgICBCdXMuZW1pdCh7IHR5cGU6IEJ1cy5UWVBFX0JVSUxEX09LIH0pO1xufVxuZXhwb3J0cy5vbkJ1aWxkT2sgPSBvbkJ1aWxkT2s7XG5mdW5jdGlvbiBvbkJ1aWxkRXJyb3IobWVzc2FnZSkge1xuICAgIEJ1cy5lbWl0KHsgdHlwZTogQnVzLlRZUEVfQlVJTERfRVJST1IsIG1lc3NhZ2U6IG1lc3NhZ2UgfSk7XG59XG5leHBvcnRzLm9uQnVpbGRFcnJvciA9IG9uQnVpbGRFcnJvcjtcbmZ1bmN0aW9uIG9uUmVmcmVzaCgpIHtcbiAgICBCdXMuZW1pdCh7IHR5cGU6IEJ1cy5UWVBFX1JFRkZSRVNIIH0pO1xufVxuZXhwb3J0cy5vblJlZnJlc2ggPSBvblJlZnJlc2g7XG52YXIgbm9kZVN0YWNrRnJhbWVzXzEgPSByZXF1aXJlKFwiLi9pbnRlcm5hbC9oZWxwZXJzL25vZGVTdGFja0ZyYW1lc1wiKTtcbl9fY3JlYXRlQmluZGluZyhleHBvcnRzLCBub2RlU3RhY2tGcmFtZXNfMSwgXCJnZXROb2RlRXJyb3JcIik7XG52YXIgUmVhY3REZXZPdmVybGF5XzEgPSByZXF1aXJlKFwiLi9pbnRlcm5hbC9SZWFjdERldk92ZXJsYXlcIik7XG5fX2NyZWF0ZUJpbmRpbmcoZXhwb3J0cywgUmVhY3REZXZPdmVybGF5XzEsIFwiZGVmYXVsdFwiLCBcIlJlYWN0RGV2T3ZlcmxheVwiKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNsaWVudC5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/client.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/ErrorBoundary.js": +/*!****************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/ErrorBoundary.js ***! + \****************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nexports.__esModule = true;\nexports.ErrorBoundary = void 0;\nvar react_1 = __importDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nvar ErrorBoundary = /** @class */ (function (_super) {\n __extends(ErrorBoundary, _super);\n function ErrorBoundary() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.state = { error: null };\n return _this;\n }\n ErrorBoundary.prototype.componentDidCatch = function (error, \n // Loosely typed because it depends on the React version and was\n // accidentally excluded in some versions.\n errorInfo) {\n this.props.onError(error, (errorInfo === null || errorInfo === void 0 ? void 0 : errorInfo.componentStack) || null);\n this.setState({ error: error });\n };\n ErrorBoundary.prototype.render = function () {\n return this.state.error\n ? // The component has to be unmounted or else it would continue to error\n null\n : this.props.children;\n };\n return ErrorBoundary;\n}(react_1[\"default\"].PureComponent));\nexports.ErrorBoundary = ErrorBoundary;\n//# sourceMappingURL=ErrorBoundary.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL0Vycm9yQm91bmRhcnkuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxlQUFlLGdCQUFnQixzQ0FBc0Msa0JBQWtCO0FBQ3ZGLDhCQUE4QjtBQUM5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0I7QUFDeEI7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBLDZDQUE2QztBQUM3QztBQUNBLGtCQUFrQjtBQUNsQixxQkFBcUI7QUFDckIsOEJBQThCLG1CQUFPLENBQUMsNENBQU87QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0I7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsY0FBYztBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELHFCQUFxQjtBQUNyQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL0Vycm9yQm91bmRhcnkuanM/ZjJiNSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2V4dGVuZHMgPSAodGhpcyAmJiB0aGlzLl9fZXh0ZW5kcykgfHwgKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZXh0ZW5kU3RhdGljcyA9IGZ1bmN0aW9uIChkLCBiKSB7XG4gICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcbiAgICAgICAgICAgICh7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uIChkLCBiKSB7IGQuX19wcm90b19fID0gYjsgfSkgfHxcbiAgICAgICAgICAgIGZ1bmN0aW9uIChkLCBiKSB7IGZvciAodmFyIHAgaW4gYikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiLCBwKSkgZFtwXSA9IGJbcF07IH07XG4gICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpO1xuICAgIH07XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7XG4gICAgICAgIGlmICh0eXBlb2YgYiAhPT0gXCJmdW5jdGlvblwiICYmIGIgIT09IG51bGwpXG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSBcIiArIFN0cmluZyhiKSArIFwiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGxcIik7XG4gICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7XG4gICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfVxuICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XG4gICAgfTtcbn0pKCk7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5FcnJvckJvdW5kYXJ5ID0gdm9pZCAwO1xudmFyIHJlYWN0XzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcInJlYWN0XCIpKTtcbnZhciBFcnJvckJvdW5kYXJ5ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhFcnJvckJvdW5kYXJ5LCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIEVycm9yQm91bmRhcnkoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlciAhPT0gbnVsbCAmJiBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5zdGF0ZSA9IHsgZXJyb3I6IG51bGwgfTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBFcnJvckJvdW5kYXJ5LnByb3RvdHlwZS5jb21wb25lbnREaWRDYXRjaCA9IGZ1bmN0aW9uIChlcnJvciwgXG4gICAgLy8gTG9vc2VseSB0eXBlZCBiZWNhdXNlIGl0IGRlcGVuZHMgb24gdGhlIFJlYWN0IHZlcnNpb24gYW5kIHdhc1xuICAgIC8vIGFjY2lkZW50YWxseSBleGNsdWRlZCBpbiBzb21lIHZlcnNpb25zLlxuICAgIGVycm9ySW5mbykge1xuICAgICAgICB0aGlzLnByb3BzLm9uRXJyb3IoZXJyb3IsIChlcnJvckluZm8gPT09IG51bGwgfHwgZXJyb3JJbmZvID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlcnJvckluZm8uY29tcG9uZW50U3RhY2spIHx8IG51bGwpO1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgZXJyb3I6IGVycm9yIH0pO1xuICAgIH07XG4gICAgRXJyb3JCb3VuZGFyeS5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZS5lcnJvclxuICAgICAgICAgICAgPyAvLyBUaGUgY29tcG9uZW50IGhhcyB0byBiZSB1bm1vdW50ZWQgb3IgZWxzZSBpdCB3b3VsZCBjb250aW51ZSB0byBlcnJvclxuICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgIDogdGhpcy5wcm9wcy5jaGlsZHJlbjtcbiAgICB9O1xuICAgIHJldHVybiBFcnJvckJvdW5kYXJ5O1xufShyZWFjdF8xW1wiZGVmYXVsdFwiXS5QdXJlQ29tcG9uZW50KSk7XG5leHBvcnRzLkVycm9yQm91bmRhcnkgPSBFcnJvckJvdW5kYXJ5O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RXJyb3JCb3VuZGFyeS5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/ErrorBoundary.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/ReactDevOverlay.js": +/*!******************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/ReactDevOverlay.js ***! + \******************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nexports.__esModule = true;\nvar React = __importStar(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nvar Bus = __importStar(__webpack_require__(/*! ./bus */ \"./node_modules/@next/react-dev-overlay/lib/internal/bus.js\"));\nvar ShadowPortal_1 = __webpack_require__(/*! ./components/ShadowPortal */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/ShadowPortal.js\");\nvar Errors_1 = __webpack_require__(/*! ./container/Errors */ \"./node_modules/@next/react-dev-overlay/lib/internal/container/Errors.js\");\nvar BuildError_1 = __webpack_require__(/*! ./container/BuildError */ \"./node_modules/@next/react-dev-overlay/lib/internal/container/BuildError.js\");\nvar ErrorBoundary_1 = __webpack_require__(/*! ./ErrorBoundary */ \"./node_modules/@next/react-dev-overlay/lib/internal/ErrorBoundary.js\");\nvar Base_1 = __webpack_require__(/*! ./styles/Base */ \"./node_modules/@next/react-dev-overlay/lib/internal/styles/Base.js\");\nvar ComponentStyles_1 = __webpack_require__(/*! ./styles/ComponentStyles */ \"./node_modules/@next/react-dev-overlay/lib/internal/styles/ComponentStyles.js\");\nvar CssReset_1 = __webpack_require__(/*! ./styles/CssReset */ \"./node_modules/@next/react-dev-overlay/lib/internal/styles/CssReset.js\");\nfunction reducer(state, ev) {\n switch (ev.type) {\n case Bus.TYPE_BUILD_OK: {\n return __assign(__assign({}, state), { buildError: null });\n }\n case Bus.TYPE_BUILD_ERROR: {\n return __assign(__assign({}, state), { buildError: ev.message });\n }\n case Bus.TYPE_REFFRESH: {\n return __assign(__assign({}, state), { buildError: null, errors: [] });\n }\n case Bus.TYPE_UNHANDLED_ERROR:\n case Bus.TYPE_UNHANDLED_REJECTION: {\n return __assign(__assign({}, state), { nextId: state.nextId + 1, errors: __spreadArray(__spreadArray([], __read(state.errors), false), [{ id: state.nextId, event: ev }], false) });\n }\n default: {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var _1 = ev;\n return state;\n }\n }\n}\nvar ReactDevOverlay = function ReactDevOverlay(_a) {\n var children = _a.children;\n var _b = __read(React.useReducer(reducer, { nextId: 1, buildError: null, errors: [] }), 2), state = _b[0], dispatch = _b[1];\n React.useEffect(function () {\n Bus.on(dispatch);\n return function () {\n Bus.off(dispatch);\n };\n }, [dispatch]);\n var onComponentError = React.useCallback(function (_error, _componentStack) {\n // TODO: special handling\n }, []);\n var hasBuildError = state.buildError != null;\n var hasRuntimeErrors = Boolean(state.errors.length);\n var isMounted = hasBuildError || hasRuntimeErrors;\n return (React.createElement(React.Fragment, null,\n React.createElement(ErrorBoundary_1.ErrorBoundary, { onError: onComponentError }, children !== null && children !== void 0 ? children : null),\n isMounted ? (React.createElement(ShadowPortal_1.ShadowPortal, null,\n React.createElement(CssReset_1.CssReset, null),\n React.createElement(Base_1.Base, null),\n React.createElement(ComponentStyles_1.ComponentStyles, null),\n hasBuildError ? (React.createElement(BuildError_1.BuildError, { message: state.buildError })) : hasRuntimeErrors ? (React.createElement(Errors_1.Errors, { errors: state.errors })) : undefined)) : undefined));\n};\nexports[\"default\"] = ReactDevOverlay;\n//# sourceMappingURL=ReactDevOverlay.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL1JlYWN0RGV2T3ZlcmxheS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0E7QUFDQSxpREFBaUQsT0FBTztBQUN4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQyxvQ0FBb0MsZ0JBQWdCO0FBQ3ZGLENBQUM7QUFDRDtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0EsMENBQTBDLDRCQUE0QjtBQUN0RSxDQUFDO0FBQ0Q7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixNQUFNO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkVBQTZFLE9BQU87QUFDcEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEIseUJBQXlCLG1CQUFPLENBQUMsNENBQU87QUFDeEMsdUJBQXVCLG1CQUFPLENBQUMseUVBQU87QUFDdEMscUJBQXFCLG1CQUFPLENBQUMsaUhBQTJCO0FBQ3hELGVBQWUsbUJBQU8sQ0FBQyxtR0FBb0I7QUFDM0MsbUJBQW1CLG1CQUFPLENBQUMsMkdBQXdCO0FBQ25ELHNCQUFzQixtQkFBTyxDQUFDLDZGQUFpQjtBQUMvQyxhQUFhLG1CQUFPLENBQUMseUZBQWU7QUFDcEMsd0JBQXdCLG1CQUFPLENBQUMsK0dBQTBCO0FBQzFELGlCQUFpQixtQkFBTyxDQUFDLGlHQUFtQjtBQUM1QztBQUNBO0FBQ0E7QUFDQSx1Q0FBdUMsWUFBWSxrQkFBa0I7QUFDckU7QUFDQTtBQUNBLHVDQUF1QyxZQUFZLHdCQUF3QjtBQUMzRTtBQUNBO0FBQ0EsdUNBQXVDLFlBQVksOEJBQThCO0FBQ2pGO0FBQ0E7QUFDQTtBQUNBLHVDQUF1QyxZQUFZLG1HQUFtRyw2QkFBNkIsV0FBVztBQUM5TDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdEQUFnRCx5Q0FBeUM7QUFDekY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkRBQTZELDJCQUEyQjtBQUN4RjtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRFQUE0RSwyQkFBMkIsZ0VBQWdFLHNCQUFzQjtBQUM3TDtBQUNBLGtCQUFrQjtBQUNsQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL1JlYWN0RGV2T3ZlcmxheS5qcz8zNTU1Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbnZhciBfX2NyZWF0ZUJpbmRpbmcgPSAodGhpcyAmJiB0aGlzLl9fY3JlYXRlQmluZGluZykgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gbVtrXTsgfSB9KTtcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBvW2syXSA9IG1ba107XG59KSk7XG52YXIgX19zZXRNb2R1bGVEZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX3NldE1vZHVsZURlZmF1bHQpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIHYpIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgXCJkZWZhdWx0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7XG59KSA6IGZ1bmN0aW9uKG8sIHYpIHtcbiAgICBvW1wiZGVmYXVsdFwiXSA9IHY7XG59KTtcbnZhciBfX2ltcG9ydFN0YXIgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0U3RhcikgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpIHJldHVybiBtb2Q7XG4gICAgdmFyIHJlc3VsdCA9IHt9O1xuICAgIGlmIChtb2QgIT0gbnVsbCkgZm9yICh2YXIgayBpbiBtb2QpIGlmIChrICE9PSBcImRlZmF1bHRcIiAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobW9kLCBrKSkgX19jcmVhdGVCaW5kaW5nKHJlc3VsdCwgbW9kLCBrKTtcbiAgICBfX3NldE1vZHVsZURlZmF1bHQocmVzdWx0LCBtb2QpO1xuICAgIHJldHVybiByZXN1bHQ7XG59O1xudmFyIF9fcmVhZCA9ICh0aGlzICYmIHRoaXMuX19yZWFkKSB8fCBmdW5jdGlvbiAobywgbikge1xuICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9bU3ltYm9sLml0ZXJhdG9yXTtcbiAgICBpZiAoIW0pIHJldHVybiBvO1xuICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlO1xuICAgIHRyeSB7XG4gICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpO1xuICAgIH1cbiAgICBjYXRjaCAoZXJyb3IpIHsgZSA9IHsgZXJyb3I6IGVycm9yIH07IH1cbiAgICBmaW5hbGx5IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpW1wicmV0dXJuXCJdKSkgbS5jYWxsKGkpO1xuICAgICAgICB9XG4gICAgICAgIGZpbmFsbHkgeyBpZiAoZSkgdGhyb3cgZS5lcnJvcjsgfVxuICAgIH1cbiAgICByZXR1cm4gYXI7XG59O1xudmFyIF9fc3ByZWFkQXJyYXkgPSAodGhpcyAmJiB0aGlzLl9fc3ByZWFkQXJyYXkpIHx8IGZ1bmN0aW9uICh0bywgZnJvbSwgcGFjaykge1xuICAgIGlmIChwYWNrIHx8IGFyZ3VtZW50cy5sZW5ndGggPT09IDIpIGZvciAodmFyIGkgPSAwLCBsID0gZnJvbS5sZW5ndGgsIGFyOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgIGlmIChhciB8fCAhKGkgaW4gZnJvbSkpIHtcbiAgICAgICAgICAgIGlmICghYXIpIGFyID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZnJvbSwgMCwgaSk7XG4gICAgICAgICAgICBhcltpXSA9IGZyb21baV07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRvLmNvbmNhdChhciB8fCBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChmcm9tKSk7XG59O1xuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbnZhciBSZWFjdCA9IF9faW1wb3J0U3RhcihyZXF1aXJlKFwicmVhY3RcIikpO1xudmFyIEJ1cyA9IF9faW1wb3J0U3RhcihyZXF1aXJlKFwiLi9idXNcIikpO1xudmFyIFNoYWRvd1BvcnRhbF8xID0gcmVxdWlyZShcIi4vY29tcG9uZW50cy9TaGFkb3dQb3J0YWxcIik7XG52YXIgRXJyb3JzXzEgPSByZXF1aXJlKFwiLi9jb250YWluZXIvRXJyb3JzXCIpO1xudmFyIEJ1aWxkRXJyb3JfMSA9IHJlcXVpcmUoXCIuL2NvbnRhaW5lci9CdWlsZEVycm9yXCIpO1xudmFyIEVycm9yQm91bmRhcnlfMSA9IHJlcXVpcmUoXCIuL0Vycm9yQm91bmRhcnlcIik7XG52YXIgQmFzZV8xID0gcmVxdWlyZShcIi4vc3R5bGVzL0Jhc2VcIik7XG52YXIgQ29tcG9uZW50U3R5bGVzXzEgPSByZXF1aXJlKFwiLi9zdHlsZXMvQ29tcG9uZW50U3R5bGVzXCIpO1xudmFyIENzc1Jlc2V0XzEgPSByZXF1aXJlKFwiLi9zdHlsZXMvQ3NzUmVzZXRcIik7XG5mdW5jdGlvbiByZWR1Y2VyKHN0YXRlLCBldikge1xuICAgIHN3aXRjaCAoZXYudHlwZSkge1xuICAgICAgICBjYXNlIEJ1cy5UWVBFX0JVSUxEX09LOiB7XG4gICAgICAgICAgICByZXR1cm4gX19hc3NpZ24oX19hc3NpZ24oe30sIHN0YXRlKSwgeyBidWlsZEVycm9yOiBudWxsIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgQnVzLlRZUEVfQlVJTERfRVJST1I6IHtcbiAgICAgICAgICAgIHJldHVybiBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgc3RhdGUpLCB7IGJ1aWxkRXJyb3I6IGV2Lm1lc3NhZ2UgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBCdXMuVFlQRV9SRUZGUkVTSDoge1xuICAgICAgICAgICAgcmV0dXJuIF9fYXNzaWduKF9fYXNzaWduKHt9LCBzdGF0ZSksIHsgYnVpbGRFcnJvcjogbnVsbCwgZXJyb3JzOiBbXSB9KTtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIEJ1cy5UWVBFX1VOSEFORExFRF9FUlJPUjpcbiAgICAgICAgY2FzZSBCdXMuVFlQRV9VTkhBTkRMRURfUkVKRUNUSU9OOiB7XG4gICAgICAgICAgICByZXR1cm4gX19hc3NpZ24oX19hc3NpZ24oe30sIHN0YXRlKSwgeyBuZXh0SWQ6IHN0YXRlLm5leHRJZCArIDEsIGVycm9yczogX19zcHJlYWRBcnJheShfX3NwcmVhZEFycmF5KFtdLCBfX3JlYWQoc3RhdGUuZXJyb3JzKSwgZmFsc2UpLCBbeyBpZDogc3RhdGUubmV4dElkLCBldmVudDogZXYgfV0sIGZhbHNlKSB9KTtcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgICAgICAgICB2YXIgXzEgPSBldjtcbiAgICAgICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbnZhciBSZWFjdERldk92ZXJsYXkgPSBmdW5jdGlvbiBSZWFjdERldk92ZXJsYXkoX2EpIHtcbiAgICB2YXIgY2hpbGRyZW4gPSBfYS5jaGlsZHJlbjtcbiAgICB2YXIgX2IgPSBfX3JlYWQoUmVhY3QudXNlUmVkdWNlcihyZWR1Y2VyLCB7IG5leHRJZDogMSwgYnVpbGRFcnJvcjogbnVsbCwgZXJyb3JzOiBbXSB9KSwgMiksIHN0YXRlID0gX2JbMF0sIGRpc3BhdGNoID0gX2JbMV07XG4gICAgUmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgQnVzLm9uKGRpc3BhdGNoKTtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIEJ1cy5vZmYoZGlzcGF0Y2gpO1xuICAgICAgICB9O1xuICAgIH0sIFtkaXNwYXRjaF0pO1xuICAgIHZhciBvbkNvbXBvbmVudEVycm9yID0gUmVhY3QudXNlQ2FsbGJhY2soZnVuY3Rpb24gKF9lcnJvciwgX2NvbXBvbmVudFN0YWNrKSB7XG4gICAgICAgIC8vIFRPRE86IHNwZWNpYWwgaGFuZGxpbmdcbiAgICB9LCBbXSk7XG4gICAgdmFyIGhhc0J1aWxkRXJyb3IgPSBzdGF0ZS5idWlsZEVycm9yICE9IG51bGw7XG4gICAgdmFyIGhhc1J1bnRpbWVFcnJvcnMgPSBCb29sZWFuKHN0YXRlLmVycm9ycy5sZW5ndGgpO1xuICAgIHZhciBpc01vdW50ZWQgPSBoYXNCdWlsZEVycm9yIHx8IGhhc1J1bnRpbWVFcnJvcnM7XG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFJlYWN0LkZyYWdtZW50LCBudWxsLFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEVycm9yQm91bmRhcnlfMS5FcnJvckJvdW5kYXJ5LCB7IG9uRXJyb3I6IG9uQ29tcG9uZW50RXJyb3IgfSwgY2hpbGRyZW4gIT09IG51bGwgJiYgY2hpbGRyZW4gIT09IHZvaWQgMCA/IGNoaWxkcmVuIDogbnVsbCksXG4gICAgICAgIGlzTW91bnRlZCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KFNoYWRvd1BvcnRhbF8xLlNoYWRvd1BvcnRhbCwgbnVsbCxcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ3NzUmVzZXRfMS5Dc3NSZXNldCwgbnVsbCksXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEJhc2VfMS5CYXNlLCBudWxsKSxcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ29tcG9uZW50U3R5bGVzXzEuQ29tcG9uZW50U3R5bGVzLCBudWxsKSxcbiAgICAgICAgICAgIGhhc0J1aWxkRXJyb3IgPyAoUmVhY3QuY3JlYXRlRWxlbWVudChCdWlsZEVycm9yXzEuQnVpbGRFcnJvciwgeyBtZXNzYWdlOiBzdGF0ZS5idWlsZEVycm9yIH0pKSA6IGhhc1J1bnRpbWVFcnJvcnMgPyAoUmVhY3QuY3JlYXRlRWxlbWVudChFcnJvcnNfMS5FcnJvcnMsIHsgZXJyb3JzOiBzdGF0ZS5lcnJvcnMgfSkpIDogdW5kZWZpbmVkKSkgOiB1bmRlZmluZWQpKTtcbn07XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IFJlYWN0RGV2T3ZlcmxheTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVJlYWN0RGV2T3ZlcmxheS5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/ReactDevOverlay.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/bus.js": +/*!******************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/bus.js ***! + \******************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nexports.__esModule = true;\nexports.off = exports.on = exports.emit = exports.TYPE_UNHANDLED_REJECTION = exports.TYPE_UNHANDLED_ERROR = exports.TYPE_REFFRESH = exports.TYPE_BUILD_ERROR = exports.TYPE_BUILD_OK = void 0;\nexports.TYPE_BUILD_OK = 'build-ok';\nexports.TYPE_BUILD_ERROR = 'build-error';\nexports.TYPE_REFFRESH = 'fast-refresh';\nexports.TYPE_UNHANDLED_ERROR = 'unhandled-error';\nexports.TYPE_UNHANDLED_REJECTION = 'unhandled-rejection';\nvar handlers = new Set();\nvar queue = [];\nfunction drain() {\n // Draining should never happen synchronously in case multiple handlers are\n // registered.\n setTimeout(function () {\n var _loop_1 = function () {\n var ev = queue.shift();\n handlers.forEach(function (handler) { return handler(ev); });\n };\n while (\n // Until we are out of events:\n Boolean(queue.length) &&\n // Or, if all handlers removed themselves as a result of handling the\n // event(s)\n Boolean(handlers.size)) {\n _loop_1();\n }\n }, 1);\n}\nfunction emit(ev) {\n queue.push(Object.freeze(__assign({}, ev)));\n drain();\n}\nexports.emit = emit;\nfunction on(fn) {\n if (handlers.has(fn)) {\n return false;\n }\n handlers.add(fn);\n drain();\n return true;\n}\nexports.on = on;\nfunction off(fn) {\n if (handlers.has(fn)) {\n handlers[\"delete\"](fn);\n return true;\n }\n return false;\n}\nexports.off = off;\n//# sourceMappingURL=bus.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2J1cy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0E7QUFDQSxpREFBaUQsT0FBTztBQUN4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCLFdBQVcsR0FBRyxVQUFVLEdBQUcsWUFBWSxHQUFHLGdDQUFnQyxHQUFHLDRCQUE0QixHQUFHLHFCQUFxQixHQUFHLHdCQUF3QixHQUFHLHFCQUFxQjtBQUNwTCxxQkFBcUI7QUFDckIsd0JBQXdCO0FBQ3hCLHFCQUFxQjtBQUNyQiw0QkFBNEI7QUFDNUIsZ0NBQWdDO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrREFBa0QscUJBQXFCO0FBQ3ZFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0Esd0NBQXdDO0FBQ3hDO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2J1cy5qcz84NGM3Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLm9mZiA9IGV4cG9ydHMub24gPSBleHBvcnRzLmVtaXQgPSBleHBvcnRzLlRZUEVfVU5IQU5ETEVEX1JFSkVDVElPTiA9IGV4cG9ydHMuVFlQRV9VTkhBTkRMRURfRVJST1IgPSBleHBvcnRzLlRZUEVfUkVGRlJFU0ggPSBleHBvcnRzLlRZUEVfQlVJTERfRVJST1IgPSBleHBvcnRzLlRZUEVfQlVJTERfT0sgPSB2b2lkIDA7XG5leHBvcnRzLlRZUEVfQlVJTERfT0sgPSAnYnVpbGQtb2snO1xuZXhwb3J0cy5UWVBFX0JVSUxEX0VSUk9SID0gJ2J1aWxkLWVycm9yJztcbmV4cG9ydHMuVFlQRV9SRUZGUkVTSCA9ICdmYXN0LXJlZnJlc2gnO1xuZXhwb3J0cy5UWVBFX1VOSEFORExFRF9FUlJPUiA9ICd1bmhhbmRsZWQtZXJyb3InO1xuZXhwb3J0cy5UWVBFX1VOSEFORExFRF9SRUpFQ1RJT04gPSAndW5oYW5kbGVkLXJlamVjdGlvbic7XG52YXIgaGFuZGxlcnMgPSBuZXcgU2V0KCk7XG52YXIgcXVldWUgPSBbXTtcbmZ1bmN0aW9uIGRyYWluKCkge1xuICAgIC8vIERyYWluaW5nIHNob3VsZCBuZXZlciBoYXBwZW4gc3luY2hyb25vdXNseSBpbiBjYXNlIG11bHRpcGxlIGhhbmRsZXJzIGFyZVxuICAgIC8vIHJlZ2lzdGVyZWQuXG4gICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBfbG9vcF8xID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIGV2ID0gcXVldWUuc2hpZnQoKTtcbiAgICAgICAgICAgIGhhbmRsZXJzLmZvckVhY2goZnVuY3Rpb24gKGhhbmRsZXIpIHsgcmV0dXJuIGhhbmRsZXIoZXYpOyB9KTtcbiAgICAgICAgfTtcbiAgICAgICAgd2hpbGUgKFxuICAgICAgICAvLyBVbnRpbCB3ZSBhcmUgb3V0IG9mIGV2ZW50czpcbiAgICAgICAgQm9vbGVhbihxdWV1ZS5sZW5ndGgpICYmXG4gICAgICAgICAgICAvLyBPciwgaWYgYWxsIGhhbmRsZXJzIHJlbW92ZWQgdGhlbXNlbHZlcyBhcyBhIHJlc3VsdCBvZiBoYW5kbGluZyB0aGVcbiAgICAgICAgICAgIC8vIGV2ZW50KHMpXG4gICAgICAgICAgICBCb29sZWFuKGhhbmRsZXJzLnNpemUpKSB7XG4gICAgICAgICAgICBfbG9vcF8xKCk7XG4gICAgICAgIH1cbiAgICB9LCAxKTtcbn1cbmZ1bmN0aW9uIGVtaXQoZXYpIHtcbiAgICBxdWV1ZS5wdXNoKE9iamVjdC5mcmVlemUoX19hc3NpZ24oe30sIGV2KSkpO1xuICAgIGRyYWluKCk7XG59XG5leHBvcnRzLmVtaXQgPSBlbWl0O1xuZnVuY3Rpb24gb24oZm4pIHtcbiAgICBpZiAoaGFuZGxlcnMuaGFzKGZuKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGhhbmRsZXJzLmFkZChmbik7XG4gICAgZHJhaW4oKTtcbiAgICByZXR1cm4gdHJ1ZTtcbn1cbmV4cG9ydHMub24gPSBvbjtcbmZ1bmN0aW9uIG9mZihmbikge1xuICAgIGlmIChoYW5kbGVycy5oYXMoZm4pKSB7XG4gICAgICAgIGhhbmRsZXJzW1wiZGVsZXRlXCJdKGZuKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cbmV4cG9ydHMub2ZmID0gb2ZmO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YnVzLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/bus.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/CodeFrame/CodeFrame.js": +/*!*********************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/CodeFrame/CodeFrame.js ***! + \*********************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nexports.__esModule = true;\nexports.CodeFrame = void 0;\nvar anser_1 = __importDefault(__webpack_require__(/*! anser */ \"./node_modules/anser/lib/index.js\"));\nvar React = __importStar(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nvar strip_ansi_1 = __importDefault(__webpack_require__(/*! strip-ansi */ \"./node_modules/strip-ansi/index.js\"));\nvar stack_frame_1 = __webpack_require__(/*! ../../helpers/stack-frame */ \"./node_modules/@next/react-dev-overlay/lib/internal/helpers/stack-frame.js\");\nvar CodeFrame = function CodeFrame(_a) {\n var stackFrame = _a.stackFrame, codeFrame = _a.codeFrame;\n // Strip leading spaces out of the code frame:\n var formattedFrame = React.useMemo(function () {\n var lines = codeFrame.split(/\\r?\\n/g);\n var prefixLength = lines\n .map(function (line) { return /^>? +\\d+ +\\| ( *)/.exec((0, strip_ansi_1[\"default\"])(line)); })\n .filter(Boolean)\n .map(function (v) { return v.pop(); })\n .reduce(function (c, n) { return (isNaN(c) ? n.length : Math.min(c, n.length)); }, NaN);\n if (prefixLength > 1) {\n var p_1 = ' '.repeat(prefixLength);\n return lines\n .map(function (line, a) {\n return ~(a = line.indexOf('|'))\n ? line.substring(0, a) + line.substring(a).replace(p_1, '')\n : line;\n })\n .join('\\n');\n }\n return lines.join('\\n');\n }, [codeFrame]);\n var decoded = React.useMemo(function () {\n return anser_1[\"default\"].ansiToJson(formattedFrame, {\n json: true,\n use_classes: true,\n remove_empty: true\n });\n }, [formattedFrame]);\n var open = React.useCallback(function () {\n var _a;\n var params = new URLSearchParams();\n for (var key in stackFrame) {\n params.append(key, ((_a = stackFrame[key]) !== null && _a !== void 0 ? _a : '').toString());\n }\n self\n .fetch(( false || '') + \"/__nextjs_launch-editor?\" + params.toString())\n .then(function () { }, function () {\n // TODO: report error\n });\n }, [stackFrame]);\n // TODO: make the caret absolute\n return (React.createElement(\"div\", { \"data-nextjs-codeframe\": true },\n React.createElement(\"div\", null,\n React.createElement(\"p\", { role: \"link\", onClick: open, tabIndex: 1, title: \"Click to open in your editor\" },\n React.createElement(\"span\", null,\n (0, stack_frame_1.getFrameSource)(stackFrame),\n \" @ \",\n stackFrame.methodName),\n React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 24 24\", fill: \"none\", stroke: \"currentColor\", strokeWidth: \"2\", strokeLinecap: \"round\", strokeLinejoin: \"round\" },\n React.createElement(\"path\", { d: \"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\" }),\n React.createElement(\"polyline\", { points: \"15 3 21 3 21 9\" }),\n React.createElement(\"line\", { x1: \"10\", y1: \"14\", x2: \"21\", y2: \"3\" })))),\n React.createElement(\"pre\", null, decoded.map(function (entry, index) { return (React.createElement(\"span\", { key: \"frame-\" + index, style: __assign({ color: entry.fg ? \"var(--color-\" + entry.fg + \")\" : undefined }, (entry.decoration === 'bold'\n ? { fontWeight: 800 }\n : entry.decoration === 'italic'\n ? { fontStyle: 'italic' }\n : undefined)) }, entry.content)); }))));\n};\nexports.CodeFrame = CodeFrame;\n//# sourceMappingURL=CodeFrame.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvQ29kZUZyYW1lL0NvZGVGcmFtZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0E7QUFDQSxpREFBaUQsT0FBTztBQUN4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQyxvQ0FBb0MsZ0JBQWdCO0FBQ3ZGLENBQUM7QUFDRDtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0EsMENBQTBDLDRCQUE0QjtBQUN0RSxDQUFDO0FBQ0Q7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZDQUE2QztBQUM3QztBQUNBLGtCQUFrQjtBQUNsQixpQkFBaUI7QUFDakIsOEJBQThCLG1CQUFPLENBQUMsZ0RBQU87QUFDN0MseUJBQXlCLG1CQUFPLENBQUMsNENBQU87QUFDeEMsbUNBQW1DLG1CQUFPLENBQUMsc0RBQVk7QUFDdkQsb0JBQW9CLG1CQUFPLENBQUMsNkdBQTJCO0FBQ3ZEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQyxzRUFBc0U7QUFDekc7QUFDQSxnQ0FBZ0MsaUJBQWlCO0FBQ2pELHNDQUFzQyx1REFBdUQ7QUFDN0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLE1BQWtDO0FBQ3RELGlDQUFpQztBQUNqQztBQUNBLFNBQVM7QUFDVCxLQUFLO0FBQ0w7QUFDQSx5Q0FBeUMsK0JBQStCO0FBQ3hFO0FBQ0EsdUNBQXVDLGlGQUFpRjtBQUN4SDtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZDQUE2QyxvS0FBb0s7QUFDak4sa0RBQWtELCtEQUErRDtBQUNqSCxzREFBc0QsMEJBQTBCO0FBQ2hGLGtEQUFrRCx1Q0FBdUM7QUFDekYsK0VBQStFLHNDQUFzQyx5Q0FBeUMsK0RBQStEO0FBQzdOLG9CQUFvQjtBQUNwQjtBQUNBLHdCQUF3QjtBQUN4QixtQ0FBbUMsb0JBQW9CO0FBQ3ZEO0FBQ0EsaUJBQWlCO0FBQ2pCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AbmV4dC9yZWFjdC1kZXYtb3ZlcmxheS9saWIvaW50ZXJuYWwvY29tcG9uZW50cy9Db2RlRnJhbWUvQ29kZUZyYW1lLmpzPzlmY2EiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19hc3NpZ24gPSAodGhpcyAmJiB0aGlzLl9fYXNzaWduKSB8fCBmdW5jdGlvbiAoKSB7XG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKVxuICAgICAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0O1xuICAgIH07XG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59O1xudmFyIF9fY3JlYXRlQmluZGluZyA9ICh0aGlzICYmIHRoaXMuX19jcmVhdGVCaW5kaW5nKSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH0pO1xufSkgOiAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIG9bazJdID0gbVtrXTtcbn0pKTtcbnZhciBfX3NldE1vZHVsZURlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9fc2V0TW9kdWxlRGVmYXVsdCkgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgdikge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBcImRlZmF1bHRcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdiB9KTtcbn0pIDogZnVuY3Rpb24obywgdikge1xuICAgIG9bXCJkZWZhdWx0XCJdID0gdjtcbn0pO1xudmFyIF9faW1wb3J0U3RhciA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnRTdGFyKSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDtcbiAgICB2YXIgcmVzdWx0ID0ge307XG4gICAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrIGluIG1vZCkgaWYgKGsgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChtb2QsIGspKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGspO1xuICAgIF9fc2V0TW9kdWxlRGVmYXVsdChyZXN1bHQsIG1vZCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5Db2RlRnJhbWUgPSB2b2lkIDA7XG52YXIgYW5zZXJfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiYW5zZXJcIikpO1xudmFyIFJlYWN0ID0gX19pbXBvcnRTdGFyKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG52YXIgc3RyaXBfYW5zaV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJzdHJpcC1hbnNpXCIpKTtcbnZhciBzdGFja19mcmFtZV8xID0gcmVxdWlyZShcIi4uLy4uL2hlbHBlcnMvc3RhY2stZnJhbWVcIik7XG52YXIgQ29kZUZyYW1lID0gZnVuY3Rpb24gQ29kZUZyYW1lKF9hKSB7XG4gICAgdmFyIHN0YWNrRnJhbWUgPSBfYS5zdGFja0ZyYW1lLCBjb2RlRnJhbWUgPSBfYS5jb2RlRnJhbWU7XG4gICAgLy8gU3RyaXAgbGVhZGluZyBzcGFjZXMgb3V0IG9mIHRoZSBjb2RlIGZyYW1lOlxuICAgIHZhciBmb3JtYXR0ZWRGcmFtZSA9IFJlYWN0LnVzZU1lbW8oZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgbGluZXMgPSBjb2RlRnJhbWUuc3BsaXQoL1xccj9cXG4vZyk7XG4gICAgICAgIHZhciBwcmVmaXhMZW5ndGggPSBsaW5lc1xuICAgICAgICAgICAgLm1hcChmdW5jdGlvbiAobGluZSkgeyByZXR1cm4gL14+PyArXFxkKyArXFx8ICggKikvLmV4ZWMoKDAsIHN0cmlwX2Fuc2lfMVtcImRlZmF1bHRcIl0pKGxpbmUpKTsgfSlcbiAgICAgICAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgICAgICAgIC5tYXAoZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHYucG9wKCk7IH0pXG4gICAgICAgICAgICAucmVkdWNlKGZ1bmN0aW9uIChjLCBuKSB7IHJldHVybiAoaXNOYU4oYykgPyBuLmxlbmd0aCA6IE1hdGgubWluKGMsIG4ubGVuZ3RoKSk7IH0sIE5hTik7XG4gICAgICAgIGlmIChwcmVmaXhMZW5ndGggPiAxKSB7XG4gICAgICAgICAgICB2YXIgcF8xID0gJyAnLnJlcGVhdChwcmVmaXhMZW5ndGgpO1xuICAgICAgICAgICAgcmV0dXJuIGxpbmVzXG4gICAgICAgICAgICAgICAgLm1hcChmdW5jdGlvbiAobGluZSwgYSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB+KGEgPSBsaW5lLmluZGV4T2YoJ3wnKSlcbiAgICAgICAgICAgICAgICAgICAgPyBsaW5lLnN1YnN0cmluZygwLCBhKSArIGxpbmUuc3Vic3RyaW5nKGEpLnJlcGxhY2UocF8xLCAnJylcbiAgICAgICAgICAgICAgICAgICAgOiBsaW5lO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuam9pbignXFxuJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxpbmVzLmpvaW4oJ1xcbicpO1xuICAgIH0sIFtjb2RlRnJhbWVdKTtcbiAgICB2YXIgZGVjb2RlZCA9IFJlYWN0LnVzZU1lbW8oZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gYW5zZXJfMVtcImRlZmF1bHRcIl0uYW5zaVRvSnNvbihmb3JtYXR0ZWRGcmFtZSwge1xuICAgICAgICAgICAganNvbjogdHJ1ZSxcbiAgICAgICAgICAgIHVzZV9jbGFzc2VzOiB0cnVlLFxuICAgICAgICAgICAgcmVtb3ZlX2VtcHR5OiB0cnVlXG4gICAgICAgIH0pO1xuICAgIH0sIFtmb3JtYXR0ZWRGcmFtZV0pO1xuICAgIHZhciBvcGVuID0gUmVhY3QudXNlQ2FsbGJhY2soZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIHZhciBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG4gICAgICAgIGZvciAodmFyIGtleSBpbiBzdGFja0ZyYW1lKSB7XG4gICAgICAgICAgICBwYXJhbXMuYXBwZW5kKGtleSwgKChfYSA9IHN0YWNrRnJhbWVba2V5XSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJycpLnRvU3RyaW5nKCkpO1xuICAgICAgICB9XG4gICAgICAgIHNlbGZcbiAgICAgICAgICAgIC5mZXRjaCgocHJvY2Vzcy5lbnYuX19ORVhUX1JPVVRFUl9CQVNFUEFUSCB8fCAnJykgKyBcIi9fX25leHRqc19sYXVuY2gtZWRpdG9yP1wiICsgcGFyYW1zLnRvU3RyaW5nKCkpXG4gICAgICAgICAgICAudGhlbihmdW5jdGlvbiAoKSB7IH0sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIC8vIFRPRE86IHJlcG9ydCBlcnJvclxuICAgICAgICB9KTtcbiAgICB9LCBbc3RhY2tGcmFtZV0pO1xuICAgIC8vIFRPRE86IG1ha2UgdGhlIGNhcmV0IGFic29sdXRlXG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgXCJkYXRhLW5leHRqcy1jb2RlZnJhbWVcIjogdHJ1ZSB9LFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIG51bGwsXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwicFwiLCB7IHJvbGU6IFwibGlua1wiLCBvbkNsaWNrOiBvcGVuLCB0YWJJbmRleDogMSwgdGl0bGU6IFwiQ2xpY2sgdG8gb3BlbiBpbiB5b3VyIGVkaXRvclwiIH0sXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwgbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgKDAsIHN0YWNrX2ZyYW1lXzEuZ2V0RnJhbWVTb3VyY2UpKHN0YWNrRnJhbWUpLFxuICAgICAgICAgICAgICAgICAgICBcIiBAIFwiLFxuICAgICAgICAgICAgICAgICAgICBzdGFja0ZyYW1lLm1ldGhvZE5hbWUpLFxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgeyB4bWxuczogXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLCB2aWV3Qm94OiBcIjAgMCAyNCAyNFwiLCBmaWxsOiBcIm5vbmVcIiwgc3Ryb2tlOiBcImN1cnJlbnRDb2xvclwiLCBzdHJva2VXaWR0aDogXCIyXCIsIHN0cm9rZUxpbmVjYXA6IFwicm91bmRcIiwgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIiB9LFxuICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7IGQ6IFwiTTE4IDEzdjZhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDZcIiB9KSxcbiAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInBvbHlsaW5lXCIsIHsgcG9pbnRzOiBcIjE1IDMgMjEgMyAyMSA5XCIgfSksXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJsaW5lXCIsIHsgeDE6IFwiMTBcIiwgeTE6IFwiMTRcIiwgeDI6IFwiMjFcIiwgeTI6IFwiM1wiIH0pKSkpLFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwicHJlXCIsIG51bGwsIGRlY29kZWQubWFwKGZ1bmN0aW9uIChlbnRyeSwgaW5kZXgpIHsgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7IGtleTogXCJmcmFtZS1cIiArIGluZGV4LCBzdHlsZTogX19hc3NpZ24oeyBjb2xvcjogZW50cnkuZmcgPyBcInZhcigtLWNvbG9yLVwiICsgZW50cnkuZmcgKyBcIilcIiA6IHVuZGVmaW5lZCB9LCAoZW50cnkuZGVjb3JhdGlvbiA9PT0gJ2JvbGQnXG4gICAgICAgICAgICAgICAgPyB7IGZvbnRXZWlnaHQ6IDgwMCB9XG4gICAgICAgICAgICAgICAgOiBlbnRyeS5kZWNvcmF0aW9uID09PSAnaXRhbGljJ1xuICAgICAgICAgICAgICAgICAgICA/IHsgZm9udFN0eWxlOiAnaXRhbGljJyB9XG4gICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkKSkgfSwgZW50cnkuY29udGVudCkpOyB9KSkpKTtcbn07XG5leHBvcnRzLkNvZGVGcmFtZSA9IENvZGVGcmFtZTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUNvZGVGcmFtZS5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/CodeFrame/CodeFrame.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/CodeFrame/index.js": +/*!*****************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/CodeFrame/index.js ***! + \*****************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nexports.__esModule = true;\nexports.CodeFrame = void 0;\nvar CodeFrame_1 = __webpack_require__(/*! ./CodeFrame */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/CodeFrame/CodeFrame.js\");\n__createBinding(exports, CodeFrame_1, \"CodeFrame\");\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvQ29kZUZyYW1lL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQTtBQUNBLG1DQUFtQyxvQ0FBb0MsZ0JBQWdCO0FBQ3ZGLENBQUM7QUFDRDtBQUNBO0FBQ0EsQ0FBQztBQUNELGtCQUFrQjtBQUNsQixpQkFBaUI7QUFDakIsa0JBQWtCLG1CQUFPLENBQUMsMEdBQWE7QUFDdkM7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvQ29kZUZyYW1lL2luZGV4LmpzP2E0MjUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19jcmVhdGVCaW5kaW5nID0gKHRoaXMgJiYgdGhpcy5fX2NyZWF0ZUJpbmRpbmcpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfSk7XG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgb1trMl0gPSBtW2tdO1xufSkpO1xuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHMuQ29kZUZyYW1lID0gdm9pZCAwO1xudmFyIENvZGVGcmFtZV8xID0gcmVxdWlyZShcIi4vQ29kZUZyYW1lXCIpO1xuX19jcmVhdGVCaW5kaW5nKGV4cG9ydHMsIENvZGVGcmFtZV8xLCBcIkNvZGVGcmFtZVwiKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/CodeFrame/index.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/CodeFrame/styles.js": +/*!******************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/CodeFrame/styles.js ***! + \******************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nexports.__esModule = true;\nexports.styles = void 0;\nvar noop_template_1 = __webpack_require__(/*! ../../helpers/noop-template */ \"./node_modules/@next/react-dev-overlay/lib/internal/helpers/noop-template.js\");\nvar styles = (0, noop_template_1.noop)(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\n [data-nextjs-codeframe] {\\n overflow: auto;\\n border-radius: var(--size-gap-half);\\n background-color: var(--color-ansi-bg);\\n color: var(--color-ansi-fg);\\n }\\n [data-nextjs-codeframe]::selection,\\n [data-nextjs-codeframe] *::selection {\\n background-color: var(--color-ansi-selection);\\n }\\n [data-nextjs-codeframe] * {\\n color: inherit;\\n background-color: transparent;\\n font-family: var(--font-stack-monospace);\\n }\\n\\n [data-nextjs-codeframe] > * {\\n margin: 0;\\n padding: calc(var(--size-gap) + var(--size-gap-half))\\n calc(var(--size-gap-double) + var(--size-gap-half));\\n }\\n [data-nextjs-codeframe] > div {\\n display: inline-block;\\n width: auto;\\n min-width: 100%;\\n border-bottom: 1px solid var(--color-ansi-bright-black);\\n }\\n [data-nextjs-codeframe] > div > p {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n cursor: pointer;\\n margin: 0;\\n }\\n [data-nextjs-codeframe] > div > p:hover {\\n text-decoration: underline dotted;\\n }\\n [data-nextjs-codeframe] div > p > svg {\\n width: auto;\\n height: 1em;\\n margin-left: 8px;\\n }\\n [data-nextjs-codeframe] div > pre {\\n overflow: hidden;\\n display: inline-block;\\n }\\n\"], [\"\\n [data-nextjs-codeframe] {\\n overflow: auto;\\n border-radius: var(--size-gap-half);\\n background-color: var(--color-ansi-bg);\\n color: var(--color-ansi-fg);\\n }\\n [data-nextjs-codeframe]::selection,\\n [data-nextjs-codeframe] *::selection {\\n background-color: var(--color-ansi-selection);\\n }\\n [data-nextjs-codeframe] * {\\n color: inherit;\\n background-color: transparent;\\n font-family: var(--font-stack-monospace);\\n }\\n\\n [data-nextjs-codeframe] > * {\\n margin: 0;\\n padding: calc(var(--size-gap) + var(--size-gap-half))\\n calc(var(--size-gap-double) + var(--size-gap-half));\\n }\\n [data-nextjs-codeframe] > div {\\n display: inline-block;\\n width: auto;\\n min-width: 100%;\\n border-bottom: 1px solid var(--color-ansi-bright-black);\\n }\\n [data-nextjs-codeframe] > div > p {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n cursor: pointer;\\n margin: 0;\\n }\\n [data-nextjs-codeframe] > div > p:hover {\\n text-decoration: underline dotted;\\n }\\n [data-nextjs-codeframe] div > p > svg {\\n width: auto;\\n height: 1em;\\n margin-left: 8px;\\n }\\n [data-nextjs-codeframe] div > pre {\\n overflow: hidden;\\n display: inline-block;\\n }\\n\"])));\nexports.styles = styles;\nvar templateObject_1;\n//# sourceMappingURL=styles.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvQ29kZUZyYW1lL3N0eWxlcy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0EsaUNBQWlDLHVDQUF1QyxZQUFZLEtBQUssT0FBTztBQUNoRztBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCLGNBQWM7QUFDZCxzQkFBc0IsbUJBQU8sQ0FBQyxpSEFBNkI7QUFDM0QsbUlBQW1JLHFCQUFxQiwwQ0FBMEMsNkNBQTZDLGtDQUFrQyxLQUFLLGlGQUFpRixvREFBb0QsS0FBSywrQkFBK0IscUJBQXFCLG9DQUFvQywrQ0FBK0MsS0FBSyxtQ0FBbUMsZ0JBQWdCLHVIQUF1SCxLQUFLLG1DQUFtQyw0QkFBNEIsa0JBQWtCLHNCQUFzQiw4REFBOEQsS0FBSyx1Q0FBdUMsb0JBQW9CLDBCQUEwQixxQ0FBcUMsc0JBQXNCLGdCQUFnQixLQUFLLDZDQUE2Qyx3Q0FBd0MsS0FBSywyQ0FBMkMsa0JBQWtCLGtCQUFrQix1QkFBdUIsS0FBSyx1Q0FBdUMsdUJBQXVCLDRCQUE0QixLQUFLLHFDQUFxQyxxQkFBcUIsMENBQTBDLDZDQUE2QyxrQ0FBa0MsS0FBSyxpRkFBaUYsb0RBQW9ELEtBQUssK0JBQStCLHFCQUFxQixvQ0FBb0MsK0NBQStDLEtBQUssbUNBQW1DLGdCQUFnQix1SEFBdUgsS0FBSyxtQ0FBbUMsNEJBQTRCLGtCQUFrQixzQkFBc0IsOERBQThELEtBQUssdUNBQXVDLG9CQUFvQiwwQkFBMEIscUNBQXFDLHNCQUFzQixnQkFBZ0IsS0FBSyw2Q0FBNkMsd0NBQXdDLEtBQUssMkNBQTJDLGtCQUFrQixrQkFBa0IsdUJBQXVCLEtBQUssdUNBQXVDLHVCQUF1Qiw0QkFBNEIsS0FBSztBQUM5akYsY0FBYztBQUNkO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BuZXh0L3JlYWN0LWRldi1vdmVybGF5L2xpYi9pbnRlcm5hbC9jb21wb25lbnRzL0NvZGVGcmFtZS9zdHlsZXMuanM/NDk1MyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX21ha2VUZW1wbGF0ZU9iamVjdCA9ICh0aGlzICYmIHRoaXMuX19tYWtlVGVtcGxhdGVPYmplY3QpIHx8IGZ1bmN0aW9uIChjb29rZWQsIHJhdykge1xuICAgIGlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvb2tlZCwgXCJyYXdcIiwgeyB2YWx1ZTogcmF3IH0pOyB9IGVsc2UgeyBjb29rZWQucmF3ID0gcmF3OyB9XG4gICAgcmV0dXJuIGNvb2tlZDtcbn07XG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5zdHlsZXMgPSB2b2lkIDA7XG52YXIgbm9vcF90ZW1wbGF0ZV8xID0gcmVxdWlyZShcIi4uLy4uL2hlbHBlcnMvbm9vcC10ZW1wbGF0ZVwiKTtcbnZhciBzdHlsZXMgPSAoMCwgbm9vcF90ZW1wbGF0ZV8xLm5vb3ApKHRlbXBsYXRlT2JqZWN0XzEgfHwgKHRlbXBsYXRlT2JqZWN0XzEgPSBfX21ha2VUZW1wbGF0ZU9iamVjdChbXCJcXG4gIFtkYXRhLW5leHRqcy1jb2RlZnJhbWVdIHtcXG4gICAgb3ZlcmZsb3c6IGF1dG87XFxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXNpemUtZ2FwLWhhbGYpO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLWJnKTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktZmcpO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZV06OnNlbGVjdGlvbixcXG4gIFtkYXRhLW5leHRqcy1jb2RlZnJhbWVdICo6OnNlbGVjdGlvbiB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktc2VsZWN0aW9uKTtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1jb2RlZnJhbWVdICoge1xcbiAgICBjb2xvcjogaW5oZXJpdDtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXN0YWNrLW1vbm9zcGFjZSk7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lXSA+ICoge1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IGNhbGModmFyKC0tc2l6ZS1nYXApICsgdmFyKC0tc2l6ZS1nYXAtaGFsZikpXFxuICAgICAgY2FsYyh2YXIoLS1zaXplLWdhcC1kb3VibGUpICsgdmFyKC0tc2l6ZS1nYXAtaGFsZikpO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZV0gPiBkaXYge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgICBtaW4td2lkdGg6IDEwMCU7XFxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jb2xvci1hbnNpLWJyaWdodC1ibGFjayk7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lXSA+IGRpdiA+IHAge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgbWFyZ2luOiAwO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZV0gPiBkaXYgPiBwOmhvdmVyIHtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZV0gZGl2ID4gcCA+IHN2ZyB7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgICBoZWlnaHQ6IDFlbTtcXG4gICAgbWFyZ2luLWxlZnQ6IDhweDtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1jb2RlZnJhbWVdIGRpdiA+IHByZSB7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIH1cXG5cIl0sIFtcIlxcbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZV0ge1xcbiAgICBvdmVyZmxvdzogYXV0bztcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2l6ZS1nYXAtaGFsZik7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktYmcpO1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItYW5zaS1mZyk7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lXTo6c2VsZWN0aW9uLFxcbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZV0gKjo6c2VsZWN0aW9uIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYW5zaS1zZWxlY3Rpb24pO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZV0gKiB7XFxuICAgIGNvbG9yOiBpbmhlcml0O1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc3RhY2stbW9ub3NwYWNlKTtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1jb2RlZnJhbWVdID4gKiB7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogY2FsYyh2YXIoLS1zaXplLWdhcCkgKyB2YXIoLS1zaXplLWdhcC1oYWxmKSlcXG4gICAgICBjYWxjKHZhcigtLXNpemUtZ2FwLWRvdWJsZSkgKyB2YXIoLS1zaXplLWdhcC1oYWxmKSk7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lXSA+IGRpdiB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgd2lkdGg6IGF1dG87XFxuICAgIG1pbi13aWR0aDogMTAwJTtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWFuc2ktYnJpZ2h0LWJsYWNrKTtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1jb2RlZnJhbWVdID4gZGl2ID4gcCB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICBtYXJnaW46IDA7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lXSA+IGRpdiA+IHA6aG92ZXIge1xcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lXSBkaXYgPiBwID4gc3ZnIHtcXG4gICAgd2lkdGg6IGF1dG87XFxuICAgIGhlaWdodDogMWVtO1xcbiAgICBtYXJnaW4tbGVmdDogOHB4O1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZV0gZGl2ID4gcHJlIHtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgfVxcblwiXSkpKTtcbmV4cG9ydHMuc3R5bGVzID0gc3R5bGVzO1xudmFyIHRlbXBsYXRlT2JqZWN0XzE7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1zdHlsZXMuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/CodeFrame/styles.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/Dialog.js": +/*!***************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/Dialog.js ***! + \***************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nexports.__esModule = true;\nexports.Dialog = void 0;\nvar React = __importStar(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nvar use_on_click_outside_1 = __webpack_require__(/*! ../../hooks/use-on-click-outside */ \"./node_modules/@next/react-dev-overlay/lib/internal/hooks/use-on-click-outside.js\");\nvar Dialog = function Dialog(_a) {\n var children = _a.children, type = _a.type, onClose = _a.onClose, props = __rest(_a, [\"children\", \"type\", \"onClose\"]);\n var _b = __read(React.useState(null), 2), dialog = _b[0], setDialog = _b[1];\n var onDialog = React.useCallback(function (node) {\n setDialog(node);\n }, []);\n (0, use_on_click_outside_1.useOnClickOutside)(dialog, onClose);\n // Make HTMLElements with `role=link` accessible to be triggered by the\n // keyboard, i.e. [Enter].\n React.useEffect(function () {\n if (dialog == null) {\n return;\n }\n var root = dialog.getRootNode();\n // Always true, but we do this for TypeScript:\n if (!(root instanceof ShadowRoot)) {\n return;\n }\n var shadowRoot = root;\n function handler(e) {\n var el = shadowRoot.activeElement;\n if (e.key === 'Enter' &&\n el instanceof HTMLElement &&\n el.getAttribute('role') === 'link') {\n e.preventDefault();\n e.stopPropagation();\n el.click();\n }\n }\n shadowRoot.addEventListener('keydown', handler);\n return function () {\n return shadowRoot.removeEventListener('keydown', handler);\n };\n }, [dialog]);\n return (React.createElement(\"div\", { ref: onDialog, \"data-nextjs-dialog\": true, tabIndex: -1, role: \"dialog\", \"aria-labelledby\": props['aria-labelledby'], \"aria-describedby\": props['aria-describedby'], \"aria-modal\": \"true\" },\n React.createElement(\"div\", { \"data-nextjs-dialog-banner\": true, className: \"banner-\" + type }),\n children));\n};\nexports.Dialog = Dialog;\n//# sourceMappingURL=Dialog.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvRGlhbG9nL0RpYWxvZy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0E7QUFDQSxtQ0FBbUMsb0NBQW9DLGdCQUFnQjtBQUN2RixDQUFDO0FBQ0Q7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBLDBDQUEwQyw0QkFBNEI7QUFDdEUsQ0FBQztBQUNEO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZEQUE2RCxjQUFjO0FBQzNFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixNQUFNO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQixjQUFjO0FBQ2QseUJBQXlCLG1CQUFPLENBQUMsNENBQU87QUFDeEMsNkJBQTZCLG1CQUFPLENBQUMsMkhBQWtDO0FBQ3ZFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLHlDQUF5QywyTEFBMkw7QUFDcE8scUNBQXFDLGdFQUFnRTtBQUNyRztBQUNBO0FBQ0EsY0FBYztBQUNkIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AbmV4dC9yZWFjdC1kZXYtb3ZlcmxheS9saWIvaW50ZXJuYWwvY29tcG9uZW50cy9EaWFsb2cvRGlhbG9nLmpzPzY0MGIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19jcmVhdGVCaW5kaW5nID0gKHRoaXMgJiYgdGhpcy5fX2NyZWF0ZUJpbmRpbmcpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfSk7XG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgb1trMl0gPSBtW2tdO1xufSkpO1xudmFyIF9fc2V0TW9kdWxlRGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19zZXRNb2R1bGVEZWZhdWx0KSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCB2KSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIFwiZGVmYXVsdFwiLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2IH0pO1xufSkgOiBmdW5jdGlvbihvLCB2KSB7XG4gICAgb1tcImRlZmF1bHRcIl0gPSB2O1xufSk7XG52YXIgX19pbXBvcnRTdGFyID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydFN0YXIpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSByZXR1cm4gbW9kO1xuICAgIHZhciByZXN1bHQgPSB7fTtcbiAgICBpZiAobW9kICE9IG51bGwpIGZvciAodmFyIGsgaW4gbW9kKSBpZiAoayAhPT0gXCJkZWZhdWx0XCIgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG1vZCwgaykpIF9fY3JlYXRlQmluZGluZyhyZXN1bHQsIG1vZCwgayk7XG4gICAgX19zZXRNb2R1bGVEZWZhdWx0KHJlc3VsdCwgbW9kKTtcbiAgICByZXR1cm4gcmVzdWx0O1xufTtcbnZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbnZhciBfX3JlYWQgPSAodGhpcyAmJiB0aGlzLl9fcmVhZCkgfHwgZnVuY3Rpb24gKG8sIG4pIHtcbiAgICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07XG4gICAgaWYgKCFtKSByZXR1cm4gbztcbiAgICB2YXIgaSA9IG0uY2FsbChvKSwgciwgYXIgPSBbXSwgZTtcbiAgICB0cnkge1xuICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycm9yKSB7IGUgPSB7IGVycm9yOiBlcnJvciB9OyB9XG4gICAgZmluYWxseSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVtcInJldHVyblwiXSkpIG0uY2FsbChpKTtcbiAgICAgICAgfVxuICAgICAgICBmaW5hbGx5IHsgaWYgKGUpIHRocm93IGUuZXJyb3I7IH1cbiAgICB9XG4gICAgcmV0dXJuIGFyO1xufTtcbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLkRpYWxvZyA9IHZvaWQgMDtcbnZhciBSZWFjdCA9IF9faW1wb3J0U3RhcihyZXF1aXJlKFwicmVhY3RcIikpO1xudmFyIHVzZV9vbl9jbGlja19vdXRzaWRlXzEgPSByZXF1aXJlKFwiLi4vLi4vaG9va3MvdXNlLW9uLWNsaWNrLW91dHNpZGVcIik7XG52YXIgRGlhbG9nID0gZnVuY3Rpb24gRGlhbG9nKF9hKSB7XG4gICAgdmFyIGNoaWxkcmVuID0gX2EuY2hpbGRyZW4sIHR5cGUgPSBfYS50eXBlLCBvbkNsb3NlID0gX2Eub25DbG9zZSwgcHJvcHMgPSBfX3Jlc3QoX2EsIFtcImNoaWxkcmVuXCIsIFwidHlwZVwiLCBcIm9uQ2xvc2VcIl0pO1xuICAgIHZhciBfYiA9IF9fcmVhZChSZWFjdC51c2VTdGF0ZShudWxsKSwgMiksIGRpYWxvZyA9IF9iWzBdLCBzZXREaWFsb2cgPSBfYlsxXTtcbiAgICB2YXIgb25EaWFsb2cgPSBSZWFjdC51c2VDYWxsYmFjayhmdW5jdGlvbiAobm9kZSkge1xuICAgICAgICBzZXREaWFsb2cobm9kZSk7XG4gICAgfSwgW10pO1xuICAgICgwLCB1c2Vfb25fY2xpY2tfb3V0c2lkZV8xLnVzZU9uQ2xpY2tPdXRzaWRlKShkaWFsb2csIG9uQ2xvc2UpO1xuICAgIC8vIE1ha2UgSFRNTEVsZW1lbnRzIHdpdGggYHJvbGU9bGlua2AgYWNjZXNzaWJsZSB0byBiZSB0cmlnZ2VyZWQgYnkgdGhlXG4gICAgLy8ga2V5Ym9hcmQsIGkuZS4gW0VudGVyXS5cbiAgICBSZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoZGlhbG9nID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcm9vdCA9IGRpYWxvZy5nZXRSb290Tm9kZSgpO1xuICAgICAgICAvLyBBbHdheXMgdHJ1ZSwgYnV0IHdlIGRvIHRoaXMgZm9yIFR5cGVTY3JpcHQ6XG4gICAgICAgIGlmICghKHJvb3QgaW5zdGFuY2VvZiBTaGFkb3dSb290KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhciBzaGFkb3dSb290ID0gcm9vdDtcbiAgICAgICAgZnVuY3Rpb24gaGFuZGxlcihlKSB7XG4gICAgICAgICAgICB2YXIgZWwgPSBzaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicgJiZcbiAgICAgICAgICAgICAgICBlbCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ICYmXG4gICAgICAgICAgICAgICAgZWwuZ2V0QXR0cmlidXRlKCdyb2xlJykgPT09ICdsaW5rJykge1xuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIGVsLmNsaWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgc2hhZG93Um9vdC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgaGFuZGxlcik7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gc2hhZG93Um9vdC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgaGFuZGxlcik7XG4gICAgICAgIH07XG4gICAgfSwgW2RpYWxvZ10pO1xuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IHJlZjogb25EaWFsb2csIFwiZGF0YS1uZXh0anMtZGlhbG9nXCI6IHRydWUsIHRhYkluZGV4OiAtMSwgcm9sZTogXCJkaWFsb2dcIiwgXCJhcmlhLWxhYmVsbGVkYnlcIjogcHJvcHNbJ2FyaWEtbGFiZWxsZWRieSddLCBcImFyaWEtZGVzY3JpYmVkYnlcIjogcHJvcHNbJ2FyaWEtZGVzY3JpYmVkYnknXSwgXCJhcmlhLW1vZGFsXCI6IFwidHJ1ZVwiIH0sXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyBcImRhdGEtbmV4dGpzLWRpYWxvZy1iYW5uZXJcIjogdHJ1ZSwgY2xhc3NOYW1lOiBcImJhbm5lci1cIiArIHR5cGUgfSksXG4gICAgICAgIGNoaWxkcmVuKSk7XG59O1xuZXhwb3J0cy5EaWFsb2cgPSBEaWFsb2c7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1EaWFsb2cuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/Dialog.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/DialogBody.js": +/*!*******************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/DialogBody.js ***! + \*******************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nexports.__esModule = true;\nexports.DialogBody = void 0;\nvar React = __importStar(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nvar DialogBody = function DialogBody(_a) {\n var children = _a.children, className = _a.className;\n return (React.createElement(\"div\", { \"data-nextjs-dialog-body\": true, className: className }, children));\n};\nexports.DialogBody = DialogBody;\n//# sourceMappingURL=DialogBody.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvRGlhbG9nL0RpYWxvZ0JvZHkuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBO0FBQ0EsbUNBQW1DLG9DQUFvQyxnQkFBZ0I7QUFDdkYsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQSwwQ0FBMEMsNEJBQTRCO0FBQ3RFLENBQUM7QUFDRDtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQixrQkFBa0I7QUFDbEIseUJBQXlCLG1CQUFPLENBQUMsNENBQU87QUFDeEM7QUFDQTtBQUNBLHlDQUF5Qyx1REFBdUQ7QUFDaEc7QUFDQSxrQkFBa0I7QUFDbEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BuZXh0L3JlYWN0LWRldi1vdmVybGF5L2xpYi9pbnRlcm5hbC9jb21wb25lbnRzL0RpYWxvZy9EaWFsb2dCb2R5LmpzP2Q3NzIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19jcmVhdGVCaW5kaW5nID0gKHRoaXMgJiYgdGhpcy5fX2NyZWF0ZUJpbmRpbmcpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfSk7XG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgb1trMl0gPSBtW2tdO1xufSkpO1xudmFyIF9fc2V0TW9kdWxlRGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19zZXRNb2R1bGVEZWZhdWx0KSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCB2KSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIFwiZGVmYXVsdFwiLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2IH0pO1xufSkgOiBmdW5jdGlvbihvLCB2KSB7XG4gICAgb1tcImRlZmF1bHRcIl0gPSB2O1xufSk7XG52YXIgX19pbXBvcnRTdGFyID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydFN0YXIpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSByZXR1cm4gbW9kO1xuICAgIHZhciByZXN1bHQgPSB7fTtcbiAgICBpZiAobW9kICE9IG51bGwpIGZvciAodmFyIGsgaW4gbW9kKSBpZiAoayAhPT0gXCJkZWZhdWx0XCIgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG1vZCwgaykpIF9fY3JlYXRlQmluZGluZyhyZXN1bHQsIG1vZCwgayk7XG4gICAgX19zZXRNb2R1bGVEZWZhdWx0KHJlc3VsdCwgbW9kKTtcbiAgICByZXR1cm4gcmVzdWx0O1xufTtcbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLkRpYWxvZ0JvZHkgPSB2b2lkIDA7XG52YXIgUmVhY3QgPSBfX2ltcG9ydFN0YXIocmVxdWlyZShcInJlYWN0XCIpKTtcbnZhciBEaWFsb2dCb2R5ID0gZnVuY3Rpb24gRGlhbG9nQm9keShfYSkge1xuICAgIHZhciBjaGlsZHJlbiA9IF9hLmNoaWxkcmVuLCBjbGFzc05hbWUgPSBfYS5jbGFzc05hbWU7XG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgXCJkYXRhLW5leHRqcy1kaWFsb2ctYm9keVwiOiB0cnVlLCBjbGFzc05hbWU6IGNsYXNzTmFtZSB9LCBjaGlsZHJlbikpO1xufTtcbmV4cG9ydHMuRGlhbG9nQm9keSA9IERpYWxvZ0JvZHk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1EaWFsb2dCb2R5LmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/DialogBody.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/DialogContent.js": +/*!**********************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/DialogContent.js ***! + \**********************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nexports.__esModule = true;\nexports.DialogContent = void 0;\nvar React = __importStar(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nvar DialogContent = function DialogContent(_a) {\n var children = _a.children, className = _a.className;\n return (React.createElement(\"div\", { \"data-nextjs-dialog-content\": true, className: className }, children));\n};\nexports.DialogContent = DialogContent;\n//# sourceMappingURL=DialogContent.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvRGlhbG9nL0RpYWxvZ0NvbnRlbnQuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBO0FBQ0EsbUNBQW1DLG9DQUFvQyxnQkFBZ0I7QUFDdkYsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQSwwQ0FBMEMsNEJBQTRCO0FBQ3RFLENBQUM7QUFDRDtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQixxQkFBcUI7QUFDckIseUJBQXlCLG1CQUFPLENBQUMsNENBQU87QUFDeEM7QUFDQTtBQUNBLHlDQUF5QywwREFBMEQ7QUFDbkc7QUFDQSxxQkFBcUI7QUFDckIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BuZXh0L3JlYWN0LWRldi1vdmVybGF5L2xpYi9pbnRlcm5hbC9jb21wb25lbnRzL0RpYWxvZy9EaWFsb2dDb250ZW50LmpzPzk5NGYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19jcmVhdGVCaW5kaW5nID0gKHRoaXMgJiYgdGhpcy5fX2NyZWF0ZUJpbmRpbmcpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfSk7XG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgb1trMl0gPSBtW2tdO1xufSkpO1xudmFyIF9fc2V0TW9kdWxlRGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19zZXRNb2R1bGVEZWZhdWx0KSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCB2KSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIFwiZGVmYXVsdFwiLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2IH0pO1xufSkgOiBmdW5jdGlvbihvLCB2KSB7XG4gICAgb1tcImRlZmF1bHRcIl0gPSB2O1xufSk7XG52YXIgX19pbXBvcnRTdGFyID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydFN0YXIpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSByZXR1cm4gbW9kO1xuICAgIHZhciByZXN1bHQgPSB7fTtcbiAgICBpZiAobW9kICE9IG51bGwpIGZvciAodmFyIGsgaW4gbW9kKSBpZiAoayAhPT0gXCJkZWZhdWx0XCIgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG1vZCwgaykpIF9fY3JlYXRlQmluZGluZyhyZXN1bHQsIG1vZCwgayk7XG4gICAgX19zZXRNb2R1bGVEZWZhdWx0KHJlc3VsdCwgbW9kKTtcbiAgICByZXR1cm4gcmVzdWx0O1xufTtcbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLkRpYWxvZ0NvbnRlbnQgPSB2b2lkIDA7XG52YXIgUmVhY3QgPSBfX2ltcG9ydFN0YXIocmVxdWlyZShcInJlYWN0XCIpKTtcbnZhciBEaWFsb2dDb250ZW50ID0gZnVuY3Rpb24gRGlhbG9nQ29udGVudChfYSkge1xuICAgIHZhciBjaGlsZHJlbiA9IF9hLmNoaWxkcmVuLCBjbGFzc05hbWUgPSBfYS5jbGFzc05hbWU7XG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgXCJkYXRhLW5leHRqcy1kaWFsb2ctY29udGVudFwiOiB0cnVlLCBjbGFzc05hbWU6IGNsYXNzTmFtZSB9LCBjaGlsZHJlbikpO1xufTtcbmV4cG9ydHMuRGlhbG9nQ29udGVudCA9IERpYWxvZ0NvbnRlbnQ7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1EaWFsb2dDb250ZW50LmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/DialogContent.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/DialogHeader.js": +/*!*********************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/DialogHeader.js ***! + \*********************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nexports.__esModule = true;\nexports.DialogHeader = void 0;\nvar React = __importStar(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nvar DialogHeader = function DialogHeader(_a) {\n var children = _a.children, className = _a.className;\n return (React.createElement(\"div\", { \"data-nextjs-dialog-header\": true, className: className }, children));\n};\nexports.DialogHeader = DialogHeader;\n//# sourceMappingURL=DialogHeader.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvRGlhbG9nL0RpYWxvZ0hlYWRlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0E7QUFDQSxtQ0FBbUMsb0NBQW9DLGdCQUFnQjtBQUN2RixDQUFDO0FBQ0Q7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBLDBDQUEwQyw0QkFBNEI7QUFDdEUsQ0FBQztBQUNEO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCLG9CQUFvQjtBQUNwQix5QkFBeUIsbUJBQU8sQ0FBQyw0Q0FBTztBQUN4QztBQUNBO0FBQ0EseUNBQXlDLHlEQUF5RDtBQUNsRztBQUNBLG9CQUFvQjtBQUNwQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvRGlhbG9nL0RpYWxvZ0hlYWRlci5qcz9kNTAwIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9fY3JlYXRlQmluZGluZyA9ICh0aGlzICYmIHRoaXMuX19jcmVhdGVCaW5kaW5nKSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH0pO1xufSkgOiAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIG9bazJdID0gbVtrXTtcbn0pKTtcbnZhciBfX3NldE1vZHVsZURlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9fc2V0TW9kdWxlRGVmYXVsdCkgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgdikge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBcImRlZmF1bHRcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdiB9KTtcbn0pIDogZnVuY3Rpb24obywgdikge1xuICAgIG9bXCJkZWZhdWx0XCJdID0gdjtcbn0pO1xudmFyIF9faW1wb3J0U3RhciA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnRTdGFyKSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDtcbiAgICB2YXIgcmVzdWx0ID0ge307XG4gICAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrIGluIG1vZCkgaWYgKGsgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChtb2QsIGspKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGspO1xuICAgIF9fc2V0TW9kdWxlRGVmYXVsdChyZXN1bHQsIG1vZCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5EaWFsb2dIZWFkZXIgPSB2b2lkIDA7XG52YXIgUmVhY3QgPSBfX2ltcG9ydFN0YXIocmVxdWlyZShcInJlYWN0XCIpKTtcbnZhciBEaWFsb2dIZWFkZXIgPSBmdW5jdGlvbiBEaWFsb2dIZWFkZXIoX2EpIHtcbiAgICB2YXIgY2hpbGRyZW4gPSBfYS5jaGlsZHJlbiwgY2xhc3NOYW1lID0gX2EuY2xhc3NOYW1lO1xuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IFwiZGF0YS1uZXh0anMtZGlhbG9nLWhlYWRlclwiOiB0cnVlLCBjbGFzc05hbWU6IGNsYXNzTmFtZSB9LCBjaGlsZHJlbikpO1xufTtcbmV4cG9ydHMuRGlhbG9nSGVhZGVyID0gRGlhbG9nSGVhZGVyO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RGlhbG9nSGVhZGVyLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/DialogHeader.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/index.js": +/*!**************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/index.js ***! + \**************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nexports.__esModule = true;\nexports.styles = exports.DialogHeader = exports.DialogContent = exports.DialogBody = exports.Dialog = void 0;\nvar Dialog_1 = __webpack_require__(/*! ./Dialog */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/Dialog.js\");\n__createBinding(exports, Dialog_1, \"Dialog\");\nvar DialogBody_1 = __webpack_require__(/*! ./DialogBody */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/DialogBody.js\");\n__createBinding(exports, DialogBody_1, \"DialogBody\");\nvar DialogContent_1 = __webpack_require__(/*! ./DialogContent */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/DialogContent.js\");\n__createBinding(exports, DialogContent_1, \"DialogContent\");\nvar DialogHeader_1 = __webpack_require__(/*! ./DialogHeader */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/DialogHeader.js\");\n__createBinding(exports, DialogHeader_1, \"DialogHeader\");\nvar styles_1 = __webpack_require__(/*! ./styles */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/styles.js\");\n__createBinding(exports, styles_1, \"styles\");\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvRGlhbG9nL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQTtBQUNBLG1DQUFtQyxvQ0FBb0MsZ0JBQWdCO0FBQ3ZGLENBQUM7QUFDRDtBQUNBO0FBQ0EsQ0FBQztBQUNELGtCQUFrQjtBQUNsQixjQUFjLEdBQUcsb0JBQW9CLEdBQUcscUJBQXFCLEdBQUcsa0JBQWtCLEdBQUcsY0FBYztBQUNuRyxlQUFlLG1CQUFPLENBQUMsaUdBQVU7QUFDakM7QUFDQSxtQkFBbUIsbUJBQU8sQ0FBQyx5R0FBYztBQUN6QztBQUNBLHNCQUFzQixtQkFBTyxDQUFDLCtHQUFpQjtBQUMvQztBQUNBLHFCQUFxQixtQkFBTyxDQUFDLDZHQUFnQjtBQUM3QztBQUNBLGVBQWUsbUJBQU8sQ0FBQyxpR0FBVTtBQUNqQztBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AbmV4dC9yZWFjdC1kZXYtb3ZlcmxheS9saWIvaW50ZXJuYWwvY29tcG9uZW50cy9EaWFsb2cvaW5kZXguanM/ZmI3YiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2NyZWF0ZUJpbmRpbmcgPSAodGhpcyAmJiB0aGlzLl9fY3JlYXRlQmluZGluZykgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gbVtrXTsgfSB9KTtcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBvW2syXSA9IG1ba107XG59KSk7XG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5zdHlsZXMgPSBleHBvcnRzLkRpYWxvZ0hlYWRlciA9IGV4cG9ydHMuRGlhbG9nQ29udGVudCA9IGV4cG9ydHMuRGlhbG9nQm9keSA9IGV4cG9ydHMuRGlhbG9nID0gdm9pZCAwO1xudmFyIERpYWxvZ18xID0gcmVxdWlyZShcIi4vRGlhbG9nXCIpO1xuX19jcmVhdGVCaW5kaW5nKGV4cG9ydHMsIERpYWxvZ18xLCBcIkRpYWxvZ1wiKTtcbnZhciBEaWFsb2dCb2R5XzEgPSByZXF1aXJlKFwiLi9EaWFsb2dCb2R5XCIpO1xuX19jcmVhdGVCaW5kaW5nKGV4cG9ydHMsIERpYWxvZ0JvZHlfMSwgXCJEaWFsb2dCb2R5XCIpO1xudmFyIERpYWxvZ0NvbnRlbnRfMSA9IHJlcXVpcmUoXCIuL0RpYWxvZ0NvbnRlbnRcIik7XG5fX2NyZWF0ZUJpbmRpbmcoZXhwb3J0cywgRGlhbG9nQ29udGVudF8xLCBcIkRpYWxvZ0NvbnRlbnRcIik7XG52YXIgRGlhbG9nSGVhZGVyXzEgPSByZXF1aXJlKFwiLi9EaWFsb2dIZWFkZXJcIik7XG5fX2NyZWF0ZUJpbmRpbmcoZXhwb3J0cywgRGlhbG9nSGVhZGVyXzEsIFwiRGlhbG9nSGVhZGVyXCIpO1xudmFyIHN0eWxlc18xID0gcmVxdWlyZShcIi4vc3R5bGVzXCIpO1xuX19jcmVhdGVCaW5kaW5nKGV4cG9ydHMsIHN0eWxlc18xLCBcInN0eWxlc1wiKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/index.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/styles.js": +/*!***************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/styles.js ***! + \***************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nexports.__esModule = true;\nexports.styles = void 0;\nvar noop_template_1 = __webpack_require__(/*! ../../helpers/noop-template */ \"./node_modules/@next/react-dev-overlay/lib/internal/helpers/noop-template.js\");\nvar styles = (0, noop_template_1.noop)(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\n [data-nextjs-dialog] {\\n display: flex;\\n flex-direction: column;\\n width: 100%;\\n margin-right: auto;\\n margin-left: auto;\\n outline: none;\\n background: white;\\n border-radius: var(--size-gap);\\n box-shadow: 0 var(--size-gap-half) var(--size-gap-double)\\n rgba(0, 0, 0, 0.25);\\n max-height: calc(100% - 56px);\\n overflow-y: hidden;\\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] {\\n max-width: 540px;\\n box-shadow: 0 var(--size-gap) var(--size-gap-quad) rgba(0, 0, 0, 0.25);\\n }\\n }\\n\\n @media (min-width: 768px) {\\n [data-nextjs-dialog] {\\n max-width: 720px;\\n }\\n }\\n\\n @media (min-width: 992px) {\\n [data-nextjs-dialog] {\\n max-width: 960px;\\n }\\n }\\n\\n [data-nextjs-dialog-banner] {\\n position: relative;\\n }\\n [data-nextjs-dialog-banner].banner-warning {\\n border-color: var(--color-ansi-yellow);\\n }\\n [data-nextjs-dialog-banner].banner-error {\\n border-color: var(--color-ansi-red);\\n }\\n\\n [data-nextjs-dialog-banner]::after {\\n z-index: 2;\\n content: '';\\n position: absolute;\\n top: 0;\\n right: 0;\\n width: 100%;\\n /* banner width: */\\n border-top-width: var(--size-gap-half);\\n border-bottom-width: 0;\\n border-top-style: solid;\\n border-bottom-style: solid;\\n border-top-color: inherit;\\n border-bottom-color: transparent;\\n }\\n\\n [data-nextjs-dialog-content] {\\n overflow-y: auto;\\n border: none;\\n margin: 0;\\n /* calc(padding + banner width offset) */\\n padding: calc(var(--size-gap-double) + var(--size-gap-half))\\n var(--size-gap-double);\\n height: 100%;\\n display: flex;\\n flex-direction: column;\\n }\\n [data-nextjs-dialog-content] > [data-nextjs-dialog-header] {\\n flex-shrink: 0;\\n margin-bottom: var(--size-gap-double);\\n }\\n [data-nextjs-dialog-content] > [data-nextjs-dialog-body] {\\n position: relative;\\n flex: 1 1 auto;\\n }\\n\"], [\"\\n [data-nextjs-dialog] {\\n display: flex;\\n flex-direction: column;\\n width: 100%;\\n margin-right: auto;\\n margin-left: auto;\\n outline: none;\\n background: white;\\n border-radius: var(--size-gap);\\n box-shadow: 0 var(--size-gap-half) var(--size-gap-double)\\n rgba(0, 0, 0, 0.25);\\n max-height: calc(100% - 56px);\\n overflow-y: hidden;\\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] {\\n max-width: 540px;\\n box-shadow: 0 var(--size-gap) var(--size-gap-quad) rgba(0, 0, 0, 0.25);\\n }\\n }\\n\\n @media (min-width: 768px) {\\n [data-nextjs-dialog] {\\n max-width: 720px;\\n }\\n }\\n\\n @media (min-width: 992px) {\\n [data-nextjs-dialog] {\\n max-width: 960px;\\n }\\n }\\n\\n [data-nextjs-dialog-banner] {\\n position: relative;\\n }\\n [data-nextjs-dialog-banner].banner-warning {\\n border-color: var(--color-ansi-yellow);\\n }\\n [data-nextjs-dialog-banner].banner-error {\\n border-color: var(--color-ansi-red);\\n }\\n\\n [data-nextjs-dialog-banner]::after {\\n z-index: 2;\\n content: '';\\n position: absolute;\\n top: 0;\\n right: 0;\\n width: 100%;\\n /* banner width: */\\n border-top-width: var(--size-gap-half);\\n border-bottom-width: 0;\\n border-top-style: solid;\\n border-bottom-style: solid;\\n border-top-color: inherit;\\n border-bottom-color: transparent;\\n }\\n\\n [data-nextjs-dialog-content] {\\n overflow-y: auto;\\n border: none;\\n margin: 0;\\n /* calc(padding + banner width offset) */\\n padding: calc(var(--size-gap-double) + var(--size-gap-half))\\n var(--size-gap-double);\\n height: 100%;\\n display: flex;\\n flex-direction: column;\\n }\\n [data-nextjs-dialog-content] > [data-nextjs-dialog-header] {\\n flex-shrink: 0;\\n margin-bottom: var(--size-gap-double);\\n }\\n [data-nextjs-dialog-content] > [data-nextjs-dialog-body] {\\n position: relative;\\n flex: 1 1 auto;\\n }\\n\"])));\nexports.styles = styles;\nvar templateObject_1;\n//# sourceMappingURL=styles.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvRGlhbG9nL3N0eWxlcy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0EsaUNBQWlDLHVDQUF1QyxZQUFZLEtBQUssT0FBTztBQUNoRztBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCLGNBQWM7QUFDZCxzQkFBc0IsbUJBQU8sQ0FBQyxpSEFBNkI7QUFDM0QsZ0lBQWdJLG9CQUFvQiw2QkFBNkIsa0JBQWtCLHlCQUF5Qix3QkFBd0Isb0JBQW9CLHdCQUF3QixxQ0FBcUMsMkZBQTJGLG9DQUFvQyx5QkFBeUIsS0FBSyxrQ0FBa0Msb0NBQW9DLHNDQUFzQyxPQUFPLEtBQUssaUNBQWlDLDRCQUE0Qix5QkFBeUIsK0VBQStFLE9BQU8sS0FBSyxpQ0FBaUMsNEJBQTRCLHlCQUF5QixPQUFPLEtBQUssaUNBQWlDLDRCQUE0Qix5QkFBeUIsT0FBTyxLQUFLLG1DQUFtQyx5QkFBeUIsS0FBSyxnREFBZ0QsNkNBQTZDLEtBQUssOENBQThDLDBDQUEwQyxLQUFLLDBDQUEwQyxpQkFBaUIsa0JBQWtCLHlCQUF5QixhQUFhLGVBQWUsa0JBQWtCLHNFQUFzRSw2QkFBNkIsOEJBQThCLGlDQUFpQyxnQ0FBZ0MsdUNBQXVDLEtBQUssb0NBQW9DLHVCQUF1QixtQkFBbUIsZ0JBQWdCLGdKQUFnSixtQkFBbUIsb0JBQW9CLDZCQUE2QixLQUFLLGdFQUFnRSxxQkFBcUIsNENBQTRDLEtBQUssOERBQThELHlCQUF5QixxQkFBcUIsS0FBSyxrQ0FBa0Msb0JBQW9CLDZCQUE2QixrQkFBa0IseUJBQXlCLHdCQUF3QixvQkFBb0Isd0JBQXdCLHFDQUFxQywyRkFBMkYsb0NBQW9DLHlCQUF5QixLQUFLLGtDQUFrQyxvQ0FBb0Msc0NBQXNDLE9BQU8sS0FBSyxpQ0FBaUMsNEJBQTRCLHlCQUF5QiwrRUFBK0UsT0FBTyxLQUFLLGlDQUFpQyw0QkFBNEIseUJBQXlCLE9BQU8sS0FBSyxpQ0FBaUMsNEJBQTRCLHlCQUF5QixPQUFPLEtBQUssbUNBQW1DLHlCQUF5QixLQUFLLGdEQUFnRCw2Q0FBNkMsS0FBSyw4Q0FBOEMsMENBQTBDLEtBQUssMENBQTBDLGlCQUFpQixrQkFBa0IseUJBQXlCLGFBQWEsZUFBZSxrQkFBa0Isc0VBQXNFLDZCQUE2Qiw4QkFBOEIsaUNBQWlDLGdDQUFnQyx1Q0FBdUMsS0FBSyxvQ0FBb0MsdUJBQXVCLG1CQUFtQixnQkFBZ0IsZ0pBQWdKLG1CQUFtQixvQkFBb0IsNkJBQTZCLEtBQUssZ0VBQWdFLHFCQUFxQiw0Q0FBNEMsS0FBSyw4REFBOEQseUJBQXlCLHFCQUFxQixLQUFLO0FBQ2hxSSxjQUFjO0FBQ2Q7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvRGlhbG9nL3N0eWxlcy5qcz9jYWE2Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9fbWFrZVRlbXBsYXRlT2JqZWN0ID0gKHRoaXMgJiYgdGhpcy5fX21ha2VUZW1wbGF0ZU9iamVjdCkgfHwgZnVuY3Rpb24gKGNvb2tlZCwgcmF3KSB7XG4gICAgaWYgKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29va2VkLCBcInJhd1wiLCB7IHZhbHVlOiByYXcgfSk7IH0gZWxzZSB7IGNvb2tlZC5yYXcgPSByYXc7IH1cbiAgICByZXR1cm4gY29va2VkO1xufTtcbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLnN0eWxlcyA9IHZvaWQgMDtcbnZhciBub29wX3RlbXBsYXRlXzEgPSByZXF1aXJlKFwiLi4vLi4vaGVscGVycy9ub29wLXRlbXBsYXRlXCIpO1xudmFyIHN0eWxlcyA9ICgwLCBub29wX3RlbXBsYXRlXzEubm9vcCkodGVtcGxhdGVPYmplY3RfMSB8fCAodGVtcGxhdGVPYmplY3RfMSA9IF9fbWFrZVRlbXBsYXRlT2JqZWN0KFtcIlxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZ10ge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcXG4gICAgb3V0bGluZTogbm9uZTtcXG4gICAgYmFja2dyb3VuZDogd2hpdGU7XFxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXNpemUtZ2FwKTtcXG4gICAgYm94LXNoYWRvdzogMCB2YXIoLS1zaXplLWdhcC1oYWxmKSB2YXIoLS1zaXplLWdhcC1kb3VibGUpXFxuICAgICAgcmdiYSgwLCAwLCAwLCAwLjI1KTtcXG4gICAgbWF4LWhlaWdodDogY2FsYygxMDAlIC0gNTZweCk7XFxuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcXG4gIH1cXG5cXG4gIEBtZWRpYSAobWF4LWhlaWdodDogODEycHgpIHtcXG4gICAgW2RhdGEtbmV4dGpzLWRpYWxvZy1vdmVybGF5XSB7XFxuICAgICAgbWF4LWhlaWdodDogY2FsYygxMDAlIC0gMTVweCk7XFxuICAgIH1cXG4gIH1cXG5cXG4gIEBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkge1xcbiAgICBbZGF0YS1uZXh0anMtZGlhbG9nXSB7XFxuICAgICAgbWF4LXdpZHRoOiA1NDBweDtcXG4gICAgICBib3gtc2hhZG93OiAwIHZhcigtLXNpemUtZ2FwKSB2YXIoLS1zaXplLWdhcC1xdWFkKSByZ2JhKDAsIDAsIDAsIDAuMjUpO1xcbiAgICB9XFxuICB9XFxuXFxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcXG4gICAgW2RhdGEtbmV4dGpzLWRpYWxvZ10ge1xcbiAgICAgIG1heC13aWR0aDogNzIwcHg7XFxuICAgIH1cXG4gIH1cXG5cXG4gIEBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xcbiAgICBbZGF0YS1uZXh0anMtZGlhbG9nXSB7XFxuICAgICAgbWF4LXdpZHRoOiA5NjBweDtcXG4gICAgfVxcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1iYW5uZXJdIHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1iYW5uZXJdLmJhbm5lci13YXJuaW5nIHtcXG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLXllbGxvdyk7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWJhbm5lcl0uYmFubmVyLWVycm9yIHtcXG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLXJlZCk7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWJhbm5lcl06OmFmdGVyIHtcXG4gICAgei1pbmRleDogMjtcXG4gICAgY29udGVudDogJyc7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdG9wOiAwO1xcbiAgICByaWdodDogMDtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIC8qIGJhbm5lciB3aWR0aDogKi9cXG4gICAgYm9yZGVyLXRvcC13aWR0aDogdmFyKC0tc2l6ZS1nYXAtaGFsZik7XFxuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XFxuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcXG4gICAgYm9yZGVyLXRvcC1jb2xvcjogaW5oZXJpdDtcXG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWNvbnRlbnRdIHtcXG4gICAgb3ZlcmZsb3cteTogYXV0bztcXG4gICAgYm9yZGVyOiBub25lO1xcbiAgICBtYXJnaW46IDA7XFxuICAgIC8qIGNhbGMocGFkZGluZyArIGJhbm5lciB3aWR0aCBvZmZzZXQpICovXFxuICAgIHBhZGRpbmc6IGNhbGModmFyKC0tc2l6ZS1nYXAtZG91YmxlKSArIHZhcigtLXNpemUtZ2FwLWhhbGYpKVxcbiAgICAgIHZhcigtLXNpemUtZ2FwLWRvdWJsZSk7XFxuICAgIGhlaWdodDogMTAwJTtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctY29udGVudF0gPiBbZGF0YS1uZXh0anMtZGlhbG9nLWhlYWRlcl0ge1xcbiAgICBmbGV4LXNocmluazogMDtcXG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc2l6ZS1nYXAtZG91YmxlKTtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctY29udGVudF0gPiBbZGF0YS1uZXh0anMtZGlhbG9nLWJvZHldIHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICBmbGV4OiAxIDEgYXV0bztcXG4gIH1cXG5cIl0sIFtcIlxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZ10ge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcXG4gICAgb3V0bGluZTogbm9uZTtcXG4gICAgYmFja2dyb3VuZDogd2hpdGU7XFxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXNpemUtZ2FwKTtcXG4gICAgYm94LXNoYWRvdzogMCB2YXIoLS1zaXplLWdhcC1oYWxmKSB2YXIoLS1zaXplLWdhcC1kb3VibGUpXFxuICAgICAgcmdiYSgwLCAwLCAwLCAwLjI1KTtcXG4gICAgbWF4LWhlaWdodDogY2FsYygxMDAlIC0gNTZweCk7XFxuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcXG4gIH1cXG5cXG4gIEBtZWRpYSAobWF4LWhlaWdodDogODEycHgpIHtcXG4gICAgW2RhdGEtbmV4dGpzLWRpYWxvZy1vdmVybGF5XSB7XFxuICAgICAgbWF4LWhlaWdodDogY2FsYygxMDAlIC0gMTVweCk7XFxuICAgIH1cXG4gIH1cXG5cXG4gIEBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkge1xcbiAgICBbZGF0YS1uZXh0anMtZGlhbG9nXSB7XFxuICAgICAgbWF4LXdpZHRoOiA1NDBweDtcXG4gICAgICBib3gtc2hhZG93OiAwIHZhcigtLXNpemUtZ2FwKSB2YXIoLS1zaXplLWdhcC1xdWFkKSByZ2JhKDAsIDAsIDAsIDAuMjUpO1xcbiAgICB9XFxuICB9XFxuXFxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcXG4gICAgW2RhdGEtbmV4dGpzLWRpYWxvZ10ge1xcbiAgICAgIG1heC13aWR0aDogNzIwcHg7XFxuICAgIH1cXG4gIH1cXG5cXG4gIEBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xcbiAgICBbZGF0YS1uZXh0anMtZGlhbG9nXSB7XFxuICAgICAgbWF4LXdpZHRoOiA5NjBweDtcXG4gICAgfVxcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1iYW5uZXJdIHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1iYW5uZXJdLmJhbm5lci13YXJuaW5nIHtcXG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLXllbGxvdyk7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWJhbm5lcl0uYmFubmVyLWVycm9yIHtcXG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLXJlZCk7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWJhbm5lcl06OmFmdGVyIHtcXG4gICAgei1pbmRleDogMjtcXG4gICAgY29udGVudDogJyc7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdG9wOiAwO1xcbiAgICByaWdodDogMDtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIC8qIGJhbm5lciB3aWR0aDogKi9cXG4gICAgYm9yZGVyLXRvcC13aWR0aDogdmFyKC0tc2l6ZS1nYXAtaGFsZik7XFxuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XFxuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcXG4gICAgYm9yZGVyLXRvcC1jb2xvcjogaW5oZXJpdDtcXG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWNvbnRlbnRdIHtcXG4gICAgb3ZlcmZsb3cteTogYXV0bztcXG4gICAgYm9yZGVyOiBub25lO1xcbiAgICBtYXJnaW46IDA7XFxuICAgIC8qIGNhbGMocGFkZGluZyArIGJhbm5lciB3aWR0aCBvZmZzZXQpICovXFxuICAgIHBhZGRpbmc6IGNhbGModmFyKC0tc2l6ZS1nYXAtZG91YmxlKSArIHZhcigtLXNpemUtZ2FwLWhhbGYpKVxcbiAgICAgIHZhcigtLXNpemUtZ2FwLWRvdWJsZSk7XFxuICAgIGhlaWdodDogMTAwJTtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctY29udGVudF0gPiBbZGF0YS1uZXh0anMtZGlhbG9nLWhlYWRlcl0ge1xcbiAgICBmbGV4LXNocmluazogMDtcXG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc2l6ZS1nYXAtZG91YmxlKTtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctY29udGVudF0gPiBbZGF0YS1uZXh0anMtZGlhbG9nLWJvZHldIHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICBmbGV4OiAxIDEgYXV0bztcXG4gIH1cXG5cIl0pKSk7XG5leHBvcnRzLnN0eWxlcyA9IHN0eWxlcztcbnZhciB0ZW1wbGF0ZU9iamVjdF8xO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c3R5bGVzLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/styles.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/LeftRightDialogHeader/LeftRightDialogHeader.js": +/*!*********************************************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/LeftRightDialogHeader/LeftRightDialogHeader.js ***! + \*********************************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nexports.__esModule = true;\nexports.LeftRightDialogHeader = void 0;\nvar React = __importStar(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nvar LeftRightDialogHeader = function LeftRightDialogHeader(_a) {\n var children = _a.children, className = _a.className, previous = _a.previous, next = _a.next, close = _a.close;\n var buttonLeft = React.useRef(null);\n var buttonRight = React.useRef(null);\n var buttonClose = React.useRef(null);\n var _b = __read(React.useState(null), 2), nav = _b[0], setNav = _b[1];\n var onNav = React.useCallback(function (el) {\n setNav(el);\n }, []);\n React.useEffect(function () {\n if (nav == null) {\n return;\n }\n var root = nav.getRootNode();\n var d = self.document;\n function handler(e) {\n if (e.key === 'ArrowLeft') {\n e.stopPropagation();\n if (buttonLeft.current) {\n buttonLeft.current.focus();\n }\n previous && previous();\n }\n else if (e.key === 'ArrowRight') {\n e.stopPropagation();\n if (buttonRight.current) {\n buttonRight.current.focus();\n }\n next && next();\n }\n else if (e.key === 'Escape') {\n e.stopPropagation();\n if (root instanceof ShadowRoot) {\n var a = root.activeElement;\n if (a && a !== buttonClose.current && a instanceof HTMLElement) {\n a.blur();\n return;\n }\n }\n if (close) {\n close();\n }\n }\n }\n root.addEventListener('keydown', handler);\n if (root !== d) {\n d.addEventListener('keydown', handler);\n }\n return function () {\n root.removeEventListener('keydown', handler);\n if (root !== d) {\n d.removeEventListener('keydown', handler);\n }\n };\n }, [close, nav, next, previous]);\n // Unlock focus for browsers like Firefox, that break all user focus if the\n // currently focused item becomes disabled.\n React.useEffect(function () {\n if (nav == null) {\n return;\n }\n var root = nav.getRootNode();\n // Always true, but we do this for TypeScript:\n if (root instanceof ShadowRoot) {\n var a = root.activeElement;\n if (previous == null) {\n if (buttonLeft.current && a === buttonLeft.current) {\n buttonLeft.current.blur();\n }\n }\n else if (next == null) {\n if (buttonRight.current && a === buttonRight.current) {\n buttonRight.current.blur();\n }\n }\n }\n }, [nav, next, previous]);\n return (React.createElement(\"div\", { \"data-nextjs-dialog-left-right\": true, className: className },\n React.createElement(\"nav\", { ref: onNav },\n React.createElement(\"button\", { ref: buttonLeft, type: \"button\", disabled: previous == null ? true : undefined, \"aria-disabled\": previous == null ? true : undefined, onClick: previous !== null && previous !== void 0 ? previous : undefined },\n React.createElement(\"svg\", { viewBox: \"0 0 14 14\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n React.createElement(\"path\", { d: \"M6.99996 1.16666L1.16663 6.99999L6.99996 12.8333M12.8333 6.99999H1.99996H12.8333Z\", stroke: \"currentColor\", strokeWidth: \"2\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }))),\n React.createElement(\"button\", { ref: buttonRight, type: \"button\", disabled: next == null ? true : undefined, \"aria-disabled\": next == null ? true : undefined, onClick: next !== null && next !== void 0 ? next : undefined },\n React.createElement(\"svg\", { viewBox: \"0 0 14 14\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n React.createElement(\"path\", { d: \"M6.99996 1.16666L12.8333 6.99999L6.99996 12.8333M1.16663 6.99999H12H1.16663Z\", stroke: \"currentColor\", strokeWidth: \"2\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }))),\n \"\\u00A0\",\n children),\n close ? (React.createElement(\"button\", { ref: buttonClose, type: \"button\", onClick: close, \"aria-label\": \"Close\" },\n React.createElement(\"span\", { \"aria-hidden\": \"true\" },\n React.createElement(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n React.createElement(\"path\", { d: \"M18 6L6 18\", stroke: \"currentColor\", strokeWidth: \"2\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }),\n React.createElement(\"path\", { d: \"M6 6L18 18\", stroke: \"currentColor\", strokeWidth: \"2\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }))))) : null));\n};\nexports.LeftRightDialogHeader = LeftRightDialogHeader;\n//# sourceMappingURL=LeftRightDialogHeader.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvTGVmdFJpZ2h0RGlhbG9nSGVhZGVyL0xlZnRSaWdodERpYWxvZ0hlYWRlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0E7QUFDQSxtQ0FBbUMsb0NBQW9DLGdCQUFnQjtBQUN2RixDQUFDO0FBQ0Q7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBLDBDQUEwQyw0QkFBNEI7QUFDdEUsQ0FBQztBQUNEO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsTUFBTTtBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEIsNkJBQTZCO0FBQzdCLHlCQUF5QixtQkFBTyxDQUFDLDRDQUFPO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCx5Q0FBeUMsNkRBQTZEO0FBQ3RHLHFDQUFxQyxZQUFZO0FBQ2pELDRDQUE0QyxnTkFBZ047QUFDNVAsNkNBQTZDLHlFQUF5RTtBQUN0SCxrREFBa0QsbUxBQW1MO0FBQ3JPLDRDQUE0Qyw2TEFBNkw7QUFDek8sNkNBQTZDLHlFQUF5RTtBQUN0SCxrREFBa0QsOEtBQThLO0FBQ2hPO0FBQ0E7QUFDQSxpREFBaUQseUVBQXlFO0FBQzFILDBDQUEwQyx1QkFBdUI7QUFDakUsNkNBQTZDLG9HQUFvRztBQUNqSixrREFBa0QsNEdBQTRHO0FBQzlKLGtEQUFrRCw0R0FBNEc7QUFDOUo7QUFDQSw2QkFBNkI7QUFDN0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BuZXh0L3JlYWN0LWRldi1vdmVybGF5L2xpYi9pbnRlcm5hbC9jb21wb25lbnRzL0xlZnRSaWdodERpYWxvZ0hlYWRlci9MZWZ0UmlnaHREaWFsb2dIZWFkZXIuanM/NjJjNCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2NyZWF0ZUJpbmRpbmcgPSAodGhpcyAmJiB0aGlzLl9fY3JlYXRlQmluZGluZykgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gbVtrXTsgfSB9KTtcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBvW2syXSA9IG1ba107XG59KSk7XG52YXIgX19zZXRNb2R1bGVEZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX3NldE1vZHVsZURlZmF1bHQpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIHYpIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgXCJkZWZhdWx0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7XG59KSA6IGZ1bmN0aW9uKG8sIHYpIHtcbiAgICBvW1wiZGVmYXVsdFwiXSA9IHY7XG59KTtcbnZhciBfX2ltcG9ydFN0YXIgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0U3RhcikgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpIHJldHVybiBtb2Q7XG4gICAgdmFyIHJlc3VsdCA9IHt9O1xuICAgIGlmIChtb2QgIT0gbnVsbCkgZm9yICh2YXIgayBpbiBtb2QpIGlmIChrICE9PSBcImRlZmF1bHRcIiAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobW9kLCBrKSkgX19jcmVhdGVCaW5kaW5nKHJlc3VsdCwgbW9kLCBrKTtcbiAgICBfX3NldE1vZHVsZURlZmF1bHQocmVzdWx0LCBtb2QpO1xuICAgIHJldHVybiByZXN1bHQ7XG59O1xudmFyIF9fcmVhZCA9ICh0aGlzICYmIHRoaXMuX19yZWFkKSB8fCBmdW5jdGlvbiAobywgbikge1xuICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9bU3ltYm9sLml0ZXJhdG9yXTtcbiAgICBpZiAoIW0pIHJldHVybiBvO1xuICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlO1xuICAgIHRyeSB7XG4gICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpO1xuICAgIH1cbiAgICBjYXRjaCAoZXJyb3IpIHsgZSA9IHsgZXJyb3I6IGVycm9yIH07IH1cbiAgICBmaW5hbGx5IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpW1wicmV0dXJuXCJdKSkgbS5jYWxsKGkpO1xuICAgICAgICB9XG4gICAgICAgIGZpbmFsbHkgeyBpZiAoZSkgdGhyb3cgZS5lcnJvcjsgfVxuICAgIH1cbiAgICByZXR1cm4gYXI7XG59O1xuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHMuTGVmdFJpZ2h0RGlhbG9nSGVhZGVyID0gdm9pZCAwO1xudmFyIFJlYWN0ID0gX19pbXBvcnRTdGFyKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG52YXIgTGVmdFJpZ2h0RGlhbG9nSGVhZGVyID0gZnVuY3Rpb24gTGVmdFJpZ2h0RGlhbG9nSGVhZGVyKF9hKSB7XG4gICAgdmFyIGNoaWxkcmVuID0gX2EuY2hpbGRyZW4sIGNsYXNzTmFtZSA9IF9hLmNsYXNzTmFtZSwgcHJldmlvdXMgPSBfYS5wcmV2aW91cywgbmV4dCA9IF9hLm5leHQsIGNsb3NlID0gX2EuY2xvc2U7XG4gICAgdmFyIGJ1dHRvbkxlZnQgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgdmFyIGJ1dHRvblJpZ2h0ID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIHZhciBidXR0b25DbG9zZSA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICB2YXIgX2IgPSBfX3JlYWQoUmVhY3QudXNlU3RhdGUobnVsbCksIDIpLCBuYXYgPSBfYlswXSwgc2V0TmF2ID0gX2JbMV07XG4gICAgdmFyIG9uTmF2ID0gUmVhY3QudXNlQ2FsbGJhY2soZnVuY3Rpb24gKGVsKSB7XG4gICAgICAgIHNldE5hdihlbCk7XG4gICAgfSwgW10pO1xuICAgIFJlYWN0LnVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmIChuYXYgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhciByb290ID0gbmF2LmdldFJvb3ROb2RlKCk7XG4gICAgICAgIHZhciBkID0gc2VsZi5kb2N1bWVudDtcbiAgICAgICAgZnVuY3Rpb24gaGFuZGxlcihlKSB7XG4gICAgICAgICAgICBpZiAoZS5rZXkgPT09ICdBcnJvd0xlZnQnKSB7XG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBpZiAoYnV0dG9uTGVmdC5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvbkxlZnQuY3VycmVudC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwcmV2aW91cyAmJiBwcmV2aW91cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoZS5rZXkgPT09ICdBcnJvd1JpZ2h0Jykge1xuICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgaWYgKGJ1dHRvblJpZ2h0LmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgYnV0dG9uUmlnaHQuY3VycmVudC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBuZXh0ICYmIG5leHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGUua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgaWYgKHJvb3QgaW5zdGFuY2VvZiBTaGFkb3dSb290KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBhID0gcm9vdC5hY3RpdmVFbGVtZW50O1xuICAgICAgICAgICAgICAgICAgICBpZiAoYSAmJiBhICE9PSBidXR0b25DbG9zZS5jdXJyZW50ICYmIGEgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYS5ibHVyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGNsb3NlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNsb3NlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJvb3QuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGhhbmRsZXIpO1xuICAgICAgICBpZiAocm9vdCAhPT0gZCkge1xuICAgICAgICAgICAgZC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgaGFuZGxlcik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJvb3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGhhbmRsZXIpO1xuICAgICAgICAgICAgaWYgKHJvb3QgIT09IGQpIHtcbiAgICAgICAgICAgICAgICBkLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBoYW5kbGVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9LCBbY2xvc2UsIG5hdiwgbmV4dCwgcHJldmlvdXNdKTtcbiAgICAvLyBVbmxvY2sgZm9jdXMgZm9yIGJyb3dzZXJzIGxpa2UgRmlyZWZveCwgdGhhdCBicmVhayBhbGwgdXNlciBmb2N1cyBpZiB0aGVcbiAgICAvLyBjdXJyZW50bHkgZm9jdXNlZCBpdGVtIGJlY29tZXMgZGlzYWJsZWQuXG4gICAgUmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKG5hdiA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHJvb3QgPSBuYXYuZ2V0Um9vdE5vZGUoKTtcbiAgICAgICAgLy8gQWx3YXlzIHRydWUsIGJ1dCB3ZSBkbyB0aGlzIGZvciBUeXBlU2NyaXB0OlxuICAgICAgICBpZiAocm9vdCBpbnN0YW5jZW9mIFNoYWRvd1Jvb3QpIHtcbiAgICAgICAgICAgIHZhciBhID0gcm9vdC5hY3RpdmVFbGVtZW50O1xuICAgICAgICAgICAgaWYgKHByZXZpb3VzID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBpZiAoYnV0dG9uTGVmdC5jdXJyZW50ICYmIGEgPT09IGJ1dHRvbkxlZnQuY3VycmVudCkge1xuICAgICAgICAgICAgICAgICAgICBidXR0b25MZWZ0LmN1cnJlbnQuYmx1cigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKG5leHQgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGlmIChidXR0b25SaWdodC5jdXJyZW50ICYmIGEgPT09IGJ1dHRvblJpZ2h0LmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgYnV0dG9uUmlnaHQuY3VycmVudC5ibHVyKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSwgW25hdiwgbmV4dCwgcHJldmlvdXNdKTtcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyBcImRhdGEtbmV4dGpzLWRpYWxvZy1sZWZ0LXJpZ2h0XCI6IHRydWUsIGNsYXNzTmFtZTogY2xhc3NOYW1lIH0sXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJuYXZcIiwgeyByZWY6IG9uTmF2IH0sXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiYnV0dG9uXCIsIHsgcmVmOiBidXR0b25MZWZ0LCB0eXBlOiBcImJ1dHRvblwiLCBkaXNhYmxlZDogcHJldmlvdXMgPT0gbnVsbCA/IHRydWUgOiB1bmRlZmluZWQsIFwiYXJpYS1kaXNhYmxlZFwiOiBwcmV2aW91cyA9PSBudWxsID8gdHJ1ZSA6IHVuZGVmaW5lZCwgb25DbGljazogcHJldmlvdXMgIT09IG51bGwgJiYgcHJldmlvdXMgIT09IHZvaWQgMCA/IHByZXZpb3VzIDogdW5kZWZpbmVkIH0sXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInN2Z1wiLCB7IHZpZXdCb3g6IFwiMCAwIDE0IDE0XCIsIGZpbGw6IFwibm9uZVwiLCB4bWxuczogXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHsgZDogXCJNNi45OTk5NiAxLjE2NjY2TDEuMTY2NjMgNi45OTk5OUw2Ljk5OTk2IDEyLjgzMzNNMTIuODMzMyA2Ljk5OTk5SDEuOTk5OTZIMTIuODMzM1pcIiwgc3Ryb2tlOiBcImN1cnJlbnRDb2xvclwiLCBzdHJva2VXaWR0aDogXCIyXCIsIHN0cm9rZUxpbmVjYXA6IFwicm91bmRcIiwgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIiB9KSkpLFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImJ1dHRvblwiLCB7IHJlZjogYnV0dG9uUmlnaHQsIHR5cGU6IFwiYnV0dG9uXCIsIGRpc2FibGVkOiBuZXh0ID09IG51bGwgPyB0cnVlIDogdW5kZWZpbmVkLCBcImFyaWEtZGlzYWJsZWRcIjogbmV4dCA9PSBudWxsID8gdHJ1ZSA6IHVuZGVmaW5lZCwgb25DbGljazogbmV4dCAhPT0gbnVsbCAmJiBuZXh0ICE9PSB2b2lkIDAgPyBuZXh0IDogdW5kZWZpbmVkIH0sXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInN2Z1wiLCB7IHZpZXdCb3g6IFwiMCAwIDE0IDE0XCIsIGZpbGw6IFwibm9uZVwiLCB4bWxuczogXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHsgZDogXCJNNi45OTk5NiAxLjE2NjY2TDEyLjgzMzMgNi45OTk5OUw2Ljk5OTk2IDEyLjgzMzNNMS4xNjY2MyA2Ljk5OTk5SDEySDEuMTY2NjNaXCIsIHN0cm9rZTogXCJjdXJyZW50Q29sb3JcIiwgc3Ryb2tlV2lkdGg6IFwiMlwiLCBzdHJva2VMaW5lY2FwOiBcInJvdW5kXCIsIHN0cm9rZUxpbmVqb2luOiBcInJvdW5kXCIgfSkpKSxcbiAgICAgICAgICAgIFwiXFx1MDBBMFwiLFxuICAgICAgICAgICAgY2hpbGRyZW4pLFxuICAgICAgICBjbG9zZSA/IChSZWFjdC5jcmVhdGVFbGVtZW50KFwiYnV0dG9uXCIsIHsgcmVmOiBidXR0b25DbG9zZSwgdHlwZTogXCJidXR0b25cIiwgb25DbGljazogY2xvc2UsIFwiYXJpYS1sYWJlbFwiOiBcIkNsb3NlXCIgfSxcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHsgXCJhcmlhLWhpZGRlblwiOiBcInRydWVcIiB9LFxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgeyB3aWR0aDogXCIyNFwiLCBoZWlnaHQ6IFwiMjRcIiwgdmlld0JveDogXCIwIDAgMjQgMjRcIiwgZmlsbDogXCJub25lXCIsIHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwgeyBkOiBcIk0xOCA2TDYgMThcIiwgc3Ryb2tlOiBcImN1cnJlbnRDb2xvclwiLCBzdHJva2VXaWR0aDogXCIyXCIsIHN0cm9rZUxpbmVjYXA6IFwicm91bmRcIiwgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIiB9KSxcbiAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwgeyBkOiBcIk02IDZMMTggMThcIiwgc3Ryb2tlOiBcImN1cnJlbnRDb2xvclwiLCBzdHJva2VXaWR0aDogXCIyXCIsIHN0cm9rZUxpbmVjYXA6IFwicm91bmRcIiwgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIiB9KSkpKSkgOiBudWxsKSk7XG59O1xuZXhwb3J0cy5MZWZ0UmlnaHREaWFsb2dIZWFkZXIgPSBMZWZ0UmlnaHREaWFsb2dIZWFkZXI7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1MZWZ0UmlnaHREaWFsb2dIZWFkZXIuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/LeftRightDialogHeader/LeftRightDialogHeader.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/LeftRightDialogHeader/index.js": +/*!*****************************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/LeftRightDialogHeader/index.js ***! + \*****************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nexports.__esModule = true;\nexports.styles = exports.LeftRightDialogHeader = void 0;\nvar LeftRightDialogHeader_1 = __webpack_require__(/*! ./LeftRightDialogHeader */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/LeftRightDialogHeader/LeftRightDialogHeader.js\");\n__createBinding(exports, LeftRightDialogHeader_1, \"LeftRightDialogHeader\");\nvar styles_1 = __webpack_require__(/*! ./styles */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/LeftRightDialogHeader/styles.js\");\n__createBinding(exports, styles_1, \"styles\");\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvTGVmdFJpZ2h0RGlhbG9nSGVhZGVyL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQTtBQUNBLG1DQUFtQyxvQ0FBb0MsZ0JBQWdCO0FBQ3ZGLENBQUM7QUFDRDtBQUNBO0FBQ0EsQ0FBQztBQUNELGtCQUFrQjtBQUNsQixjQUFjLEdBQUcsNkJBQTZCO0FBQzlDLDhCQUE4QixtQkFBTyxDQUFDLDhJQUF5QjtBQUMvRDtBQUNBLGVBQWUsbUJBQU8sQ0FBQyxnSEFBVTtBQUNqQztBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AbmV4dC9yZWFjdC1kZXYtb3ZlcmxheS9saWIvaW50ZXJuYWwvY29tcG9uZW50cy9MZWZ0UmlnaHREaWFsb2dIZWFkZXIvaW5kZXguanM/OWNlZCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2NyZWF0ZUJpbmRpbmcgPSAodGhpcyAmJiB0aGlzLl9fY3JlYXRlQmluZGluZykgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gbVtrXTsgfSB9KTtcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBvW2syXSA9IG1ba107XG59KSk7XG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5zdHlsZXMgPSBleHBvcnRzLkxlZnRSaWdodERpYWxvZ0hlYWRlciA9IHZvaWQgMDtcbnZhciBMZWZ0UmlnaHREaWFsb2dIZWFkZXJfMSA9IHJlcXVpcmUoXCIuL0xlZnRSaWdodERpYWxvZ0hlYWRlclwiKTtcbl9fY3JlYXRlQmluZGluZyhleHBvcnRzLCBMZWZ0UmlnaHREaWFsb2dIZWFkZXJfMSwgXCJMZWZ0UmlnaHREaWFsb2dIZWFkZXJcIik7XG52YXIgc3R5bGVzXzEgPSByZXF1aXJlKFwiLi9zdHlsZXNcIik7XG5fX2NyZWF0ZUJpbmRpbmcoZXhwb3J0cywgc3R5bGVzXzEsIFwic3R5bGVzXCIpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/LeftRightDialogHeader/index.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/LeftRightDialogHeader/styles.js": +/*!******************************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/LeftRightDialogHeader/styles.js ***! + \******************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nexports.__esModule = true;\nexports.styles = void 0;\nvar noop_template_1 = __webpack_require__(/*! ../../helpers/noop-template */ \"./node_modules/@next/react-dev-overlay/lib/internal/helpers/noop-template.js\");\nvar styles = (0, noop_template_1.noop)(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\n [data-nextjs-dialog-left-right] {\\n display: flex;\\n flex-direction: row;\\n align-content: center;\\n align-items: center;\\n justify-content: space-between;\\n }\\n [data-nextjs-dialog-left-right] > nav > button {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n\\n width: calc(var(--size-gap-double) + var(--size-gap));\\n height: calc(var(--size-gap-double) + var(--size-gap));\\n font-size: 0;\\n border: none;\\n background-color: rgba(255, 85, 85, 0.1);\\n color: var(--color-ansi-red);\\n cursor: pointer;\\n transition: background-color 0.25s ease;\\n }\\n [data-nextjs-dialog-left-right] > nav > button > svg {\\n width: auto;\\n height: calc(var(--size-gap) + var(--size-gap-half));\\n }\\n [data-nextjs-dialog-left-right] > nav > button:hover {\\n background-color: rgba(255, 85, 85, 0.2);\\n }\\n [data-nextjs-dialog-left-right] > nav > button:disabled {\\n background-color: rgba(255, 85, 85, 0.1);\\n color: rgba(255, 85, 85, 0.4);\\n cursor: not-allowed;\\n }\\n\\n [data-nextjs-dialog-left-right] > nav > button:first-of-type {\\n border-radius: var(--size-gap-half) 0 0 var(--size-gap-half);\\n margin-right: 1px;\\n }\\n [data-nextjs-dialog-left-right] > nav > button:last-of-type {\\n border-radius: 0 var(--size-gap-half) var(--size-gap-half) 0;\\n }\\n\\n [data-nextjs-dialog-left-right] > button:last-of-type {\\n border: 0;\\n padding: 0;\\n\\n background-color: transparent;\\n appearance: none;\\n\\n opacity: 0.4;\\n transition: opacity 0.25s ease;\\n }\\n [data-nextjs-dialog-left-right] > button:last-of-type:hover {\\n opacity: 0.7;\\n }\\n\"], [\"\\n [data-nextjs-dialog-left-right] {\\n display: flex;\\n flex-direction: row;\\n align-content: center;\\n align-items: center;\\n justify-content: space-between;\\n }\\n [data-nextjs-dialog-left-right] > nav > button {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n\\n width: calc(var(--size-gap-double) + var(--size-gap));\\n height: calc(var(--size-gap-double) + var(--size-gap));\\n font-size: 0;\\n border: none;\\n background-color: rgba(255, 85, 85, 0.1);\\n color: var(--color-ansi-red);\\n cursor: pointer;\\n transition: background-color 0.25s ease;\\n }\\n [data-nextjs-dialog-left-right] > nav > button > svg {\\n width: auto;\\n height: calc(var(--size-gap) + var(--size-gap-half));\\n }\\n [data-nextjs-dialog-left-right] > nav > button:hover {\\n background-color: rgba(255, 85, 85, 0.2);\\n }\\n [data-nextjs-dialog-left-right] > nav > button:disabled {\\n background-color: rgba(255, 85, 85, 0.1);\\n color: rgba(255, 85, 85, 0.4);\\n cursor: not-allowed;\\n }\\n\\n [data-nextjs-dialog-left-right] > nav > button:first-of-type {\\n border-radius: var(--size-gap-half) 0 0 var(--size-gap-half);\\n margin-right: 1px;\\n }\\n [data-nextjs-dialog-left-right] > nav > button:last-of-type {\\n border-radius: 0 var(--size-gap-half) var(--size-gap-half) 0;\\n }\\n\\n [data-nextjs-dialog-left-right] > button:last-of-type {\\n border: 0;\\n padding: 0;\\n\\n background-color: transparent;\\n appearance: none;\\n\\n opacity: 0.4;\\n transition: opacity 0.25s ease;\\n }\\n [data-nextjs-dialog-left-right] > button:last-of-type:hover {\\n opacity: 0.7;\\n }\\n\"])));\nexports.styles = styles;\nvar templateObject_1;\n//# sourceMappingURL=styles.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvTGVmdFJpZ2h0RGlhbG9nSGVhZGVyL3N0eWxlcy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0EsaUNBQWlDLHVDQUF1QyxZQUFZLEtBQUssT0FBTztBQUNoRztBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCLGNBQWM7QUFDZCxzQkFBc0IsbUJBQU8sQ0FBQyxpSEFBNkI7QUFDM0QsMklBQTJJLG9CQUFvQiwwQkFBMEIsNEJBQTRCLDBCQUEwQixxQ0FBcUMsS0FBSyxvREFBb0QsMkJBQTJCLDBCQUEwQiw4QkFBOEIsOERBQThELDZEQUE2RCxtQkFBbUIsbUJBQW1CLCtDQUErQyxtQ0FBbUMsc0JBQXNCLDhDQUE4QyxLQUFLLDBEQUEwRCxrQkFBa0IsMkRBQTJELEtBQUssMERBQTBELCtDQUErQyxLQUFLLDZEQUE2RCwrQ0FBK0Msb0NBQW9DLDBCQUEwQixLQUFLLG9FQUFvRSxtRUFBbUUsd0JBQXdCLEtBQUssaUVBQWlFLG1FQUFtRSxLQUFLLDZEQUE2RCxnQkFBZ0IsaUJBQWlCLHNDQUFzQyx1QkFBdUIscUJBQXFCLHFDQUFxQyxLQUFLLGlFQUFpRSxtQkFBbUIsS0FBSyw2Q0FBNkMsb0JBQW9CLDBCQUEwQiw0QkFBNEIsMEJBQTBCLHFDQUFxQyxLQUFLLG9EQUFvRCwyQkFBMkIsMEJBQTBCLDhCQUE4Qiw4REFBOEQsNkRBQTZELG1CQUFtQixtQkFBbUIsK0NBQStDLG1DQUFtQyxzQkFBc0IsOENBQThDLEtBQUssMERBQTBELGtCQUFrQiwyREFBMkQsS0FBSywwREFBMEQsK0NBQStDLEtBQUssNkRBQTZELCtDQUErQyxvQ0FBb0MsMEJBQTBCLEtBQUssb0VBQW9FLG1FQUFtRSx3QkFBd0IsS0FBSyxpRUFBaUUsbUVBQW1FLEtBQUssNkRBQTZELGdCQUFnQixpQkFBaUIsc0NBQXNDLHVCQUF1QixxQkFBcUIscUNBQXFDLEtBQUssaUVBQWlFLG1CQUFtQixLQUFLO0FBQzUyRyxjQUFjO0FBQ2Q7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvTGVmdFJpZ2h0RGlhbG9nSGVhZGVyL3N0eWxlcy5qcz9mOTJkIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9fbWFrZVRlbXBsYXRlT2JqZWN0ID0gKHRoaXMgJiYgdGhpcy5fX21ha2VUZW1wbGF0ZU9iamVjdCkgfHwgZnVuY3Rpb24gKGNvb2tlZCwgcmF3KSB7XG4gICAgaWYgKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29va2VkLCBcInJhd1wiLCB7IHZhbHVlOiByYXcgfSk7IH0gZWxzZSB7IGNvb2tlZC5yYXcgPSByYXc7IH1cbiAgICByZXR1cm4gY29va2VkO1xufTtcbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLnN0eWxlcyA9IHZvaWQgMDtcbnZhciBub29wX3RlbXBsYXRlXzEgPSByZXF1aXJlKFwiLi4vLi4vaGVscGVycy9ub29wLXRlbXBsYXRlXCIpO1xudmFyIHN0eWxlcyA9ICgwLCBub29wX3RlbXBsYXRlXzEubm9vcCkodGVtcGxhdGVPYmplY3RfMSB8fCAodGVtcGxhdGVPYmplY3RfMSA9IF9fbWFrZVRlbXBsYXRlT2JqZWN0KFtcIlxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1sZWZ0LXJpZ2h0XSB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XFxuICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1sZWZ0LXJpZ2h0XSA+IG5hdiA+IGJ1dHRvbiB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG5cXG4gICAgd2lkdGg6IGNhbGModmFyKC0tc2l6ZS1nYXAtZG91YmxlKSArIHZhcigtLXNpemUtZ2FwKSk7XFxuICAgIGhlaWdodDogY2FsYyh2YXIoLS1zaXplLWdhcC1kb3VibGUpICsgdmFyKC0tc2l6ZS1nYXApKTtcXG4gICAgZm9udC1zaXplOiAwO1xcbiAgICBib3JkZXI6IG5vbmU7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCA4NSwgODUsIDAuMSk7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLXJlZCk7XFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1sZWZ0LXJpZ2h0XSA+IG5hdiA+IGJ1dHRvbiA+IHN2ZyB7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgICBoZWlnaHQ6IGNhbGModmFyKC0tc2l6ZS1nYXApICsgdmFyKC0tc2l6ZS1nYXAtaGFsZikpO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1sZWZ0LXJpZ2h0XSA+IG5hdiA+IGJ1dHRvbjpob3ZlciB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCA4NSwgODUsIDAuMik7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWxlZnQtcmlnaHRdID4gbmF2ID4gYnV0dG9uOmRpc2FibGVkIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDg1LCA4NSwgMC4xKTtcXG4gICAgY29sb3I6IHJnYmEoMjU1LCA4NSwgODUsIDAuNCk7XFxuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWxlZnQtcmlnaHRdID4gbmF2ID4gYnV0dG9uOmZpcnN0LW9mLXR5cGUge1xcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zaXplLWdhcC1oYWxmKSAwIDAgdmFyKC0tc2l6ZS1nYXAtaGFsZik7XFxuICAgIG1hcmdpbi1yaWdodDogMXB4O1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1sZWZ0LXJpZ2h0XSA+IG5hdiA+IGJ1dHRvbjpsYXN0LW9mLXR5cGUge1xcbiAgICBib3JkZXItcmFkaXVzOiAwIHZhcigtLXNpemUtZ2FwLWhhbGYpIHZhcigtLXNpemUtZ2FwLWhhbGYpIDA7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWxlZnQtcmlnaHRdID4gYnV0dG9uOmxhc3Qtb2YtdHlwZSB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgcGFkZGluZzogMDtcXG5cXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAgIGFwcGVhcmFuY2U6IG5vbmU7XFxuXFxuICAgIG9wYWNpdHk6IDAuNDtcXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjI1cyBlYXNlO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1sZWZ0LXJpZ2h0XSA+IGJ1dHRvbjpsYXN0LW9mLXR5cGU6aG92ZXIge1xcbiAgICBvcGFjaXR5OiAwLjc7XFxuICB9XFxuXCJdLCBbXCJcXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctbGVmdC1yaWdodF0ge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xcbiAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctbGVmdC1yaWdodF0gPiBuYXYgPiBidXR0b24ge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuXFxuICAgIHdpZHRoOiBjYWxjKHZhcigtLXNpemUtZ2FwLWRvdWJsZSkgKyB2YXIoLS1zaXplLWdhcCkpO1xcbiAgICBoZWlnaHQ6IGNhbGModmFyKC0tc2l6ZS1nYXAtZG91YmxlKSArIHZhcigtLXNpemUtZ2FwKSk7XFxuICAgIGZvbnQtc2l6ZTogMDtcXG4gICAgYm9yZGVyOiBub25lO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgODUsIDg1LCAwLjEpO1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItYW5zaS1yZWQpO1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZTtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctbGVmdC1yaWdodF0gPiBuYXYgPiBidXR0b24gPiBzdmcge1xcbiAgICB3aWR0aDogYXV0bztcXG4gICAgaGVpZ2h0OiBjYWxjKHZhcigtLXNpemUtZ2FwKSArIHZhcigtLXNpemUtZ2FwLWhhbGYpKTtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctbGVmdC1yaWdodF0gPiBuYXYgPiBidXR0b246aG92ZXIge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgODUsIDg1LCAwLjIpO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1sZWZ0LXJpZ2h0XSA+IG5hdiA+IGJ1dHRvbjpkaXNhYmxlZCB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCA4NSwgODUsIDAuMSk7XFxuICAgIGNvbG9yOiByZ2JhKDI1NSwgODUsIDg1LCAwLjQpO1xcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1sZWZ0LXJpZ2h0XSA+IG5hdiA+IGJ1dHRvbjpmaXJzdC1vZi10eXBlIHtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2l6ZS1nYXAtaGFsZikgMCAwIHZhcigtLXNpemUtZ2FwLWhhbGYpO1xcbiAgICBtYXJnaW4tcmlnaHQ6IDFweDtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctbGVmdC1yaWdodF0gPiBuYXYgPiBidXR0b246bGFzdC1vZi10eXBlIHtcXG4gICAgYm9yZGVyLXJhZGl1czogMCB2YXIoLS1zaXplLWdhcC1oYWxmKSB2YXIoLS1zaXplLWdhcC1oYWxmKSAwO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1sZWZ0LXJpZ2h0XSA+IGJ1dHRvbjpsYXN0LW9mLXR5cGUge1xcbiAgICBib3JkZXI6IDA7XFxuICAgIHBhZGRpbmc6IDA7XFxuXFxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICBhcHBlYXJhbmNlOiBub25lO1xcblxcbiAgICBvcGFjaXR5OiAwLjQ7XFxuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yNXMgZWFzZTtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctbGVmdC1yaWdodF0gPiBidXR0b246bGFzdC1vZi10eXBlOmhvdmVyIHtcXG4gICAgb3BhY2l0eTogMC43O1xcbiAgfVxcblwiXSkpKTtcbmV4cG9ydHMuc3R5bGVzID0gc3R5bGVzO1xudmFyIHRlbXBsYXRlT2JqZWN0XzE7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1zdHlsZXMuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/LeftRightDialogHeader/styles.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/Overlay/Overlay.js": +/*!*****************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/Overlay/Overlay.js ***! + \*****************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nexports.__esModule = true;\nexports.Overlay = void 0;\n// @ts-ignore\nvar maintain__tab_focus_1 = __importDefault(__webpack_require__(/*! ./maintain--tab-focus */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/Overlay/maintain--tab-focus.js\"));\nvar React = __importStar(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nvar body_locker_1 = __webpack_require__(/*! ./body-locker */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/Overlay/body-locker.js\");\nvar Overlay = function Overlay(_a) {\n var className = _a.className, children = _a.children, fixed = _a.fixed;\n React.useEffect(function () {\n (0, body_locker_1.lock)();\n return function () {\n (0, body_locker_1.unlock)();\n };\n }, []);\n var _b = __read(React.useState(null), 2), overlay = _b[0], setOverlay = _b[1];\n var onOverlay = React.useCallback(function (el) {\n setOverlay(el);\n }, []);\n React.useEffect(function () {\n if (overlay == null) {\n return;\n }\n var handle2 = (0, maintain__tab_focus_1[\"default\"])({ context: overlay });\n return function () {\n handle2.disengage();\n };\n }, [overlay]);\n return (React.createElement(\"div\", { \"data-nextjs-dialog-overlay\": true, className: className, ref: onOverlay },\n React.createElement(\"div\", { \"data-nextjs-dialog-backdrop\": true, \"data-nextjs-dialog-backdrop-fixed\": fixed ? true : undefined }),\n children));\n};\nexports.Overlay = Overlay;\n//# sourceMappingURL=Overlay.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvT3ZlcmxheS9PdmVybGF5LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQTtBQUNBLG1DQUFtQyxvQ0FBb0MsZ0JBQWdCO0FBQ3ZGLENBQUM7QUFDRDtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0EsMENBQTBDLDRCQUE0QjtBQUN0RSxDQUFDO0FBQ0Q7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixNQUFNO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkNBQTZDO0FBQzdDO0FBQ0Esa0JBQWtCO0FBQ2xCLGVBQWU7QUFDZjtBQUNBLDRDQUE0QyxtQkFBTyxDQUFDLDRIQUF1QjtBQUMzRSx5QkFBeUIsbUJBQU8sQ0FBQyw0Q0FBTztBQUN4QyxvQkFBb0IsbUJBQU8sQ0FBQyw0R0FBZTtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4REFBOEQsa0JBQWtCO0FBQ2hGO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCx5Q0FBeUMsMEVBQTBFO0FBQ25ILHFDQUFxQyxvR0FBb0c7QUFDekk7QUFDQTtBQUNBLGVBQWU7QUFDZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvT3ZlcmxheS9PdmVybGF5LmpzP2M0ZjQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19jcmVhdGVCaW5kaW5nID0gKHRoaXMgJiYgdGhpcy5fX2NyZWF0ZUJpbmRpbmcpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfSk7XG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgb1trMl0gPSBtW2tdO1xufSkpO1xudmFyIF9fc2V0TW9kdWxlRGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19zZXRNb2R1bGVEZWZhdWx0KSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCB2KSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIFwiZGVmYXVsdFwiLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2IH0pO1xufSkgOiBmdW5jdGlvbihvLCB2KSB7XG4gICAgb1tcImRlZmF1bHRcIl0gPSB2O1xufSk7XG52YXIgX19pbXBvcnRTdGFyID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydFN0YXIpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSByZXR1cm4gbW9kO1xuICAgIHZhciByZXN1bHQgPSB7fTtcbiAgICBpZiAobW9kICE9IG51bGwpIGZvciAodmFyIGsgaW4gbW9kKSBpZiAoayAhPT0gXCJkZWZhdWx0XCIgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG1vZCwgaykpIF9fY3JlYXRlQmluZGluZyhyZXN1bHQsIG1vZCwgayk7XG4gICAgX19zZXRNb2R1bGVEZWZhdWx0KHJlc3VsdCwgbW9kKTtcbiAgICByZXR1cm4gcmVzdWx0O1xufTtcbnZhciBfX3JlYWQgPSAodGhpcyAmJiB0aGlzLl9fcmVhZCkgfHwgZnVuY3Rpb24gKG8sIG4pIHtcbiAgICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07XG4gICAgaWYgKCFtKSByZXR1cm4gbztcbiAgICB2YXIgaSA9IG0uY2FsbChvKSwgciwgYXIgPSBbXSwgZTtcbiAgICB0cnkge1xuICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycm9yKSB7IGUgPSB7IGVycm9yOiBlcnJvciB9OyB9XG4gICAgZmluYWxseSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVtcInJldHVyblwiXSkpIG0uY2FsbChpKTtcbiAgICAgICAgfVxuICAgICAgICBmaW5hbGx5IHsgaWYgKGUpIHRocm93IGUuZXJyb3I7IH1cbiAgICB9XG4gICAgcmV0dXJuIGFyO1xufTtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLk92ZXJsYXkgPSB2b2lkIDA7XG4vLyBAdHMtaWdub3JlXG52YXIgbWFpbnRhaW5fX3RhYl9mb2N1c18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL21haW50YWluLS10YWItZm9jdXNcIikpO1xudmFyIFJlYWN0ID0gX19pbXBvcnRTdGFyKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG52YXIgYm9keV9sb2NrZXJfMSA9IHJlcXVpcmUoXCIuL2JvZHktbG9ja2VyXCIpO1xudmFyIE92ZXJsYXkgPSBmdW5jdGlvbiBPdmVybGF5KF9hKSB7XG4gICAgdmFyIGNsYXNzTmFtZSA9IF9hLmNsYXNzTmFtZSwgY2hpbGRyZW4gPSBfYS5jaGlsZHJlbiwgZml4ZWQgPSBfYS5maXhlZDtcbiAgICBSZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgICAoMCwgYm9keV9sb2NrZXJfMS5sb2NrKSgpO1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgKDAsIGJvZHlfbG9ja2VyXzEudW5sb2NrKSgpO1xuICAgICAgICB9O1xuICAgIH0sIFtdKTtcbiAgICB2YXIgX2IgPSBfX3JlYWQoUmVhY3QudXNlU3RhdGUobnVsbCksIDIpLCBvdmVybGF5ID0gX2JbMF0sIHNldE92ZXJsYXkgPSBfYlsxXTtcbiAgICB2YXIgb25PdmVybGF5ID0gUmVhY3QudXNlQ2FsbGJhY2soZnVuY3Rpb24gKGVsKSB7XG4gICAgICAgIHNldE92ZXJsYXkoZWwpO1xuICAgIH0sIFtdKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAob3ZlcmxheSA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGhhbmRsZTIgPSAoMCwgbWFpbnRhaW5fX3RhYl9mb2N1c18xW1wiZGVmYXVsdFwiXSkoeyBjb250ZXh0OiBvdmVybGF5IH0pO1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgaGFuZGxlMi5kaXNlbmdhZ2UoKTtcbiAgICAgICAgfTtcbiAgICB9LCBbb3ZlcmxheV0pO1xuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IFwiZGF0YS1uZXh0anMtZGlhbG9nLW92ZXJsYXlcIjogdHJ1ZSwgY2xhc3NOYW1lOiBjbGFzc05hbWUsIHJlZjogb25PdmVybGF5IH0sXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyBcImRhdGEtbmV4dGpzLWRpYWxvZy1iYWNrZHJvcFwiOiB0cnVlLCBcImRhdGEtbmV4dGpzLWRpYWxvZy1iYWNrZHJvcC1maXhlZFwiOiBmaXhlZCA/IHRydWUgOiB1bmRlZmluZWQgfSksXG4gICAgICAgIGNoaWxkcmVuKSk7XG59O1xuZXhwb3J0cy5PdmVybGF5ID0gT3ZlcmxheTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPU92ZXJsYXkuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/Overlay/Overlay.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/Overlay/body-locker.js": +/*!*********************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/Overlay/body-locker.js ***! + \*********************************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nexports.__esModule = true;\nexports.unlock = exports.lock = void 0;\nvar previousBodyPaddingRight;\nvar previousBodyOverflowSetting;\nvar activeLocks = 0;\nfunction lock() {\n setTimeout(function () {\n if (activeLocks++ > 0) {\n return;\n }\n var scrollBarGap = window.innerWidth - document.documentElement.clientWidth;\n if (scrollBarGap > 0) {\n previousBodyPaddingRight = document.body.style.paddingRight;\n document.body.style.paddingRight = scrollBarGap + \"px\";\n }\n previousBodyOverflowSetting = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n });\n}\nexports.lock = lock;\nfunction unlock() {\n setTimeout(function () {\n if (activeLocks === 0 || --activeLocks !== 0) {\n return;\n }\n if (previousBodyPaddingRight !== undefined) {\n document.body.style.paddingRight = previousBodyPaddingRight;\n previousBodyPaddingRight = undefined;\n }\n if (previousBodyOverflowSetting !== undefined) {\n document.body.style.overflow = previousBodyOverflowSetting;\n previousBodyOverflowSetting = undefined;\n }\n });\n}\nexports.unlock = unlock;\n//# sourceMappingURL=body-locker.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvT3ZlcmxheS9ib2R5LWxvY2tlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLGtCQUFrQjtBQUNsQixjQUFjLEdBQUcsWUFBWTtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxjQUFjO0FBQ2QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BuZXh0L3JlYWN0LWRldi1vdmVybGF5L2xpYi9pbnRlcm5hbC9jb21wb25lbnRzL092ZXJsYXkvYm9keS1sb2NrZXIuanM/YWQ1MyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLnVubG9jayA9IGV4cG9ydHMubG9jayA9IHZvaWQgMDtcbnZhciBwcmV2aW91c0JvZHlQYWRkaW5nUmlnaHQ7XG52YXIgcHJldmlvdXNCb2R5T3ZlcmZsb3dTZXR0aW5nO1xudmFyIGFjdGl2ZUxvY2tzID0gMDtcbmZ1bmN0aW9uIGxvY2soKSB7XG4gICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmIChhY3RpdmVMb2NrcysrID4gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhciBzY3JvbGxCYXJHYXAgPSB3aW5kb3cuaW5uZXJXaWR0aCAtIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aDtcbiAgICAgICAgaWYgKHNjcm9sbEJhckdhcCA+IDApIHtcbiAgICAgICAgICAgIHByZXZpb3VzQm9keVBhZGRpbmdSaWdodCA9IGRvY3VtZW50LmJvZHkuc3R5bGUucGFkZGluZ1JpZ2h0O1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5wYWRkaW5nUmlnaHQgPSBzY3JvbGxCYXJHYXAgKyBcInB4XCI7XG4gICAgICAgIH1cbiAgICAgICAgcHJldmlvdXNCb2R5T3ZlcmZsb3dTZXR0aW5nID0gZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdztcbiAgICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nO1xuICAgIH0pO1xufVxuZXhwb3J0cy5sb2NrID0gbG9jaztcbmZ1bmN0aW9uIHVubG9jaygpIHtcbiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKGFjdGl2ZUxvY2tzID09PSAwIHx8IC0tYWN0aXZlTG9ja3MgIT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAocHJldmlvdXNCb2R5UGFkZGluZ1JpZ2h0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUucGFkZGluZ1JpZ2h0ID0gcHJldmlvdXNCb2R5UGFkZGluZ1JpZ2h0O1xuICAgICAgICAgICAgcHJldmlvdXNCb2R5UGFkZGluZ1JpZ2h0ID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwcmV2aW91c0JvZHlPdmVyZmxvd1NldHRpbmcgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9IHByZXZpb3VzQm9keU92ZXJmbG93U2V0dGluZztcbiAgICAgICAgICAgIHByZXZpb3VzQm9keU92ZXJmbG93U2V0dGluZyA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuZXhwb3J0cy51bmxvY2sgPSB1bmxvY2s7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1ib2R5LWxvY2tlci5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/Overlay/body-locker.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/Overlay/index.js": +/*!***************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/Overlay/index.js ***! + \***************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nexports.__esModule = true;\nexports.Overlay = void 0;\nvar Overlay_1 = __webpack_require__(/*! ./Overlay */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/Overlay/Overlay.js\");\n__createBinding(exports, Overlay_1, \"Overlay\");\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvT3ZlcmxheS9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0E7QUFDQSxtQ0FBbUMsb0NBQW9DLGdCQUFnQjtBQUN2RixDQUFDO0FBQ0Q7QUFDQTtBQUNBLENBQUM7QUFDRCxrQkFBa0I7QUFDbEIsZUFBZTtBQUNmLGdCQUFnQixtQkFBTyxDQUFDLG9HQUFXO0FBQ25DO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BuZXh0L3JlYWN0LWRldi1vdmVybGF5L2xpYi9pbnRlcm5hbC9jb21wb25lbnRzL092ZXJsYXkvaW5kZXguanM/MjNiNyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2NyZWF0ZUJpbmRpbmcgPSAodGhpcyAmJiB0aGlzLl9fY3JlYXRlQmluZGluZykgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gbVtrXTsgfSB9KTtcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBvW2syXSA9IG1ba107XG59KSk7XG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5PdmVybGF5ID0gdm9pZCAwO1xudmFyIE92ZXJsYXlfMSA9IHJlcXVpcmUoXCIuL092ZXJsYXlcIik7XG5fX2NyZWF0ZUJpbmRpbmcoZXhwb3J0cywgT3ZlcmxheV8xLCBcIk92ZXJsYXlcIik7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/Overlay/index.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/Overlay/maintain--tab-focus.js": +/*!*****************************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/Overlay/maintain--tab-focus.js ***! + \*****************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n/* eslint-disable */\n// @ts-nocheck\n// Copied from https://github.com/medialize/ally.js\n// License: MIT\n// Copyright (c) 2015 Rodney Rehm\n//\n// Entrypoint: ally.js/maintain/tab-focus\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nexports.__esModule = true;\nvar platform_1 = __importDefault(__webpack_require__(/*! platform */ \"./node_modules/platform/platform.js\"));\nvar css_escape_1 = __importDefault(__webpack_require__(/*! css.escape */ \"./node_modules/css.escape/css.escape.js\"));\n// input may be undefined, selector-tring, Node, NodeList, HTMLCollection, array of Nodes\n// yes, to some extent this is a bad replica of jQuery's constructor function\nfunction nodeArray(input) {\n if (!input) {\n return [];\n }\n if (Array.isArray(input)) {\n return input;\n }\n // instanceof Node - does not work with iframes\n if (input.nodeType !== undefined) {\n return [input];\n }\n if (typeof input === 'string') {\n input = document.querySelectorAll(input);\n }\n if (input.length !== undefined) {\n return [].slice.call(input, 0);\n }\n throw new TypeError('unexpected input ' + String(input));\n}\nfunction contextToElement(_ref) {\n var context = _ref.context, _ref$label = _ref.label, label = _ref$label === undefined ? 'context-to-element' : _ref$label, resolveDocument = _ref.resolveDocument, defaultToDocument = _ref.defaultToDocument;\n var element = nodeArray(context)[0];\n if (resolveDocument && element && element.nodeType === Node.DOCUMENT_NODE) {\n element = element.documentElement;\n }\n if (!element && defaultToDocument) {\n return document.documentElement;\n }\n if (!element) {\n throw new TypeError(label + ' requires valid options.context');\n }\n if (element.nodeType !== Node.ELEMENT_NODE &&\n element.nodeType !== Node.DOCUMENT_FRAGMENT_NODE) {\n throw new TypeError(label + ' requires options.context to be an Element');\n }\n return element;\n}\nfunction getShadowHost() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context;\n var element = contextToElement({\n label: 'get/shadow-host',\n context: context\n });\n // walk up to the root\n var container = null;\n while (element) {\n container = element;\n element = element.parentNode;\n }\n // https://developer.mozilla.org/en-US/docs/Web/API/Node.nodeType\n // NOTE: Firefox 34 does not expose ShadowRoot.host (but 37 does)\n if (container.nodeType === container.DOCUMENT_FRAGMENT_NODE &&\n container.host) {\n // the root is attached to a fragment node that has a host\n return container.host;\n }\n return null;\n}\nfunction getDocument(node) {\n if (!node) {\n return document;\n }\n if (node.nodeType === Node.DOCUMENT_NODE) {\n return node;\n }\n return node.ownerDocument || document;\n}\nfunction isActiveElement(context) {\n var element = contextToElement({\n label: 'is/active-element',\n resolveDocument: true,\n context: context\n });\n var _document = getDocument(element);\n if (_document.activeElement === element) {\n return true;\n }\n var shadowHost = getShadowHost({ context: element });\n if (shadowHost && shadowHost.shadowRoot.activeElement === element) {\n return true;\n }\n return false;\n}\n// [elem, elem.parent, elem.parent.parent, …, html]\n// will not contain the shadowRoot (DOCUMENT_FRAGMENT_NODE) and shadowHost\nfunction getParents() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context;\n var list = [];\n var element = contextToElement({\n label: 'get/parents',\n context: context\n });\n while (element) {\n list.push(element);\n // IE does know support parentElement on SVGElement\n element = element.parentNode;\n if (element && element.nodeType !== Node.ELEMENT_NODE) {\n element = null;\n }\n }\n return list;\n}\n// Element.prototype.matches may be available at a different name\n// https://developer.mozilla.org/en/docs/Web/API/Element/matches\nvar names = [\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n];\nvar name = null;\nfunction findMethodName(element) {\n names.some(function (_name) {\n if (!element[_name]) {\n return false;\n }\n name = _name;\n return true;\n });\n}\nfunction elementMatches(element, selector) {\n if (!name) {\n findMethodName(element);\n }\n return element[name](selector);\n}\n// deep clone of original platform\nvar platform = JSON.parse(JSON.stringify(platform_1[\"default\"]));\n// operating system\nvar os = platform.os.family || '';\nvar ANDROID = os === 'Android';\nvar WINDOWS = os.slice(0, 7) === 'Windows';\nvar OSX = os === 'OS X';\nvar IOS = os === 'iOS';\n// layout\nvar BLINK = platform.layout === 'Blink';\nvar GECKO = platform.layout === 'Gecko';\nvar TRIDENT = platform.layout === 'Trident';\nvar EDGE = platform.layout === 'EdgeHTML';\nvar WEBKIT = platform.layout === 'WebKit';\n// browser version (not layout engine version!)\nvar version = parseFloat(platform.version);\nvar majorVersion = Math.floor(version);\nplatform.majorVersion = majorVersion;\nplatform.is = {\n // operating system\n ANDROID: ANDROID,\n WINDOWS: WINDOWS,\n OSX: OSX,\n IOS: IOS,\n // layout\n BLINK: BLINK,\n GECKO: GECKO,\n TRIDENT: TRIDENT,\n EDGE: EDGE,\n WEBKIT: WEBKIT,\n // INTERNET EXPLORERS\n IE9: TRIDENT && majorVersion === 9,\n IE10: TRIDENT && majorVersion === 10,\n IE11: TRIDENT && majorVersion === 11\n};\nfunction before() {\n var data = {\n // remember what had focus to restore after test\n activeElement: document.activeElement,\n // remember scroll positions to restore after test\n windowScrollTop: window.scrollTop,\n windowScrollLeft: window.scrollLeft,\n bodyScrollTop: document.body.scrollTop,\n bodyScrollLeft: document.body.scrollLeft\n };\n // wrap tests in an element hidden from screen readers to prevent them\n // from announcing focus, which can be quite irritating to the user\n var iframe = document.createElement('iframe');\n iframe.setAttribute('style', 'position:absolute; position:fixed; top:0; left:-2px; width:1px; height:1px; overflow:hidden;');\n iframe.setAttribute('aria-live', 'off');\n iframe.setAttribute('aria-busy', 'true');\n iframe.setAttribute('aria-hidden', 'true');\n document.body.appendChild(iframe);\n var _window = iframe.contentWindow;\n var _document = _window.document;\n _document.open();\n _document.close();\n var wrapper = _document.createElement('div');\n _document.body.appendChild(wrapper);\n data.iframe = iframe;\n data.wrapper = wrapper;\n data.window = _window;\n data.document = _document;\n return data;\n}\n// options.element:\n// {string} element name\n// {function} callback(wrapper, document) to generate an element\n// options.mutate: (optional)\n// {function} callback(element, wrapper, document) to manipulate element prior to focus-test.\n// Can return DOMElement to define focus target (default: element)\n// options.validate: (optional)\n// {function} callback(element, focusTarget, document) to manipulate test-result\nfunction test(data, options) {\n // make sure we operate on a clean slate\n data.wrapper.innerHTML = '';\n // create dummy element to test focusability of\n var element = typeof options.element === 'string'\n ? data.document.createElement(options.element)\n : options.element(data.wrapper, data.document);\n // allow callback to further specify dummy element\n // and optionally define element to focus\n var focus = options.mutate && options.mutate(element, data.wrapper, data.document);\n if (!focus && focus !== false) {\n focus = element;\n }\n // element needs to be part of the DOM to be focusable\n !element.parentNode && data.wrapper.appendChild(element);\n // test if the element with invalid tabindex can be focused\n focus && focus.focus && focus.focus();\n // validate test's result\n return options.validate\n ? options.validate(element, focus, data.document)\n : data.document.activeElement === focus;\n}\nfunction after(data) {\n // restore focus to what it was before test and cleanup\n if (data.activeElement === document.body) {\n document.activeElement &&\n document.activeElement.blur &&\n document.activeElement.blur();\n if (platform.is.IE10) {\n // IE10 does not redirect focus to <body> when the activeElement is removed\n document.body.focus();\n }\n }\n else {\n data.activeElement && data.activeElement.focus && data.activeElement.focus();\n }\n document.body.removeChild(data.iframe);\n // restore scroll position\n window.scrollTop = data.windowScrollTop;\n window.scrollLeft = data.windowScrollLeft;\n document.body.scrollTop = data.bodyScrollTop;\n document.body.scrollLeft = data.bodyScrollLeft;\n}\nfunction detectFocus(tests) {\n var data = before();\n var results = {};\n Object.keys(tests).map(function (key) {\n results[key] = test(data, tests[key]);\n });\n after(data);\n return results;\n}\n// this file is overwritten by `npm run build:pre`\nvar version$1 = '1.4.1';\n/*\n Facility to cache test results in localStorage.\n\n USAGE:\n cache.get('key');\n cache.set('key', 'value');\n */\nfunction readLocalStorage(key) {\n // allow reading from storage to retrieve previous support results\n // even while the document does not have focus\n var data = void 0;\n try {\n data = window.localStorage && window.localStorage.getItem(key);\n data = data ? JSON.parse(data) : {};\n }\n catch (e) {\n data = {};\n }\n return data;\n}\nfunction writeLocalStorage(key, value) {\n if (!document.hasFocus()) {\n // if the document does not have focus when tests are executed, focus() may\n // not be handled properly and events may not be dispatched immediately.\n // This can happen when a document is reloaded while Developer Tools have focus.\n try {\n window.localStorage && window.localStorage.removeItem(key);\n }\n catch (e) {\n // ignore\n }\n return;\n }\n try {\n window.localStorage &&\n window.localStorage.setItem(key, JSON.stringify(value));\n }\n catch (e) {\n // ignore\n }\n}\nvar userAgent = (typeof window !== 'undefined' && window.navigator.userAgent) || '';\nvar cacheKey = 'ally-supports-cache';\nvar cache = readLocalStorage(cacheKey);\n// update the cache if ally or the user agent changed (newer version, etc)\nif (cache.userAgent !== userAgent || cache.version !== version$1) {\n cache = {};\n}\ncache.userAgent = userAgent;\ncache.version = version$1;\nvar cache$1 = {\n get: function get() {\n return cache;\n },\n set: function set(values) {\n Object.keys(values).forEach(function (key) {\n cache[key] = values[key];\n });\n cache.time = new Date().toISOString();\n writeLocalStorage(cacheKey, cache);\n }\n};\nfunction cssShadowPiercingDeepCombinator() {\n var combinator = void 0;\n // see https://dev.w3.org/csswg/css-scoping-1/#deep-combinator\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1117572\n // https://code.google.com/p/chromium/issues/detail?id=446051\n try {\n document.querySelector('html >>> :first-child');\n combinator = '>>>';\n }\n catch (noArrowArrowArrow) {\n try {\n // old syntax supported at least up to Chrome 41\n // https://code.google.com/p/chromium/issues/detail?id=446051\n document.querySelector('html /deep/ :first-child');\n combinator = '/deep/';\n }\n catch (noDeep) {\n combinator = '';\n }\n }\n return combinator;\n}\nvar gif = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attr-usemap\nvar focusAreaImgTabindex = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML =\n '<map name=\"image-map-tabindex-test\">' +\n '<area shape=\"rect\" coords=\"63,19,144,45\"></map>' +\n '<img usemap=\"#image-map-tabindex-test\" tabindex=\"-1\" alt=\"\" src=\"' +\n gif +\n '\">';\n return element.querySelector('area');\n }\n};\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attr-usemap\nvar focusAreaTabindex = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML =\n '<map name=\"image-map-tabindex-test\">' +\n '<area href=\"#void\" tabindex=\"-1\" shape=\"rect\" coords=\"63,19,144,45\"></map>' +\n '<img usemap=\"#image-map-tabindex-test\" alt=\"\" src=\"' +\n gif +\n '\">';\n return false;\n },\n validate: function validate(element, focusTarget, _document) {\n if (platform.is.GECKO) {\n // fixes https://github.com/medialize/ally.js/issues/35\n // Firefox loads the DataURI asynchronously, causing a false-negative\n return true;\n }\n var focus = element.querySelector('area');\n focus.focus();\n return _document.activeElement === focus;\n }\n};\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attr-usemap\nvar focusAreaWithoutHref = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML =\n '<map name=\"image-map-area-href-test\">' +\n '<area shape=\"rect\" coords=\"63,19,144,45\"></map>' +\n '<img usemap=\"#image-map-area-href-test\" alt=\"\" src=\"' +\n gif +\n '\">';\n return element.querySelector('area');\n },\n validate: function validate(element, focusTarget, _document) {\n if (platform.is.GECKO) {\n // fixes https://github.com/medialize/ally.js/issues/35\n // Firefox loads the DataURI asynchronously, causing a false-negative\n return true;\n }\n return _document.activeElement === focusTarget;\n }\n};\nvar focusAudioWithoutControls = {\n name: 'can-focus-audio-without-controls',\n element: 'audio',\n mutate: function mutate(element) {\n try {\n // invalid media file can trigger warning in console, data-uri to prevent HTTP request\n element.setAttribute('src', gif);\n }\n catch (e) {\n // IE9 may throw \"Error: Not implemented\"\n }\n }\n};\nvar invalidGif = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ';\n// NOTE: https://github.com/medialize/ally.js/issues/35\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attr-usemap\nvar focusBrokenImageMap = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML =\n '<map name=\"broken-image-map-test\"><area href=\"#void\" shape=\"rect\" coords=\"63,19,144,45\"></map>' +\n '<img usemap=\"#broken-image-map-test\" alt=\"\" src=\"' +\n invalidGif +\n '\">';\n return element.querySelector('area');\n }\n};\n// Children of focusable elements with display:flex are focusable in IE10-11\nvar focusChildrenOfFocusableFlexbox = {\n element: 'div',\n mutate: function mutate(element) {\n element.setAttribute('tabindex', '-1');\n element.setAttribute('style', 'display: -webkit-flex; display: -ms-flexbox; display: flex;');\n element.innerHTML = '<span style=\"display: block;\">hello</span>';\n return element.querySelector('span');\n }\n};\n// fieldset[tabindex=0][disabled] should not be focusable, but Blink and WebKit disagree\n// @specification https://www.w3.org/TR/html5/disabled-elements.html#concept-element-disabled\n// @browser-issue Chromium https://crbug.com/453847\n// @browser-issue WebKit https://bugs.webkit.org/show_bug.cgi?id=141086\nvar focusFieldsetDisabled = {\n element: 'fieldset',\n mutate: function mutate(element) {\n element.setAttribute('tabindex', 0);\n element.setAttribute('disabled', 'disabled');\n }\n};\nvar focusFieldset = {\n element: 'fieldset',\n mutate: function mutate(element) {\n element.innerHTML = '<legend>legend</legend><p>content</p>';\n }\n};\n// elements with display:flex are focusable in IE10-11\nvar focusFlexboxContainer = {\n element: 'span',\n mutate: function mutate(element) {\n element.setAttribute('style', 'display: -webkit-flex; display: -ms-flexbox; display: flex;');\n element.innerHTML = '<span style=\"display: block;\">hello</span>';\n }\n};\n// form[tabindex=0][disabled] should be focusable as the\n// specification doesn't know the disabled attribute on the form element\n// @specification https://www.w3.org/TR/html5/forms.html#the-form-element\nvar focusFormDisabled = {\n element: 'form',\n mutate: function mutate(element) {\n element.setAttribute('tabindex', 0);\n element.setAttribute('disabled', 'disabled');\n }\n};\n// NOTE: https://github.com/medialize/ally.js/issues/35\n// fixes https://github.com/medialize/ally.js/issues/20\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attr-ismap\nvar focusImgIsmap = {\n element: 'a',\n mutate: function mutate(element) {\n element.href = '#void';\n element.innerHTML = '<img ismap src=\"' + gif + '\" alt=\"\">';\n return element.querySelector('img');\n }\n};\n// NOTE: https://github.com/medialize/ally.js/issues/35\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attr-usemap\nvar focusImgUsemapTabindex = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML =\n '<map name=\"image-map-tabindex-test\"><area href=\"#void\" shape=\"rect\" coords=\"63,19,144,45\"></map>' +\n '<img usemap=\"#image-map-tabindex-test\" tabindex=\"-1\" alt=\"\" ' +\n 'src=\"' +\n gif +\n '\">';\n return element.querySelector('img');\n }\n};\nvar focusInHiddenIframe = {\n element: function element(wrapper, _document) {\n var iframe = _document.createElement('iframe');\n // iframe must be part of the DOM before accessing the contentWindow is possible\n wrapper.appendChild(iframe);\n // create the iframe's default document (<html><head></head><body></body></html>)\n var iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.close();\n return iframe;\n },\n mutate: function mutate(iframe) {\n iframe.style.visibility = 'hidden';\n var iframeDocument = iframe.contentWindow.document;\n var input = iframeDocument.createElement('input');\n iframeDocument.body.appendChild(input);\n return input;\n },\n validate: function validate(iframe) {\n var iframeDocument = iframe.contentWindow.document;\n var focus = iframeDocument.querySelector('input');\n return iframeDocument.activeElement === focus;\n }\n};\nvar result = !platform.is.WEBKIT;\nfunction focusInZeroDimensionObject() {\n return result;\n}\n// Firefox allows *any* value and treats invalid values like tabindex=\"-1\"\n// @browser-issue Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=1128054\nvar focusInvalidTabindex = {\n element: 'div',\n mutate: function mutate(element) {\n element.setAttribute('tabindex', 'invalid-value');\n }\n};\nvar focusLabelTabindex = {\n element: 'label',\n mutate: function mutate(element) {\n element.setAttribute('tabindex', '-1');\n },\n validate: function validate(element, focusTarget, _document) {\n // force layout in Chrome 49, otherwise the element won't be focusable\n /* eslint-disable no-unused-vars */\n var variableToPreventDeadCodeElimination = element.offsetHeight;\n /* eslint-enable no-unused-vars */\n element.focus();\n return _document.activeElement === element;\n }\n};\nvar svg = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtb' +\n 'G5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBpZD0ic3ZnIj48dGV4dCB4PSIxMCIgeT0iMjAiIGlkPSJ' +\n 'zdmctbGluay10ZXh0Ij50ZXh0PC90ZXh0Pjwvc3ZnPg==';\n// Note: IE10 on BrowserStack does not like this test\nvar focusObjectSvgHidden = {\n element: 'object',\n mutate: function mutate(element) {\n element.setAttribute('type', 'image/svg+xml');\n element.setAttribute('data', svg);\n element.setAttribute('width', '200');\n element.setAttribute('height', '50');\n element.style.visibility = 'hidden';\n }\n};\n// Note: IE10 on BrowserStack does not like this test\nvar focusObjectSvg = {\n name: 'can-focus-object-svg',\n element: 'object',\n mutate: function mutate(element) {\n element.setAttribute('type', 'image/svg+xml');\n element.setAttribute('data', svg);\n element.setAttribute('width', '200');\n element.setAttribute('height', '50');\n },\n validate: function validate(element, focusTarget, _document) {\n if (platform.is.GECKO) {\n // Firefox seems to be handling the object creation asynchronously and thereby produces a false negative test result.\n // Because we know Firefox is able to focus object elements referencing SVGs, we simply cheat by sniffing the user agent string\n return true;\n }\n return _document.activeElement === element;\n }\n};\n// Every Environment except IE9 considers SWF objects focusable\nvar result$1 = !platform.is.IE9;\nfunction focusObjectSwf() {\n return result$1;\n}\nvar focusRedirectImgUsemap = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML =\n '<map name=\"focus-redirect-img-usemap\"><area href=\"#void\" shape=\"rect\" coords=\"63,19,144,45\"></map>' +\n '<img usemap=\"#focus-redirect-img-usemap\" alt=\"\" ' +\n 'src=\"' +\n gif +\n '\">';\n // focus the <img>, not the <div>\n return element.querySelector('img');\n },\n validate: function validate(element, focusTarget, _document) {\n var target = element.querySelector('area');\n return _document.activeElement === target;\n }\n};\n// see https://jsbin.com/nenirisage/edit?html,js,console,output\nvar focusRedirectLegend = {\n element: 'fieldset',\n mutate: function mutate(element) {\n element.innerHTML =\n '<legend>legend</legend><input tabindex=\"-1\"><input tabindex=\"0\">';\n // take care of focus in validate();\n return false;\n },\n validate: function validate(element, focusTarget, _document) {\n var focusable = element.querySelector('input[tabindex=\"-1\"]');\n var tabbable = element.querySelector('input[tabindex=\"0\"]');\n // Firefox requires this test to focus the <fieldset> first, while this is not necessary in\n // https://jsbin.com/nenirisage/edit?html,js,console,output\n element.focus();\n element.querySelector('legend').focus();\n return ((_document.activeElement === focusable && 'focusable') ||\n (_document.activeElement === tabbable && 'tabbable') ||\n '');\n }\n};\n// https://github.com/medialize/ally.js/issues/21\nvar focusScrollBody = {\n element: 'div',\n mutate: function mutate(element) {\n element.setAttribute('style', 'width: 100px; height: 50px; overflow: auto;');\n element.innerHTML =\n '<div style=\"width: 500px; height: 40px;\">scrollable content</div>';\n return element.querySelector('div');\n }\n};\n// https://github.com/medialize/ally.js/issues/21\nvar focusScrollContainerWithoutOverflow = {\n element: 'div',\n mutate: function mutate(element) {\n element.setAttribute('style', 'width: 100px; height: 50px;');\n element.innerHTML =\n '<div style=\"width: 500px; height: 40px;\">scrollable content</div>';\n }\n};\n// https://github.com/medialize/ally.js/issues/21\nvar focusScrollContainer = {\n element: 'div',\n mutate: function mutate(element) {\n element.setAttribute('style', 'width: 100px; height: 50px; overflow: auto;');\n element.innerHTML =\n '<div style=\"width: 500px; height: 40px;\">scrollable content</div>';\n }\n};\nvar focusSummary = {\n element: 'details',\n mutate: function mutate(element) {\n element.innerHTML = '<summary>foo</summary><p>content</p>';\n return element.firstElementChild;\n }\n};\nfunction makeFocusableForeignObject() {\n var fragment = document.createElement('div');\n fragment.innerHTML =\n '<svg><foreignObject width=\"30\" height=\"30\">\\n <input type=\"text\"/>\\n </foreignObject></svg>';\n return fragment.firstChild.firstChild;\n}\nfunction focusSvgForeignObjectHack(element) {\n // Edge13, Edge14: foreignObject focus hack\n // https://jsbin.com/kunehinugi/edit?html,js,output\n // https://jsbin.com/fajagi/3/edit?html,js,output\n var isSvgElement = element.ownerSVGElement || element.nodeName.toLowerCase() === 'svg';\n if (!isSvgElement) {\n return false;\n }\n // inject and focus an <input> element into the SVG element to receive focus\n var foreignObject = makeFocusableForeignObject();\n element.appendChild(foreignObject);\n var input = foreignObject.querySelector('input');\n input.focus();\n // upon disabling the activeElement, IE and Edge\n // will not shift focus to <body> like all the other\n // browsers, but instead find the first focusable\n // ancestor and shift focus to that\n input.disabled = true;\n // clean up\n element.removeChild(foreignObject);\n return true;\n}\nfunction generate(element) {\n return ('<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">' +\n element +\n '</svg>');\n}\nfunction focus(element) {\n if (element.focus) {\n return;\n }\n try {\n HTMLElement.prototype.focus.call(element);\n }\n catch (e) {\n focusSvgForeignObjectHack(element);\n }\n}\nfunction validate(element, focusTarget, _document) {\n focus(focusTarget);\n return _document.activeElement === focusTarget;\n}\nvar focusSvgFocusableAttribute = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML = generate('<text focusable=\"true\">a</text>');\n return element.querySelector('text');\n },\n validate: validate\n};\nvar focusSvgTabindexAttribute = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML = generate('<text tabindex=\"0\">a</text>');\n return element.querySelector('text');\n },\n validate: validate\n};\nvar focusSvgNegativeTabindexAttribute = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML = generate('<text tabindex=\"-1\">a</text>');\n return element.querySelector('text');\n },\n validate: validate\n};\nvar focusSvgUseTabindex = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML = generate([\n '<g id=\"ally-test-target\"><a xlink:href=\"#void\"><text>link</text></a></g>',\n '<use xlink:href=\"#ally-test-target\" x=\"0\" y=\"0\" tabindex=\"-1\" />',\n ].join(''));\n return element.querySelector('use');\n },\n validate: validate\n};\nvar focusSvgForeignobjectTabindex = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML = generate('<foreignObject tabindex=\"-1\"><input type=\"text\" /></foreignObject>');\n // Safari 8's quersSelector() can't identify foreignObject, but getElementyByTagName() can\n return (element.querySelector('foreignObject') ||\n element.getElementsByTagName('foreignObject')[0]);\n },\n validate: validate\n};\n// Firefox seems to be handling the SVG-document-in-iframe creation asynchronously\n// and thereby produces a false negative test result. Thus the test is pointless\n// and we resort to UA sniffing once again.\n// see http://jsbin.com/vunadohoko/1/edit?js,console,output\nvar result$2 = Boolean(platform.is.GECKO &&\n typeof SVGElement !== 'undefined' &&\n SVGElement.prototype.focus);\nfunction focusSvgInIframe() {\n return result$2;\n}\nvar focusSvg = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML = generate('');\n return element.firstChild;\n },\n validate: validate\n};\n// Firefox allows *any* value and treats invalid values like tabindex=\"-1\"\n// @browser-issue Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=1128054\nvar focusTabindexTrailingCharacters = {\n element: 'div',\n mutate: function mutate(element) {\n element.setAttribute('tabindex', '3x');\n }\n};\nvar focusTable = {\n element: 'table',\n mutate: function mutate(element, wrapper, _document) {\n // IE9 has a problem replacing TBODY contents with innerHTML.\n // https://stackoverflow.com/a/8097055/515124\n // element.innerHTML = '<tr><td>cell</td></tr>';\n var fragment = _document.createDocumentFragment();\n fragment.innerHTML = '<tr><td>cell</td></tr>';\n element.appendChild(fragment);\n }\n};\nvar focusVideoWithoutControls = {\n element: 'video',\n mutate: function mutate(element) {\n try {\n // invalid media file can trigger warning in console, data-uri to prevent HTTP request\n element.setAttribute('src', gif);\n }\n catch (e) {\n // IE9 may throw \"Error: Not implemented\"\n }\n }\n};\n// https://jsbin.com/vafaba/3/edit?html,js,console,output\nvar result$3 = platform.is.GECKO || platform.is.TRIDENT || platform.is.EDGE;\nfunction tabsequenceAreaAtImgPosition() {\n return result$3;\n}\nvar testCallbacks = {\n cssShadowPiercingDeepCombinator: cssShadowPiercingDeepCombinator,\n focusInZeroDimensionObject: focusInZeroDimensionObject,\n focusObjectSwf: focusObjectSwf,\n focusSvgInIframe: focusSvgInIframe,\n tabsequenceAreaAtImgPosition: tabsequenceAreaAtImgPosition\n};\nvar testDescriptions = {\n focusAreaImgTabindex: focusAreaImgTabindex,\n focusAreaTabindex: focusAreaTabindex,\n focusAreaWithoutHref: focusAreaWithoutHref,\n focusAudioWithoutControls: focusAudioWithoutControls,\n focusBrokenImageMap: focusBrokenImageMap,\n focusChildrenOfFocusableFlexbox: focusChildrenOfFocusableFlexbox,\n focusFieldsetDisabled: focusFieldsetDisabled,\n focusFieldset: focusFieldset,\n focusFlexboxContainer: focusFlexboxContainer,\n focusFormDisabled: focusFormDisabled,\n focusImgIsmap: focusImgIsmap,\n focusImgUsemapTabindex: focusImgUsemapTabindex,\n focusInHiddenIframe: focusInHiddenIframe,\n focusInvalidTabindex: focusInvalidTabindex,\n focusLabelTabindex: focusLabelTabindex,\n focusObjectSvg: focusObjectSvg,\n focusObjectSvgHidden: focusObjectSvgHidden,\n focusRedirectImgUsemap: focusRedirectImgUsemap,\n focusRedirectLegend: focusRedirectLegend,\n focusScrollBody: focusScrollBody,\n focusScrollContainerWithoutOverflow: focusScrollContainerWithoutOverflow,\n focusScrollContainer: focusScrollContainer,\n focusSummary: focusSummary,\n focusSvgFocusableAttribute: focusSvgFocusableAttribute,\n focusSvgTabindexAttribute: focusSvgTabindexAttribute,\n focusSvgNegativeTabindexAttribute: focusSvgNegativeTabindexAttribute,\n focusSvgUseTabindex: focusSvgUseTabindex,\n focusSvgForeignobjectTabindex: focusSvgForeignobjectTabindex,\n focusSvg: focusSvg,\n focusTabindexTrailingCharacters: focusTabindexTrailingCharacters,\n focusTable: focusTable,\n focusVideoWithoutControls: focusVideoWithoutControls\n};\nfunction executeTests() {\n var results = detectFocus(testDescriptions);\n Object.keys(testCallbacks).forEach(function (key) {\n results[key] = testCallbacks[key]();\n });\n return results;\n}\nvar supportsCache = null;\nfunction _supports() {\n if (supportsCache) {\n return supportsCache;\n }\n supportsCache = cache$1.get();\n if (!supportsCache.time) {\n cache$1.set(executeTests());\n supportsCache = cache$1.get();\n }\n return supportsCache;\n}\nvar supports = void 0;\n// https://www.w3.org/TR/html5/infrastructure.html#rules-for-parsing-integers\n// NOTE: all browsers agree to allow trailing spaces as well\nvar validIntegerPatternNoTrailing = /^\\s*(-|\\+)?[0-9]+\\s*$/;\nvar validIntegerPatternWithTrailing = /^\\s*(-|\\+)?[0-9]+.*$/;\nfunction isValidTabindex(context) {\n if (!supports) {\n supports = _supports();\n }\n var validIntegerPattern = supports.focusTabindexTrailingCharacters\n ? validIntegerPatternWithTrailing\n : validIntegerPatternNoTrailing;\n var element = contextToElement({\n label: 'is/valid-tabindex',\n resolveDocument: true,\n context: context\n });\n // Edge 14 has a capitalization problem on SVG elements,\n // see https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/9282058/\n var hasTabindex = element.hasAttribute('tabindex');\n var hasTabIndex = element.hasAttribute('tabIndex');\n if (!hasTabindex && !hasTabIndex) {\n return false;\n }\n // older Firefox and Internet Explorer don't support tabindex on SVG elements\n var isSvgElement = element.ownerSVGElement || element.nodeName.toLowerCase() === 'svg';\n if (isSvgElement && !supports.focusSvgTabindexAttribute) {\n return false;\n }\n // @browser-issue Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=1128054\n if (supports.focusInvalidTabindex) {\n return true;\n }\n // an element matches the tabindex selector even if its value is invalid\n var tabindex = element.getAttribute(hasTabindex ? 'tabindex' : 'tabIndex');\n // IE11 parses tabindex=\"\" as the value \"-32768\"\n // @browser-issue Trident https://connect.microsoft.com/IE/feedback/details/1072965\n if (tabindex === '-32768') {\n return false;\n }\n return Boolean(tabindex && validIntegerPattern.test(tabindex));\n}\nfunction tabindexValue(element) {\n if (!isValidTabindex(element)) {\n return null;\n }\n // Edge 14 has a capitalization problem on SVG elements,\n // see https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/9282058/\n var hasTabindex = element.hasAttribute('tabindex');\n var attributeName = hasTabindex ? 'tabindex' : 'tabIndex';\n // @browser-issue Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=1128054\n var tabindex = parseInt(element.getAttribute(attributeName), 10);\n return isNaN(tabindex) ? -1 : tabindex;\n}\n// this is a shared utility file for focus-relevant.js and tabbable.js\n// separate testing of this file's functions is not necessary,\n// as they're implicitly tested by way of the consumers\nfunction isUserModifyWritable(style) {\n // https://www.w3.org/TR/1999/WD-css3-userint-19990916#user-modify\n // https://github.com/medialize/ally.js/issues/17\n var userModify = style.webkitUserModify || '';\n return Boolean(userModify && userModify.indexOf('write') !== -1);\n}\nfunction hasCssOverflowScroll(style) {\n return [\n style.getPropertyValue('overflow'),\n style.getPropertyValue('overflow-x'),\n style.getPropertyValue('overflow-y'),\n ].some(function (overflow) {\n return overflow === 'auto' || overflow === 'scroll';\n });\n}\nfunction hasCssDisplayFlex(style) {\n return style.display.indexOf('flex') > -1;\n}\nfunction isScrollableContainer(element, nodeName, parentNodeName, parentStyle) {\n if (nodeName !== 'div' && nodeName !== 'span') {\n // Internet Explorer advances scrollable containers and bodies to focusable\n // only if the scrollable container is <div> or <span> - this does *not*\n // happen for <section>, <article>, …\n return false;\n }\n if (parentNodeName &&\n parentNodeName !== 'div' &&\n parentNodeName !== 'span' &&\n !hasCssOverflowScroll(parentStyle)) {\n return false;\n }\n return (element.offsetHeight < element.scrollHeight ||\n element.offsetWidth < element.scrollWidth);\n}\nvar supports$1 = void 0;\nfunction isFocusRelevantRules() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, _ref$except = _ref.except, except = _ref$except === undefined\n ? {\n flexbox: false,\n scrollable: false,\n shadow: false\n }\n : _ref$except;\n if (!supports$1) {\n supports$1 = _supports();\n }\n var element = contextToElement({\n label: 'is/focus-relevant',\n resolveDocument: true,\n context: context\n });\n if (!except.shadow && element.shadowRoot) {\n // a ShadowDOM host receives focus when the focus moves to its content\n return true;\n }\n var nodeName = element.nodeName.toLowerCase();\n if (nodeName === 'input' && element.type === 'hidden') {\n // input[type=\"hidden\"] supports.cannot be focused\n return false;\n }\n if (nodeName === 'input' ||\n nodeName === 'select' ||\n nodeName === 'button' ||\n nodeName === 'textarea') {\n return true;\n }\n if (nodeName === 'legend' && supports$1.focusRedirectLegend) {\n // specifics filtered in is/focusable\n return true;\n }\n if (nodeName === 'label') {\n // specifics filtered in is/focusable\n return true;\n }\n if (nodeName === 'area') {\n // specifics filtered in is/focusable\n return true;\n }\n if (nodeName === 'a' && element.hasAttribute('href')) {\n return true;\n }\n if (nodeName === 'object' && element.hasAttribute('usemap')) {\n // object[usemap] is not focusable in any browser\n return false;\n }\n if (nodeName === 'object') {\n var svgType = element.getAttribute('type');\n if (!supports$1.focusObjectSvg && svgType === 'image/svg+xml') {\n // object[type=\"image/svg+xml\"] is not focusable in Internet Explorer\n return false;\n }\n else if (!supports$1.focusObjectSwf &&\n svgType === 'application/x-shockwave-flash') {\n // object[type=\"application/x-shockwave-flash\"] is not focusable in Internet Explorer 9\n return false;\n }\n }\n if (nodeName === 'iframe' || nodeName === 'object') {\n // browsing context containers\n return true;\n }\n if (nodeName === 'embed' || nodeName === 'keygen') {\n // embed is considered focus-relevant but not focusable\n // see https://github.com/medialize/ally.js/issues/82\n return true;\n }\n if (element.hasAttribute('contenteditable')) {\n // also see CSS property user-modify below\n return true;\n }\n if (nodeName === 'audio' &&\n (supports$1.focusAudioWithoutControls || element.hasAttribute('controls'))) {\n return true;\n }\n if (nodeName === 'video' &&\n (supports$1.focusVideoWithoutControls || element.hasAttribute('controls'))) {\n return true;\n }\n if (supports$1.focusSummary && nodeName === 'summary') {\n return true;\n }\n var validTabindex = isValidTabindex(element);\n if (nodeName === 'img' && element.hasAttribute('usemap')) {\n // Gecko, Trident and Edge do not allow an image with an image map and tabindex to be focused,\n // it appears the tabindex is overruled so focus is still forwarded to the <map>\n return ((validTabindex && supports$1.focusImgUsemapTabindex) ||\n supports$1.focusRedirectImgUsemap);\n }\n if (supports$1.focusTable && (nodeName === 'table' || nodeName === 'td')) {\n // IE10-11 supports.can focus <table> and <td>\n return true;\n }\n if (supports$1.focusFieldset && nodeName === 'fieldset') {\n // IE10-11 supports.can focus <fieldset>\n return true;\n }\n var isSvgElement = nodeName === 'svg';\n var isSvgContent = element.ownerSVGElement;\n var focusableAttribute = element.getAttribute('focusable');\n var tabindex = tabindexValue(element);\n if (nodeName === 'use' &&\n tabindex !== null &&\n !supports$1.focusSvgUseTabindex) {\n // <use> cannot be made focusable by adding a tabindex attribute anywhere but Blink and WebKit\n return false;\n }\n if (nodeName === 'foreignobject') {\n // <use> can only be made focusable in Blink and WebKit\n return tabindex !== null && supports$1.focusSvgForeignobjectTabindex;\n }\n if (elementMatches(element, 'svg a') && element.hasAttribute('xlink:href')) {\n return true;\n }\n if ((isSvgElement || isSvgContent) &&\n element.focus &&\n !supports$1.focusSvgNegativeTabindexAttribute &&\n tabindex < 0) {\n // Firefox 51 and 52 treat any natively tabbable SVG element with\n // tabindex=\"-1\" as tabbable and everything else as inert\n // see https://bugzilla.mozilla.org/show_bug.cgi?id=1302340\n return false;\n }\n if (isSvgElement) {\n return (validTabindex ||\n supports$1.focusSvg ||\n supports$1.focusSvgInIframe ||\n // Internet Explorer understands the focusable attribute introduced in SVG Tiny 1.2\n Boolean(supports$1.focusSvgFocusableAttribute &&\n focusableAttribute &&\n focusableAttribute === 'true'));\n }\n if (isSvgContent) {\n if (supports$1.focusSvgTabindexAttribute && validTabindex) {\n return true;\n }\n if (supports$1.focusSvgFocusableAttribute) {\n // Internet Explorer understands the focusable attribute introduced in SVG Tiny 1.2\n return focusableAttribute === 'true';\n }\n }\n // https://www.w3.org/TR/html5/editing.html#sequential-focus-navigation-and-the-tabindex-attribute\n if (validTabindex) {\n return true;\n }\n var style = window.getComputedStyle(element, null);\n if (isUserModifyWritable(style)) {\n return true;\n }\n if (supports$1.focusImgIsmap &&\n nodeName === 'img' &&\n element.hasAttribute('ismap')) {\n // IE10-11 considers the <img> in <a href><img ismap> focusable\n // https://github.com/medialize/ally.js/issues/20\n var hasLinkParent = getParents({ context: element }).some(function (parent) {\n return (parent.nodeName.toLowerCase() === 'a' && parent.hasAttribute('href'));\n });\n if (hasLinkParent) {\n return true;\n }\n }\n // https://github.com/medialize/ally.js/issues/21\n if (!except.scrollable && supports$1.focusScrollContainer) {\n if (supports$1.focusScrollContainerWithoutOverflow) {\n // Internet Explorer does will consider the scrollable area focusable\n // if the element is a <div> or a <span> and it is in fact scrollable,\n // regardless of the CSS overflow property\n if (isScrollableContainer(element, nodeName)) {\n return true;\n }\n }\n else if (hasCssOverflowScroll(style)) {\n // Firefox requires proper overflow setting, IE does not necessarily\n // https://developer.mozilla.org/en-US/docs/Web/CSS/overflow\n return true;\n }\n }\n if (!except.flexbox &&\n supports$1.focusFlexboxContainer &&\n hasCssDisplayFlex(style)) {\n // elements with display:flex are focusable in IE10-11\n return true;\n }\n var parent = element.parentElement;\n if (!except.scrollable && parent) {\n var parentNodeName = parent.nodeName.toLowerCase();\n var parentStyle = window.getComputedStyle(parent, null);\n if (supports$1.focusScrollBody &&\n isScrollableContainer(parent, nodeName, parentNodeName, parentStyle)) {\n // scrollable bodies are focusable Internet Explorer\n // https://github.com/medialize/ally.js/issues/21\n return true;\n }\n // Children of focusable elements with display:flex are focusable in IE10-11\n if (supports$1.focusChildrenOfFocusableFlexbox) {\n if (hasCssDisplayFlex(parentStyle)) {\n return true;\n }\n }\n }\n // NOTE: elements marked as inert are not focusable,\n // but that property is not exposed to the DOM\n // https://www.w3.org/TR/html5/editing.html#inert\n return false;\n}\n// bind exceptions to an iterator callback\nisFocusRelevantRules.except = function () {\n var except = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var isFocusRelevant = function isFocusRelevant(context) {\n return isFocusRelevantRules({\n context: context,\n except: except\n });\n };\n isFocusRelevant.rules = isFocusRelevantRules;\n return isFocusRelevant;\n};\n// provide isFocusRelevant(context) as default iterator callback\nvar isFocusRelevant = isFocusRelevantRules.except({});\nfunction findIndex(array, callback) {\n // attempt to use native or polyfilled Array#findIndex first\n if (array.findIndex) {\n return array.findIndex(callback);\n }\n var length = array.length;\n // shortcut if the array is empty\n if (length === 0) {\n return -1;\n }\n // otherwise loop over array\n for (var i = 0; i < length; i++) {\n if (callback(array[i], i, array)) {\n return i;\n }\n }\n return -1;\n}\nfunction getContentDocument(node) {\n try {\n // works on <object> and <iframe>\n return (node.contentDocument ||\n // works on <object> and <iframe>\n (node.contentWindow && node.contentWindow.document) ||\n // works on <object> and <iframe> that contain SVG\n (node.getSVGDocument && node.getSVGDocument()) ||\n null);\n }\n catch (e) {\n // SecurityError: Failed to read the 'contentDocument' property from 'HTMLObjectElement'\n // also IE may throw member not found exception e.g. on <object type=\"image/png\">\n return null;\n }\n}\nfunction getWindow(node) {\n var _document = getDocument(node);\n return _document.defaultView || window;\n}\nvar shadowPrefix = void 0;\nfunction selectInShadows(selector) {\n if (typeof shadowPrefix !== 'string') {\n var operator = cssShadowPiercingDeepCombinator();\n if (operator) {\n shadowPrefix = ', html ' + operator + ' ';\n }\n }\n if (!shadowPrefix) {\n return selector;\n }\n return (selector +\n shadowPrefix +\n selector\n .replace(/\\s*,\\s*/g, ',')\n .split(',')\n .join(shadowPrefix));\n}\nvar selector = void 0;\nfunction findDocumentHostElement(_window) {\n if (!selector) {\n selector = selectInShadows('object, iframe');\n }\n if (_window._frameElement !== undefined) {\n return _window._frameElement;\n }\n _window._frameElement = null;\n var potentialHosts = _window.parent.document.querySelectorAll(selector);\n [].some.call(potentialHosts, function (element) {\n var _document = getContentDocument(element);\n if (_document !== _window.document) {\n return false;\n }\n _window._frameElement = element;\n return true;\n });\n return _window._frameElement;\n}\nfunction getFrameElement(element) {\n var _window = getWindow(element);\n if (!_window.parent || _window.parent === _window) {\n // if there is no parent browsing context,\n // we're not going to get a frameElement either way\n return null;\n }\n try {\n // see https://developer.mozilla.org/en-US/docs/Web/API/Window/frameElement\n // does not work within <embed> anywhere, and not within in <object> in IE\n return _window.frameElement || findDocumentHostElement(_window);\n }\n catch (e) {\n return null;\n }\n}\n// https://www.w3.org/TR/html5/rendering.html#being-rendered\n// <area> is not rendered, but we *consider* it visible to simplfiy this function's usage\nvar notRenderedElementsPattern = /^(area)$/;\nfunction computedStyle(element, property) {\n return window.getComputedStyle(element, null).getPropertyValue(property);\n}\nfunction notDisplayed(_path) {\n return _path.some(function (element) {\n // display:none is not visible (optimized away at layout)\n return computedStyle(element, 'display') === 'none';\n });\n}\nfunction notVisible(_path) {\n // https://github.com/jquery/jquery-ui/blob/master/ui/core.js#L109-L114\n // NOTE: a nested element can reverse visibility:hidden|collapse by explicitly setting visibility:visible\n // NOTE: visibility can be [\"\", \"visible\", \"hidden\", \"collapse\"]\n var hidden = findIndex(_path, function (element) {\n var visibility = computedStyle(element, 'visibility');\n return visibility === 'hidden' || visibility === 'collapse';\n });\n if (hidden === -1) {\n // there is no hidden element\n return false;\n }\n var visible = findIndex(_path, function (element) {\n return computedStyle(element, 'visibility') === 'visible';\n });\n if (visible === -1) {\n // there is no visible element (but a hidden element)\n return true;\n }\n if (hidden < visible) {\n // there is a hidden element and it's closer than the first visible element\n return true;\n }\n // there may be a hidden element, but the closest element is visible\n return false;\n}\nfunction collapsedParent(_path) {\n var offset = 1;\n if (_path[0].nodeName.toLowerCase() === 'summary') {\n offset = 2;\n }\n return _path.slice(offset).some(function (element) {\n // \"content children\" of a closed details element are not visible\n return (element.nodeName.toLowerCase() === 'details' && element.open === false);\n });\n}\nfunction isVisibleRules() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, _ref$except = _ref.except, except = _ref$except === undefined\n ? {\n notRendered: false,\n cssDisplay: false,\n cssVisibility: false,\n detailsElement: false,\n browsingContext: false\n }\n : _ref$except;\n var element = contextToElement({\n label: 'is/visible',\n resolveDocument: true,\n context: context\n });\n var nodeName = element.nodeName.toLowerCase();\n if (!except.notRendered && notRenderedElementsPattern.test(nodeName)) {\n return true;\n }\n var _path = getParents({ context: element });\n // in Internet Explorer <audio> has a default display: none, where others have display: inline\n // but IE allows focusing <audio style=\"display:none\">, but not <div display:none><audio>\n // this is irrelevant to other browsers, as the controls attribute is required to make <audio> focusable\n var isAudioWithoutControls = nodeName === 'audio' && !element.hasAttribute('controls');\n if (!except.cssDisplay &&\n notDisplayed(isAudioWithoutControls ? _path.slice(1) : _path)) {\n return false;\n }\n if (!except.cssVisibility && notVisible(_path)) {\n return false;\n }\n if (!except.detailsElement && collapsedParent(_path)) {\n return false;\n }\n if (!except.browsingContext) {\n // elements within a browsing context are affected by the\n // browsing context host element's visibility and tabindex\n var frameElement = getFrameElement(element);\n var _isVisible = isVisibleRules.except(except);\n if (frameElement && !_isVisible(frameElement)) {\n return false;\n }\n }\n return true;\n}\n// bind exceptions to an iterator callback\nisVisibleRules.except = function () {\n var except = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var isVisible = function isVisible(context) {\n return isVisibleRules({\n context: context,\n except: except\n });\n };\n isVisible.rules = isVisibleRules;\n return isVisible;\n};\n// provide isVisible(context) as default iterator callback\nvar isVisible = isVisibleRules.except({});\nfunction getMapByName(name, _document) {\n // apparently getElementsByName() also considers id attribute in IE & opera\n // https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByName\n var map = _document.querySelector('map[name=\"' + (0, css_escape_1[\"default\"])(name) + '\"]');\n return map || null;\n}\nfunction getImageOfArea(element) {\n var map = element.parentElement;\n if (!map.name || map.nodeName.toLowerCase() !== 'map') {\n return null;\n }\n // NOTE: image maps can also be applied to <object> with image content,\n // but no browser supports this at the moment\n // HTML5 specifies HTMLMapElement.images to be an HTMLCollection of all\n // <img> and <object> referencing the <map> element, but no browser implements this\n // https://www.w3.org/TR/html5/embedded-content-0.html#the-map-element\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLMapElement\n // the image must be valid and loaded for the map to take effect\n var _document = getDocument(element);\n return (_document.querySelector('img[usemap=\"#' + (0, css_escape_1[\"default\"])(map.name) + '\"]') ||\n null);\n}\nvar supports$2 = void 0;\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/map\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attr-usemap\n// https://github.com/jquery/jquery-ui/blob/master/ui/core.js#L88-L107\nfunction isValidArea(context) {\n if (!supports$2) {\n supports$2 = _supports();\n }\n var element = contextToElement({\n label: 'is/valid-area',\n context: context\n });\n var nodeName = element.nodeName.toLowerCase();\n if (nodeName !== 'area') {\n return false;\n }\n var hasTabindex = element.hasAttribute('tabindex');\n if (!supports$2.focusAreaTabindex && hasTabindex) {\n // Blink and WebKit do not consider <area tabindex=\"-1\" href=\"#void\"> focusable\n return false;\n }\n var img = getImageOfArea(element);\n if (!img || !isVisible(img)) {\n return false;\n }\n // Firefox only allows fully loaded images to reference image maps\n // https://stereochro.me/ideas/detecting-broken-images-js\n if (!supports$2.focusBrokenImageMap &&\n (!img.complete ||\n !img.naturalHeight ||\n img.offsetWidth <= 0 ||\n img.offsetHeight <= 0)) {\n return false;\n }\n // Firefox supports.can focus area elements even if they don't have an href attribute\n if (!supports$2.focusAreaWithoutHref && !element.href) {\n // Internet explorer supports.can focus area elements without href if either\n // the area element or the image element has a tabindex attribute\n return ((supports$2.focusAreaTabindex && hasTabindex) ||\n (supports$2.focusAreaImgTabindex && img.hasAttribute('tabindex')));\n }\n // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attr-usemap\n var childOfInteractive = getParents({ context: img })\n .slice(1)\n .some(function (_element) {\n var name = _element.nodeName.toLowerCase();\n return name === 'button' || name === 'a';\n });\n if (childOfInteractive) {\n return false;\n }\n return true;\n}\nvar supports$3 = void 0;\n// https://www.w3.org/TR/html5/disabled-elements.html#concept-element-disabled\nvar disabledElementsPattern = void 0;\nvar disabledElements = {\n input: true,\n select: true,\n textarea: true,\n button: true,\n fieldset: true,\n form: true\n};\nfunction isNativeDisabledSupported(context) {\n if (!supports$3) {\n supports$3 = _supports();\n if (supports$3.focusFieldsetDisabled) {\n delete disabledElements.fieldset;\n }\n if (supports$3.focusFormDisabled) {\n delete disabledElements.form;\n }\n disabledElementsPattern = new RegExp('^(' + Object.keys(disabledElements).join('|') + ')$');\n }\n var element = contextToElement({\n label: 'is/native-disabled-supported',\n context: context\n });\n var nodeName = element.nodeName.toLowerCase();\n return Boolean(disabledElementsPattern.test(nodeName));\n}\nvar supports$4 = void 0;\nfunction isDisabledFieldset(element) {\n var nodeName = element.nodeName.toLowerCase();\n return nodeName === 'fieldset' && element.disabled;\n}\nfunction isDisabledForm(element) {\n var nodeName = element.nodeName.toLowerCase();\n return nodeName === 'form' && element.disabled;\n}\nfunction isDisabled(context) {\n if (!supports$4) {\n supports$4 = _supports();\n }\n var element = contextToElement({\n label: 'is/disabled',\n context: context\n });\n if (element.hasAttribute('data-ally-disabled')) {\n // treat ally's element/disabled like the DOM native element.disabled\n return true;\n }\n if (!isNativeDisabledSupported(element)) {\n // non-form elements do not support the disabled attribute\n return false;\n }\n if (element.disabled) {\n // the element itself is disabled\n return true;\n }\n var parents = getParents({ context: element });\n if (parents.some(isDisabledFieldset)) {\n // a parental <fieldset> is disabld and inherits the state onto this element\n return true;\n }\n if (!supports$4.focusFormDisabled && parents.some(isDisabledForm)) {\n // a parental <form> is disabld and inherits the state onto this element\n return true;\n }\n return false;\n}\nfunction isOnlyTabbableRules() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, _ref$except = _ref.except, except = _ref$except === undefined\n ? {\n onlyFocusableBrowsingContext: false,\n visible: false\n }\n : _ref$except;\n var element = contextToElement({\n label: 'is/only-tabbable',\n resolveDocument: true,\n context: context\n });\n if (!except.visible && !isVisible(element)) {\n return false;\n }\n if (!except.onlyFocusableBrowsingContext &&\n (platform.is.GECKO || platform.is.TRIDENT || platform.is.EDGE)) {\n var frameElement = getFrameElement(element);\n if (frameElement) {\n if (tabindexValue(frameElement) < 0) {\n // iframe[tabindex=\"-1\"] and object[tabindex=\"-1\"] inherit the\n // tabbable demotion onto elements of their browsing contexts\n return false;\n }\n }\n }\n var nodeName = element.nodeName.toLowerCase();\n var tabindex = tabindexValue(element);\n if (nodeName === 'label' && platform.is.GECKO) {\n // Firefox cannot focus, but tab to: label[tabindex=0]\n return tabindex !== null && tabindex >= 0;\n }\n // SVG Elements were keyboard focusable but not script focusable before Firefox 51.\n // Firefox 51 added the focus management DOM API (.focus and .blur) to SVGElement,\n // see https://bugzilla.mozilla.org/show_bug.cgi?id=778654\n if (platform.is.GECKO && element.ownerSVGElement && !element.focus) {\n if (nodeName === 'a' && element.hasAttribute('xlink:href')) {\n // any focusable child of <svg> cannot be focused, but tabbed to\n if (platform.is.GECKO) {\n return true;\n }\n }\n }\n return false;\n}\n// bind exceptions to an iterator callback\nisOnlyTabbableRules.except = function () {\n var except = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var isOnlyTabbable = function isOnlyTabbable(context) {\n return isOnlyTabbableRules({\n context: context,\n except: except\n });\n };\n isOnlyTabbable.rules = isOnlyTabbableRules;\n return isOnlyTabbable;\n};\n// provide isOnlyTabbable(context) as default iterator callback\nvar isOnlyTabbable = isOnlyTabbableRules.except({});\nvar supports$5 = void 0;\nfunction isOnlyFocusRelevant(element) {\n var nodeName = element.nodeName.toLowerCase();\n if (nodeName === 'embed' || nodeName === 'keygen') {\n // embed is considered focus-relevant but not focusable\n // see https://github.com/medialize/ally.js/issues/82\n return true;\n }\n var _tabindex = tabindexValue(element);\n if (element.shadowRoot && _tabindex === null) {\n // ShadowDOM host elements *may* receive focus\n // even though they are not considered focuable\n return true;\n }\n if (nodeName === 'label') {\n // <label tabindex=\"0\"> is only tabbable in Firefox, not script-focusable\n // there's no way to make an element focusable other than by adding a tabindex,\n // and focus behavior of the label element seems hard-wired to ignore tabindex\n // in some browsers (like Gecko, Blink and WebKit)\n return !supports$5.focusLabelTabindex || _tabindex === null;\n }\n if (nodeName === 'legend') {\n return _tabindex === null;\n }\n if (supports$5.focusSvgFocusableAttribute &&\n (element.ownerSVGElement || nodeName === 'svg')) {\n // Internet Explorer understands the focusable attribute introduced in SVG Tiny 1.2\n var focusableAttribute = element.getAttribute('focusable');\n return focusableAttribute && focusableAttribute === 'false';\n }\n if (nodeName === 'img' && element.hasAttribute('usemap')) {\n // Gecko, Trident and Edge do not allow an image with an image map and tabindex to be focused,\n // it appears the tabindex is overruled so focus is still forwarded to the <map>\n return _tabindex === null || !supports$5.focusImgUsemapTabindex;\n }\n if (nodeName === 'area') {\n // all <area>s are considered relevant,\n // but only the valid <area>s are focusable\n return !isValidArea(element);\n }\n return false;\n}\nfunction isFocusableRules() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, _ref$except = _ref.except, except = _ref$except === undefined\n ? {\n disabled: false,\n visible: false,\n onlyTabbable: false\n }\n : _ref$except;\n if (!supports$5) {\n supports$5 = _supports();\n }\n var _isOnlyTabbable = isOnlyTabbable.rules.except({\n onlyFocusableBrowsingContext: true,\n visible: except.visible\n });\n var element = contextToElement({\n label: 'is/focusable',\n resolveDocument: true,\n context: context\n });\n var focusRelevant = isFocusRelevant.rules({\n context: element,\n except: except\n });\n if (!focusRelevant || isOnlyFocusRelevant(element)) {\n return false;\n }\n if (!except.disabled && isDisabled(element)) {\n return false;\n }\n if (!except.onlyTabbable && _isOnlyTabbable(element)) {\n // some elements may be keyboard focusable, but not script focusable\n return false;\n }\n // elements that are not rendered, cannot be focused\n if (!except.visible) {\n var visibilityOptions = {\n context: element,\n except: {}\n };\n if (supports$5.focusInHiddenIframe) {\n // WebKit and Blink can focus content in hidden <iframe> and <object>\n visibilityOptions.except.browsingContext = true;\n }\n if (supports$5.focusObjectSvgHidden) {\n // Blink allows focusing the object element, even if it has visibility: hidden;\n // @browser-issue Blink https://code.google.com/p/chromium/issues/detail?id=586191\n var _nodeName2 = element.nodeName.toLowerCase();\n if (_nodeName2 === 'object') {\n visibilityOptions.except.cssVisibility = true;\n }\n }\n if (!isVisible.rules(visibilityOptions)) {\n return false;\n }\n }\n var frameElement = getFrameElement(element);\n if (frameElement) {\n var _nodeName = frameElement.nodeName.toLowerCase();\n if (_nodeName === 'object' && !supports$5.focusInZeroDimensionObject) {\n if (!frameElement.offsetWidth || !frameElement.offsetHeight) {\n // WebKit can not focus content in <object> if it doesn't have dimensions\n return false;\n }\n }\n }\n var nodeName = element.nodeName.toLowerCase();\n if (nodeName === 'svg' &&\n supports$5.focusSvgInIframe &&\n !frameElement &&\n element.getAttribute('tabindex') === null) {\n return false;\n }\n return true;\n}\n// bind exceptions to an iterator callback\nisFocusableRules.except = function () {\n var except = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var isFocusable = function isFocusable(context) {\n return isFocusableRules({\n context: context,\n except: except\n });\n };\n isFocusable.rules = isFocusableRules;\n return isFocusable;\n};\n// provide isFocusRelevant(context) as default iterator callback\nvar isFocusable = isFocusableRules.except({});\nfunction createFilter(condition) {\n // see https://developer.mozilla.org/en-US/docs/Web/API/NodeFilter\n var filter = function filter(node) {\n if (node.shadowRoot) {\n // return ShadowRoot elements regardless of them being focusable,\n // so they can be walked recursively later\n return NodeFilter.FILTER_ACCEPT;\n }\n if (condition(node)) {\n // finds elements that could have been found by document.querySelectorAll()\n return NodeFilter.FILTER_ACCEPT;\n }\n return NodeFilter.FILTER_SKIP;\n };\n // IE requires a function, Browsers require {acceptNode: function}\n // see http://www.bennadel.com/blog/2607-finding-html-comment-nodes-in-the-dom-using-treewalker.htm\n filter.acceptNode = filter;\n return filter;\n}\nvar PossiblyFocusableFilter = createFilter(isFocusRelevant);\nfunction queryFocusableStrict() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, includeContext = _ref.includeContext, includeOnlyTabbable = _ref.includeOnlyTabbable, strategy = _ref.strategy;\n if (!context) {\n context = document.documentElement;\n }\n var _isFocusable = isFocusable.rules.except({\n onlyTabbable: includeOnlyTabbable\n });\n var _document = getDocument(context);\n // see https://developer.mozilla.org/en-US/docs/Web/API/Document/createTreeWalker\n var walker = _document.createTreeWalker(\n // root element to start search in\n context, \n // element type filter\n NodeFilter.SHOW_ELEMENT, \n // custom NodeFilter filter\n strategy === 'all' ? PossiblyFocusableFilter : createFilter(_isFocusable), \n // deprecated, but IE requires it\n false);\n var list = [];\n while (walker.nextNode()) {\n if (walker.currentNode.shadowRoot) {\n if (_isFocusable(walker.currentNode)) {\n list.push(walker.currentNode);\n }\n list = list.concat(queryFocusableStrict({\n context: walker.currentNode.shadowRoot,\n includeOnlyTabbable: includeOnlyTabbable,\n strategy: strategy\n }));\n }\n else {\n list.push(walker.currentNode);\n }\n }\n // add context if requested and focusable\n if (includeContext) {\n if (strategy === 'all') {\n if (isFocusRelevant(context)) {\n list.unshift(context);\n }\n }\n else if (_isFocusable(context)) {\n list.unshift(context);\n }\n }\n return list;\n}\n// NOTE: this selector MUST *never* be used directly,\nvar supports$6 = void 0;\nvar selector$1 = void 0;\nfunction selector$2() {\n if (!supports$6) {\n supports$6 = _supports();\n }\n if (typeof selector$1 === 'string') {\n return selector$1;\n }\n // https://www.w3.org/TR/html5/editing.html#sequential-focus-navigation-and-the-tabindex-attribute\n selector$1 =\n '' +\n // IE11 supports.can focus <table> and <td>\n (supports$6.focusTable ? 'table, td,' : '') +\n // IE11 supports.can focus <fieldset>\n (supports$6.focusFieldset ? 'fieldset,' : '') +\n // Namespace problems of [xlink:href] explained in https://stackoverflow.com/a/23047888/515124\n // svg a[*|href] does not match in IE9, but since we're filtering\n // through is/focusable we can include all <a> from SVG\n 'svg a,' +\n // may behave as 'svg, svg *,' in chrome as *every* svg element with a focus event listener is focusable\n // navigational elements\n 'a[href],' +\n // validity determined by is/valid-area.js\n 'area[href],' +\n // validity determined by is/disabled.js\n 'input, select, textarea, button,' +\n // browsing context containers\n 'iframe, object, embed,' +\n // interactive content\n 'keygen,' +\n (supports$6.focusAudioWithoutControls ? 'audio,' : 'audio[controls],') +\n (supports$6.focusVideoWithoutControls ? 'video,' : 'video[controls],') +\n (supports$6.focusSummary ? 'summary,' : '') +\n // validity determined by is/valid-tabindex.js\n '[tabindex],' +\n // editing hosts\n '[contenteditable]';\n // where ShadowDOM is supported, we also want the shadowed focusable elements (via \">>>\" or \"/deep/\")\n selector$1 = selectInShadows(selector$1);\n return selector$1;\n}\nfunction queryFocusableQuick() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, includeContext = _ref.includeContext, includeOnlyTabbable = _ref.includeOnlyTabbable;\n var _selector = selector$2();\n var elements = context.querySelectorAll(_selector);\n // the selector potentially matches more than really is focusable\n var _isFocusable = isFocusable.rules.except({\n onlyTabbable: includeOnlyTabbable\n });\n var result = [].filter.call(elements, _isFocusable);\n // add context if requested and focusable\n if (includeContext && _isFocusable(context)) {\n result.unshift(context);\n }\n return result;\n}\nfunction queryFocusable() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, includeContext = _ref.includeContext, includeOnlyTabbable = _ref.includeOnlyTabbable, _ref$strategy = _ref.strategy, strategy = _ref$strategy === undefined ? 'quick' : _ref$strategy;\n var element = contextToElement({\n label: 'query/focusable',\n resolveDocument: true,\n defaultToDocument: true,\n context: context\n });\n var options = {\n context: element,\n includeContext: includeContext,\n includeOnlyTabbable: includeOnlyTabbable,\n strategy: strategy\n };\n if (strategy === 'quick') {\n return queryFocusableQuick(options);\n }\n else if (strategy === 'strict' || strategy === 'all') {\n return queryFocusableStrict(options);\n }\n throw new TypeError('query/focusable requires option.strategy to be one of [\"quick\", \"strict\", \"all\"]');\n}\nvar supports$7 = void 0;\n// Internet Explorer 11 considers fieldset, table, td focusable, but not tabbable\n// Internet Explorer 11 considers body to have [tabindex=0], but does not allow tabbing to it\nvar focusableElementsPattern = /^(fieldset|table|td|body)$/;\nfunction isTabbableRules() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, _ref$except = _ref.except, except = _ref$except === undefined\n ? {\n flexbox: false,\n scrollable: false,\n shadow: false,\n visible: false,\n onlyTabbable: false\n }\n : _ref$except;\n if (!supports$7) {\n supports$7 = _supports();\n }\n var element = contextToElement({\n label: 'is/tabbable',\n resolveDocument: true,\n context: context\n });\n if (platform.is.BLINK && platform.is.ANDROID && platform.majorVersion > 42) {\n // External keyboard support worked fine in CHrome 42, but stopped working in Chrome 45.\n // The on-screen keyboard does not provide a way to focus the next input element (like iOS does).\n // That leaves us with no option to advance focus by keyboard, ergo nothing is tabbable (keyboard focusable).\n return false;\n }\n var frameElement = getFrameElement(element);\n if (frameElement) {\n if (platform.is.WEBKIT && platform.is.IOS) {\n // iOS only does not consider anything from another browsing context keyboard focusable\n return false;\n }\n // iframe[tabindex=\"-1\"] and object[tabindex=\"-1\"] inherit the\n // tabbable demotion onto elements of their browsing contexts\n if (tabindexValue(frameElement) < 0) {\n return false;\n }\n if (!except.visible &&\n (platform.is.BLINK || platform.is.WEBKIT) &&\n !isVisible(frameElement)) {\n // Blink and WebKit consider elements in hidden browsing contexts focusable, but not tabbable\n return false;\n }\n // Webkit and Blink don't consider anything in <object> tabbable\n // Blink fixed that fixed in Chrome 54, Opera 41\n var frameNodeName = frameElement.nodeName.toLowerCase();\n if (frameNodeName === 'object') {\n var isFixedBlink = (platform.name === 'Chrome' && platform.majorVersion >= 54) ||\n (platform.name === 'Opera' && platform.majorVersion >= 41);\n if (platform.is.WEBKIT || (platform.is.BLINK && !isFixedBlink)) {\n return false;\n }\n }\n }\n var nodeName = element.nodeName.toLowerCase();\n var _tabindex = tabindexValue(element);\n var tabindex = _tabindex === null ? null : _tabindex >= 0;\n if (platform.is.EDGE &&\n platform.majorVersion >= 14 &&\n frameElement &&\n element.ownerSVGElement &&\n _tabindex < 0) {\n // Edge 14+ considers <a xlink:href=\"…\" tabindex=\"-1\"> keyboard focusable\n // if the element is in a nested browsing context\n return true;\n }\n var hasTabbableTabindexOrNone = tabindex !== false;\n var hasTabbableTabindex = _tabindex !== null && _tabindex >= 0;\n // NOTE: Firefox 31 considers [contenteditable] to have [tabindex=-1], but allows tabbing to it\n // fixed in Firefox 40 the latest - https://bugzilla.mozilla.org/show_bug.cgi?id=1185657\n if (element.hasAttribute('contenteditable')) {\n // tabbing can still be disabled by explicitly providing [tabindex=\"-1\"]\n return hasTabbableTabindexOrNone;\n }\n if (focusableElementsPattern.test(nodeName) && tabindex !== true) {\n return false;\n }\n if (platform.is.WEBKIT && platform.is.IOS) {\n // iOS only considers a hand full of elements tabbable (keyboard focusable)\n // this holds true even with external keyboards\n var potentiallyTabbable = (nodeName === 'input' && element.type === 'text') ||\n element.type === 'password' ||\n nodeName === 'select' ||\n nodeName === 'textarea' ||\n element.hasAttribute('contenteditable');\n if (!potentiallyTabbable) {\n var style = window.getComputedStyle(element, null);\n potentiallyTabbable = isUserModifyWritable(style);\n }\n if (!potentiallyTabbable) {\n return false;\n }\n }\n if (nodeName === 'use' && _tabindex !== null) {\n if (platform.is.BLINK ||\n (platform.is.WEBKIT && platform.majorVersion === 9)) {\n // In Chrome and Safari 9 the <use> element is keyboard focusable even for tabindex=\"-1\"\n return true;\n }\n }\n if (elementMatches(element, 'svg a') && element.hasAttribute('xlink:href')) {\n if (hasTabbableTabindexOrNone) {\n // in Trident and Gecko SVGElement does not handle the tabIndex property properly\n return true;\n }\n if (element.focus && !supports$7.focusSvgNegativeTabindexAttribute) {\n // Firefox 51 and 52 treat any natively tabbable SVG element with\n // tabindex=\"-1\" as tabbable and everything else as inert\n // see https://bugzilla.mozilla.org/show_bug.cgi?id=1302340\n return true;\n }\n }\n if (nodeName === 'svg' &&\n supports$7.focusSvgInIframe &&\n hasTabbableTabindexOrNone) {\n return true;\n }\n if (platform.is.TRIDENT || platform.is.EDGE) {\n if (nodeName === 'svg') {\n if (supports$7.focusSvg) {\n // older Internet Explorers consider <svg> keyboard focusable\n // unless they have focsable=\"false\", but then they wouldn't\n // be focusable and thus not even reach this filter\n return true;\n }\n // elements that have [focusable] are automatically keyboard focusable regardless of the attribute's value\n return element.hasAttribute('focusable') || hasTabbableTabindex;\n }\n if (element.ownerSVGElement) {\n if (supports$7.focusSvgTabindexAttribute && hasTabbableTabindex) {\n return true;\n }\n // elements that have [focusable] are automatically keyboard focusable regardless of the attribute's value\n return element.hasAttribute('focusable');\n }\n }\n if (element.tabIndex === undefined) {\n return Boolean(except.onlyTabbable);\n }\n if (nodeName === 'audio') {\n if (!element.hasAttribute('controls')) {\n // In Internet Explorer the <audio> element is focusable, but not tabbable, and tabIndex property is wrong\n return false;\n }\n else if (platform.is.BLINK) {\n // In Chrome <audio controls tabindex=\"-1\"> remains keyboard focusable\n return true;\n }\n }\n if (nodeName === 'video') {\n if (!element.hasAttribute('controls')) {\n if (platform.is.TRIDENT || platform.is.EDGE) {\n // In Internet Explorer and Edge the <video> element is focusable, but not tabbable, and tabIndex property is wrong\n return false;\n }\n }\n else if (platform.is.BLINK || platform.is.GECKO) {\n // In Chrome and Firefox <video controls tabindex=\"-1\"> remains keyboard focusable\n return true;\n }\n }\n if (nodeName === 'object') {\n if (platform.is.BLINK || platform.is.WEBKIT) {\n // In all Blink and WebKit based browsers <embed> and <object> are never keyboard focusable, even with tabindex=\"0\" set\n return false;\n }\n }\n if (nodeName === 'iframe') {\n // In Internet Explorer all iframes are only focusable\n // In WebKit, Blink and Gecko iframes may be tabbable depending on content.\n // Since we can't reliably investigate iframe documents because of the\n // SameOriginPolicy, we're declaring everything only focusable.\n return false;\n }\n if (!except.scrollable && platform.is.GECKO) {\n // Firefox considers scrollable containers keyboard focusable,\n // even though their tabIndex property is -1\n var _style = window.getComputedStyle(element, null);\n if (hasCssOverflowScroll(_style)) {\n return hasTabbableTabindexOrNone;\n }\n }\n if (platform.is.TRIDENT || platform.is.EDGE) {\n // IE and Edge degrade <area> to script focusable, if the image\n // using the <map> has been given tabindex=\"-1\"\n if (nodeName === 'area') {\n var img = getImageOfArea(element);\n if (img && tabindexValue(img) < 0) {\n return false;\n }\n }\n var _style2 = window.getComputedStyle(element, null);\n if (isUserModifyWritable(_style2)) {\n // prevent being swallowed by the overzealous isScrollableContainer() below\n return element.tabIndex >= 0;\n }\n if (!except.flexbox && hasCssDisplayFlex(_style2)) {\n if (_tabindex !== null) {\n return hasTabbableTabindex;\n }\n return (isFocusRelevantWithoutFlexbox(element) &&\n isTabbableWithoutFlexbox(element));\n }\n // IE considers scrollable containers script focusable only,\n // even though their tabIndex property is 0\n if (isScrollableContainer(element, nodeName)) {\n return false;\n }\n var parent = element.parentElement;\n if (parent) {\n var parentNodeName = parent.nodeName.toLowerCase();\n var parentStyle = window.getComputedStyle(parent, null);\n // IE considers scrollable bodies script focusable only,\n if (isScrollableContainer(parent, nodeName, parentNodeName, parentStyle)) {\n return false;\n }\n // Children of focusable elements with display:flex are focusable in IE10-11,\n // even though their tabIndex property suggests otherwise\n if (hasCssDisplayFlex(parentStyle)) {\n // value of tabindex takes precedence\n return hasTabbableTabindex;\n }\n }\n }\n // https://www.w3.org/WAI/PF/aria-practices/#focus_tabindex\n return element.tabIndex >= 0;\n}\n// bind exceptions to an iterator callback\nisTabbableRules.except = function () {\n var except = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var isTabbable = function isTabbable(context) {\n return isTabbableRules({\n context: context,\n except: except\n });\n };\n isTabbable.rules = isTabbableRules;\n return isTabbable;\n};\nvar isFocusRelevantWithoutFlexbox = isFocusRelevant.rules.except({\n flexbox: true\n});\nvar isTabbableWithoutFlexbox = isTabbableRules.except({ flexbox: true });\n// provide isTabbable(context) as default iterator callback\nvar isTabbable = isTabbableRules.except({});\nfunction queryTabbable() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, includeContext = _ref.includeContext, includeOnlyTabbable = _ref.includeOnlyTabbable, strategy = _ref.strategy;\n var _isTabbable = isTabbable.rules.except({\n onlyTabbable: includeOnlyTabbable\n });\n return queryFocusable({\n context: context,\n includeContext: includeContext,\n includeOnlyTabbable: includeOnlyTabbable,\n strategy: strategy\n }).filter(_isTabbable);\n}\n// sorts a list of elements according to their order in the DOM\nfunction compareDomPosition(a, b) {\n return a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING\n ? -1\n : 1;\n}\nfunction sortDomOrder(elements) {\n return elements.sort(compareDomPosition);\n}\nfunction getFirstSuccessorOffset(list, target) {\n // find the first element that comes AFTER the target element\n return findIndex(list, function (element) {\n return (target.compareDocumentPosition(element) & Node.DOCUMENT_POSITION_FOLLOWING);\n });\n}\nfunction findInsertionOffsets(list, elements, resolveElement) {\n // instead of mutating the elements list directly, remember position and map\n // to inject later, when we can do this more efficiently\n var insertions = [];\n elements.forEach(function (element) {\n var replace = true;\n var offset = list.indexOf(element);\n if (offset === -1) {\n // element is not in target list\n offset = getFirstSuccessorOffset(list, element);\n replace = false;\n }\n if (offset === -1) {\n // there is no successor in the tabsequence,\n // meaning the image must be the last element\n offset = list.length;\n }\n // allow the consumer to replace the injected element\n var injections = nodeArray(resolveElement ? resolveElement(element) : element);\n if (!injections.length) {\n // we can't inject zero elements\n return;\n }\n insertions.push({\n offset: offset,\n replace: replace,\n elements: injections\n });\n });\n return insertions;\n}\nfunction insertElementsAtOffsets(list, insertions) {\n // remember the number of elements we have already injected\n // so we account for the caused index offset\n var inserted = 0;\n // make sure that we insert the elements in sequence,\n // otherwise the offset compensation won't work\n insertions.sort(function (a, b) {\n return a.offset - b.offset;\n });\n insertions.forEach(function (insertion) {\n // array.splice has an annoying function signature :(\n var remove = insertion.replace ? 1 : 0;\n var args = [insertion.offset + inserted, remove].concat(insertion.elements);\n list.splice.apply(list, args);\n inserted += insertion.elements.length - remove;\n });\n}\nfunction mergeInDomOrder() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, list = _ref.list, elements = _ref.elements, resolveElement = _ref.resolveElement;\n // operate on a copy so we don't mutate the original array\n var _list = list.slice(0);\n // make sure the elements we're injecting are provided in DOM order\n var _elements = nodeArray(elements).slice(0);\n sortDomOrder(_elements);\n // find the offsets within the target array (list) at which to inject\n // each individual element (from elements)\n var insertions = findInsertionOffsets(_list, _elements, resolveElement);\n // actually inject the elements into the target array at the identified positions\n insertElementsAtOffsets(_list, insertions);\n return _list;\n}\nvar _createClass = (function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n})();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Maps = (function () {\n function Maps(context) {\n _classCallCheck(this, Maps);\n this._document = getDocument(context);\n this.maps = {};\n }\n _createClass(Maps, [\n {\n key: 'getAreasFor',\n value: function getAreasFor(name) {\n if (!this.maps[name]) {\n // the map is not defined within the context, so we\n // have to go find it elsewhere in the document\n this.addMapByName(name);\n }\n return this.maps[name];\n }\n },\n {\n key: 'addMapByName',\n value: function addMapByName(name) {\n var map = getMapByName(name, this._document);\n if (!map) {\n // if there is no map, the img[usemap] wasn't doing anything anyway\n return;\n }\n this.maps[map.name] = queryTabbable({ context: map });\n }\n },\n {\n key: 'extractAreasFromList',\n value: function extractAreasFromList(elements) {\n // remove all <area> elements from the elements list,\n // but put them the map for later retrieval\n return elements.filter(function (element) {\n var nodeName = element.nodeName.toLowerCase();\n if (nodeName !== 'area') {\n return true;\n }\n var map = element.parentNode;\n if (!this.maps[map.name]) {\n this.maps[map.name] = [];\n }\n this.maps[map.name].push(element);\n return false;\n }, this);\n }\n },\n ]);\n return Maps;\n})();\nfunction sortArea(elements, context) {\n // images - unless they are focusable themselves, likely not\n // part of the elements list, so we'll have to find them and\n // sort them into the elements list manually\n var usemaps = context.querySelectorAll('img[usemap]');\n var maps = new Maps(context);\n // remove all <area> elements from the elements list,\n // but put them the map for later retrieval\n var _elements = maps.extractAreasFromList(elements);\n if (!usemaps.length) {\n // the context does not contain any <area>s so no need\n // to replace anything, just remove any maps\n return _elements;\n }\n return mergeInDomOrder({\n list: _elements,\n elements: usemaps,\n resolveElement: function resolveElement(image) {\n var name = image.getAttribute('usemap').slice(1);\n return maps.getAreasFor(name);\n }\n });\n}\nvar _createClass$1 = (function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n})();\nfunction _classCallCheck$1(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Shadows = (function () {\n function Shadows(context, sortElements) {\n _classCallCheck$1(this, Shadows);\n // document context we're working with\n this.context = context;\n // callback that sorts an array of elements\n this.sortElements = sortElements;\n // reference to create unique IDs for each ShadowHost\n this.hostCounter = 1;\n // reference map for child-ShadowHosts of a ShadowHost\n this.inHost = {};\n // reference map for child-ShadowHost of the document\n this.inDocument = [];\n // reference map for ShadowHosts\n this.hosts = {};\n // reference map for tabbable elements of a ShadowHost\n this.elements = {};\n }\n // remember which hosts we have to sort within later\n _createClass$1(Shadows, [\n {\n key: '_registerHost',\n value: function _registerHost(host) {\n if (host._sortingId) {\n return;\n }\n // make the ShadowHost identifiable (see cleanup() for undo)\n host._sortingId = 'shadow-' + this.hostCounter++;\n this.hosts[host._sortingId] = host;\n // hosts may contain other hosts\n var parentHost = getShadowHost({ context: host });\n if (parentHost) {\n this._registerHost(parentHost);\n this._registerHostParent(host, parentHost);\n }\n else {\n this.inDocument.push(host);\n }\n }\n },\n {\n key: '_registerHostParent',\n value: function _registerHostParent(host, parent) {\n if (!this.inHost[parent._sortingId]) {\n this.inHost[parent._sortingId] = [];\n }\n this.inHost[parent._sortingId].push(host);\n }\n },\n {\n key: '_registerElement',\n value: function _registerElement(element, host) {\n if (!this.elements[host._sortingId]) {\n this.elements[host._sortingId] = [];\n }\n this.elements[host._sortingId].push(element);\n }\n },\n {\n key: 'extractElements',\n value: function extractElements(elements) {\n return elements.filter(function (element) {\n var host = getShadowHost({ context: element });\n if (!host) {\n return true;\n }\n this._registerHost(host);\n this._registerElement(element, host);\n return false;\n }, this);\n }\n },\n {\n key: 'sort',\n value: function sort(elements) {\n var _elements = this._injectHosts(elements);\n _elements = this._replaceHosts(_elements);\n this._cleanup();\n return _elements;\n }\n },\n {\n key: '_injectHosts',\n value: function _injectHosts(elements) {\n Object.keys(this.hosts).forEach(function (_sortingId) {\n var _list = this.elements[_sortingId];\n var _elements = this.inHost[_sortingId];\n var _context = this.hosts[_sortingId].shadowRoot;\n this.elements[_sortingId] = this._merge(_list, _elements, _context);\n }, this);\n return this._merge(elements, this.inDocument, this.context);\n }\n },\n {\n key: '_merge',\n value: function _merge(list, elements, context) {\n var merged = mergeInDomOrder({\n list: list,\n elements: elements\n });\n return this.sortElements(merged, context);\n }\n },\n {\n key: '_replaceHosts',\n value: function _replaceHosts(elements) {\n return mergeInDomOrder({\n list: elements,\n elements: this.inDocument,\n resolveElement: this._resolveHostElement.bind(this)\n });\n }\n },\n {\n key: '_resolveHostElement',\n value: function _resolveHostElement(host) {\n var merged = mergeInDomOrder({\n list: this.elements[host._sortingId],\n elements: this.inHost[host._sortingId],\n resolveElement: this._resolveHostElement.bind(this)\n });\n var _tabindex = tabindexValue(host);\n if (_tabindex !== null && _tabindex > -1) {\n return [host].concat(merged);\n }\n return merged;\n }\n },\n {\n key: '_cleanup',\n value: function _cleanup() {\n // remove those identifers we put on the ShadowHost to avoid using Map()\n Object.keys(this.hosts).forEach(function (key) {\n delete this.hosts[key]._sortingId;\n }, this);\n }\n },\n ]);\n return Shadows;\n})();\nfunction sortShadowed(elements, context, sortElements) {\n var shadows = new Shadows(context, sortElements);\n var _elements = shadows.extractElements(elements);\n if (_elements.length === elements.length) {\n // no shadowed content found, no need to continue\n return sortElements(elements);\n }\n return shadows.sort(_elements);\n}\nfunction sortTabindex(elements) {\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.tabIndex\n // elements with tabIndex \"0\" (including tabbableElements without tabIndex) should be navigated in the order they appear.\n // elements with a positive tabIndex:\n // Elements that have identical tabIndexes should be navigated in the order they appear.\n // Navigation proceeds from the lowest tabIndex to the highest tabIndex.\n // NOTE: sort implementation may be unstable and thus mess up DOM order,\n // that's why we build a map that's being sorted instead. If we were able to rely\n // on a stable sorting algorithm, sortTabindex() could be as simple as\n // elements.sort(function(a, b) { return a.tabIndex - b.tabIndex; });\n // at this time Chrome does not use a stable sorting algorithm\n // see http://blog.rodneyrehm.de/archives/14-Sorting-Were-Doing-It-Wrong.html#stability\n // NOTE: compareDocumentPosition seemed like more overhead than just sorting this with buckets\n // https://developer.mozilla.org/en-US/docs/Web/API/Node.compareDocumentPosition\n var map = {};\n var indexes = [];\n var normal = elements.filter(function (element) {\n // in Trident and Gecko SVGElement does not know about the tabIndex property\n var tabIndex = element.tabIndex;\n if (tabIndex === undefined) {\n tabIndex = tabindexValue(element);\n }\n // extract elements that don't need sorting\n if (tabIndex <= 0 || tabIndex === null || tabIndex === undefined) {\n return true;\n }\n if (!map[tabIndex]) {\n // create sortable bucket for dom-order-preservation of elements with the same tabIndex\n map[tabIndex] = [];\n // maintain a list of unique tabIndexes\n indexes.push(tabIndex);\n }\n // sort element into the proper bucket\n map[tabIndex].push(element);\n // element moved to sorting map, so not \"normal\" anymore\n return false;\n });\n // sort the tabindex ascending,\n // then resolve them to their appropriate buckets,\n // then flatten the array of arrays to an array\n var _elements = indexes\n .sort()\n .map(function (tabIndex) {\n return map[tabIndex];\n })\n .reduceRight(function (previous, current) {\n return current.concat(previous);\n }, normal);\n return _elements;\n}\nvar supports$8 = void 0;\nfunction moveContextToBeginning(elements, context) {\n var pos = elements.indexOf(context);\n if (pos > 0) {\n var tmp = elements.splice(pos, 1);\n return tmp.concat(elements);\n }\n return elements;\n}\nfunction sortElements(elements, _context) {\n if (supports$8.tabsequenceAreaAtImgPosition) {\n // Some browsers sort <area> in DOM order, some place the <area>s\n // where the <img> referecing them would've been in DOM order.\n // https://github.com/medialize/ally.js/issues/5\n elements = sortArea(elements, _context);\n }\n elements = sortTabindex(elements);\n return elements;\n}\nfunction queryTabsequence() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, includeContext = _ref.includeContext, includeOnlyTabbable = _ref.includeOnlyTabbable, strategy = _ref.strategy;\n if (!supports$8) {\n supports$8 = _supports();\n }\n var _context = nodeArray(context)[0] || document.documentElement;\n var elements = queryTabbable({\n context: _context,\n includeContext: includeContext,\n includeOnlyTabbable: includeOnlyTabbable,\n strategy: strategy\n });\n if (document.body.createShadowRoot && platform.is.BLINK) {\n // sort tabindex localized to shadow dom\n // see https://github.com/medialize/ally.js/issues/6\n elements = sortShadowed(elements, _context, sortElements);\n }\n else {\n elements = sortElements(elements, _context);\n }\n if (includeContext) {\n // if we include the context itself, it has to be the first\n // element of the sequence\n elements = moveContextToBeginning(elements, _context);\n }\n return elements;\n}\n// codes mostly cloned from https://github.com/keithamus/jwerty/blob/master/jwerty.js\n// deliberately not exposing characters like <,.-#* because they vary *wildly*\n// across keyboard layouts and may cause various problems\n// (e.g. \"*\" is \"Shift +\" on a German Mac keyboard)\n// (e.g. \"@\" is \"Alt L\" on a German Mac keyboard)\nvar keycode = {\n // Element Focus\n tab: 9,\n // Navigation\n left: 37,\n up: 38,\n right: 39,\n down: 40,\n pageUp: 33,\n 'page-up': 33,\n pageDown: 34,\n 'page-down': 34,\n end: 35,\n home: 36,\n // Action\n enter: 13,\n escape: 27,\n space: 32,\n // Modifier\n shift: 16,\n capsLock: 20,\n 'caps-lock': 20,\n ctrl: 17,\n alt: 18,\n meta: 91,\n // in firefox: 224\n // on mac (chrome): meta-left=91, meta-right=93\n // on win (IE11): meta-left=91, meta-right=92\n pause: 19,\n // Content Manipulation\n insert: 45,\n \"delete\": 46,\n backspace: 8,\n // the same logical key may be identified through different keyCodes\n _alias: {\n 91: [92, 93, 224]\n }\n};\n// Function keys (112 - 137)\n// NOTE: not every keyboard knows F13+\nfor (var n = 1; n < 26; n++) {\n keycode['f' + n] = n + 111;\n}\n// Number keys (48-57, numpad 96-105)\n// NOTE: not every keyboard knows num-0+\nfor (var _n = 0; _n < 10; _n++) {\n var code = _n + 48;\n var numCode = _n + 96;\n keycode[_n] = code;\n keycode['num-' + _n] = numCode;\n keycode._alias[code] = [numCode];\n}\n// Latin characters (65 - 90)\nfor (var _n2 = 0; _n2 < 26; _n2++) {\n var _code = _n2 + 65;\n var name$1 = String.fromCharCode(_code).toLowerCase();\n keycode[name$1] = _code;\n}\nvar modifier = {\n alt: 'altKey',\n ctrl: 'ctrlKey',\n meta: 'metaKey',\n shift: 'shiftKey'\n};\nvar modifierSequence = Object.keys(modifier).map(function (name) {\n return modifier[name];\n});\nfunction createExpectedModifiers(ignoreModifiers) {\n var value = ignoreModifiers ? null : false;\n return {\n altKey: value,\n ctrlKey: value,\n metaKey: value,\n shiftKey: value\n };\n}\nfunction resolveModifiers(modifiers) {\n var ignoreModifiers = modifiers.indexOf('*') !== -1;\n var expected = createExpectedModifiers(ignoreModifiers);\n modifiers.forEach(function (token) {\n if (token === '*') {\n // we've already covered the all-in operator\n return;\n }\n // we want the modifier pressed\n var value = true;\n var operator = token.slice(0, 1);\n if (operator === '?') {\n // we don't care if the modifier is pressed\n value = null;\n }\n else if (operator === '!') {\n // we do not want the modifier pressed\n value = false;\n }\n if (value !== true) {\n // compensate for the modifier's operator\n token = token.slice(1);\n }\n var propertyName = modifier[token];\n if (!propertyName) {\n throw new TypeError('Unknown modifier \"' + token + '\"');\n }\n expected[propertyName] = value;\n });\n return expected;\n}\nfunction resolveKey(key) {\n var code = keycode[key] || parseInt(key, 10);\n if (!code || typeof code !== 'number' || isNaN(code)) {\n throw new TypeError('Unknown key \"' + key + '\"');\n }\n return [code].concat(keycode._alias[code] || []);\n}\nfunction matchModifiers(expected, event) {\n // returns true on match\n return !modifierSequence.some(function (prop) {\n // returns true on mismatch\n return (typeof expected[prop] === 'boolean' &&\n Boolean(event[prop]) !== expected[prop]);\n });\n}\nfunction keyBinding(text) {\n return text.split(/\\s+/).map(function (_text) {\n var tokens = _text.split('+');\n var _modifiers = resolveModifiers(tokens.slice(0, -1));\n var _keyCodes = resolveKey(tokens.slice(-1));\n return {\n keyCodes: _keyCodes,\n modifiers: _modifiers,\n matchModifiers: matchModifiers.bind(null, _modifiers)\n };\n });\n}\n// Node.compareDocumentPosition is available since IE9\n// see https://developer.mozilla.org/en-US/docs/Web/API/Node.compareDocumentPosition\n// callback returns true when element is contained by parent or is the parent suited for use with Array.some()\n/*\n USAGE:\n var isChildOf = getParentComparator({parent: someNode});\n listOfElements.some(isChildOf)\n*/\nfunction getParentComparator() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, parent = _ref.parent, element = _ref.element, includeSelf = _ref.includeSelf;\n if (parent) {\n return function isChildOf(node) {\n return Boolean((includeSelf && node === parent) ||\n parent.compareDocumentPosition(node) &\n Node.DOCUMENT_POSITION_CONTAINED_BY);\n };\n }\n else if (element) {\n return function isParentOf(node) {\n return Boolean((includeSelf && element === node) ||\n node.compareDocumentPosition(element) &\n Node.DOCUMENT_POSITION_CONTAINED_BY);\n };\n }\n throw new TypeError('util/compare-position#getParentComparator required either options.parent or options.element');\n}\n// Bug 286933 - Key events in the autocomplete popup should be hidden from page scripts\n// @browser-issue Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=286933\nfunction whenKey() {\n var map = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var bindings = {};\n var context = nodeArray(map.context)[0] || document.documentElement;\n delete map.context;\n var filter = nodeArray(map.filter);\n delete map.filter;\n var mapKeys = Object.keys(map);\n if (!mapKeys.length) {\n throw new TypeError('when/key requires at least one option key');\n }\n var registerBinding = function registerBinding(event) {\n event.keyCodes.forEach(function (code) {\n if (!bindings[code]) {\n bindings[code] = [];\n }\n bindings[code].push(event);\n });\n };\n mapKeys.forEach(function (text) {\n if (typeof map[text] !== 'function') {\n throw new TypeError('when/key requires option[\"' + text + '\"] to be a function');\n }\n var addCallback = function addCallback(event) {\n event.callback = map[text];\n return event;\n };\n keyBinding(text).map(addCallback).forEach(registerBinding);\n });\n var handleKeyDown = function handleKeyDown(event) {\n if (event.defaultPrevented) {\n return;\n }\n if (filter.length) {\n // ignore elements within the exempted sub-trees\n var isParentOfElement = getParentComparator({\n element: event.target,\n includeSelf: true\n });\n if (filter.some(isParentOfElement)) {\n return;\n }\n }\n var key = event.keyCode || event.which;\n if (!bindings[key]) {\n return;\n }\n bindings[key].forEach(function (_event) {\n if (!_event.matchModifiers(event)) {\n return;\n }\n _event.callback.call(context, event, disengage);\n });\n };\n context.addEventListener('keydown', handleKeyDown, false);\n var disengage = function disengage() {\n context.removeEventListener('keydown', handleKeyDown, false);\n };\n return { disengage: disengage };\n}\nfunction default_1(_a) {\n var _b = _a === void 0 ? {} : _a, context = _b.context;\n if (!context) {\n context = document.documentElement;\n }\n // Make sure the supports tests are run before intercepting the Tab key,\n // or IE10 and IE11 will fail to process the first Tab key event. Not\n // limiting this warm-up to IE because it may be a problem elsewhere, too.\n queryTabsequence();\n return whenKey({\n // Safari on OSX may require ALT+TAB to reach links,\n // see https://github.com/medialize/ally.js/issues/146\n '?alt+?shift+tab': function altShiftTab(event) {\n // we're completely taking over the Tab key handling\n event.preventDefault();\n var sequence = queryTabsequence({\n context: context\n });\n var backward = event.shiftKey;\n var first = sequence[0];\n var last = sequence[sequence.length - 1];\n // wrap around first to last, last to first\n var source = backward ? first : last;\n var target = backward ? last : first;\n if (isActiveElement(source)) {\n target.focus();\n return;\n }\n // find current position in tabsequence\n var currentIndex = void 0;\n var found = sequence.some(function (element, index) {\n if (!isActiveElement(element)) {\n return false;\n }\n currentIndex = index;\n return true;\n });\n if (!found) {\n // redirect to first as we're not in our tabsequence\n first.focus();\n return;\n }\n // shift focus to previous/next element in the sequence\n var offset = backward ? -1 : 1;\n sequence[currentIndex + offset].focus();\n }\n });\n}\nexports[\"default\"] = default_1;\n//# sourceMappingURL=maintain--tab-focus.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvT3ZlcmxheS9tYWludGFpbi0tdGFiLWZvY3VzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZDQUE2QztBQUM3QztBQUNBLGtCQUFrQjtBQUNsQixpQ0FBaUMsbUJBQU8sQ0FBQyxxREFBVTtBQUNuRCxtQ0FBbUMsbUJBQU8sQ0FBQywyREFBWTtBQUN2RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFGQUFxRjtBQUNyRjtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFDQUFxQyxrQkFBa0I7QUFDdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFGQUFxRjtBQUNyRjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscURBQXFELGdCQUFnQixPQUFPLFdBQVcsV0FBVyxZQUFZLGdCQUFnQjtBQUM5SDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSyxRQUFRO0FBQ2IsS0FBSyxVQUFVO0FBQ2Y7QUFDQSxLQUFLLFVBQVU7QUFDZjtBQUNBO0FBQ0EsS0FBSyxVQUFVO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEI7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhEQUE4RCxzQkFBc0IsY0FBYztBQUNsRyx5REFBeUQ7QUFDekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOERBQThELHNCQUFzQixjQUFjO0FBQ2xHLHlEQUF5RDtBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4QkFBOEI7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxREFBcUQsY0FBYyxlQUFlO0FBQ2xGO0FBQ0EsdUNBQXVDLGFBQWE7QUFDcEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxREFBcUQsYUFBYTtBQUNsRTtBQUNBLHVDQUF1QyxhQUFhO0FBQ3BEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFEQUFxRCxjQUFjLGVBQWU7QUFDbEY7QUFDQSx1Q0FBdUMsYUFBYTtBQUNwRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxRkFBcUY7QUFDckY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5Q0FBeUMsa0JBQWtCO0FBQzNEO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvREFBb0Q7QUFDcEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixZQUFZO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxxRkFBcUY7QUFDckY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCLGtCQUFrQjtBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3Q0FBd0M7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBDQUEwQyxjQUFjO0FBQ3hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQkFBK0Isa0JBQWtCO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxRkFBcUY7QUFDckY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrREFBa0Q7QUFDbEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxRkFBcUY7QUFDckY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNENBQTRDO0FBQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpREFBaUQ7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUZBQXFGO0FBQ3JGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxRkFBcUY7QUFDckY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUZBQXFGO0FBQ3JGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxRkFBcUY7QUFDckY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCx3REFBd0QsZUFBZTtBQUN2RTtBQUNBLDBDQUEwQztBQUMxQztBQUNBLHFGQUFxRjtBQUNyRjtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxxRkFBcUY7QUFDckY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixrQkFBa0I7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzREFBc0QsY0FBYztBQUNwRTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSx3QkFBd0Isa0JBQWtCO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaURBQWlELGVBQWU7QUFDaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0Msa0JBQWtCO0FBQ2pFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0NBQXNDLGlDQUFpQztBQUN2RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxRkFBcUY7QUFDckY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixRQUFRO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLFNBQVM7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IsVUFBVTtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUNBQXlDLGlCQUFpQjtBQUMxRDtBQUNBO0FBQ0E7QUFDQSxxRkFBcUY7QUFDckY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0EsZ0NBQWdDO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0Esa0JBQWtCO0FBQ2xCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AbmV4dC9yZWFjdC1kZXYtb3ZlcmxheS9saWIvaW50ZXJuYWwvY29tcG9uZW50cy9PdmVybGF5L21haW50YWluLS10YWItZm9jdXMuanM/NDA5ZSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbi8qIGVzbGludC1kaXNhYmxlICovXG4vLyBAdHMtbm9jaGVja1xuLy8gQ29waWVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL21lZGlhbGl6ZS9hbGx5LmpzXG4vLyBMaWNlbnNlOiBNSVRcbi8vIENvcHlyaWdodCAoYykgMjAxNSBSb2RuZXkgUmVobVxuLy9cbi8vIEVudHJ5cG9pbnQ6IGFsbHkuanMvbWFpbnRhaW4vdGFiLWZvY3VzXG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xudmFyIHBsYXRmb3JtXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcInBsYXRmb3JtXCIpKTtcbnZhciBjc3NfZXNjYXBlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcImNzcy5lc2NhcGVcIikpO1xuLy8gaW5wdXQgbWF5IGJlIHVuZGVmaW5lZCwgc2VsZWN0b3ItdHJpbmcsIE5vZGUsIE5vZGVMaXN0LCBIVE1MQ29sbGVjdGlvbiwgYXJyYXkgb2YgTm9kZXNcbi8vIHllcywgdG8gc29tZSBleHRlbnQgdGhpcyBpcyBhIGJhZCByZXBsaWNhIG9mIGpRdWVyeSdzIGNvbnN0cnVjdG9yIGZ1bmN0aW9uXG5mdW5jdGlvbiBub2RlQXJyYXkoaW5wdXQpIHtcbiAgICBpZiAoIWlucHV0KSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaW5wdXQpKSB7XG4gICAgICAgIHJldHVybiBpbnB1dDtcbiAgICB9XG4gICAgLy8gaW5zdGFuY2VvZiBOb2RlIC0gZG9lcyBub3Qgd29yayB3aXRoIGlmcmFtZXNcbiAgICBpZiAoaW5wdXQubm9kZVR5cGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gW2lucHV0XTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgaW5wdXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGlucHV0KTtcbiAgICB9XG4gICAgaWYgKGlucHV0Lmxlbmd0aCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBbXS5zbGljZS5jYWxsKGlucHV0LCAwKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcigndW5leHBlY3RlZCBpbnB1dCAnICsgU3RyaW5nKGlucHV0KSk7XG59XG5mdW5jdGlvbiBjb250ZXh0VG9FbGVtZW50KF9yZWYpIHtcbiAgICB2YXIgY29udGV4dCA9IF9yZWYuY29udGV4dCwgX3JlZiRsYWJlbCA9IF9yZWYubGFiZWwsIGxhYmVsID0gX3JlZiRsYWJlbCA9PT0gdW5kZWZpbmVkID8gJ2NvbnRleHQtdG8tZWxlbWVudCcgOiBfcmVmJGxhYmVsLCByZXNvbHZlRG9jdW1lbnQgPSBfcmVmLnJlc29sdmVEb2N1bWVudCwgZGVmYXVsdFRvRG9jdW1lbnQgPSBfcmVmLmRlZmF1bHRUb0RvY3VtZW50O1xuICAgIHZhciBlbGVtZW50ID0gbm9kZUFycmF5KGNvbnRleHQpWzBdO1xuICAgIGlmIChyZXNvbHZlRG9jdW1lbnQgJiYgZWxlbWVudCAmJiBlbGVtZW50Lm5vZGVUeXBlID09PSBOb2RlLkRPQ1VNRU5UX05PREUpIHtcbiAgICAgICAgZWxlbWVudCA9IGVsZW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuICAgIH1cbiAgICBpZiAoIWVsZW1lbnQgJiYgZGVmYXVsdFRvRG9jdW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiAgICB9XG4gICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IobGFiZWwgKyAnIHJlcXVpcmVzIHZhbGlkIG9wdGlvbnMuY29udGV4dCcpO1xuICAgIH1cbiAgICBpZiAoZWxlbWVudC5ub2RlVHlwZSAhPT0gTm9kZS5FTEVNRU5UX05PREUgJiZcbiAgICAgICAgZWxlbWVudC5ub2RlVHlwZSAhPT0gTm9kZS5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IobGFiZWwgKyAnIHJlcXVpcmVzIG9wdGlvbnMuY29udGV4dCB0byBiZSBhbiBFbGVtZW50Jyk7XG4gICAgfVxuICAgIHJldHVybiBlbGVtZW50O1xufVxuZnVuY3Rpb24gZ2V0U2hhZG93SG9zdCgpIHtcbiAgICB2YXIgX3JlZiA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge30sIGNvbnRleHQgPSBfcmVmLmNvbnRleHQ7XG4gICAgdmFyIGVsZW1lbnQgPSBjb250ZXh0VG9FbGVtZW50KHtcbiAgICAgICAgbGFiZWw6ICdnZXQvc2hhZG93LWhvc3QnLFxuICAgICAgICBjb250ZXh0OiBjb250ZXh0XG4gICAgfSk7XG4gICAgLy8gd2FsayB1cCB0byB0aGUgcm9vdFxuICAgIHZhciBjb250YWluZXIgPSBudWxsO1xuICAgIHdoaWxlIChlbGVtZW50KSB7XG4gICAgICAgIGNvbnRhaW5lciA9IGVsZW1lbnQ7XG4gICAgICAgIGVsZW1lbnQgPSBlbGVtZW50LnBhcmVudE5vZGU7XG4gICAgfVxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9Ob2RlLm5vZGVUeXBlXG4gICAgLy8gTk9URTogRmlyZWZveCAzNCBkb2VzIG5vdCBleHBvc2UgU2hhZG93Um9vdC5ob3N0IChidXQgMzcgZG9lcylcbiAgICBpZiAoY29udGFpbmVyLm5vZGVUeXBlID09PSBjb250YWluZXIuRE9DVU1FTlRfRlJBR01FTlRfTk9ERSAmJlxuICAgICAgICBjb250YWluZXIuaG9zdCkge1xuICAgICAgICAvLyB0aGUgcm9vdCBpcyBhdHRhY2hlZCB0byBhIGZyYWdtZW50IG5vZGUgdGhhdCBoYXMgYSBob3N0XG4gICAgICAgIHJldHVybiBjb250YWluZXIuaG9zdDtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59XG5mdW5jdGlvbiBnZXREb2N1bWVudChub2RlKSB7XG4gICAgaWYgKCFub2RlKSB7XG4gICAgICAgIHJldHVybiBkb2N1bWVudDtcbiAgICB9XG4gICAgaWYgKG5vZGUubm9kZVR5cGUgPT09IE5vZGUuRE9DVU1FTlRfTk9ERSkge1xuICAgICAgICByZXR1cm4gbm9kZTtcbiAgICB9XG4gICAgcmV0dXJuIG5vZGUub3duZXJEb2N1bWVudCB8fCBkb2N1bWVudDtcbn1cbmZ1bmN0aW9uIGlzQWN0aXZlRWxlbWVudChjb250ZXh0KSB7XG4gICAgdmFyIGVsZW1lbnQgPSBjb250ZXh0VG9FbGVtZW50KHtcbiAgICAgICAgbGFiZWw6ICdpcy9hY3RpdmUtZWxlbWVudCcsXG4gICAgICAgIHJlc29sdmVEb2N1bWVudDogdHJ1ZSxcbiAgICAgICAgY29udGV4dDogY29udGV4dFxuICAgIH0pO1xuICAgIHZhciBfZG9jdW1lbnQgPSBnZXREb2N1bWVudChlbGVtZW50KTtcbiAgICBpZiAoX2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHZhciBzaGFkb3dIb3N0ID0gZ2V0U2hhZG93SG9zdCh7IGNvbnRleHQ6IGVsZW1lbnQgfSk7XG4gICAgaWYgKHNoYWRvd0hvc3QgJiYgc2hhZG93SG9zdC5zaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQgPT09IGVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cbi8vIFtlbGVtLCBlbGVtLnBhcmVudCwgZWxlbS5wYXJlbnQucGFyZW50LCDigKYsIGh0bWxdXG4vLyB3aWxsIG5vdCBjb250YWluIHRoZSBzaGFkb3dSb290IChET0NVTUVOVF9GUkFHTUVOVF9OT0RFKSBhbmQgc2hhZG93SG9zdFxuZnVuY3Rpb24gZ2V0UGFyZW50cygpIHtcbiAgICB2YXIgX3JlZiA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge30sIGNvbnRleHQgPSBfcmVmLmNvbnRleHQ7XG4gICAgdmFyIGxpc3QgPSBbXTtcbiAgICB2YXIgZWxlbWVudCA9IGNvbnRleHRUb0VsZW1lbnQoe1xuICAgICAgICBsYWJlbDogJ2dldC9wYXJlbnRzJyxcbiAgICAgICAgY29udGV4dDogY29udGV4dFxuICAgIH0pO1xuICAgIHdoaWxlIChlbGVtZW50KSB7XG4gICAgICAgIGxpc3QucHVzaChlbGVtZW50KTtcbiAgICAgICAgLy8gSUUgZG9lcyBrbm93IHN1cHBvcnQgcGFyZW50RWxlbWVudCBvbiBTVkdFbGVtZW50XG4gICAgICAgIGVsZW1lbnQgPSBlbGVtZW50LnBhcmVudE5vZGU7XG4gICAgICAgIGlmIChlbGVtZW50ICYmIGVsZW1lbnQubm9kZVR5cGUgIT09IE5vZGUuRUxFTUVOVF9OT0RFKSB7XG4gICAgICAgICAgICBlbGVtZW50ID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbGlzdDtcbn1cbi8vIEVsZW1lbnQucHJvdG90eXBlLm1hdGNoZXMgbWF5IGJlIGF2YWlsYWJsZSBhdCBhIGRpZmZlcmVudCBuYW1lXG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi9kb2NzL1dlYi9BUEkvRWxlbWVudC9tYXRjaGVzXG52YXIgbmFtZXMgPSBbXG4gICAgJ21hdGNoZXMnLFxuICAgICd3ZWJraXRNYXRjaGVzU2VsZWN0b3InLFxuICAgICdtb3pNYXRjaGVzU2VsZWN0b3InLFxuICAgICdtc01hdGNoZXNTZWxlY3RvcicsXG5dO1xudmFyIG5hbWUgPSBudWxsO1xuZnVuY3Rpb24gZmluZE1ldGhvZE5hbWUoZWxlbWVudCkge1xuICAgIG5hbWVzLnNvbWUoZnVuY3Rpb24gKF9uYW1lKSB7XG4gICAgICAgIGlmICghZWxlbWVudFtfbmFtZV0pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBuYW1lID0gX25hbWU7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH0pO1xufVxuZnVuY3Rpb24gZWxlbWVudE1hdGNoZXMoZWxlbWVudCwgc2VsZWN0b3IpIHtcbiAgICBpZiAoIW5hbWUpIHtcbiAgICAgICAgZmluZE1ldGhvZE5hbWUoZWxlbWVudCk7XG4gICAgfVxuICAgIHJldHVybiBlbGVtZW50W25hbWVdKHNlbGVjdG9yKTtcbn1cbi8vIGRlZXAgY2xvbmUgb2Ygb3JpZ2luYWwgcGxhdGZvcm1cbnZhciBwbGF0Zm9ybSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkocGxhdGZvcm1fMVtcImRlZmF1bHRcIl0pKTtcbi8vIG9wZXJhdGluZyBzeXN0ZW1cbnZhciBvcyA9IHBsYXRmb3JtLm9zLmZhbWlseSB8fCAnJztcbnZhciBBTkRST0lEID0gb3MgPT09ICdBbmRyb2lkJztcbnZhciBXSU5ET1dTID0gb3Muc2xpY2UoMCwgNykgPT09ICdXaW5kb3dzJztcbnZhciBPU1ggPSBvcyA9PT0gJ09TIFgnO1xudmFyIElPUyA9IG9zID09PSAnaU9TJztcbi8vIGxheW91dFxudmFyIEJMSU5LID0gcGxhdGZvcm0ubGF5b3V0ID09PSAnQmxpbmsnO1xudmFyIEdFQ0tPID0gcGxhdGZvcm0ubGF5b3V0ID09PSAnR2Vja28nO1xudmFyIFRSSURFTlQgPSBwbGF0Zm9ybS5sYXlvdXQgPT09ICdUcmlkZW50JztcbnZhciBFREdFID0gcGxhdGZvcm0ubGF5b3V0ID09PSAnRWRnZUhUTUwnO1xudmFyIFdFQktJVCA9IHBsYXRmb3JtLmxheW91dCA9PT0gJ1dlYktpdCc7XG4vLyBicm93c2VyIHZlcnNpb24gKG5vdCBsYXlvdXQgZW5naW5lIHZlcnNpb24hKVxudmFyIHZlcnNpb24gPSBwYXJzZUZsb2F0KHBsYXRmb3JtLnZlcnNpb24pO1xudmFyIG1ham9yVmVyc2lvbiA9IE1hdGguZmxvb3IodmVyc2lvbik7XG5wbGF0Zm9ybS5tYWpvclZlcnNpb24gPSBtYWpvclZlcnNpb247XG5wbGF0Zm9ybS5pcyA9IHtcbiAgICAvLyBvcGVyYXRpbmcgc3lzdGVtXG4gICAgQU5EUk9JRDogQU5EUk9JRCxcbiAgICBXSU5ET1dTOiBXSU5ET1dTLFxuICAgIE9TWDogT1NYLFxuICAgIElPUzogSU9TLFxuICAgIC8vIGxheW91dFxuICAgIEJMSU5LOiBCTElOSyxcbiAgICBHRUNLTzogR0VDS08sXG4gICAgVFJJREVOVDogVFJJREVOVCxcbiAgICBFREdFOiBFREdFLFxuICAgIFdFQktJVDogV0VCS0lULFxuICAgIC8vIElOVEVSTkVUIEVYUExPUkVSU1xuICAgIElFOTogVFJJREVOVCAmJiBtYWpvclZlcnNpb24gPT09IDksXG4gICAgSUUxMDogVFJJREVOVCAmJiBtYWpvclZlcnNpb24gPT09IDEwLFxuICAgIElFMTE6IFRSSURFTlQgJiYgbWFqb3JWZXJzaW9uID09PSAxMVxufTtcbmZ1bmN0aW9uIGJlZm9yZSgpIHtcbiAgICB2YXIgZGF0YSA9IHtcbiAgICAgICAgLy8gcmVtZW1iZXIgd2hhdCBoYWQgZm9jdXMgdG8gcmVzdG9yZSBhZnRlciB0ZXN0XG4gICAgICAgIGFjdGl2ZUVsZW1lbnQ6IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQsXG4gICAgICAgIC8vIHJlbWVtYmVyIHNjcm9sbCBwb3NpdGlvbnMgdG8gcmVzdG9yZSBhZnRlciB0ZXN0XG4gICAgICAgIHdpbmRvd1Njcm9sbFRvcDogd2luZG93LnNjcm9sbFRvcCxcbiAgICAgICAgd2luZG93U2Nyb2xsTGVmdDogd2luZG93LnNjcm9sbExlZnQsXG4gICAgICAgIGJvZHlTY3JvbGxUb3A6IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wLFxuICAgICAgICBib2R5U2Nyb2xsTGVmdDogZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0XG4gICAgfTtcbiAgICAvLyB3cmFwIHRlc3RzIGluIGFuIGVsZW1lbnQgaGlkZGVuIGZyb20gc2NyZWVuIHJlYWRlcnMgdG8gcHJldmVudCB0aGVtXG4gICAgLy8gZnJvbSBhbm5vdW5jaW5nIGZvY3VzLCB3aGljaCBjYW4gYmUgcXVpdGUgaXJyaXRhdGluZyB0byB0aGUgdXNlclxuICAgIHZhciBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTtcbiAgICBpZnJhbWUuc2V0QXR0cmlidXRlKCdzdHlsZScsICdwb3NpdGlvbjphYnNvbHV0ZTsgcG9zaXRpb246Zml4ZWQ7IHRvcDowOyBsZWZ0Oi0ycHg7IHdpZHRoOjFweDsgaGVpZ2h0OjFweDsgb3ZlcmZsb3c6aGlkZGVuOycpO1xuICAgIGlmcmFtZS5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGl2ZScsICdvZmYnKTtcbiAgICBpZnJhbWUuc2V0QXR0cmlidXRlKCdhcmlhLWJ1c3knLCAndHJ1ZScpO1xuICAgIGlmcmFtZS5zZXRBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJywgJ3RydWUnKTtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7XG4gICAgdmFyIF93aW5kb3cgPSBpZnJhbWUuY29udGVudFdpbmRvdztcbiAgICB2YXIgX2RvY3VtZW50ID0gX3dpbmRvdy5kb2N1bWVudDtcbiAgICBfZG9jdW1lbnQub3BlbigpO1xuICAgIF9kb2N1bWVudC5jbG9zZSgpO1xuICAgIHZhciB3cmFwcGVyID0gX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIF9kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHdyYXBwZXIpO1xuICAgIGRhdGEuaWZyYW1lID0gaWZyYW1lO1xuICAgIGRhdGEud3JhcHBlciA9IHdyYXBwZXI7XG4gICAgZGF0YS53aW5kb3cgPSBfd2luZG93O1xuICAgIGRhdGEuZG9jdW1lbnQgPSBfZG9jdW1lbnQ7XG4gICAgcmV0dXJuIGRhdGE7XG59XG4vLyBvcHRpb25zLmVsZW1lbnQ6XG4vLyAge3N0cmluZ30gZWxlbWVudCBuYW1lXG4vLyAge2Z1bmN0aW9ufSBjYWxsYmFjayh3cmFwcGVyLCBkb2N1bWVudCkgdG8gZ2VuZXJhdGUgYW4gZWxlbWVudFxuLy8gb3B0aW9ucy5tdXRhdGU6IChvcHRpb25hbClcbi8vICB7ZnVuY3Rpb259IGNhbGxiYWNrKGVsZW1lbnQsIHdyYXBwZXIsIGRvY3VtZW50KSB0byBtYW5pcHVsYXRlIGVsZW1lbnQgcHJpb3IgdG8gZm9jdXMtdGVzdC5cbi8vICAgICAgICAgICAgIENhbiByZXR1cm4gRE9NRWxlbWVudCB0byBkZWZpbmUgZm9jdXMgdGFyZ2V0IChkZWZhdWx0OiBlbGVtZW50KVxuLy8gb3B0aW9ucy52YWxpZGF0ZTogKG9wdGlvbmFsKVxuLy8gIHtmdW5jdGlvbn0gY2FsbGJhY2soZWxlbWVudCwgZm9jdXNUYXJnZXQsIGRvY3VtZW50KSB0byBtYW5pcHVsYXRlIHRlc3QtcmVzdWx0XG5mdW5jdGlvbiB0ZXN0KGRhdGEsIG9wdGlvbnMpIHtcbiAgICAvLyBtYWtlIHN1cmUgd2Ugb3BlcmF0ZSBvbiBhIGNsZWFuIHNsYXRlXG4gICAgZGF0YS53cmFwcGVyLmlubmVySFRNTCA9ICcnO1xuICAgIC8vIGNyZWF0ZSBkdW1teSBlbGVtZW50IHRvIHRlc3QgZm9jdXNhYmlsaXR5IG9mXG4gICAgdmFyIGVsZW1lbnQgPSB0eXBlb2Ygb3B0aW9ucy5lbGVtZW50ID09PSAnc3RyaW5nJ1xuICAgICAgICA/IGRhdGEuZG9jdW1lbnQuY3JlYXRlRWxlbWVudChvcHRpb25zLmVsZW1lbnQpXG4gICAgICAgIDogb3B0aW9ucy5lbGVtZW50KGRhdGEud3JhcHBlciwgZGF0YS5kb2N1bWVudCk7XG4gICAgLy8gYWxsb3cgY2FsbGJhY2sgdG8gZnVydGhlciBzcGVjaWZ5IGR1bW15IGVsZW1lbnRcbiAgICAvLyBhbmQgb3B0aW9uYWxseSBkZWZpbmUgZWxlbWVudCB0byBmb2N1c1xuICAgIHZhciBmb2N1cyA9IG9wdGlvbnMubXV0YXRlICYmIG9wdGlvbnMubXV0YXRlKGVsZW1lbnQsIGRhdGEud3JhcHBlciwgZGF0YS5kb2N1bWVudCk7XG4gICAgaWYgKCFmb2N1cyAmJiBmb2N1cyAhPT0gZmFsc2UpIHtcbiAgICAgICAgZm9jdXMgPSBlbGVtZW50O1xuICAgIH1cbiAgICAvLyBlbGVtZW50IG5lZWRzIHRvIGJlIHBhcnQgb2YgdGhlIERPTSB0byBiZSBmb2N1c2FibGVcbiAgICAhZWxlbWVudC5wYXJlbnROb2RlICYmIGRhdGEud3JhcHBlci5hcHBlbmRDaGlsZChlbGVtZW50KTtcbiAgICAvLyB0ZXN0IGlmIHRoZSBlbGVtZW50IHdpdGggaW52YWxpZCB0YWJpbmRleCBjYW4gYmUgZm9jdXNlZFxuICAgIGZvY3VzICYmIGZvY3VzLmZvY3VzICYmIGZvY3VzLmZvY3VzKCk7XG4gICAgLy8gdmFsaWRhdGUgdGVzdCdzIHJlc3VsdFxuICAgIHJldHVybiBvcHRpb25zLnZhbGlkYXRlXG4gICAgICAgID8gb3B0aW9ucy52YWxpZGF0ZShlbGVtZW50LCBmb2N1cywgZGF0YS5kb2N1bWVudClcbiAgICAgICAgOiBkYXRhLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGZvY3VzO1xufVxuZnVuY3Rpb24gYWZ0ZXIoZGF0YSkge1xuICAgIC8vIHJlc3RvcmUgZm9jdXMgdG8gd2hhdCBpdCB3YXMgYmVmb3JlIHRlc3QgYW5kIGNsZWFudXBcbiAgICBpZiAoZGF0YS5hY3RpdmVFbGVtZW50ID09PSBkb2N1bWVudC5ib2R5KSB7XG4gICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgJiZcbiAgICAgICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuYmx1ciAmJlxuICAgICAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5ibHVyKCk7XG4gICAgICAgIGlmIChwbGF0Zm9ybS5pcy5JRTEwKSB7XG4gICAgICAgICAgICAvLyBJRTEwIGRvZXMgbm90IHJlZGlyZWN0IGZvY3VzIHRvIDxib2R5PiB3aGVuIHRoZSBhY3RpdmVFbGVtZW50IGlzIHJlbW92ZWRcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgZGF0YS5hY3RpdmVFbGVtZW50ICYmIGRhdGEuYWN0aXZlRWxlbWVudC5mb2N1cyAmJiBkYXRhLmFjdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkYXRhLmlmcmFtZSk7XG4gICAgLy8gcmVzdG9yZSBzY3JvbGwgcG9zaXRpb25cbiAgICB3aW5kb3cuc2Nyb2xsVG9wID0gZGF0YS53aW5kb3dTY3JvbGxUb3A7XG4gICAgd2luZG93LnNjcm9sbExlZnQgPSBkYXRhLndpbmRvd1Njcm9sbExlZnQ7XG4gICAgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgPSBkYXRhLmJvZHlTY3JvbGxUb3A7XG4gICAgZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0ID0gZGF0YS5ib2R5U2Nyb2xsTGVmdDtcbn1cbmZ1bmN0aW9uIGRldGVjdEZvY3VzKHRlc3RzKSB7XG4gICAgdmFyIGRhdGEgPSBiZWZvcmUoKTtcbiAgICB2YXIgcmVzdWx0cyA9IHt9O1xuICAgIE9iamVjdC5rZXlzKHRlc3RzKS5tYXAoZnVuY3Rpb24gKGtleSkge1xuICAgICAgICByZXN1bHRzW2tleV0gPSB0ZXN0KGRhdGEsIHRlc3RzW2tleV0pO1xuICAgIH0pO1xuICAgIGFmdGVyKGRhdGEpO1xuICAgIHJldHVybiByZXN1bHRzO1xufVxuLy8gdGhpcyBmaWxlIGlzIG92ZXJ3cml0dGVuIGJ5IGBucG0gcnVuIGJ1aWxkOnByZWBcbnZhciB2ZXJzaW9uJDEgPSAnMS40LjEnO1xuLypcbiAgICBGYWNpbGl0eSB0byBjYWNoZSB0ZXN0IHJlc3VsdHMgaW4gbG9jYWxTdG9yYWdlLlxuXG4gICAgVVNBR0U6XG4gICAgICBjYWNoZS5nZXQoJ2tleScpO1xuICAgICAgY2FjaGUuc2V0KCdrZXknLCAndmFsdWUnKTtcbiAqL1xuZnVuY3Rpb24gcmVhZExvY2FsU3RvcmFnZShrZXkpIHtcbiAgICAvLyBhbGxvdyByZWFkaW5nIGZyb20gc3RvcmFnZSB0byByZXRyaWV2ZSBwcmV2aW91cyBzdXBwb3J0IHJlc3VsdHNcbiAgICAvLyBldmVuIHdoaWxlIHRoZSBkb2N1bWVudCBkb2VzIG5vdCBoYXZlIGZvY3VzXG4gICAgdmFyIGRhdGEgPSB2b2lkIDA7XG4gICAgdHJ5IHtcbiAgICAgICAgZGF0YSA9IHdpbmRvdy5sb2NhbFN0b3JhZ2UgJiYgd2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSk7XG4gICAgICAgIGRhdGEgPSBkYXRhID8gSlNPTi5wYXJzZShkYXRhKSA6IHt9O1xuICAgIH1cbiAgICBjYXRjaCAoZSkge1xuICAgICAgICBkYXRhID0ge307XG4gICAgfVxuICAgIHJldHVybiBkYXRhO1xufVxuZnVuY3Rpb24gd3JpdGVMb2NhbFN0b3JhZ2Uoa2V5LCB2YWx1ZSkge1xuICAgIGlmICghZG9jdW1lbnQuaGFzRm9jdXMoKSkge1xuICAgICAgICAvLyBpZiB0aGUgZG9jdW1lbnQgZG9lcyBub3QgaGF2ZSBmb2N1cyB3aGVuIHRlc3RzIGFyZSBleGVjdXRlZCwgZm9jdXMoKSBtYXlcbiAgICAgICAgLy8gbm90IGJlIGhhbmRsZWQgcHJvcGVybHkgYW5kIGV2ZW50cyBtYXkgbm90IGJlIGRpc3BhdGNoZWQgaW1tZWRpYXRlbHkuXG4gICAgICAgIC8vIFRoaXMgY2FuIGhhcHBlbiB3aGVuIGEgZG9jdW1lbnQgaXMgcmVsb2FkZWQgd2hpbGUgRGV2ZWxvcGVyIFRvb2xzIGhhdmUgZm9jdXMuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB3aW5kb3cubG9jYWxTdG9yYWdlICYmIHdpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAvLyBpZ25vcmVcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2UgJiZcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShrZXksIEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7XG4gICAgfVxuICAgIGNhdGNoIChlKSB7XG4gICAgICAgIC8vIGlnbm9yZVxuICAgIH1cbn1cbnZhciB1c2VyQWdlbnQgPSAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQpIHx8ICcnO1xudmFyIGNhY2hlS2V5ID0gJ2FsbHktc3VwcG9ydHMtY2FjaGUnO1xudmFyIGNhY2hlID0gcmVhZExvY2FsU3RvcmFnZShjYWNoZUtleSk7XG4vLyB1cGRhdGUgdGhlIGNhY2hlIGlmIGFsbHkgb3IgdGhlIHVzZXIgYWdlbnQgY2hhbmdlZCAobmV3ZXIgdmVyc2lvbiwgZXRjKVxuaWYgKGNhY2hlLnVzZXJBZ2VudCAhPT0gdXNlckFnZW50IHx8IGNhY2hlLnZlcnNpb24gIT09IHZlcnNpb24kMSkge1xuICAgIGNhY2hlID0ge307XG59XG5jYWNoZS51c2VyQWdlbnQgPSB1c2VyQWdlbnQ7XG5jYWNoZS52ZXJzaW9uID0gdmVyc2lvbiQxO1xudmFyIGNhY2hlJDEgPSB7XG4gICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgICAgIHJldHVybiBjYWNoZTtcbiAgICB9LFxuICAgIHNldDogZnVuY3Rpb24gc2V0KHZhbHVlcykge1xuICAgICAgICBPYmplY3Qua2V5cyh2YWx1ZXMpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgICAgICAgY2FjaGVba2V5XSA9IHZhbHVlc1trZXldO1xuICAgICAgICB9KTtcbiAgICAgICAgY2FjaGUudGltZSA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKTtcbiAgICAgICAgd3JpdGVMb2NhbFN0b3JhZ2UoY2FjaGVLZXksIGNhY2hlKTtcbiAgICB9XG59O1xuZnVuY3Rpb24gY3NzU2hhZG93UGllcmNpbmdEZWVwQ29tYmluYXRvcigpIHtcbiAgICB2YXIgY29tYmluYXRvciA9IHZvaWQgMDtcbiAgICAvLyBzZWUgaHR0cHM6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzcy1zY29waW5nLTEvI2RlZXAtY29tYmluYXRvclxuICAgIC8vIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTExMTc1NzJcbiAgICAvLyBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9NDQ2MDUxXG4gICAgdHJ5IHtcbiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaHRtbCA+Pj4gOmZpcnN0LWNoaWxkJyk7XG4gICAgICAgIGNvbWJpbmF0b3IgPSAnPj4+JztcbiAgICB9XG4gICAgY2F0Y2ggKG5vQXJyb3dBcnJvd0Fycm93KSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBvbGQgc3ludGF4IHN1cHBvcnRlZCBhdCBsZWFzdCB1cCB0byBDaHJvbWUgNDFcbiAgICAgICAgICAgIC8vIGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD00NDYwNTFcbiAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2h0bWwgL2RlZXAvIDpmaXJzdC1jaGlsZCcpO1xuICAgICAgICAgICAgY29tYmluYXRvciA9ICcvZGVlcC8nO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChub0RlZXApIHtcbiAgICAgICAgICAgIGNvbWJpbmF0b3IgPSAnJztcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY29tYmluYXRvcjtcbn1cbnZhciBnaWYgPSAnZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoQVFBQkFJQUFBQUFBQVAvLy95SDVCQUVBQUFBQUxBQUFBQUFCQUFFQUFBSUJSQUE3Jztcbi8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0hUTUwvRWxlbWVudC9pbWcjYXR0ci11c2VtYXBcbnZhciBmb2N1c0FyZWFJbWdUYWJpbmRleCA9IHtcbiAgICBlbGVtZW50OiAnZGl2JyxcbiAgICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID1cbiAgICAgICAgICAgICc8bWFwIG5hbWU9XCJpbWFnZS1tYXAtdGFiaW5kZXgtdGVzdFwiPicgK1xuICAgICAgICAgICAgICAgICc8YXJlYSBzaGFwZT1cInJlY3RcIiBjb29yZHM9XCI2MywxOSwxNDQsNDVcIj48L21hcD4nICtcbiAgICAgICAgICAgICAgICAnPGltZyB1c2VtYXA9XCIjaW1hZ2UtbWFwLXRhYmluZGV4LXRlc3RcIiB0YWJpbmRleD1cIi0xXCIgYWx0PVwiXCIgc3JjPVwiJyArXG4gICAgICAgICAgICAgICAgZ2lmICtcbiAgICAgICAgICAgICAgICAnXCI+JztcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQucXVlcnlTZWxlY3RvcignYXJlYScpO1xuICAgIH1cbn07XG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVE1ML0VsZW1lbnQvaW1nI2F0dHItdXNlbWFwXG52YXIgZm9jdXNBcmVhVGFiaW5kZXggPSB7XG4gICAgZWxlbWVudDogJ2RpdicsXG4gICAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9XG4gICAgICAgICAgICAnPG1hcCBuYW1lPVwiaW1hZ2UtbWFwLXRhYmluZGV4LXRlc3RcIj4nICtcbiAgICAgICAgICAgICAgICAnPGFyZWEgaHJlZj1cIiN2b2lkXCIgdGFiaW5kZXg9XCItMVwiIHNoYXBlPVwicmVjdFwiIGNvb3Jkcz1cIjYzLDE5LDE0NCw0NVwiPjwvbWFwPicgK1xuICAgICAgICAgICAgICAgICc8aW1nIHVzZW1hcD1cIiNpbWFnZS1tYXAtdGFiaW5kZXgtdGVzdFwiIGFsdD1cIlwiIHNyYz1cIicgK1xuICAgICAgICAgICAgICAgIGdpZiArXG4gICAgICAgICAgICAgICAgJ1wiPic7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9LFxuICAgIHZhbGlkYXRlOiBmdW5jdGlvbiB2YWxpZGF0ZShlbGVtZW50LCBmb2N1c1RhcmdldCwgX2RvY3VtZW50KSB7XG4gICAgICAgIGlmIChwbGF0Zm9ybS5pcy5HRUNLTykge1xuICAgICAgICAgICAgLy8gZml4ZXMgaHR0cHM6Ly9naXRodWIuY29tL21lZGlhbGl6ZS9hbGx5LmpzL2lzc3Vlcy8zNVxuICAgICAgICAgICAgLy8gRmlyZWZveCBsb2FkcyB0aGUgRGF0YVVSSSBhc3luY2hyb25vdXNseSwgY2F1c2luZyBhIGZhbHNlLW5lZ2F0aXZlXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZm9jdXMgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2FyZWEnKTtcbiAgICAgICAgZm9jdXMuZm9jdXMoKTtcbiAgICAgICAgcmV0dXJuIF9kb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBmb2N1cztcbiAgICB9XG59O1xuLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSFRNTC9FbGVtZW50L2ltZyNhdHRyLXVzZW1hcFxudmFyIGZvY3VzQXJlYVdpdGhvdXRIcmVmID0ge1xuICAgIGVsZW1lbnQ6ICdkaXYnLFxuICAgIG11dGF0ZTogZnVuY3Rpb24gbXV0YXRlKGVsZW1lbnQpIHtcbiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPVxuICAgICAgICAgICAgJzxtYXAgbmFtZT1cImltYWdlLW1hcC1hcmVhLWhyZWYtdGVzdFwiPicgK1xuICAgICAgICAgICAgICAgICc8YXJlYSBzaGFwZT1cInJlY3RcIiBjb29yZHM9XCI2MywxOSwxNDQsNDVcIj48L21hcD4nICtcbiAgICAgICAgICAgICAgICAnPGltZyB1c2VtYXA9XCIjaW1hZ2UtbWFwLWFyZWEtaHJlZi10ZXN0XCIgYWx0PVwiXCIgc3JjPVwiJyArXG4gICAgICAgICAgICAgICAgZ2lmICtcbiAgICAgICAgICAgICAgICAnXCI+JztcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQucXVlcnlTZWxlY3RvcignYXJlYScpO1xuICAgIH0sXG4gICAgdmFsaWRhdGU6IGZ1bmN0aW9uIHZhbGlkYXRlKGVsZW1lbnQsIGZvY3VzVGFyZ2V0LCBfZG9jdW1lbnQpIHtcbiAgICAgICAgaWYgKHBsYXRmb3JtLmlzLkdFQ0tPKSB7XG4gICAgICAgICAgICAvLyBmaXhlcyBodHRwczovL2dpdGh1Yi5jb20vbWVkaWFsaXplL2FsbHkuanMvaXNzdWVzLzM1XG4gICAgICAgICAgICAvLyBGaXJlZm94IGxvYWRzIHRoZSBEYXRhVVJJIGFzeW5jaHJvbm91c2x5LCBjYXVzaW5nIGEgZmFsc2UtbmVnYXRpdmVcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBfZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZm9jdXNUYXJnZXQ7XG4gICAgfVxufTtcbnZhciBmb2N1c0F1ZGlvV2l0aG91dENvbnRyb2xzID0ge1xuICAgIG5hbWU6ICdjYW4tZm9jdXMtYXVkaW8td2l0aG91dC1jb250cm9scycsXG4gICAgZWxlbWVudDogJ2F1ZGlvJyxcbiAgICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBpbnZhbGlkIG1lZGlhIGZpbGUgY2FuIHRyaWdnZXIgd2FybmluZyBpbiBjb25zb2xlLCBkYXRhLXVyaSB0byBwcmV2ZW50IEhUVFAgcmVxdWVzdFxuICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3NyYycsIGdpZik7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIC8vIElFOSBtYXkgdGhyb3cgXCJFcnJvcjogTm90IGltcGxlbWVudGVkXCJcbiAgICAgICAgfVxuICAgIH1cbn07XG52YXIgaW52YWxpZEdpZiA9ICdkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhBUUFCQUlBQUFBQUFBUC8vL1paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlonO1xuLy8gTk9URTogaHR0cHM6Ly9naXRodWIuY29tL21lZGlhbGl6ZS9hbGx5LmpzL2lzc3Vlcy8zNVxuLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSFRNTC9FbGVtZW50L2ltZyNhdHRyLXVzZW1hcFxudmFyIGZvY3VzQnJva2VuSW1hZ2VNYXAgPSB7XG4gICAgZWxlbWVudDogJ2RpdicsXG4gICAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9XG4gICAgICAgICAgICAnPG1hcCBuYW1lPVwiYnJva2VuLWltYWdlLW1hcC10ZXN0XCI+PGFyZWEgaHJlZj1cIiN2b2lkXCIgc2hhcGU9XCJyZWN0XCIgY29vcmRzPVwiNjMsMTksMTQ0LDQ1XCI+PC9tYXA+JyArXG4gICAgICAgICAgICAgICAgJzxpbWcgdXNlbWFwPVwiI2Jyb2tlbi1pbWFnZS1tYXAtdGVzdFwiIGFsdD1cIlwiIHNyYz1cIicgK1xuICAgICAgICAgICAgICAgIGludmFsaWRHaWYgK1xuICAgICAgICAgICAgICAgICdcIj4nO1xuICAgICAgICByZXR1cm4gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCdhcmVhJyk7XG4gICAgfVxufTtcbi8vIENoaWxkcmVuIG9mIGZvY3VzYWJsZSBlbGVtZW50cyB3aXRoIGRpc3BsYXk6ZmxleCBhcmUgZm9jdXNhYmxlIGluIElFMTAtMTFcbnZhciBmb2N1c0NoaWxkcmVuT2ZGb2N1c2FibGVGbGV4Ym94ID0ge1xuICAgIGVsZW1lbnQ6ICdkaXYnLFxuICAgIG11dGF0ZTogZnVuY3Rpb24gbXV0YXRlKGVsZW1lbnQpIHtcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJy0xJyk7XG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdzdHlsZScsICdkaXNwbGF5OiAtd2Via2l0LWZsZXg7IGRpc3BsYXk6IC1tcy1mbGV4Ym94OyBkaXNwbGF5OiBmbGV4OycpO1xuICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9ICc8c3BhbiBzdHlsZT1cImRpc3BsYXk6IGJsb2NrO1wiPmhlbGxvPC9zcGFuPic7XG4gICAgICAgIHJldHVybiBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ3NwYW4nKTtcbiAgICB9XG59O1xuLy8gZmllbGRzZXRbdGFiaW5kZXg9MF1bZGlzYWJsZWRdIHNob3VsZCBub3QgYmUgZm9jdXNhYmxlLCBidXQgQmxpbmsgYW5kIFdlYktpdCBkaXNhZ3JlZVxuLy8gQHNwZWNpZmljYXRpb24gaHR0cHM6Ly93d3cudzMub3JnL1RSL2h0bWw1L2Rpc2FibGVkLWVsZW1lbnRzLmh0bWwjY29uY2VwdC1lbGVtZW50LWRpc2FibGVkXG4vLyBAYnJvd3Nlci1pc3N1ZSBDaHJvbWl1bSBodHRwczovL2NyYnVnLmNvbS80NTM4NDdcbi8vIEBicm93c2VyLWlzc3VlIFdlYktpdCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQxMDg2XG52YXIgZm9jdXNGaWVsZHNldERpc2FibGVkID0ge1xuICAgIGVsZW1lbnQ6ICdmaWVsZHNldCcsXG4gICAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAwKTtcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJywgJ2Rpc2FibGVkJyk7XG4gICAgfVxufTtcbnZhciBmb2N1c0ZpZWxkc2V0ID0ge1xuICAgIGVsZW1lbnQ6ICdmaWVsZHNldCcsXG4gICAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9ICc8bGVnZW5kPmxlZ2VuZDwvbGVnZW5kPjxwPmNvbnRlbnQ8L3A+JztcbiAgICB9XG59O1xuLy8gZWxlbWVudHMgd2l0aCBkaXNwbGF5OmZsZXggYXJlIGZvY3VzYWJsZSBpbiBJRTEwLTExXG52YXIgZm9jdXNGbGV4Ym94Q29udGFpbmVyID0ge1xuICAgIGVsZW1lbnQ6ICdzcGFuJyxcbiAgICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdzdHlsZScsICdkaXNwbGF5OiAtd2Via2l0LWZsZXg7IGRpc3BsYXk6IC1tcy1mbGV4Ym94OyBkaXNwbGF5OiBmbGV4OycpO1xuICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9ICc8c3BhbiBzdHlsZT1cImRpc3BsYXk6IGJsb2NrO1wiPmhlbGxvPC9zcGFuPic7XG4gICAgfVxufTtcbi8vIGZvcm1bdGFiaW5kZXg9MF1bZGlzYWJsZWRdIHNob3VsZCBiZSBmb2N1c2FibGUgYXMgdGhlXG4vLyBzcGVjaWZpY2F0aW9uIGRvZXNuJ3Qga25vdyB0aGUgZGlzYWJsZWQgYXR0cmlidXRlIG9uIHRoZSBmb3JtIGVsZW1lbnRcbi8vIEBzcGVjaWZpY2F0aW9uIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9odG1sNS9mb3Jtcy5odG1sI3RoZS1mb3JtLWVsZW1lbnRcbnZhciBmb2N1c0Zvcm1EaXNhYmxlZCA9IHtcbiAgICBlbGVtZW50OiAnZm9ybScsXG4gICAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAwKTtcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJywgJ2Rpc2FibGVkJyk7XG4gICAgfVxufTtcbi8vIE5PVEU6IGh0dHBzOi8vZ2l0aHViLmNvbS9tZWRpYWxpemUvYWxseS5qcy9pc3N1ZXMvMzVcbi8vIGZpeGVzIGh0dHBzOi8vZ2l0aHViLmNvbS9tZWRpYWxpemUvYWxseS5qcy9pc3N1ZXMvMjBcbi8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0hUTUwvRWxlbWVudC9pbWcjYXR0ci1pc21hcFxudmFyIGZvY3VzSW1nSXNtYXAgPSB7XG4gICAgZWxlbWVudDogJ2EnLFxuICAgIG11dGF0ZTogZnVuY3Rpb24gbXV0YXRlKGVsZW1lbnQpIHtcbiAgICAgICAgZWxlbWVudC5ocmVmID0gJyN2b2lkJztcbiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSAnPGltZyBpc21hcCBzcmM9XCInICsgZ2lmICsgJ1wiIGFsdD1cIlwiPic7XG4gICAgICAgIHJldHVybiBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2ltZycpO1xuICAgIH1cbn07XG4vLyBOT1RFOiBodHRwczovL2dpdGh1Yi5jb20vbWVkaWFsaXplL2FsbHkuanMvaXNzdWVzLzM1XG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVE1ML0VsZW1lbnQvaW1nI2F0dHItdXNlbWFwXG52YXIgZm9jdXNJbWdVc2VtYXBUYWJpbmRleCA9IHtcbiAgICBlbGVtZW50OiAnZGl2JyxcbiAgICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID1cbiAgICAgICAgICAgICc8bWFwIG5hbWU9XCJpbWFnZS1tYXAtdGFiaW5kZXgtdGVzdFwiPjxhcmVhIGhyZWY9XCIjdm9pZFwiIHNoYXBlPVwicmVjdFwiIGNvb3Jkcz1cIjYzLDE5LDE0NCw0NVwiPjwvbWFwPicgK1xuICAgICAgICAgICAgICAgICc8aW1nIHVzZW1hcD1cIiNpbWFnZS1tYXAtdGFiaW5kZXgtdGVzdFwiIHRhYmluZGV4PVwiLTFcIiBhbHQ9XCJcIiAnICtcbiAgICAgICAgICAgICAgICAnc3JjPVwiJyArXG4gICAgICAgICAgICAgICAgZ2lmICtcbiAgICAgICAgICAgICAgICAnXCI+JztcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQucXVlcnlTZWxlY3RvcignaW1nJyk7XG4gICAgfVxufTtcbnZhciBmb2N1c0luSGlkZGVuSWZyYW1lID0ge1xuICAgIGVsZW1lbnQ6IGZ1bmN0aW9uIGVsZW1lbnQod3JhcHBlciwgX2RvY3VtZW50KSB7XG4gICAgICAgIHZhciBpZnJhbWUgPSBfZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7XG4gICAgICAgIC8vIGlmcmFtZSBtdXN0IGJlIHBhcnQgb2YgdGhlIERPTSBiZWZvcmUgYWNjZXNzaW5nIHRoZSBjb250ZW50V2luZG93IGlzIHBvc3NpYmxlXG4gICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQoaWZyYW1lKTtcbiAgICAgICAgLy8gY3JlYXRlIHRoZSBpZnJhbWUncyBkZWZhdWx0IGRvY3VtZW50ICg8aHRtbD48aGVhZD48L2hlYWQ+PGJvZHk+PC9ib2R5PjwvaHRtbD4pXG4gICAgICAgIHZhciBpZnJhbWVEb2N1bWVudCA9IGlmcmFtZS5jb250ZW50V2luZG93LmRvY3VtZW50O1xuICAgICAgICBpZnJhbWVEb2N1bWVudC5vcGVuKCk7XG4gICAgICAgIGlmcmFtZURvY3VtZW50LmNsb3NlKCk7XG4gICAgICAgIHJldHVybiBpZnJhbWU7XG4gICAgfSxcbiAgICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShpZnJhbWUpIHtcbiAgICAgICAgaWZyYW1lLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcbiAgICAgICAgdmFyIGlmcmFtZURvY3VtZW50ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ7XG4gICAgICAgIHZhciBpbnB1dCA9IGlmcmFtZURvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgICAgIGlmcmFtZURvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW5wdXQpO1xuICAgICAgICByZXR1cm4gaW5wdXQ7XG4gICAgfSxcbiAgICB2YWxpZGF0ZTogZnVuY3Rpb24gdmFsaWRhdGUoaWZyYW1lKSB7XG4gICAgICAgIHZhciBpZnJhbWVEb2N1bWVudCA9IGlmcmFtZS5jb250ZW50V2luZG93LmRvY3VtZW50O1xuICAgICAgICB2YXIgZm9jdXMgPSBpZnJhbWVEb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpO1xuICAgICAgICByZXR1cm4gaWZyYW1lRG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZm9jdXM7XG4gICAgfVxufTtcbnZhciByZXN1bHQgPSAhcGxhdGZvcm0uaXMuV0VCS0lUO1xuZnVuY3Rpb24gZm9jdXNJblplcm9EaW1lbnNpb25PYmplY3QoKSB7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbi8vIEZpcmVmb3ggYWxsb3dzICphbnkqIHZhbHVlIGFuZCB0cmVhdHMgaW52YWxpZCB2YWx1ZXMgbGlrZSB0YWJpbmRleD1cIi0xXCJcbi8vIEBicm93c2VyLWlzc3VlIEdlY2tvIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTExMjgwNTRcbnZhciBmb2N1c0ludmFsaWRUYWJpbmRleCA9IHtcbiAgICBlbGVtZW50OiAnZGl2JyxcbiAgICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICdpbnZhbGlkLXZhbHVlJyk7XG4gICAgfVxufTtcbnZhciBmb2N1c0xhYmVsVGFiaW5kZXggPSB7XG4gICAgZWxlbWVudDogJ2xhYmVsJyxcbiAgICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICctMScpO1xuICAgIH0sXG4gICAgdmFsaWRhdGU6IGZ1bmN0aW9uIHZhbGlkYXRlKGVsZW1lbnQsIGZvY3VzVGFyZ2V0LCBfZG9jdW1lbnQpIHtcbiAgICAgICAgLy8gZm9yY2UgbGF5b3V0IGluIENocm9tZSA0OSwgb3RoZXJ3aXNlIHRoZSBlbGVtZW50IHdvbid0IGJlIGZvY3VzYWJsZVxuICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xuICAgICAgICB2YXIgdmFyaWFibGVUb1ByZXZlbnREZWFkQ29kZUVsaW1pbmF0aW9uID0gZWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gICAgICAgIC8qIGVzbGludC1lbmFibGUgbm8tdW51c2VkLXZhcnMgKi9cbiAgICAgICAgZWxlbWVudC5mb2N1cygpO1xuICAgICAgICByZXR1cm4gX2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGVsZW1lbnQ7XG4gICAgfVxufTtcbnZhciBzdmcgPSAnZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhodGInICtcbiAgICAnRzV6T25oc2FXNXJQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUwzaHNhVzVySWlCcFpEMGljM1puSWo0OGRHVjRkQ0I0UFNJeE1DSWdlVDBpTWpBaUlHbGtQU0onICtcbiAgICAnemRtY3RiR2x1YXkxMFpYaDBJajUwWlhoMFBDOTBaWGgwUGp3dmMzWm5QZz09Jztcbi8vIE5vdGU6IElFMTAgb24gQnJvd3NlclN0YWNrIGRvZXMgbm90IGxpa2UgdGhpcyB0ZXN0XG52YXIgZm9jdXNPYmplY3RTdmdIaWRkZW4gPSB7XG4gICAgZWxlbWVudDogJ29iamVjdCcsXG4gICAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgndHlwZScsICdpbWFnZS9zdmcreG1sJyk7XG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdkYXRhJywgc3ZnKTtcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3dpZHRoJywgJzIwMCcpO1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnaGVpZ2h0JywgJzUwJyk7XG4gICAgICAgIGVsZW1lbnQuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xuICAgIH1cbn07XG4vLyBOb3RlOiBJRTEwIG9uIEJyb3dzZXJTdGFjayBkb2VzIG5vdCBsaWtlIHRoaXMgdGVzdFxudmFyIGZvY3VzT2JqZWN0U3ZnID0ge1xuICAgIG5hbWU6ICdjYW4tZm9jdXMtb2JqZWN0LXN2ZycsXG4gICAgZWxlbWVudDogJ29iamVjdCcsXG4gICAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgndHlwZScsICdpbWFnZS9zdmcreG1sJyk7XG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdkYXRhJywgc3ZnKTtcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3dpZHRoJywgJzIwMCcpO1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnaGVpZ2h0JywgJzUwJyk7XG4gICAgfSxcbiAgICB2YWxpZGF0ZTogZnVuY3Rpb24gdmFsaWRhdGUoZWxlbWVudCwgZm9jdXNUYXJnZXQsIF9kb2N1bWVudCkge1xuICAgICAgICBpZiAocGxhdGZvcm0uaXMuR0VDS08pIHtcbiAgICAgICAgICAgIC8vIEZpcmVmb3ggc2VlbXMgdG8gYmUgaGFuZGxpbmcgdGhlIG9iamVjdCBjcmVhdGlvbiBhc3luY2hyb25vdXNseSBhbmQgdGhlcmVieSBwcm9kdWNlcyBhIGZhbHNlIG5lZ2F0aXZlIHRlc3QgcmVzdWx0LlxuICAgICAgICAgICAgLy8gQmVjYXVzZSB3ZSBrbm93IEZpcmVmb3ggaXMgYWJsZSB0byBmb2N1cyBvYmplY3QgZWxlbWVudHMgcmVmZXJlbmNpbmcgU1ZHcywgd2Ugc2ltcGx5IGNoZWF0IGJ5IHNuaWZmaW5nIHRoZSB1c2VyIGFnZW50IHN0cmluZ1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIF9kb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBlbGVtZW50O1xuICAgIH1cbn07XG4vLyBFdmVyeSBFbnZpcm9ubWVudCBleGNlcHQgSUU5IGNvbnNpZGVycyBTV0Ygb2JqZWN0cyBmb2N1c2FibGVcbnZhciByZXN1bHQkMSA9ICFwbGF0Zm9ybS5pcy5JRTk7XG5mdW5jdGlvbiBmb2N1c09iamVjdFN3ZigpIHtcbiAgICByZXR1cm4gcmVzdWx0JDE7XG59XG52YXIgZm9jdXNSZWRpcmVjdEltZ1VzZW1hcCA9IHtcbiAgICBlbGVtZW50OiAnZGl2JyxcbiAgICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID1cbiAgICAgICAgICAgICc8bWFwIG5hbWU9XCJmb2N1cy1yZWRpcmVjdC1pbWctdXNlbWFwXCI+PGFyZWEgaHJlZj1cIiN2b2lkXCIgc2hhcGU9XCJyZWN0XCIgY29vcmRzPVwiNjMsMTksMTQ0LDQ1XCI+PC9tYXA+JyArXG4gICAgICAgICAgICAgICAgJzxpbWcgdXNlbWFwPVwiI2ZvY3VzLXJlZGlyZWN0LWltZy11c2VtYXBcIiBhbHQ9XCJcIiAnICtcbiAgICAgICAgICAgICAgICAnc3JjPVwiJyArXG4gICAgICAgICAgICAgICAgZ2lmICtcbiAgICAgICAgICAgICAgICAnXCI+JztcbiAgICAgICAgLy8gZm9jdXMgdGhlIDxpbWc+LCBub3QgdGhlIDxkaXY+XG4gICAgICAgIHJldHVybiBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2ltZycpO1xuICAgIH0sXG4gICAgdmFsaWRhdGU6IGZ1bmN0aW9uIHZhbGlkYXRlKGVsZW1lbnQsIGZvY3VzVGFyZ2V0LCBfZG9jdW1lbnQpIHtcbiAgICAgICAgdmFyIHRhcmdldCA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcignYXJlYScpO1xuICAgICAgICByZXR1cm4gX2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IHRhcmdldDtcbiAgICB9XG59O1xuLy8gc2VlIGh0dHBzOi8vanNiaW4uY29tL25lbmlyaXNhZ2UvZWRpdD9odG1sLGpzLGNvbnNvbGUsb3V0cHV0XG52YXIgZm9jdXNSZWRpcmVjdExlZ2VuZCA9IHtcbiAgICBlbGVtZW50OiAnZmllbGRzZXQnLFxuICAgIG11dGF0ZTogZnVuY3Rpb24gbXV0YXRlKGVsZW1lbnQpIHtcbiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPVxuICAgICAgICAgICAgJzxsZWdlbmQ+bGVnZW5kPC9sZWdlbmQ+PGlucHV0IHRhYmluZGV4PVwiLTFcIj48aW5wdXQgdGFiaW5kZXg9XCIwXCI+JztcbiAgICAgICAgLy8gdGFrZSBjYXJlIG9mIGZvY3VzIGluIHZhbGlkYXRlKCk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9LFxuICAgIHZhbGlkYXRlOiBmdW5jdGlvbiB2YWxpZGF0ZShlbGVtZW50LCBmb2N1c1RhcmdldCwgX2RvY3VtZW50KSB7XG4gICAgICAgIHZhciBmb2N1c2FibGUgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3RhYmluZGV4PVwiLTFcIl0nKTtcbiAgICAgICAgdmFyIHRhYmJhYmxlID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0YWJpbmRleD1cIjBcIl0nKTtcbiAgICAgICAgLy8gRmlyZWZveCByZXF1aXJlcyB0aGlzIHRlc3QgdG8gZm9jdXMgdGhlIDxmaWVsZHNldD4gZmlyc3QsIHdoaWxlIHRoaXMgaXMgbm90IG5lY2Vzc2FyeSBpblxuICAgICAgICAvLyBodHRwczovL2pzYmluLmNvbS9uZW5pcmlzYWdlL2VkaXQ/aHRtbCxqcyxjb25zb2xlLG91dHB1dFxuICAgICAgICBlbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIGVsZW1lbnQucXVlcnlTZWxlY3RvcignbGVnZW5kJykuZm9jdXMoKTtcbiAgICAgICAgcmV0dXJuICgoX2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGZvY3VzYWJsZSAmJiAnZm9jdXNhYmxlJykgfHxcbiAgICAgICAgICAgIChfZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gdGFiYmFibGUgJiYgJ3RhYmJhYmxlJykgfHxcbiAgICAgICAgICAgICcnKTtcbiAgICB9XG59O1xuLy8gaHR0cHM6Ly9naXRodWIuY29tL21lZGlhbGl6ZS9hbGx5LmpzL2lzc3Vlcy8yMVxudmFyIGZvY3VzU2Nyb2xsQm9keSA9IHtcbiAgICBlbGVtZW50OiAnZGl2JyxcbiAgICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdzdHlsZScsICd3aWR0aDogMTAwcHg7IGhlaWdodDogNTBweDsgb3ZlcmZsb3c6IGF1dG87Jyk7XG4gICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID1cbiAgICAgICAgICAgICc8ZGl2IHN0eWxlPVwid2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDQwcHg7XCI+c2Nyb2xsYWJsZSBjb250ZW50PC9kaXY+JztcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQucXVlcnlTZWxlY3RvcignZGl2Jyk7XG4gICAgfVxufTtcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tZWRpYWxpemUvYWxseS5qcy9pc3N1ZXMvMjFcbnZhciBmb2N1c1Njcm9sbENvbnRhaW5lcldpdGhvdXRPdmVyZmxvdyA9IHtcbiAgICBlbGVtZW50OiAnZGl2JyxcbiAgICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdzdHlsZScsICd3aWR0aDogMTAwcHg7IGhlaWdodDogNTBweDsnKTtcbiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPVxuICAgICAgICAgICAgJzxkaXYgc3R5bGU9XCJ3aWR0aDogNTAwcHg7IGhlaWdodDogNDBweDtcIj5zY3JvbGxhYmxlIGNvbnRlbnQ8L2Rpdj4nO1xuICAgIH1cbn07XG4vLyBodHRwczovL2dpdGh1Yi5jb20vbWVkaWFsaXplL2FsbHkuanMvaXNzdWVzLzIxXG52YXIgZm9jdXNTY3JvbGxDb250YWluZXIgPSB7XG4gICAgZWxlbWVudDogJ2RpdicsXG4gICAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwcHg7IG92ZXJmbG93OiBhdXRvOycpO1xuICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9XG4gICAgICAgICAgICAnPGRpdiBzdHlsZT1cIndpZHRoOiA1MDBweDsgaGVpZ2h0OiA0MHB4O1wiPnNjcm9sbGFibGUgY29udGVudDwvZGl2Pic7XG4gICAgfVxufTtcbnZhciBmb2N1c1N1bW1hcnkgPSB7XG4gICAgZWxlbWVudDogJ2RldGFpbHMnLFxuICAgIG11dGF0ZTogZnVuY3Rpb24gbXV0YXRlKGVsZW1lbnQpIHtcbiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSAnPHN1bW1hcnk+Zm9vPC9zdW1tYXJ5PjxwPmNvbnRlbnQ8L3A+JztcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQ7XG4gICAgfVxufTtcbmZ1bmN0aW9uIG1ha2VGb2N1c2FibGVGb3JlaWduT2JqZWN0KCkge1xuICAgIHZhciBmcmFnbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIGZyYWdtZW50LmlubmVySFRNTCA9XG4gICAgICAgICc8c3ZnPjxmb3JlaWduT2JqZWN0IHdpZHRoPVwiMzBcIiBoZWlnaHQ9XCIzMFwiPlxcbiAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiLz5cXG4gIDwvZm9yZWlnbk9iamVjdD48L3N2Zz4nO1xuICAgIHJldHVybiBmcmFnbWVudC5maXJzdENoaWxkLmZpcnN0Q2hpbGQ7XG59XG5mdW5jdGlvbiBmb2N1c1N2Z0ZvcmVpZ25PYmplY3RIYWNrKGVsZW1lbnQpIHtcbiAgICAvLyBFZGdlMTMsIEVkZ2UxNDogZm9yZWlnbk9iamVjdCBmb2N1cyBoYWNrXG4gICAgLy8gaHR0cHM6Ly9qc2Jpbi5jb20va3VuZWhpbnVnaS9lZGl0P2h0bWwsanMsb3V0cHV0XG4gICAgLy8gaHR0cHM6Ly9qc2Jpbi5jb20vZmFqYWdpLzMvZWRpdD9odG1sLGpzLG91dHB1dFxuICAgIHZhciBpc1N2Z0VsZW1lbnQgPSBlbGVtZW50Lm93bmVyU1ZHRWxlbWVudCB8fCBlbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdzdmcnO1xuICAgIGlmICghaXNTdmdFbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgLy8gaW5qZWN0IGFuZCBmb2N1cyBhbiA8aW5wdXQ+IGVsZW1lbnQgaW50byB0aGUgU1ZHIGVsZW1lbnQgdG8gcmVjZWl2ZSBmb2N1c1xuICAgIHZhciBmb3JlaWduT2JqZWN0ID0gbWFrZUZvY3VzYWJsZUZvcmVpZ25PYmplY3QoKTtcbiAgICBlbGVtZW50LmFwcGVuZENoaWxkKGZvcmVpZ25PYmplY3QpO1xuICAgIHZhciBpbnB1dCA9IGZvcmVpZ25PYmplY3QucXVlcnlTZWxlY3RvcignaW5wdXQnKTtcbiAgICBpbnB1dC5mb2N1cygpO1xuICAgIC8vIHVwb24gZGlzYWJsaW5nIHRoZSBhY3RpdmVFbGVtZW50LCBJRSBhbmQgRWRnZVxuICAgIC8vIHdpbGwgbm90IHNoaWZ0IGZvY3VzIHRvIDxib2R5PiBsaWtlIGFsbCB0aGUgb3RoZXJcbiAgICAvLyBicm93c2VycywgYnV0IGluc3RlYWQgZmluZCB0aGUgZmlyc3QgZm9jdXNhYmxlXG4gICAgLy8gYW5jZXN0b3IgYW5kIHNoaWZ0IGZvY3VzIHRvIHRoYXRcbiAgICBpbnB1dC5kaXNhYmxlZCA9IHRydWU7XG4gICAgLy8gY2xlYW4gdXBcbiAgICBlbGVtZW50LnJlbW92ZUNoaWxkKGZvcmVpZ25PYmplY3QpO1xuICAgIHJldHVybiB0cnVlO1xufVxuZnVuY3Rpb24gZ2VuZXJhdGUoZWxlbWVudCkge1xuICAgIHJldHVybiAoJzxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiPicgK1xuICAgICAgICBlbGVtZW50ICtcbiAgICAgICAgJzwvc3ZnPicpO1xufVxuZnVuY3Rpb24gZm9jdXMoZWxlbWVudCkge1xuICAgIGlmIChlbGVtZW50LmZvY3VzKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgSFRNTEVsZW1lbnQucHJvdG90eXBlLmZvY3VzLmNhbGwoZWxlbWVudCk7XG4gICAgfVxuICAgIGNhdGNoIChlKSB7XG4gICAgICAgIGZvY3VzU3ZnRm9yZWlnbk9iamVjdEhhY2soZWxlbWVudCk7XG4gICAgfVxufVxuZnVuY3Rpb24gdmFsaWRhdGUoZWxlbWVudCwgZm9jdXNUYXJnZXQsIF9kb2N1bWVudCkge1xuICAgIGZvY3VzKGZvY3VzVGFyZ2V0KTtcbiAgICByZXR1cm4gX2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGZvY3VzVGFyZ2V0O1xufVxudmFyIGZvY3VzU3ZnRm9jdXNhYmxlQXR0cmlidXRlID0ge1xuICAgIGVsZW1lbnQ6ICdkaXYnLFxuICAgIG11dGF0ZTogZnVuY3Rpb24gbXV0YXRlKGVsZW1lbnQpIHtcbiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBnZW5lcmF0ZSgnPHRleHQgZm9jdXNhYmxlPVwidHJ1ZVwiPmE8L3RleHQ+Jyk7XG4gICAgICAgIHJldHVybiBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ3RleHQnKTtcbiAgICB9LFxuICAgIHZhbGlkYXRlOiB2YWxpZGF0ZVxufTtcbnZhciBmb2N1c1N2Z1RhYmluZGV4QXR0cmlidXRlID0ge1xuICAgIGVsZW1lbnQ6ICdkaXYnLFxuICAgIG11dGF0ZTogZnVuY3Rpb24gbXV0YXRlKGVsZW1lbnQpIHtcbiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBnZW5lcmF0ZSgnPHRleHQgdGFiaW5kZXg9XCIwXCI+YTwvdGV4dD4nKTtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQucXVlcnlTZWxlY3RvcigndGV4dCcpO1xuICAgIH0sXG4gICAgdmFsaWRhdGU6IHZhbGlkYXRlXG59O1xudmFyIGZvY3VzU3ZnTmVnYXRpdmVUYWJpbmRleEF0dHJpYnV0ZSA9IHtcbiAgICBlbGVtZW50OiAnZGl2JyxcbiAgICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZ2VuZXJhdGUoJzx0ZXh0IHRhYmluZGV4PVwiLTFcIj5hPC90ZXh0PicpO1xuICAgICAgICByZXR1cm4gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCd0ZXh0Jyk7XG4gICAgfSxcbiAgICB2YWxpZGF0ZTogdmFsaWRhdGVcbn07XG52YXIgZm9jdXNTdmdVc2VUYWJpbmRleCA9IHtcbiAgICBlbGVtZW50OiAnZGl2JyxcbiAgICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZ2VuZXJhdGUoW1xuICAgICAgICAgICAgJzxnIGlkPVwiYWxseS10ZXN0LXRhcmdldFwiPjxhIHhsaW5rOmhyZWY9XCIjdm9pZFwiPjx0ZXh0Pmxpbms8L3RleHQ+PC9hPjwvZz4nLFxuICAgICAgICAgICAgJzx1c2UgeGxpbms6aHJlZj1cIiNhbGx5LXRlc3QtdGFyZ2V0XCIgeD1cIjBcIiB5PVwiMFwiIHRhYmluZGV4PVwiLTFcIiAvPicsXG4gICAgICAgIF0uam9pbignJykpO1xuICAgICAgICByZXR1cm4gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCd1c2UnKTtcbiAgICB9LFxuICAgIHZhbGlkYXRlOiB2YWxpZGF0ZVxufTtcbnZhciBmb2N1c1N2Z0ZvcmVpZ25vYmplY3RUYWJpbmRleCA9IHtcbiAgICBlbGVtZW50OiAnZGl2JyxcbiAgICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZ2VuZXJhdGUoJzxmb3JlaWduT2JqZWN0IHRhYmluZGV4PVwiLTFcIj48aW5wdXQgdHlwZT1cInRleHRcIiAvPjwvZm9yZWlnbk9iamVjdD4nKTtcbiAgICAgICAgLy8gU2FmYXJpIDgncyBxdWVyc1NlbGVjdG9yKCkgY2FuJ3QgaWRlbnRpZnkgZm9yZWlnbk9iamVjdCwgYnV0IGdldEVsZW1lbnR5QnlUYWdOYW1lKCkgY2FuXG4gICAgICAgIHJldHVybiAoZWxlbWVudC5xdWVyeVNlbGVjdG9yKCdmb3JlaWduT2JqZWN0JykgfHxcbiAgICAgICAgICAgIGVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2ZvcmVpZ25PYmplY3QnKVswXSk7XG4gICAgfSxcbiAgICB2YWxpZGF0ZTogdmFsaWRhdGVcbn07XG4vLyBGaXJlZm94IHNlZW1zIHRvIGJlIGhhbmRsaW5nIHRoZSBTVkctZG9jdW1lbnQtaW4taWZyYW1lIGNyZWF0aW9uIGFzeW5jaHJvbm91c2x5XG4vLyBhbmQgdGhlcmVieSBwcm9kdWNlcyBhIGZhbHNlIG5lZ2F0aXZlIHRlc3QgcmVzdWx0LiBUaHVzIHRoZSB0ZXN0IGlzIHBvaW50bGVzc1xuLy8gYW5kIHdlIHJlc29ydCB0byBVQSBzbmlmZmluZyBvbmNlIGFnYWluLlxuLy8gc2VlIGh0dHA6Ly9qc2Jpbi5jb20vdnVuYWRvaG9rby8xL2VkaXQ/anMsY29uc29sZSxvdXRwdXRcbnZhciByZXN1bHQkMiA9IEJvb2xlYW4ocGxhdGZvcm0uaXMuR0VDS08gJiZcbiAgICB0eXBlb2YgU1ZHRWxlbWVudCAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICBTVkdFbGVtZW50LnByb3RvdHlwZS5mb2N1cyk7XG5mdW5jdGlvbiBmb2N1c1N2Z0luSWZyYW1lKCkge1xuICAgIHJldHVybiByZXN1bHQkMjtcbn1cbnZhciBmb2N1c1N2ZyA9IHtcbiAgICBlbGVtZW50OiAnZGl2JyxcbiAgICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZ2VuZXJhdGUoJycpO1xuICAgICAgICByZXR1cm4gZWxlbWVudC5maXJzdENoaWxkO1xuICAgIH0sXG4gICAgdmFsaWRhdGU6IHZhbGlkYXRlXG59O1xuLy8gRmlyZWZveCBhbGxvd3MgKmFueSogdmFsdWUgYW5kIHRyZWF0cyBpbnZhbGlkIHZhbHVlcyBsaWtlIHRhYmluZGV4PVwiLTFcIlxuLy8gQGJyb3dzZXItaXNzdWUgR2Vja28gaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyODA1NFxudmFyIGZvY3VzVGFiaW5kZXhUcmFpbGluZ0NoYXJhY3RlcnMgPSB7XG4gICAgZWxlbWVudDogJ2RpdicsXG4gICAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAnM3gnKTtcbiAgICB9XG59O1xudmFyIGZvY3VzVGFibGUgPSB7XG4gICAgZWxlbWVudDogJ3RhYmxlJyxcbiAgICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50LCB3cmFwcGVyLCBfZG9jdW1lbnQpIHtcbiAgICAgICAgLy8gSUU5IGhhcyBhIHByb2JsZW0gcmVwbGFjaW5nIFRCT0RZIGNvbnRlbnRzIHdpdGggaW5uZXJIVE1MLlxuICAgICAgICAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvODA5NzA1NS81MTUxMjRcbiAgICAgICAgLy8gZWxlbWVudC5pbm5lckhUTUwgPSAnPHRyPjx0ZD5jZWxsPC90ZD48L3RyPic7XG4gICAgICAgIHZhciBmcmFnbWVudCA9IF9kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7XG4gICAgICAgIGZyYWdtZW50LmlubmVySFRNTCA9ICc8dHI+PHRkPmNlbGw8L3RkPjwvdHI+JztcbiAgICAgICAgZWxlbWVudC5hcHBlbmRDaGlsZChmcmFnbWVudCk7XG4gICAgfVxufTtcbnZhciBmb2N1c1ZpZGVvV2l0aG91dENvbnRyb2xzID0ge1xuICAgIGVsZW1lbnQ6ICd2aWRlbycsXG4gICAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gaW52YWxpZCBtZWRpYSBmaWxlIGNhbiB0cmlnZ2VyIHdhcm5pbmcgaW4gY29uc29sZSwgZGF0YS11cmkgdG8gcHJldmVudCBIVFRQIHJlcXVlc3RcbiAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdzcmMnLCBnaWYpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAvLyBJRTkgbWF5IHRocm93IFwiRXJyb3I6IE5vdCBpbXBsZW1lbnRlZFwiXG4gICAgICAgIH1cbiAgICB9XG59O1xuLy8gaHR0cHM6Ly9qc2Jpbi5jb20vdmFmYWJhLzMvZWRpdD9odG1sLGpzLGNvbnNvbGUsb3V0cHV0XG52YXIgcmVzdWx0JDMgPSBwbGF0Zm9ybS5pcy5HRUNLTyB8fCBwbGF0Zm9ybS5pcy5UUklERU5UIHx8IHBsYXRmb3JtLmlzLkVER0U7XG5mdW5jdGlvbiB0YWJzZXF1ZW5jZUFyZWFBdEltZ1Bvc2l0aW9uKCkge1xuICAgIHJldHVybiByZXN1bHQkMztcbn1cbnZhciB0ZXN0Q2FsbGJhY2tzID0ge1xuICAgIGNzc1NoYWRvd1BpZXJjaW5nRGVlcENvbWJpbmF0b3I6IGNzc1NoYWRvd1BpZXJjaW5nRGVlcENvbWJpbmF0b3IsXG4gICAgZm9jdXNJblplcm9EaW1lbnNpb25PYmplY3Q6IGZvY3VzSW5aZXJvRGltZW5zaW9uT2JqZWN0LFxuICAgIGZvY3VzT2JqZWN0U3dmOiBmb2N1c09iamVjdFN3ZixcbiAgICBmb2N1c1N2Z0luSWZyYW1lOiBmb2N1c1N2Z0luSWZyYW1lLFxuICAgIHRhYnNlcXVlbmNlQXJlYUF0SW1nUG9zaXRpb246IHRhYnNlcXVlbmNlQXJlYUF0SW1nUG9zaXRpb25cbn07XG52YXIgdGVzdERlc2NyaXB0aW9ucyA9IHtcbiAgICBmb2N1c0FyZWFJbWdUYWJpbmRleDogZm9jdXNBcmVhSW1nVGFiaW5kZXgsXG4gICAgZm9jdXNBcmVhVGFiaW5kZXg6IGZvY3VzQXJlYVRhYmluZGV4LFxuICAgIGZvY3VzQXJlYVdpdGhvdXRIcmVmOiBmb2N1c0FyZWFXaXRob3V0SHJlZixcbiAgICBmb2N1c0F1ZGlvV2l0aG91dENvbnRyb2xzOiBmb2N1c0F1ZGlvV2l0aG91dENvbnRyb2xzLFxuICAgIGZvY3VzQnJva2VuSW1hZ2VNYXA6IGZvY3VzQnJva2VuSW1hZ2VNYXAsXG4gICAgZm9jdXNDaGlsZHJlbk9mRm9jdXNhYmxlRmxleGJveDogZm9jdXNDaGlsZHJlbk9mRm9jdXNhYmxlRmxleGJveCxcbiAgICBmb2N1c0ZpZWxkc2V0RGlzYWJsZWQ6IGZvY3VzRmllbGRzZXREaXNhYmxlZCxcbiAgICBmb2N1c0ZpZWxkc2V0OiBmb2N1c0ZpZWxkc2V0LFxuICAgIGZvY3VzRmxleGJveENvbnRhaW5lcjogZm9jdXNGbGV4Ym94Q29udGFpbmVyLFxuICAgIGZvY3VzRm9ybURpc2FibGVkOiBmb2N1c0Zvcm1EaXNhYmxlZCxcbiAgICBmb2N1c0ltZ0lzbWFwOiBmb2N1c0ltZ0lzbWFwLFxuICAgIGZvY3VzSW1nVXNlbWFwVGFiaW5kZXg6IGZvY3VzSW1nVXNlbWFwVGFiaW5kZXgsXG4gICAgZm9jdXNJbkhpZGRlbklmcmFtZTogZm9jdXNJbkhpZGRlbklmcmFtZSxcbiAgICBmb2N1c0ludmFsaWRUYWJpbmRleDogZm9jdXNJbnZhbGlkVGFiaW5kZXgsXG4gICAgZm9jdXNMYWJlbFRhYmluZGV4OiBmb2N1c0xhYmVsVGFiaW5kZXgsXG4gICAgZm9jdXNPYmplY3RTdmc6IGZvY3VzT2JqZWN0U3ZnLFxuICAgIGZvY3VzT2JqZWN0U3ZnSGlkZGVuOiBmb2N1c09iamVjdFN2Z0hpZGRlbixcbiAgICBmb2N1c1JlZGlyZWN0SW1nVXNlbWFwOiBmb2N1c1JlZGlyZWN0SW1nVXNlbWFwLFxuICAgIGZvY3VzUmVkaXJlY3RMZWdlbmQ6IGZvY3VzUmVkaXJlY3RMZWdlbmQsXG4gICAgZm9jdXNTY3JvbGxCb2R5OiBmb2N1c1Njcm9sbEJvZHksXG4gICAgZm9jdXNTY3JvbGxDb250YWluZXJXaXRob3V0T3ZlcmZsb3c6IGZvY3VzU2Nyb2xsQ29udGFpbmVyV2l0aG91dE92ZXJmbG93LFxuICAgIGZvY3VzU2Nyb2xsQ29udGFpbmVyOiBmb2N1c1Njcm9sbENvbnRhaW5lcixcbiAgICBmb2N1c1N1bW1hcnk6IGZvY3VzU3VtbWFyeSxcbiAgICBmb2N1c1N2Z0ZvY3VzYWJsZUF0dHJpYnV0ZTogZm9jdXNTdmdGb2N1c2FibGVBdHRyaWJ1dGUsXG4gICAgZm9jdXNTdmdUYWJpbmRleEF0dHJpYnV0ZTogZm9jdXNTdmdUYWJpbmRleEF0dHJpYnV0ZSxcbiAgICBmb2N1c1N2Z05lZ2F0aXZlVGFiaW5kZXhBdHRyaWJ1dGU6IGZvY3VzU3ZnTmVnYXRpdmVUYWJpbmRleEF0dHJpYnV0ZSxcbiAgICBmb2N1c1N2Z1VzZVRhYmluZGV4OiBmb2N1c1N2Z1VzZVRhYmluZGV4LFxuICAgIGZvY3VzU3ZnRm9yZWlnbm9iamVjdFRhYmluZGV4OiBmb2N1c1N2Z0ZvcmVpZ25vYmplY3RUYWJpbmRleCxcbiAgICBmb2N1c1N2ZzogZm9jdXNTdmcsXG4gICAgZm9jdXNUYWJpbmRleFRyYWlsaW5nQ2hhcmFjdGVyczogZm9jdXNUYWJpbmRleFRyYWlsaW5nQ2hhcmFjdGVycyxcbiAgICBmb2N1c1RhYmxlOiBmb2N1c1RhYmxlLFxuICAgIGZvY3VzVmlkZW9XaXRob3V0Q29udHJvbHM6IGZvY3VzVmlkZW9XaXRob3V0Q29udHJvbHNcbn07XG5mdW5jdGlvbiBleGVjdXRlVGVzdHMoKSB7XG4gICAgdmFyIHJlc3VsdHMgPSBkZXRlY3RGb2N1cyh0ZXN0RGVzY3JpcHRpb25zKTtcbiAgICBPYmplY3Qua2V5cyh0ZXN0Q2FsbGJhY2tzKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgcmVzdWx0c1trZXldID0gdGVzdENhbGxiYWNrc1trZXldKCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdHM7XG59XG52YXIgc3VwcG9ydHNDYWNoZSA9IG51bGw7XG5mdW5jdGlvbiBfc3VwcG9ydHMoKSB7XG4gICAgaWYgKHN1cHBvcnRzQ2FjaGUpIHtcbiAgICAgICAgcmV0dXJuIHN1cHBvcnRzQ2FjaGU7XG4gICAgfVxuICAgIHN1cHBvcnRzQ2FjaGUgPSBjYWNoZSQxLmdldCgpO1xuICAgIGlmICghc3VwcG9ydHNDYWNoZS50aW1lKSB7XG4gICAgICAgIGNhY2hlJDEuc2V0KGV4ZWN1dGVUZXN0cygpKTtcbiAgICAgICAgc3VwcG9ydHNDYWNoZSA9IGNhY2hlJDEuZ2V0KCk7XG4gICAgfVxuICAgIHJldHVybiBzdXBwb3J0c0NhY2hlO1xufVxudmFyIHN1cHBvcnRzID0gdm9pZCAwO1xuLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2h0bWw1L2luZnJhc3RydWN0dXJlLmh0bWwjcnVsZXMtZm9yLXBhcnNpbmctaW50ZWdlcnNcbi8vIE5PVEU6IGFsbCBicm93c2VycyBhZ3JlZSB0byBhbGxvdyB0cmFpbGluZyBzcGFjZXMgYXMgd2VsbFxudmFyIHZhbGlkSW50ZWdlclBhdHRlcm5Ob1RyYWlsaW5nID0gL15cXHMqKC18XFwrKT9bMC05XStcXHMqJC87XG52YXIgdmFsaWRJbnRlZ2VyUGF0dGVybldpdGhUcmFpbGluZyA9IC9eXFxzKigtfFxcKyk/WzAtOV0rLiokLztcbmZ1bmN0aW9uIGlzVmFsaWRUYWJpbmRleChjb250ZXh0KSB7XG4gICAgaWYgKCFzdXBwb3J0cykge1xuICAgICAgICBzdXBwb3J0cyA9IF9zdXBwb3J0cygpO1xuICAgIH1cbiAgICB2YXIgdmFsaWRJbnRlZ2VyUGF0dGVybiA9IHN1cHBvcnRzLmZvY3VzVGFiaW5kZXhUcmFpbGluZ0NoYXJhY3RlcnNcbiAgICAgICAgPyB2YWxpZEludGVnZXJQYXR0ZXJuV2l0aFRyYWlsaW5nXG4gICAgICAgIDogdmFsaWRJbnRlZ2VyUGF0dGVybk5vVHJhaWxpbmc7XG4gICAgdmFyIGVsZW1lbnQgPSBjb250ZXh0VG9FbGVtZW50KHtcbiAgICAgICAgbGFiZWw6ICdpcy92YWxpZC10YWJpbmRleCcsXG4gICAgICAgIHJlc29sdmVEb2N1bWVudDogdHJ1ZSxcbiAgICAgICAgY29udGV4dDogY29udGV4dFxuICAgIH0pO1xuICAgIC8vIEVkZ2UgMTQgaGFzIGEgY2FwaXRhbGl6YXRpb24gcHJvYmxlbSBvbiBTVkcgZWxlbWVudHMsXG4gICAgLy8gc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1pY3Jvc29mdC5jb20vZW4tdXMvbWljcm9zb2Z0LWVkZ2UvcGxhdGZvcm0vaXNzdWVzLzkyODIwNTgvXG4gICAgdmFyIGhhc1RhYmluZGV4ID0gZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3RhYmluZGV4Jyk7XG4gICAgdmFyIGhhc1RhYkluZGV4ID0gZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3RhYkluZGV4Jyk7XG4gICAgaWYgKCFoYXNUYWJpbmRleCAmJiAhaGFzVGFiSW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvLyBvbGRlciBGaXJlZm94IGFuZCBJbnRlcm5ldCBFeHBsb3JlciBkb24ndCBzdXBwb3J0IHRhYmluZGV4IG9uIFNWRyBlbGVtZW50c1xuICAgIHZhciBpc1N2Z0VsZW1lbnQgPSBlbGVtZW50Lm93bmVyU1ZHRWxlbWVudCB8fCBlbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdzdmcnO1xuICAgIGlmIChpc1N2Z0VsZW1lbnQgJiYgIXN1cHBvcnRzLmZvY3VzU3ZnVGFiaW5kZXhBdHRyaWJ1dGUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvLyBAYnJvd3Nlci1pc3N1ZSBHZWNrbyBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTI4MDU0XG4gICAgaWYgKHN1cHBvcnRzLmZvY3VzSW52YWxpZFRhYmluZGV4KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICAvLyBhbiBlbGVtZW50IG1hdGNoZXMgdGhlIHRhYmluZGV4IHNlbGVjdG9yIGV2ZW4gaWYgaXRzIHZhbHVlIGlzIGludmFsaWRcbiAgICB2YXIgdGFiaW5kZXggPSBlbGVtZW50LmdldEF0dHJpYnV0ZShoYXNUYWJpbmRleCA/ICd0YWJpbmRleCcgOiAndGFiSW5kZXgnKTtcbiAgICAvLyBJRTExIHBhcnNlcyB0YWJpbmRleD1cIlwiIGFzIHRoZSB2YWx1ZSBcIi0zMjc2OFwiXG4gICAgLy8gQGJyb3dzZXItaXNzdWUgVHJpZGVudCBodHRwczovL2Nvbm5lY3QubWljcm9zb2Z0LmNvbS9JRS9mZWVkYmFjay9kZXRhaWxzLzEwNzI5NjVcbiAgICBpZiAodGFiaW5kZXggPT09ICctMzI3NjgnKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIEJvb2xlYW4odGFiaW5kZXggJiYgdmFsaWRJbnRlZ2VyUGF0dGVybi50ZXN0KHRhYmluZGV4KSk7XG59XG5mdW5jdGlvbiB0YWJpbmRleFZhbHVlKGVsZW1lbnQpIHtcbiAgICBpZiAoIWlzVmFsaWRUYWJpbmRleChlbGVtZW50KSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgLy8gRWRnZSAxNCBoYXMgYSBjYXBpdGFsaXphdGlvbiBwcm9ibGVtIG9uIFNWRyBlbGVtZW50cyxcbiAgICAvLyBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubWljcm9zb2Z0LmNvbS9lbi11cy9taWNyb3NvZnQtZWRnZS9wbGF0Zm9ybS9pc3N1ZXMvOTI4MjA1OC9cbiAgICB2YXIgaGFzVGFiaW5kZXggPSBlbGVtZW50Lmhhc0F0dHJpYnV0ZSgndGFiaW5kZXgnKTtcbiAgICB2YXIgYXR0cmlidXRlTmFtZSA9IGhhc1RhYmluZGV4ID8gJ3RhYmluZGV4JyA6ICd0YWJJbmRleCc7XG4gICAgLy8gQGJyb3dzZXItaXNzdWUgR2Vja28gaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyODA1NFxuICAgIHZhciB0YWJpbmRleCA9IHBhcnNlSW50KGVsZW1lbnQuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpLCAxMCk7XG4gICAgcmV0dXJuIGlzTmFOKHRhYmluZGV4KSA/IC0xIDogdGFiaW5kZXg7XG59XG4vLyB0aGlzIGlzIGEgc2hhcmVkIHV0aWxpdHkgZmlsZSBmb3IgZm9jdXMtcmVsZXZhbnQuanMgYW5kIHRhYmJhYmxlLmpzXG4vLyBzZXBhcmF0ZSB0ZXN0aW5nIG9mIHRoaXMgZmlsZSdzIGZ1bmN0aW9ucyBpcyBub3QgbmVjZXNzYXJ5LFxuLy8gYXMgdGhleSdyZSBpbXBsaWNpdGx5IHRlc3RlZCBieSB3YXkgb2YgdGhlIGNvbnN1bWVyc1xuZnVuY3Rpb24gaXNVc2VyTW9kaWZ5V3JpdGFibGUoc3R5bGUpIHtcbiAgICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvMTk5OS9XRC1jc3MzLXVzZXJpbnQtMTk5OTA5MTYjdXNlci1tb2RpZnlcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbWVkaWFsaXplL2FsbHkuanMvaXNzdWVzLzE3XG4gICAgdmFyIHVzZXJNb2RpZnkgPSBzdHlsZS53ZWJraXRVc2VyTW9kaWZ5IHx8ICcnO1xuICAgIHJldHVybiBCb29sZWFuKHVzZXJNb2RpZnkgJiYgdXNlck1vZGlmeS5pbmRleE9mKCd3cml0ZScpICE9PSAtMSk7XG59XG5mdW5jdGlvbiBoYXNDc3NPdmVyZmxvd1Njcm9sbChzdHlsZSkge1xuICAgIHJldHVybiBbXG4gICAgICAgIHN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ292ZXJmbG93JyksXG4gICAgICAgIHN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ292ZXJmbG93LXgnKSxcbiAgICAgICAgc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnb3ZlcmZsb3cteScpLFxuICAgIF0uc29tZShmdW5jdGlvbiAob3ZlcmZsb3cpIHtcbiAgICAgICAgcmV0dXJuIG92ZXJmbG93ID09PSAnYXV0bycgfHwgb3ZlcmZsb3cgPT09ICdzY3JvbGwnO1xuICAgIH0pO1xufVxuZnVuY3Rpb24gaGFzQ3NzRGlzcGxheUZsZXgoc3R5bGUpIHtcbiAgICByZXR1cm4gc3R5bGUuZGlzcGxheS5pbmRleE9mKCdmbGV4JykgPiAtMTtcbn1cbmZ1bmN0aW9uIGlzU2Nyb2xsYWJsZUNvbnRhaW5lcihlbGVtZW50LCBub2RlTmFtZSwgcGFyZW50Tm9kZU5hbWUsIHBhcmVudFN0eWxlKSB7XG4gICAgaWYgKG5vZGVOYW1lICE9PSAnZGl2JyAmJiBub2RlTmFtZSAhPT0gJ3NwYW4nKSB7XG4gICAgICAgIC8vIEludGVybmV0IEV4cGxvcmVyIGFkdmFuY2VzIHNjcm9sbGFibGUgY29udGFpbmVycyBhbmQgYm9kaWVzIHRvIGZvY3VzYWJsZVxuICAgICAgICAvLyBvbmx5IGlmIHRoZSBzY3JvbGxhYmxlIGNvbnRhaW5lciBpcyA8ZGl2PiBvciA8c3Bhbj4gLSB0aGlzIGRvZXMgKm5vdCpcbiAgICAgICAgLy8gaGFwcGVuIGZvciA8c2VjdGlvbj4sIDxhcnRpY2xlPiwg4oCmXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHBhcmVudE5vZGVOYW1lICYmXG4gICAgICAgIHBhcmVudE5vZGVOYW1lICE9PSAnZGl2JyAmJlxuICAgICAgICBwYXJlbnROb2RlTmFtZSAhPT0gJ3NwYW4nICYmXG4gICAgICAgICFoYXNDc3NPdmVyZmxvd1Njcm9sbChwYXJlbnRTdHlsZSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gKGVsZW1lbnQub2Zmc2V0SGVpZ2h0IDwgZWxlbWVudC5zY3JvbGxIZWlnaHQgfHxcbiAgICAgICAgZWxlbWVudC5vZmZzZXRXaWR0aCA8IGVsZW1lbnQuc2Nyb2xsV2lkdGgpO1xufVxudmFyIHN1cHBvcnRzJDEgPSB2b2lkIDA7XG5mdW5jdGlvbiBpc0ZvY3VzUmVsZXZhbnRSdWxlcygpIHtcbiAgICB2YXIgX3JlZiA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge30sIGNvbnRleHQgPSBfcmVmLmNvbnRleHQsIF9yZWYkZXhjZXB0ID0gX3JlZi5leGNlcHQsIGV4Y2VwdCA9IF9yZWYkZXhjZXB0ID09PSB1bmRlZmluZWRcbiAgICAgICAgPyB7XG4gICAgICAgICAgICBmbGV4Ym94OiBmYWxzZSxcbiAgICAgICAgICAgIHNjcm9sbGFibGU6IGZhbHNlLFxuICAgICAgICAgICAgc2hhZG93OiBmYWxzZVxuICAgICAgICB9XG4gICAgICAgIDogX3JlZiRleGNlcHQ7XG4gICAgaWYgKCFzdXBwb3J0cyQxKSB7XG4gICAgICAgIHN1cHBvcnRzJDEgPSBfc3VwcG9ydHMoKTtcbiAgICB9XG4gICAgdmFyIGVsZW1lbnQgPSBjb250ZXh0VG9FbGVtZW50KHtcbiAgICAgICAgbGFiZWw6ICdpcy9mb2N1cy1yZWxldmFudCcsXG4gICAgICAgIHJlc29sdmVEb2N1bWVudDogdHJ1ZSxcbiAgICAgICAgY29udGV4dDogY29udGV4dFxuICAgIH0pO1xuICAgIGlmICghZXhjZXB0LnNoYWRvdyAmJiBlbGVtZW50LnNoYWRvd1Jvb3QpIHtcbiAgICAgICAgLy8gYSBTaGFkb3dET00gaG9zdCByZWNlaXZlcyBmb2N1cyB3aGVuIHRoZSBmb2N1cyBtb3ZlcyB0byBpdHMgY29udGVudFxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgdmFyIG5vZGVOYW1lID0gZWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIGlmIChub2RlTmFtZSA9PT0gJ2lucHV0JyAmJiBlbGVtZW50LnR5cGUgPT09ICdoaWRkZW4nKSB7XG4gICAgICAgIC8vIGlucHV0W3R5cGU9XCJoaWRkZW5cIl0gc3VwcG9ydHMuY2Fubm90IGJlIGZvY3VzZWRcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAobm9kZU5hbWUgPT09ICdpbnB1dCcgfHxcbiAgICAgICAgbm9kZU5hbWUgPT09ICdzZWxlY3QnIHx8XG4gICAgICAgIG5vZGVOYW1lID09PSAnYnV0dG9uJyB8fFxuICAgICAgICBub2RlTmFtZSA9PT0gJ3RleHRhcmVhJykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKG5vZGVOYW1lID09PSAnbGVnZW5kJyAmJiBzdXBwb3J0cyQxLmZvY3VzUmVkaXJlY3RMZWdlbmQpIHtcbiAgICAgICAgLy8gc3BlY2lmaWNzIGZpbHRlcmVkIGluIGlzL2ZvY3VzYWJsZVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKG5vZGVOYW1lID09PSAnbGFiZWwnKSB7XG4gICAgICAgIC8vIHNwZWNpZmljcyBmaWx0ZXJlZCBpbiBpcy9mb2N1c2FibGVcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChub2RlTmFtZSA9PT0gJ2FyZWEnKSB7XG4gICAgICAgIC8vIHNwZWNpZmljcyBmaWx0ZXJlZCBpbiBpcy9mb2N1c2FibGVcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChub2RlTmFtZSA9PT0gJ2EnICYmIGVsZW1lbnQuaGFzQXR0cmlidXRlKCdocmVmJykpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChub2RlTmFtZSA9PT0gJ29iamVjdCcgJiYgZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3VzZW1hcCcpKSB7XG4gICAgICAgIC8vIG9iamVjdFt1c2VtYXBdIGlzIG5vdCBmb2N1c2FibGUgaW4gYW55IGJyb3dzZXJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAobm9kZU5hbWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIHZhciBzdmdUeXBlID0gZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3R5cGUnKTtcbiAgICAgICAgaWYgKCFzdXBwb3J0cyQxLmZvY3VzT2JqZWN0U3ZnICYmIHN2Z1R5cGUgPT09ICdpbWFnZS9zdmcreG1sJykge1xuICAgICAgICAgICAgLy8gb2JqZWN0W3R5cGU9XCJpbWFnZS9zdmcreG1sXCJdIGlzIG5vdCBmb2N1c2FibGUgaW4gSW50ZXJuZXQgRXhwbG9yZXJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICghc3VwcG9ydHMkMS5mb2N1c09iamVjdFN3ZiAmJlxuICAgICAgICAgICAgc3ZnVHlwZSA9PT0gJ2FwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoJykge1xuICAgICAgICAgICAgLy8gb2JqZWN0W3R5cGU9XCJhcHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaFwiXSBpcyBub3QgZm9jdXNhYmxlIGluIEludGVybmV0IEV4cGxvcmVyIDlcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAobm9kZU5hbWUgPT09ICdpZnJhbWUnIHx8IG5vZGVOYW1lID09PSAnb2JqZWN0Jykge1xuICAgICAgICAvLyBicm93c2luZyBjb250ZXh0IGNvbnRhaW5lcnNcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChub2RlTmFtZSA9PT0gJ2VtYmVkJyB8fCBub2RlTmFtZSA9PT0gJ2tleWdlbicpIHtcbiAgICAgICAgLy8gZW1iZWQgaXMgY29uc2lkZXJlZCBmb2N1cy1yZWxldmFudCBidXQgbm90IGZvY3VzYWJsZVxuICAgICAgICAvLyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL21lZGlhbGl6ZS9hbGx5LmpzL2lzc3Vlcy84MlxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKGVsZW1lbnQuaGFzQXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnKSkge1xuICAgICAgICAvLyBhbHNvIHNlZSBDU1MgcHJvcGVydHkgdXNlci1tb2RpZnkgYmVsb3dcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChub2RlTmFtZSA9PT0gJ2F1ZGlvJyAmJlxuICAgICAgICAoc3VwcG9ydHMkMS5mb2N1c0F1ZGlvV2l0aG91dENvbnRyb2xzIHx8IGVsZW1lbnQuaGFzQXR0cmlidXRlKCdjb250cm9scycpKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKG5vZGVOYW1lID09PSAndmlkZW8nICYmXG4gICAgICAgIChzdXBwb3J0cyQxLmZvY3VzVmlkZW9XaXRob3V0Q29udHJvbHMgfHwgZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2NvbnRyb2xzJykpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoc3VwcG9ydHMkMS5mb2N1c1N1bW1hcnkgJiYgbm9kZU5hbWUgPT09ICdzdW1tYXJ5Jykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgdmFyIHZhbGlkVGFiaW5kZXggPSBpc1ZhbGlkVGFiaW5kZXgoZWxlbWVudCk7XG4gICAgaWYgKG5vZGVOYW1lID09PSAnaW1nJyAmJiBlbGVtZW50Lmhhc0F0dHJpYnV0ZSgndXNlbWFwJykpIHtcbiAgICAgICAgLy8gR2Vja28sIFRyaWRlbnQgYW5kIEVkZ2UgZG8gbm90IGFsbG93IGFuIGltYWdlIHdpdGggYW4gaW1hZ2UgbWFwIGFuZCB0YWJpbmRleCB0byBiZSBmb2N1c2VkLFxuICAgICAgICAvLyBpdCBhcHBlYXJzIHRoZSB0YWJpbmRleCBpcyBvdmVycnVsZWQgc28gZm9jdXMgaXMgc3RpbGwgZm9yd2FyZGVkIHRvIHRoZSA8bWFwPlxuICAgICAgICByZXR1cm4gKCh2YWxpZFRhYmluZGV4ICYmIHN1cHBvcnRzJDEuZm9jdXNJbWdVc2VtYXBUYWJpbmRleCkgfHxcbiAgICAgICAgICAgIHN1cHBvcnRzJDEuZm9jdXNSZWRpcmVjdEltZ1VzZW1hcCk7XG4gICAgfVxuICAgIGlmIChzdXBwb3J0cyQxLmZvY3VzVGFibGUgJiYgKG5vZGVOYW1lID09PSAndGFibGUnIHx8IG5vZGVOYW1lID09PSAndGQnKSkge1xuICAgICAgICAvLyBJRTEwLTExIHN1cHBvcnRzLmNhbiBmb2N1cyA8dGFibGU+IGFuZCA8dGQ+XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoc3VwcG9ydHMkMS5mb2N1c0ZpZWxkc2V0ICYmIG5vZGVOYW1lID09PSAnZmllbGRzZXQnKSB7XG4gICAgICAgIC8vIElFMTAtMTEgc3VwcG9ydHMuY2FuIGZvY3VzIDxmaWVsZHNldD5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHZhciBpc1N2Z0VsZW1lbnQgPSBub2RlTmFtZSA9PT0gJ3N2Zyc7XG4gICAgdmFyIGlzU3ZnQ29udGVudCA9IGVsZW1lbnQub3duZXJTVkdFbGVtZW50O1xuICAgIHZhciBmb2N1c2FibGVBdHRyaWJ1dGUgPSBlbGVtZW50LmdldEF0dHJpYnV0ZSgnZm9jdXNhYmxlJyk7XG4gICAgdmFyIHRhYmluZGV4ID0gdGFiaW5kZXhWYWx1ZShlbGVtZW50KTtcbiAgICBpZiAobm9kZU5hbWUgPT09ICd1c2UnICYmXG4gICAgICAgIHRhYmluZGV4ICE9PSBudWxsICYmXG4gICAgICAgICFzdXBwb3J0cyQxLmZvY3VzU3ZnVXNlVGFiaW5kZXgpIHtcbiAgICAgICAgLy8gPHVzZT4gY2Fubm90IGJlIG1hZGUgZm9jdXNhYmxlIGJ5IGFkZGluZyBhIHRhYmluZGV4IGF0dHJpYnV0ZSBhbnl3aGVyZSBidXQgQmxpbmsgYW5kIFdlYktpdFxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChub2RlTmFtZSA9PT0gJ2ZvcmVpZ25vYmplY3QnKSB7XG4gICAgICAgIC8vIDx1c2U+IGNhbiBvbmx5IGJlIG1hZGUgZm9jdXNhYmxlIGluIEJsaW5rIGFuZCBXZWJLaXRcbiAgICAgICAgcmV0dXJuIHRhYmluZGV4ICE9PSBudWxsICYmIHN1cHBvcnRzJDEuZm9jdXNTdmdGb3JlaWdub2JqZWN0VGFiaW5kZXg7XG4gICAgfVxuICAgIGlmIChlbGVtZW50TWF0Y2hlcyhlbGVtZW50LCAnc3ZnIGEnKSAmJiBlbGVtZW50Lmhhc0F0dHJpYnV0ZSgneGxpbms6aHJlZicpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoKGlzU3ZnRWxlbWVudCB8fCBpc1N2Z0NvbnRlbnQpICYmXG4gICAgICAgIGVsZW1lbnQuZm9jdXMgJiZcbiAgICAgICAgIXN1cHBvcnRzJDEuZm9jdXNTdmdOZWdhdGl2ZVRhYmluZGV4QXR0cmlidXRlICYmXG4gICAgICAgIHRhYmluZGV4IDwgMCkge1xuICAgICAgICAvLyBGaXJlZm94IDUxIGFuZCA1MiB0cmVhdCBhbnkgbmF0aXZlbHkgdGFiYmFibGUgU1ZHIGVsZW1lbnQgd2l0aFxuICAgICAgICAvLyB0YWJpbmRleD1cIi0xXCIgYXMgdGFiYmFibGUgYW5kIGV2ZXJ5dGhpbmcgZWxzZSBhcyBpbmVydFxuICAgICAgICAvLyBzZWUgaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwMjM0MFxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChpc1N2Z0VsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuICh2YWxpZFRhYmluZGV4IHx8XG4gICAgICAgICAgICBzdXBwb3J0cyQxLmZvY3VzU3ZnIHx8XG4gICAgICAgICAgICBzdXBwb3J0cyQxLmZvY3VzU3ZnSW5JZnJhbWUgfHxcbiAgICAgICAgICAgIC8vIEludGVybmV0IEV4cGxvcmVyIHVuZGVyc3RhbmRzIHRoZSBmb2N1c2FibGUgYXR0cmlidXRlIGludHJvZHVjZWQgaW4gU1ZHIFRpbnkgMS4yXG4gICAgICAgICAgICBCb29sZWFuKHN1cHBvcnRzJDEuZm9jdXNTdmdGb2N1c2FibGVBdHRyaWJ1dGUgJiZcbiAgICAgICAgICAgICAgICBmb2N1c2FibGVBdHRyaWJ1dGUgJiZcbiAgICAgICAgICAgICAgICBmb2N1c2FibGVBdHRyaWJ1dGUgPT09ICd0cnVlJykpO1xuICAgIH1cbiAgICBpZiAoaXNTdmdDb250ZW50KSB7XG4gICAgICAgIGlmIChzdXBwb3J0cyQxLmZvY3VzU3ZnVGFiaW5kZXhBdHRyaWJ1dGUgJiYgdmFsaWRUYWJpbmRleCkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN1cHBvcnRzJDEuZm9jdXNTdmdGb2N1c2FibGVBdHRyaWJ1dGUpIHtcbiAgICAgICAgICAgIC8vIEludGVybmV0IEV4cGxvcmVyIHVuZGVyc3RhbmRzIHRoZSBmb2N1c2FibGUgYXR0cmlidXRlIGludHJvZHVjZWQgaW4gU1ZHIFRpbnkgMS4yXG4gICAgICAgICAgICByZXR1cm4gZm9jdXNhYmxlQXR0cmlidXRlID09PSAndHJ1ZSc7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2h0bWw1L2VkaXRpbmcuaHRtbCNzZXF1ZW50aWFsLWZvY3VzLW5hdmlnYXRpb24tYW5kLXRoZS10YWJpbmRleC1hdHRyaWJ1dGVcbiAgICBpZiAodmFsaWRUYWJpbmRleCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgdmFyIHN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgbnVsbCk7XG4gICAgaWYgKGlzVXNlck1vZGlmeVdyaXRhYmxlKHN0eWxlKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHN1cHBvcnRzJDEuZm9jdXNJbWdJc21hcCAmJlxuICAgICAgICBub2RlTmFtZSA9PT0gJ2ltZycgJiZcbiAgICAgICAgZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2lzbWFwJykpIHtcbiAgICAgICAgLy8gSUUxMC0xMSBjb25zaWRlcnMgdGhlIDxpbWc+IGluIDxhIGhyZWY+PGltZyBpc21hcD4gZm9jdXNhYmxlXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tZWRpYWxpemUvYWxseS5qcy9pc3N1ZXMvMjBcbiAgICAgICAgdmFyIGhhc0xpbmtQYXJlbnQgPSBnZXRQYXJlbnRzKHsgY29udGV4dDogZWxlbWVudCB9KS5zb21lKGZ1bmN0aW9uIChwYXJlbnQpIHtcbiAgICAgICAgICAgIHJldHVybiAocGFyZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdhJyAmJiBwYXJlbnQuaGFzQXR0cmlidXRlKCdocmVmJykpO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGhhc0xpbmtQYXJlbnQpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tZWRpYWxpemUvYWxseS5qcy9pc3N1ZXMvMjFcbiAgICBpZiAoIWV4Y2VwdC5zY3JvbGxhYmxlICYmIHN1cHBvcnRzJDEuZm9jdXNTY3JvbGxDb250YWluZXIpIHtcbiAgICAgICAgaWYgKHN1cHBvcnRzJDEuZm9jdXNTY3JvbGxDb250YWluZXJXaXRob3V0T3ZlcmZsb3cpIHtcbiAgICAgICAgICAgIC8vIEludGVybmV0IEV4cGxvcmVyIGRvZXMgd2lsbCBjb25zaWRlciB0aGUgc2Nyb2xsYWJsZSBhcmVhIGZvY3VzYWJsZVxuICAgICAgICAgICAgLy8gaWYgdGhlIGVsZW1lbnQgaXMgYSA8ZGl2PiBvciBhIDxzcGFuPiBhbmQgaXQgaXMgaW4gZmFjdCBzY3JvbGxhYmxlLFxuICAgICAgICAgICAgLy8gcmVnYXJkbGVzcyBvZiB0aGUgQ1NTIG92ZXJmbG93IHByb3BlcnR5XG4gICAgICAgICAgICBpZiAoaXNTY3JvbGxhYmxlQ29udGFpbmVyKGVsZW1lbnQsIG5vZGVOYW1lKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGhhc0Nzc092ZXJmbG93U2Nyb2xsKHN0eWxlKSkge1xuICAgICAgICAgICAgLy8gRmlyZWZveCByZXF1aXJlcyBwcm9wZXIgb3ZlcmZsb3cgc2V0dGluZywgSUUgZG9lcyBub3QgbmVjZXNzYXJpbHlcbiAgICAgICAgICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9vdmVyZmxvd1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFleGNlcHQuZmxleGJveCAmJlxuICAgICAgICBzdXBwb3J0cyQxLmZvY3VzRmxleGJveENvbnRhaW5lciAmJlxuICAgICAgICBoYXNDc3NEaXNwbGF5RmxleChzdHlsZSkpIHtcbiAgICAgICAgLy8gZWxlbWVudHMgd2l0aCBkaXNwbGF5OmZsZXggYXJlIGZvY3VzYWJsZSBpbiBJRTEwLTExXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICB2YXIgcGFyZW50ID0gZWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICAgIGlmICghZXhjZXB0LnNjcm9sbGFibGUgJiYgcGFyZW50KSB7XG4gICAgICAgIHZhciBwYXJlbnROb2RlTmFtZSA9IHBhcmVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICB2YXIgcGFyZW50U3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShwYXJlbnQsIG51bGwpO1xuICAgICAgICBpZiAoc3VwcG9ydHMkMS5mb2N1c1Njcm9sbEJvZHkgJiZcbiAgICAgICAgICAgIGlzU2Nyb2xsYWJsZUNvbnRhaW5lcihwYXJlbnQsIG5vZGVOYW1lLCBwYXJlbnROb2RlTmFtZSwgcGFyZW50U3R5bGUpKSB7XG4gICAgICAgICAgICAvLyBzY3JvbGxhYmxlIGJvZGllcyBhcmUgZm9jdXNhYmxlIEludGVybmV0IEV4cGxvcmVyXG4gICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbWVkaWFsaXplL2FsbHkuanMvaXNzdWVzLzIxXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBDaGlsZHJlbiBvZiBmb2N1c2FibGUgZWxlbWVudHMgd2l0aCBkaXNwbGF5OmZsZXggYXJlIGZvY3VzYWJsZSBpbiBJRTEwLTExXG4gICAgICAgIGlmIChzdXBwb3J0cyQxLmZvY3VzQ2hpbGRyZW5PZkZvY3VzYWJsZUZsZXhib3gpIHtcbiAgICAgICAgICAgIGlmIChoYXNDc3NEaXNwbGF5RmxleChwYXJlbnRTdHlsZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBOT1RFOiBlbGVtZW50cyBtYXJrZWQgYXMgaW5lcnQgYXJlIG5vdCBmb2N1c2FibGUsXG4gICAgLy8gYnV0IHRoYXQgcHJvcGVydHkgaXMgbm90IGV4cG9zZWQgdG8gdGhlIERPTVxuICAgIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9odG1sNS9lZGl0aW5nLmh0bWwjaW5lcnRcbiAgICByZXR1cm4gZmFsc2U7XG59XG4vLyBiaW5kIGV4Y2VwdGlvbnMgdG8gYW4gaXRlcmF0b3IgY2FsbGJhY2tcbmlzRm9jdXNSZWxldmFudFJ1bGVzLmV4Y2VwdCA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZXhjZXB0ID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fTtcbiAgICB2YXIgaXNGb2N1c1JlbGV2YW50ID0gZnVuY3Rpb24gaXNGb2N1c1JlbGV2YW50KGNvbnRleHQpIHtcbiAgICAgICAgcmV0dXJuIGlzRm9jdXNSZWxldmFudFJ1bGVzKHtcbiAgICAgICAgICAgIGNvbnRleHQ6IGNvbnRleHQsXG4gICAgICAgICAgICBleGNlcHQ6IGV4Y2VwdFxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIGlzRm9jdXNSZWxldmFudC5ydWxlcyA9IGlzRm9jdXNSZWxldmFudFJ1bGVzO1xuICAgIHJldHVybiBpc0ZvY3VzUmVsZXZhbnQ7XG59O1xuLy8gcHJvdmlkZSBpc0ZvY3VzUmVsZXZhbnQoY29udGV4dCkgYXMgZGVmYXVsdCBpdGVyYXRvciBjYWxsYmFja1xudmFyIGlzRm9jdXNSZWxldmFudCA9IGlzRm9jdXNSZWxldmFudFJ1bGVzLmV4Y2VwdCh7fSk7XG5mdW5jdGlvbiBmaW5kSW5kZXgoYXJyYXksIGNhbGxiYWNrKSB7XG4gICAgLy8gYXR0ZW1wdCB0byB1c2UgbmF0aXZlIG9yIHBvbHlmaWxsZWQgQXJyYXkjZmluZEluZGV4IGZpcnN0XG4gICAgaWYgKGFycmF5LmZpbmRJbmRleCkge1xuICAgICAgICByZXR1cm4gYXJyYXkuZmluZEluZGV4KGNhbGxiYWNrKTtcbiAgICB9XG4gICAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcbiAgICAvLyBzaG9ydGN1dCBpZiB0aGUgYXJyYXkgaXMgZW1wdHlcbiAgICBpZiAobGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiAtMTtcbiAgICB9XG4gICAgLy8gb3RoZXJ3aXNlIGxvb3Agb3ZlciBhcnJheVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKGNhbGxiYWNrKGFycmF5W2ldLCBpLCBhcnJheSkpIHtcbiAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiAtMTtcbn1cbmZ1bmN0aW9uIGdldENvbnRlbnREb2N1bWVudChub2RlKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgLy8gd29ya3Mgb24gPG9iamVjdD4gYW5kIDxpZnJhbWU+XG4gICAgICAgIHJldHVybiAobm9kZS5jb250ZW50RG9jdW1lbnQgfHxcbiAgICAgICAgICAgIC8vIHdvcmtzIG9uIDxvYmplY3Q+IGFuZCA8aWZyYW1lPlxuICAgICAgICAgICAgKG5vZGUuY29udGVudFdpbmRvdyAmJiBub2RlLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQpIHx8XG4gICAgICAgICAgICAvLyB3b3JrcyBvbiA8b2JqZWN0PiBhbmQgPGlmcmFtZT4gdGhhdCBjb250YWluIFNWR1xuICAgICAgICAgICAgKG5vZGUuZ2V0U1ZHRG9jdW1lbnQgJiYgbm9kZS5nZXRTVkdEb2N1bWVudCgpKSB8fFxuICAgICAgICAgICAgbnVsbCk7XG4gICAgfVxuICAgIGNhdGNoIChlKSB7XG4gICAgICAgIC8vIFNlY3VyaXR5RXJyb3I6IEZhaWxlZCB0byByZWFkIHRoZSAnY29udGVudERvY3VtZW50JyBwcm9wZXJ0eSBmcm9tICdIVE1MT2JqZWN0RWxlbWVudCdcbiAgICAgICAgLy8gYWxzbyBJRSBtYXkgdGhyb3cgbWVtYmVyIG5vdCBmb3VuZCBleGNlcHRpb24gZS5nLiBvbiA8b2JqZWN0IHR5cGU9XCJpbWFnZS9wbmdcIj5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxufVxuZnVuY3Rpb24gZ2V0V2luZG93KG5vZGUpIHtcbiAgICB2YXIgX2RvY3VtZW50ID0gZ2V0RG9jdW1lbnQobm9kZSk7XG4gICAgcmV0dXJuIF9kb2N1bWVudC5kZWZhdWx0VmlldyB8fCB3aW5kb3c7XG59XG52YXIgc2hhZG93UHJlZml4ID0gdm9pZCAwO1xuZnVuY3Rpb24gc2VsZWN0SW5TaGFkb3dzKHNlbGVjdG9yKSB7XG4gICAgaWYgKHR5cGVvZiBzaGFkb3dQcmVmaXggIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHZhciBvcGVyYXRvciA9IGNzc1NoYWRvd1BpZXJjaW5nRGVlcENvbWJpbmF0b3IoKTtcbiAgICAgICAgaWYgKG9wZXJhdG9yKSB7XG4gICAgICAgICAgICBzaGFkb3dQcmVmaXggPSAnLCBodG1sICcgKyBvcGVyYXRvciArICcgJztcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoIXNoYWRvd1ByZWZpeCkge1xuICAgICAgICByZXR1cm4gc2VsZWN0b3I7XG4gICAgfVxuICAgIHJldHVybiAoc2VsZWN0b3IgK1xuICAgICAgICBzaGFkb3dQcmVmaXggK1xuICAgICAgICBzZWxlY3RvclxuICAgICAgICAgICAgLnJlcGxhY2UoL1xccyosXFxzKi9nLCAnLCcpXG4gICAgICAgICAgICAuc3BsaXQoJywnKVxuICAgICAgICAgICAgLmpvaW4oc2hhZG93UHJlZml4KSk7XG59XG52YXIgc2VsZWN0b3IgPSB2b2lkIDA7XG5mdW5jdGlvbiBmaW5kRG9jdW1lbnRIb3N0RWxlbWVudChfd2luZG93KSB7XG4gICAgaWYgKCFzZWxlY3Rvcikge1xuICAgICAgICBzZWxlY3RvciA9IHNlbGVjdEluU2hhZG93cygnb2JqZWN0LCBpZnJhbWUnKTtcbiAgICB9XG4gICAgaWYgKF93aW5kb3cuX2ZyYW1lRWxlbWVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBfd2luZG93Ll9mcmFtZUVsZW1lbnQ7XG4gICAgfVxuICAgIF93aW5kb3cuX2ZyYW1lRWxlbWVudCA9IG51bGw7XG4gICAgdmFyIHBvdGVudGlhbEhvc3RzID0gX3dpbmRvdy5wYXJlbnQuZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7XG4gICAgW10uc29tZS5jYWxsKHBvdGVudGlhbEhvc3RzLCBmdW5jdGlvbiAoZWxlbWVudCkge1xuICAgICAgICB2YXIgX2RvY3VtZW50ID0gZ2V0Q29udGVudERvY3VtZW50KGVsZW1lbnQpO1xuICAgICAgICBpZiAoX2RvY3VtZW50ICE9PSBfd2luZG93LmRvY3VtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgX3dpbmRvdy5fZnJhbWVFbGVtZW50ID0gZWxlbWVudDtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSk7XG4gICAgcmV0dXJuIF93aW5kb3cuX2ZyYW1lRWxlbWVudDtcbn1cbmZ1bmN0aW9uIGdldEZyYW1lRWxlbWVudChlbGVtZW50KSB7XG4gICAgdmFyIF93aW5kb3cgPSBnZXRXaW5kb3coZWxlbWVudCk7XG4gICAgaWYgKCFfd2luZG93LnBhcmVudCB8fCBfd2luZG93LnBhcmVudCA9PT0gX3dpbmRvdykge1xuICAgICAgICAvLyBpZiB0aGVyZSBpcyBubyBwYXJlbnQgYnJvd3NpbmcgY29udGV4dCxcbiAgICAgICAgLy8gd2UncmUgbm90IGdvaW5nIHRvIGdldCBhIGZyYW1lRWxlbWVudCBlaXRoZXIgd2F5XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICAvLyBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1dpbmRvdy9mcmFtZUVsZW1lbnRcbiAgICAgICAgLy8gZG9lcyBub3Qgd29yayB3aXRoaW4gPGVtYmVkPiBhbnl3aGVyZSwgYW5kIG5vdCB3aXRoaW4gaW4gPG9iamVjdD4gaW4gSUVcbiAgICAgICAgcmV0dXJuIF93aW5kb3cuZnJhbWVFbGVtZW50IHx8IGZpbmREb2N1bWVudEhvc3RFbGVtZW50KF93aW5kb3cpO1xuICAgIH1cbiAgICBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG59XG4vLyBodHRwczovL3d3dy53My5vcmcvVFIvaHRtbDUvcmVuZGVyaW5nLmh0bWwjYmVpbmctcmVuZGVyZWRcbi8vIDxhcmVhPiBpcyBub3QgcmVuZGVyZWQsIGJ1dCB3ZSAqY29uc2lkZXIqIGl0IHZpc2libGUgdG8gc2ltcGxmaXkgdGhpcyBmdW5jdGlvbidzIHVzYWdlXG52YXIgbm90UmVuZGVyZWRFbGVtZW50c1BhdHRlcm4gPSAvXihhcmVhKSQvO1xuZnVuY3Rpb24gY29tcHV0ZWRTdHlsZShlbGVtZW50LCBwcm9wZXJ0eSkge1xuICAgIHJldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5KTtcbn1cbmZ1bmN0aW9uIG5vdERpc3BsYXllZChfcGF0aCkge1xuICAgIHJldHVybiBfcGF0aC5zb21lKGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gICAgICAgIC8vIGRpc3BsYXk6bm9uZSBpcyBub3QgdmlzaWJsZSAob3B0aW1pemVkIGF3YXkgYXQgbGF5b3V0KVxuICAgICAgICByZXR1cm4gY29tcHV0ZWRTdHlsZShlbGVtZW50LCAnZGlzcGxheScpID09PSAnbm9uZSc7XG4gICAgfSk7XG59XG5mdW5jdGlvbiBub3RWaXNpYmxlKF9wYXRoKSB7XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2pxdWVyeS9qcXVlcnktdWkvYmxvYi9tYXN0ZXIvdWkvY29yZS5qcyNMMTA5LUwxMTRcbiAgICAvLyBOT1RFOiBhIG5lc3RlZCBlbGVtZW50IGNhbiByZXZlcnNlIHZpc2liaWxpdHk6aGlkZGVufGNvbGxhcHNlIGJ5IGV4cGxpY2l0bHkgc2V0dGluZyB2aXNpYmlsaXR5OnZpc2libGVcbiAgICAvLyBOT1RFOiB2aXNpYmlsaXR5IGNhbiBiZSBbXCJcIiwgXCJ2aXNpYmxlXCIsIFwiaGlkZGVuXCIsIFwiY29sbGFwc2VcIl1cbiAgICB2YXIgaGlkZGVuID0gZmluZEluZGV4KF9wYXRoLCBmdW5jdGlvbiAoZWxlbWVudCkge1xuICAgICAgICB2YXIgdmlzaWJpbGl0eSA9IGNvbXB1dGVkU3R5bGUoZWxlbWVudCwgJ3Zpc2liaWxpdHknKTtcbiAgICAgICAgcmV0dXJuIHZpc2liaWxpdHkgPT09ICdoaWRkZW4nIHx8IHZpc2liaWxpdHkgPT09ICdjb2xsYXBzZSc7XG4gICAgfSk7XG4gICAgaWYgKGhpZGRlbiA9PT0gLTEpIHtcbiAgICAgICAgLy8gdGhlcmUgaXMgbm8gaGlkZGVuIGVsZW1lbnRcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB2YXIgdmlzaWJsZSA9IGZpbmRJbmRleChfcGF0aCwgZnVuY3Rpb24gKGVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIGNvbXB1dGVkU3R5bGUoZWxlbWVudCwgJ3Zpc2liaWxpdHknKSA9PT0gJ3Zpc2libGUnO1xuICAgIH0pO1xuICAgIGlmICh2aXNpYmxlID09PSAtMSkge1xuICAgICAgICAvLyB0aGVyZSBpcyBubyB2aXNpYmxlIGVsZW1lbnQgKGJ1dCBhIGhpZGRlbiBlbGVtZW50KVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKGhpZGRlbiA8IHZpc2libGUpIHtcbiAgICAgICAgLy8gdGhlcmUgaXMgYSBoaWRkZW4gZWxlbWVudCBhbmQgaXQncyBjbG9zZXIgdGhhbiB0aGUgZmlyc3QgdmlzaWJsZSBlbGVtZW50XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICAvLyB0aGVyZSBtYXkgYmUgYSBoaWRkZW4gZWxlbWVudCwgYnV0IHRoZSBjbG9zZXN0IGVsZW1lbnQgaXMgdmlzaWJsZVxuICAgIHJldHVybiBmYWxzZTtcbn1cbmZ1bmN0aW9uIGNvbGxhcHNlZFBhcmVudChfcGF0aCkge1xuICAgIHZhciBvZmZzZXQgPSAxO1xuICAgIGlmIChfcGF0aFswXS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnc3VtbWFyeScpIHtcbiAgICAgICAgb2Zmc2V0ID0gMjtcbiAgICB9XG4gICAgcmV0dXJuIF9wYXRoLnNsaWNlKG9mZnNldCkuc29tZShmdW5jdGlvbiAoZWxlbWVudCkge1xuICAgICAgICAvLyBcImNvbnRlbnQgY2hpbGRyZW5cIiBvZiBhIGNsb3NlZCBkZXRhaWxzIGVsZW1lbnQgYXJlIG5vdCB2aXNpYmxlXG4gICAgICAgIHJldHVybiAoZWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnZGV0YWlscycgJiYgZWxlbWVudC5vcGVuID09PSBmYWxzZSk7XG4gICAgfSk7XG59XG5mdW5jdGlvbiBpc1Zpc2libGVSdWxlcygpIHtcbiAgICB2YXIgX3JlZiA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge30sIGNvbnRleHQgPSBfcmVmLmNvbnRleHQsIF9yZWYkZXhjZXB0ID0gX3JlZi5leGNlcHQsIGV4Y2VwdCA9IF9yZWYkZXhjZXB0ID09PSB1bmRlZmluZWRcbiAgICAgICAgPyB7XG4gICAgICAgICAgICBub3RSZW5kZXJlZDogZmFsc2UsXG4gICAgICAgICAgICBjc3NEaXNwbGF5OiBmYWxzZSxcbiAgICAgICAgICAgIGNzc1Zpc2liaWxpdHk6IGZhbHNlLFxuICAgICAgICAgICAgZGV0YWlsc0VsZW1lbnQ6IGZhbHNlLFxuICAgICAgICAgICAgYnJvd3NpbmdDb250ZXh0OiBmYWxzZVxuICAgICAgICB9XG4gICAgICAgIDogX3JlZiRleGNlcHQ7XG4gICAgdmFyIGVsZW1lbnQgPSBjb250ZXh0VG9FbGVtZW50KHtcbiAgICAgICAgbGFiZWw6ICdpcy92aXNpYmxlJyxcbiAgICAgICAgcmVzb2x2ZURvY3VtZW50OiB0cnVlLFxuICAgICAgICBjb250ZXh0OiBjb250ZXh0XG4gICAgfSk7XG4gICAgdmFyIG5vZGVOYW1lID0gZWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIGlmICghZXhjZXB0Lm5vdFJlbmRlcmVkICYmIG5vdFJlbmRlcmVkRWxlbWVudHNQYXR0ZXJuLnRlc3Qobm9kZU5hbWUpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICB2YXIgX3BhdGggPSBnZXRQYXJlbnRzKHsgY29udGV4dDogZWxlbWVudCB9KTtcbiAgICAvLyBpbiBJbnRlcm5ldCBFeHBsb3JlciA8YXVkaW8+IGhhcyBhIGRlZmF1bHQgZGlzcGxheTogbm9uZSwgd2hlcmUgb3RoZXJzIGhhdmUgZGlzcGxheTogaW5saW5lXG4gICAgLy8gYnV0IElFIGFsbG93cyBmb2N1c2luZyA8YXVkaW8gc3R5bGU9XCJkaXNwbGF5Om5vbmVcIj4sIGJ1dCBub3QgPGRpdiBkaXNwbGF5Om5vbmU+PGF1ZGlvPlxuICAgIC8vIHRoaXMgaXMgaXJyZWxldmFudCB0byBvdGhlciBicm93c2VycywgYXMgdGhlIGNvbnRyb2xzIGF0dHJpYnV0ZSBpcyByZXF1aXJlZCB0byBtYWtlIDxhdWRpbz4gZm9jdXNhYmxlXG4gICAgdmFyIGlzQXVkaW9XaXRob3V0Q29udHJvbHMgPSBub2RlTmFtZSA9PT0gJ2F1ZGlvJyAmJiAhZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2NvbnRyb2xzJyk7XG4gICAgaWYgKCFleGNlcHQuY3NzRGlzcGxheSAmJlxuICAgICAgICBub3REaXNwbGF5ZWQoaXNBdWRpb1dpdGhvdXRDb250cm9scyA/IF9wYXRoLnNsaWNlKDEpIDogX3BhdGgpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKCFleGNlcHQuY3NzVmlzaWJpbGl0eSAmJiBub3RWaXNpYmxlKF9wYXRoKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICghZXhjZXB0LmRldGFpbHNFbGVtZW50ICYmIGNvbGxhcHNlZFBhcmVudChfcGF0aCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoIWV4Y2VwdC5icm93c2luZ0NvbnRleHQpIHtcbiAgICAgICAgLy8gZWxlbWVudHMgd2l0aGluIGEgYnJvd3NpbmcgY29udGV4dCBhcmUgYWZmZWN0ZWQgYnkgdGhlXG4gICAgICAgIC8vIGJyb3dzaW5nIGNvbnRleHQgaG9zdCBlbGVtZW50J3MgdmlzaWJpbGl0eSBhbmQgdGFiaW5kZXhcbiAgICAgICAgdmFyIGZyYW1lRWxlbWVudCA9IGdldEZyYW1lRWxlbWVudChlbGVtZW50KTtcbiAgICAgICAgdmFyIF9pc1Zpc2libGUgPSBpc1Zpc2libGVSdWxlcy5leGNlcHQoZXhjZXB0KTtcbiAgICAgICAgaWYgKGZyYW1lRWxlbWVudCAmJiAhX2lzVmlzaWJsZShmcmFtZUVsZW1lbnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG59XG4vLyBiaW5kIGV4Y2VwdGlvbnMgdG8gYW4gaXRlcmF0b3IgY2FsbGJhY2tcbmlzVmlzaWJsZVJ1bGVzLmV4Y2VwdCA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZXhjZXB0ID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fTtcbiAgICB2YXIgaXNWaXNpYmxlID0gZnVuY3Rpb24gaXNWaXNpYmxlKGNvbnRleHQpIHtcbiAgICAgICAgcmV0dXJuIGlzVmlzaWJsZVJ1bGVzKHtcbiAgICAgICAgICAgIGNvbnRleHQ6IGNvbnRleHQsXG4gICAgICAgICAgICBleGNlcHQ6IGV4Y2VwdFxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIGlzVmlzaWJsZS5ydWxlcyA9IGlzVmlzaWJsZVJ1bGVzO1xuICAgIHJldHVybiBpc1Zpc2libGU7XG59O1xuLy8gcHJvdmlkZSBpc1Zpc2libGUoY29udGV4dCkgYXMgZGVmYXVsdCBpdGVyYXRvciBjYWxsYmFja1xudmFyIGlzVmlzaWJsZSA9IGlzVmlzaWJsZVJ1bGVzLmV4Y2VwdCh7fSk7XG5mdW5jdGlvbiBnZXRNYXBCeU5hbWUobmFtZSwgX2RvY3VtZW50KSB7XG4gICAgLy8gYXBwYXJlbnRseSBnZXRFbGVtZW50c0J5TmFtZSgpIGFsc28gY29uc2lkZXJzIGlkIGF0dHJpYnV0ZSBpbiBJRSAmIG9wZXJhXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0RvY3VtZW50L2dldEVsZW1lbnRzQnlOYW1lXG4gICAgdmFyIG1hcCA9IF9kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdtYXBbbmFtZT1cIicgKyAoMCwgY3NzX2VzY2FwZV8xW1wiZGVmYXVsdFwiXSkobmFtZSkgKyAnXCJdJyk7XG4gICAgcmV0dXJuIG1hcCB8fCBudWxsO1xufVxuZnVuY3Rpb24gZ2V0SW1hZ2VPZkFyZWEoZWxlbWVudCkge1xuICAgIHZhciBtYXAgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQ7XG4gICAgaWYgKCFtYXAubmFtZSB8fCBtYXAubm9kZU5hbWUudG9Mb3dlckNhc2UoKSAhPT0gJ21hcCcpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIC8vIE5PVEU6IGltYWdlIG1hcHMgY2FuIGFsc28gYmUgYXBwbGllZCB0byA8b2JqZWN0PiB3aXRoIGltYWdlIGNvbnRlbnQsXG4gICAgLy8gYnV0IG5vIGJyb3dzZXIgc3VwcG9ydHMgdGhpcyBhdCB0aGUgbW9tZW50XG4gICAgLy8gSFRNTDUgc3BlY2lmaWVzIEhUTUxNYXBFbGVtZW50LmltYWdlcyB0byBiZSBhbiBIVE1MQ29sbGVjdGlvbiBvZiBhbGxcbiAgICAvLyA8aW1nPiBhbmQgPG9iamVjdD4gcmVmZXJlbmNpbmcgdGhlIDxtYXA+IGVsZW1lbnQsIGJ1dCBubyBicm93c2VyIGltcGxlbWVudHMgdGhpc1xuICAgIC8vICAgaHR0cHM6Ly93d3cudzMub3JnL1RSL2h0bWw1L2VtYmVkZGVkLWNvbnRlbnQtMC5odG1sI3RoZS1tYXAtZWxlbWVudFxuICAgIC8vICAgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0hUTUxNYXBFbGVtZW50XG4gICAgLy8gdGhlIGltYWdlIG11c3QgYmUgdmFsaWQgYW5kIGxvYWRlZCBmb3IgdGhlIG1hcCB0byB0YWtlIGVmZmVjdFxuICAgIHZhciBfZG9jdW1lbnQgPSBnZXREb2N1bWVudChlbGVtZW50KTtcbiAgICByZXR1cm4gKF9kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbWdbdXNlbWFwPVwiIycgKyAoMCwgY3NzX2VzY2FwZV8xW1wiZGVmYXVsdFwiXSkobWFwLm5hbWUpICsgJ1wiXScpIHx8XG4gICAgICAgIG51bGwpO1xufVxudmFyIHN1cHBvcnRzJDIgPSB2b2lkIDA7XG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVE1ML0VsZW1lbnQvbWFwXG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVE1ML0VsZW1lbnQvaW1nI2F0dHItdXNlbWFwXG4vLyBodHRwczovL2dpdGh1Yi5jb20vanF1ZXJ5L2pxdWVyeS11aS9ibG9iL21hc3Rlci91aS9jb3JlLmpzI0w4OC1MMTA3XG5mdW5jdGlvbiBpc1ZhbGlkQXJlYShjb250ZXh0KSB7XG4gICAgaWYgKCFzdXBwb3J0cyQyKSB7XG4gICAgICAgIHN1cHBvcnRzJDIgPSBfc3VwcG9ydHMoKTtcbiAgICB9XG4gICAgdmFyIGVsZW1lbnQgPSBjb250ZXh0VG9FbGVtZW50KHtcbiAgICAgICAgbGFiZWw6ICdpcy92YWxpZC1hcmVhJyxcbiAgICAgICAgY29udGV4dDogY29udGV4dFxuICAgIH0pO1xuICAgIHZhciBub2RlTmFtZSA9IGVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAobm9kZU5hbWUgIT09ICdhcmVhJykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHZhciBoYXNUYWJpbmRleCA9IGVsZW1lbnQuaGFzQXR0cmlidXRlKCd0YWJpbmRleCcpO1xuICAgIGlmICghc3VwcG9ydHMkMi5mb2N1c0FyZWFUYWJpbmRleCAmJiBoYXNUYWJpbmRleCkge1xuICAgICAgICAvLyBCbGluayBhbmQgV2ViS2l0IGRvIG5vdCBjb25zaWRlciA8YXJlYSB0YWJpbmRleD1cIi0xXCIgaHJlZj1cIiN2b2lkXCI+IGZvY3VzYWJsZVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHZhciBpbWcgPSBnZXRJbWFnZU9mQXJlYShlbGVtZW50KTtcbiAgICBpZiAoIWltZyB8fCAhaXNWaXNpYmxlKGltZykpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvLyBGaXJlZm94IG9ubHkgYWxsb3dzIGZ1bGx5IGxvYWRlZCBpbWFnZXMgdG8gcmVmZXJlbmNlIGltYWdlIG1hcHNcbiAgICAvLyBodHRwczovL3N0ZXJlb2Nocm8ubWUvaWRlYXMvZGV0ZWN0aW5nLWJyb2tlbi1pbWFnZXMtanNcbiAgICBpZiAoIXN1cHBvcnRzJDIuZm9jdXNCcm9rZW5JbWFnZU1hcCAmJlxuICAgICAgICAoIWltZy5jb21wbGV0ZSB8fFxuICAgICAgICAgICAgIWltZy5uYXR1cmFsSGVpZ2h0IHx8XG4gICAgICAgICAgICBpbWcub2Zmc2V0V2lkdGggPD0gMCB8fFxuICAgICAgICAgICAgaW1nLm9mZnNldEhlaWdodCA8PSAwKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIC8vIEZpcmVmb3ggc3VwcG9ydHMuY2FuIGZvY3VzIGFyZWEgZWxlbWVudHMgZXZlbiBpZiB0aGV5IGRvbid0IGhhdmUgYW4gaHJlZiBhdHRyaWJ1dGVcbiAgICBpZiAoIXN1cHBvcnRzJDIuZm9jdXNBcmVhV2l0aG91dEhyZWYgJiYgIWVsZW1lbnQuaHJlZikge1xuICAgICAgICAvLyBJbnRlcm5ldCBleHBsb3JlciBzdXBwb3J0cy5jYW4gZm9jdXMgYXJlYSBlbGVtZW50cyB3aXRob3V0IGhyZWYgaWYgZWl0aGVyXG4gICAgICAgIC8vIHRoZSBhcmVhIGVsZW1lbnQgb3IgdGhlIGltYWdlIGVsZW1lbnQgaGFzIGEgdGFiaW5kZXggYXR0cmlidXRlXG4gICAgICAgIHJldHVybiAoKHN1cHBvcnRzJDIuZm9jdXNBcmVhVGFiaW5kZXggJiYgaGFzVGFiaW5kZXgpIHx8XG4gICAgICAgICAgICAoc3VwcG9ydHMkMi5mb2N1c0FyZWFJbWdUYWJpbmRleCAmJiBpbWcuaGFzQXR0cmlidXRlKCd0YWJpbmRleCcpKSk7XG4gICAgfVxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0hUTUwvRWxlbWVudC9pbWcjYXR0ci11c2VtYXBcbiAgICB2YXIgY2hpbGRPZkludGVyYWN0aXZlID0gZ2V0UGFyZW50cyh7IGNvbnRleHQ6IGltZyB9KVxuICAgICAgICAuc2xpY2UoMSlcbiAgICAgICAgLnNvbWUoZnVuY3Rpb24gKF9lbGVtZW50KSB7XG4gICAgICAgIHZhciBuYW1lID0gX2VsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgcmV0dXJuIG5hbWUgPT09ICdidXR0b24nIHx8IG5hbWUgPT09ICdhJztcbiAgICB9KTtcbiAgICBpZiAoY2hpbGRPZkludGVyYWN0aXZlKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG59XG52YXIgc3VwcG9ydHMkMyA9IHZvaWQgMDtcbi8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9odG1sNS9kaXNhYmxlZC1lbGVtZW50cy5odG1sI2NvbmNlcHQtZWxlbWVudC1kaXNhYmxlZFxudmFyIGRpc2FibGVkRWxlbWVudHNQYXR0ZXJuID0gdm9pZCAwO1xudmFyIGRpc2FibGVkRWxlbWVudHMgPSB7XG4gICAgaW5wdXQ6IHRydWUsXG4gICAgc2VsZWN0OiB0cnVlLFxuICAgIHRleHRhcmVhOiB0cnVlLFxuICAgIGJ1dHRvbjogdHJ1ZSxcbiAgICBmaWVsZHNldDogdHJ1ZSxcbiAgICBmb3JtOiB0cnVlXG59O1xuZnVuY3Rpb24gaXNOYXRpdmVEaXNhYmxlZFN1cHBvcnRlZChjb250ZXh0KSB7XG4gICAgaWYgKCFzdXBwb3J0cyQzKSB7XG4gICAgICAgIHN1cHBvcnRzJDMgPSBfc3VwcG9ydHMoKTtcbiAgICAgICAgaWYgKHN1cHBvcnRzJDMuZm9jdXNGaWVsZHNldERpc2FibGVkKSB7XG4gICAgICAgICAgICBkZWxldGUgZGlzYWJsZWRFbGVtZW50cy5maWVsZHNldDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3VwcG9ydHMkMy5mb2N1c0Zvcm1EaXNhYmxlZCkge1xuICAgICAgICAgICAgZGVsZXRlIGRpc2FibGVkRWxlbWVudHMuZm9ybTtcbiAgICAgICAgfVxuICAgICAgICBkaXNhYmxlZEVsZW1lbnRzUGF0dGVybiA9IG5ldyBSZWdFeHAoJ14oJyArIE9iamVjdC5rZXlzKGRpc2FibGVkRWxlbWVudHMpLmpvaW4oJ3wnKSArICcpJCcpO1xuICAgIH1cbiAgICB2YXIgZWxlbWVudCA9IGNvbnRleHRUb0VsZW1lbnQoe1xuICAgICAgICBsYWJlbDogJ2lzL25hdGl2ZS1kaXNhYmxlZC1zdXBwb3J0ZWQnLFxuICAgICAgICBjb250ZXh0OiBjb250ZXh0XG4gICAgfSk7XG4gICAgdmFyIG5vZGVOYW1lID0gZWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIHJldHVybiBCb29sZWFuKGRpc2FibGVkRWxlbWVudHNQYXR0ZXJuLnRlc3Qobm9kZU5hbWUpKTtcbn1cbnZhciBzdXBwb3J0cyQ0ID0gdm9pZCAwO1xuZnVuY3Rpb24gaXNEaXNhYmxlZEZpZWxkc2V0KGVsZW1lbnQpIHtcbiAgICB2YXIgbm9kZU5hbWUgPSBlbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgcmV0dXJuIG5vZGVOYW1lID09PSAnZmllbGRzZXQnICYmIGVsZW1lbnQuZGlzYWJsZWQ7XG59XG5mdW5jdGlvbiBpc0Rpc2FibGVkRm9ybShlbGVtZW50KSB7XG4gICAgdmFyIG5vZGVOYW1lID0gZWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIHJldHVybiBub2RlTmFtZSA9PT0gJ2Zvcm0nICYmIGVsZW1lbnQuZGlzYWJsZWQ7XG59XG5mdW5jdGlvbiBpc0Rpc2FibGVkKGNvbnRleHQpIHtcbiAgICBpZiAoIXN1cHBvcnRzJDQpIHtcbiAgICAgICAgc3VwcG9ydHMkNCA9IF9zdXBwb3J0cygpO1xuICAgIH1cbiAgICB2YXIgZWxlbWVudCA9IGNvbnRleHRUb0VsZW1lbnQoe1xuICAgICAgICBsYWJlbDogJ2lzL2Rpc2FibGVkJyxcbiAgICAgICAgY29udGV4dDogY29udGV4dFxuICAgIH0pO1xuICAgIGlmIChlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnZGF0YS1hbGx5LWRpc2FibGVkJykpIHtcbiAgICAgICAgLy8gdHJlYXQgYWxseSdzIGVsZW1lbnQvZGlzYWJsZWQgbGlrZSB0aGUgRE9NIG5hdGl2ZSBlbGVtZW50LmRpc2FibGVkXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoIWlzTmF0aXZlRGlzYWJsZWRTdXBwb3J0ZWQoZWxlbWVudCkpIHtcbiAgICAgICAgLy8gbm9uLWZvcm0gZWxlbWVudHMgZG8gbm90IHN1cHBvcnQgdGhlIGRpc2FibGVkIGF0dHJpYnV0ZVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChlbGVtZW50LmRpc2FibGVkKSB7XG4gICAgICAgIC8vIHRoZSBlbGVtZW50IGl0c2VsZiBpcyBkaXNhYmxlZFxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgdmFyIHBhcmVudHMgPSBnZXRQYXJlbnRzKHsgY29udGV4dDogZWxlbWVudCB9KTtcbiAgICBpZiAocGFyZW50cy5zb21lKGlzRGlzYWJsZWRGaWVsZHNldCkpIHtcbiAgICAgICAgLy8gYSBwYXJlbnRhbCA8ZmllbGRzZXQ+IGlzIGRpc2FibGQgYW5kIGluaGVyaXRzIHRoZSBzdGF0ZSBvbnRvIHRoaXMgZWxlbWVudFxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKCFzdXBwb3J0cyQ0LmZvY3VzRm9ybURpc2FibGVkICYmIHBhcmVudHMuc29tZShpc0Rpc2FibGVkRm9ybSkpIHtcbiAgICAgICAgLy8gYSBwYXJlbnRhbCA8Zm9ybT4gaXMgZGlzYWJsZCBhbmQgaW5oZXJpdHMgdGhlIHN0YXRlIG9udG8gdGhpcyBlbGVtZW50XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59XG5mdW5jdGlvbiBpc09ubHlUYWJiYWJsZVJ1bGVzKCkge1xuICAgIHZhciBfcmVmID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fSwgY29udGV4dCA9IF9yZWYuY29udGV4dCwgX3JlZiRleGNlcHQgPSBfcmVmLmV4Y2VwdCwgZXhjZXB0ID0gX3JlZiRleGNlcHQgPT09IHVuZGVmaW5lZFxuICAgICAgICA/IHtcbiAgICAgICAgICAgIG9ubHlGb2N1c2FibGVCcm93c2luZ0NvbnRleHQ6IGZhbHNlLFxuICAgICAgICAgICAgdmlzaWJsZTogZmFsc2VcbiAgICAgICAgfVxuICAgICAgICA6IF9yZWYkZXhjZXB0O1xuICAgIHZhciBlbGVtZW50ID0gY29udGV4dFRvRWxlbWVudCh7XG4gICAgICAgIGxhYmVsOiAnaXMvb25seS10YWJiYWJsZScsXG4gICAgICAgIHJlc29sdmVEb2N1bWVudDogdHJ1ZSxcbiAgICAgICAgY29udGV4dDogY29udGV4dFxuICAgIH0pO1xuICAgIGlmICghZXhjZXB0LnZpc2libGUgJiYgIWlzVmlzaWJsZShlbGVtZW50KSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICghZXhjZXB0Lm9ubHlGb2N1c2FibGVCcm93c2luZ0NvbnRleHQgJiZcbiAgICAgICAgKHBsYXRmb3JtLmlzLkdFQ0tPIHx8IHBsYXRmb3JtLmlzLlRSSURFTlQgfHwgcGxhdGZvcm0uaXMuRURHRSkpIHtcbiAgICAgICAgdmFyIGZyYW1lRWxlbWVudCA9IGdldEZyYW1lRWxlbWVudChlbGVtZW50KTtcbiAgICAgICAgaWYgKGZyYW1lRWxlbWVudCkge1xuICAgICAgICAgICAgaWYgKHRhYmluZGV4VmFsdWUoZnJhbWVFbGVtZW50KSA8IDApIHtcbiAgICAgICAgICAgICAgICAvLyBpZnJhbWVbdGFiaW5kZXg9XCItMVwiXSBhbmQgb2JqZWN0W3RhYmluZGV4PVwiLTFcIl0gaW5oZXJpdCB0aGVcbiAgICAgICAgICAgICAgICAvLyB0YWJiYWJsZSBkZW1vdGlvbiBvbnRvIGVsZW1lbnRzIG9mIHRoZWlyIGJyb3dzaW5nIGNvbnRleHRzXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHZhciBub2RlTmFtZSA9IGVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICB2YXIgdGFiaW5kZXggPSB0YWJpbmRleFZhbHVlKGVsZW1lbnQpO1xuICAgIGlmIChub2RlTmFtZSA9PT0gJ2xhYmVsJyAmJiBwbGF0Zm9ybS5pcy5HRUNLTykge1xuICAgICAgICAvLyBGaXJlZm94IGNhbm5vdCBmb2N1cywgYnV0IHRhYiB0bzogbGFiZWxbdGFiaW5kZXg9MF1cbiAgICAgICAgcmV0dXJuIHRhYmluZGV4ICE9PSBudWxsICYmIHRhYmluZGV4ID49IDA7XG4gICAgfVxuICAgIC8vIFNWRyBFbGVtZW50cyB3ZXJlIGtleWJvYXJkIGZvY3VzYWJsZSBidXQgbm90IHNjcmlwdCBmb2N1c2FibGUgYmVmb3JlIEZpcmVmb3ggNTEuXG4gICAgLy8gRmlyZWZveCA1MSBhZGRlZCB0aGUgZm9jdXMgbWFuYWdlbWVudCBET00gQVBJICguZm9jdXMgYW5kIC5ibHVyKSB0byBTVkdFbGVtZW50LFxuICAgIC8vIHNlZSBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD03Nzg2NTRcbiAgICBpZiAocGxhdGZvcm0uaXMuR0VDS08gJiYgZWxlbWVudC5vd25lclNWR0VsZW1lbnQgJiYgIWVsZW1lbnQuZm9jdXMpIHtcbiAgICAgICAgaWYgKG5vZGVOYW1lID09PSAnYScgJiYgZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3hsaW5rOmhyZWYnKSkge1xuICAgICAgICAgICAgLy8gYW55IGZvY3VzYWJsZSBjaGlsZCBvZiA8c3ZnPiBjYW5ub3QgYmUgZm9jdXNlZCwgYnV0IHRhYmJlZCB0b1xuICAgICAgICAgICAgaWYgKHBsYXRmb3JtLmlzLkdFQ0tPKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuLy8gYmluZCBleGNlcHRpb25zIHRvIGFuIGl0ZXJhdG9yIGNhbGxiYWNrXG5pc09ubHlUYWJiYWJsZVJ1bGVzLmV4Y2VwdCA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZXhjZXB0ID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fTtcbiAgICB2YXIgaXNPbmx5VGFiYmFibGUgPSBmdW5jdGlvbiBpc09ubHlUYWJiYWJsZShjb250ZXh0KSB7XG4gICAgICAgIHJldHVybiBpc09ubHlUYWJiYWJsZVJ1bGVzKHtcbiAgICAgICAgICAgIGNvbnRleHQ6IGNvbnRleHQsXG4gICAgICAgICAgICBleGNlcHQ6IGV4Y2VwdFxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIGlzT25seVRhYmJhYmxlLnJ1bGVzID0gaXNPbmx5VGFiYmFibGVSdWxlcztcbiAgICByZXR1cm4gaXNPbmx5VGFiYmFibGU7XG59O1xuLy8gcHJvdmlkZSBpc09ubHlUYWJiYWJsZShjb250ZXh0KSBhcyBkZWZhdWx0IGl0ZXJhdG9yIGNhbGxiYWNrXG52YXIgaXNPbmx5VGFiYmFibGUgPSBpc09ubHlUYWJiYWJsZVJ1bGVzLmV4Y2VwdCh7fSk7XG52YXIgc3VwcG9ydHMkNSA9IHZvaWQgMDtcbmZ1bmN0aW9uIGlzT25seUZvY3VzUmVsZXZhbnQoZWxlbWVudCkge1xuICAgIHZhciBub2RlTmFtZSA9IGVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAobm9kZU5hbWUgPT09ICdlbWJlZCcgfHwgbm9kZU5hbWUgPT09ICdrZXlnZW4nKSB7XG4gICAgICAgIC8vIGVtYmVkIGlzIGNvbnNpZGVyZWQgZm9jdXMtcmVsZXZhbnQgYnV0IG5vdCBmb2N1c2FibGVcbiAgICAgICAgLy8gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9tZWRpYWxpemUvYWxseS5qcy9pc3N1ZXMvODJcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHZhciBfdGFiaW5kZXggPSB0YWJpbmRleFZhbHVlKGVsZW1lbnQpO1xuICAgIGlmIChlbGVtZW50LnNoYWRvd1Jvb3QgJiYgX3RhYmluZGV4ID09PSBudWxsKSB7XG4gICAgICAgIC8vIFNoYWRvd0RPTSBob3N0IGVsZW1lbnRzICptYXkqIHJlY2VpdmUgZm9jdXNcbiAgICAgICAgLy8gZXZlbiB0aG91Z2ggdGhleSBhcmUgbm90IGNvbnNpZGVyZWQgZm9jdWFibGVcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChub2RlTmFtZSA9PT0gJ2xhYmVsJykge1xuICAgICAgICAvLyA8bGFiZWwgdGFiaW5kZXg9XCIwXCI+IGlzIG9ubHkgdGFiYmFibGUgaW4gRmlyZWZveCwgbm90IHNjcmlwdC1mb2N1c2FibGVcbiAgICAgICAgLy8gdGhlcmUncyBubyB3YXkgdG8gbWFrZSBhbiBlbGVtZW50IGZvY3VzYWJsZSBvdGhlciB0aGFuIGJ5IGFkZGluZyBhIHRhYmluZGV4LFxuICAgICAgICAvLyBhbmQgZm9jdXMgYmVoYXZpb3Igb2YgdGhlIGxhYmVsIGVsZW1lbnQgc2VlbXMgaGFyZC13aXJlZCB0byBpZ25vcmUgdGFiaW5kZXhcbiAgICAgICAgLy8gaW4gc29tZSBicm93c2VycyAobGlrZSBHZWNrbywgQmxpbmsgYW5kIFdlYktpdClcbiAgICAgICAgcmV0dXJuICFzdXBwb3J0cyQ1LmZvY3VzTGFiZWxUYWJpbmRleCB8fCBfdGFiaW5kZXggPT09IG51bGw7XG4gICAgfVxuICAgIGlmIChub2RlTmFtZSA9PT0gJ2xlZ2VuZCcpIHtcbiAgICAgICAgcmV0dXJuIF90YWJpbmRleCA9PT0gbnVsbDtcbiAgICB9XG4gICAgaWYgKHN1cHBvcnRzJDUuZm9jdXNTdmdGb2N1c2FibGVBdHRyaWJ1dGUgJiZcbiAgICAgICAgKGVsZW1lbnQub3duZXJTVkdFbGVtZW50IHx8IG5vZGVOYW1lID09PSAnc3ZnJykpIHtcbiAgICAgICAgLy8gSW50ZXJuZXQgRXhwbG9yZXIgdW5kZXJzdGFuZHMgdGhlIGZvY3VzYWJsZSBhdHRyaWJ1dGUgaW50cm9kdWNlZCBpbiBTVkcgVGlueSAxLjJcbiAgICAgICAgdmFyIGZvY3VzYWJsZUF0dHJpYnV0ZSA9IGVsZW1lbnQuZ2V0QXR0cmlidXRlKCdmb2N1c2FibGUnKTtcbiAgICAgICAgcmV0dXJuIGZvY3VzYWJsZUF0dHJpYnV0ZSAmJiBmb2N1c2FibGVBdHRyaWJ1dGUgPT09ICdmYWxzZSc7XG4gICAgfVxuICAgIGlmIChub2RlTmFtZSA9PT0gJ2ltZycgJiYgZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3VzZW1hcCcpKSB7XG4gICAgICAgIC8vIEdlY2tvLCBUcmlkZW50IGFuZCBFZGdlIGRvIG5vdCBhbGxvdyBhbiBpbWFnZSB3aXRoIGFuIGltYWdlIG1hcCBhbmQgdGFiaW5kZXggdG8gYmUgZm9jdXNlZCxcbiAgICAgICAgLy8gaXQgYXBwZWFycyB0aGUgdGFiaW5kZXggaXMgb3ZlcnJ1bGVkIHNvIGZvY3VzIGlzIHN0aWxsIGZvcndhcmRlZCB0byB0aGUgPG1hcD5cbiAgICAgICAgcmV0dXJuIF90YWJpbmRleCA9PT0gbnVsbCB8fCAhc3VwcG9ydHMkNS5mb2N1c0ltZ1VzZW1hcFRhYmluZGV4O1xuICAgIH1cbiAgICBpZiAobm9kZU5hbWUgPT09ICdhcmVhJykge1xuICAgICAgICAvLyBhbGwgPGFyZWE+cyBhcmUgY29uc2lkZXJlZCByZWxldmFudCxcbiAgICAgICAgLy8gYnV0IG9ubHkgdGhlIHZhbGlkIDxhcmVhPnMgYXJlIGZvY3VzYWJsZVxuICAgICAgICByZXR1cm4gIWlzVmFsaWRBcmVhKGVsZW1lbnQpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59XG5mdW5jdGlvbiBpc0ZvY3VzYWJsZVJ1bGVzKCkge1xuICAgIHZhciBfcmVmID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fSwgY29udGV4dCA9IF9yZWYuY29udGV4dCwgX3JlZiRleGNlcHQgPSBfcmVmLmV4Y2VwdCwgZXhjZXB0ID0gX3JlZiRleGNlcHQgPT09IHVuZGVmaW5lZFxuICAgICAgICA/IHtcbiAgICAgICAgICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICAgICAgICAgIHZpc2libGU6IGZhbHNlLFxuICAgICAgICAgICAgb25seVRhYmJhYmxlOiBmYWxzZVxuICAgICAgICB9XG4gICAgICAgIDogX3JlZiRleGNlcHQ7XG4gICAgaWYgKCFzdXBwb3J0cyQ1KSB7XG4gICAgICAgIHN1cHBvcnRzJDUgPSBfc3VwcG9ydHMoKTtcbiAgICB9XG4gICAgdmFyIF9pc09ubHlUYWJiYWJsZSA9IGlzT25seVRhYmJhYmxlLnJ1bGVzLmV4Y2VwdCh7XG4gICAgICAgIG9ubHlGb2N1c2FibGVCcm93c2luZ0NvbnRleHQ6IHRydWUsXG4gICAgICAgIHZpc2libGU6IGV4Y2VwdC52aXNpYmxlXG4gICAgfSk7XG4gICAgdmFyIGVsZW1lbnQgPSBjb250ZXh0VG9FbGVtZW50KHtcbiAgICAgICAgbGFiZWw6ICdpcy9mb2N1c2FibGUnLFxuICAgICAgICByZXNvbHZlRG9jdW1lbnQ6IHRydWUsXG4gICAgICAgIGNvbnRleHQ6IGNvbnRleHRcbiAgICB9KTtcbiAgICB2YXIgZm9jdXNSZWxldmFudCA9IGlzRm9jdXNSZWxldmFudC5ydWxlcyh7XG4gICAgICAgIGNvbnRleHQ6IGVsZW1lbnQsXG4gICAgICAgIGV4Y2VwdDogZXhjZXB0XG4gICAgfSk7XG4gICAgaWYgKCFmb2N1c1JlbGV2YW50IHx8IGlzT25seUZvY3VzUmVsZXZhbnQoZWxlbWVudCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoIWV4Y2VwdC5kaXNhYmxlZCAmJiBpc0Rpc2FibGVkKGVsZW1lbnQpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKCFleGNlcHQub25seVRhYmJhYmxlICYmIF9pc09ubHlUYWJiYWJsZShlbGVtZW50KSkge1xuICAgICAgICAvLyBzb21lIGVsZW1lbnRzIG1heSBiZSBrZXlib2FyZCBmb2N1c2FibGUsIGJ1dCBub3Qgc2NyaXB0IGZvY3VzYWJsZVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIC8vIGVsZW1lbnRzIHRoYXQgYXJlIG5vdCByZW5kZXJlZCwgY2Fubm90IGJlIGZvY3VzZWRcbiAgICBpZiAoIWV4Y2VwdC52aXNpYmxlKSB7XG4gICAgICAgIHZhciB2aXNpYmlsaXR5T3B0aW9ucyA9IHtcbiAgICAgICAgICAgIGNvbnRleHQ6IGVsZW1lbnQsXG4gICAgICAgICAgICBleGNlcHQ6IHt9XG4gICAgICAgIH07XG4gICAgICAgIGlmIChzdXBwb3J0cyQ1LmZvY3VzSW5IaWRkZW5JZnJhbWUpIHtcbiAgICAgICAgICAgIC8vIFdlYktpdCBhbmQgQmxpbmsgY2FuIGZvY3VzIGNvbnRlbnQgaW4gaGlkZGVuIDxpZnJhbWU+IGFuZCA8b2JqZWN0PlxuICAgICAgICAgICAgdmlzaWJpbGl0eU9wdGlvbnMuZXhjZXB0LmJyb3dzaW5nQ29udGV4dCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN1cHBvcnRzJDUuZm9jdXNPYmplY3RTdmdIaWRkZW4pIHtcbiAgICAgICAgICAgIC8vIEJsaW5rIGFsbG93cyBmb2N1c2luZyB0aGUgb2JqZWN0IGVsZW1lbnQsIGV2ZW4gaWYgaXQgaGFzIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIC8vIEBicm93c2VyLWlzc3VlIEJsaW5rIGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD01ODYxOTFcbiAgICAgICAgICAgIHZhciBfbm9kZU5hbWUyID0gZWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgaWYgKF9ub2RlTmFtZTIgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eU9wdGlvbnMuZXhjZXB0LmNzc1Zpc2liaWxpdHkgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghaXNWaXNpYmxlLnJ1bGVzKHZpc2liaWxpdHlPcHRpb25zKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHZhciBmcmFtZUVsZW1lbnQgPSBnZXRGcmFtZUVsZW1lbnQoZWxlbWVudCk7XG4gICAgaWYgKGZyYW1lRWxlbWVudCkge1xuICAgICAgICB2YXIgX25vZGVOYW1lID0gZnJhbWVFbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmIChfbm9kZU5hbWUgPT09ICdvYmplY3QnICYmICFzdXBwb3J0cyQ1LmZvY3VzSW5aZXJvRGltZW5zaW9uT2JqZWN0KSB7XG4gICAgICAgICAgICBpZiAoIWZyYW1lRWxlbWVudC5vZmZzZXRXaWR0aCB8fCAhZnJhbWVFbGVtZW50Lm9mZnNldEhlaWdodCkge1xuICAgICAgICAgICAgICAgIC8vIFdlYktpdCBjYW4gbm90IGZvY3VzIGNvbnRlbnQgaW4gPG9iamVjdD4gaWYgaXQgZG9lc24ndCBoYXZlIGRpbWVuc2lvbnNcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgdmFyIG5vZGVOYW1lID0gZWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIGlmIChub2RlTmFtZSA9PT0gJ3N2ZycgJiZcbiAgICAgICAgc3VwcG9ydHMkNS5mb2N1c1N2Z0luSWZyYW1lICYmXG4gICAgICAgICFmcmFtZUVsZW1lbnQgJiZcbiAgICAgICAgZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JykgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn1cbi8vIGJpbmQgZXhjZXB0aW9ucyB0byBhbiBpdGVyYXRvciBjYWxsYmFja1xuaXNGb2N1c2FibGVSdWxlcy5leGNlcHQgPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGV4Y2VwdCA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge307XG4gICAgdmFyIGlzRm9jdXNhYmxlID0gZnVuY3Rpb24gaXNGb2N1c2FibGUoY29udGV4dCkge1xuICAgICAgICByZXR1cm4gaXNGb2N1c2FibGVSdWxlcyh7XG4gICAgICAgICAgICBjb250ZXh0OiBjb250ZXh0LFxuICAgICAgICAgICAgZXhjZXB0OiBleGNlcHRcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBpc0ZvY3VzYWJsZS5ydWxlcyA9IGlzRm9jdXNhYmxlUnVsZXM7XG4gICAgcmV0dXJuIGlzRm9jdXNhYmxlO1xufTtcbi8vIHByb3ZpZGUgaXNGb2N1c1JlbGV2YW50KGNvbnRleHQpIGFzIGRlZmF1bHQgaXRlcmF0b3IgY2FsbGJhY2tcbnZhciBpc0ZvY3VzYWJsZSA9IGlzRm9jdXNhYmxlUnVsZXMuZXhjZXB0KHt9KTtcbmZ1bmN0aW9uIGNyZWF0ZUZpbHRlcihjb25kaXRpb24pIHtcbiAgICAvLyBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL05vZGVGaWx0ZXJcbiAgICB2YXIgZmlsdGVyID0gZnVuY3Rpb24gZmlsdGVyKG5vZGUpIHtcbiAgICAgICAgaWYgKG5vZGUuc2hhZG93Um9vdCkge1xuICAgICAgICAgICAgLy8gcmV0dXJuIFNoYWRvd1Jvb3QgZWxlbWVudHMgcmVnYXJkbGVzcyBvZiB0aGVtIGJlaW5nIGZvY3VzYWJsZSxcbiAgICAgICAgICAgIC8vIHNvIHRoZXkgY2FuIGJlIHdhbGtlZCByZWN1cnNpdmVseSBsYXRlclxuICAgICAgICAgICAgcmV0dXJuIE5vZGVGaWx0ZXIuRklMVEVSX0FDQ0VQVDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY29uZGl0aW9uKG5vZGUpKSB7XG4gICAgICAgICAgICAvLyBmaW5kcyBlbGVtZW50cyB0aGF0IGNvdWxkIGhhdmUgYmVlbiBmb3VuZCBieSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKClcbiAgICAgICAgICAgIHJldHVybiBOb2RlRmlsdGVyLkZJTFRFUl9BQ0NFUFQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIE5vZGVGaWx0ZXIuRklMVEVSX1NLSVA7XG4gICAgfTtcbiAgICAvLyBJRSByZXF1aXJlcyBhIGZ1bmN0aW9uLCBCcm93c2VycyByZXF1aXJlIHthY2NlcHROb2RlOiBmdW5jdGlvbn1cbiAgICAvLyBzZWUgaHR0cDovL3d3dy5iZW5uYWRlbC5jb20vYmxvZy8yNjA3LWZpbmRpbmctaHRtbC1jb21tZW50LW5vZGVzLWluLXRoZS1kb20tdXNpbmctdHJlZXdhbGtlci5odG1cbiAgICBmaWx0ZXIuYWNjZXB0Tm9kZSA9IGZpbHRlcjtcbiAgICByZXR1cm4gZmlsdGVyO1xufVxudmFyIFBvc3NpYmx5Rm9jdXNhYmxlRmlsdGVyID0gY3JlYXRlRmlsdGVyKGlzRm9jdXNSZWxldmFudCk7XG5mdW5jdGlvbiBxdWVyeUZvY3VzYWJsZVN0cmljdCgpIHtcbiAgICB2YXIgX3JlZiA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge30sIGNvbnRleHQgPSBfcmVmLmNvbnRleHQsIGluY2x1ZGVDb250ZXh0ID0gX3JlZi5pbmNsdWRlQ29udGV4dCwgaW5jbHVkZU9ubHlUYWJiYWJsZSA9IF9yZWYuaW5jbHVkZU9ubHlUYWJiYWJsZSwgc3RyYXRlZ3kgPSBfcmVmLnN0cmF0ZWd5O1xuICAgIGlmICghY29udGV4dCkge1xuICAgICAgICBjb250ZXh0ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuICAgIH1cbiAgICB2YXIgX2lzRm9jdXNhYmxlID0gaXNGb2N1c2FibGUucnVsZXMuZXhjZXB0KHtcbiAgICAgICAgb25seVRhYmJhYmxlOiBpbmNsdWRlT25seVRhYmJhYmxlXG4gICAgfSk7XG4gICAgdmFyIF9kb2N1bWVudCA9IGdldERvY3VtZW50KGNvbnRleHQpO1xuICAgIC8vIHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRG9jdW1lbnQvY3JlYXRlVHJlZVdhbGtlclxuICAgIHZhciB3YWxrZXIgPSBfZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihcbiAgICAvLyByb290IGVsZW1lbnQgdG8gc3RhcnQgc2VhcmNoIGluXG4gICAgY29udGV4dCwgXG4gICAgLy8gZWxlbWVudCB0eXBlIGZpbHRlclxuICAgIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBcbiAgICAvLyBjdXN0b20gTm9kZUZpbHRlciBmaWx0ZXJcbiAgICBzdHJhdGVneSA9PT0gJ2FsbCcgPyBQb3NzaWJseUZvY3VzYWJsZUZpbHRlciA6IGNyZWF0ZUZpbHRlcihfaXNGb2N1c2FibGUpLCBcbiAgICAvLyBkZXByZWNhdGVkLCBidXQgSUUgcmVxdWlyZXMgaXRcbiAgICBmYWxzZSk7XG4gICAgdmFyIGxpc3QgPSBbXTtcbiAgICB3aGlsZSAod2Fsa2VyLm5leHROb2RlKCkpIHtcbiAgICAgICAgaWYgKHdhbGtlci5jdXJyZW50Tm9kZS5zaGFkb3dSb290KSB7XG4gICAgICAgICAgICBpZiAoX2lzRm9jdXNhYmxlKHdhbGtlci5jdXJyZW50Tm9kZSkpIHtcbiAgICAgICAgICAgICAgICBsaXN0LnB1c2god2Fsa2VyLmN1cnJlbnROb2RlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxpc3QgPSBsaXN0LmNvbmNhdChxdWVyeUZvY3VzYWJsZVN0cmljdCh7XG4gICAgICAgICAgICAgICAgY29udGV4dDogd2Fsa2VyLmN1cnJlbnROb2RlLnNoYWRvd1Jvb3QsXG4gICAgICAgICAgICAgICAgaW5jbHVkZU9ubHlUYWJiYWJsZTogaW5jbHVkZU9ubHlUYWJiYWJsZSxcbiAgICAgICAgICAgICAgICBzdHJhdGVneTogc3RyYXRlZ3lcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGxpc3QucHVzaCh3YWxrZXIuY3VycmVudE5vZGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIGFkZCBjb250ZXh0IGlmIHJlcXVlc3RlZCBhbmQgZm9jdXNhYmxlXG4gICAgaWYgKGluY2x1ZGVDb250ZXh0KSB7XG4gICAgICAgIGlmIChzdHJhdGVneSA9PT0gJ2FsbCcpIHtcbiAgICAgICAgICAgIGlmIChpc0ZvY3VzUmVsZXZhbnQoY29udGV4dCkpIHtcbiAgICAgICAgICAgICAgICBsaXN0LnVuc2hpZnQoY29udGV4dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoX2lzRm9jdXNhYmxlKGNvbnRleHQpKSB7XG4gICAgICAgICAgICBsaXN0LnVuc2hpZnQoY29udGV4dCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGxpc3Q7XG59XG4vLyBOT1RFOiB0aGlzIHNlbGVjdG9yIE1VU1QgKm5ldmVyKiBiZSB1c2VkIGRpcmVjdGx5LFxudmFyIHN1cHBvcnRzJDYgPSB2b2lkIDA7XG52YXIgc2VsZWN0b3IkMSA9IHZvaWQgMDtcbmZ1bmN0aW9uIHNlbGVjdG9yJDIoKSB7XG4gICAgaWYgKCFzdXBwb3J0cyQ2KSB7XG4gICAgICAgIHN1cHBvcnRzJDYgPSBfc3VwcG9ydHMoKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBzZWxlY3RvciQxID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gc2VsZWN0b3IkMTtcbiAgICB9XG4gICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2h0bWw1L2VkaXRpbmcuaHRtbCNzZXF1ZW50aWFsLWZvY3VzLW5hdmlnYXRpb24tYW5kLXRoZS10YWJpbmRleC1hdHRyaWJ1dGVcbiAgICBzZWxlY3RvciQxID1cbiAgICAgICAgJycgK1xuICAgICAgICAgICAgLy8gSUUxMSBzdXBwb3J0cy5jYW4gZm9jdXMgPHRhYmxlPiBhbmQgPHRkPlxuICAgICAgICAgICAgKHN1cHBvcnRzJDYuZm9jdXNUYWJsZSA/ICd0YWJsZSwgdGQsJyA6ICcnKSArXG4gICAgICAgICAgICAvLyBJRTExIHN1cHBvcnRzLmNhbiBmb2N1cyA8ZmllbGRzZXQ+XG4gICAgICAgICAgICAoc3VwcG9ydHMkNi5mb2N1c0ZpZWxkc2V0ID8gJ2ZpZWxkc2V0LCcgOiAnJykgK1xuICAgICAgICAgICAgLy8gTmFtZXNwYWNlIHByb2JsZW1zIG9mIFt4bGluazpocmVmXSBleHBsYWluZWQgaW4gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzIzMDQ3ODg4LzUxNTEyNFxuICAgICAgICAgICAgLy8gc3ZnIGFbKnxocmVmXSBkb2VzIG5vdCBtYXRjaCBpbiBJRTksIGJ1dCBzaW5jZSB3ZSdyZSBmaWx0ZXJpbmdcbiAgICAgICAgICAgIC8vIHRocm91Z2ggaXMvZm9jdXNhYmxlIHdlIGNhbiBpbmNsdWRlIGFsbCA8YT4gZnJvbSBTVkdcbiAgICAgICAgICAgICdzdmcgYSwnICtcbiAgICAgICAgICAgIC8vIG1heSBiZWhhdmUgYXMgJ3N2Zywgc3ZnICosJyBpbiBjaHJvbWUgYXMgKmV2ZXJ5KiBzdmcgZWxlbWVudCB3aXRoIGEgZm9jdXMgZXZlbnQgbGlzdGVuZXIgaXMgZm9jdXNhYmxlXG4gICAgICAgICAgICAvLyBuYXZpZ2F0aW9uYWwgZWxlbWVudHNcbiAgICAgICAgICAgICdhW2hyZWZdLCcgK1xuICAgICAgICAgICAgLy8gdmFsaWRpdHkgZGV0ZXJtaW5lZCBieSBpcy92YWxpZC1hcmVhLmpzXG4gICAgICAgICAgICAnYXJlYVtocmVmXSwnICtcbiAgICAgICAgICAgIC8vIHZhbGlkaXR5IGRldGVybWluZWQgYnkgaXMvZGlzYWJsZWQuanNcbiAgICAgICAgICAgICdpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSwgYnV0dG9uLCcgK1xuICAgICAgICAgICAgLy8gYnJvd3NpbmcgY29udGV4dCBjb250YWluZXJzXG4gICAgICAgICAgICAnaWZyYW1lLCBvYmplY3QsIGVtYmVkLCcgK1xuICAgICAgICAgICAgLy8gaW50ZXJhY3RpdmUgY29udGVudFxuICAgICAgICAgICAgJ2tleWdlbiwnICtcbiAgICAgICAgICAgIChzdXBwb3J0cyQ2LmZvY3VzQXVkaW9XaXRob3V0Q29udHJvbHMgPyAnYXVkaW8sJyA6ICdhdWRpb1tjb250cm9sc10sJykgK1xuICAgICAgICAgICAgKHN1cHBvcnRzJDYuZm9jdXNWaWRlb1dpdGhvdXRDb250cm9scyA/ICd2aWRlbywnIDogJ3ZpZGVvW2NvbnRyb2xzXSwnKSArXG4gICAgICAgICAgICAoc3VwcG9ydHMkNi5mb2N1c1N1bW1hcnkgPyAnc3VtbWFyeSwnIDogJycpICtcbiAgICAgICAgICAgIC8vIHZhbGlkaXR5IGRldGVybWluZWQgYnkgaXMvdmFsaWQtdGFiaW5kZXguanNcbiAgICAgICAgICAgICdbdGFiaW5kZXhdLCcgK1xuICAgICAgICAgICAgLy8gZWRpdGluZyBob3N0c1xuICAgICAgICAgICAgJ1tjb250ZW50ZWRpdGFibGVdJztcbiAgICAvLyB3aGVyZSBTaGFkb3dET00gaXMgc3VwcG9ydGVkLCB3ZSBhbHNvIHdhbnQgdGhlIHNoYWRvd2VkIGZvY3VzYWJsZSBlbGVtZW50cyAodmlhIFwiPj4+XCIgb3IgXCIvZGVlcC9cIilcbiAgICBzZWxlY3RvciQxID0gc2VsZWN0SW5TaGFkb3dzKHNlbGVjdG9yJDEpO1xuICAgIHJldHVybiBzZWxlY3RvciQxO1xufVxuZnVuY3Rpb24gcXVlcnlGb2N1c2FibGVRdWljaygpIHtcbiAgICB2YXIgX3JlZiA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge30sIGNvbnRleHQgPSBfcmVmLmNvbnRleHQsIGluY2x1ZGVDb250ZXh0ID0gX3JlZi5pbmNsdWRlQ29udGV4dCwgaW5jbHVkZU9ubHlUYWJiYWJsZSA9IF9yZWYuaW5jbHVkZU9ubHlUYWJiYWJsZTtcbiAgICB2YXIgX3NlbGVjdG9yID0gc2VsZWN0b3IkMigpO1xuICAgIHZhciBlbGVtZW50cyA9IGNvbnRleHQucXVlcnlTZWxlY3RvckFsbChfc2VsZWN0b3IpO1xuICAgIC8vIHRoZSBzZWxlY3RvciBwb3RlbnRpYWxseSBtYXRjaGVzIG1vcmUgdGhhbiByZWFsbHkgaXMgZm9jdXNhYmxlXG4gICAgdmFyIF9pc0ZvY3VzYWJsZSA9IGlzRm9jdXNhYmxlLnJ1bGVzLmV4Y2VwdCh7XG4gICAgICAgIG9ubHlUYWJiYWJsZTogaW5jbHVkZU9ubHlUYWJiYWJsZVxuICAgIH0pO1xuICAgIHZhciByZXN1bHQgPSBbXS5maWx0ZXIuY2FsbChlbGVtZW50cywgX2lzRm9jdXNhYmxlKTtcbiAgICAvLyBhZGQgY29udGV4dCBpZiByZXF1ZXN0ZWQgYW5kIGZvY3VzYWJsZVxuICAgIGlmIChpbmNsdWRlQ29udGV4dCAmJiBfaXNGb2N1c2FibGUoY29udGV4dCkpIHtcbiAgICAgICAgcmVzdWx0LnVuc2hpZnQoY29udGV4dCk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59XG5mdW5jdGlvbiBxdWVyeUZvY3VzYWJsZSgpIHtcbiAgICB2YXIgX3JlZiA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge30sIGNvbnRleHQgPSBfcmVmLmNvbnRleHQsIGluY2x1ZGVDb250ZXh0ID0gX3JlZi5pbmNsdWRlQ29udGV4dCwgaW5jbHVkZU9ubHlUYWJiYWJsZSA9IF9yZWYuaW5jbHVkZU9ubHlUYWJiYWJsZSwgX3JlZiRzdHJhdGVneSA9IF9yZWYuc3RyYXRlZ3ksIHN0cmF0ZWd5ID0gX3JlZiRzdHJhdGVneSA9PT0gdW5kZWZpbmVkID8gJ3F1aWNrJyA6IF9yZWYkc3RyYXRlZ3k7XG4gICAgdmFyIGVsZW1lbnQgPSBjb250ZXh0VG9FbGVtZW50KHtcbiAgICAgICAgbGFiZWw6ICdxdWVyeS9mb2N1c2FibGUnLFxuICAgICAgICByZXNvbHZlRG9jdW1lbnQ6IHRydWUsXG4gICAgICAgIGRlZmF1bHRUb0RvY3VtZW50OiB0cnVlLFxuICAgICAgICBjb250ZXh0OiBjb250ZXh0XG4gICAgfSk7XG4gICAgdmFyIG9wdGlvbnMgPSB7XG4gICAgICAgIGNvbnRleHQ6IGVsZW1lbnQsXG4gICAgICAgIGluY2x1ZGVDb250ZXh0OiBpbmNsdWRlQ29udGV4dCxcbiAgICAgICAgaW5jbHVkZU9ubHlUYWJiYWJsZTogaW5jbHVkZU9ubHlUYWJiYWJsZSxcbiAgICAgICAgc3RyYXRlZ3k6IHN0cmF0ZWd5XG4gICAgfTtcbiAgICBpZiAoc3RyYXRlZ3kgPT09ICdxdWljaycpIHtcbiAgICAgICAgcmV0dXJuIHF1ZXJ5Rm9jdXNhYmxlUXVpY2sob3B0aW9ucyk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHN0cmF0ZWd5ID09PSAnc3RyaWN0JyB8fCBzdHJhdGVneSA9PT0gJ2FsbCcpIHtcbiAgICAgICAgcmV0dXJuIHF1ZXJ5Rm9jdXNhYmxlU3RyaWN0KG9wdGlvbnMpO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdxdWVyeS9mb2N1c2FibGUgcmVxdWlyZXMgb3B0aW9uLnN0cmF0ZWd5IHRvIGJlIG9uZSBvZiBbXCJxdWlja1wiLCBcInN0cmljdFwiLCBcImFsbFwiXScpO1xufVxudmFyIHN1cHBvcnRzJDcgPSB2b2lkIDA7XG4vLyBJbnRlcm5ldCBFeHBsb3JlciAxMSBjb25zaWRlcnMgZmllbGRzZXQsIHRhYmxlLCB0ZCBmb2N1c2FibGUsIGJ1dCBub3QgdGFiYmFibGVcbi8vIEludGVybmV0IEV4cGxvcmVyIDExIGNvbnNpZGVycyBib2R5IHRvIGhhdmUgW3RhYmluZGV4PTBdLCBidXQgZG9lcyBub3QgYWxsb3cgdGFiYmluZyB0byBpdFxudmFyIGZvY3VzYWJsZUVsZW1lbnRzUGF0dGVybiA9IC9eKGZpZWxkc2V0fHRhYmxlfHRkfGJvZHkpJC87XG5mdW5jdGlvbiBpc1RhYmJhYmxlUnVsZXMoKSB7XG4gICAgdmFyIF9yZWYgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9LCBjb250ZXh0ID0gX3JlZi5jb250ZXh0LCBfcmVmJGV4Y2VwdCA9IF9yZWYuZXhjZXB0LCBleGNlcHQgPSBfcmVmJGV4Y2VwdCA9PT0gdW5kZWZpbmVkXG4gICAgICAgID8ge1xuICAgICAgICAgICAgZmxleGJveDogZmFsc2UsXG4gICAgICAgICAgICBzY3JvbGxhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIHNoYWRvdzogZmFsc2UsXG4gICAgICAgICAgICB2aXNpYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIG9ubHlUYWJiYWJsZTogZmFsc2VcbiAgICAgICAgfVxuICAgICAgICA6IF9yZWYkZXhjZXB0O1xuICAgIGlmICghc3VwcG9ydHMkNykge1xuICAgICAgICBzdXBwb3J0cyQ3ID0gX3N1cHBvcnRzKCk7XG4gICAgfVxuICAgIHZhciBlbGVtZW50ID0gY29udGV4dFRvRWxlbWVudCh7XG4gICAgICAgIGxhYmVsOiAnaXMvdGFiYmFibGUnLFxuICAgICAgICByZXNvbHZlRG9jdW1lbnQ6IHRydWUsXG4gICAgICAgIGNvbnRleHQ6IGNvbnRleHRcbiAgICB9KTtcbiAgICBpZiAocGxhdGZvcm0uaXMuQkxJTksgJiYgcGxhdGZvcm0uaXMuQU5EUk9JRCAmJiBwbGF0Zm9ybS5tYWpvclZlcnNpb24gPiA0Mikge1xuICAgICAgICAvLyBFeHRlcm5hbCBrZXlib2FyZCBzdXBwb3J0IHdvcmtlZCBmaW5lIGluIENIcm9tZSA0MiwgYnV0IHN0b3BwZWQgd29ya2luZyBpbiBDaHJvbWUgNDUuXG4gICAgICAgIC8vIFRoZSBvbi1zY3JlZW4ga2V5Ym9hcmQgZG9lcyBub3QgcHJvdmlkZSBhIHdheSB0byBmb2N1cyB0aGUgbmV4dCBpbnB1dCBlbGVtZW50IChsaWtlIGlPUyBkb2VzKS5cbiAgICAgICAgLy8gVGhhdCBsZWF2ZXMgdXMgd2l0aCBubyBvcHRpb24gdG8gYWR2YW5jZSBmb2N1cyBieSBrZXlib2FyZCwgZXJnbyBub3RoaW5nIGlzIHRhYmJhYmxlIChrZXlib2FyZCBmb2N1c2FibGUpLlxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHZhciBmcmFtZUVsZW1lbnQgPSBnZXRGcmFtZUVsZW1lbnQoZWxlbWVudCk7XG4gICAgaWYgKGZyYW1lRWxlbWVudCkge1xuICAgICAgICBpZiAocGxhdGZvcm0uaXMuV0VCS0lUICYmIHBsYXRmb3JtLmlzLklPUykge1xuICAgICAgICAgICAgLy8gaU9TIG9ubHkgZG9lcyBub3QgY29uc2lkZXIgYW55dGhpbmcgZnJvbSBhbm90aGVyIGJyb3dzaW5nIGNvbnRleHQga2V5Ym9hcmQgZm9jdXNhYmxlXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgLy8gaWZyYW1lW3RhYmluZGV4PVwiLTFcIl0gYW5kIG9iamVjdFt0YWJpbmRleD1cIi0xXCJdIGluaGVyaXQgdGhlXG4gICAgICAgIC8vIHRhYmJhYmxlIGRlbW90aW9uIG9udG8gZWxlbWVudHMgb2YgdGhlaXIgYnJvd3NpbmcgY29udGV4dHNcbiAgICAgICAgaWYgKHRhYmluZGV4VmFsdWUoZnJhbWVFbGVtZW50KSA8IDApIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWV4Y2VwdC52aXNpYmxlICYmXG4gICAgICAgICAgICAocGxhdGZvcm0uaXMuQkxJTksgfHwgcGxhdGZvcm0uaXMuV0VCS0lUKSAmJlxuICAgICAgICAgICAgIWlzVmlzaWJsZShmcmFtZUVsZW1lbnQpKSB7XG4gICAgICAgICAgICAvLyBCbGluayBhbmQgV2ViS2l0IGNvbnNpZGVyIGVsZW1lbnRzIGluIGhpZGRlbiBicm93c2luZyBjb250ZXh0cyBmb2N1c2FibGUsIGJ1dCBub3QgdGFiYmFibGVcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBXZWJraXQgYW5kIEJsaW5rIGRvbid0IGNvbnNpZGVyIGFueXRoaW5nIGluIDxvYmplY3Q+IHRhYmJhYmxlXG4gICAgICAgIC8vIEJsaW5rIGZpeGVkIHRoYXQgZml4ZWQgaW4gQ2hyb21lIDU0LCBPcGVyYSA0MVxuICAgICAgICB2YXIgZnJhbWVOb2RlTmFtZSA9IGZyYW1lRWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAoZnJhbWVOb2RlTmFtZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIHZhciBpc0ZpeGVkQmxpbmsgPSAocGxhdGZvcm0ubmFtZSA9PT0gJ0Nocm9tZScgJiYgcGxhdGZvcm0ubWFqb3JWZXJzaW9uID49IDU0KSB8fFxuICAgICAgICAgICAgICAgIChwbGF0Zm9ybS5uYW1lID09PSAnT3BlcmEnICYmIHBsYXRmb3JtLm1ham9yVmVyc2lvbiA+PSA0MSk7XG4gICAgICAgICAgICBpZiAocGxhdGZvcm0uaXMuV0VCS0lUIHx8IChwbGF0Zm9ybS5pcy5CTElOSyAmJiAhaXNGaXhlZEJsaW5rKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICB2YXIgbm9kZU5hbWUgPSBlbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgdmFyIF90YWJpbmRleCA9IHRhYmluZGV4VmFsdWUoZWxlbWVudCk7XG4gICAgdmFyIHRhYmluZGV4ID0gX3RhYmluZGV4ID09PSBudWxsID8gbnVsbCA6IF90YWJpbmRleCA+PSAwO1xuICAgIGlmIChwbGF0Zm9ybS5pcy5FREdFICYmXG4gICAgICAgIHBsYXRmb3JtLm1ham9yVmVyc2lvbiA+PSAxNCAmJlxuICAgICAgICBmcmFtZUVsZW1lbnQgJiZcbiAgICAgICAgZWxlbWVudC5vd25lclNWR0VsZW1lbnQgJiZcbiAgICAgICAgX3RhYmluZGV4IDwgMCkge1xuICAgICAgICAvLyBFZGdlIDE0KyBjb25zaWRlcnMgPGEgeGxpbms6aHJlZj1cIuKAplwiIHRhYmluZGV4PVwiLTFcIj4ga2V5Ym9hcmQgZm9jdXNhYmxlXG4gICAgICAgIC8vIGlmIHRoZSBlbGVtZW50IGlzIGluIGEgbmVzdGVkIGJyb3dzaW5nIGNvbnRleHRcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHZhciBoYXNUYWJiYWJsZVRhYmluZGV4T3JOb25lID0gdGFiaW5kZXggIT09IGZhbHNlO1xuICAgIHZhciBoYXNUYWJiYWJsZVRhYmluZGV4ID0gX3RhYmluZGV4ICE9PSBudWxsICYmIF90YWJpbmRleCA+PSAwO1xuICAgIC8vIE5PVEU6IEZpcmVmb3ggMzEgY29uc2lkZXJzIFtjb250ZW50ZWRpdGFibGVdIHRvIGhhdmUgW3RhYmluZGV4PS0xXSwgYnV0IGFsbG93cyB0YWJiaW5nIHRvIGl0XG4gICAgLy8gZml4ZWQgaW4gRmlyZWZveCA0MCB0aGUgbGF0ZXN0IC0gaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4NTY1N1xuICAgIGlmIChlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJykpIHtcbiAgICAgICAgLy8gdGFiYmluZyBjYW4gc3RpbGwgYmUgZGlzYWJsZWQgYnkgZXhwbGljaXRseSBwcm92aWRpbmcgW3RhYmluZGV4PVwiLTFcIl1cbiAgICAgICAgcmV0dXJuIGhhc1RhYmJhYmxlVGFiaW5kZXhPck5vbmU7XG4gICAgfVxuICAgIGlmIChmb2N1c2FibGVFbGVtZW50c1BhdHRlcm4udGVzdChub2RlTmFtZSkgJiYgdGFiaW5kZXggIT09IHRydWUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAocGxhdGZvcm0uaXMuV0VCS0lUICYmIHBsYXRmb3JtLmlzLklPUykge1xuICAgICAgICAvLyBpT1Mgb25seSBjb25zaWRlcnMgYSBoYW5kIGZ1bGwgb2YgZWxlbWVudHMgdGFiYmFibGUgKGtleWJvYXJkIGZvY3VzYWJsZSlcbiAgICAgICAgLy8gdGhpcyBob2xkcyB0cnVlIGV2ZW4gd2l0aCBleHRlcm5hbCBrZXlib2FyZHNcbiAgICAgICAgdmFyIHBvdGVudGlhbGx5VGFiYmFibGUgPSAobm9kZU5hbWUgPT09ICdpbnB1dCcgJiYgZWxlbWVudC50eXBlID09PSAndGV4dCcpIHx8XG4gICAgICAgICAgICBlbGVtZW50LnR5cGUgPT09ICdwYXNzd29yZCcgfHxcbiAgICAgICAgICAgIG5vZGVOYW1lID09PSAnc2VsZWN0JyB8fFxuICAgICAgICAgICAgbm9kZU5hbWUgPT09ICd0ZXh0YXJlYScgfHxcbiAgICAgICAgICAgIGVsZW1lbnQuaGFzQXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnKTtcbiAgICAgICAgaWYgKCFwb3RlbnRpYWxseVRhYmJhYmxlKSB7XG4gICAgICAgICAgICB2YXIgc3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCBudWxsKTtcbiAgICAgICAgICAgIHBvdGVudGlhbGx5VGFiYmFibGUgPSBpc1VzZXJNb2RpZnlXcml0YWJsZShzdHlsZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFwb3RlbnRpYWxseVRhYmJhYmxlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKG5vZGVOYW1lID09PSAndXNlJyAmJiBfdGFiaW5kZXggIT09IG51bGwpIHtcbiAgICAgICAgaWYgKHBsYXRmb3JtLmlzLkJMSU5LIHx8XG4gICAgICAgICAgICAocGxhdGZvcm0uaXMuV0VCS0lUICYmIHBsYXRmb3JtLm1ham9yVmVyc2lvbiA9PT0gOSkpIHtcbiAgICAgICAgICAgIC8vIEluIENocm9tZSBhbmQgU2FmYXJpIDkgdGhlIDx1c2U+IGVsZW1lbnQgaXMga2V5Ym9hcmQgZm9jdXNhYmxlIGV2ZW4gZm9yIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKGVsZW1lbnRNYXRjaGVzKGVsZW1lbnQsICdzdmcgYScpICYmIGVsZW1lbnQuaGFzQXR0cmlidXRlKCd4bGluazpocmVmJykpIHtcbiAgICAgICAgaWYgKGhhc1RhYmJhYmxlVGFiaW5kZXhPck5vbmUpIHtcbiAgICAgICAgICAgIC8vIGluIFRyaWRlbnQgYW5kIEdlY2tvIFNWR0VsZW1lbnQgZG9lcyBub3QgaGFuZGxlIHRoZSB0YWJJbmRleCBwcm9wZXJ0eSBwcm9wZXJseVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVsZW1lbnQuZm9jdXMgJiYgIXN1cHBvcnRzJDcuZm9jdXNTdmdOZWdhdGl2ZVRhYmluZGV4QXR0cmlidXRlKSB7XG4gICAgICAgICAgICAvLyBGaXJlZm94IDUxIGFuZCA1MiB0cmVhdCBhbnkgbmF0aXZlbHkgdGFiYmFibGUgU1ZHIGVsZW1lbnQgd2l0aFxuICAgICAgICAgICAgLy8gdGFiaW5kZXg9XCItMVwiIGFzIHRhYmJhYmxlIGFuZCBldmVyeXRoaW5nIGVsc2UgYXMgaW5lcnRcbiAgICAgICAgICAgIC8vIHNlZSBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzAyMzQwXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAobm9kZU5hbWUgPT09ICdzdmcnICYmXG4gICAgICAgIHN1cHBvcnRzJDcuZm9jdXNTdmdJbklmcmFtZSAmJlxuICAgICAgICBoYXNUYWJiYWJsZVRhYmluZGV4T3JOb25lKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAocGxhdGZvcm0uaXMuVFJJREVOVCB8fCBwbGF0Zm9ybS5pcy5FREdFKSB7XG4gICAgICAgIGlmIChub2RlTmFtZSA9PT0gJ3N2ZycpIHtcbiAgICAgICAgICAgIGlmIChzdXBwb3J0cyQ3LmZvY3VzU3ZnKSB7XG4gICAgICAgICAgICAgICAgLy8gb2xkZXIgSW50ZXJuZXQgRXhwbG9yZXJzIGNvbnNpZGVyIDxzdmc+IGtleWJvYXJkIGZvY3VzYWJsZVxuICAgICAgICAgICAgICAgIC8vIHVubGVzcyB0aGV5IGhhdmUgZm9jc2FibGU9XCJmYWxzZVwiLCBidXQgdGhlbiB0aGV5IHdvdWxkbid0XG4gICAgICAgICAgICAgICAgLy8gYmUgZm9jdXNhYmxlIGFuZCB0aHVzIG5vdCBldmVuIHJlYWNoIHRoaXMgZmlsdGVyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBlbGVtZW50cyB0aGF0IGhhdmUgW2ZvY3VzYWJsZV0gYXJlIGF1dG9tYXRpY2FsbHkga2V5Ym9hcmQgZm9jdXNhYmxlIHJlZ2FyZGxlc3Mgb2YgdGhlIGF0dHJpYnV0ZSdzIHZhbHVlXG4gICAgICAgICAgICByZXR1cm4gZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2ZvY3VzYWJsZScpIHx8IGhhc1RhYmJhYmxlVGFiaW5kZXg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVsZW1lbnQub3duZXJTVkdFbGVtZW50KSB7XG4gICAgICAgICAgICBpZiAoc3VwcG9ydHMkNy5mb2N1c1N2Z1RhYmluZGV4QXR0cmlidXRlICYmIGhhc1RhYmJhYmxlVGFiaW5kZXgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGVsZW1lbnRzIHRoYXQgaGF2ZSBbZm9jdXNhYmxlXSBhcmUgYXV0b21hdGljYWxseSBrZXlib2FyZCBmb2N1c2FibGUgcmVnYXJkbGVzcyBvZiB0aGUgYXR0cmlidXRlJ3MgdmFsdWVcbiAgICAgICAgICAgIHJldHVybiBlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnZm9jdXNhYmxlJyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKGVsZW1lbnQudGFiSW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gQm9vbGVhbihleGNlcHQub25seVRhYmJhYmxlKTtcbiAgICB9XG4gICAgaWYgKG5vZGVOYW1lID09PSAnYXVkaW8nKSB7XG4gICAgICAgIGlmICghZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2NvbnRyb2xzJykpIHtcbiAgICAgICAgICAgIC8vIEluIEludGVybmV0IEV4cGxvcmVyIHRoZSA8YXVkaW8+IGVsZW1lbnQgaXMgZm9jdXNhYmxlLCBidXQgbm90IHRhYmJhYmxlLCBhbmQgdGFiSW5kZXggcHJvcGVydHkgaXMgd3JvbmdcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChwbGF0Zm9ybS5pcy5CTElOSykge1xuICAgICAgICAgICAgLy8gSW4gQ2hyb21lIDxhdWRpbyBjb250cm9scyB0YWJpbmRleD1cIi0xXCI+IHJlbWFpbnMga2V5Ym9hcmQgZm9jdXNhYmxlXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAobm9kZU5hbWUgPT09ICd2aWRlbycpIHtcbiAgICAgICAgaWYgKCFlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnY29udHJvbHMnKSkge1xuICAgICAgICAgICAgaWYgKHBsYXRmb3JtLmlzLlRSSURFTlQgfHwgcGxhdGZvcm0uaXMuRURHRSkge1xuICAgICAgICAgICAgICAgIC8vIEluIEludGVybmV0IEV4cGxvcmVyIGFuZCBFZGdlIHRoZSA8dmlkZW8+IGVsZW1lbnQgaXMgZm9jdXNhYmxlLCBidXQgbm90IHRhYmJhYmxlLCBhbmQgdGFiSW5kZXggcHJvcGVydHkgaXMgd3JvbmdcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAocGxhdGZvcm0uaXMuQkxJTksgfHwgcGxhdGZvcm0uaXMuR0VDS08pIHtcbiAgICAgICAgICAgIC8vIEluIENocm9tZSBhbmQgRmlyZWZveCA8dmlkZW8gY29udHJvbHMgdGFiaW5kZXg9XCItMVwiPiByZW1haW5zIGtleWJvYXJkIGZvY3VzYWJsZVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKG5vZGVOYW1lID09PSAnb2JqZWN0Jykge1xuICAgICAgICBpZiAocGxhdGZvcm0uaXMuQkxJTksgfHwgcGxhdGZvcm0uaXMuV0VCS0lUKSB7XG4gICAgICAgICAgICAvLyBJbiBhbGwgQmxpbmsgYW5kIFdlYktpdCBiYXNlZCBicm93c2VycyA8ZW1iZWQ+IGFuZCA8b2JqZWN0PiBhcmUgbmV2ZXIga2V5Ym9hcmQgZm9jdXNhYmxlLCBldmVuIHdpdGggdGFiaW5kZXg9XCIwXCIgc2V0XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKG5vZGVOYW1lID09PSAnaWZyYW1lJykge1xuICAgICAgICAvLyBJbiBJbnRlcm5ldCBFeHBsb3JlciBhbGwgaWZyYW1lcyBhcmUgb25seSBmb2N1c2FibGVcbiAgICAgICAgLy8gSW4gV2ViS2l0LCBCbGluayBhbmQgR2Vja28gaWZyYW1lcyBtYXkgYmUgdGFiYmFibGUgZGVwZW5kaW5nIG9uIGNvbnRlbnQuXG4gICAgICAgIC8vIFNpbmNlIHdlIGNhbid0IHJlbGlhYmx5IGludmVzdGlnYXRlIGlmcmFtZSBkb2N1bWVudHMgYmVjYXVzZSBvZiB0aGVcbiAgICAgICAgLy8gU2FtZU9yaWdpblBvbGljeSwgd2UncmUgZGVjbGFyaW5nIGV2ZXJ5dGhpbmcgb25seSBmb2N1c2FibGUuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKCFleGNlcHQuc2Nyb2xsYWJsZSAmJiBwbGF0Zm9ybS5pcy5HRUNLTykge1xuICAgICAgICAvLyBGaXJlZm94IGNvbnNpZGVycyBzY3JvbGxhYmxlIGNvbnRhaW5lcnMga2V5Ym9hcmQgZm9jdXNhYmxlLFxuICAgICAgICAvLyBldmVuIHRob3VnaCB0aGVpciB0YWJJbmRleCBwcm9wZXJ0eSBpcyAtMVxuICAgICAgICB2YXIgX3N0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgbnVsbCk7XG4gICAgICAgIGlmIChoYXNDc3NPdmVyZmxvd1Njcm9sbChfc3R5bGUpKSB7XG4gICAgICAgICAgICByZXR1cm4gaGFzVGFiYmFibGVUYWJpbmRleE9yTm9uZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAocGxhdGZvcm0uaXMuVFJJREVOVCB8fCBwbGF0Zm9ybS5pcy5FREdFKSB7XG4gICAgICAgIC8vIElFIGFuZCBFZGdlIGRlZ3JhZGUgPGFyZWE+IHRvIHNjcmlwdCBmb2N1c2FibGUsIGlmIHRoZSBpbWFnZVxuICAgICAgICAvLyB1c2luZyB0aGUgPG1hcD4gaGFzIGJlZW4gZ2l2ZW4gdGFiaW5kZXg9XCItMVwiXG4gICAgICAgIGlmIChub2RlTmFtZSA9PT0gJ2FyZWEnKSB7XG4gICAgICAgICAgICB2YXIgaW1nID0gZ2V0SW1hZ2VPZkFyZWEoZWxlbWVudCk7XG4gICAgICAgICAgICBpZiAoaW1nICYmIHRhYmluZGV4VmFsdWUoaW1nKSA8IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdmFyIF9zdHlsZTIgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCBudWxsKTtcbiAgICAgICAgaWYgKGlzVXNlck1vZGlmeVdyaXRhYmxlKF9zdHlsZTIpKSB7XG4gICAgICAgICAgICAvLyBwcmV2ZW50IGJlaW5nIHN3YWxsb3dlZCBieSB0aGUgb3ZlcnplYWxvdXMgaXNTY3JvbGxhYmxlQ29udGFpbmVyKCkgYmVsb3dcbiAgICAgICAgICAgIHJldHVybiBlbGVtZW50LnRhYkluZGV4ID49IDA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFleGNlcHQuZmxleGJveCAmJiBoYXNDc3NEaXNwbGF5RmxleChfc3R5bGUyKSkge1xuICAgICAgICAgICAgaWYgKF90YWJpbmRleCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBoYXNUYWJiYWJsZVRhYmluZGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIChpc0ZvY3VzUmVsZXZhbnRXaXRob3V0RmxleGJveChlbGVtZW50KSAmJlxuICAgICAgICAgICAgICAgIGlzVGFiYmFibGVXaXRob3V0RmxleGJveChlbGVtZW50KSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSUUgY29uc2lkZXJzIHNjcm9sbGFibGUgY29udGFpbmVycyBzY3JpcHQgZm9jdXNhYmxlIG9ubHksXG4gICAgICAgIC8vIGV2ZW4gdGhvdWdoIHRoZWlyIHRhYkluZGV4IHByb3BlcnR5IGlzIDBcbiAgICAgICAgaWYgKGlzU2Nyb2xsYWJsZUNvbnRhaW5lcihlbGVtZW50LCBub2RlTmFtZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcGFyZW50ID0gZWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICAgICAgICBpZiAocGFyZW50KSB7XG4gICAgICAgICAgICB2YXIgcGFyZW50Tm9kZU5hbWUgPSBwYXJlbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIHZhciBwYXJlbnRTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHBhcmVudCwgbnVsbCk7XG4gICAgICAgICAgICAvLyBJRSBjb25zaWRlcnMgc2Nyb2xsYWJsZSBib2RpZXMgc2NyaXB0IGZvY3VzYWJsZSBvbmx5LFxuICAgICAgICAgICAgaWYgKGlzU2Nyb2xsYWJsZUNvbnRhaW5lcihwYXJlbnQsIG5vZGVOYW1lLCBwYXJlbnROb2RlTmFtZSwgcGFyZW50U3R5bGUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gQ2hpbGRyZW4gb2YgZm9jdXNhYmxlIGVsZW1lbnRzIHdpdGggZGlzcGxheTpmbGV4IGFyZSBmb2N1c2FibGUgaW4gSUUxMC0xMSxcbiAgICAgICAgICAgIC8vIGV2ZW4gdGhvdWdoIHRoZWlyIHRhYkluZGV4IHByb3BlcnR5IHN1Z2dlc3RzIG90aGVyd2lzZVxuICAgICAgICAgICAgaWYgKGhhc0Nzc0Rpc3BsYXlGbGV4KHBhcmVudFN0eWxlKSkge1xuICAgICAgICAgICAgICAgIC8vIHZhbHVlIG9mIHRhYmluZGV4IHRha2VzIHByZWNlZGVuY2VcbiAgICAgICAgICAgICAgICByZXR1cm4gaGFzVGFiYmFibGVUYWJpbmRleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBodHRwczovL3d3dy53My5vcmcvV0FJL1BGL2FyaWEtcHJhY3RpY2VzLyNmb2N1c190YWJpbmRleFxuICAgIHJldHVybiBlbGVtZW50LnRhYkluZGV4ID49IDA7XG59XG4vLyBiaW5kIGV4Y2VwdGlvbnMgdG8gYW4gaXRlcmF0b3IgY2FsbGJhY2tcbmlzVGFiYmFibGVSdWxlcy5leGNlcHQgPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGV4Y2VwdCA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge307XG4gICAgdmFyIGlzVGFiYmFibGUgPSBmdW5jdGlvbiBpc1RhYmJhYmxlKGNvbnRleHQpIHtcbiAgICAgICAgcmV0dXJuIGlzVGFiYmFibGVSdWxlcyh7XG4gICAgICAgICAgICBjb250ZXh0OiBjb250ZXh0LFxuICAgICAgICAgICAgZXhjZXB0OiBleGNlcHRcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBpc1RhYmJhYmxlLnJ1bGVzID0gaXNUYWJiYWJsZVJ1bGVzO1xuICAgIHJldHVybiBpc1RhYmJhYmxlO1xufTtcbnZhciBpc0ZvY3VzUmVsZXZhbnRXaXRob3V0RmxleGJveCA9IGlzRm9jdXNSZWxldmFudC5ydWxlcy5leGNlcHQoe1xuICAgIGZsZXhib3g6IHRydWVcbn0pO1xudmFyIGlzVGFiYmFibGVXaXRob3V0RmxleGJveCA9IGlzVGFiYmFibGVSdWxlcy5leGNlcHQoeyBmbGV4Ym94OiB0cnVlIH0pO1xuLy8gcHJvdmlkZSBpc1RhYmJhYmxlKGNvbnRleHQpIGFzIGRlZmF1bHQgaXRlcmF0b3IgY2FsbGJhY2tcbnZhciBpc1RhYmJhYmxlID0gaXNUYWJiYWJsZVJ1bGVzLmV4Y2VwdCh7fSk7XG5mdW5jdGlvbiBxdWVyeVRhYmJhYmxlKCkge1xuICAgIHZhciBfcmVmID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fSwgY29udGV4dCA9IF9yZWYuY29udGV4dCwgaW5jbHVkZUNvbnRleHQgPSBfcmVmLmluY2x1ZGVDb250ZXh0LCBpbmNsdWRlT25seVRhYmJhYmxlID0gX3JlZi5pbmNsdWRlT25seVRhYmJhYmxlLCBzdHJhdGVneSA9IF9yZWYuc3RyYXRlZ3k7XG4gICAgdmFyIF9pc1RhYmJhYmxlID0gaXNUYWJiYWJsZS5ydWxlcy5leGNlcHQoe1xuICAgICAgICBvbmx5VGFiYmFibGU6IGluY2x1ZGVPbmx5VGFiYmFibGVcbiAgICB9KTtcbiAgICByZXR1cm4gcXVlcnlGb2N1c2FibGUoe1xuICAgICAgICBjb250ZXh0OiBjb250ZXh0LFxuICAgICAgICBpbmNsdWRlQ29udGV4dDogaW5jbHVkZUNvbnRleHQsXG4gICAgICAgIGluY2x1ZGVPbmx5VGFiYmFibGU6IGluY2x1ZGVPbmx5VGFiYmFibGUsXG4gICAgICAgIHN0cmF0ZWd5OiBzdHJhdGVneVxuICAgIH0pLmZpbHRlcihfaXNUYWJiYWJsZSk7XG59XG4vLyBzb3J0cyBhIGxpc3Qgb2YgZWxlbWVudHMgYWNjb3JkaW5nIHRvIHRoZWlyIG9yZGVyIGluIHRoZSBET01cbmZ1bmN0aW9uIGNvbXBhcmVEb21Qb3NpdGlvbihhLCBiKSB7XG4gICAgcmV0dXJuIGEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYikgJiBOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0ZPTExPV0lOR1xuICAgICAgICA/IC0xXG4gICAgICAgIDogMTtcbn1cbmZ1bmN0aW9uIHNvcnREb21PcmRlcihlbGVtZW50cykge1xuICAgIHJldHVybiBlbGVtZW50cy5zb3J0KGNvbXBhcmVEb21Qb3NpdGlvbik7XG59XG5mdW5jdGlvbiBnZXRGaXJzdFN1Y2Nlc3Nvck9mZnNldChsaXN0LCB0YXJnZXQpIHtcbiAgICAvLyBmaW5kIHRoZSBmaXJzdCBlbGVtZW50IHRoYXQgY29tZXMgQUZURVIgdGhlIHRhcmdldCBlbGVtZW50XG4gICAgcmV0dXJuIGZpbmRJbmRleChsaXN0LCBmdW5jdGlvbiAoZWxlbWVudCkge1xuICAgICAgICByZXR1cm4gKHRhcmdldC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihlbGVtZW50KSAmIE5vZGUuRE9DVU1FTlRfUE9TSVRJT05fRk9MTE9XSU5HKTtcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGZpbmRJbnNlcnRpb25PZmZzZXRzKGxpc3QsIGVsZW1lbnRzLCByZXNvbHZlRWxlbWVudCkge1xuICAgIC8vIGluc3RlYWQgb2YgbXV0YXRpbmcgdGhlIGVsZW1lbnRzIGxpc3QgZGlyZWN0bHksIHJlbWVtYmVyIHBvc2l0aW9uIGFuZCBtYXBcbiAgICAvLyB0byBpbmplY3QgbGF0ZXIsIHdoZW4gd2UgY2FuIGRvIHRoaXMgbW9yZSBlZmZpY2llbnRseVxuICAgIHZhciBpbnNlcnRpb25zID0gW107XG4gICAgZWxlbWVudHMuZm9yRWFjaChmdW5jdGlvbiAoZWxlbWVudCkge1xuICAgICAgICB2YXIgcmVwbGFjZSA9IHRydWU7XG4gICAgICAgIHZhciBvZmZzZXQgPSBsaXN0LmluZGV4T2YoZWxlbWVudCk7XG4gICAgICAgIGlmIChvZmZzZXQgPT09IC0xKSB7XG4gICAgICAgICAgICAvLyBlbGVtZW50IGlzIG5vdCBpbiB0YXJnZXQgbGlzdFxuICAgICAgICAgICAgb2Zmc2V0ID0gZ2V0Rmlyc3RTdWNjZXNzb3JPZmZzZXQobGlzdCwgZWxlbWVudCk7XG4gICAgICAgICAgICByZXBsYWNlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9mZnNldCA9PT0gLTEpIHtcbiAgICAgICAgICAgIC8vIHRoZXJlIGlzIG5vIHN1Y2Nlc3NvciBpbiB0aGUgdGFic2VxdWVuY2UsXG4gICAgICAgICAgICAvLyBtZWFuaW5nIHRoZSBpbWFnZSBtdXN0IGJlIHRoZSBsYXN0IGVsZW1lbnRcbiAgICAgICAgICAgIG9mZnNldCA9IGxpc3QubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIC8vIGFsbG93IHRoZSBjb25zdW1lciB0byByZXBsYWNlIHRoZSBpbmplY3RlZCBlbGVtZW50XG4gICAgICAgIHZhciBpbmplY3Rpb25zID0gbm9kZUFycmF5KHJlc29sdmVFbGVtZW50ID8gcmVzb2x2ZUVsZW1lbnQoZWxlbWVudCkgOiBlbGVtZW50KTtcbiAgICAgICAgaWYgKCFpbmplY3Rpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgLy8gd2UgY2FuJ3QgaW5qZWN0IHplcm8gZWxlbWVudHNcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpbnNlcnRpb25zLnB1c2goe1xuICAgICAgICAgICAgb2Zmc2V0OiBvZmZzZXQsXG4gICAgICAgICAgICByZXBsYWNlOiByZXBsYWNlLFxuICAgICAgICAgICAgZWxlbWVudHM6IGluamVjdGlvbnNcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGluc2VydGlvbnM7XG59XG5mdW5jdGlvbiBpbnNlcnRFbGVtZW50c0F0T2Zmc2V0cyhsaXN0LCBpbnNlcnRpb25zKSB7XG4gICAgLy8gcmVtZW1iZXIgdGhlIG51bWJlciBvZiBlbGVtZW50cyB3ZSBoYXZlIGFscmVhZHkgaW5qZWN0ZWRcbiAgICAvLyBzbyB3ZSBhY2NvdW50IGZvciB0aGUgY2F1c2VkIGluZGV4IG9mZnNldFxuICAgIHZhciBpbnNlcnRlZCA9IDA7XG4gICAgLy8gbWFrZSBzdXJlIHRoYXQgd2UgaW5zZXJ0IHRoZSBlbGVtZW50cyBpbiBzZXF1ZW5jZSxcbiAgICAvLyBvdGhlcndpc2UgdGhlIG9mZnNldCBjb21wZW5zYXRpb24gd29uJ3Qgd29ya1xuICAgIGluc2VydGlvbnMuc29ydChmdW5jdGlvbiAoYSwgYikge1xuICAgICAgICByZXR1cm4gYS5vZmZzZXQgLSBiLm9mZnNldDtcbiAgICB9KTtcbiAgICBpbnNlcnRpb25zLmZvckVhY2goZnVuY3Rpb24gKGluc2VydGlvbikge1xuICAgICAgICAvLyBhcnJheS5zcGxpY2UgaGFzIGFuIGFubm95aW5nIGZ1bmN0aW9uIHNpZ25hdHVyZSA6KFxuICAgICAgICB2YXIgcmVtb3ZlID0gaW5zZXJ0aW9uLnJlcGxhY2UgPyAxIDogMDtcbiAgICAgICAgdmFyIGFyZ3MgPSBbaW5zZXJ0aW9uLm9mZnNldCArIGluc2VydGVkLCByZW1vdmVdLmNvbmNhdChpbnNlcnRpb24uZWxlbWVudHMpO1xuICAgICAgICBsaXN0LnNwbGljZS5hcHBseShsaXN0LCBhcmdzKTtcbiAgICAgICAgaW5zZXJ0ZWQgKz0gaW5zZXJ0aW9uLmVsZW1lbnRzLmxlbmd0aCAtIHJlbW92ZTtcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIG1lcmdlSW5Eb21PcmRlcigpIHtcbiAgICB2YXIgX3JlZiA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge30sIGxpc3QgPSBfcmVmLmxpc3QsIGVsZW1lbnRzID0gX3JlZi5lbGVtZW50cywgcmVzb2x2ZUVsZW1lbnQgPSBfcmVmLnJlc29sdmVFbGVtZW50O1xuICAgIC8vIG9wZXJhdGUgb24gYSBjb3B5IHNvIHdlIGRvbid0IG11dGF0ZSB0aGUgb3JpZ2luYWwgYXJyYXlcbiAgICB2YXIgX2xpc3QgPSBsaXN0LnNsaWNlKDApO1xuICAgIC8vIG1ha2Ugc3VyZSB0aGUgZWxlbWVudHMgd2UncmUgaW5qZWN0aW5nIGFyZSBwcm92aWRlZCBpbiBET00gb3JkZXJcbiAgICB2YXIgX2VsZW1lbnRzID0gbm9kZUFycmF5KGVsZW1lbnRzKS5zbGljZSgwKTtcbiAgICBzb3J0RG9tT3JkZXIoX2VsZW1lbnRzKTtcbiAgICAvLyBmaW5kIHRoZSBvZmZzZXRzIHdpdGhpbiB0aGUgdGFyZ2V0IGFycmF5IChsaXN0KSBhdCB3aGljaCB0byBpbmplY3RcbiAgICAvLyBlYWNoIGluZGl2aWR1YWwgZWxlbWVudCAoZnJvbSBlbGVtZW50cylcbiAgICB2YXIgaW5zZXJ0aW9ucyA9IGZpbmRJbnNlcnRpb25PZmZzZXRzKF9saXN0LCBfZWxlbWVudHMsIHJlc29sdmVFbGVtZW50KTtcbiAgICAvLyBhY3R1YWxseSBpbmplY3QgdGhlIGVsZW1lbnRzIGludG8gdGhlIHRhcmdldCBhcnJheSBhdCB0aGUgaWRlbnRpZmllZCBwb3NpdGlvbnNcbiAgICBpbnNlcnRFbGVtZW50c0F0T2Zmc2V0cyhfbGlzdCwgaW5zZXJ0aW9ucyk7XG4gICAgcmV0dXJuIF9saXN0O1xufVxudmFyIF9jcmVhdGVDbGFzcyA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07XG4gICAgICAgICAgICBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7XG4gICAgICAgICAgICBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7XG4gICAgICAgICAgICBpZiAoJ3ZhbHVlJyBpbiBkZXNjcmlwdG9yKVxuICAgICAgICAgICAgICAgIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlO1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmdW5jdGlvbiAoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7XG4gICAgICAgIGlmIChwcm90b1Byb3BzKVxuICAgICAgICAgICAgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpO1xuICAgICAgICBpZiAoc3RhdGljUHJvcHMpXG4gICAgICAgICAgICBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7XG4gICAgICAgIHJldHVybiBDb25zdHJ1Y3RvcjtcbiAgICB9O1xufSkoKTtcbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHtcbiAgICBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTtcbiAgICB9XG59XG52YXIgTWFwcyA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gTWFwcyhjb250ZXh0KSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBNYXBzKTtcbiAgICAgICAgdGhpcy5fZG9jdW1lbnQgPSBnZXREb2N1bWVudChjb250ZXh0KTtcbiAgICAgICAgdGhpcy5tYXBzID0ge307XG4gICAgfVxuICAgIF9jcmVhdGVDbGFzcyhNYXBzLCBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ2dldEFyZWFzRm9yJyxcbiAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRBcmVhc0ZvcihuYW1lKSB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLm1hcHNbbmFtZV0pIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhlIG1hcCBpcyBub3QgZGVmaW5lZCB3aXRoaW4gdGhlIGNvbnRleHQsIHNvIHdlXG4gICAgICAgICAgICAgICAgICAgIC8vIGhhdmUgdG8gZ28gZmluZCBpdCBlbHNld2hlcmUgaW4gdGhlIGRvY3VtZW50XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkTWFwQnlOYW1lKG5hbWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5tYXBzW25hbWVdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICdhZGRNYXBCeU5hbWUnLFxuICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIGFkZE1hcEJ5TmFtZShuYW1lKSB7XG4gICAgICAgICAgICAgICAgdmFyIG1hcCA9IGdldE1hcEJ5TmFtZShuYW1lLCB0aGlzLl9kb2N1bWVudCk7XG4gICAgICAgICAgICAgICAgaWYgKCFtYXApIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlcmUgaXMgbm8gbWFwLCB0aGUgaW1nW3VzZW1hcF0gd2Fzbid0IGRvaW5nIGFueXRoaW5nIGFueXdheVxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMubWFwc1ttYXAubmFtZV0gPSBxdWVyeVRhYmJhYmxlKHsgY29udGV4dDogbWFwIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICdleHRyYWN0QXJlYXNGcm9tTGlzdCcsXG4gICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gZXh0cmFjdEFyZWFzRnJvbUxpc3QoZWxlbWVudHMpIHtcbiAgICAgICAgICAgICAgICAvLyByZW1vdmUgYWxsIDxhcmVhPiBlbGVtZW50cyBmcm9tIHRoZSBlbGVtZW50cyBsaXN0LFxuICAgICAgICAgICAgICAgIC8vIGJ1dCBwdXQgdGhlbSB0aGUgbWFwIGZvciBsYXRlciByZXRyaWV2YWxcbiAgICAgICAgICAgICAgICByZXR1cm4gZWxlbWVudHMuZmlsdGVyKGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBub2RlTmFtZSA9IGVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5vZGVOYW1lICE9PSAnYXJlYScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHZhciBtYXAgPSBlbGVtZW50LnBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5tYXBzW21hcC5uYW1lXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXBzW21hcC5uYW1lXSA9IFtdO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWFwc1ttYXAubmFtZV0ucHVzaChlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH0sIHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgIF0pO1xuICAgIHJldHVybiBNYXBzO1xufSkoKTtcbmZ1bmN0aW9uIHNvcnRBcmVhKGVsZW1lbnRzLCBjb250ZXh0KSB7XG4gICAgLy8gaW1hZ2VzIC0gdW5sZXNzIHRoZXkgYXJlIGZvY3VzYWJsZSB0aGVtc2VsdmVzLCBsaWtlbHkgbm90XG4gICAgLy8gcGFydCBvZiB0aGUgZWxlbWVudHMgbGlzdCwgc28gd2UnbGwgaGF2ZSB0byBmaW5kIHRoZW0gYW5kXG4gICAgLy8gc29ydCB0aGVtIGludG8gdGhlIGVsZW1lbnRzIGxpc3QgbWFudWFsbHlcbiAgICB2YXIgdXNlbWFwcyA9IGNvbnRleHQucXVlcnlTZWxlY3RvckFsbCgnaW1nW3VzZW1hcF0nKTtcbiAgICB2YXIgbWFwcyA9IG5ldyBNYXBzKGNvbnRleHQpO1xuICAgIC8vIHJlbW92ZSBhbGwgPGFyZWE+IGVsZW1lbnRzIGZyb20gdGhlIGVsZW1lbnRzIGxpc3QsXG4gICAgLy8gYnV0IHB1dCB0aGVtIHRoZSBtYXAgZm9yIGxhdGVyIHJldHJpZXZhbFxuICAgIHZhciBfZWxlbWVudHMgPSBtYXBzLmV4dHJhY3RBcmVhc0Zyb21MaXN0KGVsZW1lbnRzKTtcbiAgICBpZiAoIXVzZW1hcHMubGVuZ3RoKSB7XG4gICAgICAgIC8vIHRoZSBjb250ZXh0IGRvZXMgbm90IGNvbnRhaW4gYW55IDxhcmVhPnMgc28gbm8gbmVlZFxuICAgICAgICAvLyB0byByZXBsYWNlIGFueXRoaW5nLCBqdXN0IHJlbW92ZSBhbnkgbWFwc1xuICAgICAgICByZXR1cm4gX2VsZW1lbnRzO1xuICAgIH1cbiAgICByZXR1cm4gbWVyZ2VJbkRvbU9yZGVyKHtcbiAgICAgICAgbGlzdDogX2VsZW1lbnRzLFxuICAgICAgICBlbGVtZW50czogdXNlbWFwcyxcbiAgICAgICAgcmVzb2x2ZUVsZW1lbnQ6IGZ1bmN0aW9uIHJlc29sdmVFbGVtZW50KGltYWdlKSB7XG4gICAgICAgICAgICB2YXIgbmFtZSA9IGltYWdlLmdldEF0dHJpYnV0ZSgndXNlbWFwJykuc2xpY2UoMSk7XG4gICAgICAgICAgICByZXR1cm4gbWFwcy5nZXRBcmVhc0ZvcihuYW1lKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxudmFyIF9jcmVhdGVDbGFzcyQxID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTtcbiAgICAgICAgICAgIGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTtcbiAgICAgICAgICAgIGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmICgndmFsdWUnIGluIGRlc2NyaXB0b3IpXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHtcbiAgICAgICAgaWYgKHByb3RvUHJvcHMpXG4gICAgICAgICAgICBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7XG4gICAgICAgIGlmIChzdGF0aWNQcm9wcylcbiAgICAgICAgICAgIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTtcbiAgICAgICAgcmV0dXJuIENvbnN0cnVjdG9yO1xuICAgIH07XG59KSgpO1xuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrJDEoaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7XG4gICAgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7XG4gICAgfVxufVxudmFyIFNoYWRvd3MgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIFNoYWRvd3MoY29udGV4dCwgc29ydEVsZW1lbnRzKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayQxKHRoaXMsIFNoYWRvd3MpO1xuICAgICAgICAvLyBkb2N1bWVudCBjb250ZXh0IHdlJ3JlIHdvcmtpbmcgd2l0aFxuICAgICAgICB0aGlzLmNvbnRleHQgPSBjb250ZXh0O1xuICAgICAgICAvLyBjYWxsYmFjayB0aGF0IHNvcnRzIGFuIGFycmF5IG9mIGVsZW1lbnRzXG4gICAgICAgIHRoaXMuc29ydEVsZW1lbnRzID0gc29ydEVsZW1lbnRzO1xuICAgICAgICAvLyByZWZlcmVuY2UgdG8gY3JlYXRlIHVuaXF1ZSBJRHMgZm9yIGVhY2ggU2hhZG93SG9zdFxuICAgICAgICB0aGlzLmhvc3RDb3VudGVyID0gMTtcbiAgICAgICAgLy8gcmVmZXJlbmNlIG1hcCBmb3IgY2hpbGQtU2hhZG93SG9zdHMgb2YgYSBTaGFkb3dIb3N0XG4gICAgICAgIHRoaXMuaW5Ib3N0ID0ge307XG4gICAgICAgIC8vIHJlZmVyZW5jZSBtYXAgZm9yIGNoaWxkLVNoYWRvd0hvc3Qgb2YgdGhlIGRvY3VtZW50XG4gICAgICAgIHRoaXMuaW5Eb2N1bWVudCA9IFtdO1xuICAgICAgICAvLyByZWZlcmVuY2UgbWFwIGZvciBTaGFkb3dIb3N0c1xuICAgICAgICB0aGlzLmhvc3RzID0ge307XG4gICAgICAgIC8vIHJlZmVyZW5jZSBtYXAgZm9yIHRhYmJhYmxlIGVsZW1lbnRzIG9mIGEgU2hhZG93SG9zdFxuICAgICAgICB0aGlzLmVsZW1lbnRzID0ge307XG4gICAgfVxuICAgIC8vIHJlbWVtYmVyIHdoaWNoIGhvc3RzIHdlIGhhdmUgdG8gc29ydCB3aXRoaW4gbGF0ZXJcbiAgICBfY3JlYXRlQ2xhc3MkMShTaGFkb3dzLCBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ19yZWdpc3Rlckhvc3QnLFxuICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9yZWdpc3Rlckhvc3QoaG9zdCkge1xuICAgICAgICAgICAgICAgIGlmIChob3N0Ll9zb3J0aW5nSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBtYWtlIHRoZSBTaGFkb3dIb3N0IGlkZW50aWZpYWJsZSAoc2VlIGNsZWFudXAoKSBmb3IgdW5kbylcbiAgICAgICAgICAgICAgICBob3N0Ll9zb3J0aW5nSWQgPSAnc2hhZG93LScgKyB0aGlzLmhvc3RDb3VudGVyKys7XG4gICAgICAgICAgICAgICAgdGhpcy5ob3N0c1tob3N0Ll9zb3J0aW5nSWRdID0gaG9zdDtcbiAgICAgICAgICAgICAgICAvLyBob3N0cyBtYXkgY29udGFpbiBvdGhlciBob3N0c1xuICAgICAgICAgICAgICAgIHZhciBwYXJlbnRIb3N0ID0gZ2V0U2hhZG93SG9zdCh7IGNvbnRleHQ6IGhvc3QgfSk7XG4gICAgICAgICAgICAgICAgaWYgKHBhcmVudEhvc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmVnaXN0ZXJIb3N0KHBhcmVudEhvc3QpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9yZWdpc3Rlckhvc3RQYXJlbnQoaG9zdCwgcGFyZW50SG9zdCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluRG9jdW1lbnQucHVzaChob3N0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ19yZWdpc3Rlckhvc3RQYXJlbnQnLFxuICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9yZWdpc3Rlckhvc3RQYXJlbnQoaG9zdCwgcGFyZW50KSB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmluSG9zdFtwYXJlbnQuX3NvcnRpbmdJZF0pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbkhvc3RbcGFyZW50Ll9zb3J0aW5nSWRdID0gW107XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuaW5Ib3N0W3BhcmVudC5fc29ydGluZ0lkXS5wdXNoKGhvc3QpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICdfcmVnaXN0ZXJFbGVtZW50JyxcbiAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBfcmVnaXN0ZXJFbGVtZW50KGVsZW1lbnQsIGhvc3QpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZWxlbWVudHNbaG9zdC5fc29ydGluZ0lkXSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRzW2hvc3QuX3NvcnRpbmdJZF0gPSBbXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50c1tob3N0Ll9zb3J0aW5nSWRdLnB1c2goZWxlbWVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ2V4dHJhY3RFbGVtZW50cycsXG4gICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gZXh0cmFjdEVsZW1lbnRzKGVsZW1lbnRzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRzLmZpbHRlcihmdW5jdGlvbiAoZWxlbWVudCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgaG9zdCA9IGdldFNoYWRvd0hvc3QoeyBjb250ZXh0OiBlbGVtZW50IH0pO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWhvc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3JlZ2lzdGVySG9zdChob3N0KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmVnaXN0ZXJFbGVtZW50KGVsZW1lbnQsIGhvc3QpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSwgdGhpcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ3NvcnQnLFxuICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIHNvcnQoZWxlbWVudHMpIHtcbiAgICAgICAgICAgICAgICB2YXIgX2VsZW1lbnRzID0gdGhpcy5faW5qZWN0SG9zdHMoZWxlbWVudHMpO1xuICAgICAgICAgICAgICAgIF9lbGVtZW50cyA9IHRoaXMuX3JlcGxhY2VIb3N0cyhfZWxlbWVudHMpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2NsZWFudXAoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gX2VsZW1lbnRzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICdfaW5qZWN0SG9zdHMnLFxuICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9pbmplY3RIb3N0cyhlbGVtZW50cykge1xuICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKHRoaXMuaG9zdHMpLmZvckVhY2goZnVuY3Rpb24gKF9zb3J0aW5nSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9saXN0ID0gdGhpcy5lbGVtZW50c1tfc29ydGluZ0lkXTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9lbGVtZW50cyA9IHRoaXMuaW5Ib3N0W19zb3J0aW5nSWRdO1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2NvbnRleHQgPSB0aGlzLmhvc3RzW19zb3J0aW5nSWRdLnNoYWRvd1Jvb3Q7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudHNbX3NvcnRpbmdJZF0gPSB0aGlzLl9tZXJnZShfbGlzdCwgX2VsZW1lbnRzLCBfY29udGV4dCk7XG4gICAgICAgICAgICAgICAgfSwgdGhpcyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21lcmdlKGVsZW1lbnRzLCB0aGlzLmluRG9jdW1lbnQsIHRoaXMuY29udGV4dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ19tZXJnZScsXG4gICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gX21lcmdlKGxpc3QsIGVsZW1lbnRzLCBjb250ZXh0KSB7XG4gICAgICAgICAgICAgICAgdmFyIG1lcmdlZCA9IG1lcmdlSW5Eb21PcmRlcih7XG4gICAgICAgICAgICAgICAgICAgIGxpc3Q6IGxpc3QsXG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzOiBlbGVtZW50c1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNvcnRFbGVtZW50cyhtZXJnZWQsIGNvbnRleHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICdfcmVwbGFjZUhvc3RzJyxcbiAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBfcmVwbGFjZUhvc3RzKGVsZW1lbnRzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1lcmdlSW5Eb21PcmRlcih7XG4gICAgICAgICAgICAgICAgICAgIGxpc3Q6IGVsZW1lbnRzLFxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50czogdGhpcy5pbkRvY3VtZW50LFxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlRWxlbWVudDogdGhpcy5fcmVzb2x2ZUhvc3RFbGVtZW50LmJpbmQodGhpcylcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiAnX3Jlc29sdmVIb3N0RWxlbWVudCcsXG4gICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gX3Jlc29sdmVIb3N0RWxlbWVudChob3N0KSB7XG4gICAgICAgICAgICAgICAgdmFyIG1lcmdlZCA9IG1lcmdlSW5Eb21PcmRlcih7XG4gICAgICAgICAgICAgICAgICAgIGxpc3Q6IHRoaXMuZWxlbWVudHNbaG9zdC5fc29ydGluZ0lkXSxcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudHM6IHRoaXMuaW5Ib3N0W2hvc3QuX3NvcnRpbmdJZF0sXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmVFbGVtZW50OiB0aGlzLl9yZXNvbHZlSG9zdEVsZW1lbnQuYmluZCh0aGlzKVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHZhciBfdGFiaW5kZXggPSB0YWJpbmRleFZhbHVlKGhvc3QpO1xuICAgICAgICAgICAgICAgIGlmIChfdGFiaW5kZXggIT09IG51bGwgJiYgX3RhYmluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtob3N0XS5jb25jYXQobWVyZ2VkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1lcmdlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiAnX2NsZWFudXAnLFxuICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9jbGVhbnVwKCkge1xuICAgICAgICAgICAgICAgIC8vIHJlbW92ZSB0aG9zZSBpZGVudGlmZXJzIHdlIHB1dCBvbiB0aGUgU2hhZG93SG9zdCB0byBhdm9pZCB1c2luZyBNYXAoKVxuICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKHRoaXMuaG9zdHMpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5ob3N0c1trZXldLl9zb3J0aW5nSWQ7XG4gICAgICAgICAgICAgICAgfSwgdGhpcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgXSk7XG4gICAgcmV0dXJuIFNoYWRvd3M7XG59KSgpO1xuZnVuY3Rpb24gc29ydFNoYWRvd2VkKGVsZW1lbnRzLCBjb250ZXh0LCBzb3J0RWxlbWVudHMpIHtcbiAgICB2YXIgc2hhZG93cyA9IG5ldyBTaGFkb3dzKGNvbnRleHQsIHNvcnRFbGVtZW50cyk7XG4gICAgdmFyIF9lbGVtZW50cyA9IHNoYWRvd3MuZXh0cmFjdEVsZW1lbnRzKGVsZW1lbnRzKTtcbiAgICBpZiAoX2VsZW1lbnRzLmxlbmd0aCA9PT0gZWxlbWVudHMubGVuZ3RoKSB7XG4gICAgICAgIC8vIG5vIHNoYWRvd2VkIGNvbnRlbnQgZm91bmQsIG5vIG5lZWQgdG8gY29udGludWVcbiAgICAgICAgcmV0dXJuIHNvcnRFbGVtZW50cyhlbGVtZW50cyk7XG4gICAgfVxuICAgIHJldHVybiBzaGFkb3dzLnNvcnQoX2VsZW1lbnRzKTtcbn1cbmZ1bmN0aW9uIHNvcnRUYWJpbmRleChlbGVtZW50cykge1xuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9IVE1MRWxlbWVudC50YWJJbmRleFxuICAgIC8vIGVsZW1lbnRzIHdpdGggdGFiSW5kZXggXCIwXCIgKGluY2x1ZGluZyB0YWJiYWJsZUVsZW1lbnRzIHdpdGhvdXQgdGFiSW5kZXgpIHNob3VsZCBiZSBuYXZpZ2F0ZWQgaW4gdGhlIG9yZGVyIHRoZXkgYXBwZWFyLlxuICAgIC8vIGVsZW1lbnRzIHdpdGggYSBwb3NpdGl2ZSB0YWJJbmRleDpcbiAgICAvLyAgIEVsZW1lbnRzIHRoYXQgaGF2ZSBpZGVudGljYWwgdGFiSW5kZXhlcyBzaG91bGQgYmUgbmF2aWdhdGVkIGluIHRoZSBvcmRlciB0aGV5IGFwcGVhci5cbiAgICAvLyAgIE5hdmlnYXRpb24gcHJvY2VlZHMgZnJvbSB0aGUgbG93ZXN0IHRhYkluZGV4IHRvIHRoZSBoaWdoZXN0IHRhYkluZGV4LlxuICAgIC8vIE5PVEU6IHNvcnQgaW1wbGVtZW50YXRpb24gbWF5IGJlIHVuc3RhYmxlIGFuZCB0aHVzIG1lc3MgdXAgRE9NIG9yZGVyLFxuICAgIC8vIHRoYXQncyB3aHkgd2UgYnVpbGQgYSBtYXAgdGhhdCdzIGJlaW5nIHNvcnRlZCBpbnN0ZWFkLiBJZiB3ZSB3ZXJlIGFibGUgdG8gcmVseVxuICAgIC8vIG9uIGEgc3RhYmxlIHNvcnRpbmcgYWxnb3JpdGhtLCBzb3J0VGFiaW5kZXgoKSBjb3VsZCBiZSBhcyBzaW1wbGUgYXNcbiAgICAvLyBlbGVtZW50cy5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsgcmV0dXJuIGEudGFiSW5kZXggLSBiLnRhYkluZGV4OyB9KTtcbiAgICAvLyBhdCB0aGlzIHRpbWUgQ2hyb21lIGRvZXMgbm90IHVzZSBhIHN0YWJsZSBzb3J0aW5nIGFsZ29yaXRobVxuICAgIC8vIHNlZSBodHRwOi8vYmxvZy5yb2RuZXlyZWhtLmRlL2FyY2hpdmVzLzE0LVNvcnRpbmctV2VyZS1Eb2luZy1JdC1Xcm9uZy5odG1sI3N0YWJpbGl0eVxuICAgIC8vIE5PVEU6IGNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIHNlZW1lZCBsaWtlIG1vcmUgb3ZlcmhlYWQgdGhhbiBqdXN0IHNvcnRpbmcgdGhpcyB3aXRoIGJ1Y2tldHNcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvTm9kZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvblxuICAgIHZhciBtYXAgPSB7fTtcbiAgICB2YXIgaW5kZXhlcyA9IFtdO1xuICAgIHZhciBub3JtYWwgPSBlbGVtZW50cy5maWx0ZXIoZnVuY3Rpb24gKGVsZW1lbnQpIHtcbiAgICAgICAgLy8gaW4gVHJpZGVudCBhbmQgR2Vja28gU1ZHRWxlbWVudCBkb2VzIG5vdCBrbm93IGFib3V0IHRoZSB0YWJJbmRleCBwcm9wZXJ0eVxuICAgICAgICB2YXIgdGFiSW5kZXggPSBlbGVtZW50LnRhYkluZGV4O1xuICAgICAgICBpZiAodGFiSW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGFiSW5kZXggPSB0YWJpbmRleFZhbHVlKGVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGV4dHJhY3QgZWxlbWVudHMgdGhhdCBkb24ndCBuZWVkIHNvcnRpbmdcbiAgICAgICAgaWYgKHRhYkluZGV4IDw9IDAgfHwgdGFiSW5kZXggPT09IG51bGwgfHwgdGFiSW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFtYXBbdGFiSW5kZXhdKSB7XG4gICAgICAgICAgICAvLyBjcmVhdGUgc29ydGFibGUgYnVja2V0IGZvciBkb20tb3JkZXItcHJlc2VydmF0aW9uIG9mIGVsZW1lbnRzIHdpdGggdGhlIHNhbWUgdGFiSW5kZXhcbiAgICAgICAgICAgIG1hcFt0YWJJbmRleF0gPSBbXTtcbiAgICAgICAgICAgIC8vIG1haW50YWluIGEgbGlzdCBvZiB1bmlxdWUgdGFiSW5kZXhlc1xuICAgICAgICAgICAgaW5kZXhlcy5wdXNoKHRhYkluZGV4KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBzb3J0IGVsZW1lbnQgaW50byB0aGUgcHJvcGVyIGJ1Y2tldFxuICAgICAgICBtYXBbdGFiSW5kZXhdLnB1c2goZWxlbWVudCk7XG4gICAgICAgIC8vIGVsZW1lbnQgbW92ZWQgdG8gc29ydGluZyBtYXAsIHNvIG5vdCBcIm5vcm1hbFwiIGFueW1vcmVcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0pO1xuICAgIC8vIHNvcnQgdGhlIHRhYmluZGV4IGFzY2VuZGluZyxcbiAgICAvLyB0aGVuIHJlc29sdmUgdGhlbSB0byB0aGVpciBhcHByb3ByaWF0ZSBidWNrZXRzLFxuICAgIC8vIHRoZW4gZmxhdHRlbiB0aGUgYXJyYXkgb2YgYXJyYXlzIHRvIGFuIGFycmF5XG4gICAgdmFyIF9lbGVtZW50cyA9IGluZGV4ZXNcbiAgICAgICAgLnNvcnQoKVxuICAgICAgICAubWFwKGZ1bmN0aW9uICh0YWJJbmRleCkge1xuICAgICAgICByZXR1cm4gbWFwW3RhYkluZGV4XTtcbiAgICB9KVxuICAgICAgICAucmVkdWNlUmlnaHQoZnVuY3Rpb24gKHByZXZpb3VzLCBjdXJyZW50KSB7XG4gICAgICAgIHJldHVybiBjdXJyZW50LmNvbmNhdChwcmV2aW91cyk7XG4gICAgfSwgbm9ybWFsKTtcbiAgICByZXR1cm4gX2VsZW1lbnRzO1xufVxudmFyIHN1cHBvcnRzJDggPSB2b2lkIDA7XG5mdW5jdGlvbiBtb3ZlQ29udGV4dFRvQmVnaW5uaW5nKGVsZW1lbnRzLCBjb250ZXh0KSB7XG4gICAgdmFyIHBvcyA9IGVsZW1lbnRzLmluZGV4T2YoY29udGV4dCk7XG4gICAgaWYgKHBvcyA+IDApIHtcbiAgICAgICAgdmFyIHRtcCA9IGVsZW1lbnRzLnNwbGljZShwb3MsIDEpO1xuICAgICAgICByZXR1cm4gdG1wLmNvbmNhdChlbGVtZW50cyk7XG4gICAgfVxuICAgIHJldHVybiBlbGVtZW50cztcbn1cbmZ1bmN0aW9uIHNvcnRFbGVtZW50cyhlbGVtZW50cywgX2NvbnRleHQpIHtcbiAgICBpZiAoc3VwcG9ydHMkOC50YWJzZXF1ZW5jZUFyZWFBdEltZ1Bvc2l0aW9uKSB7XG4gICAgICAgIC8vIFNvbWUgYnJvd3NlcnMgc29ydCA8YXJlYT4gaW4gRE9NIG9yZGVyLCBzb21lIHBsYWNlIHRoZSA8YXJlYT5zXG4gICAgICAgIC8vIHdoZXJlIHRoZSA8aW1nPiByZWZlcmVjaW5nIHRoZW0gd291bGQndmUgYmVlbiBpbiBET00gb3JkZXIuXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tZWRpYWxpemUvYWxseS5qcy9pc3N1ZXMvNVxuICAgICAgICBlbGVtZW50cyA9IHNvcnRBcmVhKGVsZW1lbnRzLCBfY29udGV4dCk7XG4gICAgfVxuICAgIGVsZW1lbnRzID0gc29ydFRhYmluZGV4KGVsZW1lbnRzKTtcbiAgICByZXR1cm4gZWxlbWVudHM7XG59XG5mdW5jdGlvbiBxdWVyeVRhYnNlcXVlbmNlKCkge1xuICAgIHZhciBfcmVmID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fSwgY29udGV4dCA9IF9yZWYuY29udGV4dCwgaW5jbHVkZUNvbnRleHQgPSBfcmVmLmluY2x1ZGVDb250ZXh0LCBpbmNsdWRlT25seVRhYmJhYmxlID0gX3JlZi5pbmNsdWRlT25seVRhYmJhYmxlLCBzdHJhdGVneSA9IF9yZWYuc3RyYXRlZ3k7XG4gICAgaWYgKCFzdXBwb3J0cyQ4KSB7XG4gICAgICAgIHN1cHBvcnRzJDggPSBfc3VwcG9ydHMoKTtcbiAgICB9XG4gICAgdmFyIF9jb250ZXh0ID0gbm9kZUFycmF5KGNvbnRleHQpWzBdIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiAgICB2YXIgZWxlbWVudHMgPSBxdWVyeVRhYmJhYmxlKHtcbiAgICAgICAgY29udGV4dDogX2NvbnRleHQsXG4gICAgICAgIGluY2x1ZGVDb250ZXh0OiBpbmNsdWRlQ29udGV4dCxcbiAgICAgICAgaW5jbHVkZU9ubHlUYWJiYWJsZTogaW5jbHVkZU9ubHlUYWJiYWJsZSxcbiAgICAgICAgc3RyYXRlZ3k6IHN0cmF0ZWd5XG4gICAgfSk7XG4gICAgaWYgKGRvY3VtZW50LmJvZHkuY3JlYXRlU2hhZG93Um9vdCAmJiBwbGF0Zm9ybS5pcy5CTElOSykge1xuICAgICAgICAvLyBzb3J0IHRhYmluZGV4IGxvY2FsaXplZCB0byBzaGFkb3cgZG9tXG4gICAgICAgIC8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vbWVkaWFsaXplL2FsbHkuanMvaXNzdWVzLzZcbiAgICAgICAgZWxlbWVudHMgPSBzb3J0U2hhZG93ZWQoZWxlbWVudHMsIF9jb250ZXh0LCBzb3J0RWxlbWVudHMpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgZWxlbWVudHMgPSBzb3J0RWxlbWVudHMoZWxlbWVudHMsIF9jb250ZXh0KTtcbiAgICB9XG4gICAgaWYgKGluY2x1ZGVDb250ZXh0KSB7XG4gICAgICAgIC8vIGlmIHdlIGluY2x1ZGUgdGhlIGNvbnRleHQgaXRzZWxmLCBpdCBoYXMgdG8gYmUgdGhlIGZpcnN0XG4gICAgICAgIC8vIGVsZW1lbnQgb2YgdGhlIHNlcXVlbmNlXG4gICAgICAgIGVsZW1lbnRzID0gbW92ZUNvbnRleHRUb0JlZ2lubmluZyhlbGVtZW50cywgX2NvbnRleHQpO1xuICAgIH1cbiAgICByZXR1cm4gZWxlbWVudHM7XG59XG4vLyBjb2RlcyBtb3N0bHkgY2xvbmVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2tlaXRoYW11cy9qd2VydHkvYmxvYi9tYXN0ZXIvandlcnR5LmpzXG4vLyBkZWxpYmVyYXRlbHkgbm90IGV4cG9zaW5nIGNoYXJhY3RlcnMgbGlrZSA8LC4tIyogYmVjYXVzZSB0aGV5IHZhcnkgKndpbGRseSpcbi8vIGFjcm9zcyBrZXlib2FyZCBsYXlvdXRzIGFuZCBtYXkgY2F1c2UgdmFyaW91cyBwcm9ibGVtc1xuLy8gKGUuZy4gXCIqXCIgaXMgXCJTaGlmdCArXCIgb24gYSBHZXJtYW4gTWFjIGtleWJvYXJkKVxuLy8gKGUuZy4gXCJAXCIgaXMgXCJBbHQgTFwiIG9uIGEgR2VybWFuIE1hYyBrZXlib2FyZClcbnZhciBrZXljb2RlID0ge1xuICAgIC8vIEVsZW1lbnQgRm9jdXNcbiAgICB0YWI6IDksXG4gICAgLy8gTmF2aWdhdGlvblxuICAgIGxlZnQ6IDM3LFxuICAgIHVwOiAzOCxcbiAgICByaWdodDogMzksXG4gICAgZG93bjogNDAsXG4gICAgcGFnZVVwOiAzMyxcbiAgICAncGFnZS11cCc6IDMzLFxuICAgIHBhZ2VEb3duOiAzNCxcbiAgICAncGFnZS1kb3duJzogMzQsXG4gICAgZW5kOiAzNSxcbiAgICBob21lOiAzNixcbiAgICAvLyBBY3Rpb25cbiAgICBlbnRlcjogMTMsXG4gICAgZXNjYXBlOiAyNyxcbiAgICBzcGFjZTogMzIsXG4gICAgLy8gTW9kaWZpZXJcbiAgICBzaGlmdDogMTYsXG4gICAgY2Fwc0xvY2s6IDIwLFxuICAgICdjYXBzLWxvY2snOiAyMCxcbiAgICBjdHJsOiAxNyxcbiAgICBhbHQ6IDE4LFxuICAgIG1ldGE6IDkxLFxuICAgIC8vIGluIGZpcmVmb3g6IDIyNFxuICAgIC8vIG9uIG1hYyAoY2hyb21lKTogbWV0YS1sZWZ0PTkxLCBtZXRhLXJpZ2h0PTkzXG4gICAgLy8gb24gd2luIChJRTExKTogbWV0YS1sZWZ0PTkxLCBtZXRhLXJpZ2h0PTkyXG4gICAgcGF1c2U6IDE5LFxuICAgIC8vIENvbnRlbnQgTWFuaXB1bGF0aW9uXG4gICAgaW5zZXJ0OiA0NSxcbiAgICBcImRlbGV0ZVwiOiA0NixcbiAgICBiYWNrc3BhY2U6IDgsXG4gICAgLy8gdGhlIHNhbWUgbG9naWNhbCBrZXkgbWF5IGJlIGlkZW50aWZpZWQgdGhyb3VnaCBkaWZmZXJlbnQga2V5Q29kZXNcbiAgICBfYWxpYXM6IHtcbiAgICAgICAgOTE6IFs5MiwgOTMsIDIyNF1cbiAgICB9XG59O1xuLy8gRnVuY3Rpb24ga2V5cyAoMTEyIC0gMTM3KVxuLy8gTk9URTogbm90IGV2ZXJ5IGtleWJvYXJkIGtub3dzIEYxMytcbmZvciAodmFyIG4gPSAxOyBuIDwgMjY7IG4rKykge1xuICAgIGtleWNvZGVbJ2YnICsgbl0gPSBuICsgMTExO1xufVxuLy8gTnVtYmVyIGtleXMgKDQ4LTU3LCBudW1wYWQgOTYtMTA1KVxuLy8gTk9URTogbm90IGV2ZXJ5IGtleWJvYXJkIGtub3dzIG51bS0wK1xuZm9yICh2YXIgX24gPSAwOyBfbiA8IDEwOyBfbisrKSB7XG4gICAgdmFyIGNvZGUgPSBfbiArIDQ4O1xuICAgIHZhciBudW1Db2RlID0gX24gKyA5NjtcbiAgICBrZXljb2RlW19uXSA9IGNvZGU7XG4gICAga2V5Y29kZVsnbnVtLScgKyBfbl0gPSBudW1Db2RlO1xuICAgIGtleWNvZGUuX2FsaWFzW2NvZGVdID0gW251bUNvZGVdO1xufVxuLy8gTGF0aW4gY2hhcmFjdGVycyAoNjUgLSA5MClcbmZvciAodmFyIF9uMiA9IDA7IF9uMiA8IDI2OyBfbjIrKykge1xuICAgIHZhciBfY29kZSA9IF9uMiArIDY1O1xuICAgIHZhciBuYW1lJDEgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKF9jb2RlKS50b0xvd2VyQ2FzZSgpO1xuICAgIGtleWNvZGVbbmFtZSQxXSA9IF9jb2RlO1xufVxudmFyIG1vZGlmaWVyID0ge1xuICAgIGFsdDogJ2FsdEtleScsXG4gICAgY3RybDogJ2N0cmxLZXknLFxuICAgIG1ldGE6ICdtZXRhS2V5JyxcbiAgICBzaGlmdDogJ3NoaWZ0S2V5J1xufTtcbnZhciBtb2RpZmllclNlcXVlbmNlID0gT2JqZWN0LmtleXMobW9kaWZpZXIpLm1hcChmdW5jdGlvbiAobmFtZSkge1xuICAgIHJldHVybiBtb2RpZmllcltuYW1lXTtcbn0pO1xuZnVuY3Rpb24gY3JlYXRlRXhwZWN0ZWRNb2RpZmllcnMoaWdub3JlTW9kaWZpZXJzKSB7XG4gICAgdmFyIHZhbHVlID0gaWdub3JlTW9kaWZpZXJzID8gbnVsbCA6IGZhbHNlO1xuICAgIHJldHVybiB7XG4gICAgICAgIGFsdEtleTogdmFsdWUsXG4gICAgICAgIGN0cmxLZXk6IHZhbHVlLFxuICAgICAgICBtZXRhS2V5OiB2YWx1ZSxcbiAgICAgICAgc2hpZnRLZXk6IHZhbHVlXG4gICAgfTtcbn1cbmZ1bmN0aW9uIHJlc29sdmVNb2RpZmllcnMobW9kaWZpZXJzKSB7XG4gICAgdmFyIGlnbm9yZU1vZGlmaWVycyA9IG1vZGlmaWVycy5pbmRleE9mKCcqJykgIT09IC0xO1xuICAgIHZhciBleHBlY3RlZCA9IGNyZWF0ZUV4cGVjdGVkTW9kaWZpZXJzKGlnbm9yZU1vZGlmaWVycyk7XG4gICAgbW9kaWZpZXJzLmZvckVhY2goZnVuY3Rpb24gKHRva2VuKSB7XG4gICAgICAgIGlmICh0b2tlbiA9PT0gJyonKSB7XG4gICAgICAgICAgICAvLyB3ZSd2ZSBhbHJlYWR5IGNvdmVyZWQgdGhlIGFsbC1pbiBvcGVyYXRvclxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIHdlIHdhbnQgdGhlIG1vZGlmaWVyIHByZXNzZWRcbiAgICAgICAgdmFyIHZhbHVlID0gdHJ1ZTtcbiAgICAgICAgdmFyIG9wZXJhdG9yID0gdG9rZW4uc2xpY2UoMCwgMSk7XG4gICAgICAgIGlmIChvcGVyYXRvciA9PT0gJz8nKSB7XG4gICAgICAgICAgICAvLyB3ZSBkb24ndCBjYXJlIGlmIHRoZSBtb2RpZmllciBpcyBwcmVzc2VkXG4gICAgICAgICAgICB2YWx1ZSA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAob3BlcmF0b3IgPT09ICchJykge1xuICAgICAgICAgICAgLy8gd2UgZG8gbm90IHdhbnQgdGhlIG1vZGlmaWVyIHByZXNzZWRcbiAgICAgICAgICAgIHZhbHVlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlICE9PSB0cnVlKSB7XG4gICAgICAgICAgICAvLyBjb21wZW5zYXRlIGZvciB0aGUgbW9kaWZpZXIncyBvcGVyYXRvclxuICAgICAgICAgICAgdG9rZW4gPSB0b2tlbi5zbGljZSgxKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcHJvcGVydHlOYW1lID0gbW9kaWZpZXJbdG9rZW5dO1xuICAgICAgICBpZiAoIXByb3BlcnR5TmFtZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVW5rbm93biBtb2RpZmllciBcIicgKyB0b2tlbiArICdcIicpO1xuICAgICAgICB9XG4gICAgICAgIGV4cGVjdGVkW3Byb3BlcnR5TmFtZV0gPSB2YWx1ZTtcbiAgICB9KTtcbiAgICByZXR1cm4gZXhwZWN0ZWQ7XG59XG5mdW5jdGlvbiByZXNvbHZlS2V5KGtleSkge1xuICAgIHZhciBjb2RlID0ga2V5Y29kZVtrZXldIHx8IHBhcnNlSW50KGtleSwgMTApO1xuICAgIGlmICghY29kZSB8fCB0eXBlb2YgY29kZSAhPT0gJ251bWJlcicgfHwgaXNOYU4oY29kZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVW5rbm93biBrZXkgXCInICsga2V5ICsgJ1wiJyk7XG4gICAgfVxuICAgIHJldHVybiBbY29kZV0uY29uY2F0KGtleWNvZGUuX2FsaWFzW2NvZGVdIHx8IFtdKTtcbn1cbmZ1bmN0aW9uIG1hdGNoTW9kaWZpZXJzKGV4cGVjdGVkLCBldmVudCkge1xuICAgIC8vIHJldHVybnMgdHJ1ZSBvbiBtYXRjaFxuICAgIHJldHVybiAhbW9kaWZpZXJTZXF1ZW5jZS5zb21lKGZ1bmN0aW9uIChwcm9wKSB7XG4gICAgICAgIC8vIHJldHVybnMgdHJ1ZSBvbiBtaXNtYXRjaFxuICAgICAgICByZXR1cm4gKHR5cGVvZiBleHBlY3RlZFtwcm9wXSA9PT0gJ2Jvb2xlYW4nICYmXG4gICAgICAgICAgICBCb29sZWFuKGV2ZW50W3Byb3BdKSAhPT0gZXhwZWN0ZWRbcHJvcF0pO1xuICAgIH0pO1xufVxuZnVuY3Rpb24ga2V5QmluZGluZyh0ZXh0KSB7XG4gICAgcmV0dXJuIHRleHQuc3BsaXQoL1xccysvKS5tYXAoZnVuY3Rpb24gKF90ZXh0KSB7XG4gICAgICAgIHZhciB0b2tlbnMgPSBfdGV4dC5zcGxpdCgnKycpO1xuICAgICAgICB2YXIgX21vZGlmaWVycyA9IHJlc29sdmVNb2RpZmllcnModG9rZW5zLnNsaWNlKDAsIC0xKSk7XG4gICAgICAgIHZhciBfa2V5Q29kZXMgPSByZXNvbHZlS2V5KHRva2Vucy5zbGljZSgtMSkpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAga2V5Q29kZXM6IF9rZXlDb2RlcyxcbiAgICAgICAgICAgIG1vZGlmaWVyczogX21vZGlmaWVycyxcbiAgICAgICAgICAgIG1hdGNoTW9kaWZpZXJzOiBtYXRjaE1vZGlmaWVycy5iaW5kKG51bGwsIF9tb2RpZmllcnMpXG4gICAgICAgIH07XG4gICAgfSk7XG59XG4vLyBOb2RlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIGlzIGF2YWlsYWJsZSBzaW5jZSBJRTlcbi8vIHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvTm9kZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvblxuLy8gY2FsbGJhY2sgcmV0dXJucyB0cnVlIHdoZW4gZWxlbWVudCBpcyBjb250YWluZWQgYnkgcGFyZW50IG9yIGlzIHRoZSBwYXJlbnQgc3VpdGVkIGZvciB1c2Ugd2l0aCBBcnJheS5zb21lKClcbi8qXG4gIFVTQUdFOlxuICAgIHZhciBpc0NoaWxkT2YgPSBnZXRQYXJlbnRDb21wYXJhdG9yKHtwYXJlbnQ6IHNvbWVOb2RlfSk7XG4gICAgbGlzdE9mRWxlbWVudHMuc29tZShpc0NoaWxkT2YpXG4qL1xuZnVuY3Rpb24gZ2V0UGFyZW50Q29tcGFyYXRvcigpIHtcbiAgICB2YXIgX3JlZiA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge30sIHBhcmVudCA9IF9yZWYucGFyZW50LCBlbGVtZW50ID0gX3JlZi5lbGVtZW50LCBpbmNsdWRlU2VsZiA9IF9yZWYuaW5jbHVkZVNlbGY7XG4gICAgaWYgKHBhcmVudCkge1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gaXNDaGlsZE9mKG5vZGUpIHtcbiAgICAgICAgICAgIHJldHVybiBCb29sZWFuKChpbmNsdWRlU2VsZiAmJiBub2RlID09PSBwYXJlbnQpIHx8XG4gICAgICAgICAgICAgICAgcGFyZW50LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKG5vZGUpICZcbiAgICAgICAgICAgICAgICAgICAgTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9DT05UQUlORURfQlkpO1xuICAgICAgICB9O1xuICAgIH1cbiAgICBlbHNlIGlmIChlbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiBpc1BhcmVudE9mKG5vZGUpIHtcbiAgICAgICAgICAgIHJldHVybiBCb29sZWFuKChpbmNsdWRlU2VsZiAmJiBlbGVtZW50ID09PSBub2RlKSB8fFxuICAgICAgICAgICAgICAgIG5vZGUuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZWxlbWVudCkgJlxuICAgICAgICAgICAgICAgICAgICBOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0NPTlRBSU5FRF9CWSk7XG4gICAgICAgIH07XG4gICAgfVxuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ3V0aWwvY29tcGFyZS1wb3NpdGlvbiNnZXRQYXJlbnRDb21wYXJhdG9yIHJlcXVpcmVkIGVpdGhlciBvcHRpb25zLnBhcmVudCBvciBvcHRpb25zLmVsZW1lbnQnKTtcbn1cbi8vIEJ1ZyAyODY5MzMgLSBLZXkgZXZlbnRzIGluIHRoZSBhdXRvY29tcGxldGUgcG9wdXAgc2hvdWxkIGJlIGhpZGRlbiBmcm9tIHBhZ2Ugc2NyaXB0c1xuLy8gQGJyb3dzZXItaXNzdWUgR2Vja28gaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjg2OTMzXG5mdW5jdGlvbiB3aGVuS2V5KCkge1xuICAgIHZhciBtYXAgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9O1xuICAgIHZhciBiaW5kaW5ncyA9IHt9O1xuICAgIHZhciBjb250ZXh0ID0gbm9kZUFycmF5KG1hcC5jb250ZXh0KVswXSB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG4gICAgZGVsZXRlIG1hcC5jb250ZXh0O1xuICAgIHZhciBmaWx0ZXIgPSBub2RlQXJyYXkobWFwLmZpbHRlcik7XG4gICAgZGVsZXRlIG1hcC5maWx0ZXI7XG4gICAgdmFyIG1hcEtleXMgPSBPYmplY3Qua2V5cyhtYXApO1xuICAgIGlmICghbWFwS2V5cy5sZW5ndGgpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignd2hlbi9rZXkgcmVxdWlyZXMgYXQgbGVhc3Qgb25lIG9wdGlvbiBrZXknKTtcbiAgICB9XG4gICAgdmFyIHJlZ2lzdGVyQmluZGluZyA9IGZ1bmN0aW9uIHJlZ2lzdGVyQmluZGluZyhldmVudCkge1xuICAgICAgICBldmVudC5rZXlDb2Rlcy5mb3JFYWNoKGZ1bmN0aW9uIChjb2RlKSB7XG4gICAgICAgICAgICBpZiAoIWJpbmRpbmdzW2NvZGVdKSB7XG4gICAgICAgICAgICAgICAgYmluZGluZ3NbY29kZV0gPSBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJpbmRpbmdzW2NvZGVdLnB1c2goZXZlbnQpO1xuICAgICAgICB9KTtcbiAgICB9O1xuICAgIG1hcEtleXMuZm9yRWFjaChmdW5jdGlvbiAodGV4dCkge1xuICAgICAgICBpZiAodHlwZW9mIG1hcFt0ZXh0XSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignd2hlbi9rZXkgcmVxdWlyZXMgb3B0aW9uW1wiJyArIHRleHQgKyAnXCJdIHRvIGJlIGEgZnVuY3Rpb24nKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgYWRkQ2FsbGJhY2sgPSBmdW5jdGlvbiBhZGRDYWxsYmFjayhldmVudCkge1xuICAgICAgICAgICAgZXZlbnQuY2FsbGJhY2sgPSBtYXBbdGV4dF07XG4gICAgICAgICAgICByZXR1cm4gZXZlbnQ7XG4gICAgICAgIH07XG4gICAgICAgIGtleUJpbmRpbmcodGV4dCkubWFwKGFkZENhbGxiYWNrKS5mb3JFYWNoKHJlZ2lzdGVyQmluZGluZyk7XG4gICAgfSk7XG4gICAgdmFyIGhhbmRsZUtleURvd24gPSBmdW5jdGlvbiBoYW5kbGVLZXlEb3duKGV2ZW50KSB7XG4gICAgICAgIGlmIChldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZpbHRlci5sZW5ndGgpIHtcbiAgICAgICAgICAgIC8vIGlnbm9yZSBlbGVtZW50cyB3aXRoaW4gdGhlIGV4ZW1wdGVkIHN1Yi10cmVlc1xuICAgICAgICAgICAgdmFyIGlzUGFyZW50T2ZFbGVtZW50ID0gZ2V0UGFyZW50Q29tcGFyYXRvcih7XG4gICAgICAgICAgICAgICAgZWxlbWVudDogZXZlbnQudGFyZ2V0LFxuICAgICAgICAgICAgICAgIGluY2x1ZGVTZWxmOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChmaWx0ZXIuc29tZShpc1BhcmVudE9mRWxlbWVudCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGtleSA9IGV2ZW50LmtleUNvZGUgfHwgZXZlbnQud2hpY2g7XG4gICAgICAgIGlmICghYmluZGluZ3Nba2V5XSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGJpbmRpbmdzW2tleV0uZm9yRWFjaChmdW5jdGlvbiAoX2V2ZW50KSB7XG4gICAgICAgICAgICBpZiAoIV9ldmVudC5tYXRjaE1vZGlmaWVycyhldmVudCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBfZXZlbnQuY2FsbGJhY2suY2FsbChjb250ZXh0LCBldmVudCwgZGlzZW5nYWdlKTtcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBjb250ZXh0LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBoYW5kbGVLZXlEb3duLCBmYWxzZSk7XG4gICAgdmFyIGRpc2VuZ2FnZSA9IGZ1bmN0aW9uIGRpc2VuZ2FnZSgpIHtcbiAgICAgICAgY29udGV4dC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgaGFuZGxlS2V5RG93biwgZmFsc2UpO1xuICAgIH07XG4gICAgcmV0dXJuIHsgZGlzZW5nYWdlOiBkaXNlbmdhZ2UgfTtcbn1cbmZ1bmN0aW9uIGRlZmF1bHRfMShfYSkge1xuICAgIHZhciBfYiA9IF9hID09PSB2b2lkIDAgPyB7fSA6IF9hLCBjb250ZXh0ID0gX2IuY29udGV4dDtcbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgICAgY29udGV4dCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiAgICB9XG4gICAgLy8gTWFrZSBzdXJlIHRoZSBzdXBwb3J0cyB0ZXN0cyBhcmUgcnVuIGJlZm9yZSBpbnRlcmNlcHRpbmcgdGhlIFRhYiBrZXksXG4gICAgLy8gb3IgSUUxMCBhbmQgSUUxMSB3aWxsIGZhaWwgdG8gcHJvY2VzcyB0aGUgZmlyc3QgVGFiIGtleSBldmVudC4gTm90XG4gICAgLy8gbGltaXRpbmcgdGhpcyB3YXJtLXVwIHRvIElFIGJlY2F1c2UgaXQgbWF5IGJlIGEgcHJvYmxlbSBlbHNld2hlcmUsIHRvby5cbiAgICBxdWVyeVRhYnNlcXVlbmNlKCk7XG4gICAgcmV0dXJuIHdoZW5LZXkoe1xuICAgICAgICAvLyBTYWZhcmkgb24gT1NYIG1heSByZXF1aXJlIEFMVCtUQUIgdG8gcmVhY2ggbGlua3MsXG4gICAgICAgIC8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vbWVkaWFsaXplL2FsbHkuanMvaXNzdWVzLzE0NlxuICAgICAgICAnP2FsdCs/c2hpZnQrdGFiJzogZnVuY3Rpb24gYWx0U2hpZnRUYWIoZXZlbnQpIHtcbiAgICAgICAgICAgIC8vIHdlJ3JlIGNvbXBsZXRlbHkgdGFraW5nIG92ZXIgdGhlIFRhYiBrZXkgaGFuZGxpbmdcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB2YXIgc2VxdWVuY2UgPSBxdWVyeVRhYnNlcXVlbmNlKHtcbiAgICAgICAgICAgICAgICBjb250ZXh0OiBjb250ZXh0XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHZhciBiYWNrd2FyZCA9IGV2ZW50LnNoaWZ0S2V5O1xuICAgICAgICAgICAgdmFyIGZpcnN0ID0gc2VxdWVuY2VbMF07XG4gICAgICAgICAgICB2YXIgbGFzdCA9IHNlcXVlbmNlW3NlcXVlbmNlLmxlbmd0aCAtIDFdO1xuICAgICAgICAgICAgLy8gd3JhcCBhcm91bmQgZmlyc3QgdG8gbGFzdCwgbGFzdCB0byBmaXJzdFxuICAgICAgICAgICAgdmFyIHNvdXJjZSA9IGJhY2t3YXJkID8gZmlyc3QgOiBsYXN0O1xuICAgICAgICAgICAgdmFyIHRhcmdldCA9IGJhY2t3YXJkID8gbGFzdCA6IGZpcnN0O1xuICAgICAgICAgICAgaWYgKGlzQWN0aXZlRWxlbWVudChzb3VyY2UpKSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gZmluZCBjdXJyZW50IHBvc2l0aW9uIGluIHRhYnNlcXVlbmNlXG4gICAgICAgICAgICB2YXIgY3VycmVudEluZGV4ID0gdm9pZCAwO1xuICAgICAgICAgICAgdmFyIGZvdW5kID0gc2VxdWVuY2Uuc29tZShmdW5jdGlvbiAoZWxlbWVudCwgaW5kZXgpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWlzQWN0aXZlRWxlbWVudChlbGVtZW50KSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGN1cnJlbnRJbmRleCA9IGluZGV4O1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoIWZvdW5kKSB7XG4gICAgICAgICAgICAgICAgLy8gcmVkaXJlY3QgdG8gZmlyc3QgYXMgd2UncmUgbm90IGluIG91ciB0YWJzZXF1ZW5jZVxuICAgICAgICAgICAgICAgIGZpcnN0LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gc2hpZnQgZm9jdXMgdG8gcHJldmlvdXMvbmV4dCBlbGVtZW50IGluIHRoZSBzZXF1ZW5jZVxuICAgICAgICAgICAgdmFyIG9mZnNldCA9IGJhY2t3YXJkID8gLTEgOiAxO1xuICAgICAgICAgICAgc2VxdWVuY2VbY3VycmVudEluZGV4ICsgb2Zmc2V0XS5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IGRlZmF1bHRfMTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW1haW50YWluLS10YWItZm9jdXMuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/Overlay/maintain--tab-focus.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/Overlay/styles.js": +/*!****************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/Overlay/styles.js ***! + \****************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nexports.__esModule = true;\nexports.styles = void 0;\nvar noop_template_1 = __webpack_require__(/*! ../../helpers/noop-template */ \"./node_modules/@next/react-dev-overlay/lib/internal/helpers/noop-template.js\");\nvar styles = (0, noop_template_1.noop)(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\n [data-nextjs-dialog-overlay] {\\n position: fixed;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n overflow: auto;\\n z-index: 9000;\\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: rgba(17, 17, 17, 0.2);\\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\"], [\"\\n [data-nextjs-dialog-overlay] {\\n position: fixed;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n overflow: auto;\\n z-index: 9000;\\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: rgba(17, 17, 17, 0.2);\\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\"])));\nexports.styles = styles;\nvar templateObject_1;\n//# sourceMappingURL=styles.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvT3ZlcmxheS9zdHlsZXMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBLGlDQUFpQyx1Q0FBdUMsWUFBWSxLQUFLLE9BQU87QUFDaEc7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQixjQUFjO0FBQ2Qsc0JBQXNCLG1CQUFPLENBQUMsaUhBQTZCO0FBQzNELHdJQUF3SSxzQkFBc0IsYUFBYSxlQUFlLGdCQUFnQixjQUFjLHFCQUFxQixvQkFBb0Isc0JBQXNCLDRCQUE0QiwwQkFBMEIsNkJBQTZCLDJCQUEyQixLQUFLLGtDQUFrQyxvQ0FBb0MsNkJBQTZCLE9BQU8sS0FBSyxxQ0FBcUMsc0JBQXNCLGFBQWEsZUFBZSxnQkFBZ0IsY0FBYyw4Q0FBOEMsMEJBQTBCLGtCQUFrQixLQUFLLDJDQUEyQywwQkFBMEIseUNBQXlDLGlDQUFpQyxLQUFLLDBDQUEwQyxzQkFBc0IsYUFBYSxlQUFlLGdCQUFnQixjQUFjLHFCQUFxQixvQkFBb0Isc0JBQXNCLDRCQUE0QiwwQkFBMEIsNkJBQTZCLDJCQUEyQixLQUFLLGtDQUFrQyxvQ0FBb0MsNkJBQTZCLE9BQU8sS0FBSyxxQ0FBcUMsc0JBQXNCLGFBQWEsZUFBZSxnQkFBZ0IsY0FBYyw4Q0FBOEMsMEJBQTBCLGtCQUFrQixLQUFLLDJDQUEyQywwQkFBMEIseUNBQXlDLGlDQUFpQyxLQUFLO0FBQ3BtRCxjQUFjO0FBQ2Q7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvT3ZlcmxheS9zdHlsZXMuanM/YTA4YyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX21ha2VUZW1wbGF0ZU9iamVjdCA9ICh0aGlzICYmIHRoaXMuX19tYWtlVGVtcGxhdGVPYmplY3QpIHx8IGZ1bmN0aW9uIChjb29rZWQsIHJhdykge1xuICAgIGlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvb2tlZCwgXCJyYXdcIiwgeyB2YWx1ZTogcmF3IH0pOyB9IGVsc2UgeyBjb29rZWQucmF3ID0gcmF3OyB9XG4gICAgcmV0dXJuIGNvb2tlZDtcbn07XG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5zdHlsZXMgPSB2b2lkIDA7XG52YXIgbm9vcF90ZW1wbGF0ZV8xID0gcmVxdWlyZShcIi4uLy4uL2hlbHBlcnMvbm9vcC10ZW1wbGF0ZVwiKTtcbnZhciBzdHlsZXMgPSAoMCwgbm9vcF90ZW1wbGF0ZV8xLm5vb3ApKHRlbXBsYXRlT2JqZWN0XzEgfHwgKHRlbXBsYXRlT2JqZWN0XzEgPSBfX21ha2VUZW1wbGF0ZU9iamVjdChbXCJcXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctb3ZlcmxheV0ge1xcbiAgICBwb3NpdGlvbjogZml4ZWQ7XFxuICAgIHRvcDogMDtcXG4gICAgcmlnaHQ6IDA7XFxuICAgIGJvdHRvbTogMDtcXG4gICAgbGVmdDogMDtcXG4gICAgb3ZlcmZsb3c6IGF1dG87XFxuICAgIHotaW5kZXg6IDkwMDA7XFxuXFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgcGFkZGluZzogMTB2aCAxNXB4IDA7XFxuICB9XFxuXFxuICBAbWVkaWEgKG1heC1oZWlnaHQ6IDgxMnB4KSB7XFxuICAgIFtkYXRhLW5leHRqcy1kaWFsb2ctb3ZlcmxheV0ge1xcbiAgICAgIHBhZGRpbmc6IDE1cHggMTVweCAwO1xcbiAgICB9XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWJhY2tkcm9wXSB7XFxuICAgIHBvc2l0aW9uOiBmaXhlZDtcXG4gICAgdG9wOiAwO1xcbiAgICByaWdodDogMDtcXG4gICAgYm90dG9tOiAwO1xcbiAgICBsZWZ0OiAwO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE3LCAxNywgMTcsIDAuMik7XFxuICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XFxuICAgIHotaW5kZXg6IC0xO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1iYWNrZHJvcC1maXhlZF0ge1xcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xcbiAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpO1xcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTtcXG4gIH1cXG5cIl0sIFtcIlxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1vdmVybGF5XSB7XFxuICAgIHBvc2l0aW9uOiBmaXhlZDtcXG4gICAgdG9wOiAwO1xcbiAgICByaWdodDogMDtcXG4gICAgYm90dG9tOiAwO1xcbiAgICBsZWZ0OiAwO1xcbiAgICBvdmVyZmxvdzogYXV0bztcXG4gICAgei1pbmRleDogOTAwMDtcXG5cXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24tY29udGVudDogY2VudGVyO1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICBwYWRkaW5nOiAxMHZoIDE1cHggMDtcXG4gIH1cXG5cXG4gIEBtZWRpYSAobWF4LWhlaWdodDogODEycHgpIHtcXG4gICAgW2RhdGEtbmV4dGpzLWRpYWxvZy1vdmVybGF5XSB7XFxuICAgICAgcGFkZGluZzogMTVweCAxNXB4IDA7XFxuICAgIH1cXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctYmFja2Ryb3BdIHtcXG4gICAgcG9zaXRpb246IGZpeGVkO1xcbiAgICB0b3A6IDA7XFxuICAgIHJpZ2h0OiAwO1xcbiAgICBib3R0b206IDA7XFxuICAgIGxlZnQ6IDA7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTcsIDE3LCAxNywgMC4yKTtcXG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDtcXG4gICAgei1pbmRleDogLTE7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWJhY2tkcm9wLWZpeGVkXSB7XFxuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxuICAgIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDhweCk7XFxuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpO1xcbiAgfVxcblwiXSkpKTtcbmV4cG9ydHMuc3R5bGVzID0gc3R5bGVzO1xudmFyIHRlbXBsYXRlT2JqZWN0XzE7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1zdHlsZXMuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/Overlay/styles.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/ShadowPortal.js": +/*!**************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/ShadowPortal.js ***! + \**************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nexports.__esModule = true;\nexports.ShadowPortal = void 0;\nvar React = __importStar(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nvar react_dom_1 = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\nvar ShadowPortal = function Portal(_a) {\n var children = _a.children;\n var mountNode = React.useRef(null);\n var portalNode = React.useRef(null);\n var shadowNode = React.useRef(null);\n var _b = __read(React.useState(), 2), forceUpdate = _b[1];\n React.useLayoutEffect(function () {\n var ownerDocument = mountNode.current.ownerDocument;\n portalNode.current = ownerDocument.createElement('nextjs-portal');\n shadowNode.current = portalNode.current.attachShadow({ mode: 'open' });\n ownerDocument.body.appendChild(portalNode.current);\n forceUpdate({});\n return function () {\n if (portalNode.current && portalNode.current.ownerDocument) {\n portalNode.current.ownerDocument.body.removeChild(portalNode.current);\n }\n };\n }, []);\n return shadowNode.current ? ((0, react_dom_1.createPortal)(children, shadowNode.current)) : (React.createElement(\"span\", { ref: mountNode }));\n};\nexports.ShadowPortal = ShadowPortal;\n//# sourceMappingURL=ShadowPortal.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvU2hhZG93UG9ydGFsLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQTtBQUNBLG1DQUFtQyxvQ0FBb0MsZ0JBQWdCO0FBQ3ZGLENBQUM7QUFDRDtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0EsMENBQTBDLDRCQUE0QjtBQUN0RSxDQUFDO0FBQ0Q7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixNQUFNO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQixvQkFBb0I7QUFDcEIseUJBQXlCLG1CQUFPLENBQUMsNENBQU87QUFDeEMsa0JBQWtCLG1CQUFPLENBQUMsb0RBQVc7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0RBQStELGNBQWM7QUFDN0U7QUFDQSxzQkFBc0I7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCwrSEFBK0gsZ0JBQWdCO0FBQy9JO0FBQ0Esb0JBQW9CO0FBQ3BCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AbmV4dC9yZWFjdC1kZXYtb3ZlcmxheS9saWIvaW50ZXJuYWwvY29tcG9uZW50cy9TaGFkb3dQb3J0YWwuanM/ZGYxMiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2NyZWF0ZUJpbmRpbmcgPSAodGhpcyAmJiB0aGlzLl9fY3JlYXRlQmluZGluZykgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gbVtrXTsgfSB9KTtcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBvW2syXSA9IG1ba107XG59KSk7XG52YXIgX19zZXRNb2R1bGVEZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX3NldE1vZHVsZURlZmF1bHQpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIHYpIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgXCJkZWZhdWx0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7XG59KSA6IGZ1bmN0aW9uKG8sIHYpIHtcbiAgICBvW1wiZGVmYXVsdFwiXSA9IHY7XG59KTtcbnZhciBfX2ltcG9ydFN0YXIgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0U3RhcikgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpIHJldHVybiBtb2Q7XG4gICAgdmFyIHJlc3VsdCA9IHt9O1xuICAgIGlmIChtb2QgIT0gbnVsbCkgZm9yICh2YXIgayBpbiBtb2QpIGlmIChrICE9PSBcImRlZmF1bHRcIiAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobW9kLCBrKSkgX19jcmVhdGVCaW5kaW5nKHJlc3VsdCwgbW9kLCBrKTtcbiAgICBfX3NldE1vZHVsZURlZmF1bHQocmVzdWx0LCBtb2QpO1xuICAgIHJldHVybiByZXN1bHQ7XG59O1xudmFyIF9fcmVhZCA9ICh0aGlzICYmIHRoaXMuX19yZWFkKSB8fCBmdW5jdGlvbiAobywgbikge1xuICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9bU3ltYm9sLml0ZXJhdG9yXTtcbiAgICBpZiAoIW0pIHJldHVybiBvO1xuICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlO1xuICAgIHRyeSB7XG4gICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpO1xuICAgIH1cbiAgICBjYXRjaCAoZXJyb3IpIHsgZSA9IHsgZXJyb3I6IGVycm9yIH07IH1cbiAgICBmaW5hbGx5IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpW1wicmV0dXJuXCJdKSkgbS5jYWxsKGkpO1xuICAgICAgICB9XG4gICAgICAgIGZpbmFsbHkgeyBpZiAoZSkgdGhyb3cgZS5lcnJvcjsgfVxuICAgIH1cbiAgICByZXR1cm4gYXI7XG59O1xuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHMuU2hhZG93UG9ydGFsID0gdm9pZCAwO1xudmFyIFJlYWN0ID0gX19pbXBvcnRTdGFyKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG52YXIgcmVhY3RfZG9tXzEgPSByZXF1aXJlKFwicmVhY3QtZG9tXCIpO1xudmFyIFNoYWRvd1BvcnRhbCA9IGZ1bmN0aW9uIFBvcnRhbChfYSkge1xuICAgIHZhciBjaGlsZHJlbiA9IF9hLmNoaWxkcmVuO1xuICAgIHZhciBtb3VudE5vZGUgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgdmFyIHBvcnRhbE5vZGUgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgdmFyIHNoYWRvd05vZGUgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgdmFyIF9iID0gX19yZWFkKFJlYWN0LnVzZVN0YXRlKCksIDIpLCBmb3JjZVVwZGF0ZSA9IF9iWzFdO1xuICAgIFJlYWN0LnVzZUxheW91dEVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBvd25lckRvY3VtZW50ID0gbW91bnROb2RlLmN1cnJlbnQub3duZXJEb2N1bWVudDtcbiAgICAgICAgcG9ydGFsTm9kZS5jdXJyZW50ID0gb3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCduZXh0anMtcG9ydGFsJyk7XG4gICAgICAgIHNoYWRvd05vZGUuY3VycmVudCA9IHBvcnRhbE5vZGUuY3VycmVudC5hdHRhY2hTaGFkb3coeyBtb2RlOiAnb3BlbicgfSk7XG4gICAgICAgIG93bmVyRG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChwb3J0YWxOb2RlLmN1cnJlbnQpO1xuICAgICAgICBmb3JjZVVwZGF0ZSh7fSk7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpZiAocG9ydGFsTm9kZS5jdXJyZW50ICYmIHBvcnRhbE5vZGUuY3VycmVudC5vd25lckRvY3VtZW50KSB7XG4gICAgICAgICAgICAgICAgcG9ydGFsTm9kZS5jdXJyZW50Lm93bmVyRG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChwb3J0YWxOb2RlLmN1cnJlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH0sIFtdKTtcbiAgICByZXR1cm4gc2hhZG93Tm9kZS5jdXJyZW50ID8gKCgwLCByZWFjdF9kb21fMS5jcmVhdGVQb3J0YWwpKGNoaWxkcmVuLCBzaGFkb3dOb2RlLmN1cnJlbnQpKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7IHJlZjogbW91bnROb2RlIH0pKTtcbn07XG5leHBvcnRzLlNoYWRvd1BvcnRhbCA9IFNoYWRvd1BvcnRhbDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVNoYWRvd1BvcnRhbC5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/ShadowPortal.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/Terminal/Terminal.js": +/*!*******************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/Terminal/Terminal.js ***! + \*******************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nexports.__esModule = true;\nexports.Terminal = void 0;\nvar anser_1 = __importDefault(__webpack_require__(/*! anser */ \"./node_modules/anser/lib/index.js\"));\nvar React = __importStar(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nvar Terminal = function Terminal(_a) {\n var content = _a.content;\n var decoded = React.useMemo(function () {\n return anser_1[\"default\"].ansiToJson(content, {\n json: true,\n use_classes: true,\n remove_empty: true\n });\n }, [content]);\n return (React.createElement(\"div\", { \"data-nextjs-terminal\": true },\n React.createElement(\"pre\", null, decoded.map(function (entry, index) { return (React.createElement(\"span\", { key: \"terminal-entry-\" + index, style: __assign({ color: entry.fg ? \"var(--color-\" + entry.fg + \")\" : undefined }, (entry.decoration === 'bold'\n ? { fontWeight: 800 }\n : entry.decoration === 'italic'\n ? { fontStyle: 'italic' }\n : undefined)) }, entry.content)); }))));\n};\nexports.Terminal = Terminal;\n//# sourceMappingURL=Terminal.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvVGVybWluYWwvVGVybWluYWwuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBO0FBQ0EsaURBQWlELE9BQU87QUFDeEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMsb0NBQW9DLGdCQUFnQjtBQUN2RixDQUFDO0FBQ0Q7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBLDBDQUEwQyw0QkFBNEI7QUFDdEUsQ0FBQztBQUNEO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2Q0FBNkM7QUFDN0M7QUFDQSxrQkFBa0I7QUFDbEIsZ0JBQWdCO0FBQ2hCLDhCQUE4QixtQkFBTyxDQUFDLGdEQUFPO0FBQzdDLHlCQUF5QixtQkFBTyxDQUFDLDRDQUFPO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULEtBQUs7QUFDTCx5Q0FBeUMsOEJBQThCO0FBQ3ZFLCtFQUErRSxzQ0FBc0Msa0RBQWtELCtEQUErRDtBQUN0TyxvQkFBb0I7QUFDcEI7QUFDQSx3QkFBd0I7QUFDeEIsbUNBQW1DLG9CQUFvQjtBQUN2RDtBQUNBLGdCQUFnQjtBQUNoQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvVGVybWluYWwvVGVybWluYWwuanM/MTdhZCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2Fzc2lnbiA9ICh0aGlzICYmIHRoaXMuX19hc3NpZ24pIHx8IGZ1bmN0aW9uICgpIHtcbiAgICBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24odCkge1xuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpXG4gICAgICAgICAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHQ7XG4gICAgfTtcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn07XG52YXIgX19jcmVhdGVCaW5kaW5nID0gKHRoaXMgJiYgdGhpcy5fX2NyZWF0ZUJpbmRpbmcpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfSk7XG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgb1trMl0gPSBtW2tdO1xufSkpO1xudmFyIF9fc2V0TW9kdWxlRGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19zZXRNb2R1bGVEZWZhdWx0KSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCB2KSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIFwiZGVmYXVsdFwiLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2IH0pO1xufSkgOiBmdW5jdGlvbihvLCB2KSB7XG4gICAgb1tcImRlZmF1bHRcIl0gPSB2O1xufSk7XG52YXIgX19pbXBvcnRTdGFyID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydFN0YXIpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSByZXR1cm4gbW9kO1xuICAgIHZhciByZXN1bHQgPSB7fTtcbiAgICBpZiAobW9kICE9IG51bGwpIGZvciAodmFyIGsgaW4gbW9kKSBpZiAoayAhPT0gXCJkZWZhdWx0XCIgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG1vZCwgaykpIF9fY3JlYXRlQmluZGluZyhyZXN1bHQsIG1vZCwgayk7XG4gICAgX19zZXRNb2R1bGVEZWZhdWx0KHJlc3VsdCwgbW9kKTtcbiAgICByZXR1cm4gcmVzdWx0O1xufTtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLlRlcm1pbmFsID0gdm9pZCAwO1xudmFyIGFuc2VyXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcImFuc2VyXCIpKTtcbnZhciBSZWFjdCA9IF9faW1wb3J0U3RhcihyZXF1aXJlKFwicmVhY3RcIikpO1xudmFyIFRlcm1pbmFsID0gZnVuY3Rpb24gVGVybWluYWwoX2EpIHtcbiAgICB2YXIgY29udGVudCA9IF9hLmNvbnRlbnQ7XG4gICAgdmFyIGRlY29kZWQgPSBSZWFjdC51c2VNZW1vKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGFuc2VyXzFbXCJkZWZhdWx0XCJdLmFuc2lUb0pzb24oY29udGVudCwge1xuICAgICAgICAgICAganNvbjogdHJ1ZSxcbiAgICAgICAgICAgIHVzZV9jbGFzc2VzOiB0cnVlLFxuICAgICAgICAgICAgcmVtb3ZlX2VtcHR5OiB0cnVlXG4gICAgICAgIH0pO1xuICAgIH0sIFtjb250ZW50XSk7XG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgXCJkYXRhLW5leHRqcy10ZXJtaW5hbFwiOiB0cnVlIH0sXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwcmVcIiwgbnVsbCwgZGVjb2RlZC5tYXAoZnVuY3Rpb24gKGVudHJ5LCBpbmRleCkgeyByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHsga2V5OiBcInRlcm1pbmFsLWVudHJ5LVwiICsgaW5kZXgsIHN0eWxlOiBfX2Fzc2lnbih7IGNvbG9yOiBlbnRyeS5mZyA/IFwidmFyKC0tY29sb3ItXCIgKyBlbnRyeS5mZyArIFwiKVwiIDogdW5kZWZpbmVkIH0sIChlbnRyeS5kZWNvcmF0aW9uID09PSAnYm9sZCdcbiAgICAgICAgICAgICAgICA/IHsgZm9udFdlaWdodDogODAwIH1cbiAgICAgICAgICAgICAgICA6IGVudHJ5LmRlY29yYXRpb24gPT09ICdpdGFsaWMnXG4gICAgICAgICAgICAgICAgICAgID8geyBmb250U3R5bGU6ICdpdGFsaWMnIH1cbiAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQpKSB9LCBlbnRyeS5jb250ZW50KSk7IH0pKSkpO1xufTtcbmV4cG9ydHMuVGVybWluYWwgPSBUZXJtaW5hbDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRlcm1pbmFsLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/Terminal/Terminal.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/Terminal/index.js": +/*!****************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/Terminal/index.js ***! + \****************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nexports.__esModule = true;\nexports.Terminal = void 0;\nvar Terminal_1 = __webpack_require__(/*! ./Terminal */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/Terminal/Terminal.js\");\n__createBinding(exports, Terminal_1, \"Terminal\");\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvVGVybWluYWwvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBO0FBQ0EsbUNBQW1DLG9DQUFvQyxnQkFBZ0I7QUFDdkYsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Qsa0JBQWtCO0FBQ2xCLGdCQUFnQjtBQUNoQixpQkFBaUIsbUJBQU8sQ0FBQyx1R0FBWTtBQUNyQztBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AbmV4dC9yZWFjdC1kZXYtb3ZlcmxheS9saWIvaW50ZXJuYWwvY29tcG9uZW50cy9UZXJtaW5hbC9pbmRleC5qcz8wMjhmIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9fY3JlYXRlQmluZGluZyA9ICh0aGlzICYmIHRoaXMuX19jcmVhdGVCaW5kaW5nKSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH0pO1xufSkgOiAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIG9bazJdID0gbVtrXTtcbn0pKTtcbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLlRlcm1pbmFsID0gdm9pZCAwO1xudmFyIFRlcm1pbmFsXzEgPSByZXF1aXJlKFwiLi9UZXJtaW5hbFwiKTtcbl9fY3JlYXRlQmluZGluZyhleHBvcnRzLCBUZXJtaW5hbF8xLCBcIlRlcm1pbmFsXCIpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/Terminal/index.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/Terminal/styles.js": +/*!*****************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/Terminal/styles.js ***! + \*****************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nexports.__esModule = true;\nexports.styles = void 0;\nvar noop_template_1 = __webpack_require__(/*! ../../helpers/noop-template */ \"./node_modules/@next/react-dev-overlay/lib/internal/helpers/noop-template.js\");\nvar styles = (0, noop_template_1.noop)(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\n [data-nextjs-terminal] {\\n border-radius: var(--size-gap-half);\\n background-color: var(--color-ansi-bg);\\n color: var(--color-ansi-fg);\\n }\\n [data-nextjs-terminal]::selection,\\n [data-nextjs-terminal] *::selection {\\n background-color: var(--color-ansi-selection);\\n }\\n [data-nextjs-terminal] * {\\n color: inherit;\\n background-color: transparent;\\n font-family: var(--font-stack-monospace);\\n }\\n [data-nextjs-terminal] > * {\\n margin: 0;\\n padding: calc(var(--size-gap) + var(--size-gap-half))\\n calc(var(--size-gap-double) + var(--size-gap-half));\\n }\\n\\n [data-nextjs-terminal] pre {\\n white-space: pre-wrap;\\n word-break: break-word;\\n }\\n\"], [\"\\n [data-nextjs-terminal] {\\n border-radius: var(--size-gap-half);\\n background-color: var(--color-ansi-bg);\\n color: var(--color-ansi-fg);\\n }\\n [data-nextjs-terminal]::selection,\\n [data-nextjs-terminal] *::selection {\\n background-color: var(--color-ansi-selection);\\n }\\n [data-nextjs-terminal] * {\\n color: inherit;\\n background-color: transparent;\\n font-family: var(--font-stack-monospace);\\n }\\n [data-nextjs-terminal] > * {\\n margin: 0;\\n padding: calc(var(--size-gap) + var(--size-gap-half))\\n calc(var(--size-gap-double) + var(--size-gap-half));\\n }\\n\\n [data-nextjs-terminal] pre {\\n white-space: pre-wrap;\\n word-break: break-word;\\n }\\n\"])));\nexports.styles = styles;\nvar templateObject_1;\n//# sourceMappingURL=styles.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvVGVybWluYWwvc3R5bGVzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQSxpQ0FBaUMsdUNBQXVDLFlBQVksS0FBSyxPQUFPO0FBQ2hHO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEIsY0FBYztBQUNkLHNCQUFzQixtQkFBTyxDQUFDLGlIQUE2QjtBQUMzRCxrSUFBa0ksMENBQTBDLDZDQUE2QyxrQ0FBa0MsS0FBSywrRUFBK0Usb0RBQW9ELEtBQUssOEJBQThCLHFCQUFxQixvQ0FBb0MsK0NBQStDLEtBQUssZ0NBQWdDLGdCQUFnQix1SEFBdUgsS0FBSyxrQ0FBa0MsNEJBQTRCLDZCQUE2QixLQUFLLG9DQUFvQywwQ0FBMEMsNkNBQTZDLGtDQUFrQyxLQUFLLCtFQUErRSxvREFBb0QsS0FBSyw4QkFBOEIscUJBQXFCLG9DQUFvQywrQ0FBK0MsS0FBSyxnQ0FBZ0MsZ0JBQWdCLHVIQUF1SCxLQUFLLGtDQUFrQyw0QkFBNEIsNkJBQTZCLEtBQUs7QUFDaCtDLGNBQWM7QUFDZDtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AbmV4dC9yZWFjdC1kZXYtb3ZlcmxheS9saWIvaW50ZXJuYWwvY29tcG9uZW50cy9UZXJtaW5hbC9zdHlsZXMuanM/NjBlZSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX21ha2VUZW1wbGF0ZU9iamVjdCA9ICh0aGlzICYmIHRoaXMuX19tYWtlVGVtcGxhdGVPYmplY3QpIHx8IGZ1bmN0aW9uIChjb29rZWQsIHJhdykge1xuICAgIGlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvb2tlZCwgXCJyYXdcIiwgeyB2YWx1ZTogcmF3IH0pOyB9IGVsc2UgeyBjb29rZWQucmF3ID0gcmF3OyB9XG4gICAgcmV0dXJuIGNvb2tlZDtcbn07XG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5zdHlsZXMgPSB2b2lkIDA7XG52YXIgbm9vcF90ZW1wbGF0ZV8xID0gcmVxdWlyZShcIi4uLy4uL2hlbHBlcnMvbm9vcC10ZW1wbGF0ZVwiKTtcbnZhciBzdHlsZXMgPSAoMCwgbm9vcF90ZW1wbGF0ZV8xLm5vb3ApKHRlbXBsYXRlT2JqZWN0XzEgfHwgKHRlbXBsYXRlT2JqZWN0XzEgPSBfX21ha2VUZW1wbGF0ZU9iamVjdChbXCJcXG4gIFtkYXRhLW5leHRqcy10ZXJtaW5hbF0ge1xcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zaXplLWdhcC1oYWxmKTtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYW5zaS1iZyk7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLWZnKTtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy10ZXJtaW5hbF06OnNlbGVjdGlvbixcXG4gIFtkYXRhLW5leHRqcy10ZXJtaW5hbF0gKjo6c2VsZWN0aW9uIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYW5zaS1zZWxlY3Rpb24pO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLXRlcm1pbmFsXSAqIHtcXG4gICAgY29sb3I6IGluaGVyaXQ7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1tb25vc3BhY2UpO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLXRlcm1pbmFsXSA+ICoge1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IGNhbGModmFyKC0tc2l6ZS1nYXApICsgdmFyKC0tc2l6ZS1nYXAtaGFsZikpXFxuICAgICAgY2FsYyh2YXIoLS1zaXplLWdhcC1kb3VibGUpICsgdmFyKC0tc2l6ZS1nYXAtaGFsZikpO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLXRlcm1pbmFsXSBwcmUge1xcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XFxuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XFxuICB9XFxuXCJdLCBbXCJcXG4gIFtkYXRhLW5leHRqcy10ZXJtaW5hbF0ge1xcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zaXplLWdhcC1oYWxmKTtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYW5zaS1iZyk7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLWZnKTtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy10ZXJtaW5hbF06OnNlbGVjdGlvbixcXG4gIFtkYXRhLW5leHRqcy10ZXJtaW5hbF0gKjo6c2VsZWN0aW9uIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYW5zaS1zZWxlY3Rpb24pO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLXRlcm1pbmFsXSAqIHtcXG4gICAgY29sb3I6IGluaGVyaXQ7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1tb25vc3BhY2UpO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLXRlcm1pbmFsXSA+ICoge1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IGNhbGModmFyKC0tc2l6ZS1nYXApICsgdmFyKC0tc2l6ZS1nYXAtaGFsZikpXFxuICAgICAgY2FsYyh2YXIoLS1zaXplLWdhcC1kb3VibGUpICsgdmFyKC0tc2l6ZS1nYXAtaGFsZikpO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLXRlcm1pbmFsXSBwcmUge1xcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XFxuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XFxuICB9XFxuXCJdKSkpO1xuZXhwb3J0cy5zdHlsZXMgPSBzdHlsZXM7XG52YXIgdGVtcGxhdGVPYmplY3RfMTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXN0eWxlcy5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/Terminal/styles.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/Toast/Toast.js": +/*!*************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/Toast/Toast.js ***! + \*************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nexports.__esModule = true;\nexports.Toast = void 0;\nvar React = __importStar(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nvar Toast = function Toast(_a) {\n var onClick = _a.onClick, children = _a.children, className = _a.className;\n return (React.createElement(\"div\", { \"data-nextjs-toast\": true, onClick: onClick, className: className },\n React.createElement(\"div\", { \"data-nextjs-toast-wrapper\": true }, children)));\n};\nexports.Toast = Toast;\n//# sourceMappingURL=Toast.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvVG9hc3QvVG9hc3QuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBO0FBQ0EsbUNBQW1DLG9DQUFvQyxnQkFBZ0I7QUFDdkYsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQSwwQ0FBMEMsNEJBQTRCO0FBQ3RFLENBQUM7QUFDRDtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQixhQUFhO0FBQ2IseUJBQXlCLG1CQUFPLENBQUMsNENBQU87QUFDeEM7QUFDQTtBQUNBLHlDQUF5QyxtRUFBbUU7QUFDNUcscUNBQXFDLG1DQUFtQztBQUN4RTtBQUNBLGFBQWE7QUFDYiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvVG9hc3QvVG9hc3QuanM/Y2RlNyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2NyZWF0ZUJpbmRpbmcgPSAodGhpcyAmJiB0aGlzLl9fY3JlYXRlQmluZGluZykgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gbVtrXTsgfSB9KTtcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBvW2syXSA9IG1ba107XG59KSk7XG52YXIgX19zZXRNb2R1bGVEZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX3NldE1vZHVsZURlZmF1bHQpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIHYpIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgXCJkZWZhdWx0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7XG59KSA6IGZ1bmN0aW9uKG8sIHYpIHtcbiAgICBvW1wiZGVmYXVsdFwiXSA9IHY7XG59KTtcbnZhciBfX2ltcG9ydFN0YXIgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0U3RhcikgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpIHJldHVybiBtb2Q7XG4gICAgdmFyIHJlc3VsdCA9IHt9O1xuICAgIGlmIChtb2QgIT0gbnVsbCkgZm9yICh2YXIgayBpbiBtb2QpIGlmIChrICE9PSBcImRlZmF1bHRcIiAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobW9kLCBrKSkgX19jcmVhdGVCaW5kaW5nKHJlc3VsdCwgbW9kLCBrKTtcbiAgICBfX3NldE1vZHVsZURlZmF1bHQocmVzdWx0LCBtb2QpO1xuICAgIHJldHVybiByZXN1bHQ7XG59O1xuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHMuVG9hc3QgPSB2b2lkIDA7XG52YXIgUmVhY3QgPSBfX2ltcG9ydFN0YXIocmVxdWlyZShcInJlYWN0XCIpKTtcbnZhciBUb2FzdCA9IGZ1bmN0aW9uIFRvYXN0KF9hKSB7XG4gICAgdmFyIG9uQ2xpY2sgPSBfYS5vbkNsaWNrLCBjaGlsZHJlbiA9IF9hLmNoaWxkcmVuLCBjbGFzc05hbWUgPSBfYS5jbGFzc05hbWU7XG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgXCJkYXRhLW5leHRqcy10b2FzdFwiOiB0cnVlLCBvbkNsaWNrOiBvbkNsaWNrLCBjbGFzc05hbWU6IGNsYXNzTmFtZSB9LFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgXCJkYXRhLW5leHRqcy10b2FzdC13cmFwcGVyXCI6IHRydWUgfSwgY2hpbGRyZW4pKSk7XG59O1xuZXhwb3J0cy5Ub2FzdCA9IFRvYXN0O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9VG9hc3QuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/Toast/Toast.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/Toast/index.js": +/*!*************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/Toast/index.js ***! + \*************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nexports.__esModule = true;\nexports.Toast = exports.styles = void 0;\nvar styles_1 = __webpack_require__(/*! ./styles */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/Toast/styles.js\");\n__createBinding(exports, styles_1, \"styles\");\nvar Toast_1 = __webpack_require__(/*! ./Toast */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/Toast/Toast.js\");\n__createBinding(exports, Toast_1, \"Toast\");\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvVG9hc3QvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBO0FBQ0EsbUNBQW1DLG9DQUFvQyxnQkFBZ0I7QUFDdkYsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Qsa0JBQWtCO0FBQ2xCLGFBQWEsR0FBRyxjQUFjO0FBQzlCLGVBQWUsbUJBQU8sQ0FBQyxnR0FBVTtBQUNqQztBQUNBLGNBQWMsbUJBQU8sQ0FBQyw4RkFBUztBQUMvQjtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AbmV4dC9yZWFjdC1kZXYtb3ZlcmxheS9saWIvaW50ZXJuYWwvY29tcG9uZW50cy9Ub2FzdC9pbmRleC5qcz85MDE0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9fY3JlYXRlQmluZGluZyA9ICh0aGlzICYmIHRoaXMuX19jcmVhdGVCaW5kaW5nKSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH0pO1xufSkgOiAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIG9bazJdID0gbVtrXTtcbn0pKTtcbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLlRvYXN0ID0gZXhwb3J0cy5zdHlsZXMgPSB2b2lkIDA7XG52YXIgc3R5bGVzXzEgPSByZXF1aXJlKFwiLi9zdHlsZXNcIik7XG5fX2NyZWF0ZUJpbmRpbmcoZXhwb3J0cywgc3R5bGVzXzEsIFwic3R5bGVzXCIpO1xudmFyIFRvYXN0XzEgPSByZXF1aXJlKFwiLi9Ub2FzdFwiKTtcbl9fY3JlYXRlQmluZGluZyhleHBvcnRzLCBUb2FzdF8xLCBcIlRvYXN0XCIpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/Toast/index.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/components/Toast/styles.js": +/*!**************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/components/Toast/styles.js ***! + \**************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nexports.__esModule = true;\nexports.styles = void 0;\nvar noop_template_1 = __webpack_require__(/*! ../../helpers/noop-template */ \"./node_modules/@next/react-dev-overlay/lib/internal/helpers/noop-template.js\");\nvar styles = (0, noop_template_1.noop)(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\n [data-nextjs-toast] {\\n position: fixed;\\n bottom: var(--size-gap-double);\\n left: var(--size-gap-double);\\n max-width: 420px;\\n z-index: 9000;\\n }\\n\\n @media (max-width: 440px) {\\n [data-nextjs-toast] {\\n max-width: 90vw;\\n left: 5vw;\\n }\\n }\\n\\n [data-nextjs-toast-wrapper] {\\n padding: 16px;\\n border-radius: var(--size-gap-half);\\n font-weight: 500;\\n color: var(--color-ansi-bright-white);\\n background-color: var(--color-ansi-red);\\n box-shadow: 0px var(--size-gap-double) var(--size-gap-quad)\\n rgba(0, 0, 0, 0.25);\\n }\\n\"], [\"\\n [data-nextjs-toast] {\\n position: fixed;\\n bottom: var(--size-gap-double);\\n left: var(--size-gap-double);\\n max-width: 420px;\\n z-index: 9000;\\n }\\n\\n @media (max-width: 440px) {\\n [data-nextjs-toast] {\\n max-width: 90vw;\\n left: 5vw;\\n }\\n }\\n\\n [data-nextjs-toast-wrapper] {\\n padding: 16px;\\n border-radius: var(--size-gap-half);\\n font-weight: 500;\\n color: var(--color-ansi-bright-white);\\n background-color: var(--color-ansi-red);\\n box-shadow: 0px var(--size-gap-double) var(--size-gap-quad)\\n rgba(0, 0, 0, 0.25);\\n }\\n\"])));\nexports.styles = styles;\nvar templateObject_1;\n//# sourceMappingURL=styles.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvVG9hc3Qvc3R5bGVzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQSxpQ0FBaUMsdUNBQXVDLFlBQVksS0FBSyxPQUFPO0FBQ2hHO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEIsY0FBYztBQUNkLHNCQUFzQixtQkFBTyxDQUFDLGlIQUE2QjtBQUMzRCwrSEFBK0gsc0JBQXNCLHFDQUFxQyxtQ0FBbUMsdUJBQXVCLG9CQUFvQixLQUFLLGlDQUFpQywyQkFBMkIsd0JBQXdCLGtCQUFrQixPQUFPLEtBQUssbUNBQW1DLG9CQUFvQiwwQ0FBMEMsdUJBQXVCLDRDQUE0Qyw4Q0FBOEMsNkZBQTZGLEtBQUssaUNBQWlDLHNCQUFzQixxQ0FBcUMsbUNBQW1DLHVCQUF1QixvQkFBb0IsS0FBSyxpQ0FBaUMsMkJBQTJCLHdCQUF3QixrQkFBa0IsT0FBTyxLQUFLLG1DQUFtQyxvQkFBb0IsMENBQTBDLHVCQUF1Qiw0Q0FBNEMsOENBQThDLDZGQUE2RixLQUFLO0FBQ3h3QyxjQUFjO0FBQ2Q7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbXBvbmVudHMvVG9hc3Qvc3R5bGVzLmpzPzczOWIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19tYWtlVGVtcGxhdGVPYmplY3QgPSAodGhpcyAmJiB0aGlzLl9fbWFrZVRlbXBsYXRlT2JqZWN0KSB8fCBmdW5jdGlvbiAoY29va2VkLCByYXcpIHtcbiAgICBpZiAoT2JqZWN0LmRlZmluZVByb3BlcnR5KSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb29rZWQsIFwicmF3XCIsIHsgdmFsdWU6IHJhdyB9KTsgfSBlbHNlIHsgY29va2VkLnJhdyA9IHJhdzsgfVxuICAgIHJldHVybiBjb29rZWQ7XG59O1xuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHMuc3R5bGVzID0gdm9pZCAwO1xudmFyIG5vb3BfdGVtcGxhdGVfMSA9IHJlcXVpcmUoXCIuLi8uLi9oZWxwZXJzL25vb3AtdGVtcGxhdGVcIik7XG52YXIgc3R5bGVzID0gKDAsIG5vb3BfdGVtcGxhdGVfMS5ub29wKSh0ZW1wbGF0ZU9iamVjdF8xIHx8ICh0ZW1wbGF0ZU9iamVjdF8xID0gX19tYWtlVGVtcGxhdGVPYmplY3QoW1wiXFxuICBbZGF0YS1uZXh0anMtdG9hc3RdIHtcXG4gICAgcG9zaXRpb246IGZpeGVkO1xcbiAgICBib3R0b206IHZhcigtLXNpemUtZ2FwLWRvdWJsZSk7XFxuICAgIGxlZnQ6IHZhcigtLXNpemUtZ2FwLWRvdWJsZSk7XFxuICAgIG1heC13aWR0aDogNDIwcHg7XFxuICAgIHotaW5kZXg6IDkwMDA7XFxuICB9XFxuXFxuICBAbWVkaWEgKG1heC13aWR0aDogNDQwcHgpIHtcXG4gICAgW2RhdGEtbmV4dGpzLXRvYXN0XSB7XFxuICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xcbiAgICAgIGxlZnQ6IDV2dztcXG4gICAgfVxcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLXRvYXN0LXdyYXBwZXJdIHtcXG4gICAgcGFkZGluZzogMTZweDtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2l6ZS1nYXAtaGFsZik7XFxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLWJyaWdodC13aGl0ZSk7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktcmVkKTtcXG4gICAgYm94LXNoYWRvdzogMHB4IHZhcigtLXNpemUtZ2FwLWRvdWJsZSkgdmFyKC0tc2l6ZS1nYXAtcXVhZClcXG4gICAgICByZ2JhKDAsIDAsIDAsIDAuMjUpO1xcbiAgfVxcblwiXSwgW1wiXFxuICBbZGF0YS1uZXh0anMtdG9hc3RdIHtcXG4gICAgcG9zaXRpb246IGZpeGVkO1xcbiAgICBib3R0b206IHZhcigtLXNpemUtZ2FwLWRvdWJsZSk7XFxuICAgIGxlZnQ6IHZhcigtLXNpemUtZ2FwLWRvdWJsZSk7XFxuICAgIG1heC13aWR0aDogNDIwcHg7XFxuICAgIHotaW5kZXg6IDkwMDA7XFxuICB9XFxuXFxuICBAbWVkaWEgKG1heC13aWR0aDogNDQwcHgpIHtcXG4gICAgW2RhdGEtbmV4dGpzLXRvYXN0XSB7XFxuICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xcbiAgICAgIGxlZnQ6IDV2dztcXG4gICAgfVxcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLXRvYXN0LXdyYXBwZXJdIHtcXG4gICAgcGFkZGluZzogMTZweDtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2l6ZS1nYXAtaGFsZik7XFxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLWJyaWdodC13aGl0ZSk7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktcmVkKTtcXG4gICAgYm94LXNoYWRvdzogMHB4IHZhcigtLXNpemUtZ2FwLWRvdWJsZSkgdmFyKC0tc2l6ZS1nYXAtcXVhZClcXG4gICAgICByZ2JhKDAsIDAsIDAsIDAuMjUpO1xcbiAgfVxcblwiXSkpKTtcbmV4cG9ydHMuc3R5bGVzID0gc3R5bGVzO1xudmFyIHRlbXBsYXRlT2JqZWN0XzE7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1zdHlsZXMuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/components/Toast/styles.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/container/BuildError.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/container/BuildError.js ***! + \***********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nexports.__esModule = true;\nexports.styles = exports.BuildError = void 0;\nvar React = __importStar(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nvar Dialog_1 = __webpack_require__(/*! ../components/Dialog */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/index.js\");\nvar Overlay_1 = __webpack_require__(/*! ../components/Overlay */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/Overlay/index.js\");\nvar Terminal_1 = __webpack_require__(/*! ../components/Terminal */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/Terminal/index.js\");\nvar noop_template_1 = __webpack_require__(/*! ../helpers/noop-template */ \"./node_modules/@next/react-dev-overlay/lib/internal/helpers/noop-template.js\");\nvar BuildError = function BuildError(_a) {\n var message = _a.message;\n var noop = React.useCallback(function () { }, []);\n return (React.createElement(Overlay_1.Overlay, { fixed: true },\n React.createElement(Dialog_1.Dialog, { type: \"error\", \"aria-labelledby\": \"nextjs__container_build_error_label\", \"aria-describedby\": \"nextjs__container_build_error_desc\", onClose: noop },\n React.createElement(Dialog_1.DialogContent, null,\n React.createElement(Dialog_1.DialogHeader, { className: \"nextjs-container-build-error-header\" },\n React.createElement(\"h4\", { id: \"nextjs__container_build_error_label\" }, \"Failed to compile\")),\n React.createElement(Dialog_1.DialogBody, { className: \"nextjs-container-build-error-body\" },\n React.createElement(Terminal_1.Terminal, { content: message }),\n React.createElement(\"footer\", null,\n React.createElement(\"p\", { id: \"nextjs__container_build_error_desc\" },\n React.createElement(\"small\", null, \"This error occurred during the build process and can only be dismissed by fixing the error.\"))))))));\n};\nexports.BuildError = BuildError;\nexports.styles = (0, noop_template_1.noop)(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\n .nextjs-container-build-error-header > h4 {\\n line-height: 1.5;\\n margin: 0;\\n padding: 0;\\n }\\n\\n .nextjs-container-build-error-body footer {\\n margin-top: var(--size-gap);\\n }\\n .nextjs-container-build-error-body footer p {\\n margin: 0;\\n }\\n\\n .nextjs-container-build-error-body small {\\n color: #757575;\\n }\\n\"], [\"\\n .nextjs-container-build-error-header > h4 {\\n line-height: 1.5;\\n margin: 0;\\n padding: 0;\\n }\\n\\n .nextjs-container-build-error-body footer {\\n margin-top: var(--size-gap);\\n }\\n .nextjs-container-build-error-body footer p {\\n margin: 0;\\n }\\n\\n .nextjs-container-build-error-body small {\\n color: #757575;\\n }\\n\"])));\nvar templateObject_1;\n//# sourceMappingURL=BuildError.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbnRhaW5lci9CdWlsZEVycm9yLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQSxpQ0FBaUMsdUNBQXVDLFlBQVksS0FBSyxPQUFPO0FBQ2hHO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLG9DQUFvQyxnQkFBZ0I7QUFDdkYsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQSwwQ0FBMEMsNEJBQTRCO0FBQ3RFLENBQUM7QUFDRDtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQixjQUFjLEdBQUcsa0JBQWtCO0FBQ25DLHlCQUF5QixtQkFBTyxDQUFDLDRDQUFPO0FBQ3hDLGVBQWUsbUJBQU8sQ0FBQyw0R0FBc0I7QUFDN0MsZ0JBQWdCLG1CQUFPLENBQUMsOEdBQXVCO0FBQy9DLGlCQUFpQixtQkFBTyxDQUFDLGdIQUF3QjtBQUNqRCxzQkFBc0IsbUJBQU8sQ0FBQyw4R0FBMEI7QUFDeEQ7QUFDQTtBQUNBLGdEQUFnRDtBQUNoRCxxREFBcUQsYUFBYTtBQUNsRSwrQ0FBK0Msa0pBQWtKO0FBQ2pNO0FBQ0EsNkRBQTZELGtEQUFrRDtBQUMvRyxnREFBZ0QsMkNBQTJDO0FBQzNGLDJEQUEyRCxnREFBZ0Q7QUFDM0csK0RBQStELGtCQUFrQjtBQUNqRjtBQUNBLG1EQUFtRCwwQ0FBMEM7QUFDN0Y7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQixjQUFjLDJJQUEySSx1QkFBdUIsZ0JBQWdCLGlCQUFpQixLQUFLLGlEQUFpRCxrQ0FBa0MsS0FBSyxpREFBaUQsZ0JBQWdCLEtBQUssZ0RBQWdELHFCQUFxQixLQUFLLHVEQUF1RCx1QkFBdUIsZ0JBQWdCLGlCQUFpQixLQUFLLGlEQUFpRCxrQ0FBa0MsS0FBSyxpREFBaUQsZ0JBQWdCLEtBQUssZ0RBQWdELHFCQUFxQixLQUFLO0FBQzF4QjtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AbmV4dC9yZWFjdC1kZXYtb3ZlcmxheS9saWIvaW50ZXJuYWwvY29udGFpbmVyL0J1aWxkRXJyb3IuanM/N2YyYyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX21ha2VUZW1wbGF0ZU9iamVjdCA9ICh0aGlzICYmIHRoaXMuX19tYWtlVGVtcGxhdGVPYmplY3QpIHx8IGZ1bmN0aW9uIChjb29rZWQsIHJhdykge1xuICAgIGlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvb2tlZCwgXCJyYXdcIiwgeyB2YWx1ZTogcmF3IH0pOyB9IGVsc2UgeyBjb29rZWQucmF3ID0gcmF3OyB9XG4gICAgcmV0dXJuIGNvb2tlZDtcbn07XG52YXIgX19jcmVhdGVCaW5kaW5nID0gKHRoaXMgJiYgdGhpcy5fX2NyZWF0ZUJpbmRpbmcpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfSk7XG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgb1trMl0gPSBtW2tdO1xufSkpO1xudmFyIF9fc2V0TW9kdWxlRGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19zZXRNb2R1bGVEZWZhdWx0KSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCB2KSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIFwiZGVmYXVsdFwiLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2IH0pO1xufSkgOiBmdW5jdGlvbihvLCB2KSB7XG4gICAgb1tcImRlZmF1bHRcIl0gPSB2O1xufSk7XG52YXIgX19pbXBvcnRTdGFyID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydFN0YXIpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSByZXR1cm4gbW9kO1xuICAgIHZhciByZXN1bHQgPSB7fTtcbiAgICBpZiAobW9kICE9IG51bGwpIGZvciAodmFyIGsgaW4gbW9kKSBpZiAoayAhPT0gXCJkZWZhdWx0XCIgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG1vZCwgaykpIF9fY3JlYXRlQmluZGluZyhyZXN1bHQsIG1vZCwgayk7XG4gICAgX19zZXRNb2R1bGVEZWZhdWx0KHJlc3VsdCwgbW9kKTtcbiAgICByZXR1cm4gcmVzdWx0O1xufTtcbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLnN0eWxlcyA9IGV4cG9ydHMuQnVpbGRFcnJvciA9IHZvaWQgMDtcbnZhciBSZWFjdCA9IF9faW1wb3J0U3RhcihyZXF1aXJlKFwicmVhY3RcIikpO1xudmFyIERpYWxvZ18xID0gcmVxdWlyZShcIi4uL2NvbXBvbmVudHMvRGlhbG9nXCIpO1xudmFyIE92ZXJsYXlfMSA9IHJlcXVpcmUoXCIuLi9jb21wb25lbnRzL092ZXJsYXlcIik7XG52YXIgVGVybWluYWxfMSA9IHJlcXVpcmUoXCIuLi9jb21wb25lbnRzL1Rlcm1pbmFsXCIpO1xudmFyIG5vb3BfdGVtcGxhdGVfMSA9IHJlcXVpcmUoXCIuLi9oZWxwZXJzL25vb3AtdGVtcGxhdGVcIik7XG52YXIgQnVpbGRFcnJvciA9IGZ1bmN0aW9uIEJ1aWxkRXJyb3IoX2EpIHtcbiAgICB2YXIgbWVzc2FnZSA9IF9hLm1lc3NhZ2U7XG4gICAgdmFyIG5vb3AgPSBSZWFjdC51c2VDYWxsYmFjayhmdW5jdGlvbiAoKSB7IH0sIFtdKTtcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoT3ZlcmxheV8xLk92ZXJsYXksIHsgZml4ZWQ6IHRydWUgfSxcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChEaWFsb2dfMS5EaWFsb2csIHsgdHlwZTogXCJlcnJvclwiLCBcImFyaWEtbGFiZWxsZWRieVwiOiBcIm5leHRqc19fY29udGFpbmVyX2J1aWxkX2Vycm9yX2xhYmVsXCIsIFwiYXJpYS1kZXNjcmliZWRieVwiOiBcIm5leHRqc19fY29udGFpbmVyX2J1aWxkX2Vycm9yX2Rlc2NcIiwgb25DbG9zZTogbm9vcCB9LFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChEaWFsb2dfMS5EaWFsb2dDb250ZW50LCBudWxsLFxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRGlhbG9nXzEuRGlhbG9nSGVhZGVyLCB7IGNsYXNzTmFtZTogXCJuZXh0anMtY29udGFpbmVyLWJ1aWxkLWVycm9yLWhlYWRlclwiIH0sXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJoNFwiLCB7IGlkOiBcIm5leHRqc19fY29udGFpbmVyX2J1aWxkX2Vycm9yX2xhYmVsXCIgfSwgXCJGYWlsZWQgdG8gY29tcGlsZVwiKSksXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChEaWFsb2dfMS5EaWFsb2dCb2R5LCB7IGNsYXNzTmFtZTogXCJuZXh0anMtY29udGFpbmVyLWJ1aWxkLWVycm9yLWJvZHlcIiB9LFxuICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRlcm1pbmFsXzEuVGVybWluYWwsIHsgY29udGVudDogbWVzc2FnZSB9KSxcbiAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImZvb3RlclwiLCBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInBcIiwgeyBpZDogXCJuZXh0anNfX2NvbnRhaW5lcl9idWlsZF9lcnJvcl9kZXNjXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic21hbGxcIiwgbnVsbCwgXCJUaGlzIGVycm9yIG9jY3VycmVkIGR1cmluZyB0aGUgYnVpbGQgcHJvY2VzcyBhbmQgY2FuIG9ubHkgYmUgZGlzbWlzc2VkIGJ5IGZpeGluZyB0aGUgZXJyb3IuXCIpKSkpKSkpKTtcbn07XG5leHBvcnRzLkJ1aWxkRXJyb3IgPSBCdWlsZEVycm9yO1xuZXhwb3J0cy5zdHlsZXMgPSAoMCwgbm9vcF90ZW1wbGF0ZV8xLm5vb3ApKHRlbXBsYXRlT2JqZWN0XzEgfHwgKHRlbXBsYXRlT2JqZWN0XzEgPSBfX21ha2VUZW1wbGF0ZU9iamVjdChbXCJcXG4gIC5uZXh0anMtY29udGFpbmVyLWJ1aWxkLWVycm9yLWhlYWRlciA+IGg0IHtcXG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgfVxcblxcbiAgLm5leHRqcy1jb250YWluZXItYnVpbGQtZXJyb3ItYm9keSBmb290ZXIge1xcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1zaXplLWdhcCk7XFxuICB9XFxuICAubmV4dGpzLWNvbnRhaW5lci1idWlsZC1lcnJvci1ib2R5IGZvb3RlciBwIHtcXG4gICAgbWFyZ2luOiAwO1xcbiAgfVxcblxcbiAgLm5leHRqcy1jb250YWluZXItYnVpbGQtZXJyb3ItYm9keSBzbWFsbCB7XFxuICAgIGNvbG9yOiAjNzU3NTc1O1xcbiAgfVxcblwiXSwgW1wiXFxuICAubmV4dGpzLWNvbnRhaW5lci1idWlsZC1lcnJvci1oZWFkZXIgPiBoNCB7XFxuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogMDtcXG4gIH1cXG5cXG4gIC5uZXh0anMtY29udGFpbmVyLWJ1aWxkLWVycm9yLWJvZHkgZm9vdGVyIHtcXG4gICAgbWFyZ2luLXRvcDogdmFyKC0tc2l6ZS1nYXApO1xcbiAgfVxcbiAgLm5leHRqcy1jb250YWluZXItYnVpbGQtZXJyb3ItYm9keSBmb290ZXIgcCB7XFxuICAgIG1hcmdpbjogMDtcXG4gIH1cXG5cXG4gIC5uZXh0anMtY29udGFpbmVyLWJ1aWxkLWVycm9yLWJvZHkgc21hbGwge1xcbiAgICBjb2xvcjogIzc1NzU3NTtcXG4gIH1cXG5cIl0pKSk7XG52YXIgdGVtcGxhdGVPYmplY3RfMTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUJ1aWxkRXJyb3IuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/container/BuildError.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/container/Errors.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/container/Errors.js ***! + \*******************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nexports.__esModule = true;\nexports.styles = exports.Errors = void 0;\nvar React = __importStar(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nvar bus_1 = __webpack_require__(/*! ../bus */ \"./node_modules/@next/react-dev-overlay/lib/internal/bus.js\");\nvar Dialog_1 = __webpack_require__(/*! ../components/Dialog */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/index.js\");\nvar LeftRightDialogHeader_1 = __webpack_require__(/*! ../components/LeftRightDialogHeader */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/LeftRightDialogHeader/index.js\");\nvar Overlay_1 = __webpack_require__(/*! ../components/Overlay */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/Overlay/index.js\");\nvar Toast_1 = __webpack_require__(/*! ../components/Toast */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/Toast/index.js\");\nvar nodeStackFrames_1 = __webpack_require__(/*! ../helpers/nodeStackFrames */ \"./node_modules/@next/react-dev-overlay/lib/internal/helpers/nodeStackFrames.js\");\nvar noop_template_1 = __webpack_require__(/*! ../helpers/noop-template */ \"./node_modules/@next/react-dev-overlay/lib/internal/helpers/noop-template.js\");\nvar stack_frame_1 = __webpack_require__(/*! ../helpers/stack-frame */ \"./node_modules/@next/react-dev-overlay/lib/internal/helpers/stack-frame.js\");\nvar RuntimeError_1 = __webpack_require__(/*! ./RuntimeError */ \"./node_modules/@next/react-dev-overlay/lib/internal/container/RuntimeError.js\");\nfunction getErrorSignature(ev) {\n var event = ev.event;\n switch (event.type) {\n case bus_1.TYPE_UNHANDLED_ERROR:\n case bus_1.TYPE_UNHANDLED_REJECTION: {\n return event.reason.name + \"::\" + event.reason.message + \"::\" + event.reason.stack;\n }\n default: {\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var _ = event;\n return '';\n}\nvar HotlinkedText = function HotlinkedText(props) {\n var text = props.text;\n var linkRegex = /https?:\\/\\/[^\\s/$.?#].[^\\s\"]*/i;\n return (React.createElement(React.Fragment, null, linkRegex.test(text)\n ? text.split(' ').map(function (word, index, array) {\n if (linkRegex.test(word)) {\n return (React.createElement(React.Fragment, { key: \"link-\" + index },\n React.createElement(\"a\", { href: word }, word),\n index === array.length - 1 ? '' : ' '));\n }\n return index === array.length - 1 ? (React.createElement(React.Fragment, { key: \"text-\" + index }, word)) : (React.createElement(React.Fragment, { key: \"text-\" + index },\n word,\n \" \"));\n })\n : text));\n};\nfunction getErrorByType(ev) {\n return __awaiter(this, void 0, void 0, function () {\n var id, event, _a, _;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n id = ev.id, event = ev.event;\n _a = event.type;\n switch (_a) {\n case bus_1.TYPE_UNHANDLED_ERROR: return [3 /*break*/, 1];\n case bus_1.TYPE_UNHANDLED_REJECTION: return [3 /*break*/, 1];\n }\n return [3 /*break*/, 3];\n case 1:\n _b = {\n id: id,\n runtime: true,\n error: event.reason\n };\n return [4 /*yield*/, (0, stack_frame_1.getOriginalStackFrames)((0, nodeStackFrames_1.isNodeError)(event.reason), event.frames)];\n case 2: return [2 /*return*/, (_b.frames = _c.sent(),\n _b)];\n case 3:\n {\n return [3 /*break*/, 4];\n }\n _c.label = 4;\n case 4:\n _ = event;\n throw new Error('type system invariant violation');\n }\n });\n });\n}\nvar Errors = function Errors(_a) {\n var errors = _a.errors;\n var _b = __read(React.useState({}), 2), lookups = _b[0], setLookups = _b[1];\n var _c = __read(React.useMemo(function () {\n var ready = [];\n var next = null;\n // Ensure errors are displayed in the order they occurred in:\n for (var idx = 0; idx < errors.length; ++idx) {\n var e = errors[idx];\n var id = e.id;\n if (id in lookups) {\n ready.push(lookups[id]);\n continue;\n }\n // Check for duplicate errors\n if (idx > 0) {\n var prev = errors[idx - 1];\n if (getErrorSignature(prev) === getErrorSignature(e)) {\n continue;\n }\n }\n next = e;\n break;\n }\n return [ready, next];\n }, [errors, lookups]), 2), readyErrors = _c[0], nextError = _c[1];\n var isLoading = React.useMemo(function () {\n return readyErrors.length < 1 && Boolean(errors.length);\n }, [errors.length, readyErrors.length]);\n React.useEffect(function () {\n if (nextError == null) {\n return;\n }\n var mounted = true;\n getErrorByType(nextError).then(function (resolved) {\n // We don't care if the desired error changed while we were resolving,\n // thus we're not tracking it using a ref. Once the work has been done,\n // we'll store it.\n if (mounted) {\n setLookups(function (m) {\n var _a;\n return (__assign(__assign({}, m), (_a = {}, _a[resolved.id] = resolved, _a)));\n });\n }\n }, function () {\n // TODO: handle this, though an edge case\n });\n return function () {\n mounted = false;\n };\n }, [nextError]);\n var _d = __read(React.useState(false), 2), isMinimized = _d[0], setMinimized = _d[1];\n var _e = __read(React.useState(0), 2), activeIdx = _e[0], setActiveIndex = _e[1];\n var previous = React.useCallback(function (e) {\n e === null || e === void 0 ? void 0 : e.preventDefault();\n setActiveIndex(function (v) { return Math.max(0, v - 1); });\n }, []);\n var next = React.useCallback(function (e) {\n e === null || e === void 0 ? void 0 : e.preventDefault();\n setActiveIndex(function (v) {\n return Math.max(0, Math.min(readyErrors.length - 1, v + 1));\n });\n }, [readyErrors.length]);\n var activeError = React.useMemo(function () { var _a; return (_a = readyErrors[activeIdx]) !== null && _a !== void 0 ? _a : null; }, [activeIdx, readyErrors]);\n // Reset component state when there are no errors to be displayed.\n // This should never happen, but lets handle it.\n React.useEffect(function () {\n if (errors.length < 1) {\n setLookups({});\n setMinimized(false);\n setActiveIndex(0);\n }\n }, [errors.length]);\n var minimize = React.useCallback(function (e) {\n e === null || e === void 0 ? void 0 : e.preventDefault();\n setMinimized(true);\n }, []);\n var reopen = React.useCallback(function (e) {\n e === null || e === void 0 ? void 0 : e.preventDefault();\n setMinimized(false);\n }, []);\n // This component shouldn't be rendered with no errors, but if it is, let's\n // handle it gracefully by rendering nothing.\n if (errors.length < 1 || activeError == null) {\n return null;\n }\n if (isLoading) {\n // TODO: better loading state\n return React.createElement(Overlay_1.Overlay, null);\n }\n if (isMinimized) {\n return (React.createElement(Toast_1.Toast, { className: \"nextjs-toast-errors-parent\", onClick: reopen },\n React.createElement(\"div\", { className: \"nextjs-toast-errors\" },\n React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", stroke: \"currentColor\", strokeWidth: \"2\", strokeLinecap: \"round\", strokeLinejoin: \"round\" },\n React.createElement(\"circle\", { cx: \"12\", cy: \"12\", r: \"10\" }),\n React.createElement(\"line\", { x1: \"12\", y1: \"8\", x2: \"12\", y2: \"12\" }),\n React.createElement(\"line\", { x1: \"12\", y1: \"16\", x2: \"12.01\", y2: \"16\" })),\n React.createElement(\"span\", null,\n readyErrors.length,\n \" error\",\n readyErrors.length > 1 ? 's' : ''))));\n }\n var isServerError = (0, nodeStackFrames_1.isNodeError)(activeError.error);\n return (React.createElement(Overlay_1.Overlay, null,\n React.createElement(Dialog_1.Dialog, { type: \"error\", \"aria-labelledby\": \"nextjs__container_errors_label\", \"aria-describedby\": \"nextjs__container_errors_desc\", onClose: isServerError ? undefined : minimize },\n React.createElement(Dialog_1.DialogContent, null,\n React.createElement(Dialog_1.DialogHeader, { className: \"nextjs-container-errors-header\" },\n React.createElement(LeftRightDialogHeader_1.LeftRightDialogHeader, { previous: activeIdx > 0 ? previous : null, next: activeIdx < readyErrors.length - 1 ? next : null, close: isServerError ? undefined : minimize },\n React.createElement(\"small\", null,\n React.createElement(\"span\", null, activeIdx + 1),\n \" of\",\n ' ',\n React.createElement(\"span\", null, readyErrors.length),\n \" unhandled error\",\n readyErrors.length < 2 ? '' : 's')),\n React.createElement(\"h1\", { id: \"nextjs__container_errors_label\" }, isServerError ? 'Server Error' : 'Unhandled Runtime Error'),\n React.createElement(\"p\", { id: \"nextjs__container_errors_desc\" },\n activeError.error.name,\n \":\",\n ' ',\n React.createElement(HotlinkedText, { text: activeError.error.message })),\n isServerError ? (React.createElement(\"div\", null,\n React.createElement(\"small\", null, \"This error happened while generating the page. Any console logs will be displayed in the terminal window.\"))) : undefined),\n React.createElement(Dialog_1.DialogBody, { className: \"nextjs-container-errors-body\" },\n React.createElement(RuntimeError_1.RuntimeError, { key: activeError.id.toString(), error: activeError }))))));\n};\nexports.Errors = Errors;\nexports.styles = (0, noop_template_1.noop)(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\n .nextjs-container-errors-header > h1 {\\n font-size: var(--size-font-big);\\n line-height: var(--size-font-bigger);\\n font-weight: bold;\\n margin: 0;\\n margin-top: calc(var(--size-gap-double) + var(--size-gap-half));\\n }\\n .nextjs-container-errors-header small {\\n font-size: var(--size-font-small);\\n color: var(--color-accents-1);\\n margin-left: var(--size-gap-double);\\n }\\n .nextjs-container-errors-header small > span {\\n font-family: var(--font-stack-monospace);\\n }\\n .nextjs-container-errors-header > p {\\n font-family: var(--font-stack-monospace);\\n font-size: var(--size-font-small);\\n line-height: var(--size-font-big);\\n font-weight: bold;\\n margin: 0;\\n margin-top: var(--size-gap-half);\\n color: var(--color-ansi-red);\\n white-space: pre-wrap;\\n }\\n .nextjs-container-errors-header > div > small {\\n margin: 0;\\n margin-top: var(--size-gap-half);\\n }\\n .nextjs-container-errors-header > p > a {\\n color: var(--color-ansi-red);\\n }\\n\\n .nextjs-container-errors-body > h5:not(:first-child) {\\n margin-top: calc(var(--size-gap-double) + var(--size-gap));\\n }\\n .nextjs-container-errors-body > h5 {\\n margin-bottom: var(--size-gap);\\n }\\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: var(--size-gap);\\n }\\n\"], [\"\\n .nextjs-container-errors-header > h1 {\\n font-size: var(--size-font-big);\\n line-height: var(--size-font-bigger);\\n font-weight: bold;\\n margin: 0;\\n margin-top: calc(var(--size-gap-double) + var(--size-gap-half));\\n }\\n .nextjs-container-errors-header small {\\n font-size: var(--size-font-small);\\n color: var(--color-accents-1);\\n margin-left: var(--size-gap-double);\\n }\\n .nextjs-container-errors-header small > span {\\n font-family: var(--font-stack-monospace);\\n }\\n .nextjs-container-errors-header > p {\\n font-family: var(--font-stack-monospace);\\n font-size: var(--size-font-small);\\n line-height: var(--size-font-big);\\n font-weight: bold;\\n margin: 0;\\n margin-top: var(--size-gap-half);\\n color: var(--color-ansi-red);\\n white-space: pre-wrap;\\n }\\n .nextjs-container-errors-header > div > small {\\n margin: 0;\\n margin-top: var(--size-gap-half);\\n }\\n .nextjs-container-errors-header > p > a {\\n color: var(--color-ansi-red);\\n }\\n\\n .nextjs-container-errors-body > h5:not(:first-child) {\\n margin-top: calc(var(--size-gap-double) + var(--size-gap));\\n }\\n .nextjs-container-errors-body > h5 {\\n margin-bottom: var(--size-gap);\\n }\\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: var(--size-gap);\\n }\\n\"])));\nvar templateObject_1;\n//# sourceMappingURL=Errors.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbnRhaW5lci9FcnJvcnMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBLGlDQUFpQyx1Q0FBdUMsWUFBWSxLQUFLLE9BQU87QUFDaEc7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpREFBaUQsT0FBTztBQUN4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQyxvQ0FBb0MsZ0JBQWdCO0FBQ3ZGLENBQUM7QUFDRDtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0EsMENBQTBDLDRCQUE0QjtBQUN0RSxDQUFDO0FBQ0Q7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QiwrREFBK0QsaUJBQWlCO0FBQzVHO0FBQ0Esb0NBQW9DLE1BQU0sK0JBQStCLFlBQVk7QUFDckYsbUNBQW1DLE1BQU0sbUNBQW1DLFlBQVk7QUFDeEYsZ0NBQWdDO0FBQ2hDO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxjQUFjLDZCQUE2QiwwQkFBMEIsY0FBYyxxQkFBcUI7QUFDeEcsaUJBQWlCLG9EQUFvRCxxRUFBcUUsY0FBYztBQUN4Six1QkFBdUIsc0JBQXNCO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdDQUF3QztBQUN4QyxtQ0FBbUMsU0FBUztBQUM1QyxtQ0FBbUMsV0FBVyxVQUFVO0FBQ3hELDBDQUEwQyxjQUFjO0FBQ3hEO0FBQ0EsOEdBQThHLE9BQU87QUFDckgsaUZBQWlGLGlCQUFpQjtBQUNsRyx5REFBeUQsZ0JBQWdCLFFBQVE7QUFDakYsK0NBQStDLGdCQUFnQixnQkFBZ0I7QUFDL0U7QUFDQSxrQ0FBa0M7QUFDbEM7QUFDQTtBQUNBLFVBQVUsWUFBWSxhQUFhLFNBQVMsVUFBVTtBQUN0RCxvQ0FBb0MsU0FBUztBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsTUFBTTtBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEIsY0FBYyxHQUFHLGNBQWM7QUFDL0IseUJBQXlCLG1CQUFPLENBQUMsNENBQU87QUFDeEMsWUFBWSxtQkFBTyxDQUFDLDBFQUFRO0FBQzVCLGVBQWUsbUJBQU8sQ0FBQyw0R0FBc0I7QUFDN0MsOEJBQThCLG1CQUFPLENBQUMsMElBQXFDO0FBQzNFLGdCQUFnQixtQkFBTyxDQUFDLDhHQUF1QjtBQUMvQyxjQUFjLG1CQUFPLENBQUMsMEdBQXFCO0FBQzNDLHdCQUF3QixtQkFBTyxDQUFDLGtIQUE0QjtBQUM1RCxzQkFBc0IsbUJBQU8sQ0FBQyw4R0FBMEI7QUFDeEQsb0JBQW9CLG1CQUFPLENBQUMsMEdBQXdCO0FBQ3BELHFCQUFxQixtQkFBTyxDQUFDLHFHQUFnQjtBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOERBQThELHNCQUFzQjtBQUNwRiwrQ0FBK0MsWUFBWTtBQUMzRDtBQUNBO0FBQ0EsdUZBQXVGLHNCQUFzQixrREFBa0Qsc0JBQXNCO0FBQ3JMO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLHFDQUFxQztBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQixxQkFBcUI7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdEQUFnRCxjQUFjO0FBQzlELGlCQUFpQjtBQUNqQjtBQUNBLFNBQVM7QUFDVDtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQ0FBc0MsNEJBQTRCO0FBQ2xFLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxLQUFLO0FBQ0wsa0RBQWtELFFBQVEsNkVBQTZFO0FBQ3ZJO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscURBQXFELDBEQUEwRDtBQUMvRyx5Q0FBeUMsa0NBQWtDO0FBQzNFLDZDQUE2QywrTEFBK0w7QUFDNU8sb0RBQW9ELDZCQUE2QjtBQUNqRixrREFBa0QsdUNBQXVDO0FBQ3pGLGtEQUFrRCwyQ0FBMkM7QUFDN0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0Msd0tBQXdLO0FBQ3ZOO0FBQ0EsNkRBQTZELDZDQUE2QztBQUMxRyx5RkFBeUYsZ0pBQWdKO0FBQ3pPO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0RBQWdELHNDQUFzQztBQUN0RiwrQ0FBK0MscUNBQXFDO0FBQ3BGO0FBQ0E7QUFDQTtBQUNBLDZEQUE2RCxpQ0FBaUM7QUFDOUY7QUFDQTtBQUNBLDJEQUEyRCwyQ0FBMkM7QUFDdEcsdUVBQXVFLG9EQUFvRDtBQUMzSDtBQUNBLGNBQWM7QUFDZCxjQUFjLHNJQUFzSSxzQ0FBc0MsMkNBQTJDLHdCQUF3QixnQkFBZ0Isc0VBQXNFLEtBQUssMkNBQTJDLHdDQUF3QyxvQ0FBb0MsMENBQTBDLEtBQUssa0RBQWtELCtDQUErQyxLQUFLLHlDQUF5QywrQ0FBK0Msd0NBQXdDLHdDQUF3Qyx3QkFBd0IsZ0JBQWdCLHVDQUF1QyxtQ0FBbUMsNEJBQTRCLEtBQUssbURBQW1ELGdCQUFnQix1Q0FBdUMsS0FBSyw2Q0FBNkMsbUNBQW1DLEtBQUssNERBQTRELGlFQUFpRSxLQUFLLHdDQUF3QyxxQ0FBcUMsS0FBSyxtQ0FBbUMsc0JBQXNCLHNDQUFzQyxLQUFLLHVDQUF1Qyw0QkFBNEIsS0FBSywwQkFBMEIsb0JBQW9CLDBCQUEwQixrQ0FBa0MsS0FBSyxnQ0FBZ0Msb0NBQW9DLEtBQUssa0RBQWtELHNDQUFzQywyQ0FBMkMsd0JBQXdCLGdCQUFnQixzRUFBc0UsS0FBSywyQ0FBMkMsd0NBQXdDLG9DQUFvQywwQ0FBMEMsS0FBSyxrREFBa0QsK0NBQStDLEtBQUsseUNBQXlDLCtDQUErQyx3Q0FBd0Msd0NBQXdDLHdCQUF3QixnQkFBZ0IsdUNBQXVDLG1DQUFtQyw0QkFBNEIsS0FBSyxtREFBbUQsZ0JBQWdCLHVDQUF1QyxLQUFLLDZDQUE2QyxtQ0FBbUMsS0FBSyw0REFBNEQsaUVBQWlFLEtBQUssd0NBQXdDLHFDQUFxQyxLQUFLLG1DQUFtQyxzQkFBc0Isc0NBQXNDLEtBQUssdUNBQXVDLDRCQUE0QixLQUFLLDBCQUEwQixvQkFBb0IsMEJBQTBCLGtDQUFrQyxLQUFLLGdDQUFnQyxvQ0FBb0MsS0FBSztBQUNwdEc7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbnRhaW5lci9FcnJvcnMuanM/MTc2YiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX21ha2VUZW1wbGF0ZU9iamVjdCA9ICh0aGlzICYmIHRoaXMuX19tYWtlVGVtcGxhdGVPYmplY3QpIHx8IGZ1bmN0aW9uIChjb29rZWQsIHJhdykge1xuICAgIGlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvb2tlZCwgXCJyYXdcIiwgeyB2YWx1ZTogcmF3IH0pOyB9IGVsc2UgeyBjb29rZWQucmF3ID0gcmF3OyB9XG4gICAgcmV0dXJuIGNvb2tlZDtcbn07XG52YXIgX19hc3NpZ24gPSAodGhpcyAmJiB0aGlzLl9fYXNzaWduKSB8fCBmdW5jdGlvbiAoKSB7XG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKVxuICAgICAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0O1xuICAgIH07XG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59O1xudmFyIF9fY3JlYXRlQmluZGluZyA9ICh0aGlzICYmIHRoaXMuX19jcmVhdGVCaW5kaW5nKSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH0pO1xufSkgOiAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIG9bazJdID0gbVtrXTtcbn0pKTtcbnZhciBfX3NldE1vZHVsZURlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9fc2V0TW9kdWxlRGVmYXVsdCkgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgdikge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBcImRlZmF1bHRcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdiB9KTtcbn0pIDogZnVuY3Rpb24obywgdikge1xuICAgIG9bXCJkZWZhdWx0XCJdID0gdjtcbn0pO1xudmFyIF9faW1wb3J0U3RhciA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnRTdGFyKSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDtcbiAgICB2YXIgcmVzdWx0ID0ge307XG4gICAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrIGluIG1vZCkgaWYgKGsgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChtb2QsIGspKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGspO1xuICAgIF9fc2V0TW9kdWxlRGVmYXVsdChyZXN1bHQsIG1vZCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG52YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbnZhciBfX2dlbmVyYXRvciA9ICh0aGlzICYmIHRoaXMuX19nZW5lcmF0b3IpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBib2R5KSB7XG4gICAgdmFyIF8gPSB7IGxhYmVsOiAwLCBzZW50OiBmdW5jdGlvbigpIHsgaWYgKHRbMF0gJiAxKSB0aHJvdyB0WzFdOyByZXR1cm4gdFsxXTsgfSwgdHJ5czogW10sIG9wczogW10gfSwgZiwgeSwgdCwgZztcbiAgICByZXR1cm4gZyA9IHsgbmV4dDogdmVyYigwKSwgXCJ0aHJvd1wiOiB2ZXJiKDEpLCBcInJldHVyblwiOiB2ZXJiKDIpIH0sIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzOyB9KSwgZztcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgcmV0dXJuIGZ1bmN0aW9uICh2KSB7IHJldHVybiBzdGVwKFtuLCB2XSk7IH07IH1cbiAgICBmdW5jdGlvbiBzdGVwKG9wKSB7XG4gICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcbiAgICAgICAgd2hpbGUgKF8pIHRyeSB7XG4gICAgICAgICAgICBpZiAoZiA9IDEsIHkgJiYgKHQgPSBvcFswXSAmIDIgPyB5W1wicmV0dXJuXCJdIDogb3BbMF0gPyB5W1widGhyb3dcIl0gfHwgKCh0ID0geVtcInJldHVyblwiXSkgJiYgdC5jYWxsKHkpLCAwKSA6IHkubmV4dCkgJiYgISh0ID0gdC5jYWxsKHksIG9wWzFdKSkuZG9uZSkgcmV0dXJuIHQ7XG4gICAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gW29wWzBdICYgMiwgdC52YWx1ZV07XG4gICAgICAgICAgICBzd2l0Y2ggKG9wWzBdKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAwOiBjYXNlIDE6IHQgPSBvcDsgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSA0OiBfLmxhYmVsKys7IHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTtcbiAgICAgICAgICAgICAgICBjYXNlIDU6IF8ubGFiZWwrKzsgeSA9IG9wWzFdOyBvcCA9IFswXTsgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSA3OiBvcCA9IF8ub3BzLnBvcCgpOyBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIGlmICghKHQgPSBfLnRyeXMsIHQgPSB0Lmxlbmd0aCA+IDAgJiYgdFt0Lmxlbmd0aCAtIDFdKSAmJiAob3BbMF0gPT09IDYgfHwgb3BbMF0gPT09IDIpKSB7IF8gPSAwOyBjb250aW51ZTsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDMgJiYgKCF0IHx8IChvcFsxXSA+IHRbMF0gJiYgb3BbMV0gPCB0WzNdKSkpIHsgXy5sYWJlbCA9IG9wWzFdOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDYgJiYgXy5sYWJlbCA8IHRbMV0pIHsgXy5sYWJlbCA9IHRbMV07IHQgPSBvcDsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHQgJiYgXy5sYWJlbCA8IHRbMl0pIHsgXy5sYWJlbCA9IHRbMl07IF8ub3BzLnB1c2gob3ApOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodFsyXSkgXy5vcHMucG9wKCk7XG4gICAgICAgICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcCA9IGJvZHkuY2FsbCh0aGlzQXJnLCBfKTtcbiAgICAgICAgfSBjYXRjaCAoZSkgeyBvcCA9IFs2LCBlXTsgeSA9IDA7IH0gZmluYWxseSB7IGYgPSB0ID0gMDsgfVxuICAgICAgICBpZiAob3BbMF0gJiA1KSB0aHJvdyBvcFsxXTsgcmV0dXJuIHsgdmFsdWU6IG9wWzBdID8gb3BbMV0gOiB2b2lkIDAsIGRvbmU6IHRydWUgfTtcbiAgICB9XG59O1xudmFyIF9fcmVhZCA9ICh0aGlzICYmIHRoaXMuX19yZWFkKSB8fCBmdW5jdGlvbiAobywgbikge1xuICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9bU3ltYm9sLml0ZXJhdG9yXTtcbiAgICBpZiAoIW0pIHJldHVybiBvO1xuICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlO1xuICAgIHRyeSB7XG4gICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpO1xuICAgIH1cbiAgICBjYXRjaCAoZXJyb3IpIHsgZSA9IHsgZXJyb3I6IGVycm9yIH07IH1cbiAgICBmaW5hbGx5IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpW1wicmV0dXJuXCJdKSkgbS5jYWxsKGkpO1xuICAgICAgICB9XG4gICAgICAgIGZpbmFsbHkgeyBpZiAoZSkgdGhyb3cgZS5lcnJvcjsgfVxuICAgIH1cbiAgICByZXR1cm4gYXI7XG59O1xuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHMuc3R5bGVzID0gZXhwb3J0cy5FcnJvcnMgPSB2b2lkIDA7XG52YXIgUmVhY3QgPSBfX2ltcG9ydFN0YXIocmVxdWlyZShcInJlYWN0XCIpKTtcbnZhciBidXNfMSA9IHJlcXVpcmUoXCIuLi9idXNcIik7XG52YXIgRGlhbG9nXzEgPSByZXF1aXJlKFwiLi4vY29tcG9uZW50cy9EaWFsb2dcIik7XG52YXIgTGVmdFJpZ2h0RGlhbG9nSGVhZGVyXzEgPSByZXF1aXJlKFwiLi4vY29tcG9uZW50cy9MZWZ0UmlnaHREaWFsb2dIZWFkZXJcIik7XG52YXIgT3ZlcmxheV8xID0gcmVxdWlyZShcIi4uL2NvbXBvbmVudHMvT3ZlcmxheVwiKTtcbnZhciBUb2FzdF8xID0gcmVxdWlyZShcIi4uL2NvbXBvbmVudHMvVG9hc3RcIik7XG52YXIgbm9kZVN0YWNrRnJhbWVzXzEgPSByZXF1aXJlKFwiLi4vaGVscGVycy9ub2RlU3RhY2tGcmFtZXNcIik7XG52YXIgbm9vcF90ZW1wbGF0ZV8xID0gcmVxdWlyZShcIi4uL2hlbHBlcnMvbm9vcC10ZW1wbGF0ZVwiKTtcbnZhciBzdGFja19mcmFtZV8xID0gcmVxdWlyZShcIi4uL2hlbHBlcnMvc3RhY2stZnJhbWVcIik7XG52YXIgUnVudGltZUVycm9yXzEgPSByZXF1aXJlKFwiLi9SdW50aW1lRXJyb3JcIik7XG5mdW5jdGlvbiBnZXRFcnJvclNpZ25hdHVyZShldikge1xuICAgIHZhciBldmVudCA9IGV2LmV2ZW50O1xuICAgIHN3aXRjaCAoZXZlbnQudHlwZSkge1xuICAgICAgICBjYXNlIGJ1c18xLlRZUEVfVU5IQU5ETEVEX0VSUk9SOlxuICAgICAgICBjYXNlIGJ1c18xLlRZUEVfVU5IQU5ETEVEX1JFSkVDVElPTjoge1xuICAgICAgICAgICAgcmV0dXJuIGV2ZW50LnJlYXNvbi5uYW1lICsgXCI6OlwiICsgZXZlbnQucmVhc29uLm1lc3NhZ2UgKyBcIjo6XCIgKyBldmVudC5yZWFzb24uc3RhY2s7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICB2YXIgXyA9IGV2ZW50O1xuICAgIHJldHVybiAnJztcbn1cbnZhciBIb3RsaW5rZWRUZXh0ID0gZnVuY3Rpb24gSG90bGlua2VkVGV4dChwcm9wcykge1xuICAgIHZhciB0ZXh0ID0gcHJvcHMudGV4dDtcbiAgICB2YXIgbGlua1JlZ2V4ID0gL2h0dHBzPzpcXC9cXC9bXlxccy8kLj8jXS5bXlxcc1wiXSovaTtcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3QuRnJhZ21lbnQsIG51bGwsIGxpbmtSZWdleC50ZXN0KHRleHQpXG4gICAgICAgID8gdGV4dC5zcGxpdCgnICcpLm1hcChmdW5jdGlvbiAod29yZCwgaW5kZXgsIGFycmF5KSB7XG4gICAgICAgICAgICBpZiAobGlua1JlZ2V4LnRlc3Qod29yZCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3QuRnJhZ21lbnQsIHsga2V5OiBcImxpbmstXCIgKyBpbmRleCB9LFxuICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiYVwiLCB7IGhyZWY6IHdvcmQgfSwgd29yZCksXG4gICAgICAgICAgICAgICAgICAgIGluZGV4ID09PSBhcnJheS5sZW5ndGggLSAxID8gJycgOiAnICcpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBpbmRleCA9PT0gYXJyYXkubGVuZ3RoIC0gMSA/IChSZWFjdC5jcmVhdGVFbGVtZW50KFJlYWN0LkZyYWdtZW50LCB7IGtleTogXCJ0ZXh0LVwiICsgaW5kZXggfSwgd29yZCkpIDogKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3QuRnJhZ21lbnQsIHsga2V5OiBcInRleHQtXCIgKyBpbmRleCB9LFxuICAgICAgICAgICAgICAgIHdvcmQsXG4gICAgICAgICAgICAgICAgXCIgXCIpKTtcbiAgICAgICAgfSlcbiAgICAgICAgOiB0ZXh0KSk7XG59O1xuZnVuY3Rpb24gZ2V0RXJyb3JCeVR5cGUoZXYpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBpZCwgZXZlbnQsIF9hLCBfO1xuICAgICAgICB2YXIgX2I7XG4gICAgICAgIHJldHVybiBfX2dlbmVyYXRvcih0aGlzLCBmdW5jdGlvbiAoX2MpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoX2MubGFiZWwpIHtcbiAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgIGlkID0gZXYuaWQsIGV2ZW50ID0gZXYuZXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgIF9hID0gZXZlbnQudHlwZTtcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChfYSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBidXNfMS5UWVBFX1VOSEFORExFRF9FUlJPUjogcmV0dXJuIFszIC8qYnJlYWsqLywgMV07XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIGJ1c18xLlRZUEVfVU5IQU5ETEVEX1JFSkVDVElPTjogcmV0dXJuIFszIC8qYnJlYWsqLywgMV07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFszIC8qYnJlYWsqLywgM107XG4gICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICBfYiA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJ1bnRpbWU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogZXZlbnQucmVhc29uXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbNCAvKnlpZWxkKi8sICgwLCBzdGFja19mcmFtZV8xLmdldE9yaWdpbmFsU3RhY2tGcmFtZXMpKCgwLCBub2RlU3RhY2tGcmFtZXNfMS5pc05vZGVFcnJvcikoZXZlbnQucmVhc29uKSwgZXZlbnQuZnJhbWVzKV07XG4gICAgICAgICAgICAgICAgY2FzZSAyOiByZXR1cm4gWzIgLypyZXR1cm4qLywgKF9iLmZyYW1lcyA9IF9jLnNlbnQoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF9iKV07XG4gICAgICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzMgLypicmVhayovLCA0XTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBfYy5sYWJlbCA9IDQ7XG4gICAgICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgICAgICAgICBfID0gZXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigndHlwZSBzeXN0ZW0gaW52YXJpYW50IHZpb2xhdGlvbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcbn1cbnZhciBFcnJvcnMgPSBmdW5jdGlvbiBFcnJvcnMoX2EpIHtcbiAgICB2YXIgZXJyb3JzID0gX2EuZXJyb3JzO1xuICAgIHZhciBfYiA9IF9fcmVhZChSZWFjdC51c2VTdGF0ZSh7fSksIDIpLCBsb29rdXBzID0gX2JbMF0sIHNldExvb2t1cHMgPSBfYlsxXTtcbiAgICB2YXIgX2MgPSBfX3JlYWQoUmVhY3QudXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciByZWFkeSA9IFtdO1xuICAgICAgICB2YXIgbmV4dCA9IG51bGw7XG4gICAgICAgIC8vIEVuc3VyZSBlcnJvcnMgYXJlIGRpc3BsYXllZCBpbiB0aGUgb3JkZXIgdGhleSBvY2N1cnJlZCBpbjpcbiAgICAgICAgZm9yICh2YXIgaWR4ID0gMDsgaWR4IDwgZXJyb3JzLmxlbmd0aDsgKytpZHgpIHtcbiAgICAgICAgICAgIHZhciBlID0gZXJyb3JzW2lkeF07XG4gICAgICAgICAgICB2YXIgaWQgPSBlLmlkO1xuICAgICAgICAgICAgaWYgKGlkIGluIGxvb2t1cHMpIHtcbiAgICAgICAgICAgICAgICByZWFkeS5wdXNoKGxvb2t1cHNbaWRdKTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIENoZWNrIGZvciBkdXBsaWNhdGUgZXJyb3JzXG4gICAgICAgICAgICBpZiAoaWR4ID4gMCkge1xuICAgICAgICAgICAgICAgIHZhciBwcmV2ID0gZXJyb3JzW2lkeCAtIDFdO1xuICAgICAgICAgICAgICAgIGlmIChnZXRFcnJvclNpZ25hdHVyZShwcmV2KSA9PT0gZ2V0RXJyb3JTaWduYXR1cmUoZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbmV4dCA9IGU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW3JlYWR5LCBuZXh0XTtcbiAgICB9LCBbZXJyb3JzLCBsb29rdXBzXSksIDIpLCByZWFkeUVycm9ycyA9IF9jWzBdLCBuZXh0RXJyb3IgPSBfY1sxXTtcbiAgICB2YXIgaXNMb2FkaW5nID0gUmVhY3QudXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiByZWFkeUVycm9ycy5sZW5ndGggPCAxICYmIEJvb2xlYW4oZXJyb3JzLmxlbmd0aCk7XG4gICAgfSwgW2Vycm9ycy5sZW5ndGgsIHJlYWR5RXJyb3JzLmxlbmd0aF0pO1xuICAgIFJlYWN0LnVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmIChuZXh0RXJyb3IgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhciBtb3VudGVkID0gdHJ1ZTtcbiAgICAgICAgZ2V0RXJyb3JCeVR5cGUobmV4dEVycm9yKS50aGVuKGZ1bmN0aW9uIChyZXNvbHZlZCkge1xuICAgICAgICAgICAgLy8gV2UgZG9uJ3QgY2FyZSBpZiB0aGUgZGVzaXJlZCBlcnJvciBjaGFuZ2VkIHdoaWxlIHdlIHdlcmUgcmVzb2x2aW5nLFxuICAgICAgICAgICAgLy8gdGh1cyB3ZSdyZSBub3QgdHJhY2tpbmcgaXQgdXNpbmcgYSByZWYuIE9uY2UgdGhlIHdvcmsgaGFzIGJlZW4gZG9uZSxcbiAgICAgICAgICAgIC8vIHdlJ2xsIHN0b3JlIGl0LlxuICAgICAgICAgICAgaWYgKG1vdW50ZWQpIHtcbiAgICAgICAgICAgICAgICBzZXRMb29rdXBzKGZ1bmN0aW9uIChtKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChfX2Fzc2lnbihfX2Fzc2lnbih7fSwgbSksIChfYSA9IHt9LCBfYVtyZXNvbHZlZC5pZF0gPSByZXNvbHZlZCwgX2EpKSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIC8vIFRPRE86IGhhbmRsZSB0aGlzLCB0aG91Z2ggYW4gZWRnZSBjYXNlXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgbW91bnRlZCA9IGZhbHNlO1xuICAgICAgICB9O1xuICAgIH0sIFtuZXh0RXJyb3JdKTtcbiAgICB2YXIgX2QgPSBfX3JlYWQoUmVhY3QudXNlU3RhdGUoZmFsc2UpLCAyKSwgaXNNaW5pbWl6ZWQgPSBfZFswXSwgc2V0TWluaW1pemVkID0gX2RbMV07XG4gICAgdmFyIF9lID0gX19yZWFkKFJlYWN0LnVzZVN0YXRlKDApLCAyKSwgYWN0aXZlSWR4ID0gX2VbMF0sIHNldEFjdGl2ZUluZGV4ID0gX2VbMV07XG4gICAgdmFyIHByZXZpb3VzID0gUmVhY3QudXNlQ2FsbGJhY2soZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgZSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHNldEFjdGl2ZUluZGV4KGZ1bmN0aW9uICh2KSB7IHJldHVybiBNYXRoLm1heCgwLCB2IC0gMSk7IH0pO1xuICAgIH0sIFtdKTtcbiAgICB2YXIgbmV4dCA9IFJlYWN0LnVzZUNhbGxiYWNrKGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIGUgPT09IG51bGwgfHwgZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBzZXRBY3RpdmVJbmRleChmdW5jdGlvbiAodikge1xuICAgICAgICAgICAgcmV0dXJuIE1hdGgubWF4KDAsIE1hdGgubWluKHJlYWR5RXJyb3JzLmxlbmd0aCAtIDEsIHYgKyAxKSk7XG4gICAgICAgIH0pO1xuICAgIH0sIFtyZWFkeUVycm9ycy5sZW5ndGhdKTtcbiAgICB2YXIgYWN0aXZlRXJyb3IgPSBSZWFjdC51c2VNZW1vKGZ1bmN0aW9uICgpIHsgdmFyIF9hOyByZXR1cm4gKF9hID0gcmVhZHlFcnJvcnNbYWN0aXZlSWR4XSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogbnVsbDsgfSwgW2FjdGl2ZUlkeCwgcmVhZHlFcnJvcnNdKTtcbiAgICAvLyBSZXNldCBjb21wb25lbnQgc3RhdGUgd2hlbiB0aGVyZSBhcmUgbm8gZXJyb3JzIHRvIGJlIGRpc3BsYXllZC5cbiAgICAvLyBUaGlzIHNob3VsZCBuZXZlciBoYXBwZW4sIGJ1dCBsZXRzIGhhbmRsZSBpdC5cbiAgICBSZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoZXJyb3JzLmxlbmd0aCA8IDEpIHtcbiAgICAgICAgICAgIHNldExvb2t1cHMoe30pO1xuICAgICAgICAgICAgc2V0TWluaW1pemVkKGZhbHNlKTtcbiAgICAgICAgICAgIHNldEFjdGl2ZUluZGV4KDApO1xuICAgICAgICB9XG4gICAgfSwgW2Vycm9ycy5sZW5ndGhdKTtcbiAgICB2YXIgbWluaW1pemUgPSBSZWFjdC51c2VDYWxsYmFjayhmdW5jdGlvbiAoZSkge1xuICAgICAgICBlID09PSBudWxsIHx8IGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgc2V0TWluaW1pemVkKHRydWUpO1xuICAgIH0sIFtdKTtcbiAgICB2YXIgcmVvcGVuID0gUmVhY3QudXNlQ2FsbGJhY2soZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgZSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHNldE1pbmltaXplZChmYWxzZSk7XG4gICAgfSwgW10pO1xuICAgIC8vIFRoaXMgY29tcG9uZW50IHNob3VsZG4ndCBiZSByZW5kZXJlZCB3aXRoIG5vIGVycm9ycywgYnV0IGlmIGl0IGlzLCBsZXQnc1xuICAgIC8vIGhhbmRsZSBpdCBncmFjZWZ1bGx5IGJ5IHJlbmRlcmluZyBub3RoaW5nLlxuICAgIGlmIChlcnJvcnMubGVuZ3RoIDwgMSB8fCBhY3RpdmVFcnJvciA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBpZiAoaXNMb2FkaW5nKSB7XG4gICAgICAgIC8vIFRPRE86IGJldHRlciBsb2FkaW5nIHN0YXRlXG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KE92ZXJsYXlfMS5PdmVybGF5LCBudWxsKTtcbiAgICB9XG4gICAgaWYgKGlzTWluaW1pemVkKSB7XG4gICAgICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChUb2FzdF8xLlRvYXN0LCB7IGNsYXNzTmFtZTogXCJuZXh0anMtdG9hc3QtZXJyb3JzLXBhcmVudFwiLCBvbkNsaWNrOiByZW9wZW4gfSxcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyBjbGFzc05hbWU6IFwibmV4dGpzLXRvYXN0LWVycm9yc1wiIH0sXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInN2Z1wiLCB7IHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsIHdpZHRoOiBcIjI0XCIsIGhlaWdodDogXCIyNFwiLCB2aWV3Qm94OiBcIjAgMCAyNCAyNFwiLCBmaWxsOiBcIm5vbmVcIiwgc3Ryb2tlOiBcImN1cnJlbnRDb2xvclwiLCBzdHJva2VXaWR0aDogXCIyXCIsIHN0cm9rZUxpbmVjYXA6IFwicm91bmRcIiwgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIiB9LFxuICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiY2lyY2xlXCIsIHsgY3g6IFwiMTJcIiwgY3k6IFwiMTJcIiwgcjogXCIxMFwiIH0pLFxuICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwibGluZVwiLCB7IHgxOiBcIjEyXCIsIHkxOiBcIjhcIiwgeDI6IFwiMTJcIiwgeTI6IFwiMTJcIiB9KSxcbiAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImxpbmVcIiwgeyB4MTogXCIxMlwiLCB5MTogXCIxNlwiLCB4MjogXCIxMi4wMVwiLCB5MjogXCIxNlwiIH0pKSxcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCBudWxsLFxuICAgICAgICAgICAgICAgICAgICByZWFkeUVycm9ycy5sZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgIFwiIGVycm9yXCIsXG4gICAgICAgICAgICAgICAgICAgIHJlYWR5RXJyb3JzLmxlbmd0aCA+IDEgPyAncycgOiAnJykpKSk7XG4gICAgfVxuICAgIHZhciBpc1NlcnZlckVycm9yID0gKDAsIG5vZGVTdGFja0ZyYW1lc18xLmlzTm9kZUVycm9yKShhY3RpdmVFcnJvci5lcnJvcik7XG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KE92ZXJsYXlfMS5PdmVybGF5LCBudWxsLFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KERpYWxvZ18xLkRpYWxvZywgeyB0eXBlOiBcImVycm9yXCIsIFwiYXJpYS1sYWJlbGxlZGJ5XCI6IFwibmV4dGpzX19jb250YWluZXJfZXJyb3JzX2xhYmVsXCIsIFwiYXJpYS1kZXNjcmliZWRieVwiOiBcIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19kZXNjXCIsIG9uQ2xvc2U6IGlzU2VydmVyRXJyb3IgPyB1bmRlZmluZWQgOiBtaW5pbWl6ZSB9LFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChEaWFsb2dfMS5EaWFsb2dDb250ZW50LCBudWxsLFxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRGlhbG9nXzEuRGlhbG9nSGVhZGVyLCB7IGNsYXNzTmFtZTogXCJuZXh0anMtY29udGFpbmVyLWVycm9ycy1oZWFkZXJcIiB9LFxuICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KExlZnRSaWdodERpYWxvZ0hlYWRlcl8xLkxlZnRSaWdodERpYWxvZ0hlYWRlciwgeyBwcmV2aW91czogYWN0aXZlSWR4ID4gMCA/IHByZXZpb3VzIDogbnVsbCwgbmV4dDogYWN0aXZlSWR4IDwgcmVhZHlFcnJvcnMubGVuZ3RoIC0gMSA/IG5leHQgOiBudWxsLCBjbG9zZTogaXNTZXJ2ZXJFcnJvciA/IHVuZGVmaW5lZCA6IG1pbmltaXplIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic21hbGxcIiwgbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCBudWxsLCBhY3RpdmVJZHggKyAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiBvZlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCBudWxsLCByZWFkeUVycm9ycy5sZW5ndGgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiIHVuaGFuZGxlZCBlcnJvclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWR5RXJyb3JzLmxlbmd0aCA8IDIgPyAnJyA6ICdzJykpLFxuICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaDFcIiwgeyBpZDogXCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfbGFiZWxcIiB9LCBpc1NlcnZlckVycm9yID8gJ1NlcnZlciBFcnJvcicgOiAnVW5oYW5kbGVkIFJ1bnRpbWUgRXJyb3InKSxcbiAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInBcIiwgeyBpZDogXCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfZGVzY1wiIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVFcnJvci5lcnJvci5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCI6XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAnICcsXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEhvdGxpbmtlZFRleHQsIHsgdGV4dDogYWN0aXZlRXJyb3IuZXJyb3IubWVzc2FnZSB9KSksXG4gICAgICAgICAgICAgICAgICAgIGlzU2VydmVyRXJyb3IgPyAoUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInNtYWxsXCIsIG51bGwsIFwiVGhpcyBlcnJvciBoYXBwZW5lZCB3aGlsZSBnZW5lcmF0aW5nIHRoZSBwYWdlLiBBbnkgY29uc29sZSBsb2dzIHdpbGwgYmUgZGlzcGxheWVkIGluIHRoZSB0ZXJtaW5hbCB3aW5kb3cuXCIpKSkgOiB1bmRlZmluZWQpLFxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRGlhbG9nXzEuRGlhbG9nQm9keSwgeyBjbGFzc05hbWU6IFwibmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtYm9keVwiIH0sXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoUnVudGltZUVycm9yXzEuUnVudGltZUVycm9yLCB7IGtleTogYWN0aXZlRXJyb3IuaWQudG9TdHJpbmcoKSwgZXJyb3I6IGFjdGl2ZUVycm9yIH0pKSkpKSk7XG59O1xuZXhwb3J0cy5FcnJvcnMgPSBFcnJvcnM7XG5leHBvcnRzLnN0eWxlcyA9ICgwLCBub29wX3RlbXBsYXRlXzEubm9vcCkodGVtcGxhdGVPYmplY3RfMSB8fCAodGVtcGxhdGVPYmplY3RfMSA9IF9fbWFrZVRlbXBsYXRlT2JqZWN0KFtcIlxcbiAgLm5leHRqcy1jb250YWluZXItZXJyb3JzLWhlYWRlciA+IGgxIHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLWZvbnQtYmlnKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLXNpemUtZm9udC1iaWdnZXIpO1xcbiAgICBmb250LXdlaWdodDogYm9sZDtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBtYXJnaW4tdG9wOiBjYWxjKHZhcigtLXNpemUtZ2FwLWRvdWJsZSkgKyB2YXIoLS1zaXplLWdhcC1oYWxmKSk7XFxuICB9XFxuICAubmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtaGVhZGVyIHNtYWxsIHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLWZvbnQtc21hbGwpO1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItYWNjZW50cy0xKTtcXG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLXNpemUtZ2FwLWRvdWJsZSk7XFxuICB9XFxuICAubmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtaGVhZGVyIHNtYWxsID4gc3BhbiB7XFxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXN0YWNrLW1vbm9zcGFjZSk7XFxuICB9XFxuICAubmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtaGVhZGVyID4gcCB7XFxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXN0YWNrLW1vbm9zcGFjZSk7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS1mb250LXNtYWxsKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLXNpemUtZm9udC1iaWcpO1xcbiAgICBmb250LXdlaWdodDogYm9sZDtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1zaXplLWdhcC1oYWxmKTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktcmVkKTtcXG4gICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xcbiAgfVxcbiAgLm5leHRqcy1jb250YWluZXItZXJyb3JzLWhlYWRlciA+IGRpdiA+IHNtYWxsIHtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1zaXplLWdhcC1oYWxmKTtcXG4gIH1cXG4gIC5uZXh0anMtY29udGFpbmVyLWVycm9ycy1oZWFkZXIgPiBwID4gYSB7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLXJlZCk7XFxuICB9XFxuXFxuICAubmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtYm9keSA+IGg1Om5vdCg6Zmlyc3QtY2hpbGQpIHtcXG4gICAgbWFyZ2luLXRvcDogY2FsYyh2YXIoLS1zaXplLWdhcC1kb3VibGUpICsgdmFyKC0tc2l6ZS1nYXApKTtcXG4gIH1cXG4gIC5uZXh0anMtY29udGFpbmVyLWVycm9ycy1ib2R5ID4gaDUge1xcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zaXplLWdhcCk7XFxuICB9XFxuXFxuICAubmV4dGpzLXRvYXN0LWVycm9ycy1wYXJlbnQge1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7XFxuICB9XFxuICAubmV4dGpzLXRvYXN0LWVycm9ycy1wYXJlbnQ6aG92ZXIge1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XFxuICB9XFxuICAubmV4dGpzLXRvYXN0LWVycm9ycyB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcXG4gIH1cXG4gIC5uZXh0anMtdG9hc3QtZXJyb3JzID4gc3ZnIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1zaXplLWdhcCk7XFxuICB9XFxuXCJdLCBbXCJcXG4gIC5uZXh0anMtY29udGFpbmVyLWVycm9ycy1oZWFkZXIgPiBoMSB7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS1mb250LWJpZyk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1zaXplLWZvbnQtYmlnZ2VyKTtcXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgbWFyZ2luLXRvcDogY2FsYyh2YXIoLS1zaXplLWdhcC1kb3VibGUpICsgdmFyKC0tc2l6ZS1nYXAtaGFsZikpO1xcbiAgfVxcbiAgLm5leHRqcy1jb250YWluZXItZXJyb3JzLWhlYWRlciBzbWFsbCB7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS1mb250LXNtYWxsKTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudHMtMSk7XFxuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1zaXplLWdhcC1kb3VibGUpO1xcbiAgfVxcbiAgLm5leHRqcy1jb250YWluZXItZXJyb3JzLWhlYWRlciBzbWFsbCA+IHNwYW4ge1xcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1tb25vc3BhY2UpO1xcbiAgfVxcbiAgLm5leHRqcy1jb250YWluZXItZXJyb3JzLWhlYWRlciA+IHAge1xcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1tb25vc3BhY2UpO1xcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtZm9udC1zbWFsbCk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1zaXplLWZvbnQtYmlnKTtcXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgbWFyZ2luLXRvcDogdmFyKC0tc2l6ZS1nYXAtaGFsZik7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLXJlZCk7XFxuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcXG4gIH1cXG4gIC5uZXh0anMtY29udGFpbmVyLWVycm9ycy1oZWFkZXIgPiBkaXYgPiBzbWFsbCB7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgbWFyZ2luLXRvcDogdmFyKC0tc2l6ZS1nYXAtaGFsZik7XFxuICB9XFxuICAubmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtaGVhZGVyID4gcCA+IGEge1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItYW5zaS1yZWQpO1xcbiAgfVxcblxcbiAgLm5leHRqcy1jb250YWluZXItZXJyb3JzLWJvZHkgPiBoNTpub3QoOmZpcnN0LWNoaWxkKSB7XFxuICAgIG1hcmdpbi10b3A6IGNhbGModmFyKC0tc2l6ZS1nYXAtZG91YmxlKSArIHZhcigtLXNpemUtZ2FwKSk7XFxuICB9XFxuICAubmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtYm9keSA+IGg1IHtcXG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc2l6ZS1nYXApO1xcbiAgfVxcblxcbiAgLm5leHRqcy10b2FzdC1lcnJvcnMtcGFyZW50IHtcXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xcbiAgfVxcbiAgLm5leHRqcy10b2FzdC1lcnJvcnMtcGFyZW50OmhvdmVyIHtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xcbiAgfVxcbiAgLm5leHRqcy10b2FzdC1lcnJvcnMge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XFxuICB9XFxuICAubmV4dGpzLXRvYXN0LWVycm9ycyA+IHN2ZyB7XFxuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tc2l6ZS1nYXApO1xcbiAgfVxcblwiXSkpKTtcbnZhciB0ZW1wbGF0ZU9iamVjdF8xO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RXJyb3JzLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/container/Errors.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/container/RuntimeError.js": +/*!*************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/container/RuntimeError.js ***! + \*************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nexports.__esModule = true;\nexports.RuntimeError = exports.styles = void 0;\nvar React = __importStar(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nvar CodeFrame_1 = __webpack_require__(/*! ../components/CodeFrame */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/CodeFrame/index.js\");\nvar noop_template_1 = __webpack_require__(/*! ../helpers/noop-template */ \"./node_modules/@next/react-dev-overlay/lib/internal/helpers/noop-template.js\");\nvar stack_frame_1 = __webpack_require__(/*! ../helpers/stack-frame */ \"./node_modules/@next/react-dev-overlay/lib/internal/helpers/stack-frame.js\");\nvar CallStackFrame = function CallStackFrame(_a) {\n // TODO: ability to expand resolved frames\n // TODO: render error or external indicator\n var _b;\n var frame = _a.frame;\n var f = (_b = frame.originalStackFrame) !== null && _b !== void 0 ? _b : frame.sourceStackFrame;\n var hasSource = Boolean(frame.originalCodeFrame);\n var open = React.useCallback(function () {\n var _a;\n if (!hasSource)\n return;\n var params = new URLSearchParams();\n for (var key in f) {\n params.append(key, ((_a = f[key]) !== null && _a !== void 0 ? _a : '').toString());\n }\n self\n .fetch(( false || '') + \"/__nextjs_launch-editor?\" + params.toString())\n .then(function () { }, function () {\n // TODO: report error\n });\n }, [hasSource, f]);\n return (React.createElement(\"div\", { \"data-nextjs-call-stack-frame\": true },\n React.createElement(\"h6\", { \"data-nextjs-frame-expanded\": Boolean(frame.expanded) }, f.methodName),\n React.createElement(\"div\", { \"data-has-source\": hasSource ? 'true' : undefined, tabIndex: hasSource ? 10 : undefined, role: hasSource ? 'link' : undefined, onClick: open, title: hasSource ? 'Click to open in your editor' : undefined },\n React.createElement(\"span\", null, (0, stack_frame_1.getFrameSource)(f)),\n React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 24 24\", fill: \"none\", stroke: \"currentColor\", strokeWidth: \"2\", strokeLinecap: \"round\", strokeLinejoin: \"round\" },\n React.createElement(\"path\", { d: \"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\" }),\n React.createElement(\"polyline\", { points: \"15 3 21 3 21 9\" }),\n React.createElement(\"line\", { x1: \"10\", y1: \"14\", x2: \"21\", y2: \"3\" })))));\n};\nvar RuntimeError = function RuntimeError(_a) {\n var error = _a.error;\n var firstFirstPartyFrameIndex = React.useMemo(function () {\n return error.frames.findIndex(function (entry) {\n return entry.expanded &&\n Boolean(entry.originalCodeFrame) &&\n Boolean(entry.originalStackFrame);\n });\n }, [error.frames]);\n var firstFrame = React.useMemo(function () {\n var _a;\n return (_a = error.frames[firstFirstPartyFrameIndex]) !== null && _a !== void 0 ? _a : null;\n }, [error.frames, firstFirstPartyFrameIndex]);\n var allLeadingFrames = React.useMemo(function () {\n return firstFirstPartyFrameIndex < 0\n ? []\n : error.frames.slice(0, firstFirstPartyFrameIndex);\n }, [error.frames, firstFirstPartyFrameIndex]);\n var _b = __read(React.useState(firstFrame == null), 2), all = _b[0], setAll = _b[1];\n var toggleAll = React.useCallback(function () {\n setAll(function (v) { return !v; });\n }, []);\n var leadingFrames = React.useMemo(function () { return allLeadingFrames.filter(function (f) { return f.expanded || all; }); }, [all, allLeadingFrames]);\n var allCallStackFrames = React.useMemo(function () { return error.frames.slice(firstFirstPartyFrameIndex + 1); }, [error.frames, firstFirstPartyFrameIndex]);\n var visibleCallStackFrames = React.useMemo(function () { return allCallStackFrames.filter(function (f) { return f.expanded || all; }); }, [all, allCallStackFrames]);\n var canShowMore = React.useMemo(function () {\n return (allCallStackFrames.length !== visibleCallStackFrames.length ||\n (all && firstFrame != null));\n }, [\n all,\n allCallStackFrames.length,\n firstFrame,\n visibleCallStackFrames.length,\n ]);\n return (React.createElement(React.Fragment, null,\n firstFrame ? (React.createElement(React.Fragment, null,\n React.createElement(\"h5\", null, \"Source\"),\n leadingFrames.map(function (frame, index) { return (React.createElement(CallStackFrame, { key: \"leading-frame-\" + index + \"-\" + all, frame: frame })); }),\n React.createElement(CodeFrame_1.CodeFrame, { stackFrame: firstFrame.originalStackFrame, codeFrame: firstFrame.originalCodeFrame }))) : undefined,\n visibleCallStackFrames.length ? (React.createElement(React.Fragment, null,\n React.createElement(\"h5\", null, \"Call Stack\"),\n visibleCallStackFrames.map(function (frame, index) { return (React.createElement(CallStackFrame, { key: \"call-stack-\" + index + \"-\" + all, frame: frame })); }))) : undefined,\n canShowMore ? (React.createElement(React.Fragment, null,\n React.createElement(\"button\", { tabIndex: 10, \"data-nextjs-data-runtime-error-collapsed-action\": true, type: \"button\", onClick: toggleAll },\n all ? 'Hide' : 'Show',\n \" collapsed frames\"))) : undefined));\n};\nexports.RuntimeError = RuntimeError;\nexports.styles = (0, noop_template_1.noop)(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\n button[data-nextjs-data-runtime-error-collapsed-action] {\\n background: none;\\n border: none;\\n padding: 0;\\n font-size: var(--size-font-small);\\n line-height: var(--size-font-bigger);\\n color: var(--color-accents-3);\\n }\\n\\n [data-nextjs-call-stack-frame]:not(:last-child) {\\n margin-bottom: var(--size-gap-double);\\n }\\n\\n [data-nextjs-call-stack-frame] > h6 {\\n margin-top: 0;\\n margin-bottom: var(--size-gap);\\n font-family: var(--font-stack-monospace);\\n color: #222;\\n }\\n [data-nextjs-call-stack-frame] > h6[data-nextjs-frame-expanded='false'] {\\n color: #666;\\n }\\n [data-nextjs-call-stack-frame] > div {\\n display: flex;\\n align-items: center;\\n padding-left: calc(var(--size-gap) + var(--size-gap-half));\\n font-size: var(--size-font-small);\\n color: #999;\\n }\\n [data-nextjs-call-stack-frame] > div > svg {\\n width: auto;\\n height: var(--size-font-small);\\n margin-left: var(--size-gap);\\n\\n display: none;\\n }\\n\\n [data-nextjs-call-stack-frame] > div[data-has-source] {\\n cursor: pointer;\\n }\\n [data-nextjs-call-stack-frame] > div[data-has-source]:hover {\\n text-decoration: underline dotted;\\n }\\n [data-nextjs-call-stack-frame] > div[data-has-source] > svg {\\n display: unset;\\n }\\n\"], [\"\\n button[data-nextjs-data-runtime-error-collapsed-action] {\\n background: none;\\n border: none;\\n padding: 0;\\n font-size: var(--size-font-small);\\n line-height: var(--size-font-bigger);\\n color: var(--color-accents-3);\\n }\\n\\n [data-nextjs-call-stack-frame]:not(:last-child) {\\n margin-bottom: var(--size-gap-double);\\n }\\n\\n [data-nextjs-call-stack-frame] > h6 {\\n margin-top: 0;\\n margin-bottom: var(--size-gap);\\n font-family: var(--font-stack-monospace);\\n color: #222;\\n }\\n [data-nextjs-call-stack-frame] > h6[data-nextjs-frame-expanded='false'] {\\n color: #666;\\n }\\n [data-nextjs-call-stack-frame] > div {\\n display: flex;\\n align-items: center;\\n padding-left: calc(var(--size-gap) + var(--size-gap-half));\\n font-size: var(--size-font-small);\\n color: #999;\\n }\\n [data-nextjs-call-stack-frame] > div > svg {\\n width: auto;\\n height: var(--size-font-small);\\n margin-left: var(--size-gap);\\n\\n display: none;\\n }\\n\\n [data-nextjs-call-stack-frame] > div[data-has-source] {\\n cursor: pointer;\\n }\\n [data-nextjs-call-stack-frame] > div[data-has-source]:hover {\\n text-decoration: underline dotted;\\n }\\n [data-nextjs-call-stack-frame] > div[data-has-source] > svg {\\n display: unset;\\n }\\n\"])));\nvar templateObject_1;\n//# sourceMappingURL=RuntimeError.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2NvbnRhaW5lci9SdW50aW1lRXJyb3IuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBLGlDQUFpQyx1Q0FBdUMsWUFBWSxLQUFLLE9BQU87QUFDaEc7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMsb0NBQW9DLGdCQUFnQjtBQUN2RixDQUFDO0FBQ0Q7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBLDBDQUEwQyw0QkFBNEI7QUFDdEUsQ0FBQztBQUNEO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsTUFBTTtBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEIsb0JBQW9CLEdBQUcsY0FBYztBQUNyQyx5QkFBeUIsbUJBQU8sQ0FBQyw0Q0FBTztBQUN4QyxrQkFBa0IsbUJBQU8sQ0FBQyxrSEFBeUI7QUFDbkQsc0JBQXNCLG1CQUFPLENBQUMsOEdBQTBCO0FBQ3hELG9CQUFvQixtQkFBTyxDQUFDLDBHQUF3QjtBQUNwRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixNQUFrQztBQUN0RCxpQ0FBaUM7QUFDakM7QUFDQSxTQUFTO0FBQ1QsS0FBSztBQUNMLHlDQUF5QyxzQ0FBc0M7QUFDL0Usb0NBQW9DLHVEQUF1RDtBQUMzRixxQ0FBcUMsNk1BQTZNO0FBQ2xQO0FBQ0EseUNBQXlDLG9LQUFvSztBQUM3TSw4Q0FBOEMsK0RBQStEO0FBQzdHLGtEQUFrRCwwQkFBMEI7QUFDNUUsOENBQThDLHVDQUF1QztBQUNyRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLDhCQUE4QixZQUFZO0FBQzFDLEtBQUs7QUFDTCxvREFBb0QsOENBQThDLDJCQUEyQixJQUFJO0FBQ2pJLHlEQUF5RCwyREFBMkQ7QUFDcEgsNkRBQTZELGdEQUFnRCwyQkFBMkIsSUFBSTtBQUM1STtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdEQUF3RCw4Q0FBOEMseURBQXlELEtBQUs7QUFDcEsseURBQXlELG9GQUFvRjtBQUM3STtBQUNBO0FBQ0EsaUVBQWlFLDhDQUE4QyxzREFBc0QsS0FBSztBQUMxSztBQUNBLDRDQUE0QywyR0FBMkc7QUFDdko7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCLGNBQWMseUpBQXlKLHVCQUF1QixtQkFBbUIsaUJBQWlCLHdDQUF3QywyQ0FBMkMsb0NBQW9DLEtBQUssdURBQXVELDRDQUE0QyxLQUFLLDJDQUEyQyxvQkFBb0IscUNBQXFDLCtDQUErQyxrQkFBa0IsS0FBSyw2RUFBNkUsa0JBQWtCLEtBQUssMENBQTBDLG9CQUFvQiwwQkFBMEIsaUVBQWlFLHdDQUF3QyxrQkFBa0IsS0FBSyxnREFBZ0Qsa0JBQWtCLHFDQUFxQyxtQ0FBbUMsc0JBQXNCLEtBQUssNkRBQTZELHNCQUFzQixLQUFLLGlFQUFpRSx3Q0FBd0MsS0FBSyxpRUFBaUUscUJBQXFCLEtBQUsscUVBQXFFLHVCQUF1QixtQkFBbUIsaUJBQWlCLHdDQUF3QywyQ0FBMkMsb0NBQW9DLEtBQUssdURBQXVELDRDQUE0QyxLQUFLLDJDQUEyQyxvQkFBb0IscUNBQXFDLCtDQUErQyxrQkFBa0IsS0FBSyw2RUFBNkUsa0JBQWtCLEtBQUssMENBQTBDLG9CQUFvQiwwQkFBMEIsaUVBQWlFLHdDQUF3QyxrQkFBa0IsS0FBSyxnREFBZ0Qsa0JBQWtCLHFDQUFxQyxtQ0FBbUMsc0JBQXNCLEtBQUssNkRBQTZELHNCQUFzQixLQUFLLGlFQUFpRSx3Q0FBd0MsS0FBSyxpRUFBaUUscUJBQXFCLEtBQUs7QUFDbG9GO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BuZXh0L3JlYWN0LWRldi1vdmVybGF5L2xpYi9pbnRlcm5hbC9jb250YWluZXIvUnVudGltZUVycm9yLmpzP2MyMDYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19tYWtlVGVtcGxhdGVPYmplY3QgPSAodGhpcyAmJiB0aGlzLl9fbWFrZVRlbXBsYXRlT2JqZWN0KSB8fCBmdW5jdGlvbiAoY29va2VkLCByYXcpIHtcbiAgICBpZiAoT2JqZWN0LmRlZmluZVByb3BlcnR5KSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb29rZWQsIFwicmF3XCIsIHsgdmFsdWU6IHJhdyB9KTsgfSBlbHNlIHsgY29va2VkLnJhdyA9IHJhdzsgfVxuICAgIHJldHVybiBjb29rZWQ7XG59O1xudmFyIF9fY3JlYXRlQmluZGluZyA9ICh0aGlzICYmIHRoaXMuX19jcmVhdGVCaW5kaW5nKSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH0pO1xufSkgOiAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIG9bazJdID0gbVtrXTtcbn0pKTtcbnZhciBfX3NldE1vZHVsZURlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9fc2V0TW9kdWxlRGVmYXVsdCkgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgdikge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBcImRlZmF1bHRcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdiB9KTtcbn0pIDogZnVuY3Rpb24obywgdikge1xuICAgIG9bXCJkZWZhdWx0XCJdID0gdjtcbn0pO1xudmFyIF9faW1wb3J0U3RhciA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnRTdGFyKSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDtcbiAgICB2YXIgcmVzdWx0ID0ge307XG4gICAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrIGluIG1vZCkgaWYgKGsgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChtb2QsIGspKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGspO1xuICAgIF9fc2V0TW9kdWxlRGVmYXVsdChyZXN1bHQsIG1vZCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG52YXIgX19yZWFkID0gKHRoaXMgJiYgdGhpcy5fX3JlYWQpIHx8IGZ1bmN0aW9uIChvLCBuKSB7XG4gICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdO1xuICAgIGlmICghbSkgcmV0dXJuIG87XG4gICAgdmFyIGkgPSBtLmNhbGwobyksIHIsIGFyID0gW10sIGU7XG4gICAgdHJ5IHtcbiAgICAgICAgd2hpbGUgKChuID09PSB2b2lkIDAgfHwgbi0tID4gMCkgJiYgIShyID0gaS5uZXh0KCkpLmRvbmUpIGFyLnB1c2goci52YWx1ZSk7XG4gICAgfVxuICAgIGNhdGNoIChlcnJvcikgeyBlID0geyBlcnJvcjogZXJyb3IgfTsgfVxuICAgIGZpbmFsbHkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbXCJyZXR1cm5cIl0pKSBtLmNhbGwoaSk7XG4gICAgICAgIH1cbiAgICAgICAgZmluYWxseSB7IGlmIChlKSB0aHJvdyBlLmVycm9yOyB9XG4gICAgfVxuICAgIHJldHVybiBhcjtcbn07XG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5SdW50aW1lRXJyb3IgPSBleHBvcnRzLnN0eWxlcyA9IHZvaWQgMDtcbnZhciBSZWFjdCA9IF9faW1wb3J0U3RhcihyZXF1aXJlKFwicmVhY3RcIikpO1xudmFyIENvZGVGcmFtZV8xID0gcmVxdWlyZShcIi4uL2NvbXBvbmVudHMvQ29kZUZyYW1lXCIpO1xudmFyIG5vb3BfdGVtcGxhdGVfMSA9IHJlcXVpcmUoXCIuLi9oZWxwZXJzL25vb3AtdGVtcGxhdGVcIik7XG52YXIgc3RhY2tfZnJhbWVfMSA9IHJlcXVpcmUoXCIuLi9oZWxwZXJzL3N0YWNrLWZyYW1lXCIpO1xudmFyIENhbGxTdGFja0ZyYW1lID0gZnVuY3Rpb24gQ2FsbFN0YWNrRnJhbWUoX2EpIHtcbiAgICAvLyBUT0RPOiBhYmlsaXR5IHRvIGV4cGFuZCByZXNvbHZlZCBmcmFtZXNcbiAgICAvLyBUT0RPOiByZW5kZXIgZXJyb3Igb3IgZXh0ZXJuYWwgaW5kaWNhdG9yXG4gICAgdmFyIF9iO1xuICAgIHZhciBmcmFtZSA9IF9hLmZyYW1lO1xuICAgIHZhciBmID0gKF9iID0gZnJhbWUub3JpZ2luYWxTdGFja0ZyYW1lKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBmcmFtZS5zb3VyY2VTdGFja0ZyYW1lO1xuICAgIHZhciBoYXNTb3VyY2UgPSBCb29sZWFuKGZyYW1lLm9yaWdpbmFsQ29kZUZyYW1lKTtcbiAgICB2YXIgb3BlbiA9IFJlYWN0LnVzZUNhbGxiYWNrKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoIWhhc1NvdXJjZSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgdmFyIHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgICAgICAgZm9yICh2YXIga2V5IGluIGYpIHtcbiAgICAgICAgICAgIHBhcmFtcy5hcHBlbmQoa2V5LCAoKF9hID0gZltrZXldKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAnJykudG9TdHJpbmcoKSk7XG4gICAgICAgIH1cbiAgICAgICAgc2VsZlxuICAgICAgICAgICAgLmZldGNoKChwcm9jZXNzLmVudi5fX05FWFRfUk9VVEVSX0JBU0VQQVRIIHx8ICcnKSArIFwiL19fbmV4dGpzX2xhdW5jaC1lZGl0b3I/XCIgKyBwYXJhbXMudG9TdHJpbmcoKSlcbiAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uICgpIHsgfSwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgLy8gVE9ETzogcmVwb3J0IGVycm9yXG4gICAgICAgIH0pO1xuICAgIH0sIFtoYXNTb3VyY2UsIGZdKTtcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyBcImRhdGEtbmV4dGpzLWNhbGwtc3RhY2stZnJhbWVcIjogdHJ1ZSB9LFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaDZcIiwgeyBcImRhdGEtbmV4dGpzLWZyYW1lLWV4cGFuZGVkXCI6IEJvb2xlYW4oZnJhbWUuZXhwYW5kZWQpIH0sIGYubWV0aG9kTmFtZSksXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyBcImRhdGEtaGFzLXNvdXJjZVwiOiBoYXNTb3VyY2UgPyAndHJ1ZScgOiB1bmRlZmluZWQsIHRhYkluZGV4OiBoYXNTb3VyY2UgPyAxMCA6IHVuZGVmaW5lZCwgcm9sZTogaGFzU291cmNlID8gJ2xpbmsnIDogdW5kZWZpbmVkLCBvbkNsaWNrOiBvcGVuLCB0aXRsZTogaGFzU291cmNlID8gJ0NsaWNrIHRvIG9wZW4gaW4geW91ciBlZGl0b3InIDogdW5kZWZpbmVkIH0sXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCBudWxsLCAoMCwgc3RhY2tfZnJhbWVfMS5nZXRGcmFtZVNvdXJjZSkoZikpLFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInN2Z1wiLCB7IHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsIHZpZXdCb3g6IFwiMCAwIDI0IDI0XCIsIGZpbGw6IFwibm9uZVwiLCBzdHJva2U6IFwiY3VycmVudENvbG9yXCIsIHN0cm9rZVdpZHRoOiBcIjJcIiwgc3Ryb2tlTGluZWNhcDogXCJyb3VuZFwiLCBzdHJva2VMaW5lam9pbjogXCJyb3VuZFwiIH0sXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwgeyBkOiBcIk0xOCAxM3Y2YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmg2XCIgfSksXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInBvbHlsaW5lXCIsIHsgcG9pbnRzOiBcIjE1IDMgMjEgMyAyMSA5XCIgfSksXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImxpbmVcIiwgeyB4MTogXCIxMFwiLCB5MTogXCIxNFwiLCB4MjogXCIyMVwiLCB5MjogXCIzXCIgfSkpKSkpO1xufTtcbnZhciBSdW50aW1lRXJyb3IgPSBmdW5jdGlvbiBSdW50aW1lRXJyb3IoX2EpIHtcbiAgICB2YXIgZXJyb3IgPSBfYS5lcnJvcjtcbiAgICB2YXIgZmlyc3RGaXJzdFBhcnR5RnJhbWVJbmRleCA9IFJlYWN0LnVzZU1lbW8oZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gZXJyb3IuZnJhbWVzLmZpbmRJbmRleChmdW5jdGlvbiAoZW50cnkpIHtcbiAgICAgICAgICAgIHJldHVybiBlbnRyeS5leHBhbmRlZCAmJlxuICAgICAgICAgICAgICAgIEJvb2xlYW4oZW50cnkub3JpZ2luYWxDb2RlRnJhbWUpICYmXG4gICAgICAgICAgICAgICAgQm9vbGVhbihlbnRyeS5vcmlnaW5hbFN0YWNrRnJhbWUpO1xuICAgICAgICB9KTtcbiAgICB9LCBbZXJyb3IuZnJhbWVzXSk7XG4gICAgdmFyIGZpcnN0RnJhbWUgPSBSZWFjdC51c2VNZW1vKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICByZXR1cm4gKF9hID0gZXJyb3IuZnJhbWVzW2ZpcnN0Rmlyc3RQYXJ0eUZyYW1lSW5kZXhdKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBudWxsO1xuICAgIH0sIFtlcnJvci5mcmFtZXMsIGZpcnN0Rmlyc3RQYXJ0eUZyYW1lSW5kZXhdKTtcbiAgICB2YXIgYWxsTGVhZGluZ0ZyYW1lcyA9IFJlYWN0LnVzZU1lbW8oZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gZmlyc3RGaXJzdFBhcnR5RnJhbWVJbmRleCA8IDBcbiAgICAgICAgICAgID8gW11cbiAgICAgICAgICAgIDogZXJyb3IuZnJhbWVzLnNsaWNlKDAsIGZpcnN0Rmlyc3RQYXJ0eUZyYW1lSW5kZXgpO1xuICAgIH0sIFtlcnJvci5mcmFtZXMsIGZpcnN0Rmlyc3RQYXJ0eUZyYW1lSW5kZXhdKTtcbiAgICB2YXIgX2IgPSBfX3JlYWQoUmVhY3QudXNlU3RhdGUoZmlyc3RGcmFtZSA9PSBudWxsKSwgMiksIGFsbCA9IF9iWzBdLCBzZXRBbGwgPSBfYlsxXTtcbiAgICB2YXIgdG9nZ2xlQWxsID0gUmVhY3QudXNlQ2FsbGJhY2soZnVuY3Rpb24gKCkge1xuICAgICAgICBzZXRBbGwoZnVuY3Rpb24gKHYpIHsgcmV0dXJuICF2OyB9KTtcbiAgICB9LCBbXSk7XG4gICAgdmFyIGxlYWRpbmdGcmFtZXMgPSBSZWFjdC51c2VNZW1vKGZ1bmN0aW9uICgpIHsgcmV0dXJuIGFsbExlYWRpbmdGcmFtZXMuZmlsdGVyKGZ1bmN0aW9uIChmKSB7IHJldHVybiBmLmV4cGFuZGVkIHx8IGFsbDsgfSk7IH0sIFthbGwsIGFsbExlYWRpbmdGcmFtZXNdKTtcbiAgICB2YXIgYWxsQ2FsbFN0YWNrRnJhbWVzID0gUmVhY3QudXNlTWVtbyhmdW5jdGlvbiAoKSB7IHJldHVybiBlcnJvci5mcmFtZXMuc2xpY2UoZmlyc3RGaXJzdFBhcnR5RnJhbWVJbmRleCArIDEpOyB9LCBbZXJyb3IuZnJhbWVzLCBmaXJzdEZpcnN0UGFydHlGcmFtZUluZGV4XSk7XG4gICAgdmFyIHZpc2libGVDYWxsU3RhY2tGcmFtZXMgPSBSZWFjdC51c2VNZW1vKGZ1bmN0aW9uICgpIHsgcmV0dXJuIGFsbENhbGxTdGFja0ZyYW1lcy5maWx0ZXIoZnVuY3Rpb24gKGYpIHsgcmV0dXJuIGYuZXhwYW5kZWQgfHwgYWxsOyB9KTsgfSwgW2FsbCwgYWxsQ2FsbFN0YWNrRnJhbWVzXSk7XG4gICAgdmFyIGNhblNob3dNb3JlID0gUmVhY3QudXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAoYWxsQ2FsbFN0YWNrRnJhbWVzLmxlbmd0aCAhPT0gdmlzaWJsZUNhbGxTdGFja0ZyYW1lcy5sZW5ndGggfHxcbiAgICAgICAgICAgIChhbGwgJiYgZmlyc3RGcmFtZSAhPSBudWxsKSk7XG4gICAgfSwgW1xuICAgICAgICBhbGwsXG4gICAgICAgIGFsbENhbGxTdGFja0ZyYW1lcy5sZW5ndGgsXG4gICAgICAgIGZpcnN0RnJhbWUsXG4gICAgICAgIHZpc2libGVDYWxsU3RhY2tGcmFtZXMubGVuZ3RoLFxuICAgIF0pO1xuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChSZWFjdC5GcmFnbWVudCwgbnVsbCxcbiAgICAgICAgZmlyc3RGcmFtZSA/IChSZWFjdC5jcmVhdGVFbGVtZW50KFJlYWN0LkZyYWdtZW50LCBudWxsLFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImg1XCIsIG51bGwsIFwiU291cmNlXCIpLFxuICAgICAgICAgICAgbGVhZGluZ0ZyYW1lcy5tYXAoZnVuY3Rpb24gKGZyYW1lLCBpbmRleCkgeyByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2FsbFN0YWNrRnJhbWUsIHsga2V5OiBcImxlYWRpbmctZnJhbWUtXCIgKyBpbmRleCArIFwiLVwiICsgYWxsLCBmcmFtZTogZnJhbWUgfSkpOyB9KSxcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ29kZUZyYW1lXzEuQ29kZUZyYW1lLCB7IHN0YWNrRnJhbWU6IGZpcnN0RnJhbWUub3JpZ2luYWxTdGFja0ZyYW1lLCBjb2RlRnJhbWU6IGZpcnN0RnJhbWUub3JpZ2luYWxDb2RlRnJhbWUgfSkpKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgdmlzaWJsZUNhbGxTdGFja0ZyYW1lcy5sZW5ndGggPyAoUmVhY3QuY3JlYXRlRWxlbWVudChSZWFjdC5GcmFnbWVudCwgbnVsbCxcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJoNVwiLCBudWxsLCBcIkNhbGwgU3RhY2tcIiksXG4gICAgICAgICAgICB2aXNpYmxlQ2FsbFN0YWNrRnJhbWVzLm1hcChmdW5jdGlvbiAoZnJhbWUsIGluZGV4KSB7IHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChDYWxsU3RhY2tGcmFtZSwgeyBrZXk6IFwiY2FsbC1zdGFjay1cIiArIGluZGV4ICsgXCItXCIgKyBhbGwsIGZyYW1lOiBmcmFtZSB9KSk7IH0pKSkgOiB1bmRlZmluZWQsXG4gICAgICAgIGNhblNob3dNb3JlID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3QuRnJhZ21lbnQsIG51bGwsXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiYnV0dG9uXCIsIHsgdGFiSW5kZXg6IDEwLCBcImRhdGEtbmV4dGpzLWRhdGEtcnVudGltZS1lcnJvci1jb2xsYXBzZWQtYWN0aW9uXCI6IHRydWUsIHR5cGU6IFwiYnV0dG9uXCIsIG9uQ2xpY2s6IHRvZ2dsZUFsbCB9LFxuICAgICAgICAgICAgICAgIGFsbCA/ICdIaWRlJyA6ICdTaG93JyxcbiAgICAgICAgICAgICAgICBcIiBjb2xsYXBzZWQgZnJhbWVzXCIpKSkgOiB1bmRlZmluZWQpKTtcbn07XG5leHBvcnRzLlJ1bnRpbWVFcnJvciA9IFJ1bnRpbWVFcnJvcjtcbmV4cG9ydHMuc3R5bGVzID0gKDAsIG5vb3BfdGVtcGxhdGVfMS5ub29wKSh0ZW1wbGF0ZU9iamVjdF8xIHx8ICh0ZW1wbGF0ZU9iamVjdF8xID0gX19tYWtlVGVtcGxhdGVPYmplY3QoW1wiXFxuICBidXR0b25bZGF0YS1uZXh0anMtZGF0YS1ydW50aW1lLWVycm9yLWNvbGxhcHNlZC1hY3Rpb25dIHtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgYm9yZGVyOiBub25lO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtZm9udC1zbWFsbCk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1zaXplLWZvbnQtYmlnZ2VyKTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudHMtMyk7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZV06bm90KDpsYXN0LWNoaWxkKSB7XFxuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNpemUtZ2FwLWRvdWJsZSk7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZV0gPiBoNiB7XFxuICAgIG1hcmdpbi10b3A6IDA7XFxuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNpemUtZ2FwKTtcXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc3RhY2stbW9ub3NwYWNlKTtcXG4gICAgY29sb3I6ICMyMjI7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZV0gPiBoNltkYXRhLW5leHRqcy1mcmFtZS1leHBhbmRlZD0nZmFsc2UnXSB7XFxuICAgIGNvbG9yOiAjNjY2O1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWNhbGwtc3RhY2stZnJhbWVdID4gZGl2IHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgcGFkZGluZy1sZWZ0OiBjYWxjKHZhcigtLXNpemUtZ2FwKSArIHZhcigtLXNpemUtZ2FwLWhhbGYpKTtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLWZvbnQtc21hbGwpO1xcbiAgICBjb2xvcjogIzk5OTtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWZyYW1lXSA+IGRpdiA+IHN2ZyB7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgICBoZWlnaHQ6IHZhcigtLXNpemUtZm9udC1zbWFsbCk7XFxuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1zaXplLWdhcCk7XFxuXFxuICAgIGRpc3BsYXk6IG5vbmU7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZV0gPiBkaXZbZGF0YS1oYXMtc291cmNlXSB7XFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWZyYW1lXSA+IGRpdltkYXRhLWhhcy1zb3VyY2VdOmhvdmVyIHtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWNhbGwtc3RhY2stZnJhbWVdID4gZGl2W2RhdGEtaGFzLXNvdXJjZV0gPiBzdmcge1xcbiAgICBkaXNwbGF5OiB1bnNldDtcXG4gIH1cXG5cIl0sIFtcIlxcbiAgYnV0dG9uW2RhdGEtbmV4dGpzLWRhdGEtcnVudGltZS1lcnJvci1jb2xsYXBzZWQtYWN0aW9uXSB7XFxuICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIGJvcmRlcjogbm9uZTtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLWZvbnQtc21hbGwpO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tc2l6ZS1mb250LWJpZ2dlcik7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnRzLTMpO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWNhbGwtc3RhY2stZnJhbWVdOm5vdCg6bGFzdC1jaGlsZCkge1xcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zaXplLWdhcC1kb3VibGUpO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWNhbGwtc3RhY2stZnJhbWVdID4gaDYge1xcbiAgICBtYXJnaW4tdG9wOiAwO1xcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zaXplLWdhcCk7XFxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXN0YWNrLW1vbm9zcGFjZSk7XFxuICAgIGNvbG9yOiAjMjIyO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWNhbGwtc3RhY2stZnJhbWVdID4gaDZbZGF0YS1uZXh0anMtZnJhbWUtZXhwYW5kZWQ9J2ZhbHNlJ10ge1xcbiAgICBjb2xvcjogIzY2NjtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWZyYW1lXSA+IGRpdiB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIHBhZGRpbmctbGVmdDogY2FsYyh2YXIoLS1zaXplLWdhcCkgKyB2YXIoLS1zaXplLWdhcC1oYWxmKSk7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS1mb250LXNtYWxsKTtcXG4gICAgY29sb3I6ICM5OTk7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZV0gPiBkaXYgPiBzdmcge1xcbiAgICB3aWR0aDogYXV0bztcXG4gICAgaGVpZ2h0OiB2YXIoLS1zaXplLWZvbnQtc21hbGwpO1xcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tc2l6ZS1nYXApO1xcblxcbiAgICBkaXNwbGF5OiBub25lO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWNhbGwtc3RhY2stZnJhbWVdID4gZGl2W2RhdGEtaGFzLXNvdXJjZV0ge1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZV0gPiBkaXZbZGF0YS1oYXMtc291cmNlXTpob3ZlciB7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWZyYW1lXSA+IGRpdltkYXRhLWhhcy1zb3VyY2VdID4gc3ZnIHtcXG4gICAgZGlzcGxheTogdW5zZXQ7XFxuICB9XFxuXCJdKSkpO1xudmFyIHRlbXBsYXRlT2JqZWN0XzE7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1SdW50aW1lRXJyb3IuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/container/RuntimeError.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/helpers/nodeStackFrames.js": +/*!**************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/helpers/nodeStackFrames.js ***! + \**************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nexports.__esModule = true;\nexports.getNodeError = exports.isNodeError = exports.getFilesystemFrame = void 0;\nvar stacktrace_parser_1 = __webpack_require__(/*! stacktrace-parser */ \"./node_modules/stacktrace-parser/dist/stack-trace-parser.esm.js\");\nfunction getFilesystemFrame(frame) {\n var f = __assign({}, frame);\n if (typeof f.file === 'string') {\n if (\n // Posix:\n f.file.startsWith('/') ||\n // Win32:\n /^[a-z]:\\\\/i.test(f.file) ||\n // Win32 UNC:\n f.file.startsWith('\\\\\\\\')) {\n f.file = \"file://\" + f.file;\n }\n }\n return f;\n}\nexports.getFilesystemFrame = getFilesystemFrame;\nvar symbolNodeError = Symbol('NextjsNodeError');\nfunction isNodeError(error) {\n return symbolNodeError in error;\n}\nexports.isNodeError = isNodeError;\nfunction getNodeError(error) {\n var n;\n try {\n throw new Error(error.message);\n }\n catch (e) {\n n = e;\n }\n n.name = error.name;\n try {\n n.stack = (0, stacktrace_parser_1.parse)(error.stack)\n .map(getFilesystemFrame)\n .map(function (f) {\n var str = \" at \" + f.methodName;\n if (f.file) {\n var loc = f.file;\n if (f.lineNumber) {\n loc += \":\" + f.lineNumber;\n if (f.column) {\n loc += \":\" + f.column;\n }\n }\n str += \" (\" + loc + \")\";\n }\n return str;\n })\n .join('\\n');\n }\n catch (_a) {\n n.stack = error.stack;\n }\n Object.defineProperty(n, symbolNodeError, {\n writable: false,\n enumerable: false,\n configurable: false\n });\n return n;\n}\nexports.getNodeError = getNodeError;\n//# sourceMappingURL=nodeStackFrames.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2hlbHBlcnMvbm9kZVN0YWNrRnJhbWVzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQTtBQUNBLGlEQUFpRCxPQUFPO0FBQ3hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEIsb0JBQW9CLEdBQUcsbUJBQW1CLEdBQUcsMEJBQTBCO0FBQ3ZFLDBCQUEwQixtQkFBTyxDQUFDLDBGQUFtQjtBQUNyRDtBQUNBLHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQjtBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQjtBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2hlbHBlcnMvbm9kZVN0YWNrRnJhbWVzLmpzPzIyOTAiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19hc3NpZ24gPSAodGhpcyAmJiB0aGlzLl9fYXNzaWduKSB8fCBmdW5jdGlvbiAoKSB7XG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKVxuICAgICAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0O1xuICAgIH07XG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59O1xuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHMuZ2V0Tm9kZUVycm9yID0gZXhwb3J0cy5pc05vZGVFcnJvciA9IGV4cG9ydHMuZ2V0RmlsZXN5c3RlbUZyYW1lID0gdm9pZCAwO1xudmFyIHN0YWNrdHJhY2VfcGFyc2VyXzEgPSByZXF1aXJlKFwic3RhY2t0cmFjZS1wYXJzZXJcIik7XG5mdW5jdGlvbiBnZXRGaWxlc3lzdGVtRnJhbWUoZnJhbWUpIHtcbiAgICB2YXIgZiA9IF9fYXNzaWduKHt9LCBmcmFtZSk7XG4gICAgaWYgKHR5cGVvZiBmLmZpbGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgLy8gUG9zaXg6XG4gICAgICAgIGYuZmlsZS5zdGFydHNXaXRoKCcvJykgfHxcbiAgICAgICAgICAgIC8vIFdpbjMyOlxuICAgICAgICAgICAgL15bYS16XTpcXFxcL2kudGVzdChmLmZpbGUpIHx8XG4gICAgICAgICAgICAvLyBXaW4zMiBVTkM6XG4gICAgICAgICAgICBmLmZpbGUuc3RhcnRzV2l0aCgnXFxcXFxcXFwnKSkge1xuICAgICAgICAgICAgZi5maWxlID0gXCJmaWxlOi8vXCIgKyBmLmZpbGU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGY7XG59XG5leHBvcnRzLmdldEZpbGVzeXN0ZW1GcmFtZSA9IGdldEZpbGVzeXN0ZW1GcmFtZTtcbnZhciBzeW1ib2xOb2RlRXJyb3IgPSBTeW1ib2woJ05leHRqc05vZGVFcnJvcicpO1xuZnVuY3Rpb24gaXNOb2RlRXJyb3IoZXJyb3IpIHtcbiAgICByZXR1cm4gc3ltYm9sTm9kZUVycm9yIGluIGVycm9yO1xufVxuZXhwb3J0cy5pc05vZGVFcnJvciA9IGlzTm9kZUVycm9yO1xuZnVuY3Rpb24gZ2V0Tm9kZUVycm9yKGVycm9yKSB7XG4gICAgdmFyIG47XG4gICAgdHJ5IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yLm1lc3NhZ2UpO1xuICAgIH1cbiAgICBjYXRjaCAoZSkge1xuICAgICAgICBuID0gZTtcbiAgICB9XG4gICAgbi5uYW1lID0gZXJyb3IubmFtZTtcbiAgICB0cnkge1xuICAgICAgICBuLnN0YWNrID0gKDAsIHN0YWNrdHJhY2VfcGFyc2VyXzEucGFyc2UpKGVycm9yLnN0YWNrKVxuICAgICAgICAgICAgLm1hcChnZXRGaWxlc3lzdGVtRnJhbWUpXG4gICAgICAgICAgICAubWFwKGZ1bmN0aW9uIChmKSB7XG4gICAgICAgICAgICB2YXIgc3RyID0gXCIgICAgYXQgXCIgKyBmLm1ldGhvZE5hbWU7XG4gICAgICAgICAgICBpZiAoZi5maWxlKSB7XG4gICAgICAgICAgICAgICAgdmFyIGxvYyA9IGYuZmlsZTtcbiAgICAgICAgICAgICAgICBpZiAoZi5saW5lTnVtYmVyKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvYyArPSBcIjpcIiArIGYubGluZU51bWJlcjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGYuY29sdW1uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2MgKz0gXCI6XCIgKyBmLmNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzdHIgKz0gXCIgKFwiICsgbG9jICsgXCIpXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gc3RyO1xuICAgICAgICB9KVxuICAgICAgICAgICAgLmpvaW4oJ1xcbicpO1xuICAgIH1cbiAgICBjYXRjaCAoX2EpIHtcbiAgICAgICAgbi5zdGFjayA9IGVycm9yLnN0YWNrO1xuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobiwgc3ltYm9sTm9kZUVycm9yLCB7XG4gICAgICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2VcbiAgICB9KTtcbiAgICByZXR1cm4gbjtcbn1cbmV4cG9ydHMuZ2V0Tm9kZUVycm9yID0gZ2V0Tm9kZUVycm9yO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bm9kZVN0YWNrRnJhbWVzLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/helpers/nodeStackFrames.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/helpers/noop-template.js": +/*!************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/helpers/noop-template.js ***! + \************************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nexports.__esModule = true;\nexports.noop = void 0;\nfunction noop(strings) {\n var keys = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n keys[_i - 1] = arguments[_i];\n }\n var lastIndex = strings.length - 1;\n return (strings.slice(0, lastIndex).reduce(function (p, s, i) { return p + s + keys[i]; }, '') +\n strings[lastIndex]);\n}\nexports.noop = noop;\n//# sourceMappingURL=noop-template.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2hlbHBlcnMvbm9vcC10ZW1wbGF0ZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLGtCQUFrQjtBQUNsQixZQUFZO0FBQ1o7QUFDQTtBQUNBLHFCQUFxQix1QkFBdUI7QUFDNUM7QUFDQTtBQUNBO0FBQ0Esb0VBQW9FLHlCQUF5QjtBQUM3RjtBQUNBO0FBQ0EsWUFBWTtBQUNaIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AbmV4dC9yZWFjdC1kZXYtb3ZlcmxheS9saWIvaW50ZXJuYWwvaGVscGVycy9ub29wLXRlbXBsYXRlLmpzP2Y1ZTEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5ub29wID0gdm9pZCAwO1xuZnVuY3Rpb24gbm9vcChzdHJpbmdzKSB7XG4gICAgdmFyIGtleXMgPSBbXTtcbiAgICBmb3IgKHZhciBfaSA9IDE7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykge1xuICAgICAgICBrZXlzW19pIC0gMV0gPSBhcmd1bWVudHNbX2ldO1xuICAgIH1cbiAgICB2YXIgbGFzdEluZGV4ID0gc3RyaW5ncy5sZW5ndGggLSAxO1xuICAgIHJldHVybiAoc3RyaW5ncy5zbGljZSgwLCBsYXN0SW5kZXgpLnJlZHVjZShmdW5jdGlvbiAocCwgcywgaSkgeyByZXR1cm4gcCArIHMgKyBrZXlzW2ldOyB9LCAnJykgK1xuICAgICAgICBzdHJpbmdzW2xhc3RJbmRleF0pO1xufVxuZXhwb3J0cy5ub29wID0gbm9vcDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW5vb3AtdGVtcGxhdGUuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/helpers/noop-template.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/helpers/parseStack.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/helpers/parseStack.js ***! + \*********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nexports.__esModule = true;\nexports.parseStack = void 0;\nvar stacktrace_parser_1 = __webpack_require__(/*! stacktrace-parser */ \"./node_modules/stacktrace-parser/dist/stack-trace-parser.esm.js\");\nvar regexNextStatic = /\\/_next(\\/static\\/.+)/g;\nfunction parseStack(stack) {\n var frames = (0, stacktrace_parser_1.parse)(stack);\n return frames.map(function (frame) {\n var _a, _b;\n try {\n var url = new URL(frame.file);\n var res = regexNextStatic.exec(url.pathname);\n if (res) {\n var distDir = (_b = (_a = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\.next\") === null || _a === void 0 ? void 0 : _a.replace(/\\\\/g, '/')) === null || _b === void 0 ? void 0 : _b.replace(/\\/$/, '');\n if (distDir) {\n frame.file = 'file://' + distDir.concat(res.pop());\n }\n }\n }\n catch (_c) { }\n return frame;\n });\n}\nexports.parseStack = parseStack;\n//# sourceMappingURL=parseStack.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2hlbHBlcnMvcGFyc2VTdGFjay5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLGtCQUFrQjtBQUNsQixrQkFBa0I7QUFDbEIsMEJBQTBCLG1CQUFPLENBQUMsMEZBQW1CO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBDQUEwQyw2Q0FBMkI7QUFDckU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxrQkFBa0I7QUFDbEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BuZXh0L3JlYWN0LWRldi1vdmVybGF5L2xpYi9pbnRlcm5hbC9oZWxwZXJzL3BhcnNlU3RhY2suanM/OTg2MCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLnBhcnNlU3RhY2sgPSB2b2lkIDA7XG52YXIgc3RhY2t0cmFjZV9wYXJzZXJfMSA9IHJlcXVpcmUoXCJzdGFja3RyYWNlLXBhcnNlclwiKTtcbnZhciByZWdleE5leHRTdGF0aWMgPSAvXFwvX25leHQoXFwvc3RhdGljXFwvLispL2c7XG5mdW5jdGlvbiBwYXJzZVN0YWNrKHN0YWNrKSB7XG4gICAgdmFyIGZyYW1lcyA9ICgwLCBzdGFja3RyYWNlX3BhcnNlcl8xLnBhcnNlKShzdGFjayk7XG4gICAgcmV0dXJuIGZyYW1lcy5tYXAoZnVuY3Rpb24gKGZyYW1lKSB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB2YXIgdXJsID0gbmV3IFVSTChmcmFtZS5maWxlKTtcbiAgICAgICAgICAgIHZhciByZXMgPSByZWdleE5leHRTdGF0aWMuZXhlYyh1cmwucGF0aG5hbWUpO1xuICAgICAgICAgICAgaWYgKHJlcykge1xuICAgICAgICAgICAgICAgIHZhciBkaXN0RGlyID0gKF9iID0gKF9hID0gcHJvY2Vzcy5lbnYuX19ORVhUX0RJU1RfRElSKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EucmVwbGFjZSgvXFxcXC9nLCAnLycpKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IucmVwbGFjZSgvXFwvJC8sICcnKTtcbiAgICAgICAgICAgICAgICBpZiAoZGlzdERpcikge1xuICAgICAgICAgICAgICAgICAgICBmcmFtZS5maWxlID0gJ2ZpbGU6Ly8nICsgZGlzdERpci5jb25jYXQocmVzLnBvcCgpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKF9jKSB7IH1cbiAgICAgICAgcmV0dXJuIGZyYW1lO1xuICAgIH0pO1xufVxuZXhwb3J0cy5wYXJzZVN0YWNrID0gcGFyc2VTdGFjaztcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBhcnNlU3RhY2suanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/helpers/parseStack.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/helpers/stack-frame.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/helpers/stack-frame.js ***! + \**********************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nexports.__esModule = true;\nexports.getFrameSource = exports.getOriginalStackFrame = exports.getOriginalStackFrames = void 0;\nfunction getOriginalStackFrames(isServerSide, frames) {\n return Promise.all(frames.map(function (frame) { return getOriginalStackFrame(isServerSide, frame); }));\n}\nexports.getOriginalStackFrames = getOriginalStackFrames;\nfunction getOriginalStackFrame(isServerSide, source) {\n var _a, _b;\n function _getOriginalStackFrame() {\n var _a, _b, _c, _d, _e;\n return __awaiter(this, void 0, void 0, function () {\n var params, key, controller, tm, res, _f, _g, _h, body;\n return __generator(this, function (_j) {\n switch (_j.label) {\n case 0:\n params = new URLSearchParams();\n params.append('isServerSide', String(isServerSide));\n for (key in source) {\n params.append(key, ((_a = source[key]) !== null && _a !== void 0 ? _a : '').toString());\n }\n controller = new AbortController();\n tm = setTimeout(function () { return controller.abort(); }, 3000);\n return [4 /*yield*/, self\n .fetch(( false || '') + \"/__nextjs_original-stack-frame?\" + params.toString(), {\n signal: controller.signal\n })[\"finally\"](function () {\n clearTimeout(tm);\n })];\n case 1:\n res = _j.sent();\n if (!(!res.ok || res.status === 204)) return [3 /*break*/, 3];\n _g = (_f = Promise).reject;\n _h = Error.bind;\n return [4 /*yield*/, res.text()];\n case 2: return [2 /*return*/, _g.apply(_f, [new (_h.apply(Error, [void 0, _j.sent()]))()])];\n case 3: return [4 /*yield*/, res.json()];\n case 4:\n body = _j.sent();\n return [2 /*return*/, {\n error: false,\n reason: null,\n external: false,\n expanded: !Boolean(\n /* collapsed */\n (_e = (((_b = source.file) === null || _b === void 0 ? void 0 : _b.includes('node_modules')) ||\n ((_d = (_c = body.originalStackFrame) === null || _c === void 0 ? void 0 : _c.file) === null || _d === void 0 ? void 0 : _d.includes('node_modules')))) !== null && _e !== void 0 ? _e : true),\n sourceStackFrame: source,\n originalStackFrame: body.originalStackFrame,\n originalCodeFrame: body.originalCodeFrame || null\n }];\n }\n });\n });\n }\n if (!(((_a = source.file) === null || _a === void 0 ? void 0 : _a.startsWith('webpack-internal:')) ||\n ((_b = source.file) === null || _b === void 0 ? void 0 : _b.startsWith('file:')))) {\n return Promise.resolve({\n error: false,\n reason: null,\n external: true,\n expanded: false,\n sourceStackFrame: source,\n originalStackFrame: null,\n originalCodeFrame: null\n });\n }\n return _getOriginalStackFrame()[\"catch\"](function (err) {\n var _a, _b;\n return ({\n error: true,\n reason: (_b = (_a = err === null || err === void 0 ? void 0 : err.message) !== null && _a !== void 0 ? _a : err === null || err === void 0 ? void 0 : err.toString()) !== null && _b !== void 0 ? _b : 'Unknown Error',\n external: false,\n expanded: false,\n sourceStackFrame: source,\n originalStackFrame: null,\n originalCodeFrame: null\n });\n });\n}\nexports.getOriginalStackFrame = getOriginalStackFrame;\nfunction getFrameSource(frame) {\n var _a;\n var str = '';\n try {\n var u = new URL(frame.file);\n // Strip the origin for same-origin scripts.\n if (typeof globalThis !== 'undefined' &&\n ((_a = globalThis.location) === null || _a === void 0 ? void 0 : _a.origin) !== u.origin) {\n // URLs can be valid without an `origin`, so long as they have a\n // `protocol`. However, `origin` is preferred.\n if (u.origin === 'null') {\n str += u.protocol;\n }\n else {\n str += u.origin;\n }\n }\n // Strip query string information as it's typically too verbose to be\n // meaningful.\n str += u.pathname;\n str += ' ';\n }\n catch (_b) {\n str += (frame.file || '(unknown)') + ' ';\n }\n if (frame.lineNumber != null) {\n if (frame.column != null) {\n str += \"(\" + frame.lineNumber + \":\" + frame.column + \") \";\n }\n else {\n str += \"(\" + frame.lineNumber + \") \";\n }\n }\n return str.slice(0, -1);\n}\nexports.getFrameSource = getFrameSource;\n//# sourceMappingURL=stack-frame.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2hlbHBlcnMvc3RhY2stZnJhbWUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBLDRCQUE0QiwrREFBK0QsaUJBQWlCO0FBQzVHO0FBQ0Esb0NBQW9DLE1BQU0sK0JBQStCLFlBQVk7QUFDckYsbUNBQW1DLE1BQU0sbUNBQW1DLFlBQVk7QUFDeEYsZ0NBQWdDO0FBQ2hDO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxjQUFjLDZCQUE2QiwwQkFBMEIsY0FBYyxxQkFBcUI7QUFDeEcsaUJBQWlCLG9EQUFvRCxxRUFBcUUsY0FBYztBQUN4Six1QkFBdUIsc0JBQXNCO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdDQUF3QztBQUN4QyxtQ0FBbUMsU0FBUztBQUM1QyxtQ0FBbUMsV0FBVyxVQUFVO0FBQ3hELDBDQUEwQyxjQUFjO0FBQ3hEO0FBQ0EsOEdBQThHLE9BQU87QUFDckgsaUZBQWlGLGlCQUFpQjtBQUNsRyx5REFBeUQsZ0JBQWdCLFFBQVE7QUFDakYsK0NBQStDLGdCQUFnQixnQkFBZ0I7QUFDL0U7QUFDQSxrQ0FBa0M7QUFDbEM7QUFDQTtBQUNBLFVBQVUsWUFBWSxhQUFhLFNBQVMsVUFBVTtBQUN0RCxvQ0FBb0MsU0FBUztBQUM3QztBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCLHNCQUFzQixHQUFHLDZCQUE2QixHQUFHLDhCQUE4QjtBQUN2RjtBQUNBLHFEQUFxRCxvREFBb0Q7QUFDekc7QUFDQSw4QkFBOEI7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0RBQXNELDRCQUE0QjtBQUNsRjtBQUNBLHdDQUF3QyxNQUFrQztBQUMxRTtBQUNBLDZCQUE2QjtBQUM3QjtBQUNBLDZCQUE2QjtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkI7QUFDN0I7QUFDQSxhQUFhO0FBQ2IsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxLQUFLO0FBQ0w7QUFDQSw2QkFBNkI7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQjtBQUN0QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2hlbHBlcnMvc3RhY2stZnJhbWUuanM/MDNhYyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xudmFyIF9fZ2VuZXJhdG9yID0gKHRoaXMgJiYgdGhpcy5fX2dlbmVyYXRvcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIGJvZHkpIHtcbiAgICB2YXIgXyA9IHsgbGFiZWw6IDAsIHNlbnQ6IGZ1bmN0aW9uKCkgeyBpZiAodFswXSAmIDEpIHRocm93IHRbMV07IHJldHVybiB0WzFdOyB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCBmLCB5LCB0LCBnO1xuICAgIHJldHVybiBnID0geyBuZXh0OiB2ZXJiKDApLCBcInRocm93XCI6IHZlcmIoMSksIFwicmV0dXJuXCI6IHZlcmIoMikgfSwgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIChnW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbigpIHsgcmV0dXJuIHRoaXM7IH0pLCBnO1xuICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxuICAgIGZ1bmN0aW9uIHN0ZXAob3ApIHtcbiAgICAgICAgaWYgKGYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuXCIpO1xuICAgICAgICB3aGlsZSAoXykgdHJ5IHtcbiAgICAgICAgICAgIGlmIChmID0gMSwgeSAmJiAodCA9IG9wWzBdICYgMiA/IHlbXCJyZXR1cm5cIl0gOiBvcFswXSA/IHlbXCJ0aHJvd1wiXSB8fCAoKHQgPSB5W1wicmV0dXJuXCJdKSAmJiB0LmNhbGwoeSksIDApIDogeS5uZXh0KSAmJiAhKHQgPSB0LmNhbGwoeSwgb3BbMV0pKS5kb25lKSByZXR1cm4gdDtcbiAgICAgICAgICAgIGlmICh5ID0gMCwgdCkgb3AgPSBbb3BbMF0gJiAyLCB0LnZhbHVlXTtcbiAgICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHtcbiAgICAgICAgICAgICAgICBjYXNlIDA6IGNhc2UgMTogdCA9IG9wOyBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDQ6IF8ubGFiZWwrKzsgcmV0dXJuIHsgdmFsdWU6IG9wWzFdLCBkb25lOiBmYWxzZSB9O1xuICAgICAgICAgICAgICAgIGNhc2UgNTogXy5sYWJlbCsrOyB5ID0gb3BbMV07IG9wID0gWzBdOyBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjYXNlIDc6IG9wID0gXy5vcHMucG9wKCk7IF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEodCA9IF8udHJ5cywgdCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmIChvcFswXSA9PT0gNiB8fCBvcFswXSA9PT0gMikpIHsgXyA9IDA7IGNvbnRpbnVlOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gMyAmJiAoIXQgfHwgKG9wWzFdID4gdFswXSAmJiBvcFsxXSA8IHRbM10pKSkgeyBfLmxhYmVsID0gb3BbMV07IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gNiAmJiBfLmxhYmVsIDwgdFsxXSkgeyBfLmxhYmVsID0gdFsxXTsgdCA9IG9wOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkgeyBfLmxhYmVsID0gdFsyXTsgXy5vcHMucHVzaChvcCk7IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0WzJdKSBfLm9wcy5wb3AoKTtcbiAgICAgICAgICAgICAgICAgICAgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wID0gYm9keS5jYWxsKHRoaXNBcmcsIF8pO1xuICAgICAgICB9IGNhdGNoIChlKSB7IG9wID0gWzYsIGVdOyB5ID0gMDsgfSBmaW5hbGx5IHsgZiA9IHQgPSAwOyB9XG4gICAgICAgIGlmIChvcFswXSAmIDUpIHRocm93IG9wWzFdOyByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xuICAgIH1cbn07XG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5nZXRGcmFtZVNvdXJjZSA9IGV4cG9ydHMuZ2V0T3JpZ2luYWxTdGFja0ZyYW1lID0gZXhwb3J0cy5nZXRPcmlnaW5hbFN0YWNrRnJhbWVzID0gdm9pZCAwO1xuZnVuY3Rpb24gZ2V0T3JpZ2luYWxTdGFja0ZyYW1lcyhpc1NlcnZlclNpZGUsIGZyYW1lcykge1xuICAgIHJldHVybiBQcm9taXNlLmFsbChmcmFtZXMubWFwKGZ1bmN0aW9uIChmcmFtZSkgeyByZXR1cm4gZ2V0T3JpZ2luYWxTdGFja0ZyYW1lKGlzU2VydmVyU2lkZSwgZnJhbWUpOyB9KSk7XG59XG5leHBvcnRzLmdldE9yaWdpbmFsU3RhY2tGcmFtZXMgPSBnZXRPcmlnaW5hbFN0YWNrRnJhbWVzO1xuZnVuY3Rpb24gZ2V0T3JpZ2luYWxTdGFja0ZyYW1lKGlzU2VydmVyU2lkZSwgc291cmNlKSB7XG4gICAgdmFyIF9hLCBfYjtcbiAgICBmdW5jdGlvbiBfZ2V0T3JpZ2luYWxTdGFja0ZyYW1lKCkge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2QsIF9lO1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgcGFyYW1zLCBrZXksIGNvbnRyb2xsZXIsIHRtLCByZXMsIF9mLCBfZywgX2gsIGJvZHk7XG4gICAgICAgICAgICByZXR1cm4gX19nZW5lcmF0b3IodGhpcywgZnVuY3Rpb24gKF9qKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChfai5sYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMuYXBwZW5kKCdpc1NlcnZlclNpZGUnLCBTdHJpbmcoaXNTZXJ2ZXJTaWRlKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGtleSBpbiBzb3VyY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMuYXBwZW5kKGtleSwgKChfYSA9IHNvdXJjZVtrZXldKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAnJykudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdG0gPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgcmV0dXJuIGNvbnRyb2xsZXIuYWJvcnQoKTsgfSwgMzAwMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzQgLyp5aWVsZCovLCBzZWxmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5mZXRjaCgocHJvY2Vzcy5lbnYuX19ORVhUX1JPVVRFUl9CQVNFUEFUSCB8fCAnJykgKyBcIi9fX25leHRqc19vcmlnaW5hbC1zdGFjay1mcmFtZT9cIiArIHBhcmFtcy50b1N0cmluZygpLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25hbDogY29udHJvbGxlci5zaWduYWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVtcImZpbmFsbHlcIl0oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQodG0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXTtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gX2ouc2VudCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEoIXJlcy5vayB8fCByZXMuc3RhdHVzID09PSAyMDQpKSByZXR1cm4gWzMgLypicmVhayovLCAzXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIF9nID0gKF9mID0gUHJvbWlzZSkucmVqZWN0O1xuICAgICAgICAgICAgICAgICAgICAgICAgX2ggPSBFcnJvci5iaW5kO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFs0IC8qeWllbGQqLywgcmVzLnRleHQoKV07XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMjogcmV0dXJuIFsyIC8qcmV0dXJuKi8sIF9nLmFwcGx5KF9mLCBbbmV3IChfaC5hcHBseShFcnJvciwgW3ZvaWQgMCwgX2ouc2VudCgpXSkpKCldKV07XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMzogcmV0dXJuIFs0IC8qeWllbGQqLywgcmVzLmpzb24oKV07XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvZHkgPSBfai5zZW50KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzIgLypyZXR1cm4qLywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWw6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBhbmRlZDogIUJvb2xlYW4oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNvbGxhcHNlZCAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX2UgPSAoKChfYiA9IHNvdXJjZS5maWxlKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuaW5jbHVkZXMoJ25vZGVfbW9kdWxlcycpKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChfZCA9IChfYyA9IGJvZHkub3JpZ2luYWxTdGFja0ZyYW1lKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MuZmlsZSkgPT09IG51bGwgfHwgX2QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9kLmluY2x1ZGVzKCdub2RlX21vZHVsZXMnKSkpKSAhPT0gbnVsbCAmJiBfZSAhPT0gdm9pZCAwID8gX2UgOiB0cnVlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlU3RhY2tGcmFtZTogc291cmNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5hbFN0YWNrRnJhbWU6IGJvZHkub3JpZ2luYWxTdGFja0ZyYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5hbENvZGVGcmFtZTogYm9keS5vcmlnaW5hbENvZGVGcmFtZSB8fCBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAoISgoKF9hID0gc291cmNlLmZpbGUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5zdGFydHNXaXRoKCd3ZWJwYWNrLWludGVybmFsOicpKSB8fFxuICAgICAgICAoKF9iID0gc291cmNlLmZpbGUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5zdGFydHNXaXRoKCdmaWxlOicpKSkpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7XG4gICAgICAgICAgICBlcnJvcjogZmFsc2UsXG4gICAgICAgICAgICByZWFzb246IG51bGwsXG4gICAgICAgICAgICBleHRlcm5hbDogdHJ1ZSxcbiAgICAgICAgICAgIGV4cGFuZGVkOiBmYWxzZSxcbiAgICAgICAgICAgIHNvdXJjZVN0YWNrRnJhbWU6IHNvdXJjZSxcbiAgICAgICAgICAgIG9yaWdpbmFsU3RhY2tGcmFtZTogbnVsbCxcbiAgICAgICAgICAgIG9yaWdpbmFsQ29kZUZyYW1lOiBudWxsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gX2dldE9yaWdpbmFsU3RhY2tGcmFtZSgpW1wiY2F0Y2hcIl0oZnVuY3Rpb24gKGVycikge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICByZXR1cm4gKHtcbiAgICAgICAgICAgIGVycm9yOiB0cnVlLFxuICAgICAgICAgICAgcmVhc29uOiAoX2IgPSAoX2EgPSBlcnIgPT09IG51bGwgfHwgZXJyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlcnIubWVzc2FnZSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogZXJyID09PSBudWxsIHx8IGVyciA9PT0gdm9pZCAwID8gdm9pZCAwIDogZXJyLnRvU3RyaW5nKCkpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6ICdVbmtub3duIEVycm9yJyxcbiAgICAgICAgICAgIGV4dGVybmFsOiBmYWxzZSxcbiAgICAgICAgICAgIGV4cGFuZGVkOiBmYWxzZSxcbiAgICAgICAgICAgIHNvdXJjZVN0YWNrRnJhbWU6IHNvdXJjZSxcbiAgICAgICAgICAgIG9yaWdpbmFsU3RhY2tGcmFtZTogbnVsbCxcbiAgICAgICAgICAgIG9yaWdpbmFsQ29kZUZyYW1lOiBudWxsXG4gICAgICAgIH0pO1xuICAgIH0pO1xufVxuZXhwb3J0cy5nZXRPcmlnaW5hbFN0YWNrRnJhbWUgPSBnZXRPcmlnaW5hbFN0YWNrRnJhbWU7XG5mdW5jdGlvbiBnZXRGcmFtZVNvdXJjZShmcmFtZSkge1xuICAgIHZhciBfYTtcbiAgICB2YXIgc3RyID0gJyc7XG4gICAgdHJ5IHtcbiAgICAgICAgdmFyIHUgPSBuZXcgVVJMKGZyYW1lLmZpbGUpO1xuICAgICAgICAvLyBTdHJpcCB0aGUgb3JpZ2luIGZvciBzYW1lLW9yaWdpbiBzY3JpcHRzLlxuICAgICAgICBpZiAodHlwZW9mIGdsb2JhbFRoaXMgIT09ICd1bmRlZmluZWQnICYmXG4gICAgICAgICAgICAoKF9hID0gZ2xvYmFsVGhpcy5sb2NhdGlvbikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm9yaWdpbikgIT09IHUub3JpZ2luKSB7XG4gICAgICAgICAgICAvLyBVUkxzIGNhbiBiZSB2YWxpZCB3aXRob3V0IGFuIGBvcmlnaW5gLCBzbyBsb25nIGFzIHRoZXkgaGF2ZSBhXG4gICAgICAgICAgICAvLyBgcHJvdG9jb2xgLiBIb3dldmVyLCBgb3JpZ2luYCBpcyBwcmVmZXJyZWQuXG4gICAgICAgICAgICBpZiAodS5vcmlnaW4gPT09ICdudWxsJykge1xuICAgICAgICAgICAgICAgIHN0ciArPSB1LnByb3RvY29sO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgc3RyICs9IHUub3JpZ2luO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIFN0cmlwIHF1ZXJ5IHN0cmluZyBpbmZvcm1hdGlvbiBhcyBpdCdzIHR5cGljYWxseSB0b28gdmVyYm9zZSB0byBiZVxuICAgICAgICAvLyBtZWFuaW5nZnVsLlxuICAgICAgICBzdHIgKz0gdS5wYXRobmFtZTtcbiAgICAgICAgc3RyICs9ICcgJztcbiAgICB9XG4gICAgY2F0Y2ggKF9iKSB7XG4gICAgICAgIHN0ciArPSAoZnJhbWUuZmlsZSB8fCAnKHVua25vd24pJykgKyAnICc7XG4gICAgfVxuICAgIGlmIChmcmFtZS5saW5lTnVtYmVyICE9IG51bGwpIHtcbiAgICAgICAgaWYgKGZyYW1lLmNvbHVtbiAhPSBudWxsKSB7XG4gICAgICAgICAgICBzdHIgKz0gXCIoXCIgKyBmcmFtZS5saW5lTnVtYmVyICsgXCI6XCIgKyBmcmFtZS5jb2x1bW4gKyBcIikgXCI7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBzdHIgKz0gXCIoXCIgKyBmcmFtZS5saW5lTnVtYmVyICsgXCIpIFwiO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBzdHIuc2xpY2UoMCwgLTEpO1xufVxuZXhwb3J0cy5nZXRGcmFtZVNvdXJjZSA9IGdldEZyYW1lU291cmNlO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c3RhY2stZnJhbWUuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/helpers/stack-frame.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/hooks/use-on-click-outside.js": +/*!*****************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/hooks/use-on-click-outside.js ***! + \*****************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nexports.__esModule = true;\nexports.useOnClickOutside = void 0;\nvar React = __importStar(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nfunction useOnClickOutside(el, handler) {\n React.useEffect(function () {\n if (el == null || handler == null) {\n return;\n }\n var listener = function (e) {\n // Do nothing if clicking ref's element or descendent elements\n if (!el || el.contains(e.target)) {\n return;\n }\n handler(e);\n };\n var root = el.getRootNode();\n root.addEventListener('mousedown', listener);\n root.addEventListener('touchstart', listener);\n return function () {\n root.removeEventListener('mousedown', listener);\n root.removeEventListener('touchstart', listener);\n };\n }, [handler, el]);\n}\nexports.useOnClickOutside = useOnClickOutside;\n//# sourceMappingURL=use-on-click-outside.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL2hvb2tzL3VzZS1vbi1jbGljay1vdXRzaWRlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQTtBQUNBLG1DQUFtQyxvQ0FBb0MsZ0JBQWdCO0FBQ3ZGLENBQUM7QUFDRDtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0EsMENBQTBDLDRCQUE0QjtBQUN0RSxDQUFDO0FBQ0Q7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEIseUJBQXlCO0FBQ3pCLHlCQUF5QixtQkFBTyxDQUFDLDRDQUFPO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EseUJBQXlCO0FBQ3pCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AbmV4dC9yZWFjdC1kZXYtb3ZlcmxheS9saWIvaW50ZXJuYWwvaG9va3MvdXNlLW9uLWNsaWNrLW91dHNpZGUuanM/ODYyMCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2NyZWF0ZUJpbmRpbmcgPSAodGhpcyAmJiB0aGlzLl9fY3JlYXRlQmluZGluZykgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gbVtrXTsgfSB9KTtcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBvW2syXSA9IG1ba107XG59KSk7XG52YXIgX19zZXRNb2R1bGVEZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX3NldE1vZHVsZURlZmF1bHQpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIHYpIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgXCJkZWZhdWx0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7XG59KSA6IGZ1bmN0aW9uKG8sIHYpIHtcbiAgICBvW1wiZGVmYXVsdFwiXSA9IHY7XG59KTtcbnZhciBfX2ltcG9ydFN0YXIgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0U3RhcikgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpIHJldHVybiBtb2Q7XG4gICAgdmFyIHJlc3VsdCA9IHt9O1xuICAgIGlmIChtb2QgIT0gbnVsbCkgZm9yICh2YXIgayBpbiBtb2QpIGlmIChrICE9PSBcImRlZmF1bHRcIiAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobW9kLCBrKSkgX19jcmVhdGVCaW5kaW5nKHJlc3VsdCwgbW9kLCBrKTtcbiAgICBfX3NldE1vZHVsZURlZmF1bHQocmVzdWx0LCBtb2QpO1xuICAgIHJldHVybiByZXN1bHQ7XG59O1xuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHMudXNlT25DbGlja091dHNpZGUgPSB2b2lkIDA7XG52YXIgUmVhY3QgPSBfX2ltcG9ydFN0YXIocmVxdWlyZShcInJlYWN0XCIpKTtcbmZ1bmN0aW9uIHVzZU9uQ2xpY2tPdXRzaWRlKGVsLCBoYW5kbGVyKSB7XG4gICAgUmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKGVsID09IG51bGwgfHwgaGFuZGxlciA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGxpc3RlbmVyID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIC8vIERvIG5vdGhpbmcgaWYgY2xpY2tpbmcgcmVmJ3MgZWxlbWVudCBvciBkZXNjZW5kZW50IGVsZW1lbnRzXG4gICAgICAgICAgICBpZiAoIWVsIHx8IGVsLmNvbnRhaW5zKGUudGFyZ2V0KSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGhhbmRsZXIoZSk7XG4gICAgICAgIH07XG4gICAgICAgIHZhciByb290ID0gZWwuZ2V0Um9vdE5vZGUoKTtcbiAgICAgICAgcm9vdC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBsaXN0ZW5lcik7XG4gICAgICAgIHJvb3QuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIGxpc3RlbmVyKTtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJvb3QucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgbGlzdGVuZXIpO1xuICAgICAgICAgICAgcm9vdC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgbGlzdGVuZXIpO1xuICAgICAgICB9O1xuICAgIH0sIFtoYW5kbGVyLCBlbF0pO1xufVxuZXhwb3J0cy51c2VPbkNsaWNrT3V0c2lkZSA9IHVzZU9uQ2xpY2tPdXRzaWRlO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXNlLW9uLWNsaWNrLW91dHNpZGUuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/hooks/use-on-click-outside.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/styles/Base.js": +/*!**************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/styles/Base.js ***! + \**************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nexports.__esModule = true;\nexports.Base = void 0;\nvar React = __importStar(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nvar noop_template_1 = __webpack_require__(/*! ../helpers/noop-template */ \"./node_modules/@next/react-dev-overlay/lib/internal/helpers/noop-template.js\");\nfunction Base() {\n return (React.createElement(\"style\", { dangerouslySetInnerHTML: {\n __html: (0, noop_template_1.noop)(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\n :host {\\n --size-gap-half: 4px;\\n --size-gap: 8px;\\n --size-gap-double: 16px;\\n --size-gap-quad: 32px;\\n\\n --size-font-small: 14px;\\n --size-font: 16px;\\n --size-font-big: 20px;\\n --size-font-bigger: 24px;\\n\\n --color-accents-1: #808080;\\n --color-accents-2: #222222;\\n --color-accents-3: #404040;\\n\\n --font-stack-monospace: 'SFMono-Regular', Consolas,\\n 'Liberation Mono', Menlo, Courier, monospace;\\n\\n --color-ansi-selection: rgba(95, 126, 151, 0.48);\\n --color-ansi-bg: #111111;\\n --color-ansi-fg: #cccccc;\\n\\n --color-ansi-white: #777777;\\n --color-ansi-black: #141414;\\n --color-ansi-blue: #00aaff;\\n --color-ansi-cyan: #88ddff;\\n --color-ansi-green: #98ec65;\\n --color-ansi-magenta: #aa88ff;\\n --color-ansi-red: #ff5555;\\n --color-ansi-yellow: #ffcc33;\\n --color-ansi-bright-white: #ffffff;\\n --color-ansi-bright-black: #777777;\\n --color-ansi-bright-blue: #33bbff;\\n --color-ansi-bright-cyan: #bbecff;\\n --color-ansi-bright-green: #b6f292;\\n --color-ansi-bright-magenta: #cebbff;\\n --color-ansi-bright-red: #ff8888;\\n --color-ansi-bright-yellow: #ffd966;\\n }\\n\\n .mono {\\n font-family: var(--font-stack-monospace);\\n }\\n\\n h1,\\n h2,\\n h3,\\n h4,\\n h5,\\n h6 {\\n margin-bottom: var(--size-gap);\\n font-weight: 500;\\n line-height: 1.5;\\n }\\n\\n h1 {\\n font-size: 40px;\\n }\\n h2 {\\n font-size: 32px;\\n }\\n h3 {\\n font-size: 28px;\\n }\\n h4 {\\n font-size: 24px;\\n }\\n h5 {\\n font-size: 20px;\\n }\\n h6 {\\n font-size: 16px;\\n }\\n \"], [\"\\n :host {\\n --size-gap-half: 4px;\\n --size-gap: 8px;\\n --size-gap-double: 16px;\\n --size-gap-quad: 32px;\\n\\n --size-font-small: 14px;\\n --size-font: 16px;\\n --size-font-big: 20px;\\n --size-font-bigger: 24px;\\n\\n --color-accents-1: #808080;\\n --color-accents-2: #222222;\\n --color-accents-3: #404040;\\n\\n --font-stack-monospace: 'SFMono-Regular', Consolas,\\n 'Liberation Mono', Menlo, Courier, monospace;\\n\\n --color-ansi-selection: rgba(95, 126, 151, 0.48);\\n --color-ansi-bg: #111111;\\n --color-ansi-fg: #cccccc;\\n\\n --color-ansi-white: #777777;\\n --color-ansi-black: #141414;\\n --color-ansi-blue: #00aaff;\\n --color-ansi-cyan: #88ddff;\\n --color-ansi-green: #98ec65;\\n --color-ansi-magenta: #aa88ff;\\n --color-ansi-red: #ff5555;\\n --color-ansi-yellow: #ffcc33;\\n --color-ansi-bright-white: #ffffff;\\n --color-ansi-bright-black: #777777;\\n --color-ansi-bright-blue: #33bbff;\\n --color-ansi-bright-cyan: #bbecff;\\n --color-ansi-bright-green: #b6f292;\\n --color-ansi-bright-magenta: #cebbff;\\n --color-ansi-bright-red: #ff8888;\\n --color-ansi-bright-yellow: #ffd966;\\n }\\n\\n .mono {\\n font-family: var(--font-stack-monospace);\\n }\\n\\n h1,\\n h2,\\n h3,\\n h4,\\n h5,\\n h6 {\\n margin-bottom: var(--size-gap);\\n font-weight: 500;\\n line-height: 1.5;\\n }\\n\\n h1 {\\n font-size: 40px;\\n }\\n h2 {\\n font-size: 32px;\\n }\\n h3 {\\n font-size: 28px;\\n }\\n h4 {\\n font-size: 24px;\\n }\\n h5 {\\n font-size: 20px;\\n }\\n h6 {\\n font-size: 16px;\\n }\\n \"])))\n } }));\n}\nexports.Base = Base;\nvar templateObject_1;\n//# sourceMappingURL=Base.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL3N0eWxlcy9CYXNlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQSxpQ0FBaUMsdUNBQXVDLFlBQVksS0FBSyxPQUFPO0FBQ2hHO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLG9DQUFvQyxnQkFBZ0I7QUFDdkYsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQSwwQ0FBMEMsNEJBQTRCO0FBQ3RFLENBQUM7QUFDRDtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQixZQUFZO0FBQ1oseUJBQXlCLG1CQUFPLENBQUMsNENBQU87QUFDeEMsc0JBQXNCLG1CQUFPLENBQUMsOEdBQTBCO0FBQ3hEO0FBQ0EsMkNBQTJDO0FBQzNDLGdJQUFnSSxtQ0FBbUMsOEJBQThCLHNDQUFzQyxvQ0FBb0Msd0NBQXdDLGdDQUFnQyxvQ0FBb0MsdUNBQXVDLDJDQUEyQyx5Q0FBeUMseUNBQXlDLGdJQUFnSSxpRUFBaUUsdUNBQXVDLHVDQUF1Qyw0Q0FBNEMsMENBQTBDLHlDQUF5Qyx5Q0FBeUMsMENBQTBDLDRDQUE0Qyx3Q0FBd0MsMkNBQTJDLGlEQUFpRCxpREFBaUQsZ0RBQWdELGdEQUFnRCxpREFBaUQsbURBQW1ELCtDQUErQyxrREFBa0QsYUFBYSxxQkFBcUIsdURBQXVELGFBQWEsNkZBQTZGLDZDQUE2QywrQkFBK0IsK0JBQStCLGFBQWEsa0JBQWtCLDhCQUE4QixhQUFhLGdCQUFnQiw4QkFBOEIsYUFBYSxnQkFBZ0IsOEJBQThCLGFBQWEsZ0JBQWdCLDhCQUE4QixhQUFhLGdCQUFnQiw4QkFBOEIsYUFBYSxnQkFBZ0IsOEJBQThCLGFBQWEsbUNBQW1DLG1DQUFtQyw4QkFBOEIsc0NBQXNDLG9DQUFvQyx3Q0FBd0MsZ0NBQWdDLG9DQUFvQyx1Q0FBdUMsMkNBQTJDLHlDQUF5Qyx5Q0FBeUMsZ0lBQWdJLGlFQUFpRSx1Q0FBdUMsdUNBQXVDLDRDQUE0QywwQ0FBMEMseUNBQXlDLHlDQUF5QywwQ0FBMEMsNENBQTRDLHdDQUF3QywyQ0FBMkMsaURBQWlELGlEQUFpRCxnREFBZ0QsZ0RBQWdELGlEQUFpRCxtREFBbUQsK0NBQStDLGtEQUFrRCxhQUFhLHFCQUFxQix1REFBdUQsYUFBYSw2RkFBNkYsNkNBQTZDLCtCQUErQiwrQkFBK0IsYUFBYSxrQkFBa0IsOEJBQThCLGFBQWEsZ0JBQWdCLDhCQUE4QixhQUFhLGdCQUFnQiw4QkFBOEIsYUFBYSxnQkFBZ0IsOEJBQThCLGFBQWEsZ0JBQWdCLDhCQUE4QixhQUFhLGdCQUFnQiw4QkFBOEIsYUFBYTtBQUNydUksV0FBVztBQUNYO0FBQ0EsWUFBWTtBQUNaO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BuZXh0L3JlYWN0LWRldi1vdmVybGF5L2xpYi9pbnRlcm5hbC9zdHlsZXMvQmFzZS5qcz80NDI3Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9fbWFrZVRlbXBsYXRlT2JqZWN0ID0gKHRoaXMgJiYgdGhpcy5fX21ha2VUZW1wbGF0ZU9iamVjdCkgfHwgZnVuY3Rpb24gKGNvb2tlZCwgcmF3KSB7XG4gICAgaWYgKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29va2VkLCBcInJhd1wiLCB7IHZhbHVlOiByYXcgfSk7IH0gZWxzZSB7IGNvb2tlZC5yYXcgPSByYXc7IH1cbiAgICByZXR1cm4gY29va2VkO1xufTtcbnZhciBfX2NyZWF0ZUJpbmRpbmcgPSAodGhpcyAmJiB0aGlzLl9fY3JlYXRlQmluZGluZykgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gbVtrXTsgfSB9KTtcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBvW2syXSA9IG1ba107XG59KSk7XG52YXIgX19zZXRNb2R1bGVEZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX3NldE1vZHVsZURlZmF1bHQpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIHYpIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgXCJkZWZhdWx0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7XG59KSA6IGZ1bmN0aW9uKG8sIHYpIHtcbiAgICBvW1wiZGVmYXVsdFwiXSA9IHY7XG59KTtcbnZhciBfX2ltcG9ydFN0YXIgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0U3RhcikgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpIHJldHVybiBtb2Q7XG4gICAgdmFyIHJlc3VsdCA9IHt9O1xuICAgIGlmIChtb2QgIT0gbnVsbCkgZm9yICh2YXIgayBpbiBtb2QpIGlmIChrICE9PSBcImRlZmF1bHRcIiAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobW9kLCBrKSkgX19jcmVhdGVCaW5kaW5nKHJlc3VsdCwgbW9kLCBrKTtcbiAgICBfX3NldE1vZHVsZURlZmF1bHQocmVzdWx0LCBtb2QpO1xuICAgIHJldHVybiByZXN1bHQ7XG59O1xuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHMuQmFzZSA9IHZvaWQgMDtcbnZhciBSZWFjdCA9IF9faW1wb3J0U3RhcihyZXF1aXJlKFwicmVhY3RcIikpO1xudmFyIG5vb3BfdGVtcGxhdGVfMSA9IHJlcXVpcmUoXCIuLi9oZWxwZXJzL25vb3AtdGVtcGxhdGVcIik7XG5mdW5jdGlvbiBCYXNlKCkge1xuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChcInN0eWxlXCIsIHsgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6IHtcbiAgICAgICAgICAgIF9faHRtbDogKDAsIG5vb3BfdGVtcGxhdGVfMS5ub29wKSh0ZW1wbGF0ZU9iamVjdF8xIHx8ICh0ZW1wbGF0ZU9iamVjdF8xID0gX19tYWtlVGVtcGxhdGVPYmplY3QoW1wiXFxuICAgICAgICAgIDpob3N0IHtcXG4gICAgICAgICAgICAtLXNpemUtZ2FwLWhhbGY6IDRweDtcXG4gICAgICAgICAgICAtLXNpemUtZ2FwOiA4cHg7XFxuICAgICAgICAgICAgLS1zaXplLWdhcC1kb3VibGU6IDE2cHg7XFxuICAgICAgICAgICAgLS1zaXplLWdhcC1xdWFkOiAzMnB4O1xcblxcbiAgICAgICAgICAgIC0tc2l6ZS1mb250LXNtYWxsOiAxNHB4O1xcbiAgICAgICAgICAgIC0tc2l6ZS1mb250OiAxNnB4O1xcbiAgICAgICAgICAgIC0tc2l6ZS1mb250LWJpZzogMjBweDtcXG4gICAgICAgICAgICAtLXNpemUtZm9udC1iaWdnZXI6IDI0cHg7XFxuXFxuICAgICAgICAgICAgLS1jb2xvci1hY2NlbnRzLTE6ICM4MDgwODA7XFxuICAgICAgICAgICAgLS1jb2xvci1hY2NlbnRzLTI6ICMyMjIyMjI7XFxuICAgICAgICAgICAgLS1jb2xvci1hY2NlbnRzLTM6ICM0MDQwNDA7XFxuXFxuICAgICAgICAgICAgLS1mb250LXN0YWNrLW1vbm9zcGFjZTogJ1NGTW9uby1SZWd1bGFyJywgQ29uc29sYXMsXFxuICAgICAgICAgICAgICAnTGliZXJhdGlvbiBNb25vJywgTWVubG8sIENvdXJpZXIsIG1vbm9zcGFjZTtcXG5cXG4gICAgICAgICAgICAtLWNvbG9yLWFuc2ktc2VsZWN0aW9uOiByZ2JhKDk1LCAxMjYsIDE1MSwgMC40OCk7XFxuICAgICAgICAgICAgLS1jb2xvci1hbnNpLWJnOiAjMTExMTExO1xcbiAgICAgICAgICAgIC0tY29sb3ItYW5zaS1mZzogI2NjY2NjYztcXG5cXG4gICAgICAgICAgICAtLWNvbG9yLWFuc2ktd2hpdGU6ICM3Nzc3Nzc7XFxuICAgICAgICAgICAgLS1jb2xvci1hbnNpLWJsYWNrOiAjMTQxNDE0O1xcbiAgICAgICAgICAgIC0tY29sb3ItYW5zaS1ibHVlOiAjMDBhYWZmO1xcbiAgICAgICAgICAgIC0tY29sb3ItYW5zaS1jeWFuOiAjODhkZGZmO1xcbiAgICAgICAgICAgIC0tY29sb3ItYW5zaS1ncmVlbjogIzk4ZWM2NTtcXG4gICAgICAgICAgICAtLWNvbG9yLWFuc2ktbWFnZW50YTogI2FhODhmZjtcXG4gICAgICAgICAgICAtLWNvbG9yLWFuc2ktcmVkOiAjZmY1NTU1O1xcbiAgICAgICAgICAgIC0tY29sb3ItYW5zaS15ZWxsb3c6ICNmZmNjMzM7XFxuICAgICAgICAgICAgLS1jb2xvci1hbnNpLWJyaWdodC13aGl0ZTogI2ZmZmZmZjtcXG4gICAgICAgICAgICAtLWNvbG9yLWFuc2ktYnJpZ2h0LWJsYWNrOiAjNzc3Nzc3O1xcbiAgICAgICAgICAgIC0tY29sb3ItYW5zaS1icmlnaHQtYmx1ZTogIzMzYmJmZjtcXG4gICAgICAgICAgICAtLWNvbG9yLWFuc2ktYnJpZ2h0LWN5YW46ICNiYmVjZmY7XFxuICAgICAgICAgICAgLS1jb2xvci1hbnNpLWJyaWdodC1ncmVlbjogI2I2ZjI5MjtcXG4gICAgICAgICAgICAtLWNvbG9yLWFuc2ktYnJpZ2h0LW1hZ2VudGE6ICNjZWJiZmY7XFxuICAgICAgICAgICAgLS1jb2xvci1hbnNpLWJyaWdodC1yZWQ6ICNmZjg4ODg7XFxuICAgICAgICAgICAgLS1jb2xvci1hbnNpLWJyaWdodC15ZWxsb3c6ICNmZmQ5NjY7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgLm1vbm8ge1xcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXN0YWNrLW1vbm9zcGFjZSk7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgaDEsXFxuICAgICAgICAgIGgyLFxcbiAgICAgICAgICBoMyxcXG4gICAgICAgICAgaDQsXFxuICAgICAgICAgIGg1LFxcbiAgICAgICAgICBoNiB7XFxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc2l6ZS1nYXApO1xcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBoMSB7XFxuICAgICAgICAgICAgZm9udC1zaXplOiA0MHB4O1xcbiAgICAgICAgICB9XFxuICAgICAgICAgIGgyIHtcXG4gICAgICAgICAgICBmb250LXNpemU6IDMycHg7XFxuICAgICAgICAgIH1cXG4gICAgICAgICAgaDMge1xcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjhweDtcXG4gICAgICAgICAgfVxcbiAgICAgICAgICBoNCB7XFxuICAgICAgICAgICAgZm9udC1zaXplOiAyNHB4O1xcbiAgICAgICAgICB9XFxuICAgICAgICAgIGg1IHtcXG4gICAgICAgICAgICBmb250LXNpemU6IDIwcHg7XFxuICAgICAgICAgIH1cXG4gICAgICAgICAgaDYge1xcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcXG4gICAgICAgICAgfVxcbiAgICAgICAgXCJdLCBbXCJcXG4gICAgICAgICAgOmhvc3Qge1xcbiAgICAgICAgICAgIC0tc2l6ZS1nYXAtaGFsZjogNHB4O1xcbiAgICAgICAgICAgIC0tc2l6ZS1nYXA6IDhweDtcXG4gICAgICAgICAgICAtLXNpemUtZ2FwLWRvdWJsZTogMTZweDtcXG4gICAgICAgICAgICAtLXNpemUtZ2FwLXF1YWQ6IDMycHg7XFxuXFxuICAgICAgICAgICAgLS1zaXplLWZvbnQtc21hbGw6IDE0cHg7XFxuICAgICAgICAgICAgLS1zaXplLWZvbnQ6IDE2cHg7XFxuICAgICAgICAgICAgLS1zaXplLWZvbnQtYmlnOiAyMHB4O1xcbiAgICAgICAgICAgIC0tc2l6ZS1mb250LWJpZ2dlcjogMjRweDtcXG5cXG4gICAgICAgICAgICAtLWNvbG9yLWFjY2VudHMtMTogIzgwODA4MDtcXG4gICAgICAgICAgICAtLWNvbG9yLWFjY2VudHMtMjogIzIyMjIyMjtcXG4gICAgICAgICAgICAtLWNvbG9yLWFjY2VudHMtMzogIzQwNDA0MDtcXG5cXG4gICAgICAgICAgICAtLWZvbnQtc3RhY2stbW9ub3NwYWNlOiAnU0ZNb25vLVJlZ3VsYXInLCBDb25zb2xhcyxcXG4gICAgICAgICAgICAgICdMaWJlcmF0aW9uIE1vbm8nLCBNZW5sbywgQ291cmllciwgbW9ub3NwYWNlO1xcblxcbiAgICAgICAgICAgIC0tY29sb3ItYW5zaS1zZWxlY3Rpb246IHJnYmEoOTUsIDEyNiwgMTUxLCAwLjQ4KTtcXG4gICAgICAgICAgICAtLWNvbG9yLWFuc2ktYmc6ICMxMTExMTE7XFxuICAgICAgICAgICAgLS1jb2xvci1hbnNpLWZnOiAjY2NjY2NjO1xcblxcbiAgICAgICAgICAgIC0tY29sb3ItYW5zaS13aGl0ZTogIzc3Nzc3NztcXG4gICAgICAgICAgICAtLWNvbG9yLWFuc2ktYmxhY2s6ICMxNDE0MTQ7XFxuICAgICAgICAgICAgLS1jb2xvci1hbnNpLWJsdWU6ICMwMGFhZmY7XFxuICAgICAgICAgICAgLS1jb2xvci1hbnNpLWN5YW46ICM4OGRkZmY7XFxuICAgICAgICAgICAgLS1jb2xvci1hbnNpLWdyZWVuOiAjOThlYzY1O1xcbiAgICAgICAgICAgIC0tY29sb3ItYW5zaS1tYWdlbnRhOiAjYWE4OGZmO1xcbiAgICAgICAgICAgIC0tY29sb3ItYW5zaS1yZWQ6ICNmZjU1NTU7XFxuICAgICAgICAgICAgLS1jb2xvci1hbnNpLXllbGxvdzogI2ZmY2MzMztcXG4gICAgICAgICAgICAtLWNvbG9yLWFuc2ktYnJpZ2h0LXdoaXRlOiAjZmZmZmZmO1xcbiAgICAgICAgICAgIC0tY29sb3ItYW5zaS1icmlnaHQtYmxhY2s6ICM3Nzc3Nzc7XFxuICAgICAgICAgICAgLS1jb2xvci1hbnNpLWJyaWdodC1ibHVlOiAjMzNiYmZmO1xcbiAgICAgICAgICAgIC0tY29sb3ItYW5zaS1icmlnaHQtY3lhbjogI2JiZWNmZjtcXG4gICAgICAgICAgICAtLWNvbG9yLWFuc2ktYnJpZ2h0LWdyZWVuOiAjYjZmMjkyO1xcbiAgICAgICAgICAgIC0tY29sb3ItYW5zaS1icmlnaHQtbWFnZW50YTogI2NlYmJmZjtcXG4gICAgICAgICAgICAtLWNvbG9yLWFuc2ktYnJpZ2h0LXJlZDogI2ZmODg4ODtcXG4gICAgICAgICAgICAtLWNvbG9yLWFuc2ktYnJpZ2h0LXllbGxvdzogI2ZmZDk2NjtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICAubW9ubyB7XFxuICAgICAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc3RhY2stbW9ub3NwYWNlKTtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBoMSxcXG4gICAgICAgICAgaDIsXFxuICAgICAgICAgIGgzLFxcbiAgICAgICAgICBoNCxcXG4gICAgICAgICAgaDUsXFxuICAgICAgICAgIGg2IHtcXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zaXplLWdhcCk7XFxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS41O1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIGgxIHtcXG4gICAgICAgICAgICBmb250LXNpemU6IDQwcHg7XFxuICAgICAgICAgIH1cXG4gICAgICAgICAgaDIge1xcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMzJweDtcXG4gICAgICAgICAgfVxcbiAgICAgICAgICBoMyB7XFxuICAgICAgICAgICAgZm9udC1zaXplOiAyOHB4O1xcbiAgICAgICAgICB9XFxuICAgICAgICAgIGg0IHtcXG4gICAgICAgICAgICBmb250LXNpemU6IDI0cHg7XFxuICAgICAgICAgIH1cXG4gICAgICAgICAgaDUge1xcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDtcXG4gICAgICAgICAgfVxcbiAgICAgICAgICBoNiB7XFxuICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xcbiAgICAgICAgICB9XFxuICAgICAgICBcIl0pKSlcbiAgICAgICAgfSB9KSk7XG59XG5leHBvcnRzLkJhc2UgPSBCYXNlO1xudmFyIHRlbXBsYXRlT2JqZWN0XzE7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1CYXNlLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/styles/Base.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/styles/ComponentStyles.js": +/*!*************************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/styles/ComponentStyles.js ***! + \*************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nexports.__esModule = true;\nexports.ComponentStyles = void 0;\nvar React = __importStar(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nvar styles_1 = __webpack_require__(/*! ../components/CodeFrame/styles */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/CodeFrame/styles.js\");\nvar Dialog_1 = __webpack_require__(/*! ../components/Dialog */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/Dialog/index.js\");\nvar styles_2 = __webpack_require__(/*! ../components/LeftRightDialogHeader/styles */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/LeftRightDialogHeader/styles.js\");\nvar styles_3 = __webpack_require__(/*! ../components/Overlay/styles */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/Overlay/styles.js\");\nvar styles_4 = __webpack_require__(/*! ../components/Terminal/styles */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/Terminal/styles.js\");\nvar Toast_1 = __webpack_require__(/*! ../components/Toast */ \"./node_modules/@next/react-dev-overlay/lib/internal/components/Toast/index.js\");\nvar BuildError_1 = __webpack_require__(/*! ../container/BuildError */ \"./node_modules/@next/react-dev-overlay/lib/internal/container/BuildError.js\");\nvar Errors_1 = __webpack_require__(/*! ../container/Errors */ \"./node_modules/@next/react-dev-overlay/lib/internal/container/Errors.js\");\nvar RuntimeError_1 = __webpack_require__(/*! ../container/RuntimeError */ \"./node_modules/@next/react-dev-overlay/lib/internal/container/RuntimeError.js\");\nvar noop_template_1 = __webpack_require__(/*! ../helpers/noop-template */ \"./node_modules/@next/react-dev-overlay/lib/internal/helpers/noop-template.js\");\nfunction ComponentStyles() {\n return (React.createElement(\"style\", { dangerouslySetInnerHTML: {\n __html: (0, noop_template_1.noop)(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\n \", \"\\n \", \"\\n \", \"\\n \", \"\\n \", \"\\n \", \"\\n\\n \", \"\\n \", \"\\n \", \"\\n \"], [\"\\n \", \"\\n \", \"\\n \", \"\\n \", \"\\n \", \"\\n \", \"\\n\\n \", \"\\n \", \"\\n \", \"\\n \"])), styles_3.styles, Toast_1.styles, Dialog_1.styles, styles_2.styles, styles_1.styles, styles_4.styles, BuildError_1.styles, Errors_1.styles, RuntimeError_1.styles)\n } }));\n}\nexports.ComponentStyles = ComponentStyles;\nvar templateObject_1;\n//# sourceMappingURL=ComponentStyles.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL3N0eWxlcy9Db21wb25lbnRTdHlsZXMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBLGlDQUFpQyx1Q0FBdUMsWUFBWSxLQUFLLE9BQU87QUFDaEc7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMsb0NBQW9DLGdCQUFnQjtBQUN2RixDQUFDO0FBQ0Q7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBLDBDQUEwQyw0QkFBNEI7QUFDdEUsQ0FBQztBQUNEO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCLHVCQUF1QjtBQUN2Qix5QkFBeUIsbUJBQU8sQ0FBQyw0Q0FBTztBQUN4QyxlQUFlLG1CQUFPLENBQUMsMEhBQWdDO0FBQ3ZELGVBQWUsbUJBQU8sQ0FBQyw0R0FBc0I7QUFDN0MsZUFBZSxtQkFBTyxDQUFDLGtKQUE0QztBQUNuRSxlQUFlLG1CQUFPLENBQUMsc0hBQThCO0FBQ3JELGVBQWUsbUJBQU8sQ0FBQyx3SEFBK0I7QUFDdEQsY0FBYyxtQkFBTyxDQUFDLDBHQUFxQjtBQUMzQyxtQkFBbUIsbUJBQU8sQ0FBQyw0R0FBeUI7QUFDcEQsZUFBZSxtQkFBTyxDQUFDLG9HQUFxQjtBQUM1QyxxQkFBcUIsbUJBQU8sQ0FBQyxnSEFBMkI7QUFDeEQsc0JBQXNCLG1CQUFPLENBQUMsOEdBQTBCO0FBQ3hEO0FBQ0EsMkNBQTJDO0FBQzNDO0FBQ0EsV0FBVztBQUNYO0FBQ0EsdUJBQXVCO0FBQ3ZCO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BuZXh0L3JlYWN0LWRldi1vdmVybGF5L2xpYi9pbnRlcm5hbC9zdHlsZXMvQ29tcG9uZW50U3R5bGVzLmpzPzhlODgiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19tYWtlVGVtcGxhdGVPYmplY3QgPSAodGhpcyAmJiB0aGlzLl9fbWFrZVRlbXBsYXRlT2JqZWN0KSB8fCBmdW5jdGlvbiAoY29va2VkLCByYXcpIHtcbiAgICBpZiAoT2JqZWN0LmRlZmluZVByb3BlcnR5KSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb29rZWQsIFwicmF3XCIsIHsgdmFsdWU6IHJhdyB9KTsgfSBlbHNlIHsgY29va2VkLnJhdyA9IHJhdzsgfVxuICAgIHJldHVybiBjb29rZWQ7XG59O1xudmFyIF9fY3JlYXRlQmluZGluZyA9ICh0aGlzICYmIHRoaXMuX19jcmVhdGVCaW5kaW5nKSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH0pO1xufSkgOiAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIG9bazJdID0gbVtrXTtcbn0pKTtcbnZhciBfX3NldE1vZHVsZURlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9fc2V0TW9kdWxlRGVmYXVsdCkgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgdikge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBcImRlZmF1bHRcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdiB9KTtcbn0pIDogZnVuY3Rpb24obywgdikge1xuICAgIG9bXCJkZWZhdWx0XCJdID0gdjtcbn0pO1xudmFyIF9faW1wb3J0U3RhciA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnRTdGFyKSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDtcbiAgICB2YXIgcmVzdWx0ID0ge307XG4gICAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrIGluIG1vZCkgaWYgKGsgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChtb2QsIGspKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGspO1xuICAgIF9fc2V0TW9kdWxlRGVmYXVsdChyZXN1bHQsIG1vZCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5Db21wb25lbnRTdHlsZXMgPSB2b2lkIDA7XG52YXIgUmVhY3QgPSBfX2ltcG9ydFN0YXIocmVxdWlyZShcInJlYWN0XCIpKTtcbnZhciBzdHlsZXNfMSA9IHJlcXVpcmUoXCIuLi9jb21wb25lbnRzL0NvZGVGcmFtZS9zdHlsZXNcIik7XG52YXIgRGlhbG9nXzEgPSByZXF1aXJlKFwiLi4vY29tcG9uZW50cy9EaWFsb2dcIik7XG52YXIgc3R5bGVzXzIgPSByZXF1aXJlKFwiLi4vY29tcG9uZW50cy9MZWZ0UmlnaHREaWFsb2dIZWFkZXIvc3R5bGVzXCIpO1xudmFyIHN0eWxlc18zID0gcmVxdWlyZShcIi4uL2NvbXBvbmVudHMvT3ZlcmxheS9zdHlsZXNcIik7XG52YXIgc3R5bGVzXzQgPSByZXF1aXJlKFwiLi4vY29tcG9uZW50cy9UZXJtaW5hbC9zdHlsZXNcIik7XG52YXIgVG9hc3RfMSA9IHJlcXVpcmUoXCIuLi9jb21wb25lbnRzL1RvYXN0XCIpO1xudmFyIEJ1aWxkRXJyb3JfMSA9IHJlcXVpcmUoXCIuLi9jb250YWluZXIvQnVpbGRFcnJvclwiKTtcbnZhciBFcnJvcnNfMSA9IHJlcXVpcmUoXCIuLi9jb250YWluZXIvRXJyb3JzXCIpO1xudmFyIFJ1bnRpbWVFcnJvcl8xID0gcmVxdWlyZShcIi4uL2NvbnRhaW5lci9SdW50aW1lRXJyb3JcIik7XG52YXIgbm9vcF90ZW1wbGF0ZV8xID0gcmVxdWlyZShcIi4uL2hlbHBlcnMvbm9vcC10ZW1wbGF0ZVwiKTtcbmZ1bmN0aW9uIENvbXBvbmVudFN0eWxlcygpIHtcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiLCB7IGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MOiB7XG4gICAgICAgICAgICBfX2h0bWw6ICgwLCBub29wX3RlbXBsYXRlXzEubm9vcCkodGVtcGxhdGVPYmplY3RfMSB8fCAodGVtcGxhdGVPYmplY3RfMSA9IF9fbWFrZVRlbXBsYXRlT2JqZWN0KFtcIlxcbiAgICAgICAgICBcIiwgXCJcXG4gICAgICAgICAgXCIsIFwiXFxuICAgICAgICAgIFwiLCBcIlxcbiAgICAgICAgICBcIiwgXCJcXG4gICAgICAgICAgXCIsIFwiXFxuICAgICAgICAgIFwiLCBcIlxcblxcbiAgICAgICAgICBcIiwgXCJcXG4gICAgICAgICAgXCIsIFwiXFxuICAgICAgICAgIFwiLCBcIlxcbiAgICAgICAgXCJdLCBbXCJcXG4gICAgICAgICAgXCIsIFwiXFxuICAgICAgICAgIFwiLCBcIlxcbiAgICAgICAgICBcIiwgXCJcXG4gICAgICAgICAgXCIsIFwiXFxuICAgICAgICAgIFwiLCBcIlxcbiAgICAgICAgICBcIiwgXCJcXG5cXG4gICAgICAgICAgXCIsIFwiXFxuICAgICAgICAgIFwiLCBcIlxcbiAgICAgICAgICBcIiwgXCJcXG4gICAgICAgIFwiXSkpLCBzdHlsZXNfMy5zdHlsZXMsIFRvYXN0XzEuc3R5bGVzLCBEaWFsb2dfMS5zdHlsZXMsIHN0eWxlc18yLnN0eWxlcywgc3R5bGVzXzEuc3R5bGVzLCBzdHlsZXNfNC5zdHlsZXMsIEJ1aWxkRXJyb3JfMS5zdHlsZXMsIEVycm9yc18xLnN0eWxlcywgUnVudGltZUVycm9yXzEuc3R5bGVzKVxuICAgICAgICB9IH0pKTtcbn1cbmV4cG9ydHMuQ29tcG9uZW50U3R5bGVzID0gQ29tcG9uZW50U3R5bGVzO1xudmFyIHRlbXBsYXRlT2JqZWN0XzE7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Db21wb25lbnRTdHlsZXMuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/styles/ComponentStyles.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-dev-overlay/lib/internal/styles/CssReset.js": +/*!******************************************************************************!*\ + !*** ./node_modules/@next/react-dev-overlay/lib/internal/styles/CssReset.js ***! + \******************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nexports.__esModule = true;\nexports.CssReset = void 0;\nvar React = __importStar(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nvar noop_template_1 = __webpack_require__(/*! ../helpers/noop-template */ \"./node_modules/@next/react-dev-overlay/lib/internal/helpers/noop-template.js\");\nfunction CssReset() {\n return (React.createElement(\"style\", { dangerouslySetInnerHTML: {\n __html: (0, noop_template_1.noop)(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\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: #212529;\\n text-align: left;\\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 }\\n\\n button:focus {\\n outline: 1px dotted;\\n outline: 5px auto -webkit-focus-ring-color;\\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 :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: #212529;\\n text-align: left;\\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 }\\n\\n button:focus {\\n outline: 1px dotted;\\n outline: 5px auto -webkit-focus-ring-color;\\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}\nexports.CssReset = CssReset;\nvar templateObject_1;\n//# sourceMappingURL=CssReset.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2ludGVybmFsL3N0eWxlcy9Dc3NSZXNldC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0EsaUNBQWlDLHVDQUF1QyxZQUFZLEtBQUssT0FBTztBQUNoRztBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQyxvQ0FBb0MsZ0JBQWdCO0FBQ3ZGLENBQUM7QUFDRDtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0EsMENBQTBDLDRCQUE0QjtBQUN0RSxDQUFDO0FBQ0Q7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEIsZ0JBQWdCO0FBQ2hCLHlCQUF5QixtQkFBTyxDQUFDLDRDQUFPO0FBQ3hDLHNCQUFzQixtQkFBTyxDQUFDLDhHQUEwQjtBQUN4RDtBQUNBLDJDQUEyQztBQUMzQyxnSUFBZ0ksMkJBQTJCLCtGQUErRixhQUFhLHFkQUFxZCxxQ0FBcUMsYUFBYSxxQkFBcUIsc0NBQXNDLGdDQUFnQyw2Q0FBNkMsNERBQTRELGFBQWEsaU1BQWlNLDZCQUE2QixhQUFhLHFCQUFxQix3QkFBd0IsOFBBQThQLDhCQUE4QiwrQkFBK0IsK0JBQStCLDZCQUE2QiwrQkFBK0IscUNBQXFDLGFBQWEseURBQXlELG9DQUFvQyxhQUFhLGtCQUFrQixzQ0FBc0Msd0JBQXdCLGdDQUFnQyxhQUFhLDZGQUE2Riw0QkFBNEIsaUNBQWlDLGFBQWEsaUJBQWlCLDRCQUE0QixrQ0FBa0MsYUFBYSxpRUFBaUUseUNBQXlDLHdEQUF3RCxnREFBZ0QsMkJBQTJCLCtCQUErQixxREFBcUQsNkNBQTZDLGFBQWEsdUJBQXVCLGtDQUFrQyxpQ0FBaUMsbUNBQW1DLGFBQWEsZ0RBQWdELDRCQUE0QixrQ0FBa0MsYUFBYSwyRUFBMkUsK0JBQStCLGFBQWEsa0JBQWtCLCtCQUErQixhQUFhLGtCQUFrQixpQ0FBaUMsNkJBQTZCLGFBQWEsMEJBQTBCLCtCQUErQixh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bnRlcm5hbC9zdHlsZXMvQ3NzUmVzZXQuanM/OTFiYyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX21ha2VUZW1wbGF0ZU9iamVjdCA9ICh0aGlzICYmIHRoaXMuX19tYWtlVGVtcGxhdGVPYmplY3QpIHx8IGZ1bmN0aW9uIChjb29rZWQsIHJhdykge1xuICAgIGlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvb2tlZCwgXCJyYXdcIiwgeyB2YWx1ZTogcmF3IH0pOyB9IGVsc2UgeyBjb29rZWQucmF3ID0gcmF3OyB9XG4gICAgcmV0dXJuIGNvb2tlZDtcbn07XG52YXIgX19jcmVhdGVCaW5kaW5nID0gKHRoaXMgJiYgdGhpcy5fX2NyZWF0ZUJpbmRpbmcpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfSk7XG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgb1trMl0gPSBtW2tdO1xufSkpO1xudmFyIF9fc2V0TW9kdWxlRGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19zZXRNb2R1bGVEZWZhdWx0KSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCB2KSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIFwiZGVmYXVsdFwiLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2IH0pO1xufSkgOiBmdW5jdGlvbihvLCB2KSB7XG4gICAgb1tcImRlZmF1bHRcIl0gPSB2O1xufSk7XG52YXIgX19pbXBvcnRTdGFyID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydFN0YXIpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSByZXR1cm4gbW9kO1xuICAgIHZhciByZXN1bHQgPSB7fTtcbiAgICBpZiAobW9kICE9IG51bGwpIGZvciAodmFyIGsgaW4gbW9kKSBpZiAoayAhPT0gXCJkZWZhdWx0XCIgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG1vZCwgaykpIF9fY3JlYXRlQmluZGluZyhyZXN1bHQsIG1vZCwgayk7XG4gICAgX19zZXRNb2R1bGVEZWZhdWx0KHJlc3VsdCwgbW9kKTtcbiAgICByZXR1cm4gcmVzdWx0O1xufTtcbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLkNzc1Jlc2V0ID0gdm9pZCAwO1xudmFyIFJlYWN0ID0gX19pbXBvcnRTdGFyKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG52YXIgbm9vcF90ZW1wbGF0ZV8xID0gcmVxdWlyZShcIi4uL2hlbHBlcnMvbm9vcC10ZW1wbGF0ZVwiKTtcbmZ1bmN0aW9uIENzc1Jlc2V0KCkge1xuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChcInN0eWxlXCIsIHsgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6IHtcbiAgICAgICAgICAgIF9faHRtbDogKDAsIG5vb3BfdGVtcGxhdGVfMS5ub29wKSh0ZW1wbGF0ZU9iamVjdF8xIHx8ICh0ZW1wbGF0ZU9iamVjdF8xID0gX19tYWtlVGVtcGxhdGVPYmplY3QoW1wiXFxuICAgICAgICAgIDpob3N0IHtcXG4gICAgICAgICAgICBhbGw6IGluaXRpYWw7XFxuXFxuICAgICAgICAgICAgLyogdGhlIGRpcmVjdGlvbiBwcm9wZXJ0eSBpcyBub3QgcmVzZXQgYnkgJ2FsbCcgKi9cXG4gICAgICAgICAgICBkaXJlY3Rpb246IGx0cjtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICAvKiFcXG4gICAgICAgICAgICogQm9vdHN0cmFwIFJlYm9vdCB2NC40LjEgKGh0dHBzOi8vZ2V0Ym9vdHN0cmFwLmNvbS8pXFxuICAgICAgICAgICAqIENvcHlyaWdodCAyMDExLTIwMTkgVGhlIEJvb3RzdHJhcCBBdXRob3JzXFxuICAgICAgICAgICAqIENvcHlyaWdodCAyMDExLTIwMTkgVHdpdHRlciwgSW5jLlxcbiAgICAgICAgICAgKiBMaWNlbnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL21hc3Rlci9MSUNFTlNFKVxcbiAgICAgICAgICAgKiBGb3JrZWQgZnJvbSBOb3JtYWxpemUuY3NzLCBsaWNlbnNlZCBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MvYmxvYi9tYXN0ZXIvTElDRU5TRS5tZClcXG4gICAgICAgICAgICovXFxuICAgICAgICAgICosXFxuICAgICAgICAgICo6OmJlZm9yZSxcXG4gICAgICAgICAgKjo6YWZ0ZXIge1xcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgOmhvc3Qge1xcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE1O1xcbiAgICAgICAgICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcXG4gICAgICAgICAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgYXJ0aWNsZSxcXG4gICAgICAgICAgYXNpZGUsXFxuICAgICAgICAgIGZpZ2NhcHRpb24sXFxuICAgICAgICAgIGZpZ3VyZSxcXG4gICAgICAgICAgZm9vdGVyLFxcbiAgICAgICAgICBoZWFkZXIsXFxuICAgICAgICAgIGhncm91cCxcXG4gICAgICAgICAgbWFpbixcXG4gICAgICAgICAgbmF2LFxcbiAgICAgICAgICBzZWN0aW9uIHtcXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICA6aG9zdCB7XFxuICAgICAgICAgICAgbWFyZ2luOiAwO1xcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90byxcXG4gICAgICAgICAgICAgICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCAnTm90byBTYW5zJywgc2Fucy1zZXJpZixcXG4gICAgICAgICAgICAgICdBcHBsZSBDb2xvciBFbW9qaScsICdTZWdvZSBVSSBFbW9qaScsICdTZWdvZSBVSSBTeW1ib2wnLFxcbiAgICAgICAgICAgICAgJ05vdG8gQ29sb3IgRW1vamknO1xcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcXG4gICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XFxuICAgICAgICAgICAgY29sb3I6ICMyMTI1Mjk7XFxuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIFt0YWJpbmRleD0nLTEnXTpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcXG4gICAgICAgICAgICBvdXRsaW5lOiAwICFpbXBvcnRhbnQ7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgaHIge1xcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xcbiAgICAgICAgICAgIGhlaWdodDogMDtcXG4gICAgICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBoMSxcXG4gICAgICAgICAgaDIsXFxuICAgICAgICAgIGgzLFxcbiAgICAgICAgICBoNCxcXG4gICAgICAgICAgaDUsXFxuICAgICAgICAgIGg2IHtcXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBwIHtcXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgYWJiclt0aXRsZV0sXFxuICAgICAgICAgIGFiYnJbZGF0YS1vcmlnaW5hbC10aXRsZV0ge1xcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xcbiAgICAgICAgICAgIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcXG4gICAgICAgICAgICBjdXJzb3I6IGhlbHA7XFxuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcXG4gICAgICAgICAgICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwLWluazogbm9uZTtcXG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb24tc2tpcC1pbms6IG5vbmU7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgYWRkcmVzcyB7XFxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcXG4gICAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XFxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgb2wsXFxuICAgICAgICAgIHVsLFxcbiAgICAgICAgICBkbCB7XFxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIG9sIG9sLFxcbiAgICAgICAgICB1bCB1bCxcXG4gICAgICAgICAgb2wgdWwsXFxuICAgICAgICAgIHVsIG9sIHtcXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIGR0IHtcXG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIGRkIHtcXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XFxuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgYmxvY2txdW90ZSB7XFxuICAgICAgICAgICAgbWFyZ2luOiAwIDAgMTZweDtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBiLFxcbiAgICAgICAgICBzdHJvbmcge1xcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkZXI7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgc21hbGwge1xcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogODAlO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIHN1YixcXG4gICAgICAgICAgc3VwIHtcXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgICAgICAgICAgZm9udC1zaXplOiA3NSU7XFxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XFxuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIHN1YiB7XFxuICAgICAgICAgICAgYm90dG9tOiAtMC4yNWVtO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIHN1cCB7XFxuICAgICAgICAgICAgdG9wOiAtMC41ZW07XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgYSB7XFxuICAgICAgICAgICAgY29sb3I6ICMwMDdiZmY7XFxuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIGE6aG92ZXIge1xcbiAgICAgICAgICAgIGNvbG9yOiAjMDA1NmIzO1xcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIGE6bm90KFtocmVmXSkge1xcbiAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBhOm5vdChbaHJlZl0pOmhvdmVyIHtcXG4gICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcXG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgcHJlLFxcbiAgICAgICAgICBjb2RlLFxcbiAgICAgICAgICBrYmQsXFxuICAgICAgICAgIHNhbXAge1xcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBTRk1vbm8tUmVndWxhciwgTWVubG8sIE1vbmFjbywgQ29uc29sYXMsXFxuICAgICAgICAgICAgICAnTGliZXJhdGlvbiBNb25vJywgJ0NvdXJpZXIgTmV3JywgbW9ub3NwYWNlO1xcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMWVtO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIHByZSB7XFxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIGZpZ3VyZSB7XFxuICAgICAgICAgICAgbWFyZ2luOiAwIDAgMTZweDtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBpbWcge1xcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgICAgICAgICAgYm9yZGVyLXN0eWxlOiBub25lO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIHN2ZyB7XFxuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIHRhYmxlIHtcXG4gICAgICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIGNhcHRpb24ge1xcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAxMnB4O1xcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxMnB4O1xcbiAgICAgICAgICAgIGNvbG9yOiAjNmM3NTdkO1xcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XFxuICAgICAgICAgICAgY2FwdGlvbi1zaWRlOiBib3R0b207XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgdGgge1xcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGluaGVyaXQ7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgbGFiZWwge1xcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgYnV0dG9uIHtcXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIGJ1dHRvbjpmb2N1cyB7XFxuICAgICAgICAgICAgb3V0bGluZTogMXB4IGRvdHRlZDtcXG4gICAgICAgICAgICBvdXRsaW5lOiA1cHggYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgaW5wdXQsXFxuICAgICAgICAgIGJ1dHRvbixcXG4gICAgICAgICAgc2VsZWN0LFxcbiAgICAgICAgICBvcHRncm91cCxcXG4gICAgICAgICAgdGV4dGFyZWEge1xcbiAgICAgICAgICAgIG1hcmdpbjogMDtcXG4gICAgICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDtcXG4gICAgICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XFxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgYnV0dG9uLFxcbiAgICAgICAgICBpbnB1dCB7XFxuICAgICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgYnV0dG9uLFxcbiAgICAgICAgICBzZWxlY3Qge1xcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIHNlbGVjdCB7XFxuICAgICAgICAgICAgd29yZC13cmFwOiBub3JtYWw7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgYnV0dG9uLFxcbiAgICAgICAgICBbdHlwZT0nYnV0dG9uJ10sXFxuICAgICAgICAgIFt0eXBlPSdyZXNldCddLFxcbiAgICAgICAgICBbdHlwZT0nc3VibWl0J10ge1xcbiAgICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIGJ1dHRvbjpub3QoOmRpc2FibGVkKSxcXG4gICAgICAgICAgW3R5cGU9J2J1dHRvbiddOm5vdCg6ZGlzYWJsZWQpLFxcbiAgICAgICAgICBbdHlwZT0ncmVzZXQnXTpub3QoOmRpc2FibGVkKSxcXG4gICAgICAgICAgW3R5cGU9J3N1Ym1pdCddOm5vdCg6ZGlzYWJsZWQpIHtcXG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxcbiAgICAgICAgICBbdHlwZT0nYnV0dG9uJ106Oi1tb3otZm9jdXMtaW5uZXIsXFxuICAgICAgICAgIFt0eXBlPSdyZXNldCddOjotbW96LWZvY3VzLWlubmVyLFxcbiAgICAgICAgICBbdHlwZT0nc3VibWl0J106Oi1tb3otZm9jdXMtaW5uZXIge1xcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XFxuICAgICAgICAgICAgYm9yZGVyLXN0eWxlOiBub25lO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIGlucHV0W3R5cGU9J3JhZGlvJ10sXFxuICAgICAgICAgIGlucHV0W3R5cGU9J2NoZWNrYm94J10ge1xcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgICAgICAgICAgcGFkZGluZzogMDtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBpbnB1dFt0eXBlPSdkYXRlJ10sXFxuICAgICAgICAgIGlucHV0W3R5cGU9J3RpbWUnXSxcXG4gICAgICAgICAgaW5wdXRbdHlwZT0nZGF0ZXRpbWUtbG9jYWwnXSxcXG4gICAgICAgICAgaW5wdXRbdHlwZT0nbW9udGgnXSB7XFxuICAgICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBsaXN0Ym94O1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIHRleHRhcmVhIHtcXG4gICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcXG4gICAgICAgICAgICByZXNpemU6IHZlcnRpY2FsO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIGZpZWxkc2V0IHtcXG4gICAgICAgICAgICBtaW4td2lkdGg6IDA7XFxuICAgICAgICAgICAgcGFkZGluZzogMDtcXG4gICAgICAgICAgICBtYXJnaW46IDA7XFxuICAgICAgICAgICAgYm9yZGVyOiAwO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIGxlZ2VuZCB7XFxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XFxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XFxuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XFxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjRweDtcXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcXG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIHByb2dyZXNzIHtcXG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgW3R5cGU9J251bWJlciddOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxcbiAgICAgICAgICBbdHlwZT0nbnVtYmVyJ106Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBbdHlwZT0nc2VhcmNoJ10ge1xcbiAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xcbiAgICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBbdHlwZT0nc2VhcmNoJ106Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xcbiAgICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICA6Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcXG4gICAgICAgICAgICBmb250OiBpbmhlcml0O1xcbiAgICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIG91dHB1dCB7XFxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIHN1bW1hcnkge1xcbiAgICAgICAgICAgIGRpc3BsYXk6IGxpc3QtaXRlbTtcXG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgdGVtcGxhdGUge1xcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgW2hpZGRlbl0ge1xcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG4gICAgICAgICAgfVxcbiAgICAgICAgXCJdLCBbXCJcXG4gICAgICAgICAgOmhvc3Qge1xcbiAgICAgICAgICAgIGFsbDogaW5pdGlhbDtcXG5cXG4gICAgICAgICAgICAvKiB0aGUgZGlyZWN0aW9uIHByb3BlcnR5IGlzIG5vdCByZXNldCBieSAnYWxsJyAqL1xcbiAgICAgICAgICAgIGRpcmVjdGlvbjogbHRyO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIC8qIVxcbiAgICAgICAgICAgKiBCb290c3RyYXAgUmVib290IHY0LjQuMSAoaHR0cHM6Ly9nZXRib290c3RyYXAuY29tLylcXG4gICAgICAgICAgICogQ29weXJpZ2h0IDIwMTEtMjAxOSBUaGUgQm9vdHN0cmFwIEF1dGhvcnNcXG4gICAgICAgICAgICogQ29weXJpZ2h0IDIwMTEtMjAxOSBUd2l0dGVyLCBJbmMuXFxuICAgICAgICAgICAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFzdGVyL0xJQ0VOU0UpXFxuICAgICAgICAgICAqIEZvcmtlZCBmcm9tIE5vcm1hbGl6ZS5jc3MsIGxpY2Vuc2VkIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcy9ibG9iL21hc3Rlci9MSUNFTlNFLm1kKVxcbiAgICAgICAgICAgKi9cXG4gICAgICAgICAgKixcXG4gICAgICAgICAgKjo6YmVmb3JlLFxcbiAgICAgICAgICAqOjphZnRlciB7XFxuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICA6aG9zdCB7XFxuICAgICAgICAgICAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XFxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTU7XFxuICAgICAgICAgICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xcbiAgICAgICAgICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBhcnRpY2xlLFxcbiAgICAgICAgICBhc2lkZSxcXG4gICAgICAgICAgZmlnY2FwdGlvbixcXG4gICAgICAgICAgZmlndXJlLFxcbiAgICAgICAgICBmb290ZXIsXFxuICAgICAgICAgIGhlYWRlcixcXG4gICAgICAgICAgaGdyb3VwLFxcbiAgICAgICAgICBtYWluLFxcbiAgICAgICAgICBuYXYsXFxuICAgICAgICAgIHNlY3Rpb24ge1xcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIDpob3N0IHtcXG4gICAgICAgICAgICBtYXJnaW46IDA7XFxuICAgICAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLFxcbiAgICAgICAgICAgICAgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsICdOb3RvIFNhbnMnLCBzYW5zLXNlcmlmLFxcbiAgICAgICAgICAgICAgJ0FwcGxlIENvbG9yIEVtb2ppJywgJ1NlZ29lIFVJIEVtb2ppJywgJ1NlZ29lIFVJIFN5bWJvbCcsXFxuICAgICAgICAgICAgICAnTm90byBDb2xvciBFbW9qaSc7XFxuICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcXG4gICAgICAgICAgICBjb2xvcjogIzIxMjUyOTtcXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgW3RhYmluZGV4PSctMSddOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSkge1xcbiAgICAgICAgICAgIG91dGxpbmU6IDAgIWltcG9ydGFudDtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBociB7XFxuICAgICAgICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XFxuICAgICAgICAgICAgaGVpZ2h0OiAwO1xcbiAgICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIGgxLFxcbiAgICAgICAgICBoMixcXG4gICAgICAgICAgaDMsXFxuICAgICAgICAgIGg0LFxcbiAgICAgICAgICBoNSxcXG4gICAgICAgICAgaDYge1xcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XFxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIHAge1xcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XFxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBhYmJyW3RpdGxlXSxcXG4gICAgICAgICAgYWJicltkYXRhLW9yaWdpbmFsLXRpdGxlXSB7XFxuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XFxuICAgICAgICAgICAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XFxuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xcbiAgICAgICAgICAgIGN1cnNvcjogaGVscDtcXG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xcbiAgICAgICAgICAgIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rOiBub25lO1xcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbi1za2lwLWluazogbm9uZTtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBhZGRyZXNzIHtcXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBvbCxcXG4gICAgICAgICAgdWwsXFxuICAgICAgICAgIGRsIHtcXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgb2wgb2wsXFxuICAgICAgICAgIHVsIHVsLFxcbiAgICAgICAgICBvbCB1bCxcXG4gICAgICAgICAgdWwgb2wge1xcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgZHQge1xcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgZGQge1xcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBibG9ja3F1b3RlIHtcXG4gICAgICAgICAgICBtYXJnaW46IDAgMCAxNnB4O1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIGIsXFxuICAgICAgICAgIHN0cm9uZyB7XFxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBzbWFsbCB7XFxuICAgICAgICAgICAgZm9udC1zaXplOiA4MCU7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgc3ViLFxcbiAgICAgICAgICBzdXAge1xcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgICAgICAgICBmb250LXNpemU6IDc1JTtcXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcXG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgc3ViIHtcXG4gICAgICAgICAgICBib3R0b206IC0wLjI1ZW07XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgc3VwIHtcXG4gICAgICAgICAgICB0b3A6IC0wLjVlbTtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBhIHtcXG4gICAgICAgICAgICBjb2xvcjogIzAwN2JmZjtcXG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgYTpob3ZlciB7XFxuICAgICAgICAgICAgY29sb3I6ICMwMDU2YjM7XFxuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgYTpub3QoW2hyZWZdKSB7XFxuICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XFxuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIGE6bm90KFtocmVmXSk6aG92ZXIge1xcbiAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBwcmUsXFxuICAgICAgICAgIGNvZGUsXFxuICAgICAgICAgIGtiZCxcXG4gICAgICAgICAgc2FtcCB7XFxuICAgICAgICAgICAgZm9udC1mYW1pbHk6IFNGTW9uby1SZWd1bGFyLCBNZW5sbywgTW9uYWNvLCBDb25zb2xhcyxcXG4gICAgICAgICAgICAgICdMaWJlcmF0aW9uIE1vbm8nLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2U7XFxuICAgICAgICAgICAgZm9udC1zaXplOiAxZW07XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgcHJlIHtcXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XFxuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgZmlndXJlIHtcXG4gICAgICAgICAgICBtYXJnaW46IDAgMCAxNnB4O1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIGltZyB7XFxuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgICAgICAgICBib3JkZXItc3R5bGU6IG5vbmU7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgc3ZnIHtcXG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgdGFibGUge1xcbiAgICAgICAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgY2FwdGlvbiB7XFxuICAgICAgICAgICAgcGFkZGluZy10b3A6IDEycHg7XFxuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDEycHg7XFxuICAgICAgICAgICAgY29sb3I6ICM2Yzc1N2Q7XFxuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcXG4gICAgICAgICAgICBjYXB0aW9uLXNpZGU6IGJvdHRvbTtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICB0aCB7XFxuICAgICAgICAgICAgdGV4dC1hbGlnbjogaW5oZXJpdDtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBsYWJlbCB7XFxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBidXR0b24ge1xcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgYnV0dG9uOmZvY3VzIHtcXG4gICAgICAgICAgICBvdXRsaW5lOiAxcHggZG90dGVkO1xcbiAgICAgICAgICAgIG91dGxpbmU6IDVweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBpbnB1dCxcXG4gICAgICAgICAgYnV0dG9uLFxcbiAgICAgICAgICBzZWxlY3QsXFxuICAgICAgICAgIG9wdGdyb3VwLFxcbiAgICAgICAgICB0ZXh0YXJlYSB7XFxuICAgICAgICAgICAgbWFyZ2luOiAwO1xcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBidXR0b24sXFxuICAgICAgICAgIGlucHV0IHtcXG4gICAgICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBidXR0b24sXFxuICAgICAgICAgIHNlbGVjdCB7XFxuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgc2VsZWN0IHtcXG4gICAgICAgICAgICB3b3JkLXdyYXA6IG5vcm1hbDtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBidXR0b24sXFxuICAgICAgICAgIFt0eXBlPSdidXR0b24nXSxcXG4gICAgICAgICAgW3R5cGU9J3Jlc2V0J10sXFxuICAgICAgICAgIFt0eXBlPSdzdWJtaXQnXSB7XFxuICAgICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgYnV0dG9uOm5vdCg6ZGlzYWJsZWQpLFxcbiAgICAgICAgICBbdHlwZT0nYnV0dG9uJ106bm90KDpkaXNhYmxlZCksXFxuICAgICAgICAgIFt0eXBlPSdyZXNldCddOm5vdCg6ZGlzYWJsZWQpLFxcbiAgICAgICAgICBbdHlwZT0nc3VibWl0J106bm90KDpkaXNhYmxlZCkge1xcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBidXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXFxuICAgICAgICAgIFt0eXBlPSdidXR0b24nXTo6LW1vei1mb2N1cy1pbm5lcixcXG4gICAgICAgICAgW3R5cGU9J3Jlc2V0J106Oi1tb3otZm9jdXMtaW5uZXIsXFxuICAgICAgICAgIFt0eXBlPSdzdWJtaXQnXTo6LW1vei1mb2N1cy1pbm5lciB7XFxuICAgICAgICAgICAgcGFkZGluZzogMDtcXG4gICAgICAgICAgICBib3JkZXItc3R5bGU6IG5vbmU7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgaW5wdXRbdHlwZT0ncmFkaW8nXSxcXG4gICAgICAgICAgaW5wdXRbdHlwZT0nY2hlY2tib3gnXSB7XFxuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIGlucHV0W3R5cGU9J2RhdGUnXSxcXG4gICAgICAgICAgaW5wdXRbdHlwZT0ndGltZSddLFxcbiAgICAgICAgICBpbnB1dFt0eXBlPSdkYXRldGltZS1sb2NhbCddLFxcbiAgICAgICAgICBpbnB1dFt0eXBlPSdtb250aCddIHtcXG4gICAgICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGxpc3Rib3g7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgdGV4dGFyZWEge1xcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xcbiAgICAgICAgICAgIHJlc2l6ZTogdmVydGljYWw7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgZmllbGRzZXQge1xcbiAgICAgICAgICAgIG1pbi13aWR0aDogMDtcXG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xcbiAgICAgICAgICAgIG1hcmdpbjogMDtcXG4gICAgICAgICAgICBib3JkZXI6IDA7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgbGVnZW5kIHtcXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XFxuICAgICAgICAgICAgcGFkZGluZzogMDtcXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XFxuICAgICAgICAgICAgZm9udC1zaXplOiAyNHB4O1xcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbiAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgcHJvZ3Jlc3Mge1xcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBbdHlwZT0nbnVtYmVyJ106Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXFxuICAgICAgICAgIFt0eXBlPSdudW1iZXInXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XFxuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIFt0eXBlPSdzZWFyY2gnXSB7XFxuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XFxuICAgICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIFt0eXBlPSdzZWFyY2gnXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XFxuICAgICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIDo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xcbiAgICAgICAgICAgIGZvbnQ6IGluaGVyaXQ7XFxuICAgICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgb3V0cHV0IHtcXG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgc3VtbWFyeSB7XFxuICAgICAgICAgICAgZGlzcGxheTogbGlzdC1pdGVtO1xcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICB0ZW1wbGF0ZSB7XFxuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBbaGlkZGVuXSB7XFxuICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbiAgICAgICAgICB9XFxuICAgICAgICBcIl0pKSlcbiAgICAgICAgfSB9KSk7XG59XG5leHBvcnRzLkNzc1Jlc2V0ID0gQ3NzUmVzZXQ7XG52YXIgdGVtcGxhdGVPYmplY3RfMTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUNzc1Jlc2V0LmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/styles/CssReset.js\n"); + +/***/ }), + +/***/ "./node_modules/ansi-regex/index.js": +/*!******************************************!*\ + !*** ./node_modules/ansi-regex/index.js ***! + \******************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nmodule.exports = function () {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$onlyFirst = _ref.onlyFirst,\n onlyFirst = _ref$onlyFirst === void 0 ? false : _ref$onlyFirst;\n\n var pattern = [\"[\\\\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=><~]))'].join('|');\n return new RegExp(pattern, onlyFirst ? undefined : 'g');\n};\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYW5zaS1yZWdleC9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7O0FBRWJBLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQixZQUE4QjtBQUFBLGlGQUFQLEVBQU87QUFBQSw0QkFBNUJDLFNBQTRCO0FBQUEsTUFBNUJBLFNBQTRCLCtCQUFoQixLQUFnQjs7QUFDOUMsTUFBTUMsT0FBTyxHQUFHLENBQ2YsOEhBRGUsRUFFZiwwREFGZSxFQUdkQyxJQUhjLENBR1QsR0FIUyxDQUFoQjtBQUtBLFNBQU8sSUFBSUMsTUFBSixDQUFXRixPQUFYLEVBQW9CRCxTQUFTLEdBQUdJLFNBQUgsR0FBZSxHQUE1QyxDQUFQO0FBQ0EsQ0FQRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvYW5zaS1yZWdleC9pbmRleC5qcz85MmIzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxubW9kdWxlLmV4cG9ydHMgPSAoe29ubHlGaXJzdCA9IGZhbHNlfSA9IHt9KSA9PiB7XG5cdGNvbnN0IHBhdHRlcm4gPSBbXG5cdFx0J1tcXFxcdTAwMUJcXFxcdTAwOUJdW1tcXFxcXSgpIzs/XSooPzooPzooPzooPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10rKSp8W2EtekEtWlxcXFxkXSsoPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10qKSopP1xcXFx1MDAwNyknLFxuXHRcdCcoPzooPzpcXFxcZHsxLDR9KD86O1xcXFxkezAsNH0pKik/W1xcXFxkQS1QUi1UWmNmLW50cXJ5PT48fl0pKSdcblx0XS5qb2luKCd8Jyk7XG5cblx0cmV0dXJuIG5ldyBSZWdFeHAocGF0dGVybiwgb25seUZpcnN0ID8gdW5kZWZpbmVkIDogJ2cnKTtcbn07XG4iXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIm9ubHlGaXJzdCIsInBhdHRlcm4iLCJqb2luIiwiUmVnRXhwIiwidW5kZWZpbmVkIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/ansi-regex/index.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/dev/dev-build-watcher.js": +/*!****************************************************************!*\ + !*** ./node_modules/next/dist/client/dev/dev-build-watcher.js ***! + \****************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = initializeBuildWatcher;\n\nvar _websocket = __webpack_require__(/*! ./error-overlay/websocket */ \"./node_modules/next/dist/client/dev/error-overlay/websocket.js\");\n\nfunction initializeBuildWatcher(toggleCallback) {\n var position = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'bottom-right';\n var shadowHost = document.createElement('div');\n shadowHost.id = '__next-build-watcher'; // Make sure container is fixed and on a high zIndex so it shows\n\n shadowHost.style.position = 'fixed'; // Ensure container's position to be top or bottom (default)\n\n if (['top-left', 'top-right'].indexOf(position) > -1) {\n shadowHost.style.top = '10px';\n } else {\n shadowHost.style.bottom = '10px';\n } // Ensure container's position to be left or right (default)\n\n\n if (['bottom-left', 'top-left'].indexOf(position) > -1) {\n shadowHost.style.left = '20px';\n } else {\n shadowHost.style.right = '20px';\n }\n\n shadowHost.style.width = 0;\n shadowHost.style.height = 0;\n shadowHost.style.zIndex = 99999;\n document.body.appendChild(shadowHost);\n var shadowRoot;\n var prefix = '';\n\n if (shadowHost.attachShadow) {\n shadowRoot = shadowHost.attachShadow({\n mode: 'open'\n });\n } else {\n // If attachShadow is undefined then the browser does not support\n // the Shadow DOM, we need to prefix all the names so there\n // will be no conflicts\n shadowRoot = shadowHost;\n prefix = '__next-build-watcher-';\n } // Container\n\n\n var container = createContainer(prefix);\n shadowRoot.appendChild(container); // CSS\n\n var css = createCss(prefix);\n shadowRoot.appendChild(css); // State\n\n var isVisible = false;\n var isBuilding = false;\n var timeoutId = null; // Handle events\n\n (0, _websocket).addMessageListener(function (event) {\n // This is the heartbeat event\n if (event.data === \"\\uD83D\\uDC93\") {\n return;\n }\n\n try {\n handleMessage(event);\n } catch (e) {}\n });\n\n function handleMessage(event) {\n var obj = typeof event === 'string' ? {\n action: event\n } : JSON.parse(event.data); // eslint-disable-next-line default-case\n\n switch (obj.action) {\n case 'building':\n timeoutId && clearTimeout(timeoutId);\n isVisible = true;\n isBuilding = true;\n updateContainer();\n break;\n\n case 'built':\n case 'sync':\n isBuilding = false; // Wait for the fade out transition to complete\n\n timeoutId = setTimeout(function () {\n isVisible = false;\n updateContainer();\n }, 100);\n updateContainer();\n break;\n }\n }\n\n toggleCallback(handleMessage);\n\n function updateContainer() {\n if (isBuilding) {\n container.classList.add(\"\".concat(prefix, \"building\"));\n } else {\n container.classList.remove(\"\".concat(prefix, \"building\"));\n }\n\n if (isVisible) {\n container.classList.add(\"\".concat(prefix, \"visible\"));\n } else {\n container.classList.remove(\"\".concat(prefix, \"visible\"));\n }\n }\n}\n\nfunction createContainer(prefix) {\n var container = document.createElement('div');\n container.id = \"\".concat(prefix, \"container\");\n container.innerHTML = \"\\n <div id=\\\"\".concat(prefix, \"icon-wrapper\\\">\\n <svg viewBox=\\\"0 0 226 200\\\">\\n <defs>\\n <linearGradient\\n x1=\\\"114.720775%\\\"\\n y1=\\\"181.283245%\\\"\\n x2=\\\"39.5399306%\\\"\\n y2=\\\"100%\\\"\\n id=\\\"\").concat(prefix, \"linear-gradient\\\"\\n >\\n <stop stop-color=\\\"#000000\\\" offset=\\\"0%\\\" />\\n <stop stop-color=\\\"#FFFFFF\\\" offset=\\\"100%\\\" />\\n </linearGradient>\\n </defs>\\n <g id=\\\"\").concat(prefix, \"icon-group\\\" fill=\\\"none\\\" stroke=\\\"url(#\").concat(prefix, \"linear-gradient)\\\" stroke-width=\\\"18\\\">\\n <path d=\\\"M113,5.08219117 L4.28393801,197.5 L221.716062,197.5 L113,5.08219117 Z\\\" />\\n </g>\\n </svg>\\n </div>\\n \");\n return container;\n}\n\nfunction createCss(prefix) {\n var css = document.createElement('style');\n css.textContent = \"\\n #\".concat(prefix, \"container {\\n position: absolute;\\n bottom: 10px;\\n right: 30px;\\n\\n border-radius: 3px;\\n background: #000;\\n color: #fff;\\n font: initial;\\n cursor: initial;\\n letter-spacing: initial;\\n text-shadow: initial;\\n text-transform: initial;\\n visibility: initial;\\n\\n padding: 7px 10px 8px 10px;\\n align-items: center;\\n box-shadow: 0 11px 40px 0 rgba(0, 0, 0, 0.25), 0 2px 10px 0 rgba(0, 0, 0, 0.12);\\n\\n display: none;\\n opacity: 0;\\n transition: opacity 0.1s ease, bottom 0.1s ease;\\n animation: \").concat(prefix, \"fade-in 0.1s ease-in-out;\\n }\\n\\n #\").concat(prefix, \"container.\").concat(prefix, \"visible {\\n display: flex;\\n }\\n\\n #\").concat(prefix, \"container.\").concat(prefix, \"building {\\n bottom: 20px;\\n opacity: 1;\\n }\\n\\n #\").concat(prefix, \"icon-wrapper {\\n width: 16px;\\n height: 16px;\\n }\\n\\n #\").concat(prefix, \"icon-wrapper > svg {\\n width: 100%;\\n height: 100%;\\n }\\n\\n #\").concat(prefix, \"icon-group {\\n animation: \").concat(prefix, \"strokedash 1s ease-in-out both infinite;\\n }\\n\\n @keyframes \").concat(prefix, \"fade-in {\\n from {\\n bottom: 10px;\\n opacity: 0;\\n }\\n to {\\n bottom: 20px;\\n opacity: 1;\\n }\\n }\\n\\n @keyframes \").concat(prefix, \"strokedash {\\n 0% {\\n stroke-dasharray: 0 226;\\n }\\n 80%,\\n 100% {\\n stroke-dasharray: 659 226;\\n }\\n }\\n \");\n return css;\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvZGV2LWJ1aWxkLXdhdGNoZXIuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxrQkFBQSxHQUFrQkUsc0JBQWxCOztBQUNBLElBQUlDLFVBQVUsR0FBR0MsbUJBQU8sQ0FBQyxpR0FBRCxDQUF4Qjs7QUFDQSxTQUFTRixzQkFBVCxDQUFnQ0csY0FBaEMsRUFBMkU7QUFBQSxNQUEzQkMsUUFBMkIsdUVBQWhCLGNBQWdCO0FBQ3ZFLE1BQU1DLFVBQVUsR0FBR0MsUUFBUSxDQUFDQyxhQUFULENBQXVCLEtBQXZCLENBQW5CO0FBQ0FGLEVBQUFBLFVBQVUsQ0FBQ0csRUFBWCxHQUFnQixzQkFBaEIsQ0FGdUUsQ0FHdkU7O0FBQ0FILEVBQUFBLFVBQVUsQ0FBQ0ksS0FBWCxDQUFpQkwsUUFBakIsR0FBNEIsT0FBNUIsQ0FKdUUsQ0FLdkU7O0FBQ0EsTUFBSSxDQUNBLFVBREEsRUFFQSxXQUZBLEVBR0ZNLE9BSEUsQ0FHTU4sUUFITixJQUdrQixDQUFDLENBSHZCLEVBRzBCO0FBQ3RCQyxJQUFBQSxVQUFVLENBQUNJLEtBQVgsQ0FBaUJFLEdBQWpCLEdBQXVCLE1BQXZCO0FBQ0gsR0FMRCxNQUtPO0FBQ0hOLElBQUFBLFVBQVUsQ0FBQ0ksS0FBWCxDQUFpQkcsTUFBakIsR0FBMEIsTUFBMUI7QUFDSCxHQWJzRSxDQWN2RTs7O0FBQ0EsTUFBSSxDQUNBLGFBREEsRUFFQSxVQUZBLEVBR0ZGLE9BSEUsQ0FHTU4sUUFITixJQUdrQixDQUFDLENBSHZCLEVBRzBCO0FBQ3RCQyxJQUFBQSxVQUFVLENBQUNJLEtBQVgsQ0FBaUJJLElBQWpCLEdBQXdCLE1BQXhCO0FBQ0gsR0FMRCxNQUtPO0FBQ0hSLElBQUFBLFVBQVUsQ0FBQ0ksS0FBWCxDQUFpQkssS0FBakIsR0FBeUIsTUFBekI7QUFDSDs7QUFDRFQsRUFBQUEsVUFB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U0FBVixDQUFvQkMsR0FBcEIsV0FBMkJ2QixNQUEzQjtBQUNILEtBRkQsTUFFTztBQUNIRyxNQUFBQSxTQUFTLENBQUNtQixTQUFWLENBQW9CRSxNQUFwQixXQUE4QnhCLE1BQTlCO0FBQ0g7QUFDSjtBQUNKOztBQUNELFNBQVNJLGVBQVQsQ0FBeUJKLE1BQXpCLEVBQWlDO0FBQzdCLE1BQU1HLFNBQVMsR0FBR2xCLFFBQVEsQ0FBQ0MsYUFBVCxDQUF1QixLQUF2QixDQUFsQjtBQUNBaUIsRUFBQUEsU0FBUyxDQUFDaEIsRUFBVixhQUFrQmEsTUFBbEI7QUFDQUcsRUFBQUEsU0FBUyxDQUFDc0IsU0FBViw2QkFDV3pCLE1BRFgsd1BBU2NBLE1BVGQsbU9BZWFBLE1BZmIsc0RBZTJEQSxNQWYzRDtBQXFCQSxTQUFPRyxTQUFQO0FBQ0g7O0FBQ0QsU0FBU0csU0FBVCxDQUFtQk4sTUFBbkIsRUFBMkI7QUFDdkIsTUFBTUssR0FBRyxHQUFHcEIsUUFBUSxDQUFDQyxhQUFULENBQXVCLE9BQXZCLENBQVo7QUFDQW1CLEVBQUFBLEdBQUcsQ0FBQ3FCLFdBQUosb0JBQ0cxQixNQURILDRsQkF1QmVBLE1BdkJmLHNEQTBCR0EsTUExQkgsdUJBMEJzQkEsTUExQnRCLDREQThCR0EsTUE5QkgsdUJBOEJzQkEsTUE5QnRCLCtFQW1DR0EsTUFuQ0gsb0ZBd0NHQSxNQXhDSCwwRkE2Q0dBLE1BN0NILDRDQThDZUEsTUE5Q2YsK0VBaURhQSxNQWpEYixvTEE0RGFBLE1BNURiO0FBc0VBLFNBQU9LLEdBQVA7QUFDSCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvZGV2LWJ1aWxkLXdhdGNoZXIuanM/N2IzNCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IGluaXRpYWxpemVCdWlsZFdhdGNoZXI7XG52YXIgX3dlYnNvY2tldCA9IHJlcXVpcmUoXCIuL2Vycm9yLW92ZXJsYXkvd2Vic29ja2V0XCIpO1xuZnVuY3Rpb24gaW5pdGlhbGl6ZUJ1aWxkV2F0Y2hlcih0b2dnbGVDYWxsYmFjaywgcG9zaXRpb24gPSAnYm90dG9tLXJpZ2h0Jykge1xuICAgIGNvbnN0IHNoYWRvd0hvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICBzaGFkb3dIb3N0LmlkID0gJ19fbmV4dC1idWlsZC13YXRjaGVyJztcbiAgICAvLyBNYWtlIHN1cmUgY29udGFpbmVyIGlzIGZpeGVkIGFuZCBvbiBhIGhpZ2ggekluZGV4IHNvIGl0IHNob3dzXG4gICAgc2hhZG93SG9zdC5zdHlsZS5wb3NpdGlvbiA9ICdmaXhlZCc7XG4gICAgLy8gRW5zdXJlIGNvbnRhaW5lcidzIHBvc2l0aW9uIHRvIGJlIHRvcCBvciBib3R0b20gKGRlZmF1bHQpXG4gICAgaWYgKFtcbiAgICAgICAgJ3RvcC1sZWZ0JyxcbiAgICAgICAgJ3RvcC1yaWdodCdcbiAgICBdLmluZGV4T2YocG9zaXRpb24pID4gLTEpIHtcbiAgICAgICAgc2hhZG93SG9zdC5zdHlsZS50b3AgPSAnMTBweCc7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgc2hhZG93SG9zdC5zdHlsZS5ib3R0b20gPSAnMTBweCc7XG4gICAgfVxuICAgIC8vIEVuc3VyZSBjb250YWluZXIncyBwb3NpdGlvbiB0byBiZSBsZWZ0IG9yIHJpZ2h0IChkZWZhdWx0KVxuICAgIGlmIChbXG4gICAgICAgICdib3R0b20tbGVmdCcsXG4gICAgICAgICd0b3AtbGVmdCdcbiAgICBdLmluZGV4T2YocG9zaXRpb24pID4gLTEpIHtcbiAgICAgICAgc2hhZG93SG9zdC5zdHlsZS5sZWZ0ID0gJzIwcHgnO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHNoYWRvd0hvc3Quc3R5bGUucmlnaHQgPSAnMjBweCc7XG4gICAgfVxuICAgIHNoYWRvd0hvc3Quc3R5bGUud2lkdGggPSAwO1xuICAgIHNoYWRvd0hvc3Quc3R5bGUuaGVpZ2h0ID0gMDtcbiAgICBzaGFkb3dIb3N0LnN0eWxlLnpJbmRleCA9IDk5OTk5O1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2hhZG93SG9zdCk7XG4gICAgbGV0IHNoYWRvd1Jvb3Q7XG4gICAgbGV0IHByZWZpeCA9ICcnO1xuICAgIGlmIChzaGFkb3dIb3N0LmF0dGFjaFNoYWRvdykge1xuICAgICAgICBzaGFkb3dSb290ID0gc2hhZG93SG9zdC5hdHRhY2hTaGFkb3coe1xuICAgICAgICAgICAgbW9kZTogJ29wZW4nXG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIElmIGF0dGFjaFNoYWRvdyBpcyB1bmRlZmluZWQgdGhlbiB0aGUgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0XG4gICAgICAgIC8vIHRoZSBTaGFkb3cgRE9NLCB3ZSBuZWVkIHRvIHByZWZpeCBhbGwgdGhlIG5hbWVzIHNvIHRoZXJlXG4gICAgICAgIC8vIHdpbGwgYmUgbm8gY29uZmxpY3RzXG4gICAgICAgIHNoYWRvd1Jvb3QgPSBzaGFkb3dIb3N0O1xuICAgICAgICBwcmVmaXggPSAnX19uZXh0LWJ1aWxkLXdhdGNoZXItJztcbiAgICB9XG4gICAgLy8gQ29udGFpbmVyXG4gICAgY29uc3QgY29udGFpbmVyID0gY3JlYXRlQ29udGFpbmVyKHByZWZpeCk7XG4gICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChjb250YWluZXIpO1xuICAgIC8vIENTU1xuICAgIGNvbnN0IGNzcyA9IGNyZWF0ZUNzcyhwcmVmaXgpO1xuICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoY3NzKTtcbiAgICAvLyBTdGF0ZVxuICAgIGxldCBpc1Zpc2libGUgPSBmYWxzZTtcbiAgICBsZXQgaXNCdWlsZGluZyA9IGZhbHNlO1xuICAgIGxldCB0aW1lb3V0SWQgPSBudWxsO1xuICAgIC8vIEhhbmRsZSBldmVudHNcbiAgICAoMCwgX3dlYnNvY2tldCkuYWRkTWVzc2FnZUxpc3RlbmVyKChldmVudCk9PntcbiAgICAgICAgLy8gVGhpcyBpcyB0aGUgaGVhcnRiZWF0IGV2ZW50XG4gICAgICAgIGlmIChldmVudC5kYXRhID09PSAnXFx1RDgzRFxcdURDOTMnKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGhhbmRsZU1lc3NhZ2UoZXZlbnQpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBmdW5jdGlvbiBoYW5kbGVNZXNzYWdlKGV2ZW50KSB7XG4gICAgICAgIGNvbnN0IG9iaiA9IHR5cGVvZiBldmVudCA9PT0gJ3N0cmluZycgPyB7XG4gICAgICAgICAgICBhY3Rpb246IGV2ZW50XG4gICAgICAgIH0gOiBKU09OLnBhcnNlKGV2ZW50LmRhdGEpO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZGVmYXVsdC1jYXNlXG4gICAgICAgIHN3aXRjaChvYmouYWN0aW9uKXtcbiAgICAgICAgICAgIGNhc2UgJ2J1aWxkaW5nJzpcbiAgICAgICAgICAgICAgICB0aW1lb3V0SWQgJiYgY2xlYXJUaW1lb3V0KHRpbWVvdXRJZCk7XG4gICAgICAgICAgICAgICAgaXNWaXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBpc0J1aWxkaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB1cGRhdGVDb250YWluZXIoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2J1aWx0JzpcbiAgICAgICAgICAgIGNhc2UgJ3N5bmMnOlxuICAgICAgICAgICAgICAgIGlzQnVpbGRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAvLyBXYWl0IGZvciB0aGUgZmFkZSBvdXQgdHJhbnNpdGlvbiB0byBjb21wbGV0ZVxuICAgICAgICAgICAgICAgIHRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCk9PntcbiAgICAgICAgICAgICAgICAgICAgaXNWaXNpYmxlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZUNvbnRhaW5lcigpO1xuICAgICAgICAgICAgICAgIH0sIDEwMCk7XG4gICAgICAgICAgICAgICAgdXBkYXRlQ29udGFpbmVyKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgdG9nZ2xlQ2FsbGJhY2soaGFuZGxlTWVzc2FnZSk7XG4gICAgZnVuY3Rpb24gdXBkYXRlQ29udGFpbmVyKCkge1xuICAgICAgICBpZiAoaXNCdWlsZGluZykge1xuICAgICAgICAgICAgY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoYCR7cHJlZml4fWJ1aWxkaW5nYCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb250YWluZXIuY2xhc3NMaXN0LnJlbW92ZShgJHtwcmVmaXh9YnVpbGRpbmdgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNWaXNpYmxlKSB7XG4gICAgICAgICAgICBjb250YWluZXIuY2xhc3NMaXN0LmFkZChgJHtwcmVmaXh9dmlzaWJsZWApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoYCR7cHJlZml4fXZpc2libGVgKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGNyZWF0ZUNvbnRhaW5lcihwcmVmaXgpIHtcbiAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICBjb250YWluZXIuaWQgPSBgJHtwcmVmaXh9Y29udGFpbmVyYDtcbiAgICBjb250YWluZXIuaW5uZXJIVE1MID0gYFxuICAgIDxkaXYgaWQ9XCIke3ByZWZpeH1pY29uLXdyYXBwZXJcIj5cbiAgICAgIDxzdmcgdmlld0JveD1cIjAgMCAyMjYgMjAwXCI+XG4gICAgICAgIDxkZWZzPlxuICAgICAgICAgIDxsaW5lYXJHcmFkaWVudFxuICAgICAgICAgICAgeDE9XCIxMTQuNzIwNzc1JVwiXG4gICAgICAgICAgICB5MT1cIjE4MS4yODMyNDUlXCJcbiAgICAgICAgICAgIHgyPVwiMzkuNTM5OTMwNiVcIlxuICAgICAgICAgICAgeTI9XCIxMDAlXCJcbiAgICAgICAgICAgIGlkPVwiJHtwcmVmaXh9bGluZWFyLWdyYWRpZW50XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPVwiIzAwMDAwMFwiIG9mZnNldD1cIjAlXCIgLz5cbiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9XCIjRkZGRkZGXCIgb2Zmc2V0PVwiMTAwJVwiIC8+XG4gICAgICAgICAgPC9saW5lYXJHcmFkaWVudD5cbiAgICAgICAgPC9kZWZzPlxuICAgICAgICA8ZyBpZD1cIiR7cHJlZml4fWljb24tZ3JvdXBcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cInVybCgjJHtwcmVmaXh9bGluZWFyLWdyYWRpZW50KVwiIHN0cm9rZS13aWR0aD1cIjE4XCI+XG4gICAgICAgICAgPHBhdGggZD1cIk0xMTMsNS4wODIxOTExNyBMNC4yODM5MzgwMSwxOTcuNSBMMjIxLjcxNjA2MiwxOTcuNSBMMTEzLDUuMDgyMTkxMTcgWlwiIC8+XG4gICAgICAgIDwvZz5cbiAgICAgIDwvc3ZnPlxuICAgIDwvZGl2PlxuICBgO1xuICAgIHJldHVybiBjb250YWluZXI7XG59XG5mdW5jdGlvbiBjcmVhdGVDc3MocHJlZml4KSB7XG4gICAgY29uc3QgY3NzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcbiAgICBjc3MudGV4dENvbnRlbnQgPSBgXG4gICAgIyR7cHJlZml4fWNvbnRhaW5lciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDEwcHg7XG4gICAgICByaWdodDogMzBweDtcblxuICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgYmFja2dyb3VuZDogIzAwMDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgZm9udDogaW5pdGlhbDtcbiAgICAgIGN1cnNvcjogaW5pdGlhbDtcbiAgICAgIGxldHRlci1zcGFjaW5nOiBpbml0aWFsO1xuICAgICAgdGV4dC1zaGFkb3c6IGluaXRpYWw7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogaW5pdGlhbDtcbiAgICAgIHZpc2liaWxpdHk6IGluaXRpYWw7XG5cbiAgICAgIHBhZGRpbmc6IDdweCAxMHB4IDhweCAxMHB4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGJveC1zaGFkb3c6IDAgMTFweCA0MHB4IDAgcmdiYSgwLCAwLCAwLCAwLjI1KSwgMCAycHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XG5cbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjFzIGVhc2UsIGJvdHRvbSAwLjFzIGVhc2U7XG4gICAgICBhbmltYXRpb246ICR7cHJlZml4fWZhZGUtaW4gMC4xcyBlYXNlLWluLW91dDtcbiAgICB9XG5cbiAgICAjJHtwcmVmaXh9Y29udGFpbmVyLiR7cHJlZml4fXZpc2libGUge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG5cbiAgICAjJHtwcmVmaXh9Y29udGFpbmVyLiR7cHJlZml4fWJ1aWxkaW5nIHtcbiAgICAgIGJvdHRvbTogMjBweDtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgIyR7cHJlZml4fWljb24td3JhcHBlciB7XG4gICAgICB3aWR0aDogMTZweDtcbiAgICAgIGhlaWdodDogMTZweDtcbiAgICB9XG5cbiAgICAjJHtwcmVmaXh9aWNvbi13cmFwcGVyID4gc3ZnIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgICMke3ByZWZpeH1pY29uLWdyb3VwIHtcbiAgICAgIGFuaW1hdGlvbjogJHtwcmVmaXh9c3Ryb2tlZGFzaCAxcyBlYXNlLWluLW91dCBib3RoIGluZmluaXRlO1xuICAgIH1cblxuICAgIEBrZXlmcmFtZXMgJHtwcmVmaXh9ZmFkZS1pbiB7XG4gICAgICBmcm9tIHtcbiAgICAgICAgYm90dG9tOiAxMHB4O1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgICAgdG8ge1xuICAgICAgICBib3R0b206IDIwcHg7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGtleWZyYW1lcyAke3ByZWZpeH1zdHJva2VkYXNoIHtcbiAgICAgIDAlIHtcbiAgICAgICAgc3Ryb2tlLWRhc2hhcnJheTogMCAyMjY7XG4gICAgICB9XG4gICAgICA4MCUsXG4gICAgICAxMDAlIHtcbiAgICAgICAgc3Ryb2tlLWRhc2hhcnJheTogNjU5IDIyNjtcbiAgICAgIH1cbiAgICB9XG4gIGA7XG4gICAgcmV0dXJuIGNzcztcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGV2LWJ1aWxkLXdhdGNoZXIuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiaW5pdGlhbGl6ZUJ1aWxkV2F0Y2hlciIsIl93ZWJzb2NrZXQiLCJyZXF1aXJlIiwidG9nZ2xlQ2FsbGJhY2siLCJwb3NpdGlvbiIsInNoYWRvd0hvc3QiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJpZCIsInN0eWxlIiwiaW5kZXhPZiIsInRvcCIsImJvdHRvbSIsImxlZnQiLCJyaWdodCIsIndpZHRoIiwiaGVpZ2h0IiwiekluZGV4IiwiYm9keSIsImFwcGVuZENoaWxkIiwic2hhZG93Um9vdCIsInByZWZpeCIsImF0dGFjaFNoYWRvdyIsIm1vZGUiLCJjb250YWluZXIiLCJjcmVhdGVDb250YWluZXIiLCJjc3MiLCJjcmVhdGVDc3MiLCJpc1Zpc2libGUiLCJpc0J1aWxkaW5nIiwidGltZW91dElkIiwiYWRkTWVzc2FnZUxpc3RlbmVyIiwiZXZlbnQiLCJkYXRhIiwiaGFuZGxlTWVzc2FnZSIsImUiLCJvYmoiLCJhY3Rpb24iLCJKU09OIiwicGFyc2UiLCJjbGVhclRpbWVvdXQiLCJ1cGRhdGVDb250YWluZXIiLCJzZXRUaW1lb3V0IiwiY2xhc3NMaXN0IiwiYWRkIiwicmVtb3ZlIiwiaW5uZXJIVE1MIiwidGV4dENvbnRlbnQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/dev-build-watcher.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/dev/error-overlay/format-webpack-messages.js": +/*!************************************************************************************!*\ + !*** ./node_modules/next/dist/client/dev/error-overlay/format-webpack-messages.js ***! + \************************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _toConsumableArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/toConsumableArray.js\");\n\nvar _slicedToArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nvar _stripAnsi = _interopRequireDefault(__webpack_require__(/*! next/dist/compiled/strip-ansi */ \"./node_modules/next/dist/compiled/strip-ansi/index.js\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\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\n\n\nvar friendlySyntaxErrorLabel = 'Syntax error:';\n\nfunction isLikelyASyntaxError(message) {\n return (0, _stripAnsi)[\"default\"](message).indexOf(friendlySyntaxErrorLabel) !== -1;\n} // Cleans up webpack error messages.\n\n\nfunction formatMessage(message, verbose) {\n // TODO: Replace this once webpack 5 is stable\n if (typeof message === 'object' && message.message) {\n var filteredModuleTrace = message.moduleTrace && message.moduleTrace.filter(function (trace) {\n return !/next-(middleware|client-pages|flight-(client|server))-loader\\.js/.test(trace.originName);\n });\n message = (message.moduleName ? (0, _stripAnsi)[\"default\"](message.moduleName) + '\\n' : '') + (message.file ? (0, _stripAnsi)[\"default\"](message.file) + '\\n' : '') + message.message + (message.details && verbose ? '\\n' + message.details : '') + (filteredModuleTrace && filteredModuleTrace.length && verbose ? '\\n\\nImport trace for requested module:' + filteredModuleTrace.map(function (trace) {\n return \"\\n\".concat(trace.originName);\n }).join('') : '') + (message.stack && verbose ? '\\n' + message.stack : '');\n }\n\n var lines = message.split('\\n'); // Strip Webpack-added headers off errors/warnings\n // https://github.com/webpack/webpack/blob/master/lib/ModuleError.js\n\n lines = lines.filter(function (line) {\n return !/Module [A-z ]+\\(from/.test(line);\n }); // Transform parsing error into syntax error\n // TODO: move this to our ESLint formatter?\n\n lines = lines.map(function (line) {\n var parsingError = /Line (\\d+):(?:(\\d+):)?\\s*Parsing error: (.+)$/.exec(line);\n\n if (!parsingError) {\n return line;\n }\n\n var _parsingError = _slicedToArray(parsingError, 4),\n errorLine = _parsingError[1],\n errorColumn = _parsingError[2],\n errorMessage = _parsingError[3];\n\n return \"\".concat(friendlySyntaxErrorLabel, \" \").concat(errorMessage, \" (\").concat(errorLine, \":\").concat(errorColumn, \")\");\n });\n message = lines.join('\\n'); // Smoosh syntax errors (commonly found in CSS)\n\n message = message.replace(/SyntaxError\\s+\\((\\d+):(\\d+)\\)\\s*(.+?)\\n/g, \"\".concat(friendlySyntaxErrorLabel, \" $3 ($1:$2)\\n\")); // Clean up export errors\n\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'); // Remove leading newline\n\n if (lines.length > 2 && lines[1].trim() === '') {\n lines.splice(1, 1);\n } // Cleans up verbose \"module not found\" messages for files and packages.\n\n\n if (lines[1] && lines[1].indexOf('Module not found: ') === 0) {\n lines = [lines[0], lines[1].replace('Error: ', '').replace('Module not found: Cannot find file:', 'Cannot find file:')].concat(_toConsumableArray(lines.slice(2)));\n } // Add helpful message for users trying to use Sass for the first time\n\n\n if (lines[1] && lines[1].match(/Cannot find module.+node-sass/)) {\n // ./file.module.scss (<<loader info>>) => ./file.module.scss\n lines[0] = lines[0].replace(/(.+) \\(.+?(?=\\?\\?).+?\\)/, '$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 }\n\n if (!verbose) {\n message = lines.join('\\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\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 lines = message.split('\\n');\n } // Remove duplicated newlines\n\n\n lines = lines.filter(function (line, index, arr) {\n return index === 0 || line.trim() !== '' || line.trim() !== arr[index - 1].trim();\n }); // Reassemble the message\n\n message = lines.join('\\n');\n return message.trim();\n}\n\nfunction formatWebpackMessages(json, verbose) {\n var formattedErrors = json.errors.map(function (message) {\n return formatMessage(message, verbose);\n });\n var formattedWarnings = json.warnings.map(function (message) {\n return formatMessage(message, verbose);\n });\n var result = {\n errors: formattedErrors,\n warnings: formattedWarnings\n };\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\n return result;\n}\n\nmodule.exports = formatWebpackMessages;\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvZXJyb3Itb3ZlcmxheS9mb3JtYXQtd2VicGFjay1tZXNzYWdlcy5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7Ozs7OztBQUNiLElBQUlBLFVBQVUsR0FBR0Msc0JBQXNCLENBQUNDLG1CQUFPLENBQUMsNEZBQUQsQ0FBUixDQUF2Qzs7QUFDQSxTQUFTRCxzQkFBVCxDQUFnQ0UsR0FBaEMsRUFBcUM7QUFDakMsU0FBT0EsR0FBRyxJQUFJQSxHQUFHLENBQUNDLFVBQVgsR0FBd0JELEdBQXhCLEdBQThCO0FBQ2pDLGVBQVNBO0FBRHdCLEdBQXJDO0FBR0gsRUFDRDtBQUNBOzs7QUFDQSxJQUFNRSx3QkFBd0IsR0FBRyxlQUFqQzs7QUFDQSxTQUFTQyxvQkFBVCxDQUE4QkMsT0FBOUIsRUFBdUM7QUFDbkMsU0FBTyxDQUFDLEdBQUdQLFVBQUosYUFBd0JPLE9BQXhCLEVBQWlDQyxPQUFqQyxDQUF5Q0gsd0JBQXpDLE1BQXVFLENBQUMsQ0FBL0U7QUFDSCxFQUNEOzs7QUFDQSxTQUFTSSxhQUFULENBQXVCRixPQUF2QixFQUFnQ0csT0FBaEMsRUFBeUM7QUFDckM7QUFDQSxNQUFJLE9BQU9ILE9BQVAsS0FBbUIsUUFBbkIsSUFBK0JBLE9BQU8sQ0FBQ0EsT0FBM0MsRUFBb0Q7QUFDaEQsUUFBTUksbUJBQW1CLEdBQUdKLE9BQU8sQ0FBQ0ssV0FBUixJQUF1QkwsT0FBTyxDQUFDSyxXQUFSLENBQW9CQyxNQUFwQixDQUEyQixVQUFDQyxLQUFEO0FBQUEsYUFBUyxDQUFDLG1FQUFtRUMsSUFBbkUsQ0FBd0VELEtBQUssQ0FBQ0UsVUFBOUUsQ0FBVjtBQUFBLEtBQTNCLENBQW5EO0FBRUFULElBQUFBLE9BQU8sR0FBRyxDQUFDQSxPQUFPLENBQUNVLFVBQVIsR0FBcUIsQ0FBQyxHQUFHakIsVUFBSixhQUF3Qk8sT0FBTyxDQUFDVSxVQUFoQyxJQUE4QyxJQUFuRSxHQUEwRSxFQUEzRSxLQUFrRlYsT0FBTyxDQUFDVyxJQUFSLEdBQWUsQ0FBQyxHQUFHbEIsVUFBSixhQUF3Qk8sT0FBTyxDQUFDVyxJQUFoQyxJQUF3QyxJQUF2RCxHQUE4RCxFQUFoSixJQUFzSlgsT0FBTyxDQUFDQSxPQUE5SixJQUF5S0EsT0FBTyxDQUFDWSxPQUFSLElBQW1CVCxPQUFuQixHQUE2QixPQUFPSCxPQUFPLENBQUNZLE9BQTVDLEdBQXNELEVBQS9OLEtBQXNPUixtQkFBbUIsSUFBSUEsbUJBQW1CLENBQUNTLE1BQTNDLElBQXFEVixPQUFyRCxHQUErRCwyQ0FBMkNDLG1CQUFtQixDQUFDVSxHQUFwQixDQUF3QixVQUFDUCxLQUFEO0FBQUEseUJBQWNBLEtBQUssQ0FBQ0UsVUFBcEI7QUFBQSxLQUF4QixFQUN4Vk0sSUFEd1YsQ0FDblYsRUFEbVYsQ0FBMUcsR0FDbk8sRUFESCxLQUNVZixPQUFPLENBQUNnQixLQUFSLElBQWlCYixPQUFqQixHQUEyQixPQUFPSCxPQUFPLENBQUNnQixLQUExQyxHQUFrRCxFQUQ1RCxDQUFWO0FBRUg7O0FBQ0QsTUFBSUMsS0FBSyxHQUFHakIsT0FBTyxDQUFDa0IsS0FBUixDQUFjLElBQWQsQ0FBWixDQVJxQyxDQVNyQztBQUNBOztBQUNBRCxFQUFBQSxLQUFLLEdBQUdBLEtBQUssQ0FBQ1gsTUFBTixDQUFhLFVBQUNhLElBQUQ7QUFBQSxXQUFRLENBQUMsdUJBQXVCWCxJQUF2QixDQUE0QlcsSUFBNUIsQ0FBVDtBQUFBLEdBQWIsQ0FBUixDQVhxQyxDQWFyQztBQUNBOztBQUNBRixFQUFBQSxLQUFLLEdBQUdBLEtBQUssQ0FBQ0gsR0FBTixDQUFVLFVBQUNLLElBQUQsRUFBUTtBQUN0QixRQUFNQyxZQUFZLEdBQUcsZ0RBQWdEQyxJQUFoRCxDQUFxREYsSUFBckQsQ0FBckI7O0FBQ0EsUUFBSSxDQUFDQyxZQUFMLEVBQW1CO0FBQ2YsYUFBT0QsSUFBUDtBQUNIOztBQUNELHVDQUFpREMsWUFBakQ7QUFBQSxRQUFTRSxTQUFUO0FBQUEsUUFBb0JDLFdBQXBCO0FBQUEsUUFBaUNDLFlBQWpDOztBQUNBLHFCQUFVMUIsd0JBQVYsY0FBc0MwQixZQUF0QyxlQUF1REYsU0FBdkQsY0FBb0VDLFdBQXBFO0FBQ0gsR0FQTyxDQUFSO0FBUUF2QixFQUFBQSxPQUFPLEdBQUdpQixLQUFLLENBQUNGLElBQU4sQ0FBVyxJQUFYLENBQVYsQ0F2QnFDLENBd0JyQzs7QUFDQWYsRUFBQUEsT0FBTyxHQUFHQSxPQUFPLENBQUN5QixPQUFSLENBQWdCLDBDQUFoQixZQUErRDNCLHdCQUEvRCxtQkFBVixDQXpCcUMsQ0EwQnJDOztBQUNBRSxFQUFBQSxPQUFPLEdBQUdBLE9BQU8sQ0FBQ3lCLE9BQVIsQ0FBZ0IsaURBQWhCLDREQUFWO0FBQ0F6QixFQUFBQSxPQUFPLEdBQUdBLE9BQU8sQ0FBQ3lCLE9BQVIsQ0FBZ0IsMkVBQWhCLHVGQUFWO0FBQ0F6QixFQUFBQSxPQUFPLEdBQUdBLE9BQU8sQ0FBQ3lCLE9BQVIsQ0FBZ0IseUVBQWhCLCtFQUFWO0FBQ0FSLEVBQUFBLEtBQUssR0FBR2pCLE9BQU8sQ0FBQ2tCLEtBQVIsQ0FBYyxJQUFkLENBQVIsQ0E5QnFDLENBK0JyQzs7QUFDQSxNQUFJRCxLQUFLLENBQUNKLE1BQU4sR0FBZSxDQUFmLElBQW9CSSxLQUFLLENBQUMsQ0FBRCxDQUFMLENBQVNTLElBQVQsT0FBb0IsRUFBNUMsRUFBZ0Q7QUFDNUNULElBQUFBLEtBQUssQ0FBQ1UsTUFBTixDQUFhLENBQWIsRUFBZ0IsQ0FBaEI7QUFDSCxHQWxDb0MsQ0FtQ3JDOzs7QUFDQSxNQUFJVixLQUFLLENBQUMsQ0FBRCxDQUFMLElBQVlBLEtBQUssQ0FBQyxDQUFELENBQUwsQ0FBU2hCLE9BQVQsQ0FBaUIsb0JBQWpCLE1BQTJDLENBQTNELEVBQThEO0FBQzFEZ0IsSUFBQUEsS0FBSyxJQUNEQSxLQUFLLENBQUMsQ0FBRCxDQURKLEVBRURBLEtBQUssQ0FBQyxDQUFELENBQUwsQ0FBU1EsT0FBVCxDQUFpQixTQUFqQixFQUE0QixFQUE1QixFQUFnQ0EsT0FBaEMsQ0FBd0MscUNBQXhDLEVBQStFLG1CQUEvRSxDQUZDLDRCQUdFUixLQUFLLENBQUNXLEtBQU4sQ0FBWSxDQUFaLENBSEYsRUFBTDtBQUtILEdBMUNvQyxDQTJDckM7OztBQUNBLE1BQUlYLEtBQUssQ0FBQyxDQUFELENBQUwsSUFBWUEsS0FBSyxDQUFDLENBQUQsQ0FBTCxDQUFTWSxLQUFULENBQWUsK0JBQWYsQ0FBaEIsRUFBaUU7QUFDN0Q7QUFDQVosSUFBQUEsS0FBSyxDQUFDLENBQUQsQ0FBTCxHQUFXQSxLQUFLLENBQUMsQ0FBRCxDQUFMLENBQVNRLE9BQVQsQ0FBaUIseUJBQWpCLEVBQTRDLElBQTVDLENBQVg7QUFDQVIsSUFBQUEsS0FBSyxDQUFDLENBQUQsQ0FBTCxHQUFXLDRFQUFYO0FBQ0FBLElBQUFBLEtBQUssQ0FBQyxDQUFELENBQUwsSUFBWSw4REFBWjtBQUNBQSxJQUFBQSxLQUFLLENBQUMsQ0FBRCxDQUFMLElBQVksNkRBQVo7QUFDSDs7QUFDRCxNQUFJLENBQUNkLE9BQUwsRUFBYztBQUNWSCxJQUFBQSxPQUFPLEdBQUdpQixLQUFLLENBQUNGLElBQU4sQ0FBVyxJQUFYLENBQVYsQ0FEVSxDQUVWO0FBQ0E7QUFDQTtBQUNBOztBQUNBZixJQUFBQSxPQUFPLEdBQUdBLE9BQU8sQ0FBQ3lCLE9BQVIsQ0FBZ0IsZ0RBQWhCLEVBQWtFLEVBQWxFLENBQVYsQ0FBZ0Y7QUFBaEY7QUFFQXpCLElBQUFBLE9BQU8sR0FBR0EsT0FBTyxDQUFDeUIsT0FBUixDQUFnQiw2QkFBaEIsRUFBK0MsRUFBL0MsQ0FBVixDQUE2RDtBQUE3RDtBQUVBUixJQUFBQSxLQUFLLEdBQUdqQixPQUFPLENBQUNrQixLQUFSLENBQWMsSUFBZCxDQUFSO0FBQ0gsR0E5RG9DLENBK0RyQzs7O0FBQ0FELEVBQUFBLEtBQUssR0FBR0EsS0FBSyxDQUFDWCxNQUFOLENBQWEsVUFBQ2EsSUFBRCxFQUFPVyxLQUFQLEVBQWNDLEdBQWQ7QUFBQSxXQUFvQkQsS0FBSyxLQUFLLENBQVYsSUFBZVgsSUFBSSxDQUFDTyxJQUFMLE9BQWdCLEVBQS9CLElBQXFDUCxJQUFJLENBQUNPLElBQUwsT0FBZ0JLLEdBQUcsQ0FBQ0QsS0FBSyxHQUFHLENBQVQsQ0FBSCxDQUFlSixJQUFmLEVBQXpFO0FBQUEsR0FBYixDQUFSLENBaEVxQyxDQWtFckM7O0FBQ0ExQixFQUFBQSxPQUFPLEdBQUdpQixLQUFLLENBQUNGLElBQU4sQ0FBVyxJQUFYLENBQVY7QUFDQSxTQUFPZixPQUFPLENBQUMwQixJQUFSLEVBQVA7QUFDSDs7QUFDRCxTQUFTTSxxQkFBVCxDQUErQkMsSUFBL0IsRUFBcUM5QixPQUFyQyxFQUE4QztBQUMxQyxNQUFNK0IsZUFBZSxHQUFHRCxJQUFJLENBQUNFLE1BQUwsQ0FBWXJCLEdBQVosQ0FBZ0IsVUFBU2QsT0FBVCxFQUFrQjtBQUN0RCxXQUFPRSxhQUFhLENBQUNGLE9BQUQsRUFBVUcsT0FBVixDQUFwQjtBQUNILEdBRnVCLENBQXhCO0FBR0EsTUFBTWlDLGlCQUFpQixHQUFHSCxJQUFJLENBQUNJLFFBQUwsQ0FBY3ZCLEdBQWQsQ0FBa0IsVUFBU2QsT0FBVCxFQUFrQjtBQUMxRCxXQUFPRSxhQUFhLENBQUNGLE9BQUQsRUFBVUcsT0FBVixDQUFwQjtBQUNILEdBRnlCLENBQTFCO0FBR0EsTUFBTW1DLE1BQU0sR0FBRztBQUNYSCxJQUFBQSxNQUFNLEVBQUVELGVBREc7QUFFWEcsSUFBQUEsUUFBUSxFQUFFRDtBQUZDLEdBQWY7O0FBSUEsTUFBSSxDQUFDakMsT0FBRCxJQUFZbUMsTUFBTSxDQUFDSCxNQUFQLENBQWNJLElBQWQsQ0FBbUJ4QyxvQkFBbkIsQ0FBaEIsRUFBMEQ7QUFDdEQ7QUFDQXVDLElBQUFBLE1BQU0sQ0FBQ0gsTUFBUCxHQUFnQkcsTUFBTSxDQUFDSCxNQUFQLENBQWM3QixNQUFkLENBQXFCUCxvQkFBckIsQ0FBaEI7QUFDQXVDLElBQUFBLE1BQU0sQ0FBQ0QsUUFBUCxHQUFrQixFQUFsQjtBQUNIOztBQUNELFNBQU9DLE1BQVA7QUFDSDs7QUFDREUsTUFBTSxDQUFDQyxPQUFQLEdBQWlCVCxxQkFBakIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvZGV2L2Vycm9yLW92ZXJsYXkvZm9ybWF0LXdlYnBhY2stbWVzc2FnZXMuanM/NzVlYyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfc3RyaXBBbnNpID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL3N0cmlwLWFuc2lcIikpO1xuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuLy8gVGhpcyBmaWxlIGlzIGJhc2VkIG9uIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9jcmVhdGUtcmVhY3QtYXBwL2Jsb2IvN2IxYTMyYmU2ZWM5Zjk5YTZjOWEzYzY2ODEzZjNhYzA5YzQ3MzZiOS9wYWNrYWdlcy9yZWFjdC1kZXYtdXRpbHMvZm9ybWF0V2VicGFja01lc3NhZ2VzLmpzXG4vLyBJdCdzIGJlZW4gZWRpdGVkIHRvIHJlbW92ZSBjaGFsayBhbmQgQ1JBLXNwZWNpZmljIGxvZ2ljXG5jb25zdCBmcmllbmRseVN5bnRheEVycm9yTGFiZWwgPSAnU3ludGF4IGVycm9yOic7XG5mdW5jdGlvbiBpc0xpa2VseUFTeW50YXhFcnJvcihtZXNzYWdlKSB7XG4gICAgcmV0dXJuICgwLCBfc3RyaXBBbnNpKS5kZWZhdWx0KG1lc3NhZ2UpLmluZGV4T2YoZnJpZW5kbHlTeW50YXhFcnJvckxhYmVsKSAhPT0gLTE7XG59XG4vLyBDbGVhbnMgdXAgd2VicGFjayBlcnJvciBtZXNzYWdlcy5cbmZ1bmN0aW9uIGZvcm1hdE1lc3NhZ2UobWVzc2FnZSwgdmVyYm9zZSkge1xuICAgIC8vIFRPRE86IFJlcGxhY2UgdGhpcyBvbmNlIHdlYnBhY2sgNSBpcyBzdGFibGVcbiAgICBpZiAodHlwZW9mIG1lc3NhZ2UgPT09ICdvYmplY3QnICYmIG1lc3NhZ2UubWVzc2FnZSkge1xuICAgICAgICBjb25zdCBmaWx0ZXJlZE1vZHVsZVRyYWNlID0gbWVzc2FnZS5tb2R1bGVUcmFjZSAmJiBtZXNzYWdlLm1vZHVsZVRyYWNlLmZpbHRlcigodHJhY2UpPT4hL25leHQtKG1pZGRsZXdhcmV8Y2xpZW50LXBhZ2VzfGZsaWdodC0oY2xpZW50fHNlcnZlcikpLWxvYWRlclxcLmpzLy50ZXN0KHRyYWNlLm9yaWdpbk5hbWUpXG4gICAgICAgICk7XG4gICAgICAgIG1lc3NhZ2UgPSAobWVzc2FnZS5tb2R1bGVOYW1lID8gKDAsIF9zdHJpcEFuc2kpLmRlZmF1bHQobWVzc2FnZS5tb2R1bGVOYW1lKSArICdcXG4nIDogJycpICsgKG1lc3NhZ2UuZmlsZSA/ICgwLCBfc3RyaXBBbnNpKS5kZWZhdWx0KG1lc3NhZ2UuZmlsZSkgKyAnXFxuJyA6ICcnKSArIG1lc3NhZ2UubWVzc2FnZSArIChtZXNzYWdlLmRldGFpbHMgJiYgdmVyYm9zZSA/ICdcXG4nICsgbWVzc2FnZS5kZXRhaWxzIDogJycpICsgKGZpbHRlcmVkTW9kdWxlVHJhY2UgJiYgZmlsdGVyZWRNb2R1bGVUcmFjZS5sZW5ndGggJiYgdmVyYm9zZSA/ICdcXG5cXG5JbXBvcnQgdHJhY2UgZm9yIHJlcXVlc3RlZCBtb2R1bGU6JyArIGZpbHRlcmVkTW9kdWxlVHJhY2UubWFwKCh0cmFjZSk9PmBcXG4ke3RyYWNlLm9yaWdpbk5hbWV9YFxuICAgICAgICApLmpvaW4oJycpIDogJycpICsgKG1lc3NhZ2Uuc3RhY2sgJiYgdmVyYm9zZSA/ICdcXG4nICsgbWVzc2FnZS5zdGFjayA6ICcnKTtcbiAgICB9XG4gICAgbGV0IGxpbmVzID0gbWVzc2FnZS5zcGxpdCgnXFxuJyk7XG4gICAgLy8gU3RyaXAgV2VicGFjay1hZGRlZCBoZWFkZXJzIG9mZiBlcnJvcnMvd2FybmluZ3NcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vd2VicGFjay93ZWJwYWNrL2Jsb2IvbWFzdGVyL2xpYi9Nb2R1bGVFcnJvci5qc1xuICAgIGxpbmVzID0gbGluZXMuZmlsdGVyKChsaW5lKT0+IS9Nb2R1bGUgW0EteiBdK1xcKGZyb20vLnRlc3QobGluZSlcbiAgICApO1xuICAgIC8vIFRyYW5zZm9ybSBwYXJzaW5nIGVycm9yIGludG8gc3ludGF4IGVycm9yXG4gICAgLy8gVE9ETzogbW92ZSB0aGlzIHRvIG91ciBFU0xpbnQgZm9ybWF0dGVyP1xuICAgIGxpbmVzID0gbGluZXMubWFwKChsaW5lKT0+e1xuICAgICAgICBjb25zdCBwYXJzaW5nRXJyb3IgPSAvTGluZSAoXFxkKyk6KD86KFxcZCspOik/XFxzKlBhcnNpbmcgZXJyb3I6ICguKykkLy5leGVjKGxpbmUpO1xuICAgICAgICBpZiAoIXBhcnNpbmdFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIGxpbmU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgWywgZXJyb3JMaW5lLCBlcnJvckNvbHVtbiwgZXJyb3JNZXNzYWdlXSA9IHBhcnNpbmdFcnJvcjtcbiAgICAgICAgcmV0dXJuIGAke2ZyaWVuZGx5U3ludGF4RXJyb3JMYWJlbH0gJHtlcnJvck1lc3NhZ2V9ICgke2Vycm9yTGluZX06JHtlcnJvckNvbHVtbn0pYDtcbiAgICB9KTtcbiAgICBtZXNzYWdlID0gbGluZXMuam9pbignXFxuJyk7XG4gICAgLy8gU21vb3NoIHN5bnRheCBlcnJvcnMgKGNvbW1vbmx5IGZvdW5kIGluIENTUylcbiAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKC9TeW50YXhFcnJvclxccytcXCgoXFxkKyk6KFxcZCspXFwpXFxzKiguKz8pXFxuL2csIGAke2ZyaWVuZGx5U3ludGF4RXJyb3JMYWJlbH0gJDMgKCQxOiQyKVxcbmApO1xuICAgIC8vIENsZWFuIHVwIGV4cG9ydCBlcnJvcnNcbiAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKC9eLipleHBvcnQgJyguKz8pJyB3YXMgbm90IGZvdW5kIGluICcoLis/KScuKiQvZ20sIGBBdHRlbXB0ZWQgaW1wb3J0IGVycm9yOiAnJDEnIGlzIG5vdCBleHBvcnRlZCBmcm9tICckMicuYCk7XG4gICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZSgvXi4qZXhwb3J0ICdkZWZhdWx0JyBcXChpbXBvcnRlZCBhcyAnKC4rPyknXFwpIHdhcyBub3QgZm91bmQgaW4gJyguKz8pJy4qJC9nbSwgYEF0dGVtcHRlZCBpbXBvcnQgZXJyb3I6ICckMicgZG9lcyBub3QgY29udGFpbiBhIGRlZmF1bHQgZXhwb3J0IChpbXBvcnRlZCBhcyAnJDEnKS5gKTtcbiAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKC9eLipleHBvcnQgJyguKz8pJyBcXChpbXBvcnRlZCBhcyAnKC4rPyknXFwpIHdhcyBub3QgZm91bmQgaW4gJyguKz8pJy4qJC9nbSwgYEF0dGVtcHRlZCBpbXBvcnQgZXJyb3I6ICckMScgaXMgbm90IGV4cG9ydGVkIGZyb20gJyQzJyAoaW1wb3J0ZWQgYXMgJyQyJykuYCk7XG4gICAgbGluZXMgPSBtZXNzYWdlLnNwbGl0KCdcXG4nKTtcbiAgICAvLyBSZW1vdmUgbGVhZGluZyBuZXdsaW5lXG4gICAgaWYgKGxpbmVzLmxlbmd0aCA+IDIgJiYgbGluZXNbMV0udHJpbSgpID09PSAnJykge1xuICAgICAgICBsaW5lcy5zcGxpY2UoMSwgMSk7XG4gICAgfVxuICAgIC8vIENsZWFucyB1cCB2ZXJib3NlIFwibW9kdWxlIG5vdCBmb3VuZFwiIG1lc3NhZ2VzIGZvciBmaWxlcyBhbmQgcGFja2FnZXMuXG4gICAgaWYgKGxpbmVzWzFdICYmIGxpbmVzWzFdLmluZGV4T2YoJ01vZHVsZSBub3QgZm91bmQ6ICcpID09PSAwKSB7XG4gICAgICAgIGxpbmVzID0gW1xuICAgICAgICAgICAgbGluZXNbMF0sXG4gICAgICAgICAgICBsaW5lc1sxXS5yZXBsYWNlKCdFcnJvcjogJywgJycpLnJlcGxhY2UoJ01vZHVsZSBub3QgZm91bmQ6IENhbm5vdCBmaW5kIGZpbGU6JywgJ0Nhbm5vdCBmaW5kIGZpbGU6JyksXG4gICAgICAgICAgICAuLi5saW5lcy5zbGljZSgyKSwgXG4gICAgICAgIF07XG4gICAgfVxuICAgIC8vIEFkZCBoZWxwZnVsIG1lc3NhZ2UgZm9yIHVzZXJzIHRyeWluZyB0byB1c2UgU2FzcyBmb3IgdGhlIGZpcnN0IHRpbWVcbiAgICBpZiAobGluZXNbMV0gJiYgbGluZXNbMV0ubWF0Y2goL0Nhbm5vdCBmaW5kIG1vZHVsZS4rbm9kZS1zYXNzLykpIHtcbiAgICAgICAgLy8gLi9maWxlLm1vZHVsZS5zY3NzICg8PGxvYWRlciBpbmZvPj4pID0+IC4vZmlsZS5tb2R1bGUuc2Nzc1xuICAgICAgICBsaW5lc1swXSA9IGxpbmVzWzBdLnJlcGxhY2UoLyguKykgXFwoLis/KD89XFw/XFw/KS4rP1xcKS8sICckMScpO1xuICAgICAgICBsaW5lc1sxXSA9IFwiVG8gdXNlIE5leHQuanMnIGJ1aWx0LWluIFNhc3Mgc3VwcG9ydCwgeW91IGZpcnN0IG5lZWQgdG8gaW5zdGFsbCBgc2Fzc2AuXFxuXCI7XG4gICAgICAgIGxpbmVzWzFdICs9ICdSdW4gYG5wbSBpIHNhc3NgIG9yIGB5YXJuIGFkZCBzYXNzYCBpbnNpZGUgeW91ciB3b3Jrc3BhY2UuXFxuJztcbiAgICAgICAgbGluZXNbMV0gKz0gJ1xcbkxlYXJuIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2luc3RhbGwtc2Fzcyc7XG4gICAgfVxuICAgIGlmICghdmVyYm9zZSkge1xuICAgICAgICBtZXNzYWdlID0gbGluZXMuam9pbignXFxuJyk7XG4gICAgICAgIC8vIEludGVybmFsIHN0YWNrcyBhcmUgZ2VuZXJhbGx5IHVzZWxlc3Mgc28gd2Ugc3RyaXAgdGhlbS4uLiB3aXRoIHRoZVxuICAgICAgICAvLyBleGNlcHRpb24gb2Ygc3RhY2tzIGNvbnRhaW5pbmcgYHdlYnBhY2s6YCBiZWNhdXNlIHRoZXkncmUgbm9ybWFsbHlcbiAgICAgICAgLy8gZnJvbSB1c2VyIGNvZGUgZ2VuZXJhdGVkIGJ5IFdlYnBhY2suIEZvciBtb3JlIGluZm9ybWF0aW9uIHNlZVxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svY3JlYXRlLXJlYWN0LWFwcC9wdWxsLzEwNTBcbiAgICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZSgvXlxccyphdFxccygoPyF3ZWJwYWNrOikuKSo6XFxkKzpcXGQrW1xccyldKihcXG58JCkvZ20sICcnKSAvLyBhdCAuLi4gLi4uOng6eVxuICAgICAgICA7XG4gICAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoL15cXHMqYXRcXHM8YW5vbnltb3VzPihcXG58JCkvZ20sICcnKSAvLyBhdCA8YW5vbnltb3VzPlxuICAgICAgICA7XG4gICAgICAgIGxpbmVzID0gbWVzc2FnZS5zcGxpdCgnXFxuJyk7XG4gICAgfVxuICAgIC8vIFJlbW92ZSBkdXBsaWNhdGVkIG5ld2xpbmVzXG4gICAgbGluZXMgPSBsaW5lcy5maWx0ZXIoKGxpbmUsIGluZGV4LCBhcnIpPT5pbmRleCA9PT0gMCB8fCBsaW5lLnRyaW0oKSAhPT0gJycgfHwgbGluZS50cmltKCkgIT09IGFycltpbmRleCAtIDFdLnRyaW0oKVxuICAgICk7XG4gICAgLy8gUmVhc3NlbWJsZSB0aGUgbWVzc2FnZVxuICAgIG1lc3NhZ2UgPSBsaW5lcy5qb2luKCdcXG4nKTtcbiAgICByZXR1cm4gbWVzc2FnZS50cmltKCk7XG59XG5mdW5jdGlvbiBmb3JtYXRXZWJwYWNrTWVzc2FnZXMoanNvbiwgdmVyYm9zZSkge1xuICAgIGNvbnN0IGZvcm1hdHRlZEVycm9ycyA9IGpzb24uZXJyb3JzLm1hcChmdW5jdGlvbihtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiBmb3JtYXRNZXNzYWdlKG1lc3NhZ2UsIHZlcmJvc2UpO1xuICAgIH0pO1xuICAgIGNvbnN0IGZvcm1hdHRlZFdhcm5pbmdzID0ganNvbi53YXJuaW5ncy5tYXAoZnVuY3Rpb24obWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gZm9ybWF0TWVzc2FnZShtZXNzYWdlLCB2ZXJib3NlKTtcbiAgICB9KTtcbiAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICAgIGVycm9yczogZm9ybWF0dGVkRXJyb3JzLFxuICAgICAgICB3YXJuaW5nczogZm9ybWF0dGVkV2FybmluZ3NcbiAgICB9O1xuICAgIGlmICghdmVyYm9zZSAmJiByZXN1bHQuZXJyb3JzLnNvbWUoaXNMaWtlbHlBU3ludGF4RXJyb3IpKSB7XG4gICAgICAgIC8vIElmIHRoZXJlIGFyZSBhbnkgc3ludGF4IGVycm9ycywgc2hvdyBqdXN0IHRoZW0uXG4gICAgICAgIHJlc3VsdC5lcnJvcnMgPSByZXN1bHQuZXJyb3JzLmZpbHRlcihpc0xpa2VseUFTeW50YXhFcnJvcik7XG4gICAgICAgIHJlc3VsdC53YXJuaW5ncyA9IFtdO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufVxubW9kdWxlLmV4cG9ydHMgPSBmb3JtYXRXZWJwYWNrTWVzc2FnZXM7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWZvcm1hdC13ZWJwYWNrLW1lc3NhZ2VzLmpzLm1hcCJdLCJuYW1lcyI6WyJfc3RyaXBBbnNpIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZnJpZW5kbHlTeW50YXhFcnJvckxhYmVsIiwiaXNMaWtlbHlBU3ludGF4RXJyb3IiLCJtZXNzYWdlIiwiaW5kZXhPZiIsImZvcm1hdE1lc3NhZ2UiLCJ2ZXJib3NlIiwiZmlsdGVyZWRNb2R1bGVUcmFjZSIsIm1vZHVsZVRyYWNlIiwiZmlsdGVyIiwidHJhY2UiLCJ0ZXN0Iiwib3JpZ2luTmFtZSIsIm1vZHVsZU5hbWUiLCJmaWxlIiwiZGV0YWlscyIsImxlbmd0aCIsIm1hcCIsImpvaW4iLCJzdGFjayIsImxpbmVzIiwic3BsaXQiLCJsaW5lIiwicGFyc2luZ0Vycm9yIiwiZXhlYyIsImVycm9yTGluZSIsImVycm9yQ29sdW1uIiwiZXJyb3JNZXNzYWdlIiwicmVwbGFjZSIsInRyaW0iLCJzcGxpY2UiLCJzbGljZSIsIm1hdGNoIiwiaW5kZXgiLCJhcnIiLCJmb3JtYXRXZWJwYWNrTWVzc2FnZXMiLCJqc29uIiwiZm9ybWF0dGVkRXJyb3JzIiwiZXJyb3JzIiwiZm9ybWF0dGVkV2FybmluZ3MiLCJ3YXJuaW5ncyIsInJlc3VsdCIsInNvbWUiLCJtb2R1bGUiLCJleHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/error-overlay/format-webpack-messages.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/dev/error-overlay/hot-dev-client.js": +/*!***************************************************************************!*\ + !*** ./node_modules/next/dist/client/dev/error-overlay/hot-dev-client.js ***! + \***************************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = connect;\n\nvar _client = __webpack_require__(/*! @next/react-dev-overlay/lib/client */ \"./node_modules/@next/react-dev-overlay/lib/client.js\");\n\nvar _stripAnsi = _interopRequireDefault(__webpack_require__(/*! next/dist/compiled/strip-ansi */ \"./node_modules/next/dist/compiled/strip-ansi/index.js\"));\n\nvar _websocket = __webpack_require__(/*! ./websocket */ \"./node_modules/next/dist/client/dev/error-overlay/websocket.js\");\n\nvar _formatWebpackMessages = _interopRequireDefault(__webpack_require__(/*! ./format-webpack-messages */ \"./node_modules/next/dist/client/dev/error-overlay/format-webpack-messages.js\"));\n\nvar _router = _interopRequireDefault(__webpack_require__(/*! next/router */ \"./node_modules/next/router.js\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n} // This alternative WebpackDevServer combines the functionality of:\n// https://github.com/webpack/webpack-dev-server/blob/webpack-1/client/index.js\n// https://github.com/webpack/webpack/blob/webpack-1/hot/dev-server.js\n// It only supports their simplest configuration (hot updates on same server).\n// It makes some opinionated choices on top, like adding a syntax error overlay\n// that looks similar to our console output. The error overlay is inspired by:\n// https://github.com/glenjamin/webpack-hot-middleware\n\n\nvar hadRuntimeError = false;\nvar customHmrEventHandler;\n\nfunction connect() {\n (0, _client).register();\n (0, _websocket).addMessageListener(function (event) {\n if (event.data.indexOf('action') === -1) return;\n\n try {\n processMessage(event);\n } catch (ex) {\n console.warn('Invalid HMR message: ' + event.data + '\\n' + ex);\n }\n });\n return {\n subscribeToHmrEvent: function subscribeToHmrEvent(handler) {\n customHmrEventHandler = handler;\n },\n onUnrecoverableError: function onUnrecoverableError() {\n hadRuntimeError = true;\n }\n };\n} // Remember some state related to hot module replacement.\n\n\nvar isFirstCompilation = true;\nvar mostRecentCompilationHash = null;\nvar hasCompileErrors = false;\n\nfunction clearOutdatedErrors() {\n // Clean up outdated compile errors, if any.\n if (typeof console !== 'undefined' && typeof console.clear === 'function') {\n if (hasCompileErrors) {\n console.clear();\n }\n }\n} // Successful compilation.\n\n\nfunction handleSuccess() {\n clearOutdatedErrors();\n var isHotUpdate = !isFirstCompilation || _router[\"default\"].pathname !== '/_error' && isUpdateAvailable();\n isFirstCompilation = false;\n hasCompileErrors = false; // Attempt to apply hot updates or reload.\n\n if (isHotUpdate) {\n tryApplyUpdates(function onSuccessfulHotUpdate(hasUpdates) {\n // Only dismiss it when we're sure it's a hot update.\n // Otherwise it would flicker right before the reload.\n onFastRefresh(hasUpdates);\n });\n }\n} // Compilation with warnings (e.g. ESLint).\n\n\nfunction handleWarnings(warnings) {\n clearOutdatedErrors();\n var isHotUpdate = !isFirstCompilation;\n isFirstCompilation = false;\n hasCompileErrors = false;\n\n function printWarnings() {\n // Print warnings to the console.\n var formatted = (0, _formatWebpackMessages)[\"default\"]({\n warnings: warnings,\n errors: []\n });\n\n if (typeof console !== 'undefined' && typeof console.warn === 'function') {\n for (var i = 0; i < formatted.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\n console.warn((0, _stripAnsi)[\"default\"](formatted.warnings[i]));\n }\n }\n }\n\n printWarnings(); // Attempt to apply hot updates or reload.\n\n if (isHotUpdate) {\n tryApplyUpdates(function onSuccessfulHotUpdate(hasUpdates) {\n // Only dismiss it when we're sure it's a hot update.\n // Otherwise it would flicker right before the reload.\n onFastRefresh(hasUpdates);\n });\n }\n} // Compilation with errors (e.g. syntax error or missing modules).\n\n\nfunction handleErrors(errors) {\n clearOutdatedErrors();\n isFirstCompilation = false;\n hasCompileErrors = true; // \"Massage\" webpack messages.\n\n var formatted = (0, _formatWebpackMessages)[\"default\"]({\n errors: errors,\n warnings: []\n }); // Only show the first error.\n\n (0, _client).onBuildError(formatted.errors[0]); // Also log them to the console.\n\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n for (var 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\n\n if (undefined) {\n if (self.__NEXT_HMR_CB) {\n self.__NEXT_HMR_CB(formatted.errors[0]);\n\n self.__NEXT_HMR_CB = null;\n }\n }\n}\n\nvar startLatency = undefined;\n\nfunction onFastRefresh(hasUpdates) {\n (0, _client).onBuildOk();\n\n if (hasUpdates) {\n (0, _client).onRefresh();\n }\n\n if (startLatency) {\n var latency = Date.now() - startLatency;\n console.log(\"[Fast Refresh] done in \".concat(latency, \"ms\"));\n\n if (self.__NEXT_HMR_LATENCY_CB) {\n self.__NEXT_HMR_LATENCY_CB(latency);\n }\n }\n} // There is a newer version of the code available.\n\n\nfunction handleAvailableHash(hash) {\n // Update last known compilation hash.\n mostRecentCompilationHash = hash;\n} // Handle messages from the server.\n\n\nfunction processMessage(e) {\n var obj = JSON.parse(e.data);\n\n switch (obj.action) {\n case 'building':\n {\n startLatency = Date.now();\n console.log('[Fast Refresh] rebuilding');\n break;\n }\n\n case 'built':\n case 'sync':\n {\n if (obj.hash) {\n handleAvailableHash(obj.hash);\n }\n\n var errors = obj.errors,\n warnings = obj.warnings;\n var hasErrors = Boolean(errors && errors.length);\n\n if (hasErrors) {\n return handleErrors(errors);\n }\n\n var hasWarnings = Boolean(warnings && warnings.length);\n\n if (hasWarnings) {\n return handleWarnings(warnings);\n }\n\n return handleSuccess();\n }\n\n default:\n {\n if (customHmrEventHandler) {\n customHmrEventHandler(obj);\n break;\n }\n\n break;\n }\n }\n} // Is there a newer version of this code available?\n\n\nfunction isUpdateAvailable() {\n /* globals __webpack_hash__ */\n // __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} // Webpack disallows updates in other states.\n\n\nfunction canApplyUpdates() {\n return module.hot.status() === 'idle';\n}\n\nfunction afterApplyUpdates(fn) {\n if (canApplyUpdates()) {\n fn();\n } else {\n var handler = function handler(status) {\n if (status === 'idle') {\n module.hot.removeStatusHandler(handler);\n fn();\n }\n };\n\n module.hot.addStatusHandler(handler);\n }\n} // Attempt to update code on the fly, fall back to a hard reload.\n\n\nfunction tryApplyUpdates(onHotUpdateSuccess) {\n if (false) {}\n\n if (!isUpdateAvailable() || !canApplyUpdates()) {\n (0, _client).onBuildOk();\n return;\n }\n\n function handleApplyUpdates(err, updatedModules) {\n if (err || hadRuntimeError || !updatedModules) {\n if (err) {\n console.warn('[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.');\n } else if (hadRuntimeError) {\n console.warn('[Fast Refresh] performing full reload because your application had an unrecoverable error');\n }\n\n window.location.reload();\n return;\n }\n\n var hasUpdates = Boolean(updatedModules.length);\n\n if (typeof onHotUpdateSuccess === 'function') {\n // Maybe we want to do something.\n onHotUpdateSuccess(hasUpdates);\n }\n\n if (isUpdateAvailable()) {\n // While we were updating, there was a new update! Do it again.\n tryApplyUpdates(hasUpdates ? _client.onBuildOk : onHotUpdateSuccess);\n } else {\n (0, _client).onBuildOk();\n\n if (undefined) {\n afterApplyUpdates(function () {\n if (self.__NEXT_HMR_CB) {\n self.__NEXT_HMR_CB();\n\n self.__NEXT_HMR_CB = null;\n }\n });\n }\n }\n } // https://webpack.js.org/api/hot-module-replacement/#check\n\n\n module.hot.check(\n /* autoApply */\n true).then(function (updatedModules) {\n handleApplyUpdates(null, updatedModules);\n }, function (err) {\n handleApplyUpdates(err, null);\n });\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvZXJyb3Itb3ZlcmxheS9ob3QtZGV2LWNsaWVudC5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELGtCQUFBLEdBQWtCRSxPQUFsQjs7QUFDQSxJQUFJQyxPQUFPLEdBQUdDLG1CQUFPLENBQUMsZ0dBQUQsQ0FBckI7O0FBQ0EsSUFBSUMsVUFBVSxHQUFHQyxzQkFBc0IsQ0FBQ0YsbUJBQU8sQ0FBQyw0RkFBRCxDQUFSLENBQXZDOztBQUNBLElBQUlHLFVBQVUsR0FBR0gsbUJBQU8sQ0FBQyxtRkFBRCxDQUF4Qjs7QUFDQSxJQUFJSSxzQkFBc0IsR0FBR0Ysc0JBQXNCLENBQUNGLG1CQUFPLENBQUMsK0dBQUQsQ0FBUixDQUFuRDs7QUFDQSxJQUFJSyxPQUFPLEdBQUdILHNCQUFzQixDQUFDRixtQkFBTyxDQUFDLGtEQUFELENBQVIsQ0FBcEM7O0FBQ0EsU0FBU0Usc0JBQVQsQ0FBZ0NJLEdBQWhDLEVBQXFDO0FBQ2pDLFNBQU9BLEdBQUcsSUFBSUEsR0FBRyxDQUFDQyxVQUFYLEdBQXdCRCxHQUF4QixHQUE4QjtBQUNqQyxlQUFTQTtBQUR3QixHQUFyQztBQUdILEVBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNBLElBQUlFLGVBQWUsR0FBRyxLQUF0QjtBQUNBLElBQUlDLHFCQUFKOztBQUNBLFNBQVNYLE9BQVQsR0FBbUI7QUFDZixHQUFDLEdBQUdDLE9BQUosRUFBYVcsUUFBYjtBQUNBLEdBQUMsR0FBR1AsVUFBSixFQUFnQlEsa0JBQWhCLENBQW1DLFVBQUNDLEtBQUQsRUFBUztBQUN4QyxRQUFJQSxLQUFLLENBQUNDLElBQU4sQ0FBV0MsT0FBWCxDQUFtQixRQUFuQixNQUFpQyxDQUFDLENBQXRDLEVBQXlDOztBQUN6QyxRQUFJO0FBQ0FDLE1BQUFBLGNBQWMsQ0FBQ0gsS0FB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RCxZQUFBQSxJQUFJLENBQUNDLGFBQUw7O0FBQ0FELFlBQUFBLElBQUksQ0FBQ0MsYUFBTCxHQUFxQixJQUFyQjtBQUNIO0FBQ0osU0FMZ0IsQ0FBakI7QUFNSDtBQUNKO0FBQ0osR0F4Q3dDLENBeUN6Qzs7O0FBQ0FxQixFQUFBQSxVQUFBLENBQVdjLEtBQVg7QUFBaUI7QUFBZ0IsTUFBakMsRUFBdUNDLElBQXZDLENBQTRDLFVBQUNMLGNBQUQsRUFBa0I7QUFDMURGLElBQUFBLGtCQUFrQixDQUFDLElBQUQsRUFBT0UsY0FBUCxDQUFsQjtBQUNILEdBRkQsRUFFRyxVQUFDRCxHQUFELEVBQU87QUFDTkQsSUFBQUEsa0JBQWtCLENBQUNDLEdBQUQsRUFBTSxJQUFOLENBQWxCO0FBQ0gsR0FKRDtBQUtIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2Rldi9lcnJvci1vdmVybGF5L2hvdC1kZXYtY2xpZW50LmpzPzE2MDAiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSBjb25uZWN0O1xudmFyIF9jbGllbnQgPSByZXF1aXJlKFwiQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvbGliL2NsaWVudFwiKTtcbnZhciBfc3RyaXBBbnNpID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL3N0cmlwLWFuc2lcIikpO1xudmFyIF93ZWJzb2NrZXQgPSByZXF1aXJlKFwiLi93ZWJzb2NrZXRcIik7XG52YXIgX2Zvcm1hdFdlYnBhY2tNZXNzYWdlcyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vZm9ybWF0LXdlYnBhY2stbWVzc2FnZXNcIikpO1xudmFyIF9yb3V0ZXIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJuZXh0L3JvdXRlclwiKSk7XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG4vLyBUaGlzIGFsdGVybmF0aXZlIFdlYnBhY2tEZXZTZXJ2ZXIgY29tYmluZXMgdGhlIGZ1bmN0aW9uYWxpdHkgb2Y6XG4vLyBodHRwczovL2dpdGh1Yi5jb20vd2VicGFjay93ZWJwYWNrLWRldi1zZXJ2ZXIvYmxvYi93ZWJwYWNrLTEvY2xpZW50L2luZGV4LmpzXG4vLyBodHRwczovL2dpdGh1Yi5jb20vd2VicGFjay93ZWJwYWNrL2Jsb2Ivd2VicGFjay0xL2hvdC9kZXYtc2VydmVyLmpzXG4vLyBJdCBvbmx5IHN1cHBvcnRzIHRoZWlyIHNpbXBsZXN0IGNvbmZpZ3VyYXRpb24gKGhvdCB1cGRhdGVzIG9uIHNhbWUgc2VydmVyKS5cbi8vIEl0IG1ha2VzIHNvbWUgb3BpbmlvbmF0ZWQgY2hvaWNlcyBvbiB0b3AsIGxpa2UgYWRkaW5nIGEgc3ludGF4IGVycm9yIG92ZXJsYXlcbi8vIHRoYXQgbG9va3Mgc2ltaWxhciB0byBvdXIgY29uc29sZSBvdXRwdXQuIFRoZSBlcnJvciBvdmVybGF5IGlzIGluc3BpcmVkIGJ5OlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2dsZW5qYW1pbi93ZWJwYWNrLWhvdC1taWRkbGV3YXJlXG5sZXQgaGFkUnVudGltZUVycm9yID0gZmFsc2U7XG5sZXQgY3VzdG9tSG1yRXZlbnRIYW5kbGVyO1xuZnVuY3Rpb24gY29ubmVjdCgpIHtcbiAgICAoMCwgX2NsaWVudCkucmVnaXN0ZXIoKTtcbiAgICAoMCwgX3dlYnNvY2tldCkuYWRkTWVzc2FnZUxpc3RlbmVyKChldmVudCk9PntcbiAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZignYWN0aW9uJykgPT09IC0xKSByZXR1cm47XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBwcm9jZXNzTWVzc2FnZShldmVudCk7XG4gICAgICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ0ludmFsaWQgSE1SIG1lc3NhZ2U6ICcgKyBldmVudC5kYXRhICsgJ1xcbicgKyBleCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgICBzdWJzY3JpYmVUb0htckV2ZW50IChoYW5kbGVyKSB7XG4gICAgICAgICAgICBjdXN0b21IbXJFdmVudEhhbmRsZXIgPSBoYW5kbGVyO1xuICAgICAgICB9LFxuICAgICAgICBvblVucmVjb3ZlcmFibGVFcnJvciAoKSB7XG4gICAgICAgICAgICBoYWRSdW50aW1lRXJyb3IgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfTtcbn1cbi8vIFJlbWVtYmVyIHNvbWUgc3RhdGUgcmVsYXRlZCB0byBob3QgbW9kdWxlIHJlcGxhY2VtZW50LlxudmFyIGlzRmlyc3RDb21waWxhdGlvbiA9IHRydWU7XG52YXIgbW9zdFJlY2VudENvbXBpbGF0aW9uSGFzaCA9IG51bGw7XG52YXIgaGFzQ29tcGlsZUVycm9ycyA9IGZhbHNlO1xuZnVuY3Rpb24gY2xlYXJPdXRkYXRlZEVycm9ycygpIHtcbiAgICAvLyBDbGVhbiB1cCBvdXRkYXRlZCBjb21waWxlIGVycm9ycywgaWYgYW55LlxuICAgIGlmICh0eXBlb2YgY29uc29sZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIGNvbnNvbGUuY2xlYXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgaWYgKGhhc0NvbXBpbGVFcnJvcnMpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuY2xlYXIoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIFN1Y2Nlc3NmdWwgY29tcGlsYXRpb24uXG5mdW5jdGlvbiBoYW5kbGVTdWNjZXNzKCkge1xuICAgIGNsZWFyT3V0ZGF0ZWRFcnJvcnMoKTtcbiAgICBjb25zdCBpc0hvdFVwZGF0ZSA9ICFpc0ZpcnN0Q29tcGlsYXRpb24gfHwgX3JvdXRlci5kZWZhdWx0LnBhdGhuYW1lICE9PSAnL19lcnJvcicgJiYgaXNVcGRhdGVBdmFpbGFibGUoKTtcbiAgICBpc0ZpcnN0Q29tcGlsYXRpb24gPSBmYWxzZTtcbiAgICBoYXNDb21waWxlRXJyb3JzID0gZmFsc2U7XG4gICAgLy8gQXR0ZW1wdCB0byBhcHBseSBob3QgdXBkYXRlcyBvciByZWxvYWQuXG4gICAgaWYgKGlzSG90VXBkYXRlKSB7XG4gICAgICAgIHRyeUFwcGx5VXBkYXRlcyhmdW5jdGlvbiBvblN1Y2Nlc3NmdWxIb3RVcGRhdGUoaGFzVXBkYXRlcykge1xuICAgICAgICAgICAgLy8gT25seSBkaXNtaXNzIGl0IHdoZW4gd2UncmUgc3VyZSBpdCdzIGEgaG90IHVwZGF0ZS5cbiAgICAgICAgICAgIC8vIE90aGVyd2lzZSBpdCB3b3VsZCBmbGlja2VyIHJpZ2h0IGJlZm9yZSB0aGUgcmVsb2FkLlxuICAgICAgICAgICAgb25GYXN0UmVmcmVzaChoYXNVcGRhdGVzKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuLy8gQ29tcGlsYXRpb24gd2l0aCB3YXJuaW5ncyAoZS5nLiBFU0xpbnQpLlxuZnVuY3Rpb24gaGFuZGxlV2FybmluZ3Mod2FybmluZ3MpIHtcbiAgICBjbGVhck91dGRhdGVkRXJyb3JzKCk7XG4gICAgY29uc3QgaXNIb3RVcGRhdGUgPSAhaXNGaXJzdENvbXBpbGF0aW9uO1xuICAgIGlzRmlyc3RDb21waWxhdGlvbiA9IGZhbHNlO1xuICAgIGhhc0NvbXBpbGVFcnJvcnMgPSBmYWxzZTtcbiAgICBmdW5jdGlvbiBwcmludFdhcm5pbmdzKCkge1xuICAgICAgICAvLyBQcmludCB3YXJuaW5ncyB0byB0aGUgY29uc29sZS5cbiAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gKDAsIF9mb3JtYXRXZWJwYWNrTWVzc2FnZXMpLmRlZmF1bHQoe1xuICAgICAgICAgICAgd2FybmluZ3M6IHdhcm5pbmdzLFxuICAgICAgICAgICAgZXJyb3JzOiBbXVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgY29uc29sZS53YXJuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgZm9ybWF0dGVkLndhcm5pbmdzLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgICAgICAgICBpZiAoaSA9PT0gNSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ1RoZXJlIHdlcmUgbW9yZSB3YXJuaW5ncyBpbiBvdGhlciBmaWxlcy5cXG4nICsgJ1lvdSBjYW4gZmluZCBhIGNvbXBsZXRlIGxvZyBpbiB0aGUgdGVybWluYWwuJyk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oKDAsIF9zdHJpcEFuc2kpLmRlZmF1bHQoZm9ybWF0dGVkLndhcm5pbmdzW2ldKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHJpbnRXYXJuaW5ncygpO1xuICAgIC8vIEF0dGVtcHQgdG8gYXBwbHkgaG90IHVwZGF0ZXMgb3IgcmVsb2FkLlxuICAgIGlmIChpc0hvdFVwZGF0ZSkge1xuICAgICAgICB0cnlBcHBseVVwZGF0ZXMoZnVuY3Rpb24gb25TdWNjZXNzZnVsSG90VXBkYXRlKGhhc1VwZGF0ZXMpIHtcbiAgICAgICAgICAgIC8vIE9ubHkgZGlzbWlzcyBpdCB3aGVuIHdlJ3JlIHN1cmUgaXQncyBhIGhvdCB1cGRhdGUuXG4gICAgICAgICAgICAvLyBPdGhlcndpc2UgaXQgd291bGQgZmxpY2tlciByaWdodCBiZWZvcmUgdGhlIHJlbG9hZC5cbiAgICAgICAgICAgIG9uRmFzdFJlZnJlc2goaGFzVXBkYXRlcyk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbi8vIENvbXBpbGF0aW9uIHdpdGggZXJyb3JzIChlLmcuIHN5bnRheCBlcnJvciBvciBtaXNzaW5nIG1vZHVsZXMpLlxuZnVuY3Rpb24gaGFuZGxlRXJyb3JzKGVycm9ycykge1xuICAgIGNsZWFyT3V0ZGF0ZWRFcnJvcnMoKTtcbiAgICBpc0ZpcnN0Q29tcGlsYXRpb24gPSBmYWxzZTtcbiAgICBoYXNDb21waWxlRXJyb3JzID0gdHJ1ZTtcbiAgICAvLyBcIk1hc3NhZ2VcIiB3ZWJwYWNrIG1lc3NhZ2VzLlxuICAgIHZhciBmb3JtYXR0ZWQgPSAoMCwgX2Zvcm1hdFdlYnBhY2tNZXNzYWdlcykuZGVmYXVsdCh7XG4gICAgICAgIGVycm9yczogZXJyb3JzLFxuICAgICAgICB3YXJuaW5nczogW11cbiAgICB9KTtcbiAgICAvLyBPbmx5IHNob3cgdGhlIGZpcnN0IGVycm9yLlxuICAgICgwLCBfY2xpZW50KS5vbkJ1aWxkRXJyb3IoZm9ybWF0dGVkLmVycm9yc1swXSk7XG4gICAgLy8gQWxzbyBsb2cgdGhlbSB0byB0aGUgY29uc29sZS5cbiAgICBpZiAodHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBjb25zb2xlLmVycm9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCBmb3JtYXR0ZWQuZXJyb3JzLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoKDAsIF9zdHJpcEFuc2kpLmRlZmF1bHQoZm9ybWF0dGVkLmVycm9yc1tpXSkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIERvIG5vdCBhdHRlbXB0IHRvIHJlbG9hZCBub3cuXG4gICAgLy8gV2Ugd2lsbCByZWxvYWQgb24gbmV4dCBzdWNjZXNzIGluc3RlYWQuXG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9URVNUX01PREUpIHtcbiAgICAgICAgaWYgKHNlbGYuX19ORVhUX0hNUl9DQikge1xuICAgICAgICAgICAgc2VsZi5fX05FWFRfSE1SX0NCKGZvcm1hdHRlZC5lcnJvcnNbMF0pO1xuICAgICAgICAgICAgc2VsZi5fX05FWFRfSE1SX0NCID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbn1cbmxldCBzdGFydExhdGVuY3kgPSB1bmRlZmluZWQ7XG5mdW5jdGlvbiBvbkZhc3RSZWZyZXNoKGhhc1VwZGF0ZXMpIHtcbiAgICAoMCwgX2NsaWVudCkub25CdWlsZE9rKCk7XG4gICAgaWYgKGhhc1VwZGF0ZXMpIHtcbiAgICAgICAgKDAsIF9jbGllbnQpLm9uUmVmcmVzaCgpO1xuICAgIH1cbiAgICBpZiAoc3RhcnRMYXRlbmN5KSB7XG4gICAgICAgIGNvbnN0IGxhdGVuY3kgPSBEYXRlLm5vdygpIC0gc3RhcnRMYXRlbmN5O1xuICAgICAgICBjb25zb2xlLmxvZyhgW0Zhc3QgUmVmcmVzaF0gZG9uZSBpbiAke2xhdGVuY3l9bXNgKTtcbiAgICAgICAgaWYgKHNlbGYuX19ORVhUX0hNUl9MQVRFTkNZX0NCKSB7XG4gICAgICAgICAgICBzZWxmLl9fTkVYVF9ITVJfTEFURU5DWV9DQihsYXRlbmN5KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIFRoZXJlIGlzIGEgbmV3ZXIgdmVyc2lvbiBvZiB0aGUgY29kZSBhdmFpbGFibGUuXG5mdW5jdGlvbiBoYW5kbGVBdmFpbGFibGVIYXNoKGhhc2gpIHtcbiAgICAvLyBVcGRhdGUgbGFzdCBrbm93biBjb21waWxhdGlvbiBoYXNoLlxuICAgIG1vc3RSZWNlbnRDb21waWxhdGlvbkhhc2ggPSBoYXNoO1xufVxuLy8gSGFuZGxlIG1lc3NhZ2VzIGZyb20gdGhlIHNlcnZlci5cbmZ1bmN0aW9uIHByb2Nlc3NNZXNzYWdlKGUpIHtcbiAgICBjb25zdCBvYmogPSBKU09OLnBhcnNlKGUuZGF0YSk7XG4gICAgc3dpdGNoKG9iai5hY3Rpb24pe1xuICAgICAgICBjYXNlICdidWlsZGluZyc6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc3RhcnRMYXRlbmN5ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnW0Zhc3QgUmVmcmVzaF0gcmVidWlsZGluZycpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICBjYXNlICdidWlsdCc6XG4gICAgICAgIGNhc2UgJ3N5bmMnOlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGlmIChvYmouaGFzaCkge1xuICAgICAgICAgICAgICAgICAgICBoYW5kbGVBdmFpbGFibGVIYXNoKG9iai5oYXNoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgeyBlcnJvcnMgLCB3YXJuaW5ncyAgfSA9IG9iajtcbiAgICAgICAgICAgICAgICBjb25zdCBoYXNFcnJvcnMgPSBCb29sZWFuKGVycm9ycyAmJiBlcnJvcnMubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICBpZiAoaGFzRXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBoYW5kbGVFcnJvcnMoZXJyb3JzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgaGFzV2FybmluZ3MgPSBCb29sZWFuKHdhcm5pbmdzICYmIHdhcm5pbmdzLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgaWYgKGhhc1dhcm5pbmdzKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBoYW5kbGVXYXJuaW5ncyh3YXJuaW5ncyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBoYW5kbGVTdWNjZXNzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWYgKGN1c3RvbUhtckV2ZW50SGFuZGxlcikge1xuICAgICAgICAgICAgICAgICAgICBjdXN0b21IbXJFdmVudEhhbmRsZXIob2JqKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgIH1cbn1cbi8vIElzIHRoZXJlIGEgbmV3ZXIgdmVyc2lvbiBvZiB0aGlzIGNvZGUgYXZhaWxhYmxlP1xuZnVuY3Rpb24gaXNVcGRhdGVBdmFpbGFibGUoKSB7XG4gICAgLyogZ2xvYmFscyBfX3dlYnBhY2tfaGFzaF9fICovIC8vIF9fd2VicGFja19oYXNoX18gaXMgdGhlIGhhc2ggb2YgdGhlIGN1cnJlbnQgY29tcGlsYXRpb24uXG4gICAgLy8gSXQncyBhIGdsb2JhbCB2YXJpYWJsZSBpbmplY3RlZCBieSBXZWJwYWNrLlxuICAgIHJldHVybiBtb3N0UmVjZW50Q29tcGlsYXRpb25IYXNoICE9PSBfX3dlYnBhY2tfaGFzaF9fO1xufVxuLy8gV2VicGFjayBkaXNhbGxvd3MgdXBkYXRlcyBpbiBvdGhlciBzdGF0ZXMuXG5mdW5jdGlvbiBjYW5BcHBseVVwZGF0ZXMoKSB7XG4gICAgcmV0dXJuIG1vZHVsZS5ob3Quc3RhdHVzKCkgPT09ICdpZGxlJztcbn1cbmZ1bmN0aW9uIGFmdGVyQXBwbHlVcGRhdGVzKGZuKSB7XG4gICAgaWYgKGNhbkFwcGx5VXBkYXRlcygpKSB7XG4gICAgICAgIGZuKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgZnVuY3Rpb24gaGFuZGxlcihzdGF0dXMpIHtcbiAgICAgICAgICAgIGlmIChzdGF0dXMgPT09ICdpZGxlJykge1xuICAgICAgICAgICAgICAgIG1vZHVsZS5ob3QucmVtb3ZlU3RhdHVzSGFuZGxlcihoYW5kbGVyKTtcbiAgICAgICAgICAgICAgICBmbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIG1vZHVsZS5ob3QuYWRkU3RhdHVzSGFuZGxlcihoYW5kbGVyKTtcbiAgICB9XG59XG4vLyBBdHRlbXB0IHRvIHVwZGF0ZSBjb2RlIG9uIHRoZSBmbHksIGZhbGwgYmFjayB0byBhIGhhcmQgcmVsb2FkLlxuZnVuY3Rpb24gdHJ5QXBwbHlVcGRhdGVzKG9uSG90VXBkYXRlU3VjY2Vzcykge1xuICAgIGlmICghbW9kdWxlLmhvdCkge1xuICAgICAgICAvLyBIb3RNb2R1bGVSZXBsYWNlbWVudFBsdWdpbiBpcyBub3QgaW4gV2VicGFjayBjb25maWd1cmF0aW9uLlxuICAgICAgICBjb25zb2xlLmVycm9yKCdIb3RNb2R1bGVSZXBsYWNlbWVudFBsdWdpbiBpcyBub3QgaW4gV2VicGFjayBjb25maWd1cmF0aW9uLicpO1xuICAgICAgICAvLyB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCFpc1VwZGF0ZUF2YWlsYWJsZSgpIHx8ICFjYW5BcHBseVVwZGF0ZXMoKSkge1xuICAgICAgICAoMCwgX2NsaWVudCkub25CdWlsZE9rKCk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZnVuY3Rpb24gaGFuZGxlQXBwbHlVcGRhdGVzKGVyciwgdXBkYXRlZE1vZHVsZXMpIHtcbiAgICAgICAgaWYgKGVyciB8fCBoYWRSdW50aW1lRXJyb3IgfHwgIXVwZGF0ZWRNb2R1bGVzKSB7XG4gICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdbRmFzdCBSZWZyZXNoXSBwZXJmb3JtaW5nIGZ1bGwgcmVsb2FkXFxuXFxuJyArIFwiRmFzdCBSZWZyZXNoIHdpbGwgcGVyZm9ybSBhIGZ1bGwgcmVsb2FkIHdoZW4geW91IGVkaXQgYSBmaWxlIHRoYXQncyBpbXBvcnRlZCBieSBtb2R1bGVzIG91dHNpZGUgb2YgdGhlIFJlYWN0IHJlbmRlcmluZyB0cmVlLlxcblwiICsgJ1lvdSBtaWdodCBoYXZlIGEgZmlsZSB3aGljaCBleHBvcnRzIGEgUmVhY3QgY29tcG9uZW50IGJ1dCBhbHNvIGV4cG9ydHMgYSB2YWx1ZSB0aGF0IGlzIGltcG9ydGVkIGJ5IGEgbm9uLVJlYWN0IGNvbXBvbmVudCBmaWxlLlxcbicgKyAnQ29uc2lkZXIgbWlncmF0aW5nIHRoZSBub24tUmVhY3QgY29tcG9uZW50IGV4cG9ydCB0byBhIHNlcGFyYXRlIGZpbGUgYW5kIGltcG9ydGluZyBpdCBpbnRvIGJvdGggZmlsZXMuXFxuXFxuJyArICdJdCBpcyBhbHNvIHBvc3NpYmxlIHRoZSBwYXJlbnQgY29tcG9uZW50IG9mIHRoZSBjb21wb25lbnQgeW91IGVkaXRlZCBpcyBhIGNsYXNzIGNvbXBvbmVudCwgd2hpY2ggZGlzYWJsZXMgRmFzdCBSZWZyZXNoLlxcbicgKyAnRmFzdCBSZWZyZXNoIHJlcXVpcmVzIGF0IGxlYXN0IG9uZSBwYXJlbnQgZnVuY3Rpb24gY29tcG9uZW50IGluIHlvdXIgUmVhY3QgdHJlZS4nKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaGFkUnVudGltZUVycm9yKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdbRmFzdCBSZWZyZXNoXSBwZXJmb3JtaW5nIGZ1bGwgcmVsb2FkIGJlY2F1c2UgeW91ciBhcHBsaWNhdGlvbiBoYWQgYW4gdW5yZWNvdmVyYWJsZSBlcnJvcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGhhc1VwZGF0ZXMgPSBCb29sZWFuKHVwZGF0ZWRNb2R1bGVzLmxlbmd0aCk7XG4gICAgICAgIGlmICh0eXBlb2Ygb25Ib3RVcGRhdGVTdWNjZXNzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAvLyBNYXliZSB3ZSB3YW50IHRvIGRvIHNvbWV0aGluZy5cbiAgICAgICAgICAgIG9uSG90VXBkYXRlU3VjY2VzcyhoYXNVcGRhdGVzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNVcGRhdGVBdmFpbGFibGUoKSkge1xuICAgICAgICAgICAgLy8gV2hpbGUgd2Ugd2VyZSB1cGRhdGluZywgdGhlcmUgd2FzIGEgbmV3IHVwZGF0ZSEgRG8gaXQgYWdhaW4uXG4gICAgICAgICAgICB0cnlBcHBseVVwZGF0ZXMoaGFzVXBkYXRlcyA/IF9jbGllbnQub25CdWlsZE9rIDogb25Ib3RVcGRhdGVTdWNjZXNzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICgwLCBfY2xpZW50KS5vbkJ1aWxkT2soKTtcbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfVEVTVF9NT0RFKSB7XG4gICAgICAgICAgICAgICAgYWZ0ZXJBcHBseVVwZGF0ZXMoKCk9PntcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGYuX19ORVhUX0hNUl9DQikge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fX05FWFRfSE1SX0NCKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9fTkVYVF9ITVJfQ0IgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gaHR0cHM6Ly93ZWJwYWNrLmpzLm9yZy9hcGkvaG90LW1vZHVsZS1yZXBsYWNlbWVudC8jY2hlY2tcbiAgICBtb2R1bGUuaG90LmNoZWNrKC8qIGF1dG9BcHBseSAqLyB0cnVlKS50aGVuKCh1cGRhdGVkTW9kdWxlcyk9PntcbiAgICAgICAgaGFuZGxlQXBwbHlVcGRhdGVzKG51bGwsIHVwZGF0ZWRNb2R1bGVzKTtcbiAgICB9LCAoZXJyKT0+e1xuICAgICAgICBoYW5kbGVBcHBseVVwZGF0ZXMoZXJyLCBudWxsKTtcbiAgICB9KTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aG90LWRldi1jbGllbnQuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiY29ubmVjdCIsIl9jbGllbnQiLCJyZXF1aXJlIiwiX3N0cmlwQW5zaSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfd2Vic29ja2V0IiwiX2Zvcm1hdFdlYnBhY2tNZXNzYWdlcyIsIl9yb3V0ZXIiLCJvYmoiLCJfX2VzTW9kdWxlIiwiaGFkUnVudGltZUVycm9yIiwiY3VzdG9tSG1yRXZlbnRIYW5kbGVyIiwicmVnaXN0ZXIiLCJhZGRNZXNzYWdlTGlzdGVuZXIiLCJldmVudCIsImRhdGEiLCJpbmRleE9mIiwicHJvY2Vzc01lc3NhZ2UiLCJleCIsImNvbnNvbGUiLCJ3YXJuIiwic3Vic2NyaWJlVG9IbXJFdmVudCIsImhhbmRsZXIiLCJvblVucmVjb3ZlcmFibGVFcnJvciIsImlzRmlyc3RDb21waWxhdGlvbiIsIm1vc3RSZWNlbnRDb21waWxhdGlvbkhhc2giLCJoYXNDb21waWxlRXJyb3JzIiwiY2xlYXJPdXRkYXRlZEVycm9ycyIsImNsZWFyIiwiaGFuZGxlU3VjY2VzcyIsImlzSG90VXBkYXRlIiwicGF0aG5hbWUiLCJpc1VwZGF0ZUF2YWlsYWJsZSIsInRyeUFwcGx5VXBkYXRlcyIsIm9uU3VjY2Vzc2Z1bEhvdFVwZGF0ZSIsImhhc1VwZGF0ZXMiLCJvbkZhc3RSZWZyZXNoIiwiaGFuZGxlV2FybmluZ3MiLCJ3YXJuaW5ncyIsInByaW50V2FybmluZ3MiLCJmb3JtYXR0ZWQiLCJlcnJvcnMiLCJpIiwibGVuZ3RoIiwiaGFuZGxlRXJyb3JzIiwib25CdWlsZEVycm9yIiwiZXJyb3IiLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX1RFU1RfTU9ERSIsInNlbGYiLCJfX05FWFRfSE1SX0NCIiwic3RhcnRMYXRlbmN5IiwidW5kZWZpbmVkIiwib25CdWlsZE9rIiwib25SZWZyZXNoIiwibGF0ZW5jeSIsIkRhdGUiLCJub3ciLCJsb2ciLCJfX05FWFRfSE1SX0xBVEVOQ1lfQ0IiLCJoYW5kbGVBdmFpbGFibGVIYXNoIiwiaGFzaCIsImUiLCJKU09OIiwicGFyc2UiLCJhY3Rpb24iLCJoYXNFcnJvcnMiLCJCb29sZWFuIiwiaGFzV2FybmluZ3MiLCJfX3dlYnBhY2tfaGFzaF9fIiwiY2FuQXBwbHlVcGRhdGVzIiwibW9kdWxlIiwiaG90Iiwic3RhdHVzIiwiYWZ0ZXJBcHBseVVwZGF0ZXMiLCJmbiIsInJlbW92ZVN0YXR1c0hhbmRsZXIiLCJhZGRTdGF0dXNIYW5kbGVyIiwib25Ib3RVcGRhdGVTdWNjZXNzIiwiaGFuZGxlQXBwbHlVcGRhdGVzIiwiZXJyIiwidXBkYXRlZE1vZHVsZXMiLCJ3aW5kb3ciLCJsb2NhdGlvbiIsInJlbG9hZCIsImNoZWNrIiwidGhlbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/error-overlay/hot-dev-client.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/dev/error-overlay/websocket.js": +/*!**********************************************************************!*\ + !*** ./node_modules/next/dist/client/dev/error-overlay/websocket.js ***! + \**********************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.addMessageListener = addMessageListener;\nexports.sendMessage = sendMessage;\nexports.connectHMR = connectHMR;\nvar source;\nvar eventCallbacks = [];\nvar lastActivity = Date.now();\n\nfunction getSocketProtocol(assetPrefix) {\n var protocol = location.protocol;\n\n try {\n // assetPrefix is a url\n protocol = new URL(assetPrefix).protocol;\n } catch (_) {}\n\n return protocol === 'http:' ? 'ws' : 'wss';\n}\n\nfunction addMessageListener(cb) {\n eventCallbacks.push(cb);\n}\n\nfunction sendMessage(data) {\n if (!source || source.readyState !== source.OPEN) return;\n return source.send(data);\n}\n\nfunction connectHMR(options) {\n if (!options.timeout) {\n options.timeout = 5 * 1000;\n }\n\n init();\n var timer = setInterval(function () {\n if (Date.now() - lastActivity > options.timeout) {\n handleDisconnect();\n }\n }, options.timeout / 2);\n\n function init() {\n if (source) source.close();\n var _location = location,\n hostname = _location.hostname,\n port = _location.port;\n var protocol = getSocketProtocol(options.assetPrefix || '');\n var assetPrefix = options.assetPrefix.replace(/^\\/+/, '');\n var url = \"\".concat(protocol, \"://\").concat(hostname, \":\").concat(port).concat(assetPrefix ? \"/\".concat(assetPrefix) : '');\n\n if (assetPrefix.startsWith('http')) {\n url = \"\".concat(protocol, \"://\").concat(assetPrefix.split('://')[1]);\n }\n\n source = new window.WebSocket(\"\".concat(url).concat(options.path));\n source.onopen = handleOnline;\n source.onerror = handleDisconnect;\n source.onmessage = handleMessage;\n }\n\n function handleOnline() {\n if (options.log) console.log('[HMR] connected');\n lastActivity = Date.now();\n }\n\n function handleMessage(event) {\n lastActivity = Date.now();\n eventCallbacks.forEach(function (cb) {\n cb(event);\n });\n }\n\n function handleDisconnect() {\n clearInterval(timer);\n source.close();\n setTimeout(init, options.timeout);\n }\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvZXJyb3Itb3ZlcmxheS93ZWJzb2NrZXQuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCwwQkFBQSxHQUE2QkUsa0JBQTdCO0FBQ0FGLG1CQUFBLEdBQXNCRyxXQUF0QjtBQUNBSCxrQkFBQSxHQUFxQkksVUFBckI7QUFDQSxJQUFJQyxNQUFKO0FBQ0EsSUFBTUMsY0FBYyxHQUFHLEVBQXZCO0FBQ0EsSUFBSUMsWUFBWSxHQUFHQyxJQUFJLENBQUNDLEdBQUwsRUFBbkI7O0FBQ0EsU0FBU0MsaUJBQVQsQ0FBMkJDLFdBQTNCLEVBQXdDO0FBQ3BDLE1BQUlDLFFBQVEsR0FBR0MsUUFBUSxDQUFDRCxRQUF4Qjs7QUFDQSxNQUFJO0FBQ0E7QUFDQUEsSUFBQUEsUUFBUSxHQUFHLElBQUlFLEdBQUosQ0FBUUgsV0FBUixFQUFxQkMsUUFBaEM7QUFDSCxHQUhELENBR0UsT0FBT0csQ0FBUCxFQUFVLENBQ1g7O0FBQ0QsU0FBT0gsUUFBUSxLQUFLLE9BQWIsR0FBdUIsSUFBdkIsR0FBOEIsS0FBckM7QUFDSDs7QUFDRCxTQUFTVixrQkFBVCxDQUE0QmMsRUFBNUIsRUFBZ0M7QUFDNUJWLEVBQUFBLGNBQWMsQ0FBQ1csSUFBZixDQUFvQkQsRUFBcEI7QUFDSDs7QUFDRCxTQUFTYixXQUFULENBQXFCZSxJQUFyQixFQUEyQjtBQUN2QixNQUFJLENBQUNiLE1BQUQsSUFBV0EsTUFBTSxDQUFDYyxVQUFQLEtBQXNCZCxNQUFNLENBQUNlLElBQTVDLEVBQWtEO0FBQ2xELFNBQU9mLE1BQU0sQ0FBQ2dCLElBQVAsQ0FBWUgsSUFBWixDQUFQO0FBQ0g7O0FBQ0QsU0FBU2QsVUFBVCxDQUFvQmtCLE9BQXBCLEVBQTZCO0FBQ3pCLE1BQUksQ0FBQ0EsT0FBTyxDQUFDQyxPQUFiLEVBQXNCO0FBQ2xCRCxJQUFBQSxPQUFPLENBQUNDLE9BQVIsR0FBa0IsSUFBSSxJQUF0QjtBQUNIOztBQUNEQyxFQUFBQSxJQUFJO0FBQ0osTUFBSUMsS0FBSyxHQUFHQyxXQUFXLENBQUMsWUFBVztBQUMvQixRQUFJbEIsSUFBSSxDQUFDQyxHQUFMLEtBQWFGLFlBQWIsR0FBNEJlLE9BQU8sQ0FBQ0MsT0FBeEMsRUFBaUQ7QUFDN0NJLE1BQUFBLGdCQUFnQjtBQUNuQjtBQUNKLEdBSnNCLEVBSXBCTCxPQUFPLENBQUNDLE9BQVIsR0FBa0IsQ0FKRSxDQUF2Qjs7QUFLQSxXQUFTQyxJQUFULEdBQWdCO0FBQ1osUUFBSW5CLE1BQUosRUFBWUEsTUFBTSxDQUFDdUIsS0FBUDtBQUNaLG9CQUE2QmYsUUFBN0I7QUFBQSxRQUFRZ0IsUUFBUixhQUFRQSxRQUFSO0FBQUEsUUFBbUJDLElBQW5CLGFBQW1CQSxJQUFuQjtBQUNBLFFBQU1sQixRQUFRLEdBQUdGLGlCQUFpQixDQUFDWSxPQUFPLENBQUNYLFdBQVIsSUFBdUIsRUFBeEIsQ0FBbEM7QUFDQSxRQUFNQSxXQUFXLEdBQUdXLE9BQU8sQ0FBQ1gsV0FBUixDQUFvQm9CLE9BQXBCLENBQTRCLE1BQTVCLEVBQW9DLEVBQXBDLENBQXBCO0FBQ0EsUUFBSUMsR0FBRyxhQUFNcEIsUUFBTixnQkFBb0JpQixRQUFwQixjQUFnQ0MsSUFBaEMsU0FBdUNuQixXQUFXLGNBQU9BLFdBQVAsSUFBdUIsRUFBekUsQ0FBUDs7QUFDQSxRQUFJQSxXQUFXLENBQUNzQixVQUFaLENBQXVCLE1BQXZCLENBQUosRUFBb0M7QUFDaENELE1BQUFBLEdBQUcsYUFBTXBCLFFBQU4sZ0JBQW9CRCxXQUFXLENBQUN1QixLQUFaLENBQWtCLEtBQWxCLEVBQXlCLENBQXpCLENBQXBCLENBQUg7QUFDSDs7QUFDRDdCLElBQUFBLE1BQU0sR0FBRyxJQUFJOEIsTUFBTSxDQUFDQyxTQUFYLFdBQXdCSixHQUF4QixTQUE4QlYsT0FBTyxDQUFDZSxJQUF0QyxFQUFUO0FBQ0FoQyxJQUFBQSxNQUFNLENBQUNpQyxNQUFQLEdBQWdCQyxZQUFoQjtBQUNBbEMsSUFBQUEsTUFBTSxDQUFDbUMsT0FBUCxHQUFpQmIsZ0JBQWpCO0FBQ0F0QixJQUFBQSxNQUFNLENBQUNvQyxTQUFQLEdBQW1CQyxhQUFuQjtBQUNIOztBQUNELFdBQVNILFlBQVQsR0FBd0I7QUFDcEIsUUFBSWpCLE9BQU8sQ0FBQ3FCLEdBQVosRUFBaUJDLE9BQU8sQ0FBQ0QsR0FBUixDQUFZLGlCQUFaO0FBQ2pCcEMsSUFBQUEsWUFBWSxHQUFHQyxJQUFJLENBQUNDLEdBQUwsRUFBZjtBQUNIOztBQUNELFdBQVNpQyxhQUFULENBQXVCRyxLQUF2QixFQUE4QjtBQUMxQnRDLElBQUFBLFlBQVksR0FBR0MsSUFBSSxDQUFDQyxHQUFMLEVBQWY7QUFDQUgsSUFBQUEsY0FBYyxDQUFDd0MsT0FBZixDQUF1QixVQUFDOUIsRUFBRCxFQUFNO0FBQ3pCQSxNQUFBQSxFQUFFLENBQUM2QixLQUFELENBQUY7QUFDSCxLQUZEO0FBR0g7O0FBQ0QsV0FBU2xCLGdCQUFULEdBQTRCO0FBQ3hCb0IsSUFBQUEsYUFBYSxDQUFDdEIsS0FBRCxDQUFiO0FBQ0FwQixJQUFBQSxNQUFNLENBQUN1QixLQUFQO0FBQ0FvQixJQUFBQSxVQUFVLENBQUN4QixJQUFELEVBQU9GLE9BQU8sQ0FBQ0MsT0FBZixDQUFWO0FBQ0g7QUFDSiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvZXJyb3Itb3ZlcmxheS93ZWJzb2NrZXQuanM/YTliZSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuYWRkTWVzc2FnZUxpc3RlbmVyID0gYWRkTWVzc2FnZUxpc3RlbmVyO1xuZXhwb3J0cy5zZW5kTWVzc2FnZSA9IHNlbmRNZXNzYWdlO1xuZXhwb3J0cy5jb25uZWN0SE1SID0gY29ubmVjdEhNUjtcbmxldCBzb3VyY2U7XG5jb25zdCBldmVudENhbGxiYWNrcyA9IFtdO1xubGV0IGxhc3RBY3Rpdml0eSA9IERhdGUubm93KCk7XG5mdW5jdGlvbiBnZXRTb2NrZXRQcm90b2NvbChhc3NldFByZWZpeCkge1xuICAgIGxldCBwcm90b2NvbCA9IGxvY2F0aW9uLnByb3RvY29sO1xuICAgIHRyeSB7XG4gICAgICAgIC8vIGFzc2V0UHJlZml4IGlzIGEgdXJsXG4gICAgICAgIHByb3RvY29sID0gbmV3IFVSTChhc3NldFByZWZpeCkucHJvdG9jb2w7XG4gICAgfSBjYXRjaCAoXykge1xuICAgIH1cbiAgICByZXR1cm4gcHJvdG9jb2wgPT09ICdodHRwOicgPyAnd3MnIDogJ3dzcyc7XG59XG5mdW5jdGlvbiBhZGRNZXNzYWdlTGlzdGVuZXIoY2IpIHtcbiAgICBldmVudENhbGxiYWNrcy5wdXNoKGNiKTtcbn1cbmZ1bmN0aW9uIHNlbmRNZXNzYWdlKGRhdGEpIHtcbiAgICBpZiAoIXNvdXJjZSB8fCBzb3VyY2UucmVhZHlTdGF0ZSAhPT0gc291cmNlLk9QRU4pIHJldHVybjtcbiAgICByZXR1cm4gc291cmNlLnNlbmQoZGF0YSk7XG59XG5mdW5jdGlvbiBjb25uZWN0SE1SKG9wdGlvbnMpIHtcbiAgICBpZiAoIW9wdGlvbnMudGltZW91dCkge1xuICAgICAgICBvcHRpb25zLnRpbWVvdXQgPSA1ICogMTAwMDtcbiAgICB9XG4gICAgaW5pdCgpO1xuICAgIGxldCB0aW1lciA9IHNldEludGVydmFsKGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAoRGF0ZS5ub3coKSAtIGxhc3RBY3Rpdml0eSA+IG9wdGlvbnMudGltZW91dCkge1xuICAgICAgICAgICAgaGFuZGxlRGlzY29ubmVjdCgpO1xuICAgICAgICB9XG4gICAgfSwgb3B0aW9ucy50aW1lb3V0IC8gMik7XG4gICAgZnVuY3Rpb24gaW5pdCgpIHtcbiAgICAgICAgaWYgKHNvdXJjZSkgc291cmNlLmNsb3NlKCk7XG4gICAgICAgIGNvbnN0IHsgaG9zdG5hbWUgLCBwb3J0ICB9ID0gbG9jYXRpb247XG4gICAgICAgIGNvbnN0IHByb3RvY29sID0gZ2V0U29ja2V0UHJvdG9jb2wob3B0aW9ucy5hc3NldFByZWZpeCB8fCAnJyk7XG4gICAgICAgIGNvbnN0IGFzc2V0UHJlZml4ID0gb3B0aW9ucy5hc3NldFByZWZpeC5yZXBsYWNlKC9eXFwvKy8sICcnKTtcbiAgICAgICAgbGV0IHVybCA9IGAke3Byb3RvY29sfTovLyR7aG9zdG5hbWV9OiR7cG9ydH0ke2Fzc2V0UHJlZml4ID8gYC8ke2Fzc2V0UHJlZml4fWAgOiAnJ31gO1xuICAgICAgICBpZiAoYXNzZXRQcmVmaXguc3RhcnRzV2l0aCgnaHR0cCcpKSB7XG4gICAgICAgICAgICB1cmwgPSBgJHtwcm90b2NvbH06Ly8ke2Fzc2V0UHJlZml4LnNwbGl0KCc6Ly8nKVsxXX1gO1xuICAgICAgICB9XG4gICAgICAgIHNvdXJjZSA9IG5ldyB3aW5kb3cuV2ViU29ja2V0KGAke3VybH0ke29wdGlvbnMucGF0aH1gKTtcbiAgICAgICAgc291cmNlLm9ub3BlbiA9IGhhbmRsZU9ubGluZTtcbiAgICAgICAgc291cmNlLm9uZXJyb3IgPSBoYW5kbGVEaXNjb25uZWN0O1xuICAgICAgICBzb3VyY2Uub25tZXNzYWdlID0gaGFuZGxlTWVzc2FnZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaGFuZGxlT25saW5lKCkge1xuICAgICAgICBpZiAob3B0aW9ucy5sb2cpIGNvbnNvbGUubG9nKCdbSE1SXSBjb25uZWN0ZWQnKTtcbiAgICAgICAgbGFzdEFjdGl2aXR5ID0gRGF0ZS5ub3coKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaGFuZGxlTWVzc2FnZShldmVudCkge1xuICAgICAgICBsYXN0QWN0aXZpdHkgPSBEYXRlLm5vdygpO1xuICAgICAgICBldmVudENhbGxiYWNrcy5mb3JFYWNoKChjYik9PntcbiAgICAgICAgICAgIGNiKGV2ZW50KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGhhbmRsZURpc2Nvbm5lY3QoKSB7XG4gICAgICAgIGNsZWFySW50ZXJ2YWwodGltZXIpO1xuICAgICAgICBzb3VyY2UuY2xvc2UoKTtcbiAgICAgICAgc2V0VGltZW91dChpbml0LCBvcHRpb25zLnRpbWVvdXQpO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9d2Vic29ja2V0LmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImFkZE1lc3NhZ2VMaXN0ZW5lciIsInNlbmRNZXNzYWdlIiwiY29ubmVjdEhNUiIsInNvdXJjZSIsImV2ZW50Q2FsbGJhY2tzIiwibGFzdEFjdGl2aXR5IiwiRGF0ZSIsIm5vdyIsImdldFNvY2tldFByb3RvY29sIiwiYXNzZXRQcmVmaXgiLCJwcm90b2NvbCIsImxvY2F0aW9uIiwiVVJMIiwiXyIsImNiIiwicHVzaCIsImRhdGEiLCJyZWFkeVN0YXRlIiwiT1BFTiIsInNlbmQiLCJvcHRpb25zIiwidGltZW91dCIsImluaXQiLCJ0aW1lciIsInNldEludGVydmFsIiwiaGFuZGxlRGlzY29ubmVjdCIsImNsb3NlIiwiaG9zdG5hbWUiLCJwb3J0IiwicmVwbGFjZSIsInVybCIsInN0YXJ0c1dpdGgiLCJzcGxpdCIsIndpbmRvdyIsIldlYlNvY2tldCIsInBhdGgiLCJvbm9wZW4iLCJoYW5kbGVPbmxpbmUiLCJvbmVycm9yIiwib25tZXNzYWdlIiwiaGFuZGxlTWVzc2FnZSIsImxvZyIsImNvbnNvbGUiLCJldmVudCIsImZvckVhY2giLCJjbGVhckludGVydmFsIiwic2V0VGltZW91dCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/error-overlay/websocket.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/dev/fouc.js": +/*!***************************************************!*\ + !*** ./node_modules/next/dist/client/dev/fouc.js ***! + \***************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.displayContent = displayContent;\n\nfunction displayContent(callback) {\n (window.requestAnimationFrame || setTimeout)(function () {\n for (var x = document.querySelectorAll('[data-next-hide-fouc]'), i = x.length; i--;) {\n x[i].parentNode.removeChild(x[i]);\n }\n\n if (callback) {\n callback();\n }\n });\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvZm91Yy5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELHNCQUFBLEdBQXlCRSxjQUF6Qjs7QUFDQSxTQUFTQSxjQUFULENBQXdCQyxRQUF4QixFQUFrQztBQUM5QixHQUFDQyxNQUFNLENBQUNDLHFCQUFQLElBQWdDQyxVQUFqQyxFQUE2QyxZQUFXO0FBQ3BELFNBQUksSUFBSUMsQ0FBQyxHQUFHQyxRQUFRLENBQUNDLGdCQUFULENBQTBCLHVCQUExQixDQUFSLEVBQTREQyxDQUFDLEdBQUdILENBQUMsQ0FBQ0ksTUFBdEUsRUFBOEVELENBQUMsRUFBL0UsR0FBbUY7QUFDL0VILE1BQUFBLENBQUMsQ0FBQ0csQ0FBRCxDQUFELENBQUtFLFVBQUwsQ0FBZ0JDLFdBQWhCLENBQTRCTixDQUFDLENBQUNHLENBQUQsQ0FBN0I7QUFDSDs7QUFDRCxRQUFJUCxRQUFKLEVBQWM7QUFDVkEsTUFBQUEsUUFBUTtBQUNYO0FBQ0osR0FQRDtBQVFIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2Rldi9mb3VjLmpzPzAwODciXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRpc3BsYXlDb250ZW50ID0gZGlzcGxheUNvbnRlbnQ7XG5mdW5jdGlvbiBkaXNwbGF5Q29udGVudChjYWxsYmFjaykge1xuICAgICh3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lIHx8IHNldFRpbWVvdXQpKGZ1bmN0aW9uKCkge1xuICAgICAgICBmb3IodmFyIHggPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1uZXh0LWhpZGUtZm91Y10nKSwgaSA9IHgubGVuZ3RoOyBpLS07KXtcbiAgICAgICAgICAgIHhbaV0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh4W2ldKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Zm91Yy5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJkaXNwbGF5Q29udGVudCIsImNhbGxiYWNrIiwid2luZG93IiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwic2V0VGltZW91dCIsIngiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJpIiwibGVuZ3RoIiwicGFyZW50Tm9kZSIsInJlbW92ZUNoaWxkIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/fouc.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/dev/on-demand-entries-client.js": +/*!***********************************************************************!*\ + !*** ./node_modules/next/dist/client/dev/on-demand-entries-client.js ***! + \***********************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _regeneratorRuntime = __webpack_require__(/*! ./node_modules/@babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _router = _interopRequireDefault(__webpack_require__(/*! next/router */ \"./node_modules/next/router.js\"));\n\nvar _websocket = __webpack_require__(/*! ./error-overlay/websocket */ \"./node_modules/next/dist/client/dev/error-overlay/websocket.js\");\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar _default = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n setInterval(function () {\n (0, _websocket).sendMessage(JSON.stringify({\n event: 'ping',\n page: _router[\"default\"].pathname\n }));\n }, 2500);\n (0, _websocket).addMessageListener(function (event) {\n if (event.data.indexOf('{') === -1) return;\n\n try {\n var payload = JSON.parse(event.data); // don't attempt fetching the page if we're already showing\n // the dev overlay as this can cause the error to be triggered\n // repeatedly\n\n if (payload.event === 'pong' && payload.invalid && !self.__NEXT_DATA__.err) {\n // Payload can be invalid even if the page does exist.\n // So, we check if it can be created.\n fetch(location.href, {\n credentials: 'same-origin'\n }).then(function (pageRes) {\n if (pageRes.status === 200) {\n // Page exists now, reload\n location.reload();\n } else {\n // Page doesn't exist\n if (self.__NEXT_DATA__.page === _router[\"default\"].pathname && _router[\"default\"].pathname !== '/_error') {\n // We are still on the page,\n // reload to show 404 error page\n location.reload();\n }\n }\n });\n }\n } catch (err) {\n console.error('on-demand-entries failed to parse response', err);\n }\n });\n\n case 2:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n}));\n\nexports[\"default\"] = _default;\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvb24tZGVtYW5kLWVudHJpZXMtY2xpZW50LmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7OztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxrQkFBQSxHQUFrQixLQUFLLENBQXZCOztBQUNBLElBQUlFLE9BQU8sR0FBR0Msc0JBQXNCLENBQUNDLG1CQUFPLENBQUMsa0RBQUQsQ0FBUixDQUFwQzs7QUFDQSxJQUFJQyxVQUFVLEdBQUdELG1CQUFPLENBQUMsaUdBQUQsQ0FBeEI7O0FBQ0EsU0FBU0Usa0JBQVQsQ0FBNEJDLEdBQTVCLEVBQWlDQyxPQUFqQyxFQUEwQ0MsTUFBMUMsRUFBa0RDLEtBQWxELEVBQXlEQyxNQUF6RCxFQUFpRUMsR0FBakUsRUFBc0VDLEdBQXRFLEVBQTJFO0FBQ3ZFLE1BQUk7QUFDQSxRQUFJQyxJQUFJLEdBQUdQLEdBQUcsQ0FBQ0ssR0FBRCxDQUFILENBQVNDLEdBQVQsQ0FBWDtBQUNBLFFBQUlaLEtBQUssR0FBR2EsSUFBSSxDQUFDYixLQUFqQjtBQUNILEdBSEQsQ0FHRSxPQUFPYyxLQUFQLEVBQWM7QUFDWk4sSUFBQUEsTUFBTSxDQUFDTSxLQUFELENBQU47QUFDQTtBQUNIOztBQUNELE1BQUlELElBQUksQ0FBQ0UsSUFBVCxFQUFlO0FBQ1hSLElBQUFBLE9BQU8sQ0FBQ1AsS0FBRCxDQUFQO0FBQ0gsR0FGRCxNQUVPO0FBQ0hnQixJQUFBQSxPQUFPLENBQUNULE9BQVIsQ0FBZ0JQLEtBQWhCLEVBQXVCaUIsSUFBdkIsQ0FBNEJSLEtBQTVCLEVBQW1DQyxNQUFuQztBQUNIO0FBQ0o7O0FBQ0QsU0FBU1EsaUJBQVQsQ0FBMkJDLEVBQTNCLEVBQStCO0FBQzNCLFNBQU8sWUFBVztBQUNkLFFBQUlDLElBQUksR0FBRyxJQUFYO0FBQUEsUUFBaUJDLElBQUksR0FBR0MsU0FBeEI7QUFDQSxXQUFPLElBQUlOLE9BQUosQ0FB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NkIsUUFBbEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvZGV2L29uLWRlbWFuZC1lbnRyaWVzLWNsaWVudC5qcz84NDVjIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gdm9pZCAwO1xudmFyIF9yb3V0ZXIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJuZXh0L3JvdXRlclwiKSk7XG52YXIgX3dlYnNvY2tldCA9IHJlcXVpcmUoXCIuL2Vycm9yLW92ZXJsYXkvd2Vic29ja2V0XCIpO1xuZnVuY3Rpb24gYXN5bmNHZW5lcmF0b3JTdGVwKGdlbiwgcmVzb2x2ZSwgcmVqZWN0LCBfbmV4dCwgX3Rocm93LCBrZXksIGFyZykge1xuICAgIHRyeSB7XG4gICAgICAgIHZhciBpbmZvID0gZ2VuW2tleV0oYXJnKTtcbiAgICAgICAgdmFyIHZhbHVlID0gaW5mby52YWx1ZTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChpbmZvLmRvbmUpIHtcbiAgICAgICAgcmVzb2x2ZSh2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKHZhbHVlKS50aGVuKF9uZXh0LCBfdGhyb3cpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIF9hc3luY1RvR2VuZXJhdG9yKGZuKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgc2VsZiA9IHRoaXMsIGFyZ3MgPSBhcmd1bWVudHM7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgICAgIHZhciBnZW4gPSBmbi5hcHBseShzZWxmLCBhcmdzKTtcbiAgICAgICAgICAgIGZ1bmN0aW9uIF9uZXh0KHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgYXN5bmNHZW5lcmF0b3JTdGVwKGdlbiwgcmVzb2x2ZSwgcmVqZWN0LCBfbmV4dCwgX3Rocm93LCBcIm5leHRcIiwgdmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZnVuY3Rpb24gX3Rocm93KGVycikge1xuICAgICAgICAgICAgICAgIGFzeW5jR2VuZXJhdG9yU3RlcChnZW4sIHJlc29sdmUsIHJlamVjdCwgX25leHQsIF90aHJvdywgXCJ0aHJvd1wiLCBlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgX25leHQodW5kZWZpbmVkKTtcbiAgICAgICAgfSk7XG4gICAgfTtcbn1cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbnZhciBfZGVmYXVsdCA9IF9hc3luY1RvR2VuZXJhdG9yKGZ1bmN0aW9uKigpIHtcbiAgICBzZXRJbnRlcnZhbCgoKT0+e1xuICAgICAgICAoMCwgX3dlYnNvY2tldCkuc2VuZE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgZXZlbnQ6ICdwaW5nJyxcbiAgICAgICAgICAgIHBhZ2U6IF9yb3V0ZXIuZGVmYXVsdC5wYXRobmFtZVxuICAgICAgICB9KSk7XG4gICAgfSwgMjUwMCk7XG4gICAgKDAsIF93ZWJzb2NrZXQpLmFkZE1lc3NhZ2VMaXN0ZW5lcigoZXZlbnQpPT57XG4gICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoJ3snKSA9PT0gLTEpIHJldHVybjtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHBheWxvYWQgPSBKU09OLnBhcnNlKGV2ZW50LmRhdGEpO1xuICAgICAgICAgICAgLy8gZG9uJ3QgYXR0ZW1wdCBmZXRjaGluZyB0aGUgcGFnZSBpZiB3ZSdyZSBhbHJlYWR5IHNob3dpbmdcbiAgICAgICAgICAgIC8vIHRoZSBkZXYgb3ZlcmxheSBhcyB0aGlzIGNhbiBjYXVzZSB0aGUgZXJyb3IgdG8gYmUgdHJpZ2dlcmVkXG4gICAgICAgICAgICAvLyByZXBlYXRlZGx5XG4gICAgICAgICAgICBpZiAocGF5bG9hZC5ldmVudCA9PT0gJ3BvbmcnICYmIHBheWxvYWQuaW52YWxpZCAmJiAhc2VsZi5fX05FWFRfREFUQV9fLmVycikge1xuICAgICAgICAgICAgICAgIC8vIFBheWxvYWQgY2FuIGJlIGludmFsaWQgZXZlbiBpZiB0aGUgcGFnZSBkb2VzIGV4aXN0LlxuICAgICAgICAgICAgICAgIC8vIFNvLCB3ZSBjaGVjayBpZiBpdCBjYW4gYmUgY3JlYXRlZC5cbiAgICAgICAgICAgICAgICBmZXRjaChsb2NhdGlvbi5ocmVmLCB7XG4gICAgICAgICAgICAgICAgICAgIGNyZWRlbnRpYWxzOiAnc2FtZS1vcmlnaW4nXG4gICAgICAgICAgICAgICAgfSkudGhlbigocGFnZVJlcyk9PntcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBhZ2VSZXMuc3RhdHVzID09PSAyMDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBhZ2UgZXhpc3RzIG5vdywgcmVsb2FkXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBhZ2UgZG9lc24ndCBleGlzdFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGYuX19ORVhUX0RBVEFfXy5wYWdlID09PSBfcm91dGVyLmRlZmF1bHQucGF0aG5hbWUgJiYgX3JvdXRlci5kZWZhdWx0LnBhdGhuYW1lICE9PSAnL19lcnJvcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBhcmUgc3RpbGwgb24gdGhlIHBhZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVsb2FkIHRvIHNob3cgNDA0IGVycm9yIHBhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ29uLWRlbWFuZC1lbnRyaWVzIGZhaWxlZCB0byBwYXJzZSByZXNwb25zZScsIGVycik7XG4gICAgICAgIH1cbiAgICB9KTtcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW9uLWRlbWFuZC1lbnRyaWVzLWNsaWVudC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJfcm91dGVyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfd2Vic29ja2V0IiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwicmVzb2x2ZSIsInJlamVjdCIsIl9uZXh0IiwiX3Rocm93Iiwia2V5IiwiYXJnIiwiaW5mbyIsImVycm9yIiwiZG9uZSIsIlByb21pc2UiLCJ0aGVuIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJmbiIsInNlbGYiLCJhcmdzIiwiYXJndW1lbnRzIiwiYXBwbHkiLCJlcnIiLCJ1bmRlZmluZWQiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX2RlZmF1bHQiLCJzZXRJbnRlcnZhbCIsInNlbmRNZXNzYWdlIiwiSlNPTiIsInN0cmluZ2lmeSIsImV2ZW50IiwicGFnZSIsInBhdGhuYW1lIiwiYWRkTWVzc2FnZUxpc3RlbmVyIiwiZGF0YSIsImluZGV4T2YiLCJwYXlsb2FkIiwicGFyc2UiLCJpbnZhbGlkIiwiX19ORVhUX0RBVEFfXyIsImZldGNoIiwibG9jYXRpb24iLCJocmVmIiwiY3JlZGVudGlhbHMiLCJwYWdlUmVzIiwic3RhdHVzIiwicmVsb2FkIiwiY29uc29sZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/on-demand-entries-client.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/dev/webpack-hot-middleware-client.js": +/*!****************************************************************************!*\ + !*** ./node_modules/next/dist/client/dev/webpack-hot-middleware-client.js ***! + \****************************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _slicedToArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _hotDevClient = _interopRequireDefault(__webpack_require__(/*! ./error-overlay/hot-dev-client */ \"./node_modules/next/dist/client/dev/error-overlay/hot-dev-client.js\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar _default = function _default() {\n var devClient = (0, _hotDevClient)[\"default\"]();\n devClient.subscribeToHmrEvent(function (obj) {\n if (obj.action === 'reloadPage') {\n return window.location.reload();\n }\n\n if (obj.action === 'removedPage') {\n var _obj$data = _slicedToArray(obj.data, 1),\n page = _obj$data[0];\n\n if (page === window.next.router.pathname) {\n return window.location.reload();\n }\n\n return;\n }\n\n if (obj.action === 'addedPage') {\n var _obj$data2 = _slicedToArray(obj.data, 1),\n _page = _obj$data2[0];\n\n if (_page === window.next.router.pathname && typeof window.next.router.components[_page] === 'undefined') {\n return window.location.reload();\n }\n\n return;\n }\n\n throw new Error('Unexpected action ' + obj.action);\n });\n return devClient;\n};\n\nexports[\"default\"] = _default;\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvd2VicGFjay1ob3QtbWlkZGxld2FyZS1jbGllbnQuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOzs7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELGtCQUFBLEdBQWtCLEtBQUssQ0FBdkI7O0FBQ0EsSUFBSUUsYUFBYSxHQUFHQyxzQkFBc0IsQ0FBQ0MsbUJBQU8sQ0FBQywyR0FBRCxDQUFSLENBQTFDOztBQUNBLFNBQVNELHNCQUFULENBQWdDRSxHQUFoQyxFQUFxQztBQUNqQyxTQUFPQSxHQUFHLElBQUlBLEdBQUcsQ0FBQ0MsVUFBWCxHQUF3QkQsR0FBeEIsR0FBOEI7QUFDakMsZUFBU0E7QUFEd0IsR0FBckM7QUFHSDs7QUFDRCxJQUFJRSxRQUFRLEdBQUcsU0FBWEEsUUFBVyxHQUFJO0FBQ2YsTUFBTUMsU0FBUyxHQUFHLENBQUMsR0FBR04sYUFBSixjQUFsQjtBQUNBTSxFQUFBQSxTQUFTLENBQUNDLG1CQUFWLENBQThCLFVBQUNKLEdBQUQsRUFBTztBQUNqQyxRQUFJQSxHQUFHLENBQUNLLE1BQUosS0FBZSxZQUFuQixFQUFpQztBQUM3QixhQUFPQyxNQUFNLENBQUNDLFFBQVAsQ0FBZ0JDLE1BQWhCLEVBQVA7QUFDSDs7QUFDRCxRQUFJUixHQUFHLENBQUNLLE1BQUosS0FBZSxhQUFuQixFQUFrQztBQUM5QixxQ0FBZUwsR0FBRyxDQUFDUyxJQUFuQjtBQUFBLFVBQU9DLElBQVA7O0FBQ0EsVUFBSUEsSUFBSSxLQUFLSixNQUFNLENBQUNLLElBQVAsQ0FBWUMsTUFBWixDQUFtQkMsUUFBaEMsRUFBMEM7QUFDdEMsZUFBT1AsTUFBTSxDQUFDQyxRQUFQLENBQWdCQyxNQUFoQixFQUFQO0FBQ0g7O0FBQ0Q7QUFDSDs7QUFDRCxRQUFJUixHQUFHLENBQUNLLE1BQUosS0FBZSxXQUFuQixFQUFnQztBQUM1QixzQ0FBZUwsR0FBRyxDQUFDUyxJQUFuQjtBQUFBLFVBQU9DLEtBQVA7O0FBQ0EsVUFBSUEsS0FBSSxLQUFLSixNQUFNLENBQUNLLElBQVAsQ0FBWUMsTUFBWixDQUFtQkMsUUFBNUIsSUFBd0MsT0FBT1AsTUFBTSxDQUFDSyxJQUFQLENBQVlDLE1BQVosQ0FBbUJFLFVBQW5CLENBQThCSixLQUE5QixDQUFQLEtBQStDLFdBQTNGLEVBQXdHO0FBQ3BHLGVBQU9KLE1BQU0sQ0FBQ0MsUUFBUCxDQUFnQkMsTUFBaEIsRUFBUDtBQUNIOztBQUNEO0FBQ0g7O0FBQ0QsVUFBTSxJQUFJTyxLQUFKLENBQVUsdUJBQXVCZixHQUFHLENBQUNLLE1BQXJDLENBQU47QUFDSCxHQW5CRDtBQW9CQSxTQUFPRixTQUFQO0FBQ0gsQ0F2QkQ7O0FBd0JBUixrQkFBQSxHQUFrQk8sUUFBbEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvZGV2L3dlYnBhY2staG90LW1pZGRsZXdhcmUtY2xpZW50LmpzPzlhZDIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7XG52YXIgX2hvdERldkNsaWVudCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vZXJyb3Itb3ZlcmxheS9ob3QtZGV2LWNsaWVudFwiKSk7XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG52YXIgX2RlZmF1bHQgPSAoKT0+e1xuICAgIGNvbnN0IGRldkNsaWVudCA9ICgwLCBfaG90RGV2Q2xpZW50KS5kZWZhdWx0KCk7XG4gICAgZGV2Q2xpZW50LnN1YnNjcmliZVRvSG1yRXZlbnQoKG9iaik9PntcbiAgICAgICAgaWYgKG9iai5hY3Rpb24gPT09ICdyZWxvYWRQYWdlJykge1xuICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob2JqLmFjdGlvbiA9PT0gJ3JlbW92ZWRQYWdlJykge1xuICAgICAgICAgICAgY29uc3QgW3BhZ2VdID0gb2JqLmRhdGE7XG4gICAgICAgICAgICBpZiAocGFnZSA9PT0gd2luZG93Lm5leHQucm91dGVyLnBhdGhuYW1lKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAob2JqLmFjdGlvbiA9PT0gJ2FkZGVkUGFnZScpIHtcbiAgICAgICAgICAgIGNvbnN0IFtwYWdlXSA9IG9iai5kYXRhO1xuICAgICAgICAgICAgaWYgKHBhZ2UgPT09IHdpbmRvdy5uZXh0LnJvdXRlci5wYXRobmFtZSAmJiB0eXBlb2Ygd2luZG93Lm5leHQucm91dGVyLmNvbXBvbmVudHNbcGFnZV0gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuZXhwZWN0ZWQgYWN0aW9uICcgKyBvYmouYWN0aW9uKTtcbiAgICB9KTtcbiAgICByZXR1cm4gZGV2Q2xpZW50O1xufTtcbmV4cG9ydHMuZGVmYXVsdCA9IF9kZWZhdWx0O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD13ZWJwYWNrLWhvdC1taWRkbGV3YXJlLWNsaWVudC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJfaG90RGV2Q2xpZW50IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX2RlZmF1bHQiLCJkZXZDbGllbnQiLCJzdWJzY3JpYmVUb0htckV2ZW50IiwiYWN0aW9uIiwid2luZG93IiwibG9jYXRpb24iLCJyZWxvYWQiLCJkYXRhIiwicGFnZSIsIm5leHQiLCJyb3V0ZXIiLCJwYXRobmFtZSIsImNvbXBvbmVudHMiLCJFcnJvciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/webpack-hot-middleware-client.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/head-manager.js": +/*!*******************************************************!*\ + !*** ./node_modules/next/dist/client/head-manager.js ***! + \*******************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.isEqualNode = isEqualNode;\nexports[\"default\"] = initHeadManager;\nexports.DOMAttributeNames = void 0;\nvar DOMAttributeNames = {\n acceptCharset: 'accept-charset',\n className: 'class',\n htmlFor: 'for',\n httpEquiv: 'http-equiv',\n noModule: 'noModule'\n};\nexports.DOMAttributeNames = DOMAttributeNames;\n\nfunction reactElementToDOM(_ref) {\n var type = _ref.type,\n props = _ref.props;\n var el = document.createElement(type);\n\n for (var p in props) {\n if (!props.hasOwnProperty(p)) continue;\n if (p === 'children' || p === 'dangerouslySetInnerHTML') continue; // we don't render undefined props to the DOM\n\n if (props[p] === undefined) continue;\n var attr = DOMAttributeNames[p] || p.toLowerCase();\n\n if (type === 'script' && (attr === 'async' || attr === 'defer' || attr === 'noModule')) {\n el[attr] = !!props[p];\n } else {\n el.setAttribute(attr, props[p]);\n }\n }\n\n var children = props.children,\n dangerouslySetInnerHTML = props.dangerouslySetInnerHTML;\n\n if (dangerouslySetInnerHTML) {\n el.innerHTML = dangerouslySetInnerHTML.__html || '';\n } else if (children) {\n el.textContent = typeof children === 'string' ? children : Array.isArray(children) ? children.join('') : '';\n }\n\n return el;\n}\n\nfunction isEqualNode(oldTag, newTag) {\n if (oldTag instanceof HTMLElement && newTag instanceof HTMLElement) {\n var nonce = newTag.getAttribute('nonce'); // Only strip the nonce if `oldTag` has had it stripped. An element's nonce attribute will not\n // be stripped if there is no content security policy response header that includes a nonce.\n\n if (nonce && !oldTag.getAttribute('nonce')) {\n var cloneTag = newTag.cloneNode(true);\n cloneTag.setAttribute('nonce', '');\n cloneTag.nonce = nonce;\n return nonce === oldTag.nonce && oldTag.isEqualNode(cloneTag);\n }\n }\n\n return oldTag.isEqualNode(newTag);\n}\n\nfunction updateElements(type, components) {\n var headEl = document.getElementsByTagName('head')[0];\n var headCountEl = headEl.querySelector('meta[name=next-head-count]');\n\n if (true) {\n if (!headCountEl) {\n console.error('Warning: next-head-count is missing. https://nextjs.org/docs/messages/next-head-count-missing');\n return;\n }\n }\n\n var headCount = Number(headCountEl.content);\n var oldTags = [];\n\n for (var i = 0, j = headCountEl.previousElementSibling; i < headCount; i++, j = (j === null || j === void 0 ? void 0 : j.previousElementSibling) || null) {\n var ref;\n\n if ((j === null || j === void 0 ? void 0 : (ref = j.tagName) === null || ref === void 0 ? void 0 : ref.toLowerCase()) === type) {\n oldTags.push(j);\n }\n }\n\n var newTags = components.map(reactElementToDOM).filter(function (newTag) {\n for (var k = 0, len = oldTags.length; k < len; k++) {\n var oldTag = oldTags[k];\n\n if (isEqualNode(oldTag, newTag)) {\n oldTags.splice(k, 1);\n return false;\n }\n }\n\n return true;\n });\n oldTags.forEach(function (t) {\n var ref;\n return (ref = t.parentNode) === null || ref === void 0 ? void 0 : ref.removeChild(t);\n });\n newTags.forEach(function (t) {\n return headEl.insertBefore(t, headCountEl);\n });\n headCountEl.content = (headCount - oldTags.length + newTags.length).toString();\n}\n\nfunction initHeadManager() {\n var updatePromise = null;\n return {\n mountedInstances: new Set(),\n updateHead: function updateHead(head) {\n var promise = updatePromise = Promise.resolve().then(function () {\n if (promise !== updatePromise) return;\n updatePromise = null;\n var tags = {};\n head.forEach(function (h) {\n if ( // If the font tag is loaded only on client navigation\n // it won't be inlined. In this case revert to the original behavior\n h.type === 'link' && h.props['data-optimized-fonts']) {\n if (document.querySelector(\"style[data-href=\\\"\".concat(h.props['data-href'], \"\\\"]\"))) {\n return;\n } else {\n h.props.href = h.props['data-href'];\n h.props['data-href'] = undefined;\n }\n }\n\n var components = tags[h.type] || [];\n components.push(h);\n tags[h.type] = components;\n });\n var titleComponent = tags.title ? tags.title[0] : null;\n var title = '';\n\n if (titleComponent) {\n var children = titleComponent.props.children;\n title = typeof children === 'string' ? children : Array.isArray(children) ? children.join('') : '';\n }\n\n if (title !== document.title) document.title = title;\n ['meta', 'base', 'link', 'style', 'script'].forEach(function (type) {\n updateElements(type, tags[type] || []);\n });\n });\n }\n };\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9oZWFkLW1hbmFnZXIuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxtQkFBQSxHQUFzQkUsV0FBdEI7QUFDQUYsa0JBQUEsR0FBa0JHLGVBQWxCO0FBQ0FILHlCQUFBLEdBQTRCLEtBQUssQ0FBakM7QUFDQSxJQUFNSSxpQkFBaUIsR0FBRztBQUN0QkMsRUFBQUEsYUFBYSxFQUFFLGdCQURPO0FBRXRCQyxFQUFBQSxTQUFTLEVBQUUsT0FGVztBQUd0QkMsRUFBQUEsT0FBTyxFQUFFLEtBSGE7QUFJdEJDLEVBQUFBLFNBQVMsRUFBRSxZQUpXO0FBS3RCQyxFQUFBQSxRQUFRLEVBQUU7QUFMWSxDQUExQjtBQU9BVCx5QkFBQSxHQUE0QkksaUJBQTVCOztBQUNBLFNBQVNNLGlCQUFULE9BQThDO0FBQUEsTUFBakJDLElBQWlCLFFBQWpCQSxJQUFpQjtBQUFBLE1BQVZDLEtBQVUsUUFBVkEsS0FBVTtBQUMxQyxNQUFNQyxFQUFFLEdBQUdDLFFBQVEsQ0FBQ0MsYUFBVCxDQUF1QkosSUFBdkIsQ0FBWDs7QUFDQSxPQUFJLElBQU1LLENBQVYsSUFBZUosS0FBZixFQUFxQjtBQUNqQixRQUFJLENBQUNBLEtBQUssQ0FBQ0ssY0FBTixDQUFxQkQsQ0FBckIsQ0FBTCxFQUE4QjtBQUM5QixRQUFJQSxDQUFDLEtBQUssVUFBTixJQUFvQkEsQ0FBQyxLQUFLLHlCQUE5QixFQUF5RCxTQUZ4QyxDQUdqQjs7QUFDQSxRQUFJSixLQUFLLENBQUNJLENBQUQsQ0FBTCxLQUFhRSxTQUFqQixFQUE0QjtBQUM1QixRQUFNQyxJQUFJLEdBQUdmLGlCQUFpQixDQUFDWSxDQUFELENBQWpCLElBQXdCQSxDQUFDLENBQUNJLFdBQUYsRUFBckM7O0FBQ0EsUUFBSVQsSUFBSSxLQUFLLFFBQVQsS0FBc0JRLElBQUksS0FBSyxPQUFULElBQW9CQSxJQUFJLEtBQUssT0FBN0IsSUFBd0NBLElBQUksS0FBSyxVQUF2RSxDQUFKLEVBQXdGO0FBQ3BGTixNQUFBQSxFQUFFLENBQUNNLElBQUQsQ0FBRixHQUFXLENBQUMsQ0FBQ1AsS0FBSyxDQUFDSSxDQUFELENBQWxCO0FBQ0gsS0FGRCxNQUVPO0FBQ0hILE1BQUFBLEVBQUUsQ0FBQ1EsWUFBSCxDQUFnQkYsSUFBaEIsRUFBc0JQLEtBQUssQ0FBQ0ksQ0FBRCxDQUEzQjtBQUNIO0FBQ0o7O0FBQ0QsTUFBUU0sUUFBUixHQUFnRFYsS0FBaEQsQ0FBUVUsUUFBUjtBQUFBLE1BQW1CQyx1QkFBbkIsR0FBZ0RYLEtBQWhELENBQW1CVyx1QkFBbkI7O0FBQ0EsTUFBSUEsdUJBQUosRUFBNkI7QUFDekJWLElBQUFBLEVBQUUsQ0FBQ1csU0FBSCxHQUFlRCx1QkFBdUIsQ0FBQ0UsTUFBeEIsSUFBa0MsRUFBakQ7QUFDSCxHQUZELE1BRU8sSUFBSUgsUUFBSixFQUFjO0FBQ2pCVCxJQUFBQSxFQUFFLENBQUNhLFdBQUgsR0FBaUIsT0FBT0osUUFBUCxLQUFvQixRQUFwQixHQUErQkEsUUFBL0IsR0FBMENLLEtBQUssQ0FBQ0MsT0FBTixDQUFjTixRQUFkLElBQTBCQSxRQUFRLENBQUNPLElBQVQsQ0FBYyxFQUFkLENBQTFCLEdBQThDLEVBQXpHO0FBQ0g7O0FBQ0QsU0FBT2hCLEVBQVA7QUFDSDs7QUFDRCxTQUFTWCxXQUFULENBQXFCNEIsTUFBckIsRUFBNkJDLE1BQTdCLEVBQXFDO0FBQ2pDLE1BQUlELE1BQU0sWUFBWUUsV0FBbEIsSUFBaUNELE1BQU0sWUFBWUMsV0FBdkQsRUFBb0U7QUFDaEUsUUFBTUMsS0FBSyxHQUFHRixNQUFNLENBQUNHLFlBQVAsQ0FBb0IsT0FBcEIsQ0FBZCxDQURnRSxDQUVoRTtBQUNBOztBQUNBLFFBQUlELEtBQUssSUFBSSxDQUFDSCxNQUFNLENBQUNJLFlBQVAsQ0FBb0IsT0FBcEIsQ0FBZCxFQUE0QztBQUN4QyxVQUFNQyxRQUFRLEdBQUdKLE1BQU0sQ0FBQ0ssU0FBUCxDQUFpQixJQUFqQixDQUFqQjtBQUNBRCxNQUFBQSxRQUFRLENBQUNkLFlBQVQsQ0FBc0IsT0FBdEIsRUFBK0IsRUFBL0I7QUFDQWMsTUFBQUEsUUFBUSxDQUFDRixLQUFULEdBQWlCQSxLQUFqQjtBQUNBLGFBQU9BLEtBQUssS0FBS0gsTUFBTSxDQUFDRyxLQUFqQixJQUEwQkgsTUFBTSxDQUFDNUIsV0FBUCxDQUFtQmlDLFFBQW5CLENBQWpDO0FBQ0g7QUFDSjs7QUFDRCxTQUFPTCxNQUFNLENBQUM1QixXQUFQLENBQW1CNkIsTUFBbkIsQ0FBUDtBQUNIOztBQUNELFNBQVNNLGNBQVQsQ0FBd0IxQixJQUF4QixFQUE4QjJCLFVBQTlCLEVBQTBDO0FBQ3RDLE1BQU1DLE1BQU0sR0FBR3pCLFFBQVEsQ0FBQzBCLG9CQUFULENBQThCLE1BQTlCLEVBQXNDLENBQXRDLENBQWY7QUFDQSxNQUFNQyxXQUFXLEdBQUdGLE1BQU0sQ0FBQ0csYUFBUCxDQUFxQiw0QkFBckIsQ0FBcEI7O0FBQ0EsWUFBMkM7QUFDdkMsUUFBSSxDQUFDRCxXQUFMLEVBQWtCO0FBQ2RFLE1BQUFBLE9BQU8sQ0FBQ0MsS0FBUixDQUFjLCtGQUFkO0FBQ0E7QUFDSDtBQUNKOztBQUNELE1BQU1DLFNBQVMsR0FBR0MsTUFBTSxDQUFDTCxXQUFXLENBQUNNLE9BQWIsQ0FBeEI7QUFDQSxNQUFNQyxPQUFPLEdBQUcsRUFBaEI7O0FBQ0EsT0FBSSxJQUFJQyxDQUFDLEdBQUcsQ0FBUixFQUFXQyxDQUFDLEdBQUdULFdBQVcsQ0FBQ1Usc0JBQS9CLEVBQXVERixDQUFDLEdBQUdKLFNBQTNELEVBQXNFSSxDQUFDLElBQUlDLENBQUMsR0FBRyxDQUFDQSxDQUFDLEtBQUssSUFBTixJQUFjQSxDQUFDLEtBQUssS0FBSyxDQUF6QixHQUE2QixLQUFLLENBQWxDLEdBQXNDQSxDQUFDLENBQUNDLHNCQUF6QyxLQUFvRSxJQUFuSixFQUF3SjtBQUNwSixRQUFJQyxHQUFKOztBQUNBLFFBQUksQ0FBQ0YsQ0FBQyxLQUFLLElBQU4sSUFBY0EsQ0FBQyxLQUFLLEtBQUssQ0FBekIsR0FBNkIsS0FBSyxDQUFsQyxHQUFzQyxDQUFDRSxHQUFHLEdBQUdGLENBQUMsQ0FBQ0csT0FBVCxNQUFzQixJQUF0QixJQUE4QkQsR0FBRyxLQUFLLEtBQUssQ0FBM0MsR0FBK0MsS0FBSyxDQUFwRCxHQUF3REEsR0FBRyxDQUFDaEMsV0FBSixFQUEvRixNQUFzSFQsSUFBMUgsRUFBZ0k7QUFDNUhxQyxNQUFBQSxPQUFPLENBQUNNLElBQVIsQ0FBYUosQ0FBYjtBQUNIO0FBQ0o7O0FBQ0QsTUFBTUssT0FBTyxHQUFHakIsVUFBVSxDQUFDa0IsR0FBWCxDQUFlOUMsaUJBQWYsRUFBa0MrQyxNQUFsQyxDQUF5QyxVQUFDMUIsTUFBRCxFQUFVO0FBQy9ELFNBQUksSUFBSTJCLENBQUMsR0FBRyxDQUFSLEVBQVdDLEdBQUcsR0FBR1gsT0FBTyxDQUFDWSxNQUE3QixFQUFxQ0YsQ0FBQyxHQUFHQyxHQUF6QyxFQUE4Q0QsQ0FBQyxFQUEvQyxFQUFrRDtBQUM5QyxVQUFNNUIsTUFBTSxHQUFHa0IsT0FBTyxDQUFDVSxDQUFELENBQXRCOztBQUNBLFVBQUl4RCxXQUFXLENBQUM0QixNQUFELEVBQVNDLE1BQVQsQ0FBZixFQUFpQztBQUM3QmlCLFFBQUFBLE9BQU8sQ0FBQ2EsTUFBUixDQUFlSCxDQUFmLEVBQWtCLENBQWxCO0FBQ0EsZUFBTyxLQUFQO0FBQ0g7QUFDSjs7QUFDRCxXQUFPLElBQVA7QUFDSCxHQVRlLENBQWhCO0FBVUFWLEVBQUFBLE9BQU8sQ0FBQ2MsT0FBUixDQUFnQixVQUFDQyxDQUFELEVBQUs7QUFDakIsUUFBSVgsR0FBSjtBQUNBLFdBQU8sQ0FBQ0EsR0FBRyxHQUFHVyxDQUFDLENBQUNDLFVBQVQsTUFBeUIsSUFBekIsSUFBaUNaLEdBQUcsS0FBSyxLQUFLLENBQTlDLEdBQWtELEtBQUssQ0FBdkQsR0FBMkRBLEdBQUcsQ0FBQ2EsV0FBSixDQUFnQkYsQ0FBaEIsQ0FBbEU7QUFDSCxHQUhEO0FBSUFSLEVBQUFBLE9BQU8sQ0FBQ08sT0FBUixDQUFnQixVQUFDQyxDQUFEO0FBQUEsV0FBS3hCLE1BQU0sQ0FBQzJCLFlBQVAsQ0FBb0JILENBQXBCLEVBQXVCdEIsV0FBdkIsQ0FBTDtBQUFBLEdBQWhCO0FBRUFBLEVBQUFBLFdBQVcsQ0FBQ00sT0FBWixHQUFzQixDQUFDRixTQUFTLEdBQUdHLE9BQU8sQ0FBQ1ksTUFBcEIsR0FBNkJMLE9BQU8sQ0FBQ0ssTUFBdEMsRUFBOENPLFFBQTlDLEVBQXRCO0FBQ0g7O0FBQ0QsU0FBU2hFLGVBQVQsR0FBMkI7QUFDdkIsTUFBSWlFLGFBQWEsR0FBRyxJQUFwQjtBQUNBLFNBQU87QUFDSEMsSUFBQUEsZ0JBQWdCLEVBQUUsSUFBSUMsR0FBSixFQURmO0FBRUhDLElBQUFBLFVBQVUsRUFBRSxvQkFBQ0MsSUFBRCxFQUFRO0FBQ2hCLFVBQU1DLE9BQU8sR0FBR0wsYUFBYSxHQUFHTSxPQUFPLENBQUNDLE9BQVIsR0FBa0JDLElBQWxCLENBQXVCLFlBQUk7QUFDdkQsWUFBSUgsT0FBTyxLQUFLTCxhQUFoQixFQUErQjtBQUMvQkEsUUFBQUEsYUFBYSxHQUFHLElBQWhCO0FBQ0EsWUFBTVMsSUFBSSxHQUFHLEVBQWI7QUFFQUwsUUFBQUEsSUFBSSxDQUFDVixPQUFMLENBQWEsVUFBQ2dCLENBQUQsRUFBSztBQUNkLGVBQUk7QUFDSjtBQUNBQSxVQUFBQSxDQUFDLENBQUNuRSxJQUFGLEtBQVcsTUFBWCxJQUFxQm1FLENBQUMsQ0FBQ2xFLEtBQUYsQ0FBUSxzQkFBUixDQUZyQixFQUVzRDtBQUNsRCxnQkFBSUUsUUFBUSxDQUFDNEIsYUFBVCw2QkFBMkNvQyxDQUFDLENBQUNsRSxLQUFGLENBQVEsV0FBUixDQUEzQyxTQUFKLEVBQTBFO0FBQ3RFO0FBQ0gsYUFGRCxNQUVPO0FBQ0hrRSxjQUFBQSxDQUFDLENBQUNsRSxLQUFGLENBQVFtRSxJQUFSLEdBQWVELENBQUMsQ0FBQ2xFLEtBQUYsQ0FBUSxXQUFSLENBQWY7QUFDQWtFLGNBQUFBLENBQUMsQ0FBQ2xFLEtBQUYsQ0FBUSxXQUFSLElBQXVCTSxTQUF2QjtBQUNIO0FBQ0o7O0FBQ0QsY0FBTW9CLFVBQVUsR0FBR3VDLElBQUksQ0FBQ0MsQ0FBQyxDQUFDbkUsSUFBSCxDQUFKLElBQWdCLEVBQW5DO0FBQ0EyQixVQUFBQSxVQUFVLENBQUNnQixJQUFYLENBQWdCd0IsQ0FBaEI7QUFDQUQsVUFBQUEsSUFBSSxDQUFDQyxDQUFDLENBQUNuRSxJQUFILENBQUosR0FBZTJCLFVBQWY7QUFDSCxTQWREO0FBZUEsWUFBTTBDLGNBQWMsR0FBR0gsSUFBSSxDQUFDSSxLQUFMLEdBQWFKLElBQUksQ0FBQ0ksS0FBTCxDQUFXLENBQVgsQ0FBYixHQUE2QixJQUFwRDtBQUNBLFlBQUlBLEtBQUssR0FBRyxFQUFaOztBQUNBLFlBQUlELGNBQUosRUFBb0I7QUFDaEIsY0FBUTFELFFBQVIsR0FBc0IwRCxjQUFjLENBQUNwRSxLQUFyQyxDQUFRVSxRQUFSO0FBQ0EyRCxVQUFBQSxLQUFLLEdBQUcsT0FBTzNELFFBQVAsS0FBb0IsUUFBcEIsR0FBK0JBLFFBQS9CLEdBQTBDSyxLQUFLLENBQUNDLE9BQU4sQ0FBY04sUUFBZCxJQUEwQkEsUUFBUSxDQUFDTyxJQUFULENBQWMsRUFBZCxDQUExQixHQUE4QyxFQUFoRztBQUNIOztBQUNELFlBQUlvRCxLQUFLLEtBQUtuRSxRQUFRLENBQUNtRSxLQUF2QixFQUE4Qm5FLFFBQVEsQ0FBQ21FLEtBQVQsR0FBaUJBLEtBQWpCO0FBQzlCLFNBQ0ksTUFESixFQUVJLE1BRkosRUFHSSxNQUhKLEVBSUksT0FKSixFQUtJLFFBTEosRUFNRW5CLE9BTkYsQ0FNVSxVQUFDbkQsSUFBRCxFQUFRO0FBQ2QwQixVQUFBQSxjQUFjLENBQUMxQixJQUFELEVBQU9rRSxJQUFJLENBQUNsRSxJQUFELENBQUosSUFBYyxFQUFyQixDQUFkO0FBQ0gsU0FSRDtBQVNILE9BcEMrQixDQUFoQztBQXFDSDtBQXhDRSxHQUFQO0FBMENIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2hlYWQtbWFuYWdlci5qcz9jYTRhIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5pc0VxdWFsTm9kZSA9IGlzRXF1YWxOb2RlO1xuZXhwb3J0cy5kZWZhdWx0ID0gaW5pdEhlYWRNYW5hZ2VyO1xuZXhwb3J0cy5ET01BdHRyaWJ1dGVOYW1lcyA9IHZvaWQgMDtcbmNvbnN0IERPTUF0dHJpYnV0ZU5hbWVzID0ge1xuICAgIGFjY2VwdENoYXJzZXQ6ICdhY2NlcHQtY2hhcnNldCcsXG4gICAgY2xhc3NOYW1lOiAnY2xhc3MnLFxuICAgIGh0bWxGb3I6ICdmb3InLFxuICAgIGh0dHBFcXVpdjogJ2h0dHAtZXF1aXYnLFxuICAgIG5vTW9kdWxlOiAnbm9Nb2R1bGUnXG59O1xuZXhwb3J0cy5ET01BdHRyaWJ1dGVOYW1lcyA9IERPTUF0dHJpYnV0ZU5hbWVzO1xuZnVuY3Rpb24gcmVhY3RFbGVtZW50VG9ET00oeyB0eXBlICwgcHJvcHMgIH0pIHtcbiAgICBjb25zdCBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodHlwZSk7XG4gICAgZm9yKGNvbnN0IHAgaW4gcHJvcHMpe1xuICAgICAgICBpZiAoIXByb3BzLmhhc093blByb3BlcnR5KHApKSBjb250aW51ZTtcbiAgICAgICAgaWYgKHAgPT09ICdjaGlsZHJlbicgfHwgcCA9PT0gJ2Rhbmdlcm91c2x5U2V0SW5uZXJIVE1MJykgY29udGludWU7XG4gICAgICAgIC8vIHdlIGRvbid0IHJlbmRlciB1bmRlZmluZWQgcHJvcHMgdG8gdGhlIERPTVxuICAgICAgICBpZiAocHJvcHNbcF0gPT09IHVuZGVmaW5lZCkgY29udGludWU7XG4gICAgICAgIGNvbnN0IGF0dHIgPSBET01BdHRyaWJ1dGVOYW1lc1twXSB8fCBwLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmICh0eXBlID09PSAnc2NyaXB0JyAmJiAoYXR0ciA9PT0gJ2FzeW5jJyB8fCBhdHRyID09PSAnZGVmZXInIHx8IGF0dHIgPT09ICdub01vZHVsZScpKSB7XG4gICAgICAgICAgICBlbFthdHRyXSA9ICEhcHJvcHNbcF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlbC5zZXRBdHRyaWJ1dGUoYXR0ciwgcHJvcHNbcF0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHsgY2hpbGRyZW4gLCBkYW5nZXJvdXNseVNldElubmVySFRNTCAgfSA9IHByb3BzO1xuICAgIGlmIChkYW5nZXJvdXNseVNldElubmVySFRNTCkge1xuICAgICAgICBlbC5pbm5lckhUTUwgPSBkYW5nZXJvdXNseVNldElubmVySFRNTC5fX2h0bWwgfHwgJyc7XG4gICAgfSBlbHNlIGlmIChjaGlsZHJlbikge1xuICAgICAgICBlbC50ZXh0Q29udGVudCA9IHR5cGVvZiBjaGlsZHJlbiA9PT0gJ3N0cmluZycgPyBjaGlsZHJlbiA6IEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pID8gY2hpbGRyZW4uam9pbignJykgOiAnJztcbiAgICB9XG4gICAgcmV0dXJuIGVsO1xufVxuZnVuY3Rpb24gaXNFcXVhbE5vZGUob2xkVGFnLCBuZXdUYWcpIHtcbiAgICBpZiAob2xkVGFnIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQgJiYgbmV3VGFnIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3Qgbm9uY2UgPSBuZXdUYWcuZ2V0QXR0cmlidXRlKCdub25jZScpO1xuICAgICAgICAvLyBPbmx5IHN0cmlwIHRoZSBub25jZSBpZiBgb2xkVGFnYCBoYXMgaGFkIGl0IHN0cmlwcGVkLiBBbiBlbGVtZW50J3Mgbm9uY2UgYXR0cmlidXRlIHdpbGwgbm90XG4gICAgICAgIC8vIGJlIHN0cmlwcGVkIGlmIHRoZXJlIGlzIG5vIGNvbnRlbnQgc2VjdXJpdHkgcG9saWN5IHJlc3BvbnNlIGhlYWRlciB0aGF0IGluY2x1ZGVzIGEgbm9uY2UuXG4gICAgICAgIGlmIChub25jZSAmJiAhb2xkVGFnLmdldEF0dHJpYnV0ZSgnbm9uY2UnKSkge1xuICAgICAgICAgICAgY29uc3QgY2xvbmVUYWcgPSBuZXdUYWcuY2xvbmVOb2RlKHRydWUpO1xuICAgICAgICAgICAgY2xvbmVUYWcuc2V0QXR0cmlidXRlKCdub25jZScsICcnKTtcbiAgICAgICAgICAgIGNsb25lVGFnLm5vbmNlID0gbm9uY2U7XG4gICAgICAgICAgICByZXR1cm4gbm9uY2UgPT09IG9sZFRhZy5ub25jZSAmJiBvbGRUYWcuaXNFcXVhbE5vZGUoY2xvbmVUYWcpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBvbGRUYWcuaXNFcXVhbE5vZGUobmV3VGFnKTtcbn1cbmZ1bmN0aW9uIHVwZGF0ZUVsZW1lbnRzKHR5cGUsIGNvbXBvbmVudHMpIHtcbiAgICBjb25zdCBoZWFkRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdO1xuICAgIGNvbnN0IGhlYWRDb3VudEVsID0gaGVhZEVsLnF1ZXJ5U2VsZWN0b3IoJ21ldGFbbmFtZT1uZXh0LWhlYWQtY291bnRdJyk7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgaWYgKCFoZWFkQ291bnRFbCkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignV2FybmluZzogbmV4dC1oZWFkLWNvdW50IGlzIG1pc3NpbmcuIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25leHQtaGVhZC1jb3VudC1taXNzaW5nJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgaGVhZENvdW50ID0gTnVtYmVyKGhlYWRDb3VudEVsLmNvbnRlbnQpO1xuICAgIGNvbnN0IG9sZFRhZ3MgPSBbXTtcbiAgICBmb3IobGV0IGkgPSAwLCBqID0gaGVhZENvdW50RWwucHJldmlvdXNFbGVtZW50U2libGluZzsgaSA8IGhlYWRDb3VudDsgaSsrLCBqID0gKGogPT09IG51bGwgfHwgaiA9PT0gdm9pZCAwID8gdm9pZCAwIDogai5wcmV2aW91c0VsZW1lbnRTaWJsaW5nKSB8fCBudWxsKXtcbiAgICAgICAgdmFyIHJlZjtcbiAgICAgICAgaWYgKChqID09PSBudWxsIHx8IGogPT09IHZvaWQgMCA/IHZvaWQgMCA6IChyZWYgPSBqLnRhZ05hbWUpID09PSBudWxsIHx8IHJlZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVmLnRvTG93ZXJDYXNlKCkpID09PSB0eXBlKSB7XG4gICAgICAgICAgICBvbGRUYWdzLnB1c2goaik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgbmV3VGFncyA9IGNvbXBvbmVudHMubWFwKHJlYWN0RWxlbWVudFRvRE9NKS5maWx0ZXIoKG5ld1RhZyk9PntcbiAgICAgICAgZm9yKGxldCBrID0gMCwgbGVuID0gb2xkVGFncy5sZW5ndGg7IGsgPCBsZW47IGsrKyl7XG4gICAgICAgICAgICBjb25zdCBvbGRUYWcgPSBvbGRUYWdzW2tdO1xuICAgICAgICAgICAgaWYgKGlzRXF1YWxOb2RlKG9sZFRhZywgbmV3VGFnKSkge1xuICAgICAgICAgICAgICAgIG9sZFRhZ3Muc3BsaWNlKGssIDEpO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9KTtcbiAgICBvbGRUYWdzLmZvckVhY2goKHQpPT57XG4gICAgICAgIHZhciByZWY7XG4gICAgICAgIHJldHVybiAocmVmID0gdC5wYXJlbnROb2RlKSA9PT0gbnVsbCB8fCByZWYgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlZi5yZW1vdmVDaGlsZCh0KTtcbiAgICB9KTtcbiAgICBuZXdUYWdzLmZvckVhY2goKHQpPT5oZWFkRWwuaW5zZXJ0QmVmb3JlKHQsIGhlYWRDb3VudEVsKVxuICAgICk7XG4gICAgaGVhZENvdW50RWwuY29udGVudCA9IChoZWFkQ291bnQgLSBvbGRUYWdzLmxlbmd0aCArIG5ld1RhZ3MubGVuZ3RoKS50b1N0cmluZygpO1xufVxuZnVuY3Rpb24gaW5pdEhlYWRNYW5hZ2VyKCkge1xuICAgIGxldCB1cGRhdGVQcm9taXNlID0gbnVsbDtcbiAgICByZXR1cm4ge1xuICAgICAgICBtb3VudGVkSW5zdGFuY2VzOiBuZXcgU2V0KCksXG4gICAgICAgIHVwZGF0ZUhlYWQ6IChoZWFkKT0+e1xuICAgICAgICAgICAgY29uc3QgcHJvbWlzZSA9IHVwZGF0ZVByb21pc2UgPSBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57XG4gICAgICAgICAgICAgICAgaWYgKHByb21pc2UgIT09IHVwZGF0ZVByb21pc2UpIHJldHVybjtcbiAgICAgICAgICAgICAgICB1cGRhdGVQcm9taXNlID0gbnVsbDtcbiAgICAgICAgICAgICAgICBjb25zdCB0YWdzID0ge1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgaGVhZC5mb3JFYWNoKChoKT0+e1xuICAgICAgICAgICAgICAgICAgICBpZiAoLy8gSWYgdGhlIGZvbnQgdGFnIGlzIGxvYWRlZCBvbmx5IG9uIGNsaWVudCBuYXZpZ2F0aW9uXG4gICAgICAgICAgICAgICAgICAgIC8vIGl0IHdvbid0IGJlIGlubGluZWQuIEluIHRoaXMgY2FzZSByZXZlcnQgdG8gdGhlIG9yaWdpbmFsIGJlaGF2aW9yXG4gICAgICAgICAgICAgICAgICAgIGgudHlwZSA9PT0gJ2xpbmsnICYmIGgucHJvcHNbJ2RhdGEtb3B0aW1pemVkLWZvbnRzJ10pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBzdHlsZVtkYXRhLWhyZWY9XCIke2gucHJvcHNbJ2RhdGEtaHJlZiddfVwiXWApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoLnByb3BzLmhyZWYgPSBoLnByb3BzWydkYXRhLWhyZWYnXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoLnByb3BzWydkYXRhLWhyZWYnXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb21wb25lbnRzID0gdGFnc1toLnR5cGVdIHx8IFtdO1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRzLnB1c2goaCk7XG4gICAgICAgICAgICAgICAgICAgIHRhZ3NbaC50eXBlXSA9IGNvbXBvbmVudHM7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgY29uc3QgdGl0bGVDb21wb25lbnQgPSB0YWdzLnRpdGxlID8gdGFncy50aXRsZVswXSA6IG51bGw7XG4gICAgICAgICAgICAgICAgbGV0IHRpdGxlID0gJyc7XG4gICAgICAgICAgICAgICAgaWYgKHRpdGxlQ29tcG9uZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgY2hpbGRyZW4gIH0gPSB0aXRsZUNvbXBvbmVudC5wcm9wcztcbiAgICAgICAgICAgICAgICAgICAgdGl0bGUgPSB0eXBlb2YgY2hpbGRyZW4gPT09ICdzdHJpbmcnID8gY2hpbGRyZW4gOiBBcnJheS5pc0FycmF5KGNoaWxkcmVuKSA/IGNoaWxkcmVuLmpvaW4oJycpIDogJyc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0aXRsZSAhPT0gZG9jdW1lbnQudGl0bGUpIGRvY3VtZW50LnRpdGxlID0gdGl0bGU7XG4gICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAnbWV0YScsXG4gICAgICAgICAgICAgICAgICAgICdiYXNlJyxcbiAgICAgICAgICAgICAgICAgICAgJ2xpbmsnLFxuICAgICAgICAgICAgICAgICAgICAnc3R5bGUnLFxuICAgICAgICAgICAgICAgICAgICAnc2NyaXB0J1xuICAgICAgICAgICAgICAgIF0uZm9yRWFjaCgodHlwZSk9PntcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlRWxlbWVudHModHlwZSwgdGFnc1t0eXBlXSB8fCBbXSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH07XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhlYWQtbWFuYWdlci5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJpc0VxdWFsTm9kZSIsImluaXRIZWFkTWFuYWdlciIsIkRPTUF0dHJpYnV0ZU5hbWVzIiwiYWNjZXB0Q2hhcnNldCIsImNsYXNzTmFtZSIsImh0bWxGb3IiLCJodHRwRXF1aXYiLCJub01vZHVsZSIsInJlYWN0RWxlbWVudFRvRE9NIiwidHlwZSIsInByb3BzIiwiZWwiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJwIiwiaGFzT3duUHJvcGVydHkiLCJ1bmRlZmluZWQiLCJhdHRyIiwidG9Mb3dlckNhc2UiLCJzZXRBdHRyaWJ1dGUiLCJjaGlsZHJlbiIsImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIiwiaW5uZXJIVE1MIiwiX19odG1sIiwidGV4dENvbnRlbnQiLCJBcnJheSIsImlzQXJyYXkiLCJqb2luIiwib2xkVGFnIiwibmV3VGFnIiwiSFRNTEVsZW1lbnQiLCJub25jZSIsImdldEF0dHJpYnV0ZSIsImNsb25lVGFnIiwiY2xvbmVOb2RlIiwidXBkYXRlRWxlbWVudHMiLCJjb21wb25lbnRzIiwiaGVhZEVsIiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJoZWFkQ291bnRFbCIsInF1ZXJ5U2VsZWN0b3IiLCJjb25zb2xlIiwiZXJyb3IiLCJoZWFkQ291bnQiLCJOdW1iZXIiLCJjb250ZW50Iiwib2xkVGFncyIsImkiLCJqIiwicHJldmlvdXNFbGVtZW50U2libGluZyIsInJlZiIsInRhZ05hbWUiLCJwdXNoIiwibmV3VGFncyIsIm1hcCIsImZpbHRlciIsImsiLCJsZW4iLCJsZW5ndGgiLCJzcGxpY2UiLCJmb3JFYWNoIiwidCIsInBhcmVudE5vZGUiLCJyZW1vdmVDaGlsZCIsImluc2VydEJlZm9yZSIsInRvU3RyaW5nIiwidXBkYXRlUHJvbWlzZSIsIm1vdW50ZWRJbnN0YW5jZXMiLCJTZXQiLCJ1cGRhdGVIZWFkIiwiaGVhZCIsInByb21pc2UiLCJQcm9taXNlIiwicmVzb2x2ZSIsInRoZW4iLCJ0YWdzIiwiaCIsImhyZWYiLCJ0aXRsZUNvbXBvbmVudCIsInRpdGxlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/head-manager.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/index.js": +/*!************************************************!*\ + !*** ./node_modules/next/dist/client/index.js ***! + \************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _regeneratorRuntime = __webpack_require__(/*! ./node_modules/@babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n\nvar _classCallCheck = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\");\n\nvar _createClass = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\");\n\nvar _inherits = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/inherits */ \"./node_modules/@babel/runtime/helpers/inherits.js\");\n\nvar _possibleConstructorReturn = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/possibleConstructorReturn */ \"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\");\n\nvar _getPrototypeOf = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/getPrototypeOf */ \"./node_modules/@babel/runtime/helpers/getPrototypeOf.js\");\n\nvar _slicedToArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nvar _s2 = $RefreshSig$(),\n _s3 = $RefreshSig$();\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.initNext = initNext;\nexports.render = render;\nexports.renderError = renderError;\nexports.emitter = exports.router = exports.version = void 0;\n\n__webpack_require__(/*! @next/polyfill-module */ \"./node_modules/@next/polyfill-module/dist/polyfill-module.js\");\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _reactDom = _interopRequireDefault(__webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\"));\n\nvar _styledJsx = __webpack_require__(/*! styled-jsx */ \"./node_modules/styled-jsx/index.js\");\n\nvar _headManagerContext = __webpack_require__(/*! ../shared/lib/head-manager-context */ \"./node_modules/next/dist/shared/lib/head-manager-context.js\");\n\nvar _mitt = _interopRequireDefault(__webpack_require__(/*! ../shared/lib/mitt */ \"./node_modules/next/dist/shared/lib/mitt.js\"));\n\nvar _routerContext = __webpack_require__(/*! ../shared/lib/router-context */ \"./node_modules/next/dist/shared/lib/router-context.js\");\n\nvar _router = __webpack_require__(/*! ../shared/lib/router/router */ \"./node_modules/next/dist/shared/lib/router/router.js\");\n\nvar _isDynamic = __webpack_require__(/*! ../shared/lib/router/utils/is-dynamic */ \"./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js\");\n\nvar _querystring = __webpack_require__(/*! ../shared/lib/router/utils/querystring */ \"./node_modules/next/dist/shared/lib/router/utils/querystring.js\");\n\nvar _runtimeConfig = __webpack_require__(/*! ../shared/lib/runtime-config */ \"./node_modules/next/dist/shared/lib/runtime-config.js\");\n\nvar _utils = __webpack_require__(/*! ../shared/lib/utils */ \"./node_modules/next/dist/shared/lib/utils.js\");\n\nvar _portal = __webpack_require__(/*! ./portal */ \"./node_modules/next/dist/client/portal/index.js\");\n\nvar _headManager = _interopRequireDefault(__webpack_require__(/*! ./head-manager */ \"./node_modules/next/dist/client/head-manager.js\"));\n\nvar _pageLoader = _interopRequireDefault(__webpack_require__(/*! ./page-loader */ \"./node_modules/next/dist/client/page-loader.js\"));\n\nvar _performanceRelayer = _interopRequireDefault(__webpack_require__(/*! ./performance-relayer */ \"./node_modules/next/dist/client/performance-relayer.js\"));\n\nvar _routeAnnouncer = __webpack_require__(/*! ./route-announcer */ \"./node_modules/next/dist/client/route-announcer.js\");\n\nvar _router1 = __webpack_require__(/*! ./router */ \"./node_modules/next/dist/client/router.js\");\n\nvar _isError = _interopRequireDefault(__webpack_require__(/*! ../lib/is-error */ \"./node_modules/next/dist/lib/is-error.js\"));\n\nvar _vitals = __webpack_require__(/*! ./vitals */ \"./node_modules/next/dist/client/vitals.js\");\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n return newObj;\n }\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nvar data = JSON.parse(document.getElementById('__NEXT_DATA__').textContent);\nwindow.__NEXT_DATA__ = data;\nvar version = \"12.0.4\";\nexports.version = version;\n\nvar looseToArray = function looseToArray(input) {\n return [].slice.call(input);\n};\n\nvar hydrateProps = data.props,\n hydrateErr = data.err,\n page = data.page,\n query = data.query,\n buildId = data.buildId,\n assetPrefix = data.assetPrefix,\n runtimeConfig = data.runtimeConfig,\n dynamicIds = data.dynamicIds,\n isFallback = data.isFallback,\n locale = data.locale,\n locales = data.locales,\n domainLocales = data.domainLocales,\n isPreview = data.isPreview,\n rsc = data.rsc;\nvar defaultLocale = data.defaultLocale;\nvar prefix = assetPrefix || ''; // With dynamic assetPrefix it's no longer possible to set assetPrefix at the build time\n// So, this is how we do it in the client side at runtime\n\n__webpack_require__.p = \"\".concat(prefix, \"/_next/\") //eslint-disable-line\n; // Initialize next/config with the environment configuration\n\n(0, _runtimeConfig).setConfig({\n serverRuntimeConfig: {},\n publicRuntimeConfig: runtimeConfig || {}\n});\nvar asPath = (0, _utils).getURL(); // make sure not to attempt stripping basePath for 404s\n\nif ((0, _router).hasBasePath(asPath)) {\n asPath = (0, _router).delBasePath(asPath);\n}\n\nif (false) { var detectedDomain, localePathResult, parsedAs, _require4, formatUrl, _require3, parseRelativeUrl, _require2, detectDomainLocale, _require, normalizeLocalePath; }\n\nif (data.scriptLoader) {\n var _require5 = __webpack_require__(/*! ./script */ \"./node_modules/next/dist/client/script.js\"),\n initScriptLoader = _require5.initScriptLoader;\n\n initScriptLoader(data.scriptLoader);\n}\n\nvar pageLoader = new _pageLoader[\"default\"](buildId, prefix);\n\nvar register = function register(_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n r = _ref2[0],\n f = _ref2[1];\n\n return pageLoader.routeLoader.onEntrypoint(r, f);\n};\n\nif (window.__NEXT_P) {\n // Defer page registration for another tick. This will increase the overall\n // latency in hydrating the page, but reduce the total blocking time.\n window.__NEXT_P.map(function (p) {\n return setTimeout(function () {\n return register(p);\n }, 0);\n });\n}\n\nwindow.__NEXT_P = [];\nwindow.__NEXT_P.push = register;\nvar headManager = (0, _headManager)[\"default\"]();\nvar appElement = document.getElementById('__next');\n\nvar _lastRenderReject;\n\nvar webpackHMR;\nvar router;\nexports.router = router;\nvar CachedApp, onPerfEntry;\n\nheadManager.getIsSsr = function () {\n return router.isSsr;\n};\n\nvar Container = /*#__PURE__*/function (_react$default$Compon) {\n _inherits(Container, _react$default$Compon);\n\n var _super = _createSuper(Container);\n\n function Container() {\n _classCallCheck(this, Container);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Container, [{\n key: \"componentDidCatch\",\n value: function componentDidCatch(componentErr, info) {\n this.props.fn(componentErr, info);\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.scrollToHash(); // We need to replace the router state if:\n // - the page was (auto) exported and has a query string or search (hash)\n // - it was auto exported and is a dynamic route (to provide params)\n // - if it is a client-side skeleton (fallback render)\n\n if (router.isSsr && // We don't update for 404 requests as this can modify\n // the asPath unexpectedly e.g. adding basePath when\n // it wasn't originally present\n page !== '/404' && page !== '/_error' && (isFallback || data.nextExport && ((0, _isDynamic).isDynamicRoute(router.pathname) || location.search || false) || hydrateProps && hydrateProps.__N_SSG && (location.search || false))) {\n // update query on mount for exported pages\n router.replace(router.pathname + '?' + String((0, _querystring).assign((0, _querystring).urlQueryToSearchParams(router.query), new URLSearchParams(location.search))), asPath, {\n // @ts-ignore\n // WARNING: `_h` is an internal option for handing Next.js\n // client-side hydration. Your app should _never_ use this property.\n // It may change at any time without notice.\n _h: 1,\n // Fallback pages must trigger the data fetch, so the transition is\n // not shallow.\n // Other pages (strictly updating query) happens shallowly, as data\n // requirements would already be present.\n shallow: !isFallback\n });\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.scrollToHash();\n }\n }, {\n key: \"scrollToHash\",\n value: function scrollToHash() {\n var _location = location,\n hash = _location.hash;\n hash = hash && hash.substring(1);\n if (!hash) return;\n var el = document.getElementById(hash);\n if (!el) return; // If we call scrollIntoView() in here without a setTimeout\n // it won't scroll properly.\n\n setTimeout(function () {\n return el.scrollIntoView();\n }, 0);\n }\n }, {\n key: \"render\",\n value: function render() {\n if (false) {} else {\n var _require6 = __webpack_require__(/*! @next/react-dev-overlay/lib/client */ \"./node_modules/@next/react-dev-overlay/lib/client.js\"),\n ReactDevOverlay = _require6.ReactDevOverlay;\n\n return /*#__PURE__*/_react[\"default\"].createElement(ReactDevOverlay, null, this.props.children);\n }\n }\n }]);\n\n return Container;\n}(_react[\"default\"].Component);\n\nvar emitter = (0, _mitt)[\"default\"]();\nexports.emitter = emitter;\nvar CachedComponent;\n\nfunction _initNext() {\n _initNext = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var opts,\n initialErr,\n appEntrypoint,\n app,\n mod,\n exportedReportWebVitals,\n pageEntrypoint,\n _require7,\n isValidElementType,\n _require8,\n getNodeError,\n renderCtx,\n _args = arguments;\n\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n opts = _args.length > 0 && _args[0] !== undefined ? _args[0] : {};\n\n // This makes sure this specific lines are removed in production\n if (true) {\n webpackHMR = opts.webpackHMR;\n }\n\n initialErr = hydrateErr;\n _context.prev = 3;\n _context.next = 6;\n return pageLoader.routeLoader.whenEntrypoint('/_app');\n\n case 6:\n appEntrypoint = _context.sent;\n\n if (!('error' in appEntrypoint)) {\n _context.next = 9;\n break;\n }\n\n throw appEntrypoint.error;\n\n case 9:\n app = appEntrypoint.component, mod = appEntrypoint.exports;\n CachedApp = app;\n exportedReportWebVitals = mod && mod.reportWebVitals;\n\n onPerfEntry = function onPerfEntry(_ref3) {\n var id = _ref3.id,\n name = _ref3.name,\n startTime = _ref3.startTime,\n value = _ref3.value,\n duration = _ref3.duration,\n entryType = _ref3.entryType,\n entries = _ref3.entries;\n // Combines timestamp with random number for unique ID\n var uniqueID = \"\".concat(Date.now(), \"-\").concat(Math.floor(Math.random() * (9000000000000 - 1)) + 1000000000000);\n var perfStartEntry;\n\n if (entries && entries.length) {\n perfStartEntry = entries[0].startTime;\n }\n\n var webVitals = {\n id: id || uniqueID,\n name: name,\n startTime: startTime || perfStartEntry,\n value: value == null ? duration : value,\n label: entryType === 'mark' || entryType === 'measure' ? 'custom' : 'web-vital'\n };\n exportedReportWebVitals === null || exportedReportWebVitals === void 0 ? void 0 : exportedReportWebVitals(webVitals);\n (0, _vitals).trackWebVitalMetric(webVitals);\n };\n\n if (!( true && hydrateErr)) {\n _context.next = 17;\n break;\n }\n\n _context.t0 = {\n error: hydrateErr\n };\n _context.next = 20;\n break;\n\n case 17:\n _context.next = 19;\n return pageLoader.routeLoader.whenEntrypoint(page);\n\n case 19:\n _context.t0 = _context.sent;\n\n case 20:\n pageEntrypoint = _context.t0;\n\n if (!('error' in pageEntrypoint)) {\n _context.next = 23;\n break;\n }\n\n throw pageEntrypoint.error;\n\n case 23:\n CachedComponent = pageEntrypoint.component;\n\n if (false) {}\n\n _require7 = __webpack_require__(/*! react-is */ \"./node_modules/react-is/index.js\"), isValidElementType = _require7.isValidElementType;\n\n if (isValidElementType(CachedComponent)) {\n _context.next = 28;\n break;\n }\n\n throw new Error(\"The default export is not a React Component in page: \\\"\".concat(page, \"\\\"\"));\n\n case 28:\n _context.next = 33;\n break;\n\n case 30:\n _context.prev = 30;\n _context.t1 = _context[\"catch\"](3);\n // This catches errors like throwing in the top level of a module\n initialErr = (0, _isError)[\"default\"](_context.t1) ? _context.t1 : new Error(_context.t1 + '');\n\n case 33:\n if (true) {\n _require8 = __webpack_require__(/*! @next/react-dev-overlay/lib/client */ \"./node_modules/@next/react-dev-overlay/lib/client.js\"), getNodeError = _require8.getNodeError; // Server-side runtime errors need to be re-thrown on the client-side so\n // that the overlay is rendered.\n\n if (initialErr) {\n if (initialErr === hydrateErr) {\n setTimeout(function () {\n var error;\n\n try {\n // Generate a new error object. We `throw` it because some browsers\n // will set the `stack` when thrown, and we want to ensure ours is\n // not overridden when we re-throw it below.\n throw new Error(initialErr.message);\n } catch (e) {\n error = e;\n }\n\n error.name = initialErr.name;\n error.stack = initialErr.stack; // Errors from the middleware are reported as client-side errors\n // since the middleware is compiled using the client compiler\n\n if ('middleware' in hydrateErr) {\n throw error;\n }\n\n var node = getNodeError(error);\n throw node;\n });\n } else {\n setTimeout(function () {\n throw initialErr;\n });\n }\n }\n }\n\n if (!window.__NEXT_PRELOADREADY) {\n _context.next = 37;\n break;\n }\n\n _context.next = 37;\n return window.__NEXT_PRELOADREADY(dynamicIds);\n\n case 37:\n exports.router = router = (0, _router1).createRouter(page, query, asPath, {\n initialProps: hydrateProps,\n pageLoader: pageLoader,\n App: CachedApp,\n Component: CachedComponent,\n wrapApp: wrapApp,\n err: initialErr,\n isFallback: Boolean(isFallback),\n subscription: function subscription(info, App, scroll) {\n return render(Object.assign({}, info, {\n App: App,\n scroll: scroll\n }));\n },\n locale: locale,\n locales: locales,\n defaultLocale: defaultLocale,\n domainLocales: domainLocales,\n isPreview: isPreview\n });\n renderCtx = {\n App: CachedApp,\n initial: true,\n Component: CachedComponent,\n props: hydrateProps,\n err: initialErr\n };\n\n if (true) {\n _context.next = 44;\n break;\n }\n\n render(renderCtx);\n return _context.abrupt(\"return\", emitter);\n\n case 44:\n return _context.abrupt(\"return\", {\n emitter: emitter,\n renderCtx: renderCtx\n });\n\n case 45:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[3, 30]]);\n }));\n return _initNext.apply(this, arguments);\n}\n\nfunction initNext() {\n return _initNext.apply(this, arguments);\n}\n\nfunction _render() {\n _render = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(renderingProps) {\n var renderErr;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (!renderingProps.err) {\n _context2.next = 4;\n break;\n }\n\n _context2.next = 3;\n return renderError(renderingProps);\n\n case 3:\n return _context2.abrupt(\"return\");\n\n case 4:\n _context2.prev = 4;\n _context2.next = 7;\n return doRender(renderingProps);\n\n case 7:\n _context2.next = 17;\n break;\n\n case 9:\n _context2.prev = 9;\n _context2.t0 = _context2[\"catch\"](4);\n renderErr = _context2.t0 instanceof Error ? _context2.t0 : new Error(_context2.t0 + ''); // bubble up cancelation errors\n\n if (!renderErr.cancelled) {\n _context2.next = 14;\n break;\n }\n\n throw renderErr;\n\n case 14:\n if (true) {\n // Ensure this error is displayed in the overlay in development\n setTimeout(function () {\n throw renderErr;\n });\n }\n\n _context2.next = 17;\n return renderError(_objectSpread({}, renderingProps, {\n err: renderErr\n }));\n\n case 17:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, null, [[4, 9]]);\n }));\n return _render.apply(this, arguments);\n}\n\nfunction render(renderingProps) {\n return _render.apply(this, arguments);\n}\n\nfunction renderError(renderErrorProps) {\n var App = renderErrorProps.App,\n err = renderErrorProps.err; // In development runtime errors are caught by our overlay\n // In production we catch runtime errors using componentDidCatch which will trigger renderError\n\n if (true) {\n // A Next.js rendering runtime error is always unrecoverable\n // FIXME: let's make this recoverable (error in GIP client-transition)\n webpackHMR.onUnrecoverableError(); // We need to render an empty <App> so that the `<ReactDevOverlay>` can\n // render itself.\n\n return doRender({\n App: function App() {\n return null;\n },\n props: {},\n Component: function Component() {\n return null;\n },\n styleSheets: []\n });\n } // Make sure we log the error to the console, otherwise users can't track down issues.\n\n\n console.error(err);\n console.error(\"A client-side exception has occurred, see here for more info: https://nextjs.org/docs/messages/client-side-exception-occurred\");\n return pageLoader.loadPage('/_error').then(function (_ref4) {\n var ErrorComponent = _ref4.page,\n styleSheets = _ref4.styleSheets;\n return (lastAppProps === null || lastAppProps === void 0 ? void 0 : lastAppProps.Component) === ErrorComponent ? __webpack_require__.e(/*! import() */ \"node_modules_next_dist_pages__error_js\").then(__webpack_require__.t.bind(__webpack_require__, /*! ../pages/_error */ \"./node_modules/next/dist/pages/_error.js\", 23)).then(function (m) {\n return {\n ErrorComponent: m[\"default\"],\n styleSheets: []\n };\n }) : {\n ErrorComponent: ErrorComponent,\n styleSheets: styleSheets\n };\n }).then(function (_ref5) {\n var ErrorComponent = _ref5.ErrorComponent,\n styleSheets = _ref5.styleSheets;\n // In production we do a normal render with the `ErrorComponent` as component.\n // If we've gotten here upon initial render, we can use the props from the server.\n // Otherwise, we need to call `getInitialProps` on `App` before mounting.\n var AppTree = wrapApp(App);\n var appCtx = {\n Component: ErrorComponent,\n AppTree: AppTree,\n router: router,\n ctx: {\n err: err,\n pathname: page,\n query: query,\n asPath: asPath,\n AppTree: AppTree\n }\n };\n return Promise.resolve(renderErrorProps.props ? renderErrorProps.props : (0, _utils).loadGetInitialProps(App, appCtx)).then(function (initProps) {\n return doRender(_objectSpread({}, renderErrorProps, {\n err: err,\n Component: ErrorComponent,\n styleSheets: styleSheets,\n props: initProps\n }));\n });\n });\n}\n\nvar reactRoot = null; // On initial render a hydrate should always happen\n\nvar shouldHydrate = true;\n\nfunction renderReactElement(domEl, fn) {\n // mark start of hydrate/render\n if (_utils.ST) {\n performance.mark('beforeRender');\n }\n\n var reactEl = fn(shouldHydrate ? markHydrateComplete : markRenderComplete);\n\n if (false) {} else {\n // The check for `.hydrate` is there to support React alternatives like preact\n if (shouldHydrate) {\n _reactDom[\"default\"].hydrate(reactEl, domEl);\n\n shouldHydrate = false;\n } else {\n _reactDom[\"default\"].render(reactEl, domEl);\n }\n }\n}\n\nfunction markHydrateComplete() {\n if (!_utils.ST) return;\n performance.mark('afterHydrate') // mark end of hydration\n ;\n performance.measure('Next.js-before-hydration', 'navigationStart', 'beforeRender');\n performance.measure('Next.js-hydration', 'beforeRender', 'afterHydrate');\n\n if (onPerfEntry) {\n performance.getEntriesByName('Next.js-hydration').forEach(onPerfEntry);\n }\n\n clearMarks();\n}\n\nfunction markRenderComplete() {\n if (!_utils.ST) return;\n performance.mark('afterRender') // mark end of render\n ;\n var navStartEntries = performance.getEntriesByName('routeChange', 'mark');\n if (!navStartEntries.length) return;\n performance.measure('Next.js-route-change-to-render', navStartEntries[0].name, 'beforeRender');\n performance.measure('Next.js-render', 'beforeRender', 'afterRender');\n\n if (onPerfEntry) {\n performance.getEntriesByName('Next.js-render').forEach(onPerfEntry);\n performance.getEntriesByName('Next.js-route-change-to-render').forEach(onPerfEntry);\n }\n\n clearMarks();\n ['Next.js-route-change-to-render', 'Next.js-render'].forEach(function (measure) {\n return performance.clearMeasures(measure);\n });\n}\n\nfunction clearMarks() {\n ['beforeRender', 'afterHydrate', 'afterRender', 'routeChange'].forEach(function (mark) {\n return performance.clearMarks(mark);\n });\n}\n\nfunction AppContainer(_ref6) {\n var children = _ref6.children;\n return /*#__PURE__*/_react[\"default\"].createElement(Container, {\n fn: function fn(error) {\n return renderError({\n App: CachedApp,\n err: error\n })[\"catch\"](function (err) {\n return console.error('Error rendering page: ', err);\n });\n }\n }, /*#__PURE__*/_react[\"default\"].createElement(_routerContext.RouterContext.Provider, {\n value: (0, _router1).makePublicRouterInstance(router)\n }, /*#__PURE__*/_react[\"default\"].createElement(_headManagerContext.HeadManagerContext.Provider, {\n value: headManager\n }, /*#__PURE__*/_react[\"default\"].createElement(_styledJsx.StyleRegistry, null, children))));\n}\n\n_c = AppContainer;\n\nvar wrapApp = function wrapApp(App) {\n return function (wrappedAppProps) {\n var appProps = _objectSpread({}, wrappedAppProps, {\n Component: CachedComponent,\n err: hydrateErr,\n router: router\n });\n\n return /*#__PURE__*/_react[\"default\"].createElement(AppContainer, null, /*#__PURE__*/_react[\"default\"].createElement(App, Object.assign({}, appProps)));\n };\n};\n\nvar RSCComponent;\n\nif (false) { var RSCWrapper, rscCache, createResponseCache, _s; }\n\nvar lastAppProps;\n\nfunction doRender(input) {\n var App = input.App,\n Component = input.Component,\n props = input.props,\n err = input.err,\n __N_RSC = input.__N_RSC;\n var styleSheets = 'initial' in input ? undefined : input.styleSheets;\n Component = Component || lastAppProps.Component;\n props = props || lastAppProps.props;\n var isRSC = false ? 0 : !!__N_RSC;\n\n var appProps = _objectSpread({}, props, {\n Component: isRSC ? RSCComponent : Component,\n err: err,\n router: router\n }); // lastAppProps has to be set before ReactDom.render to account for ReactDom throwing an error.\n\n\n lastAppProps = appProps;\n var canceled = false;\n var resolvePromise;\n var renderPromise = new Promise(function (resolve, reject) {\n if (_lastRenderReject) {\n _lastRenderReject();\n }\n\n resolvePromise = function resolvePromise() {\n _lastRenderReject = null;\n resolve();\n };\n\n _lastRenderReject = function lastRenderReject() {\n canceled = true;\n _lastRenderReject = null;\n var error = new Error('Cancel rendering route');\n error.cancelled = true;\n reject(error);\n };\n }); // This function has a return type to ensure it doesn't start returning a\n // Promise. It should remain synchronous.\n\n function onStart() {\n if (!styleSheets || // We use `style-loader` in development, so we don't need to do anything\n // unless we're in production:\n true) {\n return false;\n }\n\n var currentStyleTags = looseToArray(document.querySelectorAll('style[data-n-href]'));\n var currentHrefs = new Set(currentStyleTags.map(function (tag) {\n return tag.getAttribute('data-n-href');\n }));\n var noscript = document.querySelector('noscript[data-n-css]');\n var nonce = noscript === null || noscript === void 0 ? void 0 : noscript.getAttribute('data-n-css');\n styleSheets.forEach(function (_ref8) {\n var href = _ref8.href,\n text = _ref8.text;\n\n if (!currentHrefs.has(href)) {\n var styleTag = document.createElement('style');\n styleTag.setAttribute('data-n-href', href);\n styleTag.setAttribute('media', 'x');\n\n if (nonce) {\n styleTag.setAttribute('nonce', nonce);\n }\n\n document.head.appendChild(styleTag);\n styleTag.appendChild(document.createTextNode(text));\n }\n });\n return true;\n }\n\n function onHeadCommit() {\n if ( // We use `style-loader` in development, so we don't need to do anything\n // unless we're in production:\n false) { var referenceNode, idx, currentHrefs, currentStyleTags, desiredHrefs; }\n\n if (input.scroll) {\n window.scrollTo(input.scroll.x, input.scroll.y);\n }\n }\n\n function onRootCommit() {\n resolvePromise();\n }\n\n onStart();\n\n var elem = /*#__PURE__*/_react[\"default\"].createElement(_react[\"default\"].Fragment, null, /*#__PURE__*/_react[\"default\"].createElement(Head, {\n callback: onHeadCommit\n }), /*#__PURE__*/_react[\"default\"].createElement(AppContainer, null, /*#__PURE__*/_react[\"default\"].createElement(App, Object.assign({}, appProps)), /*#__PURE__*/_react[\"default\"].createElement(_portal.Portal, {\n type: \"next-route-announcer\"\n }, /*#__PURE__*/_react[\"default\"].createElement(_routeAnnouncer.RouteAnnouncer, null)))); // We catch runtime errors using componentDidCatch which will trigger renderError\n\n\n renderReactElement(appElement, function (callback) {\n return /*#__PURE__*/_react[\"default\"].createElement(Root, {\n callbacks: [callback, onRootCommit]\n }, true ? /*#__PURE__*/_react[\"default\"].createElement(_react[\"default\"].StrictMode, null, elem) : 0);\n });\n return renderPromise;\n}\n\nfunction Root(_ref10) {\n _s2();\n\n var callbacks = _ref10.callbacks,\n children = _ref10.children;\n\n // We use `useLayoutEffect` to guarantee the callbacks are executed\n // as soon as React flushes the update\n _react[\"default\"].useLayoutEffect(function () {\n return callbacks.forEach(function (callback) {\n return callback();\n });\n }, [callbacks]);\n\n if (undefined) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n _react[\"default\"].useEffect(function () {\n window.__NEXT_HYDRATED = true;\n\n if (window.__NEXT_HYDRATED_CB) {\n window.__NEXT_HYDRATED_CB();\n }\n }, []);\n } // We should ask to measure the Web Vitals after rendering completes so we\n // don't cause any hydration delay:\n\n\n _react[\"default\"].useEffect(function () {\n (0, _performanceRelayer)[\"default\"](onPerfEntry);\n }, []);\n\n return children;\n} // Dummy component that we render as a child of Root so that we can\n// toggle the correct styles before the page is rendered.\n\n\n_s2(Root, \"KDoBXdlwSU+O+uFsByO25XxhKDU=\");\n\n_c2 = Root;\n\nfunction Head(_ref11) {\n _s3();\n\n var callback = _ref11.callback;\n\n // We use `useLayoutEffect` to guarantee the callback is executed\n // as soon as React flushes the update.\n _react[\"default\"].useLayoutEffect(function () {\n return callback();\n }, [callback]);\n\n return null;\n}\n\n_s3(Head, \"n7/vCynhJvM+pLkyL2DMQUF0odM=\");\n\n_c3 = Head;\n\nvar _c, _c2, _c3;\n\n$RefreshReg$(_c, \"AppContainer\");\n$RefreshReg$(_c2, \"Root\");\n$RefreshReg$(_c3, \"Head\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELGdCQUFBLEdBQW1CRSxRQUFuQjtBQUNBRixjQUFBLEdBQWlCRyxNQUFqQjtBQUNBSCxtQkFBQSxHQUFzQkksV0FBdEI7QUFDQUosZUFBQSxHQUFrQkEsY0FBQSxHQUFpQkEsZUFBQSxHQUFrQixLQUFLLENBQTFEOztBQUNBUSxtQkFBTyxDQUFDLDJGQUFELENBQVA7O0FBQ0EsSUFBSUMsTUFBTSxHQUFHQyxzQkFBc0IsQ0FBQ0YsbUJBQU8sQ0FBQyw0Q0FBRCxDQUFSLENBQW5DOztBQUNBLElBQUlHLFNBQVMsR0FBR0Qsc0JBQXNCLENBQUNGLG1CQUFPLENBQUMsb0RBQUQsQ0FBUixDQUF0Qzs7QUFDQSxJQUFJSSxVQUFVLEdBQUdKLG1CQUFPLENBQUMsc0RBQUQsQ0FBeEI7O0FBQ0EsSUFBSUssbUJBQW1CLEdBQUdMLG1CQUFPLENBQUMsdUdBQUQsQ0FBakM7O0FBQ0EsSUFBSU0sS0FBSyxHQUFHSixzQkFBc0IsQ0FBQ0YsbUJBQU8sQ0FBQyx1RUFBRCxDQUFSLENBQWxDOztBQUNBLElBQUlPLGNBQWMsR0FBR1AsbUJBQU8sQ0FBQywyRkFBRCxDQUE1Qjs7QUFDQSxJQUFJUSxPQUFPLEdBQUdSLG1CQUFPLENBQUMseUZBQUQsQ0FBckI7O0FBQ0EsSUFBSVMsVUFBVSxHQUFHVCxtQkFBTyxDQUFDLDZHQUFELENBQXhCOztBQUNBLElBQUlVLFlBQVksR0FBR1YsbUJBQU8sQ0FBQywrR0FBRCxDQUExQjs7QUFDQSxJQUFJVyxjQUFjLEdBQUdYLG1CQUFPLENBQUMsMkZBQUQsQ0FBNUI7O0FBQ0EsSUFBSVksTUFBTSxHQUFHWixtQkFBTyxDQUFDLHlFQUFELENBQXBCOztBQUNBLElBQUlhLE9BQU8sR0FBR2IsbUJBQU8s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QTs7QUFBQSxNQUFiQyxRQUFhLFVBQWJBLFFBQWE7O0FBQ3pCO0FBQ0E7QUFDQWpVLEVBQUFBLE1BQU0sV0FBTixDQUFleVUsZUFBZixDQUErQjtBQUFBLFdBQUlSLFFBQVEsRUFBWjtBQUFBLEdBQS9CLEVBQ0UsQ0FDRUEsUUFERixDQURGOztBQUlBLFNBQU8sSUFBUDtBQUNIOztJQVJRRDs7TUFBQUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvaW5kZXguanM/NDZjYiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuaW5pdE5leHQgPSBpbml0TmV4dDtcbmV4cG9ydHMucmVuZGVyID0gcmVuZGVyO1xuZXhwb3J0cy5yZW5kZXJFcnJvciA9IHJlbmRlckVycm9yO1xuZXhwb3J0cy5lbWl0dGVyID0gZXhwb3J0cy5yb3V0ZXIgPSBleHBvcnRzLnZlcnNpb24gPSB2b2lkIDA7XG5yZXF1aXJlKFwiQG5leHQvcG9seWZpbGwtbW9kdWxlXCIpO1xudmFyIF9yZWFjdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJlYWN0XCIpKTtcbnZhciBfcmVhY3REb20gPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyZWFjdC1kb21cIikpO1xudmFyIF9zdHlsZWRKc3ggPSByZXF1aXJlKFwic3R5bGVkLWpzeFwiKTtcbnZhciBfaGVhZE1hbmFnZXJDb250ZXh0ID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvaGVhZC1tYW5hZ2VyLWNvbnRleHRcIik7XG52YXIgX21pdHQgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL21pdHRcIikpO1xudmFyIF9yb3V0ZXJDb250ZXh0ID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyLWNvbnRleHRcIik7XG52YXIgX3JvdXRlciA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3JvdXRlci9yb3V0ZXJcIik7XG52YXIgX2lzRHluYW1pYyA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9pcy1keW5hbWljXCIpO1xudmFyIF9xdWVyeXN0cmluZyA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9xdWVyeXN0cmluZ1wiKTtcbnZhciBfcnVudGltZUNvbmZpZyA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3J1bnRpbWUtY29uZmlnXCIpO1xudmFyIF91dGlscyA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3V0aWxzXCIpO1xudmFyIF9wb3J0YWwgPSByZXF1aXJlKFwiLi9wb3J0YWxcIik7XG52YXIgX2hlYWRNYW5hZ2VyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9oZWFkLW1hbmFnZXJcIikpO1xudmFyIF9wYWdlTG9hZGVyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9wYWdlLWxvYWRlclwiKSk7XG52YXIgX3BlcmZvcm1hbmNlUmVsYXllciA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vcGVyZm9ybWFuY2UtcmVsYXllclwiKSk7XG52YXIgX3JvdXRlQW5ub3VuY2VyID0gcmVxdWlyZShcIi4vcm91dGUtYW5ub3VuY2VyXCIpO1xudmFyIF9yb3V0ZXIxID0gcmVxdWlyZShcIi4vcm91dGVyXCIpO1xudmFyIF9pc0Vycm9yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vbGliL2lzLWVycm9yXCIpKTtcbnZhciBfdml0YWxzID0gcmVxdWlyZShcIi4vdml0YWxzXCIpO1xuZnVuY3Rpb24gYXN5bmNHZW5lcmF0b3JTdGVwKGdlbiwgcmVzb2x2ZSwgcmVqZWN0LCBfbmV4dCwgX3Rocm93LCBrZXksIGFyZykge1xuICAgIHRyeSB7XG4gICAgICAgIHZhciBpbmZvID0gZ2VuW2tleV0oYXJnKTtcbiAgICAgICAgdmFyIHZhbHVlID0gaW5mby52YWx1ZTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChpbmZvLmRvbmUpIHtcbiAgICAgICAgcmVzb2x2ZSh2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKHZhbHVlKS50aGVuKF9uZXh0LCBfdGhyb3cpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIF9hc3luY1RvR2VuZXJhdG9yKGZuKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgc2VsZiA9IHRoaXMsIGFyZ3MgPSBhcmd1bWVudHM7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgICAgIHZhciBnZW4gPSBmbi5hcHBseShzZWxmLCBhcmdzKTtcbiAgICAgICAgICAgIGZ1bmN0aW9uIF9uZXh0KHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgYXN5bmNHZW5lcmF0b3JTdGVwKGdlbiwgcmVzb2x2ZSwgcmVqZWN0LCBfbmV4dCwgX3Rocm93LCBcIm5leHRcIiwgdmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZnVuY3Rpb24gX3Rocm93KGVycikge1xuICAgICAgICAgICAgICAgIGFzeW5jR2VuZXJhdG9yU3RlcChnZW4sIHJlc29sdmUsIHJlamVjdCwgX25leHQsIF90aHJvdywgXCJ0aHJvd1wiLCBlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgX25leHQodW5kZWZpbmVkKTtcbiAgICAgICAgfSk7XG4gICAgfTtcbn1cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHtcbiAgICBpZiAoa2V5IGluIG9iaikge1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHtcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgICAgICB3cml0YWJsZTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBvYmpba2V5XSA9IHZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gb2JqO1xufVxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7XG4gICAgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkge1xuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBuZXdPYmogPSB7XG4gICAgICAgIH07XG4gICAgICAgIGlmIChvYmogIT0gbnVsbCkge1xuICAgICAgICAgICAgZm9yKHZhciBrZXkgaW4gb2JqKXtcbiAgICAgICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiB7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGlmIChkZXNjLmdldCB8fCBkZXNjLnNldCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld09ialtrZXldID0gb2JqW2tleV07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbmV3T2JqLmRlZmF1bHQgPSBvYmo7XG4gICAgICAgIHJldHVybiBuZXdPYmo7XG4gICAgfVxufVxuZnVuY3Rpb24gX29iamVjdFNwcmVhZCh0YXJnZXQpIHtcbiAgICBmb3IodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXSAhPSBudWxsID8gYXJndW1lbnRzW2ldIDoge1xuICAgICAgICB9O1xuICAgICAgICB2YXIgb3duS2V5cyA9IE9iamVjdC5rZXlzKHNvdXJjZSk7XG4gICAgICAgIGlmICh0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICBvd25LZXlzID0gb3duS2V5cy5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzb3VyY2UpLmZpbHRlcihmdW5jdGlvbihzeW0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzb3VyY2UsIHN5bSkuZW51bWVyYWJsZTtcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgfVxuICAgICAgICBvd25LZXlzLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7XG4gICAgICAgICAgICBfZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHNvdXJjZVtrZXldKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB0YXJnZXQ7XG59XG5jb25zdCBkYXRhID0gSlNPTi5wYXJzZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnX19ORVhUX0RBVEFfXycpLnRleHRDb250ZW50KTtcbndpbmRvdy5fX05FWFRfREFUQV9fID0gZGF0YTtcbmNvbnN0IHZlcnNpb24gPSBcIjEyLjAuNFwiO1xuZXhwb3J0cy52ZXJzaW9uID0gdmVyc2lvbjtcbmNvbnN0IGxvb3NlVG9BcnJheSA9IChpbnB1dCk9PltdLnNsaWNlLmNhbGwoaW5wdXQpXG47XG5jb25zdCB7IHByb3BzOiBoeWRyYXRlUHJvcHMgLCBlcnI6IGh5ZHJhdGVFcnIgLCBwYWdlICwgcXVlcnkgLCBidWlsZElkICwgYXNzZXRQcmVmaXggLCBydW50aW1lQ29uZmlnICwgZHluYW1pY0lkcyAsIGlzRmFsbGJhY2sgLCBsb2NhbGUgLCBsb2NhbGVzICwgZG9tYWluTG9jYWxlcyAsIGlzUHJldmlldyAsIHJzYyAsICB9ID0gZGF0YTtcbmxldCB7IGRlZmF1bHRMb2NhbGUgIH0gPSBkYXRhO1xuY29uc3QgcHJlZml4ID0gYXNzZXRQcmVmaXggfHwgJyc7XG4vLyBXaXRoIGR5bmFtaWMgYXNzZXRQcmVmaXggaXQncyBubyBsb25nZXIgcG9zc2libGUgdG8gc2V0IGFzc2V0UHJlZml4IGF0IHRoZSBidWlsZCB0aW1lXG4vLyBTbywgdGhpcyBpcyBob3cgd2UgZG8gaXQgaW4gdGhlIGNsaWVudCBzaWRlIGF0IHJ1bnRpbWVcbl9fd2VicGFja19wdWJsaWNfcGF0aF9fID0gYCR7cHJlZml4fS9fbmV4dC9gIC8vZXNsaW50LWRpc2FibGUtbGluZVxuO1xuLy8gSW5pdGlhbGl6ZSBuZXh0L2NvbmZpZyB3aXRoIHRoZSBlbnZpcm9ubWVudCBjb25maWd1cmF0aW9uXG4oMCwgX3J1bnRpbWVDb25maWcpLnNldENvbmZpZyh7XG4gICAgc2VydmVyUnVudGltZUNvbmZpZzoge1xuICAgIH0sXG4gICAgcHVibGljUnVudGltZUNvbmZpZzogcnVudGltZUNvbmZpZyB8fCB7XG4gICAgfVxufSk7XG5sZXQgYXNQYXRoID0gKDAsIF91dGlscykuZ2V0VVJMKCk7XG4vLyBtYWtlIHN1cmUgbm90IHRvIGF0dGVtcHQgc3RyaXBwaW5nIGJhc2VQYXRoIGZvciA0MDRzXG5pZiAoKDAsIF9yb3V0ZXIpLmhhc0Jhc2VQYXRoKGFzUGF0aCkpIHtcbiAgICBhc1BhdGggPSAoMCwgX3JvdXRlcikuZGVsQmFzZVBhdGgoYXNQYXRoKTtcbn1cbmlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgY29uc3QgeyBub3JtYWxpemVMb2NhbGVQYXRoICB9ID0gcmVxdWlyZSgnLi4vc2hhcmVkL2xpYi9pMThuL25vcm1hbGl6ZS1sb2NhbGUtcGF0aCcpO1xuICAgIGNvbnN0IHsgZGV0ZWN0RG9tYWluTG9jYWxlICB9ID0gcmVxdWlyZSgnLi4vc2hhcmVkL2xpYi9pMThuL2RldGVjdC1kb21haW4tbG9jYWxlJyk7XG4gICAgY29uc3QgeyBwYXJzZVJlbGF0aXZlVXJsICB9ID0gcmVxdWlyZSgnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGFyc2UtcmVsYXRpdmUtdXJsJyk7XG4gICAgY29uc3QgeyBmb3JtYXRVcmwgIH0gPSByZXF1aXJlKCcuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9mb3JtYXQtdXJsJyk7XG4gICAgaWYgKGxvY2FsZXMpIHtcbiAgICAgICAgY29uc3QgcGFyc2VkQXMgPSBwYXJzZVJlbGF0aXZlVXJsKGFzUGF0aCk7XG4gICAgICAgIGNvbnN0IGxvY2FsZVBhdGhSZXN1bHQgPSBub3JtYWxpemVMb2NhbGVQYXRoKHBhcnNlZEFzLnBhdGhuYW1lLCBsb2NhbGVzKTtcbiAgICAgICAgaWYgKGxvY2FsZVBhdGhSZXN1bHQuZGV0ZWN0ZWRMb2NhbGUpIHtcbiAgICAgICAgICAgIHBhcnNlZEFzLnBhdGhuYW1lID0gbG9jYWxlUGF0aFJlc3VsdC5wYXRobmFtZTtcbiAgICAgICAgICAgIGFzUGF0aCA9IGZvcm1hdFVybChwYXJzZWRBcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBkZXJpdmUgdGhlIGRlZmF1bHQgbG9jYWxlIGlmIGl0IHdhc24ndCBkZXRlY3RlZCBpbiB0aGUgYXNQYXRoXG4gICAgICAgICAgICAvLyBzaW5jZSB3ZSBkb24ndCBwcmVyZW5kZXIgc3RhdGljIHBhZ2VzIHdpdGggYWxsIHBvc3NpYmxlIGRlZmF1bHRcbiAgICAgICAgICAgIC8vIGxvY2FsZXNcbiAgICAgICAgICAgIGRlZmF1bHRMb2NhbGUgPSBsb2NhbGU7XG4gICAgICAgIH1cbiAgICAgICAgLy8gYXR0ZW1wdCBkZXRlY3RpbmcgZGVmYXVsdCBsb2NhbGUgYmFzZWQgb24gaG9zdG5hbWVcbiAgICAgICAgY29uc3QgZGV0ZWN0ZWREb21haW4gPSBkZXRlY3REb21haW5Mb2NhbGUocHJvY2Vzcy5lbnYuX19ORVhUX0kxOE5fRE9NQUlOUywgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lKTtcbiAgICAgICAgLy8gVE9ETzogaW52ZXN0aWdhdGUgaWYgZGVmYXVsdExvY2FsZSBuZWVkcyB0byBiZSBwb3B1bGF0ZWQgYWZ0ZXJcbiAgICAgICAgLy8gaHlkcmF0aW9uIHRvIHByZXZlbnQgbWlzbWF0Y2hlZCByZW5kZXJzXG4gICAgICAgIGlmIChkZXRlY3RlZERvbWFpbikge1xuICAgICAgICAgICAgZGVmYXVsdExvY2FsZSA9IGRldGVjdGVkRG9tYWluLmRlZmF1bHRMb2NhbGU7XG4gICAgICAgIH1cbiAgICB9XG59XG5pZiAoZGF0YS5zY3JpcHRMb2FkZXIpIHtcbiAgICBjb25zdCB7IGluaXRTY3JpcHRMb2FkZXIgIH0gPSByZXF1aXJlKCcuL3NjcmlwdCcpO1xuICAgIGluaXRTY3JpcHRMb2FkZXIoZGF0YS5zY3JpcHRMb2FkZXIpO1xufVxuY29uc3QgcGFnZUxvYWRlciA9IG5ldyBfcGFnZUxvYWRlci5kZWZhdWx0KGJ1aWxkSWQsIHByZWZpeCk7XG5jb25zdCByZWdpc3RlciA9IChbciwgZl0pPT5wYWdlTG9hZGVyLnJvdXRlTG9hZGVyLm9uRW50cnlwb2ludChyLCBmKVxuO1xuaWYgKHdpbmRvdy5fX05FWFRfUCkge1xuICAgIC8vIERlZmVyIHBhZ2UgcmVnaXN0cmF0aW9uIGZvciBhbm90aGVyIHRpY2suIFRoaXMgd2lsbCBpbmNyZWFzZSB0aGUgb3ZlcmFsbFxuICAgIC8vIGxhdGVuY3kgaW4gaHlkcmF0aW5nIHRoZSBwYWdlLCBidXQgcmVkdWNlIHRoZSB0b3RhbCBibG9ja2luZyB0aW1lLlxuICAgIHdpbmRvdy5fX05FWFRfUC5tYXAoKHApPT5zZXRUaW1lb3V0KCgpPT5yZWdpc3RlcihwKVxuICAgICAgICAsIDApXG4gICAgKTtcbn1cbndpbmRvdy5fX05FWFRfUCA9IFtdO1xud2luZG93Ll9fTkVYVF9QLnB1c2ggPSByZWdpc3RlcjtcbmNvbnN0IGhlYWRNYW5hZ2VyID0gKDAsIF9oZWFkTWFuYWdlcikuZGVmYXVsdCgpO1xuY29uc3QgYXBwRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdfX25leHQnKTtcbmxldCBsYXN0UmVuZGVyUmVqZWN0O1xubGV0IHdlYnBhY2tITVI7XG5sZXQgcm91dGVyO1xuZXhwb3J0cy5yb3V0ZXIgPSByb3V0ZXI7XG5sZXQgQ2FjaGVkQXBwLCBvblBlcmZFbnRyeTtcbmhlYWRNYW5hZ2VyLmdldElzU3NyID0gKCk9PntcbiAgICByZXR1cm4gcm91dGVyLmlzU3NyO1xufTtcbmNsYXNzIENvbnRhaW5lciBleHRlbmRzIF9yZWFjdC5kZWZhdWx0LkNvbXBvbmVudCB7XG4gICAgY29tcG9uZW50RGlkQ2F0Y2goY29tcG9uZW50RXJyLCBpbmZvKSB7XG4gICAgICAgIHRoaXMucHJvcHMuZm4oY29tcG9uZW50RXJyLCBpbmZvKTtcbiAgICB9XG4gICAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICAgIHRoaXMuc2Nyb2xsVG9IYXNoKCk7XG4gICAgICAgIC8vIFdlIG5lZWQgdG8gcmVwbGFjZSB0aGUgcm91dGVyIHN0YXRlIGlmOlxuICAgICAgICAvLyAtIHRoZSBwYWdlIHdhcyAoYXV0bykgZXhwb3J0ZWQgYW5kIGhhcyBhIHF1ZXJ5IHN0cmluZyBvciBzZWFyY2ggKGhhc2gpXG4gICAgICAgIC8vIC0gaXQgd2FzIGF1dG8gZXhwb3J0ZWQgYW5kIGlzIGEgZHluYW1pYyByb3V0ZSAodG8gcHJvdmlkZSBwYXJhbXMpXG4gICAgICAgIC8vIC0gaWYgaXQgaXMgYSBjbGllbnQtc2lkZSBza2VsZXRvbiAoZmFsbGJhY2sgcmVuZGVyKVxuICAgICAgICBpZiAocm91dGVyLmlzU3NyICYmIC8vIFdlIGRvbid0IHVwZGF0ZSBmb3IgNDA0IHJlcXVlc3RzIGFzIHRoaXMgY2FuIG1vZGlmeVxuICAgICAgICAvLyB0aGUgYXNQYXRoIHVuZXhwZWN0ZWRseSBlLmcuIGFkZGluZyBiYXNlUGF0aCB3aGVuXG4gICAgICAgIC8vIGl0IHdhc24ndCBvcmlnaW5hbGx5IHByZXNlbnRcbiAgICAgICAgcGFnZSAhPT0gJy80MDQnICYmIHBhZ2UgIT09ICcvX2Vycm9yJyAmJiAoaXNGYWxsYmFjayB8fCBkYXRhLm5leHRFeHBvcnQgJiYgKCgwLCBfaXNEeW5hbWljKS5pc0R5bmFtaWNSb3V0ZShyb3V0ZXIucGF0aG5hbWUpIHx8IGxvY2F0aW9uLnNlYXJjaCB8fCBwcm9jZXNzLmVudi5fX05FWFRfSEFTX1JFV1JJVEVTKSB8fCBoeWRyYXRlUHJvcHMgJiYgaHlkcmF0ZVByb3BzLl9fTl9TU0cgJiYgKGxvY2F0aW9uLnNlYXJjaCB8fCBwcm9jZXNzLmVudi5fX05FWFRfSEFTX1JFV1JJVEVTKSkpIHtcbiAgICAgICAgICAgIC8vIHVwZGF0ZSBxdWVyeSBvbiBtb3VudCBmb3IgZXhwb3J0ZWQgcGFnZXNcbiAgICAgICAgICAgIHJvdXRlci5yZXBsYWNlKHJvdXRlci5wYXRobmFtZSArICc/JyArIFN0cmluZygoMCwgX3F1ZXJ5c3RyaW5nKS5hc3NpZ24oKDAsIF9xdWVyeXN0cmluZykudXJsUXVlcnlUb1NlYXJjaFBhcmFtcyhyb3V0ZXIucXVlcnkpLCBuZXcgVVJMU2VhcmNoUGFyYW1zKGxvY2F0aW9uLnNlYXJjaCkpKSwgYXNQYXRoLCB7XG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIC8vIFdBUk5JTkc6IGBfaGAgaXMgYW4gaW50ZXJuYWwgb3B0aW9uIGZvciBoYW5kaW5nIE5leHQuanNcbiAgICAgICAgICAgICAgICAvLyBjbGllbnQtc2lkZSBoeWRyYXRpb24uIFlvdXIgYXBwIHNob3VsZCBfbmV2ZXJfIHVzZSB0aGlzIHByb3BlcnR5LlxuICAgICAgICAgICAgICAgIC8vIEl0IG1heSBjaGFuZ2UgYXQgYW55IHRpbWUgd2l0aG91dCBub3RpY2UuXG4gICAgICAgICAgICAgICAgX2g6IDEsXG4gICAgICAgICAgICAgICAgLy8gRmFsbGJhY2sgcGFnZXMgbXVzdCB0cmlnZ2VyIHRoZSBkYXRhIGZldGNoLCBzbyB0aGUgdHJhbnNpdGlvbiBpc1xuICAgICAgICAgICAgICAgIC8vIG5vdCBzaGFsbG93LlxuICAgICAgICAgICAgICAgIC8vIE90aGVyIHBhZ2VzIChzdHJpY3RseSB1cGRhdGluZyBxdWVyeSkgaGFwcGVucyBzaGFsbG93bHksIGFzIGRhdGFcbiAgICAgICAgICAgICAgICAvLyByZXF1aXJlbWVudHMgd291bGQgYWxyZWFkeSBiZSBwcmVzZW50LlxuICAgICAgICAgICAgICAgIHNoYWxsb3c6ICFpc0ZhbGxiYWNrXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb21wb25lbnREaWRVcGRhdGUoKSB7XG4gICAgICAgIHRoaXMuc2Nyb2xsVG9IYXNoKCk7XG4gICAgfVxuICAgIHNjcm9sbFRvSGFzaCgpIHtcbiAgICAgICAgbGV0IHsgaGFzaCAgfSA9IGxvY2F0aW9uO1xuICAgICAgICBoYXNoID0gaGFzaCAmJiBoYXNoLnN1YnN0cmluZygxKTtcbiAgICAgICAgaWYgKCFoYXNoKSByZXR1cm47XG4gICAgICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaGFzaCk7XG4gICAgICAgIGlmICghZWwpIHJldHVybjtcbiAgICAgICAgLy8gSWYgd2UgY2FsbCBzY3JvbGxJbnRvVmlldygpIGluIGhlcmUgd2l0aG91dCBhIHNldFRpbWVvdXRcbiAgICAgICAgLy8gaXQgd29uJ3Qgc2Nyb2xsIHByb3Blcmx5LlxuICAgICAgICBzZXRUaW1lb3V0KCgpPT5lbC5zY3JvbGxJbnRvVmlldygpXG4gICAgICAgICwgMCk7XG4gICAgfVxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb3BzLmNoaWxkcmVuO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgeyBSZWFjdERldk92ZXJsYXkgIH0gPSByZXF1aXJlKCdAbmV4dC9yZWFjdC1kZXYtb3ZlcmxheS9saWIvY2xpZW50Jyk7XG4gICAgICAgICAgICByZXR1cm4oLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFJlYWN0RGV2T3ZlcmxheSwgbnVsbCwgdGhpcy5wcm9wcy5jaGlsZHJlbikpO1xuICAgICAgICB9XG4gICAgfVxufVxuY29uc3QgZW1pdHRlciA9ICgwLCBfbWl0dCkuZGVmYXVsdCgpO1xuZXhwb3J0cy5lbWl0dGVyID0gZW1pdHRlcjtcbmxldCBDYWNoZWRDb21wb25lbnQ7XG5mdW5jdGlvbiBfaW5pdE5leHQoKSB7XG4gICAgX2luaXROZXh0ID0gX2FzeW5jVG9HZW5lcmF0b3IoZnVuY3Rpb24qKG9wdHMgPSB7XG4gICAgfSkge1xuICAgICAgICAvLyBUaGlzIG1ha2VzIHN1cmUgdGhpcyBzcGVjaWZpYyBsaW5lcyBhcmUgcmVtb3ZlZCBpbiBwcm9kdWN0aW9uXG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgd2VicGFja0hNUiA9IG9wdHMud2VicGFja0hNUjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgaW5pdGlhbEVyciA9IGh5ZHJhdGVFcnI7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBhcHBFbnRyeXBvaW50ID0geWllbGQgcGFnZUxvYWRlci5yb3V0ZUxvYWRlci53aGVuRW50cnlwb2ludCgnL19hcHAnKTtcbiAgICAgICAgICAgIGlmICgnZXJyb3InIGluIGFwcEVudHJ5cG9pbnQpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBhcHBFbnRyeXBvaW50LmVycm9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgeyBjb21wb25lbnQ6IGFwcCAsIGV4cG9ydHM6IG1vZCAgfSA9IGFwcEVudHJ5cG9pbnQ7XG4gICAgICAgICAgICBDYWNoZWRBcHAgPSBhcHA7XG4gICAgICAgICAgICBjb25zdCBleHBvcnRlZFJlcG9ydFdlYlZpdGFscyA9IG1vZCAmJiBtb2QucmVwb3J0V2ViVml0YWxzO1xuICAgICAgICAgICAgb25QZXJmRW50cnkgPSAoeyBpZCAsIG5hbWUgLCBzdGFydFRpbWUgLCB2YWx1ZSAsIGR1cmF0aW9uICwgZW50cnlUeXBlICwgZW50cmllcyAgfSk9PntcbiAgICAgICAgICAgICAgICAvLyBDb21iaW5lcyB0aW1lc3RhbXAgd2l0aCByYW5kb20gbnVtYmVyIGZvciB1bmlxdWUgSURcbiAgICAgICAgICAgICAgICBjb25zdCB1bmlxdWVJRCA9IGAke0RhdGUubm93KCl9LSR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKDkwMDAwMDAwMDAwMDAgLSAxKSkgKyAxMDAwMDAwMDAwMDAwfWA7XG4gICAgICAgICAgICAgICAgbGV0IHBlcmZTdGFydEVudHJ5O1xuICAgICAgICAgICAgICAgIGlmIChlbnRyaWVzICYmIGVudHJpZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHBlcmZTdGFydEVudHJ5ID0gZW50cmllc1swXS5zdGFydFRpbWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHdlYlZpdGFscyA9IHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6IGlkIHx8IHVuaXF1ZUlELFxuICAgICAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgICAgICBzdGFydFRpbWU6IHN0YXJ0VGltZSB8fCBwZXJmU3RhcnRFbnRyeSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHZhbHVlID09IG51bGwgPyBkdXJhdGlvbiA6IHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogZW50cnlUeXBlID09PSAnbWFyaycgfHwgZW50cnlUeXBlID09PSAnbWVhc3VyZScgPyAnY3VzdG9tJyA6ICd3ZWItdml0YWwnXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBleHBvcnRlZFJlcG9ydFdlYlZpdGFscyA9PT0gbnVsbCB8fCBleHBvcnRlZFJlcG9ydFdlYlZpdGFscyA9PT0gdm9pZCAwID8gdm9pZCAwIDogZXhwb3J0ZWRSZXBvcnRXZWJWaXRhbHMod2ViVml0YWxzKTtcbiAgICAgICAgICAgICAgICAoMCwgX3ZpdGFscykudHJhY2tXZWJWaXRhbE1ldHJpYyh3ZWJWaXRhbHMpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0IHBhZ2VFbnRyeXBvaW50ID0gLy8gVGhlIGRldiBzZXJ2ZXIgZmFpbHMgdG8gc2VydmUgc2NyaXB0IGFzc2V0cyB3aGVuIHRoZXJlJ3MgYSBoeWRyYXRpb25cbiAgICAgICAgICAgIC8vIGVycm9yLCBzbyB3ZSBuZWVkIHRvIHNraXAgd2FpdGluZyBmb3IgdGhlIGVudHJ5cG9pbnQuXG4gICAgICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50JyAmJiBoeWRyYXRlRXJyID8ge1xuICAgICAgICAgICAgICAgIGVycm9yOiBoeWRyYXRlRXJyXG4gICAgICAgICAgICB9IDogeWllbGQgcGFnZUxvYWRlci5yb3V0ZUxvYWRlci53aGVuRW50cnlwb2ludChwYWdlKTtcbiAgICAgICAgICAgIGlmICgnZXJyb3InIGluIHBhZ2VFbnRyeXBvaW50KSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgcGFnZUVudHJ5cG9pbnQuZXJyb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBDYWNoZWRDb21wb25lbnQgPSBwYWdlRW50cnlwb2ludC5jb21wb25lbnQ7XG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgaXNWYWxpZEVsZW1lbnRUeXBlICB9ID0gcmVxdWlyZSgncmVhY3QtaXMnKTtcbiAgICAgICAgICAgICAgICBpZiAoIWlzVmFsaWRFbGVtZW50VHlwZShDYWNoZWRDb21wb25lbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlIGRlZmF1bHQgZXhwb3J0IGlzIG5vdCBhIFJlYWN0IENvbXBvbmVudCBpbiBwYWdlOiBcIiR7cGFnZX1cImApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIC8vIFRoaXMgY2F0Y2hlcyBlcnJvcnMgbGlrZSB0aHJvd2luZyBpbiB0aGUgdG9wIGxldmVsIG9mIGEgbW9kdWxlXG4gICAgICAgICAgICBpbml0aWFsRXJyID0gKDAsIF9pc0Vycm9yKS5kZWZhdWx0KGVycm9yKSA/IGVycm9yIDogbmV3IEVycm9yKGVycm9yICsgJycpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgY29uc3QgeyBnZXROb2RlRXJyb3IgIH0gPSByZXF1aXJlKCdAbmV4dC9yZWFjdC1kZXYtb3ZlcmxheS9saWIvY2xpZW50Jyk7XG4gICAgICAgICAgICAvLyBTZXJ2ZXItc2lkZSBydW50aW1lIGVycm9ycyBuZWVkIHRvIGJlIHJlLXRocm93biBvbiB0aGUgY2xpZW50LXNpZGUgc29cbiAgICAgICAgICAgIC8vIHRoYXQgdGhlIG92ZXJsYXkgaXMgcmVuZGVyZWQuXG4gICAgICAgICAgICBpZiAoaW5pdGlhbEVycikge1xuICAgICAgICAgICAgICAgIGlmIChpbml0aWFsRXJyID09PSBoeWRyYXRlRXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCk9PntcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBlcnJvcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gR2VuZXJhdGUgYSBuZXcgZXJyb3Igb2JqZWN0LiBXZSBgdGhyb3dgIGl0IGJlY2F1c2Ugc29tZSBicm93c2Vyc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdpbGwgc2V0IHRoZSBgc3RhY2tgIHdoZW4gdGhyb3duLCBhbmQgd2Ugd2FudCB0byBlbnN1cmUgb3VycyBpc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vdCBvdmVycmlkZGVuIHdoZW4gd2UgcmUtdGhyb3cgaXQgYmVsb3cuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGluaXRpYWxFcnIubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSBlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IubmFtZSA9IGluaXRpYWxFcnIubmFtZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yLnN0YWNrID0gaW5pdGlhbEVyci5zdGFjaztcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEVycm9ycyBmcm9tIHRoZSBtaWRkbGV3YXJlIGFyZSByZXBvcnRlZCBhcyBjbGllbnQtc2lkZSBlcnJvcnNcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNpbmNlIHRoZSBtaWRkbGV3YXJlIGlzIGNvbXBpbGVkIHVzaW5nIHRoZSBjbGllbnQgY29tcGlsZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgnbWlkZGxld2FyZScgaW4gaHlkcmF0ZUVycikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgbm9kZSA9IGdldE5vZGVFcnJvcihlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBub2RlO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBpbml0aWFsRXJyO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHdpbmRvdy5fX05FWFRfUFJFTE9BRFJFQURZKSB7XG4gICAgICAgICAgICB5aWVsZCB3aW5kb3cuX19ORVhUX1BSRUxPQURSRUFEWShkeW5hbWljSWRzKTtcbiAgICAgICAgfVxuICAgICAgICBleHBvcnRzLnJvdXRlciA9IHJvdXRlciA9ICgwLCBfcm91dGVyMSkuY3JlYXRlUm91dGVyKHBhZ2UsIHF1ZXJ5LCBhc1BhdGgsIHtcbiAgICAgICAgICAgIGluaXRpYWxQcm9wczogaHlkcmF0ZVByb3BzLFxuICAgICAgICAgICAgcGFnZUxvYWRlcixcbiAgICAgICAgICAgIEFwcDogQ2FjaGVkQXBwLFxuICAgICAgICAgICAgQ29tcG9uZW50OiBDYWNoZWRDb21wb25lbnQsXG4gICAgICAgICAgICB3cmFwQXBwLFxuICAgICAgICAgICAgZXJyOiBpbml0aWFsRXJyLFxuICAgICAgICAgICAgaXNGYWxsYmFjazogQm9vbGVhbihpc0ZhbGxiYWNrKSxcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbjogKGluZm8sIEFwcCwgc2Nyb2xsKT0+cmVuZGVyKE9iamVjdC5hc3NpZ24oe1xuICAgICAgICAgICAgICAgIH0sIGluZm8sIHtcbiAgICAgICAgICAgICAgICAgICAgQXBwLFxuICAgICAgICAgICAgICAgICAgICBzY3JvbGxcbiAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICxcbiAgICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICAgIGxvY2FsZXMsXG4gICAgICAgICAgICBkZWZhdWx0TG9jYWxlLFxuICAgICAgICAgICAgZG9tYWluTG9jYWxlcyxcbiAgICAgICAgICAgIGlzUHJldmlld1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgcmVuZGVyQ3R4ID0ge1xuICAgICAgICAgICAgQXBwOiBDYWNoZWRBcHAsXG4gICAgICAgICAgICBpbml0aWFsOiB0cnVlLFxuICAgICAgICAgICAgQ29tcG9uZW50OiBDYWNoZWRDb21wb25lbnQsXG4gICAgICAgICAgICBwcm9wczogaHlkcmF0ZVByb3BzLFxuICAgICAgICAgICAgZXJyOiBpbml0aWFsRXJyXG4gICAgICAgIH07XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICByZW5kZXIocmVuZGVyQ3R4KTtcbiAgICAgICAgICAgIHJldHVybiBlbWl0dGVyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBlbWl0dGVyLFxuICAgICAgICAgICAgICAgIHJlbmRlckN0eFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBfaW5pdE5leHQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cbmZ1bmN0aW9uIGluaXROZXh0KCkge1xuICAgIHJldHVybiBfaW5pdE5leHQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cbmZ1bmN0aW9uIF9yZW5kZXIoKSB7XG4gICAgX3JlbmRlciA9IF9hc3luY1RvR2VuZXJhdG9yKGZ1bmN0aW9uKihyZW5kZXJpbmdQcm9wcykge1xuICAgICAgICBpZiAocmVuZGVyaW5nUHJvcHMuZXJyKSB7XG4gICAgICAgICAgICB5aWVsZCByZW5kZXJFcnJvcihyZW5kZXJpbmdQcm9wcyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHlpZWxkIGRvUmVuZGVyKHJlbmRlcmluZ1Byb3BzKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICBjb25zdCByZW5kZXJFcnIgPSBlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyciA6IG5ldyBFcnJvcihlcnIgKyAnJyk7XG4gICAgICAgICAgICAvLyBidWJibGUgdXAgY2FuY2VsYXRpb24gZXJyb3JzXG4gICAgICAgICAgICBpZiAocmVuZGVyRXJyLmNhbmNlbGxlZCkge1xuICAgICAgICAgICAgICAgIHRocm93IHJlbmRlckVycjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgICAgIC8vIEVuc3VyZSB0aGlzIGVycm9yIGlzIGRpc3BsYXllZCBpbiB0aGUgb3ZlcmxheSBpbiBkZXZlbG9wbWVudFxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCk9PntcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVuZGVyRXJyO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgeWllbGQgcmVuZGVyRXJyb3IoX29iamVjdFNwcmVhZCh7XG4gICAgICAgICAgICB9LCByZW5kZXJpbmdQcm9wcywge1xuICAgICAgICAgICAgICAgIGVycjogcmVuZGVyRXJyXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gX3JlbmRlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufVxuZnVuY3Rpb24gcmVuZGVyKHJlbmRlcmluZ1Byb3BzKSB7XG4gICAgcmV0dXJuIF9yZW5kZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cbmZ1bmN0aW9uIHJlbmRlckVycm9yKHJlbmRlckVycm9yUHJvcHMpIHtcbiAgICBjb25zdCB7IEFwcCAsIGVyciAgfSA9IHJlbmRlckVycm9yUHJvcHM7XG4gICAgLy8gSW4gZGV2ZWxvcG1lbnQgcnVudGltZSBlcnJvcnMgYXJlIGNhdWdodCBieSBvdXIgb3ZlcmxheVxuICAgIC8vIEluIHByb2R1Y3Rpb24gd2UgY2F0Y2ggcnVudGltZSBlcnJvcnMgdXNpbmcgY29tcG9uZW50RGlkQ2F0Y2ggd2hpY2ggd2lsbCB0cmlnZ2VyIHJlbmRlckVycm9yXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgLy8gQSBOZXh0LmpzIHJlbmRlcmluZyBydW50aW1lIGVycm9yIGlzIGFsd2F5cyB1bnJlY292ZXJhYmxlXG4gICAgICAgIC8vIEZJWE1FOiBsZXQncyBtYWtlIHRoaXMgcmVjb3ZlcmFibGUgKGVycm9yIGluIEdJUCBjbGllbnQtdHJhbnNpdGlvbilcbiAgICAgICAgd2VicGFja0hNUi5vblVucmVjb3ZlcmFibGVFcnJvcigpO1xuICAgICAgICAvLyBXZSBuZWVkIHRvIHJlbmRlciBhbiBlbXB0eSA8QXBwPiBzbyB0aGF0IHRoZSBgPFJlYWN0RGV2T3ZlcmxheT5gIGNhblxuICAgICAgICAvLyByZW5kZXIgaXRzZWxmLlxuICAgICAgICByZXR1cm4gZG9SZW5kZXIoe1xuICAgICAgICAgICAgQXBwOiAoKT0+bnVsbFxuICAgICAgICAgICAgLFxuICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBDb21wb25lbnQ6ICgpPT5udWxsXG4gICAgICAgICAgICAsXG4gICAgICAgICAgICBzdHlsZVNoZWV0czogW11cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8vIE1ha2Ugc3VyZSB3ZSBsb2cgdGhlIGVycm9yIHRvIHRoZSBjb25zb2xlLCBvdGhlcndpc2UgdXNlcnMgY2FuJ3QgdHJhY2sgZG93biBpc3N1ZXMuXG4gICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgIGNvbnNvbGUuZXJyb3IoYEEgY2xpZW50LXNpZGUgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZCwgc2VlIGhlcmUgZm9yIG1vcmUgaW5mbzogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvY2xpZW50LXNpZGUtZXhjZXB0aW9uLW9jY3VycmVkYCk7XG4gICAgcmV0dXJuIHBhZ2VMb2FkZXIubG9hZFBhZ2UoJy9fZXJyb3InKS50aGVuKCh7IHBhZ2U6IEVycm9yQ29tcG9uZW50ICwgc3R5bGVTaGVldHMgIH0pPT57XG4gICAgICAgIHJldHVybiAobGFzdEFwcFByb3BzID09PSBudWxsIHx8IGxhc3RBcHBQcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogbGFzdEFwcFByb3BzLkNvbXBvbmVudCkgPT09IEVycm9yQ29tcG9uZW50ID8gaW1wb3J0KCcuLi9wYWdlcy9fZXJyb3InKS50aGVuKChtKT0+KHtcbiAgICAgICAgICAgICAgICBFcnJvckNvbXBvbmVudDogbS5kZWZhdWx0LFxuICAgICAgICAgICAgICAgIHN0eWxlU2hlZXRzOiBbXVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKSA6IHtcbiAgICAgICAgICAgIEVycm9yQ29tcG9uZW50LFxuICAgICAgICAgICAgc3R5bGVTaGVldHNcbiAgICAgICAgfTtcbiAgICB9KS50aGVuKCh7IEVycm9yQ29tcG9uZW50ICwgc3R5bGVTaGVldHMgIH0pPT57XG4gICAgICAgIC8vIEluIHByb2R1Y3Rpb24gd2UgZG8gYSBub3JtYWwgcmVuZGVyIHdpdGggdGhlIGBFcnJvckNvbXBvbmVudGAgYXMgY29tcG9uZW50LlxuICAgICAgICAvLyBJZiB3ZSd2ZSBnb3R0ZW4gaGVyZSB1cG9uIGluaXRpYWwgcmVuZGVyLCB3ZSBjYW4gdXNlIHRoZSBwcm9wcyBmcm9tIHRoZSBzZXJ2ZXIuXG4gICAgICAgIC8vIE90aGVyd2lzZSwgd2UgbmVlZCB0byBjYWxsIGBnZXRJbml0aWFsUHJvcHNgIG9uIGBBcHBgIGJlZm9yZSBtb3VudGluZy5cbiAgICAgICAgY29uc3QgQXBwVHJlZSA9IHdyYXBBcHAoQXBwKTtcbiAgICAgICAgY29uc3QgYXBwQ3R4ID0ge1xuICAgICAgICAgICAgQ29tcG9uZW50OiBFcnJvckNvbXBvbmVudCxcbiAgICAgICAgICAgIEFwcFRyZWUsXG4gICAgICAgICAgICByb3V0ZXIsXG4gICAgICAgICAgICBjdHg6IHtcbiAgICAgICAgICAgICAgICBlcnIsXG4gICAgICAgICAgICAgICAgcGF0aG5hbWU6IHBhZ2UsXG4gICAgICAgICAgICAgICAgcXVlcnksXG4gICAgICAgICAgICAgICAgYXNQYXRoLFxuICAgICAgICAgICAgICAgIEFwcFRyZWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZW5kZXJFcnJvclByb3BzLnByb3BzID8gcmVuZGVyRXJyb3JQcm9wcy5wcm9wcyA6ICgwLCBfdXRpbHMpLmxvYWRHZXRJbml0aWFsUHJvcHMoQXBwLCBhcHBDdHgpKS50aGVuKChpbml0UHJvcHMpPT5kb1JlbmRlcihfb2JqZWN0U3ByZWFkKHtcbiAgICAgICAgICAgIH0sIHJlbmRlckVycm9yUHJvcHMsIHtcbiAgICAgICAgICAgICAgICBlcnIsXG4gICAgICAgICAgICAgICAgQ29tcG9uZW50OiBFcnJvckNvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBzdHlsZVNoZWV0cyxcbiAgICAgICAgICAgICAgICBwcm9wczogaW5pdFByb3BzXG4gICAgICAgICAgICB9KSlcbiAgICAgICAgKTtcbiAgICB9KTtcbn1cbmxldCByZWFjdFJvb3QgPSBudWxsO1xuLy8gT24gaW5pdGlhbCByZW5kZXIgYSBoeWRyYXRlIHNob3VsZCBhbHdheXMgaGFwcGVuXG5sZXQgc2hvdWxkSHlkcmF0ZSA9IHRydWU7XG5mdW5jdGlvbiByZW5kZXJSZWFjdEVsZW1lbnQoZG9tRWwsIGZuKSB7XG4gICAgLy8gbWFyayBzdGFydCBvZiBoeWRyYXRlL3JlbmRlclxuICAgIGlmIChfdXRpbHMuU1QpIHtcbiAgICAgICAgcGVyZm9ybWFuY2UubWFyaygnYmVmb3JlUmVuZGVyJyk7XG4gICAgfVxuICAgIGNvbnN0IHJlYWN0RWwgPSBmbihzaG91bGRIeWRyYXRlID8gbWFya0h5ZHJhdGVDb21wbGV0ZSA6IG1hcmtSZW5kZXJDb21wbGV0ZSk7XG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9SRUFDVF9ST09UKSB7XG4gICAgICAgIGlmICghcmVhY3RSb290KSB7XG4gICAgICAgICAgICAvLyBVbmxpa2Ugd2l0aCBjcmVhdGVSb290LCB5b3UgZG9uJ3QgbmVlZCBhIHNlcGFyYXRlIHJvb3QucmVuZGVyKCkgY2FsbCBoZXJlXG4gICAgICAgICAgICByZWFjdFJvb3QgPSBfcmVhY3REb20uZGVmYXVsdC5oeWRyYXRlUm9vdChkb21FbCwgcmVhY3RFbCk7XG4gICAgICAgICAgICAvLyBUT0RPOiBSZW1vdmUgc2hvdWxkSHlkcmF0ZSB2YXJpYWJsZSB3aGVuIFJlYWN0IDE4IGlzIHN0YWJsZSBhcyBpdCBjYW4gZGVwZW5kIG9uIGByZWFjdFJvb3RgIGV4aXN0aW5nXG4gICAgICAgICAgICBzaG91bGRIeWRyYXRlID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZWFjdFJvb3QucmVuZGVyKHJlYWN0RWwpO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgLy8gVGhlIGNoZWNrIGZvciBgLmh5ZHJhdGVgIGlzIHRoZXJlIHRvIHN1cHBvcnQgUmVhY3QgYWx0ZXJuYXRpdmVzIGxpa2UgcHJlYWN0XG4gICAgICAgIGlmIChzaG91bGRIeWRyYXRlKSB7XG4gICAgICAgICAgICBfcmVhY3REb20uZGVmYXVsdC5oeWRyYXRlKHJlYWN0RWwsIGRvbUVsKTtcbiAgICAgICAgICAgIHNob3VsZEh5ZHJhdGUgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIF9yZWFjdERvbS5kZWZhdWx0LnJlbmRlcihyZWFjdEVsLCBkb21FbCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBtYXJrSHlkcmF0ZUNvbXBsZXRlKCkge1xuICAgIGlmICghX3V0aWxzLlNUKSByZXR1cm47XG4gICAgcGVyZm9ybWFuY2UubWFyaygnYWZ0ZXJIeWRyYXRlJykgLy8gbWFyayBlbmQgb2YgaHlkcmF0aW9uXG4gICAgO1xuICAgIHBlcmZvcm1hbmNlLm1lYXN1cmUoJ05leHQuanMtYmVmb3JlLWh5ZHJhdGlvbicsICduYXZpZ2F0aW9uU3RhcnQnLCAnYmVmb3JlUmVuZGVyJyk7XG4gICAgcGVyZm9ybWFuY2UubWVhc3VyZSgnTmV4dC5qcy1oeWRyYXRpb24nLCAnYmVmb3JlUmVuZGVyJywgJ2FmdGVySHlkcmF0ZScpO1xuICAgIGlmIChvblBlcmZFbnRyeSkge1xuICAgICAgICBwZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlOYW1lKCdOZXh0LmpzLWh5ZHJhdGlvbicpLmZvckVhY2gob25QZXJmRW50cnkpO1xuICAgIH1cbiAgICBjbGVhck1hcmtzKCk7XG59XG5mdW5jdGlvbiBtYXJrUmVuZGVyQ29tcGxldGUoKSB7XG4gICAgaWYgKCFfdXRpbHMuU1QpIHJldHVybjtcbiAgICBwZXJmb3JtYW5jZS5tYXJrKCdhZnRlclJlbmRlcicpIC8vIG1hcmsgZW5kIG9mIHJlbmRlclxuICAgIDtcbiAgICBjb25zdCBuYXZTdGFydEVudHJpZXMgPSBwZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlOYW1lKCdyb3V0ZUNoYW5nZScsICdtYXJrJyk7XG4gICAgaWYgKCFuYXZTdGFydEVudHJpZXMubGVuZ3RoKSByZXR1cm47XG4gICAgcGVyZm9ybWFuY2UubWVhc3VyZSgnTmV4dC5qcy1yb3V0ZS1jaGFuZ2UtdG8tcmVuZGVyJywgbmF2U3RhcnRFbnRyaWVzWzBdLm5hbWUsICdiZWZvcmVSZW5kZXInKTtcbiAgICBwZXJmb3JtYW5jZS5tZWFzdXJlKCdOZXh0LmpzLXJlbmRlcicsICdiZWZvcmVSZW5kZXInLCAnYWZ0ZXJSZW5kZXInKTtcbiAgICBpZiAob25QZXJmRW50cnkpIHtcbiAgICAgICAgcGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5TmFtZSgnTmV4dC5qcy1yZW5kZXInKS5mb3JFYWNoKG9uUGVyZkVudHJ5KTtcbiAgICAgICAgcGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5TmFtZSgnTmV4dC5qcy1yb3V0ZS1jaGFuZ2UtdG8tcmVuZGVyJykuZm9yRWFjaChvblBlcmZFbnRyeSk7XG4gICAgfVxuICAgIGNsZWFyTWFya3MoKTtcbiAgICBbXG4gICAgICAgICdOZXh0LmpzLXJvdXRlLWNoYW5nZS10by1yZW5kZXInLFxuICAgICAgICAnTmV4dC5qcy1yZW5kZXInXG4gICAgXS5mb3JFYWNoKChtZWFzdXJlKT0+cGVyZm9ybWFuY2UuY2xlYXJNZWFzdXJlcyhtZWFzdXJlKVxuICAgICk7XG59XG5mdW5jdGlvbiBjbGVhck1hcmtzKCkge1xuICAgIFtcbiAgICAgICAgJ2JlZm9yZVJlbmRlcicsXG4gICAgICAgICdhZnRlckh5ZHJhdGUnLFxuICAgICAgICAnYWZ0ZXJSZW5kZXInLFxuICAgICAgICAncm91dGVDaGFuZ2UnXG4gICAgXS5mb3JFYWNoKChtYXJrKT0+cGVyZm9ybWFuY2UuY2xlYXJNYXJrcyhtYXJrKVxuICAgICk7XG59XG5mdW5jdGlvbiBBcHBDb250YWluZXIoeyBjaGlsZHJlbiAgfSkge1xuICAgIHJldHVybigvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoQ29udGFpbmVyLCB7XG4gICAgICAgIGZuOiAoZXJyb3IpPT5yZW5kZXJFcnJvcih7XG4gICAgICAgICAgICAgICAgQXBwOiBDYWNoZWRBcHAsXG4gICAgICAgICAgICAgICAgZXJyOiBlcnJvclxuICAgICAgICAgICAgfSkuY2F0Y2goKGVycik9PmNvbnNvbGUuZXJyb3IoJ0Vycm9yIHJlbmRlcmluZyBwYWdlOiAnLCBlcnIpXG4gICAgICAgICAgICApXG4gICAgfSwgLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KF9yb3V0ZXJDb250ZXh0LlJvdXRlckNvbnRleHQuUHJvdmlkZXIsIHtcbiAgICAgICAgdmFsdWU6ICgwLCBfcm91dGVyMSkubWFrZVB1YmxpY1JvdXRlckluc3RhbmNlKHJvdXRlcilcbiAgICB9LCAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoX2hlYWRNYW5hZ2VyQ29udGV4dC5IZWFkTWFuYWdlckNvbnRleHQuUHJvdmlkZXIsIHtcbiAgICAgICAgdmFsdWU6IGhlYWRNYW5hZ2VyXG4gICAgfSwgLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KF9zdHlsZWRKc3guU3R5bGVSZWdpc3RyeSwgbnVsbCwgY2hpbGRyZW4pKSkpKTtcbn1cbmNvbnN0IHdyYXBBcHAgPSAoQXBwKT0+KHdyYXBwZWRBcHBQcm9wcyk9PntcbiAgICAgICAgY29uc3QgYXBwUHJvcHMgPSBfb2JqZWN0U3ByZWFkKHtcbiAgICAgICAgfSwgd3JhcHBlZEFwcFByb3BzLCB7XG4gICAgICAgICAgICBDb21wb25lbnQ6IENhY2hlZENvbXBvbmVudCxcbiAgICAgICAgICAgIGVycjogaHlkcmF0ZUVycixcbiAgICAgICAgICAgIHJvdXRlclxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChBcHBDb250YWluZXIsIG51bGwsIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChBcHAsIE9iamVjdC5hc3NpZ24oe1xuICAgICAgICB9LCBhcHBQcm9wcykpKSk7XG4gICAgfVxuO1xubGV0IFJTQ0NvbXBvbmVudDtcbmlmIChwcm9jZXNzLmVudi5fX05FWFRfUlNDKSB7XG4gICAgZnVuY3Rpb24gY3JlYXRlUmVzcG9uc2VDYWNoZSgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXAoKTtcbiAgICB9XG4gICAgY29uc3QgcnNjQ2FjaGUgPSBjcmVhdGVSZXNwb25zZUNhY2hlKCk7XG4gICAgY29uc3QgUlNDV3JhcHBlciA9ICh7IGNhY2hlS2V5ICwgc2VyaWFsaXplZCAsIF9mcmVzaCAgfSk9PntcbiAgICAgICAgY29uc3QgeyBjcmVhdGVGcm9tRmV0Y2ggLCAgfSA9IHJlcXVpcmUoJ25leHQvZGlzdC9jb21waWxlZC9yZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2snKTtcbiAgICAgICAgbGV0IHJlc3BvbnNlID0gcnNjQ2FjaGUuZ2V0KGNhY2hlS2V5KTtcbiAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gY2FjaGUsIG9yIHRoZXJlIGlzIHNlcmlhbGl6ZWQgZGF0YSBhbHJlYWR5XG4gICAgICAgIGlmICghcmVzcG9uc2UpIHtcbiAgICAgICAgICAgIHJlc3BvbnNlID0gY3JlYXRlRnJvbUZldGNoKHNlcmlhbGl6ZWQgPyAoKCk9PntcbiAgICAgICAgICAgICAgICBjb25zdCB0ID0gbmV3IFRyYW5zZm9ybVN0cmVhbSgpO1xuICAgICAgICAgICAgICAgIHQud3JpdGFibGUuZ2V0V3JpdGVyKCkud3JpdGUobmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKHNlcmlhbGl6ZWQpKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgICAgICAgICAgICAgICAgYm9keTogdC5yZWFkYWJsZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSkoKSA6ICgoKT0+e1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlYXJjaCA9IGxvY2F0aW9uLnNlYXJjaDtcbiAgICAgICAgICAgICAgICBjb25zdCBmbGlnaHRSZXFVcmwgPSBsb2NhdGlvbi5wYXRobmFtZSArIHNlYXJjaCArIChzZWFyY2ggPyAnJl9fZmxpZ2h0X18nIDogJz9fX2ZsaWdodF9fJyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZldGNoKGZsaWdodFJlcVVybCk7XG4gICAgICAgICAgICB9KSgpKTtcbiAgICAgICAgICAgIHJzY0NhY2hlLnNldChjYWNoZUtleSwgcmVzcG9uc2UpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJvb3QgPSByZXNwb25zZS5yZWFkUm9vdCgpO1xuICAgICAgICByZXR1cm4gcm9vdDtcbiAgICB9O1xuICAgIFJTQ0NvbXBvbmVudCA9IChwcm9wcyk9PntcbiAgICAgICAgY29uc3QgeyBhc1BhdGg6IGNhY2hlS2V5ICB9ID0gKDAsIF9yb3V0ZXIxKS51c2VSb3V0ZXIoKTtcbiAgICAgICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChfcmVhY3QuZGVmYXVsdC5TdXNwZW5zZSwge1xuICAgICAgICAgICAgZmFsbGJhY2s6IG51bGxcbiAgICAgICAgfSwgLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFJTQ1dyYXBwZXIsIHtcbiAgICAgICAgICAgIGNhY2hlS2V5OiBjYWNoZUtleSxcbiAgICAgICAgICAgIHNlcmlhbGl6ZWQ6IHByb3BzLl9fZmxpZ2h0X3NlcmlhbGl6ZWRfXyxcbiAgICAgICAgICAgIF9mcmVzaDogcHJvcHMuX19mbGlnaHRfZnJlc2hfX1xuICAgICAgICB9KSkpO1xuICAgIH07XG59XG5sZXQgbGFzdEFwcFByb3BzO1xuZnVuY3Rpb24gZG9SZW5kZXIoaW5wdXQpIHtcbiAgICBsZXQgeyBBcHAgLCBDb21wb25lbnQgLCBwcm9wcyAsIGVyciAsIF9fTl9SU0MgIH0gPSBpbnB1dDtcbiAgICBsZXQgc3R5bGVTaGVldHMgPSAnaW5pdGlhbCcgaW4gaW5wdXQgPyB1bmRlZmluZWQgOiBpbnB1dC5zdHlsZVNoZWV0cztcbiAgICBDb21wb25lbnQgPSBDb21wb25lbnQgfHwgbGFzdEFwcFByb3BzLkNvbXBvbmVudDtcbiAgICBwcm9wcyA9IHByb3BzIHx8IGxhc3RBcHBQcm9wcy5wcm9wcztcbiAgICBjb25zdCBpc1JTQyA9IHByb2Nlc3MuZW52Ll9fTkVYVF9SU0MgJiYgJ2luaXRpYWwnIGluIGlucHV0ID8gISFyc2MgOiAhIV9fTl9SU0M7XG4gICAgY29uc3QgYXBwUHJvcHMgPSBfb2JqZWN0U3ByZWFkKHtcbiAgICB9LCBwcm9wcywge1xuICAgICAgICBDb21wb25lbnQ6IGlzUlNDID8gUlNDQ29tcG9uZW50IDogQ29tcG9uZW50LFxuICAgICAgICBlcnIsXG4gICAgICAgIHJvdXRlclxuICAgIH0pO1xuICAgIC8vIGxhc3RBcHBQcm9wcyBoYXMgdG8gYmUgc2V0IGJlZm9yZSBSZWFjdERvbS5yZW5kZXIgdG8gYWNjb3VudCBmb3IgUmVhY3REb20gdGhyb3dpbmcgYW4gZXJyb3IuXG4gICAgbGFzdEFwcFByb3BzID0gYXBwUHJvcHM7XG4gICAgbGV0IGNhbmNlbGVkID0gZmFsc2U7XG4gICAgbGV0IHJlc29sdmVQcm9taXNlO1xuICAgIGNvbnN0IHJlbmRlclByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KT0+e1xuICAgICAgICBpZiAobGFzdFJlbmRlclJlamVjdCkge1xuICAgICAgICAgICAgbGFzdFJlbmRlclJlamVjdCgpO1xuICAgICAgICB9XG4gICAgICAgIHJlc29sdmVQcm9taXNlID0gKCk9PntcbiAgICAgICAgICAgIGxhc3RSZW5kZXJSZWplY3QgPSBudWxsO1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICB9O1xuICAgICAgICBsYXN0UmVuZGVyUmVqZWN0ID0gKCk9PntcbiAgICAgICAgICAgIGNhbmNlbGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGxhc3RSZW5kZXJSZWplY3QgPSBudWxsO1xuICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoJ0NhbmNlbCByZW5kZXJpbmcgcm91dGUnKTtcbiAgICAgICAgICAgIGVycm9yLmNhbmNlbGxlZCA9IHRydWU7XG4gICAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICB9O1xuICAgIH0pO1xuICAgIC8vIFRoaXMgZnVuY3Rpb24gaGFzIGEgcmV0dXJuIHR5cGUgdG8gZW5zdXJlIGl0IGRvZXNuJ3Qgc3RhcnQgcmV0dXJuaW5nIGFcbiAgICAvLyBQcm9taXNlLiBJdCBzaG91bGQgcmVtYWluIHN5bmNocm9ub3VzLlxuICAgIGZ1bmN0aW9uIG9uU3RhcnQoKSB7XG4gICAgICAgIGlmICghc3R5bGVTaGVldHMgfHwgLy8gV2UgdXNlIGBzdHlsZS1sb2FkZXJgIGluIGRldmVsb3BtZW50LCBzbyB3ZSBkb24ndCBuZWVkIHRvIGRvIGFueXRoaW5nXG4gICAgICAgIC8vIHVubGVzcyB3ZSdyZSBpbiBwcm9kdWN0aW9uOlxuICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY3VycmVudFN0eWxlVGFncyA9IGxvb3NlVG9BcnJheShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdzdHlsZVtkYXRhLW4taHJlZl0nKSk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRIcmVmcyA9IG5ldyBTZXQoY3VycmVudFN0eWxlVGFncy5tYXAoKHRhZyk9PnRhZy5nZXRBdHRyaWJ1dGUoJ2RhdGEtbi1ocmVmJylcbiAgICAgICAgKSk7XG4gICAgICAgIGNvbnN0IG5vc2NyaXB0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcignbm9zY3JpcHRbZGF0YS1uLWNzc10nKTtcbiAgICAgICAgY29uc3Qgbm9uY2UgPSBub3NjcmlwdCA9PT0gbnVsbCB8fCBub3NjcmlwdCA9PT0gdm9pZCAwID8gdm9pZCAwIDogbm9zY3JpcHQuZ2V0QXR0cmlidXRlKCdkYXRhLW4tY3NzJyk7XG4gICAgICAgIHN0eWxlU2hlZXRzLmZvckVhY2goKHsgaHJlZiAsIHRleHQgIH0pPT57XG4gICAgICAgICAgICBpZiAoIWN1cnJlbnRIcmVmcy5oYXMoaHJlZikpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdHlsZVRhZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gICAgICAgICAgICAgICAgc3R5bGVUYWcuc2V0QXR0cmlidXRlKCdkYXRhLW4taHJlZicsIGhyZWYpO1xuICAgICAgICAgICAgICAgIHN0eWxlVGFnLnNldEF0dHJpYnV0ZSgnbWVkaWEnLCAneCcpO1xuICAgICAgICAgICAgICAgIGlmIChub25jZSkge1xuICAgICAgICAgICAgICAgICAgICBzdHlsZVRhZy5zZXRBdHRyaWJ1dGUoJ25vbmNlJywgbm9uY2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0eWxlVGFnKTtcbiAgICAgICAgICAgICAgICBzdHlsZVRhZy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZXh0KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gb25IZWFkQ29tbWl0KCkge1xuICAgICAgICBpZiAoLy8gV2UgdXNlIGBzdHlsZS1sb2FkZXJgIGluIGRldmVsb3BtZW50LCBzbyB3ZSBkb24ndCBuZWVkIHRvIGRvIGFueXRoaW5nXG4gICAgICAgIC8vIHVubGVzcyB3ZSdyZSBpbiBwcm9kdWN0aW9uOlxuICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nICYmIC8vIFdlIGNhbiBza2lwIHRoaXMgZHVyaW5nIGh5ZHJhdGlvbi4gUnVubmluZyBpdCB3b250IGNhdXNlIGFueSBoYXJtLCBidXRcbiAgICAgICAgLy8gd2UgbWF5IGFzIHdlbGwgc2F2ZSB0aGUgQ1BVIGN5Y2xlczpcbiAgICAgICAgc3R5bGVTaGVldHMgJiYgLy8gRW5zdXJlIHRoaXMgcmVuZGVyIHdhcyBub3QgY2FuY2VsZWRcbiAgICAgICAgIWNhbmNlbGVkKSB7XG4gICAgICAgICAgICBjb25zdCBkZXNpcmVkSHJlZnMgPSBuZXcgU2V0KHN0eWxlU2hlZXRzLm1hcCgocyk9PnMuaHJlZlxuICAgICAgICAgICAgKSk7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50U3R5bGVUYWdzID0gbG9vc2VUb0FycmF5KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3N0eWxlW2RhdGEtbi1ocmVmXScpKTtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRIcmVmcyA9IGN1cnJlbnRTdHlsZVRhZ3MubWFwKCh0YWcpPT50YWcuZ2V0QXR0cmlidXRlKCdkYXRhLW4taHJlZicpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgLy8gVG9nZ2xlIGA8c3R5bGU+YCB0YWdzIG9uIG9yIG9mZiBkZXBlbmRpbmcgb24gaWYgdGhleSdyZSBuZWVkZWQ6XG4gICAgICAgICAgICBmb3IobGV0IGlkeCA9IDA7IGlkeCA8IGN1cnJlbnRIcmVmcy5sZW5ndGg7ICsraWR4KXtcbiAgICAgICAgICAgICAgICBpZiAoZGVzaXJlZEhyZWZzLmhhcyhjdXJyZW50SHJlZnNbaWR4XSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFN0eWxlVGFnc1tpZHhdLnJlbW92ZUF0dHJpYnV0ZSgnbWVkaWEnKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50U3R5bGVUYWdzW2lkeF0uc2V0QXR0cmlidXRlKCdtZWRpYScsICd4Jyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gUmVvcmRlciBzdHlsZXMgaW50byBpbnRlbmRlZCBvcmRlcjpcbiAgICAgICAgICAgIGxldCByZWZlcmVuY2VOb2RlID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcignbm9zY3JpcHRbZGF0YS1uLWNzc10nKTtcbiAgICAgICAgICAgIGlmICgvLyBUaGlzIHNob3VsZCBiZSBhbiBpbnZhcmlhbnQ6XG4gICAgICAgICAgICByZWZlcmVuY2VOb2RlKSB7XG4gICAgICAgICAgICAgICAgc3R5bGVTaGVldHMuZm9yRWFjaCgoeyBocmVmICB9KT0+e1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXRUYWcgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBzdHlsZVtkYXRhLW4taHJlZj1cIiR7aHJlZn1cIl1gKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKC8vIFRoaXMgc2hvdWxkIGJlIGFuIGludmFyaWFudDpcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0VGFnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2VOb2RlLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRhcmdldFRhZywgcmVmZXJlbmNlTm9kZS5uZXh0U2libGluZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2VOb2RlID0gdGFyZ2V0VGFnO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBGaW5hbGx5LCBjbGVhbiB1cCBzZXJ2ZXIgcmVuZGVyZWQgc3R5bGVzaGVldHM6XG4gICAgICAgICAgICBsb29zZVRvQXJyYXkoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnbGlua1tkYXRhLW4tcF0nKSkuZm9yRWFjaCgoZWwpPT57XG4gICAgICAgICAgICAgICAgZWwucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlbCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5wdXQuc2Nyb2xsKSB7XG4gICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oaW5wdXQuc2Nyb2xsLngsIGlucHV0LnNjcm9sbC55KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBvblJvb3RDb21taXQoKSB7XG4gICAgICAgIHJlc29sdmVQcm9taXNlKCk7XG4gICAgfVxuICAgIG9uU3RhcnQoKTtcbiAgICBjb25zdCBlbGVtID0gLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KF9yZWFjdC5kZWZhdWx0LkZyYWdtZW50LCBudWxsLCAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoSGVhZCwge1xuICAgICAgICBjYWxsYmFjazogb25IZWFkQ29tbWl0XG4gICAgfSksIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChBcHBDb250YWluZXIsIG51bGwsIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChBcHAsIE9iamVjdC5hc3NpZ24oe1xuICAgIH0sIGFwcFByb3BzKSksIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChfcG9ydGFsLlBvcnRhbCwge1xuICAgICAgICB0eXBlOiBcIm5leHQtcm91dGUtYW5ub3VuY2VyXCJcbiAgICB9LCAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoX3JvdXRlQW5ub3VuY2VyLlJvdXRlQW5ub3VuY2VyLCBudWxsKSkpKTtcbiAgICAvLyBXZSBjYXRjaCBydW50aW1lIGVycm9ycyB1c2luZyBjb21wb25lbnREaWRDYXRjaCB3aGljaCB3aWxsIHRyaWdnZXIgcmVuZGVyRXJyb3JcbiAgICByZW5kZXJSZWFjdEVsZW1lbnQoYXBwRWxlbWVudCwgKGNhbGxiYWNrKT0+LyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFJvb3QsIHtcbiAgICAgICAgICAgIGNhbGxiYWNrczogW1xuICAgICAgICAgICAgICAgIGNhbGxiYWNrLFxuICAgICAgICAgICAgICAgIG9uUm9vdENvbW1pdFxuICAgICAgICAgICAgXVxuICAgICAgICB9LCBwcm9jZXNzLmVudi5fX05FWFRfU1RSSUNUX01PREUgPyAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoX3JlYWN0LmRlZmF1bHQuU3RyaWN0TW9kZSwgbnVsbCwgZWxlbSkgOiBlbGVtKVxuICAgICk7XG4gICAgcmV0dXJuIHJlbmRlclByb21pc2U7XG59XG5mdW5jdGlvbiBSb290KHsgY2FsbGJhY2tzICwgY2hpbGRyZW4gIH0pIHtcbiAgICAvLyBXZSB1c2UgYHVzZUxheW91dEVmZmVjdGAgdG8gZ3VhcmFudGVlIHRoZSBjYWxsYmFja3MgYXJlIGV4ZWN1dGVkXG4gICAgLy8gYXMgc29vbiBhcyBSZWFjdCBmbHVzaGVzIHRoZSB1cGRhdGVcbiAgICBfcmVhY3QuZGVmYXVsdC51c2VMYXlvdXRFZmZlY3QoKCk9PmNhbGxiYWNrcy5mb3JFYWNoKChjYWxsYmFjayk9PmNhbGxiYWNrKClcbiAgICAgICAgKVxuICAgICwgW1xuICAgICAgICBjYWxsYmFja3NcbiAgICBdKTtcbiAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX1RFU1RfTU9ERSkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgICAgICAgX3JlYWN0LmRlZmF1bHQudXNlRWZmZWN0KCgpPT57XG4gICAgICAgICAgICB3aW5kb3cuX19ORVhUX0hZRFJBVEVEID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmICh3aW5kb3cuX19ORVhUX0hZRFJBVEVEX0NCKSB7XG4gICAgICAgICAgICAgICAgd2luZG93Ll9fTkVYVF9IWURSQVRFRF9DQigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCBbXSk7XG4gICAgfVxuICAgIC8vIFdlIHNob3VsZCBhc2sgdG8gbWVhc3VyZSB0aGUgV2ViIFZpdGFscyBhZnRlciByZW5kZXJpbmcgY29tcGxldGVzIHNvIHdlXG4gICAgLy8gZG9uJ3QgY2F1c2UgYW55IGh5ZHJhdGlvbiBkZWxheTpcbiAgICBfcmVhY3QuZGVmYXVsdC51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgKDAsIF9wZXJmb3JtYW5jZVJlbGF5ZXIpLmRlZmF1bHQob25QZXJmRW50cnkpO1xuICAgIH0sIFtdKTtcbiAgICByZXR1cm4gY2hpbGRyZW47XG59XG4vLyBEdW1teSBjb21wb25lbnQgdGhhdCB3ZSByZW5kZXIgYXMgYSBjaGlsZCBvZiBSb290IHNvIHRoYXQgd2UgY2FuXG4vLyB0b2dnbGUgdGhlIGNvcnJlY3Qgc3R5bGVzIGJlZm9yZSB0aGUgcGFnZSBpcyByZW5kZXJlZC5cbmZ1bmN0aW9uIEhlYWQoeyBjYWxsYmFjayAgfSkge1xuICAgIC8vIFdlIHVzZSBgdXNlTGF5b3V0RWZmZWN0YCB0byBndWFyYW50ZWUgdGhlIGNhbGxiYWNrIGlzIGV4ZWN1dGVkXG4gICAgLy8gYXMgc29vbiBhcyBSZWFjdCBmbHVzaGVzIHRoZSB1cGRhdGUuXG4gICAgX3JlYWN0LmRlZmF1bHQudXNlTGF5b3V0RWZmZWN0KCgpPT5jYWxsYmFjaygpXG4gICAgLCBbXG4gICAgICAgIGNhbGxiYWNrXG4gICAgXSk7XG4gICAgcmV0dXJuIG51bGw7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImluaXROZXh0IiwicmVuZGVyIiwicmVuZGVyRXJyb3IiLCJlbWl0dGVyIiwicm91dGVyIiwidmVyc2lvbiIsInJlcXVpcmUiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3JlYWN0RG9tIiwiX3N0eWxlZEpzeCIsIl9oZWFkTWFuYWdlckNvbnRleHQiLCJfbWl0dCIsIl9yb3V0ZXJDb250ZXh0IiwiX3JvdXRlciIsIl9pc0R5bmFtaWMiLCJfcXVlcnlzdHJpbmciLCJfcnVudGltZUNvbmZpZyIsIl91dGlscyIsIl9wb3J0YWwiLCJfaGVhZE1hbmFnZXIiLCJfcGFnZUxvYWRlciIsIl9wZXJmb3JtYW5jZVJlbGF5ZXIiLCJfcm91dGVBbm5vdW5jZXIiLCJfcm91dGVyMSIsIl9pc0Vycm9yIiwiX3ZpdGFscyIsImFzeW5jR2VuZXJhdG9yU3RlcCIsImdlbiIsInJlc29sdmUiLCJyZWplY3QiLCJfbmV4dCIsIl90aHJvdyIsImtleSIsImFyZyIsImluZm8iLCJlcnJvciIsImRvbmUiLCJQcm9taXNlIiwidGhlbiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiZm4iLCJzZWxmIiwiYXJncyIsImFyZ3VtZW50cyIsImFwcGx5IiwiZXJyIiwidW5kZWZpbmVkIiwiX2RlZmluZVByb3BlcnR5Iiwib2JqIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiX19lc01vZHVsZSIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwibmV3T2JqIiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImdldCIsInNldCIsIl9vYmplY3RTcHJlYWQiLCJ0YXJnZXQiLCJpIiwibGVuZ3RoIiwic291cmNlIiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJjb25jYXQiLCJmaWx0ZXIiLCJzeW0iLCJmb3JFYWNoIiwiZGF0YSIsIkpTT04iLCJwYXJzZSIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJ0ZXh0Q29udGVudCIsIndpbmRvdyIsIl9fTkVYVF9EQVRBX18iLCJsb29zZVRvQXJyYXkiLCJpbnB1dCIsInNsaWNlIiwiaHlkcmF0ZVByb3BzIiwicHJvcHMiLCJoeWRyYXRlRXJyIiwicGFnZSIsInF1ZXJ5IiwiYnVpbGRJZCIsImFzc2V0UHJlZml4IiwicnVudGltZUNvbmZpZyIsImR5bmFtaWNJZHMiLCJpc0ZhbGxiYWNrIiwibG9jYWxlIiwibG9jYWxlcyIsImRvbWFpbkxvY2FsZXMiLCJpc1ByZXZpZXciLCJyc2MiLCJkZWZhdWx0TG9jYWxlIiwicHJlZml4IiwiX193ZWJwYWNrX3B1YmxpY19wYXRoX18iLCJzZXRDb25maWciLCJzZXJ2ZXJSdW50aW1lQ29uZmlnIiwicHVibGljUnVudGltZUNvbmZpZyIsImFzUGF0aCIsImdldFVSTCIsImhhc0Jhc2VQYXRoIiwiZGVsQmFzZVBhdGgiLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX0kxOE5fU1VQUE9SVCIsIm5vcm1hbGl6ZUxvY2FsZVBhdGgiLCJkZXRlY3REb21haW5Mb2NhbGUiLCJwYXJzZVJlbGF0aXZlVXJsIiwiZm9ybWF0VXJsIiwicGFyc2VkQXMiLCJsb2NhbGVQYXRoUmVzdWx0IiwicGF0aG5hbWUiLCJkZXRlY3RlZExvY2FsZSIsImRldGVjdGVkRG9tYWluIiwiX19ORVhUX0kxOE5fRE9NQUlOUyIsImxvY2F0aW9uIiwiaG9zdG5hbWUiLCJzY3JpcHRMb2FkZXIiLCJpbml0U2NyaXB0TG9hZGVyIiwicGFnZUxvYWRlciIsInJlZ2lzdGVyIiwiciIsImYiLCJyb3V0ZUxvYWRlciIsIm9uRW50cnlwb2ludCIsIl9fTkVYVF9QIiwibWFwIiwicCIsInNldFRpbWVvdXQiLCJwdXNoIiwiaGVhZE1hbmFnZXIiLCJhcHBFbGVtZW50IiwibGFzdFJlbmRlclJlamVjdCIsIndlYnBhY2tITVIiLCJDYWNoZWRBcHAiLCJvblBlcmZFbnRyeSIsImdldElzU3NyIiwiaXNTc3IiLCJDb250YWluZXIiLCJjb21wb25lbnRFcnIiLCJzY3JvbGxUb0hhc2giLCJuZXh0RXhwb3J0IiwiaXNEeW5hbWljUm91dGUiLCJzZWFyY2giLCJfX05FWFRfSEFTX1JFV1JJVEVTIiwiX19OX1NTRyIsInJlcGxhY2UiLCJTdHJpbmciLCJhc3NpZ24iLCJ1cmxRdWVyeVRvU2VhcmNoUGFyYW1zIiwiVVJMU2VhcmNoUGFyYW1zIiwiX2giLCJzaGFsbG93IiwiaGFzaCIsInN1YnN0cmluZyIsImVsIiwic2Nyb2xsSW50b1ZpZXciLCJjaGlsZHJlbiIsIlJlYWN0RGV2T3ZlcmxheSIsImNyZWF0ZUVsZW1lbnQiLCJDb21wb25lbnQiLCJDYWNoZWRDb21wb25lbnQiLCJfaW5pdE5leHQiLCJvcHRzIiwiaW5pdGlhbEVyciIsIndoZW5FbnRyeXBvaW50IiwiYXBwRW50cnlwb2ludCIsImFwcCIsImNvbXBvbmVudCIsIm1vZCIsImV4cG9ydGVkUmVwb3J0V2ViVml0YWxzIiwicmVwb3J0V2ViVml0YWxzIiwiaWQiLCJuYW1lIiwic3RhcnRUaW1lIiwiZHVyYXRpb24iLCJlbnRyeVR5cGUiLCJlbnRyaWVzIiwidW5pcXVlSUQiLCJEYXRlIiwibm93IiwiTWF0aCIsImZsb29yIiwicmFuZG9tIiwicGVyZlN0YXJ0RW50cnkiLCJ3ZWJWaXRhbHMiLCJsYWJlbCIsInRyYWNrV2ViVml0YWxNZXRyaWMiLCJwYWdlRW50cnlwb2ludCIsImlzVmFsaWRFbGVtZW50VHlwZSIsIkVycm9yIiwiZ2V0Tm9kZUVycm9yIiwibWVzc2FnZSIsImUiLCJzdGFjayIsIm5vZGUiLCJfX05FWFRfUFJFTE9BRFJFQURZIiwiY3JlYXRlUm91dGVyIiwiaW5pdGlhbFByb3BzIiwiQXBwIiwid3JhcEFwcCIsIkJvb2xlYW4iLCJzdWJzY3JpcHRpb24iLCJzY3JvbGwiLCJyZW5kZXJDdHgiLCJpbml0aWFsIiwiX3JlbmRlciIsInJlbmRlcmluZ1Byb3BzIiwiZG9SZW5kZXIiLCJyZW5kZXJFcnIiLCJjYW5jZWxsZWQiLCJyZW5kZXJFcnJvclByb3BzIiwib25VbnJlY292ZXJhYmxlRXJyb3IiLCJzdHlsZVNoZWV0cyIsImNvbnNvbGUiLCJsb2FkUGFnZSIsIkVycm9yQ29tcG9uZW50IiwibGFzdEFwcFByb3BzIiwibSIsIkFwcFRyZWUiLCJhcHBDdHgiLCJjdHgiLCJsb2FkR2V0SW5pdGlhbFByb3BzIiwiaW5pdFByb3BzIiwicmVhY3RSb290Iiwic2hvdWxkSHlkcmF0ZSIsInJlbmRlclJlYWN0RWxlbWVudCIsImRvbUVsIiwiU1QiLCJwZXJmb3JtYW5jZSIsIm1hcmsiLCJyZWFjdEVsIiwibWFya0h5ZHJhdGVDb21wbGV0ZSIsIm1hcmtSZW5kZXJDb21wbGV0ZSIsIl9fTkVYVF9SRUFDVF9ST09UIiwiaHlkcmF0ZVJvb3QiLCJoeWRyYXRlIiwibWVhc3VyZSIsImdldEVudHJpZXNCeU5hbWUiLCJjbGVhck1hcmtzIiwibmF2U3RhcnRFbnRyaWVzIiwiY2xlYXJNZWFzdXJlcyIsIkFwcENvbnRhaW5lciIsIlJvdXRlckNvbnRleHQiLCJQcm92aWRlciIsIm1ha2VQdWJsaWNSb3V0ZXJJbnN0YW5jZSIsIkhlYWRNYW5hZ2VyQ29udGV4dCIsIlN0eWxlUmVnaXN0cnkiLCJ3cmFwcGVkQXBwUHJvcHMiLCJhcHBQcm9wcyIsIlJTQ0NvbXBvbmVudCIsIl9fTkVYVF9SU0MiLCJjcmVhdGVSZXNwb25zZUNhY2hlIiwiTWFwIiwicnNjQ2FjaGUiLCJSU0NXcmFwcGVyIiwiY2FjaGVLZXkiLCJzZXJpYWxpemVkIiwiX2ZyZXNoIiwiY3JlYXRlRnJvbUZldGNoIiwicmVzcG9uc2UiLCJ0IiwiVHJhbnNmb3JtU3RyZWFtIiwiZ2V0V3JpdGVyIiwid3JpdGUiLCJUZXh0RW5jb2RlciIsImVuY29kZSIsImJvZHkiLCJyZWFkYWJsZSIsImZsaWdodFJlcVVybCIsImZldGNoIiwicm9vdCIsInJlYWRSb290IiwidXNlUm91dGVyIiwiU3VzcGVuc2UiLCJmYWxsYmFjayIsIl9fZmxpZ2h0X3NlcmlhbGl6ZWRfXyIsIl9fZmxpZ2h0X2ZyZXNoX18iLCJfX05fUlNDIiwiaXNSU0MiLCJjYW5jZWxlZCIsInJlc29sdmVQcm9taXNlIiwicmVuZGVyUHJvbWlzZSIsIm9uU3RhcnQiLCJjdXJyZW50U3R5bGVUYWdzIiwicXVlcnlTZWxlY3RvckFsbCIsImN1cnJlbnRIcmVmcyIsIlNldCIsInRhZyIsImdldEF0dHJpYnV0ZSIsIm5vc2NyaXB0IiwicXVlcnlTZWxlY3RvciIsIm5vbmNlIiwiaHJlZiIsInRleHQiLCJoYXMiLCJzdHlsZVRhZyIsInNldEF0dHJpYnV0ZSIsImhlYWQiLCJhcHBlbmRDaGlsZCIsImNyZWF0ZVRleHROb2RlIiwib25IZWFkQ29tbWl0IiwiZGVzaXJlZEhyZWZzIiwicyIsImlkeCIsInJlbW92ZUF0dHJpYnV0ZSIsInJlZmVyZW5jZU5vZGUiLCJ0YXJnZXRUYWciLCJwYXJlbnROb2RlIiwiaW5zZXJ0QmVmb3JlIiwibmV4dFNpYmxpbmciLCJyZW1vdmVDaGlsZCIsInNjcm9sbFRvIiwieCIsInkiLCJvblJvb3RDb21taXQiLCJlbGVtIiwiRnJhZ21lbnQiLCJIZWFkIiwiY2FsbGJhY2siLCJQb3J0YWwiLCJ0eXBlIiwiUm91dGVBbm5vdW5jZXIiLCJSb290IiwiY2FsbGJhY2tzIiwiX19ORVhUX1NUUklDVF9NT0RFIiwiU3RyaWN0TW9kZSIsInVzZUxheW91dEVmZmVjdCIsIl9fTkVYVF9URVNUX01PREUiLCJ1c2VFZmZlY3QiLCJfX05FWFRfSFlEUkFURUQiLCJfX05FWFRfSFlEUkFURURfQ0IiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/index.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/next-dev.js": +/*!***************************************************!*\ + !*** ./node_modules/next/dist/client/next-dev.js ***! + \***************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _ = __webpack_require__(/*! ./ */ \"./node_modules/next/dist/client/index.js\");\n\nvar _onDemandEntriesClient = _interopRequireDefault(__webpack_require__(/*! ./dev/on-demand-entries-client */ \"./node_modules/next/dist/client/dev/on-demand-entries-client.js\"));\n\nvar _webpackHotMiddlewareClient = _interopRequireDefault(__webpack_require__(/*! ./dev/webpack-hot-middleware-client */ \"./node_modules/next/dist/client/dev/webpack-hot-middleware-client.js\"));\n\nvar _devBuildWatcher = _interopRequireDefault(__webpack_require__(/*! ./dev/dev-build-watcher */ \"./node_modules/next/dist/client/dev/dev-build-watcher.js\"));\n\nvar _fouc = __webpack_require__(/*! ./dev/fouc */ \"./node_modules/next/dist/client/dev/fouc.js\");\n\nvar _websocket = __webpack_require__(/*! ./dev/error-overlay/websocket */ \"./node_modules/next/dist/client/dev/error-overlay/websocket.js\");\n\nvar _querystring = __webpack_require__(/*! ../shared/lib/router/utils/querystring */ \"./node_modules/next/dist/shared/lib/router/utils/querystring.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n} // Temporary workaround for the issue described here:\n// https://github.com/vercel/next.js/issues/3775#issuecomment-407438123\n// The runtimeChunk doesn't have dynamic import handling code when there hasn't been a dynamic import\n// The runtimeChunk can't hot reload itself currently to correct it when adding pages using on-demand-entries\n// eslint-disable-next-line no-unused-expressions\n\n\n__webpack_require__.e(/*! import() */ \"node_modules_next_dist_client_dev_noop_js\").then(__webpack_require__.t.bind(__webpack_require__, /*! ./dev/noop */ \"./node_modules/next/dist/client/dev/noop.js\", 23));\n;\nvar _window = window,\n assetPrefix = _window.__NEXT_DATA__.assetPrefix;\nvar prefix = assetPrefix || '';\nvar webpackHMR = (0, _webpackHotMiddlewareClient)[\"default\"]();\n(0, _websocket).connectHMR({\n assetPrefix: prefix,\n path: '/_next/webpack-hmr'\n});\nwindow.next = {\n version: _.version,\n\n // router is initialized later so it has to be live-binded\n get router() {\n return _.router;\n },\n\n emitter: _.emitter,\n render: _.render,\n renderError: _.renderError\n};\n(0, _).initNext({\n webpackHMR: webpackHMR\n}).then(function (_ref) {\n var renderCtx = _ref.renderCtx;\n (0, _onDemandEntriesClient)[\"default\"]();\n\n var buildIndicatorHandler = function buildIndicatorHandler() {};\n\n function devPagesManifestListener(event) {\n if (event.data.indexOf('devPagesManifest') !== -1) {\n fetch(\"\".concat(prefix, \"/_next/static/development/_devPagesManifest.json\")).then(function (res) {\n return res.json();\n }).then(function (manifest) {\n window.__DEV_PAGES_MANIFEST = manifest;\n })[\"catch\"](function (err) {\n console.log(\"Failed to fetch devPagesManifest\", err);\n });\n } else if (event.data.indexOf('middlewareChanges') !== -1) {\n return window.location.reload();\n } else if (event.data.indexOf('serverOnlyChanges') !== -1) {\n var _JSON$parse = JSON.parse(event.data),\n pages = _JSON$parse.pages; // Make sure to reload when the dev-overlay is showing for an\n // API route\n\n\n if (pages.includes(_.router.query.__NEXT_PAGE)) {\n return window.location.reload();\n }\n\n if (!_.router.clc && pages.includes(_.router.pathname)) {\n console.log('Refreshing page data due to server-side change');\n buildIndicatorHandler('building');\n\n var clearIndicator = function clearIndicator() {\n return buildIndicatorHandler('built');\n };\n\n _.router.replace(_.router.pathname + '?' + String((0, _querystring).assign((0, _querystring).urlQueryToSearchParams(_.router.query), new URLSearchParams(location.search))), _.router.asPath)[\"finally\"](clearIndicator);\n }\n }\n }\n\n (0, _websocket).addMessageListener(devPagesManifestListener);\n\n if (false) {} // delay rendering until after styles have been applied in development\n\n\n (0, _fouc).displayContent(function () {\n (0, _).render(renderCtx);\n });\n})[\"catch\"](function (err) {\n console.error('Error was not caught', err);\n});\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9uZXh0LWRldi5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7O0FBQ2IsSUFBSUEsQ0FBQyxHQUFHQyxtQkFBTyxDQUFDLG9EQUFELENBQWY7O0FBQ0EsSUFBSUMsc0JBQXNCLEdBQUdDLHNCQUFzQixDQUFDRixtQkFBTyxDQUFDLHVHQUFELENBQVIsQ0FBbkQ7O0FBQ0EsSUFBSUcsMkJBQTJCLEdBQUdELHNCQUFzQixDQUFDRixtQkFBTyxDQUFDLGlIQUFELENBQVIsQ0FBeEQ7O0FBQ0EsSUFBSUksZ0JBQWdCLEdBQUdGLHNCQUFzQixDQUFDRixtQkFBTyxDQUFDLHlGQUFELENBQVIsQ0FBN0M7O0FBQ0EsSUFBSUssS0FBSyxHQUFHTCxtQkFBTyxDQUFDLCtEQUFELENBQW5COztBQUNBLElBQUlNLFVBQVUsR0FBR04sbUJBQU8sQ0FBQyxxR0FBRCxDQUF4Qjs7QUFDQSxJQUFJTyxZQUFZLEdBQUdQLG1CQUFPLENBQUMsK0dBQUQsQ0FBMUI7O0FBQ0EsU0FBU0Usc0JBQVQsQ0FBZ0NNLEdBQWhDLEVBQXFDO0FBQ2pDLFNBQU9BLEdBQUcsSUFBSUEsR0FBRyxDQUFDQyxVQUFYLEdBQXdCRCxHQUF4QixHQUE4QjtBQUNqQyxlQUFTQTtBQUR3QixHQUFyQztBQUdILEVBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0E7QUFBcUI7QUFDckIsY0FBK0NFLE1BQS9DO0FBQUEsSUFBeUJDLFdBQXpCLFdBQVFDLGFBQVIsQ0FBeUJELFdBQXpCO0FBQ0EsSUFBTUUsTUFBTSxHQUFHRixXQUFXLElBQUksRUFBOUI7QUFDQSxJQUFNRyxVQUFVLEdBQUcsQ0FBQyxHQUFHWCwyQkFBSixjQUFuQjtBQUNBLENBQUMsR0FBR0csVUFBSixFQUFnQlMsVUFBaEIsQ0FBMkI7QUFDdkJKLEVBQUFBLFdBQVcsRUFBRUUsTUFEVTtBQUV2QkcsRUFBQUEsSUFBSSxFQUFFO0FBRmlCLENBQTNCO0FBSUFOLE1BQU0sQ0FBQ08sSUFBUCxH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QUNnQixNQUE3QixDQUFuRixDQUFELENBQWpELEVBQTZLeEQsQ0FBQyxDQUFDb0IsTUFBRixDQUFTcUMsTUFBdEwsYUFBc01QLGNBQXRNO0FBQ0g7QUFDSjtBQUNKOztBQUNELEdBQUMsR0FBRzNDLFVBQUosRUFBZ0JtRCxrQkFBaEIsQ0FBbUM5Qix3QkFBbkM7O0FBQ0EsTUFBSStCLEtBQUosRUFBd0MsRUEvQmxCLENBb0N0Qjs7O0FBQ0EsR0FBQyxHQUFHckQsS0FBSixFQUFXMEQsY0FBWCxDQUEwQixZQUFJO0FBQzFCLEtBQUMsR0FBR2hFLENBQUosRUFBT3NCLE1BQVAsQ0FBY0ksU0FBZDtBQUNILEdBRkQ7QUFHSCxDQTFDRCxXQTBDUyxVQUFDVyxHQUFELEVBQU87QUFDWkMsRUFBQUEsT0FBTyxDQUFDMkIsS0FBUixDQUFjLHNCQUFkLEVBQXNDNUIsR0FBdEM7QUFDSCxDQTVDRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9uZXh0LWRldi5qcz8zNTE1Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF8gPSByZXF1aXJlKFwiLi9cIik7XG52YXIgX29uRGVtYW5kRW50cmllc0NsaWVudCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vZGV2L29uLWRlbWFuZC1lbnRyaWVzLWNsaWVudFwiKSk7XG52YXIgX3dlYnBhY2tIb3RNaWRkbGV3YXJlQ2xpZW50ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9kZXYvd2VicGFjay1ob3QtbWlkZGxld2FyZS1jbGllbnRcIikpO1xudmFyIF9kZXZCdWlsZFdhdGNoZXIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL2Rldi9kZXYtYnVpbGQtd2F0Y2hlclwiKSk7XG52YXIgX2ZvdWMgPSByZXF1aXJlKFwiLi9kZXYvZm91Y1wiKTtcbnZhciBfd2Vic29ja2V0ID0gcmVxdWlyZShcIi4vZGV2L2Vycm9yLW92ZXJsYXkvd2Vic29ja2V0XCIpO1xudmFyIF9xdWVyeXN0cmluZyA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9xdWVyeXN0cmluZ1wiKTtcbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbi8vIFRlbXBvcmFyeSB3b3JrYXJvdW5kIGZvciB0aGUgaXNzdWUgZGVzY3JpYmVkIGhlcmU6XG4vLyBodHRwczovL2dpdGh1Yi5jb20vdmVyY2VsL25leHQuanMvaXNzdWVzLzM3NzUjaXNzdWVjb21tZW50LTQwNzQzODEyM1xuLy8gVGhlIHJ1bnRpbWVDaHVuayBkb2Vzbid0IGhhdmUgZHluYW1pYyBpbXBvcnQgaGFuZGxpbmcgY29kZSB3aGVuIHRoZXJlIGhhc24ndCBiZWVuIGEgZHluYW1pYyBpbXBvcnRcbi8vIFRoZSBydW50aW1lQ2h1bmsgY2FuJ3QgaG90IHJlbG9hZCBpdHNlbGYgY3VycmVudGx5IHRvIGNvcnJlY3QgaXQgd2hlbiBhZGRpbmcgcGFnZXMgdXNpbmcgb24tZGVtYW5kLWVudHJpZXNcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtZXhwcmVzc2lvbnNcbmltcG9ydCgnLi9kZXYvbm9vcCcpOztcbmNvbnN0IHsgX19ORVhUX0RBVEFfXzogeyBhc3NldFByZWZpeCAgfSAsICB9ID0gd2luZG93O1xuY29uc3QgcHJlZml4ID0gYXNzZXRQcmVmaXggfHwgJyc7XG5jb25zdCB3ZWJwYWNrSE1SID0gKDAsIF93ZWJwYWNrSG90TWlkZGxld2FyZUNsaWVudCkuZGVmYXVsdCgpO1xuKDAsIF93ZWJzb2NrZXQpLmNvbm5lY3RITVIoe1xuICAgIGFzc2V0UHJlZml4OiBwcmVmaXgsXG4gICAgcGF0aDogJy9fbmV4dC93ZWJwYWNrLWhtcidcbn0pO1xud2luZG93Lm5leHQgPSB7XG4gICAgdmVyc2lvbjogXy52ZXJzaW9uLFxuICAgIC8vIHJvdXRlciBpcyBpbml0aWFsaXplZCBsYXRlciBzbyBpdCBoYXMgdG8gYmUgbGl2ZS1iaW5kZWRcbiAgICBnZXQgcm91dGVyICgpIHtcbiAgICAgICAgcmV0dXJuIF8ucm91dGVyO1xuICAgIH0sXG4gICAgZW1pdHRlcjogXy5lbWl0dGVyLFxuICAgIHJlbmRlcjogXy5yZW5kZXIsXG4gICAgcmVuZGVyRXJyb3I6IF8ucmVuZGVyRXJyb3Jcbn07XG4oMCwgXykuaW5pdE5leHQoe1xuICAgIHdlYnBhY2tITVJcbn0pLnRoZW4oKHsgcmVuZGVyQ3R4ICB9KT0+e1xuICAgICgwLCBfb25EZW1hbmRFbnRyaWVzQ2xpZW50KS5kZWZhdWx0KCk7XG4gICAgbGV0IGJ1aWxkSW5kaWNhdG9ySGFuZGxlciA9ICgpPT57XG4gICAgfTtcbiAgICBmdW5jdGlvbiBkZXZQYWdlc01hbmlmZXN0TGlzdGVuZXIoZXZlbnQpIHtcbiAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZignZGV2UGFnZXNNYW5pZmVzdCcpICE9PSAtMSkge1xuICAgICAgICAgICAgZmV0Y2goYCR7cHJlZml4fS9fbmV4dC9zdGF0aWMvZGV2ZWxvcG1lbnQvX2RldlBhZ2VzTWFuaWZlc3QuanNvbmApLnRoZW4oKHJlcyk9PnJlcy5qc29uKClcbiAgICAgICAgICAgICkudGhlbigobWFuaWZlc3QpPT57XG4gICAgICAgICAgICAgICAgd2luZG93Ll9fREVWX1BBR0VTX01BTklGRVNUID0gbWFuaWZlc3Q7XG4gICAgICAgICAgICB9KS5jYXRjaCgoZXJyKT0+e1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBGYWlsZWQgdG8gZmV0Y2ggZGV2UGFnZXNNYW5pZmVzdGAsIGVycik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChldmVudC5kYXRhLmluZGV4T2YoJ21pZGRsZXdhcmVDaGFuZ2VzJykgIT09IC0xKSB7XG4gICAgICAgICAgICByZXR1cm4gd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZignc2VydmVyT25seUNoYW5nZXMnKSAhPT0gLTEpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgcGFnZXMgIH0gPSBKU09OLnBhcnNlKGV2ZW50LmRhdGEpO1xuICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHRvIHJlbG9hZCB3aGVuIHRoZSBkZXYtb3ZlcmxheSBpcyBzaG93aW5nIGZvciBhblxuICAgICAgICAgICAgLy8gQVBJIHJvdXRlXG4gICAgICAgICAgICBpZiAocGFnZXMuaW5jbHVkZXMoXy5yb3V0ZXIucXVlcnkuX19ORVhUX1BBR0UpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghXy5yb3V0ZXIuY2xjICYmIHBhZ2VzLmluY2x1ZGVzKF8ucm91dGVyLnBhdGhuYW1lKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdSZWZyZXNoaW5nIHBhZ2UgZGF0YSBkdWUgdG8gc2VydmVyLXNpZGUgY2hhbmdlJyk7XG4gICAgICAgICAgICAgICAgYnVpbGRJbmRpY2F0b3JIYW5kbGVyKCdidWlsZGluZycpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNsZWFySW5kaWNhdG9yID0gKCk9PmJ1aWxkSW5kaWNhdG9ySGFuZGxlcignYnVpbHQnKVxuICAgICAgICAgICAgICAgIDtcbiAgICAgICAgICAgICAgICBfLnJvdXRlci5yZXBsYWNlKF8ucm91dGVyLnBhdGhuYW1lICsgJz8nICsgU3RyaW5nKCgwLCBfcXVlcnlzdHJpbmcpLmFzc2lnbigoMCwgX3F1ZXJ5c3RyaW5nKS51cmxRdWVyeVRvU2VhcmNoUGFyYW1zKF8ucm91dGVyLnF1ZXJ5KSwgbmV3IFVSTFNlYXJjaFBhcmFtcyhsb2NhdGlvbi5zZWFyY2gpKSksIF8ucm91dGVyLmFzUGF0aCkuZmluYWxseShjbGVhckluZGljYXRvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgKDAsIF93ZWJzb2NrZXQpLmFkZE1lc3NhZ2VMaXN0ZW5lcihkZXZQYWdlc01hbmlmZXN0TGlzdGVuZXIpO1xuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfQlVJTERfSU5ESUNBVE9SKSB7XG4gICAgICAgICgwLCBfZGV2QnVpbGRXYXRjaGVyKS5kZWZhdWx0KChoYW5kbGVyKT0+e1xuICAgICAgICAgICAgYnVpbGRJbmRpY2F0b3JIYW5kbGVyID0gaGFuZGxlcjtcbiAgICAgICAgfSwgcHJvY2Vzcy5lbnYuX19ORVhUX0JVSUxEX0lORElDQVRPUl9QT1NJVElPTik7XG4gICAgfVxuICAgIC8vIGRlbGF5IHJlbmRlcmluZyB1bnRpbCBhZnRlciBzdHlsZXMgaGF2ZSBiZWVuIGFwcGxpZWQgaW4gZGV2ZWxvcG1lbnRcbiAgICAoMCwgX2ZvdWMpLmRpc3BsYXlDb250ZW50KCgpPT57XG4gICAgICAgICgwLCBfKS5yZW5kZXIocmVuZGVyQ3R4KTtcbiAgICB9KTtcbn0pLmNhdGNoKChlcnIpPT57XG4gICAgY29uc29sZS5lcnJvcignRXJyb3Igd2FzIG5vdCBjYXVnaHQnLCBlcnIpO1xufSk7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW5leHQtZGV2LmpzLm1hcCJdLCJuYW1lcyI6WyJfIiwicmVxdWlyZSIsIl9vbkRlbWFuZEVudHJpZXNDbGllbnQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3dlYnBhY2tIb3RNaWRkbGV3YXJlQ2xpZW50IiwiX2RldkJ1aWxkV2F0Y2hlciIsIl9mb3VjIiwiX3dlYnNvY2tldCIsIl9xdWVyeXN0cmluZyIsIm9iaiIsIl9fZXNNb2R1bGUiLCJ3aW5kb3ciLCJhc3NldFByZWZpeCIsIl9fTkVYVF9EQVRBX18iLCJwcmVmaXgiLCJ3ZWJwYWNrSE1SIiwiY29ubmVjdEhNUiIsInBhdGgiLCJuZXh0IiwidmVyc2lvbiIsInJvdXRlciIsImVtaXR0ZXIiLCJyZW5kZXIiLCJyZW5kZXJFcnJvciIsImluaXROZXh0IiwidGhlbiIsInJlbmRlckN0eCIsImJ1aWxkSW5kaWNhdG9ySGFuZGxlciIsImRldlBhZ2VzTWFuaWZlc3RMaXN0ZW5lciIsImV2ZW50IiwiZGF0YSIsImluZGV4T2YiLCJmZXRjaCIsInJlcyIsImpzb24iLCJtYW5pZmVzdCIsIl9fREVWX1BBR0VTX01BTklGRVNUIiwiZXJyIiwiY29uc29sZSIsImxvZyIsImxvY2F0aW9uIiwicmVsb2FkIiwiSlNPTiIsInBhcnNlIiwicGFnZXMiLCJpbmNsdWRlcyIsInF1ZXJ5IiwiX19ORVhUX1BBR0UiLCJjbGMiLCJwYXRobmFtZSIsImNsZWFySW5kaWNhdG9yIiwicmVwbGFjZSIsIlN0cmluZyIsImFzc2lnbiIsInVybFF1ZXJ5VG9TZWFyY2hQYXJhbXMiLCJVUkxTZWFyY2hQYXJhbXMiLCJzZWFyY2giLCJhc1BhdGgiLCJhZGRNZXNzYWdlTGlzdGVuZXIiLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX0JVSUxEX0lORElDQVRPUiIsImhhbmRsZXIiLCJfX05FWFRfQlVJTERfSU5ESUNBVE9SX1BPU0lUSU9OIiwiZGlzcGxheUNvbnRlbnQiLCJlcnJvciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/next-dev.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/normalize-trailing-slash.js": +/*!*******************************************************************!*\ + !*** ./node_modules/next/dist/client/normalize-trailing-slash.js ***! + \*******************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.removePathTrailingSlash = removePathTrailingSlash;\nexports.normalizePathTrailingSlash = void 0;\n\nfunction removePathTrailingSlash(path) {\n return path.endsWith('/') && path !== '/' ? path.slice(0, -1) : path;\n}\n\nvar normalizePathTrailingSlash = true ? function (path) {\n if (/\\.[^/]+\\/?$/.test(path)) {\n return removePathTrailingSlash(path);\n } else if (path.endsWith('/')) {\n return path;\n } else {\n return path + '/';\n }\n} : 0;\nexports.normalizePathTrailingSlash = normalizePathTrailingSlash;\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9ub3JtYWxpemUtdHJhaWxpbmctc2xhc2guanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCwrQkFBQSxHQUFrQ0UsdUJBQWxDO0FBQ0FGLGtDQUFBLEdBQXFDLEtBQUssQ0FBMUM7O0FBQ0EsU0FBU0UsdUJBQVQsQ0FBaUNFLElBQWpDLEVBQXVDO0FBQ25DLFNBQU9BLElBQUksQ0FBQ0MsUUFBTCxDQUFjLEdBQWQsS0FBc0JELElBQUksS0FBSyxHQUEvQixHQUFxQ0EsSUFBSSxDQUFDRSxLQUFMLENBQVcsQ0FBWCxFQUFjLENBQUMsQ0FBZixDQUFyQyxHQUF5REYsSUFBaEU7QUFDSDs7QUFDRCxJQUFNRCwwQkFBMEIsR0FBR0ksS0FBQSxHQUFvQyxVQUFDSCxJQUFELEVBQVE7QUFDM0UsTUFBSSxjQUFjTSxJQUFkLENBQW1CTixJQUFuQixDQUFKLEVBQThCO0FBQzFCLFdBQU9GLHVCQUF1QixDQUFDRSxJQUFELENBQTlCO0FBQ0gsR0FGRCxNQUVPLElBQUlBLElBQUksQ0FBQ0MsUUFBTCxDQUFjLEdBQWQsQ0FBSixFQUF3QjtBQUMzQixXQUFPRCxJQUFQO0FBQ0gsR0FGTSxNQUVBO0FBQ0gsV0FBT0EsSUFBSSxHQUFHLEdBQWQ7QUFDSDtBQUNKLENBUmtDLEdBUS9CRixDQVJKO0FBU0FGLGtDQUFBLEdBQXFDRywwQkFBckMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvbm9ybWFsaXplLXRyYWlsaW5nLXNsYXNoLmpzPzRjMmUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLnJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoID0gcmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2g7XG5leHBvcnRzLm5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoID0gdm9pZCAwO1xuZnVuY3Rpb24gcmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2gocGF0aCkge1xuICAgIHJldHVybiBwYXRoLmVuZHNXaXRoKCcvJykgJiYgcGF0aCAhPT0gJy8nID8gcGF0aC5zbGljZSgwLCAtMSkgOiBwYXRoO1xufVxuY29uc3Qgbm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2ggPSBwcm9jZXNzLmVudi5fX05FWFRfVFJBSUxJTkdfU0xBU0ggPyAocGF0aCk9PntcbiAgICBpZiAoL1xcLlteL10rXFwvPyQvLnRlc3QocGF0aCkpIHtcbiAgICAgICAgcmV0dXJuIHJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoKHBhdGgpO1xuICAgIH0gZWxzZSBpZiAocGF0aC5lbmRzV2l0aCgnLycpKSB7XG4gICAgICAgIHJldHVybiBwYXRoO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBwYXRoICsgJy8nO1xuICAgIH1cbn0gOiByZW1vdmVQYXRoVHJhaWxpbmdTbGFzaDtcbmV4cG9ydHMubm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2ggPSBub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaDtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bm9ybWFsaXplLXRyYWlsaW5nLXNsYXNoLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsInJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoIiwibm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2giLCJwYXRoIiwiZW5kc1dpdGgiLCJzbGljZSIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfVFJBSUxJTkdfU0xBU0giLCJ0ZXN0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/normalize-trailing-slash.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/page-loader.js": +/*!******************************************************!*\ + !*** ./node_modules/next/dist/client/page-loader.js ***! + \******************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _classCallCheck = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\");\n\nvar _createClass = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\");\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _router = __webpack_require__(/*! ../shared/lib/router/router */ \"./node_modules/next/dist/shared/lib/router/router.js\");\n\nvar _getAssetPathFromRoute = _interopRequireDefault(__webpack_require__(/*! ../shared/lib/router/utils/get-asset-path-from-route */ \"./node_modules/next/dist/shared/lib/router/utils/get-asset-path-from-route.js\"));\n\nvar _isDynamic = __webpack_require__(/*! ../shared/lib/router/utils/is-dynamic */ \"./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js\");\n\nvar _parseRelativeUrl = __webpack_require__(/*! ../shared/lib/router/utils/parse-relative-url */ \"./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js\");\n\nvar _normalizeTrailingSlash = __webpack_require__(/*! ./normalize-trailing-slash */ \"./node_modules/next/dist/client/normalize-trailing-slash.js\");\n\nvar _routeLoader = __webpack_require__(/*! ./route-loader */ \"./node_modules/next/dist/client/route-loader.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction normalizeRoute(route) {\n if (route[0] !== '/') {\n throw new Error(\"Route name should start with a \\\"/\\\", got \\\"\".concat(route, \"\\\"\"));\n }\n\n if (route === '/') return route;\n return route.replace(/\\/$/, '');\n}\n\nvar PageLoader = /*#__PURE__*/function () {\n function PageLoader(buildId, assetPrefix) {\n _classCallCheck(this, PageLoader);\n\n this.routeLoader = (0, _routeLoader).createRouteLoader(assetPrefix);\n this.buildId = buildId;\n this.assetPrefix = assetPrefix;\n /** @type {Promise<Set<string>>} */\n\n this.promisedSsgManifest = new Promise(function (resolve) {\n if (window.__SSG_MANIFEST) {\n resolve(window.__SSG_MANIFEST);\n } else {\n window.__SSG_MANIFEST_CB = function () {\n resolve(window.__SSG_MANIFEST);\n };\n }\n });\n }\n\n _createClass(PageLoader, [{\n key: \"getPageList\",\n value: function getPageList() {\n if (false) {} else {\n if (window.__DEV_PAGES_MANIFEST) {\n return window.__DEV_PAGES_MANIFEST.pages;\n } else {\n if (!this.promisedDevPagesManifest) {\n this.promisedDevPagesManifest = fetch(\"\".concat(this.assetPrefix, \"/_next/static/development/_devPagesManifest.json\")).then(function (res) {\n return res.json();\n }).then(function (manifest) {\n window.__DEV_PAGES_MANIFEST = manifest;\n return manifest.pages;\n })[\"catch\"](function (err) {\n console.log(\"Failed to fetch devPagesManifest\", err);\n });\n }\n\n return this.promisedDevPagesManifest;\n }\n }\n }\n }, {\n key: \"getMiddlewareList\",\n value: function getMiddlewareList() {\n if (false) {} else {\n if (window.__DEV_MIDDLEWARE_MANIFEST) {\n return window.__DEV_MIDDLEWARE_MANIFEST;\n } else {\n if (!this.promisedMiddlewareManifest) {\n this.promisedMiddlewareManifest = fetch(\"\".concat(this.assetPrefix, \"/_next/static/\").concat(this.buildId, \"/_devMiddlewareManifest.json\")).then(function (res) {\n return res.json();\n }).then(function (manifest) {\n window.__DEV_MIDDLEWARE_MANIFEST = manifest;\n return manifest;\n })[\"catch\"](function (err) {\n console.log(\"Failed to fetch _devMiddlewareManifest\", err);\n });\n }\n\n return this.promisedMiddlewareManifest;\n }\n }\n }\n /**\n * @param {string} href the route href (file-system path)\n * @param {string} asPath the URL as shown in browser (virtual path); used for dynamic routes\n * @returns {string}\n */\n\n }, {\n key: \"getDataHref\",\n value: function getDataHref(_ref) {\n var _this = this;\n\n var href = _ref.href,\n asPath = _ref.asPath,\n ssg = _ref.ssg,\n rsc = _ref.rsc,\n locale = _ref.locale;\n\n var _parseRelativeUrl2 = (0, _parseRelativeUrl).parseRelativeUrl(href),\n hrefPathname = _parseRelativeUrl2.pathname,\n query = _parseRelativeUrl2.query,\n search = _parseRelativeUrl2.search;\n\n var _parseRelativeUrl3 = (0, _parseRelativeUrl).parseRelativeUrl(asPath),\n asPathname = _parseRelativeUrl3.pathname;\n\n var route = normalizeRoute(hrefPathname);\n\n var getHrefForSlug = function getHrefForSlug(path) {\n if (rsc) return path + '?__flight__';\n var dataRoute = (0, _getAssetPathFromRoute)[\"default\"]((0, _normalizeTrailingSlash).removePathTrailingSlash((0, _router).addLocale(path, locale)), '.json');\n return (0, _router).addBasePath(\"/_next/data/\".concat(_this.buildId).concat(dataRoute).concat(ssg ? '' : search));\n };\n\n var isDynamic = (0, _isDynamic).isDynamicRoute(route);\n var interpolatedRoute = isDynamic ? (0, _router).interpolateAs(hrefPathname, asPathname, query).result : '';\n return isDynamic ? interpolatedRoute && getHrefForSlug(interpolatedRoute) : getHrefForSlug(route);\n }\n /**\n * @param {string} route - the route (file-system path)\n */\n\n }, {\n key: \"_isSsg\",\n value: function _isSsg(route) {\n return this.promisedSsgManifest.then(function (s) {\n return s.has(route);\n });\n }\n }, {\n key: \"loadPage\",\n value: function loadPage(route) {\n return this.routeLoader.loadRoute(route).then(function (res) {\n if ('component' in res) {\n return {\n page: res.component,\n mod: res.exports,\n styleSheets: res.styles.map(function (o) {\n return {\n href: o.href,\n text: o.content\n };\n })\n };\n }\n\n throw res.error;\n });\n }\n }, {\n key: \"prefetch\",\n value: function prefetch(route) {\n return this.routeLoader.prefetch(route);\n }\n }]);\n\n return PageLoader;\n}();\n\nexports[\"default\"] = PageLoader;\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9wYWdlLWxvYWRlci5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7Ozs7OztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxrQkFBQSxHQUFrQixLQUFLLENBQXZCOztBQUNBLElBQUlFLE9BQU8sR0FBR0MsbUJBQU8sQ0FBQyx5RkFBRCxDQUFyQjs7QUFDQSxJQUFJQyxzQkFBc0IsR0FBR0Msc0JBQXNCLENBQUNGLG1CQUFPLENBQUMsMklBQUQsQ0FBUixDQUFuRDs7QUFDQSxJQUFJRyxVQUFVLEdBQUdILG1CQUFPLENBQUMsNkdBQUQsQ0FBeEI7O0FBQ0EsSUFBSUksaUJBQWlCLEdBQUdKLG1CQUFPLENBQUMsNkhBQUQsQ0FBL0I7O0FBQ0EsSUFBSUssdUJBQXVCLEdBQUdMLG1CQUFPLENBQUMsK0ZBQUQsQ0FBckM7O0FBQ0EsSUFBSU0sWUFBWSxHQUFHTixtQkFBTyxDQUFDLHVFQUFELENBQTFCOztBQUNBLFNBQVNFLHNCQUFULENBQWdDSyxHQUFoQyxFQUFxQztBQUNqQyxTQUFPQSxHQUFHLElBQUlBLEdBQUcsQ0FBQ0MsVUFBWCxHQUF3QkQsR0FBeEIsR0FBOEI7QUFDakMsZUFBU0E7QUFEd0IsR0FBckM7QUFHSDs7QUFDRCxTQUFTRSxjQUFULENBQXdCQyxLQUF4QixFQUErQjtBQUMzQixNQUFJQSxLQUFLLENBQUMsQ0FBRCxDQUFMLEtBQWEsR0FBakIsRUFBc0I7QUFDbEIsVUFBTSxJQUFJQyxLQUFKLHVEQUFzREQsS0FBdEQsUUFBTjtBQUNIOztBQUNELE1BQUlBLEtBQUssS0FBSyxHQUFkLEVBQW1CLE9BQU9BLEtBQVA7QUFDbkIsU0FBT0EsS0FBSyxDQUFDRSxPQUFOLENBQWMsS0FBZCxFQUFxQixFQUFyQixDQUFQO0FBQ0g7O0lBQ0tDO0FBb0ZGLHNCQUFZQyxPQUFaLEVBQXFCQyxXQUFyQixFQUFpQztBQUFBOztBQUM3QixTQUFLQyxXQUFMLEdB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Qk8sSUFBekIsQ0FBOEIsVUFBQ3FDLENBQUQ7QUFBQSxlQUFLQSxDQUFDLENBQUNDLEdBQUYsQ0FBTXJELEtBQU4sQ0FBTDtBQUFBLE9BQTlCLENBQVA7QUFFSDs7O1dBQ0Qsa0JBQVNBLEtBQVQsRUFBZ0I7QUFDWixhQUFPLEtBQUtNLFdBQUwsQ0FBaUJnRCxTQUFqQixDQUEyQnRELEtBQTNCLEVBQWtDZSxJQUFsQyxDQUF1QyxVQUFDTyxHQUFELEVBQU87QUFDakQsWUFBSSxlQUFlQSxHQUFuQixFQUF3QjtBQUNwQixpQkFBTztBQUNIaUMsWUFBQUEsSUFBSSxFQUFFakMsR0FBRyxDQUFDa0MsU0FEUDtBQUVIQyxZQUFBQSxHQUFHLEVBQUVuQyxHQUFHLENBQUNuQyxPQUZOO0FBR0h1RSxZQUFBQSxXQUFXLEVBQUVwQyxHQUFHLENBQUNxQyxNQUFKLENBQVdDLEdBQVgsQ0FBZSxVQUFDQyxDQUFEO0FBQUEscUJBQU07QUFDMUIvQixnQkFBQUEsSUFBSSxFQUFFK0IsQ0FBQyxDQUFDL0IsSUFEa0I7QUFFMUJnQyxnQkFBQUEsSUFBSSxFQUFFRCxDQUFDLENBQUNFO0FBRmtCLGVBQU47QUFBQSxhQUFmO0FBSFYsV0FBUDtBQVNIOztBQUNELGNBQU16QyxHQUFHLENBQUMwQyxLQUFWO0FBQ0gsT0FiTSxDQUFQO0FBY0g7OztXQUNELGtCQUFTaEUsS0FBVCxFQUFnQjtBQUNaLGFBQU8sS0FBS00sV0FBTCxDQUFpQjJELFFBQWpCLENBQTBCakUsS0FBMUIsQ0FBUDtBQUNIOzs7Ozs7QUFnQkxiLGtCQUFBLEdBQWtCZ0IsVUFBbEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvcGFnZS1sb2FkZXIuanM/ZTg3YSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IHZvaWQgMDtcbnZhciBfcm91dGVyID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyL3JvdXRlclwiKTtcbnZhciBfZ2V0QXNzZXRQYXRoRnJvbVJvdXRlID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZ2V0LWFzc2V0LXBhdGgtZnJvbS1yb3V0ZVwiKSk7XG52YXIgX2lzRHluYW1pYyA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9pcy1keW5hbWljXCIpO1xudmFyIF9wYXJzZVJlbGF0aXZlVXJsID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhcnNlLXJlbGF0aXZlLXVybFwiKTtcbnZhciBfbm9ybWFsaXplVHJhaWxpbmdTbGFzaCA9IHJlcXVpcmUoXCIuL25vcm1hbGl6ZS10cmFpbGluZy1zbGFzaFwiKTtcbnZhciBfcm91dGVMb2FkZXIgPSByZXF1aXJlKFwiLi9yb3V0ZS1sb2FkZXJcIik7XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5mdW5jdGlvbiBub3JtYWxpemVSb3V0ZShyb3V0ZSkge1xuICAgIGlmIChyb3V0ZVswXSAhPT0gJy8nKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgUm91dGUgbmFtZSBzaG91bGQgc3RhcnQgd2l0aCBhIFwiL1wiLCBnb3QgXCIke3JvdXRlfVwiYCk7XG4gICAgfVxuICAgIGlmIChyb3V0ZSA9PT0gJy8nKSByZXR1cm4gcm91dGU7XG4gICAgcmV0dXJuIHJvdXRlLnJlcGxhY2UoL1xcLyQvLCAnJyk7XG59XG5jbGFzcyBQYWdlTG9hZGVyIHtcbiAgICBnZXRQYWdlTGlzdCgpIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiAoMCwgX3JvdXRlTG9hZGVyKS5nZXRDbGllbnRCdWlsZE1hbmlmZXN0KCkudGhlbigobWFuaWZlc3QpPT5tYW5pZmVzdC5zb3J0ZWRQYWdlc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh3aW5kb3cuX19ERVZfUEFHRVNfTUFOSUZFU1QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93Ll9fREVWX1BBR0VTX01BTklGRVNULnBhZ2VzO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMucHJvbWlzZWREZXZQYWdlc01hbmlmZXN0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvbWlzZWREZXZQYWdlc01hbmlmZXN0ID0gZmV0Y2goYCR7dGhpcy5hc3NldFByZWZpeH0vX25leHQvc3RhdGljL2RldmVsb3BtZW50L19kZXZQYWdlc01hbmlmZXN0Lmpzb25gKS50aGVuKChyZXMpPT5yZXMuanNvbigpXG4gICAgICAgICAgICAgICAgICAgICkudGhlbigobWFuaWZlc3QpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cuX19ERVZfUEFHRVNfTUFOSUZFU1QgPSBtYW5pZmVzdDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtYW5pZmVzdC5wYWdlcztcbiAgICAgICAgICAgICAgICAgICAgfSkuY2F0Y2goKGVycik9PntcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBGYWlsZWQgdG8gZmV0Y2ggZGV2UGFnZXNNYW5pZmVzdGAsIGVycik7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9taXNlZERldlBhZ2VzTWFuaWZlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0TWlkZGxld2FyZUxpc3QoKSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICByZXR1cm4gKDAsIF9yb3V0ZUxvYWRlcikuZ2V0TWlkZGxld2FyZU1hbmlmZXN0KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAod2luZG93Ll9fREVWX01JRERMRVdBUkVfTUFOSUZFU1QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93Ll9fREVWX01JRERMRVdBUkVfTUFOSUZFU1Q7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5wcm9taXNlZE1pZGRsZXdhcmVNYW5pZmVzdCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb21pc2VkTWlkZGxld2FyZU1hbmlmZXN0ID0gZmV0Y2goYCR7dGhpcy5hc3NldFByZWZpeH0vX25leHQvc3RhdGljLyR7dGhpcy5idWlsZElkfS9fZGV2TWlkZGxld2FyZU1hbmlmZXN0Lmpzb25gKS50aGVuKChyZXMpPT5yZXMuanNvbigpXG4gICAgICAgICAgICAgICAgICAgICkudGhlbigobWFuaWZlc3QpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cuX19ERVZfTUlERExFV0FSRV9NQU5JRkVTVCA9IG1hbmlmZXN0O1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1hbmlmZXN0O1xuICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaCgoZXJyKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coYEZhaWxlZCB0byBmZXRjaCBfZGV2TWlkZGxld2FyZU1hbmlmZXN0YCwgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnByb21pc2VkTWlkZGxld2FyZU1hbmlmZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gaHJlZiB0aGUgcm91dGUgaHJlZiAoZmlsZS1zeXN0ZW0gcGF0aClcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFzUGF0aCB0aGUgVVJMIGFzIHNob3duIGluIGJyb3dzZXIgKHZpcnR1YWwgcGF0aCk7IHVzZWQgZm9yIGR5bmFtaWMgcm91dGVzXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAqLyBnZXREYXRhSHJlZih7IGhyZWYgLCBhc1BhdGggLCBzc2cgLCByc2MgLCBsb2NhbGUgIH0pIHtcbiAgICAgICAgY29uc3QgeyBwYXRobmFtZTogaHJlZlBhdGhuYW1lICwgcXVlcnkgLCBzZWFyY2ggIH0gPSAoMCwgX3BhcnNlUmVsYXRpdmVVcmwpLnBhcnNlUmVsYXRpdmVVcmwoaHJlZik7XG4gICAgICAgIGNvbnN0IHsgcGF0aG5hbWU6IGFzUGF0aG5hbWUgIH0gPSAoMCwgX3BhcnNlUmVsYXRpdmVVcmwpLnBhcnNlUmVsYXRpdmVVcmwoYXNQYXRoKTtcbiAgICAgICAgY29uc3Qgcm91dGUgPSBub3JtYWxpemVSb3V0ZShocmVmUGF0aG5hbWUpO1xuICAgICAgICBjb25zdCBnZXRIcmVmRm9yU2x1ZyA9IChwYXRoKT0+e1xuICAgICAgICAgICAgaWYgKHJzYykgcmV0dXJuIHBhdGggKyAnP19fZmxpZ2h0X18nO1xuICAgICAgICAgICAgY29uc3QgZGF0YVJvdXRlID0gKDAsIF9nZXRBc3NldFBhdGhGcm9tUm91dGUpLmRlZmF1bHQoKDAsIF9ub3JtYWxpemVUcmFpbGluZ1NsYXNoKS5yZW1vdmVQYXRoVHJhaWxpbmdTbGFzaCgoMCwgX3JvdXRlcikuYWRkTG9jYWxlKHBhdGgsIGxvY2FsZSkpLCAnLmpzb24nKTtcbiAgICAgICAgICAgIHJldHVybiAoMCwgX3JvdXRlcikuYWRkQmFzZVBhdGgoYC9fbmV4dC9kYXRhLyR7dGhpcy5idWlsZElkfSR7ZGF0YVJvdXRlfSR7c3NnID8gJycgOiBzZWFyY2h9YCk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGlzRHluYW1pYyA9ICgwLCBfaXNEeW5hbWljKS5pc0R5bmFtaWNSb3V0ZShyb3V0ZSk7XG4gICAgICAgIGNvbnN0IGludGVycG9sYXRlZFJvdXRlID0gaXNEeW5hbWljID8gKDAsIF9yb3V0ZXIpLmludGVycG9sYXRlQXMoaHJlZlBhdGhuYW1lLCBhc1BhdGhuYW1lLCBxdWVyeSkucmVzdWx0IDogJyc7XG4gICAgICAgIHJldHVybiBpc0R5bmFtaWMgPyBpbnRlcnBvbGF0ZWRSb3V0ZSAmJiBnZXRIcmVmRm9yU2x1ZyhpbnRlcnBvbGF0ZWRSb3V0ZSkgOiBnZXRIcmVmRm9yU2x1Zyhyb3V0ZSk7XG4gICAgfVxuICAgIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcm91dGUgLSB0aGUgcm91dGUgKGZpbGUtc3lzdGVtIHBhdGgpXG4gICAqLyBfaXNTc2cocm91dGUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvbWlzZWRTc2dNYW5pZmVzdC50aGVuKChzKT0+cy5oYXMocm91dGUpXG4gICAgICAgICk7XG4gICAgfVxuICAgIGxvYWRQYWdlKHJvdXRlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJvdXRlTG9hZGVyLmxvYWRSb3V0ZShyb3V0ZSkudGhlbigocmVzKT0+e1xuICAgICAgICAgICAgaWYgKCdjb21wb25lbnQnIGluIHJlcykge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHBhZ2U6IHJlcy5jb21wb25lbnQsXG4gICAgICAgICAgICAgICAgICAgIG1vZDogcmVzLmV4cG9ydHMsXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlU2hlZXRzOiByZXMuc3R5bGVzLm1hcCgobyk9Pih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZjogby5ocmVmLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6IG8uY29udGVudFxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyByZXMuZXJyb3I7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBwcmVmZXRjaChyb3V0ZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5yb3V0ZUxvYWRlci5wcmVmZXRjaChyb3V0ZSk7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKGJ1aWxkSWQsIGFzc2V0UHJlZml4KXtcbiAgICAgICAgdGhpcy5yb3V0ZUxvYWRlciA9ICgwLCBfcm91dGVMb2FkZXIpLmNyZWF0ZVJvdXRlTG9hZGVyKGFzc2V0UHJlZml4KTtcbiAgICAgICAgdGhpcy5idWlsZElkID0gYnVpbGRJZDtcbiAgICAgICAgdGhpcy5hc3NldFByZWZpeCA9IGFzc2V0UHJlZml4O1xuICAgICAgICAvKiogQHR5cGUge1Byb21pc2U8U2V0PHN0cmluZz4+fSAqLyB0aGlzLnByb21pc2VkU3NnTWFuaWZlc3QgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSk9PntcbiAgICAgICAgICAgIGlmICh3aW5kb3cuX19TU0dfTUFOSUZFU1QpIHtcbiAgICAgICAgICAgICAgICByZXNvbHZlKHdpbmRvdy5fX1NTR19NQU5JRkVTVCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5fX1NTR19NQU5JRkVTVF9DQiA9ICgpPT57XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUod2luZG93Ll9fU1NHX01BTklGRVNUKTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG5leHBvcnRzLmRlZmF1bHQgPSBQYWdlTG9hZGVyO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1wYWdlLWxvYWRlci5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJfcm91dGVyIiwicmVxdWlyZSIsIl9nZXRBc3NldFBhdGhGcm9tUm91dGUiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2lzRHluYW1pYyIsIl9wYXJzZVJlbGF0aXZlVXJsIiwiX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2giLCJfcm91dGVMb2FkZXIiLCJvYmoiLCJfX2VzTW9kdWxlIiwibm9ybWFsaXplUm91dGUiLCJyb3V0ZSIsIkVycm9yIiwicmVwbGFjZSIsIlBhZ2VMb2FkZXIiLCJidWlsZElkIiwiYXNzZXRQcmVmaXgiLCJyb3V0ZUxvYWRlciIsImNyZWF0ZVJvdXRlTG9hZGVyIiwicHJvbWlzZWRTc2dNYW5pZmVzdCIsIlByb21pc2UiLCJyZXNvbHZlIiwid2luZG93IiwiX19TU0dfTUFOSUZFU1QiLCJfX1NTR19NQU5JRkVTVF9DQiIsImdldENsaWVudEJ1aWxkTWFuaWZlc3QiLCJ0aGVuIiwibWFuaWZlc3QiLCJzb3J0ZWRQYWdlcyIsIl9fREVWX1BBR0VTX01BTklGRVNUIiwicGFnZXMiLCJwcm9taXNlZERldlBhZ2VzTWFuaWZlc3QiLCJmZXRjaCIsInJlcyIsImpzb24iLCJlcnIiLCJjb25zb2xlIiwibG9nIiwiZ2V0TWlkZGxld2FyZU1hbmlmZXN0IiwiX19ERVZfTUlERExFV0FSRV9NQU5JRkVTVCIsInByb21pc2VkTWlkZGxld2FyZU1hbmlmZXN0IiwiaHJlZiIsImFzUGF0aCIsInNzZyIsInJzYyIsImxvY2FsZSIsInBhcnNlUmVsYXRpdmVVcmwiLCJocmVmUGF0aG5hbWUiLCJwYXRobmFtZSIsInF1ZXJ5Iiwic2VhcmNoIiwiYXNQYXRobmFtZSIsImdldEhyZWZGb3JTbHVnIiwicGF0aCIsImRhdGFSb3V0ZSIsInJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoIiwiYWRkTG9jYWxlIiwiYWRkQmFzZVBhdGgiLCJpc0R5bmFtaWMiLCJpc0R5bmFtaWNSb3V0ZSIsImludGVycG9sYXRlZFJvdXRlIiwiaW50ZXJwb2xhdGVBcyIsInJlc3VsdCIsInMiLCJoYXMiLCJsb2FkUm91dGUiLCJwYWdlIiwiY29tcG9uZW50IiwibW9kIiwic3R5bGVTaGVldHMiLCJzdHlsZXMiLCJtYXAiLCJvIiwidGV4dCIsImNvbnRlbnQiLCJlcnJvciIsInByZWZldGNoIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/page-loader.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/performance-relayer.js": +/*!**************************************************************!*\ + !*** ./node_modules/next/dist/client/performance-relayer.js ***! + \**************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _webVitals = __webpack_require__(/*! next/dist/compiled/web-vitals */ \"./node_modules/next/dist/compiled/web-vitals/web-vitals.umd.js\");\n\nvar initialHref = location.href;\nvar isRegistered = false;\nvar userReportHandler;\n\nfunction onReport(metric) {\n if (userReportHandler) {\n userReportHandler(metric);\n } // This code is not shipped, executed, or present in the client-side\n // JavaScript bundle unless explicitly enabled in your application.\n //\n // When this feature is enabled, we'll make it very clear by printing a\n // message during the build (`next build`).\n\n\n if (false) { var send, vitalsUrl, blob, body, fallbackSend; }\n}\n\nvar _default = function _default(onPerfEntry) {\n // Update function if it changes:\n userReportHandler = onPerfEntry; // Only register listeners once:\n\n if (isRegistered) {\n return;\n }\n\n isRegistered = true;\n (0, _webVitals).getCLS(onReport);\n (0, _webVitals).getFID(onReport);\n (0, _webVitals).getFCP(onReport);\n (0, _webVitals).getLCP(onReport);\n (0, _webVitals).getTTFB(onReport);\n};\n\nexports[\"default\"] = _default;\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9wZXJmb3JtYW5jZS1yZWxheWVyLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7QUFDYkEsOENBQTZDO0FBQ3pDRyxFQUFBQSxLQUFLLEVBQUU7QUFEa0MsQ0FBN0M7QUFHQUQsa0JBQUEsR0FBa0IsS0FBSyxDQUF2Qjs7QUFDQSxJQUFJRSxVQUFVLEdBQUdDLG1CQUFPLENBQUMscUdBQUQsQ0FBeEI7O0FBQ0EsSUFBTUMsV0FBVyxHQUFHQyxRQUFRLENBQUNDLElBQTdCO0FBQ0EsSUFBSUMsWUFBWSxHQUFHLEtBQW5CO0FBQ0EsSUFBSUMsaUJBQUo7O0FBQ0EsU0FBU0MsUUFBVCxDQUFrQkMsTUFBbEIsRUFBMEI7QUFDdEIsTUFBSUYsaUJBQUosRUFBdUI7QUFDbkJBLElBQUFBLGlCQUFpQixDQUFDRSxNQUFELENBQWpCO0FBQ0gsR0FIcUIsQ0FJdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0EsTUFBSSxLQUFKLEVBQ2lDLGtEQWtDaEM7QUFDSjs7QUFDRCxJQUFJK0IsUUFBUSxHQUFHLFNBQVhBLFFBQVcsQ0FBQ0MsV0FBRCxFQUFlO0FBQzFCO0FBQ0FsQyxFQUFBQSxpQkFBaUIsR0FBR2tDLFdBQXBCLENBRjBCLENBRzFCOztBQUNBLE1BQUluQyxZQUFKLEVBQWtCO0FBQ2Q7QUFDSDs7QUFDREEsRUFBQUEsWUFBWSxHQUFHLElBQWY7QUFDQSxHQUFDLEdBQUdMLFVBQUosRUFBZ0J5QyxNQUFoQixDQUF1QmxDLFFBQXZCO0FBQ0EsR0FBQyxHQUFHUCxVQUFKLEVBQWdCMEMsTUFBaEIsQ0FBdUJuQyxRQUF2QjtBQUNBLEdBQUMsR0FBR1AsVUFBSixFQUFnQjJDLE1BQWhCLENBQXVCcEMsUUFBdkI7QUFDQSxHQUFDLEdBQUdQLFVBQUosRUFBZ0I0QyxNQUFoQixDQUF1QnJDLFFBQXZCO0FBQ0EsR0FBQyxHQUFHUCxVQUFKLEVBQWdCNkMsT0FBaEIsQ0FBd0J0QyxRQUF4QjtBQUNILENBYkQ7O0FBY0FULGtCQUFBLEdBQWtCeUMsUUFBbEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvcGVyZm9ybWFuY2UtcmVsYXllci5qcz9lZjcxIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gdm9pZCAwO1xudmFyIF93ZWJWaXRhbHMgPSByZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL3dlYi12aXRhbHNcIik7XG5jb25zdCBpbml0aWFsSHJlZiA9IGxvY2F0aW9uLmhyZWY7XG5sZXQgaXNSZWdpc3RlcmVkID0gZmFsc2U7XG5sZXQgdXNlclJlcG9ydEhhbmRsZXI7XG5mdW5jdGlvbiBvblJlcG9ydChtZXRyaWMpIHtcbiAgICBpZiAodXNlclJlcG9ydEhhbmRsZXIpIHtcbiAgICAgICAgdXNlclJlcG9ydEhhbmRsZXIobWV0cmljKTtcbiAgICB9XG4gICAgLy8gVGhpcyBjb2RlIGlzIG5vdCBzaGlwcGVkLCBleGVjdXRlZCwgb3IgcHJlc2VudCBpbiB0aGUgY2xpZW50LXNpZGVcbiAgICAvLyBKYXZhU2NyaXB0IGJ1bmRsZSB1bmxlc3MgZXhwbGljaXRseSBlbmFibGVkIGluIHlvdXIgYXBwbGljYXRpb24uXG4gICAgLy9cbiAgICAvLyBXaGVuIHRoaXMgZmVhdHVyZSBpcyBlbmFibGVkLCB3ZSdsbCBtYWtlIGl0IHZlcnkgY2xlYXIgYnkgcHJpbnRpbmcgYVxuICAgIC8vIG1lc3NhZ2UgZHVyaW5nIHRoZSBidWlsZCAoYG5leHQgYnVpbGRgKS5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJyAmJiAvLyBUaGlzIGZpZWxkIGlzIGVtcHR5IHVubGVzcyB5b3UgZXhwbGljaXRseSBjb25maWd1cmUgaXQ6XG4gICAgcHJvY2Vzcy5lbnYuX19ORVhUX0FOQUxZVElDU19JRCkge1xuICAgICAgICBjb25zdCBib2R5ID0ge1xuICAgICAgICAgICAgZHNuOiBwcm9jZXNzLmVudi5fX05FWFRfQU5BTFlUSUNTX0lELFxuICAgICAgICAgICAgaWQ6IG1ldHJpYy5pZCxcbiAgICAgICAgICAgIHBhZ2U6IHdpbmRvdy5fX05FWFRfREFUQV9fLnBhZ2UsXG4gICAgICAgICAgICBocmVmOiBpbml0aWFsSHJlZixcbiAgICAgICAgICAgIGV2ZW50X25hbWU6IG1ldHJpYy5uYW1lLFxuICAgICAgICAgICAgdmFsdWU6IG1ldHJpYy52YWx1ZS50b1N0cmluZygpLFxuICAgICAgICAgICAgc3BlZWQ6ICdjb25uZWN0aW9uJyBpbiBuYXZpZ2F0b3IgJiYgbmF2aWdhdG9yWydjb25uZWN0aW9uJ10gJiYgJ2VmZmVjdGl2ZVR5cGUnIGluIG5hdmlnYXRvclsnY29ubmVjdGlvbiddID8gbmF2aWdhdG9yWydjb25uZWN0aW9uJ11bJ2VmZmVjdGl2ZVR5cGUnXSA6ICcnXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbXG4gICAgICAgICAgICBuZXcgVVJMU2VhcmNoUGFyYW1zKGJvZHkpLnRvU3RyaW5nKClcbiAgICAgICAgXSwge1xuICAgICAgICAgICAgLy8gVGhpcyBjb250ZW50IHR5cGUgaXMgbmVjZXNzYXJ5IGZvciBgc2VuZEJlYWNvbmA6XG4gICAgICAgICAgICB0eXBlOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJ1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3Qgdml0YWxzVXJsID0gJ2h0dHBzOi8vdml0YWxzLnZlcmNlbC1pbnNpZ2h0cy5jb20vdjEvdml0YWxzJztcbiAgICAgICAgLy8gTmF2aWdhdG9yIGhhcyB0byBiZSBib3VuZCB0byBlbnN1cmUgaXQgZG9lcyBub3QgZXJyb3IgaW4gc29tZSBicm93c2Vyc1xuICAgICAgICAvLyBodHRwczovL3hnd2FuZy5tZS9wb3N0cy95b3UtbWF5LW5vdC1rbm93LWJlYWNvbi8jaXQtbWF5LXRocm93LWVycm9yJTJDLWJlLXN1cmUtdG8tY2F0Y2hcbiAgICAgICAgY29uc3Qgc2VuZCA9IG5hdmlnYXRvci5zZW5kQmVhY29uICYmIG5hdmlnYXRvci5zZW5kQmVhY29uLmJpbmQobmF2aWdhdG9yKTtcbiAgICAgICAgZnVuY3Rpb24gZmFsbGJhY2tTZW5kKCkge1xuICAgICAgICAgICAgZmV0Y2godml0YWxzVXJsLCB7XG4gICAgICAgICAgICAgICAgYm9keTogYmxvYixcbiAgICAgICAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgICAgICAgICBjcmVkZW50aWFsczogJ29taXQnLFxuICAgICAgICAgICAgICAgIGtlZXBhbGl2ZTogdHJ1ZVxuICAgICAgICAgICAgfSkuY2F0Y2goY29uc29sZS5lcnJvcik7XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIC8vIElmIHNlbmQgaXMgdW5kZWZpbmVkIGl0J2xsIHRocm93IGFzIHdlbGwuIFRoaXMgcmVkdWNlcyBvdXRwdXQgY29kZSBzaXplLlxuICAgICAgICAgICAgc2VuZCh2aXRhbHNVcmwsIGJsb2IpIHx8IGZhbGxiYWNrU2VuZCgpO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIGZhbGxiYWNrU2VuZCgpO1xuICAgICAgICB9XG4gICAgfVxufVxudmFyIF9kZWZhdWx0ID0gKG9uUGVyZkVudHJ5KT0+e1xuICAgIC8vIFVwZGF0ZSBmdW5jdGlvbiBpZiBpdCBjaGFuZ2VzOlxuICAgIHVzZXJSZXBvcnRIYW5kbGVyID0gb25QZXJmRW50cnk7XG4gICAgLy8gT25seSByZWdpc3RlciBsaXN0ZW5lcnMgb25jZTpcbiAgICBpZiAoaXNSZWdpc3RlcmVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaXNSZWdpc3RlcmVkID0gdHJ1ZTtcbiAgICAoMCwgX3dlYlZpdGFscykuZ2V0Q0xTKG9uUmVwb3J0KTtcbiAgICAoMCwgX3dlYlZpdGFscykuZ2V0RklEKG9uUmVwb3J0KTtcbiAgICAoMCwgX3dlYlZpdGFscykuZ2V0RkNQKG9uUmVwb3J0KTtcbiAgICAoMCwgX3dlYlZpdGFscykuZ2V0TENQKG9uUmVwb3J0KTtcbiAgICAoMCwgX3dlYlZpdGFscykuZ2V0VFRGQihvblJlcG9ydCk7XG59O1xuZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBlcmZvcm1hbmNlLXJlbGF5ZXIuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiX3dlYlZpdGFscyIsInJlcXVpcmUiLCJpbml0aWFsSHJlZiIsImxvY2F0aW9uIiwiaHJlZiIsImlzUmVnaXN0ZXJlZCIsInVzZXJSZXBvcnRIYW5kbGVyIiwib25SZXBvcnQiLCJtZXRyaWMiLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX0FOQUxZVElDU19JRCIsImZhbGxiYWNrU2VuZCIsImZldGNoIiwidml0YWxzVXJsIiwiYm9keSIsImJsb2IiLCJtZXRob2QiLCJjcmVkZW50aWFscyIsImtlZXBhbGl2ZSIsImNvbnNvbGUiLCJlcnJvciIsImRzbiIsImlkIiwicGFnZSIsIndpbmRvdyIsIl9fTkVYVF9EQVRBX18iLCJldmVudF9uYW1lIiwibmFtZSIsInRvU3RyaW5nIiwic3BlZWQiLCJuYXZpZ2F0b3IiLCJCbG9iIiwiVVJMU2VhcmNoUGFyYW1zIiwidHlwZSIsInNlbmQiLCJzZW5kQmVhY29uIiwiYmluZCIsImVyciIsIl9kZWZhdWx0Iiwib25QZXJmRW50cnkiLCJnZXRDTFMiLCJnZXRGSUQiLCJnZXRGQ1AiLCJnZXRMQ1AiLCJnZXRUVEZCIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/performance-relayer.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/portal/index.js": +/*!*******************************************************!*\ + !*** ./node_modules/next/dist/client/portal/index.js ***! + \*******************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _slicedToArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nvar _s = $RefreshSig$();\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.Portal = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _reactDom = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar Portal = function Portal(_ref) {\n _s();\n\n var children = _ref.children,\n type = _ref.type;\n\n var portalNode = _react[\"default\"].useRef(null);\n\n var _react$default$useSta = _react[\"default\"].useState(),\n _react$default$useSta2 = _slicedToArray(_react$default$useSta, 2),\n forceUpdate = _react$default$useSta2[1];\n\n _react[\"default\"].useEffect(function () {\n portalNode.current = document.createElement(type);\n document.body.appendChild(portalNode.current);\n forceUpdate({});\n return function () {\n if (portalNode.current) {\n document.body.removeChild(portalNode.current);\n }\n };\n }, [type]);\n\n return portalNode.current ? /*#__PURE__*/(0, _reactDom).createPortal(children, portalNode.current) : null;\n};\n\n_s(Portal, \"2G1G/n0Mrpmd7ljT9Y3X5peSz9o=\");\n\n_c = Portal;\nexports.Portal = Portal;\n\nvar _c;\n\n$RefreshReg$(_c, \"Portal\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9wb3J0YWwvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOzs7Ozs7QUFDYkEsOENBQTZDO0FBQ3pDRyxFQUFBQSxLQUFLLEVBQUU7QUFEa0MsQ0FBN0M7QUFHQUQsY0FBQSxHQUFpQixLQUFLLENBQXRCOztBQUNBLElBQUlHLE1BQU0sR0FBR0Msc0JBQXNCLENBQUNDLG1CQUFPLENBQUMsNENBQUQsQ0FBUixDQUFuQzs7QUFDQSxJQUFJQyxTQUFTLEdBQUdELG1CQUFPLENBQUMsb0RBQUQsQ0FBdkI7O0FBQ0EsU0FBU0Qsc0JBQVQsQ0FBZ0NHLEdBQWhDLEVBQXFDO0FBQ2pDLFNBQU9BLEdBQUcsSUFBSUEsR0FBRyxDQUFDQyxVQUFYLEdBQXdCRCxHQUF4QixHQUE4QjtBQUNqQyxlQUFTQTtBQUR3QixHQUFyQztBQUdIOztBQUNELElBQU1MLE1BQU0sR0FBRyxTQUFUQSxNQUFTLE9BQXdCO0FBQUE7O0FBQUEsTUFBckJPLFFBQXFCLFFBQXJCQSxRQUFxQjtBQUFBLE1BQVZDLElBQVUsUUFBVkEsSUFBVTs7QUFDbkMsTUFBSUMsVUFBVSxHQUFHUixNQUFNLFdBQU4sQ0FBZVMsTUFBZixDQUFzQixJQUF0QixDQUFqQjs7QUFDQSw4QkFBc0JULE1BQU0sV0FBTixDQUFlVSxRQUFmLEVBQXRCO0FBQUE7QUFBQSxNQUFPQyxXQUFQOztBQUNBWCxFQUFBQSxNQUFNLFdBQU4sQ0FBZVksU0FBZixDQUF5QixZQUFJO0FBQ3pCSixJQUFBQSxVQUFVLENBQUNLLE9BQVgsR0FBcUJDLFFBQVEsQ0FBQ0MsYUFBVCxDQUF1QlIsSUFBdkIsQ0FBckI7QUFDQU8sSUFBQUEsUUFBUSxDQUFDRSxJQUFULENBQWNDLFdBQWQsQ0FBMEJULFVBQVUsQ0FBQ0ssT0FBckM7QUFDQUYsSUFBQUEsV0FBVyxDQUFDLEVBQUQsQ0FBWDtBQUVBLFdBQU8sWUFBSTtBQUNQLFVBQUlILFVBQVUsQ0FBQ0ssT0FBZixFQUF3QjtBQUNwQkMsUUFBQUEsUUFBUSxDQUFDRSxJQUFULENBQWNFLFdBQWQsQ0FBMEJWLFVBQVUsQ0FBQ0ssT0FBckM7QUFDSDtBQUNKLEtBSkQ7QUFLSCxHQVZELEVBVUcsQ0FDQ04sSUFERCxDQVZIOztBQWFBLFNBQU9DLFVBQVUsQ0FBQ0ssT0FBWCxHQUFxQixhQUFjLENBQUMsR0FBR1YsU0FBSixFQUFlZ0IsWUFBZixDQUE0QmIsUUFBNUIsRUFBc0NFLFVBQVUsQ0FBQ0ssT0FBakQsQ0FBbkMsR0FBK0YsSUFBdEc7QUFDSCxDQWpCRDs7R0FBTWQ7O0tBQUFBO0FBa0JORixjQUFBLEdBQWlCRSxNQUFqQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9wb3J0YWwvaW5kZXguanM/MzFhMiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuUG9ydGFsID0gdm9pZCAwO1xudmFyIF9yZWFjdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJlYWN0XCIpKTtcbnZhciBfcmVhY3REb20gPSByZXF1aXJlKFwicmVhY3QtZG9tXCIpO1xuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuY29uc3QgUG9ydGFsID0gKHsgY2hpbGRyZW4gLCB0eXBlICB9KT0+e1xuICAgIGxldCBwb3J0YWxOb2RlID0gX3JlYWN0LmRlZmF1bHQudXNlUmVmKG51bGwpO1xuICAgIGxldCBbLCBmb3JjZVVwZGF0ZV0gPSBfcmVhY3QuZGVmYXVsdC51c2VTdGF0ZSgpO1xuICAgIF9yZWFjdC5kZWZhdWx0LnVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBwb3J0YWxOb2RlLmN1cnJlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHR5cGUpO1xuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHBvcnRhbE5vZGUuY3VycmVudCk7XG4gICAgICAgIGZvcmNlVXBkYXRlKHtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiAoKT0+e1xuICAgICAgICAgICAgaWYgKHBvcnRhbE5vZGUuY3VycmVudCkge1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQocG9ydGFsTm9kZS5jdXJyZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9LCBbXG4gICAgICAgIHR5cGVcbiAgICBdKTtcbiAgICByZXR1cm4gcG9ydGFsTm9kZS5jdXJyZW50ID8gLyojX19QVVJFX18qLyAoMCwgX3JlYWN0RG9tKS5jcmVhdGVQb3J0YWwoY2hpbGRyZW4sIHBvcnRhbE5vZGUuY3VycmVudCkgOiBudWxsO1xufTtcbmV4cG9ydHMuUG9ydGFsID0gUG9ydGFsO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJQb3J0YWwiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdERvbSIsIm9iaiIsIl9fZXNNb2R1bGUiLCJjaGlsZHJlbiIsInR5cGUiLCJwb3J0YWxOb2RlIiwidXNlUmVmIiwidXNlU3RhdGUiLCJmb3JjZVVwZGF0ZSIsInVzZUVmZmVjdCIsImN1cnJlbnQiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJib2R5IiwiYXBwZW5kQ2hpbGQiLCJyZW1vdmVDaGlsZCIsImNyZWF0ZVBvcnRhbCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/portal/index.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/request-idle-callback.js": +/*!****************************************************************!*\ + !*** ./node_modules/next/dist/client/request-idle-callback.js ***! + \****************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.cancelIdleCallback = exports.requestIdleCallback = void 0;\n\nvar requestIdleCallback = typeof self !== 'undefined' && self.requestIdleCallback && self.requestIdleCallback.bind(window) || function (cb) {\n var start = Date.now();\n return setTimeout(function () {\n cb({\n didTimeout: false,\n timeRemaining: function timeRemaining() {\n return Math.max(0, 50 - (Date.now() - start));\n }\n });\n }, 1);\n};\n\nexports.requestIdleCallback = requestIdleCallback;\n\nvar cancelIdleCallback = typeof self !== 'undefined' && self.cancelIdleCallback && self.cancelIdleCallback.bind(window) || function (id) {\n return clearTimeout(id);\n};\n\nexports.cancelIdleCallback = cancelIdleCallback;\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yZXF1ZXN0LWlkbGUtY2FsbGJhY2suanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCwwQkFBQSxHQUE2QkEsMkJBQUEsR0FBOEIsS0FBSyxDQUFoRTs7QUFDQSxJQUFNRyxtQkFBbUIsR0FBRyxPQUFPQyxJQUFQLEtBQWdCLFdBQWhCLElBQStCQSxJQUFJLENBQUNELG1CQUFwQyxJQUEyREMsSUFBSSxDQUFDRCxtQkFBTCxDQUF5QkUsSUFBekIsQ0FBOEJDLE1BQTlCLENBQTNELElBQW9HLFVBQVNDLEVBQVQsRUFBYTtBQUN6SSxNQUFJQyxLQUFLLEdBQUdDLElBQUksQ0FBQ0MsR0FBTCxFQUFaO0FBQ0EsU0FBT0MsVUFBVSxDQUFDLFlBQVc7QUFDekJKLElBQUFBLEVBQUUsQ0FBQztBQUNDSyxNQUFBQSxVQUFVLEVBQUUsS0FEYjtBQUVDQyxNQUFBQSxhQUFhLEVBQUUseUJBQVc7QUFDdEIsZUFBT0MsSUFBSSxDQUFDQyxHQUFMLENBQVMsQ0FBVCxFQUFZLE1BQU1OLElBQUksQ0FBQ0MsR0FBTCxLQUFhRixLQUFuQixDQUFaLENBQVA7QUFDSDtBQUpGLEtBQUQsQ0FBRjtBQU1ILEdBUGdCLEVBT2QsQ0FQYyxDQUFqQjtBQVFILENBVkQ7O0FBV0FSLDJCQUFBLEdBQThCRyxtQkFBOUI7O0FBQ0EsSUFBTUQsa0JBQWtCLEdBQUcsT0FBT0UsSUFBUCxLQUFnQixXQUFoQixJQUErQkEsSUFBSSxDQUFDRixrQkFBcEMsSUFBMERFLElBQUksQ0FBQ0Ysa0JBQUwsQ0FBd0JHLElBQXhCLENBQTZCQyxNQUE3QixDQUExRCxJQUFrRyxVQUFTVSxFQUFULEVBQWE7QUFDdEksU0FBT0MsWUFBWSxDQUFDRCxFQUFELENBQW5CO0FBQ0gsQ0FGRDs7QUFHQWhCLDBCQUFBLEdBQTZCRSxrQkFBN0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvcmVxdWVzdC1pZGxlLWNhbGxiYWNrLmpzPzFlMjAiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmNhbmNlbElkbGVDYWxsYmFjayA9IGV4cG9ydHMucmVxdWVzdElkbGVDYWxsYmFjayA9IHZvaWQgMDtcbmNvbnN0IHJlcXVlc3RJZGxlQ2FsbGJhY2sgPSB0eXBlb2Ygc2VsZiAhPT0gJ3VuZGVmaW5lZCcgJiYgc2VsZi5yZXF1ZXN0SWRsZUNhbGxiYWNrICYmIHNlbGYucmVxdWVzdElkbGVDYWxsYmFjay5iaW5kKHdpbmRvdykgfHwgZnVuY3Rpb24oY2IpIHtcbiAgICBsZXQgc3RhcnQgPSBEYXRlLm5vdygpO1xuICAgIHJldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICBjYih7XG4gICAgICAgICAgICBkaWRUaW1lb3V0OiBmYWxzZSxcbiAgICAgICAgICAgIHRpbWVSZW1haW5pbmc6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBNYXRoLm1heCgwLCA1MCAtIChEYXRlLm5vdygpIC0gc3RhcnQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSwgMSk7XG59O1xuZXhwb3J0cy5yZXF1ZXN0SWRsZUNhbGxiYWNrID0gcmVxdWVzdElkbGVDYWxsYmFjaztcbmNvbnN0IGNhbmNlbElkbGVDYWxsYmFjayA9IHR5cGVvZiBzZWxmICE9PSAndW5kZWZpbmVkJyAmJiBzZWxmLmNhbmNlbElkbGVDYWxsYmFjayAmJiBzZWxmLmNhbmNlbElkbGVDYWxsYmFjay5iaW5kKHdpbmRvdykgfHwgZnVuY3Rpb24oaWQpIHtcbiAgICByZXR1cm4gY2xlYXJUaW1lb3V0KGlkKTtcbn07XG5leHBvcnRzLmNhbmNlbElkbGVDYWxsYmFjayA9IGNhbmNlbElkbGVDYWxsYmFjaztcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVxdWVzdC1pZGxlLWNhbGxiYWNrLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImNhbmNlbElkbGVDYWxsYmFjayIsInJlcXVlc3RJZGxlQ2FsbGJhY2siLCJzZWxmIiwiYmluZCIsIndpbmRvdyIsImNiIiwic3RhcnQiLCJEYXRlIiwibm93Iiwic2V0VGltZW91dCIsImRpZFRpbWVvdXQiLCJ0aW1lUmVtYWluaW5nIiwiTWF0aCIsIm1heCIsImlkIiwiY2xlYXJUaW1lb3V0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/request-idle-callback.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/route-announcer.js": +/*!**********************************************************!*\ + !*** ./node_modules/next/dist/client/route-announcer.js ***! + \**********************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _slicedToArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nvar _s = $RefreshSig$();\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.RouteAnnouncer = RouteAnnouncer;\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _router = __webpack_require__(/*! ./router */ \"./node_modules/next/dist/client/router.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction RouteAnnouncer() {\n _s();\n\n var _useRouter = (0, _router).useRouter(),\n asPath = _useRouter.asPath;\n\n var _react$default$useSta = _react[\"default\"].useState(''),\n _react$default$useSta2 = _slicedToArray(_react$default$useSta, 2),\n routeAnnouncement = _react$default$useSta2[0],\n setRouteAnnouncement = _react$default$useSta2[1]; // Only announce the path change, but not for the first load because screen\n // reader will do that automatically.\n\n\n var initialPathLoaded = _react[\"default\"].useRef(false); // Every time the path changes, announce the new page’s title following this\n // priority: first the document title (from head), otherwise the first h1, or\n // if none of these exist, then the pathname from the URL. This methodology is\n // inspired by Marcy Sutton’s accessible client routing user testing. More\n // information can be found here:\n // https://www.gatsbyjs.com/blog/2019-07-11-user-testing-accessible-client-routing/\n\n\n _react[\"default\"].useEffect(function () {\n if (!initialPathLoaded.current) {\n initialPathLoaded.current = true;\n return;\n }\n\n if (document.title) {\n setRouteAnnouncement(document.title);\n } else {\n var pageHeader = document.querySelector('h1');\n var ref;\n var content = (ref = pageHeader === null || pageHeader === void 0 ? void 0 : pageHeader.innerText) !== null && ref !== void 0 ? ref : pageHeader === null || pageHeader === void 0 ? void 0 : pageHeader.textContent;\n setRouteAnnouncement(content || asPath);\n }\n }, // TODO: switch to pathname + query object of dynamic route requirements\n [asPath]);\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"p\", {\n \"aria-live\": \"assertive\" // Make the announcement immediately.\n ,\n id: \"__next-route-announcer__\",\n role: \"alert\",\n style: {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n width: '1px',\n // https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe\n whiteSpace: 'nowrap',\n wordWrap: 'normal'\n }\n }, routeAnnouncement);\n}\n\n_s(RouteAnnouncer, \"lpE1qTfKkoN0hZau61j+whW+4H0=\", true);\n\n_c = RouteAnnouncer;\nvar _default = RouteAnnouncer;\nexports[\"default\"] = _default;\n\nvar _c;\n\n$RefreshReg$(_c, \"RouteAnnouncer\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yb3V0ZS1hbm5vdW5jZXIuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOzs7Ozs7QUFDYkEsOENBQTZDO0FBQ3pDRyxFQUFBQSxLQUFLLEVBQUU7QUFEa0MsQ0FBN0M7QUFHQUQsc0JBQUEsR0FBeUJFLGNBQXpCO0FBQ0FGLGtCQUFBLEdBQWtCLEtBQUssQ0FBdkI7O0FBQ0EsSUFBSUcsTUFBTSxHQUFHQyxzQkFBc0IsQ0FBQ0MsbUJBQU8sQ0FBQyw0Q0FBRCxDQUFSLENBQW5DOztBQUNBLElBQUlDLE9BQU8sR0FBR0QsbUJBQU8sQ0FBQywyREFBRCxDQUFyQjs7QUFDQSxTQUFTRCxzQkFBVCxDQUFnQ0csR0FBaEMsRUFBcUM7QUFDakMsU0FBT0EsR0FBRyxJQUFJQSxHQUFHLENBQUNDLFVBQVgsR0FBd0JELEdBQXhCLEdBQThCO0FBQ2pDLGVBQVNBO0FBRHdCLEdBQXJDO0FBR0g7O0FBQ0QsU0FBU0wsY0FBVCxHQUEwQjtBQUFBOztBQUN0QixtQkFBb0IsQ0FBQyxHQUFHSSxPQUFKLEVBQWFHLFNBQWIsRUFBcEI7QUFBQSxNQUFRQyxNQUFSLGNBQVFBLE1BQVI7O0FBQ0EsOEJBQWtEUCxNQUFNLFdBQU4sQ0FBZVEsUUFBZixDQUF3QixFQUF4QixDQUFsRDtBQUFBO0FBQUEsTUFBT0MsaUJBQVA7QUFBQSxNQUEwQkMsb0JBQTFCLDZCQUZzQixDQUd0QjtBQUNBOzs7QUFDQSxNQUFNQyxpQkFBaUIsR0FBR1gsTUFBTSxXQUFOLENBQWVZLE1BQWYsQ0FBc0IsS0FBdEIsQ0FBMUIsQ0FMc0IsQ0FNdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDQVosRUFBQUEsTUFBTSxXQUFOLENBQWVhLFNBQWYsQ0FBeUIsWUFBSTtBQUN6QixRQUFJLENBQUNGLGlCQUFpQixDQUFDRyxPQUF2QixFQUFnQztBQUM1QkgsTUFBQUEsaUJBQWlCLENBQUNHLE9BQWxCLEdBQTRCLElBQTVCO0FBQ0E7QUFDSDs7QUFDRCxRQUFJQyxRQUFRLENBQUNDLEtBQWIsRUFBb0I7QUFDaEJOLE1BQUFBLG9CQUFvQixDQUFDSyxRQUFRLENBQUNDLEtBQVYsQ0FBcEI7QUFDSCxLQUZELE1BRU87QUFDSCxVQUFNQyxVQUFVLEdBQUdGLFFBQVEsQ0FBQ0csYUFBVCxDQUF1QixJQUF2QixDQUFuQjtBQUNBLFVBQUlDLEdBQUo7QUFDQSxVQUFNQyxPQUFPLEdBQUcsQ0FBQ0QsR0FBRyxHQUFHRixVQUFVLEtBQUssSUFBZixJQUF1QkEsVUFBVSxLQUFLLEtBQUssQ0FBM0MsR0FBK0MsS0FBSyxDQUFwRCxHQUF3REEsVUFBVSxDQUFDSSxTQUExRSxNQUF5RixJQUF6RixJQUFpR0YsR0FBRyxLQUFLLEtBQUssQ0FBOUcsR0FBa0hBLEdBQWxILEdBQXdIRixVQUFVLEtBQUssSUFBZixJQUF1QkEsVUFBVSxLQUFLLEtBQUssQ0FBM0MsR0FBK0MsS0FBSyxDQUFwRCxHQUF3REEsVUFBVSxDQUFDSyxXQUEzTTtBQUNBWixNQUFBQSxvQkFBb0IsQ0FBQ1UsT0FBTyxJQUFJYixNQUFaLENBQXBCO0FBQ0g7QUFDSixHQWJELEVBYUc7QUFDSCxHQUNJQSxNQURKLENBZEE7O0FBaUJBLFNBQU8sYUFBY1AsTUFBTSxXQUFOLENBQWV1QixhQUFmLENBQTZCLEdBQTdCLEVBQWtDO0FBQ25ELGlCQUFhLFdBRHNDLENBQzFCO0FBRDBCO0FBR25EQyxJQUFBQSxFQUFFLEVBQUUsMEJBSCtDO0FBSW5EQyxJQUFBQSxJQUFJLEVBQUUsT0FKNkM7QUFLbkRDLElBQUFBLEtBQUssRUFBRTtBQUNIQyxNQUFBQSxNQUFNLEVBQUUsQ0FETDtBQUVIQyxNQUFBQSxJQUFJLEVBQUUsZUFGSDtBQUdIQyxNQUFBQSxNQUFNLEVBQUUsS0FITDtBQUlIQyxNQUFBQSxNQUFNLEVBQUUsTUFKTDtBQUtIQyxNQUFBQSxRQUFRLEVBQUUsUUFMUDtBQU1IQyxNQUFBQSxPQUFPLEVBQUUsQ0FOTjtBQU9IQyxNQUFBQSxRQUFRLEVBQUUsVUFQUDtBQVFIQyxNQUFBQSxLQUFLLEVBQUUsS0FSSjtBQVNIO0FBQ0FDLE1BQUFBLFVBQVUsRUFBRSxRQVZUO0FBV0hDLE1BQUFBLFFBQVEsRUFBRTtBQVhQO0FBTDRDLEdBQWxDLEVBa0JsQjNCLGlCQWxCa0IsQ0FBckI7QUFtQkg7O0dBaERRVjs7S0FBQUE7QUFpRFQsSUFBSXNDLFFBQVEsR0FBR3RDLGNBQWY7QUFDQUYsa0JBQUEsR0FBa0J3QyxRQUFsQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yb3V0ZS1hbm5vdW5jZXIuanM/NTgyNyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuUm91dGVBbm5vdW5jZXIgPSBSb3V0ZUFubm91bmNlcjtcbmV4cG9ydHMuZGVmYXVsdCA9IHZvaWQgMDtcbnZhciBfcmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG52YXIgX3JvdXRlciA9IHJlcXVpcmUoXCIuL3JvdXRlclwiKTtcbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbmZ1bmN0aW9uIFJvdXRlQW5ub3VuY2VyKCkge1xuICAgIGNvbnN0IHsgYXNQYXRoICB9ID0gKDAsIF9yb3V0ZXIpLnVzZVJvdXRlcigpO1xuICAgIGNvbnN0IFtyb3V0ZUFubm91bmNlbWVudCwgc2V0Um91dGVBbm5vdW5jZW1lbnRdID0gX3JlYWN0LmRlZmF1bHQudXNlU3RhdGUoJycpO1xuICAgIC8vIE9ubHkgYW5ub3VuY2UgdGhlIHBhdGggY2hhbmdlLCBidXQgbm90IGZvciB0aGUgZmlyc3QgbG9hZCBiZWNhdXNlIHNjcmVlblxuICAgIC8vIHJlYWRlciB3aWxsIGRvIHRoYXQgYXV0b21hdGljYWxseS5cbiAgICBjb25zdCBpbml0aWFsUGF0aExvYWRlZCA9IF9yZWFjdC5kZWZhdWx0LnVzZVJlZihmYWxzZSk7XG4gICAgLy8gRXZlcnkgdGltZSB0aGUgcGF0aCBjaGFuZ2VzLCBhbm5vdW5jZSB0aGUgbmV3IHBhZ2XigJlzIHRpdGxlIGZvbGxvd2luZyB0aGlzXG4gICAgLy8gcHJpb3JpdHk6IGZpcnN0IHRoZSBkb2N1bWVudCB0aXRsZSAoZnJvbSBoZWFkKSwgb3RoZXJ3aXNlIHRoZSBmaXJzdCBoMSwgb3JcbiAgICAvLyBpZiBub25lIG9mIHRoZXNlIGV4aXN0LCB0aGVuIHRoZSBwYXRobmFtZSBmcm9tIHRoZSBVUkwuIFRoaXMgbWV0aG9kb2xvZ3kgaXNcbiAgICAvLyBpbnNwaXJlZCBieSBNYXJjeSBTdXR0b27igJlzIGFjY2Vzc2libGUgY2xpZW50IHJvdXRpbmcgdXNlciB0ZXN0aW5nLiBNb3JlXG4gICAgLy8gaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGhlcmU6XG4gICAgLy8gaHR0cHM6Ly93d3cuZ2F0c2J5anMuY29tL2Jsb2cvMjAxOS0wNy0xMS11c2VyLXRlc3RpbmctYWNjZXNzaWJsZS1jbGllbnQtcm91dGluZy9cbiAgICBfcmVhY3QuZGVmYXVsdC51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgaWYgKCFpbml0aWFsUGF0aExvYWRlZC5jdXJyZW50KSB7XG4gICAgICAgICAgICBpbml0aWFsUGF0aExvYWRlZC5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZG9jdW1lbnQudGl0bGUpIHtcbiAgICAgICAgICAgIHNldFJvdXRlQW5ub3VuY2VtZW50KGRvY3VtZW50LnRpdGxlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHBhZ2VIZWFkZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdoMScpO1xuICAgICAgICAgICAgdmFyIHJlZjtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSAocmVmID0gcGFnZUhlYWRlciA9PT0gbnVsbCB8fCBwYWdlSGVhZGVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwYWdlSGVhZGVyLmlubmVyVGV4dCkgIT09IG51bGwgJiYgcmVmICE9PSB2b2lkIDAgPyByZWYgOiBwYWdlSGVhZGVyID09PSBudWxsIHx8IHBhZ2VIZWFkZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBhZ2VIZWFkZXIudGV4dENvbnRlbnQ7XG4gICAgICAgICAgICBzZXRSb3V0ZUFubm91bmNlbWVudChjb250ZW50IHx8IGFzUGF0aCk7XG4gICAgICAgIH1cbiAgICB9LCAvLyBUT0RPOiBzd2l0Y2ggdG8gcGF0aG5hbWUgKyBxdWVyeSBvYmplY3Qgb2YgZHluYW1pYyByb3V0ZSByZXF1aXJlbWVudHNcbiAgICBbXG4gICAgICAgIGFzUGF0aFxuICAgIF0pO1xuICAgIHJldHVybigvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJwXCIsIHtcbiAgICAgICAgXCJhcmlhLWxpdmVcIjogXCJhc3NlcnRpdmVcIiAvLyBNYWtlIHRoZSBhbm5vdW5jZW1lbnQgaW1tZWRpYXRlbHkuXG4gICAgICAgICxcbiAgICAgICAgaWQ6IFwiX19uZXh0LXJvdXRlLWFubm91bmNlcl9fXCIsXG4gICAgICAgIHJvbGU6IFwiYWxlcnRcIixcbiAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgIGJvcmRlcjogMCxcbiAgICAgICAgICAgIGNsaXA6ICdyZWN0KDAgMCAwIDApJyxcbiAgICAgICAgICAgIGhlaWdodDogJzFweCcsXG4gICAgICAgICAgICBtYXJnaW46ICctMXB4JyxcbiAgICAgICAgICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgICAgICAgICAgIHBhZGRpbmc6IDAsXG4gICAgICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgICAgIHdpZHRoOiAnMXB4JyxcbiAgICAgICAgICAgIC8vIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAgICAgICAgICAgIHdoaXRlU3BhY2U6ICdub3dyYXAnLFxuICAgICAgICAgICAgd29yZFdyYXA6ICdub3JtYWwnXG4gICAgICAgIH1cbiAgICB9LCByb3V0ZUFubm91bmNlbWVudCkpO1xufVxudmFyIF9kZWZhdWx0ID0gUm91dGVBbm5vdW5jZXI7XG5leHBvcnRzLmRlZmF1bHQgPSBfZGVmYXVsdDtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cm91dGUtYW5ub3VuY2VyLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsIlJvdXRlQW5ub3VuY2VyIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcm91dGVyIiwib2JqIiwiX19lc01vZHVsZSIsInVzZVJvdXRlciIsImFzUGF0aCIsInVzZVN0YXRlIiwicm91dGVBbm5vdW5jZW1lbnQiLCJzZXRSb3V0ZUFubm91bmNlbWVudCIsImluaXRpYWxQYXRoTG9hZGVkIiwidXNlUmVmIiwidXNlRWZmZWN0IiwiY3VycmVudCIsImRvY3VtZW50IiwidGl0bGUiLCJwYWdlSGVhZGVyIiwicXVlcnlTZWxlY3RvciIsInJlZiIsImNvbnRlbnQiLCJpbm5lclRleHQiLCJ0ZXh0Q29udGVudCIsImNyZWF0ZUVsZW1lbnQiLCJpZCIsInJvbGUiLCJzdHlsZSIsImJvcmRlciIsImNsaXAiLCJoZWlnaHQiLCJtYXJnaW4iLCJvdmVyZmxvdyIsInBhZGRpbmciLCJwb3NpdGlvbiIsIndpZHRoIiwid2hpdGVTcGFjZSIsIndvcmRXcmFwIiwiX2RlZmF1bHQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/route-announcer.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/route-loader.js": +/*!*******************************************************!*\ + !*** ./node_modules/next/dist/client/route-loader.js ***! + \*******************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.markAssetError = markAssetError;\nexports.isAssetError = isAssetError;\nexports.getClientBuildManifest = getClientBuildManifest;\nexports.getMiddlewareManifest = getMiddlewareManifest;\nexports.createRouteLoader = createRouteLoader;\n\nvar _getAssetPathFromRoute = _interopRequireDefault(__webpack_require__(/*! ../shared/lib/router/utils/get-asset-path-from-route */ \"./node_modules/next/dist/shared/lib/router/utils/get-asset-path-from-route.js\"));\n\nvar _requestIdleCallback = __webpack_require__(/*! ./request-idle-callback */ \"./node_modules/next/dist/client/request-idle-callback.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n} // 3.8s was arbitrarily chosen as it's what https://web.dev/interactive\n// considers as \"Good\" time-to-interactive. We must assume something went\n// wrong beyond this point, and then fall-back to a full page transition to\n// show the user something of value.\n\n\nvar MS_MAX_IDLE_DELAY = 3800;\n\nfunction withFuture(key, map, generator) {\n var entry = map.get(key);\n\n if (entry) {\n if ('future' in entry) {\n return entry.future;\n }\n\n return Promise.resolve(entry);\n }\n\n var resolver;\n var prom = new Promise(function (resolve) {\n resolver = resolve;\n });\n map.set(key, entry = {\n resolve: resolver,\n future: prom\n });\n return generator ? generator() // eslint-disable-next-line no-sequences\n .then(function (value) {\n return resolver(value), value;\n })[\"catch\"](function (err) {\n map[\"delete\"](key);\n throw err;\n }) : prom;\n}\n\nfunction hasPrefetch(link) {\n try {\n link = document.createElement('link');\n return (// detect IE11 since it supports prefetch but isn't detected\n // with relList.support\n !!window.MSInputMethodContext && !!document.documentMode || link.relList.supports('prefetch')\n );\n } catch (e) {\n return false;\n }\n}\n\nvar canPrefetch = hasPrefetch();\n\nfunction prefetchViaDom(href, as, link) {\n return new Promise(function (res, rej) {\n var selector = \"\\n link[rel=\\\"prefetch\\\"][href^=\\\"\".concat(href, \"\\\"],\\n link[rel=\\\"preload\\\"][href^=\\\"\").concat(href, \"\\\"],\\n script[src^=\\\"\").concat(href, \"\\\"]\");\n\n if (document.querySelector(selector)) {\n return res();\n }\n\n link = document.createElement('link'); // The order of property assignment here is intentional:\n\n if (as) link.as = as;\n link.rel = \"prefetch\";\n link.crossOrigin = undefined;\n link.onload = res;\n link.onerror = rej; // `href` should always be last:\n\n link.href = href;\n document.head.appendChild(link);\n });\n}\n\nvar ASSET_LOAD_ERROR = Symbol('ASSET_LOAD_ERROR');\n\nfunction markAssetError(err) {\n return Object.defineProperty(err, ASSET_LOAD_ERROR, {});\n}\n\nfunction isAssetError(err) {\n return err && ASSET_LOAD_ERROR in err;\n}\n\nfunction appendScript(src, script) {\n return new Promise(function (resolve, reject) {\n script = document.createElement('script'); // The order of property assignment here is intentional.\n // 1. Setup success/failure hooks in case the browser synchronously\n // executes when `src` is set.\n\n script.onload = resolve;\n\n script.onerror = function () {\n return reject(markAssetError(new Error(\"Failed to load script: \".concat(src))));\n }; // 2. Configure the cross-origin attribute before setting `src` in case the\n // browser begins to fetch.\n\n\n script.crossOrigin = undefined; // 3. Finally, set the source and inject into the DOM in case the child\n // must be appended for fetching to start.\n\n script.src = src;\n document.body.appendChild(script);\n });\n} // We wait for pages to be built in dev before we start the route transition\n// timeout to prevent an un-necessary hard navigation in development.\n\n\nvar devBuildPromise; // Resolve a promise that times out after given amount of milliseconds.\n\nfunction resolvePromiseWithTimeout(p, ms, err) {\n return new Promise(function (resolve, reject) {\n var cancelled = false;\n p.then(function (r) {\n // Resolved, cancel the timeout\n cancelled = true;\n resolve(r);\n })[\"catch\"](reject); // We wrap these checks separately for better dead-code elimination in\n // production bundles.\n\n if (true) {\n (devBuildPromise || Promise.resolve()).then(function () {\n (0, _requestIdleCallback).requestIdleCallback(function () {\n return setTimeout(function () {\n if (!cancelled) {\n reject(err);\n }\n }, ms);\n });\n });\n }\n\n if (false) {}\n });\n}\n\nfunction getClientBuildManifest() {\n if (self.__BUILD_MANIFEST) {\n return Promise.resolve(self.__BUILD_MANIFEST);\n }\n\n var onBuildManifest = new Promise(function (resolve) {\n // Mandatory because this is not concurrent safe:\n var cb = self.__BUILD_MANIFEST_CB;\n\n self.__BUILD_MANIFEST_CB = function () {\n resolve(self.__BUILD_MANIFEST);\n cb && cb();\n };\n });\n return resolvePromiseWithTimeout(onBuildManifest, MS_MAX_IDLE_DELAY, markAssetError(new Error('Failed to load client build manifest')));\n}\n\nfunction getMiddlewareManifest() {\n if (self.__MIDDLEWARE_MANIFEST) {\n return Promise.resolve(self.__MIDDLEWARE_MANIFEST);\n }\n\n var onMiddlewareManifest = new Promise(function (resolve) {\n var cb = self.__MIDDLEWARE_MANIFEST_CB;\n\n self.__MIDDLEWARE_MANIFEST_CB = function () {\n resolve(self.__MIDDLEWARE_MANIFEST);\n cb && cb();\n };\n });\n return resolvePromiseWithTimeout(onMiddlewareManifest, MS_MAX_IDLE_DELAY, markAssetError(new Error('Failed to load client middleware manifest')));\n}\n\nfunction getFilesForRoute(assetPrefix, route) {\n if (true) {\n return Promise.resolve({\n scripts: [assetPrefix + '/_next/static/chunks/pages' + encodeURI((0, _getAssetPathFromRoute)[\"default\"](route, '.js'))],\n // Styles are handled by `style-loader` in development:\n css: []\n });\n }\n\n return getClientBuildManifest().then(function (manifest) {\n if (!(route in manifest)) {\n throw markAssetError(new Error(\"Failed to lookup route: \".concat(route)));\n }\n\n var allFiles = manifest[route].map(function (entry) {\n return assetPrefix + '/_next/' + encodeURI(entry);\n });\n return {\n scripts: allFiles.filter(function (v) {\n return v.endsWith('.js');\n }),\n css: allFiles.filter(function (v) {\n return v.endsWith('.css');\n })\n };\n });\n}\n\nfunction createRouteLoader(assetPrefix) {\n var entrypoints = new Map();\n var loadedScripts = new Map();\n var styleSheets = new Map();\n var routes = new Map();\n\n function maybeExecuteScript(src) {\n // With HMR we might need to \"reload\" scripts when they are\n // disposed and readded. Executing scripts twice has no functional\n // differences\n if (false) { var prom; } else {\n return appendScript(src);\n }\n }\n\n function fetchStyleSheet(href) {\n var prom = styleSheets.get(href);\n\n if (prom) {\n return prom;\n }\n\n styleSheets.set(href, prom = fetch(href).then(function (res) {\n if (!res.ok) {\n throw new Error(\"Failed to load stylesheet: \".concat(href));\n }\n\n return res.text().then(function (text) {\n return {\n href: href,\n content: text\n };\n });\n })[\"catch\"](function (err) {\n throw markAssetError(err);\n }));\n return prom;\n }\n\n return {\n whenEntrypoint: function whenEntrypoint(route) {\n return withFuture(route, entrypoints);\n },\n onEntrypoint: function onEntrypoint(route, execute) {\n (execute ? Promise.resolve().then(function () {\n return execute();\n }).then(function (exports) {\n return {\n component: exports && exports[\"default\"] || exports,\n exports: exports\n };\n }, function (err) {\n return {\n error: err\n };\n }) : Promise.resolve(undefined)).then(function (input) {\n var old = entrypoints.get(route);\n\n if (old && 'resolve' in old) {\n if (input) {\n entrypoints.set(route, input);\n old.resolve(input);\n }\n } else {\n if (input) {\n entrypoints.set(route, input);\n } else {\n entrypoints[\"delete\"](route);\n } // when this entrypoint has been resolved before\n // the route is outdated and we want to invalidate\n // this cache entry\n\n\n routes[\"delete\"](route);\n }\n });\n },\n loadRoute: function loadRoute(route, prefetch) {\n var _this = this;\n\n return withFuture(route, routes, function () {\n var routeFilesPromise = getFilesForRoute(assetPrefix, route).then(function (_ref) {\n var scripts = _ref.scripts,\n css = _ref.css;\n return Promise.all([entrypoints.has(route) ? [] : Promise.all(scripts.map(maybeExecuteScript)), Promise.all(css.map(fetchStyleSheet))]);\n }).then(function (res) {\n return _this.whenEntrypoint(route).then(function (entrypoint) {\n return {\n entrypoint: entrypoint,\n styles: res[1]\n };\n });\n });\n\n if (true) {\n devBuildPromise = new Promise(function (resolve) {\n if (routeFilesPromise) {\n return routeFilesPromise[\"finally\"](function () {\n resolve();\n });\n }\n });\n }\n\n return resolvePromiseWithTimeout(routeFilesPromise, MS_MAX_IDLE_DELAY, markAssetError(new Error(\"Route did not complete loading: \".concat(route)))).then(function (_ref2) {\n var entrypoint = _ref2.entrypoint,\n styles = _ref2.styles;\n var res = Object.assign({\n styles: styles\n }, entrypoint);\n return 'error' in entrypoint ? entrypoint : res;\n })[\"catch\"](function (err) {\n if (prefetch) {\n // we don't want to cache errors during prefetch\n throw err;\n }\n\n return {\n error: err\n };\n });\n });\n },\n prefetch: function prefetch(route) {\n var _this2 = this;\n\n // https://github.com/GoogleChromeLabs/quicklink/blob/453a661fa1fa940e2d2e044452398e38c67a98fb/src/index.mjs#L115-L118\n // License: Apache 2.0\n var cn;\n\n if (cn = navigator.connection) {\n // Don't prefetch if using 2G or if Save-Data is enabled.\n if (cn.saveData || /2g/.test(cn.effectiveType)) return Promise.resolve();\n }\n\n return getFilesForRoute(assetPrefix, route).then(function (output) {\n return Promise.all(canPrefetch ? output.scripts.map(function (script) {\n return prefetchViaDom(script, 'script');\n }) : []);\n }).then(function () {\n (0, _requestIdleCallback).requestIdleCallback(function () {\n return _this2.loadRoute(route, true)[\"catch\"](function () {});\n });\n })[\"catch\"]( // swallow prefetch errors\n function () {});\n }\n };\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yb3V0ZS1sb2FkZXIuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxzQkFBQSxHQUF5QkUsY0FBekI7QUFDQUYsb0JBQUEsR0FBdUJHLFlBQXZCO0FBQ0FILDhCQUFBLEdBQWlDSSxzQkFBakM7QUFDQUosNkJBQUEsR0FBZ0NLLHFCQUFoQztBQUNBTCx5QkFBQSxHQUE0Qk0saUJBQTVCOztBQUNBLElBQUlDLHNCQUFzQixHQUFHQyxzQkFBc0IsQ0FBQ0MsbUJBQU8sQ0FBQywySUFBRCxDQUFSLENBQW5EOztBQUNBLElBQUlDLG9CQUFvQixHQUFHRCxtQkFBTyxDQUFDLHlGQUFELENBQWxDOztBQUNBLFNBQVNELHNCQUFULENBQWdDRyxHQUFoQyxFQUFxQztBQUNqQyxTQUFPQSxHQUFHLElBQUlBLEdBQUcsQ0FBQ0MsVUFBWCxHQUF3QkQsR0FBeEIsR0FBOEI7QUFDakMsZUFBU0E7QUFEd0IsR0FBckM7QUFHSCxFQUNEO0FBQ0E7QUFDQTtBQUNBOzs7QUFDQSxJQUFNRSxpQkFBaUIsR0FBRyxJQUExQjs7QUFDQSxTQUFTQyxVQUFULENBQW9CQyxHQUFwQixFQUF5QkMsR0FBekIsRUFBOEJDLFNBQTlCLEVBQXlDO0FBQ3JDLE1BQUlDLEtBQUssR0FBR0YsR0FBRyxDQUFDRyxHQUFKLENBQVFKLEdBQVIsQ0FBWjs7QUFDQSxNQUFJRyxLQUFKLEVBQVc7QUFDUCxRQUFJLFlBQVlBLEtBQWhCLEVBQXVCO0FBQ25CLGFBQU9BLEtBQUssQ0FBQ0UsTUFBYjtBQUNIOztBQUNELFdBQU9DLE9BQU8sQ0FBQ0MsT0FBUixDQUFnQkosS0FBaEIsQ0FBUDtBQUNIOztBQUNELE1BQUlLLFFBQUo7QUFDQSxNQUFNQyxJQUFJLEdBQUcsSUFBSUgsT0FBSixDQUFZLFVBQUNDLE9BQUQsRUFBVztBQUNoQ0MsSUFBQUEsUUFBUSxHQUFH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QUFuQixFQUErQjtBQUMzQjtBQUNBLFlBQUlGLEVBQUUsQ0FBQ0csUUFBSCxJQUFlLEtBQUtDLElBQUwsQ0FBVUosRUFBRSxDQUFDSyxhQUFiLENBQW5CLEVBQWdELE9BQU9yRyxPQUFPLENBQUNDLE9BQVIsRUFBUDtBQUNuRDs7QUFDRCxhQUFPeUQsZ0JBQWdCLENBQUNDLFdBQUQsRUFBY0MsS0FBZCxDQUFoQixDQUFxQ3ZELElBQXJDLENBQTBDLFVBQUNpRyxNQUFEO0FBQUEsZUFBVXRHLE9BQU8sQ0FBQzJGLEdBQVIsQ0FBWTFFLFdBQVcsR0FBR3FGLE1BQU0sQ0FBQ3pDLE9BQVAsQ0FBZWxFLEdBQWYsQ0FBbUIsVUFBQzJDLE1BQUQ7QUFBQSxpQkFBVXBCLGNBQWMsQ0FBQ29CLE1BQUQsRUFBUyxRQUFULENBQXhCO0FBQUEsU0FBbkIsQ0FBSCxHQUMxRSxFQURtRCxDQUFWO0FBQUEsT0FBMUMsRUFFTGpDLElBRkssQ0FFQSxZQUFJO0FBQ1AsU0FBQyxHQUFHaEIsb0JBQUosRUFBMEIyRCxtQkFBMUIsQ0FBOEM7QUFBQSxpQkFBSSxNQUFJLENBQUN3QyxTQUFMLENBQWU1QixLQUFmLEVBQXNCLElBQXRCLFdBQWtDLFlBQUksQ0FDbkYsQ0FENkMsQ0FBSjtBQUFBLFNBQTlDO0FBR0gsT0FOTSxZQU1FO0FBQ1Qsa0JBQUksQ0FDSCxDQVJNLENBQVA7QUFTSDtBQXpGRSxHQUFQO0FBMkZIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3JvdXRlLWxvYWRlci5qcz9lYTM0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5tYXJrQXNzZXRFcnJvciA9IG1hcmtBc3NldEVycm9yO1xuZXhwb3J0cy5pc0Fzc2V0RXJyb3IgPSBpc0Fzc2V0RXJyb3I7XG5leHBvcnRzLmdldENsaWVudEJ1aWxkTWFuaWZlc3QgPSBnZXRDbGllbnRCdWlsZE1hbmlmZXN0O1xuZXhwb3J0cy5nZXRNaWRkbGV3YXJlTWFuaWZlc3QgPSBnZXRNaWRkbGV3YXJlTWFuaWZlc3Q7XG5leHBvcnRzLmNyZWF0ZVJvdXRlTG9hZGVyID0gY3JlYXRlUm91dGVMb2FkZXI7XG52YXIgX2dldEFzc2V0UGF0aEZyb21Sb3V0ZSA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2dldC1hc3NldC1wYXRoLWZyb20tcm91dGVcIikpO1xudmFyIF9yZXF1ZXN0SWRsZUNhbGxiYWNrID0gcmVxdWlyZShcIi4vcmVxdWVzdC1pZGxlLWNhbGxiYWNrXCIpO1xuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuLy8gMy44cyB3YXMgYXJiaXRyYXJpbHkgY2hvc2VuIGFzIGl0J3Mgd2hhdCBodHRwczovL3dlYi5kZXYvaW50ZXJhY3RpdmVcbi8vIGNvbnNpZGVycyBhcyBcIkdvb2RcIiB0aW1lLXRvLWludGVyYWN0aXZlLiBXZSBtdXN0IGFzc3VtZSBzb21ldGhpbmcgd2VudFxuLy8gd3JvbmcgYmV5b25kIHRoaXMgcG9pbnQsIGFuZCB0aGVuIGZhbGwtYmFjayB0byBhIGZ1bGwgcGFnZSB0cmFuc2l0aW9uIHRvXG4vLyBzaG93IHRoZSB1c2VyIHNvbWV0aGluZyBvZiB2YWx1ZS5cbmNvbnN0IE1TX01BWF9JRExFX0RFTEFZID0gMzgwMDtcbmZ1bmN0aW9uIHdpdGhGdXR1cmUoa2V5LCBtYXAsIGdlbmVyYXRvcikge1xuICAgIGxldCBlbnRyeSA9IG1hcC5nZXQoa2V5KTtcbiAgICBpZiAoZW50cnkpIHtcbiAgICAgICAgaWYgKCdmdXR1cmUnIGluIGVudHJ5KSB7XG4gICAgICAgICAgICByZXR1cm4gZW50cnkuZnV0dXJlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZW50cnkpO1xuICAgIH1cbiAgICBsZXQgcmVzb2x2ZXI7XG4gICAgY29uc3QgcHJvbSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKT0+e1xuICAgICAgICByZXNvbHZlciA9IHJlc29sdmU7XG4gICAgfSk7XG4gICAgbWFwLnNldChrZXksIGVudHJ5ID0ge1xuICAgICAgICByZXNvbHZlOiByZXNvbHZlcixcbiAgICAgICAgZnV0dXJlOiBwcm9tXG4gICAgfSk7XG4gICAgcmV0dXJuIGdlbmVyYXRvciA/IGdlbmVyYXRvcigpLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlcXVlbmNlc1xuICAgIC50aGVuKCh2YWx1ZSk9PihyZXNvbHZlcih2YWx1ZSksIHZhbHVlKVxuICAgICkuY2F0Y2goKGVycik9PntcbiAgICAgICAgbWFwLmRlbGV0ZShrZXkpO1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgfSkgOiBwcm9tO1xufVxuZnVuY3Rpb24gaGFzUHJlZmV0Y2gobGluaykge1xuICAgIHRyeSB7XG4gICAgICAgIGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XG4gICAgICAgIHJldHVybigvLyBkZXRlY3QgSUUxMSBzaW5jZSBpdCBzdXBwb3J0cyBwcmVmZXRjaCBidXQgaXNuJ3QgZGV0ZWN0ZWRcbiAgICAgICAgLy8gd2l0aCByZWxMaXN0LnN1cHBvcnRcbiAgICAgICAgKCEhd2luZG93Lk1TSW5wdXRNZXRob2RDb250ZXh0ICYmICEhZG9jdW1lbnQuZG9jdW1lbnRNb2RlKSB8fCBsaW5rLnJlbExpc3Quc3VwcG9ydHMoJ3ByZWZldGNoJykpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cbmNvbnN0IGNhblByZWZldGNoID0gaGFzUHJlZmV0Y2goKTtcbmZ1bmN0aW9uIHByZWZldGNoVmlhRG9tKGhyZWYsIGFzLCBsaW5rKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXMsIHJlaik9PntcbiAgICAgICAgY29uc3Qgc2VsZWN0b3IgPSBgXG4gICAgICBsaW5rW3JlbD1cInByZWZldGNoXCJdW2hyZWZePVwiJHtocmVmfVwiXSxcbiAgICAgIGxpbmtbcmVsPVwicHJlbG9hZFwiXVtocmVmXj1cIiR7aHJlZn1cIl0sXG4gICAgICBzY3JpcHRbc3JjXj1cIiR7aHJlZn1cIl1gO1xuICAgICAgICBpZiAoZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzZWxlY3RvcikpIHtcbiAgICAgICAgICAgIHJldHVybiByZXMoKTtcbiAgICAgICAgfVxuICAgICAgICBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpO1xuICAgICAgICAvLyBUaGUgb3JkZXIgb2YgcHJvcGVydHkgYXNzaWdubWVudCBoZXJlIGlzIGludGVudGlvbmFsOlxuICAgICAgICBpZiAoYXMpIGxpbmsuYXMgPSBhcztcbiAgICAgICAgbGluay5yZWwgPSBgcHJlZmV0Y2hgO1xuICAgICAgICBsaW5rLmNyb3NzT3JpZ2luID0gcHJvY2Vzcy5lbnYuX19ORVhUX0NST1NTX09SSUdJTjtcbiAgICAgICAgbGluay5vbmxvYWQgPSByZXM7XG4gICAgICAgIGxpbmsub25lcnJvciA9IHJlajtcbiAgICAgICAgLy8gYGhyZWZgIHNob3VsZCBhbHdheXMgYmUgbGFzdDpcbiAgICAgICAgbGluay5ocmVmID0gaHJlZjtcbiAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChsaW5rKTtcbiAgICB9KTtcbn1cbmNvbnN0IEFTU0VUX0xPQURfRVJST1IgPSBTeW1ib2woJ0FTU0VUX0xPQURfRVJST1InKTtcbmZ1bmN0aW9uIG1hcmtBc3NldEVycm9yKGVycikge1xuICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXJyLCBBU1NFVF9MT0FEX0VSUk9SLCB7XG4gICAgfSk7XG59XG5mdW5jdGlvbiBpc0Fzc2V0RXJyb3IoZXJyKSB7XG4gICAgcmV0dXJuIGVyciAmJiBBU1NFVF9MT0FEX0VSUk9SIGluIGVycjtcbn1cbmZ1bmN0aW9uIGFwcGVuZFNjcmlwdChzcmMsIHNjcmlwdCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KT0+e1xuICAgICAgICBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICAgICAgLy8gVGhlIG9yZGVyIG9mIHByb3BlcnR5IGFzc2lnbm1lbnQgaGVyZSBpcyBpbnRlbnRpb25hbC5cbiAgICAgICAgLy8gMS4gU2V0dXAgc3VjY2Vzcy9mYWlsdXJlIGhvb2tzIGluIGNhc2UgdGhlIGJyb3dzZXIgc3luY2hyb25vdXNseVxuICAgICAgICAvLyAgICBleGVjdXRlcyB3aGVuIGBzcmNgIGlzIHNldC5cbiAgICAgICAgc2NyaXB0Lm9ubG9hZCA9IHJlc29sdmU7XG4gICAgICAgIHNjcmlwdC5vbmVycm9yID0gKCk9PnJlamVjdChtYXJrQXNzZXRFcnJvcihuZXcgRXJyb3IoYEZhaWxlZCB0byBsb2FkIHNjcmlwdDogJHtzcmN9YCkpKVxuICAgICAgICA7XG4gICAgICAgIC8vIDIuIENvbmZpZ3VyZSB0aGUgY3Jvc3Mtb3JpZ2luIGF0dHJpYnV0ZSBiZWZvcmUgc2V0dGluZyBgc3JjYCBpbiBjYXNlIHRoZVxuICAgICAgICAvLyAgICBicm93c2VyIGJlZ2lucyB0byBmZXRjaC5cbiAgICAgICAgc2NyaXB0LmNyb3NzT3JpZ2luID0gcHJvY2Vzcy5lbnYuX19ORVhUX0NST1NTX09SSUdJTjtcbiAgICAgICAgLy8gMy4gRmluYWxseSwgc2V0IHRoZSBzb3VyY2UgYW5kIGluamVjdCBpbnRvIHRoZSBET00gaW4gY2FzZSB0aGUgY2hpbGRcbiAgICAgICAgLy8gICAgbXVzdCBiZSBhcHBlbmRlZCBmb3IgZmV0Y2hpbmcgdG8gc3RhcnQuXG4gICAgICAgIHNjcmlwdC5zcmMgPSBzcmM7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbiAgICB9KTtcbn1cbi8vIFdlIHdhaXQgZm9yIHBhZ2VzIHRvIGJlIGJ1aWx0IGluIGRldiBiZWZvcmUgd2Ugc3RhcnQgdGhlIHJvdXRlIHRyYW5zaXRpb25cbi8vIHRpbWVvdXQgdG8gcHJldmVudCBhbiB1bi1uZWNlc3NhcnkgaGFyZCBuYXZpZ2F0aW9uIGluIGRldmVsb3BtZW50LlxubGV0IGRldkJ1aWxkUHJvbWlzZTtcbi8vIFJlc29sdmUgYSBwcm9taXNlIHRoYXQgdGltZXMgb3V0IGFmdGVyIGdpdmVuIGFtb3VudCBvZiBtaWxsaXNlY29uZHMuXG5mdW5jdGlvbiByZXNvbHZlUHJvbWlzZVdpdGhUaW1lb3V0KHAsIG1zLCBlcnIpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCk9PntcbiAgICAgICAgbGV0IGNhbmNlbGxlZCA9IGZhbHNlO1xuICAgICAgICBwLnRoZW4oKHIpPT57XG4gICAgICAgICAgICAvLyBSZXNvbHZlZCwgY2FuY2VsIHRoZSB0aW1lb3V0XG4gICAgICAgICAgICBjYW5jZWxsZWQgPSB0cnVlO1xuICAgICAgICAgICAgcmVzb2x2ZShyKTtcbiAgICAgICAgfSkuY2F0Y2gocmVqZWN0KTtcbiAgICAgICAgLy8gV2Ugd3JhcCB0aGVzZSBjaGVja3Mgc2VwYXJhdGVseSBmb3IgYmV0dGVyIGRlYWQtY29kZSBlbGltaW5hdGlvbiBpblxuICAgICAgICAvLyBwcm9kdWN0aW9uIGJ1bmRsZXMuXG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgKGRldkJ1aWxkUHJvbWlzZSB8fCBQcm9taXNlLnJlc29sdmUoKSkudGhlbigoKT0+e1xuICAgICAgICAgICAgICAgICgwLCBfcmVxdWVzdElkbGVDYWxsYmFjaykucmVxdWVzdElkbGVDYWxsYmFjaygoKT0+c2V0VGltZW91dCgoKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjYW5jZWxsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSwgbXMpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgKDAsIF9yZXF1ZXN0SWRsZUNhbGxiYWNrKS5yZXF1ZXN0SWRsZUNhbGxiYWNrKCgpPT5zZXRUaW1lb3V0KCgpPT57XG4gICAgICAgICAgICAgICAgICAgIGlmICghY2FuY2VsbGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sIG1zKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuZnVuY3Rpb24gZ2V0Q2xpZW50QnVpbGRNYW5pZmVzdCgpIHtcbiAgICBpZiAoc2VsZi5fX0JVSUxEX01BTklGRVNUKSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoc2VsZi5fX0JVSUxEX01BTklGRVNUKTtcbiAgICB9XG4gICAgY29uc3Qgb25CdWlsZE1hbmlmZXN0ID0gbmV3IFByb21pc2UoKHJlc29sdmUpPT57XG4gICAgICAgIC8vIE1hbmRhdG9yeSBiZWNhdXNlIHRoaXMgaXMgbm90IGNvbmN1cnJlbnQgc2FmZTpcbiAgICAgICAgY29uc3QgY2IgPSBzZWxmLl9fQlVJTERfTUFOSUZFU1RfQ0I7XG4gICAgICAgIHNlbGYuX19CVUlMRF9NQU5JRkVTVF9DQiA9ICgpPT57XG4gICAgICAgICAgICByZXNvbHZlKHNlbGYuX19CVUlMRF9NQU5JRkVTVCk7XG4gICAgICAgICAgICBjYiAmJiBjYigpO1xuICAgICAgICB9O1xuICAgIH0pO1xuICAgIHJldHVybiByZXNvbHZlUHJvbWlzZVdpdGhUaW1lb3V0KG9uQnVpbGRNYW5pZmVzdCwgTVNfTUFYX0lETEVfREVMQVksIG1hcmtBc3NldEVycm9yKG5ldyBFcnJvcignRmFpbGVkIHRvIGxvYWQgY2xpZW50IGJ1aWxkIG1hbmlmZXN0JykpKTtcbn1cbmZ1bmN0aW9uIGdldE1pZGRsZXdhcmVNYW5pZmVzdCgpIHtcbiAgICBpZiAoc2VsZi5fX01JRERMRVdBUkVfTUFOSUZFU1QpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShzZWxmLl9fTUlERExFV0FSRV9NQU5JRkVTVCk7XG4gICAgfVxuICAgIGNvbnN0IG9uTWlkZGxld2FyZU1hbmlmZXN0ID0gbmV3IFByb21pc2UoKHJlc29sdmUpPT57XG4gICAgICAgIGNvbnN0IGNiID0gc2VsZi5fX01JRERMRVdBUkVfTUFOSUZFU1RfQ0I7XG4gICAgICAgIHNlbGYuX19NSURETEVXQVJFX01BTklGRVNUX0NCID0gKCk9PntcbiAgICAgICAgICAgIHJlc29sdmUoc2VsZi5fX01JRERMRVdBUkVfTUFOSUZFU1QpO1xuICAgICAgICAgICAgY2IgJiYgY2IoKTtcbiAgICAgICAgfTtcbiAgICB9KTtcbiAgICByZXR1cm4gcmVzb2x2ZVByb21pc2VXaXRoVGltZW91dChvbk1pZGRsZXdhcmVNYW5pZmVzdCwgTVNfTUFYX0lETEVfREVMQVksIG1hcmtBc3NldEVycm9yKG5ldyBFcnJvcignRmFpbGVkIHRvIGxvYWQgY2xpZW50IG1pZGRsZXdhcmUgbWFuaWZlc3QnKSkpO1xufVxuZnVuY3Rpb24gZ2V0RmlsZXNGb3JSb3V0ZShhc3NldFByZWZpeCwgcm91dGUpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7XG4gICAgICAgICAgICBzY3JpcHRzOiBbXG4gICAgICAgICAgICAgICAgYXNzZXRQcmVmaXggKyAnL19uZXh0L3N0YXRpYy9jaHVua3MvcGFnZXMnICsgZW5jb2RlVVJJKCgwLCBfZ2V0QXNzZXRQYXRoRnJvbVJvdXRlKS5kZWZhdWx0KHJvdXRlLCAnLmpzJykpLCBcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAvLyBTdHlsZXMgYXJlIGhhbmRsZWQgYnkgYHN0eWxlLWxvYWRlcmAgaW4gZGV2ZWxvcG1lbnQ6XG4gICAgICAgICAgICBjc3M6IFtdXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gZ2V0Q2xpZW50QnVpbGRNYW5pZmVzdCgpLnRoZW4oKG1hbmlmZXN0KT0+e1xuICAgICAgICBpZiAoIShyb3V0ZSBpbiBtYW5pZmVzdCkpIHtcbiAgICAgICAgICAgIHRocm93IG1hcmtBc3NldEVycm9yKG5ldyBFcnJvcihgRmFpbGVkIHRvIGxvb2t1cCByb3V0ZTogJHtyb3V0ZX1gKSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYWxsRmlsZXMgPSBtYW5pZmVzdFtyb3V0ZV0ubWFwKChlbnRyeSk9PmFzc2V0UHJlZml4ICsgJy9fbmV4dC8nICsgZW5jb2RlVVJJKGVudHJ5KVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc2NyaXB0czogYWxsRmlsZXMuZmlsdGVyKCh2KT0+di5lbmRzV2l0aCgnLmpzJylcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBjc3M6IGFsbEZpbGVzLmZpbHRlcigodik9PnYuZW5kc1dpdGgoJy5jc3MnKVxuICAgICAgICAgICAgKVxuICAgICAgICB9O1xuICAgIH0pO1xufVxuZnVuY3Rpb24gY3JlYXRlUm91dGVMb2FkZXIoYXNzZXRQcmVmaXgpIHtcbiAgICBjb25zdCBlbnRyeXBvaW50cyA9IG5ldyBNYXAoKTtcbiAgICBjb25zdCBsb2FkZWRTY3JpcHRzID0gbmV3IE1hcCgpO1xuICAgIGNvbnN0IHN0eWxlU2hlZXRzID0gbmV3IE1hcCgpO1xuICAgIGNvbnN0IHJvdXRlcyA9IG5ldyBNYXAoKTtcbiAgICBmdW5jdGlvbiBtYXliZUV4ZWN1dGVTY3JpcHQoc3JjKSB7XG4gICAgICAgIC8vIFdpdGggSE1SIHdlIG1pZ2h0IG5lZWQgdG8gXCJyZWxvYWRcIiBzY3JpcHRzIHdoZW4gdGhleSBhcmVcbiAgICAgICAgLy8gZGlzcG9zZWQgYW5kIHJlYWRkZWQuIEV4ZWN1dGluZyBzY3JpcHRzIHR3aWNlIGhhcyBubyBmdW5jdGlvbmFsXG4gICAgICAgIC8vIGRpZmZlcmVuY2VzXG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgbGV0IHByb20gPSBsb2FkZWRTY3JpcHRzLmdldChzcmMpO1xuICAgICAgICAgICAgaWYgKHByb20pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJvbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFNraXAgZXhlY3V0aW5nIHNjcmlwdCBpZiBpdCdzIGFscmVhZHkgaW4gdGhlIERPTTpcbiAgICAgICAgICAgIGlmIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBzY3JpcHRbc3JjXj1cIiR7c3JjfVwiXWApKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbG9hZGVkU2NyaXB0cy5zZXQoc3JjLCBwcm9tID0gYXBwZW5kU2NyaXB0KHNyYykpO1xuICAgICAgICAgICAgcmV0dXJuIHByb207XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gYXBwZW5kU2NyaXB0KHNyYyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZmV0Y2hTdHlsZVNoZWV0KGhyZWYpIHtcbiAgICAgICAgbGV0IHByb20gPSBzdHlsZVNoZWV0cy5nZXQoaHJlZik7XG4gICAgICAgIGlmIChwcm9tKSB7XG4gICAgICAgICAgICByZXR1cm4gcHJvbTtcbiAgICAgICAgfVxuICAgICAgICBzdHlsZVNoZWV0cy5zZXQoaHJlZiwgcHJvbSA9IGZldGNoKGhyZWYpLnRoZW4oKHJlcyk9PntcbiAgICAgICAgICAgIGlmICghcmVzLm9rKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gbG9hZCBzdHlsZXNoZWV0OiAke2hyZWZ9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzLnRleHQoKS50aGVuKCh0ZXh0KT0+KHtcbiAgICAgICAgICAgICAgICAgICAgaHJlZjogaHJlZixcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogdGV4dFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9KS5jYXRjaCgoZXJyKT0+e1xuICAgICAgICAgICAgdGhyb3cgbWFya0Fzc2V0RXJyb3IoZXJyKTtcbiAgICAgICAgfSkpO1xuICAgICAgICByZXR1cm4gcHJvbTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgd2hlbkVudHJ5cG9pbnQgKHJvdXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gd2l0aEZ1dHVyZShyb3V0ZSwgZW50cnlwb2ludHMpO1xuICAgICAgICB9LFxuICAgICAgICBvbkVudHJ5cG9pbnQgKHJvdXRlLCBleGVjdXRlKSB7XG4gICAgICAgICAgICAoZXhlY3V0ZSA/IFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PmV4ZWN1dGUoKVxuICAgICAgICAgICAgKS50aGVuKChleHBvcnRzKT0+KHtcbiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50OiBleHBvcnRzICYmIGV4cG9ydHMuZGVmYXVsdCB8fCBleHBvcnRzLFxuICAgICAgICAgICAgICAgICAgICBleHBvcnRzOiBleHBvcnRzXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICwgKGVycik9Pih7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yOiBlcnJcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSA6IFByb21pc2UucmVzb2x2ZSh1bmRlZmluZWQpKS50aGVuKChpbnB1dCk9PntcbiAgICAgICAgICAgICAgICBjb25zdCBvbGQgPSBlbnRyeXBvaW50cy5nZXQocm91dGUpO1xuICAgICAgICAgICAgICAgIGlmIChvbGQgJiYgJ3Jlc29sdmUnIGluIG9sZCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW5wdXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5cG9pbnRzLnNldChyb3V0ZSwgaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgb2xkLnJlc29sdmUoaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlucHV0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbnRyeXBvaW50cy5zZXQocm91dGUsIGlucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5cG9pbnRzLmRlbGV0ZShyb3V0ZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gd2hlbiB0aGlzIGVudHJ5cG9pbnQgaGFzIGJlZW4gcmVzb2x2ZWQgYmVmb3JlXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoZSByb3V0ZSBpcyBvdXRkYXRlZCBhbmQgd2Ugd2FudCB0byBpbnZhbGlkYXRlXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgY2FjaGUgZW50cnlcbiAgICAgICAgICAgICAgICAgICAgcm91dGVzLmRlbGV0ZShyb3V0ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIGxvYWRSb3V0ZSAocm91dGUsIHByZWZldGNoKSB7XG4gICAgICAgICAgICByZXR1cm4gd2l0aEZ1dHVyZShyb3V0ZSwgcm91dGVzLCAoKT0+e1xuICAgICAgICAgICAgICAgIGNvbnN0IHJvdXRlRmlsZXNQcm9taXNlID0gZ2V0RmlsZXNGb3JSb3V0ZShhc3NldFByZWZpeCwgcm91dGUpLnRoZW4oKHsgc2NyaXB0cyAsIGNzcyAgfSk9PntcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5cG9pbnRzLmhhcyhyb3V0ZSkgPyBbXSA6IFByb21pc2UuYWxsKHNjcmlwdHMubWFwKG1heWJlRXhlY3V0ZVNjcmlwdCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgUHJvbWlzZS5hbGwoY3NzLm1hcChmZXRjaFN0eWxlU2hlZXQpKSwgXG4gICAgICAgICAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgICAgIH0pLnRoZW4oKHJlcyk9PntcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMud2hlbkVudHJ5cG9pbnQocm91dGUpLnRoZW4oKGVudHJ5cG9pbnQpPT4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5cG9pbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGVzOiByZXNbMV1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGRldkJ1aWxkUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJvdXRlRmlsZXNQcm9taXNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJvdXRlRmlsZXNQcm9taXNlLmZpbmFsbHkoKCk9PntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVQcm9taXNlV2l0aFRpbWVvdXQocm91dGVGaWxlc1Byb21pc2UsIE1TX01BWF9JRExFX0RFTEFZLCBtYXJrQXNzZXRFcnJvcihuZXcgRXJyb3IoYFJvdXRlIGRpZCBub3QgY29tcGxldGUgbG9hZGluZzogJHtyb3V0ZX1gKSkpLnRoZW4oKHsgZW50cnlwb2ludCAsIHN0eWxlcyAgfSk9PntcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzID0gT2JqZWN0LmFzc2lnbih7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZXM6IHN0eWxlc1xuICAgICAgICAgICAgICAgICAgICB9LCBlbnRyeXBvaW50KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdlcnJvcicgaW4gZW50cnlwb2ludCA/IGVudHJ5cG9pbnQgOiByZXM7XG4gICAgICAgICAgICAgICAgfSkuY2F0Y2goKGVycik9PntcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByZWZldGNoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBkb24ndCB3YW50IHRvIGNhY2hlIGVycm9ycyBkdXJpbmcgcHJlZmV0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I6IGVyclxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHByZWZldGNoIChyb3V0ZSkge1xuICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL0dvb2dsZUNocm9tZUxhYnMvcXVpY2tsaW5rL2Jsb2IvNDUzYTY2MWZhMWZhOTQwZTJkMmUwNDQ0NTIzOThlMzhjNjdhOThmYi9zcmMvaW5kZXgubWpzI0wxMTUtTDExOFxuICAgICAgICAgICAgLy8gTGljZW5zZTogQXBhY2hlIDIuMFxuICAgICAgICAgICAgbGV0IGNuO1xuICAgICAgICAgICAgaWYgKGNuID0gbmF2aWdhdG9yLmNvbm5lY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAvLyBEb24ndCBwcmVmZXRjaCBpZiB1c2luZyAyRyBvciBpZiBTYXZlLURhdGEgaXMgZW5hYmxlZC5cbiAgICAgICAgICAgICAgICBpZiAoY24uc2F2ZURhdGEgfHwgLzJnLy50ZXN0KGNuLmVmZmVjdGl2ZVR5cGUpKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZ2V0RmlsZXNGb3JSb3V0ZShhc3NldFByZWZpeCwgcm91dGUpLnRoZW4oKG91dHB1dCk9PlByb21pc2UuYWxsKGNhblByZWZldGNoID8gb3V0cHV0LnNjcmlwdHMubWFwKChzY3JpcHQpPT5wcmVmZXRjaFZpYURvbShzY3JpcHQsICdzY3JpcHQnKVxuICAgICAgICAgICAgICAgICkgOiBbXSlcbiAgICAgICAgICAgICkudGhlbigoKT0+e1xuICAgICAgICAgICAgICAgICgwLCBfcmVxdWVzdElkbGVDYWxsYmFjaykucmVxdWVzdElkbGVDYWxsYmFjaygoKT0+dGhpcy5sb2FkUm91dGUocm91dGUsIHRydWUpLmNhdGNoKCgpPT57XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pLmNhdGNoKC8vIHN3YWxsb3cgcHJlZmV0Y2ggZXJyb3JzXG4gICAgICAgICAgICAoKT0+e1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yb3V0ZS1sb2FkZXIuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwibWFya0Fzc2V0RXJyb3IiLCJpc0Fzc2V0RXJyb3IiLCJnZXRDbGllbnRCdWlsZE1hbmlmZXN0IiwiZ2V0TWlkZGxld2FyZU1hbmlmZXN0IiwiY3JlYXRlUm91dGVMb2FkZXIiLCJfZ2V0QXNzZXRQYXRoRnJvbVJvdXRlIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcmVxdWVzdElkbGVDYWxsYmFjayIsIm9iaiIsIl9fZXNNb2R1bGUiLCJNU19NQVhfSURMRV9ERUxBWSIsIndpdGhGdXR1cmUiLCJrZXkiLCJtYXAiLCJnZW5lcmF0b3IiLCJlbnRyeSIsImdldCIsImZ1dHVyZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVzb2x2ZXIiLCJwcm9tIiwic2V0IiwidGhlbiIsImVyciIsImhhc1ByZWZldGNoIiwibGluayIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsIndpbmRvdyIsIk1TSW5wdXRNZXRob2RDb250ZXh0IiwiZG9jdW1lbnRNb2RlIiwicmVsTGlzdCIsInN1cHBvcnRzIiwiZSIsImNhblByZWZldGNoIiwicHJlZmV0Y2hWaWFEb20iLCJocmVmIiwiYXMiLCJyZXMiLCJyZWoiLCJzZWxlY3RvciIsInF1ZXJ5U2VsZWN0b3IiLCJyZWwiLCJjcm9zc09yaWdpbiIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfQ1JPU1NfT1JJR0lOIiwib25sb2FkIiwib25lcnJvciIsImhlYWQiLCJhcHBlbmRDaGlsZCIsIkFTU0VUX0xPQURfRVJST1IiLCJTeW1ib2wiLCJhcHBlbmRTY3JpcHQiLCJzcmMiLCJzY3JpcHQiLCJyZWplY3QiLCJFcnJvciIsImJvZHkiLCJkZXZCdWlsZFByb21pc2UiLCJyZXNvbHZlUHJvbWlzZVdpdGhUaW1lb3V0IiwicCIsIm1zIiwiY2FuY2VsbGVkIiwiciIsInJlcXVlc3RJZGxlQ2FsbGJhY2siLCJzZXRUaW1lb3V0Iiwic2VsZiIsIl9fQlVJTERfTUFOSUZFU1QiLCJvbkJ1aWxkTWFuaWZlc3QiLCJjYiIsIl9fQlVJTERfTUFOSUZFU1RfQ0IiLCJfX01JRERMRVdBUkVfTUFOSUZFU1QiLCJvbk1pZGRsZXdhcmVNYW5pZmVzdCIsIl9fTUlERExFV0FSRV9NQU5JRkVTVF9DQiIsImdldEZpbGVzRm9yUm91dGUiLCJhc3NldFByZWZpeCIsInJvdXRlIiwic2NyaXB0cyIsImVuY29kZVVSSSIsImNzcyIsIm1hbmlmZXN0IiwiYWxsRmlsZXMiLCJmaWx0ZXIiLCJ2IiwiZW5kc1dpdGgiLCJlbnRyeXBvaW50cyIsIk1hcCIsImxvYWRlZFNjcmlwdHMiLCJzdHlsZVNoZWV0cyIsInJvdXRlcyIsIm1heWJlRXhlY3V0ZVNjcmlwdCIsImZldGNoU3R5bGVTaGVldCIsImZldGNoIiwib2siLCJ0ZXh0IiwiY29udGVudCIsIndoZW5FbnRyeXBvaW50Iiwib25FbnRyeXBvaW50IiwiZXhlY3V0ZSIsImNvbXBvbmVudCIsImVycm9yIiwidW5kZWZpbmVkIiwiaW5wdXQiLCJvbGQiLCJsb2FkUm91dGUiLCJwcmVmZXRjaCIsInJvdXRlRmlsZXNQcm9taXNlIiwiYWxsIiwiaGFzIiwiZW50cnlwb2ludCIsInN0eWxlcyIsImFzc2lnbiIsImNuIiwibmF2aWdhdG9yIiwiY29ubmVjdGlvbiIsInNhdmVEYXRhIiwidGVzdCIsImVmZmVjdGl2ZVR5cGUiLCJvdXRwdXQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/route-loader.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/router.js": +/*!*************************************************!*\ + !*** ./node_modules/next/dist/client/router.js ***! + \*************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _construct = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/construct */ \"./node_modules/@babel/runtime/helpers/construct.js\");\n\nvar _s = $RefreshSig$();\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"Router\", ({\n enumerable: true,\n get: function get() {\n return _router[\"default\"];\n }\n}));\nObject.defineProperty(exports, \"withRouter\", ({\n enumerable: true,\n get: function get() {\n return _withRouter[\"default\"];\n }\n}));\nexports.useRouter = useRouter;\nexports.createRouter = createRouter;\nexports.makePublicRouterInstance = makePublicRouterInstance;\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _router = _interopRequireDefault(__webpack_require__(/*! ../shared/lib/router/router */ \"./node_modules/next/dist/shared/lib/router/router.js\"));\n\nvar _routerContext = __webpack_require__(/*! ../shared/lib/router-context */ \"./node_modules/next/dist/shared/lib/router-context.js\");\n\nvar _isError = _interopRequireDefault(__webpack_require__(/*! ../lib/is-error */ \"./node_modules/next/dist/lib/is-error.js\"));\n\nvar _withRouter = _interopRequireDefault(__webpack_require__(/*! ./with-router */ \"./node_modules/next/dist/client/with-router.js\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar singletonRouter = {\n router: null,\n readyCallbacks: [],\n ready: function ready(cb) {\n if (this.router) return cb();\n\n if (true) {\n this.readyCallbacks.push(cb);\n }\n }\n}; // Create public properties and methods of the router in the singletonRouter\n\nvar urlPropertyFields = ['pathname', 'route', 'query', 'asPath', 'components', 'isFallback', 'basePath', 'locale', 'locales', 'defaultLocale', 'isReady', 'isPreview', 'isLocaleDomain', 'domainLocales'];\nvar routerEvents = ['routeChangeStart', 'beforeHistoryChange', 'routeChangeComplete', 'routeChangeError', 'hashChangeStart', 'hashChangeComplete'];\nvar coreMethodFields = ['push', 'replace', 'reload', 'back', 'prefetch', 'beforePopState']; // Events is a static property on the router, the router doesn't have to be initialized to use it\n\nObject.defineProperty(singletonRouter, 'events', {\n get: function get() {\n return _router[\"default\"].events;\n }\n});\nurlPropertyFields.forEach(function (field) {\n // Here we need to use Object.defineProperty because we need to return\n // the property assigned to the actual router\n // The value might get changed as we change routes and this is the\n // proper way to access it\n Object.defineProperty(singletonRouter, field, {\n get: function get() {\n var router = getRouter();\n return router[field];\n }\n });\n});\ncoreMethodFields.forEach(function (field) {\n singletonRouter[field] = function () {\n var router = getRouter();\n return router[field].apply(router, arguments);\n };\n});\nrouterEvents.forEach(function (event) {\n singletonRouter.ready(function () {\n _router[\"default\"].events.on(event, function () {\n var eventField = \"on\".concat(event.charAt(0).toUpperCase()).concat(event.substring(1));\n var _singletonRouter = singletonRouter;\n\n if (_singletonRouter[eventField]) {\n try {\n _singletonRouter[eventField].apply(_singletonRouter, arguments);\n } catch (err) {\n console.error(\"Error when running the Router event: \".concat(eventField));\n console.error((0, _isError)[\"default\"](err) ? \"\".concat(err.message, \"\\n\").concat(err.stack) : err + '');\n }\n }\n });\n });\n});\n\nfunction getRouter() {\n if (!singletonRouter.router) {\n var message = 'No router instance found.\\n' + 'You should only use \"next/router\" on the client side of your app.\\n';\n throw new Error(message);\n }\n\n return singletonRouter.router;\n}\n\nvar _default = singletonRouter;\nexports[\"default\"] = _default;\n\nfunction useRouter() {\n _s();\n\n return _react[\"default\"].useContext(_routerContext.RouterContext);\n}\n\n_s(useRouter, \"gDsCjeeItUuvgOWf1v4qoK9RF6k=\");\n\nfunction createRouter() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n singletonRouter.router = _construct(_router[\"default\"], args);\n singletonRouter.readyCallbacks.forEach(function (cb) {\n return cb();\n });\n singletonRouter.readyCallbacks = [];\n return singletonRouter.router;\n}\n\nfunction makePublicRouterInstance(router) {\n var scopedRouter = router;\n var instance = {};\n\n var _iterator = _createForOfIteratorHelper(urlPropertyFields),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var property = _step.value;\n\n if (typeof scopedRouter[property] === 'object') {\n instance[property] = Object.assign(Array.isArray(scopedRouter[property]) ? [] : {}, scopedRouter[property]) // makes sure query is not stateful\n ;\n continue;\n }\n\n instance[property] = scopedRouter[property];\n } // Events is a static property on the router, the router doesn't have to be initialized to use it\n\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n instance.events = _router[\"default\"].events;\n coreMethodFields.forEach(function (field) {\n instance[field] = function () {\n return scopedRouter[field].apply(scopedRouter, arguments);\n };\n });\n return instance;\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yb3V0ZXIuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOzs7Ozs7Ozs7Ozs7QUFDYkEsOENBQTZDO0FBQ3pDRyxFQUFBQSxLQUFLLEVBQUU7QUFEa0MsQ0FBN0M7QUFHQUgsMENBQXlDO0FBQ3JDSSxFQUFBQSxVQUFVLEVBQUUsSUFEeUI7QUFFckNDLEVBQUFBLEdBQUcsRUFBRSxlQUFXO0FBQ1osV0FBT0MsT0FBTyxXQUFkO0FBQ0g7QUFKb0MsQ0FBekM7QUFNQU4sOENBQTZDO0FBQ3pDSSxFQUFBQSxVQUFVLEVBQUUsSUFENkI7QUFFekNDLEVBQUFBLEdBQUcsRUFBRSxlQUFXO0FBQ1osV0FBT0UsV0FBVyxXQUFsQjtBQUNIO0FBSndDLENBQTdDO0FBTUFMLGlCQUFBLEdBQW9CTSxTQUFwQjtBQUNBTixvQkFBQSxHQUF1Qk8sWUFBdkI7QUFDQVAsZ0NBQUEsR0FBbUNRLHdCQUFuQztBQUNBUixrQkFBQSxHQUFrQixLQUFLLENBQXZCOztBQUNBLElBQUlTLE1BQU0sR0FBR0Msc0JBQXNCLENBQUNDLG1CQUFPLENBQUMsNENBQUQsQ0FBUixDQUFuQzs7QUFDQSxJQUFJUCxPQUFPLEdBQUdNLHNCQUFzQixDQUFDQyxtQkFBTyxDQUFDLHlGQUFELENBQVIsQ0FBcEM7O0FBQ0EsSUFBSUMsY0FBYyxHQUFHRCxtQkFBTyxDQUFDLDJGQUFELENBQTVCOztBQUNBLElBQUlFLFFBQVEsR0FBR0gsc0JBQXNCLENBQUNDLG1CQUFPLENBQUMsaUVBQUQsQ0FBUixDQUFyQzs7QUFDQSxJQUFJTixXQUFXLEdBQUdLLHNCQUFzQixDQUFDQyxtQkFBTyxDQUFDLHFFQUFELENBQVIsQ0FBeEM7O0FBQ0EsU0FBU0Qsc0JBQVQsQ0FBZ0NJLEdBQWhDLEVBQXFDO0FBQ2pDLFNBQU9BLEdBQUcsSUFBSUEsR0FBRyxDQUFDQyxVQUFYLEdBQXdCRCxHQUF4QixHQUE4QjtBQUNqQyxlQUFTQTtBQUR3QixHQUFyQztBQUdIOztBQUNELElB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LENBQUNFLFFBQUQsQ0FBbkIsS0FBa0MsUUFBdEMsRUFBZ0Q7QUFDNUNELFFBQUFBLFFBQVEsQ0FBQ0MsUUFBRCxDQUFSLEdBQXFCbEQsTUFBTSxDQUFDbUQsTUFBUCxDQUFjQyxLQUFLLENBQUNDLE9BQU4sQ0FBY0wsWUFBWSxDQUFDRSxRQUFELENBQTFCLElBQXdDLEVBQXhDLEdBQTZDLEVBQTNELEVBQ2xCRixZQUFZLENBQUNFLFFBQUQsQ0FETSxDQUFyQixDQUMyQjtBQUQzQjtBQUdBO0FBQ0g7O0FBQ0RELE1BQUFBLFFBQVEsQ0FBQ0MsUUFBRCxDQUFSLEdBQXFCRixZQUFZLENBQUNFLFFBQUQsQ0FBakM7QUFDSCxLQVpxQyxDQWF0Qzs7QUFic0M7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFjdENELEVBQUFBLFFBQVEsQ0FBQ3RCLE1BQVQsR0FBa0JyQixPQUFPLFdBQVAsQ0FBZ0JxQixNQUFsQztBQUNBRCxFQUFBQSxnQkFBZ0IsQ0FBQ0UsT0FBakIsQ0FBeUIsVUFBQ0MsS0FBRCxFQUFTO0FBQzlCb0IsSUFBQUEsUUFBUSxDQUFDcEIsS0FBRCxDQUFSLEdBQWtCLFlBQVc7QUFDekIsYUFBT21CLFlBQVksQ0FBQ25CLEtBQUQsQ0FBWixPQUFBbUIsWUFBWSxZQUFuQjtBQUNILEtBRkQ7QUFHSCxHQUpEO0FBS0EsU0FBT0MsUUFBUDtBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3JvdXRlci5qcz8zMWZjIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiUm91dGVyXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfcm91dGVyLmRlZmF1bHQ7XG4gICAgfVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJ3aXRoUm91dGVyXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfd2l0aFJvdXRlci5kZWZhdWx0O1xuICAgIH1cbn0pO1xuZXhwb3J0cy51c2VSb3V0ZXIgPSB1c2VSb3V0ZXI7XG5leHBvcnRzLmNyZWF0ZVJvdXRlciA9IGNyZWF0ZVJvdXRlcjtcbmV4cG9ydHMubWFrZVB1YmxpY1JvdXRlckluc3RhbmNlID0gbWFrZVB1YmxpY1JvdXRlckluc3RhbmNlO1xuZXhwb3J0cy5kZWZhdWx0ID0gdm9pZCAwO1xudmFyIF9yZWFjdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJlYWN0XCIpKTtcbnZhciBfcm91dGVyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9yb3V0ZXIvcm91dGVyXCIpKTtcbnZhciBfcm91dGVyQ29udGV4dCA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3JvdXRlci1jb250ZXh0XCIpO1xudmFyIF9pc0Vycm9yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vbGliL2lzLWVycm9yXCIpKTtcbnZhciBfd2l0aFJvdXRlciA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vd2l0aC1yb3V0ZXJcIikpO1xuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuY29uc3Qgc2luZ2xldG9uUm91dGVyID0ge1xuICAgIHJvdXRlcjogbnVsbCxcbiAgICByZWFkeUNhbGxiYWNrczogW10sXG4gICAgcmVhZHkgKGNiKSB7XG4gICAgICAgIGlmICh0aGlzLnJvdXRlcikgcmV0dXJuIGNiKCk7XG4gICAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgdGhpcy5yZWFkeUNhbGxiYWNrcy5wdXNoKGNiKTtcbiAgICAgICAgfVxuICAgIH1cbn07XG4vLyBDcmVhdGUgcHVibGljIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMgb2YgdGhlIHJvdXRlciBpbiB0aGUgc2luZ2xldG9uUm91dGVyXG5jb25zdCB1cmxQcm9wZXJ0eUZpZWxkcyA9IFtcbiAgICAncGF0aG5hbWUnLFxuICAgICdyb3V0ZScsXG4gICAgJ3F1ZXJ5JyxcbiAgICAnYXNQYXRoJyxcbiAgICAnY29tcG9uZW50cycsXG4gICAgJ2lzRmFsbGJhY2snLFxuICAgICdiYXNlUGF0aCcsXG4gICAgJ2xvY2FsZScsXG4gICAgJ2xvY2FsZXMnLFxuICAgICdkZWZhdWx0TG9jYWxlJyxcbiAgICAnaXNSZWFkeScsXG4gICAgJ2lzUHJldmlldycsXG4gICAgJ2lzTG9jYWxlRG9tYWluJyxcbiAgICAnZG9tYWluTG9jYWxlcycsIFxuXTtcbmNvbnN0IHJvdXRlckV2ZW50cyA9IFtcbiAgICAncm91dGVDaGFuZ2VTdGFydCcsXG4gICAgJ2JlZm9yZUhpc3RvcnlDaGFuZ2UnLFxuICAgICdyb3V0ZUNoYW5nZUNvbXBsZXRlJyxcbiAgICAncm91dGVDaGFuZ2VFcnJvcicsXG4gICAgJ2hhc2hDaGFuZ2VTdGFydCcsXG4gICAgJ2hhc2hDaGFuZ2VDb21wbGV0ZScsIFxuXTtcbmNvbnN0IGNvcmVNZXRob2RGaWVsZHMgPSBbXG4gICAgJ3B1c2gnLFxuICAgICdyZXBsYWNlJyxcbiAgICAncmVsb2FkJyxcbiAgICAnYmFjaycsXG4gICAgJ3ByZWZldGNoJyxcbiAgICAnYmVmb3JlUG9wU3RhdGUnLCBcbl07XG4vLyBFdmVudHMgaXMgYSBzdGF0aWMgcHJvcGVydHkgb24gdGhlIHJvdXRlciwgdGhlIHJvdXRlciBkb2Vzbid0IGhhdmUgdG8gYmUgaW5pdGlhbGl6ZWQgdG8gdXNlIGl0XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoc2luZ2xldG9uUm91dGVyLCAnZXZlbnRzJywge1xuICAgIGdldCAoKSB7XG4gICAgICAgIHJldHVybiBfcm91dGVyLmRlZmF1bHQuZXZlbnRzO1xuICAgIH1cbn0pO1xudXJsUHJvcGVydHlGaWVsZHMuZm9yRWFjaCgoZmllbGQpPT57XG4gICAgLy8gSGVyZSB3ZSBuZWVkIHRvIHVzZSBPYmplY3QuZGVmaW5lUHJvcGVydHkgYmVjYXVzZSB3ZSBuZWVkIHRvIHJldHVyblxuICAgIC8vIHRoZSBwcm9wZXJ0eSBhc3NpZ25lZCB0byB0aGUgYWN0dWFsIHJvdXRlclxuICAgIC8vIFRoZSB2YWx1ZSBtaWdodCBnZXQgY2hhbmdlZCBhcyB3ZSBjaGFuZ2Ugcm91dGVzIGFuZCB0aGlzIGlzIHRoZVxuICAgIC8vIHByb3BlciB3YXkgdG8gYWNjZXNzIGl0XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHNpbmdsZXRvblJvdXRlciwgZmllbGQsIHtcbiAgICAgICAgZ2V0ICgpIHtcbiAgICAgICAgICAgIGNvbnN0IHJvdXRlciA9IGdldFJvdXRlcigpO1xuICAgICAgICAgICAgcmV0dXJuIHJvdXRlcltmaWVsZF07XG4gICAgICAgIH1cbiAgICB9KTtcbn0pO1xuY29yZU1ldGhvZEZpZWxkcy5mb3JFYWNoKChmaWVsZCk9PntcbiAgICBzaW5nbGV0b25Sb3V0ZXJbZmllbGRdID0gKC4uLmFyZ3MpPT57XG4gICAgICAgIGNvbnN0IHJvdXRlciA9IGdldFJvdXRlcigpO1xuICAgICAgICByZXR1cm4gcm91dGVyW2ZpZWxkXSguLi5hcmdzKTtcbiAgICB9O1xufSk7XG5yb3V0ZXJFdmVudHMuZm9yRWFjaCgoZXZlbnQpPT57XG4gICAgc2luZ2xldG9uUm91dGVyLnJlYWR5KCgpPT57XG4gICAgICAgIF9yb3V0ZXIuZGVmYXVsdC5ldmVudHMub24oZXZlbnQsICguLi5hcmdzKT0+e1xuICAgICAgICAgICAgY29uc3QgZXZlbnRGaWVsZCA9IGBvbiR7ZXZlbnQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCl9JHtldmVudC5zdWJzdHJpbmcoMSl9YDtcbiAgICAgICAgICAgIGNvbnN0IF9zaW5nbGV0b25Sb3V0ZXIgPSBzaW5nbGV0b25Sb3V0ZXI7XG4gICAgICAgICAgICBpZiAoX3NpbmdsZXRvblJvdXRlcltldmVudEZpZWxkXSkge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIF9zaW5nbGV0b25Sb3V0ZXJbZXZlbnRGaWVsZF0oLi4uYXJncyk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEVycm9yIHdoZW4gcnVubmluZyB0aGUgUm91dGVyIGV2ZW50OiAke2V2ZW50RmllbGR9YCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoKDAsIF9pc0Vycm9yKS5kZWZhdWx0KGVycikgPyBgJHtlcnIubWVzc2FnZX1cXG4ke2Vyci5zdGFja31gIDogZXJyICsgJycpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSk7XG59KTtcbmZ1bmN0aW9uIGdldFJvdXRlcigpIHtcbiAgICBpZiAoIXNpbmdsZXRvblJvdXRlci5yb3V0ZXIpIHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9ICdObyByb3V0ZXIgaW5zdGFuY2UgZm91bmQuXFxuJyArICdZb3Ugc2hvdWxkIG9ubHkgdXNlIFwibmV4dC9yb3V0ZXJcIiBvbiB0aGUgY2xpZW50IHNpZGUgb2YgeW91ciBhcHAuXFxuJztcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICByZXR1cm4gc2luZ2xldG9uUm91dGVyLnJvdXRlcjtcbn1cbnZhciBfZGVmYXVsdCA9IHNpbmdsZXRvblJvdXRlcjtcbmV4cG9ydHMuZGVmYXVsdCA9IF9kZWZhdWx0O1xuZnVuY3Rpb24gdXNlUm91dGVyKCkge1xuICAgIHJldHVybiBfcmVhY3QuZGVmYXVsdC51c2VDb250ZXh0KF9yb3V0ZXJDb250ZXh0LlJvdXRlckNvbnRleHQpO1xufVxuZnVuY3Rpb24gY3JlYXRlUm91dGVyKC4uLmFyZ3MpIHtcbiAgICBzaW5nbGV0b25Sb3V0ZXIucm91dGVyID0gbmV3IF9yb3V0ZXIuZGVmYXVsdCguLi5hcmdzKTtcbiAgICBzaW5nbGV0b25Sb3V0ZXIucmVhZHlDYWxsYmFja3MuZm9yRWFjaCgoY2IpPT5jYigpXG4gICAgKTtcbiAgICBzaW5nbGV0b25Sb3V0ZXIucmVhZHlDYWxsYmFja3MgPSBbXTtcbiAgICByZXR1cm4gc2luZ2xldG9uUm91dGVyLnJvdXRlcjtcbn1cbmZ1bmN0aW9uIG1ha2VQdWJsaWNSb3V0ZXJJbnN0YW5jZShyb3V0ZXIpIHtcbiAgICBjb25zdCBzY29wZWRSb3V0ZXIgPSByb3V0ZXI7XG4gICAgY29uc3QgaW5zdGFuY2UgPSB7XG4gICAgfTtcbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHVybFByb3BlcnR5RmllbGRzKXtcbiAgICAgICAgaWYgKHR5cGVvZiBzY29wZWRSb3V0ZXJbcHJvcGVydHldID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgaW5zdGFuY2VbcHJvcGVydHldID0gT2JqZWN0LmFzc2lnbihBcnJheS5pc0FycmF5KHNjb3BlZFJvdXRlcltwcm9wZXJ0eV0pID8gW10gOiB7XG4gICAgICAgICAgICB9LCBzY29wZWRSb3V0ZXJbcHJvcGVydHldKSAvLyBtYWtlcyBzdXJlIHF1ZXJ5IGlzIG5vdCBzdGF0ZWZ1bFxuICAgICAgICAgICAgO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaW5zdGFuY2VbcHJvcGVydHldID0gc2NvcGVkUm91dGVyW3Byb3BlcnR5XTtcbiAgICB9XG4gICAgLy8gRXZlbnRzIGlzIGEgc3RhdGljIHByb3BlcnR5IG9uIHRoZSByb3V0ZXIsIHRoZSByb3V0ZXIgZG9lc24ndCBoYXZlIHRvIGJlIGluaXRpYWxpemVkIHRvIHVzZSBpdFxuICAgIGluc3RhbmNlLmV2ZW50cyA9IF9yb3V0ZXIuZGVmYXVsdC5ldmVudHM7XG4gICAgY29yZU1ldGhvZEZpZWxkcy5mb3JFYWNoKChmaWVsZCk9PntcbiAgICAgICAgaW5zdGFuY2VbZmllbGRdID0gKC4uLmFyZ3MpPT57XG4gICAgICAgICAgICByZXR1cm4gc2NvcGVkUm91dGVyW2ZpZWxkXSguLi5hcmdzKTtcbiAgICAgICAgfTtcbiAgICB9KTtcbiAgICByZXR1cm4gaW5zdGFuY2U7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJvdXRlci5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiX3JvdXRlciIsIl93aXRoUm91dGVyIiwidXNlUm91dGVyIiwiY3JlYXRlUm91dGVyIiwibWFrZVB1YmxpY1JvdXRlckluc3RhbmNlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcm91dGVyQ29udGV4dCIsIl9pc0Vycm9yIiwib2JqIiwiX19lc01vZHVsZSIsInNpbmdsZXRvblJvdXRlciIsInJvdXRlciIsInJlYWR5Q2FsbGJhY2tzIiwicmVhZHkiLCJjYiIsInB1c2giLCJ1cmxQcm9wZXJ0eUZpZWxkcyIsInJvdXRlckV2ZW50cyIsImNvcmVNZXRob2RGaWVsZHMiLCJldmVudHMiLCJmb3JFYWNoIiwiZmllbGQiLCJnZXRSb3V0ZXIiLCJldmVudCIsIm9uIiwiZXZlbnRGaWVsZCIsImNoYXJBdCIsInRvVXBwZXJDYXNlIiwic3Vic3RyaW5nIiwiX3NpbmdsZXRvblJvdXRlciIsImVyciIsImNvbnNvbGUiLCJlcnJvciIsIm1lc3NhZ2UiLCJzdGFjayIsIkVycm9yIiwiX2RlZmF1bHQiLCJ1c2VDb250ZXh0IiwiUm91dGVyQ29udGV4dCIsImFyZ3MiLCJzY29wZWRSb3V0ZXIiLCJpbnN0YW5jZSIsInByb3BlcnR5IiwiYXNzaWduIiwiQXJyYXkiLCJpc0FycmF5Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/router.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/script.js": +/*!*************************************************!*\ + !*** ./node_modules/next/dist/client/script.js ***! + \*************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _slicedToArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nvar _s = $RefreshSig$();\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.initScriptLoader = initScriptLoader;\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _headManagerContext = __webpack_require__(/*! ../shared/lib/head-manager-context */ \"./node_modules/next/dist/shared/lib/head-manager-context.js\");\n\nvar _headManager = __webpack_require__(/*! ./head-manager */ \"./node_modules/next/dist/client/head-manager.js\");\n\nvar _requestIdleCallback = __webpack_require__(/*! ./request-idle-callback */ \"./node_modules/next/dist/client/request-idle-callback.js\");\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n return newObj;\n }\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nvar ScriptCache = new Map();\nvar LoadCache = new Set();\nvar ignoreProps = ['onLoad', 'dangerouslySetInnerHTML', 'children', 'onError', 'strategy'];\n\nvar loadScript = function loadScript(props) {\n var src = props.src,\n id = props.id,\n _props$onLoad = props.onLoad,\n onLoad = _props$onLoad === void 0 ? function () {} : _props$onLoad,\n dangerouslySetInnerHTML = props.dangerouslySetInnerHTML,\n _props$children = props.children,\n children = _props$children === void 0 ? '' : _props$children,\n _props$strategy = props.strategy,\n strategy = _props$strategy === void 0 ? 'afterInteractive' : _props$strategy,\n onError = props.onError;\n var cacheKey = id || src; // Script has already loaded\n\n if (cacheKey && LoadCache.has(cacheKey)) {\n return;\n } // Contents of this script are already loading/loaded\n\n\n if (ScriptCache.has(src)) {\n LoadCache.add(cacheKey); // Execute onLoad since the script loading has begun\n\n ScriptCache.get(src).then(onLoad, onError);\n return;\n }\n\n var el = document.createElement('script');\n var loadPromise = new Promise(function (resolve, reject) {\n el.addEventListener('load', function (e) {\n resolve();\n\n if (onLoad) {\n onLoad.call(this, e);\n }\n });\n el.addEventListener('error', function (e) {\n reject(e);\n });\n })[\"catch\"](function (e) {\n if (onError) {\n onError(e);\n }\n });\n\n if (src) {\n ScriptCache.set(src, loadPromise);\n }\n\n LoadCache.add(cacheKey);\n\n if (dangerouslySetInnerHTML) {\n el.innerHTML = dangerouslySetInnerHTML.__html || '';\n } else if (children) {\n el.textContent = typeof children === 'string' ? children : Array.isArray(children) ? children.join('') : '';\n } else if (src) {\n el.src = src;\n }\n\n for (var _i = 0, _Object$entries = Object.entries(props); _i < _Object$entries.length; _i++) {\n var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),\n k = _Object$entries$_i[0],\n value = _Object$entries$_i[1];\n\n if (value === undefined || ignoreProps.includes(k)) {\n continue;\n }\n\n var attr = _headManager.DOMAttributeNames[k] || k.toLowerCase();\n el.setAttribute(attr, value);\n }\n\n el.setAttribute('data-nscript', strategy);\n document.body.appendChild(el);\n};\n\nfunction handleClientScriptLoad(props) {\n var _props$strategy2 = props.strategy,\n strategy = _props$strategy2 === void 0 ? 'afterInteractive' : _props$strategy2;\n\n if (strategy === 'afterInteractive') {\n loadScript(props);\n } else if (strategy === 'lazyOnload') {\n window.addEventListener('load', function () {\n (0, _requestIdleCallback).requestIdleCallback(function () {\n return loadScript(props);\n });\n });\n }\n}\n\nfunction loadLazyScript(props) {\n if (document.readyState === 'complete') {\n (0, _requestIdleCallback).requestIdleCallback(function () {\n return loadScript(props);\n });\n } else {\n window.addEventListener('load', function () {\n (0, _requestIdleCallback).requestIdleCallback(function () {\n return loadScript(props);\n });\n });\n }\n}\n\nfunction initScriptLoader(scriptLoaderItems) {\n scriptLoaderItems.forEach(handleClientScriptLoad);\n}\n\nfunction Script(props) {\n _s();\n\n var _props$src = props.src,\n src = _props$src === void 0 ? '' : _props$src,\n _props$onLoad2 = props.onLoad,\n onLoad = _props$onLoad2 === void 0 ? function () {} : _props$onLoad2,\n dangerouslySetInnerHTML = props.dangerouslySetInnerHTML,\n _props$strategy3 = props.strategy,\n strategy = _props$strategy3 === void 0 ? 'afterInteractive' : _props$strategy3,\n onError = props.onError,\n restProps = _objectWithoutProperties(props, [\"src\", \"onLoad\", \"dangerouslySetInnerHTML\", \"strategy\", \"onError\"]); // Context is available only during SSR\n\n\n var _useContext = (0, _react).useContext(_headManagerContext.HeadManagerContext),\n updateScripts = _useContext.updateScripts,\n scripts = _useContext.scripts,\n getIsSsr = _useContext.getIsSsr;\n\n (0, _react).useEffect(function () {\n if (strategy === 'afterInteractive') {\n loadScript(props);\n } else if (strategy === 'lazyOnload') {\n loadLazyScript(props);\n }\n }, [props, strategy]);\n\n if (strategy === 'beforeInteractive') {\n if (updateScripts) {\n scripts.beforeInteractive = (scripts.beforeInteractive || []).concat([_objectSpread({\n src: src,\n onLoad: onLoad,\n onError: onError\n }, restProps)]);\n updateScripts(scripts);\n } else if (getIsSsr && getIsSsr()) {\n // Script has already loaded during SSR\n LoadCache.add(restProps.id || src);\n } else if (getIsSsr && !getIsSsr()) {\n loadScript(props);\n }\n }\n\n return null;\n}\n\n_s(Script, \"e8WGedLHPLUuZjHFS2+Zt0avCrA=\");\n\n_c = Script;\nvar _default = Script;\nexports[\"default\"] = _default;\n\nvar _c;\n\n$RefreshReg$(_c, \"Script\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9zY3JpcHQuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOzs7Ozs7QUFDYkEsOENBQTZDO0FBQ3pDRyxFQUFBQSxLQUFLLEVBQUU7QUFEa0MsQ0FBN0M7QUFHQUQsd0JBQUEsR0FBMkJFLGdCQUEzQjtBQUNBRixrQkFBQSxHQUFrQixLQUFLLENBQXZCOztBQUNBLElBQUlHLE1BQU0sR0FBR0MsdUJBQXVCLENBQUNDLG1CQUFPLENBQUMsNENBQUQsQ0FBUixDQUFwQzs7QUFDQSxJQUFJQyxtQkFBbUIsR0FBR0QsbUJBQU8sQ0FBQyx1R0FBRCxDQUFqQzs7QUFDQSxJQUFJRSxZQUFZLEdBQUdGLG1CQUFPLENBQUMsdUVBQUQsQ0FBMUI7O0FBQ0EsSUFBSUcsb0JBQW9CLEdBQUdILG1CQUFPLENBQUMseUZBQUQsQ0FBbEM7O0FBQ0EsU0FBU0ksZUFBVCxDQUF5QkMsR0FBekIsRUFBOEJDLEdBQTlCLEVBQW1DVixLQUFuQyxFQUEwQztBQUN0QyxNQUFJVSxHQUFHLElBQUlELEdBQVgsRUFBZ0I7QUFDWlosSUFBQUEsTUFBTSxDQUFDQyxjQUFQLENBQXNCVyxHQUF0QixFQUEyQkMsR0FBM0IsRUFBZ0M7QUFDNUJWLE1BQUFBLEtBQUssRUFBRUEsS0FEcUI7QUFFNUJXLE1BQUFBLFVBQVUsRUFBRSxJQUZnQjtBQUc1QkMsTUFBQUEsWUFBWSxFQUFFLElBSGM7QUFJNUJDLE1BQUFBLFFBQVEsRUFBRTtBQUprQixLQUFoQztBQU1ILEdBUEQsTUFPTztBQUNISixJQUFBQSxHQUFHLENBQUNDLEdBQUQsQ0FBSCxHQUFXVixLQUFYO0FBQ0g7O0FBQ0QsU0FBT1MsR0FBUDtBQUNIOztBQUNELFNBQVNOLHVCQUFULENBQWlDTSxHQUFqQyxFQUFzQztBQUNsQyxNQUFJQSxHQUFHLElBQUlBLEdBQUcsQ0FBQ0ssVUFBZixFQUEyQjtBQUN2QixXQUFPTCxHQUFQO0FBQ0gsR0FGRCxNQUVPO0FBQ0gsUUFBSU0sTUFBTSxHQUFHLEVB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c2NyaXB0LmpzP2JkNmEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmluaXRTY3JpcHRMb2FkZXIgPSBpbml0U2NyaXB0TG9hZGVyO1xuZXhwb3J0cy5kZWZhdWx0ID0gdm9pZCAwO1xudmFyIF9yZWFjdCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG52YXIgX2hlYWRNYW5hZ2VyQ29udGV4dCA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL2hlYWQtbWFuYWdlci1jb250ZXh0XCIpO1xudmFyIF9oZWFkTWFuYWdlciA9IHJlcXVpcmUoXCIuL2hlYWQtbWFuYWdlclwiKTtcbnZhciBfcmVxdWVzdElkbGVDYWxsYmFjayA9IHJlcXVpcmUoXCIuL3JlcXVlc3QtaWRsZS1jYWxsYmFja1wiKTtcbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHtcbiAgICBpZiAoa2V5IGluIG9iaikge1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHtcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgICAgICB3cml0YWJsZTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBvYmpba2V5XSA9IHZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gb2JqO1xufVxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7XG4gICAgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkge1xuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBuZXdPYmogPSB7XG4gICAgICAgIH07XG4gICAgICAgIGlmIChvYmogIT0gbnVsbCkge1xuICAgICAgICAgICAgZm9yKHZhciBrZXkgaW4gb2JqKXtcbiAgICAgICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiB7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGlmIChkZXNjLmdldCB8fCBkZXNjLnNldCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld09ialtrZXldID0gb2JqW2tleV07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbmV3T2JqLmRlZmF1bHQgPSBvYmo7XG4gICAgICAgIHJldHVybiBuZXdPYmo7XG4gICAgfVxufVxuZnVuY3Rpb24gX29iamVjdFNwcmVhZCh0YXJnZXQpIHtcbiAgICBmb3IodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXSAhPSBudWxsID8gYXJndW1lbnRzW2ldIDoge1xuICAgICAgICB9O1xuICAgICAgICB2YXIgb3duS2V5cyA9IE9iamVjdC5rZXlzKHNvdXJjZSk7XG4gICAgICAgIGlmICh0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICBvd25LZXlzID0gb3duS2V5cy5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzb3VyY2UpLmZpbHRlcihmdW5jdGlvbihzeW0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzb3VyY2UsIHN5bSkuZW51bWVyYWJsZTtcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgfVxuICAgICAgICBvd25LZXlzLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7XG4gICAgICAgICAgICBfZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHNvdXJjZVtrZXldKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB0YXJnZXQ7XG59XG5mdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoc291cmNlLCBleGNsdWRlZCkge1xuICAgIGlmIChzb3VyY2UgPT0gbnVsbCkgcmV0dXJuIHtcbiAgICB9O1xuICAgIHZhciB0YXJnZXQgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShzb3VyY2UsIGV4Y2x1ZGVkKTtcbiAgICB2YXIga2V5LCBpO1xuICAgIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG4gICAgICAgIHZhciBzb3VyY2VTeW1ib2xLZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzb3VyY2UpO1xuICAgICAgICBmb3IoaSA9IDA7IGkgPCBzb3VyY2VTeW1ib2xLZXlzLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgICAgIGtleSA9IHNvdXJjZVN5bWJvbEtleXNbaV07XG4gICAgICAgICAgICBpZiAoZXhjbHVkZWQuaW5kZXhPZihrZXkpID49IDApIGNvbnRpbnVlO1xuICAgICAgICAgICAgaWYgKCFPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoc291cmNlLCBrZXkpKSBjb250aW51ZTtcbiAgICAgICAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRhcmdldDtcbn1cbmZ1bmN0aW9uIF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKHNvdXJjZSwgZXhjbHVkZWQpIHtcbiAgICBpZiAoc291cmNlID09IG51bGwpIHJldHVybiB7XG4gICAgfTtcbiAgICB2YXIgdGFyZ2V0ID0ge1xuICAgIH07XG4gICAgdmFyIHNvdXJjZUtleXMgPSBPYmplY3Qua2V5cyhzb3VyY2UpO1xuICAgIHZhciBrZXksIGk7XG4gICAgZm9yKGkgPSAwOyBpIDwgc291cmNlS2V5cy5sZW5ndGg7IGkrKyl7XG4gICAgICAgIGtleSA9IHNvdXJjZUtleXNbaV07XG4gICAgICAgIGlmIChleGNsdWRlZC5pbmRleE9mKGtleSkgPj0gMCkgY29udGludWU7XG4gICAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV07XG4gICAgfVxuICAgIHJldHVybiB0YXJnZXQ7XG59XG5jb25zdCBTY3JpcHRDYWNoZSA9IG5ldyBNYXAoKTtcbmNvbnN0IExvYWRDYWNoZSA9IG5ldyBTZXQoKTtcbmNvbnN0IGlnbm9yZVByb3BzID0gW1xuICAgICdvbkxvYWQnLFxuICAgICdkYW5nZXJvdXNseVNldElubmVySFRNTCcsXG4gICAgJ2NoaWxkcmVuJyxcbiAgICAnb25FcnJvcicsXG4gICAgJ3N0cmF0ZWd5JywgXG5dO1xuY29uc3QgbG9hZFNjcmlwdCA9IChwcm9wcyk9PntcbiAgICBjb25zdCB7IHNyYyAsIGlkICwgb25Mb2FkID0oKT0+e1xuICAgIH0gLCBkYW5nZXJvdXNseVNldElubmVySFRNTCAsIGNoaWxkcmVuID0nJyAsIHN0cmF0ZWd5ID0nYWZ0ZXJJbnRlcmFjdGl2ZScgLCBvbkVycm9yICwgIH0gPSBwcm9wcztcbiAgICBjb25zdCBjYWNoZUtleSA9IGlkIHx8IHNyYztcbiAgICAvLyBTY3JpcHQgaGFzIGFscmVhZHkgbG9hZGVkXG4gICAgaWYgKGNhY2hlS2V5ICYmIExvYWRDYWNoZS5oYXMoY2FjaGVLZXkpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gQ29udGVudHMgb2YgdGhpcyBzY3JpcHQgYXJlIGFscmVhZHkgbG9hZGluZy9sb2FkZWRcbiAgICBpZiAoU2NyaXB0Q2FjaGUuaGFzKHNyYykpIHtcbiAgICAgICAgTG9hZENhY2hlLmFkZChjYWNoZUtleSk7XG4gICAgICAgIC8vIEV4ZWN1dGUgb25Mb2FkIHNpbmNlIHRoZSBzY3JpcHQgbG9hZGluZyBoYXMgYmVndW5cbiAgICAgICAgU2NyaXB0Q2FjaGUuZ2V0KHNyYykudGhlbihvbkxvYWQsIG9uRXJyb3IpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgY29uc3QgbG9hZFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KT0+e1xuICAgICAgICBlbC5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgaWYgKG9uTG9hZCkge1xuICAgICAgICAgICAgICAgIG9uTG9hZC5jYWxsKHRoaXMsIGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgIH0pO1xuICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgaWYgKG9uRXJyb3IpIHtcbiAgICAgICAgICAgIG9uRXJyb3IoZSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAoc3JjKSB7XG4gICAgICAgIFNjcmlwdENhY2hlLnNldChzcmMsIGxvYWRQcm9taXNlKTtcbiAgICB9XG4gICAgTG9hZENhY2hlLmFkZChjYWNoZUtleSk7XG4gICAgaWYgKGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MKSB7XG4gICAgICAgIGVsLmlubmVySFRNTCA9IGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLl9faHRtbCB8fCAnJztcbiAgICB9IGVsc2UgaWYgKGNoaWxkcmVuKSB7XG4gICAgICAgIGVsLnRleHRDb250ZW50ID0gdHlwZW9mIGNoaWxkcmVuID09PSAnc3RyaW5nJyA/IGNoaWxkcmVuIDogQXJyYXkuaXNBcnJheShjaGlsZHJlbikgPyBjaGlsZHJlbi5qb2luKCcnKSA6ICcnO1xuICAgIH0gZWxzZSBpZiAoc3JjKSB7XG4gICAgICAgIGVsLnNyYyA9IHNyYztcbiAgICB9XG4gICAgZm9yIChjb25zdCBbaywgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHByb3BzKSl7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IGlnbm9yZVByb3BzLmluY2x1ZGVzKGspKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhdHRyID0gX2hlYWRNYW5hZ2VyLkRPTUF0dHJpYnV0ZU5hbWVzW2tdIHx8IGsudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgZWwuc2V0QXR0cmlidXRlKGF0dHIsIHZhbHVlKTtcbiAgICB9XG4gICAgZWwuc2V0QXR0cmlidXRlKCdkYXRhLW5zY3JpcHQnLCBzdHJhdGVneSk7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbCk7XG59O1xuZnVuY3Rpb24gaGFuZGxlQ2xpZW50U2NyaXB0TG9hZChwcm9wcykge1xuICAgIGNvbnN0IHsgc3RyYXRlZ3kgPSdhZnRlckludGVyYWN0aXZlJyAgfSA9IHByb3BzO1xuICAgIGlmIChzdHJhdGVneSA9PT0gJ2FmdGVySW50ZXJhY3RpdmUnKSB7XG4gICAgICAgIGxvYWRTY3JpcHQocHJvcHMpO1xuICAgIH0gZWxzZSBpZiAoc3RyYXRlZ3kgPT09ICdsYXp5T25sb2FkJykge1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsICgpPT57XG4gICAgICAgICAgICAoMCwgX3JlcXVlc3RJZGxlQ2FsbGJhY2spLnJlcXVlc3RJZGxlQ2FsbGJhY2soKCk9PmxvYWRTY3JpcHQocHJvcHMpXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5mdW5jdGlvbiBsb2FkTGF6eVNjcmlwdChwcm9wcykge1xuICAgIGlmIChkb2N1bWVudC5yZWFkeVN0YXRlID09PSAnY29tcGxldGUnKSB7XG4gICAgICAgICgwLCBfcmVxdWVzdElkbGVDYWxsYmFjaykucmVxdWVzdElkbGVDYWxsYmFjaygoKT0+bG9hZFNjcmlwdChwcm9wcylcbiAgICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsICgpPT57XG4gICAgICAgICAgICAoMCwgX3JlcXVlc3RJZGxlQ2FsbGJhY2spLnJlcXVlc3RJZGxlQ2FsbGJhY2soKCk9PmxvYWRTY3JpcHQocHJvcHMpXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5mdW5jdGlvbiBpbml0U2NyaXB0TG9hZGVyKHNjcmlwdExvYWRlckl0ZW1zKSB7XG4gICAgc2NyaXB0TG9hZGVySXRlbXMuZm9yRWFjaChoYW5kbGVDbGllbnRTY3JpcHRMb2FkKTtcbn1cbmZ1bmN0aW9uIFNjcmlwdChwcm9wcykge1xuICAgIGNvbnN0IHsgc3JjID0nJyAsIG9uTG9hZCA9KCk9PntcbiAgICB9ICwgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgLCBzdHJhdGVneSA9J2FmdGVySW50ZXJhY3RpdmUnICwgb25FcnJvciAgfSA9IHByb3BzLCByZXN0UHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMocHJvcHMsIFtcInNyY1wiLCBcIm9uTG9hZFwiLCBcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCIsIFwic3RyYXRlZ3lcIiwgXCJvbkVycm9yXCJdKTtcbiAgICAvLyBDb250ZXh0IGlzIGF2YWlsYWJsZSBvbmx5IGR1cmluZyBTU1JcbiAgICBjb25zdCB7IHVwZGF0ZVNjcmlwdHMgLCBzY3JpcHRzICwgZ2V0SXNTc3IgIH0gPSAoMCwgX3JlYWN0KS51c2VDb250ZXh0KF9oZWFkTWFuYWdlckNvbnRleHQuSGVhZE1hbmFnZXJDb250ZXh0KTtcbiAgICAoMCwgX3JlYWN0KS51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgaWYgKHN0cmF0ZWd5ID09PSAnYWZ0ZXJJbnRlcmFjdGl2ZScpIHtcbiAgICAgICAgICAgIGxvYWRTY3JpcHQocHJvcHMpO1xuICAgICAgICB9IGVsc2UgaWYgKHN0cmF0ZWd5ID09PSAnbGF6eU9ubG9hZCcpIHtcbiAgICAgICAgICAgIGxvYWRMYXp5U2NyaXB0KHByb3BzKTtcbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgcHJvcHMsXG4gICAgICAgIHN0cmF0ZWd5XG4gICAgXSk7XG4gICAgaWYgKHN0cmF0ZWd5ID09PSAnYmVmb3JlSW50ZXJhY3RpdmUnKSB7XG4gICAgICAgIGlmICh1cGRhdGVTY3JpcHRzKSB7XG4gICAgICAgICAgICBzY3JpcHRzLmJlZm9yZUludGVyYWN0aXZlID0gKHNjcmlwdHMuYmVmb3JlSW50ZXJhY3RpdmUgfHwgW10pLmNvbmNhdChbXG4gICAgICAgICAgICAgICAgX29iamVjdFNwcmVhZCh7XG4gICAgICAgICAgICAgICAgICAgIHNyYyxcbiAgICAgICAgICAgICAgICAgICAgb25Mb2FkLFxuICAgICAgICAgICAgICAgICAgICBvbkVycm9yXG4gICAgICAgICAgICAgICAgfSwgcmVzdFByb3BzKSwgXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgICAgIHVwZGF0ZVNjcmlwdHMoc2NyaXB0cyk7XG4gICAgICAgIH0gZWxzZSBpZiAoZ2V0SXNTc3IgJiYgZ2V0SXNTc3IoKSkge1xuICAgICAgICAgICAgLy8gU2NyaXB0IGhhcyBhbHJlYWR5IGxvYWRlZCBkdXJpbmcgU1NSXG4gICAgICAgICAgICBMb2FkQ2FjaGUuYWRkKHJlc3RQcm9wcy5pZCB8fCBzcmMpO1xuICAgICAgICB9IGVsc2UgaWYgKGdldElzU3NyICYmICFnZXRJc1NzcigpKSB7XG4gICAgICAgICAgICBsb2FkU2NyaXB0KHByb3BzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn1cbnZhciBfZGVmYXVsdCA9IFNjcmlwdDtcbmV4cG9ydHMuZGVmYXVsdCA9IF9kZWZhdWx0O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zY3JpcHQuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiaW5pdFNjcmlwdExvYWRlciIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIl9oZWFkTWFuYWdlckNvbnRleHQiLCJfaGVhZE1hbmFnZXIiLCJfcmVxdWVzdElkbGVDYWxsYmFjayIsIl9kZWZpbmVQcm9wZXJ0eSIsIm9iaiIsImtleSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIl9fZXNNb2R1bGUiLCJuZXdPYmoiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZ2V0Iiwic2V0IiwiX29iamVjdFNwcmVhZCIsInRhcmdldCIsImkiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJzb3VyY2UiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImNvbmNhdCIsImZpbHRlciIsInN5bSIsImZvckVhY2giLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJleGNsdWRlZCIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlIiwic291cmNlU3ltYm9sS2V5cyIsImluZGV4T2YiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsInNvdXJjZUtleXMiLCJTY3JpcHRDYWNoZSIsIk1hcCIsIkxvYWRDYWNoZSIsIlNldCIsImlnbm9yZVByb3BzIiwibG9hZFNjcmlwdCIsInByb3BzIiwic3JjIiwiaWQiLCJvbkxvYWQiLCJkYW5nZXJvdXNseVNldElubmVySFRNTCIsImNoaWxkcmVuIiwic3RyYXRlZ3kiLCJvbkVycm9yIiwiY2FjaGVLZXkiLCJoYXMiLCJhZGQiLCJ0aGVuIiwiZWwiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJsb2FkUHJvbWlzZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiYWRkRXZlbnRMaXN0ZW5lciIsImUiLCJpbm5lckhUTUwiLCJfX2h0bWwiLCJ0ZXh0Q29udGVudCIsIkFycmF5IiwiaXNBcnJheSIsImpvaW4iLCJlbnRyaWVzIiwiayIsInVuZGVmaW5lZCIsImluY2x1ZGVzIiwiYXR0ciIsIkRPTUF0dHJpYnV0ZU5hbWVzIiwidG9Mb3dlckNhc2UiLCJzZXRBdHRyaWJ1dGUiLCJib2R5IiwiYXBwZW5kQ2hpbGQiLCJoYW5kbGVDbGllbnRTY3JpcHRMb2FkIiwid2luZG93IiwicmVxdWVzdElkbGVDYWxsYmFjayIsImxvYWRMYXp5U2NyaXB0IiwicmVhZHlTdGF0ZSIsInNjcmlwdExvYWRlckl0ZW1zIiwiU2NyaXB0IiwicmVzdFByb3BzIiwidXNlQ29udGV4dCIsIkhlYWRNYW5hZ2VyQ29udGV4dCIsInVwZGF0ZVNjcmlwdHMiLCJzY3JpcHRzIiwiZ2V0SXNTc3IiLCJ1c2VFZmZlY3QiLCJiZWZvcmVJbnRlcmFjdGl2ZSIsIl9kZWZhdWx0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/script.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/vitals.js": +/*!*************************************************!*\ + !*** ./node_modules/next/dist/client/vitals.js ***! + \*************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _s = $RefreshSig$();\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.trackWebVitalMetric = trackWebVitalMetric;\nexports.useExperimentalWebVitalsReport = useExperimentalWebVitalsReport;\nexports.webVitalsCallbacks = void 0;\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nvar webVitalsCallbacks = new Set();\nexports.webVitalsCallbacks = webVitalsCallbacks;\nvar metrics = [];\n\nfunction trackWebVitalMetric(metric) {\n metrics.push(metric);\n webVitalsCallbacks.forEach(function (callback) {\n return callback(metric);\n });\n}\n\nfunction useExperimentalWebVitalsReport(callback) {\n _s();\n\n var metricIndexRef = (0, _react).useRef(0);\n (0, _react).useEffect(function () {\n // Flush calculated metrics\n var reportMetric = function reportMetric(metric) {\n callback(metric);\n metricIndexRef.current = metrics.length;\n };\n\n for (var i = metricIndexRef.current; i < metrics.length; i++) {\n reportMetric(metrics[i]);\n }\n\n webVitalsCallbacks.add(reportMetric);\n return function () {\n webVitalsCallbacks[\"delete\"](reportMetric);\n };\n }, [callback]);\n}\n\n_s(useExperimentalWebVitalsReport, \"27OgJci6R6u+BNzu04R3TrX4wbY=\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC92aXRhbHMuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOzs7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELDJCQUFBLEdBQThCRSxtQkFBOUI7QUFDQUYsc0NBQUEsR0FBeUNHLDhCQUF6QztBQUNBSCwwQkFBQSxHQUE2QixLQUFLLENBQWxDOztBQUNBLElBQUlLLE1BQU0sR0FBR0MsbUJBQU8sQ0FBQyw0Q0FBRCxDQUFwQjs7QUFDQSxJQUFNRixrQkFBa0IsR0FBRyxJQUFJRyxHQUFKLEVBQTNCO0FBQ0FQLDBCQUFBLEdBQTZCSSxrQkFBN0I7QUFDQSxJQUFNSSxPQUFPLEdBQUcsRUFBaEI7O0FBQ0EsU0FBU04sbUJBQVQsQ0FBNkJPLE1BQTdCLEVBQXFDO0FBQ2pDRCxFQUFBQSxPQUFPLENBQUNFLElBQVIsQ0FBYUQsTUFBYjtBQUNBTCxFQUFBQSxrQkFBa0IsQ0FBQ08sT0FBbkIsQ0FBMkIsVUFBQ0MsUUFBRDtBQUFBLFdBQVlBLFFBQVEsQ0FBQ0gsTUFBRCxDQUFwQjtBQUFBLEdBQTNCO0FBRUg7O0FBQ0QsU0FBU04sOEJBQVQsQ0FBd0NTLFFBQXhDLEVBQWtEO0FBQUE7O0FBQzlDLE1BQU1DLGNBQWMsR0FBRyxDQUFDLEdBQUdSLE1BQUosRUFBWVMsTUFBWixDQUFtQixDQUFuQixDQUF2QjtBQUNBLEdBQUMsR0FBR1QsTUFBSixFQUFZVSxTQUFaLENBQXNCLFlBQUk7QUFDdEI7QUFDQSxRQUFNQyxZQUFZLEdBQUcsU0FBZkEsWUFBZSxDQUFDUCxNQUFELEVBQVU7QUFDM0JHLE1BQUFBLFFBQVEsQ0FBQ0gsTUFBRCxDQUFSO0FBQ0FJLE1BQUFBLGNBQWMsQ0FBQ0ksT0FBZixHQUF5QlQsT0FBTyxDQUFDVSxNQUFqQztBQUNILEtBSEQ7O0FBSUEsU0FBSSxJQUFJQyxDQUFDLEdBQUdOLGNBQWMsQ0FBQ0ksT0FBM0IsRUFBb0NFLENBQUMsR0FBR1gsT0FBTyxDQUFDVSxNQUFoRCxFQUF3REMsQ0FBQyxFQUF6RCxFQUE0RDtBQUN4REgsTUFBQUEsWUFBWSxDQUFDUixPQUFPLENBQUNXLENBQUQsQ0FBUixDQUFaO0FBQ0g7O0FBQ0RmLElBQUFBLGtCQUFrQixDQUFDZ0IsR0FBbkIsQ0FBdUJKLFlBQXZCO0FBQ0EsV0FBTyxZQUFJO0FBQ1BaLE1BQUFBLGtCQUFrQixVQUFsQixDQUEwQlksWUFBMUI7QUFDSCxLQUZEO0FBR0gsR0FiRCxFQWFHLENBQ0NKLFFBREQsQ0FiSDtBQWdCSDs7R0FsQlFUIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3ZpdGFscy5qcz85NzJiIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy50cmFja1dlYlZpdGFsTWV0cmljID0gdHJhY2tXZWJWaXRhbE1ldHJpYztcbmV4cG9ydHMudXNlRXhwZXJpbWVudGFsV2ViVml0YWxzUmVwb3J0ID0gdXNlRXhwZXJpbWVudGFsV2ViVml0YWxzUmVwb3J0O1xuZXhwb3J0cy53ZWJWaXRhbHNDYWxsYmFja3MgPSB2b2lkIDA7XG52YXIgX3JlYWN0ID0gcmVxdWlyZShcInJlYWN0XCIpO1xuY29uc3Qgd2ViVml0YWxzQ2FsbGJhY2tzID0gbmV3IFNldCgpO1xuZXhwb3J0cy53ZWJWaXRhbHNDYWxsYmFja3MgPSB3ZWJWaXRhbHNDYWxsYmFja3M7XG5jb25zdCBtZXRyaWNzID0gW107XG5mdW5jdGlvbiB0cmFja1dlYlZpdGFsTWV0cmljKG1ldHJpYykge1xuICAgIG1ldHJpY3MucHVzaChtZXRyaWMpO1xuICAgIHdlYlZpdGFsc0NhbGxiYWNrcy5mb3JFYWNoKChjYWxsYmFjayk9PmNhbGxiYWNrKG1ldHJpYylcbiAgICApO1xufVxuZnVuY3Rpb24gdXNlRXhwZXJpbWVudGFsV2ViVml0YWxzUmVwb3J0KGNhbGxiYWNrKSB7XG4gICAgY29uc3QgbWV0cmljSW5kZXhSZWYgPSAoMCwgX3JlYWN0KS51c2VSZWYoMCk7XG4gICAgKDAsIF9yZWFjdCkudXNlRWZmZWN0KCgpPT57XG4gICAgICAgIC8vIEZsdXNoIGNhbGN1bGF0ZWQgbWV0cmljc1xuICAgICAgICBjb25zdCByZXBvcnRNZXRyaWMgPSAobWV0cmljKT0+e1xuICAgICAgICAgICAgY2FsbGJhY2sobWV0cmljKTtcbiAgICAgICAgICAgIG1ldHJpY0luZGV4UmVmLmN1cnJlbnQgPSBtZXRyaWNzLmxlbmd0aDtcbiAgICAgICAgfTtcbiAgICAgICAgZm9yKGxldCBpID0gbWV0cmljSW5kZXhSZWYuY3VycmVudDsgaSA8IG1ldHJpY3MubGVuZ3RoOyBpKyspe1xuICAgICAgICAgICAgcmVwb3J0TWV0cmljKG1ldHJpY3NbaV0pO1xuICAgICAgICB9XG4gICAgICAgIHdlYlZpdGFsc0NhbGxiYWNrcy5hZGQocmVwb3J0TWV0cmljKTtcbiAgICAgICAgcmV0dXJuICgpPT57XG4gICAgICAgICAgICB3ZWJWaXRhbHNDYWxsYmFja3MuZGVsZXRlKHJlcG9ydE1ldHJpYyk7XG4gICAgICAgIH07XG4gICAgfSwgW1xuICAgICAgICBjYWxsYmFja1xuICAgIF0pO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD12aXRhbHMuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwidHJhY2tXZWJWaXRhbE1ldHJpYyIsInVzZUV4cGVyaW1lbnRhbFdlYlZpdGFsc1JlcG9ydCIsIndlYlZpdGFsc0NhbGxiYWNrcyIsIl9yZWFjdCIsInJlcXVpcmUiLCJTZXQiLCJtZXRyaWNzIiwibWV0cmljIiwicHVzaCIsImZvckVhY2giLCJjYWxsYmFjayIsIm1ldHJpY0luZGV4UmVmIiwidXNlUmVmIiwidXNlRWZmZWN0IiwicmVwb3J0TWV0cmljIiwiY3VycmVudCIsImxlbmd0aCIsImkiLCJhZGQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/vitals.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/with-router.js": +/*!******************************************************!*\ + !*** ./node_modules/next/dist/client/with-router.js ***! + \******************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = withRouter;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _router = __webpack_require__(/*! ./router */ \"./node_modules/next/dist/client/router.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction withRouter(ComposedComponent) {\n var _s = $RefreshSig$();\n\n function WithRouterWrapper(props) {\n _s();\n\n return /*#__PURE__*/_react[\"default\"].createElement(ComposedComponent, Object.assign({\n router: (0, _router).useRouter()\n }, props));\n }\n\n _s(WithRouterWrapper, \"CeygcqajjFExIxFEzW4x/gfWEGQ=\", true);\n\n WithRouterWrapper.getInitialProps = ComposedComponent.getInitialProps;\n WithRouterWrapper.origGetInitialProps = ComposedComponent.origGetInitialProps;\n\n if (true) {\n var name = ComposedComponent.displayName || ComposedComponent.name || 'Unknown';\n WithRouterWrapper.displayName = \"withRouter(\".concat(name, \")\");\n }\n\n return WithRouterWrapper;\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC93aXRoLXJvdXRlci5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELGtCQUFBLEdBQWtCRSxVQUFsQjs7QUFDQSxJQUFJQyxNQUFNLEdBQUdDLHNCQUFzQixDQUFDQyxtQkFBTyxDQUFDLDRDQUFELENBQVIsQ0FBbkM7O0FBQ0EsSUFBSUMsT0FBTyxHQUFHRCxtQkFBTyxDQUFDLDJEQUFELENBQXJCOztBQUNBLFNBQVNELHNCQUFULENBQWdDRyxHQUFoQyxFQUFxQztBQUNqQyxTQUFPQSxHQUFHLElBQUlBLEdBQUcsQ0FBQ0MsVUFBWCxHQUF3QkQsR0FBeEIsR0FBOEI7QUFDakMsZUFBU0E7QUFEd0IsR0FBckM7QUFHSDs7QUFDRCxTQUFTTCxVQUFULENBQW9CTyxpQkFBcEIsRUFBdUM7QUFBQTs7QUFDbkMsV0FBU0MsaUJBQVQsQ0FBMkJDLEtBQTNCLEVBQWtDO0FBQUE7O0FBQzlCLFdBQU8sYUFBY1IsTUFBTSxXQUFOLENBQWVTLGFBQWYsQ0FBNkJILGlCQUE3QixFQUFnRFgsTUFBTSxDQUFDZSxNQUFQLENBQWM7QUFDL0VDLE1BQUFBLE1BQU0sRUFBRSxDQUFDLEdBQUdSLE9BQUosRUFBYVMsU0FBYjtBQUR1RSxLQUFkLEVBRWxFSixLQUZrRSxDQUFoRCxDQUFyQjtBQUdIOztBQUxrQyxLQUMxQkQsaUJBRDBCOztBQU1uQ0EsRUFBQUEsaUJBQWlCLENBQUNNLGVBQWxCLEdBQW9DUCxpQkFBaUIsQ0FBQ08sZUFBdEQ7QUFDQU4sRUFBQUEsaUJBQWlCLENBQUNPLG1CQUFsQixHQUF3Q1IsaUJBQWlCLENBQUNRLG1CQUExRDs7QUFDQSxZQUEyQztBQUN2QyxRQUFNQyxJQUFJLEdBQUdULGlCQUFpQixDQUFDVSxXQUFsQixJQUFpQ1YsaUJBQWlCLENBQUNTLElBQW5ELElBQTJELFNBQXhFO0FBQ0FSLElBQUFBLGlCQUFpQixDQUFDUyxXQUFsQix3QkFBOENELElBQTlDO0FBQ0g7O0FBQ0QsU0FBT1IsaUJBQVA7QUFDSCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC93aXRoLXJvdXRlci5qcz9hYzdjIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gd2l0aFJvdXRlcjtcbnZhciBfcmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG52YXIgX3JvdXRlciA9IHJlcXVpcmUoXCIuL3JvdXRlclwiKTtcbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbmZ1bmN0aW9uIHdpdGhSb3V0ZXIoQ29tcG9zZWRDb21wb25lbnQpIHtcbiAgICBmdW5jdGlvbiBXaXRoUm91dGVyV3JhcHBlcihwcm9wcykge1xuICAgICAgICByZXR1cm4oLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KENvbXBvc2VkQ29tcG9uZW50LCBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgICAgIHJvdXRlcjogKDAsIF9yb3V0ZXIpLnVzZVJvdXRlcigpXG4gICAgICAgIH0sIHByb3BzKSkpO1xuICAgIH1cbiAgICBXaXRoUm91dGVyV3JhcHBlci5nZXRJbml0aWFsUHJvcHMgPSBDb21wb3NlZENvbXBvbmVudC5nZXRJbml0aWFsUHJvcHM7XG4gICAgV2l0aFJvdXRlcldyYXBwZXIub3JpZ0dldEluaXRpYWxQcm9wcyA9IENvbXBvc2VkQ29tcG9uZW50Lm9yaWdHZXRJbml0aWFsUHJvcHM7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgY29uc3QgbmFtZSA9IENvbXBvc2VkQ29tcG9uZW50LmRpc3BsYXlOYW1lIHx8IENvbXBvc2VkQ29tcG9uZW50Lm5hbWUgfHwgJ1Vua25vd24nO1xuICAgICAgICBXaXRoUm91dGVyV3JhcHBlci5kaXNwbGF5TmFtZSA9IGB3aXRoUm91dGVyKCR7bmFtZX0pYDtcbiAgICB9XG4gICAgcmV0dXJuIFdpdGhSb3V0ZXJXcmFwcGVyO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD13aXRoLXJvdXRlci5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJ3aXRoUm91dGVyIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcm91dGVyIiwib2JqIiwiX19lc01vZHVsZSIsIkNvbXBvc2VkQ29tcG9uZW50IiwiV2l0aFJvdXRlcldyYXBwZXIiLCJwcm9wcyIsImNyZWF0ZUVsZW1lbnQiLCJhc3NpZ24iLCJyb3V0ZXIiLCJ1c2VSb3V0ZXIiLCJnZXRJbml0aWFsUHJvcHMiLCJvcmlnR2V0SW5pdGlhbFByb3BzIiwibmFtZSIsImRpc3BsYXlOYW1lIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/with-router.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/compiled/strip-ansi/index.js": +/*!*************************************************************!*\ + !*** ./node_modules/next/dist/compiled/strip-ansi/index.js ***! + \*************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var __dirname = \"/\";\n/* module decorator */ module = __webpack_require__.nmd(module);\nmodule.exports = function () {\n \"use strict\";\n\n var e = {\n 161: function _(e) {\n e.exports = function () {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$onlyFirst = _ref.onlyFirst,\n e = _ref$onlyFirst === void 0 ? false : _ref$onlyFirst;\n\n var r = [\"[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:[a-zA-Z\\\\d]*(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)\", \"(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-ntqry=><~]))\"].join(\"|\");\n return new RegExp(r, e ? undefined : \"g\");\n };\n },\n 301: function _(e, r, t) {\n var _ = t(161);\n\n e.exports = function (e) {\n return typeof e === \"string\" ? e.replace(_(), \"\") : e;\n };\n }\n };\n var r = {};\n\n function __nccwpck_require__(t) {\n if (r[t]) {\n return r[t].exports;\n }\n\n var _ = r[t] = {\n exports: {}\n };\n\n var n = true;\n\n try {\n e[t](_, _.exports, __nccwpck_require__);\n n = false;\n } finally {\n if (n) delete r[t];\n }\n\n return _.exports;\n }\n\n __nccwpck_require__.ab = __dirname + \"/\";\n return __nccwpck_require__(301);\n}();\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3N0cmlwLWFuc2kvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBQUEsTUFBTSxDQUFDQyxPQUFQLEdBQWdCLFlBQUk7QUFBQzs7QUFBYSxNQUFJQyxDQUFDLEdBQUM7QUFBQyxTQUFJLFdBQUFBLENBQUMsRUFBRTtBQUFDQSxNQUFBQSxDQUFDLENBQUNELE9BQUYsR0FBVyxZQUEwQjtBQUFBLHVGQUFMLEVBQUs7QUFBQSxrQ0FBeEJFLFNBQXdCO0FBQUEsWUFBZEQsQ0FBYywrQkFBWixLQUFZOztBQUFDLFlBQU1FLENBQUMsR0FBQyxDQUFDLDZGQUFELEVBQStGLDBEQUEvRixFQUEySkMsSUFBM0osQ0FBZ0ssR0FBaEssQ0FBUjtBQUE2SyxlQUFPLElBQUlDLE1BQUosQ0FBV0YsQ0FBWCxFQUFhRixDQUFDLEdBQUNLLFNBQUQsR0FBVyxHQUF6QixDQUFQO0FBQXFDLE9BQXhQO0FBQTBQLEtBQW5RO0FBQW9RLFNBQUksV0FBQ0wsQ0FBRCxFQUFHRSxDQUFILEVBQUtJLENBQUwsRUFBUztBQUFDLFVBQU1DLENBQUMsR0FBQ0QsQ0FBQyxDQUFDLEdBQUQsQ0FBVDs7QUFBZU4sTUFBQUEsQ0FBQyxDQUFDRCxPQUFGLEdBQVcsVUFBQUMsQ0FBQztBQUFBLGVBQUUsT0FBT0EsQ0FBUCxLQUFXLFFBQVgsR0FBb0JBLENBQUMsQ0FBQ1EsT0FBRixDQUFVRCxDQUFDLEVBQVgsRUFBYyxFQUFkLENBQXBCLEdBQXNDUCxDQUF4QztBQUFBLE9BQVo7QUFBdUQ7QUFBeFYsR0FBTjtBQUFnVyxNQUFJRSxDQUFDLEdBQUMsRUFBTjs7QUFBUyxXQUFTTyxtQkFBVCxDQUE2QkgsQ0FBN0IsRUFBK0I7QUFBQyxRQUFHSixDQUFDLENBQUNJLENBQUQsQ0FBSixFQUFRO0FBQUMsYUFBT0osQ0FBQyxDQUFDSSxDQUFELENBQUQsQ0FBS1AsT0FBWjtBQUFvQjs7QUFBQSxRQUFJUSxDQUFDLEdBQUNMLENBQUMsQ0FBQ0ksQ0FBRCxDQUFELEdBQUs7QUFBQ1AsTUFBQUEsT0FBTyxFQUFDO0FBQVQsS0FBWDs7QUFBd0IsUUFBSVcsQ0FBQyxHQUFDLElBQU47O0FBQVcsUUFBRztBQUFDVixNQUFBQSxDQUFDLENBQUNNLENBQUQsQ0FBRCxDQUFLQyxDQUFMLEVBQU9BLENBQUMsQ0FBQ1IsT0FBVCxFQUFpQlUsbUJBQWpCO0FBQXNDQyxNQUFBQSxDQUFDLEdBQUMsS0FBRjtBQUFRLEtBQWxELFNBQXlEO0FBQUMsVUFBR0EsQ0FBSCxFQUFLLE9BQU9SLENBQUMsQ0FBQ0ksQ0FBRCxDQUFSO0FBQVk7O0FBQUEsV0FBT0MsQ0FBQyxDQUFDUixPQUFUO0FBQWlCOztBQUFBVSxFQUFBQSxtQkFBbUIsQ0FBQ0UsRUFBcEIsR0FBdUJDLFNBQVMsR0FBQyxHQUFqQztBQUFxQyxTQUFPSCxtQkFBbUIsQ0FBQyxHQUFELENBQTFCO0FBQWdDLENBQTduQixFQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvc3RyaXAtYW5zaS9pbmRleC5qcz8xMWZhIl0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzPSgoKT0+e1widXNlIHN0cmljdFwiO3ZhciBlPXsxNjE6ZT0+e2UuZXhwb3J0cz0oKHtvbmx5Rmlyc3Q6ZT1mYWxzZX09e30pPT57Y29uc3Qgcj1bXCJbXFxcXHUwMDFCXFxcXHUwMDlCXVtbXFxcXF0oKSM7P10qKD86KD86KD86W2EtekEtWlxcXFxkXSooPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10qKSopP1xcXFx1MDAwNylcIixcIig/Oig/OlxcXFxkezEsNH0oPzo7XFxcXGR7MCw0fSkqKT9bXFxcXGRBLVBSLVRaY2YtbnRxcnk9Pjx+XSkpXCJdLmpvaW4oXCJ8XCIpO3JldHVybiBuZXcgUmVnRXhwKHIsZT91bmRlZmluZWQ6XCJnXCIpfSl9LDMwMTooZSxyLHQpPT57Y29uc3QgXz10KDE2MSk7ZS5leHBvcnRzPShlPT50eXBlb2YgZT09PVwic3RyaW5nXCI/ZS5yZXBsYWNlKF8oKSxcIlwiKTplKX19O3ZhciByPXt9O2Z1bmN0aW9uIF9fbmNjd3Bja19yZXF1aXJlX18odCl7aWYoclt0XSl7cmV0dXJuIHJbdF0uZXhwb3J0c312YXIgXz1yW3RdPXtleHBvcnRzOnt9fTt2YXIgbj10cnVlO3RyeXtlW3RdKF8sXy5leHBvcnRzLF9fbmNjd3Bja19yZXF1aXJlX18pO249ZmFsc2V9ZmluYWxseXtpZihuKWRlbGV0ZSByW3RdfXJldHVybiBfLmV4cG9ydHN9X19uY2N3cGNrX3JlcXVpcmVfXy5hYj1fX2Rpcm5hbWUrXCIvXCI7cmV0dXJuIF9fbmNjd3Bja19yZXF1aXJlX18oMzAxKX0pKCk7Il0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJlIiwib25seUZpcnN0IiwiciIsImpvaW4iLCJSZWdFeHAiLCJ1bmRlZmluZWQiLCJ0IiwiXyIsInJlcGxhY2UiLCJfX25jY3dwY2tfcmVxdWlyZV9fIiwibiIsImFiIiwiX19kaXJuYW1lIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/compiled/strip-ansi/index.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/head-manager-context.js": +/*!*******************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/head-manager-context.js ***! + \*******************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.HeadManagerContext = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar HeadManagerContext = _react[\"default\"].createContext({});\n\nexports.HeadManagerContext = HeadManagerContext;\n\nif (true) {\n HeadManagerContext.displayName = 'HeadManagerContext';\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaGVhZC1tYW5hZ2VyLWNvbnRleHQuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCwwQkFBQSxHQUE2QixLQUFLLENBQWxDOztBQUNBLElBQUlHLE1BQU0sR0FBR0Msc0JBQXNCLENBQUNDLG1CQUFPLENBQUMsNENBQUQsQ0FBUixDQUFuQzs7QUFDQSxTQUFTRCxzQkFBVCxDQUFnQ0UsR0FBaEMsRUFBcUM7QUFDakMsU0FBT0EsR0FBRyxJQUFJQSxHQUFHLENBQUNDLFVBQVgsR0FBd0JELEdBQXhCLEdBQThCO0FBQ2pDLGVBQVNBO0FBRHdCLEdBQXJDO0FBR0g7O0FBQ0QsSUFBTUosa0JBQWtCLEdBQUdDLE1BQU0sV0FBTixDQUFlSyxhQUFmLENBQTZCLEVBQTdCLENBQTNCOztBQUVBUiwwQkFBQSxHQUE2QkUsa0JBQTdCOztBQUNBLElBQUksTUFBdUM7QUFDdkNBLEVBQUFBLGtCQUFrQixDQUFDTyxXQUFuQixHQUFpQyxvQkFBakM7QUFDSCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaGVhZC1tYW5hZ2VyLWNvbnRleHQuanM/NzZlYiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuSGVhZE1hbmFnZXJDb250ZXh0ID0gdm9pZCAwO1xudmFyIF9yZWFjdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJlYWN0XCIpKTtcbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbmNvbnN0IEhlYWRNYW5hZ2VyQ29udGV4dCA9IF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUNvbnRleHQoe1xufSk7XG5leHBvcnRzLkhlYWRNYW5hZ2VyQ29udGV4dCA9IEhlYWRNYW5hZ2VyQ29udGV4dDtcbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgSGVhZE1hbmFnZXJDb250ZXh0LmRpc3BsYXlOYW1lID0gJ0hlYWRNYW5hZ2VyQ29udGV4dCc7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhlYWQtbWFuYWdlci1jb250ZXh0LmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsIkhlYWRNYW5hZ2VyQ29udGV4dCIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwib2JqIiwiX19lc01vZHVsZSIsImNyZWF0ZUNvbnRleHQiLCJkaXNwbGF5TmFtZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/head-manager-context.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js": +/*!*************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js ***! + \*************************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.normalizeLocalePath = normalizeLocalePath;\n\nfunction normalizeLocalePath(pathname, locales) {\n var detectedLocale; // first item will be empty string from splitting at first char\n\n var pathnameParts = pathname.split('/');\n (locales || []).some(function (locale) {\n if (pathnameParts[1] && pathnameParts[1].toLowerCase() === locale.toLowerCase()) {\n detectedLocale = locale;\n pathnameParts.splice(1, 1);\n pathname = pathnameParts.join('/') || '/';\n return true;\n }\n\n return false;\n });\n return {\n pathname: pathname,\n detectedLocale: detectedLocale\n };\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaTE4bi9ub3JtYWxpemUtbG9jYWxlLXBhdGguanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCwyQkFBQSxHQUE4QkUsbUJBQTlCOztBQUNBLFNBQVNBLG1CQUFULENBQTZCQyxRQUE3QixFQUF1Q0MsT0FBdkMsRUFBZ0Q7QUFDNUMsTUFBSUMsY0FBSixDQUQ0QyxDQUU1Qzs7QUFDQSxNQUFNQyxhQUFhLEdBQUdILFFBQVEsQ0FBQ0ksS0FBVCxDQUFlLEdBQWYsQ0FBdEI7QUFDQSxHQUFDSCxPQUFPLElBQUksRUFBWixFQUFnQkksSUFBaEIsQ0FBcUIsVUFBQ0MsTUFBRCxFQUFVO0FBQzNCLFFBQUlILGFBQWEsQ0FBQyxDQUFELENBQWIsSUFBb0JBLGFBQWEsQ0FBQyxDQUFELENBQWIsQ0FBaUJJLFdBQWpCLE9BQW1DRCxNQUFNLENBQUNDLFdBQVAsRUFBM0QsRUFBaUY7QUFDN0VMLE1BQUFBLGNBQWMsR0FBR0ksTUFBakI7QUFDQUgsTUFBQUEsYUFBYSxDQUFDSyxNQUFkLENBQXFCLENBQXJCLEVBQXdCLENBQXhCO0FBQ0FSLE1BQUFBLFFBQVEsR0FBR0csYUFBYSxDQUFDTSxJQUFkLENBQW1CLEdBQW5CLEtBQTJCLEdBQXRDO0FBQ0EsYUFBTyxJQUFQO0FBQ0g7O0FBQ0QsV0FBTyxLQUFQO0FBQ0gsR0FSRDtBQVNBLFNBQU87QUFDSFQsSUFBQUEsUUFBUSxFQUFSQSxRQURHO0FBRUhFLElBQUFBLGNBQWMsRUFBZEE7QUFGRyxHQUFQO0FBSUgiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zaGFyZWQvbGliL2kxOG4vbm9ybWFsaXplLWxvY2FsZS1wYXRoLmpzPzA0M2IiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLm5vcm1hbGl6ZUxvY2FsZVBhdGggPSBub3JtYWxpemVMb2NhbGVQYXRoO1xuZnVuY3Rpb24gbm9ybWFsaXplTG9jYWxlUGF0aChwYXRobmFtZSwgbG9jYWxlcykge1xuICAgIGxldCBkZXRlY3RlZExvY2FsZTtcbiAgICAvLyBmaXJzdCBpdGVtIHdpbGwgYmUgZW1wdHkgc3RyaW5nIGZyb20gc3BsaXR0aW5nIGF0IGZpcnN0IGNoYXJcbiAgICBjb25zdCBwYXRobmFtZVBhcnRzID0gcGF0aG5hbWUuc3BsaXQoJy8nKTtcbiAgICAobG9jYWxlcyB8fCBbXSkuc29tZSgobG9jYWxlKT0+e1xuICAgICAgICBpZiAocGF0aG5hbWVQYXJ0c1sxXSAmJiBwYXRobmFtZVBhcnRzWzFdLnRvTG93ZXJDYXNlKCkgPT09IGxvY2FsZS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgICAgICBkZXRlY3RlZExvY2FsZSA9IGxvY2FsZTtcbiAgICAgICAgICAgIHBhdGhuYW1lUGFydHMuc3BsaWNlKDEsIDEpO1xuICAgICAgICAgICAgcGF0aG5hbWUgPSBwYXRobmFtZVBhcnRzLmpvaW4oJy8nKSB8fCAnLyc7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcGF0aG5hbWUsXG4gICAgICAgIGRldGVjdGVkTG9jYWxlXG4gICAgfTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bm9ybWFsaXplLWxvY2FsZS1wYXRoLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsIm5vcm1hbGl6ZUxvY2FsZVBhdGgiLCJwYXRobmFtZSIsImxvY2FsZXMiLCJkZXRlY3RlZExvY2FsZSIsInBhdGhuYW1lUGFydHMiLCJzcGxpdCIsInNvbWUiLCJsb2NhbGUiLCJ0b0xvd2VyQ2FzZSIsInNwbGljZSIsImpvaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/mitt.js": +/*!***************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/mitt.js ***! + \***************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = mitt;\n\nfunction mitt() {\n var all = Object.create(null);\n return {\n on: function on(type, handler) {\n (all[type] || (all[type] = [])).push(handler);\n },\n off: function off(type, handler) {\n if (all[type]) {\n all[type].splice(all[type].indexOf(handler) >>> 0, 1);\n }\n },\n emit: function emit(type) {\n for (var _len = arguments.length, evts = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n evts[_key - 1] = arguments[_key];\n }\n\n (all[type] || []).slice().map(function (handler) {\n handler.apply(void 0, evts);\n });\n }\n };\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvbWl0dC5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELGtCQUFBLEdBQWtCRSxJQUFsQjs7QUFDQSxTQUFTQSxJQUFULEdBQWdCO0FBQ1osTUFBTUMsR0FBRyxHQUFHTCxNQUFNLENBQUNNLE1BQVAsQ0FBYyxJQUFkLENBQVo7QUFDQSxTQUFPO0FBQ0hDLElBQUFBLEVBREcsY0FDQ0MsSUFERCxFQUNPQyxPQURQLEVBQ2dCO0FBQ2YsT0FBQ0osR0FBRyxDQUFDRyxJQUFELENBQUgsS0FBY0gsR0FBRyxDQUFDRyxJQUFELENBQUgsR0FBWSxFQUExQixDQUFELEVBQWdDRSxJQUFoQyxDQUFxQ0QsT0FBckM7QUFDSCxLQUhFO0FBSUhFLElBQUFBLEdBSkcsZUFJRUgsSUFKRixFQUlRQyxPQUpSLEVBSWlCO0FBQ2hCLFVBQUlKLEdBQUcsQ0FBQ0csSUFBRCxDQUFQLEVBQWU7QUFDWEgsUUFBQUEsR0FBRyxDQUFDRyxJQUFELENBQUgsQ0FBVUksTUFBVixDQUFpQlAsR0FBRyxDQUFDRyxJQUFELENBQUgsQ0FBVUssT0FBVixDQUFrQkosT0FBbEIsTUFBK0IsQ0FBaEQsRUFBbUQsQ0FBbkQ7QUFDSDtBQUNKLEtBUkU7QUFTSEssSUFBQUEsSUFURyxnQkFTR04sSUFUSCxFQVNrQjtBQUFBLHdDQUFOTyxJQUFNO0FBQU5BLFFBQUFBLElBQU07QUFBQTs7QUFDakIsT0FBQ1YsR0FBRyxDQUFDRyxJQUFELENBQUgsSUFBYSxFQUFkLEVBQWtCUSxLQUFsQixHQUEwQkMsR0FBMUIsQ0FBOEIsVUFBQ1IsT0FBRCxFQUFXO0FBQ3JDQSxRQUFBQSxPQUFPLE1BQVAsU0FBV00sSUFBWDtBQUNILE9BRkQ7QUFHSDtBQWJFLEdBQVA7QUFlSCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvbWl0dC5qcz84NTFkIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gbWl0dDtcbmZ1bmN0aW9uIG1pdHQoKSB7XG4gICAgY29uc3QgYWxsID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICByZXR1cm4ge1xuICAgICAgICBvbiAodHlwZSwgaGFuZGxlcikge1xuICAgICAgICAgICAgKGFsbFt0eXBlXSB8fCAoYWxsW3R5cGVdID0gW10pKS5wdXNoKGhhbmRsZXIpO1xuICAgICAgICB9LFxuICAgICAgICBvZmYgKHR5cGUsIGhhbmRsZXIpIHtcbiAgICAgICAgICAgIGlmIChhbGxbdHlwZV0pIHtcbiAgICAgICAgICAgICAgICBhbGxbdHlwZV0uc3BsaWNlKGFsbFt0eXBlXS5pbmRleE9mKGhhbmRsZXIpID4+PiAwLCAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZW1pdCAodHlwZSwgLi4uZXZ0cykge1xuICAgICAgICAgICAgKGFsbFt0eXBlXSB8fCBbXSkuc2xpY2UoKS5tYXAoKGhhbmRsZXIpPT57XG4gICAgICAgICAgICAgICAgaGFuZGxlciguLi5ldnRzKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bWl0dC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJtaXR0IiwiYWxsIiwiY3JlYXRlIiwib24iLCJ0eXBlIiwiaGFuZGxlciIsInB1c2giLCJvZmYiLCJzcGxpY2UiLCJpbmRleE9mIiwiZW1pdCIsImV2dHMiLCJzbGljZSIsIm1hcCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/mitt.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router-context.js": +/*!*************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router-context.js ***! + \*************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.RouterContext = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar RouterContext = _react[\"default\"].createContext(null);\n\nexports.RouterContext = RouterContext;\n\nif (true) {\n RouterContext.displayName = 'RouterContext';\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyLWNvbnRleHQuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxxQkFBQSxHQUF3QixLQUFLLENBQTdCOztBQUNBLElBQUlHLE1BQU0sR0FBR0Msc0JBQXNCLENBQUNDLG1CQUFPLENBQUMsNENBQUQsQ0FBUixDQUFuQzs7QUFDQSxTQUFTRCxzQkFBVCxDQUFnQ0UsR0FBaEMsRUFBcUM7QUFDakMsU0FBT0EsR0FBRyxJQUFJQSxHQUFHLENBQUNDLFVBQVgsR0FBd0JELEdBQXhCLEdBQThCO0FBQ2pDLGVBQVNBO0FBRHdCLEdBQXJDO0FBR0g7O0FBQ0QsSUFBTUosYUFBYSxHQUFHQyxNQUFNLFdBQU4sQ0FBZUssYUFBZixDQUE2QixJQUE3QixDQUF0Qjs7QUFDQVIscUJBQUEsR0FBd0JFLGFBQXhCOztBQUNBLElBQUksTUFBdUM7QUFDdkNBLEVBQUFBLGFBQWEsQ0FBQ08sV0FBZCxHQUE0QixlQUE1QjtBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXItY29udGV4dC5qcz81ZTkwIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5Sb3V0ZXJDb250ZXh0ID0gdm9pZCAwO1xudmFyIF9yZWFjdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJlYWN0XCIpKTtcbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbmNvbnN0IFJvdXRlckNvbnRleHQgPSBfcmVhY3QuZGVmYXVsdC5jcmVhdGVDb250ZXh0KG51bGwpO1xuZXhwb3J0cy5Sb3V0ZXJDb250ZXh0ID0gUm91dGVyQ29udGV4dDtcbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgUm91dGVyQ29udGV4dC5kaXNwbGF5TmFtZSA9ICdSb3V0ZXJDb250ZXh0Jztcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cm91dGVyLWNvbnRleHQuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiUm91dGVyQ29udGV4dCIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwib2JqIiwiX19lc01vZHVsZSIsImNyZWF0ZUNvbnRleHQiLCJkaXNwbGF5TmFtZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router-context.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/router.js": +/*!************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/router.js ***! + \************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _regeneratorRuntime = __webpack_require__(/*! ./node_modules/@babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n\nvar _defineProperty = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/defineProperty.js\");\n\nvar _asyncToGenerator = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/asyncToGenerator.js\");\n\nvar _classCallCheck = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\");\n\nvar _createClass = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\");\n\nvar _slicedToArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.getDomainLocale = getDomainLocale;\nexports.addLocale = addLocale;\nexports.delLocale = delLocale;\nexports.hasBasePath = hasBasePath;\nexports.addBasePath = addBasePath;\nexports.delBasePath = delBasePath;\nexports.isLocalURL = isLocalURL;\nexports.interpolateAs = interpolateAs;\nexports.resolveHref = resolveHref;\nexports[\"default\"] = void 0;\n\nvar _normalizeTrailingSlash = __webpack_require__(/*! ../../../client/normalize-trailing-slash */ \"./node_modules/next/dist/client/normalize-trailing-slash.js\");\n\nvar _routeLoader = __webpack_require__(/*! ../../../client/route-loader */ \"./node_modules/next/dist/client/route-loader.js\");\n\nvar _isError = _interopRequireDefault(__webpack_require__(/*! ../../../lib/is-error */ \"./node_modules/next/dist/lib/is-error.js\"));\n\nvar _denormalizePagePath = __webpack_require__(/*! ../../../server/denormalize-page-path */ \"./node_modules/next/dist/server/denormalize-page-path.js\");\n\nvar _normalizeLocalePath = __webpack_require__(/*! ../i18n/normalize-locale-path */ \"./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js\");\n\nvar _mitt = _interopRequireDefault(__webpack_require__(/*! ../mitt */ \"./node_modules/next/dist/shared/lib/mitt.js\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./node_modules/next/dist/shared/lib/utils.js\");\n\nvar _isDynamic = __webpack_require__(/*! ./utils/is-dynamic */ \"./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js\");\n\nvar _parseRelativeUrl = __webpack_require__(/*! ./utils/parse-relative-url */ \"./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js\");\n\nvar _querystring = __webpack_require__(/*! ./utils/querystring */ \"./node_modules/next/dist/shared/lib/router/utils/querystring.js\");\n\nvar _resolveRewrites = _interopRequireDefault(__webpack_require__(/*! ./utils/resolve-rewrites */ \"?506d\"));\n\nvar _routeMatcher = __webpack_require__(/*! ./utils/route-matcher */ \"./node_modules/next/dist/shared/lib/router/utils/route-matcher.js\");\n\nvar _routeRegex = __webpack_require__(/*! ./utils/route-regex */ \"./node_modules/next/dist/shared/lib/router/utils/route-regex.js\");\n\nvar _getMiddlewareRegex = __webpack_require__(/*! ./utils/get-middleware-regex */ \"./node_modules/next/dist/shared/lib/router/utils/get-middleware-regex.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar detectDomainLocale;\n\nif (false) {}\n\nvar basePath = false || '';\n\nfunction buildCancellationError() {\n return Object.assign(new Error('Route Cancelled'), {\n cancelled: true\n });\n}\n\nfunction addPathPrefix(path, prefix) {\n if (!path.startsWith('/') || !prefix) {\n return path;\n }\n\n var pathname = pathNoQueryHash(path);\n return (0, _normalizeTrailingSlash).normalizePathTrailingSlash(\"\".concat(prefix).concat(pathname)) + path.substr(pathname.length);\n}\n\nfunction getDomainLocale(path, locale, locales, domainLocales) {\n if (false) { var detectedDomain; } else {\n return false;\n }\n}\n\nfunction addLocale(path, locale, defaultLocale) {\n if (false) { var localeLower, pathLower, pathname; }\n\n return path;\n}\n\nfunction delLocale(path, locale) {\n if (false) { var localeLower, pathLower, pathname; }\n\n return path;\n}\n\nfunction pathNoQueryHash(path) {\n var queryIndex = path.indexOf('?');\n var hashIndex = path.indexOf('#');\n\n if (queryIndex > -1 || hashIndex > -1) {\n path = path.substring(0, queryIndex > -1 ? queryIndex : hashIndex);\n }\n\n return path;\n}\n\nfunction hasBasePath(path) {\n path = pathNoQueryHash(path);\n return path === basePath || path.startsWith(basePath + '/');\n}\n\nfunction addBasePath(path) {\n // we only add the basepath on relative urls\n return addPathPrefix(path, basePath);\n}\n\nfunction delBasePath(path) {\n path = path.slice(basePath.length);\n if (!path.startsWith('/')) path = \"/\".concat(path);\n return path;\n}\n\nfunction isLocalURL(url) {\n // prevent a hydration mismatch on href for url with anchor refs\n if (url.startsWith('/') || url.startsWith('#') || url.startsWith('?')) return true;\n\n try {\n // absolute urls can be local if they are on the same origin\n var locationOrigin = (0, _utils).getLocationOrigin();\n var resolved = new URL(url, locationOrigin);\n return resolved.origin === locationOrigin && hasBasePath(resolved.pathname);\n } catch (_) {\n return false;\n }\n}\n\nfunction interpolateAs(route, asPathname, query) {\n var interpolatedRoute = '';\n var dynamicRegex = (0, _routeRegex).getRouteRegex(route);\n var dynamicGroups = dynamicRegex.groups;\n var dynamicMatches = // Try to match the dynamic route against the asPath\n (asPathname !== route ? (0, _routeMatcher).getRouteMatcher(dynamicRegex)(asPathname) : '') || // Fall back to reading the values from the href\n // TODO: should this take priority; also need to change in the router.\n query;\n interpolatedRoute = route;\n var params = Object.keys(dynamicGroups);\n\n if (!params.every(function (param) {\n var value = dynamicMatches[param] || '';\n var _dynamicGroups$param = dynamicGroups[param],\n repeat = _dynamicGroups$param.repeat,\n optional = _dynamicGroups$param.optional; // support single-level catch-all\n // TODO: more robust handling for user-error (passing `/`)\n\n var replaced = \"[\".concat(repeat ? '...' : '').concat(param, \"]\");\n\n if (optional) {\n replaced = \"\".concat(!value ? '/' : '', \"[\").concat(replaced, \"]\");\n }\n\n if (repeat && !Array.isArray(value)) value = [value];\n return (optional || param in dynamicMatches) && (interpolatedRoute = interpolatedRoute.replace(replaced, repeat ? value.map( // these values should be fully encoded instead of just\n // path delimiter escaped since they are being inserted\n // into the URL and we expect URL encoded segments\n // when parsing dynamic route params\n function (segment) {\n return encodeURIComponent(segment);\n }).join('/') : encodeURIComponent(value)) || '/');\n })) {\n interpolatedRoute = '' // did not satisfy all requirements\n ; // n.b. We ignore this error because we handle warning for this case in\n // development in the `<Link>` component directly.\n }\n\n return {\n params: params,\n result: interpolatedRoute\n };\n}\n\nfunction omitParmsFromQuery(query, params) {\n var filteredQuery = {};\n Object.keys(query).forEach(function (key) {\n if (!params.includes(key)) {\n filteredQuery[key] = query[key];\n }\n });\n return filteredQuery;\n}\n\nfunction resolveHref(router, href, resolveAs) {\n // we use a dummy base url for relative urls\n var base;\n var urlAsString = typeof href === 'string' ? href : (0, _utils).formatWithValidation(href); // repeated slashes and backslashes in the URL are considered\n // invalid and will never match a Next.js page/file\n\n var urlProtoMatch = urlAsString.match(/^[a-zA-Z]{1,}:\\/\\//);\n var urlAsStringNoProto = urlProtoMatch ? urlAsString.substr(urlProtoMatch[0].length) : urlAsString;\n var urlParts = urlAsStringNoProto.split('?');\n\n if ((urlParts[0] || '').match(/(\\/\\/|\\\\)/)) {\n console.error(\"Invalid href passed to next/router: \".concat(urlAsString, \", repeated forward-slashes (//) or backslashes \\\\ are not valid in the href\"));\n var normalizedUrl = (0, _utils).normalizeRepeatedSlashes(urlAsStringNoProto);\n urlAsString = (urlProtoMatch ? urlProtoMatch[0] : '') + normalizedUrl;\n } // Return because it cannot be routed by the Next.js router\n\n\n if (!isLocalURL(urlAsString)) {\n return resolveAs ? [urlAsString] : urlAsString;\n }\n\n try {\n base = new URL(urlAsString.startsWith('#') ? router.asPath : router.pathname, 'http://n');\n } catch (_) {\n // fallback to / for invalid asPath values e.g. //\n base = new URL('/', 'http://n');\n }\n\n try {\n var finalUrl = new URL(urlAsString, base);\n finalUrl.pathname = (0, _normalizeTrailingSlash).normalizePathTrailingSlash(finalUrl.pathname);\n var interpolatedAs = '';\n\n if ((0, _isDynamic).isDynamicRoute(finalUrl.pathname) && finalUrl.searchParams && resolveAs) {\n var query = (0, _querystring).searchParamsToUrlQuery(finalUrl.searchParams);\n\n var _interpolateAs = interpolateAs(finalUrl.pathname, finalUrl.pathname, query),\n result = _interpolateAs.result,\n params = _interpolateAs.params;\n\n if (result) {\n interpolatedAs = (0, _utils).formatWithValidation({\n pathname: result,\n hash: finalUrl.hash,\n query: omitParmsFromQuery(query, params)\n });\n }\n } // if the origin didn't change, it means we received a relative href\n\n\n var resolvedHref = finalUrl.origin === base.origin ? finalUrl.href.slice(finalUrl.origin.length) : finalUrl.href;\n return resolveAs ? [resolvedHref, interpolatedAs || resolvedHref] : resolvedHref;\n } catch (_1) {\n return resolveAs ? [urlAsString] : urlAsString;\n }\n}\n\nfunction stripOrigin(url) {\n var origin = (0, _utils).getLocationOrigin();\n return url.startsWith(origin) ? url.substring(origin.length) : url;\n}\n\nfunction prepareUrlAs(router, url, as) {\n // If url and as provided as an object representation,\n // we'll format them into the string version here.\n var _resolveHref = resolveHref(router, url, true),\n _resolveHref2 = _slicedToArray(_resolveHref, 2),\n resolvedHref = _resolveHref2[0],\n resolvedAs = _resolveHref2[1];\n\n var origin = (0, _utils).getLocationOrigin();\n var hrefHadOrigin = resolvedHref.startsWith(origin);\n var asHadOrigin = resolvedAs && resolvedAs.startsWith(origin);\n resolvedHref = stripOrigin(resolvedHref);\n resolvedAs = resolvedAs ? stripOrigin(resolvedAs) : resolvedAs;\n var preparedUrl = hrefHadOrigin ? resolvedHref : addBasePath(resolvedHref);\n var preparedAs = as ? stripOrigin(resolveHref(router, as)) : resolvedAs || resolvedHref;\n return {\n url: preparedUrl,\n as: asHadOrigin ? preparedAs : addBasePath(preparedAs)\n };\n}\n\nfunction resolveDynamicRoute(pathname, pages) {\n var cleanPathname = (0, _normalizeTrailingSlash).removePathTrailingSlash((0, _denormalizePagePath).denormalizePagePath(pathname));\n\n if (cleanPathname === '/404' || cleanPathname === '/_error') {\n return pathname;\n } // handle resolving href for dynamic routes\n\n\n if (!pages.includes(cleanPathname)) {\n // eslint-disable-next-line array-callback-return\n pages.some(function (page) {\n if ((0, _isDynamic).isDynamicRoute(page) && (0, _routeRegex).getRouteRegex(page).re.test(cleanPathname)) {\n pathname = page;\n return true;\n }\n });\n }\n\n return (0, _normalizeTrailingSlash).removePathTrailingSlash(pathname);\n}\n\nvar manualScrollRestoration = false && 0;\nvar SSG_DATA_NOT_FOUND = Symbol('SSG_DATA_NOT_FOUND');\n\nfunction fetchRetry(url, attempts, opts) {\n return fetch(url, {\n // Cookies are required to be present for Next.js' SSG \"Preview Mode\".\n // Cookies may also be required for `getServerSideProps`.\n //\n // > `fetch` won’t send cookies, unless you set the credentials init\n // > option.\n // https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch\n //\n // > For maximum browser compatibility when it comes to sending &\n // > receiving cookies, always supply the `credentials: 'same-origin'`\n // > option instead of relying on the default.\n // https://github.com/github/fetch#caveats\n credentials: 'same-origin'\n }).then(function (res) {\n if (!res.ok) {\n if (attempts > 1 && res.status >= 500) {\n return fetchRetry(url, attempts - 1, opts);\n }\n\n if (res.status === 404) {\n return res.json().then(function (data) {\n if (data.notFound) {\n return {\n notFound: SSG_DATA_NOT_FOUND\n };\n }\n\n throw new Error(\"Failed to load static props\");\n });\n }\n\n throw new Error(\"Failed to load static props\");\n }\n\n return opts.text ? res.text() : res.json();\n });\n}\n\nfunction fetchNextData(dataHref, isServerRender, text, inflightCache, persistCache) {\n var _URL = new URL(dataHref, window.location.href),\n cacheKey = _URL.href;\n\n if (inflightCache[cacheKey] !== undefined) {\n return inflightCache[cacheKey];\n }\n\n return inflightCache[cacheKey] = fetchRetry(dataHref, isServerRender ? 3 : 1, {\n text: text\n })[\"catch\"](function (err) {\n // We should only trigger a server-side transition if this was caused\n // on a client-side transition. Otherwise, we'd get into an infinite\n // loop.\n if (!isServerRender) {\n (0, _routeLoader).markAssetError(err);\n }\n\n throw err;\n }).then(function (data) {\n if (!persistCache || true) {\n delete inflightCache[cacheKey];\n }\n\n return data;\n })[\"catch\"](function (err) {\n delete inflightCache[cacheKey];\n throw err;\n });\n}\n\nvar Router = /*#__PURE__*/function () {\n function Router(pathname, query, as, _ref) {\n var _this = this;\n\n var initialProps = _ref.initialProps,\n pageLoader = _ref.pageLoader,\n App = _ref.App,\n wrapApp = _ref.wrapApp,\n Component = _ref.Component,\n err = _ref.err,\n subscription = _ref.subscription,\n isFallback = _ref.isFallback,\n locale = _ref.locale,\n locales = _ref.locales,\n defaultLocale = _ref.defaultLocale,\n domainLocales = _ref.domainLocales,\n isPreview = _ref.isPreview;\n\n _classCallCheck(this, Router);\n\n // Static Data Cache\n this.sdc = {}; // In-flight Server Data Requests, for deduping\n\n this.sdr = {}; // In-flight middleware preflight requests\n\n this.sde = {};\n this._idx = 0;\n\n this.onPopState = function (e) {\n var state = e.state;\n\n if (!state) {\n // We get state as undefined for two reasons.\n // 1. With older safari (< 8) and older chrome (< 34)\n // 2. When the URL changed with #\n //\n // In the both cases, we don't need to proceed and change the route.\n // (as it's already changed)\n // But we can simply replace the state with the new changes.\n // Actually, for (1) we don't need to nothing. But it's hard to detect that event.\n // So, doing the following for (1) does no harm.\n var _pathname = _this.pathname,\n _query = _this.query;\n\n _this.changeState('replaceState', (0, _utils).formatWithValidation({\n pathname: addBasePath(_pathname),\n query: _query\n }), (0, _utils).getURL());\n\n return;\n }\n\n if (!state.__N) {\n return;\n }\n\n var forcedScroll;\n var url = state.url,\n as = state.as,\n options = state.options,\n idx = state.idx;\n\n if (false) { var v; }\n\n _this._idx = idx;\n\n var _parseRelativeUrl2 = (0, _parseRelativeUrl).parseRelativeUrl(url),\n pathname = _parseRelativeUrl2.pathname; // Make sure we don't re-render on initial load,\n // can be caused by navigating back from an external site\n\n\n if (_this.isSsr && as === _this.asPath && pathname === _this.pathname) {\n return;\n } // If the downstream application returns falsy, return.\n // They will then be responsible for handling the event.\n\n\n if (_this._bps && !_this._bps(state)) {\n return;\n }\n\n _this.change('replaceState', url, as, Object.assign({}, options, {\n shallow: options.shallow && _this._shallow,\n locale: options.locale || _this.defaultLocale\n }), forcedScroll);\n }; // represents the current component key\n\n\n this.route = (0, _normalizeTrailingSlash).removePathTrailingSlash(pathname); // set up the component cache (by route keys)\n\n this.components = {}; // We should not keep the cache, if there's an error\n // Otherwise, this cause issues when when going back and\n // come again to the errored page.\n\n if (pathname !== '/_error') {\n var ref;\n this.components[this.route] = {\n Component: Component,\n initial: true,\n props: initialProps,\n err: err,\n __N_SSG: initialProps && initialProps.__N_SSG,\n __N_SSP: initialProps && initialProps.__N_SSP,\n __N_RSC: !!((ref = Component) === null || ref === void 0 ? void 0 : ref.__next_rsc__)\n };\n }\n\n this.components['/_app'] = {\n Component: App,\n styleSheets: []\n }; // Backwards compat for Router.router.events\n // TODO: Should be remove the following major version as it was never documented\n\n this.events = Router.events;\n this.pageLoader = pageLoader;\n this.pathname = pathname;\n this.query = query; // if auto prerendered and dynamic route wait to update asPath\n // until after mount to prevent hydration mismatch\n\n var autoExportDynamic = (0, _isDynamic).isDynamicRoute(pathname) && self.__NEXT_DATA__.autoExport;\n\n this.asPath = autoExportDynamic ? pathname : as;\n this.basePath = basePath;\n this.sub = subscription;\n this.clc = null;\n this._wrapApp = wrapApp; // make sure to ignore extra popState in safari on navigating\n // back from external site\n\n this.isSsr = true;\n this.isFallback = isFallback;\n this.isReady = !!(self.__NEXT_DATA__.gssp || self.__NEXT_DATA__.gip || self.__NEXT_DATA__.appGip && !self.__NEXT_DATA__.gsp || !autoExportDynamic && !self.location.search && !false);\n this.isPreview = !!isPreview;\n this.isLocaleDomain = false;\n\n if (false) {}\n\n if (true) {\n // make sure \"as\" doesn't start with double slashes or else it can\n // throw an error as it's considered invalid\n if (as.substr(0, 2) !== '//') {\n // in order for `e.state` to work on the `onpopstate` event\n // we have to register the initial route upon initialization\n var options = {\n locale: locale\n };\n options._shouldResolveHref = as !== pathname;\n this.changeState('replaceState', (0, _utils).formatWithValidation({\n pathname: addBasePath(pathname),\n query: query\n }), (0, _utils).getURL(), options);\n }\n\n window.addEventListener('popstate', this.onPopState); // enable custom scroll restoration handling when available\n // otherwise fallback to browser's default handling\n\n if (false) {}\n }\n }\n\n _createClass(Router, [{\n key: \"reload\",\n value: function reload() {\n window.location.reload();\n }\n /**\n * Go back in history\n */\n\n }, {\n key: \"back\",\n value: function back() {\n window.history.back();\n }\n /**\n * Performs a `pushState` with arguments\n * @param url of the route\n * @param as masks `url` for the browser\n * @param options object you can define `shallow` and other options\n */\n\n }, {\n key: \"push\",\n value: function push(url, as) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (false) {}\n\n var _prepareUrlAs = prepareUrlAs(this, url, as);\n\n url = _prepareUrlAs.url;\n as = _prepareUrlAs.as;\n return this.change('pushState', url, as, options);\n }\n /**\n * Performs a `replaceState` with arguments\n * @param url of the route\n * @param as masks `url` for the browser\n * @param options object you can define `shallow` and other options\n */\n\n }, {\n key: \"replace\",\n value: function replace(url, as) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var _prepareUrlAs2 = prepareUrlAs(this, url, as);\n\n url = _prepareUrlAs2.url;\n as = _prepareUrlAs2.as;\n return this.change('replaceState', url, as, options);\n }\n }, {\n key: \"change\",\n value: function () {\n var _change = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(method, url, as, options, forcedScroll) {\n var shouldResolveHref, prevLocale, parsedAs, localePathResult, didNavigate, ref, detectedDomain, asNoBasePath, _options$shallow, shallow, routeProps, cleanedAs, localeChange, parsed, pathname, query, pages, rewrites, _yield$Promise$all, _yield$Promise$all2, resolvedAs, rewritesResult, effect, route, _parsedAs, asPathname, routeRegex, routeMatch, shouldInterpolate, interpolatedAs, missingParams, ref1, routeInfo, _routeInfo, error, props, __N_SSG, __N_SSP, destination, parsedHref, _prepareUrlAs3, newUrl, newAs, notFoundRoute, isValidShallowRoute, _scroll, shouldScroll, resetScroll;\n\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (isLocalURL(url)) {\n _context.next = 3;\n break;\n }\n\n window.location.href = url;\n return _context.abrupt(\"return\", false);\n\n case 3:\n shouldResolveHref = options._h || options._shouldResolveHref || pathNoQueryHash(url) === pathNoQueryHash(as); // for static pages with query params in the URL we delay\n // marking the router ready until after the query is updated\n\n if (options._h) {\n this.isReady = true;\n }\n\n prevLocale = this.locale;\n\n if (true) {\n _context.next = 18;\n break;\n }\n\n this.locale = options.locale === false ? this.defaultLocale : options.locale || this.locale;\n\n if (typeof options.locale === 'undefined') {\n options.locale = this.locale;\n }\n\n parsedAs = (0, _parseRelativeUrl).parseRelativeUrl(hasBasePath(as) ? delBasePath(as) : as);\n localePathResult = (0, _normalizeLocalePath).normalizeLocalePath(parsedAs.pathname, this.locales);\n\n if (localePathResult.detectedLocale) {\n this.locale = localePathResult.detectedLocale;\n parsedAs.pathname = addBasePath(parsedAs.pathname);\n as = (0, _utils).formatWithValidation(parsedAs);\n url = addBasePath((0, _normalizeLocalePath).normalizeLocalePath(hasBasePath(url) ? delBasePath(url) : url, this.locales).pathname);\n }\n\n didNavigate = false; // we need to wrap this in the env check again since regenerator runtime\n // moves this on its own due to the return\n\n if (false) {}\n\n detectedDomain = detectDomainLocale(this.domainLocales, undefined, this.locale); // we need to wrap this in the env check again since regenerator runtime\n // moves this on its own due to the return\n\n if (false) {}\n\n if (!didNavigate) {\n _context.next = 18;\n break;\n }\n\n return _context.abrupt(\"return\", new Promise(function () {}));\n\n case 18:\n if (!options._h) {\n this.isSsr = false;\n } // marking route changes as a navigation start entry\n\n\n if (_utils.ST) {\n performance.mark('routeChange');\n }\n\n _options$shallow = options.shallow, shallow = _options$shallow === void 0 ? false : _options$shallow;\n routeProps = {\n shallow: shallow\n };\n\n if (this._inFlightRoute) {\n this.abortComponentLoad(this._inFlightRoute, routeProps);\n }\n\n as = addBasePath(addLocale(hasBasePath(as) ? delBasePath(as) : as, options.locale, this.defaultLocale));\n cleanedAs = delLocale(hasBasePath(as) ? delBasePath(as) : as, this.locale);\n this._inFlightRoute = as;\n localeChange = prevLocale !== this.locale; // If the url change is only related to a hash change\n // We should not proceed. We should only change the state.\n // WARNING: `_h` is an internal option for handing Next.js client-side\n // hydration. Your app should _never_ use this property. It may change at\n // any time without notice.\n\n if (!(!options._h && this.onlyAHashChange(cleanedAs) && !localeChange)) {\n _context.next = 35;\n break;\n }\n\n this.asPath = cleanedAs;\n Router.events.emit('hashChangeStart', as, routeProps); // TODO: do we need the resolved href when only a hash change?\n\n this.changeState(method, url, as, options);\n this.scrollToHash(cleanedAs);\n this.notify(this.components[this.route], null);\n Router.events.emit('hashChangeComplete', as, routeProps);\n return _context.abrupt(\"return\", true);\n\n case 35:\n parsed = (0, _parseRelativeUrl).parseRelativeUrl(url);\n pathname = parsed.pathname, query = parsed.query; // The build manifest needs to be loaded before auto-static dynamic pages\n // get their query parameters to allow ensuring they can be parsed properly\n // when rewritten to\n\n _context.prev = 37;\n _context.next = 40;\n return Promise.all([this.pageLoader.getPageList(), (0, _routeLoader).getClientBuildManifest(), this.pageLoader.getMiddlewareList()]);\n\n case 40:\n _yield$Promise$all = _context.sent;\n _yield$Promise$all2 = _slicedToArray(_yield$Promise$all, 2);\n pages = _yield$Promise$all2[0];\n rewrites = _yield$Promise$all2[1].__rewrites;\n _context.next = 50;\n break;\n\n case 46:\n _context.prev = 46;\n _context.t0 = _context[\"catch\"](37);\n // If we fail to resolve the page list or client-build manifest, we must\n // do a server-side transition:\n window.location.href = as;\n return _context.abrupt(\"return\", false);\n\n case 50:\n // If asked to change the current URL we should reload the current page\n // (not location.reload() but reload getInitialProps and other Next.js stuffs)\n // We also need to set the method = replaceState always\n // as this should not go into the history (That's how browsers work)\n // We should compare the new asPath to the current asPath, not the url\n if (!this.urlIsNew(cleanedAs) && !localeChange) {\n method = 'replaceState';\n } // we need to resolve the as value using rewrites for dynamic SSG\n // pages to allow building the data URL correctly\n\n\n resolvedAs = as; // url and as should always be prefixed with basePath by this\n // point by either next/link or router.push/replace so strip the\n // basePath from the pathname to match the pages dir 1-to-1\n\n pathname = pathname ? (0, _normalizeTrailingSlash).removePathTrailingSlash(delBasePath(pathname)) : pathname;\n\n if (shouldResolveHref && pathname !== '/_error') {\n options._shouldResolveHref = true;\n\n if (false) {} else {\n parsed.pathname = resolveDynamicRoute(pathname, pages);\n\n if (parsed.pathname !== pathname) {\n pathname = parsed.pathname;\n parsed.pathname = addBasePath(pathname);\n url = (0, _utils).formatWithValidation(parsed);\n }\n }\n }\n\n if (isLocalURL(as)) {\n _context.next = 59;\n break;\n }\n\n if (false) {}\n\n throw new Error(\"Invalid href: \\\"\".concat(url, \"\\\" and as: \\\"\").concat(as, \"\\\", received relative href and external as\") + \"\\nSee more info: https://nextjs.org/docs/messages/invalid-relative-url-external-as\");\n\n case 57:\n window.location.href = as;\n return _context.abrupt(\"return\", false);\n\n case 59:\n resolvedAs = delLocale(delBasePath(resolvedAs), this.locale);\n _context.next = 62;\n return this._preflightRequest({\n as: as,\n cache: false,\n pages: pages,\n pathname: pathname,\n query: query\n });\n\n case 62:\n effect = _context.sent;\n\n if (!(effect.type === 'rewrite')) {\n _context.next = 71;\n break;\n }\n\n query = _objectSpread(_objectSpread({}, query), effect.parsedAs.query);\n resolvedAs = effect.asPath;\n pathname = effect.resolvedHref;\n parsed.pathname = effect.resolvedHref;\n url = (0, _utils).formatWithValidation(parsed);\n _context.next = 83;\n break;\n\n case 71:\n if (!(effect.type === 'redirect' && effect.newAs)) {\n _context.next = 75;\n break;\n }\n\n return _context.abrupt(\"return\", this.change(method, effect.newUrl, effect.newAs, options));\n\n case 75:\n if (!(effect.type === 'redirect' && effect.destination)) {\n _context.next = 80;\n break;\n }\n\n window.location.href = effect.destination;\n return _context.abrupt(\"return\", new Promise(function () {}));\n\n case 80:\n if (!(effect.type === 'refresh')) {\n _context.next = 83;\n break;\n }\n\n window.location.href = as;\n return _context.abrupt(\"return\", new Promise(function () {}));\n\n case 83:\n route = (0, _normalizeTrailingSlash).removePathTrailingSlash(pathname);\n\n if (!(0, _isDynamic).isDynamicRoute(route)) {\n _context.next = 99;\n break;\n }\n\n _parsedAs = (0, _parseRelativeUrl).parseRelativeUrl(resolvedAs);\n asPathname = _parsedAs.pathname;\n routeRegex = (0, _routeRegex).getRouteRegex(route);\n routeMatch = (0, _routeMatcher).getRouteMatcher(routeRegex)(asPathname);\n shouldInterpolate = route === asPathname;\n interpolatedAs = shouldInterpolate ? interpolateAs(route, asPathname, query) : {};\n\n if (!(!routeMatch || shouldInterpolate && !interpolatedAs.result)) {\n _context.next = 98;\n break;\n }\n\n missingParams = Object.keys(routeRegex.groups).filter(function (param) {\n return !query[param];\n });\n\n if (!(missingParams.length > 0)) {\n _context.next = 96;\n break;\n }\n\n if (true) {\n console.warn(\"\".concat(shouldInterpolate ? \"Interpolating href\" : \"Mismatching `as` and `href`\", \" failed to manually provide \") + \"the params: \".concat(missingParams.join(', '), \" in the `href`'s `query`\"));\n }\n\n throw new Error((shouldInterpolate ? \"The provided `href` (\".concat(url, \") value is missing query values (\").concat(missingParams.join(', '), \") to be interpolated properly. \") : \"The provided `as` value (\".concat(asPathname, \") is incompatible with the `href` value (\").concat(route, \"). \")) + \"Read more: https://nextjs.org/docs/messages/\".concat(shouldInterpolate ? 'href-interpolation-failed' : 'incompatible-href-as'));\n\n case 96:\n _context.next = 99;\n break;\n\n case 98:\n if (shouldInterpolate) {\n as = (0, _utils).formatWithValidation(Object.assign({}, _parsedAs, {\n pathname: interpolatedAs.result,\n query: omitParmsFromQuery(query, interpolatedAs.params)\n }));\n } else {\n // Merge params into `query`, overwriting any specified in search\n Object.assign(query, routeMatch);\n }\n\n case 99:\n Router.events.emit('routeChangeStart', as, routeProps);\n _context.prev = 100;\n _context.next = 103;\n return this.getRouteInfo(route, pathname, query, as, resolvedAs, routeProps);\n\n case 103:\n routeInfo = _context.sent;\n _routeInfo = routeInfo, error = _routeInfo.error, props = _routeInfo.props, __N_SSG = _routeInfo.__N_SSG, __N_SSP = _routeInfo.__N_SSP; // handle redirect on client-transition\n\n if (!((__N_SSG || __N_SSP) && props)) {\n _context.next = 129;\n break;\n }\n\n if (!(props.pageProps && props.pageProps.__N_REDIRECT)) {\n _context.next = 115;\n break;\n }\n\n destination = props.pageProps.__N_REDIRECT; // check if destination is internal (resolves to a page) and attempt\n // client-navigation if it is falling back to hard navigation if\n // it's not\n\n if (!(destination.startsWith('/') && props.pageProps.__N_REDIRECT_BASE_PATH !== false)) {\n _context.next = 113;\n break;\n }\n\n parsedHref = (0, _parseRelativeUrl).parseRelativeUrl(destination);\n parsedHref.pathname = resolveDynamicRoute(parsedHref.pathname, pages);\n _prepareUrlAs3 = prepareUrlAs(this, destination, destination), newUrl = _prepareUrlAs3.url, newAs = _prepareUrlAs3.as;\n return _context.abrupt(\"return\", this.change(method, newUrl, newAs, options));\n\n case 113:\n window.location.href = destination;\n return _context.abrupt(\"return\", new Promise(function () {}));\n\n case 115:\n this.isPreview = !!props.__N_PREVIEW; // handle SSG data 404\n\n if (!(props.notFound === SSG_DATA_NOT_FOUND)) {\n _context.next = 129;\n break;\n }\n\n _context.prev = 117;\n _context.next = 120;\n return this.fetchComponent('/404');\n\n case 120:\n notFoundRoute = '/404';\n _context.next = 126;\n break;\n\n case 123:\n _context.prev = 123;\n _context.t1 = _context[\"catch\"](117);\n notFoundRoute = '/_error';\n\n case 126:\n _context.next = 128;\n return this.getRouteInfo(notFoundRoute, notFoundRoute, query, as, resolvedAs, {\n shallow: false\n });\n\n case 128:\n routeInfo = _context.sent;\n\n case 129:\n Router.events.emit('beforeHistoryChange', as, routeProps);\n this.changeState(method, url, as, options);\n\n if (options._h && pathname === '/_error' && ((ref = self.__NEXT_DATA__.props) === null || ref === void 0 ? void 0 : (ref1 = ref.pageProps) === null || ref1 === void 0 ? void 0 : ref1.statusCode) === 500 && (props === null || props === void 0 ? void 0 : props.pageProps)) {\n // ensure statusCode is still correct for static 500 page\n // when updating query information\n props.pageProps.statusCode = 500;\n } // shallow routing is only allowed for same page URL changes.\n\n\n isValidShallowRoute = options.shallow && this.route === route;\n shouldScroll = (_scroll = options.scroll) !== null && _scroll !== void 0 ? _scroll : !isValidShallowRoute;\n resetScroll = shouldScroll ? {\n x: 0,\n y: 0\n } : null;\n _context.next = 137;\n return this.set(route, pathname, query, cleanedAs, routeInfo, forcedScroll !== null && forcedScroll !== void 0 ? forcedScroll : resetScroll)[\"catch\"](function (e) {\n if (e.cancelled) error = error || e;else throw e;\n });\n\n case 137:\n if (!error) {\n _context.next = 140;\n break;\n }\n\n Router.events.emit('routeChangeError', error, cleanedAs, routeProps);\n throw error;\n\n case 140:\n if (false) {}\n\n Router.events.emit('routeChangeComplete', as, routeProps);\n return _context.abrupt(\"return\", true);\n\n case 145:\n _context.prev = 145;\n _context.t2 = _context[\"catch\"](100);\n\n if (!((0, _isError)[\"default\"](_context.t2) && _context.t2.cancelled)) {\n _context.next = 149;\n break;\n }\n\n return _context.abrupt(\"return\", false);\n\n case 149:\n throw _context.t2;\n\n case 150:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this, [[37, 46], [100, 145], [117, 123]]);\n }));\n\n function change(_x, _x2, _x3, _x4, _x5) {\n return _change.apply(this, arguments);\n }\n\n return change;\n }()\n }, {\n key: \"changeState\",\n value: function changeState(method, url, as) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n if (true) {\n if (typeof window.history === 'undefined') {\n console.error(\"Warning: window.history is not available.\");\n return;\n }\n\n if (typeof window.history[method] === 'undefined') {\n console.error(\"Warning: window.history.\".concat(method, \" is not available\"));\n return;\n }\n }\n\n if (method !== 'pushState' || (0, _utils).getURL() !== as) {\n this._shallow = options.shallow;\n window.history[method]({\n url: url,\n as: as,\n options: options,\n __N: true,\n idx: this._idx = method !== 'pushState' ? this._idx : this._idx + 1\n }, // Most browsers currently ignores this parameter, although they may use it in the future.\n // Passing the empty string here should be safe against future changes to the method.\n // https://developer.mozilla.org/en-US/docs/Web/API/History/replaceState\n '', as);\n }\n }\n }, {\n key: \"handleRouteInfoError\",\n value: function () {\n var _handleRouteInfoError = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(err, pathname, query, as, routeProps, loadErrorFail) {\n var Component, styleSheets, props, _yield$this$fetchComp, routeInfo;\n\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (!err.cancelled) {\n _context2.next = 2;\n break;\n }\n\n throw err;\n\n case 2:\n if (!((0, _routeLoader).isAssetError(err) || loadErrorFail)) {\n _context2.next = 6;\n break;\n }\n\n Router.events.emit('routeChangeError', err, as, routeProps); // If we can't load the page it could be one of following reasons\n // 1. Page doesn't exists\n // 2. Page does exist in a different zone\n // 3. Internal error while loading the page\n // So, doing a hard reload is the proper way to deal with this.\n\n window.location.href = as; // Changing the URL doesn't block executing the current code path.\n // So let's throw a cancellation error stop the routing logic.\n\n throw buildCancellationError();\n\n case 6:\n _context2.prev = 6;\n\n if (!(typeof Component === 'undefined' || typeof styleSheets === 'undefined')) {\n _context2.next = 13;\n break;\n }\n\n _context2.next = 10;\n return this.fetchComponent('/_error');\n\n case 10:\n _yield$this$fetchComp = _context2.sent;\n Component = _yield$this$fetchComp.page;\n styleSheets = _yield$this$fetchComp.styleSheets;\n\n case 13:\n routeInfo = {\n props: props,\n Component: Component,\n styleSheets: styleSheets,\n err: err,\n error: err\n };\n\n if (routeInfo.props) {\n _context2.next = 25;\n break;\n }\n\n _context2.prev = 15;\n _context2.next = 18;\n return this.getInitialProps(Component, {\n err: err,\n pathname: pathname,\n query: query\n });\n\n case 18:\n routeInfo.props = _context2.sent;\n _context2.next = 25;\n break;\n\n case 21:\n _context2.prev = 21;\n _context2.t0 = _context2[\"catch\"](15);\n console.error('Error in error page `getInitialProps`: ', _context2.t0);\n routeInfo.props = {};\n\n case 25:\n return _context2.abrupt(\"return\", routeInfo);\n\n case 28:\n _context2.prev = 28;\n _context2.t1 = _context2[\"catch\"](6);\n return _context2.abrupt(\"return\", this.handleRouteInfoError((0, _isError)[\"default\"](_context2.t1) ? _context2.t1 : new Error(_context2.t1 + ''), pathname, query, as, routeProps, true));\n\n case 31:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this, [[6, 28], [15, 21]]);\n }));\n\n function handleRouteInfoError(_x6, _x7, _x8, _x9, _x10, _x11) {\n return _handleRouteInfoError.apply(this, arguments);\n }\n\n return handleRouteInfoError;\n }()\n }, {\n key: \"getRouteInfo\",\n value: function () {\n var _getRouteInfo = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(route, pathname, query, as, resolvedAs, routeProps) {\n var _this2 = this;\n\n var existingRouteInfo, cachedRouteInfo, routeInfo, Component, __N_SSG, __N_SSP, __N_RSC, _require, isValidElementType, dataHref, props, _yield$this$_getData, fresh, data;\n\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _context3.prev = 0;\n existingRouteInfo = this.components[route];\n\n if (!(routeProps.shallow && existingRouteInfo && this.route === route)) {\n _context3.next = 4;\n break;\n }\n\n return _context3.abrupt(\"return\", existingRouteInfo);\n\n case 4:\n cachedRouteInfo = undefined; // can only use non-initial route info\n // cannot reuse route info in development since it can change after HMR\n\n if (false) {}\n\n _context3.t0 = cachedRouteInfo;\n\n if (_context3.t0) {\n _context3.next = 11;\n break;\n }\n\n _context3.next = 10;\n return this.fetchComponent(route).then(function (res) {\n return {\n Component: res.page,\n styleSheets: res.styleSheets,\n __N_SSG: res.mod.__N_SSG,\n __N_SSP: res.mod.__N_SSP,\n __N_RSC: !!res.page.__next_rsc__\n };\n });\n\n case 10:\n _context3.t0 = _context3.sent;\n\n case 11:\n routeInfo = _context3.t0;\n Component = routeInfo.Component, __N_SSG = routeInfo.__N_SSG, __N_SSP = routeInfo.__N_SSP, __N_RSC = routeInfo.__N_RSC;\n\n if (false) {}\n\n _require = __webpack_require__(/*! react-is */ \"./node_modules/react-is/index.js\"), isValidElementType = _require.isValidElementType;\n\n if (isValidElementType(Component)) {\n _context3.next = 17;\n break;\n }\n\n throw new Error(\"The default export is not a React Component in page: \\\"\".concat(pathname, \"\\\"\"));\n\n case 17:\n if (__N_SSG || __N_SSP || __N_RSC) {\n dataHref = this.pageLoader.getDataHref({\n href: (0, _utils).formatWithValidation({\n pathname: pathname,\n query: query\n }),\n asPath: resolvedAs,\n ssg: __N_SSG,\n rsc: __N_RSC,\n locale: this.locale\n });\n }\n\n _context3.next = 20;\n return this._getData(function () {\n return __N_SSG || __N_SSP ? fetchNextData(dataHref, _this2.isSsr, false, __N_SSG ? _this2.sdc : _this2.sdr, !!__N_SSG && !_this2.isPreview) : _this2.getInitialProps(Component, // we provide AppTree later so this needs to be `any`\n {\n pathname: pathname,\n query: query,\n asPath: as,\n locale: _this2.locale,\n locales: _this2.locales,\n defaultLocale: _this2.defaultLocale\n });\n });\n\n case 20:\n props = _context3.sent;\n\n if (!__N_RSC) {\n _context3.next = 28;\n break;\n }\n\n _context3.next = 24;\n return this._getData(function () {\n return _this2._getFlightData(dataHref);\n });\n\n case 24:\n _yield$this$_getData = _context3.sent;\n fresh = _yield$this$_getData.fresh;\n data = _yield$this$_getData.data;\n props.pageProps = Object.assign(props.pageProps, {\n __flight_serialized__: data,\n __flight_fresh__: fresh\n });\n\n case 28:\n routeInfo.props = props;\n this.components[route] = routeInfo;\n return _context3.abrupt(\"return\", routeInfo);\n\n case 33:\n _context3.prev = 33;\n _context3.t1 = _context3[\"catch\"](0);\n return _context3.abrupt(\"return\", this.handleRouteInfoError((0, _isError)[\"default\"](_context3.t1) ? _context3.t1 : new Error(_context3.t1 + ''), pathname, query, as, routeProps));\n\n case 36:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, this, [[0, 33]]);\n }));\n\n function getRouteInfo(_x12, _x13, _x14, _x15, _x16, _x17) {\n return _getRouteInfo.apply(this, arguments);\n }\n\n return getRouteInfo;\n }()\n }, {\n key: \"set\",\n value: function set(route, pathname, query, as, data, resetScroll) {\n this.isFallback = false;\n this.route = route;\n this.pathname = pathname;\n this.query = query;\n this.asPath = as;\n return this.notify(data, resetScroll);\n }\n /**\n * Callback to execute before replacing router state\n * @param cb callback to be executed\n */\n\n }, {\n key: \"beforePopState\",\n value: function beforePopState(cb) {\n this._bps = cb;\n }\n }, {\n key: \"onlyAHashChange\",\n value: function onlyAHashChange(as) {\n if (!this.asPath) return false;\n\n var _this$asPath$split = this.asPath.split('#'),\n _this$asPath$split2 = _slicedToArray(_this$asPath$split, 2),\n oldUrlNoHash = _this$asPath$split2[0],\n oldHash = _this$asPath$split2[1];\n\n var _as$split = as.split('#'),\n _as$split2 = _slicedToArray(_as$split, 2),\n newUrlNoHash = _as$split2[0],\n newHash = _as$split2[1]; // Makes sure we scroll to the provided hash if the url/hash are the same\n\n\n if (newHash && oldUrlNoHash === newUrlNoHash && oldHash === newHash) {\n return true;\n } // If the urls are change, there's more than a hash change\n\n\n if (oldUrlNoHash !== newUrlNoHash) {\n return false;\n } // If the hash has changed, then it's a hash only change.\n // This check is necessary to handle both the enter and\n // leave hash === '' cases. The identity case falls through\n // and is treated as a next reload.\n\n\n return oldHash !== newHash;\n }\n }, {\n key: \"scrollToHash\",\n value: function scrollToHash(as) {\n var _as$split3 = as.split('#'),\n _as$split4 = _slicedToArray(_as$split3, 2),\n hash = _as$split4[1]; // Scroll to top if the hash is just `#` with no value or `#top`\n // To mirror browsers\n\n\n if (hash === '' || hash === 'top') {\n window.scrollTo(0, 0);\n return;\n } // First we check if the element by id is found\n\n\n var idEl = document.getElementById(hash);\n\n if (idEl) {\n idEl.scrollIntoView();\n return;\n } // If there's no element with the id, we check the `name` property\n // To mirror browsers\n\n\n var nameEl = document.getElementsByName(hash)[0];\n\n if (nameEl) {\n nameEl.scrollIntoView();\n }\n }\n }, {\n key: \"urlIsNew\",\n value: function urlIsNew(asPath) {\n return this.asPath !== asPath;\n }\n /**\n * Prefetch page code, you may wait for the data during page rendering.\n * This feature only works in production!\n * @param url the href of prefetched page\n * @param asPath the as path of the prefetched page\n */\n\n }, {\n key: \"prefetch\",\n value: function () {\n var _prefetch = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(url) {\n var _this3 = this;\n\n var asPath,\n options,\n parsed,\n pathname,\n query,\n parsedAs,\n localePathResult,\n pages,\n resolvedAs,\n rewrites,\n _yield$getClientBuild,\n rewritesResult,\n effects,\n route,\n _args4 = arguments;\n\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n asPath = _args4.length > 1 && _args4[1] !== undefined ? _args4[1] : url;\n options = _args4.length > 2 && _args4[2] !== undefined ? _args4[2] : {};\n parsed = (0, _parseRelativeUrl).parseRelativeUrl(url);\n pathname = parsed.pathname, query = parsed.query;\n\n if (false) {}\n\n _context4.next = 7;\n return this.pageLoader.getPageList();\n\n case 7:\n pages = _context4.sent;\n resolvedAs = asPath;\n\n if (true) {\n _context4.next = 19;\n break;\n }\n\n _context4.next = 12;\n return (0, _routeLoader).getClientBuildManifest();\n\n case 12:\n _yield$getClientBuild = _context4.sent;\n rewrites = _yield$getClientBuild.__rewrites;\n rewritesResult = (0, _resolveRewrites)[\"default\"](addBasePath(addLocale(asPath, this.locale)), pages, rewrites, parsed.query, function (p) {\n return resolveDynamicRoute(p, pages);\n }, this.locales);\n resolvedAs = delLocale(delBasePath(rewritesResult.asPath), this.locale);\n\n if (rewritesResult.matchedPage && rewritesResult.resolvedHref) {\n // if this directly matches a page we need to update the href to\n // allow the correct page chunk to be loaded\n pathname = rewritesResult.resolvedHref;\n parsed.pathname = pathname;\n url = (0, _utils).formatWithValidation(parsed);\n }\n\n _context4.next = 21;\n break;\n\n case 19:\n parsed.pathname = resolveDynamicRoute(parsed.pathname, pages);\n\n if (parsed.pathname !== pathname) {\n pathname = parsed.pathname;\n parsed.pathname = pathname;\n url = (0, _utils).formatWithValidation(parsed);\n }\n\n case 21:\n if (false) {}\n\n return _context4.abrupt(\"return\");\n\n case 23:\n _context4.next = 25;\n return this._preflightRequest({\n as: addBasePath(asPath),\n cache: true,\n pages: pages,\n pathname: pathname,\n query: query\n });\n\n case 25:\n effects = _context4.sent;\n\n if (effects.type === 'rewrite') {\n parsed.pathname = effects.resolvedHref;\n pathname = effects.resolvedHref;\n query = _objectSpread(_objectSpread({}, query), effects.parsedAs.query);\n resolvedAs = effects.asPath;\n url = (0, _utils).formatWithValidation(parsed);\n }\n\n route = (0, _normalizeTrailingSlash).removePathTrailingSlash(pathname);\n _context4.next = 30;\n return Promise.all([this.pageLoader._isSsg(route).then(function (isSsg) {\n return isSsg ? fetchNextData(_this3.pageLoader.getDataHref({\n href: url,\n asPath: resolvedAs,\n ssg: true,\n locale: typeof options.locale !== 'undefined' ? options.locale : _this3.locale\n }), false, false, _this3.sdc, true) : false;\n }), this.pageLoader[options.priority ? 'loadPage' : 'prefetch'](route)]);\n\n case 30:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n\n function prefetch(_x18) {\n return _prefetch.apply(this, arguments);\n }\n\n return prefetch;\n }()\n }, {\n key: \"fetchComponent\",\n value: function () {\n var _fetchComponent = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(route) {\n var _this4 = this;\n\n var cancelled, cancel, handleCancelled, componentResult;\n return _regeneratorRuntime.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n cancelled = false;\n\n cancel = this.clc = function () {\n cancelled = true;\n };\n\n handleCancelled = function handleCancelled() {\n if (cancelled) {\n var error = new Error(\"Abort fetching component for route: \\\"\".concat(route, \"\\\"\"));\n error.cancelled = true;\n throw error;\n }\n\n if (cancel === _this4.clc) {\n _this4.clc = null;\n }\n };\n\n _context5.prev = 3;\n _context5.next = 6;\n return this.pageLoader.loadPage(route);\n\n case 6:\n componentResult = _context5.sent;\n handleCancelled();\n return _context5.abrupt(\"return\", componentResult);\n\n case 11:\n _context5.prev = 11;\n _context5.t0 = _context5[\"catch\"](3);\n handleCancelled();\n throw _context5.t0;\n\n case 15:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5, this, [[3, 11]]);\n }));\n\n function fetchComponent(_x19) {\n return _fetchComponent.apply(this, arguments);\n }\n\n return fetchComponent;\n }()\n }, {\n key: \"_getData\",\n value: function _getData(fn) {\n var _this5 = this;\n\n var cancelled = false;\n\n var cancel = function cancel() {\n cancelled = true;\n };\n\n this.clc = cancel;\n return fn().then(function (data) {\n if (cancel === _this5.clc) {\n _this5.clc = null;\n }\n\n if (cancelled) {\n var err = new Error('Loading initial props cancelled');\n err.cancelled = true;\n throw err;\n }\n\n return data;\n });\n }\n }, {\n key: \"_getFlightData\",\n value: function _getFlightData(dataHref) {\n var _this6 = this;\n\n var _URL2 = new URL(dataHref, window.location.href),\n cacheKey = _URL2.href;\n\n if (!this.isPreview && this.sdc[cacheKey]) {\n return Promise.resolve({\n fresh: false,\n data: this.sdc[cacheKey]\n });\n }\n\n return fetchNextData(dataHref, true, true, this.sdc, false).then(function (serialized) {\n _this6.sdc[cacheKey] = serialized;\n return {\n fresh: true,\n data: serialized\n };\n });\n }\n }, {\n key: \"_preflightRequest\",\n value: function () {\n var _preflightRequest2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6(options) {\n var ref, cleanedAs, fns, requiresPreflight, preflight, parsed, fsPathname, matchedPage, resolvedHref, cleanRedirect, _prepareUrlAs4, newUrl, newAs;\n\n return _regeneratorRuntime.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n cleanedAs = delLocale(hasBasePath(options.as) ? delBasePath(options.as) : options.as, this.locale);\n _context6.next = 3;\n return this.pageLoader.getMiddlewareList();\n\n case 3:\n fns = _context6.sent;\n requiresPreflight = fns.some(function (_ref2) {\n var _ref3 = _slicedToArray(_ref2, 2),\n middleware = _ref3[0],\n isSSR = _ref3[1];\n\n return (0, _routeMatcher).getRouteMatcher((0, _getMiddlewareRegex).getMiddlewareRegex(middleware, !isSSR))(cleanedAs);\n });\n\n if (requiresPreflight) {\n _context6.next = 7;\n break;\n }\n\n return _context6.abrupt(\"return\", {\n type: 'next'\n });\n\n case 7:\n _context6.next = 9;\n return this._getPreflightData({\n preflightHref: options.as,\n shouldCache: options.cache\n });\n\n case 9:\n preflight = _context6.sent;\n\n if (!((ref = preflight.rewrite) === null || ref === void 0 ? void 0 : ref.startsWith('/'))) {\n _context6.next = 15;\n break;\n }\n\n parsed = (0, _parseRelativeUrl).parseRelativeUrl((0, _normalizeLocalePath).normalizeLocalePath(hasBasePath(preflight.rewrite) ? delBasePath(preflight.rewrite) : preflight.rewrite, this.locales).pathname);\n fsPathname = (0, _normalizeTrailingSlash).removePathTrailingSlash(parsed.pathname);\n\n if (options.pages.includes(fsPathname)) {\n matchedPage = true;\n resolvedHref = fsPathname;\n } else {\n resolvedHref = resolveDynamicRoute(fsPathname, options.pages);\n\n if (resolvedHref !== parsed.pathname && options.pages.includes(resolvedHref)) {\n matchedPage = true;\n }\n }\n\n return _context6.abrupt(\"return\", {\n type: 'rewrite',\n asPath: parsed.pathname,\n parsedAs: parsed,\n matchedPage: matchedPage,\n resolvedHref: resolvedHref\n });\n\n case 15:\n if (!preflight.redirect) {\n _context6.next = 21;\n break;\n }\n\n if (!preflight.redirect.startsWith('/')) {\n _context6.next = 20;\n break;\n }\n\n cleanRedirect = (0, _normalizeTrailingSlash).removePathTrailingSlash((0, _normalizeLocalePath).normalizeLocalePath(hasBasePath(preflight.redirect) ? delBasePath(preflight.redirect) : preflight.redirect, this.locales).pathname);\n _prepareUrlAs4 = prepareUrlAs(this, cleanRedirect, cleanRedirect), newUrl = _prepareUrlAs4.url, newAs = _prepareUrlAs4.as;\n return _context6.abrupt(\"return\", {\n type: 'redirect',\n newUrl: newUrl,\n newAs: newAs\n });\n\n case 20:\n return _context6.abrupt(\"return\", {\n type: 'redirect',\n destination: preflight.redirect\n });\n\n case 21:\n if (!(preflight.refresh && !preflight.ssr)) {\n _context6.next = 23;\n break;\n }\n\n return _context6.abrupt(\"return\", {\n type: 'refresh'\n });\n\n case 23:\n return _context6.abrupt(\"return\", {\n type: 'next'\n });\n\n case 24:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6, this);\n }));\n\n function _preflightRequest(_x20) {\n return _preflightRequest2.apply(this, arguments);\n }\n\n return _preflightRequest;\n }()\n }, {\n key: \"_getPreflightData\",\n value: function _getPreflightData(params) {\n var _this7 = this;\n\n var preflightHref = params.preflightHref,\n _params$shouldCache = params.shouldCache,\n shouldCache = _params$shouldCache === void 0 ? false : _params$shouldCache;\n\n var _URL3 = new URL(preflightHref, window.location.href),\n cacheKey = _URL3.href;\n\n if (false) {}\n\n return fetch(preflightHref, {\n method: 'HEAD',\n credentials: 'same-origin',\n headers: {\n 'x-middleware-preflight': '1'\n }\n }).then(function (res) {\n if (!res.ok) {\n throw new Error(\"Failed to preflight request\");\n }\n\n return {\n redirect: res.headers.get('Location'),\n refresh: res.headers.has('x-middleware-refresh'),\n rewrite: res.headers.get('x-middleware-rewrite'),\n ssr: !!res.headers.get('x-middleware-ssr')\n };\n }).then(function (data) {\n if (shouldCache) {\n _this7.sde[cacheKey] = data;\n }\n\n return data;\n })[\"catch\"](function (err) {\n delete _this7.sde[cacheKey];\n throw err;\n });\n }\n }, {\n key: \"getInitialProps\",\n value: function getInitialProps(Component, ctx) {\n var App = this.components['/_app'].Component;\n\n var AppTree = this._wrapApp(App);\n\n ctx.AppTree = AppTree;\n return (0, _utils).loadGetInitialProps(App, {\n AppTree: AppTree,\n Component: Component,\n router: this,\n ctx: ctx\n });\n }\n }, {\n key: \"abortComponentLoad\",\n value: function abortComponentLoad(as, routeProps) {\n if (this.clc) {\n Router.events.emit('routeChangeError', buildCancellationError(), as, routeProps);\n this.clc();\n this.clc = null;\n }\n }\n }, {\n key: \"notify\",\n value: function notify(data, resetScroll) {\n return this.sub(data, this.components['/_app'].Component, resetScroll);\n }\n }]);\n\n return Router;\n}();\n\nRouter.events = (0, _mitt)[\"default\"]();\nexports[\"default\"] = Router;\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3JvdXRlci5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCx1QkFBQSxHQUEwQkUsZUFBMUI7QUFDQUYsaUJBQUEsR0FBb0JHLFNBQXBCO0FBQ0FILGlCQUFBLEdBQW9CSSxTQUFwQjtBQUNBSixtQkFBQSxHQUFzQkssV0FBdEI7QUFDQUwsbUJBQUEsR0FBc0JNLFdBQXRCO0FBQ0FOLG1CQUFBLEdBQXNCTyxXQUF0QjtBQUNBUCxrQkFBQSxHQUFxQlEsVUFBckI7QUFDQVIscUJBQUEsR0FBd0JTLGFBQXhCO0FBQ0FULG1CQUFBLEdBQXNCVSxXQUF0QjtBQUNBVixrQkFBQSxHQUFrQixLQUFLLENBQXZCOztBQUNBLElBQUlXLHVCQUF1QixHQUFHQyxtQkFBTyxDQUFDLDZHQUFELENBQXJDOztBQUNBLElBQUlDLFlBQVksR0FBR0QsbUJBQU8sQ0FBQyxxRkFBRCxDQUExQjs7QUFDQSxJQUFJRSxRQUFRLEdBQUdDLHNCQUFzQixDQUFDSCxtQkFBTyxDQUFDLHVFQUFELENBQVIsQ0FBckM7O0FBQ0EsSUFBSUksb0JBQW9CLEdBQUdKLG1CQUFPLENBQUMsdUdBQUQsQ0FBbEM7O0FBQ0EsSUFBSUssb0JBQW9CLEdBQUdMLG1CQUFPLENBQUMsd0dBQUQsQ0FBbEM7O0FBQ0EsSUFBSU0sS0FBSyxHQUFHSCxzQkFBc0IsQ0FBQ0gsbUJBQU8sQ0FBQyw0REFBRCxDQUFSLENBQWxDOztBQUNBLElBQUlPLE1BQU0sR0FBR1AsbUJBQU8sQ0FBQyw4REFBRCxDQUFwQjs7QUFDQSxJQUFJUSxVQUFVLEdBQUdSLG1CQUFPLENBQUMsMEZBQUQsQ0FBeEI7O0FBQ0EsSUFBSVMsaUJBQWlCLEdBQUdULG1CQUFPLENBQUMsMEdBQUQsQ0FBL0I7O0FBQ0EsSUFBSVUsWUFBWSxHQUFHVixtQkFB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QUs1QixHQUFULEVBQWM7QUFDVm5ELFFBQUFBLE1BQU0sQ0FBQzhDLE1BQVAsQ0FBY3VDLElBQWQsQ0FBbUIsa0JBQW5CLEVBQXVDbk8sc0JBQXNCLEVBQTdELEVBQWlFOEYsRUFBakUsRUFBcUUrSCxVQUFyRTtBQUNBLGFBQUs1QixHQUFMO0FBQ0EsYUFBS0EsR0FBTCxHQUFXLElBQVg7QUFDSDtBQUNKOzs7V0FDRCxnQkFBTy9ELElBQVAsRUFBYTJJLFdBQWIsRUFBMEI7QUFDdEIsYUFBTyxLQUFLN0UsR0FBTCxDQUFTOUQsSUFBVCxFQUFlLEtBQUtpRCxVQUFMLENBQWdCLE9BQWhCLEVBQXlCaEMsU0FBeEMsRUFBbUQwSCxXQUFuRCxDQUFQO0FBQ0g7Ozs7OztBQUVML0gsTUFBTSxDQUFDOEMsTUFBUCxHQUFnQixDQUFDLEdBQUc3TSxLQUFKLGNBQWhCO0FBQ0FsQixrQkFBQSxHQUFrQmlMLE1BQWxCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvcm91dGVyLmpzPzg2ODQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmdldERvbWFpbkxvY2FsZSA9IGdldERvbWFpbkxvY2FsZTtcbmV4cG9ydHMuYWRkTG9jYWxlID0gYWRkTG9jYWxlO1xuZXhwb3J0cy5kZWxMb2NhbGUgPSBkZWxMb2NhbGU7XG5leHBvcnRzLmhhc0Jhc2VQYXRoID0gaGFzQmFzZVBhdGg7XG5leHBvcnRzLmFkZEJhc2VQYXRoID0gYWRkQmFzZVBhdGg7XG5leHBvcnRzLmRlbEJhc2VQYXRoID0gZGVsQmFzZVBhdGg7XG5leHBvcnRzLmlzTG9jYWxVUkwgPSBpc0xvY2FsVVJMO1xuZXhwb3J0cy5pbnRlcnBvbGF0ZUFzID0gaW50ZXJwb2xhdGVBcztcbmV4cG9ydHMucmVzb2x2ZUhyZWYgPSByZXNvbHZlSHJlZjtcbmV4cG9ydHMuZGVmYXVsdCA9IHZvaWQgMDtcbnZhciBfbm9ybWFsaXplVHJhaWxpbmdTbGFzaCA9IHJlcXVpcmUoXCIuLi8uLi8uLi9jbGllbnQvbm9ybWFsaXplLXRyYWlsaW5nLXNsYXNoXCIpO1xudmFyIF9yb3V0ZUxvYWRlciA9IHJlcXVpcmUoXCIuLi8uLi8uLi9jbGllbnQvcm91dGUtbG9hZGVyXCIpO1xudmFyIF9pc0Vycm9yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vLi4vLi4vbGliL2lzLWVycm9yXCIpKTtcbnZhciBfZGVub3JtYWxpemVQYWdlUGF0aCA9IHJlcXVpcmUoXCIuLi8uLi8uLi9zZXJ2ZXIvZGVub3JtYWxpemUtcGFnZS1wYXRoXCIpO1xudmFyIF9ub3JtYWxpemVMb2NhbGVQYXRoID0gcmVxdWlyZShcIi4uL2kxOG4vbm9ybWFsaXplLWxvY2FsZS1wYXRoXCIpO1xudmFyIF9taXR0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vbWl0dFwiKSk7XG52YXIgX3V0aWxzID0gcmVxdWlyZShcIi4uL3V0aWxzXCIpO1xudmFyIF9pc0R5bmFtaWMgPSByZXF1aXJlKFwiLi91dGlscy9pcy1keW5hbWljXCIpO1xudmFyIF9wYXJzZVJlbGF0aXZlVXJsID0gcmVxdWlyZShcIi4vdXRpbHMvcGFyc2UtcmVsYXRpdmUtdXJsXCIpO1xudmFyIF9xdWVyeXN0cmluZyA9IHJlcXVpcmUoXCIuL3V0aWxzL3F1ZXJ5c3RyaW5nXCIpO1xudmFyIF9yZXNvbHZlUmV3cml0ZXMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL3V0aWxzL3Jlc29sdmUtcmV3cml0ZXNcIikpO1xudmFyIF9yb3V0ZU1hdGNoZXIgPSByZXF1aXJlKFwiLi91dGlscy9yb3V0ZS1tYXRjaGVyXCIpO1xudmFyIF9yb3V0ZVJlZ2V4ID0gcmVxdWlyZShcIi4vdXRpbHMvcm91dGUtcmVnZXhcIik7XG52YXIgX2dldE1pZGRsZXdhcmVSZWdleCA9IHJlcXVpcmUoXCIuL3V0aWxzL2dldC1taWRkbGV3YXJlLXJlZ2V4XCIpO1xuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxubGV0IGRldGVjdERvbWFpbkxvY2FsZTtcbmlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgZGV0ZWN0RG9tYWluTG9jYWxlID0gcmVxdWlyZSgnLi4vaTE4bi9kZXRlY3QtZG9tYWluLWxvY2FsZScpLmRldGVjdERvbWFpbkxvY2FsZTtcbn1cbmNvbnN0IGJhc2VQYXRoID0gcHJvY2Vzcy5lbnYuX19ORVhUX1JPVVRFUl9CQVNFUEFUSCB8fCAnJztcbmZ1bmN0aW9uIGJ1aWxkQ2FuY2VsbGF0aW9uRXJyb3IoKSB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IEVycm9yKCdSb3V0ZSBDYW5jZWxsZWQnKSwge1xuICAgICAgICBjYW5jZWxsZWQ6IHRydWVcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGFkZFBhdGhQcmVmaXgocGF0aCwgcHJlZml4KSB7XG4gICAgaWYgKCFwYXRoLnN0YXJ0c1dpdGgoJy8nKSB8fCAhcHJlZml4KSB7XG4gICAgICAgIHJldHVybiBwYXRoO1xuICAgIH1cbiAgICBjb25zdCBwYXRobmFtZSA9IHBhdGhOb1F1ZXJ5SGFzaChwYXRoKTtcbiAgICByZXR1cm4gKDAsIF9ub3JtYWxpemVUcmFpbGluZ1NsYXNoKS5ub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaChgJHtwcmVmaXh9JHtwYXRobmFtZX1gKSArIHBhdGguc3Vic3RyKHBhdGhuYW1lLmxlbmd0aCk7XG59XG5mdW5jdGlvbiBnZXREb21haW5Mb2NhbGUocGF0aCwgbG9jYWxlLCBsb2NhbGVzLCBkb21haW5Mb2NhbGVzKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9JMThOX1NVUFBPUlQpIHtcbiAgICAgICAgbG9jYWxlID0gbG9jYWxlIHx8ICgwLCBfbm9ybWFsaXplTG9jYWxlUGF0aCkubm9ybWFsaXplTG9jYWxlUGF0aChwYXRoLCBsb2NhbGVzKS5kZXRlY3RlZExvY2FsZTtcbiAgICAgICAgY29uc3QgZGV0ZWN0ZWREb21haW4gPSBkZXRlY3REb21haW5Mb2NhbGUoZG9tYWluTG9jYWxlcywgdW5kZWZpbmVkLCBsb2NhbGUpO1xuICAgICAgICBpZiAoZGV0ZWN0ZWREb21haW4pIHtcbiAgICAgICAgICAgIHJldHVybiBgaHR0cCR7ZGV0ZWN0ZWREb21haW4uaHR0cCA/ICcnIDogJ3MnfTovLyR7ZGV0ZWN0ZWREb21haW4uZG9tYWlufSR7YmFzZVBhdGggfHwgJyd9JHtsb2NhbGUgPT09IGRldGVjdGVkRG9tYWluLmRlZmF1bHRMb2NhbGUgPyAnJyA6IGAvJHtsb2NhbGV9YH0ke3BhdGh9YDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGFkZExvY2FsZShwYXRoLCBsb2NhbGUsIGRlZmF1bHRMb2NhbGUpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0kxOE5fU1VQUE9SVCkge1xuICAgICAgICBjb25zdCBwYXRobmFtZSA9IHBhdGhOb1F1ZXJ5SGFzaChwYXRoKTtcbiAgICAgICAgY29uc3QgcGF0aExvd2VyID0gcGF0aG5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgY29uc3QgbG9jYWxlTG93ZXIgPSBsb2NhbGUgJiYgbG9jYWxlLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIHJldHVybiBsb2NhbGUgJiYgbG9jYWxlICE9PSBkZWZhdWx0TG9jYWxlICYmICFwYXRoTG93ZXIuc3RhcnRzV2l0aCgnLycgKyBsb2NhbGVMb3dlciArICcvJykgJiYgcGF0aExvd2VyICE9PSAnLycgKyBsb2NhbGVMb3dlciA/IGFkZFBhdGhQcmVmaXgocGF0aCwgJy8nICsgbG9jYWxlKSA6IHBhdGg7XG4gICAgfVxuICAgIHJldHVybiBwYXRoO1xufVxuZnVuY3Rpb24gZGVsTG9jYWxlKHBhdGgsIGxvY2FsZSkge1xuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgICAgIGNvbnN0IHBhdGhuYW1lID0gcGF0aE5vUXVlcnlIYXNoKHBhdGgpO1xuICAgICAgICBjb25zdCBwYXRoTG93ZXIgPSBwYXRobmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBjb25zdCBsb2NhbGVMb3dlciA9IGxvY2FsZSAmJiBsb2NhbGUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgcmV0dXJuIGxvY2FsZSAmJiAocGF0aExvd2VyLnN0YXJ0c1dpdGgoJy8nICsgbG9jYWxlTG93ZXIgKyAnLycpIHx8IHBhdGhMb3dlciA9PT0gJy8nICsgbG9jYWxlTG93ZXIpID8gKHBhdGhuYW1lLmxlbmd0aCA9PT0gbG9jYWxlLmxlbmd0aCArIDEgPyAnLycgOiAnJykgKyBwYXRoLnN1YnN0cihsb2NhbGUubGVuZ3RoICsgMSkgOiBwYXRoO1xuICAgIH1cbiAgICByZXR1cm4gcGF0aDtcbn1cbmZ1bmN0aW9uIHBhdGhOb1F1ZXJ5SGFzaChwYXRoKSB7XG4gICAgY29uc3QgcXVlcnlJbmRleCA9IHBhdGguaW5kZXhPZignPycpO1xuICAgIGNvbnN0IGhhc2hJbmRleCA9IHBhdGguaW5kZXhPZignIycpO1xuICAgIGlmIChxdWVyeUluZGV4ID4gLTEgfHwgaGFzaEluZGV4ID4gLTEpIHtcbiAgICAgICAgcGF0aCA9IHBhdGguc3Vic3RyaW5nKDAsIHF1ZXJ5SW5kZXggPiAtMSA/IHF1ZXJ5SW5kZXggOiBoYXNoSW5kZXgpO1xuICAgIH1cbiAgICByZXR1cm4gcGF0aDtcbn1cbmZ1bmN0aW9uIGhhc0Jhc2VQYXRoKHBhdGgpIHtcbiAgICBwYXRoID0gcGF0aE5vUXVlcnlIYXNoKHBhdGgpO1xuICAgIHJldHVybiBwYXRoID09PSBiYXNlUGF0aCB8fCBwYXRoLnN0YXJ0c1dpdGgoYmFzZVBhdGggKyAnLycpO1xufVxuZnVuY3Rpb24gYWRkQmFzZVBhdGgocGF0aCkge1xuICAgIC8vIHdlIG9ubHkgYWRkIHRoZSBiYXNlcGF0aCBvbiByZWxhdGl2ZSB1cmxzXG4gICAgcmV0dXJuIGFkZFBhdGhQcmVmaXgocGF0aCwgYmFzZVBhdGgpO1xufVxuZnVuY3Rpb24gZGVsQmFzZVBhdGgocGF0aCkge1xuICAgIHBhdGggPSBwYXRoLnNsaWNlKGJhc2VQYXRoLmxlbmd0aCk7XG4gICAgaWYgKCFwYXRoLnN0YXJ0c1dpdGgoJy8nKSkgcGF0aCA9IGAvJHtwYXRofWA7XG4gICAgcmV0dXJuIHBhdGg7XG59XG5mdW5jdGlvbiBpc0xvY2FsVVJMKHVybCkge1xuICAgIC8vIHByZXZlbnQgYSBoeWRyYXRpb24gbWlzbWF0Y2ggb24gaHJlZiBmb3IgdXJsIHdpdGggYW5jaG9yIHJlZnNcbiAgICBpZiAodXJsLnN0YXJ0c1dpdGgoJy8nKSB8fCB1cmwuc3RhcnRzV2l0aCgnIycpIHx8IHVybC5zdGFydHNXaXRoKCc/JykpIHJldHVybiB0cnVlO1xuICAgIHRyeSB7XG4gICAgICAgIC8vIGFic29sdXRlIHVybHMgY2FuIGJlIGxvY2FsIGlmIHRoZXkgYXJlIG9uIHRoZSBzYW1lIG9yaWdpblxuICAgICAgICBjb25zdCBsb2NhdGlvbk9yaWdpbiA9ICgwLCBfdXRpbHMpLmdldExvY2F0aW9uT3JpZ2luKCk7XG4gICAgICAgIGNvbnN0IHJlc29sdmVkID0gbmV3IFVSTCh1cmwsIGxvY2F0aW9uT3JpZ2luKTtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVkLm9yaWdpbiA9PT0gbG9jYXRpb25PcmlnaW4gJiYgaGFzQmFzZVBhdGgocmVzb2x2ZWQucGF0aG5hbWUpO1xuICAgIH0gY2F0Y2ggKF8pIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGludGVycG9sYXRlQXMocm91dGUsIGFzUGF0aG5hbWUsIHF1ZXJ5KSB7XG4gICAgbGV0IGludGVycG9sYXRlZFJvdXRlID0gJyc7XG4gICAgY29uc3QgZHluYW1pY1JlZ2V4ID0gKDAsIF9yb3V0ZVJlZ2V4KS5nZXRSb3V0ZVJlZ2V4KHJvdXRlKTtcbiAgICBjb25zdCBkeW5hbWljR3JvdXBzID0gZHluYW1pY1JlZ2V4Lmdyb3VwcztcbiAgICBjb25zdCBkeW5hbWljTWF0Y2hlcyA9IC8vIFRyeSB0byBtYXRjaCB0aGUgZHluYW1pYyByb3V0ZSBhZ2FpbnN0IHRoZSBhc1BhdGhcbiAgICAoYXNQYXRobmFtZSAhPT0gcm91dGUgPyAoMCwgX3JvdXRlTWF0Y2hlcikuZ2V0Um91dGVNYXRjaGVyKGR5bmFtaWNSZWdleCkoYXNQYXRobmFtZSkgOiAnJykgfHwgLy8gRmFsbCBiYWNrIHRvIHJlYWRpbmcgdGhlIHZhbHVlcyBmcm9tIHRoZSBocmVmXG4gICAgLy8gVE9ETzogc2hvdWxkIHRoaXMgdGFrZSBwcmlvcml0eTsgYWxzbyBuZWVkIHRvIGNoYW5nZSBpbiB0aGUgcm91dGVyLlxuICAgIHF1ZXJ5O1xuICAgIGludGVycG9sYXRlZFJvdXRlID0gcm91dGU7XG4gICAgY29uc3QgcGFyYW1zID0gT2JqZWN0LmtleXMoZHluYW1pY0dyb3Vwcyk7XG4gICAgaWYgKCFwYXJhbXMuZXZlcnkoKHBhcmFtKT0+e1xuICAgICAgICBsZXQgdmFsdWUgPSBkeW5hbWljTWF0Y2hlc1twYXJhbV0gfHwgJyc7XG4gICAgICAgIGNvbnN0IHsgcmVwZWF0ICwgb3B0aW9uYWwgIH0gPSBkeW5hbWljR3JvdXBzW3BhcmFtXTtcbiAgICAgICAgLy8gc3VwcG9ydCBzaW5nbGUtbGV2ZWwgY2F0Y2gtYWxsXG4gICAgICAgIC8vIFRPRE86IG1vcmUgcm9idXN0IGhhbmRsaW5nIGZvciB1c2VyLWVycm9yIChwYXNzaW5nIGAvYClcbiAgICAgICAgbGV0IHJlcGxhY2VkID0gYFske3JlcGVhdCA/ICcuLi4nIDogJyd9JHtwYXJhbX1dYDtcbiAgICAgICAgaWYgKG9wdGlvbmFsKSB7XG4gICAgICAgICAgICByZXBsYWNlZCA9IGAkeyF2YWx1ZSA/ICcvJyA6ICcnfVske3JlcGxhY2VkfV1gO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZXBlYXQgJiYgIUFycmF5LmlzQXJyYXkodmFsdWUpKSB2YWx1ZSA9IFtcbiAgICAgICAgICAgIHZhbHVlXG4gICAgICAgIF07XG4gICAgICAgIHJldHVybiAob3B0aW9uYWwgfHwgcGFyYW0gaW4gZHluYW1pY01hdGNoZXMpICYmIC8vIEludGVycG9sYXRlIGdyb3VwIGludG8gZGF0YSBVUkwgaWYgcHJlc2VudFxuICAgICAgICAoaW50ZXJwb2xhdGVkUm91dGUgPSBpbnRlcnBvbGF0ZWRSb3V0ZS5yZXBsYWNlKHJlcGxhY2VkLCByZXBlYXQgPyB2YWx1ZS5tYXAoLy8gdGhlc2UgdmFsdWVzIHNob3VsZCBiZSBmdWxseSBlbmNvZGVkIGluc3RlYWQgb2YganVzdFxuICAgICAgICAvLyBwYXRoIGRlbGltaXRlciBlc2NhcGVkIHNpbmNlIHRoZXkgYXJlIGJlaW5nIGluc2VydGVkXG4gICAgICAgIC8vIGludG8gdGhlIFVSTCBhbmQgd2UgZXhwZWN0IFVSTCBlbmNvZGVkIHNlZ21lbnRzXG4gICAgICAgIC8vIHdoZW4gcGFyc2luZyBkeW5hbWljIHJvdXRlIHBhcmFtc1xuICAgICAgICAoc2VnbWVudCk9PmVuY29kZVVSSUNvbXBvbmVudChzZWdtZW50KVxuICAgICAgICApLmpvaW4oJy8nKSA6IGVuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSkpIHx8ICcvJyk7XG4gICAgfSkpIHtcbiAgICAgICAgaW50ZXJwb2xhdGVkUm91dGUgPSAnJyAvLyBkaWQgbm90IHNhdGlzZnkgYWxsIHJlcXVpcmVtZW50c1xuICAgICAgICA7XG4gICAgLy8gbi5iLiBXZSBpZ25vcmUgdGhpcyBlcnJvciBiZWNhdXNlIHdlIGhhbmRsZSB3YXJuaW5nIGZvciB0aGlzIGNhc2UgaW5cbiAgICAvLyBkZXZlbG9wbWVudCBpbiB0aGUgYDxMaW5rPmAgY29tcG9uZW50IGRpcmVjdGx5LlxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBwYXJhbXMsXG4gICAgICAgIHJlc3VsdDogaW50ZXJwb2xhdGVkUm91dGVcbiAgICB9O1xufVxuZnVuY3Rpb24gb21pdFBhcm1zRnJvbVF1ZXJ5KHF1ZXJ5LCBwYXJhbXMpIHtcbiAgICBjb25zdCBmaWx0ZXJlZFF1ZXJ5ID0ge1xuICAgIH07XG4gICAgT2JqZWN0LmtleXMocXVlcnkpLmZvckVhY2goKGtleSk9PntcbiAgICAgICAgaWYgKCFwYXJhbXMuaW5jbHVkZXMoa2V5KSkge1xuICAgICAgICAgICAgZmlsdGVyZWRRdWVyeVtrZXldID0gcXVlcnlba2V5XTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBmaWx0ZXJlZFF1ZXJ5O1xufVxuZnVuY3Rpb24gcmVzb2x2ZUhyZWYocm91dGVyLCBocmVmLCByZXNvbHZlQXMpIHtcbiAgICAvLyB3ZSB1c2UgYSBkdW1teSBiYXNlIHVybCBmb3IgcmVsYXRpdmUgdXJsc1xuICAgIGxldCBiYXNlO1xuICAgIGxldCB1cmxBc1N0cmluZyA9IHR5cGVvZiBocmVmID09PSAnc3RyaW5nJyA/IGhyZWYgOiAoMCwgX3V0aWxzKS5mb3JtYXRXaXRoVmFsaWRhdGlvbihocmVmKTtcbiAgICAvLyByZXBlYXRlZCBzbGFzaGVzIGFuZCBiYWNrc2xhc2hlcyBpbiB0aGUgVVJMIGFyZSBjb25zaWRlcmVkXG4gICAgLy8gaW52YWxpZCBhbmQgd2lsbCBuZXZlciBtYXRjaCBhIE5leHQuanMgcGFnZS9maWxlXG4gICAgY29uc3QgdXJsUHJvdG9NYXRjaCA9IHVybEFzU3RyaW5nLm1hdGNoKC9eW2EtekEtWl17MSx9OlxcL1xcLy8pO1xuICAgIGNvbnN0IHVybEFzU3RyaW5nTm9Qcm90byA9IHVybFByb3RvTWF0Y2ggPyB1cmxBc1N0cmluZy5zdWJzdHIodXJsUHJvdG9NYXRjaFswXS5sZW5ndGgpIDogdXJsQXNTdHJpbmc7XG4gICAgY29uc3QgdXJsUGFydHMgPSB1cmxBc1N0cmluZ05vUHJvdG8uc3BsaXQoJz8nKTtcbiAgICBpZiAoKHVybFBhcnRzWzBdIHx8ICcnKS5tYXRjaCgvKFxcL1xcL3xcXFxcKS8pKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYEludmFsaWQgaHJlZiBwYXNzZWQgdG8gbmV4dC9yb3V0ZXI6ICR7dXJsQXNTdHJpbmd9LCByZXBlYXRlZCBmb3J3YXJkLXNsYXNoZXMgKC8vKSBvciBiYWNrc2xhc2hlcyBcXFxcIGFyZSBub3QgdmFsaWQgaW4gdGhlIGhyZWZgKTtcbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZFVybCA9ICgwLCBfdXRpbHMpLm5vcm1hbGl6ZVJlcGVhdGVkU2xhc2hlcyh1cmxBc1N0cmluZ05vUHJvdG8pO1xuICAgICAgICB1cmxBc1N0cmluZyA9ICh1cmxQcm90b01hdGNoID8gdXJsUHJvdG9NYXRjaFswXSA6ICcnKSArIG5vcm1hbGl6ZWRVcmw7XG4gICAgfVxuICAgIC8vIFJldHVybiBiZWNhdXNlIGl0IGNhbm5vdCBiZSByb3V0ZWQgYnkgdGhlIE5leHQuanMgcm91dGVyXG4gICAgaWYgKCFpc0xvY2FsVVJMKHVybEFzU3RyaW5nKSkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZUFzID8gW1xuICAgICAgICAgICAgdXJsQXNTdHJpbmdcbiAgICAgICAgXSA6IHVybEFzU3RyaW5nO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICBiYXNlID0gbmV3IFVSTCh1cmxBc1N0cmluZy5zdGFydHNXaXRoKCcjJykgPyByb3V0ZXIuYXNQYXRoIDogcm91dGVyLnBhdGhuYW1lLCAnaHR0cDovL24nKTtcbiAgICB9IGNhdGNoIChfKSB7XG4gICAgICAgIC8vIGZhbGxiYWNrIHRvIC8gZm9yIGludmFsaWQgYXNQYXRoIHZhbHVlcyBlLmcuIC8vXG4gICAgICAgIGJhc2UgPSBuZXcgVVJMKCcvJywgJ2h0dHA6Ly9uJyk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGZpbmFsVXJsID0gbmV3IFVSTCh1cmxBc1N0cmluZywgYmFzZSk7XG4gICAgICAgIGZpbmFsVXJsLnBhdGhuYW1lID0gKDAsIF9ub3JtYWxpemVUcmFpbGluZ1NsYXNoKS5ub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaChmaW5hbFVybC5wYXRobmFtZSk7XG4gICAgICAgIGxldCBpbnRlcnBvbGF0ZWRBcyA9ICcnO1xuICAgICAgICBpZiAoKDAsIF9pc0R5bmFtaWMpLmlzRHluYW1pY1JvdXRlKGZpbmFsVXJsLnBhdGhuYW1lKSAmJiBmaW5hbFVybC5zZWFyY2hQYXJhbXMgJiYgcmVzb2x2ZUFzKSB7XG4gICAgICAgICAgICBjb25zdCBxdWVyeSA9ICgwLCBfcXVlcnlzdHJpbmcpLnNlYXJjaFBhcmFtc1RvVXJsUXVlcnkoZmluYWxVcmwuc2VhcmNoUGFyYW1zKTtcbiAgICAgICAgICAgIGNvbnN0IHsgcmVzdWx0ICwgcGFyYW1zICB9ID0gaW50ZXJwb2xhdGVBcyhmaW5hbFVybC5wYXRobmFtZSwgZmluYWxVcmwucGF0aG5hbWUsIHF1ZXJ5KTtcbiAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICBpbnRlcnBvbGF0ZWRBcyA9ICgwLCBfdXRpbHMpLmZvcm1hdFdpdGhWYWxpZGF0aW9uKHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWU6IHJlc3VsdCxcbiAgICAgICAgICAgICAgICAgICAgaGFzaDogZmluYWxVcmwuaGFzaCxcbiAgICAgICAgICAgICAgICAgICAgcXVlcnk6IG9taXRQYXJtc0Zyb21RdWVyeShxdWVyeSwgcGFyYW1zKVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIGlmIHRoZSBvcmlnaW4gZGlkbid0IGNoYW5nZSwgaXQgbWVhbnMgd2UgcmVjZWl2ZWQgYSByZWxhdGl2ZSBocmVmXG4gICAgICAgIGNvbnN0IHJlc29sdmVkSHJlZiA9IGZpbmFsVXJsLm9yaWdpbiA9PT0gYmFzZS5vcmlnaW4gPyBmaW5hbFVybC5ocmVmLnNsaWNlKGZpbmFsVXJsLm9yaWdpbi5sZW5ndGgpIDogZmluYWxVcmwuaHJlZjtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVBcyA/IFtcbiAgICAgICAgICAgIHJlc29sdmVkSHJlZixcbiAgICAgICAgICAgIGludGVycG9sYXRlZEFzIHx8IHJlc29sdmVkSHJlZlxuICAgICAgICBdIDogcmVzb2x2ZWRIcmVmO1xuICAgIH0gY2F0Y2ggKF8xKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlQXMgPyBbXG4gICAgICAgICAgICB1cmxBc1N0cmluZ1xuICAgICAgICBdIDogdXJsQXNTdHJpbmc7XG4gICAgfVxufVxuZnVuY3Rpb24gc3RyaXBPcmlnaW4odXJsKSB7XG4gICAgY29uc3Qgb3JpZ2luID0gKDAsIF91dGlscykuZ2V0TG9jYXRpb25PcmlnaW4oKTtcbiAgICByZXR1cm4gdXJsLnN0YXJ0c1dpdGgob3JpZ2luKSA/IHVybC5zdWJzdHJpbmcob3JpZ2luLmxlbmd0aCkgOiB1cmw7XG59XG5mdW5jdGlvbiBwcmVwYXJlVXJsQXMocm91dGVyLCB1cmwsIGFzKSB7XG4gICAgLy8gSWYgdXJsIGFuZCBhcyBwcm92aWRlZCBhcyBhbiBvYmplY3QgcmVwcmVzZW50YXRpb24sXG4gICAgLy8gd2UnbGwgZm9ybWF0IHRoZW0gaW50byB0aGUgc3RyaW5nIHZlcnNpb24gaGVyZS5cbiAgICBsZXQgW3Jlc29sdmVkSHJlZiwgcmVzb2x2ZWRBc10gPSByZXNvbHZlSHJlZihyb3V0ZXIsIHVybCwgdHJ1ZSk7XG4gICAgY29uc3Qgb3JpZ2luID0gKDAsIF91dGlscykuZ2V0TG9jYXRpb25PcmlnaW4oKTtcbiAgICBjb25zdCBocmVmSGFkT3JpZ2luID0gcmVzb2x2ZWRIcmVmLnN0YXJ0c1dpdGgob3JpZ2luKTtcbiAgICBjb25zdCBhc0hhZE9yaWdpbiA9IHJlc29sdmVkQXMgJiYgcmVzb2x2ZWRBcy5zdGFydHNXaXRoKG9yaWdpbik7XG4gICAgcmVzb2x2ZWRIcmVmID0gc3RyaXBPcmlnaW4ocmVzb2x2ZWRIcmVmKTtcbiAgICByZXNvbHZlZEFzID0gcmVzb2x2ZWRBcyA/IHN0cmlwT3JpZ2luKHJlc29sdmVkQXMpIDogcmVzb2x2ZWRBcztcbiAgICBjb25zdCBwcmVwYXJlZFVybCA9IGhyZWZIYWRPcmlnaW4gPyByZXNvbHZlZEhyZWYgOiBhZGRCYXNlUGF0aChyZXNvbHZlZEhyZWYpO1xuICAgIGNvbnN0IHByZXBhcmVkQXMgPSBhcyA/IHN0cmlwT3JpZ2luKHJlc29sdmVIcmVmKHJvdXRlciwgYXMpKSA6IHJlc29sdmVkQXMgfHwgcmVzb2x2ZWRIcmVmO1xuICAgIHJldHVybiB7XG4gICAgICAgIHVybDogcHJlcGFyZWRVcmwsXG4gICAgICAgIGFzOiBhc0hhZE9yaWdpbiA/IHByZXBhcmVkQXMgOiBhZGRCYXNlUGF0aChwcmVwYXJlZEFzKVxuICAgIH07XG59XG5mdW5jdGlvbiByZXNvbHZlRHluYW1pY1JvdXRlKHBhdGhuYW1lLCBwYWdlcykge1xuICAgIGNvbnN0IGNsZWFuUGF0aG5hbWUgPSAoMCwgX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2gpLnJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoKCgwLCBfZGVub3JtYWxpemVQYWdlUGF0aCkuZGVub3JtYWxpemVQYWdlUGF0aChwYXRobmFtZSkpO1xuICAgIGlmIChjbGVhblBhdGhuYW1lID09PSAnLzQwNCcgfHwgY2xlYW5QYXRobmFtZSA9PT0gJy9fZXJyb3InKSB7XG4gICAgICAgIHJldHVybiBwYXRobmFtZTtcbiAgICB9XG4gICAgLy8gaGFuZGxlIHJlc29sdmluZyBocmVmIGZvciBkeW5hbWljIHJvdXRlc1xuICAgIGlmICghcGFnZXMuaW5jbHVkZXMoY2xlYW5QYXRobmFtZSkpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGFycmF5LWNhbGxiYWNrLXJldHVyblxuICAgICAgICBwYWdlcy5zb21lKChwYWdlKT0+e1xuICAgICAgICAgICAgaWYgKCgwLCBfaXNEeW5hbWljKS5pc0R5bmFtaWNSb3V0ZShwYWdlKSAmJiAoMCwgX3JvdXRlUmVnZXgpLmdldFJvdXRlUmVnZXgocGFnZSkucmUudGVzdChjbGVhblBhdGhuYW1lKSkge1xuICAgICAgICAgICAgICAgIHBhdGhuYW1lID0gcGFnZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiAoMCwgX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2gpLnJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoKHBhdGhuYW1lKTtcbn1cbmNvbnN0IG1hbnVhbFNjcm9sbFJlc3RvcmF0aW9uID0gcHJvY2Vzcy5lbnYuX19ORVhUX1NDUk9MTF9SRVNUT1JBVElPTiAmJiB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiAnc2Nyb2xsUmVzdG9yYXRpb24nIGluIHdpbmRvdy5oaXN0b3J5ICYmICEhZnVuY3Rpb24oKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgbGV0IHYgPSAnX19uZXh0JztcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlcXVlbmNlc1xuICAgICAgICByZXR1cm4gc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh2LCB2KSwgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSh2KSwgdHJ1ZTtcbiAgICB9IGNhdGNoIChuKSB7XG4gICAgfVxufSgpO1xuY29uc3QgU1NHX0RBVEFfTk9UX0ZPVU5EID0gU3ltYm9sKCdTU0dfREFUQV9OT1RfRk9VTkQnKTtcbmZ1bmN0aW9uIGZldGNoUmV0cnkodXJsLCBhdHRlbXB0cywgb3B0cykge1xuICAgIHJldHVybiBmZXRjaCh1cmwsIHtcbiAgICAgICAgLy8gQ29va2llcyBhcmUgcmVxdWlyZWQgdG8gYmUgcHJlc2VudCBmb3IgTmV4dC5qcycgU1NHIFwiUHJldmlldyBNb2RlXCIuXG4gICAgICAgIC8vIENvb2tpZXMgbWF5IGFsc28gYmUgcmVxdWlyZWQgZm9yIGBnZXRTZXJ2ZXJTaWRlUHJvcHNgLlxuICAgICAgICAvL1xuICAgICAgICAvLyA+IGBmZXRjaGAgd29u4oCZdCBzZW5kIGNvb2tpZXMsIHVubGVzcyB5b3Ugc2V0IHRoZSBjcmVkZW50aWFscyBpbml0XG4gICAgICAgIC8vID4gb3B0aW9uLlxuICAgICAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRmV0Y2hfQVBJL1VzaW5nX0ZldGNoXG4gICAgICAgIC8vXG4gICAgICAgIC8vID4gRm9yIG1heGltdW0gYnJvd3NlciBjb21wYXRpYmlsaXR5IHdoZW4gaXQgY29tZXMgdG8gc2VuZGluZyAmXG4gICAgICAgIC8vID4gcmVjZWl2aW5nIGNvb2tpZXMsIGFsd2F5cyBzdXBwbHkgdGhlIGBjcmVkZW50aWFsczogJ3NhbWUtb3JpZ2luJ2BcbiAgICAgICAgLy8gPiBvcHRpb24gaW5zdGVhZCBvZiByZWx5aW5nIG9uIHRoZSBkZWZhdWx0LlxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZ2l0aHViL2ZldGNoI2NhdmVhdHNcbiAgICAgICAgY3JlZGVudGlhbHM6ICdzYW1lLW9yaWdpbidcbiAgICB9KS50aGVuKChyZXMpPT57XG4gICAgICAgIGlmICghcmVzLm9rKSB7XG4gICAgICAgICAgICBpZiAoYXR0ZW1wdHMgPiAxICYmIHJlcy5zdGF0dXMgPj0gNTAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZldGNoUmV0cnkodXJsLCBhdHRlbXB0cyAtIDEsIG9wdHMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT09IDQwNCkge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXMuanNvbigpLnRoZW4oKGRhdGEpPT57XG4gICAgICAgICAgICAgICAgICAgIGlmIChkYXRhLm5vdEZvdW5kKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdEZvdW5kOiBTU0dfREFUQV9OT1RfRk9VTkRcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gbG9hZCBzdGF0aWMgcHJvcHNgKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGxvYWQgc3RhdGljIHByb3BzYCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9wdHMudGV4dCA/IHJlcy50ZXh0KCkgOiByZXMuanNvbigpO1xuICAgIH0pO1xufVxuZnVuY3Rpb24gZmV0Y2hOZXh0RGF0YShkYXRhSHJlZiwgaXNTZXJ2ZXJSZW5kZXIsIHRleHQsIGluZmxpZ2h0Q2FjaGUsIHBlcnNpc3RDYWNoZSkge1xuICAgIGNvbnN0IHsgaHJlZjogY2FjaGVLZXkgIH0gPSBuZXcgVVJMKGRhdGFIcmVmLCB3aW5kb3cubG9jYXRpb24uaHJlZik7XG4gICAgaWYgKGluZmxpZ2h0Q2FjaGVbY2FjaGVLZXldICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIGluZmxpZ2h0Q2FjaGVbY2FjaGVLZXldO1xuICAgIH1cbiAgICByZXR1cm4gaW5mbGlnaHRDYWNoZVtjYWNoZUtleV0gPSBmZXRjaFJldHJ5KGRhdGFIcmVmLCBpc1NlcnZlclJlbmRlciA/IDMgOiAxLCB7XG4gICAgICAgIHRleHRcbiAgICB9KS5jYXRjaCgoZXJyKT0+e1xuICAgICAgICAvLyBXZSBzaG91bGQgb25seSB0cmlnZ2VyIGEgc2VydmVyLXNpZGUgdHJhbnNpdGlvbiBpZiB0aGlzIHdhcyBjYXVzZWRcbiAgICAgICAgLy8gb24gYSBjbGllbnQtc2lkZSB0cmFuc2l0aW9uLiBPdGhlcndpc2UsIHdlJ2QgZ2V0IGludG8gYW4gaW5maW5pdGVcbiAgICAgICAgLy8gbG9vcC5cbiAgICAgICAgaWYgKCFpc1NlcnZlclJlbmRlcikge1xuICAgICAgICAgICAgKDAsIF9yb3V0ZUxvYWRlcikubWFya0Fzc2V0RXJyb3IoZXJyKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBlcnI7XG4gICAgfSkudGhlbigoZGF0YSk9PntcbiAgICAgICAgaWYgKCFwZXJzaXN0Q2FjaGUgfHwgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgZGVsZXRlIGluZmxpZ2h0Q2FjaGVbY2FjaGVLZXldO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH0pLmNhdGNoKChlcnIpPT57XG4gICAgICAgIGRlbGV0ZSBpbmZsaWdodENhY2hlW2NhY2hlS2V5XTtcbiAgICAgICAgdGhyb3cgZXJyO1xuICAgIH0pO1xufVxuY2xhc3MgUm91dGVyIHtcbiAgICBjb25zdHJ1Y3RvcihwYXRobmFtZSwgcXVlcnksIGFzLCB7IGluaXRpYWxQcm9wcyAsIHBhZ2VMb2FkZXIgLCBBcHAgLCB3cmFwQXBwICwgQ29tcG9uZW50ICwgZXJyICwgc3Vic2NyaXB0aW9uICwgaXNGYWxsYmFjayAsIGxvY2FsZSAsIGxvY2FsZXMgLCBkZWZhdWx0TG9jYWxlICwgZG9tYWluTG9jYWxlcyAsIGlzUHJldmlldyAgfSl7XG4gICAgICAgIC8vIFN0YXRpYyBEYXRhIENhY2hlXG4gICAgICAgIHRoaXMuc2RjID0ge1xuICAgICAgICB9O1xuICAgICAgICAvLyBJbi1mbGlnaHQgU2VydmVyIERhdGEgUmVxdWVzdHMsIGZvciBkZWR1cGluZ1xuICAgICAgICB0aGlzLnNkciA9IHtcbiAgICAgICAgfTtcbiAgICAgICAgLy8gSW4tZmxpZ2h0IG1pZGRsZXdhcmUgcHJlZmxpZ2h0IHJlcXVlc3RzXG4gICAgICAgIHRoaXMuc2RlID0ge1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLl9pZHggPSAwO1xuICAgICAgICB0aGlzLm9uUG9wU3RhdGUgPSAoZSk9PntcbiAgICAgICAgICAgIGNvbnN0IHN0YXRlID0gZS5zdGF0ZTtcbiAgICAgICAgICAgIGlmICghc3RhdGUpIHtcbiAgICAgICAgICAgICAgICAvLyBXZSBnZXQgc3RhdGUgYXMgdW5kZWZpbmVkIGZvciB0d28gcmVhc29ucy5cbiAgICAgICAgICAgICAgICAvLyAgMS4gV2l0aCBvbGRlciBzYWZhcmkgKDwgOCkgYW5kIG9sZGVyIGNocm9tZSAoPCAzNClcbiAgICAgICAgICAgICAgICAvLyAgMi4gV2hlbiB0aGUgVVJMIGNoYW5nZWQgd2l0aCAjXG4gICAgICAgICAgICAgICAgLy9cbiAgICAgICAgICAgICAgICAvLyBJbiB0aGUgYm90aCBjYXNlcywgd2UgZG9uJ3QgbmVlZCB0byBwcm9jZWVkIGFuZCBjaGFuZ2UgdGhlIHJvdXRlLlxuICAgICAgICAgICAgICAgIC8vIChhcyBpdCdzIGFscmVhZHkgY2hhbmdlZClcbiAgICAgICAgICAgICAgICAvLyBCdXQgd2UgY2FuIHNpbXBseSByZXBsYWNlIHRoZSBzdGF0ZSB3aXRoIHRoZSBuZXcgY2hhbmdlcy5cbiAgICAgICAgICAgICAgICAvLyBBY3R1YWxseSwgZm9yICgxKSB3ZSBkb24ndCBuZWVkIHRvIG5vdGhpbmcuIEJ1dCBpdCdzIGhhcmQgdG8gZGV0ZWN0IHRoYXQgZXZlbnQuXG4gICAgICAgICAgICAgICAgLy8gU28sIGRvaW5nIHRoZSBmb2xsb3dpbmcgZm9yICgxKSBkb2VzIG5vIGhhcm0uXG4gICAgICAgICAgICAgICAgY29uc3QgeyBwYXRobmFtZSAsIHF1ZXJ5ICB9ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZVN0YXRlKCdyZXBsYWNlU3RhdGUnLCAoMCwgX3V0aWxzKS5mb3JtYXRXaXRoVmFsaWRhdGlvbih7XG4gICAgICAgICAgICAgICAgICAgIHBhdGhuYW1lOiBhZGRCYXNlUGF0aChwYXRobmFtZSksXG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5XG4gICAgICAgICAgICAgICAgfSksICgwLCBfdXRpbHMpLmdldFVSTCgpKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXN0YXRlLl9fTikge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBmb3JjZWRTY3JvbGw7XG4gICAgICAgICAgICBjb25zdCB7IHVybCAsIGFzICwgb3B0aW9ucyAsIGlkeCAgfSA9IHN0YXRlO1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9TQ1JPTExfUkVTVE9SQVRJT04pIHtcbiAgICAgICAgICAgICAgICBpZiAobWFudWFsU2Nyb2xsUmVzdG9yYXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2lkeCAhPT0gaWR4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTbmFwc2hvdCBjdXJyZW50IHNjcm9sbCBwb3NpdGlvbjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnX19uZXh0X3Njcm9sbF8nICsgdGhpcy5faWR4LCBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHg6IHNlbGYucGFnZVhPZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHk6IHNlbGYucGFnZVlPZmZzZXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoICB7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBSZXN0b3JlIG9sZCBzY3JvbGwgcG9zaXRpb246XG4gICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHYgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdfX25leHRfc2Nyb2xsXycgKyBpZHgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmNlZFNjcm9sbCA9IEpTT04ucGFyc2Uodik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yY2VkU2Nyb2xsID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4OiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5OiAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX2lkeCA9IGlkeDtcbiAgICAgICAgICAgIGNvbnN0IHsgcGF0aG5hbWUgIH0gPSAoMCwgX3BhcnNlUmVsYXRpdmVVcmwpLnBhcnNlUmVsYXRpdmVVcmwodXJsKTtcbiAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBkb24ndCByZS1yZW5kZXIgb24gaW5pdGlhbCBsb2FkLFxuICAgICAgICAgICAgLy8gY2FuIGJlIGNhdXNlZCBieSBuYXZpZ2F0aW5nIGJhY2sgZnJvbSBhbiBleHRlcm5hbCBzaXRlXG4gICAgICAgICAgICBpZiAodGhpcy5pc1NzciAmJiBhcyA9PT0gdGhpcy5hc1BhdGggJiYgcGF0aG5hbWUgPT09IHRoaXMucGF0aG5hbWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBJZiB0aGUgZG93bnN0cmVhbSBhcHBsaWNhdGlvbiByZXR1cm5zIGZhbHN5LCByZXR1cm4uXG4gICAgICAgICAgICAvLyBUaGV5IHdpbGwgdGhlbiBiZSByZXNwb25zaWJsZSBmb3IgaGFuZGxpbmcgdGhlIGV2ZW50LlxuICAgICAgICAgICAgaWYgKHRoaXMuX2JwcyAmJiAhdGhpcy5fYnBzKHN0YXRlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY2hhbmdlKCdyZXBsYWNlU3RhdGUnLCB1cmwsIGFzLCBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgICAgIH0sIG9wdGlvbnMsIHtcbiAgICAgICAgICAgICAgICBzaGFsbG93OiBvcHRpb25zLnNoYWxsb3cgJiYgdGhpcy5fc2hhbGxvdyxcbiAgICAgICAgICAgICAgICBsb2NhbGU6IG9wdGlvbnMubG9jYWxlIHx8IHRoaXMuZGVmYXVsdExvY2FsZVxuICAgICAgICAgICAgfSksIGZvcmNlZFNjcm9sbCk7XG4gICAgICAgIH07XG4gICAgICAgIC8vIHJlcHJlc2VudHMgdGhlIGN1cnJlbnQgY29tcG9uZW50IGtleVxuICAgICAgICB0aGlzLnJvdXRlID0gKDAsIF9ub3JtYWxpemVUcmFpbGluZ1NsYXNoKS5yZW1vdmVQYXRoVHJhaWxpbmdTbGFzaChwYXRobmFtZSk7XG4gICAgICAgIC8vIHNldCB1cCB0aGUgY29tcG9uZW50IGNhY2hlIChieSByb3V0ZSBrZXlzKVxuICAgICAgICB0aGlzLmNvbXBvbmVudHMgPSB7XG4gICAgICAgIH07XG4gICAgICAgIC8vIFdlIHNob3VsZCBub3Qga2VlcCB0aGUgY2FjaGUsIGlmIHRoZXJlJ3MgYW4gZXJyb3JcbiAgICAgICAgLy8gT3RoZXJ3aXNlLCB0aGlzIGNhdXNlIGlzc3VlcyB3aGVuIHdoZW4gZ29pbmcgYmFjayBhbmRcbiAgICAgICAgLy8gY29tZSBhZ2FpbiB0byB0aGUgZXJyb3JlZCBwYWdlLlxuICAgICAgICBpZiAocGF0aG5hbWUgIT09ICcvX2Vycm9yJykge1xuICAgICAgICAgICAgdmFyIHJlZjtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50c1t0aGlzLnJvdXRlXSA9IHtcbiAgICAgICAgICAgICAgICBDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgaW5pdGlhbDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBwcm9wczogaW5pdGlhbFByb3BzLFxuICAgICAgICAgICAgICAgIGVycixcbiAgICAgICAgICAgICAgICBfX05fU1NHOiBpbml0aWFsUHJvcHMgJiYgaW5pdGlhbFByb3BzLl9fTl9TU0csXG4gICAgICAgICAgICAgICAgX19OX1NTUDogaW5pdGlhbFByb3BzICYmIGluaXRpYWxQcm9wcy5fX05fU1NQLFxuICAgICAgICAgICAgICAgIF9fTl9SU0M6ICEhKChyZWYgPSBDb21wb25lbnQpID09PSBudWxsIHx8IHJlZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVmLl9fbmV4dF9yc2NfXylcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb21wb25lbnRzWycvX2FwcCddID0ge1xuICAgICAgICAgICAgQ29tcG9uZW50OiBBcHAsXG4gICAgICAgICAgICBzdHlsZVNoZWV0czogW11cbiAgICAgICAgfTtcbiAgICAgICAgLy8gQmFja3dhcmRzIGNvbXBhdCBmb3IgUm91dGVyLnJvdXRlci5ldmVudHNcbiAgICAgICAgLy8gVE9ETzogU2hvdWxkIGJlIHJlbW92ZSB0aGUgZm9sbG93aW5nIG1ham9yIHZlcnNpb24gYXMgaXQgd2FzIG5ldmVyIGRvY3VtZW50ZWRcbiAgICAgICAgdGhpcy5ldmVudHMgPSBSb3V0ZXIuZXZlbnRzO1xuICAgICAgICB0aGlzLnBhZ2VMb2FkZXIgPSBwYWdlTG9hZGVyO1xuICAgICAgICB0aGlzLnBhdGhuYW1lID0gcGF0aG5hbWU7XG4gICAgICAgIHRoaXMucXVlcnkgPSBxdWVyeTtcbiAgICAgICAgLy8gaWYgYXV0byBwcmVyZW5kZXJlZCBhbmQgZHluYW1pYyByb3V0ZSB3YWl0IHRvIHVwZGF0ZSBhc1BhdGhcbiAgICAgICAgLy8gdW50aWwgYWZ0ZXIgbW91bnQgdG8gcHJldmVudCBoeWRyYXRpb24gbWlzbWF0Y2hcbiAgICAgICAgY29uc3QgYXV0b0V4cG9ydER5bmFtaWMgPSAoMCwgX2lzRHluYW1pYykuaXNEeW5hbWljUm91dGUocGF0aG5hbWUpICYmIHNlbGYuX19ORVhUX0RBVEFfXy5hdXRvRXhwb3J0O1xuICAgICAgICB0aGlzLmFzUGF0aCA9IGF1dG9FeHBvcnREeW5hbWljID8gcGF0aG5hbWUgOiBhcztcbiAgICAgICAgdGhpcy5iYXNlUGF0aCA9IGJhc2VQYXRoO1xuICAgICAgICB0aGlzLnN1YiA9IHN1YnNjcmlwdGlvbjtcbiAgICAgICAgdGhpcy5jbGMgPSBudWxsO1xuICAgICAgICB0aGlzLl93cmFwQXBwID0gd3JhcEFwcDtcbiAgICAgICAgLy8gbWFrZSBzdXJlIHRvIGlnbm9yZSBleHRyYSBwb3BTdGF0ZSBpbiBzYWZhcmkgb24gbmF2aWdhdGluZ1xuICAgICAgICAvLyBiYWNrIGZyb20gZXh0ZXJuYWwgc2l0ZVxuICAgICAgICB0aGlzLmlzU3NyID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5pc0ZhbGxiYWNrID0gaXNGYWxsYmFjaztcbiAgICAgICAgdGhpcy5pc1JlYWR5ID0gISEoc2VsZi5fX05FWFRfREFUQV9fLmdzc3AgfHwgc2VsZi5fX05FWFRfREFUQV9fLmdpcCB8fCBzZWxmLl9fTkVYVF9EQVRBX18uYXBwR2lwICYmICFzZWxmLl9fTkVYVF9EQVRBX18uZ3NwIHx8ICFhdXRvRXhwb3J0RHluYW1pYyAmJiAhc2VsZi5sb2NhdGlvbi5zZWFyY2ggJiYgIXByb2Nlc3MuZW52Ll9fTkVYVF9IQVNfUkVXUklURVMpO1xuICAgICAgICB0aGlzLmlzUHJldmlldyA9ICEhaXNQcmV2aWV3O1xuICAgICAgICB0aGlzLmlzTG9jYWxlRG9tYWluID0gZmFsc2U7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgICAgICAgICB0aGlzLmxvY2FsZSA9IGxvY2FsZTtcbiAgICAgICAgICAgIHRoaXMubG9jYWxlcyA9IGxvY2FsZXM7XG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRMb2NhbGUgPSBkZWZhdWx0TG9jYWxlO1xuICAgICAgICAgICAgdGhpcy5kb21haW5Mb2NhbGVzID0gZG9tYWluTG9jYWxlcztcbiAgICAgICAgICAgIHRoaXMuaXNMb2NhbGVEb21haW4gPSAhIWRldGVjdERvbWFpbkxvY2FsZShkb21haW5Mb2NhbGVzLCBzZWxmLmxvY2F0aW9uLmhvc3RuYW1lKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSBcImFzXCIgZG9lc24ndCBzdGFydCB3aXRoIGRvdWJsZSBzbGFzaGVzIG9yIGVsc2UgaXQgY2FuXG4gICAgICAgICAgICAvLyB0aHJvdyBhbiBlcnJvciBhcyBpdCdzIGNvbnNpZGVyZWQgaW52YWxpZFxuICAgICAgICAgICAgaWYgKGFzLnN1YnN0cigwLCAyKSAhPT0gJy8vJykge1xuICAgICAgICAgICAgICAgIC8vIGluIG9yZGVyIGZvciBgZS5zdGF0ZWAgdG8gd29yayBvbiB0aGUgYG9ucG9wc3RhdGVgIGV2ZW50XG4gICAgICAgICAgICAgICAgLy8gd2UgaGF2ZSB0byByZWdpc3RlciB0aGUgaW5pdGlhbCByb3V0ZSB1cG9uIGluaXRpYWxpemF0aW9uXG4gICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAgICAgbG9jYWxlXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBvcHRpb25zLl9zaG91bGRSZXNvbHZlSHJlZiA9IGFzICE9PSBwYXRobmFtZTtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZVN0YXRlKCdyZXBsYWNlU3RhdGUnLCAoMCwgX3V0aWxzKS5mb3JtYXRXaXRoVmFsaWRhdGlvbih7XG4gICAgICAgICAgICAgICAgICAgIHBhdGhuYW1lOiBhZGRCYXNlUGF0aChwYXRobmFtZSksXG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5XG4gICAgICAgICAgICAgICAgfSksICgwLCBfdXRpbHMpLmdldFVSTCgpLCBvcHRpb25zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwb3BzdGF0ZScsIHRoaXMub25Qb3BTdGF0ZSk7XG4gICAgICAgICAgICAvLyBlbmFibGUgY3VzdG9tIHNjcm9sbCByZXN0b3JhdGlvbiBoYW5kbGluZyB3aGVuIGF2YWlsYWJsZVxuICAgICAgICAgICAgLy8gb3RoZXJ3aXNlIGZhbGxiYWNrIHRvIGJyb3dzZXIncyBkZWZhdWx0IGhhbmRsaW5nXG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX1NDUk9MTF9SRVNUT1JBVElPTikge1xuICAgICAgICAgICAgICAgIGlmIChtYW51YWxTY3JvbGxSZXN0b3JhdGlvbikge1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuaGlzdG9yeS5zY3JvbGxSZXN0b3JhdGlvbiA9ICdtYW51YWwnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZWxvYWQoKSB7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgICB9XG4gICAgLyoqXG4gICAqIEdvIGJhY2sgaW4gaGlzdG9yeVxuICAgKi8gYmFjaygpIHtcbiAgICAgICAgd2luZG93Lmhpc3RvcnkuYmFjaygpO1xuICAgIH1cbiAgICAvKipcbiAgICogUGVyZm9ybXMgYSBgcHVzaFN0YXRlYCB3aXRoIGFyZ3VtZW50c1xuICAgKiBAcGFyYW0gdXJsIG9mIHRoZSByb3V0ZVxuICAgKiBAcGFyYW0gYXMgbWFza3MgYHVybGAgZm9yIHRoZSBicm93c2VyXG4gICAqIEBwYXJhbSBvcHRpb25zIG9iamVjdCB5b3UgY2FuIGRlZmluZSBgc2hhbGxvd2AgYW5kIG90aGVyIG9wdGlvbnNcbiAgICovIHB1c2godXJsLCBhcywgb3B0aW9ucyA9IHtcbiAgICB9KSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfU0NST0xMX1JFU1RPUkFUSU9OKSB7XG4gICAgICAgICAgICAvLyBUT0RPOiByZW1vdmUgaW4gdGhlIGZ1dHVyZSB3aGVuIHdlIHVwZGF0ZSBoaXN0b3J5IGJlZm9yZSByb3V0ZSBjaGFuZ2VcbiAgICAgICAgICAgIC8vIGlzIGNvbXBsZXRlLCBhcyB0aGUgcG9wc3RhdGUgZXZlbnQgc2hvdWxkIGhhbmRsZSB0aGlzIGNhcHR1cmUuXG4gICAgICAgICAgICBpZiAobWFudWFsU2Nyb2xsUmVzdG9yYXRpb24pIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAvLyBTbmFwc2hvdCBzY3JvbGwgcG9zaXRpb24gcmlnaHQgYmVmb3JlIG5hdmlnYXRpbmcgdG8gYSBuZXcgcGFnZTpcbiAgICAgICAgICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnX19uZXh0X3Njcm9sbF8nICsgdGhpcy5faWR4LCBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICB4OiBzZWxmLnBhZ2VYT2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgICAgICAgeTogc2VsZi5wYWdlWU9mZnNldFxuICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAge1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAoeyB1cmwgLCBhcyAgfSA9IHByZXBhcmVVcmxBcyh0aGlzLCB1cmwsIGFzKSk7XG4gICAgICAgIHJldHVybiB0aGlzLmNoYW5nZSgncHVzaFN0YXRlJywgdXJsLCBhcywgb3B0aW9ucyk7XG4gICAgfVxuICAgIC8qKlxuICAgKiBQZXJmb3JtcyBhIGByZXBsYWNlU3RhdGVgIHdpdGggYXJndW1lbnRzXG4gICAqIEBwYXJhbSB1cmwgb2YgdGhlIHJvdXRlXG4gICAqIEBwYXJhbSBhcyBtYXNrcyBgdXJsYCBmb3IgdGhlIGJyb3dzZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgb2JqZWN0IHlvdSBjYW4gZGVmaW5lIGBzaGFsbG93YCBhbmQgb3RoZXIgb3B0aW9uc1xuICAgKi8gcmVwbGFjZSh1cmwsIGFzLCBvcHRpb25zID0ge1xuICAgIH0pIHtcbiAgICAgICAgKHsgdXJsICwgYXMgIH0gPSBwcmVwYXJlVXJsQXModGhpcywgdXJsLCBhcykpO1xuICAgICAgICByZXR1cm4gdGhpcy5jaGFuZ2UoJ3JlcGxhY2VTdGF0ZScsIHVybCwgYXMsIG9wdGlvbnMpO1xuICAgIH1cbiAgICBhc3luYyBjaGFuZ2UobWV0aG9kLCB1cmwsIGFzLCBvcHRpb25zLCBmb3JjZWRTY3JvbGwpIHtcbiAgICAgICAgaWYgKCFpc0xvY2FsVVJMKHVybCkpIHtcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNob3VsZFJlc29sdmVIcmVmID0gb3B0aW9ucy5faCB8fCBvcHRpb25zLl9zaG91bGRSZXNvbHZlSHJlZiB8fCBwYXRoTm9RdWVyeUhhc2godXJsKSA9PT0gcGF0aE5vUXVlcnlIYXNoKGFzKTtcbiAgICAgICAgLy8gZm9yIHN0YXRpYyBwYWdlcyB3aXRoIHF1ZXJ5IHBhcmFtcyBpbiB0aGUgVVJMIHdlIGRlbGF5XG4gICAgICAgIC8vIG1hcmtpbmcgdGhlIHJvdXRlciByZWFkeSB1bnRpbCBhZnRlciB0aGUgcXVlcnkgaXMgdXBkYXRlZFxuICAgICAgICBpZiAob3B0aW9ucy5faCkge1xuICAgICAgICAgICAgdGhpcy5pc1JlYWR5ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwcmV2TG9jYWxlID0gdGhpcy5sb2NhbGU7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgICAgICAgICB0aGlzLmxvY2FsZSA9IG9wdGlvbnMubG9jYWxlID09PSBmYWxzZSA/IHRoaXMuZGVmYXVsdExvY2FsZSA6IG9wdGlvbnMubG9jYWxlIHx8IHRoaXMubG9jYWxlO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLmxvY2FsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICBvcHRpb25zLmxvY2FsZSA9IHRoaXMubG9jYWxlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgcGFyc2VkQXMgPSAoMCwgX3BhcnNlUmVsYXRpdmVVcmwpLnBhcnNlUmVsYXRpdmVVcmwoaGFzQmFzZVBhdGgoYXMpID8gZGVsQmFzZVBhdGgoYXMpIDogYXMpO1xuICAgICAgICAgICAgY29uc3QgbG9jYWxlUGF0aFJlc3VsdCA9ICgwLCBfbm9ybWFsaXplTG9jYWxlUGF0aCkubm9ybWFsaXplTG9jYWxlUGF0aChwYXJzZWRBcy5wYXRobmFtZSwgdGhpcy5sb2NhbGVzKTtcbiAgICAgICAgICAgIGlmIChsb2NhbGVQYXRoUmVzdWx0LmRldGVjdGVkTG9jYWxlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2NhbGUgPSBsb2NhbGVQYXRoUmVzdWx0LmRldGVjdGVkTG9jYWxlO1xuICAgICAgICAgICAgICAgIHBhcnNlZEFzLnBhdGhuYW1lID0gYWRkQmFzZVBhdGgocGFyc2VkQXMucGF0aG5hbWUpO1xuICAgICAgICAgICAgICAgIGFzID0gKDAsIF91dGlscykuZm9ybWF0V2l0aFZhbGlkYXRpb24ocGFyc2VkQXMpO1xuICAgICAgICAgICAgICAgIHVybCA9IGFkZEJhc2VQYXRoKCgwLCBfbm9ybWFsaXplTG9jYWxlUGF0aCkubm9ybWFsaXplTG9jYWxlUGF0aChoYXNCYXNlUGF0aCh1cmwpID8gZGVsQmFzZVBhdGgodXJsKSA6IHVybCwgdGhpcy5sb2NhbGVzKS5wYXRobmFtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgZGlkTmF2aWdhdGUgPSBmYWxzZTtcbiAgICAgICAgICAgIC8vIHdlIG5lZWQgdG8gd3JhcCB0aGlzIGluIHRoZSBlbnYgY2hlY2sgYWdhaW4gc2luY2UgcmVnZW5lcmF0b3IgcnVudGltZVxuICAgICAgICAgICAgLy8gbW92ZXMgdGhpcyBvbiBpdHMgb3duIGR1ZSB0byB0aGUgcmV0dXJuXG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0kxOE5fU1VQUE9SVCkge1xuICAgICAgICAgICAgICAgIHZhciByZWY7XG4gICAgICAgICAgICAgICAgLy8gaWYgdGhlIGxvY2FsZSBpc24ndCBjb25maWd1cmVkIGhhcmQgbmF2aWdhdGUgdG8gc2hvdyA0MDQgcGFnZVxuICAgICAgICAgICAgICAgIGlmICghKChyZWYgPSB0aGlzLmxvY2FsZXMpID09PSBudWxsIHx8IHJlZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVmLmluY2x1ZGVzKHRoaXMubG9jYWxlKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VkQXMucGF0aG5hbWUgPSBhZGRMb2NhbGUocGFyc2VkQXMucGF0aG5hbWUsIHRoaXMubG9jYWxlKTtcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSAoMCwgX3V0aWxzKS5mb3JtYXRXaXRoVmFsaWRhdGlvbihwYXJzZWRBcyk7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgd2FzIHByZXZpb3VzbHkgYSByZXR1cm4gYnV0IHdhcyByZW1vdmVkIGluIGZhdm9yXG4gICAgICAgICAgICAgICAgICAgIC8vIG9mIGJldHRlciBkZWFkIGNvZGUgZWxpbWluYXRpb24gd2l0aCByZWdlbmVyYXRvciBydW50aW1lXG4gICAgICAgICAgICAgICAgICAgIGRpZE5hdmlnYXRlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBkZXRlY3RlZERvbWFpbiA9IGRldGVjdERvbWFpbkxvY2FsZSh0aGlzLmRvbWFpbkxvY2FsZXMsIHVuZGVmaW5lZCwgdGhpcy5sb2NhbGUpO1xuICAgICAgICAgICAgLy8gd2UgbmVlZCB0byB3cmFwIHRoaXMgaW4gdGhlIGVudiBjaGVjayBhZ2FpbiBzaW5jZSByZWdlbmVyYXRvciBydW50aW1lXG4gICAgICAgICAgICAvLyBtb3ZlcyB0aGlzIG9uIGl0cyBvd24gZHVlIHRvIHRoZSByZXR1cm5cbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgICAgICAgICAgICAgLy8gaWYgd2UgYXJlIG5hdmlnYXRpbmcgdG8gYSBkb21haW4gbG9jYWxlIGVuc3VyZSB3ZSByZWRpcmVjdCB0byB0aGVcbiAgICAgICAgICAgICAgICAvLyBjb3JyZWN0IGRvbWFpblxuICAgICAgICAgICAgICAgIGlmICghZGlkTmF2aWdhdGUgJiYgZGV0ZWN0ZWREb21haW4gJiYgdGhpcy5pc0xvY2FsZURvbWFpbiAmJiBzZWxmLmxvY2F0aW9uLmhvc3RuYW1lICE9PSBkZXRlY3RlZERvbWFpbi5kb21haW4pIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYXNOb0Jhc2VQYXRoID0gZGVsQmFzZVBhdGgoYXMpO1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGBodHRwJHtkZXRlY3RlZERvbWFpbi5odHRwID8gJycgOiAncyd9Oi8vJHtkZXRlY3RlZERvbWFpbi5kb21haW59JHthZGRCYXNlUGF0aChgJHt0aGlzLmxvY2FsZSA9PT0gZGV0ZWN0ZWREb21haW4uZGVmYXVsdExvY2FsZSA/ICcnIDogYC8ke3RoaXMubG9jYWxlfWB9JHthc05vQmFzZVBhdGggPT09ICcvJyA/ICcnIDogYXNOb0Jhc2VQYXRofWAgfHwgJy8nKX1gO1xuICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIHdhcyBwcmV2aW91c2x5IGEgcmV0dXJuIGJ1dCB3YXMgcmVtb3ZlZCBpbiBmYXZvclxuICAgICAgICAgICAgICAgICAgICAvLyBvZiBiZXR0ZXIgZGVhZCBjb2RlIGVsaW1pbmF0aW9uIHdpdGggcmVnZW5lcmF0b3IgcnVudGltZVxuICAgICAgICAgICAgICAgICAgICBkaWROYXZpZ2F0ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRpZE5hdmlnYXRlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKCgpPT57XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFvcHRpb25zLl9oKSB7XG4gICAgICAgICAgICB0aGlzLmlzU3NyID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgLy8gbWFya2luZyByb3V0ZSBjaGFuZ2VzIGFzIGEgbmF2aWdhdGlvbiBzdGFydCBlbnRyeVxuICAgICAgICBpZiAoX3V0aWxzLlNUKSB7XG4gICAgICAgICAgICBwZXJmb3JtYW5jZS5tYXJrKCdyb3V0ZUNoYW5nZScpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgc2hhbGxvdyA9ZmFsc2UgIH0gPSBvcHRpb25zO1xuICAgICAgICBjb25zdCByb3V0ZVByb3BzID0ge1xuICAgICAgICAgICAgc2hhbGxvd1xuICAgICAgICB9O1xuICAgICAgICBpZiAodGhpcy5faW5GbGlnaHRSb3V0ZSkge1xuICAgICAgICAgICAgdGhpcy5hYm9ydENvbXBvbmVudExvYWQodGhpcy5faW5GbGlnaHRSb3V0ZSwgcm91dGVQcm9wcyk7XG4gICAgICAgIH1cbiAgICAgICAgYXMgPSBhZGRCYXNlUGF0aChhZGRMb2NhbGUoaGFzQmFzZVBhdGgoYXMpID8gZGVsQmFzZVBhdGgoYXMpIDogYXMsIG9wdGlvbnMubG9jYWxlLCB0aGlzLmRlZmF1bHRMb2NhbGUpKTtcbiAgICAgICAgY29uc3QgY2xlYW5lZEFzID0gZGVsTG9jYWxlKGhhc0Jhc2VQYXRoKGFzKSA/IGRlbEJhc2VQYXRoKGFzKSA6IGFzLCB0aGlzLmxvY2FsZSk7XG4gICAgICAgIHRoaXMuX2luRmxpZ2h0Um91dGUgPSBhcztcbiAgICAgICAgbGV0IGxvY2FsZUNoYW5nZSA9IHByZXZMb2NhbGUgIT09IHRoaXMubG9jYWxlO1xuICAgICAgICAvLyBJZiB0aGUgdXJsIGNoYW5nZSBpcyBvbmx5IHJlbGF0ZWQgdG8gYSBoYXNoIGNoYW5nZVxuICAgICAgICAvLyBXZSBzaG91bGQgbm90IHByb2NlZWQuIFdlIHNob3VsZCBvbmx5IGNoYW5nZSB0aGUgc3RhdGUuXG4gICAgICAgIC8vIFdBUk5JTkc6IGBfaGAgaXMgYW4gaW50ZXJuYWwgb3B0aW9uIGZvciBoYW5kaW5nIE5leHQuanMgY2xpZW50LXNpZGVcbiAgICAgICAgLy8gaHlkcmF0aW9uLiBZb3VyIGFwcCBzaG91bGQgX25ldmVyXyB1c2UgdGhpcyBwcm9wZXJ0eS4gSXQgbWF5IGNoYW5nZSBhdFxuICAgICAgICAvLyBhbnkgdGltZSB3aXRob3V0IG5vdGljZS5cbiAgICAgICAgaWYgKCFvcHRpb25zLl9oICYmIHRoaXMub25seUFIYXNoQ2hhbmdlKGNsZWFuZWRBcykgJiYgIWxvY2FsZUNoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5hc1BhdGggPSBjbGVhbmVkQXM7XG4gICAgICAgICAgICBSb3V0ZXIuZXZlbnRzLmVtaXQoJ2hhc2hDaGFuZ2VTdGFydCcsIGFzLCByb3V0ZVByb3BzKTtcbiAgICAgICAgICAgIC8vIFRPRE86IGRvIHdlIG5lZWQgdGhlIHJlc29sdmVkIGhyZWYgd2hlbiBvbmx5IGEgaGFzaCBjaGFuZ2U/XG4gICAgICAgICAgICB0aGlzLmNoYW5nZVN0YXRlKG1ldGhvZCwgdXJsLCBhcywgb3B0aW9ucyk7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbFRvSGFzaChjbGVhbmVkQXMpO1xuICAgICAgICAgICAgdGhpcy5ub3RpZnkodGhpcy5jb21wb25lbnRzW3RoaXMucm91dGVdLCBudWxsKTtcbiAgICAgICAgICAgIFJvdXRlci5ldmVudHMuZW1pdCgnaGFzaENoYW5nZUNvbXBsZXRlJywgYXMsIHJvdXRlUHJvcHMpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHBhcnNlZCA9ICgwLCBfcGFyc2VSZWxhdGl2ZVVybCkucGFyc2VSZWxhdGl2ZVVybCh1cmwpO1xuICAgICAgICBsZXQgeyBwYXRobmFtZSAsIHF1ZXJ5ICB9ID0gcGFyc2VkO1xuICAgICAgICAvLyBUaGUgYnVpbGQgbWFuaWZlc3QgbmVlZHMgdG8gYmUgbG9hZGVkIGJlZm9yZSBhdXRvLXN0YXRpYyBkeW5hbWljIHBhZ2VzXG4gICAgICAgIC8vIGdldCB0aGVpciBxdWVyeSBwYXJhbWV0ZXJzIHRvIGFsbG93IGVuc3VyaW5nIHRoZXkgY2FuIGJlIHBhcnNlZCBwcm9wZXJseVxuICAgICAgICAvLyB3aGVuIHJld3JpdHRlbiB0b1xuICAgICAgICBsZXQgcGFnZXMsIHJld3JpdGVzO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgW3BhZ2VzLCB7IF9fcmV3cml0ZXM6IHJld3JpdGVzICB9XSA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgICAgICAgICAgICB0aGlzLnBhZ2VMb2FkZXIuZ2V0UGFnZUxpc3QoKSxcbiAgICAgICAgICAgICAgICAoMCwgX3JvdXRlTG9hZGVyKS5nZXRDbGllbnRCdWlsZE1hbmlmZXN0KCksXG4gICAgICAgICAgICAgICAgdGhpcy5wYWdlTG9hZGVyLmdldE1pZGRsZXdhcmVMaXN0KCksIFxuICAgICAgICAgICAgXSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgLy8gSWYgd2UgZmFpbCB0byByZXNvbHZlIHRoZSBwYWdlIGxpc3Qgb3IgY2xpZW50LWJ1aWxkIG1hbmlmZXN0LCB3ZSBtdXN0XG4gICAgICAgICAgICAvLyBkbyBhIHNlcnZlci1zaWRlIHRyYW5zaXRpb246XG4gICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGFzO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIC8vIElmIGFza2VkIHRvIGNoYW5nZSB0aGUgY3VycmVudCBVUkwgd2Ugc2hvdWxkIHJlbG9hZCB0aGUgY3VycmVudCBwYWdlXG4gICAgICAgIC8vIChub3QgbG9jYXRpb24ucmVsb2FkKCkgYnV0IHJlbG9hZCBnZXRJbml0aWFsUHJvcHMgYW5kIG90aGVyIE5leHQuanMgc3R1ZmZzKVxuICAgICAgICAvLyBXZSBhbHNvIG5lZWQgdG8gc2V0IHRoZSBtZXRob2QgPSByZXBsYWNlU3RhdGUgYWx3YXlzXG4gICAgICAgIC8vIGFzIHRoaXMgc2hvdWxkIG5vdCBnbyBpbnRvIHRoZSBoaXN0b3J5IChUaGF0J3MgaG93IGJyb3dzZXJzIHdvcmspXG4gICAgICAgIC8vIFdlIHNob3VsZCBjb21wYXJlIHRoZSBuZXcgYXNQYXRoIHRvIHRoZSBjdXJyZW50IGFzUGF0aCwgbm90IHRoZSB1cmxcbiAgICAgICAgaWYgKCF0aGlzLnVybElzTmV3KGNsZWFuZWRBcykgJiYgIWxvY2FsZUNoYW5nZSkge1xuICAgICAgICAgICAgbWV0aG9kID0gJ3JlcGxhY2VTdGF0ZSc7XG4gICAgICAgIH1cbiAgICAgICAgLy8gd2UgbmVlZCB0byByZXNvbHZlIHRoZSBhcyB2YWx1ZSB1c2luZyByZXdyaXRlcyBmb3IgZHluYW1pYyBTU0dcbiAgICAgICAgLy8gcGFnZXMgdG8gYWxsb3cgYnVpbGRpbmcgdGhlIGRhdGEgVVJMIGNvcnJlY3RseVxuICAgICAgICBsZXQgcmVzb2x2ZWRBcyA9IGFzO1xuICAgICAgICAvLyB1cmwgYW5kIGFzIHNob3VsZCBhbHdheXMgYmUgcHJlZml4ZWQgd2l0aCBiYXNlUGF0aCBieSB0aGlzXG4gICAgICAgIC8vIHBvaW50IGJ5IGVpdGhlciBuZXh0L2xpbmsgb3Igcm91dGVyLnB1c2gvcmVwbGFjZSBzbyBzdHJpcCB0aGVcbiAgICAgICAgLy8gYmFzZVBhdGggZnJvbSB0aGUgcGF0aG5hbWUgdG8gbWF0Y2ggdGhlIHBhZ2VzIGRpciAxLXRvLTFcbiAgICAgICAgcGF0aG5hbWUgPSBwYXRobmFtZSA/ICgwLCBfbm9ybWFsaXplVHJhaWxpbmdTbGFzaCkucmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2goZGVsQmFzZVBhdGgocGF0aG5hbWUpKSA6IHBhdGhuYW1lO1xuICAgICAgICBpZiAoc2hvdWxkUmVzb2x2ZUhyZWYgJiYgcGF0aG5hbWUgIT09ICcvX2Vycm9yJykge1xuICAgICAgICAgICAgb3B0aW9ucy5fc2hvdWxkUmVzb2x2ZUhyZWYgPSB0cnVlO1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9IQVNfUkVXUklURVMgJiYgYXMuc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmV3cml0ZXNSZXN1bHQgPSAoMCwgX3Jlc29sdmVSZXdyaXRlcykuZGVmYXVsdChhZGRCYXNlUGF0aChhZGRMb2NhbGUoY2xlYW5lZEFzLCB0aGlzLmxvY2FsZSkpLCBwYWdlcywgcmV3cml0ZXMsIHF1ZXJ5LCAocCk9PnJlc29sdmVEeW5hbWljUm91dGUocCwgcGFnZXMpXG4gICAgICAgICAgICAgICAgLCB0aGlzLmxvY2FsZXMpO1xuICAgICAgICAgICAgICAgIHJlc29sdmVkQXMgPSByZXdyaXRlc1Jlc3VsdC5hc1BhdGg7XG4gICAgICAgICAgICAgICAgaWYgKHJld3JpdGVzUmVzdWx0Lm1hdGNoZWRQYWdlICYmIHJld3JpdGVzUmVzdWx0LnJlc29sdmVkSHJlZikge1xuICAgICAgICAgICAgICAgICAgICAvLyBpZiB0aGlzIGRpcmVjdGx5IG1hdGNoZXMgYSBwYWdlIHdlIG5lZWQgdG8gdXBkYXRlIHRoZSBocmVmIHRvXG4gICAgICAgICAgICAgICAgICAgIC8vIGFsbG93IHRoZSBjb3JyZWN0IHBhZ2UgY2h1bmsgdG8gYmUgbG9hZGVkXG4gICAgICAgICAgICAgICAgICAgIHBhdGhuYW1lID0gcmV3cml0ZXNSZXN1bHQucmVzb2x2ZWRIcmVmO1xuICAgICAgICAgICAgICAgICAgICBwYXJzZWQucGF0aG5hbWUgPSBhZGRCYXNlUGF0aChwYXRobmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIHVybCA9ICgwLCBfdXRpbHMpLmZvcm1hdFdpdGhWYWxpZGF0aW9uKHBhcnNlZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwYXJzZWQucGF0aG5hbWUgPSByZXNvbHZlRHluYW1pY1JvdXRlKHBhdGhuYW1lLCBwYWdlcyk7XG4gICAgICAgICAgICAgICAgaWYgKHBhcnNlZC5wYXRobmFtZSAhPT0gcGF0aG5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWUgPSBwYXJzZWQucGF0aG5hbWU7XG4gICAgICAgICAgICAgICAgICAgIHBhcnNlZC5wYXRobmFtZSA9IGFkZEJhc2VQYXRoKHBhdGhuYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdXJsID0gKDAsIF91dGlscykuZm9ybWF0V2l0aFZhbGlkYXRpb24ocGFyc2VkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc0xvY2FsVVJMKGFzKSkge1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgaHJlZjogXCIke3VybH1cIiBhbmQgYXM6IFwiJHthc31cIiwgcmVjZWl2ZWQgcmVsYXRpdmUgaHJlZiBhbmQgZXh0ZXJuYWwgYXNgICsgYFxcblNlZSBtb3JlIGluZm86IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2ludmFsaWQtcmVsYXRpdmUtdXJsLWV4dGVybmFsLWFzYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGFzO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJlc29sdmVkQXMgPSBkZWxMb2NhbGUoZGVsQmFzZVBhdGgocmVzb2x2ZWRBcyksIHRoaXMubG9jYWxlKTtcbiAgICAgICAgY29uc3QgZWZmZWN0ID0gYXdhaXQgdGhpcy5fcHJlZmxpZ2h0UmVxdWVzdCh7XG4gICAgICAgICAgICBhcyxcbiAgICAgICAgICAgIGNhY2hlOiBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nLFxuICAgICAgICAgICAgcGFnZXMsXG4gICAgICAgICAgICBwYXRobmFtZSxcbiAgICAgICAgICAgIHF1ZXJ5XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZWZmZWN0LnR5cGUgPT09ICdyZXdyaXRlJykge1xuICAgICAgICAgICAgcXVlcnkgPSB7XG4gICAgICAgICAgICAgICAgLi4ucXVlcnksXG4gICAgICAgICAgICAgICAgLi4uZWZmZWN0LnBhcnNlZEFzLnF1ZXJ5XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmVzb2x2ZWRBcyA9IGVmZmVjdC5hc1BhdGg7XG4gICAgICAgICAgICBwYXRobmFtZSA9IGVmZmVjdC5yZXNvbHZlZEhyZWY7XG4gICAgICAgICAgICBwYXJzZWQucGF0aG5hbWUgPSBlZmZlY3QucmVzb2x2ZWRIcmVmO1xuICAgICAgICAgICAgdXJsID0gKDAsIF91dGlscykuZm9ybWF0V2l0aFZhbGlkYXRpb24ocGFyc2VkKTtcbiAgICAgICAgfSBlbHNlIGlmIChlZmZlY3QudHlwZSA9PT0gJ3JlZGlyZWN0JyAmJiBlZmZlY3QubmV3QXMpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNoYW5nZShtZXRob2QsIGVmZmVjdC5uZXdVcmwsIGVmZmVjdC5uZXdBcywgb3B0aW9ucyk7XG4gICAgICAgIH0gZWxzZSBpZiAoZWZmZWN0LnR5cGUgPT09ICdyZWRpcmVjdCcgJiYgZWZmZWN0LmRlc3RpbmF0aW9uKSB7XG4gICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGVmZmVjdC5kZXN0aW5hdGlvbjtcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgoKT0+e1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAoZWZmZWN0LnR5cGUgPT09ICdyZWZyZXNoJykge1xuICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBhcztcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgoKT0+e1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgcm91dGUgPSAoMCwgX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2gpLnJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoKHBhdGhuYW1lKTtcbiAgICAgICAgaWYgKCgwLCBfaXNEeW5hbWljKS5pc0R5bmFtaWNSb3V0ZShyb3V0ZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcnNlZEFzID0gKDAsIF9wYXJzZVJlbGF0aXZlVXJsKS5wYXJzZVJlbGF0aXZlVXJsKHJlc29sdmVkQXMpO1xuICAgICAgICAgICAgY29uc3QgYXNQYXRobmFtZSA9IHBhcnNlZEFzLnBhdGhuYW1lO1xuICAgICAgICAgICAgY29uc3Qgcm91dGVSZWdleCA9ICgwLCBfcm91dGVSZWdleCkuZ2V0Um91dGVSZWdleChyb3V0ZSk7XG4gICAgICAgICAgICBjb25zdCByb3V0ZU1hdGNoID0gKDAsIF9yb3V0ZU1hdGNoZXIpLmdldFJvdXRlTWF0Y2hlcihyb3V0ZVJlZ2V4KShhc1BhdGhuYW1lKTtcbiAgICAgICAgICAgIGNvbnN0IHNob3VsZEludGVycG9sYXRlID0gcm91dGUgPT09IGFzUGF0aG5hbWU7XG4gICAgICAgICAgICBjb25zdCBpbnRlcnBvbGF0ZWRBcyA9IHNob3VsZEludGVycG9sYXRlID8gaW50ZXJwb2xhdGVBcyhyb3V0ZSwgYXNQYXRobmFtZSwgcXVlcnkpIDoge1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmICghcm91dGVNYXRjaCB8fCBzaG91bGRJbnRlcnBvbGF0ZSAmJiAhaW50ZXJwb2xhdGVkQXMucmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWlzc2luZ1BhcmFtcyA9IE9iamVjdC5rZXlzKHJvdXRlUmVnZXguZ3JvdXBzKS5maWx0ZXIoKHBhcmFtKT0+IXF1ZXJ5W3BhcmFtXVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgaWYgKG1pc3NpbmdQYXJhbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGAke3Nob3VsZEludGVycG9sYXRlID8gYEludGVycG9sYXRpbmcgaHJlZmAgOiBgTWlzbWF0Y2hpbmcgXFxgYXNcXGAgYW5kIFxcYGhyZWZcXGBgfSBmYWlsZWQgdG8gbWFudWFsbHkgcHJvdmlkZSBgICsgYHRoZSBwYXJhbXM6ICR7bWlzc2luZ1BhcmFtcy5qb2luKCcsICcpfSBpbiB0aGUgXFxgaHJlZlxcYCdzIFxcYHF1ZXJ5XFxgYCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKChzaG91bGRJbnRlcnBvbGF0ZSA/IGBUaGUgcHJvdmlkZWQgXFxgaHJlZlxcYCAoJHt1cmx9KSB2YWx1ZSBpcyBtaXNzaW5nIHF1ZXJ5IHZhbHVlcyAoJHttaXNzaW5nUGFyYW1zLmpvaW4oJywgJyl9KSB0byBiZSBpbnRlcnBvbGF0ZWQgcHJvcGVybHkuIGAgOiBgVGhlIHByb3ZpZGVkIFxcYGFzXFxgIHZhbHVlICgke2FzUGF0aG5hbWV9KSBpcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgXFxgaHJlZlxcYCB2YWx1ZSAoJHtyb3V0ZX0pLiBgKSArIGBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzLyR7c2hvdWxkSW50ZXJwb2xhdGUgPyAnaHJlZi1pbnRlcnBvbGF0aW9uLWZhaWxlZCcgOiAnaW5jb21wYXRpYmxlLWhyZWYtYXMnfWApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoc2hvdWxkSW50ZXJwb2xhdGUpIHtcbiAgICAgICAgICAgICAgICBhcyA9ICgwLCBfdXRpbHMpLmZvcm1hdFdpdGhWYWxpZGF0aW9uKE9iamVjdC5hc3NpZ24oe1xuICAgICAgICAgICAgICAgIH0sIHBhcnNlZEFzLCB7XG4gICAgICAgICAgICAgICAgICAgIHBhdGhuYW1lOiBpbnRlcnBvbGF0ZWRBcy5yZXN1bHQsXG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5OiBvbWl0UGFybXNGcm9tUXVlcnkocXVlcnksIGludGVycG9sYXRlZEFzLnBhcmFtcylcbiAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIE1lcmdlIHBhcmFtcyBpbnRvIGBxdWVyeWAsIG92ZXJ3cml0aW5nIGFueSBzcGVjaWZpZWQgaW4gc2VhcmNoXG4gICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihxdWVyeSwgcm91dGVNYXRjaCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgUm91dGVyLmV2ZW50cy5lbWl0KCdyb3V0ZUNoYW5nZVN0YXJ0JywgYXMsIHJvdXRlUHJvcHMpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdmFyIHJlZiwgcmVmMTtcbiAgICAgICAgICAgIGxldCByb3V0ZUluZm8gPSBhd2FpdCB0aGlzLmdldFJvdXRlSW5mbyhyb3V0ZSwgcGF0aG5hbWUsIHF1ZXJ5LCBhcywgcmVzb2x2ZWRBcywgcm91dGVQcm9wcyk7XG4gICAgICAgICAgICBsZXQgeyBlcnJvciAsIHByb3BzICwgX19OX1NTRyAsIF9fTl9TU1AgIH0gPSByb3V0ZUluZm87XG4gICAgICAgICAgICAvLyBoYW5kbGUgcmVkaXJlY3Qgb24gY2xpZW50LXRyYW5zaXRpb25cbiAgICAgICAgICAgIGlmICgoX19OX1NTRyB8fCBfX05fU1NQKSAmJiBwcm9wcykge1xuICAgICAgICAgICAgICAgIGlmIChwcm9wcy5wYWdlUHJvcHMgJiYgcHJvcHMucGFnZVByb3BzLl9fTl9SRURJUkVDVCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkZXN0aW5hdGlvbiA9IHByb3BzLnBhZ2VQcm9wcy5fX05fUkVESVJFQ1Q7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNoZWNrIGlmIGRlc3RpbmF0aW9uIGlzIGludGVybmFsIChyZXNvbHZlcyB0byBhIHBhZ2UpIGFuZCBhdHRlbXB0XG4gICAgICAgICAgICAgICAgICAgIC8vIGNsaWVudC1uYXZpZ2F0aW9uIGlmIGl0IGlzIGZhbGxpbmcgYmFjayB0byBoYXJkIG5hdmlnYXRpb24gaWZcbiAgICAgICAgICAgICAgICAgICAgLy8gaXQncyBub3RcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRlc3RpbmF0aW9uLnN0YXJ0c1dpdGgoJy8nKSAmJiBwcm9wcy5wYWdlUHJvcHMuX19OX1JFRElSRUNUX0JBU0VfUEFUSCAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcnNlZEhyZWYgPSAoMCwgX3BhcnNlUmVsYXRpdmVVcmwpLnBhcnNlUmVsYXRpdmVVcmwoZGVzdGluYXRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VkSHJlZi5wYXRobmFtZSA9IHJlc29sdmVEeW5hbWljUm91dGUocGFyc2VkSHJlZi5wYXRobmFtZSwgcGFnZXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyB1cmw6IG5ld1VybCAsIGFzOiBuZXdBcyAgfSA9IHByZXBhcmVVcmxBcyh0aGlzLCBkZXN0aW5hdGlvbiwgZGVzdGluYXRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2hhbmdlKG1ldGhvZCwgbmV3VXJsLCBuZXdBcywgb3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBkZXN0aW5hdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKCgpPT57XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmlzUHJldmlldyA9ICEhcHJvcHMuX19OX1BSRVZJRVc7XG4gICAgICAgICAgICAgICAgLy8gaGFuZGxlIFNTRyBkYXRhIDQwNFxuICAgICAgICAgICAgICAgIGlmIChwcm9wcy5ub3RGb3VuZCA9PT0gU1NHX0RBVEFfTk9UX0ZPVU5EKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBub3RGb3VuZFJvdXRlO1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5mZXRjaENvbXBvbmVudCgnLzQwNCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbm90Rm91bmRSb3V0ZSA9ICcvNDA0JztcbiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoXykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbm90Rm91bmRSb3V0ZSA9ICcvX2Vycm9yJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByb3V0ZUluZm8gPSBhd2FpdCB0aGlzLmdldFJvdXRlSW5mbyhub3RGb3VuZFJvdXRlLCBub3RGb3VuZFJvdXRlLCBxdWVyeSwgYXMsIHJlc29sdmVkQXMsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNoYWxsb3c6IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFJvdXRlci5ldmVudHMuZW1pdCgnYmVmb3JlSGlzdG9yeUNoYW5nZScsIGFzLCByb3V0ZVByb3BzKTtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlU3RhdGUobWV0aG9kLCB1cmwsIGFzLCBvcHRpb25zKTtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLl9oICYmIHBhdGhuYW1lID09PSAnL19lcnJvcicgJiYgKChyZWYgPSBzZWxmLl9fTkVYVF9EQVRBX18ucHJvcHMpID09PSBudWxsIHx8IHJlZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogKHJlZjEgPSByZWYucGFnZVByb3BzKSA9PT0gbnVsbCB8fCByZWYxID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZWYxLnN0YXR1c0NvZGUpID09PSA1MDAgJiYgKHByb3BzID09PSBudWxsIHx8IHByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwcm9wcy5wYWdlUHJvcHMpKSB7XG4gICAgICAgICAgICAgICAgLy8gZW5zdXJlIHN0YXR1c0NvZGUgaXMgc3RpbGwgY29ycmVjdCBmb3Igc3RhdGljIDUwMCBwYWdlXG4gICAgICAgICAgICAgICAgLy8gd2hlbiB1cGRhdGluZyBxdWVyeSBpbmZvcm1hdGlvblxuICAgICAgICAgICAgICAgIHByb3BzLnBhZ2VQcm9wcy5zdGF0dXNDb2RlID0gNTAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gc2hhbGxvdyByb3V0aW5nIGlzIG9ubHkgYWxsb3dlZCBmb3Igc2FtZSBwYWdlIFVSTCBjaGFuZ2VzLlxuICAgICAgICAgICAgY29uc3QgaXNWYWxpZFNoYWxsb3dSb3V0ZSA9IG9wdGlvbnMuc2hhbGxvdyAmJiB0aGlzLnJvdXRlID09PSByb3V0ZTtcbiAgICAgICAgICAgIHZhciBfc2Nyb2xsO1xuICAgICAgICAgICAgY29uc3Qgc2hvdWxkU2Nyb2xsID0gKF9zY3JvbGwgPSBvcHRpb25zLnNjcm9sbCkgIT09IG51bGwgJiYgX3Njcm9sbCAhPT0gdm9pZCAwID8gX3Njcm9sbCA6ICFpc1ZhbGlkU2hhbGxvd1JvdXRlO1xuICAgICAgICAgICAgY29uc3QgcmVzZXRTY3JvbGwgPSBzaG91bGRTY3JvbGwgPyB7XG4gICAgICAgICAgICAgICAgeDogMCxcbiAgICAgICAgICAgICAgICB5OiAwXG4gICAgICAgICAgICB9IDogbnVsbDtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuc2V0KHJvdXRlLCBwYXRobmFtZSwgcXVlcnksIGNsZWFuZWRBcywgcm91dGVJbmZvLCBmb3JjZWRTY3JvbGwgIT09IG51bGwgJiYgZm9yY2VkU2Nyb2xsICE9PSB2b2lkIDAgPyBmb3JjZWRTY3JvbGwgOiByZXNldFNjcm9sbCkuY2F0Y2goKGUpPT57XG4gICAgICAgICAgICAgICAgaWYgKGUuY2FuY2VsbGVkKSBlcnJvciA9IGVycm9yIHx8IGU7XG4gICAgICAgICAgICAgICAgZWxzZSB0aHJvdyBlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBSb3V0ZXIuZXZlbnRzLmVtaXQoJ3JvdXRlQ2hhbmdlRXJyb3InLCBlcnJvciwgY2xlYW5lZEFzLCByb3V0ZVByb3BzKTtcbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubG9jYWxlKSB7XG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5sYW5nID0gdGhpcy5sb2NhbGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgUm91dGVyLmV2ZW50cy5lbWl0KCdyb3V0ZUNoYW5nZUNvbXBsZXRlJywgYXMsIHJvdXRlUHJvcHMpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gY2F0Y2ggKGVycjEpIHtcbiAgICAgICAgICAgIGlmICgoMCwgX2lzRXJyb3IpLmRlZmF1bHQoZXJyMSkgJiYgZXJyMS5jYW5jZWxsZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBlcnIxO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNoYW5nZVN0YXRlKG1ldGhvZCwgdXJsLCBhcywgb3B0aW9ucyA9IHtcbiAgICB9KSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHdpbmRvdy5oaXN0b3J5ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFdhcm5pbmc6IHdpbmRvdy5oaXN0b3J5IGlzIG5vdCBhdmFpbGFibGUuYCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cuaGlzdG9yeVttZXRob2RdID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFdhcm5pbmc6IHdpbmRvdy5oaXN0b3J5LiR7bWV0aG9kfSBpcyBub3QgYXZhaWxhYmxlYCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChtZXRob2QgIT09ICdwdXNoU3RhdGUnIHx8ICgwLCBfdXRpbHMpLmdldFVSTCgpICE9PSBhcykge1xuICAgICAgICAgICAgdGhpcy5fc2hhbGxvdyA9IG9wdGlvbnMuc2hhbGxvdztcbiAgICAgICAgICAgIHdpbmRvdy5oaXN0b3J5W21ldGhvZF0oe1xuICAgICAgICAgICAgICAgIHVybCxcbiAgICAgICAgICAgICAgICBhcyxcbiAgICAgICAgICAgICAgICBvcHRpb25zLFxuICAgICAgICAgICAgICAgIF9fTjogdHJ1ZSxcbiAgICAgICAgICAgICAgICBpZHg6IHRoaXMuX2lkeCA9IG1ldGhvZCAhPT0gJ3B1c2hTdGF0ZScgPyB0aGlzLl9pZHggOiB0aGlzLl9pZHggKyAxXG4gICAgICAgICAgICB9LCAvLyBNb3N0IGJyb3dzZXJzIGN1cnJlbnRseSBpZ25vcmVzIHRoaXMgcGFyYW1ldGVyLCBhbHRob3VnaCB0aGV5IG1heSB1c2UgaXQgaW4gdGhlIGZ1dHVyZS5cbiAgICAgICAgICAgIC8vIFBhc3NpbmcgdGhlIGVtcHR5IHN0cmluZyBoZXJlIHNob3VsZCBiZSBzYWZlIGFnYWluc3QgZnV0dXJlIGNoYW5nZXMgdG8gdGhlIG1ldGhvZC5cbiAgICAgICAgICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9IaXN0b3J5L3JlcGxhY2VTdGF0ZVxuICAgICAgICAgICAgJycsIGFzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhc3luYyBoYW5kbGVSb3V0ZUluZm9FcnJvcihlcnIsIHBhdGhuYW1lLCBxdWVyeSwgYXMsIHJvdXRlUHJvcHMsIGxvYWRFcnJvckZhaWwpIHtcbiAgICAgICAgaWYgKGVyci5jYW5jZWxsZWQpIHtcbiAgICAgICAgICAgIC8vIGJ1YmJsZSB1cCBjYW5jZWxsYXRpb24gZXJyb3JzXG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCgwLCBfcm91dGVMb2FkZXIpLmlzQXNzZXRFcnJvcihlcnIpIHx8IGxvYWRFcnJvckZhaWwpIHtcbiAgICAgICAgICAgIFJvdXRlci5ldmVudHMuZW1pdCgncm91dGVDaGFuZ2VFcnJvcicsIGVyciwgYXMsIHJvdXRlUHJvcHMpO1xuICAgICAgICAgICAgLy8gSWYgd2UgY2FuJ3QgbG9hZCB0aGUgcGFnZSBpdCBjb3VsZCBiZSBvbmUgb2YgZm9sbG93aW5nIHJlYXNvbnNcbiAgICAgICAgICAgIC8vICAxLiBQYWdlIGRvZXNuJ3QgZXhpc3RzXG4gICAgICAgICAgICAvLyAgMi4gUGFnZSBkb2VzIGV4aXN0IGluIGEgZGlmZmVyZW50IHpvbmVcbiAgICAgICAgICAgIC8vICAzLiBJbnRlcm5hbCBlcnJvciB3aGlsZSBsb2FkaW5nIHRoZSBwYWdlXG4gICAgICAgICAgICAvLyBTbywgZG9pbmcgYSBoYXJkIHJlbG9hZCBpcyB0aGUgcHJvcGVyIHdheSB0byBkZWFsIHdpdGggdGhpcy5cbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYXM7XG4gICAgICAgICAgICAvLyBDaGFuZ2luZyB0aGUgVVJMIGRvZXNuJ3QgYmxvY2sgZXhlY3V0aW5nIHRoZSBjdXJyZW50IGNvZGUgcGF0aC5cbiAgICAgICAgICAgIC8vIFNvIGxldCdzIHRocm93IGEgY2FuY2VsbGF0aW9uIGVycm9yIHN0b3AgdGhlIHJvdXRpbmcgbG9naWMuXG4gICAgICAgICAgICB0aHJvdyBidWlsZENhbmNlbGxhdGlvbkVycm9yKCk7XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGxldCBDb21wb25lbnQ7XG4gICAgICAgICAgICBsZXQgc3R5bGVTaGVldHM7XG4gICAgICAgICAgICBsZXQgcHJvcHM7XG4gICAgICAgICAgICBpZiAodHlwZW9mIENvbXBvbmVudCA9PT0gJ3VuZGVmaW5lZCcgfHwgdHlwZW9mIHN0eWxlU2hlZXRzID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICh7IHBhZ2U6IENvbXBvbmVudCAsIHN0eWxlU2hlZXRzICB9ID0gYXdhaXQgdGhpcy5mZXRjaENvbXBvbmVudCgnL19lcnJvcicpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHJvdXRlSW5mbyA9IHtcbiAgICAgICAgICAgICAgICBwcm9wcyxcbiAgICAgICAgICAgICAgICBDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgc3R5bGVTaGVldHMsXG4gICAgICAgICAgICAgICAgZXJyLFxuICAgICAgICAgICAgICAgIGVycm9yOiBlcnJcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAoIXJvdXRlSW5mby5wcm9wcykge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIHJvdXRlSW5mby5wcm9wcyA9IGF3YWl0IHRoaXMuZ2V0SW5pdGlhbFByb3BzKENvbXBvbmVudCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXJyLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBxdWVyeVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChnaXBFcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gZXJyb3IgcGFnZSBgZ2V0SW5pdGlhbFByb3BzYDogJywgZ2lwRXJyKTtcbiAgICAgICAgICAgICAgICAgICAgcm91dGVJbmZvLnByb3BzID0ge1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByb3V0ZUluZm87XG4gICAgICAgIH0gY2F0Y2ggKHJvdXRlSW5mb0Vycikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlUm91dGVJbmZvRXJyb3IoKDAsIF9pc0Vycm9yKS5kZWZhdWx0KHJvdXRlSW5mb0VycikgPyByb3V0ZUluZm9FcnIgOiBuZXcgRXJyb3Iocm91dGVJbmZvRXJyICsgJycpLCBwYXRobmFtZSwgcXVlcnksIGFzLCByb3V0ZVByb3BzLCB0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhc3luYyBnZXRSb3V0ZUluZm8ocm91dGUsIHBhdGhuYW1lLCBxdWVyeSwgYXMsIHJlc29sdmVkQXMsIHJvdXRlUHJvcHMpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nUm91dGVJbmZvID0gdGhpcy5jb21wb25lbnRzW3JvdXRlXTtcbiAgICAgICAgICAgIGlmIChyb3V0ZVByb3BzLnNoYWxsb3cgJiYgZXhpc3RpbmdSb3V0ZUluZm8gJiYgdGhpcy5yb3V0ZSA9PT0gcm91dGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZXhpc3RpbmdSb3V0ZUluZm87XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgY2FjaGVkUm91dGVJbmZvID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgLy8gY2FuIG9ubHkgdXNlIG5vbi1pbml0aWFsIHJvdXRlIGluZm9cbiAgICAgICAgICAgIC8vIGNhbm5vdCByZXVzZSByb3V0ZSBpbmZvIGluIGRldmVsb3BtZW50IHNpbmNlIGl0IGNhbiBjaGFuZ2UgYWZ0ZXIgSE1SXG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdkZXZlbG9wbWVudCcgJiYgZXhpc3RpbmdSb3V0ZUluZm8gJiYgISgnaW5pdGlhbCcgaW4gZXhpc3RpbmdSb3V0ZUluZm8pKSB7XG4gICAgICAgICAgICAgICAgY2FjaGVkUm91dGVJbmZvID0gZXhpc3RpbmdSb3V0ZUluZm87XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCByb3V0ZUluZm8gPSBjYWNoZWRSb3V0ZUluZm8gfHwgYXdhaXQgdGhpcy5mZXRjaENvbXBvbmVudChyb3V0ZSkudGhlbigocmVzKT0+KHtcbiAgICAgICAgICAgICAgICAgICAgQ29tcG9uZW50OiByZXMucGFnZSxcbiAgICAgICAgICAgICAgICAgICAgc3R5bGVTaGVldHM6IHJlcy5zdHlsZVNoZWV0cyxcbiAgICAgICAgICAgICAgICAgICAgX19OX1NTRzogcmVzLm1vZC5fX05fU1NHLFxuICAgICAgICAgICAgICAgICAgICBfX05fU1NQOiByZXMubW9kLl9fTl9TU1AsXG4gICAgICAgICAgICAgICAgICAgIF9fTl9SU0M6ICEhcmVzLnBhZ2UuX19uZXh0X3JzY19fXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjb25zdCB7IENvbXBvbmVudCAsIF9fTl9TU0cgLCBfX05fU1NQICwgX19OX1JTQyAgfSA9IHJvdXRlSW5mbztcbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBpc1ZhbGlkRWxlbWVudFR5cGUgIH0gPSByZXF1aXJlKCdyZWFjdC1pcycpO1xuICAgICAgICAgICAgICAgIGlmICghaXNWYWxpZEVsZW1lbnRUeXBlKENvbXBvbmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgZGVmYXVsdCBleHBvcnQgaXMgbm90IGEgUmVhY3QgQ29tcG9uZW50IGluIHBhZ2U6IFwiJHtwYXRobmFtZX1cImApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBkYXRhSHJlZjtcbiAgICAgICAgICAgIGlmIChfX05fU1NHIHx8IF9fTl9TU1AgfHwgX19OX1JTQykge1xuICAgICAgICAgICAgICAgIGRhdGFIcmVmID0gdGhpcy5wYWdlTG9hZGVyLmdldERhdGFIcmVmKHtcbiAgICAgICAgICAgICAgICAgICAgaHJlZjogKDAsIF91dGlscykuZm9ybWF0V2l0aFZhbGlkYXRpb24oe1xuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBxdWVyeVxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgYXNQYXRoOiByZXNvbHZlZEFzLFxuICAgICAgICAgICAgICAgICAgICBzc2c6IF9fTl9TU0csXG4gICAgICAgICAgICAgICAgICAgIHJzYzogX19OX1JTQyxcbiAgICAgICAgICAgICAgICAgICAgbG9jYWxlOiB0aGlzLmxvY2FsZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgcHJvcHMgPSBhd2FpdCB0aGlzLl9nZXREYXRhKCgpPT5fX05fU1NHIHx8IF9fTl9TU1AgPyBmZXRjaE5leHREYXRhKGRhdGFIcmVmLCB0aGlzLmlzU3NyLCBmYWxzZSwgX19OX1NTRyA/IHRoaXMuc2RjIDogdGhpcy5zZHIsICEhX19OX1NTRyAmJiAhdGhpcy5pc1ByZXZpZXcpIDogdGhpcy5nZXRJbml0aWFsUHJvcHMoQ29tcG9uZW50LCAvLyB3ZSBwcm92aWRlIEFwcFRyZWUgbGF0ZXIgc28gdGhpcyBuZWVkcyB0byBiZSBgYW55YFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5LFxuICAgICAgICAgICAgICAgICAgICBhc1BhdGg6IGFzLFxuICAgICAgICAgICAgICAgICAgICBsb2NhbGU6IHRoaXMubG9jYWxlLFxuICAgICAgICAgICAgICAgICAgICBsb2NhbGVzOiB0aGlzLmxvY2FsZXMsXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRMb2NhbGU6IHRoaXMuZGVmYXVsdExvY2FsZVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKF9fTl9SU0MpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGZyZXNoICwgZGF0YSAgfSA9IGF3YWl0IHRoaXMuX2dldERhdGEoKCk9PnRoaXMuX2dldEZsaWdodERhdGEoZGF0YUhyZWYpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBwcm9wcy5wYWdlUHJvcHMgPSBPYmplY3QuYXNzaWduKHByb3BzLnBhZ2VQcm9wcywge1xuICAgICAgICAgICAgICAgICAgICBfX2ZsaWdodF9zZXJpYWxpemVkX186IGRhdGEsXG4gICAgICAgICAgICAgICAgICAgIF9fZmxpZ2h0X2ZyZXNoX186IGZyZXNoXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByb3V0ZUluZm8ucHJvcHMgPSBwcm9wcztcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50c1tyb3V0ZV0gPSByb3V0ZUluZm87XG4gICAgICAgICAgICByZXR1cm4gcm91dGVJbmZvO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmhhbmRsZVJvdXRlSW5mb0Vycm9yKCgwLCBfaXNFcnJvcikuZGVmYXVsdChlcnIpID8gZXJyIDogbmV3IEVycm9yKGVyciArICcnKSwgcGF0aG5hbWUsIHF1ZXJ5LCBhcywgcm91dGVQcm9wcyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc2V0KHJvdXRlLCBwYXRobmFtZSwgcXVlcnksIGFzLCBkYXRhLCByZXNldFNjcm9sbCkge1xuICAgICAgICB0aGlzLmlzRmFsbGJhY2sgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5yb3V0ZSA9IHJvdXRlO1xuICAgICAgICB0aGlzLnBhdGhuYW1lID0gcGF0aG5hbWU7XG4gICAgICAgIHRoaXMucXVlcnkgPSBxdWVyeTtcbiAgICAgICAgdGhpcy5hc1BhdGggPSBhcztcbiAgICAgICAgcmV0dXJuIHRoaXMubm90aWZ5KGRhdGEsIHJlc2V0U2Nyb2xsKTtcbiAgICB9XG4gICAgLyoqXG4gICAqIENhbGxiYWNrIHRvIGV4ZWN1dGUgYmVmb3JlIHJlcGxhY2luZyByb3V0ZXIgc3RhdGVcbiAgICogQHBhcmFtIGNiIGNhbGxiYWNrIHRvIGJlIGV4ZWN1dGVkXG4gICAqLyBiZWZvcmVQb3BTdGF0ZShjYikge1xuICAgICAgICB0aGlzLl9icHMgPSBjYjtcbiAgICB9XG4gICAgb25seUFIYXNoQ2hhbmdlKGFzKSB7XG4gICAgICAgIGlmICghdGhpcy5hc1BhdGgpIHJldHVybiBmYWxzZTtcbiAgICAgICAgY29uc3QgW29sZFVybE5vSGFzaCwgb2xkSGFzaF0gPSB0aGlzLmFzUGF0aC5zcGxpdCgnIycpO1xuICAgICAgICBjb25zdCBbbmV3VXJsTm9IYXNoLCBuZXdIYXNoXSA9IGFzLnNwbGl0KCcjJyk7XG4gICAgICAgIC8vIE1ha2VzIHN1cmUgd2Ugc2Nyb2xsIHRvIHRoZSBwcm92aWRlZCBoYXNoIGlmIHRoZSB1cmwvaGFzaCBhcmUgdGhlIHNhbWVcbiAgICAgICAgaWYgKG5ld0hhc2ggJiYgb2xkVXJsTm9IYXNoID09PSBuZXdVcmxOb0hhc2ggJiYgb2xkSGFzaCA9PT0gbmV3SGFzaCkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYgdGhlIHVybHMgYXJlIGNoYW5nZSwgdGhlcmUncyBtb3JlIHRoYW4gYSBoYXNoIGNoYW5nZVxuICAgICAgICBpZiAob2xkVXJsTm9IYXNoICE9PSBuZXdVcmxOb0hhc2gpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBJZiB0aGUgaGFzaCBoYXMgY2hhbmdlZCwgdGhlbiBpdCdzIGEgaGFzaCBvbmx5IGNoYW5nZS5cbiAgICAgICAgLy8gVGhpcyBjaGVjayBpcyBuZWNlc3NhcnkgdG8gaGFuZGxlIGJvdGggdGhlIGVudGVyIGFuZFxuICAgICAgICAvLyBsZWF2ZSBoYXNoID09PSAnJyBjYXNlcy4gVGhlIGlkZW50aXR5IGNhc2UgZmFsbHMgdGhyb3VnaFxuICAgICAgICAvLyBhbmQgaXMgdHJlYXRlZCBhcyBhIG5leHQgcmVsb2FkLlxuICAgICAgICByZXR1cm4gb2xkSGFzaCAhPT0gbmV3SGFzaDtcbiAgICB9XG4gICAgc2Nyb2xsVG9IYXNoKGFzKSB7XG4gICAgICAgIGNvbnN0IFssIGhhc2hdID0gYXMuc3BsaXQoJyMnKTtcbiAgICAgICAgLy8gU2Nyb2xsIHRvIHRvcCBpZiB0aGUgaGFzaCBpcyBqdXN0IGAjYCB3aXRoIG5vIHZhbHVlIG9yIGAjdG9wYFxuICAgICAgICAvLyBUbyBtaXJyb3IgYnJvd3NlcnNcbiAgICAgICAgaWYgKGhhc2ggPT09ICcnIHx8IGhhc2ggPT09ICd0b3AnKSB7XG4gICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgMCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gRmlyc3Qgd2UgY2hlY2sgaWYgdGhlIGVsZW1lbnQgYnkgaWQgaXMgZm91bmRcbiAgICAgICAgY29uc3QgaWRFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGhhc2gpO1xuICAgICAgICBpZiAoaWRFbCkge1xuICAgICAgICAgICAgaWRFbC5zY3JvbGxJbnRvVmlldygpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIElmIHRoZXJlJ3Mgbm8gZWxlbWVudCB3aXRoIHRoZSBpZCwgd2UgY2hlY2sgdGhlIGBuYW1lYCBwcm9wZXJ0eVxuICAgICAgICAvLyBUbyBtaXJyb3IgYnJvd3NlcnNcbiAgICAgICAgY29uc3QgbmFtZUVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoaGFzaClbMF07XG4gICAgICAgIGlmIChuYW1lRWwpIHtcbiAgICAgICAgICAgIG5hbWVFbC5zY3JvbGxJbnRvVmlldygpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHVybElzTmV3KGFzUGF0aCkge1xuICAgICAgICByZXR1cm4gdGhpcy5hc1BhdGggIT09IGFzUGF0aDtcbiAgICB9XG4gICAgLyoqXG4gICAqIFByZWZldGNoIHBhZ2UgY29kZSwgeW91IG1heSB3YWl0IGZvciB0aGUgZGF0YSBkdXJpbmcgcGFnZSByZW5kZXJpbmcuXG4gICAqIFRoaXMgZmVhdHVyZSBvbmx5IHdvcmtzIGluIHByb2R1Y3Rpb24hXG4gICAqIEBwYXJhbSB1cmwgdGhlIGhyZWYgb2YgcHJlZmV0Y2hlZCBwYWdlXG4gICAqIEBwYXJhbSBhc1BhdGggdGhlIGFzIHBhdGggb2YgdGhlIHByZWZldGNoZWQgcGFnZVxuICAgKi8gYXN5bmMgcHJlZmV0Y2godXJsLCBhc1BhdGggPSB1cmwsIG9wdGlvbnMgPSB7XG4gICAgfSkge1xuICAgICAgICBsZXQgcGFyc2VkID0gKDAsIF9wYXJzZVJlbGF0aXZlVXJsKS5wYXJzZVJlbGF0aXZlVXJsKHVybCk7XG4gICAgICAgIGxldCB7IHBhdGhuYW1lICwgcXVlcnkgIH0gPSBwYXJzZWQ7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5sb2NhbGUgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgcGF0aG5hbWUgPSAoMCwgX25vcm1hbGl6ZUxvY2FsZVBhdGgpLm5vcm1hbGl6ZUxvY2FsZVBhdGgocGF0aG5hbWUsIHRoaXMubG9jYWxlcykucGF0aG5hbWU7XG4gICAgICAgICAgICAgICAgcGFyc2VkLnBhdGhuYW1lID0gcGF0aG5hbWU7XG4gICAgICAgICAgICAgICAgdXJsID0gKDAsIF91dGlscykuZm9ybWF0V2l0aFZhbGlkYXRpb24ocGFyc2VkKTtcbiAgICAgICAgICAgICAgICBsZXQgcGFyc2VkQXMgPSAoMCwgX3BhcnNlUmVsYXRpdmVVcmwpLnBhcnNlUmVsYXRpdmVVcmwoYXNQYXRoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBsb2NhbGVQYXRoUmVzdWx0ID0gKDAsIF9ub3JtYWxpemVMb2NhbGVQYXRoKS5ub3JtYWxpemVMb2NhbGVQYXRoKHBhcnNlZEFzLnBhdGhuYW1lLCB0aGlzLmxvY2FsZXMpO1xuICAgICAgICAgICAgICAgIHBhcnNlZEFzLnBhdGhuYW1lID0gbG9jYWxlUGF0aFJlc3VsdC5wYXRobmFtZTtcbiAgICAgICAgICAgICAgICBvcHRpb25zLmxvY2FsZSA9IGxvY2FsZVBhdGhSZXN1bHQuZGV0ZWN0ZWRMb2NhbGUgfHwgdGhpcy5kZWZhdWx0TG9jYWxlO1xuICAgICAgICAgICAgICAgIGFzUGF0aCA9ICgwLCBfdXRpbHMpLmZvcm1hdFdpdGhWYWxpZGF0aW9uKHBhcnNlZEFzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYWdlcyA9IGF3YWl0IHRoaXMucGFnZUxvYWRlci5nZXRQYWdlTGlzdCgpO1xuICAgICAgICBsZXQgcmVzb2x2ZWRBcyA9IGFzUGF0aDtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9IQVNfUkVXUklURVMgJiYgYXNQYXRoLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgICAgICAgbGV0IHJld3JpdGVzO1xuICAgICAgICAgICAgKHsgX19yZXdyaXRlczogcmV3cml0ZXMgIH0gPSBhd2FpdCAoMCwgX3JvdXRlTG9hZGVyKS5nZXRDbGllbnRCdWlsZE1hbmlmZXN0KCkpO1xuICAgICAgICAgICAgY29uc3QgcmV3cml0ZXNSZXN1bHQgPSAoMCwgX3Jlc29sdmVSZXdyaXRlcykuZGVmYXVsdChhZGRCYXNlUGF0aChhZGRMb2NhbGUoYXNQYXRoLCB0aGlzLmxvY2FsZSkpLCBwYWdlcywgcmV3cml0ZXMsIHBhcnNlZC5xdWVyeSwgKHApPT5yZXNvbHZlRHluYW1pY1JvdXRlKHAsIHBhZ2VzKVxuICAgICAgICAgICAgLCB0aGlzLmxvY2FsZXMpO1xuICAgICAgICAgICAgcmVzb2x2ZWRBcyA9IGRlbExvY2FsZShkZWxCYXNlUGF0aChyZXdyaXRlc1Jlc3VsdC5hc1BhdGgpLCB0aGlzLmxvY2FsZSk7XG4gICAgICAgICAgICBpZiAocmV3cml0ZXNSZXN1bHQubWF0Y2hlZFBhZ2UgJiYgcmV3cml0ZXNSZXN1bHQucmVzb2x2ZWRIcmVmKSB7XG4gICAgICAgICAgICAgICAgLy8gaWYgdGhpcyBkaXJlY3RseSBtYXRjaGVzIGEgcGFnZSB3ZSBuZWVkIHRvIHVwZGF0ZSB0aGUgaHJlZiB0b1xuICAgICAgICAgICAgICAgIC8vIGFsbG93IHRoZSBjb3JyZWN0IHBhZ2UgY2h1bmsgdG8gYmUgbG9hZGVkXG4gICAgICAgICAgICAgICAgcGF0aG5hbWUgPSByZXdyaXRlc1Jlc3VsdC5yZXNvbHZlZEhyZWY7XG4gICAgICAgICAgICAgICAgcGFyc2VkLnBhdGhuYW1lID0gcGF0aG5hbWU7XG4gICAgICAgICAgICAgICAgdXJsID0gKDAsIF91dGlscykuZm9ybWF0V2l0aFZhbGlkYXRpb24ocGFyc2VkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBhcnNlZC5wYXRobmFtZSA9IHJlc29sdmVEeW5hbWljUm91dGUocGFyc2VkLnBhdGhuYW1lLCBwYWdlcyk7XG4gICAgICAgICAgICBpZiAocGFyc2VkLnBhdGhuYW1lICE9PSBwYXRobmFtZSkge1xuICAgICAgICAgICAgICAgIHBhdGhuYW1lID0gcGFyc2VkLnBhdGhuYW1lO1xuICAgICAgICAgICAgICAgIHBhcnNlZC5wYXRobmFtZSA9IHBhdGhuYW1lO1xuICAgICAgICAgICAgICAgIHVybCA9ICgwLCBfdXRpbHMpLmZvcm1hdFdpdGhWYWxpZGF0aW9uKHBhcnNlZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gUHJlZmV0Y2ggaXMgbm90IHN1cHBvcnRlZCBpbiBkZXZlbG9wbWVudCBtb2RlIGJlY2F1c2UgaXQgd291bGQgdHJpZ2dlciBvbi1kZW1hbmQtZW50cmllc1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVmZmVjdHMgPSBhd2FpdCB0aGlzLl9wcmVmbGlnaHRSZXF1ZXN0KHtcbiAgICAgICAgICAgIGFzOiBhZGRCYXNlUGF0aChhc1BhdGgpLFxuICAgICAgICAgICAgY2FjaGU6IHRydWUsXG4gICAgICAgICAgICBwYWdlcyxcbiAgICAgICAgICAgIHBhdGhuYW1lLFxuICAgICAgICAgICAgcXVlcnlcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChlZmZlY3RzLnR5cGUgPT09ICdyZXdyaXRlJykge1xuICAgICAgICAgICAgcGFyc2VkLnBhdGhuYW1lID0gZWZmZWN0cy5yZXNvbHZlZEhyZWY7XG4gICAgICAgICAgICBwYXRobmFtZSA9IGVmZmVjdHMucmVzb2x2ZWRIcmVmO1xuICAgICAgICAgICAgcXVlcnkgPSB7XG4gICAgICAgICAgICAgICAgLi4ucXVlcnksXG4gICAgICAgICAgICAgICAgLi4uZWZmZWN0cy5wYXJzZWRBcy5xdWVyeVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJlc29sdmVkQXMgPSBlZmZlY3RzLmFzUGF0aDtcbiAgICAgICAgICAgIHVybCA9ICgwLCBfdXRpbHMpLmZvcm1hdFdpdGhWYWxpZGF0aW9uKHBhcnNlZCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgcm91dGUgPSAoMCwgX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2gpLnJlbW92ZVBhdGhUcmFpbGluZ1NsYXNoKHBhdGhuYW1lKTtcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgICAgICAgdGhpcy5wYWdlTG9hZGVyLl9pc1NzZyhyb3V0ZSkudGhlbigoaXNTc2cpPT57XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzU3NnID8gZmV0Y2hOZXh0RGF0YSh0aGlzLnBhZ2VMb2FkZXIuZ2V0RGF0YUhyZWYoe1xuICAgICAgICAgICAgICAgICAgICBocmVmOiB1cmwsXG4gICAgICAgICAgICAgICAgICAgIGFzUGF0aDogcmVzb2x2ZWRBcyxcbiAgICAgICAgICAgICAgICAgICAgc3NnOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBsb2NhbGU6IHR5cGVvZiBvcHRpb25zLmxvY2FsZSAhPT0gJ3VuZGVmaW5lZCcgPyBvcHRpb25zLmxvY2FsZSA6IHRoaXMubG9jYWxlXG4gICAgICAgICAgICAgICAgfSksIGZhbHNlLCBmYWxzZSwgdGhpcy5zZGMsIHRydWUpIDogZmFsc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHRoaXMucGFnZUxvYWRlcltvcHRpb25zLnByaW9yaXR5ID8gJ2xvYWRQYWdlJyA6ICdwcmVmZXRjaCddKHJvdXRlKSwgXG4gICAgICAgIF0pO1xuICAgIH1cbiAgICBhc3luYyBmZXRjaENvbXBvbmVudChyb3V0ZSkge1xuICAgICAgICBsZXQgY2FuY2VsbGVkID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IGNhbmNlbCA9IHRoaXMuY2xjID0gKCk9PntcbiAgICAgICAgICAgIGNhbmNlbGxlZCA9IHRydWU7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGhhbmRsZUNhbmNlbGxlZCA9ICgpPT57XG4gICAgICAgICAgICBpZiAoY2FuY2VsbGVkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoYEFib3J0IGZldGNoaW5nIGNvbXBvbmVudCBmb3Igcm91dGU6IFwiJHtyb3V0ZX1cImApO1xuICAgICAgICAgICAgICAgIGVycm9yLmNhbmNlbGxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY2FuY2VsID09PSB0aGlzLmNsYykge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xjID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudFJlc3VsdCA9IGF3YWl0IHRoaXMucGFnZUxvYWRlci5sb2FkUGFnZShyb3V0ZSk7XG4gICAgICAgICAgICBoYW5kbGVDYW5jZWxsZWQoKTtcbiAgICAgICAgICAgIHJldHVybiBjb21wb25lbnRSZXN1bHQ7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgaGFuZGxlQ2FuY2VsbGVkKCk7XG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2dldERhdGEoZm4pIHtcbiAgICAgICAgbGV0IGNhbmNlbGxlZCA9IGZhbHNlO1xuICAgICAgICBjb25zdCBjYW5jZWwgPSAoKT0+e1xuICAgICAgICAgICAgY2FuY2VsbGVkID0gdHJ1ZTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5jbGMgPSBjYW5jZWw7XG4gICAgICAgIHJldHVybiBmbigpLnRoZW4oKGRhdGEpPT57XG4gICAgICAgICAgICBpZiAoY2FuY2VsID09PSB0aGlzLmNsYykge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xjID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjYW5jZWxsZWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlcnIgPSBuZXcgRXJyb3IoJ0xvYWRpbmcgaW5pdGlhbCBwcm9wcyBjYW5jZWxsZWQnKTtcbiAgICAgICAgICAgICAgICBlcnIuY2FuY2VsbGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIF9nZXRGbGlnaHREYXRhKGRhdGFIcmVmKSB7XG4gICAgICAgIGNvbnN0IHsgaHJlZjogY2FjaGVLZXkgIH0gPSBuZXcgVVJMKGRhdGFIcmVmLCB3aW5kb3cubG9jYXRpb24uaHJlZik7XG4gICAgICAgIGlmICghdGhpcy5pc1ByZXZpZXcgJiYgdGhpcy5zZGNbY2FjaGVLZXldKSB7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgICAgICAgICAgICBmcmVzaDogZmFsc2UsXG4gICAgICAgICAgICAgICAgZGF0YTogdGhpcy5zZGNbY2FjaGVLZXldXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmV0Y2hOZXh0RGF0YShkYXRhSHJlZiwgdHJ1ZSwgdHJ1ZSwgdGhpcy5zZGMsIGZhbHNlKS50aGVuKChzZXJpYWxpemVkKT0+e1xuICAgICAgICAgICAgdGhpcy5zZGNbY2FjaGVLZXldID0gc2VyaWFsaXplZDtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgZnJlc2g6IHRydWUsXG4gICAgICAgICAgICAgICAgZGF0YTogc2VyaWFsaXplZFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGFzeW5jIF9wcmVmbGlnaHRSZXF1ZXN0KG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIHJlZjtcbiAgICAgICAgY29uc3QgY2xlYW5lZEFzID0gZGVsTG9jYWxlKGhhc0Jhc2VQYXRoKG9wdGlvbnMuYXMpID8gZGVsQmFzZVBhdGgob3B0aW9ucy5hcykgOiBvcHRpb25zLmFzLCB0aGlzLmxvY2FsZSk7XG4gICAgICAgIGNvbnN0IGZucyA9IGF3YWl0IHRoaXMucGFnZUxvYWRlci5nZXRNaWRkbGV3YXJlTGlzdCgpO1xuICAgICAgICBjb25zdCByZXF1aXJlc1ByZWZsaWdodCA9IGZucy5zb21lKChbbWlkZGxld2FyZSwgaXNTU1JdKT0+e1xuICAgICAgICAgICAgcmV0dXJuICgwLCBfcm91dGVNYXRjaGVyKS5nZXRSb3V0ZU1hdGNoZXIoKDAsIF9nZXRNaWRkbGV3YXJlUmVnZXgpLmdldE1pZGRsZXdhcmVSZWdleChtaWRkbGV3YXJlLCAhaXNTU1IpKShjbGVhbmVkQXMpO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKCFyZXF1aXJlc1ByZWZsaWdodCkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnbmV4dCdcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcHJlZmxpZ2h0ID0gYXdhaXQgdGhpcy5fZ2V0UHJlZmxpZ2h0RGF0YSh7XG4gICAgICAgICAgICBwcmVmbGlnaHRIcmVmOiBvcHRpb25zLmFzLFxuICAgICAgICAgICAgc2hvdWxkQ2FjaGU6IG9wdGlvbnMuY2FjaGVcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICgocmVmID0gcHJlZmxpZ2h0LnJld3JpdGUpID09PSBudWxsIHx8IHJlZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVmLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgICAgICAgY29uc3QgcGFyc2VkID0gKDAsIF9wYXJzZVJlbGF0aXZlVXJsKS5wYXJzZVJlbGF0aXZlVXJsKCgwLCBfbm9ybWFsaXplTG9jYWxlUGF0aCkubm9ybWFsaXplTG9jYWxlUGF0aChoYXNCYXNlUGF0aChwcmVmbGlnaHQucmV3cml0ZSkgPyBkZWxCYXNlUGF0aChwcmVmbGlnaHQucmV3cml0ZSkgOiBwcmVmbGlnaHQucmV3cml0ZSwgdGhpcy5sb2NhbGVzKS5wYXRobmFtZSk7XG4gICAgICAgICAgICBjb25zdCBmc1BhdGhuYW1lID0gKDAsIF9ub3JtYWxpemVUcmFpbGluZ1NsYXNoKS5yZW1vdmVQYXRoVHJhaWxpbmdTbGFzaChwYXJzZWQucGF0aG5hbWUpO1xuICAgICAgICAgICAgbGV0IG1hdGNoZWRQYWdlO1xuICAgICAgICAgICAgbGV0IHJlc29sdmVkSHJlZjtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLnBhZ2VzLmluY2x1ZGVzKGZzUGF0aG5hbWUpKSB7XG4gICAgICAgICAgICAgICAgbWF0Y2hlZFBhZ2UgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHJlc29sdmVkSHJlZiA9IGZzUGF0aG5hbWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlc29sdmVkSHJlZiA9IHJlc29sdmVEeW5hbWljUm91dGUoZnNQYXRobmFtZSwgb3B0aW9ucy5wYWdlcyk7XG4gICAgICAgICAgICAgICAgaWYgKHJlc29sdmVkSHJlZiAhPT0gcGFyc2VkLnBhdGhuYW1lICYmIG9wdGlvbnMucGFnZXMuaW5jbHVkZXMocmVzb2x2ZWRIcmVmKSkge1xuICAgICAgICAgICAgICAgICAgICBtYXRjaGVkUGFnZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB0eXBlOiAncmV3cml0ZScsXG4gICAgICAgICAgICAgICAgYXNQYXRoOiBwYXJzZWQucGF0aG5hbWUsXG4gICAgICAgICAgICAgICAgcGFyc2VkQXM6IHBhcnNlZCxcbiAgICAgICAgICAgICAgICBtYXRjaGVkUGFnZSxcbiAgICAgICAgICAgICAgICByZXNvbHZlZEhyZWZcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByZWZsaWdodC5yZWRpcmVjdCkge1xuICAgICAgICAgICAgaWYgKHByZWZsaWdodC5yZWRpcmVjdC5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjbGVhblJlZGlyZWN0ID0gKDAsIF9ub3JtYWxpemVUcmFpbGluZ1NsYXNoKS5yZW1vdmVQYXRoVHJhaWxpbmdTbGFzaCgoMCwgX25vcm1hbGl6ZUxvY2FsZVBhdGgpLm5vcm1hbGl6ZUxvY2FsZVBhdGgoaGFzQmFzZVBhdGgocHJlZmxpZ2h0LnJlZGlyZWN0KSA/IGRlbEJhc2VQYXRoKHByZWZsaWdodC5yZWRpcmVjdCkgOiBwcmVmbGlnaHQucmVkaXJlY3QsIHRoaXMubG9jYWxlcykucGF0aG5hbWUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgdXJsOiBuZXdVcmwgLCBhczogbmV3QXMgIH0gPSBwcmVwYXJlVXJsQXModGhpcywgY2xlYW5SZWRpcmVjdCwgY2xlYW5SZWRpcmVjdCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3JlZGlyZWN0JyxcbiAgICAgICAgICAgICAgICAgICAgbmV3VXJsLFxuICAgICAgICAgICAgICAgICAgICBuZXdBc1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdyZWRpcmVjdCcsXG4gICAgICAgICAgICAgICAgZGVzdGluYXRpb246IHByZWZsaWdodC5yZWRpcmVjdFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICAvLyBGb3IgU1NSIHJlcXVlc3RzLCB0aGV5IHdpbGwgYmUgaGFuZGxlZCBsaWtlIG5vcm1hbCBwYWdlcy5cbiAgICAgICAgaWYgKHByZWZsaWdodC5yZWZyZXNoICYmICFwcmVmbGlnaHQuc3NyKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdyZWZyZXNoJ1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogJ25leHQnXG4gICAgICAgIH07XG4gICAgfVxuICAgIF9nZXRQcmVmbGlnaHREYXRhKHBhcmFtcykge1xuICAgICAgICBjb25zdCB7IHByZWZsaWdodEhyZWYgLCBzaG91bGRDYWNoZSA9ZmFsc2UgIH0gPSBwYXJhbXM7XG4gICAgICAgIGNvbnN0IHsgaHJlZjogY2FjaGVLZXkgIH0gPSBuZXcgVVJMKHByZWZsaWdodEhyZWYsIHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicgJiYgIXRoaXMuaXNQcmV2aWV3ICYmIHNob3VsZENhY2hlICYmIHRoaXMuc2RlW2NhY2hlS2V5XSkge1xuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLnNkZVtjYWNoZUtleV0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmZXRjaChwcmVmbGlnaHRIcmVmLCB7XG4gICAgICAgICAgICBtZXRob2Q6ICdIRUFEJyxcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzOiAnc2FtZS1vcmlnaW4nLFxuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICd4LW1pZGRsZXdhcmUtcHJlZmxpZ2h0JzogJzEnXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLnRoZW4oKHJlcyk9PntcbiAgICAgICAgICAgIGlmICghcmVzLm9rKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gcHJlZmxpZ2h0IHJlcXVlc3RgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVkaXJlY3Q6IHJlcy5oZWFkZXJzLmdldCgnTG9jYXRpb24nKSxcbiAgICAgICAgICAgICAgICByZWZyZXNoOiByZXMuaGVhZGVycy5oYXMoJ3gtbWlkZGxld2FyZS1yZWZyZXNoJyksXG4gICAgICAgICAgICAgICAgcmV3cml0ZTogcmVzLmhlYWRlcnMuZ2V0KCd4LW1pZGRsZXdhcmUtcmV3cml0ZScpLFxuICAgICAgICAgICAgICAgIHNzcjogISFyZXMuaGVhZGVycy5nZXQoJ3gtbWlkZGxld2FyZS1zc3InKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSkudGhlbigoZGF0YSk9PntcbiAgICAgICAgICAgIGlmIChzaG91bGRDYWNoZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2RlW2NhY2hlS2V5XSA9IGRhdGE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgICAgfSkuY2F0Y2goKGVycik9PntcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnNkZVtjYWNoZUtleV07XG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBnZXRJbml0aWFsUHJvcHMoQ29tcG9uZW50LCBjdHgpIHtcbiAgICAgICAgY29uc3QgeyBDb21wb25lbnQ6IEFwcCAgfSA9IHRoaXMuY29tcG9uZW50c1snL19hcHAnXTtcbiAgICAgICAgY29uc3QgQXBwVHJlZSA9IHRoaXMuX3dyYXBBcHAoQXBwKTtcbiAgICAgICAgY3R4LkFwcFRyZWUgPSBBcHBUcmVlO1xuICAgICAgICByZXR1cm4gKDAsIF91dGlscykubG9hZEdldEluaXRpYWxQcm9wcyhBcHAsIHtcbiAgICAgICAgICAgIEFwcFRyZWUsXG4gICAgICAgICAgICBDb21wb25lbnQsXG4gICAgICAgICAgICByb3V0ZXI6IHRoaXMsXG4gICAgICAgICAgICBjdHhcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGFib3J0Q29tcG9uZW50TG9hZChhcywgcm91dGVQcm9wcykge1xuICAgICAgICBpZiAodGhpcy5jbGMpIHtcbiAgICAgICAgICAgIFJvdXRlci5ldmVudHMuZW1pdCgncm91dGVDaGFuZ2VFcnJvcicsIGJ1aWxkQ2FuY2VsbGF0aW9uRXJyb3IoKSwgYXMsIHJvdXRlUHJvcHMpO1xuICAgICAgICAgICAgdGhpcy5jbGMoKTtcbiAgICAgICAgICAgIHRoaXMuY2xjID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBub3RpZnkoZGF0YSwgcmVzZXRTY3JvbGwpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3ViKGRhdGEsIHRoaXMuY29tcG9uZW50c1snL19hcHAnXS5Db21wb25lbnQsIHJlc2V0U2Nyb2xsKTtcbiAgICB9XG59XG5Sb3V0ZXIuZXZlbnRzID0gKDAsIF9taXR0KS5kZWZhdWx0KCk7XG5leHBvcnRzLmRlZmF1bHQgPSBSb3V0ZXI7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJvdXRlci5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJnZXREb21haW5Mb2NhbGUiLCJhZGRMb2NhbGUiLCJkZWxMb2NhbGUiLCJoYXNCYXNlUGF0aCIsImFkZEJhc2VQYXRoIiwiZGVsQmFzZVBhdGgiLCJpc0xvY2FsVVJMIiwiaW50ZXJwb2xhdGVBcyIsInJlc29sdmVIcmVmIiwiX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2giLCJyZXF1aXJlIiwiX3JvdXRlTG9hZGVyIiwiX2lzRXJyb3IiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2Rlbm9ybWFsaXplUGFnZVBhdGgiLCJfbm9ybWFsaXplTG9jYWxlUGF0aCIsIl9taXR0IiwiX3V0aWxzIiwiX2lzRHluYW1pYyIsIl9wYXJzZVJlbGF0aXZlVXJsIiwiX3F1ZXJ5c3RyaW5nIiwiX3Jlc29sdmVSZXdyaXRlcyIsIl9yb3V0ZU1hdGNoZXIiLCJfcm91dGVSZWdleCIsIl9nZXRNaWRkbGV3YXJlUmVnZXgiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGV0ZWN0RG9tYWluTG9jYWxlIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9JMThOX1NVUFBPUlQiLCJiYXNlUGF0aCIsIl9fTkVYVF9ST1VURVJfQkFTRVBBVEgiLCJidWlsZENhbmNlbGxhdGlvbkVycm9yIiwiYXNzaWduIiwiRXJyb3IiLCJjYW5jZWxsZWQiLCJhZGRQYXRoUHJlZml4IiwicGF0aCIsInByZWZpeCIsInN0YXJ0c1dpdGgiLCJwYXRobmFtZSIsInBhdGhOb1F1ZXJ5SGFzaCIsIm5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoIiwic3Vic3RyIiwibGVuZ3RoIiwibG9jYWxlIiwibG9jYWxlcyIsImRvbWFpbkxvY2FsZXMiLCJub3JtYWxpemVMb2NhbGVQYXRoIiwiZGV0ZWN0ZWRMb2NhbGUiLCJkZXRlY3RlZERvbWFpbiIsInVuZGVmaW5lZCIsImh0dHAiLCJkb21haW4iLCJkZWZhdWx0TG9jYWxlIiwicGF0aExvd2VyIiwidG9Mb3dlckNhc2UiLCJsb2NhbGVMb3dlciIsInF1ZXJ5SW5kZXgiLCJpbmRleE9mIiwiaGFzaEluZGV4Iiwic3Vic3RyaW5nIiwic2xpY2UiLCJ1cmwiLCJsb2NhdGlvbk9yaWdpbiIsImdldExvY2F0aW9uT3JpZ2luIiwicmVzb2x2ZWQiLCJVUkwiLCJvcmlnaW4iLCJfIiwicm91dGUiLCJhc1BhdGhuYW1lIiwicXVlcnkiLCJpbnRlcnBvbGF0ZWRSb3V0ZSIsImR5bmFtaWNSZWdleCIsImdldFJvdXRlUmVnZXgiLCJkeW5hbWljR3JvdXBzIiwiZ3JvdXBzIiwiZHluYW1pY01hdGNoZXMiLCJnZXRSb3V0ZU1hdGNoZXIiLCJwYXJhbXMiLCJrZXlzIiwiZXZlcnkiLCJwYXJhbSIsInJlcGVhdCIsIm9wdGlvbmFsIiwicmVwbGFjZWQiLCJBcnJheSIsImlzQXJyYXkiLCJyZXBsYWNlIiwibWFwIiwic2VnbWVudCIsImVuY29kZVVSSUNvbXBvbmVudCIsImpvaW4iLCJyZXN1bHQiLCJvbWl0UGFybXNGcm9tUXVlcnkiLCJmaWx0ZXJlZFF1ZXJ5IiwiZm9yRWFjaCIsImtleSIsImluY2x1ZGVzIiwicm91dGVyIiwiaHJlZiIsInJlc29sdmVBcyIsImJhc2UiLCJ1cmxBc1N0cmluZyIsImZvcm1hdFdpdGhWYWxpZGF0aW9uIiwidXJsUHJvdG9NYXRjaCIsIm1hdGNoIiwidXJsQXNTdHJpbmdOb1Byb3RvIiwidXJsUGFydHMiLCJzcGxpdCIsImNvbnNvbGUiLCJlcnJvciIsIm5vcm1hbGl6ZWRVcmwiLCJub3JtYWxpemVSZXBlYXRlZFNsYXNoZXMiLCJhc1BhdGgiLCJmaW5hbFVybCIsImludGVycG9sYXRlZEFzIiwiaXNEeW5hbWljUm91dGUiLCJzZWFyY2hQYXJhbXMiLCJzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5IiwiaGFzaCIsInJlc29sdmVkSHJlZiIsIl8xIiwic3RyaXBPcmlnaW4iLCJwcmVwYXJlVXJsQXMiLCJhcyIsInJlc29sdmVkQXMiLCJocmVmSGFkT3JpZ2luIiwiYXNIYWRPcmlnaW4iLCJwcmVwYXJlZFVybCIsInByZXBhcmVkQXMiLCJyZXNvbHZlRHluYW1pY1JvdXRlIiwicGFnZXMiLCJjbGVhblBhdGhuYW1lIiwicmVtb3ZlUGF0aFRyYWlsaW5nU2xhc2giLCJkZW5vcm1hbGl6ZVBhZ2VQYXRoIiwic29tZSIsInBhZ2UiLCJyZSIsInRlc3QiLCJtYW51YWxTY3JvbGxSZXN0b3JhdGlvbiIsIl9fTkVYVF9TQ1JPTExfUkVTVE9SQVRJT04iLCJ3aW5kb3ciLCJoaXN0b3J5IiwidiIsInNlc3Npb25TdG9yYWdlIiwic2V0SXRlbSIsInJlbW92ZUl0ZW0iLCJuIiwiU1NHX0RBVEFfTk9UX0ZPVU5EIiwiU3ltYm9sIiwiZmV0Y2hSZXRyeSIsImF0dGVtcHRzIiwib3B0cyIsImZldGNoIiwiY3JlZGVudGlhbHMiLCJ0aGVuIiwicmVzIiwib2siLCJzdGF0dXMiLCJqc29uIiwiZGF0YSIsIm5vdEZvdW5kIiwidGV4dCIsImZldGNoTmV4dERhdGEiLCJkYXRhSHJlZiIsImlzU2VydmVyUmVuZGVyIiwiaW5mbGlnaHRDYWNoZSIsInBlcnNpc3RDYWNoZSIsImxvY2F0aW9uIiwiY2FjaGVLZXkiLCJlcnIiLCJtYXJrQXNzZXRFcnJvciIsIlJvdXRlciIsImluaXRpYWxQcm9wcyIsInBhZ2VMb2FkZXIiLCJBcHAiLCJ3cmFwQXBwIiwiQ29tcG9uZW50Iiwic3Vic2NyaXB0aW9uIiwiaXNGYWxsYmFjayIsImlzUHJldmlldyIsInNkYyIsInNkciIsInNkZSIsIl9pZHgiLCJvblBvcFN0YXRlIiwiZSIsInN0YXRlIiwiY2hhbmdlU3RhdGUiLCJnZXRVUkwiLCJfX04iLCJmb3JjZWRTY3JvbGwiLCJvcHRpb25zIiwiaWR4IiwiSlNPTiIsInN0cmluZ2lmeSIsIngiLCJzZWxmIiwicGFnZVhPZmZzZXQiLCJ5IiwicGFnZVlPZmZzZXQiLCJnZXRJdGVtIiwicGFyc2UiLCJwYXJzZVJlbGF0aXZlVXJsIiwiaXNTc3IiLCJfYnBzIiwiY2hhbmdlIiwic2hhbGxvdyIsIl9zaGFsbG93IiwiY29tcG9uZW50cyIsInJlZiIsImluaXRpYWwiLCJwcm9wcyIsIl9fTl9TU0ciLCJfX05fU1NQIiwiX19OX1JTQyIsIl9fbmV4dF9yc2NfXyIsInN0eWxlU2hlZXRzIiwiZXZlbnRzIiwiYXV0b0V4cG9ydER5bmFtaWMiLCJfX05FWFRfREFUQV9fIiwiYXV0b0V4cG9ydCIsInN1YiIsImNsYyIsIl93cmFwQXBwIiwiaXNSZWFkeSIsImdzc3AiLCJnaXAiLCJhcHBHaXAiLCJnc3AiLCJzZWFyY2giLCJfX05FWFRfSEFTX1JFV1JJVEVTIiwiaXNMb2NhbGVEb21haW4iLCJob3N0bmFtZSIsIl9zaG91bGRSZXNvbHZlSHJlZiIsImFkZEV2ZW50TGlzdGVuZXIiLCJzY3JvbGxSZXN0b3JhdGlvbiIsInJlbG9hZCIsImJhY2siLCJtZXRob2QiLCJzaG91bGRSZXNvbHZlSHJlZiIsIl9oIiwicHJldkxvY2FsZSIsInBhcnNlZEFzIiwibG9jYWxlUGF0aFJlc3VsdCIsImRpZE5hdmlnYXRlIiwiYXNOb0Jhc2VQYXRoIiwiUHJvbWlzZSIsIlNUIiwicGVyZm9ybWFuY2UiLCJtYXJrIiwicm91dGVQcm9wcyIsIl9pbkZsaWdodFJvdXRlIiwiYWJvcnRDb21wb25lbnRMb2FkIiwiY2xlYW5lZEFzIiwibG9jYWxlQ2hhbmdlIiwib25seUFIYXNoQ2hhbmdlIiwiZW1pdCIsInNjcm9sbFRvSGFzaCIsIm5vdGlmeSIsInBhcnNlZCIsImFsbCIsImdldFBhZ2VMaXN0IiwiZ2V0Q2xpZW50QnVpbGRNYW5pZmVzdCIsImdldE1pZGRsZXdhcmVMaXN0IiwicmV3cml0ZXMiLCJfX3Jld3JpdGVzIiwidXJsSXNOZXciLCJyZXdyaXRlc1Jlc3VsdCIsInAiLCJtYXRjaGVkUGFnZSIsIl9wcmVmbGlnaHRSZXF1ZXN0IiwiY2FjaGUiLCJlZmZlY3QiLCJ0eXBlIiwibmV3QXMiLCJuZXdVcmwiLCJkZXN0aW5hdGlvbiIsInJvdXRlUmVnZXgiLCJyb3V0ZU1hdGNoIiwic2hvdWxkSW50ZXJwb2xhdGUiLCJtaXNzaW5nUGFyYW1zIiwiZmlsdGVyIiwid2FybiIsImdldFJvdXRlSW5mbyIsInJvdXRlSW5mbyIsInBhZ2VQcm9wcyIsIl9fTl9SRURJUkVDVCIsIl9fTl9SRURJUkVDVF9CQVNFX1BBVEgiLCJwYXJzZWRIcmVmIiwiX19OX1BSRVZJRVciLCJmZXRjaENvbXBvbmVudCIsIm5vdEZvdW5kUm91dGUiLCJyZWYxIiwic3RhdHVzQ29kZSIsImlzVmFsaWRTaGFsbG93Um91dGUiLCJzaG91bGRTY3JvbGwiLCJfc2Nyb2xsIiwic2Nyb2xsIiwicmVzZXRTY3JvbGwiLCJzZXQiLCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIsImxhbmciLCJsb2FkRXJyb3JGYWlsIiwiaXNBc3NldEVycm9yIiwiZ2V0SW5pdGlhbFByb3BzIiwiaGFuZGxlUm91dGVJbmZvRXJyb3IiLCJleGlzdGluZ1JvdXRlSW5mbyIsImNhY2hlZFJvdXRlSW5mbyIsIm1vZCIsImlzVmFsaWRFbGVtZW50VHlwZSIsImdldERhdGFIcmVmIiwic3NnIiwicnNjIiwiX2dldERhdGEiLCJfZ2V0RmxpZ2h0RGF0YSIsImZyZXNoIiwiX19mbGlnaHRfc2VyaWFsaXplZF9fIiwiX19mbGlnaHRfZnJlc2hfXyIsImNiIiwib2xkVXJsTm9IYXNoIiwib2xkSGFzaCIsIm5ld1VybE5vSGFzaCIsIm5ld0hhc2giLCJzY3JvbGxUbyIsImlkRWwiLCJnZXRFbGVtZW50QnlJZCIsInNjcm9sbEludG9WaWV3IiwibmFtZUVsIiwiZ2V0RWxlbWVudHNCeU5hbWUiLCJlZmZlY3RzIiwiX2lzU3NnIiwiaXNTc2ciLCJwcmlvcml0eSIsImNhbmNlbCIsImhhbmRsZUNhbmNlbGxlZCIsImxvYWRQYWdlIiwiY29tcG9uZW50UmVzdWx0IiwiZm4iLCJyZXNvbHZlIiwic2VyaWFsaXplZCIsImZucyIsInJlcXVpcmVzUHJlZmxpZ2h0IiwibWlkZGxld2FyZSIsImlzU1NSIiwiZ2V0TWlkZGxld2FyZVJlZ2V4IiwiX2dldFByZWZsaWdodERhdGEiLCJwcmVmbGlnaHRIcmVmIiwic2hvdWxkQ2FjaGUiLCJwcmVmbGlnaHQiLCJyZXdyaXRlIiwiZnNQYXRobmFtZSIsInJlZGlyZWN0IiwiY2xlYW5SZWRpcmVjdCIsInJlZnJlc2giLCJzc3IiLCJoZWFkZXJzIiwiZ2V0IiwiaGFzIiwiY3R4IiwiQXBwVHJlZSIsImxvYWRHZXRJbml0aWFsUHJvcHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/router.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/format-url.js": +/*!**********************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/format-url.js ***! + \**********************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.formatUrl = formatUrl;\n\nvar querystring = _interopRequireWildcard(__webpack_require__(/*! ./querystring */ \"./node_modules/next/dist/shared/lib/router/utils/querystring.js\"));\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n return newObj;\n }\n}\n\nvar slashedProtocols = /https?|ftp|gopher|file/;\n\nfunction formatUrl(urlObj) {\n var auth = urlObj.auth,\n hostname = urlObj.hostname;\n var protocol = urlObj.protocol || '';\n var pathname = urlObj.pathname || '';\n var hash = urlObj.hash || '';\n var query = urlObj.query || '';\n var host = false;\n auth = auth ? encodeURIComponent(auth).replace(/%3A/i, ':') + '@' : '';\n\n if (urlObj.host) {\n host = auth + urlObj.host;\n } else if (hostname) {\n host = auth + (~hostname.indexOf(':') ? \"[\".concat(hostname, \"]\") : hostname);\n\n if (urlObj.port) {\n host += ':' + urlObj.port;\n }\n }\n\n if (query && typeof query === 'object') {\n query = String(querystring.urlQueryToSearchParams(query));\n }\n\n var search = urlObj.search || query && \"?\".concat(query) || '';\n if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\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\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 \"\".concat(protocol).concat(host).concat(pathname).concat(search).concat(hash);\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Zvcm1hdC11cmwuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxpQkFBQSxHQUFvQkUsU0FBcEI7O0FBQ0EsSUFBSUMsV0FBVyxHQUFHQyx1QkFBdUIsQ0FBQ0MsbUJBQU8sQ0FBQyxzRkFBRCxDQUFSLENBQXpDOztBQUNBLFNBQVNELHVCQUFULENBQWlDRSxHQUFqQyxFQUFzQztBQUNsQyxNQUFJQSxHQUFHLElBQUlBLEdBQUcsQ0FBQ0MsVUFBZixFQUEyQjtBQUN2QixXQUFPRCxHQUFQO0FBQ0gsR0FGRCxNQUVPO0FBQ0gsUUFBSUUsTUFBTSxHQUFHLEVBQWI7O0FBRUEsUUFBSUYsR0FBRyxJQUFJLElBQVgsRUFBaUI7QUFDYixXQUFJLElBQUlHLEdBQVIsSUFBZUgsR0FBZixFQUFtQjtBQUNmLFlBQUlSLE1BQU0sQ0FBQ1ksU0FBUCxDQUFpQkMsY0FBakIsQ0FBZ0NDLElBQWhDLENBQXFDTixHQUFyQyxFQUEwQ0csR0FBMUMsQ0FBSixFQUFvRDtBQUNoRCxjQUFJSSxJQUFJLEdBQUdmLE1BQU0sQ0FBQ0MsY0FBUCxJQUF5QkQsTUFBTSxDQUFDZ0Isd0JBQWhDLEdBQTJEaEIsTUFBTSxDQUFDZ0Isd0JBQVAsQ0FBZ0NSLEdBQWhDLEVBQXFDRyxHQUFyQyxDQUEzRCxHQUF1RyxFQUFsSDs7QUFFQSxjQUFJSSxJQUFJLENBQUNFLEdBQUwsSUFBWUYsSUFBSSxDQUFDRyxHQUFyQixFQUEwQjtBQUN0QmxCLFlBQUFBLE1BQU0sQ0FBQ0MsY0FBUCxDQUFzQlMsTUFBdEIsRUFBOEJDLEdBQTlCLEVBQW1DSSxJQUFuQztBQUNILFdBRkQsTUFFTztBQUNITCxZQUFBQSxNQUFNLENBQUNDLEdBQUQsQ0FBTixHQUFjSCxHQUFHLENBQUNHLEdBQUQsQ0FBakI7QUFDSDtBQUNKO0FBQ0o7QUFD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LG1CQUFVTixRQUFWLFNBQXFCSSxJQUFyQixTQUE0QkgsUUFBNUIsU0FBdUNVLE1BQXZDLFNBQWdEVCxJQUFoRDtBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZm9ybWF0LXVybC5qcz83YjUzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5mb3JtYXRVcmwgPSBmb3JtYXRVcmw7XG52YXIgcXVlcnlzdHJpbmcgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwiLi9xdWVyeXN0cmluZ1wiKSk7XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHtcbiAgICBpZiAob2JqICYmIG9iai5fX2VzTW9kdWxlKSB7XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIG5ld09iaiA9IHtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKG9iaiAhPSBudWxsKSB7XG4gICAgICAgICAgICBmb3IodmFyIGtleSBpbiBvYmope1xuICAgICAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBkZXNjID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IHtcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3T2JqW2tleV0gPSBvYmpba2V5XTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBuZXdPYmouZGVmYXVsdCA9IG9iajtcbiAgICAgICAgcmV0dXJuIG5ld09iajtcbiAgICB9XG59XG5jb25zdCBzbGFzaGVkUHJvdG9jb2xzID0gL2h0dHBzP3xmdHB8Z29waGVyfGZpbGUvO1xuZnVuY3Rpb24gZm9ybWF0VXJsKHVybE9iaikge1xuICAgIGxldCB7IGF1dGggLCBob3N0bmFtZSAgfSA9IHVybE9iajtcbiAgICBsZXQgcHJvdG9jb2wgPSB1cmxPYmoucHJvdG9jb2wgfHwgJyc7XG4gICAgbGV0IHBhdGhuYW1lID0gdXJsT2JqLnBhdGhuYW1lIHx8ICcnO1xuICAgIGxldCBoYXNoID0gdXJsT2JqLmhhc2ggfHwgJyc7XG4gICAgbGV0IHF1ZXJ5ID0gdXJsT2JqLnF1ZXJ5IHx8ICcnO1xuICAgIGxldCBob3N0ID0gZmFsc2U7XG4gICAgYXV0aCA9IGF1dGggPyBlbmNvZGVVUklDb21wb25lbnQoYXV0aCkucmVwbGFjZSgvJTNBL2ksICc6JykgKyAnQCcgOiAnJztcbiAgICBpZiAodXJsT2JqLmhvc3QpIHtcbiAgICAgICAgaG9zdCA9IGF1dGggKyB1cmxPYmouaG9zdDtcbiAgICB9IGVsc2UgaWYgKGhvc3RuYW1lKSB7XG4gICAgICAgIGhvc3QgPSBhdXRoICsgKH5ob3N0bmFtZS5pbmRleE9mKCc6JykgPyBgWyR7aG9zdG5hbWV9XWAgOiBob3N0bmFtZSk7XG4gICAgICAgIGlmICh1cmxPYmoucG9ydCkge1xuICAgICAgICAgICAgaG9zdCArPSAnOicgKyB1cmxPYmoucG9ydDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAocXVlcnkgJiYgdHlwZW9mIHF1ZXJ5ID09PSAnb2JqZWN0Jykge1xuICAgICAgICBxdWVyeSA9IFN0cmluZyhxdWVyeXN0cmluZy51cmxRdWVyeVRvU2VhcmNoUGFyYW1zKHF1ZXJ5KSk7XG4gICAgfVxuICAgIGxldCBzZWFyY2ggPSB1cmxPYmouc2VhcmNoIHx8IHF1ZXJ5ICYmIGA/JHtxdWVyeX1gIHx8ICcnO1xuICAgIGlmIChwcm90b2NvbCAmJiBwcm90b2NvbC5zdWJzdHIoLTEpICE9PSAnOicpIHByb3RvY29sICs9ICc6JztcbiAgICBpZiAodXJsT2JqLnNsYXNoZXMgfHwgKCFwcm90b2NvbCB8fCBzbGFzaGVkUHJvdG9jb2xzLnRlc3QocHJvdG9jb2wpKSAmJiBob3N0ICE9PSBmYWxzZSkge1xuICAgICAgICBob3N0ID0gJy8vJyArIChob3N0IHx8ICcnKTtcbiAgICAgICAgaWYgKHBhdGhuYW1lICYmIHBhdGhuYW1lWzBdICE9PSAnLycpIHBhdGhuYW1lID0gJy8nICsgcGF0aG5hbWU7XG4gICAgfSBlbHNlIGlmICghaG9zdCkge1xuICAgICAgICBob3N0ID0gJyc7XG4gICAgfVxuICAgIGlmIChoYXNoICYmIGhhc2hbMF0gIT09ICcjJykgaGFzaCA9ICcjJyArIGhhc2g7XG4gICAgaWYgKHNlYXJjaCAmJiBzZWFyY2hbMF0gIT09ICc/Jykgc2VhcmNoID0gJz8nICsgc2VhcmNoO1xuICAgIHBhdGhuYW1lID0gcGF0aG5hbWUucmVwbGFjZSgvWz8jXS9nLCBlbmNvZGVVUklDb21wb25lbnQpO1xuICAgIHNlYXJjaCA9IHNlYXJjaC5yZXBsYWNlKCcjJywgJyUyMycpO1xuICAgIHJldHVybiBgJHtwcm90b2NvbH0ke2hvc3R9JHtwYXRobmFtZX0ke3NlYXJjaH0ke2hhc2h9YDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Zm9ybWF0LXVybC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJmb3JtYXRVcmwiLCJxdWVyeXN0cmluZyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIm9iaiIsIl9fZXNNb2R1bGUiLCJuZXdPYmoiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZ2V0Iiwic2V0Iiwic2xhc2hlZFByb3RvY29scyIsInVybE9iaiIsImF1dGgiLCJob3N0bmFtZSIsInByb3RvY29sIiwicGF0aG5hbWUiLCJoYXNoIiwicXVlcnkiLCJob3N0IiwiZW5jb2RlVVJJQ29tcG9uZW50IiwicmVwbGFjZSIsImluZGV4T2YiLCJwb3J0IiwiU3RyaW5nIiwidXJsUXVlcnlUb1NlYXJjaFBhcmFtcyIsInNlYXJjaCIsInN1YnN0ciIsInNsYXNoZXMiLCJ0ZXN0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/format-url.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/get-asset-path-from-route.js": +/*!*************************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/get-asset-path-from-route.js ***! + \*************************************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = getAssetPathFromRoute;\n\nfunction getAssetPathFromRoute(route) {\n var ext = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var path = route === '/' ? '/index' : /^\\/index(\\/|$)/.test(route) ? \"/index\".concat(route) : \"\".concat(route);\n return path + ext;\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2dldC1hc3NldC1wYXRoLWZyb20tcm91dGUuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxrQkFBQSxHQUFrQkUscUJBQWxCOztBQUNBLFNBQVNBLHFCQUFULENBQStCQyxLQUEvQixFQUFnRDtBQUFBLE1BQVZDLEdBQVUsdUVBQUosRUFBSTtBQUM1QyxNQUFNQyxJQUFJLEdBQUdGLEtBQUssS0FBSyxHQUFWLEdBQWdCLFFBQWhCLEdBQTJCLGlCQUFpQkcsSUFBakIsQ0FBc0JILEtBQXRCLG9CQUF3Q0EsS0FBeEMsY0FBcURBLEtBQXJELENBQXhDO0FBQ0EsU0FBT0UsSUFBSSxHQUFHRCxHQUFkO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zaGFyZWQvbGliL3JvdXRlci91dGlscy9nZXQtYXNzZXQtcGF0aC1mcm9tLXJvdXRlLmpzP2E2ZmYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSBnZXRBc3NldFBhdGhGcm9tUm91dGU7XG5mdW5jdGlvbiBnZXRBc3NldFBhdGhGcm9tUm91dGUocm91dGUsIGV4dCA9ICcnKSB7XG4gICAgY29uc3QgcGF0aCA9IHJvdXRlID09PSAnLycgPyAnL2luZGV4JyA6IC9eXFwvaW5kZXgoXFwvfCQpLy50ZXN0KHJvdXRlKSA/IGAvaW5kZXgke3JvdXRlfWAgOiBgJHtyb3V0ZX1gO1xuICAgIHJldHVybiBwYXRoICsgZXh0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1nZXQtYXNzZXQtcGF0aC1mcm9tLXJvdXRlLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImdldEFzc2V0UGF0aEZyb21Sb3V0ZSIsInJvdXRlIiwiZXh0IiwicGF0aCIsInRlc3QiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/get-asset-path-from-route.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/get-middleware-regex.js": +/*!********************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/get-middleware-regex.js ***! + \********************************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.getMiddlewareRegex = getMiddlewareRegex;\n\nvar _routeRegex = __webpack_require__(/*! ./route-regex */ \"./node_modules/next/dist/shared/lib/router/utils/route-regex.js\");\n\nfunction getMiddlewareRegex(normalizedRoute) {\n var catchAll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var result = (0, _routeRegex).getParametrizedRoute(normalizedRoute);\n var catchAllRegex = catchAll ? '(?!_next).*' : '';\n var catchAllGroupedRegex = catchAll ? '(?:(/.*)?)' : '';\n\n if ('routeKeys' in result) {\n if (result.parameterizedRoute === '/') {\n return {\n groups: {},\n namedRegex: \"^/\".concat(catchAllRegex, \"$\"),\n re: new RegExp(\"^/\".concat(catchAllRegex, \"$\")),\n routeKeys: {}\n };\n }\n\n return {\n groups: result.groups,\n namedRegex: \"^\".concat(result.namedParameterizedRoute).concat(catchAllGroupedRegex, \"$\"),\n re: new RegExp(\"^\".concat(result.parameterizedRoute).concat(catchAllGroupedRegex, \"$\")),\n routeKeys: result.routeKeys\n };\n }\n\n if (result.parameterizedRoute === '/') {\n return {\n groups: {},\n re: new RegExp(\"^/\".concat(catchAllRegex, \"$\"))\n };\n }\n\n return {\n groups: {},\n re: new RegExp(\"^\".concat(result.parameterizedRoute).concat(catchAllGroupedRegex, \"$\"))\n };\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2dldC1taWRkbGV3YXJlLXJlZ2V4LmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7QUFDYkEsOENBQTZDO0FBQ3pDRyxFQUFBQSxLQUFLLEVBQUU7QUFEa0MsQ0FBN0M7QUFHQUQsMEJBQUEsR0FBNkJFLGtCQUE3Qjs7QUFDQSxJQUFJQyxXQUFXLEdBQUdDLG1CQUFPLENBQUMsc0ZBQUQsQ0FBekI7O0FBQ0EsU0FBU0Ysa0JBQVQsQ0FBNEJHLGVBQTVCLEVBQThEO0FBQUEsTUFBakJDLFFBQWlCLHVFQUFOLElBQU07QUFDMUQsTUFBTUMsTUFBTSxHQUFHLENBQUMsR0FBR0osV0FBSixFQUFpQkssb0JBQWpCLENBQXNDSCxlQUF0QyxDQUFmO0FBQ0EsTUFBSUksYUFBYSxHQUFHSCxRQUFRLEdBQUcsYUFBSCxHQUFtQixFQUEvQztBQUNBLE1BQUlJLG9CQUFvQixHQUFHSixRQUFRLEdBQUcsWUFBSCxHQUFrQixFQUFyRDs7QUFDQSxNQUFJLGVBQWVDLE1BQW5CLEVBQTJCO0FBQ3ZCLFFBQUlBLE1BQU0sQ0FBQ0ksa0JBQVAsS0FBOEIsR0FBbEMsRUFBdUM7QUFDbkMsYUFBTztBQUNIQyxRQUFBQSxNQUFNLEVBQUUsRUFETDtBQUdIQyxRQUFBQSxVQUFVLGNBQU9KLGFBQVAsTUFIUDtBQUlISyxRQUFBQSxFQUFFLEVBQUUsSUFBSUMsTUFBSixhQUFnQk4sYUFBaEIsT0FKRDtBQUtITyxRQUFBQSxTQUFTLEVBQUU7QUFMUixPQUFQO0FBUUg7O0FBQ0QsV0FBTztBQUNISixNQUFBQSxNQUFNLEVBQUVMLE1BQU0sQ0FBQ0ssTUFEWjtBQUVIQyxNQUFBQSxVQUFVLGFBQU1OLE1BQU0sQ0FBQ1UsdUJBQWIsU0FBdUNQLG9CQUF2QyxNQUZQO0FBR0hJLE1BQUFBLEVBQUUsRUFBRSxJQUFJQyxNQUFKLFlBQWVSLE1BQU0sQ0FBQ0ksa0JBQXRCLFNBQTJDRCxvQkFBM0MsT0FIRDtBQUlITSxNQUFBQSxTQUFTLEVBQUVULE1BQU0sQ0FBQ1M7QUFKZixLQUFQO0FBTUg7O0FBQ0QsTUFBSVQsTUFBTSxDQUFDSSxrQkFBUCxLQUE4QixHQUFsQyxFQUF1QztBQUNuQyxXQUFPO0FBQ0hDLE1BQUFBLE1BQU0sRUFBRSxFQURMO0FBR0hFLE1BQUFBLEVBQUUsRUFBRSxJQUFJQyxNQUFKLGFBQWdCTixhQUFoQjtBQUhELEtBQVA7QUFLSDs7QUFDRCxTQUFPO0FBQ0hHLElBQUFBLE1BQU0sRUFBRSxFQURMO0FBR0hFLElBQUFBLEVBQUUsRUFBRSxJQUFJQyxNQUFKLFlBQWVSLE1BQU0sQ0FBQ0ksa0JBQXRCLFNBQTJDRCxvQkFBM0M7QUFIRCxHQUFQO0FBS0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zaGFyZWQvbGliL3JvdXRlci91dGlscy9nZXQtbWlkZGxld2FyZS1yZWdleC5qcz8wNDUyIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5nZXRNaWRkbGV3YXJlUmVnZXggPSBnZXRNaWRkbGV3YXJlUmVnZXg7XG52YXIgX3JvdXRlUmVnZXggPSByZXF1aXJlKFwiLi9yb3V0ZS1yZWdleFwiKTtcbmZ1bmN0aW9uIGdldE1pZGRsZXdhcmVSZWdleChub3JtYWxpemVkUm91dGUsIGNhdGNoQWxsID0gdHJ1ZSkge1xuICAgIGNvbnN0IHJlc3VsdCA9ICgwLCBfcm91dGVSZWdleCkuZ2V0UGFyYW1ldHJpemVkUm91dGUobm9ybWFsaXplZFJvdXRlKTtcbiAgICBsZXQgY2F0Y2hBbGxSZWdleCA9IGNhdGNoQWxsID8gJyg/IV9uZXh0KS4qJyA6ICcnO1xuICAgIGxldCBjYXRjaEFsbEdyb3VwZWRSZWdleCA9IGNhdGNoQWxsID8gJyg/OigvLiopPyknIDogJyc7XG4gICAgaWYgKCdyb3V0ZUtleXMnIGluIHJlc3VsdCkge1xuICAgICAgICBpZiAocmVzdWx0LnBhcmFtZXRlcml6ZWRSb3V0ZSA9PT0gJy8nKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGdyb3Vwczoge1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgbmFtZWRSZWdleDogYF4vJHtjYXRjaEFsbFJlZ2V4fSRgLFxuICAgICAgICAgICAgICAgIHJlOiBuZXcgUmVnRXhwKGBeLyR7Y2F0Y2hBbGxSZWdleH0kYCksXG4gICAgICAgICAgICAgICAgcm91dGVLZXlzOiB7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZ3JvdXBzOiByZXN1bHQuZ3JvdXBzLFxuICAgICAgICAgICAgbmFtZWRSZWdleDogYF4ke3Jlc3VsdC5uYW1lZFBhcmFtZXRlcml6ZWRSb3V0ZX0ke2NhdGNoQWxsR3JvdXBlZFJlZ2V4fSRgLFxuICAgICAgICAgICAgcmU6IG5ldyBSZWdFeHAoYF4ke3Jlc3VsdC5wYXJhbWV0ZXJpemVkUm91dGV9JHtjYXRjaEFsbEdyb3VwZWRSZWdleH0kYCksXG4gICAgICAgICAgICByb3V0ZUtleXM6IHJlc3VsdC5yb3V0ZUtleXNcbiAgICAgICAgfTtcbiAgICB9XG4gICAgaWYgKHJlc3VsdC5wYXJhbWV0ZXJpemVkUm91dGUgPT09ICcvJykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZ3JvdXBzOiB7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmU6IG5ldyBSZWdFeHAoYF4vJHtjYXRjaEFsbFJlZ2V4fSRgKVxuICAgICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBncm91cHM6IHtcbiAgICAgICAgfSxcbiAgICAgICAgcmU6IG5ldyBSZWdFeHAoYF4ke3Jlc3VsdC5wYXJhbWV0ZXJpemVkUm91dGV9JHtjYXRjaEFsbEdyb3VwZWRSZWdleH0kYClcbiAgICB9O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1nZXQtbWlkZGxld2FyZS1yZWdleC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJnZXRNaWRkbGV3YXJlUmVnZXgiLCJfcm91dGVSZWdleCIsInJlcXVpcmUiLCJub3JtYWxpemVkUm91dGUiLCJjYXRjaEFsbCIsInJlc3VsdCIsImdldFBhcmFtZXRyaXplZFJvdXRlIiwiY2F0Y2hBbGxSZWdleCIsImNhdGNoQWxsR3JvdXBlZFJlZ2V4IiwicGFyYW1ldGVyaXplZFJvdXRlIiwiZ3JvdXBzIiwibmFtZWRSZWdleCIsInJlIiwiUmVnRXhwIiwicm91dGVLZXlzIiwibmFtZWRQYXJhbWV0ZXJpemVkUm91dGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/get-middleware-regex.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js": +/*!**********************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js ***! + \**********************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.isDynamicRoute = isDynamicRoute; // Identify /[param]/ in route string\n\nvar TEST_ROUTE = /\\/\\[[^/]+?\\](?=\\/|$)/;\n\nfunction isDynamicRoute(route) {\n return TEST_ROUTE.test(route);\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWR5bmFtaWMuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxzQkFBQSxHQUF5QkUsY0FBekIsRUFDQTs7QUFDQSxJQUFNQyxVQUFVLEdBQUcsc0JBQW5COztBQUNBLFNBQVNELGNBQVQsQ0FBd0JFLEtBQXhCLEVBQStCO0FBQzNCLFNBQU9ELFVBQVUsQ0FBQ0UsSUFBWCxDQUFnQkQsS0FBaEIsQ0FBUDtBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaXMtZHluYW1pYy5qcz80NmY5Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5pc0R5bmFtaWNSb3V0ZSA9IGlzRHluYW1pY1JvdXRlO1xuLy8gSWRlbnRpZnkgL1twYXJhbV0vIGluIHJvdXRlIHN0cmluZ1xuY29uc3QgVEVTVF9ST1VURSA9IC9cXC9cXFtbXi9dKz9cXF0oPz1cXC98JCkvO1xuZnVuY3Rpb24gaXNEeW5hbWljUm91dGUocm91dGUpIHtcbiAgICByZXR1cm4gVEVTVF9ST1VURS50ZXN0KHJvdXRlKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXMtZHluYW1pYy5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJpc0R5bmFtaWNSb3V0ZSIsIlRFU1RfUk9VVEUiLCJyb3V0ZSIsInRlc3QiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js": +/*!******************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js ***! + \******************************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.parseRelativeUrl = parseRelativeUrl;\n\nvar _utils = __webpack_require__(/*! ../../utils */ \"./node_modules/next/dist/shared/lib/utils.js\");\n\nvar _querystring = __webpack_require__(/*! ./querystring */ \"./node_modules/next/dist/shared/lib/router/utils/querystring.js\");\n\nfunction parseRelativeUrl(url, base) {\n var globalBase = new URL( false ? 0 : (0, _utils).getLocationOrigin());\n var resolvedBase = base ? new URL(base, globalBase) : globalBase;\n\n var _URL = new URL(url, resolvedBase),\n pathname = _URL.pathname,\n searchParams = _URL.searchParams,\n search = _URL.search,\n hash = _URL.hash,\n href = _URL.href,\n origin = _URL.origin;\n\n if (origin !== globalBase.origin) {\n throw new Error(\"invariant: invalid relative URL, router received \".concat(url));\n }\n\n return {\n pathname: pathname,\n query: (0, _querystring).searchParamsToUrlQuery(searchParams),\n search: search,\n hash: hash,\n href: href.slice(globalBase.origin.length)\n };\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhcnNlLXJlbGF0aXZlLXVybC5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELHdCQUFBLEdBQTJCRSxnQkFBM0I7O0FBQ0EsSUFBSUMsTUFBTSxHQUFHQyxtQkFBTyxDQUFDLGlFQUFELENBQXBCOztBQUNBLElBQUlDLFlBQVksR0FBR0QsbUJBQU8sQ0FBQyxzRkFBRCxDQUExQjs7QUFDQSxTQUFTRixnQkFBVCxDQUEwQkksR0FBMUIsRUFBK0JDLElBQS9CLEVBQXFDO0FBQ2pDLE1BQU1DLFVBQVUsR0FBRyxJQUFJQyxHQUFKLENBQVEsU0FBZ0MsQ0FBaEMsR0FBNkMsQ0FBQyxHQUFHTixNQUFKLEVBQVlPLGlCQUFaLEVBQXJELENBQW5CO0FBQ0EsTUFBTUMsWUFBWSxHQUFHSixJQUFJLEdBQUcsSUFBSUUsR0FBSixDQUFRRixJQUFSLEVBQWNDLFVBQWQsQ0FBSCxHQUErQkEsVUFBeEQ7O0FBQ0EsYUFBcUUsSUFBSUMsR0FBSixDQUFRSCxHQUFSLEVBQWFLLFlBQWIsQ0FBckU7QUFBQSxNQUFRQyxRQUFSLFFBQVFBLFFBQVI7QUFBQSxNQUFtQkMsWUFBbkIsUUFBbUJBLFlBQW5CO0FBQUEsTUFBa0NDLE1BQWxDLFFBQWtDQSxNQUFsQztBQUFBLE1BQTJDQyxJQUEzQyxRQUEyQ0EsSUFBM0M7QUFBQSxNQUFrREMsSUFBbEQsUUFBa0RBLElBQWxEO0FBQUEsTUFBeURDLE1BQXpELFFBQXlEQSxNQUF6RDs7QUFDQSxNQUFJQSxNQUFNLEtBQUtULFVBQVUsQ0FBQ1MsTUFBMUIsRUFBa0M7QUFDOUIsVUFBTSxJQUFJQyxLQUFKLDREQUE4RFosR0FBOUQsRUFBTjtBQUNIOztBQUNELFNBQU87QUFDSE0sSUFBQUEsUUFBUSxFQUFSQSxRQURHO0FBRUhPLElBQUFBLEtBQUssRUFBRSxDQUFDLEdBQUdkLFlBQUosRUFBa0JlLHNCQUFsQixDQUF5Q1AsWUFBekMsQ0FGSjtBQUdIQyxJQUFBQSxNQUFNLEVBQU5BLE1BSEc7QUFJSEMsSUFBQUEsSUFBSSxFQUFKQSxJQUpHO0FBS0hDLElBQUFBLElBQUksRUFBRUEsSUFBSSxDQUFDSyxLQUFMLENBQVdiLFVBQVUsQ0FBQ1MsTUFBWCxDQUFrQkssTUFBN0I7QUFMSCxHQUFQO0FBT0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zaGFyZWQvbGliL3JvdXRlci91dGlscy9wYXJzZS1yZWxhdGl2ZS11cmwuanM/NGVkZiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMucGFyc2VSZWxhdGl2ZVVybCA9IHBhcnNlUmVsYXRpdmVVcmw7XG52YXIgX3V0aWxzID0gcmVxdWlyZShcIi4uLy4uL3V0aWxzXCIpO1xudmFyIF9xdWVyeXN0cmluZyA9IHJlcXVpcmUoXCIuL3F1ZXJ5c3RyaW5nXCIpO1xuZnVuY3Rpb24gcGFyc2VSZWxhdGl2ZVVybCh1cmwsIGJhc2UpIHtcbiAgICBjb25zdCBnbG9iYWxCYXNlID0gbmV3IFVSTCh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyA/ICdodHRwOi8vbicgOiAoMCwgX3V0aWxzKS5nZXRMb2NhdGlvbk9yaWdpbigpKTtcbiAgICBjb25zdCByZXNvbHZlZEJhc2UgPSBiYXNlID8gbmV3IFVSTChiYXNlLCBnbG9iYWxCYXNlKSA6IGdsb2JhbEJhc2U7XG4gICAgY29uc3QgeyBwYXRobmFtZSAsIHNlYXJjaFBhcmFtcyAsIHNlYXJjaCAsIGhhc2ggLCBocmVmICwgb3JpZ2luICB9ID0gbmV3IFVSTCh1cmwsIHJlc29sdmVkQmFzZSk7XG4gICAgaWYgKG9yaWdpbiAhPT0gZ2xvYmFsQmFzZS5vcmlnaW4pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhcmlhbnQ6IGludmFsaWQgcmVsYXRpdmUgVVJMLCByb3V0ZXIgcmVjZWl2ZWQgJHt1cmx9YCk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHBhdGhuYW1lLFxuICAgICAgICBxdWVyeTogKDAsIF9xdWVyeXN0cmluZykuc2VhcmNoUGFyYW1zVG9VcmxRdWVyeShzZWFyY2hQYXJhbXMpLFxuICAgICAgICBzZWFyY2gsXG4gICAgICAgIGhhc2gsXG4gICAgICAgIGhyZWY6IGhyZWYuc2xpY2UoZ2xvYmFsQmFzZS5vcmlnaW4ubGVuZ3RoKVxuICAgIH07XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBhcnNlLXJlbGF0aXZlLXVybC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJwYXJzZVJlbGF0aXZlVXJsIiwiX3V0aWxzIiwicmVxdWlyZSIsIl9xdWVyeXN0cmluZyIsInVybCIsImJhc2UiLCJnbG9iYWxCYXNlIiwiVVJMIiwiZ2V0TG9jYXRpb25PcmlnaW4iLCJyZXNvbHZlZEJhc2UiLCJwYXRobmFtZSIsInNlYXJjaFBhcmFtcyIsInNlYXJjaCIsImhhc2giLCJocmVmIiwib3JpZ2luIiwiRXJyb3IiLCJxdWVyeSIsInNlYXJjaFBhcmFtc1RvVXJsUXVlcnkiLCJzbGljZSIsImxlbmd0aCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/querystring.js": +/*!***********************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/querystring.js ***! + \***********************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _slicedToArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.searchParamsToUrlQuery = searchParamsToUrlQuery;\nexports.urlQueryToSearchParams = urlQueryToSearchParams;\nexports.assign = assign;\n\nfunction searchParamsToUrlQuery(searchParams) {\n var query = {};\n searchParams.forEach(function (value, key) {\n if (typeof query[key] === 'undefined') {\n query[key] = value;\n } else if (Array.isArray(query[key])) {\n query[key].push(value);\n } else {\n query[key] = [query[key], value];\n }\n });\n return query;\n}\n\nfunction stringifyUrlQueryParam(param) {\n if (typeof param === 'string' || typeof param === 'number' && !isNaN(param) || typeof param === 'boolean') {\n return String(param);\n } else {\n return '';\n }\n}\n\nfunction urlQueryToSearchParams(urlQuery) {\n var result = new URLSearchParams();\n Object.entries(urlQuery).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n\n if (Array.isArray(value)) {\n value.forEach(function (item) {\n return result.append(key, stringifyUrlQueryParam(item));\n });\n } else {\n result.set(key, stringifyUrlQueryParam(value));\n }\n });\n return result;\n}\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\n searchParamsList.forEach(function (searchParams) {\n Array.from(searchParams.keys()).forEach(function (key) {\n return target[\"delete\"](key);\n });\n searchParams.forEach(function (value, key) {\n return target.append(key, value);\n });\n });\n return target;\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3F1ZXJ5c3RyaW5nLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7OztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCw4QkFBQSxHQUFpQ0Usc0JBQWpDO0FBQ0FGLDhCQUFBLEdBQWlDRyxzQkFBakM7QUFDQUgsY0FBQSxHQUFpQkksTUFBakI7O0FBQ0EsU0FBU0Ysc0JBQVQsQ0FBZ0NHLFlBQWhDLEVBQThDO0FBQzFDLE1BQU1DLEtBQUssR0FBRyxFQUFkO0FBRUFELEVBQUFBLFlBQVksQ0FBQ0UsT0FBYixDQUFxQixVQUFDTixLQUFELEVBQVFPLEdBQVIsRUFBYztBQUMvQixRQUFJLE9BQU9GLEtBQUssQ0FBQ0UsR0FBRCxDQUFaLEtBQXNCLFdBQTFCLEVBQXVDO0FBQ25DRixNQUFBQSxLQUFLLENBQUNFLEdBQUQsQ0FBTCxHQUFhUCxLQUFiO0FBQ0gsS0FGRCxNQUVPLElBQUlRLEtBQUssQ0FBQ0MsT0FBTixDQUFjSixLQUFLLENBQUNFLEdBQUQsQ0FBbkIsQ0FBSixFQUErQjtBQUNsQ0YsTUFBQUEsS0FBSyxDQUFDRSxHQUFELENBQUwsQ0FBV0csSUFBWCxDQUFnQlYsS0FBaEI7QUFDSCxLQUZNLE1BRUE7QUFDSEssTUFBQUEsS0FBSyxDQUFDRSxHQUFELENBQUwsR0FBYSxDQUNURixLQUFLLENBQUNFLEdBQUQsQ0FESSxFQUVUUCxLQUZTLENBQWI7QUFJSDtBQUNKLEdBWEQ7QUFZQSxTQUFPSyxLQUFQO0FBQ0g7O0FBQ0QsU0FBU00sc0JBQVQsQ0FBZ0NDLEtBQWhDLEVBQXVDO0FBQ25DLE1BQUksT0FBT0EsS0FBUCxLQUFpQixRQUFqQixJQUE2QixPQUFPQSxLQUFQLEtBQWlCLFFBQWpCLElBQTZCLENBQUNDLEtBQUssQ0FBQ0QsS0FBRCxDQUFoRSxJQUEyRSxPQUFPQSxLQUFQLEtBQWlCLFNBQWhHLEVBQTJHO0FBQ3ZHLFdBQU9FLE1BQU0sQ0FBQ0YsS0FBRCxDQUFiO0FBQ0gsR0FGRCxNQUVPO0FBQ0gsV0FBTyxFQUFQO0FBQ0g7QUFDSjs7QUFDRCxTQUFTVixzQkFBVCxDQUFnQ2EsUUFBaEMsRUFBMEM7QUFDdEMsTUFBTUMsTUFBTSxHQUFHLElBQUlDLGVBQUosRUFBZjtBQUNBcEIsRUFBQUEsTUFBTSxDQUFDcUIsT0FBUCxDQUFlSCxRQUFmLEVBQXlCVCxPQUF6QixDQUFpQyxnQkFBZ0I7QUFBQTtBQUFBLFFBQWRDLEdBQWM7QUFBQSxRQUFUUCxLQUFTOztBQUM3QyxRQUFJUSxLQUFLLENBQUNDLE9BQU4sQ0FBY1QsS0FBZCxDQUFKLEVBQTBCO0FBQ3RCQSxNQUFBQSxLQUFLLENBQUNNLE9BQU4sQ0FBYyxVQUFDYSxJQUFEO0FBQUEsZUFBUUgsTUFBTSxDQUFDSSxNQUFQLENBQWNiLEdBQWQsRUFBbUJJLHNCQUFzQixDQUFDUSxJQUFELENBQXpDLENBQVI7QUFBQSxPQUFkO0FBRUgsS0FIRCxNQUdPO0FBQ0hILE1BQUFBLE1BQU0sQ0FBQ0ssR0FBUCxDQUFXZCxHQUFYLEVBQWdCSSxzQkFBc0IsQ0FBQ1gsS0FBRCxDQUF0QztBQUNIO0FBQ0osR0FQRDtBQVFBLFNBQU9nQixNQUFQO0FBQ0g7O0FBQ0QsU0FBU2IsTUFBVCxDQUFnQm1CLE1BQWhCLEVBQTZDO0FBQUEsb0NBQWxCQyxnQkFBa0I7QUFBbEJBLElBQUFBLGdCQUFrQjtBQUFBOztBQUN6Q0EsRUFBQUEsZ0JBQWdCLENBQUNqQixPQUFqQixDQUF5QixVQUFDRixZQUFELEVBQWdCO0FBQ3JDSSxJQUFBQSxLQUFLLENBQUNnQixJQUFOLENBQVdwQixZQUFZLENBQUNxQixJQUFiLEVBQVgsRUFBZ0NuQixPQUFoQyxDQUF3QyxVQUFDQyxHQUFEO0FBQUEsYUFBT2UsTUFBTSxVQUFOLENBQWNmLEdBQWQsQ0FBUDtBQUFBLEtBQXhDO0FBRUFILElBQUFBLFlBQVksQ0FBQ0UsT0FBYixDQUFxQixVQUFDTixLQUFELEVBQVFPLEdBQVI7QUFBQSxhQUFjZSxNQUFNLENBQUNGLE1BQVAsQ0FBY2IsR0FBZCxFQUFtQlAsS0FBbkIsQ0FBZDtBQUFBLEtBQXJCO0FBRUgsR0FMRDtBQU1BLFNBQU9zQixNQUFQO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zaGFyZWQvbGliL3JvdXRlci91dGlscy9xdWVyeXN0cmluZy5qcz8wMTQ5Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5zZWFyY2hQYXJhbXNUb1VybFF1ZXJ5ID0gc2VhcmNoUGFyYW1zVG9VcmxRdWVyeTtcbmV4cG9ydHMudXJsUXVlcnlUb1NlYXJjaFBhcmFtcyA9IHVybFF1ZXJ5VG9TZWFyY2hQYXJhbXM7XG5leHBvcnRzLmFzc2lnbiA9IGFzc2lnbjtcbmZ1bmN0aW9uIHNlYXJjaFBhcmFtc1RvVXJsUXVlcnkoc2VhcmNoUGFyYW1zKSB7XG4gICAgY29uc3QgcXVlcnkgPSB7XG4gICAgfTtcbiAgICBzZWFyY2hQYXJhbXMuZm9yRWFjaCgodmFsdWUsIGtleSk9PntcbiAgICAgICAgaWYgKHR5cGVvZiBxdWVyeVtrZXldID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgcXVlcnlba2V5XSA9IHZhbHVlO1xuICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkocXVlcnlba2V5XSkpIHtcbiAgICAgICAgICAgIHF1ZXJ5W2tleV0ucHVzaCh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBxdWVyeVtrZXldID0gW1xuICAgICAgICAgICAgICAgIHF1ZXJ5W2tleV0sXG4gICAgICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICAgIF07XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcXVlcnk7XG59XG5mdW5jdGlvbiBzdHJpbmdpZnlVcmxRdWVyeVBhcmFtKHBhcmFtKSB7XG4gICAgaWYgKHR5cGVvZiBwYXJhbSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHBhcmFtID09PSAnbnVtYmVyJyAmJiAhaXNOYU4ocGFyYW0pIHx8IHR5cGVvZiBwYXJhbSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgIHJldHVybiBTdHJpbmcocGFyYW0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG59XG5mdW5jdGlvbiB1cmxRdWVyeVRvU2VhcmNoUGFyYW1zKHVybFF1ZXJ5KSB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICAgIE9iamVjdC5lbnRyaWVzKHVybFF1ZXJ5KS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pPT57XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgdmFsdWUuZm9yRWFjaCgoaXRlbSk9PnJlc3VsdC5hcHBlbmQoa2V5LCBzdHJpbmdpZnlVcmxRdWVyeVBhcmFtKGl0ZW0pKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc3VsdC5zZXQoa2V5LCBzdHJpbmdpZnlVcmxRdWVyeVBhcmFtKHZhbHVlKSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xufVxuZnVuY3Rpb24gYXNzaWduKHRhcmdldCwgLi4uc2VhcmNoUGFyYW1zTGlzdCkge1xuICAgIHNlYXJjaFBhcmFtc0xpc3QuZm9yRWFjaCgoc2VhcmNoUGFyYW1zKT0+e1xuICAgICAgICBBcnJheS5mcm9tKHNlYXJjaFBhcmFtcy5rZXlzKCkpLmZvckVhY2goKGtleSk9PnRhcmdldC5kZWxldGUoa2V5KVxuICAgICAgICApO1xuICAgICAgICBzZWFyY2hQYXJhbXMuZm9yRWFjaCgodmFsdWUsIGtleSk9PnRhcmdldC5hcHBlbmQoa2V5LCB2YWx1ZSlcbiAgICAgICAgKTtcbiAgICB9KTtcbiAgICByZXR1cm4gdGFyZ2V0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1xdWVyeXN0cmluZy5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5IiwidXJsUXVlcnlUb1NlYXJjaFBhcmFtcyIsImFzc2lnbiIsInNlYXJjaFBhcmFtcyIsInF1ZXJ5IiwiZm9yRWFjaCIsImtleSIsIkFycmF5IiwiaXNBcnJheSIsInB1c2giLCJzdHJpbmdpZnlVcmxRdWVyeVBhcmFtIiwicGFyYW0iLCJpc05hTiIsIlN0cmluZyIsInVybFF1ZXJ5IiwicmVzdWx0IiwiVVJMU2VhcmNoUGFyYW1zIiwiZW50cmllcyIsIml0ZW0iLCJhcHBlbmQiLCJzZXQiLCJ0YXJnZXQiLCJzZWFyY2hQYXJhbXNMaXN0IiwiZnJvbSIsImtleXMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/querystring.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/route-matcher.js": +/*!*************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/route-matcher.js ***! + \*************************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.getRouteMatcher = getRouteMatcher;\n\nvar _utils = __webpack_require__(/*! ../../utils */ \"./node_modules/next/dist/shared/lib/utils.js\");\n\nfunction getRouteMatcher(routeRegex) {\n var re = routeRegex.re,\n groups = routeRegex.groups;\n return function (pathname) {\n var routeMatch = re.exec(pathname);\n\n if (!routeMatch) {\n return false;\n }\n\n var decode = function decode(param) {\n try {\n return decodeURIComponent(param);\n } catch (_) {\n throw new _utils.DecodeError('failed to decode param');\n }\n };\n\n var params = {};\n Object.keys(groups).forEach(function (slugName) {\n var g = groups[slugName];\n var m = routeMatch[g.pos];\n\n if (m !== undefined) {\n params[slugName] = ~m.indexOf('/') ? m.split('/').map(function (entry) {\n return decode(entry);\n }) : g.repeat ? [decode(m)] : decode(m);\n }\n });\n return params;\n };\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JvdXRlLW1hdGNoZXIuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCx1QkFBQSxHQUEwQkUsZUFBMUI7O0FBQ0EsSUFBSUMsTUFBTSxHQUFHQyxtQkFBTyxDQUFDLGlFQUFELENBQXBCOztBQUNBLFNBQVNGLGVBQVQsQ0FBeUJHLFVBQXpCLEVBQXFDO0FBQ2pDLE1BQVFDLEVBQVIsR0FBeUJELFVBQXpCLENBQVFDLEVBQVI7QUFBQSxNQUFhQyxNQUFiLEdBQXlCRixVQUF6QixDQUFhRSxNQUFiO0FBQ0EsU0FBTyxVQUFDQyxRQUFELEVBQVk7QUFDZixRQUFNQyxVQUFVLEdBQUdILEVBQUUsQ0FBQ0ksSUFBSCxDQUFRRixRQUFSLENBQW5COztBQUNBLFFBQUksQ0FBQ0MsVUFBTCxFQUFpQjtBQUNiLGFBQU8sS0FBUDtBQUNIOztBQUNELFFBQU1FLE1BQU0sR0FBRyxTQUFUQSxNQUFTLENBQUNDLEtBQUQsRUFBUztBQUNwQixVQUFJO0FBQ0EsZUFBT0Msa0JBQWtCLENBQUNELEtBQUQsQ0FBekI7QUFDSCxPQUZELENBRUUsT0FBT0UsQ0FBUCxFQUFVO0FBQ1IsY0FBTSxJQUFJWCxNQUFNLENBQUNZLFdBQVgsQ0FBdUIsd0JBQXZCLENBQU47QUFDSDtBQUNKLEtBTkQ7O0FBT0EsUUFBTUMsTUFBTSxHQUFHLEVBQWY7QUFFQWxCLElBQUFBLE1BQU0sQ0FBQ21CLElBQVAsQ0FBWVYsTUFBWixFQUFvQlcsT0FBcEIsQ0FBNEIsVUFBQ0MsUUFBRCxFQUFZO0FBQ3BDLFVBQU1DLENBQUMsR0FBR2IsTUFBTSxDQUFDWSxRQUFELENBQWhCO0FBQ0EsVUFBTUUsQ0FBQyxHQUFHWixVQUFVLENBQUNXLENBQUMsQ0FBQ0UsR0FBSCxDQUFwQjs7QUFDQSxVQUFJRCxDQUFDLEtBQUtFLFNBQVYsRUFBcUI7QUFDakJQLFFBQUFBLE1BQU0sQ0FBQ0csUUFBRCxDQUFOLEdBQW1CLENBQUNFLENBQUMsQ0FBQ0csT0FBRixDQUFVLEdBQVYsQ0FBRCxHQUFrQkgsQ0FBQyxDQUFDSSxLQUFGLENBQVEsR0FBUixFQUFhQyxHQUFiLENBQWlCLFVBQUNDLEtBQUQ7QUFBQSxpQkFBU2hCLE1BQU0sQ0FBQ2dCLEtBQUQsQ0FBZjtBQUFBLFNBQWpCLENBQWxCLEdBQ2ZQLENBQUMsQ0FBQ1EsTUFBRixHQUFXLENBQ1hqQixNQUFNLENBQUNVLENBQUQsQ0FESyxDQUFYLEdBRUFWLE1BQU0sQ0FBQ1UsQ0FBRCxDQUhWO0FBSUg7QUFDSixLQVREO0FBVUEsV0FBT0wsTUFBUDtBQUNILEdBekJEO0FBMEJIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcm91dGUtbWF0Y2hlci5qcz9jODZjIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5nZXRSb3V0ZU1hdGNoZXIgPSBnZXRSb3V0ZU1hdGNoZXI7XG52YXIgX3V0aWxzID0gcmVxdWlyZShcIi4uLy4uL3V0aWxzXCIpO1xuZnVuY3Rpb24gZ2V0Um91dGVNYXRjaGVyKHJvdXRlUmVnZXgpIHtcbiAgICBjb25zdCB7IHJlICwgZ3JvdXBzICB9ID0gcm91dGVSZWdleDtcbiAgICByZXR1cm4gKHBhdGhuYW1lKT0+e1xuICAgICAgICBjb25zdCByb3V0ZU1hdGNoID0gcmUuZXhlYyhwYXRobmFtZSk7XG4gICAgICAgIGlmICghcm91dGVNYXRjaCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRlY29kZSA9IChwYXJhbSk9PntcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChwYXJhbSk7XG4gICAgICAgICAgICB9IGNhdGNoIChfKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IF91dGlscy5EZWNvZGVFcnJvcignZmFpbGVkIHRvIGRlY29kZSBwYXJhbScpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICAgIH07XG4gICAgICAgIE9iamVjdC5rZXlzKGdyb3VwcykuZm9yRWFjaCgoc2x1Z05hbWUpPT57XG4gICAgICAgICAgICBjb25zdCBnID0gZ3JvdXBzW3NsdWdOYW1lXTtcbiAgICAgICAgICAgIGNvbnN0IG0gPSByb3V0ZU1hdGNoW2cucG9zXTtcbiAgICAgICAgICAgIGlmIChtICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBwYXJhbXNbc2x1Z05hbWVdID0gfm0uaW5kZXhPZignLycpID8gbS5zcGxpdCgnLycpLm1hcCgoZW50cnkpPT5kZWNvZGUoZW50cnkpXG4gICAgICAgICAgICAgICAgKSA6IGcucmVwZWF0ID8gW1xuICAgICAgICAgICAgICAgICAgICBkZWNvZGUobSlcbiAgICAgICAgICAgICAgICBdIDogZGVjb2RlKG0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHBhcmFtcztcbiAgICB9O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yb3V0ZS1tYXRjaGVyLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImdldFJvdXRlTWF0Y2hlciIsIl91dGlscyIsInJlcXVpcmUiLCJyb3V0ZVJlZ2V4IiwicmUiLCJncm91cHMiLCJwYXRobmFtZSIsInJvdXRlTWF0Y2giLCJleGVjIiwiZGVjb2RlIiwicGFyYW0iLCJkZWNvZGVVUklDb21wb25lbnQiLCJfIiwiRGVjb2RlRXJyb3IiLCJwYXJhbXMiLCJrZXlzIiwiZm9yRWFjaCIsInNsdWdOYW1lIiwiZyIsIm0iLCJwb3MiLCJ1bmRlZmluZWQiLCJpbmRleE9mIiwic3BsaXQiLCJtYXAiLCJlbnRyeSIsInJlcGVhdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/route-matcher.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/route-regex.js": +/*!***********************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/route-regex.js ***! + \***********************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.getParametrizedRoute = getParametrizedRoute;\nexports.getRouteRegex = getRouteRegex; // this isn't importing the escape-string-regex module\n// to reduce bytes\n\nfunction escapeRegex(str) {\n return str.replace(/[|\\\\{}()[\\]^$+*?.-]/g, '\\\\$&');\n}\n\nfunction parseParameter(param) {\n var optional = param.startsWith('[') && param.endsWith(']');\n\n if (optional) {\n param = param.slice(1, -1);\n }\n\n var repeat = param.startsWith('...');\n\n if (repeat) {\n param = param.slice(3);\n }\n\n return {\n key: param,\n repeat: repeat,\n optional: optional\n };\n}\n\nfunction getParametrizedRoute(route) {\n var segments = (route.replace(/\\/$/, '') || '/').slice(1).split('/');\n var groups = {};\n var groupIndex = 1;\n var parameterizedRoute = segments.map(function (segment) {\n if (segment.startsWith('[') && segment.endsWith(']')) {\n var _parseParameter = parseParameter(segment.slice(1, -1)),\n key = _parseParameter.key,\n optional = _parseParameter.optional,\n repeat = _parseParameter.repeat;\n\n groups[key] = {\n pos: groupIndex++,\n repeat: repeat,\n optional: optional\n };\n return repeat ? optional ? '(?:/(.+?))?' : '/(.+?)' : '/([^/]+?)';\n } else {\n return \"/\".concat(escapeRegex(segment));\n }\n }).join(''); // dead code eliminate for browser since it's only needed\n // while generating routes-manifest\n\n if (false) { var namedParameterizedRoute, routeKeys, getSafeRouteKey, routeKeyCharLength, routeKeyCharCode; }\n\n return {\n parameterizedRoute: parameterizedRoute,\n groups: groups\n };\n}\n\nfunction getRouteRegex(normalizedRoute) {\n var result = getParametrizedRoute(normalizedRoute);\n\n if ('routeKeys' in result) {\n return {\n re: new RegExp(\"^\".concat(result.parameterizedRoute, \"(?:/)?$\")),\n groups: result.groups,\n routeKeys: result.routeKeys,\n namedRegex: \"^\".concat(result.namedParameterizedRoute, \"(?:/)?$\")\n };\n }\n\n return {\n re: new RegExp(\"^\".concat(result.parameterizedRoute, \"(?:/)?$\")),\n groups: result.groups\n };\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JvdXRlLXJlZ2V4LmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7QUFDYkEsOENBQTZDO0FBQ3pDRyxFQUFBQSxLQUFLLEVBQUU7QUFEa0MsQ0FBN0M7QUFHQUQsNEJBQUEsR0FBK0JFLG9CQUEvQjtBQUNBRixxQkFBQSxHQUF3QkcsYUFBeEIsRUFDQTtBQUNBOztBQUNBLFNBQVNDLFdBQVQsQ0FBcUJDLEdBQXJCLEVBQTBCO0FBQ3RCLFNBQU9BLEdBQUcsQ0FBQ0MsT0FBSixDQUFZLHNCQUFaLEVBQW9DLE1BQXBDLENBQVA7QUFDSDs7QUFDRCxTQUFTQyxjQUFULENBQXdCQyxLQUF4QixFQUErQjtBQUMzQixNQUFNQyxRQUFRLEdBQUdELEtBQUssQ0FBQ0UsVUFBTixDQUFpQixHQUFqQixLQUF5QkYsS0FBSyxDQUFDRyxRQUFOLENBQWUsR0FBZixDQUExQzs7QUFDQSxNQUFJRixRQUFKLEVBQWM7QUFDVkQsSUFBQUEsS0FBSyxHQUFHQSxLQUFLLENBQUNJLEtBQU4sQ0FBWSxDQUFaLEVBQWUsQ0FBQyxDQUFoQixDQUFSO0FBQ0g7O0FBQ0QsTUFBTUMsTUFBTSxHQUFHTCxLQUFLLENBQUNFLFVBQU4sQ0FBaUIsS0FBakIsQ0FBZjs7QUFDQSxNQUFJRyxNQUFKLEVBQVk7QUFDUkwsSUFBQUEsS0FBSyxHQUFHQSxLQUFLLENBQUNJLEtBQU4sQ0FBWSxDQUFaLENBQVI7QUFDSDs7QUFDRCxTQUFPO0FBQ0hFLElBQUFBLEdBQUcsRUFBRU4sS0FERjtBQUVISyxJQUFBQSxNQUFNLEVBQU5BLE1BRkc7QUFHSEosSUFBQUEsUUFBUSxFQUFSQTtBQUhHLEdBQVA7QUFLSDs7QUFDRCxTQUFTUCxvQkFBVCxDQUE4QmEsS0FBOUIsRUFBcUM7QUFDakMsTUFBTUMsUUFBUSxHQUFHLENBQUNELEtBQUssQ0FBQ1QsT0FBTixDQUFjLEtBQWQsRUFBcUIsRUFBckIsS0FBNEIsR0FBN0IsRUFBa0NNLEtBQWxDLENBQXdDLENBQXhDLEVBQTJDSyxLQUEzQyxDQUFpRCxHQUFqRCxDQUFqQjtBQUNBLE1BQU1DLE1BQU0sR0FBRyxFQUFmO0FBRUEsTUFBSUMsVUFBVSxHQUFHLENBQWpCO0FBQ0EsTUFBTUMsa0JBQWtCLEdBQUdKLFFBQVEsQ0FBQ0ssR0FBVCxDQUFhLFVBQUNDLE9BQUQsRUFBVztBQUMvQyxRQUFJQSxPQUFPLENBQUNaLFVBQVIsQ0FBbUIsR0FBbkIsS0FBMkJZLE9BQU8sQ0FBQ1gsUUFBUixDQUFpQixHQUFqQixDQUEvQixFQUFzRDtBQUNsRCw0QkFBcUNKLGNBQWMsQ0FBQ2UsT0FBTyxDQUFDVixLQUFSLENBQWMsQ0FBZCxFQUFpQixDQUFDLENBQWxCLENBQUQsQ0FBbkQ7QUFBQSxVQUFRRSxHQUFSLG1CQUFRQSxHQUFSO0FBQUEsVUFBY0wsUUFBZCxtQkFBY0EsUUFBZDtBQUFBLFVBQXlCSSxNQUF6QixtQkFBeUJBLE1BQXpCOztBQUNBSyxNQUFBQSxNQUFNLENBQUNKLEdBQUQsQ0FBTixHQUFjO0FBQ1ZTLFFBQUFBLEdBQUcsRUFBRUosVUFBVSxFQURMO0FBRVZOLFFBQUFBLE1BQU0sRUFBTkEsTUFGVTtBQUdWSixRQUFBQSxRQUFRLEVBQVJBO0FBSFUsT0FBZDtBQUtBLGFBQU9JLE1BQU0sR0FBR0osUUFBUSxHQUFHLGFBQUgsR0FBbUIsUUFBOUIsR0FBeUMsV0FBdEQ7QUFDSCxLQVJELE1BUU87QUFDSCx3QkFBV0wsV0FBVyxDQUFDa0IsT0FBRCxDQUF0QjtBQUNIO0FBQ0osR0FaMEIsRUFZeEJFLElBWndCLENBWW5CLEVBWm1CLENBQTNCLENBTGlDLENBa0JqQztBQUNBOztBQUNBLGFBQW1DLGtHQWdEbEM7O0FBQ0QsU0FBTztBQUNISixJQUFBQSxrQkFBa0IsRUFBbEJBLGtCQURHO0FBRUhGLElBQUFBLE1BQU0sRUFBTkE7QUFGRyxHQUFQO0FBSUg7O0FBQ0QsU0FBU2YsYUFBVCxDQUF1QnFDLGVBQXZCLEVBQXdDO0FBQ3BDLE1BQU1DLE1BQU0sR0FBR3ZDLG9CQUFvQixDQUFDc0MsZUFBRCxDQUFuQzs7QUFDQSxNQUFJLGVBQWVDLE1BQW5CLEVBQTJCO0FBQ3ZCLFdBQU87QUFDSEMsTUFBQUEsRUFBRSxFQUFFLElBQUlDLE1BQUosWUFBZUYsTUFBTSxDQUFDckIsa0JBQXRCLGFBREQ7QUFFSEYsTUFBQUEsTUFBTSxFQUFFdUIsTUFBTSxDQUFDdkIsTUFGWjtBQUdIYyxNQUFBQSxTQUFTLEVBQUVTLE1BQU0sQ0FBQ1QsU0FIZjtBQUlIWSxNQUFBQSxVQUFVLGFBQU1ILE1BQU0sQ0FBQ1IsdUJBQWI7QUFKUCxLQUFQO0FBTUg7O0FBQ0QsU0FBTztBQUNIUyxJQUFBQSxFQUFFLEVBQUUsSUFBSUMsTUFBSixZQUFlRixNQUFNLENBQUNyQixrQkFBdEIsYUFERDtBQUVIRixJQUFBQSxNQUFNLEVBQUV1QixNQUFNLENBQUN2QjtBQUZaLEdBQVA7QUFJSCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JvdXRlLXJlZ2V4LmpzP2VhYzIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmdldFBhcmFtZXRyaXplZFJvdXRlID0gZ2V0UGFyYW1ldHJpemVkUm91dGU7XG5leHBvcnRzLmdldFJvdXRlUmVnZXggPSBnZXRSb3V0ZVJlZ2V4O1xuLy8gdGhpcyBpc24ndCBpbXBvcnRpbmcgdGhlIGVzY2FwZS1zdHJpbmctcmVnZXggbW9kdWxlXG4vLyB0byByZWR1Y2UgYnl0ZXNcbmZ1bmN0aW9uIGVzY2FwZVJlZ2V4KHN0cikge1xuICAgIHJldHVybiBzdHIucmVwbGFjZSgvW3xcXFxce30oKVtcXF1eJCsqPy4tXS9nLCAnXFxcXCQmJyk7XG59XG5mdW5jdGlvbiBwYXJzZVBhcmFtZXRlcihwYXJhbSkge1xuICAgIGNvbnN0IG9wdGlvbmFsID0gcGFyYW0uc3RhcnRzV2l0aCgnWycpICYmIHBhcmFtLmVuZHNXaXRoKCddJyk7XG4gICAgaWYgKG9wdGlvbmFsKSB7XG4gICAgICAgIHBhcmFtID0gcGFyYW0uc2xpY2UoMSwgLTEpO1xuICAgIH1cbiAgICBjb25zdCByZXBlYXQgPSBwYXJhbS5zdGFydHNXaXRoKCcuLi4nKTtcbiAgICBpZiAocmVwZWF0KSB7XG4gICAgICAgIHBhcmFtID0gcGFyYW0uc2xpY2UoMyk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIGtleTogcGFyYW0sXG4gICAgICAgIHJlcGVhdCxcbiAgICAgICAgb3B0aW9uYWxcbiAgICB9O1xufVxuZnVuY3Rpb24gZ2V0UGFyYW1ldHJpemVkUm91dGUocm91dGUpIHtcbiAgICBjb25zdCBzZWdtZW50cyA9IChyb3V0ZS5yZXBsYWNlKC9cXC8kLywgJycpIHx8ICcvJykuc2xpY2UoMSkuc3BsaXQoJy8nKTtcbiAgICBjb25zdCBncm91cHMgPSB7XG4gICAgfTtcbiAgICBsZXQgZ3JvdXBJbmRleCA9IDE7XG4gICAgY29uc3QgcGFyYW1ldGVyaXplZFJvdXRlID0gc2VnbWVudHMubWFwKChzZWdtZW50KT0+e1xuICAgICAgICBpZiAoc2VnbWVudC5zdGFydHNXaXRoKCdbJykgJiYgc2VnbWVudC5lbmRzV2l0aCgnXScpKSB7XG4gICAgICAgICAgICBjb25zdCB7IGtleSAsIG9wdGlvbmFsICwgcmVwZWF0ICB9ID0gcGFyc2VQYXJhbWV0ZXIoc2VnbWVudC5zbGljZSgxLCAtMSkpO1xuICAgICAgICAgICAgZ3JvdXBzW2tleV0gPSB7XG4gICAgICAgICAgICAgICAgcG9zOiBncm91cEluZGV4KyssXG4gICAgICAgICAgICAgICAgcmVwZWF0LFxuICAgICAgICAgICAgICAgIG9wdGlvbmFsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmV0dXJuIHJlcGVhdCA/IG9wdGlvbmFsID8gJyg/Oi8oLis/KSk/JyA6ICcvKC4rPyknIDogJy8oW14vXSs/KSc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gYC8ke2VzY2FwZVJlZ2V4KHNlZ21lbnQpfWA7XG4gICAgICAgIH1cbiAgICB9KS5qb2luKCcnKTtcbiAgICAvLyBkZWFkIGNvZGUgZWxpbWluYXRlIGZvciBicm93c2VyIHNpbmNlIGl0J3Mgb25seSBuZWVkZWRcbiAgICAvLyB3aGlsZSBnZW5lcmF0aW5nIHJvdXRlcy1tYW5pZmVzdFxuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICBsZXQgcm91dGVLZXlDaGFyQ29kZSA9IDk3O1xuICAgICAgICBsZXQgcm91dGVLZXlDaGFyTGVuZ3RoID0gMTtcbiAgICAgICAgLy8gYnVpbGRzIGEgbWluaW1hbCByb3V0ZUtleSB1c2luZyBvbmx5IGEteiBhbmQgbWluaW1hbCBudW1iZXIgb2YgY2hhcmFjdGVyc1xuICAgICAgICBjb25zdCBnZXRTYWZlUm91dGVLZXkgPSAoKT0+e1xuICAgICAgICAgICAgbGV0IHJvdXRlS2V5ID0gJyc7XG4gICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgcm91dGVLZXlDaGFyTGVuZ3RoOyBpKyspe1xuICAgICAgICAgICAgICAgIHJvdXRlS2V5ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUocm91dGVLZXlDaGFyQ29kZSk7XG4gICAgICAgICAgICAgICAgcm91dGVLZXlDaGFyQ29kZSsrO1xuICAgICAgICAgICAgICAgIGlmIChyb3V0ZUtleUNoYXJDb2RlID4gMTIyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJvdXRlS2V5Q2hhckxlbmd0aCsrO1xuICAgICAgICAgICAgICAgICAgICByb3V0ZUtleUNoYXJDb2RlID0gOTc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJvdXRlS2V5O1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCByb3V0ZUtleXMgPSB7XG4gICAgICAgIH07XG4gICAgICAgIGxldCBuYW1lZFBhcmFtZXRlcml6ZWRSb3V0ZSA9IHNlZ21lbnRzLm1hcCgoc2VnbWVudCk9PntcbiAgICAgICAgICAgIGlmIChzZWdtZW50LnN0YXJ0c1dpdGgoJ1snKSAmJiBzZWdtZW50LmVuZHNXaXRoKCddJykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGtleSAsIG9wdGlvbmFsICwgcmVwZWF0ICB9ID0gcGFyc2VQYXJhbWV0ZXIoc2VnbWVudC5zbGljZSgxLCAtMSkpO1xuICAgICAgICAgICAgICAgIC8vIHJlcGxhY2UgYW55IG5vbi13b3JkIGNoYXJhY3RlcnMgc2luY2UgdGhleSBjYW4gYnJlYWtcbiAgICAgICAgICAgICAgICAvLyB0aGUgbmFtZWQgcmVnZXhcbiAgICAgICAgICAgICAgICBsZXQgY2xlYW5lZEtleSA9IGtleS5yZXBsYWNlKC9cXFcvZywgJycpO1xuICAgICAgICAgICAgICAgIGxldCBpbnZhbGlkS2V5ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgLy8gY2hlY2sgaWYgdGhlIGtleSBpcyBzdGlsbCBpbnZhbGlkIGFuZCBmYWxsYmFjayB0byB1c2luZyBhIGtub3duXG4gICAgICAgICAgICAgICAgLy8gc2FmZSBrZXlcbiAgICAgICAgICAgICAgICBpZiAoY2xlYW5lZEtleS5sZW5ndGggPT09IDAgfHwgY2xlYW5lZEtleS5sZW5ndGggPiAzMCkge1xuICAgICAgICAgICAgICAgICAgICBpbnZhbGlkS2V5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKCFpc05hTihwYXJzZUludChjbGVhbmVkS2V5LnN1YnN0cigwLCAxKSkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGludmFsaWRLZXkgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaW52YWxpZEtleSkge1xuICAgICAgICAgICAgICAgICAgICBjbGVhbmVkS2V5ID0gZ2V0U2FmZVJvdXRlS2V5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJvdXRlS2V5c1tjbGVhbmVkS2V5XSA9IGtleTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVwZWF0ID8gb3B0aW9uYWwgPyBgKD86Lyg/PCR7Y2xlYW5lZEtleX0+Lis/KSk/YCA6IGAvKD88JHtjbGVhbmVkS2V5fT4uKz8pYCA6IGAvKD88JHtjbGVhbmVkS2V5fT5bXi9dKz8pYDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGAvJHtlc2NhcGVSZWdleChzZWdtZW50KX1gO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KS5qb2luKCcnKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHBhcmFtZXRlcml6ZWRSb3V0ZSxcbiAgICAgICAgICAgIG5hbWVkUGFyYW1ldGVyaXplZFJvdXRlLFxuICAgICAgICAgICAgZ3JvdXBzLFxuICAgICAgICAgICAgcm91dGVLZXlzXG4gICAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHBhcmFtZXRlcml6ZWRSb3V0ZSxcbiAgICAgICAgZ3JvdXBzXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGdldFJvdXRlUmVnZXgobm9ybWFsaXplZFJvdXRlKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gZ2V0UGFyYW1ldHJpemVkUm91dGUobm9ybWFsaXplZFJvdXRlKTtcbiAgICBpZiAoJ3JvdXRlS2V5cycgaW4gcmVzdWx0KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICByZTogbmV3IFJlZ0V4cChgXiR7cmVzdWx0LnBhcmFtZXRlcml6ZWRSb3V0ZX0oPzovKT8kYCksXG4gICAgICAgICAgICBncm91cHM6IHJlc3VsdC5ncm91cHMsXG4gICAgICAgICAgICByb3V0ZUtleXM6IHJlc3VsdC5yb3V0ZUtleXMsXG4gICAgICAgICAgICBuYW1lZFJlZ2V4OiBgXiR7cmVzdWx0Lm5hbWVkUGFyYW1ldGVyaXplZFJvdXRlfSg/Oi8pPyRgXG4gICAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHJlOiBuZXcgUmVnRXhwKGBeJHtyZXN1bHQucGFyYW1ldGVyaXplZFJvdXRlfSg/Oi8pPyRgKSxcbiAgICAgICAgZ3JvdXBzOiByZXN1bHQuZ3JvdXBzXG4gICAgfTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cm91dGUtcmVnZXguanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiZ2V0UGFyYW1ldHJpemVkUm91dGUiLCJnZXRSb3V0ZVJlZ2V4IiwiZXNjYXBlUmVnZXgiLCJzdHIiLCJyZXBsYWNlIiwicGFyc2VQYXJhbWV0ZXIiLCJwYXJhbSIsIm9wdGlvbmFsIiwic3RhcnRzV2l0aCIsImVuZHNXaXRoIiwic2xpY2UiLCJyZXBlYXQiLCJrZXkiLCJyb3V0ZSIsInNlZ21lbnRzIiwic3BsaXQiLCJncm91cHMiLCJncm91cEluZGV4IiwicGFyYW1ldGVyaXplZFJvdXRlIiwibWFwIiwic2VnbWVudCIsInBvcyIsImpvaW4iLCJyb3V0ZUtleUNoYXJDb2RlIiwicm91dGVLZXlDaGFyTGVuZ3RoIiwiZ2V0U2FmZVJvdXRlS2V5Iiwicm91dGVLZXkiLCJpIiwiU3RyaW5nIiwiZnJvbUNoYXJDb2RlIiwicm91dGVLZXlzIiwibmFtZWRQYXJhbWV0ZXJpemVkUm91dGUiLCJjbGVhbmVkS2V5IiwiaW52YWxpZEtleSIsImxlbmd0aCIsImlzTmFOIiwicGFyc2VJbnQiLCJzdWJzdHIiLCJub3JtYWxpemVkUm91dGUiLCJyZXN1bHQiLCJyZSIsIlJlZ0V4cCIsIm5hbWVkUmVnZXgiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/route-regex.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/runtime-config.js": +/*!*************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/runtime-config.js ***! + \*************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.setConfig = setConfig;\nexports[\"default\"] = void 0;\nvar runtimeConfig;\n\nvar _default = function _default() {\n return runtimeConfig;\n};\n\nexports[\"default\"] = _default;\n\nfunction setConfig(configValue) {\n runtimeConfig = configValue;\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcnVudGltZS1jb25maWcuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxpQkFBQSxHQUFvQkUsU0FBcEI7QUFDQUYsa0JBQUEsR0FBa0IsS0FBSyxDQUF2QjtBQUNBLElBQUlHLGFBQUo7O0FBQ0EsSUFBSUMsUUFBUSxHQUFHLFNBQVhBLFFBQVcsR0FBSTtBQUNmLFNBQU9ELGFBQVA7QUFDSCxDQUZEOztBQUdBSCxrQkFBQSxHQUFrQkksUUFBbEI7O0FBQ0EsU0FBU0YsU0FBVCxDQUFtQkcsV0FBbkIsRUFBZ0M7QUFDNUJGLEVBQUFBLGFBQWEsR0FBR0UsV0FBaEI7QUFDSCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcnVudGltZS1jb25maWcuanM/ZTBhMyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuc2V0Q29uZmlnID0gc2V0Q29uZmlnO1xuZXhwb3J0cy5kZWZhdWx0ID0gdm9pZCAwO1xubGV0IHJ1bnRpbWVDb25maWc7XG52YXIgX2RlZmF1bHQgPSAoKT0+e1xuICAgIHJldHVybiBydW50aW1lQ29uZmlnO1xufTtcbmV4cG9ydHMuZGVmYXVsdCA9IF9kZWZhdWx0O1xuZnVuY3Rpb24gc2V0Q29uZmlnKGNvbmZpZ1ZhbHVlKSB7XG4gICAgcnVudGltZUNvbmZpZyA9IGNvbmZpZ1ZhbHVlO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1ydW50aW1lLWNvbmZpZy5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJzZXRDb25maWciLCJydW50aW1lQ29uZmlnIiwiX2RlZmF1bHQiLCJjb25maWdWYWx1ZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/runtime-config.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/utils.js": +/*!****************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/utils.js ***! + \****************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _regeneratorRuntime = __webpack_require__(/*! ./node_modules/@babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n\nvar _classCallCheck = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\");\n\nvar _inherits = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/inherits */ \"./node_modules/@babel/runtime/helpers/inherits.js\");\n\nvar _possibleConstructorReturn = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/possibleConstructorReturn */ \"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\");\n\nvar _getPrototypeOf = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/getPrototypeOf */ \"./node_modules/@babel/runtime/helpers/getPrototypeOf.js\");\n\nvar _wrapNativeSuper = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/wrapNativeSuper */ \"./node_modules/@babel/runtime/helpers/wrapNativeSuper.js\");\n\nvar _asyncToGenerator = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/asyncToGenerator.js\");\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.execOnce = execOnce;\nexports.getLocationOrigin = getLocationOrigin;\nexports.getURL = getURL;\nexports.getDisplayName = getDisplayName;\nexports.isResSent = isResSent;\nexports.normalizeRepeatedSlashes = normalizeRepeatedSlashes;\nexports.loadGetInitialProps = loadGetInitialProps;\nexports.formatWithValidation = formatWithValidation;\nexports.HtmlContext = exports.ST = exports.SP = exports.urlObjectKeys = void 0;\n\nvar _formatUrl = __webpack_require__(/*! ./router/utils/format-url */ \"./node_modules/next/dist/shared/lib/router/utils/format-url.js\");\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nfunction execOnce(fn) {\n var used = false;\n var result;\n return function () {\n if (!used) {\n used = true;\n result = fn.apply(void 0, arguments);\n }\n\n return result;\n };\n}\n\nfunction getLocationOrigin() {\n var _window$location = window.location,\n protocol = _window$location.protocol,\n hostname = _window$location.hostname,\n port = _window$location.port;\n return \"\".concat(protocol, \"//\").concat(hostname).concat(port ? ':' + port : '');\n}\n\nfunction getURL() {\n var href = window.location.href;\n var origin = getLocationOrigin();\n return href.substring(origin.length);\n}\n\nfunction getDisplayName(Component) {\n return typeof Component === 'string' ? Component : Component.displayName || Component.name || 'Unknown';\n}\n\nfunction isResSent(res) {\n return res.finished || res.headersSent;\n}\n\nfunction normalizeRepeatedSlashes(url) {\n var urlParts = url.split('?');\n var 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] ? \"?\".concat(urlParts.slice(1).join('?')) : '');\n}\n\nfunction loadGetInitialProps(_x, _x2) {\n return _loadGetInitialProps.apply(this, arguments);\n}\n\nfunction _loadGetInitialProps() {\n _loadGetInitialProps = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(App, ctx) {\n var ref, message, res, props, _message;\n\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (false) {}\n\n if (!((ref = App.prototype) === null || ref === void 0 ? void 0 : ref.getInitialProps)) {\n _context.next = 4;\n break;\n }\n\n message = \"\\\"\".concat(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 new Error(message);\n\n case 4:\n // when called from _app `ctx` is nested in `ctx`\n res = ctx.res || ctx.ctx && ctx.ctx.res;\n\n if (App.getInitialProps) {\n _context.next = 12;\n break;\n }\n\n if (!(ctx.ctx && ctx.Component)) {\n _context.next = 11;\n break;\n }\n\n _context.next = 9;\n return loadGetInitialProps(ctx.Component, ctx.ctx);\n\n case 9:\n _context.t0 = _context.sent;\n return _context.abrupt(\"return\", {\n pageProps: _context.t0\n });\n\n case 11:\n return _context.abrupt(\"return\", {});\n\n case 12:\n _context.next = 14;\n return App.getInitialProps(ctx);\n\n case 14:\n props = _context.sent;\n\n if (!(res && isResSent(res))) {\n _context.next = 17;\n break;\n }\n\n return _context.abrupt(\"return\", props);\n\n case 17:\n if (props) {\n _context.next = 20;\n break;\n }\n\n _message = \"\\\"\".concat(getDisplayName(App), \".getInitialProps()\\\" should resolve to an object. But found \\\"\").concat(props, \"\\\" instead.\");\n throw new Error(_message);\n\n case 20:\n if (true) {\n if (Object.keys(props).length === 0 && !ctx.ctx) {\n console.warn(\"\".concat(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\n return _context.abrupt(\"return\", props);\n\n case 22:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n return _loadGetInitialProps.apply(this, arguments);\n}\n\nvar urlObjectKeys = ['auth', 'hash', 'host', 'hostname', 'href', 'path', 'pathname', 'port', 'protocol', 'query', 'search', 'slashes'];\nexports.urlObjectKeys = urlObjectKeys;\n\nfunction formatWithValidation(url) {\n if (true) {\n if (url !== null && typeof url === 'object') {\n Object.keys(url).forEach(function (key) {\n if (urlObjectKeys.indexOf(key) === -1) {\n console.warn(\"Unknown key passed via urlObject into url.format: \".concat(key));\n }\n });\n }\n }\n\n return (0, _formatUrl).formatUrl(url);\n}\n\nvar SP = typeof performance !== 'undefined';\nexports.SP = SP;\nvar ST = SP && typeof performance.mark === 'function' && typeof performance.measure === 'function';\nexports.ST = ST;\n\nvar DecodeError = /*#__PURE__*/function (_Error) {\n _inherits(DecodeError, _Error);\n\n var _super = _createSuper(DecodeError);\n\n function DecodeError() {\n _classCallCheck(this, DecodeError);\n\n return _super.apply(this, arguments);\n }\n\n return DecodeError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nexports.DecodeError = DecodeError;\nvar HtmlContext = (0, _react).createContext(null);\nexports.HtmlContext = HtmlContext;\n\nif (true) {\n HtmlContext.displayName = 'HtmlContext';\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvdXRpbHMuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxnQkFBQSxHQUFtQkUsUUFBbkI7QUFDQUYseUJBQUEsR0FBNEJHLGlCQUE1QjtBQUNBSCxjQUFBLEdBQWlCSSxNQUFqQjtBQUNBSixzQkFBQSxHQUF5QkssY0FBekI7QUFDQUwsaUJBQUEsR0FBb0JNLFNBQXBCO0FBQ0FOLGdDQUFBLEdBQW1DTyx3QkFBbkM7QUFDQVAsMkJBQUEsR0FBOEJRLG1CQUE5QjtBQUNBUiw0QkFBQSxHQUErQlMsb0JBQS9CO0FBQ0FULG1CQUFBLEdBQXNCQSxVQUFBLEdBQWFBLFVBQUEsR0FBYUEscUJBQUEsR0FBd0IsS0FBSyxDQUE3RTs7QUFDQSxJQUFJYyxVQUFVLEdBQUdDLG1CQUFPLENBQUMsaUdBQUQsQ0FBeEI7O0FBQ0EsSUFBSUMsTUFBTSxHQUFHRCxtQkFBTyxDQUFDLDRDQUFELENBQXBCOztBQUNBLFNBQVNiLFFBQVQsQ0FBa0JlLEVBQWxCLEVBQXNCO0FBQ2xCLE1BQUlDLElBQUksR0FBRyxLQUFYO0FBQ0EsTUFBSUMsTUFBSjtBQUNBLFNBQU8sWUFBVztBQUNkLFFBQUksQ0FBQ0QsSUFBTCxFQUFXO0FBQ1BBLE1BQUFBLElBQUksR0FBRyxJQUFQO0FBQ0FDLE1BQUFBLE1BQU0sR0FBR0YsRUFBRSxNQUFGLG1CQUFUO0FBQ0g7O0FBQ0QsV0FBT0UsTUFBUDtBQUNILEdBTkQ7QUFPSDs7QUFDRCxTQUFTaEIsaUJBQVQsR0FBNkI7QUFDekIseUJBQXdDaUIsTUFBTSxDQUFDQyxRQUEvQztBQUFBLE1BQVFDLFFBQVIsb0JBQVFBLFFBQVI7QUFBQSxNQUFtQkMsUUFBbkIsb0JBQW1CQSxRQUFuQjtBQUFBLE1BQThCQyxJQUE5QixvQkFBOEJBLElBQTlCO0FBQ0EsbUJBQVVGLFFB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QWxDO0FBQ0ExRCxVQUFBLEdBQWFZLEVBQWI7QUFDQSxJQUFNRCxFQUFFLEdBQUdDLEVBQUUsSUFBSSxPQUFPOEMsV0FBVyxDQUFDQyxJQUFuQixLQUE0QixVQUFsQyxJQUFnRCxPQUFPRCxXQUFXLENBQUNFLE9BQW5CLEtBQStCLFVBQTFGO0FBQ0E1RCxVQUFBLEdBQWFXLEVBQWI7O0lBQ01rRDs7Ozs7Ozs7Ozs7O2lDQUFvQmI7O0FBRTFCaEQsbUJBQUEsR0FBc0I2RCxXQUF0QjtBQUNBLElBQU1uRCxXQUFXLEdBQUcsQ0FBQyxHQUFHTSxNQUFKLEVBQVk4QyxhQUFaLENBQTBCLElBQTFCLENBQXBCO0FBQ0E5RCxtQkFBQSxHQUFzQlUsV0FBdEI7O0FBQ0EsSUFBSSxNQUF1QztBQUN2Q0EsRUFBQUEsV0FBVyxDQUFDb0IsV0FBWixHQUEwQixhQUExQjtBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi91dGlscy5qcz9lN2ZmIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5leGVjT25jZSA9IGV4ZWNPbmNlO1xuZXhwb3J0cy5nZXRMb2NhdGlvbk9yaWdpbiA9IGdldExvY2F0aW9uT3JpZ2luO1xuZXhwb3J0cy5nZXRVUkwgPSBnZXRVUkw7XG5leHBvcnRzLmdldERpc3BsYXlOYW1lID0gZ2V0RGlzcGxheU5hbWU7XG5leHBvcnRzLmlzUmVzU2VudCA9IGlzUmVzU2VudDtcbmV4cG9ydHMubm9ybWFsaXplUmVwZWF0ZWRTbGFzaGVzID0gbm9ybWFsaXplUmVwZWF0ZWRTbGFzaGVzO1xuZXhwb3J0cy5sb2FkR2V0SW5pdGlhbFByb3BzID0gbG9hZEdldEluaXRpYWxQcm9wcztcbmV4cG9ydHMuZm9ybWF0V2l0aFZhbGlkYXRpb24gPSBmb3JtYXRXaXRoVmFsaWRhdGlvbjtcbmV4cG9ydHMuSHRtbENvbnRleHQgPSBleHBvcnRzLlNUID0gZXhwb3J0cy5TUCA9IGV4cG9ydHMudXJsT2JqZWN0S2V5cyA9IHZvaWQgMDtcbnZhciBfZm9ybWF0VXJsID0gcmVxdWlyZShcIi4vcm91dGVyL3V0aWxzL2Zvcm1hdC11cmxcIik7XG52YXIgX3JlYWN0ID0gcmVxdWlyZShcInJlYWN0XCIpO1xuZnVuY3Rpb24gZXhlY09uY2UoZm4pIHtcbiAgICBsZXQgdXNlZCA9IGZhbHNlO1xuICAgIGxldCByZXN1bHQ7XG4gICAgcmV0dXJuICguLi5hcmdzKT0+e1xuICAgICAgICBpZiAoIXVzZWQpIHtcbiAgICAgICAgICAgIHVzZWQgPSB0cnVlO1xuICAgICAgICAgICAgcmVzdWx0ID0gZm4oLi4uYXJncyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xufVxuZnVuY3Rpb24gZ2V0TG9jYXRpb25PcmlnaW4oKSB7XG4gICAgY29uc3QgeyBwcm90b2NvbCAsIGhvc3RuYW1lICwgcG9ydCAgfSA9IHdpbmRvdy5sb2NhdGlvbjtcbiAgICByZXR1cm4gYCR7cHJvdG9jb2x9Ly8ke2hvc3RuYW1lfSR7cG9ydCA/ICc6JyArIHBvcnQgOiAnJ31gO1xufVxuZnVuY3Rpb24gZ2V0VVJMKCkge1xuICAgIGNvbnN0IHsgaHJlZiAgfSA9IHdpbmRvdy5sb2NhdGlvbjtcbiAgICBjb25zdCBvcmlnaW4gPSBnZXRMb2NhdGlvbk9yaWdpbigpO1xuICAgIHJldHVybiBocmVmLnN1YnN0cmluZyhvcmlnaW4ubGVuZ3RoKTtcbn1cbmZ1bmN0aW9uIGdldERpc3BsYXlOYW1lKENvbXBvbmVudCkge1xuICAgIHJldHVybiB0eXBlb2YgQ29tcG9uZW50ID09PSAnc3RyaW5nJyA/IENvbXBvbmVudCA6IENvbXBvbmVudC5kaXNwbGF5TmFtZSB8fCBDb21wb25lbnQubmFtZSB8fCAnVW5rbm93bic7XG59XG5mdW5jdGlvbiBpc1Jlc1NlbnQocmVzKSB7XG4gICAgcmV0dXJuIHJlcy5maW5pc2hlZCB8fCByZXMuaGVhZGVyc1NlbnQ7XG59XG5mdW5jdGlvbiBub3JtYWxpemVSZXBlYXRlZFNsYXNoZXModXJsKSB7XG4gICAgY29uc3QgdXJsUGFydHMgPSB1cmwuc3BsaXQoJz8nKTtcbiAgICBjb25zdCB1cmxOb1F1ZXJ5ID0gdXJsUGFydHNbMF07XG4gICAgcmV0dXJuIHVybE5vUXVlcnkvLyBmaXJzdCB3ZSByZXBsYWNlIGFueSBub24tZW5jb2RlZCBiYWNrc2xhc2hlcyB3aXRoIGZvcndhcmRcbiAgICAvLyB0aGVuIG5vcm1hbGl6ZSByZXBlYXRlZCBmb3J3YXJkIHNsYXNoZXNcbiAgICAucmVwbGFjZSgvXFxcXC9nLCAnLycpLnJlcGxhY2UoL1xcL1xcLysvZywgJy8nKSArICh1cmxQYXJ0c1sxXSA/IGA/JHt1cmxQYXJ0cy5zbGljZSgxKS5qb2luKCc/Jyl9YCA6ICcnKTtcbn1cbmFzeW5jIGZ1bmN0aW9uIGxvYWRHZXRJbml0aWFsUHJvcHMoQXBwLCBjdHgpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICB2YXIgcmVmO1xuICAgICAgICBpZiAoKHJlZiA9IEFwcC5wcm90b3R5cGUpID09PSBudWxsIHx8IHJlZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVmLmdldEluaXRpYWxQcm9wcykge1xuICAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGBcIiR7Z2V0RGlzcGxheU5hbWUoQXBwKX0uZ2V0SW5pdGlhbFByb3BzKClcIiBpcyBkZWZpbmVkIGFzIGFuIGluc3RhbmNlIG1ldGhvZCAtIHZpc2l0IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2dldC1pbml0aWFsLXByb3BzLWFzLWFuLWluc3RhbmNlLW1ldGhvZCBmb3IgbW9yZSBpbmZvcm1hdGlvbi5gO1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIHdoZW4gY2FsbGVkIGZyb20gX2FwcCBgY3R4YCBpcyBuZXN0ZWQgaW4gYGN0eGBcbiAgICBjb25zdCByZXMgPSBjdHgucmVzIHx8IGN0eC5jdHggJiYgY3R4LmN0eC5yZXM7XG4gICAgaWYgKCFBcHAuZ2V0SW5pdGlhbFByb3BzKSB7XG4gICAgICAgIGlmIChjdHguY3R4ICYmIGN0eC5Db21wb25lbnQpIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmUgcGFnZVByb3BzIGRlZmF1bHRcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcGFnZVByb3BzOiBhd2FpdCBsb2FkR2V0SW5pdGlhbFByb3BzKGN0eC5Db21wb25lbnQsIGN0eC5jdHgpXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IHByb3BzID0gYXdhaXQgQXBwLmdldEluaXRpYWxQcm9wcyhjdHgpO1xuICAgIGlmIChyZXMgJiYgaXNSZXNTZW50KHJlcykpIHtcbiAgICAgICAgcmV0dXJuIHByb3BzO1xuICAgIH1cbiAgICBpZiAoIXByb3BzKSB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgXCIke2dldERpc3BsYXlOYW1lKEFwcCl9LmdldEluaXRpYWxQcm9wcygpXCIgc2hvdWxkIHJlc29sdmUgdG8gYW4gb2JqZWN0LiBCdXQgZm91bmQgXCIke3Byb3BzfVwiIGluc3RlYWQuYDtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBpZiAoT2JqZWN0LmtleXMocHJvcHMpLmxlbmd0aCA9PT0gMCAmJiAhY3R4LmN0eCkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGAke2dldERpc3BsYXlOYW1lKEFwcCl9IHJldHVybmVkIGFuIGVtcHR5IG9iamVjdCBmcm9tIFxcYGdldEluaXRpYWxQcm9wc1xcYC4gVGhpcyBkZS1vcHRpbWl6ZXMgYW5kIHByZXZlbnRzIGF1dG9tYXRpYyBzdGF0aWMgb3B0aW1pemF0aW9uLiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9lbXB0eS1vYmplY3QtZ2V0SW5pdGlhbFByb3BzYCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHByb3BzO1xufVxuY29uc3QgdXJsT2JqZWN0S2V5cyA9IFtcbiAgICAnYXV0aCcsXG4gICAgJ2hhc2gnLFxuICAgICdob3N0JyxcbiAgICAnaG9zdG5hbWUnLFxuICAgICdocmVmJyxcbiAgICAncGF0aCcsXG4gICAgJ3BhdGhuYW1lJyxcbiAgICAncG9ydCcsXG4gICAgJ3Byb3RvY29sJyxcbiAgICAncXVlcnknLFxuICAgICdzZWFyY2gnLFxuICAgICdzbGFzaGVzJywgXG5dO1xuZXhwb3J0cy51cmxPYmplY3RLZXlzID0gdXJsT2JqZWN0S2V5cztcbmZ1bmN0aW9uIGZvcm1hdFdpdGhWYWxpZGF0aW9uKHVybCkge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICBpZiAodXJsICE9PSBudWxsICYmIHR5cGVvZiB1cmwgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICBPYmplY3Qua2V5cyh1cmwpLmZvckVhY2goKGtleSk9PntcbiAgICAgICAgICAgICAgICBpZiAodXJsT2JqZWN0S2V5cy5pbmRleE9mKGtleSkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgVW5rbm93biBrZXkgcGFzc2VkIHZpYSB1cmxPYmplY3QgaW50byB1cmwuZm9ybWF0OiAke2tleX1gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gKDAsIF9mb3JtYXRVcmwpLmZvcm1hdFVybCh1cmwpO1xufVxuY29uc3QgU1AgPSB0eXBlb2YgcGVyZm9ybWFuY2UgIT09ICd1bmRlZmluZWQnO1xuZXhwb3J0cy5TUCA9IFNQO1xuY29uc3QgU1QgPSBTUCAmJiB0eXBlb2YgcGVyZm9ybWFuY2UubWFyayA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgcGVyZm9ybWFuY2UubWVhc3VyZSA9PT0gJ2Z1bmN0aW9uJztcbmV4cG9ydHMuU1QgPSBTVDtcbmNsYXNzIERlY29kZUVycm9yIGV4dGVuZHMgRXJyb3Ige1xufVxuZXhwb3J0cy5EZWNvZGVFcnJvciA9IERlY29kZUVycm9yO1xuY29uc3QgSHRtbENvbnRleHQgPSAoMCwgX3JlYWN0KS5jcmVhdGVDb250ZXh0KG51bGwpO1xuZXhwb3J0cy5IdG1sQ29udGV4dCA9IEh0bWxDb250ZXh0O1xuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBIdG1sQ29udGV4dC5kaXNwbGF5TmFtZSA9ICdIdG1sQ29udGV4dCc7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXV0aWxzLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImV4ZWNPbmNlIiwiZ2V0TG9jYXRpb25PcmlnaW4iLCJnZXRVUkwiLCJnZXREaXNwbGF5TmFtZSIsImlzUmVzU2VudCIsIm5vcm1hbGl6ZVJlcGVhdGVkU2xhc2hlcyIsImxvYWRHZXRJbml0aWFsUHJvcHMiLCJmb3JtYXRXaXRoVmFsaWRhdGlvbiIsIkh0bWxDb250ZXh0IiwiU1QiLCJTUCIsInVybE9iamVjdEtleXMiLCJfZm9ybWF0VXJsIiwicmVxdWlyZSIsIl9yZWFjdCIsImZuIiwidXNlZCIsInJlc3VsdCIsIndpbmRvdyIsImxvY2F0aW9uIiwicHJvdG9jb2wiLCJob3N0bmFtZSIsInBvcnQiLCJocmVmIiwib3JpZ2luIiwic3Vic3RyaW5nIiwibGVuZ3RoIiwiQ29tcG9uZW50IiwiZGlzcGxheU5hbWUiLCJuYW1lIiwicmVzIiwiZmluaXNoZWQiLCJoZWFkZXJzU2VudCIsInVybCIsInVybFBhcnRzIiwic3BsaXQiLCJ1cmxOb1F1ZXJ5IiwicmVwbGFjZSIsInNsaWNlIiwiam9pbiIsIkFwcCIsImN0eCIsInJlZiIsInByb3RvdHlwZSIsImdldEluaXRpYWxQcm9wcyIsIm1lc3NhZ2UiLCJFcnJvciIsInBhZ2VQcm9wcyIsInByb3BzIiwia2V5cyIsImNvbnNvbGUiLCJ3YXJuIiwiZm9yRWFjaCIsImtleSIsImluZGV4T2YiLCJmb3JtYXRVcmwiLCJwZXJmb3JtYW5jZSIsIm1hcmsiLCJtZWFzdXJlIiwiRGVjb2RlRXJyb3IiLCJjcmVhdGVDb250ZXh0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/utils.js\n"); + +/***/ }), + +/***/ "./node_modules/strip-ansi/index.js": +/*!******************************************!*\ + !*** ./node_modules/strip-ansi/index.js ***! + \******************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar ansiRegex = __webpack_require__(/*! ansi-regex */ \"./node_modules/ansi-regex/index.js\");\n\nmodule.exports = function (string) {\n return typeof string === 'string' ? string.replace(ansiRegex(), '') : string;\n};\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3RyaXAtYW5zaS9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7O0FBQ2IsSUFBTUEsU0FBUyxHQUFHQyxtQkFBTyxDQUFDLHNEQUFELENBQXpCOztBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUIsVUFBQUMsTUFBTTtBQUFBLFNBQUksT0FBT0EsTUFBUCxLQUFrQixRQUFsQixHQUE2QkEsTUFBTSxDQUFDQyxPQUFQLENBQWVMLFNBQVMsRUFBeEIsRUFBNEIsRUFBNUIsQ0FBN0IsR0FBK0RJLE1BQW5FO0FBQUEsQ0FBdkIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N0cmlwLWFuc2kvaW5kZXguanM/ZDcyMiJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5jb25zdCBhbnNpUmVnZXggPSByZXF1aXJlKCdhbnNpLXJlZ2V4Jyk7XG5cbm1vZHVsZS5leHBvcnRzID0gc3RyaW5nID0+IHR5cGVvZiBzdHJpbmcgPT09ICdzdHJpbmcnID8gc3RyaW5nLnJlcGxhY2UoYW5zaVJlZ2V4KCksICcnKSA6IHN0cmluZztcbiJdLCJuYW1lcyI6WyJhbnNpUmVnZXgiLCJyZXF1aXJlIiwibW9kdWxlIiwiZXhwb3J0cyIsInN0cmluZyIsInJlcGxhY2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/strip-ansi/index.js\n"); + +/***/ }), + +/***/ "./node_modules/anser/lib/index.js": +/*!*****************************************!*\ + !*** ./node_modules/anser/lib/index.js ***! + \*****************************************/ +/***/ (function(module) { + +"use strict"; +eval("\n\n// This file was originally written by @drudru (https://github.com/drudru/ansi_up), MIT, 2011\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ANSI_COLORS = [[{ 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\" }]];\n\nvar Anser = function () {\n _createClass(Anser, null, [{\n key: \"escapeForHtml\",\n\n\n /**\n * Anser.escapeForHtml\n * Escape the input HTML.\n *\n * This does the minimum escaping of text to make it compliant with HTML.\n * In particular, the '&','<', and '>' characters are escaped. This should\n * be run prior to `ansiToHtml`.\n *\n * @name Anser.escapeForHtml\n * @function\n * @param {String} txt The input text (containing the ANSI snippets).\n * @returns {String} The escaped html.\n */\n value: function escapeForHtml(txt) {\n return new Anser().escapeForHtml(txt);\n }\n\n /**\n * Anser.linkify\n * Adds the links in the HTML.\n *\n * This replaces any links in the text with anchor tags that display the\n * link. The links should have at least one whitespace character\n * surrounding it. Also, you should apply this after you have run\n * `ansiToHtml` on the text.\n *\n * @name Anser.linkify\n * @function\n * @param {String} txt The input text.\n * @returns {String} The HTML containing the <a> tags (unescaped).\n */\n\n }, {\n key: \"linkify\",\n value: function linkify(txt) {\n return new Anser().linkify(txt);\n }\n\n /**\n * Anser.ansiToHtml\n * This replaces ANSI terminal escape codes with SPAN tags that wrap the\n * content.\n *\n * This function only interprets ANSI SGR (Select Graphic Rendition) codes\n * that can be represented in HTML.\n * For example, cursor movement codes are ignored and hidden from output.\n * The default style uses colors that are very close to the prescribed\n * standard. The standard assumes that the text will have a black\n * background. These colors are set as inline styles on the SPAN tags.\n *\n * Another option is to set `use_classes: true` in the options argument.\n * This will instead set classes on the spans so the colors can be set via\n * CSS. The class names used are of the format `ansi-*-fg/bg` and\n * `ansi-bright-*-fg/bg` where `*` is the color name,\n * i.e black/red/green/yellow/blue/magenta/cyan/white.\n *\n * @name Anser.ansiToHtml\n * @function\n * @param {String} txt The input text.\n * @param {Object} options The options passed to the ansiToHTML method.\n * @returns {String} The HTML output.\n */\n\n }, {\n key: \"ansiToHtml\",\n value: function ansiToHtml(txt, options) {\n return new Anser().ansiToHtml(txt, options);\n }\n\n /**\n * Anser.ansiToJson\n * Converts ANSI input into JSON output.\n *\n * @name Anser.ansiToJson\n * @function\n * @param {String} txt The input text.\n * @param {Object} options The options passed to the ansiToHTML method.\n * @returns {String} The HTML output.\n */\n\n }, {\n key: \"ansiToJson\",\n value: function ansiToJson(txt, options) {\n return new Anser().ansiToJson(txt, options);\n }\n\n /**\n * Anser.ansiToText\n * Converts ANSI input into text output.\n *\n * @name Anser.ansiToText\n * @function\n * @param {String} txt The input text.\n * @returns {String} The text output.\n */\n\n }, {\n key: \"ansiToText\",\n value: function ansiToText(txt) {\n return new Anser().ansiToText(txt);\n }\n\n /**\n * Anser\n * The `Anser` class.\n *\n * @name Anser\n * @function\n * @returns {Anser}\n */\n\n }]);\n\n function Anser() {\n _classCallCheck(this, Anser);\n\n this.fg = this.bg = this.fg_truecolor = this.bg_truecolor = null;\n this.bright = 0;\n }\n\n /**\n * setupPalette\n * Sets up the palette.\n *\n * @name setupPalette\n * @function\n */\n\n\n _createClass(Anser, [{\n key: \"setupPalette\",\n value: function setupPalette() {\n this.PALETTE_COLORS = [];\n\n // Index 0..15 : System color\n for (var i = 0; i < 2; ++i) {\n for (var j = 0; j < 8; ++j) {\n this.PALETTE_COLORS.push(ANSI_COLORS[i][j].color);\n }\n }\n\n // Index 16..231 : RGB 6x6x6\n // https://gist.github.com/jasonm23/2868981#file-xterm-256color-yaml\n var levels = [0, 95, 135, 175, 215, 255];\n var format = function format(r, g, b) {\n return levels[r] + \", \" + levels[g] + \", \" + levels[b];\n };\n var r = void 0,\n g = void 0,\n b = void 0;\n for (var _r = 0; _r < 6; ++_r) {\n for (var _g = 0; _g < 6; ++_g) {\n for (var _b = 0; _b < 6; ++_b) {\n this.PALETTE_COLORS.push(format(_r, _g, _b));\n }\n }\n }\n\n // Index 232..255 : Grayscale\n var level = 8;\n for (var _i = 0; _i < 24; ++_i, level += 10) {\n this.PALETTE_COLORS.push(format(level, level, level));\n }\n }\n\n /**\n * escapeForHtml\n * Escapes the input text.\n *\n * @name escapeForHtml\n * @function\n * @param {String} txt The input text.\n * @returns {String} The escpaed HTML output.\n */\n\n }, {\n key: \"escapeForHtml\",\n value: function escapeForHtml(txt) {\n return txt.replace(/[&<>]/gm, function (str) {\n return str == \"&\" ? \"&\" : str == \"<\" ? \"<\" : str == \">\" ? \">\" : \"\";\n });\n }\n\n /**\n * linkify\n * Adds HTML link elements.\n *\n * @name linkify\n * @function\n * @param {String} txt The input text.\n * @returns {String} The HTML output containing link elements.\n */\n\n }, {\n key: \"linkify\",\n value: function linkify(txt) {\n return txt.replace(/(https?:\\/\\/[^\\s]+)/gm, function (str) {\n return \"<a href=\\\"\" + str + \"\\\">\" + str + \"</a>\";\n });\n }\n\n /**\n * ansiToHtml\n * Converts ANSI input into HTML output.\n *\n * @name ansiToHtml\n * @function\n * @param {String} txt The input text.\n * @param {Object} options The options passed ot the `process` method.\n * @returns {String} The HTML output.\n */\n\n }, {\n key: \"ansiToHtml\",\n value: function ansiToHtml(txt, options) {\n return this.process(txt, options, true);\n }\n\n /**\n * ansiToJson\n * Converts ANSI input into HTML output.\n *\n * @name ansiToJson\n * @function\n * @param {String} txt The input text.\n * @param {Object} options The options passed ot the `process` method.\n * @returns {String} The JSON output.\n */\n\n }, {\n key: \"ansiToJson\",\n value: function ansiToJson(txt, options) {\n options = options || {};\n options.json = true;\n options.clearLine = false;\n return this.process(txt, options, true);\n }\n\n /**\n * ansiToText\n * Converts ANSI input into HTML output.\n *\n * @name ansiToText\n * @function\n * @param {String} txt The input text.\n * @returns {String} The text output.\n */\n\n }, {\n key: \"ansiToText\",\n value: function ansiToText(txt) {\n return this.process(txt, {}, false);\n }\n\n /**\n * process\n * Processes the input.\n *\n * @name process\n * @function\n * @param {String} txt The input text.\n * @param {Object} options An object passed to `processChunk` method, extended with:\n *\n * - `json` (Boolean): If `true`, the result will be an object.\n * - `use_classes` (Boolean): If `true`, HTML classes will be appended to the HTML output.\n *\n * @param {Boolean} markup\n */\n\n }, {\n key: \"process\",\n value: function process(txt, options, markup) {\n var _this = this;\n\n var self = this;\n var raw_text_chunks = txt.split(/\\033\\[/);\n var first_chunk = raw_text_chunks.shift(); // the first chunk is not the result of the split\n\n if (options === undefined || options === null) {\n options = {};\n }\n options.clearLine = /\\r/.test(txt); // check for Carriage Return\n var color_chunks = raw_text_chunks.map(function (chunk) {\n return _this.processChunk(chunk, options, markup);\n });\n\n if (options && options.json) {\n var first = self.processChunkJson(\"\");\n first.content = first_chunk;\n first.clearLine = options.clearLine;\n color_chunks.unshift(first);\n if (options.remove_empty) {\n color_chunks = color_chunks.filter(function (c) {\n return !c.isEmpty();\n });\n }\n return color_chunks;\n } else {\n color_chunks.unshift(first_chunk);\n }\n\n return color_chunks.join(\"\");\n }\n\n /**\n * processChunkJson\n * Processes the current chunk into json output.\n *\n * @name processChunkJson\n * @function\n * @param {String} text The input text.\n * @param {Object} options An object containing the following fields:\n *\n * - `json` (Boolean): If `true`, the result will be an object.\n * - `use_classes` (Boolean): If `true`, HTML classes will be appended to the HTML output.\n *\n * @param {Boolean} markup If false, the colors will not be parsed.\n * @return {Object} The result object:\n *\n * - `content` (String): The text.\n * - `fg` (String|null): The foreground color.\n * - `bg` (String|null): The background color.\n * - `fg_truecolor` (String|null): The foreground true color (if 16m color is enabled).\n * - `bg_truecolor` (String|null): The background true color (if 16m color is enabled).\n * - `clearLine` (Boolean): `true` if a carriageReturn \\r was fount at end of line.\n * - `was_processed` (Bolean): `true` if the colors were processed, `false` otherwise.\n * - `isEmpty` (Function): A function returning `true` if the content is empty, or `false` otherwise.\n *\n */\n\n }, {\n key: \"processChunkJson\",\n value: function processChunkJson(text, options, markup) {\n\n // Are we using classes or styles?\n options = typeof options == \"undefined\" ? {} : options;\n var use_classes = options.use_classes = typeof options.use_classes != \"undefined\" && options.use_classes;\n var key = options.key = use_classes ? \"class\" : \"color\";\n\n var result = {\n content: text,\n fg: null,\n bg: null,\n fg_truecolor: null,\n bg_truecolor: null,\n clearLine: options.clearLine,\n decoration: null,\n was_processed: false,\n isEmpty: function isEmpty() {\n return !result.content;\n }\n };\n\n // Each \"chunk\" is the text after the CSI (ESC + \"[\") and before the next CSI/EOF.\n //\n // This regex matches four groups within a chunk.\n //\n // The first and third groups match code type.\n // We supported only SGR command. It has empty first group and \"m\" in third.\n //\n // The second group matches all of the number+semicolon command sequences\n // before the \"m\" (or other trailing) character.\n // These are the graphics or SGR commands.\n //\n // The last group is the text (including newlines) that is colored by\n // the other group\"s commands.\n var matches = text.match(/^([!\\x3c-\\x3f]*)([\\d;]*)([\\x20-\\x2c]*[\\x40-\\x7e])([\\s\\S]*)/m);\n\n if (!matches) return result;\n\n var orig_txt = result.content = matches[4];\n var nums = matches[2].split(\";\");\n\n // We currently support only \"SGR\" (Select Graphic Rendition)\n // Simply ignore if not a SGR command.\n if (matches[1] !== \"\" || matches[3] !== \"m\") {\n return result;\n }\n\n if (!markup) {\n return result;\n }\n\n var self = this;\n\n self.decoration = null;\n\n while (nums.length > 0) {\n var num_str = nums.shift();\n var num = parseInt(num_str);\n\n if (isNaN(num) || num === 0) {\n self.fg = self.bg = self.decoration = null;\n } else if (num === 1) {\n self.decoration = \"bold\";\n } else if (num === 2) {\n self.decoration = \"dim\";\n // Enable code 2 to get string\n } else if (num == 3) {\n self.decoration = \"italic\";\n } else if (num == 4) {\n self.decoration = \"underline\";\n } else if (num == 5) {\n self.decoration = \"blink\";\n } else if (num === 7) {\n self.decoration = \"reverse\";\n } else if (num === 8) {\n self.decoration = \"hidden\";\n // Enable code 9 to get strikethrough\n } else if (num === 9) {\n self.decoration = \"strikethrough\";\n } else if (num == 39) {\n self.fg = null;\n } else if (num == 49) {\n self.bg = null;\n // Foreground color\n } else if (num >= 30 && num < 38) {\n self.fg = ANSI_COLORS[0][num % 10][key];\n // Foreground bright color\n } else if (num >= 90 && num < 98) {\n self.fg = ANSI_COLORS[1][num % 10][key];\n // Background color\n } else if (num >= 40 && num < 48) {\n self.bg = ANSI_COLORS[0][num % 10][key];\n // Background bright color\n } else if (num >= 100 && num < 108) {\n self.bg = ANSI_COLORS[1][num % 10][key];\n } else if (num === 38 || num === 48) {\n // extend color (38=fg, 48=bg)\n var is_foreground = num === 38;\n if (nums.length >= 1) {\n var mode = nums.shift();\n if (mode === \"5\" && nums.length >= 1) {\n // palette color\n var palette_index = parseInt(nums.shift());\n if (palette_index >= 0 && palette_index <= 255) {\n if (!use_classes) {\n if (!this.PALETTE_COLORS) {\n self.setupPalette();\n }\n if (is_foreground) {\n self.fg = this.PALETTE_COLORS[palette_index];\n } else {\n self.bg = this.PALETTE_COLORS[palette_index];\n }\n } else {\n var klass = palette_index >= 16 ? \"ansi-palette-\" + palette_index : ANSI_COLORS[palette_index > 7 ? 1 : 0][palette_index % 8][\"class\"];\n if (is_foreground) {\n self.fg = klass;\n } else {\n self.bg = klass;\n }\n }\n }\n } else if (mode === \"2\" && nums.length >= 3) {\n // true color\n var r = parseInt(nums.shift());\n var g = parseInt(nums.shift());\n var b = parseInt(nums.shift());\n if (r >= 0 && r <= 255 && g >= 0 && g <= 255 && b >= 0 && b <= 255) {\n var color = r + \", \" + g + \", \" + b;\n if (!use_classes) {\n if (is_foreground) {\n self.fg = color;\n } else {\n self.bg = color;\n }\n } else {\n if (is_foreground) {\n self.fg = \"ansi-truecolor\";\n self.fg_truecolor = color;\n } else {\n self.bg = \"ansi-truecolor\";\n self.bg_truecolor = color;\n }\n }\n }\n }\n }\n }\n }\n\n if (self.fg === null && self.bg === null && self.decoration === null) {\n return result;\n } else {\n var styles = [];\n var classes = [];\n var data = {};\n\n result.fg = self.fg;\n result.bg = self.bg;\n result.fg_truecolor = self.fg_truecolor;\n result.bg_truecolor = self.bg_truecolor;\n result.decoration = self.decoration;\n result.was_processed = true;\n\n return result;\n }\n }\n\n /**\n * processChunk\n * Processes the current chunk of text.\n *\n * @name processChunk\n * @function\n * @param {String} text The input text.\n * @param {Object} options An object containing the following fields:\n *\n * - `json` (Boolean): If `true`, the result will be an object.\n * - `use_classes` (Boolean): If `true`, HTML classes will be appended to the HTML output.\n *\n * @param {Boolean} markup If false, the colors will not be parsed.\n * @return {Object|String} The result (object if `json` is wanted back or string otherwise).\n */\n\n }, {\n key: \"processChunk\",\n value: function processChunk(text, options, markup) {\n var _this2 = this;\n\n var self = this;\n options = options || {};\n var jsonChunk = this.processChunkJson(text, options, markup);\n\n if (options.json) {\n return jsonChunk;\n }\n if (jsonChunk.isEmpty()) {\n return \"\";\n }\n if (!jsonChunk.was_processed) {\n return jsonChunk.content;\n }\n\n var use_classes = options.use_classes;\n\n var styles = [];\n var classes = [];\n var data = {};\n var render_data = function render_data(data) {\n var fragments = [];\n var key = void 0;\n for (key in data) {\n if (data.hasOwnProperty(key)) {\n fragments.push(\"data-\" + key + \"=\\\"\" + _this2.escapeForHtml(data[key]) + \"\\\"\");\n }\n }\n return fragments.length > 0 ? \" \" + fragments.join(\" \") : \"\";\n };\n\n if (jsonChunk.fg) {\n if (use_classes) {\n classes.push(jsonChunk.fg + \"-fg\");\n if (jsonChunk.fg_truecolor !== null) {\n data[\"ansi-truecolor-fg\"] = jsonChunk.fg_truecolor;\n jsonChunk.fg_truecolor = null;\n }\n } else {\n styles.push(\"color:rgb(\" + jsonChunk.fg + \")\");\n }\n }\n\n if (jsonChunk.bg) {\n if (use_classes) {\n classes.push(jsonChunk.bg + \"-bg\");\n if (jsonChunk.bg_truecolor !== null) {\n data[\"ansi-truecolor-bg\"] = jsonChunk.bg_truecolor;\n jsonChunk.bg_truecolor = null;\n }\n } else {\n styles.push(\"background-color:rgb(\" + jsonChunk.bg + \")\");\n }\n }\n\n if (jsonChunk.decoration) {\n if (use_classes) {\n classes.push(\"ansi-\" + jsonChunk.decoration);\n } else if (jsonChunk.decoration === \"bold\") {\n styles.push(\"font-weight:bold\");\n } else if (jsonChunk.decoration === \"dim\") {\n styles.push(\"opacity:0.5\");\n } else if (jsonChunk.decoration === \"italic\") {\n styles.push(\"font-style:italic\");\n // underline and blink are treated bellow\n } else if (jsonChunk.decoration === \"reverse\") {\n styles.push(\"filter:invert(100%)\");\n } else if (jsonChunk.decoration === \"hidden\") {\n styles.push(\"visibility:hidden\");\n } else if (jsonChunk.decoration === \"strikethrough\") {\n styles.push(\"text-decoration:line-through\");\n } else {\n styles.push(\"text-decoration:\" + jsonChunk.decoration);\n }\n }\n\n if (use_classes) {\n return \"<span class=\\\"\" + classes.join(\" \") + \"\\\"\" + render_data(data) + \">\" + jsonChunk.content + \"</span>\";\n } else {\n return \"<span style=\\\"\" + styles.join(\";\") + \"\\\"\" + render_data(data) + \">\" + jsonChunk.content + \"</span>\";\n }\n }\n }]);\n\n return Anser;\n}();\n\n;\n\nmodule.exports = Anser;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QzNCLG1CQUFtQixRQUFRO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLFNBQVM7QUFDNUIsb0JBQW9CLGVBQWU7QUFDbkM7O0FBRUEsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Qsd0RBQXdEO0FBQ3hEO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0EsQ0FBQzs7QUFFRDs7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvYW5zZXIvbGliL2luZGV4LmpzP2JjZTciXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbi8vIFRoaXMgZmlsZSB3YXMgb3JpZ2luYWxseSB3cml0dGVuIGJ5IEBkcnVkcnUgKGh0dHBzOi8vZ2l0aHViLmNvbS9kcnVkcnUvYW5zaV91cCksIE1JVCwgMjAxMVxuXG52YXIgX2NyZWF0ZUNsYXNzID0gZnVuY3Rpb24gKCkgeyBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH0gcmV0dXJuIGZ1bmN0aW9uIChDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfTsgfSgpO1xuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG52YXIgQU5TSV9DT0xPUlMgPSBbW3sgY29sb3I6IFwiMCwgMCwgMFwiLCBcImNsYXNzXCI6IFwiYW5zaS1ibGFja1wiIH0sIHsgY29sb3I6IFwiMTg3LCAwLCAwXCIsIFwiY2xhc3NcIjogXCJhbnNpLXJlZFwiIH0sIHsgY29sb3I6IFwiMCwgMTg3LCAwXCIsIFwiY2xhc3NcIjogXCJhbnNpLWdyZWVuXCIgfSwgeyBjb2xvcjogXCIxODcsIDE4NywgMFwiLCBcImNsYXNzXCI6IFwiYW5zaS15ZWxsb3dcIiB9LCB7IGNvbG9yOiBcIjAsIDAsIDE4N1wiLCBcImNsYXNzXCI6IFwiYW5zaS1ibHVlXCIgfSwgeyBjb2xvcjogXCIxODcsIDAsIDE4N1wiLCBcImNsYXNzXCI6IFwiYW5zaS1tYWdlbnRhXCIgfSwgeyBjb2xvcjogXCIwLCAxODcsIDE4N1wiLCBcImNsYXNzXCI6IFwiYW5zaS1jeWFuXCIgfSwgeyBjb2xvcjogXCIyNTUsMjU1LDI1NVwiLCBcImNsYXNzXCI6IFwiYW5zaS13aGl0ZVwiIH1dLCBbeyBjb2xvcjogXCI4NSwgODUsIDg1XCIsIFwiY2xhc3NcIjogXCJhbnNpLWJyaWdodC1ibGFja1wiIH0sIHsgY29sb3I6IFwiMjU1LCA4NSwgODVcIiwgXCJjbGFzc1wiOiBcImFuc2ktYnJpZ2h0LXJlZFwiIH0sIHsgY29sb3I6IFwiMCwgMjU1LCAwXCIsIFwiY2xhc3NcIjogXCJhbnNpLWJyaWdodC1ncmVlblwiIH0sIHsgY29sb3I6IFwiMjU1LCAyNTUsIDg1XCIsIFwiY2xhc3NcIjogXCJhbnNpLWJyaWdodC15ZWxsb3dcIiB9LCB7IGNvbG9yOiBcIjg1LCA4NSwgMjU1XCIsIFwiY2xhc3NcIjogXCJhbnNpLWJyaWdodC1ibHVlXCIgfSwgeyBjb2xvcjogXCIyNTUsIDg1LCAyNTVcIiwgXCJjbGFzc1wiOiBcImFuc2ktYnJpZ2h0LW1hZ2VudGFcIiB9LCB7IGNvbG9yOiBcIjg1LCAyNTUsIDI1NVwiLCBcImNsYXNzXCI6IFwiYW5zaS1icmlnaHQtY3lhblwiIH0sIHsgY29sb3I6IFwiMjU1LCAyNTUsIDI1NVwiLCBcImNsYXNzXCI6IFwiYW5zaS1icmlnaHQtd2hpdGVcIiB9XV07XG5cbnZhciBBbnNlciA9IGZ1bmN0aW9uICgpIHtcbiAgICBfY3JlYXRlQ2xhc3MoQW5zZXIsIG51bGwsIFt7XG4gICAgICAgIGtleTogXCJlc2NhcGVGb3JIdG1sXCIsXG5cblxuICAgICAgICAvKipcbiAgICAgICAgICogQW5zZXIuZXNjYXBlRm9ySHRtbFxuICAgICAgICAgKiBFc2NhcGUgdGhlIGlucHV0IEhUTUwuXG4gICAgICAgICAqXG4gICAgICAgICAqIFRoaXMgZG9lcyB0aGUgbWluaW11bSBlc2NhcGluZyBvZiB0ZXh0IHRvIG1ha2UgaXQgY29tcGxpYW50IHdpdGggSFRNTC5cbiAgICAgICAgICogSW4gcGFydGljdWxhciwgdGhlICcmJywnPCcsIGFuZCAnPicgY2hhcmFjdGVycyBhcmUgZXNjYXBlZC4gVGhpcyBzaG91bGRcbiAgICAgICAgICogYmUgcnVuIHByaW9yIHRvIGBhbnNpVG9IdG1sYC5cbiAgICAgICAgICpcbiAgICAgICAgICogQG5hbWUgQW5zZXIuZXNjYXBlRm9ySHRtbFxuICAgICAgICAgKiBAZnVuY3Rpb25cbiAgICAgICAgICogQHBhcmFtIHtTdHJpbmd9IHR4dCBUaGUgaW5wdXQgdGV4dCAoY29udGFpbmluZyB0aGUgQU5TSSBzbmlwcGV0cykuXG4gICAgICAgICAqIEByZXR1cm5zIHtTdHJpbmd9IFRoZSBlc2NhcGVkIGh0bWwuXG4gICAgICAgICAqL1xuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gZXNjYXBlRm9ySHRtbCh0eHQpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQW5zZXIoKS5lc2NhcGVGb3JIdG1sKHR4dCk7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogQW5zZXIubGlua2lmeVxuICAgICAgICAgKiBBZGRzIHRoZSBsaW5rcyBpbiB0aGUgSFRNTC5cbiAgICAgICAgICpcbiAgICAgICAgICogVGhpcyByZXBsYWNlcyBhbnkgbGlua3MgaW4gdGhlIHRleHQgd2l0aCBhbmNob3IgdGFncyB0aGF0IGRpc3BsYXkgdGhlXG4gICAgICAgICAqIGxpbmsuIFRoZSBsaW5rcyBzaG91bGQgaGF2ZSBhdCBsZWFzdCBvbmUgd2hpdGVzcGFjZSBjaGFyYWN0ZXJcbiAgICAgICAgICogc3Vycm91bmRpbmcgaXQuIEFsc28sIHlvdSBzaG91bGQgYXBwbHkgdGhpcyBhZnRlciB5b3UgaGF2ZSBydW5cbiAgICAgICAgICogYGFuc2lUb0h0bWxgIG9uIHRoZSB0ZXh0LlxuICAgICAgICAgKlxuICAgICAgICAgKiBAbmFtZSBBbnNlci5saW5raWZ5XG4gICAgICAgICAqIEBmdW5jdGlvblxuICAgICAgICAgKiBAcGFyYW0ge1N0cmluZ30gdHh0IFRoZSBpbnB1dCB0ZXh0LlxuICAgICAgICAgKiBAcmV0dXJucyB7U3RyaW5nfSBUaGUgSFRNTCBjb250YWluaW5nIHRoZSA8YT4gdGFncyAodW5lc2NhcGVkKS5cbiAgICAgICAgICovXG5cbiAgICB9LCB7XG4gICAgICAgIGtleTogXCJsaW5raWZ5XCIsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBsaW5raWZ5KHR4dCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBBbnNlcigpLmxpbmtpZnkodHh0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBbnNlci5hbnNpVG9IdG1sXG4gICAgICAgICAqIFRoaXMgcmVwbGFjZXMgQU5TSSB0ZXJtaW5hbCBlc2NhcGUgY29kZXMgd2l0aCBTUEFOIHRhZ3MgdGhhdCB3cmFwIHRoZVxuICAgICAgICAgKiBjb250ZW50LlxuICAgICAgICAgKlxuICAgICAgICAgKiBUaGlzIGZ1bmN0aW9uIG9ubHkgaW50ZXJwcmV0cyBBTlNJIFNHUiAoU2VsZWN0IEdyYXBoaWMgUmVuZGl0aW9uKSBjb2Rlc1xuICAgICAgICAgKiB0aGF0IGNhbiBiZSByZXByZXNlbnRlZCBpbiBIVE1MLlxuICAgICAgICAgKiBGb3IgZXhhbXBsZSwgY3Vyc29yIG1vdmVtZW50IGNvZGVzIGFyZSBpZ25vcmVkIGFuZCBoaWRkZW4gZnJvbSBvdXRwdXQuXG4gICAgICAgICAqIFRoZSBkZWZhdWx0IHN0eWxlIHVzZXMgY29sb3JzIHRoYXQgYXJlIHZlcnkgY2xvc2UgdG8gdGhlIHByZXNjcmliZWRcbiAgICAgICAgICogc3RhbmRhcmQuIFRoZSBzdGFuZGFyZCBhc3N1bWVzIHRoYXQgdGhlIHRleHQgd2lsbCBoYXZlIGEgYmxhY2tcbiAgICAgICAgICogYmFja2dyb3VuZC4gVGhlc2UgY29sb3JzIGFyZSBzZXQgYXMgaW5saW5lIHN0eWxlcyBvbiB0aGUgU1BBTiB0YWdzLlxuICAgICAgICAgKlxuICAgICAgICAgKiBBbm90aGVyIG9wdGlvbiBpcyB0byBzZXQgYHVzZV9jbGFzc2VzOiB0cnVlYCBpbiB0aGUgb3B0aW9ucyBhcmd1bWVudC5cbiAgICAgICAgICogVGhpcyB3aWxsIGluc3RlYWQgc2V0IGNsYXNzZXMgb24gdGhlIHNwYW5zIHNvIHRoZSBjb2xvcnMgY2FuIGJlIHNldCB2aWFcbiAgICAgICAgICogQ1NTLiBUaGUgY2xhc3MgbmFtZXMgdXNlZCBhcmUgb2YgdGhlIGZvcm1hdCBgYW5zaS0qLWZnL2JnYCBhbmRcbiAgICAgICAgICogYGFuc2ktYnJpZ2h0LSotZmcvYmdgIHdoZXJlIGAqYCBpcyB0aGUgY29sb3IgbmFtZSxcbiAgICAgICAgICogaS5lIGJsYWNrL3JlZC9ncmVlbi95ZWxsb3cvYmx1ZS9tYWdlbnRhL2N5YW4vd2hpdGUuXG4gICAgICAgICAqXG4gICAgICAgICAqIEBuYW1lIEFuc2VyLmFuc2lUb0h0bWxcbiAgICAgICAgICogQGZ1bmN0aW9uXG4gICAgICAgICAqIEBwYXJhbSB7U3RyaW5nfSB0eHQgVGhlIGlucHV0IHRleHQuXG4gICAgICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIFRoZSBvcHRpb25zIHBhc3NlZCB0byB0aGUgYW5zaVRvSFRNTCBtZXRob2QuXG4gICAgICAgICAqIEByZXR1cm5zIHtTdHJpbmd9IFRoZSBIVE1MIG91dHB1dC5cbiAgICAgICAgICovXG5cbiAgICB9LCB7XG4gICAgICAgIGtleTogXCJhbnNpVG9IdG1sXCIsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBhbnNpVG9IdG1sKHR4dCwgb3B0aW9ucykge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBBbnNlcigpLmFuc2lUb0h0bWwodHh0LCBvcHRpb25zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBbnNlci5hbnNpVG9Kc29uXG4gICAgICAgICAqIENvbnZlcnRzIEFOU0kgaW5wdXQgaW50byBKU09OIG91dHB1dC5cbiAgICAgICAgICpcbiAgICAgICAgICogQG5hbWUgQW5zZXIuYW5zaVRvSnNvblxuICAgICAgICAgKiBAZnVuY3Rpb25cbiAgICAgICAgICogQHBhcmFtIHtTdHJpbmd9IHR4dCBUaGUgaW5wdXQgdGV4dC5cbiAgICAgICAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgVGhlIG9wdGlvbnMgcGFzc2VkIHRvIHRoZSBhbnNpVG9IVE1MIG1ldGhvZC5cbiAgICAgICAgICogQHJldHVybnMge1N0cmluZ30gVGhlIEhUTUwgb3V0cHV0LlxuICAgICAgICAgKi9cblxuICAgIH0sIHtcbiAgICAgICAga2V5OiBcImFuc2lUb0pzb25cIixcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIGFuc2lUb0pzb24odHh0LCBvcHRpb25zKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEFuc2VyKCkuYW5zaVRvSnNvbih0eHQsIG9wdGlvbnMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEFuc2VyLmFuc2lUb1RleHRcbiAgICAgICAgICogQ29udmVydHMgQU5TSSBpbnB1dCBpbnRvIHRleHQgb3V0cHV0LlxuICAgICAgICAgKlxuICAgICAgICAgKiBAbmFtZSBBbnNlci5hbnNpVG9UZXh0XG4gICAgICAgICAqIEBmdW5jdGlvblxuICAgICAgICAgKiBAcGFyYW0ge1N0cmluZ30gdHh0IFRoZSBpbnB1dCB0ZXh0LlxuICAgICAgICAgKiBAcmV0dXJucyB7U3RyaW5nfSBUaGUgdGV4dCBvdXRwdXQuXG4gICAgICAgICAqL1xuXG4gICAgfSwge1xuICAgICAgICBrZXk6IFwiYW5zaVRvVGV4dFwiLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gYW5zaVRvVGV4dCh0eHQpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQW5zZXIoKS5hbnNpVG9UZXh0KHR4dCk7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogQW5zZXJcbiAgICAgICAgICogVGhlIGBBbnNlcmAgY2xhc3MuXG4gICAgICAgICAqXG4gICAgICAgICAqIEBuYW1lIEFuc2VyXG4gICAgICAgICAqIEBmdW5jdGlvblxuICAgICAgICAgKiBAcmV0dXJucyB7QW5zZXJ9XG4gICAgICAgICAqL1xuXG4gICAgfV0pO1xuXG4gICAgZnVuY3Rpb24gQW5zZXIoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBBbnNlcik7XG5cbiAgICAgICAgdGhpcy5mZyA9IHRoaXMuYmcgPSB0aGlzLmZnX3RydWVjb2xvciA9IHRoaXMuYmdfdHJ1ZWNvbG9yID0gbnVsbDtcbiAgICAgICAgdGhpcy5icmlnaHQgPSAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHNldHVwUGFsZXR0ZVxuICAgICAqIFNldHMgdXAgdGhlIHBhbGV0dGUuXG4gICAgICpcbiAgICAgKiBAbmFtZSBzZXR1cFBhbGV0dGVcbiAgICAgKiBAZnVuY3Rpb25cbiAgICAgKi9cblxuXG4gICAgX2NyZWF0ZUNsYXNzKEFuc2VyLCBbe1xuICAgICAgICBrZXk6IFwic2V0dXBQYWxldHRlXCIsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBzZXR1cFBhbGV0dGUoKSB7XG4gICAgICAgICAgICB0aGlzLlBBTEVUVEVfQ09MT1JTID0gW107XG5cbiAgICAgICAgICAgIC8vIEluZGV4IDAuLjE1IDogU3lzdGVtIGNvbG9yXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDI7ICsraSkge1xuICAgICAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgODsgKytqKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuUEFMRVRURV9DT0xPUlMucHVzaChBTlNJX0NPTE9SU1tpXVtqXS5jb2xvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBJbmRleCAxNi4uMjMxIDogUkdCIDZ4Nng2XG4gICAgICAgICAgICAvLyBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9qYXNvbm0yMy8yODY4OTgxI2ZpbGUteHRlcm0tMjU2Y29sb3IteWFtbFxuICAgICAgICAgICAgdmFyIGxldmVscyA9IFswLCA5NSwgMTM1LCAxNzUsIDIxNSwgMjU1XTtcbiAgICAgICAgICAgIHZhciBmb3JtYXQgPSBmdW5jdGlvbiBmb3JtYXQociwgZywgYikge1xuICAgICAgICAgICAgICAgIHJldHVybiBsZXZlbHNbcl0gKyBcIiwgXCIgKyBsZXZlbHNbZ10gKyBcIiwgXCIgKyBsZXZlbHNbYl07XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdmFyIHIgPSB2b2lkIDAsXG4gICAgICAgICAgICAgICAgZyA9IHZvaWQgMCxcbiAgICAgICAgICAgICAgICBiID0gdm9pZCAwO1xuICAgICAgICAgICAgZm9yICh2YXIgX3IgPSAwOyBfciA8IDY7ICsrX3IpIHtcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBfZyA9IDA7IF9nIDwgNjsgKytfZykge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBfYiA9IDA7IF9iIDwgNjsgKytfYikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5QQUxFVFRFX0NPTE9SUy5wdXNoKGZvcm1hdChfciwgX2csIF9iKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIEluZGV4IDIzMi4uMjU1IDogR3JheXNjYWxlXG4gICAgICAgICAgICB2YXIgbGV2ZWwgPSA4O1xuICAgICAgICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IDI0OyArK19pLCBsZXZlbCArPSAxMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuUEFMRVRURV9DT0xPUlMucHVzaChmb3JtYXQobGV2ZWwsIGxldmVsLCBsZXZlbCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIGVzY2FwZUZvckh0bWxcbiAgICAgICAgICogRXNjYXBlcyB0aGUgaW5wdXQgdGV4dC5cbiAgICAgICAgICpcbiAgICAgICAgICogQG5hbWUgZXNjYXBlRm9ySHRtbFxuICAgICAgICAgKiBAZnVuY3Rpb25cbiAgICAgICAgICogQHBhcmFtIHtTdHJpbmd9IHR4dCBUaGUgaW5wdXQgdGV4dC5cbiAgICAgICAgICogQHJldHVybnMge1N0cmluZ30gVGhlIGVzY3BhZWQgSFRNTCBvdXRwdXQuXG4gICAgICAgICAqL1xuXG4gICAgfSwge1xuICAgICAgICBrZXk6IFwiZXNjYXBlRm9ySHRtbFwiLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gZXNjYXBlRm9ySHRtbCh0eHQpIHtcbiAgICAgICAgICAgIHJldHVybiB0eHQucmVwbGFjZSgvWyY8Pl0vZ20sIGZ1bmN0aW9uIChzdHIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RyID09IFwiJlwiID8gXCImYW1wO1wiIDogc3RyID09IFwiPFwiID8gXCImbHQ7XCIgOiBzdHIgPT0gXCI+XCIgPyBcIiZndDtcIiA6IFwiXCI7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBsaW5raWZ5XG4gICAgICAgICAqIEFkZHMgSFRNTCBsaW5rIGVsZW1lbnRzLlxuICAgICAgICAgKlxuICAgICAgICAgKiBAbmFtZSBsaW5raWZ5XG4gICAgICAgICAqIEBmdW5jdGlvblxuICAgICAgICAgKiBAcGFyYW0ge1N0cmluZ30gdHh0IFRoZSBpbnB1dCB0ZXh0LlxuICAgICAgICAgKiBAcmV0dXJucyB7U3RyaW5nfSBUaGUgSFRNTCBvdXRwdXQgY29udGFpbmluZyBsaW5rIGVsZW1lbnRzLlxuICAgICAgICAgKi9cblxuICAgIH0sIHtcbiAgICAgICAga2V5OiBcImxpbmtpZnlcIixcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIGxpbmtpZnkodHh0KSB7XG4gICAgICAgICAgICByZXR1cm4gdHh0LnJlcGxhY2UoLyhodHRwcz86XFwvXFwvW15cXHNdKykvZ20sIGZ1bmN0aW9uIChzdHIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCI8YSBocmVmPVxcXCJcIiArIHN0ciArIFwiXFxcIj5cIiArIHN0ciArIFwiPC9hPlwiO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogYW5zaVRvSHRtbFxuICAgICAgICAgKiBDb252ZXJ0cyBBTlNJIGlucHV0IGludG8gSFRNTCBvdXRwdXQuXG4gICAgICAgICAqXG4gICAgICAgICAqIEBuYW1lIGFuc2lUb0h0bWxcbiAgICAgICAgICogQGZ1bmN0aW9uXG4gICAgICAgICAqIEBwYXJhbSB7U3RyaW5nfSB0eHQgVGhlIGlucHV0IHRleHQuXG4gICAgICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIFRoZSBvcHRpb25zIHBhc3NlZCBvdCB0aGUgYHByb2Nlc3NgIG1ldGhvZC5cbiAgICAgICAgICogQHJldHVybnMge1N0cmluZ30gVGhlIEhUTUwgb3V0cHV0LlxuICAgICAgICAgKi9cblxuICAgIH0sIHtcbiAgICAgICAga2V5OiBcImFuc2lUb0h0bWxcIixcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIGFuc2lUb0h0bWwodHh0LCBvcHRpb25zKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzKHR4dCwgb3B0aW9ucywgdHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogYW5zaVRvSnNvblxuICAgICAgICAgKiBDb252ZXJ0cyBBTlNJIGlucHV0IGludG8gSFRNTCBvdXRwdXQuXG4gICAgICAgICAqXG4gICAgICAgICAqIEBuYW1lIGFuc2lUb0pzb25cbiAgICAgICAgICogQGZ1bmN0aW9uXG4gICAgICAgICAqIEBwYXJhbSB7U3RyaW5nfSB0eHQgVGhlIGlucHV0IHRleHQuXG4gICAgICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIFRoZSBvcHRpb25zIHBhc3NlZCBvdCB0aGUgYHByb2Nlc3NgIG1ldGhvZC5cbiAgICAgICAgICogQHJldHVybnMge1N0cmluZ30gVGhlIEpTT04gb3V0cHV0LlxuICAgICAgICAgKi9cblxuICAgIH0sIHtcbiAgICAgICAga2V5OiBcImFuc2lUb0pzb25cIixcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIGFuc2lUb0pzb24odHh0LCBvcHRpb25zKSB7XG4gICAgICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgICAgICAgICAgIG9wdGlvbnMuanNvbiA9IHRydWU7XG4gICAgICAgICAgICBvcHRpb25zLmNsZWFyTGluZSA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzcyh0eHQsIG9wdGlvbnMsIHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIGFuc2lUb1RleHRcbiAgICAgICAgICogQ29udmVydHMgQU5TSSBpbnB1dCBpbnRvIEhUTUwgb3V0cHV0LlxuICAgICAgICAgKlxuICAgICAgICAgKiBAbmFtZSBhbnNpVG9UZXh0XG4gICAgICAgICAqIEBmdW5jdGlvblxuICAgICAgICAgKiBAcGFyYW0ge1N0cmluZ30gdHh0IFRoZSBpbnB1dCB0ZXh0LlxuICAgICAgICAgKiBAcmV0dXJucyB7U3RyaW5nfSBUaGUgdGV4dCBvdXRwdXQuXG4gICAgICAgICAqL1xuXG4gICAgfSwge1xuICAgICAgICBrZXk6IFwiYW5zaVRvVGV4dFwiLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gYW5zaVRvVGV4dCh0eHQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3ModHh0LCB7fSwgZmFsc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIHByb2Nlc3NcbiAgICAgICAgICogUHJvY2Vzc2VzIHRoZSBpbnB1dC5cbiAgICAgICAgICpcbiAgICAgICAgICogQG5hbWUgcHJvY2Vzc1xuICAgICAgICAgKiBAZnVuY3Rpb25cbiAgICAgICAgICogQHBhcmFtIHtTdHJpbmd9IHR4dCBUaGUgaW5wdXQgdGV4dC5cbiAgICAgICAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgQW4gb2JqZWN0IHBhc3NlZCB0byBgcHJvY2Vzc0NodW5rYCBtZXRob2QsIGV4dGVuZGVkIHdpdGg6XG4gICAgICAgICAqXG4gICAgICAgICAqICAtIGBqc29uYCAoQm9vbGVhbik6IElmIGB0cnVlYCwgdGhlIHJlc3VsdCB3aWxsIGJlIGFuIG9iamVjdC5cbiAgICAgICAgICogIC0gYHVzZV9jbGFzc2VzYCAoQm9vbGVhbik6IElmIGB0cnVlYCwgSFRNTCBjbGFzc2VzIHdpbGwgYmUgYXBwZW5kZWQgdG8gdGhlIEhUTUwgb3V0cHV0LlxuICAgICAgICAgKlxuICAgICAgICAgKiBAcGFyYW0ge0Jvb2xlYW59IG1hcmt1cFxuICAgICAgICAgKi9cblxuICAgIH0sIHtcbiAgICAgICAga2V5OiBcInByb2Nlc3NcIixcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIHByb2Nlc3ModHh0LCBvcHRpb25zLCBtYXJrdXApIHtcbiAgICAgICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICAgICAgICAgIHZhciBzZWxmID0gdGhpcztcbiAgICAgICAgICAgIHZhciByYXdfdGV4dF9jaHVua3MgPSB0eHQuc3BsaXQoL1xcMDMzXFxbLyk7XG4gICAgICAgICAgICB2YXIgZmlyc3RfY2h1bmsgPSByYXdfdGV4dF9jaHVua3Muc2hpZnQoKTsgLy8gdGhlIGZpcnN0IGNodW5rIGlzIG5vdCB0aGUgcmVzdWx0IG9mIHRoZSBzcGxpdFxuXG4gICAgICAgICAgICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkIHx8IG9wdGlvbnMgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBvcHRpb25zID0ge307XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcHRpb25zLmNsZWFyTGluZSA9IC9cXHIvLnRlc3QodHh0KTsgLy8gY2hlY2sgZm9yIENhcnJpYWdlIFJldHVyblxuICAgICAgICAgICAgdmFyIGNvbG9yX2NodW5rcyA9IHJhd190ZXh0X2NodW5rcy5tYXAoZnVuY3Rpb24gKGNodW5rKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF90aGlzLnByb2Nlc3NDaHVuayhjaHVuaywgb3B0aW9ucywgbWFya3VwKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLmpzb24pIHtcbiAgICAgICAgICAgICAgICB2YXIgZmlyc3QgPSBzZWxmLnByb2Nlc3NDaHVua0pzb24oXCJcIik7XG4gICAgICAgICAgICAgICAgZmlyc3QuY29udGVudCA9IGZpcnN0X2NodW5rO1xuICAgICAgICAgICAgICAgIGZpcnN0LmNsZWFyTGluZSA9IG9wdGlvbnMuY2xlYXJMaW5lO1xuICAgICAgICAgICAgICAgIGNvbG9yX2NodW5rcy51bnNoaWZ0KGZpcnN0KTtcbiAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5yZW1vdmVfZW1wdHkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3JfY2h1bmtzID0gY29sb3JfY2h1bmtzLmZpbHRlcihmdW5jdGlvbiAoYykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICFjLmlzRW1wdHkoKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBjb2xvcl9jaHVua3M7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbG9yX2NodW5rcy51bnNoaWZ0KGZpcnN0X2NodW5rKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGNvbG9yX2NodW5rcy5qb2luKFwiXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIHByb2Nlc3NDaHVua0pzb25cbiAgICAgICAgICogUHJvY2Vzc2VzIHRoZSBjdXJyZW50IGNodW5rIGludG8ganNvbiBvdXRwdXQuXG4gICAgICAgICAqXG4gICAgICAgICAqIEBuYW1lIHByb2Nlc3NDaHVua0pzb25cbiAgICAgICAgICogQGZ1bmN0aW9uXG4gICAgICAgICAqIEBwYXJhbSB7U3RyaW5nfSB0ZXh0IFRoZSBpbnB1dCB0ZXh0LlxuICAgICAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgZm9sbG93aW5nIGZpZWxkczpcbiAgICAgICAgICpcbiAgICAgICAgICogIC0gYGpzb25gIChCb29sZWFuKTogSWYgYHRydWVgLCB0aGUgcmVzdWx0IHdpbGwgYmUgYW4gb2JqZWN0LlxuICAgICAgICAgKiAgLSBgdXNlX2NsYXNzZXNgIChCb29sZWFuKTogSWYgYHRydWVgLCBIVE1MIGNsYXNzZXMgd2lsbCBiZSBhcHBlbmRlZCB0byB0aGUgSFRNTCBvdXRwdXQuXG4gICAgICAgICAqXG4gICAgICAgICAqIEBwYXJhbSB7Qm9vbGVhbn0gbWFya3VwIElmIGZhbHNlLCB0aGUgY29sb3JzIHdpbGwgbm90IGJlIHBhcnNlZC5cbiAgICAgICAgICogQHJldHVybiB7T2JqZWN0fSBUaGUgcmVzdWx0IG9iamVjdDpcbiAgICAgICAgICpcbiAgICAgICAgICogIC0gYGNvbnRlbnRgIChTdHJpbmcpOiBUaGUgdGV4dC5cbiAgICAgICAgICogIC0gYGZnYCAoU3RyaW5nfG51bGwpOiBUaGUgZm9yZWdyb3VuZCBjb2xvci5cbiAgICAgICAgICogIC0gYGJnYCAoU3RyaW5nfG51bGwpOiBUaGUgYmFja2dyb3VuZCBjb2xvci5cbiAgICAgICAgICogIC0gYGZnX3RydWVjb2xvcmAgKFN0cmluZ3xudWxsKTogVGhlIGZvcmVncm91bmQgdHJ1ZSBjb2xvciAoaWYgMTZtIGNvbG9yIGlzIGVuYWJsZWQpLlxuICAgICAgICAgKiAgLSBgYmdfdHJ1ZWNvbG9yYCAoU3RyaW5nfG51bGwpOiBUaGUgYmFja2dyb3VuZCB0cnVlIGNvbG9yIChpZiAxNm0gY29sb3IgaXMgZW5hYmxlZCkuXG4gICAgICAgICAqICAtIGBjbGVhckxpbmVgIChCb29sZWFuKTogYHRydWVgIGlmIGEgY2FycmlhZ2VSZXR1cm4gXFxyIHdhcyBmb3VudCBhdCBlbmQgb2YgbGluZS5cbiAgICAgICAgICogIC0gYHdhc19wcm9jZXNzZWRgIChCb2xlYW4pOiBgdHJ1ZWAgaWYgdGhlIGNvbG9ycyB3ZXJlIHByb2Nlc3NlZCwgYGZhbHNlYCBvdGhlcndpc2UuXG4gICAgICAgICAqICAtIGBpc0VtcHR5YCAoRnVuY3Rpb24pOiBBIGZ1bmN0aW9uIHJldHVybmluZyBgdHJ1ZWAgaWYgdGhlIGNvbnRlbnQgaXMgZW1wdHksIG9yIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICAgICAgICAgKlxuICAgICAgICAgKi9cblxuICAgIH0sIHtcbiAgICAgICAga2V5OiBcInByb2Nlc3NDaHVua0pzb25cIixcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIHByb2Nlc3NDaHVua0pzb24odGV4dCwgb3B0aW9ucywgbWFya3VwKSB7XG5cbiAgICAgICAgICAgIC8vIEFyZSB3ZSB1c2luZyBjbGFzc2VzIG9yIHN0eWxlcz9cbiAgICAgICAgICAgIG9wdGlvbnMgPSB0eXBlb2Ygb3B0aW9ucyA9PSBcInVuZGVmaW5lZFwiID8ge30gOiBvcHRpb25zO1xuICAgICAgICAgICAgdmFyIHVzZV9jbGFzc2VzID0gb3B0aW9ucy51c2VfY2xhc3NlcyA9IHR5cGVvZiBvcHRpb25zLnVzZV9jbGFzc2VzICE9IFwidW5kZWZpbmVkXCIgJiYgb3B0aW9ucy51c2VfY2xhc3NlcztcbiAgICAgICAgICAgIHZhciBrZXkgPSBvcHRpb25zLmtleSA9IHVzZV9jbGFzc2VzID8gXCJjbGFzc1wiIDogXCJjb2xvclwiO1xuXG4gICAgICAgICAgICB2YXIgcmVzdWx0ID0ge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHRleHQsXG4gICAgICAgICAgICAgICAgZmc6IG51bGwsXG4gICAgICAgICAgICAgICAgYmc6IG51bGwsXG4gICAgICAgICAgICAgICAgZmdfdHJ1ZWNvbG9yOiBudWxsLFxuICAgICAgICAgICAgICAgIGJnX3RydWVjb2xvcjogbnVsbCxcbiAgICAgICAgICAgICAgICBjbGVhckxpbmU6IG9wdGlvbnMuY2xlYXJMaW5lLFxuICAgICAgICAgICAgICAgIGRlY29yYXRpb246IG51bGwsXG4gICAgICAgICAgICAgICAgd2FzX3Byb2Nlc3NlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgaXNFbXB0eTogZnVuY3Rpb24gaXNFbXB0eSgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICFyZXN1bHQuY29udGVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAvLyBFYWNoIFwiY2h1bmtcIiBpcyB0aGUgdGV4dCBhZnRlciB0aGUgQ1NJIChFU0MgKyBcIltcIikgYW5kIGJlZm9yZSB0aGUgbmV4dCBDU0kvRU9GLlxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIFRoaXMgcmVnZXggbWF0Y2hlcyBmb3VyIGdyb3VwcyB3aXRoaW4gYSBjaHVuay5cbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyBUaGUgZmlyc3QgYW5kIHRoaXJkIGdyb3VwcyBtYXRjaCBjb2RlIHR5cGUuXG4gICAgICAgICAgICAvLyBXZSBzdXBwb3J0ZWQgb25seSBTR1IgY29tbWFuZC4gSXQgaGFzIGVtcHR5IGZpcnN0IGdyb3VwIGFuZCBcIm1cIiBpbiB0aGlyZC5cbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyBUaGUgc2Vjb25kIGdyb3VwIG1hdGNoZXMgYWxsIG9mIHRoZSBudW1iZXIrc2VtaWNvbG9uIGNvbW1hbmQgc2VxdWVuY2VzXG4gICAgICAgICAgICAvLyBiZWZvcmUgdGhlIFwibVwiIChvciBvdGhlciB0cmFpbGluZykgY2hhcmFjdGVyLlxuICAgICAgICAgICAgLy8gVGhlc2UgYXJlIHRoZSBncmFwaGljcyBvciBTR1IgY29tbWFuZHMuXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gVGhlIGxhc3QgZ3JvdXAgaXMgdGhlIHRleHQgKGluY2x1ZGluZyBuZXdsaW5lcykgdGhhdCBpcyBjb2xvcmVkIGJ5XG4gICAgICAgICAgICAvLyB0aGUgb3RoZXIgZ3JvdXBcInMgY29tbWFuZHMuXG4gICAgICAgICAgICB2YXIgbWF0Y2hlcyA9IHRleHQubWF0Y2goL14oWyFcXHgzYy1cXHgzZl0qKShbXFxkO10qKShbXFx4MjAtXFx4MmNdKltcXHg0MC1cXHg3ZV0pKFtcXHNcXFNdKikvbSk7XG5cbiAgICAgICAgICAgIGlmICghbWF0Y2hlcykgcmV0dXJuIHJlc3VsdDtcblxuICAgICAgICAgICAgdmFyIG9yaWdfdHh0ID0gcmVzdWx0LmNvbnRlbnQgPSBtYXRjaGVzWzRdO1xuICAgICAgICAgICAgdmFyIG51bXMgPSBtYXRjaGVzWzJdLnNwbGl0KFwiO1wiKTtcblxuICAgICAgICAgICAgLy8gV2UgY3VycmVudGx5IHN1cHBvcnQgb25seSBcIlNHUlwiIChTZWxlY3QgR3JhcGhpYyBSZW5kaXRpb24pXG4gICAgICAgICAgICAvLyBTaW1wbHkgaWdub3JlIGlmIG5vdCBhIFNHUiBjb21tYW5kLlxuICAgICAgICAgICAgaWYgKG1hdGNoZXNbMV0gIT09IFwiXCIgfHwgbWF0Y2hlc1szXSAhPT0gXCJtXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIW1hcmt1cCkge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhciBzZWxmID0gdGhpcztcblxuICAgICAgICAgICAgc2VsZi5kZWNvcmF0aW9uID0gbnVsbDtcblxuICAgICAgICAgICAgd2hpbGUgKG51bXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHZhciBudW1fc3RyID0gbnVtcy5zaGlmdCgpO1xuICAgICAgICAgICAgICAgIHZhciBudW0gPSBwYXJzZUludChudW1fc3RyKTtcblxuICAgICAgICAgICAgICAgIGlmIChpc05hTihudW0pIHx8IG51bSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBzZWxmLmZnID0gc2VsZi5iZyA9IHNlbGYuZGVjb3JhdGlvbiA9IG51bGw7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW0gPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZi5kZWNvcmF0aW9uID0gXCJib2xkXCI7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW0gPT09IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZi5kZWNvcmF0aW9uID0gXCJkaW1cIjtcbiAgICAgICAgICAgICAgICAgICAgLy8gRW5hYmxlIGNvZGUgMiB0byBnZXQgc3RyaW5nXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW0gPT0gMykge1xuICAgICAgICAgICAgICAgICAgICBzZWxmLmRlY29yYXRpb24gPSBcIml0YWxpY1wiO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtID09IDQpIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZi5kZWNvcmF0aW9uID0gXCJ1bmRlcmxpbmVcIjtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bSA9PSA1KSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGYuZGVjb3JhdGlvbiA9IFwiYmxpbmtcIjtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bSA9PT0gNykge1xuICAgICAgICAgICAgICAgICAgICBzZWxmLmRlY29yYXRpb24gPSBcInJldmVyc2VcIjtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bSA9PT0gOCkge1xuICAgICAgICAgICAgICAgICAgICBzZWxmLmRlY29yYXRpb24gPSBcImhpZGRlblwiO1xuICAgICAgICAgICAgICAgICAgICAvLyBFbmFibGUgY29kZSA5IHRvIGdldCBzdHJpa2V0aHJvdWdoXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW0gPT09IDkpIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZi5kZWNvcmF0aW9uID0gXCJzdHJpa2V0aHJvdWdoXCI7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW0gPT0gMzkpIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZi5mZyA9IG51bGw7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW0gPT0gNDkpIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZi5iZyA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIC8vIEZvcmVncm91bmQgY29sb3JcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bSA+PSAzMCAmJiBudW0gPCAzOCkge1xuICAgICAgICAgICAgICAgICAgICBzZWxmLmZnID0gQU5TSV9DT0xPUlNbMF1bbnVtICUgMTBdW2tleV07XG4gICAgICAgICAgICAgICAgICAgIC8vIEZvcmVncm91bmQgYnJpZ2h0IGNvbG9yXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW0gPj0gOTAgJiYgbnVtIDwgOTgpIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZi5mZyA9IEFOU0lfQ09MT1JTWzFdW251bSAlIDEwXVtrZXldO1xuICAgICAgICAgICAgICAgICAgICAvLyBCYWNrZ3JvdW5kIGNvbG9yXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW0gPj0gNDAgJiYgbnVtIDwgNDgpIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZi5iZyA9IEFOU0lfQ09MT1JTWzBdW251bSAlIDEwXVtrZXldO1xuICAgICAgICAgICAgICAgICAgICAvLyBCYWNrZ3JvdW5kIGJyaWdodCBjb2xvclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtID49IDEwMCAmJiBudW0gPCAxMDgpIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZi5iZyA9IEFOU0lfQ09MT1JTWzFdW251bSAlIDEwXVtrZXldO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtID09PSAzOCB8fCBudW0gPT09IDQ4KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGV4dGVuZCBjb2xvciAoMzg9ZmcsIDQ4PWJnKVxuICAgICAgICAgICAgICAgICAgICB2YXIgaXNfZm9yZWdyb3VuZCA9IG51bSA9PT0gMzg7XG4gICAgICAgICAgICAgICAgICAgIGlmIChudW1zLmxlbmd0aCA+PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgbW9kZSA9IG51bXMuc2hpZnQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtb2RlID09PSBcIjVcIiAmJiBudW1zLmxlbmd0aCA+PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcGFsZXR0ZSBjb2xvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwYWxldHRlX2luZGV4ID0gcGFyc2VJbnQobnVtcy5zaGlmdCgpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFsZXR0ZV9pbmRleCA+PSAwICYmIHBhbGV0dGVfaW5kZXggPD0gMjU1KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdXNlX2NsYXNzZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5QQUxFVFRFX0NPTE9SUykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2V0dXBQYWxldHRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNfZm9yZWdyb3VuZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZmcgPSB0aGlzLlBBTEVUVEVfQ09MT1JTW3BhbGV0dGVfaW5kZXhdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmJnID0gdGhpcy5QQUxFVFRFX0NPTE9SU1twYWxldHRlX2luZGV4XTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBrbGFzcyA9IHBhbGV0dGVfaW5kZXggPj0gMTYgPyBcImFuc2ktcGFsZXR0ZS1cIiArIHBhbGV0dGVfaW5kZXggOiBBTlNJX0NPTE9SU1twYWxldHRlX2luZGV4ID4gNyA/IDEgOiAwXVtwYWxldHRlX2luZGV4ICUgOF1bXCJjbGFzc1wiXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc19mb3JlZ3JvdW5kKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5mZyA9IGtsYXNzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmJnID0ga2xhc3M7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1vZGUgPT09IFwiMlwiICYmIG51bXMubGVuZ3RoID49IDMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0cnVlIGNvbG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHIgPSBwYXJzZUludChudW1zLnNoaWZ0KCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBnID0gcGFyc2VJbnQobnVtcy5zaGlmdCgpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgYiA9IHBhcnNlSW50KG51bXMuc2hpZnQoKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHIgPj0gMCAmJiByIDw9IDI1NSAmJiBnID49IDAgJiYgZyA8PSAyNTUgJiYgYiA+PSAwICYmIGIgPD0gMjU1KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjb2xvciA9IHIgKyBcIiwgXCIgKyBnICsgXCIsIFwiICsgYjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF1c2VfY2xhc3Nlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzX2ZvcmVncm91bmQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZnID0gY29sb3I7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYmcgPSBjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc19mb3JlZ3JvdW5kKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5mZyA9IFwiYW5zaS10cnVlY29sb3JcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZnX3RydWVjb2xvciA9IGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmJnID0gXCJhbnNpLXRydWVjb2xvclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYmdfdHJ1ZWNvbG9yID0gY29sb3I7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChzZWxmLmZnID09PSBudWxsICYmIHNlbGYuYmcgPT09IG51bGwgJiYgc2VsZi5kZWNvcmF0aW9uID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdmFyIHN0eWxlcyA9IFtdO1xuICAgICAgICAgICAgICAgIHZhciBjbGFzc2VzID0gW107XG4gICAgICAgICAgICAgICAgdmFyIGRhdGEgPSB7fTtcblxuICAgICAgICAgICAgICAgIHJlc3VsdC5mZyA9IHNlbGYuZmc7XG4gICAgICAgICAgICAgICAgcmVzdWx0LmJnID0gc2VsZi5iZztcbiAgICAgICAgICAgICAgICByZXN1bHQuZmdfdHJ1ZWNvbG9yID0gc2VsZi5mZ190cnVlY29sb3I7XG4gICAgICAgICAgICAgICAgcmVzdWx0LmJnX3RydWVjb2xvciA9IHNlbGYuYmdfdHJ1ZWNvbG9yO1xuICAgICAgICAgICAgICAgIHJlc3VsdC5kZWNvcmF0aW9uID0gc2VsZi5kZWNvcmF0aW9uO1xuICAgICAgICAgICAgICAgIHJlc3VsdC53YXNfcHJvY2Vzc2VkID0gdHJ1ZTtcblxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogcHJvY2Vzc0NodW5rXG4gICAgICAgICAqIFByb2Nlc3NlcyB0aGUgY3VycmVudCBjaHVuayBvZiB0ZXh0LlxuICAgICAgICAgKlxuICAgICAgICAgKiBAbmFtZSBwcm9jZXNzQ2h1bmtcbiAgICAgICAgICogQGZ1bmN0aW9uXG4gICAgICAgICAqIEBwYXJhbSB7U3RyaW5nfSB0ZXh0IFRoZSBpbnB1dCB0ZXh0LlxuICAgICAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgZm9sbG93aW5nIGZpZWxkczpcbiAgICAgICAgICpcbiAgICAgICAgICogIC0gYGpzb25gIChCb29sZWFuKTogSWYgYHRydWVgLCB0aGUgcmVzdWx0IHdpbGwgYmUgYW4gb2JqZWN0LlxuICAgICAgICAgKiAgLSBgdXNlX2NsYXNzZXNgIChCb29sZWFuKTogSWYgYHRydWVgLCBIVE1MIGNsYXNzZXMgd2lsbCBiZSBhcHBlbmRlZCB0byB0aGUgSFRNTCBvdXRwdXQuXG4gICAgICAgICAqXG4gICAgICAgICAqIEBwYXJhbSB7Qm9vbGVhbn0gbWFya3VwIElmIGZhbHNlLCB0aGUgY29sb3JzIHdpbGwgbm90IGJlIHBhcnNlZC5cbiAgICAgICAgICogQHJldHVybiB7T2JqZWN0fFN0cmluZ30gVGhlIHJlc3VsdCAob2JqZWN0IGlmIGBqc29uYCBpcyB3YW50ZWQgYmFjayBvciBzdHJpbmcgb3RoZXJ3aXNlKS5cbiAgICAgICAgICovXG5cbiAgICB9LCB7XG4gICAgICAgIGtleTogXCJwcm9jZXNzQ2h1bmtcIixcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIHByb2Nlc3NDaHVuayh0ZXh0LCBvcHRpb25zLCBtYXJrdXApIHtcbiAgICAgICAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICAgICAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgICAgICAgICAgIHZhciBqc29uQ2h1bmsgPSB0aGlzLnByb2Nlc3NDaHVua0pzb24odGV4dCwgb3B0aW9ucywgbWFya3VwKTtcblxuICAgICAgICAgICAgaWYgKG9wdGlvbnMuanNvbikge1xuICAgICAgICAgICAgICAgIHJldHVybiBqc29uQ2h1bms7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoanNvbkNodW5rLmlzRW1wdHkoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFqc29uQ2h1bmsud2FzX3Byb2Nlc3NlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBqc29uQ2h1bmsuY29udGVudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdmFyIHVzZV9jbGFzc2VzID0gb3B0aW9ucy51c2VfY2xhc3NlcztcblxuICAgICAgICAgICAgdmFyIHN0eWxlcyA9IFtdO1xuICAgICAgICAgICAgdmFyIGNsYXNzZXMgPSBbXTtcbiAgICAgICAgICAgIHZhciBkYXRhID0ge307XG4gICAgICAgICAgICB2YXIgcmVuZGVyX2RhdGEgPSBmdW5jdGlvbiByZW5kZXJfZGF0YShkYXRhKSB7XG4gICAgICAgICAgICAgICAgdmFyIGZyYWdtZW50cyA9IFtdO1xuICAgICAgICAgICAgICAgIHZhciBrZXkgPSB2b2lkIDA7XG4gICAgICAgICAgICAgICAgZm9yIChrZXkgaW4gZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmcmFnbWVudHMucHVzaChcImRhdGEtXCIgKyBrZXkgKyBcIj1cXFwiXCIgKyBfdGhpczIuZXNjYXBlRm9ySHRtbChkYXRhW2tleV0pICsgXCJcXFwiXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBmcmFnbWVudHMubGVuZ3RoID4gMCA/IFwiIFwiICsgZnJhZ21lbnRzLmpvaW4oXCIgXCIpIDogXCJcIjtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGlmIChqc29uQ2h1bmsuZmcpIHtcbiAgICAgICAgICAgICAgICBpZiAodXNlX2NsYXNzZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKGpzb25DaHVuay5mZyArIFwiLWZnXCIpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoanNvbkNodW5rLmZnX3RydWVjb2xvciAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVtcImFuc2ktdHJ1ZWNvbG9yLWZnXCJdID0ganNvbkNodW5rLmZnX3RydWVjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGpzb25DaHVuay5mZ190cnVlY29sb3IgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc3R5bGVzLnB1c2goXCJjb2xvcjpyZ2IoXCIgKyBqc29uQ2h1bmsuZmcgKyBcIilcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoanNvbkNodW5rLmJnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHVzZV9jbGFzc2VzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzZXMucHVzaChqc29uQ2h1bmsuYmcgKyBcIi1iZ1wiKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGpzb25DaHVuay5iZ190cnVlY29sb3IgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbXCJhbnNpLXRydWVjb2xvci1iZ1wiXSA9IGpzb25DaHVuay5iZ190cnVlY29sb3I7XG4gICAgICAgICAgICAgICAgICAgICAgICBqc29uQ2h1bmsuYmdfdHJ1ZWNvbG9yID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlcy5wdXNoKFwiYmFja2dyb3VuZC1jb2xvcjpyZ2IoXCIgKyBqc29uQ2h1bmsuYmcgKyBcIilcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoanNvbkNodW5rLmRlY29yYXRpb24pIHtcbiAgICAgICAgICAgICAgICBpZiAodXNlX2NsYXNzZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKFwiYW5zaS1cIiArIGpzb25DaHVuay5kZWNvcmF0aW9uKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGpzb25DaHVuay5kZWNvcmF0aW9uID09PSBcImJvbGRcIikge1xuICAgICAgICAgICAgICAgICAgICBzdHlsZXMucHVzaChcImZvbnQtd2VpZ2h0OmJvbGRcIik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChqc29uQ2h1bmsuZGVjb3JhdGlvbiA9PT0gXCJkaW1cIikge1xuICAgICAgICAgICAgICAgICAgICBzdHlsZXMucHVzaChcIm9wYWNpdHk6MC41XCIpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoanNvbkNodW5rLmRlY29yYXRpb24gPT09IFwiaXRhbGljXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgc3R5bGVzLnB1c2goXCJmb250LXN0eWxlOml0YWxpY1wiKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gdW5kZXJsaW5lIGFuZCBibGluayBhcmUgdHJlYXRlZCBiZWxsb3dcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGpzb25DaHVuay5kZWNvcmF0aW9uID09PSBcInJldmVyc2VcIikge1xuICAgICAgICAgICAgICAgICAgICBzdHlsZXMucHVzaChcImZpbHRlcjppbnZlcnQoMTAwJSlcIik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChqc29uQ2h1bmsuZGVjb3JhdGlvbiA9PT0gXCJoaWRkZW5cIikge1xuICAgICAgICAgICAgICAgICAgICBzdHlsZXMucHVzaChcInZpc2liaWxpdHk6aGlkZGVuXCIpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoanNvbkNodW5rLmRlY29yYXRpb24gPT09IFwic3RyaWtldGhyb3VnaFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlcy5wdXNoKFwidGV4dC1kZWNvcmF0aW9uOmxpbmUtdGhyb3VnaFwiKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzdHlsZXMucHVzaChcInRleHQtZGVjb3JhdGlvbjpcIiArIGpzb25DaHVuay5kZWNvcmF0aW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh1c2VfY2xhc3Nlcykge1xuICAgICAgICAgICAgICAgIHJldHVybiBcIjxzcGFuIGNsYXNzPVxcXCJcIiArIGNsYXNzZXMuam9pbihcIiBcIikgKyBcIlxcXCJcIiArIHJlbmRlcl9kYXRhKGRhdGEpICsgXCI+XCIgKyBqc29uQ2h1bmsuY29udGVudCArIFwiPC9zcGFuPlwiO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCI8c3BhbiBzdHlsZT1cXFwiXCIgKyBzdHlsZXMuam9pbihcIjtcIikgKyBcIlxcXCJcIiArIHJlbmRlcl9kYXRhKGRhdGEpICsgXCI+XCIgKyBqc29uQ2h1bmsuY29udGVudCArIFwiPC9zcGFuPlwiO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfV0pO1xuXG4gICAgcmV0dXJuIEFuc2VyO1xufSgpO1xuXG47XG5cbm1vZHVsZS5leHBvcnRzID0gQW5zZXI7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/anser/lib/index.js\n"); + +/***/ }), + +/***/ "./node_modules/css.escape/css.escape.js": +/*!***********************************************!*\ + !*** ./node_modules/css.escape/css.escape.js ***! + \***********************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("/*! https://mths.be/cssescape v1.5.1 by @mathias | MIT license */\n;(function(root, factory) {\n\t// https://github.com/umdjs/umd/blob/master/returnExports.js\n\tif (true) {\n\t\t// For Node.js.\n\t\tmodule.exports = factory(root);\n\t} else {}\n}(typeof __webpack_require__.g != 'undefined' ? __webpack_require__.g : this, function(root) {\n\n\tif (root.CSS && root.CSS.escape) {\n\t\treturn root.CSS.escape;\n\t}\n\n\t// https://drafts.csswg.org/cssom/#serialize-an-identifier\n\tvar cssEscape = function(value) {\n\t\tif (arguments.length == 0) {\n\t\t\tthrow new TypeError('`CSS.escape` requires an argument.');\n\t\t}\n\t\tvar string = String(value);\n\t\tvar length = string.length;\n\t\tvar index = -1;\n\t\tvar codeUnit;\n\t\tvar result = '';\n\t\tvar firstCodeUnit = string.charCodeAt(0);\n\t\twhile (++index < length) {\n\t\t\tcodeUnit = string.charCodeAt(index);\n\t\t\t// Note: there’s no need to special-case astral symbols, surrogate\n\t\t\t// pairs, or lone surrogates.\n\n\t\t\t// If the character is NULL (U+0000), then the REPLACEMENT CHARACTER\n\t\t\t// (U+FFFD).\n\t\t\tif (codeUnit == 0x0000) {\n\t\t\t\tresult += '\\uFFFD';\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t// If the character is in the range [\\1-\\1F] (U+0001 to U+001F) or is\n\t\t\t\t// U+007F, […]\n\t\t\t\t(codeUnit >= 0x0001 && codeUnit <= 0x001F) || codeUnit == 0x007F ||\n\t\t\t\t// If the character is the first character and is in the range [0-9]\n\t\t\t\t// (U+0030 to U+0039), […]\n\t\t\t\t(index == 0 && codeUnit >= 0x0030 && codeUnit <= 0x0039) ||\n\t\t\t\t// If the character is the second character and is in the range [0-9]\n\t\t\t\t// (U+0030 to U+0039) and the first character is a `-` (U+002D), […]\n\t\t\t\t(\n\t\t\t\t\tindex == 1 &&\n\t\t\t\t\tcodeUnit >= 0x0030 && codeUnit <= 0x0039 &&\n\t\t\t\t\tfirstCodeUnit == 0x002D\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t// https://drafts.csswg.org/cssom/#escape-a-character-as-code-point\n\t\t\t\tresult += '\\\\' + codeUnit.toString(16) + ' ';\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t// If the character is the first character and is a `-` (U+002D), and\n\t\t\t\t// there is no second character, […]\n\t\t\t\tindex == 0 &&\n\t\t\t\tlength == 1 &&\n\t\t\t\tcodeUnit == 0x002D\n\t\t\t) {\n\t\t\t\tresult += '\\\\' + string.charAt(index);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If the character is not handled by one of the above rules and is\n\t\t\t// greater than or equal to U+0080, is `-` (U+002D) or `_` (U+005F), or\n\t\t\t// is in one of the ranges [0-9] (U+0030 to U+0039), [A-Z] (U+0041 to\n\t\t\t// U+005A), or [a-z] (U+0061 to U+007A), […]\n\t\t\tif (\n\t\t\t\tcodeUnit >= 0x0080 ||\n\t\t\t\tcodeUnit == 0x002D ||\n\t\t\t\tcodeUnit == 0x005F ||\n\t\t\t\tcodeUnit >= 0x0030 && codeUnit <= 0x0039 ||\n\t\t\t\tcodeUnit >= 0x0041 && codeUnit <= 0x005A ||\n\t\t\t\tcodeUnit >= 0x0061 && codeUnit <= 0x007A\n\t\t\t) {\n\t\t\t\t// the character itself\n\t\t\t\tresult += string.charAt(index);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Otherwise, the escaped character.\n\t\t\t// https://drafts.csswg.org/cssom/#escape-a-character\n\t\t\tresult += '\\\\' + string.charAt(index);\n\n\t\t}\n\t\treturn result;\n\t};\n\n\tif (!root.CSS) {\n\t\troot.CSS = {};\n\t}\n\n\troot.CSS.escape = cssEscape;\n\treturn cssEscape;\n\n}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvY3NzLmVzY2FwZS9jc3MuZXNjYXBlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0EsQ0FBQztBQUNEO0FBQ0EsS0FBSyxJQUEwQjtBQUMvQjtBQUNBO0FBQ0EsR0FBRyxLQUFLLEVBTU47QUFDRixDQUFDLFFBQVEscUJBQU0sa0JBQWtCLHFCQUFNOztBQUV2QztBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2Nzcy5lc2NhcGUvY3NzLmVzY2FwZS5qcz9iYjk5Il0sInNvdXJjZXNDb250ZW50IjpbIi8qISBodHRwczovL210aHMuYmUvY3NzZXNjYXBlIHYxLjUuMSBieSBAbWF0aGlhcyB8IE1JVCBsaWNlbnNlICovXG47KGZ1bmN0aW9uKHJvb3QsIGZhY3RvcnkpIHtcblx0Ly8gaHR0cHM6Ly9naXRodWIuY29tL3VtZGpzL3VtZC9ibG9iL21hc3Rlci9yZXR1cm5FeHBvcnRzLmpzXG5cdGlmICh0eXBlb2YgZXhwb3J0cyA9PSAnb2JqZWN0Jykge1xuXHRcdC8vIEZvciBOb2RlLmpzLlxuXHRcdG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeShyb290KTtcblx0fSBlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCkge1xuXHRcdC8vIEZvciBBTUQuIFJlZ2lzdGVyIGFzIGFuIGFub255bW91cyBtb2R1bGUuXG5cdFx0ZGVmaW5lKFtdLCBmYWN0b3J5LmJpbmQocm9vdCwgcm9vdCkpO1xuXHR9IGVsc2Uge1xuXHRcdC8vIEZvciBicm93c2VyIGdsb2JhbHMgKG5vdCBleHBvc2luZyB0aGUgZnVuY3Rpb24gc2VwYXJhdGVseSkuXG5cdFx0ZmFjdG9yeShyb290KTtcblx0fVxufSh0eXBlb2YgZ2xvYmFsICE9ICd1bmRlZmluZWQnID8gZ2xvYmFsIDogdGhpcywgZnVuY3Rpb24ocm9vdCkge1xuXG5cdGlmIChyb290LkNTUyAmJiByb290LkNTUy5lc2NhcGUpIHtcblx0XHRyZXR1cm4gcm9vdC5DU1MuZXNjYXBlO1xuXHR9XG5cblx0Ly8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLyNzZXJpYWxpemUtYW4taWRlbnRpZmllclxuXHR2YXIgY3NzRXNjYXBlID0gZnVuY3Rpb24odmFsdWUpIHtcblx0XHRpZiAoYXJndW1lbnRzLmxlbmd0aCA9PSAwKSB7XG5cdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdgQ1NTLmVzY2FwZWAgcmVxdWlyZXMgYW4gYXJndW1lbnQuJyk7XG5cdFx0fVxuXHRcdHZhciBzdHJpbmcgPSBTdHJpbmcodmFsdWUpO1xuXHRcdHZhciBsZW5ndGggPSBzdHJpbmcubGVuZ3RoO1xuXHRcdHZhciBpbmRleCA9IC0xO1xuXHRcdHZhciBjb2RlVW5pdDtcblx0XHR2YXIgcmVzdWx0ID0gJyc7XG5cdFx0dmFyIGZpcnN0Q29kZVVuaXQgPSBzdHJpbmcuY2hhckNvZGVBdCgwKTtcblx0XHR3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuXHRcdFx0Y29kZVVuaXQgPSBzdHJpbmcuY2hhckNvZGVBdChpbmRleCk7XG5cdFx0XHQvLyBOb3RlOiB0aGVyZeKAmXMgbm8gbmVlZCB0byBzcGVjaWFsLWNhc2UgYXN0cmFsIHN5bWJvbHMsIHN1cnJvZ2F0ZVxuXHRcdFx0Ly8gcGFpcnMsIG9yIGxvbmUgc3Vycm9nYXRlcy5cblxuXHRcdFx0Ly8gSWYgdGhlIGNoYXJhY3RlciBpcyBOVUxMIChVKzAwMDApLCB0aGVuIHRoZSBSRVBMQUNFTUVOVCBDSEFSQUNURVJcblx0XHRcdC8vIChVK0ZGRkQpLlxuXHRcdFx0aWYgKGNvZGVVbml0ID09IDB4MDAwMCkge1xuXHRcdFx0XHRyZXN1bHQgKz0gJ1xcdUZGRkQnO1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKFxuXHRcdFx0XHQvLyBJZiB0aGUgY2hhcmFjdGVyIGlzIGluIHRoZSByYW5nZSBbXFwxLVxcMUZdIChVKzAwMDEgdG8gVSswMDFGKSBvciBpc1xuXHRcdFx0XHQvLyBVKzAwN0YsIFvigKZdXG5cdFx0XHRcdChjb2RlVW5pdCA+PSAweDAwMDEgJiYgY29kZVVuaXQgPD0gMHgwMDFGKSB8fCBjb2RlVW5pdCA9PSAweDAwN0YgfHxcblx0XHRcdFx0Ly8gSWYgdGhlIGNoYXJhY3RlciBpcyB0aGUgZmlyc3QgY2hhcmFjdGVyIGFuZCBpcyBpbiB0aGUgcmFuZ2UgWzAtOV1cblx0XHRcdFx0Ly8gKFUrMDAzMCB0byBVKzAwMzkpLCBb4oCmXVxuXHRcdFx0XHQoaW5kZXggPT0gMCAmJiBjb2RlVW5pdCA+PSAweDAwMzAgJiYgY29kZVVuaXQgPD0gMHgwMDM5KSB8fFxuXHRcdFx0XHQvLyBJZiB0aGUgY2hhcmFjdGVyIGlzIHRoZSBzZWNvbmQgY2hhcmFjdGVyIGFuZCBpcyBpbiB0aGUgcmFuZ2UgWzAtOV1cblx0XHRcdFx0Ly8gKFUrMDAzMCB0byBVKzAwMzkpIGFuZCB0aGUgZmlyc3QgY2hhcmFjdGVyIGlzIGEgYC1gIChVKzAwMkQpLCBb4oCmXVxuXHRcdFx0XHQoXG5cdFx0XHRcdFx0aW5kZXggPT0gMSAmJlxuXHRcdFx0XHRcdGNvZGVVbml0ID49IDB4MDAzMCAmJiBjb2RlVW5pdCA8PSAweDAwMzkgJiZcblx0XHRcdFx0XHRmaXJzdENvZGVVbml0ID09IDB4MDAyRFxuXHRcdFx0XHQpXG5cdFx0XHQpIHtcblx0XHRcdFx0Ly8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLyNlc2NhcGUtYS1jaGFyYWN0ZXItYXMtY29kZS1wb2ludFxuXHRcdFx0XHRyZXN1bHQgKz0gJ1xcXFwnICsgY29kZVVuaXQudG9TdHJpbmcoMTYpICsgJyAnO1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKFxuXHRcdFx0XHQvLyBJZiB0aGUgY2hhcmFjdGVyIGlzIHRoZSBmaXJzdCBjaGFyYWN0ZXIgYW5kIGlzIGEgYC1gIChVKzAwMkQpLCBhbmRcblx0XHRcdFx0Ly8gdGhlcmUgaXMgbm8gc2Vjb25kIGNoYXJhY3RlciwgW+KApl1cblx0XHRcdFx0aW5kZXggPT0gMCAmJlxuXHRcdFx0XHRsZW5ndGggPT0gMSAmJlxuXHRcdFx0XHRjb2RlVW5pdCA9PSAweDAwMkRcblx0XHRcdCkge1xuXHRcdFx0XHRyZXN1bHQgKz0gJ1xcXFwnICsgc3RyaW5nLmNoYXJBdChpbmRleCk7XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBJZiB0aGUgY2hhcmFjdGVyIGlzIG5vdCBoYW5kbGVkIGJ5IG9uZSBvZiB0aGUgYWJvdmUgcnVsZXMgYW5kIGlzXG5cdFx0XHQvLyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gVSswMDgwLCBpcyBgLWAgKFUrMDAyRCkgb3IgYF9gIChVKzAwNUYpLCBvclxuXHRcdFx0Ly8gaXMgaW4gb25lIG9mIHRoZSByYW5nZXMgWzAtOV0gKFUrMDAzMCB0byBVKzAwMzkpLCBbQS1aXSAoVSswMDQxIHRvXG5cdFx0XHQvLyBVKzAwNUEpLCBvciBbYS16XSAoVSswMDYxIHRvIFUrMDA3QSksIFvigKZdXG5cdFx0XHRpZiAoXG5cdFx0XHRcdGNvZGVVbml0ID49IDB4MDA4MCB8fFxuXHRcdFx0XHRjb2RlVW5pdCA9PSAweDAwMkQgfHxcblx0XHRcdFx0Y29kZVVuaXQgPT0gMHgwMDVGIHx8XG5cdFx0XHRcdGNvZGVVbml0ID49IDB4MDAzMCAmJiBjb2RlVW5pdCA8PSAweDAwMzkgfHxcblx0XHRcdFx0Y29kZVVuaXQgPj0gMHgwMDQxICYmIGNvZGVVbml0IDw9IDB4MDA1QSB8fFxuXHRcdFx0XHRjb2RlVW5pdCA+PSAweDAwNjEgJiYgY29kZVVuaXQgPD0gMHgwMDdBXG5cdFx0XHQpIHtcblx0XHRcdFx0Ly8gdGhlIGNoYXJhY3RlciBpdHNlbGZcblx0XHRcdFx0cmVzdWx0ICs9IHN0cmluZy5jaGFyQXQoaW5kZXgpO1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gT3RoZXJ3aXNlLCB0aGUgZXNjYXBlZCBjaGFyYWN0ZXIuXG5cdFx0XHQvLyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20vI2VzY2FwZS1hLWNoYXJhY3RlclxuXHRcdFx0cmVzdWx0ICs9ICdcXFxcJyArIHN0cmluZy5jaGFyQXQoaW5kZXgpO1xuXG5cdFx0fVxuXHRcdHJldHVybiByZXN1bHQ7XG5cdH07XG5cblx0aWYgKCFyb290LkNTUykge1xuXHRcdHJvb3QuQ1NTID0ge307XG5cdH1cblxuXHRyb290LkNTUy5lc2NhcGUgPSBjc3NFc2NhcGU7XG5cdHJldHVybiBjc3NFc2NhcGU7XG5cbn0pKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/css.escape/css.escape.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/polyfills/object-assign.js": +/*!*****************************************************************!*\ + !*** ./node_modules/next/dist/build/polyfills/object-assign.js ***! + \*****************************************************************/ +/***/ (function(module) { + +"use strict"; +eval("\nvar assign = Object.assign.bind(Object);\nmodule.exports = assign;\nmodule.exports[\"default\"] = module.exports;\n\n//# sourceMappingURL=object-assign.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3BvbHlmaWxscy9vYmplY3QtYXNzaWduLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQTtBQUNBLHlCQUFzQjs7QUFFdEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC9wb2x5ZmlsbHMvb2JqZWN0LWFzc2lnbi5qcz9lN2QxIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIGFzc2lnbiA9IE9iamVjdC5hc3NpZ24uYmluZChPYmplY3QpO1xubW9kdWxlLmV4cG9ydHMgPSBhc3NpZ247XG5tb2R1bGUuZXhwb3J0cy5kZWZhdWx0ID0gbW9kdWxlLmV4cG9ydHM7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW9iamVjdC1hc3NpZ24uanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/polyfills/object-assign.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/compiled/web-vitals/web-vitals.umd.js": +/*!**********************************************************************!*\ + !*** ./node_modules/next/dist/compiled/web-vitals/web-vitals.umd.js ***! + \**********************************************************************/ +/***/ (function(module) { + +eval("var __dirname = \"/\";\nmodule.exports=function(){var e={770:function(e,t){!function(e,n){ true?n(t):0}(this,function(e){\"use strict\";var t,n,i,r,a=function(e,t){return{name:e,value:void 0===t?-1:t,delta:0,entries:[],id:\"v2-\".concat(Date.now(),\"-\").concat(Math.floor(8999999999999*Math.random())+1e12)}},o=function(e,t){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){if(\"first-input\"===e&&!(\"PerformanceEventTiming\"in self))return;var n=new PerformanceObserver(function(e){return e.getEntries().map(t)});return n.observe({type:e,buffered:!0}),n}}catch(e){}},u=function(e,t){var i=function n(i){\"pagehide\"!==i.type&&\"hidden\"!==document.visibilityState||(e(i),t&&(removeEventListener(\"visibilitychange\",n,!0),removeEventListener(\"pagehide\",n,!0)))};addEventListener(\"visibilitychange\",i,!0),addEventListener(\"pagehide\",i,!0)},c=function(e){addEventListener(\"pageshow\",function(t){t.persisted&&e(t)},!0)},s=function(e,t,n){var i;return function(r){t.value>=0&&(r||n)&&(t.delta=t.value-(i||0),(t.delta||void 0===i)&&(i=t.value,e(t)))}},f=-1,v=function(){return\"hidden\"===document.visibilityState?0:1/0},m=function(){u(function(e){var t=e.timeStamp;f=t},!0)},p=function(){return f<0&&(f=v(),m(),c(function(){setTimeout(function(){f=v(),m()},0)})),{get firstHiddenTime(){return f}}},d=function(e,t){var n,i=p(),r=a(\"FCP\"),u=function(e){\"first-contentful-paint\"===e.name&&(v&&v.disconnect(),e.startTime<i.firstHiddenTime&&(r.value=e.startTime,r.entries.push(e),n(!0)))},f=performance.getEntriesByName&&performance.getEntriesByName(\"first-contentful-paint\")[0],v=f?null:o(\"paint\",u);(f||v)&&(n=s(e,r,t),f&&u(f),c(function(i){r=a(\"FCP\"),n=s(e,r,t),requestAnimationFrame(function(){requestAnimationFrame(function(){r.value=performance.now()-i.timeStamp,n(!0)})})}))},l=!1,g=-1,h={passive:!0,capture:!0},y=new Date,T=function(e,r){t||(t=r,n=e,i=new Date,w(removeEventListener),_())},_=function(){if(n>=0&&n<i-y){var e={entryType:\"first-input\",name:t.type,target:t.target,cancelable:t.cancelable,startTime:t.timeStamp,processingStart:t.timeStamp+n};r.forEach(function(t){t(e)}),r=[]}},E=function(e){if(e.cancelable){var t=(e.timeStamp>1e12?new Date:performance.now())-e.timeStamp;\"pointerdown\"==e.type?function(e,t){var n=function(){T(e,t),r()},i=function(){r()},r=function(){removeEventListener(\"pointerup\",n,h),removeEventListener(\"pointercancel\",i,h)};addEventListener(\"pointerup\",n,h),addEventListener(\"pointercancel\",i,h)}(t,e):T(t,e)}},w=function(e){[\"mousedown\",\"keydown\",\"touchstart\",\"pointerdown\"].forEach(function(t){return e(t,E,h)})},S=new Set;e.getCLS=function(e,t){l||(d(function(e){g=e.value}),l=!0);var n,i=function(t){g>-1&&e(t)},r=a(\"CLS\",0),f=0,v=[],m=function(e){if(!e.hadRecentInput){var t=v[0],i=v[v.length-1];f&&e.startTime-i.startTime<1e3&&e.startTime-t.startTime<5e3?(f+=e.value,v.push(e)):(f=e.value,v=[e]),f>r.value&&(r.value=f,r.entries=v,n())}},p=o(\"layout-shift\",m);p&&(n=s(i,r,t),u(function(){p.takeRecords().map(m),n(!0)}),c(function(){f=0,g=-1,r=a(\"CLS\",0),n=s(i,r,t)}))},e.getFCP=d,e.getFID=function(e,i){var f,v=p(),m=a(\"FID\"),d=function(e){e.startTime<v.firstHiddenTime&&(m.value=e.processingStart-e.startTime,m.entries.push(e),f(!0))},l=o(\"first-input\",d);f=s(e,m,i),l&&u(function(){l.takeRecords().map(d),l.disconnect()},!0),l&&c(function(){var o;m=a(\"FID\"),f=s(e,m,i),r=[],n=-1,t=null,w(addEventListener),o=d,r.push(o),_()})},e.getLCP=function(e,t){var n,i=p(),r=a(\"LCP\"),f=function(e){var t=e.startTime;t<i.firstHiddenTime&&(r.value=t,r.entries.push(e)),n()},v=o(\"largest-contentful-paint\",f);if(v){n=s(e,r,t);var m=function(){S.has(r.id)||(v.takeRecords().map(f),v.disconnect(),S.add(r.id),n(!0))};[\"keydown\",\"click\"].forEach(function(e){addEventListener(e,m,{once:!0,capture:!0})}),u(m,!0),c(function(i){r=a(\"LCP\"),n=s(e,r,t),requestAnimationFrame(function(){requestAnimationFrame(function(){r.value=performance.now()-i.timeStamp,S.add(r.id),n(!0)})})})}},e.getTTFB=function(e){var t,n=a(\"TTFB\");t=function(){try{var t=performance.getEntriesByType(\"navigation\")[0]||function(){var e=performance.timing,t={entryType:\"navigation\",startTime:0};for(var n in e)\"navigationStart\"!==n&&\"toJSON\"!==n&&(t[n]=Math.max(e[n]-e.navigationStart,0));return t}();if(n.value=n.delta=t.responseStart,n.value<0)return;n.entries=[t],e(n)}catch(e){}},\"complete\"===document.readyState?setTimeout(t,0):addEventListener(\"pageshow\",t)},Object.defineProperty(e,\"__esModule\",{value:!0})})}};var t={};function __nccwpck_require__(n){if(t[n]){return t[n].exports}var i=t[n]={exports:{}};var r=true;try{e[n].call(i.exports,i,i.exports,__nccwpck_require__);r=false}finally{if(r)delete t[n]}return i.exports}__nccwpck_require__.ab=__dirname+\"/\";return __nccwpck_require__(770)}();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3dlYi12aXRhbHMvd2ViLXZpdGFscy51bWQuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFBLDBCQUEwQixPQUFPLGtCQUFrQixlQUFlLEtBQUksTUFBTSxDQUFDLENBQUMsa0JBQWtCLGFBQWEsNEJBQTRCLE9BQU8sc0lBQXNJLGlCQUFpQixJQUFJLHdEQUF3RCxnRUFBZ0UsMENBQTBDLDZCQUE2QixFQUFFLGtCQUFrQixtQkFBbUIsS0FBSyxXQUFXLGlCQUFpQixvQkFBb0IseUpBQXlKLDRFQUE0RSxlQUFlLHdDQUF3QyxrQkFBa0IsS0FBSyxtQkFBbUIsTUFBTSxtQkFBbUIsc0ZBQXNGLG1CQUFtQixnREFBZ0QsY0FBYyxjQUFjLGtCQUFrQixJQUFJLEtBQUssY0FBYyxvQ0FBb0Msc0JBQXNCLFVBQVUsSUFBSSxJQUFJLHNCQUFzQixXQUFXLGlCQUFpQixxQ0FBcUMsb0lBQW9JLGlIQUFpSCwwQ0FBMEMsdURBQXVELGlDQUFpQyw0Q0FBNEMsRUFBRSxFQUFFLEdBQUcsY0FBYyxzQkFBc0IsNEJBQTRCLG1EQUFtRCxjQUFjLGdCQUFnQixPQUFPLGlJQUFpSSxzQkFBc0IsS0FBSyxRQUFRLGVBQWUsaUJBQWlCLGdFQUFnRSxvQ0FBb0MsaUJBQWlCLFdBQVcsY0FBYyxJQUFJLGNBQWMsK0VBQStFLHdFQUF3RSxjQUFjLGVBQWUsdUVBQXVFLGdCQUFnQixFQUFFLFdBQVcsdUJBQXVCLGtCQUFrQixVQUFVLFFBQVEsb0JBQW9CLFdBQVcscUNBQXFDLHNCQUFzQiwyQkFBMkIsNklBQTZJLHVCQUF1Qiw0QkFBNEIsNkJBQTZCLGVBQWUsaUNBQWlDLEdBQUcsbUNBQW1DLHFDQUFxQywrRkFBK0Ysc0JBQXNCLDJCQUEyQixzQ0FBc0MscUJBQXFCLE1BQU0sNkVBQTZFLEVBQUUsd0JBQXdCLHFDQUFxQyxrQkFBa0IsdURBQXVELG1DQUFtQyxNQUFNLFdBQVcsaUJBQWlCLHdFQUF3RSx3Q0FBd0Msc0JBQXNCLG1CQUFtQixFQUFFLHdCQUF3Qix1REFBdUQsaUNBQWlDLHdEQUF3RCxFQUFFLEVBQUUsR0FBRyx1QkFBdUIsa0JBQWtCLGFBQWEsSUFBSSxnRUFBZ0UsNEJBQTRCLG9DQUFvQyw4RkFBOEYsU0FBUyxHQUFHLG9EQUFvRCxtQkFBbUIsV0FBVyxpRkFBaUYsdUNBQXVDLFNBQVMsRUFBRSxJQUFJLFNBQVMsZ0NBQWdDLFNBQVMsb0JBQW9CLFlBQVksWUFBWSxXQUFXLElBQUkscURBQXFELFFBQVEsUUFBUSxpQkFBaUIsaUJBQWlCLHVCQUF1QixTQUFTLEtBQUssZ0NBQWdDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvd2ViLXZpdGFscy93ZWItdml0YWxzLnVtZC5qcz81MzNiIl0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKCl7dmFyIGU9ezc3MDpmdW5jdGlvbihlLHQpeyFmdW5jdGlvbihlLG4pe3RydWU/bih0KTowfSh0aGlzLGZ1bmN0aW9uKGUpe1widXNlIHN0cmljdFwiO3ZhciB0LG4saSxyLGE9ZnVuY3Rpb24oZSx0KXtyZXR1cm57bmFtZTplLHZhbHVlOnZvaWQgMD09PXQ/LTE6dCxkZWx0YTowLGVudHJpZXM6W10saWQ6XCJ2Mi1cIi5jb25jYXQoRGF0ZS5ub3coKSxcIi1cIikuY29uY2F0KE1hdGguZmxvb3IoODk5OTk5OTk5OTk5OSpNYXRoLnJhbmRvbSgpKSsxZTEyKX19LG89ZnVuY3Rpb24oZSx0KXt0cnl7aWYoUGVyZm9ybWFuY2VPYnNlcnZlci5zdXBwb3J0ZWRFbnRyeVR5cGVzLmluY2x1ZGVzKGUpKXtpZihcImZpcnN0LWlucHV0XCI9PT1lJiYhKFwiUGVyZm9ybWFuY2VFdmVudFRpbWluZ1wiaW4gc2VsZikpcmV0dXJuO3ZhciBuPW5ldyBQZXJmb3JtYW5jZU9ic2VydmVyKGZ1bmN0aW9uKGUpe3JldHVybiBlLmdldEVudHJpZXMoKS5tYXAodCl9KTtyZXR1cm4gbi5vYnNlcnZlKHt0eXBlOmUsYnVmZmVyZWQ6ITB9KSxufX1jYXRjaChlKXt9fSx1PWZ1bmN0aW9uKGUsdCl7dmFyIGk9ZnVuY3Rpb24gbihpKXtcInBhZ2VoaWRlXCIhPT1pLnR5cGUmJlwiaGlkZGVuXCIhPT1kb2N1bWVudC52aXNpYmlsaXR5U3RhdGV8fChlKGkpLHQmJihyZW1vdmVFdmVudExpc3RlbmVyKFwidmlzaWJpbGl0eWNoYW5nZVwiLG4sITApLHJlbW92ZUV2ZW50TGlzdGVuZXIoXCJwYWdlaGlkZVwiLG4sITApKSl9O2FkZEV2ZW50TGlzdGVuZXIoXCJ2aXNpYmlsaXR5Y2hhbmdlXCIsaSwhMCksYWRkRXZlbnRMaXN0ZW5lcihcInBhZ2VoaWRlXCIsaSwhMCl9LGM9ZnVuY3Rpb24oZSl7YWRkRXZlbnRMaXN0ZW5lcihcInBhZ2VzaG93XCIsZnVuY3Rpb24odCl7dC5wZXJzaXN0ZWQmJmUodCl9LCEwKX0scz1mdW5jdGlvbihlLHQsbil7dmFyIGk7cmV0dXJuIGZ1bmN0aW9uKHIpe3QudmFsdWU+PTAmJihyfHxuKSYmKHQuZGVsdGE9dC52YWx1ZS0oaXx8MCksKHQuZGVsdGF8fHZvaWQgMD09PWkpJiYoaT10LnZhbHVlLGUodCkpKX19LGY9LTEsdj1mdW5jdGlvbigpe3JldHVyblwiaGlkZGVuXCI9PT1kb2N1bWVudC52aXNpYmlsaXR5U3RhdGU/MDoxLzB9LG09ZnVuY3Rpb24oKXt1KGZ1bmN0aW9uKGUpe3ZhciB0PWUudGltZVN0YW1wO2Y9dH0sITApfSxwPWZ1bmN0aW9uKCl7cmV0dXJuIGY8MCYmKGY9digpLG0oKSxjKGZ1bmN0aW9uKCl7c2V0VGltZW91dChmdW5jdGlvbigpe2Y9digpLG0oKX0sMCl9KSkse2dldCBmaXJzdEhpZGRlblRpbWUoKXtyZXR1cm4gZn19fSxkPWZ1bmN0aW9uKGUsdCl7dmFyIG4saT1wKCkscj1hKFwiRkNQXCIpLHU9ZnVuY3Rpb24oZSl7XCJmaXJzdC1jb250ZW50ZnVsLXBhaW50XCI9PT1lLm5hbWUmJih2JiZ2LmRpc2Nvbm5lY3QoKSxlLnN0YXJ0VGltZTxpLmZpcnN0SGlkZGVuVGltZSYmKHIudmFsdWU9ZS5zdGFydFRpbWUsci5lbnRyaWVzLnB1c2goZSksbighMCkpKX0sZj1wZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlOYW1lJiZwZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlOYW1lKFwiZmlyc3QtY29udGVudGZ1bC1wYWludFwiKVswXSx2PWY/bnVsbDpvKFwicGFpbnRcIix1KTsoZnx8dikmJihuPXMoZSxyLHQpLGYmJnUoZiksYyhmdW5jdGlvbihpKXtyPWEoXCJGQ1BcIiksbj1zKGUscix0KSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtyLnZhbHVlPXBlcmZvcm1hbmNlLm5vdygpLWkudGltZVN0YW1wLG4oITApfSl9KX0pKX0sbD0hMSxnPS0xLGg9e3Bhc3NpdmU6ITAsY2FwdHVyZTohMH0seT1uZXcgRGF0ZSxUPWZ1bmN0aW9uKGUscil7dHx8KHQ9cixuPWUsaT1uZXcgRGF0ZSx3KHJlbW92ZUV2ZW50TGlzdGVuZXIpLF8oKSl9LF89ZnVuY3Rpb24oKXtpZihuPj0wJiZuPGkteSl7dmFyIGU9e2VudHJ5VHlwZTpcImZpcnN0LWlucHV0XCIsbmFtZTp0LnR5cGUsdGFyZ2V0OnQudGFyZ2V0LGNhbmNlbGFibGU6dC5jYW5jZWxhYmxlLHN0YXJ0VGltZTp0LnRpbWVTdGFtcCxwcm9jZXNzaW5nU3RhcnQ6dC50aW1lU3RhbXArbn07ci5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QoZSl9KSxyPVtdfX0sRT1mdW5jdGlvbihlKXtpZihlLmNhbmNlbGFibGUpe3ZhciB0PShlLnRpbWVTdGFtcD4xZTEyP25ldyBEYXRlOnBlcmZvcm1hbmNlLm5vdygpKS1lLnRpbWVTdGFtcDtcInBvaW50ZXJkb3duXCI9PWUudHlwZT9mdW5jdGlvbihlLHQpe3ZhciBuPWZ1bmN0aW9uKCl7VChlLHQpLHIoKX0saT1mdW5jdGlvbigpe3IoKX0scj1mdW5jdGlvbigpe3JlbW92ZUV2ZW50TGlzdGVuZXIoXCJwb2ludGVydXBcIixuLGgpLHJlbW92ZUV2ZW50TGlzdGVuZXIoXCJwb2ludGVyY2FuY2VsXCIsaSxoKX07YWRkRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJ1cFwiLG4saCksYWRkRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJjYW5jZWxcIixpLGgpfSh0LGUpOlQodCxlKX19LHc9ZnVuY3Rpb24oZSl7W1wibW91c2Vkb3duXCIsXCJrZXlkb3duXCIsXCJ0b3VjaHN0YXJ0XCIsXCJwb2ludGVyZG93blwiXS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3JldHVybiBlKHQsRSxoKX0pfSxTPW5ldyBTZXQ7ZS5nZXRDTFM9ZnVuY3Rpb24oZSx0KXtsfHwoZChmdW5jdGlvbihlKXtnPWUudmFsdWV9KSxsPSEwKTt2YXIgbixpPWZ1bmN0aW9uKHQpe2c+LTEmJmUodCl9LHI9YShcIkNMU1wiLDApLGY9MCx2PVtdLG09ZnVuY3Rpb24oZSl7aWYoIWUuaGFkUmVjZW50SW5wdXQpe3ZhciB0PXZbMF0saT12W3YubGVuZ3RoLTFdO2YmJmUuc3RhcnRUaW1lLWkuc3RhcnRUaW1lPDFlMyYmZS5zdGFydFRpbWUtdC5zdGFydFRpbWU8NWUzPyhmKz1lLnZhbHVlLHYucHVzaChlKSk6KGY9ZS52YWx1ZSx2PVtlXSksZj5yLnZhbHVlJiYoci52YWx1ZT1mLHIuZW50cmllcz12LG4oKSl9fSxwPW8oXCJsYXlvdXQtc2hpZnRcIixtKTtwJiYobj1zKGkscix0KSx1KGZ1bmN0aW9uKCl7cC50YWtlUmVjb3JkcygpLm1hcChtKSxuKCEwKX0pLGMoZnVuY3Rpb24oKXtmPTAsZz0tMSxyPWEoXCJDTFNcIiwwKSxuPXMoaSxyLHQpfSkpfSxlLmdldEZDUD1kLGUuZ2V0RklEPWZ1bmN0aW9uKGUsaSl7dmFyIGYsdj1wKCksbT1hKFwiRklEXCIpLGQ9ZnVuY3Rpb24oZSl7ZS5zdGFydFRpbWU8di5maXJzdEhpZGRlblRpbWUmJihtLnZhbHVlPWUucHJvY2Vzc2luZ1N0YXJ0LWUuc3RhcnRUaW1lLG0uZW50cmllcy5wdXNoKGUpLGYoITApKX0sbD1vKFwiZmlyc3QtaW5wdXRcIixkKTtmPXMoZSxtLGkpLGwmJnUoZnVuY3Rpb24oKXtsLnRha2VSZWNvcmRzKCkubWFwKGQpLGwuZGlzY29ubmVjdCgpfSwhMCksbCYmYyhmdW5jdGlvbigpe3ZhciBvO209YShcIkZJRFwiKSxmPXMoZSxtLGkpLHI9W10sbj0tMSx0PW51bGwsdyhhZGRFdmVudExpc3RlbmVyKSxvPWQsci5wdXNoKG8pLF8oKX0pfSxlLmdldExDUD1mdW5jdGlvbihlLHQpe3ZhciBuLGk9cCgpLHI9YShcIkxDUFwiKSxmPWZ1bmN0aW9uKGUpe3ZhciB0PWUuc3RhcnRUaW1lO3Q8aS5maXJzdEhpZGRlblRpbWUmJihyLnZhbHVlPXQsci5lbnRyaWVzLnB1c2goZSkpLG4oKX0sdj1vKFwibGFyZ2VzdC1jb250ZW50ZnVsLXBhaW50XCIsZik7aWYodil7bj1zKGUscix0KTt2YXIgbT1mdW5jdGlvbigpe1MuaGFzKHIuaWQpfHwodi50YWtlUmVjb3JkcygpLm1hcChmKSx2LmRpc2Nvbm5lY3QoKSxTLmFkZChyLmlkKSxuKCEwKSl9O1tcImtleWRvd25cIixcImNsaWNrXCJdLmZvckVhY2goZnVuY3Rpb24oZSl7YWRkRXZlbnRMaXN0ZW5lcihlLG0se29uY2U6ITAsY2FwdHVyZTohMH0pfSksdShtLCEwKSxjKGZ1bmN0aW9uKGkpe3I9YShcIkxDUFwiKSxuPXMoZSxyLHQpLHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3JlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3IudmFsdWU9cGVyZm9ybWFuY2Uubm93KCktaS50aW1lU3RhbXAsUy5hZGQoci5pZCksbighMCl9KX0pfSl9fSxlLmdldFRURkI9ZnVuY3Rpb24oZSl7dmFyIHQsbj1hKFwiVFRGQlwiKTt0PWZ1bmN0aW9uKCl7dHJ5e3ZhciB0PXBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGUoXCJuYXZpZ2F0aW9uXCIpWzBdfHxmdW5jdGlvbigpe3ZhciBlPXBlcmZvcm1hbmNlLnRpbWluZyx0PXtlbnRyeVR5cGU6XCJuYXZpZ2F0aW9uXCIsc3RhcnRUaW1lOjB9O2Zvcih2YXIgbiBpbiBlKVwibmF2aWdhdGlvblN0YXJ0XCIhPT1uJiZcInRvSlNPTlwiIT09biYmKHRbbl09TWF0aC5tYXgoZVtuXS1lLm5hdmlnYXRpb25TdGFydCwwKSk7cmV0dXJuIHR9KCk7aWYobi52YWx1ZT1uLmRlbHRhPXQucmVzcG9uc2VTdGFydCxuLnZhbHVlPDApcmV0dXJuO24uZW50cmllcz1bdF0sZShuKX1jYXRjaChlKXt9fSxcImNvbXBsZXRlXCI9PT1kb2N1bWVudC5yZWFkeVN0YXRlP3NldFRpbWVvdXQodCwwKTphZGRFdmVudExpc3RlbmVyKFwicGFnZXNob3dcIix0KX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSl9KX19O3ZhciB0PXt9O2Z1bmN0aW9uIF9fbmNjd3Bja19yZXF1aXJlX18obil7aWYodFtuXSl7cmV0dXJuIHRbbl0uZXhwb3J0c312YXIgaT10W25dPXtleHBvcnRzOnt9fTt2YXIgcj10cnVlO3RyeXtlW25dLmNhbGwoaS5leHBvcnRzLGksaS5leHBvcnRzLF9fbmNjd3Bja19yZXF1aXJlX18pO3I9ZmFsc2V9ZmluYWxseXtpZihyKWRlbGV0ZSB0W25dfXJldHVybiBpLmV4cG9ydHN9X19uY2N3cGNrX3JlcXVpcmVfXy5hYj1fX2Rpcm5hbWUrXCIvXCI7cmV0dXJuIF9fbmNjd3Bja19yZXF1aXJlX18oNzcwKX0oKTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/compiled/web-vitals/web-vitals.umd.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/lib/is-error.js": +/*!************************************************!*\ + !*** ./node_modules/next/dist/lib/is-error.js ***! + \************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = isError;\nfunction isError(err) {\n return typeof err === 'object' && err !== null && 'name' in err && 'message' in err;\n}\n\n//# sourceMappingURL=is-error.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9pcy1lcnJvci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGtCQUFlO0FBQ2Y7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL2lzLWVycm9yLmpzPzE3OGUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSBpc0Vycm9yO1xuZnVuY3Rpb24gaXNFcnJvcihlcnIpIHtcbiAgICByZXR1cm4gdHlwZW9mIGVyciA9PT0gJ29iamVjdCcgJiYgZXJyICE9PSBudWxsICYmICduYW1lJyBpbiBlcnIgJiYgJ21lc3NhZ2UnIGluIGVycjtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXMtZXJyb3IuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/lib/is-error.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/server/denormalize-page-path.js": +/*!****************************************************************!*\ + !*** ./node_modules/next/dist/server/denormalize-page-path.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.normalizePathSep = normalizePathSep;\nexports.denormalizePagePath = denormalizePagePath;\nfunction normalizePathSep(path) {\n return path.replace(/\\\\/g, '/');\n}\nfunction denormalizePagePath(page) {\n page = normalizePathSep(page);\n if (page.startsWith('/index/')) {\n page = page.slice(6);\n } else if (page === '/index') {\n page = '/';\n }\n return page;\n}\n\n//# sourceMappingURL=denormalize-page-path.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9kZW5vcm1hbGl6ZS1wYWdlLXBhdGguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRix3QkFBd0I7QUFDeEIsMkJBQTJCO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2Rlbm9ybWFsaXplLXBhZ2UtcGF0aC5qcz82NzhhIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5ub3JtYWxpemVQYXRoU2VwID0gbm9ybWFsaXplUGF0aFNlcDtcbmV4cG9ydHMuZGVub3JtYWxpemVQYWdlUGF0aCA9IGRlbm9ybWFsaXplUGFnZVBhdGg7XG5mdW5jdGlvbiBub3JtYWxpemVQYXRoU2VwKHBhdGgpIHtcbiAgICByZXR1cm4gcGF0aC5yZXBsYWNlKC9cXFxcL2csICcvJyk7XG59XG5mdW5jdGlvbiBkZW5vcm1hbGl6ZVBhZ2VQYXRoKHBhZ2UpIHtcbiAgICBwYWdlID0gbm9ybWFsaXplUGF0aFNlcChwYWdlKTtcbiAgICBpZiAocGFnZS5zdGFydHNXaXRoKCcvaW5kZXgvJykpIHtcbiAgICAgICAgcGFnZSA9IHBhZ2Uuc2xpY2UoNik7XG4gICAgfSBlbHNlIGlmIChwYWdlID09PSAnL2luZGV4Jykge1xuICAgICAgICBwYWdlID0gJy8nO1xuICAgIH1cbiAgICByZXR1cm4gcGFnZTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGVub3JtYWxpemUtcGFnZS1wYXRoLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/denormalize-page-path.js\n"); + +/***/ }), + +/***/ "./node_modules/next/router.js": +/*!*************************************!*\ + !*** ./node_modules/next/router.js ***! + \*************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("module.exports = __webpack_require__(/*! ./dist/client/router */ \"./node_modules/next/dist/client/router.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9yb3V0ZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQUEsNkdBQWdEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L3JvdXRlci5qcz8xYmI2Il0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9kaXN0L2NsaWVudC9yb3V0ZXInKVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/router.js\n"); + +/***/ }), + +/***/ "./node_modules/platform/platform.js": +/*!*******************************************!*\ + !*** ./node_modules/platform/platform.js ***! + \*******************************************/ +/***/ (function(module, exports, __webpack_require__) { + +eval("/* module decorator */ module = __webpack_require__.nmd(module);\nvar __WEBPACK_AMD_DEFINE_RESULT__;/*!\n * Platform.js v1.3.6\n * Copyright 2014-2020 Benjamin Tan\n * Copyright 2011-2013 John-David Dalton\n * Available under MIT license\n */\n;(function() {\n 'use strict';\n\n /** Used to determine if values are of the language type `Object`. */\n var objectTypes = {\n 'function': true,\n 'object': true\n };\n\n /** Used as a reference to the global object. */\n var root = (objectTypes[typeof window] && window) || this;\n\n /** Backup possible global object. */\n var oldRoot = root;\n\n /** Detect free variable `exports`. */\n var freeExports = objectTypes[typeof exports] && exports;\n\n /** Detect free variable `module`. */\n var freeModule = objectTypes[\"object\"] && module && !module.nodeType && module;\n\n /** Detect free variable `global` from Node.js or Browserified code and use it as `root`. */\n var freeGlobal = freeExports && freeModule && typeof __webpack_require__.g == 'object' && __webpack_require__.g;\n if (freeGlobal && (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal || freeGlobal.self === freeGlobal)) {\n root = freeGlobal;\n }\n\n /**\n * Used as the maximum length of an array-like object.\n * See the [ES6 spec](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength)\n * for more details.\n */\n var maxSafeInteger = Math.pow(2, 53) - 1;\n\n /** Regular expression to detect Opera. */\n var reOpera = /\\bOpera/;\n\n /** Possible global object. */\n var thisBinding = this;\n\n /** Used for native method references. */\n var objectProto = Object.prototype;\n\n /** Used to check for own properties of an object. */\n var hasOwnProperty = objectProto.hasOwnProperty;\n\n /** Used to resolve the internal `[[Class]]` of values. */\n var toString = objectProto.toString;\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Capitalizes a string value.\n *\n * @private\n * @param {string} string The string to capitalize.\n * @returns {string} The capitalized string.\n */\n function capitalize(string) {\n string = String(string);\n return string.charAt(0).toUpperCase() + string.slice(1);\n }\n\n /**\n * A utility function to clean up the OS name.\n *\n * @private\n * @param {string} os The OS name to clean up.\n * @param {string} [pattern] A `RegExp` pattern matching the OS name.\n * @param {string} [label] A label for the OS.\n */\n function cleanupOS(os, pattern, label) {\n // Platform tokens are defined at:\n // http://msdn.microsoft.com/en-us/library/ms537503(VS.85).aspx\n // http://web.archive.org/web/20081122053950/http://msdn.microsoft.com/en-us/library/ms537503(VS.85).aspx\n var data = {\n '10.0': '10',\n '6.4': '10 Technical Preview',\n '6.3': '8.1',\n '6.2': '8',\n '6.1': 'Server 2008 R2 / 7',\n '6.0': 'Server 2008 / Vista',\n '5.2': 'Server 2003 / XP 64-bit',\n '5.1': 'XP',\n '5.01': '2000 SP1',\n '5.0': '2000',\n '4.0': 'NT',\n '4.90': 'ME'\n };\n // Detect Windows version from platform tokens.\n if (pattern && label && /^Win/i.test(os) && !/^Windows Phone /i.test(os) &&\n (data = data[/[\\d.]+$/.exec(os)])) {\n os = 'Windows ' + data;\n }\n // Correct character case and cleanup string.\n os = String(os);\n\n if (pattern && label) {\n os = os.replace(RegExp(pattern, 'i'), label);\n }\n\n os = format(\n os.replace(/ ce$/i, ' CE')\n .replace(/\\bhpw/i, 'web')\n .replace(/\\bMacintosh\\b/, 'Mac OS')\n .replace(/_PowerPC\\b/i, ' OS')\n .replace(/\\b(OS X) [^ \\d]+/i, '$1')\n .replace(/\\bMac (OS X)\\b/, '$1')\n .replace(/\\/(\\d)/, ' $1')\n .replace(/_/g, '.')\n .replace(/(?: BePC|[ .]*fc[ \\d.]+)$/i, '')\n .replace(/\\bx86\\.64\\b/gi, 'x86_64')\n .replace(/\\b(Windows Phone) OS\\b/, '$1')\n .replace(/\\b(Chrome OS \\w+) [\\d.]+\\b/, '$1')\n .split(' on ')[0]\n );\n\n return os;\n }\n\n /**\n * An iteration utility for arrays and objects.\n *\n * @private\n * @param {Array|Object} object The object to iterate over.\n * @param {Function} callback The function called per iteration.\n */\n function each(object, callback) {\n var index = -1,\n length = object ? object.length : 0;\n\n if (typeof length == 'number' && length > -1 && length <= maxSafeInteger) {\n while (++index < length) {\n callback(object[index], index, object);\n }\n } else {\n forOwn(object, callback);\n }\n }\n\n /**\n * Trim and conditionally capitalize string values.\n *\n * @private\n * @param {string} string The string to format.\n * @returns {string} The formatted string.\n */\n function format(string) {\n string = trim(string);\n return /^(?:webOS|i(?:OS|P))/.test(string)\n ? string\n : capitalize(string);\n }\n\n /**\n * Iterates over an object's own properties, executing the `callback` for each.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} callback The function executed per own property.\n */\n function forOwn(object, callback) {\n for (var key in object) {\n if (hasOwnProperty.call(object, key)) {\n callback(object[key], key, object);\n }\n }\n }\n\n /**\n * Gets the internal `[[Class]]` of a value.\n *\n * @private\n * @param {*} value The value.\n * @returns {string} The `[[Class]]`.\n */\n function getClassOf(value) {\n return value == null\n ? capitalize(value)\n : toString.call(value).slice(8, -1);\n }\n\n /**\n * Host objects can return type values that are different from their actual\n * data type. The objects we are concerned with usually return non-primitive\n * types of \"object\", \"function\", or \"unknown\".\n *\n * @private\n * @param {*} object The owner of the property.\n * @param {string} property The property to check.\n * @returns {boolean} Returns `true` if the property value is a non-primitive, else `false`.\n */\n function isHostType(object, property) {\n var type = object != null ? typeof object[property] : 'number';\n return !/^(?:boolean|number|string|undefined)$/.test(type) &&\n (type == 'object' ? !!object[property] : true);\n }\n\n /**\n * Prepares a string for use in a `RegExp` by making hyphens and spaces optional.\n *\n * @private\n * @param {string} string The string to qualify.\n * @returns {string} The qualified string.\n */\n function qualify(string) {\n return String(string).replace(/([ -])(?!$)/g, '$1?');\n }\n\n /**\n * A bare-bones `Array#reduce` like utility function.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function called per iteration.\n * @returns {*} The accumulated result.\n */\n function reduce(array, callback) {\n var accumulator = null;\n each(array, function(value, index) {\n accumulator = callback(accumulator, value, index, array);\n });\n return accumulator;\n }\n\n /**\n * Removes leading and trailing whitespace from a string.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} The trimmed string.\n */\n function trim(string) {\n return String(string).replace(/^ +| +$/g, '');\n }\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Creates a new platform object.\n *\n * @memberOf platform\n * @param {Object|string} [ua=navigator.userAgent] The user agent string or\n * context object.\n * @returns {Object} A platform object.\n */\n function parse(ua) {\n\n /** The environment context object. */\n var context = root;\n\n /** Used to flag when a custom context is provided. */\n var isCustomContext = ua && typeof ua == 'object' && getClassOf(ua) != 'String';\n\n // Juggle arguments.\n if (isCustomContext) {\n context = ua;\n ua = null;\n }\n\n /** Browser navigator object. */\n var nav = context.navigator || {};\n\n /** Browser user agent string. */\n var userAgent = nav.userAgent || '';\n\n ua || (ua = userAgent);\n\n /** Used to flag when `thisBinding` is the [ModuleScope]. */\n var isModuleScope = isCustomContext || thisBinding == oldRoot;\n\n /** Used to detect if browser is like Chrome. */\n var likeChrome = isCustomContext\n ? !!nav.likeChrome\n : /\\bChrome\\b/.test(ua) && !/internal|\\n/i.test(toString.toString());\n\n /** Internal `[[Class]]` value shortcuts. */\n var objectClass = 'Object',\n airRuntimeClass = isCustomContext ? objectClass : 'ScriptBridgingProxyObject',\n enviroClass = isCustomContext ? objectClass : 'Environment',\n javaClass = (isCustomContext && context.java) ? 'JavaPackage' : getClassOf(context.java),\n phantomClass = isCustomContext ? objectClass : 'RuntimeObject';\n\n /** Detect Java environments. */\n var java = /\\bJava/.test(javaClass) && context.java;\n\n /** Detect Rhino. */\n var rhino = java && getClassOf(context.environment) == enviroClass;\n\n /** A character to represent alpha. */\n var alpha = java ? 'a' : '\\u03b1';\n\n /** A character to represent beta. */\n var beta = java ? 'b' : '\\u03b2';\n\n /** Browser document object. */\n var doc = context.document || {};\n\n /**\n * Detect Opera browser (Presto-based).\n * http://www.howtocreate.co.uk/operaStuff/operaObject.html\n * http://dev.opera.com/articles/view/opera-mini-web-content-authoring-guidelines/#operamini\n */\n var opera = context.operamini || context.opera;\n\n /** Opera `[[Class]]`. */\n var operaClass = reOpera.test(operaClass = (isCustomContext && opera) ? opera['[[Class]]'] : getClassOf(opera))\n ? operaClass\n : (opera = null);\n\n /*------------------------------------------------------------------------*/\n\n /** Temporary variable used over the script's lifetime. */\n var data;\n\n /** The CPU architecture. */\n var arch = ua;\n\n /** Platform description array. */\n var description = [];\n\n /** Platform alpha/beta indicator. */\n var prerelease = null;\n\n /** A flag to indicate that environment features should be used to resolve the platform. */\n var useFeatures = ua == userAgent;\n\n /** The browser/environment version. */\n var version = useFeatures && opera && typeof opera.version == 'function' && opera.version();\n\n /** A flag to indicate if the OS ends with \"/ Version\" */\n var isSpecialCasedOS;\n\n /* Detectable layout engines (order is important). */\n var layout = getLayout([\n { 'label': 'EdgeHTML', 'pattern': 'Edge' },\n 'Trident',\n { 'label': 'WebKit', 'pattern': 'AppleWebKit' },\n 'iCab',\n 'Presto',\n 'NetFront',\n 'Tasman',\n 'KHTML',\n 'Gecko'\n ]);\n\n /* Detectable browser names (order is important). */\n var name = getName([\n 'Adobe AIR',\n 'Arora',\n 'Avant Browser',\n 'Breach',\n 'Camino',\n 'Electron',\n 'Epiphany',\n 'Fennec',\n 'Flock',\n 'Galeon',\n 'GreenBrowser',\n 'iCab',\n 'Iceweasel',\n 'K-Meleon',\n 'Konqueror',\n 'Lunascape',\n 'Maxthon',\n { 'label': 'Microsoft Edge', 'pattern': '(?:Edge|Edg|EdgA|EdgiOS)' },\n 'Midori',\n 'Nook Browser',\n 'PaleMoon',\n 'PhantomJS',\n 'Raven',\n 'Rekonq',\n 'RockMelt',\n { 'label': 'Samsung Internet', 'pattern': 'SamsungBrowser' },\n 'SeaMonkey',\n { 'label': 'Silk', 'pattern': '(?:Cloud9|Silk-Accelerated)' },\n 'Sleipnir',\n 'SlimBrowser',\n { 'label': 'SRWare Iron', 'pattern': 'Iron' },\n 'Sunrise',\n 'Swiftfox',\n 'Vivaldi',\n 'Waterfox',\n 'WebPositive',\n { 'label': 'Yandex Browser', 'pattern': 'YaBrowser' },\n { 'label': 'UC Browser', 'pattern': 'UCBrowser' },\n 'Opera Mini',\n { 'label': 'Opera Mini', 'pattern': 'OPiOS' },\n 'Opera',\n { 'label': 'Opera', 'pattern': 'OPR' },\n 'Chromium',\n 'Chrome',\n { 'label': 'Chrome', 'pattern': '(?:HeadlessChrome)' },\n { 'label': 'Chrome Mobile', 'pattern': '(?:CriOS|CrMo)' },\n { 'label': 'Firefox', 'pattern': '(?:Firefox|Minefield)' },\n { 'label': 'Firefox for iOS', 'pattern': 'FxiOS' },\n { 'label': 'IE', 'pattern': 'IEMobile' },\n { 'label': 'IE', 'pattern': 'MSIE' },\n 'Safari'\n ]);\n\n /* Detectable products (order is important). */\n var product = getProduct([\n { 'label': 'BlackBerry', 'pattern': 'BB10' },\n 'BlackBerry',\n { 'label': 'Galaxy S', 'pattern': 'GT-I9000' },\n { 'label': 'Galaxy S2', 'pattern': 'GT-I9100' },\n { 'label': 'Galaxy S3', 'pattern': 'GT-I9300' },\n { 'label': 'Galaxy S4', 'pattern': 'GT-I9500' },\n { 'label': 'Galaxy S5', 'pattern': 'SM-G900' },\n { 'label': 'Galaxy S6', 'pattern': 'SM-G920' },\n { 'label': 'Galaxy S6 Edge', 'pattern': 'SM-G925' },\n { 'label': 'Galaxy S7', 'pattern': 'SM-G930' },\n { 'label': 'Galaxy S7 Edge', 'pattern': 'SM-G935' },\n 'Google TV',\n 'Lumia',\n 'iPad',\n 'iPod',\n 'iPhone',\n 'Kindle',\n { 'label': 'Kindle Fire', 'pattern': '(?:Cloud9|Silk-Accelerated)' },\n 'Nexus',\n 'Nook',\n 'PlayBook',\n 'PlayStation Vita',\n 'PlayStation',\n 'TouchPad',\n 'Transformer',\n { 'label': 'Wii U', 'pattern': 'WiiU' },\n 'Wii',\n 'Xbox One',\n { 'label': 'Xbox 360', 'pattern': 'Xbox' },\n 'Xoom'\n ]);\n\n /* Detectable manufacturers. */\n var manufacturer = getManufacturer({\n 'Apple': { 'iPad': 1, 'iPhone': 1, 'iPod': 1 },\n 'Alcatel': {},\n 'Archos': {},\n 'Amazon': { 'Kindle': 1, 'Kindle Fire': 1 },\n 'Asus': { 'Transformer': 1 },\n 'Barnes & Noble': { 'Nook': 1 },\n 'BlackBerry': { 'PlayBook': 1 },\n 'Google': { 'Google TV': 1, 'Nexus': 1 },\n 'HP': { 'TouchPad': 1 },\n 'HTC': {},\n 'Huawei': {},\n 'Lenovo': {},\n 'LG': {},\n 'Microsoft': { 'Xbox': 1, 'Xbox One': 1 },\n 'Motorola': { 'Xoom': 1 },\n 'Nintendo': { 'Wii U': 1, 'Wii': 1 },\n 'Nokia': { 'Lumia': 1 },\n 'Oppo': {},\n 'Samsung': { 'Galaxy S': 1, 'Galaxy S2': 1, 'Galaxy S3': 1, 'Galaxy S4': 1 },\n 'Sony': { 'PlayStation': 1, 'PlayStation Vita': 1 },\n 'Xiaomi': { 'Mi': 1, 'Redmi': 1 }\n });\n\n /* Detectable operating systems (order is important). */\n var os = getOS([\n 'Windows Phone',\n 'KaiOS',\n 'Android',\n 'CentOS',\n { 'label': 'Chrome OS', 'pattern': 'CrOS' },\n 'Debian',\n { 'label': 'DragonFly BSD', 'pattern': 'DragonFly' },\n 'Fedora',\n 'FreeBSD',\n 'Gentoo',\n 'Haiku',\n 'Kubuntu',\n 'Linux Mint',\n 'OpenBSD',\n 'Red Hat',\n 'SuSE',\n 'Ubuntu',\n 'Xubuntu',\n 'Cygwin',\n 'Symbian OS',\n 'hpwOS',\n 'webOS ',\n 'webOS',\n 'Tablet OS',\n 'Tizen',\n 'Linux',\n 'Mac OS X',\n 'Macintosh',\n 'Mac',\n 'Windows 98;',\n 'Windows '\n ]);\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Picks the layout engine from an array of guesses.\n *\n * @private\n * @param {Array} guesses An array of guesses.\n * @returns {null|string} The detected layout engine.\n */\n function getLayout(guesses) {\n return reduce(guesses, function(result, guess) {\n return result || RegExp('\\\\b' + (\n guess.pattern || qualify(guess)\n ) + '\\\\b', 'i').exec(ua) && (guess.label || guess);\n });\n }\n\n /**\n * Picks the manufacturer from an array of guesses.\n *\n * @private\n * @param {Array} guesses An object of guesses.\n * @returns {null|string} The detected manufacturer.\n */\n function getManufacturer(guesses) {\n return reduce(guesses, function(result, value, key) {\n // Lookup the manufacturer by product or scan the UA for the manufacturer.\n return result || (\n value[product] ||\n value[/^[a-z]+(?: +[a-z]+\\b)*/i.exec(product)] ||\n RegExp('\\\\b' + qualify(key) + '(?:\\\\b|\\\\w*\\\\d)', 'i').exec(ua)\n ) && key;\n });\n }\n\n /**\n * Picks the browser name from an array of guesses.\n *\n * @private\n * @param {Array} guesses An array of guesses.\n * @returns {null|string} The detected browser name.\n */\n function getName(guesses) {\n return reduce(guesses, function(result, guess) {\n return result || RegExp('\\\\b' + (\n guess.pattern || qualify(guess)\n ) + '\\\\b', 'i').exec(ua) && (guess.label || guess);\n });\n }\n\n /**\n * Picks the OS name from an array of guesses.\n *\n * @private\n * @param {Array} guesses An array of guesses.\n * @returns {null|string} The detected OS name.\n */\n function getOS(guesses) {\n return reduce(guesses, function(result, guess) {\n var pattern = guess.pattern || qualify(guess);\n if (!result && (result =\n RegExp('\\\\b' + pattern + '(?:/[\\\\d.]+|[ \\\\w.]*)', 'i').exec(ua)\n )) {\n result = cleanupOS(result, pattern, guess.label || guess);\n }\n return result;\n });\n }\n\n /**\n * Picks the product name from an array of guesses.\n *\n * @private\n * @param {Array} guesses An array of guesses.\n * @returns {null|string} The detected product name.\n */\n function getProduct(guesses) {\n return reduce(guesses, function(result, guess) {\n var pattern = guess.pattern || qualify(guess);\n if (!result && (result =\n RegExp('\\\\b' + pattern + ' *\\\\d+[.\\\\w_]*', 'i').exec(ua) ||\n RegExp('\\\\b' + pattern + ' *\\\\w+-[\\\\w]*', 'i').exec(ua) ||\n RegExp('\\\\b' + pattern + '(?:; *(?:[a-z]+[_-])?[a-z]+\\\\d+|[^ ();-]*)', 'i').exec(ua)\n )) {\n // Split by forward slash and append product version if needed.\n if ((result = String((guess.label && !RegExp(pattern, 'i').test(guess.label)) ? guess.label : result).split('/'))[1] && !/[\\d.]+/.test(result[0])) {\n result[0] += ' ' + result[1];\n }\n // Correct character case and cleanup string.\n guess = guess.label || guess;\n result = format(result[0]\n .replace(RegExp(pattern, 'i'), guess)\n .replace(RegExp('; *(?:' + guess + '[_-])?', 'i'), ' ')\n .replace(RegExp('(' + guess + ')[-_.]?(\\\\w)', 'i'), '$1 $2'));\n }\n return result;\n });\n }\n\n /**\n * Resolves the version using an array of UA patterns.\n *\n * @private\n * @param {Array} patterns An array of UA patterns.\n * @returns {null|string} The detected version.\n */\n function getVersion(patterns) {\n return reduce(patterns, function(result, pattern) {\n return result || (RegExp(pattern +\n '(?:-[\\\\d.]+/|(?: for [\\\\w-]+)?[ /-])([\\\\d.]+[^ ();/_-]*)', 'i').exec(ua) || 0)[1] || null;\n });\n }\n\n /**\n * Returns `platform.description` when the platform object is coerced to a string.\n *\n * @name toString\n * @memberOf platform\n * @returns {string} Returns `platform.description` if available, else an empty string.\n */\n function toStringPlatform() {\n return this.description || '';\n }\n\n /*------------------------------------------------------------------------*/\n\n // Convert layout to an array so we can add extra details.\n layout && (layout = [layout]);\n\n // Detect Android products.\n // Browsers on Android devices typically provide their product IDS after \"Android;\"\n // up to \"Build\" or \") AppleWebKit\".\n // Example:\n // \"Mozilla/5.0 (Linux; Android 8.1.0; Moto G (5) Plus) AppleWebKit/537.36\n // (KHTML, like Gecko) Chrome/70.0.3538.80 Mobile Safari/537.36\"\n if (/\\bAndroid\\b/.test(os) && !product &&\n (data = /\\bAndroid[^;]*;(.*?)(?:Build|\\) AppleWebKit)\\b/i.exec(ua))) {\n product = trim(data[1])\n // Replace any language codes (eg. \"en-US\").\n .replace(/^[a-z]{2}-[a-z]{2};\\s*/i, '')\n || null;\n }\n // Detect product names that contain their manufacturer's name.\n if (manufacturer && !product) {\n product = getProduct([manufacturer]);\n } else if (manufacturer && product) {\n product = product\n .replace(RegExp('^(' + qualify(manufacturer) + ')[-_.\\\\s]', 'i'), manufacturer + ' ')\n .replace(RegExp('^(' + qualify(manufacturer) + ')[-_.]?(\\\\w)', 'i'), manufacturer + ' $2');\n }\n // Clean up Google TV.\n if ((data = /\\bGoogle TV\\b/.exec(product))) {\n product = data[0];\n }\n // Detect simulators.\n if (/\\bSimulator\\b/i.test(ua)) {\n product = (product ? product + ' ' : '') + 'Simulator';\n }\n // Detect Opera Mini 8+ running in Turbo/Uncompressed mode on iOS.\n if (name == 'Opera Mini' && /\\bOPiOS\\b/.test(ua)) {\n description.push('running in Turbo/Uncompressed mode');\n }\n // Detect IE Mobile 11.\n if (name == 'IE' && /\\blike iPhone OS\\b/.test(ua)) {\n data = parse(ua.replace(/like iPhone OS/, ''));\n manufacturer = data.manufacturer;\n product = data.product;\n }\n // Detect iOS.\n else if (/^iP/.test(product)) {\n name || (name = 'Safari');\n os = 'iOS' + ((data = / OS ([\\d_]+)/i.exec(ua))\n ? ' ' + data[1].replace(/_/g, '.')\n : '');\n }\n // Detect Kubuntu.\n else if (name == 'Konqueror' && /^Linux\\b/i.test(os)) {\n os = 'Kubuntu';\n }\n // Detect Android browsers.\n else if ((manufacturer && manufacturer != 'Google' &&\n ((/Chrome/.test(name) && !/\\bMobile Safari\\b/i.test(ua)) || /\\bVita\\b/.test(product))) ||\n (/\\bAndroid\\b/.test(os) && /^Chrome/.test(name) && /\\bVersion\\//i.test(ua))) {\n name = 'Android Browser';\n os = /\\bAndroid\\b/.test(os) ? os : 'Android';\n }\n // Detect Silk desktop/accelerated modes.\n else if (name == 'Silk') {\n if (!/\\bMobi/i.test(ua)) {\n os = 'Android';\n description.unshift('desktop mode');\n }\n if (/Accelerated *= *true/i.test(ua)) {\n description.unshift('accelerated');\n }\n }\n // Detect UC Browser speed mode.\n else if (name == 'UC Browser' && /\\bUCWEB\\b/.test(ua)) {\n description.push('speed mode');\n }\n // Detect PaleMoon identifying as Firefox.\n else if (name == 'PaleMoon' && (data = /\\bFirefox\\/([\\d.]+)\\b/.exec(ua))) {\n description.push('identifying as Firefox ' + data[1]);\n }\n // Detect Firefox OS and products running Firefox.\n else if (name == 'Firefox' && (data = /\\b(Mobile|Tablet|TV)\\b/i.exec(ua))) {\n os || (os = 'Firefox OS');\n product || (product = data[1]);\n }\n // Detect false positives for Firefox/Safari.\n else if (!name || (data = !/\\bMinefield\\b/i.test(ua) && /\\b(?:Firefox|Safari)\\b/.exec(name))) {\n // Escape the `/` for Firefox 1.\n if (name && !product && /[\\/,]|^[^(]+?\\)/.test(ua.slice(ua.indexOf(data + '/') + 8))) {\n // Clear name of false positives.\n name = null;\n }\n // Reassign a generic name.\n if ((data = product || manufacturer || os) &&\n (product || manufacturer || /\\b(?:Android|Symbian OS|Tablet OS|webOS)\\b/.test(os))) {\n name = /[a-z]+(?: Hat)?/i.exec(/\\bAndroid\\b/.test(os) ? os : data) + ' Browser';\n }\n }\n // Add Chrome version to description for Electron.\n else if (name == 'Electron' && (data = (/\\bChrome\\/([\\d.]+)\\b/.exec(ua) || 0)[1])) {\n description.push('Chromium ' + data);\n }\n // Detect non-Opera (Presto-based) versions (order is important).\n if (!version) {\n version = getVersion([\n '(?:Cloud9|CriOS|CrMo|Edge|Edg|EdgA|EdgiOS|FxiOS|HeadlessChrome|IEMobile|Iron|Opera ?Mini|OPiOS|OPR|Raven|SamsungBrowser|Silk(?!/[\\\\d.]+$)|UCBrowser|YaBrowser)',\n 'Version',\n qualify(name),\n '(?:Firefox|Minefield|NetFront)'\n ]);\n }\n // Detect stubborn layout engines.\n if ((data =\n layout == 'iCab' && parseFloat(version) > 3 && 'WebKit' ||\n /\\bOpera\\b/.test(name) && (/\\bOPR\\b/.test(ua) ? 'Blink' : 'Presto') ||\n /\\b(?:Midori|Nook|Safari)\\b/i.test(ua) && !/^(?:Trident|EdgeHTML)$/.test(layout) && 'WebKit' ||\n !layout && /\\bMSIE\\b/i.test(ua) && (os == 'Mac OS' ? 'Tasman' : 'Trident') ||\n layout == 'WebKit' && /\\bPlayStation\\b(?! Vita\\b)/i.test(name) && 'NetFront'\n )) {\n layout = [data];\n }\n // Detect Windows Phone 7 desktop mode.\n if (name == 'IE' && (data = (/; *(?:XBLWP|ZuneWP)(\\d+)/i.exec(ua) || 0)[1])) {\n name += ' Mobile';\n os = 'Windows Phone ' + (/\\+$/.test(data) ? data : data + '.x');\n description.unshift('desktop mode');\n }\n // Detect Windows Phone 8.x desktop mode.\n else if (/\\bWPDesktop\\b/i.test(ua)) {\n name = 'IE Mobile';\n os = 'Windows Phone 8.x';\n description.unshift('desktop mode');\n version || (version = (/\\brv:([\\d.]+)/.exec(ua) || 0)[1]);\n }\n // Detect IE 11 identifying as other browsers.\n else if (name != 'IE' && layout == 'Trident' && (data = /\\brv:([\\d.]+)/.exec(ua))) {\n if (name) {\n description.push('identifying as ' + name + (version ? ' ' + version : ''));\n }\n name = 'IE';\n version = data[1];\n }\n // Leverage environment features.\n if (useFeatures) {\n // Detect server-side environments.\n // Rhino has a global function while others have a global object.\n if (isHostType(context, 'global')) {\n if (java) {\n data = java.lang.System;\n arch = data.getProperty('os.arch');\n os = os || data.getProperty('os.name') + ' ' + data.getProperty('os.version');\n }\n if (rhino) {\n try {\n version = context.require('ringo/engine').version.join('.');\n name = 'RingoJS';\n } catch(e) {\n if ((data = context.system) && data.global.system == context.system) {\n name = 'Narwhal';\n os || (os = data[0].os || null);\n }\n }\n if (!name) {\n name = 'Rhino';\n }\n }\n else if (\n typeof context.process == 'object' && !context.process.browser &&\n (data = context.process)\n ) {\n if (typeof data.versions == 'object') {\n if (typeof data.versions.electron == 'string') {\n description.push('Node ' + data.versions.node);\n name = 'Electron';\n version = data.versions.electron;\n } else if (typeof data.versions.nw == 'string') {\n description.push('Chromium ' + version, 'Node ' + data.versions.node);\n name = 'NW.js';\n version = data.versions.nw;\n }\n }\n if (!name) {\n name = 'Node.js';\n arch = data.arch;\n os = data.platform;\n version = /[\\d.]+/.exec(data.version);\n version = version ? version[0] : null;\n }\n }\n }\n // Detect Adobe AIR.\n else if (getClassOf((data = context.runtime)) == airRuntimeClass) {\n name = 'Adobe AIR';\n os = data.flash.system.Capabilities.os;\n }\n // Detect PhantomJS.\n else if (getClassOf((data = context.phantom)) == phantomClass) {\n name = 'PhantomJS';\n version = (data = data.version || null) && (data.major + '.' + data.minor + '.' + data.patch);\n }\n // Detect IE compatibility modes.\n else if (typeof doc.documentMode == 'number' && (data = /\\bTrident\\/(\\d+)/i.exec(ua))) {\n // We're in compatibility mode when the Trident version + 4 doesn't\n // equal the document mode.\n version = [version, doc.documentMode];\n if ((data = +data[1] + 4) != version[1]) {\n description.push('IE ' + version[1] + ' mode');\n layout && (layout[1] = '');\n version[1] = data;\n }\n version = name == 'IE' ? String(version[1].toFixed(1)) : version[0];\n }\n // Detect IE 11 masking as other browsers.\n else if (typeof doc.documentMode == 'number' && /^(?:Chrome|Firefox)\\b/.test(name)) {\n description.push('masking as ' + name + ' ' + version);\n name = 'IE';\n version = '11.0';\n layout = ['Trident'];\n os = 'Windows';\n }\n os = os && format(os);\n }\n // Detect prerelease phases.\n if (version && (data =\n /(?:[ab]|dp|pre|[ab]\\d+pre)(?:\\d+\\+?)?$/i.exec(version) ||\n /(?:alpha|beta)(?: ?\\d)?/i.exec(ua + ';' + (useFeatures && nav.appMinorVersion)) ||\n /\\bMinefield\\b/i.test(ua) && 'a'\n )) {\n prerelease = /b/i.test(data) ? 'beta' : 'alpha';\n version = version.replace(RegExp(data + '\\\\+?$'), '') +\n (prerelease == 'beta' ? beta : alpha) + (/\\d+\\+?/.exec(data) || '');\n }\n // Detect Firefox Mobile.\n if (name == 'Fennec' || name == 'Firefox' && /\\b(?:Android|Firefox OS|KaiOS)\\b/.test(os)) {\n name = 'Firefox Mobile';\n }\n // Obscure Maxthon's unreliable version.\n else if (name == 'Maxthon' && version) {\n version = version.replace(/\\.[\\d.]+/, '.x');\n }\n // Detect Xbox 360 and Xbox One.\n else if (/\\bXbox\\b/i.test(product)) {\n if (product == 'Xbox 360') {\n os = null;\n }\n if (product == 'Xbox 360' && /\\bIEMobile\\b/.test(ua)) {\n description.unshift('mobile mode');\n }\n }\n // Add mobile postfix.\n else if ((/^(?:Chrome|IE|Opera)$/.test(name) || name && !product && !/Browser|Mobi/.test(name)) &&\n (os == 'Windows CE' || /Mobi/i.test(ua))) {\n name += ' Mobile';\n }\n // Detect IE platform preview.\n else if (name == 'IE' && useFeatures) {\n try {\n if (context.external === null) {\n description.unshift('platform preview');\n }\n } catch(e) {\n description.unshift('embedded');\n }\n }\n // Detect BlackBerry OS version.\n // http://docs.blackberry.com/en/developers/deliverables/18169/HTTP_headers_sent_by_BB_Browser_1234911_11.jsp\n else if ((/\\bBlackBerry\\b/.test(product) || /\\bBB10\\b/.test(ua)) && (data =\n (RegExp(product.replace(/ +/g, ' *') + '/([.\\\\d]+)', 'i').exec(ua) || 0)[1] ||\n version\n )) {\n data = [data, /BB10/.test(ua)];\n os = (data[1] ? (product = null, manufacturer = 'BlackBerry') : 'Device Software') + ' ' + data[0];\n version = null;\n }\n // Detect Opera identifying/masking itself as another browser.\n // http://www.opera.com/support/kb/view/843/\n else if (this != forOwn && product != 'Wii' && (\n (useFeatures && opera) ||\n (/Opera/.test(name) && /\\b(?:MSIE|Firefox)\\b/i.test(ua)) ||\n (name == 'Firefox' && /\\bOS X (?:\\d+\\.){2,}/.test(os)) ||\n (name == 'IE' && (\n (os && !/^Win/.test(os) && version > 5.5) ||\n /\\bWindows XP\\b/.test(os) && version > 8 ||\n version == 8 && !/\\bTrident\\b/.test(ua)\n ))\n ) && !reOpera.test((data = parse.call(forOwn, ua.replace(reOpera, '') + ';'))) && data.name) {\n // When \"identifying\", the UA contains both Opera and the other browser's name.\n data = 'ing as ' + data.name + ((data = data.version) ? ' ' + data : '');\n if (reOpera.test(name)) {\n if (/\\bIE\\b/.test(data) && os == 'Mac OS') {\n os = null;\n }\n data = 'identify' + data;\n }\n // When \"masking\", the UA contains only the other browser's name.\n else {\n data = 'mask' + data;\n if (operaClass) {\n name = format(operaClass.replace(/([a-z])([A-Z])/g, '$1 $2'));\n } else {\n name = 'Opera';\n }\n if (/\\bIE\\b/.test(data)) {\n os = null;\n }\n if (!useFeatures) {\n version = null;\n }\n }\n layout = ['Presto'];\n description.push(data);\n }\n // Detect WebKit Nightly and approximate Chrome/Safari versions.\n if ((data = (/\\bAppleWebKit\\/([\\d.]+\\+?)/i.exec(ua) || 0)[1])) {\n // Correct build number for numeric comparison.\n // (e.g. \"532.5\" becomes \"532.05\")\n data = [parseFloat(data.replace(/\\.(\\d)$/, '.0$1')), data];\n // Nightly builds are postfixed with a \"+\".\n if (name == 'Safari' && data[1].slice(-1) == '+') {\n name = 'WebKit Nightly';\n prerelease = 'alpha';\n version = data[1].slice(0, -1);\n }\n // Clear incorrect browser versions.\n else if (version == data[1] ||\n version == (data[2] = (/\\bSafari\\/([\\d.]+\\+?)/i.exec(ua) || 0)[1])) {\n version = null;\n }\n // Use the full Chrome version when available.\n data[1] = (/\\b(?:Headless)?Chrome\\/([\\d.]+)/i.exec(ua) || 0)[1];\n // Detect Blink layout engine.\n if (data[0] == 537.36 && data[2] == 537.36 && parseFloat(data[1]) >= 28 && layout == 'WebKit') {\n layout = ['Blink'];\n }\n // Detect JavaScriptCore.\n // http://stackoverflow.com/questions/6768474/how-can-i-detect-which-javascript-engine-v8-or-jsc-is-used-at-runtime-in-androi\n if (!useFeatures || (!likeChrome && !data[1])) {\n layout && (layout[1] = 'like Safari');\n data = (data = data[0], data < 400 ? 1 : data < 500 ? 2 : data < 526 ? 3 : data < 533 ? 4 : data < 534 ? '4+' : data < 535 ? 5 : data < 537 ? 6 : data < 538 ? 7 : data < 601 ? 8 : data < 602 ? 9 : data < 604 ? 10 : data < 606 ? 11 : data < 608 ? 12 : '12');\n } else {\n layout && (layout[1] = 'like Chrome');\n data = data[1] || (data = data[0], data < 530 ? 1 : data < 532 ? 2 : data < 532.05 ? 3 : data < 533 ? 4 : data < 534.03 ? 5 : data < 534.07 ? 6 : data < 534.10 ? 7 : data < 534.13 ? 8 : data < 534.16 ? 9 : data < 534.24 ? 10 : data < 534.30 ? 11 : data < 535.01 ? 12 : data < 535.02 ? '13+' : data < 535.07 ? 15 : data < 535.11 ? 16 : data < 535.19 ? 17 : data < 536.05 ? 18 : data < 536.10 ? 19 : data < 537.01 ? 20 : data < 537.11 ? '21+' : data < 537.13 ? 23 : data < 537.18 ? 24 : data < 537.24 ? 25 : data < 537.36 ? 26 : layout != 'Blink' ? '27' : '28');\n }\n // Add the postfix of \".x\" or \"+\" for approximate versions.\n layout && (layout[1] += ' ' + (data += typeof data == 'number' ? '.x' : /[.+]/.test(data) ? '' : '+'));\n // Obscure version for some Safari 1-2 releases.\n if (name == 'Safari' && (!version || parseInt(version) > 45)) {\n version = data;\n } else if (name == 'Chrome' && /\\bHeadlessChrome/i.test(ua)) {\n description.unshift('headless');\n }\n }\n // Detect Opera desktop modes.\n if (name == 'Opera' && (data = /\\bzbov|zvav$/.exec(os))) {\n name += ' ';\n description.unshift('desktop mode');\n if (data == 'zvav') {\n name += 'Mini';\n version = null;\n } else {\n name += 'Mobile';\n }\n os = os.replace(RegExp(' *' + data + '$'), '');\n }\n // Detect Chrome desktop mode.\n else if (name == 'Safari' && /\\bChrome\\b/.exec(layout && layout[1])) {\n description.unshift('desktop mode');\n name = 'Chrome Mobile';\n version = null;\n\n if (/\\bOS X\\b/.test(os)) {\n manufacturer = 'Apple';\n os = 'iOS 4.3+';\n } else {\n os = null;\n }\n }\n // Newer versions of SRWare Iron uses the Chrome tag to indicate its version number.\n else if (/\\bSRWare Iron\\b/.test(name) && !version) {\n version = getVersion('Chrome');\n }\n // Strip incorrect OS versions.\n if (version && version.indexOf((data = /[\\d.]+$/.exec(os))) == 0 &&\n ua.indexOf('/' + data + '-') > -1) {\n os = trim(os.replace(data, ''));\n }\n // Ensure OS does not include the browser name.\n if (os && os.indexOf(name) != -1 && !RegExp(name + ' OS').test(os)) {\n os = os.replace(RegExp(' *' + qualify(name) + ' *'), '');\n }\n // Add layout engine.\n if (layout && !/\\b(?:Avant|Nook)\\b/.test(name) && (\n /Browser|Lunascape|Maxthon/.test(name) ||\n name != 'Safari' && /^iOS/.test(os) && /\\bSafari\\b/.test(layout[1]) ||\n /^(?:Adobe|Arora|Breach|Midori|Opera|Phantom|Rekonq|Rock|Samsung Internet|Sleipnir|SRWare Iron|Vivaldi|Web)/.test(name) && layout[1])) {\n // Don't add layout details to description if they are falsey.\n (data = layout[layout.length - 1]) && description.push(data);\n }\n // Combine contextual information.\n if (description.length) {\n description = ['(' + description.join('; ') + ')'];\n }\n // Append manufacturer to description.\n if (manufacturer && product && product.indexOf(manufacturer) < 0) {\n description.push('on ' + manufacturer);\n }\n // Append product to description.\n if (product) {\n description.push((/^on /.test(description[description.length - 1]) ? '' : 'on ') + product);\n }\n // Parse the OS into an object.\n if (os) {\n data = / ([\\d.+]+)$/.exec(os);\n isSpecialCasedOS = data && os.charAt(os.length - data[0].length - 1) == '/';\n os = {\n 'architecture': 32,\n 'family': (data && !isSpecialCasedOS) ? os.replace(data[0], '') : os,\n 'version': data ? data[1] : null,\n 'toString': function() {\n var version = this.version;\n return this.family + ((version && !isSpecialCasedOS) ? ' ' + version : '') + (this.architecture == 64 ? ' 64-bit' : '');\n }\n };\n }\n // Add browser/OS architecture.\n if ((data = /\\b(?:AMD|IA|Win|WOW|x86_|x)64\\b/i.exec(arch)) && !/\\bi686\\b/i.test(arch)) {\n if (os) {\n os.architecture = 64;\n os.family = os.family.replace(RegExp(' *' + data), '');\n }\n if (\n name && (/\\bWOW64\\b/i.test(ua) ||\n (useFeatures && /\\w(?:86|32)$/.test(nav.cpuClass || nav.platform) && !/\\bWin64; x64\\b/i.test(ua)))\n ) {\n description.unshift('32-bit');\n }\n }\n // Chrome 39 and above on OS X is always 64-bit.\n else if (\n os && /^OS X/.test(os.family) &&\n name == 'Chrome' && parseFloat(version) >= 39\n ) {\n os.architecture = 64;\n }\n\n ua || (ua = null);\n\n /*------------------------------------------------------------------------*/\n\n /**\n * The platform object.\n *\n * @name platform\n * @type Object\n */\n var platform = {};\n\n /**\n * The platform description.\n *\n * @memberOf platform\n * @type string|null\n */\n platform.description = ua;\n\n /**\n * The name of the browser's layout engine.\n *\n * The list of common layout engines include:\n * \"Blink\", \"EdgeHTML\", \"Gecko\", \"Trident\" and \"WebKit\"\n *\n * @memberOf platform\n * @type string|null\n */\n platform.layout = layout && layout[0];\n\n /**\n * The name of the product's manufacturer.\n *\n * The list of manufacturers include:\n * \"Apple\", \"Archos\", \"Amazon\", \"Asus\", \"Barnes & Noble\", \"BlackBerry\",\n * \"Google\", \"HP\", \"HTC\", \"LG\", \"Microsoft\", \"Motorola\", \"Nintendo\",\n * \"Nokia\", \"Samsung\" and \"Sony\"\n *\n * @memberOf platform\n * @type string|null\n */\n platform.manufacturer = manufacturer;\n\n /**\n * The name of the browser/environment.\n *\n * The list of common browser names include:\n * \"Chrome\", \"Electron\", \"Firefox\", \"Firefox for iOS\", \"IE\",\n * \"Microsoft Edge\", \"PhantomJS\", \"Safari\", \"SeaMonkey\", \"Silk\",\n * \"Opera Mini\" and \"Opera\"\n *\n * Mobile versions of some browsers have \"Mobile\" appended to their name:\n * eg. \"Chrome Mobile\", \"Firefox Mobile\", \"IE Mobile\" and \"Opera Mobile\"\n *\n * @memberOf platform\n * @type string|null\n */\n platform.name = name;\n\n /**\n * The alpha/beta release indicator.\n *\n * @memberOf platform\n * @type string|null\n */\n platform.prerelease = prerelease;\n\n /**\n * The name of the product hosting the browser.\n *\n * The list of common products include:\n *\n * \"BlackBerry\", \"Galaxy S4\", \"Lumia\", \"iPad\", \"iPod\", \"iPhone\", \"Kindle\",\n * \"Kindle Fire\", \"Nexus\", \"Nook\", \"PlayBook\", \"TouchPad\" and \"Transformer\"\n *\n * @memberOf platform\n * @type string|null\n */\n platform.product = product;\n\n /**\n * The browser's user agent string.\n *\n * @memberOf platform\n * @type string|null\n */\n platform.ua = ua;\n\n /**\n * The browser/environment version.\n *\n * @memberOf platform\n * @type string|null\n */\n platform.version = name && version;\n\n /**\n * The name of the operating system.\n *\n * @memberOf platform\n * @type Object\n */\n platform.os = os || {\n\n /**\n * The CPU architecture the OS is built for.\n *\n * @memberOf platform.os\n * @type number|null\n */\n 'architecture': null,\n\n /**\n * The family of the OS.\n *\n * Common values include:\n * \"Windows\", \"Windows Server 2008 R2 / 7\", \"Windows Server 2008 / Vista\",\n * \"Windows XP\", \"OS X\", \"Linux\", \"Ubuntu\", \"Debian\", \"Fedora\", \"Red Hat\",\n * \"SuSE\", \"Android\", \"iOS\" and \"Windows Phone\"\n *\n * @memberOf platform.os\n * @type string|null\n */\n 'family': null,\n\n /**\n * The version of the OS.\n *\n * @memberOf platform.os\n * @type string|null\n */\n 'version': null,\n\n /**\n * Returns the OS string.\n *\n * @memberOf platform.os\n * @returns {string} The OS string.\n */\n 'toString': function() { return 'null'; }\n };\n\n platform.parse = parse;\n platform.toString = toStringPlatform;\n\n if (platform.version) {\n description.unshift(version);\n }\n if (platform.name) {\n description.unshift(name);\n }\n if (os && name && !(os == String(os).split(' ')[0] && (os == name.split(' ')[0] || product))) {\n description.push(product ? '(' + os + ')' : 'on ' + os);\n }\n if (description.length) {\n platform.description = description.join(' ');\n }\n return platform;\n }\n\n /*--------------------------------------------------------------------------*/\n\n // Export platform.\n var platform = parse();\n\n // Some AMD build optimizers, like r.js, check for condition patterns like the following:\n if (true) {\n // Expose platform on the global object to prevent errors when platform is\n // loaded by a script tag in the presence of an AMD loader.\n // See http://requirejs.org/docs/errors.html#mismatch for more details.\n root.platform = platform;\n\n // Define as an anonymous module so platform can be aliased through path mapping.\n !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() {\n return platform;\n }).call(exports, __webpack_require__, exports, module),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n }\n // Check for `exports` after `define` in case a build optimizer adds an `exports` object.\n else {}\n}.call(this));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcGxhdGZvcm0vcGxhdGZvcm0uanMuanMiLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EsK0JBQStCLFFBQWE7O0FBRTVDO0FBQ0EsdURBQXVELHFCQUFNLGdCQUFnQixxQkFBTTtBQUNuRjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsUUFBUTtBQUNyQixlQUFlLFFBQVE7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsUUFBUTtBQUNyQixhQUFhLFFBQVE7QUFDckIsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxjQUFjO0FBQzNCLGFBQWEsVUFBVTtBQUN2QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLFFBQVE7QUFDckIsZUFBZSxRQUFRO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxRQUFRO0FBQ3JCLGFBQWEsVUFBVTtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxHQUFHO0FBQ2hCLGVBQWUsUUFBUTtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxHQUFHO0FBQ2hCLGFBQWEsUUFBUTtBQUNyQixlQUFlLFNBQVM7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxRQUFRO0FBQ3JCLGVBQWUsUUFBUTtBQUN2QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsT0FBTztBQUNwQixhQUFhLFVBQVU7QUFDdkIsZUFBZSxHQUFHO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsUUFBUTtBQUNyQixlQUFlLFFBQVE7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLGVBQWU7QUFDNUI7QUFDQSxlQUFlLFFBQVE7QUFDdkI7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7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QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0M7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlEQUFpRDtBQUNqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrREFBa0QsR0FBRztBQUNyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0ZBQWtGO0FBQ2xGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtDQUErQztBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBGQUEwRjtBQUMxRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixRQUFRO0FBQzNCO0FBQ0EsK0JBQStCO0FBQy9COztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EsTUFBTSxJQUEwRTtBQUNoRjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLElBQUksbUNBQU87QUFDWDtBQUNBLEtBQUs7QUFBQSxrR0FBQztBQUNOO0FBQ0E7QUFDQSxPQUFPLEVBU0o7QUFDSCxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9wbGF0Zm9ybS9wbGF0Zm9ybS5qcz85NWJiIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogUGxhdGZvcm0uanMgdjEuMy42XG4gKiBDb3B5cmlnaHQgMjAxNC0yMDIwIEJlbmphbWluIFRhblxuICogQ29weXJpZ2h0IDIwMTEtMjAxMyBKb2huLURhdmlkIERhbHRvblxuICogQXZhaWxhYmxlIHVuZGVyIE1JVCBsaWNlbnNlXG4gKi9cbjsoZnVuY3Rpb24oKSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICAvKiogVXNlZCB0byBkZXRlcm1pbmUgaWYgdmFsdWVzIGFyZSBvZiB0aGUgbGFuZ3VhZ2UgdHlwZSBgT2JqZWN0YC4gKi9cbiAgdmFyIG9iamVjdFR5cGVzID0ge1xuICAgICdmdW5jdGlvbic6IHRydWUsXG4gICAgJ29iamVjdCc6IHRydWVcbiAgfTtcblxuICAvKiogVXNlZCBhcyBhIHJlZmVyZW5jZSB0byB0aGUgZ2xvYmFsIG9iamVjdC4gKi9cbiAgdmFyIHJvb3QgPSAob2JqZWN0VHlwZXNbdHlwZW9mIHdpbmRvd10gJiYgd2luZG93KSB8fCB0aGlzO1xuXG4gIC8qKiBCYWNrdXAgcG9zc2libGUgZ2xvYmFsIG9iamVjdC4gKi9cbiAgdmFyIG9sZFJvb3QgPSByb290O1xuXG4gIC8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgZXhwb3J0c2AuICovXG4gIHZhciBmcmVlRXhwb3J0cyA9IG9iamVjdFR5cGVzW3R5cGVvZiBleHBvcnRzXSAmJiBleHBvcnRzO1xuXG4gIC8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgbW9kdWxlYC4gKi9cbiAgdmFyIGZyZWVNb2R1bGUgPSBvYmplY3RUeXBlc1t0eXBlb2YgbW9kdWxlXSAmJiBtb2R1bGUgJiYgIW1vZHVsZS5ub2RlVHlwZSAmJiBtb2R1bGU7XG5cbiAgLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBnbG9iYWxgIGZyb20gTm9kZS5qcyBvciBCcm93c2VyaWZpZWQgY29kZSBhbmQgdXNlIGl0IGFzIGByb290YC4gKi9cbiAgdmFyIGZyZWVHbG9iYWwgPSBmcmVlRXhwb3J0cyAmJiBmcmVlTW9kdWxlICYmIHR5cGVvZiBnbG9iYWwgPT0gJ29iamVjdCcgJiYgZ2xvYmFsO1xuICBpZiAoZnJlZUdsb2JhbCAmJiAoZnJlZUdsb2JhbC5nbG9iYWwgPT09IGZyZWVHbG9iYWwgfHwgZnJlZUdsb2JhbC53aW5kb3cgPT09IGZyZWVHbG9iYWwgfHwgZnJlZUdsb2JhbC5zZWxmID09PSBmcmVlR2xvYmFsKSkge1xuICAgIHJvb3QgPSBmcmVlR2xvYmFsO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZWQgYXMgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGFuIGFycmF5LWxpa2Ugb2JqZWN0LlxuICAgKiBTZWUgdGhlIFtFUzYgc3BlY10oaHR0cDovL3Blb3BsZS5tb3ppbGxhLm9yZy9+am9yZW5kb3JmZi9lczYtZHJhZnQuaHRtbCNzZWMtdG9sZW5ndGgpXG4gICAqIGZvciBtb3JlIGRldGFpbHMuXG4gICAqL1xuICB2YXIgbWF4U2FmZUludGVnZXIgPSBNYXRoLnBvdygyLCA1MykgLSAxO1xuXG4gIC8qKiBSZWd1bGFyIGV4cHJlc3Npb24gdG8gZGV0ZWN0IE9wZXJhLiAqL1xuICB2YXIgcmVPcGVyYSA9IC9cXGJPcGVyYS87XG5cbiAgLyoqIFBvc3NpYmxlIGdsb2JhbCBvYmplY3QuICovXG4gIHZhciB0aGlzQmluZGluZyA9IHRoaXM7XG5cbiAgLyoqIFVzZWQgZm9yIG5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbiAgdmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuICAvKiogVXNlZCB0byBjaGVjayBmb3Igb3duIHByb3BlcnRpZXMgb2YgYW4gb2JqZWN0LiAqL1xuICB2YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuICAvKiogVXNlZCB0byByZXNvbHZlIHRoZSBpbnRlcm5hbCBgW1tDbGFzc11dYCBvZiB2YWx1ZXMuICovXG4gIHZhciB0b1N0cmluZyA9IG9iamVjdFByb3RvLnRvU3RyaW5nO1xuXG4gIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gIC8qKlxuICAgKiBDYXBpdGFsaXplcyBhIHN0cmluZyB2YWx1ZS5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZyBUaGUgc3RyaW5nIHRvIGNhcGl0YWxpemUuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBjYXBpdGFsaXplZCBzdHJpbmcuXG4gICAqL1xuICBmdW5jdGlvbiBjYXBpdGFsaXplKHN0cmluZykge1xuICAgIHN0cmluZyA9IFN0cmluZyhzdHJpbmcpO1xuICAgIHJldHVybiBzdHJpbmcuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBzdHJpbmcuc2xpY2UoMSk7XG4gIH1cblxuICAvKipcbiAgICogQSB1dGlsaXR5IGZ1bmN0aW9uIHRvIGNsZWFuIHVwIHRoZSBPUyBuYW1lLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3MgVGhlIE9TIG5hbWUgdG8gY2xlYW4gdXAuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbcGF0dGVybl0gQSBgUmVnRXhwYCBwYXR0ZXJuIG1hdGNoaW5nIHRoZSBPUyBuYW1lLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2xhYmVsXSBBIGxhYmVsIGZvciB0aGUgT1MuXG4gICAqL1xuICBmdW5jdGlvbiBjbGVhbnVwT1Mob3MsIHBhdHRlcm4sIGxhYmVsKSB7XG4gICAgLy8gUGxhdGZvcm0gdG9rZW5zIGFyZSBkZWZpbmVkIGF0OlxuICAgIC8vIGh0dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9tczUzNzUwMyhWUy44NSkuYXNweFxuICAgIC8vIGh0dHA6Ly93ZWIuYXJjaGl2ZS5vcmcvd2ViLzIwMDgxMTIyMDUzOTUwL2h0dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9tczUzNzUwMyhWUy44NSkuYXNweFxuICAgIHZhciBkYXRhID0ge1xuICAgICAgJzEwLjAnOiAnMTAnLFxuICAgICAgJzYuNCc6ICAnMTAgVGVjaG5pY2FsIFByZXZpZXcnLFxuICAgICAgJzYuMyc6ICAnOC4xJyxcbiAgICAgICc2LjInOiAgJzgnLFxuICAgICAgJzYuMSc6ICAnU2VydmVyIDIwMDggUjIgLyA3JyxcbiAgICAgICc2LjAnOiAgJ1NlcnZlciAyMDA4IC8gVmlzdGEnLFxuICAgICAgJzUuMic6ICAnU2VydmVyIDIwMDMgLyBYUCA2NC1iaXQnLFxuICAgICAgJzUuMSc6ICAnWFAnLFxuICAgICAgJzUuMDEnOiAnMjAwMCBTUDEnLFxuICAgICAgJzUuMCc6ICAnMjAwMCcsXG4gICAgICAnNC4wJzogICdOVCcsXG4gICAgICAnNC45MCc6ICdNRSdcbiAgICB9O1xuICAgIC8vIERldGVjdCBXaW5kb3dzIHZlcnNpb24gZnJvbSBwbGF0Zm9ybSB0b2tlbnMuXG4gICAgaWYgKHBhdHRlcm4gJiYgbGFiZWwgJiYgL15XaW4vaS50ZXN0KG9zKSAmJiAhL15XaW5kb3dzIFBob25lIC9pLnRlc3Qob3MpICYmXG4gICAgICAgIChkYXRhID0gZGF0YVsvW1xcZC5dKyQvLmV4ZWMob3MpXSkpIHtcbiAgICAgIG9zID0gJ1dpbmRvd3MgJyArIGRhdGE7XG4gICAgfVxuICAgIC8vIENvcnJlY3QgY2hhcmFjdGVyIGNhc2UgYW5kIGNsZWFudXAgc3RyaW5nLlxuICAgIG9zID0gU3RyaW5nKG9zKTtcblxuICAgIGlmIChwYXR0ZXJuICYmIGxhYmVsKSB7XG4gICAgICBvcyA9IG9zLnJlcGxhY2UoUmVnRXhwKHBhdHRlcm4sICdpJyksIGxhYmVsKTtcbiAgICB9XG5cbiAgICBvcyA9IGZvcm1hdChcbiAgICAgIG9zLnJlcGxhY2UoLyBjZSQvaSwgJyBDRScpXG4gICAgICAgIC5yZXBsYWNlKC9cXGJocHcvaSwgJ3dlYicpXG4gICAgICAgIC5yZXBsYWNlKC9cXGJNYWNpbnRvc2hcXGIvLCAnTWFjIE9TJylcbiAgICAgICAgLnJlcGxhY2UoL19Qb3dlclBDXFxiL2ksICcgT1MnKVxuICAgICAgICAucmVwbGFjZSgvXFxiKE9TIFgpIFteIFxcZF0rL2ksICckMScpXG4gICAgICAgIC5yZXBsYWNlKC9cXGJNYWMgKE9TIFgpXFxiLywgJyQxJylcbiAgICAgICAgLnJlcGxhY2UoL1xcLyhcXGQpLywgJyAkMScpXG4gICAgICAgIC5yZXBsYWNlKC9fL2csICcuJylcbiAgICAgICAgLnJlcGxhY2UoLyg/OiBCZVBDfFsgLl0qZmNbIFxcZC5dKykkL2ksICcnKVxuICAgICAgICAucmVwbGFjZSgvXFxieDg2XFwuNjRcXGIvZ2ksICd4ODZfNjQnKVxuICAgICAgICAucmVwbGFjZSgvXFxiKFdpbmRvd3MgUGhvbmUpIE9TXFxiLywgJyQxJylcbiAgICAgICAgLnJlcGxhY2UoL1xcYihDaHJvbWUgT1MgXFx3KykgW1xcZC5dK1xcYi8sICckMScpXG4gICAgICAgIC5zcGxpdCgnIG9uICcpWzBdXG4gICAgKTtcblxuICAgIHJldHVybiBvcztcbiAgfVxuXG4gIC8qKlxuICAgKiBBbiBpdGVyYXRpb24gdXRpbGl0eSBmb3IgYXJyYXlzIGFuZCBvYmplY3RzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFjayBUaGUgZnVuY3Rpb24gY2FsbGVkIHBlciBpdGVyYXRpb24uXG4gICAqL1xuICBmdW5jdGlvbiBlYWNoKG9iamVjdCwgY2FsbGJhY2spIHtcbiAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgbGVuZ3RoID0gb2JqZWN0ID8gb2JqZWN0Lmxlbmd0aCA6IDA7XG5cbiAgICBpZiAodHlwZW9mIGxlbmd0aCA9PSAnbnVtYmVyJyAmJiBsZW5ndGggPiAtMSAmJiBsZW5ndGggPD0gbWF4U2FmZUludGVnZXIpIHtcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIGNhbGxiYWNrKG9iamVjdFtpbmRleF0sIGluZGV4LCBvYmplY3QpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBmb3JPd24ob2JqZWN0LCBjYWxsYmFjayk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRyaW0gYW5kIGNvbmRpdGlvbmFsbHkgY2FwaXRhbGl6ZSBzdHJpbmcgdmFsdWVzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nIFRoZSBzdHJpbmcgdG8gZm9ybWF0LlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgZm9ybWF0dGVkIHN0cmluZy5cbiAgICovXG4gIGZ1bmN0aW9uIGZvcm1hdChzdHJpbmcpIHtcbiAgICBzdHJpbmcgPSB0cmltKHN0cmluZyk7XG4gICAgcmV0dXJuIC9eKD86d2ViT1N8aSg/Ok9TfFApKS8udGVzdChzdHJpbmcpXG4gICAgICA/IHN0cmluZ1xuICAgICAgOiBjYXBpdGFsaXplKHN0cmluZyk7XG4gIH1cblxuICAvKipcbiAgICogSXRlcmF0ZXMgb3ZlciBhbiBvYmplY3QncyBvd24gcHJvcGVydGllcywgZXhlY3V0aW5nIHRoZSBgY2FsbGJhY2tgIGZvciBlYWNoLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFjayBUaGUgZnVuY3Rpb24gZXhlY3V0ZWQgcGVyIG93biBwcm9wZXJ0eS5cbiAgICovXG4gIGZ1bmN0aW9uIGZvck93bihvYmplY3QsIGNhbGxiYWNrKSB7XG4gICAgZm9yICh2YXIga2V5IGluIG9iamVjdCkge1xuICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpKSB7XG4gICAgICAgIGNhbGxiYWNrKG9iamVjdFtrZXldLCBrZXksIG9iamVjdCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGludGVybmFsIGBbW0NsYXNzXV1gIG9mIGEgdmFsdWUuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgYFtbQ2xhc3NdXWAuXG4gICAqL1xuICBmdW5jdGlvbiBnZXRDbGFzc09mKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlID09IG51bGxcbiAgICAgID8gY2FwaXRhbGl6ZSh2YWx1ZSlcbiAgICAgIDogdG9TdHJpbmcuY2FsbCh2YWx1ZSkuc2xpY2UoOCwgLTEpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhvc3Qgb2JqZWN0cyBjYW4gcmV0dXJuIHR5cGUgdmFsdWVzIHRoYXQgYXJlIGRpZmZlcmVudCBmcm9tIHRoZWlyIGFjdHVhbFxuICAgKiBkYXRhIHR5cGUuIFRoZSBvYmplY3RzIHdlIGFyZSBjb25jZXJuZWQgd2l0aCB1c3VhbGx5IHJldHVybiBub24tcHJpbWl0aXZlXG4gICAqIHR5cGVzIG9mIFwib2JqZWN0XCIsIFwiZnVuY3Rpb25cIiwgb3IgXCJ1bmtub3duXCIuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7Kn0gb2JqZWN0IFRoZSBvd25lciBvZiB0aGUgcHJvcGVydHkuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwcm9wZXJ0eSBUaGUgcHJvcGVydHkgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgcHJvcGVydHkgdmFsdWUgaXMgYSBub24tcHJpbWl0aXZlLCBlbHNlIGBmYWxzZWAuXG4gICAqL1xuICBmdW5jdGlvbiBpc0hvc3RUeXBlKG9iamVjdCwgcHJvcGVydHkpIHtcbiAgICB2YXIgdHlwZSA9IG9iamVjdCAhPSBudWxsID8gdHlwZW9mIG9iamVjdFtwcm9wZXJ0eV0gOiAnbnVtYmVyJztcbiAgICByZXR1cm4gIS9eKD86Ym9vbGVhbnxudW1iZXJ8c3RyaW5nfHVuZGVmaW5lZCkkLy50ZXN0KHR5cGUpICYmXG4gICAgICAodHlwZSA9PSAnb2JqZWN0JyA/ICEhb2JqZWN0W3Byb3BlcnR5XSA6IHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFByZXBhcmVzIGEgc3RyaW5nIGZvciB1c2UgaW4gYSBgUmVnRXhwYCBieSBtYWtpbmcgaHlwaGVucyBhbmQgc3BhY2VzIG9wdGlvbmFsLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nIFRoZSBzdHJpbmcgdG8gcXVhbGlmeS5cbiAgICogQHJldHVybnMge3N0cmluZ30gVGhlIHF1YWxpZmllZCBzdHJpbmcuXG4gICAqL1xuICBmdW5jdGlvbiBxdWFsaWZ5KHN0cmluZykge1xuICAgIHJldHVybiBTdHJpbmcoc3RyaW5nKS5yZXBsYWNlKC8oWyAtXSkoPyEkKS9nLCAnJDE/Jyk7XG4gIH1cblxuICAvKipcbiAgICogQSBiYXJlLWJvbmVzIGBBcnJheSNyZWR1Y2VgIGxpa2UgdXRpbGl0eSBmdW5jdGlvbi5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2sgVGhlIGZ1bmN0aW9uIGNhbGxlZCBwZXIgaXRlcmF0aW9uLlxuICAgKiBAcmV0dXJucyB7Kn0gVGhlIGFjY3VtdWxhdGVkIHJlc3VsdC5cbiAgICovXG4gIGZ1bmN0aW9uIHJlZHVjZShhcnJheSwgY2FsbGJhY2spIHtcbiAgICB2YXIgYWNjdW11bGF0b3IgPSBudWxsO1xuICAgIGVhY2goYXJyYXksIGZ1bmN0aW9uKHZhbHVlLCBpbmRleCkge1xuICAgICAgYWNjdW11bGF0b3IgPSBjYWxsYmFjayhhY2N1bXVsYXRvciwgdmFsdWUsIGluZGV4LCBhcnJheSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGFjY3VtdWxhdG9yO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgbGVhZGluZyBhbmQgdHJhaWxpbmcgd2hpdGVzcGFjZSBmcm9tIGEgc3RyaW5nLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nIFRoZSBzdHJpbmcgdG8gdHJpbS5cbiAgICogQHJldHVybnMge3N0cmluZ30gVGhlIHRyaW1tZWQgc3RyaW5nLlxuICAgKi9cbiAgZnVuY3Rpb24gdHJpbShzdHJpbmcpIHtcbiAgICByZXR1cm4gU3RyaW5nKHN0cmluZykucmVwbGFjZSgvXiArfCArJC9nLCAnJyk7XG4gIH1cblxuICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBwbGF0Zm9ybSBvYmplY3QuXG4gICAqXG4gICAqIEBtZW1iZXJPZiBwbGF0Zm9ybVxuICAgKiBAcGFyYW0ge09iamVjdHxzdHJpbmd9IFt1YT1uYXZpZ2F0b3IudXNlckFnZW50XSBUaGUgdXNlciBhZ2VudCBzdHJpbmcgb3JcbiAgICogIGNvbnRleHQgb2JqZWN0LlxuICAgKiBAcmV0dXJucyB7T2JqZWN0fSBBIHBsYXRmb3JtIG9iamVjdC5cbiAgICovXG4gIGZ1bmN0aW9uIHBhcnNlKHVhKSB7XG5cbiAgICAvKiogVGhlIGVudmlyb25tZW50IGNvbnRleHQgb2JqZWN0LiAqL1xuICAgIHZhciBjb250ZXh0ID0gcm9vdDtcblxuICAgIC8qKiBVc2VkIHRvIGZsYWcgd2hlbiBhIGN1c3RvbSBjb250ZXh0IGlzIHByb3ZpZGVkLiAqL1xuICAgIHZhciBpc0N1c3RvbUNvbnRleHQgPSB1YSAmJiB0eXBlb2YgdWEgPT0gJ29iamVjdCcgJiYgZ2V0Q2xhc3NPZih1YSkgIT0gJ1N0cmluZyc7XG5cbiAgICAvLyBKdWdnbGUgYXJndW1lbnRzLlxuICAgIGlmIChpc0N1c3RvbUNvbnRleHQpIHtcbiAgICAgIGNvbnRleHQgPSB1YTtcbiAgICAgIHVhID0gbnVsbDtcbiAgICB9XG5cbiAgICAvKiogQnJvd3NlciBuYXZpZ2F0b3Igb2JqZWN0LiAqL1xuICAgIHZhciBuYXYgPSBjb250ZXh0Lm5hdmlnYXRvciB8fCB7fTtcblxuICAgIC8qKiBCcm93c2VyIHVzZXIgYWdlbnQgc3RyaW5nLiAqL1xuICAgIHZhciB1c2VyQWdlbnQgPSBuYXYudXNlckFnZW50IHx8ICcnO1xuXG4gICAgdWEgfHwgKHVhID0gdXNlckFnZW50KTtcblxuICAgIC8qKiBVc2VkIHRvIGZsYWcgd2hlbiBgdGhpc0JpbmRpbmdgIGlzIHRoZSBbTW9kdWxlU2NvcGVdLiAqL1xuICAgIHZhciBpc01vZHVsZVNjb3BlID0gaXNDdXN0b21Db250ZXh0IHx8IHRoaXNCaW5kaW5nID09IG9sZFJvb3Q7XG5cbiAgICAvKiogVXNlZCB0byBkZXRlY3QgaWYgYnJvd3NlciBpcyBsaWtlIENocm9tZS4gKi9cbiAgICB2YXIgbGlrZUNocm9tZSA9IGlzQ3VzdG9tQ29udGV4dFxuICAgICAgPyAhIW5hdi5saWtlQ2hyb21lXG4gICAgICA6IC9cXGJDaHJvbWVcXGIvLnRlc3QodWEpICYmICEvaW50ZXJuYWx8XFxuL2kudGVzdCh0b1N0cmluZy50b1N0cmluZygpKTtcblxuICAgIC8qKiBJbnRlcm5hbCBgW1tDbGFzc11dYCB2YWx1ZSBzaG9ydGN1dHMuICovXG4gICAgdmFyIG9iamVjdENsYXNzID0gJ09iamVjdCcsXG4gICAgICAgIGFpclJ1bnRpbWVDbGFzcyA9IGlzQ3VzdG9tQ29udGV4dCA/IG9iamVjdENsYXNzIDogJ1NjcmlwdEJyaWRnaW5nUHJveHlPYmplY3QnLFxuICAgICAgICBlbnZpcm9DbGFzcyA9IGlzQ3VzdG9tQ29udGV4dCA/IG9iamVjdENsYXNzIDogJ0Vudmlyb25tZW50JyxcbiAgICAgICAgamF2YUNsYXNzID0gKGlzQ3VzdG9tQ29udGV4dCAmJiBjb250ZXh0LmphdmEpID8gJ0phdmFQYWNrYWdlJyA6IGdldENsYXNzT2YoY29udGV4dC5qYXZhKSxcbiAgICAgICAgcGhhbnRvbUNsYXNzID0gaXNDdXN0b21Db250ZXh0ID8gb2JqZWN0Q2xhc3MgOiAnUnVudGltZU9iamVjdCc7XG5cbiAgICAvKiogRGV0ZWN0IEphdmEgZW52aXJvbm1lbnRzLiAqL1xuICAgIHZhciBqYXZhID0gL1xcYkphdmEvLnRlc3QoamF2YUNsYXNzKSAmJiBjb250ZXh0LmphdmE7XG5cbiAgICAvKiogRGV0ZWN0IFJoaW5vLiAqL1xuICAgIHZhciByaGlubyA9IGphdmEgJiYgZ2V0Q2xhc3NPZihjb250ZXh0LmVudmlyb25tZW50KSA9PSBlbnZpcm9DbGFzcztcblxuICAgIC8qKiBBIGNoYXJhY3RlciB0byByZXByZXNlbnQgYWxwaGEuICovXG4gICAgdmFyIGFscGhhID0gamF2YSA/ICdhJyA6ICdcXHUwM2IxJztcblxuICAgIC8qKiBBIGNoYXJhY3RlciB0byByZXByZXNlbnQgYmV0YS4gKi9cbiAgICB2YXIgYmV0YSA9IGphdmEgPyAnYicgOiAnXFx1MDNiMic7XG5cbiAgICAvKiogQnJvd3NlciBkb2N1bWVudCBvYmplY3QuICovXG4gICAgdmFyIGRvYyA9IGNvbnRleHQuZG9jdW1lbnQgfHwge307XG5cbiAgICAvKipcbiAgICAgKiBEZXRlY3QgT3BlcmEgYnJvd3NlciAoUHJlc3RvLWJhc2VkKS5cbiAgICAgKiBodHRwOi8vd3d3Lmhvd3RvY3JlYXRlLmNvLnVrL29wZXJhU3R1ZmYvb3BlcmFPYmplY3QuaHRtbFxuICAgICAqIGh0dHA6Ly9kZXYub3BlcmEuY29tL2FydGljbGVzL3ZpZXcvb3BlcmEtbWluaS13ZWItY29udGVudC1hdXRob3JpbmctZ3VpZGVsaW5lcy8jb3BlcmFtaW5pXG4gICAgICovXG4gICAgdmFyIG9wZXJhID0gY29udGV4dC5vcGVyYW1pbmkgfHwgY29udGV4dC5vcGVyYTtcblxuICAgIC8qKiBPcGVyYSBgW1tDbGFzc11dYC4gKi9cbiAgICB2YXIgb3BlcmFDbGFzcyA9IHJlT3BlcmEudGVzdChvcGVyYUNsYXNzID0gKGlzQ3VzdG9tQ29udGV4dCAmJiBvcGVyYSkgPyBvcGVyYVsnW1tDbGFzc11dJ10gOiBnZXRDbGFzc09mKG9wZXJhKSlcbiAgICAgID8gb3BlcmFDbGFzc1xuICAgICAgOiAob3BlcmEgPSBudWxsKTtcblxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuICAgIC8qKiBUZW1wb3JhcnkgdmFyaWFibGUgdXNlZCBvdmVyIHRoZSBzY3JpcHQncyBsaWZldGltZS4gKi9cbiAgICB2YXIgZGF0YTtcblxuICAgIC8qKiBUaGUgQ1BVIGFyY2hpdGVjdHVyZS4gKi9cbiAgICB2YXIgYXJjaCA9IHVhO1xuXG4gICAgLyoqIFBsYXRmb3JtIGRlc2NyaXB0aW9uIGFycmF5LiAqL1xuICAgIHZhciBkZXNjcmlwdGlvbiA9IFtdO1xuXG4gICAgLyoqIFBsYXRmb3JtIGFscGhhL2JldGEgaW5kaWNhdG9yLiAqL1xuICAgIHZhciBwcmVyZWxlYXNlID0gbnVsbDtcblxuICAgIC8qKiBBIGZsYWcgdG8gaW5kaWNhdGUgdGhhdCBlbnZpcm9ubWVudCBmZWF0dXJlcyBzaG91bGQgYmUgdXNlZCB0byByZXNvbHZlIHRoZSBwbGF0Zm9ybS4gKi9cbiAgICB2YXIgdXNlRmVhdHVyZXMgPSB1YSA9PSB1c2VyQWdlbnQ7XG5cbiAgICAvKiogVGhlIGJyb3dzZXIvZW52aXJvbm1lbnQgdmVyc2lvbi4gKi9cbiAgICB2YXIgdmVyc2lvbiA9IHVzZUZlYXR1cmVzICYmIG9wZXJhICYmIHR5cGVvZiBvcGVyYS52ZXJzaW9uID09ICdmdW5jdGlvbicgJiYgb3BlcmEudmVyc2lvbigpO1xuXG4gICAgLyoqIEEgZmxhZyB0byBpbmRpY2F0ZSBpZiB0aGUgT1MgZW5kcyB3aXRoIFwiLyBWZXJzaW9uXCIgKi9cbiAgICB2YXIgaXNTcGVjaWFsQ2FzZWRPUztcblxuICAgIC8qIERldGVjdGFibGUgbGF5b3V0IGVuZ2luZXMgKG9yZGVyIGlzIGltcG9ydGFudCkuICovXG4gICAgdmFyIGxheW91dCA9IGdldExheW91dChbXG4gICAgICB7ICdsYWJlbCc6ICdFZGdlSFRNTCcsICdwYXR0ZXJuJzogJ0VkZ2UnIH0sXG4gICAgICAnVHJpZGVudCcsXG4gICAgICB7ICdsYWJlbCc6ICdXZWJLaXQnLCAncGF0dGVybic6ICdBcHBsZVdlYktpdCcgfSxcbiAgICAgICdpQ2FiJyxcbiAgICAgICdQcmVzdG8nLFxuICAgICAgJ05ldEZyb250JyxcbiAgICAgICdUYXNtYW4nLFxuICAgICAgJ0tIVE1MJyxcbiAgICAgICdHZWNrbydcbiAgICBdKTtcblxuICAgIC8qIERldGVjdGFibGUgYnJvd3NlciBuYW1lcyAob3JkZXIgaXMgaW1wb3J0YW50KS4gKi9cbiAgICB2YXIgbmFtZSA9IGdldE5hbWUoW1xuICAgICAgJ0Fkb2JlIEFJUicsXG4gICAgICAnQXJvcmEnLFxuICAgICAgJ0F2YW50IEJyb3dzZXInLFxuICAgICAgJ0JyZWFjaCcsXG4gICAgICAnQ2FtaW5vJyxcbiAgICAgICdFbGVjdHJvbicsXG4gICAgICAnRXBpcGhhbnknLFxuICAgICAgJ0Zlbm5lYycsXG4gICAgICAnRmxvY2snLFxuICAgICAgJ0dhbGVvbicsXG4gICAgICAnR3JlZW5Ccm93c2VyJyxcbiAgICAgICdpQ2FiJyxcbiAgICAgICdJY2V3ZWFzZWwnLFxuICAgICAgJ0stTWVsZW9uJyxcbiAgICAgICdLb25xdWVyb3InLFxuICAgICAgJ0x1bmFzY2FwZScsXG4gICAgICAnTWF4dGhvbicsXG4gICAgICB7ICdsYWJlbCc6ICdNaWNyb3NvZnQgRWRnZScsICdwYXR0ZXJuJzogJyg/OkVkZ2V8RWRnfEVkZ0F8RWRnaU9TKScgfSxcbiAgICAgICdNaWRvcmknLFxuICAgICAgJ05vb2sgQnJvd3NlcicsXG4gICAgICAnUGFsZU1vb24nLFxuICAgICAgJ1BoYW50b21KUycsXG4gICAgICAnUmF2ZW4nLFxuICAgICAgJ1Jla29ucScsXG4gICAgICAnUm9ja01lbHQnLFxuICAgICAgeyAnbGFiZWwnOiAnU2Ftc3VuZyBJbnRlcm5ldCcsICdwYXR0ZXJuJzogJ1NhbXN1bmdCcm93c2VyJyB9LFxuICAgICAgJ1NlYU1vbmtleScsXG4gICAgICB7ICdsYWJlbCc6ICdTaWxrJywgJ3BhdHRlcm4nOiAnKD86Q2xvdWQ5fFNpbGstQWNjZWxlcmF0ZWQpJyB9LFxuICAgICAgJ1NsZWlwbmlyJyxcbiAgICAgICdTbGltQnJvd3NlcicsXG4gICAgICB7ICdsYWJlbCc6ICdTUldhcmUgSXJvbicsICdwYXR0ZXJuJzogJ0lyb24nIH0sXG4gICAgICAnU3VucmlzZScsXG4gICAgICAnU3dpZnRmb3gnLFxuICAgICAgJ1ZpdmFsZGknLFxuICAgICAgJ1dhdGVyZm94JyxcbiAgICAgICdXZWJQb3NpdGl2ZScsXG4gICAgICB7ICdsYWJlbCc6ICdZYW5kZXggQnJvd3NlcicsICdwYXR0ZXJuJzogJ1lhQnJvd3NlcicgfSxcbiAgICAgIHsgJ2xhYmVsJzogJ1VDIEJyb3dzZXInLCAncGF0dGVybic6ICdVQ0Jyb3dzZXInIH0sXG4gICAgICAnT3BlcmEgTWluaScsXG4gICAgICB7ICdsYWJlbCc6ICdPcGVyYSBNaW5pJywgJ3BhdHRlcm4nOiAnT1BpT1MnIH0sXG4gICAgICAnT3BlcmEnLFxuICAgICAgeyAnbGFiZWwnOiAnT3BlcmEnLCAncGF0dGVybic6ICdPUFInIH0sXG4gICAgICAnQ2hyb21pdW0nLFxuICAgICAgJ0Nocm9tZScsXG4gICAgICB7ICdsYWJlbCc6ICdDaHJvbWUnLCAncGF0dGVybic6ICcoPzpIZWFkbGVzc0Nocm9tZSknIH0sXG4gICAgICB7ICdsYWJlbCc6ICdDaHJvbWUgTW9iaWxlJywgJ3BhdHRlcm4nOiAnKD86Q3JpT1N8Q3JNbyknIH0sXG4gICAgICB7ICdsYWJlbCc6ICdGaXJlZm94JywgJ3BhdHRlcm4nOiAnKD86RmlyZWZveHxNaW5lZmllbGQpJyB9LFxuICAgICAgeyAnbGFiZWwnOiAnRmlyZWZveCBmb3IgaU9TJywgJ3BhdHRlcm4nOiAnRnhpT1MnIH0sXG4gICAgICB7ICdsYWJlbCc6ICdJRScsICdwYXR0ZXJuJzogJ0lFTW9iaWxlJyB9LFxuICAgICAgeyAnbGFiZWwnOiAnSUUnLCAncGF0dGVybic6ICdNU0lFJyB9LFxuICAgICAgJ1NhZmFyaSdcbiAgICBdKTtcblxuICAgIC8qIERldGVjdGFibGUgcHJvZHVjdHMgKG9yZGVyIGlzIGltcG9ydGFudCkuICovXG4gICAgdmFyIHByb2R1Y3QgPSBnZXRQcm9kdWN0KFtcbiAgICAgIHsgJ2xhYmVsJzogJ0JsYWNrQmVycnknLCAncGF0dGVybic6ICdCQjEwJyB9LFxuICAgICAgJ0JsYWNrQmVycnknLFxuICAgICAgeyAnbGFiZWwnOiAnR2FsYXh5IFMnLCAncGF0dGVybic6ICdHVC1JOTAwMCcgfSxcbiAgICAgIHsgJ2xhYmVsJzogJ0dhbGF4eSBTMicsICdwYXR0ZXJuJzogJ0dULUk5MTAwJyB9LFxuICAgICAgeyAnbGFiZWwnOiAnR2FsYXh5IFMzJywgJ3BhdHRlcm4nOiAnR1QtSTkzMDAnIH0sXG4gICAgICB7ICdsYWJlbCc6ICdHYWxheHkgUzQnLCAncGF0dGVybic6ICdHVC1JOTUwMCcgfSxcbiAgICAgIHsgJ2xhYmVsJzogJ0dhbGF4eSBTNScsICdwYXR0ZXJuJzogJ1NNLUc5MDAnIH0sXG4gICAgICB7ICdsYWJlbCc6ICdHYWxheHkgUzYnLCAncGF0dGVybic6ICdTTS1HOTIwJyB9LFxuICAgICAgeyAnbGFiZWwnOiAnR2FsYXh5IFM2IEVkZ2UnLCAncGF0dGVybic6ICdTTS1HOTI1JyB9LFxuICAgICAgeyAnbGFiZWwnOiAnR2FsYXh5IFM3JywgJ3BhdHRlcm4nOiAnU00tRzkzMCcgfSxcbiAgICAgIHsgJ2xhYmVsJzogJ0dhbGF4eSBTNyBFZGdlJywgJ3BhdHRlcm4nOiAnU00tRzkzNScgfSxcbiAgICAgICdHb29nbGUgVFYnLFxuICAgICAgJ0x1bWlhJyxcbiAgICAgICdpUGFkJyxcbiAgICAgICdpUG9kJyxcbiAgICAgICdpUGhvbmUnLFxuICAgICAgJ0tpbmRsZScsXG4gICAgICB7ICdsYWJlbCc6ICdLaW5kbGUgRmlyZScsICdwYXR0ZXJuJzogJyg/OkNsb3VkOXxTaWxrLUFjY2VsZXJhdGVkKScgfSxcbiAgICAgICdOZXh1cycsXG4gICAgICAnTm9vaycsXG4gICAgICAnUGxheUJvb2snLFxuICAgICAgJ1BsYXlTdGF0aW9uIFZpdGEnLFxuICAgICAgJ1BsYXlTdGF0aW9uJyxcbiAgICAgICdUb3VjaFBhZCcsXG4gICAgICAnVHJhbnNmb3JtZXInLFxuICAgICAgeyAnbGFiZWwnOiAnV2lpIFUnLCAncGF0dGVybic6ICdXaWlVJyB9LFxuICAgICAgJ1dpaScsXG4gICAgICAnWGJveCBPbmUnLFxuICAgICAgeyAnbGFiZWwnOiAnWGJveCAzNjAnLCAncGF0dGVybic6ICdYYm94JyB9LFxuICAgICAgJ1hvb20nXG4gICAgXSk7XG5cbiAgICAvKiBEZXRlY3RhYmxlIG1hbnVmYWN0dXJlcnMuICovXG4gICAgdmFyIG1hbnVmYWN0dXJlciA9IGdldE1hbnVmYWN0dXJlcih7XG4gICAgICAnQXBwbGUnOiB7ICdpUGFkJzogMSwgJ2lQaG9uZSc6IDEsICdpUG9kJzogMSB9LFxuICAgICAgJ0FsY2F0ZWwnOiB7fSxcbiAgICAgICdBcmNob3MnOiB7fSxcbiAgICAgICdBbWF6b24nOiB7ICdLaW5kbGUnOiAxLCAnS2luZGxlIEZpcmUnOiAxIH0sXG4gICAgICAnQXN1cyc6IHsgJ1RyYW5zZm9ybWVyJzogMSB9LFxuICAgICAgJ0Jhcm5lcyAmIE5vYmxlJzogeyAnTm9vayc6IDEgfSxcbiAgICAgICdCbGFja0JlcnJ5JzogeyAnUGxheUJvb2snOiAxIH0sXG4gICAgICAnR29vZ2xlJzogeyAnR29vZ2xlIFRWJzogMSwgJ05leHVzJzogMSB9LFxuICAgICAgJ0hQJzogeyAnVG91Y2hQYWQnOiAxIH0sXG4gICAgICAnSFRDJzoge30sXG4gICAgICAnSHVhd2VpJzoge30sXG4gICAgICAnTGVub3ZvJzoge30sXG4gICAgICAnTEcnOiB7fSxcbiAgICAgICdNaWNyb3NvZnQnOiB7ICdYYm94JzogMSwgJ1hib3ggT25lJzogMSB9LFxuICAgICAgJ01vdG9yb2xhJzogeyAnWG9vbSc6IDEgfSxcbiAgICAgICdOaW50ZW5kbyc6IHsgJ1dpaSBVJzogMSwgICdXaWknOiAxIH0sXG4gICAgICAnTm9raWEnOiB7ICdMdW1pYSc6IDEgfSxcbiAgICAgICdPcHBvJzoge30sXG4gICAgICAnU2Ftc3VuZyc6IHsgJ0dhbGF4eSBTJzogMSwgJ0dhbGF4eSBTMic6IDEsICdHYWxheHkgUzMnOiAxLCAnR2FsYXh5IFM0JzogMSB9LFxuICAgICAgJ1NvbnknOiB7ICdQbGF5U3RhdGlvbic6IDEsICdQbGF5U3RhdGlvbiBWaXRhJzogMSB9LFxuICAgICAgJ1hpYW9taSc6IHsgJ01pJzogMSwgJ1JlZG1pJzogMSB9XG4gICAgfSk7XG5cbiAgICAvKiBEZXRlY3RhYmxlIG9wZXJhdGluZyBzeXN0ZW1zIChvcmRlciBpcyBpbXBvcnRhbnQpLiAqL1xuICAgIHZhciBvcyA9IGdldE9TKFtcbiAgICAgICdXaW5kb3dzIFBob25lJyxcbiAgICAgICdLYWlPUycsXG4gICAgICAnQW5kcm9pZCcsXG4gICAgICAnQ2VudE9TJyxcbiAgICAgIHsgJ2xhYmVsJzogJ0Nocm9tZSBPUycsICdwYXR0ZXJuJzogJ0NyT1MnIH0sXG4gICAgICAnRGViaWFuJyxcbiAgICAgIHsgJ2xhYmVsJzogJ0RyYWdvbkZseSBCU0QnLCAncGF0dGVybic6ICdEcmFnb25GbHknIH0sXG4gICAgICAnRmVkb3JhJyxcbiAgICAgICdGcmVlQlNEJyxcbiAgICAgICdHZW50b28nLFxuICAgICAgJ0hhaWt1JyxcbiAgICAgICdLdWJ1bnR1JyxcbiAgICAgICdMaW51eCBNaW50JyxcbiAgICAgICdPcGVuQlNEJyxcbiAgICAgICdSZWQgSGF0JyxcbiAgICAgICdTdVNFJyxcbiAgICAgICdVYnVudHUnLFxuICAgICAgJ1h1YnVudHUnLFxuICAgICAgJ0N5Z3dpbicsXG4gICAgICAnU3ltYmlhbiBPUycsXG4gICAgICAnaHB3T1MnLFxuICAgICAgJ3dlYk9TICcsXG4gICAgICAnd2ViT1MnLFxuICAgICAgJ1RhYmxldCBPUycsXG4gICAgICAnVGl6ZW4nLFxuICAgICAgJ0xpbnV4JyxcbiAgICAgICdNYWMgT1MgWCcsXG4gICAgICAnTWFjaW50b3NoJyxcbiAgICAgICdNYWMnLFxuICAgICAgJ1dpbmRvd3MgOTg7JyxcbiAgICAgICdXaW5kb3dzICdcbiAgICBdKTtcblxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuICAgIC8qKlxuICAgICAqIFBpY2tzIHRoZSBsYXlvdXQgZW5naW5lIGZyb20gYW4gYXJyYXkgb2YgZ3Vlc3Nlcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gZ3Vlc3NlcyBBbiBhcnJheSBvZiBndWVzc2VzLlxuICAgICAqIEByZXR1cm5zIHtudWxsfHN0cmluZ30gVGhlIGRldGVjdGVkIGxheW91dCBlbmdpbmUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZ2V0TGF5b3V0KGd1ZXNzZXMpIHtcbiAgICAgIHJldHVybiByZWR1Y2UoZ3Vlc3NlcywgZnVuY3Rpb24ocmVzdWx0LCBndWVzcykge1xuICAgICAgICByZXR1cm4gcmVzdWx0IHx8IFJlZ0V4cCgnXFxcXGInICsgKFxuICAgICAgICAgIGd1ZXNzLnBhdHRlcm4gfHwgcXVhbGlmeShndWVzcylcbiAgICAgICAgKSArICdcXFxcYicsICdpJykuZXhlYyh1YSkgJiYgKGd1ZXNzLmxhYmVsIHx8IGd1ZXNzKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBpY2tzIHRoZSBtYW51ZmFjdHVyZXIgZnJvbSBhbiBhcnJheSBvZiBndWVzc2VzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBndWVzc2VzIEFuIG9iamVjdCBvZiBndWVzc2VzLlxuICAgICAqIEByZXR1cm5zIHtudWxsfHN0cmluZ30gVGhlIGRldGVjdGVkIG1hbnVmYWN0dXJlci5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBnZXRNYW51ZmFjdHVyZXIoZ3Vlc3Nlcykge1xuICAgICAgcmV0dXJuIHJlZHVjZShndWVzc2VzLCBmdW5jdGlvbihyZXN1bHQsIHZhbHVlLCBrZXkpIHtcbiAgICAgICAgLy8gTG9va3VwIHRoZSBtYW51ZmFjdHVyZXIgYnkgcHJvZHVjdCBvciBzY2FuIHRoZSBVQSBmb3IgdGhlIG1hbnVmYWN0dXJlci5cbiAgICAgICAgcmV0dXJuIHJlc3VsdCB8fCAoXG4gICAgICAgICAgdmFsdWVbcHJvZHVjdF0gfHxcbiAgICAgICAgICB2YWx1ZVsvXlthLXpdKyg/OiArW2Etel0rXFxiKSovaS5leGVjKHByb2R1Y3QpXSB8fFxuICAgICAgICAgIFJlZ0V4cCgnXFxcXGInICsgcXVhbGlmeShrZXkpICsgJyg/OlxcXFxifFxcXFx3KlxcXFxkKScsICdpJykuZXhlYyh1YSlcbiAgICAgICAgKSAmJiBrZXk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQaWNrcyB0aGUgYnJvd3NlciBuYW1lIGZyb20gYW4gYXJyYXkgb2YgZ3Vlc3Nlcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gZ3Vlc3NlcyBBbiBhcnJheSBvZiBndWVzc2VzLlxuICAgICAqIEByZXR1cm5zIHtudWxsfHN0cmluZ30gVGhlIGRldGVjdGVkIGJyb3dzZXIgbmFtZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBnZXROYW1lKGd1ZXNzZXMpIHtcbiAgICAgIHJldHVybiByZWR1Y2UoZ3Vlc3NlcywgZnVuY3Rpb24ocmVzdWx0LCBndWVzcykge1xuICAgICAgICByZXR1cm4gcmVzdWx0IHx8IFJlZ0V4cCgnXFxcXGInICsgKFxuICAgICAgICAgIGd1ZXNzLnBhdHRlcm4gfHwgcXVhbGlmeShndWVzcylcbiAgICAgICAgKSArICdcXFxcYicsICdpJykuZXhlYyh1YSkgJiYgKGd1ZXNzLmxhYmVsIHx8IGd1ZXNzKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBpY2tzIHRoZSBPUyBuYW1lIGZyb20gYW4gYXJyYXkgb2YgZ3Vlc3Nlcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gZ3Vlc3NlcyBBbiBhcnJheSBvZiBndWVzc2VzLlxuICAgICAqIEByZXR1cm5zIHtudWxsfHN0cmluZ30gVGhlIGRldGVjdGVkIE9TIG5hbWUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZ2V0T1MoZ3Vlc3Nlcykge1xuICAgICAgcmV0dXJuIHJlZHVjZShndWVzc2VzLCBmdW5jdGlvbihyZXN1bHQsIGd1ZXNzKSB7XG4gICAgICAgIHZhciBwYXR0ZXJuID0gZ3Vlc3MucGF0dGVybiB8fCBxdWFsaWZ5KGd1ZXNzKTtcbiAgICAgICAgaWYgKCFyZXN1bHQgJiYgKHJlc3VsdCA9XG4gICAgICAgICAgICAgIFJlZ0V4cCgnXFxcXGInICsgcGF0dGVybiArICcoPzovW1xcXFxkLl0rfFsgXFxcXHcuXSopJywgJ2knKS5leGVjKHVhKVxuICAgICAgICAgICAgKSkge1xuICAgICAgICAgIHJlc3VsdCA9IGNsZWFudXBPUyhyZXN1bHQsIHBhdHRlcm4sIGd1ZXNzLmxhYmVsIHx8IGd1ZXNzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGlja3MgdGhlIHByb2R1Y3QgbmFtZSBmcm9tIGFuIGFycmF5IG9mIGd1ZXNzZXMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGd1ZXNzZXMgQW4gYXJyYXkgb2YgZ3Vlc3Nlcy5cbiAgICAgKiBAcmV0dXJucyB7bnVsbHxzdHJpbmd9IFRoZSBkZXRlY3RlZCBwcm9kdWN0IG5hbWUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZ2V0UHJvZHVjdChndWVzc2VzKSB7XG4gICAgICByZXR1cm4gcmVkdWNlKGd1ZXNzZXMsIGZ1bmN0aW9uKHJlc3VsdCwgZ3Vlc3MpIHtcbiAgICAgICAgdmFyIHBhdHRlcm4gPSBndWVzcy5wYXR0ZXJuIHx8IHF1YWxpZnkoZ3Vlc3MpO1xuICAgICAgICBpZiAoIXJlc3VsdCAmJiAocmVzdWx0ID1cbiAgICAgICAgICAgICAgUmVnRXhwKCdcXFxcYicgKyBwYXR0ZXJuICsgJyAqXFxcXGQrWy5cXFxcd19dKicsICdpJykuZXhlYyh1YSkgfHxcbiAgICAgICAgICAgICAgUmVnRXhwKCdcXFxcYicgKyBwYXR0ZXJuICsgJyAqXFxcXHcrLVtcXFxcd10qJywgJ2knKS5leGVjKHVhKSB8fFxuICAgICAgICAgICAgICBSZWdFeHAoJ1xcXFxiJyArIHBhdHRlcm4gKyAnKD86OyAqKD86W2Etel0rW18tXSk/W2Etel0rXFxcXGQrfFteICgpOy1dKiknLCAnaScpLmV4ZWModWEpXG4gICAgICAgICAgICApKSB7XG4gICAgICAgICAgLy8gU3BsaXQgYnkgZm9yd2FyZCBzbGFzaCBhbmQgYXBwZW5kIHByb2R1Y3QgdmVyc2lvbiBpZiBuZWVkZWQuXG4gICAgICAgICAgaWYgKChyZXN1bHQgPSBTdHJpbmcoKGd1ZXNzLmxhYmVsICYmICFSZWdFeHAocGF0dGVybiwgJ2knKS50ZXN0KGd1ZXNzLmxhYmVsKSkgPyBndWVzcy5sYWJlbCA6IHJlc3VsdCkuc3BsaXQoJy8nKSlbMV0gJiYgIS9bXFxkLl0rLy50ZXN0KHJlc3VsdFswXSkpIHtcbiAgICAgICAgICAgIHJlc3VsdFswXSArPSAnICcgKyByZXN1bHRbMV07XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIENvcnJlY3QgY2hhcmFjdGVyIGNhc2UgYW5kIGNsZWFudXAgc3RyaW5nLlxuICAgICAgICAgIGd1ZXNzID0gZ3Vlc3MubGFiZWwgfHwgZ3Vlc3M7XG4gICAgICAgICAgcmVzdWx0ID0gZm9ybWF0KHJlc3VsdFswXVxuICAgICAgICAgICAgLnJlcGxhY2UoUmVnRXhwKHBhdHRlcm4sICdpJyksIGd1ZXNzKVxuICAgICAgICAgICAgLnJlcGxhY2UoUmVnRXhwKCc7ICooPzonICsgZ3Vlc3MgKyAnW18tXSk/JywgJ2knKSwgJyAnKVxuICAgICAgICAgICAgLnJlcGxhY2UoUmVnRXhwKCcoJyArIGd1ZXNzICsgJylbLV8uXT8oXFxcXHcpJywgJ2knKSwgJyQxICQyJykpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXNvbHZlcyB0aGUgdmVyc2lvbiB1c2luZyBhbiBhcnJheSBvZiBVQSBwYXR0ZXJucy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gcGF0dGVybnMgQW4gYXJyYXkgb2YgVUEgcGF0dGVybnMuXG4gICAgICogQHJldHVybnMge251bGx8c3RyaW5nfSBUaGUgZGV0ZWN0ZWQgdmVyc2lvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBnZXRWZXJzaW9uKHBhdHRlcm5zKSB7XG4gICAgICByZXR1cm4gcmVkdWNlKHBhdHRlcm5zLCBmdW5jdGlvbihyZXN1bHQsIHBhdHRlcm4pIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdCB8fCAoUmVnRXhwKHBhdHRlcm4gK1xuICAgICAgICAgICcoPzotW1xcXFxkLl0rL3woPzogZm9yIFtcXFxcdy1dKyk/WyAvLV0pKFtcXFxcZC5dK1teICgpOy9fLV0qKScsICdpJykuZXhlYyh1YSkgfHwgMClbMV0gfHwgbnVsbDtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYHBsYXRmb3JtLmRlc2NyaXB0aW9uYCB3aGVuIHRoZSBwbGF0Zm9ybSBvYmplY3QgaXMgY29lcmNlZCB0byBhIHN0cmluZy5cbiAgICAgKlxuICAgICAqIEBuYW1lIHRvU3RyaW5nXG4gICAgICogQG1lbWJlck9mIHBsYXRmb3JtXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyBgcGxhdGZvcm0uZGVzY3JpcHRpb25gIGlmIGF2YWlsYWJsZSwgZWxzZSBhbiBlbXB0eSBzdHJpbmcuXG4gICAgICovXG4gICAgZnVuY3Rpb24gdG9TdHJpbmdQbGF0Zm9ybSgpIHtcbiAgICAgIHJldHVybiB0aGlzLmRlc2NyaXB0aW9uIHx8ICcnO1xuICAgIH1cblxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuICAgIC8vIENvbnZlcnQgbGF5b3V0IHRvIGFuIGFycmF5IHNvIHdlIGNhbiBhZGQgZXh0cmEgZGV0YWlscy5cbiAgICBsYXlvdXQgJiYgKGxheW91dCA9IFtsYXlvdXRdKTtcblxuICAgIC8vIERldGVjdCBBbmRyb2lkIHByb2R1Y3RzLlxuICAgIC8vIEJyb3dzZXJzIG9uIEFuZHJvaWQgZGV2aWNlcyB0eXBpY2FsbHkgcHJvdmlkZSB0aGVpciBwcm9kdWN0IElEUyBhZnRlciBcIkFuZHJvaWQ7XCJcbiAgICAvLyB1cCB0byBcIkJ1aWxkXCIgb3IgXCIpIEFwcGxlV2ViS2l0XCIuXG4gICAgLy8gRXhhbXBsZTpcbiAgICAvLyBcIk1vemlsbGEvNS4wIChMaW51eDsgQW5kcm9pZCA4LjEuMDsgTW90byBHICg1KSBQbHVzKSBBcHBsZVdlYktpdC81MzcuMzZcbiAgICAvLyAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS83MC4wLjM1MzguODAgTW9iaWxlIFNhZmFyaS81MzcuMzZcIlxuICAgIGlmICgvXFxiQW5kcm9pZFxcYi8udGVzdChvcykgJiYgIXByb2R1Y3QgJiZcbiAgICAgICAgKGRhdGEgPSAvXFxiQW5kcm9pZFteO10qOyguKj8pKD86QnVpbGR8XFwpIEFwcGxlV2ViS2l0KVxcYi9pLmV4ZWModWEpKSkge1xuICAgICAgcHJvZHVjdCA9IHRyaW0oZGF0YVsxXSlcbiAgICAgICAgLy8gUmVwbGFjZSBhbnkgbGFuZ3VhZ2UgY29kZXMgKGVnLiBcImVuLVVTXCIpLlxuICAgICAgICAucmVwbGFjZSgvXlthLXpdezJ9LVthLXpdezJ9O1xccyovaSwgJycpXG4gICAgICAgIHx8IG51bGw7XG4gICAgfVxuICAgIC8vIERldGVjdCBwcm9kdWN0IG5hbWVzIHRoYXQgY29udGFpbiB0aGVpciBtYW51ZmFjdHVyZXIncyBuYW1lLlxuICAgIGlmIChtYW51ZmFjdHVyZXIgJiYgIXByb2R1Y3QpIHtcbiAgICAgIHByb2R1Y3QgPSBnZXRQcm9kdWN0KFttYW51ZmFjdHVyZXJdKTtcbiAgICB9IGVsc2UgaWYgKG1hbnVmYWN0dXJlciAmJiBwcm9kdWN0KSB7XG4gICAgICBwcm9kdWN0ID0gcHJvZHVjdFxuICAgICAgICAucmVwbGFjZShSZWdFeHAoJ14oJyArIHF1YWxpZnkobWFudWZhY3R1cmVyKSArICcpWy1fLlxcXFxzXScsICdpJyksIG1hbnVmYWN0dXJlciArICcgJylcbiAgICAgICAgLnJlcGxhY2UoUmVnRXhwKCdeKCcgKyBxdWFsaWZ5KG1hbnVmYWN0dXJlcikgKyAnKVstXy5dPyhcXFxcdyknLCAnaScpLCBtYW51ZmFjdHVyZXIgKyAnICQyJyk7XG4gICAgfVxuICAgIC8vIENsZWFuIHVwIEdvb2dsZSBUVi5cbiAgICBpZiAoKGRhdGEgPSAvXFxiR29vZ2xlIFRWXFxiLy5leGVjKHByb2R1Y3QpKSkge1xuICAgICAgcHJvZHVjdCA9IGRhdGFbMF07XG4gICAgfVxuICAgIC8vIERldGVjdCBzaW11bGF0b3JzLlxuICAgIGlmICgvXFxiU2ltdWxhdG9yXFxiL2kudGVzdCh1YSkpIHtcbiAgICAgIHByb2R1Y3QgPSAocHJvZHVjdCA/IHByb2R1Y3QgKyAnICcgOiAnJykgKyAnU2ltdWxhdG9yJztcbiAgICB9XG4gICAgLy8gRGV0ZWN0IE9wZXJhIE1pbmkgOCsgcnVubmluZyBpbiBUdXJiby9VbmNvbXByZXNzZWQgbW9kZSBvbiBpT1MuXG4gICAgaWYgKG5hbWUgPT0gJ09wZXJhIE1pbmknICYmIC9cXGJPUGlPU1xcYi8udGVzdCh1YSkpIHtcbiAgICAgIGRlc2NyaXB0aW9uLnB1c2goJ3J1bm5pbmcgaW4gVHVyYm8vVW5jb21wcmVzc2VkIG1vZGUnKTtcbiAgICB9XG4gICAgLy8gRGV0ZWN0IElFIE1vYmlsZSAxMS5cbiAgICBpZiAobmFtZSA9PSAnSUUnICYmIC9cXGJsaWtlIGlQaG9uZSBPU1xcYi8udGVzdCh1YSkpIHtcbiAgICAgIGRhdGEgPSBwYXJzZSh1YS5yZXBsYWNlKC9saWtlIGlQaG9uZSBPUy8sICcnKSk7XG4gICAgICBtYW51ZmFjdHVyZXIgPSBkYXRhLm1hbnVmYWN0dXJlcjtcbiAgICAgIHByb2R1Y3QgPSBkYXRhLnByb2R1Y3Q7XG4gICAgfVxuICAgIC8vIERldGVjdCBpT1MuXG4gICAgZWxzZSBpZiAoL15pUC8udGVzdChwcm9kdWN0KSkge1xuICAgICAgbmFtZSB8fCAobmFtZSA9ICdTYWZhcmknKTtcbiAgICAgIG9zID0gJ2lPUycgKyAoKGRhdGEgPSAvIE9TIChbXFxkX10rKS9pLmV4ZWModWEpKVxuICAgICAgICA/ICcgJyArIGRhdGFbMV0ucmVwbGFjZSgvXy9nLCAnLicpXG4gICAgICAgIDogJycpO1xuICAgIH1cbiAgICAvLyBEZXRlY3QgS3VidW50dS5cbiAgICBlbHNlIGlmIChuYW1lID09ICdLb25xdWVyb3InICYmIC9eTGludXhcXGIvaS50ZXN0KG9zKSkge1xuICAgICAgb3MgPSAnS3VidW50dSc7XG4gICAgfVxuICAgIC8vIERldGVjdCBBbmRyb2lkIGJyb3dzZXJzLlxuICAgIGVsc2UgaWYgKChtYW51ZmFjdHVyZXIgJiYgbWFudWZhY3R1cmVyICE9ICdHb29nbGUnICYmXG4gICAgICAgICgoL0Nocm9tZS8udGVzdChuYW1lKSAmJiAhL1xcYk1vYmlsZSBTYWZhcmlcXGIvaS50ZXN0KHVhKSkgfHwgL1xcYlZpdGFcXGIvLnRlc3QocHJvZHVjdCkpKSB8fFxuICAgICAgICAoL1xcYkFuZHJvaWRcXGIvLnRlc3Qob3MpICYmIC9eQ2hyb21lLy50ZXN0KG5hbWUpICYmIC9cXGJWZXJzaW9uXFwvL2kudGVzdCh1YSkpKSB7XG4gICAgICBuYW1lID0gJ0FuZHJvaWQgQnJvd3Nlcic7XG4gICAgICBvcyA9IC9cXGJBbmRyb2lkXFxiLy50ZXN0KG9zKSA/IG9zIDogJ0FuZHJvaWQnO1xuICAgIH1cbiAgICAvLyBEZXRlY3QgU2lsayBkZXNrdG9wL2FjY2VsZXJhdGVkIG1vZGVzLlxuICAgIGVsc2UgaWYgKG5hbWUgPT0gJ1NpbGsnKSB7XG4gICAgICBpZiAoIS9cXGJNb2JpL2kudGVzdCh1YSkpIHtcbiAgICAgICAgb3MgPSAnQW5kcm9pZCc7XG4gICAgICAgIGRlc2NyaXB0aW9uLnVuc2hpZnQoJ2Rlc2t0b3AgbW9kZScpO1xuICAgICAgfVxuICAgICAgaWYgKC9BY2NlbGVyYXRlZCAqPSAqdHJ1ZS9pLnRlc3QodWEpKSB7XG4gICAgICAgIGRlc2NyaXB0aW9uLnVuc2hpZnQoJ2FjY2VsZXJhdGVkJyk7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIERldGVjdCBVQyBCcm93c2VyIHNwZWVkIG1vZGUuXG4gICAgZWxzZSBpZiAobmFtZSA9PSAnVUMgQnJvd3NlcicgJiYgL1xcYlVDV0VCXFxiLy50ZXN0KHVhKSkge1xuICAgICAgZGVzY3JpcHRpb24ucHVzaCgnc3BlZWQgbW9kZScpO1xuICAgIH1cbiAgICAvLyBEZXRlY3QgUGFsZU1vb24gaWRlbnRpZnlpbmcgYXMgRmlyZWZveC5cbiAgICBlbHNlIGlmIChuYW1lID09ICdQYWxlTW9vbicgJiYgKGRhdGEgPSAvXFxiRmlyZWZveFxcLyhbXFxkLl0rKVxcYi8uZXhlYyh1YSkpKSB7XG4gICAgICBkZXNjcmlwdGlvbi5wdXNoKCdpZGVudGlmeWluZyBhcyBGaXJlZm94ICcgKyBkYXRhWzFdKTtcbiAgICB9XG4gICAgLy8gRGV0ZWN0IEZpcmVmb3ggT1MgYW5kIHByb2R1Y3RzIHJ1bm5pbmcgRmlyZWZveC5cbiAgICBlbHNlIGlmIChuYW1lID09ICdGaXJlZm94JyAmJiAoZGF0YSA9IC9cXGIoTW9iaWxlfFRhYmxldHxUVilcXGIvaS5leGVjKHVhKSkpIHtcbiAgICAgIG9zIHx8IChvcyA9ICdGaXJlZm94IE9TJyk7XG4gICAgICBwcm9kdWN0IHx8IChwcm9kdWN0ID0gZGF0YVsxXSk7XG4gICAgfVxuICAgIC8vIERldGVjdCBmYWxzZSBwb3NpdGl2ZXMgZm9yIEZpcmVmb3gvU2FmYXJpLlxuICAgIGVsc2UgaWYgKCFuYW1lIHx8IChkYXRhID0gIS9cXGJNaW5lZmllbGRcXGIvaS50ZXN0KHVhKSAmJiAvXFxiKD86RmlyZWZveHxTYWZhcmkpXFxiLy5leGVjKG5hbWUpKSkge1xuICAgICAgLy8gRXNjYXBlIHRoZSBgL2AgZm9yIEZpcmVmb3ggMS5cbiAgICAgIGlmIChuYW1lICYmICFwcm9kdWN0ICYmIC9bXFwvLF18XlteKF0rP1xcKS8udGVzdCh1YS5zbGljZSh1YS5pbmRleE9mKGRhdGEgKyAnLycpICsgOCkpKSB7XG4gICAgICAgIC8vIENsZWFyIG5hbWUgb2YgZmFsc2UgcG9zaXRpdmVzLlxuICAgICAgICBuYW1lID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIC8vIFJlYXNzaWduIGEgZ2VuZXJpYyBuYW1lLlxuICAgICAgaWYgKChkYXRhID0gcHJvZHVjdCB8fCBtYW51ZmFjdHVyZXIgfHwgb3MpICYmXG4gICAgICAgICAgKHByb2R1Y3QgfHwgbWFudWZhY3R1cmVyIHx8IC9cXGIoPzpBbmRyb2lkfFN5bWJpYW4gT1N8VGFibGV0IE9TfHdlYk9TKVxcYi8udGVzdChvcykpKSB7XG4gICAgICAgIG5hbWUgPSAvW2Etel0rKD86IEhhdCk/L2kuZXhlYygvXFxiQW5kcm9pZFxcYi8udGVzdChvcykgPyBvcyA6IGRhdGEpICsgJyBCcm93c2VyJztcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gQWRkIENocm9tZSB2ZXJzaW9uIHRvIGRlc2NyaXB0aW9uIGZvciBFbGVjdHJvbi5cbiAgICBlbHNlIGlmIChuYW1lID09ICdFbGVjdHJvbicgJiYgKGRhdGEgPSAoL1xcYkNocm9tZVxcLyhbXFxkLl0rKVxcYi8uZXhlYyh1YSkgfHwgMClbMV0pKSB7XG4gICAgICBkZXNjcmlwdGlvbi5wdXNoKCdDaHJvbWl1bSAnICsgZGF0YSk7XG4gICAgfVxuICAgIC8vIERldGVjdCBub24tT3BlcmEgKFByZXN0by1iYXNlZCkgdmVyc2lvbnMgKG9yZGVyIGlzIGltcG9ydGFudCkuXG4gICAgaWYgKCF2ZXJzaW9uKSB7XG4gICAgICB2ZXJzaW9uID0gZ2V0VmVyc2lvbihbXG4gICAgICAgICcoPzpDbG91ZDl8Q3JpT1N8Q3JNb3xFZGdlfEVkZ3xFZGdBfEVkZ2lPU3xGeGlPU3xIZWFkbGVzc0Nocm9tZXxJRU1vYmlsZXxJcm9ufE9wZXJhID9NaW5pfE9QaU9TfE9QUnxSYXZlbnxTYW1zdW5nQnJvd3NlcnxTaWxrKD8hL1tcXFxcZC5dKyQpfFVDQnJvd3NlcnxZYUJyb3dzZXIpJyxcbiAgICAgICAgJ1ZlcnNpb24nLFxuICAgICAgICBxdWFsaWZ5KG5hbWUpLFxuICAgICAgICAnKD86RmlyZWZveHxNaW5lZmllbGR8TmV0RnJvbnQpJ1xuICAgICAgXSk7XG4gICAgfVxuICAgIC8vIERldGVjdCBzdHViYm9ybiBsYXlvdXQgZW5naW5lcy5cbiAgICBpZiAoKGRhdGEgPVxuICAgICAgICAgIGxheW91dCA9PSAnaUNhYicgJiYgcGFyc2VGbG9hdCh2ZXJzaW9uKSA+IDMgJiYgJ1dlYktpdCcgfHxcbiAgICAgICAgICAvXFxiT3BlcmFcXGIvLnRlc3QobmFtZSkgJiYgKC9cXGJPUFJcXGIvLnRlc3QodWEpID8gJ0JsaW5rJyA6ICdQcmVzdG8nKSB8fFxuICAgICAgICAgIC9cXGIoPzpNaWRvcml8Tm9va3xTYWZhcmkpXFxiL2kudGVzdCh1YSkgJiYgIS9eKD86VHJpZGVudHxFZGdlSFRNTCkkLy50ZXN0KGxheW91dCkgJiYgJ1dlYktpdCcgfHxcbiAgICAgICAgICAhbGF5b3V0ICYmIC9cXGJNU0lFXFxiL2kudGVzdCh1YSkgJiYgKG9zID09ICdNYWMgT1MnID8gJ1Rhc21hbicgOiAnVHJpZGVudCcpIHx8XG4gICAgICAgICAgbGF5b3V0ID09ICdXZWJLaXQnICYmIC9cXGJQbGF5U3RhdGlvblxcYig/ISBWaXRhXFxiKS9pLnRlc3QobmFtZSkgJiYgJ05ldEZyb250J1xuICAgICAgICApKSB7XG4gICAgICBsYXlvdXQgPSBbZGF0YV07XG4gICAgfVxuICAgIC8vIERldGVjdCBXaW5kb3dzIFBob25lIDcgZGVza3RvcCBtb2RlLlxuICAgIGlmIChuYW1lID09ICdJRScgJiYgKGRhdGEgPSAoLzsgKig/OlhCTFdQfFp1bmVXUCkoXFxkKykvaS5leGVjKHVhKSB8fCAwKVsxXSkpIHtcbiAgICAgIG5hbWUgKz0gJyBNb2JpbGUnO1xuICAgICAgb3MgPSAnV2luZG93cyBQaG9uZSAnICsgKC9cXCskLy50ZXN0KGRhdGEpID8gZGF0YSA6IGRhdGEgKyAnLngnKTtcbiAgICAgIGRlc2NyaXB0aW9uLnVuc2hpZnQoJ2Rlc2t0b3AgbW9kZScpO1xuICAgIH1cbiAgICAvLyBEZXRlY3QgV2luZG93cyBQaG9uZSA4LnggZGVza3RvcCBtb2RlLlxuICAgIGVsc2UgaWYgKC9cXGJXUERlc2t0b3BcXGIvaS50ZXN0KHVhKSkge1xuICAgICAgbmFtZSA9ICdJRSBNb2JpbGUnO1xuICAgICAgb3MgPSAnV2luZG93cyBQaG9uZSA4LngnO1xuICAgICAgZGVzY3JpcHRpb24udW5zaGlmdCgnZGVza3RvcCBtb2RlJyk7XG4gICAgICB2ZXJzaW9uIHx8ICh2ZXJzaW9uID0gKC9cXGJydjooW1xcZC5dKykvLmV4ZWModWEpIHx8IDApWzFdKTtcbiAgICB9XG4gICAgLy8gRGV0ZWN0IElFIDExIGlkZW50aWZ5aW5nIGFzIG90aGVyIGJyb3dzZXJzLlxuICAgIGVsc2UgaWYgKG5hbWUgIT0gJ0lFJyAmJiBsYXlvdXQgPT0gJ1RyaWRlbnQnICYmIChkYXRhID0gL1xcYnJ2OihbXFxkLl0rKS8uZXhlYyh1YSkpKSB7XG4gICAgICBpZiAobmFtZSkge1xuICAgICAgICBkZXNjcmlwdGlvbi5wdXNoKCdpZGVudGlmeWluZyBhcyAnICsgbmFtZSArICh2ZXJzaW9uID8gJyAnICsgdmVyc2lvbiA6ICcnKSk7XG4gICAgICB9XG4gICAgICBuYW1lID0gJ0lFJztcbiAgICAgIHZlcnNpb24gPSBkYXRhWzFdO1xuICAgIH1cbiAgICAvLyBMZXZlcmFnZSBlbnZpcm9ubWVudCBmZWF0dXJlcy5cbiAgICBpZiAodXNlRmVhdHVyZXMpIHtcbiAgICAgIC8vIERldGVjdCBzZXJ2ZXItc2lkZSBlbnZpcm9ubWVudHMuXG4gICAgICAvLyBSaGlubyBoYXMgYSBnbG9iYWwgZnVuY3Rpb24gd2hpbGUgb3RoZXJzIGhhdmUgYSBnbG9iYWwgb2JqZWN0LlxuICAgICAgaWYgKGlzSG9zdFR5cGUoY29udGV4dCwgJ2dsb2JhbCcpKSB7XG4gICAgICAgIGlmIChqYXZhKSB7XG4gICAgICAgICAgZGF0YSA9IGphdmEubGFuZy5TeXN0ZW07XG4gICAgICAgICAgYXJjaCA9IGRhdGEuZ2V0UHJvcGVydHkoJ29zLmFyY2gnKTtcbiAgICAgICAgICBvcyA9IG9zIHx8IGRhdGEuZ2V0UHJvcGVydHkoJ29zLm5hbWUnKSArICcgJyArIGRhdGEuZ2V0UHJvcGVydHkoJ29zLnZlcnNpb24nKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmhpbm8pIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgdmVyc2lvbiA9IGNvbnRleHQucmVxdWlyZSgncmluZ28vZW5naW5lJykudmVyc2lvbi5qb2luKCcuJyk7XG4gICAgICAgICAgICBuYW1lID0gJ1JpbmdvSlMnO1xuICAgICAgICAgIH0gY2F0Y2goZSkge1xuICAgICAgICAgICAgaWYgKChkYXRhID0gY29udGV4dC5zeXN0ZW0pICYmIGRhdGEuZ2xvYmFsLnN5c3RlbSA9PSBjb250ZXh0LnN5c3RlbSkge1xuICAgICAgICAgICAgICBuYW1lID0gJ05hcndoYWwnO1xuICAgICAgICAgICAgICBvcyB8fCAob3MgPSBkYXRhWzBdLm9zIHx8IG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIW5hbWUpIHtcbiAgICAgICAgICAgIG5hbWUgPSAnUmhpbm8nO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChcbiAgICAgICAgICB0eXBlb2YgY29udGV4dC5wcm9jZXNzID09ICdvYmplY3QnICYmICFjb250ZXh0LnByb2Nlc3MuYnJvd3NlciAmJlxuICAgICAgICAgIChkYXRhID0gY29udGV4dC5wcm9jZXNzKVxuICAgICAgICApIHtcbiAgICAgICAgICBpZiAodHlwZW9mIGRhdGEudmVyc2lvbnMgPT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZGF0YS52ZXJzaW9ucy5lbGVjdHJvbiA9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICBkZXNjcmlwdGlvbi5wdXNoKCdOb2RlICcgKyBkYXRhLnZlcnNpb25zLm5vZGUpO1xuICAgICAgICAgICAgICBuYW1lID0gJ0VsZWN0cm9uJztcbiAgICAgICAgICAgICAgdmVyc2lvbiA9IGRhdGEudmVyc2lvbnMuZWxlY3Ryb247XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBkYXRhLnZlcnNpb25zLm53ID09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uLnB1c2goJ0Nocm9taXVtICcgKyB2ZXJzaW9uLCAnTm9kZSAnICsgZGF0YS52ZXJzaW9ucy5ub2RlKTtcbiAgICAgICAgICAgICAgbmFtZSA9ICdOVy5qcyc7XG4gICAgICAgICAgICAgIHZlcnNpb24gPSBkYXRhLnZlcnNpb25zLm53O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIW5hbWUpIHtcbiAgICAgICAgICAgIG5hbWUgPSAnTm9kZS5qcyc7XG4gICAgICAgICAgICBhcmNoID0gZGF0YS5hcmNoO1xuICAgICAgICAgICAgb3MgPSBkYXRhLnBsYXRmb3JtO1xuICAgICAgICAgICAgdmVyc2lvbiA9IC9bXFxkLl0rLy5leGVjKGRhdGEudmVyc2lvbik7XG4gICAgICAgICAgICB2ZXJzaW9uID0gdmVyc2lvbiA/IHZlcnNpb25bMF0gOiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gRGV0ZWN0IEFkb2JlIEFJUi5cbiAgICAgIGVsc2UgaWYgKGdldENsYXNzT2YoKGRhdGEgPSBjb250ZXh0LnJ1bnRpbWUpKSA9PSBhaXJSdW50aW1lQ2xhc3MpIHtcbiAgICAgICAgbmFtZSA9ICdBZG9iZSBBSVInO1xuICAgICAgICBvcyA9IGRhdGEuZmxhc2guc3lzdGVtLkNhcGFiaWxpdGllcy5vcztcbiAgICAgIH1cbiAgICAgIC8vIERldGVjdCBQaGFudG9tSlMuXG4gICAgICBlbHNlIGlmIChnZXRDbGFzc09mKChkYXRhID0gY29udGV4dC5waGFudG9tKSkgPT0gcGhhbnRvbUNsYXNzKSB7XG4gICAgICAgIG5hbWUgPSAnUGhhbnRvbUpTJztcbiAgICAgICAgdmVyc2lvbiA9IChkYXRhID0gZGF0YS52ZXJzaW9uIHx8IG51bGwpICYmIChkYXRhLm1ham9yICsgJy4nICsgZGF0YS5taW5vciArICcuJyArIGRhdGEucGF0Y2gpO1xuICAgICAgfVxuICAgICAgLy8gRGV0ZWN0IElFIGNvbXBhdGliaWxpdHkgbW9kZXMuXG4gICAgICBlbHNlIGlmICh0eXBlb2YgZG9jLmRvY3VtZW50TW9kZSA9PSAnbnVtYmVyJyAmJiAoZGF0YSA9IC9cXGJUcmlkZW50XFwvKFxcZCspL2kuZXhlYyh1YSkpKSB7XG4gICAgICAgIC8vIFdlJ3JlIGluIGNvbXBhdGliaWxpdHkgbW9kZSB3aGVuIHRoZSBUcmlkZW50IHZlcnNpb24gKyA0IGRvZXNuJ3RcbiAgICAgICAgLy8gZXF1YWwgdGhlIGRvY3VtZW50IG1vZGUuXG4gICAgICAgIHZlcnNpb24gPSBbdmVyc2lvbiwgZG9jLmRvY3VtZW50TW9kZV07XG4gICAgICAgIGlmICgoZGF0YSA9ICtkYXRhWzFdICsgNCkgIT0gdmVyc2lvblsxXSkge1xuICAgICAgICAgIGRlc2NyaXB0aW9uLnB1c2goJ0lFICcgKyB2ZXJzaW9uWzFdICsgJyBtb2RlJyk7XG4gICAgICAgICAgbGF5b3V0ICYmIChsYXlvdXRbMV0gPSAnJyk7XG4gICAgICAgICAgdmVyc2lvblsxXSA9IGRhdGE7XG4gICAgICAgIH1cbiAgICAgICAgdmVyc2lvbiA9IG5hbWUgPT0gJ0lFJyA/IFN0cmluZyh2ZXJzaW9uWzFdLnRvRml4ZWQoMSkpIDogdmVyc2lvblswXTtcbiAgICAgIH1cbiAgICAgIC8vIERldGVjdCBJRSAxMSBtYXNraW5nIGFzIG90aGVyIGJyb3dzZXJzLlxuICAgICAgZWxzZSBpZiAodHlwZW9mIGRvYy5kb2N1bWVudE1vZGUgPT0gJ251bWJlcicgJiYgL14oPzpDaHJvbWV8RmlyZWZveClcXGIvLnRlc3QobmFtZSkpIHtcbiAgICAgICAgZGVzY3JpcHRpb24ucHVzaCgnbWFza2luZyBhcyAnICsgbmFtZSArICcgJyArIHZlcnNpb24pO1xuICAgICAgICBuYW1lID0gJ0lFJztcbiAgICAgICAgdmVyc2lvbiA9ICcxMS4wJztcbiAgICAgICAgbGF5b3V0ID0gWydUcmlkZW50J107XG4gICAgICAgIG9zID0gJ1dpbmRvd3MnO1xuICAgICAgfVxuICAgICAgb3MgPSBvcyAmJiBmb3JtYXQob3MpO1xuICAgIH1cbiAgICAvLyBEZXRlY3QgcHJlcmVsZWFzZSBwaGFzZXMuXG4gICAgaWYgKHZlcnNpb24gJiYgKGRhdGEgPVxuICAgICAgICAgIC8oPzpbYWJdfGRwfHByZXxbYWJdXFxkK3ByZSkoPzpcXGQrXFwrPyk/JC9pLmV4ZWModmVyc2lvbikgfHxcbiAgICAgICAgICAvKD86YWxwaGF8YmV0YSkoPzogP1xcZCk/L2kuZXhlYyh1YSArICc7JyArICh1c2VGZWF0dXJlcyAmJiBuYXYuYXBwTWlub3JWZXJzaW9uKSkgfHxcbiAgICAgICAgICAvXFxiTWluZWZpZWxkXFxiL2kudGVzdCh1YSkgJiYgJ2EnXG4gICAgICAgICkpIHtcbiAgICAgIHByZXJlbGVhc2UgPSAvYi9pLnRlc3QoZGF0YSkgPyAnYmV0YScgOiAnYWxwaGEnO1xuICAgICAgdmVyc2lvbiA9IHZlcnNpb24ucmVwbGFjZShSZWdFeHAoZGF0YSArICdcXFxcKz8kJyksICcnKSArXG4gICAgICAgIChwcmVyZWxlYXNlID09ICdiZXRhJyA/IGJldGEgOiBhbHBoYSkgKyAoL1xcZCtcXCs/Ly5leGVjKGRhdGEpIHx8ICcnKTtcbiAgICB9XG4gICAgLy8gRGV0ZWN0IEZpcmVmb3ggTW9iaWxlLlxuICAgIGlmIChuYW1lID09ICdGZW5uZWMnIHx8IG5hbWUgPT0gJ0ZpcmVmb3gnICYmIC9cXGIoPzpBbmRyb2lkfEZpcmVmb3ggT1N8S2FpT1MpXFxiLy50ZXN0KG9zKSkge1xuICAgICAgbmFtZSA9ICdGaXJlZm94IE1vYmlsZSc7XG4gICAgfVxuICAgIC8vIE9ic2N1cmUgTWF4dGhvbidzIHVucmVsaWFibGUgdmVyc2lvbi5cbiAgICBlbHNlIGlmIChuYW1lID09ICdNYXh0aG9uJyAmJiB2ZXJzaW9uKSB7XG4gICAgICB2ZXJzaW9uID0gdmVyc2lvbi5yZXBsYWNlKC9cXC5bXFxkLl0rLywgJy54Jyk7XG4gICAgfVxuICAgIC8vIERldGVjdCBYYm94IDM2MCBhbmQgWGJveCBPbmUuXG4gICAgZWxzZSBpZiAoL1xcYlhib3hcXGIvaS50ZXN0KHByb2R1Y3QpKSB7XG4gICAgICBpZiAocHJvZHVjdCA9PSAnWGJveCAzNjAnKSB7XG4gICAgICAgIG9zID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIGlmIChwcm9kdWN0ID09ICdYYm94IDM2MCcgJiYgL1xcYklFTW9iaWxlXFxiLy50ZXN0KHVhKSkge1xuICAgICAgICBkZXNjcmlwdGlvbi51bnNoaWZ0KCdtb2JpbGUgbW9kZScpO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBBZGQgbW9iaWxlIHBvc3RmaXguXG4gICAgZWxzZSBpZiAoKC9eKD86Q2hyb21lfElFfE9wZXJhKSQvLnRlc3QobmFtZSkgfHwgbmFtZSAmJiAhcHJvZHVjdCAmJiAhL0Jyb3dzZXJ8TW9iaS8udGVzdChuYW1lKSkgJiZcbiAgICAgICAgKG9zID09ICdXaW5kb3dzIENFJyB8fCAvTW9iaS9pLnRlc3QodWEpKSkge1xuICAgICAgbmFtZSArPSAnIE1vYmlsZSc7XG4gICAgfVxuICAgIC8vIERldGVjdCBJRSBwbGF0Zm9ybSBwcmV2aWV3LlxuICAgIGVsc2UgaWYgKG5hbWUgPT0gJ0lFJyAmJiB1c2VGZWF0dXJlcykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgaWYgKGNvbnRleHQuZXh0ZXJuYWwgPT09IG51bGwpIHtcbiAgICAgICAgICBkZXNjcmlwdGlvbi51bnNoaWZ0KCdwbGF0Zm9ybSBwcmV2aWV3Jyk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2goZSkge1xuICAgICAgICBkZXNjcmlwdGlvbi51bnNoaWZ0KCdlbWJlZGRlZCcpO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBEZXRlY3QgQmxhY2tCZXJyeSBPUyB2ZXJzaW9uLlxuICAgIC8vIGh0dHA6Ly9kb2NzLmJsYWNrYmVycnkuY29tL2VuL2RldmVsb3BlcnMvZGVsaXZlcmFibGVzLzE4MTY5L0hUVFBfaGVhZGVyc19zZW50X2J5X0JCX0Jyb3dzZXJfMTIzNDkxMV8xMS5qc3BcbiAgICBlbHNlIGlmICgoL1xcYkJsYWNrQmVycnlcXGIvLnRlc3QocHJvZHVjdCkgfHwgL1xcYkJCMTBcXGIvLnRlc3QodWEpKSAmJiAoZGF0YSA9XG4gICAgICAgICAgKFJlZ0V4cChwcm9kdWN0LnJlcGxhY2UoLyArL2csICcgKicpICsgJy8oWy5cXFxcZF0rKScsICdpJykuZXhlYyh1YSkgfHwgMClbMV0gfHxcbiAgICAgICAgICB2ZXJzaW9uXG4gICAgICAgICkpIHtcbiAgICAgIGRhdGEgPSBbZGF0YSwgL0JCMTAvLnRlc3QodWEpXTtcbiAgICAgIG9zID0gKGRhdGFbMV0gPyAocHJvZHVjdCA9IG51bGwsIG1hbnVmYWN0dXJlciA9ICdCbGFja0JlcnJ5JykgOiAnRGV2aWNlIFNvZnR3YXJlJykgKyAnICcgKyBkYXRhWzBdO1xuICAgICAgdmVyc2lvbiA9IG51bGw7XG4gICAgfVxuICAgIC8vIERldGVjdCBPcGVyYSBpZGVudGlmeWluZy9tYXNraW5nIGl0c2VsZiBhcyBhbm90aGVyIGJyb3dzZXIuXG4gICAgLy8gaHR0cDovL3d3dy5vcGVyYS5jb20vc3VwcG9ydC9rYi92aWV3Lzg0My9cbiAgICBlbHNlIGlmICh0aGlzICE9IGZvck93biAmJiBwcm9kdWN0ICE9ICdXaWknICYmIChcbiAgICAgICAgICAodXNlRmVhdHVyZXMgJiYgb3BlcmEpIHx8XG4gICAgICAgICAgKC9PcGVyYS8udGVzdChuYW1lKSAmJiAvXFxiKD86TVNJRXxGaXJlZm94KVxcYi9pLnRlc3QodWEpKSB8fFxuICAgICAgICAgIChuYW1lID09ICdGaXJlZm94JyAmJiAvXFxiT1MgWCAoPzpcXGQrXFwuKXsyLH0vLnRlc3Qob3MpKSB8fFxuICAgICAgICAgIChuYW1lID09ICdJRScgJiYgKFxuICAgICAgICAgICAgKG9zICYmICEvXldpbi8udGVzdChvcykgJiYgdmVyc2lvbiA+IDUuNSkgfHxcbiAgICAgICAgICAgIC9cXGJXaW5kb3dzIFhQXFxiLy50ZXN0KG9zKSAmJiB2ZXJzaW9uID4gOCB8fFxuICAgICAgICAgICAgdmVyc2lvbiA9PSA4ICYmICEvXFxiVHJpZGVudFxcYi8udGVzdCh1YSlcbiAgICAgICAgICApKVxuICAgICAgICApICYmICFyZU9wZXJhLnRlc3QoKGRhdGEgPSBwYXJzZS5jYWxsKGZvck93biwgdWEucmVwbGFjZShyZU9wZXJhLCAnJykgKyAnOycpKSkgJiYgZGF0YS5uYW1lKSB7XG4gICAgICAvLyBXaGVuIFwiaWRlbnRpZnlpbmdcIiwgdGhlIFVBIGNvbnRhaW5zIGJvdGggT3BlcmEgYW5kIHRoZSBvdGhlciBicm93c2VyJ3MgbmFtZS5cbiAgICAgIGRhdGEgPSAnaW5nIGFzICcgKyBkYXRhLm5hbWUgKyAoKGRhdGEgPSBkYXRhLnZlcnNpb24pID8gJyAnICsgZGF0YSA6ICcnKTtcbiAgICAgIGlmIChyZU9wZXJhLnRlc3QobmFtZSkpIHtcbiAgICAgICAgaWYgKC9cXGJJRVxcYi8udGVzdChkYXRhKSAmJiBvcyA9PSAnTWFjIE9TJykge1xuICAgICAgICAgIG9zID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBkYXRhID0gJ2lkZW50aWZ5JyArIGRhdGE7XG4gICAgICB9XG4gICAgICAvLyBXaGVuIFwibWFza2luZ1wiLCB0aGUgVUEgY29udGFpbnMgb25seSB0aGUgb3RoZXIgYnJvd3NlcidzIG5hbWUuXG4gICAgICBlbHNlIHtcbiAgICAgICAgZGF0YSA9ICdtYXNrJyArIGRhdGE7XG4gICAgICAgIGlmIChvcGVyYUNsYXNzKSB7XG4gICAgICAgICAgbmFtZSA9IGZvcm1hdChvcGVyYUNsYXNzLnJlcGxhY2UoLyhbYS16XSkoW0EtWl0pL2csICckMSAkMicpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBuYW1lID0gJ09wZXJhJztcbiAgICAgICAgfVxuICAgICAgICBpZiAoL1xcYklFXFxiLy50ZXN0KGRhdGEpKSB7XG4gICAgICAgICAgb3MgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdXNlRmVhdHVyZXMpIHtcbiAgICAgICAgICB2ZXJzaW9uID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGF5b3V0ID0gWydQcmVzdG8nXTtcbiAgICAgIGRlc2NyaXB0aW9uLnB1c2goZGF0YSk7XG4gICAgfVxuICAgIC8vIERldGVjdCBXZWJLaXQgTmlnaHRseSBhbmQgYXBwcm94aW1hdGUgQ2hyb21lL1NhZmFyaSB2ZXJzaW9ucy5cbiAgICBpZiAoKGRhdGEgPSAoL1xcYkFwcGxlV2ViS2l0XFwvKFtcXGQuXStcXCs/KS9pLmV4ZWModWEpIHx8IDApWzFdKSkge1xuICAgICAgLy8gQ29ycmVjdCBidWlsZCBudW1iZXIgZm9yIG51bWVyaWMgY29tcGFyaXNvbi5cbiAgICAgIC8vIChlLmcuIFwiNTMyLjVcIiBiZWNvbWVzIFwiNTMyLjA1XCIpXG4gICAgICBkYXRhID0gW3BhcnNlRmxvYXQoZGF0YS5yZXBsYWNlKC9cXC4oXFxkKSQvLCAnLjAkMScpKSwgZGF0YV07XG4gICAgICAvLyBOaWdodGx5IGJ1aWxkcyBhcmUgcG9zdGZpeGVkIHdpdGggYSBcIitcIi5cbiAgICAgIGlmIChuYW1lID09ICdTYWZhcmknICYmIGRhdGFbMV0uc2xpY2UoLTEpID09ICcrJykge1xuICAgICAgICBuYW1lID0gJ1dlYktpdCBOaWdodGx5JztcbiAgICAgICAgcHJlcmVsZWFzZSA9ICdhbHBoYSc7XG4gICAgICAgIHZlcnNpb24gPSBkYXRhWzFdLnNsaWNlKDAsIC0xKTtcbiAgICAgIH1cbiAgICAgIC8vIENsZWFyIGluY29ycmVjdCBicm93c2VyIHZlcnNpb25zLlxuICAgICAgZWxzZSBpZiAodmVyc2lvbiA9PSBkYXRhWzFdIHx8XG4gICAgICAgICAgdmVyc2lvbiA9PSAoZGF0YVsyXSA9ICgvXFxiU2FmYXJpXFwvKFtcXGQuXStcXCs/KS9pLmV4ZWModWEpIHx8IDApWzFdKSkge1xuICAgICAgICB2ZXJzaW9uID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIC8vIFVzZSB0aGUgZnVsbCBDaHJvbWUgdmVyc2lvbiB3aGVuIGF2YWlsYWJsZS5cbiAgICAgIGRhdGFbMV0gPSAoL1xcYig/OkhlYWRsZXNzKT9DaHJvbWVcXC8oW1xcZC5dKykvaS5leGVjKHVhKSB8fCAwKVsxXTtcbiAgICAgIC8vIERldGVjdCBCbGluayBsYXlvdXQgZW5naW5lLlxuICAgICAgaWYgKGRhdGFbMF0gPT0gNTM3LjM2ICYmIGRhdGFbMl0gPT0gNTM3LjM2ICYmIHBhcnNlRmxvYXQoZGF0YVsxXSkgPj0gMjggJiYgbGF5b3V0ID09ICdXZWJLaXQnKSB7XG4gICAgICAgIGxheW91dCA9IFsnQmxpbmsnXTtcbiAgICAgIH1cbiAgICAgIC8vIERldGVjdCBKYXZhU2NyaXB0Q29yZS5cbiAgICAgIC8vIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNjc2ODQ3NC9ob3ctY2FuLWktZGV0ZWN0LXdoaWNoLWphdmFzY3JpcHQtZW5naW5lLXY4LW9yLWpzYy1pcy11c2VkLWF0LXJ1bnRpbWUtaW4tYW5kcm9pXG4gICAgICBpZiAoIXVzZUZlYXR1cmVzIHx8ICghbGlrZUNocm9tZSAmJiAhZGF0YVsxXSkpIHtcbiAgICAgICAgbGF5b3V0ICYmIChsYXlvdXRbMV0gPSAnbGlrZSBTYWZhcmknKTtcbiAgICAgICAgZGF0YSA9IChkYXRhID0gZGF0YVswXSwgZGF0YSA8IDQwMCA/IDEgOiBkYXRhIDwgNTAwID8gMiA6IGRhdGEgPCA1MjYgPyAzIDogZGF0YSA8IDUzMyA/IDQgOiBkYXRhIDwgNTM0ID8gJzQrJyA6IGRhdGEgPCA1MzUgPyA1IDogZGF0YSA8IDUzNyA/IDYgOiBkYXRhIDwgNTM4ID8gNyA6IGRhdGEgPCA2MDEgPyA4IDogZGF0YSA8IDYwMiA/IDkgOiBkYXRhIDwgNjA0ID8gMTAgOiBkYXRhIDwgNjA2ID8gMTEgOiBkYXRhIDwgNjA4ID8gMTIgOiAnMTInKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxheW91dCAmJiAobGF5b3V0WzFdID0gJ2xpa2UgQ2hyb21lJyk7XG4gICAgICAgIGRhdGEgPSBkYXRhWzFdIHx8IChkYXRhID0gZGF0YVswXSwgZGF0YSA8IDUzMCA/IDEgOiBkYXRhIDwgNTMyID8gMiA6IGRhdGEgPCA1MzIuMDUgPyAzIDogZGF0YSA8IDUzMyA/IDQgOiBkYXRhIDwgNTM0LjAzID8gNSA6IGRhdGEgPCA1MzQuMDcgPyA2IDogZGF0YSA8IDUzNC4xMCA/IDcgOiBkYXRhIDwgNTM0LjEzID8gOCA6IGRhdGEgPCA1MzQuMTYgPyA5IDogZGF0YSA8IDUzNC4yNCA/IDEwIDogZGF0YSA8IDUzNC4zMCA/IDExIDogZGF0YSA8IDUzNS4wMSA/IDEyIDogZGF0YSA8IDUzNS4wMiA/ICcxMysnIDogZGF0YSA8IDUzNS4wNyA/IDE1IDogZGF0YSA8IDUzNS4xMSA/IDE2IDogZGF0YSA8IDUzNS4xOSA/IDE3IDogZGF0YSA8IDUzNi4wNSA/IDE4IDogZGF0YSA8IDUzNi4xMCA/IDE5IDogZGF0YSA8IDUzNy4wMSA/IDIwIDogZGF0YSA8IDUzNy4xMSA/ICcyMSsnIDogZGF0YSA8IDUzNy4xMyA/IDIzIDogZGF0YSA8IDUzNy4xOCA/IDI0IDogZGF0YSA8IDUzNy4yNCA/IDI1IDogZGF0YSA8IDUzNy4zNiA/IDI2IDogbGF5b3V0ICE9ICdCbGluaycgPyAnMjcnIDogJzI4Jyk7XG4gICAgICB9XG4gICAgICAvLyBBZGQgdGhlIHBvc3RmaXggb2YgXCIueFwiIG9yIFwiK1wiIGZvciBhcHByb3hpbWF0ZSB2ZXJzaW9ucy5cbiAgICAgIGxheW91dCAmJiAobGF5b3V0WzFdICs9ICcgJyArIChkYXRhICs9IHR5cGVvZiBkYXRhID09ICdudW1iZXInID8gJy54JyA6IC9bLitdLy50ZXN0KGRhdGEpID8gJycgOiAnKycpKTtcbiAgICAgIC8vIE9ic2N1cmUgdmVyc2lvbiBmb3Igc29tZSBTYWZhcmkgMS0yIHJlbGVhc2VzLlxuICAgICAgaWYgKG5hbWUgPT0gJ1NhZmFyaScgJiYgKCF2ZXJzaW9uIHx8IHBhcnNlSW50KHZlcnNpb24pID4gNDUpKSB7XG4gICAgICAgIHZlcnNpb24gPSBkYXRhO1xuICAgICAgfSBlbHNlIGlmIChuYW1lID09ICdDaHJvbWUnICYmIC9cXGJIZWFkbGVzc0Nocm9tZS9pLnRlc3QodWEpKSB7XG4gICAgICAgIGRlc2NyaXB0aW9uLnVuc2hpZnQoJ2hlYWRsZXNzJyk7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIERldGVjdCBPcGVyYSBkZXNrdG9wIG1vZGVzLlxuICAgIGlmIChuYW1lID09ICdPcGVyYScgJiYgIChkYXRhID0gL1xcYnpib3Z8enZhdiQvLmV4ZWMob3MpKSkge1xuICAgICAgbmFtZSArPSAnICc7XG4gICAgICBkZXNjcmlwdGlvbi51bnNoaWZ0KCdkZXNrdG9wIG1vZGUnKTtcbiAgICAgIGlmIChkYXRhID09ICd6dmF2Jykge1xuICAgICAgICBuYW1lICs9ICdNaW5pJztcbiAgICAgICAgdmVyc2lvbiA9IG51bGw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuYW1lICs9ICdNb2JpbGUnO1xuICAgICAgfVxuICAgICAgb3MgPSBvcy5yZXBsYWNlKFJlZ0V4cCgnIConICsgZGF0YSArICckJyksICcnKTtcbiAgICB9XG4gICAgLy8gRGV0ZWN0IENocm9tZSBkZXNrdG9wIG1vZGUuXG4gICAgZWxzZSBpZiAobmFtZSA9PSAnU2FmYXJpJyAmJiAvXFxiQ2hyb21lXFxiLy5leGVjKGxheW91dCAmJiBsYXlvdXRbMV0pKSB7XG4gICAgICBkZXNjcmlwdGlvbi51bnNoaWZ0KCdkZXNrdG9wIG1vZGUnKTtcbiAgICAgIG5hbWUgPSAnQ2hyb21lIE1vYmlsZSc7XG4gICAgICB2ZXJzaW9uID0gbnVsbDtcblxuICAgICAgaWYgKC9cXGJPUyBYXFxiLy50ZXN0KG9zKSkge1xuICAgICAgICBtYW51ZmFjdHVyZXIgPSAnQXBwbGUnO1xuICAgICAgICBvcyA9ICdpT1MgNC4zKyc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvcyA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIE5ld2VyIHZlcnNpb25zIG9mIFNSV2FyZSBJcm9uIHVzZXMgdGhlIENocm9tZSB0YWcgdG8gaW5kaWNhdGUgaXRzIHZlcnNpb24gbnVtYmVyLlxuICAgIGVsc2UgaWYgKC9cXGJTUldhcmUgSXJvblxcYi8udGVzdChuYW1lKSAmJiAhdmVyc2lvbikge1xuICAgICAgdmVyc2lvbiA9IGdldFZlcnNpb24oJ0Nocm9tZScpO1xuICAgIH1cbiAgICAvLyBTdHJpcCBpbmNvcnJlY3QgT1MgdmVyc2lvbnMuXG4gICAgaWYgKHZlcnNpb24gJiYgdmVyc2lvbi5pbmRleE9mKChkYXRhID0gL1tcXGQuXSskLy5leGVjKG9zKSkpID09IDAgJiZcbiAgICAgICAgdWEuaW5kZXhPZignLycgKyBkYXRhICsgJy0nKSA+IC0xKSB7XG4gICAgICBvcyA9IHRyaW0ob3MucmVwbGFjZShkYXRhLCAnJykpO1xuICAgIH1cbiAgICAvLyBFbnN1cmUgT1MgZG9lcyBub3QgaW5jbHVkZSB0aGUgYnJvd3NlciBuYW1lLlxuICAgIGlmIChvcyAmJiBvcy5pbmRleE9mKG5hbWUpICE9IC0xICYmICFSZWdFeHAobmFtZSArICcgT1MnKS50ZXN0KG9zKSkge1xuICAgICAgb3MgPSBvcy5yZXBsYWNlKFJlZ0V4cCgnIConICsgcXVhbGlmeShuYW1lKSArICcgKicpLCAnJyk7XG4gICAgfVxuICAgIC8vIEFkZCBsYXlvdXQgZW5naW5lLlxuICAgIGlmIChsYXlvdXQgJiYgIS9cXGIoPzpBdmFudHxOb29rKVxcYi8udGVzdChuYW1lKSAmJiAoXG4gICAgICAgIC9Ccm93c2VyfEx1bmFzY2FwZXxNYXh0aG9uLy50ZXN0KG5hbWUpIHx8XG4gICAgICAgIG5hbWUgIT0gJ1NhZmFyaScgJiYgL15pT1MvLnRlc3Qob3MpICYmIC9cXGJTYWZhcmlcXGIvLnRlc3QobGF5b3V0WzFdKSB8fFxuICAgICAgICAvXig/OkFkb2JlfEFyb3JhfEJyZWFjaHxNaWRvcml8T3BlcmF8UGhhbnRvbXxSZWtvbnF8Um9ja3xTYW1zdW5nIEludGVybmV0fFNsZWlwbmlyfFNSV2FyZSBJcm9ufFZpdmFsZGl8V2ViKS8udGVzdChuYW1lKSAmJiBsYXlvdXRbMV0pKSB7XG4gICAgICAvLyBEb24ndCBhZGQgbGF5b3V0IGRldGFpbHMgdG8gZGVzY3JpcHRpb24gaWYgdGhleSBhcmUgZmFsc2V5LlxuICAgICAgKGRhdGEgPSBsYXlvdXRbbGF5b3V0Lmxlbmd0aCAtIDFdKSAmJiBkZXNjcmlwdGlvbi5wdXNoKGRhdGEpO1xuICAgIH1cbiAgICAvLyBDb21iaW5lIGNvbnRleHR1YWwgaW5mb3JtYXRpb24uXG4gICAgaWYgKGRlc2NyaXB0aW9uLmxlbmd0aCkge1xuICAgICAgZGVzY3JpcHRpb24gPSBbJygnICsgZGVzY3JpcHRpb24uam9pbignOyAnKSArICcpJ107XG4gICAgfVxuICAgIC8vIEFwcGVuZCBtYW51ZmFjdHVyZXIgdG8gZGVzY3JpcHRpb24uXG4gICAgaWYgKG1hbnVmYWN0dXJlciAmJiBwcm9kdWN0ICYmIHByb2R1Y3QuaW5kZXhPZihtYW51ZmFjdHVyZXIpIDwgMCkge1xuICAgICAgZGVzY3JpcHRpb24ucHVzaCgnb24gJyArIG1hbnVmYWN0dXJlcik7XG4gICAgfVxuICAgIC8vIEFwcGVuZCBwcm9kdWN0IHRvIGRlc2NyaXB0aW9uLlxuICAgIGlmIChwcm9kdWN0KSB7XG4gICAgICBkZXNjcmlwdGlvbi5wdXNoKCgvXm9uIC8udGVzdChkZXNjcmlwdGlvbltkZXNjcmlwdGlvbi5sZW5ndGggLSAxXSkgPyAnJyA6ICdvbiAnKSArIHByb2R1Y3QpO1xuICAgIH1cbiAgICAvLyBQYXJzZSB0aGUgT1MgaW50byBhbiBvYmplY3QuXG4gICAgaWYgKG9zKSB7XG4gICAgICBkYXRhID0gLyAoW1xcZC4rXSspJC8uZXhlYyhvcyk7XG4gICAgICBpc1NwZWNpYWxDYXNlZE9TID0gZGF0YSAmJiBvcy5jaGFyQXQob3MubGVuZ3RoIC0gZGF0YVswXS5sZW5ndGggLSAxKSA9PSAnLyc7XG4gICAgICBvcyA9IHtcbiAgICAgICAgJ2FyY2hpdGVjdHVyZSc6IDMyLFxuICAgICAgICAnZmFtaWx5JzogKGRhdGEgJiYgIWlzU3BlY2lhbENhc2VkT1MpID8gb3MucmVwbGFjZShkYXRhWzBdLCAnJykgOiBvcyxcbiAgICAgICAgJ3ZlcnNpb24nOiBkYXRhID8gZGF0YVsxXSA6IG51bGwsXG4gICAgICAgICd0b1N0cmluZyc6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHZhciB2ZXJzaW9uID0gdGhpcy52ZXJzaW9uO1xuICAgICAgICAgIHJldHVybiB0aGlzLmZhbWlseSArICgodmVyc2lvbiAmJiAhaXNTcGVjaWFsQ2FzZWRPUykgPyAnICcgKyB2ZXJzaW9uIDogJycpICsgKHRoaXMuYXJjaGl0ZWN0dXJlID09IDY0ID8gJyA2NC1iaXQnIDogJycpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgICAvLyBBZGQgYnJvd3Nlci9PUyBhcmNoaXRlY3R1cmUuXG4gICAgaWYgKChkYXRhID0gL1xcYig/OkFNRHxJQXxXaW58V09XfHg4Nl98eCk2NFxcYi9pLmV4ZWMoYXJjaCkpICYmICEvXFxiaTY4NlxcYi9pLnRlc3QoYXJjaCkpIHtcbiAgICAgIGlmIChvcykge1xuICAgICAgICBvcy5hcmNoaXRlY3R1cmUgPSA2NDtcbiAgICAgICAgb3MuZmFtaWx5ID0gb3MuZmFtaWx5LnJlcGxhY2UoUmVnRXhwKCcgKicgKyBkYXRhKSwgJycpO1xuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICAgIG5hbWUgJiYgKC9cXGJXT1c2NFxcYi9pLnRlc3QodWEpIHx8XG4gICAgICAgICAgKHVzZUZlYXR1cmVzICYmIC9cXHcoPzo4NnwzMikkLy50ZXN0KG5hdi5jcHVDbGFzcyB8fCBuYXYucGxhdGZvcm0pICYmICEvXFxiV2luNjQ7IHg2NFxcYi9pLnRlc3QodWEpKSlcbiAgICAgICkge1xuICAgICAgICBkZXNjcmlwdGlvbi51bnNoaWZ0KCczMi1iaXQnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gQ2hyb21lIDM5IGFuZCBhYm92ZSBvbiBPUyBYIGlzIGFsd2F5cyA2NC1iaXQuXG4gICAgZWxzZSBpZiAoXG4gICAgICAgIG9zICYmIC9eT1MgWC8udGVzdChvcy5mYW1pbHkpICYmXG4gICAgICAgIG5hbWUgPT0gJ0Nocm9tZScgJiYgcGFyc2VGbG9hdCh2ZXJzaW9uKSA+PSAzOVxuICAgICkge1xuICAgICAgb3MuYXJjaGl0ZWN0dXJlID0gNjQ7XG4gICAgfVxuXG4gICAgdWEgfHwgKHVhID0gbnVsbCk7XG5cbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgICAvKipcbiAgICAgKiBUaGUgcGxhdGZvcm0gb2JqZWN0LlxuICAgICAqXG4gICAgICogQG5hbWUgcGxhdGZvcm1cbiAgICAgKiBAdHlwZSBPYmplY3RcbiAgICAgKi9cbiAgICB2YXIgcGxhdGZvcm0gPSB7fTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBwbGF0Zm9ybSBkZXNjcmlwdGlvbi5cbiAgICAgKlxuICAgICAqIEBtZW1iZXJPZiBwbGF0Zm9ybVxuICAgICAqIEB0eXBlIHN0cmluZ3xudWxsXG4gICAgICovXG4gICAgcGxhdGZvcm0uZGVzY3JpcHRpb24gPSB1YTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBuYW1lIG9mIHRoZSBicm93c2VyJ3MgbGF5b3V0IGVuZ2luZS5cbiAgICAgKlxuICAgICAqIFRoZSBsaXN0IG9mIGNvbW1vbiBsYXlvdXQgZW5naW5lcyBpbmNsdWRlOlxuICAgICAqIFwiQmxpbmtcIiwgXCJFZGdlSFRNTFwiLCBcIkdlY2tvXCIsIFwiVHJpZGVudFwiIGFuZCBcIldlYktpdFwiXG4gICAgICpcbiAgICAgKiBAbWVtYmVyT2YgcGxhdGZvcm1cbiAgICAgKiBAdHlwZSBzdHJpbmd8bnVsbFxuICAgICAqL1xuICAgIHBsYXRmb3JtLmxheW91dCA9IGxheW91dCAmJiBsYXlvdXRbMF07XG5cbiAgICAvKipcbiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgcHJvZHVjdCdzIG1hbnVmYWN0dXJlci5cbiAgICAgKlxuICAgICAqIFRoZSBsaXN0IG9mIG1hbnVmYWN0dXJlcnMgaW5jbHVkZTpcbiAgICAgKiBcIkFwcGxlXCIsIFwiQXJjaG9zXCIsIFwiQW1hem9uXCIsIFwiQXN1c1wiLCBcIkJhcm5lcyAmIE5vYmxlXCIsIFwiQmxhY2tCZXJyeVwiLFxuICAgICAqIFwiR29vZ2xlXCIsIFwiSFBcIiwgXCJIVENcIiwgXCJMR1wiLCBcIk1pY3Jvc29mdFwiLCBcIk1vdG9yb2xhXCIsIFwiTmludGVuZG9cIixcbiAgICAgKiBcIk5va2lhXCIsIFwiU2Ftc3VuZ1wiIGFuZCBcIlNvbnlcIlxuICAgICAqXG4gICAgICogQG1lbWJlck9mIHBsYXRmb3JtXG4gICAgICogQHR5cGUgc3RyaW5nfG51bGxcbiAgICAgKi9cbiAgICBwbGF0Zm9ybS5tYW51ZmFjdHVyZXIgPSBtYW51ZmFjdHVyZXI7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgYnJvd3Nlci9lbnZpcm9ubWVudC5cbiAgICAgKlxuICAgICAqIFRoZSBsaXN0IG9mIGNvbW1vbiBicm93c2VyIG5hbWVzIGluY2x1ZGU6XG4gICAgICogXCJDaHJvbWVcIiwgXCJFbGVjdHJvblwiLCBcIkZpcmVmb3hcIiwgXCJGaXJlZm94IGZvciBpT1NcIiwgXCJJRVwiLFxuICAgICAqIFwiTWljcm9zb2Z0IEVkZ2VcIiwgXCJQaGFudG9tSlNcIiwgXCJTYWZhcmlcIiwgXCJTZWFNb25rZXlcIiwgXCJTaWxrXCIsXG4gICAgICogXCJPcGVyYSBNaW5pXCIgYW5kIFwiT3BlcmFcIlxuICAgICAqXG4gICAgICogTW9iaWxlIHZlcnNpb25zIG9mIHNvbWUgYnJvd3NlcnMgaGF2ZSBcIk1vYmlsZVwiIGFwcGVuZGVkIHRvIHRoZWlyIG5hbWU6XG4gICAgICogZWcuIFwiQ2hyb21lIE1vYmlsZVwiLCBcIkZpcmVmb3ggTW9iaWxlXCIsIFwiSUUgTW9iaWxlXCIgYW5kIFwiT3BlcmEgTW9iaWxlXCJcbiAgICAgKlxuICAgICAqIEBtZW1iZXJPZiBwbGF0Zm9ybVxuICAgICAqIEB0eXBlIHN0cmluZ3xudWxsXG4gICAgICovXG4gICAgcGxhdGZvcm0ubmFtZSA9IG5hbWU7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYWxwaGEvYmV0YSByZWxlYXNlIGluZGljYXRvci5cbiAgICAgKlxuICAgICAqIEBtZW1iZXJPZiBwbGF0Zm9ybVxuICAgICAqIEB0eXBlIHN0cmluZ3xudWxsXG4gICAgICovXG4gICAgcGxhdGZvcm0ucHJlcmVsZWFzZSA9IHByZXJlbGVhc2U7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgcHJvZHVjdCBob3N0aW5nIHRoZSBicm93c2VyLlxuICAgICAqXG4gICAgICogVGhlIGxpc3Qgb2YgY29tbW9uIHByb2R1Y3RzIGluY2x1ZGU6XG4gICAgICpcbiAgICAgKiBcIkJsYWNrQmVycnlcIiwgXCJHYWxheHkgUzRcIiwgXCJMdW1pYVwiLCBcImlQYWRcIiwgXCJpUG9kXCIsIFwiaVBob25lXCIsIFwiS2luZGxlXCIsXG4gICAgICogXCJLaW5kbGUgRmlyZVwiLCBcIk5leHVzXCIsIFwiTm9va1wiLCBcIlBsYXlCb29rXCIsIFwiVG91Y2hQYWRcIiBhbmQgXCJUcmFuc2Zvcm1lclwiXG4gICAgICpcbiAgICAgKiBAbWVtYmVyT2YgcGxhdGZvcm1cbiAgICAgKiBAdHlwZSBzdHJpbmd8bnVsbFxuICAgICAqL1xuICAgIHBsYXRmb3JtLnByb2R1Y3QgPSBwcm9kdWN0O1xuXG4gICAgLyoqXG4gICAgICogVGhlIGJyb3dzZXIncyB1c2VyIGFnZW50IHN0cmluZy5cbiAgICAgKlxuICAgICAqIEBtZW1iZXJPZiBwbGF0Zm9ybVxuICAgICAqIEB0eXBlIHN0cmluZ3xudWxsXG4gICAgICovXG4gICAgcGxhdGZvcm0udWEgPSB1YTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBicm93c2VyL2Vudmlyb25tZW50IHZlcnNpb24uXG4gICAgICpcbiAgICAgKiBAbWVtYmVyT2YgcGxhdGZvcm1cbiAgICAgKiBAdHlwZSBzdHJpbmd8bnVsbFxuICAgICAqL1xuICAgIHBsYXRmb3JtLnZlcnNpb24gPSBuYW1lICYmIHZlcnNpb247XG5cbiAgICAvKipcbiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgb3BlcmF0aW5nIHN5c3RlbS5cbiAgICAgKlxuICAgICAqIEBtZW1iZXJPZiBwbGF0Zm9ybVxuICAgICAqIEB0eXBlIE9iamVjdFxuICAgICAqL1xuICAgIHBsYXRmb3JtLm9zID0gb3MgfHwge1xuXG4gICAgICAvKipcbiAgICAgICAqIFRoZSBDUFUgYXJjaGl0ZWN0dXJlIHRoZSBPUyBpcyBidWlsdCBmb3IuXG4gICAgICAgKlxuICAgICAgICogQG1lbWJlck9mIHBsYXRmb3JtLm9zXG4gICAgICAgKiBAdHlwZSBudW1iZXJ8bnVsbFxuICAgICAgICovXG4gICAgICAnYXJjaGl0ZWN0dXJlJzogbnVsbCxcblxuICAgICAgLyoqXG4gICAgICAgKiBUaGUgZmFtaWx5IG9mIHRoZSBPUy5cbiAgICAgICAqXG4gICAgICAgKiBDb21tb24gdmFsdWVzIGluY2x1ZGU6XG4gICAgICAgKiBcIldpbmRvd3NcIiwgXCJXaW5kb3dzIFNlcnZlciAyMDA4IFIyIC8gN1wiLCBcIldpbmRvd3MgU2VydmVyIDIwMDggLyBWaXN0YVwiLFxuICAgICAgICogXCJXaW5kb3dzIFhQXCIsIFwiT1MgWFwiLCBcIkxpbnV4XCIsIFwiVWJ1bnR1XCIsIFwiRGViaWFuXCIsIFwiRmVkb3JhXCIsIFwiUmVkIEhhdFwiLFxuICAgICAgICogXCJTdVNFXCIsIFwiQW5kcm9pZFwiLCBcImlPU1wiIGFuZCBcIldpbmRvd3MgUGhvbmVcIlxuICAgICAgICpcbiAgICAgICAqIEBtZW1iZXJPZiBwbGF0Zm9ybS5vc1xuICAgICAgICogQHR5cGUgc3RyaW5nfG51bGxcbiAgICAgICAqL1xuICAgICAgJ2ZhbWlseSc6IG51bGwsXG5cbiAgICAgIC8qKlxuICAgICAgICogVGhlIHZlcnNpb24gb2YgdGhlIE9TLlxuICAgICAgICpcbiAgICAgICAqIEBtZW1iZXJPZiBwbGF0Zm9ybS5vc1xuICAgICAgICogQHR5cGUgc3RyaW5nfG51bGxcbiAgICAgICAqL1xuICAgICAgJ3ZlcnNpb24nOiBudWxsLFxuXG4gICAgICAvKipcbiAgICAgICAqIFJldHVybnMgdGhlIE9TIHN0cmluZy5cbiAgICAgICAqXG4gICAgICAgKiBAbWVtYmVyT2YgcGxhdGZvcm0ub3NcbiAgICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBPUyBzdHJpbmcuXG4gICAgICAgKi9cbiAgICAgICd0b1N0cmluZyc6IGZ1bmN0aW9uKCkgeyByZXR1cm4gJ251bGwnOyB9XG4gICAgfTtcblxuICAgIHBsYXRmb3JtLnBhcnNlID0gcGFyc2U7XG4gICAgcGxhdGZvcm0udG9TdHJpbmcgPSB0b1N0cmluZ1BsYXRmb3JtO1xuXG4gICAgaWYgKHBsYXRmb3JtLnZlcnNpb24pIHtcbiAgICAgIGRlc2NyaXB0aW9uLnVuc2hpZnQodmVyc2lvbik7XG4gICAgfVxuICAgIGlmIChwbGF0Zm9ybS5uYW1lKSB7XG4gICAgICBkZXNjcmlwdGlvbi51bnNoaWZ0KG5hbWUpO1xuICAgIH1cbiAgICBpZiAob3MgJiYgbmFtZSAmJiAhKG9zID09IFN0cmluZyhvcykuc3BsaXQoJyAnKVswXSAmJiAob3MgPT0gbmFtZS5zcGxpdCgnICcpWzBdIHx8IHByb2R1Y3QpKSkge1xuICAgICAgZGVzY3JpcHRpb24ucHVzaChwcm9kdWN0ID8gJygnICsgb3MgKyAnKScgOiAnb24gJyArIG9zKTtcbiAgICB9XG4gICAgaWYgKGRlc2NyaXB0aW9uLmxlbmd0aCkge1xuICAgICAgcGxhdGZvcm0uZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbi5qb2luKCcgJyk7XG4gICAgfVxuICAgIHJldHVybiBwbGF0Zm9ybTtcbiAgfVxuXG4gIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gIC8vIEV4cG9ydCBwbGF0Zm9ybS5cbiAgdmFyIHBsYXRmb3JtID0gcGFyc2UoKTtcblxuICAvLyBTb21lIEFNRCBidWlsZCBvcHRpbWl6ZXJzLCBsaWtlIHIuanMsIGNoZWNrIGZvciBjb25kaXRpb24gcGF0dGVybnMgbGlrZSB0aGUgZm9sbG93aW5nOlxuICBpZiAodHlwZW9mIGRlZmluZSA9PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBkZWZpbmUuYW1kID09ICdvYmplY3QnICYmIGRlZmluZS5hbWQpIHtcbiAgICAvLyBFeHBvc2UgcGxhdGZvcm0gb24gdGhlIGdsb2JhbCBvYmplY3QgdG8gcHJldmVudCBlcnJvcnMgd2hlbiBwbGF0Zm9ybSBpc1xuICAgIC8vIGxvYWRlZCBieSBhIHNjcmlwdCB0YWcgaW4gdGhlIHByZXNlbmNlIG9mIGFuIEFNRCBsb2FkZXIuXG4gICAgLy8gU2VlIGh0dHA6Ly9yZXF1aXJlanMub3JnL2RvY3MvZXJyb3JzLmh0bWwjbWlzbWF0Y2ggZm9yIG1vcmUgZGV0YWlscy5cbiAgICByb290LnBsYXRmb3JtID0gcGxhdGZvcm07XG5cbiAgICAvLyBEZWZpbmUgYXMgYW4gYW5vbnltb3VzIG1vZHVsZSBzbyBwbGF0Zm9ybSBjYW4gYmUgYWxpYXNlZCB0aHJvdWdoIHBhdGggbWFwcGluZy5cbiAgICBkZWZpbmUoZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gcGxhdGZvcm07XG4gICAgfSk7XG4gIH1cbiAgLy8gQ2hlY2sgZm9yIGBleHBvcnRzYCBhZnRlciBgZGVmaW5lYCBpbiBjYXNlIGEgYnVpbGQgb3B0aW1pemVyIGFkZHMgYW4gYGV4cG9ydHNgIG9iamVjdC5cbiAgZWxzZSBpZiAoZnJlZUV4cG9ydHMgJiYgZnJlZU1vZHVsZSkge1xuICAgIC8vIEV4cG9ydCBmb3IgQ29tbW9uSlMgc3VwcG9ydC5cbiAgICBmb3JPd24ocGxhdGZvcm0sIGZ1bmN0aW9uKHZhbHVlLCBrZXkpIHtcbiAgICAgIGZyZWVFeHBvcnRzW2tleV0gPSB2YWx1ZTtcbiAgICB9KTtcbiAgfVxuICBlbHNlIHtcbiAgICAvLyBFeHBvcnQgdG8gdGhlIGdsb2JhbCBvYmplY3QuXG4gICAgcm9vdC5wbGF0Zm9ybSA9IHBsYXRmb3JtO1xuICB9XG59LmNhbGwodGhpcykpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/platform/platform.js\n"); + +/***/ }), + +/***/ "./node_modules/process/browser.js": +/*!*****************************************!*\ + !*** ./node_modules/process/browser.js ***! + \*****************************************/ +/***/ (function(module) { + +eval("// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcHJvY2Vzcy9icm93c2VyLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0Isc0JBQXNCO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxzQ0FBc0M7O0FBRXRDO0FBQ0E7QUFDQTs7QUFFQSw0QkFBNEI7QUFDNUI7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9wcm9jZXNzL2Jyb3dzZXIuanM/NWNiMyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzaGltIGZvciB1c2luZyBwcm9jZXNzIGluIGJyb3dzZXJcbnZhciBwcm9jZXNzID0gbW9kdWxlLmV4cG9ydHMgPSB7fTtcblxuLy8gY2FjaGVkIGZyb20gd2hhdGV2ZXIgZ2xvYmFsIGlzIHByZXNlbnQgc28gdGhhdCB0ZXN0IHJ1bm5lcnMgdGhhdCBzdHViIGl0XG4vLyBkb24ndCBicmVhayB0aGluZ3MuICBCdXQgd2UgbmVlZCB0byB3cmFwIGl0IGluIGEgdHJ5IGNhdGNoIGluIGNhc2UgaXQgaXNcbi8vIHdyYXBwZWQgaW4gc3RyaWN0IG1vZGUgY29kZSB3aGljaCBkb2Vzbid0IGRlZmluZSBhbnkgZ2xvYmFscy4gIEl0J3MgaW5zaWRlIGFcbi8vIGZ1bmN0aW9uIGJlY2F1c2UgdHJ5L2NhdGNoZXMgZGVvcHRpbWl6ZSBpbiBjZXJ0YWluIGVuZ2luZXMuXG5cbnZhciBjYWNoZWRTZXRUaW1lb3V0O1xudmFyIGNhY2hlZENsZWFyVGltZW91dDtcblxuZnVuY3Rpb24gZGVmYXVsdFNldFRpbW91dCgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3NldFRpbWVvdXQgaGFzIG5vdCBiZWVuIGRlZmluZWQnKTtcbn1cbmZ1bmN0aW9uIGRlZmF1bHRDbGVhclRpbWVvdXQgKCkge1xuICAgIHRocm93IG5ldyBFcnJvcignY2xlYXJUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkJyk7XG59XG4oZnVuY3Rpb24gKCkge1xuICAgIHRyeSB7XG4gICAgICAgIGlmICh0eXBlb2Ygc2V0VGltZW91dCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgY2FjaGVkU2V0VGltZW91dCA9IHNldFRpbWVvdXQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjYWNoZWRTZXRUaW1lb3V0ID0gZGVmYXVsdFNldFRpbW91dDtcbiAgICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY2FjaGVkU2V0VGltZW91dCA9IGRlZmF1bHRTZXRUaW1vdXQ7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIGlmICh0eXBlb2YgY2xlYXJUaW1lb3V0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBjYWNoZWRDbGVhclRpbWVvdXQgPSBjbGVhclRpbWVvdXQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjYWNoZWRDbGVhclRpbWVvdXQgPSBkZWZhdWx0Q2xlYXJUaW1lb3V0O1xuICAgICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjYWNoZWRDbGVhclRpbWVvdXQgPSBkZWZhdWx0Q2xlYXJUaW1lb3V0O1xuICAgIH1cbn0gKCkpXG5mdW5jdGlvbiBydW5UaW1lb3V0KGZ1bikge1xuICAgIGlmIChjYWNoZWRTZXRUaW1lb3V0ID09PSBzZXRUaW1lb3V0KSB7XG4gICAgICAgIC8vbm9ybWFsIGVudmlyb21lbnRzIGluIHNhbmUgc2l0dWF0aW9uc1xuICAgICAgICByZXR1cm4gc2V0VGltZW91dChmdW4sIDApO1xuICAgIH1cbiAgICAvLyBpZiBzZXRUaW1lb3V0IHdhc24ndCBhdmFpbGFibGUgYnV0IHdhcyBsYXR0ZXIgZGVmaW5lZFxuICAgIGlmICgoY2FjaGVkU2V0VGltZW91dCA9PT0gZGVmYXVsdFNldFRpbW91dCB8fCAhY2FjaGVkU2V0VGltZW91dCkgJiYgc2V0VGltZW91dCkge1xuICAgICAgICBjYWNoZWRTZXRUaW1lb3V0ID0gc2V0VGltZW91dDtcbiAgICAgICAgcmV0dXJuIHNldFRpbWVvdXQoZnVuLCAwKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgLy8gd2hlbiB3aGVuIHNvbWVib2R5IGhhcyBzY3Jld2VkIHdpdGggc2V0VGltZW91dCBidXQgbm8gSS5FLiBtYWRkbmVzc1xuICAgICAgICByZXR1cm4gY2FjaGVkU2V0VGltZW91dChmdW4sIDApO1xuICAgIH0gY2F0Y2goZSl7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBXaGVuIHdlIGFyZSBpbiBJLkUuIGJ1dCB0aGUgc2NyaXB0IGhhcyBiZWVuIGV2YWxlZCBzbyBJLkUuIGRvZXNuJ3QgdHJ1c3QgdGhlIGdsb2JhbCBvYmplY3Qgd2hlbiBjYWxsZWQgbm9ybWFsbHlcbiAgICAgICAgICAgIHJldHVybiBjYWNoZWRTZXRUaW1lb3V0LmNhbGwobnVsbCwgZnVuLCAwKTtcbiAgICAgICAgfSBjYXRjaChlKXtcbiAgICAgICAgICAgIC8vIHNhbWUgYXMgYWJvdmUgYnV0IHdoZW4gaXQncyBhIHZlcnNpb24gb2YgSS5FLiB0aGF0IG11c3QgaGF2ZSB0aGUgZ2xvYmFsIG9iamVjdCBmb3IgJ3RoaXMnLCBob3BmdWxseSBvdXIgY29udGV4dCBjb3JyZWN0IG90aGVyd2lzZSBpdCB3aWxsIHRocm93IGEgZ2xvYmFsIGVycm9yXG4gICAgICAgICAgICByZXR1cm4gY2FjaGVkU2V0VGltZW91dC5jYWxsKHRoaXMsIGZ1biwgMCk7XG4gICAgICAgIH1cbiAgICB9XG5cblxufVxuZnVuY3Rpb24gcnVuQ2xlYXJUaW1lb3V0KG1hcmtlcikge1xuICAgIGlmIChjYWNoZWRDbGVhclRpbWVvdXQgPT09IGNsZWFyVGltZW91dCkge1xuICAgICAgICAvL25vcm1hbCBlbnZpcm9tZW50cyBpbiBzYW5lIHNpdHVhdGlvbnNcbiAgICAgICAgcmV0dXJuIGNsZWFyVGltZW91dChtYXJrZXIpO1xuICAgIH1cbiAgICAvLyBpZiBjbGVhclRpbWVvdXQgd2Fzbid0IGF2YWlsYWJsZSBidXQgd2FzIGxhdHRlciBkZWZpbmVkXG4gICAgaWYgKChjYWNoZWRDbGVhclRpbWVvdXQgPT09IGRlZmF1bHRDbGVhclRpbWVvdXQgfHwgIWNhY2hlZENsZWFyVGltZW91dCkgJiYgY2xlYXJUaW1lb3V0KSB7XG4gICAgICAgIGNhY2hlZENsZWFyVGltZW91dCA9IGNsZWFyVGltZW91dDtcbiAgICAgICAgcmV0dXJuIGNsZWFyVGltZW91dChtYXJrZXIpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICAvLyB3aGVuIHdoZW4gc29tZWJvZHkgaGFzIHNjcmV3ZWQgd2l0aCBzZXRUaW1lb3V0IGJ1dCBubyBJLkUuIG1hZGRuZXNzXG4gICAgICAgIHJldHVybiBjYWNoZWRDbGVhclRpbWVvdXQobWFya2VyKTtcbiAgICB9IGNhdGNoIChlKXtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIC8vIFdoZW4gd2UgYXJlIGluIEkuRS4gYnV0IHRoZSBzY3JpcHQgaGFzIGJlZW4gZXZhbGVkIHNvIEkuRS4gZG9lc24ndCAgdHJ1c3QgdGhlIGdsb2JhbCBvYmplY3Qgd2hlbiBjYWxsZWQgbm9ybWFsbHlcbiAgICAgICAgICAgIHJldHVybiBjYWNoZWRDbGVhclRpbWVvdXQuY2FsbChudWxsLCBtYXJrZXIpO1xuICAgICAgICB9IGNhdGNoIChlKXtcbiAgICAgICAgICAgIC8vIHNhbWUgYXMgYWJvdmUgYnV0IHdoZW4gaXQncyBhIHZlcnNpb24gb2YgSS5FLiB0aGF0IG11c3QgaGF2ZSB0aGUgZ2xvYmFsIG9iamVjdCBmb3IgJ3RoaXMnLCBob3BmdWxseSBvdXIgY29udGV4dCBjb3JyZWN0IG90aGVyd2lzZSBpdCB3aWxsIHRocm93IGEgZ2xvYmFsIGVycm9yLlxuICAgICAgICAgICAgLy8gU29tZSB2ZXJzaW9ucyBvZiBJLkUuIGhhdmUgZGlmZmVyZW50IHJ1bGVzIGZvciBjbGVhclRpbWVvdXQgdnMgc2V0VGltZW91dFxuICAgICAgICAgICAgcmV0dXJuIGNhY2hlZENsZWFyVGltZW91dC5jYWxsKHRoaXMsIG1hcmtlcik7XG4gICAgICAgIH1cbiAgICB9XG5cblxuXG59XG52YXIgcXVldWUgPSBbXTtcbnZhciBkcmFpbmluZyA9IGZhbHNlO1xudmFyIGN1cnJlbnRRdWV1ZTtcbnZhciBxdWV1ZUluZGV4ID0gLTE7XG5cbmZ1bmN0aW9uIGNsZWFuVXBOZXh0VGljaygpIHtcbiAgICBpZiAoIWRyYWluaW5nIHx8ICFjdXJyZW50UXVldWUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBkcmFpbmluZyA9IGZhbHNlO1xuICAgIGlmIChjdXJyZW50UXVldWUubGVuZ3RoKSB7XG4gICAgICAgIHF1ZXVlID0gY3VycmVudFF1ZXVlLmNvbmNhdChxdWV1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcXVldWVJbmRleCA9IC0xO1xuICAgIH1cbiAgICBpZiAocXVldWUubGVuZ3RoKSB7XG4gICAgICAgIGRyYWluUXVldWUoKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGRyYWluUXVldWUoKSB7XG4gICAgaWYgKGRyYWluaW5nKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmFyIHRpbWVvdXQgPSBydW5UaW1lb3V0KGNsZWFuVXBOZXh0VGljayk7XG4gICAgZHJhaW5pbmcgPSB0cnVlO1xuXG4gICAgdmFyIGxlbiA9IHF1ZXVlLmxlbmd0aDtcbiAgICB3aGlsZShsZW4pIHtcbiAgICAgICAgY3VycmVudFF1ZXVlID0gcXVldWU7XG4gICAgICAgIHF1ZXVlID0gW107XG4gICAgICAgIHdoaWxlICgrK3F1ZXVlSW5kZXggPCBsZW4pIHtcbiAgICAgICAgICAgIGlmIChjdXJyZW50UXVldWUpIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50UXVldWVbcXVldWVJbmRleF0ucnVuKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcXVldWVJbmRleCA9IC0xO1xuICAgICAgICBsZW4gPSBxdWV1ZS5sZW5ndGg7XG4gICAgfVxuICAgIGN1cnJlbnRRdWV1ZSA9IG51bGw7XG4gICAgZHJhaW5pbmcgPSBmYWxzZTtcbiAgICBydW5DbGVhclRpbWVvdXQodGltZW91dCk7XG59XG5cbnByb2Nlc3MubmV4dFRpY2sgPSBmdW5jdGlvbiAoZnVuKSB7XG4gICAgdmFyIGFyZ3MgPSBuZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aCAtIDEpO1xuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID4gMSkge1xuICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgYXJnc1tpIC0gMV0gPSBhcmd1bWVudHNbaV07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcXVldWUucHVzaChuZXcgSXRlbShmdW4sIGFyZ3MpKTtcbiAgICBpZiAocXVldWUubGVuZ3RoID09PSAxICYmICFkcmFpbmluZykge1xuICAgICAgICBydW5UaW1lb3V0KGRyYWluUXVldWUpO1xuICAgIH1cbn07XG5cbi8vIHY4IGxpa2VzIHByZWRpY3RpYmxlIG9iamVjdHNcbmZ1bmN0aW9uIEl0ZW0oZnVuLCBhcnJheSkge1xuICAgIHRoaXMuZnVuID0gZnVuO1xuICAgIHRoaXMuYXJyYXkgPSBhcnJheTtcbn1cbkl0ZW0ucHJvdG90eXBlLnJ1biA9IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLmZ1bi5hcHBseShudWxsLCB0aGlzLmFycmF5KTtcbn07XG5wcm9jZXNzLnRpdGxlID0gJ2Jyb3dzZXInO1xucHJvY2Vzcy5icm93c2VyID0gdHJ1ZTtcbnByb2Nlc3MuZW52ID0ge307XG5wcm9jZXNzLmFyZ3YgPSBbXTtcbnByb2Nlc3MudmVyc2lvbiA9ICcnOyAvLyBlbXB0eSBzdHJpbmcgdG8gYXZvaWQgcmVnZXhwIGlzc3Vlc1xucHJvY2Vzcy52ZXJzaW9ucyA9IHt9O1xuXG5mdW5jdGlvbiBub29wKCkge31cblxucHJvY2Vzcy5vbiA9IG5vb3A7XG5wcm9jZXNzLmFkZExpc3RlbmVyID0gbm9vcDtcbnByb2Nlc3Mub25jZSA9IG5vb3A7XG5wcm9jZXNzLm9mZiA9IG5vb3A7XG5wcm9jZXNzLnJlbW92ZUxpc3RlbmVyID0gbm9vcDtcbnByb2Nlc3MucmVtb3ZlQWxsTGlzdGVuZXJzID0gbm9vcDtcbnByb2Nlc3MuZW1pdCA9IG5vb3A7XG5wcm9jZXNzLnByZXBlbmRMaXN0ZW5lciA9IG5vb3A7XG5wcm9jZXNzLnByZXBlbmRPbmNlTGlzdGVuZXIgPSBub29wO1xuXG5wcm9jZXNzLmxpc3RlbmVycyA9IGZ1bmN0aW9uIChuYW1lKSB7IHJldHVybiBbXSB9XG5cbnByb2Nlc3MuYmluZGluZyA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdwcm9jZXNzLmJpbmRpbmcgaXMgbm90IHN1cHBvcnRlZCcpO1xufTtcblxucHJvY2Vzcy5jd2QgPSBmdW5jdGlvbiAoKSB7IHJldHVybiAnLycgfTtcbnByb2Nlc3MuY2hkaXIgPSBmdW5jdGlvbiAoZGlyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdwcm9jZXNzLmNoZGlyIGlzIG5vdCBzdXBwb3J0ZWQnKTtcbn07XG5wcm9jZXNzLnVtYXNrID0gZnVuY3Rpb24oKSB7IHJldHVybiAwOyB9O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/process/browser.js\n"); + +/***/ }), + +/***/ "./node_modules/react-dom/cjs/react-dom.development.js": +/*!*************************************************************!*\ + !*** ./node_modules/react-dom/cjs/react-dom.development.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("/** @license React v17.0.2\n * react-dom.development.js\n *\n * Copyright (c) Facebook, Inc. and its 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\n\n\nif (true) {\n (function() {\n'use strict';\n\nvar React = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\nvar _assign = __webpack_require__(/*! object-assign */ \"./node_modules/next/dist/build/polyfills/object-assign.js\");\nvar Scheduler = __webpack_require__(/*! scheduler */ \"./node_modules/scheduler/index.js\");\nvar tracing = __webpack_require__(/*! scheduler/tracing */ \"./node_modules/scheduler/tracing.js\");\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\n// by calls to these methods by a Babel plugin.\n//\n// In PROD (or in packages without access to React internals),\n// they are left as they are instead.\n\nfunction warn(format) {\n {\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\n printWarning('warn', format, args);\n }\n}\nfunction error(format) {\n {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n printWarning('error', format, args);\n }\n}\n\nfunction printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n }\n\n var argsWithFormat = args.map(function (item) {\n return '' + item;\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n}\n\nif (!React) {\n {\n throw Error( \"ReactDOM was loaded before React. Make sure you load the React package before loading ReactDOM.\" );\n }\n}\n\nvar FunctionComponent = 0;\nvar ClassComponent = 1;\nvar IndeterminateComponent = 2; // Before we know whether it is function or class\n\nvar HostRoot = 3; // Root of a host tree. Could be nested inside another node.\n\nvar HostPortal = 4; // A subtree. Could be an entry point to a different renderer.\n\nvar HostComponent = 5;\nvar HostText = 6;\nvar Fragment = 7;\nvar Mode = 8;\nvar ContextConsumer = 9;\nvar ContextProvider = 10;\nvar ForwardRef = 11;\nvar Profiler = 12;\nvar SuspenseComponent = 13;\nvar MemoComponent = 14;\nvar SimpleMemoComponent = 15;\nvar LazyComponent = 16;\nvar IncompleteClassComponent = 17;\nvar DehydratedFragment = 18;\nvar SuspenseListComponent = 19;\nvar FundamentalComponent = 20;\nvar ScopeComponent = 21;\nvar Block = 22;\nvar OffscreenComponent = 23;\nvar LegacyHiddenComponent = 24;\n\n// Filter certain DOM attributes (e.g. src, href) if their values are empty strings.\n\nvar enableProfilerTimer = true; // Record durations for commit and passive effects phases.\n\nvar enableFundamentalAPI = false; // Experimental Scope support.\nvar enableNewReconciler = false; // Errors that are thrown while unmounting (or after in the case of passive effects)\nvar warnAboutStringRefs = false;\n\nvar allNativeEvents = new Set();\n/**\n * Mapping from registration name to event name\n */\n\n\nvar registrationNameDependencies = {};\n/**\n * Mapping from lowercase registration names to the properly cased version,\n * used to warn in the case of missing event handlers. Available\n * only in true.\n * @type {Object}\n */\n\nvar possibleRegistrationNames = {} ; // Trust the developer to only use possibleRegistrationNames in true\n\nfunction registerTwoPhaseEvent(registrationName, dependencies) {\n registerDirectEvent(registrationName, dependencies);\n registerDirectEvent(registrationName + 'Capture', dependencies);\n}\nfunction registerDirectEvent(registrationName, dependencies) {\n {\n if (registrationNameDependencies[registrationName]) {\n error('EventRegistry: More than one plugin attempted to publish the same ' + 'registration name, `%s`.', registrationName);\n }\n }\n\n registrationNameDependencies[registrationName] = dependencies;\n\n {\n var lowerCasedName = registrationName.toLowerCase();\n possibleRegistrationNames[lowerCasedName] = registrationName;\n\n if (registrationName === 'onDoubleClick') {\n possibleRegistrationNames.ondblclick = registrationName;\n }\n }\n\n for (var i = 0; i < dependencies.length; i++) {\n allNativeEvents.add(dependencies[i]);\n }\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined');\n\n// A reserved attribute.\n// It is handled by React separately and shouldn't be written to the DOM.\nvar RESERVED = 0; // A simple string attribute.\n// Attributes that aren't in the filter are presumed to have this type.\n\nvar STRING = 1; // A string attribute that accepts booleans in React. In HTML, these are called\n// \"enumerated\" attributes with \"true\" and \"false\" as possible values.\n// When true, it should be set to a \"true\" string.\n// When false, it should be set to a \"false\" string.\n\nvar BOOLEANISH_STRING = 2; // A real boolean attribute.\n// When true, it should be present (set either to an empty string or its name).\n// When false, it should be omitted.\n\nvar BOOLEAN = 3; // An attribute that can be used as a flag as well as with a value.\n// When true, it should be present (set either to an empty string or its name).\n// When false, it should be omitted.\n// For any other value, should be present with that value.\n\nvar OVERLOADED_BOOLEAN = 4; // An attribute that must be numeric or parse as a numeric.\n// When falsy, it should be removed.\n\nvar NUMERIC = 5; // An attribute that must be positive numeric or parse as a positive numeric.\n// When falsy, it should be removed.\n\nvar POSITIVE_NUMERIC = 6;\n\n/* eslint-disable max-len */\nvar ATTRIBUTE_NAME_START_CHAR = \":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\";\n/* eslint-enable max-len */\n\nvar ATTRIBUTE_NAME_CHAR = ATTRIBUTE_NAME_START_CHAR + \"\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040\";\nvar ROOT_ATTRIBUTE_NAME = 'data-reactroot';\nvar VALID_ATTRIBUTE_NAME_REGEX = new RegExp('^[' + ATTRIBUTE_NAME_START_CHAR + '][' + ATTRIBUTE_NAME_CHAR + ']*$');\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar illegalAttributeNameCache = {};\nvar validatedAttributeNameCache = {};\nfunction isAttributeNameSafe(attributeName) {\n if (hasOwnProperty.call(validatedAttributeNameCache, attributeName)) {\n return true;\n }\n\n if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) {\n return false;\n }\n\n if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) {\n validatedAttributeNameCache[attributeName] = true;\n return true;\n }\n\n illegalAttributeNameCache[attributeName] = true;\n\n {\n error('Invalid attribute name: `%s`', attributeName);\n }\n\n return false;\n}\nfunction shouldIgnoreAttribute(name, propertyInfo, isCustomComponentTag) {\n if (propertyInfo !== null) {\n return propertyInfo.type === RESERVED;\n }\n\n if (isCustomComponentTag) {\n return false;\n }\n\n if (name.length > 2 && (name[0] === 'o' || name[0] === 'O') && (name[1] === 'n' || name[1] === 'N')) {\n return true;\n }\n\n return false;\n}\nfunction shouldRemoveAttributeWithWarning(name, value, propertyInfo, isCustomComponentTag) {\n if (propertyInfo !== null && propertyInfo.type === RESERVED) {\n return false;\n }\n\n switch (typeof value) {\n case 'function': // $FlowIssue symbol is perfectly valid here\n\n case 'symbol':\n // eslint-disable-line\n return true;\n\n case 'boolean':\n {\n if (isCustomComponentTag) {\n return false;\n }\n\n if (propertyInfo !== null) {\n return !propertyInfo.acceptsBooleans;\n } else {\n var prefix = name.toLowerCase().slice(0, 5);\n return prefix !== 'data-' && prefix !== 'aria-';\n }\n }\n\n default:\n return false;\n }\n}\nfunction shouldRemoveAttribute(name, value, propertyInfo, isCustomComponentTag) {\n if (value === null || typeof value === 'undefined') {\n return true;\n }\n\n if (shouldRemoveAttributeWithWarning(name, value, propertyInfo, isCustomComponentTag)) {\n return true;\n }\n\n if (isCustomComponentTag) {\n return false;\n }\n\n if (propertyInfo !== null) {\n\n switch (propertyInfo.type) {\n case BOOLEAN:\n return !value;\n\n case OVERLOADED_BOOLEAN:\n return value === false;\n\n case NUMERIC:\n return isNaN(value);\n\n case POSITIVE_NUMERIC:\n return isNaN(value) || value < 1;\n }\n }\n\n return false;\n}\nfunction getPropertyInfo(name) {\n return properties.hasOwnProperty(name) ? properties[name] : null;\n}\n\nfunction PropertyInfoRecord(name, type, mustUseProperty, attributeName, attributeNamespace, sanitizeURL, removeEmptyString) {\n this.acceptsBooleans = type === BOOLEANISH_STRING || type === BOOLEAN || type === OVERLOADED_BOOLEAN;\n this.attributeName = attributeName;\n this.attributeNamespace = attributeNamespace;\n this.mustUseProperty = mustUseProperty;\n this.propertyName = name;\n this.type = type;\n this.sanitizeURL = sanitizeURL;\n this.removeEmptyString = removeEmptyString;\n} // When adding attributes to this list, be sure to also add them to\n// the `possibleStandardNames` module to ensure casing and incorrect\n// name warnings.\n\n\nvar properties = {}; // These props are reserved by React. They shouldn't be written to the DOM.\n\nvar reservedProps = ['children', 'dangerouslySetInnerHTML', // TODO: This prevents the assignment of defaultValue to regular\n// elements (not just inputs). Now that ReactDOMInput assigns to the\n// defaultValue property -- do we need this?\n'defaultValue', 'defaultChecked', 'innerHTML', 'suppressContentEditableWarning', 'suppressHydrationWarning', 'style'];\nreservedProps.forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, RESERVED, false, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // A few React string attributes have a different name.\n// This is a mapping from React prop names to the attribute names.\n\n[['acceptCharset', 'accept-charset'], ['className', 'class'], ['htmlFor', 'for'], ['httpEquiv', 'http-equiv']].forEach(function (_ref) {\n var name = _ref[0],\n attributeName = _ref[1];\n properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n attributeName, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These are \"enumerated\" HTML attributes that accept \"true\" and \"false\".\n// In React, we let users pass `true` and `false` even though technically\n// these aren't boolean attributes (they are coerced to strings).\n\n['contentEditable', 'draggable', 'spellCheck', 'value'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, BOOLEANISH_STRING, false, // mustUseProperty\n name.toLowerCase(), // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These are \"enumerated\" SVG attributes that accept \"true\" and \"false\".\n// In React, we let users pass `true` and `false` even though technically\n// these aren't boolean attributes (they are coerced to strings).\n// Since these are SVG attributes, their attribute names are case-sensitive.\n\n['autoReverse', 'externalResourcesRequired', 'focusable', 'preserveAlpha'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, BOOLEANISH_STRING, false, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These are HTML boolean attributes.\n\n['allowFullScreen', 'async', // Note: there is a special case that prevents it from being written to the DOM\n// on the client side because the browsers are inconsistent. Instead we call focus().\n'autoFocus', 'autoPlay', 'controls', 'default', 'defer', 'disabled', 'disablePictureInPicture', 'disableRemotePlayback', 'formNoValidate', 'hidden', 'loop', 'noModule', 'noValidate', 'open', 'playsInline', 'readOnly', 'required', 'reversed', 'scoped', 'seamless', // Microdata\n'itemScope'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, BOOLEAN, false, // mustUseProperty\n name.toLowerCase(), // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These are the few React props that we set as DOM properties\n// rather than attributes. These are all booleans.\n\n['checked', // Note: `option.selected` is not updated if `select.multiple` is\n// disabled with `removeAttribute`. We have special logic for handling this.\n'multiple', 'muted', 'selected' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, BOOLEAN, true, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These are HTML attributes that are \"overloaded booleans\": they behave like\n// booleans, but can also accept a string value.\n\n['capture', 'download' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, OVERLOADED_BOOLEAN, false, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These are HTML attributes that must be positive numbers.\n\n['cols', 'rows', 'size', 'span' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, POSITIVE_NUMERIC, false, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These are HTML attributes that must be numbers.\n\n['rowSpan', 'start'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, NUMERIC, false, // mustUseProperty\n name.toLowerCase(), // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n});\nvar CAMELIZE = /[\\-\\:]([a-z])/g;\n\nvar capitalize = function (token) {\n return token[1].toUpperCase();\n}; // This is a list of all SVG attributes that need special casing, namespacing,\n// or boolean value assignment. Regular attributes that just accept strings\n// and have the same names are omitted, just like in the HTML attribute filter.\n// Some of these attributes can be hard to find. This list was created by\n// scraping the MDN documentation.\n\n\n['accent-height', 'alignment-baseline', 'arabic-form', 'baseline-shift', 'cap-height', 'clip-path', 'clip-rule', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'dominant-baseline', 'enable-background', 'fill-opacity', 'fill-rule', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'glyph-name', 'glyph-orientation-horizontal', 'glyph-orientation-vertical', 'horiz-adv-x', 'horiz-origin-x', 'image-rendering', 'letter-spacing', 'lighting-color', 'marker-end', 'marker-mid', 'marker-start', 'overline-position', 'overline-thickness', 'paint-order', 'panose-1', 'pointer-events', 'rendering-intent', 'shape-rendering', 'stop-color', 'stop-opacity', 'strikethrough-position', 'strikethrough-thickness', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke-width', 'text-anchor', 'text-decoration', 'text-rendering', 'underline-position', 'underline-thickness', 'unicode-bidi', 'unicode-range', 'units-per-em', 'v-alphabetic', 'v-hanging', 'v-ideographic', 'v-mathematical', 'vector-effect', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'word-spacing', 'writing-mode', 'xmlns:xlink', 'x-height' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (attributeName) {\n var name = attributeName.replace(CAMELIZE, capitalize);\n properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n attributeName, null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // String SVG attributes with the xlink namespace.\n\n['xlink:actuate', 'xlink:arcrole', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (attributeName) {\n var name = attributeName.replace(CAMELIZE, capitalize);\n properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n attributeName, 'http://www.w3.org/1999/xlink', false, // sanitizeURL\n false);\n}); // String SVG attributes with the xml namespace.\n\n['xml:base', 'xml:lang', 'xml:space' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (attributeName) {\n var name = attributeName.replace(CAMELIZE, capitalize);\n properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n attributeName, 'http://www.w3.org/XML/1998/namespace', false, // sanitizeURL\n false);\n}); // These attribute exists both in HTML and SVG.\n// The attribute name is case-sensitive in SVG so we can't just use\n// the React name like we do for attributes that exist only in HTML.\n\n['tabIndex', 'crossOrigin'].forEach(function (attributeName) {\n properties[attributeName] = new PropertyInfoRecord(attributeName, STRING, false, // mustUseProperty\n attributeName.toLowerCase(), // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These attributes accept URLs. These must not allow javascript: URLS.\n// These will also need to accept Trusted Types object in the future.\n\nvar xlinkHref = 'xlinkHref';\nproperties[xlinkHref] = new PropertyInfoRecord('xlinkHref', STRING, false, // mustUseProperty\n'xlink:href', 'http://www.w3.org/1999/xlink', true, // sanitizeURL\nfalse);\n['src', 'href', 'action', 'formAction'].forEach(function (attributeName) {\n properties[attributeName] = new PropertyInfoRecord(attributeName, STRING, false, // mustUseProperty\n attributeName.toLowerCase(), // attributeName\n null, // attributeNamespace\n true, // sanitizeURL\n true);\n});\n\n// and any newline or tab are filtered out as if they're not part of the URL.\n// https://url.spec.whatwg.org/#url-parsing\n// Tab or newline are defined as \\r\\n\\t:\n// https://infra.spec.whatwg.org/#ascii-tab-or-newline\n// A C0 control is a code point in the range \\u0000 NULL to \\u001F\n// INFORMATION SEPARATOR ONE, inclusive:\n// https://infra.spec.whatwg.org/#c0-control-or-space\n\n/* eslint-disable max-len */\n\nvar isJavaScriptProtocol = /^[\\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;\nvar didWarn = false;\n\nfunction sanitizeURL(url) {\n {\n if (!didWarn && isJavaScriptProtocol.test(url)) {\n didWarn = true;\n\n error('A future version of React will block javascript: URLs as a security precaution. ' + 'Use event handlers instead if you can. If you need to generate unsafe HTML try ' + 'using dangerouslySetInnerHTML instead. React was passed %s.', JSON.stringify(url));\n }\n }\n}\n\n/**\n * Get the value for a property on a node. Only used in DEV for SSR validation.\n * The \"expected\" argument is used as a hint of what the expected value is.\n * Some properties have multiple equivalent values.\n */\nfunction getValueForProperty(node, name, expected, propertyInfo) {\n {\n if (propertyInfo.mustUseProperty) {\n var propertyName = propertyInfo.propertyName;\n return node[propertyName];\n } else {\n if ( propertyInfo.sanitizeURL) {\n // If we haven't fully disabled javascript: URLs, and if\n // the hydration is successful of a javascript: URL, we\n // still want to warn on the client.\n sanitizeURL('' + expected);\n }\n\n var attributeName = propertyInfo.attributeName;\n var stringValue = null;\n\n if (propertyInfo.type === OVERLOADED_BOOLEAN) {\n if (node.hasAttribute(attributeName)) {\n var value = node.getAttribute(attributeName);\n\n if (value === '') {\n return true;\n }\n\n if (shouldRemoveAttribute(name, expected, propertyInfo, false)) {\n return value;\n }\n\n if (value === '' + expected) {\n return expected;\n }\n\n return value;\n }\n } else if (node.hasAttribute(attributeName)) {\n if (shouldRemoveAttribute(name, expected, propertyInfo, false)) {\n // We had an attribute but shouldn't have had one, so read it\n // for the error message.\n return node.getAttribute(attributeName);\n }\n\n if (propertyInfo.type === BOOLEAN) {\n // If this was a boolean, it doesn't matter what the value is\n // the fact that we have it is the same as the expected.\n return expected;\n } // Even if this property uses a namespace we use getAttribute\n // because we assume its namespaced name is the same as our config.\n // To use getAttributeNS we need the local name which we don't have\n // in our config atm.\n\n\n stringValue = node.getAttribute(attributeName);\n }\n\n if (shouldRemoveAttribute(name, expected, propertyInfo, false)) {\n return stringValue === null ? expected : stringValue;\n } else if (stringValue === '' + expected) {\n return expected;\n } else {\n return stringValue;\n }\n }\n }\n}\n/**\n * Get the value for a attribute on a node. Only used in DEV for SSR validation.\n * The third argument is used as a hint of what the expected value is. Some\n * attributes have multiple equivalent values.\n */\n\nfunction getValueForAttribute(node, name, expected) {\n {\n if (!isAttributeNameSafe(name)) {\n return;\n } // If the object is an opaque reference ID, it's expected that\n // the next prop is different than the server value, so just return\n // expected\n\n\n if (isOpaqueHydratingObject(expected)) {\n return expected;\n }\n\n if (!node.hasAttribute(name)) {\n return expected === undefined ? undefined : null;\n }\n\n var value = node.getAttribute(name);\n\n if (value === '' + expected) {\n return expected;\n }\n\n return value;\n }\n}\n/**\n * Sets the value for a property on a node.\n *\n * @param {DOMElement} node\n * @param {string} name\n * @param {*} value\n */\n\nfunction setValueForProperty(node, name, value, isCustomComponentTag) {\n var propertyInfo = getPropertyInfo(name);\n\n if (shouldIgnoreAttribute(name, propertyInfo, isCustomComponentTag)) {\n return;\n }\n\n if (shouldRemoveAttribute(name, value, propertyInfo, isCustomComponentTag)) {\n value = null;\n } // If the prop isn't in the special list, treat it as a simple attribute.\n\n\n if (isCustomComponentTag || propertyInfo === null) {\n if (isAttributeNameSafe(name)) {\n var _attributeName = name;\n\n if (value === null) {\n node.removeAttribute(_attributeName);\n } else {\n node.setAttribute(_attributeName, '' + value);\n }\n }\n\n return;\n }\n\n var mustUseProperty = propertyInfo.mustUseProperty;\n\n if (mustUseProperty) {\n var propertyName = propertyInfo.propertyName;\n\n if (value === null) {\n var type = propertyInfo.type;\n node[propertyName] = type === BOOLEAN ? false : '';\n } else {\n // Contrary to `setAttribute`, object properties are properly\n // `toString`ed by IE8/9.\n node[propertyName] = value;\n }\n\n return;\n } // The rest are treated as attributes with special cases.\n\n\n var attributeName = propertyInfo.attributeName,\n attributeNamespace = propertyInfo.attributeNamespace;\n\n if (value === null) {\n node.removeAttribute(attributeName);\n } else {\n var _type = propertyInfo.type;\n var attributeValue;\n\n if (_type === BOOLEAN || _type === OVERLOADED_BOOLEAN && value === true) {\n // If attribute type is boolean, we know for sure it won't be an execution sink\n // and we won't require Trusted Type here.\n attributeValue = '';\n } else {\n // `setAttribute` with objects becomes only `[object]` in IE8/9,\n // ('' + value) makes it output the correct toString()-value.\n {\n attributeValue = '' + value;\n }\n\n if (propertyInfo.sanitizeURL) {\n sanitizeURL(attributeValue.toString());\n }\n }\n\n if (attributeNamespace) {\n node.setAttributeNS(attributeNamespace, attributeName, attributeValue);\n } else {\n node.setAttribute(attributeName, attributeValue);\n }\n }\n}\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar REACT_ELEMENT_TYPE = 0xeac7;\nvar REACT_PORTAL_TYPE = 0xeaca;\nvar REACT_FRAGMENT_TYPE = 0xeacb;\nvar REACT_STRICT_MODE_TYPE = 0xeacc;\nvar REACT_PROFILER_TYPE = 0xead2;\nvar REACT_PROVIDER_TYPE = 0xeacd;\nvar REACT_CONTEXT_TYPE = 0xeace;\nvar REACT_FORWARD_REF_TYPE = 0xead0;\nvar REACT_SUSPENSE_TYPE = 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = 0xead8;\nvar REACT_MEMO_TYPE = 0xead3;\nvar REACT_LAZY_TYPE = 0xead4;\nvar REACT_BLOCK_TYPE = 0xead9;\nvar REACT_SERVER_BLOCK_TYPE = 0xeada;\nvar REACT_FUNDAMENTAL_TYPE = 0xead5;\nvar REACT_SCOPE_TYPE = 0xead7;\nvar REACT_OPAQUE_ID_TYPE = 0xeae0;\nvar REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1;\nvar REACT_OFFSCREEN_TYPE = 0xeae2;\nvar REACT_LEGACY_HIDDEN_TYPE = 0xeae3;\n\nif (typeof Symbol === 'function' && Symbol.for) {\n var symbolFor = Symbol.for;\n REACT_ELEMENT_TYPE = symbolFor('react.element');\n REACT_PORTAL_TYPE = symbolFor('react.portal');\n REACT_FRAGMENT_TYPE = symbolFor('react.fragment');\n REACT_STRICT_MODE_TYPE = symbolFor('react.strict_mode');\n REACT_PROFILER_TYPE = symbolFor('react.profiler');\n REACT_PROVIDER_TYPE = symbolFor('react.provider');\n REACT_CONTEXT_TYPE = symbolFor('react.context');\n REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref');\n REACT_SUSPENSE_TYPE = symbolFor('react.suspense');\n REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list');\n REACT_MEMO_TYPE = symbolFor('react.memo');\n REACT_LAZY_TYPE = symbolFor('react.lazy');\n REACT_BLOCK_TYPE = symbolFor('react.block');\n REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block');\n REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental');\n REACT_SCOPE_TYPE = symbolFor('react.scope');\n REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id');\n REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode');\n REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen');\n REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden');\n}\n\nvar MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\n return null;\n }\n\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n\n return null;\n}\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n disabledDepth++;\n }\n}\nfunction reenableLogs() {\n {\n disabledDepth--;\n\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n log: _assign({}, props, {\n value: prevLog\n }),\n info: _assign({}, props, {\n value: prevInfo\n }),\n warn: _assign({}, props, {\n value: prevWarn\n }),\n error: _assign({}, props, {\n value: prevError\n }),\n group: _assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: _assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: _assign({}, props, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n if (disabledDepth < 0) {\n error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n }\n }\n}\n\nvar ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || '';\n }\n } // We use the prefix to ensure our stacks line up with native stack frames.\n\n\n return '\\n' + prefix + name;\n }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n}\n\nfunction describeNativeComponentFrame(fn, construct) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if (!fn || reentry) {\n return '';\n }\n\n {\n var frame = componentFrameCache.get(fn);\n\n if (frame !== undefined) {\n return frame;\n }\n }\n\n var control;\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n\n {\n previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function\n // for warnings.\n\n ReactCurrentDispatcher.current = null;\n disableLogs();\n }\n\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function () {\n throw Error();\n }; // $FlowFixMe\n\n\n Object.defineProperty(Fake.prototype, 'props', {\n set: function () {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n\n if (typeof Reflect === 'object' && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n }\n\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n }\n\n fn();\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === 'string') {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sample.stack.split('\\n');\n var controlLines = control.stack.split('\\n');\n var s = sampleLines.length - 1;\n var c = controlLines.length - 1;\n\n while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n\n for (; s >= 1 && c >= 0; s--, c--) {\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at ');\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, _frame);\n }\n } // Return the line we found.\n\n\n return _frame;\n }\n } while (s >= 1 && c >= 0);\n }\n\n break;\n }\n }\n }\n } finally {\n reentry = false;\n\n {\n ReactCurrentDispatcher.current = previousDispatcher;\n reenableLogs();\n }\n\n Error.prepareStackTrace = previousPrepareStackTrace;\n } // Fallback to just using the name if we couldn't make it throw.\n\n\n var name = fn ? fn.displayName || fn.name : '';\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n\n return syntheticFrame;\n}\n\nfunction describeClassComponentFrame(ctor, source, ownerFn) {\n {\n return describeNativeComponentFrame(ctor, true);\n }\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n}\n\nfunction shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n if (type == null) {\n return '';\n }\n\n if (typeof type === 'function') {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n\n if (typeof type === 'string') {\n return describeBuiltInComponentFrame(type);\n }\n\n switch (type) {\n case REACT_SUSPENSE_TYPE:\n return describeBuiltInComponentFrame('Suspense');\n\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame('SuspenseList');\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n\n case REACT_MEMO_TYPE:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n case REACT_BLOCK_TYPE:\n return describeFunctionComponentFrame(type._render);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n\n return '';\n}\n\nfunction describeFiber(fiber) {\n var owner = fiber._debugOwner ? fiber._debugOwner.type : null ;\n var source = fiber._debugSource ;\n\n switch (fiber.tag) {\n case HostComponent:\n return describeBuiltInComponentFrame(fiber.type);\n\n case LazyComponent:\n return describeBuiltInComponentFrame('Lazy');\n\n case SuspenseComponent:\n return describeBuiltInComponentFrame('Suspense');\n\n case SuspenseListComponent:\n return describeBuiltInComponentFrame('SuspenseList');\n\n case FunctionComponent:\n case IndeterminateComponent:\n case SimpleMemoComponent:\n return describeFunctionComponentFrame(fiber.type);\n\n case ForwardRef:\n return describeFunctionComponentFrame(fiber.type.render);\n\n case Block:\n return describeFunctionComponentFrame(fiber.type._render);\n\n case ClassComponent:\n return describeClassComponentFrame(fiber.type);\n\n default:\n return '';\n }\n}\n\nfunction getStackByFiberInDevAndProd(workInProgress) {\n try {\n var info = '';\n var node = workInProgress;\n\n do {\n info += describeFiber(node);\n node = node.return;\n } while (node);\n\n return info;\n } catch (x) {\n return '\\nError generating stack: ' + x.message + '\\n' + x.stack;\n }\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var functionName = innerType.displayName || innerType.name || '';\n return outerType.displayName || (functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName);\n}\n\nfunction getContextName(type) {\n return type.displayName || 'Context';\n}\n\nfunction getComponentName(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n\n {\n if (typeof type.tag === 'number') {\n error('Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.');\n }\n }\n\n if (typeof type === 'function') {\n return type.displayName || type.name || null;\n }\n\n if (typeof type === 'string') {\n return type;\n }\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return 'Fragment';\n\n case REACT_PORTAL_TYPE:\n return 'Portal';\n\n case REACT_PROFILER_TYPE:\n return 'Profiler';\n\n case REACT_STRICT_MODE_TYPE:\n return 'StrictMode';\n\n case REACT_SUSPENSE_TYPE:\n return 'Suspense';\n\n case REACT_SUSPENSE_LIST_TYPE:\n return 'SuspenseList';\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + '.Consumer';\n\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + '.Provider';\n\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, 'ForwardRef');\n\n case REACT_MEMO_TYPE:\n return getComponentName(type.type);\n\n case REACT_BLOCK_TYPE:\n return getComponentName(type._render);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n return getComponentName(init(payload));\n } catch (x) {\n return null;\n }\n }\n }\n }\n\n return null;\n}\n\nvar ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\nvar current = null;\nvar isRendering = false;\nfunction getCurrentFiberOwnerNameInDevOrNull() {\n {\n if (current === null) {\n return null;\n }\n\n var owner = current._debugOwner;\n\n if (owner !== null && typeof owner !== 'undefined') {\n return getComponentName(owner.type);\n }\n }\n\n return null;\n}\n\nfunction getCurrentFiberStackInDev() {\n {\n if (current === null) {\n return '';\n } // Safe because if current fiber exists, we are reconciling,\n // and it is guaranteed to be the work-in-progress version.\n\n\n return getStackByFiberInDevAndProd(current);\n }\n}\n\nfunction resetCurrentFiber() {\n {\n ReactDebugCurrentFrame.getCurrentStack = null;\n current = null;\n isRendering = false;\n }\n}\nfunction setCurrentFiber(fiber) {\n {\n ReactDebugCurrentFrame.getCurrentStack = getCurrentFiberStackInDev;\n current = fiber;\n isRendering = false;\n }\n}\nfunction setIsRendering(rendering) {\n {\n isRendering = rendering;\n }\n}\nfunction getIsRendering() {\n {\n return isRendering;\n }\n}\n\n// Flow does not allow string concatenation of most non-string types. To work\n// around this limitation, we use an opaque type that can only be obtained by\n// passing the value through getToStringValue first.\nfunction toString(value) {\n return '' + value;\n}\nfunction getToStringValue(value) {\n switch (typeof value) {\n case 'boolean':\n case 'number':\n case 'object':\n case 'string':\n case 'undefined':\n return value;\n\n default:\n // function, symbol are assigned as empty strings\n return '';\n }\n}\n\nvar hasReadOnlyValue = {\n button: true,\n checkbox: true,\n image: true,\n hidden: true,\n radio: true,\n reset: true,\n submit: true\n};\nfunction checkControlledValueProps(tagName, props) {\n {\n if (!(hasReadOnlyValue[props.type] || props.onChange || props.onInput || props.readOnly || props.disabled || props.value == null)) {\n error('You provided a `value` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultValue`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n }\n\n if (!(props.onChange || props.readOnly || props.disabled || props.checked == null)) {\n error('You provided a `checked` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultChecked`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n }\n }\n}\n\nfunction isCheckable(elem) {\n var type = elem.type;\n var nodeName = elem.nodeName;\n return nodeName && nodeName.toLowerCase() === 'input' && (type === 'checkbox' || type === 'radio');\n}\n\nfunction getTracker(node) {\n return node._valueTracker;\n}\n\nfunction detachTracker(node) {\n node._valueTracker = null;\n}\n\nfunction getValueFromNode(node) {\n var value = '';\n\n if (!node) {\n return value;\n }\n\n if (isCheckable(node)) {\n value = node.checked ? 'true' : 'false';\n } else {\n value = node.value;\n }\n\n return value;\n}\n\nfunction trackValueOnNode(node) {\n var valueField = isCheckable(node) ? 'checked' : 'value';\n var descriptor = Object.getOwnPropertyDescriptor(node.constructor.prototype, valueField);\n var currentValue = '' + node[valueField]; // if someone has already defined a value or Safari, then bail\n // and don't track value will cause over reporting of changes,\n // but it's better then a hard failure\n // (needed for certain tests that spyOn input values and Safari)\n\n if (node.hasOwnProperty(valueField) || typeof descriptor === 'undefined' || typeof descriptor.get !== 'function' || typeof descriptor.set !== 'function') {\n return;\n }\n\n var get = descriptor.get,\n set = descriptor.set;\n Object.defineProperty(node, valueField, {\n configurable: true,\n get: function () {\n return get.call(this);\n },\n set: function (value) {\n currentValue = '' + value;\n set.call(this, value);\n }\n }); // We could've passed this the first time\n // but it triggers a bug in IE11 and Edge 14/15.\n // Calling defineProperty() again should be equivalent.\n // https://github.com/facebook/react/issues/11768\n\n Object.defineProperty(node, valueField, {\n enumerable: descriptor.enumerable\n });\n var tracker = {\n getValue: function () {\n return currentValue;\n },\n setValue: function (value) {\n currentValue = '' + value;\n },\n stopTracking: function () {\n detachTracker(node);\n delete node[valueField];\n }\n };\n return tracker;\n}\n\nfunction track(node) {\n if (getTracker(node)) {\n return;\n } // TODO: Once it's just Fiber we can move this to node._wrapperState\n\n\n node._valueTracker = trackValueOnNode(node);\n}\nfunction updateValueIfChanged(node) {\n if (!node) {\n return false;\n }\n\n var tracker = getTracker(node); // if there is no tracker at this point it's unlikely\n // that trying again will succeed\n\n if (!tracker) {\n return true;\n }\n\n var lastValue = tracker.getValue();\n var nextValue = getValueFromNode(node);\n\n if (nextValue !== lastValue) {\n tracker.setValue(nextValue);\n return true;\n }\n\n return false;\n}\n\nfunction getActiveElement(doc) {\n doc = doc || (typeof document !== 'undefined' ? document : undefined);\n\n if (typeof doc === 'undefined') {\n return null;\n }\n\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\n\nvar didWarnValueDefaultValue = false;\nvar didWarnCheckedDefaultChecked = false;\nvar didWarnControlledToUncontrolled = false;\nvar didWarnUncontrolledToControlled = false;\n\nfunction isControlled(props) {\n var usesChecked = props.type === 'checkbox' || props.type === 'radio';\n return usesChecked ? props.checked != null : props.value != null;\n}\n/**\n * Implements an <input> host component that allows setting these optional\n * props: `checked`, `value`, `defaultChecked`, and `defaultValue`.\n *\n * If `checked` or `value` are not supplied (or null/undefined), user actions\n * that affect the checked state or value will trigger updates to the element.\n *\n * If they are supplied (and not null/undefined), the rendered element will not\n * trigger updates to the element. Instead, the props must change in order for\n * the rendered element to be updated.\n *\n * The rendered element will be initialized as unchecked (or `defaultChecked`)\n * with an empty value (or `defaultValue`).\n *\n * See http://www.w3.org/TR/2012/WD-html5-20121025/the-input-element.html\n */\n\n\nfunction getHostProps(element, props) {\n var node = element;\n var checked = props.checked;\n\n var hostProps = _assign({}, props, {\n defaultChecked: undefined,\n defaultValue: undefined,\n value: undefined,\n checked: checked != null ? checked : node._wrapperState.initialChecked\n });\n\n return hostProps;\n}\nfunction initWrapperState(element, props) {\n {\n checkControlledValueProps('input', props);\n\n if (props.checked !== undefined && props.defaultChecked !== undefined && !didWarnCheckedDefaultChecked) {\n error('%s contains an input of type %s with both checked and defaultChecked props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the checked prop, or the defaultChecked prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://reactjs.org/link/controlled-components', getCurrentFiberOwnerNameInDevOrNull() || 'A component', props.type);\n\n didWarnCheckedDefaultChecked = true;\n }\n\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) {\n error('%s contains an input of type %s with both value and defaultValue props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://reactjs.org/link/controlled-components', getCurrentFiberOwnerNameInDevOrNull() || 'A component', props.type);\n\n didWarnValueDefaultValue = true;\n }\n }\n\n var node = element;\n var defaultValue = props.defaultValue == null ? '' : props.defaultValue;\n node._wrapperState = {\n initialChecked: props.checked != null ? props.checked : props.defaultChecked,\n initialValue: getToStringValue(props.value != null ? props.value : defaultValue),\n controlled: isControlled(props)\n };\n}\nfunction updateChecked(element, props) {\n var node = element;\n var checked = props.checked;\n\n if (checked != null) {\n setValueForProperty(node, 'checked', checked, false);\n }\n}\nfunction updateWrapper(element, props) {\n var node = element;\n\n {\n var controlled = isControlled(props);\n\n if (!node._wrapperState.controlled && controlled && !didWarnUncontrolledToControlled) {\n error('A component is changing an uncontrolled input to be controlled. ' + 'This is likely caused by the value changing from undefined to ' + 'a defined value, which should not happen. ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://reactjs.org/link/controlled-components');\n\n didWarnUncontrolledToControlled = true;\n }\n\n if (node._wrapperState.controlled && !controlled && !didWarnControlledToUncontrolled) {\n error('A component is changing a controlled input to be uncontrolled. ' + 'This is likely caused by the value changing from a defined to ' + 'undefined, which should not happen. ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://reactjs.org/link/controlled-components');\n\n didWarnControlledToUncontrolled = true;\n }\n }\n\n updateChecked(element, props);\n var value = getToStringValue(props.value);\n var type = props.type;\n\n if (value != null) {\n if (type === 'number') {\n if (value === 0 && node.value === '' || // We explicitly want to coerce to number here if possible.\n // eslint-disable-next-line\n node.value != value) {\n node.value = toString(value);\n }\n } else if (node.value !== toString(value)) {\n node.value = toString(value);\n }\n } else if (type === 'submit' || type === 'reset') {\n // Submit/reset inputs need the attribute removed completely to avoid\n // blank-text buttons.\n node.removeAttribute('value');\n return;\n }\n\n {\n // When syncing the value attribute, the value comes from a cascade of\n // properties:\n // 1. The value React property\n // 2. The defaultValue React property\n // 3. Otherwise there should be no change\n if (props.hasOwnProperty('value')) {\n setDefaultValue(node, props.type, value);\n } else if (props.hasOwnProperty('defaultValue')) {\n setDefaultValue(node, props.type, getToStringValue(props.defaultValue));\n }\n }\n\n {\n // When syncing the checked attribute, it only changes when it needs\n // to be removed, such as transitioning from a checkbox into a text input\n if (props.checked == null && props.defaultChecked != null) {\n node.defaultChecked = !!props.defaultChecked;\n }\n }\n}\nfunction postMountWrapper(element, props, isHydrating) {\n var node = element; // Do not assign value if it is already set. This prevents user text input\n // from being lost during SSR hydration.\n\n if (props.hasOwnProperty('value') || props.hasOwnProperty('defaultValue')) {\n var type = props.type;\n var isButton = type === 'submit' || type === 'reset'; // Avoid setting value attribute on submit/reset inputs as it overrides the\n // default value provided by the browser. See: #12872\n\n if (isButton && (props.value === undefined || props.value === null)) {\n return;\n }\n\n var initialValue = toString(node._wrapperState.initialValue); // Do not assign value if it is already set. This prevents user text input\n // from being lost during SSR hydration.\n\n if (!isHydrating) {\n {\n // When syncing the value attribute, the value property should use\n // the wrapperState._initialValue property. This uses:\n //\n // 1. The value React property when present\n // 2. The defaultValue React property when present\n // 3. An empty string\n if (initialValue !== node.value) {\n node.value = initialValue;\n }\n }\n }\n\n {\n // Otherwise, the value attribute is synchronized to the property,\n // so we assign defaultValue to the same thing as the value property\n // assignment step above.\n node.defaultValue = initialValue;\n }\n } // Normally, we'd just do `node.checked = node.checked` upon initial mount, less this bug\n // this is needed to work around a chrome bug where setting defaultChecked\n // will sometimes influence the value of checked (even after detachment).\n // Reference: https://bugs.chromium.org/p/chromium/issues/detail?id=608416\n // We need to temporarily unset name to avoid disrupting radio button groups.\n\n\n var name = node.name;\n\n if (name !== '') {\n node.name = '';\n }\n\n {\n // When syncing the checked attribute, both the checked property and\n // attribute are assigned at the same time using defaultChecked. This uses:\n //\n // 1. The checked React property when present\n // 2. The defaultChecked React property when present\n // 3. Otherwise, false\n node.defaultChecked = !node.defaultChecked;\n node.defaultChecked = !!node._wrapperState.initialChecked;\n }\n\n if (name !== '') {\n node.name = name;\n }\n}\nfunction restoreControlledState(element, props) {\n var node = element;\n updateWrapper(node, props);\n updateNamedCousins(node, props);\n}\n\nfunction updateNamedCousins(rootNode, props) {\n var name = props.name;\n\n if (props.type === 'radio' && name != null) {\n var queryRoot = rootNode;\n\n while (queryRoot.parentNode) {\n queryRoot = queryRoot.parentNode;\n } // If `rootNode.form` was non-null, then we could try `form.elements`,\n // but that sometimes behaves strangely in IE8. We could also try using\n // `form.getElementsByName`, but that will only return direct children\n // and won't include inputs that use the HTML5 `form=` attribute. Since\n // the input might not even be in a form. It might not even be in the\n // document. Let's just use the local `querySelectorAll` to ensure we don't\n // miss anything.\n\n\n var group = queryRoot.querySelectorAll('input[name=' + JSON.stringify('' + name) + '][type=\"radio\"]');\n\n for (var i = 0; i < group.length; i++) {\n var otherNode = group[i];\n\n if (otherNode === rootNode || otherNode.form !== rootNode.form) {\n continue;\n } // This will throw if radio buttons rendered by different copies of React\n // and the same name are rendered into the same form (same as #1939).\n // That's probably okay; we don't support it just as we don't support\n // mixing React radio buttons with non-React ones.\n\n\n var otherProps = getFiberCurrentPropsFromNode(otherNode);\n\n if (!otherProps) {\n {\n throw Error( \"ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported.\" );\n }\n } // We need update the tracked value on the named cousin since the value\n // was changed but the input saw no event or value set\n\n\n updateValueIfChanged(otherNode); // If this is a controlled radio button group, forcing the input that\n // was previously checked to update will cause it to be come re-checked\n // as appropriate.\n\n updateWrapper(otherNode, otherProps);\n }\n }\n} // In Chrome, assigning defaultValue to certain input types triggers input validation.\n// For number inputs, the display value loses trailing decimal points. For email inputs,\n// Chrome raises \"The specified value <x> is not a valid email address\".\n//\n// Here we check to see if the defaultValue has actually changed, avoiding these problems\n// when the user is inputting text\n//\n// https://github.com/facebook/react/issues/7253\n\n\nfunction setDefaultValue(node, type, value) {\n if ( // Focused number inputs synchronize on blur. See ChangeEventPlugin.js\n type !== 'number' || getActiveElement(node.ownerDocument) !== node) {\n if (value == null) {\n node.defaultValue = toString(node._wrapperState.initialValue);\n } else if (node.defaultValue !== toString(value)) {\n node.defaultValue = toString(value);\n }\n }\n}\n\nvar didWarnSelectedSetOnOption = false;\nvar didWarnInvalidChild = false;\n\nfunction flattenChildren(children) {\n var content = ''; // Flatten children. We'll warn if they are invalid\n // during validateProps() which runs for hydration too.\n // Note that this would throw on non-element objects.\n // Elements are stringified (which is normally irrelevant\n // but matters for <fbt>).\n\n React.Children.forEach(children, function (child) {\n if (child == null) {\n return;\n }\n\n content += child; // Note: we don't warn about invalid children here.\n // Instead, this is done separately below so that\n // it happens during the hydration code path too.\n });\n return content;\n}\n/**\n * Implements an <option> host component that warns when `selected` is set.\n */\n\n\nfunction validateProps(element, props) {\n {\n // This mirrors the code path above, but runs for hydration too.\n // Warn about invalid children here so that client and hydration are consistent.\n // TODO: this seems like it could cause a DEV-only throw for hydration\n // if children contains a non-element object. We should try to avoid that.\n if (typeof props.children === 'object' && props.children !== null) {\n React.Children.forEach(props.children, function (child) {\n if (child == null) {\n return;\n }\n\n if (typeof child === 'string' || typeof child === 'number') {\n return;\n }\n\n if (typeof child.type !== 'string') {\n return;\n }\n\n if (!didWarnInvalidChild) {\n didWarnInvalidChild = true;\n\n error('Only strings and numbers are supported as <option> children.');\n }\n });\n } // TODO: Remove support for `selected` in <option>.\n\n\n if (props.selected != null && !didWarnSelectedSetOnOption) {\n error('Use the `defaultValue` or `value` props on <select> instead of ' + 'setting `selected` on <option>.');\n\n didWarnSelectedSetOnOption = true;\n }\n }\n}\nfunction postMountWrapper$1(element, props) {\n // value=\"\" should make a value attribute (#6219)\n if (props.value != null) {\n element.setAttribute('value', toString(getToStringValue(props.value)));\n }\n}\nfunction getHostProps$1(element, props) {\n var hostProps = _assign({\n children: undefined\n }, props);\n\n var content = flattenChildren(props.children);\n\n if (content) {\n hostProps.children = content;\n }\n\n return hostProps;\n}\n\nvar didWarnValueDefaultValue$1;\n\n{\n didWarnValueDefaultValue$1 = false;\n}\n\nfunction getDeclarationErrorAddendum() {\n var ownerName = getCurrentFiberOwnerNameInDevOrNull();\n\n if (ownerName) {\n return '\\n\\nCheck the render method of `' + ownerName + '`.';\n }\n\n return '';\n}\n\nvar valuePropNames = ['value', 'defaultValue'];\n/**\n * Validation function for `value` and `defaultValue`.\n */\n\nfunction checkSelectPropTypes(props) {\n {\n checkControlledValueProps('select', props);\n\n for (var i = 0; i < valuePropNames.length; i++) {\n var propName = valuePropNames[i];\n\n if (props[propName] == null) {\n continue;\n }\n\n var isArray = Array.isArray(props[propName]);\n\n if (props.multiple && !isArray) {\n error('The `%s` prop supplied to <select> must be an array if ' + '`multiple` is true.%s', propName, getDeclarationErrorAddendum());\n } else if (!props.multiple && isArray) {\n error('The `%s` prop supplied to <select> must be a scalar ' + 'value if `multiple` is false.%s', propName, getDeclarationErrorAddendum());\n }\n }\n }\n}\n\nfunction updateOptions(node, multiple, propValue, setDefaultSelected) {\n var options = node.options;\n\n if (multiple) {\n var selectedValues = propValue;\n var selectedValue = {};\n\n for (var i = 0; i < selectedValues.length; i++) {\n // Prefix to avoid chaos with special keys.\n selectedValue['$' + selectedValues[i]] = true;\n }\n\n for (var _i = 0; _i < options.length; _i++) {\n var selected = selectedValue.hasOwnProperty('$' + options[_i].value);\n\n if (options[_i].selected !== selected) {\n options[_i].selected = selected;\n }\n\n if (selected && setDefaultSelected) {\n options[_i].defaultSelected = true;\n }\n }\n } else {\n // Do not set `select.value` as exact behavior isn't consistent across all\n // browsers for all cases.\n var _selectedValue = toString(getToStringValue(propValue));\n\n var defaultSelected = null;\n\n for (var _i2 = 0; _i2 < options.length; _i2++) {\n if (options[_i2].value === _selectedValue) {\n options[_i2].selected = true;\n\n if (setDefaultSelected) {\n options[_i2].defaultSelected = true;\n }\n\n return;\n }\n\n if (defaultSelected === null && !options[_i2].disabled) {\n defaultSelected = options[_i2];\n }\n }\n\n if (defaultSelected !== null) {\n defaultSelected.selected = true;\n }\n }\n}\n/**\n * Implements a <select> host component that allows optionally setting the\n * props `value` and `defaultValue`. If `multiple` is false, the prop must be a\n * stringable. If `multiple` is true, the prop must be an array of stringables.\n *\n * If `value` is not supplied (or null/undefined), user actions that change the\n * selected option will trigger updates to the rendered options.\n *\n * If it is supplied (and not null/undefined), the rendered options will not\n * update in response to user actions. Instead, the `value` prop must change in\n * order for the rendered options to update.\n *\n * If `defaultValue` is provided, any options with the supplied values will be\n * selected.\n */\n\n\nfunction getHostProps$2(element, props) {\n return _assign({}, props, {\n value: undefined\n });\n}\nfunction initWrapperState$1(element, props) {\n var node = element;\n\n {\n checkSelectPropTypes(props);\n }\n\n node._wrapperState = {\n wasMultiple: !!props.multiple\n };\n\n {\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue$1) {\n error('Select elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled select ' + 'element and remove one of these props. More info: ' + 'https://reactjs.org/link/controlled-components');\n\n didWarnValueDefaultValue$1 = true;\n }\n }\n}\nfunction postMountWrapper$2(element, props) {\n var node = element;\n node.multiple = !!props.multiple;\n var value = props.value;\n\n if (value != null) {\n updateOptions(node, !!props.multiple, value, false);\n } else if (props.defaultValue != null) {\n updateOptions(node, !!props.multiple, props.defaultValue, true);\n }\n}\nfunction postUpdateWrapper(element, props) {\n var node = element;\n var wasMultiple = node._wrapperState.wasMultiple;\n node._wrapperState.wasMultiple = !!props.multiple;\n var value = props.value;\n\n if (value != null) {\n updateOptions(node, !!props.multiple, value, false);\n } else if (wasMultiple !== !!props.multiple) {\n // For simplicity, reapply `defaultValue` if `multiple` is toggled.\n if (props.defaultValue != null) {\n updateOptions(node, !!props.multiple, props.defaultValue, true);\n } else {\n // Revert the select back to its default unselected state.\n updateOptions(node, !!props.multiple, props.multiple ? [] : '', false);\n }\n }\n}\nfunction restoreControlledState$1(element, props) {\n var node = element;\n var value = props.value;\n\n if (value != null) {\n updateOptions(node, !!props.multiple, value, false);\n }\n}\n\nvar didWarnValDefaultVal = false;\n\n/**\n * Implements a <textarea> host component that allows setting `value`, and\n * `defaultValue`. This differs from the traditional DOM API because value is\n * usually set as PCDATA children.\n *\n * If `value` is not supplied (or null/undefined), user actions that affect the\n * value will trigger updates to the element.\n *\n * If `value` is supplied (and not null/undefined), the rendered element will\n * not trigger updates to the element. Instead, the `value` prop must change in\n * order for the rendered element to be updated.\n *\n * The rendered element will be initialized with an empty value, the prop\n * `defaultValue` if specified, or the children content (deprecated).\n */\nfunction getHostProps$3(element, props) {\n var node = element;\n\n if (!(props.dangerouslySetInnerHTML == null)) {\n {\n throw Error( \"`dangerouslySetInnerHTML` does not make sense on <textarea>.\" );\n }\n } // Always set children to the same thing. In IE9, the selection range will\n // get reset if `textContent` is mutated. We could add a check in setTextContent\n // to only set the value if/when the value differs from the node value (which would\n // completely solve this IE9 bug), but Sebastian+Sophie seemed to like this\n // solution. The value can be a boolean or object so that's why it's forced\n // to be a string.\n\n\n var hostProps = _assign({}, props, {\n value: undefined,\n defaultValue: undefined,\n children: toString(node._wrapperState.initialValue)\n });\n\n return hostProps;\n}\nfunction initWrapperState$2(element, props) {\n var node = element;\n\n {\n checkControlledValueProps('textarea', props);\n\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValDefaultVal) {\n error('%s contains a textarea with both value and defaultValue props. ' + 'Textarea elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled textarea ' + 'and remove one of these props. More info: ' + 'https://reactjs.org/link/controlled-components', getCurrentFiberOwnerNameInDevOrNull() || 'A component');\n\n didWarnValDefaultVal = true;\n }\n }\n\n var initialValue = props.value; // Only bother fetching default value if we're going to use it\n\n if (initialValue == null) {\n var children = props.children,\n defaultValue = props.defaultValue;\n\n if (children != null) {\n {\n error('Use the `defaultValue` or `value` props instead of setting ' + 'children on <textarea>.');\n }\n\n {\n if (!(defaultValue == null)) {\n {\n throw Error( \"If you supply `defaultValue` on a <textarea>, do not pass children.\" );\n }\n }\n\n if (Array.isArray(children)) {\n if (!(children.length <= 1)) {\n {\n throw Error( \"<textarea> can only have at most one child.\" );\n }\n }\n\n children = children[0];\n }\n\n defaultValue = children;\n }\n }\n\n if (defaultValue == null) {\n defaultValue = '';\n }\n\n initialValue = defaultValue;\n }\n\n node._wrapperState = {\n initialValue: getToStringValue(initialValue)\n };\n}\nfunction updateWrapper$1(element, props) {\n var node = element;\n var value = getToStringValue(props.value);\n var defaultValue = getToStringValue(props.defaultValue);\n\n if (value != null) {\n // Cast `value` to a string to ensure the value is set correctly. While\n // browsers typically do this as necessary, jsdom doesn't.\n var newValue = toString(value); // To avoid side effects (such as losing text selection), only set value if changed\n\n if (newValue !== node.value) {\n node.value = newValue;\n }\n\n if (props.defaultValue == null && node.defaultValue !== newValue) {\n node.defaultValue = newValue;\n }\n }\n\n if (defaultValue != null) {\n node.defaultValue = toString(defaultValue);\n }\n}\nfunction postMountWrapper$3(element, props) {\n var node = element; // This is in postMount because we need access to the DOM node, which is not\n // available until after the component has mounted.\n\n var textContent = node.textContent; // Only set node.value if textContent is equal to the expected\n // initial value. In IE10/IE11 there is a bug where the placeholder attribute\n // will populate textContent as well.\n // https://developer.microsoft.com/microsoft-edge/platform/issues/101525/\n\n if (textContent === node._wrapperState.initialValue) {\n if (textContent !== '' && textContent !== null) {\n node.value = textContent;\n }\n }\n}\nfunction restoreControlledState$2(element, props) {\n // DOM component is still mounted; update\n updateWrapper$1(element, props);\n}\n\nvar HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\nvar MATH_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\nvar SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\nvar Namespaces = {\n html: HTML_NAMESPACE,\n mathml: MATH_NAMESPACE,\n svg: SVG_NAMESPACE\n}; // Assumes there is no parent namespace.\n\nfunction getIntrinsicNamespace(type) {\n switch (type) {\n case 'svg':\n return SVG_NAMESPACE;\n\n case 'math':\n return MATH_NAMESPACE;\n\n default:\n return HTML_NAMESPACE;\n }\n}\nfunction getChildNamespace(parentNamespace, type) {\n if (parentNamespace == null || parentNamespace === HTML_NAMESPACE) {\n // No (or default) parent namespace: potential entry point.\n return getIntrinsicNamespace(type);\n }\n\n if (parentNamespace === SVG_NAMESPACE && type === 'foreignObject') {\n // We're leaving SVG.\n return HTML_NAMESPACE;\n } // By default, pass namespace below.\n\n\n return parentNamespace;\n}\n\n/* globals MSApp */\n\n/**\n * Create a function which has 'unsafe' privileges (required by windows8 apps)\n */\nvar createMicrosoftUnsafeLocalFunction = function (func) {\n if (typeof MSApp !== 'undefined' && MSApp.execUnsafeLocalFunction) {\n return function (arg0, arg1, arg2, arg3) {\n MSApp.execUnsafeLocalFunction(function () {\n return func(arg0, arg1, arg2, arg3);\n });\n };\n } else {\n return func;\n }\n};\n\nvar reusableSVGContainer;\n/**\n * Set the innerHTML property of a node\n *\n * @param {DOMElement} node\n * @param {string} html\n * @internal\n */\n\nvar setInnerHTML = createMicrosoftUnsafeLocalFunction(function (node, html) {\n if (node.namespaceURI === Namespaces.svg) {\n\n if (!('innerHTML' in node)) {\n // IE does not have innerHTML for SVG nodes, so instead we inject the\n // new markup in a temp node and then move the child nodes across into\n // the target node\n reusableSVGContainer = reusableSVGContainer || document.createElement('div');\n reusableSVGContainer.innerHTML = '<svg>' + html.valueOf().toString() + '</svg>';\n var svgNode = reusableSVGContainer.firstChild;\n\n while (node.firstChild) {\n node.removeChild(node.firstChild);\n }\n\n while (svgNode.firstChild) {\n node.appendChild(svgNode.firstChild);\n }\n\n return;\n }\n }\n\n node.innerHTML = html;\n});\n\n/**\n * HTML nodeType values that represent the type of the node\n */\nvar ELEMENT_NODE = 1;\nvar TEXT_NODE = 3;\nvar COMMENT_NODE = 8;\nvar DOCUMENT_NODE = 9;\nvar DOCUMENT_FRAGMENT_NODE = 11;\n\n/**\n * Set the textContent property of a node. For text updates, it's faster\n * to set the `nodeValue` of the Text node directly instead of using\n * `.textContent` which will remove the existing node and create a new one.\n *\n * @param {DOMElement} node\n * @param {string} text\n * @internal\n */\n\nvar setTextContent = function (node, text) {\n if (text) {\n var firstChild = node.firstChild;\n\n if (firstChild && firstChild === node.lastChild && firstChild.nodeType === TEXT_NODE) {\n firstChild.nodeValue = text;\n return;\n }\n }\n\n node.textContent = text;\n};\n\n// List derived from Gecko source code:\n// https://github.com/mozilla/gecko-dev/blob/4e638efc71/layout/style/test/property_database.js\nvar shorthandToLonghand = {\n animation: ['animationDelay', 'animationDirection', 'animationDuration', 'animationFillMode', 'animationIterationCount', 'animationName', 'animationPlayState', 'animationTimingFunction'],\n background: ['backgroundAttachment', 'backgroundClip', 'backgroundColor', 'backgroundImage', 'backgroundOrigin', 'backgroundPositionX', 'backgroundPositionY', 'backgroundRepeat', 'backgroundSize'],\n backgroundPosition: ['backgroundPositionX', 'backgroundPositionY'],\n border: ['borderBottomColor', 'borderBottomStyle', 'borderBottomWidth', 'borderImageOutset', 'borderImageRepeat', 'borderImageSlice', 'borderImageSource', 'borderImageWidth', 'borderLeftColor', 'borderLeftStyle', 'borderLeftWidth', 'borderRightColor', 'borderRightStyle', 'borderRightWidth', 'borderTopColor', 'borderTopStyle', 'borderTopWidth'],\n borderBlockEnd: ['borderBlockEndColor', 'borderBlockEndStyle', 'borderBlockEndWidth'],\n borderBlockStart: ['borderBlockStartColor', 'borderBlockStartStyle', 'borderBlockStartWidth'],\n borderBottom: ['borderBottomColor', 'borderBottomStyle', 'borderBottomWidth'],\n borderColor: ['borderBottomColor', 'borderLeftColor', 'borderRightColor', 'borderTopColor'],\n borderImage: ['borderImageOutset', 'borderImageRepeat', 'borderImageSlice', 'borderImageSource', 'borderImageWidth'],\n borderInlineEnd: ['borderInlineEndColor', 'borderInlineEndStyle', 'borderInlineEndWidth'],\n borderInlineStart: ['borderInlineStartColor', 'borderInlineStartStyle', 'borderInlineStartWidth'],\n borderLeft: ['borderLeftColor', 'borderLeftStyle', 'borderLeftWidth'],\n borderRadius: ['borderBottomLeftRadius', 'borderBottomRightRadius', 'borderTopLeftRadius', 'borderTopRightRadius'],\n borderRight: ['borderRightColor', 'borderRightStyle', 'borderRightWidth'],\n borderStyle: ['borderBottomStyle', 'borderLeftStyle', 'borderRightStyle', 'borderTopStyle'],\n borderTop: ['borderTopColor', 'borderTopStyle', 'borderTopWidth'],\n borderWidth: ['borderBottomWidth', 'borderLeftWidth', 'borderRightWidth', 'borderTopWidth'],\n columnRule: ['columnRuleColor', 'columnRuleStyle', 'columnRuleWidth'],\n columns: ['columnCount', 'columnWidth'],\n flex: ['flexBasis', 'flexGrow', 'flexShrink'],\n flexFlow: ['flexDirection', 'flexWrap'],\n font: ['fontFamily', 'fontFeatureSettings', 'fontKerning', 'fontLanguageOverride', 'fontSize', 'fontSizeAdjust', 'fontStretch', 'fontStyle', 'fontVariant', 'fontVariantAlternates', 'fontVariantCaps', 'fontVariantEastAsian', 'fontVariantLigatures', 'fontVariantNumeric', 'fontVariantPosition', 'fontWeight', 'lineHeight'],\n fontVariant: ['fontVariantAlternates', 'fontVariantCaps', 'fontVariantEastAsian', 'fontVariantLigatures', 'fontVariantNumeric', 'fontVariantPosition'],\n gap: ['columnGap', 'rowGap'],\n grid: ['gridAutoColumns', 'gridAutoFlow', 'gridAutoRows', 'gridTemplateAreas', 'gridTemplateColumns', 'gridTemplateRows'],\n gridArea: ['gridColumnEnd', 'gridColumnStart', 'gridRowEnd', 'gridRowStart'],\n gridColumn: ['gridColumnEnd', 'gridColumnStart'],\n gridColumnGap: ['columnGap'],\n gridGap: ['columnGap', 'rowGap'],\n gridRow: ['gridRowEnd', 'gridRowStart'],\n gridRowGap: ['rowGap'],\n gridTemplate: ['gridTemplateAreas', 'gridTemplateColumns', 'gridTemplateRows'],\n listStyle: ['listStyleImage', 'listStylePosition', 'listStyleType'],\n margin: ['marginBottom', 'marginLeft', 'marginRight', 'marginTop'],\n marker: ['markerEnd', 'markerMid', 'markerStart'],\n mask: ['maskClip', 'maskComposite', 'maskImage', 'maskMode', 'maskOrigin', 'maskPositionX', 'maskPositionY', 'maskRepeat', 'maskSize'],\n maskPosition: ['maskPositionX', 'maskPositionY'],\n outline: ['outlineColor', 'outlineStyle', 'outlineWidth'],\n overflow: ['overflowX', 'overflowY'],\n padding: ['paddingBottom', 'paddingLeft', 'paddingRight', 'paddingTop'],\n placeContent: ['alignContent', 'justifyContent'],\n placeItems: ['alignItems', 'justifyItems'],\n placeSelf: ['alignSelf', 'justifySelf'],\n textDecoration: ['textDecorationColor', 'textDecorationLine', 'textDecorationStyle'],\n textEmphasis: ['textEmphasisColor', 'textEmphasisStyle'],\n transition: ['transitionDelay', 'transitionDuration', 'transitionProperty', 'transitionTimingFunction'],\n wordWrap: ['overflowWrap']\n};\n\n/**\n * CSS properties which accept numbers but are not in units of \"px\".\n */\nvar isUnitlessNumber = {\n animationIterationCount: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n columns: true,\n flex: true,\n flexGrow: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n flexOrder: true,\n gridArea: true,\n gridRow: true,\n gridRowEnd: true,\n gridRowSpan: true,\n gridRowStart: true,\n gridColumn: true,\n gridColumnEnd: true,\n gridColumnSpan: true,\n gridColumnStart: true,\n fontWeight: true,\n lineClamp: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n // SVG-related properties\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true\n};\n/**\n * @param {string} prefix vendor-specific prefix, eg: Webkit\n * @param {string} key style name, eg: transitionDuration\n * @return {string} style name prefixed with `prefix`, properly camelCased, eg:\n * WebkitTransitionDuration\n */\n\nfunction prefixKey(prefix, key) {\n return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n}\n/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */\n\n\nvar prefixes = ['Webkit', 'ms', 'Moz', 'O']; // Using Object.keys here, or else the vanilla for-in loop makes IE8 go into an\n// infinite loop, because it iterates over the newly added props too.\n\nObject.keys(isUnitlessNumber).forEach(function (prop) {\n prefixes.forEach(function (prefix) {\n isUnitlessNumber[prefixKey(prefix, prop)] = isUnitlessNumber[prop];\n });\n});\n\n/**\n * Convert a value into the proper css writable value. The style name `name`\n * should be logical (no hyphens), as specified\n * in `CSSProperty.isUnitlessNumber`.\n *\n * @param {string} name CSS property name such as `topMargin`.\n * @param {*} value CSS property value such as `10px`.\n * @return {string} Normalized style value with dimensions applied.\n */\n\nfunction dangerousStyleValue(name, value, isCustomProperty) {\n // Note that we've removed escapeTextForBrowser() calls here since the\n // whole string will be escaped when the attribute is injected into\n // the markup. If you provide unsafe user data here they can inject\n // arbitrary CSS which may be problematic (I couldn't repro this):\n // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet\n // http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/\n // This is not an XSS hole but instead a potential CSS injection issue\n // which has lead to a greater discussion about how we're going to\n // trust URLs moving forward. See #2115901\n var isEmpty = value == null || typeof value === 'boolean' || value === '';\n\n if (isEmpty) {\n return '';\n }\n\n if (!isCustomProperty && typeof value === 'number' && value !== 0 && !(isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name])) {\n return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers\n }\n\n return ('' + value).trim();\n}\n\nvar uppercasePattern = /([A-Z])/g;\nvar msPattern = /^ms-/;\n/**\n * Hyphenates a camelcased CSS property name, for example:\n *\n * > hyphenateStyleName('backgroundColor')\n * < \"background-color\"\n * > hyphenateStyleName('MozTransition')\n * < \"-moz-transition\"\n * > hyphenateStyleName('msTransition')\n * < \"-ms-transition\"\n *\n * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix\n * is converted to `-ms-`.\n */\n\nfunction hyphenateStyleName(name) {\n return name.replace(uppercasePattern, '-$1').toLowerCase().replace(msPattern, '-ms-');\n}\n\nvar warnValidStyle = function () {};\n\n{\n // 'msTransform' is correct, but the other prefixes should be capitalized\n var badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/;\n var msPattern$1 = /^-ms-/;\n var hyphenPattern = /-(.)/g; // style values shouldn't contain a semicolon\n\n var badStyleValueWithSemicolonPattern = /;\\s*$/;\n var warnedStyleNames = {};\n var warnedStyleValues = {};\n var warnedForNaNValue = false;\n var warnedForInfinityValue = false;\n\n var camelize = function (string) {\n return string.replace(hyphenPattern, function (_, character) {\n return character.toUpperCase();\n });\n };\n\n var warnHyphenatedStyleName = function (name) {\n if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n return;\n }\n\n warnedStyleNames[name] = true;\n\n error('Unsupported style property %s. Did you mean %s?', name, // As Andi Smith suggests\n // (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix\n // is converted to lowercase `ms`.\n camelize(name.replace(msPattern$1, 'ms-')));\n };\n\n var warnBadVendoredStyleName = function (name) {\n if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n return;\n }\n\n warnedStyleNames[name] = true;\n\n error('Unsupported vendor-prefixed style property %s. Did you mean %s?', name, name.charAt(0).toUpperCase() + name.slice(1));\n };\n\n var warnStyleValueWithSemicolon = function (name, value) {\n if (warnedStyleValues.hasOwnProperty(value) && warnedStyleValues[value]) {\n return;\n }\n\n warnedStyleValues[value] = true;\n\n error(\"Style property values shouldn't contain a semicolon. \" + 'Try \"%s: %s\" instead.', name, value.replace(badStyleValueWithSemicolonPattern, ''));\n };\n\n var warnStyleValueIsNaN = function (name, value) {\n if (warnedForNaNValue) {\n return;\n }\n\n warnedForNaNValue = true;\n\n error('`NaN` is an invalid value for the `%s` css style property.', name);\n };\n\n var warnStyleValueIsInfinity = function (name, value) {\n if (warnedForInfinityValue) {\n return;\n }\n\n warnedForInfinityValue = true;\n\n error('`Infinity` is an invalid value for the `%s` css style property.', name);\n };\n\n warnValidStyle = function (name, value) {\n if (name.indexOf('-') > -1) {\n warnHyphenatedStyleName(name);\n } else if (badVendoredStyleNamePattern.test(name)) {\n warnBadVendoredStyleName(name);\n } else if (badStyleValueWithSemicolonPattern.test(value)) {\n warnStyleValueWithSemicolon(name, value);\n }\n\n if (typeof value === 'number') {\n if (isNaN(value)) {\n warnStyleValueIsNaN(name, value);\n } else if (!isFinite(value)) {\n warnStyleValueIsInfinity(name, value);\n }\n }\n };\n}\n\nvar warnValidStyle$1 = warnValidStyle;\n\n/**\n * Operations for dealing with CSS properties.\n */\n\n/**\n * This creates a string that is expected to be equivalent to the style\n * attribute generated by server-side rendering. It by-passes warnings and\n * security checks so it's not safe to use this value for anything other than\n * comparison. It is only used in DEV for SSR validation.\n */\n\nfunction createDangerousStringForStyles(styles) {\n {\n var serialized = '';\n var delimiter = '';\n\n for (var styleName in styles) {\n if (!styles.hasOwnProperty(styleName)) {\n continue;\n }\n\n var styleValue = styles[styleName];\n\n if (styleValue != null) {\n var isCustomProperty = styleName.indexOf('--') === 0;\n serialized += delimiter + (isCustomProperty ? styleName : hyphenateStyleName(styleName)) + ':';\n serialized += dangerousStyleValue(styleName, styleValue, isCustomProperty);\n delimiter = ';';\n }\n }\n\n return serialized || null;\n }\n}\n/**\n * Sets the value for multiple styles on a node. If a value is specified as\n * '' (empty string), the corresponding style property will be unset.\n *\n * @param {DOMElement} node\n * @param {object} styles\n */\n\nfunction setValueForStyles(node, styles) {\n var style = node.style;\n\n for (var styleName in styles) {\n if (!styles.hasOwnProperty(styleName)) {\n continue;\n }\n\n var isCustomProperty = styleName.indexOf('--') === 0;\n\n {\n if (!isCustomProperty) {\n warnValidStyle$1(styleName, styles[styleName]);\n }\n }\n\n var styleValue = dangerousStyleValue(styleName, styles[styleName], isCustomProperty);\n\n if (styleName === 'float') {\n styleName = 'cssFloat';\n }\n\n if (isCustomProperty) {\n style.setProperty(styleName, styleValue);\n } else {\n style[styleName] = styleValue;\n }\n }\n}\n\nfunction isValueEmpty(value) {\n return value == null || typeof value === 'boolean' || value === '';\n}\n/**\n * Given {color: 'red', overflow: 'hidden'} returns {\n * color: 'color',\n * overflowX: 'overflow',\n * overflowY: 'overflow',\n * }. This can be read as \"the overflowY property was set by the overflow\n * shorthand\". That is, the values are the property that each was derived from.\n */\n\n\nfunction expandShorthandMap(styles) {\n var expanded = {};\n\n for (var key in styles) {\n var longhands = shorthandToLonghand[key] || [key];\n\n for (var i = 0; i < longhands.length; i++) {\n expanded[longhands[i]] = key;\n }\n }\n\n return expanded;\n}\n/**\n * When mixing shorthand and longhand property names, we warn during updates if\n * we expect an incorrect result to occur. In particular, we warn for:\n *\n * Updating a shorthand property (longhand gets overwritten):\n * {font: 'foo', fontVariant: 'bar'} -> {font: 'baz', fontVariant: 'bar'}\n * becomes .style.font = 'baz'\n * Removing a shorthand property (longhand gets lost too):\n * {font: 'foo', fontVariant: 'bar'} -> {fontVariant: 'bar'}\n * becomes .style.font = ''\n * Removing a longhand property (should revert to shorthand; doesn't):\n * {font: 'foo', fontVariant: 'bar'} -> {font: 'foo'}\n * becomes .style.fontVariant = ''\n */\n\n\nfunction validateShorthandPropertyCollisionInDev(styleUpdates, nextStyles) {\n {\n if (!nextStyles) {\n return;\n }\n\n var expandedUpdates = expandShorthandMap(styleUpdates);\n var expandedStyles = expandShorthandMap(nextStyles);\n var warnedAbout = {};\n\n for (var key in expandedUpdates) {\n var originalKey = expandedUpdates[key];\n var correctOriginalKey = expandedStyles[key];\n\n if (correctOriginalKey && originalKey !== correctOriginalKey) {\n var warningKey = originalKey + ',' + correctOriginalKey;\n\n if (warnedAbout[warningKey]) {\n continue;\n }\n\n warnedAbout[warningKey] = true;\n\n error('%s a style property during rerender (%s) when a ' + 'conflicting property is set (%s) can lead to styling bugs. To ' + \"avoid this, don't mix shorthand and non-shorthand properties \" + 'for the same value; instead, replace the shorthand with ' + 'separate values.', isValueEmpty(styleUpdates[originalKey]) ? 'Removing' : 'Updating', originalKey, correctOriginalKey);\n }\n }\n }\n}\n\n// For HTML, certain tags should omit their close tag. We keep a list for\n// those special-case tags.\nvar omittedCloseTags = {\n area: true,\n base: true,\n br: true,\n col: true,\n embed: true,\n hr: true,\n img: true,\n input: true,\n keygen: true,\n link: true,\n meta: true,\n param: true,\n source: true,\n track: true,\n wbr: true // NOTE: menuitem's close tag should be omitted, but that causes problems.\n\n};\n\n// `omittedCloseTags` except that `menuitem` should still have its closing tag.\n\nvar voidElementTags = _assign({\n menuitem: true\n}, omittedCloseTags);\n\nvar HTML = '__html';\n\nfunction assertValidProps(tag, props) {\n if (!props) {\n return;\n } // Note the use of `==` which checks for null or undefined.\n\n\n if (voidElementTags[tag]) {\n if (!(props.children == null && props.dangerouslySetInnerHTML == null)) {\n {\n throw Error( tag + \" is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.\" );\n }\n }\n }\n\n if (props.dangerouslySetInnerHTML != null) {\n if (!(props.children == null)) {\n {\n throw Error( \"Can only set one of `children` or `props.dangerouslySetInnerHTML`.\" );\n }\n }\n\n if (!(typeof props.dangerouslySetInnerHTML === 'object' && HTML in props.dangerouslySetInnerHTML)) {\n {\n throw Error( \"`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://reactjs.org/link/dangerously-set-inner-html for more information.\" );\n }\n }\n }\n\n {\n if (!props.suppressContentEditableWarning && props.contentEditable && props.children != null) {\n error('A component is `contentEditable` and contains `children` managed by ' + 'React. It is now your responsibility to guarantee that none of ' + 'those nodes are unexpectedly modified or duplicated. This is ' + 'probably not intentional.');\n }\n }\n\n if (!(props.style == null || typeof props.style === 'object')) {\n {\n throw Error( \"The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + 'em'}} when using JSX.\" );\n }\n }\n}\n\nfunction isCustomComponent(tagName, props) {\n if (tagName.indexOf('-') === -1) {\n return typeof props.is === 'string';\n }\n\n switch (tagName) {\n // These are reserved SVG and MathML elements.\n // We don't mind this list too much because we expect it to never grow.\n // The alternative is to track the namespace in a few places which is convoluted.\n // https://w3c.github.io/webcomponents/spec/custom/#custom-elements-core-concepts\n case 'annotation-xml':\n case 'color-profile':\n case 'font-face':\n case 'font-face-src':\n case 'font-face-uri':\n case 'font-face-format':\n case 'font-face-name':\n case 'missing-glyph':\n return false;\n\n default:\n return true;\n }\n}\n\n// When adding attributes to the HTML or SVG allowed attribute list, be sure to\n// also add them to this module to ensure casing and incorrect name\n// warnings.\nvar possibleStandardNames = {\n // HTML\n accept: 'accept',\n acceptcharset: 'acceptCharset',\n 'accept-charset': 'acceptCharset',\n accesskey: 'accessKey',\n action: 'action',\n allowfullscreen: 'allowFullScreen',\n alt: 'alt',\n as: 'as',\n async: 'async',\n autocapitalize: 'autoCapitalize',\n autocomplete: 'autoComplete',\n autocorrect: 'autoCorrect',\n autofocus: 'autoFocus',\n autoplay: 'autoPlay',\n autosave: 'autoSave',\n capture: 'capture',\n cellpadding: 'cellPadding',\n cellspacing: 'cellSpacing',\n challenge: 'challenge',\n charset: 'charSet',\n checked: 'checked',\n children: 'children',\n cite: 'cite',\n class: 'className',\n classid: 'classID',\n classname: 'className',\n cols: 'cols',\n colspan: 'colSpan',\n content: 'content',\n contenteditable: 'contentEditable',\n contextmenu: 'contextMenu',\n controls: 'controls',\n controlslist: 'controlsList',\n coords: 'coords',\n crossorigin: 'crossOrigin',\n dangerouslysetinnerhtml: 'dangerouslySetInnerHTML',\n data: 'data',\n datetime: 'dateTime',\n default: 'default',\n defaultchecked: 'defaultChecked',\n defaultvalue: 'defaultValue',\n defer: 'defer',\n dir: 'dir',\n disabled: 'disabled',\n disablepictureinpicture: 'disablePictureInPicture',\n disableremoteplayback: 'disableRemotePlayback',\n download: 'download',\n draggable: 'draggable',\n enctype: 'encType',\n enterkeyhint: 'enterKeyHint',\n for: 'htmlFor',\n form: 'form',\n formmethod: 'formMethod',\n formaction: 'formAction',\n formenctype: 'formEncType',\n formnovalidate: 'formNoValidate',\n formtarget: 'formTarget',\n frameborder: 'frameBorder',\n headers: 'headers',\n height: 'height',\n hidden: 'hidden',\n high: 'high',\n href: 'href',\n hreflang: 'hrefLang',\n htmlfor: 'htmlFor',\n httpequiv: 'httpEquiv',\n 'http-equiv': 'httpEquiv',\n icon: 'icon',\n id: 'id',\n innerhtml: 'innerHTML',\n inputmode: 'inputMode',\n integrity: 'integrity',\n is: 'is',\n itemid: 'itemID',\n itemprop: 'itemProp',\n itemref: 'itemRef',\n itemscope: 'itemScope',\n itemtype: 'itemType',\n keyparams: 'keyParams',\n keytype: 'keyType',\n kind: 'kind',\n label: 'label',\n lang: 'lang',\n list: 'list',\n loop: 'loop',\n low: 'low',\n manifest: 'manifest',\n marginwidth: 'marginWidth',\n marginheight: 'marginHeight',\n max: 'max',\n maxlength: 'maxLength',\n media: 'media',\n mediagroup: 'mediaGroup',\n method: 'method',\n min: 'min',\n minlength: 'minLength',\n multiple: 'multiple',\n muted: 'muted',\n name: 'name',\n nomodule: 'noModule',\n nonce: 'nonce',\n novalidate: 'noValidate',\n open: 'open',\n optimum: 'optimum',\n pattern: 'pattern',\n placeholder: 'placeholder',\n playsinline: 'playsInline',\n poster: 'poster',\n preload: 'preload',\n profile: 'profile',\n radiogroup: 'radioGroup',\n readonly: 'readOnly',\n referrerpolicy: 'referrerPolicy',\n rel: 'rel',\n required: 'required',\n reversed: 'reversed',\n role: 'role',\n rows: 'rows',\n rowspan: 'rowSpan',\n sandbox: 'sandbox',\n scope: 'scope',\n scoped: 'scoped',\n scrolling: 'scrolling',\n seamless: 'seamless',\n selected: 'selected',\n shape: 'shape',\n size: 'size',\n sizes: 'sizes',\n span: 'span',\n spellcheck: 'spellCheck',\n src: 'src',\n srcdoc: 'srcDoc',\n srclang: 'srcLang',\n srcset: 'srcSet',\n start: 'start',\n step: 'step',\n style: 'style',\n summary: 'summary',\n tabindex: 'tabIndex',\n target: 'target',\n title: 'title',\n type: 'type',\n usemap: 'useMap',\n value: 'value',\n width: 'width',\n wmode: 'wmode',\n wrap: 'wrap',\n // SVG\n about: 'about',\n accentheight: 'accentHeight',\n 'accent-height': 'accentHeight',\n accumulate: 'accumulate',\n additive: 'additive',\n alignmentbaseline: 'alignmentBaseline',\n 'alignment-baseline': 'alignmentBaseline',\n allowreorder: 'allowReorder',\n alphabetic: 'alphabetic',\n amplitude: 'amplitude',\n arabicform: 'arabicForm',\n 'arabic-form': 'arabicForm',\n ascent: 'ascent',\n attributename: 'attributeName',\n attributetype: 'attributeType',\n autoreverse: 'autoReverse',\n azimuth: 'azimuth',\n basefrequency: 'baseFrequency',\n baselineshift: 'baselineShift',\n 'baseline-shift': 'baselineShift',\n baseprofile: 'baseProfile',\n bbox: 'bbox',\n begin: 'begin',\n bias: 'bias',\n by: 'by',\n calcmode: 'calcMode',\n capheight: 'capHeight',\n 'cap-height': 'capHeight',\n clip: 'clip',\n clippath: 'clipPath',\n 'clip-path': 'clipPath',\n clippathunits: 'clipPathUnits',\n cliprule: 'clipRule',\n 'clip-rule': 'clipRule',\n color: 'color',\n colorinterpolation: 'colorInterpolation',\n 'color-interpolation': 'colorInterpolation',\n colorinterpolationfilters: 'colorInterpolationFilters',\n 'color-interpolation-filters': 'colorInterpolationFilters',\n colorprofile: 'colorProfile',\n 'color-profile': 'colorProfile',\n colorrendering: 'colorRendering',\n 'color-rendering': 'colorRendering',\n contentscripttype: 'contentScriptType',\n contentstyletype: 'contentStyleType',\n cursor: 'cursor',\n cx: 'cx',\n cy: 'cy',\n d: 'd',\n datatype: 'datatype',\n decelerate: 'decelerate',\n descent: 'descent',\n diffuseconstant: 'diffuseConstant',\n direction: 'direction',\n display: 'display',\n divisor: 'divisor',\n dominantbaseline: 'dominantBaseline',\n 'dominant-baseline': 'dominantBaseline',\n dur: 'dur',\n dx: 'dx',\n dy: 'dy',\n edgemode: 'edgeMode',\n elevation: 'elevation',\n enablebackground: 'enableBackground',\n 'enable-background': 'enableBackground',\n end: 'end',\n exponent: 'exponent',\n externalresourcesrequired: 'externalResourcesRequired',\n fill: 'fill',\n fillopacity: 'fillOpacity',\n 'fill-opacity': 'fillOpacity',\n fillrule: 'fillRule',\n 'fill-rule': 'fillRule',\n filter: 'filter',\n filterres: 'filterRes',\n filterunits: 'filterUnits',\n floodopacity: 'floodOpacity',\n 'flood-opacity': 'floodOpacity',\n floodcolor: 'floodColor',\n 'flood-color': 'floodColor',\n focusable: 'focusable',\n fontfamily: 'fontFamily',\n 'font-family': 'fontFamily',\n fontsize: 'fontSize',\n 'font-size': 'fontSize',\n fontsizeadjust: 'fontSizeAdjust',\n 'font-size-adjust': 'fontSizeAdjust',\n fontstretch: 'fontStretch',\n 'font-stretch': 'fontStretch',\n fontstyle: 'fontStyle',\n 'font-style': 'fontStyle',\n fontvariant: 'fontVariant',\n 'font-variant': 'fontVariant',\n fontweight: 'fontWeight',\n 'font-weight': 'fontWeight',\n format: 'format',\n from: 'from',\n fx: 'fx',\n fy: 'fy',\n g1: 'g1',\n g2: 'g2',\n glyphname: 'glyphName',\n 'glyph-name': 'glyphName',\n glyphorientationhorizontal: 'glyphOrientationHorizontal',\n 'glyph-orientation-horizontal': 'glyphOrientationHorizontal',\n glyphorientationvertical: 'glyphOrientationVertical',\n 'glyph-orientation-vertical': 'glyphOrientationVertical',\n glyphref: 'glyphRef',\n gradienttransform: 'gradientTransform',\n gradientunits: 'gradientUnits',\n hanging: 'hanging',\n horizadvx: 'horizAdvX',\n 'horiz-adv-x': 'horizAdvX',\n horizoriginx: 'horizOriginX',\n 'horiz-origin-x': 'horizOriginX',\n ideographic: 'ideographic',\n imagerendering: 'imageRendering',\n 'image-rendering': 'imageRendering',\n in2: 'in2',\n in: 'in',\n inlist: 'inlist',\n intercept: 'intercept',\n k1: 'k1',\n k2: 'k2',\n k3: 'k3',\n k4: 'k4',\n k: 'k',\n kernelmatrix: 'kernelMatrix',\n kernelunitlength: 'kernelUnitLength',\n kerning: 'kerning',\n keypoints: 'keyPoints',\n keysplines: 'keySplines',\n keytimes: 'keyTimes',\n lengthadjust: 'lengthAdjust',\n letterspacing: 'letterSpacing',\n 'letter-spacing': 'letterSpacing',\n lightingcolor: 'lightingColor',\n 'lighting-color': 'lightingColor',\n limitingconeangle: 'limitingConeAngle',\n local: 'local',\n markerend: 'markerEnd',\n 'marker-end': 'markerEnd',\n markerheight: 'markerHeight',\n markermid: 'markerMid',\n 'marker-mid': 'markerMid',\n markerstart: 'markerStart',\n 'marker-start': 'markerStart',\n markerunits: 'markerUnits',\n markerwidth: 'markerWidth',\n mask: 'mask',\n maskcontentunits: 'maskContentUnits',\n maskunits: 'maskUnits',\n mathematical: 'mathematical',\n mode: 'mode',\n numoctaves: 'numOctaves',\n offset: 'offset',\n opacity: 'opacity',\n operator: 'operator',\n order: 'order',\n orient: 'orient',\n orientation: 'orientation',\n origin: 'origin',\n overflow: 'overflow',\n overlineposition: 'overlinePosition',\n 'overline-position': 'overlinePosition',\n overlinethickness: 'overlineThickness',\n 'overline-thickness': 'overlineThickness',\n paintorder: 'paintOrder',\n 'paint-order': 'paintOrder',\n panose1: 'panose1',\n 'panose-1': 'panose1',\n pathlength: 'pathLength',\n patterncontentunits: 'patternContentUnits',\n patterntransform: 'patternTransform',\n patternunits: 'patternUnits',\n pointerevents: 'pointerEvents',\n 'pointer-events': 'pointerEvents',\n points: 'points',\n pointsatx: 'pointsAtX',\n pointsaty: 'pointsAtY',\n pointsatz: 'pointsAtZ',\n prefix: 'prefix',\n preservealpha: 'preserveAlpha',\n preserveaspectratio: 'preserveAspectRatio',\n primitiveunits: 'primitiveUnits',\n property: 'property',\n r: 'r',\n radius: 'radius',\n refx: 'refX',\n refy: 'refY',\n renderingintent: 'renderingIntent',\n 'rendering-intent': 'renderingIntent',\n repeatcount: 'repeatCount',\n repeatdur: 'repeatDur',\n requiredextensions: 'requiredExtensions',\n requiredfeatures: 'requiredFeatures',\n resource: 'resource',\n restart: 'restart',\n result: 'result',\n results: 'results',\n rotate: 'rotate',\n rx: 'rx',\n ry: 'ry',\n scale: 'scale',\n security: 'security',\n seed: 'seed',\n shaperendering: 'shapeRendering',\n 'shape-rendering': 'shapeRendering',\n slope: 'slope',\n spacing: 'spacing',\n specularconstant: 'specularConstant',\n specularexponent: 'specularExponent',\n speed: 'speed',\n spreadmethod: 'spreadMethod',\n startoffset: 'startOffset',\n stddeviation: 'stdDeviation',\n stemh: 'stemh',\n stemv: 'stemv',\n stitchtiles: 'stitchTiles',\n stopcolor: 'stopColor',\n 'stop-color': 'stopColor',\n stopopacity: 'stopOpacity',\n 'stop-opacity': 'stopOpacity',\n strikethroughposition: 'strikethroughPosition',\n 'strikethrough-position': 'strikethroughPosition',\n strikethroughthickness: 'strikethroughThickness',\n 'strikethrough-thickness': 'strikethroughThickness',\n string: 'string',\n stroke: 'stroke',\n strokedasharray: 'strokeDasharray',\n 'stroke-dasharray': 'strokeDasharray',\n strokedashoffset: 'strokeDashoffset',\n 'stroke-dashoffset': 'strokeDashoffset',\n strokelinecap: 'strokeLinecap',\n 'stroke-linecap': 'strokeLinecap',\n strokelinejoin: 'strokeLinejoin',\n 'stroke-linejoin': 'strokeLinejoin',\n strokemiterlimit: 'strokeMiterlimit',\n 'stroke-miterlimit': 'strokeMiterlimit',\n strokewidth: 'strokeWidth',\n 'stroke-width': 'strokeWidth',\n strokeopacity: 'strokeOpacity',\n 'stroke-opacity': 'strokeOpacity',\n suppresscontenteditablewarning: 'suppressContentEditableWarning',\n suppresshydrationwarning: 'suppressHydrationWarning',\n surfacescale: 'surfaceScale',\n systemlanguage: 'systemLanguage',\n tablevalues: 'tableValues',\n targetx: 'targetX',\n targety: 'targetY',\n textanchor: 'textAnchor',\n 'text-anchor': 'textAnchor',\n textdecoration: 'textDecoration',\n 'text-decoration': 'textDecoration',\n textlength: 'textLength',\n textrendering: 'textRendering',\n 'text-rendering': 'textRendering',\n to: 'to',\n transform: 'transform',\n typeof: 'typeof',\n u1: 'u1',\n u2: 'u2',\n underlineposition: 'underlinePosition',\n 'underline-position': 'underlinePosition',\n underlinethickness: 'underlineThickness',\n 'underline-thickness': 'underlineThickness',\n unicode: 'unicode',\n unicodebidi: 'unicodeBidi',\n 'unicode-bidi': 'unicodeBidi',\n unicoderange: 'unicodeRange',\n 'unicode-range': 'unicodeRange',\n unitsperem: 'unitsPerEm',\n 'units-per-em': 'unitsPerEm',\n unselectable: 'unselectable',\n valphabetic: 'vAlphabetic',\n 'v-alphabetic': 'vAlphabetic',\n values: 'values',\n vectoreffect: 'vectorEffect',\n 'vector-effect': 'vectorEffect',\n version: 'version',\n vertadvy: 'vertAdvY',\n 'vert-adv-y': 'vertAdvY',\n vertoriginx: 'vertOriginX',\n 'vert-origin-x': 'vertOriginX',\n vertoriginy: 'vertOriginY',\n 'vert-origin-y': 'vertOriginY',\n vhanging: 'vHanging',\n 'v-hanging': 'vHanging',\n videographic: 'vIdeographic',\n 'v-ideographic': 'vIdeographic',\n viewbox: 'viewBox',\n viewtarget: 'viewTarget',\n visibility: 'visibility',\n vmathematical: 'vMathematical',\n 'v-mathematical': 'vMathematical',\n vocab: 'vocab',\n widths: 'widths',\n wordspacing: 'wordSpacing',\n 'word-spacing': 'wordSpacing',\n writingmode: 'writingMode',\n 'writing-mode': 'writingMode',\n x1: 'x1',\n x2: 'x2',\n x: 'x',\n xchannelselector: 'xChannelSelector',\n xheight: 'xHeight',\n 'x-height': 'xHeight',\n xlinkactuate: 'xlinkActuate',\n 'xlink:actuate': 'xlinkActuate',\n xlinkarcrole: 'xlinkArcrole',\n 'xlink:arcrole': 'xlinkArcrole',\n xlinkhref: 'xlinkHref',\n 'xlink:href': 'xlinkHref',\n xlinkrole: 'xlinkRole',\n 'xlink:role': 'xlinkRole',\n xlinkshow: 'xlinkShow',\n 'xlink:show': 'xlinkShow',\n xlinktitle: 'xlinkTitle',\n 'xlink:title': 'xlinkTitle',\n xlinktype: 'xlinkType',\n 'xlink:type': 'xlinkType',\n xmlbase: 'xmlBase',\n 'xml:base': 'xmlBase',\n xmllang: 'xmlLang',\n 'xml:lang': 'xmlLang',\n xmlns: 'xmlns',\n 'xml:space': 'xmlSpace',\n xmlnsxlink: 'xmlnsXlink',\n 'xmlns:xlink': 'xmlnsXlink',\n xmlspace: 'xmlSpace',\n y1: 'y1',\n y2: 'y2',\n y: 'y',\n ychannelselector: 'yChannelSelector',\n z: 'z',\n zoomandpan: 'zoomAndPan'\n};\n\nvar ariaProperties = {\n 'aria-current': 0,\n // state\n 'aria-details': 0,\n 'aria-disabled': 0,\n // state\n 'aria-hidden': 0,\n // state\n 'aria-invalid': 0,\n // state\n 'aria-keyshortcuts': 0,\n 'aria-label': 0,\n 'aria-roledescription': 0,\n // Widget Attributes\n 'aria-autocomplete': 0,\n 'aria-checked': 0,\n 'aria-expanded': 0,\n 'aria-haspopup': 0,\n 'aria-level': 0,\n 'aria-modal': 0,\n 'aria-multiline': 0,\n 'aria-multiselectable': 0,\n 'aria-orientation': 0,\n 'aria-placeholder': 0,\n 'aria-pressed': 0,\n 'aria-readonly': 0,\n 'aria-required': 0,\n 'aria-selected': 0,\n 'aria-sort': 0,\n 'aria-valuemax': 0,\n 'aria-valuemin': 0,\n 'aria-valuenow': 0,\n 'aria-valuetext': 0,\n // Live Region Attributes\n 'aria-atomic': 0,\n 'aria-busy': 0,\n 'aria-live': 0,\n 'aria-relevant': 0,\n // Drag-and-Drop Attributes\n 'aria-dropeffect': 0,\n 'aria-grabbed': 0,\n // Relationship Attributes\n 'aria-activedescendant': 0,\n 'aria-colcount': 0,\n 'aria-colindex': 0,\n 'aria-colspan': 0,\n 'aria-controls': 0,\n 'aria-describedby': 0,\n 'aria-errormessage': 0,\n 'aria-flowto': 0,\n 'aria-labelledby': 0,\n 'aria-owns': 0,\n 'aria-posinset': 0,\n 'aria-rowcount': 0,\n 'aria-rowindex': 0,\n 'aria-rowspan': 0,\n 'aria-setsize': 0\n};\n\nvar warnedProperties = {};\nvar rARIA = new RegExp('^(aria)-[' + ATTRIBUTE_NAME_CHAR + ']*$');\nvar rARIACamel = new RegExp('^(aria)[A-Z][' + ATTRIBUTE_NAME_CHAR + ']*$');\nvar hasOwnProperty$1 = Object.prototype.hasOwnProperty;\n\nfunction validateProperty(tagName, name) {\n {\n if (hasOwnProperty$1.call(warnedProperties, name) && warnedProperties[name]) {\n return true;\n }\n\n if (rARIACamel.test(name)) {\n var ariaName = 'aria-' + name.slice(4).toLowerCase();\n var correctName = ariaProperties.hasOwnProperty(ariaName) ? ariaName : null; // If this is an aria-* attribute, but is not listed in the known DOM\n // DOM properties, then it is an invalid aria-* attribute.\n\n if (correctName == null) {\n error('Invalid ARIA attribute `%s`. ARIA attributes follow the pattern aria-* and must be lowercase.', name);\n\n warnedProperties[name] = true;\n return true;\n } // aria-* attributes should be lowercase; suggest the lowercase version.\n\n\n if (name !== correctName) {\n error('Invalid ARIA attribute `%s`. Did you mean `%s`?', name, correctName);\n\n warnedProperties[name] = true;\n return true;\n }\n }\n\n if (rARIA.test(name)) {\n var lowerCasedName = name.toLowerCase();\n var standardName = ariaProperties.hasOwnProperty(lowerCasedName) ? lowerCasedName : null; // If this is an aria-* attribute, but is not listed in the known DOM\n // DOM properties, then it is an invalid aria-* attribute.\n\n if (standardName == null) {\n warnedProperties[name] = true;\n return false;\n } // aria-* attributes should be lowercase; suggest the lowercase version.\n\n\n if (name !== standardName) {\n error('Unknown ARIA attribute `%s`. Did you mean `%s`?', name, standardName);\n\n warnedProperties[name] = true;\n return true;\n }\n }\n }\n\n return true;\n}\n\nfunction warnInvalidARIAProps(type, props) {\n {\n var invalidProps = [];\n\n for (var key in props) {\n var isValid = validateProperty(type, key);\n\n if (!isValid) {\n invalidProps.push(key);\n }\n }\n\n var unknownPropString = invalidProps.map(function (prop) {\n return '`' + prop + '`';\n }).join(', ');\n\n if (invalidProps.length === 1) {\n error('Invalid aria prop %s on <%s> tag. ' + 'For details, see https://reactjs.org/link/invalid-aria-props', unknownPropString, type);\n } else if (invalidProps.length > 1) {\n error('Invalid aria props %s on <%s> tag. ' + 'For details, see https://reactjs.org/link/invalid-aria-props', unknownPropString, type);\n }\n }\n}\n\nfunction validateProperties(type, props) {\n if (isCustomComponent(type, props)) {\n return;\n }\n\n warnInvalidARIAProps(type, props);\n}\n\nvar didWarnValueNull = false;\nfunction validateProperties$1(type, props) {\n {\n if (type !== 'input' && type !== 'textarea' && type !== 'select') {\n return;\n }\n\n if (props != null && props.value === null && !didWarnValueNull) {\n didWarnValueNull = true;\n\n if (type === 'select' && props.multiple) {\n error('`value` prop on `%s` should not be null. ' + 'Consider using an empty array when `multiple` is set to `true` ' + 'to clear the component or `undefined` for uncontrolled components.', type);\n } else {\n error('`value` prop on `%s` should not be null. ' + 'Consider using an empty string to clear the component or `undefined` ' + 'for uncontrolled components.', type);\n }\n }\n }\n}\n\nvar validateProperty$1 = function () {};\n\n{\n var warnedProperties$1 = {};\n var _hasOwnProperty = Object.prototype.hasOwnProperty;\n var EVENT_NAME_REGEX = /^on./;\n var INVALID_EVENT_NAME_REGEX = /^on[^A-Z]/;\n var rARIA$1 = new RegExp('^(aria)-[' + ATTRIBUTE_NAME_CHAR + ']*$');\n var rARIACamel$1 = new RegExp('^(aria)[A-Z][' + ATTRIBUTE_NAME_CHAR + ']*$');\n\n validateProperty$1 = function (tagName, name, value, eventRegistry) {\n if (_hasOwnProperty.call(warnedProperties$1, name) && warnedProperties$1[name]) {\n return true;\n }\n\n var lowerCasedName = name.toLowerCase();\n\n if (lowerCasedName === 'onfocusin' || lowerCasedName === 'onfocusout') {\n error('React uses onFocus and onBlur instead of onFocusIn and onFocusOut. ' + 'All React events are normalized to bubble, so onFocusIn and onFocusOut ' + 'are not needed/supported by React.');\n\n warnedProperties$1[name] = true;\n return true;\n } // We can't rely on the event system being injected on the server.\n\n\n if (eventRegistry != null) {\n var registrationNameDependencies = eventRegistry.registrationNameDependencies,\n possibleRegistrationNames = eventRegistry.possibleRegistrationNames;\n\n if (registrationNameDependencies.hasOwnProperty(name)) {\n return true;\n }\n\n var registrationName = possibleRegistrationNames.hasOwnProperty(lowerCasedName) ? possibleRegistrationNames[lowerCasedName] : null;\n\n if (registrationName != null) {\n error('Invalid event handler property `%s`. Did you mean `%s`?', name, registrationName);\n\n warnedProperties$1[name] = true;\n return true;\n }\n\n if (EVENT_NAME_REGEX.test(name)) {\n error('Unknown event handler property `%s`. It will be ignored.', name);\n\n warnedProperties$1[name] = true;\n return true;\n }\n } else if (EVENT_NAME_REGEX.test(name)) {\n // If no event plugins have been injected, we are in a server environment.\n // So we can't tell if the event name is correct for sure, but we can filter\n // out known bad ones like `onclick`. We can't suggest a specific replacement though.\n if (INVALID_EVENT_NAME_REGEX.test(name)) {\n error('Invalid event handler property `%s`. ' + 'React events use the camelCase naming convention, for example `onClick`.', name);\n }\n\n warnedProperties$1[name] = true;\n return true;\n } // Let the ARIA attribute hook validate ARIA attributes\n\n\n if (rARIA$1.test(name) || rARIACamel$1.test(name)) {\n return true;\n }\n\n if (lowerCasedName === 'innerhtml') {\n error('Directly setting property `innerHTML` is not permitted. ' + 'For more information, lookup documentation on `dangerouslySetInnerHTML`.');\n\n warnedProperties$1[name] = true;\n return true;\n }\n\n if (lowerCasedName === 'aria') {\n error('The `aria` attribute is reserved for future use in React. ' + 'Pass individual `aria-` attributes instead.');\n\n warnedProperties$1[name] = true;\n return true;\n }\n\n if (lowerCasedName === 'is' && value !== null && value !== undefined && typeof value !== 'string') {\n error('Received a `%s` for a string attribute `is`. If this is expected, cast ' + 'the value to a string.', typeof value);\n\n warnedProperties$1[name] = true;\n return true;\n }\n\n if (typeof value === 'number' && isNaN(value)) {\n error('Received NaN for the `%s` attribute. If this is expected, cast ' + 'the value to a string.', name);\n\n warnedProperties$1[name] = true;\n return true;\n }\n\n var propertyInfo = getPropertyInfo(name);\n var isReserved = propertyInfo !== null && propertyInfo.type === RESERVED; // Known attributes should match the casing specified in the property config.\n\n if (possibleStandardNames.hasOwnProperty(lowerCasedName)) {\n var standardName = possibleStandardNames[lowerCasedName];\n\n if (standardName !== name) {\n error('Invalid DOM property `%s`. Did you mean `%s`?', name, standardName);\n\n warnedProperties$1[name] = true;\n return true;\n }\n } else if (!isReserved && name !== lowerCasedName) {\n // Unknown attributes should have lowercase casing since that's how they\n // will be cased anyway with server rendering.\n error('React does not recognize the `%s` prop on a DOM element. If you ' + 'intentionally want it to appear in the DOM as a custom ' + 'attribute, spell it as lowercase `%s` instead. ' + 'If you accidentally passed it from a parent component, remove ' + 'it from the DOM element.', name, lowerCasedName);\n\n warnedProperties$1[name] = true;\n return true;\n }\n\n if (typeof value === 'boolean' && shouldRemoveAttributeWithWarning(name, value, propertyInfo, false)) {\n if (value) {\n error('Received `%s` for a non-boolean attribute `%s`.\\n\\n' + 'If you want to write it to the DOM, pass a string instead: ' + '%s=\"%s\" or %s={value.toString()}.', value, name, name, value, name);\n } else {\n error('Received `%s` for a non-boolean attribute `%s`.\\n\\n' + 'If you want to write it to the DOM, pass a string instead: ' + '%s=\"%s\" or %s={value.toString()}.\\n\\n' + 'If you used to conditionally omit it with %s={condition && value}, ' + 'pass %s={condition ? value : undefined} instead.', value, name, name, value, name, name, name);\n }\n\n warnedProperties$1[name] = true;\n return true;\n } // Now that we've validated casing, do not validate\n // data types for reserved props\n\n\n if (isReserved) {\n return true;\n } // Warn when a known attribute is a bad type\n\n\n if (shouldRemoveAttributeWithWarning(name, value, propertyInfo, false)) {\n warnedProperties$1[name] = true;\n return false;\n } // Warn when passing the strings 'false' or 'true' into a boolean prop\n\n\n if ((value === 'false' || value === 'true') && propertyInfo !== null && propertyInfo.type === BOOLEAN) {\n error('Received the string `%s` for the boolean attribute `%s`. ' + '%s ' + 'Did you mean %s={%s}?', value, name, value === 'false' ? 'The browser will interpret it as a truthy value.' : 'Although this works, it will not work as expected if you pass the string \"false\".', name, value);\n\n warnedProperties$1[name] = true;\n return true;\n }\n\n return true;\n };\n}\n\nvar warnUnknownProperties = function (type, props, eventRegistry) {\n {\n var unknownProps = [];\n\n for (var key in props) {\n var isValid = validateProperty$1(type, key, props[key], eventRegistry);\n\n if (!isValid) {\n unknownProps.push(key);\n }\n }\n\n var unknownPropString = unknownProps.map(function (prop) {\n return '`' + prop + '`';\n }).join(', ');\n\n if (unknownProps.length === 1) {\n error('Invalid value for prop %s on <%s> tag. Either remove it from the element, ' + 'or pass a string or number value to keep it in the DOM. ' + 'For details, see https://reactjs.org/link/attribute-behavior ', unknownPropString, type);\n } else if (unknownProps.length > 1) {\n error('Invalid values for props %s on <%s> tag. Either remove them from the element, ' + 'or pass a string or number value to keep them in the DOM. ' + 'For details, see https://reactjs.org/link/attribute-behavior ', unknownPropString, type);\n }\n }\n};\n\nfunction validateProperties$2(type, props, eventRegistry) {\n if (isCustomComponent(type, props)) {\n return;\n }\n\n warnUnknownProperties(type, props, eventRegistry);\n}\n\nvar IS_EVENT_HANDLE_NON_MANAGED_NODE = 1;\nvar IS_NON_DELEGATED = 1 << 1;\nvar IS_CAPTURE_PHASE = 1 << 2;\nvar IS_REPLAYED = 1 << 4;\n// set to LEGACY_FB_SUPPORT. LEGACY_FB_SUPPORT only gets set when\n// we call willDeferLaterForLegacyFBSupport, thus not bailing out\n// will result in endless cycles like an infinite loop.\n// We also don't want to defer during event replaying.\n\nvar SHOULD_NOT_PROCESS_POLYFILL_EVENT_PLUGINS = IS_EVENT_HANDLE_NON_MANAGED_NODE | IS_NON_DELEGATED | IS_CAPTURE_PHASE;\n\n/**\n * Gets the target node from a native browser event by accounting for\n * inconsistencies in browser DOM APIs.\n *\n * @param {object} nativeEvent Native browser event.\n * @return {DOMEventTarget} Target node.\n */\n\nfunction getEventTarget(nativeEvent) {\n // Fallback to nativeEvent.srcElement for IE9\n // https://github.com/facebook/react/issues/12506\n var target = nativeEvent.target || nativeEvent.srcElement || window; // Normalize SVG <use> element events #4963\n\n if (target.correspondingUseElement) {\n target = target.correspondingUseElement;\n } // Safari may fire events on text nodes (Node.TEXT_NODE is 3).\n // @see http://www.quirksmode.org/js/events_properties.html\n\n\n return target.nodeType === TEXT_NODE ? target.parentNode : target;\n}\n\nvar restoreImpl = null;\nvar restoreTarget = null;\nvar restoreQueue = null;\n\nfunction restoreStateOfTarget(target) {\n // We perform this translation at the end of the event loop so that we\n // always receive the correct fiber here\n var internalInstance = getInstanceFromNode(target);\n\n if (!internalInstance) {\n // Unmounted\n return;\n }\n\n if (!(typeof restoreImpl === 'function')) {\n {\n throw Error( \"setRestoreImplementation() needs to be called to handle a target for controlled events. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n\n var stateNode = internalInstance.stateNode; // Guard against Fiber being unmounted.\n\n if (stateNode) {\n var _props = getFiberCurrentPropsFromNode(stateNode);\n\n restoreImpl(internalInstance.stateNode, internalInstance.type, _props);\n }\n}\n\nfunction setRestoreImplementation(impl) {\n restoreImpl = impl;\n}\nfunction enqueueStateRestore(target) {\n if (restoreTarget) {\n if (restoreQueue) {\n restoreQueue.push(target);\n } else {\n restoreQueue = [target];\n }\n } else {\n restoreTarget = target;\n }\n}\nfunction needsStateRestore() {\n return restoreTarget !== null || restoreQueue !== null;\n}\nfunction restoreStateIfNeeded() {\n if (!restoreTarget) {\n return;\n }\n\n var target = restoreTarget;\n var queuedTargets = restoreQueue;\n restoreTarget = null;\n restoreQueue = null;\n restoreStateOfTarget(target);\n\n if (queuedTargets) {\n for (var i = 0; i < queuedTargets.length; i++) {\n restoreStateOfTarget(queuedTargets[i]);\n }\n }\n}\n\n// the renderer. Such as when we're dispatching events or if third party\n// libraries need to call batchedUpdates. Eventually, this API will go away when\n// everything is batched by default. We'll then have a similar API to opt-out of\n// scheduled work and instead do synchronous work.\n// Defaults\n\nvar batchedUpdatesImpl = function (fn, bookkeeping) {\n return fn(bookkeeping);\n};\n\nvar discreteUpdatesImpl = function (fn, a, b, c, d) {\n return fn(a, b, c, d);\n};\n\nvar flushDiscreteUpdatesImpl = function () {};\n\nvar batchedEventUpdatesImpl = batchedUpdatesImpl;\nvar isInsideEventHandler = false;\nvar isBatchingEventUpdates = false;\n\nfunction finishEventHandler() {\n // Here we wait until all updates have propagated, which is important\n // when using controlled components within layers:\n // https://github.com/facebook/react/issues/1698\n // Then we restore state of any controlled component.\n var controlledComponentsHavePendingUpdates = needsStateRestore();\n\n if (controlledComponentsHavePendingUpdates) {\n // If a controlled event was fired, we may need to restore the state of\n // the DOM node back to the controlled value. This is necessary when React\n // bails out of the update without touching the DOM.\n flushDiscreteUpdatesImpl();\n restoreStateIfNeeded();\n }\n}\n\nfunction batchedUpdates(fn, bookkeeping) {\n if (isInsideEventHandler) {\n // If we are currently inside another batch, we need to wait until it\n // fully completes before restoring state.\n return fn(bookkeeping);\n }\n\n isInsideEventHandler = true;\n\n try {\n return batchedUpdatesImpl(fn, bookkeeping);\n } finally {\n isInsideEventHandler = false;\n finishEventHandler();\n }\n}\nfunction batchedEventUpdates(fn, a, b) {\n if (isBatchingEventUpdates) {\n // If we are currently inside another batch, we need to wait until it\n // fully completes before restoring state.\n return fn(a, b);\n }\n\n isBatchingEventUpdates = true;\n\n try {\n return batchedEventUpdatesImpl(fn, a, b);\n } finally {\n isBatchingEventUpdates = false;\n finishEventHandler();\n }\n}\nfunction discreteUpdates(fn, a, b, c, d) {\n var prevIsInsideEventHandler = isInsideEventHandler;\n isInsideEventHandler = true;\n\n try {\n return discreteUpdatesImpl(fn, a, b, c, d);\n } finally {\n isInsideEventHandler = prevIsInsideEventHandler;\n\n if (!isInsideEventHandler) {\n finishEventHandler();\n }\n }\n}\nfunction flushDiscreteUpdatesIfNeeded(timeStamp) {\n {\n if (!isInsideEventHandler) {\n flushDiscreteUpdatesImpl();\n }\n }\n}\nfunction setBatchingImplementation(_batchedUpdatesImpl, _discreteUpdatesImpl, _flushDiscreteUpdatesImpl, _batchedEventUpdatesImpl) {\n batchedUpdatesImpl = _batchedUpdatesImpl;\n discreteUpdatesImpl = _discreteUpdatesImpl;\n flushDiscreteUpdatesImpl = _flushDiscreteUpdatesImpl;\n batchedEventUpdatesImpl = _batchedEventUpdatesImpl;\n}\n\nfunction isInteractive(tag) {\n return tag === 'button' || tag === 'input' || tag === 'select' || tag === 'textarea';\n}\n\nfunction shouldPreventMouseEvent(name, type, props) {\n switch (name) {\n case 'onClick':\n case 'onClickCapture':\n case 'onDoubleClick':\n case 'onDoubleClickCapture':\n case 'onMouseDown':\n case 'onMouseDownCapture':\n case 'onMouseMove':\n case 'onMouseMoveCapture':\n case 'onMouseUp':\n case 'onMouseUpCapture':\n case 'onMouseEnter':\n return !!(props.disabled && isInteractive(type));\n\n default:\n return false;\n }\n}\n/**\n * @param {object} inst The instance, which is the source of events.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @return {?function} The stored callback.\n */\n\n\nfunction getListener(inst, registrationName) {\n var stateNode = inst.stateNode;\n\n if (stateNode === null) {\n // Work in progress (ex: onload events in incremental mode).\n return null;\n }\n\n var props = getFiberCurrentPropsFromNode(stateNode);\n\n if (props === null) {\n // Work in progress.\n return null;\n }\n\n var listener = props[registrationName];\n\n if (shouldPreventMouseEvent(registrationName, inst.type, props)) {\n return null;\n }\n\n if (!(!listener || typeof listener === 'function')) {\n {\n throw Error( \"Expected `\" + registrationName + \"` listener to be a function, instead got a value of `\" + typeof listener + \"` type.\" );\n }\n }\n\n return listener;\n}\n\nvar passiveBrowserEventsSupported = false; // Check if browser support events with passive listeners\n// https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\n\nif (canUseDOM) {\n try {\n var options = {}; // $FlowFixMe: Ignore Flow complaining about needing a value\n\n Object.defineProperty(options, 'passive', {\n get: function () {\n passiveBrowserEventsSupported = true;\n }\n });\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, options);\n } catch (e) {\n passiveBrowserEventsSupported = false;\n }\n}\n\nfunction invokeGuardedCallbackProd(name, func, context, a, b, c, d, e, f) {\n var funcArgs = Array.prototype.slice.call(arguments, 3);\n\n try {\n func.apply(context, funcArgs);\n } catch (error) {\n this.onError(error);\n }\n}\n\nvar invokeGuardedCallbackImpl = invokeGuardedCallbackProd;\n\n{\n // In DEV mode, we swap out invokeGuardedCallback for a special version\n // that plays more nicely with the browser's DevTools. The idea is to preserve\n // \"Pause on exceptions\" behavior. Because React wraps all user-provided\n // functions in invokeGuardedCallback, and the production version of\n // invokeGuardedCallback uses a try-catch, all user exceptions are treated\n // like caught exceptions, and the DevTools won't pause unless the developer\n // takes the extra step of enabling pause on caught exceptions. This is\n // unintuitive, though, because even though React has caught the error, from\n // the developer's perspective, the error is uncaught.\n //\n // To preserve the expected \"Pause on exceptions\" behavior, we don't use a\n // try-catch in DEV. Instead, we synchronously dispatch a fake event to a fake\n // DOM node, and call the user-provided callback from inside an event handler\n // for that fake event. If the callback throws, the error is \"captured\" using\n // a global event handler. But because the error happens in a different\n // event loop context, it does not interrupt the normal program flow.\n // Effectively, this gives us try-catch behavior without actually using\n // try-catch. Neat!\n // Check that the browser supports the APIs we need to implement our special\n // DEV version of invokeGuardedCallback\n if (typeof window !== 'undefined' && typeof window.dispatchEvent === 'function' && typeof document !== 'undefined' && typeof document.createEvent === 'function') {\n var fakeNode = document.createElement('react');\n\n invokeGuardedCallbackImpl = function invokeGuardedCallbackDev(name, func, context, a, b, c, d, e, f) {\n // If document doesn't exist we know for sure we will crash in this method\n // when we call document.createEvent(). However this can cause confusing\n // errors: https://github.com/facebookincubator/create-react-app/issues/3482\n // So we preemptively throw with a better message instead.\n if (!(typeof document !== 'undefined')) {\n {\n throw Error( \"The `document` global was defined when React was initialized, but is not defined anymore. This can happen in a test environment if a component schedules an update from an asynchronous callback, but the test has already finished running. To solve this, you can either unmount the component at the end of your test (and ensure that any asynchronous operations get canceled in `componentWillUnmount`), or you can change the test itself to be asynchronous.\" );\n }\n }\n\n var evt = document.createEvent('Event');\n var didCall = false; // Keeps track of whether the user-provided callback threw an error. We\n // set this to true at the beginning, then set it to false right after\n // calling the function. If the function errors, `didError` will never be\n // set to false. This strategy works even if the browser is flaky and\n // fails to call our global error handler, because it doesn't rely on\n // the error event at all.\n\n var didError = true; // Keeps track of the value of window.event so that we can reset it\n // during the callback to let user code access window.event in the\n // browsers that support it.\n\n var windowEvent = window.event; // Keeps track of the descriptor of window.event to restore it after event\n // dispatching: https://github.com/facebook/react/issues/13688\n\n var windowEventDescriptor = Object.getOwnPropertyDescriptor(window, 'event');\n\n function restoreAfterDispatch() {\n // We immediately remove the callback from event listeners so that\n // nested `invokeGuardedCallback` calls do not clash. Otherwise, a\n // nested call would trigger the fake event handlers of any call higher\n // in the stack.\n fakeNode.removeEventListener(evtType, callCallback, false); // We check for window.hasOwnProperty('event') to prevent the\n // window.event assignment in both IE <= 10 as they throw an error\n // \"Member not found\" in strict mode, and in Firefox which does not\n // support window.event.\n\n if (typeof window.event !== 'undefined' && window.hasOwnProperty('event')) {\n window.event = windowEvent;\n }\n } // Create an event handler for our fake event. We will synchronously\n // dispatch our fake event using `dispatchEvent`. Inside the handler, we\n // call the user-provided callback.\n\n\n var funcArgs = Array.prototype.slice.call(arguments, 3);\n\n function callCallback() {\n didCall = true;\n restoreAfterDispatch();\n func.apply(context, funcArgs);\n didError = false;\n } // Create a global error event handler. We use this to capture the value\n // that was thrown. It's possible that this error handler will fire more\n // than once; for example, if non-React code also calls `dispatchEvent`\n // and a handler for that event throws. We should be resilient to most of\n // those cases. Even if our error event handler fires more than once, the\n // last error event is always used. If the callback actually does error,\n // we know that the last error event is the correct one, because it's not\n // possible for anything else to have happened in between our callback\n // erroring and the code that follows the `dispatchEvent` call below. If\n // the callback doesn't error, but the error event was fired, we know to\n // ignore it because `didError` will be false, as described above.\n\n\n var error; // Use this to track whether the error event is ever called.\n\n var didSetError = false;\n var isCrossOriginError = false;\n\n function handleWindowError(event) {\n error = event.error;\n didSetError = true;\n\n if (error === null && event.colno === 0 && event.lineno === 0) {\n isCrossOriginError = true;\n }\n\n if (event.defaultPrevented) {\n // Some other error handler has prevented default.\n // Browsers silence the error report if this happens.\n // We'll remember this to later decide whether to log it or not.\n if (error != null && typeof error === 'object') {\n try {\n error._suppressLogging = true;\n } catch (inner) {// Ignore.\n }\n }\n }\n } // Create a fake event type.\n\n\n var evtType = \"react-\" + (name ? name : 'invokeguardedcallback'); // Attach our event handlers\n\n window.addEventListener('error', handleWindowError);\n fakeNode.addEventListener(evtType, callCallback, false); // Synchronously dispatch our fake event. If the user-provided function\n // errors, it will trigger our global error handler.\n\n evt.initEvent(evtType, false, false);\n fakeNode.dispatchEvent(evt);\n\n if (windowEventDescriptor) {\n Object.defineProperty(window, 'event', windowEventDescriptor);\n }\n\n if (didCall && didError) {\n if (!didSetError) {\n // The callback errored, but the error event never fired.\n error = new Error('An error was thrown inside one of your components, but React ' + \"doesn't know what it was. This is likely due to browser \" + 'flakiness. React does its best to preserve the \"Pause on ' + 'exceptions\" behavior of the DevTools, which requires some ' + \"DEV-mode only tricks. It's possible that these don't work in \" + 'your browser. Try triggering the error in production mode, ' + 'or switching to a modern browser. If you suspect that this is ' + 'actually an issue with React, please file an issue.');\n } else if (isCrossOriginError) {\n error = new Error(\"A cross-origin error was thrown. React doesn't have access to \" + 'the actual error object in development. ' + 'See https://reactjs.org/link/crossorigin-error for more information.');\n }\n\n this.onError(error);\n } // Remove our event listeners\n\n\n window.removeEventListener('error', handleWindowError);\n\n if (!didCall) {\n // Something went really wrong, and our event was not dispatched.\n // https://github.com/facebook/react/issues/16734\n // https://github.com/facebook/react/issues/16585\n // Fall back to the production implementation.\n restoreAfterDispatch();\n return invokeGuardedCallbackProd.apply(this, arguments);\n }\n };\n }\n}\n\nvar invokeGuardedCallbackImpl$1 = invokeGuardedCallbackImpl;\n\nvar hasError = false;\nvar caughtError = null; // Used by event system to capture/rethrow the first error.\n\nvar hasRethrowError = false;\nvar rethrowError = null;\nvar reporter = {\n onError: function (error) {\n hasError = true;\n caughtError = error;\n }\n};\n/**\n * Call a function while guarding against errors that happens within it.\n * Returns an error if it throws, otherwise null.\n *\n * In production, this is implemented using a try-catch. The reason we don't\n * use a try-catch directly is so that we can swap out a different\n * implementation in DEV mode.\n *\n * @param {String} name of the guard to use for logging or debugging\n * @param {Function} func The function to invoke\n * @param {*} context The context to use when calling the function\n * @param {...*} args Arguments for function\n */\n\nfunction invokeGuardedCallback(name, func, context, a, b, c, d, e, f) {\n hasError = false;\n caughtError = null;\n invokeGuardedCallbackImpl$1.apply(reporter, arguments);\n}\n/**\n * Same as invokeGuardedCallback, but instead of returning an error, it stores\n * it in a global so it can be rethrown by `rethrowCaughtError` later.\n * TODO: See if caughtError and rethrowError can be unified.\n *\n * @param {String} name of the guard to use for logging or debugging\n * @param {Function} func The function to invoke\n * @param {*} context The context to use when calling the function\n * @param {...*} args Arguments for function\n */\n\nfunction invokeGuardedCallbackAndCatchFirstError(name, func, context, a, b, c, d, e, f) {\n invokeGuardedCallback.apply(this, arguments);\n\n if (hasError) {\n var error = clearCaughtError();\n\n if (!hasRethrowError) {\n hasRethrowError = true;\n rethrowError = error;\n }\n }\n}\n/**\n * During execution of guarded functions we will capture the first error which\n * we will rethrow to be handled by the top level error handler.\n */\n\nfunction rethrowCaughtError() {\n if (hasRethrowError) {\n var error = rethrowError;\n hasRethrowError = false;\n rethrowError = null;\n throw error;\n }\n}\nfunction hasCaughtError() {\n return hasError;\n}\nfunction clearCaughtError() {\n if (hasError) {\n var error = caughtError;\n hasError = false;\n caughtError = null;\n return error;\n } else {\n {\n {\n throw Error( \"clearCaughtError was called but no error was captured. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n }\n}\n\n/**\n * `ReactInstanceMap` maintains a mapping from a public facing stateful\n * instance (key) and the internal representation (value). This allows public\n * methods to accept the user facing instance as an argument and map them back\n * to internal methods.\n *\n * Note that this module is currently shared and assumed to be stateless.\n * If this becomes an actual Map, that will break.\n */\nfunction get(key) {\n return key._reactInternals;\n}\nfunction has(key) {\n return key._reactInternals !== undefined;\n}\nfunction set(key, value) {\n key._reactInternals = value;\n}\n\n// Don't change these two values. They're used by React Dev Tools.\nvar NoFlags =\n/* */\n0;\nvar PerformedWork =\n/* */\n1; // You can change the rest (and add more).\n\nvar Placement =\n/* */\n2;\nvar Update =\n/* */\n4;\nvar PlacementAndUpdate =\n/* */\n6;\nvar Deletion =\n/* */\n8;\nvar ContentReset =\n/* */\n16;\nvar Callback =\n/* */\n32;\nvar DidCapture =\n/* */\n64;\nvar Ref =\n/* */\n128;\nvar Snapshot =\n/* */\n256;\nvar Passive =\n/* */\n512; // TODO (effects) Remove this bit once the new reconciler is synced to the old.\n\nvar PassiveUnmountPendingDev =\n/* */\n8192;\nvar Hydrating =\n/* */\n1024;\nvar HydratingAndUpdate =\n/* */\n1028; // Passive & Update & Callback & Ref & Snapshot\n\nvar LifecycleEffectMask =\n/* */\n932; // Union of all host effects\n\nvar HostEffectMask =\n/* */\n2047; // These are not really side effects, but we still reuse this field.\n\nvar Incomplete =\n/* */\n2048;\nvar ShouldCapture =\n/* */\n4096;\nvar ForceUpdateForLegacySuspense =\n/* */\n16384; // Static tags describe aspects of a fiber that are not specific to a render,\n\nvar ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;\nfunction getNearestMountedFiber(fiber) {\n var node = fiber;\n var nearestMounted = fiber;\n\n if (!fiber.alternate) {\n // If there is no alternate, this might be a new tree that isn't inserted\n // yet. If it is, then it will have a pending insertion effect on it.\n var nextNode = node;\n\n do {\n node = nextNode;\n\n if ((node.flags & (Placement | Hydrating)) !== NoFlags) {\n // This is an insertion or in-progress hydration. The nearest possible\n // mounted fiber is the parent but we need to continue to figure out\n // if that one is still mounted.\n nearestMounted = node.return;\n }\n\n nextNode = node.return;\n } while (nextNode);\n } else {\n while (node.return) {\n node = node.return;\n }\n }\n\n if (node.tag === HostRoot) {\n // TODO: Check if this was a nested HostRoot when used with\n // renderContainerIntoSubtree.\n return nearestMounted;\n } // If we didn't hit the root, that means that we're in an disconnected tree\n // that has been unmounted.\n\n\n return null;\n}\nfunction getSuspenseInstanceFromFiber(fiber) {\n if (fiber.tag === SuspenseComponent) {\n var suspenseState = fiber.memoizedState;\n\n if (suspenseState === null) {\n var current = fiber.alternate;\n\n if (current !== null) {\n suspenseState = current.memoizedState;\n }\n }\n\n if (suspenseState !== null) {\n return suspenseState.dehydrated;\n }\n }\n\n return null;\n}\nfunction getContainerFromFiber(fiber) {\n return fiber.tag === HostRoot ? fiber.stateNode.containerInfo : null;\n}\nfunction isFiberMounted(fiber) {\n return getNearestMountedFiber(fiber) === fiber;\n}\nfunction isMounted(component) {\n {\n var owner = ReactCurrentOwner.current;\n\n if (owner !== null && owner.tag === ClassComponent) {\n var ownerFiber = owner;\n var instance = ownerFiber.stateNode;\n\n if (!instance._warnedAboutRefsInRender) {\n error('%s is accessing isMounted inside its render() function. ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', getComponentName(ownerFiber.type) || 'A component');\n }\n\n instance._warnedAboutRefsInRender = true;\n }\n }\n\n var fiber = get(component);\n\n if (!fiber) {\n return false;\n }\n\n return getNearestMountedFiber(fiber) === fiber;\n}\n\nfunction assertIsMounted(fiber) {\n if (!(getNearestMountedFiber(fiber) === fiber)) {\n {\n throw Error( \"Unable to find node on an unmounted component.\" );\n }\n }\n}\n\nfunction findCurrentFiberUsingSlowPath(fiber) {\n var alternate = fiber.alternate;\n\n if (!alternate) {\n // If there is no alternate, then we only need to check if it is mounted.\n var nearestMounted = getNearestMountedFiber(fiber);\n\n if (!(nearestMounted !== null)) {\n {\n throw Error( \"Unable to find node on an unmounted component.\" );\n }\n }\n\n if (nearestMounted !== fiber) {\n return null;\n }\n\n return fiber;\n } // If we have two possible branches, we'll walk backwards up to the root\n // to see what path the root points to. On the way we may hit one of the\n // special cases and we'll deal with them.\n\n\n var a = fiber;\n var b = alternate;\n\n while (true) {\n var parentA = a.return;\n\n if (parentA === null) {\n // We're at the root.\n break;\n }\n\n var parentB = parentA.alternate;\n\n if (parentB === null) {\n // There is no alternate. This is an unusual case. Currently, it only\n // happens when a Suspense component is hidden. An extra fragment fiber\n // is inserted in between the Suspense fiber and its children. Skip\n // over this extra fragment fiber and proceed to the next parent.\n var nextParent = parentA.return;\n\n if (nextParent !== null) {\n a = b = nextParent;\n continue;\n } // If there's no parent, we're at the root.\n\n\n break;\n } // If both copies of the parent fiber point to the same child, we can\n // assume that the child is current. This happens when we bailout on low\n // priority: the bailed out fiber's child reuses the current child.\n\n\n if (parentA.child === parentB.child) {\n var child = parentA.child;\n\n while (child) {\n if (child === a) {\n // We've determined that A is the current branch.\n assertIsMounted(parentA);\n return fiber;\n }\n\n if (child === b) {\n // We've determined that B is the current branch.\n assertIsMounted(parentA);\n return alternate;\n }\n\n child = child.sibling;\n } // We should never have an alternate for any mounting node. So the only\n // way this could possibly happen is if this was unmounted, if at all.\n\n\n {\n {\n throw Error( \"Unable to find node on an unmounted component.\" );\n }\n }\n }\n\n if (a.return !== b.return) {\n // The return pointer of A and the return pointer of B point to different\n // fibers. We assume that return pointers never criss-cross, so A must\n // belong to the child set of A.return, and B must belong to the child\n // set of B.return.\n a = parentA;\n b = parentB;\n } else {\n // The return pointers point to the same fiber. We'll have to use the\n // default, slow path: scan the child sets of each parent alternate to see\n // which child belongs to which set.\n //\n // Search parent A's child set\n var didFindChild = false;\n var _child = parentA.child;\n\n while (_child) {\n if (_child === a) {\n didFindChild = true;\n a = parentA;\n b = parentB;\n break;\n }\n\n if (_child === b) {\n didFindChild = true;\n b = parentA;\n a = parentB;\n break;\n }\n\n _child = _child.sibling;\n }\n\n if (!didFindChild) {\n // Search parent B's child set\n _child = parentB.child;\n\n while (_child) {\n if (_child === a) {\n didFindChild = true;\n a = parentB;\n b = parentA;\n break;\n }\n\n if (_child === b) {\n didFindChild = true;\n b = parentB;\n a = parentA;\n break;\n }\n\n _child = _child.sibling;\n }\n\n if (!didFindChild) {\n {\n throw Error( \"Child was not found in either parent set. This indicates a bug in React related to the return pointer. Please file an issue.\" );\n }\n }\n }\n }\n\n if (!(a.alternate === b)) {\n {\n throw Error( \"Return fibers should always be each others' alternates. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n } // If the root is not a host container, we're in a disconnected tree. I.e.\n // unmounted.\n\n\n if (!(a.tag === HostRoot)) {\n {\n throw Error( \"Unable to find node on an unmounted component.\" );\n }\n }\n\n if (a.stateNode.current === a) {\n // We've determined that A is the current branch.\n return fiber;\n } // Otherwise B has to be current branch.\n\n\n return alternate;\n}\nfunction findCurrentHostFiber(parent) {\n var currentParent = findCurrentFiberUsingSlowPath(parent);\n\n if (!currentParent) {\n return null;\n } // Next we'll drill down this component to find the first HostComponent/Text.\n\n\n var node = currentParent;\n\n while (true) {\n if (node.tag === HostComponent || node.tag === HostText) {\n return node;\n } else if (node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n\n if (node === currentParent) {\n return null;\n }\n\n while (!node.sibling) {\n if (!node.return || node.return === currentParent) {\n return null;\n }\n\n node = node.return;\n }\n\n node.sibling.return = node.return;\n node = node.sibling;\n } // Flow needs the return null here, but ESLint complains about it.\n // eslint-disable-next-line no-unreachable\n\n\n return null;\n}\nfunction findCurrentHostFiberWithNoPortals(parent) {\n var currentParent = findCurrentFiberUsingSlowPath(parent);\n\n if (!currentParent) {\n return null;\n } // Next we'll drill down this component to find the first HostComponent/Text.\n\n\n var node = currentParent;\n\n while (true) {\n if (node.tag === HostComponent || node.tag === HostText || enableFundamentalAPI ) {\n return node;\n } else if (node.child && node.tag !== HostPortal) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n\n if (node === currentParent) {\n return null;\n }\n\n while (!node.sibling) {\n if (!node.return || node.return === currentParent) {\n return null;\n }\n\n node = node.return;\n }\n\n node.sibling.return = node.return;\n node = node.sibling;\n } // Flow needs the return null here, but ESLint complains about it.\n // eslint-disable-next-line no-unreachable\n\n\n return null;\n}\nfunction doesFiberContain(parentFiber, childFiber) {\n var node = childFiber;\n var parentFiberAlternate = parentFiber.alternate;\n\n while (node !== null) {\n if (node === parentFiber || node === parentFiberAlternate) {\n return true;\n }\n\n node = node.return;\n }\n\n return false;\n}\n\nvar attemptUserBlockingHydration;\nfunction setAttemptUserBlockingHydration(fn) {\n attemptUserBlockingHydration = fn;\n}\nvar attemptContinuousHydration;\nfunction setAttemptContinuousHydration(fn) {\n attemptContinuousHydration = fn;\n}\nvar attemptHydrationAtCurrentPriority;\nfunction setAttemptHydrationAtCurrentPriority(fn) {\n attemptHydrationAtCurrentPriority = fn;\n}\nvar attemptHydrationAtPriority;\nfunction setAttemptHydrationAtPriority(fn) {\n attemptHydrationAtPriority = fn;\n} // TODO: Upgrade this definition once we're on a newer version of Flow that\nvar hasScheduledReplayAttempt = false; // The queue of discrete events to be replayed.\n\nvar queuedDiscreteEvents = []; // Indicates if any continuous event targets are non-null for early bailout.\n// if the last target was dehydrated.\n\nvar queuedFocus = null;\nvar queuedDrag = null;\nvar queuedMouse = null; // For pointer events there can be one latest event per pointerId.\n\nvar queuedPointers = new Map();\nvar queuedPointerCaptures = new Map(); // We could consider replaying selectionchange and touchmoves too.\n\nvar queuedExplicitHydrationTargets = [];\nfunction hasQueuedDiscreteEvents() {\n return queuedDiscreteEvents.length > 0;\n}\nvar discreteReplayableEvents = ['mousedown', 'mouseup', 'touchcancel', 'touchend', 'touchstart', 'auxclick', 'dblclick', 'pointercancel', 'pointerdown', 'pointerup', 'dragend', 'dragstart', 'drop', 'compositionend', 'compositionstart', 'keydown', 'keypress', 'keyup', 'input', 'textInput', // Intentionally camelCase\n'copy', 'cut', 'paste', 'click', 'change', 'contextmenu', 'reset', 'submit'];\nfunction isReplayableDiscreteEvent(eventType) {\n return discreteReplayableEvents.indexOf(eventType) > -1;\n}\n\nfunction createQueuedReplayableEvent(blockedOn, domEventName, eventSystemFlags, targetContainer, nativeEvent) {\n return {\n blockedOn: blockedOn,\n domEventName: domEventName,\n eventSystemFlags: eventSystemFlags | IS_REPLAYED,\n nativeEvent: nativeEvent,\n targetContainers: [targetContainer]\n };\n}\n\nfunction queueDiscreteEvent(blockedOn, domEventName, eventSystemFlags, targetContainer, nativeEvent) {\n var queuedEvent = createQueuedReplayableEvent(blockedOn, domEventName, eventSystemFlags, targetContainer, nativeEvent);\n queuedDiscreteEvents.push(queuedEvent);\n} // Resets the replaying for this type of continuous event to no event.\n\nfunction clearIfContinuousEvent(domEventName, nativeEvent) {\n switch (domEventName) {\n case 'focusin':\n case 'focusout':\n queuedFocus = null;\n break;\n\n case 'dragenter':\n case 'dragleave':\n queuedDrag = null;\n break;\n\n case 'mouseover':\n case 'mouseout':\n queuedMouse = null;\n break;\n\n case 'pointerover':\n case 'pointerout':\n {\n var pointerId = nativeEvent.pointerId;\n queuedPointers.delete(pointerId);\n break;\n }\n\n case 'gotpointercapture':\n case 'lostpointercapture':\n {\n var _pointerId = nativeEvent.pointerId;\n queuedPointerCaptures.delete(_pointerId);\n break;\n }\n }\n}\n\nfunction accumulateOrCreateContinuousQueuedReplayableEvent(existingQueuedEvent, blockedOn, domEventName, eventSystemFlags, targetContainer, nativeEvent) {\n if (existingQueuedEvent === null || existingQueuedEvent.nativeEvent !== nativeEvent) {\n var queuedEvent = createQueuedReplayableEvent(blockedOn, domEventName, eventSystemFlags, targetContainer, nativeEvent);\n\n if (blockedOn !== null) {\n var _fiber2 = getInstanceFromNode(blockedOn);\n\n if (_fiber2 !== null) {\n // Attempt to increase the priority of this target.\n attemptContinuousHydration(_fiber2);\n }\n }\n\n return queuedEvent;\n } // If we have already queued this exact event, then it's because\n // the different event systems have different DOM event listeners.\n // We can accumulate the flags, and the targetContainers, and\n // store a single event to be replayed.\n\n\n existingQueuedEvent.eventSystemFlags |= eventSystemFlags;\n var targetContainers = existingQueuedEvent.targetContainers;\n\n if (targetContainer !== null && targetContainers.indexOf(targetContainer) === -1) {\n targetContainers.push(targetContainer);\n }\n\n return existingQueuedEvent;\n}\n\nfunction queueIfContinuousEvent(blockedOn, domEventName, eventSystemFlags, targetContainer, nativeEvent) {\n // These set relatedTarget to null because the replayed event will be treated as if we\n // moved from outside the window (no target) onto the target once it hydrates.\n // Instead of mutating we could clone the event.\n switch (domEventName) {\n case 'focusin':\n {\n var focusEvent = nativeEvent;\n queuedFocus = accumulateOrCreateContinuousQueuedReplayableEvent(queuedFocus, blockedOn, domEventName, eventSystemFlags, targetContainer, focusEvent);\n return true;\n }\n\n case 'dragenter':\n {\n var dragEvent = nativeEvent;\n queuedDrag = accumulateOrCreateContinuousQueuedReplayableEvent(queuedDrag, blockedOn, domEventName, eventSystemFlags, targetContainer, dragEvent);\n return true;\n }\n\n case 'mouseover':\n {\n var mouseEvent = nativeEvent;\n queuedMouse = accumulateOrCreateContinuousQueuedReplayableEvent(queuedMouse, blockedOn, domEventName, eventSystemFlags, targetContainer, mouseEvent);\n return true;\n }\n\n case 'pointerover':\n {\n var pointerEvent = nativeEvent;\n var pointerId = pointerEvent.pointerId;\n queuedPointers.set(pointerId, accumulateOrCreateContinuousQueuedReplayableEvent(queuedPointers.get(pointerId) || null, blockedOn, domEventName, eventSystemFlags, targetContainer, pointerEvent));\n return true;\n }\n\n case 'gotpointercapture':\n {\n var _pointerEvent = nativeEvent;\n var _pointerId2 = _pointerEvent.pointerId;\n queuedPointerCaptures.set(_pointerId2, accumulateOrCreateContinuousQueuedReplayableEvent(queuedPointerCaptures.get(_pointerId2) || null, blockedOn, domEventName, eventSystemFlags, targetContainer, _pointerEvent));\n return true;\n }\n }\n\n return false;\n} // Check if this target is unblocked. Returns true if it's unblocked.\n\nfunction attemptExplicitHydrationTarget(queuedTarget) {\n // TODO: This function shares a lot of logic with attemptToDispatchEvent.\n // Try to unify them. It's a bit tricky since it would require two return\n // values.\n var targetInst = getClosestInstanceFromNode(queuedTarget.target);\n\n if (targetInst !== null) {\n var nearestMounted = getNearestMountedFiber(targetInst);\n\n if (nearestMounted !== null) {\n var tag = nearestMounted.tag;\n\n if (tag === SuspenseComponent) {\n var instance = getSuspenseInstanceFromFiber(nearestMounted);\n\n if (instance !== null) {\n // We're blocked on hydrating this boundary.\n // Increase its priority.\n queuedTarget.blockedOn = instance;\n attemptHydrationAtPriority(queuedTarget.lanePriority, function () {\n Scheduler.unstable_runWithPriority(queuedTarget.priority, function () {\n attemptHydrationAtCurrentPriority(nearestMounted);\n });\n });\n return;\n }\n } else if (tag === HostRoot) {\n var root = nearestMounted.stateNode;\n\n if (root.hydrate) {\n queuedTarget.blockedOn = getContainerFromFiber(nearestMounted); // We don't currently have a way to increase the priority of\n // a root other than sync.\n\n return;\n }\n }\n }\n }\n\n queuedTarget.blockedOn = null;\n}\n\nfunction attemptReplayContinuousQueuedEvent(queuedEvent) {\n if (queuedEvent.blockedOn !== null) {\n return false;\n }\n\n var targetContainers = queuedEvent.targetContainers;\n\n while (targetContainers.length > 0) {\n var targetContainer = targetContainers[0];\n var nextBlockedOn = attemptToDispatchEvent(queuedEvent.domEventName, queuedEvent.eventSystemFlags, targetContainer, queuedEvent.nativeEvent);\n\n if (nextBlockedOn !== null) {\n // We're still blocked. Try again later.\n var _fiber3 = getInstanceFromNode(nextBlockedOn);\n\n if (_fiber3 !== null) {\n attemptContinuousHydration(_fiber3);\n }\n\n queuedEvent.blockedOn = nextBlockedOn;\n return false;\n } // This target container was successfully dispatched. Try the next.\n\n\n targetContainers.shift();\n }\n\n return true;\n}\n\nfunction attemptReplayContinuousQueuedEventInMap(queuedEvent, key, map) {\n if (attemptReplayContinuousQueuedEvent(queuedEvent)) {\n map.delete(key);\n }\n}\n\nfunction replayUnblockedEvents() {\n hasScheduledReplayAttempt = false; // First replay discrete events.\n\n while (queuedDiscreteEvents.length > 0) {\n var nextDiscreteEvent = queuedDiscreteEvents[0];\n\n if (nextDiscreteEvent.blockedOn !== null) {\n // We're still blocked.\n // Increase the priority of this boundary to unblock\n // the next discrete event.\n var _fiber4 = getInstanceFromNode(nextDiscreteEvent.blockedOn);\n\n if (_fiber4 !== null) {\n attemptUserBlockingHydration(_fiber4);\n }\n\n break;\n }\n\n var targetContainers = nextDiscreteEvent.targetContainers;\n\n while (targetContainers.length > 0) {\n var targetContainer = targetContainers[0];\n var nextBlockedOn = attemptToDispatchEvent(nextDiscreteEvent.domEventName, nextDiscreteEvent.eventSystemFlags, targetContainer, nextDiscreteEvent.nativeEvent);\n\n if (nextBlockedOn !== null) {\n // We're still blocked. Try again later.\n nextDiscreteEvent.blockedOn = nextBlockedOn;\n break;\n } // This target container was successfully dispatched. Try the next.\n\n\n targetContainers.shift();\n }\n\n if (nextDiscreteEvent.blockedOn === null) {\n // We've successfully replayed the first event. Let's try the next one.\n queuedDiscreteEvents.shift();\n }\n } // Next replay any continuous events.\n\n\n if (queuedFocus !== null && attemptReplayContinuousQueuedEvent(queuedFocus)) {\n queuedFocus = null;\n }\n\n if (queuedDrag !== null && attemptReplayContinuousQueuedEvent(queuedDrag)) {\n queuedDrag = null;\n }\n\n if (queuedMouse !== null && attemptReplayContinuousQueuedEvent(queuedMouse)) {\n queuedMouse = null;\n }\n\n queuedPointers.forEach(attemptReplayContinuousQueuedEventInMap);\n queuedPointerCaptures.forEach(attemptReplayContinuousQueuedEventInMap);\n}\n\nfunction scheduleCallbackIfUnblocked(queuedEvent, unblocked) {\n if (queuedEvent.blockedOn === unblocked) {\n queuedEvent.blockedOn = null;\n\n if (!hasScheduledReplayAttempt) {\n hasScheduledReplayAttempt = true; // Schedule a callback to attempt replaying as many events as are\n // now unblocked. This first might not actually be unblocked yet.\n // We could check it early to avoid scheduling an unnecessary callback.\n\n Scheduler.unstable_scheduleCallback(Scheduler.unstable_NormalPriority, replayUnblockedEvents);\n }\n }\n}\n\nfunction retryIfBlockedOn(unblocked) {\n // Mark anything that was blocked on this as no longer blocked\n // and eligible for a replay.\n if (queuedDiscreteEvents.length > 0) {\n scheduleCallbackIfUnblocked(queuedDiscreteEvents[0], unblocked); // This is a exponential search for each boundary that commits. I think it's\n // worth it because we expect very few discrete events to queue up and once\n // we are actually fully unblocked it will be fast to replay them.\n\n for (var i = 1; i < queuedDiscreteEvents.length; i++) {\n var queuedEvent = queuedDiscreteEvents[i];\n\n if (queuedEvent.blockedOn === unblocked) {\n queuedEvent.blockedOn = null;\n }\n }\n }\n\n if (queuedFocus !== null) {\n scheduleCallbackIfUnblocked(queuedFocus, unblocked);\n }\n\n if (queuedDrag !== null) {\n scheduleCallbackIfUnblocked(queuedDrag, unblocked);\n }\n\n if (queuedMouse !== null) {\n scheduleCallbackIfUnblocked(queuedMouse, unblocked);\n }\n\n var unblock = function (queuedEvent) {\n return scheduleCallbackIfUnblocked(queuedEvent, unblocked);\n };\n\n queuedPointers.forEach(unblock);\n queuedPointerCaptures.forEach(unblock);\n\n for (var _i = 0; _i < queuedExplicitHydrationTargets.length; _i++) {\n var queuedTarget = queuedExplicitHydrationTargets[_i];\n\n if (queuedTarget.blockedOn === unblocked) {\n queuedTarget.blockedOn = null;\n }\n }\n\n while (queuedExplicitHydrationTargets.length > 0) {\n var nextExplicitTarget = queuedExplicitHydrationTargets[0];\n\n if (nextExplicitTarget.blockedOn !== null) {\n // We're still blocked.\n break;\n } else {\n attemptExplicitHydrationTarget(nextExplicitTarget);\n\n if (nextExplicitTarget.blockedOn === null) {\n // We're unblocked.\n queuedExplicitHydrationTargets.shift();\n }\n }\n }\n}\n\nvar DiscreteEvent = 0;\nvar UserBlockingEvent = 1;\nvar ContinuousEvent = 2;\n\n/**\n * Generate a mapping of standard vendor prefixes using the defined style property and event name.\n *\n * @param {string} styleProp\n * @param {string} eventName\n * @returns {object}\n */\n\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes['Webkit' + styleProp] = 'webkit' + eventName;\n prefixes['Moz' + styleProp] = 'moz' + eventName;\n return prefixes;\n}\n/**\n * A list of event names to a configurable list of vendor prefixes.\n */\n\n\nvar vendorPrefixes = {\n animationend: makePrefixMap('Animation', 'AnimationEnd'),\n animationiteration: makePrefixMap('Animation', 'AnimationIteration'),\n animationstart: makePrefixMap('Animation', 'AnimationStart'),\n transitionend: makePrefixMap('Transition', 'TransitionEnd')\n};\n/**\n * Event names that have already been detected and prefixed (if applicable).\n */\n\nvar prefixedEventNames = {};\n/**\n * Element to check for prefixes on.\n */\n\nvar style = {};\n/**\n * Bootstrap if a DOM exists.\n */\n\nif (canUseDOM) {\n style = document.createElement('div').style; // On some platforms, in particular some releases of Android 4.x,\n // the un-prefixed \"animation\" and \"transition\" properties are defined on the\n // style object but the events that fire will still be prefixed, so we need\n // to check if the un-prefixed events are usable, and if not remove them from the map.\n\n if (!('AnimationEvent' in window)) {\n delete vendorPrefixes.animationend.animation;\n delete vendorPrefixes.animationiteration.animation;\n delete vendorPrefixes.animationstart.animation;\n } // Same as above\n\n\n if (!('TransitionEvent' in window)) {\n delete vendorPrefixes.transitionend.transition;\n }\n}\n/**\n * Attempts to determine the correct vendor prefixed event name.\n *\n * @param {string} eventName\n * @returns {string}\n */\n\n\nfunction getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) {\n return prefixedEventNames[eventName];\n } else if (!vendorPrefixes[eventName]) {\n return eventName;\n }\n\n var prefixMap = vendorPrefixes[eventName];\n\n for (var styleProp in prefixMap) {\n if (prefixMap.hasOwnProperty(styleProp) && styleProp in style) {\n return prefixedEventNames[eventName] = prefixMap[styleProp];\n }\n }\n\n return eventName;\n}\n\nvar ANIMATION_END = getVendorPrefixedEventName('animationend');\nvar ANIMATION_ITERATION = getVendorPrefixedEventName('animationiteration');\nvar ANIMATION_START = getVendorPrefixedEventName('animationstart');\nvar TRANSITION_END = getVendorPrefixedEventName('transitionend');\n\nvar topLevelEventsToReactNames = new Map();\nvar eventPriorities = new Map(); // We store most of the events in this module in pairs of two strings so we can re-use\n// the code required to apply the same logic for event prioritization and that of the\n// SimpleEventPlugin. This complicates things slightly, but the aim is to reduce code\n// duplication (for which there would be quite a bit). For the events that are not needed\n// for the SimpleEventPlugin (otherDiscreteEvents) we process them separately as an\n// array of top level events.\n// Lastly, we ignore prettier so we can keep the formatting sane.\n// prettier-ignore\n\nvar discreteEventPairsForSimpleEventPlugin = ['cancel', 'cancel', 'click', 'click', 'close', 'close', 'contextmenu', 'contextMenu', 'copy', 'copy', 'cut', 'cut', 'auxclick', 'auxClick', 'dblclick', 'doubleClick', // Careful!\n'dragend', 'dragEnd', 'dragstart', 'dragStart', 'drop', 'drop', 'focusin', 'focus', // Careful!\n'focusout', 'blur', // Careful!\n'input', 'input', 'invalid', 'invalid', 'keydown', 'keyDown', 'keypress', 'keyPress', 'keyup', 'keyUp', 'mousedown', 'mouseDown', 'mouseup', 'mouseUp', 'paste', 'paste', 'pause', 'pause', 'play', 'play', 'pointercancel', 'pointerCancel', 'pointerdown', 'pointerDown', 'pointerup', 'pointerUp', 'ratechange', 'rateChange', 'reset', 'reset', 'seeked', 'seeked', 'submit', 'submit', 'touchcancel', 'touchCancel', 'touchend', 'touchEnd', 'touchstart', 'touchStart', 'volumechange', 'volumeChange'];\nvar otherDiscreteEvents = ['change', 'selectionchange', 'textInput', 'compositionstart', 'compositionend', 'compositionupdate'];\n\n\nvar userBlockingPairsForSimpleEventPlugin = ['drag', 'drag', 'dragenter', 'dragEnter', 'dragexit', 'dragExit', 'dragleave', 'dragLeave', 'dragover', 'dragOver', 'mousemove', 'mouseMove', 'mouseout', 'mouseOut', 'mouseover', 'mouseOver', 'pointermove', 'pointerMove', 'pointerout', 'pointerOut', 'pointerover', 'pointerOver', 'scroll', 'scroll', 'toggle', 'toggle', 'touchmove', 'touchMove', 'wheel', 'wheel']; // prettier-ignore\n\nvar continuousPairsForSimpleEventPlugin = ['abort', 'abort', ANIMATION_END, 'animationEnd', ANIMATION_ITERATION, 'animationIteration', ANIMATION_START, 'animationStart', 'canplay', 'canPlay', 'canplaythrough', 'canPlayThrough', 'durationchange', 'durationChange', 'emptied', 'emptied', 'encrypted', 'encrypted', 'ended', 'ended', 'error', 'error', 'gotpointercapture', 'gotPointerCapture', 'load', 'load', 'loadeddata', 'loadedData', 'loadedmetadata', 'loadedMetadata', 'loadstart', 'loadStart', 'lostpointercapture', 'lostPointerCapture', 'playing', 'playing', 'progress', 'progress', 'seeking', 'seeking', 'stalled', 'stalled', 'suspend', 'suspend', 'timeupdate', 'timeUpdate', TRANSITION_END, 'transitionEnd', 'waiting', 'waiting'];\n/**\n * Turns\n * ['abort', ...]\n *\n * into\n *\n * topLevelEventsToReactNames = new Map([\n * ['abort', 'onAbort'],\n * ]);\n *\n * and registers them.\n */\n\nfunction registerSimplePluginEventsAndSetTheirPriorities(eventTypes, priority) {\n // As the event types are in pairs of two, we need to iterate\n // through in twos. The events are in pairs of two to save code\n // and improve init perf of processing this array, as it will\n // result in far fewer object allocations and property accesses\n // if we only use three arrays to process all the categories of\n // instead of tuples.\n for (var i = 0; i < eventTypes.length; i += 2) {\n var topEvent = eventTypes[i];\n var event = eventTypes[i + 1];\n var capitalizedEvent = event[0].toUpperCase() + event.slice(1);\n var reactName = 'on' + capitalizedEvent;\n eventPriorities.set(topEvent, priority);\n topLevelEventsToReactNames.set(topEvent, reactName);\n registerTwoPhaseEvent(reactName, [topEvent]);\n }\n}\n\nfunction setEventPriorities(eventTypes, priority) {\n for (var i = 0; i < eventTypes.length; i++) {\n eventPriorities.set(eventTypes[i], priority);\n }\n}\n\nfunction getEventPriorityForPluginSystem(domEventName) {\n var priority = eventPriorities.get(domEventName); // Default to a ContinuousEvent. Note: we might\n // want to warn if we can't detect the priority\n // for the event.\n\n return priority === undefined ? ContinuousEvent : priority;\n}\nfunction registerSimpleEvents() {\n registerSimplePluginEventsAndSetTheirPriorities(discreteEventPairsForSimpleEventPlugin, DiscreteEvent);\n registerSimplePluginEventsAndSetTheirPriorities(userBlockingPairsForSimpleEventPlugin, UserBlockingEvent);\n registerSimplePluginEventsAndSetTheirPriorities(continuousPairsForSimpleEventPlugin, ContinuousEvent);\n setEventPriorities(otherDiscreteEvents, DiscreteEvent);\n}\n\nvar Scheduler_now = Scheduler.unstable_now;\n\n{\n // Provide explicit error message when production+profiling bundle of e.g.\n // react-dom is used with production (non-profiling) bundle of\n // scheduler/tracing\n if (!(tracing.__interactionsRef != null && tracing.__interactionsRef.current != null)) {\n {\n throw Error( \"It is not supported to run the profiling version of a renderer (for example, `react-dom/profiling`) without also replacing the `scheduler/tracing` module with `scheduler/tracing-profiling`. Your bundler might have a setting for aliasing both modules. Learn more at https://reactjs.org/link/profiling\" );\n }\n }\n}\n// ascending numbers so we can compare them like numbers. They start at 90 to\n// avoid clashing with Scheduler's priorities.\n\nvar ImmediatePriority = 99;\nvar UserBlockingPriority = 98;\nvar NormalPriority = 97;\nvar LowPriority = 96;\nvar IdlePriority = 95; // NoPriority is the absence of priority. Also React-only.\n\nvar NoPriority = 90;\nvar initialTimeMs = Scheduler_now(); // If the initial timestamp is reasonably small, use Scheduler's `now` directly.\n\nvar SyncLanePriority = 15;\nvar SyncBatchedLanePriority = 14;\nvar InputDiscreteHydrationLanePriority = 13;\nvar InputDiscreteLanePriority = 12;\nvar InputContinuousHydrationLanePriority = 11;\nvar InputContinuousLanePriority = 10;\nvar DefaultHydrationLanePriority = 9;\nvar DefaultLanePriority = 8;\nvar TransitionHydrationPriority = 7;\nvar TransitionPriority = 6;\nvar RetryLanePriority = 5;\nvar SelectiveHydrationLanePriority = 4;\nvar IdleHydrationLanePriority = 3;\nvar IdleLanePriority = 2;\nvar OffscreenLanePriority = 1;\nvar NoLanePriority = 0;\nvar TotalLanes = 31;\nvar NoLanes =\n/* */\n0;\nvar NoLane =\n/* */\n0;\nvar SyncLane =\n/* */\n1;\nvar SyncBatchedLane =\n/* */\n2;\nvar InputDiscreteHydrationLane =\n/* */\n4;\nvar InputDiscreteLanes =\n/* */\n24;\nvar InputContinuousHydrationLane =\n/* */\n32;\nvar InputContinuousLanes =\n/* */\n192;\nvar DefaultHydrationLane =\n/* */\n256;\nvar DefaultLanes =\n/* */\n3584;\nvar TransitionHydrationLane =\n/* */\n4096;\nvar TransitionLanes =\n/* */\n4186112;\nvar RetryLanes =\n/* */\n62914560;\nvar SomeRetryLane =\n/* */\n33554432;\nvar SelectiveHydrationLane =\n/* */\n67108864;\nvar NonIdleLanes =\n/* */\n134217727;\nvar IdleHydrationLane =\n/* */\n134217728;\nvar IdleLanes =\n/* */\n805306368;\nvar OffscreenLane =\n/* */\n1073741824;\nvar NoTimestamp = -1;\nfunction setCurrentUpdateLanePriority(newLanePriority) {\n} // \"Registers\" used to \"return\" multiple values\n// Used by getHighestPriorityLanes and getNextLanes:\n\nvar return_highestLanePriority = DefaultLanePriority;\n\nfunction getHighestPriorityLanes(lanes) {\n if ((SyncLane & lanes) !== NoLanes) {\n return_highestLanePriority = SyncLanePriority;\n return SyncLane;\n }\n\n if ((SyncBatchedLane & lanes) !== NoLanes) {\n return_highestLanePriority = SyncBatchedLanePriority;\n return SyncBatchedLane;\n }\n\n if ((InputDiscreteHydrationLane & lanes) !== NoLanes) {\n return_highestLanePriority = InputDiscreteHydrationLanePriority;\n return InputDiscreteHydrationLane;\n }\n\n var inputDiscreteLanes = InputDiscreteLanes & lanes;\n\n if (inputDiscreteLanes !== NoLanes) {\n return_highestLanePriority = InputDiscreteLanePriority;\n return inputDiscreteLanes;\n }\n\n if ((lanes & InputContinuousHydrationLane) !== NoLanes) {\n return_highestLanePriority = InputContinuousHydrationLanePriority;\n return InputContinuousHydrationLane;\n }\n\n var inputContinuousLanes = InputContinuousLanes & lanes;\n\n if (inputContinuousLanes !== NoLanes) {\n return_highestLanePriority = InputContinuousLanePriority;\n return inputContinuousLanes;\n }\n\n if ((lanes & DefaultHydrationLane) !== NoLanes) {\n return_highestLanePriority = DefaultHydrationLanePriority;\n return DefaultHydrationLane;\n }\n\n var defaultLanes = DefaultLanes & lanes;\n\n if (defaultLanes !== NoLanes) {\n return_highestLanePriority = DefaultLanePriority;\n return defaultLanes;\n }\n\n if ((lanes & TransitionHydrationLane) !== NoLanes) {\n return_highestLanePriority = TransitionHydrationPriority;\n return TransitionHydrationLane;\n }\n\n var transitionLanes = TransitionLanes & lanes;\n\n if (transitionLanes !== NoLanes) {\n return_highestLanePriority = TransitionPriority;\n return transitionLanes;\n }\n\n var retryLanes = RetryLanes & lanes;\n\n if (retryLanes !== NoLanes) {\n return_highestLanePriority = RetryLanePriority;\n return retryLanes;\n }\n\n if (lanes & SelectiveHydrationLane) {\n return_highestLanePriority = SelectiveHydrationLanePriority;\n return SelectiveHydrationLane;\n }\n\n if ((lanes & IdleHydrationLane) !== NoLanes) {\n return_highestLanePriority = IdleHydrationLanePriority;\n return IdleHydrationLane;\n }\n\n var idleLanes = IdleLanes & lanes;\n\n if (idleLanes !== NoLanes) {\n return_highestLanePriority = IdleLanePriority;\n return idleLanes;\n }\n\n if ((OffscreenLane & lanes) !== NoLanes) {\n return_highestLanePriority = OffscreenLanePriority;\n return OffscreenLane;\n }\n\n {\n error('Should have found matching lanes. This is a bug in React.');\n } // This shouldn't be reachable, but as a fallback, return the entire bitmask.\n\n\n return_highestLanePriority = DefaultLanePriority;\n return lanes;\n}\n\nfunction schedulerPriorityToLanePriority(schedulerPriorityLevel) {\n switch (schedulerPriorityLevel) {\n case ImmediatePriority:\n return SyncLanePriority;\n\n case UserBlockingPriority:\n return InputContinuousLanePriority;\n\n case NormalPriority:\n case LowPriority:\n // TODO: Handle LowSchedulerPriority, somehow. Maybe the same lane as hydration.\n return DefaultLanePriority;\n\n case IdlePriority:\n return IdleLanePriority;\n\n default:\n return NoLanePriority;\n }\n}\nfunction lanePriorityToSchedulerPriority(lanePriority) {\n switch (lanePriority) {\n case SyncLanePriority:\n case SyncBatchedLanePriority:\n return ImmediatePriority;\n\n case InputDiscreteHydrationLanePriority:\n case InputDiscreteLanePriority:\n case InputContinuousHydrationLanePriority:\n case InputContinuousLanePriority:\n return UserBlockingPriority;\n\n case DefaultHydrationLanePriority:\n case DefaultLanePriority:\n case TransitionHydrationPriority:\n case TransitionPriority:\n case SelectiveHydrationLanePriority:\n case RetryLanePriority:\n return NormalPriority;\n\n case IdleHydrationLanePriority:\n case IdleLanePriority:\n case OffscreenLanePriority:\n return IdlePriority;\n\n case NoLanePriority:\n return NoPriority;\n\n default:\n {\n {\n throw Error( \"Invalid update priority: \" + lanePriority + \". This is a bug in React.\" );\n }\n }\n\n }\n}\nfunction getNextLanes(root, wipLanes) {\n // Early bailout if there's no pending work left.\n var pendingLanes = root.pendingLanes;\n\n if (pendingLanes === NoLanes) {\n return_highestLanePriority = NoLanePriority;\n return NoLanes;\n }\n\n var nextLanes = NoLanes;\n var nextLanePriority = NoLanePriority;\n var expiredLanes = root.expiredLanes;\n var suspendedLanes = root.suspendedLanes;\n var pingedLanes = root.pingedLanes; // Check if any work has expired.\n\n if (expiredLanes !== NoLanes) {\n nextLanes = expiredLanes;\n nextLanePriority = return_highestLanePriority = SyncLanePriority;\n } else {\n // Do not work on any idle work until all the non-idle work has finished,\n // even if the work is suspended.\n var nonIdlePendingLanes = pendingLanes & NonIdleLanes;\n\n if (nonIdlePendingLanes !== NoLanes) {\n var nonIdleUnblockedLanes = nonIdlePendingLanes & ~suspendedLanes;\n\n if (nonIdleUnblockedLanes !== NoLanes) {\n nextLanes = getHighestPriorityLanes(nonIdleUnblockedLanes);\n nextLanePriority = return_highestLanePriority;\n } else {\n var nonIdlePingedLanes = nonIdlePendingLanes & pingedLanes;\n\n if (nonIdlePingedLanes !== NoLanes) {\n nextLanes = getHighestPriorityLanes(nonIdlePingedLanes);\n nextLanePriority = return_highestLanePriority;\n }\n }\n } else {\n // The only remaining work is Idle.\n var unblockedLanes = pendingLanes & ~suspendedLanes;\n\n if (unblockedLanes !== NoLanes) {\n nextLanes = getHighestPriorityLanes(unblockedLanes);\n nextLanePriority = return_highestLanePriority;\n } else {\n if (pingedLanes !== NoLanes) {\n nextLanes = getHighestPriorityLanes(pingedLanes);\n nextLanePriority = return_highestLanePriority;\n }\n }\n }\n }\n\n if (nextLanes === NoLanes) {\n // This should only be reachable if we're suspended\n // TODO: Consider warning in this path if a fallback timer is not scheduled.\n return NoLanes;\n } // If there are higher priority lanes, we'll include them even if they\n // are suspended.\n\n\n nextLanes = pendingLanes & getEqualOrHigherPriorityLanes(nextLanes); // If we're already in the middle of a render, switching lanes will interrupt\n // it and we'll lose our progress. We should only do this if the new lanes are\n // higher priority.\n\n if (wipLanes !== NoLanes && wipLanes !== nextLanes && // If we already suspended with a delay, then interrupting is fine. Don't\n // bother waiting until the root is complete.\n (wipLanes & suspendedLanes) === NoLanes) {\n getHighestPriorityLanes(wipLanes);\n var wipLanePriority = return_highestLanePriority;\n\n if (nextLanePriority <= wipLanePriority) {\n return wipLanes;\n } else {\n return_highestLanePriority = nextLanePriority;\n }\n } // Check for entangled lanes and add them to the batch.\n //\n // A lane is said to be entangled with another when it's not allowed to render\n // in a batch that does not also include the other lane. Typically we do this\n // when multiple updates have the same source, and we only want to respond to\n // the most recent event from that source.\n //\n // Note that we apply entanglements *after* checking for partial work above.\n // This means that if a lane is entangled during an interleaved event while\n // it's already rendering, we won't interrupt it. This is intentional, since\n // entanglement is usually \"best effort\": we'll try our best to render the\n // lanes in the same batch, but it's not worth throwing out partially\n // completed work in order to do it.\n //\n // For those exceptions where entanglement is semantically important, like\n // useMutableSource, we should ensure that there is no partial work at the\n // time we apply the entanglement.\n\n\n var entangledLanes = root.entangledLanes;\n\n if (entangledLanes !== NoLanes) {\n var entanglements = root.entanglements;\n var lanes = nextLanes & entangledLanes;\n\n while (lanes > 0) {\n var index = pickArbitraryLaneIndex(lanes);\n var lane = 1 << index;\n nextLanes |= entanglements[index];\n lanes &= ~lane;\n }\n }\n\n return nextLanes;\n}\nfunction getMostRecentEventTime(root, lanes) {\n var eventTimes = root.eventTimes;\n var mostRecentEventTime = NoTimestamp;\n\n while (lanes > 0) {\n var index = pickArbitraryLaneIndex(lanes);\n var lane = 1 << index;\n var eventTime = eventTimes[index];\n\n if (eventTime > mostRecentEventTime) {\n mostRecentEventTime = eventTime;\n }\n\n lanes &= ~lane;\n }\n\n return mostRecentEventTime;\n}\n\nfunction computeExpirationTime(lane, currentTime) {\n // TODO: Expiration heuristic is constant per lane, so could use a map.\n getHighestPriorityLanes(lane);\n var priority = return_highestLanePriority;\n\n if (priority >= InputContinuousLanePriority) {\n // User interactions should expire slightly more quickly.\n //\n // NOTE: This is set to the corresponding constant as in Scheduler.js. When\n // we made it larger, a product metric in www regressed, suggesting there's\n // a user interaction that's being starved by a series of synchronous\n // updates. If that theory is correct, the proper solution is to fix the\n // starvation. However, this scenario supports the idea that expiration\n // times are an important safeguard when starvation does happen.\n //\n // Also note that, in the case of user input specifically, this will soon no\n // longer be an issue because we plan to make user input synchronous by\n // default (until you enter `startTransition`, of course.)\n //\n // If weren't planning to make these updates synchronous soon anyway, I\n // would probably make this number a configurable parameter.\n return currentTime + 250;\n } else if (priority >= TransitionPriority) {\n return currentTime + 5000;\n } else {\n // Anything idle priority or lower should never expire.\n return NoTimestamp;\n }\n}\n\nfunction markStarvedLanesAsExpired(root, currentTime) {\n // TODO: This gets called every time we yield. We can optimize by storing\n // the earliest expiration time on the root. Then use that to quickly bail out\n // of this function.\n var pendingLanes = root.pendingLanes;\n var suspendedLanes = root.suspendedLanes;\n var pingedLanes = root.pingedLanes;\n var expirationTimes = root.expirationTimes; // Iterate through the pending lanes and check if we've reached their\n // expiration time. If so, we'll assume the update is being starved and mark\n // it as expired to force it to finish.\n\n var lanes = pendingLanes;\n\n while (lanes > 0) {\n var index = pickArbitraryLaneIndex(lanes);\n var lane = 1 << index;\n var expirationTime = expirationTimes[index];\n\n if (expirationTime === NoTimestamp) {\n // Found a pending lane with no expiration time. If it's not suspended, or\n // if it's pinged, assume it's CPU-bound. Compute a new expiration time\n // using the current time.\n if ((lane & suspendedLanes) === NoLanes || (lane & pingedLanes) !== NoLanes) {\n // Assumes timestamps are monotonically increasing.\n expirationTimes[index] = computeExpirationTime(lane, currentTime);\n }\n } else if (expirationTime <= currentTime) {\n // This lane expired\n root.expiredLanes |= lane;\n }\n\n lanes &= ~lane;\n }\n} // This returns the highest priority pending lanes regardless of whether they\nfunction getLanesToRetrySynchronouslyOnError(root) {\n var everythingButOffscreen = root.pendingLanes & ~OffscreenLane;\n\n if (everythingButOffscreen !== NoLanes) {\n return everythingButOffscreen;\n }\n\n if (everythingButOffscreen & OffscreenLane) {\n return OffscreenLane;\n }\n\n return NoLanes;\n}\nfunction returnNextLanesPriority() {\n return return_highestLanePriority;\n}\nfunction includesNonIdleWork(lanes) {\n return (lanes & NonIdleLanes) !== NoLanes;\n}\nfunction includesOnlyRetries(lanes) {\n return (lanes & RetryLanes) === lanes;\n}\nfunction includesOnlyTransitions(lanes) {\n return (lanes & TransitionLanes) === lanes;\n} // To ensure consistency across multiple updates in the same event, this should\n// be a pure function, so that it always returns the same lane for given inputs.\n\nfunction findUpdateLane(lanePriority, wipLanes) {\n switch (lanePriority) {\n case NoLanePriority:\n break;\n\n case SyncLanePriority:\n return SyncLane;\n\n case SyncBatchedLanePriority:\n return SyncBatchedLane;\n\n case InputDiscreteLanePriority:\n {\n var _lane = pickArbitraryLane(InputDiscreteLanes & ~wipLanes);\n\n if (_lane === NoLane) {\n // Shift to the next priority level\n return findUpdateLane(InputContinuousLanePriority, wipLanes);\n }\n\n return _lane;\n }\n\n case InputContinuousLanePriority:\n {\n var _lane2 = pickArbitraryLane(InputContinuousLanes & ~wipLanes);\n\n if (_lane2 === NoLane) {\n // Shift to the next priority level\n return findUpdateLane(DefaultLanePriority, wipLanes);\n }\n\n return _lane2;\n }\n\n case DefaultLanePriority:\n {\n var _lane3 = pickArbitraryLane(DefaultLanes & ~wipLanes);\n\n if (_lane3 === NoLane) {\n // If all the default lanes are already being worked on, look for a\n // lane in the transition range.\n _lane3 = pickArbitraryLane(TransitionLanes & ~wipLanes);\n\n if (_lane3 === NoLane) {\n // All the transition lanes are taken, too. This should be very\n // rare, but as a last resort, pick a default lane. This will have\n // the effect of interrupting the current work-in-progress render.\n _lane3 = pickArbitraryLane(DefaultLanes);\n }\n }\n\n return _lane3;\n }\n\n case TransitionPriority: // Should be handled by findTransitionLane instead\n\n case RetryLanePriority:\n // Should be handled by findRetryLane instead\n break;\n\n case IdleLanePriority:\n var lane = pickArbitraryLane(IdleLanes & ~wipLanes);\n\n if (lane === NoLane) {\n lane = pickArbitraryLane(IdleLanes);\n }\n\n return lane;\n }\n\n {\n {\n throw Error( \"Invalid update priority: \" + lanePriority + \". This is a bug in React.\" );\n }\n }\n} // To ensure consistency across multiple updates in the same event, this should\n// be pure function, so that it always returns the same lane for given inputs.\n\nfunction findTransitionLane(wipLanes, pendingLanes) {\n // First look for lanes that are completely unclaimed, i.e. have no\n // pending work.\n var lane = pickArbitraryLane(TransitionLanes & ~pendingLanes);\n\n if (lane === NoLane) {\n // If all lanes have pending work, look for a lane that isn't currently\n // being worked on.\n lane = pickArbitraryLane(TransitionLanes & ~wipLanes);\n\n if (lane === NoLane) {\n // If everything is being worked on, pick any lane. This has the\n // effect of interrupting the current work-in-progress.\n lane = pickArbitraryLane(TransitionLanes);\n }\n }\n\n return lane;\n} // To ensure consistency across multiple updates in the same event, this should\n// be pure function, so that it always returns the same lane for given inputs.\n\nfunction findRetryLane(wipLanes) {\n // This is a fork of `findUpdateLane` designed specifically for Suspense\n // \"retries\" — a special update that attempts to flip a Suspense boundary\n // from its placeholder state to its primary/resolved state.\n var lane = pickArbitraryLane(RetryLanes & ~wipLanes);\n\n if (lane === NoLane) {\n lane = pickArbitraryLane(RetryLanes);\n }\n\n return lane;\n}\n\nfunction getHighestPriorityLane(lanes) {\n return lanes & -lanes;\n}\n\nfunction getLowestPriorityLane(lanes) {\n // This finds the most significant non-zero bit.\n var index = 31 - clz32(lanes);\n return index < 0 ? NoLanes : 1 << index;\n}\n\nfunction getEqualOrHigherPriorityLanes(lanes) {\n return (getLowestPriorityLane(lanes) << 1) - 1;\n}\n\nfunction pickArbitraryLane(lanes) {\n // This wrapper function gets inlined. Only exists so to communicate that it\n // doesn't matter which bit is selected; you can pick any bit without\n // affecting the algorithms where its used. Here I'm using\n // getHighestPriorityLane because it requires the fewest operations.\n return getHighestPriorityLane(lanes);\n}\n\nfunction pickArbitraryLaneIndex(lanes) {\n return 31 - clz32(lanes);\n}\n\nfunction laneToIndex(lane) {\n return pickArbitraryLaneIndex(lane);\n}\n\nfunction includesSomeLane(a, b) {\n return (a & b) !== NoLanes;\n}\nfunction isSubsetOfLanes(set, subset) {\n return (set & subset) === subset;\n}\nfunction mergeLanes(a, b) {\n return a | b;\n}\nfunction removeLanes(set, subset) {\n return set & ~subset;\n} // Seems redundant, but it changes the type from a single lane (used for\n// updates) to a group of lanes (used for flushing work).\n\nfunction laneToLanes(lane) {\n return lane;\n}\nfunction higherPriorityLane(a, b) {\n // This works because the bit ranges decrease in priority as you go left.\n return a !== NoLane && a < b ? a : b;\n}\nfunction createLaneMap(initial) {\n // Intentionally pushing one by one.\n // https://v8.dev/blog/elements-kinds#avoid-creating-holes\n var laneMap = [];\n\n for (var i = 0; i < TotalLanes; i++) {\n laneMap.push(initial);\n }\n\n return laneMap;\n}\nfunction markRootUpdated(root, updateLane, eventTime) {\n root.pendingLanes |= updateLane; // TODO: Theoretically, any update to any lane can unblock any other lane. But\n // it's not practical to try every single possible combination. We need a\n // heuristic to decide which lanes to attempt to render, and in which batches.\n // For now, we use the same heuristic as in the old ExpirationTimes model:\n // retry any lane at equal or lower priority, but don't try updates at higher\n // priority without also including the lower priority updates. This works well\n // when considering updates across different priority levels, but isn't\n // sufficient for updates within the same priority, since we want to treat\n // those updates as parallel.\n // Unsuspend any update at equal or lower priority.\n\n var higherPriorityLanes = updateLane - 1; // Turns 0b1000 into 0b0111\n\n root.suspendedLanes &= higherPriorityLanes;\n root.pingedLanes &= higherPriorityLanes;\n var eventTimes = root.eventTimes;\n var index = laneToIndex(updateLane); // We can always overwrite an existing timestamp because we prefer the most\n // recent event, and we assume time is monotonically increasing.\n\n eventTimes[index] = eventTime;\n}\nfunction markRootSuspended(root, suspendedLanes) {\n root.suspendedLanes |= suspendedLanes;\n root.pingedLanes &= ~suspendedLanes; // The suspended lanes are no longer CPU-bound. Clear their expiration times.\n\n var expirationTimes = root.expirationTimes;\n var lanes = suspendedLanes;\n\n while (lanes > 0) {\n var index = pickArbitraryLaneIndex(lanes);\n var lane = 1 << index;\n expirationTimes[index] = NoTimestamp;\n lanes &= ~lane;\n }\n}\nfunction markRootPinged(root, pingedLanes, eventTime) {\n root.pingedLanes |= root.suspendedLanes & pingedLanes;\n}\nfunction markDiscreteUpdatesExpired(root) {\n root.expiredLanes |= InputDiscreteLanes & root.pendingLanes;\n}\nfunction hasDiscreteLanes(lanes) {\n return (lanes & InputDiscreteLanes) !== NoLanes;\n}\nfunction markRootMutableRead(root, updateLane) {\n root.mutableReadLanes |= updateLane & root.pendingLanes;\n}\nfunction markRootFinished(root, remainingLanes) {\n var noLongerPendingLanes = root.pendingLanes & ~remainingLanes;\n root.pendingLanes = remainingLanes; // Let's try everything again\n\n root.suspendedLanes = 0;\n root.pingedLanes = 0;\n root.expiredLanes &= remainingLanes;\n root.mutableReadLanes &= remainingLanes;\n root.entangledLanes &= remainingLanes;\n var entanglements = root.entanglements;\n var eventTimes = root.eventTimes;\n var expirationTimes = root.expirationTimes; // Clear the lanes that no longer have pending work\n\n var lanes = noLongerPendingLanes;\n\n while (lanes > 0) {\n var index = pickArbitraryLaneIndex(lanes);\n var lane = 1 << index;\n entanglements[index] = NoLanes;\n eventTimes[index] = NoTimestamp;\n expirationTimes[index] = NoTimestamp;\n lanes &= ~lane;\n }\n}\nfunction markRootEntangled(root, entangledLanes) {\n root.entangledLanes |= entangledLanes;\n var entanglements = root.entanglements;\n var lanes = entangledLanes;\n\n while (lanes > 0) {\n var index = pickArbitraryLaneIndex(lanes);\n var lane = 1 << index;\n entanglements[index] |= entangledLanes;\n lanes &= ~lane;\n }\n}\nvar clz32 = Math.clz32 ? Math.clz32 : clz32Fallback; // Count leading zeros. Only used on lanes, so assume input is an integer.\n// Based on:\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/clz32\n\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\nfunction clz32Fallback(lanes) {\n if (lanes === 0) {\n return 32;\n }\n\n return 31 - (log(lanes) / LN2 | 0) | 0;\n}\n\n// Intentionally not named imports because Rollup would use dynamic dispatch for\nvar UserBlockingPriority$1 = Scheduler.unstable_UserBlockingPriority,\n runWithPriority = Scheduler.unstable_runWithPriority; // TODO: can we stop exporting these?\n\nvar _enabled = true; // This is exported in FB builds for use by legacy FB layer infra.\n// We'd like to remove this but it's not clear if this is safe.\n\nfunction setEnabled(enabled) {\n _enabled = !!enabled;\n}\nfunction isEnabled() {\n return _enabled;\n}\nfunction createEventListenerWrapperWithPriority(targetContainer, domEventName, eventSystemFlags) {\n var eventPriority = getEventPriorityForPluginSystem(domEventName);\n var listenerWrapper;\n\n switch (eventPriority) {\n case DiscreteEvent:\n listenerWrapper = dispatchDiscreteEvent;\n break;\n\n case UserBlockingEvent:\n listenerWrapper = dispatchUserBlockingUpdate;\n break;\n\n case ContinuousEvent:\n default:\n listenerWrapper = dispatchEvent;\n break;\n }\n\n return listenerWrapper.bind(null, domEventName, eventSystemFlags, targetContainer);\n}\n\nfunction dispatchDiscreteEvent(domEventName, eventSystemFlags, container, nativeEvent) {\n {\n flushDiscreteUpdatesIfNeeded(nativeEvent.timeStamp);\n }\n\n discreteUpdates(dispatchEvent, domEventName, eventSystemFlags, container, nativeEvent);\n}\n\nfunction dispatchUserBlockingUpdate(domEventName, eventSystemFlags, container, nativeEvent) {\n {\n runWithPriority(UserBlockingPriority$1, dispatchEvent.bind(null, domEventName, eventSystemFlags, container, nativeEvent));\n }\n}\n\nfunction dispatchEvent(domEventName, eventSystemFlags, targetContainer, nativeEvent) {\n if (!_enabled) {\n return;\n }\n\n var allowReplay = true;\n\n {\n // TODO: replaying capture phase events is currently broken\n // because we used to do it during top-level native bubble handlers\n // but now we use different bubble and capture handlers.\n // In eager mode, we attach capture listeners early, so we need\n // to filter them out until we fix the logic to handle them correctly.\n // This could've been outside the flag but I put it inside to reduce risk.\n allowReplay = (eventSystemFlags & IS_CAPTURE_PHASE) === 0;\n }\n\n if (allowReplay && hasQueuedDiscreteEvents() && isReplayableDiscreteEvent(domEventName)) {\n // If we already have a queue of discrete events, and this is another discrete\n // event, then we can't dispatch it regardless of its target, since they\n // need to dispatch in order.\n queueDiscreteEvent(null, // Flags that we're not actually blocked on anything as far as we know.\n domEventName, eventSystemFlags, targetContainer, nativeEvent);\n return;\n }\n\n var blockedOn = attemptToDispatchEvent(domEventName, eventSystemFlags, targetContainer, nativeEvent);\n\n if (blockedOn === null) {\n // We successfully dispatched this event.\n if (allowReplay) {\n clearIfContinuousEvent(domEventName, nativeEvent);\n }\n\n return;\n }\n\n if (allowReplay) {\n if (isReplayableDiscreteEvent(domEventName)) {\n // This this to be replayed later once the target is available.\n queueDiscreteEvent(blockedOn, domEventName, eventSystemFlags, targetContainer, nativeEvent);\n return;\n }\n\n if (queueIfContinuousEvent(blockedOn, domEventName, eventSystemFlags, targetContainer, nativeEvent)) {\n return;\n } // We need to clear only if we didn't queue because\n // queueing is accummulative.\n\n\n clearIfContinuousEvent(domEventName, nativeEvent);\n } // This is not replayable so we'll invoke it but without a target,\n // in case the event system needs to trace it.\n\n\n dispatchEventForPluginEventSystem(domEventName, eventSystemFlags, nativeEvent, null, targetContainer);\n} // Attempt dispatching an event. Returns a SuspenseInstance or Container if it's blocked.\n\nfunction attemptToDispatchEvent(domEventName, eventSystemFlags, targetContainer, nativeEvent) {\n // TODO: Warn if _enabled is false.\n var nativeEventTarget = getEventTarget(nativeEvent);\n var targetInst = getClosestInstanceFromNode(nativeEventTarget);\n\n if (targetInst !== null) {\n var nearestMounted = getNearestMountedFiber(targetInst);\n\n if (nearestMounted === null) {\n // This tree has been unmounted already. Dispatch without a target.\n targetInst = null;\n } else {\n var tag = nearestMounted.tag;\n\n if (tag === SuspenseComponent) {\n var instance = getSuspenseInstanceFromFiber(nearestMounted);\n\n if (instance !== null) {\n // Queue the event to be replayed later. Abort dispatching since we\n // don't want this event dispatched twice through the event system.\n // TODO: If this is the first discrete event in the queue. Schedule an increased\n // priority for this boundary.\n return instance;\n } // This shouldn't happen, something went wrong but to avoid blocking\n // the whole system, dispatch the event without a target.\n // TODO: Warn.\n\n\n targetInst = null;\n } else if (tag === HostRoot) {\n var root = nearestMounted.stateNode;\n\n if (root.hydrate) {\n // If this happens during a replay something went wrong and it might block\n // the whole system.\n return getContainerFromFiber(nearestMounted);\n }\n\n targetInst = null;\n } else if (nearestMounted !== targetInst) {\n // If we get an event (ex: img onload) before committing that\n // component's mount, ignore it for now (that is, treat it as if it was an\n // event on a non-React tree). We might also consider queueing events and\n // dispatching them after the mount.\n targetInst = null;\n }\n }\n }\n\n dispatchEventForPluginEventSystem(domEventName, eventSystemFlags, nativeEvent, targetInst, targetContainer); // We're not blocked on anything.\n\n return null;\n}\n\nfunction addEventBubbleListener(target, eventType, listener) {\n target.addEventListener(eventType, listener, false);\n return listener;\n}\nfunction addEventCaptureListener(target, eventType, listener) {\n target.addEventListener(eventType, listener, true);\n return listener;\n}\nfunction addEventCaptureListenerWithPassiveFlag(target, eventType, listener, passive) {\n target.addEventListener(eventType, listener, {\n capture: true,\n passive: passive\n });\n return listener;\n}\nfunction addEventBubbleListenerWithPassiveFlag(target, eventType, listener, passive) {\n target.addEventListener(eventType, listener, {\n passive: passive\n });\n return listener;\n}\n\n/**\n * These variables store information about text content of a target node,\n * allowing comparison of content before and after a given event.\n *\n * Identify the node where selection currently begins, then observe\n * both its text content and its current position in the DOM. Since the\n * browser may natively replace the target node during composition, we can\n * use its position to find its replacement.\n *\n *\n */\nvar root = null;\nvar startText = null;\nvar fallbackText = null;\nfunction initialize(nativeEventTarget) {\n root = nativeEventTarget;\n startText = getText();\n return true;\n}\nfunction reset() {\n root = null;\n startText = null;\n fallbackText = null;\n}\nfunction getData() {\n if (fallbackText) {\n return fallbackText;\n }\n\n var start;\n var startValue = startText;\n var startLength = startValue.length;\n var end;\n var endValue = getText();\n var endLength = endValue.length;\n\n for (start = 0; start < startLength; start++) {\n if (startValue[start] !== endValue[start]) {\n break;\n }\n }\n\n var minEnd = startLength - start;\n\n for (end = 1; end <= minEnd; end++) {\n if (startValue[startLength - end] !== endValue[endLength - end]) {\n break;\n }\n }\n\n var sliceTail = end > 1 ? 1 - end : undefined;\n fallbackText = endValue.slice(start, sliceTail);\n return fallbackText;\n}\nfunction getText() {\n if ('value' in root) {\n return root.value;\n }\n\n return root.textContent;\n}\n\n/**\n * `charCode` represents the actual \"character code\" and is safe to use with\n * `String.fromCharCode`. As such, only keys that correspond to printable\n * characters produce a valid `charCode`, the only exception to this is Enter.\n * The Tab-key is considered non-printable and does not have a `charCode`,\n * presumably because it does not produce a tab-character in browsers.\n *\n * @param {object} nativeEvent Native browser event.\n * @return {number} Normalized `charCode` property.\n */\nfunction getEventCharCode(nativeEvent) {\n var charCode;\n var keyCode = nativeEvent.keyCode;\n\n if ('charCode' in nativeEvent) {\n charCode = nativeEvent.charCode; // FF does not set `charCode` for the Enter-key, check against `keyCode`.\n\n if (charCode === 0 && keyCode === 13) {\n charCode = 13;\n }\n } else {\n // IE8 does not implement `charCode`, but `keyCode` has the correct value.\n charCode = keyCode;\n } // IE and Edge (on Windows) and Chrome / Safari (on Windows and Linux)\n // report Enter as charCode 10 when ctrl is pressed.\n\n\n if (charCode === 10) {\n charCode = 13;\n } // Some non-printable keys are reported in `charCode`/`keyCode`, discard them.\n // Must not discard the (non-)printable Enter-key.\n\n\n if (charCode >= 32 || charCode === 13) {\n return charCode;\n }\n\n return 0;\n}\n\nfunction functionThatReturnsTrue() {\n return true;\n}\n\nfunction functionThatReturnsFalse() {\n return false;\n} // This is intentionally a factory so that we have different returned constructors.\n// If we had a single constructor, it would be megamorphic and engines would deopt.\n\n\nfunction createSyntheticEvent(Interface) {\n /**\n * Synthetic events are dispatched by event plugins, typically in response to a\n * top-level event delegation handler.\n *\n * These systems should generally use pooling to reduce the frequency of garbage\n * collection. The system should check `isPersistent` to determine whether the\n * event should be released into the pool after being dispatched. Users that\n * need a persisted event should invoke `persist`.\n *\n * Synthetic events (and subclasses) implement the DOM Level 3 Events API by\n * normalizing browser quirks. Subclasses do not necessarily have to implement a\n * DOM interface; custom application-specific events can also subclass this.\n */\n function SyntheticBaseEvent(reactName, reactEventType, targetInst, nativeEvent, nativeEventTarget) {\n this._reactName = reactName;\n this._targetInst = targetInst;\n this.type = reactEventType;\n this.nativeEvent = nativeEvent;\n this.target = nativeEventTarget;\n this.currentTarget = null;\n\n for (var _propName in Interface) {\n if (!Interface.hasOwnProperty(_propName)) {\n continue;\n }\n\n var normalize = Interface[_propName];\n\n if (normalize) {\n this[_propName] = normalize(nativeEvent);\n } else {\n this[_propName] = nativeEvent[_propName];\n }\n }\n\n var defaultPrevented = nativeEvent.defaultPrevented != null ? nativeEvent.defaultPrevented : nativeEvent.returnValue === false;\n\n if (defaultPrevented) {\n this.isDefaultPrevented = functionThatReturnsTrue;\n } else {\n this.isDefaultPrevented = functionThatReturnsFalse;\n }\n\n this.isPropagationStopped = functionThatReturnsFalse;\n return this;\n }\n\n _assign(SyntheticBaseEvent.prototype, {\n preventDefault: function () {\n this.defaultPrevented = true;\n var event = this.nativeEvent;\n\n if (!event) {\n return;\n }\n\n if (event.preventDefault) {\n event.preventDefault(); // $FlowFixMe - flow is not aware of `unknown` in IE\n } else if (typeof event.returnValue !== 'unknown') {\n event.returnValue = false;\n }\n\n this.isDefaultPrevented = functionThatReturnsTrue;\n },\n stopPropagation: function () {\n var event = this.nativeEvent;\n\n if (!event) {\n return;\n }\n\n if (event.stopPropagation) {\n event.stopPropagation(); // $FlowFixMe - flow is not aware of `unknown` in IE\n } else if (typeof event.cancelBubble !== 'unknown') {\n // The ChangeEventPlugin registers a \"propertychange\" event for\n // IE. This event does not support bubbling or cancelling, and\n // any references to cancelBubble throw \"Member not found\". A\n // typeof check of \"unknown\" circumvents this issue (and is also\n // IE specific).\n event.cancelBubble = true;\n }\n\n this.isPropagationStopped = functionThatReturnsTrue;\n },\n\n /**\n * We release all dispatched `SyntheticEvent`s after each event loop, adding\n * them back into the pool. This allows a way to hold onto a reference that\n * won't be added back into the pool.\n */\n persist: function () {// Modern event system doesn't use pooling.\n },\n\n /**\n * Checks if this event should be released back into the pool.\n *\n * @return {boolean} True if this should not be released, false otherwise.\n */\n isPersistent: functionThatReturnsTrue\n });\n\n return SyntheticBaseEvent;\n}\n/**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\n\n\nvar EventInterface = {\n eventPhase: 0,\n bubbles: 0,\n cancelable: 0,\n timeStamp: function (event) {\n return event.timeStamp || Date.now();\n },\n defaultPrevented: 0,\n isTrusted: 0\n};\nvar SyntheticEvent = createSyntheticEvent(EventInterface);\n\nvar UIEventInterface = _assign({}, EventInterface, {\n view: 0,\n detail: 0\n});\n\nvar SyntheticUIEvent = createSyntheticEvent(UIEventInterface);\nvar lastMovementX;\nvar lastMovementY;\nvar lastMouseEvent;\n\nfunction updateMouseMovementPolyfillState(event) {\n if (event !== lastMouseEvent) {\n if (lastMouseEvent && event.type === 'mousemove') {\n lastMovementX = event.screenX - lastMouseEvent.screenX;\n lastMovementY = event.screenY - lastMouseEvent.screenY;\n } else {\n lastMovementX = 0;\n lastMovementY = 0;\n }\n\n lastMouseEvent = event;\n }\n}\n/**\n * @interface MouseEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\n\n\nvar MouseEventInterface = _assign({}, UIEventInterface, {\n screenX: 0,\n screenY: 0,\n clientX: 0,\n clientY: 0,\n pageX: 0,\n pageY: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n getModifierState: getEventModifierState,\n button: 0,\n buttons: 0,\n relatedTarget: function (event) {\n if (event.relatedTarget === undefined) return event.fromElement === event.srcElement ? event.toElement : event.fromElement;\n return event.relatedTarget;\n },\n movementX: function (event) {\n if ('movementX' in event) {\n return event.movementX;\n }\n\n updateMouseMovementPolyfillState(event);\n return lastMovementX;\n },\n movementY: function (event) {\n if ('movementY' in event) {\n return event.movementY;\n } // Don't need to call updateMouseMovementPolyfillState() here\n // because it's guaranteed to have already run when movementX\n // was copied.\n\n\n return lastMovementY;\n }\n});\n\nvar SyntheticMouseEvent = createSyntheticEvent(MouseEventInterface);\n/**\n * @interface DragEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\n\nvar DragEventInterface = _assign({}, MouseEventInterface, {\n dataTransfer: 0\n});\n\nvar SyntheticDragEvent = createSyntheticEvent(DragEventInterface);\n/**\n * @interface FocusEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\n\nvar FocusEventInterface = _assign({}, UIEventInterface, {\n relatedTarget: 0\n});\n\nvar SyntheticFocusEvent = createSyntheticEvent(FocusEventInterface);\n/**\n * @interface Event\n * @see http://www.w3.org/TR/css3-animations/#AnimationEvent-interface\n * @see https://developer.mozilla.org/en-US/docs/Web/API/AnimationEvent\n */\n\nvar AnimationEventInterface = _assign({}, EventInterface, {\n animationName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n});\n\nvar SyntheticAnimationEvent = createSyntheticEvent(AnimationEventInterface);\n/**\n * @interface Event\n * @see http://www.w3.org/TR/clipboard-apis/\n */\n\nvar ClipboardEventInterface = _assign({}, EventInterface, {\n clipboardData: function (event) {\n return 'clipboardData' in event ? event.clipboardData : window.clipboardData;\n }\n});\n\nvar SyntheticClipboardEvent = createSyntheticEvent(ClipboardEventInterface);\n/**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#events-compositionevents\n */\n\nvar CompositionEventInterface = _assign({}, EventInterface, {\n data: 0\n});\n\nvar SyntheticCompositionEvent = createSyntheticEvent(CompositionEventInterface);\n/**\n * @interface Event\n * @see http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105\n * /#events-inputevents\n */\n// Happens to share the same list for now.\n\nvar SyntheticInputEvent = SyntheticCompositionEvent;\n/**\n * Normalization of deprecated HTML5 `key` values\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */\n\nvar normalizeKey = {\n Esc: 'Escape',\n Spacebar: ' ',\n Left: 'ArrowLeft',\n Up: 'ArrowUp',\n Right: 'ArrowRight',\n Down: 'ArrowDown',\n Del: 'Delete',\n Win: 'OS',\n Menu: 'ContextMenu',\n Apps: 'ContextMenu',\n Scroll: 'ScrollLock',\n MozPrintableKey: 'Unidentified'\n};\n/**\n * Translation from legacy `keyCode` to HTML5 `key`\n * Only special keys supported, all others depend on keyboard layout or browser\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */\n\nvar translateToKey = {\n '8': 'Backspace',\n '9': 'Tab',\n '12': 'Clear',\n '13': 'Enter',\n '16': 'Shift',\n '17': 'Control',\n '18': 'Alt',\n '19': 'Pause',\n '20': 'CapsLock',\n '27': 'Escape',\n '32': ' ',\n '33': 'PageUp',\n '34': 'PageDown',\n '35': 'End',\n '36': 'Home',\n '37': 'ArrowLeft',\n '38': 'ArrowUp',\n '39': 'ArrowRight',\n '40': 'ArrowDown',\n '45': 'Insert',\n '46': 'Delete',\n '112': 'F1',\n '113': 'F2',\n '114': 'F3',\n '115': 'F4',\n '116': 'F5',\n '117': 'F6',\n '118': 'F7',\n '119': 'F8',\n '120': 'F9',\n '121': 'F10',\n '122': 'F11',\n '123': 'F12',\n '144': 'NumLock',\n '145': 'ScrollLock',\n '224': 'Meta'\n};\n/**\n * @param {object} nativeEvent Native browser event.\n * @return {string} Normalized `key` property.\n */\n\nfunction getEventKey(nativeEvent) {\n if (nativeEvent.key) {\n // Normalize inconsistent values reported by browsers due to\n // implementations of a working draft specification.\n // FireFox implements `key` but returns `MozPrintableKey` for all\n // printable characters (normalized to `Unidentified`), ignore it.\n var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n\n if (key !== 'Unidentified') {\n return key;\n }\n } // Browser does not implement `key`, polyfill as much of it as we can.\n\n\n if (nativeEvent.type === 'keypress') {\n var charCode = getEventCharCode(nativeEvent); // The enter-key is technically both printable and non-printable and can\n // thus be captured by `keypress`, no other non-printable key should.\n\n return charCode === 13 ? 'Enter' : String.fromCharCode(charCode);\n }\n\n if (nativeEvent.type === 'keydown' || nativeEvent.type === 'keyup') {\n // While user keyboard layout determines the actual meaning of each\n // `keyCode` value, almost all function keys have a universal value.\n return translateToKey[nativeEvent.keyCode] || 'Unidentified';\n }\n\n return '';\n}\n/**\n * Translation from modifier key to the associated property in the event.\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#keys-Modifiers\n */\n\n\nvar modifierKeyToProp = {\n Alt: 'altKey',\n Control: 'ctrlKey',\n Meta: 'metaKey',\n Shift: 'shiftKey'\n}; // Older browsers (Safari <= 10, iOS Safari <= 10.2) do not support\n// getModifierState. If getModifierState is not supported, we map it to a set of\n// modifier keys exposed by the event. In this case, Lock-keys are not supported.\n\nfunction modifierStateGetter(keyArg) {\n var syntheticEvent = this;\n var nativeEvent = syntheticEvent.nativeEvent;\n\n if (nativeEvent.getModifierState) {\n return nativeEvent.getModifierState(keyArg);\n }\n\n var keyProp = modifierKeyToProp[keyArg];\n return keyProp ? !!nativeEvent[keyProp] : false;\n}\n\nfunction getEventModifierState(nativeEvent) {\n return modifierStateGetter;\n}\n/**\n * @interface KeyboardEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\n\n\nvar KeyboardEventInterface = _assign({}, UIEventInterface, {\n key: getEventKey,\n code: 0,\n location: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n repeat: 0,\n locale: 0,\n getModifierState: getEventModifierState,\n // Legacy Interface\n charCode: function (event) {\n // `charCode` is the result of a KeyPress event and represents the value of\n // the actual printable character.\n // KeyPress is deprecated, but its replacement is not yet final and not\n // implemented in any major browser. Only KeyPress has charCode.\n if (event.type === 'keypress') {\n return getEventCharCode(event);\n }\n\n return 0;\n },\n keyCode: function (event) {\n // `keyCode` is the result of a KeyDown/Up event and represents the value of\n // physical keyboard key.\n // The actual meaning of the value depends on the users' keyboard layout\n // which cannot be detected. Assuming that it is a US keyboard layout\n // provides a surprisingly accurate mapping for US and European users.\n // Due to this, it is left to the user to implement at this time.\n if (event.type === 'keydown' || event.type === 'keyup') {\n return event.keyCode;\n }\n\n return 0;\n },\n which: function (event) {\n // `which` is an alias for either `keyCode` or `charCode` depending on the\n // type of the event.\n if (event.type === 'keypress') {\n return getEventCharCode(event);\n }\n\n if (event.type === 'keydown' || event.type === 'keyup') {\n return event.keyCode;\n }\n\n return 0;\n }\n});\n\nvar SyntheticKeyboardEvent = createSyntheticEvent(KeyboardEventInterface);\n/**\n * @interface PointerEvent\n * @see http://www.w3.org/TR/pointerevents/\n */\n\nvar PointerEventInterface = _assign({}, MouseEventInterface, {\n pointerId: 0,\n width: 0,\n height: 0,\n pressure: 0,\n tangentialPressure: 0,\n tiltX: 0,\n tiltY: 0,\n twist: 0,\n pointerType: 0,\n isPrimary: 0\n});\n\nvar SyntheticPointerEvent = createSyntheticEvent(PointerEventInterface);\n/**\n * @interface TouchEvent\n * @see http://www.w3.org/TR/touch-events/\n */\n\nvar TouchEventInterface = _assign({}, UIEventInterface, {\n touches: 0,\n targetTouches: 0,\n changedTouches: 0,\n altKey: 0,\n metaKey: 0,\n ctrlKey: 0,\n shiftKey: 0,\n getModifierState: getEventModifierState\n});\n\nvar SyntheticTouchEvent = createSyntheticEvent(TouchEventInterface);\n/**\n * @interface Event\n * @see http://www.w3.org/TR/2009/WD-css3-transitions-20090320/#transition-events-\n * @see https://developer.mozilla.org/en-US/docs/Web/API/TransitionEvent\n */\n\nvar TransitionEventInterface = _assign({}, EventInterface, {\n propertyName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n});\n\nvar SyntheticTransitionEvent = createSyntheticEvent(TransitionEventInterface);\n/**\n * @interface WheelEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\n\nvar WheelEventInterface = _assign({}, MouseEventInterface, {\n deltaX: function (event) {\n return 'deltaX' in event ? event.deltaX : // Fallback to `wheelDeltaX` for Webkit and normalize (right is positive).\n 'wheelDeltaX' in event ? -event.wheelDeltaX : 0;\n },\n deltaY: function (event) {\n return 'deltaY' in event ? event.deltaY : // Fallback to `wheelDeltaY` for Webkit and normalize (down is positive).\n 'wheelDeltaY' in event ? -event.wheelDeltaY : // Fallback to `wheelDelta` for IE<9 and normalize (down is positive).\n 'wheelDelta' in event ? -event.wheelDelta : 0;\n },\n deltaZ: 0,\n // Browsers without \"deltaMode\" is reporting in raw wheel delta where one\n // notch on the scroll is always +/- 120, roughly equivalent to pixels.\n // A good approximation of DOM_DELTA_LINE (1) is 5% of viewport size or\n // ~40 pixels, for DOM_DELTA_SCREEN (2) it is 87.5% of viewport size.\n deltaMode: 0\n});\n\nvar SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface);\n\nvar END_KEYCODES = [9, 13, 27, 32]; // Tab, Return, Esc, Space\n\nvar START_KEYCODE = 229;\nvar canUseCompositionEvent = canUseDOM && 'CompositionEvent' in window;\nvar documentMode = null;\n\nif (canUseDOM && 'documentMode' in document) {\n documentMode = document.documentMode;\n} // Webkit offers a very useful `textInput` event that can be used to\n// directly represent `beforeInput`. The IE `textinput` event is not as\n// useful, so we don't use it.\n\n\nvar canUseTextInputEvent = canUseDOM && 'TextEvent' in window && !documentMode; // In IE9+, we have access to composition events, but the data supplied\n// by the native compositionend event may be incorrect. Japanese ideographic\n// spaces, for instance (\\u3000) are not recorded correctly.\n\nvar useFallbackCompositionData = canUseDOM && (!canUseCompositionEvent || documentMode && documentMode > 8 && documentMode <= 11);\nvar SPACEBAR_CODE = 32;\nvar SPACEBAR_CHAR = String.fromCharCode(SPACEBAR_CODE);\n\nfunction registerEvents() {\n registerTwoPhaseEvent('onBeforeInput', ['compositionend', 'keypress', 'textInput', 'paste']);\n registerTwoPhaseEvent('onCompositionEnd', ['compositionend', 'focusout', 'keydown', 'keypress', 'keyup', 'mousedown']);\n registerTwoPhaseEvent('onCompositionStart', ['compositionstart', 'focusout', 'keydown', 'keypress', 'keyup', 'mousedown']);\n registerTwoPhaseEvent('onCompositionUpdate', ['compositionupdate', 'focusout', 'keydown', 'keypress', 'keyup', 'mousedown']);\n} // Track whether we've ever handled a keypress on the space key.\n\n\nvar hasSpaceKeypress = false;\n/**\n * Return whether a native keypress event is assumed to be a command.\n * This is required because Firefox fires `keypress` events for key commands\n * (cut, copy, select-all, etc.) even though no character is inserted.\n */\n\nfunction isKeypressCommand(nativeEvent) {\n return (nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) && // ctrlKey && altKey is equivalent to AltGr, and is not a command.\n !(nativeEvent.ctrlKey && nativeEvent.altKey);\n}\n/**\n * Translate native top level events into event types.\n */\n\n\nfunction getCompositionEventType(domEventName) {\n switch (domEventName) {\n case 'compositionstart':\n return 'onCompositionStart';\n\n case 'compositionend':\n return 'onCompositionEnd';\n\n case 'compositionupdate':\n return 'onCompositionUpdate';\n }\n}\n/**\n * Does our fallback best-guess model think this event signifies that\n * composition has begun?\n */\n\n\nfunction isFallbackCompositionStart(domEventName, nativeEvent) {\n return domEventName === 'keydown' && nativeEvent.keyCode === START_KEYCODE;\n}\n/**\n * Does our fallback mode think that this event is the end of composition?\n */\n\n\nfunction isFallbackCompositionEnd(domEventName, nativeEvent) {\n switch (domEventName) {\n case 'keyup':\n // Command keys insert or clear IME input.\n return END_KEYCODES.indexOf(nativeEvent.keyCode) !== -1;\n\n case 'keydown':\n // Expect IME keyCode on each keydown. If we get any other\n // code we must have exited earlier.\n return nativeEvent.keyCode !== START_KEYCODE;\n\n case 'keypress':\n case 'mousedown':\n case 'focusout':\n // Events are not possible without cancelling IME.\n return true;\n\n default:\n return false;\n }\n}\n/**\n * Google Input Tools provides composition data via a CustomEvent,\n * with the `data` property populated in the `detail` object. If this\n * is available on the event object, use it. If not, this is a plain\n * composition event and we have nothing special to extract.\n *\n * @param {object} nativeEvent\n * @return {?string}\n */\n\n\nfunction getDataFromCustomEvent(nativeEvent) {\n var detail = nativeEvent.detail;\n\n if (typeof detail === 'object' && 'data' in detail) {\n return detail.data;\n }\n\n return null;\n}\n/**\n * Check if a composition event was triggered by Korean IME.\n * Our fallback mode does not work well with IE's Korean IME,\n * so just use native composition events when Korean IME is used.\n * Although CompositionEvent.locale property is deprecated,\n * it is available in IE, where our fallback mode is enabled.\n *\n * @param {object} nativeEvent\n * @return {boolean}\n */\n\n\nfunction isUsingKoreanIME(nativeEvent) {\n return nativeEvent.locale === 'ko';\n} // Track the current IME composition status, if any.\n\n\nvar isComposing = false;\n/**\n * @return {?object} A SyntheticCompositionEvent.\n */\n\nfunction extractCompositionEvent(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget) {\n var eventType;\n var fallbackData;\n\n if (canUseCompositionEvent) {\n eventType = getCompositionEventType(domEventName);\n } else if (!isComposing) {\n if (isFallbackCompositionStart(domEventName, nativeEvent)) {\n eventType = 'onCompositionStart';\n }\n } else if (isFallbackCompositionEnd(domEventName, nativeEvent)) {\n eventType = 'onCompositionEnd';\n }\n\n if (!eventType) {\n return null;\n }\n\n if (useFallbackCompositionData && !isUsingKoreanIME(nativeEvent)) {\n // The current composition is stored statically and must not be\n // overwritten while composition continues.\n if (!isComposing && eventType === 'onCompositionStart') {\n isComposing = initialize(nativeEventTarget);\n } else if (eventType === 'onCompositionEnd') {\n if (isComposing) {\n fallbackData = getData();\n }\n }\n }\n\n var listeners = accumulateTwoPhaseListeners(targetInst, eventType);\n\n if (listeners.length > 0) {\n var event = new SyntheticCompositionEvent(eventType, domEventName, null, nativeEvent, nativeEventTarget);\n dispatchQueue.push({\n event: event,\n listeners: listeners\n });\n\n if (fallbackData) {\n // Inject data generated from fallback path into the synthetic event.\n // This matches the property of native CompositionEventInterface.\n event.data = fallbackData;\n } else {\n var customData = getDataFromCustomEvent(nativeEvent);\n\n if (customData !== null) {\n event.data = customData;\n }\n }\n }\n}\n\nfunction getNativeBeforeInputChars(domEventName, nativeEvent) {\n switch (domEventName) {\n case 'compositionend':\n return getDataFromCustomEvent(nativeEvent);\n\n case 'keypress':\n /**\n * If native `textInput` events are available, our goal is to make\n * use of them. However, there is a special case: the spacebar key.\n * In Webkit, preventing default on a spacebar `textInput` event\n * cancels character insertion, but it *also* causes the browser\n * to fall back to its default spacebar behavior of scrolling the\n * page.\n *\n * Tracking at:\n * https://code.google.com/p/chromium/issues/detail?id=355103\n *\n * To avoid this issue, use the keypress event as if no `textInput`\n * event is available.\n */\n var which = nativeEvent.which;\n\n if (which !== SPACEBAR_CODE) {\n return null;\n }\n\n hasSpaceKeypress = true;\n return SPACEBAR_CHAR;\n\n case 'textInput':\n // Record the characters to be added to the DOM.\n var chars = nativeEvent.data; // If it's a spacebar character, assume that we have already handled\n // it at the keypress level and bail immediately. Android Chrome\n // doesn't give us keycodes, so we need to ignore it.\n\n if (chars === SPACEBAR_CHAR && hasSpaceKeypress) {\n return null;\n }\n\n return chars;\n\n default:\n // For other native event types, do nothing.\n return null;\n }\n}\n/**\n * For browsers that do not provide the `textInput` event, extract the\n * appropriate string to use for SyntheticInputEvent.\n */\n\n\nfunction getFallbackBeforeInputChars(domEventName, nativeEvent) {\n // If we are currently composing (IME) and using a fallback to do so,\n // try to extract the composed characters from the fallback object.\n // If composition event is available, we extract a string only at\n // compositionevent, otherwise extract it at fallback events.\n if (isComposing) {\n if (domEventName === 'compositionend' || !canUseCompositionEvent && isFallbackCompositionEnd(domEventName, nativeEvent)) {\n var chars = getData();\n reset();\n isComposing = false;\n return chars;\n }\n\n return null;\n }\n\n switch (domEventName) {\n case 'paste':\n // If a paste event occurs after a keypress, throw out the input\n // chars. Paste events should not lead to BeforeInput events.\n return null;\n\n case 'keypress':\n /**\n * As of v27, Firefox may fire keypress events even when no character\n * will be inserted. A few possibilities:\n *\n * - `which` is `0`. Arrow keys, Esc key, etc.\n *\n * - `which` is the pressed key code, but no char is available.\n * Ex: 'AltGr + d` in Polish. There is no modified character for\n * this key combination and no character is inserted into the\n * document, but FF fires the keypress for char code `100` anyway.\n * No `input` event will occur.\n *\n * - `which` is the pressed key code, but a command combination is\n * being used. Ex: `Cmd+C`. No character is inserted, and no\n * `input` event will occur.\n */\n if (!isKeypressCommand(nativeEvent)) {\n // IE fires the `keypress` event when a user types an emoji via\n // Touch keyboard of Windows. In such a case, the `char` property\n // holds an emoji character like `\\uD83D\\uDE0A`. Because its length\n // is 2, the property `which` does not represent an emoji correctly.\n // In such a case, we directly return the `char` property instead of\n // using `which`.\n if (nativeEvent.char && nativeEvent.char.length > 1) {\n return nativeEvent.char;\n } else if (nativeEvent.which) {\n return String.fromCharCode(nativeEvent.which);\n }\n }\n\n return null;\n\n case 'compositionend':\n return useFallbackCompositionData && !isUsingKoreanIME(nativeEvent) ? null : nativeEvent.data;\n\n default:\n return null;\n }\n}\n/**\n * Extract a SyntheticInputEvent for `beforeInput`, based on either native\n * `textInput` or fallback behavior.\n *\n * @return {?object} A SyntheticInputEvent.\n */\n\n\nfunction extractBeforeInputEvent(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget) {\n var chars;\n\n if (canUseTextInputEvent) {\n chars = getNativeBeforeInputChars(domEventName, nativeEvent);\n } else {\n chars = getFallbackBeforeInputChars(domEventName, nativeEvent);\n } // If no characters are being inserted, no BeforeInput event should\n // be fired.\n\n\n if (!chars) {\n return null;\n }\n\n var listeners = accumulateTwoPhaseListeners(targetInst, 'onBeforeInput');\n\n if (listeners.length > 0) {\n var event = new SyntheticInputEvent('onBeforeInput', 'beforeinput', null, nativeEvent, nativeEventTarget);\n dispatchQueue.push({\n event: event,\n listeners: listeners\n });\n event.data = chars;\n }\n}\n/**\n * Create an `onBeforeInput` event to match\n * http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105/#events-inputevents.\n *\n * This event plugin is based on the native `textInput` event\n * available in Chrome, Safari, Opera, and IE. This event fires after\n * `onKeyPress` and `onCompositionEnd`, but before `onInput`.\n *\n * `beforeInput` is spec'd but not implemented in any browsers, and\n * the `input` event does not provide any useful information about what has\n * actually been added, contrary to the spec. Thus, `textInput` is the best\n * available event to identify the characters that have actually been inserted\n * into the target node.\n *\n * This plugin is also responsible for emitting `composition` events, thus\n * allowing us to share composition fallback code for both `beforeInput` and\n * `composition` event types.\n */\n\n\nfunction extractEvents(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags, targetContainer) {\n extractCompositionEvent(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget);\n extractBeforeInputEvent(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget);\n}\n\n/**\n * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary\n */\nvar supportedInputTypes = {\n color: true,\n date: true,\n datetime: true,\n 'datetime-local': true,\n email: true,\n month: true,\n number: true,\n password: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true\n};\n\nfunction isTextInputElement(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n\n if (nodeName === 'input') {\n return !!supportedInputTypes[elem.type];\n }\n\n if (nodeName === 'textarea') {\n return true;\n }\n\n return false;\n}\n\n/**\n * Checks if an event is supported in the current execution environment.\n *\n * NOTE: This will not work correctly for non-generic events such as `change`,\n * `reset`, `load`, `error`, and `select`.\n *\n * Borrows from Modernizr.\n *\n * @param {string} eventNameSuffix Event name, e.g. \"click\".\n * @return {boolean} True if the event is supported.\n * @internal\n * @license Modernizr 3.0.0pre (Custom Build) | MIT\n */\n\nfunction isEventSupported(eventNameSuffix) {\n if (!canUseDOM) {\n return false;\n }\n\n var eventName = 'on' + eventNameSuffix;\n var isSupported = (eventName in document);\n\n if (!isSupported) {\n var element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n return isSupported;\n}\n\nfunction registerEvents$1() {\n registerTwoPhaseEvent('onChange', ['change', 'click', 'focusin', 'focusout', 'input', 'keydown', 'keyup', 'selectionchange']);\n}\n\nfunction createAndAccumulateChangeEvent(dispatchQueue, inst, nativeEvent, target) {\n // Flag this event loop as needing state restore.\n enqueueStateRestore(target);\n var listeners = accumulateTwoPhaseListeners(inst, 'onChange');\n\n if (listeners.length > 0) {\n var event = new SyntheticEvent('onChange', 'change', null, nativeEvent, target);\n dispatchQueue.push({\n event: event,\n listeners: listeners\n });\n }\n}\n/**\n * For IE shims\n */\n\n\nvar activeElement = null;\nvar activeElementInst = null;\n/**\n * SECTION: handle `change` event\n */\n\nfunction shouldUseChangeEvent(elem) {\n var nodeName = elem.nodeName && elem.nodeName.toLowerCase();\n return nodeName === 'select' || nodeName === 'input' && elem.type === 'file';\n}\n\nfunction manualDispatchChangeEvent(nativeEvent) {\n var dispatchQueue = [];\n createAndAccumulateChangeEvent(dispatchQueue, activeElementInst, nativeEvent, getEventTarget(nativeEvent)); // If change and propertychange bubbled, we'd just bind to it like all the\n // other events and have it go through ReactBrowserEventEmitter. Since it\n // doesn't, we manually listen for the events and so we have to enqueue and\n // process the abstract event manually.\n //\n // Batching is necessary here in order to ensure that all event handlers run\n // before the next rerender (including event handlers attached to ancestor\n // elements instead of directly on the input). Without this, controlled\n // components don't work properly in conjunction with event bubbling because\n // the component is rerendered and the value reverted before all the event\n // handlers can run. See https://github.com/facebook/react/issues/708.\n\n batchedUpdates(runEventInBatch, dispatchQueue);\n}\n\nfunction runEventInBatch(dispatchQueue) {\n processDispatchQueue(dispatchQueue, 0);\n}\n\nfunction getInstIfValueChanged(targetInst) {\n var targetNode = getNodeFromInstance(targetInst);\n\n if (updateValueIfChanged(targetNode)) {\n return targetInst;\n }\n}\n\nfunction getTargetInstForChangeEvent(domEventName, targetInst) {\n if (domEventName === 'change') {\n return targetInst;\n }\n}\n/**\n * SECTION: handle `input` event\n */\n\n\nvar isInputEventSupported = false;\n\nif (canUseDOM) {\n // IE9 claims to support the input event but fails to trigger it when\n // deleting text, so we ignore its input events.\n isInputEventSupported = isEventSupported('input') && (!document.documentMode || document.documentMode > 9);\n}\n/**\n * (For IE <=9) Starts tracking propertychange events on the passed-in element\n * and override the value property so that we can distinguish user events from\n * value changes in JS.\n */\n\n\nfunction startWatchingForValueChange(target, targetInst) {\n activeElement = target;\n activeElementInst = targetInst;\n activeElement.attachEvent('onpropertychange', handlePropertyChange);\n}\n/**\n * (For IE <=9) Removes the event listeners from the currently-tracked element,\n * if any exists.\n */\n\n\nfunction stopWatchingForValueChange() {\n if (!activeElement) {\n return;\n }\n\n activeElement.detachEvent('onpropertychange', handlePropertyChange);\n activeElement = null;\n activeElementInst = null;\n}\n/**\n * (For IE <=9) Handles a propertychange event, sending a `change` event if\n * the value of the active element has changed.\n */\n\n\nfunction handlePropertyChange(nativeEvent) {\n if (nativeEvent.propertyName !== 'value') {\n return;\n }\n\n if (getInstIfValueChanged(activeElementInst)) {\n manualDispatchChangeEvent(nativeEvent);\n }\n}\n\nfunction handleEventsForInputEventPolyfill(domEventName, target, targetInst) {\n if (domEventName === 'focusin') {\n // In IE9, propertychange fires for most input events but is buggy and\n // doesn't fire when text is deleted, but conveniently, selectionchange\n // appears to fire in all of the remaining cases so we catch those and\n // forward the event if the value has changed\n // In either case, we don't want to call the event handler if the value\n // is changed from JS so we redefine a setter for `.value` that updates\n // our activeElementValue variable, allowing us to ignore those changes\n //\n // stopWatching() should be a noop here but we call it just in case we\n // missed a blur event somehow.\n stopWatchingForValueChange();\n startWatchingForValueChange(target, targetInst);\n } else if (domEventName === 'focusout') {\n stopWatchingForValueChange();\n }\n} // For IE8 and IE9.\n\n\nfunction getTargetInstForInputEventPolyfill(domEventName, targetInst) {\n if (domEventName === 'selectionchange' || domEventName === 'keyup' || domEventName === 'keydown') {\n // On the selectionchange event, the target is just document which isn't\n // helpful for us so just check activeElement instead.\n //\n // 99% of the time, keydown and keyup aren't necessary. IE8 fails to fire\n // propertychange on the first input event after setting `value` from a\n // script and fires only keydown, keypress, keyup. Catching keyup usually\n // gets it and catching keydown lets us fire an event for the first\n // keystroke if user does a key repeat (it'll be a little delayed: right\n // before the second keystroke). Other input methods (e.g., paste) seem to\n // fire selectionchange normally.\n return getInstIfValueChanged(activeElementInst);\n }\n}\n/**\n * SECTION: handle `click` event\n */\n\n\nfunction shouldUseClickEvent(elem) {\n // Use the `click` event to detect changes to checkbox and radio inputs.\n // This approach works across all browsers, whereas `change` does not fire\n // until `blur` in IE8.\n var nodeName = elem.nodeName;\n return nodeName && nodeName.toLowerCase() === 'input' && (elem.type === 'checkbox' || elem.type === 'radio');\n}\n\nfunction getTargetInstForClickEvent(domEventName, targetInst) {\n if (domEventName === 'click') {\n return getInstIfValueChanged(targetInst);\n }\n}\n\nfunction getTargetInstForInputOrChangeEvent(domEventName, targetInst) {\n if (domEventName === 'input' || domEventName === 'change') {\n return getInstIfValueChanged(targetInst);\n }\n}\n\nfunction handleControlledInputBlur(node) {\n var state = node._wrapperState;\n\n if (!state || !state.controlled || node.type !== 'number') {\n return;\n }\n\n {\n // If controlled, assign the value attribute to the current value on blur\n setDefaultValue(node, 'number', node.value);\n }\n}\n/**\n * This plugin creates an `onChange` event that normalizes change events\n * across form elements. This event fires at a time when it's possible to\n * change the element's value without seeing a flicker.\n *\n * Supported elements are:\n * - input (see `isTextInputElement`)\n * - textarea\n * - select\n */\n\n\nfunction extractEvents$1(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags, targetContainer) {\n var targetNode = targetInst ? getNodeFromInstance(targetInst) : window;\n var getTargetInstFunc, handleEventFunc;\n\n if (shouldUseChangeEvent(targetNode)) {\n getTargetInstFunc = getTargetInstForChangeEvent;\n } else if (isTextInputElement(targetNode)) {\n if (isInputEventSupported) {\n getTargetInstFunc = getTargetInstForInputOrChangeEvent;\n } else {\n getTargetInstFunc = getTargetInstForInputEventPolyfill;\n handleEventFunc = handleEventsForInputEventPolyfill;\n }\n } else if (shouldUseClickEvent(targetNode)) {\n getTargetInstFunc = getTargetInstForClickEvent;\n }\n\n if (getTargetInstFunc) {\n var inst = getTargetInstFunc(domEventName, targetInst);\n\n if (inst) {\n createAndAccumulateChangeEvent(dispatchQueue, inst, nativeEvent, nativeEventTarget);\n return;\n }\n }\n\n if (handleEventFunc) {\n handleEventFunc(domEventName, targetNode, targetInst);\n } // When blurring, set the value attribute for number inputs\n\n\n if (domEventName === 'focusout') {\n handleControlledInputBlur(targetNode);\n }\n}\n\nfunction registerEvents$2() {\n registerDirectEvent('onMouseEnter', ['mouseout', 'mouseover']);\n registerDirectEvent('onMouseLeave', ['mouseout', 'mouseover']);\n registerDirectEvent('onPointerEnter', ['pointerout', 'pointerover']);\n registerDirectEvent('onPointerLeave', ['pointerout', 'pointerover']);\n}\n/**\n * For almost every interaction we care about, there will be both a top-level\n * `mouseover` and `mouseout` event that occurs. Only use `mouseout` so that\n * we do not extract duplicate events. However, moving the mouse into the\n * browser from outside will not fire a `mouseout` event. In this case, we use\n * the `mouseover` top-level event.\n */\n\n\nfunction extractEvents$2(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags, targetContainer) {\n var isOverEvent = domEventName === 'mouseover' || domEventName === 'pointerover';\n var isOutEvent = domEventName === 'mouseout' || domEventName === 'pointerout';\n\n if (isOverEvent && (eventSystemFlags & IS_REPLAYED) === 0) {\n // If this is an over event with a target, we might have already dispatched\n // the event in the out event of the other target. If this is replayed,\n // then it's because we couldn't dispatch against this target previously\n // so we have to do it now instead.\n var related = nativeEvent.relatedTarget || nativeEvent.fromElement;\n\n if (related) {\n // If the related node is managed by React, we can assume that we have\n // already dispatched the corresponding events during its mouseout.\n if (getClosestInstanceFromNode(related) || isContainerMarkedAsRoot(related)) {\n return;\n }\n }\n }\n\n if (!isOutEvent && !isOverEvent) {\n // Must not be a mouse or pointer in or out - ignoring.\n return;\n }\n\n var win; // TODO: why is this nullable in the types but we read from it?\n\n if (nativeEventTarget.window === nativeEventTarget) {\n // `nativeEventTarget` is probably a window object.\n win = nativeEventTarget;\n } else {\n // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8.\n var doc = nativeEventTarget.ownerDocument;\n\n if (doc) {\n win = doc.defaultView || doc.parentWindow;\n } else {\n win = window;\n }\n }\n\n var from;\n var to;\n\n if (isOutEvent) {\n var _related = nativeEvent.relatedTarget || nativeEvent.toElement;\n\n from = targetInst;\n to = _related ? getClosestInstanceFromNode(_related) : null;\n\n if (to !== null) {\n var nearestMounted = getNearestMountedFiber(to);\n\n if (to !== nearestMounted || to.tag !== HostComponent && to.tag !== HostText) {\n to = null;\n }\n }\n } else {\n // Moving to a node from outside the window.\n from = null;\n to = targetInst;\n }\n\n if (from === to) {\n // Nothing pertains to our managed components.\n return;\n }\n\n var SyntheticEventCtor = SyntheticMouseEvent;\n var leaveEventType = 'onMouseLeave';\n var enterEventType = 'onMouseEnter';\n var eventTypePrefix = 'mouse';\n\n if (domEventName === 'pointerout' || domEventName === 'pointerover') {\n SyntheticEventCtor = SyntheticPointerEvent;\n leaveEventType = 'onPointerLeave';\n enterEventType = 'onPointerEnter';\n eventTypePrefix = 'pointer';\n }\n\n var fromNode = from == null ? win : getNodeFromInstance(from);\n var toNode = to == null ? win : getNodeFromInstance(to);\n var leave = new SyntheticEventCtor(leaveEventType, eventTypePrefix + 'leave', from, nativeEvent, nativeEventTarget);\n leave.target = fromNode;\n leave.relatedTarget = toNode;\n var enter = null; // We should only process this nativeEvent if we are processing\n // the first ancestor. Next time, we will ignore the event.\n\n var nativeTargetInst = getClosestInstanceFromNode(nativeEventTarget);\n\n if (nativeTargetInst === targetInst) {\n var enterEvent = new SyntheticEventCtor(enterEventType, eventTypePrefix + 'enter', to, nativeEvent, nativeEventTarget);\n enterEvent.target = toNode;\n enterEvent.relatedTarget = fromNode;\n enter = enterEvent;\n }\n\n accumulateEnterLeaveTwoPhaseListeners(dispatchQueue, leave, enter, from, to);\n}\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n return x === y && (x !== 0 || 1 / x === 1 / y) || x !== x && y !== y // eslint-disable-line no-self-compare\n ;\n}\n\nvar objectIs = typeof Object.is === 'function' ? Object.is : is;\n\nvar hasOwnProperty$2 = Object.prototype.hasOwnProperty;\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\n\nfunction shallowEqual(objA, objB) {\n if (objectIs(objA, objB)) {\n return true;\n }\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n } // Test for A's keys different from B.\n\n\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwnProperty$2.call(objB, keysA[i]) || !objectIs(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Given any node return the first leaf node without children.\n *\n * @param {DOMElement|DOMTextNode} node\n * @return {DOMElement|DOMTextNode}\n */\n\nfunction getLeafNode(node) {\n while (node && node.firstChild) {\n node = node.firstChild;\n }\n\n return node;\n}\n/**\n * Get the next sibling within a container. This will walk up the\n * DOM if a node's siblings have been exhausted.\n *\n * @param {DOMElement|DOMTextNode} node\n * @return {?DOMElement|DOMTextNode}\n */\n\n\nfunction getSiblingNode(node) {\n while (node) {\n if (node.nextSibling) {\n return node.nextSibling;\n }\n\n node = node.parentNode;\n }\n}\n/**\n * Get object describing the nodes which contain characters at offset.\n *\n * @param {DOMElement|DOMTextNode} root\n * @param {number} offset\n * @return {?object}\n */\n\n\nfunction getNodeForCharacterOffset(root, offset) {\n var node = getLeafNode(root);\n var nodeStart = 0;\n var nodeEnd = 0;\n\n while (node) {\n if (node.nodeType === TEXT_NODE) {\n nodeEnd = nodeStart + node.textContent.length;\n\n if (nodeStart <= offset && nodeEnd >= offset) {\n return {\n node: node,\n offset: offset - nodeStart\n };\n }\n\n nodeStart = nodeEnd;\n }\n\n node = getLeafNode(getSiblingNode(node));\n }\n}\n\n/**\n * @param {DOMElement} outerNode\n * @return {?object}\n */\n\nfunction getOffsets(outerNode) {\n var ownerDocument = outerNode.ownerDocument;\n var win = ownerDocument && ownerDocument.defaultView || window;\n var selection = win.getSelection && win.getSelection();\n\n if (!selection || selection.rangeCount === 0) {\n return null;\n }\n\n var anchorNode = selection.anchorNode,\n anchorOffset = selection.anchorOffset,\n focusNode = selection.focusNode,\n focusOffset = selection.focusOffset; // In Firefox, anchorNode and focusNode can be \"anonymous divs\", e.g. the\n // up/down buttons on an <input type=\"number\">. Anonymous divs do not seem to\n // expose properties, triggering a \"Permission denied error\" if any of its\n // properties are accessed. The only seemingly possible way to avoid erroring\n // is to access a property that typically works for non-anonymous divs and\n // catch any error that may otherwise arise. See\n // https://bugzilla.mozilla.org/show_bug.cgi?id=208427\n\n try {\n /* eslint-disable no-unused-expressions */\n anchorNode.nodeType;\n focusNode.nodeType;\n /* eslint-enable no-unused-expressions */\n } catch (e) {\n return null;\n }\n\n return getModernOffsetsFromPoints(outerNode, anchorNode, anchorOffset, focusNode, focusOffset);\n}\n/**\n * Returns {start, end} where `start` is the character/codepoint index of\n * (anchorNode, anchorOffset) within the textContent of `outerNode`, and\n * `end` is the index of (focusNode, focusOffset).\n *\n * Returns null if you pass in garbage input but we should probably just crash.\n *\n * Exported only for testing.\n */\n\nfunction getModernOffsetsFromPoints(outerNode, anchorNode, anchorOffset, focusNode, focusOffset) {\n var length = 0;\n var start = -1;\n var end = -1;\n var indexWithinAnchor = 0;\n var indexWithinFocus = 0;\n var node = outerNode;\n var parentNode = null;\n\n outer: while (true) {\n var next = null;\n\n while (true) {\n if (node === anchorNode && (anchorOffset === 0 || node.nodeType === TEXT_NODE)) {\n start = length + anchorOffset;\n }\n\n if (node === focusNode && (focusOffset === 0 || node.nodeType === TEXT_NODE)) {\n end = length + focusOffset;\n }\n\n if (node.nodeType === TEXT_NODE) {\n length += node.nodeValue.length;\n }\n\n if ((next = node.firstChild) === null) {\n break;\n } // Moving from `node` to its first child `next`.\n\n\n parentNode = node;\n node = next;\n }\n\n while (true) {\n if (node === outerNode) {\n // If `outerNode` has children, this is always the second time visiting\n // it. If it has no children, this is still the first loop, and the only\n // valid selection is anchorNode and focusNode both equal to this node\n // and both offsets 0, in which case we will have handled above.\n break outer;\n }\n\n if (parentNode === anchorNode && ++indexWithinAnchor === anchorOffset) {\n start = length;\n }\n\n if (parentNode === focusNode && ++indexWithinFocus === focusOffset) {\n end = length;\n }\n\n if ((next = node.nextSibling) !== null) {\n break;\n }\n\n node = parentNode;\n parentNode = node.parentNode;\n } // Moving from `node` to its next sibling `next`.\n\n\n node = next;\n }\n\n if (start === -1 || end === -1) {\n // This should never happen. (Would happen if the anchor/focus nodes aren't\n // actually inside the passed-in node.)\n return null;\n }\n\n return {\n start: start,\n end: end\n };\n}\n/**\n * In modern non-IE browsers, we can support both forward and backward\n * selections.\n *\n * Note: IE10+ supports the Selection object, but it does not support\n * the `extend` method, which means that even in modern IE, it's not possible\n * to programmatically create a backward selection. Thus, for all IE\n * versions, we use the old IE API to create our selections.\n *\n * @param {DOMElement|DOMTextNode} node\n * @param {object} offsets\n */\n\nfunction setOffsets(node, offsets) {\n var doc = node.ownerDocument || document;\n var win = doc && doc.defaultView || window; // Edge fails with \"Object expected\" in some scenarios.\n // (For instance: TinyMCE editor used in a list component that supports pasting to add more,\n // fails when pasting 100+ items)\n\n if (!win.getSelection) {\n return;\n }\n\n var selection = win.getSelection();\n var length = node.textContent.length;\n var start = Math.min(offsets.start, length);\n var end = offsets.end === undefined ? start : Math.min(offsets.end, length); // IE 11 uses modern selection, but doesn't support the extend method.\n // Flip backward selections, so we can set with a single range.\n\n if (!selection.extend && start > end) {\n var temp = end;\n end = start;\n start = temp;\n }\n\n var startMarker = getNodeForCharacterOffset(node, start);\n var endMarker = getNodeForCharacterOffset(node, end);\n\n if (startMarker && endMarker) {\n if (selection.rangeCount === 1 && selection.anchorNode === startMarker.node && selection.anchorOffset === startMarker.offset && selection.focusNode === endMarker.node && selection.focusOffset === endMarker.offset) {\n return;\n }\n\n var range = doc.createRange();\n range.setStart(startMarker.node, startMarker.offset);\n selection.removeAllRanges();\n\n if (start > end) {\n selection.addRange(range);\n selection.extend(endMarker.node, endMarker.offset);\n } else {\n range.setEnd(endMarker.node, endMarker.offset);\n selection.addRange(range);\n }\n }\n}\n\nfunction isTextNode(node) {\n return node && node.nodeType === TEXT_NODE;\n}\n\nfunction containsNode(outerNode, innerNode) {\n if (!outerNode || !innerNode) {\n return false;\n } else if (outerNode === innerNode) {\n return true;\n } else if (isTextNode(outerNode)) {\n return false;\n } else if (isTextNode(innerNode)) {\n return containsNode(outerNode, innerNode.parentNode);\n } else if ('contains' in outerNode) {\n return outerNode.contains(innerNode);\n } else if (outerNode.compareDocumentPosition) {\n return !!(outerNode.compareDocumentPosition(innerNode) & 16);\n } else {\n return false;\n }\n}\n\nfunction isInDocument(node) {\n return node && node.ownerDocument && containsNode(node.ownerDocument.documentElement, node);\n}\n\nfunction isSameOriginFrame(iframe) {\n try {\n // Accessing the contentDocument of a HTMLIframeElement can cause the browser\n // to throw, e.g. if it has a cross-origin src attribute.\n // Safari will show an error in the console when the access results in \"Blocked a frame with origin\". e.g:\n // iframe.contentDocument.defaultView;\n // A safety way is to access one of the cross origin properties: Window or Location\n // Which might result in \"SecurityError\" DOM Exception and it is compatible to Safari.\n // https://html.spec.whatwg.org/multipage/browsers.html#integration-with-idl\n return typeof iframe.contentWindow.location.href === 'string';\n } catch (err) {\n return false;\n }\n}\n\nfunction getActiveElementDeep() {\n var win = window;\n var element = getActiveElement();\n\n while (element instanceof win.HTMLIFrameElement) {\n if (isSameOriginFrame(element)) {\n win = element.contentWindow;\n } else {\n return element;\n }\n\n element = getActiveElement(win.document);\n }\n\n return element;\n}\n/**\n * @ReactInputSelection: React input selection module. Based on Selection.js,\n * but modified to be suitable for react and has a couple of bug fixes (doesn't\n * assume buttons have range selections allowed).\n * Input selection module for React.\n */\n\n/**\n * @hasSelectionCapabilities: we get the element types that support selection\n * from https://html.spec.whatwg.org/#do-not-apply, looking at `selectionStart`\n * and `selectionEnd` rows.\n */\n\n\nfunction hasSelectionCapabilities(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return nodeName && (nodeName === 'input' && (elem.type === 'text' || elem.type === 'search' || elem.type === 'tel' || elem.type === 'url' || elem.type === 'password') || nodeName === 'textarea' || elem.contentEditable === 'true');\n}\nfunction getSelectionInformation() {\n var focusedElem = getActiveElementDeep();\n return {\n focusedElem: focusedElem,\n selectionRange: hasSelectionCapabilities(focusedElem) ? getSelection(focusedElem) : null\n };\n}\n/**\n * @restoreSelection: If any selection information was potentially lost,\n * restore it. This is useful when performing operations that could remove dom\n * nodes and place them back in, resulting in focus being lost.\n */\n\nfunction restoreSelection(priorSelectionInformation) {\n var curFocusedElem = getActiveElementDeep();\n var priorFocusedElem = priorSelectionInformation.focusedElem;\n var priorSelectionRange = priorSelectionInformation.selectionRange;\n\n if (curFocusedElem !== priorFocusedElem && isInDocument(priorFocusedElem)) {\n if (priorSelectionRange !== null && hasSelectionCapabilities(priorFocusedElem)) {\n setSelection(priorFocusedElem, priorSelectionRange);\n } // Focusing a node can change the scroll position, which is undesirable\n\n\n var ancestors = [];\n var ancestor = priorFocusedElem;\n\n while (ancestor = ancestor.parentNode) {\n if (ancestor.nodeType === ELEMENT_NODE) {\n ancestors.push({\n element: ancestor,\n left: ancestor.scrollLeft,\n top: ancestor.scrollTop\n });\n }\n }\n\n if (typeof priorFocusedElem.focus === 'function') {\n priorFocusedElem.focus();\n }\n\n for (var i = 0; i < ancestors.length; i++) {\n var info = ancestors[i];\n info.element.scrollLeft = info.left;\n info.element.scrollTop = info.top;\n }\n }\n}\n/**\n * @getSelection: Gets the selection bounds of a focused textarea, input or\n * contentEditable node.\n * -@input: Look up selection bounds of this input\n * -@return {start: selectionStart, end: selectionEnd}\n */\n\nfunction getSelection(input) {\n var selection;\n\n if ('selectionStart' in input) {\n // Modern browser with input or textarea.\n selection = {\n start: input.selectionStart,\n end: input.selectionEnd\n };\n } else {\n // Content editable or old IE textarea.\n selection = getOffsets(input);\n }\n\n return selection || {\n start: 0,\n end: 0\n };\n}\n/**\n * @setSelection: Sets the selection bounds of a textarea or input and focuses\n * the input.\n * -@input Set selection bounds of this input or textarea\n * -@offsets Object of same form that is returned from get*\n */\n\nfunction setSelection(input, offsets) {\n var start = offsets.start;\n var end = offsets.end;\n\n if (end === undefined) {\n end = start;\n }\n\n if ('selectionStart' in input) {\n input.selectionStart = start;\n input.selectionEnd = Math.min(end, input.value.length);\n } else {\n setOffsets(input, offsets);\n }\n}\n\nvar skipSelectionChangeEvent = canUseDOM && 'documentMode' in document && document.documentMode <= 11;\n\nfunction registerEvents$3() {\n registerTwoPhaseEvent('onSelect', ['focusout', 'contextmenu', 'dragend', 'focusin', 'keydown', 'keyup', 'mousedown', 'mouseup', 'selectionchange']);\n}\n\nvar activeElement$1 = null;\nvar activeElementInst$1 = null;\nvar lastSelection = null;\nvar mouseDown = false;\n/**\n * Get an object which is a unique representation of the current selection.\n *\n * The return value will not be consistent across nodes or browsers, but\n * two identical selections on the same node will return identical objects.\n */\n\nfunction getSelection$1(node) {\n if ('selectionStart' in node && hasSelectionCapabilities(node)) {\n return {\n start: node.selectionStart,\n end: node.selectionEnd\n };\n } else {\n var win = node.ownerDocument && node.ownerDocument.defaultView || window;\n var selection = win.getSelection();\n return {\n anchorNode: selection.anchorNode,\n anchorOffset: selection.anchorOffset,\n focusNode: selection.focusNode,\n focusOffset: selection.focusOffset\n };\n }\n}\n/**\n * Get document associated with the event target.\n */\n\n\nfunction getEventTargetDocument(eventTarget) {\n return eventTarget.window === eventTarget ? eventTarget.document : eventTarget.nodeType === DOCUMENT_NODE ? eventTarget : eventTarget.ownerDocument;\n}\n/**\n * Poll selection to see whether it's changed.\n *\n * @param {object} nativeEvent\n * @param {object} nativeEventTarget\n * @return {?SyntheticEvent}\n */\n\n\nfunction constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget) {\n // Ensure we have the right element, and that the user is not dragging a\n // selection (this matches native `select` event behavior). In HTML5, select\n // fires only on input and textarea thus if there's no focused element we\n // won't dispatch.\n var doc = getEventTargetDocument(nativeEventTarget);\n\n if (mouseDown || activeElement$1 == null || activeElement$1 !== getActiveElement(doc)) {\n return;\n } // Only fire when selection has actually changed.\n\n\n var currentSelection = getSelection$1(activeElement$1);\n\n if (!lastSelection || !shallowEqual(lastSelection, currentSelection)) {\n lastSelection = currentSelection;\n var listeners = accumulateTwoPhaseListeners(activeElementInst$1, 'onSelect');\n\n if (listeners.length > 0) {\n var event = new SyntheticEvent('onSelect', 'select', null, nativeEvent, nativeEventTarget);\n dispatchQueue.push({\n event: event,\n listeners: listeners\n });\n event.target = activeElement$1;\n }\n }\n}\n/**\n * This plugin creates an `onSelect` event that normalizes select events\n * across form elements.\n *\n * Supported elements are:\n * - input (see `isTextInputElement`)\n * - textarea\n * - contentEditable\n *\n * This differs from native browser implementations in the following ways:\n * - Fires on contentEditable fields as well as inputs.\n * - Fires for collapsed selection.\n * - Fires after user input.\n */\n\n\nfunction extractEvents$3(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags, targetContainer) {\n\n var targetNode = targetInst ? getNodeFromInstance(targetInst) : window;\n\n switch (domEventName) {\n // Track the input node that has focus.\n case 'focusin':\n if (isTextInputElement(targetNode) || targetNode.contentEditable === 'true') {\n activeElement$1 = targetNode;\n activeElementInst$1 = targetInst;\n lastSelection = null;\n }\n\n break;\n\n case 'focusout':\n activeElement$1 = null;\n activeElementInst$1 = null;\n lastSelection = null;\n break;\n // Don't fire the event while the user is dragging. This matches the\n // semantics of the native select event.\n\n case 'mousedown':\n mouseDown = true;\n break;\n\n case 'contextmenu':\n case 'mouseup':\n case 'dragend':\n mouseDown = false;\n constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);\n break;\n // Chrome and IE fire non-standard event when selection is changed (and\n // sometimes when it hasn't). IE's event fires out of order with respect\n // to key and input events on deletion, so we discard it.\n //\n // Firefox doesn't support selectionchange, so check selection status\n // after each key entry. The selection changes after keydown and before\n // keyup, but we check on keydown as well in the case of holding down a\n // key, when multiple keydown events are fired but only one keyup is.\n // This is also our approach for IE handling, for the reason above.\n\n case 'selectionchange':\n if (skipSelectionChangeEvent) {\n break;\n }\n\n // falls through\n\n case 'keydown':\n case 'keyup':\n constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);\n }\n}\n\nfunction extractEvents$4(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags, targetContainer) {\n var reactName = topLevelEventsToReactNames.get(domEventName);\n\n if (reactName === undefined) {\n return;\n }\n\n var SyntheticEventCtor = SyntheticEvent;\n var reactEventType = domEventName;\n\n switch (domEventName) {\n case 'keypress':\n // Firefox creates a keypress event for function keys too. This removes\n // the unwanted keypress events. Enter is however both printable and\n // non-printable. One would expect Tab to be as well (but it isn't).\n if (getEventCharCode(nativeEvent) === 0) {\n return;\n }\n\n /* falls through */\n\n case 'keydown':\n case 'keyup':\n SyntheticEventCtor = SyntheticKeyboardEvent;\n break;\n\n case 'focusin':\n reactEventType = 'focus';\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n\n case 'focusout':\n reactEventType = 'blur';\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n\n case 'beforeblur':\n case 'afterblur':\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n\n case 'click':\n // Firefox creates a click event on right mouse clicks. This removes the\n // unwanted click events.\n if (nativeEvent.button === 2) {\n return;\n }\n\n /* falls through */\n\n case 'auxclick':\n case 'dblclick':\n case 'mousedown':\n case 'mousemove':\n case 'mouseup': // TODO: Disabled elements should not respond to mouse events\n\n /* falls through */\n\n case 'mouseout':\n case 'mouseover':\n case 'contextmenu':\n SyntheticEventCtor = SyntheticMouseEvent;\n break;\n\n case 'drag':\n case 'dragend':\n case 'dragenter':\n case 'dragexit':\n case 'dragleave':\n case 'dragover':\n case 'dragstart':\n case 'drop':\n SyntheticEventCtor = SyntheticDragEvent;\n break;\n\n case 'touchcancel':\n case 'touchend':\n case 'touchmove':\n case 'touchstart':\n SyntheticEventCtor = SyntheticTouchEvent;\n break;\n\n case ANIMATION_END:\n case ANIMATION_ITERATION:\n case ANIMATION_START:\n SyntheticEventCtor = SyntheticAnimationEvent;\n break;\n\n case TRANSITION_END:\n SyntheticEventCtor = SyntheticTransitionEvent;\n break;\n\n case 'scroll':\n SyntheticEventCtor = SyntheticUIEvent;\n break;\n\n case 'wheel':\n SyntheticEventCtor = SyntheticWheelEvent;\n break;\n\n case 'copy':\n case 'cut':\n case 'paste':\n SyntheticEventCtor = SyntheticClipboardEvent;\n break;\n\n case 'gotpointercapture':\n case 'lostpointercapture':\n case 'pointercancel':\n case 'pointerdown':\n case 'pointermove':\n case 'pointerout':\n case 'pointerover':\n case 'pointerup':\n SyntheticEventCtor = SyntheticPointerEvent;\n break;\n }\n\n var inCapturePhase = (eventSystemFlags & IS_CAPTURE_PHASE) !== 0;\n\n {\n // Some events don't bubble in the browser.\n // In the past, React has always bubbled them, but this can be surprising.\n // We're going to try aligning closer to the browser behavior by not bubbling\n // them in React either. We'll start by not bubbling onScroll, and then expand.\n var accumulateTargetOnly = !inCapturePhase && // TODO: ideally, we'd eventually add all events from\n // nonDelegatedEvents list in DOMPluginEventSystem.\n // Then we can remove this special list.\n // This is a breaking change that can wait until React 18.\n domEventName === 'scroll';\n\n var _listeners = accumulateSinglePhaseListeners(targetInst, reactName, nativeEvent.type, inCapturePhase, accumulateTargetOnly);\n\n if (_listeners.length > 0) {\n // Intentionally create event lazily.\n var _event = new SyntheticEventCtor(reactName, reactEventType, null, nativeEvent, nativeEventTarget);\n\n dispatchQueue.push({\n event: _event,\n listeners: _listeners\n });\n }\n }\n}\n\n// TODO: remove top-level side effect.\nregisterSimpleEvents();\nregisterEvents$2();\nregisterEvents$1();\nregisterEvents$3();\nregisterEvents();\n\nfunction extractEvents$5(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags, targetContainer) {\n // TODO: we should remove the concept of a \"SimpleEventPlugin\".\n // This is the basic functionality of the event system. All\n // the other plugins are essentially polyfills. So the plugin\n // should probably be inlined somewhere and have its logic\n // be core the to event system. This would potentially allow\n // us to ship builds of React without the polyfilled plugins below.\n extractEvents$4(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags);\n var shouldProcessPolyfillPlugins = (eventSystemFlags & SHOULD_NOT_PROCESS_POLYFILL_EVENT_PLUGINS) === 0; // We don't process these events unless we are in the\n // event's native \"bubble\" phase, which means that we're\n // not in the capture phase. That's because we emulate\n // the capture phase here still. This is a trade-off,\n // because in an ideal world we would not emulate and use\n // the phases properly, like we do with the SimpleEvent\n // plugin. However, the plugins below either expect\n // emulation (EnterLeave) or use state localized to that\n // plugin (BeforeInput, Change, Select). The state in\n // these modules complicates things, as you'll essentially\n // get the case where the capture phase event might change\n // state, only for the following bubble event to come in\n // later and not trigger anything as the state now\n // invalidates the heuristics of the event plugin. We\n // could alter all these plugins to work in such ways, but\n // that might cause other unknown side-effects that we\n // can't forsee right now.\n\n if (shouldProcessPolyfillPlugins) {\n extractEvents$2(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags);\n extractEvents$1(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget);\n extractEvents$3(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget);\n extractEvents(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget);\n }\n} // List of events that need to be individually attached to media elements.\n\n\nvar mediaEventTypes = ['abort', 'canplay', 'canplaythrough', 'durationchange', 'emptied', 'encrypted', 'ended', 'error', 'loadeddata', 'loadedmetadata', 'loadstart', 'pause', 'play', 'playing', 'progress', 'ratechange', 'seeked', 'seeking', 'stalled', 'suspend', 'timeupdate', 'volumechange', 'waiting']; // We should not delegate these events to the container, but rather\n// set them on the actual target element itself. This is primarily\n// because these events do not consistently bubble in the DOM.\n\nvar nonDelegatedEvents = new Set(['cancel', 'close', 'invalid', 'load', 'scroll', 'toggle'].concat(mediaEventTypes));\n\nfunction executeDispatch(event, listener, currentTarget) {\n var type = event.type || 'unknown-event';\n event.currentTarget = currentTarget;\n invokeGuardedCallbackAndCatchFirstError(type, listener, undefined, event);\n event.currentTarget = null;\n}\n\nfunction processDispatchQueueItemsInOrder(event, dispatchListeners, inCapturePhase) {\n var previousInstance;\n\n if (inCapturePhase) {\n for (var i = dispatchListeners.length - 1; i >= 0; i--) {\n var _dispatchListeners$i = dispatchListeners[i],\n instance = _dispatchListeners$i.instance,\n currentTarget = _dispatchListeners$i.currentTarget,\n listener = _dispatchListeners$i.listener;\n\n if (instance !== previousInstance && event.isPropagationStopped()) {\n return;\n }\n\n executeDispatch(event, listener, currentTarget);\n previousInstance = instance;\n }\n } else {\n for (var _i = 0; _i < dispatchListeners.length; _i++) {\n var _dispatchListeners$_i = dispatchListeners[_i],\n _instance = _dispatchListeners$_i.instance,\n _currentTarget = _dispatchListeners$_i.currentTarget,\n _listener = _dispatchListeners$_i.listener;\n\n if (_instance !== previousInstance && event.isPropagationStopped()) {\n return;\n }\n\n executeDispatch(event, _listener, _currentTarget);\n previousInstance = _instance;\n }\n }\n}\n\nfunction processDispatchQueue(dispatchQueue, eventSystemFlags) {\n var inCapturePhase = (eventSystemFlags & IS_CAPTURE_PHASE) !== 0;\n\n for (var i = 0; i < dispatchQueue.length; i++) {\n var _dispatchQueue$i = dispatchQueue[i],\n event = _dispatchQueue$i.event,\n listeners = _dispatchQueue$i.listeners;\n processDispatchQueueItemsInOrder(event, listeners, inCapturePhase); // event system doesn't use pooling.\n } // This would be a good time to rethrow if any of the event handlers threw.\n\n\n rethrowCaughtError();\n}\n\nfunction dispatchEventsForPlugins(domEventName, eventSystemFlags, nativeEvent, targetInst, targetContainer) {\n var nativeEventTarget = getEventTarget(nativeEvent);\n var dispatchQueue = [];\n extractEvents$5(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags);\n processDispatchQueue(dispatchQueue, eventSystemFlags);\n}\n\nfunction listenToNonDelegatedEvent(domEventName, targetElement) {\n var isCapturePhaseListener = false;\n var listenerSet = getEventListenerSet(targetElement);\n var listenerSetKey = getListenerSetKey(domEventName, isCapturePhaseListener);\n\n if (!listenerSet.has(listenerSetKey)) {\n addTrappedEventListener(targetElement, domEventName, IS_NON_DELEGATED, isCapturePhaseListener);\n listenerSet.add(listenerSetKey);\n }\n}\nvar listeningMarker = '_reactListening' + Math.random().toString(36).slice(2);\nfunction listenToAllSupportedEvents(rootContainerElement) {\n {\n if (rootContainerElement[listeningMarker]) {\n // Performance optimization: don't iterate through events\n // for the same portal container or root node more than once.\n // TODO: once we remove the flag, we may be able to also\n // remove some of the bookkeeping maps used for laziness.\n return;\n }\n\n rootContainerElement[listeningMarker] = true;\n allNativeEvents.forEach(function (domEventName) {\n if (!nonDelegatedEvents.has(domEventName)) {\n listenToNativeEvent(domEventName, false, rootContainerElement, null);\n }\n\n listenToNativeEvent(domEventName, true, rootContainerElement, null);\n });\n }\n}\nfunction listenToNativeEvent(domEventName, isCapturePhaseListener, rootContainerElement, targetElement) {\n var eventSystemFlags = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n var target = rootContainerElement; // selectionchange needs to be attached to the document\n // otherwise it won't capture incoming events that are only\n // triggered on the document directly.\n\n if (domEventName === 'selectionchange' && rootContainerElement.nodeType !== DOCUMENT_NODE) {\n target = rootContainerElement.ownerDocument;\n } // If the event can be delegated (or is capture phase), we can\n // register it to the root container. Otherwise, we should\n // register the event to the target element and mark it as\n // a non-delegated event.\n\n\n if (targetElement !== null && !isCapturePhaseListener && nonDelegatedEvents.has(domEventName)) {\n // For all non-delegated events, apart from scroll, we attach\n // their event listeners to the respective elements that their\n // events fire on. That means we can skip this step, as event\n // listener has already been added previously. However, we\n // special case the scroll event because the reality is that any\n // element can scroll.\n // TODO: ideally, we'd eventually apply the same logic to all\n // events from the nonDelegatedEvents list. Then we can remove\n // this special case and use the same logic for all events.\n if (domEventName !== 'scroll') {\n return;\n }\n\n eventSystemFlags |= IS_NON_DELEGATED;\n target = targetElement;\n }\n\n var listenerSet = getEventListenerSet(target);\n var listenerSetKey = getListenerSetKey(domEventName, isCapturePhaseListener); // If the listener entry is empty or we should upgrade, then\n // we need to trap an event listener onto the target.\n\n if (!listenerSet.has(listenerSetKey)) {\n if (isCapturePhaseListener) {\n eventSystemFlags |= IS_CAPTURE_PHASE;\n }\n\n addTrappedEventListener(target, domEventName, eventSystemFlags, isCapturePhaseListener);\n listenerSet.add(listenerSetKey);\n }\n}\n\nfunction addTrappedEventListener(targetContainer, domEventName, eventSystemFlags, isCapturePhaseListener, isDeferredListenerForLegacyFBSupport) {\n var listener = createEventListenerWrapperWithPriority(targetContainer, domEventName, eventSystemFlags); // If passive option is not supported, then the event will be\n // active and not passive.\n\n var isPassiveListener = undefined;\n\n if (passiveBrowserEventsSupported) {\n // Browsers introduced an intervention, making these events\n // passive by default on document. React doesn't bind them\n // to document anymore, but changing this now would undo\n // the performance wins from the change. So we emulate\n // the existing behavior manually on the roots now.\n // https://github.com/facebook/react/issues/19651\n if (domEventName === 'touchstart' || domEventName === 'touchmove' || domEventName === 'wheel') {\n isPassiveListener = true;\n }\n }\n\n targetContainer = targetContainer;\n var unsubscribeListener; // When legacyFBSupport is enabled, it's for when we\n\n\n if (isCapturePhaseListener) {\n if (isPassiveListener !== undefined) {\n unsubscribeListener = addEventCaptureListenerWithPassiveFlag(targetContainer, domEventName, listener, isPassiveListener);\n } else {\n unsubscribeListener = addEventCaptureListener(targetContainer, domEventName, listener);\n }\n } else {\n if (isPassiveListener !== undefined) {\n unsubscribeListener = addEventBubbleListenerWithPassiveFlag(targetContainer, domEventName, listener, isPassiveListener);\n } else {\n unsubscribeListener = addEventBubbleListener(targetContainer, domEventName, listener);\n }\n }\n}\n\nfunction isMatchingRootContainer(grandContainer, targetContainer) {\n return grandContainer === targetContainer || grandContainer.nodeType === COMMENT_NODE && grandContainer.parentNode === targetContainer;\n}\n\nfunction dispatchEventForPluginEventSystem(domEventName, eventSystemFlags, nativeEvent, targetInst, targetContainer) {\n var ancestorInst = targetInst;\n\n if ((eventSystemFlags & IS_EVENT_HANDLE_NON_MANAGED_NODE) === 0 && (eventSystemFlags & IS_NON_DELEGATED) === 0) {\n var targetContainerNode = targetContainer; // If we are using the legacy FB support flag, we\n\n if (targetInst !== null) {\n // The below logic attempts to work out if we need to change\n // the target fiber to a different ancestor. We had similar logic\n // in the legacy event system, except the big difference between\n // systems is that the modern event system now has an event listener\n // attached to each React Root and React Portal Root. Together,\n // the DOM nodes representing these roots are the \"rootContainer\".\n // To figure out which ancestor instance we should use, we traverse\n // up the fiber tree from the target instance and attempt to find\n // root boundaries that match that of our current \"rootContainer\".\n // If we find that \"rootContainer\", we find the parent fiber\n // sub-tree for that root and make that our ancestor instance.\n var node = targetInst;\n\n mainLoop: while (true) {\n if (node === null) {\n return;\n }\n\n var nodeTag = node.tag;\n\n if (nodeTag === HostRoot || nodeTag === HostPortal) {\n var container = node.stateNode.containerInfo;\n\n if (isMatchingRootContainer(container, targetContainerNode)) {\n break;\n }\n\n if (nodeTag === HostPortal) {\n // The target is a portal, but it's not the rootContainer we're looking for.\n // Normally portals handle their own events all the way down to the root.\n // So we should be able to stop now. However, we don't know if this portal\n // was part of *our* root.\n var grandNode = node.return;\n\n while (grandNode !== null) {\n var grandTag = grandNode.tag;\n\n if (grandTag === HostRoot || grandTag === HostPortal) {\n var grandContainer = grandNode.stateNode.containerInfo;\n\n if (isMatchingRootContainer(grandContainer, targetContainerNode)) {\n // This is the rootContainer we're looking for and we found it as\n // a parent of the Portal. That means we can ignore it because the\n // Portal will bubble through to us.\n return;\n }\n }\n\n grandNode = grandNode.return;\n }\n } // Now we need to find it's corresponding host fiber in the other\n // tree. To do this we can use getClosestInstanceFromNode, but we\n // need to validate that the fiber is a host instance, otherwise\n // we need to traverse up through the DOM till we find the correct\n // node that is from the other tree.\n\n\n while (container !== null) {\n var parentNode = getClosestInstanceFromNode(container);\n\n if (parentNode === null) {\n return;\n }\n\n var parentTag = parentNode.tag;\n\n if (parentTag === HostComponent || parentTag === HostText) {\n node = ancestorInst = parentNode;\n continue mainLoop;\n }\n\n container = container.parentNode;\n }\n }\n\n node = node.return;\n }\n }\n }\n\n batchedEventUpdates(function () {\n return dispatchEventsForPlugins(domEventName, eventSystemFlags, nativeEvent, ancestorInst);\n });\n}\n\nfunction createDispatchListener(instance, listener, currentTarget) {\n return {\n instance: instance,\n listener: listener,\n currentTarget: currentTarget\n };\n}\n\nfunction accumulateSinglePhaseListeners(targetFiber, reactName, nativeEventType, inCapturePhase, accumulateTargetOnly) {\n var captureName = reactName !== null ? reactName + 'Capture' : null;\n var reactEventName = inCapturePhase ? captureName : reactName;\n var listeners = [];\n var instance = targetFiber;\n var lastHostComponent = null; // Accumulate all instances and listeners via the target -> root path.\n\n while (instance !== null) {\n var _instance2 = instance,\n stateNode = _instance2.stateNode,\n tag = _instance2.tag; // Handle listeners that are on HostComponents (i.e. <div>)\n\n if (tag === HostComponent && stateNode !== null) {\n lastHostComponent = stateNode; // createEventHandle listeners\n\n\n if (reactEventName !== null) {\n var listener = getListener(instance, reactEventName);\n\n if (listener != null) {\n listeners.push(createDispatchListener(instance, listener, lastHostComponent));\n }\n }\n } // If we are only accumulating events for the target, then we don't\n // continue to propagate through the React fiber tree to find other\n // listeners.\n\n\n if (accumulateTargetOnly) {\n break;\n }\n\n instance = instance.return;\n }\n\n return listeners;\n} // We should only use this function for:\n// - BeforeInputEventPlugin\n// - ChangeEventPlugin\n// - SelectEventPlugin\n// This is because we only process these plugins\n// in the bubble phase, so we need to accumulate two\n// phase event listeners (via emulation).\n\nfunction accumulateTwoPhaseListeners(targetFiber, reactName) {\n var captureName = reactName + 'Capture';\n var listeners = [];\n var instance = targetFiber; // Accumulate all instances and listeners via the target -> root path.\n\n while (instance !== null) {\n var _instance3 = instance,\n stateNode = _instance3.stateNode,\n tag = _instance3.tag; // Handle listeners that are on HostComponents (i.e. <div>)\n\n if (tag === HostComponent && stateNode !== null) {\n var currentTarget = stateNode;\n var captureListener = getListener(instance, captureName);\n\n if (captureListener != null) {\n listeners.unshift(createDispatchListener(instance, captureListener, currentTarget));\n }\n\n var bubbleListener = getListener(instance, reactName);\n\n if (bubbleListener != null) {\n listeners.push(createDispatchListener(instance, bubbleListener, currentTarget));\n }\n }\n\n instance = instance.return;\n }\n\n return listeners;\n}\n\nfunction getParent(inst) {\n if (inst === null) {\n return null;\n }\n\n do {\n inst = inst.return; // TODO: If this is a HostRoot we might want to bail out.\n // That is depending on if we want nested subtrees (layers) to bubble\n // events to their parent. We could also go through parentNode on the\n // host node but that wouldn't work for React Native and doesn't let us\n // do the portal feature.\n } while (inst && inst.tag !== HostComponent);\n\n if (inst) {\n return inst;\n }\n\n return null;\n}\n/**\n * Return the lowest common ancestor of A and B, or null if they are in\n * different trees.\n */\n\n\nfunction getLowestCommonAncestor(instA, instB) {\n var nodeA = instA;\n var nodeB = instB;\n var depthA = 0;\n\n for (var tempA = nodeA; tempA; tempA = getParent(tempA)) {\n depthA++;\n }\n\n var depthB = 0;\n\n for (var tempB = nodeB; tempB; tempB = getParent(tempB)) {\n depthB++;\n } // If A is deeper, crawl up.\n\n\n while (depthA - depthB > 0) {\n nodeA = getParent(nodeA);\n depthA--;\n } // If B is deeper, crawl up.\n\n\n while (depthB - depthA > 0) {\n nodeB = getParent(nodeB);\n depthB--;\n } // Walk in lockstep until we find a match.\n\n\n var depth = depthA;\n\n while (depth--) {\n if (nodeA === nodeB || nodeB !== null && nodeA === nodeB.alternate) {\n return nodeA;\n }\n\n nodeA = getParent(nodeA);\n nodeB = getParent(nodeB);\n }\n\n return null;\n}\n\nfunction accumulateEnterLeaveListenersForEvent(dispatchQueue, event, target, common, inCapturePhase) {\n var registrationName = event._reactName;\n var listeners = [];\n var instance = target;\n\n while (instance !== null) {\n if (instance === common) {\n break;\n }\n\n var _instance4 = instance,\n alternate = _instance4.alternate,\n stateNode = _instance4.stateNode,\n tag = _instance4.tag;\n\n if (alternate !== null && alternate === common) {\n break;\n }\n\n if (tag === HostComponent && stateNode !== null) {\n var currentTarget = stateNode;\n\n if (inCapturePhase) {\n var captureListener = getListener(instance, registrationName);\n\n if (captureListener != null) {\n listeners.unshift(createDispatchListener(instance, captureListener, currentTarget));\n }\n } else if (!inCapturePhase) {\n var bubbleListener = getListener(instance, registrationName);\n\n if (bubbleListener != null) {\n listeners.push(createDispatchListener(instance, bubbleListener, currentTarget));\n }\n }\n }\n\n instance = instance.return;\n }\n\n if (listeners.length !== 0) {\n dispatchQueue.push({\n event: event,\n listeners: listeners\n });\n }\n} // We should only use this function for:\n// - EnterLeaveEventPlugin\n// This is because we only process this plugin\n// in the bubble phase, so we need to accumulate two\n// phase event listeners.\n\n\nfunction accumulateEnterLeaveTwoPhaseListeners(dispatchQueue, leaveEvent, enterEvent, from, to) {\n var common = from && to ? getLowestCommonAncestor(from, to) : null;\n\n if (from !== null) {\n accumulateEnterLeaveListenersForEvent(dispatchQueue, leaveEvent, from, common, false);\n }\n\n if (to !== null && enterEvent !== null) {\n accumulateEnterLeaveListenersForEvent(dispatchQueue, enterEvent, to, common, true);\n }\n}\nfunction getListenerSetKey(domEventName, capture) {\n return domEventName + \"__\" + (capture ? 'capture' : 'bubble');\n}\n\nvar didWarnInvalidHydration = false;\nvar DANGEROUSLY_SET_INNER_HTML = 'dangerouslySetInnerHTML';\nvar SUPPRESS_CONTENT_EDITABLE_WARNING = 'suppressContentEditableWarning';\nvar SUPPRESS_HYDRATION_WARNING = 'suppressHydrationWarning';\nvar AUTOFOCUS = 'autoFocus';\nvar CHILDREN = 'children';\nvar STYLE = 'style';\nvar HTML$1 = '__html';\nvar HTML_NAMESPACE$1 = Namespaces.html;\nvar warnedUnknownTags;\nvar suppressHydrationWarning;\nvar validatePropertiesInDevelopment;\nvar warnForTextDifference;\nvar warnForPropDifference;\nvar warnForExtraAttributes;\nvar warnForInvalidEventListener;\nvar canDiffStyleForHydrationWarning;\nvar normalizeMarkupForTextOrAttribute;\nvar normalizeHTML;\n\n{\n warnedUnknownTags = {\n // There are working polyfills for <dialog>. Let people use it.\n dialog: true,\n // Electron ships a custom <webview> tag to display external web content in\n // an isolated frame and process.\n // This tag is not present in non Electron environments such as JSDom which\n // is often used for testing purposes.\n // @see https://electronjs.org/docs/api/webview-tag\n webview: true\n };\n\n validatePropertiesInDevelopment = function (type, props) {\n validateProperties(type, props);\n validateProperties$1(type, props);\n validateProperties$2(type, props, {\n registrationNameDependencies: registrationNameDependencies,\n possibleRegistrationNames: possibleRegistrationNames\n });\n }; // IE 11 parses & normalizes the style attribute as opposed to other\n // browsers. It adds spaces and sorts the properties in some\n // non-alphabetical order. Handling that would require sorting CSS\n // properties in the client & server versions or applying\n // `expectedStyle` to a temporary DOM node to read its `style` attribute\n // normalized. Since it only affects IE, we're skipping style warnings\n // in that browser completely in favor of doing all that work.\n // See https://github.com/facebook/react/issues/11807\n\n\n canDiffStyleForHydrationWarning = canUseDOM && !document.documentMode; // HTML parsing normalizes CR and CRLF to LF.\n // It also can turn \\u0000 into \\uFFFD inside attributes.\n // https://www.w3.org/TR/html5/single-page.html#preprocessing-the-input-stream\n // If we have a mismatch, it might be caused by that.\n // We will still patch up in this case but not fire the warning.\n\n var NORMALIZE_NEWLINES_REGEX = /\\r\\n?/g;\n var NORMALIZE_NULL_AND_REPLACEMENT_REGEX = /\\u0000|\\uFFFD/g;\n\n normalizeMarkupForTextOrAttribute = function (markup) {\n var markupString = typeof markup === 'string' ? markup : '' + markup;\n return markupString.replace(NORMALIZE_NEWLINES_REGEX, '\\n').replace(NORMALIZE_NULL_AND_REPLACEMENT_REGEX, '');\n };\n\n warnForTextDifference = function (serverText, clientText) {\n if (didWarnInvalidHydration) {\n return;\n }\n\n var normalizedClientText = normalizeMarkupForTextOrAttribute(clientText);\n var normalizedServerText = normalizeMarkupForTextOrAttribute(serverText);\n\n if (normalizedServerText === normalizedClientText) {\n return;\n }\n\n didWarnInvalidHydration = true;\n\n error('Text content did not match. Server: \"%s\" Client: \"%s\"', normalizedServerText, normalizedClientText);\n };\n\n warnForPropDifference = function (propName, serverValue, clientValue) {\n if (didWarnInvalidHydration) {\n return;\n }\n\n var normalizedClientValue = normalizeMarkupForTextOrAttribute(clientValue);\n var normalizedServerValue = normalizeMarkupForTextOrAttribute(serverValue);\n\n if (normalizedServerValue === normalizedClientValue) {\n return;\n }\n\n didWarnInvalidHydration = true;\n\n error('Prop `%s` did not match. Server: %s Client: %s', propName, JSON.stringify(normalizedServerValue), JSON.stringify(normalizedClientValue));\n };\n\n warnForExtraAttributes = function (attributeNames) {\n if (didWarnInvalidHydration) {\n return;\n }\n\n didWarnInvalidHydration = true;\n var names = [];\n attributeNames.forEach(function (name) {\n names.push(name);\n });\n\n error('Extra attributes from the server: %s', names);\n };\n\n warnForInvalidEventListener = function (registrationName, listener) {\n if (listener === false) {\n error('Expected `%s` listener to be a function, instead got `false`.\\n\\n' + 'If you used to conditionally omit it with %s={condition && value}, ' + 'pass %s={condition ? value : undefined} instead.', registrationName, registrationName, registrationName);\n } else {\n error('Expected `%s` listener to be a function, instead got a value of `%s` type.', registrationName, typeof listener);\n }\n }; // Parse the HTML and read it back to normalize the HTML string so that it\n // can be used for comparison.\n\n\n normalizeHTML = function (parent, html) {\n // We could have created a separate document here to avoid\n // re-initializing custom elements if they exist. But this breaks\n // how <noscript> is being handled. So we use the same document.\n // See the discussion in https://github.com/facebook/react/pull/11157.\n var testElement = parent.namespaceURI === HTML_NAMESPACE$1 ? parent.ownerDocument.createElement(parent.tagName) : parent.ownerDocument.createElementNS(parent.namespaceURI, parent.tagName);\n testElement.innerHTML = html;\n return testElement.innerHTML;\n };\n}\n\nfunction getOwnerDocumentFromRootContainer(rootContainerElement) {\n return rootContainerElement.nodeType === DOCUMENT_NODE ? rootContainerElement : rootContainerElement.ownerDocument;\n}\n\nfunction noop() {}\n\nfunction trapClickOnNonInteractiveElement(node) {\n // Mobile Safari does not fire properly bubble click events on\n // non-interactive elements, which means delegated click listeners do not\n // fire. The workaround for this bug involves attaching an empty click\n // listener on the target node.\n // https://www.quirksmode.org/blog/archives/2010/09/click_event_del.html\n // Just set it using the onclick property so that we don't have to manage any\n // bookkeeping for it. Not sure if we need to clear it when the listener is\n // removed.\n // TODO: Only do this for the relevant Safaris maybe?\n node.onclick = noop;\n}\n\nfunction setInitialDOMProperties(tag, domElement, rootContainerElement, nextProps, isCustomComponentTag) {\n for (var propKey in nextProps) {\n if (!nextProps.hasOwnProperty(propKey)) {\n continue;\n }\n\n var nextProp = nextProps[propKey];\n\n if (propKey === STYLE) {\n {\n if (nextProp) {\n // Freeze the next style object so that we can assume it won't be\n // mutated. We have already warned for this in the past.\n Object.freeze(nextProp);\n }\n } // Relies on `updateStylesByID` not mutating `styleUpdates`.\n\n\n setValueForStyles(domElement, nextProp);\n } else if (propKey === DANGEROUSLY_SET_INNER_HTML) {\n var nextHtml = nextProp ? nextProp[HTML$1] : undefined;\n\n if (nextHtml != null) {\n setInnerHTML(domElement, nextHtml);\n }\n } else if (propKey === CHILDREN) {\n if (typeof nextProp === 'string') {\n // Avoid setting initial textContent when the text is empty. In IE11 setting\n // textContent on a <textarea> will cause the placeholder to not\n // show within the <textarea> until it has been focused and blurred again.\n // https://github.com/facebook/react/issues/6731#issuecomment-254874553\n var canSetTextContent = tag !== 'textarea' || nextProp !== '';\n\n if (canSetTextContent) {\n setTextContent(domElement, nextProp);\n }\n } else if (typeof nextProp === 'number') {\n setTextContent(domElement, '' + nextProp);\n }\n } else if (propKey === SUPPRESS_CONTENT_EDITABLE_WARNING || propKey === SUPPRESS_HYDRATION_WARNING) ; else if (propKey === AUTOFOCUS) ; else if (registrationNameDependencies.hasOwnProperty(propKey)) {\n if (nextProp != null) {\n if ( typeof nextProp !== 'function') {\n warnForInvalidEventListener(propKey, nextProp);\n }\n\n if (propKey === 'onScroll') {\n listenToNonDelegatedEvent('scroll', domElement);\n }\n }\n } else if (nextProp != null) {\n setValueForProperty(domElement, propKey, nextProp, isCustomComponentTag);\n }\n }\n}\n\nfunction updateDOMProperties(domElement, updatePayload, wasCustomComponentTag, isCustomComponentTag) {\n // TODO: Handle wasCustomComponentTag\n for (var i = 0; i < updatePayload.length; i += 2) {\n var propKey = updatePayload[i];\n var propValue = updatePayload[i + 1];\n\n if (propKey === STYLE) {\n setValueForStyles(domElement, propValue);\n } else if (propKey === DANGEROUSLY_SET_INNER_HTML) {\n setInnerHTML(domElement, propValue);\n } else if (propKey === CHILDREN) {\n setTextContent(domElement, propValue);\n } else {\n setValueForProperty(domElement, propKey, propValue, isCustomComponentTag);\n }\n }\n}\n\nfunction createElement(type, props, rootContainerElement, parentNamespace) {\n var isCustomComponentTag; // We create tags in the namespace of their parent container, except HTML\n // tags get no namespace.\n\n var ownerDocument = getOwnerDocumentFromRootContainer(rootContainerElement);\n var domElement;\n var namespaceURI = parentNamespace;\n\n if (namespaceURI === HTML_NAMESPACE$1) {\n namespaceURI = getIntrinsicNamespace(type);\n }\n\n if (namespaceURI === HTML_NAMESPACE$1) {\n {\n isCustomComponentTag = isCustomComponent(type, props); // Should this check be gated by parent namespace? Not sure we want to\n // allow <SVG> or <mATH>.\n\n if (!isCustomComponentTag && type !== type.toLowerCase()) {\n error('<%s /> is using incorrect casing. ' + 'Use PascalCase for React components, ' + 'or lowercase for HTML elements.', type);\n }\n }\n\n if (type === 'script') {\n // Create the script via .innerHTML so its \"parser-inserted\" flag is\n // set to true and it does not execute\n var div = ownerDocument.createElement('div');\n\n div.innerHTML = '<script><' + '/script>'; // eslint-disable-line\n // This is guaranteed to yield a script element.\n\n var firstChild = div.firstChild;\n domElement = div.removeChild(firstChild);\n } else if (typeof props.is === 'string') {\n // $FlowIssue `createElement` should be updated for Web Components\n domElement = ownerDocument.createElement(type, {\n is: props.is\n });\n } else {\n // Separate else branch instead of using `props.is || undefined` above because of a Firefox bug.\n // See discussion in https://github.com/facebook/react/pull/6896\n // and discussion in https://bugzilla.mozilla.org/show_bug.cgi?id=1276240\n domElement = ownerDocument.createElement(type); // Normally attributes are assigned in `setInitialDOMProperties`, however the `multiple` and `size`\n // attributes on `select`s needs to be added before `option`s are inserted.\n // This prevents:\n // - a bug where the `select` does not scroll to the correct option because singular\n // `select` elements automatically pick the first item #13222\n // - a bug where the `select` set the first item as selected despite the `size` attribute #14239\n // See https://github.com/facebook/react/issues/13222\n // and https://github.com/facebook/react/issues/14239\n\n if (type === 'select') {\n var node = domElement;\n\n if (props.multiple) {\n node.multiple = true;\n } else if (props.size) {\n // Setting a size greater than 1 causes a select to behave like `multiple=true`, where\n // it is possible that no option is selected.\n //\n // This is only necessary when a select in \"single selection mode\".\n node.size = props.size;\n }\n }\n }\n } else {\n domElement = ownerDocument.createElementNS(namespaceURI, type);\n }\n\n {\n if (namespaceURI === HTML_NAMESPACE$1) {\n if (!isCustomComponentTag && Object.prototype.toString.call(domElement) === '[object HTMLUnknownElement]' && !Object.prototype.hasOwnProperty.call(warnedUnknownTags, type)) {\n warnedUnknownTags[type] = true;\n\n error('The tag <%s> is unrecognized in this browser. ' + 'If you meant to render a React component, start its name with ' + 'an uppercase letter.', type);\n }\n }\n }\n\n return domElement;\n}\nfunction createTextNode(text, rootContainerElement) {\n return getOwnerDocumentFromRootContainer(rootContainerElement).createTextNode(text);\n}\nfunction setInitialProperties(domElement, tag, rawProps, rootContainerElement) {\n var isCustomComponentTag = isCustomComponent(tag, rawProps);\n\n {\n validatePropertiesInDevelopment(tag, rawProps);\n } // TODO: Make sure that we check isMounted before firing any of these events.\n\n\n var props;\n\n switch (tag) {\n case 'dialog':\n listenToNonDelegatedEvent('cancel', domElement);\n listenToNonDelegatedEvent('close', domElement);\n props = rawProps;\n break;\n\n case 'iframe':\n case 'object':\n case 'embed':\n // We listen to this event in case to ensure emulated bubble\n // listeners still fire for the load event.\n listenToNonDelegatedEvent('load', domElement);\n props = rawProps;\n break;\n\n case 'video':\n case 'audio':\n // We listen to these events in case to ensure emulated bubble\n // listeners still fire for all the media events.\n for (var i = 0; i < mediaEventTypes.length; i++) {\n listenToNonDelegatedEvent(mediaEventTypes[i], domElement);\n }\n\n props = rawProps;\n break;\n\n case 'source':\n // We listen to this event in case to ensure emulated bubble\n // listeners still fire for the error event.\n listenToNonDelegatedEvent('error', domElement);\n props = rawProps;\n break;\n\n case 'img':\n case 'image':\n case 'link':\n // We listen to these events in case to ensure emulated bubble\n // listeners still fire for error and load events.\n listenToNonDelegatedEvent('error', domElement);\n listenToNonDelegatedEvent('load', domElement);\n props = rawProps;\n break;\n\n case 'details':\n // We listen to this event in case to ensure emulated bubble\n // listeners still fire for the toggle event.\n listenToNonDelegatedEvent('toggle', domElement);\n props = rawProps;\n break;\n\n case 'input':\n initWrapperState(domElement, rawProps);\n props = getHostProps(domElement, rawProps); // We listen to this event in case to ensure emulated bubble\n // listeners still fire for the invalid event.\n\n listenToNonDelegatedEvent('invalid', domElement);\n\n break;\n\n case 'option':\n validateProps(domElement, rawProps);\n props = getHostProps$1(domElement, rawProps);\n break;\n\n case 'select':\n initWrapperState$1(domElement, rawProps);\n props = getHostProps$2(domElement, rawProps); // We listen to this event in case to ensure emulated bubble\n // listeners still fire for the invalid event.\n\n listenToNonDelegatedEvent('invalid', domElement);\n\n break;\n\n case 'textarea':\n initWrapperState$2(domElement, rawProps);\n props = getHostProps$3(domElement, rawProps); // We listen to this event in case to ensure emulated bubble\n // listeners still fire for the invalid event.\n\n listenToNonDelegatedEvent('invalid', domElement);\n\n break;\n\n default:\n props = rawProps;\n }\n\n assertValidProps(tag, props);\n setInitialDOMProperties(tag, domElement, rootContainerElement, props, isCustomComponentTag);\n\n switch (tag) {\n case 'input':\n // TODO: Make sure we check if this is still unmounted or do any clean\n // up necessary since we never stop tracking anymore.\n track(domElement);\n postMountWrapper(domElement, rawProps, false);\n break;\n\n case 'textarea':\n // TODO: Make sure we check if this is still unmounted or do any clean\n // up necessary since we never stop tracking anymore.\n track(domElement);\n postMountWrapper$3(domElement);\n break;\n\n case 'option':\n postMountWrapper$1(domElement, rawProps);\n break;\n\n case 'select':\n postMountWrapper$2(domElement, rawProps);\n break;\n\n default:\n if (typeof props.onClick === 'function') {\n // TODO: This cast may not be sound for SVG, MathML or custom elements.\n trapClickOnNonInteractiveElement(domElement);\n }\n\n break;\n }\n} // Calculate the diff between the two objects.\n\nfunction diffProperties(domElement, tag, lastRawProps, nextRawProps, rootContainerElement) {\n {\n validatePropertiesInDevelopment(tag, nextRawProps);\n }\n\n var updatePayload = null;\n var lastProps;\n var nextProps;\n\n switch (tag) {\n case 'input':\n lastProps = getHostProps(domElement, lastRawProps);\n nextProps = getHostProps(domElement, nextRawProps);\n updatePayload = [];\n break;\n\n case 'option':\n lastProps = getHostProps$1(domElement, lastRawProps);\n nextProps = getHostProps$1(domElement, nextRawProps);\n updatePayload = [];\n break;\n\n case 'select':\n lastProps = getHostProps$2(domElement, lastRawProps);\n nextProps = getHostProps$2(domElement, nextRawProps);\n updatePayload = [];\n break;\n\n case 'textarea':\n lastProps = getHostProps$3(domElement, lastRawProps);\n nextProps = getHostProps$3(domElement, nextRawProps);\n updatePayload = [];\n break;\n\n default:\n lastProps = lastRawProps;\n nextProps = nextRawProps;\n\n if (typeof lastProps.onClick !== 'function' && typeof nextProps.onClick === 'function') {\n // TODO: This cast may not be sound for SVG, MathML or custom elements.\n trapClickOnNonInteractiveElement(domElement);\n }\n\n break;\n }\n\n assertValidProps(tag, nextProps);\n var propKey;\n var styleName;\n var styleUpdates = null;\n\n for (propKey in lastProps) {\n if (nextProps.hasOwnProperty(propKey) || !lastProps.hasOwnProperty(propKey) || lastProps[propKey] == null) {\n continue;\n }\n\n if (propKey === STYLE) {\n var lastStyle = lastProps[propKey];\n\n for (styleName in lastStyle) {\n if (lastStyle.hasOwnProperty(styleName)) {\n if (!styleUpdates) {\n styleUpdates = {};\n }\n\n styleUpdates[styleName] = '';\n }\n }\n } else if (propKey === DANGEROUSLY_SET_INNER_HTML || propKey === CHILDREN) ; else if (propKey === SUPPRESS_CONTENT_EDITABLE_WARNING || propKey === SUPPRESS_HYDRATION_WARNING) ; else if (propKey === AUTOFOCUS) ; else if (registrationNameDependencies.hasOwnProperty(propKey)) {\n // This is a special case. If any listener updates we need to ensure\n // that the \"current\" fiber pointer gets updated so we need a commit\n // to update this element.\n if (!updatePayload) {\n updatePayload = [];\n }\n } else {\n // For all other deleted properties we add it to the queue. We use\n // the allowed property list in the commit phase instead.\n (updatePayload = updatePayload || []).push(propKey, null);\n }\n }\n\n for (propKey in nextProps) {\n var nextProp = nextProps[propKey];\n var lastProp = lastProps != null ? lastProps[propKey] : undefined;\n\n if (!nextProps.hasOwnProperty(propKey) || nextProp === lastProp || nextProp == null && lastProp == null) {\n continue;\n }\n\n if (propKey === STYLE) {\n {\n if (nextProp) {\n // Freeze the next style object so that we can assume it won't be\n // mutated. We have already warned for this in the past.\n Object.freeze(nextProp);\n }\n }\n\n if (lastProp) {\n // Unset styles on `lastProp` but not on `nextProp`.\n for (styleName in lastProp) {\n if (lastProp.hasOwnProperty(styleName) && (!nextProp || !nextProp.hasOwnProperty(styleName))) {\n if (!styleUpdates) {\n styleUpdates = {};\n }\n\n styleUpdates[styleName] = '';\n }\n } // Update styles that changed since `lastProp`.\n\n\n for (styleName in nextProp) {\n if (nextProp.hasOwnProperty(styleName) && lastProp[styleName] !== nextProp[styleName]) {\n if (!styleUpdates) {\n styleUpdates = {};\n }\n\n styleUpdates[styleName] = nextProp[styleName];\n }\n }\n } else {\n // Relies on `updateStylesByID` not mutating `styleUpdates`.\n if (!styleUpdates) {\n if (!updatePayload) {\n updatePayload = [];\n }\n\n updatePayload.push(propKey, styleUpdates);\n }\n\n styleUpdates = nextProp;\n }\n } else if (propKey === DANGEROUSLY_SET_INNER_HTML) {\n var nextHtml = nextProp ? nextProp[HTML$1] : undefined;\n var lastHtml = lastProp ? lastProp[HTML$1] : undefined;\n\n if (nextHtml != null) {\n if (lastHtml !== nextHtml) {\n (updatePayload = updatePayload || []).push(propKey, nextHtml);\n }\n }\n } else if (propKey === CHILDREN) {\n if (typeof nextProp === 'string' || typeof nextProp === 'number') {\n (updatePayload = updatePayload || []).push(propKey, '' + nextProp);\n }\n } else if (propKey === SUPPRESS_CONTENT_EDITABLE_WARNING || propKey === SUPPRESS_HYDRATION_WARNING) ; else if (registrationNameDependencies.hasOwnProperty(propKey)) {\n if (nextProp != null) {\n // We eagerly listen to this even though we haven't committed yet.\n if ( typeof nextProp !== 'function') {\n warnForInvalidEventListener(propKey, nextProp);\n }\n\n if (propKey === 'onScroll') {\n listenToNonDelegatedEvent('scroll', domElement);\n }\n }\n\n if (!updatePayload && lastProp !== nextProp) {\n // This is a special case. If any listener updates we need to ensure\n // that the \"current\" props pointer gets updated so we need a commit\n // to update this element.\n updatePayload = [];\n }\n } else if (typeof nextProp === 'object' && nextProp !== null && nextProp.$$typeof === REACT_OPAQUE_ID_TYPE) {\n // If we encounter useOpaqueReference's opaque object, this means we are hydrating.\n // In this case, call the opaque object's toString function which generates a new client\n // ID so client and server IDs match and throws to rerender.\n nextProp.toString();\n } else {\n // For any other property we always add it to the queue and then we\n // filter it out using the allowed property list during the commit.\n (updatePayload = updatePayload || []).push(propKey, nextProp);\n }\n }\n\n if (styleUpdates) {\n {\n validateShorthandPropertyCollisionInDev(styleUpdates, nextProps[STYLE]);\n }\n\n (updatePayload = updatePayload || []).push(STYLE, styleUpdates);\n }\n\n return updatePayload;\n} // Apply the diff.\n\nfunction updateProperties(domElement, updatePayload, tag, lastRawProps, nextRawProps) {\n // Update checked *before* name.\n // In the middle of an update, it is possible to have multiple checked.\n // When a checked radio tries to change name, browser makes another radio's checked false.\n if (tag === 'input' && nextRawProps.type === 'radio' && nextRawProps.name != null) {\n updateChecked(domElement, nextRawProps);\n }\n\n var wasCustomComponentTag = isCustomComponent(tag, lastRawProps);\n var isCustomComponentTag = isCustomComponent(tag, nextRawProps); // Apply the diff.\n\n updateDOMProperties(domElement, updatePayload, wasCustomComponentTag, isCustomComponentTag); // TODO: Ensure that an update gets scheduled if any of the special props\n // changed.\n\n switch (tag) {\n case 'input':\n // Update the wrapper around inputs *after* updating props. This has to\n // happen after `updateDOMProperties`. Otherwise HTML5 input validations\n // raise warnings and prevent the new value from being assigned.\n updateWrapper(domElement, nextRawProps);\n break;\n\n case 'textarea':\n updateWrapper$1(domElement, nextRawProps);\n break;\n\n case 'select':\n // <select> value update needs to occur after <option> children\n // reconciliation\n postUpdateWrapper(domElement, nextRawProps);\n break;\n }\n}\n\nfunction getPossibleStandardName(propName) {\n {\n var lowerCasedName = propName.toLowerCase();\n\n if (!possibleStandardNames.hasOwnProperty(lowerCasedName)) {\n return null;\n }\n\n return possibleStandardNames[lowerCasedName] || null;\n }\n}\n\nfunction diffHydratedProperties(domElement, tag, rawProps, parentNamespace, rootContainerElement) {\n var isCustomComponentTag;\n var extraAttributeNames;\n\n {\n suppressHydrationWarning = rawProps[SUPPRESS_HYDRATION_WARNING] === true;\n isCustomComponentTag = isCustomComponent(tag, rawProps);\n validatePropertiesInDevelopment(tag, rawProps);\n } // TODO: Make sure that we check isMounted before firing any of these events.\n\n\n switch (tag) {\n case 'dialog':\n listenToNonDelegatedEvent('cancel', domElement);\n listenToNonDelegatedEvent('close', domElement);\n break;\n\n case 'iframe':\n case 'object':\n case 'embed':\n // We listen to this event in case to ensure emulated bubble\n // listeners still fire for the load event.\n listenToNonDelegatedEvent('load', domElement);\n break;\n\n case 'video':\n case 'audio':\n // We listen to these events in case to ensure emulated bubble\n // listeners still fire for all the media events.\n for (var i = 0; i < mediaEventTypes.length; i++) {\n listenToNonDelegatedEvent(mediaEventTypes[i], domElement);\n }\n\n break;\n\n case 'source':\n // We listen to this event in case to ensure emulated bubble\n // listeners still fire for the error event.\n listenToNonDelegatedEvent('error', domElement);\n break;\n\n case 'img':\n case 'image':\n case 'link':\n // We listen to these events in case to ensure emulated bubble\n // listeners still fire for error and load events.\n listenToNonDelegatedEvent('error', domElement);\n listenToNonDelegatedEvent('load', domElement);\n break;\n\n case 'details':\n // We listen to this event in case to ensure emulated bubble\n // listeners still fire for the toggle event.\n listenToNonDelegatedEvent('toggle', domElement);\n break;\n\n case 'input':\n initWrapperState(domElement, rawProps); // We listen to this event in case to ensure emulated bubble\n // listeners still fire for the invalid event.\n\n listenToNonDelegatedEvent('invalid', domElement);\n\n break;\n\n case 'option':\n validateProps(domElement, rawProps);\n break;\n\n case 'select':\n initWrapperState$1(domElement, rawProps); // We listen to this event in case to ensure emulated bubble\n // listeners still fire for the invalid event.\n\n listenToNonDelegatedEvent('invalid', domElement);\n\n break;\n\n case 'textarea':\n initWrapperState$2(domElement, rawProps); // We listen to this event in case to ensure emulated bubble\n // listeners still fire for the invalid event.\n\n listenToNonDelegatedEvent('invalid', domElement);\n\n break;\n }\n\n assertValidProps(tag, rawProps);\n\n {\n extraAttributeNames = new Set();\n var attributes = domElement.attributes;\n\n for (var _i = 0; _i < attributes.length; _i++) {\n var name = attributes[_i].name.toLowerCase();\n\n switch (name) {\n // Built-in SSR attribute is allowed\n case 'data-reactroot':\n break;\n // Controlled attributes are not validated\n // TODO: Only ignore them on controlled tags.\n\n case 'value':\n break;\n\n case 'checked':\n break;\n\n case 'selected':\n break;\n\n default:\n // Intentionally use the original name.\n // See discussion in https://github.com/facebook/react/pull/10676.\n extraAttributeNames.add(attributes[_i].name);\n }\n }\n }\n\n var updatePayload = null;\n\n for (var propKey in rawProps) {\n if (!rawProps.hasOwnProperty(propKey)) {\n continue;\n }\n\n var nextProp = rawProps[propKey];\n\n if (propKey === CHILDREN) {\n // For text content children we compare against textContent. This\n // might match additional HTML that is hidden when we read it using\n // textContent. E.g. \"foo\" will match \"f<span>oo</span>\" but that still\n // satisfies our requirement. Our requirement is not to produce perfect\n // HTML and attributes. Ideally we should preserve structure but it's\n // ok not to if the visible content is still enough to indicate what\n // even listeners these nodes might be wired up to.\n // TODO: Warn if there is more than a single textNode as a child.\n // TODO: Should we use domElement.firstChild.nodeValue to compare?\n if (typeof nextProp === 'string') {\n if (domElement.textContent !== nextProp) {\n if ( !suppressHydrationWarning) {\n warnForTextDifference(domElement.textContent, nextProp);\n }\n\n updatePayload = [CHILDREN, nextProp];\n }\n } else if (typeof nextProp === 'number') {\n if (domElement.textContent !== '' + nextProp) {\n if ( !suppressHydrationWarning) {\n warnForTextDifference(domElement.textContent, nextProp);\n }\n\n updatePayload = [CHILDREN, '' + nextProp];\n }\n }\n } else if (registrationNameDependencies.hasOwnProperty(propKey)) {\n if (nextProp != null) {\n if ( typeof nextProp !== 'function') {\n warnForInvalidEventListener(propKey, nextProp);\n }\n\n if (propKey === 'onScroll') {\n listenToNonDelegatedEvent('scroll', domElement);\n }\n }\n } else if ( // Convince Flow we've calculated it (it's DEV-only in this method.)\n typeof isCustomComponentTag === 'boolean') {\n // Validate that the properties correspond to their expected values.\n var serverValue = void 0;\n var propertyInfo = getPropertyInfo(propKey);\n\n if (suppressHydrationWarning) ; else if (propKey === SUPPRESS_CONTENT_EDITABLE_WARNING || propKey === SUPPRESS_HYDRATION_WARNING || // Controlled attributes are not validated\n // TODO: Only ignore them on controlled tags.\n propKey === 'value' || propKey === 'checked' || propKey === 'selected') ; else if (propKey === DANGEROUSLY_SET_INNER_HTML) {\n var serverHTML = domElement.innerHTML;\n var nextHtml = nextProp ? nextProp[HTML$1] : undefined;\n\n if (nextHtml != null) {\n var expectedHTML = normalizeHTML(domElement, nextHtml);\n\n if (expectedHTML !== serverHTML) {\n warnForPropDifference(propKey, serverHTML, expectedHTML);\n }\n }\n } else if (propKey === STYLE) {\n // $FlowFixMe - Should be inferred as not undefined.\n extraAttributeNames.delete(propKey);\n\n if (canDiffStyleForHydrationWarning) {\n var expectedStyle = createDangerousStringForStyles(nextProp);\n serverValue = domElement.getAttribute('style');\n\n if (expectedStyle !== serverValue) {\n warnForPropDifference(propKey, serverValue, expectedStyle);\n }\n }\n } else if (isCustomComponentTag) {\n // $FlowFixMe - Should be inferred as not undefined.\n extraAttributeNames.delete(propKey.toLowerCase());\n serverValue = getValueForAttribute(domElement, propKey, nextProp);\n\n if (nextProp !== serverValue) {\n warnForPropDifference(propKey, serverValue, nextProp);\n }\n } else if (!shouldIgnoreAttribute(propKey, propertyInfo, isCustomComponentTag) && !shouldRemoveAttribute(propKey, nextProp, propertyInfo, isCustomComponentTag)) {\n var isMismatchDueToBadCasing = false;\n\n if (propertyInfo !== null) {\n // $FlowFixMe - Should be inferred as not undefined.\n extraAttributeNames.delete(propertyInfo.attributeName);\n serverValue = getValueForProperty(domElement, propKey, nextProp, propertyInfo);\n } else {\n var ownNamespace = parentNamespace;\n\n if (ownNamespace === HTML_NAMESPACE$1) {\n ownNamespace = getIntrinsicNamespace(tag);\n }\n\n if (ownNamespace === HTML_NAMESPACE$1) {\n // $FlowFixMe - Should be inferred as not undefined.\n extraAttributeNames.delete(propKey.toLowerCase());\n } else {\n var standardName = getPossibleStandardName(propKey);\n\n if (standardName !== null && standardName !== propKey) {\n // If an SVG prop is supplied with bad casing, it will\n // be successfully parsed from HTML, but will produce a mismatch\n // (and would be incorrectly rendered on the client).\n // However, we already warn about bad casing elsewhere.\n // So we'll skip the misleading extra mismatch warning in this case.\n isMismatchDueToBadCasing = true; // $FlowFixMe - Should be inferred as not undefined.\n\n extraAttributeNames.delete(standardName);\n } // $FlowFixMe - Should be inferred as not undefined.\n\n\n extraAttributeNames.delete(propKey);\n }\n\n serverValue = getValueForAttribute(domElement, propKey, nextProp);\n }\n\n if (nextProp !== serverValue && !isMismatchDueToBadCasing) {\n warnForPropDifference(propKey, serverValue, nextProp);\n }\n }\n }\n }\n\n {\n // $FlowFixMe - Should be inferred as not undefined.\n if (extraAttributeNames.size > 0 && !suppressHydrationWarning) {\n // $FlowFixMe - Should be inferred as not undefined.\n warnForExtraAttributes(extraAttributeNames);\n }\n }\n\n switch (tag) {\n case 'input':\n // TODO: Make sure we check if this is still unmounted or do any clean\n // up necessary since we never stop tracking anymore.\n track(domElement);\n postMountWrapper(domElement, rawProps, true);\n break;\n\n case 'textarea':\n // TODO: Make sure we check if this is still unmounted or do any clean\n // up necessary since we never stop tracking anymore.\n track(domElement);\n postMountWrapper$3(domElement);\n break;\n\n case 'select':\n case 'option':\n // For input and textarea we current always set the value property at\n // post mount to force it to diverge from attributes. However, for\n // option and select we don't quite do the same thing and select\n // is not resilient to the DOM state changing so we don't do that here.\n // TODO: Consider not doing this for input and textarea.\n break;\n\n default:\n if (typeof rawProps.onClick === 'function') {\n // TODO: This cast may not be sound for SVG, MathML or custom elements.\n trapClickOnNonInteractiveElement(domElement);\n }\n\n break;\n }\n\n return updatePayload;\n}\nfunction diffHydratedText(textNode, text) {\n var isDifferent = textNode.nodeValue !== text;\n return isDifferent;\n}\nfunction warnForUnmatchedText(textNode, text) {\n {\n warnForTextDifference(textNode.nodeValue, text);\n }\n}\nfunction warnForDeletedHydratableElement(parentNode, child) {\n {\n if (didWarnInvalidHydration) {\n return;\n }\n\n didWarnInvalidHydration = true;\n\n error('Did not expect server HTML to contain a <%s> in <%s>.', child.nodeName.toLowerCase(), parentNode.nodeName.toLowerCase());\n }\n}\nfunction warnForDeletedHydratableText(parentNode, child) {\n {\n if (didWarnInvalidHydration) {\n return;\n }\n\n didWarnInvalidHydration = true;\n\n error('Did not expect server HTML to contain the text node \"%s\" in <%s>.', child.nodeValue, parentNode.nodeName.toLowerCase());\n }\n}\nfunction warnForInsertedHydratedElement(parentNode, tag, props) {\n {\n if (didWarnInvalidHydration) {\n return;\n }\n\n didWarnInvalidHydration = true;\n\n error('Expected server HTML to contain a matching <%s> in <%s>.', tag, parentNode.nodeName.toLowerCase());\n }\n}\nfunction warnForInsertedHydratedText(parentNode, text) {\n {\n if (text === '') {\n // We expect to insert empty text nodes since they're not represented in\n // the HTML.\n // TODO: Remove this special case if we can just avoid inserting empty\n // text nodes.\n return;\n }\n\n if (didWarnInvalidHydration) {\n return;\n }\n\n didWarnInvalidHydration = true;\n\n error('Expected server HTML to contain a matching text node for \"%s\" in <%s>.', text, parentNode.nodeName.toLowerCase());\n }\n}\nfunction restoreControlledState$3(domElement, tag, props) {\n switch (tag) {\n case 'input':\n restoreControlledState(domElement, props);\n return;\n\n case 'textarea':\n restoreControlledState$2(domElement, props);\n return;\n\n case 'select':\n restoreControlledState$1(domElement, props);\n return;\n }\n}\n\nvar validateDOMNesting = function () {};\n\nvar updatedAncestorInfo = function () {};\n\n{\n // This validation code was written based on the HTML5 parsing spec:\n // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope\n //\n // Note: this does not catch all invalid nesting, nor does it try to (as it's\n // not clear what practical benefit doing so provides); instead, we warn only\n // for cases where the parser will give a parse tree differing from what React\n // intended. For example, <b><div></div></b> is invalid but we don't warn\n // because it still parses correctly; we do warn for other cases like nested\n // <p> tags where the beginning of the second element implicitly closes the\n // first, causing a confusing mess.\n // https://html.spec.whatwg.org/multipage/syntax.html#special\n var specialTags = ['address', 'applet', 'area', 'article', 'aside', 'base', 'basefont', 'bgsound', 'blockquote', 'body', 'br', 'button', 'caption', 'center', 'col', 'colgroup', 'dd', 'details', 'dir', 'div', 'dl', 'dt', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'frame', 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'iframe', 'img', 'input', 'isindex', 'li', 'link', 'listing', 'main', 'marquee', 'menu', 'menuitem', 'meta', 'nav', 'noembed', 'noframes', 'noscript', 'object', 'ol', 'p', 'param', 'plaintext', 'pre', 'script', 'section', 'select', 'source', 'style', 'summary', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'title', 'tr', 'track', 'ul', 'wbr', 'xmp']; // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope\n\n var inScopeTags = ['applet', 'caption', 'html', 'table', 'td', 'th', 'marquee', 'object', 'template', // https://html.spec.whatwg.org/multipage/syntax.html#html-integration-point\n // TODO: Distinguish by namespace here -- for <title>, including it here\n // errs on the side of fewer warnings\n 'foreignObject', 'desc', 'title']; // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-button-scope\n\n var buttonScopeTags = inScopeTags.concat(['button']); // https://html.spec.whatwg.org/multipage/syntax.html#generate-implied-end-tags\n\n var impliedEndTags = ['dd', 'dt', 'li', 'option', 'optgroup', 'p', 'rp', 'rt'];\n var emptyAncestorInfo = {\n current: null,\n formTag: null,\n aTagInScope: null,\n buttonTagInScope: null,\n nobrTagInScope: null,\n pTagInButtonScope: null,\n listItemTagAutoclosing: null,\n dlItemTagAutoclosing: null\n };\n\n updatedAncestorInfo = function (oldInfo, tag) {\n var ancestorInfo = _assign({}, oldInfo || emptyAncestorInfo);\n\n var info = {\n tag: tag\n };\n\n if (inScopeTags.indexOf(tag) !== -1) {\n ancestorInfo.aTagInScope = null;\n ancestorInfo.buttonTagInScope = null;\n ancestorInfo.nobrTagInScope = null;\n }\n\n if (buttonScopeTags.indexOf(tag) !== -1) {\n ancestorInfo.pTagInButtonScope = null;\n } // See rules for 'li', 'dd', 'dt' start tags in\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody\n\n\n if (specialTags.indexOf(tag) !== -1 && tag !== 'address' && tag !== 'div' && tag !== 'p') {\n ancestorInfo.listItemTagAutoclosing = null;\n ancestorInfo.dlItemTagAutoclosing = null;\n }\n\n ancestorInfo.current = info;\n\n if (tag === 'form') {\n ancestorInfo.formTag = info;\n }\n\n if (tag === 'a') {\n ancestorInfo.aTagInScope = info;\n }\n\n if (tag === 'button') {\n ancestorInfo.buttonTagInScope = info;\n }\n\n if (tag === 'nobr') {\n ancestorInfo.nobrTagInScope = info;\n }\n\n if (tag === 'p') {\n ancestorInfo.pTagInButtonScope = info;\n }\n\n if (tag === 'li') {\n ancestorInfo.listItemTagAutoclosing = info;\n }\n\n if (tag === 'dd' || tag === 'dt') {\n ancestorInfo.dlItemTagAutoclosing = info;\n }\n\n return ancestorInfo;\n };\n /**\n * Returns whether\n */\n\n\n var isTagValidWithParent = function (tag, parentTag) {\n // First, let's check if we're in an unusual parsing mode...\n switch (parentTag) {\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inselect\n case 'select':\n return tag === 'option' || tag === 'optgroup' || tag === '#text';\n\n case 'optgroup':\n return tag === 'option' || tag === '#text';\n // Strictly speaking, seeing an <option> doesn't mean we're in a <select>\n // but\n\n case 'option':\n return tag === '#text';\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intd\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incaption\n // No special behavior since these rules fall back to \"in body\" mode for\n // all except special table nodes which cause bad parsing behavior anyway.\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intr\n\n case 'tr':\n return tag === 'th' || tag === 'td' || tag === 'style' || tag === 'script' || tag === 'template';\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intbody\n\n case 'tbody':\n case 'thead':\n case 'tfoot':\n return tag === 'tr' || tag === 'style' || tag === 'script' || tag === 'template';\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incolgroup\n\n case 'colgroup':\n return tag === 'col' || tag === 'template';\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intable\n\n case 'table':\n return tag === 'caption' || tag === 'colgroup' || tag === 'tbody' || tag === 'tfoot' || tag === 'thead' || tag === 'style' || tag === 'script' || tag === 'template';\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inhead\n\n case 'head':\n return tag === 'base' || tag === 'basefont' || tag === 'bgsound' || tag === 'link' || tag === 'meta' || tag === 'title' || tag === 'noscript' || tag === 'noframes' || tag === 'style' || tag === 'script' || tag === 'template';\n // https://html.spec.whatwg.org/multipage/semantics.html#the-html-element\n\n case 'html':\n return tag === 'head' || tag === 'body' || tag === 'frameset';\n\n case 'frameset':\n return tag === 'frame';\n\n case '#document':\n return tag === 'html';\n } // Probably in the \"in body\" parsing mode, so we outlaw only tag combos\n // where the parsing rules cause implicit opens or closes to be added.\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody\n\n\n switch (tag) {\n case 'h1':\n case 'h2':\n case 'h3':\n case 'h4':\n case 'h5':\n case 'h6':\n return parentTag !== 'h1' && parentTag !== 'h2' && parentTag !== 'h3' && parentTag !== 'h4' && parentTag !== 'h5' && parentTag !== 'h6';\n\n case 'rp':\n case 'rt':\n return impliedEndTags.indexOf(parentTag) === -1;\n\n case 'body':\n case 'caption':\n case 'col':\n case 'colgroup':\n case 'frameset':\n case 'frame':\n case 'head':\n case 'html':\n case 'tbody':\n case 'td':\n case 'tfoot':\n case 'th':\n case 'thead':\n case 'tr':\n // These tags are only valid with a few parents that have special child\n // parsing rules -- if we're down here, then none of those matched and\n // so we allow it only if we don't know what the parent is, as all other\n // cases are invalid.\n return parentTag == null;\n }\n\n return true;\n };\n /**\n * Returns whether\n */\n\n\n var findInvalidAncestorForTag = function (tag, ancestorInfo) {\n switch (tag) {\n case 'address':\n case 'article':\n case 'aside':\n case 'blockquote':\n case 'center':\n case 'details':\n case 'dialog':\n case 'dir':\n case 'div':\n case 'dl':\n case 'fieldset':\n case 'figcaption':\n case 'figure':\n case 'footer':\n case 'header':\n case 'hgroup':\n case 'main':\n case 'menu':\n case 'nav':\n case 'ol':\n case 'p':\n case 'section':\n case 'summary':\n case 'ul':\n case 'pre':\n case 'listing':\n case 'table':\n case 'hr':\n case 'xmp':\n case 'h1':\n case 'h2':\n case 'h3':\n case 'h4':\n case 'h5':\n case 'h6':\n return ancestorInfo.pTagInButtonScope;\n\n case 'form':\n return ancestorInfo.formTag || ancestorInfo.pTagInButtonScope;\n\n case 'li':\n return ancestorInfo.listItemTagAutoclosing;\n\n case 'dd':\n case 'dt':\n return ancestorInfo.dlItemTagAutoclosing;\n\n case 'button':\n return ancestorInfo.buttonTagInScope;\n\n case 'a':\n // Spec says something about storing a list of markers, but it sounds\n // equivalent to this check.\n return ancestorInfo.aTagInScope;\n\n case 'nobr':\n return ancestorInfo.nobrTagInScope;\n }\n\n return null;\n };\n\n var didWarn$1 = {};\n\n validateDOMNesting = function (childTag, childText, ancestorInfo) {\n ancestorInfo = ancestorInfo || emptyAncestorInfo;\n var parentInfo = ancestorInfo.current;\n var parentTag = parentInfo && parentInfo.tag;\n\n if (childText != null) {\n if (childTag != null) {\n error('validateDOMNesting: when childText is passed, childTag should be null');\n }\n\n childTag = '#text';\n }\n\n var invalidParent = isTagValidWithParent(childTag, parentTag) ? null : parentInfo;\n var invalidAncestor = invalidParent ? null : findInvalidAncestorForTag(childTag, ancestorInfo);\n var invalidParentOrAncestor = invalidParent || invalidAncestor;\n\n if (!invalidParentOrAncestor) {\n return;\n }\n\n var ancestorTag = invalidParentOrAncestor.tag;\n var warnKey = !!invalidParent + '|' + childTag + '|' + ancestorTag;\n\n if (didWarn$1[warnKey]) {\n return;\n }\n\n didWarn$1[warnKey] = true;\n var tagDisplayName = childTag;\n var whitespaceInfo = '';\n\n if (childTag === '#text') {\n if (/\\S/.test(childText)) {\n tagDisplayName = 'Text nodes';\n } else {\n tagDisplayName = 'Whitespace text nodes';\n whitespaceInfo = \" Make sure you don't have any extra whitespace between tags on \" + 'each line of your source code.';\n }\n } else {\n tagDisplayName = '<' + childTag + '>';\n }\n\n if (invalidParent) {\n var info = '';\n\n if (ancestorTag === 'table' && childTag === 'tr') {\n info += ' Add a <tbody>, <thead> or <tfoot> to your code to match the DOM tree generated by ' + 'the browser.';\n }\n\n error('validateDOMNesting(...): %s cannot appear as a child of <%s>.%s%s', tagDisplayName, ancestorTag, whitespaceInfo, info);\n } else {\n error('validateDOMNesting(...): %s cannot appear as a descendant of ' + '<%s>.', tagDisplayName, ancestorTag);\n }\n };\n}\n\nvar SUPPRESS_HYDRATION_WARNING$1;\n\n{\n SUPPRESS_HYDRATION_WARNING$1 = 'suppressHydrationWarning';\n}\n\nvar SUSPENSE_START_DATA = '$';\nvar SUSPENSE_END_DATA = '/$';\nvar SUSPENSE_PENDING_START_DATA = '$?';\nvar SUSPENSE_FALLBACK_START_DATA = '$!';\nvar STYLE$1 = 'style';\nvar eventsEnabled = null;\nvar selectionInformation = null;\n\nfunction shouldAutoFocusHostComponent(type, props) {\n switch (type) {\n case 'button':\n case 'input':\n case 'select':\n case 'textarea':\n return !!props.autoFocus;\n }\n\n return false;\n}\nfunction getRootHostContext(rootContainerInstance) {\n var type;\n var namespace;\n var nodeType = rootContainerInstance.nodeType;\n\n switch (nodeType) {\n case DOCUMENT_NODE:\n case DOCUMENT_FRAGMENT_NODE:\n {\n type = nodeType === DOCUMENT_NODE ? '#document' : '#fragment';\n var root = rootContainerInstance.documentElement;\n namespace = root ? root.namespaceURI : getChildNamespace(null, '');\n break;\n }\n\n default:\n {\n var container = nodeType === COMMENT_NODE ? rootContainerInstance.parentNode : rootContainerInstance;\n var ownNamespace = container.namespaceURI || null;\n type = container.tagName;\n namespace = getChildNamespace(ownNamespace, type);\n break;\n }\n }\n\n {\n var validatedTag = type.toLowerCase();\n var ancestorInfo = updatedAncestorInfo(null, validatedTag);\n return {\n namespace: namespace,\n ancestorInfo: ancestorInfo\n };\n }\n}\nfunction getChildHostContext(parentHostContext, type, rootContainerInstance) {\n {\n var parentHostContextDev = parentHostContext;\n var namespace = getChildNamespace(parentHostContextDev.namespace, type);\n var ancestorInfo = updatedAncestorInfo(parentHostContextDev.ancestorInfo, type);\n return {\n namespace: namespace,\n ancestorInfo: ancestorInfo\n };\n }\n}\nfunction getPublicInstance(instance) {\n return instance;\n}\nfunction prepareForCommit(containerInfo) {\n eventsEnabled = isEnabled();\n selectionInformation = getSelectionInformation();\n var activeInstance = null;\n\n setEnabled(false);\n return activeInstance;\n}\nfunction resetAfterCommit(containerInfo) {\n restoreSelection(selectionInformation);\n setEnabled(eventsEnabled);\n eventsEnabled = null;\n selectionInformation = null;\n}\nfunction createInstance(type, props, rootContainerInstance, hostContext, internalInstanceHandle) {\n var parentNamespace;\n\n {\n // TODO: take namespace into account when validating.\n var hostContextDev = hostContext;\n validateDOMNesting(type, null, hostContextDev.ancestorInfo);\n\n if (typeof props.children === 'string' || typeof props.children === 'number') {\n var string = '' + props.children;\n var ownAncestorInfo = updatedAncestorInfo(hostContextDev.ancestorInfo, type);\n validateDOMNesting(null, string, ownAncestorInfo);\n }\n\n parentNamespace = hostContextDev.namespace;\n }\n\n var domElement = createElement(type, props, rootContainerInstance, parentNamespace);\n precacheFiberNode(internalInstanceHandle, domElement);\n updateFiberProps(domElement, props);\n return domElement;\n}\nfunction appendInitialChild(parentInstance, child) {\n parentInstance.appendChild(child);\n}\nfunction finalizeInitialChildren(domElement, type, props, rootContainerInstance, hostContext) {\n setInitialProperties(domElement, type, props, rootContainerInstance);\n return shouldAutoFocusHostComponent(type, props);\n}\nfunction prepareUpdate(domElement, type, oldProps, newProps, rootContainerInstance, hostContext) {\n {\n var hostContextDev = hostContext;\n\n if (typeof newProps.children !== typeof oldProps.children && (typeof newProps.children === 'string' || typeof newProps.children === 'number')) {\n var string = '' + newProps.children;\n var ownAncestorInfo = updatedAncestorInfo(hostContextDev.ancestorInfo, type);\n validateDOMNesting(null, string, ownAncestorInfo);\n }\n }\n\n return diffProperties(domElement, type, oldProps, newProps);\n}\nfunction shouldSetTextContent(type, props) {\n return type === 'textarea' || type === 'option' || type === 'noscript' || typeof props.children === 'string' || typeof props.children === 'number' || typeof props.dangerouslySetInnerHTML === 'object' && props.dangerouslySetInnerHTML !== null && props.dangerouslySetInnerHTML.__html != null;\n}\nfunction createTextInstance(text, rootContainerInstance, hostContext, internalInstanceHandle) {\n {\n var hostContextDev = hostContext;\n validateDOMNesting(null, text, hostContextDev.ancestorInfo);\n }\n\n var textNode = createTextNode(text, rootContainerInstance);\n precacheFiberNode(internalInstanceHandle, textNode);\n return textNode;\n}\n// if a component just imports ReactDOM (e.g. for findDOMNode).\n// Some environments might not have setTimeout or clearTimeout.\n\nvar scheduleTimeout = typeof setTimeout === 'function' ? setTimeout : undefined;\nvar cancelTimeout = typeof clearTimeout === 'function' ? clearTimeout : undefined;\nvar noTimeout = -1; // -------------------\nfunction commitMount(domElement, type, newProps, internalInstanceHandle) {\n // Despite the naming that might imply otherwise, this method only\n // fires if there is an `Update` effect scheduled during mounting.\n // This happens if `finalizeInitialChildren` returns `true` (which it\n // does to implement the `autoFocus` attribute on the client). But\n // there are also other cases when this might happen (such as patching\n // up text content during hydration mismatch). So we'll check this again.\n if (shouldAutoFocusHostComponent(type, newProps)) {\n domElement.focus();\n }\n}\nfunction commitUpdate(domElement, updatePayload, type, oldProps, newProps, internalInstanceHandle) {\n // Update the props handle so that we know which props are the ones with\n // with current event handlers.\n updateFiberProps(domElement, newProps); // Apply the diff to the DOM node.\n\n updateProperties(domElement, updatePayload, type, oldProps, newProps);\n}\nfunction resetTextContent(domElement) {\n setTextContent(domElement, '');\n}\nfunction commitTextUpdate(textInstance, oldText, newText) {\n textInstance.nodeValue = newText;\n}\nfunction appendChild(parentInstance, child) {\n parentInstance.appendChild(child);\n}\nfunction appendChildToContainer(container, child) {\n var parentNode;\n\n if (container.nodeType === COMMENT_NODE) {\n parentNode = container.parentNode;\n parentNode.insertBefore(child, container);\n } else {\n parentNode = container;\n parentNode.appendChild(child);\n } // This container might be used for a portal.\n // If something inside a portal is clicked, that click should bubble\n // through the React tree. However, on Mobile Safari the click would\n // never bubble through the *DOM* tree unless an ancestor with onclick\n // event exists. So we wouldn't see it and dispatch it.\n // This is why we ensure that non React root containers have inline onclick\n // defined.\n // https://github.com/facebook/react/issues/11918\n\n\n var reactRootContainer = container._reactRootContainer;\n\n if ((reactRootContainer === null || reactRootContainer === undefined) && parentNode.onclick === null) {\n // TODO: This cast may not be sound for SVG, MathML or custom elements.\n trapClickOnNonInteractiveElement(parentNode);\n }\n}\nfunction insertBefore(parentInstance, child, beforeChild) {\n parentInstance.insertBefore(child, beforeChild);\n}\nfunction insertInContainerBefore(container, child, beforeChild) {\n if (container.nodeType === COMMENT_NODE) {\n container.parentNode.insertBefore(child, beforeChild);\n } else {\n container.insertBefore(child, beforeChild);\n }\n}\n\nfunction removeChild(parentInstance, child) {\n parentInstance.removeChild(child);\n}\nfunction removeChildFromContainer(container, child) {\n if (container.nodeType === COMMENT_NODE) {\n container.parentNode.removeChild(child);\n } else {\n container.removeChild(child);\n }\n}\nfunction hideInstance(instance) {\n // TODO: Does this work for all element types? What about MathML? Should we\n // pass host context to this method?\n instance = instance;\n var style = instance.style;\n\n if (typeof style.setProperty === 'function') {\n style.setProperty('display', 'none', 'important');\n } else {\n style.display = 'none';\n }\n}\nfunction hideTextInstance(textInstance) {\n textInstance.nodeValue = '';\n}\nfunction unhideInstance(instance, props) {\n instance = instance;\n var styleProp = props[STYLE$1];\n var display = styleProp !== undefined && styleProp !== null && styleProp.hasOwnProperty('display') ? styleProp.display : null;\n instance.style.display = dangerousStyleValue('display', display);\n}\nfunction unhideTextInstance(textInstance, text) {\n textInstance.nodeValue = text;\n}\nfunction clearContainer(container) {\n if (container.nodeType === ELEMENT_NODE) {\n container.textContent = '';\n } else if (container.nodeType === DOCUMENT_NODE) {\n var body = container.body;\n\n if (body != null) {\n body.textContent = '';\n }\n }\n} // -------------------\nfunction canHydrateInstance(instance, type, props) {\n if (instance.nodeType !== ELEMENT_NODE || type.toLowerCase() !== instance.nodeName.toLowerCase()) {\n return null;\n } // This has now been refined to an element node.\n\n\n return instance;\n}\nfunction canHydrateTextInstance(instance, text) {\n if (text === '' || instance.nodeType !== TEXT_NODE) {\n // Empty strings are not parsed by HTML so there won't be a correct match here.\n return null;\n } // This has now been refined to a text node.\n\n\n return instance;\n}\nfunction isSuspenseInstancePending(instance) {\n return instance.data === SUSPENSE_PENDING_START_DATA;\n}\nfunction isSuspenseInstanceFallback(instance) {\n return instance.data === SUSPENSE_FALLBACK_START_DATA;\n}\n\nfunction getNextHydratable(node) {\n // Skip non-hydratable nodes.\n for (; node != null; node = node.nextSibling) {\n var nodeType = node.nodeType;\n\n if (nodeType === ELEMENT_NODE || nodeType === TEXT_NODE) {\n break;\n }\n }\n\n return node;\n}\n\nfunction getNextHydratableSibling(instance) {\n return getNextHydratable(instance.nextSibling);\n}\nfunction getFirstHydratableChild(parentInstance) {\n return getNextHydratable(parentInstance.firstChild);\n}\nfunction hydrateInstance(instance, type, props, rootContainerInstance, hostContext, internalInstanceHandle) {\n precacheFiberNode(internalInstanceHandle, instance); // TODO: Possibly defer this until the commit phase where all the events\n // get attached.\n\n updateFiberProps(instance, props);\n var parentNamespace;\n\n {\n var hostContextDev = hostContext;\n parentNamespace = hostContextDev.namespace;\n }\n\n return diffHydratedProperties(instance, type, props, parentNamespace);\n}\nfunction hydrateTextInstance(textInstance, text, internalInstanceHandle) {\n precacheFiberNode(internalInstanceHandle, textInstance);\n return diffHydratedText(textInstance, text);\n}\nfunction getNextHydratableInstanceAfterSuspenseInstance(suspenseInstance) {\n var node = suspenseInstance.nextSibling; // Skip past all nodes within this suspense boundary.\n // There might be nested nodes so we need to keep track of how\n // deep we are and only break out when we're back on top.\n\n var depth = 0;\n\n while (node) {\n if (node.nodeType === COMMENT_NODE) {\n var data = node.data;\n\n if (data === SUSPENSE_END_DATA) {\n if (depth === 0) {\n return getNextHydratableSibling(node);\n } else {\n depth--;\n }\n } else if (data === SUSPENSE_START_DATA || data === SUSPENSE_FALLBACK_START_DATA || data === SUSPENSE_PENDING_START_DATA) {\n depth++;\n }\n }\n\n node = node.nextSibling;\n } // TODO: Warn, we didn't find the end comment boundary.\n\n\n return null;\n} // Returns the SuspenseInstance if this node is a direct child of a\n// SuspenseInstance. I.e. if its previous sibling is a Comment with\n// SUSPENSE_x_START_DATA. Otherwise, null.\n\nfunction getParentSuspenseInstance(targetInstance) {\n var node = targetInstance.previousSibling; // Skip past all nodes within this suspense boundary.\n // There might be nested nodes so we need to keep track of how\n // deep we are and only break out when we're back on top.\n\n var depth = 0;\n\n while (node) {\n if (node.nodeType === COMMENT_NODE) {\n var data = node.data;\n\n if (data === SUSPENSE_START_DATA || data === SUSPENSE_FALLBACK_START_DATA || data === SUSPENSE_PENDING_START_DATA) {\n if (depth === 0) {\n return node;\n } else {\n depth--;\n }\n } else if (data === SUSPENSE_END_DATA) {\n depth++;\n }\n }\n\n node = node.previousSibling;\n }\n\n return null;\n}\nfunction commitHydratedContainer(container) {\n // Retry if any event replaying was blocked on this.\n retryIfBlockedOn(container);\n}\nfunction commitHydratedSuspenseInstance(suspenseInstance) {\n // Retry if any event replaying was blocked on this.\n retryIfBlockedOn(suspenseInstance);\n}\nfunction didNotMatchHydratedContainerTextInstance(parentContainer, textInstance, text) {\n {\n warnForUnmatchedText(textInstance, text);\n }\n}\nfunction didNotMatchHydratedTextInstance(parentType, parentProps, parentInstance, textInstance, text) {\n if ( parentProps[SUPPRESS_HYDRATION_WARNING$1] !== true) {\n warnForUnmatchedText(textInstance, text);\n }\n}\nfunction didNotHydrateContainerInstance(parentContainer, instance) {\n {\n if (instance.nodeType === ELEMENT_NODE) {\n warnForDeletedHydratableElement(parentContainer, instance);\n } else if (instance.nodeType === COMMENT_NODE) ; else {\n warnForDeletedHydratableText(parentContainer, instance);\n }\n }\n}\nfunction didNotHydrateInstance(parentType, parentProps, parentInstance, instance) {\n if ( parentProps[SUPPRESS_HYDRATION_WARNING$1] !== true) {\n if (instance.nodeType === ELEMENT_NODE) {\n warnForDeletedHydratableElement(parentInstance, instance);\n } else if (instance.nodeType === COMMENT_NODE) ; else {\n warnForDeletedHydratableText(parentInstance, instance);\n }\n }\n}\nfunction didNotFindHydratableContainerInstance(parentContainer, type, props) {\n {\n warnForInsertedHydratedElement(parentContainer, type);\n }\n}\nfunction didNotFindHydratableContainerTextInstance(parentContainer, text) {\n {\n warnForInsertedHydratedText(parentContainer, text);\n }\n}\nfunction didNotFindHydratableInstance(parentType, parentProps, parentInstance, type, props) {\n if ( parentProps[SUPPRESS_HYDRATION_WARNING$1] !== true) {\n warnForInsertedHydratedElement(parentInstance, type);\n }\n}\nfunction didNotFindHydratableTextInstance(parentType, parentProps, parentInstance, text) {\n if ( parentProps[SUPPRESS_HYDRATION_WARNING$1] !== true) {\n warnForInsertedHydratedText(parentInstance, text);\n }\n}\nfunction didNotFindHydratableSuspenseInstance(parentType, parentProps, parentInstance) {\n if ( parentProps[SUPPRESS_HYDRATION_WARNING$1] !== true) ;\n}\nvar clientId = 0;\nfunction makeClientIdInDEV(warnOnAccessInDEV) {\n var id = 'r:' + (clientId++).toString(36);\n return {\n toString: function () {\n warnOnAccessInDEV();\n return id;\n },\n valueOf: function () {\n warnOnAccessInDEV();\n return id;\n }\n };\n}\nfunction isOpaqueHydratingObject(value) {\n return value !== null && typeof value === 'object' && value.$$typeof === REACT_OPAQUE_ID_TYPE;\n}\nfunction makeOpaqueHydratingObject(attemptToReadValue) {\n return {\n $$typeof: REACT_OPAQUE_ID_TYPE,\n toString: attemptToReadValue,\n valueOf: attemptToReadValue\n };\n}\nfunction preparePortalMount(portalInstance) {\n {\n listenToAllSupportedEvents(portalInstance);\n }\n}\n\nvar randomKey = Math.random().toString(36).slice(2);\nvar internalInstanceKey = '__reactFiber$' + randomKey;\nvar internalPropsKey = '__reactProps$' + randomKey;\nvar internalContainerInstanceKey = '__reactContainer$' + randomKey;\nvar internalEventHandlersKey = '__reactEvents$' + randomKey;\nfunction precacheFiberNode(hostInst, node) {\n node[internalInstanceKey] = hostInst;\n}\nfunction markContainerAsRoot(hostRoot, node) {\n node[internalContainerInstanceKey] = hostRoot;\n}\nfunction unmarkContainerAsRoot(node) {\n node[internalContainerInstanceKey] = null;\n}\nfunction isContainerMarkedAsRoot(node) {\n return !!node[internalContainerInstanceKey];\n} // Given a DOM node, return the closest HostComponent or HostText fiber ancestor.\n// If the target node is part of a hydrated or not yet rendered subtree, then\n// this may also return a SuspenseComponent or HostRoot to indicate that.\n// Conceptually the HostRoot fiber is a child of the Container node. So if you\n// pass the Container node as the targetNode, you will not actually get the\n// HostRoot back. To get to the HostRoot, you need to pass a child of it.\n// The same thing applies to Suspense boundaries.\n\nfunction getClosestInstanceFromNode(targetNode) {\n var targetInst = targetNode[internalInstanceKey];\n\n if (targetInst) {\n // Don't return HostRoot or SuspenseComponent here.\n return targetInst;\n } // If the direct event target isn't a React owned DOM node, we need to look\n // to see if one of its parents is a React owned DOM node.\n\n\n var parentNode = targetNode.parentNode;\n\n while (parentNode) {\n // We'll check if this is a container root that could include\n // React nodes in the future. We need to check this first because\n // if we're a child of a dehydrated container, we need to first\n // find that inner container before moving on to finding the parent\n // instance. Note that we don't check this field on the targetNode\n // itself because the fibers are conceptually between the container\n // node and the first child. It isn't surrounding the container node.\n // If it's not a container, we check if it's an instance.\n targetInst = parentNode[internalContainerInstanceKey] || parentNode[internalInstanceKey];\n\n if (targetInst) {\n // Since this wasn't the direct target of the event, we might have\n // stepped past dehydrated DOM nodes to get here. However they could\n // also have been non-React nodes. We need to answer which one.\n // If we the instance doesn't have any children, then there can't be\n // a nested suspense boundary within it. So we can use this as a fast\n // bailout. Most of the time, when people add non-React children to\n // the tree, it is using a ref to a child-less DOM node.\n // Normally we'd only need to check one of the fibers because if it\n // has ever gone from having children to deleting them or vice versa\n // it would have deleted the dehydrated boundary nested inside already.\n // However, since the HostRoot starts out with an alternate it might\n // have one on the alternate so we need to check in case this was a\n // root.\n var alternate = targetInst.alternate;\n\n if (targetInst.child !== null || alternate !== null && alternate.child !== null) {\n // Next we need to figure out if the node that skipped past is\n // nested within a dehydrated boundary and if so, which one.\n var suspenseInstance = getParentSuspenseInstance(targetNode);\n\n while (suspenseInstance !== null) {\n // We found a suspense instance. That means that we haven't\n // hydrated it yet. Even though we leave the comments in the\n // DOM after hydrating, and there are boundaries in the DOM\n // that could already be hydrated, we wouldn't have found them\n // through this pass since if the target is hydrated it would\n // have had an internalInstanceKey on it.\n // Let's get the fiber associated with the SuspenseComponent\n // as the deepest instance.\n var targetSuspenseInst = suspenseInstance[internalInstanceKey];\n\n if (targetSuspenseInst) {\n return targetSuspenseInst;\n } // If we don't find a Fiber on the comment, it might be because\n // we haven't gotten to hydrate it yet. There might still be a\n // parent boundary that hasn't above this one so we need to find\n // the outer most that is known.\n\n\n suspenseInstance = getParentSuspenseInstance(suspenseInstance); // If we don't find one, then that should mean that the parent\n // host component also hasn't hydrated yet. We can return it\n // below since it will bail out on the isMounted check later.\n }\n }\n\n return targetInst;\n }\n\n targetNode = parentNode;\n parentNode = targetNode.parentNode;\n }\n\n return null;\n}\n/**\n * Given a DOM node, return the ReactDOMComponent or ReactDOMTextComponent\n * instance, or null if the node was not rendered by this React.\n */\n\nfunction getInstanceFromNode(node) {\n var inst = node[internalInstanceKey] || node[internalContainerInstanceKey];\n\n if (inst) {\n if (inst.tag === HostComponent || inst.tag === HostText || inst.tag === SuspenseComponent || inst.tag === HostRoot) {\n return inst;\n } else {\n return null;\n }\n }\n\n return null;\n}\n/**\n * Given a ReactDOMComponent or ReactDOMTextComponent, return the corresponding\n * DOM node.\n */\n\nfunction getNodeFromInstance(inst) {\n if (inst.tag === HostComponent || inst.tag === HostText) {\n // In Fiber this, is just the state node right now. We assume it will be\n // a host component or host text.\n return inst.stateNode;\n } // Without this first invariant, passing a non-DOM-component triggers the next\n // invariant for a missing parent, which is super confusing.\n\n\n {\n {\n throw Error( \"getNodeFromInstance: Invalid argument.\" );\n }\n }\n}\nfunction getFiberCurrentPropsFromNode(node) {\n return node[internalPropsKey] || null;\n}\nfunction updateFiberProps(node, props) {\n node[internalPropsKey] = props;\n}\nfunction getEventListenerSet(node) {\n var elementListenerSet = node[internalEventHandlersKey];\n\n if (elementListenerSet === undefined) {\n elementListenerSet = node[internalEventHandlersKey] = new Set();\n }\n\n return elementListenerSet;\n}\n\nvar loggedTypeFailures = {};\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n }\n }\n}\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\n {\n // $FlowFixMe This is okay but Flow doesn't know it.\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n } catch (ex) {\n error$1 = ex;\n }\n\n if (error$1 && !(error$1 instanceof Error)) {\n setCurrentlyValidatingElement(element);\n\n error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n\n setCurrentlyValidatingElement(null);\n }\n\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error$1.message] = true;\n setCurrentlyValidatingElement(element);\n\n error('Failed %s type: %s', location, error$1.message);\n\n setCurrentlyValidatingElement(null);\n }\n }\n }\n }\n}\n\nvar valueStack = [];\nvar fiberStack;\n\n{\n fiberStack = [];\n}\n\nvar index = -1;\n\nfunction createCursor(defaultValue) {\n return {\n current: defaultValue\n };\n}\n\nfunction pop(cursor, fiber) {\n if (index < 0) {\n {\n error('Unexpected pop.');\n }\n\n return;\n }\n\n {\n if (fiber !== fiberStack[index]) {\n error('Unexpected Fiber popped.');\n }\n }\n\n cursor.current = valueStack[index];\n valueStack[index] = null;\n\n {\n fiberStack[index] = null;\n }\n\n index--;\n}\n\nfunction push(cursor, value, fiber) {\n index++;\n valueStack[index] = cursor.current;\n\n {\n fiberStack[index] = fiber;\n }\n\n cursor.current = value;\n}\n\nvar warnedAboutMissingGetChildContext;\n\n{\n warnedAboutMissingGetChildContext = {};\n}\n\nvar emptyContextObject = {};\n\n{\n Object.freeze(emptyContextObject);\n} // A cursor to the current merged context object on the stack.\n\n\nvar contextStackCursor = createCursor(emptyContextObject); // A cursor to a boolean indicating whether the context has changed.\n\nvar didPerformWorkStackCursor = createCursor(false); // Keep track of the previous context object that was on the stack.\n// We use this to get access to the parent context after we have already\n// pushed the next context provider, and now need to merge their contexts.\n\nvar previousContext = emptyContextObject;\n\nfunction getUnmaskedContext(workInProgress, Component, didPushOwnContextIfProvider) {\n {\n if (didPushOwnContextIfProvider && isContextProvider(Component)) {\n // If the fiber is a context provider itself, when we read its context\n // we may have already pushed its own child context on the stack. A context\n // provider should not \"see\" its own child context. Therefore we read the\n // previous (parent) context instead for a context provider.\n return previousContext;\n }\n\n return contextStackCursor.current;\n }\n}\n\nfunction cacheContext(workInProgress, unmaskedContext, maskedContext) {\n {\n var instance = workInProgress.stateNode;\n instance.__reactInternalMemoizedUnmaskedChildContext = unmaskedContext;\n instance.__reactInternalMemoizedMaskedChildContext = maskedContext;\n }\n}\n\nfunction getMaskedContext(workInProgress, unmaskedContext) {\n {\n var type = workInProgress.type;\n var contextTypes = type.contextTypes;\n\n if (!contextTypes) {\n return emptyContextObject;\n } // Avoid recreating masked context unless unmasked context has changed.\n // Failing to do this will result in unnecessary calls to componentWillReceiveProps.\n // This may trigger infinite loops if componentWillReceiveProps calls setState.\n\n\n var instance = workInProgress.stateNode;\n\n if (instance && instance.__reactInternalMemoizedUnmaskedChildContext === unmaskedContext) {\n return instance.__reactInternalMemoizedMaskedChildContext;\n }\n\n var context = {};\n\n for (var key in contextTypes) {\n context[key] = unmaskedContext[key];\n }\n\n {\n var name = getComponentName(type) || 'Unknown';\n checkPropTypes(contextTypes, context, 'context', name);\n } // Cache unmasked context so we can avoid recreating masked context unless necessary.\n // Context is created before the class component is instantiated so check for instance.\n\n\n if (instance) {\n cacheContext(workInProgress, unmaskedContext, context);\n }\n\n return context;\n }\n}\n\nfunction hasContextChanged() {\n {\n return didPerformWorkStackCursor.current;\n }\n}\n\nfunction isContextProvider(type) {\n {\n var childContextTypes = type.childContextTypes;\n return childContextTypes !== null && childContextTypes !== undefined;\n }\n}\n\nfunction popContext(fiber) {\n {\n pop(didPerformWorkStackCursor, fiber);\n pop(contextStackCursor, fiber);\n }\n}\n\nfunction popTopLevelContextObject(fiber) {\n {\n pop(didPerformWorkStackCursor, fiber);\n pop(contextStackCursor, fiber);\n }\n}\n\nfunction pushTopLevelContextObject(fiber, context, didChange) {\n {\n if (!(contextStackCursor.current === emptyContextObject)) {\n {\n throw Error( \"Unexpected context found on stack. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n\n push(contextStackCursor, context, fiber);\n push(didPerformWorkStackCursor, didChange, fiber);\n }\n}\n\nfunction processChildContext(fiber, type, parentContext) {\n {\n var instance = fiber.stateNode;\n var childContextTypes = type.childContextTypes; // TODO (bvaughn) Replace this behavior with an invariant() in the future.\n // It has only been added in Fiber to match the (unintentional) behavior in Stack.\n\n if (typeof instance.getChildContext !== 'function') {\n {\n var componentName = getComponentName(type) || 'Unknown';\n\n if (!warnedAboutMissingGetChildContext[componentName]) {\n warnedAboutMissingGetChildContext[componentName] = true;\n\n error('%s.childContextTypes is specified but there is no getChildContext() method ' + 'on the instance. You can either define getChildContext() on %s or remove ' + 'childContextTypes from it.', componentName, componentName);\n }\n }\n\n return parentContext;\n }\n\n var childContext = instance.getChildContext();\n\n for (var contextKey in childContext) {\n if (!(contextKey in childContextTypes)) {\n {\n throw Error( (getComponentName(type) || 'Unknown') + \".getChildContext(): key \\\"\" + contextKey + \"\\\" is not defined in childContextTypes.\" );\n }\n }\n }\n\n {\n var name = getComponentName(type) || 'Unknown';\n checkPropTypes(childContextTypes, childContext, 'child context', name);\n }\n\n return _assign({}, parentContext, childContext);\n }\n}\n\nfunction pushContextProvider(workInProgress) {\n {\n var instance = workInProgress.stateNode; // We push the context as early as possible to ensure stack integrity.\n // If the instance does not exist yet, we will push null at first,\n // and replace it on the stack later when invalidating the context.\n\n var memoizedMergedChildContext = instance && instance.__reactInternalMemoizedMergedChildContext || emptyContextObject; // Remember the parent context so we can merge with it later.\n // Inherit the parent's did-perform-work value to avoid inadvertently blocking updates.\n\n previousContext = contextStackCursor.current;\n push(contextStackCursor, memoizedMergedChildContext, workInProgress);\n push(didPerformWorkStackCursor, didPerformWorkStackCursor.current, workInProgress);\n return true;\n }\n}\n\nfunction invalidateContextProvider(workInProgress, type, didChange) {\n {\n var instance = workInProgress.stateNode;\n\n if (!instance) {\n {\n throw Error( \"Expected to have an instance by this point. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n\n if (didChange) {\n // Merge parent and own context.\n // Skip this if we're not updating due to sCU.\n // This avoids unnecessarily recomputing memoized values.\n var mergedContext = processChildContext(workInProgress, type, previousContext);\n instance.__reactInternalMemoizedMergedChildContext = mergedContext; // Replace the old (or empty) context with the new one.\n // It is important to unwind the context in the reverse order.\n\n pop(didPerformWorkStackCursor, workInProgress);\n pop(contextStackCursor, workInProgress); // Now push the new context and mark that it has changed.\n\n push(contextStackCursor, mergedContext, workInProgress);\n push(didPerformWorkStackCursor, didChange, workInProgress);\n } else {\n pop(didPerformWorkStackCursor, workInProgress);\n push(didPerformWorkStackCursor, didChange, workInProgress);\n }\n }\n}\n\nfunction findCurrentUnmaskedContext(fiber) {\n {\n // Currently this is only used with renderSubtreeIntoContainer; not sure if it\n // makes sense elsewhere\n if (!(isFiberMounted(fiber) && fiber.tag === ClassComponent)) {\n {\n throw Error( \"Expected subtree parent to be a mounted class component. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n\n var node = fiber;\n\n do {\n switch (node.tag) {\n case HostRoot:\n return node.stateNode.context;\n\n case ClassComponent:\n {\n var Component = node.type;\n\n if (isContextProvider(Component)) {\n return node.stateNode.__reactInternalMemoizedMergedChildContext;\n }\n\n break;\n }\n }\n\n node = node.return;\n } while (node !== null);\n\n {\n {\n throw Error( \"Found unexpected detached subtree parent. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n }\n}\n\nvar LegacyRoot = 0;\nvar BlockingRoot = 1;\nvar ConcurrentRoot = 2;\n\nvar rendererID = null;\nvar injectedHook = null;\nvar hasLoggedError = false;\nvar isDevToolsPresent = typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined';\nfunction injectInternals(internals) {\n if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined') {\n // No DevTools\n return false;\n }\n\n var hook = __REACT_DEVTOOLS_GLOBAL_HOOK__;\n\n if (hook.isDisabled) {\n // This isn't a real property on the hook, but it can be set to opt out\n // of DevTools integration and associated warnings and logs.\n // https://github.com/facebook/react/issues/3877\n return true;\n }\n\n if (!hook.supportsFiber) {\n {\n error('The installed version of React DevTools is too old and will not work ' + 'with the current version of React. Please update React DevTools. ' + 'https://reactjs.org/link/react-devtools');\n } // DevTools exists, even though it doesn't support Fiber.\n\n\n return true;\n }\n\n try {\n rendererID = hook.inject(internals); // We have successfully injected, so now it is safe to set up hooks.\n\n injectedHook = hook;\n } catch (err) {\n // Catch all errors because it is unsafe to throw during initialization.\n {\n error('React instrumentation encountered an error: %s.', err);\n }\n } // DevTools exists\n\n\n return true;\n}\nfunction onScheduleRoot(root, children) {\n {\n if (injectedHook && typeof injectedHook.onScheduleFiberRoot === 'function') {\n try {\n injectedHook.onScheduleFiberRoot(rendererID, root, children);\n } catch (err) {\n if ( !hasLoggedError) {\n hasLoggedError = true;\n\n error('React instrumentation encountered an error: %s', err);\n }\n }\n }\n }\n}\nfunction onCommitRoot(root, priorityLevel) {\n if (injectedHook && typeof injectedHook.onCommitFiberRoot === 'function') {\n try {\n var didError = (root.current.flags & DidCapture) === DidCapture;\n\n if (enableProfilerTimer) {\n injectedHook.onCommitFiberRoot(rendererID, root, priorityLevel, didError);\n } else {\n injectedHook.onCommitFiberRoot(rendererID, root, undefined, didError);\n }\n } catch (err) {\n {\n if (!hasLoggedError) {\n hasLoggedError = true;\n\n error('React instrumentation encountered an error: %s', err);\n }\n }\n }\n }\n}\nfunction onCommitUnmount(fiber) {\n if (injectedHook && typeof injectedHook.onCommitFiberUnmount === 'function') {\n try {\n injectedHook.onCommitFiberUnmount(rendererID, fiber);\n } catch (err) {\n {\n if (!hasLoggedError) {\n hasLoggedError = true;\n\n error('React instrumentation encountered an error: %s', err);\n }\n }\n }\n }\n}\n\nvar Scheduler_runWithPriority = Scheduler.unstable_runWithPriority,\n Scheduler_scheduleCallback = Scheduler.unstable_scheduleCallback,\n Scheduler_cancelCallback = Scheduler.unstable_cancelCallback,\n Scheduler_shouldYield = Scheduler.unstable_shouldYield,\n Scheduler_requestPaint = Scheduler.unstable_requestPaint,\n Scheduler_now$1 = Scheduler.unstable_now,\n Scheduler_getCurrentPriorityLevel = Scheduler.unstable_getCurrentPriorityLevel,\n Scheduler_ImmediatePriority = Scheduler.unstable_ImmediatePriority,\n Scheduler_UserBlockingPriority = Scheduler.unstable_UserBlockingPriority,\n Scheduler_NormalPriority = Scheduler.unstable_NormalPriority,\n Scheduler_LowPriority = Scheduler.unstable_LowPriority,\n Scheduler_IdlePriority = Scheduler.unstable_IdlePriority;\n\n{\n // Provide explicit error message when production+profiling bundle of e.g.\n // react-dom is used with production (non-profiling) bundle of\n // scheduler/tracing\n if (!(tracing.__interactionsRef != null && tracing.__interactionsRef.current != null)) {\n {\n throw Error( \"It is not supported to run the profiling version of a renderer (for example, `react-dom/profiling`) without also replacing the `scheduler/tracing` module with `scheduler/tracing-profiling`. Your bundler might have a setting for aliasing both modules. Learn more at https://reactjs.org/link/profiling\" );\n }\n }\n}\n\nvar fakeCallbackNode = {}; // Except for NoPriority, these correspond to Scheduler priorities. We use\n// ascending numbers so we can compare them like numbers. They start at 90 to\n// avoid clashing with Scheduler's priorities.\n\nvar ImmediatePriority$1 = 99;\nvar UserBlockingPriority$2 = 98;\nvar NormalPriority$1 = 97;\nvar LowPriority$1 = 96;\nvar IdlePriority$1 = 95; // NoPriority is the absence of priority. Also React-only.\n\nvar NoPriority$1 = 90;\nvar shouldYield = Scheduler_shouldYield;\nvar requestPaint = // Fall back gracefully if we're running an older version of Scheduler.\nScheduler_requestPaint !== undefined ? Scheduler_requestPaint : function () {};\nvar syncQueue = null;\nvar immediateQueueCallbackNode = null;\nvar isFlushingSyncQueue = false;\nvar initialTimeMs$1 = Scheduler_now$1(); // If the initial timestamp is reasonably small, use Scheduler's `now` directly.\n// This will be the case for modern browsers that support `performance.now`. In\n// older browsers, Scheduler falls back to `Date.now`, which returns a Unix\n// timestamp. In that case, subtract the module initialization time to simulate\n// the behavior of performance.now and keep our times small enough to fit\n// within 32 bits.\n// TODO: Consider lifting this into Scheduler.\n\nvar now = initialTimeMs$1 < 10000 ? Scheduler_now$1 : function () {\n return Scheduler_now$1() - initialTimeMs$1;\n};\nfunction getCurrentPriorityLevel() {\n switch (Scheduler_getCurrentPriorityLevel()) {\n case Scheduler_ImmediatePriority:\n return ImmediatePriority$1;\n\n case Scheduler_UserBlockingPriority:\n return UserBlockingPriority$2;\n\n case Scheduler_NormalPriority:\n return NormalPriority$1;\n\n case Scheduler_LowPriority:\n return LowPriority$1;\n\n case Scheduler_IdlePriority:\n return IdlePriority$1;\n\n default:\n {\n {\n throw Error( \"Unknown priority level.\" );\n }\n }\n\n }\n}\n\nfunction reactPriorityToSchedulerPriority(reactPriorityLevel) {\n switch (reactPriorityLevel) {\n case ImmediatePriority$1:\n return Scheduler_ImmediatePriority;\n\n case UserBlockingPriority$2:\n return Scheduler_UserBlockingPriority;\n\n case NormalPriority$1:\n return Scheduler_NormalPriority;\n\n case LowPriority$1:\n return Scheduler_LowPriority;\n\n case IdlePriority$1:\n return Scheduler_IdlePriority;\n\n default:\n {\n {\n throw Error( \"Unknown priority level.\" );\n }\n }\n\n }\n}\n\nfunction runWithPriority$1(reactPriorityLevel, fn) {\n var priorityLevel = reactPriorityToSchedulerPriority(reactPriorityLevel);\n return Scheduler_runWithPriority(priorityLevel, fn);\n}\nfunction scheduleCallback(reactPriorityLevel, callback, options) {\n var priorityLevel = reactPriorityToSchedulerPriority(reactPriorityLevel);\n return Scheduler_scheduleCallback(priorityLevel, callback, options);\n}\nfunction scheduleSyncCallback(callback) {\n // Push this callback into an internal queue. We'll flush these either in\n // the next tick, or earlier if something calls `flushSyncCallbackQueue`.\n if (syncQueue === null) {\n syncQueue = [callback]; // Flush the queue in the next tick, at the earliest.\n\n immediateQueueCallbackNode = Scheduler_scheduleCallback(Scheduler_ImmediatePriority, flushSyncCallbackQueueImpl);\n } else {\n // Push onto existing queue. Don't need to schedule a callback because\n // we already scheduled one when we created the queue.\n syncQueue.push(callback);\n }\n\n return fakeCallbackNode;\n}\nfunction cancelCallback(callbackNode) {\n if (callbackNode !== fakeCallbackNode) {\n Scheduler_cancelCallback(callbackNode);\n }\n}\nfunction flushSyncCallbackQueue() {\n if (immediateQueueCallbackNode !== null) {\n var node = immediateQueueCallbackNode;\n immediateQueueCallbackNode = null;\n Scheduler_cancelCallback(node);\n }\n\n flushSyncCallbackQueueImpl();\n}\n\nfunction flushSyncCallbackQueueImpl() {\n if (!isFlushingSyncQueue && syncQueue !== null) {\n // Prevent re-entrancy.\n isFlushingSyncQueue = true;\n var i = 0;\n\n {\n try {\n var _isSync2 = true;\n var _queue = syncQueue;\n runWithPriority$1(ImmediatePriority$1, function () {\n for (; i < _queue.length; i++) {\n var callback = _queue[i];\n\n do {\n callback = callback(_isSync2);\n } while (callback !== null);\n }\n });\n syncQueue = null;\n } catch (error) {\n // If something throws, leave the remaining callbacks on the queue.\n if (syncQueue !== null) {\n syncQueue = syncQueue.slice(i + 1);\n } // Resume flushing in the next tick\n\n\n Scheduler_scheduleCallback(Scheduler_ImmediatePriority, flushSyncCallbackQueue);\n throw error;\n } finally {\n isFlushingSyncQueue = false;\n }\n }\n }\n}\n\n// TODO: this is special because it gets imported during build.\nvar ReactVersion = '17.0.2';\n\nvar NoMode = 0;\nvar StrictMode = 1; // TODO: Remove BlockingMode and ConcurrentMode by reading from the root\n// tag instead\n\nvar BlockingMode = 2;\nvar ConcurrentMode = 4;\nvar ProfileMode = 8;\nvar DebugTracingMode = 16;\n\nvar ReactCurrentBatchConfig = ReactSharedInternals.ReactCurrentBatchConfig;\nvar NoTransition = 0;\nfunction requestCurrentTransition() {\n return ReactCurrentBatchConfig.transition;\n}\n\nvar ReactStrictModeWarnings = {\n recordUnsafeLifecycleWarnings: function (fiber, instance) {},\n flushPendingUnsafeLifecycleWarnings: function () {},\n recordLegacyContextWarning: function (fiber, instance) {},\n flushLegacyContextWarning: function () {},\n discardPendingWarnings: function () {}\n};\n\n{\n var findStrictRoot = function (fiber) {\n var maybeStrictRoot = null;\n var node = fiber;\n\n while (node !== null) {\n if (node.mode & StrictMode) {\n maybeStrictRoot = node;\n }\n\n node = node.return;\n }\n\n return maybeStrictRoot;\n };\n\n var setToSortedString = function (set) {\n var array = [];\n set.forEach(function (value) {\n array.push(value);\n });\n return array.sort().join(', ');\n };\n\n var pendingComponentWillMountWarnings = [];\n var pendingUNSAFE_ComponentWillMountWarnings = [];\n var pendingComponentWillReceivePropsWarnings = [];\n var pendingUNSAFE_ComponentWillReceivePropsWarnings = [];\n var pendingComponentWillUpdateWarnings = [];\n var pendingUNSAFE_ComponentWillUpdateWarnings = []; // Tracks components we have already warned about.\n\n var didWarnAboutUnsafeLifecycles = new Set();\n\n ReactStrictModeWarnings.recordUnsafeLifecycleWarnings = function (fiber, instance) {\n // Dedup strategy: Warn once per component.\n if (didWarnAboutUnsafeLifecycles.has(fiber.type)) {\n return;\n }\n\n if (typeof instance.componentWillMount === 'function' && // Don't warn about react-lifecycles-compat polyfilled components.\n instance.componentWillMount.__suppressDeprecationWarning !== true) {\n pendingComponentWillMountWarnings.push(fiber);\n }\n\n if (fiber.mode & StrictMode && typeof instance.UNSAFE_componentWillMount === 'function') {\n pendingUNSAFE_ComponentWillMountWarnings.push(fiber);\n }\n\n if (typeof instance.componentWillReceiveProps === 'function' && instance.componentWillReceiveProps.__suppressDeprecationWarning !== true) {\n pendingComponentWillReceivePropsWarnings.push(fiber);\n }\n\n if (fiber.mode & StrictMode && typeof instance.UNSAFE_componentWillReceiveProps === 'function') {\n pendingUNSAFE_ComponentWillReceivePropsWarnings.push(fiber);\n }\n\n if (typeof instance.componentWillUpdate === 'function' && instance.componentWillUpdate.__suppressDeprecationWarning !== true) {\n pendingComponentWillUpdateWarnings.push(fiber);\n }\n\n if (fiber.mode & StrictMode && typeof instance.UNSAFE_componentWillUpdate === 'function') {\n pendingUNSAFE_ComponentWillUpdateWarnings.push(fiber);\n }\n };\n\n ReactStrictModeWarnings.flushPendingUnsafeLifecycleWarnings = function () {\n // We do an initial pass to gather component names\n var componentWillMountUniqueNames = new Set();\n\n if (pendingComponentWillMountWarnings.length > 0) {\n pendingComponentWillMountWarnings.forEach(function (fiber) {\n componentWillMountUniqueNames.add(getComponentName(fiber.type) || 'Component');\n didWarnAboutUnsafeLifecycles.add(fiber.type);\n });\n pendingComponentWillMountWarnings = [];\n }\n\n var UNSAFE_componentWillMountUniqueNames = new Set();\n\n if (pendingUNSAFE_ComponentWillMountWarnings.length > 0) {\n pendingUNSAFE_ComponentWillMountWarnings.forEach(function (fiber) {\n UNSAFE_componentWillMountUniqueNames.add(getComponentName(fiber.type) || 'Component');\n didWarnAboutUnsafeLifecycles.add(fiber.type);\n });\n pendingUNSAFE_ComponentWillMountWarnings = [];\n }\n\n var componentWillReceivePropsUniqueNames = new Set();\n\n if (pendingComponentWillReceivePropsWarnings.length > 0) {\n pendingComponentWillReceivePropsWarnings.forEach(function (fiber) {\n componentWillReceivePropsUniqueNames.add(getComponentName(fiber.type) || 'Component');\n didWarnAboutUnsafeLifecycles.add(fiber.type);\n });\n pendingComponentWillReceivePropsWarnings = [];\n }\n\n var UNSAFE_componentWillReceivePropsUniqueNames = new Set();\n\n if (pendingUNSAFE_ComponentWillReceivePropsWarnings.length > 0) {\n pendingUNSAFE_ComponentWillReceivePropsWarnings.forEach(function (fiber) {\n UNSAFE_componentWillReceivePropsUniqueNames.add(getComponentName(fiber.type) || 'Component');\n didWarnAboutUnsafeLifecycles.add(fiber.type);\n });\n pendingUNSAFE_ComponentWillReceivePropsWarnings = [];\n }\n\n var componentWillUpdateUniqueNames = new Set();\n\n if (pendingComponentWillUpdateWarnings.length > 0) {\n pendingComponentWillUpdateWarnings.forEach(function (fiber) {\n componentWillUpdateUniqueNames.add(getComponentName(fiber.type) || 'Component');\n didWarnAboutUnsafeLifecycles.add(fiber.type);\n });\n pendingComponentWillUpdateWarnings = [];\n }\n\n var UNSAFE_componentWillUpdateUniqueNames = new Set();\n\n if (pendingUNSAFE_ComponentWillUpdateWarnings.length > 0) {\n pendingUNSAFE_ComponentWillUpdateWarnings.forEach(function (fiber) {\n UNSAFE_componentWillUpdateUniqueNames.add(getComponentName(fiber.type) || 'Component');\n didWarnAboutUnsafeLifecycles.add(fiber.type);\n });\n pendingUNSAFE_ComponentWillUpdateWarnings = [];\n } // Finally, we flush all the warnings\n // UNSAFE_ ones before the deprecated ones, since they'll be 'louder'\n\n\n if (UNSAFE_componentWillMountUniqueNames.size > 0) {\n var sortedNames = setToSortedString(UNSAFE_componentWillMountUniqueNames);\n\n error('Using UNSAFE_componentWillMount in strict mode is not recommended and may indicate bugs in your code. ' + 'See https://reactjs.org/link/unsafe-component-lifecycles for details.\\n\\n' + '* Move code with side effects to componentDidMount, and set initial state in the constructor.\\n' + '\\nPlease update the following components: %s', sortedNames);\n }\n\n if (UNSAFE_componentWillReceivePropsUniqueNames.size > 0) {\n var _sortedNames = setToSortedString(UNSAFE_componentWillReceivePropsUniqueNames);\n\n error('Using UNSAFE_componentWillReceiveProps in strict mode is not recommended ' + 'and may indicate bugs in your code. ' + 'See https://reactjs.org/link/unsafe-component-lifecycles for details.\\n\\n' + '* Move data fetching code or side effects to componentDidUpdate.\\n' + \"* If you're updating state whenever props change, \" + 'refactor your code to use memoization techniques or move it to ' + 'static getDerivedStateFromProps. Learn more at: https://reactjs.org/link/derived-state\\n' + '\\nPlease update the following components: %s', _sortedNames);\n }\n\n if (UNSAFE_componentWillUpdateUniqueNames.size > 0) {\n var _sortedNames2 = setToSortedString(UNSAFE_componentWillUpdateUniqueNames);\n\n error('Using UNSAFE_componentWillUpdate in strict mode is not recommended ' + 'and may indicate bugs in your code. ' + 'See https://reactjs.org/link/unsafe-component-lifecycles for details.\\n\\n' + '* Move data fetching code or side effects to componentDidUpdate.\\n' + '\\nPlease update the following components: %s', _sortedNames2);\n }\n\n if (componentWillMountUniqueNames.size > 0) {\n var _sortedNames3 = setToSortedString(componentWillMountUniqueNames);\n\n warn('componentWillMount has been renamed, and is not recommended for use. ' + 'See https://reactjs.org/link/unsafe-component-lifecycles for details.\\n\\n' + '* Move code with side effects to componentDidMount, and set initial state in the constructor.\\n' + '* Rename componentWillMount to UNSAFE_componentWillMount to suppress ' + 'this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. ' + 'To rename all deprecated lifecycles to their new names, you can run ' + '`npx react-codemod rename-unsafe-lifecycles` in your project source folder.\\n' + '\\nPlease update the following components: %s', _sortedNames3);\n }\n\n if (componentWillReceivePropsUniqueNames.size > 0) {\n var _sortedNames4 = setToSortedString(componentWillReceivePropsUniqueNames);\n\n warn('componentWillReceiveProps has been renamed, and is not recommended for use. ' + 'See https://reactjs.org/link/unsafe-component-lifecycles for details.\\n\\n' + '* Move data fetching code or side effects to componentDidUpdate.\\n' + \"* If you're updating state whenever props change, refactor your \" + 'code to use memoization techniques or move it to ' + 'static getDerivedStateFromProps. Learn more at: https://reactjs.org/link/derived-state\\n' + '* Rename componentWillReceiveProps to UNSAFE_componentWillReceiveProps to suppress ' + 'this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. ' + 'To rename all deprecated lifecycles to their new names, you can run ' + '`npx react-codemod rename-unsafe-lifecycles` in your project source folder.\\n' + '\\nPlease update the following components: %s', _sortedNames4);\n }\n\n if (componentWillUpdateUniqueNames.size > 0) {\n var _sortedNames5 = setToSortedString(componentWillUpdateUniqueNames);\n\n warn('componentWillUpdate has been renamed, and is not recommended for use. ' + 'See https://reactjs.org/link/unsafe-component-lifecycles for details.\\n\\n' + '* Move data fetching code or side effects to componentDidUpdate.\\n' + '* Rename componentWillUpdate to UNSAFE_componentWillUpdate to suppress ' + 'this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. ' + 'To rename all deprecated lifecycles to their new names, you can run ' + '`npx react-codemod rename-unsafe-lifecycles` in your project source folder.\\n' + '\\nPlease update the following components: %s', _sortedNames5);\n }\n };\n\n var pendingLegacyContextWarning = new Map(); // Tracks components we have already warned about.\n\n var didWarnAboutLegacyContext = new Set();\n\n ReactStrictModeWarnings.recordLegacyContextWarning = function (fiber, instance) {\n var strictRoot = findStrictRoot(fiber);\n\n if (strictRoot === null) {\n error('Expected to find a StrictMode component in a strict mode tree. ' + 'This error is likely caused by a bug in React. Please file an issue.');\n\n return;\n } // Dedup strategy: Warn once per component.\n\n\n if (didWarnAboutLegacyContext.has(fiber.type)) {\n return;\n }\n\n var warningsForRoot = pendingLegacyContextWarning.get(strictRoot);\n\n if (fiber.type.contextTypes != null || fiber.type.childContextTypes != null || instance !== null && typeof instance.getChildContext === 'function') {\n if (warningsForRoot === undefined) {\n warningsForRoot = [];\n pendingLegacyContextWarning.set(strictRoot, warningsForRoot);\n }\n\n warningsForRoot.push(fiber);\n }\n };\n\n ReactStrictModeWarnings.flushLegacyContextWarning = function () {\n pendingLegacyContextWarning.forEach(function (fiberArray, strictRoot) {\n if (fiberArray.length === 0) {\n return;\n }\n\n var firstFiber = fiberArray[0];\n var uniqueNames = new Set();\n fiberArray.forEach(function (fiber) {\n uniqueNames.add(getComponentName(fiber.type) || 'Component');\n didWarnAboutLegacyContext.add(fiber.type);\n });\n var sortedNames = setToSortedString(uniqueNames);\n\n try {\n setCurrentFiber(firstFiber);\n\n error('Legacy context API has been detected within a strict-mode tree.' + '\\n\\nThe old API will be supported in all 16.x releases, but applications ' + 'using it should migrate to the new version.' + '\\n\\nPlease update the following components: %s' + '\\n\\nLearn more about this warning here: https://reactjs.org/link/legacy-context', sortedNames);\n } finally {\n resetCurrentFiber();\n }\n });\n };\n\n ReactStrictModeWarnings.discardPendingWarnings = function () {\n pendingComponentWillMountWarnings = [];\n pendingUNSAFE_ComponentWillMountWarnings = [];\n pendingComponentWillReceivePropsWarnings = [];\n pendingUNSAFE_ComponentWillReceivePropsWarnings = [];\n pendingComponentWillUpdateWarnings = [];\n pendingUNSAFE_ComponentWillUpdateWarnings = [];\n pendingLegacyContextWarning = new Map();\n };\n}\n\nfunction resolveDefaultProps(Component, baseProps) {\n if (Component && Component.defaultProps) {\n // Resolve default props. Taken from ReactElement\n var props = _assign({}, baseProps);\n\n var defaultProps = Component.defaultProps;\n\n for (var propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n\n return props;\n }\n\n return baseProps;\n}\n\n// Max 31 bit integer. The max integer size in V8 for 32-bit systems.\n// Math.pow(2, 30) - 1\n// 0b111111111111111111111111111111\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\n\nvar valueCursor = createCursor(null);\nvar rendererSigil;\n\n{\n // Use this to detect multiple renderers using the same context\n rendererSigil = {};\n}\n\nvar currentlyRenderingFiber = null;\nvar lastContextDependency = null;\nvar lastContextWithAllBitsObserved = null;\nvar isDisallowedContextReadInDEV = false;\nfunction resetContextDependencies() {\n // This is called right before React yields execution, to ensure `readContext`\n // cannot be called outside the render phase.\n currentlyRenderingFiber = null;\n lastContextDependency = null;\n lastContextWithAllBitsObserved = null;\n\n {\n isDisallowedContextReadInDEV = false;\n }\n}\nfunction enterDisallowedContextReadInDEV() {\n {\n isDisallowedContextReadInDEV = true;\n }\n}\nfunction exitDisallowedContextReadInDEV() {\n {\n isDisallowedContextReadInDEV = false;\n }\n}\nfunction pushProvider(providerFiber, nextValue) {\n var context = providerFiber.type._context;\n\n {\n push(valueCursor, context._currentValue, providerFiber);\n context._currentValue = nextValue;\n\n {\n if (context._currentRenderer !== undefined && context._currentRenderer !== null && context._currentRenderer !== rendererSigil) {\n error('Detected multiple renderers concurrently rendering the ' + 'same context provider. This is currently unsupported.');\n }\n\n context._currentRenderer = rendererSigil;\n }\n }\n}\nfunction popProvider(providerFiber) {\n var currentValue = valueCursor.current;\n pop(valueCursor, providerFiber);\n var context = providerFiber.type._context;\n\n {\n context._currentValue = currentValue;\n }\n}\nfunction calculateChangedBits(context, newValue, oldValue) {\n if (objectIs(oldValue, newValue)) {\n // No change\n return 0;\n } else {\n var changedBits = typeof context._calculateChangedBits === 'function' ? context._calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n {\n if ((changedBits & MAX_SIGNED_31_BIT_INT) !== changedBits) {\n error('calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: %s', changedBits);\n }\n }\n\n return changedBits | 0;\n }\n}\nfunction scheduleWorkOnParentPath(parent, renderLanes) {\n // Update the child lanes of all the ancestors, including the alternates.\n var node = parent;\n\n while (node !== null) {\n var alternate = node.alternate;\n\n if (!isSubsetOfLanes(node.childLanes, renderLanes)) {\n node.childLanes = mergeLanes(node.childLanes, renderLanes);\n\n if (alternate !== null) {\n alternate.childLanes = mergeLanes(alternate.childLanes, renderLanes);\n }\n } else if (alternate !== null && !isSubsetOfLanes(alternate.childLanes, renderLanes)) {\n alternate.childLanes = mergeLanes(alternate.childLanes, renderLanes);\n } else {\n // Neither alternate was updated, which means the rest of the\n // ancestor path already has sufficient priority.\n break;\n }\n\n node = node.return;\n }\n}\nfunction propagateContextChange(workInProgress, context, changedBits, renderLanes) {\n var fiber = workInProgress.child;\n\n if (fiber !== null) {\n // Set the return pointer of the child to the work-in-progress fiber.\n fiber.return = workInProgress;\n }\n\n while (fiber !== null) {\n var nextFiber = void 0; // Visit this fiber.\n\n var list = fiber.dependencies;\n\n if (list !== null) {\n nextFiber = fiber.child;\n var dependency = list.firstContext;\n\n while (dependency !== null) {\n // Check if the context matches.\n if (dependency.context === context && (dependency.observedBits & changedBits) !== 0) {\n // Match! Schedule an update on this fiber.\n if (fiber.tag === ClassComponent) {\n // Schedule a force update on the work-in-progress.\n var update = createUpdate(NoTimestamp, pickArbitraryLane(renderLanes));\n update.tag = ForceUpdate; // TODO: Because we don't have a work-in-progress, this will add the\n // update to the current fiber, too, which means it will persist even if\n // this render is thrown away. Since it's a race condition, not sure it's\n // worth fixing.\n\n enqueueUpdate(fiber, update);\n }\n\n fiber.lanes = mergeLanes(fiber.lanes, renderLanes);\n var alternate = fiber.alternate;\n\n if (alternate !== null) {\n alternate.lanes = mergeLanes(alternate.lanes, renderLanes);\n }\n\n scheduleWorkOnParentPath(fiber.return, renderLanes); // Mark the updated lanes on the list, too.\n\n list.lanes = mergeLanes(list.lanes, renderLanes); // Since we already found a match, we can stop traversing the\n // dependency list.\n\n break;\n }\n\n dependency = dependency.next;\n }\n } else if (fiber.tag === ContextProvider) {\n // Don't scan deeper if this is a matching provider\n nextFiber = fiber.type === workInProgress.type ? null : fiber.child;\n } else {\n // Traverse down.\n nextFiber = fiber.child;\n }\n\n if (nextFiber !== null) {\n // Set the return pointer of the child to the work-in-progress fiber.\n nextFiber.return = fiber;\n } else {\n // No child. Traverse to next sibling.\n nextFiber = fiber;\n\n while (nextFiber !== null) {\n if (nextFiber === workInProgress) {\n // We're back to the root of this subtree. Exit.\n nextFiber = null;\n break;\n }\n\n var sibling = nextFiber.sibling;\n\n if (sibling !== null) {\n // Set the return pointer of the sibling to the work-in-progress fiber.\n sibling.return = nextFiber.return;\n nextFiber = sibling;\n break;\n } // No more siblings. Traverse up.\n\n\n nextFiber = nextFiber.return;\n }\n }\n\n fiber = nextFiber;\n }\n}\nfunction prepareToReadContext(workInProgress, renderLanes) {\n currentlyRenderingFiber = workInProgress;\n lastContextDependency = null;\n lastContextWithAllBitsObserved = null;\n var dependencies = workInProgress.dependencies;\n\n if (dependencies !== null) {\n var firstContext = dependencies.firstContext;\n\n if (firstContext !== null) {\n if (includesSomeLane(dependencies.lanes, renderLanes)) {\n // Context list has a pending update. Mark that this fiber performed work.\n markWorkInProgressReceivedUpdate();\n } // Reset the work-in-progress list\n\n\n dependencies.firstContext = null;\n }\n }\n}\nfunction readContext(context, observedBits) {\n {\n // This warning would fire if you read context inside a Hook like useMemo.\n // Unlike the class check below, it's not enforced in production for perf.\n if (isDisallowedContextReadInDEV) {\n error('Context can only be read while React is rendering. ' + 'In classes, you can read it in the render method or getDerivedStateFromProps. ' + 'In function components, you can read it directly in the function body, but not ' + 'inside Hooks like useReducer() or useMemo().');\n }\n }\n\n if (lastContextWithAllBitsObserved === context) ; else if (observedBits === false || observedBits === 0) ; else {\n var resolvedObservedBits; // Avoid deopting on observable arguments or heterogeneous types.\n\n if (typeof observedBits !== 'number' || observedBits === MAX_SIGNED_31_BIT_INT) {\n // Observe all updates.\n lastContextWithAllBitsObserved = context;\n resolvedObservedBits = MAX_SIGNED_31_BIT_INT;\n } else {\n resolvedObservedBits = observedBits;\n }\n\n var contextItem = {\n context: context,\n observedBits: resolvedObservedBits,\n next: null\n };\n\n if (lastContextDependency === null) {\n if (!(currentlyRenderingFiber !== null)) {\n {\n throw Error( \"Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().\" );\n }\n } // This is the first dependency for this component. Create a new list.\n\n\n lastContextDependency = contextItem;\n currentlyRenderingFiber.dependencies = {\n lanes: NoLanes,\n firstContext: contextItem,\n responders: null\n };\n } else {\n // Append a new context item.\n lastContextDependency = lastContextDependency.next = contextItem;\n }\n }\n\n return context._currentValue ;\n}\n\nvar UpdateState = 0;\nvar ReplaceState = 1;\nvar ForceUpdate = 2;\nvar CaptureUpdate = 3; // Global state that is reset at the beginning of calling `processUpdateQueue`.\n// It should only be read right after calling `processUpdateQueue`, via\n// `checkHasForceUpdateAfterProcessing`.\n\nvar hasForceUpdate = false;\nvar didWarnUpdateInsideUpdate;\nvar currentlyProcessingQueue;\n\n{\n didWarnUpdateInsideUpdate = false;\n currentlyProcessingQueue = null;\n}\n\nfunction initializeUpdateQueue(fiber) {\n var queue = {\n baseState: fiber.memoizedState,\n firstBaseUpdate: null,\n lastBaseUpdate: null,\n shared: {\n pending: null\n },\n effects: null\n };\n fiber.updateQueue = queue;\n}\nfunction cloneUpdateQueue(current, workInProgress) {\n // Clone the update queue from current. Unless it's already a clone.\n var queue = workInProgress.updateQueue;\n var currentQueue = current.updateQueue;\n\n if (queue === currentQueue) {\n var clone = {\n baseState: currentQueue.baseState,\n firstBaseUpdate: currentQueue.firstBaseUpdate,\n lastBaseUpdate: currentQueue.lastBaseUpdate,\n shared: currentQueue.shared,\n effects: currentQueue.effects\n };\n workInProgress.updateQueue = clone;\n }\n}\nfunction createUpdate(eventTime, lane) {\n var update = {\n eventTime: eventTime,\n lane: lane,\n tag: UpdateState,\n payload: null,\n callback: null,\n next: null\n };\n return update;\n}\nfunction enqueueUpdate(fiber, update) {\n var updateQueue = fiber.updateQueue;\n\n if (updateQueue === null) {\n // Only occurs if the fiber has been unmounted.\n return;\n }\n\n var sharedQueue = updateQueue.shared;\n var pending = sharedQueue.pending;\n\n if (pending === null) {\n // This is the first update. Create a circular list.\n update.next = update;\n } else {\n update.next = pending.next;\n pending.next = update;\n }\n\n sharedQueue.pending = update;\n\n {\n if (currentlyProcessingQueue === sharedQueue && !didWarnUpdateInsideUpdate) {\n error('An update (setState, replaceState, or forceUpdate) was scheduled ' + 'from inside an update function. Update functions should be pure, ' + 'with zero side-effects. Consider using componentDidUpdate or a ' + 'callback.');\n\n didWarnUpdateInsideUpdate = true;\n }\n }\n}\nfunction enqueueCapturedUpdate(workInProgress, capturedUpdate) {\n // Captured updates are updates that are thrown by a child during the render\n // phase. They should be discarded if the render is aborted. Therefore,\n // we should only put them on the work-in-progress queue, not the current one.\n var queue = workInProgress.updateQueue; // Check if the work-in-progress queue is a clone.\n\n var current = workInProgress.alternate;\n\n if (current !== null) {\n var currentQueue = current.updateQueue;\n\n if (queue === currentQueue) {\n // The work-in-progress queue is the same as current. This happens when\n // we bail out on a parent fiber that then captures an error thrown by\n // a child. Since we want to append the update only to the work-in\n // -progress queue, we need to clone the updates. We usually clone during\n // processUpdateQueue, but that didn't happen in this case because we\n // skipped over the parent when we bailed out.\n var newFirst = null;\n var newLast = null;\n var firstBaseUpdate = queue.firstBaseUpdate;\n\n if (firstBaseUpdate !== null) {\n // Loop through the updates and clone them.\n var update = firstBaseUpdate;\n\n do {\n var clone = {\n eventTime: update.eventTime,\n lane: update.lane,\n tag: update.tag,\n payload: update.payload,\n callback: update.callback,\n next: null\n };\n\n if (newLast === null) {\n newFirst = newLast = clone;\n } else {\n newLast.next = clone;\n newLast = clone;\n }\n\n update = update.next;\n } while (update !== null); // Append the captured update the end of the cloned list.\n\n\n if (newLast === null) {\n newFirst = newLast = capturedUpdate;\n } else {\n newLast.next = capturedUpdate;\n newLast = capturedUpdate;\n }\n } else {\n // There are no base updates.\n newFirst = newLast = capturedUpdate;\n }\n\n queue = {\n baseState: currentQueue.baseState,\n firstBaseUpdate: newFirst,\n lastBaseUpdate: newLast,\n shared: currentQueue.shared,\n effects: currentQueue.effects\n };\n workInProgress.updateQueue = queue;\n return;\n }\n } // Append the update to the end of the list.\n\n\n var lastBaseUpdate = queue.lastBaseUpdate;\n\n if (lastBaseUpdate === null) {\n queue.firstBaseUpdate = capturedUpdate;\n } else {\n lastBaseUpdate.next = capturedUpdate;\n }\n\n queue.lastBaseUpdate = capturedUpdate;\n}\n\nfunction getStateFromUpdate(workInProgress, queue, update, prevState, nextProps, instance) {\n switch (update.tag) {\n case ReplaceState:\n {\n var payload = update.payload;\n\n if (typeof payload === 'function') {\n // Updater function\n {\n enterDisallowedContextReadInDEV();\n }\n\n var nextState = payload.call(instance, prevState, nextProps);\n\n {\n if ( workInProgress.mode & StrictMode) {\n disableLogs();\n\n try {\n payload.call(instance, prevState, nextProps);\n } finally {\n reenableLogs();\n }\n }\n\n exitDisallowedContextReadInDEV();\n }\n\n return nextState;\n } // State object\n\n\n return payload;\n }\n\n case CaptureUpdate:\n {\n workInProgress.flags = workInProgress.flags & ~ShouldCapture | DidCapture;\n }\n // Intentional fallthrough\n\n case UpdateState:\n {\n var _payload = update.payload;\n var partialState;\n\n if (typeof _payload === 'function') {\n // Updater function\n {\n enterDisallowedContextReadInDEV();\n }\n\n partialState = _payload.call(instance, prevState, nextProps);\n\n {\n if ( workInProgress.mode & StrictMode) {\n disableLogs();\n\n try {\n _payload.call(instance, prevState, nextProps);\n } finally {\n reenableLogs();\n }\n }\n\n exitDisallowedContextReadInDEV();\n }\n } else {\n // Partial state object\n partialState = _payload;\n }\n\n if (partialState === null || partialState === undefined) {\n // Null and undefined are treated as no-ops.\n return prevState;\n } // Merge the partial state and the previous state.\n\n\n return _assign({}, prevState, partialState);\n }\n\n case ForceUpdate:\n {\n hasForceUpdate = true;\n return prevState;\n }\n }\n\n return prevState;\n}\n\nfunction processUpdateQueue(workInProgress, props, instance, renderLanes) {\n // This is always non-null on a ClassComponent or HostRoot\n var queue = workInProgress.updateQueue;\n hasForceUpdate = false;\n\n {\n currentlyProcessingQueue = queue.shared;\n }\n\n var firstBaseUpdate = queue.firstBaseUpdate;\n var lastBaseUpdate = queue.lastBaseUpdate; // Check if there are pending updates. If so, transfer them to the base queue.\n\n var pendingQueue = queue.shared.pending;\n\n if (pendingQueue !== null) {\n queue.shared.pending = null; // The pending queue is circular. Disconnect the pointer between first\n // and last so that it's non-circular.\n\n var lastPendingUpdate = pendingQueue;\n var firstPendingUpdate = lastPendingUpdate.next;\n lastPendingUpdate.next = null; // Append pending updates to base queue\n\n if (lastBaseUpdate === null) {\n firstBaseUpdate = firstPendingUpdate;\n } else {\n lastBaseUpdate.next = firstPendingUpdate;\n }\n\n lastBaseUpdate = lastPendingUpdate; // If there's a current queue, and it's different from the base queue, then\n // we need to transfer the updates to that queue, too. Because the base\n // queue is a singly-linked list with no cycles, we can append to both\n // lists and take advantage of structural sharing.\n // TODO: Pass `current` as argument\n\n var current = workInProgress.alternate;\n\n if (current !== null) {\n // This is always non-null on a ClassComponent or HostRoot\n var currentQueue = current.updateQueue;\n var currentLastBaseUpdate = currentQueue.lastBaseUpdate;\n\n if (currentLastBaseUpdate !== lastBaseUpdate) {\n if (currentLastBaseUpdate === null) {\n currentQueue.firstBaseUpdate = firstPendingUpdate;\n } else {\n currentLastBaseUpdate.next = firstPendingUpdate;\n }\n\n currentQueue.lastBaseUpdate = lastPendingUpdate;\n }\n }\n } // These values may change as we process the queue.\n\n\n if (firstBaseUpdate !== null) {\n // Iterate through the list of updates to compute the result.\n var newState = queue.baseState; // TODO: Don't need to accumulate this. Instead, we can remove renderLanes\n // from the original lanes.\n\n var newLanes = NoLanes;\n var newBaseState = null;\n var newFirstBaseUpdate = null;\n var newLastBaseUpdate = null;\n var update = firstBaseUpdate;\n\n do {\n var updateLane = update.lane;\n var updateEventTime = update.eventTime;\n\n if (!isSubsetOfLanes(renderLanes, updateLane)) {\n // Priority is insufficient. Skip this update. If this is the first\n // skipped update, the previous update/state is the new base\n // update/state.\n var clone = {\n eventTime: updateEventTime,\n lane: updateLane,\n tag: update.tag,\n payload: update.payload,\n callback: update.callback,\n next: null\n };\n\n if (newLastBaseUpdate === null) {\n newFirstBaseUpdate = newLastBaseUpdate = clone;\n newBaseState = newState;\n } else {\n newLastBaseUpdate = newLastBaseUpdate.next = clone;\n } // Update the remaining priority in the queue.\n\n\n newLanes = mergeLanes(newLanes, updateLane);\n } else {\n // This update does have sufficient priority.\n if (newLastBaseUpdate !== null) {\n var _clone = {\n eventTime: updateEventTime,\n // This update is going to be committed so we never want uncommit\n // it. Using NoLane works because 0 is a subset of all bitmasks, so\n // this will never be skipped by the check above.\n lane: NoLane,\n tag: update.tag,\n payload: update.payload,\n callback: update.callback,\n next: null\n };\n newLastBaseUpdate = newLastBaseUpdate.next = _clone;\n } // Process this update.\n\n\n newState = getStateFromUpdate(workInProgress, queue, update, newState, props, instance);\n var callback = update.callback;\n\n if (callback !== null) {\n workInProgress.flags |= Callback;\n var effects = queue.effects;\n\n if (effects === null) {\n queue.effects = [update];\n } else {\n effects.push(update);\n }\n }\n }\n\n update = update.next;\n\n if (update === null) {\n pendingQueue = queue.shared.pending;\n\n if (pendingQueue === null) {\n break;\n } else {\n // An update was scheduled from inside a reducer. Add the new\n // pending updates to the end of the list and keep processing.\n var _lastPendingUpdate = pendingQueue; // Intentionally unsound. Pending updates form a circular list, but we\n // unravel them when transferring them to the base queue.\n\n var _firstPendingUpdate = _lastPendingUpdate.next;\n _lastPendingUpdate.next = null;\n update = _firstPendingUpdate;\n queue.lastBaseUpdate = _lastPendingUpdate;\n queue.shared.pending = null;\n }\n }\n } while (true);\n\n if (newLastBaseUpdate === null) {\n newBaseState = newState;\n }\n\n queue.baseState = newBaseState;\n queue.firstBaseUpdate = newFirstBaseUpdate;\n queue.lastBaseUpdate = newLastBaseUpdate; // Set the remaining expiration time to be whatever is remaining in the queue.\n // This should be fine because the only two other things that contribute to\n // expiration time are props and context. We're already in the middle of the\n // begin phase by the time we start processing the queue, so we've already\n // dealt with the props. Context in components that specify\n // shouldComponentUpdate is tricky; but we'll have to account for\n // that regardless.\n\n markSkippedUpdateLanes(newLanes);\n workInProgress.lanes = newLanes;\n workInProgress.memoizedState = newState;\n }\n\n {\n currentlyProcessingQueue = null;\n }\n}\n\nfunction callCallback(callback, context) {\n if (!(typeof callback === 'function')) {\n {\n throw Error( \"Invalid argument passed as callback. Expected a function. Instead received: \" + callback );\n }\n }\n\n callback.call(context);\n}\n\nfunction resetHasForceUpdateBeforeProcessing() {\n hasForceUpdate = false;\n}\nfunction checkHasForceUpdateAfterProcessing() {\n return hasForceUpdate;\n}\nfunction commitUpdateQueue(finishedWork, finishedQueue, instance) {\n // Commit the effects\n var effects = finishedQueue.effects;\n finishedQueue.effects = null;\n\n if (effects !== null) {\n for (var i = 0; i < effects.length; i++) {\n var effect = effects[i];\n var callback = effect.callback;\n\n if (callback !== null) {\n effect.callback = null;\n callCallback(callback, instance);\n }\n }\n }\n}\n\nvar fakeInternalInstance = {};\nvar isArray = Array.isArray; // React.Component uses a shared frozen object by default.\n// We'll use it to determine whether we need to initialize legacy refs.\n\nvar emptyRefsObject = new React.Component().refs;\nvar didWarnAboutStateAssignmentForComponent;\nvar didWarnAboutUninitializedState;\nvar didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate;\nvar didWarnAboutLegacyLifecyclesAndDerivedState;\nvar didWarnAboutUndefinedDerivedState;\nvar warnOnUndefinedDerivedState;\nvar warnOnInvalidCallback;\nvar didWarnAboutDirectlyAssigningPropsToState;\nvar didWarnAboutContextTypeAndContextTypes;\nvar didWarnAboutInvalidateContextType;\n\n{\n didWarnAboutStateAssignmentForComponent = new Set();\n didWarnAboutUninitializedState = new Set();\n didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate = new Set();\n didWarnAboutLegacyLifecyclesAndDerivedState = new Set();\n didWarnAboutDirectlyAssigningPropsToState = new Set();\n didWarnAboutUndefinedDerivedState = new Set();\n didWarnAboutContextTypeAndContextTypes = new Set();\n didWarnAboutInvalidateContextType = new Set();\n var didWarnOnInvalidCallback = new Set();\n\n warnOnInvalidCallback = function (callback, callerName) {\n if (callback === null || typeof callback === 'function') {\n return;\n }\n\n var key = callerName + '_' + callback;\n\n if (!didWarnOnInvalidCallback.has(key)) {\n didWarnOnInvalidCallback.add(key);\n\n error('%s(...): Expected the last optional `callback` argument to be a ' + 'function. Instead received: %s.', callerName, callback);\n }\n };\n\n warnOnUndefinedDerivedState = function (type, partialState) {\n if (partialState === undefined) {\n var componentName = getComponentName(type) || 'Component';\n\n if (!didWarnAboutUndefinedDerivedState.has(componentName)) {\n didWarnAboutUndefinedDerivedState.add(componentName);\n\n error('%s.getDerivedStateFromProps(): A valid state object (or null) must be returned. ' + 'You have returned undefined.', componentName);\n }\n }\n }; // This is so gross but it's at least non-critical and can be removed if\n // it causes problems. This is meant to give a nicer error message for\n // ReactDOM15.unstable_renderSubtreeIntoContainer(reactDOM16Component,\n // ...)) which otherwise throws a \"_processChildContext is not a function\"\n // exception.\n\n\n Object.defineProperty(fakeInternalInstance, '_processChildContext', {\n enumerable: false,\n value: function () {\n {\n {\n throw Error( \"_processChildContext is not available in React 16+. This likely means you have multiple copies of React and are attempting to nest a React 15 tree inside a React 16 tree using unstable_renderSubtreeIntoContainer, which isn't supported. Try to make sure you have only one copy of React (and ideally, switch to ReactDOM.createPortal).\" );\n }\n }\n }\n });\n Object.freeze(fakeInternalInstance);\n}\n\nfunction applyDerivedStateFromProps(workInProgress, ctor, getDerivedStateFromProps, nextProps) {\n var prevState = workInProgress.memoizedState;\n\n {\n if ( workInProgress.mode & StrictMode) {\n disableLogs();\n\n try {\n // Invoke the function an extra time to help detect side-effects.\n getDerivedStateFromProps(nextProps, prevState);\n } finally {\n reenableLogs();\n }\n }\n }\n\n var partialState = getDerivedStateFromProps(nextProps, prevState);\n\n {\n warnOnUndefinedDerivedState(ctor, partialState);\n } // Merge the partial state and the previous state.\n\n\n var memoizedState = partialState === null || partialState === undefined ? prevState : _assign({}, prevState, partialState);\n workInProgress.memoizedState = memoizedState; // Once the update queue is empty, persist the derived state onto the\n // base state.\n\n if (workInProgress.lanes === NoLanes) {\n // Queue is always non-null for classes\n var updateQueue = workInProgress.updateQueue;\n updateQueue.baseState = memoizedState;\n }\n}\nvar classComponentUpdater = {\n isMounted: isMounted,\n enqueueSetState: function (inst, payload, callback) {\n var fiber = get(inst);\n var eventTime = requestEventTime();\n var lane = requestUpdateLane(fiber);\n var update = createUpdate(eventTime, lane);\n update.payload = payload;\n\n if (callback !== undefined && callback !== null) {\n {\n warnOnInvalidCallback(callback, 'setState');\n }\n\n update.callback = callback;\n }\n\n enqueueUpdate(fiber, update);\n scheduleUpdateOnFiber(fiber, lane, eventTime);\n },\n enqueueReplaceState: function (inst, payload, callback) {\n var fiber = get(inst);\n var eventTime = requestEventTime();\n var lane = requestUpdateLane(fiber);\n var update = createUpdate(eventTime, lane);\n update.tag = ReplaceState;\n update.payload = payload;\n\n if (callback !== undefined && callback !== null) {\n {\n warnOnInvalidCallback(callback, 'replaceState');\n }\n\n update.callback = callback;\n }\n\n enqueueUpdate(fiber, update);\n scheduleUpdateOnFiber(fiber, lane, eventTime);\n },\n enqueueForceUpdate: function (inst, callback) {\n var fiber = get(inst);\n var eventTime = requestEventTime();\n var lane = requestUpdateLane(fiber);\n var update = createUpdate(eventTime, lane);\n update.tag = ForceUpdate;\n\n if (callback !== undefined && callback !== null) {\n {\n warnOnInvalidCallback(callback, 'forceUpdate');\n }\n\n update.callback = callback;\n }\n\n enqueueUpdate(fiber, update);\n scheduleUpdateOnFiber(fiber, lane, eventTime);\n }\n};\n\nfunction checkShouldComponentUpdate(workInProgress, ctor, oldProps, newProps, oldState, newState, nextContext) {\n var instance = workInProgress.stateNode;\n\n if (typeof instance.shouldComponentUpdate === 'function') {\n {\n if ( workInProgress.mode & StrictMode) {\n disableLogs();\n\n try {\n // Invoke the function an extra time to help detect side-effects.\n instance.shouldComponentUpdate(newProps, newState, nextContext);\n } finally {\n reenableLogs();\n }\n }\n }\n\n var shouldUpdate = instance.shouldComponentUpdate(newProps, newState, nextContext);\n\n {\n if (shouldUpdate === undefined) {\n error('%s.shouldComponentUpdate(): Returned undefined instead of a ' + 'boolean value. Make sure to return true or false.', getComponentName(ctor) || 'Component');\n }\n }\n\n return shouldUpdate;\n }\n\n if (ctor.prototype && ctor.prototype.isPureReactComponent) {\n return !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState);\n }\n\n return true;\n}\n\nfunction checkClassInstance(workInProgress, ctor, newProps) {\n var instance = workInProgress.stateNode;\n\n {\n var name = getComponentName(ctor) || 'Component';\n var renderPresent = instance.render;\n\n if (!renderPresent) {\n if (ctor.prototype && typeof ctor.prototype.render === 'function') {\n error('%s(...): No `render` method found on the returned component ' + 'instance: did you accidentally return an object from the constructor?', name);\n } else {\n error('%s(...): No `render` method found on the returned component ' + 'instance: you may have forgotten to define `render`.', name);\n }\n }\n\n if (instance.getInitialState && !instance.getInitialState.isReactClassApproved && !instance.state) {\n error('getInitialState was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Did you mean to define a state property instead?', name);\n }\n\n if (instance.getDefaultProps && !instance.getDefaultProps.isReactClassApproved) {\n error('getDefaultProps was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Use a static property to define defaultProps instead.', name);\n }\n\n if (instance.propTypes) {\n error('propTypes was defined as an instance property on %s. Use a static ' + 'property to define propTypes instead.', name);\n }\n\n if (instance.contextType) {\n error('contextType was defined as an instance property on %s. Use a static ' + 'property to define contextType instead.', name);\n }\n\n {\n if (instance.contextTypes) {\n error('contextTypes was defined as an instance property on %s. Use a static ' + 'property to define contextTypes instead.', name);\n }\n\n if (ctor.contextType && ctor.contextTypes && !didWarnAboutContextTypeAndContextTypes.has(ctor)) {\n didWarnAboutContextTypeAndContextTypes.add(ctor);\n\n error('%s declares both contextTypes and contextType static properties. ' + 'The legacy contextTypes property will be ignored.', name);\n }\n }\n\n if (typeof instance.componentShouldUpdate === 'function') {\n error('%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', name);\n }\n\n if (ctor.prototype && ctor.prototype.isPureReactComponent && typeof instance.shouldComponentUpdate !== 'undefined') {\n error('%s has a method called shouldComponentUpdate(). ' + 'shouldComponentUpdate should not be used when extending React.PureComponent. ' + 'Please extend React.Component if shouldComponentUpdate is used.', getComponentName(ctor) || 'A pure component');\n }\n\n if (typeof instance.componentDidUnmount === 'function') {\n error('%s has a method called ' + 'componentDidUnmount(). But there is no such lifecycle method. ' + 'Did you mean componentWillUnmount()?', name);\n }\n\n if (typeof instance.componentDidReceiveProps === 'function') {\n error('%s has a method called ' + 'componentDidReceiveProps(). But there is no such lifecycle method. ' + 'If you meant to update the state in response to changing props, ' + 'use componentWillReceiveProps(). If you meant to fetch data or ' + 'run side-effects or mutations after React has updated the UI, use componentDidUpdate().', name);\n }\n\n if (typeof instance.componentWillRecieveProps === 'function') {\n error('%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', name);\n }\n\n if (typeof instance.UNSAFE_componentWillRecieveProps === 'function') {\n error('%s has a method called ' + 'UNSAFE_componentWillRecieveProps(). Did you mean UNSAFE_componentWillReceiveProps()?', name);\n }\n\n var hasMutatedProps = instance.props !== newProps;\n\n if (instance.props !== undefined && hasMutatedProps) {\n error('%s(...): When calling super() in `%s`, make sure to pass ' + \"up the same props that your component's constructor was passed.\", name, name);\n }\n\n if (instance.defaultProps) {\n error('Setting defaultProps as an instance property on %s is not supported and will be ignored.' + ' Instead, define defaultProps as a static property on %s.', name, name);\n }\n\n if (typeof instance.getSnapshotBeforeUpdate === 'function' && typeof instance.componentDidUpdate !== 'function' && !didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.has(ctor)) {\n didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.add(ctor);\n\n error('%s: getSnapshotBeforeUpdate() should be used with componentDidUpdate(). ' + 'This component defines getSnapshotBeforeUpdate() only.', getComponentName(ctor));\n }\n\n if (typeof instance.getDerivedStateFromProps === 'function') {\n error('%s: getDerivedStateFromProps() is defined as an instance method ' + 'and will be ignored. Instead, declare it as a static method.', name);\n }\n\n if (typeof instance.getDerivedStateFromError === 'function') {\n error('%s: getDerivedStateFromError() is defined as an instance method ' + 'and will be ignored. Instead, declare it as a static method.', name);\n }\n\n if (typeof ctor.getSnapshotBeforeUpdate === 'function') {\n error('%s: getSnapshotBeforeUpdate() is defined as a static method ' + 'and will be ignored. Instead, declare it as an instance method.', name);\n }\n\n var _state = instance.state;\n\n if (_state && (typeof _state !== 'object' || isArray(_state))) {\n error('%s.state: must be set to an object or null', name);\n }\n\n if (typeof instance.getChildContext === 'function' && typeof ctor.childContextTypes !== 'object') {\n error('%s.getChildContext(): childContextTypes must be defined in order to ' + 'use getChildContext().', name);\n }\n }\n}\n\nfunction adoptClassInstance(workInProgress, instance) {\n instance.updater = classComponentUpdater;\n workInProgress.stateNode = instance; // The instance needs access to the fiber so that it can schedule updates\n\n set(instance, workInProgress);\n\n {\n instance._reactInternalInstance = fakeInternalInstance;\n }\n}\n\nfunction constructClassInstance(workInProgress, ctor, props) {\n var isLegacyContextConsumer = false;\n var unmaskedContext = emptyContextObject;\n var context = emptyContextObject;\n var contextType = ctor.contextType;\n\n {\n if ('contextType' in ctor) {\n var isValid = // Allow null for conditional declaration\n contextType === null || contextType !== undefined && contextType.$$typeof === REACT_CONTEXT_TYPE && contextType._context === undefined; // Not a <Context.Consumer>\n\n if (!isValid && !didWarnAboutInvalidateContextType.has(ctor)) {\n didWarnAboutInvalidateContextType.add(ctor);\n var addendum = '';\n\n if (contextType === undefined) {\n addendum = ' However, it is set to undefined. ' + 'This can be caused by a typo or by mixing up named and default imports. ' + 'This can also happen due to a circular dependency, so ' + 'try moving the createContext() call to a separate file.';\n } else if (typeof contextType !== 'object') {\n addendum = ' However, it is set to a ' + typeof contextType + '.';\n } else if (contextType.$$typeof === REACT_PROVIDER_TYPE) {\n addendum = ' Did you accidentally pass the Context.Provider instead?';\n } else if (contextType._context !== undefined) {\n // <Context.Consumer>\n addendum = ' Did you accidentally pass the Context.Consumer instead?';\n } else {\n addendum = ' However, it is set to an object with keys {' + Object.keys(contextType).join(', ') + '}.';\n }\n\n error('%s defines an invalid contextType. ' + 'contextType should point to the Context object returned by React.createContext().%s', getComponentName(ctor) || 'Component', addendum);\n }\n }\n }\n\n if (typeof contextType === 'object' && contextType !== null) {\n context = readContext(contextType);\n } else {\n unmaskedContext = getUnmaskedContext(workInProgress, ctor, true);\n var contextTypes = ctor.contextTypes;\n isLegacyContextConsumer = contextTypes !== null && contextTypes !== undefined;\n context = isLegacyContextConsumer ? getMaskedContext(workInProgress, unmaskedContext) : emptyContextObject;\n } // Instantiate twice to help detect side-effects.\n\n\n {\n if ( workInProgress.mode & StrictMode) {\n disableLogs();\n\n try {\n new ctor(props, context); // eslint-disable-line no-new\n } finally {\n reenableLogs();\n }\n }\n }\n\n var instance = new ctor(props, context);\n var state = workInProgress.memoizedState = instance.state !== null && instance.state !== undefined ? instance.state : null;\n adoptClassInstance(workInProgress, instance);\n\n {\n if (typeof ctor.getDerivedStateFromProps === 'function' && state === null) {\n var componentName = getComponentName(ctor) || 'Component';\n\n if (!didWarnAboutUninitializedState.has(componentName)) {\n didWarnAboutUninitializedState.add(componentName);\n\n error('`%s` uses `getDerivedStateFromProps` but its initial state is ' + '%s. This is not recommended. Instead, define the initial state by ' + 'assigning an object to `this.state` in the constructor of `%s`. ' + 'This ensures that `getDerivedStateFromProps` arguments have a consistent shape.', componentName, instance.state === null ? 'null' : 'undefined', componentName);\n }\n } // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Warn about these lifecycles if they are present.\n // Don't warn about react-lifecycles-compat polyfilled methods though.\n\n\n if (typeof ctor.getDerivedStateFromProps === 'function' || typeof instance.getSnapshotBeforeUpdate === 'function') {\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n\n if (typeof instance.componentWillMount === 'function' && instance.componentWillMount.__suppressDeprecationWarning !== true) {\n foundWillMountName = 'componentWillMount';\n } else if (typeof instance.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n\n if (typeof instance.componentWillReceiveProps === 'function' && instance.componentWillReceiveProps.__suppressDeprecationWarning !== true) {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof instance.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n\n if (typeof instance.componentWillUpdate === 'function' && instance.componentWillUpdate.__suppressDeprecationWarning !== true) {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof instance.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n\n if (foundWillMountName !== null || foundWillReceivePropsName !== null || foundWillUpdateName !== null) {\n var _componentName = getComponentName(ctor) || 'Component';\n\n var newApiName = typeof ctor.getDerivedStateFromProps === 'function' ? 'getDerivedStateFromProps()' : 'getSnapshotBeforeUpdate()';\n\n if (!didWarnAboutLegacyLifecyclesAndDerivedState.has(_componentName)) {\n didWarnAboutLegacyLifecyclesAndDerivedState.add(_componentName);\n\n error('Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' + '%s uses %s but also contains the following legacy lifecycles:%s%s%s\\n\\n' + 'The above lifecycles should be removed. Learn more about this warning here:\\n' + 'https://reactjs.org/link/unsafe-component-lifecycles', _componentName, newApiName, foundWillMountName !== null ? \"\\n \" + foundWillMountName : '', foundWillReceivePropsName !== null ? \"\\n \" + foundWillReceivePropsName : '', foundWillUpdateName !== null ? \"\\n \" + foundWillUpdateName : '');\n }\n }\n }\n } // Cache unmasked context so we can avoid recreating masked context unless necessary.\n // ReactFiberContext usually updates this cache but can't for newly-created instances.\n\n\n if (isLegacyContextConsumer) {\n cacheContext(workInProgress, unmaskedContext, context);\n }\n\n return instance;\n}\n\nfunction callComponentWillMount(workInProgress, instance) {\n var oldState = instance.state;\n\n if (typeof instance.componentWillMount === 'function') {\n instance.componentWillMount();\n }\n\n if (typeof instance.UNSAFE_componentWillMount === 'function') {\n instance.UNSAFE_componentWillMount();\n }\n\n if (oldState !== instance.state) {\n {\n error('%s.componentWillMount(): Assigning directly to this.state is ' + \"deprecated (except inside a component's \" + 'constructor). Use setState instead.', getComponentName(workInProgress.type) || 'Component');\n }\n\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n }\n}\n\nfunction callComponentWillReceiveProps(workInProgress, instance, newProps, nextContext) {\n var oldState = instance.state;\n\n if (typeof instance.componentWillReceiveProps === 'function') {\n instance.componentWillReceiveProps(newProps, nextContext);\n }\n\n if (typeof instance.UNSAFE_componentWillReceiveProps === 'function') {\n instance.UNSAFE_componentWillReceiveProps(newProps, nextContext);\n }\n\n if (instance.state !== oldState) {\n {\n var componentName = getComponentName(workInProgress.type) || 'Component';\n\n if (!didWarnAboutStateAssignmentForComponent.has(componentName)) {\n didWarnAboutStateAssignmentForComponent.add(componentName);\n\n error('%s.componentWillReceiveProps(): Assigning directly to ' + \"this.state is deprecated (except inside a component's \" + 'constructor). Use setState instead.', componentName);\n }\n }\n\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n }\n} // Invokes the mount life-cycles on a previously never rendered instance.\n\n\nfunction mountClassInstance(workInProgress, ctor, newProps, renderLanes) {\n {\n checkClassInstance(workInProgress, ctor, newProps);\n }\n\n var instance = workInProgress.stateNode;\n instance.props = newProps;\n instance.state = workInProgress.memoizedState;\n instance.refs = emptyRefsObject;\n initializeUpdateQueue(workInProgress);\n var contextType = ctor.contextType;\n\n if (typeof contextType === 'object' && contextType !== null) {\n instance.context = readContext(contextType);\n } else {\n var unmaskedContext = getUnmaskedContext(workInProgress, ctor, true);\n instance.context = getMaskedContext(workInProgress, unmaskedContext);\n }\n\n {\n if (instance.state === newProps) {\n var componentName = getComponentName(ctor) || 'Component';\n\n if (!didWarnAboutDirectlyAssigningPropsToState.has(componentName)) {\n didWarnAboutDirectlyAssigningPropsToState.add(componentName);\n\n error('%s: It is not recommended to assign props directly to state ' + \"because updates to props won't be reflected in state. \" + 'In most cases, it is better to use props directly.', componentName);\n }\n }\n\n if (workInProgress.mode & StrictMode) {\n ReactStrictModeWarnings.recordLegacyContextWarning(workInProgress, instance);\n }\n\n {\n ReactStrictModeWarnings.recordUnsafeLifecycleWarnings(workInProgress, instance);\n }\n }\n\n processUpdateQueue(workInProgress, newProps, instance, renderLanes);\n instance.state = workInProgress.memoizedState;\n var getDerivedStateFromProps = ctor.getDerivedStateFromProps;\n\n if (typeof getDerivedStateFromProps === 'function') {\n applyDerivedStateFromProps(workInProgress, ctor, getDerivedStateFromProps, newProps);\n instance.state = workInProgress.memoizedState;\n } // In order to support react-lifecycles-compat polyfilled components,\n // Unsafe lifecycles should not be invoked for components using the new APIs.\n\n\n if (typeof ctor.getDerivedStateFromProps !== 'function' && typeof instance.getSnapshotBeforeUpdate !== 'function' && (typeof instance.UNSAFE_componentWillMount === 'function' || typeof instance.componentWillMount === 'function')) {\n callComponentWillMount(workInProgress, instance); // If we had additional state updates during this life-cycle, let's\n // process them now.\n\n processUpdateQueue(workInProgress, newProps, instance, renderLanes);\n instance.state = workInProgress.memoizedState;\n }\n\n if (typeof instance.componentDidMount === 'function') {\n workInProgress.flags |= Update;\n }\n}\n\nfunction resumeMountClassInstance(workInProgress, ctor, newProps, renderLanes) {\n var instance = workInProgress.stateNode;\n var oldProps = workInProgress.memoizedProps;\n instance.props = oldProps;\n var oldContext = instance.context;\n var contextType = ctor.contextType;\n var nextContext = emptyContextObject;\n\n if (typeof contextType === 'object' && contextType !== null) {\n nextContext = readContext(contextType);\n } else {\n var nextLegacyUnmaskedContext = getUnmaskedContext(workInProgress, ctor, true);\n nextContext = getMaskedContext(workInProgress, nextLegacyUnmaskedContext);\n }\n\n var getDerivedStateFromProps = ctor.getDerivedStateFromProps;\n var hasNewLifecycles = typeof getDerivedStateFromProps === 'function' || typeof instance.getSnapshotBeforeUpdate === 'function'; // Note: During these life-cycles, instance.props/instance.state are what\n // ever the previously attempted to render - not the \"current\". However,\n // during componentDidUpdate we pass the \"current\" props.\n // In order to support react-lifecycles-compat polyfilled components,\n // Unsafe lifecycles should not be invoked for components using the new APIs.\n\n if (!hasNewLifecycles && (typeof instance.UNSAFE_componentWillReceiveProps === 'function' || typeof instance.componentWillReceiveProps === 'function')) {\n if (oldProps !== newProps || oldContext !== nextContext) {\n callComponentWillReceiveProps(workInProgress, instance, newProps, nextContext);\n }\n }\n\n resetHasForceUpdateBeforeProcessing();\n var oldState = workInProgress.memoizedState;\n var newState = instance.state = oldState;\n processUpdateQueue(workInProgress, newProps, instance, renderLanes);\n newState = workInProgress.memoizedState;\n\n if (oldProps === newProps && oldState === newState && !hasContextChanged() && !checkHasForceUpdateAfterProcessing()) {\n // If an update was already in progress, we should schedule an Update\n // effect even though we're bailing out, so that cWU/cDU are called.\n if (typeof instance.componentDidMount === 'function') {\n workInProgress.flags |= Update;\n }\n\n return false;\n }\n\n if (typeof getDerivedStateFromProps === 'function') {\n applyDerivedStateFromProps(workInProgress, ctor, getDerivedStateFromProps, newProps);\n newState = workInProgress.memoizedState;\n }\n\n var shouldUpdate = checkHasForceUpdateAfterProcessing() || checkShouldComponentUpdate(workInProgress, ctor, oldProps, newProps, oldState, newState, nextContext);\n\n if (shouldUpdate) {\n // In order to support react-lifecycles-compat polyfilled components,\n // Unsafe lifecycles should not be invoked for components using the new APIs.\n if (!hasNewLifecycles && (typeof instance.UNSAFE_componentWillMount === 'function' || typeof instance.componentWillMount === 'function')) {\n if (typeof instance.componentWillMount === 'function') {\n instance.componentWillMount();\n }\n\n if (typeof instance.UNSAFE_componentWillMount === 'function') {\n instance.UNSAFE_componentWillMount();\n }\n }\n\n if (typeof instance.componentDidMount === 'function') {\n workInProgress.flags |= Update;\n }\n } else {\n // If an update was already in progress, we should schedule an Update\n // effect even though we're bailing out, so that cWU/cDU are called.\n if (typeof instance.componentDidMount === 'function') {\n workInProgress.flags |= Update;\n } // If shouldComponentUpdate returned false, we should still update the\n // memoized state to indicate that this work can be reused.\n\n\n workInProgress.memoizedProps = newProps;\n workInProgress.memoizedState = newState;\n } // Update the existing instance's state, props, and context pointers even\n // if shouldComponentUpdate returns false.\n\n\n instance.props = newProps;\n instance.state = newState;\n instance.context = nextContext;\n return shouldUpdate;\n} // Invokes the update life-cycles and returns false if it shouldn't rerender.\n\n\nfunction updateClassInstance(current, workInProgress, ctor, newProps, renderLanes) {\n var instance = workInProgress.stateNode;\n cloneUpdateQueue(current, workInProgress);\n var unresolvedOldProps = workInProgress.memoizedProps;\n var oldProps = workInProgress.type === workInProgress.elementType ? unresolvedOldProps : resolveDefaultProps(workInProgress.type, unresolvedOldProps);\n instance.props = oldProps;\n var unresolvedNewProps = workInProgress.pendingProps;\n var oldContext = instance.context;\n var contextType = ctor.contextType;\n var nextContext = emptyContextObject;\n\n if (typeof contextType === 'object' && contextType !== null) {\n nextContext = readContext(contextType);\n } else {\n var nextUnmaskedContext = getUnmaskedContext(workInProgress, ctor, true);\n nextContext = getMaskedContext(workInProgress, nextUnmaskedContext);\n }\n\n var getDerivedStateFromProps = ctor.getDerivedStateFromProps;\n var hasNewLifecycles = typeof getDerivedStateFromProps === 'function' || typeof instance.getSnapshotBeforeUpdate === 'function'; // Note: During these life-cycles, instance.props/instance.state are what\n // ever the previously attempted to render - not the \"current\". However,\n // during componentDidUpdate we pass the \"current\" props.\n // In order to support react-lifecycles-compat polyfilled components,\n // Unsafe lifecycles should not be invoked for components using the new APIs.\n\n if (!hasNewLifecycles && (typeof instance.UNSAFE_componentWillReceiveProps === 'function' || typeof instance.componentWillReceiveProps === 'function')) {\n if (unresolvedOldProps !== unresolvedNewProps || oldContext !== nextContext) {\n callComponentWillReceiveProps(workInProgress, instance, newProps, nextContext);\n }\n }\n\n resetHasForceUpdateBeforeProcessing();\n var oldState = workInProgress.memoizedState;\n var newState = instance.state = oldState;\n processUpdateQueue(workInProgress, newProps, instance, renderLanes);\n newState = workInProgress.memoizedState;\n\n if (unresolvedOldProps === unresolvedNewProps && oldState === newState && !hasContextChanged() && !checkHasForceUpdateAfterProcessing()) {\n // If an update was already in progress, we should schedule an Update\n // effect even though we're bailing out, so that cWU/cDU are called.\n if (typeof instance.componentDidUpdate === 'function') {\n if (unresolvedOldProps !== current.memoizedProps || oldState !== current.memoizedState) {\n workInProgress.flags |= Update;\n }\n }\n\n if (typeof instance.getSnapshotBeforeUpdate === 'function') {\n if (unresolvedOldProps !== current.memoizedProps || oldState !== current.memoizedState) {\n workInProgress.flags |= Snapshot;\n }\n }\n\n return false;\n }\n\n if (typeof getDerivedStateFromProps === 'function') {\n applyDerivedStateFromProps(workInProgress, ctor, getDerivedStateFromProps, newProps);\n newState = workInProgress.memoizedState;\n }\n\n var shouldUpdate = checkHasForceUpdateAfterProcessing() || checkShouldComponentUpdate(workInProgress, ctor, oldProps, newProps, oldState, newState, nextContext);\n\n if (shouldUpdate) {\n // In order to support react-lifecycles-compat polyfilled components,\n // Unsafe lifecycles should not be invoked for components using the new APIs.\n if (!hasNewLifecycles && (typeof instance.UNSAFE_componentWillUpdate === 'function' || typeof instance.componentWillUpdate === 'function')) {\n if (typeof instance.componentWillUpdate === 'function') {\n instance.componentWillUpdate(newProps, newState, nextContext);\n }\n\n if (typeof instance.UNSAFE_componentWillUpdate === 'function') {\n instance.UNSAFE_componentWillUpdate(newProps, newState, nextContext);\n }\n }\n\n if (typeof instance.componentDidUpdate === 'function') {\n workInProgress.flags |= Update;\n }\n\n if (typeof instance.getSnapshotBeforeUpdate === 'function') {\n workInProgress.flags |= Snapshot;\n }\n } else {\n // If an update was already in progress, we should schedule an Update\n // effect even though we're bailing out, so that cWU/cDU are called.\n if (typeof instance.componentDidUpdate === 'function') {\n if (unresolvedOldProps !== current.memoizedProps || oldState !== current.memoizedState) {\n workInProgress.flags |= Update;\n }\n }\n\n if (typeof instance.getSnapshotBeforeUpdate === 'function') {\n if (unresolvedOldProps !== current.memoizedProps || oldState !== current.memoizedState) {\n workInProgress.flags |= Snapshot;\n }\n } // If shouldComponentUpdate returned false, we should still update the\n // memoized props/state to indicate that this work can be reused.\n\n\n workInProgress.memoizedProps = newProps;\n workInProgress.memoizedState = newState;\n } // Update the existing instance's state, props, and context pointers even\n // if shouldComponentUpdate returns false.\n\n\n instance.props = newProps;\n instance.state = newState;\n instance.context = nextContext;\n return shouldUpdate;\n}\n\nvar didWarnAboutMaps;\nvar didWarnAboutGenerators;\nvar didWarnAboutStringRefs;\nvar ownerHasKeyUseWarning;\nvar ownerHasFunctionTypeWarning;\n\nvar warnForMissingKey = function (child, returnFiber) {};\n\n{\n didWarnAboutMaps = false;\n didWarnAboutGenerators = false;\n didWarnAboutStringRefs = {};\n /**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n\n ownerHasKeyUseWarning = {};\n ownerHasFunctionTypeWarning = {};\n\n warnForMissingKey = function (child, returnFiber) {\n if (child === null || typeof child !== 'object') {\n return;\n }\n\n if (!child._store || child._store.validated || child.key != null) {\n return;\n }\n\n if (!(typeof child._store === 'object')) {\n {\n throw Error( \"React Component in warnForMissingKey should have a _store. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n\n child._store.validated = true;\n var componentName = getComponentName(returnFiber.type) || 'Component';\n\n if (ownerHasKeyUseWarning[componentName]) {\n return;\n }\n\n ownerHasKeyUseWarning[componentName] = true;\n\n error('Each child in a list should have a unique ' + '\"key\" prop. See https://reactjs.org/link/warning-keys for ' + 'more information.');\n };\n}\n\nvar isArray$1 = Array.isArray;\n\nfunction coerceRef(returnFiber, current, element) {\n var mixedRef = element.ref;\n\n if (mixedRef !== null && typeof mixedRef !== 'function' && typeof mixedRef !== 'object') {\n {\n // TODO: Clean this up once we turn on the string ref warning for\n // everyone, because the strict mode case will no longer be relevant\n if ((returnFiber.mode & StrictMode || warnAboutStringRefs) && // We warn in ReactElement.js if owner and self are equal for string refs\n // because these cannot be automatically converted to an arrow function\n // using a codemod. Therefore, we don't have to warn about string refs again.\n !(element._owner && element._self && element._owner.stateNode !== element._self)) {\n var componentName = getComponentName(returnFiber.type) || 'Component';\n\n if (!didWarnAboutStringRefs[componentName]) {\n {\n error('A string ref, \"%s\", has been found within a strict mode tree. ' + 'String refs are a source of potential bugs and should be avoided. ' + 'We recommend using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', mixedRef);\n }\n\n didWarnAboutStringRefs[componentName] = true;\n }\n }\n }\n\n if (element._owner) {\n var owner = element._owner;\n var inst;\n\n if (owner) {\n var ownerFiber = owner;\n\n if (!(ownerFiber.tag === ClassComponent)) {\n {\n throw Error( \"Function components cannot have string refs. We recommend using useRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref\" );\n }\n }\n\n inst = ownerFiber.stateNode;\n }\n\n if (!inst) {\n {\n throw Error( \"Missing owner for string ref \" + mixedRef + \". This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n\n var stringRef = '' + mixedRef; // Check if previous string ref matches new string ref\n\n if (current !== null && current.ref !== null && typeof current.ref === 'function' && current.ref._stringRef === stringRef) {\n return current.ref;\n }\n\n var ref = function (value) {\n var refs = inst.refs;\n\n if (refs === emptyRefsObject) {\n // This is a lazy pooled frozen object, so we need to initialize.\n refs = inst.refs = {};\n }\n\n if (value === null) {\n delete refs[stringRef];\n } else {\n refs[stringRef] = value;\n }\n };\n\n ref._stringRef = stringRef;\n return ref;\n } else {\n if (!(typeof mixedRef === 'string')) {\n {\n throw Error( \"Expected ref to be a function, a string, an object returned by React.createRef(), or null.\" );\n }\n }\n\n if (!element._owner) {\n {\n throw Error( \"Element ref was specified as a string (\" + mixedRef + \") but no owner was set. This could happen for one of the following reasons:\\n1. You may be adding a ref to a function component\\n2. You may be adding a ref to a component that was not created inside a component's render method\\n3. You have multiple copies of React loaded\\nSee https://reactjs.org/link/refs-must-have-owner for more information.\" );\n }\n }\n }\n }\n\n return mixedRef;\n}\n\nfunction throwOnInvalidObjectType(returnFiber, newChild) {\n if (returnFiber.type !== 'textarea') {\n {\n {\n throw Error( \"Objects are not valid as a React child (found: \" + (Object.prototype.toString.call(newChild) === '[object Object]' ? 'object with keys {' + Object.keys(newChild).join(', ') + '}' : newChild) + \"). If you meant to render a collection of children, use an array instead.\" );\n }\n }\n }\n}\n\nfunction warnOnFunctionType(returnFiber) {\n {\n var componentName = getComponentName(returnFiber.type) || 'Component';\n\n if (ownerHasFunctionTypeWarning[componentName]) {\n return;\n }\n\n ownerHasFunctionTypeWarning[componentName] = true;\n\n error('Functions are not valid as a React child. This may happen if ' + 'you return a Component instead of <Component /> from render. ' + 'Or maybe you meant to call this function rather than return it.');\n }\n} // We avoid inlining this to avoid potential deopts from using try/catch.\n// to be able to optimize each path individually by branching early. This needs\n// a compiler or we can do it manually. Helpers that don't need this branching\n// live outside of this function.\n\n\nfunction ChildReconciler(shouldTrackSideEffects) {\n function deleteChild(returnFiber, childToDelete) {\n if (!shouldTrackSideEffects) {\n // Noop.\n return;\n } // Deletions are added in reversed order so we add it to the front.\n // At this point, the return fiber's effect list is empty except for\n // deletions, so we can just append the deletion to the list. The remaining\n // effects aren't added until the complete phase. Once we implement\n // resuming, this may not be true.\n\n\n var last = returnFiber.lastEffect;\n\n if (last !== null) {\n last.nextEffect = childToDelete;\n returnFiber.lastEffect = childToDelete;\n } else {\n returnFiber.firstEffect = returnFiber.lastEffect = childToDelete;\n }\n\n childToDelete.nextEffect = null;\n childToDelete.flags = Deletion;\n }\n\n function deleteRemainingChildren(returnFiber, currentFirstChild) {\n if (!shouldTrackSideEffects) {\n // Noop.\n return null;\n } // TODO: For the shouldClone case, this could be micro-optimized a bit by\n // assuming that after the first child we've already added everything.\n\n\n var childToDelete = currentFirstChild;\n\n while (childToDelete !== null) {\n deleteChild(returnFiber, childToDelete);\n childToDelete = childToDelete.sibling;\n }\n\n return null;\n }\n\n function mapRemainingChildren(returnFiber, currentFirstChild) {\n // Add the remaining children to a temporary map so that we can find them by\n // keys quickly. Implicit (null) keys get added to this set with their index\n // instead.\n var existingChildren = new Map();\n var existingChild = currentFirstChild;\n\n while (existingChild !== null) {\n if (existingChild.key !== null) {\n existingChildren.set(existingChild.key, existingChild);\n } else {\n existingChildren.set(existingChild.index, existingChild);\n }\n\n existingChild = existingChild.sibling;\n }\n\n return existingChildren;\n }\n\n function useFiber(fiber, pendingProps) {\n // We currently set sibling to null and index to 0 here because it is easy\n // to forget to do before returning it. E.g. for the single child case.\n var clone = createWorkInProgress(fiber, pendingProps);\n clone.index = 0;\n clone.sibling = null;\n return clone;\n }\n\n function placeChild(newFiber, lastPlacedIndex, newIndex) {\n newFiber.index = newIndex;\n\n if (!shouldTrackSideEffects) {\n // Noop.\n return lastPlacedIndex;\n }\n\n var current = newFiber.alternate;\n\n if (current !== null) {\n var oldIndex = current.index;\n\n if (oldIndex < lastPlacedIndex) {\n // This is a move.\n newFiber.flags = Placement;\n return lastPlacedIndex;\n } else {\n // This item can stay in place.\n return oldIndex;\n }\n } else {\n // This is an insertion.\n newFiber.flags = Placement;\n return lastPlacedIndex;\n }\n }\n\n function placeSingleChild(newFiber) {\n // This is simpler for the single child case. We only need to do a\n // placement for inserting new children.\n if (shouldTrackSideEffects && newFiber.alternate === null) {\n newFiber.flags = Placement;\n }\n\n return newFiber;\n }\n\n function updateTextNode(returnFiber, current, textContent, lanes) {\n if (current === null || current.tag !== HostText) {\n // Insert\n var created = createFiberFromText(textContent, returnFiber.mode, lanes);\n created.return = returnFiber;\n return created;\n } else {\n // Update\n var existing = useFiber(current, textContent);\n existing.return = returnFiber;\n return existing;\n }\n }\n\n function updateElement(returnFiber, current, element, lanes) {\n if (current !== null) {\n if (current.elementType === element.type || ( // Keep this check inline so it only runs on the false path:\n isCompatibleFamilyForHotReloading(current, element) )) {\n // Move based on index\n var existing = useFiber(current, element.props);\n existing.ref = coerceRef(returnFiber, current, element);\n existing.return = returnFiber;\n\n {\n existing._debugSource = element._source;\n existing._debugOwner = element._owner;\n }\n\n return existing;\n }\n } // Insert\n\n\n var created = createFiberFromElement(element, returnFiber.mode, lanes);\n created.ref = coerceRef(returnFiber, current, element);\n created.return = returnFiber;\n return created;\n }\n\n function updatePortal(returnFiber, current, portal, lanes) {\n if (current === null || current.tag !== HostPortal || current.stateNode.containerInfo !== portal.containerInfo || current.stateNode.implementation !== portal.implementation) {\n // Insert\n var created = createFiberFromPortal(portal, returnFiber.mode, lanes);\n created.return = returnFiber;\n return created;\n } else {\n // Update\n var existing = useFiber(current, portal.children || []);\n existing.return = returnFiber;\n return existing;\n }\n }\n\n function updateFragment(returnFiber, current, fragment, lanes, key) {\n if (current === null || current.tag !== Fragment) {\n // Insert\n var created = createFiberFromFragment(fragment, returnFiber.mode, lanes, key);\n created.return = returnFiber;\n return created;\n } else {\n // Update\n var existing = useFiber(current, fragment);\n existing.return = returnFiber;\n return existing;\n }\n }\n\n function createChild(returnFiber, newChild, lanes) {\n if (typeof newChild === 'string' || typeof newChild === 'number') {\n // Text nodes don't have keys. If the previous node is implicitly keyed\n // we can continue to replace it without aborting even if it is not a text\n // node.\n var created = createFiberFromText('' + newChild, returnFiber.mode, lanes);\n created.return = returnFiber;\n return created;\n }\n\n if (typeof newChild === 'object' && newChild !== null) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n {\n var _created = createFiberFromElement(newChild, returnFiber.mode, lanes);\n\n _created.ref = coerceRef(returnFiber, null, newChild);\n _created.return = returnFiber;\n return _created;\n }\n\n case REACT_PORTAL_TYPE:\n {\n var _created2 = createFiberFromPortal(newChild, returnFiber.mode, lanes);\n\n _created2.return = returnFiber;\n return _created2;\n }\n }\n\n if (isArray$1(newChild) || getIteratorFn(newChild)) {\n var _created3 = createFiberFromFragment(newChild, returnFiber.mode, lanes, null);\n\n _created3.return = returnFiber;\n return _created3;\n }\n\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n\n {\n if (typeof newChild === 'function') {\n warnOnFunctionType(returnFiber);\n }\n }\n\n return null;\n }\n\n function updateSlot(returnFiber, oldFiber, newChild, lanes) {\n // Update the fiber if the keys match, otherwise return null.\n var key = oldFiber !== null ? oldFiber.key : null;\n\n if (typeof newChild === 'string' || typeof newChild === 'number') {\n // Text nodes don't have keys. If the previous node is implicitly keyed\n // we can continue to replace it without aborting even if it is not a text\n // node.\n if (key !== null) {\n return null;\n }\n\n return updateTextNode(returnFiber, oldFiber, '' + newChild, lanes);\n }\n\n if (typeof newChild === 'object' && newChild !== null) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n {\n if (newChild.key === key) {\n if (newChild.type === REACT_FRAGMENT_TYPE) {\n return updateFragment(returnFiber, oldFiber, newChild.props.children, lanes, key);\n }\n\n return updateElement(returnFiber, oldFiber, newChild, lanes);\n } else {\n return null;\n }\n }\n\n case REACT_PORTAL_TYPE:\n {\n if (newChild.key === key) {\n return updatePortal(returnFiber, oldFiber, newChild, lanes);\n } else {\n return null;\n }\n }\n }\n\n if (isArray$1(newChild) || getIteratorFn(newChild)) {\n if (key !== null) {\n return null;\n }\n\n return updateFragment(returnFiber, oldFiber, newChild, lanes, null);\n }\n\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n\n {\n if (typeof newChild === 'function') {\n warnOnFunctionType(returnFiber);\n }\n }\n\n return null;\n }\n\n function updateFromMap(existingChildren, returnFiber, newIdx, newChild, lanes) {\n if (typeof newChild === 'string' || typeof newChild === 'number') {\n // Text nodes don't have keys, so we neither have to check the old nor\n // new node for the key. If both are text nodes, they match.\n var matchedFiber = existingChildren.get(newIdx) || null;\n return updateTextNode(returnFiber, matchedFiber, '' + newChild, lanes);\n }\n\n if (typeof newChild === 'object' && newChild !== null) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n {\n var _matchedFiber = existingChildren.get(newChild.key === null ? newIdx : newChild.key) || null;\n\n if (newChild.type === REACT_FRAGMENT_TYPE) {\n return updateFragment(returnFiber, _matchedFiber, newChild.props.children, lanes, newChild.key);\n }\n\n return updateElement(returnFiber, _matchedFiber, newChild, lanes);\n }\n\n case REACT_PORTAL_TYPE:\n {\n var _matchedFiber2 = existingChildren.get(newChild.key === null ? newIdx : newChild.key) || null;\n\n return updatePortal(returnFiber, _matchedFiber2, newChild, lanes);\n }\n\n }\n\n if (isArray$1(newChild) || getIteratorFn(newChild)) {\n var _matchedFiber3 = existingChildren.get(newIdx) || null;\n\n return updateFragment(returnFiber, _matchedFiber3, newChild, lanes, null);\n }\n\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n\n {\n if (typeof newChild === 'function') {\n warnOnFunctionType(returnFiber);\n }\n }\n\n return null;\n }\n /**\n * Warns if there is a duplicate or missing key\n */\n\n\n function warnOnInvalidKey(child, knownKeys, returnFiber) {\n {\n if (typeof child !== 'object' || child === null) {\n return knownKeys;\n }\n\n switch (child.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n warnForMissingKey(child, returnFiber);\n var key = child.key;\n\n if (typeof key !== 'string') {\n break;\n }\n\n if (knownKeys === null) {\n knownKeys = new Set();\n knownKeys.add(key);\n break;\n }\n\n if (!knownKeys.has(key)) {\n knownKeys.add(key);\n break;\n }\n\n error('Encountered two children with the same key, `%s`. ' + 'Keys should be unique so that components maintain their identity ' + 'across updates. Non-unique keys may cause children to be ' + 'duplicated and/or omitted — the behavior is unsupported and ' + 'could change in a future version.', key);\n\n break;\n }\n }\n\n return knownKeys;\n }\n\n function reconcileChildrenArray(returnFiber, currentFirstChild, newChildren, lanes) {\n // This algorithm can't optimize by searching from both ends since we\n // don't have backpointers on fibers. I'm trying to see how far we can get\n // with that model. If it ends up not being worth the tradeoffs, we can\n // add it later.\n // Even with a two ended optimization, we'd want to optimize for the case\n // where there are few changes and brute force the comparison instead of\n // going for the Map. It'd like to explore hitting that path first in\n // forward-only mode and only go for the Map once we notice that we need\n // lots of look ahead. This doesn't handle reversal as well as two ended\n // search but that's unusual. Besides, for the two ended optimization to\n // work on Iterables, we'd need to copy the whole set.\n // In this first iteration, we'll just live with hitting the bad case\n // (adding everything to a Map) in for every insert/move.\n // If you change this code, also update reconcileChildrenIterator() which\n // uses the same algorithm.\n {\n // First, validate keys.\n var knownKeys = null;\n\n for (var i = 0; i < newChildren.length; i++) {\n var child = newChildren[i];\n knownKeys = warnOnInvalidKey(child, knownKeys, returnFiber);\n }\n }\n\n var resultingFirstChild = null;\n var previousNewFiber = null;\n var oldFiber = currentFirstChild;\n var lastPlacedIndex = 0;\n var newIdx = 0;\n var nextOldFiber = null;\n\n for (; oldFiber !== null && newIdx < newChildren.length; newIdx++) {\n if (oldFiber.index > newIdx) {\n nextOldFiber = oldFiber;\n oldFiber = null;\n } else {\n nextOldFiber = oldFiber.sibling;\n }\n\n var newFiber = updateSlot(returnFiber, oldFiber, newChildren[newIdx], lanes);\n\n if (newFiber === null) {\n // TODO: This breaks on empty slots like null children. That's\n // unfortunate because it triggers the slow path all the time. We need\n // a better way to communicate whether this was a miss or null,\n // boolean, undefined, etc.\n if (oldFiber === null) {\n oldFiber = nextOldFiber;\n }\n\n break;\n }\n\n if (shouldTrackSideEffects) {\n if (oldFiber && newFiber.alternate === null) {\n // We matched the slot, but we didn't reuse the existing fiber, so we\n // need to delete the existing child.\n deleteChild(returnFiber, oldFiber);\n }\n }\n\n lastPlacedIndex = placeChild(newFiber, lastPlacedIndex, newIdx);\n\n if (previousNewFiber === null) {\n // TODO: Move out of the loop. This only happens for the first run.\n resultingFirstChild = newFiber;\n } else {\n // TODO: Defer siblings if we're not at the right index for this slot.\n // I.e. if we had null values before, then we want to defer this\n // for each null value. However, we also don't want to call updateSlot\n // with the previous one.\n previousNewFiber.sibling = newFiber;\n }\n\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n\n if (newIdx === newChildren.length) {\n // We've reached the end of the new children. We can delete the rest.\n deleteRemainingChildren(returnFiber, oldFiber);\n return resultingFirstChild;\n }\n\n if (oldFiber === null) {\n // If we don't have any more existing children we can choose a fast path\n // since the rest will all be insertions.\n for (; newIdx < newChildren.length; newIdx++) {\n var _newFiber = createChild(returnFiber, newChildren[newIdx], lanes);\n\n if (_newFiber === null) {\n continue;\n }\n\n lastPlacedIndex = placeChild(_newFiber, lastPlacedIndex, newIdx);\n\n if (previousNewFiber === null) {\n // TODO: Move out of the loop. This only happens for the first run.\n resultingFirstChild = _newFiber;\n } else {\n previousNewFiber.sibling = _newFiber;\n }\n\n previousNewFiber = _newFiber;\n }\n\n return resultingFirstChild;\n } // Add all children to a key map for quick lookups.\n\n\n var existingChildren = mapRemainingChildren(returnFiber, oldFiber); // Keep scanning and use the map to restore deleted items as moves.\n\n for (; newIdx < newChildren.length; newIdx++) {\n var _newFiber2 = updateFromMap(existingChildren, returnFiber, newIdx, newChildren[newIdx], lanes);\n\n if (_newFiber2 !== null) {\n if (shouldTrackSideEffects) {\n if (_newFiber2.alternate !== null) {\n // The new fiber is a work in progress, but if there exists a\n // current, that means that we reused the fiber. We need to delete\n // it from the child list so that we don't add it to the deletion\n // list.\n existingChildren.delete(_newFiber2.key === null ? newIdx : _newFiber2.key);\n }\n }\n\n lastPlacedIndex = placeChild(_newFiber2, lastPlacedIndex, newIdx);\n\n if (previousNewFiber === null) {\n resultingFirstChild = _newFiber2;\n } else {\n previousNewFiber.sibling = _newFiber2;\n }\n\n previousNewFiber = _newFiber2;\n }\n }\n\n if (shouldTrackSideEffects) {\n // Any existing children that weren't consumed above were deleted. We need\n // to add them to the deletion list.\n existingChildren.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n }\n\n return resultingFirstChild;\n }\n\n function reconcileChildrenIterator(returnFiber, currentFirstChild, newChildrenIterable, lanes) {\n // This is the same implementation as reconcileChildrenArray(),\n // but using the iterator instead.\n var iteratorFn = getIteratorFn(newChildrenIterable);\n\n if (!(typeof iteratorFn === 'function')) {\n {\n throw Error( \"An object is not an iterable. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n\n {\n // We don't support rendering Generators because it's a mutation.\n // See https://github.com/facebook/react/issues/12995\n if (typeof Symbol === 'function' && // $FlowFixMe Flow doesn't know about toStringTag\n newChildrenIterable[Symbol.toStringTag] === 'Generator') {\n if (!didWarnAboutGenerators) {\n error('Using Generators as children is unsupported and will likely yield ' + 'unexpected results because enumerating a generator mutates it. ' + 'You may convert it to an array with `Array.from()` or the ' + '`[...spread]` operator before rendering. Keep in mind ' + 'you might need to polyfill these features for older browsers.');\n }\n\n didWarnAboutGenerators = true;\n } // Warn about using Maps as children\n\n\n if (newChildrenIterable.entries === iteratorFn) {\n if (!didWarnAboutMaps) {\n error('Using Maps as children is not supported. ' + 'Use an array of keyed ReactElements instead.');\n }\n\n didWarnAboutMaps = true;\n } // First, validate keys.\n // We'll get a different iterator later for the main pass.\n\n\n var _newChildren = iteratorFn.call(newChildrenIterable);\n\n if (_newChildren) {\n var knownKeys = null;\n\n var _step = _newChildren.next();\n\n for (; !_step.done; _step = _newChildren.next()) {\n var child = _step.value;\n knownKeys = warnOnInvalidKey(child, knownKeys, returnFiber);\n }\n }\n }\n\n var newChildren = iteratorFn.call(newChildrenIterable);\n\n if (!(newChildren != null)) {\n {\n throw Error( \"An iterable object provided no iterator.\" );\n }\n }\n\n var resultingFirstChild = null;\n var previousNewFiber = null;\n var oldFiber = currentFirstChild;\n var lastPlacedIndex = 0;\n var newIdx = 0;\n var nextOldFiber = null;\n var step = newChildren.next();\n\n for (; oldFiber !== null && !step.done; newIdx++, step = newChildren.next()) {\n if (oldFiber.index > newIdx) {\n nextOldFiber = oldFiber;\n oldFiber = null;\n } else {\n nextOldFiber = oldFiber.sibling;\n }\n\n var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes);\n\n if (newFiber === null) {\n // TODO: This breaks on empty slots like null children. That's\n // unfortunate because it triggers the slow path all the time. We need\n // a better way to communicate whether this was a miss or null,\n // boolean, undefined, etc.\n if (oldFiber === null) {\n oldFiber = nextOldFiber;\n }\n\n break;\n }\n\n if (shouldTrackSideEffects) {\n if (oldFiber && newFiber.alternate === null) {\n // We matched the slot, but we didn't reuse the existing fiber, so we\n // need to delete the existing child.\n deleteChild(returnFiber, oldFiber);\n }\n }\n\n lastPlacedIndex = placeChild(newFiber, lastPlacedIndex, newIdx);\n\n if (previousNewFiber === null) {\n // TODO: Move out of the loop. This only happens for the first run.\n resultingFirstChild = newFiber;\n } else {\n // TODO: Defer siblings if we're not at the right index for this slot.\n // I.e. if we had null values before, then we want to defer this\n // for each null value. However, we also don't want to call updateSlot\n // with the previous one.\n previousNewFiber.sibling = newFiber;\n }\n\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n\n if (step.done) {\n // We've reached the end of the new children. We can delete the rest.\n deleteRemainingChildren(returnFiber, oldFiber);\n return resultingFirstChild;\n }\n\n if (oldFiber === null) {\n // If we don't have any more existing children we can choose a fast path\n // since the rest will all be insertions.\n for (; !step.done; newIdx++, step = newChildren.next()) {\n var _newFiber3 = createChild(returnFiber, step.value, lanes);\n\n if (_newFiber3 === null) {\n continue;\n }\n\n lastPlacedIndex = placeChild(_newFiber3, lastPlacedIndex, newIdx);\n\n if (previousNewFiber === null) {\n // TODO: Move out of the loop. This only happens for the first run.\n resultingFirstChild = _newFiber3;\n } else {\n previousNewFiber.sibling = _newFiber3;\n }\n\n previousNewFiber = _newFiber3;\n }\n\n return resultingFirstChild;\n } // Add all children to a key map for quick lookups.\n\n\n var existingChildren = mapRemainingChildren(returnFiber, oldFiber); // Keep scanning and use the map to restore deleted items as moves.\n\n for (; !step.done; newIdx++, step = newChildren.next()) {\n var _newFiber4 = updateFromMap(existingChildren, returnFiber, newIdx, step.value, lanes);\n\n if (_newFiber4 !== null) {\n if (shouldTrackSideEffects) {\n if (_newFiber4.alternate !== null) {\n // The new fiber is a work in progress, but if there exists a\n // current, that means that we reused the fiber. We need to delete\n // it from the child list so that we don't add it to the deletion\n // list.\n existingChildren.delete(_newFiber4.key === null ? newIdx : _newFiber4.key);\n }\n }\n\n lastPlacedIndex = placeChild(_newFiber4, lastPlacedIndex, newIdx);\n\n if (previousNewFiber === null) {\n resultingFirstChild = _newFiber4;\n } else {\n previousNewFiber.sibling = _newFiber4;\n }\n\n previousNewFiber = _newFiber4;\n }\n }\n\n if (shouldTrackSideEffects) {\n // Any existing children that weren't consumed above were deleted. We need\n // to add them to the deletion list.\n existingChildren.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n }\n\n return resultingFirstChild;\n }\n\n function reconcileSingleTextNode(returnFiber, currentFirstChild, textContent, lanes) {\n // There's no need to check for keys on text nodes since we don't have a\n // way to define them.\n if (currentFirstChild !== null && currentFirstChild.tag === HostText) {\n // We already have an existing node so let's just update it and delete\n // the rest.\n deleteRemainingChildren(returnFiber, currentFirstChild.sibling);\n var existing = useFiber(currentFirstChild, textContent);\n existing.return = returnFiber;\n return existing;\n } // The existing first child is not a text node so we need to create one\n // and delete the existing ones.\n\n\n deleteRemainingChildren(returnFiber, currentFirstChild);\n var created = createFiberFromText(textContent, returnFiber.mode, lanes);\n created.return = returnFiber;\n return created;\n }\n\n function reconcileSingleElement(returnFiber, currentFirstChild, element, lanes) {\n var key = element.key;\n var child = currentFirstChild;\n\n while (child !== null) {\n // TODO: If key === null and child.key === null, then this only applies to\n // the first item in the list.\n if (child.key === key) {\n switch (child.tag) {\n case Fragment:\n {\n if (element.type === REACT_FRAGMENT_TYPE) {\n deleteRemainingChildren(returnFiber, child.sibling);\n var existing = useFiber(child, element.props.children);\n existing.return = returnFiber;\n\n {\n existing._debugSource = element._source;\n existing._debugOwner = element._owner;\n }\n\n return existing;\n }\n\n break;\n }\n\n case Block:\n\n // We intentionally fallthrough here if enableBlocksAPI is not on.\n // eslint-disable-next-lined no-fallthrough\n\n default:\n {\n if (child.elementType === element.type || ( // Keep this check inline so it only runs on the false path:\n isCompatibleFamilyForHotReloading(child, element) )) {\n deleteRemainingChildren(returnFiber, child.sibling);\n\n var _existing3 = useFiber(child, element.props);\n\n _existing3.ref = coerceRef(returnFiber, child, element);\n _existing3.return = returnFiber;\n\n {\n _existing3._debugSource = element._source;\n _existing3._debugOwner = element._owner;\n }\n\n return _existing3;\n }\n\n break;\n }\n } // Didn't match.\n\n\n deleteRemainingChildren(returnFiber, child);\n break;\n } else {\n deleteChild(returnFiber, child);\n }\n\n child = child.sibling;\n }\n\n if (element.type === REACT_FRAGMENT_TYPE) {\n var created = createFiberFromFragment(element.props.children, returnFiber.mode, lanes, element.key);\n created.return = returnFiber;\n return created;\n } else {\n var _created4 = createFiberFromElement(element, returnFiber.mode, lanes);\n\n _created4.ref = coerceRef(returnFiber, currentFirstChild, element);\n _created4.return = returnFiber;\n return _created4;\n }\n }\n\n function reconcileSinglePortal(returnFiber, currentFirstChild, portal, lanes) {\n var key = portal.key;\n var child = currentFirstChild;\n\n while (child !== null) {\n // TODO: If key === null and child.key === null, then this only applies to\n // the first item in the list.\n if (child.key === key) {\n if (child.tag === HostPortal && child.stateNode.containerInfo === portal.containerInfo && child.stateNode.implementation === portal.implementation) {\n deleteRemainingChildren(returnFiber, child.sibling);\n var existing = useFiber(child, portal.children || []);\n existing.return = returnFiber;\n return existing;\n } else {\n deleteRemainingChildren(returnFiber, child);\n break;\n }\n } else {\n deleteChild(returnFiber, child);\n }\n\n child = child.sibling;\n }\n\n var created = createFiberFromPortal(portal, returnFiber.mode, lanes);\n created.return = returnFiber;\n return created;\n } // This API will tag the children with the side-effect of the reconciliation\n // itself. They will be added to the side-effect list as we pass through the\n // children and the parent.\n\n\n function reconcileChildFibers(returnFiber, currentFirstChild, newChild, lanes) {\n // This function is not recursive.\n // If the top level item is an array, we treat it as a set of children,\n // not as a fragment. Nested arrays on the other hand will be treated as\n // fragment nodes. Recursion happens at the normal flow.\n // Handle top level unkeyed fragments as if they were arrays.\n // This leads to an ambiguity between <>{[...]}</> and <>...</>.\n // We treat the ambiguous cases above the same.\n var isUnkeyedTopLevelFragment = typeof newChild === 'object' && newChild !== null && newChild.type === REACT_FRAGMENT_TYPE && newChild.key === null;\n\n if (isUnkeyedTopLevelFragment) {\n newChild = newChild.props.children;\n } // Handle object types\n\n\n var isObject = typeof newChild === 'object' && newChild !== null;\n\n if (isObject) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return placeSingleChild(reconcileSingleElement(returnFiber, currentFirstChild, newChild, lanes));\n\n case REACT_PORTAL_TYPE:\n return placeSingleChild(reconcileSinglePortal(returnFiber, currentFirstChild, newChild, lanes));\n\n }\n }\n\n if (typeof newChild === 'string' || typeof newChild === 'number') {\n return placeSingleChild(reconcileSingleTextNode(returnFiber, currentFirstChild, '' + newChild, lanes));\n }\n\n if (isArray$1(newChild)) {\n return reconcileChildrenArray(returnFiber, currentFirstChild, newChild, lanes);\n }\n\n if (getIteratorFn(newChild)) {\n return reconcileChildrenIterator(returnFiber, currentFirstChild, newChild, lanes);\n }\n\n if (isObject) {\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n\n {\n if (typeof newChild === 'function') {\n warnOnFunctionType(returnFiber);\n }\n }\n\n if (typeof newChild === 'undefined' && !isUnkeyedTopLevelFragment) {\n // If the new child is undefined, and the return fiber is a composite\n // component, throw an error. If Fiber return types are disabled,\n // we already threw above.\n switch (returnFiber.tag) {\n case ClassComponent:\n {\n {\n var instance = returnFiber.stateNode;\n\n if (instance.render._isMockFunction) {\n // We allow auto-mocks to proceed as if they're returning null.\n break;\n }\n }\n }\n // Intentionally fall through to the next case, which handles both\n // functions and classes\n // eslint-disable-next-lined no-fallthrough\n\n case Block:\n case FunctionComponent:\n case ForwardRef:\n case SimpleMemoComponent:\n {\n {\n {\n throw Error( (getComponentName(returnFiber.type) || 'Component') + \"(...): Nothing was returned from render. This usually means a return statement is missing. Or, to render nothing, return null.\" );\n }\n }\n }\n }\n } // Remaining cases are all treated as empty.\n\n\n return deleteRemainingChildren(returnFiber, currentFirstChild);\n }\n\n return reconcileChildFibers;\n}\n\nvar reconcileChildFibers = ChildReconciler(true);\nvar mountChildFibers = ChildReconciler(false);\nfunction cloneChildFibers(current, workInProgress) {\n if (!(current === null || workInProgress.child === current.child)) {\n {\n throw Error( \"Resuming work not yet implemented.\" );\n }\n }\n\n if (workInProgress.child === null) {\n return;\n }\n\n var currentChild = workInProgress.child;\n var newChild = createWorkInProgress(currentChild, currentChild.pendingProps);\n workInProgress.child = newChild;\n newChild.return = workInProgress;\n\n while (currentChild.sibling !== null) {\n currentChild = currentChild.sibling;\n newChild = newChild.sibling = createWorkInProgress(currentChild, currentChild.pendingProps);\n newChild.return = workInProgress;\n }\n\n newChild.sibling = null;\n} // Reset a workInProgress child set to prepare it for a second pass.\n\nfunction resetChildFibers(workInProgress, lanes) {\n var child = workInProgress.child;\n\n while (child !== null) {\n resetWorkInProgress(child, lanes);\n child = child.sibling;\n }\n}\n\nvar NO_CONTEXT = {};\nvar contextStackCursor$1 = createCursor(NO_CONTEXT);\nvar contextFiberStackCursor = createCursor(NO_CONTEXT);\nvar rootInstanceStackCursor = createCursor(NO_CONTEXT);\n\nfunction requiredContext(c) {\n if (!(c !== NO_CONTEXT)) {\n {\n throw Error( \"Expected host context to exist. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n\n return c;\n}\n\nfunction getRootHostContainer() {\n var rootInstance = requiredContext(rootInstanceStackCursor.current);\n return rootInstance;\n}\n\nfunction pushHostContainer(fiber, nextRootInstance) {\n // Push current root instance onto the stack;\n // This allows us to reset root when portals are popped.\n push(rootInstanceStackCursor, nextRootInstance, fiber); // Track the context and the Fiber that provided it.\n // This enables us to pop only Fibers that provide unique contexts.\n\n push(contextFiberStackCursor, fiber, fiber); // Finally, we need to push the host context to the stack.\n // However, we can't just call getRootHostContext() and push it because\n // we'd have a different number of entries on the stack depending on\n // whether getRootHostContext() throws somewhere in renderer code or not.\n // So we push an empty value first. This lets us safely unwind on errors.\n\n push(contextStackCursor$1, NO_CONTEXT, fiber);\n var nextRootContext = getRootHostContext(nextRootInstance); // Now that we know this function doesn't throw, replace it.\n\n pop(contextStackCursor$1, fiber);\n push(contextStackCursor$1, nextRootContext, fiber);\n}\n\nfunction popHostContainer(fiber) {\n pop(contextStackCursor$1, fiber);\n pop(contextFiberStackCursor, fiber);\n pop(rootInstanceStackCursor, fiber);\n}\n\nfunction getHostContext() {\n var context = requiredContext(contextStackCursor$1.current);\n return context;\n}\n\nfunction pushHostContext(fiber) {\n var rootInstance = requiredContext(rootInstanceStackCursor.current);\n var context = requiredContext(contextStackCursor$1.current);\n var nextContext = getChildHostContext(context, fiber.type); // Don't push this Fiber's context unless it's unique.\n\n if (context === nextContext) {\n return;\n } // Track the context and the Fiber that provided it.\n // This enables us to pop only Fibers that provide unique contexts.\n\n\n push(contextFiberStackCursor, fiber, fiber);\n push(contextStackCursor$1, nextContext, fiber);\n}\n\nfunction popHostContext(fiber) {\n // Do not pop unless this Fiber provided the current context.\n // pushHostContext() only pushes Fibers that provide unique contexts.\n if (contextFiberStackCursor.current !== fiber) {\n return;\n }\n\n pop(contextStackCursor$1, fiber);\n pop(contextFiberStackCursor, fiber);\n}\n\nvar DefaultSuspenseContext = 0; // The Suspense Context is split into two parts. The lower bits is\n// inherited deeply down the subtree. The upper bits only affect\n// this immediate suspense boundary and gets reset each new\n// boundary or suspense list.\n\nvar SubtreeSuspenseContextMask = 1; // Subtree Flags:\n// InvisibleParentSuspenseContext indicates that one of our parent Suspense\n// boundaries is not currently showing visible main content.\n// Either because it is already showing a fallback or is not mounted at all.\n// We can use this to determine if it is desirable to trigger a fallback at\n// the parent. If not, then we might need to trigger undesirable boundaries\n// and/or suspend the commit to avoid hiding the parent content.\n\nvar InvisibleParentSuspenseContext = 1; // Shallow Flags:\n// ForceSuspenseFallback can be used by SuspenseList to force newly added\n// items into their fallback state during one of the render passes.\n\nvar ForceSuspenseFallback = 2;\nvar suspenseStackCursor = createCursor(DefaultSuspenseContext);\nfunction hasSuspenseContext(parentContext, flag) {\n return (parentContext & flag) !== 0;\n}\nfunction setDefaultShallowSuspenseContext(parentContext) {\n return parentContext & SubtreeSuspenseContextMask;\n}\nfunction setShallowSuspenseContext(parentContext, shallowContext) {\n return parentContext & SubtreeSuspenseContextMask | shallowContext;\n}\nfunction addSubtreeSuspenseContext(parentContext, subtreeContext) {\n return parentContext | subtreeContext;\n}\nfunction pushSuspenseContext(fiber, newContext) {\n push(suspenseStackCursor, newContext, fiber);\n}\nfunction popSuspenseContext(fiber) {\n pop(suspenseStackCursor, fiber);\n}\n\nfunction shouldCaptureSuspense(workInProgress, hasInvisibleParent) {\n // If it was the primary children that just suspended, capture and render the\n // fallback. Otherwise, don't capture and bubble to the next boundary.\n var nextState = workInProgress.memoizedState;\n\n if (nextState !== null) {\n if (nextState.dehydrated !== null) {\n // A dehydrated boundary always captures.\n return true;\n }\n\n return false;\n }\n\n var props = workInProgress.memoizedProps; // In order to capture, the Suspense component must have a fallback prop.\n\n if (props.fallback === undefined) {\n return false;\n } // Regular boundaries always capture.\n\n\n if (props.unstable_avoidThisFallback !== true) {\n return true;\n } // If it's a boundary we should avoid, then we prefer to bubble up to the\n // parent boundary if it is currently invisible.\n\n\n if (hasInvisibleParent) {\n return false;\n } // If the parent is not able to handle it, we must handle it.\n\n\n return true;\n}\nfunction findFirstSuspended(row) {\n var node = row;\n\n while (node !== null) {\n if (node.tag === SuspenseComponent) {\n var state = node.memoizedState;\n\n if (state !== null) {\n var dehydrated = state.dehydrated;\n\n if (dehydrated === null || isSuspenseInstancePending(dehydrated) || isSuspenseInstanceFallback(dehydrated)) {\n return node;\n }\n }\n } else if (node.tag === SuspenseListComponent && // revealOrder undefined can't be trusted because it don't\n // keep track of whether it suspended or not.\n node.memoizedProps.revealOrder !== undefined) {\n var didSuspend = (node.flags & DidCapture) !== NoFlags;\n\n if (didSuspend) {\n return node;\n }\n } else if (node.child !== null) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n\n if (node === row) {\n return null;\n }\n\n while (node.sibling === null) {\n if (node.return === null || node.return === row) {\n return null;\n }\n\n node = node.return;\n }\n\n node.sibling.return = node.return;\n node = node.sibling;\n }\n\n return null;\n}\n\nvar NoFlags$1 =\n/* */\n0; // Represents whether effect should fire.\n\nvar HasEffect =\n/* */\n1; // Represents the phase in which the effect (not the clean-up) fires.\n\nvar Layout =\n/* */\n2;\nvar Passive$1 =\n/* */\n4;\n\n// This may have been an insertion or a hydration.\n\nvar hydrationParentFiber = null;\nvar nextHydratableInstance = null;\nvar isHydrating = false;\n\nfunction enterHydrationState(fiber) {\n\n var parentInstance = fiber.stateNode.containerInfo;\n nextHydratableInstance = getFirstHydratableChild(parentInstance);\n hydrationParentFiber = fiber;\n isHydrating = true;\n return true;\n}\n\nfunction deleteHydratableInstance(returnFiber, instance) {\n {\n switch (returnFiber.tag) {\n case HostRoot:\n didNotHydrateContainerInstance(returnFiber.stateNode.containerInfo, instance);\n break;\n\n case HostComponent:\n didNotHydrateInstance(returnFiber.type, returnFiber.memoizedProps, returnFiber.stateNode, instance);\n break;\n }\n }\n\n var childToDelete = createFiberFromHostInstanceForDeletion();\n childToDelete.stateNode = instance;\n childToDelete.return = returnFiber;\n childToDelete.flags = Deletion; // This might seem like it belongs on progressedFirstDeletion. However,\n // these children are not part of the reconciliation list of children.\n // Even if we abort and rereconcile the children, that will try to hydrate\n // again and the nodes are still in the host tree so these will be\n // recreated.\n\n if (returnFiber.lastEffect !== null) {\n returnFiber.lastEffect.nextEffect = childToDelete;\n returnFiber.lastEffect = childToDelete;\n } else {\n returnFiber.firstEffect = returnFiber.lastEffect = childToDelete;\n }\n}\n\nfunction insertNonHydratedInstance(returnFiber, fiber) {\n fiber.flags = fiber.flags & ~Hydrating | Placement;\n\n {\n switch (returnFiber.tag) {\n case HostRoot:\n {\n var parentContainer = returnFiber.stateNode.containerInfo;\n\n switch (fiber.tag) {\n case HostComponent:\n var type = fiber.type;\n var props = fiber.pendingProps;\n didNotFindHydratableContainerInstance(parentContainer, type);\n break;\n\n case HostText:\n var text = fiber.pendingProps;\n didNotFindHydratableContainerTextInstance(parentContainer, text);\n break;\n }\n\n break;\n }\n\n case HostComponent:\n {\n var parentType = returnFiber.type;\n var parentProps = returnFiber.memoizedProps;\n var parentInstance = returnFiber.stateNode;\n\n switch (fiber.tag) {\n case HostComponent:\n var _type = fiber.type;\n var _props = fiber.pendingProps;\n didNotFindHydratableInstance(parentType, parentProps, parentInstance, _type);\n break;\n\n case HostText:\n var _text = fiber.pendingProps;\n didNotFindHydratableTextInstance(parentType, parentProps, parentInstance, _text);\n break;\n\n case SuspenseComponent:\n didNotFindHydratableSuspenseInstance(parentType, parentProps);\n break;\n }\n\n break;\n }\n\n default:\n return;\n }\n }\n}\n\nfunction tryHydrate(fiber, nextInstance) {\n switch (fiber.tag) {\n case HostComponent:\n {\n var type = fiber.type;\n var props = fiber.pendingProps;\n var instance = canHydrateInstance(nextInstance, type);\n\n if (instance !== null) {\n fiber.stateNode = instance;\n return true;\n }\n\n return false;\n }\n\n case HostText:\n {\n var text = fiber.pendingProps;\n var textInstance = canHydrateTextInstance(nextInstance, text);\n\n if (textInstance !== null) {\n fiber.stateNode = textInstance;\n return true;\n }\n\n return false;\n }\n\n case SuspenseComponent:\n {\n\n return false;\n }\n\n default:\n return false;\n }\n}\n\nfunction tryToClaimNextHydratableInstance(fiber) {\n if (!isHydrating) {\n return;\n }\n\n var nextInstance = nextHydratableInstance;\n\n if (!nextInstance) {\n // Nothing to hydrate. Make it an insertion.\n insertNonHydratedInstance(hydrationParentFiber, fiber);\n isHydrating = false;\n hydrationParentFiber = fiber;\n return;\n }\n\n var firstAttemptedInstance = nextInstance;\n\n if (!tryHydrate(fiber, nextInstance)) {\n // If we can't hydrate this instance let's try the next one.\n // We use this as a heuristic. It's based on intuition and not data so it\n // might be flawed or unnecessary.\n nextInstance = getNextHydratableSibling(firstAttemptedInstance);\n\n if (!nextInstance || !tryHydrate(fiber, nextInstance)) {\n // Nothing to hydrate. Make it an insertion.\n insertNonHydratedInstance(hydrationParentFiber, fiber);\n isHydrating = false;\n hydrationParentFiber = fiber;\n return;\n } // We matched the next one, we'll now assume that the first one was\n // superfluous and we'll delete it. Since we can't eagerly delete it\n // we'll have to schedule a deletion. To do that, this node needs a dummy\n // fiber associated with it.\n\n\n deleteHydratableInstance(hydrationParentFiber, firstAttemptedInstance);\n }\n\n hydrationParentFiber = fiber;\n nextHydratableInstance = getFirstHydratableChild(nextInstance);\n}\n\nfunction prepareToHydrateHostInstance(fiber, rootContainerInstance, hostContext) {\n\n var instance = fiber.stateNode;\n var updatePayload = hydrateInstance(instance, fiber.type, fiber.memoizedProps, rootContainerInstance, hostContext, fiber); // TODO: Type this specific to this type of component.\n\n fiber.updateQueue = updatePayload; // If the update payload indicates that there is a change or if there\n // is a new ref we mark this as an update.\n\n if (updatePayload !== null) {\n return true;\n }\n\n return false;\n}\n\nfunction prepareToHydrateHostTextInstance(fiber) {\n\n var textInstance = fiber.stateNode;\n var textContent = fiber.memoizedProps;\n var shouldUpdate = hydrateTextInstance(textInstance, textContent, fiber);\n\n {\n if (shouldUpdate) {\n // We assume that prepareToHydrateHostTextInstance is called in a context where the\n // hydration parent is the parent host component of this host text.\n var returnFiber = hydrationParentFiber;\n\n if (returnFiber !== null) {\n switch (returnFiber.tag) {\n case HostRoot:\n {\n var parentContainer = returnFiber.stateNode.containerInfo;\n didNotMatchHydratedContainerTextInstance(parentContainer, textInstance, textContent);\n break;\n }\n\n case HostComponent:\n {\n var parentType = returnFiber.type;\n var parentProps = returnFiber.memoizedProps;\n var parentInstance = returnFiber.stateNode;\n didNotMatchHydratedTextInstance(parentType, parentProps, parentInstance, textInstance, textContent);\n break;\n }\n }\n }\n }\n }\n\n return shouldUpdate;\n}\n\nfunction skipPastDehydratedSuspenseInstance(fiber) {\n\n var suspenseState = fiber.memoizedState;\n var suspenseInstance = suspenseState !== null ? suspenseState.dehydrated : null;\n\n if (!suspenseInstance) {\n {\n throw Error( \"Expected to have a hydrated suspense instance. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n\n return getNextHydratableInstanceAfterSuspenseInstance(suspenseInstance);\n}\n\nfunction popToNextHostParent(fiber) {\n var parent = fiber.return;\n\n while (parent !== null && parent.tag !== HostComponent && parent.tag !== HostRoot && parent.tag !== SuspenseComponent) {\n parent = parent.return;\n }\n\n hydrationParentFiber = parent;\n}\n\nfunction popHydrationState(fiber) {\n\n if (fiber !== hydrationParentFiber) {\n // We're deeper than the current hydration context, inside an inserted\n // tree.\n return false;\n }\n\n if (!isHydrating) {\n // If we're not currently hydrating but we're in a hydration context, then\n // we were an insertion and now need to pop up reenter hydration of our\n // siblings.\n popToNextHostParent(fiber);\n isHydrating = true;\n return false;\n }\n\n var type = fiber.type; // If we have any remaining hydratable nodes, we need to delete them now.\n // We only do this deeper than head and body since they tend to have random\n // other nodes in them. We also ignore components with pure text content in\n // side of them.\n // TODO: Better heuristic.\n\n if (fiber.tag !== HostComponent || type !== 'head' && type !== 'body' && !shouldSetTextContent(type, fiber.memoizedProps)) {\n var nextInstance = nextHydratableInstance;\n\n while (nextInstance) {\n deleteHydratableInstance(fiber, nextInstance);\n nextInstance = getNextHydratableSibling(nextInstance);\n }\n }\n\n popToNextHostParent(fiber);\n\n if (fiber.tag === SuspenseComponent) {\n nextHydratableInstance = skipPastDehydratedSuspenseInstance(fiber);\n } else {\n nextHydratableInstance = hydrationParentFiber ? getNextHydratableSibling(fiber.stateNode) : null;\n }\n\n return true;\n}\n\nfunction resetHydrationState() {\n\n hydrationParentFiber = null;\n nextHydratableInstance = null;\n isHydrating = false;\n}\n\nfunction getIsHydrating() {\n return isHydrating;\n}\n\n// and should be reset before starting a new render.\n// This tracks which mutable sources need to be reset after a render.\n\nvar workInProgressSources = [];\nvar rendererSigil$1;\n\n{\n // Used to detect multiple renderers using the same mutable source.\n rendererSigil$1 = {};\n}\n\nfunction markSourceAsDirty(mutableSource) {\n workInProgressSources.push(mutableSource);\n}\nfunction resetWorkInProgressVersions() {\n for (var i = 0; i < workInProgressSources.length; i++) {\n var mutableSource = workInProgressSources[i];\n\n {\n mutableSource._workInProgressVersionPrimary = null;\n }\n }\n\n workInProgressSources.length = 0;\n}\nfunction getWorkInProgressVersion(mutableSource) {\n {\n return mutableSource._workInProgressVersionPrimary;\n }\n}\nfunction setWorkInProgressVersion(mutableSource, version) {\n {\n mutableSource._workInProgressVersionPrimary = version;\n }\n\n workInProgressSources.push(mutableSource);\n}\nfunction warnAboutMultipleRenderersDEV(mutableSource) {\n {\n {\n if (mutableSource._currentPrimaryRenderer == null) {\n mutableSource._currentPrimaryRenderer = rendererSigil$1;\n } else if (mutableSource._currentPrimaryRenderer !== rendererSigil$1) {\n error('Detected multiple renderers concurrently rendering the ' + 'same mutable source. This is currently unsupported.');\n }\n }\n }\n} // Eager reads the version of a mutable source and stores it on the root.\n\nvar ReactCurrentDispatcher$1 = ReactSharedInternals.ReactCurrentDispatcher,\n ReactCurrentBatchConfig$1 = ReactSharedInternals.ReactCurrentBatchConfig;\nvar didWarnAboutMismatchedHooksForComponent;\nvar didWarnAboutUseOpaqueIdentifier;\n\n{\n didWarnAboutUseOpaqueIdentifier = {};\n didWarnAboutMismatchedHooksForComponent = new Set();\n}\n\n// These are set right before calling the component.\nvar renderLanes = NoLanes; // The work-in-progress fiber. I've named it differently to distinguish it from\n// the work-in-progress hook.\n\nvar currentlyRenderingFiber$1 = null; // Hooks are stored as a linked list on the fiber's memoizedState field. The\n// current hook list is the list that belongs to the current fiber. The\n// work-in-progress hook list is a new list that will be added to the\n// work-in-progress fiber.\n\nvar currentHook = null;\nvar workInProgressHook = null; // Whether an update was scheduled at any point during the render phase. This\n// does not get reset if we do another render pass; only when we're completely\n// finished evaluating this component. This is an optimization so we know\n// whether we need to clear render phase updates after a throw.\n\nvar didScheduleRenderPhaseUpdate = false; // Where an update was scheduled only during the current render pass. This\n// gets reset after each attempt.\n// TODO: Maybe there's some way to consolidate this with\n// `didScheduleRenderPhaseUpdate`. Or with `numberOfReRenders`.\n\nvar didScheduleRenderPhaseUpdateDuringThisPass = false;\nvar RE_RENDER_LIMIT = 25; // In DEV, this is the name of the currently executing primitive hook\n\nvar currentHookNameInDev = null; // In DEV, this list ensures that hooks are called in the same order between renders.\n// The list stores the order of hooks used during the initial render (mount).\n// Subsequent renders (updates) reference this list.\n\nvar hookTypesDev = null;\nvar hookTypesUpdateIndexDev = -1; // In DEV, this tracks whether currently rendering component needs to ignore\n// the dependencies for Hooks that need them (e.g. useEffect or useMemo).\n// When true, such Hooks will always be \"remounted\". Only used during hot reload.\n\nvar ignorePreviousDependencies = false;\n\nfunction mountHookTypesDev() {\n {\n var hookName = currentHookNameInDev;\n\n if (hookTypesDev === null) {\n hookTypesDev = [hookName];\n } else {\n hookTypesDev.push(hookName);\n }\n }\n}\n\nfunction updateHookTypesDev() {\n {\n var hookName = currentHookNameInDev;\n\n if (hookTypesDev !== null) {\n hookTypesUpdateIndexDev++;\n\n if (hookTypesDev[hookTypesUpdateIndexDev] !== hookName) {\n warnOnHookMismatchInDev(hookName);\n }\n }\n }\n}\n\nfunction checkDepsAreArrayDev(deps) {\n {\n if (deps !== undefined && deps !== null && !Array.isArray(deps)) {\n // Verify deps, but only on mount to avoid extra checks.\n // It's unlikely their type would change as usually you define them inline.\n error('%s received a final argument that is not an array (instead, received `%s`). When ' + 'specified, the final argument must be an array.', currentHookNameInDev, typeof deps);\n }\n }\n}\n\nfunction warnOnHookMismatchInDev(currentHookName) {\n {\n var componentName = getComponentName(currentlyRenderingFiber$1.type);\n\n if (!didWarnAboutMismatchedHooksForComponent.has(componentName)) {\n didWarnAboutMismatchedHooksForComponent.add(componentName);\n\n if (hookTypesDev !== null) {\n var table = '';\n var secondColumnStart = 30;\n\n for (var i = 0; i <= hookTypesUpdateIndexDev; i++) {\n var oldHookName = hookTypesDev[i];\n var newHookName = i === hookTypesUpdateIndexDev ? currentHookName : oldHookName;\n var row = i + 1 + \". \" + oldHookName; // Extra space so second column lines up\n // lol @ IE not supporting String#repeat\n\n while (row.length < secondColumnStart) {\n row += ' ';\n }\n\n row += newHookName + '\\n';\n table += row;\n }\n\n error('React has detected a change in the order of Hooks called by %s. ' + 'This will lead to bugs and errors if not fixed. ' + 'For more information, read the Rules of Hooks: https://reactjs.org/link/rules-of-hooks\\n\\n' + ' Previous render Next render\\n' + ' ------------------------------------------------------\\n' + '%s' + ' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n', componentName, table);\n }\n }\n }\n}\n\nfunction throwInvalidHookError() {\n {\n {\n throw Error( \"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.\" );\n }\n }\n}\n\nfunction areHookInputsEqual(nextDeps, prevDeps) {\n {\n if (ignorePreviousDependencies) {\n // Only true when this component is being hot reloaded.\n return false;\n }\n }\n\n if (prevDeps === null) {\n {\n error('%s received a final argument during this render, but not during ' + 'the previous render. Even though the final argument is optional, ' + 'its type cannot change between renders.', currentHookNameInDev);\n }\n\n return false;\n }\n\n {\n // Don't bother comparing lengths in prod because these arrays should be\n // passed inline.\n if (nextDeps.length !== prevDeps.length) {\n error('The final argument passed to %s changed size between renders. The ' + 'order and size of this array must remain constant.\\n\\n' + 'Previous: %s\\n' + 'Incoming: %s', currentHookNameInDev, \"[\" + prevDeps.join(', ') + \"]\", \"[\" + nextDeps.join(', ') + \"]\");\n }\n }\n\n for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++) {\n if (objectIs(nextDeps[i], prevDeps[i])) {\n continue;\n }\n\n return false;\n }\n\n return true;\n}\n\nfunction renderWithHooks(current, workInProgress, Component, props, secondArg, nextRenderLanes) {\n renderLanes = nextRenderLanes;\n currentlyRenderingFiber$1 = workInProgress;\n\n {\n hookTypesDev = current !== null ? current._debugHookTypes : null;\n hookTypesUpdateIndexDev = -1; // Used for hot reloading:\n\n ignorePreviousDependencies = current !== null && current.type !== workInProgress.type;\n }\n\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n workInProgress.lanes = NoLanes; // The following should have already been reset\n // currentHook = null;\n // workInProgressHook = null;\n // didScheduleRenderPhaseUpdate = false;\n // TODO Warn if no hooks are used at all during mount, then some are used during update.\n // Currently we will identify the update render as a mount because memoizedState === null.\n // This is tricky because it's valid for certain types of components (e.g. React.lazy)\n // Using memoizedState to differentiate between mount/update only works if at least one stateful hook is used.\n // Non-stateful hooks (e.g. context) don't get added to memoizedState,\n // so memoizedState would be null during updates and mounts.\n\n {\n if (current !== null && current.memoizedState !== null) {\n ReactCurrentDispatcher$1.current = HooksDispatcherOnUpdateInDEV;\n } else if (hookTypesDev !== null) {\n // This dispatcher handles an edge case where a component is updating,\n // but no stateful hooks have been used.\n // We want to match the production code behavior (which will use HooksDispatcherOnMount),\n // but with the extra DEV validation to ensure hooks ordering hasn't changed.\n // This dispatcher does that.\n ReactCurrentDispatcher$1.current = HooksDispatcherOnMountWithHookTypesInDEV;\n } else {\n ReactCurrentDispatcher$1.current = HooksDispatcherOnMountInDEV;\n }\n }\n\n var children = Component(props, secondArg); // Check if there was a render phase update\n\n if (didScheduleRenderPhaseUpdateDuringThisPass) {\n // Keep rendering in a loop for as long as render phase updates continue to\n // be scheduled. Use a counter to prevent infinite loops.\n var numberOfReRenders = 0;\n\n do {\n didScheduleRenderPhaseUpdateDuringThisPass = false;\n\n if (!(numberOfReRenders < RE_RENDER_LIMIT)) {\n {\n throw Error( \"Too many re-renders. React limits the number of renders to prevent an infinite loop.\" );\n }\n }\n\n numberOfReRenders += 1;\n\n {\n // Even when hot reloading, allow dependencies to stabilize\n // after first render to prevent infinite render phase updates.\n ignorePreviousDependencies = false;\n } // Start over from the beginning of the list\n\n\n currentHook = null;\n workInProgressHook = null;\n workInProgress.updateQueue = null;\n\n {\n // Also validate hook order for cascading updates.\n hookTypesUpdateIndexDev = -1;\n }\n\n ReactCurrentDispatcher$1.current = HooksDispatcherOnRerenderInDEV ;\n children = Component(props, secondArg);\n } while (didScheduleRenderPhaseUpdateDuringThisPass);\n } // We can assume the previous dispatcher is always this one, since we set it\n // at the beginning of the render phase and there's no re-entrancy.\n\n\n ReactCurrentDispatcher$1.current = ContextOnlyDispatcher;\n\n {\n workInProgress._debugHookTypes = hookTypesDev;\n } // This check uses currentHook so that it works the same in DEV and prod bundles.\n // hookTypesDev could catch more cases (e.g. context) but only in DEV bundles.\n\n\n var didRenderTooFewHooks = currentHook !== null && currentHook.next !== null;\n renderLanes = NoLanes;\n currentlyRenderingFiber$1 = null;\n currentHook = null;\n workInProgressHook = null;\n\n {\n currentHookNameInDev = null;\n hookTypesDev = null;\n hookTypesUpdateIndexDev = -1;\n }\n\n didScheduleRenderPhaseUpdate = false;\n\n if (!!didRenderTooFewHooks) {\n {\n throw Error( \"Rendered fewer hooks than expected. This may be caused by an accidental early return statement.\" );\n }\n }\n\n return children;\n}\nfunction bailoutHooks(current, workInProgress, lanes) {\n workInProgress.updateQueue = current.updateQueue;\n workInProgress.flags &= ~(Passive | Update);\n current.lanes = removeLanes(current.lanes, lanes);\n}\nfunction resetHooksAfterThrow() {\n // We can assume the previous dispatcher is always this one, since we set it\n // at the beginning of the render phase and there's no re-entrancy.\n ReactCurrentDispatcher$1.current = ContextOnlyDispatcher;\n\n if (didScheduleRenderPhaseUpdate) {\n // There were render phase updates. These are only valid for this render\n // phase, which we are now aborting. Remove the updates from the queues so\n // they do not persist to the next render. Do not remove updates from hooks\n // that weren't processed.\n //\n // Only reset the updates from the queue if it has a clone. If it does\n // not have a clone, that means it wasn't processed, and the updates were\n // scheduled before we entered the render phase.\n var hook = currentlyRenderingFiber$1.memoizedState;\n\n while (hook !== null) {\n var queue = hook.queue;\n\n if (queue !== null) {\n queue.pending = null;\n }\n\n hook = hook.next;\n }\n\n didScheduleRenderPhaseUpdate = false;\n }\n\n renderLanes = NoLanes;\n currentlyRenderingFiber$1 = null;\n currentHook = null;\n workInProgressHook = null;\n\n {\n hookTypesDev = null;\n hookTypesUpdateIndexDev = -1;\n currentHookNameInDev = null;\n isUpdatingOpaqueValueInRenderPhase = false;\n }\n\n didScheduleRenderPhaseUpdateDuringThisPass = false;\n}\n\nfunction mountWorkInProgressHook() {\n var hook = {\n memoizedState: null,\n baseState: null,\n baseQueue: null,\n queue: null,\n next: null\n };\n\n if (workInProgressHook === null) {\n // This is the first hook in the list\n currentlyRenderingFiber$1.memoizedState = workInProgressHook = hook;\n } else {\n // Append to the end of the list\n workInProgressHook = workInProgressHook.next = hook;\n }\n\n return workInProgressHook;\n}\n\nfunction updateWorkInProgressHook() {\n // This function is used both for updates and for re-renders triggered by a\n // render phase update. It assumes there is either a current hook we can\n // clone, or a work-in-progress hook from a previous render pass that we can\n // use as a base. When we reach the end of the base list, we must switch to\n // the dispatcher used for mounts.\n var nextCurrentHook;\n\n if (currentHook === null) {\n var current = currentlyRenderingFiber$1.alternate;\n\n if (current !== null) {\n nextCurrentHook = current.memoizedState;\n } else {\n nextCurrentHook = null;\n }\n } else {\n nextCurrentHook = currentHook.next;\n }\n\n var nextWorkInProgressHook;\n\n if (workInProgressHook === null) {\n nextWorkInProgressHook = currentlyRenderingFiber$1.memoizedState;\n } else {\n nextWorkInProgressHook = workInProgressHook.next;\n }\n\n if (nextWorkInProgressHook !== null) {\n // There's already a work-in-progress. Reuse it.\n workInProgressHook = nextWorkInProgressHook;\n nextWorkInProgressHook = workInProgressHook.next;\n currentHook = nextCurrentHook;\n } else {\n // Clone from the current hook.\n if (!(nextCurrentHook !== null)) {\n {\n throw Error( \"Rendered more hooks than during the previous render.\" );\n }\n }\n\n currentHook = nextCurrentHook;\n var newHook = {\n memoizedState: currentHook.memoizedState,\n baseState: currentHook.baseState,\n baseQueue: currentHook.baseQueue,\n queue: currentHook.queue,\n next: null\n };\n\n if (workInProgressHook === null) {\n // This is the first hook in the list.\n currentlyRenderingFiber$1.memoizedState = workInProgressHook = newHook;\n } else {\n // Append to the end of the list.\n workInProgressHook = workInProgressHook.next = newHook;\n }\n }\n\n return workInProgressHook;\n}\n\nfunction createFunctionComponentUpdateQueue() {\n return {\n lastEffect: null\n };\n}\n\nfunction basicStateReducer(state, action) {\n // $FlowFixMe: Flow doesn't like mixed types\n return typeof action === 'function' ? action(state) : action;\n}\n\nfunction mountReducer(reducer, initialArg, init) {\n var hook = mountWorkInProgressHook();\n var initialState;\n\n if (init !== undefined) {\n initialState = init(initialArg);\n } else {\n initialState = initialArg;\n }\n\n hook.memoizedState = hook.baseState = initialState;\n var queue = hook.queue = {\n pending: null,\n dispatch: null,\n lastRenderedReducer: reducer,\n lastRenderedState: initialState\n };\n var dispatch = queue.dispatch = dispatchAction.bind(null, currentlyRenderingFiber$1, queue);\n return [hook.memoizedState, dispatch];\n}\n\nfunction updateReducer(reducer, initialArg, init) {\n var hook = updateWorkInProgressHook();\n var queue = hook.queue;\n\n if (!(queue !== null)) {\n {\n throw Error( \"Should have a queue. This is likely a bug in React. Please file an issue.\" );\n }\n }\n\n queue.lastRenderedReducer = reducer;\n var current = currentHook; // The last rebase update that is NOT part of the base state.\n\n var baseQueue = current.baseQueue; // The last pending update that hasn't been processed yet.\n\n var pendingQueue = queue.pending;\n\n if (pendingQueue !== null) {\n // We have new updates that haven't been processed yet.\n // We'll add them to the base queue.\n if (baseQueue !== null) {\n // Merge the pending queue and the base queue.\n var baseFirst = baseQueue.next;\n var pendingFirst = pendingQueue.next;\n baseQueue.next = pendingFirst;\n pendingQueue.next = baseFirst;\n }\n\n {\n if (current.baseQueue !== baseQueue) {\n // Internal invariant that should never happen, but feasibly could in\n // the future if we implement resuming, or some form of that.\n error('Internal error: Expected work-in-progress queue to be a clone. ' + 'This is a bug in React.');\n }\n }\n\n current.baseQueue = baseQueue = pendingQueue;\n queue.pending = null;\n }\n\n if (baseQueue !== null) {\n // We have a queue to process.\n var first = baseQueue.next;\n var newState = current.baseState;\n var newBaseState = null;\n var newBaseQueueFirst = null;\n var newBaseQueueLast = null;\n var update = first;\n\n do {\n var updateLane = update.lane;\n\n if (!isSubsetOfLanes(renderLanes, updateLane)) {\n // Priority is insufficient. Skip this update. If this is the first\n // skipped update, the previous update/state is the new base\n // update/state.\n var clone = {\n lane: updateLane,\n action: update.action,\n eagerReducer: update.eagerReducer,\n eagerState: update.eagerState,\n next: null\n };\n\n if (newBaseQueueLast === null) {\n newBaseQueueFirst = newBaseQueueLast = clone;\n newBaseState = newState;\n } else {\n newBaseQueueLast = newBaseQueueLast.next = clone;\n } // Update the remaining priority in the queue.\n // TODO: Don't need to accumulate this. Instead, we can remove\n // renderLanes from the original lanes.\n\n\n currentlyRenderingFiber$1.lanes = mergeLanes(currentlyRenderingFiber$1.lanes, updateLane);\n markSkippedUpdateLanes(updateLane);\n } else {\n // This update does have sufficient priority.\n if (newBaseQueueLast !== null) {\n var _clone = {\n // This update is going to be committed so we never want uncommit\n // it. Using NoLane works because 0 is a subset of all bitmasks, so\n // this will never be skipped by the check above.\n lane: NoLane,\n action: update.action,\n eagerReducer: update.eagerReducer,\n eagerState: update.eagerState,\n next: null\n };\n newBaseQueueLast = newBaseQueueLast.next = _clone;\n } // Process this update.\n\n\n if (update.eagerReducer === reducer) {\n // If this update was processed eagerly, and its reducer matches the\n // current reducer, we can use the eagerly computed state.\n newState = update.eagerState;\n } else {\n var action = update.action;\n newState = reducer(newState, action);\n }\n }\n\n update = update.next;\n } while (update !== null && update !== first);\n\n if (newBaseQueueLast === null) {\n newBaseState = newState;\n } else {\n newBaseQueueLast.next = newBaseQueueFirst;\n } // Mark that the fiber performed work, but only if the new state is\n // different from the current state.\n\n\n if (!objectIs(newState, hook.memoizedState)) {\n markWorkInProgressReceivedUpdate();\n }\n\n hook.memoizedState = newState;\n hook.baseState = newBaseState;\n hook.baseQueue = newBaseQueueLast;\n queue.lastRenderedState = newState;\n }\n\n var dispatch = queue.dispatch;\n return [hook.memoizedState, dispatch];\n}\n\nfunction rerenderReducer(reducer, initialArg, init) {\n var hook = updateWorkInProgressHook();\n var queue = hook.queue;\n\n if (!(queue !== null)) {\n {\n throw Error( \"Should have a queue. This is likely a bug in React. Please file an issue.\" );\n }\n }\n\n queue.lastRenderedReducer = reducer; // This is a re-render. Apply the new render phase updates to the previous\n // work-in-progress hook.\n\n var dispatch = queue.dispatch;\n var lastRenderPhaseUpdate = queue.pending;\n var newState = hook.memoizedState;\n\n if (lastRenderPhaseUpdate !== null) {\n // The queue doesn't persist past this render pass.\n queue.pending = null;\n var firstRenderPhaseUpdate = lastRenderPhaseUpdate.next;\n var update = firstRenderPhaseUpdate;\n\n do {\n // Process this render phase update. We don't have to check the\n // priority because it will always be the same as the current\n // render's.\n var action = update.action;\n newState = reducer(newState, action);\n update = update.next;\n } while (update !== firstRenderPhaseUpdate); // Mark that the fiber performed work, but only if the new state is\n // different from the current state.\n\n\n if (!objectIs(newState, hook.memoizedState)) {\n markWorkInProgressReceivedUpdate();\n }\n\n hook.memoizedState = newState; // Don't persist the state accumulated from the render phase updates to\n // the base state unless the queue is empty.\n // TODO: Not sure if this is the desired semantics, but it's what we\n // do for gDSFP. I can't remember why.\n\n if (hook.baseQueue === null) {\n hook.baseState = newState;\n }\n\n queue.lastRenderedState = newState;\n }\n\n return [newState, dispatch];\n}\n\nfunction readFromUnsubcribedMutableSource(root, source, getSnapshot) {\n {\n warnAboutMultipleRenderersDEV(source);\n }\n\n var getVersion = source._getVersion;\n var version = getVersion(source._source); // Is it safe for this component to read from this source during the current render?\n\n var isSafeToReadFromSource = false; // Check the version first.\n // If this render has already been started with a specific version,\n // we can use it alone to determine if we can safely read from the source.\n\n var currentRenderVersion = getWorkInProgressVersion(source);\n\n if (currentRenderVersion !== null) {\n // It's safe to read if the store hasn't been mutated since the last time\n // we read something.\n isSafeToReadFromSource = currentRenderVersion === version;\n } else {\n // If there's no version, then this is the first time we've read from the\n // source during the current render pass, so we need to do a bit more work.\n // What we need to determine is if there are any hooks that already\n // subscribed to the source, and if so, whether there are any pending\n // mutations that haven't been synchronized yet.\n //\n // If there are no pending mutations, then `root.mutableReadLanes` will be\n // empty, and we know we can safely read.\n //\n // If there *are* pending mutations, we may still be able to safely read\n // if the currently rendering lanes are inclusive of the pending mutation\n // lanes, since that guarantees that the value we're about to read from\n // the source is consistent with the values that we read during the most\n // recent mutation.\n isSafeToReadFromSource = isSubsetOfLanes(renderLanes, root.mutableReadLanes);\n\n if (isSafeToReadFromSource) {\n // If it's safe to read from this source during the current render,\n // store the version in case other components read from it.\n // A changed version number will let those components know to throw and restart the render.\n setWorkInProgressVersion(source, version);\n }\n }\n\n if (isSafeToReadFromSource) {\n var snapshot = getSnapshot(source._source);\n\n {\n if (typeof snapshot === 'function') {\n error('Mutable source should not return a function as the snapshot value. ' + 'Functions may close over mutable values and cause tearing.');\n }\n }\n\n return snapshot;\n } else {\n // This handles the special case of a mutable source being shared between renderers.\n // In that case, if the source is mutated between the first and second renderer,\n // The second renderer don't know that it needs to reset the WIP version during unwind,\n // (because the hook only marks sources as dirty if it's written to their WIP version).\n // That would cause this tear check to throw again and eventually be visible to the user.\n // We can avoid this infinite loop by explicitly marking the source as dirty.\n //\n // This can lead to tearing in the first renderer when it resumes,\n // but there's nothing we can do about that (short of throwing here and refusing to continue the render).\n markSourceAsDirty(source);\n\n {\n {\n throw Error( \"Cannot read from mutable source during the current render without tearing. This is a bug in React. Please file an issue.\" );\n }\n }\n }\n}\n\nfunction useMutableSource(hook, source, getSnapshot, subscribe) {\n var root = getWorkInProgressRoot();\n\n if (!(root !== null)) {\n {\n throw Error( \"Expected a work-in-progress root. This is a bug in React. Please file an issue.\" );\n }\n }\n\n var getVersion = source._getVersion;\n var version = getVersion(source._source);\n var dispatcher = ReactCurrentDispatcher$1.current; // eslint-disable-next-line prefer-const\n\n var _dispatcher$useState = dispatcher.useState(function () {\n return readFromUnsubcribedMutableSource(root, source, getSnapshot);\n }),\n currentSnapshot = _dispatcher$useState[0],\n setSnapshot = _dispatcher$useState[1];\n\n var snapshot = currentSnapshot; // Grab a handle to the state hook as well.\n // We use it to clear the pending update queue if we have a new source.\n\n var stateHook = workInProgressHook;\n var memoizedState = hook.memoizedState;\n var refs = memoizedState.refs;\n var prevGetSnapshot = refs.getSnapshot;\n var prevSource = memoizedState.source;\n var prevSubscribe = memoizedState.subscribe;\n var fiber = currentlyRenderingFiber$1;\n hook.memoizedState = {\n refs: refs,\n source: source,\n subscribe: subscribe\n }; // Sync the values needed by our subscription handler after each commit.\n\n dispatcher.useEffect(function () {\n refs.getSnapshot = getSnapshot; // Normally the dispatch function for a state hook never changes,\n // but this hook recreates the queue in certain cases to avoid updates from stale sources.\n // handleChange() below needs to reference the dispatch function without re-subscribing,\n // so we use a ref to ensure that it always has the latest version.\n\n refs.setSnapshot = setSnapshot; // Check for a possible change between when we last rendered now.\n\n var maybeNewVersion = getVersion(source._source);\n\n if (!objectIs(version, maybeNewVersion)) {\n var maybeNewSnapshot = getSnapshot(source._source);\n\n {\n if (typeof maybeNewSnapshot === 'function') {\n error('Mutable source should not return a function as the snapshot value. ' + 'Functions may close over mutable values and cause tearing.');\n }\n }\n\n if (!objectIs(snapshot, maybeNewSnapshot)) {\n setSnapshot(maybeNewSnapshot);\n var lane = requestUpdateLane(fiber);\n markRootMutableRead(root, lane);\n } // If the source mutated between render and now,\n // there may be state updates already scheduled from the old source.\n // Entangle the updates so that they render in the same batch.\n\n\n markRootEntangled(root, root.mutableReadLanes);\n }\n }, [getSnapshot, source, subscribe]); // If we got a new source or subscribe function, re-subscribe in a passive effect.\n\n dispatcher.useEffect(function () {\n var handleChange = function () {\n var latestGetSnapshot = refs.getSnapshot;\n var latestSetSnapshot = refs.setSnapshot;\n\n try {\n latestSetSnapshot(latestGetSnapshot(source._source)); // Record a pending mutable source update with the same expiration time.\n\n var lane = requestUpdateLane(fiber);\n markRootMutableRead(root, lane);\n } catch (error) {\n // A selector might throw after a source mutation.\n // e.g. it might try to read from a part of the store that no longer exists.\n // In this case we should still schedule an update with React.\n // Worst case the selector will throw again and then an error boundary will handle it.\n latestSetSnapshot(function () {\n throw error;\n });\n }\n };\n\n var unsubscribe = subscribe(source._source, handleChange);\n\n {\n if (typeof unsubscribe !== 'function') {\n error('Mutable source subscribe function must return an unsubscribe function.');\n }\n }\n\n return unsubscribe;\n }, [source, subscribe]); // If any of the inputs to useMutableSource change, reading is potentially unsafe.\n //\n // If either the source or the subscription have changed we can't can't trust the update queue.\n // Maybe the source changed in a way that the old subscription ignored but the new one depends on.\n //\n // If the getSnapshot function changed, we also shouldn't rely on the update queue.\n // It's possible that the underlying source was mutated between the when the last \"change\" event fired,\n // and when the current render (with the new getSnapshot function) is processed.\n //\n // In both cases, we need to throw away pending updates (since they are no longer relevant)\n // and treat reading from the source as we do in the mount case.\n\n if (!objectIs(prevGetSnapshot, getSnapshot) || !objectIs(prevSource, source) || !objectIs(prevSubscribe, subscribe)) {\n // Create a new queue and setState method,\n // So if there are interleaved updates, they get pushed to the older queue.\n // When this becomes current, the previous queue and dispatch method will be discarded,\n // including any interleaving updates that occur.\n var newQueue = {\n pending: null,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: snapshot\n };\n newQueue.dispatch = setSnapshot = dispatchAction.bind(null, currentlyRenderingFiber$1, newQueue);\n stateHook.queue = newQueue;\n stateHook.baseQueue = null;\n snapshot = readFromUnsubcribedMutableSource(root, source, getSnapshot);\n stateHook.memoizedState = stateHook.baseState = snapshot;\n }\n\n return snapshot;\n}\n\nfunction mountMutableSource(source, getSnapshot, subscribe) {\n var hook = mountWorkInProgressHook();\n hook.memoizedState = {\n refs: {\n getSnapshot: getSnapshot,\n setSnapshot: null\n },\n source: source,\n subscribe: subscribe\n };\n return useMutableSource(hook, source, getSnapshot, subscribe);\n}\n\nfunction updateMutableSource(source, getSnapshot, subscribe) {\n var hook = updateWorkInProgressHook();\n return useMutableSource(hook, source, getSnapshot, subscribe);\n}\n\nfunction mountState(initialState) {\n var hook = mountWorkInProgressHook();\n\n if (typeof initialState === 'function') {\n // $FlowFixMe: Flow doesn't like mixed types\n initialState = initialState();\n }\n\n hook.memoizedState = hook.baseState = initialState;\n var queue = hook.queue = {\n pending: null,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialState\n };\n var dispatch = queue.dispatch = dispatchAction.bind(null, currentlyRenderingFiber$1, queue);\n return [hook.memoizedState, dispatch];\n}\n\nfunction updateState(initialState) {\n return updateReducer(basicStateReducer);\n}\n\nfunction rerenderState(initialState) {\n return rerenderReducer(basicStateReducer);\n}\n\nfunction pushEffect(tag, create, destroy, deps) {\n var effect = {\n tag: tag,\n create: create,\n destroy: destroy,\n deps: deps,\n // Circular\n next: null\n };\n var componentUpdateQueue = currentlyRenderingFiber$1.updateQueue;\n\n if (componentUpdateQueue === null) {\n componentUpdateQueue = createFunctionComponentUpdateQueue();\n currentlyRenderingFiber$1.updateQueue = componentUpdateQueue;\n componentUpdateQueue.lastEffect = effect.next = effect;\n } else {\n var lastEffect = componentUpdateQueue.lastEffect;\n\n if (lastEffect === null) {\n componentUpdateQueue.lastEffect = effect.next = effect;\n } else {\n var firstEffect = lastEffect.next;\n lastEffect.next = effect;\n effect.next = firstEffect;\n componentUpdateQueue.lastEffect = effect;\n }\n }\n\n return effect;\n}\n\nfunction mountRef(initialValue) {\n var hook = mountWorkInProgressHook();\n var ref = {\n current: initialValue\n };\n\n {\n Object.seal(ref);\n }\n\n hook.memoizedState = ref;\n return ref;\n}\n\nfunction updateRef(initialValue) {\n var hook = updateWorkInProgressHook();\n return hook.memoizedState;\n}\n\nfunction mountEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = mountWorkInProgressHook();\n var nextDeps = deps === undefined ? null : deps;\n currentlyRenderingFiber$1.flags |= fiberFlags;\n hook.memoizedState = pushEffect(HasEffect | hookFlags, create, undefined, nextDeps);\n}\n\nfunction updateEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = updateWorkInProgressHook();\n var nextDeps = deps === undefined ? null : deps;\n var destroy = undefined;\n\n if (currentHook !== null) {\n var prevEffect = currentHook.memoizedState;\n destroy = prevEffect.destroy;\n\n if (nextDeps !== null) {\n var prevDeps = prevEffect.deps;\n\n if (areHookInputsEqual(nextDeps, prevDeps)) {\n pushEffect(hookFlags, create, destroy, nextDeps);\n return;\n }\n }\n }\n\n currentlyRenderingFiber$1.flags |= fiberFlags;\n hook.memoizedState = pushEffect(HasEffect | hookFlags, create, destroy, nextDeps);\n}\n\nfunction mountEffect(create, deps) {\n {\n // $FlowExpectedError - jest isn't a global, and isn't recognized outside of tests\n if ('undefined' !== typeof jest) {\n warnIfNotCurrentlyActingEffectsInDEV(currentlyRenderingFiber$1);\n }\n }\n\n return mountEffectImpl(Update | Passive, Passive$1, create, deps);\n}\n\nfunction updateEffect(create, deps) {\n {\n // $FlowExpectedError - jest isn't a global, and isn't recognized outside of tests\n if ('undefined' !== typeof jest) {\n warnIfNotCurrentlyActingEffectsInDEV(currentlyRenderingFiber$1);\n }\n }\n\n return updateEffectImpl(Update | Passive, Passive$1, create, deps);\n}\n\nfunction mountLayoutEffect(create, deps) {\n return mountEffectImpl(Update, Layout, create, deps);\n}\n\nfunction updateLayoutEffect(create, deps) {\n return updateEffectImpl(Update, Layout, create, deps);\n}\n\nfunction imperativeHandleEffect(create, ref) {\n if (typeof ref === 'function') {\n var refCallback = ref;\n\n var _inst = create();\n\n refCallback(_inst);\n return function () {\n refCallback(null);\n };\n } else if (ref !== null && ref !== undefined) {\n var refObject = ref;\n\n {\n if (!refObject.hasOwnProperty('current')) {\n error('Expected useImperativeHandle() first argument to either be a ' + 'ref callback or React.createRef() object. Instead received: %s.', 'an object with keys {' + Object.keys(refObject).join(', ') + '}');\n }\n }\n\n var _inst2 = create();\n\n refObject.current = _inst2;\n return function () {\n refObject.current = null;\n };\n }\n}\n\nfunction mountImperativeHandle(ref, create, deps) {\n {\n if (typeof create !== 'function') {\n error('Expected useImperativeHandle() second argument to be a function ' + 'that creates a handle. Instead received: %s.', create !== null ? typeof create : 'null');\n }\n } // TODO: If deps are provided, should we skip comparing the ref itself?\n\n\n var effectDeps = deps !== null && deps !== undefined ? deps.concat([ref]) : null;\n return mountEffectImpl(Update, Layout, imperativeHandleEffect.bind(null, create, ref), effectDeps);\n}\n\nfunction updateImperativeHandle(ref, create, deps) {\n {\n if (typeof create !== 'function') {\n error('Expected useImperativeHandle() second argument to be a function ' + 'that creates a handle. Instead received: %s.', create !== null ? typeof create : 'null');\n }\n } // TODO: If deps are provided, should we skip comparing the ref itself?\n\n\n var effectDeps = deps !== null && deps !== undefined ? deps.concat([ref]) : null;\n return updateEffectImpl(Update, Layout, imperativeHandleEffect.bind(null, create, ref), effectDeps);\n}\n\nfunction mountDebugValue(value, formatterFn) {// This hook is normally a no-op.\n // The react-debug-hooks package injects its own implementation\n // so that e.g. DevTools can display custom hook values.\n}\n\nvar updateDebugValue = mountDebugValue;\n\nfunction mountCallback(callback, deps) {\n var hook = mountWorkInProgressHook();\n var nextDeps = deps === undefined ? null : deps;\n hook.memoizedState = [callback, nextDeps];\n return callback;\n}\n\nfunction updateCallback(callback, deps) {\n var hook = updateWorkInProgressHook();\n var nextDeps = deps === undefined ? null : deps;\n var prevState = hook.memoizedState;\n\n if (prevState !== null) {\n if (nextDeps !== null) {\n var prevDeps = prevState[1];\n\n if (areHookInputsEqual(nextDeps, prevDeps)) {\n return prevState[0];\n }\n }\n }\n\n hook.memoizedState = [callback, nextDeps];\n return callback;\n}\n\nfunction mountMemo(nextCreate, deps) {\n var hook = mountWorkInProgressHook();\n var nextDeps = deps === undefined ? null : deps;\n var nextValue = nextCreate();\n hook.memoizedState = [nextValue, nextDeps];\n return nextValue;\n}\n\nfunction updateMemo(nextCreate, deps) {\n var hook = updateWorkInProgressHook();\n var nextDeps = deps === undefined ? null : deps;\n var prevState = hook.memoizedState;\n\n if (prevState !== null) {\n // Assume these are defined. If they're not, areHookInputsEqual will warn.\n if (nextDeps !== null) {\n var prevDeps = prevState[1];\n\n if (areHookInputsEqual(nextDeps, prevDeps)) {\n return prevState[0];\n }\n }\n }\n\n var nextValue = nextCreate();\n hook.memoizedState = [nextValue, nextDeps];\n return nextValue;\n}\n\nfunction mountDeferredValue(value) {\n var _mountState = mountState(value),\n prevValue = _mountState[0],\n setValue = _mountState[1];\n\n mountEffect(function () {\n var prevTransition = ReactCurrentBatchConfig$1.transition;\n ReactCurrentBatchConfig$1.transition = 1;\n\n try {\n setValue(value);\n } finally {\n ReactCurrentBatchConfig$1.transition = prevTransition;\n }\n }, [value]);\n return prevValue;\n}\n\nfunction updateDeferredValue(value) {\n var _updateState = updateState(),\n prevValue = _updateState[0],\n setValue = _updateState[1];\n\n updateEffect(function () {\n var prevTransition = ReactCurrentBatchConfig$1.transition;\n ReactCurrentBatchConfig$1.transition = 1;\n\n try {\n setValue(value);\n } finally {\n ReactCurrentBatchConfig$1.transition = prevTransition;\n }\n }, [value]);\n return prevValue;\n}\n\nfunction rerenderDeferredValue(value) {\n var _rerenderState = rerenderState(),\n prevValue = _rerenderState[0],\n setValue = _rerenderState[1];\n\n updateEffect(function () {\n var prevTransition = ReactCurrentBatchConfig$1.transition;\n ReactCurrentBatchConfig$1.transition = 1;\n\n try {\n setValue(value);\n } finally {\n ReactCurrentBatchConfig$1.transition = prevTransition;\n }\n }, [value]);\n return prevValue;\n}\n\nfunction startTransition(setPending, callback) {\n var priorityLevel = getCurrentPriorityLevel();\n\n {\n runWithPriority$1(priorityLevel < UserBlockingPriority$2 ? UserBlockingPriority$2 : priorityLevel, function () {\n setPending(true);\n });\n runWithPriority$1(priorityLevel > NormalPriority$1 ? NormalPriority$1 : priorityLevel, function () {\n var prevTransition = ReactCurrentBatchConfig$1.transition;\n ReactCurrentBatchConfig$1.transition = 1;\n\n try {\n setPending(false);\n callback();\n } finally {\n ReactCurrentBatchConfig$1.transition = prevTransition;\n }\n });\n }\n}\n\nfunction mountTransition() {\n var _mountState2 = mountState(false),\n isPending = _mountState2[0],\n setPending = _mountState2[1]; // The `start` method can be stored on a ref, since `setPending`\n // never changes.\n\n\n var start = startTransition.bind(null, setPending);\n mountRef(start);\n return [start, isPending];\n}\n\nfunction updateTransition() {\n var _updateState2 = updateState(),\n isPending = _updateState2[0];\n\n var startRef = updateRef();\n var start = startRef.current;\n return [start, isPending];\n}\n\nfunction rerenderTransition() {\n var _rerenderState2 = rerenderState(),\n isPending = _rerenderState2[0];\n\n var startRef = updateRef();\n var start = startRef.current;\n return [start, isPending];\n}\n\nvar isUpdatingOpaqueValueInRenderPhase = false;\nfunction getIsUpdatingOpaqueValueInRenderPhaseInDEV() {\n {\n return isUpdatingOpaqueValueInRenderPhase;\n }\n}\n\nfunction warnOnOpaqueIdentifierAccessInDEV(fiber) {\n {\n // TODO: Should warn in effects and callbacks, too\n var name = getComponentName(fiber.type) || 'Unknown';\n\n if (getIsRendering() && !didWarnAboutUseOpaqueIdentifier[name]) {\n error('The object passed back from useOpaqueIdentifier is meant to be ' + 'passed through to attributes only. Do not read the ' + 'value directly.');\n\n didWarnAboutUseOpaqueIdentifier[name] = true;\n }\n }\n}\n\nfunction mountOpaqueIdentifier() {\n var makeId = makeClientIdInDEV.bind(null, warnOnOpaqueIdentifierAccessInDEV.bind(null, currentlyRenderingFiber$1)) ;\n\n if (getIsHydrating()) {\n var didUpgrade = false;\n var fiber = currentlyRenderingFiber$1;\n\n var readValue = function () {\n if (!didUpgrade) {\n // Only upgrade once. This works even inside the render phase because\n // the update is added to a shared queue, which outlasts the\n // in-progress render.\n didUpgrade = true;\n\n {\n isUpdatingOpaqueValueInRenderPhase = true;\n setId(makeId());\n isUpdatingOpaqueValueInRenderPhase = false;\n warnOnOpaqueIdentifierAccessInDEV(fiber);\n }\n }\n\n {\n {\n throw Error( \"The object passed back from useOpaqueIdentifier is meant to be passed through to attributes only. Do not read the value directly.\" );\n }\n }\n };\n\n var id = makeOpaqueHydratingObject(readValue);\n var setId = mountState(id)[1];\n\n if ((currentlyRenderingFiber$1.mode & BlockingMode) === NoMode) {\n currentlyRenderingFiber$1.flags |= Update | Passive;\n pushEffect(HasEffect | Passive$1, function () {\n setId(makeId());\n }, undefined, null);\n }\n\n return id;\n } else {\n var _id = makeId();\n\n mountState(_id);\n return _id;\n }\n}\n\nfunction updateOpaqueIdentifier() {\n var id = updateState()[0];\n return id;\n}\n\nfunction rerenderOpaqueIdentifier() {\n var id = rerenderState()[0];\n return id;\n}\n\nfunction dispatchAction(fiber, queue, action) {\n {\n if (typeof arguments[3] === 'function') {\n error(\"State updates from the useState() and useReducer() Hooks don't support the \" + 'second callback argument. To execute a side effect after ' + 'rendering, declare it in the component body with useEffect().');\n }\n }\n\n var eventTime = requestEventTime();\n var lane = requestUpdateLane(fiber);\n var update = {\n lane: lane,\n action: action,\n eagerReducer: null,\n eagerState: null,\n next: null\n }; // Append the update to the end of the list.\n\n var pending = queue.pending;\n\n if (pending === null) {\n // This is the first update. Create a circular list.\n update.next = update;\n } else {\n update.next = pending.next;\n pending.next = update;\n }\n\n queue.pending = update;\n var alternate = fiber.alternate;\n\n if (fiber === currentlyRenderingFiber$1 || alternate !== null && alternate === currentlyRenderingFiber$1) {\n // This is a render phase update. Stash it in a lazily-created map of\n // queue -> linked list of updates. After this render pass, we'll restart\n // and apply the stashed updates on top of the work-in-progress hook.\n didScheduleRenderPhaseUpdateDuringThisPass = didScheduleRenderPhaseUpdate = true;\n } else {\n if (fiber.lanes === NoLanes && (alternate === null || alternate.lanes === NoLanes)) {\n // The queue is currently empty, which means we can eagerly compute the\n // next state before entering the render phase. If the new state is the\n // same as the current state, we may be able to bail out entirely.\n var lastRenderedReducer = queue.lastRenderedReducer;\n\n if (lastRenderedReducer !== null) {\n var prevDispatcher;\n\n {\n prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n }\n\n try {\n var currentState = queue.lastRenderedState;\n var eagerState = lastRenderedReducer(currentState, action); // Stash the eagerly computed state, and the reducer used to compute\n // it, on the update object. If the reducer hasn't changed by the\n // time we enter the render phase, then the eager state can be used\n // without calling the reducer again.\n\n update.eagerReducer = lastRenderedReducer;\n update.eagerState = eagerState;\n\n if (objectIs(eagerState, currentState)) {\n // Fast path. We can bail out without scheduling React to re-render.\n // It's still possible that we'll need to rebase this update later,\n // if the component re-renders for a different reason and by that\n // time the reducer has changed.\n return;\n }\n } catch (error) {// Suppress the error. It will throw again in the render phase.\n } finally {\n {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n }\n }\n }\n\n {\n // $FlowExpectedError - jest isn't a global, and isn't recognized outside of tests\n if ('undefined' !== typeof jest) {\n warnIfNotScopedWithMatchingAct(fiber);\n warnIfNotCurrentlyActingUpdatesInDev(fiber);\n }\n }\n\n scheduleUpdateOnFiber(fiber, lane, eventTime);\n }\n}\n\nvar ContextOnlyDispatcher = {\n readContext: readContext,\n useCallback: throwInvalidHookError,\n useContext: throwInvalidHookError,\n useEffect: throwInvalidHookError,\n useImperativeHandle: throwInvalidHookError,\n useLayoutEffect: throwInvalidHookError,\n useMemo: throwInvalidHookError,\n useReducer: throwInvalidHookError,\n useRef: throwInvalidHookError,\n useState: throwInvalidHookError,\n useDebugValue: throwInvalidHookError,\n useDeferredValue: throwInvalidHookError,\n useTransition: throwInvalidHookError,\n useMutableSource: throwInvalidHookError,\n useOpaqueIdentifier: throwInvalidHookError,\n unstable_isNewReconciler: enableNewReconciler\n};\nvar HooksDispatcherOnMountInDEV = null;\nvar HooksDispatcherOnMountWithHookTypesInDEV = null;\nvar HooksDispatcherOnUpdateInDEV = null;\nvar HooksDispatcherOnRerenderInDEV = null;\nvar InvalidNestedHooksDispatcherOnMountInDEV = null;\nvar InvalidNestedHooksDispatcherOnUpdateInDEV = null;\nvar InvalidNestedHooksDispatcherOnRerenderInDEV = null;\n\n{\n var warnInvalidContextAccess = function () {\n error('Context can only be read while React is rendering. ' + 'In classes, you can read it in the render method or getDerivedStateFromProps. ' + 'In function components, you can read it directly in the function body, but not ' + 'inside Hooks like useReducer() or useMemo().');\n };\n\n var warnInvalidHookAccess = function () {\n error('Do not call Hooks inside useEffect(...), useMemo(...), or other built-in Hooks. ' + 'You can only call Hooks at the top level of your React function. ' + 'For more information, see ' + 'https://reactjs.org/link/rules-of-hooks');\n };\n\n HooksDispatcherOnMountInDEV = {\n readContext: function (context, observedBits) {\n return readContext(context, observedBits);\n },\n useCallback: function (callback, deps) {\n currentHookNameInDev = 'useCallback';\n mountHookTypesDev();\n checkDepsAreArrayDev(deps);\n return mountCallback(callback, deps);\n },\n useContext: function (context, observedBits) {\n currentHookNameInDev = 'useContext';\n mountHookTypesDev();\n return readContext(context, observedBits);\n },\n useEffect: function (create, deps) {\n currentHookNameInDev = 'useEffect';\n mountHookTypesDev();\n checkDepsAreArrayDev(deps);\n return mountEffect(create, deps);\n },\n useImperativeHandle: function (ref, create, deps) {\n currentHookNameInDev = 'useImperativeHandle';\n mountHookTypesDev();\n checkDepsAreArrayDev(deps);\n return mountImperativeHandle(ref, create, deps);\n },\n useLayoutEffect: function (create, deps) {\n currentHookNameInDev = 'useLayoutEffect';\n mountHookTypesDev();\n checkDepsAreArrayDev(deps);\n return mountLayoutEffect(create, deps);\n },\n useMemo: function (create, deps) {\n currentHookNameInDev = 'useMemo';\n mountHookTypesDev();\n checkDepsAreArrayDev(deps);\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n try {\n return mountMemo(create, deps);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useReducer: function (reducer, initialArg, init) {\n currentHookNameInDev = 'useReducer';\n mountHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n try {\n return mountReducer(reducer, initialArg, init);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useRef: function (initialValue) {\n currentHookNameInDev = 'useRef';\n mountHookTypesDev();\n return mountRef(initialValue);\n },\n useState: function (initialState) {\n currentHookNameInDev = 'useState';\n mountHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n try {\n return mountState(initialState);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useDebugValue: function (value, formatterFn) {\n currentHookNameInDev = 'useDebugValue';\n mountHookTypesDev();\n return mountDebugValue();\n },\n useDeferredValue: function (value) {\n currentHookNameInDev = 'useDeferredValue';\n mountHookTypesDev();\n return mountDeferredValue(value);\n },\n useTransition: function () {\n currentHookNameInDev = 'useTransition';\n mountHookTypesDev();\n return mountTransition();\n },\n useMutableSource: function (source, getSnapshot, subscribe) {\n currentHookNameInDev = 'useMutableSource';\n mountHookTypesDev();\n return mountMutableSource(source, getSnapshot, subscribe);\n },\n useOpaqueIdentifier: function () {\n currentHookNameInDev = 'useOpaqueIdentifier';\n mountHookTypesDev();\n return mountOpaqueIdentifier();\n },\n unstable_isNewReconciler: enableNewReconciler\n };\n HooksDispatcherOnMountWithHookTypesInDEV = {\n readContext: function (context, observedBits) {\n return readContext(context, observedBits);\n },\n useCallback: function (callback, deps) {\n currentHookNameInDev = 'useCallback';\n updateHookTypesDev();\n return mountCallback(callback, deps);\n },\n useContext: function (context, observedBits) {\n currentHookNameInDev = 'useContext';\n updateHookTypesDev();\n return readContext(context, observedBits);\n },\n useEffect: function (create, deps) {\n currentHookNameInDev = 'useEffect';\n updateHookTypesDev();\n return mountEffect(create, deps);\n },\n useImperativeHandle: function (ref, create, deps) {\n currentHookNameInDev = 'useImperativeHandle';\n updateHookTypesDev();\n return mountImperativeHandle(ref, create, deps);\n },\n useLayoutEffect: function (create, deps) {\n currentHookNameInDev = 'useLayoutEffect';\n updateHookTypesDev();\n return mountLayoutEffect(create, deps);\n },\n useMemo: function (create, deps) {\n currentHookNameInDev = 'useMemo';\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n try {\n return mountMemo(create, deps);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useReducer: function (reducer, initialArg, init) {\n currentHookNameInDev = 'useReducer';\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n try {\n return mountReducer(reducer, initialArg, init);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useRef: function (initialValue) {\n currentHookNameInDev = 'useRef';\n updateHookTypesDev();\n return mountRef(initialValue);\n },\n useState: function (initialState) {\n currentHookNameInDev = 'useState';\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n try {\n return mountState(initialState);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useDebugValue: function (value, formatterFn) {\n currentHookNameInDev = 'useDebugValue';\n updateHookTypesDev();\n return mountDebugValue();\n },\n useDeferredValue: function (value) {\n currentHookNameInDev = 'useDeferredValue';\n updateHookTypesDev();\n return mountDeferredValue(value);\n },\n useTransition: function () {\n currentHookNameInDev = 'useTransition';\n updateHookTypesDev();\n return mountTransition();\n },\n useMutableSource: function (source, getSnapshot, subscribe) {\n currentHookNameInDev = 'useMutableSource';\n updateHookTypesDev();\n return mountMutableSource(source, getSnapshot, subscribe);\n },\n useOpaqueIdentifier: function () {\n currentHookNameInDev = 'useOpaqueIdentifier';\n updateHookTypesDev();\n return mountOpaqueIdentifier();\n },\n unstable_isNewReconciler: enableNewReconciler\n };\n HooksDispatcherOnUpdateInDEV = {\n readContext: function (context, observedBits) {\n return readContext(context, observedBits);\n },\n useCallback: function (callback, deps) {\n currentHookNameInDev = 'useCallback';\n updateHookTypesDev();\n return updateCallback(callback, deps);\n },\n useContext: function (context, observedBits) {\n currentHookNameInDev = 'useContext';\n updateHookTypesDev();\n return readContext(context, observedBits);\n },\n useEffect: function (create, deps) {\n currentHookNameInDev = 'useEffect';\n updateHookTypesDev();\n return updateEffect(create, deps);\n },\n useImperativeHandle: function (ref, create, deps) {\n currentHookNameInDev = 'useImperativeHandle';\n updateHookTypesDev();\n return updateImperativeHandle(ref, create, deps);\n },\n useLayoutEffect: function (create, deps) {\n currentHookNameInDev = 'useLayoutEffect';\n updateHookTypesDev();\n return updateLayoutEffect(create, deps);\n },\n useMemo: function (create, deps) {\n currentHookNameInDev = 'useMemo';\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n try {\n return updateMemo(create, deps);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useReducer: function (reducer, initialArg, init) {\n currentHookNameInDev = 'useReducer';\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n try {\n return updateReducer(reducer, initialArg, init);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useRef: function (initialValue) {\n currentHookNameInDev = 'useRef';\n updateHookTypesDev();\n return updateRef();\n },\n useState: function (initialState) {\n currentHookNameInDev = 'useState';\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n try {\n return updateState(initialState);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useDebugValue: function (value, formatterFn) {\n currentHookNameInDev = 'useDebugValue';\n updateHookTypesDev();\n return updateDebugValue();\n },\n useDeferredValue: function (value) {\n currentHookNameInDev = 'useDeferredValue';\n updateHookTypesDev();\n return updateDeferredValue(value);\n },\n useTransition: function () {\n currentHookNameInDev = 'useTransition';\n updateHookTypesDev();\n return updateTransition();\n },\n useMutableSource: function (source, getSnapshot, subscribe) {\n currentHookNameInDev = 'useMutableSource';\n updateHookTypesDev();\n return updateMutableSource(source, getSnapshot, subscribe);\n },\n useOpaqueIdentifier: function () {\n currentHookNameInDev = 'useOpaqueIdentifier';\n updateHookTypesDev();\n return updateOpaqueIdentifier();\n },\n unstable_isNewReconciler: enableNewReconciler\n };\n HooksDispatcherOnRerenderInDEV = {\n readContext: function (context, observedBits) {\n return readContext(context, observedBits);\n },\n useCallback: function (callback, deps) {\n currentHookNameInDev = 'useCallback';\n updateHookTypesDev();\n return updateCallback(callback, deps);\n },\n useContext: function (context, observedBits) {\n currentHookNameInDev = 'useContext';\n updateHookTypesDev();\n return readContext(context, observedBits);\n },\n useEffect: function (create, deps) {\n currentHookNameInDev = 'useEffect';\n updateHookTypesDev();\n return updateEffect(create, deps);\n },\n useImperativeHandle: function (ref, create, deps) {\n currentHookNameInDev = 'useImperativeHandle';\n updateHookTypesDev();\n return updateImperativeHandle(ref, create, deps);\n },\n useLayoutEffect: function (create, deps) {\n currentHookNameInDev = 'useLayoutEffect';\n updateHookTypesDev();\n return updateLayoutEffect(create, deps);\n },\n useMemo: function (create, deps) {\n currentHookNameInDev = 'useMemo';\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnRerenderInDEV;\n\n try {\n return updateMemo(create, deps);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useReducer: function (reducer, initialArg, init) {\n currentHookNameInDev = 'useReducer';\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnRerenderInDEV;\n\n try {\n return rerenderReducer(reducer, initialArg, init);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useRef: function (initialValue) {\n currentHookNameInDev = 'useRef';\n updateHookTypesDev();\n return updateRef();\n },\n useState: function (initialState) {\n currentHookNameInDev = 'useState';\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnRerenderInDEV;\n\n try {\n return rerenderState(initialState);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useDebugValue: function (value, formatterFn) {\n currentHookNameInDev = 'useDebugValue';\n updateHookTypesDev();\n return updateDebugValue();\n },\n useDeferredValue: function (value) {\n currentHookNameInDev = 'useDeferredValue';\n updateHookTypesDev();\n return rerenderDeferredValue(value);\n },\n useTransition: function () {\n currentHookNameInDev = 'useTransition';\n updateHookTypesDev();\n return rerenderTransition();\n },\n useMutableSource: function (source, getSnapshot, subscribe) {\n currentHookNameInDev = 'useMutableSource';\n updateHookTypesDev();\n return updateMutableSource(source, getSnapshot, subscribe);\n },\n useOpaqueIdentifier: function () {\n currentHookNameInDev = 'useOpaqueIdentifier';\n updateHookTypesDev();\n return rerenderOpaqueIdentifier();\n },\n unstable_isNewReconciler: enableNewReconciler\n };\n InvalidNestedHooksDispatcherOnMountInDEV = {\n readContext: function (context, observedBits) {\n warnInvalidContextAccess();\n return readContext(context, observedBits);\n },\n useCallback: function (callback, deps) {\n currentHookNameInDev = 'useCallback';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountCallback(callback, deps);\n },\n useContext: function (context, observedBits) {\n currentHookNameInDev = 'useContext';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return readContext(context, observedBits);\n },\n useEffect: function (create, deps) {\n currentHookNameInDev = 'useEffect';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountEffect(create, deps);\n },\n useImperativeHandle: function (ref, create, deps) {\n currentHookNameInDev = 'useImperativeHandle';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountImperativeHandle(ref, create, deps);\n },\n useLayoutEffect: function (create, deps) {\n currentHookNameInDev = 'useLayoutEffect';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountLayoutEffect(create, deps);\n },\n useMemo: function (create, deps) {\n currentHookNameInDev = 'useMemo';\n warnInvalidHookAccess();\n mountHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n try {\n return mountMemo(create, deps);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useReducer: function (reducer, initialArg, init) {\n currentHookNameInDev = 'useReducer';\n warnInvalidHookAccess();\n mountHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n try {\n return mountReducer(reducer, initialArg, init);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useRef: function (initialValue) {\n currentHookNameInDev = 'useRef';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountRef(initialValue);\n },\n useState: function (initialState) {\n currentHookNameInDev = 'useState';\n warnInvalidHookAccess();\n mountHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n try {\n return mountState(initialState);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useDebugValue: function (value, formatterFn) {\n currentHookNameInDev = 'useDebugValue';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountDebugValue();\n },\n useDeferredValue: function (value) {\n currentHookNameInDev = 'useDeferredValue';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountDeferredValue(value);\n },\n useTransition: function () {\n currentHookNameInDev = 'useTransition';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountTransition();\n },\n useMutableSource: function (source, getSnapshot, subscribe) {\n currentHookNameInDev = 'useMutableSource';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountMutableSource(source, getSnapshot, subscribe);\n },\n useOpaqueIdentifier: function () {\n currentHookNameInDev = 'useOpaqueIdentifier';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountOpaqueIdentifier();\n },\n unstable_isNewReconciler: enableNewReconciler\n };\n InvalidNestedHooksDispatcherOnUpdateInDEV = {\n readContext: function (context, observedBits) {\n warnInvalidContextAccess();\n return readContext(context, observedBits);\n },\n useCallback: function (callback, deps) {\n currentHookNameInDev = 'useCallback';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateCallback(callback, deps);\n },\n useContext: function (context, observedBits) {\n currentHookNameInDev = 'useContext';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return readContext(context, observedBits);\n },\n useEffect: function (create, deps) {\n currentHookNameInDev = 'useEffect';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateEffect(create, deps);\n },\n useImperativeHandle: function (ref, create, deps) {\n currentHookNameInDev = 'useImperativeHandle';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateImperativeHandle(ref, create, deps);\n },\n useLayoutEffect: function (create, deps) {\n currentHookNameInDev = 'useLayoutEffect';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateLayoutEffect(create, deps);\n },\n useMemo: function (create, deps) {\n currentHookNameInDev = 'useMemo';\n warnInvalidHookAccess();\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n try {\n return updateMemo(create, deps);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useReducer: function (reducer, initialArg, init) {\n currentHookNameInDev = 'useReducer';\n warnInvalidHookAccess();\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n try {\n return updateReducer(reducer, initialArg, init);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useRef: function (initialValue) {\n currentHookNameInDev = 'useRef';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateRef();\n },\n useState: function (initialState) {\n currentHookNameInDev = 'useState';\n warnInvalidHookAccess();\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n try {\n return updateState(initialState);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useDebugValue: function (value, formatterFn) {\n currentHookNameInDev = 'useDebugValue';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateDebugValue();\n },\n useDeferredValue: function (value) {\n currentHookNameInDev = 'useDeferredValue';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateDeferredValue(value);\n },\n useTransition: function () {\n currentHookNameInDev = 'useTransition';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateTransition();\n },\n useMutableSource: function (source, getSnapshot, subscribe) {\n currentHookNameInDev = 'useMutableSource';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateMutableSource(source, getSnapshot, subscribe);\n },\n useOpaqueIdentifier: function () {\n currentHookNameInDev = 'useOpaqueIdentifier';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateOpaqueIdentifier();\n },\n unstable_isNewReconciler: enableNewReconciler\n };\n InvalidNestedHooksDispatcherOnRerenderInDEV = {\n readContext: function (context, observedBits) {\n warnInvalidContextAccess();\n return readContext(context, observedBits);\n },\n useCallback: function (callback, deps) {\n currentHookNameInDev = 'useCallback';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateCallback(callback, deps);\n },\n useContext: function (context, observedBits) {\n currentHookNameInDev = 'useContext';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return readContext(context, observedBits);\n },\n useEffect: function (create, deps) {\n currentHookNameInDev = 'useEffect';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateEffect(create, deps);\n },\n useImperativeHandle: function (ref, create, deps) {\n currentHookNameInDev = 'useImperativeHandle';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateImperativeHandle(ref, create, deps);\n },\n useLayoutEffect: function (create, deps) {\n currentHookNameInDev = 'useLayoutEffect';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateLayoutEffect(create, deps);\n },\n useMemo: function (create, deps) {\n currentHookNameInDev = 'useMemo';\n warnInvalidHookAccess();\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n try {\n return updateMemo(create, deps);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useReducer: function (reducer, initialArg, init) {\n currentHookNameInDev = 'useReducer';\n warnInvalidHookAccess();\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n try {\n return rerenderReducer(reducer, initialArg, init);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useRef: function (initialValue) {\n currentHookNameInDev = 'useRef';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateRef();\n },\n useState: function (initialState) {\n currentHookNameInDev = 'useState';\n warnInvalidHookAccess();\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n try {\n return rerenderState(initialState);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useDebugValue: function (value, formatterFn) {\n currentHookNameInDev = 'useDebugValue';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateDebugValue();\n },\n useDeferredValue: function (value) {\n currentHookNameInDev = 'useDeferredValue';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return rerenderDeferredValue(value);\n },\n useTransition: function () {\n currentHookNameInDev = 'useTransition';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return rerenderTransition();\n },\n useMutableSource: function (source, getSnapshot, subscribe) {\n currentHookNameInDev = 'useMutableSource';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateMutableSource(source, getSnapshot, subscribe);\n },\n useOpaqueIdentifier: function () {\n currentHookNameInDev = 'useOpaqueIdentifier';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return rerenderOpaqueIdentifier();\n },\n unstable_isNewReconciler: enableNewReconciler\n };\n}\n\nvar now$1 = Scheduler.unstable_now;\nvar commitTime = 0;\nvar profilerStartTime = -1;\n\nfunction getCommitTime() {\n return commitTime;\n}\n\nfunction recordCommitTime() {\n\n commitTime = now$1();\n}\n\nfunction startProfilerTimer(fiber) {\n\n profilerStartTime = now$1();\n\n if (fiber.actualStartTime < 0) {\n fiber.actualStartTime = now$1();\n }\n}\n\nfunction stopProfilerTimerIfRunning(fiber) {\n\n profilerStartTime = -1;\n}\n\nfunction stopProfilerTimerIfRunningAndRecordDelta(fiber, overrideBaseTime) {\n\n if (profilerStartTime >= 0) {\n var elapsedTime = now$1() - profilerStartTime;\n fiber.actualDuration += elapsedTime;\n\n if (overrideBaseTime) {\n fiber.selfBaseDuration = elapsedTime;\n }\n\n profilerStartTime = -1;\n }\n}\n\nfunction transferActualDuration(fiber) {\n // Transfer time spent rendering these children so we don't lose it\n // after we rerender. This is used as a helper in special cases\n // where we should count the work of multiple passes.\n var child = fiber.child;\n\n while (child) {\n fiber.actualDuration += child.actualDuration;\n child = child.sibling;\n }\n}\n\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;\nvar didReceiveUpdate = false;\nvar didWarnAboutBadClass;\nvar didWarnAboutModulePatternComponent;\nvar didWarnAboutContextTypeOnFunctionComponent;\nvar didWarnAboutGetDerivedStateOnFunctionComponent;\nvar didWarnAboutFunctionRefs;\nvar didWarnAboutReassigningProps;\nvar didWarnAboutRevealOrder;\nvar didWarnAboutTailOptions;\n\n{\n didWarnAboutBadClass = {};\n didWarnAboutModulePatternComponent = {};\n didWarnAboutContextTypeOnFunctionComponent = {};\n didWarnAboutGetDerivedStateOnFunctionComponent = {};\n didWarnAboutFunctionRefs = {};\n didWarnAboutReassigningProps = false;\n didWarnAboutRevealOrder = {};\n didWarnAboutTailOptions = {};\n}\n\nfunction reconcileChildren(current, workInProgress, nextChildren, renderLanes) {\n if (current === null) {\n // If this is a fresh new component that hasn't been rendered yet, we\n // won't update its child set by applying minimal side-effects. Instead,\n // we will add them all to the child before it gets rendered. That means\n // we can optimize this reconciliation pass by not tracking side-effects.\n workInProgress.child = mountChildFibers(workInProgress, null, nextChildren, renderLanes);\n } else {\n // If the current child is the same as the work in progress, it means that\n // we haven't yet started any work on these children. Therefore, we use\n // the clone algorithm to create a copy of all the current children.\n // If we had any progressed work already, that is invalid at this point so\n // let's throw it out.\n workInProgress.child = reconcileChildFibers(workInProgress, current.child, nextChildren, renderLanes);\n }\n}\n\nfunction forceUnmountCurrentAndReconcile(current, workInProgress, nextChildren, renderLanes) {\n // This function is fork of reconcileChildren. It's used in cases where we\n // want to reconcile without matching against the existing set. This has the\n // effect of all current children being unmounted; even if the type and key\n // are the same, the old child is unmounted and a new child is created.\n //\n // To do this, we're going to go through the reconcile algorithm twice. In\n // the first pass, we schedule a deletion for all the current children by\n // passing null.\n workInProgress.child = reconcileChildFibers(workInProgress, current.child, null, renderLanes); // In the second pass, we mount the new children. The trick here is that we\n // pass null in place of where we usually pass the current child set. This has\n // the effect of remounting all children regardless of whether their\n // identities match.\n\n workInProgress.child = reconcileChildFibers(workInProgress, null, nextChildren, renderLanes);\n}\n\nfunction updateForwardRef(current, workInProgress, Component, nextProps, renderLanes) {\n // TODO: current can be non-null here even if the component\n // hasn't yet mounted. This happens after the first render suspends.\n // We'll need to figure out if this is fine or can cause issues.\n {\n if (workInProgress.type !== workInProgress.elementType) {\n // Lazy component props can't be validated in createElement\n // because they're only guaranteed to be resolved here.\n var innerPropTypes = Component.propTypes;\n\n if (innerPropTypes) {\n checkPropTypes(innerPropTypes, nextProps, // Resolved props\n 'prop', getComponentName(Component));\n }\n }\n }\n\n var render = Component.render;\n var ref = workInProgress.ref; // The rest is a fork of updateFunctionComponent\n\n var nextChildren;\n prepareToReadContext(workInProgress, renderLanes);\n\n {\n ReactCurrentOwner$1.current = workInProgress;\n setIsRendering(true);\n nextChildren = renderWithHooks(current, workInProgress, render, nextProps, ref, renderLanes);\n\n if ( workInProgress.mode & StrictMode) {\n disableLogs();\n\n try {\n nextChildren = renderWithHooks(current, workInProgress, render, nextProps, ref, renderLanes);\n } finally {\n reenableLogs();\n }\n }\n\n setIsRendering(false);\n }\n\n if (current !== null && !didReceiveUpdate) {\n bailoutHooks(current, workInProgress, renderLanes);\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n } // React DevTools reads this flag.\n\n\n workInProgress.flags |= PerformedWork;\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\n\nfunction updateMemoComponent(current, workInProgress, Component, nextProps, updateLanes, renderLanes) {\n if (current === null) {\n var type = Component.type;\n\n if (isSimpleFunctionComponent(type) && Component.compare === null && // SimpleMemoComponent codepath doesn't resolve outer props either.\n Component.defaultProps === undefined) {\n var resolvedType = type;\n\n {\n resolvedType = resolveFunctionForHotReloading(type);\n } // If this is a plain function component without default props,\n // and with only the default shallow comparison, we upgrade it\n // to a SimpleMemoComponent to allow fast path updates.\n\n\n workInProgress.tag = SimpleMemoComponent;\n workInProgress.type = resolvedType;\n\n {\n validateFunctionComponentInDev(workInProgress, type);\n }\n\n return updateSimpleMemoComponent(current, workInProgress, resolvedType, nextProps, updateLanes, renderLanes);\n }\n\n {\n var innerPropTypes = type.propTypes;\n\n if (innerPropTypes) {\n // Inner memo component props aren't currently validated in createElement.\n // We could move it there, but we'd still need this for lazy code path.\n checkPropTypes(innerPropTypes, nextProps, // Resolved props\n 'prop', getComponentName(type));\n }\n }\n\n var child = createFiberFromTypeAndProps(Component.type, null, nextProps, workInProgress, workInProgress.mode, renderLanes);\n child.ref = workInProgress.ref;\n child.return = workInProgress;\n workInProgress.child = child;\n return child;\n }\n\n {\n var _type = Component.type;\n var _innerPropTypes = _type.propTypes;\n\n if (_innerPropTypes) {\n // Inner memo component props aren't currently validated in createElement.\n // We could move it there, but we'd still need this for lazy code path.\n checkPropTypes(_innerPropTypes, nextProps, // Resolved props\n 'prop', getComponentName(_type));\n }\n }\n\n var currentChild = current.child; // This is always exactly one child\n\n if (!includesSomeLane(updateLanes, renderLanes)) {\n // This will be the props with resolved defaultProps,\n // unlike current.memoizedProps which will be the unresolved ones.\n var prevProps = currentChild.memoizedProps; // Default to shallow comparison\n\n var compare = Component.compare;\n compare = compare !== null ? compare : shallowEqual;\n\n if (compare(prevProps, nextProps) && current.ref === workInProgress.ref) {\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n } // React DevTools reads this flag.\n\n\n workInProgress.flags |= PerformedWork;\n var newChild = createWorkInProgress(currentChild, nextProps);\n newChild.ref = workInProgress.ref;\n newChild.return = workInProgress;\n workInProgress.child = newChild;\n return newChild;\n}\n\nfunction updateSimpleMemoComponent(current, workInProgress, Component, nextProps, updateLanes, renderLanes) {\n // TODO: current can be non-null here even if the component\n // hasn't yet mounted. This happens when the inner render suspends.\n // We'll need to figure out if this is fine or can cause issues.\n {\n if (workInProgress.type !== workInProgress.elementType) {\n // Lazy component props can't be validated in createElement\n // because they're only guaranteed to be resolved here.\n var outerMemoType = workInProgress.elementType;\n\n if (outerMemoType.$$typeof === REACT_LAZY_TYPE) {\n // We warn when you define propTypes on lazy()\n // so let's just skip over it to find memo() outer wrapper.\n // Inner props for memo are validated later.\n var lazyComponent = outerMemoType;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n outerMemoType = init(payload);\n } catch (x) {\n outerMemoType = null;\n } // Inner propTypes will be validated in the function component path.\n\n\n var outerPropTypes = outerMemoType && outerMemoType.propTypes;\n\n if (outerPropTypes) {\n checkPropTypes(outerPropTypes, nextProps, // Resolved (SimpleMemoComponent has no defaultProps)\n 'prop', getComponentName(outerMemoType));\n }\n }\n }\n }\n\n if (current !== null) {\n var prevProps = current.memoizedProps;\n\n if (shallowEqual(prevProps, nextProps) && current.ref === workInProgress.ref && ( // Prevent bailout if the implementation changed due to hot reload.\n workInProgress.type === current.type )) {\n didReceiveUpdate = false;\n\n if (!includesSomeLane(renderLanes, updateLanes)) {\n // The pending lanes were cleared at the beginning of beginWork. We're\n // about to bail out, but there might be other lanes that weren't\n // included in the current render. Usually, the priority level of the\n // remaining updates is accumlated during the evaluation of the\n // component (i.e. when processing the update queue). But since since\n // we're bailing out early *without* evaluating the component, we need\n // to account for it here, too. Reset to the value of the current fiber.\n // NOTE: This only applies to SimpleMemoComponent, not MemoComponent,\n // because a MemoComponent fiber does not have hooks or an update queue;\n // rather, it wraps around an inner component, which may or may not\n // contains hooks.\n // TODO: Move the reset at in beginWork out of the common path so that\n // this is no longer necessary.\n workInProgress.lanes = current.lanes;\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n } else if ((current.flags & ForceUpdateForLegacySuspense) !== NoFlags) {\n // This is a special case that only exists for legacy mode.\n // See https://github.com/facebook/react/pull/19216.\n didReceiveUpdate = true;\n }\n }\n }\n\n return updateFunctionComponent(current, workInProgress, Component, nextProps, renderLanes);\n}\n\nfunction updateOffscreenComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps;\n var nextChildren = nextProps.children;\n var prevState = current !== null ? current.memoizedState : null;\n\n if (nextProps.mode === 'hidden' || nextProps.mode === 'unstable-defer-without-hiding') {\n if ((workInProgress.mode & ConcurrentMode) === NoMode) {\n // In legacy sync mode, don't defer the subtree. Render it now.\n // TODO: Figure out what we should do in Blocking mode.\n var nextState = {\n baseLanes: NoLanes\n };\n workInProgress.memoizedState = nextState;\n pushRenderLanes(workInProgress, renderLanes);\n } else if (!includesSomeLane(renderLanes, OffscreenLane)) {\n var nextBaseLanes;\n\n if (prevState !== null) {\n var prevBaseLanes = prevState.baseLanes;\n nextBaseLanes = mergeLanes(prevBaseLanes, renderLanes);\n } else {\n nextBaseLanes = renderLanes;\n } // Schedule this fiber to re-render at offscreen priority. Then bailout.\n\n\n {\n markSpawnedWork(OffscreenLane);\n }\n\n workInProgress.lanes = workInProgress.childLanes = laneToLanes(OffscreenLane);\n var _nextState = {\n baseLanes: nextBaseLanes\n };\n workInProgress.memoizedState = _nextState; // We're about to bail out, but we need to push this to the stack anyway\n // to avoid a push/pop misalignment.\n\n pushRenderLanes(workInProgress, nextBaseLanes);\n return null;\n } else {\n // Rendering at offscreen, so we can clear the base lanes.\n var _nextState2 = {\n baseLanes: NoLanes\n };\n workInProgress.memoizedState = _nextState2; // Push the lanes that were skipped when we bailed out.\n\n var subtreeRenderLanes = prevState !== null ? prevState.baseLanes : renderLanes;\n pushRenderLanes(workInProgress, subtreeRenderLanes);\n }\n } else {\n var _subtreeRenderLanes;\n\n if (prevState !== null) {\n _subtreeRenderLanes = mergeLanes(prevState.baseLanes, renderLanes); // Since we're not hidden anymore, reset the state\n\n workInProgress.memoizedState = null;\n } else {\n // We weren't previously hidden, and we still aren't, so there's nothing\n // special to do. Need to push to the stack regardless, though, to avoid\n // a push/pop misalignment.\n _subtreeRenderLanes = renderLanes;\n }\n\n pushRenderLanes(workInProgress, _subtreeRenderLanes);\n }\n\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n} // Note: These happen to have identical begin phases, for now. We shouldn't hold\n// ourselves to this constraint, though. If the behavior diverges, we should\n// fork the function.\n\n\nvar updateLegacyHiddenComponent = updateOffscreenComponent;\n\nfunction updateFragment(current, workInProgress, renderLanes) {\n var nextChildren = workInProgress.pendingProps;\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\n\nfunction updateMode(current, workInProgress, renderLanes) {\n var nextChildren = workInProgress.pendingProps.children;\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\n\nfunction updateProfiler(current, workInProgress, renderLanes) {\n {\n workInProgress.flags |= Update; // Reset effect durations for the next eventual effect phase.\n // These are reset during render to allow the DevTools commit hook a chance to read them,\n\n var stateNode = workInProgress.stateNode;\n stateNode.effectDuration = 0;\n stateNode.passiveEffectDuration = 0;\n }\n\n var nextProps = workInProgress.pendingProps;\n var nextChildren = nextProps.children;\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\n\nfunction markRef(current, workInProgress) {\n var ref = workInProgress.ref;\n\n if (current === null && ref !== null || current !== null && current.ref !== ref) {\n // Schedule a Ref effect\n workInProgress.flags |= Ref;\n }\n}\n\nfunction updateFunctionComponent(current, workInProgress, Component, nextProps, renderLanes) {\n {\n if (workInProgress.type !== workInProgress.elementType) {\n // Lazy component props can't be validated in createElement\n // because they're only guaranteed to be resolved here.\n var innerPropTypes = Component.propTypes;\n\n if (innerPropTypes) {\n checkPropTypes(innerPropTypes, nextProps, // Resolved props\n 'prop', getComponentName(Component));\n }\n }\n }\n\n var context;\n\n {\n var unmaskedContext = getUnmaskedContext(workInProgress, Component, true);\n context = getMaskedContext(workInProgress, unmaskedContext);\n }\n\n var nextChildren;\n prepareToReadContext(workInProgress, renderLanes);\n\n {\n ReactCurrentOwner$1.current = workInProgress;\n setIsRendering(true);\n nextChildren = renderWithHooks(current, workInProgress, Component, nextProps, context, renderLanes);\n\n if ( workInProgress.mode & StrictMode) {\n disableLogs();\n\n try {\n nextChildren = renderWithHooks(current, workInProgress, Component, nextProps, context, renderLanes);\n } finally {\n reenableLogs();\n }\n }\n\n setIsRendering(false);\n }\n\n if (current !== null && !didReceiveUpdate) {\n bailoutHooks(current, workInProgress, renderLanes);\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n } // React DevTools reads this flag.\n\n\n workInProgress.flags |= PerformedWork;\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\n\nfunction updateClassComponent(current, workInProgress, Component, nextProps, renderLanes) {\n {\n if (workInProgress.type !== workInProgress.elementType) {\n // Lazy component props can't be validated in createElement\n // because they're only guaranteed to be resolved here.\n var innerPropTypes = Component.propTypes;\n\n if (innerPropTypes) {\n checkPropTypes(innerPropTypes, nextProps, // Resolved props\n 'prop', getComponentName(Component));\n }\n }\n } // Push context providers early to prevent context stack mismatches.\n // During mounting we don't know the child context yet as the instance doesn't exist.\n // We will invalidate the child context in finishClassComponent() right after rendering.\n\n\n var hasContext;\n\n if (isContextProvider(Component)) {\n hasContext = true;\n pushContextProvider(workInProgress);\n } else {\n hasContext = false;\n }\n\n prepareToReadContext(workInProgress, renderLanes);\n var instance = workInProgress.stateNode;\n var shouldUpdate;\n\n if (instance === null) {\n if (current !== null) {\n // A class component without an instance only mounts if it suspended\n // inside a non-concurrent tree, in an inconsistent state. We want to\n // treat it like a new mount, even though an empty version of it already\n // committed. Disconnect the alternate pointers.\n current.alternate = null;\n workInProgress.alternate = null; // Since this is conceptually a new fiber, schedule a Placement effect\n\n workInProgress.flags |= Placement;\n } // In the initial pass we might need to construct the instance.\n\n\n constructClassInstance(workInProgress, Component, nextProps);\n mountClassInstance(workInProgress, Component, nextProps, renderLanes);\n shouldUpdate = true;\n } else if (current === null) {\n // In a resume, we'll already have an instance we can reuse.\n shouldUpdate = resumeMountClassInstance(workInProgress, Component, nextProps, renderLanes);\n } else {\n shouldUpdate = updateClassInstance(current, workInProgress, Component, nextProps, renderLanes);\n }\n\n var nextUnitOfWork = finishClassComponent(current, workInProgress, Component, shouldUpdate, hasContext, renderLanes);\n\n {\n var inst = workInProgress.stateNode;\n\n if (shouldUpdate && inst.props !== nextProps) {\n if (!didWarnAboutReassigningProps) {\n error('It looks like %s is reassigning its own `this.props` while rendering. ' + 'This is not supported and can lead to confusing bugs.', getComponentName(workInProgress.type) || 'a component');\n }\n\n didWarnAboutReassigningProps = true;\n }\n }\n\n return nextUnitOfWork;\n}\n\nfunction finishClassComponent(current, workInProgress, Component, shouldUpdate, hasContext, renderLanes) {\n // Refs should update even if shouldComponentUpdate returns false\n markRef(current, workInProgress);\n var didCaptureError = (workInProgress.flags & DidCapture) !== NoFlags;\n\n if (!shouldUpdate && !didCaptureError) {\n // Context providers should defer to sCU for rendering\n if (hasContext) {\n invalidateContextProvider(workInProgress, Component, false);\n }\n\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n\n var instance = workInProgress.stateNode; // Rerender\n\n ReactCurrentOwner$1.current = workInProgress;\n var nextChildren;\n\n if (didCaptureError && typeof Component.getDerivedStateFromError !== 'function') {\n // If we captured an error, but getDerivedStateFromError is not defined,\n // unmount all the children. componentDidCatch will schedule an update to\n // re-render a fallback. This is temporary until we migrate everyone to\n // the new API.\n // TODO: Warn in a future release.\n nextChildren = null;\n\n {\n stopProfilerTimerIfRunning();\n }\n } else {\n {\n setIsRendering(true);\n nextChildren = instance.render();\n\n if ( workInProgress.mode & StrictMode) {\n disableLogs();\n\n try {\n instance.render();\n } finally {\n reenableLogs();\n }\n }\n\n setIsRendering(false);\n }\n } // React DevTools reads this flag.\n\n\n workInProgress.flags |= PerformedWork;\n\n if (current !== null && didCaptureError) {\n // If we're recovering from an error, reconcile without reusing any of\n // the existing children. Conceptually, the normal children and the children\n // that are shown on error are two different sets, so we shouldn't reuse\n // normal children even if their identities match.\n forceUnmountCurrentAndReconcile(current, workInProgress, nextChildren, renderLanes);\n } else {\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n } // Memoize state using the values we just used to render.\n // TODO: Restructure so we never read values from the instance.\n\n\n workInProgress.memoizedState = instance.state; // The context might have changed so we need to recalculate it.\n\n if (hasContext) {\n invalidateContextProvider(workInProgress, Component, true);\n }\n\n return workInProgress.child;\n}\n\nfunction pushHostRootContext(workInProgress) {\n var root = workInProgress.stateNode;\n\n if (root.pendingContext) {\n pushTopLevelContextObject(workInProgress, root.pendingContext, root.pendingContext !== root.context);\n } else if (root.context) {\n // Should always be set\n pushTopLevelContextObject(workInProgress, root.context, false);\n }\n\n pushHostContainer(workInProgress, root.containerInfo);\n}\n\nfunction updateHostRoot(current, workInProgress, renderLanes) {\n pushHostRootContext(workInProgress);\n var updateQueue = workInProgress.updateQueue;\n\n if (!(current !== null && updateQueue !== null)) {\n {\n throw Error( \"If the root does not have an updateQueue, we should have already bailed out. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n\n var nextProps = workInProgress.pendingProps;\n var prevState = workInProgress.memoizedState;\n var prevChildren = prevState !== null ? prevState.element : null;\n cloneUpdateQueue(current, workInProgress);\n processUpdateQueue(workInProgress, nextProps, null, renderLanes);\n var nextState = workInProgress.memoizedState; // Caution: React DevTools currently depends on this property\n // being called \"element\".\n\n var nextChildren = nextState.element;\n\n if (nextChildren === prevChildren) {\n resetHydrationState();\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n\n var root = workInProgress.stateNode;\n\n if (root.hydrate && enterHydrationState(workInProgress)) {\n // If we don't have any current children this might be the first pass.\n // We always try to hydrate. If this isn't a hydration pass there won't\n // be any children to hydrate which is effectively the same thing as\n // not hydrating.\n {\n var mutableSourceEagerHydrationData = root.mutableSourceEagerHydrationData;\n\n if (mutableSourceEagerHydrationData != null) {\n for (var i = 0; i < mutableSourceEagerHydrationData.length; i += 2) {\n var mutableSource = mutableSourceEagerHydrationData[i];\n var version = mutableSourceEagerHydrationData[i + 1];\n setWorkInProgressVersion(mutableSource, version);\n }\n }\n }\n\n var child = mountChildFibers(workInProgress, null, nextChildren, renderLanes);\n workInProgress.child = child;\n var node = child;\n\n while (node) {\n // Mark each child as hydrating. This is a fast path to know whether this\n // tree is part of a hydrating tree. This is used to determine if a child\n // node has fully mounted yet, and for scheduling event replaying.\n // Conceptually this is similar to Placement in that a new subtree is\n // inserted into the React tree here. It just happens to not need DOM\n // mutations because it already exists.\n node.flags = node.flags & ~Placement | Hydrating;\n node = node.sibling;\n }\n } else {\n // Otherwise reset hydration state in case we aborted and resumed another\n // root.\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n resetHydrationState();\n }\n\n return workInProgress.child;\n}\n\nfunction updateHostComponent(current, workInProgress, renderLanes) {\n pushHostContext(workInProgress);\n\n if (current === null) {\n tryToClaimNextHydratableInstance(workInProgress);\n }\n\n var type = workInProgress.type;\n var nextProps = workInProgress.pendingProps;\n var prevProps = current !== null ? current.memoizedProps : null;\n var nextChildren = nextProps.children;\n var isDirectTextChild = shouldSetTextContent(type, nextProps);\n\n if (isDirectTextChild) {\n // We special case a direct text child of a host node. This is a common\n // case. We won't handle it as a reified child. We will instead handle\n // this in the host environment that also has access to this prop. That\n // avoids allocating another HostText fiber and traversing it.\n nextChildren = null;\n } else if (prevProps !== null && shouldSetTextContent(type, prevProps)) {\n // If we're switching from a direct text child to a normal child, or to\n // empty, we need to schedule the text content to be reset.\n workInProgress.flags |= ContentReset;\n }\n\n markRef(current, workInProgress);\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\n\nfunction updateHostText(current, workInProgress) {\n if (current === null) {\n tryToClaimNextHydratableInstance(workInProgress);\n } // Nothing to do here. This is terminal. We'll do the completion step\n // immediately after.\n\n\n return null;\n}\n\nfunction mountLazyComponent(_current, workInProgress, elementType, updateLanes, renderLanes) {\n if (_current !== null) {\n // A lazy component only mounts if it suspended inside a non-\n // concurrent tree, in an inconsistent state. We want to treat it like\n // a new mount, even though an empty version of it already committed.\n // Disconnect the alternate pointers.\n _current.alternate = null;\n workInProgress.alternate = null; // Since this is conceptually a new fiber, schedule a Placement effect\n\n workInProgress.flags |= Placement;\n }\n\n var props = workInProgress.pendingProps;\n var lazyComponent = elementType;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n var Component = init(payload); // Store the unwrapped component in the type.\n\n workInProgress.type = Component;\n var resolvedTag = workInProgress.tag = resolveLazyComponentTag(Component);\n var resolvedProps = resolveDefaultProps(Component, props);\n var child;\n\n switch (resolvedTag) {\n case FunctionComponent:\n {\n {\n validateFunctionComponentInDev(workInProgress, Component);\n workInProgress.type = Component = resolveFunctionForHotReloading(Component);\n }\n\n child = updateFunctionComponent(null, workInProgress, Component, resolvedProps, renderLanes);\n return child;\n }\n\n case ClassComponent:\n {\n {\n workInProgress.type = Component = resolveClassForHotReloading(Component);\n }\n\n child = updateClassComponent(null, workInProgress, Component, resolvedProps, renderLanes);\n return child;\n }\n\n case ForwardRef:\n {\n {\n workInProgress.type = Component = resolveForwardRefForHotReloading(Component);\n }\n\n child = updateForwardRef(null, workInProgress, Component, resolvedProps, renderLanes);\n return child;\n }\n\n case MemoComponent:\n {\n {\n if (workInProgress.type !== workInProgress.elementType) {\n var outerPropTypes = Component.propTypes;\n\n if (outerPropTypes) {\n checkPropTypes(outerPropTypes, resolvedProps, // Resolved for outer only\n 'prop', getComponentName(Component));\n }\n }\n }\n\n child = updateMemoComponent(null, workInProgress, Component, resolveDefaultProps(Component.type, resolvedProps), // The inner type can have defaults too\n updateLanes, renderLanes);\n return child;\n }\n }\n\n var hint = '';\n\n {\n if (Component !== null && typeof Component === 'object' && Component.$$typeof === REACT_LAZY_TYPE) {\n hint = ' Did you wrap a component in React.lazy() more than once?';\n }\n } // This message intentionally doesn't mention ForwardRef or MemoComponent\n // because the fact that it's a separate type of work is an\n // implementation detail.\n\n\n {\n {\n throw Error( \"Element type is invalid. Received a promise that resolves to: \" + Component + \". Lazy element type must resolve to a class or function.\" + hint );\n }\n }\n}\n\nfunction mountIncompleteClassComponent(_current, workInProgress, Component, nextProps, renderLanes) {\n if (_current !== null) {\n // An incomplete component only mounts if it suspended inside a non-\n // concurrent tree, in an inconsistent state. We want to treat it like\n // a new mount, even though an empty version of it already committed.\n // Disconnect the alternate pointers.\n _current.alternate = null;\n workInProgress.alternate = null; // Since this is conceptually a new fiber, schedule a Placement effect\n\n workInProgress.flags |= Placement;\n } // Promote the fiber to a class and try rendering again.\n\n\n workInProgress.tag = ClassComponent; // The rest of this function is a fork of `updateClassComponent`\n // Push context providers early to prevent context stack mismatches.\n // During mounting we don't know the child context yet as the instance doesn't exist.\n // We will invalidate the child context in finishClassComponent() right after rendering.\n\n var hasContext;\n\n if (isContextProvider(Component)) {\n hasContext = true;\n pushContextProvider(workInProgress);\n } else {\n hasContext = false;\n }\n\n prepareToReadContext(workInProgress, renderLanes);\n constructClassInstance(workInProgress, Component, nextProps);\n mountClassInstance(workInProgress, Component, nextProps, renderLanes);\n return finishClassComponent(null, workInProgress, Component, true, hasContext, renderLanes);\n}\n\nfunction mountIndeterminateComponent(_current, workInProgress, Component, renderLanes) {\n if (_current !== null) {\n // An indeterminate component only mounts if it suspended inside a non-\n // concurrent tree, in an inconsistent state. We want to treat it like\n // a new mount, even though an empty version of it already committed.\n // Disconnect the alternate pointers.\n _current.alternate = null;\n workInProgress.alternate = null; // Since this is conceptually a new fiber, schedule a Placement effect\n\n workInProgress.flags |= Placement;\n }\n\n var props = workInProgress.pendingProps;\n var context;\n\n {\n var unmaskedContext = getUnmaskedContext(workInProgress, Component, false);\n context = getMaskedContext(workInProgress, unmaskedContext);\n }\n\n prepareToReadContext(workInProgress, renderLanes);\n var value;\n\n {\n if (Component.prototype && typeof Component.prototype.render === 'function') {\n var componentName = getComponentName(Component) || 'Unknown';\n\n if (!didWarnAboutBadClass[componentName]) {\n error(\"The <%s /> component appears to have a render method, but doesn't extend React.Component. \" + 'This is likely to cause errors. Change %s to extend React.Component instead.', componentName, componentName);\n\n didWarnAboutBadClass[componentName] = true;\n }\n }\n\n if (workInProgress.mode & StrictMode) {\n ReactStrictModeWarnings.recordLegacyContextWarning(workInProgress, null);\n }\n\n setIsRendering(true);\n ReactCurrentOwner$1.current = workInProgress;\n value = renderWithHooks(null, workInProgress, Component, props, context, renderLanes);\n setIsRendering(false);\n } // React DevTools reads this flag.\n\n\n workInProgress.flags |= PerformedWork;\n\n {\n // Support for module components is deprecated and is removed behind a flag.\n // Whether or not it would crash later, we want to show a good message in DEV first.\n if (typeof value === 'object' && value !== null && typeof value.render === 'function' && value.$$typeof === undefined) {\n var _componentName = getComponentName(Component) || 'Unknown';\n\n if (!didWarnAboutModulePatternComponent[_componentName]) {\n error('The <%s /> component appears to be a function component that returns a class instance. ' + 'Change %s to a class that extends React.Component instead. ' + \"If you can't use a class try assigning the prototype on the function as a workaround. \" + \"`%s.prototype = React.Component.prototype`. Don't use an arrow function since it \" + 'cannot be called with `new` by React.', _componentName, _componentName, _componentName);\n\n didWarnAboutModulePatternComponent[_componentName] = true;\n }\n }\n }\n\n if ( // Run these checks in production only if the flag is off.\n // Eventually we'll delete this branch altogether.\n typeof value === 'object' && value !== null && typeof value.render === 'function' && value.$$typeof === undefined) {\n {\n var _componentName2 = getComponentName(Component) || 'Unknown';\n\n if (!didWarnAboutModulePatternComponent[_componentName2]) {\n error('The <%s /> component appears to be a function component that returns a class instance. ' + 'Change %s to a class that extends React.Component instead. ' + \"If you can't use a class try assigning the prototype on the function as a workaround. \" + \"`%s.prototype = React.Component.prototype`. Don't use an arrow function since it \" + 'cannot be called with `new` by React.', _componentName2, _componentName2, _componentName2);\n\n didWarnAboutModulePatternComponent[_componentName2] = true;\n }\n } // Proceed under the assumption that this is a class instance\n\n\n workInProgress.tag = ClassComponent; // Throw out any hooks that were used.\n\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null; // Push context providers early to prevent context stack mismatches.\n // During mounting we don't know the child context yet as the instance doesn't exist.\n // We will invalidate the child context in finishClassComponent() right after rendering.\n\n var hasContext = false;\n\n if (isContextProvider(Component)) {\n hasContext = true;\n pushContextProvider(workInProgress);\n } else {\n hasContext = false;\n }\n\n workInProgress.memoizedState = value.state !== null && value.state !== undefined ? value.state : null;\n initializeUpdateQueue(workInProgress);\n var getDerivedStateFromProps = Component.getDerivedStateFromProps;\n\n if (typeof getDerivedStateFromProps === 'function') {\n applyDerivedStateFromProps(workInProgress, Component, getDerivedStateFromProps, props);\n }\n\n adoptClassInstance(workInProgress, value);\n mountClassInstance(workInProgress, Component, props, renderLanes);\n return finishClassComponent(null, workInProgress, Component, true, hasContext, renderLanes);\n } else {\n // Proceed under the assumption that this is a function component\n workInProgress.tag = FunctionComponent;\n\n {\n\n if ( workInProgress.mode & StrictMode) {\n disableLogs();\n\n try {\n value = renderWithHooks(null, workInProgress, Component, props, context, renderLanes);\n } finally {\n reenableLogs();\n }\n }\n }\n\n reconcileChildren(null, workInProgress, value, renderLanes);\n\n {\n validateFunctionComponentInDev(workInProgress, Component);\n }\n\n return workInProgress.child;\n }\n}\n\nfunction validateFunctionComponentInDev(workInProgress, Component) {\n {\n if (Component) {\n if (Component.childContextTypes) {\n error('%s(...): childContextTypes cannot be defined on a function component.', Component.displayName || Component.name || 'Component');\n }\n }\n\n if (workInProgress.ref !== null) {\n var info = '';\n var ownerName = getCurrentFiberOwnerNameInDevOrNull();\n\n if (ownerName) {\n info += '\\n\\nCheck the render method of `' + ownerName + '`.';\n }\n\n var warningKey = ownerName || workInProgress._debugID || '';\n var debugSource = workInProgress._debugSource;\n\n if (debugSource) {\n warningKey = debugSource.fileName + ':' + debugSource.lineNumber;\n }\n\n if (!didWarnAboutFunctionRefs[warningKey]) {\n didWarnAboutFunctionRefs[warningKey] = true;\n\n error('Function components cannot be given refs. ' + 'Attempts to access this ref will fail. ' + 'Did you mean to use React.forwardRef()?%s', info);\n }\n }\n\n if (typeof Component.getDerivedStateFromProps === 'function') {\n var _componentName3 = getComponentName(Component) || 'Unknown';\n\n if (!didWarnAboutGetDerivedStateOnFunctionComponent[_componentName3]) {\n error('%s: Function components do not support getDerivedStateFromProps.', _componentName3);\n\n didWarnAboutGetDerivedStateOnFunctionComponent[_componentName3] = true;\n }\n }\n\n if (typeof Component.contextType === 'object' && Component.contextType !== null) {\n var _componentName4 = getComponentName(Component) || 'Unknown';\n\n if (!didWarnAboutContextTypeOnFunctionComponent[_componentName4]) {\n error('%s: Function components do not support contextType.', _componentName4);\n\n didWarnAboutContextTypeOnFunctionComponent[_componentName4] = true;\n }\n }\n }\n}\n\nvar SUSPENDED_MARKER = {\n dehydrated: null,\n retryLane: NoLane\n};\n\nfunction mountSuspenseOffscreenState(renderLanes) {\n return {\n baseLanes: renderLanes\n };\n}\n\nfunction updateSuspenseOffscreenState(prevOffscreenState, renderLanes) {\n return {\n baseLanes: mergeLanes(prevOffscreenState.baseLanes, renderLanes)\n };\n} // TODO: Probably should inline this back\n\n\nfunction shouldRemainOnFallback(suspenseContext, current, workInProgress, renderLanes) {\n // If we're already showing a fallback, there are cases where we need to\n // remain on that fallback regardless of whether the content has resolved.\n // For example, SuspenseList coordinates when nested content appears.\n if (current !== null) {\n var suspenseState = current.memoizedState;\n\n if (suspenseState === null) {\n // Currently showing content. Don't hide it, even if ForceSuspenseFallack\n // is true. More precise name might be \"ForceRemainSuspenseFallback\".\n // Note: This is a factoring smell. Can't remain on a fallback if there's\n // no fallback to remain on.\n return false;\n }\n } // Not currently showing content. Consult the Suspense context.\n\n\n return hasSuspenseContext(suspenseContext, ForceSuspenseFallback);\n}\n\nfunction getRemainingWorkInPrimaryTree(current, renderLanes) {\n // TODO: Should not remove render lanes that were pinged during this render\n return removeLanes(current.childLanes, renderLanes);\n}\n\nfunction updateSuspenseComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps; // This is used by DevTools to force a boundary to suspend.\n\n {\n if (shouldSuspend(workInProgress)) {\n workInProgress.flags |= DidCapture;\n }\n }\n\n var suspenseContext = suspenseStackCursor.current;\n var showFallback = false;\n var didSuspend = (workInProgress.flags & DidCapture) !== NoFlags;\n\n if (didSuspend || shouldRemainOnFallback(suspenseContext, current)) {\n // Something in this boundary's subtree already suspended. Switch to\n // rendering the fallback children.\n showFallback = true;\n workInProgress.flags &= ~DidCapture;\n } else {\n // Attempting the main content\n if (current === null || current.memoizedState !== null) {\n // This is a new mount or this boundary is already showing a fallback state.\n // Mark this subtree context as having at least one invisible parent that could\n // handle the fallback state.\n // Boundaries without fallbacks or should be avoided are not considered since\n // they cannot handle preferred fallback states.\n if (nextProps.fallback !== undefined && nextProps.unstable_avoidThisFallback !== true) {\n suspenseContext = addSubtreeSuspenseContext(suspenseContext, InvisibleParentSuspenseContext);\n }\n }\n }\n\n suspenseContext = setDefaultShallowSuspenseContext(suspenseContext);\n pushSuspenseContext(workInProgress, suspenseContext); // OK, the next part is confusing. We're about to reconcile the Suspense\n // boundary's children. This involves some custom reconcilation logic. Two\n // main reasons this is so complicated.\n //\n // First, Legacy Mode has different semantics for backwards compatibility. The\n // primary tree will commit in an inconsistent state, so when we do the\n // second pass to render the fallback, we do some exceedingly, uh, clever\n // hacks to make that not totally break. Like transferring effects and\n // deletions from hidden tree. In Concurrent Mode, it's much simpler,\n // because we bailout on the primary tree completely and leave it in its old\n // state, no effects. Same as what we do for Offscreen (except that\n // Offscreen doesn't have the first render pass).\n //\n // Second is hydration. During hydration, the Suspense fiber has a slightly\n // different layout, where the child points to a dehydrated fragment, which\n // contains the DOM rendered by the server.\n //\n // Third, even if you set all that aside, Suspense is like error boundaries in\n // that we first we try to render one tree, and if that fails, we render again\n // and switch to a different tree. Like a try/catch block. So we have to track\n // which branch we're currently rendering. Ideally we would model this using\n // a stack.\n\n if (current === null) {\n // Initial mount\n // If we're currently hydrating, try to hydrate this boundary.\n // But only if this has a fallback.\n if (nextProps.fallback !== undefined) {\n tryToClaimNextHydratableInstance(workInProgress); // This could've been a dehydrated suspense component.\n }\n\n var nextPrimaryChildren = nextProps.children;\n var nextFallbackChildren = nextProps.fallback;\n\n if (showFallback) {\n var fallbackFragment = mountSuspenseFallbackChildren(workInProgress, nextPrimaryChildren, nextFallbackChildren, renderLanes);\n var primaryChildFragment = workInProgress.child;\n primaryChildFragment.memoizedState = mountSuspenseOffscreenState(renderLanes);\n workInProgress.memoizedState = SUSPENDED_MARKER;\n return fallbackFragment;\n } else if (typeof nextProps.unstable_expectedLoadTime === 'number') {\n // This is a CPU-bound tree. Skip this tree and show a placeholder to\n // unblock the surrounding content. Then immediately retry after the\n // initial commit.\n var _fallbackFragment = mountSuspenseFallbackChildren(workInProgress, nextPrimaryChildren, nextFallbackChildren, renderLanes);\n\n var _primaryChildFragment = workInProgress.child;\n _primaryChildFragment.memoizedState = mountSuspenseOffscreenState(renderLanes);\n workInProgress.memoizedState = SUSPENDED_MARKER; // Since nothing actually suspended, there will nothing to ping this to\n // get it started back up to attempt the next item. While in terms of\n // priority this work has the same priority as this current render, it's\n // not part of the same transition once the transition has committed. If\n // it's sync, we still want to yield so that it can be painted.\n // Conceptually, this is really the same as pinging. We can use any\n // RetryLane even if it's the one currently rendering since we're leaving\n // it behind on this node.\n\n workInProgress.lanes = SomeRetryLane;\n\n {\n markSpawnedWork(SomeRetryLane);\n }\n\n return _fallbackFragment;\n } else {\n return mountSuspensePrimaryChildren(workInProgress, nextPrimaryChildren, renderLanes);\n }\n } else {\n // This is an update.\n // If the current fiber has a SuspenseState, that means it's already showing\n // a fallback.\n var prevState = current.memoizedState;\n\n if (prevState !== null) {\n\n if (showFallback) {\n var _nextFallbackChildren2 = nextProps.fallback;\n var _nextPrimaryChildren2 = nextProps.children;\n\n var _fallbackChildFragment = updateSuspenseFallbackChildren(current, workInProgress, _nextPrimaryChildren2, _nextFallbackChildren2, renderLanes);\n\n var _primaryChildFragment3 = workInProgress.child;\n var prevOffscreenState = current.child.memoizedState;\n _primaryChildFragment3.memoizedState = prevOffscreenState === null ? mountSuspenseOffscreenState(renderLanes) : updateSuspenseOffscreenState(prevOffscreenState, renderLanes);\n _primaryChildFragment3.childLanes = getRemainingWorkInPrimaryTree(current, renderLanes);\n workInProgress.memoizedState = SUSPENDED_MARKER;\n return _fallbackChildFragment;\n } else {\n var _nextPrimaryChildren3 = nextProps.children;\n\n var _primaryChildFragment4 = updateSuspensePrimaryChildren(current, workInProgress, _nextPrimaryChildren3, renderLanes);\n\n workInProgress.memoizedState = null;\n return _primaryChildFragment4;\n }\n } else {\n // The current tree is not already showing a fallback.\n if (showFallback) {\n // Timed out.\n var _nextFallbackChildren3 = nextProps.fallback;\n var _nextPrimaryChildren4 = nextProps.children;\n\n var _fallbackChildFragment2 = updateSuspenseFallbackChildren(current, workInProgress, _nextPrimaryChildren4, _nextFallbackChildren3, renderLanes);\n\n var _primaryChildFragment5 = workInProgress.child;\n var _prevOffscreenState = current.child.memoizedState;\n _primaryChildFragment5.memoizedState = _prevOffscreenState === null ? mountSuspenseOffscreenState(renderLanes) : updateSuspenseOffscreenState(_prevOffscreenState, renderLanes);\n _primaryChildFragment5.childLanes = getRemainingWorkInPrimaryTree(current, renderLanes); // Skip the primary children, and continue working on the\n // fallback children.\n\n workInProgress.memoizedState = SUSPENDED_MARKER;\n return _fallbackChildFragment2;\n } else {\n // Still haven't timed out. Continue rendering the children, like we\n // normally do.\n var _nextPrimaryChildren5 = nextProps.children;\n\n var _primaryChildFragment6 = updateSuspensePrimaryChildren(current, workInProgress, _nextPrimaryChildren5, renderLanes);\n\n workInProgress.memoizedState = null;\n return _primaryChildFragment6;\n }\n }\n }\n}\n\nfunction mountSuspensePrimaryChildren(workInProgress, primaryChildren, renderLanes) {\n var mode = workInProgress.mode;\n var primaryChildProps = {\n mode: 'visible',\n children: primaryChildren\n };\n var primaryChildFragment = createFiberFromOffscreen(primaryChildProps, mode, renderLanes, null);\n primaryChildFragment.return = workInProgress;\n workInProgress.child = primaryChildFragment;\n return primaryChildFragment;\n}\n\nfunction mountSuspenseFallbackChildren(workInProgress, primaryChildren, fallbackChildren, renderLanes) {\n var mode = workInProgress.mode;\n var progressedPrimaryFragment = workInProgress.child;\n var primaryChildProps = {\n mode: 'hidden',\n children: primaryChildren\n };\n var primaryChildFragment;\n var fallbackChildFragment;\n\n if ((mode & BlockingMode) === NoMode && progressedPrimaryFragment !== null) {\n // In legacy mode, we commit the primary tree as if it successfully\n // completed, even though it's in an inconsistent state.\n primaryChildFragment = progressedPrimaryFragment;\n primaryChildFragment.childLanes = NoLanes;\n primaryChildFragment.pendingProps = primaryChildProps;\n\n if ( workInProgress.mode & ProfileMode) {\n // Reset the durations from the first pass so they aren't included in the\n // final amounts. This seems counterintuitive, since we're intentionally\n // not measuring part of the render phase, but this makes it match what we\n // do in Concurrent Mode.\n primaryChildFragment.actualDuration = 0;\n primaryChildFragment.actualStartTime = -1;\n primaryChildFragment.selfBaseDuration = 0;\n primaryChildFragment.treeBaseDuration = 0;\n }\n\n fallbackChildFragment = createFiberFromFragment(fallbackChildren, mode, renderLanes, null);\n } else {\n primaryChildFragment = createFiberFromOffscreen(primaryChildProps, mode, NoLanes, null);\n fallbackChildFragment = createFiberFromFragment(fallbackChildren, mode, renderLanes, null);\n }\n\n primaryChildFragment.return = workInProgress;\n fallbackChildFragment.return = workInProgress;\n primaryChildFragment.sibling = fallbackChildFragment;\n workInProgress.child = primaryChildFragment;\n return fallbackChildFragment;\n}\n\nfunction createWorkInProgressOffscreenFiber(current, offscreenProps) {\n // The props argument to `createWorkInProgress` is `any` typed, so we use this\n // wrapper function to constrain it.\n return createWorkInProgress(current, offscreenProps);\n}\n\nfunction updateSuspensePrimaryChildren(current, workInProgress, primaryChildren, renderLanes) {\n var currentPrimaryChildFragment = current.child;\n var currentFallbackChildFragment = currentPrimaryChildFragment.sibling;\n var primaryChildFragment = createWorkInProgressOffscreenFiber(currentPrimaryChildFragment, {\n mode: 'visible',\n children: primaryChildren\n });\n\n if ((workInProgress.mode & BlockingMode) === NoMode) {\n primaryChildFragment.lanes = renderLanes;\n }\n\n primaryChildFragment.return = workInProgress;\n primaryChildFragment.sibling = null;\n\n if (currentFallbackChildFragment !== null) {\n // Delete the fallback child fragment\n currentFallbackChildFragment.nextEffect = null;\n currentFallbackChildFragment.flags = Deletion;\n workInProgress.firstEffect = workInProgress.lastEffect = currentFallbackChildFragment;\n }\n\n workInProgress.child = primaryChildFragment;\n return primaryChildFragment;\n}\n\nfunction updateSuspenseFallbackChildren(current, workInProgress, primaryChildren, fallbackChildren, renderLanes) {\n var mode = workInProgress.mode;\n var currentPrimaryChildFragment = current.child;\n var currentFallbackChildFragment = currentPrimaryChildFragment.sibling;\n var primaryChildProps = {\n mode: 'hidden',\n children: primaryChildren\n };\n var primaryChildFragment;\n\n if ( // In legacy mode, we commit the primary tree as if it successfully\n // completed, even though it's in an inconsistent state.\n (mode & BlockingMode) === NoMode && // Make sure we're on the second pass, i.e. the primary child fragment was\n // already cloned. In legacy mode, the only case where this isn't true is\n // when DevTools forces us to display a fallback; we skip the first render\n // pass entirely and go straight to rendering the fallback. (In Concurrent\n // Mode, SuspenseList can also trigger this scenario, but this is a legacy-\n // only codepath.)\n workInProgress.child !== currentPrimaryChildFragment) {\n var progressedPrimaryFragment = workInProgress.child;\n primaryChildFragment = progressedPrimaryFragment;\n primaryChildFragment.childLanes = NoLanes;\n primaryChildFragment.pendingProps = primaryChildProps;\n\n if ( workInProgress.mode & ProfileMode) {\n // Reset the durations from the first pass so they aren't included in the\n // final amounts. This seems counterintuitive, since we're intentionally\n // not measuring part of the render phase, but this makes it match what we\n // do in Concurrent Mode.\n primaryChildFragment.actualDuration = 0;\n primaryChildFragment.actualStartTime = -1;\n primaryChildFragment.selfBaseDuration = currentPrimaryChildFragment.selfBaseDuration;\n primaryChildFragment.treeBaseDuration = currentPrimaryChildFragment.treeBaseDuration;\n } // The fallback fiber was added as a deletion effect during the first pass.\n // However, since we're going to remain on the fallback, we no longer want\n // to delete it. So we need to remove it from the list. Deletions are stored\n // on the same list as effects. We want to keep the effects from the primary\n // tree. So we copy the primary child fragment's effect list, which does not\n // include the fallback deletion effect.\n\n\n var progressedLastEffect = primaryChildFragment.lastEffect;\n\n if (progressedLastEffect !== null) {\n workInProgress.firstEffect = primaryChildFragment.firstEffect;\n workInProgress.lastEffect = progressedLastEffect;\n progressedLastEffect.nextEffect = null;\n } else {\n // TODO: Reset this somewhere else? Lol legacy mode is so weird.\n workInProgress.firstEffect = workInProgress.lastEffect = null;\n }\n } else {\n primaryChildFragment = createWorkInProgressOffscreenFiber(currentPrimaryChildFragment, primaryChildProps);\n }\n\n var fallbackChildFragment;\n\n if (currentFallbackChildFragment !== null) {\n fallbackChildFragment = createWorkInProgress(currentFallbackChildFragment, fallbackChildren);\n } else {\n fallbackChildFragment = createFiberFromFragment(fallbackChildren, mode, renderLanes, null); // Needs a placement effect because the parent (the Suspense boundary) already\n // mounted but this is a new fiber.\n\n fallbackChildFragment.flags |= Placement;\n }\n\n fallbackChildFragment.return = workInProgress;\n primaryChildFragment.return = workInProgress;\n primaryChildFragment.sibling = fallbackChildFragment;\n workInProgress.child = primaryChildFragment;\n return fallbackChildFragment;\n}\n\nfunction scheduleWorkOnFiber(fiber, renderLanes) {\n fiber.lanes = mergeLanes(fiber.lanes, renderLanes);\n var alternate = fiber.alternate;\n\n if (alternate !== null) {\n alternate.lanes = mergeLanes(alternate.lanes, renderLanes);\n }\n\n scheduleWorkOnParentPath(fiber.return, renderLanes);\n}\n\nfunction propagateSuspenseContextChange(workInProgress, firstChild, renderLanes) {\n // Mark any Suspense boundaries with fallbacks as having work to do.\n // If they were previously forced into fallbacks, they may now be able\n // to unblock.\n var node = firstChild;\n\n while (node !== null) {\n if (node.tag === SuspenseComponent) {\n var state = node.memoizedState;\n\n if (state !== null) {\n scheduleWorkOnFiber(node, renderLanes);\n }\n } else if (node.tag === SuspenseListComponent) {\n // If the tail is hidden there might not be an Suspense boundaries\n // to schedule work on. In this case we have to schedule it on the\n // list itself.\n // We don't have to traverse to the children of the list since\n // the list will propagate the change when it rerenders.\n scheduleWorkOnFiber(node, renderLanes);\n } else if (node.child !== null) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n\n if (node === workInProgress) {\n return;\n }\n\n while (node.sibling === null) {\n if (node.return === null || node.return === workInProgress) {\n return;\n }\n\n node = node.return;\n }\n\n node.sibling.return = node.return;\n node = node.sibling;\n }\n}\n\nfunction findLastContentRow(firstChild) {\n // This is going to find the last row among these children that is already\n // showing content on the screen, as opposed to being in fallback state or\n // new. If a row has multiple Suspense boundaries, any of them being in the\n // fallback state, counts as the whole row being in a fallback state.\n // Note that the \"rows\" will be workInProgress, but any nested children\n // will still be current since we haven't rendered them yet. The mounted\n // order may not be the same as the new order. We use the new order.\n var row = firstChild;\n var lastContentRow = null;\n\n while (row !== null) {\n var currentRow = row.alternate; // New rows can't be content rows.\n\n if (currentRow !== null && findFirstSuspended(currentRow) === null) {\n lastContentRow = row;\n }\n\n row = row.sibling;\n }\n\n return lastContentRow;\n}\n\nfunction validateRevealOrder(revealOrder) {\n {\n if (revealOrder !== undefined && revealOrder !== 'forwards' && revealOrder !== 'backwards' && revealOrder !== 'together' && !didWarnAboutRevealOrder[revealOrder]) {\n didWarnAboutRevealOrder[revealOrder] = true;\n\n if (typeof revealOrder === 'string') {\n switch (revealOrder.toLowerCase()) {\n case 'together':\n case 'forwards':\n case 'backwards':\n {\n error('\"%s\" is not a valid value for revealOrder on <SuspenseList />. ' + 'Use lowercase \"%s\" instead.', revealOrder, revealOrder.toLowerCase());\n\n break;\n }\n\n case 'forward':\n case 'backward':\n {\n error('\"%s\" is not a valid value for revealOrder on <SuspenseList />. ' + 'React uses the -s suffix in the spelling. Use \"%ss\" instead.', revealOrder, revealOrder.toLowerCase());\n\n break;\n }\n\n default:\n error('\"%s\" is not a supported revealOrder on <SuspenseList />. ' + 'Did you mean \"together\", \"forwards\" or \"backwards\"?', revealOrder);\n\n break;\n }\n } else {\n error('%s is not a supported value for revealOrder on <SuspenseList />. ' + 'Did you mean \"together\", \"forwards\" or \"backwards\"?', revealOrder);\n }\n }\n }\n}\n\nfunction validateTailOptions(tailMode, revealOrder) {\n {\n if (tailMode !== undefined && !didWarnAboutTailOptions[tailMode]) {\n if (tailMode !== 'collapsed' && tailMode !== 'hidden') {\n didWarnAboutTailOptions[tailMode] = true;\n\n error('\"%s\" is not a supported value for tail on <SuspenseList />. ' + 'Did you mean \"collapsed\" or \"hidden\"?', tailMode);\n } else if (revealOrder !== 'forwards' && revealOrder !== 'backwards') {\n didWarnAboutTailOptions[tailMode] = true;\n\n error('<SuspenseList tail=\"%s\" /> is only valid if revealOrder is ' + '\"forwards\" or \"backwards\". ' + 'Did you mean to specify revealOrder=\"forwards\"?', tailMode);\n }\n }\n }\n}\n\nfunction validateSuspenseListNestedChild(childSlot, index) {\n {\n var isArray = Array.isArray(childSlot);\n var isIterable = !isArray && typeof getIteratorFn(childSlot) === 'function';\n\n if (isArray || isIterable) {\n var type = isArray ? 'array' : 'iterable';\n\n error('A nested %s was passed to row #%s in <SuspenseList />. Wrap it in ' + 'an additional SuspenseList to configure its revealOrder: ' + '<SuspenseList revealOrder=...> ... ' + '<SuspenseList revealOrder=...>{%s}</SuspenseList> ... ' + '</SuspenseList>', type, index, type);\n\n return false;\n }\n }\n\n return true;\n}\n\nfunction validateSuspenseListChildren(children, revealOrder) {\n {\n if ((revealOrder === 'forwards' || revealOrder === 'backwards') && children !== undefined && children !== null && children !== false) {\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n if (!validateSuspenseListNestedChild(children[i], i)) {\n return;\n }\n }\n } else {\n var iteratorFn = getIteratorFn(children);\n\n if (typeof iteratorFn === 'function') {\n var childrenIterator = iteratorFn.call(children);\n\n if (childrenIterator) {\n var step = childrenIterator.next();\n var _i = 0;\n\n for (; !step.done; step = childrenIterator.next()) {\n if (!validateSuspenseListNestedChild(step.value, _i)) {\n return;\n }\n\n _i++;\n }\n }\n } else {\n error('A single row was passed to a <SuspenseList revealOrder=\"%s\" />. ' + 'This is not useful since it needs multiple rows. ' + 'Did you mean to pass multiple children or an array?', revealOrder);\n }\n }\n }\n }\n}\n\nfunction initSuspenseListRenderState(workInProgress, isBackwards, tail, lastContentRow, tailMode, lastEffectBeforeRendering) {\n var renderState = workInProgress.memoizedState;\n\n if (renderState === null) {\n workInProgress.memoizedState = {\n isBackwards: isBackwards,\n rendering: null,\n renderingStartTime: 0,\n last: lastContentRow,\n tail: tail,\n tailMode: tailMode,\n lastEffect: lastEffectBeforeRendering\n };\n } else {\n // We can reuse the existing object from previous renders.\n renderState.isBackwards = isBackwards;\n renderState.rendering = null;\n renderState.renderingStartTime = 0;\n renderState.last = lastContentRow;\n renderState.tail = tail;\n renderState.tailMode = tailMode;\n renderState.lastEffect = lastEffectBeforeRendering;\n }\n} // This can end up rendering this component multiple passes.\n// The first pass splits the children fibers into two sets. A head and tail.\n// We first render the head. If anything is in fallback state, we do another\n// pass through beginWork to rerender all children (including the tail) with\n// the force suspend context. If the first render didn't have anything in\n// in fallback state. Then we render each row in the tail one-by-one.\n// That happens in the completeWork phase without going back to beginWork.\n\n\nfunction updateSuspenseListComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps;\n var revealOrder = nextProps.revealOrder;\n var tailMode = nextProps.tail;\n var newChildren = nextProps.children;\n validateRevealOrder(revealOrder);\n validateTailOptions(tailMode, revealOrder);\n validateSuspenseListChildren(newChildren, revealOrder);\n reconcileChildren(current, workInProgress, newChildren, renderLanes);\n var suspenseContext = suspenseStackCursor.current;\n var shouldForceFallback = hasSuspenseContext(suspenseContext, ForceSuspenseFallback);\n\n if (shouldForceFallback) {\n suspenseContext = setShallowSuspenseContext(suspenseContext, ForceSuspenseFallback);\n workInProgress.flags |= DidCapture;\n } else {\n var didSuspendBefore = current !== null && (current.flags & DidCapture) !== NoFlags;\n\n if (didSuspendBefore) {\n // If we previously forced a fallback, we need to schedule work\n // on any nested boundaries to let them know to try to render\n // again. This is the same as context updating.\n propagateSuspenseContextChange(workInProgress, workInProgress.child, renderLanes);\n }\n\n suspenseContext = setDefaultShallowSuspenseContext(suspenseContext);\n }\n\n pushSuspenseContext(workInProgress, suspenseContext);\n\n if ((workInProgress.mode & BlockingMode) === NoMode) {\n // In legacy mode, SuspenseList doesn't work so we just\n // use make it a noop by treating it as the default revealOrder.\n workInProgress.memoizedState = null;\n } else {\n switch (revealOrder) {\n case 'forwards':\n {\n var lastContentRow = findLastContentRow(workInProgress.child);\n var tail;\n\n if (lastContentRow === null) {\n // The whole list is part of the tail.\n // TODO: We could fast path by just rendering the tail now.\n tail = workInProgress.child;\n workInProgress.child = null;\n } else {\n // Disconnect the tail rows after the content row.\n // We're going to render them separately later.\n tail = lastContentRow.sibling;\n lastContentRow.sibling = null;\n }\n\n initSuspenseListRenderState(workInProgress, false, // isBackwards\n tail, lastContentRow, tailMode, workInProgress.lastEffect);\n break;\n }\n\n case 'backwards':\n {\n // We're going to find the first row that has existing content.\n // At the same time we're going to reverse the list of everything\n // we pass in the meantime. That's going to be our tail in reverse\n // order.\n var _tail = null;\n var row = workInProgress.child;\n workInProgress.child = null;\n\n while (row !== null) {\n var currentRow = row.alternate; // New rows can't be content rows.\n\n if (currentRow !== null && findFirstSuspended(currentRow) === null) {\n // This is the beginning of the main content.\n workInProgress.child = row;\n break;\n }\n\n var nextRow = row.sibling;\n row.sibling = _tail;\n _tail = row;\n row = nextRow;\n } // TODO: If workInProgress.child is null, we can continue on the tail immediately.\n\n\n initSuspenseListRenderState(workInProgress, true, // isBackwards\n _tail, null, // last\n tailMode, workInProgress.lastEffect);\n break;\n }\n\n case 'together':\n {\n initSuspenseListRenderState(workInProgress, false, // isBackwards\n null, // tail\n null, // last\n undefined, workInProgress.lastEffect);\n break;\n }\n\n default:\n {\n // The default reveal order is the same as not having\n // a boundary.\n workInProgress.memoizedState = null;\n }\n }\n }\n\n return workInProgress.child;\n}\n\nfunction updatePortalComponent(current, workInProgress, renderLanes) {\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n var nextChildren = workInProgress.pendingProps;\n\n if (current === null) {\n // Portals are special because we don't append the children during mount\n // but at commit. Therefore we need to track insertions which the normal\n // flow doesn't do during mount. This doesn't happen at the root because\n // the root always starts with a \"current\" with a null child.\n // TODO: Consider unifying this with how the root works.\n workInProgress.child = reconcileChildFibers(workInProgress, null, nextChildren, renderLanes);\n } else {\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n }\n\n return workInProgress.child;\n}\n\nvar hasWarnedAboutUsingNoValuePropOnContextProvider = false;\n\nfunction updateContextProvider(current, workInProgress, renderLanes) {\n var providerType = workInProgress.type;\n var context = providerType._context;\n var newProps = workInProgress.pendingProps;\n var oldProps = workInProgress.memoizedProps;\n var newValue = newProps.value;\n\n {\n if (!('value' in newProps)) {\n if (!hasWarnedAboutUsingNoValuePropOnContextProvider) {\n hasWarnedAboutUsingNoValuePropOnContextProvider = true;\n\n error('The `value` prop is required for the `<Context.Provider>`. Did you misspell it or forget to pass it?');\n }\n }\n\n var providerPropTypes = workInProgress.type.propTypes;\n\n if (providerPropTypes) {\n checkPropTypes(providerPropTypes, newProps, 'prop', 'Context.Provider');\n }\n }\n\n pushProvider(workInProgress, newValue);\n\n if (oldProps !== null) {\n var oldValue = oldProps.value;\n var changedBits = calculateChangedBits(context, newValue, oldValue);\n\n if (changedBits === 0) {\n // No change. Bailout early if children are the same.\n if (oldProps.children === newProps.children && !hasContextChanged()) {\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n } else {\n // The context value changed. Search for matching consumers and schedule\n // them to update.\n propagateContextChange(workInProgress, context, changedBits, renderLanes);\n }\n }\n\n var newChildren = newProps.children;\n reconcileChildren(current, workInProgress, newChildren, renderLanes);\n return workInProgress.child;\n}\n\nvar hasWarnedAboutUsingContextAsConsumer = false;\n\nfunction updateContextConsumer(current, workInProgress, renderLanes) {\n var context = workInProgress.type; // The logic below for Context differs depending on PROD or DEV mode. In\n // DEV mode, we create a separate object for Context.Consumer that acts\n // like a proxy to Context. This proxy object adds unnecessary code in PROD\n // so we use the old behaviour (Context.Consumer references Context) to\n // reduce size and overhead. The separate object references context via\n // a property called \"_context\", which also gives us the ability to check\n // in DEV mode if this property exists or not and warn if it does not.\n\n {\n if (context._context === undefined) {\n // This may be because it's a Context (rather than a Consumer).\n // Or it may be because it's older React where they're the same thing.\n // We only want to warn if we're sure it's a new React.\n if (context !== context.Consumer) {\n if (!hasWarnedAboutUsingContextAsConsumer) {\n hasWarnedAboutUsingContextAsConsumer = true;\n\n error('Rendering <Context> directly is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Consumer> instead?');\n }\n }\n } else {\n context = context._context;\n }\n }\n\n var newProps = workInProgress.pendingProps;\n var render = newProps.children;\n\n {\n if (typeof render !== 'function') {\n error('A context consumer was rendered with multiple children, or a child ' + \"that isn't a function. A context consumer expects a single child \" + 'that is a function. If you did pass a function, make sure there ' + 'is no trailing or leading whitespace around it.');\n }\n }\n\n prepareToReadContext(workInProgress, renderLanes);\n var newValue = readContext(context, newProps.unstable_observedBits);\n var newChildren;\n\n {\n ReactCurrentOwner$1.current = workInProgress;\n setIsRendering(true);\n newChildren = render(newValue);\n setIsRendering(false);\n } // React DevTools reads this flag.\n\n\n workInProgress.flags |= PerformedWork;\n reconcileChildren(current, workInProgress, newChildren, renderLanes);\n return workInProgress.child;\n}\n\nfunction markWorkInProgressReceivedUpdate() {\n didReceiveUpdate = true;\n}\n\nfunction bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes) {\n if (current !== null) {\n // Reuse previous dependencies\n workInProgress.dependencies = current.dependencies;\n }\n\n {\n // Don't update \"base\" render times for bailouts.\n stopProfilerTimerIfRunning();\n }\n\n markSkippedUpdateLanes(workInProgress.lanes); // Check if the children have any pending work.\n\n if (!includesSomeLane(renderLanes, workInProgress.childLanes)) {\n // The children don't have any work either. We can skip them.\n // TODO: Once we add back resuming, we should check if the children are\n // a work-in-progress set. If so, we need to transfer their effects.\n return null;\n } else {\n // This fiber doesn't have work, but its subtree does. Clone the child\n // fibers and continue.\n cloneChildFibers(current, workInProgress);\n return workInProgress.child;\n }\n}\n\nfunction remountFiber(current, oldWorkInProgress, newWorkInProgress) {\n {\n var returnFiber = oldWorkInProgress.return;\n\n if (returnFiber === null) {\n throw new Error('Cannot swap the root fiber.');\n } // Disconnect from the old current.\n // It will get deleted.\n\n\n current.alternate = null;\n oldWorkInProgress.alternate = null; // Connect to the new tree.\n\n newWorkInProgress.index = oldWorkInProgress.index;\n newWorkInProgress.sibling = oldWorkInProgress.sibling;\n newWorkInProgress.return = oldWorkInProgress.return;\n newWorkInProgress.ref = oldWorkInProgress.ref; // Replace the child/sibling pointers above it.\n\n if (oldWorkInProgress === returnFiber.child) {\n returnFiber.child = newWorkInProgress;\n } else {\n var prevSibling = returnFiber.child;\n\n if (prevSibling === null) {\n throw new Error('Expected parent to have a child.');\n }\n\n while (prevSibling.sibling !== oldWorkInProgress) {\n prevSibling = prevSibling.sibling;\n\n if (prevSibling === null) {\n throw new Error('Expected to find the previous sibling.');\n }\n }\n\n prevSibling.sibling = newWorkInProgress;\n } // Delete the old fiber and place the new one.\n // Since the old fiber is disconnected, we have to schedule it manually.\n\n\n var last = returnFiber.lastEffect;\n\n if (last !== null) {\n last.nextEffect = current;\n returnFiber.lastEffect = current;\n } else {\n returnFiber.firstEffect = returnFiber.lastEffect = current;\n }\n\n current.nextEffect = null;\n current.flags = Deletion;\n newWorkInProgress.flags |= Placement; // Restart work from the new fiber.\n\n return newWorkInProgress;\n }\n}\n\nfunction beginWork(current, workInProgress, renderLanes) {\n var updateLanes = workInProgress.lanes;\n\n {\n if (workInProgress._debugNeedsRemount && current !== null) {\n // This will restart the begin phase with a new fiber.\n return remountFiber(current, workInProgress, createFiberFromTypeAndProps(workInProgress.type, workInProgress.key, workInProgress.pendingProps, workInProgress._debugOwner || null, workInProgress.mode, workInProgress.lanes));\n }\n }\n\n if (current !== null) {\n var oldProps = current.memoizedProps;\n var newProps = workInProgress.pendingProps;\n\n if (oldProps !== newProps || hasContextChanged() || ( // Force a re-render if the implementation changed due to hot reload:\n workInProgress.type !== current.type )) {\n // If props or context changed, mark the fiber as having performed work.\n // This may be unset if the props are determined to be equal later (memo).\n didReceiveUpdate = true;\n } else if (!includesSomeLane(renderLanes, updateLanes)) {\n didReceiveUpdate = false; // This fiber does not have any pending work. Bailout without entering\n // the begin phase. There's still some bookkeeping we that needs to be done\n // in this optimized path, mostly pushing stuff onto the stack.\n\n switch (workInProgress.tag) {\n case HostRoot:\n pushHostRootContext(workInProgress);\n resetHydrationState();\n break;\n\n case HostComponent:\n pushHostContext(workInProgress);\n break;\n\n case ClassComponent:\n {\n var Component = workInProgress.type;\n\n if (isContextProvider(Component)) {\n pushContextProvider(workInProgress);\n }\n\n break;\n }\n\n case HostPortal:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n break;\n\n case ContextProvider:\n {\n var newValue = workInProgress.memoizedProps.value;\n pushProvider(workInProgress, newValue);\n break;\n }\n\n case Profiler:\n {\n // Profiler should only call onRender when one of its descendants actually rendered.\n var hasChildWork = includesSomeLane(renderLanes, workInProgress.childLanes);\n\n if (hasChildWork) {\n workInProgress.flags |= Update;\n } // Reset effect durations for the next eventual effect phase.\n // These are reset during render to allow the DevTools commit hook a chance to read them,\n\n\n var stateNode = workInProgress.stateNode;\n stateNode.effectDuration = 0;\n stateNode.passiveEffectDuration = 0;\n }\n\n break;\n\n case SuspenseComponent:\n {\n var state = workInProgress.memoizedState;\n\n if (state !== null) {\n // whether to retry the primary children, or to skip over it and\n // go straight to the fallback. Check the priority of the primary\n // child fragment.\n\n\n var primaryChildFragment = workInProgress.child;\n var primaryChildLanes = primaryChildFragment.childLanes;\n\n if (includesSomeLane(renderLanes, primaryChildLanes)) {\n // The primary children have pending work. Use the normal path\n // to attempt to render the primary children again.\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n } else {\n // The primary child fragment does not have pending work marked\n // on it\n pushSuspenseContext(workInProgress, setDefaultShallowSuspenseContext(suspenseStackCursor.current)); // The primary children do not have pending work with sufficient\n // priority. Bailout.\n\n var child = bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n\n if (child !== null) {\n // The fallback children have pending work. Skip over the\n // primary children and work on the fallback.\n return child.sibling;\n } else {\n return null;\n }\n }\n } else {\n pushSuspenseContext(workInProgress, setDefaultShallowSuspenseContext(suspenseStackCursor.current));\n }\n\n break;\n }\n\n case SuspenseListComponent:\n {\n var didSuspendBefore = (current.flags & DidCapture) !== NoFlags;\n\n var _hasChildWork = includesSomeLane(renderLanes, workInProgress.childLanes);\n\n if (didSuspendBefore) {\n if (_hasChildWork) {\n // If something was in fallback state last time, and we have all the\n // same children then we're still in progressive loading state.\n // Something might get unblocked by state updates or retries in the\n // tree which will affect the tail. So we need to use the normal\n // path to compute the correct tail.\n return updateSuspenseListComponent(current, workInProgress, renderLanes);\n } // If none of the children had any work, that means that none of\n // them got retried so they'll still be blocked in the same way\n // as before. We can fast bail out.\n\n\n workInProgress.flags |= DidCapture;\n } // If nothing suspended before and we're rendering the same children,\n // then the tail doesn't matter. Anything new that suspends will work\n // in the \"together\" mode, so we can continue from the state we had.\n\n\n var renderState = workInProgress.memoizedState;\n\n if (renderState !== null) {\n // Reset to the \"together\" mode in case we've started a different\n // update in the past but didn't complete it.\n renderState.rendering = null;\n renderState.tail = null;\n renderState.lastEffect = null;\n }\n\n pushSuspenseContext(workInProgress, suspenseStackCursor.current);\n\n if (_hasChildWork) {\n break;\n } else {\n // If none of the children had any work, that means that none of\n // them got retried so they'll still be blocked in the same way\n // as before. We can fast bail out.\n return null;\n }\n }\n\n case OffscreenComponent:\n case LegacyHiddenComponent:\n {\n // Need to check if the tree still needs to be deferred. This is\n // almost identical to the logic used in the normal update path,\n // so we'll just enter that. The only difference is we'll bail out\n // at the next level instead of this one, because the child props\n // have not changed. Which is fine.\n // TODO: Probably should refactor `beginWork` to split the bailout\n // path from the normal path. I'm tempted to do a labeled break here\n // but I won't :)\n workInProgress.lanes = NoLanes;\n return updateOffscreenComponent(current, workInProgress, renderLanes);\n }\n }\n\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n } else {\n if ((current.flags & ForceUpdateForLegacySuspense) !== NoFlags) {\n // This is a special case that only exists for legacy mode.\n // See https://github.com/facebook/react/pull/19216.\n didReceiveUpdate = true;\n } else {\n // An update was scheduled on this fiber, but there are no new props\n // nor legacy context. Set this to false. If an update queue or context\n // consumer produces a changed value, it will set this to true. Otherwise,\n // the component will assume the children have not changed and bail out.\n didReceiveUpdate = false;\n }\n }\n } else {\n didReceiveUpdate = false;\n } // Before entering the begin phase, clear pending update priority.\n // TODO: This assumes that we're about to evaluate the component and process\n // the update queue. However, there's an exception: SimpleMemoComponent\n // sometimes bails out later in the begin phase. This indicates that we should\n // move this assignment out of the common path and into each branch.\n\n\n workInProgress.lanes = NoLanes;\n\n switch (workInProgress.tag) {\n case IndeterminateComponent:\n {\n return mountIndeterminateComponent(current, workInProgress, workInProgress.type, renderLanes);\n }\n\n case LazyComponent:\n {\n var elementType = workInProgress.elementType;\n return mountLazyComponent(current, workInProgress, elementType, updateLanes, renderLanes);\n }\n\n case FunctionComponent:\n {\n var _Component = workInProgress.type;\n var unresolvedProps = workInProgress.pendingProps;\n var resolvedProps = workInProgress.elementType === _Component ? unresolvedProps : resolveDefaultProps(_Component, unresolvedProps);\n return updateFunctionComponent(current, workInProgress, _Component, resolvedProps, renderLanes);\n }\n\n case ClassComponent:\n {\n var _Component2 = workInProgress.type;\n var _unresolvedProps = workInProgress.pendingProps;\n\n var _resolvedProps = workInProgress.elementType === _Component2 ? _unresolvedProps : resolveDefaultProps(_Component2, _unresolvedProps);\n\n return updateClassComponent(current, workInProgress, _Component2, _resolvedProps, renderLanes);\n }\n\n case HostRoot:\n return updateHostRoot(current, workInProgress, renderLanes);\n\n case HostComponent:\n return updateHostComponent(current, workInProgress, renderLanes);\n\n case HostText:\n return updateHostText(current, workInProgress);\n\n case SuspenseComponent:\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n\n case HostPortal:\n return updatePortalComponent(current, workInProgress, renderLanes);\n\n case ForwardRef:\n {\n var type = workInProgress.type;\n var _unresolvedProps2 = workInProgress.pendingProps;\n\n var _resolvedProps2 = workInProgress.elementType === type ? _unresolvedProps2 : resolveDefaultProps(type, _unresolvedProps2);\n\n return updateForwardRef(current, workInProgress, type, _resolvedProps2, renderLanes);\n }\n\n case Fragment:\n return updateFragment(current, workInProgress, renderLanes);\n\n case Mode:\n return updateMode(current, workInProgress, renderLanes);\n\n case Profiler:\n return updateProfiler(current, workInProgress, renderLanes);\n\n case ContextProvider:\n return updateContextProvider(current, workInProgress, renderLanes);\n\n case ContextConsumer:\n return updateContextConsumer(current, workInProgress, renderLanes);\n\n case MemoComponent:\n {\n var _type2 = workInProgress.type;\n var _unresolvedProps3 = workInProgress.pendingProps; // Resolve outer props first, then resolve inner props.\n\n var _resolvedProps3 = resolveDefaultProps(_type2, _unresolvedProps3);\n\n {\n if (workInProgress.type !== workInProgress.elementType) {\n var outerPropTypes = _type2.propTypes;\n\n if (outerPropTypes) {\n checkPropTypes(outerPropTypes, _resolvedProps3, // Resolved for outer only\n 'prop', getComponentName(_type2));\n }\n }\n }\n\n _resolvedProps3 = resolveDefaultProps(_type2.type, _resolvedProps3);\n return updateMemoComponent(current, workInProgress, _type2, _resolvedProps3, updateLanes, renderLanes);\n }\n\n case SimpleMemoComponent:\n {\n return updateSimpleMemoComponent(current, workInProgress, workInProgress.type, workInProgress.pendingProps, updateLanes, renderLanes);\n }\n\n case IncompleteClassComponent:\n {\n var _Component3 = workInProgress.type;\n var _unresolvedProps4 = workInProgress.pendingProps;\n\n var _resolvedProps4 = workInProgress.elementType === _Component3 ? _unresolvedProps4 : resolveDefaultProps(_Component3, _unresolvedProps4);\n\n return mountIncompleteClassComponent(current, workInProgress, _Component3, _resolvedProps4, renderLanes);\n }\n\n case SuspenseListComponent:\n {\n return updateSuspenseListComponent(current, workInProgress, renderLanes);\n }\n\n case FundamentalComponent:\n {\n\n break;\n }\n\n case ScopeComponent:\n {\n\n break;\n }\n\n case Block:\n {\n\n break;\n }\n\n case OffscreenComponent:\n {\n return updateOffscreenComponent(current, workInProgress, renderLanes);\n }\n\n case LegacyHiddenComponent:\n {\n return updateLegacyHiddenComponent(current, workInProgress, renderLanes);\n }\n }\n\n {\n {\n throw Error( \"Unknown unit of work tag (\" + workInProgress.tag + \"). This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n}\n\nfunction markUpdate(workInProgress) {\n // Tag the fiber with an update effect. This turns a Placement into\n // a PlacementAndUpdate.\n workInProgress.flags |= Update;\n}\n\nfunction markRef$1(workInProgress) {\n workInProgress.flags |= Ref;\n}\n\nvar appendAllChildren;\nvar updateHostContainer;\nvar updateHostComponent$1;\nvar updateHostText$1;\n\n{\n // Mutation mode\n appendAllChildren = function (parent, workInProgress, needsVisibilityToggle, isHidden) {\n // We only have the top Fiber that was created but we need recurse down its\n // children to find all the terminal nodes.\n var node = workInProgress.child;\n\n while (node !== null) {\n if (node.tag === HostComponent || node.tag === HostText) {\n appendInitialChild(parent, node.stateNode);\n } else if (node.tag === HostPortal) ; else if (node.child !== null) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n\n if (node === workInProgress) {\n return;\n }\n\n while (node.sibling === null) {\n if (node.return === null || node.return === workInProgress) {\n return;\n }\n\n node = node.return;\n }\n\n node.sibling.return = node.return;\n node = node.sibling;\n }\n };\n\n updateHostContainer = function (workInProgress) {// Noop\n };\n\n updateHostComponent$1 = function (current, workInProgress, type, newProps, rootContainerInstance) {\n // If we have an alternate, that means this is an update and we need to\n // schedule a side-effect to do the updates.\n var oldProps = current.memoizedProps;\n\n if (oldProps === newProps) {\n // In mutation mode, this is sufficient for a bailout because\n // we won't touch this node even if children changed.\n return;\n } // If we get updated because one of our children updated, we don't\n // have newProps so we'll have to reuse them.\n // TODO: Split the update API as separate for the props vs. children.\n // Even better would be if children weren't special cased at all tho.\n\n\n var instance = workInProgress.stateNode;\n var currentHostContext = getHostContext(); // TODO: Experiencing an error where oldProps is null. Suggests a host\n // component is hitting the resume path. Figure out why. Possibly\n // related to `hidden`.\n\n var updatePayload = prepareUpdate(instance, type, oldProps, newProps, rootContainerInstance, currentHostContext); // TODO: Type this specific to this type of component.\n\n workInProgress.updateQueue = updatePayload; // If the update payload indicates that there is a change or if there\n // is a new ref we mark this as an update. All the work is done in commitWork.\n\n if (updatePayload) {\n markUpdate(workInProgress);\n }\n };\n\n updateHostText$1 = function (current, workInProgress, oldText, newText) {\n // If the text differs, mark it as an update. All the work in done in commitWork.\n if (oldText !== newText) {\n markUpdate(workInProgress);\n }\n };\n}\n\nfunction cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {\n if (getIsHydrating()) {\n // If we're hydrating, we should consume as many items as we can\n // so we don't leave any behind.\n return;\n }\n\n switch (renderState.tailMode) {\n case 'hidden':\n {\n // Any insertions at the end of the tail list after this point\n // should be invisible. If there are already mounted boundaries\n // anything before them are not considered for collapsing.\n // Therefore we need to go through the whole tail to find if\n // there are any.\n var tailNode = renderState.tail;\n var lastTailNode = null;\n\n while (tailNode !== null) {\n if (tailNode.alternate !== null) {\n lastTailNode = tailNode;\n }\n\n tailNode = tailNode.sibling;\n } // Next we're simply going to delete all insertions after the\n // last rendered item.\n\n\n if (lastTailNode === null) {\n // All remaining items in the tail are insertions.\n renderState.tail = null;\n } else {\n // Detach the insertion after the last node that was already\n // inserted.\n lastTailNode.sibling = null;\n }\n\n break;\n }\n\n case 'collapsed':\n {\n // Any insertions at the end of the tail list after this point\n // should be invisible. If there are already mounted boundaries\n // anything before them are not considered for collapsing.\n // Therefore we need to go through the whole tail to find if\n // there are any.\n var _tailNode = renderState.tail;\n var _lastTailNode = null;\n\n while (_tailNode !== null) {\n if (_tailNode.alternate !== null) {\n _lastTailNode = _tailNode;\n }\n\n _tailNode = _tailNode.sibling;\n } // Next we're simply going to delete all insertions after the\n // last rendered item.\n\n\n if (_lastTailNode === null) {\n // All remaining items in the tail are insertions.\n if (!hasRenderedATailFallback && renderState.tail !== null) {\n // We suspended during the head. We want to show at least one\n // row at the tail. So we'll keep on and cut off the rest.\n renderState.tail.sibling = null;\n } else {\n renderState.tail = null;\n }\n } else {\n // Detach the insertion after the last node that was already\n // inserted.\n _lastTailNode.sibling = null;\n }\n\n break;\n }\n }\n}\n\nfunction completeWork(current, workInProgress, renderLanes) {\n var newProps = workInProgress.pendingProps;\n\n switch (workInProgress.tag) {\n case IndeterminateComponent:\n case LazyComponent:\n case SimpleMemoComponent:\n case FunctionComponent:\n case ForwardRef:\n case Fragment:\n case Mode:\n case Profiler:\n case ContextConsumer:\n case MemoComponent:\n return null;\n\n case ClassComponent:\n {\n var Component = workInProgress.type;\n\n if (isContextProvider(Component)) {\n popContext(workInProgress);\n }\n\n return null;\n }\n\n case HostRoot:\n {\n popHostContainer(workInProgress);\n popTopLevelContextObject(workInProgress);\n resetWorkInProgressVersions();\n var fiberRoot = workInProgress.stateNode;\n\n if (fiberRoot.pendingContext) {\n fiberRoot.context = fiberRoot.pendingContext;\n fiberRoot.pendingContext = null;\n }\n\n if (current === null || current.child === null) {\n // If we hydrated, pop so that we can delete any remaining children\n // that weren't hydrated.\n var wasHydrated = popHydrationState(workInProgress);\n\n if (wasHydrated) {\n // If we hydrated, then we'll need to schedule an update for\n // the commit side-effects on the root.\n markUpdate(workInProgress);\n } else if (!fiberRoot.hydrate) {\n // Schedule an effect to clear this container at the start of the next commit.\n // This handles the case of React rendering into a container with previous children.\n // It's also safe to do for updates too, because current.child would only be null\n // if the previous render was null (so the the container would already be empty).\n workInProgress.flags |= Snapshot;\n }\n }\n\n updateHostContainer(workInProgress);\n return null;\n }\n\n case HostComponent:\n {\n popHostContext(workInProgress);\n var rootContainerInstance = getRootHostContainer();\n var type = workInProgress.type;\n\n if (current !== null && workInProgress.stateNode != null) {\n updateHostComponent$1(current, workInProgress, type, newProps, rootContainerInstance);\n\n if (current.ref !== workInProgress.ref) {\n markRef$1(workInProgress);\n }\n } else {\n if (!newProps) {\n if (!(workInProgress.stateNode !== null)) {\n {\n throw Error( \"We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n } // This can happen when we abort work.\n\n\n return null;\n }\n\n var currentHostContext = getHostContext(); // TODO: Move createInstance to beginWork and keep it on a context\n // \"stack\" as the parent. Then append children as we go in beginWork\n // or completeWork depending on whether we want to add them top->down or\n // bottom->up. Top->down is faster in IE11.\n\n var _wasHydrated = popHydrationState(workInProgress);\n\n if (_wasHydrated) {\n // TODO: Move this and createInstance step into the beginPhase\n // to consolidate.\n if (prepareToHydrateHostInstance(workInProgress, rootContainerInstance, currentHostContext)) {\n // If changes to the hydrated node need to be applied at the\n // commit-phase we mark this as such.\n markUpdate(workInProgress);\n }\n } else {\n var instance = createInstance(type, newProps, rootContainerInstance, currentHostContext, workInProgress);\n appendAllChildren(instance, workInProgress, false, false);\n workInProgress.stateNode = instance; // Certain renderers require commit-time effects for initial mount.\n // (eg DOM renderer supports auto-focus for certain elements).\n // Make sure such renderers get scheduled for later work.\n\n if (finalizeInitialChildren(instance, type, newProps, rootContainerInstance)) {\n markUpdate(workInProgress);\n }\n }\n\n if (workInProgress.ref !== null) {\n // If there is a ref on a host node we need to schedule a callback\n markRef$1(workInProgress);\n }\n }\n\n return null;\n }\n\n case HostText:\n {\n var newText = newProps;\n\n if (current && workInProgress.stateNode != null) {\n var oldText = current.memoizedProps; // If we have an alternate, that means this is an update and we need\n // to schedule a side-effect to do the updates.\n\n updateHostText$1(current, workInProgress, oldText, newText);\n } else {\n if (typeof newText !== 'string') {\n if (!(workInProgress.stateNode !== null)) {\n {\n throw Error( \"We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n } // This can happen when we abort work.\n\n }\n\n var _rootContainerInstance = getRootHostContainer();\n\n var _currentHostContext = getHostContext();\n\n var _wasHydrated2 = popHydrationState(workInProgress);\n\n if (_wasHydrated2) {\n if (prepareToHydrateHostTextInstance(workInProgress)) {\n markUpdate(workInProgress);\n }\n } else {\n workInProgress.stateNode = createTextInstance(newText, _rootContainerInstance, _currentHostContext, workInProgress);\n }\n }\n\n return null;\n }\n\n case SuspenseComponent:\n {\n popSuspenseContext(workInProgress);\n var nextState = workInProgress.memoizedState;\n\n if ((workInProgress.flags & DidCapture) !== NoFlags) {\n // Something suspended. Re-render with the fallback children.\n workInProgress.lanes = renderLanes; // Do not reset the effect list.\n\n if ( (workInProgress.mode & ProfileMode) !== NoMode) {\n transferActualDuration(workInProgress);\n }\n\n return workInProgress;\n }\n\n var nextDidTimeout = nextState !== null;\n var prevDidTimeout = false;\n\n if (current === null) {\n if (workInProgress.memoizedProps.fallback !== undefined) {\n popHydrationState(workInProgress);\n }\n } else {\n var prevState = current.memoizedState;\n prevDidTimeout = prevState !== null;\n }\n\n if (nextDidTimeout && !prevDidTimeout) {\n // If this subtreee is running in blocking mode we can suspend,\n // otherwise we won't suspend.\n // TODO: This will still suspend a synchronous tree if anything\n // in the concurrent tree already suspended during this render.\n // This is a known bug.\n if ((workInProgress.mode & BlockingMode) !== NoMode) {\n // TODO: Move this back to throwException because this is too late\n // if this is a large tree which is common for initial loads. We\n // don't know if we should restart a render or not until we get\n // this marker, and this is too late.\n // If this render already had a ping or lower pri updates,\n // and this is the first time we know we're going to suspend we\n // should be able to immediately restart from within throwException.\n var hasInvisibleChildContext = current === null && workInProgress.memoizedProps.unstable_avoidThisFallback !== true;\n\n if (hasInvisibleChildContext || hasSuspenseContext(suspenseStackCursor.current, InvisibleParentSuspenseContext)) {\n // If this was in an invisible tree or a new render, then showing\n // this boundary is ok.\n renderDidSuspend();\n } else {\n // Otherwise, we're going to have to hide content so we should\n // suspend for longer if possible.\n renderDidSuspendDelayIfPossible();\n }\n }\n }\n\n {\n // TODO: Only schedule updates if these values are non equal, i.e. it changed.\n if (nextDidTimeout || prevDidTimeout) {\n // If this boundary just timed out, schedule an effect to attach a\n // retry listener to the promise. This flag is also used to hide the\n // primary children. In mutation mode, we also need the flag to\n // *unhide* children that were previously hidden, so check if this\n // is currently timed out, too.\n workInProgress.flags |= Update;\n }\n }\n\n return null;\n }\n\n case HostPortal:\n popHostContainer(workInProgress);\n updateHostContainer(workInProgress);\n\n if (current === null) {\n preparePortalMount(workInProgress.stateNode.containerInfo);\n }\n\n return null;\n\n case ContextProvider:\n // Pop provider fiber\n popProvider(workInProgress);\n return null;\n\n case IncompleteClassComponent:\n {\n // Same as class component case. I put it down here so that the tags are\n // sequential to ensure this switch is compiled to a jump table.\n var _Component = workInProgress.type;\n\n if (isContextProvider(_Component)) {\n popContext(workInProgress);\n }\n\n return null;\n }\n\n case SuspenseListComponent:\n {\n popSuspenseContext(workInProgress);\n var renderState = workInProgress.memoizedState;\n\n if (renderState === null) {\n // We're running in the default, \"independent\" mode.\n // We don't do anything in this mode.\n return null;\n }\n\n var didSuspendAlready = (workInProgress.flags & DidCapture) !== NoFlags;\n var renderedTail = renderState.rendering;\n\n if (renderedTail === null) {\n // We just rendered the head.\n if (!didSuspendAlready) {\n // This is the first pass. We need to figure out if anything is still\n // suspended in the rendered set.\n // If new content unsuspended, but there's still some content that\n // didn't. Then we need to do a second pass that forces everything\n // to keep showing their fallbacks.\n // We might be suspended if something in this render pass suspended, or\n // something in the previous committed pass suspended. Otherwise,\n // there's no chance so we can skip the expensive call to\n // findFirstSuspended.\n var cannotBeSuspended = renderHasNotSuspendedYet() && (current === null || (current.flags & DidCapture) === NoFlags);\n\n if (!cannotBeSuspended) {\n var row = workInProgress.child;\n\n while (row !== null) {\n var suspended = findFirstSuspended(row);\n\n if (suspended !== null) {\n didSuspendAlready = true;\n workInProgress.flags |= DidCapture;\n cutOffTailIfNeeded(renderState, false); // If this is a newly suspended tree, it might not get committed as\n // part of the second pass. In that case nothing will subscribe to\n // its thennables. Instead, we'll transfer its thennables to the\n // SuspenseList so that it can retry if they resolve.\n // There might be multiple of these in the list but since we're\n // going to wait for all of them anyway, it doesn't really matter\n // which ones gets to ping. In theory we could get clever and keep\n // track of how many dependencies remain but it gets tricky because\n // in the meantime, we can add/remove/change items and dependencies.\n // We might bail out of the loop before finding any but that\n // doesn't matter since that means that the other boundaries that\n // we did find already has their listeners attached.\n\n var newThennables = suspended.updateQueue;\n\n if (newThennables !== null) {\n workInProgress.updateQueue = newThennables;\n workInProgress.flags |= Update;\n } // Rerender the whole list, but this time, we'll force fallbacks\n // to stay in place.\n // Reset the effect list before doing the second pass since that's now invalid.\n\n\n if (renderState.lastEffect === null) {\n workInProgress.firstEffect = null;\n }\n\n workInProgress.lastEffect = renderState.lastEffect; // Reset the child fibers to their original state.\n\n resetChildFibers(workInProgress, renderLanes); // Set up the Suspense Context to force suspense and immediately\n // rerender the children.\n\n pushSuspenseContext(workInProgress, setShallowSuspenseContext(suspenseStackCursor.current, ForceSuspenseFallback));\n return workInProgress.child;\n }\n\n row = row.sibling;\n }\n }\n\n if (renderState.tail !== null && now() > getRenderTargetTime()) {\n // We have already passed our CPU deadline but we still have rows\n // left in the tail. We'll just give up further attempts to render\n // the main content and only render fallbacks.\n workInProgress.flags |= DidCapture;\n didSuspendAlready = true;\n cutOffTailIfNeeded(renderState, false); // Since nothing actually suspended, there will nothing to ping this\n // to get it started back up to attempt the next item. While in terms\n // of priority this work has the same priority as this current render,\n // it's not part of the same transition once the transition has\n // committed. If it's sync, we still want to yield so that it can be\n // painted. Conceptually, this is really the same as pinging.\n // We can use any RetryLane even if it's the one currently rendering\n // since we're leaving it behind on this node.\n\n workInProgress.lanes = SomeRetryLane;\n\n {\n markSpawnedWork(SomeRetryLane);\n }\n }\n } else {\n cutOffTailIfNeeded(renderState, false);\n } // Next we're going to render the tail.\n\n } else {\n // Append the rendered row to the child list.\n if (!didSuspendAlready) {\n var _suspended = findFirstSuspended(renderedTail);\n\n if (_suspended !== null) {\n workInProgress.flags |= DidCapture;\n didSuspendAlready = true; // Ensure we transfer the update queue to the parent so that it doesn't\n // get lost if this row ends up dropped during a second pass.\n\n var _newThennables = _suspended.updateQueue;\n\n if (_newThennables !== null) {\n workInProgress.updateQueue = _newThennables;\n workInProgress.flags |= Update;\n }\n\n cutOffTailIfNeeded(renderState, true); // This might have been modified.\n\n if (renderState.tail === null && renderState.tailMode === 'hidden' && !renderedTail.alternate && !getIsHydrating() // We don't cut it if we're hydrating.\n ) {\n // We need to delete the row we just rendered.\n // Reset the effect list to what it was before we rendered this\n // child. The nested children have already appended themselves.\n var lastEffect = workInProgress.lastEffect = renderState.lastEffect; // Remove any effects that were appended after this point.\n\n if (lastEffect !== null) {\n lastEffect.nextEffect = null;\n } // We're done.\n\n\n return null;\n }\n } else if ( // The time it took to render last row is greater than the remaining\n // time we have to render. So rendering one more row would likely\n // exceed it.\n now() * 2 - renderState.renderingStartTime > getRenderTargetTime() && renderLanes !== OffscreenLane) {\n // We have now passed our CPU deadline and we'll just give up further\n // attempts to render the main content and only render fallbacks.\n // The assumption is that this is usually faster.\n workInProgress.flags |= DidCapture;\n didSuspendAlready = true;\n cutOffTailIfNeeded(renderState, false); // Since nothing actually suspended, there will nothing to ping this\n // to get it started back up to attempt the next item. While in terms\n // of priority this work has the same priority as this current render,\n // it's not part of the same transition once the transition has\n // committed. If it's sync, we still want to yield so that it can be\n // painted. Conceptually, this is really the same as pinging.\n // We can use any RetryLane even if it's the one currently rendering\n // since we're leaving it behind on this node.\n\n workInProgress.lanes = SomeRetryLane;\n\n {\n markSpawnedWork(SomeRetryLane);\n }\n }\n }\n\n if (renderState.isBackwards) {\n // The effect list of the backwards tail will have been added\n // to the end. This breaks the guarantee that life-cycles fire in\n // sibling order but that isn't a strong guarantee promised by React.\n // Especially since these might also just pop in during future commits.\n // Append to the beginning of the list.\n renderedTail.sibling = workInProgress.child;\n workInProgress.child = renderedTail;\n } else {\n var previousSibling = renderState.last;\n\n if (previousSibling !== null) {\n previousSibling.sibling = renderedTail;\n } else {\n workInProgress.child = renderedTail;\n }\n\n renderState.last = renderedTail;\n }\n }\n\n if (renderState.tail !== null) {\n // We still have tail rows to render.\n // Pop a row.\n var next = renderState.tail;\n renderState.rendering = next;\n renderState.tail = next.sibling;\n renderState.lastEffect = workInProgress.lastEffect;\n renderState.renderingStartTime = now();\n next.sibling = null; // Restore the context.\n // TODO: We can probably just avoid popping it instead and only\n // setting it the first time we go from not suspended to suspended.\n\n var suspenseContext = suspenseStackCursor.current;\n\n if (didSuspendAlready) {\n suspenseContext = setShallowSuspenseContext(suspenseContext, ForceSuspenseFallback);\n } else {\n suspenseContext = setDefaultShallowSuspenseContext(suspenseContext);\n }\n\n pushSuspenseContext(workInProgress, suspenseContext); // Do a pass over the next row.\n\n return next;\n }\n\n return null;\n }\n\n case FundamentalComponent:\n {\n\n break;\n }\n\n case ScopeComponent:\n {\n\n break;\n }\n\n case Block:\n\n break;\n\n case OffscreenComponent:\n case LegacyHiddenComponent:\n {\n popRenderLanes(workInProgress);\n\n if (current !== null) {\n var _nextState = workInProgress.memoizedState;\n var _prevState = current.memoizedState;\n var prevIsHidden = _prevState !== null;\n var nextIsHidden = _nextState !== null;\n\n if (prevIsHidden !== nextIsHidden && newProps.mode !== 'unstable-defer-without-hiding') {\n workInProgress.flags |= Update;\n }\n }\n\n return null;\n }\n }\n\n {\n {\n throw Error( \"Unknown unit of work tag (\" + workInProgress.tag + \"). This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n}\n\nfunction unwindWork(workInProgress, renderLanes) {\n switch (workInProgress.tag) {\n case ClassComponent:\n {\n var Component = workInProgress.type;\n\n if (isContextProvider(Component)) {\n popContext(workInProgress);\n }\n\n var flags = workInProgress.flags;\n\n if (flags & ShouldCapture) {\n workInProgress.flags = flags & ~ShouldCapture | DidCapture;\n\n if ( (workInProgress.mode & ProfileMode) !== NoMode) {\n transferActualDuration(workInProgress);\n }\n\n return workInProgress;\n }\n\n return null;\n }\n\n case HostRoot:\n {\n popHostContainer(workInProgress);\n popTopLevelContextObject(workInProgress);\n resetWorkInProgressVersions();\n var _flags = workInProgress.flags;\n\n if (!((_flags & DidCapture) === NoFlags)) {\n {\n throw Error( \"The root failed to unmount after an error. This is likely a bug in React. Please file an issue.\" );\n }\n }\n\n workInProgress.flags = _flags & ~ShouldCapture | DidCapture;\n return workInProgress;\n }\n\n case HostComponent:\n {\n // TODO: popHydrationState\n popHostContext(workInProgress);\n return null;\n }\n\n case SuspenseComponent:\n {\n popSuspenseContext(workInProgress);\n\n var _flags2 = workInProgress.flags;\n\n if (_flags2 & ShouldCapture) {\n workInProgress.flags = _flags2 & ~ShouldCapture | DidCapture; // Captured a suspense effect. Re-render the boundary.\n\n if ( (workInProgress.mode & ProfileMode) !== NoMode) {\n transferActualDuration(workInProgress);\n }\n\n return workInProgress;\n }\n\n return null;\n }\n\n case SuspenseListComponent:\n {\n popSuspenseContext(workInProgress); // SuspenseList doesn't actually catch anything. It should've been\n // caught by a nested boundary. If not, it should bubble through.\n\n return null;\n }\n\n case HostPortal:\n popHostContainer(workInProgress);\n return null;\n\n case ContextProvider:\n popProvider(workInProgress);\n return null;\n\n case OffscreenComponent:\n case LegacyHiddenComponent:\n popRenderLanes(workInProgress);\n return null;\n\n default:\n return null;\n }\n}\n\nfunction unwindInterruptedWork(interruptedWork) {\n switch (interruptedWork.tag) {\n case ClassComponent:\n {\n var childContextTypes = interruptedWork.type.childContextTypes;\n\n if (childContextTypes !== null && childContextTypes !== undefined) {\n popContext(interruptedWork);\n }\n\n break;\n }\n\n case HostRoot:\n {\n popHostContainer(interruptedWork);\n popTopLevelContextObject(interruptedWork);\n resetWorkInProgressVersions();\n break;\n }\n\n case HostComponent:\n {\n popHostContext(interruptedWork);\n break;\n }\n\n case HostPortal:\n popHostContainer(interruptedWork);\n break;\n\n case SuspenseComponent:\n popSuspenseContext(interruptedWork);\n break;\n\n case SuspenseListComponent:\n popSuspenseContext(interruptedWork);\n break;\n\n case ContextProvider:\n popProvider(interruptedWork);\n break;\n\n case OffscreenComponent:\n case LegacyHiddenComponent:\n popRenderLanes(interruptedWork);\n break;\n }\n}\n\nfunction createCapturedValue(value, source) {\n // If the value is an error, call this function immediately after it is thrown\n // so the stack is accurate.\n return {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n}\n\n// This module is forked in different environments.\n// By default, return `true` to log errors to the console.\n// Forks can return `false` if this isn't desirable.\nfunction showErrorDialog(boundary, errorInfo) {\n return true;\n}\n\nfunction logCapturedError(boundary, errorInfo) {\n try {\n var logError = showErrorDialog(boundary, errorInfo); // Allow injected showErrorDialog() to prevent default console.error logging.\n // This enables renderers like ReactNative to better manage redbox behavior.\n\n if (logError === false) {\n return;\n }\n\n var error = errorInfo.value;\n\n if (true) {\n var source = errorInfo.source;\n var stack = errorInfo.stack;\n var componentStack = stack !== null ? stack : ''; // Browsers support silencing uncaught errors by calling\n // `preventDefault()` in window `error` handler.\n // We record this information as an expando on the error.\n\n if (error != null && error._suppressLogging) {\n if (boundary.tag === ClassComponent) {\n // The error is recoverable and was silenced.\n // Ignore it and don't print the stack addendum.\n // This is handy for testing error boundaries without noise.\n return;\n } // The error is fatal. Since the silencing might have\n // been accidental, we'll surface it anyway.\n // However, the browser would have silenced the original error\n // so we'll print it first, and then print the stack addendum.\n\n\n console['error'](error); // Don't transform to our wrapper\n // For a more detailed description of this block, see:\n // https://github.com/facebook/react/pull/13384\n }\n\n var componentName = source ? getComponentName(source.type) : null;\n var componentNameMessage = componentName ? \"The above error occurred in the <\" + componentName + \"> component:\" : 'The above error occurred in one of your React components:';\n var errorBoundaryMessage;\n var errorBoundaryName = getComponentName(boundary.type);\n\n if (errorBoundaryName) {\n errorBoundaryMessage = \"React will try to recreate this component tree from scratch \" + (\"using the error boundary you provided, \" + errorBoundaryName + \".\");\n } else {\n errorBoundaryMessage = 'Consider adding an error boundary to your tree to customize error handling behavior.\\n' + 'Visit https://reactjs.org/link/error-boundaries to learn more about error boundaries.';\n }\n\n var combinedMessage = componentNameMessage + \"\\n\" + componentStack + \"\\n\\n\" + (\"\" + errorBoundaryMessage); // In development, we provide our own message with just the component stack.\n // We don't include the original error message and JS stack because the browser\n // has already printed it. Even if the application swallows the error, it is still\n // displayed by the browser thanks to the DEV-only fake event trick in ReactErrorUtils.\n\n console['error'](combinedMessage); // Don't transform to our wrapper\n } else {}\n } catch (e) {\n // This method must not throw, or React internal state will get messed up.\n // If console.error is overridden, or logCapturedError() shows a dialog that throws,\n // we want to report this error outside of the normal stack as a last resort.\n // https://github.com/facebook/react/issues/13188\n setTimeout(function () {\n throw e;\n });\n }\n}\n\nvar PossiblyWeakMap$1 = typeof WeakMap === 'function' ? WeakMap : Map;\n\nfunction createRootErrorUpdate(fiber, errorInfo, lane) {\n var update = createUpdate(NoTimestamp, lane); // Unmount the root by rendering null.\n\n update.tag = CaptureUpdate; // Caution: React DevTools currently depends on this property\n // being called \"element\".\n\n update.payload = {\n element: null\n };\n var error = errorInfo.value;\n\n update.callback = function () {\n onUncaughtError(error);\n logCapturedError(fiber, errorInfo);\n };\n\n return update;\n}\n\nfunction createClassErrorUpdate(fiber, errorInfo, lane) {\n var update = createUpdate(NoTimestamp, lane);\n update.tag = CaptureUpdate;\n var getDerivedStateFromError = fiber.type.getDerivedStateFromError;\n\n if (typeof getDerivedStateFromError === 'function') {\n var error$1 = errorInfo.value;\n\n update.payload = function () {\n logCapturedError(fiber, errorInfo);\n return getDerivedStateFromError(error$1);\n };\n }\n\n var inst = fiber.stateNode;\n\n if (inst !== null && typeof inst.componentDidCatch === 'function') {\n update.callback = function callback() {\n {\n markFailedErrorBoundaryForHotReloading(fiber);\n }\n\n if (typeof getDerivedStateFromError !== 'function') {\n // To preserve the preexisting retry behavior of error boundaries,\n // we keep track of which ones already failed during this batch.\n // This gets reset before we yield back to the browser.\n // TODO: Warn in strict mode if getDerivedStateFromError is\n // not defined.\n markLegacyErrorBoundaryAsFailed(this); // Only log here if componentDidCatch is the only error boundary method defined\n\n logCapturedError(fiber, errorInfo);\n }\n\n var error$1 = errorInfo.value;\n var stack = errorInfo.stack;\n this.componentDidCatch(error$1, {\n componentStack: stack !== null ? stack : ''\n });\n\n {\n if (typeof getDerivedStateFromError !== 'function') {\n // If componentDidCatch is the only error boundary method defined,\n // then it needs to call setState to recover from errors.\n // If no state update is scheduled then the boundary will swallow the error.\n if (!includesSomeLane(fiber.lanes, SyncLane)) {\n error('%s: Error boundaries should implement getDerivedStateFromError(). ' + 'In that method, return a state update to display an error message or fallback UI.', getComponentName(fiber.type) || 'Unknown');\n }\n }\n }\n };\n } else {\n update.callback = function () {\n markFailedErrorBoundaryForHotReloading(fiber);\n };\n }\n\n return update;\n}\n\nfunction attachPingListener(root, wakeable, lanes) {\n // Attach a listener to the promise to \"ping\" the root and retry. But only if\n // one does not already exist for the lanes we're currently rendering (which\n // acts like a \"thread ID\" here).\n var pingCache = root.pingCache;\n var threadIDs;\n\n if (pingCache === null) {\n pingCache = root.pingCache = new PossiblyWeakMap$1();\n threadIDs = new Set();\n pingCache.set(wakeable, threadIDs);\n } else {\n threadIDs = pingCache.get(wakeable);\n\n if (threadIDs === undefined) {\n threadIDs = new Set();\n pingCache.set(wakeable, threadIDs);\n }\n }\n\n if (!threadIDs.has(lanes)) {\n // Memoize using the thread ID to prevent redundant listeners.\n threadIDs.add(lanes);\n var ping = pingSuspendedRoot.bind(null, root, wakeable, lanes);\n wakeable.then(ping, ping);\n }\n}\n\nfunction throwException(root, returnFiber, sourceFiber, value, rootRenderLanes) {\n // The source fiber did not complete.\n sourceFiber.flags |= Incomplete; // Its effect list is no longer valid.\n\n sourceFiber.firstEffect = sourceFiber.lastEffect = null;\n\n if (value !== null && typeof value === 'object' && typeof value.then === 'function') {\n // This is a wakeable.\n var wakeable = value;\n\n if ((sourceFiber.mode & BlockingMode) === NoMode) {\n // Reset the memoizedState to what it was before we attempted\n // to render it.\n var currentSource = sourceFiber.alternate;\n\n if (currentSource) {\n sourceFiber.updateQueue = currentSource.updateQueue;\n sourceFiber.memoizedState = currentSource.memoizedState;\n sourceFiber.lanes = currentSource.lanes;\n } else {\n sourceFiber.updateQueue = null;\n sourceFiber.memoizedState = null;\n }\n }\n\n var hasInvisibleParentBoundary = hasSuspenseContext(suspenseStackCursor.current, InvisibleParentSuspenseContext); // Schedule the nearest Suspense to re-render the timed out view.\n\n var _workInProgress = returnFiber;\n\n do {\n if (_workInProgress.tag === SuspenseComponent && shouldCaptureSuspense(_workInProgress, hasInvisibleParentBoundary)) {\n // Found the nearest boundary.\n // Stash the promise on the boundary fiber. If the boundary times out, we'll\n // attach another listener to flip the boundary back to its normal state.\n var wakeables = _workInProgress.updateQueue;\n\n if (wakeables === null) {\n var updateQueue = new Set();\n updateQueue.add(wakeable);\n _workInProgress.updateQueue = updateQueue;\n } else {\n wakeables.add(wakeable);\n } // If the boundary is outside of blocking mode, we should *not*\n // suspend the commit. Pretend as if the suspended component rendered\n // null and keep rendering. In the commit phase, we'll schedule a\n // subsequent synchronous update to re-render the Suspense.\n //\n // Note: It doesn't matter whether the component that suspended was\n // inside a blocking mode tree. If the Suspense is outside of it, we\n // should *not* suspend the commit.\n\n\n if ((_workInProgress.mode & BlockingMode) === NoMode) {\n _workInProgress.flags |= DidCapture;\n sourceFiber.flags |= ForceUpdateForLegacySuspense; // We're going to commit this fiber even though it didn't complete.\n // But we shouldn't call any lifecycle methods or callbacks. Remove\n // all lifecycle effect tags.\n\n sourceFiber.flags &= ~(LifecycleEffectMask | Incomplete);\n\n if (sourceFiber.tag === ClassComponent) {\n var currentSourceFiber = sourceFiber.alternate;\n\n if (currentSourceFiber === null) {\n // This is a new mount. Change the tag so it's not mistaken for a\n // completed class component. For example, we should not call\n // componentWillUnmount if it is deleted.\n sourceFiber.tag = IncompleteClassComponent;\n } else {\n // When we try rendering again, we should not reuse the current fiber,\n // since it's known to be in an inconsistent state. Use a force update to\n // prevent a bail out.\n var update = createUpdate(NoTimestamp, SyncLane);\n update.tag = ForceUpdate;\n enqueueUpdate(sourceFiber, update);\n }\n } // The source fiber did not complete. Mark it with Sync priority to\n // indicate that it still has pending work.\n\n\n sourceFiber.lanes = mergeLanes(sourceFiber.lanes, SyncLane); // Exit without suspending.\n\n return;\n } // Confirmed that the boundary is in a concurrent mode tree. Continue\n // with the normal suspend path.\n //\n // After this we'll use a set of heuristics to determine whether this\n // render pass will run to completion or restart or \"suspend\" the commit.\n // The actual logic for this is spread out in different places.\n //\n // This first principle is that if we're going to suspend when we complete\n // a root, then we should also restart if we get an update or ping that\n // might unsuspend it, and vice versa. The only reason to suspend is\n // because you think you might want to restart before committing. However,\n // it doesn't make sense to restart only while in the period we're suspended.\n //\n // Restarting too aggressively is also not good because it starves out any\n // intermediate loading state. So we use heuristics to determine when.\n // Suspense Heuristics\n //\n // If nothing threw a Promise or all the same fallbacks are already showing,\n // then don't suspend/restart.\n //\n // If this is an initial render of a new tree of Suspense boundaries and\n // those trigger a fallback, then don't suspend/restart. We want to ensure\n // that we can show the initial loading state as quickly as possible.\n //\n // If we hit a \"Delayed\" case, such as when we'd switch from content back into\n // a fallback, then we should always suspend/restart. Transitions apply\n // to this case. If none is defined, JND is used instead.\n //\n // If we're already showing a fallback and it gets \"retried\", allowing us to show\n // another level, but there's still an inner boundary that would show a fallback,\n // then we suspend/restart for 500ms since the last time we showed a fallback\n // anywhere in the tree. This effectively throttles progressive loading into a\n // consistent train of commits. This also gives us an opportunity to restart to\n // get to the completed state slightly earlier.\n //\n // If there's ambiguity due to batching it's resolved in preference of:\n // 1) \"delayed\", 2) \"initial render\", 3) \"retry\".\n //\n // We want to ensure that a \"busy\" state doesn't get force committed. We want to\n // ensure that new initial loading states can commit as soon as possible.\n\n\n attachPingListener(root, wakeable, rootRenderLanes);\n _workInProgress.flags |= ShouldCapture;\n _workInProgress.lanes = rootRenderLanes;\n return;\n } // This boundary already captured during this render. Continue to the next\n // boundary.\n\n\n _workInProgress = _workInProgress.return;\n } while (_workInProgress !== null); // No boundary was found. Fallthrough to error mode.\n // TODO: Use invariant so the message is stripped in prod?\n\n\n value = new Error((getComponentName(sourceFiber.type) || 'A React component') + ' suspended while rendering, but no fallback UI was specified.\\n' + '\\n' + 'Add a <Suspense fallback=...> component higher in the tree to ' + 'provide a loading indicator or placeholder to display.');\n } // We didn't find a boundary that could handle this type of exception. Start\n // over and traverse parent path again, this time treating the exception\n // as an error.\n\n\n renderDidError();\n value = createCapturedValue(value, sourceFiber);\n var workInProgress = returnFiber;\n\n do {\n switch (workInProgress.tag) {\n case HostRoot:\n {\n var _errorInfo = value;\n workInProgress.flags |= ShouldCapture;\n var lane = pickArbitraryLane(rootRenderLanes);\n workInProgress.lanes = mergeLanes(workInProgress.lanes, lane);\n\n var _update = createRootErrorUpdate(workInProgress, _errorInfo, lane);\n\n enqueueCapturedUpdate(workInProgress, _update);\n return;\n }\n\n case ClassComponent:\n // Capture and retry\n var errorInfo = value;\n var ctor = workInProgress.type;\n var instance = workInProgress.stateNode;\n\n if ((workInProgress.flags & DidCapture) === NoFlags && (typeof ctor.getDerivedStateFromError === 'function' || instance !== null && typeof instance.componentDidCatch === 'function' && !isAlreadyFailedLegacyErrorBoundary(instance))) {\n workInProgress.flags |= ShouldCapture;\n\n var _lane = pickArbitraryLane(rootRenderLanes);\n\n workInProgress.lanes = mergeLanes(workInProgress.lanes, _lane); // Schedule the error boundary to re-render using updated state\n\n var _update2 = createClassErrorUpdate(workInProgress, errorInfo, _lane);\n\n enqueueCapturedUpdate(workInProgress, _update2);\n return;\n }\n\n break;\n }\n\n workInProgress = workInProgress.return;\n } while (workInProgress !== null);\n}\n\nvar didWarnAboutUndefinedSnapshotBeforeUpdate = null;\n\n{\n didWarnAboutUndefinedSnapshotBeforeUpdate = new Set();\n}\n\nvar PossiblyWeakSet = typeof WeakSet === 'function' ? WeakSet : Set;\n\nvar callComponentWillUnmountWithTimer = function (current, instance) {\n instance.props = current.memoizedProps;\n instance.state = current.memoizedState;\n\n {\n instance.componentWillUnmount();\n }\n}; // Capture errors so they don't interrupt unmounting.\n\n\nfunction safelyCallComponentWillUnmount(current, instance) {\n {\n invokeGuardedCallback(null, callComponentWillUnmountWithTimer, null, current, instance);\n\n if (hasCaughtError()) {\n var unmountError = clearCaughtError();\n captureCommitPhaseError(current, unmountError);\n }\n }\n}\n\nfunction safelyDetachRef(current) {\n var ref = current.ref;\n\n if (ref !== null) {\n if (typeof ref === 'function') {\n {\n invokeGuardedCallback(null, ref, null, null);\n\n if (hasCaughtError()) {\n var refError = clearCaughtError();\n captureCommitPhaseError(current, refError);\n }\n }\n } else {\n ref.current = null;\n }\n }\n}\n\nfunction safelyCallDestroy(current, destroy) {\n {\n invokeGuardedCallback(null, destroy, null);\n\n if (hasCaughtError()) {\n var error = clearCaughtError();\n captureCommitPhaseError(current, error);\n }\n }\n}\n\nfunction commitBeforeMutationLifeCycles(current, finishedWork) {\n switch (finishedWork.tag) {\n case FunctionComponent:\n case ForwardRef:\n case SimpleMemoComponent:\n case Block:\n {\n return;\n }\n\n case ClassComponent:\n {\n if (finishedWork.flags & Snapshot) {\n if (current !== null) {\n var prevProps = current.memoizedProps;\n var prevState = current.memoizedState;\n var instance = finishedWork.stateNode; // We could update instance props and state here,\n // but instead we rely on them being set during last render.\n // TODO: revisit this when we implement resuming.\n\n {\n if (finishedWork.type === finishedWork.elementType && !didWarnAboutReassigningProps) {\n if (instance.props !== finishedWork.memoizedProps) {\n error('Expected %s props to match memoized props before ' + 'getSnapshotBeforeUpdate. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance');\n }\n\n if (instance.state !== finishedWork.memoizedState) {\n error('Expected %s state to match memoized state before ' + 'getSnapshotBeforeUpdate. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.state`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance');\n }\n }\n }\n\n var snapshot = instance.getSnapshotBeforeUpdate(finishedWork.elementType === finishedWork.type ? prevProps : resolveDefaultProps(finishedWork.type, prevProps), prevState);\n\n {\n var didWarnSet = didWarnAboutUndefinedSnapshotBeforeUpdate;\n\n if (snapshot === undefined && !didWarnSet.has(finishedWork.type)) {\n didWarnSet.add(finishedWork.type);\n\n error('%s.getSnapshotBeforeUpdate(): A snapshot value (or null) ' + 'must be returned. You have returned undefined.', getComponentName(finishedWork.type));\n }\n }\n\n instance.__reactInternalSnapshotBeforeUpdate = snapshot;\n }\n }\n\n return;\n }\n\n case HostRoot:\n {\n {\n if (finishedWork.flags & Snapshot) {\n var root = finishedWork.stateNode;\n clearContainer(root.containerInfo);\n }\n }\n\n return;\n }\n\n case HostComponent:\n case HostText:\n case HostPortal:\n case IncompleteClassComponent:\n // Nothing to do for these component types\n return;\n }\n\n {\n {\n throw Error( \"This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n}\n\nfunction commitHookEffectListUnmount(tag, finishedWork) {\n var updateQueue = finishedWork.updateQueue;\n var lastEffect = updateQueue !== null ? updateQueue.lastEffect : null;\n\n if (lastEffect !== null) {\n var firstEffect = lastEffect.next;\n var effect = firstEffect;\n\n do {\n if ((effect.tag & tag) === tag) {\n // Unmount\n var destroy = effect.destroy;\n effect.destroy = undefined;\n\n if (destroy !== undefined) {\n destroy();\n }\n }\n\n effect = effect.next;\n } while (effect !== firstEffect);\n }\n}\n\nfunction commitHookEffectListMount(tag, finishedWork) {\n var updateQueue = finishedWork.updateQueue;\n var lastEffect = updateQueue !== null ? updateQueue.lastEffect : null;\n\n if (lastEffect !== null) {\n var firstEffect = lastEffect.next;\n var effect = firstEffect;\n\n do {\n if ((effect.tag & tag) === tag) {\n // Mount\n var create = effect.create;\n effect.destroy = create();\n\n {\n var destroy = effect.destroy;\n\n if (destroy !== undefined && typeof destroy !== 'function') {\n var addendum = void 0;\n\n if (destroy === null) {\n addendum = ' You returned null. If your effect does not require clean ' + 'up, return undefined (or nothing).';\n } else if (typeof destroy.then === 'function') {\n addendum = '\\n\\nIt looks like you wrote useEffect(async () => ...) or returned a Promise. ' + 'Instead, write the async function inside your effect ' + 'and call it immediately:\\n\\n' + 'useEffect(() => {\\n' + ' async function fetchData() {\\n' + ' // You can await here\\n' + ' const response = await MyAPI.getData(someId);\\n' + ' // ...\\n' + ' }\\n' + ' fetchData();\\n' + \"}, [someId]); // Or [] if effect doesn't need props or state\\n\\n\" + 'Learn more about data fetching with Hooks: https://reactjs.org/link/hooks-data-fetching';\n } else {\n addendum = ' You returned: ' + destroy;\n }\n\n error('An effect function must not return anything besides a function, ' + 'which is used for clean-up.%s', addendum);\n }\n }\n }\n\n effect = effect.next;\n } while (effect !== firstEffect);\n }\n}\n\nfunction schedulePassiveEffects(finishedWork) {\n var updateQueue = finishedWork.updateQueue;\n var lastEffect = updateQueue !== null ? updateQueue.lastEffect : null;\n\n if (lastEffect !== null) {\n var firstEffect = lastEffect.next;\n var effect = firstEffect;\n\n do {\n var _effect = effect,\n next = _effect.next,\n tag = _effect.tag;\n\n if ((tag & Passive$1) !== NoFlags$1 && (tag & HasEffect) !== NoFlags$1) {\n enqueuePendingPassiveHookEffectUnmount(finishedWork, effect);\n enqueuePendingPassiveHookEffectMount(finishedWork, effect);\n }\n\n effect = next;\n } while (effect !== firstEffect);\n }\n}\n\nfunction commitLifeCycles(finishedRoot, current, finishedWork, committedLanes) {\n switch (finishedWork.tag) {\n case FunctionComponent:\n case ForwardRef:\n case SimpleMemoComponent:\n case Block:\n {\n // At this point layout effects have already been destroyed (during mutation phase).\n // This is done to prevent sibling component effects from interfering with each other,\n // e.g. a destroy function in one component should never override a ref set\n // by a create function in another component during the same commit.\n {\n commitHookEffectListMount(Layout | HasEffect, finishedWork);\n }\n\n schedulePassiveEffects(finishedWork);\n return;\n }\n\n case ClassComponent:\n {\n var instance = finishedWork.stateNode;\n\n if (finishedWork.flags & Update) {\n if (current === null) {\n // We could update instance props and state here,\n // but instead we rely on them being set during last render.\n // TODO: revisit this when we implement resuming.\n {\n if (finishedWork.type === finishedWork.elementType && !didWarnAboutReassigningProps) {\n if (instance.props !== finishedWork.memoizedProps) {\n error('Expected %s props to match memoized props before ' + 'componentDidMount. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance');\n }\n\n if (instance.state !== finishedWork.memoizedState) {\n error('Expected %s state to match memoized state before ' + 'componentDidMount. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.state`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance');\n }\n }\n }\n\n {\n instance.componentDidMount();\n }\n } else {\n var prevProps = finishedWork.elementType === finishedWork.type ? current.memoizedProps : resolveDefaultProps(finishedWork.type, current.memoizedProps);\n var prevState = current.memoizedState; // We could update instance props and state here,\n // but instead we rely on them being set during last render.\n // TODO: revisit this when we implement resuming.\n\n {\n if (finishedWork.type === finishedWork.elementType && !didWarnAboutReassigningProps) {\n if (instance.props !== finishedWork.memoizedProps) {\n error('Expected %s props to match memoized props before ' + 'componentDidUpdate. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance');\n }\n\n if (instance.state !== finishedWork.memoizedState) {\n error('Expected %s state to match memoized state before ' + 'componentDidUpdate. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.state`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance');\n }\n }\n }\n\n {\n instance.componentDidUpdate(prevProps, prevState, instance.__reactInternalSnapshotBeforeUpdate);\n }\n }\n } // TODO: I think this is now always non-null by the time it reaches the\n // commit phase. Consider removing the type check.\n\n\n var updateQueue = finishedWork.updateQueue;\n\n if (updateQueue !== null) {\n {\n if (finishedWork.type === finishedWork.elementType && !didWarnAboutReassigningProps) {\n if (instance.props !== finishedWork.memoizedProps) {\n error('Expected %s props to match memoized props before ' + 'processing the update queue. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance');\n }\n\n if (instance.state !== finishedWork.memoizedState) {\n error('Expected %s state to match memoized state before ' + 'processing the update queue. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.state`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance');\n }\n }\n } // We could update instance props and state here,\n // but instead we rely on them being set during last render.\n // TODO: revisit this when we implement resuming.\n\n\n commitUpdateQueue(finishedWork, updateQueue, instance);\n }\n\n return;\n }\n\n case HostRoot:\n {\n // TODO: I think this is now always non-null by the time it reaches the\n // commit phase. Consider removing the type check.\n var _updateQueue = finishedWork.updateQueue;\n\n if (_updateQueue !== null) {\n var _instance = null;\n\n if (finishedWork.child !== null) {\n switch (finishedWork.child.tag) {\n case HostComponent:\n _instance = getPublicInstance(finishedWork.child.stateNode);\n break;\n\n case ClassComponent:\n _instance = finishedWork.child.stateNode;\n break;\n }\n }\n\n commitUpdateQueue(finishedWork, _updateQueue, _instance);\n }\n\n return;\n }\n\n case HostComponent:\n {\n var _instance2 = finishedWork.stateNode; // Renderers may schedule work to be done after host components are mounted\n // (eg DOM renderer may schedule auto-focus for inputs and form controls).\n // These effects should only be committed when components are first mounted,\n // aka when there is no current/alternate.\n\n if (current === null && finishedWork.flags & Update) {\n var type = finishedWork.type;\n var props = finishedWork.memoizedProps;\n commitMount(_instance2, type, props);\n }\n\n return;\n }\n\n case HostText:\n {\n // We have no life-cycles associated with text.\n return;\n }\n\n case HostPortal:\n {\n // We have no life-cycles associated with portals.\n return;\n }\n\n case Profiler:\n {\n {\n var _finishedWork$memoize2 = finishedWork.memoizedProps,\n onCommit = _finishedWork$memoize2.onCommit,\n onRender = _finishedWork$memoize2.onRender;\n var effectDuration = finishedWork.stateNode.effectDuration;\n var commitTime = getCommitTime();\n\n if (typeof onRender === 'function') {\n {\n onRender(finishedWork.memoizedProps.id, current === null ? 'mount' : 'update', finishedWork.actualDuration, finishedWork.treeBaseDuration, finishedWork.actualStartTime, commitTime, finishedRoot.memoizedInteractions);\n }\n }\n }\n\n return;\n }\n\n case SuspenseComponent:\n {\n commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n return;\n }\n\n case SuspenseListComponent:\n case IncompleteClassComponent:\n case FundamentalComponent:\n case ScopeComponent:\n case OffscreenComponent:\n case LegacyHiddenComponent:\n return;\n }\n\n {\n {\n throw Error( \"This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n}\n\nfunction hideOrUnhideAllChildren(finishedWork, isHidden) {\n {\n // We only have the top Fiber that was inserted but we need to recurse down its\n // children to find all the terminal nodes.\n var node = finishedWork;\n\n while (true) {\n if (node.tag === HostComponent) {\n var instance = node.stateNode;\n\n if (isHidden) {\n hideInstance(instance);\n } else {\n unhideInstance(node.stateNode, node.memoizedProps);\n }\n } else if (node.tag === HostText) {\n var _instance3 = node.stateNode;\n\n if (isHidden) {\n hideTextInstance(_instance3);\n } else {\n unhideTextInstance(_instance3, node.memoizedProps);\n }\n } else if ((node.tag === OffscreenComponent || node.tag === LegacyHiddenComponent) && node.memoizedState !== null && node !== finishedWork) ; else if (node.child !== null) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n\n if (node === finishedWork) {\n return;\n }\n\n while (node.sibling === null) {\n if (node.return === null || node.return === finishedWork) {\n return;\n }\n\n node = node.return;\n }\n\n node.sibling.return = node.return;\n node = node.sibling;\n }\n }\n}\n\nfunction commitAttachRef(finishedWork) {\n var ref = finishedWork.ref;\n\n if (ref !== null) {\n var instance = finishedWork.stateNode;\n var instanceToUse;\n\n switch (finishedWork.tag) {\n case HostComponent:\n instanceToUse = getPublicInstance(instance);\n break;\n\n default:\n instanceToUse = instance;\n } // Moved outside to ensure DCE works with this flag\n\n if (typeof ref === 'function') {\n ref(instanceToUse);\n } else {\n {\n if (!ref.hasOwnProperty('current')) {\n error('Unexpected ref object provided for %s. ' + 'Use either a ref-setter function or React.createRef().', getComponentName(finishedWork.type));\n }\n }\n\n ref.current = instanceToUse;\n }\n }\n}\n\nfunction commitDetachRef(current) {\n var currentRef = current.ref;\n\n if (currentRef !== null) {\n if (typeof currentRef === 'function') {\n currentRef(null);\n } else {\n currentRef.current = null;\n }\n }\n} // User-originating errors (lifecycles and refs) should not interrupt\n// deletion, so don't let them throw. Host-originating errors should\n// interrupt deletion, so it's okay\n\n\nfunction commitUnmount(finishedRoot, current, renderPriorityLevel) {\n onCommitUnmount(current);\n\n switch (current.tag) {\n case FunctionComponent:\n case ForwardRef:\n case MemoComponent:\n case SimpleMemoComponent:\n case Block:\n {\n var updateQueue = current.updateQueue;\n\n if (updateQueue !== null) {\n var lastEffect = updateQueue.lastEffect;\n\n if (lastEffect !== null) {\n var firstEffect = lastEffect.next;\n var effect = firstEffect;\n\n do {\n var _effect2 = effect,\n destroy = _effect2.destroy,\n tag = _effect2.tag;\n\n if (destroy !== undefined) {\n if ((tag & Passive$1) !== NoFlags$1) {\n enqueuePendingPassiveHookEffectUnmount(current, effect);\n } else {\n {\n safelyCallDestroy(current, destroy);\n }\n }\n }\n\n effect = effect.next;\n } while (effect !== firstEffect);\n }\n }\n\n return;\n }\n\n case ClassComponent:\n {\n safelyDetachRef(current);\n var instance = current.stateNode;\n\n if (typeof instance.componentWillUnmount === 'function') {\n safelyCallComponentWillUnmount(current, instance);\n }\n\n return;\n }\n\n case HostComponent:\n {\n safelyDetachRef(current);\n return;\n }\n\n case HostPortal:\n {\n // TODO: this is recursive.\n // We are also not using this parent because\n // the portal will get pushed immediately.\n {\n unmountHostComponents(finishedRoot, current);\n }\n\n return;\n }\n\n case FundamentalComponent:\n {\n\n return;\n }\n\n case DehydratedFragment:\n {\n\n return;\n }\n\n case ScopeComponent:\n {\n\n return;\n }\n }\n}\n\nfunction commitNestedUnmounts(finishedRoot, root, renderPriorityLevel) {\n // While we're inside a removed host node we don't want to call\n // removeChild on the inner nodes because they're removed by the top\n // call anyway. We also want to call componentWillUnmount on all\n // composites before this host node is removed from the tree. Therefore\n // we do an inner loop while we're still inside the host node.\n var node = root;\n\n while (true) {\n commitUnmount(finishedRoot, node); // Visit children because they may contain more composite or host nodes.\n // Skip portals because commitUnmount() currently visits them recursively.\n\n if (node.child !== null && ( // If we use mutation we drill down into portals using commitUnmount above.\n // If we don't use mutation we drill down into portals here instead.\n node.tag !== HostPortal)) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n\n if (node === root) {\n return;\n }\n\n while (node.sibling === null) {\n if (node.return === null || node.return === root) {\n return;\n }\n\n node = node.return;\n }\n\n node.sibling.return = node.return;\n node = node.sibling;\n }\n}\n\nfunction detachFiberMutation(fiber) {\n // Cut off the return pointers to disconnect it from the tree. Ideally, we\n // should clear the child pointer of the parent alternate to let this\n // get GC:ed but we don't know which for sure which parent is the current\n // one so we'll settle for GC:ing the subtree of this child. This child\n // itself will be GC:ed when the parent updates the next time.\n // Note: we cannot null out sibling here, otherwise it can cause issues\n // with findDOMNode and how it requires the sibling field to carry out\n // traversal in a later effect. See PR #16820. We now clear the sibling\n // field after effects, see: detachFiberAfterEffects.\n //\n // Don't disconnect stateNode now; it will be detached in detachFiberAfterEffects.\n // It may be required if the current component is an error boundary,\n // and one of its descendants throws while unmounting a passive effect.\n fiber.alternate = null;\n fiber.child = null;\n fiber.dependencies = null;\n fiber.firstEffect = null;\n fiber.lastEffect = null;\n fiber.memoizedProps = null;\n fiber.memoizedState = null;\n fiber.pendingProps = null;\n fiber.return = null;\n fiber.updateQueue = null;\n\n {\n fiber._debugOwner = null;\n }\n}\n\nfunction getHostParentFiber(fiber) {\n var parent = fiber.return;\n\n while (parent !== null) {\n if (isHostParent(parent)) {\n return parent;\n }\n\n parent = parent.return;\n }\n\n {\n {\n throw Error( \"Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n}\n\nfunction isHostParent(fiber) {\n return fiber.tag === HostComponent || fiber.tag === HostRoot || fiber.tag === HostPortal;\n}\n\nfunction getHostSibling(fiber) {\n // We're going to search forward into the tree until we find a sibling host\n // node. Unfortunately, if multiple insertions are done in a row we have to\n // search past them. This leads to exponential search for the next sibling.\n // TODO: Find a more efficient way to do this.\n var node = fiber;\n\n siblings: while (true) {\n // If we didn't find anything, let's try the next sibling.\n while (node.sibling === null) {\n if (node.return === null || isHostParent(node.return)) {\n // If we pop out of the root or hit the parent the fiber we are the\n // last sibling.\n return null;\n }\n\n node = node.return;\n }\n\n node.sibling.return = node.return;\n node = node.sibling;\n\n while (node.tag !== HostComponent && node.tag !== HostText && node.tag !== DehydratedFragment) {\n // If it is not host node and, we might have a host node inside it.\n // Try to search down until we find one.\n if (node.flags & Placement) {\n // If we don't have a child, try the siblings instead.\n continue siblings;\n } // If we don't have a child, try the siblings instead.\n // We also skip portals because they are not part of this host tree.\n\n\n if (node.child === null || node.tag === HostPortal) {\n continue siblings;\n } else {\n node.child.return = node;\n node = node.child;\n }\n } // Check if this host node is stable or about to be placed.\n\n\n if (!(node.flags & Placement)) {\n // Found it!\n return node.stateNode;\n }\n }\n}\n\nfunction commitPlacement(finishedWork) {\n\n\n var parentFiber = getHostParentFiber(finishedWork); // Note: these two variables *must* always be updated together.\n\n var parent;\n var isContainer;\n var parentStateNode = parentFiber.stateNode;\n\n switch (parentFiber.tag) {\n case HostComponent:\n parent = parentStateNode;\n isContainer = false;\n break;\n\n case HostRoot:\n parent = parentStateNode.containerInfo;\n isContainer = true;\n break;\n\n case HostPortal:\n parent = parentStateNode.containerInfo;\n isContainer = true;\n break;\n\n case FundamentalComponent:\n\n // eslint-disable-next-line-no-fallthrough\n\n default:\n {\n {\n throw Error( \"Invalid host parent fiber. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n\n }\n\n if (parentFiber.flags & ContentReset) {\n // Reset the text content of the parent before doing any insertions\n resetTextContent(parent); // Clear ContentReset from the effect tag\n\n parentFiber.flags &= ~ContentReset;\n }\n\n var before = getHostSibling(finishedWork); // We only have the top Fiber that was inserted but we need to recurse down its\n // children to find all the terminal nodes.\n\n if (isContainer) {\n insertOrAppendPlacementNodeIntoContainer(finishedWork, before, parent);\n } else {\n insertOrAppendPlacementNode(finishedWork, before, parent);\n }\n}\n\nfunction insertOrAppendPlacementNodeIntoContainer(node, before, parent) {\n var tag = node.tag;\n var isHost = tag === HostComponent || tag === HostText;\n\n if (isHost || enableFundamentalAPI ) {\n var stateNode = isHost ? node.stateNode : node.stateNode.instance;\n\n if (before) {\n insertInContainerBefore(parent, stateNode, before);\n } else {\n appendChildToContainer(parent, stateNode);\n }\n } else if (tag === HostPortal) ; else {\n var child = node.child;\n\n if (child !== null) {\n insertOrAppendPlacementNodeIntoContainer(child, before, parent);\n var sibling = child.sibling;\n\n while (sibling !== null) {\n insertOrAppendPlacementNodeIntoContainer(sibling, before, parent);\n sibling = sibling.sibling;\n }\n }\n }\n}\n\nfunction insertOrAppendPlacementNode(node, before, parent) {\n var tag = node.tag;\n var isHost = tag === HostComponent || tag === HostText;\n\n if (isHost || enableFundamentalAPI ) {\n var stateNode = isHost ? node.stateNode : node.stateNode.instance;\n\n if (before) {\n insertBefore(parent, stateNode, before);\n } else {\n appendChild(parent, stateNode);\n }\n } else if (tag === HostPortal) ; else {\n var child = node.child;\n\n if (child !== null) {\n insertOrAppendPlacementNode(child, before, parent);\n var sibling = child.sibling;\n\n while (sibling !== null) {\n insertOrAppendPlacementNode(sibling, before, parent);\n sibling = sibling.sibling;\n }\n }\n }\n}\n\nfunction unmountHostComponents(finishedRoot, current, renderPriorityLevel) {\n // We only have the top Fiber that was deleted but we need to recurse down its\n // children to find all the terminal nodes.\n var node = current; // Each iteration, currentParent is populated with node's host parent if not\n // currentParentIsValid.\n\n var currentParentIsValid = false; // Note: these two variables *must* always be updated together.\n\n var currentParent;\n var currentParentIsContainer;\n\n while (true) {\n if (!currentParentIsValid) {\n var parent = node.return;\n\n findParent: while (true) {\n if (!(parent !== null)) {\n {\n throw Error( \"Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n\n var parentStateNode = parent.stateNode;\n\n switch (parent.tag) {\n case HostComponent:\n currentParent = parentStateNode;\n currentParentIsContainer = false;\n break findParent;\n\n case HostRoot:\n currentParent = parentStateNode.containerInfo;\n currentParentIsContainer = true;\n break findParent;\n\n case HostPortal:\n currentParent = parentStateNode.containerInfo;\n currentParentIsContainer = true;\n break findParent;\n\n }\n\n parent = parent.return;\n }\n\n currentParentIsValid = true;\n }\n\n if (node.tag === HostComponent || node.tag === HostText) {\n commitNestedUnmounts(finishedRoot, node); // After all the children have unmounted, it is now safe to remove the\n // node from the tree.\n\n if (currentParentIsContainer) {\n removeChildFromContainer(currentParent, node.stateNode);\n } else {\n removeChild(currentParent, node.stateNode);\n } // Don't visit children because we already visited them.\n\n } else if (node.tag === HostPortal) {\n if (node.child !== null) {\n // When we go into a portal, it becomes the parent to remove from.\n // We will reassign it back when we pop the portal on the way up.\n currentParent = node.stateNode.containerInfo;\n currentParentIsContainer = true; // Visit children because portals might contain host components.\n\n node.child.return = node;\n node = node.child;\n continue;\n }\n } else {\n commitUnmount(finishedRoot, node); // Visit children because we may find more host components below.\n\n if (node.child !== null) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n }\n\n if (node === current) {\n return;\n }\n\n while (node.sibling === null) {\n if (node.return === null || node.return === current) {\n return;\n }\n\n node = node.return;\n\n if (node.tag === HostPortal) {\n // When we go out of the portal, we need to restore the parent.\n // Since we don't keep a stack of them, we will search for it.\n currentParentIsValid = false;\n }\n }\n\n node.sibling.return = node.return;\n node = node.sibling;\n }\n}\n\nfunction commitDeletion(finishedRoot, current, renderPriorityLevel) {\n {\n // Recursively delete all host nodes from the parent.\n // Detach refs and call componentWillUnmount() on the whole subtree.\n unmountHostComponents(finishedRoot, current);\n }\n\n var alternate = current.alternate;\n detachFiberMutation(current);\n\n if (alternate !== null) {\n detachFiberMutation(alternate);\n }\n}\n\nfunction commitWork(current, finishedWork) {\n\n switch (finishedWork.tag) {\n case FunctionComponent:\n case ForwardRef:\n case MemoComponent:\n case SimpleMemoComponent:\n case Block:\n {\n // Layout effects are destroyed during the mutation phase so that all\n // destroy functions for all fibers are called before any create functions.\n // This prevents sibling component effects from interfering with each other,\n // e.g. a destroy function in one component should never override a ref set\n // by a create function in another component during the same commit.\n {\n commitHookEffectListUnmount(Layout | HasEffect, finishedWork);\n }\n\n return;\n }\n\n case ClassComponent:\n {\n return;\n }\n\n case HostComponent:\n {\n var instance = finishedWork.stateNode;\n\n if (instance != null) {\n // Commit the work prepared earlier.\n var newProps = finishedWork.memoizedProps; // For hydration we reuse the update path but we treat the oldProps\n // as the newProps. The updatePayload will contain the real change in\n // this case.\n\n var oldProps = current !== null ? current.memoizedProps : newProps;\n var type = finishedWork.type; // TODO: Type the updateQueue to be specific to host components.\n\n var updatePayload = finishedWork.updateQueue;\n finishedWork.updateQueue = null;\n\n if (updatePayload !== null) {\n commitUpdate(instance, updatePayload, type, oldProps, newProps);\n }\n }\n\n return;\n }\n\n case HostText:\n {\n if (!(finishedWork.stateNode !== null)) {\n {\n throw Error( \"This should have a text node initialized. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n\n var textInstance = finishedWork.stateNode;\n var newText = finishedWork.memoizedProps; // For hydration we reuse the update path but we treat the oldProps\n // as the newProps. The updatePayload will contain the real change in\n // this case.\n\n var oldText = current !== null ? current.memoizedProps : newText;\n commitTextUpdate(textInstance, oldText, newText);\n return;\n }\n\n case HostRoot:\n {\n {\n var _root = finishedWork.stateNode;\n\n if (_root.hydrate) {\n // We've just hydrated. No need to hydrate again.\n _root.hydrate = false;\n commitHydratedContainer(_root.containerInfo);\n }\n }\n\n return;\n }\n\n case Profiler:\n {\n return;\n }\n\n case SuspenseComponent:\n {\n commitSuspenseComponent(finishedWork);\n attachSuspenseRetryListeners(finishedWork);\n return;\n }\n\n case SuspenseListComponent:\n {\n attachSuspenseRetryListeners(finishedWork);\n return;\n }\n\n case IncompleteClassComponent:\n {\n return;\n }\n\n case FundamentalComponent:\n {\n\n break;\n }\n\n case ScopeComponent:\n {\n\n break;\n }\n\n case OffscreenComponent:\n case LegacyHiddenComponent:\n {\n var newState = finishedWork.memoizedState;\n var isHidden = newState !== null;\n hideOrUnhideAllChildren(finishedWork, isHidden);\n return;\n }\n }\n\n {\n {\n throw Error( \"This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n}\n\nfunction commitSuspenseComponent(finishedWork) {\n var newState = finishedWork.memoizedState;\n\n if (newState !== null) {\n markCommitTimeOfFallback();\n\n {\n // Hide the Offscreen component that contains the primary children. TODO:\n // Ideally, this effect would have been scheduled on the Offscreen fiber\n // itself. That's how unhiding works: the Offscreen component schedules an\n // effect on itself. However, in this case, the component didn't complete,\n // so the fiber was never added to the effect list in the normal path. We\n // could have appended it to the effect list in the Suspense component's\n // second pass, but doing it this way is less complicated. This would be\n // simpler if we got rid of the effect list and traversed the tree, like\n // we're planning to do.\n var primaryChildParent = finishedWork.child;\n hideOrUnhideAllChildren(primaryChildParent, true);\n }\n }\n}\n\nfunction commitSuspenseHydrationCallbacks(finishedRoot, finishedWork) {\n\n var newState = finishedWork.memoizedState;\n\n if (newState === null) {\n var current = finishedWork.alternate;\n\n if (current !== null) {\n var prevState = current.memoizedState;\n\n if (prevState !== null) {\n var suspenseInstance = prevState.dehydrated;\n\n if (suspenseInstance !== null) {\n commitHydratedSuspenseInstance(suspenseInstance);\n }\n }\n }\n }\n}\n\nfunction attachSuspenseRetryListeners(finishedWork) {\n // If this boundary just timed out, then it will have a set of wakeables.\n // For each wakeable, attach a listener so that when it resolves, React\n // attempts to re-render the boundary in the primary (pre-timeout) state.\n var wakeables = finishedWork.updateQueue;\n\n if (wakeables !== null) {\n finishedWork.updateQueue = null;\n var retryCache = finishedWork.stateNode;\n\n if (retryCache === null) {\n retryCache = finishedWork.stateNode = new PossiblyWeakSet();\n }\n\n wakeables.forEach(function (wakeable) {\n // Memoize using the boundary fiber to prevent redundant listeners.\n var retry = resolveRetryWakeable.bind(null, finishedWork, wakeable);\n\n if (!retryCache.has(wakeable)) {\n {\n if (wakeable.__reactDoNotTraceInteractions !== true) {\n retry = tracing.unstable_wrap(retry);\n }\n }\n\n retryCache.add(wakeable);\n wakeable.then(retry, retry);\n }\n });\n }\n} // This function detects when a Suspense boundary goes from visible to hidden.\n// It returns false if the boundary is already hidden.\n// TODO: Use an effect tag.\n\n\nfunction isSuspenseBoundaryBeingHidden(current, finishedWork) {\n if (current !== null) {\n var oldState = current.memoizedState;\n\n if (oldState === null || oldState.dehydrated !== null) {\n var newState = finishedWork.memoizedState;\n return newState !== null && newState.dehydrated === null;\n }\n }\n\n return false;\n}\n\nfunction commitResetTextContent(current) {\n\n resetTextContent(current.stateNode);\n}\n\nvar COMPONENT_TYPE = 0;\nvar HAS_PSEUDO_CLASS_TYPE = 1;\nvar ROLE_TYPE = 2;\nvar TEST_NAME_TYPE = 3;\nvar TEXT_TYPE = 4;\n\nif (typeof Symbol === 'function' && Symbol.for) {\n var symbolFor$1 = Symbol.for;\n COMPONENT_TYPE = symbolFor$1('selector.component');\n HAS_PSEUDO_CLASS_TYPE = symbolFor$1('selector.has_pseudo_class');\n ROLE_TYPE = symbolFor$1('selector.role');\n TEST_NAME_TYPE = symbolFor$1('selector.test_id');\n TEXT_TYPE = symbolFor$1('selector.text');\n}\nvar commitHooks = [];\nfunction onCommitRoot$1() {\n {\n commitHooks.forEach(function (commitHook) {\n return commitHook();\n });\n }\n}\n\nvar ceil = Math.ceil;\nvar ReactCurrentDispatcher$2 = ReactSharedInternals.ReactCurrentDispatcher,\n ReactCurrentOwner$2 = ReactSharedInternals.ReactCurrentOwner,\n IsSomeRendererActing = ReactSharedInternals.IsSomeRendererActing;\nvar NoContext =\n/* */\n0;\nvar BatchedContext =\n/* */\n1;\nvar EventContext =\n/* */\n2;\nvar DiscreteEventContext =\n/* */\n4;\nvar LegacyUnbatchedContext =\n/* */\n8;\nvar RenderContext =\n/* */\n16;\nvar CommitContext =\n/* */\n32;\nvar RetryAfterError =\n/* */\n64;\nvar RootIncomplete = 0;\nvar RootFatalErrored = 1;\nvar RootErrored = 2;\nvar RootSuspended = 3;\nvar RootSuspendedWithDelay = 4;\nvar RootCompleted = 5; // Describes where we are in the React execution stack\n\nvar executionContext = NoContext; // The root we're working on\n\nvar workInProgressRoot = null; // The fiber we're working on\n\nvar workInProgress = null; // The lanes we're rendering\n\nvar workInProgressRootRenderLanes = NoLanes; // Stack that allows components to change the render lanes for its subtree\n// This is a superset of the lanes we started working on at the root. The only\n// case where it's different from `workInProgressRootRenderLanes` is when we\n// enter a subtree that is hidden and needs to be unhidden: Suspense and\n// Offscreen component.\n//\n// Most things in the work loop should deal with workInProgressRootRenderLanes.\n// Most things in begin/complete phases should deal with subtreeRenderLanes.\n\nvar subtreeRenderLanes = NoLanes;\nvar subtreeRenderLanesCursor = createCursor(NoLanes); // Whether to root completed, errored, suspended, etc.\n\nvar workInProgressRootExitStatus = RootIncomplete; // A fatal error, if one is thrown\n\nvar workInProgressRootFatalError = null; // \"Included\" lanes refer to lanes that were worked on during this render. It's\n// slightly different than `renderLanes` because `renderLanes` can change as you\n// enter and exit an Offscreen tree. This value is the combination of all render\n// lanes for the entire render phase.\n\nvar workInProgressRootIncludedLanes = NoLanes; // The work left over by components that were visited during this render. Only\n// includes unprocessed updates, not work in bailed out children.\n\nvar workInProgressRootSkippedLanes = NoLanes; // Lanes that were updated (in an interleaved event) during this render.\n\nvar workInProgressRootUpdatedLanes = NoLanes; // Lanes that were pinged (in an interleaved event) during this render.\n\nvar workInProgressRootPingedLanes = NoLanes;\nvar mostRecentlyUpdatedRoot = null; // The most recent time we committed a fallback. This lets us ensure a train\n// model where we don't commit new loading states in too quick succession.\n\nvar globalMostRecentFallbackTime = 0;\nvar FALLBACK_THROTTLE_MS = 500; // The absolute time for when we should start giving up on rendering\n// more and prefer CPU suspense heuristics instead.\n\nvar workInProgressRootRenderTargetTime = Infinity; // How long a render is supposed to take before we start following CPU\n// suspense heuristics and opt out of rendering more content.\n\nvar RENDER_TIMEOUT_MS = 500;\n\nfunction resetRenderTimer() {\n workInProgressRootRenderTargetTime = now() + RENDER_TIMEOUT_MS;\n}\n\nfunction getRenderTargetTime() {\n return workInProgressRootRenderTargetTime;\n}\nvar nextEffect = null;\nvar hasUncaughtError = false;\nvar firstUncaughtError = null;\nvar legacyErrorBoundariesThatAlreadyFailed = null;\nvar rootDoesHavePassiveEffects = false;\nvar rootWithPendingPassiveEffects = null;\nvar pendingPassiveEffectsRenderPriority = NoPriority$1;\nvar pendingPassiveEffectsLanes = NoLanes;\nvar pendingPassiveHookEffectsMount = [];\nvar pendingPassiveHookEffectsUnmount = [];\nvar rootsWithPendingDiscreteUpdates = null; // Use these to prevent an infinite loop of nested updates\n\nvar NESTED_UPDATE_LIMIT = 50;\nvar nestedUpdateCount = 0;\nvar rootWithNestedUpdates = null;\nvar NESTED_PASSIVE_UPDATE_LIMIT = 50;\nvar nestedPassiveUpdateCount = 0; // Marks the need to reschedule pending interactions at these lanes\n// during the commit phase. This enables them to be traced across components\n// that spawn new work during render. E.g. hidden boundaries, suspended SSR\n// hydration or SuspenseList.\n// TODO: Can use a bitmask instead of an array\n\nvar spawnedWorkDuringRender = null; // If two updates are scheduled within the same event, we should treat their\n// event times as simultaneous, even if the actual clock time has advanced\n// between the first and second call.\n\nvar currentEventTime = NoTimestamp;\nvar currentEventWipLanes = NoLanes;\nvar currentEventPendingLanes = NoLanes; // Dev only flag that tracks if passive effects are currently being flushed.\n// We warn about state updates for unmounted components differently in this case.\n\nvar isFlushingPassiveEffects = false;\nvar focusedInstanceHandle = null;\nvar shouldFireAfterActiveInstanceBlur = false;\nfunction getWorkInProgressRoot() {\n return workInProgressRoot;\n}\nfunction requestEventTime() {\n if ((executionContext & (RenderContext | CommitContext)) !== NoContext) {\n // We're inside React, so it's fine to read the actual time.\n return now();\n } // We're not inside React, so we may be in the middle of a browser event.\n\n\n if (currentEventTime !== NoTimestamp) {\n // Use the same start time for all updates until we enter React again.\n return currentEventTime;\n } // This is the first update since React yielded. Compute a new start time.\n\n\n currentEventTime = now();\n return currentEventTime;\n}\nfunction requestUpdateLane(fiber) {\n // Special cases\n var mode = fiber.mode;\n\n if ((mode & BlockingMode) === NoMode) {\n return SyncLane;\n } else if ((mode & ConcurrentMode) === NoMode) {\n return getCurrentPriorityLevel() === ImmediatePriority$1 ? SyncLane : SyncBatchedLane;\n } // The algorithm for assigning an update to a lane should be stable for all\n // updates at the same priority within the same event. To do this, the inputs\n // to the algorithm must be the same. For example, we use the `renderLanes`\n // to avoid choosing a lane that is already in the middle of rendering.\n //\n // However, the \"included\" lanes could be mutated in between updates in the\n // same event, like if you perform an update inside `flushSync`. Or any other\n // code path that might call `prepareFreshStack`.\n //\n // The trick we use is to cache the first of each of these inputs within an\n // event. Then reset the cached values once we can be sure the event is over.\n // Our heuristic for that is whenever we enter a concurrent work loop.\n //\n // We'll do the same for `currentEventPendingLanes` below.\n\n\n if (currentEventWipLanes === NoLanes) {\n currentEventWipLanes = workInProgressRootIncludedLanes;\n }\n\n var isTransition = requestCurrentTransition() !== NoTransition;\n\n if (isTransition) {\n if (currentEventPendingLanes !== NoLanes) {\n currentEventPendingLanes = mostRecentlyUpdatedRoot !== null ? mostRecentlyUpdatedRoot.pendingLanes : NoLanes;\n }\n\n return findTransitionLane(currentEventWipLanes, currentEventPendingLanes);\n } // TODO: Remove this dependency on the Scheduler priority.\n // To do that, we're replacing it with an update lane priority.\n\n\n var schedulerPriority = getCurrentPriorityLevel(); // The old behavior was using the priority level of the Scheduler.\n // This couples React to the Scheduler internals, so we're replacing it\n // with the currentUpdateLanePriority above. As an example of how this\n // could be problematic, if we're not inside `Scheduler.runWithPriority`,\n // then we'll get the priority of the current running Scheduler task,\n // which is probably not what we want.\n\n var lane;\n\n if ( // TODO: Temporary. We're removing the concept of discrete updates.\n (executionContext & DiscreteEventContext) !== NoContext && schedulerPriority === UserBlockingPriority$2) {\n lane = findUpdateLane(InputDiscreteLanePriority, currentEventWipLanes);\n } else {\n var schedulerLanePriority = schedulerPriorityToLanePriority(schedulerPriority);\n\n lane = findUpdateLane(schedulerLanePriority, currentEventWipLanes);\n }\n\n return lane;\n}\n\nfunction requestRetryLane(fiber) {\n // This is a fork of `requestUpdateLane` designed specifically for Suspense\n // \"retries\" — a special update that attempts to flip a Suspense boundary\n // from its placeholder state to its primary/resolved state.\n // Special cases\n var mode = fiber.mode;\n\n if ((mode & BlockingMode) === NoMode) {\n return SyncLane;\n } else if ((mode & ConcurrentMode) === NoMode) {\n return getCurrentPriorityLevel() === ImmediatePriority$1 ? SyncLane : SyncBatchedLane;\n } // See `requestUpdateLane` for explanation of `currentEventWipLanes`\n\n\n if (currentEventWipLanes === NoLanes) {\n currentEventWipLanes = workInProgressRootIncludedLanes;\n }\n\n return findRetryLane(currentEventWipLanes);\n}\n\nfunction scheduleUpdateOnFiber(fiber, lane, eventTime) {\n checkForNestedUpdates();\n warnAboutRenderPhaseUpdatesInDEV(fiber);\n var root = markUpdateLaneFromFiberToRoot(fiber, lane);\n\n if (root === null) {\n warnAboutUpdateOnUnmountedFiberInDEV(fiber);\n return null;\n } // Mark that the root has a pending update.\n\n\n markRootUpdated(root, lane, eventTime);\n\n if (root === workInProgressRoot) {\n // Received an update to a tree that's in the middle of rendering. Mark\n // that there was an interleaved update work on this root. Unless the\n // `deferRenderPhaseUpdateToNextBatch` flag is off and this is a render\n // phase update. In that case, we don't treat render phase updates as if\n // they were interleaved, for backwards compat reasons.\n {\n workInProgressRootUpdatedLanes = mergeLanes(workInProgressRootUpdatedLanes, lane);\n }\n\n if (workInProgressRootExitStatus === RootSuspendedWithDelay) {\n // The root already suspended with a delay, which means this render\n // definitely won't finish. Since we have a new update, let's mark it as\n // suspended now, right before marking the incoming update. This has the\n // effect of interrupting the current render and switching to the update.\n // TODO: Make sure this doesn't override pings that happen while we've\n // already started rendering.\n markRootSuspended$1(root, workInProgressRootRenderLanes);\n }\n } // TODO: requestUpdateLanePriority also reads the priority. Pass the\n // priority as an argument to that function and this one.\n\n\n var priorityLevel = getCurrentPriorityLevel();\n\n if (lane === SyncLane) {\n if ( // Check if we're inside unbatchedUpdates\n (executionContext & LegacyUnbatchedContext) !== NoContext && // Check if we're not already rendering\n (executionContext & (RenderContext | CommitContext)) === NoContext) {\n // Register pending interactions on the root to avoid losing traced interaction data.\n schedulePendingInteractions(root, lane); // This is a legacy edge case. The initial mount of a ReactDOM.render-ed\n // root inside of batchedUpdates should be synchronous, but layout updates\n // should be deferred until the end of the batch.\n\n performSyncWorkOnRoot(root);\n } else {\n ensureRootIsScheduled(root, eventTime);\n schedulePendingInteractions(root, lane);\n\n if (executionContext === NoContext) {\n // Flush the synchronous work now, unless we're already working or inside\n // a batch. This is intentionally inside scheduleUpdateOnFiber instead of\n // scheduleCallbackForFiber to preserve the ability to schedule a callback\n // without immediately flushing it. We only do this for user-initiated\n // updates, to preserve historical behavior of legacy mode.\n resetRenderTimer();\n flushSyncCallbackQueue();\n }\n }\n } else {\n // Schedule a discrete update but only if it's not Sync.\n if ((executionContext & DiscreteEventContext) !== NoContext && ( // Only updates at user-blocking priority or greater are considered\n // discrete, even inside a discrete event.\n priorityLevel === UserBlockingPriority$2 || priorityLevel === ImmediatePriority$1)) {\n // This is the result of a discrete event. Track the lowest priority\n // discrete update per root so we can flush them early, if needed.\n if (rootsWithPendingDiscreteUpdates === null) {\n rootsWithPendingDiscreteUpdates = new Set([root]);\n } else {\n rootsWithPendingDiscreteUpdates.add(root);\n }\n } // Schedule other updates after in case the callback is sync.\n\n\n ensureRootIsScheduled(root, eventTime);\n schedulePendingInteractions(root, lane);\n } // We use this when assigning a lane for a transition inside\n // `requestUpdateLane`. We assume it's the same as the root being updated,\n // since in the common case of a single root app it probably is. If it's not\n // the same root, then it's not a huge deal, we just might batch more stuff\n // together more than necessary.\n\n\n mostRecentlyUpdatedRoot = root;\n} // This is split into a separate function so we can mark a fiber with pending\n// work without treating it as a typical update that originates from an event;\n// e.g. retrying a Suspense boundary isn't an update, but it does schedule work\n// on a fiber.\n\nfunction markUpdateLaneFromFiberToRoot(sourceFiber, lane) {\n // Update the source fiber's lanes\n sourceFiber.lanes = mergeLanes(sourceFiber.lanes, lane);\n var alternate = sourceFiber.alternate;\n\n if (alternate !== null) {\n alternate.lanes = mergeLanes(alternate.lanes, lane);\n }\n\n {\n if (alternate === null && (sourceFiber.flags & (Placement | Hydrating)) !== NoFlags) {\n warnAboutUpdateOnNotYetMountedFiberInDEV(sourceFiber);\n }\n } // Walk the parent path to the root and update the child expiration time.\n\n\n var node = sourceFiber;\n var parent = sourceFiber.return;\n\n while (parent !== null) {\n parent.childLanes = mergeLanes(parent.childLanes, lane);\n alternate = parent.alternate;\n\n if (alternate !== null) {\n alternate.childLanes = mergeLanes(alternate.childLanes, lane);\n } else {\n {\n if ((parent.flags & (Placement | Hydrating)) !== NoFlags) {\n warnAboutUpdateOnNotYetMountedFiberInDEV(sourceFiber);\n }\n }\n }\n\n node = parent;\n parent = parent.return;\n }\n\n if (node.tag === HostRoot) {\n var root = node.stateNode;\n return root;\n } else {\n return null;\n }\n} // Use this function to schedule a task for a root. There's only one task per\n// root; if a task was already scheduled, we'll check to make sure the priority\n// of the existing task is the same as the priority of the next level that the\n// root has work on. This function is called on every update, and right before\n// exiting a task.\n\n\nfunction ensureRootIsScheduled(root, currentTime) {\n var existingCallbackNode = root.callbackNode; // Check if any lanes are being starved by other work. If so, mark them as\n // expired so we know to work on those next.\n\n markStarvedLanesAsExpired(root, currentTime); // Determine the next lanes to work on, and their priority.\n\n var nextLanes = getNextLanes(root, root === workInProgressRoot ? workInProgressRootRenderLanes : NoLanes); // This returns the priority level computed during the `getNextLanes` call.\n\n var newCallbackPriority = returnNextLanesPriority();\n\n if (nextLanes === NoLanes) {\n // Special case: There's nothing to work on.\n if (existingCallbackNode !== null) {\n cancelCallback(existingCallbackNode);\n root.callbackNode = null;\n root.callbackPriority = NoLanePriority;\n }\n\n return;\n } // Check if there's an existing task. We may be able to reuse it.\n\n\n if (existingCallbackNode !== null) {\n var existingCallbackPriority = root.callbackPriority;\n\n if (existingCallbackPriority === newCallbackPriority) {\n // The priority hasn't changed. We can reuse the existing task. Exit.\n return;\n } // The priority changed. Cancel the existing callback. We'll schedule a new\n // one below.\n\n\n cancelCallback(existingCallbackNode);\n } // Schedule a new callback.\n\n\n var newCallbackNode;\n\n if (newCallbackPriority === SyncLanePriority) {\n // Special case: Sync React callbacks are scheduled on a special\n // internal queue\n newCallbackNode = scheduleSyncCallback(performSyncWorkOnRoot.bind(null, root));\n } else if (newCallbackPriority === SyncBatchedLanePriority) {\n newCallbackNode = scheduleCallback(ImmediatePriority$1, performSyncWorkOnRoot.bind(null, root));\n } else {\n var schedulerPriorityLevel = lanePriorityToSchedulerPriority(newCallbackPriority);\n newCallbackNode = scheduleCallback(schedulerPriorityLevel, performConcurrentWorkOnRoot.bind(null, root));\n }\n\n root.callbackPriority = newCallbackPriority;\n root.callbackNode = newCallbackNode;\n} // This is the entry point for every concurrent task, i.e. anything that\n// goes through Scheduler.\n\n\nfunction performConcurrentWorkOnRoot(root) {\n // Since we know we're in a React event, we can clear the current\n // event time. The next update will compute a new event time.\n currentEventTime = NoTimestamp;\n currentEventWipLanes = NoLanes;\n currentEventPendingLanes = NoLanes;\n\n if (!((executionContext & (RenderContext | CommitContext)) === NoContext)) {\n {\n throw Error( \"Should not already be working.\" );\n }\n } // Flush any pending passive effects before deciding which lanes to work on,\n // in case they schedule additional work.\n\n\n var originalCallbackNode = root.callbackNode;\n var didFlushPassiveEffects = flushPassiveEffects();\n\n if (didFlushPassiveEffects) {\n // Something in the passive effect phase may have canceled the current task.\n // Check if the task node for this root was changed.\n if (root.callbackNode !== originalCallbackNode) {\n // The current task was canceled. Exit. We don't need to call\n // `ensureRootIsScheduled` because the check above implies either that\n // there's a new task, or that there's no remaining work on this root.\n return null;\n }\n } // Determine the next expiration time to work on, using the fields stored\n // on the root.\n\n\n var lanes = getNextLanes(root, root === workInProgressRoot ? workInProgressRootRenderLanes : NoLanes);\n\n if (lanes === NoLanes) {\n // Defensive coding. This is never expected to happen.\n return null;\n }\n\n var exitStatus = renderRootConcurrent(root, lanes);\n\n if (includesSomeLane(workInProgressRootIncludedLanes, workInProgressRootUpdatedLanes)) {\n // The render included lanes that were updated during the render phase.\n // For example, when unhiding a hidden tree, we include all the lanes\n // that were previously skipped when the tree was hidden. That set of\n // lanes is a superset of the lanes we started rendering with.\n //\n // So we'll throw out the current work and restart.\n prepareFreshStack(root, NoLanes);\n } else if (exitStatus !== RootIncomplete) {\n if (exitStatus === RootErrored) {\n executionContext |= RetryAfterError; // If an error occurred during hydration,\n // discard server response and fall back to client side render.\n\n if (root.hydrate) {\n root.hydrate = false;\n clearContainer(root.containerInfo);\n } // If something threw an error, try rendering one more time. We'll render\n // synchronously to block concurrent data mutations, and we'll includes\n // all pending updates are included. If it still fails after the second\n // attempt, we'll give up and commit the resulting tree.\n\n\n lanes = getLanesToRetrySynchronouslyOnError(root);\n\n if (lanes !== NoLanes) {\n exitStatus = renderRootSync(root, lanes);\n }\n }\n\n if (exitStatus === RootFatalErrored) {\n var fatalError = workInProgressRootFatalError;\n prepareFreshStack(root, NoLanes);\n markRootSuspended$1(root, lanes);\n ensureRootIsScheduled(root, now());\n throw fatalError;\n } // We now have a consistent tree. The next step is either to commit it,\n // or, if something suspended, wait to commit it after a timeout.\n\n\n var finishedWork = root.current.alternate;\n root.finishedWork = finishedWork;\n root.finishedLanes = lanes;\n finishConcurrentRender(root, exitStatus, lanes);\n }\n\n ensureRootIsScheduled(root, now());\n\n if (root.callbackNode === originalCallbackNode) {\n // The task node scheduled for this root is the same one that's\n // currently executed. Need to return a continuation.\n return performConcurrentWorkOnRoot.bind(null, root);\n }\n\n return null;\n}\n\nfunction finishConcurrentRender(root, exitStatus, lanes) {\n switch (exitStatus) {\n case RootIncomplete:\n case RootFatalErrored:\n {\n {\n {\n throw Error( \"Root did not complete. This is a bug in React.\" );\n }\n }\n }\n // Flow knows about invariant, so it complains if I add a break\n // statement, but eslint doesn't know about invariant, so it complains\n // if I do. eslint-disable-next-line no-fallthrough\n\n case RootErrored:\n {\n // We should have already attempted to retry this tree. If we reached\n // this point, it errored again. Commit it.\n commitRoot(root);\n break;\n }\n\n case RootSuspended:\n {\n markRootSuspended$1(root, lanes); // We have an acceptable loading state. We need to figure out if we\n // should immediately commit it or wait a bit.\n\n if (includesOnlyRetries(lanes) && // do not delay if we're inside an act() scope\n !shouldForceFlushFallbacksInDEV()) {\n // This render only included retries, no updates. Throttle committing\n // retries so that we don't show too many loading states too quickly.\n var msUntilTimeout = globalMostRecentFallbackTime + FALLBACK_THROTTLE_MS - now(); // Don't bother with a very short suspense time.\n\n if (msUntilTimeout > 10) {\n var nextLanes = getNextLanes(root, NoLanes);\n\n if (nextLanes !== NoLanes) {\n // There's additional work on this root.\n break;\n }\n\n var suspendedLanes = root.suspendedLanes;\n\n if (!isSubsetOfLanes(suspendedLanes, lanes)) {\n // We should prefer to render the fallback of at the last\n // suspended level. Ping the last suspended level to try\n // rendering it again.\n // FIXME: What if the suspended lanes are Idle? Should not restart.\n var eventTime = requestEventTime();\n markRootPinged(root, suspendedLanes);\n break;\n } // The render is suspended, it hasn't timed out, and there's no\n // lower priority work to do. Instead of committing the fallback\n // immediately, wait for more data to arrive.\n\n\n root.timeoutHandle = scheduleTimeout(commitRoot.bind(null, root), msUntilTimeout);\n break;\n }\n } // The work expired. Commit immediately.\n\n\n commitRoot(root);\n break;\n }\n\n case RootSuspendedWithDelay:\n {\n markRootSuspended$1(root, lanes);\n\n if (includesOnlyTransitions(lanes)) {\n // This is a transition, so we should exit without committing a\n // placeholder and without scheduling a timeout. Delay indefinitely\n // until we receive more data.\n break;\n }\n\n if (!shouldForceFlushFallbacksInDEV()) {\n // This is not a transition, but we did trigger an avoided state.\n // Schedule a placeholder to display after a short delay, using the Just\n // Noticeable Difference.\n // TODO: Is the JND optimization worth the added complexity? If this is\n // the only reason we track the event time, then probably not.\n // Consider removing.\n var mostRecentEventTime = getMostRecentEventTime(root, lanes);\n var eventTimeMs = mostRecentEventTime;\n var timeElapsedMs = now() - eventTimeMs;\n\n var _msUntilTimeout = jnd(timeElapsedMs) - timeElapsedMs; // Don't bother with a very short suspense time.\n\n\n if (_msUntilTimeout > 10) {\n // Instead of committing the fallback immediately, wait for more data\n // to arrive.\n root.timeoutHandle = scheduleTimeout(commitRoot.bind(null, root), _msUntilTimeout);\n break;\n }\n } // Commit the placeholder.\n\n\n commitRoot(root);\n break;\n }\n\n case RootCompleted:\n {\n // The work completed. Ready to commit.\n commitRoot(root);\n break;\n }\n\n default:\n {\n {\n {\n throw Error( \"Unknown root exit status.\" );\n }\n }\n }\n }\n}\n\nfunction markRootSuspended$1(root, suspendedLanes) {\n // When suspending, we should always exclude lanes that were pinged or (more\n // rarely, since we try to avoid it) updated during the render phase.\n // TODO: Lol maybe there's a better way to factor this besides this\n // obnoxiously named function :)\n suspendedLanes = removeLanes(suspendedLanes, workInProgressRootPingedLanes);\n suspendedLanes = removeLanes(suspendedLanes, workInProgressRootUpdatedLanes);\n markRootSuspended(root, suspendedLanes);\n} // This is the entry point for synchronous tasks that don't go\n// through Scheduler\n\n\nfunction performSyncWorkOnRoot(root) {\n if (!((executionContext & (RenderContext | CommitContext)) === NoContext)) {\n {\n throw Error( \"Should not already be working.\" );\n }\n }\n\n flushPassiveEffects();\n var lanes;\n var exitStatus;\n\n if (root === workInProgressRoot && includesSomeLane(root.expiredLanes, workInProgressRootRenderLanes)) {\n // There's a partial tree, and at least one of its lanes has expired. Finish\n // rendering it before rendering the rest of the expired work.\n lanes = workInProgressRootRenderLanes;\n exitStatus = renderRootSync(root, lanes);\n\n if (includesSomeLane(workInProgressRootIncludedLanes, workInProgressRootUpdatedLanes)) {\n // The render included lanes that were updated during the render phase.\n // For example, when unhiding a hidden tree, we include all the lanes\n // that were previously skipped when the tree was hidden. That set of\n // lanes is a superset of the lanes we started rendering with.\n //\n // Note that this only happens when part of the tree is rendered\n // concurrently. If the whole tree is rendered synchronously, then there\n // are no interleaved events.\n lanes = getNextLanes(root, lanes);\n exitStatus = renderRootSync(root, lanes);\n }\n } else {\n lanes = getNextLanes(root, NoLanes);\n exitStatus = renderRootSync(root, lanes);\n }\n\n if (root.tag !== LegacyRoot && exitStatus === RootErrored) {\n executionContext |= RetryAfterError; // If an error occurred during hydration,\n // discard server response and fall back to client side render.\n\n if (root.hydrate) {\n root.hydrate = false;\n clearContainer(root.containerInfo);\n } // If something threw an error, try rendering one more time. We'll render\n // synchronously to block concurrent data mutations, and we'll includes\n // all pending updates are included. If it still fails after the second\n // attempt, we'll give up and commit the resulting tree.\n\n\n lanes = getLanesToRetrySynchronouslyOnError(root);\n\n if (lanes !== NoLanes) {\n exitStatus = renderRootSync(root, lanes);\n }\n }\n\n if (exitStatus === RootFatalErrored) {\n var fatalError = workInProgressRootFatalError;\n prepareFreshStack(root, NoLanes);\n markRootSuspended$1(root, lanes);\n ensureRootIsScheduled(root, now());\n throw fatalError;\n } // We now have a consistent tree. Because this is a sync render, we\n // will commit it even if something suspended.\n\n\n var finishedWork = root.current.alternate;\n root.finishedWork = finishedWork;\n root.finishedLanes = lanes;\n commitRoot(root); // Before exiting, make sure there's a callback scheduled for the next\n // pending level.\n\n ensureRootIsScheduled(root, now());\n return null;\n}\nfunction flushDiscreteUpdates() {\n // TODO: Should be able to flush inside batchedUpdates, but not inside `act`.\n // However, `act` uses `batchedUpdates`, so there's no way to distinguish\n // those two cases. Need to fix this before exposing flushDiscreteUpdates\n // as a public API.\n if ((executionContext & (BatchedContext | RenderContext | CommitContext)) !== NoContext) {\n {\n if ((executionContext & RenderContext) !== NoContext) {\n error('unstable_flushDiscreteUpdates: Cannot flush updates when React is ' + 'already rendering.');\n }\n } // We're already rendering, so we can't synchronously flush pending work.\n // This is probably a nested event dispatch triggered by a lifecycle/effect,\n // like `el.focus()`. Exit.\n\n\n return;\n }\n\n flushPendingDiscreteUpdates(); // If the discrete updates scheduled passive effects, flush them now so that\n // they fire before the next serial event.\n\n flushPassiveEffects();\n}\n\nfunction flushPendingDiscreteUpdates() {\n if (rootsWithPendingDiscreteUpdates !== null) {\n // For each root with pending discrete updates, schedule a callback to\n // immediately flush them.\n var roots = rootsWithPendingDiscreteUpdates;\n rootsWithPendingDiscreteUpdates = null;\n roots.forEach(function (root) {\n markDiscreteUpdatesExpired(root);\n ensureRootIsScheduled(root, now());\n });\n } // Now flush the immediate queue.\n\n\n flushSyncCallbackQueue();\n}\n\nfunction batchedUpdates$1(fn, a) {\n var prevExecutionContext = executionContext;\n executionContext |= BatchedContext;\n\n try {\n return fn(a);\n } finally {\n executionContext = prevExecutionContext;\n\n if (executionContext === NoContext) {\n // Flush the immediate callbacks that were scheduled during this batch\n resetRenderTimer();\n flushSyncCallbackQueue();\n }\n }\n}\nfunction batchedEventUpdates$1(fn, a) {\n var prevExecutionContext = executionContext;\n executionContext |= EventContext;\n\n try {\n return fn(a);\n } finally {\n executionContext = prevExecutionContext;\n\n if (executionContext === NoContext) {\n // Flush the immediate callbacks that were scheduled during this batch\n resetRenderTimer();\n flushSyncCallbackQueue();\n }\n }\n}\nfunction discreteUpdates$1(fn, a, b, c, d) {\n var prevExecutionContext = executionContext;\n executionContext |= DiscreteEventContext;\n\n {\n try {\n return runWithPriority$1(UserBlockingPriority$2, fn.bind(null, a, b, c, d));\n } finally {\n executionContext = prevExecutionContext;\n\n if (executionContext === NoContext) {\n // Flush the immediate callbacks that were scheduled during this batch\n resetRenderTimer();\n flushSyncCallbackQueue();\n }\n }\n }\n}\nfunction unbatchedUpdates(fn, a) {\n var prevExecutionContext = executionContext;\n executionContext &= ~BatchedContext;\n executionContext |= LegacyUnbatchedContext;\n\n try {\n return fn(a);\n } finally {\n executionContext = prevExecutionContext;\n\n if (executionContext === NoContext) {\n // Flush the immediate callbacks that were scheduled during this batch\n resetRenderTimer();\n flushSyncCallbackQueue();\n }\n }\n}\nfunction flushSync(fn, a) {\n var prevExecutionContext = executionContext;\n\n if ((prevExecutionContext & (RenderContext | CommitContext)) !== NoContext) {\n {\n error('flushSync was called from inside a lifecycle method. React cannot ' + 'flush when React is already rendering. Consider moving this call to ' + 'a scheduler task or micro task.');\n }\n\n return fn(a);\n }\n\n executionContext |= BatchedContext;\n\n {\n try {\n if (fn) {\n return runWithPriority$1(ImmediatePriority$1, fn.bind(null, a));\n } else {\n return undefined;\n }\n } finally {\n executionContext = prevExecutionContext; // Flush the immediate callbacks that were scheduled during this batch.\n // Note that this will happen even if batchedUpdates is higher up\n // the stack.\n\n flushSyncCallbackQueue();\n }\n }\n}\nfunction pushRenderLanes(fiber, lanes) {\n push(subtreeRenderLanesCursor, subtreeRenderLanes, fiber);\n subtreeRenderLanes = mergeLanes(subtreeRenderLanes, lanes);\n workInProgressRootIncludedLanes = mergeLanes(workInProgressRootIncludedLanes, lanes);\n}\nfunction popRenderLanes(fiber) {\n subtreeRenderLanes = subtreeRenderLanesCursor.current;\n pop(subtreeRenderLanesCursor, fiber);\n}\n\nfunction prepareFreshStack(root, lanes) {\n root.finishedWork = null;\n root.finishedLanes = NoLanes;\n var timeoutHandle = root.timeoutHandle;\n\n if (timeoutHandle !== noTimeout) {\n // The root previous suspended and scheduled a timeout to commit a fallback\n // state. Now that we have additional work, cancel the timeout.\n root.timeoutHandle = noTimeout; // $FlowFixMe Complains noTimeout is not a TimeoutID, despite the check above\n\n cancelTimeout(timeoutHandle);\n }\n\n if (workInProgress !== null) {\n var interruptedWork = workInProgress.return;\n\n while (interruptedWork !== null) {\n unwindInterruptedWork(interruptedWork);\n interruptedWork = interruptedWork.return;\n }\n }\n\n workInProgressRoot = root;\n workInProgress = createWorkInProgress(root.current, null);\n workInProgressRootRenderLanes = subtreeRenderLanes = workInProgressRootIncludedLanes = lanes;\n workInProgressRootExitStatus = RootIncomplete;\n workInProgressRootFatalError = null;\n workInProgressRootSkippedLanes = NoLanes;\n workInProgressRootUpdatedLanes = NoLanes;\n workInProgressRootPingedLanes = NoLanes;\n\n {\n spawnedWorkDuringRender = null;\n }\n\n {\n ReactStrictModeWarnings.discardPendingWarnings();\n }\n}\n\nfunction handleError(root, thrownValue) {\n do {\n var erroredWork = workInProgress;\n\n try {\n // Reset module-level state that was set during the render phase.\n resetContextDependencies();\n resetHooksAfterThrow();\n resetCurrentFiber(); // TODO: I found and added this missing line while investigating a\n // separate issue. Write a regression test using string refs.\n\n ReactCurrentOwner$2.current = null;\n\n if (erroredWork === null || erroredWork.return === null) {\n // Expected to be working on a non-root fiber. This is a fatal error\n // because there's no ancestor that can handle it; the root is\n // supposed to capture all errors that weren't caught by an error\n // boundary.\n workInProgressRootExitStatus = RootFatalErrored;\n workInProgressRootFatalError = thrownValue; // Set `workInProgress` to null. This represents advancing to the next\n // sibling, or the parent if there are no siblings. But since the root\n // has no siblings nor a parent, we set it to null. Usually this is\n // handled by `completeUnitOfWork` or `unwindWork`, but since we're\n // intentionally not calling those, we need set it here.\n // TODO: Consider calling `unwindWork` to pop the contexts.\n\n workInProgress = null;\n return;\n }\n\n if (enableProfilerTimer && erroredWork.mode & ProfileMode) {\n // Record the time spent rendering before an error was thrown. This\n // avoids inaccurate Profiler durations in the case of a\n // suspended render.\n stopProfilerTimerIfRunningAndRecordDelta(erroredWork, true);\n }\n\n throwException(root, erroredWork.return, erroredWork, thrownValue, workInProgressRootRenderLanes);\n completeUnitOfWork(erroredWork);\n } catch (yetAnotherThrownValue) {\n // Something in the return path also threw.\n thrownValue = yetAnotherThrownValue;\n\n if (workInProgress === erroredWork && erroredWork !== null) {\n // If this boundary has already errored, then we had trouble processing\n // the error. Bubble it to the next boundary.\n erroredWork = erroredWork.return;\n workInProgress = erroredWork;\n } else {\n erroredWork = workInProgress;\n }\n\n continue;\n } // Return to the normal work loop.\n\n\n return;\n } while (true);\n}\n\nfunction pushDispatcher() {\n var prevDispatcher = ReactCurrentDispatcher$2.current;\n ReactCurrentDispatcher$2.current = ContextOnlyDispatcher;\n\n if (prevDispatcher === null) {\n // The React isomorphic package does not include a default dispatcher.\n // Instead the first renderer will lazily attach one, in order to give\n // nicer error messages.\n return ContextOnlyDispatcher;\n } else {\n return prevDispatcher;\n }\n}\n\nfunction popDispatcher(prevDispatcher) {\n ReactCurrentDispatcher$2.current = prevDispatcher;\n}\n\nfunction pushInteractions(root) {\n {\n var prevInteractions = tracing.__interactionsRef.current;\n tracing.__interactionsRef.current = root.memoizedInteractions;\n return prevInteractions;\n }\n}\n\nfunction popInteractions(prevInteractions) {\n {\n tracing.__interactionsRef.current = prevInteractions;\n }\n}\n\nfunction markCommitTimeOfFallback() {\n globalMostRecentFallbackTime = now();\n}\nfunction markSkippedUpdateLanes(lane) {\n workInProgressRootSkippedLanes = mergeLanes(lane, workInProgressRootSkippedLanes);\n}\nfunction renderDidSuspend() {\n if (workInProgressRootExitStatus === RootIncomplete) {\n workInProgressRootExitStatus = RootSuspended;\n }\n}\nfunction renderDidSuspendDelayIfPossible() {\n if (workInProgressRootExitStatus === RootIncomplete || workInProgressRootExitStatus === RootSuspended) {\n workInProgressRootExitStatus = RootSuspendedWithDelay;\n } // Check if there are updates that we skipped tree that might have unblocked\n // this render.\n\n\n if (workInProgressRoot !== null && (includesNonIdleWork(workInProgressRootSkippedLanes) || includesNonIdleWork(workInProgressRootUpdatedLanes))) {\n // Mark the current render as suspended so that we switch to working on\n // the updates that were skipped. Usually we only suspend at the end of\n // the render phase.\n // TODO: We should probably always mark the root as suspended immediately\n // (inside this function), since by suspending at the end of the render\n // phase introduces a potential mistake where we suspend lanes that were\n // pinged or updated while we were rendering.\n markRootSuspended$1(workInProgressRoot, workInProgressRootRenderLanes);\n }\n}\nfunction renderDidError() {\n if (workInProgressRootExitStatus !== RootCompleted) {\n workInProgressRootExitStatus = RootErrored;\n }\n} // Called during render to determine if anything has suspended.\n// Returns false if we're not sure.\n\nfunction renderHasNotSuspendedYet() {\n // If something errored or completed, we can't really be sure,\n // so those are false.\n return workInProgressRootExitStatus === RootIncomplete;\n}\n\nfunction renderRootSync(root, lanes) {\n var prevExecutionContext = executionContext;\n executionContext |= RenderContext;\n var prevDispatcher = pushDispatcher(); // If the root or lanes have changed, throw out the existing stack\n // and prepare a fresh one. Otherwise we'll continue where we left off.\n\n if (workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes) {\n prepareFreshStack(root, lanes);\n startWorkOnPendingInteractions(root, lanes);\n }\n\n var prevInteractions = pushInteractions(root);\n\n do {\n try {\n workLoopSync();\n break;\n } catch (thrownValue) {\n handleError(root, thrownValue);\n }\n } while (true);\n\n resetContextDependencies();\n\n {\n popInteractions(prevInteractions);\n }\n\n executionContext = prevExecutionContext;\n popDispatcher(prevDispatcher);\n\n if (workInProgress !== null) {\n // This is a sync render, so we should have finished the whole tree.\n {\n {\n throw Error( \"Cannot commit an incomplete root. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n }\n\n\n workInProgressRoot = null;\n workInProgressRootRenderLanes = NoLanes;\n return workInProgressRootExitStatus;\n} // The work loop is an extremely hot path. Tell Closure not to inline it.\n\n/** @noinline */\n\n\nfunction workLoopSync() {\n // Already timed out, so perform work without checking if we need to yield.\n while (workInProgress !== null) {\n performUnitOfWork(workInProgress);\n }\n}\n\nfunction renderRootConcurrent(root, lanes) {\n var prevExecutionContext = executionContext;\n executionContext |= RenderContext;\n var prevDispatcher = pushDispatcher(); // If the root or lanes have changed, throw out the existing stack\n // and prepare a fresh one. Otherwise we'll continue where we left off.\n\n if (workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes) {\n resetRenderTimer();\n prepareFreshStack(root, lanes);\n startWorkOnPendingInteractions(root, lanes);\n }\n\n var prevInteractions = pushInteractions(root);\n\n do {\n try {\n workLoopConcurrent();\n break;\n } catch (thrownValue) {\n handleError(root, thrownValue);\n }\n } while (true);\n\n resetContextDependencies();\n\n {\n popInteractions(prevInteractions);\n }\n\n popDispatcher(prevDispatcher);\n executionContext = prevExecutionContext;\n\n\n if (workInProgress !== null) {\n\n return RootIncomplete;\n } else {\n\n\n workInProgressRoot = null;\n workInProgressRootRenderLanes = NoLanes; // Return the final exit status.\n\n return workInProgressRootExitStatus;\n }\n}\n/** @noinline */\n\n\nfunction workLoopConcurrent() {\n // Perform work until Scheduler asks us to yield\n while (workInProgress !== null && !shouldYield()) {\n performUnitOfWork(workInProgress);\n }\n}\n\nfunction performUnitOfWork(unitOfWork) {\n // The current, flushed, state of this fiber is the alternate. Ideally\n // nothing should rely on this, but relying on it here means that we don't\n // need an additional field on the work in progress.\n var current = unitOfWork.alternate;\n setCurrentFiber(unitOfWork);\n var next;\n\n if ( (unitOfWork.mode & ProfileMode) !== NoMode) {\n startProfilerTimer(unitOfWork);\n next = beginWork$1(current, unitOfWork, subtreeRenderLanes);\n stopProfilerTimerIfRunningAndRecordDelta(unitOfWork, true);\n } else {\n next = beginWork$1(current, unitOfWork, subtreeRenderLanes);\n }\n\n resetCurrentFiber();\n unitOfWork.memoizedProps = unitOfWork.pendingProps;\n\n if (next === null) {\n // If this doesn't spawn new work, complete the current work.\n completeUnitOfWork(unitOfWork);\n } else {\n workInProgress = next;\n }\n\n ReactCurrentOwner$2.current = null;\n}\n\nfunction completeUnitOfWork(unitOfWork) {\n // Attempt to complete the current unit of work, then move to the next\n // sibling. If there are no more siblings, return to the parent fiber.\n var completedWork = unitOfWork;\n\n do {\n // The current, flushed, state of this fiber is the alternate. Ideally\n // nothing should rely on this, but relying on it here means that we don't\n // need an additional field on the work in progress.\n var current = completedWork.alternate;\n var returnFiber = completedWork.return; // Check if the work completed or if something threw.\n\n if ((completedWork.flags & Incomplete) === NoFlags) {\n setCurrentFiber(completedWork);\n var next = void 0;\n\n if ( (completedWork.mode & ProfileMode) === NoMode) {\n next = completeWork(current, completedWork, subtreeRenderLanes);\n } else {\n startProfilerTimer(completedWork);\n next = completeWork(current, completedWork, subtreeRenderLanes); // Update render duration assuming we didn't error.\n\n stopProfilerTimerIfRunningAndRecordDelta(completedWork, false);\n }\n\n resetCurrentFiber();\n\n if (next !== null) {\n // Completing this fiber spawned new work. Work on that next.\n workInProgress = next;\n return;\n }\n\n resetChildLanes(completedWork);\n\n if (returnFiber !== null && // Do not append effects to parents if a sibling failed to complete\n (returnFiber.flags & Incomplete) === NoFlags) {\n // Append all the effects of the subtree and this fiber onto the effect\n // list of the parent. The completion order of the children affects the\n // side-effect order.\n if (returnFiber.firstEffect === null) {\n returnFiber.firstEffect = completedWork.firstEffect;\n }\n\n if (completedWork.lastEffect !== null) {\n if (returnFiber.lastEffect !== null) {\n returnFiber.lastEffect.nextEffect = completedWork.firstEffect;\n }\n\n returnFiber.lastEffect = completedWork.lastEffect;\n } // If this fiber had side-effects, we append it AFTER the children's\n // side-effects. We can perform certain side-effects earlier if needed,\n // by doing multiple passes over the effect list. We don't want to\n // schedule our own side-effect on our own list because if end up\n // reusing children we'll schedule this effect onto itself since we're\n // at the end.\n\n\n var flags = completedWork.flags; // Skip both NoWork and PerformedWork tags when creating the effect\n // list. PerformedWork effect is read by React DevTools but shouldn't be\n // committed.\n\n if (flags > PerformedWork) {\n if (returnFiber.lastEffect !== null) {\n returnFiber.lastEffect.nextEffect = completedWork;\n } else {\n returnFiber.firstEffect = completedWork;\n }\n\n returnFiber.lastEffect = completedWork;\n }\n }\n } else {\n // This fiber did not complete because something threw. Pop values off\n // the stack without entering the complete phase. If this is a boundary,\n // capture values if possible.\n var _next = unwindWork(completedWork); // Because this fiber did not complete, don't reset its expiration time.\n\n\n if (_next !== null) {\n // If completing this work spawned new work, do that next. We'll come\n // back here again.\n // Since we're restarting, remove anything that is not a host effect\n // from the effect tag.\n _next.flags &= HostEffectMask;\n workInProgress = _next;\n return;\n }\n\n if ( (completedWork.mode & ProfileMode) !== NoMode) {\n // Record the render duration for the fiber that errored.\n stopProfilerTimerIfRunningAndRecordDelta(completedWork, false); // Include the time spent working on failed children before continuing.\n\n var actualDuration = completedWork.actualDuration;\n var child = completedWork.child;\n\n while (child !== null) {\n actualDuration += child.actualDuration;\n child = child.sibling;\n }\n\n completedWork.actualDuration = actualDuration;\n }\n\n if (returnFiber !== null) {\n // Mark the parent fiber as incomplete and clear its effect list.\n returnFiber.firstEffect = returnFiber.lastEffect = null;\n returnFiber.flags |= Incomplete;\n }\n }\n\n var siblingFiber = completedWork.sibling;\n\n if (siblingFiber !== null) {\n // If there is more work to do in this returnFiber, do that next.\n workInProgress = siblingFiber;\n return;\n } // Otherwise, return to the parent\n\n\n completedWork = returnFiber; // Update the next thing we're working on in case something throws.\n\n workInProgress = completedWork;\n } while (completedWork !== null); // We've reached the root.\n\n\n if (workInProgressRootExitStatus === RootIncomplete) {\n workInProgressRootExitStatus = RootCompleted;\n }\n}\n\nfunction resetChildLanes(completedWork) {\n if ( // TODO: Move this check out of the hot path by moving `resetChildLanes`\n // to switch statement in `completeWork`.\n (completedWork.tag === LegacyHiddenComponent || completedWork.tag === OffscreenComponent) && completedWork.memoizedState !== null && !includesSomeLane(subtreeRenderLanes, OffscreenLane) && (completedWork.mode & ConcurrentMode) !== NoLanes) {\n // The children of this component are hidden. Don't bubble their\n // expiration times.\n return;\n }\n\n var newChildLanes = NoLanes; // Bubble up the earliest expiration time.\n\n if ( (completedWork.mode & ProfileMode) !== NoMode) {\n // In profiling mode, resetChildExpirationTime is also used to reset\n // profiler durations.\n var actualDuration = completedWork.actualDuration;\n var treeBaseDuration = completedWork.selfBaseDuration; // When a fiber is cloned, its actualDuration is reset to 0. This value will\n // only be updated if work is done on the fiber (i.e. it doesn't bailout).\n // When work is done, it should bubble to the parent's actualDuration. If\n // the fiber has not been cloned though, (meaning no work was done), then\n // this value will reflect the amount of time spent working on a previous\n // render. In that case it should not bubble. We determine whether it was\n // cloned by comparing the child pointer.\n\n var shouldBubbleActualDurations = completedWork.alternate === null || completedWork.child !== completedWork.alternate.child;\n var child = completedWork.child;\n\n while (child !== null) {\n newChildLanes = mergeLanes(newChildLanes, mergeLanes(child.lanes, child.childLanes));\n\n if (shouldBubbleActualDurations) {\n actualDuration += child.actualDuration;\n }\n\n treeBaseDuration += child.treeBaseDuration;\n child = child.sibling;\n }\n\n var isTimedOutSuspense = completedWork.tag === SuspenseComponent && completedWork.memoizedState !== null;\n\n if (isTimedOutSuspense) {\n // Don't count time spent in a timed out Suspense subtree as part of the base duration.\n var primaryChildFragment = completedWork.child;\n\n if (primaryChildFragment !== null) {\n treeBaseDuration -= primaryChildFragment.treeBaseDuration;\n }\n }\n\n completedWork.actualDuration = actualDuration;\n completedWork.treeBaseDuration = treeBaseDuration;\n } else {\n var _child = completedWork.child;\n\n while (_child !== null) {\n newChildLanes = mergeLanes(newChildLanes, mergeLanes(_child.lanes, _child.childLanes));\n _child = _child.sibling;\n }\n }\n\n completedWork.childLanes = newChildLanes;\n}\n\nfunction commitRoot(root) {\n var renderPriorityLevel = getCurrentPriorityLevel();\n runWithPriority$1(ImmediatePriority$1, commitRootImpl.bind(null, root, renderPriorityLevel));\n return null;\n}\n\nfunction commitRootImpl(root, renderPriorityLevel) {\n do {\n // `flushPassiveEffects` will call `flushSyncUpdateQueue` at the end, which\n // means `flushPassiveEffects` will sometimes result in additional\n // passive effects. So we need to keep flushing in a loop until there are\n // no more pending effects.\n // TODO: Might be better if `flushPassiveEffects` did not automatically\n // flush synchronous work at the end, to avoid factoring hazards like this.\n flushPassiveEffects();\n } while (rootWithPendingPassiveEffects !== null);\n\n flushRenderPhaseStrictModeWarningsInDEV();\n\n if (!((executionContext & (RenderContext | CommitContext)) === NoContext)) {\n {\n throw Error( \"Should not already be working.\" );\n }\n }\n\n var finishedWork = root.finishedWork;\n var lanes = root.finishedLanes;\n\n if (finishedWork === null) {\n\n return null;\n }\n\n root.finishedWork = null;\n root.finishedLanes = NoLanes;\n\n if (!(finishedWork !== root.current)) {\n {\n throw Error( \"Cannot commit the same tree as before. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n } // commitRoot never returns a continuation; it always finishes synchronously.\n // So we can clear these now to allow a new callback to be scheduled.\n\n\n root.callbackNode = null; // Update the first and last pending times on this root. The new first\n // pending time is whatever is left on the root fiber.\n\n var remainingLanes = mergeLanes(finishedWork.lanes, finishedWork.childLanes);\n markRootFinished(root, remainingLanes); // Clear already finished discrete updates in case that a later call of\n // `flushDiscreteUpdates` starts a useless render pass which may cancels\n // a scheduled timeout.\n\n if (rootsWithPendingDiscreteUpdates !== null) {\n if (!hasDiscreteLanes(remainingLanes) && rootsWithPendingDiscreteUpdates.has(root)) {\n rootsWithPendingDiscreteUpdates.delete(root);\n }\n }\n\n if (root === workInProgressRoot) {\n // We can reset these now that they are finished.\n workInProgressRoot = null;\n workInProgress = null;\n workInProgressRootRenderLanes = NoLanes;\n } // Get the list of effects.\n\n\n var firstEffect;\n\n if (finishedWork.flags > PerformedWork) {\n // A fiber's effect list consists only of its children, not itself. So if\n // the root has an effect, we need to add it to the end of the list. The\n // resulting list is the set that would belong to the root's parent, if it\n // had one; that is, all the effects in the tree including the root.\n if (finishedWork.lastEffect !== null) {\n finishedWork.lastEffect.nextEffect = finishedWork;\n firstEffect = finishedWork.firstEffect;\n } else {\n firstEffect = finishedWork;\n }\n } else {\n // There is no effect on the root.\n firstEffect = finishedWork.firstEffect;\n }\n\n if (firstEffect !== null) {\n\n var prevExecutionContext = executionContext;\n executionContext |= CommitContext;\n var prevInteractions = pushInteractions(root); // Reset this to null before calling lifecycles\n\n ReactCurrentOwner$2.current = null; // The commit phase is broken into several sub-phases. We do a separate pass\n // of the effect list for each phase: all mutation effects come before all\n // layout effects, and so on.\n // The first phase a \"before mutation\" phase. We use this phase to read the\n // state of the host tree right before we mutate it. This is where\n // getSnapshotBeforeUpdate is called.\n\n focusedInstanceHandle = prepareForCommit(root.containerInfo);\n shouldFireAfterActiveInstanceBlur = false;\n nextEffect = firstEffect;\n\n do {\n {\n invokeGuardedCallback(null, commitBeforeMutationEffects, null);\n\n if (hasCaughtError()) {\n if (!(nextEffect !== null)) {\n {\n throw Error( \"Should be working on an effect.\" );\n }\n }\n\n var error = clearCaughtError();\n captureCommitPhaseError(nextEffect, error);\n nextEffect = nextEffect.nextEffect;\n }\n }\n } while (nextEffect !== null); // We no longer need to track the active instance fiber\n\n\n focusedInstanceHandle = null;\n\n {\n // Mark the current commit time to be shared by all Profilers in this\n // batch. This enables them to be grouped later.\n recordCommitTime();\n } // The next phase is the mutation phase, where we mutate the host tree.\n\n\n nextEffect = firstEffect;\n\n do {\n {\n invokeGuardedCallback(null, commitMutationEffects, null, root, renderPriorityLevel);\n\n if (hasCaughtError()) {\n if (!(nextEffect !== null)) {\n {\n throw Error( \"Should be working on an effect.\" );\n }\n }\n\n var _error = clearCaughtError();\n\n captureCommitPhaseError(nextEffect, _error);\n nextEffect = nextEffect.nextEffect;\n }\n }\n } while (nextEffect !== null);\n\n resetAfterCommit(root.containerInfo); // The work-in-progress tree is now the current tree. This must come after\n // the mutation phase, so that the previous tree is still current during\n // componentWillUnmount, but before the layout phase, so that the finished\n // work is current during componentDidMount/Update.\n\n root.current = finishedWork; // The next phase is the layout phase, where we call effects that read\n // the host tree after it's been mutated. The idiomatic use case for this is\n // layout, but class component lifecycles also fire here for legacy reasons.\n\n nextEffect = firstEffect;\n\n do {\n {\n invokeGuardedCallback(null, commitLayoutEffects, null, root, lanes);\n\n if (hasCaughtError()) {\n if (!(nextEffect !== null)) {\n {\n throw Error( \"Should be working on an effect.\" );\n }\n }\n\n var _error2 = clearCaughtError();\n\n captureCommitPhaseError(nextEffect, _error2);\n nextEffect = nextEffect.nextEffect;\n }\n }\n } while (nextEffect !== null);\n\n nextEffect = null; // Tell Scheduler to yield at the end of the frame, so the browser has an\n // opportunity to paint.\n\n requestPaint();\n\n {\n popInteractions(prevInteractions);\n }\n\n executionContext = prevExecutionContext;\n } else {\n // No effects.\n root.current = finishedWork; // Measure these anyway so the flamegraph explicitly shows that there were\n // no effects.\n // TODO: Maybe there's a better way to report this.\n\n {\n recordCommitTime();\n }\n }\n\n var rootDidHavePassiveEffects = rootDoesHavePassiveEffects;\n\n if (rootDoesHavePassiveEffects) {\n // This commit has passive effects. Stash a reference to them. But don't\n // schedule a callback until after flushing layout work.\n rootDoesHavePassiveEffects = false;\n rootWithPendingPassiveEffects = root;\n pendingPassiveEffectsLanes = lanes;\n pendingPassiveEffectsRenderPriority = renderPriorityLevel;\n } else {\n // We are done with the effect chain at this point so let's clear the\n // nextEffect pointers to assist with GC. If we have passive effects, we'll\n // clear this in flushPassiveEffects.\n nextEffect = firstEffect;\n\n while (nextEffect !== null) {\n var nextNextEffect = nextEffect.nextEffect;\n nextEffect.nextEffect = null;\n\n if (nextEffect.flags & Deletion) {\n detachFiberAfterEffects(nextEffect);\n }\n\n nextEffect = nextNextEffect;\n }\n } // Read this again, since an effect might have updated it\n\n\n remainingLanes = root.pendingLanes; // Check if there's remaining work on this root\n\n if (remainingLanes !== NoLanes) {\n {\n if (spawnedWorkDuringRender !== null) {\n var expirationTimes = spawnedWorkDuringRender;\n spawnedWorkDuringRender = null;\n\n for (var i = 0; i < expirationTimes.length; i++) {\n scheduleInteractions(root, expirationTimes[i], root.memoizedInteractions);\n }\n }\n\n schedulePendingInteractions(root, remainingLanes);\n }\n } else {\n // If there's no remaining work, we can clear the set of already failed\n // error boundaries.\n legacyErrorBoundariesThatAlreadyFailed = null;\n }\n\n {\n if (!rootDidHavePassiveEffects) {\n // If there are no passive effects, then we can complete the pending interactions.\n // Otherwise, we'll wait until after the passive effects are flushed.\n // Wait to do this until after remaining work has been scheduled,\n // so that we don't prematurely signal complete for interactions when there's e.g. hidden work.\n finishPendingInteractions(root, lanes);\n }\n }\n\n if (remainingLanes === SyncLane) {\n // Count the number of times the root synchronously re-renders without\n // finishing. If there are too many, it indicates an infinite update loop.\n if (root === rootWithNestedUpdates) {\n nestedUpdateCount++;\n } else {\n nestedUpdateCount = 0;\n rootWithNestedUpdates = root;\n }\n } else {\n nestedUpdateCount = 0;\n }\n\n onCommitRoot(finishedWork.stateNode, renderPriorityLevel);\n\n {\n onCommitRoot$1();\n } // Always call this before exiting `commitRoot`, to ensure that any\n // additional work on this root is scheduled.\n\n\n ensureRootIsScheduled(root, now());\n\n if (hasUncaughtError) {\n hasUncaughtError = false;\n var _error3 = firstUncaughtError;\n firstUncaughtError = null;\n throw _error3;\n }\n\n if ((executionContext & LegacyUnbatchedContext) !== NoContext) {\n // a ReactDOM.render-ed root inside of batchedUpdates. The commit fired\n // synchronously, but layout updates should be deferred until the end\n // of the batch.\n\n\n return null;\n } // If layout work was scheduled, flush it now.\n\n\n flushSyncCallbackQueue();\n\n return null;\n}\n\nfunction commitBeforeMutationEffects() {\n while (nextEffect !== null) {\n var current = nextEffect.alternate;\n\n if (!shouldFireAfterActiveInstanceBlur && focusedInstanceHandle !== null) {\n if ((nextEffect.flags & Deletion) !== NoFlags) {\n if (doesFiberContain(nextEffect, focusedInstanceHandle)) {\n shouldFireAfterActiveInstanceBlur = true;\n }\n } else {\n // TODO: Move this out of the hot path using a dedicated effect tag.\n if (nextEffect.tag === SuspenseComponent && isSuspenseBoundaryBeingHidden(current, nextEffect) && doesFiberContain(nextEffect, focusedInstanceHandle)) {\n shouldFireAfterActiveInstanceBlur = true;\n }\n }\n }\n\n var flags = nextEffect.flags;\n\n if ((flags & Snapshot) !== NoFlags) {\n setCurrentFiber(nextEffect);\n commitBeforeMutationLifeCycles(current, nextEffect);\n resetCurrentFiber();\n }\n\n if ((flags & Passive) !== NoFlags) {\n // If there are passive effects, schedule a callback to flush at\n // the earliest opportunity.\n if (!rootDoesHavePassiveEffects) {\n rootDoesHavePassiveEffects = true;\n scheduleCallback(NormalPriority$1, function () {\n flushPassiveEffects();\n return null;\n });\n }\n }\n\n nextEffect = nextEffect.nextEffect;\n }\n}\n\nfunction commitMutationEffects(root, renderPriorityLevel) {\n // TODO: Should probably move the bulk of this function to commitWork.\n while (nextEffect !== null) {\n setCurrentFiber(nextEffect);\n var flags = nextEffect.flags;\n\n if (flags & ContentReset) {\n commitResetTextContent(nextEffect);\n }\n\n if (flags & Ref) {\n var current = nextEffect.alternate;\n\n if (current !== null) {\n commitDetachRef(current);\n }\n } // The following switch statement is only concerned about placement,\n // updates, and deletions. To avoid needing to add a case for every possible\n // bitmap value, we remove the secondary effects from the effect tag and\n // switch on that value.\n\n\n var primaryFlags = flags & (Placement | Update | Deletion | Hydrating);\n\n switch (primaryFlags) {\n case Placement:\n {\n commitPlacement(nextEffect); // Clear the \"placement\" from effect tag so that we know that this is\n // inserted, before any life-cycles like componentDidMount gets called.\n // TODO: findDOMNode doesn't rely on this any more but isMounted does\n // and isMounted is deprecated anyway so we should be able to kill this.\n\n nextEffect.flags &= ~Placement;\n break;\n }\n\n case PlacementAndUpdate:\n {\n // Placement\n commitPlacement(nextEffect); // Clear the \"placement\" from effect tag so that we know that this is\n // inserted, before any life-cycles like componentDidMount gets called.\n\n nextEffect.flags &= ~Placement; // Update\n\n var _current = nextEffect.alternate;\n commitWork(_current, nextEffect);\n break;\n }\n\n case Hydrating:\n {\n nextEffect.flags &= ~Hydrating;\n break;\n }\n\n case HydratingAndUpdate:\n {\n nextEffect.flags &= ~Hydrating; // Update\n\n var _current2 = nextEffect.alternate;\n commitWork(_current2, nextEffect);\n break;\n }\n\n case Update:\n {\n var _current3 = nextEffect.alternate;\n commitWork(_current3, nextEffect);\n break;\n }\n\n case Deletion:\n {\n commitDeletion(root, nextEffect);\n break;\n }\n }\n\n resetCurrentFiber();\n nextEffect = nextEffect.nextEffect;\n }\n}\n\nfunction commitLayoutEffects(root, committedLanes) {\n\n\n while (nextEffect !== null) {\n setCurrentFiber(nextEffect);\n var flags = nextEffect.flags;\n\n if (flags & (Update | Callback)) {\n var current = nextEffect.alternate;\n commitLifeCycles(root, current, nextEffect);\n }\n\n {\n if (flags & Ref) {\n commitAttachRef(nextEffect);\n }\n }\n\n resetCurrentFiber();\n nextEffect = nextEffect.nextEffect;\n }\n}\n\nfunction flushPassiveEffects() {\n // Returns whether passive effects were flushed.\n if (pendingPassiveEffectsRenderPriority !== NoPriority$1) {\n var priorityLevel = pendingPassiveEffectsRenderPriority > NormalPriority$1 ? NormalPriority$1 : pendingPassiveEffectsRenderPriority;\n pendingPassiveEffectsRenderPriority = NoPriority$1;\n\n {\n return runWithPriority$1(priorityLevel, flushPassiveEffectsImpl);\n }\n }\n\n return false;\n}\nfunction enqueuePendingPassiveHookEffectMount(fiber, effect) {\n pendingPassiveHookEffectsMount.push(effect, fiber);\n\n if (!rootDoesHavePassiveEffects) {\n rootDoesHavePassiveEffects = true;\n scheduleCallback(NormalPriority$1, function () {\n flushPassiveEffects();\n return null;\n });\n }\n}\nfunction enqueuePendingPassiveHookEffectUnmount(fiber, effect) {\n pendingPassiveHookEffectsUnmount.push(effect, fiber);\n\n {\n fiber.flags |= PassiveUnmountPendingDev;\n var alternate = fiber.alternate;\n\n if (alternate !== null) {\n alternate.flags |= PassiveUnmountPendingDev;\n }\n }\n\n if (!rootDoesHavePassiveEffects) {\n rootDoesHavePassiveEffects = true;\n scheduleCallback(NormalPriority$1, function () {\n flushPassiveEffects();\n return null;\n });\n }\n}\n\nfunction invokePassiveEffectCreate(effect) {\n var create = effect.create;\n effect.destroy = create();\n}\n\nfunction flushPassiveEffectsImpl() {\n if (rootWithPendingPassiveEffects === null) {\n return false;\n }\n\n var root = rootWithPendingPassiveEffects;\n var lanes = pendingPassiveEffectsLanes;\n rootWithPendingPassiveEffects = null;\n pendingPassiveEffectsLanes = NoLanes;\n\n if (!((executionContext & (RenderContext | CommitContext)) === NoContext)) {\n {\n throw Error( \"Cannot flush passive effects while already rendering.\" );\n }\n }\n\n {\n isFlushingPassiveEffects = true;\n }\n\n var prevExecutionContext = executionContext;\n executionContext |= CommitContext;\n var prevInteractions = pushInteractions(root); // It's important that ALL pending passive effect destroy functions are called\n // before ANY passive effect create functions are called.\n // Otherwise effects in sibling components might interfere with each other.\n // e.g. a destroy function in one component may unintentionally override a ref\n // value set by a create function in another component.\n // Layout effects have the same constraint.\n // First pass: Destroy stale passive effects.\n\n var unmountEffects = pendingPassiveHookEffectsUnmount;\n pendingPassiveHookEffectsUnmount = [];\n\n for (var i = 0; i < unmountEffects.length; i += 2) {\n var _effect = unmountEffects[i];\n var fiber = unmountEffects[i + 1];\n var destroy = _effect.destroy;\n _effect.destroy = undefined;\n\n {\n fiber.flags &= ~PassiveUnmountPendingDev;\n var alternate = fiber.alternate;\n\n if (alternate !== null) {\n alternate.flags &= ~PassiveUnmountPendingDev;\n }\n }\n\n if (typeof destroy === 'function') {\n {\n setCurrentFiber(fiber);\n\n {\n invokeGuardedCallback(null, destroy, null);\n }\n\n if (hasCaughtError()) {\n if (!(fiber !== null)) {\n {\n throw Error( \"Should be working on an effect.\" );\n }\n }\n\n var error = clearCaughtError();\n captureCommitPhaseError(fiber, error);\n }\n\n resetCurrentFiber();\n }\n }\n } // Second pass: Create new passive effects.\n\n\n var mountEffects = pendingPassiveHookEffectsMount;\n pendingPassiveHookEffectsMount = [];\n\n for (var _i = 0; _i < mountEffects.length; _i += 2) {\n var _effect2 = mountEffects[_i];\n var _fiber = mountEffects[_i + 1];\n\n {\n setCurrentFiber(_fiber);\n\n {\n invokeGuardedCallback(null, invokePassiveEffectCreate, null, _effect2);\n }\n\n if (hasCaughtError()) {\n if (!(_fiber !== null)) {\n {\n throw Error( \"Should be working on an effect.\" );\n }\n }\n\n var _error4 = clearCaughtError();\n\n captureCommitPhaseError(_fiber, _error4);\n }\n\n resetCurrentFiber();\n }\n } // Note: This currently assumes there are no passive effects on the root fiber\n // because the root is not part of its own effect list.\n // This could change in the future.\n\n\n var effect = root.current.firstEffect;\n\n while (effect !== null) {\n var nextNextEffect = effect.nextEffect; // Remove nextEffect pointer to assist GC\n\n effect.nextEffect = null;\n\n if (effect.flags & Deletion) {\n detachFiberAfterEffects(effect);\n }\n\n effect = nextNextEffect;\n }\n\n {\n popInteractions(prevInteractions);\n finishPendingInteractions(root, lanes);\n }\n\n {\n isFlushingPassiveEffects = false;\n }\n\n executionContext = prevExecutionContext;\n flushSyncCallbackQueue(); // If additional passive effects were scheduled, increment a counter. If this\n // exceeds the limit, we'll fire a warning.\n\n nestedPassiveUpdateCount = rootWithPendingPassiveEffects === null ? 0 : nestedPassiveUpdateCount + 1;\n return true;\n}\n\nfunction isAlreadyFailedLegacyErrorBoundary(instance) {\n return legacyErrorBoundariesThatAlreadyFailed !== null && legacyErrorBoundariesThatAlreadyFailed.has(instance);\n}\nfunction markLegacyErrorBoundaryAsFailed(instance) {\n if (legacyErrorBoundariesThatAlreadyFailed === null) {\n legacyErrorBoundariesThatAlreadyFailed = new Set([instance]);\n } else {\n legacyErrorBoundariesThatAlreadyFailed.add(instance);\n }\n}\n\nfunction prepareToThrowUncaughtError(error) {\n if (!hasUncaughtError) {\n hasUncaughtError = true;\n firstUncaughtError = error;\n }\n}\n\nvar onUncaughtError = prepareToThrowUncaughtError;\n\nfunction captureCommitPhaseErrorOnRoot(rootFiber, sourceFiber, error) {\n var errorInfo = createCapturedValue(error, sourceFiber);\n var update = createRootErrorUpdate(rootFiber, errorInfo, SyncLane);\n enqueueUpdate(rootFiber, update);\n var eventTime = requestEventTime();\n var root = markUpdateLaneFromFiberToRoot(rootFiber, SyncLane);\n\n if (root !== null) {\n markRootUpdated(root, SyncLane, eventTime);\n ensureRootIsScheduled(root, eventTime);\n schedulePendingInteractions(root, SyncLane);\n }\n}\n\nfunction captureCommitPhaseError(sourceFiber, error) {\n if (sourceFiber.tag === HostRoot) {\n // Error was thrown at the root. There is no parent, so the root\n // itself should capture it.\n captureCommitPhaseErrorOnRoot(sourceFiber, sourceFiber, error);\n return;\n }\n\n var fiber = sourceFiber.return;\n\n while (fiber !== null) {\n if (fiber.tag === HostRoot) {\n captureCommitPhaseErrorOnRoot(fiber, sourceFiber, error);\n return;\n } else if (fiber.tag === ClassComponent) {\n var ctor = fiber.type;\n var instance = fiber.stateNode;\n\n if (typeof ctor.getDerivedStateFromError === 'function' || typeof instance.componentDidCatch === 'function' && !isAlreadyFailedLegacyErrorBoundary(instance)) {\n var errorInfo = createCapturedValue(error, sourceFiber);\n var update = createClassErrorUpdate(fiber, errorInfo, SyncLane);\n enqueueUpdate(fiber, update);\n var eventTime = requestEventTime();\n var root = markUpdateLaneFromFiberToRoot(fiber, SyncLane);\n\n if (root !== null) {\n markRootUpdated(root, SyncLane, eventTime);\n ensureRootIsScheduled(root, eventTime);\n schedulePendingInteractions(root, SyncLane);\n } else {\n // This component has already been unmounted.\n // We can't schedule any follow up work for the root because the fiber is already unmounted,\n // but we can still call the log-only boundary so the error isn't swallowed.\n //\n // TODO This is only a temporary bandaid for the old reconciler fork.\n // We can delete this special case once the new fork is merged.\n if (typeof instance.componentDidCatch === 'function' && !isAlreadyFailedLegacyErrorBoundary(instance)) {\n try {\n instance.componentDidCatch(error, errorInfo);\n } catch (errorToIgnore) {// TODO Ignore this error? Rethrow it?\n // This is kind of an edge case.\n }\n }\n }\n\n return;\n }\n }\n\n fiber = fiber.return;\n }\n}\nfunction pingSuspendedRoot(root, wakeable, pingedLanes) {\n var pingCache = root.pingCache;\n\n if (pingCache !== null) {\n // The wakeable resolved, so we no longer need to memoize, because it will\n // never be thrown again.\n pingCache.delete(wakeable);\n }\n\n var eventTime = requestEventTime();\n markRootPinged(root, pingedLanes);\n\n if (workInProgressRoot === root && isSubsetOfLanes(workInProgressRootRenderLanes, pingedLanes)) {\n // Received a ping at the same priority level at which we're currently\n // rendering. We might want to restart this render. This should mirror\n // the logic of whether or not a root suspends once it completes.\n // TODO: If we're rendering sync either due to Sync, Batched or expired,\n // we should probably never restart.\n // If we're suspended with delay, or if it's a retry, we'll always suspend\n // so we can always restart.\n if (workInProgressRootExitStatus === RootSuspendedWithDelay || workInProgressRootExitStatus === RootSuspended && includesOnlyRetries(workInProgressRootRenderLanes) && now() - globalMostRecentFallbackTime < FALLBACK_THROTTLE_MS) {\n // Restart from the root.\n prepareFreshStack(root, NoLanes);\n } else {\n // Even though we can't restart right now, we might get an\n // opportunity later. So we mark this render as having a ping.\n workInProgressRootPingedLanes = mergeLanes(workInProgressRootPingedLanes, pingedLanes);\n }\n }\n\n ensureRootIsScheduled(root, eventTime);\n schedulePendingInteractions(root, pingedLanes);\n}\n\nfunction retryTimedOutBoundary(boundaryFiber, retryLane) {\n // The boundary fiber (a Suspense component or SuspenseList component)\n // previously was rendered in its fallback state. One of the promises that\n // suspended it has resolved, which means at least part of the tree was\n // likely unblocked. Try rendering again, at a new expiration time.\n if (retryLane === NoLane) {\n retryLane = requestRetryLane(boundaryFiber);\n } // TODO: Special case idle priority?\n\n\n var eventTime = requestEventTime();\n var root = markUpdateLaneFromFiberToRoot(boundaryFiber, retryLane);\n\n if (root !== null) {\n markRootUpdated(root, retryLane, eventTime);\n ensureRootIsScheduled(root, eventTime);\n schedulePendingInteractions(root, retryLane);\n }\n}\nfunction resolveRetryWakeable(boundaryFiber, wakeable) {\n var retryLane = NoLane; // Default\n\n var retryCache;\n\n {\n retryCache = boundaryFiber.stateNode;\n }\n\n if (retryCache !== null) {\n // The wakeable resolved, so we no longer need to memoize, because it will\n // never be thrown again.\n retryCache.delete(wakeable);\n }\n\n retryTimedOutBoundary(boundaryFiber, retryLane);\n} // Computes the next Just Noticeable Difference (JND) boundary.\n// The theory is that a person can't tell the difference between small differences in time.\n// Therefore, if we wait a bit longer than necessary that won't translate to a noticeable\n// difference in the experience. However, waiting for longer might mean that we can avoid\n// showing an intermediate loading state. The longer we have already waited, the harder it\n// is to tell small differences in time. Therefore, the longer we've already waited,\n// the longer we can wait additionally. At some point we have to give up though.\n// We pick a train model where the next boundary commits at a consistent schedule.\n// These particular numbers are vague estimates. We expect to adjust them based on research.\n\nfunction jnd(timeElapsed) {\n return timeElapsed < 120 ? 120 : timeElapsed < 480 ? 480 : timeElapsed < 1080 ? 1080 : timeElapsed < 1920 ? 1920 : timeElapsed < 3000 ? 3000 : timeElapsed < 4320 ? 4320 : ceil(timeElapsed / 1960) * 1960;\n}\n\nfunction checkForNestedUpdates() {\n if (nestedUpdateCount > NESTED_UPDATE_LIMIT) {\n nestedUpdateCount = 0;\n rootWithNestedUpdates = null;\n\n {\n {\n throw Error( \"Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.\" );\n }\n }\n }\n\n {\n if (nestedPassiveUpdateCount > NESTED_PASSIVE_UPDATE_LIMIT) {\n nestedPassiveUpdateCount = 0;\n\n error('Maximum update depth exceeded. This can happen when a component ' + \"calls setState inside useEffect, but useEffect either doesn't \" + 'have a dependency array, or one of the dependencies changes on ' + 'every render.');\n }\n }\n}\n\nfunction flushRenderPhaseStrictModeWarningsInDEV() {\n {\n ReactStrictModeWarnings.flushLegacyContextWarning();\n\n {\n ReactStrictModeWarnings.flushPendingUnsafeLifecycleWarnings();\n }\n }\n}\n\nvar didWarnStateUpdateForNotYetMountedComponent = null;\n\nfunction warnAboutUpdateOnNotYetMountedFiberInDEV(fiber) {\n {\n if ((executionContext & RenderContext) !== NoContext) {\n // We let the other warning about render phase updates deal with this one.\n return;\n }\n\n if (!(fiber.mode & (BlockingMode | ConcurrentMode))) {\n return;\n }\n\n var tag = fiber.tag;\n\n if (tag !== IndeterminateComponent && tag !== HostRoot && tag !== ClassComponent && tag !== FunctionComponent && tag !== ForwardRef && tag !== MemoComponent && tag !== SimpleMemoComponent && tag !== Block) {\n // Only warn for user-defined components, not internal ones like Suspense.\n return;\n } // We show the whole stack but dedupe on the top component's name because\n // the problematic code almost always lies inside that component.\n\n\n var componentName = getComponentName(fiber.type) || 'ReactComponent';\n\n if (didWarnStateUpdateForNotYetMountedComponent !== null) {\n if (didWarnStateUpdateForNotYetMountedComponent.has(componentName)) {\n return;\n }\n\n didWarnStateUpdateForNotYetMountedComponent.add(componentName);\n } else {\n didWarnStateUpdateForNotYetMountedComponent = new Set([componentName]);\n }\n\n var previousFiber = current;\n\n try {\n setCurrentFiber(fiber);\n\n error(\"Can't perform a React state update on a component that hasn't mounted yet. \" + 'This indicates that you have a side-effect in your render function that ' + 'asynchronously later calls tries to update the component. Move this work to ' + 'useEffect instead.');\n } finally {\n if (previousFiber) {\n setCurrentFiber(fiber);\n } else {\n resetCurrentFiber();\n }\n }\n }\n}\n\nvar didWarnStateUpdateForUnmountedComponent = null;\n\nfunction warnAboutUpdateOnUnmountedFiberInDEV(fiber) {\n {\n var tag = fiber.tag;\n\n if (tag !== HostRoot && tag !== ClassComponent && tag !== FunctionComponent && tag !== ForwardRef && tag !== MemoComponent && tag !== SimpleMemoComponent && tag !== Block) {\n // Only warn for user-defined components, not internal ones like Suspense.\n return;\n } // If there are pending passive effects unmounts for this Fiber,\n // we can assume that they would have prevented this update.\n\n\n if ((fiber.flags & PassiveUnmountPendingDev) !== NoFlags) {\n return;\n } // We show the whole stack but dedupe on the top component's name because\n // the problematic code almost always lies inside that component.\n\n\n var componentName = getComponentName(fiber.type) || 'ReactComponent';\n\n if (didWarnStateUpdateForUnmountedComponent !== null) {\n if (didWarnStateUpdateForUnmountedComponent.has(componentName)) {\n return;\n }\n\n didWarnStateUpdateForUnmountedComponent.add(componentName);\n } else {\n didWarnStateUpdateForUnmountedComponent = new Set([componentName]);\n }\n\n if (isFlushingPassiveEffects) ; else {\n var previousFiber = current;\n\n try {\n setCurrentFiber(fiber);\n\n error(\"Can't perform a React state update on an unmounted component. This \" + 'is a no-op, but it indicates a memory leak in your application. To ' + 'fix, cancel all subscriptions and asynchronous tasks in %s.', tag === ClassComponent ? 'the componentWillUnmount method' : 'a useEffect cleanup function');\n } finally {\n if (previousFiber) {\n setCurrentFiber(fiber);\n } else {\n resetCurrentFiber();\n }\n }\n }\n }\n}\n\nvar beginWork$1;\n\n{\n var dummyFiber = null;\n\n beginWork$1 = function (current, unitOfWork, lanes) {\n // If a component throws an error, we replay it again in a synchronously\n // dispatched event, so that the debugger will treat it as an uncaught\n // error See ReactErrorUtils for more information.\n // Before entering the begin phase, copy the work-in-progress onto a dummy\n // fiber. If beginWork throws, we'll use this to reset the state.\n var originalWorkInProgressCopy = assignFiberPropertiesInDEV(dummyFiber, unitOfWork);\n\n try {\n return beginWork(current, unitOfWork, lanes);\n } catch (originalError) {\n if (originalError !== null && typeof originalError === 'object' && typeof originalError.then === 'function') {\n // Don't replay promises. Treat everything else like an error.\n throw originalError;\n } // Keep this code in sync with handleError; any changes here must have\n // corresponding changes there.\n\n\n resetContextDependencies();\n resetHooksAfterThrow(); // Don't reset current debug fiber, since we're about to work on the\n // same fiber again.\n // Unwind the failed stack frame\n\n unwindInterruptedWork(unitOfWork); // Restore the original properties of the fiber.\n\n assignFiberPropertiesInDEV(unitOfWork, originalWorkInProgressCopy);\n\n if ( unitOfWork.mode & ProfileMode) {\n // Reset the profiler timer.\n startProfilerTimer(unitOfWork);\n } // Run beginWork again.\n\n\n invokeGuardedCallback(null, beginWork, null, current, unitOfWork, lanes);\n\n if (hasCaughtError()) {\n var replayError = clearCaughtError(); // `invokeGuardedCallback` sometimes sets an expando `_suppressLogging`.\n // Rethrow this error instead of the original one.\n\n throw replayError;\n } else {\n // This branch is reachable if the render phase is impure.\n throw originalError;\n }\n }\n };\n}\n\nvar didWarnAboutUpdateInRender = false;\nvar didWarnAboutUpdateInRenderForAnotherComponent;\n\n{\n didWarnAboutUpdateInRenderForAnotherComponent = new Set();\n}\n\nfunction warnAboutRenderPhaseUpdatesInDEV(fiber) {\n {\n if (isRendering && (executionContext & RenderContext) !== NoContext && !getIsUpdatingOpaqueValueInRenderPhaseInDEV()) {\n switch (fiber.tag) {\n case FunctionComponent:\n case ForwardRef:\n case SimpleMemoComponent:\n {\n var renderingComponentName = workInProgress && getComponentName(workInProgress.type) || 'Unknown'; // Dedupe by the rendering component because it's the one that needs to be fixed.\n\n var dedupeKey = renderingComponentName;\n\n if (!didWarnAboutUpdateInRenderForAnotherComponent.has(dedupeKey)) {\n didWarnAboutUpdateInRenderForAnotherComponent.add(dedupeKey);\n var setStateComponentName = getComponentName(fiber.type) || 'Unknown';\n\n error('Cannot update a component (`%s`) while rendering a ' + 'different component (`%s`). To locate the bad setState() call inside `%s`, ' + 'follow the stack trace as described in https://reactjs.org/link/setstate-in-render', setStateComponentName, renderingComponentName, renderingComponentName);\n }\n\n break;\n }\n\n case ClassComponent:\n {\n if (!didWarnAboutUpdateInRender) {\n error('Cannot update during an existing state transition (such as ' + 'within `render`). Render methods should be a pure ' + 'function of props and state.');\n\n didWarnAboutUpdateInRender = true;\n }\n\n break;\n }\n }\n }\n }\n} // a 'shared' variable that changes when act() opens/closes in tests.\n\n\nvar IsThisRendererActing = {\n current: false\n};\nfunction warnIfNotScopedWithMatchingAct(fiber) {\n {\n if ( IsSomeRendererActing.current === true && IsThisRendererActing.current !== true) {\n var previousFiber = current;\n\n try {\n setCurrentFiber(fiber);\n\n error(\"It looks like you're using the wrong act() around your test interactions.\\n\" + 'Be sure to use the matching version of act() corresponding to your renderer:\\n\\n' + '// for react-dom:\\n' + // Break up imports to avoid accidentally parsing them as dependencies.\n 'import {act} fr' + \"om 'react-dom/test-utils';\\n\" + '// ...\\n' + 'act(() => ...);\\n\\n' + '// for react-test-renderer:\\n' + // Break up imports to avoid accidentally parsing them as dependencies.\n 'import TestRenderer fr' + \"om react-test-renderer';\\n\" + 'const {act} = TestRenderer;\\n' + '// ...\\n' + 'act(() => ...);');\n } finally {\n if (previousFiber) {\n setCurrentFiber(fiber);\n } else {\n resetCurrentFiber();\n }\n }\n }\n }\n}\nfunction warnIfNotCurrentlyActingEffectsInDEV(fiber) {\n {\n if ( (fiber.mode & StrictMode) !== NoMode && IsSomeRendererActing.current === false && IsThisRendererActing.current === false) {\n error('An update to %s ran an effect, but was not wrapped in act(...).\\n\\n' + 'When testing, code that causes React state updates should be ' + 'wrapped into act(...):\\n\\n' + 'act(() => {\\n' + ' /* fire events that update state */\\n' + '});\\n' + '/* assert on the output */\\n\\n' + \"This ensures that you're testing the behavior the user would see \" + 'in the browser.' + ' Learn more at https://reactjs.org/link/wrap-tests-with-act', getComponentName(fiber.type));\n }\n }\n}\n\nfunction warnIfNotCurrentlyActingUpdatesInDEV(fiber) {\n {\n if ( executionContext === NoContext && IsSomeRendererActing.current === false && IsThisRendererActing.current === false) {\n var previousFiber = current;\n\n try {\n setCurrentFiber(fiber);\n\n error('An update to %s inside a test was not wrapped in act(...).\\n\\n' + 'When testing, code that causes React state updates should be ' + 'wrapped into act(...):\\n\\n' + 'act(() => {\\n' + ' /* fire events that update state */\\n' + '});\\n' + '/* assert on the output */\\n\\n' + \"This ensures that you're testing the behavior the user would see \" + 'in the browser.' + ' Learn more at https://reactjs.org/link/wrap-tests-with-act', getComponentName(fiber.type));\n } finally {\n if (previousFiber) {\n setCurrentFiber(fiber);\n } else {\n resetCurrentFiber();\n }\n }\n }\n }\n}\n\nvar warnIfNotCurrentlyActingUpdatesInDev = warnIfNotCurrentlyActingUpdatesInDEV; // In tests, we want to enforce a mocked scheduler.\n\nvar didWarnAboutUnmockedScheduler = false; // TODO Before we release concurrent mode, revisit this and decide whether a mocked\n// scheduler is the actual recommendation. The alternative could be a testing build,\n// a new lib, or whatever; we dunno just yet. This message is for early adopters\n// to get their tests right.\n\nfunction warnIfUnmockedScheduler(fiber) {\n {\n if (didWarnAboutUnmockedScheduler === false && Scheduler.unstable_flushAllWithoutAsserting === undefined) {\n if (fiber.mode & BlockingMode || fiber.mode & ConcurrentMode) {\n didWarnAboutUnmockedScheduler = true;\n\n error('In Concurrent or Sync modes, the \"scheduler\" module needs to be mocked ' + 'to guarantee consistent behaviour across tests and browsers. ' + 'For example, with jest: \\n' + // Break up requires to avoid accidentally parsing them as dependencies.\n \"jest.mock('scheduler', () => require\" + \"('scheduler/unstable_mock'));\\n\\n\" + 'For more info, visit https://reactjs.org/link/mock-scheduler');\n }\n }\n }\n}\n\nfunction computeThreadID(root, lane) {\n // Interaction threads are unique per root and expiration time.\n // NOTE: Intentionally unsound cast. All that matters is that it's a number\n // and it represents a batch of work. Could make a helper function instead,\n // but meh this is fine for now.\n return lane * 1000 + root.interactionThreadID;\n}\n\nfunction markSpawnedWork(lane) {\n\n if (spawnedWorkDuringRender === null) {\n spawnedWorkDuringRender = [lane];\n } else {\n spawnedWorkDuringRender.push(lane);\n }\n}\n\nfunction scheduleInteractions(root, lane, interactions) {\n\n if (interactions.size > 0) {\n var pendingInteractionMap = root.pendingInteractionMap;\n var pendingInteractions = pendingInteractionMap.get(lane);\n\n if (pendingInteractions != null) {\n interactions.forEach(function (interaction) {\n if (!pendingInteractions.has(interaction)) {\n // Update the pending async work count for previously unscheduled interaction.\n interaction.__count++;\n }\n\n pendingInteractions.add(interaction);\n });\n } else {\n pendingInteractionMap.set(lane, new Set(interactions)); // Update the pending async work count for the current interactions.\n\n interactions.forEach(function (interaction) {\n interaction.__count++;\n });\n }\n\n var subscriber = tracing.__subscriberRef.current;\n\n if (subscriber !== null) {\n var threadID = computeThreadID(root, lane);\n subscriber.onWorkScheduled(interactions, threadID);\n }\n }\n}\n\nfunction schedulePendingInteractions(root, lane) {\n\n scheduleInteractions(root, lane, tracing.__interactionsRef.current);\n}\n\nfunction startWorkOnPendingInteractions(root, lanes) {\n // we can accurately attribute time spent working on it, And so that cascading\n // work triggered during the render phase will be associated with it.\n\n\n var interactions = new Set();\n root.pendingInteractionMap.forEach(function (scheduledInteractions, scheduledLane) {\n if (includesSomeLane(lanes, scheduledLane)) {\n scheduledInteractions.forEach(function (interaction) {\n return interactions.add(interaction);\n });\n }\n }); // Store the current set of interactions on the FiberRoot for a few reasons:\n // We can re-use it in hot functions like performConcurrentWorkOnRoot()\n // without having to recalculate it. We will also use it in commitWork() to\n // pass to any Profiler onRender() hooks. This also provides DevTools with a\n // way to access it when the onCommitRoot() hook is called.\n\n root.memoizedInteractions = interactions;\n\n if (interactions.size > 0) {\n var subscriber = tracing.__subscriberRef.current;\n\n if (subscriber !== null) {\n var threadID = computeThreadID(root, lanes);\n\n try {\n subscriber.onWorkStarted(interactions, threadID);\n } catch (error) {\n // If the subscriber throws, rethrow it in a separate task\n scheduleCallback(ImmediatePriority$1, function () {\n throw error;\n });\n }\n }\n }\n}\n\nfunction finishPendingInteractions(root, committedLanes) {\n\n var remainingLanesAfterCommit = root.pendingLanes;\n var subscriber;\n\n try {\n subscriber = tracing.__subscriberRef.current;\n\n if (subscriber !== null && root.memoizedInteractions.size > 0) {\n // FIXME: More than one lane can finish in a single commit.\n var threadID = computeThreadID(root, committedLanes);\n subscriber.onWorkStopped(root.memoizedInteractions, threadID);\n }\n } catch (error) {\n // If the subscriber throws, rethrow it in a separate task\n scheduleCallback(ImmediatePriority$1, function () {\n throw error;\n });\n } finally {\n // Clear completed interactions from the pending Map.\n // Unless the render was suspended or cascading work was scheduled,\n // In which case– leave pending interactions until the subsequent render.\n var pendingInteractionMap = root.pendingInteractionMap;\n pendingInteractionMap.forEach(function (scheduledInteractions, lane) {\n // Only decrement the pending interaction count if we're done.\n // If there's still work at the current priority,\n // That indicates that we are waiting for suspense data.\n if (!includesSomeLane(remainingLanesAfterCommit, lane)) {\n pendingInteractionMap.delete(lane);\n scheduledInteractions.forEach(function (interaction) {\n interaction.__count--;\n\n if (subscriber !== null && interaction.__count === 0) {\n try {\n subscriber.onInteractionScheduledWorkCompleted(interaction);\n } catch (error) {\n // If the subscriber throws, rethrow it in a separate task\n scheduleCallback(ImmediatePriority$1, function () {\n throw error;\n });\n }\n }\n });\n }\n });\n }\n} // `act` testing API\n\nfunction shouldForceFlushFallbacksInDEV() {\n // Never force flush in production. This function should get stripped out.\n return actingUpdatesScopeDepth > 0;\n}\n// so we can tell if any async act() calls try to run in parallel.\n\n\nvar actingUpdatesScopeDepth = 0;\n\nfunction detachFiberAfterEffects(fiber) {\n fiber.sibling = null;\n fiber.stateNode = null;\n}\n\nvar resolveFamily = null; // $FlowFixMe Flow gets confused by a WeakSet feature check below.\n\nvar failedBoundaries = null;\nvar setRefreshHandler = function (handler) {\n {\n resolveFamily = handler;\n }\n};\nfunction resolveFunctionForHotReloading(type) {\n {\n if (resolveFamily === null) {\n // Hot reloading is disabled.\n return type;\n }\n\n var family = resolveFamily(type);\n\n if (family === undefined) {\n return type;\n } // Use the latest known implementation.\n\n\n return family.current;\n }\n}\nfunction resolveClassForHotReloading(type) {\n // No implementation differences.\n return resolveFunctionForHotReloading(type);\n}\nfunction resolveForwardRefForHotReloading(type) {\n {\n if (resolveFamily === null) {\n // Hot reloading is disabled.\n return type;\n }\n\n var family = resolveFamily(type);\n\n if (family === undefined) {\n // Check if we're dealing with a real forwardRef. Don't want to crash early.\n if (type !== null && type !== undefined && typeof type.render === 'function') {\n // ForwardRef is special because its resolved .type is an object,\n // but it's possible that we only have its inner render function in the map.\n // If that inner render function is different, we'll build a new forwardRef type.\n var currentRender = resolveFunctionForHotReloading(type.render);\n\n if (type.render !== currentRender) {\n var syntheticType = {\n $$typeof: REACT_FORWARD_REF_TYPE,\n render: currentRender\n };\n\n if (type.displayName !== undefined) {\n syntheticType.displayName = type.displayName;\n }\n\n return syntheticType;\n }\n }\n\n return type;\n } // Use the latest known implementation.\n\n\n return family.current;\n }\n}\nfunction isCompatibleFamilyForHotReloading(fiber, element) {\n {\n if (resolveFamily === null) {\n // Hot reloading is disabled.\n return false;\n }\n\n var prevType = fiber.elementType;\n var nextType = element.type; // If we got here, we know types aren't === equal.\n\n var needsCompareFamilies = false;\n var $$typeofNextType = typeof nextType === 'object' && nextType !== null ? nextType.$$typeof : null;\n\n switch (fiber.tag) {\n case ClassComponent:\n {\n if (typeof nextType === 'function') {\n needsCompareFamilies = true;\n }\n\n break;\n }\n\n case FunctionComponent:\n {\n if (typeof nextType === 'function') {\n needsCompareFamilies = true;\n } else if ($$typeofNextType === REACT_LAZY_TYPE) {\n // We don't know the inner type yet.\n // We're going to assume that the lazy inner type is stable,\n // and so it is sufficient to avoid reconciling it away.\n // We're not going to unwrap or actually use the new lazy type.\n needsCompareFamilies = true;\n }\n\n break;\n }\n\n case ForwardRef:\n {\n if ($$typeofNextType === REACT_FORWARD_REF_TYPE) {\n needsCompareFamilies = true;\n } else if ($$typeofNextType === REACT_LAZY_TYPE) {\n needsCompareFamilies = true;\n }\n\n break;\n }\n\n case MemoComponent:\n case SimpleMemoComponent:\n {\n if ($$typeofNextType === REACT_MEMO_TYPE) {\n // TODO: if it was but can no longer be simple,\n // we shouldn't set this.\n needsCompareFamilies = true;\n } else if ($$typeofNextType === REACT_LAZY_TYPE) {\n needsCompareFamilies = true;\n }\n\n break;\n }\n\n default:\n return false;\n } // Check if both types have a family and it's the same one.\n\n\n if (needsCompareFamilies) {\n // Note: memo() and forwardRef() we'll compare outer rather than inner type.\n // This means both of them need to be registered to preserve state.\n // If we unwrapped and compared the inner types for wrappers instead,\n // then we would risk falsely saying two separate memo(Foo)\n // calls are equivalent because they wrap the same Foo function.\n var prevFamily = resolveFamily(prevType);\n\n if (prevFamily !== undefined && prevFamily === resolveFamily(nextType)) {\n return true;\n }\n }\n\n return false;\n }\n}\nfunction markFailedErrorBoundaryForHotReloading(fiber) {\n {\n if (resolveFamily === null) {\n // Hot reloading is disabled.\n return;\n }\n\n if (typeof WeakSet !== 'function') {\n return;\n }\n\n if (failedBoundaries === null) {\n failedBoundaries = new WeakSet();\n }\n\n failedBoundaries.add(fiber);\n }\n}\nvar scheduleRefresh = function (root, update) {\n {\n if (resolveFamily === null) {\n // Hot reloading is disabled.\n return;\n }\n\n var staleFamilies = update.staleFamilies,\n updatedFamilies = update.updatedFamilies;\n flushPassiveEffects();\n flushSync(function () {\n scheduleFibersWithFamiliesRecursively(root.current, updatedFamilies, staleFamilies);\n });\n }\n};\nvar scheduleRoot = function (root, element) {\n {\n if (root.context !== emptyContextObject) {\n // Super edge case: root has a legacy _renderSubtree context\n // but we don't know the parentComponent so we can't pass it.\n // Just ignore. We'll delete this with _renderSubtree code path later.\n return;\n }\n\n flushPassiveEffects();\n flushSync(function () {\n updateContainer(element, root, null, null);\n });\n }\n};\n\nfunction scheduleFibersWithFamiliesRecursively(fiber, updatedFamilies, staleFamilies) {\n {\n var alternate = fiber.alternate,\n child = fiber.child,\n sibling = fiber.sibling,\n tag = fiber.tag,\n type = fiber.type;\n var candidateType = null;\n\n switch (tag) {\n case FunctionComponent:\n case SimpleMemoComponent:\n case ClassComponent:\n candidateType = type;\n break;\n\n case ForwardRef:\n candidateType = type.render;\n break;\n }\n\n if (resolveFamily === null) {\n throw new Error('Expected resolveFamily to be set during hot reload.');\n }\n\n var needsRender = false;\n var needsRemount = false;\n\n if (candidateType !== null) {\n var family = resolveFamily(candidateType);\n\n if (family !== undefined) {\n if (staleFamilies.has(family)) {\n needsRemount = true;\n } else if (updatedFamilies.has(family)) {\n if (tag === ClassComponent) {\n needsRemount = true;\n } else {\n needsRender = true;\n }\n }\n }\n }\n\n if (failedBoundaries !== null) {\n if (failedBoundaries.has(fiber) || alternate !== null && failedBoundaries.has(alternate)) {\n needsRemount = true;\n }\n }\n\n if (needsRemount) {\n fiber._debugNeedsRemount = true;\n }\n\n if (needsRemount || needsRender) {\n scheduleUpdateOnFiber(fiber, SyncLane, NoTimestamp);\n }\n\n if (child !== null && !needsRemount) {\n scheduleFibersWithFamiliesRecursively(child, updatedFamilies, staleFamilies);\n }\n\n if (sibling !== null) {\n scheduleFibersWithFamiliesRecursively(sibling, updatedFamilies, staleFamilies);\n }\n }\n}\n\nvar findHostInstancesForRefresh = function (root, families) {\n {\n var hostInstances = new Set();\n var types = new Set(families.map(function (family) {\n return family.current;\n }));\n findHostInstancesForMatchingFibersRecursively(root.current, types, hostInstances);\n return hostInstances;\n }\n};\n\nfunction findHostInstancesForMatchingFibersRecursively(fiber, types, hostInstances) {\n {\n var child = fiber.child,\n sibling = fiber.sibling,\n tag = fiber.tag,\n type = fiber.type;\n var candidateType = null;\n\n switch (tag) {\n case FunctionComponent:\n case SimpleMemoComponent:\n case ClassComponent:\n candidateType = type;\n break;\n\n case ForwardRef:\n candidateType = type.render;\n break;\n }\n\n var didMatch = false;\n\n if (candidateType !== null) {\n if (types.has(candidateType)) {\n didMatch = true;\n }\n }\n\n if (didMatch) {\n // We have a match. This only drills down to the closest host components.\n // There's no need to search deeper because for the purpose of giving\n // visual feedback, \"flashing\" outermost parent rectangles is sufficient.\n findHostInstancesForFiberShallowly(fiber, hostInstances);\n } else {\n // If there's no match, maybe there will be one further down in the child tree.\n if (child !== null) {\n findHostInstancesForMatchingFibersRecursively(child, types, hostInstances);\n }\n }\n\n if (sibling !== null) {\n findHostInstancesForMatchingFibersRecursively(sibling, types, hostInstances);\n }\n }\n}\n\nfunction findHostInstancesForFiberShallowly(fiber, hostInstances) {\n {\n var foundHostInstances = findChildHostInstancesForFiberShallowly(fiber, hostInstances);\n\n if (foundHostInstances) {\n return;\n } // If we didn't find any host children, fallback to closest host parent.\n\n\n var node = fiber;\n\n while (true) {\n switch (node.tag) {\n case HostComponent:\n hostInstances.add(node.stateNode);\n return;\n\n case HostPortal:\n hostInstances.add(node.stateNode.containerInfo);\n return;\n\n case HostRoot:\n hostInstances.add(node.stateNode.containerInfo);\n return;\n }\n\n if (node.return === null) {\n throw new Error('Expected to reach root first.');\n }\n\n node = node.return;\n }\n }\n}\n\nfunction findChildHostInstancesForFiberShallowly(fiber, hostInstances) {\n {\n var node = fiber;\n var foundHostInstances = false;\n\n while (true) {\n if (node.tag === HostComponent) {\n // We got a match.\n foundHostInstances = true;\n hostInstances.add(node.stateNode); // There may still be more, so keep searching.\n } else if (node.child !== null) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n\n if (node === fiber) {\n return foundHostInstances;\n }\n\n while (node.sibling === null) {\n if (node.return === null || node.return === fiber) {\n return foundHostInstances;\n }\n\n node = node.return;\n }\n\n node.sibling.return = node.return;\n node = node.sibling;\n }\n }\n\n return false;\n}\n\nvar hasBadMapPolyfill;\n\n{\n hasBadMapPolyfill = false;\n\n try {\n var nonExtensibleObject = Object.preventExtensions({});\n /* eslint-disable no-new */\n\n new Map([[nonExtensibleObject, null]]);\n new Set([nonExtensibleObject]);\n /* eslint-enable no-new */\n } catch (e) {\n // TODO: Consider warning about bad polyfills\n hasBadMapPolyfill = true;\n }\n}\n\nvar debugCounter = 1;\n\nfunction FiberNode(tag, pendingProps, key, mode) {\n // Instance\n this.tag = tag;\n this.key = key;\n this.elementType = null;\n this.type = null;\n this.stateNode = null; // Fiber\n\n this.return = null;\n this.child = null;\n this.sibling = null;\n this.index = 0;\n this.ref = null;\n this.pendingProps = pendingProps;\n this.memoizedProps = null;\n this.updateQueue = null;\n this.memoizedState = null;\n this.dependencies = null;\n this.mode = mode; // Effects\n\n this.flags = NoFlags;\n this.nextEffect = null;\n this.firstEffect = null;\n this.lastEffect = null;\n this.lanes = NoLanes;\n this.childLanes = NoLanes;\n this.alternate = null;\n\n {\n // Note: The following is done to avoid a v8 performance cliff.\n //\n // Initializing the fields below to smis and later updating them with\n // double values will cause Fibers to end up having separate shapes.\n // This behavior/bug has something to do with Object.preventExtension().\n // Fortunately this only impacts DEV builds.\n // Unfortunately it makes React unusably slow for some applications.\n // To work around this, initialize the fields below with doubles.\n //\n // Learn more about this here:\n // https://github.com/facebook/react/issues/14365\n // https://bugs.chromium.org/p/v8/issues/detail?id=8538\n this.actualDuration = Number.NaN;\n this.actualStartTime = Number.NaN;\n this.selfBaseDuration = Number.NaN;\n this.treeBaseDuration = Number.NaN; // It's okay to replace the initial doubles with smis after initialization.\n // This won't trigger the performance cliff mentioned above,\n // and it simplifies other profiler code (including DevTools).\n\n this.actualDuration = 0;\n this.actualStartTime = -1;\n this.selfBaseDuration = 0;\n this.treeBaseDuration = 0;\n }\n\n {\n // This isn't directly used but is handy for debugging internals:\n this._debugID = debugCounter++;\n this._debugSource = null;\n this._debugOwner = null;\n this._debugNeedsRemount = false;\n this._debugHookTypes = null;\n\n if (!hasBadMapPolyfill && typeof Object.preventExtensions === 'function') {\n Object.preventExtensions(this);\n }\n }\n} // This is a constructor function, rather than a POJO constructor, still\n// please ensure we do the following:\n// 1) Nobody should add any instance methods on this. Instance methods can be\n// more difficult to predict when they get optimized and they are almost\n// never inlined properly in static compilers.\n// 2) Nobody should rely on `instanceof Fiber` for type testing. We should\n// always know when it is a fiber.\n// 3) We might want to experiment with using numeric keys since they are easier\n// to optimize in a non-JIT environment.\n// 4) We can easily go from a constructor to a createFiber object literal if that\n// is faster.\n// 5) It should be easy to port this to a C struct and keep a C implementation\n// compatible.\n\n\nvar createFiber = function (tag, pendingProps, key, mode) {\n // $FlowFixMe: the shapes are exact here but Flow doesn't like constructors\n return new FiberNode(tag, pendingProps, key, mode);\n};\n\nfunction shouldConstruct$1(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nfunction isSimpleFunctionComponent(type) {\n return typeof type === 'function' && !shouldConstruct$1(type) && type.defaultProps === undefined;\n}\nfunction resolveLazyComponentTag(Component) {\n if (typeof Component === 'function') {\n return shouldConstruct$1(Component) ? ClassComponent : FunctionComponent;\n } else if (Component !== undefined && Component !== null) {\n var $$typeof = Component.$$typeof;\n\n if ($$typeof === REACT_FORWARD_REF_TYPE) {\n return ForwardRef;\n }\n\n if ($$typeof === REACT_MEMO_TYPE) {\n return MemoComponent;\n }\n }\n\n return IndeterminateComponent;\n} // This is used to create an alternate fiber to do work on.\n\nfunction createWorkInProgress(current, pendingProps) {\n var workInProgress = current.alternate;\n\n if (workInProgress === null) {\n // We use a double buffering pooling technique because we know that we'll\n // only ever need at most two versions of a tree. We pool the \"other\" unused\n // node that we're free to reuse. This is lazily created to avoid allocating\n // extra objects for things that are never updated. It also allow us to\n // reclaim the extra memory if needed.\n workInProgress = createFiber(current.tag, pendingProps, current.key, current.mode);\n workInProgress.elementType = current.elementType;\n workInProgress.type = current.type;\n workInProgress.stateNode = current.stateNode;\n\n {\n // DEV-only fields\n workInProgress._debugID = current._debugID;\n workInProgress._debugSource = current._debugSource;\n workInProgress._debugOwner = current._debugOwner;\n workInProgress._debugHookTypes = current._debugHookTypes;\n }\n\n workInProgress.alternate = current;\n current.alternate = workInProgress;\n } else {\n workInProgress.pendingProps = pendingProps; // Needed because Blocks store data on type.\n\n workInProgress.type = current.type; // We already have an alternate.\n // Reset the effect tag.\n\n workInProgress.flags = NoFlags; // The effect list is no longer valid.\n\n workInProgress.nextEffect = null;\n workInProgress.firstEffect = null;\n workInProgress.lastEffect = null;\n\n {\n // We intentionally reset, rather than copy, actualDuration & actualStartTime.\n // This prevents time from endlessly accumulating in new commits.\n // This has the downside of resetting values for different priority renders,\n // But works for yielding (the common case) and should support resuming.\n workInProgress.actualDuration = 0;\n workInProgress.actualStartTime = -1;\n }\n }\n\n workInProgress.childLanes = current.childLanes;\n workInProgress.lanes = current.lanes;\n workInProgress.child = current.child;\n workInProgress.memoizedProps = current.memoizedProps;\n workInProgress.memoizedState = current.memoizedState;\n workInProgress.updateQueue = current.updateQueue; // Clone the dependencies object. This is mutated during the render phase, so\n // it cannot be shared with the current fiber.\n\n var currentDependencies = current.dependencies;\n workInProgress.dependencies = currentDependencies === null ? null : {\n lanes: currentDependencies.lanes,\n firstContext: currentDependencies.firstContext\n }; // These will be overridden during the parent's reconciliation\n\n workInProgress.sibling = current.sibling;\n workInProgress.index = current.index;\n workInProgress.ref = current.ref;\n\n {\n workInProgress.selfBaseDuration = current.selfBaseDuration;\n workInProgress.treeBaseDuration = current.treeBaseDuration;\n }\n\n {\n workInProgress._debugNeedsRemount = current._debugNeedsRemount;\n\n switch (workInProgress.tag) {\n case IndeterminateComponent:\n case FunctionComponent:\n case SimpleMemoComponent:\n workInProgress.type = resolveFunctionForHotReloading(current.type);\n break;\n\n case ClassComponent:\n workInProgress.type = resolveClassForHotReloading(current.type);\n break;\n\n case ForwardRef:\n workInProgress.type = resolveForwardRefForHotReloading(current.type);\n break;\n }\n }\n\n return workInProgress;\n} // Used to reuse a Fiber for a second pass.\n\nfunction resetWorkInProgress(workInProgress, renderLanes) {\n // This resets the Fiber to what createFiber or createWorkInProgress would\n // have set the values to before during the first pass. Ideally this wouldn't\n // be necessary but unfortunately many code paths reads from the workInProgress\n // when they should be reading from current and writing to workInProgress.\n // We assume pendingProps, index, key, ref, return are still untouched to\n // avoid doing another reconciliation.\n // Reset the effect tag but keep any Placement tags, since that's something\n // that child fiber is setting, not the reconciliation.\n workInProgress.flags &= Placement; // The effect list is no longer valid.\n\n workInProgress.nextEffect = null;\n workInProgress.firstEffect = null;\n workInProgress.lastEffect = null;\n var current = workInProgress.alternate;\n\n if (current === null) {\n // Reset to createFiber's initial values.\n workInProgress.childLanes = NoLanes;\n workInProgress.lanes = renderLanes;\n workInProgress.child = null;\n workInProgress.memoizedProps = null;\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n workInProgress.dependencies = null;\n workInProgress.stateNode = null;\n\n {\n // Note: We don't reset the actualTime counts. It's useful to accumulate\n // actual time across multiple render passes.\n workInProgress.selfBaseDuration = 0;\n workInProgress.treeBaseDuration = 0;\n }\n } else {\n // Reset to the cloned values that createWorkInProgress would've.\n workInProgress.childLanes = current.childLanes;\n workInProgress.lanes = current.lanes;\n workInProgress.child = current.child;\n workInProgress.memoizedProps = current.memoizedProps;\n workInProgress.memoizedState = current.memoizedState;\n workInProgress.updateQueue = current.updateQueue; // Needed because Blocks store data on type.\n\n workInProgress.type = current.type; // Clone the dependencies object. This is mutated during the render phase, so\n // it cannot be shared with the current fiber.\n\n var currentDependencies = current.dependencies;\n workInProgress.dependencies = currentDependencies === null ? null : {\n lanes: currentDependencies.lanes,\n firstContext: currentDependencies.firstContext\n };\n\n {\n // Note: We don't reset the actualTime counts. It's useful to accumulate\n // actual time across multiple render passes.\n workInProgress.selfBaseDuration = current.selfBaseDuration;\n workInProgress.treeBaseDuration = current.treeBaseDuration;\n }\n }\n\n return workInProgress;\n}\nfunction createHostRootFiber(tag) {\n var mode;\n\n if (tag === ConcurrentRoot) {\n mode = ConcurrentMode | BlockingMode | StrictMode;\n } else if (tag === BlockingRoot) {\n mode = BlockingMode | StrictMode;\n } else {\n mode = NoMode;\n }\n\n if ( isDevToolsPresent) {\n // Always collect profile timings when DevTools are present.\n // This enables DevTools to start capturing timing at any point–\n // Without some nodes in the tree having empty base times.\n mode |= ProfileMode;\n }\n\n return createFiber(HostRoot, null, null, mode);\n}\nfunction createFiberFromTypeAndProps(type, // React$ElementType\nkey, pendingProps, owner, mode, lanes) {\n var fiberTag = IndeterminateComponent; // The resolved type is set if we know what the final type will be. I.e. it's not lazy.\n\n var resolvedType = type;\n\n if (typeof type === 'function') {\n if (shouldConstruct$1(type)) {\n fiberTag = ClassComponent;\n\n {\n resolvedType = resolveClassForHotReloading(resolvedType);\n }\n } else {\n {\n resolvedType = resolveFunctionForHotReloading(resolvedType);\n }\n }\n } else if (typeof type === 'string') {\n fiberTag = HostComponent;\n } else {\n getTag: switch (type) {\n case REACT_FRAGMENT_TYPE:\n return createFiberFromFragment(pendingProps.children, mode, lanes, key);\n\n case REACT_DEBUG_TRACING_MODE_TYPE:\n fiberTag = Mode;\n mode |= DebugTracingMode;\n break;\n\n case REACT_STRICT_MODE_TYPE:\n fiberTag = Mode;\n mode |= StrictMode;\n break;\n\n case REACT_PROFILER_TYPE:\n return createFiberFromProfiler(pendingProps, mode, lanes, key);\n\n case REACT_SUSPENSE_TYPE:\n return createFiberFromSuspense(pendingProps, mode, lanes, key);\n\n case REACT_SUSPENSE_LIST_TYPE:\n return createFiberFromSuspenseList(pendingProps, mode, lanes, key);\n\n case REACT_OFFSCREEN_TYPE:\n return createFiberFromOffscreen(pendingProps, mode, lanes, key);\n\n case REACT_LEGACY_HIDDEN_TYPE:\n return createFiberFromLegacyHidden(pendingProps, mode, lanes, key);\n\n case REACT_SCOPE_TYPE:\n\n // eslint-disable-next-line no-fallthrough\n\n default:\n {\n if (typeof type === 'object' && type !== null) {\n switch (type.$$typeof) {\n case REACT_PROVIDER_TYPE:\n fiberTag = ContextProvider;\n break getTag;\n\n case REACT_CONTEXT_TYPE:\n // This is a consumer\n fiberTag = ContextConsumer;\n break getTag;\n\n case REACT_FORWARD_REF_TYPE:\n fiberTag = ForwardRef;\n\n {\n resolvedType = resolveForwardRefForHotReloading(resolvedType);\n }\n\n break getTag;\n\n case REACT_MEMO_TYPE:\n fiberTag = MemoComponent;\n break getTag;\n\n case REACT_LAZY_TYPE:\n fiberTag = LazyComponent;\n resolvedType = null;\n break getTag;\n\n case REACT_BLOCK_TYPE:\n fiberTag = Block;\n break getTag;\n }\n }\n\n var info = '';\n\n {\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and \" + 'named imports.';\n }\n\n var ownerName = owner ? getComponentName(owner.type) : null;\n\n if (ownerName) {\n info += '\\n\\nCheck the render method of `' + ownerName + '`.';\n }\n }\n\n {\n {\n throw Error( \"Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: \" + (type == null ? type : typeof type) + \".\" + info );\n }\n }\n }\n }\n }\n\n var fiber = createFiber(fiberTag, pendingProps, key, mode);\n fiber.elementType = type;\n fiber.type = resolvedType;\n fiber.lanes = lanes;\n\n {\n fiber._debugOwner = owner;\n }\n\n return fiber;\n}\nfunction createFiberFromElement(element, mode, lanes) {\n var owner = null;\n\n {\n owner = element._owner;\n }\n\n var type = element.type;\n var key = element.key;\n var pendingProps = element.props;\n var fiber = createFiberFromTypeAndProps(type, key, pendingProps, owner, mode, lanes);\n\n {\n fiber._debugSource = element._source;\n fiber._debugOwner = element._owner;\n }\n\n return fiber;\n}\nfunction createFiberFromFragment(elements, mode, lanes, key) {\n var fiber = createFiber(Fragment, elements, key, mode);\n fiber.lanes = lanes;\n return fiber;\n}\n\nfunction createFiberFromProfiler(pendingProps, mode, lanes, key) {\n {\n if (typeof pendingProps.id !== 'string') {\n error('Profiler must specify an \"id\" as a prop');\n }\n }\n\n var fiber = createFiber(Profiler, pendingProps, key, mode | ProfileMode); // TODO: The Profiler fiber shouldn't have a type. It has a tag.\n\n fiber.elementType = REACT_PROFILER_TYPE;\n fiber.type = REACT_PROFILER_TYPE;\n fiber.lanes = lanes;\n\n {\n fiber.stateNode = {\n effectDuration: 0,\n passiveEffectDuration: 0\n };\n }\n\n return fiber;\n}\n\nfunction createFiberFromSuspense(pendingProps, mode, lanes, key) {\n var fiber = createFiber(SuspenseComponent, pendingProps, key, mode); // TODO: The SuspenseComponent fiber shouldn't have a type. It has a tag.\n // This needs to be fixed in getComponentName so that it relies on the tag\n // instead.\n\n fiber.type = REACT_SUSPENSE_TYPE;\n fiber.elementType = REACT_SUSPENSE_TYPE;\n fiber.lanes = lanes;\n return fiber;\n}\nfunction createFiberFromSuspenseList(pendingProps, mode, lanes, key) {\n var fiber = createFiber(SuspenseListComponent, pendingProps, key, mode);\n\n {\n // TODO: The SuspenseListComponent fiber shouldn't have a type. It has a tag.\n // This needs to be fixed in getComponentName so that it relies on the tag\n // instead.\n fiber.type = REACT_SUSPENSE_LIST_TYPE;\n }\n\n fiber.elementType = REACT_SUSPENSE_LIST_TYPE;\n fiber.lanes = lanes;\n return fiber;\n}\nfunction createFiberFromOffscreen(pendingProps, mode, lanes, key) {\n var fiber = createFiber(OffscreenComponent, pendingProps, key, mode); // TODO: The OffscreenComponent fiber shouldn't have a type. It has a tag.\n // This needs to be fixed in getComponentName so that it relies on the tag\n // instead.\n\n {\n fiber.type = REACT_OFFSCREEN_TYPE;\n }\n\n fiber.elementType = REACT_OFFSCREEN_TYPE;\n fiber.lanes = lanes;\n return fiber;\n}\nfunction createFiberFromLegacyHidden(pendingProps, mode, lanes, key) {\n var fiber = createFiber(LegacyHiddenComponent, pendingProps, key, mode); // TODO: The LegacyHidden fiber shouldn't have a type. It has a tag.\n // This needs to be fixed in getComponentName so that it relies on the tag\n // instead.\n\n {\n fiber.type = REACT_LEGACY_HIDDEN_TYPE;\n }\n\n fiber.elementType = REACT_LEGACY_HIDDEN_TYPE;\n fiber.lanes = lanes;\n return fiber;\n}\nfunction createFiberFromText(content, mode, lanes) {\n var fiber = createFiber(HostText, content, null, mode);\n fiber.lanes = lanes;\n return fiber;\n}\nfunction createFiberFromHostInstanceForDeletion() {\n var fiber = createFiber(HostComponent, null, null, NoMode); // TODO: These should not need a type.\n\n fiber.elementType = 'DELETED';\n fiber.type = 'DELETED';\n return fiber;\n}\nfunction createFiberFromPortal(portal, mode, lanes) {\n var pendingProps = portal.children !== null ? portal.children : [];\n var fiber = createFiber(HostPortal, pendingProps, portal.key, mode);\n fiber.lanes = lanes;\n fiber.stateNode = {\n containerInfo: portal.containerInfo,\n pendingChildren: null,\n // Used by persistent updates\n implementation: portal.implementation\n };\n return fiber;\n} // Used for stashing WIP properties to replay failed work in DEV.\n\nfunction assignFiberPropertiesInDEV(target, source) {\n if (target === null) {\n // This Fiber's initial properties will always be overwritten.\n // We only use a Fiber to ensure the same hidden class so DEV isn't slow.\n target = createFiber(IndeterminateComponent, null, null, NoMode);\n } // This is intentionally written as a list of all properties.\n // We tried to use Object.assign() instead but this is called in\n // the hottest path, and Object.assign() was too slow:\n // https://github.com/facebook/react/issues/12502\n // This code is DEV-only so size is not a concern.\n\n\n target.tag = source.tag;\n target.key = source.key;\n target.elementType = source.elementType;\n target.type = source.type;\n target.stateNode = source.stateNode;\n target.return = source.return;\n target.child = source.child;\n target.sibling = source.sibling;\n target.index = source.index;\n target.ref = source.ref;\n target.pendingProps = source.pendingProps;\n target.memoizedProps = source.memoizedProps;\n target.updateQueue = source.updateQueue;\n target.memoizedState = source.memoizedState;\n target.dependencies = source.dependencies;\n target.mode = source.mode;\n target.flags = source.flags;\n target.nextEffect = source.nextEffect;\n target.firstEffect = source.firstEffect;\n target.lastEffect = source.lastEffect;\n target.lanes = source.lanes;\n target.childLanes = source.childLanes;\n target.alternate = source.alternate;\n\n {\n target.actualDuration = source.actualDuration;\n target.actualStartTime = source.actualStartTime;\n target.selfBaseDuration = source.selfBaseDuration;\n target.treeBaseDuration = source.treeBaseDuration;\n }\n\n target._debugID = source._debugID;\n target._debugSource = source._debugSource;\n target._debugOwner = source._debugOwner;\n target._debugNeedsRemount = source._debugNeedsRemount;\n target._debugHookTypes = source._debugHookTypes;\n return target;\n}\n\nfunction FiberRootNode(containerInfo, tag, hydrate) {\n this.tag = tag;\n this.containerInfo = containerInfo;\n this.pendingChildren = null;\n this.current = null;\n this.pingCache = null;\n this.finishedWork = null;\n this.timeoutHandle = noTimeout;\n this.context = null;\n this.pendingContext = null;\n this.hydrate = hydrate;\n this.callbackNode = null;\n this.callbackPriority = NoLanePriority;\n this.eventTimes = createLaneMap(NoLanes);\n this.expirationTimes = createLaneMap(NoTimestamp);\n this.pendingLanes = NoLanes;\n this.suspendedLanes = NoLanes;\n this.pingedLanes = NoLanes;\n this.expiredLanes = NoLanes;\n this.mutableReadLanes = NoLanes;\n this.finishedLanes = NoLanes;\n this.entangledLanes = NoLanes;\n this.entanglements = createLaneMap(NoLanes);\n\n {\n this.mutableSourceEagerHydrationData = null;\n }\n\n {\n this.interactionThreadID = tracing.unstable_getThreadID();\n this.memoizedInteractions = new Set();\n this.pendingInteractionMap = new Map();\n }\n\n {\n switch (tag) {\n case BlockingRoot:\n this._debugRootType = 'createBlockingRoot()';\n break;\n\n case ConcurrentRoot:\n this._debugRootType = 'createRoot()';\n break;\n\n case LegacyRoot:\n this._debugRootType = 'createLegacyRoot()';\n break;\n }\n }\n}\n\nfunction createFiberRoot(containerInfo, tag, hydrate, hydrationCallbacks) {\n var root = new FiberRootNode(containerInfo, tag, hydrate);\n // stateNode is any.\n\n\n var uninitializedFiber = createHostRootFiber(tag);\n root.current = uninitializedFiber;\n uninitializedFiber.stateNode = root;\n initializeUpdateQueue(uninitializedFiber);\n return root;\n}\n\n// This ensures that the version used for server rendering matches the one\n// that is eventually read during hydration.\n// If they don't match there's a potential tear and a full deopt render is required.\n\nfunction registerMutableSourceForHydration(root, mutableSource) {\n var getVersion = mutableSource._getVersion;\n var version = getVersion(mutableSource._source); // TODO Clear this data once all pending hydration work is finished.\n // Retaining it forever may interfere with GC.\n\n if (root.mutableSourceEagerHydrationData == null) {\n root.mutableSourceEagerHydrationData = [mutableSource, version];\n } else {\n root.mutableSourceEagerHydrationData.push(mutableSource, version);\n }\n}\n\nfunction createPortal(children, containerInfo, // TODO: figure out the API for cross-renderer implementation.\nimplementation) {\n var key = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n return {\n // This tag allow us to uniquely identify this as a React Portal\n $$typeof: REACT_PORTAL_TYPE,\n key: key == null ? null : '' + key,\n children: children,\n containerInfo: containerInfo,\n implementation: implementation\n };\n}\n\nvar didWarnAboutNestedUpdates;\nvar didWarnAboutFindNodeInStrictMode;\n\n{\n didWarnAboutNestedUpdates = false;\n didWarnAboutFindNodeInStrictMode = {};\n}\n\nfunction getContextForSubtree(parentComponent) {\n if (!parentComponent) {\n return emptyContextObject;\n }\n\n var fiber = get(parentComponent);\n var parentContext = findCurrentUnmaskedContext(fiber);\n\n if (fiber.tag === ClassComponent) {\n var Component = fiber.type;\n\n if (isContextProvider(Component)) {\n return processChildContext(fiber, Component, parentContext);\n }\n }\n\n return parentContext;\n}\n\nfunction findHostInstanceWithWarning(component, methodName) {\n {\n var fiber = get(component);\n\n if (fiber === undefined) {\n if (typeof component.render === 'function') {\n {\n {\n throw Error( \"Unable to find node on an unmounted component.\" );\n }\n }\n } else {\n {\n {\n throw Error( \"Argument appears to not be a ReactComponent. Keys: \" + Object.keys(component) );\n }\n }\n }\n }\n\n var hostFiber = findCurrentHostFiber(fiber);\n\n if (hostFiber === null) {\n return null;\n }\n\n if (hostFiber.mode & StrictMode) {\n var componentName = getComponentName(fiber.type) || 'Component';\n\n if (!didWarnAboutFindNodeInStrictMode[componentName]) {\n didWarnAboutFindNodeInStrictMode[componentName] = true;\n var previousFiber = current;\n\n try {\n setCurrentFiber(hostFiber);\n\n if (fiber.mode & StrictMode) {\n error('%s is deprecated in StrictMode. ' + '%s was passed an instance of %s which is inside StrictMode. ' + 'Instead, add a ref directly to the element you want to reference. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-find-node', methodName, methodName, componentName);\n } else {\n error('%s is deprecated in StrictMode. ' + '%s was passed an instance of %s which renders StrictMode children. ' + 'Instead, add a ref directly to the element you want to reference. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-find-node', methodName, methodName, componentName);\n }\n } finally {\n // Ideally this should reset to previous but this shouldn't be called in\n // render and there's another warning for that anyway.\n if (previousFiber) {\n setCurrentFiber(previousFiber);\n } else {\n resetCurrentFiber();\n }\n }\n }\n }\n\n return hostFiber.stateNode;\n }\n}\n\nfunction createContainer(containerInfo, tag, hydrate, hydrationCallbacks) {\n return createFiberRoot(containerInfo, tag, hydrate);\n}\nfunction updateContainer(element, container, parentComponent, callback) {\n {\n onScheduleRoot(container, element);\n }\n\n var current$1 = container.current;\n var eventTime = requestEventTime();\n\n {\n // $FlowExpectedError - jest isn't a global, and isn't recognized outside of tests\n if ('undefined' !== typeof jest) {\n warnIfUnmockedScheduler(current$1);\n warnIfNotScopedWithMatchingAct(current$1);\n }\n }\n\n var lane = requestUpdateLane(current$1);\n\n var context = getContextForSubtree(parentComponent);\n\n if (container.context === null) {\n container.context = context;\n } else {\n container.pendingContext = context;\n }\n\n {\n if (isRendering && current !== null && !didWarnAboutNestedUpdates) {\n didWarnAboutNestedUpdates = true;\n\n error('Render methods should be a pure function of props and state; ' + 'triggering nested component updates from render is not allowed. ' + 'If necessary, trigger nested updates in componentDidUpdate.\\n\\n' + 'Check the render method of %s.', getComponentName(current.type) || 'Unknown');\n }\n }\n\n var update = createUpdate(eventTime, lane); // Caution: React DevTools currently depends on this property\n // being called \"element\".\n\n update.payload = {\n element: element\n };\n callback = callback === undefined ? null : callback;\n\n if (callback !== null) {\n {\n if (typeof callback !== 'function') {\n error('render(...): Expected the last optional `callback` argument to be a ' + 'function. Instead received: %s.', callback);\n }\n }\n\n update.callback = callback;\n }\n\n enqueueUpdate(current$1, update);\n scheduleUpdateOnFiber(current$1, lane, eventTime);\n return lane;\n}\nfunction getPublicRootInstance(container) {\n var containerFiber = container.current;\n\n if (!containerFiber.child) {\n return null;\n }\n\n switch (containerFiber.child.tag) {\n case HostComponent:\n return getPublicInstance(containerFiber.child.stateNode);\n\n default:\n return containerFiber.child.stateNode;\n }\n}\n\nfunction markRetryLaneImpl(fiber, retryLane) {\n var suspenseState = fiber.memoizedState;\n\n if (suspenseState !== null && suspenseState.dehydrated !== null) {\n suspenseState.retryLane = higherPriorityLane(suspenseState.retryLane, retryLane);\n }\n} // Increases the priority of thennables when they resolve within this boundary.\n\n\nfunction markRetryLaneIfNotHydrated(fiber, retryLane) {\n markRetryLaneImpl(fiber, retryLane);\n var alternate = fiber.alternate;\n\n if (alternate) {\n markRetryLaneImpl(alternate, retryLane);\n }\n}\n\nfunction attemptUserBlockingHydration$1(fiber) {\n if (fiber.tag !== SuspenseComponent) {\n // We ignore HostRoots here because we can't increase\n // their priority and they should not suspend on I/O,\n // since you have to wrap anything that might suspend in\n // Suspense.\n return;\n }\n\n var eventTime = requestEventTime();\n var lane = InputDiscreteHydrationLane;\n scheduleUpdateOnFiber(fiber, lane, eventTime);\n markRetryLaneIfNotHydrated(fiber, lane);\n}\nfunction attemptContinuousHydration$1(fiber) {\n if (fiber.tag !== SuspenseComponent) {\n // We ignore HostRoots here because we can't increase\n // their priority and they should not suspend on I/O,\n // since you have to wrap anything that might suspend in\n // Suspense.\n return;\n }\n\n var eventTime = requestEventTime();\n var lane = SelectiveHydrationLane;\n scheduleUpdateOnFiber(fiber, lane, eventTime);\n markRetryLaneIfNotHydrated(fiber, lane);\n}\nfunction attemptHydrationAtCurrentPriority$1(fiber) {\n if (fiber.tag !== SuspenseComponent) {\n // We ignore HostRoots here because we can't increase\n // their priority other than synchronously flush it.\n return;\n }\n\n var eventTime = requestEventTime();\n var lane = requestUpdateLane(fiber);\n scheduleUpdateOnFiber(fiber, lane, eventTime);\n markRetryLaneIfNotHydrated(fiber, lane);\n}\nfunction runWithPriority$2(priority, fn) {\n\n try {\n setCurrentUpdateLanePriority(priority);\n return fn();\n } finally {\n }\n}\nfunction findHostInstanceWithNoPortals(fiber) {\n var hostFiber = findCurrentHostFiberWithNoPortals(fiber);\n\n if (hostFiber === null) {\n return null;\n }\n\n if (hostFiber.tag === FundamentalComponent) {\n return hostFiber.stateNode.instance;\n }\n\n return hostFiber.stateNode;\n}\n\nvar shouldSuspendImpl = function (fiber) {\n return false;\n};\n\nfunction shouldSuspend(fiber) {\n return shouldSuspendImpl(fiber);\n}\nvar overrideHookState = null;\nvar overrideHookStateDeletePath = null;\nvar overrideHookStateRenamePath = null;\nvar overrideProps = null;\nvar overridePropsDeletePath = null;\nvar overridePropsRenamePath = null;\nvar scheduleUpdate = null;\nvar setSuspenseHandler = null;\n\n{\n var copyWithDeleteImpl = function (obj, path, index) {\n var key = path[index];\n var updated = Array.isArray(obj) ? obj.slice() : _assign({}, obj);\n\n if (index + 1 === path.length) {\n if (Array.isArray(updated)) {\n updated.splice(key, 1);\n } else {\n delete updated[key];\n }\n\n return updated;\n } // $FlowFixMe number or string is fine here\n\n\n updated[key] = copyWithDeleteImpl(obj[key], path, index + 1);\n return updated;\n };\n\n var copyWithDelete = function (obj, path) {\n return copyWithDeleteImpl(obj, path, 0);\n };\n\n var copyWithRenameImpl = function (obj, oldPath, newPath, index) {\n var oldKey = oldPath[index];\n var updated = Array.isArray(obj) ? obj.slice() : _assign({}, obj);\n\n if (index + 1 === oldPath.length) {\n var newKey = newPath[index]; // $FlowFixMe number or string is fine here\n\n updated[newKey] = updated[oldKey];\n\n if (Array.isArray(updated)) {\n updated.splice(oldKey, 1);\n } else {\n delete updated[oldKey];\n }\n } else {\n // $FlowFixMe number or string is fine here\n updated[oldKey] = copyWithRenameImpl( // $FlowFixMe number or string is fine here\n obj[oldKey], oldPath, newPath, index + 1);\n }\n\n return updated;\n };\n\n var copyWithRename = function (obj, oldPath, newPath) {\n if (oldPath.length !== newPath.length) {\n warn('copyWithRename() expects paths of the same length');\n\n return;\n } else {\n for (var i = 0; i < newPath.length - 1; i++) {\n if (oldPath[i] !== newPath[i]) {\n warn('copyWithRename() expects paths to be the same except for the deepest key');\n\n return;\n }\n }\n }\n\n return copyWithRenameImpl(obj, oldPath, newPath, 0);\n };\n\n var copyWithSetImpl = function (obj, path, index, value) {\n if (index >= path.length) {\n return value;\n }\n\n var key = path[index];\n var updated = Array.isArray(obj) ? obj.slice() : _assign({}, obj); // $FlowFixMe number or string is fine here\n\n updated[key] = copyWithSetImpl(obj[key], path, index + 1, value);\n return updated;\n };\n\n var copyWithSet = function (obj, path, value) {\n return copyWithSetImpl(obj, path, 0, value);\n };\n\n var findHook = function (fiber, id) {\n // For now, the \"id\" of stateful hooks is just the stateful hook index.\n // This may change in the future with e.g. nested hooks.\n var currentHook = fiber.memoizedState;\n\n while (currentHook !== null && id > 0) {\n currentHook = currentHook.next;\n id--;\n }\n\n return currentHook;\n }; // Support DevTools editable values for useState and useReducer.\n\n\n overrideHookState = function (fiber, id, path, value) {\n var hook = findHook(fiber, id);\n\n if (hook !== null) {\n var newState = copyWithSet(hook.memoizedState, path, value);\n hook.memoizedState = newState;\n hook.baseState = newState; // We aren't actually adding an update to the queue,\n // because there is no update we can add for useReducer hooks that won't trigger an error.\n // (There's no appropriate action type for DevTools overrides.)\n // As a result though, React will see the scheduled update as a noop and bailout.\n // Shallow cloning props works as a workaround for now to bypass the bailout check.\n\n fiber.memoizedProps = _assign({}, fiber.memoizedProps);\n scheduleUpdateOnFiber(fiber, SyncLane, NoTimestamp);\n }\n };\n\n overrideHookStateDeletePath = function (fiber, id, path) {\n var hook = findHook(fiber, id);\n\n if (hook !== null) {\n var newState = copyWithDelete(hook.memoizedState, path);\n hook.memoizedState = newState;\n hook.baseState = newState; // We aren't actually adding an update to the queue,\n // because there is no update we can add for useReducer hooks that won't trigger an error.\n // (There's no appropriate action type for DevTools overrides.)\n // As a result though, React will see the scheduled update as a noop and bailout.\n // Shallow cloning props works as a workaround for now to bypass the bailout check.\n\n fiber.memoizedProps = _assign({}, fiber.memoizedProps);\n scheduleUpdateOnFiber(fiber, SyncLane, NoTimestamp);\n }\n };\n\n overrideHookStateRenamePath = function (fiber, id, oldPath, newPath) {\n var hook = findHook(fiber, id);\n\n if (hook !== null) {\n var newState = copyWithRename(hook.memoizedState, oldPath, newPath);\n hook.memoizedState = newState;\n hook.baseState = newState; // We aren't actually adding an update to the queue,\n // because there is no update we can add for useReducer hooks that won't trigger an error.\n // (There's no appropriate action type for DevTools overrides.)\n // As a result though, React will see the scheduled update as a noop and bailout.\n // Shallow cloning props works as a workaround for now to bypass the bailout check.\n\n fiber.memoizedProps = _assign({}, fiber.memoizedProps);\n scheduleUpdateOnFiber(fiber, SyncLane, NoTimestamp);\n }\n }; // Support DevTools props for function components, forwardRef, memo, host components, etc.\n\n\n overrideProps = function (fiber, path, value) {\n fiber.pendingProps = copyWithSet(fiber.memoizedProps, path, value);\n\n if (fiber.alternate) {\n fiber.alternate.pendingProps = fiber.pendingProps;\n }\n\n scheduleUpdateOnFiber(fiber, SyncLane, NoTimestamp);\n };\n\n overridePropsDeletePath = function (fiber, path) {\n fiber.pendingProps = copyWithDelete(fiber.memoizedProps, path);\n\n if (fiber.alternate) {\n fiber.alternate.pendingProps = fiber.pendingProps;\n }\n\n scheduleUpdateOnFiber(fiber, SyncLane, NoTimestamp);\n };\n\n overridePropsRenamePath = function (fiber, oldPath, newPath) {\n fiber.pendingProps = copyWithRename(fiber.memoizedProps, oldPath, newPath);\n\n if (fiber.alternate) {\n fiber.alternate.pendingProps = fiber.pendingProps;\n }\n\n scheduleUpdateOnFiber(fiber, SyncLane, NoTimestamp);\n };\n\n scheduleUpdate = function (fiber) {\n scheduleUpdateOnFiber(fiber, SyncLane, NoTimestamp);\n };\n\n setSuspenseHandler = function (newShouldSuspendImpl) {\n shouldSuspendImpl = newShouldSuspendImpl;\n };\n}\n\nfunction findHostInstanceByFiber(fiber) {\n var hostFiber = findCurrentHostFiber(fiber);\n\n if (hostFiber === null) {\n return null;\n }\n\n return hostFiber.stateNode;\n}\n\nfunction emptyFindFiberByHostInstance(instance) {\n return null;\n}\n\nfunction getCurrentFiberForDevTools() {\n return current;\n}\n\nfunction injectIntoDevTools(devToolsConfig) {\n var findFiberByHostInstance = devToolsConfig.findFiberByHostInstance;\n var ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\n return injectInternals({\n bundleType: devToolsConfig.bundleType,\n version: devToolsConfig.version,\n rendererPackageName: devToolsConfig.rendererPackageName,\n rendererConfig: devToolsConfig.rendererConfig,\n overrideHookState: overrideHookState,\n overrideHookStateDeletePath: overrideHookStateDeletePath,\n overrideHookStateRenamePath: overrideHookStateRenamePath,\n overrideProps: overrideProps,\n overridePropsDeletePath: overridePropsDeletePath,\n overridePropsRenamePath: overridePropsRenamePath,\n setSuspenseHandler: setSuspenseHandler,\n scheduleUpdate: scheduleUpdate,\n currentDispatcherRef: ReactCurrentDispatcher,\n findHostInstanceByFiber: findHostInstanceByFiber,\n findFiberByHostInstance: findFiberByHostInstance || emptyFindFiberByHostInstance,\n // React Refresh\n findHostInstancesForRefresh: findHostInstancesForRefresh ,\n scheduleRefresh: scheduleRefresh ,\n scheduleRoot: scheduleRoot ,\n setRefreshHandler: setRefreshHandler ,\n // Enables DevTools to append owner stacks to error messages in DEV mode.\n getCurrentFiber: getCurrentFiberForDevTools \n });\n}\n\nfunction ReactDOMRoot(container, options) {\n this._internalRoot = createRootImpl(container, ConcurrentRoot, options);\n}\n\nfunction ReactDOMBlockingRoot(container, tag, options) {\n this._internalRoot = createRootImpl(container, tag, options);\n}\n\nReactDOMRoot.prototype.render = ReactDOMBlockingRoot.prototype.render = function (children) {\n var root = this._internalRoot;\n\n {\n if (typeof arguments[1] === 'function') {\n error('render(...): does not support the second callback argument. ' + 'To execute a side effect after rendering, declare it in a component body with useEffect().');\n }\n\n var container = root.containerInfo;\n\n if (container.nodeType !== COMMENT_NODE) {\n var hostInstance = findHostInstanceWithNoPortals(root.current);\n\n if (hostInstance) {\n if (hostInstance.parentNode !== container) {\n error('render(...): It looks like the React-rendered content of the ' + 'root container was removed without using React. This is not ' + 'supported and will cause errors. Instead, call ' + \"root.unmount() to empty a root's container.\");\n }\n }\n }\n }\n\n updateContainer(children, root, null, null);\n};\n\nReactDOMRoot.prototype.unmount = ReactDOMBlockingRoot.prototype.unmount = function () {\n {\n if (typeof arguments[0] === 'function') {\n error('unmount(...): does not support a callback argument. ' + 'To execute a side effect after rendering, declare it in a component body with useEffect().');\n }\n }\n\n var root = this._internalRoot;\n var container = root.containerInfo;\n updateContainer(null, root, null, function () {\n unmarkContainerAsRoot(container);\n });\n};\n\nfunction createRootImpl(container, tag, options) {\n // Tag is either LegacyRoot or Concurrent Root\n var hydrate = options != null && options.hydrate === true;\n var hydrationCallbacks = options != null && options.hydrationOptions || null;\n var mutableSources = options != null && options.hydrationOptions != null && options.hydrationOptions.mutableSources || null;\n var root = createContainer(container, tag, hydrate);\n markContainerAsRoot(root.current, container);\n var containerNodeType = container.nodeType;\n\n {\n var rootContainerElement = container.nodeType === COMMENT_NODE ? container.parentNode : container;\n listenToAllSupportedEvents(rootContainerElement);\n }\n\n if (mutableSources) {\n for (var i = 0; i < mutableSources.length; i++) {\n var mutableSource = mutableSources[i];\n registerMutableSourceForHydration(root, mutableSource);\n }\n }\n\n return root;\n}\nfunction createLegacyRoot(container, options) {\n return new ReactDOMBlockingRoot(container, LegacyRoot, options);\n}\nfunction isValidContainer(node) {\n return !!(node && (node.nodeType === ELEMENT_NODE || node.nodeType === DOCUMENT_NODE || node.nodeType === DOCUMENT_FRAGMENT_NODE || node.nodeType === COMMENT_NODE && node.nodeValue === ' react-mount-point-unstable '));\n}\n\nvar ReactCurrentOwner$3 = ReactSharedInternals.ReactCurrentOwner;\nvar topLevelUpdateWarnings;\nvar warnedAboutHydrateAPI = false;\n\n{\n topLevelUpdateWarnings = function (container) {\n if (container._reactRootContainer && container.nodeType !== COMMENT_NODE) {\n var hostInstance = findHostInstanceWithNoPortals(container._reactRootContainer._internalRoot.current);\n\n if (hostInstance) {\n if (hostInstance.parentNode !== container) {\n error('render(...): It looks like the React-rendered content of this ' + 'container was removed without using React. This is not ' + 'supported and will cause errors. Instead, call ' + 'ReactDOM.unmountComponentAtNode to empty a container.');\n }\n }\n }\n\n var isRootRenderedBySomeReact = !!container._reactRootContainer;\n var rootEl = getReactRootElementInContainer(container);\n var hasNonRootReactChild = !!(rootEl && getInstanceFromNode(rootEl));\n\n if (hasNonRootReactChild && !isRootRenderedBySomeReact) {\n error('render(...): Replacing React-rendered children with a new root ' + 'component. If you intended to update the children of this node, ' + 'you should instead have the existing children update their state ' + 'and render the new components instead of calling ReactDOM.render.');\n }\n\n if (container.nodeType === ELEMENT_NODE && container.tagName && container.tagName.toUpperCase() === 'BODY') {\n error('render(): Rendering components directly into document.body is ' + 'discouraged, since its children are often manipulated by third-party ' + 'scripts and browser extensions. This may lead to subtle ' + 'reconciliation issues. Try rendering into a container element created ' + 'for your app.');\n }\n };\n}\n\nfunction getReactRootElementInContainer(container) {\n if (!container) {\n return null;\n }\n\n if (container.nodeType === DOCUMENT_NODE) {\n return container.documentElement;\n } else {\n return container.firstChild;\n }\n}\n\nfunction shouldHydrateDueToLegacyHeuristic(container) {\n var rootElement = getReactRootElementInContainer(container);\n return !!(rootElement && rootElement.nodeType === ELEMENT_NODE && rootElement.hasAttribute(ROOT_ATTRIBUTE_NAME));\n}\n\nfunction legacyCreateRootFromDOMContainer(container, forceHydrate) {\n var shouldHydrate = forceHydrate || shouldHydrateDueToLegacyHeuristic(container); // First clear any existing content.\n\n if (!shouldHydrate) {\n var warned = false;\n var rootSibling;\n\n while (rootSibling = container.lastChild) {\n {\n if (!warned && rootSibling.nodeType === ELEMENT_NODE && rootSibling.hasAttribute(ROOT_ATTRIBUTE_NAME)) {\n warned = true;\n\n error('render(): Target node has markup rendered by React, but there ' + 'are unrelated nodes as well. This is most commonly caused by ' + 'white-space inserted around server-rendered markup.');\n }\n }\n\n container.removeChild(rootSibling);\n }\n }\n\n {\n if (shouldHydrate && !forceHydrate && !warnedAboutHydrateAPI) {\n warnedAboutHydrateAPI = true;\n\n warn('render(): Calling ReactDOM.render() to hydrate server-rendered markup ' + 'will stop working in React v18. Replace the ReactDOM.render() call ' + 'with ReactDOM.hydrate() if you want React to attach to the server HTML.');\n }\n }\n\n return createLegacyRoot(container, shouldHydrate ? {\n hydrate: true\n } : undefined);\n}\n\nfunction warnOnInvalidCallback$1(callback, callerName) {\n {\n if (callback !== null && typeof callback !== 'function') {\n error('%s(...): Expected the last optional `callback` argument to be a ' + 'function. Instead received: %s.', callerName, callback);\n }\n }\n}\n\nfunction legacyRenderSubtreeIntoContainer(parentComponent, children, container, forceHydrate, callback) {\n {\n topLevelUpdateWarnings(container);\n warnOnInvalidCallback$1(callback === undefined ? null : callback, 'render');\n } // TODO: Without `any` type, Flow says \"Property cannot be accessed on any\n // member of intersection type.\" Whyyyyyy.\n\n\n var root = container._reactRootContainer;\n var fiberRoot;\n\n if (!root) {\n // Initial mount\n root = container._reactRootContainer = legacyCreateRootFromDOMContainer(container, forceHydrate);\n fiberRoot = root._internalRoot;\n\n if (typeof callback === 'function') {\n var originalCallback = callback;\n\n callback = function () {\n var instance = getPublicRootInstance(fiberRoot);\n originalCallback.call(instance);\n };\n } // Initial mount should not be batched.\n\n\n unbatchedUpdates(function () {\n updateContainer(children, fiberRoot, parentComponent, callback);\n });\n } else {\n fiberRoot = root._internalRoot;\n\n if (typeof callback === 'function') {\n var _originalCallback = callback;\n\n callback = function () {\n var instance = getPublicRootInstance(fiberRoot);\n\n _originalCallback.call(instance);\n };\n } // Update\n\n\n updateContainer(children, fiberRoot, parentComponent, callback);\n }\n\n return getPublicRootInstance(fiberRoot);\n}\n\nfunction findDOMNode(componentOrElement) {\n {\n var owner = ReactCurrentOwner$3.current;\n\n if (owner !== null && owner.stateNode !== null) {\n var warnedAboutRefsInRender = owner.stateNode._warnedAboutRefsInRender;\n\n if (!warnedAboutRefsInRender) {\n error('%s is accessing findDOMNode inside its render(). ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', getComponentName(owner.type) || 'A component');\n }\n\n owner.stateNode._warnedAboutRefsInRender = true;\n }\n }\n\n if (componentOrElement == null) {\n return null;\n }\n\n if (componentOrElement.nodeType === ELEMENT_NODE) {\n return componentOrElement;\n }\n\n {\n return findHostInstanceWithWarning(componentOrElement, 'findDOMNode');\n }\n}\nfunction hydrate(element, container, callback) {\n if (!isValidContainer(container)) {\n {\n throw Error( \"Target container is not a DOM element.\" );\n }\n }\n\n {\n var isModernRoot = isContainerMarkedAsRoot(container) && container._reactRootContainer === undefined;\n\n if (isModernRoot) {\n error('You are calling ReactDOM.hydrate() on a container that was previously ' + 'passed to ReactDOM.createRoot(). This is not supported. ' + 'Did you mean to call createRoot(container, {hydrate: true}).render(element)?');\n }\n } // TODO: throw or warn if we couldn't hydrate?\n\n\n return legacyRenderSubtreeIntoContainer(null, element, container, true, callback);\n}\nfunction render(element, container, callback) {\n if (!isValidContainer(container)) {\n {\n throw Error( \"Target container is not a DOM element.\" );\n }\n }\n\n {\n var isModernRoot = isContainerMarkedAsRoot(container) && container._reactRootContainer === undefined;\n\n if (isModernRoot) {\n error('You are calling ReactDOM.render() on a container that was previously ' + 'passed to ReactDOM.createRoot(). This is not supported. ' + 'Did you mean to call root.render(element)?');\n }\n }\n\n return legacyRenderSubtreeIntoContainer(null, element, container, false, callback);\n}\nfunction unstable_renderSubtreeIntoContainer(parentComponent, element, containerNode, callback) {\n if (!isValidContainer(containerNode)) {\n {\n throw Error( \"Target container is not a DOM element.\" );\n }\n }\n\n if (!(parentComponent != null && has(parentComponent))) {\n {\n throw Error( \"parentComponent must be a valid React Component\" );\n }\n }\n\n return legacyRenderSubtreeIntoContainer(parentComponent, element, containerNode, false, callback);\n}\nfunction unmountComponentAtNode(container) {\n if (!isValidContainer(container)) {\n {\n throw Error( \"unmountComponentAtNode(...): Target container is not a DOM element.\" );\n }\n }\n\n {\n var isModernRoot = isContainerMarkedAsRoot(container) && container._reactRootContainer === undefined;\n\n if (isModernRoot) {\n error('You are calling ReactDOM.unmountComponentAtNode() on a container that was previously ' + 'passed to ReactDOM.createRoot(). This is not supported. Did you mean to call root.unmount()?');\n }\n }\n\n if (container._reactRootContainer) {\n {\n var rootEl = getReactRootElementInContainer(container);\n var renderedByDifferentReact = rootEl && !getInstanceFromNode(rootEl);\n\n if (renderedByDifferentReact) {\n error(\"unmountComponentAtNode(): The node you're attempting to unmount \" + 'was rendered by another copy of React.');\n }\n } // Unmount should not be batched.\n\n\n unbatchedUpdates(function () {\n legacyRenderSubtreeIntoContainer(null, null, container, false, function () {\n // $FlowFixMe This should probably use `delete container._reactRootContainer`\n container._reactRootContainer = null;\n unmarkContainerAsRoot(container);\n });\n }); // If you call unmountComponentAtNode twice in quick succession, you'll\n // get `true` twice. That's probably fine?\n\n return true;\n } else {\n {\n var _rootEl = getReactRootElementInContainer(container);\n\n var hasNonRootReactChild = !!(_rootEl && getInstanceFromNode(_rootEl)); // Check if the container itself is a React root node.\n\n var isContainerReactRoot = container.nodeType === ELEMENT_NODE && isValidContainer(container.parentNode) && !!container.parentNode._reactRootContainer;\n\n if (hasNonRootReactChild) {\n error(\"unmountComponentAtNode(): The node you're attempting to unmount \" + 'was rendered by React and is not a top-level container. %s', isContainerReactRoot ? 'You may have accidentally passed in a React root node instead ' + 'of its container.' : 'Instead, have the parent component update its state and ' + 'rerender in order to remove this component.');\n }\n }\n\n return false;\n }\n}\n\nsetAttemptUserBlockingHydration(attemptUserBlockingHydration$1);\nsetAttemptContinuousHydration(attemptContinuousHydration$1);\nsetAttemptHydrationAtCurrentPriority(attemptHydrationAtCurrentPriority$1);\nsetAttemptHydrationAtPriority(runWithPriority$2);\nvar didWarnAboutUnstableCreatePortal = false;\n\n{\n if (typeof Map !== 'function' || // $FlowIssue Flow incorrectly thinks Map has no prototype\n Map.prototype == null || typeof Map.prototype.forEach !== 'function' || typeof Set !== 'function' || // $FlowIssue Flow incorrectly thinks Set has no prototype\n Set.prototype == null || typeof Set.prototype.clear !== 'function' || typeof Set.prototype.forEach !== 'function') {\n error('React depends on Map and Set built-in types. Make sure that you load a ' + 'polyfill in older browsers. https://reactjs.org/link/react-polyfills');\n }\n}\n\nsetRestoreImplementation(restoreControlledState$3);\nsetBatchingImplementation(batchedUpdates$1, discreteUpdates$1, flushDiscreteUpdates, batchedEventUpdates$1);\n\nfunction createPortal$1(children, container) {\n var key = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n if (!isValidContainer(container)) {\n {\n throw Error( \"Target container is not a DOM element.\" );\n }\n } // TODO: pass ReactDOM portal implementation as third argument\n // $FlowFixMe The Flow type is opaque but there's no way to actually create it.\n\n\n return createPortal(children, container, null, key);\n}\n\nfunction renderSubtreeIntoContainer(parentComponent, element, containerNode, callback) {\n\n return unstable_renderSubtreeIntoContainer(parentComponent, element, containerNode, callback);\n}\n\nfunction unstable_createPortal(children, container) {\n var key = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n {\n if (!didWarnAboutUnstableCreatePortal) {\n didWarnAboutUnstableCreatePortal = true;\n\n warn('The ReactDOM.unstable_createPortal() alias has been deprecated, ' + 'and will be removed in React 18+. Update your code to use ' + 'ReactDOM.createPortal() instead. It has the exact same API, ' + 'but without the \"unstable_\" prefix.');\n }\n }\n\n return createPortal$1(children, container, key);\n}\n\nvar Internals = {\n // Keep in sync with ReactTestUtils.js, and ReactTestUtilsAct.js.\n // This is an array for better minification.\n Events: [getInstanceFromNode, getNodeFromInstance, getFiberCurrentPropsFromNode, enqueueStateRestore, restoreStateIfNeeded, flushPassiveEffects, // TODO: This is related to `act`, not events. Move to separate key?\n IsThisRendererActing]\n};\nvar foundDevTools = injectIntoDevTools({\n findFiberByHostInstance: getClosestInstanceFromNode,\n bundleType: 1 ,\n version: ReactVersion,\n rendererPackageName: 'react-dom'\n});\n\n{\n if (!foundDevTools && canUseDOM && window.top === window.self) {\n // If we're in Chrome or Firefox, provide a download link if not installed.\n if (navigator.userAgent.indexOf('Chrome') > -1 && navigator.userAgent.indexOf('Edge') === -1 || navigator.userAgent.indexOf('Firefox') > -1) {\n var protocol = window.location.protocol; // Don't warn in exotic cases like chrome-extension://.\n\n if (/^(https?|file):$/.test(protocol)) {\n // eslint-disable-next-line react-internal/no-production-logging\n console.info('%cDownload the React DevTools ' + 'for a better development experience: ' + 'https://reactjs.org/link/react-devtools' + (protocol === 'file:' ? '\\nYou might need to use a local HTTP server (instead of file://): ' + 'https://reactjs.org/link/react-devtools-faq' : ''), 'font-weight:bold');\n }\n }\n }\n}\n\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = Internals;\nexports.createPortal = createPortal$1;\nexports.findDOMNode = findDOMNode;\nexports.flushSync = flushSync;\nexports.hydrate = hydrate;\nexports.render = render;\nexports.unmountComponentAtNode = unmountComponentAtNode;\nexports.unstable_batchedUpdates = batchedUpdates$1;\nexports.unstable_createPortal = unstable_createPortal;\nexports.unstable_renderSubtreeIntoContainer = renderSubtreeIntoContainer;\nexports.version = ReactVersion;\n })();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2Nqcy9yZWFjdC1kb20uZGV2ZWxvcG1lbnQuanMuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFYTs7QUFFYixJQUFJLElBQXFDO0FBQ3pDO0FBQ0E7O0FBRUEsWUFBWSxtQkFBTyxDQUFDLDRDQUFPO0FBQzNCLGNBQWMsbUJBQU8sQ0FBQyxnRkFBZTtBQUNyQyxnQkFBZ0IsbUJBQU8sQ0FBQyxvREFBVztBQUNuQyxjQUFjLG1CQUFPLENBQUMsOERBQW1COztBQUV6Qzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsMkZBQTJGLGFBQWE7QUFDeEc7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0ZBQStGLGVBQWU7QUFDOUc7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxLQUFLLEdBQUc7O0FBRVIsa0RBQWtEO0FBQ2xEO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGdDQUFnQzs7QUFFaEMsa0JBQWtCOztBQUVsQixvQkFBb0I7O0FBRXBCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUEsZ0NBQWdDOztBQUVoQyxrQ0FBa0M7QUFDbEMsaUNBQWlDO0FBQ2pDOztBQUVBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWOztBQUVBLHNDQUFzQzs7QUFFdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGtCQUFrQix5QkFBeUI7QUFDM0M7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7O0FBRUEsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTs7QUFFQSwyQkFBMkI7QUFDM0I7QUFDQTs7QUFFQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBOztBQUVBLDRCQUE0QjtBQUM1Qjs7QUFFQSxpQkFBaUI7QUFDakI7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBOzs7QUFHQSxxQkFBcUI7O0FBRXJCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxHQUFHO0FBQ0o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsR0FBRztBQUNKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxHQUFHO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsR0FBRzs7QUFFSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEdBQUc7QUFDSjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxHQUFHO0FBQ0o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxHQUFHOztBQUVKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsR0FBRzs7QUFFSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7O0FBRUE7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxHQUFHOztBQUVKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEdBQUc7O0FBRUo7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsR0FBRztBQUNKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxHQUFHO0FBQ0o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFlBQVk7QUFDdkIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsR0FBRztBQUNkOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLElBQUk7OztBQUdKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFD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O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07O0FBRU47QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047OztBQUdBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsNENBQTRDO0FBQzVDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxHQUFHO0FBQ047QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGtDQUFrQztBQUNsQzs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTs7QUFFQSw0QkFBNEI7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCOztBQUVBO0FBQ0E7QUFDQSwwREFBMEQ7QUFDMUQ7O0FBRUE7QUFDQTtBQUNBOztBQUVBLGtFQUFrRTtBQUNsRTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7OztBQUdBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7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QUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLG1GQUFtRjtBQUNuRjs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFRLDBDQUEwQzs7O0FBR2xEO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGdHQUFnRztBQUNoRzs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLDBDQUEwQzs7O0FBR2xEO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTs7O0FBR047QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07OztBQUdOO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFF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Q0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsVUFBVTtBQUNyQixXQUFXLEdBQUc7QUFDZCxXQUFXLE1BQU07QUFDakI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxVQUFVO0FBQ3JCLFdBQVcsR0FBRztBQUNkLFdBQVcsTUFBTTtBQUNqQjs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTs7QUFFTjtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0EsTUFBTTs7QUFFTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTzs7QUFFUDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLE1BQU07QUFDTixJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7OztBQUdBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsUUFBUTs7O0FBR1I7QUFDQSxNQUFNO0FBQ047QUFDQTs7O0FBR0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFFBQVE7QUFDUjs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7OztBQUdKO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7OztBQUdKOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0YsdUNBQXVDOztBQUV2QywrQkFBK0I7QUFDL0I7O0FBRUE7QUFDQTtBQUNBLHdCQUF3Qjs7QUFFeEI7QUFDQSx1Q0FBdUM7O0FBRXZDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiLFdBQVc7QUFDWDtBQUNBO0FBQ0EsUUFBUTtBQUNSOztBQUVBO0FBQ0EsMEVBQTBFO0FBQzFFOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTs7O0FBR047QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxxQ0FBcUM7O0FBRXJDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFF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O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7OztBQUdKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNDQUFzQzs7QUFFdEM7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOzs7QUFHQSx1RUFBdUU7QUFDdkU7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOENBQThDO0FBQzlDO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsRUFBRTtBQUNGOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSwyQ0FBMkM7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsa0JBQWtCLGdCQUFnQjtBQUNsQztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsNENBQTRDOztBQUU1QztBQUNBO0FBQ0E7QUFDQSx1Q0FBdUM7QUFDdkM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1Q0FBdUM7O0FBRXZDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0NBQXNDOztBQUV0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhDQUE4Qzs7QUFFOUM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxREFBcUQ7QUFDckQ7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLDBEQUEwRDs7QUFFMUQscUJBQXFCO0FBQ3JCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047OztBQUdBO0FBQ0EsSUFBSTtBQUNKOzs7QUFHQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTs7O0FBR0E7QUFDQSxRQUFRO0FBQ1I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLCtHQUErRzs7QUFFL0c7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxrQkFBa0IscUJBQXFCO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBLGdCQUFnQixlQUFlO0FBQy9CO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixZQUFZLFFBQVE7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxxQ0FBcUM7O0FBRXJDO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EsSUFBSTtBQUNKOzs7QUFHQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOzs7QUFHQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEVBQUU7QUFDRjs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxnQ0FBZ0M7QUFDaEMsUUFBUTtBQUNSO0FBQ0E7O0FBRUE7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxpQ0FBaUM7QUFDakMsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCO0FBQzFCLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLFNBQVM7QUFDekI7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsaUNBQWlDO0FBQ2pDO0FBQ0E7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQSxvQ0FBb0M7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7O0FBR0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxtQ0FBbUM7QUFDbkM7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsb0NBQW9DO0FBQ3BDO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsd0NBQXdDO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSx3Q0FBd0M7QUFDeEM7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLDBDQUEwQztBQUMxQztBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsWUFBWSxRQUFRO0FBQ3BCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7OztBQUdKO0FBQ0Esa0RBQWtEO0FBQ2xEOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFH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QUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxTQUFTO0FBQ3JCOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQSxJQUFJO0FBQ0o7OztBQUdBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFlBQVksU0FBUztBQUNyQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsNENBQTRDO0FBQzVDO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSw4R0FBOEc7QUFDOUc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSxFQUFFOzs7QUFHRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFdBQVc7O0FBRVg7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0osa0JBQWtCLGtCQUFrQjtBQUNwQztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsd0JBQXdCO0FBQ25DLFlBQVk7QUFDWjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLHdCQUF3QjtBQUNuQyxZQUFZO0FBQ1o7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyx3QkFBd0I7QUFDbkMsV0FBVyxRQUFRO0FBQ25CLFlBQVk7QUFDWjs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFdBQVcsWUFBWTtBQUN2QixZQUFZO0FBQ1o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQztBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFlBQVksWUFBWTtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTs7O0FBR1I7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07OztBQUdOO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyx3QkFBd0I7QUFDbkMsV0FBVyxRQUFRO0FBQ25COztBQUVBO0FBQ0E7QUFDQSw4Q0FBOEM7QUFDOUM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsK0VBQStFO0FBQy9FOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBLElBQUk7QUFDSjtBQUNBLElBQUk7QUFDSjtBQUNBLElBQUk7QUFDSjtBQUNBLElBQUk7QUFDSjtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07OztBQUdOO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLG9CQUFvQixzQkFBc0I7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkIsWUFBWTtBQUNaOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7OztBQUdKOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkdBQTJHO0FBQzNHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztB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LEVBQUU7O0FBRUY7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTSwyRUFBMkUsb0dBQW9HLGtDQUFrQztBQUN2TjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFVBQVU7OztBQUdWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQSxNQUFNLG9HQUFvRztBQUMxRztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxFQUFFOztBQUVGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsbUVBQW1FOztBQUVuRSwrRkFBK0Y7QUFDL0Y7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7OztBQUdKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsNEJBQTRCO0FBQ2xEO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSw4Q0FBOEM7QUFDOUM7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsZ0RBQWdEO0FBQ2hEOztBQUVBOztBQUVBOztBQUVBO0FBQ0EsZ0RBQWdEO0FBQ2hEOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBLHFCQUFxQix3QkFBd0I7QUFDN0M7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxzQ0FBc0M7QUFDdEM7QUFDQSxnRkFBZ0Y7QUFDaEY7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0M7O0FBRS9DO0FBQ0EsY0FBYzs7O0FBR2Q7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMERBQTBEO0FBQzFEO0FBQ0E7QUFDQSx3Q0FBd0M7QUFDeEM7QUFDQTtBQUNBO0FBQ0EsMnZCQUEydkI7O0FBRTN2QjtBQUNBO0FBQ0E7QUFDQSxxQ0FBcUM7O0FBRXJDLHdEQUF3RDs7QUFFeEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGlDQUFpQzs7QUFFakM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQ0FBMEM7O0FBRTFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxTQUFTLGNBQWM7QUFDdkI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVEQUF1RDtBQUN2RDs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDO0FBQzNDO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLElBQUk7OztBQUdKO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7O0FBRUE7QUFDQSw2Q0FBNkM7QUFDN0M7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSwrQ0FBK0M7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sK0NBQStDO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7OztBQUdBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTs7O0FBR0EsMEVBQTBFO0FBQzFFO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLDhCQUE4QjtBQUM5QjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkhBQTJIO0FBQzNIO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFVBQVU7QUFDVjtBQUNBOztBQUVBO0FBQ0E7O0FBRUEsb0VBQW9FOztBQUVwRTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxFQUFFOzs7QUFHRiwyREFBMkQ7O0FBRTNELHFEQUFxRDtBQUNyRDtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBOzs7QUFHQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjs7O0FBR0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLG9EQUFvRDtBQUNwRDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxxQkFBcUI7QUFDckI7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsNkNBQTZDO0FBQzdDO0FBQ0E7O0FBRUEsMkhBQTJIO0FBQzNIOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEVBQTBFO0FBQzFFOztBQUVBO0FBQ0EsK0NBQStDOztBQUUvQztBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLG9FQUFvRTtBQUNwRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxNQUFNOztBQUVOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07OztBQUdOO0FBQ0E7O0FBRUE7QUFDQSx5Q0FBeUM7O0FBRXpDO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLDJCQUEyQjtBQUMzQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCOztBQUV6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlDQUF5QztBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0Qjs7QUFFNUI7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsbUJBQW1CO0FBQ3BDOztBQUVBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQSxTQUFTO0FBQ1Q7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0EsVUFBVTs7O0FBR1Y7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxvQkFBb0I7QUFDcEI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDhEQUE4RDtBQUM5RCxxREFBcUQ7QUFDckQsMkRBQTJEO0FBQzNELDJDQUEyQztBQUMzQztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzREFBc0Q7O0FBRXREOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSxNQUFNO0FBQ047OztBQUdBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsK0NBQStDOztBQUUvQzs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxNQUFNOzs7QUFHTjtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEI7O0FBRTFCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSw0QkFBNEI7O0FBRTVCOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNDQUFzQztBQUN0QztBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSwrREFBK0Q7O0FBRS9ELDREQUE0RDtBQUM1RDs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVOzs7QUFHVjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTs7O0FBR1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLG9EQUFvRCx5REFBeUQ7QUFDN0csOEJBQThCOztBQUU5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7OztBQUdSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QjtBQUN2QjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQ0FBMEM7O0FBRTFDOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFVBQVUseUJBQXlCOzs7QUFHbkM7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0o7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EsVUFBVTs7O0FBR1Y7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7OztBQUdWLHlCQUF5QjtBQUN6Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSw2Q0FBNkM7O0FBRTdDOztBQUVBO0FBQ0EsaUNBQWlDO0FBQ2pDOztBQUVBO0FBQ0E7QUFDQSxtQ0FBbUM7O0FBRW5DO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7QUFFQSx3Q0FBd0M7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0o7QUFDQTtBQUNBLG9DQUFvQztBQUNwQzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0EsVUFBVTs7O0FBR1Y7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7OztBQUdWO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQSxpREFBaUQ7QUFDakQ7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNOztBQUVOO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsOENBQThDO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0NBQXdDO0FBQ3hDOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0Esb0JBQW9CLG9CQUFvQjtBQUN4QztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsNkJBQTZCO0FBQzdCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLElBQUk7OztBQUdKLGtHQUFrRztBQUNsRyxnREFBZ0Q7QUFDaEQ7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsdUNBQXVDOztBQUV2Qzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLDhJQUE4STs7QUFFOUk7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQSxVQUFVO0FBQ1Y7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLFVBQVU7QUFDVixrRUFBa0UsNENBQTRDO0FBQzlHOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxrQ0FBa0M7QUFDbEMsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjs7O0FBR0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxFQUFFOzs7QUFHRjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOzs7QUFHQTtBQUNBLHNEQUFzRDtBQUN0RDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxtSUFBbUk7QUFDbkk7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjs7O0FBR0E7QUFDQTtBQUNBLElBQUk7QUFDSjs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFOzs7QUFHRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLG1JQUFtSTtBQUNuSTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjs7O0FBR0E7QUFDQTtBQUNBLElBQUk7QUFDSjs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxxQ0FBcUM7O0FBRXJDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEpBQThKLHlDQUF5QztBQUN2TTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047OztBQUdBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07OztBQUdOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsc0JBQXNCLHdCQUF3QjtBQUM5QztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsV0FBVyxrREFBa0Q7QUFDN0Q7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsYUFBYSw2QkFBNkI7QUFDMUM7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxNQUFNOzs7QUFHTix3RUFBd0U7O0FBRXhFLFdBQVcsNkJBQTZCO0FBQ3hDOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFFBQVE7OztBQUdSO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsUUFBUTtBQUNSOzs7QUFHQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBLGVBQWUsYUFBYTtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsV0FBVyxpQ0FBaUM7QUFDNUM7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsYUFBYSxZQUFZO0FBQ3pCOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EsTUFBTTs7O0FBR04sd0VBQXdFOztBQUV4RSxXQUFXLFlBQVk7QUFDdkI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFVBQVU7OztBQUdWO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2Q0FBNkMsTUFBTTtBQUNuRDtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNOzs7QUFHTjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNOzs7QUFHTjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLDBEQUEwRDtBQUMxRDs7QUFFQSwrQ0FBK0M7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSw4REFBOEQ7O0FBRTlEO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLDhEQUE4RDs7QUFFOUQ7QUFDQTtBQUNBLElBQUk7QUFDSjs7O0FBR0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsZ0NBQWdDO0FBQ2hDO0FBQ0E7QUFDQTs7QUFFQSxvQ0FBb0M7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLHdDQUF3QztBQUN4QztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBLDRDQUE0Qzs7QUFFNUM7QUFDQTtBQUNBLElBQUk7OztBQUdKO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7OztBQUdBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQztBQUNsQztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQSw2SEFBNkg7O0FBRTdILHFDQUFxQztBQUNyQzs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FB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O0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTixJQUFJO0FBQ0o7OztBQUdBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsNkJBQTZCOztBQUU3QixxQ0FBcUM7O0FBRXJDOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQSxVQUFVO0FBQ1Y7QUFDQTs7O0FBR0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7OztBQUdWO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsTUFBTTs7QUFFTjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0EsTUFBTTtBQUNOOzs7QUFHQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsdUNBQXVDO0FBQ3ZDOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSwyQ0FBMkM7QUFDakQ7OztBQUdBO0FBQ0E7QUFDQTs7QUFFQSxtQ0FBbUM7QUFDbkM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSw0Q0FBNEM7O0FBRTVDLHNDQUFzQztBQUN0QztBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxxREFBcUQ7O0FBRXJEO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTs7QUFFQSxrQ0FBa0M7QUFDbEM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQSxvQ0FBb0M7QUFDcEM7QUFDQTtBQUNBOztBQUVBLG9DQUFvQzs7QUFFcEM7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQSxHQUFHLHFDQUFxQzs7QUFFeEM7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSw4REFBOEQ7O0FBRTlEO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEdBQUcsd0JBQXdCO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOztBQUVBO0FBQ0E7QUFDQSx5S0FBeUssMENBQTBDO0FBQ25OO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7OztBQUdKO0FBQ0E7QUFDQTs7QUFFQSw4Q0FBOEM7QUFDOUM7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0M7QUFDcEM7OztBQUdBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQOztBQUVBO0FBQ0EsSUFBSTtBQUNKOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHNFQUFzRTtBQUN0RTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVUsZUFBZTtBQUN6QixVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EscURBQXFEO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpR0FBaUc7QUFDakc7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGdDQUFnQzs7QUFFaEM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0o7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7OztBQUdBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLG9DQUFvQzs7QUFFcEM7QUFDQTtBQUNBO0FBQ0EsZ0RBQWdEOztBQUVoRDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7OztBQUdKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0EsVUFBVTs7O0FBR1Y7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBLFFBQVE7OztBQUdSO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlEQUFpRDtBQUNqRDs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0RBQWtEOztBQUVsRDtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7O0FBRUE7QUFDQSwwRUFBMEU7O0FBRTFFO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7OztBQUdBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0Esb0NBQW9DO0FBQ3BDOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0o7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7O0FBR0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUNBQXVDOztBQUV2QztBQUNBLE1BQU07OztBQUdOO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEsMkNBQTJDOztBQUUzQztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsSUFBSTtBQUNKOzs7QUFHQSxpREFBaUQ7O0FBRWpEO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0RBQWdEO0FBQ2hEOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0Esd0JBQXdCLDRDQUE0QztBQUNwRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7OztBQUdBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQ0FBcUM7O0FBRXJDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUM7O0FBRWpDO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFDQUFxQzs7QUFFckM7QUFDQSxJQUFJOzs7QUFHSix1Q0FBdUM7QUFDdkM7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQ0FBcUM7O0FBRXJDO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNOzs7QUFHTix5Q0FBeUM7O0FBRXpDO0FBQ0EsdUNBQXVDO0FBQ3ZDO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7OztBQUdGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7OztBQUdKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSwrQ0FBK0M7O0FBRS9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0Esd0RBQXdEO0FBQ3hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0RBQXdEO0FBQ3hEOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSx1REFBdUQ7QUFDdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxpR0FBaUc7QUFDakc7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9EQUFvRDtBQUNwRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKLGdHQUFnRztBQUNoRzs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLG9DQUFvQzs7QUFFcEM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFFBQVE7QUFDUjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEseU5BQXlOLEdBQUc7O0FBRTVOO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLHFCQUFxQjtBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSxtQkFBbUIsWUFBWTtBQUMvQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDRDQUE0Qzs7QUFFNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7OztBQUdaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQSxxQ0FBcUM7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxnREFBZ0Q7O0FBRWhEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOOzs7QUFHQTtBQUNBLHdDQUF3Qzs7QUFFeEM7QUFDQTtBQUNBO0FBQ0EsbURBQW1EOztBQUVuRDtBQUNBO0FBQ0EsTUFBTTtBQUNOOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsTUFBTTtBQUNOOzs7QUFHQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7QUFFQTtBQUNBO0FBQ0EsMENBQTBDOztBQUUxQztBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ04sZ0NBQWdDO0FBQ2hDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGNBQWM7QUFDZDs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQSxvSEFBb0g7QUFDcEg7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBOzs7QUFHQTtBQUNBLGNBQWM7QUFDZDtBQUNBOzs7QUFHQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7OztBQUdBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSw2REFBNkQ7O0FBRTdEOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsb0NBQW9DO0FBQzVDO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLG1EQUFtRDtBQUNuRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7OztBQUdBO0FBQ0EsK0NBQStDO0FBQy9DO0FBQ0E7O0FBRUEsc0hBQXNIOztBQUV0SCxnREFBZ0Q7QUFDaEQ7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsVUFBVTtBQUNWOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxVQUFVO0FBQ1Y7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7OztBQUdkO0FBQ0E7O0FBRUEscURBQXFEO0FBQ3JEO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQSxpREFBaUQ7QUFDakQ7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsK0NBQStDO0FBQy9DOztBQUVBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjOztBQUVkOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FB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O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSOzs7QUFHQTtBQUNBLE1BQU0sa0NBQWtDO0FBQ3hDOzs7QUFHQTtBQUNBLElBQUk7QUFDSjtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBLDBFQUEwRTs7QUFFMUU7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxJQUFJO0FBQ0o7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOzs7QUFHSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtREFBbUQ7QUFDbkQ7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLE1BQU07QUFDTjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGNBQWM7QUFDZCx5TkFBeU4scUNBQXFDLHdGQUF3RiwyQkFBMkIscUJBQXFCLFFBQVEsYUFBYTtBQUMzWixjQUFjO0FBQ2Q7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLE1BQU07QUFDTjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxNQUFNO0FBQ047QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQSxtREFBbUQ7QUFDbkQ7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7OztBQUdBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGlEQUFpRDtBQUNqRDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsUUFBUTtBQUNSOztBQUVBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLFFBQVEsNElBQTRJO0FBQ3BKO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07O0FBRU47QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxjQUFjO0FBQ2Q7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHVDQUF1QztBQUN2Qzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUNBQXFDO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtB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QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7OztBQUdBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQSwyQ0FBMkM7QUFDM0M7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTs7O0FBR0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSwwQ0FBMEM7QUFDMUM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0RkFBNEY7O0FBRTVGO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQSxVQUFVOzs7QUFHVjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxvRUFBb0U7OztBQUdwRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVOzs7QUFHVjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0EseUNBQXlDO0FBQ3pDOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7OztBQUdBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjs7O0FBR0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7OztBQUdBO0FBQ0E7O0FBRUEsaUNBQWlDO0FBQ2pDOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLElBQUk7OztBQUdKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLE1BQU07QUFDTiwrQ0FBK0M7QUFDL0M7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0M7O0FBRXBDO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJCQUEyQjtBQUMzQjs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsMkRBQTJEO0FBQzNEO0FBQ0E7QUFDQTtBQUNBLG9EQUFvRDtBQUNwRDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTs7QUFFQTtBQUNBLE1BQU07OztBQUdOO0FBQ0EsSUFBSTtBQUNKOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSx5Q0FBeUM7QUFDekM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLElBQUk7O0FBRUo7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRjs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHlDQUF5QztBQUN6Qzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxJQUFJOztBQUVKOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOzs7QUFHQTs7QUFFQTtBQUNBLElBQUk7OztBQUdKO0FBQ0EsNkNBQTZDOztBQUU3QztBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0Q0FBNEM7O0FBRTVDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0EseUVB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QUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSixzQ0FBc0M7O0FBRXRDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsd0JBQXdCLDRCQUE0QjtBQUNwRDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOzs7QUFHQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0EsSUFBSTs7O0FBR0o7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTs7O0FBR0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsdUNBQXVDO0FBQ3ZDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsdUNBQXVDO0FBQ3ZDOztBQUVBLDBDQUEwQzs7QUFFMUM7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsMENBQTBDOztBQUUxQztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOzs7QUFHQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsaURBQWlEO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBLGtCQUFrQiwyQkFBMkI7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBOztBQUVBLG1CQUFtQiwwQkFBMEI7QUFDN0M7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7OztBQUdBOztBQUVBO0FBQ0EsNENBQTRDOztBQUU1Qzs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSw0QkFBNEI7QUFDNUI7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYyx1QkFBdUI7QUFDckM7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCOztBQUUxQjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOOzs7QUFHQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLE1BQU07QUFDTjtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047OztBQUdBO0FBQ0E7QUFDQSxNQUFNO0FBQ047OztBQUdBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUEsb0NBQW9DO0FBQ3BDOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBLFFBQVEsNENBQTRDO0FBQ3BEOzs7QUFHQTtBQUNBLDhCQUE4QjtBQUM5QjtBQUNBOztBQUVBLHlDQUF5Qzs7QUFFekM7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsUUFBUTs7O0FBR1I7O0FBRUE7QUFDQSw4Q0FBOEM7QUFDOUM7O0FBRUE7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztB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QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07OztBQUdOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07OztBQUdOOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQztBQUMzQyxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EseURBQXlEO0FBQ3pEOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUI7O0FBRXpCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9COztBQUVwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdDQUF3QztBQUN4QztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0osZ0RBQWdEOztBQUVoRCx3Q0FBd0M7QUFDeEM7O0FBRUEsb0NBQW9DOztBQUVwQztBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvREFBb0Q7QUFDcEQ7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUNBQXFDOztBQUVyQztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0RBQXNEOztBQUV0RCx3Q0FBd0M7QUFDeEM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUNBQXlDOztBQUV6Qzs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSw0RUFBNEU7O0FBRTVFO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLHVFQUF1RTtBQUN2RTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0VBQXdFO0FBQ3hFO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyRUFBMkU7QUFDM0U7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4REFBOEQ7O0FBRTlEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxtREFBbUQ7QUFDbkQ7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsMEVBQTBFO0FBQzFFO0FBQ0E7O0FBRUEsOENBQThDO0FBQzlDOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNB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QTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLG9GQUFvRjs7QUFFcEY7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNOzs7QUFHTjtBQUNBO0FBQ0EsS0FBSztBQUNMLElBQUk7QUFDSjs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07OztBQUdOO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLGlNQUFpTSxjQUFjO0FBQy9NO0FBQ0EsSUFBSTs7O0FBR0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTs7O0FBR047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLLEdBQUc7QUFDUjs7QUFFQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBLDhFQUE4RTs7QUFFOUU7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOzs7QUFHQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0M7O0FBRS9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLDBEQUEwRDtBQUMxRCxvQkFBb0I7QUFDcEIsbUJBQW1CO0FBQ25CLGlCQUFpQjtBQUNqQixlQUFlO0FBQ2YsY0FBYztBQUNkLDhCQUE4QjtBQUM5QiwrQkFBK0I7QUFDL0IsNkJBQTZCO0FBQzdCLDJDQUEyQztBQUMzQyxlQUFlO0FBQ2YsR0FBRztBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vY2pzL3JlYWN0LWRvbS5kZXZlbG9wbWVudC5qcz9hYzg5Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBAbGljZW5zZSBSZWFjdCB2MTcuMC4yXG4gKiByZWFjdC1kb20uZGV2ZWxvcG1lbnQuanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIEZhY2Vib29rLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgKGZ1bmN0aW9uKCkge1xuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xudmFyIF9hc3NpZ24gPSByZXF1aXJlKCdvYmplY3QtYXNzaWduJyk7XG52YXIgU2NoZWR1bGVyID0gcmVxdWlyZSgnc2NoZWR1bGVyJyk7XG52YXIgdHJhY2luZyA9IHJlcXVpcmUoJ3NjaGVkdWxlci90cmFjaW5nJyk7XG5cbnZhciBSZWFjdFNoYXJlZEludGVybmFscyA9IFJlYWN0Ll9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEO1xuXG4vLyBieSBjYWxscyB0byB0aGVzZSBtZXRob2RzIGJ5IGEgQmFiZWwgcGx1Z2luLlxuLy9cbi8vIEluIFBST0QgKG9yIGluIHBhY2thZ2VzIHdpdGhvdXQgYWNjZXNzIHRvIFJlYWN0IGludGVybmFscyksXG4vLyB0aGV5IGFyZSBsZWZ0IGFzIHRoZXkgYXJlIGluc3RlYWQuXG5cbmZ1bmN0aW9uIHdhcm4oZm9ybWF0KSB7XG4gIHtcbiAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuID4gMSA/IF9sZW4gLSAxIDogMCksIF9rZXkgPSAxOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICBhcmdzW19rZXkgLSAxXSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICB9XG5cbiAgICBwcmludFdhcm5pbmcoJ3dhcm4nLCBmb3JtYXQsIGFyZ3MpO1xuICB9XG59XG5mdW5jdGlvbiBlcnJvcihmb3JtYXQpIHtcbiAge1xuICAgIGZvciAodmFyIF9sZW4yID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuMiA+IDEgPyBfbGVuMiAtIDEgOiAwKSwgX2tleTIgPSAxOyBfa2V5MiA8IF9sZW4yOyBfa2V5MisrKSB7XG4gICAgICBhcmdzW19rZXkyIC0gMV0gPSBhcmd1bWVudHNbX2tleTJdO1xuICAgIH1cblxuICAgIHByaW50V2FybmluZygnZXJyb3InLCBmb3JtYXQsIGFyZ3MpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHByaW50V2FybmluZyhsZXZlbCwgZm9ybWF0LCBhcmdzKSB7XG4gIC8vIFdoZW4gY2hhbmdpbmcgdGhpcyBsb2dpYywgeW91IG1pZ2h0IHdhbnQgdG8gYWxzb1xuICAvLyB1cGRhdGUgY29uc29sZVdpdGhTdGFja0Rldi53d3cuanMgYXMgd2VsbC5cbiAge1xuICAgIHZhciBSZWFjdERlYnVnQ3VycmVudEZyYW1lID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZTtcbiAgICB2YXIgc3RhY2sgPSBSZWFjdERlYnVnQ3VycmVudEZyYW1lLmdldFN0YWNrQWRkZW5kdW0oKTtcblxuICAgIGlmIChzdGFjayAhPT0gJycpIHtcbiAgICAgIGZvcm1hdCArPSAnJXMnO1xuICAgICAgYXJncyA9IGFyZ3MuY29uY2F0KFtzdGFja10pO1xuICAgIH1cblxuICAgIHZhciBhcmdzV2l0aEZvcm1hdCA9IGFyZ3MubWFwKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICByZXR1cm4gJycgKyBpdGVtO1xuICAgIH0pOyAvLyBDYXJlZnVsOiBSTiBjdXJyZW50bHkgZGVwZW5kcyBvbiB0aGlzIHByZWZpeFxuXG4gICAgYXJnc1dpdGhGb3JtYXQudW5zaGlmdCgnV2FybmluZzogJyArIGZvcm1hdCk7IC8vIFdlIGludGVudGlvbmFsbHkgZG9uJ3QgdXNlIHNwcmVhZCAob3IgLmFwcGx5KSBkaXJlY3RseSBiZWNhdXNlIGl0XG4gICAgLy8gYnJlYWtzIElFOTogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xMzYxMFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9uby1wcm9kdWN0aW9uLWxvZ2dpbmdcblxuICAgIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5jYWxsKGNvbnNvbGVbbGV2ZWxdLCBjb25zb2xlLCBhcmdzV2l0aEZvcm1hdCk7XG4gIH1cbn1cblxuaWYgKCFSZWFjdCkge1xuICB7XG4gICAgdGhyb3cgRXJyb3IoIFwiUmVhY3RET00gd2FzIGxvYWRlZCBiZWZvcmUgUmVhY3QuIE1ha2Ugc3VyZSB5b3UgbG9hZCB0aGUgUmVhY3QgcGFja2FnZSBiZWZvcmUgbG9hZGluZyBSZWFjdERPTS5cIiApO1xuICB9XG59XG5cbnZhciBGdW5jdGlvbkNvbXBvbmVudCA9IDA7XG52YXIgQ2xhc3NDb21wb25lbnQgPSAxO1xudmFyIEluZGV0ZXJtaW5hdGVDb21wb25lbnQgPSAyOyAvLyBCZWZvcmUgd2Uga25vdyB3aGV0aGVyIGl0IGlzIGZ1bmN0aW9uIG9yIGNsYXNzXG5cbnZhciBIb3N0Um9vdCA9IDM7IC8vIFJvb3Qgb2YgYSBob3N0IHRyZWUuIENvdWxkIGJlIG5lc3RlZCBpbnNpZGUgYW5vdGhlciBub2RlLlxuXG52YXIgSG9zdFBvcnRhbCA9IDQ7IC8vIEEgc3VidHJlZS4gQ291bGQgYmUgYW4gZW50cnkgcG9pbnQgdG8gYSBkaWZmZXJlbnQgcmVuZGVyZXIuXG5cbnZhciBIb3N0Q29tcG9uZW50ID0gNTtcbnZhciBIb3N0VGV4dCA9IDY7XG52YXIgRnJhZ21lbnQgPSA3O1xudmFyIE1vZGUgPSA4O1xudmFyIENvbnRleHRDb25zdW1lciA9IDk7XG52YXIgQ29udGV4dFByb3ZpZGVyID0gMTA7XG52YXIgRm9yd2FyZFJlZiA9IDExO1xudmFyIFByb2ZpbGVyID0gMTI7XG52YXIgU3VzcGVuc2VDb21wb25lbnQgPSAxMztcbnZhciBNZW1vQ29tcG9uZW50ID0gMTQ7XG52YXIgU2ltcGxlTWVtb0NvbXBvbmVudCA9IDE1O1xudmFyIExhenlDb21wb25lbnQgPSAxNjtcbnZhciBJbmNvbXBsZXRlQ2xhc3NDb21wb25lbnQgPSAxNztcbnZhciBEZWh5ZHJhdGVkRnJhZ21lbnQgPSAxODtcbnZhciBTdXNwZW5zZUxpc3RDb21wb25lbnQgPSAxOTtcbnZhciBGdW5kYW1lbnRhbENvbXBvbmVudCA9IDIwO1xudmFyIFNjb3BlQ29tcG9uZW50ID0gMjE7XG52YXIgQmxvY2sgPSAyMjtcbnZhciBPZmZzY3JlZW5Db21wb25lbnQgPSAyMztcbnZhciBMZWdhY3lIaWRkZW5Db21wb25lbnQgPSAyNDtcblxuLy8gRmlsdGVyIGNlcnRhaW4gRE9NIGF0dHJpYnV0ZXMgKGUuZy4gc3JjLCBocmVmKSBpZiB0aGVpciB2YWx1ZXMgYXJlIGVtcHR5IHN0cmluZ3MuXG5cbnZhciBlbmFibGVQcm9maWxlclRpbWVyID0gdHJ1ZTsgLy8gUmVjb3JkIGR1cmF0aW9ucyBmb3IgY29tbWl0IGFuZCBwYXNzaXZlIGVmZmVjdHMgcGhhc2VzLlxuXG52YXIgZW5hYmxlRnVuZGFtZW50YWxBUEkgPSBmYWxzZTsgLy8gRXhwZXJpbWVudGFsIFNjb3BlIHN1cHBvcnQuXG52YXIgZW5hYmxlTmV3UmVjb25jaWxlciA9IGZhbHNlOyAvLyBFcnJvcnMgdGhhdCBhcmUgdGhyb3duIHdoaWxlIHVubW91bnRpbmcgKG9yIGFmdGVyIGluIHRoZSBjYXNlIG9mIHBhc3NpdmUgZWZmZWN0cylcbnZhciB3YXJuQWJvdXRTdHJpbmdSZWZzID0gZmFsc2U7XG5cbnZhciBhbGxOYXRpdmVFdmVudHMgPSBuZXcgU2V0KCk7XG4vKipcbiAqIE1hcHBpbmcgZnJvbSByZWdpc3RyYXRpb24gbmFtZSB0byBldmVudCBuYW1lXG4gKi9cblxuXG52YXIgcmVnaXN0cmF0aW9uTmFtZURlcGVuZGVuY2llcyA9IHt9O1xuLyoqXG4gKiBNYXBwaW5nIGZyb20gbG93ZXJjYXNlIHJlZ2lzdHJhdGlvbiBuYW1lcyB0byB0aGUgcHJvcGVybHkgY2FzZWQgdmVyc2lvbixcbiAqIHVzZWQgdG8gd2FybiBpbiB0aGUgY2FzZSBvZiBtaXNzaW5nIGV2ZW50IGhhbmRsZXJzLiBBdmFpbGFibGVcbiAqIG9ubHkgaW4gdHJ1ZS5cbiAqIEB0eXBlIHtPYmplY3R9XG4gKi9cblxudmFyIHBvc3NpYmxlUmVnaXN0cmF0aW9uTmFtZXMgPSAge30gOyAvLyBUcnVzdCB0aGUgZGV2ZWxvcGVyIHRvIG9ubHkgdXNlIHBvc3NpYmxlUmVnaXN0cmF0aW9uTmFtZXMgaW4gdHJ1ZVxuXG5mdW5jdGlvbiByZWdpc3RlclR3b1BoYXNlRXZlbnQocmVnaXN0cmF0aW9uTmFtZSwgZGVwZW5kZW5jaWVzKSB7XG4gIHJlZ2lzdGVyRGlyZWN0RXZlbnQocmVnaXN0cmF0aW9uTmFtZSwgZGVwZW5kZW5jaWVzKTtcbiAgcmVnaXN0ZXJEaXJlY3RFdmVudChyZWdpc3RyYXRpb25OYW1lICsgJ0NhcHR1cmUnLCBkZXBlbmRlbmNpZXMpO1xufVxuZnVuY3Rpb24gcmVnaXN0ZXJEaXJlY3RFdmVudChyZWdpc3RyYXRpb25OYW1lLCBkZXBlbmRlbmNpZXMpIHtcbiAge1xuICAgIGlmIChyZWdpc3RyYXRpb25OYW1lRGVwZW5kZW5jaWVzW3JlZ2lzdHJhdGlvbk5hbWVdKSB7XG4gICAgICBlcnJvcignRXZlbnRSZWdpc3RyeTogTW9yZSB0aGFuIG9uZSBwbHVnaW4gYXR0ZW1wdGVkIHRvIHB1Ymxpc2ggdGhlIHNhbWUgJyArICdyZWdpc3RyYXRpb24gbmFtZSwgYCVzYC4nLCByZWdpc3RyYXRpb25OYW1lKTtcbiAgICB9XG4gIH1cblxuICByZWdpc3RyYXRpb25OYW1lRGVwZW5kZW5jaWVzW3JlZ2lzdHJhdGlvbk5hbWVdID0gZGVwZW5kZW5jaWVzO1xuXG4gIHtcbiAgICB2YXIgbG93ZXJDYXNlZE5hbWUgPSByZWdpc3RyYXRpb25OYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgcG9zc2libGVSZWdpc3RyYXRpb25OYW1lc1tsb3dlckNhc2VkTmFtZV0gPSByZWdpc3RyYXRpb25OYW1lO1xuXG4gICAgaWYgKHJlZ2lzdHJhdGlvbk5hbWUgPT09ICdvbkRvdWJsZUNsaWNrJykge1xuICAgICAgcG9zc2libGVSZWdpc3RyYXRpb25OYW1lcy5vbmRibGNsaWNrID0gcmVnaXN0cmF0aW9uTmFtZTtcbiAgICB9XG4gIH1cblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGRlcGVuZGVuY2llcy5sZW5ndGg7IGkrKykge1xuICAgIGFsbE5hdGl2ZUV2ZW50cy5hZGQoZGVwZW5kZW5jaWVzW2ldKTtcbiAgfVxufVxuXG52YXIgY2FuVXNlRE9NID0gISEodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIHdpbmRvdy5kb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIHdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50ICE9PSAndW5kZWZpbmVkJyk7XG5cbi8vIEEgcmVzZXJ2ZWQgYXR0cmlidXRlLlxuLy8gSXQgaXMgaGFuZGxlZCBieSBSZWFjdCBzZXBhcmF0ZWx5IGFuZCBzaG91bGRuJ3QgYmUgd3JpdHRlbiB0byB0aGUgRE9NLlxudmFyIFJFU0VSVkVEID0gMDsgLy8gQSBzaW1wbGUgc3RyaW5nIGF0dHJpYnV0ZS5cbi8vIEF0dHJpYnV0ZXMgdGhhdCBhcmVuJ3QgaW4gdGhlIGZpbHRlciBhcmUgcHJlc3VtZWQgdG8gaGF2ZSB0aGlzIHR5cGUuXG5cbnZhciBTVFJJTkcgPSAxOyAvLyBBIHN0cmluZyBhdHRyaWJ1dGUgdGhhdCBhY2NlcHRzIGJvb2xlYW5zIGluIFJlYWN0LiBJbiBIVE1MLCB0aGVzZSBhcmUgY2FsbGVkXG4vLyBcImVudW1lcmF0ZWRcIiBhdHRyaWJ1dGVzIHdpdGggXCJ0cnVlXCIgYW5kIFwiZmFsc2VcIiBhcyBwb3NzaWJsZSB2YWx1ZXMuXG4vLyBXaGVuIHRydWUsIGl0IHNob3VsZCBiZSBzZXQgdG8gYSBcInRydWVcIiBzdHJpbmcuXG4vLyBXaGVuIGZhbHNlLCBpdCBzaG91bGQgYmUgc2V0IHRvIGEgXCJmYWxzZVwiIHN0cmluZy5cblxudmFyIEJPT0xFQU5JU0hfU1RSSU5HID0gMjsgLy8gQSByZWFsIGJvb2xlYW4gYXR0cmlidXRlLlxuLy8gV2hlbiB0cnVlLCBpdCBzaG91bGQgYmUgcHJlc2VudCAoc2V0IGVpdGhlciB0byBhbiBlbXB0eSBzdHJpbmcgb3IgaXRzIG5hbWUpLlxuLy8gV2hlbiBmYWxzZSwgaXQgc2hvdWxkIGJlIG9taXR0ZWQuXG5cbnZhciBCT09MRUFOID0gMzsgLy8gQW4gYXR0cmlidXRlIHRoYXQgY2FuIGJlIHVzZWQgYXMgYSBmbGFnIGFzIHdlbGwgYXMgd2l0aCBhIHZhbHVlLlxuLy8gV2hlbiB0cnVlLCBpdCBzaG91bGQgYmUgcHJlc2VudCAoc2V0IGVpdGhlciB0byBhbiBlbXB0eSBzdHJpbmcgb3IgaXRzIG5hbWUpLlxuLy8gV2hlbiBmYWxzZSwgaXQgc2hvdWxkIGJlIG9taXR0ZWQuXG4vLyBGb3IgYW55IG90aGVyIHZhbHVlLCBzaG91bGQgYmUgcHJlc2VudCB3aXRoIHRoYXQgdmFsdWUuXG5cbnZhciBPVkVSTE9BREVEX0JPT0xFQU4gPSA0OyAvLyBBbiBhdHRyaWJ1dGUgdGhhdCBtdXN0IGJlIG51bWVyaWMgb3IgcGFyc2UgYXMgYSBudW1lcmljLlxuLy8gV2hlbiBmYWxzeSwgaXQgc2hvdWxkIGJlIHJlbW92ZWQuXG5cbnZhciBOVU1FUklDID0gNTsgLy8gQW4gYXR0cmlidXRlIHRoYXQgbXVzdCBiZSBwb3NpdGl2ZSBudW1lcmljIG9yIHBhcnNlIGFzIGEgcG9zaXRpdmUgbnVtZXJpYy5cbi8vIFdoZW4gZmFsc3ksIGl0IHNob3VsZCBiZSByZW1vdmVkLlxuXG52YXIgUE9TSVRJVkVfTlVNRVJJQyA9IDY7XG5cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4gKi9cbnZhciBBVFRSSUJVVEVfTkFNRV9TVEFSVF9DSEFSID0gXCI6QS1aX2EtelxcXFx1MDBDMC1cXFxcdTAwRDZcXFxcdTAwRDgtXFxcXHUwMEY2XFxcXHUwMEY4LVxcXFx1MDJGRlxcXFx1MDM3MC1cXFxcdTAzN0RcXFxcdTAzN0YtXFxcXHUxRkZGXFxcXHUyMDBDLVxcXFx1MjAwRFxcXFx1MjA3MC1cXFxcdTIxOEZcXFxcdTJDMDAtXFxcXHUyRkVGXFxcXHUzMDAxLVxcXFx1RDdGRlxcXFx1RjkwMC1cXFxcdUZEQ0ZcXFxcdUZERjAtXFxcXHVGRkZEXCI7XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4gKi9cblxudmFyIEFUVFJJQlVURV9OQU1FX0NIQVIgPSBBVFRSSUJVVEVfTkFNRV9TVEFSVF9DSEFSICsgXCJcXFxcLS4wLTlcXFxcdTAwQjdcXFxcdTAzMDAtXFxcXHUwMzZGXFxcXHUyMDNGLVxcXFx1MjA0MFwiO1xudmFyIFJPT1RfQVRUUklCVVRFX05BTUUgPSAnZGF0YS1yZWFjdHJvb3QnO1xudmFyIFZBTElEX0FUVFJJQlVURV9OQU1FX1JFR0VYID0gbmV3IFJlZ0V4cCgnXlsnICsgQVRUUklCVVRFX05BTUVfU1RBUlRfQ0hBUiArICddWycgKyBBVFRSSUJVVEVfTkFNRV9DSEFSICsgJ10qJCcpO1xudmFyIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbnZhciBpbGxlZ2FsQXR0cmlidXRlTmFtZUNhY2hlID0ge307XG52YXIgdmFsaWRhdGVkQXR0cmlidXRlTmFtZUNhY2hlID0ge307XG5mdW5jdGlvbiBpc0F0dHJpYnV0ZU5hbWVTYWZlKGF0dHJpYnV0ZU5hbWUpIHtcbiAgaWYgKGhhc093blByb3BlcnR5LmNhbGwodmFsaWRhdGVkQXR0cmlidXRlTmFtZUNhY2hlLCBhdHRyaWJ1dGVOYW1lKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoaWxsZWdhbEF0dHJpYnV0ZU5hbWVDYWNoZSwgYXR0cmlidXRlTmFtZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoVkFMSURfQVRUUklCVVRFX05BTUVfUkVHRVgudGVzdChhdHRyaWJ1dGVOYW1lKSkge1xuICAgIHZhbGlkYXRlZEF0dHJpYnV0ZU5hbWVDYWNoZVthdHRyaWJ1dGVOYW1lXSA9IHRydWU7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpbGxlZ2FsQXR0cmlidXRlTmFtZUNhY2hlW2F0dHJpYnV0ZU5hbWVdID0gdHJ1ZTtcblxuICB7XG4gICAgZXJyb3IoJ0ludmFsaWQgYXR0cmlidXRlIG5hbWU6IGAlc2AnLCBhdHRyaWJ1dGVOYW1lKTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cbmZ1bmN0aW9uIHNob3VsZElnbm9yZUF0dHJpYnV0ZShuYW1lLCBwcm9wZXJ0eUluZm8sIGlzQ3VzdG9tQ29tcG9uZW50VGFnKSB7XG4gIGlmIChwcm9wZXJ0eUluZm8gIT09IG51bGwpIHtcbiAgICByZXR1cm4gcHJvcGVydHlJbmZvLnR5cGUgPT09IFJFU0VSVkVEO1xuICB9XG5cbiAgaWYgKGlzQ3VzdG9tQ29tcG9uZW50VGFnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKG5hbWUubGVuZ3RoID4gMiAmJiAobmFtZVswXSA9PT0gJ28nIHx8IG5hbWVbMF0gPT09ICdPJykgJiYgKG5hbWVbMV0gPT09ICduJyB8fCBuYW1lWzFdID09PSAnTicpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5mdW5jdGlvbiBzaG91bGRSZW1vdmVBdHRyaWJ1dGVXaXRoV2FybmluZyhuYW1lLCB2YWx1ZSwgcHJvcGVydHlJbmZvLCBpc0N1c3RvbUNvbXBvbmVudFRhZykge1xuICBpZiAocHJvcGVydHlJbmZvICE9PSBudWxsICYmIHByb3BlcnR5SW5mby50eXBlID09PSBSRVNFUlZFRCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHN3aXRjaCAodHlwZW9mIHZhbHVlKSB7XG4gICAgY2FzZSAnZnVuY3Rpb24nOiAvLyAkRmxvd0lzc3VlIHN5bWJvbCBpcyBwZXJmZWN0bHkgdmFsaWQgaGVyZVxuXG4gICAgY2FzZSAnc3ltYm9sJzpcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiAgICAgIHJldHVybiB0cnVlO1xuXG4gICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICB7XG4gICAgICAgIGlmIChpc0N1c3RvbUNvbXBvbmVudFRhZykge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwcm9wZXJ0eUluZm8gIT09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gIXByb3BlcnR5SW5mby5hY2NlcHRzQm9vbGVhbnM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFyIHByZWZpeCA9IG5hbWUudG9Mb3dlckNhc2UoKS5zbGljZSgwLCA1KTtcbiAgICAgICAgICByZXR1cm4gcHJlZml4ICE9PSAnZGF0YS0nICYmIHByZWZpeCAhPT0gJ2FyaWEtJztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuZnVuY3Rpb24gc2hvdWxkUmVtb3ZlQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBwcm9wZXJ0eUluZm8sIGlzQ3VzdG9tQ29tcG9uZW50VGFnKSB7XG4gIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAoc2hvdWxkUmVtb3ZlQXR0cmlidXRlV2l0aFdhcm5pbmcobmFtZSwgdmFsdWUsIHByb3BlcnR5SW5mbywgaXNDdXN0b21Db21wb25lbnRUYWcpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAoaXNDdXN0b21Db21wb25lbnRUYWcpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAocHJvcGVydHlJbmZvICE9PSBudWxsKSB7XG5cbiAgICBzd2l0Y2ggKHByb3BlcnR5SW5mby50eXBlKSB7XG4gICAgICBjYXNlIEJPT0xFQU46XG4gICAgICAgIHJldHVybiAhdmFsdWU7XG5cbiAgICAgIGNhc2UgT1ZFUkxPQURFRF9CT09MRUFOOlxuICAgICAgICByZXR1cm4gdmFsdWUgPT09IGZhbHNlO1xuXG4gICAgICBjYXNlIE5VTUVSSUM6XG4gICAgICAgIHJldHVybiBpc05hTih2YWx1ZSk7XG5cbiAgICAgIGNhc2UgUE9TSVRJVkVfTlVNRVJJQzpcbiAgICAgICAgcmV0dXJuIGlzTmFOKHZhbHVlKSB8fCB2YWx1ZSA8IDE7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuZnVuY3Rpb24gZ2V0UHJvcGVydHlJbmZvKG5hbWUpIHtcbiAgcmV0dXJuIHByb3BlcnRpZXMuaGFzT3duUHJvcGVydHkobmFtZSkgPyBwcm9wZXJ0aWVzW25hbWVdIDogbnVsbDtcbn1cblxuZnVuY3Rpb24gUHJvcGVydHlJbmZvUmVjb3JkKG5hbWUsIHR5cGUsIG11c3RVc2VQcm9wZXJ0eSwgYXR0cmlidXRlTmFtZSwgYXR0cmlidXRlTmFtZXNwYWNlLCBzYW5pdGl6ZVVSTCwgcmVtb3ZlRW1wdHlTdHJpbmcpIHtcbiAgdGhpcy5hY2NlcHRzQm9vbGVhbnMgPSB0eXBlID09PSBCT09MRUFOSVNIX1NUUklORyB8fCB0eXBlID09PSBCT09MRUFOIHx8IHR5cGUgPT09IE9WRVJMT0FERURfQk9PTEVBTjtcbiAgdGhpcy5hdHRyaWJ1dGVOYW1lID0gYXR0cmlidXRlTmFtZTtcbiAgdGhpcy5hdHRyaWJ1dGVOYW1lc3BhY2UgPSBhdHRyaWJ1dGVOYW1lc3BhY2U7XG4gIHRoaXMubXVzdFVzZVByb3BlcnR5ID0gbXVzdFVzZVByb3BlcnR5O1xuICB0aGlzLnByb3BlcnR5TmFtZSA9IG5hbWU7XG4gIHRoaXMudHlwZSA9IHR5cGU7XG4gIHRoaXMuc2FuaXRpemVVUkwgPSBzYW5pdGl6ZVVSTDtcbiAgdGhpcy5yZW1vdmVFbXB0eVN0cmluZyA9IHJlbW92ZUVtcHR5U3RyaW5nO1xufSAvLyBXaGVuIGFkZGluZyBhdHRyaWJ1dGVzIHRvIHRoaXMgbGlzdCwgYmUgc3VyZSB0byBhbHNvIGFkZCB0aGVtIHRvXG4vLyB0aGUgYHBvc3NpYmxlU3RhbmRhcmROYW1lc2AgbW9kdWxlIHRvIGVuc3VyZSBjYXNpbmcgYW5kIGluY29ycmVjdFxuLy8gbmFtZSB3YXJuaW5ncy5cblxuXG52YXIgcHJvcGVydGllcyA9IHt9OyAvLyBUaGVzZSBwcm9wcyBhcmUgcmVzZXJ2ZWQgYnkgUmVhY3QuIFRoZXkgc2hvdWxkbid0IGJlIHdyaXR0ZW4gdG8gdGhlIERPTS5cblxudmFyIHJlc2VydmVkUHJvcHMgPSBbJ2NoaWxkcmVuJywgJ2Rhbmdlcm91c2x5U2V0SW5uZXJIVE1MJywgLy8gVE9ETzogVGhpcyBwcmV2ZW50cyB0aGUgYXNzaWdubWVudCBvZiBkZWZhdWx0VmFsdWUgdG8gcmVndWxhclxuLy8gZWxlbWVudHMgKG5vdCBqdXN0IGlucHV0cykuIE5vdyB0aGF0IFJlYWN0RE9NSW5wdXQgYXNzaWducyB0byB0aGVcbi8vIGRlZmF1bHRWYWx1ZSBwcm9wZXJ0eSAtLSBkbyB3ZSBuZWVkIHRoaXM/XG4nZGVmYXVsdFZhbHVlJywgJ2RlZmF1bHRDaGVja2VkJywgJ2lubmVySFRNTCcsICdzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmcnLCAnc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nJywgJ3N0eWxlJ107XG5yZXNlcnZlZFByb3BzLmZvckVhY2goZnVuY3Rpb24gKG5hbWUpIHtcbiAgcHJvcGVydGllc1tuYW1lXSA9IG5ldyBQcm9wZXJ0eUluZm9SZWNvcmQobmFtZSwgUkVTRVJWRUQsIGZhbHNlLCAvLyBtdXN0VXNlUHJvcGVydHlcbiAgbmFtZSwgLy8gYXR0cmlidXRlTmFtZVxuICBudWxsLCAvLyBhdHRyaWJ1dGVOYW1lc3BhY2VcbiAgZmFsc2UsIC8vIHNhbml0aXplVVJMXG4gIGZhbHNlKTtcbn0pOyAvLyBBIGZldyBSZWFjdCBzdHJpbmcgYXR0cmlidXRlcyBoYXZlIGEgZGlmZmVyZW50IG5hbWUuXG4vLyBUaGlzIGlzIGEgbWFwcGluZyBmcm9tIFJlYWN0IHByb3AgbmFtZXMgdG8gdGhlIGF0dHJpYnV0ZSBuYW1lcy5cblxuW1snYWNjZXB0Q2hhcnNldCcsICdhY2NlcHQtY2hhcnNldCddLCBbJ2NsYXNzTmFtZScsICdjbGFzcyddLCBbJ2h0bWxGb3InLCAnZm9yJ10sIFsnaHR0cEVxdWl2JywgJ2h0dHAtZXF1aXYnXV0uZm9yRWFjaChmdW5jdGlvbiAoX3JlZikge1xuICB2YXIgbmFtZSA9IF9yZWZbMF0sXG4gICAgICBhdHRyaWJ1dGVOYW1lID0gX3JlZlsxXTtcbiAgcHJvcGVydGllc1tuYW1lXSA9IG5ldyBQcm9wZXJ0eUluZm9SZWNvcmQobmFtZSwgU1RSSU5HLCBmYWxzZSwgLy8gbXVzdFVzZVByb3BlcnR5XG4gIGF0dHJpYnV0ZU5hbWUsIC8vIGF0dHJpYnV0ZU5hbWVcbiAgbnVsbCwgLy8gYXR0cmlidXRlTmFtZXNwYWNlXG4gIGZhbHNlLCAvLyBzYW5pdGl6ZVVSTFxuICBmYWxzZSk7XG59KTsgLy8gVGhlc2UgYXJlIFwiZW51bWVyYXRlZFwiIEhUTUwgYXR0cmlidXRlcyB0aGF0IGFjY2VwdCBcInRydWVcIiBhbmQgXCJmYWxzZVwiLlxuLy8gSW4gUmVhY3QsIHdlIGxldCB1c2VycyBwYXNzIGB0cnVlYCBhbmQgYGZhbHNlYCBldmVuIHRob3VnaCB0ZWNobmljYWxseVxuLy8gdGhlc2UgYXJlbid0IGJvb2xlYW4gYXR0cmlidXRlcyAodGhleSBhcmUgY29lcmNlZCB0byBzdHJpbmdzKS5cblxuWydjb250ZW50RWRpdGFibGUnLCAnZHJhZ2dhYmxlJywgJ3NwZWxsQ2hlY2snLCAndmFsdWUnXS5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7XG4gIHByb3BlcnRpZXNbbmFtZV0gPSBuZXcgUHJvcGVydHlJbmZvUmVjb3JkKG5hbWUsIEJPT0xFQU5JU0hfU1RSSU5HLCBmYWxzZSwgLy8gbXVzdFVzZVByb3BlcnR5XG4gIG5hbWUudG9Mb3dlckNhc2UoKSwgLy8gYXR0cmlidXRlTmFtZVxuICBudWxsLCAvLyBhdHRyaWJ1dGVOYW1lc3BhY2VcbiAgZmFsc2UsIC8vIHNhbml0aXplVVJMXG4gIGZhbHNlKTtcbn0pOyAvLyBUaGVzZSBhcmUgXCJlbnVtZXJhdGVkXCIgU1ZHIGF0dHJpYnV0ZXMgdGhhdCBhY2NlcHQgXCJ0cnVlXCIgYW5kIFwiZmFsc2VcIi5cbi8vIEluIFJlYWN0LCB3ZSBsZXQgdXNlcnMgcGFzcyBgdHJ1ZWAgYW5kIGBmYWxzZWAgZXZlbiB0aG91Z2ggdGVjaG5pY2FsbHlcbi8vIHRoZXNlIGFyZW4ndCBib29sZWFuIGF0dHJpYnV0ZXMgKHRoZXkgYXJlIGNvZXJjZWQgdG8gc3RyaW5ncykuXG4vLyBTaW5jZSB0aGVzZSBhcmUgU1ZHIGF0dHJpYnV0ZXMsIHRoZWlyIGF0dHJpYnV0ZSBuYW1lcyBhcmUgY2FzZS1zZW5zaXRpdmUuXG5cblsnYXV0b1JldmVyc2UnLCAnZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCcsICdmb2N1c2FibGUnLCAncHJlc2VydmVBbHBoYSddLmZvckVhY2goZnVuY3Rpb24gKG5hbWUpIHtcbiAgcHJvcGVydGllc1tuYW1lXSA9IG5ldyBQcm9wZXJ0eUluZm9SZWNvcmQobmFtZSwgQk9PTEVBTklTSF9TVFJJTkcsIGZhbHNlLCAvLyBtdXN0VXNlUHJvcGVydHlcbiAgbmFtZSwgLy8gYXR0cmlidXRlTmFtZVxuICBudWxsLCAvLyBhdHRyaWJ1dGVOYW1lc3BhY2VcbiAgZmFsc2UsIC8vIHNhbml0aXplVVJMXG4gIGZhbHNlKTtcbn0pOyAvLyBUaGVzZSBhcmUgSFRNTCBib29sZWFuIGF0dHJpYnV0ZXMuXG5cblsnYWxsb3dGdWxsU2NyZWVuJywgJ2FzeW5jJywgLy8gTm90ZTogdGhlcmUgaXMgYSBzcGVjaWFsIGNhc2UgdGhhdCBwcmV2ZW50cyBpdCBmcm9tIGJlaW5nIHdyaXR0ZW4gdG8gdGhlIERPTVxuLy8gb24gdGhlIGNsaWVudCBzaWRlIGJlY2F1c2UgdGhlIGJyb3dzZXJzIGFyZSBpbmNvbnNpc3RlbnQuIEluc3RlYWQgd2UgY2FsbCBmb2N1cygpLlxuJ2F1dG9Gb2N1cycsICdhdXRvUGxheScsICdjb250cm9scycsICdkZWZhdWx0JywgJ2RlZmVyJywgJ2Rpc2FibGVkJywgJ2Rpc2FibGVQaWN0dXJlSW5QaWN0dXJlJywgJ2Rpc2FibGVSZW1vdGVQbGF5YmFjaycsICdmb3JtTm9WYWxpZGF0ZScsICdoaWRkZW4nLCAnbG9vcCcsICdub01vZHVsZScsICdub1ZhbGlkYXRlJywgJ29wZW4nLCAncGxheXNJbmxpbmUnLCAncmVhZE9ubHknLCAncmVxdWlyZWQnLCAncmV2ZXJzZWQnLCAnc2NvcGVkJywgJ3NlYW1sZXNzJywgLy8gTWljcm9kYXRhXG4naXRlbVNjb3BlJ10uZm9yRWFjaChmdW5jdGlvbiAobmFtZSkge1xuICBwcm9wZXJ0aWVzW25hbWVdID0gbmV3IFByb3BlcnR5SW5mb1JlY29yZChuYW1lLCBCT09MRUFOLCBmYWxzZSwgLy8gbXVzdFVzZVByb3BlcnR5XG4gIG5hbWUudG9Mb3dlckNhc2UoKSwgLy8gYXR0cmlidXRlTmFtZVxuICBudWxsLCAvLyBhdHRyaWJ1dGVOYW1lc3BhY2VcbiAgZmFsc2UsIC8vIHNhbml0aXplVVJMXG4gIGZhbHNlKTtcbn0pOyAvLyBUaGVzZSBhcmUgdGhlIGZldyBSZWFjdCBwcm9wcyB0aGF0IHdlIHNldCBhcyBET00gcHJvcGVydGllc1xuLy8gcmF0aGVyIHRoYW4gYXR0cmlidXRlcy4gVGhlc2UgYXJlIGFsbCBib29sZWFucy5cblxuWydjaGVja2VkJywgLy8gTm90ZTogYG9wdGlvbi5zZWxlY3RlZGAgaXMgbm90IHVwZGF0ZWQgaWYgYHNlbGVjdC5tdWx0aXBsZWAgaXNcbi8vIGRpc2FibGVkIHdpdGggYHJlbW92ZUF0dHJpYnV0ZWAuIFdlIGhhdmUgc3BlY2lhbCBsb2dpYyBmb3IgaGFuZGxpbmcgdGhpcy5cbidtdWx0aXBsZScsICdtdXRlZCcsICdzZWxlY3RlZCcgLy8gTk9URTogaWYgeW91IGFkZCBhIGNhbWVsQ2FzZWQgcHJvcCB0byB0aGlzIGxpc3QsXG4vLyB5b3UnbGwgbmVlZCB0byBzZXQgYXR0cmlidXRlTmFtZSB0byBuYW1lLnRvTG93ZXJDYXNlKClcbi8vIGluc3RlYWQgaW4gdGhlIGFzc2lnbm1lbnQgYmVsb3cuXG5dLmZvckVhY2goZnVuY3Rpb24gKG5hbWUpIHtcbiAgcHJvcGVydGllc1tuYW1lXSA9IG5ldyBQcm9wZXJ0eUluZm9SZWNvcmQobmFtZSwgQk9PTEVBTiwgdHJ1ZSwgLy8gbXVzdFVzZVByb3BlcnR5XG4gIG5hbWUsIC8vIGF0dHJpYnV0ZU5hbWVcbiAgbnVsbCwgLy8gYXR0cmlidXRlTmFtZXNwYWNlXG4gIGZhbHNlLCAvLyBzYW5pdGl6ZVVSTFxuICBmYWxzZSk7XG59KTsgLy8gVGhlc2UgYXJlIEhUTUwgYXR0cmlidXRlcyB0aGF0IGFyZSBcIm92ZXJsb2FkZWQgYm9vbGVhbnNcIjogdGhleSBiZWhhdmUgbGlrZVxuLy8gYm9vbGVhbnMsIGJ1dCBjYW4gYWxzbyBhY2NlcHQgYSBzdHJpbmcgdmFsdWUuXG5cblsnY2FwdHVyZScsICdkb3dubG9hZCcgLy8gTk9URTogaWYgeW91IGFkZCBhIGNhbWVsQ2FzZWQgcHJvcCB0byB0aGlzIGxpc3QsXG4vLyB5b3UnbGwgbmVlZCB0byBzZXQgYXR0cmlidXRlTmFtZSB0byBuYW1lLnRvTG93ZXJDYXNlKClcbi8vIGluc3RlYWQgaW4gdGhlIGFzc2lnbm1lbnQgYmVsb3cuXG5dLmZvckVhY2goZnVuY3Rpb24gKG5hbWUpIHtcbiAgcHJvcGVydGllc1tuYW1lXSA9IG5ldyBQcm9wZXJ0eUluZm9SZWNvcmQobmFtZSwgT1ZFUkxPQURFRF9CT09MRUFOLCBmYWxzZSwgLy8gbXVzdFVzZVByb3BlcnR5XG4gIG5hbWUsIC8vIGF0dHJpYnV0ZU5hbWVcbiAgbnVsbCwgLy8gYXR0cmlidXRlTmFtZXNwYWNlXG4gIGZhbHNlLCAvLyBzYW5pdGl6ZVVSTFxuICBmYWxzZSk7XG59KTsgLy8gVGhlc2UgYXJlIEhUTUwgYXR0cmlidXRlcyB0aGF0IG11c3QgYmUgcG9zaXRpdmUgbnVtYmVycy5cblxuWydjb2xzJywgJ3Jvd3MnLCAnc2l6ZScsICdzcGFuJyAvLyBOT1RFOiBpZiB5b3UgYWRkIGEgY2FtZWxDYXNlZCBwcm9wIHRvIHRoaXMgbGlzdCxcbi8vIHlvdSdsbCBuZWVkIHRvIHNldCBhdHRyaWJ1dGVOYW1lIHRvIG5hbWUudG9Mb3dlckNhc2UoKVxuLy8gaW5zdGVhZCBpbiB0aGUgYXNzaWdubWVudCBiZWxvdy5cbl0uZm9yRWFjaChmdW5jdGlvbiAobmFtZSkge1xuICBwcm9wZXJ0aWVzW25hbWVdID0gbmV3IFByb3BlcnR5SW5mb1JlY29yZChuYW1lLCBQT1NJVElWRV9OVU1FUklDLCBmYWxzZSwgLy8gbXVzdFVzZVByb3BlcnR5XG4gIG5hbWUsIC8vIGF0dHJpYnV0ZU5hbWVcbiAgbnVsbCwgLy8gYXR0cmlidXRlTmFtZXNwYWNlXG4gIGZhbHNlLCAvLyBzYW5pdGl6ZVVSTFxuICBmYWxzZSk7XG59KTsgLy8gVGhlc2UgYXJlIEhUTUwgYXR0cmlidXRlcyB0aGF0IG11c3QgYmUgbnVtYmVycy5cblxuWydyb3dTcGFuJywgJ3N0YXJ0J10uZm9yRWFjaChmdW5jdGlvbiAobmFtZSkge1xuICBwcm9wZXJ0aWVzW25hbWVdID0gbmV3IFByb3BlcnR5SW5mb1JlY29yZChuYW1lLCBOVU1FUklDLCBmYWxzZSwgLy8gbXVzdFVzZVByb3BlcnR5XG4gIG5hbWUudG9Mb3dlckNhc2UoKSwgLy8gYXR0cmlidXRlTmFtZVxuICBudWxsLCAvLyBhdHRyaWJ1dGVOYW1lc3BhY2VcbiAgZmFsc2UsIC8vIHNhbml0aXplVVJMXG4gIGZhbHNlKTtcbn0pO1xudmFyIENBTUVMSVpFID0gL1tcXC1cXDpdKFthLXpdKS9nO1xuXG52YXIgY2FwaXRhbGl6ZSA9IGZ1bmN0aW9uICh0b2tlbikge1xuICByZXR1cm4gdG9rZW5bMV0udG9VcHBlckNhc2UoKTtcbn07IC8vIFRoaXMgaXMgYSBsaXN0IG9mIGFsbCBTVkcgYXR0cmlidXRlcyB0aGF0IG5lZWQgc3BlY2lhbCBjYXNpbmcsIG5hbWVzcGFjaW5nLFxuLy8gb3IgYm9vbGVhbiB2YWx1ZSBhc3NpZ25tZW50LiBSZWd1bGFyIGF0dHJpYnV0ZXMgdGhhdCBqdXN0IGFjY2VwdCBzdHJpbmdzXG4vLyBhbmQgaGF2ZSB0aGUgc2FtZSBuYW1lcyBhcmUgb21pdHRlZCwganVzdCBsaWtlIGluIHRoZSBIVE1MIGF0dHJpYnV0ZSBmaWx0ZXIuXG4vLyBTb21lIG9mIHRoZXNlIGF0dHJpYnV0ZXMgY2FuIGJlIGhhcmQgdG8gZmluZC4gVGhpcyBsaXN0IHdhcyBjcmVhdGVkIGJ5XG4vLyBzY3JhcGluZyB0aGUgTUROIGRvY3VtZW50YXRpb24uXG5cblxuWydhY2NlbnQtaGVpZ2h0JywgJ2FsaWdubWVudC1iYXNlbGluZScsICdhcmFiaWMtZm9ybScsICdiYXNlbGluZS1zaGlmdCcsICdjYXAtaGVpZ2h0JywgJ2NsaXAtcGF0aCcsICdjbGlwLXJ1bGUnLCAnY29sb3ItaW50ZXJwb2xhdGlvbicsICdjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnMnLCAnY29sb3ItcHJvZmlsZScsICdjb2xvci1yZW5kZXJpbmcnLCAnZG9taW5hbnQtYmFzZWxpbmUnLCAnZW5hYmxlLWJhY2tncm91bmQnLCAnZmlsbC1vcGFjaXR5JywgJ2ZpbGwtcnVsZScsICdmbG9vZC1jb2xvcicsICdmbG9vZC1vcGFjaXR5JywgJ2ZvbnQtZmFtaWx5JywgJ2ZvbnQtc2l6ZScsICdmb250LXNpemUtYWRqdXN0JywgJ2ZvbnQtc3RyZXRjaCcsICdmb250LXN0eWxlJywgJ2ZvbnQtdmFyaWFudCcsICdmb250LXdlaWdodCcsICdnbHlwaC1uYW1lJywgJ2dseXBoLW9yaWVudGF0aW9uLWhvcml6b250YWwnLCAnZ2x5cGgtb3JpZW50YXRpb24tdmVydGljYWwnLCAnaG9yaXotYWR2LXgnLCAnaG9yaXotb3JpZ2luLXgnLCAnaW1hZ2UtcmVuZGVyaW5nJywgJ2xldHRlci1zcGFjaW5nJywgJ2xpZ2h0aW5nLWNvbG9yJywgJ21hcmtlci1lbmQnLCAnbWFya2VyLW1pZCcsICdtYXJrZXItc3RhcnQnLCAnb3ZlcmxpbmUtcG9zaXRpb24nLCAnb3ZlcmxpbmUtdGhpY2tuZXNzJywgJ3BhaW50LW9yZGVyJywgJ3Bhbm9zZS0xJywgJ3BvaW50ZXItZXZlbnRzJywgJ3JlbmRlcmluZy1pbnRlbnQnLCAnc2hhcGUtcmVuZGVyaW5nJywgJ3N0b3AtY29sb3InLCAnc3RvcC1vcGFjaXR5JywgJ3N0cmlrZXRocm91Z2gtcG9zaXRpb24nLCAnc3RyaWtldGhyb3VnaC10aGlja25lc3MnLCAnc3Ryb2tlLWRhc2hhcnJheScsICdzdHJva2UtZGFzaG9mZnNldCcsICdzdHJva2UtbGluZWNhcCcsICdzdHJva2UtbGluZWpvaW4nLCAnc3Ryb2tlLW1pdGVybGltaXQnLCAnc3Ryb2tlLW9wYWNpdHknLCAnc3Ryb2tlLXdpZHRoJywgJ3RleHQtYW5jaG9yJywgJ3RleHQtZGVjb3JhdGlvbicsICd0ZXh0LXJlbmRlcmluZycsICd1bmRlcmxpbmUtcG9zaXRpb24nLCAndW5kZXJsaW5lLXRoaWNrbmVzcycsICd1bmljb2RlLWJpZGknLCAndW5pY29kZS1yYW5nZScsICd1bml0cy1wZXItZW0nLCAndi1hbHBoYWJldGljJywgJ3YtaGFuZ2luZycsICd2LWlkZW9ncmFwaGljJywgJ3YtbWF0aGVtYXRpY2FsJywgJ3ZlY3Rvci1lZmZlY3QnLCAndmVydC1hZHYteScsICd2ZXJ0LW9yaWdpbi14JywgJ3ZlcnQtb3JpZ2luLXknLCAnd29yZC1zcGFjaW5nJywgJ3dyaXRpbmctbW9kZScsICd4bWxuczp4bGluaycsICd4LWhlaWdodCcgLy8gTk9URTogaWYgeW91IGFkZCBhIGNhbWVsQ2FzZWQgcHJvcCB0byB0aGlzIGxpc3QsXG4vLyB5b3UnbGwgbmVlZCB0byBzZXQgYXR0cmlidXRlTmFtZSB0byBuYW1lLnRvTG93ZXJDYXNlKClcbi8vIGluc3RlYWQgaW4gdGhlIGFzc2lnbm1lbnQgYmVsb3cuXG5dLmZvckVhY2goZnVuY3Rpb24gKGF0dHJpYnV0ZU5hbWUpIHtcbiAgdmFyIG5hbWUgPSBhdHRyaWJ1dGVOYW1lLnJlcGxhY2UoQ0FNRUxJWkUsIGNhcGl0YWxpemUpO1xuICBwcm9wZXJ0aWVzW25hbWVdID0gbmV3IFByb3BlcnR5SW5mb1JlY29yZChuYW1lLCBTVFJJTkcsIGZhbHNlLCAvLyBtdXN0VXNlUHJvcGVydHlcbiAgYXR0cmlidXRlTmFtZSwgbnVsbCwgLy8gYXR0cmlidXRlTmFtZXNwYWNlXG4gIGZhbHNlLCAvLyBzYW5pdGl6ZVVSTFxuICBmYWxzZSk7XG59KTsgLy8gU3RyaW5nIFNWRyBhdHRyaWJ1dGVzIHdpdGggdGhlIHhsaW5rIG5hbWVzcGFjZS5cblxuWyd4bGluazphY3R1YXRlJywgJ3hsaW5rOmFyY3JvbGUnLCAneGxpbms6cm9sZScsICd4bGluazpzaG93JywgJ3hsaW5rOnRpdGxlJywgJ3hsaW5rOnR5cGUnIC8vIE5PVEU6IGlmIHlvdSBhZGQgYSBjYW1lbENhc2VkIHByb3AgdG8gdGhpcyBsaXN0LFxuLy8geW91J2xsIG5lZWQgdG8gc2V0IGF0dHJpYnV0ZU5hbWUgdG8gbmFtZS50b0xvd2VyQ2FzZSgpXG4vLyBpbnN0ZWFkIGluIHRoZSBhc3NpZ25tZW50IGJlbG93LlxuXS5mb3JFYWNoKGZ1bmN0aW9uIChhdHRyaWJ1dGVOYW1lKSB7XG4gIHZhciBuYW1lID0gYXR0cmlidXRlTmFtZS5yZXBsYWNlKENBTUVMSVpFLCBjYXBpdGFsaXplKTtcbiAgcHJvcGVydGllc1tuYW1lXSA9IG5ldyBQcm9wZXJ0eUluZm9SZWNvcmQobmFtZSwgU1RSSU5HLCBmYWxzZSwgLy8gbXVzdFVzZVByb3BlcnR5XG4gIGF0dHJpYnV0ZU5hbWUsICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJywgZmFsc2UsIC8vIHNhbml0aXplVVJMXG4gIGZhbHNlKTtcbn0pOyAvLyBTdHJpbmcgU1ZHIGF0dHJpYnV0ZXMgd2l0aCB0aGUgeG1sIG5hbWVzcGFjZS5cblxuWyd4bWw6YmFzZScsICd4bWw6bGFuZycsICd4bWw6c3BhY2UnIC8vIE5PVEU6IGlmIHlvdSBhZGQgYSBjYW1lbENhc2VkIHByb3AgdG8gdGhpcyBsaXN0LFxuLy8geW91J2xsIG5lZWQgdG8gc2V0IGF0dHJpYnV0ZU5hbWUgdG8gbmFtZS50b0xvd2VyQ2FzZSgpXG4vLyBpbnN0ZWFkIGluIHRoZSBhc3NpZ25tZW50IGJlbG93LlxuXS5mb3JFYWNoKGZ1bmN0aW9uIChhdHRyaWJ1dGVOYW1lKSB7XG4gIHZhciBuYW1lID0gYXR0cmlidXRlTmFtZS5yZXBsYWNlKENBTUVMSVpFLCBjYXBpdGFsaXplKTtcbiAgcHJvcGVydGllc1tuYW1lXSA9IG5ldyBQcm9wZXJ0eUluZm9SZWNvcmQobmFtZSwgU1RSSU5HLCBmYWxzZSwgLy8gbXVzdFVzZVByb3BlcnR5XG4gIGF0dHJpYnV0ZU5hbWUsICdodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UnLCBmYWxzZSwgLy8gc2FuaXRpemVVUkxcbiAgZmFsc2UpO1xufSk7IC8vIFRoZXNlIGF0dHJpYnV0ZSBleGlzdHMgYm90aCBpbiBIVE1MIGFuZCBTVkcuXG4vLyBUaGUgYXR0cmlidXRlIG5hbWUgaXMgY2FzZS1zZW5zaXRpdmUgaW4gU1ZHIHNvIHdlIGNhbid0IGp1c3QgdXNlXG4vLyB0aGUgUmVhY3QgbmFtZSBsaWtlIHdlIGRvIGZvciBhdHRyaWJ1dGVzIHRoYXQgZXhpc3Qgb25seSBpbiBIVE1MLlxuXG5bJ3RhYkluZGV4JywgJ2Nyb3NzT3JpZ2luJ10uZm9yRWFjaChmdW5jdGlvbiAoYXR0cmlidXRlTmFtZSkge1xuICBwcm9wZXJ0aWVzW2F0dHJpYnV0ZU5hbWVdID0gbmV3IFByb3BlcnR5SW5mb1JlY29yZChhdHRyaWJ1dGVOYW1lLCBTVFJJTkcsIGZhbHNlLCAvLyBtdXN0VXNlUHJvcGVydHlcbiAgYXR0cmlidXRlTmFtZS50b0xvd2VyQ2FzZSgpLCAvLyBhdHRyaWJ1dGVOYW1lXG4gIG51bGwsIC8vIGF0dHJpYnV0ZU5hbWVzcGFjZVxuICBmYWxzZSwgLy8gc2FuaXRpemVVUkxcbiAgZmFsc2UpO1xufSk7IC8vIFRoZXNlIGF0dHJpYnV0ZXMgYWNjZXB0IFVSTHMuIFRoZXNlIG11c3Qgbm90IGFsbG93IGphdmFzY3JpcHQ6IFVSTFMuXG4vLyBUaGVzZSB3aWxsIGFsc28gbmVlZCB0byBhY2NlcHQgVHJ1c3RlZCBUeXBlcyBvYmplY3QgaW4gdGhlIGZ1dHVyZS5cblxudmFyIHhsaW5rSHJlZiA9ICd4bGlua0hyZWYnO1xucHJvcGVydGllc1t4bGlua0hyZWZdID0gbmV3IFByb3BlcnR5SW5mb1JlY29yZCgneGxpbmtIcmVmJywgU1RSSU5HLCBmYWxzZSwgLy8gbXVzdFVzZVByb3BlcnR5XG4neGxpbms6aHJlZicsICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJywgdHJ1ZSwgLy8gc2FuaXRpemVVUkxcbmZhbHNlKTtcblsnc3JjJywgJ2hyZWYnLCAnYWN0aW9uJywgJ2Zvcm1BY3Rpb24nXS5mb3JFYWNoKGZ1bmN0aW9uIChhdHRyaWJ1dGVOYW1lKSB7XG4gIHByb3BlcnRpZXNbYXR0cmlidXRlTmFtZV0gPSBuZXcgUHJvcGVydHlJbmZvUmVjb3JkKGF0dHJpYnV0ZU5hbWUsIFNUUklORywgZmFsc2UsIC8vIG11c3RVc2VQcm9wZXJ0eVxuICBhdHRyaWJ1dGVOYW1lLnRvTG93ZXJDYXNlKCksIC8vIGF0dHJpYnV0ZU5hbWVcbiAgbnVsbCwgLy8gYXR0cmlidXRlTmFtZXNwYWNlXG4gIHRydWUsIC8vIHNhbml0aXplVVJMXG4gIHRydWUpO1xufSk7XG5cbi8vIGFuZCBhbnkgbmV3bGluZSBvciB0YWIgYXJlIGZpbHRlcmVkIG91dCBhcyBpZiB0aGV5J3JlIG5vdCBwYXJ0IG9mIHRoZSBVUkwuXG4vLyBodHRwczovL3VybC5zcGVjLndoYXR3Zy5vcmcvI3VybC1wYXJzaW5nXG4vLyBUYWIgb3IgbmV3bGluZSBhcmUgZGVmaW5lZCBhcyBcXHJcXG5cXHQ6XG4vLyBodHRwczovL2luZnJhLnNwZWMud2hhdHdnLm9yZy8jYXNjaWktdGFiLW9yLW5ld2xpbmVcbi8vIEEgQzAgY29udHJvbCBpcyBhIGNvZGUgcG9pbnQgaW4gdGhlIHJhbmdlIFxcdTAwMDAgTlVMTCB0byBcXHUwMDFGXG4vLyBJTkZPUk1BVElPTiBTRVBBUkFUT1IgT05FLCBpbmNsdXNpdmU6XG4vLyBodHRwczovL2luZnJhLnNwZWMud2hhdHdnLm9yZy8jYzAtY29udHJvbC1vci1zcGFjZVxuXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuICovXG5cbnZhciBpc0phdmFTY3JpcHRQcm90b2NvbCA9IC9eW1xcdTAwMDAtXFx1MDAxRiBdKmpbXFxyXFxuXFx0XSphW1xcclxcblxcdF0qdltcXHJcXG5cXHRdKmFbXFxyXFxuXFx0XSpzW1xcclxcblxcdF0qY1tcXHJcXG5cXHRdKnJbXFxyXFxuXFx0XSppW1xcclxcblxcdF0qcFtcXHJcXG5cXHRdKnRbXFxyXFxuXFx0XSpcXDovaTtcbnZhciBkaWRXYXJuID0gZmFsc2U7XG5cbmZ1bmN0aW9uIHNhbml0aXplVVJMKHVybCkge1xuICB7XG4gICAgaWYgKCFkaWRXYXJuICYmIGlzSmF2YVNjcmlwdFByb3RvY29sLnRlc3QodXJsKSkge1xuICAgICAgZGlkV2FybiA9IHRydWU7XG5cbiAgICAgIGVycm9yKCdBIGZ1dHVyZSB2ZXJzaW9uIG9mIFJlYWN0IHdpbGwgYmxvY2sgamF2YXNjcmlwdDogVVJMcyBhcyBhIHNlY3VyaXR5IHByZWNhdXRpb24uICcgKyAnVXNlIGV2ZW50IGhhbmRsZXJzIGluc3RlYWQgaWYgeW91IGNhbi4gSWYgeW91IG5lZWQgdG8gZ2VuZXJhdGUgdW5zYWZlIEhUTUwgdHJ5ICcgKyAndXNpbmcgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgaW5zdGVhZC4gUmVhY3Qgd2FzIHBhc3NlZCAlcy4nLCBKU09OLnN0cmluZ2lmeSh1cmwpKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBHZXQgdGhlIHZhbHVlIGZvciBhIHByb3BlcnR5IG9uIGEgbm9kZS4gT25seSB1c2VkIGluIERFViBmb3IgU1NSIHZhbGlkYXRpb24uXG4gKiBUaGUgXCJleHBlY3RlZFwiIGFyZ3VtZW50IGlzIHVzZWQgYXMgYSBoaW50IG9mIHdoYXQgdGhlIGV4cGVjdGVkIHZhbHVlIGlzLlxuICogU29tZSBwcm9wZXJ0aWVzIGhhdmUgbXVsdGlwbGUgZXF1aXZhbGVudCB2YWx1ZXMuXG4gKi9cbmZ1bmN0aW9uIGdldFZhbHVlRm9yUHJvcGVydHkobm9kZSwgbmFtZSwgZXhwZWN0ZWQsIHByb3BlcnR5SW5mbykge1xuICB7XG4gICAgaWYgKHByb3BlcnR5SW5mby5tdXN0VXNlUHJvcGVydHkpIHtcbiAgICAgIHZhciBwcm9wZXJ0eU5hbWUgPSBwcm9wZXJ0eUluZm8ucHJvcGVydHlOYW1lO1xuICAgICAgcmV0dXJuIG5vZGVbcHJvcGVydHlOYW1lXTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCBwcm9wZXJ0eUluZm8uc2FuaXRpemVVUkwpIHtcbiAgICAgICAgLy8gSWYgd2UgaGF2ZW4ndCBmdWxseSBkaXNhYmxlZCBqYXZhc2NyaXB0OiBVUkxzLCBhbmQgaWZcbiAgICAgICAgLy8gdGhlIGh5ZHJhdGlvbiBpcyBzdWNjZXNzZnVsIG9mIGEgamF2YXNjcmlwdDogVVJMLCB3ZVxuICAgICAgICAvLyBzdGlsbCB3YW50IHRvIHdhcm4gb24gdGhlIGNsaWVudC5cbiAgICAgICAgc2FuaXRpemVVUkwoJycgKyBleHBlY3RlZCk7XG4gICAgICB9XG5cbiAgICAgIHZhciBhdHRyaWJ1dGVOYW1lID0gcHJvcGVydHlJbmZvLmF0dHJpYnV0ZU5hbWU7XG4gICAgICB2YXIgc3RyaW5nVmFsdWUgPSBudWxsO1xuXG4gICAgICBpZiAocHJvcGVydHlJbmZvLnR5cGUgPT09IE9WRVJMT0FERURfQk9PTEVBTikge1xuICAgICAgICBpZiAobm9kZS5oYXNBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSkpIHtcbiAgICAgICAgICB2YXIgdmFsdWUgPSBub2RlLmdldEF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKTtcblxuICAgICAgICAgIGlmICh2YWx1ZSA9PT0gJycpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChzaG91bGRSZW1vdmVBdHRyaWJ1dGUobmFtZSwgZXhwZWN0ZWQsIHByb3BlcnR5SW5mbywgZmFsc2UpKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHZhbHVlID09PSAnJyArIGV4cGVjdGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gZXhwZWN0ZWQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKG5vZGUuaGFzQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpKSB7XG4gICAgICAgIGlmIChzaG91bGRSZW1vdmVBdHRyaWJ1dGUobmFtZSwgZXhwZWN0ZWQsIHByb3BlcnR5SW5mbywgZmFsc2UpKSB7XG4gICAgICAgICAgLy8gV2UgaGFkIGFuIGF0dHJpYnV0ZSBidXQgc2hvdWxkbid0IGhhdmUgaGFkIG9uZSwgc28gcmVhZCBpdFxuICAgICAgICAgIC8vIGZvciB0aGUgZXJyb3IgbWVzc2FnZS5cbiAgICAgICAgICByZXR1cm4gbm9kZS5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocHJvcGVydHlJbmZvLnR5cGUgPT09IEJPT0xFQU4pIHtcbiAgICAgICAgICAvLyBJZiB0aGlzIHdhcyBhIGJvb2xlYW4sIGl0IGRvZXNuJ3QgbWF0dGVyIHdoYXQgdGhlIHZhbHVlIGlzXG4gICAgICAgICAgLy8gdGhlIGZhY3QgdGhhdCB3ZSBoYXZlIGl0IGlzIHRoZSBzYW1lIGFzIHRoZSBleHBlY3RlZC5cbiAgICAgICAgICByZXR1cm4gZXhwZWN0ZWQ7XG4gICAgICAgIH0gLy8gRXZlbiBpZiB0aGlzIHByb3BlcnR5IHVzZXMgYSBuYW1lc3BhY2Ugd2UgdXNlIGdldEF0dHJpYnV0ZVxuICAgICAgICAvLyBiZWNhdXNlIHdlIGFzc3VtZSBpdHMgbmFtZXNwYWNlZCBuYW1lIGlzIHRoZSBzYW1lIGFzIG91ciBjb25maWcuXG4gICAgICAgIC8vIFRvIHVzZSBnZXRBdHRyaWJ1dGVOUyB3ZSBuZWVkIHRoZSBsb2NhbCBuYW1lIHdoaWNoIHdlIGRvbid0IGhhdmVcbiAgICAgICAgLy8gaW4gb3VyIGNvbmZpZyBhdG0uXG5cblxuICAgICAgICBzdHJpbmdWYWx1ZSA9IG5vZGUuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpO1xuICAgICAgfVxuXG4gICAgICBpZiAoc2hvdWxkUmVtb3ZlQXR0cmlidXRlKG5hbWUsIGV4cGVjdGVkLCBwcm9wZXJ0eUluZm8sIGZhbHNlKSkge1xuICAgICAgICByZXR1cm4gc3RyaW5nVmFsdWUgPT09IG51bGwgPyBleHBlY3RlZCA6IHN0cmluZ1ZhbHVlO1xuICAgICAgfSBlbHNlIGlmIChzdHJpbmdWYWx1ZSA9PT0gJycgKyBleHBlY3RlZCkge1xuICAgICAgICByZXR1cm4gZXhwZWN0ZWQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gc3RyaW5nVmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4vKipcbiAqIEdldCB0aGUgdmFsdWUgZm9yIGEgYXR0cmlidXRlIG9uIGEgbm9kZS4gT25seSB1c2VkIGluIERFViBmb3IgU1NSIHZhbGlkYXRpb24uXG4gKiBUaGUgdGhpcmQgYXJndW1lbnQgaXMgdXNlZCBhcyBhIGhpbnQgb2Ygd2hhdCB0aGUgZXhwZWN0ZWQgdmFsdWUgaXMuIFNvbWVcbiAqIGF0dHJpYnV0ZXMgaGF2ZSBtdWx0aXBsZSBlcXVpdmFsZW50IHZhbHVlcy5cbiAqL1xuXG5mdW5jdGlvbiBnZXRWYWx1ZUZvckF0dHJpYnV0ZShub2RlLCBuYW1lLCBleHBlY3RlZCkge1xuICB7XG4gICAgaWYgKCFpc0F0dHJpYnV0ZU5hbWVTYWZlKG5hbWUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfSAvLyBJZiB0aGUgb2JqZWN0IGlzIGFuIG9wYXF1ZSByZWZlcmVuY2UgSUQsIGl0J3MgZXhwZWN0ZWQgdGhhdFxuICAgIC8vIHRoZSBuZXh0IHByb3AgaXMgZGlmZmVyZW50IHRoYW4gdGhlIHNlcnZlciB2YWx1ZSwgc28ganVzdCByZXR1cm5cbiAgICAvLyBleHBlY3RlZFxuXG5cbiAgICBpZiAoaXNPcGFxdWVIeWRyYXRpbmdPYmplY3QoZXhwZWN0ZWQpKSB7XG4gICAgICByZXR1cm4gZXhwZWN0ZWQ7XG4gICAgfVxuXG4gICAgaWYgKCFub2RlLmhhc0F0dHJpYnV0ZShuYW1lKSkge1xuICAgICAgcmV0dXJuIGV4cGVjdGVkID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiBudWxsO1xuICAgIH1cblxuICAgIHZhciB2YWx1ZSA9IG5vZGUuZ2V0QXR0cmlidXRlKG5hbWUpO1xuXG4gICAgaWYgKHZhbHVlID09PSAnJyArIGV4cGVjdGVkKSB7XG4gICAgICByZXR1cm4gZXhwZWN0ZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59XG4vKipcbiAqIFNldHMgdGhlIHZhbHVlIGZvciBhIHByb3BlcnR5IG9uIGEgbm9kZS5cbiAqXG4gKiBAcGFyYW0ge0RPTUVsZW1lbnR9IG5vZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lXG4gKiBAcGFyYW0geyp9IHZhbHVlXG4gKi9cblxuZnVuY3Rpb24gc2V0VmFsdWVGb3JQcm9wZXJ0eShub2RlLCBuYW1lLCB2YWx1ZSwgaXNDdXN0b21Db21wb25lbnRUYWcpIHtcbiAgdmFyIHByb3BlcnR5SW5mbyA9IGdldFByb3BlcnR5SW5mbyhuYW1lKTtcblxuICBpZiAoc2hvdWxkSWdub3JlQXR0cmlidXRlKG5hbWUsIHByb3BlcnR5SW5mbywgaXNDdXN0b21Db21wb25lbnRUYWcpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKHNob3VsZFJlbW92ZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgcHJvcGVydHlJbmZvLCBpc0N1c3RvbUNvbXBvbmVudFRhZykpIHtcbiAgICB2YWx1ZSA9IG51bGw7XG4gIH0gLy8gSWYgdGhlIHByb3AgaXNuJ3QgaW4gdGhlIHNwZWNpYWwgbGlzdCwgdHJlYXQgaXQgYXMgYSBzaW1wbGUgYXR0cmlidXRlLlxuXG5cbiAgaWYgKGlzQ3VzdG9tQ29tcG9uZW50VGFnIHx8IHByb3BlcnR5SW5mbyA9PT0gbnVsbCkge1xuICAgIGlmIChpc0F0dHJpYnV0ZU5hbWVTYWZlKG5hbWUpKSB7XG4gICAgICB2YXIgX2F0dHJpYnV0ZU5hbWUgPSBuYW1lO1xuXG4gICAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgbm9kZS5yZW1vdmVBdHRyaWJ1dGUoX2F0dHJpYnV0ZU5hbWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoX2F0dHJpYnV0ZU5hbWUsICAnJyArIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgbXVzdFVzZVByb3BlcnR5ID0gcHJvcGVydHlJbmZvLm11c3RVc2VQcm9wZXJ0eTtcblxuICBpZiAobXVzdFVzZVByb3BlcnR5KSB7XG4gICAgdmFyIHByb3BlcnR5TmFtZSA9IHByb3BlcnR5SW5mby5wcm9wZXJ0eU5hbWU7XG5cbiAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgIHZhciB0eXBlID0gcHJvcGVydHlJbmZvLnR5cGU7XG4gICAgICBub2RlW3Byb3BlcnR5TmFtZV0gPSB0eXBlID09PSBCT09MRUFOID8gZmFsc2UgOiAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQ29udHJhcnkgdG8gYHNldEF0dHJpYnV0ZWAsIG9iamVjdCBwcm9wZXJ0aWVzIGFyZSBwcm9wZXJseVxuICAgICAgLy8gYHRvU3RyaW5nYGVkIGJ5IElFOC85LlxuICAgICAgbm9kZVtwcm9wZXJ0eU5hbWVdID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcmV0dXJuO1xuICB9IC8vIFRoZSByZXN0IGFyZSB0cmVhdGVkIGFzIGF0dHJpYnV0ZXMgd2l0aCBzcGVjaWFsIGNhc2VzLlxuXG5cbiAgdmFyIGF0dHJpYnV0ZU5hbWUgPSBwcm9wZXJ0eUluZm8uYXR0cmlidXRlTmFtZSxcbiAgICAgIGF0dHJpYnV0ZU5hbWVzcGFjZSA9IHByb3BlcnR5SW5mby5hdHRyaWJ1dGVOYW1lc3BhY2U7XG5cbiAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgbm9kZS5yZW1vdmVBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7XG4gIH0gZWxzZSB7XG4gICAgdmFyIF90eXBlID0gcHJvcGVydHlJbmZvLnR5cGU7XG4gICAgdmFyIGF0dHJpYnV0ZVZhbHVlO1xuXG4gICAgaWYgKF90eXBlID09PSBCT09MRUFOIHx8IF90eXBlID09PSBPVkVSTE9BREVEX0JPT0xFQU4gJiYgdmFsdWUgPT09IHRydWUpIHtcbiAgICAgIC8vIElmIGF0dHJpYnV0ZSB0eXBlIGlzIGJvb2xlYW4sIHdlIGtub3cgZm9yIHN1cmUgaXQgd29uJ3QgYmUgYW4gZXhlY3V0aW9uIHNpbmtcbiAgICAgIC8vIGFuZCB3ZSB3b24ndCByZXF1aXJlIFRydXN0ZWQgVHlwZSBoZXJlLlxuICAgICAgYXR0cmlidXRlVmFsdWUgPSAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gYHNldEF0dHJpYnV0ZWAgd2l0aCBvYmplY3RzIGJlY29tZXMgb25seSBgW29iamVjdF1gIGluIElFOC85LFxuICAgICAgLy8gKCcnICsgdmFsdWUpIG1ha2VzIGl0IG91dHB1dCB0aGUgY29ycmVjdCB0b1N0cmluZygpLXZhbHVlLlxuICAgICAge1xuICAgICAgICBhdHRyaWJ1dGVWYWx1ZSA9ICcnICsgdmFsdWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChwcm9wZXJ0eUluZm8uc2FuaXRpemVVUkwpIHtcbiAgICAgICAgc2FuaXRpemVVUkwoYXR0cmlidXRlVmFsdWUudG9TdHJpbmcoKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGF0dHJpYnV0ZU5hbWVzcGFjZSkge1xuICAgICAgbm9kZS5zZXRBdHRyaWJ1dGVOUyhhdHRyaWJ1dGVOYW1lc3BhY2UsIGF0dHJpYnV0ZU5hbWUsIGF0dHJpYnV0ZVZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSwgYXR0cmlidXRlVmFsdWUpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBBVFRFTlRJT05cbi8vIFdoZW4gYWRkaW5nIG5ldyBzeW1ib2xzIHRvIHRoaXMgZmlsZSxcbi8vIFBsZWFzZSBjb25zaWRlciBhbHNvIGFkZGluZyB0byAncmVhY3QtZGV2dG9vbHMtc2hhcmVkL3NyYy9iYWNrZW5kL1JlYWN0U3ltYm9scydcbi8vIFRoZSBTeW1ib2wgdXNlZCB0byB0YWcgdGhlIFJlYWN0RWxlbWVudC1saWtlIHR5cGVzLiBJZiB0aGVyZSBpcyBubyBuYXRpdmUgU3ltYm9sXG4vLyBub3IgcG9seWZpbGwsIHRoZW4gYSBwbGFpbiBudW1iZXIgaXMgdXNlZCBmb3IgcGVyZm9ybWFuY2UuXG52YXIgUkVBQ1RfRUxFTUVOVF9UWVBFID0gMHhlYWM3O1xudmFyIFJFQUNUX1BPUlRBTF9UWVBFID0gMHhlYWNhO1xudmFyIFJFQUNUX0ZSQUdNRU5UX1RZUEUgPSAweGVhY2I7XG52YXIgUkVBQ1RfU1RSSUNUX01PREVfVFlQRSA9IDB4ZWFjYztcbnZhciBSRUFDVF9QUk9GSUxFUl9UWVBFID0gMHhlYWQyO1xudmFyIFJFQUNUX1BST1ZJREVSX1RZUEUgPSAweGVhY2Q7XG52YXIgUkVBQ1RfQ09OVEVYVF9UWVBFID0gMHhlYWNlO1xudmFyIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgPSAweGVhZDA7XG52YXIgUkVBQ1RfU1VTUEVOU0VfVFlQRSA9IDB4ZWFkMTtcbnZhciBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUgPSAweGVhZDg7XG52YXIgUkVBQ1RfTUVNT19UWVBFID0gMHhlYWQzO1xudmFyIFJFQUNUX0xBWllfVFlQRSA9IDB4ZWFkNDtcbnZhciBSRUFDVF9CTE9DS19UWVBFID0gMHhlYWQ5O1xudmFyIFJFQUNUX1NFUlZFUl9CTE9DS19UWVBFID0gMHhlYWRhO1xudmFyIFJFQUNUX0ZVTkRBTUVOVEFMX1RZUEUgPSAweGVhZDU7XG52YXIgUkVBQ1RfU0NPUEVfVFlQRSA9IDB4ZWFkNztcbnZhciBSRUFDVF9PUEFRVUVfSURfVFlQRSA9IDB4ZWFlMDtcbnZhciBSRUFDVF9ERUJVR19UUkFDSU5HX01PREVfVFlQRSA9IDB4ZWFlMTtcbnZhciBSRUFDVF9PRkZTQ1JFRU5fVFlQRSA9IDB4ZWFlMjtcbnZhciBSRUFDVF9MRUdBQ1lfSElEREVOX1RZUEUgPSAweGVhZTM7XG5cbmlmICh0eXBlb2YgU3ltYm9sID09PSAnZnVuY3Rpb24nICYmIFN5bWJvbC5mb3IpIHtcbiAgdmFyIHN5bWJvbEZvciA9IFN5bWJvbC5mb3I7XG4gIFJFQUNUX0VMRU1FTlRfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QuZWxlbWVudCcpO1xuICBSRUFDVF9QT1JUQUxfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QucG9ydGFsJyk7XG4gIFJFQUNUX0ZSQUdNRU5UX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LmZyYWdtZW50Jyk7XG4gIFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LnN0cmljdF9tb2RlJyk7XG4gIFJFQUNUX1BST0ZJTEVSX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LnByb2ZpbGVyJyk7XG4gIFJFQUNUX1BST1ZJREVSX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LnByb3ZpZGVyJyk7XG4gIFJFQUNUX0NPTlRFWFRfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QuY29udGV4dCcpO1xuICBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5mb3J3YXJkX3JlZicpO1xuICBSRUFDVF9TVVNQRU5TRV9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5zdXNwZW5zZScpO1xuICBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LnN1c3BlbnNlX2xpc3QnKTtcbiAgUkVBQ1RfTUVNT19UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5tZW1vJyk7XG4gIFJFQUNUX0xBWllfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QubGF6eScpO1xuICBSRUFDVF9CTE9DS19UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5ibG9jaycpO1xuICBSRUFDVF9TRVJWRVJfQkxPQ0tfVFlQRSA9IHN5bWJvbEZvcigncmVhY3Quc2VydmVyLmJsb2NrJyk7XG4gIFJFQUNUX0ZVTkRBTUVOVEFMX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LmZ1bmRhbWVudGFsJyk7XG4gIFJFQUNUX1NDT1BFX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LnNjb3BlJyk7XG4gIFJFQUNUX09QQVFVRV9JRF9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5vcGFxdWUuaWQnKTtcbiAgUkVBQ1RfREVCVUdfVFJBQ0lOR19NT0RFX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LmRlYnVnX3RyYWNlX21vZGUnKTtcbiAgUkVBQ1RfT0ZGU0NSRUVOX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0Lm9mZnNjcmVlbicpO1xuICBSRUFDVF9MRUdBQ1lfSElEREVOX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LmxlZ2FjeV9oaWRkZW4nKTtcbn1cblxudmFyIE1BWUJFX0lURVJBVE9SX1NZTUJPTCA9IHR5cGVvZiBTeW1ib2wgPT09ICdmdW5jdGlvbicgJiYgU3ltYm9sLml0ZXJhdG9yO1xudmFyIEZBVVhfSVRFUkFUT1JfU1lNQk9MID0gJ0BAaXRlcmF0b3InO1xuZnVuY3Rpb24gZ2V0SXRlcmF0b3JGbihtYXliZUl0ZXJhYmxlKSB7XG4gIGlmIChtYXliZUl0ZXJhYmxlID09PSBudWxsIHx8IHR5cGVvZiBtYXliZUl0ZXJhYmxlICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgdmFyIG1heWJlSXRlcmF0b3IgPSBNQVlCRV9JVEVSQVRPUl9TWU1CT0wgJiYgbWF5YmVJdGVyYWJsZVtNQVlCRV9JVEVSQVRPUl9TWU1CT0xdIHx8IG1heWJlSXRlcmFibGVbRkFVWF9JVEVSQVRPUl9TWU1CT0xdO1xuXG4gIGlmICh0eXBlb2YgbWF5YmVJdGVyYXRvciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBtYXliZUl0ZXJhdG9yO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8vIEhlbHBlcnMgdG8gcGF0Y2ggY29uc29sZS5sb2dzIHRvIGF2b2lkIGxvZ2dpbmcgZHVyaW5nIHNpZGUtZWZmZWN0IGZyZWVcbi8vIHJlcGxheWluZyBvbiByZW5kZXIgZnVuY3Rpb24uIFRoaXMgY3VycmVudGx5IG9ubHkgcGF0Y2hlcyB0aGUgb2JqZWN0XG4vLyBsYXppbHkgd2hpY2ggd29uJ3QgY292ZXIgaWYgdGhlIGxvZyBmdW5jdGlvbiB3YXMgZXh0cmFjdGVkIGVhZ2VybHkuXG4vLyBXZSBjb3VsZCBhbHNvIGVhZ2VybHkgcGF0Y2ggdGhlIG1ldGhvZC5cbnZhciBkaXNhYmxlZERlcHRoID0gMDtcbnZhciBwcmV2TG9nO1xudmFyIHByZXZJbmZvO1xudmFyIHByZXZXYXJuO1xudmFyIHByZXZFcnJvcjtcbnZhciBwcmV2R3JvdXA7XG52YXIgcHJldkdyb3VwQ29sbGFwc2VkO1xudmFyIHByZXZHcm91cEVuZDtcblxuZnVuY3Rpb24gZGlzYWJsZWRMb2coKSB7fVxuXG5kaXNhYmxlZExvZy5fX3JlYWN0RGlzYWJsZWRMb2cgPSB0cnVlO1xuZnVuY3Rpb24gZGlzYWJsZUxvZ3MoKSB7XG4gIHtcbiAgICBpZiAoZGlzYWJsZWREZXB0aCA9PT0gMCkge1xuICAgICAgLyogZXNsaW50LWRpc2FibGUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nICovXG4gICAgICBwcmV2TG9nID0gY29uc29sZS5sb2c7XG4gICAgICBwcmV2SW5mbyA9IGNvbnNvbGUuaW5mbztcbiAgICAgIHByZXZXYXJuID0gY29uc29sZS53YXJuO1xuICAgICAgcHJldkVycm9yID0gY29uc29sZS5lcnJvcjtcbiAgICAgIHByZXZHcm91cCA9IGNvbnNvbGUuZ3JvdXA7XG4gICAgICBwcmV2R3JvdXBDb2xsYXBzZWQgPSBjb25zb2xlLmdyb3VwQ29sbGFwc2VkO1xuICAgICAgcHJldkdyb3VwRW5kID0gY29uc29sZS5ncm91cEVuZDsgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xOTA5OVxuXG4gICAgICB2YXIgcHJvcHMgPSB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgdmFsdWU6IGRpc2FibGVkTG9nLFxuICAgICAgICB3cml0YWJsZTogdHJ1ZVxuICAgICAgfTsgLy8gJEZsb3dGaXhNZSBGbG93IHRoaW5rcyBjb25zb2xlIGlzIGltbXV0YWJsZS5cblxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoY29uc29sZSwge1xuICAgICAgICBpbmZvOiBwcm9wcyxcbiAgICAgICAgbG9nOiBwcm9wcyxcbiAgICAgICAgd2FybjogcHJvcHMsXG4gICAgICAgIGVycm9yOiBwcm9wcyxcbiAgICAgICAgZ3JvdXA6IHByb3BzLFxuICAgICAgICBncm91cENvbGxhcHNlZDogcHJvcHMsXG4gICAgICAgIGdyb3VwRW5kOiBwcm9wc1xuICAgICAgfSk7XG4gICAgICAvKiBlc2xpbnQtZW5hYmxlIHJlYWN0LWludGVybmFsL25vLXByb2R1Y3Rpb24tbG9nZ2luZyAqL1xuICAgIH1cblxuICAgIGRpc2FibGVkRGVwdGgrKztcbiAgfVxufVxuZnVuY3Rpb24gcmVlbmFibGVMb2dzKCkge1xuICB7XG4gICAgZGlzYWJsZWREZXB0aC0tO1xuXG4gICAgaWYgKGRpc2FibGVkRGVwdGggPT09IDApIHtcbiAgICAgIC8qIGVzbGludC1kaXNhYmxlIHJlYWN0LWludGVybmFsL25vLXByb2R1Y3Rpb24tbG9nZ2luZyAqL1xuICAgICAgdmFyIHByb3BzID0ge1xuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgICB9OyAvLyAkRmxvd0ZpeE1lIEZsb3cgdGhpbmtzIGNvbnNvbGUgaXMgaW1tdXRhYmxlLlxuXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhjb25zb2xlLCB7XG4gICAgICAgIGxvZzogX2Fzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldkxvZ1xuICAgICAgICB9KSxcbiAgICAgICAgaW5mbzogX2Fzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldkluZm9cbiAgICAgICAgfSksXG4gICAgICAgIHdhcm46IF9hc3NpZ24oe30sIHByb3BzLCB7XG4gICAgICAgICAgdmFsdWU6IHByZXZXYXJuXG4gICAgICAgIH0pLFxuICAgICAgICBlcnJvcjogX2Fzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldkVycm9yXG4gICAgICAgIH0pLFxuICAgICAgICBncm91cDogX2Fzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldkdyb3VwXG4gICAgICAgIH0pLFxuICAgICAgICBncm91cENvbGxhcHNlZDogX2Fzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldkdyb3VwQ29sbGFwc2VkXG4gICAgICAgIH0pLFxuICAgICAgICBncm91cEVuZDogX2Fzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldkdyb3VwRW5kXG4gICAgICAgIH0pXG4gICAgICB9KTtcbiAgICAgIC8qIGVzbGludC1lbmFibGUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nICovXG4gICAgfVxuXG4gICAgaWYgKGRpc2FibGVkRGVwdGggPCAwKSB7XG4gICAgICBlcnJvcignZGlzYWJsZWREZXB0aCBmZWxsIGJlbG93IHplcm8uICcgKyAnVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJyk7XG4gICAgfVxuICB9XG59XG5cbnZhciBSZWFjdEN1cnJlbnREaXNwYXRjaGVyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3RDdXJyZW50RGlzcGF0Y2hlcjtcbnZhciBwcmVmaXg7XG5mdW5jdGlvbiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZShuYW1lLCBzb3VyY2UsIG93bmVyRm4pIHtcbiAge1xuICAgIGlmIChwcmVmaXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gRXh0cmFjdCB0aGUgVk0gc3BlY2lmaWMgcHJlZml4IHVzZWQgYnkgZWFjaCBsaW5lLlxuICAgICAgdHJ5IHtcbiAgICAgICAgdGhyb3cgRXJyb3IoKTtcbiAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgdmFyIG1hdGNoID0geC5zdGFjay50cmltKCkubWF0Y2goL1xcbiggKihhdCApPykvKTtcbiAgICAgICAgcHJlZml4ID0gbWF0Y2ggJiYgbWF0Y2hbMV0gfHwgJyc7XG4gICAgICB9XG4gICAgfSAvLyBXZSB1c2UgdGhlIHByZWZpeCB0byBlbnN1cmUgb3VyIHN0YWNrcyBsaW5lIHVwIHdpdGggbmF0aXZlIHN0YWNrIGZyYW1lcy5cblxuXG4gICAgcmV0dXJuICdcXG4nICsgcHJlZml4ICsgbmFtZTtcbiAgfVxufVxudmFyIHJlZW50cnkgPSBmYWxzZTtcbnZhciBjb21wb25lbnRGcmFtZUNhY2hlO1xuXG57XG4gIHZhciBQb3NzaWJseVdlYWtNYXAgPSB0eXBlb2YgV2Vha01hcCA9PT0gJ2Z1bmN0aW9uJyA/IFdlYWtNYXAgOiBNYXA7XG4gIGNvbXBvbmVudEZyYW1lQ2FjaGUgPSBuZXcgUG9zc2libHlXZWFrTWFwKCk7XG59XG5cbmZ1bmN0aW9uIGRlc2NyaWJlTmF0aXZlQ29tcG9uZW50RnJhbWUoZm4sIGNvbnN0cnVjdCkge1xuICAvLyBJZiBzb21ldGhpbmcgYXNrZWQgZm9yIGEgc3RhY2sgaW5zaWRlIGEgZmFrZSByZW5kZXIsIGl0IHNob3VsZCBnZXQgaWdub3JlZC5cbiAgaWYgKCFmbiB8fCByZWVudHJ5KSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAge1xuICAgIHZhciBmcmFtZSA9IGNvbXBvbmVudEZyYW1lQ2FjaGUuZ2V0KGZuKTtcblxuICAgIGlmIChmcmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZnJhbWU7XG4gICAgfVxuICB9XG5cbiAgdmFyIGNvbnRyb2w7XG4gIHJlZW50cnkgPSB0cnVlO1xuICB2YXIgcHJldmlvdXNQcmVwYXJlU3RhY2tUcmFjZSA9IEVycm9yLnByZXBhcmVTdGFja1RyYWNlOyAvLyAkRmxvd0ZpeE1lIEl0IGRvZXMgYWNjZXB0IHVuZGVmaW5lZC5cblxuICBFcnJvci5wcmVwYXJlU3RhY2tUcmFjZSA9IHVuZGVmaW5lZDtcbiAgdmFyIHByZXZpb3VzRGlzcGF0Y2hlcjtcblxuICB7XG4gICAgcHJldmlvdXNEaXNwYXRjaGVyID0gUmVhY3RDdXJyZW50RGlzcGF0Y2hlci5jdXJyZW50OyAvLyBTZXQgdGhlIGRpc3BhdGNoZXIgaW4gREVWIGJlY2F1c2UgdGhpcyBtaWdodCBiZSBjYWxsIGluIHRoZSByZW5kZXIgZnVuY3Rpb25cbiAgICAvLyBmb3Igd2FybmluZ3MuXG5cbiAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyLmN1cnJlbnQgPSBudWxsO1xuICAgIGRpc2FibGVMb2dzKCk7XG4gIH1cblxuICB0cnkge1xuICAgIC8vIFRoaXMgc2hvdWxkIHRocm93LlxuICAgIGlmIChjb25zdHJ1Y3QpIHtcbiAgICAgIC8vIFNvbWV0aGluZyBzaG91bGQgYmUgc2V0dGluZyB0aGUgcHJvcHMgaW4gdGhlIGNvbnN0cnVjdG9yLlxuICAgICAgdmFyIEZha2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRocm93IEVycm9yKCk7XG4gICAgICB9OyAvLyAkRmxvd0ZpeE1lXG5cblxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEZha2UucHJvdG90eXBlLCAncHJvcHMnLCB7XG4gICAgICAgIHNldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIC8vIFdlIHVzZSBhIHRocm93aW5nIHNldHRlciBpbnN0ZWFkIG9mIGZyb3plbiBvciBub24td3JpdGFibGUgcHJvcHNcbiAgICAgICAgICAvLyBiZWNhdXNlIHRoYXQgd29uJ3QgdGhyb3cgaW4gYSBub24tc3RyaWN0IG1vZGUgZnVuY3Rpb24uXG4gICAgICAgICAgdGhyb3cgRXJyb3IoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gJ29iamVjdCcgJiYgUmVmbGVjdC5jb25zdHJ1Y3QpIHtcbiAgICAgICAgLy8gV2UgY29uc3RydWN0IGEgZGlmZmVyZW50IGNvbnRyb2wgZm9yIHRoaXMgY2FzZSB0byBpbmNsdWRlIGFueSBleHRyYVxuICAgICAgICAvLyBmcmFtZXMgYWRkZWQgYnkgdGhlIGNvbnN0cnVjdCBjYWxsLlxuICAgICAgICB0cnkge1xuICAgICAgICAgIFJlZmxlY3QuY29uc3RydWN0KEZha2UsIFtdKTtcbiAgICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICAgIGNvbnRyb2wgPSB4O1xuICAgICAgICB9XG5cbiAgICAgICAgUmVmbGVjdC5jb25zdHJ1Y3QoZm4sIFtdLCBGYWtlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgRmFrZS5jYWxsKCk7XG4gICAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgICBjb250cm9sID0geDtcbiAgICAgICAgfVxuXG4gICAgICAgIGZuLmNhbGwoRmFrZS5wcm90b3R5cGUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0cnkge1xuICAgICAgICB0aHJvdyBFcnJvcigpO1xuICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICBjb250cm9sID0geDtcbiAgICAgIH1cblxuICAgICAgZm4oKTtcbiAgICB9XG4gIH0gY2F0Y2ggKHNhbXBsZSkge1xuICAgIC8vIFRoaXMgaXMgaW5saW5lZCBtYW51YWxseSBiZWNhdXNlIGNsb3N1cmUgZG9lc24ndCBkbyBpdCBmb3IgdXMuXG4gICAgaWYgKHNhbXBsZSAmJiBjb250cm9sICYmIHR5cGVvZiBzYW1wbGUuc3RhY2sgPT09ICdzdHJpbmcnKSB7XG4gICAgICAvLyBUaGlzIGV4dHJhY3RzIHRoZSBmaXJzdCBmcmFtZSBmcm9tIHRoZSBzYW1wbGUgdGhhdCBpc24ndCBhbHNvIGluIHRoZSBjb250cm9sLlxuICAgICAgLy8gU2tpcHBpbmcgb25lIGZyYW1lIHRoYXQgd2UgYXNzdW1lIGlzIHRoZSBmcmFtZSB0aGF0IGNhbGxzIHRoZSB0d28uXG4gICAgICB2YXIgc2FtcGxlTGluZXMgPSBzYW1wbGUuc3RhY2suc3BsaXQoJ1xcbicpO1xuICAgICAgdmFyIGNvbnRyb2xMaW5lcyA9IGNvbnRyb2wuc3RhY2suc3BsaXQoJ1xcbicpO1xuICAgICAgdmFyIHMgPSBzYW1wbGVMaW5lcy5sZW5ndGggLSAxO1xuICAgICAgdmFyIGMgPSBjb250cm9sTGluZXMubGVuZ3RoIC0gMTtcblxuICAgICAgd2hpbGUgKHMgPj0gMSAmJiBjID49IDAgJiYgc2FtcGxlTGluZXNbc10gIT09IGNvbnRyb2xMaW5lc1tjXSkge1xuICAgICAgICAvLyBXZSBleHBlY3QgYXQgbGVhc3Qgb25lIHN0YWNrIGZyYW1lIHRvIGJlIHNoYXJlZC5cbiAgICAgICAgLy8gVHlwaWNhbGx5IHRoaXMgd2lsbCBiZSB0aGUgcm9vdCBtb3N0IG9uZS4gSG93ZXZlciwgc3RhY2sgZnJhbWVzIG1heSBiZVxuICAgICAgICAvLyBjdXQgb2ZmIGR1ZSB0byBtYXhpbXVtIHN0YWNrIGxpbWl0cy4gSW4gdGhpcyBjYXNlLCBvbmUgbWF5YmUgY3V0IG9mZlxuICAgICAgICAvLyBlYXJsaWVyIHRoYW4gdGhlIG90aGVyLiBXZSBhc3N1bWUgdGhhdCB0aGUgc2FtcGxlIGlzIGxvbmdlciBvciB0aGUgc2FtZVxuICAgICAgICAvLyBhbmQgdGhlcmUgZm9yIGN1dCBvZmYgZWFybGllci4gU28gd2Ugc2hvdWxkIGZpbmQgdGhlIHJvb3QgbW9zdCBmcmFtZSBpblxuICAgICAgICAvLyB0aGUgc2FtcGxlIHNvbWV3aGVyZSBpbiB0aGUgY29udHJvbC5cbiAgICAgICAgYy0tO1xuICAgICAgfVxuXG4gICAgICBmb3IgKDsgcyA+PSAxICYmIGMgPj0gMDsgcy0tLCBjLS0pIHtcbiAgICAgICAgLy8gTmV4dCB3ZSBmaW5kIHRoZSBmaXJzdCBvbmUgdGhhdCBpc24ndCB0aGUgc2FtZSB3aGljaCBzaG91bGQgYmUgdGhlXG4gICAgICAgIC8vIGZyYW1lIHRoYXQgY2FsbGVkIG91ciBzYW1wbGUgZnVuY3Rpb24gYW5kIHRoZSBjb250cm9sLlxuICAgICAgICBpZiAoc2FtcGxlTGluZXNbc10gIT09IGNvbnRyb2xMaW5lc1tjXSkge1xuICAgICAgICAgIC8vIEluIFY4LCB0aGUgZmlyc3QgbGluZSBpcyBkZXNjcmliaW5nIHRoZSBtZXNzYWdlIGJ1dCBvdGhlciBWTXMgZG9uJ3QuXG4gICAgICAgICAgLy8gSWYgd2UncmUgYWJvdXQgdG8gcmV0dXJuIHRoZSBmaXJzdCBsaW5lLCBhbmQgdGhlIGNvbnRyb2wgaXMgYWxzbyBvbiB0aGUgc2FtZVxuICAgICAgICAgIC8vIGxpbmUsIHRoYXQncyBhIHByZXR0eSBnb29kIGluZGljYXRvciB0aGF0IG91ciBzYW1wbGUgdGhyZXcgYXQgc2FtZSBsaW5lIGFzXG4gICAgICAgICAgLy8gdGhlIGNvbnRyb2wuIEkuZS4gYmVmb3JlIHdlIGVudGVyZWQgdGhlIHNhbXBsZSBmcmFtZS4gU28gd2UgaWdub3JlIHRoaXMgcmVzdWx0LlxuICAgICAgICAgIC8vIFRoaXMgY2FuIGhhcHBlbiBpZiB5b3UgcGFzc2VkIGEgY2xhc3MgdG8gZnVuY3Rpb24gY29tcG9uZW50LCBvciBub24tZnVuY3Rpb24uXG4gICAgICAgICAgaWYgKHMgIT09IDEgfHwgYyAhPT0gMSkge1xuICAgICAgICAgICAgZG8ge1xuICAgICAgICAgICAgICBzLS07XG4gICAgICAgICAgICAgIGMtLTsgLy8gV2UgbWF5IHN0aWxsIGhhdmUgc2ltaWxhciBpbnRlcm1lZGlhdGUgZnJhbWVzIGZyb20gdGhlIGNvbnN0cnVjdCBjYWxsLlxuICAgICAgICAgICAgICAvLyBUaGUgbmV4dCBvbmUgdGhhdCBpc24ndCB0aGUgc2FtZSBzaG91bGQgYmUgb3VyIG1hdGNoIHRob3VnaC5cblxuICAgICAgICAgICAgICBpZiAoYyA8IDAgfHwgc2FtcGxlTGluZXNbc10gIT09IGNvbnRyb2xMaW5lc1tjXSkge1xuICAgICAgICAgICAgICAgIC8vIFY4IGFkZHMgYSBcIm5ld1wiIHByZWZpeCBmb3IgbmF0aXZlIGNsYXNzZXMuIExldCdzIHJlbW92ZSBpdCB0byBtYWtlIGl0IHByZXR0aWVyLlxuICAgICAgICAgICAgICAgIHZhciBfZnJhbWUgPSAnXFxuJyArIHNhbXBsZUxpbmVzW3NdLnJlcGxhY2UoJyBhdCBuZXcgJywgJyBhdCAnKTtcblxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50RnJhbWVDYWNoZS5zZXQoZm4sIF9mcmFtZSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSAvLyBSZXR1cm4gdGhlIGxpbmUgd2UgZm91bmQuXG5cblxuICAgICAgICAgICAgICAgIHJldHVybiBfZnJhbWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gd2hpbGUgKHMgPj0gMSAmJiBjID49IDApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9IGZpbmFsbHkge1xuICAgIHJlZW50cnkgPSBmYWxzZTtcblxuICAgIHtcbiAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIuY3VycmVudCA9IHByZXZpb3VzRGlzcGF0Y2hlcjtcbiAgICAgIHJlZW5hYmxlTG9ncygpO1xuICAgIH1cblxuICAgIEVycm9yLnByZXBhcmVTdGFja1RyYWNlID0gcHJldmlvdXNQcmVwYXJlU3RhY2tUcmFjZTtcbiAgfSAvLyBGYWxsYmFjayB0byBqdXN0IHVzaW5nIHRoZSBuYW1lIGlmIHdlIGNvdWxkbid0IG1ha2UgaXQgdGhyb3cuXG5cblxuICB2YXIgbmFtZSA9IGZuID8gZm4uZGlzcGxheU5hbWUgfHwgZm4ubmFtZSA6ICcnO1xuICB2YXIgc3ludGhldGljRnJhbWUgPSBuYW1lID8gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUobmFtZSkgOiAnJztcblxuICB7XG4gICAgaWYgKHR5cGVvZiBmbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgY29tcG9uZW50RnJhbWVDYWNoZS5zZXQoZm4sIHN5bnRoZXRpY0ZyYW1lKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3ludGhldGljRnJhbWU7XG59XG5cbmZ1bmN0aW9uIGRlc2NyaWJlQ2xhc3NDb21wb25lbnRGcmFtZShjdG9yLCBzb3VyY2UsIG93bmVyRm4pIHtcbiAge1xuICAgIHJldHVybiBkZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lKGN0b3IsIHRydWUpO1xuICB9XG59XG5mdW5jdGlvbiBkZXNjcmliZUZ1bmN0aW9uQ29tcG9uZW50RnJhbWUoZm4sIHNvdXJjZSwgb3duZXJGbikge1xuICB7XG4gICAgcmV0dXJuIGRlc2NyaWJlTmF0aXZlQ29tcG9uZW50RnJhbWUoZm4sIGZhbHNlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBzaG91bGRDb25zdHJ1Y3QoQ29tcG9uZW50KSB7XG4gIHZhciBwcm90b3R5cGUgPSBDb21wb25lbnQucHJvdG90eXBlO1xuICByZXR1cm4gISEocHJvdG90eXBlICYmIHByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50KTtcbn1cblxuZnVuY3Rpb24gZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWKHR5cGUsIHNvdXJjZSwgb3duZXJGbikge1xuXG4gIGlmICh0eXBlID09IG51bGwpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICB7XG4gICAgICByZXR1cm4gZGVzY3JpYmVOYXRpdmVDb21wb25lbnRGcmFtZSh0eXBlLCBzaG91bGRDb25zdHJ1Y3QodHlwZSkpO1xuICAgIH1cbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUodHlwZSk7XG4gIH1cblxuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX1RZUEU6XG4gICAgICByZXR1cm4gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUoJ1N1c3BlbnNlJyk7XG5cbiAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRTpcbiAgICAgIHJldHVybiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZSgnU3VzcGVuc2VMaXN0Jyk7XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdvYmplY3QnKSB7XG4gICAgc3dpdGNoICh0eXBlLiQkdHlwZW9mKSB7XG4gICAgICBjYXNlIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU6XG4gICAgICAgIHJldHVybiBkZXNjcmliZUZ1bmN0aW9uQ29tcG9uZW50RnJhbWUodHlwZS5yZW5kZXIpO1xuXG4gICAgICBjYXNlIFJFQUNUX01FTU9fVFlQRTpcbiAgICAgICAgLy8gTWVtbyBtYXkgY29udGFpbiBhbnkgY29tcG9uZW50IHR5cGUgc28gd2UgcmVjdXJzaXZlbHkgcmVzb2x2ZSBpdC5cbiAgICAgICAgcmV0dXJuIGRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFVih0eXBlLnR5cGUsIHNvdXJjZSwgb3duZXJGbik7XG5cbiAgICAgIGNhc2UgUkVBQ1RfQkxPQ0tfVFlQRTpcbiAgICAgICAgcmV0dXJuIGRlc2NyaWJlRnVuY3Rpb25Db21wb25lbnRGcmFtZSh0eXBlLl9yZW5kZXIpO1xuXG4gICAgICBjYXNlIFJFQUNUX0xBWllfVFlQRTpcbiAgICAgICAge1xuICAgICAgICAgIHZhciBsYXp5Q29tcG9uZW50ID0gdHlwZTtcbiAgICAgICAgICB2YXIgcGF5bG9hZCA9IGxhenlDb21wb25lbnQuX3BheWxvYWQ7XG4gICAgICAgICAgdmFyIGluaXQgPSBsYXp5Q29tcG9uZW50Ll9pbml0O1xuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIC8vIExhenkgbWF5IGNvbnRhaW4gYW55IGNvbXBvbmVudCB0eXBlIHNvIHdlIHJlY3Vyc2l2ZWx5IHJlc29sdmUgaXQuXG4gICAgICAgICAgICByZXR1cm4gZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWKGluaXQocGF5bG9hZCksIHNvdXJjZSwgb3duZXJGbik7XG4gICAgICAgICAgfSBjYXRjaCAoeCkge31cbiAgICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiAnJztcbn1cblxuZnVuY3Rpb24gZGVzY3JpYmVGaWJlcihmaWJlcikge1xuICB2YXIgb3duZXIgPSAgZmliZXIuX2RlYnVnT3duZXIgPyBmaWJlci5fZGVidWdPd25lci50eXBlIDogbnVsbCA7XG4gIHZhciBzb3VyY2UgPSAgZmliZXIuX2RlYnVnU291cmNlIDtcblxuICBzd2l0Y2ggKGZpYmVyLnRhZykge1xuICAgIGNhc2UgSG9zdENvbXBvbmVudDpcbiAgICAgIHJldHVybiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZShmaWJlci50eXBlKTtcblxuICAgIGNhc2UgTGF6eUNvbXBvbmVudDpcbiAgICAgIHJldHVybiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZSgnTGF6eScpO1xuXG4gICAgY2FzZSBTdXNwZW5zZUNvbXBvbmVudDpcbiAgICAgIHJldHVybiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZSgnU3VzcGVuc2UnKTtcblxuICAgIGNhc2UgU3VzcGVuc2VMaXN0Q29tcG9uZW50OlxuICAgICAgcmV0dXJuIGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKCdTdXNwZW5zZUxpc3QnKTtcblxuICAgIGNhc2UgRnVuY3Rpb25Db21wb25lbnQ6XG4gICAgY2FzZSBJbmRldGVybWluYXRlQ29tcG9uZW50OlxuICAgIGNhc2UgU2ltcGxlTWVtb0NvbXBvbmVudDpcbiAgICAgIHJldHVybiBkZXNjcmliZUZ1bmN0aW9uQ29tcG9uZW50RnJhbWUoZmliZXIudHlwZSk7XG5cbiAgICBjYXNlIEZvcndhcmRSZWY6XG4gICAgICByZXR1cm4gZGVzY3JpYmVGdW5jdGlvbkNvbXBvbmVudEZyYW1lKGZpYmVyLnR5cGUucmVuZGVyKTtcblxuICAgIGNhc2UgQmxvY2s6XG4gICAgICByZXR1cm4gZGVzY3JpYmVGdW5jdGlvbkNvbXBvbmVudEZyYW1lKGZpYmVyLnR5cGUuX3JlbmRlcik7XG5cbiAgICBjYXNlIENsYXNzQ29tcG9uZW50OlxuICAgICAgcmV0dXJuIGRlc2NyaWJlQ2xhc3NDb21wb25lbnRGcmFtZShmaWJlci50eXBlKTtcblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gJyc7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0U3RhY2tCeUZpYmVySW5EZXZBbmRQcm9kKHdvcmtJblByb2dyZXNzKSB7XG4gIHRyeSB7XG4gICAgdmFyIGluZm8gPSAnJztcbiAgICB2YXIgbm9kZSA9IHdvcmtJblByb2dyZXNzO1xuXG4gICAgZG8ge1xuICAgICAgaW5mbyArPSBkZXNjcmliZUZpYmVyKG5vZGUpO1xuICAgICAgbm9kZSA9IG5vZGUucmV0dXJuO1xuICAgIH0gd2hpbGUgKG5vZGUpO1xuXG4gICAgcmV0dXJuIGluZm87XG4gIH0gY2F0Y2ggKHgpIHtcbiAgICByZXR1cm4gJ1xcbkVycm9yIGdlbmVyYXRpbmcgc3RhY2s6ICcgKyB4Lm1lc3NhZ2UgKyAnXFxuJyArIHguc3RhY2s7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0V3JhcHBlZE5hbWUob3V0ZXJUeXBlLCBpbm5lclR5cGUsIHdyYXBwZXJOYW1lKSB7XG4gIHZhciBmdW5jdGlvbk5hbWUgPSBpbm5lclR5cGUuZGlzcGxheU5hbWUgfHwgaW5uZXJUeXBlLm5hbWUgfHwgJyc7XG4gIHJldHVybiBvdXRlclR5cGUuZGlzcGxheU5hbWUgfHwgKGZ1bmN0aW9uTmFtZSAhPT0gJycgPyB3cmFwcGVyTmFtZSArIFwiKFwiICsgZnVuY3Rpb25OYW1lICsgXCIpXCIgOiB3cmFwcGVyTmFtZSk7XG59XG5cbmZ1bmN0aW9uIGdldENvbnRleHROYW1lKHR5cGUpIHtcbiAgcmV0dXJuIHR5cGUuZGlzcGxheU5hbWUgfHwgJ0NvbnRleHQnO1xufVxuXG5mdW5jdGlvbiBnZXRDb21wb25lbnROYW1lKHR5cGUpIHtcbiAgaWYgKHR5cGUgPT0gbnVsbCkge1xuICAgIC8vIEhvc3Qgcm9vdCwgdGV4dCBub2RlIG9yIGp1c3QgaW52YWxpZCB0eXBlLlxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAge1xuICAgIGlmICh0eXBlb2YgdHlwZS50YWcgPT09ICdudW1iZXInKSB7XG4gICAgICBlcnJvcignUmVjZWl2ZWQgYW4gdW5leHBlY3RlZCBvYmplY3QgaW4gZ2V0Q29tcG9uZW50TmFtZSgpLiAnICsgJ1RoaXMgaXMgbGlrZWx5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nKTtcbiAgICB9XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gdHlwZS5kaXNwbGF5TmFtZSB8fCB0eXBlLm5hbWUgfHwgbnVsbDtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gdHlwZTtcbiAgfVxuXG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgUkVBQ1RfRlJBR01FTlRfVFlQRTpcbiAgICAgIHJldHVybiAnRnJhZ21lbnQnO1xuXG4gICAgY2FzZSBSRUFDVF9QT1JUQUxfVFlQRTpcbiAgICAgIHJldHVybiAnUG9ydGFsJztcblxuICAgIGNhc2UgUkVBQ1RfUFJPRklMRVJfVFlQRTpcbiAgICAgIHJldHVybiAnUHJvZmlsZXInO1xuXG4gICAgY2FzZSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFOlxuICAgICAgcmV0dXJuICdTdHJpY3RNb2RlJztcblxuICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfVFlQRTpcbiAgICAgIHJldHVybiAnU3VzcGVuc2UnO1xuXG4gICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEU6XG4gICAgICByZXR1cm4gJ1N1c3BlbnNlTGlzdCc7XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdvYmplY3QnKSB7XG4gICAgc3dpdGNoICh0eXBlLiQkdHlwZW9mKSB7XG4gICAgICBjYXNlIFJFQUNUX0NPTlRFWFRfVFlQRTpcbiAgICAgICAgdmFyIGNvbnRleHQgPSB0eXBlO1xuICAgICAgICByZXR1cm4gZ2V0Q29udGV4dE5hbWUoY29udGV4dCkgKyAnLkNvbnN1bWVyJztcblxuICAgICAgY2FzZSBSRUFDVF9QUk9WSURFUl9UWVBFOlxuICAgICAgICB2YXIgcHJvdmlkZXIgPSB0eXBlO1xuICAgICAgICByZXR1cm4gZ2V0Q29udGV4dE5hbWUocHJvdmlkZXIuX2NvbnRleHQpICsgJy5Qcm92aWRlcic7XG5cbiAgICAgIGNhc2UgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTpcbiAgICAgICAgcmV0dXJuIGdldFdyYXBwZWROYW1lKHR5cGUsIHR5cGUucmVuZGVyLCAnRm9yd2FyZFJlZicpO1xuXG4gICAgICBjYXNlIFJFQUNUX01FTU9fVFlQRTpcbiAgICAgICAgcmV0dXJuIGdldENvbXBvbmVudE5hbWUodHlwZS50eXBlKTtcblxuICAgICAgY2FzZSBSRUFDVF9CTE9DS19UWVBFOlxuICAgICAgICByZXR1cm4gZ2V0Q29tcG9uZW50TmFtZSh0eXBlLl9yZW5kZXIpO1xuXG4gICAgICBjYXNlIFJFQUNUX0xBWllfVFlQRTpcbiAgICAgICAge1xuICAgICAgICAgIHZhciBsYXp5Q29tcG9uZW50ID0gdHlwZTtcbiAgICAgICAgICB2YXIgcGF5bG9hZCA9IGxhenlDb21wb25lbnQuX3BheWxvYWQ7XG4gICAgICAgICAgdmFyIGluaXQgPSBsYXp5Q29tcG9uZW50Ll9pbml0O1xuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBnZXRDb21wb25lbnROYW1lKGluaXQocGF5bG9hZCkpO1xuICAgICAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG52YXIgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0RGVidWdDdXJyZW50RnJhbWU7XG52YXIgY3VycmVudCA9IG51bGw7XG52YXIgaXNSZW5kZXJpbmcgPSBmYWxzZTtcbmZ1bmN0aW9uIGdldEN1cnJlbnRGaWJlck93bmVyTmFtZUluRGV2T3JOdWxsKCkge1xuICB7XG4gICAgaWYgKGN1cnJlbnQgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHZhciBvd25lciA9IGN1cnJlbnQuX2RlYnVnT3duZXI7XG5cbiAgICBpZiAob3duZXIgIT09IG51bGwgJiYgdHlwZW9mIG93bmVyICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuIGdldENvbXBvbmVudE5hbWUob3duZXIudHlwZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIGdldEN1cnJlbnRGaWJlclN0YWNrSW5EZXYoKSB7XG4gIHtcbiAgICBpZiAoY3VycmVudCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH0gLy8gU2FmZSBiZWNhdXNlIGlmIGN1cnJlbnQgZmliZXIgZXhpc3RzLCB3ZSBhcmUgcmVjb25jaWxpbmcsXG4gICAgLy8gYW5kIGl0IGlzIGd1YXJhbnRlZWQgdG8gYmUgdGhlIHdvcmstaW4tcHJvZ3Jlc3MgdmVyc2lvbi5cblxuXG4gICAgcmV0dXJuIGdldFN0YWNrQnlGaWJlckluRGV2QW5kUHJvZChjdXJyZW50KTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZXNldEN1cnJlbnRGaWJlcigpIHtcbiAge1xuICAgIFJlYWN0RGVidWdDdXJyZW50RnJhbWUuZ2V0Q3VycmVudFN0YWNrID0gbnVsbDtcbiAgICBjdXJyZW50ID0gbnVsbDtcbiAgICBpc1JlbmRlcmluZyA9IGZhbHNlO1xuICB9XG59XG5mdW5jdGlvbiBzZXRDdXJyZW50RmliZXIoZmliZXIpIHtcbiAge1xuICAgIFJlYWN0RGVidWdDdXJyZW50RnJhbWUuZ2V0Q3VycmVudFN0YWNrID0gZ2V0Q3VycmVudEZpYmVyU3RhY2tJbkRldjtcbiAgICBjdXJyZW50ID0gZmliZXI7XG4gICAgaXNSZW5kZXJpbmcgPSBmYWxzZTtcbiAgfVxufVxuZnVuY3Rpb24gc2V0SXNSZW5kZXJpbmcocmVuZGVyaW5nKSB7XG4gIHtcbiAgICBpc1JlbmRlcmluZyA9IHJlbmRlcmluZztcbiAgfVxufVxuZnVuY3Rpb24gZ2V0SXNSZW5kZXJpbmcoKSB7XG4gIHtcbiAgICByZXR1cm4gaXNSZW5kZXJpbmc7XG4gIH1cbn1cblxuLy8gRmxvdyBkb2VzIG5vdCBhbGxvdyBzdHJpbmcgY29uY2F0ZW5hdGlvbiBvZiBtb3N0IG5vbi1zdHJpbmcgdHlwZXMuIFRvIHdvcmtcbi8vIGFyb3VuZCB0aGlzIGxpbWl0YXRpb24sIHdlIHVzZSBhbiBvcGFxdWUgdHlwZSB0aGF0IGNhbiBvbmx5IGJlIG9idGFpbmVkIGJ5XG4vLyBwYXNzaW5nIHRoZSB2YWx1ZSB0aHJvdWdoIGdldFRvU3RyaW5nVmFsdWUgZmlyc3QuXG5mdW5jdGlvbiB0b1N0cmluZyh2YWx1ZSkge1xuICByZXR1cm4gJycgKyB2YWx1ZTtcbn1cbmZ1bmN0aW9uIGdldFRvU3RyaW5nVmFsdWUodmFsdWUpIHtcbiAgc3dpdGNoICh0eXBlb2YgdmFsdWUpIHtcbiAgICBjYXNlICdib29sZWFuJzpcbiAgICBjYXNlICdudW1iZXInOlxuICAgIGNhc2UgJ29iamVjdCc6XG4gICAgY2FzZSAnc3RyaW5nJzpcbiAgICBjYXNlICd1bmRlZmluZWQnOlxuICAgICAgcmV0dXJuIHZhbHVlO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIC8vIGZ1bmN0aW9uLCBzeW1ib2wgYXJlIGFzc2lnbmVkIGFzIGVtcHR5IHN0cmluZ3NcbiAgICAgIHJldHVybiAnJztcbiAgfVxufVxuXG52YXIgaGFzUmVhZE9ubHlWYWx1ZSA9IHtcbiAgYnV0dG9uOiB0cnVlLFxuICBjaGVja2JveDogdHJ1ZSxcbiAgaW1hZ2U6IHRydWUsXG4gIGhpZGRlbjogdHJ1ZSxcbiAgcmFkaW86IHRydWUsXG4gIHJlc2V0OiB0cnVlLFxuICBzdWJtaXQ6IHRydWVcbn07XG5mdW5jdGlvbiBjaGVja0NvbnRyb2xsZWRWYWx1ZVByb3BzKHRhZ05hbWUsIHByb3BzKSB7XG4gIHtcbiAgICBpZiAoIShoYXNSZWFkT25seVZhbHVlW3Byb3BzLnR5cGVdIHx8IHByb3BzLm9uQ2hhbmdlIHx8IHByb3BzLm9uSW5wdXQgfHwgcHJvcHMucmVhZE9ubHkgfHwgcHJvcHMuZGlzYWJsZWQgfHwgcHJvcHMudmFsdWUgPT0gbnVsbCkpIHtcbiAgICAgIGVycm9yKCdZb3UgcHJvdmlkZWQgYSBgdmFsdWVgIHByb3AgdG8gYSBmb3JtIGZpZWxkIHdpdGhvdXQgYW4gJyArICdgb25DaGFuZ2VgIGhhbmRsZXIuIFRoaXMgd2lsbCByZW5kZXIgYSByZWFkLW9ubHkgZmllbGQuIElmICcgKyAndGhlIGZpZWxkIHNob3VsZCBiZSBtdXRhYmxlIHVzZSBgZGVmYXVsdFZhbHVlYC4gT3RoZXJ3aXNlLCAnICsgJ3NldCBlaXRoZXIgYG9uQ2hhbmdlYCBvciBgcmVhZE9ubHlgLicpO1xuICAgIH1cblxuICAgIGlmICghKHByb3BzLm9uQ2hhbmdlIHx8IHByb3BzLnJlYWRPbmx5IHx8IHByb3BzLmRpc2FibGVkIHx8IHByb3BzLmNoZWNrZWQgPT0gbnVsbCkpIHtcbiAgICAgIGVycm9yKCdZb3UgcHJvdmlkZWQgYSBgY2hlY2tlZGAgcHJvcCB0byBhIGZvcm0gZmllbGQgd2l0aG91dCBhbiAnICsgJ2BvbkNoYW5nZWAgaGFuZGxlci4gVGhpcyB3aWxsIHJlbmRlciBhIHJlYWQtb25seSBmaWVsZC4gSWYgJyArICd0aGUgZmllbGQgc2hvdWxkIGJlIG11dGFibGUgdXNlIGBkZWZhdWx0Q2hlY2tlZGAuIE90aGVyd2lzZSwgJyArICdzZXQgZWl0aGVyIGBvbkNoYW5nZWAgb3IgYHJlYWRPbmx5YC4nKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNDaGVja2FibGUoZWxlbSkge1xuICB2YXIgdHlwZSA9IGVsZW0udHlwZTtcbiAgdmFyIG5vZGVOYW1lID0gZWxlbS5ub2RlTmFtZTtcbiAgcmV0dXJuIG5vZGVOYW1lICYmIG5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdpbnB1dCcgJiYgKHR5cGUgPT09ICdjaGVja2JveCcgfHwgdHlwZSA9PT0gJ3JhZGlvJyk7XG59XG5cbmZ1bmN0aW9uIGdldFRyYWNrZXIobm9kZSkge1xuICByZXR1cm4gbm9kZS5fdmFsdWVUcmFja2VyO1xufVxuXG5mdW5jdGlvbiBkZXRhY2hUcmFja2VyKG5vZGUpIHtcbiAgbm9kZS5fdmFsdWVUcmFja2VyID0gbnVsbDtcbn1cblxuZnVuY3Rpb24gZ2V0VmFsdWVGcm9tTm9kZShub2RlKSB7XG4gIHZhciB2YWx1ZSA9ICcnO1xuXG4gIGlmICghbm9kZSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIGlmIChpc0NoZWNrYWJsZShub2RlKSkge1xuICAgIHZhbHVlID0gbm9kZS5jaGVja2VkID8gJ3RydWUnIDogJ2ZhbHNlJztcbiAgfSBlbHNlIHtcbiAgICB2YWx1ZSA9IG5vZGUudmFsdWU7XG4gIH1cblxuICByZXR1cm4gdmFsdWU7XG59XG5cbmZ1bmN0aW9uIHRyYWNrVmFsdWVPbk5vZGUobm9kZSkge1xuICB2YXIgdmFsdWVGaWVsZCA9IGlzQ2hlY2thYmxlKG5vZGUpID8gJ2NoZWNrZWQnIDogJ3ZhbHVlJztcbiAgdmFyIGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG5vZGUuY29uc3RydWN0b3IucHJvdG90eXBlLCB2YWx1ZUZpZWxkKTtcbiAgdmFyIGN1cnJlbnRWYWx1ZSA9ICcnICsgbm9kZVt2YWx1ZUZpZWxkXTsgLy8gaWYgc29tZW9uZSBoYXMgYWxyZWFkeSBkZWZpbmVkIGEgdmFsdWUgb3IgU2FmYXJpLCB0aGVuIGJhaWxcbiAgLy8gYW5kIGRvbid0IHRyYWNrIHZhbHVlIHdpbGwgY2F1c2Ugb3ZlciByZXBvcnRpbmcgb2YgY2hhbmdlcyxcbiAgLy8gYnV0IGl0J3MgYmV0dGVyIHRoZW4gYSBoYXJkIGZhaWx1cmVcbiAgLy8gKG5lZWRlZCBmb3IgY2VydGFpbiB0ZXN0cyB0aGF0IHNweU9uIGlucHV0IHZhbHVlcyBhbmQgU2FmYXJpKVxuXG4gIGlmIChub2RlLmhhc093blByb3BlcnR5KHZhbHVlRmllbGQpIHx8IHR5cGVvZiBkZXNjcmlwdG9yID09PSAndW5kZWZpbmVkJyB8fCB0eXBlb2YgZGVzY3JpcHRvci5nZXQgIT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIGRlc2NyaXB0b3Iuc2V0ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdmFyIGdldCA9IGRlc2NyaXB0b3IuZ2V0LFxuICAgICAgc2V0ID0gZGVzY3JpcHRvci5zZXQ7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShub2RlLCB2YWx1ZUZpZWxkLCB7XG4gICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGdldC5jYWxsKHRoaXMpO1xuICAgIH0sXG4gICAgc2V0OiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgIGN1cnJlbnRWYWx1ZSA9ICcnICsgdmFsdWU7XG4gICAgICBzZXQuY2FsbCh0aGlzLCB2YWx1ZSk7XG4gICAgfVxuICB9KTsgLy8gV2UgY291bGQndmUgcGFzc2VkIHRoaXMgdGhlIGZpcnN0IHRpbWVcbiAgLy8gYnV0IGl0IHRyaWdnZXJzIGEgYnVnIGluIElFMTEgYW5kIEVkZ2UgMTQvMTUuXG4gIC8vIENhbGxpbmcgZGVmaW5lUHJvcGVydHkoKSBhZ2FpbiBzaG91bGQgYmUgZXF1aXZhbGVudC5cbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xMTc2OFxuXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShub2RlLCB2YWx1ZUZpZWxkLCB7XG4gICAgZW51bWVyYWJsZTogZGVzY3JpcHRvci5lbnVtZXJhYmxlXG4gIH0pO1xuICB2YXIgdHJhY2tlciA9IHtcbiAgICBnZXRWYWx1ZTogZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGN1cnJlbnRWYWx1ZTtcbiAgICB9LFxuICAgIHNldFZhbHVlOiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgIGN1cnJlbnRWYWx1ZSA9ICcnICsgdmFsdWU7XG4gICAgfSxcbiAgICBzdG9wVHJhY2tpbmc6IGZ1bmN0aW9uICgpIHtcbiAgICAgIGRldGFjaFRyYWNrZXIobm9kZSk7XG4gICAgICBkZWxldGUgbm9kZVt2YWx1ZUZpZWxkXTtcbiAgICB9XG4gIH07XG4gIHJldHVybiB0cmFja2VyO1xufVxuXG5mdW5jdGlvbiB0cmFjayhub2RlKSB7XG4gIGlmIChnZXRUcmFja2VyKG5vZGUpKSB7XG4gICAgcmV0dXJuO1xuICB9IC8vIFRPRE86IE9uY2UgaXQncyBqdXN0IEZpYmVyIHdlIGNhbiBtb3ZlIHRoaXMgdG8gbm9kZS5fd3JhcHBlclN0YXRlXG5cblxuICBub2RlLl92YWx1ZVRyYWNrZXIgPSB0cmFja1ZhbHVlT25Ob2RlKG5vZGUpO1xufVxuZnVuY3Rpb24gdXBkYXRlVmFsdWVJZkNoYW5nZWQobm9kZSkge1xuICBpZiAoIW5vZGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB2YXIgdHJhY2tlciA9IGdldFRyYWNrZXIobm9kZSk7IC8vIGlmIHRoZXJlIGlzIG5vIHRyYWNrZXIgYXQgdGhpcyBwb2ludCBpdCdzIHVubGlrZWx5XG4gIC8vIHRoYXQgdHJ5aW5nIGFnYWluIHdpbGwgc3VjY2VlZFxuXG4gIGlmICghdHJhY2tlcikge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgdmFyIGxhc3RWYWx1ZSA9IHRyYWNrZXIuZ2V0VmFsdWUoKTtcbiAgdmFyIG5leHRWYWx1ZSA9IGdldFZhbHVlRnJvbU5vZGUobm9kZSk7XG5cbiAgaWYgKG5leHRWYWx1ZSAhPT0gbGFzdFZhbHVlKSB7XG4gICAgdHJhY2tlci5zZXRWYWx1ZShuZXh0VmFsdWUpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBnZXRBY3RpdmVFbGVtZW50KGRvYykge1xuICBkb2MgPSBkb2MgfHwgKHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcgPyBkb2N1bWVudCA6IHVuZGVmaW5lZCk7XG5cbiAgaWYgKHR5cGVvZiBkb2MgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICB0cnkge1xuICAgIHJldHVybiBkb2MuYWN0aXZlRWxlbWVudCB8fCBkb2MuYm9keTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBkb2MuYm9keTtcbiAgfVxufVxuXG52YXIgZGlkV2FyblZhbHVlRGVmYXVsdFZhbHVlID0gZmFsc2U7XG52YXIgZGlkV2FybkNoZWNrZWREZWZhdWx0Q2hlY2tlZCA9IGZhbHNlO1xudmFyIGRpZFdhcm5Db250cm9sbGVkVG9VbmNvbnRyb2xsZWQgPSBmYWxzZTtcbnZhciBkaWRXYXJuVW5jb250cm9sbGVkVG9Db250cm9sbGVkID0gZmFsc2U7XG5cbmZ1bmN0aW9uIGlzQ29udHJvbGxlZChwcm9wcykge1xuICB2YXIgdXNlc0NoZWNrZWQgPSBwcm9wcy50eXBlID09PSAnY2hlY2tib3gnIHx8IHByb3BzLnR5cGUgPT09ICdyYWRpbyc7XG4gIHJldHVybiB1c2VzQ2hlY2tlZCA/IHByb3BzLmNoZWNrZWQgIT0gbnVsbCA6IHByb3BzLnZhbHVlICE9IG51bGw7XG59XG4vKipcbiAqIEltcGxlbWVudHMgYW4gPGlucHV0PiBob3N0IGNvbXBvbmVudCB0aGF0IGFsbG93cyBzZXR0aW5nIHRoZXNlIG9wdGlvbmFsXG4gKiBwcm9wczogYGNoZWNrZWRgLCBgdmFsdWVgLCBgZGVmYXVsdENoZWNrZWRgLCBhbmQgYGRlZmF1bHRWYWx1ZWAuXG4gKlxuICogSWYgYGNoZWNrZWRgIG9yIGB2YWx1ZWAgYXJlIG5vdCBzdXBwbGllZCAob3IgbnVsbC91bmRlZmluZWQpLCB1c2VyIGFjdGlvbnNcbiAqIHRoYXQgYWZmZWN0IHRoZSBjaGVja2VkIHN0YXRlIG9yIHZhbHVlIHdpbGwgdHJpZ2dlciB1cGRhdGVzIHRvIHRoZSBlbGVtZW50LlxuICpcbiAqIElmIHRoZXkgYXJlIHN1cHBsaWVkIChhbmQgbm90IG51bGwvdW5kZWZpbmVkKSwgdGhlIHJlbmRlcmVkIGVsZW1lbnQgd2lsbCBub3RcbiAqIHRyaWdnZXIgdXBkYXRlcyB0byB0aGUgZWxlbWVudC4gSW5zdGVhZCwgdGhlIHByb3BzIG11c3QgY2hhbmdlIGluIG9yZGVyIGZvclxuICogdGhlIHJlbmRlcmVkIGVsZW1lbnQgdG8gYmUgdXBkYXRlZC5cbiAqXG4gKiBUaGUgcmVuZGVyZWQgZWxlbWVudCB3aWxsIGJlIGluaXRpYWxpemVkIGFzIHVuY2hlY2tlZCAob3IgYGRlZmF1bHRDaGVja2VkYClcbiAqIHdpdGggYW4gZW1wdHkgdmFsdWUgKG9yIGBkZWZhdWx0VmFsdWVgKS5cbiAqXG4gKiBTZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAxMi9XRC1odG1sNS0yMDEyMTAyNS90aGUtaW5wdXQtZWxlbWVudC5odG1sXG4gKi9cblxuXG5mdW5jdGlvbiBnZXRIb3N0UHJvcHMoZWxlbWVudCwgcHJvcHMpIHtcbiAgdmFyIG5vZGUgPSBlbGVtZW50O1xuICB2YXIgY2hlY2tlZCA9IHByb3BzLmNoZWNrZWQ7XG5cbiAgdmFyIGhvc3RQcm9wcyA9IF9hc3NpZ24oe30sIHByb3BzLCB7XG4gICAgZGVmYXVsdENoZWNrZWQ6IHVuZGVmaW5lZCxcbiAgICBkZWZhdWx0VmFsdWU6IHVuZGVmaW5lZCxcbiAgICB2YWx1ZTogdW5kZWZpbmVkLFxuICAgIGNoZWNrZWQ6IGNoZWNrZWQgIT0gbnVsbCA/IGNoZWNrZWQgOiBub2RlLl93cmFwcGVyU3RhdGUuaW5pdGlhbENoZWNrZWRcbiAgfSk7XG5cbiAgcmV0dXJuIGhvc3RQcm9wcztcbn1cbmZ1bmN0aW9uIGluaXRXcmFwcGVyU3RhdGUoZWxlbWVudCwgcHJvcHMpIHtcbiAge1xuICAgIGNoZWNrQ29udHJvbGxlZFZhbHVlUHJvcHMoJ2lucHV0JywgcHJvcHMpO1xuXG4gICAgaWYgKHByb3BzLmNoZWNrZWQgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy5kZWZhdWx0Q2hlY2tlZCAhPT0gdW5kZWZpbmVkICYmICFkaWRXYXJuQ2hlY2tlZERlZmF1bHRDaGVja2VkKSB7XG4gICAgICBlcnJvcignJXMgY29udGFpbnMgYW4gaW5wdXQgb2YgdHlwZSAlcyB3aXRoIGJvdGggY2hlY2tlZCBhbmQgZGVmYXVsdENoZWNrZWQgcHJvcHMuICcgKyAnSW5wdXQgZWxlbWVudHMgbXVzdCBiZSBlaXRoZXIgY29udHJvbGxlZCBvciB1bmNvbnRyb2xsZWQgJyArICcoc3BlY2lmeSBlaXRoZXIgdGhlIGNoZWNrZWQgcHJvcCwgb3IgdGhlIGRlZmF1bHRDaGVja2VkIHByb3AsIGJ1dCBub3QgJyArICdib3RoKS4gRGVjaWRlIGJldHdlZW4gdXNpbmcgYSBjb250cm9sbGVkIG9yIHVuY29udHJvbGxlZCBpbnB1dCAnICsgJ2VsZW1lbnQgYW5kIHJlbW92ZSBvbmUgb2YgdGhlc2UgcHJvcHMuIE1vcmUgaW5mbzogJyArICdodHRwczovL3JlYWN0anMub3JnL2xpbmsvY29udHJvbGxlZC1jb21wb25lbnRzJywgZ2V0Q3VycmVudEZpYmVyT3duZXJOYW1lSW5EZXZPck51bGwoKSB8fCAnQSBjb21wb25lbnQnLCBwcm9wcy50eXBlKTtcblxuICAgICAgZGlkV2FybkNoZWNrZWREZWZhdWx0Q2hlY2tlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLnZhbHVlICE9PSB1bmRlZmluZWQgJiYgcHJvcHMuZGVmYXVsdFZhbHVlICE9PSB1bmRlZmluZWQgJiYgIWRpZFdhcm5WYWx1ZURlZmF1bHRWYWx1ZSkge1xuICAgICAgZXJyb3IoJyVzIGNvbnRhaW5zIGFuIGlucHV0IG9mIHR5cGUgJXMgd2l0aCBib3RoIHZhbHVlIGFuZCBkZWZhdWx0VmFsdWUgcHJvcHMuICcgKyAnSW5wdXQgZWxlbWVudHMgbXVzdCBiZSBlaXRoZXIgY29udHJvbGxlZCBvciB1bmNvbnRyb2xsZWQgJyArICcoc3BlY2lmeSBlaXRoZXIgdGhlIHZhbHVlIHByb3AsIG9yIHRoZSBkZWZhdWx0VmFsdWUgcHJvcCwgYnV0IG5vdCAnICsgJ2JvdGgpLiBEZWNpZGUgYmV0d2VlbiB1c2luZyBhIGNvbnRyb2xsZWQgb3IgdW5jb250cm9sbGVkIGlucHV0ICcgKyAnZWxlbWVudCBhbmQgcmVtb3ZlIG9uZSBvZiB0aGVzZSBwcm9wcy4gTW9yZSBpbmZvOiAnICsgJ2h0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9jb250cm9sbGVkLWNvbXBvbmVudHMnLCBnZXRDdXJyZW50RmliZXJPd25lck5hbWVJbkRldk9yTnVsbCgpIHx8ICdBIGNvbXBvbmVudCcsIHByb3BzLnR5cGUpO1xuXG4gICAgICBkaWRXYXJuVmFsdWVEZWZhdWx0VmFsdWUgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHZhciBub2RlID0gZWxlbWVudDtcbiAgdmFyIGRlZmF1bHRWYWx1ZSA9IHByb3BzLmRlZmF1bHRWYWx1ZSA9PSBudWxsID8gJycgOiBwcm9wcy5kZWZhdWx0VmFsdWU7XG4gIG5vZGUuX3dyYXBwZXJTdGF0ZSA9IHtcbiAgICBpbml0aWFsQ2hlY2tlZDogcHJvcHMuY2hlY2tlZCAhPSBudWxsID8gcHJvcHMuY2hlY2tlZCA6IHByb3BzLmRlZmF1bHRDaGVja2VkLFxuICAgIGluaXRpYWxWYWx1ZTogZ2V0VG9TdHJpbmdWYWx1ZShwcm9wcy52YWx1ZSAhPSBudWxsID8gcHJvcHMudmFsdWUgOiBkZWZhdWx0VmFsdWUpLFxuICAgIGNvbnRyb2xsZWQ6IGlzQ29udHJvbGxlZChwcm9wcylcbiAgfTtcbn1cbmZ1bmN0aW9uIHVwZGF0ZUNoZWNrZWQoZWxlbWVudCwgcHJvcHMpIHtcbiAgdmFyIG5vZGUgPSBlbGVtZW50O1xuICB2YXIgY2hlY2tlZCA9IHByb3BzLmNoZWNrZWQ7XG5cbiAgaWYgKGNoZWNrZWQgIT0gbnVsbCkge1xuICAgIHNldFZhbHVlRm9yUHJvcGVydHkobm9kZSwgJ2NoZWNrZWQnLCBjaGVja2VkLCBmYWxzZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIHVwZGF0ZVdyYXBwZXIoZWxlbWVudCwgcHJvcHMpIHtcbiAgdmFyIG5vZGUgPSBlbGVtZW50O1xuXG4gIHtcbiAgICB2YXIgY29udHJvbGxlZCA9IGlzQ29udHJvbGxlZChwcm9wcyk7XG5cbiAgICBpZiAoIW5vZGUuX3dyYXBwZXJTdGF0ZS5jb250cm9sbGVkICYmIGNvbnRyb2xsZWQgJiYgIWRpZFdhcm5VbmNvbnRyb2xsZWRUb0NvbnRyb2xsZWQpIHtcbiAgICAgIGVycm9yKCdBIGNvbXBvbmVudCBpcyBjaGFuZ2luZyBhbiB1bmNvbnRyb2xsZWQgaW5wdXQgdG8gYmUgY29udHJvbGxlZC4gJyArICdUaGlzIGlzIGxpa2VseSBjYXVzZWQgYnkgdGhlIHZhbHVlIGNoYW5naW5nIGZyb20gdW5kZWZpbmVkIHRvICcgKyAnYSBkZWZpbmVkIHZhbHVlLCB3aGljaCBzaG91bGQgbm90IGhhcHBlbi4gJyArICdEZWNpZGUgYmV0d2VlbiB1c2luZyBhIGNvbnRyb2xsZWQgb3IgdW5jb250cm9sbGVkIGlucHV0ICcgKyAnZWxlbWVudCBmb3IgdGhlIGxpZmV0aW1lIG9mIHRoZSBjb21wb25lbnQuIE1vcmUgaW5mbzogaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL2NvbnRyb2xsZWQtY29tcG9uZW50cycpO1xuXG4gICAgICBkaWRXYXJuVW5jb250cm9sbGVkVG9Db250cm9sbGVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAobm9kZS5fd3JhcHBlclN0YXRlLmNvbnRyb2xsZWQgJiYgIWNvbnRyb2xsZWQgJiYgIWRpZFdhcm5Db250cm9sbGVkVG9VbmNvbnRyb2xsZWQpIHtcbiAgICAgIGVycm9yKCdBIGNvbXBvbmVudCBpcyBjaGFuZ2luZyBhIGNvbnRyb2xsZWQgaW5wdXQgdG8gYmUgdW5jb250cm9sbGVkLiAnICsgJ1RoaXMgaXMgbGlrZWx5IGNhdXNlZCBieSB0aGUgdmFsdWUgY2hhbmdpbmcgZnJvbSBhIGRlZmluZWQgdG8gJyArICd1bmRlZmluZWQsIHdoaWNoIHNob3VsZCBub3QgaGFwcGVuLiAnICsgJ0RlY2lkZSBiZXR3ZWVuIHVzaW5nIGEgY29udHJvbGxlZCBvciB1bmNvbnRyb2xsZWQgaW5wdXQgJyArICdlbGVtZW50IGZvciB0aGUgbGlmZXRpbWUgb2YgdGhlIGNvbXBvbmVudC4gTW9yZSBpbmZvOiBodHRwczovL3JlYWN0anMub3JnL2xpbmsvY29udHJvbGxlZC1jb21wb25lbnRzJyk7XG5cbiAgICAgIGRpZFdhcm5Db250cm9sbGVkVG9VbmNvbnRyb2xsZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZUNoZWNrZWQoZWxlbWVudCwgcHJvcHMpO1xuICB2YXIgdmFsdWUgPSBnZXRUb1N0cmluZ1ZhbHVlKHByb3BzLnZhbHVlKTtcbiAgdmFyIHR5cGUgPSBwcm9wcy50eXBlO1xuXG4gIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgaWYgKHR5cGUgPT09ICdudW1iZXInKSB7XG4gICAgICBpZiAodmFsdWUgPT09IDAgJiYgbm9kZS52YWx1ZSA9PT0gJycgfHwgLy8gV2UgZXhwbGljaXRseSB3YW50IHRvIGNvZXJjZSB0byBudW1iZXIgaGVyZSBpZiBwb3NzaWJsZS5cbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgICAgbm9kZS52YWx1ZSAhPSB2YWx1ZSkge1xuICAgICAgICBub2RlLnZhbHVlID0gdG9TdHJpbmcodmFsdWUpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAobm9kZS52YWx1ZSAhPT0gdG9TdHJpbmcodmFsdWUpKSB7XG4gICAgICBub2RlLnZhbHVlID0gdG9TdHJpbmcodmFsdWUpO1xuICAgIH1cbiAgfSBlbHNlIGlmICh0eXBlID09PSAnc3VibWl0JyB8fCB0eXBlID09PSAncmVzZXQnKSB7XG4gICAgLy8gU3VibWl0L3Jlc2V0IGlucHV0cyBuZWVkIHRoZSBhdHRyaWJ1dGUgcmVtb3ZlZCBjb21wbGV0ZWx5IHRvIGF2b2lkXG4gICAgLy8gYmxhbmstdGV4dCBidXR0b25zLlxuICAgIG5vZGUucmVtb3ZlQXR0cmlidXRlKCd2YWx1ZScpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHtcbiAgICAvLyBXaGVuIHN5bmNpbmcgdGhlIHZhbHVlIGF0dHJpYnV0ZSwgdGhlIHZhbHVlIGNvbWVzIGZyb20gYSBjYXNjYWRlIG9mXG4gICAgLy8gcHJvcGVydGllczpcbiAgICAvLyAgMS4gVGhlIHZhbHVlIFJlYWN0IHByb3BlcnR5XG4gICAgLy8gIDIuIFRoZSBkZWZhdWx0VmFsdWUgUmVhY3QgcHJvcGVydHlcbiAgICAvLyAgMy4gT3RoZXJ3aXNlIHRoZXJlIHNob3VsZCBiZSBubyBjaGFuZ2VcbiAgICBpZiAocHJvcHMuaGFzT3duUHJvcGVydHkoJ3ZhbHVlJykpIHtcbiAgICAgIHNldERlZmF1bHRWYWx1ZShub2RlLCBwcm9wcy50eXBlLCB2YWx1ZSk7XG4gICAgfSBlbHNlIGlmIChwcm9wcy5oYXNPd25Qcm9wZXJ0eSgnZGVmYXVsdFZhbHVlJykpIHtcbiAgICAgIHNldERlZmF1bHRWYWx1ZShub2RlLCBwcm9wcy50eXBlLCBnZXRUb1N0cmluZ1ZhbHVlKHByb3BzLmRlZmF1bHRWYWx1ZSkpO1xuICAgIH1cbiAgfVxuXG4gIHtcbiAgICAvLyBXaGVuIHN5bmNpbmcgdGhlIGNoZWNrZWQgYXR0cmlidXRlLCBpdCBvbmx5IGNoYW5nZXMgd2hlbiBpdCBuZWVkc1xuICAgIC8vIHRvIGJlIHJlbW92ZWQsIHN1Y2ggYXMgdHJhbnNpdGlvbmluZyBmcm9tIGEgY2hlY2tib3ggaW50byBhIHRleHQgaW5wdXRcbiAgICBpZiAocHJvcHMuY2hlY2tlZCA9PSBudWxsICYmIHByb3BzLmRlZmF1bHRDaGVja2VkICE9IG51bGwpIHtcbiAgICAgIG5vZGUuZGVmYXVsdENoZWNrZWQgPSAhIXByb3BzLmRlZmF1bHRDaGVja2VkO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gcG9zdE1vdW50V3JhcHBlcihlbGVtZW50LCBwcm9wcywgaXNIeWRyYXRpbmcpIHtcbiAgdmFyIG5vZGUgPSBlbGVtZW50OyAvLyBEbyBub3QgYXNzaWduIHZhbHVlIGlmIGl0IGlzIGFscmVhZHkgc2V0LiBUaGlzIHByZXZlbnRzIHVzZXIgdGV4dCBpbnB1dFxuICAvLyBmcm9tIGJlaW5nIGxvc3QgZHVyaW5nIFNTUiBoeWRyYXRpb24uXG5cbiAgaWYgKHByb3BzLmhhc093blByb3BlcnR5KCd2YWx1ZScpIHx8IHByb3BzLmhhc093blByb3BlcnR5KCdkZWZhdWx0VmFsdWUnKSkge1xuICAgIHZhciB0eXBlID0gcHJvcHMudHlwZTtcbiAgICB2YXIgaXNCdXR0b24gPSB0eXBlID09PSAnc3VibWl0JyB8fCB0eXBlID09PSAncmVzZXQnOyAvLyBBdm9pZCBzZXR0aW5nIHZhbHVlIGF0dHJpYnV0ZSBvbiBzdWJtaXQvcmVzZXQgaW5wdXRzIGFzIGl0IG92ZXJyaWRlcyB0aGVcbiAgICAvLyBkZWZhdWx0IHZhbHVlIHByb3ZpZGVkIGJ5IHRoZSBicm93c2VyLiBTZWU6ICMxMjg3MlxuXG4gICAgaWYgKGlzQnV0dG9uICYmIChwcm9wcy52YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHByb3BzLnZhbHVlID09PSBudWxsKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciBpbml0aWFsVmFsdWUgPSB0b1N0cmluZyhub2RlLl93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlKTsgLy8gRG8gbm90IGFzc2lnbiB2YWx1ZSBpZiBpdCBpcyBhbHJlYWR5IHNldC4gVGhpcyBwcmV2ZW50cyB1c2VyIHRleHQgaW5wdXRcbiAgICAvLyBmcm9tIGJlaW5nIGxvc3QgZHVyaW5nIFNTUiBoeWRyYXRpb24uXG5cbiAgICBpZiAoIWlzSHlkcmF0aW5nKSB7XG4gICAgICB7XG4gICAgICAgIC8vIFdoZW4gc3luY2luZyB0aGUgdmFsdWUgYXR0cmlidXRlLCB0aGUgdmFsdWUgcHJvcGVydHkgc2hvdWxkIHVzZVxuICAgICAgICAvLyB0aGUgd3JhcHBlclN0YXRlLl9pbml0aWFsVmFsdWUgcHJvcGVydHkuIFRoaXMgdXNlczpcbiAgICAgICAgLy9cbiAgICAgICAgLy8gICAxLiBUaGUgdmFsdWUgUmVhY3QgcHJvcGVydHkgd2hlbiBwcmVzZW50XG4gICAgICAgIC8vICAgMi4gVGhlIGRlZmF1bHRWYWx1ZSBSZWFjdCBwcm9wZXJ0eSB3aGVuIHByZXNlbnRcbiAgICAgICAgLy8gICAzLiBBbiBlbXB0eSBzdHJpbmdcbiAgICAgICAgaWYgKGluaXRpYWxWYWx1ZSAhPT0gbm9kZS52YWx1ZSkge1xuICAgICAgICAgIG5vZGUudmFsdWUgPSBpbml0aWFsVmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB7XG4gICAgICAvLyBPdGhlcndpc2UsIHRoZSB2YWx1ZSBhdHRyaWJ1dGUgaXMgc3luY2hyb25pemVkIHRvIHRoZSBwcm9wZXJ0eSxcbiAgICAgIC8vIHNvIHdlIGFzc2lnbiBkZWZhdWx0VmFsdWUgdG8gdGhlIHNhbWUgdGhpbmcgYXMgdGhlIHZhbHVlIHByb3BlcnR5XG4gICAgICAvLyBhc3NpZ25tZW50IHN0ZXAgYWJvdmUuXG4gICAgICBub2RlLmRlZmF1bHRWYWx1ZSA9IGluaXRpYWxWYWx1ZTtcbiAgICB9XG4gIH0gLy8gTm9ybWFsbHksIHdlJ2QganVzdCBkbyBgbm9kZS5jaGVja2VkID0gbm9kZS5jaGVja2VkYCB1cG9uIGluaXRpYWwgbW91bnQsIGxlc3MgdGhpcyBidWdcbiAgLy8gdGhpcyBpcyBuZWVkZWQgdG8gd29yayBhcm91bmQgYSBjaHJvbWUgYnVnIHdoZXJlIHNldHRpbmcgZGVmYXVsdENoZWNrZWRcbiAgLy8gd2lsbCBzb21ldGltZXMgaW5mbHVlbmNlIHRoZSB2YWx1ZSBvZiBjaGVja2VkIChldmVuIGFmdGVyIGRldGFjaG1lbnQpLlxuICAvLyBSZWZlcmVuY2U6IGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTYwODQxNlxuICAvLyBXZSBuZWVkIHRvIHRlbXBvcmFyaWx5IHVuc2V0IG5hbWUgdG8gYXZvaWQgZGlzcnVwdGluZyByYWRpbyBidXR0b24gZ3JvdXBzLlxuXG5cbiAgdmFyIG5hbWUgPSBub2RlLm5hbWU7XG5cbiAgaWYgKG5hbWUgIT09ICcnKSB7XG4gICAgbm9kZS5uYW1lID0gJyc7XG4gIH1cblxuICB7XG4gICAgLy8gV2hlbiBzeW5jaW5nIHRoZSBjaGVja2VkIGF0dHJpYnV0ZSwgYm90aCB0aGUgY2hlY2tlZCBwcm9wZXJ0eSBhbmRcbiAgICAvLyBhdHRyaWJ1dGUgYXJlIGFzc2lnbmVkIGF0IHRoZSBzYW1lIHRpbWUgdXNpbmcgZGVmYXVsdENoZWNrZWQuIFRoaXMgdXNlczpcbiAgICAvL1xuICAgIC8vICAgMS4gVGhlIGNoZWNrZWQgUmVhY3QgcHJvcGVydHkgd2hlbiBwcmVzZW50XG4gICAgLy8gICAyLiBUaGUgZGVmYXVsdENoZWNrZWQgUmVhY3QgcHJvcGVydHkgd2hlbiBwcmVzZW50XG4gICAgLy8gICAzLiBPdGhlcndpc2UsIGZhbHNlXG4gICAgbm9kZS5kZWZhdWx0Q2hlY2tlZCA9ICFub2RlLmRlZmF1bHRDaGVja2VkO1xuICAgIG5vZGUuZGVmYXVsdENoZWNrZWQgPSAhIW5vZGUuX3dyYXBwZXJTdGF0ZS5pbml0aWFsQ2hlY2tlZDtcbiAgfVxuXG4gIGlmIChuYW1lICE9PSAnJykge1xuICAgIG5vZGUubmFtZSA9IG5hbWU7XG4gIH1cbn1cbmZ1bmN0aW9uIHJlc3RvcmVDb250cm9sbGVkU3RhdGUoZWxlbWVudCwgcHJvcHMpIHtcbiAgdmFyIG5vZGUgPSBlbGVtZW50O1xuICB1cGRhdGVXcmFwcGVyKG5vZGUsIHByb3BzKTtcbiAgdXBkYXRlTmFtZWRDb3VzaW5zKG5vZGUsIHByb3BzKTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlTmFtZWRDb3VzaW5zKHJvb3ROb2RlLCBwcm9wcykge1xuICB2YXIgbmFtZSA9IHByb3BzLm5hbWU7XG5cbiAgaWYgKHByb3BzLnR5cGUgPT09ICdyYWRpbycgJiYgbmFtZSAhPSBudWxsKSB7XG4gICAgdmFyIHF1ZXJ5Um9vdCA9IHJvb3ROb2RlO1xuXG4gICAgd2hpbGUgKHF1ZXJ5Um9vdC5wYXJlbnROb2RlKSB7XG4gICAgICBxdWVyeVJvb3QgPSBxdWVyeVJvb3QucGFyZW50Tm9kZTtcbiAgICB9IC8vIElmIGByb290Tm9kZS5mb3JtYCB3YXMgbm9uLW51bGwsIHRoZW4gd2UgY291bGQgdHJ5IGBmb3JtLmVsZW1lbnRzYCxcbiAgICAvLyBidXQgdGhhdCBzb21ldGltZXMgYmVoYXZlcyBzdHJhbmdlbHkgaW4gSUU4LiBXZSBjb3VsZCBhbHNvIHRyeSB1c2luZ1xuICAgIC8vIGBmb3JtLmdldEVsZW1lbnRzQnlOYW1lYCwgYnV0IHRoYXQgd2lsbCBvbmx5IHJldHVybiBkaXJlY3QgY2hpbGRyZW5cbiAgICAvLyBhbmQgd29uJ3QgaW5jbHVkZSBpbnB1dHMgdGhhdCB1c2UgdGhlIEhUTUw1IGBmb3JtPWAgYXR0cmlidXRlLiBTaW5jZVxuICAgIC8vIHRoZSBpbnB1dCBtaWdodCBub3QgZXZlbiBiZSBpbiBhIGZvcm0uIEl0IG1pZ2h0IG5vdCBldmVuIGJlIGluIHRoZVxuICAgIC8vIGRvY3VtZW50LiBMZXQncyBqdXN0IHVzZSB0aGUgbG9jYWwgYHF1ZXJ5U2VsZWN0b3JBbGxgIHRvIGVuc3VyZSB3ZSBkb24ndFxuICAgIC8vIG1pc3MgYW55dGhpbmcuXG5cblxuICAgIHZhciBncm91cCA9IHF1ZXJ5Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dFtuYW1lPScgKyBKU09OLnN0cmluZ2lmeSgnJyArIG5hbWUpICsgJ11bdHlwZT1cInJhZGlvXCJdJyk7XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGdyb3VwLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgb3RoZXJOb2RlID0gZ3JvdXBbaV07XG5cbiAgICAgIGlmIChvdGhlck5vZGUgPT09IHJvb3ROb2RlIHx8IG90aGVyTm9kZS5mb3JtICE9PSByb290Tm9kZS5mb3JtKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfSAvLyBUaGlzIHdpbGwgdGhyb3cgaWYgcmFkaW8gYnV0dG9ucyByZW5kZXJlZCBieSBkaWZmZXJlbnQgY29waWVzIG9mIFJlYWN0XG4gICAgICAvLyBhbmQgdGhlIHNhbWUgbmFtZSBhcmUgcmVuZGVyZWQgaW50byB0aGUgc2FtZSBmb3JtIChzYW1lIGFzICMxOTM5KS5cbiAgICAgIC8vIFRoYXQncyBwcm9iYWJseSBva2F5OyB3ZSBkb24ndCBzdXBwb3J0IGl0IGp1c3QgYXMgd2UgZG9uJ3Qgc3VwcG9ydFxuICAgICAgLy8gbWl4aW5nIFJlYWN0IHJhZGlvIGJ1dHRvbnMgd2l0aCBub24tUmVhY3Qgb25lcy5cblxuXG4gICAgICB2YXIgb3RoZXJQcm9wcyA9IGdldEZpYmVyQ3VycmVudFByb3BzRnJvbU5vZGUob3RoZXJOb2RlKTtcblxuICAgICAgaWYgKCFvdGhlclByb3BzKSB7XG4gICAgICAgIHtcbiAgICAgICAgICB0aHJvdyBFcnJvciggXCJSZWFjdERPTUlucHV0OiBNaXhpbmcgUmVhY3QgYW5kIG5vbi1SZWFjdCByYWRpbyBpbnB1dHMgd2l0aCB0aGUgc2FtZSBgbmFtZWAgaXMgbm90IHN1cHBvcnRlZC5cIiApO1xuICAgICAgICB9XG4gICAgICB9IC8vIFdlIG5lZWQgdXBkYXRlIHRoZSB0cmFja2VkIHZhbHVlIG9uIHRoZSBuYW1lZCBjb3VzaW4gc2luY2UgdGhlIHZhbHVlXG4gICAgICAvLyB3YXMgY2hhbmdlZCBidXQgdGhlIGlucHV0IHNhdyBubyBldmVudCBvciB2YWx1ZSBzZXRcblxuXG4gICAgICB1cGRhdGVWYWx1ZUlmQ2hhbmdlZChvdGhlck5vZGUpOyAvLyBJZiB0aGlzIGlzIGEgY29udHJvbGxlZCByYWRpbyBidXR0b24gZ3JvdXAsIGZvcmNpbmcgdGhlIGlucHV0IHRoYXRcbiAgICAgIC8vIHdhcyBwcmV2aW91c2x5IGNoZWNrZWQgdG8gdXBkYXRlIHdpbGwgY2F1c2UgaXQgdG8gYmUgY29tZSByZS1jaGVja2VkXG4gICAgICAvLyBhcyBhcHByb3ByaWF0ZS5cblxuICAgICAgdXBkYXRlV3JhcHBlcihvdGhlck5vZGUsIG90aGVyUHJvcHMpO1xuICAgIH1cbiAgfVxufSAvLyBJbiBDaHJvbWUsIGFzc2lnbmluZyBkZWZhdWx0VmFsdWUgdG8gY2VydGFpbiBpbnB1dCB0eXBlcyB0cmlnZ2VycyBpbnB1dCB2YWxpZGF0aW9uLlxuLy8gRm9yIG51bWJlciBpbnB1dHMsIHRoZSBkaXNwbGF5IHZhbHVlIGxvc2VzIHRyYWlsaW5nIGRlY2ltYWwgcG9pbnRzLiBGb3IgZW1haWwgaW5wdXRzLFxuLy8gQ2hyb21lIHJhaXNlcyBcIlRoZSBzcGVjaWZpZWQgdmFsdWUgPHg+IGlzIG5vdCBhIHZhbGlkIGVtYWlsIGFkZHJlc3NcIi5cbi8vXG4vLyBIZXJlIHdlIGNoZWNrIHRvIHNlZSBpZiB0aGUgZGVmYXVsdFZhbHVlIGhhcyBhY3R1YWxseSBjaGFuZ2VkLCBhdm9pZGluZyB0aGVzZSBwcm9ibGVtc1xuLy8gd2hlbiB0aGUgdXNlciBpcyBpbnB1dHRpbmcgdGV4dFxuLy9cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvNzI1M1xuXG5cbmZ1bmN0aW9uIHNldERlZmF1bHRWYWx1ZShub2RlLCB0eXBlLCB2YWx1ZSkge1xuICBpZiAoIC8vIEZvY3VzZWQgbnVtYmVyIGlucHV0cyBzeW5jaHJvbml6ZSBvbiBibHVyLiBTZWUgQ2hhbmdlRXZlbnRQbHVnaW4uanNcbiAgdHlwZSAhPT0gJ251bWJlcicgfHwgZ2V0QWN0aXZlRWxlbWVudChub2RlLm93bmVyRG9jdW1lbnQpICE9PSBub2RlKSB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIG5vZGUuZGVmYXVsdFZhbHVlID0gdG9TdHJpbmcobm9kZS5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZSk7XG4gICAgfSBlbHNlIGlmIChub2RlLmRlZmF1bHRWYWx1ZSAhPT0gdG9TdHJpbmcodmFsdWUpKSB7XG4gICAgICBub2RlLmRlZmF1bHRWYWx1ZSA9IHRvU3RyaW5nKHZhbHVlKTtcbiAgICB9XG4gIH1cbn1cblxudmFyIGRpZFdhcm5TZWxlY3RlZFNldE9uT3B0aW9uID0gZmFsc2U7XG52YXIgZGlkV2FybkludmFsaWRDaGlsZCA9IGZhbHNlO1xuXG5mdW5jdGlvbiBmbGF0dGVuQ2hpbGRyZW4oY2hpbGRyZW4pIHtcbiAgdmFyIGNvbnRlbnQgPSAnJzsgLy8gRmxhdHRlbiBjaGlsZHJlbi4gV2UnbGwgd2FybiBpZiB0aGV5IGFyZSBpbnZhbGlkXG4gIC8vIGR1cmluZyB2YWxpZGF0ZVByb3BzKCkgd2hpY2ggcnVucyBmb3IgaHlkcmF0aW9uIHRvby5cbiAgLy8gTm90ZSB0aGF0IHRoaXMgd291bGQgdGhyb3cgb24gbm9uLWVsZW1lbnQgb2JqZWN0cy5cbiAgLy8gRWxlbWVudHMgYXJlIHN0cmluZ2lmaWVkICh3aGljaCBpcyBub3JtYWxseSBpcnJlbGV2YW50XG4gIC8vIGJ1dCBtYXR0ZXJzIGZvciA8ZmJ0PikuXG5cbiAgUmVhY3QuQ2hpbGRyZW4uZm9yRWFjaChjaGlsZHJlbiwgZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgaWYgKGNoaWxkID09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb250ZW50ICs9IGNoaWxkOyAvLyBOb3RlOiB3ZSBkb24ndCB3YXJuIGFib3V0IGludmFsaWQgY2hpbGRyZW4gaGVyZS5cbiAgICAvLyBJbnN0ZWFkLCB0aGlzIGlzIGRvbmUgc2VwYXJhdGVseSBiZWxvdyBzbyB0aGF0XG4gICAgLy8gaXQgaGFwcGVucyBkdXJpbmcgdGhlIGh5ZHJhdGlvbiBjb2RlIHBhdGggdG9vLlxuICB9KTtcbiAgcmV0dXJuIGNvbnRlbnQ7XG59XG4vKipcbiAqIEltcGxlbWVudHMgYW4gPG9wdGlvbj4gaG9zdCBjb21wb25lbnQgdGhhdCB3YXJucyB3aGVuIGBzZWxlY3RlZGAgaXMgc2V0LlxuICovXG5cblxuZnVuY3Rpb24gdmFsaWRhdGVQcm9wcyhlbGVtZW50LCBwcm9wcykge1xuICB7XG4gICAgLy8gVGhpcyBtaXJyb3JzIHRoZSBjb2RlIHBhdGggYWJvdmUsIGJ1dCBydW5zIGZvciBoeWRyYXRpb24gdG9vLlxuICAgIC8vIFdhcm4gYWJvdXQgaW52YWxpZCBjaGlsZHJlbiBoZXJlIHNvIHRoYXQgY2xpZW50IGFuZCBoeWRyYXRpb24gYXJlIGNvbnNpc3RlbnQuXG4gICAgLy8gVE9ETzogdGhpcyBzZWVtcyBsaWtlIGl0IGNvdWxkIGNhdXNlIGEgREVWLW9ubHkgdGhyb3cgZm9yIGh5ZHJhdGlvblxuICAgIC8vIGlmIGNoaWxkcmVuIGNvbnRhaW5zIGEgbm9uLWVsZW1lbnQgb2JqZWN0LiBXZSBzaG91bGQgdHJ5IHRvIGF2b2lkIHRoYXQuXG4gICAgaWYgKHR5cGVvZiBwcm9wcy5jaGlsZHJlbiA9PT0gJ29iamVjdCcgJiYgcHJvcHMuY2hpbGRyZW4gIT09IG51bGwpIHtcbiAgICAgIFJlYWN0LkNoaWxkcmVuLmZvckVhY2gocHJvcHMuY2hpbGRyZW4sIGZ1bmN0aW9uIChjaGlsZCkge1xuICAgICAgICBpZiAoY2hpbGQgPT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgY2hpbGQgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBjaGlsZCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIGNoaWxkLnR5cGUgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFkaWRXYXJuSW52YWxpZENoaWxkKSB7XG4gICAgICAgICAgZGlkV2FybkludmFsaWRDaGlsZCA9IHRydWU7XG5cbiAgICAgICAgICBlcnJvcignT25seSBzdHJpbmdzIGFuZCBudW1iZXJzIGFyZSBzdXBwb3J0ZWQgYXMgPG9wdGlvbj4gY2hpbGRyZW4uJyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gLy8gVE9ETzogUmVtb3ZlIHN1cHBvcnQgZm9yIGBzZWxlY3RlZGAgaW4gPG9wdGlvbj4uXG5cblxuICAgIGlmIChwcm9wcy5zZWxlY3RlZCAhPSBudWxsICYmICFkaWRXYXJuU2VsZWN0ZWRTZXRPbk9wdGlvbikge1xuICAgICAgZXJyb3IoJ1VzZSB0aGUgYGRlZmF1bHRWYWx1ZWAgb3IgYHZhbHVlYCBwcm9wcyBvbiA8c2VsZWN0PiBpbnN0ZWFkIG9mICcgKyAnc2V0dGluZyBgc2VsZWN0ZWRgIG9uIDxvcHRpb24+LicpO1xuXG4gICAgICBkaWRXYXJuU2VsZWN0ZWRTZXRPbk9wdGlvbiA9IHRydWU7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBwb3N0TW91bnRXcmFwcGVyJDEoZWxlbWVudCwgcHJvcHMpIHtcbiAgLy8gdmFsdWU9XCJcIiBzaG91bGQgbWFrZSBhIHZhbHVlIGF0dHJpYnV0ZSAoIzYyMTkpXG4gIGlmIChwcm9wcy52YWx1ZSAhPSBudWxsKSB7XG4gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgdG9TdHJpbmcoZ2V0VG9TdHJpbmdWYWx1ZShwcm9wcy52YWx1ZSkpKTtcbiAgfVxufVxuZnVuY3Rpb24gZ2V0SG9zdFByb3BzJDEoZWxlbWVudCwgcHJvcHMpIHtcbiAgdmFyIGhvc3RQcm9wcyA9IF9hc3NpZ24oe1xuICAgIGNoaWxkcmVuOiB1bmRlZmluZWRcbiAgfSwgcHJvcHMpO1xuXG4gIHZhciBjb250ZW50ID0gZmxhdHRlbkNoaWxkcmVuKHByb3BzLmNoaWxkcmVuKTtcblxuICBpZiAoY29udGVudCkge1xuICAgIGhvc3RQcm9wcy5jaGlsZHJlbiA9IGNvbnRlbnQ7XG4gIH1cblxuICByZXR1cm4gaG9zdFByb3BzO1xufVxuXG52YXIgZGlkV2FyblZhbHVlRGVmYXVsdFZhbHVlJDE7XG5cbntcbiAgZGlkV2FyblZhbHVlRGVmYXVsdFZhbHVlJDEgPSBmYWxzZTtcbn1cblxuZnVuY3Rpb24gZ2V0RGVjbGFyYXRpb25FcnJvckFkZGVuZHVtKCkge1xuICB2YXIgb3duZXJOYW1lID0gZ2V0Q3VycmVudEZpYmVyT3duZXJOYW1lSW5EZXZPck51bGwoKTtcblxuICBpZiAob3duZXJOYW1lKSB7XG4gICAgcmV0dXJuICdcXG5cXG5DaGVjayB0aGUgcmVuZGVyIG1ldGhvZCBvZiBgJyArIG93bmVyTmFtZSArICdgLic7XG4gIH1cblxuICByZXR1cm4gJyc7XG59XG5cbnZhciB2YWx1ZVByb3BOYW1lcyA9IFsndmFsdWUnLCAnZGVmYXVsdFZhbHVlJ107XG4vKipcbiAqIFZhbGlkYXRpb24gZnVuY3Rpb24gZm9yIGB2YWx1ZWAgYW5kIGBkZWZhdWx0VmFsdWVgLlxuICovXG5cbmZ1bmN0aW9uIGNoZWNrU2VsZWN0UHJvcFR5cGVzKHByb3BzKSB7XG4gIHtcbiAgICBjaGVja0NvbnRyb2xsZWRWYWx1ZVByb3BzKCdzZWxlY3QnLCBwcm9wcyk7XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlUHJvcE5hbWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgcHJvcE5hbWUgPSB2YWx1ZVByb3BOYW1lc1tpXTtcblxuICAgICAgaWYgKHByb3BzW3Byb3BOYW1lXSA9PSBudWxsKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICB2YXIgaXNBcnJheSA9IEFycmF5LmlzQXJyYXkocHJvcHNbcHJvcE5hbWVdKTtcblxuICAgICAgaWYgKHByb3BzLm11bHRpcGxlICYmICFpc0FycmF5KSB7XG4gICAgICAgIGVycm9yKCdUaGUgYCVzYCBwcm9wIHN1cHBsaWVkIHRvIDxzZWxlY3Q+IG11c3QgYmUgYW4gYXJyYXkgaWYgJyArICdgbXVsdGlwbGVgIGlzIHRydWUuJXMnLCBwcm9wTmFtZSwgZ2V0RGVjbGFyYXRpb25FcnJvckFkZGVuZHVtKCkpO1xuICAgICAgfSBlbHNlIGlmICghcHJvcHMubXVsdGlwbGUgJiYgaXNBcnJheSkge1xuICAgICAgICBlcnJvcignVGhlIGAlc2AgcHJvcCBzdXBwbGllZCB0byA8c2VsZWN0PiBtdXN0IGJlIGEgc2NhbGFyICcgKyAndmFsdWUgaWYgYG11bHRpcGxlYCBpcyBmYWxzZS4lcycsIHByb3BOYW1lLCBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0oKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZU9wdGlvbnMobm9kZSwgbXVsdGlwbGUsIHByb3BWYWx1ZSwgc2V0RGVmYXVsdFNlbGVjdGVkKSB7XG4gIHZhciBvcHRpb25zID0gbm9kZS5vcHRpb25zO1xuXG4gIGlmIChtdWx0aXBsZSkge1xuICAgIHZhciBzZWxlY3RlZFZhbHVlcyA9IHByb3BWYWx1ZTtcbiAgICB2YXIgc2VsZWN0ZWRWYWx1ZSA9IHt9O1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWxlY3RlZFZhbHVlcy5sZW5ndGg7IGkrKykge1xuICAgICAgLy8gUHJlZml4IHRvIGF2b2lkIGNoYW9zIHdpdGggc3BlY2lhbCBrZXlzLlxuICAgICAgc2VsZWN0ZWRWYWx1ZVsnJCcgKyBzZWxlY3RlZFZhbHVlc1tpXV0gPSB0cnVlO1xuICAgIH1cblxuICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBvcHRpb25zLmxlbmd0aDsgX2krKykge1xuICAgICAgdmFyIHNlbGVjdGVkID0gc2VsZWN0ZWRWYWx1ZS5oYXNPd25Qcm9wZXJ0eSgnJCcgKyBvcHRpb25zW19pXS52YWx1ZSk7XG5cbiAgICAgIGlmIChvcHRpb25zW19pXS5zZWxlY3RlZCAhPT0gc2VsZWN0ZWQpIHtcbiAgICAgICAgb3B0aW9uc1tfaV0uc2VsZWN0ZWQgPSBzZWxlY3RlZDtcbiAgICAgIH1cblxuICAgICAgaWYgKHNlbGVjdGVkICYmIHNldERlZmF1bHRTZWxlY3RlZCkge1xuICAgICAgICBvcHRpb25zW19pXS5kZWZhdWx0U2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBEbyBub3Qgc2V0IGBzZWxlY3QudmFsdWVgIGFzIGV4YWN0IGJlaGF2aW9yIGlzbid0IGNvbnNpc3RlbnQgYWNyb3NzIGFsbFxuICAgIC8vIGJyb3dzZXJzIGZvciBhbGwgY2FzZXMuXG4gICAgdmFyIF9zZWxlY3RlZFZhbHVlID0gdG9TdHJpbmcoZ2V0VG9TdHJpbmdWYWx1ZShwcm9wVmFsdWUpKTtcblxuICAgIHZhciBkZWZhdWx0U2VsZWN0ZWQgPSBudWxsO1xuXG4gICAgZm9yICh2YXIgX2kyID0gMDsgX2kyIDwgb3B0aW9ucy5sZW5ndGg7IF9pMisrKSB7XG4gICAgICBpZiAob3B0aW9uc1tfaTJdLnZhbHVlID09PSBfc2VsZWN0ZWRWYWx1ZSkge1xuICAgICAgICBvcHRpb25zW19pMl0uc2VsZWN0ZWQgPSB0cnVlO1xuXG4gICAgICAgIGlmIChzZXREZWZhdWx0U2VsZWN0ZWQpIHtcbiAgICAgICAgICBvcHRpb25zW19pMl0uZGVmYXVsdFNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGRlZmF1bHRTZWxlY3RlZCA9PT0gbnVsbCAmJiAhb3B0aW9uc1tfaTJdLmRpc2FibGVkKSB7XG4gICAgICAgIGRlZmF1bHRTZWxlY3RlZCA9IG9wdGlvbnNbX2kyXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZGVmYXVsdFNlbGVjdGVkICE9PSBudWxsKSB7XG4gICAgICBkZWZhdWx0U2VsZWN0ZWQuc2VsZWN0ZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxufVxuLyoqXG4gKiBJbXBsZW1lbnRzIGEgPHNlbGVjdD4gaG9zdCBjb21wb25lbnQgdGhhdCBhbGxvd3Mgb3B0aW9uYWxseSBzZXR0aW5nIHRoZVxuICogcHJvcHMgYHZhbHVlYCBhbmQgYGRlZmF1bHRWYWx1ZWAuIElmIGBtdWx0aXBsZWAgaXMgZmFsc2UsIHRoZSBwcm9wIG11c3QgYmUgYVxuICogc3RyaW5nYWJsZS4gSWYgYG11bHRpcGxlYCBpcyB0cnVlLCB0aGUgcHJvcCBtdXN0IGJlIGFuIGFycmF5IG9mIHN0cmluZ2FibGVzLlxuICpcbiAqIElmIGB2YWx1ZWAgaXMgbm90IHN1cHBsaWVkIChvciBudWxsL3VuZGVmaW5lZCksIHVzZXIgYWN0aW9ucyB0aGF0IGNoYW5nZSB0aGVcbiAqIHNlbGVjdGVkIG9wdGlvbiB3aWxsIHRyaWdnZXIgdXBkYXRlcyB0byB0aGUgcmVuZGVyZWQgb3B0aW9ucy5cbiAqXG4gKiBJZiBpdCBpcyBzdXBwbGllZCAoYW5kIG5vdCBudWxsL3VuZGVmaW5lZCksIHRoZSByZW5kZXJlZCBvcHRpb25zIHdpbGwgbm90XG4gKiB1cGRhdGUgaW4gcmVzcG9uc2UgdG8gdXNlciBhY3Rpb25zLiBJbnN0ZWFkLCB0aGUgYHZhbHVlYCBwcm9wIG11c3QgY2hhbmdlIGluXG4gKiBvcmRlciBmb3IgdGhlIHJlbmRlcmVkIG9wdGlvbnMgdG8gdXBkYXRlLlxuICpcbiAqIElmIGBkZWZhdWx0VmFsdWVgIGlzIHByb3ZpZGVkLCBhbnkgb3B0aW9ucyB3aXRoIHRoZSBzdXBwbGllZCB2YWx1ZXMgd2lsbCBiZVxuICogc2VsZWN0ZWQuXG4gKi9cblxuXG5mdW5jdGlvbiBnZXRIb3N0UHJvcHMkMihlbGVtZW50LCBwcm9wcykge1xuICByZXR1cm4gX2Fzc2lnbih7fSwgcHJvcHMsIHtcbiAgICB2YWx1ZTogdW5kZWZpbmVkXG4gIH0pO1xufVxuZnVuY3Rpb24gaW5pdFdyYXBwZXJTdGF0ZSQxKGVsZW1lbnQsIHByb3BzKSB7XG4gIHZhciBub2RlID0gZWxlbWVudDtcblxuICB7XG4gICAgY2hlY2tTZWxlY3RQcm9wVHlwZXMocHJvcHMpO1xuICB9XG5cbiAgbm9kZS5fd3JhcHBlclN0YXRlID0ge1xuICAgIHdhc011bHRpcGxlOiAhIXByb3BzLm11bHRpcGxlXG4gIH07XG5cbiAge1xuICAgIGlmIChwcm9wcy52YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHByb3BzLmRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkICYmICFkaWRXYXJuVmFsdWVEZWZhdWx0VmFsdWUkMSkge1xuICAgICAgZXJyb3IoJ1NlbGVjdCBlbGVtZW50cyBtdXN0IGJlIGVpdGhlciBjb250cm9sbGVkIG9yIHVuY29udHJvbGxlZCAnICsgJyhzcGVjaWZ5IGVpdGhlciB0aGUgdmFsdWUgcHJvcCwgb3IgdGhlIGRlZmF1bHRWYWx1ZSBwcm9wLCBidXQgbm90ICcgKyAnYm90aCkuIERlY2lkZSBiZXR3ZWVuIHVzaW5nIGEgY29udHJvbGxlZCBvciB1bmNvbnRyb2xsZWQgc2VsZWN0ICcgKyAnZWxlbWVudCBhbmQgcmVtb3ZlIG9uZSBvZiB0aGVzZSBwcm9wcy4gTW9yZSBpbmZvOiAnICsgJ2h0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9jb250cm9sbGVkLWNvbXBvbmVudHMnKTtcblxuICAgICAgZGlkV2FyblZhbHVlRGVmYXVsdFZhbHVlJDEgPSB0cnVlO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gcG9zdE1vdW50V3JhcHBlciQyKGVsZW1lbnQsIHByb3BzKSB7XG4gIHZhciBub2RlID0gZWxlbWVudDtcbiAgbm9kZS5tdWx0aXBsZSA9ICEhcHJvcHMubXVsdGlwbGU7XG4gIHZhciB2YWx1ZSA9IHByb3BzLnZhbHVlO1xuXG4gIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgdXBkYXRlT3B0aW9ucyhub2RlLCAhIXByb3BzLm11bHRpcGxlLCB2YWx1ZSwgZmFsc2UpO1xuICB9IGVsc2UgaWYgKHByb3BzLmRlZmF1bHRWYWx1ZSAhPSBudWxsKSB7XG4gICAgdXBkYXRlT3B0aW9ucyhub2RlLCAhIXByb3BzLm11bHRpcGxlLCBwcm9wcy5kZWZhdWx0VmFsdWUsIHRydWUpO1xuICB9XG59XG5mdW5jdGlvbiBwb3N0VXBkYXRlV3JhcHBlcihlbGVtZW50LCBwcm9wcykge1xuICB2YXIgbm9kZSA9IGVsZW1lbnQ7XG4gIHZhciB3YXNNdWx0aXBsZSA9IG5vZGUuX3dyYXBwZXJTdGF0ZS53YXNNdWx0aXBsZTtcbiAgbm9kZS5fd3JhcHBlclN0YXRlLndhc011bHRpcGxlID0gISFwcm9wcy5tdWx0aXBsZTtcbiAgdmFyIHZhbHVlID0gcHJvcHMudmFsdWU7XG5cbiAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICB1cGRhdGVPcHRpb25zKG5vZGUsICEhcHJvcHMubXVsdGlwbGUsIHZhbHVlLCBmYWxzZSk7XG4gIH0gZWxzZSBpZiAod2FzTXVsdGlwbGUgIT09ICEhcHJvcHMubXVsdGlwbGUpIHtcbiAgICAvLyBGb3Igc2ltcGxpY2l0eSwgcmVhcHBseSBgZGVmYXVsdFZhbHVlYCBpZiBgbXVsdGlwbGVgIGlzIHRvZ2dsZWQuXG4gICAgaWYgKHByb3BzLmRlZmF1bHRWYWx1ZSAhPSBudWxsKSB7XG4gICAgICB1cGRhdGVPcHRpb25zKG5vZGUsICEhcHJvcHMubXVsdGlwbGUsIHByb3BzLmRlZmF1bHRWYWx1ZSwgdHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFJldmVydCB0aGUgc2VsZWN0IGJhY2sgdG8gaXRzIGRlZmF1bHQgdW5zZWxlY3RlZCBzdGF0ZS5cbiAgICAgIHVwZGF0ZU9wdGlvbnMobm9kZSwgISFwcm9wcy5tdWx0aXBsZSwgcHJvcHMubXVsdGlwbGUgPyBbXSA6ICcnLCBmYWxzZSk7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiByZXN0b3JlQ29udHJvbGxlZFN0YXRlJDEoZWxlbWVudCwgcHJvcHMpIHtcbiAgdmFyIG5vZGUgPSBlbGVtZW50O1xuICB2YXIgdmFsdWUgPSBwcm9wcy52YWx1ZTtcblxuICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgIHVwZGF0ZU9wdGlvbnMobm9kZSwgISFwcm9wcy5tdWx0aXBsZSwgdmFsdWUsIGZhbHNlKTtcbiAgfVxufVxuXG52YXIgZGlkV2FyblZhbERlZmF1bHRWYWwgPSBmYWxzZTtcblxuLyoqXG4gKiBJbXBsZW1lbnRzIGEgPHRleHRhcmVhPiBob3N0IGNvbXBvbmVudCB0aGF0IGFsbG93cyBzZXR0aW5nIGB2YWx1ZWAsIGFuZFxuICogYGRlZmF1bHRWYWx1ZWAuIFRoaXMgZGlmZmVycyBmcm9tIHRoZSB0cmFkaXRpb25hbCBET00gQVBJIGJlY2F1c2UgdmFsdWUgaXNcbiAqIHVzdWFsbHkgc2V0IGFzIFBDREFUQSBjaGlsZHJlbi5cbiAqXG4gKiBJZiBgdmFsdWVgIGlzIG5vdCBzdXBwbGllZCAob3IgbnVsbC91bmRlZmluZWQpLCB1c2VyIGFjdGlvbnMgdGhhdCBhZmZlY3QgdGhlXG4gKiB2YWx1ZSB3aWxsIHRyaWdnZXIgdXBkYXRlcyB0byB0aGUgZWxlbWVudC5cbiAqXG4gKiBJZiBgdmFsdWVgIGlzIHN1cHBsaWVkIChhbmQgbm90IG51bGwvdW5kZWZpbmVkKSwgdGhlIHJlbmRlcmVkIGVsZW1lbnQgd2lsbFxuICogbm90IHRyaWdnZXIgdXBkYXRlcyB0byB0aGUgZWxlbWVudC4gSW5zdGVhZCwgdGhlIGB2YWx1ZWAgcHJvcCBtdXN0IGNoYW5nZSBpblxuICogb3JkZXIgZm9yIHRoZSByZW5kZXJlZCBlbGVtZW50IHRvIGJlIHVwZGF0ZWQuXG4gKlxuICogVGhlIHJlbmRlcmVkIGVsZW1lbnQgd2lsbCBiZSBpbml0aWFsaXplZCB3aXRoIGFuIGVtcHR5IHZhbHVlLCB0aGUgcHJvcFxuICogYGRlZmF1bHRWYWx1ZWAgaWYgc3BlY2lmaWVkLCBvciB0aGUgY2hpbGRyZW4gY29udGVudCAoZGVwcmVjYXRlZCkuXG4gKi9cbmZ1bmN0aW9uIGdldEhvc3RQcm9wcyQzKGVsZW1lbnQsIHByb3BzKSB7XG4gIHZhciBub2RlID0gZWxlbWVudDtcblxuICBpZiAoIShwcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTCA9PSBudWxsKSkge1xuICAgIHtcbiAgICAgIHRocm93IEVycm9yKCBcImBkYW5nZXJvdXNseVNldElubmVySFRNTGAgZG9lcyBub3QgbWFrZSBzZW5zZSBvbiA8dGV4dGFyZWE+LlwiICk7XG4gICAgfVxuICB9IC8vIEFsd2F5cyBzZXQgY2hpbGRyZW4gdG8gdGhlIHNhbWUgdGhpbmcuIEluIElFOSwgdGhlIHNlbGVjdGlvbiByYW5nZSB3aWxsXG4gIC8vIGdldCByZXNldCBpZiBgdGV4dENvbnRlbnRgIGlzIG11dGF0ZWQuICBXZSBjb3VsZCBhZGQgYSBjaGVjayBpbiBzZXRUZXh0Q29udGVudFxuICAvLyB0byBvbmx5IHNldCB0aGUgdmFsdWUgaWYvd2hlbiB0aGUgdmFsdWUgZGlmZmVycyBmcm9tIHRoZSBub2RlIHZhbHVlICh3aGljaCB3b3VsZFxuICAvLyBjb21wbGV0ZWx5IHNvbHZlIHRoaXMgSUU5IGJ1ZyksIGJ1dCBTZWJhc3RpYW4rU29waGllIHNlZW1lZCB0byBsaWtlIHRoaXNcbiAgLy8gc29sdXRpb24uIFRoZSB2YWx1ZSBjYW4gYmUgYSBib29sZWFuIG9yIG9iamVjdCBzbyB0aGF0J3Mgd2h5IGl0J3MgZm9yY2VkXG4gIC8vIHRvIGJlIGEgc3RyaW5nLlxuXG5cbiAgdmFyIGhvc3RQcm9wcyA9IF9hc3NpZ24oe30sIHByb3BzLCB7XG4gICAgdmFsdWU6IHVuZGVmaW5lZCxcbiAgICBkZWZhdWx0VmFsdWU6IHVuZGVmaW5lZCxcbiAgICBjaGlsZHJlbjogdG9TdHJpbmcobm9kZS5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZSlcbiAgfSk7XG5cbiAgcmV0dXJuIGhvc3RQcm9wcztcbn1cbmZ1bmN0aW9uIGluaXRXcmFwcGVyU3RhdGUkMihlbGVtZW50LCBwcm9wcykge1xuICB2YXIgbm9kZSA9IGVsZW1lbnQ7XG5cbiAge1xuICAgIGNoZWNrQ29udHJvbGxlZFZhbHVlUHJvcHMoJ3RleHRhcmVhJywgcHJvcHMpO1xuXG4gICAgaWYgKHByb3BzLnZhbHVlICE9PSB1bmRlZmluZWQgJiYgcHJvcHMuZGVmYXVsdFZhbHVlICE9PSB1bmRlZmluZWQgJiYgIWRpZFdhcm5WYWxEZWZhdWx0VmFsKSB7XG4gICAgICBlcnJvcignJXMgY29udGFpbnMgYSB0ZXh0YXJlYSB3aXRoIGJvdGggdmFsdWUgYW5kIGRlZmF1bHRWYWx1ZSBwcm9wcy4gJyArICdUZXh0YXJlYSBlbGVtZW50cyBtdXN0IGJlIGVpdGhlciBjb250cm9sbGVkIG9yIHVuY29udHJvbGxlZCAnICsgJyhzcGVjaWZ5IGVpdGhlciB0aGUgdmFsdWUgcHJvcCwgb3IgdGhlIGRlZmF1bHRWYWx1ZSBwcm9wLCBidXQgbm90ICcgKyAnYm90aCkuIERlY2lkZSBiZXR3ZWVuIHVzaW5nIGEgY29udHJvbGxlZCBvciB1bmNvbnRyb2xsZWQgdGV4dGFyZWEgJyArICdhbmQgcmVtb3ZlIG9uZSBvZiB0aGVzZSBwcm9wcy4gTW9yZSBpbmZvOiAnICsgJ2h0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9jb250cm9sbGVkLWNvbXBvbmVudHMnLCBnZXRDdXJyZW50RmliZXJPd25lck5hbWVJbkRldk9yTnVsbCgpIHx8ICdBIGNvbXBvbmVudCcpO1xuXG4gICAgICBkaWRXYXJuVmFsRGVmYXVsdFZhbCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgdmFyIGluaXRpYWxWYWx1ZSA9IHByb3BzLnZhbHVlOyAvLyBPbmx5IGJvdGhlciBmZXRjaGluZyBkZWZhdWx0IHZhbHVlIGlmIHdlJ3JlIGdvaW5nIHRvIHVzZSBpdFxuXG4gIGlmIChpbml0aWFsVmFsdWUgPT0gbnVsbCkge1xuICAgIHZhciBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLFxuICAgICAgICBkZWZhdWx0VmFsdWUgPSBwcm9wcy5kZWZhdWx0VmFsdWU7XG5cbiAgICBpZiAoY2hpbGRyZW4gIT0gbnVsbCkge1xuICAgICAge1xuICAgICAgICBlcnJvcignVXNlIHRoZSBgZGVmYXVsdFZhbHVlYCBvciBgdmFsdWVgIHByb3BzIGluc3RlYWQgb2Ygc2V0dGluZyAnICsgJ2NoaWxkcmVuIG9uIDx0ZXh0YXJlYT4uJyk7XG4gICAgICB9XG5cbiAgICAgIHtcbiAgICAgICAgaWYgKCEoZGVmYXVsdFZhbHVlID09IG51bGwpKSB7XG4gICAgICAgICAge1xuICAgICAgICAgICAgdGhyb3cgRXJyb3IoIFwiSWYgeW91IHN1cHBseSBgZGVmYXVsdFZhbHVlYCBvbiBhIDx0ZXh0YXJlYT4sIGRvIG5vdCBwYXNzIGNoaWxkcmVuLlwiICk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pKSB7XG4gICAgICAgICAgaWYgKCEoY2hpbGRyZW4ubGVuZ3RoIDw9IDEpKSB7XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRocm93IEVycm9yKCBcIjx0ZXh0YXJlYT4gY2FuIG9ubHkgaGF2ZSBhdCBtb3N0IG9uZSBjaGlsZC5cIiApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNoaWxkcmVuID0gY2hpbGRyZW5bMF07XG4gICAgICAgIH1cblxuICAgICAgICBkZWZhdWx0VmFsdWUgPSBjaGlsZHJlbjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZGVmYXVsdFZhbHVlID09IG51bGwpIHtcbiAgICAgIGRlZmF1bHRWYWx1ZSA9ICcnO1xuICAgIH1cblxuICAgIGluaXRpYWxWYWx1ZSA9IGRlZmF1bHRWYWx1ZTtcbiAgfVxuXG4gIG5vZGUuX3dyYXBwZXJTdGF0ZSA9IHtcbiAgICBpbml0aWFsVmFsdWU6IGdldFRvU3RyaW5nVmFsdWUoaW5pdGlhbFZhbHVlKVxuICB9O1xufVxuZnVuY3Rpb24gdXBkYXRlV3JhcHBlciQxKGVsZW1lbnQsIHByb3BzKSB7XG4gIHZhciBub2RlID0gZWxlbWVudDtcbiAgdmFyIHZhbHVlID0gZ2V0VG9TdHJpbmdWYWx1ZShwcm9wcy52YWx1ZSk7XG4gIHZhciBkZWZhdWx0VmFsdWUgPSBnZXRUb1N0cmluZ1ZhbHVlKHByb3BzLmRlZmF1bHRWYWx1ZSk7XG5cbiAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAvLyBDYXN0IGB2YWx1ZWAgdG8gYSBzdHJpbmcgdG8gZW5zdXJlIHRoZSB2YWx1ZSBpcyBzZXQgY29ycmVjdGx5LiBXaGlsZVxuICAgIC8vIGJyb3dzZXJzIHR5cGljYWxseSBkbyB0aGlzIGFzIG5lY2Vzc2FyeSwganNkb20gZG9lc24ndC5cbiAgICB2YXIgbmV3VmFsdWUgPSB0b1N0cmluZyh2YWx1ZSk7IC8vIFRvIGF2b2lkIHNpZGUgZWZmZWN0cyAoc3VjaCBhcyBsb3NpbmcgdGV4dCBzZWxlY3Rpb24pLCBvbmx5IHNldCB2YWx1ZSBpZiBjaGFuZ2VkXG5cbiAgICBpZiAobmV3VmFsdWUgIT09IG5vZGUudmFsdWUpIHtcbiAgICAgIG5vZGUudmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMuZGVmYXVsdFZhbHVlID09IG51bGwgJiYgbm9kZS5kZWZhdWx0VmFsdWUgIT09IG5ld1ZhbHVlKSB7XG4gICAgICBub2RlLmRlZmF1bHRWYWx1ZSA9IG5ld1ZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGlmIChkZWZhdWx0VmFsdWUgIT0gbnVsbCkge1xuICAgIG5vZGUuZGVmYXVsdFZhbHVlID0gdG9TdHJpbmcoZGVmYXVsdFZhbHVlKTtcbiAgfVxufVxuZnVuY3Rpb24gcG9zdE1vdW50V3JhcHBlciQzKGVsZW1lbnQsIHByb3BzKSB7XG4gIHZhciBub2RlID0gZWxlbWVudDsgLy8gVGhpcyBpcyBpbiBwb3N0TW91bnQgYmVjYXVzZSB3ZSBuZWVkIGFjY2VzcyB0byB0aGUgRE9NIG5vZGUsIHdoaWNoIGlzIG5vdFxuICAvLyBhdmFpbGFibGUgdW50aWwgYWZ0ZXIgdGhlIGNvbXBvbmVudCBoYXMgbW91bnRlZC5cblxuICB2YXIgdGV4dENvbnRlbnQgPSBub2RlLnRleHRDb250ZW50OyAvLyBPbmx5IHNldCBub2RlLnZhbHVlIGlmIHRleHRDb250ZW50IGlzIGVxdWFsIHRvIHRoZSBleHBlY3RlZFxuICAvLyBpbml0aWFsIHZhbHVlLiBJbiBJRTEwL0lFMTEgdGhlcmUgaXMgYSBidWcgd2hlcmUgdGhlIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZVxuICAvLyB3aWxsIHBvcHVsYXRlIHRleHRDb250ZW50IGFzIHdlbGwuXG4gIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1pY3Jvc29mdC5jb20vbWljcm9zb2Z0LWVkZ2UvcGxhdGZvcm0vaXNzdWVzLzEwMTUyNS9cblxuICBpZiAodGV4dENvbnRlbnQgPT09IG5vZGUuX3dyYXBwZXJTdGF0ZS5pbml0aWFsVmFsdWUpIHtcbiAgICBpZiAodGV4dENvbnRlbnQgIT09ICcnICYmIHRleHRDb250ZW50ICE9PSBudWxsKSB7XG4gICAgICBub2RlLnZhbHVlID0gdGV4dENvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiByZXN0b3JlQ29udHJvbGxlZFN0YXRlJDIoZWxlbWVudCwgcHJvcHMpIHtcbiAgLy8gRE9NIGNvbXBvbmVudCBpcyBzdGlsbCBtb3VudGVkOyB1cGRhdGVcbiAgdXBkYXRlV3JhcHBlciQxKGVsZW1lbnQsIHByb3BzKTtcbn1cblxudmFyIEhUTUxfTkFNRVNQQUNFID0gJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnO1xudmFyIE1BVEhfTkFNRVNQQUNFID0gJ2h0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwnO1xudmFyIFNWR19OQU1FU1BBQ0UgPSAnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnO1xudmFyIE5hbWVzcGFjZXMgPSB7XG4gIGh0bWw6IEhUTUxfTkFNRVNQQUNFLFxuICBtYXRobWw6IE1BVEhfTkFNRVNQQUNFLFxuICBzdmc6IFNWR19OQU1FU1BBQ0Vcbn07IC8vIEFzc3VtZXMgdGhlcmUgaXMgbm8gcGFyZW50IG5hbWVzcGFjZS5cblxuZnVuY3Rpb24gZ2V0SW50cmluc2ljTmFtZXNwYWNlKHR5cGUpIHtcbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSAnc3ZnJzpcbiAgICAgIHJldHVybiBTVkdfTkFNRVNQQUNFO1xuXG4gICAgY2FzZSAnbWF0aCc6XG4gICAgICByZXR1cm4gTUFUSF9OQU1FU1BBQ0U7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIEhUTUxfTkFNRVNQQUNFO1xuICB9XG59XG5mdW5jdGlvbiBnZXRDaGlsZE5hbWVzcGFjZShwYXJlbnROYW1lc3BhY2UsIHR5cGUpIHtcbiAgaWYgKHBhcmVudE5hbWVzcGFjZSA9PSBudWxsIHx8IHBhcmVudE5hbWVzcGFjZSA9PT0gSFRNTF9OQU1FU1BBQ0UpIHtcbiAgICAvLyBObyAob3IgZGVmYXVsdCkgcGFyZW50IG5hbWVzcGFjZTogcG90ZW50aWFsIGVudHJ5IHBvaW50LlxuICAgIHJldHVybiBnZXRJbnRyaW5zaWNOYW1lc3BhY2UodHlwZSk7XG4gIH1cblxuICBpZiAocGFyZW50TmFtZXNwYWNlID09PSBTVkdfTkFNRVNQQUNFICYmIHR5cGUgPT09ICdmb3JlaWduT2JqZWN0Jykge1xuICAgIC8vIFdlJ3JlIGxlYXZpbmcgU1ZHLlxuICAgIHJldHVybiBIVE1MX05BTUVTUEFDRTtcbiAgfSAvLyBCeSBkZWZhdWx0LCBwYXNzIG5hbWVzcGFjZSBiZWxvdy5cblxuXG4gIHJldHVybiBwYXJlbnROYW1lc3BhY2U7XG59XG5cbi8qIGdsb2JhbHMgTVNBcHAgKi9cblxuLyoqXG4gKiBDcmVhdGUgYSBmdW5jdGlvbiB3aGljaCBoYXMgJ3Vuc2FmZScgcHJpdmlsZWdlcyAocmVxdWlyZWQgYnkgd2luZG93czggYXBwcylcbiAqL1xudmFyIGNyZWF0ZU1pY3Jvc29mdFVuc2FmZUxvY2FsRnVuY3Rpb24gPSBmdW5jdGlvbiAoZnVuYykge1xuICBpZiAodHlwZW9mIE1TQXBwICE9PSAndW5kZWZpbmVkJyAmJiBNU0FwcC5leGVjVW5zYWZlTG9jYWxGdW5jdGlvbikge1xuICAgIHJldHVybiBmdW5jdGlvbiAoYXJnMCwgYXJnMSwgYXJnMiwgYXJnMykge1xuICAgICAgTVNBcHAuZXhlY1Vuc2FmZUxvY2FsRnVuY3Rpb24oZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gZnVuYyhhcmcwLCBhcmcxLCBhcmcyLCBhcmczKTtcbiAgICAgIH0pO1xuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGZ1bmM7XG4gIH1cbn07XG5cbnZhciByZXVzYWJsZVNWR0NvbnRhaW5lcjtcbi8qKlxuICogU2V0IHRoZSBpbm5lckhUTUwgcHJvcGVydHkgb2YgYSBub2RlXG4gKlxuICogQHBhcmFtIHtET01FbGVtZW50fSBub2RlXG4gKiBAcGFyYW0ge3N0cmluZ30gaHRtbFxuICogQGludGVybmFsXG4gKi9cblxudmFyIHNldElubmVySFRNTCA9IGNyZWF0ZU1pY3Jvc29mdFVuc2FmZUxvY2FsRnVuY3Rpb24oZnVuY3Rpb24gKG5vZGUsIGh0bWwpIHtcbiAgaWYgKG5vZGUubmFtZXNwYWNlVVJJID09PSBOYW1lc3BhY2VzLnN2Zykge1xuXG4gICAgaWYgKCEoJ2lubmVySFRNTCcgaW4gbm9kZSkpIHtcbiAgICAgIC8vIElFIGRvZXMgbm90IGhhdmUgaW5uZXJIVE1MIGZvciBTVkcgbm9kZXMsIHNvIGluc3RlYWQgd2UgaW5qZWN0IHRoZVxuICAgICAgLy8gbmV3IG1hcmt1cCBpbiBhIHRlbXAgbm9kZSBhbmQgdGhlbiBtb3ZlIHRoZSBjaGlsZCBub2RlcyBhY3Jvc3MgaW50b1xuICAgICAgLy8gdGhlIHRhcmdldCBub2RlXG4gICAgICByZXVzYWJsZVNWR0NvbnRhaW5lciA9IHJldXNhYmxlU1ZHQ29udGFpbmVyIHx8IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgcmV1c2FibGVTVkdDb250YWluZXIuaW5uZXJIVE1MID0gJzxzdmc+JyArIGh0bWwudmFsdWVPZigpLnRvU3RyaW5nKCkgKyAnPC9zdmc+JztcbiAgICAgIHZhciBzdmdOb2RlID0gcmV1c2FibGVTVkdDb250YWluZXIuZmlyc3RDaGlsZDtcblxuICAgICAgd2hpbGUgKG5vZGUuZmlyc3RDaGlsZCkge1xuICAgICAgICBub2RlLnJlbW92ZUNoaWxkKG5vZGUuZmlyc3RDaGlsZCk7XG4gICAgICB9XG5cbiAgICAgIHdoaWxlIChzdmdOb2RlLmZpcnN0Q2hpbGQpIHtcbiAgICAgICAgbm9kZS5hcHBlbmRDaGlsZChzdmdOb2RlLmZpcnN0Q2hpbGQpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgbm9kZS5pbm5lckhUTUwgPSBodG1sO1xufSk7XG5cbi8qKlxuICogSFRNTCBub2RlVHlwZSB2YWx1ZXMgdGhhdCByZXByZXNlbnQgdGhlIHR5cGUgb2YgdGhlIG5vZGVcbiAqL1xudmFyIEVMRU1FTlRfTk9ERSA9IDE7XG52YXIgVEVYVF9OT0RFID0gMztcbnZhciBDT01NRU5UX05PREUgPSA4O1xudmFyIERPQ1VNRU5UX05PREUgPSA5O1xudmFyIERPQ1VNRU5UX0ZSQUdNRU5UX05PREUgPSAxMTtcblxuLyoqXG4gKiBTZXQgdGhlIHRleHRDb250ZW50IHByb3BlcnR5IG9mIGEgbm9kZS4gRm9yIHRleHQgdXBkYXRlcywgaXQncyBmYXN0ZXJcbiAqIHRvIHNldCB0aGUgYG5vZGVWYWx1ZWAgb2YgdGhlIFRleHQgbm9kZSBkaXJlY3RseSBpbnN0ZWFkIG9mIHVzaW5nXG4gKiBgLnRleHRDb250ZW50YCB3aGljaCB3aWxsIHJlbW92ZSB0aGUgZXhpc3Rpbmcgbm9kZSBhbmQgY3JlYXRlIGEgbmV3IG9uZS5cbiAqXG4gKiBAcGFyYW0ge0RPTUVsZW1lbnR9IG5vZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0XG4gKiBAaW50ZXJuYWxcbiAqL1xuXG52YXIgc2V0VGV4dENvbnRlbnQgPSBmdW5jdGlvbiAobm9kZSwgdGV4dCkge1xuICBpZiAodGV4dCkge1xuICAgIHZhciBmaXJzdENoaWxkID0gbm9kZS5maXJzdENoaWxkO1xuXG4gICAgaWYgKGZpcnN0Q2hpbGQgJiYgZmlyc3RDaGlsZCA9PT0gbm9kZS5sYXN0Q2hpbGQgJiYgZmlyc3RDaGlsZC5ub2RlVHlwZSA9PT0gVEVYVF9OT0RFKSB7XG4gICAgICBmaXJzdENoaWxkLm5vZGVWYWx1ZSA9IHRleHQ7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgbm9kZS50ZXh0Q29udGVudCA9IHRleHQ7XG59O1xuXG4vLyBMaXN0IGRlcml2ZWQgZnJvbSBHZWNrbyBzb3VyY2UgY29kZTpcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tb3ppbGxhL2dlY2tvLWRldi9ibG9iLzRlNjM4ZWZjNzEvbGF5b3V0L3N0eWxlL3Rlc3QvcHJvcGVydHlfZGF0YWJhc2UuanNcbnZhciBzaG9ydGhhbmRUb0xvbmdoYW5kID0ge1xuICBhbmltYXRpb246IFsnYW5pbWF0aW9uRGVsYXknLCAnYW5pbWF0aW9uRGlyZWN0aW9uJywgJ2FuaW1hdGlvbkR1cmF0aW9uJywgJ2FuaW1hdGlvbkZpbGxNb2RlJywgJ2FuaW1hdGlvbkl0ZXJhdGlvbkNvdW50JywgJ2FuaW1hdGlvbk5hbWUnLCAnYW5pbWF0aW9uUGxheVN0YXRlJywgJ2FuaW1hdGlvblRpbWluZ0Z1bmN0aW9uJ10sXG4gIGJhY2tncm91bmQ6IFsnYmFja2dyb3VuZEF0dGFjaG1lbnQnLCAnYmFja2dyb3VuZENsaXAnLCAnYmFja2dyb3VuZENvbG9yJywgJ2JhY2tncm91bmRJbWFnZScsICdiYWNrZ3JvdW5kT3JpZ2luJywgJ2JhY2tncm91bmRQb3NpdGlvblgnLCAnYmFja2dyb3VuZFBvc2l0aW9uWScsICdiYWNrZ3JvdW5kUmVwZWF0JywgJ2JhY2tncm91bmRTaXplJ10sXG4gIGJhY2tncm91bmRQb3NpdGlvbjogWydiYWNrZ3JvdW5kUG9zaXRpb25YJywgJ2JhY2tncm91bmRQb3NpdGlvblknXSxcbiAgYm9yZGVyOiBbJ2JvcmRlckJvdHRvbUNvbG9yJywgJ2JvcmRlckJvdHRvbVN0eWxlJywgJ2JvcmRlckJvdHRvbVdpZHRoJywgJ2JvcmRlckltYWdlT3V0c2V0JywgJ2JvcmRlckltYWdlUmVwZWF0JywgJ2JvcmRlckltYWdlU2xpY2UnLCAnYm9yZGVySW1hZ2VTb3VyY2UnLCAnYm9yZGVySW1hZ2VXaWR0aCcsICdib3JkZXJMZWZ0Q29sb3InLCAnYm9yZGVyTGVmdFN0eWxlJywgJ2JvcmRlckxlZnRXaWR0aCcsICdib3JkZXJSaWdodENvbG9yJywgJ2JvcmRlclJpZ2h0U3R5bGUnLCAnYm9yZGVyUmlnaHRXaWR0aCcsICdib3JkZXJUb3BDb2xvcicsICdib3JkZXJUb3BTdHlsZScsICdib3JkZXJUb3BXaWR0aCddLFxuICBib3JkZXJCbG9ja0VuZDogWydib3JkZXJCbG9ja0VuZENvbG9yJywgJ2JvcmRlckJsb2NrRW5kU3R5bGUnLCAnYm9yZGVyQmxvY2tFbmRXaWR0aCddLFxuICBib3JkZXJCbG9ja1N0YXJ0OiBbJ2JvcmRlckJsb2NrU3RhcnRDb2xvcicsICdib3JkZXJCbG9ja1N0YXJ0U3R5bGUnLCAnYm9yZGVyQmxvY2tTdGFydFdpZHRoJ10sXG4gIGJvcmRlckJvdHRvbTogWydib3JkZXJCb3R0b21Db2xvcicsICdib3JkZXJCb3R0b21TdHlsZScsICdib3JkZXJCb3R0b21XaWR0aCddLFxuICBib3JkZXJDb2xvcjogWydib3JkZXJCb3R0b21Db2xvcicsICdib3JkZXJMZWZ0Q29sb3InLCAnYm9yZGVyUmlnaHRDb2xvcicsICdib3JkZXJUb3BDb2xvciddLFxuICBib3JkZXJJbWFnZTogWydib3JkZXJJbWFnZU91dHNldCcsICdib3JkZXJJbWFnZVJlcGVhdCcsICdib3JkZXJJbWFnZVNsaWNlJywgJ2JvcmRlckltYWdlU291cmNlJywgJ2JvcmRlckltYWdlV2lkdGgnXSxcbiAgYm9yZGVySW5saW5lRW5kOiBbJ2JvcmRlcklubGluZUVuZENvbG9yJywgJ2JvcmRlcklubGluZUVuZFN0eWxlJywgJ2JvcmRlcklubGluZUVuZFdpZHRoJ10sXG4gIGJvcmRlcklubGluZVN0YXJ0OiBbJ2JvcmRlcklubGluZVN0YXJ0Q29sb3InLCAnYm9yZGVySW5saW5lU3RhcnRTdHlsZScsICdib3JkZXJJbmxpbmVTdGFydFdpZHRoJ10sXG4gIGJvcmRlckxlZnQ6IFsnYm9yZGVyTGVmdENvbG9yJywgJ2JvcmRlckxlZnRTdHlsZScsICdib3JkZXJMZWZ0V2lkdGgnXSxcbiAgYm9yZGVyUmFkaXVzOiBbJ2JvcmRlckJvdHRvbUxlZnRSYWRpdXMnLCAnYm9yZGVyQm90dG9tUmlnaHRSYWRpdXMnLCAnYm9yZGVyVG9wTGVmdFJhZGl1cycsICdib3JkZXJUb3BSaWdodFJhZGl1cyddLFxuICBib3JkZXJSaWdodDogWydib3JkZXJSaWdodENvbG9yJywgJ2JvcmRlclJpZ2h0U3R5bGUnLCAnYm9yZGVyUmlnaHRXaWR0aCddLFxuICBib3JkZXJTdHlsZTogWydib3JkZXJCb3R0b21TdHlsZScsICdib3JkZXJMZWZ0U3R5bGUnLCAnYm9yZGVyUmlnaHRTdHlsZScsICdib3JkZXJUb3BTdHlsZSddLFxuICBib3JkZXJUb3A6IFsnYm9yZGVyVG9wQ29sb3InLCAnYm9yZGVyVG9wU3R5bGUnLCAnYm9yZGVyVG9wV2lkdGgnXSxcbiAgYm9yZGVyV2lkdGg6IFsnYm9yZGVyQm90dG9tV2lkdGgnLCAnYm9yZGVyTGVmdFdpZHRoJywgJ2JvcmRlclJpZ2h0V2lkdGgnLCAnYm9yZGVyVG9wV2lkdGgnXSxcbiAgY29sdW1uUnVsZTogWydjb2x1bW5SdWxlQ29sb3InLCAnY29sdW1uUnVsZVN0eWxlJywgJ2NvbHVtblJ1bGVXaWR0aCddLFxuICBjb2x1bW5zOiBbJ2NvbHVtbkNvdW50JywgJ2NvbHVtbldpZHRoJ10sXG4gIGZsZXg6IFsnZmxleEJhc2lzJywgJ2ZsZXhHcm93JywgJ2ZsZXhTaHJpbmsnXSxcbiAgZmxleEZsb3c6IFsnZmxleERpcmVjdGlvbicsICdmbGV4V3JhcCddLFxuICBmb250OiBbJ2ZvbnRGYW1pbHknLCAnZm9udEZlYXR1cmVTZXR0aW5ncycsICdmb250S2VybmluZycsICdmb250TGFuZ3VhZ2VPdmVycmlkZScsICdmb250U2l6ZScsICdmb250U2l6ZUFkanVzdCcsICdmb250U3RyZXRjaCcsICdmb250U3R5bGUnLCAnZm9udFZhcmlhbnQnLCAnZm9udFZhcmlhbnRBbHRlcm5hdGVzJywgJ2ZvbnRWYXJpYW50Q2FwcycsICdmb250VmFyaWFudEVhc3RBc2lhbicsICdmb250VmFyaWFudExpZ2F0dXJlcycsICdmb250VmFyaWFudE51bWVyaWMnLCAnZm9udFZhcmlhbnRQb3NpdGlvbicsICdmb250V2VpZ2h0JywgJ2xpbmVIZWlnaHQnXSxcbiAgZm9udFZhcmlhbnQ6IFsnZm9udFZhcmlhbnRBbHRlcm5hdGVzJywgJ2ZvbnRWYXJpYW50Q2FwcycsICdmb250VmFyaWFudEVhc3RBc2lhbicsICdmb250VmFyaWFudExpZ2F0dXJlcycsICdmb250VmFyaWFudE51bWVyaWMnLCAnZm9udFZhcmlhbnRQb3NpdGlvbiddLFxuICBnYXA6IFsnY29sdW1uR2FwJywgJ3Jvd0dhcCddLFxuICBncmlkOiBbJ2dyaWRBdXRvQ29sdW1ucycsICdncmlkQXV0b0Zsb3cnLCAnZ3JpZEF1dG9Sb3dzJywgJ2dyaWRUZW1wbGF0ZUFyZWFzJywgJ2dyaWRUZW1wbGF0ZUNvbHVtbnMnLCAnZ3JpZFRlbXBsYXRlUm93cyddLFxuICBncmlkQXJlYTogWydncmlkQ29sdW1uRW5kJywgJ2dyaWRDb2x1bW5TdGFydCcsICdncmlkUm93RW5kJywgJ2dyaWRSb3dTdGFydCddLFxuICBncmlkQ29sdW1uOiBbJ2dyaWRDb2x1bW5FbmQnLCAnZ3JpZENvbHVtblN0YXJ0J10sXG4gIGdyaWRDb2x1bW5HYXA6IFsnY29sdW1uR2FwJ10sXG4gIGdyaWRHYXA6IFsnY29sdW1uR2FwJywgJ3Jvd0dhcCddLFxuICBncmlkUm93OiBbJ2dyaWRSb3dFbmQnLCAnZ3JpZFJvd1N0YXJ0J10sXG4gIGdyaWRSb3dHYXA6IFsncm93R2FwJ10sXG4gIGdyaWRUZW1wbGF0ZTogWydncmlkVGVtcGxhdGVBcmVhcycsICdncmlkVGVtcGxhdGVDb2x1bW5zJywgJ2dyaWRUZW1wbGF0ZVJvd3MnXSxcbiAgbGlzdFN0eWxlOiBbJ2xpc3RTdHlsZUltYWdlJywgJ2xpc3RTdHlsZVBvc2l0aW9uJywgJ2xpc3RTdHlsZVR5cGUnXSxcbiAgbWFyZ2luOiBbJ21hcmdpbkJvdHRvbScsICdtYXJnaW5MZWZ0JywgJ21hcmdpblJpZ2h0JywgJ21hcmdpblRvcCddLFxuICBtYXJrZXI6IFsnbWFya2VyRW5kJywgJ21hcmtlck1pZCcsICdtYXJrZXJTdGFydCddLFxuICBtYXNrOiBbJ21hc2tDbGlwJywgJ21hc2tDb21wb3NpdGUnLCAnbWFza0ltYWdlJywgJ21hc2tNb2RlJywgJ21hc2tPcmlnaW4nLCAnbWFza1Bvc2l0aW9uWCcsICdtYXNrUG9zaXRpb25ZJywgJ21hc2tSZXBlYXQnLCAnbWFza1NpemUnXSxcbiAgbWFza1Bvc2l0aW9uOiBbJ21hc2tQb3NpdGlvblgnLCAnbWFza1Bvc2l0aW9uWSddLFxuICBvdXRsaW5lOiBbJ291dGxpbmVDb2xvcicsICdvdXRsaW5lU3R5bGUnLCAnb3V0bGluZVdpZHRoJ10sXG4gIG92ZXJmbG93OiBbJ292ZXJmbG93WCcsICdvdmVyZmxvd1knXSxcbiAgcGFkZGluZzogWydwYWRkaW5nQm90dG9tJywgJ3BhZGRpbmdMZWZ0JywgJ3BhZGRpbmdSaWdodCcsICdwYWRkaW5nVG9wJ10sXG4gIHBsYWNlQ29udGVudDogWydhbGlnbkNvbnRlbnQnLCAnanVzdGlmeUNvbnRlbnQnXSxcbiAgcGxhY2VJdGVtczogWydhbGlnbkl0ZW1zJywgJ2p1c3RpZnlJdGVtcyddLFxuICBwbGFjZVNlbGY6IFsnYWxpZ25TZWxmJywgJ2p1c3RpZnlTZWxmJ10sXG4gIHRleHREZWNvcmF0aW9uOiBbJ3RleHREZWNvcmF0aW9uQ29sb3InLCAndGV4dERlY29yYXRpb25MaW5lJywgJ3RleHREZWNvcmF0aW9uU3R5bGUnXSxcbiAgdGV4dEVtcGhhc2lzOiBbJ3RleHRFbXBoYXNpc0NvbG9yJywgJ3RleHRFbXBoYXNpc1N0eWxlJ10sXG4gIHRyYW5zaXRpb246IFsndHJhbnNpdGlvbkRlbGF5JywgJ3RyYW5zaXRpb25EdXJhdGlvbicsICd0cmFuc2l0aW9uUHJvcGVydHknLCAndHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uJ10sXG4gIHdvcmRXcmFwOiBbJ292ZXJmbG93V3JhcCddXG59O1xuXG4vKipcbiAqIENTUyBwcm9wZXJ0aWVzIHdoaWNoIGFjY2VwdCBudW1iZXJzIGJ1dCBhcmUgbm90IGluIHVuaXRzIG9mIFwicHhcIi5cbiAqL1xudmFyIGlzVW5pdGxlc3NOdW1iZXIgPSB7XG4gIGFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OiB0cnVlLFxuICBib3JkZXJJbWFnZU91dHNldDogdHJ1ZSxcbiAgYm9yZGVySW1hZ2VTbGljZTogdHJ1ZSxcbiAgYm9yZGVySW1hZ2VXaWR0aDogdHJ1ZSxcbiAgYm94RmxleDogdHJ1ZSxcbiAgYm94RmxleEdyb3VwOiB0cnVlLFxuICBib3hPcmRpbmFsR3JvdXA6IHRydWUsXG4gIGNvbHVtbkNvdW50OiB0cnVlLFxuICBjb2x1bW5zOiB0cnVlLFxuICBmbGV4OiB0cnVlLFxuICBmbGV4R3JvdzogdHJ1ZSxcbiAgZmxleFBvc2l0aXZlOiB0cnVlLFxuICBmbGV4U2hyaW5rOiB0cnVlLFxuICBmbGV4TmVnYXRpdmU6IHRydWUsXG4gIGZsZXhPcmRlcjogdHJ1ZSxcbiAgZ3JpZEFyZWE6IHRydWUsXG4gIGdyaWRSb3c6IHRydWUsXG4gIGdyaWRSb3dFbmQ6IHRydWUsXG4gIGdyaWRSb3dTcGFuOiB0cnVlLFxuICBncmlkUm93U3RhcnQ6IHRydWUsXG4gIGdyaWRDb2x1bW46IHRydWUsXG4gIGdyaWRDb2x1bW5FbmQ6IHRydWUsXG4gIGdyaWRDb2x1bW5TcGFuOiB0cnVlLFxuICBncmlkQ29sdW1uU3RhcnQ6IHRydWUsXG4gIGZvbnRXZWlnaHQ6IHRydWUsXG4gIGxpbmVDbGFtcDogdHJ1ZSxcbiAgbGluZUhlaWdodDogdHJ1ZSxcbiAgb3BhY2l0eTogdHJ1ZSxcbiAgb3JkZXI6IHRydWUsXG4gIG9ycGhhbnM6IHRydWUsXG4gIHRhYlNpemU6IHRydWUsXG4gIHdpZG93czogdHJ1ZSxcbiAgekluZGV4OiB0cnVlLFxuICB6b29tOiB0cnVlLFxuICAvLyBTVkctcmVsYXRlZCBwcm9wZXJ0aWVzXG4gIGZpbGxPcGFjaXR5OiB0cnVlLFxuICBmbG9vZE9wYWNpdHk6IHRydWUsXG4gIHN0b3BPcGFjaXR5OiB0cnVlLFxuICBzdHJva2VEYXNoYXJyYXk6IHRydWUsXG4gIHN0cm9rZURhc2hvZmZzZXQ6IHRydWUsXG4gIHN0cm9rZU1pdGVybGltaXQ6IHRydWUsXG4gIHN0cm9rZU9wYWNpdHk6IHRydWUsXG4gIHN0cm9rZVdpZHRoOiB0cnVlXG59O1xuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gcHJlZml4IHZlbmRvci1zcGVjaWZpYyBwcmVmaXgsIGVnOiBXZWJraXRcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgc3R5bGUgbmFtZSwgZWc6IHRyYW5zaXRpb25EdXJhdGlvblxuICogQHJldHVybiB7c3RyaW5nfSBzdHlsZSBuYW1lIHByZWZpeGVkIHdpdGggYHByZWZpeGAsIHByb3Blcmx5IGNhbWVsQ2FzZWQsIGVnOlxuICogV2Via2l0VHJhbnNpdGlvbkR1cmF0aW9uXG4gKi9cblxuZnVuY3Rpb24gcHJlZml4S2V5KHByZWZpeCwga2V5KSB7XG4gIHJldHVybiBwcmVmaXggKyBrZXkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBrZXkuc3Vic3RyaW5nKDEpO1xufVxuLyoqXG4gKiBTdXBwb3J0IHN0eWxlIG5hbWVzIHRoYXQgbWF5IGNvbWUgcGFzc2VkIGluIHByZWZpeGVkIGJ5IGFkZGluZyBwZXJtdXRhdGlvbnNcbiAqIG9mIHZlbmRvciBwcmVmaXhlcy5cbiAqL1xuXG5cbnZhciBwcmVmaXhlcyA9IFsnV2Via2l0JywgJ21zJywgJ01veicsICdPJ107IC8vIFVzaW5nIE9iamVjdC5rZXlzIGhlcmUsIG9yIGVsc2UgdGhlIHZhbmlsbGEgZm9yLWluIGxvb3AgbWFrZXMgSUU4IGdvIGludG8gYW5cbi8vIGluZmluaXRlIGxvb3AsIGJlY2F1c2UgaXQgaXRlcmF0ZXMgb3ZlciB0aGUgbmV3bHkgYWRkZWQgcHJvcHMgdG9vLlxuXG5PYmplY3Qua2V5cyhpc1VuaXRsZXNzTnVtYmVyKS5mb3JFYWNoKGZ1bmN0aW9uIChwcm9wKSB7XG4gIHByZWZpeGVzLmZvckVhY2goZnVuY3Rpb24gKHByZWZpeCkge1xuICAgIGlzVW5pdGxlc3NOdW1iZXJbcHJlZml4S2V5KHByZWZpeCwgcHJvcCldID0gaXNVbml0bGVzc051bWJlcltwcm9wXTtcbiAgfSk7XG59KTtcblxuLyoqXG4gKiBDb252ZXJ0IGEgdmFsdWUgaW50byB0aGUgcHJvcGVyIGNzcyB3cml0YWJsZSB2YWx1ZS4gVGhlIHN0eWxlIG5hbWUgYG5hbWVgXG4gKiBzaG91bGQgYmUgbG9naWNhbCAobm8gaHlwaGVucyksIGFzIHNwZWNpZmllZFxuICogaW4gYENTU1Byb3BlcnR5LmlzVW5pdGxlc3NOdW1iZXJgLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIENTUyBwcm9wZXJ0eSBuYW1lIHN1Y2ggYXMgYHRvcE1hcmdpbmAuXG4gKiBAcGFyYW0geyp9IHZhbHVlIENTUyBwcm9wZXJ0eSB2YWx1ZSBzdWNoIGFzIGAxMHB4YC5cbiAqIEByZXR1cm4ge3N0cmluZ30gTm9ybWFsaXplZCBzdHlsZSB2YWx1ZSB3aXRoIGRpbWVuc2lvbnMgYXBwbGllZC5cbiAqL1xuXG5mdW5jdGlvbiBkYW5nZXJvdXNTdHlsZVZhbHVlKG5hbWUsIHZhbHVlLCBpc0N1c3RvbVByb3BlcnR5KSB7XG4gIC8vIE5vdGUgdGhhdCB3ZSd2ZSByZW1vdmVkIGVzY2FwZVRleHRGb3JCcm93c2VyKCkgY2FsbHMgaGVyZSBzaW5jZSB0aGVcbiAgLy8gd2hvbGUgc3RyaW5nIHdpbGwgYmUgZXNjYXBlZCB3aGVuIHRoZSBhdHRyaWJ1dGUgaXMgaW5qZWN0ZWQgaW50b1xuICAvLyB0aGUgbWFya3VwLiBJZiB5b3UgcHJvdmlkZSB1bnNhZmUgdXNlciBkYXRhIGhlcmUgdGhleSBjYW4gaW5qZWN0XG4gIC8vIGFyYml0cmFyeSBDU1Mgd2hpY2ggbWF5IGJlIHByb2JsZW1hdGljIChJIGNvdWxkbid0IHJlcHJvIHRoaXMpOlxuICAvLyBodHRwczovL3d3dy5vd2FzcC5vcmcvaW5kZXgucGhwL1hTU19GaWx0ZXJfRXZhc2lvbl9DaGVhdF9TaGVldFxuICAvLyBodHRwOi8vd3d3LnRoZXNwYW5uZXIuY28udWsvMjAwNy8xMS8yNi91bHRpbWF0ZS14c3MtY3NzLWluamVjdGlvbi9cbiAgLy8gVGhpcyBpcyBub3QgYW4gWFNTIGhvbGUgYnV0IGluc3RlYWQgYSBwb3RlbnRpYWwgQ1NTIGluamVjdGlvbiBpc3N1ZVxuICAvLyB3aGljaCBoYXMgbGVhZCB0byBhIGdyZWF0ZXIgZGlzY3Vzc2lvbiBhYm91dCBob3cgd2UncmUgZ29pbmcgdG9cbiAgLy8gdHJ1c3QgVVJMcyBtb3ZpbmcgZm9yd2FyZC4gU2VlICMyMTE1OTAxXG4gIHZhciBpc0VtcHR5ID0gdmFsdWUgPT0gbnVsbCB8fCB0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJyB8fCB2YWx1ZSA9PT0gJyc7XG5cbiAgaWYgKGlzRW1wdHkpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBpZiAoIWlzQ3VzdG9tUHJvcGVydHkgJiYgdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyAmJiB2YWx1ZSAhPT0gMCAmJiAhKGlzVW5pdGxlc3NOdW1iZXIuaGFzT3duUHJvcGVydHkobmFtZSkgJiYgaXNVbml0bGVzc051bWJlcltuYW1lXSkpIHtcbiAgICByZXR1cm4gdmFsdWUgKyAncHgnOyAvLyBQcmVzdW1lcyBpbXBsaWNpdCAncHgnIHN1ZmZpeCBmb3IgdW5pdGxlc3MgbnVtYmVyc1xuICB9XG5cbiAgcmV0dXJuICgnJyArIHZhbHVlKS50cmltKCk7XG59XG5cbnZhciB1cHBlcmNhc2VQYXR0ZXJuID0gLyhbQS1aXSkvZztcbnZhciBtc1BhdHRlcm4gPSAvXm1zLS87XG4vKipcbiAqIEh5cGhlbmF0ZXMgYSBjYW1lbGNhc2VkIENTUyBwcm9wZXJ0eSBuYW1lLCBmb3IgZXhhbXBsZTpcbiAqXG4gKiAgID4gaHlwaGVuYXRlU3R5bGVOYW1lKCdiYWNrZ3JvdW5kQ29sb3InKVxuICogICA8IFwiYmFja2dyb3VuZC1jb2xvclwiXG4gKiAgID4gaHlwaGVuYXRlU3R5bGVOYW1lKCdNb3pUcmFuc2l0aW9uJylcbiAqICAgPCBcIi1tb3otdHJhbnNpdGlvblwiXG4gKiAgID4gaHlwaGVuYXRlU3R5bGVOYW1lKCdtc1RyYW5zaXRpb24nKVxuICogICA8IFwiLW1zLXRyYW5zaXRpb25cIlxuICpcbiAqIEFzIE1vZGVybml6ciBzdWdnZXN0cyAoaHR0cDovL21vZGVybml6ci5jb20vZG9jcy8jcHJlZml4ZWQpLCBhbiBgbXNgIHByZWZpeFxuICogaXMgY29udmVydGVkIHRvIGAtbXMtYC5cbiAqL1xuXG5mdW5jdGlvbiBoeXBoZW5hdGVTdHlsZU5hbWUobmFtZSkge1xuICByZXR1cm4gbmFtZS5yZXBsYWNlKHVwcGVyY2FzZVBhdHRlcm4sICctJDEnKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UobXNQYXR0ZXJuLCAnLW1zLScpO1xufVxuXG52YXIgd2FyblZhbGlkU3R5bGUgPSBmdW5jdGlvbiAoKSB7fTtcblxue1xuICAvLyAnbXNUcmFuc2Zvcm0nIGlzIGNvcnJlY3QsIGJ1dCB0aGUgb3RoZXIgcHJlZml4ZXMgc2hvdWxkIGJlIGNhcGl0YWxpemVkXG4gIHZhciBiYWRWZW5kb3JlZFN0eWxlTmFtZVBhdHRlcm4gPSAvXig/OndlYmtpdHxtb3p8bylbQS1aXS87XG4gIHZhciBtc1BhdHRlcm4kMSA9IC9eLW1zLS87XG4gIHZhciBoeXBoZW5QYXR0ZXJuID0gLy0oLikvZzsgLy8gc3R5bGUgdmFsdWVzIHNob3VsZG4ndCBjb250YWluIGEgc2VtaWNvbG9uXG5cbiAgdmFyIGJhZFN0eWxlVmFsdWVXaXRoU2VtaWNvbG9uUGF0dGVybiA9IC87XFxzKiQvO1xuICB2YXIgd2FybmVkU3R5bGVOYW1lcyA9IHt9O1xuICB2YXIgd2FybmVkU3R5bGVWYWx1ZXMgPSB7fTtcbiAgdmFyIHdhcm5lZEZvck5hTlZhbHVlID0gZmFsc2U7XG4gIHZhciB3YXJuZWRGb3JJbmZpbml0eVZhbHVlID0gZmFsc2U7XG5cbiAgdmFyIGNhbWVsaXplID0gZnVuY3Rpb24gKHN0cmluZykge1xuICAgIHJldHVybiBzdHJpbmcucmVwbGFjZShoeXBoZW5QYXR0ZXJuLCBmdW5jdGlvbiAoXywgY2hhcmFjdGVyKSB7XG4gICAgICByZXR1cm4gY2hhcmFjdGVyLnRvVXBwZXJDYXNlKCk7XG4gICAgfSk7XG4gIH07XG5cbiAgdmFyIHdhcm5IeXBoZW5hdGVkU3R5bGVOYW1lID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgICBpZiAod2FybmVkU3R5bGVOYW1lcy5oYXNPd25Qcm9wZXJ0eShuYW1lKSAmJiB3YXJuZWRTdHlsZU5hbWVzW25hbWVdKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgd2FybmVkU3R5bGVOYW1lc1tuYW1lXSA9IHRydWU7XG5cbiAgICBlcnJvcignVW5zdXBwb3J0ZWQgc3R5bGUgcHJvcGVydHkgJXMuIERpZCB5b3UgbWVhbiAlcz8nLCBuYW1lLCAvLyBBcyBBbmRpIFNtaXRoIHN1Z2dlc3RzXG4gICAgLy8gKGh0dHA6Ly93d3cuYW5kaXNtaXRoLmNvbS9ibG9nLzIwMTIvMDIvbW9kZXJuaXpyLXByZWZpeGVkLyksIGFuIGAtbXNgIHByZWZpeFxuICAgIC8vIGlzIGNvbnZlcnRlZCB0byBsb3dlcmNhc2UgYG1zYC5cbiAgICBjYW1lbGl6ZShuYW1lLnJlcGxhY2UobXNQYXR0ZXJuJDEsICdtcy0nKSkpO1xuICB9O1xuXG4gIHZhciB3YXJuQmFkVmVuZG9yZWRTdHlsZU5hbWUgPSBmdW5jdGlvbiAobmFtZSkge1xuICAgIGlmICh3YXJuZWRTdHlsZU5hbWVzLmhhc093blByb3BlcnR5KG5hbWUpICYmIHdhcm5lZFN0eWxlTmFtZXNbbmFtZV0pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB3YXJuZWRTdHlsZU5hbWVzW25hbWVdID0gdHJ1ZTtcblxuICAgIGVycm9yKCdVbnN1cHBvcnRlZCB2ZW5kb3ItcHJlZml4ZWQgc3R5bGUgcHJvcGVydHkgJXMuIERpZCB5b3UgbWVhbiAlcz8nLCBuYW1lLCBuYW1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgbmFtZS5zbGljZSgxKSk7XG4gIH07XG5cbiAgdmFyIHdhcm5TdHlsZVZhbHVlV2l0aFNlbWljb2xvbiA9IGZ1bmN0aW9uIChuYW1lLCB2YWx1ZSkge1xuICAgIGlmICh3YXJuZWRTdHlsZVZhbHVlcy5oYXNPd25Qcm9wZXJ0eSh2YWx1ZSkgJiYgd2FybmVkU3R5bGVWYWx1ZXNbdmFsdWVdKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgd2FybmVkU3R5bGVWYWx1ZXNbdmFsdWVdID0gdHJ1ZTtcblxuICAgIGVycm9yKFwiU3R5bGUgcHJvcGVydHkgdmFsdWVzIHNob3VsZG4ndCBjb250YWluIGEgc2VtaWNvbG9uLiBcIiArICdUcnkgXCIlczogJXNcIiBpbnN0ZWFkLicsIG5hbWUsIHZhbHVlLnJlcGxhY2UoYmFkU3R5bGVWYWx1ZVdpdGhTZW1pY29sb25QYXR0ZXJuLCAnJykpO1xuICB9O1xuXG4gIHZhciB3YXJuU3R5bGVWYWx1ZUlzTmFOID0gZnVuY3Rpb24gKG5hbWUsIHZhbHVlKSB7XG4gICAgaWYgKHdhcm5lZEZvck5hTlZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgd2FybmVkRm9yTmFOVmFsdWUgPSB0cnVlO1xuXG4gICAgZXJyb3IoJ2BOYU5gIGlzIGFuIGludmFsaWQgdmFsdWUgZm9yIHRoZSBgJXNgIGNzcyBzdHlsZSBwcm9wZXJ0eS4nLCBuYW1lKTtcbiAgfTtcblxuICB2YXIgd2FyblN0eWxlVmFsdWVJc0luZmluaXR5ID0gZnVuY3Rpb24gKG5hbWUsIHZhbHVlKSB7XG4gICAgaWYgKHdhcm5lZEZvckluZmluaXR5VmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB3YXJuZWRGb3JJbmZpbml0eVZhbHVlID0gdHJ1ZTtcblxuICAgIGVycm9yKCdgSW5maW5pdHlgIGlzIGFuIGludmFsaWQgdmFsdWUgZm9yIHRoZSBgJXNgIGNzcyBzdHlsZSBwcm9wZXJ0eS4nLCBuYW1lKTtcbiAgfTtcblxuICB3YXJuVmFsaWRTdHlsZSA9IGZ1bmN0aW9uIChuYW1lLCB2YWx1ZSkge1xuICAgIGlmIChuYW1lLmluZGV4T2YoJy0nKSA+IC0xKSB7XG4gICAgICB3YXJuSHlwaGVuYXRlZFN0eWxlTmFtZShuYW1lKTtcbiAgICB9IGVsc2UgaWYgKGJhZFZlbmRvcmVkU3R5bGVOYW1lUGF0dGVybi50ZXN0KG5hbWUpKSB7XG4gICAgICB3YXJuQmFkVmVuZG9yZWRTdHlsZU5hbWUobmFtZSk7XG4gICAgfSBlbHNlIGlmIChiYWRTdHlsZVZhbHVlV2l0aFNlbWljb2xvblBhdHRlcm4udGVzdCh2YWx1ZSkpIHtcbiAgICAgIHdhcm5TdHlsZVZhbHVlV2l0aFNlbWljb2xvbihuYW1lLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIGlmIChpc05hTih2YWx1ZSkpIHtcbiAgICAgICAgd2FyblN0eWxlVmFsdWVJc05hTihuYW1lLCB2YWx1ZSk7XG4gICAgICB9IGVsc2UgaWYgKCFpc0Zpbml0ZSh2YWx1ZSkpIHtcbiAgICAgICAgd2FyblN0eWxlVmFsdWVJc0luZmluaXR5KG5hbWUsIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG59XG5cbnZhciB3YXJuVmFsaWRTdHlsZSQxID0gd2FyblZhbGlkU3R5bGU7XG5cbi8qKlxuICogT3BlcmF0aW9ucyBmb3IgZGVhbGluZyB3aXRoIENTUyBwcm9wZXJ0aWVzLlxuICovXG5cbi8qKlxuICogVGhpcyBjcmVhdGVzIGEgc3RyaW5nIHRoYXQgaXMgZXhwZWN0ZWQgdG8gYmUgZXF1aXZhbGVudCB0byB0aGUgc3R5bGVcbiAqIGF0dHJpYnV0ZSBnZW5lcmF0ZWQgYnkgc2VydmVyLXNpZGUgcmVuZGVyaW5nLiBJdCBieS1wYXNzZXMgd2FybmluZ3MgYW5kXG4gKiBzZWN1cml0eSBjaGVja3Mgc28gaXQncyBub3Qgc2FmZSB0byB1c2UgdGhpcyB2YWx1ZSBmb3IgYW55dGhpbmcgb3RoZXIgdGhhblxuICogY29tcGFyaXNvbi4gSXQgaXMgb25seSB1c2VkIGluIERFViBmb3IgU1NSIHZhbGlkYXRpb24uXG4gKi9cblxuZnVuY3Rpb24gY3JlYXRlRGFuZ2Vyb3VzU3RyaW5nRm9yU3R5bGVzKHN0eWxlcykge1xuICB7XG4gICAgdmFyIHNlcmlhbGl6ZWQgPSAnJztcbiAgICB2YXIgZGVsaW1pdGVyID0gJyc7XG5cbiAgICBmb3IgKHZhciBzdHlsZU5hbWUgaW4gc3R5bGVzKSB7XG4gICAgICBpZiAoIXN0eWxlcy5oYXNPd25Qcm9wZXJ0eShzdHlsZU5hbWUpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICB2YXIgc3R5bGVWYWx1ZSA9IHN0eWxlc1tzdHlsZU5hbWVdO1xuXG4gICAgICBpZiAoc3R5bGVWYWx1ZSAhPSBudWxsKSB7XG4gICAgICAgIHZhciBpc0N1c3RvbVByb3BlcnR5ID0gc3R5bGVOYW1lLmluZGV4T2YoJy0tJykgPT09IDA7XG4gICAgICAgIHNlcmlhbGl6ZWQgKz0gZGVsaW1pdGVyICsgKGlzQ3VzdG9tUHJvcGVydHkgPyBzdHlsZU5hbWUgOiBoeXBoZW5hdGVTdHlsZU5hbWUoc3R5bGVOYW1lKSkgKyAnOic7XG4gICAgICAgIHNlcmlhbGl6ZWQgKz0gZGFuZ2Vyb3VzU3R5bGVWYWx1ZShzdHlsZU5hbWUsIHN0eWxlVmFsdWUsIGlzQ3VzdG9tUHJvcGVydHkpO1xuICAgICAgICBkZWxpbWl0ZXIgPSAnOyc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHNlcmlhbGl6ZWQgfHwgbnVsbDtcbiAgfVxufVxuLyoqXG4gKiBTZXRzIHRoZSB2YWx1ZSBmb3IgbXVsdGlwbGUgc3R5bGVzIG9uIGEgbm9kZS4gIElmIGEgdmFsdWUgaXMgc3BlY2lmaWVkIGFzXG4gKiAnJyAoZW1wdHkgc3RyaW5nKSwgdGhlIGNvcnJlc3BvbmRpbmcgc3R5bGUgcHJvcGVydHkgd2lsbCBiZSB1bnNldC5cbiAqXG4gKiBAcGFyYW0ge0RPTUVsZW1lbnR9IG5vZGVcbiAqIEBwYXJhbSB7b2JqZWN0fSBzdHlsZXNcbiAqL1xuXG5mdW5jdGlvbiBzZXRWYWx1ZUZvclN0eWxlcyhub2RlLCBzdHlsZXMpIHtcbiAgdmFyIHN0eWxlID0gbm9kZS5zdHlsZTtcblxuICBmb3IgKHZhciBzdHlsZU5hbWUgaW4gc3R5bGVzKSB7XG4gICAgaWYgKCFzdHlsZXMuaGFzT3duUHJvcGVydHkoc3R5bGVOYW1lKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgdmFyIGlzQ3VzdG9tUHJvcGVydHkgPSBzdHlsZU5hbWUuaW5kZXhPZignLS0nKSA9PT0gMDtcblxuICAgIHtcbiAgICAgIGlmICghaXNDdXN0b21Qcm9wZXJ0eSkge1xuICAgICAgICB3YXJuVmFsaWRTdHlsZSQxKHN0eWxlTmFtZSwgc3R5bGVzW3N0eWxlTmFtZV0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBzdHlsZVZhbHVlID0gZGFuZ2Vyb3VzU3R5bGVWYWx1ZShzdHlsZU5hbWUsIHN0eWxlc1tzdHlsZU5hbWVdLCBpc0N1c3RvbVByb3BlcnR5KTtcblxuICAgIGlmIChzdHlsZU5hbWUgPT09ICdmbG9hdCcpIHtcbiAgICAgIHN0eWxlTmFtZSA9ICdjc3NGbG9hdCc7XG4gICAgfVxuXG4gICAgaWYgKGlzQ3VzdG9tUHJvcGVydHkpIHtcbiAgICAgIHN0eWxlLnNldFByb3BlcnR5KHN0eWxlTmFtZSwgc3R5bGVWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0eWxlW3N0eWxlTmFtZV0gPSBzdHlsZVZhbHVlO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBpc1ZhbHVlRW1wdHkodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlID09IG51bGwgfHwgdHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicgfHwgdmFsdWUgPT09ICcnO1xufVxuLyoqXG4gKiBHaXZlbiB7Y29sb3I6ICdyZWQnLCBvdmVyZmxvdzogJ2hpZGRlbid9IHJldHVybnMge1xuICogICBjb2xvcjogJ2NvbG9yJyxcbiAqICAgb3ZlcmZsb3dYOiAnb3ZlcmZsb3cnLFxuICogICBvdmVyZmxvd1k6ICdvdmVyZmxvdycsXG4gKiB9LiBUaGlzIGNhbiBiZSByZWFkIGFzIFwidGhlIG92ZXJmbG93WSBwcm9wZXJ0eSB3YXMgc2V0IGJ5IHRoZSBvdmVyZmxvd1xuICogc2hvcnRoYW5kXCIuIFRoYXQgaXMsIHRoZSB2YWx1ZXMgYXJlIHRoZSBwcm9wZXJ0eSB0aGF0IGVhY2ggd2FzIGRlcml2ZWQgZnJvbS5cbiAqL1xuXG5cbmZ1bmN0aW9uIGV4cGFuZFNob3J0aGFuZE1hcChzdHlsZXMpIHtcbiAgdmFyIGV4cGFuZGVkID0ge307XG5cbiAgZm9yICh2YXIga2V5IGluIHN0eWxlcykge1xuICAgIHZhciBsb25naGFuZHMgPSBzaG9ydGhhbmRUb0xvbmdoYW5kW2tleV0gfHwgW2tleV07XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxvbmdoYW5kcy5sZW5ndGg7IGkrKykge1xuICAgICAgZXhwYW5kZWRbbG9uZ2hhbmRzW2ldXSA9IGtleTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZXhwYW5kZWQ7XG59XG4vKipcbiAqIFdoZW4gbWl4aW5nIHNob3J0aGFuZCBhbmQgbG9uZ2hhbmQgcHJvcGVydHkgbmFtZXMsIHdlIHdhcm4gZHVyaW5nIHVwZGF0ZXMgaWZcbiAqIHdlIGV4cGVjdCBhbiBpbmNvcnJlY3QgcmVzdWx0IHRvIG9jY3VyLiBJbiBwYXJ0aWN1bGFyLCB3ZSB3YXJuIGZvcjpcbiAqXG4gKiBVcGRhdGluZyBhIHNob3J0aGFuZCBwcm9wZXJ0eSAobG9uZ2hhbmQgZ2V0cyBvdmVyd3JpdHRlbik6XG4gKiAgIHtmb250OiAnZm9vJywgZm9udFZhcmlhbnQ6ICdiYXInfSAtPiB7Zm9udDogJ2JheicsIGZvbnRWYXJpYW50OiAnYmFyJ31cbiAqICAgYmVjb21lcyAuc3R5bGUuZm9udCA9ICdiYXonXG4gKiBSZW1vdmluZyBhIHNob3J0aGFuZCBwcm9wZXJ0eSAobG9uZ2hhbmQgZ2V0cyBsb3N0IHRvbyk6XG4gKiAgIHtmb250OiAnZm9vJywgZm9udFZhcmlhbnQ6ICdiYXInfSAtPiB7Zm9udFZhcmlhbnQ6ICdiYXInfVxuICogICBiZWNvbWVzIC5zdHlsZS5mb250ID0gJydcbiAqIFJlbW92aW5nIGEgbG9uZ2hhbmQgcHJvcGVydHkgKHNob3VsZCByZXZlcnQgdG8gc2hvcnRoYW5kOyBkb2Vzbid0KTpcbiAqICAge2ZvbnQ6ICdmb28nLCBmb250VmFyaWFudDogJ2Jhcid9IC0+IHtmb250OiAnZm9vJ31cbiAqICAgYmVjb21lcyAuc3R5bGUuZm9udFZhcmlhbnQgPSAnJ1xuICovXG5cblxuZnVuY3Rpb24gdmFsaWRhdGVTaG9ydGhhbmRQcm9wZXJ0eUNvbGxpc2lvbkluRGV2KHN0eWxlVXBkYXRlcywgbmV4dFN0eWxlcykge1xuICB7XG4gICAgaWYgKCFuZXh0U3R5bGVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIGV4cGFuZGVkVXBkYXRlcyA9IGV4cGFuZFNob3J0aGFuZE1hcChzdHlsZVVwZGF0ZXMpO1xuICAgIHZhciBleHBhbmRlZFN0eWxlcyA9IGV4cGFuZFNob3J0aGFuZE1hcChuZXh0U3R5bGVzKTtcbiAgICB2YXIgd2FybmVkQWJvdXQgPSB7fTtcblxuICAgIGZvciAodmFyIGtleSBpbiBleHBhbmRlZFVwZGF0ZXMpIHtcbiAgICAgIHZhciBvcmlnaW5hbEtleSA9IGV4cGFuZGVkVXBkYXRlc1trZXldO1xuICAgICAgdmFyIGNvcnJlY3RPcmlnaW5hbEtleSA9IGV4cGFuZGVkU3R5bGVzW2tleV07XG5cbiAgICAgIGlmIChjb3JyZWN0T3JpZ2luYWxLZXkgJiYgb3JpZ2luYWxLZXkgIT09IGNvcnJlY3RPcmlnaW5hbEtleSkge1xuICAgICAgICB2YXIgd2FybmluZ0tleSA9IG9yaWdpbmFsS2V5ICsgJywnICsgY29ycmVjdE9yaWdpbmFsS2V5O1xuXG4gICAgICAgIGlmICh3YXJuZWRBYm91dFt3YXJuaW5nS2V5XSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgd2FybmVkQWJvdXRbd2FybmluZ0tleV0gPSB0cnVlO1xuXG4gICAgICAgIGVycm9yKCclcyBhIHN0eWxlIHByb3BlcnR5IGR1cmluZyByZXJlbmRlciAoJXMpIHdoZW4gYSAnICsgJ2NvbmZsaWN0aW5nIHByb3BlcnR5IGlzIHNldCAoJXMpIGNhbiBsZWFkIHRvIHN0eWxpbmcgYnVncy4gVG8gJyArIFwiYXZvaWQgdGhpcywgZG9uJ3QgbWl4IHNob3J0aGFuZCBhbmQgbm9uLXNob3J0aGFuZCBwcm9wZXJ0aWVzIFwiICsgJ2ZvciB0aGUgc2FtZSB2YWx1ZTsgaW5zdGVhZCwgcmVwbGFjZSB0aGUgc2hvcnRoYW5kIHdpdGggJyArICdzZXBhcmF0ZSB2YWx1ZXMuJywgaXNWYWx1ZUVtcHR5KHN0eWxlVXBkYXRlc1tvcmlnaW5hbEtleV0pID8gJ1JlbW92aW5nJyA6ICdVcGRhdGluZycsIG9yaWdpbmFsS2V5LCBjb3JyZWN0T3JpZ2luYWxLZXkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBGb3IgSFRNTCwgY2VydGFpbiB0YWdzIHNob3VsZCBvbWl0IHRoZWlyIGNsb3NlIHRhZy4gV2Uga2VlcCBhIGxpc3QgZm9yXG4vLyB0aG9zZSBzcGVjaWFsLWNhc2UgdGFncy5cbnZhciBvbWl0dGVkQ2xvc2VUYWdzID0ge1xuICBhcmVhOiB0cnVlLFxuICBiYXNlOiB0cnVlLFxuICBicjogdHJ1ZSxcbiAgY29sOiB0cnVlLFxuICBlbWJlZDogdHJ1ZSxcbiAgaHI6IHRydWUsXG4gIGltZzogdHJ1ZSxcbiAgaW5wdXQ6IHRydWUsXG4gIGtleWdlbjogdHJ1ZSxcbiAgbGluazogdHJ1ZSxcbiAgbWV0YTogdHJ1ZSxcbiAgcGFyYW06IHRydWUsXG4gIHNvdXJjZTogdHJ1ZSxcbiAgdHJhY2s6IHRydWUsXG4gIHdicjogdHJ1ZSAvLyBOT1RFOiBtZW51aXRlbSdzIGNsb3NlIHRhZyBzaG91bGQgYmUgb21pdHRlZCwgYnV0IHRoYXQgY2F1c2VzIHByb2JsZW1zLlxuXG59O1xuXG4vLyBgb21pdHRlZENsb3NlVGFnc2AgZXhjZXB0IHRoYXQgYG1lbnVpdGVtYCBzaG91bGQgc3RpbGwgaGF2ZSBpdHMgY2xvc2luZyB0YWcuXG5cbnZhciB2b2lkRWxlbWVudFRhZ3MgPSBfYXNzaWduKHtcbiAgbWVudWl0ZW06IHRydWVcbn0sIG9taXR0ZWRDbG9zZVRhZ3MpO1xuXG52YXIgSFRNTCA9ICdfX2h0bWwnO1xuXG5mdW5jdGlvbiBhc3NlcnRWYWxpZFByb3BzKHRhZywgcHJvcHMpIHtcbiAgaWYgKCFwcm9wcykge1xuICAgIHJldHVybjtcbiAgfSAvLyBOb3RlIHRoZSB1c2Ugb2YgYD09YCB3aGljaCBjaGVja3MgZm9yIG51bGwgb3IgdW5kZWZpbmVkLlxuXG5cbiAgaWYgKHZvaWRFbGVtZW50VGFnc1t0YWddKSB7XG4gICAgaWYgKCEocHJvcHMuY2hpbGRyZW4gPT0gbnVsbCAmJiBwcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTCA9PSBudWxsKSkge1xuICAgICAge1xuICAgICAgICB0aHJvdyBFcnJvciggdGFnICsgXCIgaXMgYSB2b2lkIGVsZW1lbnQgdGFnIGFuZCBtdXN0IG5laXRoZXIgaGF2ZSBgY2hpbGRyZW5gIG5vciB1c2UgYGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MYC5cIiApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmIChwcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTCAhPSBudWxsKSB7XG4gICAgaWYgKCEocHJvcHMuY2hpbGRyZW4gPT0gbnVsbCkpIHtcbiAgICAgIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoIFwiQ2FuIG9ubHkgc2V0IG9uZSBvZiBgY2hpbGRyZW5gIG9yIGBwcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTGAuXCIgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoISh0eXBlb2YgcHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgPT09ICdvYmplY3QnICYmIEhUTUwgaW4gcHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwpKSB7XG4gICAgICB7XG4gICAgICAgIHRocm93IEVycm9yKCBcImBwcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTGAgbXVzdCBiZSBpbiB0aGUgZm9ybSBge19faHRtbDogLi4ufWAuIFBsZWFzZSB2aXNpdCBodHRwczovL3JlYWN0anMub3JnL2xpbmsvZGFuZ2Vyb3VzbHktc2V0LWlubmVyLWh0bWwgZm9yIG1vcmUgaW5mb3JtYXRpb24uXCIgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB7XG4gICAgaWYgKCFwcm9wcy5zdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmcgJiYgcHJvcHMuY29udGVudEVkaXRhYmxlICYmIHByb3BzLmNoaWxkcmVuICE9IG51bGwpIHtcbiAgICAgIGVycm9yKCdBIGNvbXBvbmVudCBpcyBgY29udGVudEVkaXRhYmxlYCBhbmQgY29udGFpbnMgYGNoaWxkcmVuYCBtYW5hZ2VkIGJ5ICcgKyAnUmVhY3QuIEl0IGlzIG5vdyB5b3VyIHJlc3BvbnNpYmlsaXR5IHRvIGd1YXJhbnRlZSB0aGF0IG5vbmUgb2YgJyArICd0aG9zZSBub2RlcyBhcmUgdW5leHBlY3RlZGx5IG1vZGlmaWVkIG9yIGR1cGxpY2F0ZWQuIFRoaXMgaXMgJyArICdwcm9iYWJseSBub3QgaW50ZW50aW9uYWwuJyk7XG4gICAgfVxuICB9XG5cbiAgaWYgKCEocHJvcHMuc3R5bGUgPT0gbnVsbCB8fCB0eXBlb2YgcHJvcHMuc3R5bGUgPT09ICdvYmplY3QnKSkge1xuICAgIHtcbiAgICAgIHRocm93IEVycm9yKCBcIlRoZSBgc3R5bGVgIHByb3AgZXhwZWN0cyBhIG1hcHBpbmcgZnJvbSBzdHlsZSBwcm9wZXJ0aWVzIHRvIHZhbHVlcywgbm90IGEgc3RyaW5nLiBGb3IgZXhhbXBsZSwgc3R5bGU9e3ttYXJnaW5SaWdodDogc3BhY2luZyArICdlbSd9fSB3aGVuIHVzaW5nIEpTWC5cIiApO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBpc0N1c3RvbUNvbXBvbmVudCh0YWdOYW1lLCBwcm9wcykge1xuICBpZiAodGFnTmFtZS5pbmRleE9mKCctJykgPT09IC0xKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBwcm9wcy5pcyA9PT0gJ3N0cmluZyc7XG4gIH1cblxuICBzd2l0Y2ggKHRhZ05hbWUpIHtcbiAgICAvLyBUaGVzZSBhcmUgcmVzZXJ2ZWQgU1ZHIGFuZCBNYXRoTUwgZWxlbWVudHMuXG4gICAgLy8gV2UgZG9uJ3QgbWluZCB0aGlzIGxpc3QgdG9vIG11Y2ggYmVjYXVzZSB3ZSBleHBlY3QgaXQgdG8gbmV2ZXIgZ3Jvdy5cbiAgICAvLyBUaGUgYWx0ZXJuYXRpdmUgaXMgdG8gdHJhY2sgdGhlIG5hbWVzcGFjZSBpbiBhIGZldyBwbGFjZXMgd2hpY2ggaXMgY29udm9sdXRlZC5cbiAgICAvLyBodHRwczovL3czYy5naXRodWIuaW8vd2ViY29tcG9uZW50cy9zcGVjL2N1c3RvbS8jY3VzdG9tLWVsZW1lbnRzLWNvcmUtY29uY2VwdHNcbiAgICBjYXNlICdhbm5vdGF0aW9uLXhtbCc6XG4gICAgY2FzZSAnY29sb3ItcHJvZmlsZSc6XG4gICAgY2FzZSAnZm9udC1mYWNlJzpcbiAgICBjYXNlICdmb250LWZhY2Utc3JjJzpcbiAgICBjYXNlICdmb250LWZhY2UtdXJpJzpcbiAgICBjYXNlICdmb250LWZhY2UtZm9ybWF0JzpcbiAgICBjYXNlICdmb250LWZhY2UtbmFtZSc6XG4gICAgY2FzZSAnbWlzc2luZy1nbHlwaCc6XG4gICAgICByZXR1cm4gZmFsc2U7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cblxuLy8gV2hlbiBhZGRpbmcgYXR0cmlidXRlcyB0byB0aGUgSFRNTCBvciBTVkcgYWxsb3dlZCBhdHRyaWJ1dGUgbGlzdCwgYmUgc3VyZSB0b1xuLy8gYWxzbyBhZGQgdGhlbSB0byB0aGlzIG1vZHVsZSB0byBlbnN1cmUgY2FzaW5nIGFuZCBpbmNvcnJlY3QgbmFtZVxuLy8gd2FybmluZ3MuXG52YXIgcG9zc2libGVTdGFuZGFyZE5hbWVzID0ge1xuICAvLyBIVE1MXG4gIGFjY2VwdDogJ2FjY2VwdCcsXG4gIGFjY2VwdGNoYXJzZXQ6ICdhY2NlcHRDaGFyc2V0JyxcbiAgJ2FjY2VwdC1jaGFyc2V0JzogJ2FjY2VwdENoYXJzZXQnLFxuICBhY2Nlc3NrZXk6ICdhY2Nlc3NLZXknLFxuICBhY3Rpb246ICdhY3Rpb24nLFxuICBhbGxvd2Z1bGxzY3JlZW46ICdhbGxvd0Z1bGxTY3JlZW4nLFxuICBhbHQ6ICdhbHQnLFxuICBhczogJ2FzJyxcbiAgYXN5bmM6ICdhc3luYycsXG4gIGF1dG9jYXBpdGFsaXplOiAnYXV0b0NhcGl0YWxpemUnLFxuICBhdXRvY29tcGxldGU6ICdhdXRvQ29tcGxldGUnLFxuICBhdXRvY29ycmVjdDogJ2F1dG9Db3JyZWN0JyxcbiAgYXV0b2ZvY3VzOiAnYXV0b0ZvY3VzJyxcbiAgYXV0b3BsYXk6ICdhdXRvUGxheScsXG4gIGF1dG9zYXZlOiAnYXV0b1NhdmUnLFxuICBjYXB0dXJlOiAnY2FwdHVyZScsXG4gIGNlbGxwYWRkaW5nOiAnY2VsbFBhZGRpbmcnLFxuICBjZWxsc3BhY2luZzogJ2NlbGxTcGFjaW5nJyxcbiAgY2hhbGxlbmdlOiAnY2hhbGxlbmdlJyxcbiAgY2hhcnNldDogJ2NoYXJTZXQnLFxuICBjaGVja2VkOiAnY2hlY2tlZCcsXG4gIGNoaWxkcmVuOiAnY2hpbGRyZW4nLFxuICBjaXRlOiAnY2l0ZScsXG4gIGNsYXNzOiAnY2xhc3NOYW1lJyxcbiAgY2xhc3NpZDogJ2NsYXNzSUQnLFxuICBjbGFzc25hbWU6ICdjbGFzc05hbWUnLFxuICBjb2xzOiAnY29scycsXG4gIGNvbHNwYW46ICdjb2xTcGFuJyxcbiAgY29udGVudDogJ2NvbnRlbnQnLFxuICBjb250ZW50ZWRpdGFibGU6ICdjb250ZW50RWRpdGFibGUnLFxuICBjb250ZXh0bWVudTogJ2NvbnRleHRNZW51JyxcbiAgY29udHJvbHM6ICdjb250cm9scycsXG4gIGNvbnRyb2xzbGlzdDogJ2NvbnRyb2xzTGlzdCcsXG4gIGNvb3JkczogJ2Nvb3JkcycsXG4gIGNyb3Nzb3JpZ2luOiAnY3Jvc3NPcmlnaW4nLFxuICBkYW5nZXJvdXNseXNldGlubmVyaHRtbDogJ2Rhbmdlcm91c2x5U2V0SW5uZXJIVE1MJyxcbiAgZGF0YTogJ2RhdGEnLFxuICBkYXRldGltZTogJ2RhdGVUaW1lJyxcbiAgZGVmYXVsdDogJ2RlZmF1bHQnLFxuICBkZWZhdWx0Y2hlY2tlZDogJ2RlZmF1bHRDaGVja2VkJyxcbiAgZGVmYXVsdHZhbHVlOiAnZGVmYXVsdFZhbHVlJyxcbiAgZGVmZXI6ICdkZWZlcicsXG4gIGRpcjogJ2RpcicsXG4gIGRpc2FibGVkOiAnZGlzYWJsZWQnLFxuICBkaXNhYmxlcGljdHVyZWlucGljdHVyZTogJ2Rpc2FibGVQaWN0dXJlSW5QaWN0dXJlJyxcbiAgZGlzYWJsZXJlbW90ZXBsYXliYWNrOiAnZGlzYWJsZVJlbW90ZVBsYXliYWNrJyxcbiAgZG93bmxvYWQ6ICdkb3dubG9hZCcsXG4gIGRyYWdnYWJsZTogJ2RyYWdnYWJsZScsXG4gIGVuY3R5cGU6ICdlbmNUeXBlJyxcbiAgZW50ZXJrZXloaW50OiAnZW50ZXJLZXlIaW50JyxcbiAgZm9yOiAnaHRtbEZvcicsXG4gIGZvcm06ICdmb3JtJyxcbiAgZm9ybW1ldGhvZDogJ2Zvcm1NZXRob2QnLFxuICBmb3JtYWN0aW9uOiAnZm9ybUFjdGlvbicsXG4gIGZvcm1lbmN0eXBlOiAnZm9ybUVuY1R5cGUnLFxuICBmb3Jtbm92YWxpZGF0ZTogJ2Zvcm1Ob1ZhbGlkYXRlJyxcbiAgZm9ybXRhcmdldDogJ2Zvcm1UYXJnZXQnLFxuICBmcmFtZWJvcmRlcjogJ2ZyYW1lQm9yZGVyJyxcbiAgaGVhZGVyczogJ2hlYWRlcnMnLFxuICBoZWlnaHQ6ICdoZWlnaHQnLFxuICBoaWRkZW46ICdoaWRkZW4nLFxuICBoaWdoOiAnaGlnaCcsXG4gIGhyZWY6ICdocmVmJyxcbiAgaHJlZmxhbmc6ICdocmVmTGFuZycsXG4gIGh0bWxmb3I6ICdodG1sRm9yJyxcbiAgaHR0cGVxdWl2OiAnaHR0cEVxdWl2JyxcbiAgJ2h0dHAtZXF1aXYnOiAnaHR0cEVxdWl2JyxcbiAgaWNvbjogJ2ljb24nLFxuICBpZDogJ2lkJyxcbiAgaW5uZXJodG1sOiAnaW5uZXJIVE1MJyxcbiAgaW5wdXRtb2RlOiAnaW5wdXRNb2RlJyxcbiAgaW50ZWdyaXR5OiAnaW50ZWdyaXR5JyxcbiAgaXM6ICdpcycsXG4gIGl0ZW1pZDogJ2l0ZW1JRCcsXG4gIGl0ZW1wcm9wOiAnaXRlbVByb3AnLFxuICBpdGVtcmVmOiAnaXRlbVJlZicsXG4gIGl0ZW1zY29wZTogJ2l0ZW1TY29wZScsXG4gIGl0ZW10eXBlOiAnaXRlbVR5cGUnLFxuICBrZXlwYXJhbXM6ICdrZXlQYXJhbXMnLFxuICBrZXl0eXBlOiAna2V5VHlwZScsXG4gIGtpbmQ6ICdraW5kJyxcbiAgbGFiZWw6ICdsYWJlbCcsXG4gIGxhbmc6ICdsYW5nJyxcbiAgbGlzdDogJ2xpc3QnLFxuICBsb29wOiAnbG9vcCcsXG4gIGxvdzogJ2xvdycsXG4gIG1hbmlmZXN0OiAnbWFuaWZlc3QnLFxuICBtYXJnaW53aWR0aDogJ21hcmdpbldpZHRoJyxcbiAgbWFyZ2luaGVpZ2h0OiAnbWFyZ2luSGVpZ2h0JyxcbiAgbWF4OiAnbWF4JyxcbiAgbWF4bGVuZ3RoOiAnbWF4TGVuZ3RoJyxcbiAgbWVkaWE6ICdtZWRpYScsXG4gIG1lZGlhZ3JvdXA6ICdtZWRpYUdyb3VwJyxcbiAgbWV0aG9kOiAnbWV0aG9kJyxcbiAgbWluOiAnbWluJyxcbiAgbWlubGVuZ3RoOiAnbWluTGVuZ3RoJyxcbiAgbXVsdGlwbGU6ICdtdWx0aXBsZScsXG4gIG11dGVkOiAnbXV0ZWQnLFxuICBuYW1lOiAnbmFtZScsXG4gIG5vbW9kdWxlOiAnbm9Nb2R1bGUnLFxuICBub25jZTogJ25vbmNlJyxcbiAgbm92YWxpZGF0ZTogJ25vVmFsaWRhdGUnLFxuICBvcGVuOiAnb3BlbicsXG4gIG9wdGltdW06ICdvcHRpbXVtJyxcbiAgcGF0dGVybjogJ3BhdHRlcm4nLFxuICBwbGFjZWhvbGRlcjogJ3BsYWNlaG9sZGVyJyxcbiAgcGxheXNpbmxpbmU6ICdwbGF5c0lubGluZScsXG4gIHBvc3RlcjogJ3Bvc3RlcicsXG4gIHByZWxvYWQ6ICdwcmVsb2FkJyxcbiAgcHJvZmlsZTogJ3Byb2ZpbGUnLFxuICByYWRpb2dyb3VwOiAncmFkaW9Hcm91cCcsXG4gIHJlYWRvbmx5OiAncmVhZE9ubHknLFxuICByZWZlcnJlcnBvbGljeTogJ3JlZmVycmVyUG9saWN5JyxcbiAgcmVsOiAncmVsJyxcbiAgcmVxdWlyZWQ6ICdyZXF1aXJlZCcsXG4gIHJldmVyc2VkOiAncmV2ZXJzZWQnLFxuICByb2xlOiAncm9sZScsXG4gIHJvd3M6ICdyb3dzJyxcbiAgcm93c3BhbjogJ3Jvd1NwYW4nLFxuICBzYW5kYm94OiAnc2FuZGJveCcsXG4gIHNjb3BlOiAnc2NvcGUnLFxuICBzY29wZWQ6ICdzY29wZWQnLFxuICBzY3JvbGxpbmc6ICdzY3JvbGxpbmcnLFxuICBzZWFtbGVzczogJ3NlYW1sZXNzJyxcbiAgc2VsZWN0ZWQ6ICdzZWxlY3RlZCcsXG4gIHNoYXBlOiAnc2hhcGUnLFxuICBzaXplOiAnc2l6ZScsXG4gIHNpemVzOiAnc2l6ZXMnLFxuICBzcGFuOiAnc3BhbicsXG4gIHNwZWxsY2hlY2s6ICdzcGVsbENoZWNrJyxcbiAgc3JjOiAnc3JjJyxcbiAgc3JjZG9jOiAnc3JjRG9jJyxcbiAgc3JjbGFuZzogJ3NyY0xhbmcnLFxuICBzcmNzZXQ6ICdzcmNTZXQnLFxuICBzdGFydDogJ3N0YXJ0JyxcbiAgc3RlcDogJ3N0ZXAnLFxuICBzdHlsZTogJ3N0eWxlJyxcbiAgc3VtbWFyeTogJ3N1bW1hcnknLFxuICB0YWJpbmRleDogJ3RhYkluZGV4JyxcbiAgdGFyZ2V0OiAndGFyZ2V0JyxcbiAgdGl0bGU6ICd0aXRsZScsXG4gIHR5cGU6ICd0eXBlJyxcbiAgdXNlbWFwOiAndXNlTWFwJyxcbiAgdmFsdWU6ICd2YWx1ZScsXG4gIHdpZHRoOiAnd2lkdGgnLFxuICB3bW9kZTogJ3dtb2RlJyxcbiAgd3JhcDogJ3dyYXAnLFxuICAvLyBTVkdcbiAgYWJvdXQ6ICdhYm91dCcsXG4gIGFjY2VudGhlaWdodDogJ2FjY2VudEhlaWdodCcsXG4gICdhY2NlbnQtaGVpZ2h0JzogJ2FjY2VudEhlaWdodCcsXG4gIGFjY3VtdWxhdGU6ICdhY2N1bXVsYXRlJyxcbiAgYWRkaXRpdmU6ICdhZGRpdGl2ZScsXG4gIGFsaWdubWVudGJhc2VsaW5lOiAnYWxpZ25tZW50QmFzZWxpbmUnLFxuICAnYWxpZ25tZW50LWJhc2VsaW5lJzogJ2FsaWdubWVudEJhc2VsaW5lJyxcbiAgYWxsb3dyZW9yZGVyOiAnYWxsb3dSZW9yZGVyJyxcbiAgYWxwaGFiZXRpYzogJ2FscGhhYmV0aWMnLFxuICBhbXBsaXR1ZGU6ICdhbXBsaXR1ZGUnLFxuICBhcmFiaWNmb3JtOiAnYXJhYmljRm9ybScsXG4gICdhcmFiaWMtZm9ybSc6ICdhcmFiaWNGb3JtJyxcbiAgYXNjZW50OiAnYXNjZW50JyxcbiAgYXR0cmlidXRlbmFtZTogJ2F0dHJpYnV0ZU5hbWUnLFxuICBhdHRyaWJ1dGV0eXBlOiAnYXR0cmlidXRlVHlwZScsXG4gIGF1dG9yZXZlcnNlOiAnYXV0b1JldmVyc2UnLFxuICBhemltdXRoOiAnYXppbXV0aCcsXG4gIGJhc2VmcmVxdWVuY3k6ICdiYXNlRnJlcXVlbmN5JyxcbiAgYmFzZWxpbmVzaGlmdDogJ2Jhc2VsaW5lU2hpZnQnLFxuICAnYmFzZWxpbmUtc2hpZnQnOiAnYmFzZWxpbmVTaGlmdCcsXG4gIGJhc2Vwcm9maWxlOiAnYmFzZVByb2ZpbGUnLFxuICBiYm94OiAnYmJveCcsXG4gIGJlZ2luOiAnYmVnaW4nLFxuICBiaWFzOiAnYmlhcycsXG4gIGJ5OiAnYnknLFxuICBjYWxjbW9kZTogJ2NhbGNNb2RlJyxcbiAgY2FwaGVpZ2h0OiAnY2FwSGVpZ2h0JyxcbiAgJ2NhcC1oZWlnaHQnOiAnY2FwSGVpZ2h0JyxcbiAgY2xpcDogJ2NsaXAnLFxuICBjbGlwcGF0aDogJ2NsaXBQYXRoJyxcbiAgJ2NsaXAtcGF0aCc6ICdjbGlwUGF0aCcsXG4gIGNsaXBwYXRodW5pdHM6ICdjbGlwUGF0aFVuaXRzJyxcbiAgY2xpcHJ1bGU6ICdjbGlwUnVsZScsXG4gICdjbGlwLXJ1bGUnOiAnY2xpcFJ1bGUnLFxuICBjb2xvcjogJ2NvbG9yJyxcbiAgY29sb3JpbnRlcnBvbGF0aW9uOiAnY29sb3JJbnRlcnBvbGF0aW9uJyxcbiAgJ2NvbG9yLWludGVycG9sYXRpb24nOiAnY29sb3JJbnRlcnBvbGF0aW9uJyxcbiAgY29sb3JpbnRlcnBvbGF0aW9uZmlsdGVyczogJ2NvbG9ySW50ZXJwb2xhdGlvbkZpbHRlcnMnLFxuICAnY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzJzogJ2NvbG9ySW50ZXJwb2xhdGlvbkZpbHRlcnMnLFxuICBjb2xvcnByb2ZpbGU6ICdjb2xvclByb2ZpbGUnLFxuICAnY29sb3ItcHJvZmlsZSc6ICdjb2xvclByb2ZpbGUnLFxuICBjb2xvcnJlbmRlcmluZzogJ2NvbG9yUmVuZGVyaW5nJyxcbiAgJ2NvbG9yLXJlbmRlcmluZyc6ICdjb2xvclJlbmRlcmluZycsXG4gIGNvbnRlbnRzY3JpcHR0eXBlOiAnY29udGVudFNjcmlwdFR5cGUnLFxuICBjb250ZW50c3R5bGV0eXBlOiAnY29udGVudFN0eWxlVHlwZScsXG4gIGN1cnNvcjogJ2N1cnNvcicsXG4gIGN4OiAnY3gnLFxuICBjeTogJ2N5JyxcbiAgZDogJ2QnLFxuICBkYXRhdHlwZTogJ2RhdGF0eXBlJyxcbiAgZGVjZWxlcmF0ZTogJ2RlY2VsZXJhdGUnLFxuICBkZXNjZW50OiAnZGVzY2VudCcsXG4gIGRpZmZ1c2Vjb25zdGFudDogJ2RpZmZ1c2VDb25zdGFudCcsXG4gIGRpcmVjdGlvbjogJ2RpcmVjdGlvbicsXG4gIGRpc3BsYXk6ICdkaXNwbGF5JyxcbiAgZGl2aXNvcjogJ2Rpdmlzb3InLFxuICBkb21pbmFudGJhc2VsaW5lOiAnZG9taW5hbnRCYXNlbGluZScsXG4gICdkb21pbmFudC1iYXNlbGluZSc6ICdkb21pbmFudEJhc2VsaW5lJyxcbiAgZHVyOiAnZHVyJyxcbiAgZHg6ICdkeCcsXG4gIGR5OiAnZHknLFxuICBlZGdlbW9kZTogJ2VkZ2VNb2RlJyxcbiAgZWxldmF0aW9uOiAnZWxldmF0aW9uJyxcbiAgZW5hYmxlYmFja2dyb3VuZDogJ2VuYWJsZUJhY2tncm91bmQnLFxuICAnZW5hYmxlLWJhY2tncm91bmQnOiAnZW5hYmxlQmFja2dyb3VuZCcsXG4gIGVuZDogJ2VuZCcsXG4gIGV4cG9uZW50OiAnZXhwb25lbnQnLFxuICBleHRlcm5hbHJlc291cmNlc3JlcXVpcmVkOiAnZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCcsXG4gIGZpbGw6ICdmaWxsJyxcbiAgZmlsbG9wYWNpdHk6ICdmaWxsT3BhY2l0eScsXG4gICdmaWxsLW9wYWNpdHknOiAnZmlsbE9wYWNpdHknLFxuICBmaWxscnVsZTogJ2ZpbGxSdWxlJyxcbiAgJ2ZpbGwtcnVsZSc6ICdmaWxsUnVsZScsXG4gIGZpbHRlcjogJ2ZpbHRlcicsXG4gIGZpbHRlcnJlczogJ2ZpbHRlclJlcycsXG4gIGZpbHRlcnVuaXRzOiAnZmlsdGVyVW5pdHMnLFxuICBmbG9vZG9wYWNpdHk6ICdmbG9vZE9wYWNpdHknLFxuICAnZmxvb2Qtb3BhY2l0eSc6ICdmbG9vZE9wYWNpdHknLFxuICBmbG9vZGNvbG9yOiAnZmxvb2RDb2xvcicsXG4gICdmbG9vZC1jb2xvcic6ICdmbG9vZENvbG9yJyxcbiAgZm9jdXNhYmxlOiAnZm9jdXNhYmxlJyxcbiAgZm9udGZhbWlseTogJ2ZvbnRGYW1pbHknLFxuICAnZm9udC1mYW1pbHknOiAnZm9udEZhbWlseScsXG4gIGZvbnRzaXplOiAnZm9udFNpemUnLFxuICAnZm9udC1zaXplJzogJ2ZvbnRTaXplJyxcbiAgZm9udHNpemVhZGp1c3Q6ICdmb250U2l6ZUFkanVzdCcsXG4gICdmb250LXNpemUtYWRqdXN0JzogJ2ZvbnRTaXplQWRqdXN0JyxcbiAgZm9udHN0cmV0Y2g6ICdmb250U3RyZXRjaCcsXG4gICdmb250LXN0cmV0Y2gnOiAnZm9udFN0cmV0Y2gnLFxuICBmb250c3R5bGU6ICdmb250U3R5bGUnLFxuICAnZm9udC1zdHlsZSc6ICdmb250U3R5bGUnLFxuICBmb250dmFyaWFudDogJ2ZvbnRWYXJpYW50JyxcbiAgJ2ZvbnQtdmFyaWFudCc6ICdmb250VmFyaWFudCcsXG4gIGZvbnR3ZWlnaHQ6ICdmb250V2VpZ2h0JyxcbiAgJ2ZvbnQtd2VpZ2h0JzogJ2ZvbnRXZWlnaHQnLFxuICBmb3JtYXQ6ICdmb3JtYXQnLFxuICBmcm9tOiAnZnJvbScsXG4gIGZ4OiAnZngnLFxuICBmeTogJ2Z5JyxcbiAgZzE6ICdnMScsXG4gIGcyOiAnZzInLFxuICBnbHlwaG5hbWU6ICdnbHlwaE5hbWUnLFxuICAnZ2x5cGgtbmFtZSc6ICdnbHlwaE5hbWUnLFxuICBnbHlwaG9yaWVudGF0aW9uaG9yaXpvbnRhbDogJ2dseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsJyxcbiAgJ2dseXBoLW9yaWVudGF0aW9uLWhvcml6b250YWwnOiAnZ2x5cGhPcmllbnRhdGlvbkhvcml6b250YWwnLFxuICBnbHlwaG9yaWVudGF0aW9udmVydGljYWw6ICdnbHlwaE9yaWVudGF0aW9uVmVydGljYWwnLFxuICAnZ2x5cGgtb3JpZW50YXRpb24tdmVydGljYWwnOiAnZ2x5cGhPcmllbnRhdGlvblZlcnRpY2FsJyxcbiAgZ2x5cGhyZWY6ICdnbHlwaFJlZicsXG4gIGdyYWRpZW50dHJhbnNmb3JtOiAnZ3JhZGllbnRUcmFuc2Zvcm0nLFxuICBncmFkaWVudHVuaXRzOiAnZ3JhZGllbnRVbml0cycsXG4gIGhhbmdpbmc6ICdoYW5naW5nJyxcbiAgaG9yaXphZHZ4OiAnaG9yaXpBZHZYJyxcbiAgJ2hvcml6LWFkdi14JzogJ2hvcml6QWR2WCcsXG4gIGhvcml6b3JpZ2lueDogJ2hvcml6T3JpZ2luWCcsXG4gICdob3Jpei1vcmlnaW4teCc6ICdob3Jpek9yaWdpblgnLFxuICBpZGVvZ3JhcGhpYzogJ2lkZW9ncmFwaGljJyxcbiAgaW1hZ2VyZW5kZXJpbmc6ICdpbWFnZVJlbmRlcmluZycsXG4gICdpbWFnZS1yZW5kZXJpbmcnOiAnaW1hZ2VSZW5kZXJpbmcnLFxuICBpbjI6ICdpbjInLFxuICBpbjogJ2luJyxcbiAgaW5saXN0OiAnaW5saXN0JyxcbiAgaW50ZXJjZXB0OiAnaW50ZXJjZXB0JyxcbiAgazE6ICdrMScsXG4gIGsyOiAnazInLFxuICBrMzogJ2szJyxcbiAgazQ6ICdrNCcsXG4gIGs6ICdrJyxcbiAga2VybmVsbWF0cml4OiAna2VybmVsTWF0cml4JyxcbiAga2VybmVsdW5pdGxlbmd0aDogJ2tlcm5lbFVuaXRMZW5ndGgnLFxuICBrZXJuaW5nOiAna2VybmluZycsXG4gIGtleXBvaW50czogJ2tleVBvaW50cycsXG4gIGtleXNwbGluZXM6ICdrZXlTcGxpbmVzJyxcbiAga2V5dGltZXM6ICdrZXlUaW1lcycsXG4gIGxlbmd0aGFkanVzdDogJ2xlbmd0aEFkanVzdCcsXG4gIGxldHRlcnNwYWNpbmc6ICdsZXR0ZXJTcGFjaW5nJyxcbiAgJ2xldHRlci1zcGFjaW5nJzogJ2xldHRlclNwYWNpbmcnLFxuICBsaWdodGluZ2NvbG9yOiAnbGlnaHRpbmdDb2xvcicsXG4gICdsaWdodGluZy1jb2xvcic6ICdsaWdodGluZ0NvbG9yJyxcbiAgbGltaXRpbmdjb25lYW5nbGU6ICdsaW1pdGluZ0NvbmVBbmdsZScsXG4gIGxvY2FsOiAnbG9jYWwnLFxuICBtYXJrZXJlbmQ6ICdtYXJrZXJFbmQnLFxuICAnbWFya2VyLWVuZCc6ICdtYXJrZXJFbmQnLFxuICBtYXJrZXJoZWlnaHQ6ICdtYXJrZXJIZWlnaHQnLFxuICBtYXJrZXJtaWQ6ICdtYXJrZXJNaWQnLFxuICAnbWFya2VyLW1pZCc6ICdtYXJrZXJNaWQnLFxuICBtYXJrZXJzdGFydDogJ21hcmtlclN0YXJ0JyxcbiAgJ21hcmtlci1zdGFydCc6ICdtYXJrZXJTdGFydCcsXG4gIG1hcmtlcnVuaXRzOiAnbWFya2VyVW5pdHMnLFxuICBtYXJrZXJ3aWR0aDogJ21hcmtlcldpZHRoJyxcbiAgbWFzazogJ21hc2snLFxuICBtYXNrY29udGVudHVuaXRzOiAnbWFza0NvbnRlbnRVbml0cycsXG4gIG1hc2t1bml0czogJ21hc2tVbml0cycsXG4gIG1hdGhlbWF0aWNhbDogJ21hdGhlbWF0aWNhbCcsXG4gIG1vZGU6ICdtb2RlJyxcbiAgbnVtb2N0YXZlczogJ251bU9jdGF2ZXMnLFxuICBvZmZzZXQ6ICdvZmZzZXQnLFxuICBvcGFjaXR5OiAnb3BhY2l0eScsXG4gIG9wZXJhdG9yOiAnb3BlcmF0b3InLFxuICBvcmRlcjogJ29yZGVyJyxcbiAgb3JpZW50OiAnb3JpZW50JyxcbiAgb3JpZW50YXRpb246ICdvcmllbnRhdGlvbicsXG4gIG9yaWdpbjogJ29yaWdpbicsXG4gIG92ZXJmbG93OiAnb3ZlcmZsb3cnLFxuICBvdmVybGluZXBvc2l0aW9uOiAnb3ZlcmxpbmVQb3NpdGlvbicsXG4gICdvdmVybGluZS1wb3NpdGlvbic6ICdvdmVybGluZVBvc2l0aW9uJyxcbiAgb3ZlcmxpbmV0aGlja25lc3M6ICdvdmVybGluZVRoaWNrbmVzcycsXG4gICdvdmVybGluZS10aGlja25lc3MnOiAnb3ZlcmxpbmVUaGlja25lc3MnLFxuICBwYWludG9yZGVyOiAncGFpbnRPcmRlcicsXG4gICdwYWludC1vcmRlcic6ICdwYWludE9yZGVyJyxcbiAgcGFub3NlMTogJ3Bhbm9zZTEnLFxuICAncGFub3NlLTEnOiAncGFub3NlMScsXG4gIHBhdGhsZW5ndGg6ICdwYXRoTGVuZ3RoJyxcbiAgcGF0dGVybmNvbnRlbnR1bml0czogJ3BhdHRlcm5Db250ZW50VW5pdHMnLFxuICBwYXR0ZXJudHJhbnNmb3JtOiAncGF0dGVyblRyYW5zZm9ybScsXG4gIHBhdHRlcm51bml0czogJ3BhdHRlcm5Vbml0cycsXG4gIHBvaW50ZXJldmVudHM6ICdwb2ludGVyRXZlbnRzJyxcbiAgJ3BvaW50ZXItZXZlbnRzJzogJ3BvaW50ZXJFdmVudHMnLFxuICBwb2ludHM6ICdwb2ludHMnLFxuICBwb2ludHNhdHg6ICdwb2ludHNBdFgnLFxuICBwb2ludHNhdHk6ICdwb2ludHNBdFknLFxuICBwb2ludHNhdHo6ICdwb2ludHNBdFonLFxuICBwcmVmaXg6ICdwcmVmaXgnLFxuICBwcmVzZXJ2ZWFscGhhOiAncHJlc2VydmVBbHBoYScsXG4gIHByZXNlcnZlYXNwZWN0cmF0aW86ICdwcmVzZXJ2ZUFzcGVjdFJhdGlvJyxcbiAgcHJpbWl0aXZldW5pdHM6ICdwcmltaXRpdmVVbml0cycsXG4gIHByb3BlcnR5OiAncHJvcGVydHknLFxuICByOiAncicsXG4gIHJhZGl1czogJ3JhZGl1cycsXG4gIHJlZng6ICdyZWZYJyxcbiAgcmVmeTogJ3JlZlknLFxuICByZW5kZXJpbmdpbnRlbnQ6ICdyZW5kZXJpbmdJbnRlbnQnLFxuICAncmVuZGVyaW5nLWludGVudCc6ICdyZW5kZXJpbmdJbnRlbnQnLFxuICByZXBlYXRjb3VudDogJ3JlcGVhdENvdW50JyxcbiAgcmVwZWF0ZHVyOiAncmVwZWF0RHVyJyxcbiAgcmVxdWlyZWRleHRlbnNpb25zOiAncmVxdWlyZWRFeHRlbnNpb25zJyxcbiAgcmVxdWlyZWRmZWF0dXJlczogJ3JlcXVpcmVkRmVhdHVyZXMnLFxuICByZXNvdXJjZTogJ3Jlc291cmNlJyxcbiAgcmVzdGFydDogJ3Jlc3RhcnQnLFxuICByZXN1bHQ6ICdyZXN1bHQnLFxuICByZXN1bHRzOiAncmVzdWx0cycsXG4gIHJvdGF0ZTogJ3JvdGF0ZScsXG4gIHJ4OiAncngnLFxuICByeTogJ3J5JyxcbiAgc2NhbGU6ICdzY2FsZScsXG4gIHNlY3VyaXR5OiAnc2VjdXJpdHknLFxuICBzZWVkOiAnc2VlZCcsXG4gIHNoYXBlcmVuZGVyaW5nOiAnc2hhcGVSZW5kZXJpbmcnLFxuICAnc2hhcGUtcmVuZGVyaW5nJzogJ3NoYXBlUmVuZGVyaW5nJyxcbiAgc2xvcGU6ICdzbG9wZScsXG4gIHNwYWNpbmc6ICdzcGFjaW5nJyxcbiAgc3BlY3VsYXJjb25zdGFudDogJ3NwZWN1bGFyQ29uc3RhbnQnLFxuICBzcGVjdWxhcmV4cG9uZW50OiAnc3BlY3VsYXJFeHBvbmVudCcsXG4gIHNwZWVkOiAnc3BlZWQnLFxuICBzcHJlYWRtZXRob2Q6ICdzcHJlYWRNZXRob2QnLFxuICBzdGFydG9mZnNldDogJ3N0YXJ0T2Zmc2V0JyxcbiAgc3RkZGV2aWF0aW9uOiAnc3RkRGV2aWF0aW9uJyxcbiAgc3RlbWg6ICdzdGVtaCcsXG4gIHN0ZW12OiAnc3RlbXYnLFxuICBzdGl0Y2h0aWxlczogJ3N0aXRjaFRpbGVzJyxcbiAgc3RvcGNvbG9yOiAnc3RvcENvbG9yJyxcbiAgJ3N0b3AtY29sb3InOiAnc3RvcENvbG9yJyxcbiAgc3RvcG9wYWNpdHk6ICdzdG9wT3BhY2l0eScsXG4gICdzdG9wLW9wYWNpdHknOiAnc3RvcE9wYWNpdHknLFxuICBzdHJpa2V0aHJvdWdocG9zaXRpb246ICdzdHJpa2V0aHJvdWdoUG9zaXRpb24nLFxuICAnc3RyaWtldGhyb3VnaC1wb3NpdGlvbic6ICdzdHJpa2V0aHJvdWdoUG9zaXRpb24nLFxuICBzdHJpa2V0aHJvdWdodGhpY2tuZXNzOiAnc3RyaWtldGhyb3VnaFRoaWNrbmVzcycsXG4gICdzdHJpa2V0aHJvdWdoLXRoaWNrbmVzcyc6ICdzdHJpa2V0aHJvdWdoVGhpY2tuZXNzJyxcbiAgc3RyaW5nOiAnc3RyaW5nJyxcbiAgc3Ryb2tlOiAnc3Ryb2tlJyxcbiAgc3Ryb2tlZGFzaGFycmF5OiAnc3Ryb2tlRGFzaGFycmF5JyxcbiAgJ3N0cm9rZS1kYXNoYXJyYXknOiAnc3Ryb2tlRGFzaGFycmF5JyxcbiAgc3Ryb2tlZGFzaG9mZnNldDogJ3N0cm9rZURhc2hvZmZzZXQnLFxuICAnc3Ryb2tlLWRhc2hvZmZzZXQnOiAnc3Ryb2tlRGFzaG9mZnNldCcsXG4gIHN0cm9rZWxpbmVjYXA6ICdzdHJva2VMaW5lY2FwJyxcbiAgJ3N0cm9rZS1saW5lY2FwJzogJ3N0cm9rZUxpbmVjYXAnLFxuICBzdHJva2VsaW5lam9pbjogJ3N0cm9rZUxpbmVqb2luJyxcbiAgJ3N0cm9rZS1saW5lam9pbic6ICdzdHJva2VMaW5lam9pbicsXG4gIHN0cm9rZW1pdGVybGltaXQ6ICdzdHJva2VNaXRlcmxpbWl0JyxcbiAgJ3N0cm9rZS1taXRlcmxpbWl0JzogJ3N0cm9rZU1pdGVybGltaXQnLFxuICBzdHJva2V3aWR0aDogJ3N0cm9rZVdpZHRoJyxcbiAgJ3N0cm9rZS13aWR0aCc6ICdzdHJva2VXaWR0aCcsXG4gIHN0cm9rZW9wYWNpdHk6ICdzdHJva2VPcGFjaXR5JyxcbiAgJ3N0cm9rZS1vcGFjaXR5JzogJ3N0cm9rZU9wYWNpdHknLFxuICBzdXBwcmVzc2NvbnRlbnRlZGl0YWJsZXdhcm5pbmc6ICdzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmcnLFxuICBzdXBwcmVzc2h5ZHJhdGlvbndhcm5pbmc6ICdzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmcnLFxuICBzdXJmYWNlc2NhbGU6ICdzdXJmYWNlU2NhbGUnLFxuICBzeXN0ZW1sYW5ndWFnZTogJ3N5c3RlbUxhbmd1YWdlJyxcbiAgdGFibGV2YWx1ZXM6ICd0YWJsZVZhbHVlcycsXG4gIHRhcmdldHg6ICd0YXJnZXRYJyxcbiAgdGFyZ2V0eTogJ3RhcmdldFknLFxuICB0ZXh0YW5jaG9yOiAndGV4dEFuY2hvcicsXG4gICd0ZXh0LWFuY2hvcic6ICd0ZXh0QW5jaG9yJyxcbiAgdGV4dGRlY29yYXRpb246ICd0ZXh0RGVjb3JhdGlvbicsXG4gICd0ZXh0LWRlY29yYXRpb24nOiAndGV4dERlY29yYXRpb24nLFxuICB0ZXh0bGVuZ3RoOiAndGV4dExlbmd0aCcsXG4gIHRleHRyZW5kZXJpbmc6ICd0ZXh0UmVuZGVyaW5nJyxcbiAgJ3RleHQtcmVuZGVyaW5nJzogJ3RleHRSZW5kZXJpbmcnLFxuICB0bzogJ3RvJyxcbiAgdHJhbnNmb3JtOiAndHJhbnNmb3JtJyxcbiAgdHlwZW9mOiAndHlwZW9mJyxcbiAgdTE6ICd1MScsXG4gIHUyOiAndTInLFxuICB1bmRlcmxpbmVwb3NpdGlvbjogJ3VuZGVybGluZVBvc2l0aW9uJyxcbiAgJ3VuZGVybGluZS1wb3NpdGlvbic6ICd1bmRlcmxpbmVQb3NpdGlvbicsXG4gIHVuZGVybGluZXRoaWNrbmVzczogJ3VuZGVybGluZVRoaWNrbmVzcycsXG4gICd1bmRlcmxpbmUtdGhpY2tuZXNzJzogJ3VuZGVybGluZVRoaWNrbmVzcycsXG4gIHVuaWNvZGU6ICd1bmljb2RlJyxcbiAgdW5pY29kZWJpZGk6ICd1bmljb2RlQmlkaScsXG4gICd1bmljb2RlLWJpZGknOiAndW5pY29kZUJpZGknLFxuICB1bmljb2RlcmFuZ2U6ICd1bmljb2RlUmFuZ2UnLFxuICAndW5pY29kZS1yYW5nZSc6ICd1bmljb2RlUmFuZ2UnLFxuICB1bml0c3BlcmVtOiAndW5pdHNQZXJFbScsXG4gICd1bml0cy1wZXItZW0nOiAndW5pdHNQZXJFbScsXG4gIHVuc2VsZWN0YWJsZTogJ3Vuc2VsZWN0YWJsZScsXG4gIHZhbHBoYWJldGljOiAndkFscGhhYmV0aWMnLFxuICAndi1hbHBoYWJldGljJzogJ3ZBbHBoYWJldGljJyxcbiAgdmFsdWVzOiAndmFsdWVzJyxcbiAgdmVjdG9yZWZmZWN0OiAndmVjdG9yRWZmZWN0JyxcbiAgJ3ZlY3Rvci1lZmZlY3QnOiAndmVjdG9yRWZmZWN0JyxcbiAgdmVyc2lvbjogJ3ZlcnNpb24nLFxuICB2ZXJ0YWR2eTogJ3ZlcnRBZHZZJyxcbiAgJ3ZlcnQtYWR2LXknOiAndmVydEFkdlknLFxuICB2ZXJ0b3JpZ2lueDogJ3ZlcnRPcmlnaW5YJyxcbiAgJ3ZlcnQtb3JpZ2luLXgnOiAndmVydE9yaWdpblgnLFxuICB2ZXJ0b3JpZ2lueTogJ3ZlcnRPcmlnaW5ZJyxcbiAgJ3ZlcnQtb3JpZ2luLXknOiAndmVydE9yaWdpblknLFxuICB2aGFuZ2luZzogJ3ZIYW5naW5nJyxcbiAgJ3YtaGFuZ2luZyc6ICd2SGFuZ2luZycsXG4gIHZpZGVvZ3JhcGhpYzogJ3ZJZGVvZ3JhcGhpYycsXG4gICd2LWlkZW9ncmFwaGljJzogJ3ZJZGVvZ3JhcGhpYycsXG4gIHZpZXdib3g6ICd2aWV3Qm94JyxcbiAgdmlld3RhcmdldDogJ3ZpZXdUYXJnZXQnLFxuICB2aXNpYmlsaXR5OiAndmlzaWJpbGl0eScsXG4gIHZtYXRoZW1hdGljYWw6ICd2TWF0aGVtYXRpY2FsJyxcbiAgJ3YtbWF0aGVtYXRpY2FsJzogJ3ZNYXRoZW1hdGljYWwnLFxuICB2b2NhYjogJ3ZvY2FiJyxcbiAgd2lkdGhzOiAnd2lkdGhzJyxcbiAgd29yZHNwYWNpbmc6ICd3b3JkU3BhY2luZycsXG4gICd3b3JkLXNwYWNpbmcnOiAnd29yZFNwYWNpbmcnLFxuICB3cml0aW5nbW9kZTogJ3dyaXRpbmdNb2RlJyxcbiAgJ3dyaXRpbmctbW9kZSc6ICd3cml0aW5nTW9kZScsXG4gIHgxOiAneDEnLFxuICB4MjogJ3gyJyxcbiAgeDogJ3gnLFxuICB4Y2hhbm5lbHNlbGVjdG9yOiAneENoYW5uZWxTZWxlY3RvcicsXG4gIHhoZWlnaHQ6ICd4SGVpZ2h0JyxcbiAgJ3gtaGVpZ2h0JzogJ3hIZWlnaHQnLFxuICB4bGlua2FjdHVhdGU6ICd4bGlua0FjdHVhdGUnLFxuICAneGxpbms6YWN0dWF0ZSc6ICd4bGlua0FjdHVhdGUnLFxuICB4bGlua2FyY3JvbGU6ICd4bGlua0FyY3JvbGUnLFxuICAneGxpbms6YXJjcm9sZSc6ICd4bGlua0FyY3JvbGUnLFxuICB4bGlua2hyZWY6ICd4bGlua0hyZWYnLFxuICAneGxpbms6aHJlZic6ICd4bGlua0hyZWYnLFxuICB4bGlua3JvbGU6ICd4bGlua1JvbGUnLFxuICAneGxpbms6cm9sZSc6ICd4bGlua1JvbGUnLFxuICB4bGlua3Nob3c6ICd4bGlua1Nob3cnLFxuICAneGxpbms6c2hvdyc6ICd4bGlua1Nob3cnLFxuICB4bGlua3RpdGxlOiAneGxpbmtUaXRsZScsXG4gICd4bGluazp0aXRsZSc6ICd4bGlua1RpdGxlJyxcbiAgeGxpbmt0eXBlOiAneGxpbmtUeXBlJyxcbiAgJ3hsaW5rOnR5cGUnOiAneGxpbmtUeXBlJyxcbiAgeG1sYmFzZTogJ3htbEJhc2UnLFxuICAneG1sOmJhc2UnOiAneG1sQmFzZScsXG4gIHhtbGxhbmc6ICd4bWxMYW5nJyxcbiAgJ3htbDpsYW5nJzogJ3htbExhbmcnLFxuICB4bWxuczogJ3htbG5zJyxcbiAgJ3htbDpzcGFjZSc6ICd4bWxTcGFjZScsXG4gIHhtbG5zeGxpbms6ICd4bWxuc1hsaW5rJyxcbiAgJ3htbG5zOnhsaW5rJzogJ3htbG5zWGxpbmsnLFxuICB4bWxzcGFjZTogJ3htbFNwYWNlJyxcbiAgeTE6ICd5MScsXG4gIHkyOiAneTInLFxuICB5OiAneScsXG4gIHljaGFubmVsc2VsZWN0b3I6ICd5Q2hhbm5lbFNlbGVjdG9yJyxcbiAgejogJ3onLFxuICB6b29tYW5kcGFuOiAnem9vbUFuZFBhbidcbn07XG5cbnZhciBhcmlhUHJvcGVydGllcyA9IHtcbiAgJ2FyaWEtY3VycmVudCc6IDAsXG4gIC8vIHN0YXRlXG4gICdhcmlhLWRldGFpbHMnOiAwLFxuICAnYXJpYS1kaXNhYmxlZCc6IDAsXG4gIC8vIHN0YXRlXG4gICdhcmlhLWhpZGRlbic6IDAsXG4gIC8vIHN0YXRlXG4gICdhcmlhLWludmFsaWQnOiAwLFxuICAvLyBzdGF0ZVxuICAnYXJpYS1rZXlzaG9ydGN1dHMnOiAwLFxuICAnYXJpYS1sYWJlbCc6IDAsXG4gICdhcmlhLXJvbGVkZXNjcmlwdGlvbic6IDAsXG4gIC8vIFdpZGdldCBBdHRyaWJ1dGVzXG4gICdhcmlhLWF1dG9jb21wbGV0ZSc6IDAsXG4gICdhcmlhLWNoZWNrZWQnOiAwLFxuICAnYXJpYS1leHBhbmRlZCc6IDAsXG4gICdhcmlhLWhhc3BvcHVwJzogMCxcbiAgJ2FyaWEtbGV2ZWwnOiAwLFxuICAnYXJpYS1tb2RhbCc6IDAsXG4gICdhcmlhLW11bHRpbGluZSc6IDAsXG4gICdhcmlhLW11bHRpc2VsZWN0YWJsZSc6IDAsXG4gICdhcmlhLW9yaWVudGF0aW9uJzogMCxcbiAgJ2FyaWEtcGxhY2Vob2xkZXInOiAwLFxuICAnYXJpYS1wcmVzc2VkJzogMCxcbiAgJ2FyaWEtcmVhZG9ubHknOiAwLFxuICAnYXJpYS1yZXF1aXJlZCc6IDAsXG4gICdhcmlhLXNlbGVjdGVkJzogMCxcbiAgJ2FyaWEtc29ydCc6IDAsXG4gICdhcmlhLXZhbHVlbWF4JzogMCxcbiAgJ2FyaWEtdmFsdWVtaW4nOiAwLFxuICAnYXJpYS12YWx1ZW5vdyc6IDAsXG4gICdhcmlhLXZhbHVldGV4dCc6IDAsXG4gIC8vIExpdmUgUmVnaW9uIEF0dHJpYnV0ZXNcbiAgJ2FyaWEtYXRvbWljJzogMCxcbiAgJ2FyaWEtYnVzeSc6IDAsXG4gICdhcmlhLWxpdmUnOiAwLFxuICAnYXJpYS1yZWxldmFudCc6IDAsXG4gIC8vIERyYWctYW5kLURyb3AgQXR0cmlidXRlc1xuICAnYXJpYS1kcm9wZWZmZWN0JzogMCxcbiAgJ2FyaWEtZ3JhYmJlZCc6IDAsXG4gIC8vIFJlbGF0aW9uc2hpcCBBdHRyaWJ1dGVzXG4gICdhcmlhLWFjdGl2ZWRlc2NlbmRhbnQnOiAwLFxuICAnYXJpYS1jb2xjb3VudCc6IDAsXG4gICdhcmlhLWNvbGluZGV4JzogMCxcbiAgJ2FyaWEtY29sc3Bhbic6IDAsXG4gICdhcmlhLWNvbnRyb2xzJzogMCxcbiAgJ2FyaWEtZGVzY3JpYmVkYnknOiAwLFxuICAnYXJpYS1lcnJvcm1lc3NhZ2UnOiAwLFxuICAnYXJpYS1mbG93dG8nOiAwLFxuICAnYXJpYS1sYWJlbGxlZGJ5JzogMCxcbiAgJ2FyaWEtb3ducyc6IDAsXG4gICdhcmlhLXBvc2luc2V0JzogMCxcbiAgJ2FyaWEtcm93Y291bnQnOiAwLFxuICAnYXJpYS1yb3dpbmRleCc6IDAsXG4gICdhcmlhLXJvd3NwYW4nOiAwLFxuICAnYXJpYS1zZXRzaXplJzogMFxufTtcblxudmFyIHdhcm5lZFByb3BlcnRpZXMgPSB7fTtcbnZhciByQVJJQSA9IG5ldyBSZWdFeHAoJ14oYXJpYSktWycgKyBBVFRSSUJVVEVfTkFNRV9DSEFSICsgJ10qJCcpO1xudmFyIHJBUklBQ2FtZWwgPSBuZXcgUmVnRXhwKCdeKGFyaWEpW0EtWl1bJyArIEFUVFJJQlVURV9OQU1FX0NIQVIgKyAnXSokJyk7XG52YXIgaGFzT3duUHJvcGVydHkkMSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG5cbmZ1bmN0aW9uIHZhbGlkYXRlUHJvcGVydHkodGFnTmFtZSwgbmFtZSkge1xuICB7XG4gICAgaWYgKGhhc093blByb3BlcnR5JDEuY2FsbCh3YXJuZWRQcm9wZXJ0aWVzLCBuYW1lKSAmJiB3YXJuZWRQcm9wZXJ0aWVzW25hbWVdKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAockFSSUFDYW1lbC50ZXN0KG5hbWUpKSB7XG4gICAgICB2YXIgYXJpYU5hbWUgPSAnYXJpYS0nICsgbmFtZS5zbGljZSg0KS50b0xvd2VyQ2FzZSgpO1xuICAgICAgdmFyIGNvcnJlY3ROYW1lID0gYXJpYVByb3BlcnRpZXMuaGFzT3duUHJvcGVydHkoYXJpYU5hbWUpID8gYXJpYU5hbWUgOiBudWxsOyAvLyBJZiB0aGlzIGlzIGFuIGFyaWEtKiBhdHRyaWJ1dGUsIGJ1dCBpcyBub3QgbGlzdGVkIGluIHRoZSBrbm93biBET01cbiAgICAgIC8vIERPTSBwcm9wZXJ0aWVzLCB0aGVuIGl0IGlzIGFuIGludmFsaWQgYXJpYS0qIGF0dHJpYnV0ZS5cblxuICAgICAgaWYgKGNvcnJlY3ROYW1lID09IG51bGwpIHtcbiAgICAgICAgZXJyb3IoJ0ludmFsaWQgQVJJQSBhdHRyaWJ1dGUgYCVzYC4gQVJJQSBhdHRyaWJ1dGVzIGZvbGxvdyB0aGUgcGF0dGVybiBhcmlhLSogYW5kIG11c3QgYmUgbG93ZXJjYXNlLicsIG5hbWUpO1xuXG4gICAgICAgIHdhcm5lZFByb3BlcnRpZXNbbmFtZV0gPSB0cnVlO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0gLy8gYXJpYS0qIGF0dHJpYnV0ZXMgc2hvdWxkIGJlIGxvd2VyY2FzZTsgc3VnZ2VzdCB0aGUgbG93ZXJjYXNlIHZlcnNpb24uXG5cblxuICAgICAgaWYgKG5hbWUgIT09IGNvcnJlY3ROYW1lKSB7XG4gICAgICAgIGVycm9yKCdJbnZhbGlkIEFSSUEgYXR0cmlidXRlIGAlc2AuIERpZCB5b3UgbWVhbiBgJXNgPycsIG5hbWUsIGNvcnJlY3ROYW1lKTtcblxuICAgICAgICB3YXJuZWRQcm9wZXJ0aWVzW25hbWVdID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHJBUklBLnRlc3QobmFtZSkpIHtcbiAgICAgIHZhciBsb3dlckNhc2VkTmFtZSA9IG5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgIHZhciBzdGFuZGFyZE5hbWUgPSBhcmlhUHJvcGVydGllcy5oYXNPd25Qcm9wZXJ0eShsb3dlckNhc2VkTmFtZSkgPyBsb3dlckNhc2VkTmFtZSA6IG51bGw7IC8vIElmIHRoaXMgaXMgYW4gYXJpYS0qIGF0dHJpYnV0ZSwgYnV0IGlzIG5vdCBsaXN0ZWQgaW4gdGhlIGtub3duIERPTVxuICAgICAgLy8gRE9NIHByb3BlcnRpZXMsIHRoZW4gaXQgaXMgYW4gaW52YWxpZCBhcmlhLSogYXR0cmlidXRlLlxuXG4gICAgICBpZiAoc3RhbmRhcmROYW1lID09IG51bGwpIHtcbiAgICAgICAgd2FybmVkUHJvcGVydGllc1tuYW1lXSA9IHRydWU7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH0gLy8gYXJpYS0qIGF0dHJpYnV0ZXMgc2hvdWxkIGJlIGxvd2VyY2FzZTsgc3VnZ2VzdCB0aGUgbG93ZXJjYXNlIHZlcnNpb24uXG5cblxuICAgICAgaWYgKG5hbWUgIT09IHN0YW5kYXJkTmFtZSkge1xuICAgICAgICBlcnJvcignVW5rbm93biBBUklBIGF0dHJpYnV0ZSBgJXNgLiBEaWQgeW91IG1lYW4gYCVzYD8nLCBuYW1lLCBzdGFuZGFyZE5hbWUpO1xuXG4gICAgICAgIHdhcm5lZFByb3BlcnRpZXNbbmFtZV0gPSB0cnVlO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gd2FybkludmFsaWRBUklBUHJvcHModHlwZSwgcHJvcHMpIHtcbiAge1xuICAgIHZhciBpbnZhbGlkUHJvcHMgPSBbXTtcblxuICAgIGZvciAodmFyIGtleSBpbiBwcm9wcykge1xuICAgICAgdmFyIGlzVmFsaWQgPSB2YWxpZGF0ZVByb3BlcnR5KHR5cGUsIGtleSk7XG5cbiAgICAgIGlmICghaXNWYWxpZCkge1xuICAgICAgICBpbnZhbGlkUHJvcHMucHVzaChrZXkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciB1bmtub3duUHJvcFN0cmluZyA9IGludmFsaWRQcm9wcy5tYXAoZnVuY3Rpb24gKHByb3ApIHtcbiAgICAgIHJldHVybiAnYCcgKyBwcm9wICsgJ2AnO1xuICAgIH0pLmpvaW4oJywgJyk7XG5cbiAgICBpZiAoaW52YWxpZFByb3BzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgZXJyb3IoJ0ludmFsaWQgYXJpYSBwcm9wICVzIG9uIDwlcz4gdGFnLiAnICsgJ0ZvciBkZXRhaWxzLCBzZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL2ludmFsaWQtYXJpYS1wcm9wcycsIHVua25vd25Qcm9wU3RyaW5nLCB0eXBlKTtcbiAgICB9IGVsc2UgaWYgKGludmFsaWRQcm9wcy5sZW5ndGggPiAxKSB7XG4gICAgICBlcnJvcignSW52YWxpZCBhcmlhIHByb3BzICVzIG9uIDwlcz4gdGFnLiAnICsgJ0ZvciBkZXRhaWxzLCBzZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL2ludmFsaWQtYXJpYS1wcm9wcycsIHVua25vd25Qcm9wU3RyaW5nLCB0eXBlKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVQcm9wZXJ0aWVzKHR5cGUsIHByb3BzKSB7XG4gIGlmIChpc0N1c3RvbUNvbXBvbmVudCh0eXBlLCBwcm9wcykpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICB3YXJuSW52YWxpZEFSSUFQcm9wcyh0eXBlLCBwcm9wcyk7XG59XG5cbnZhciBkaWRXYXJuVmFsdWVOdWxsID0gZmFsc2U7XG5mdW5jdGlvbiB2YWxpZGF0ZVByb3BlcnRpZXMkMSh0eXBlLCBwcm9wcykge1xuICB7XG4gICAgaWYgKHR5cGUgIT09ICdpbnB1dCcgJiYgdHlwZSAhPT0gJ3RleHRhcmVhJyAmJiB0eXBlICE9PSAnc2VsZWN0Jykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChwcm9wcyAhPSBudWxsICYmIHByb3BzLnZhbHVlID09PSBudWxsICYmICFkaWRXYXJuVmFsdWVOdWxsKSB7XG4gICAgICBkaWRXYXJuVmFsdWVOdWxsID0gdHJ1ZTtcblxuICAgICAgaWYgKHR5cGUgPT09ICdzZWxlY3QnICYmIHByb3BzLm11bHRpcGxlKSB7XG4gICAgICAgIGVycm9yKCdgdmFsdWVgIHByb3Agb24gYCVzYCBzaG91bGQgbm90IGJlIG51bGwuICcgKyAnQ29uc2lkZXIgdXNpbmcgYW4gZW1wdHkgYXJyYXkgd2hlbiBgbXVsdGlwbGVgIGlzIHNldCB0byBgdHJ1ZWAgJyArICd0byBjbGVhciB0aGUgY29tcG9uZW50IG9yIGB1bmRlZmluZWRgIGZvciB1bmNvbnRyb2xsZWQgY29tcG9uZW50cy4nLCB0eXBlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVycm9yKCdgdmFsdWVgIHByb3Agb24gYCVzYCBzaG91bGQgbm90IGJlIG51bGwuICcgKyAnQ29uc2lkZXIgdXNpbmcgYW4gZW1wdHkgc3RyaW5nIHRvIGNsZWFyIHRoZSBjb21wb25lbnQgb3IgYHVuZGVmaW5lZGAgJyArICdmb3IgdW5jb250cm9sbGVkIGNvbXBvbmVudHMuJywgdHlwZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbnZhciB2YWxpZGF0ZVByb3BlcnR5JDEgPSBmdW5jdGlvbiAoKSB7fTtcblxue1xuICB2YXIgd2FybmVkUHJvcGVydGllcyQxID0ge307XG4gIHZhciBfaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuICB2YXIgRVZFTlRfTkFNRV9SRUdFWCA9IC9eb24uLztcbiAgdmFyIElOVkFMSURfRVZFTlRfTkFNRV9SRUdFWCA9IC9eb25bXkEtWl0vO1xuICB2YXIgckFSSUEkMSA9IG5ldyBSZWdFeHAoJ14oYXJpYSktWycgKyBBVFRSSUJVVEVfTkFNRV9DSEFSICsgJ10qJCcpO1xuICB2YXIgckFSSUFDYW1lbCQxID0gbmV3IFJlZ0V4cCgnXihhcmlhKVtBLVpdWycgKyBBVFRSSUJVVEVfTkFNRV9DSEFSICsgJ10qJCcpO1xuXG4gIHZhbGlkYXRlUHJvcGVydHkkMSA9IGZ1bmN0aW9uICh0YWdOYW1lLCBuYW1lLCB2YWx1ZSwgZXZlbnRSZWdpc3RyeSkge1xuICAgIGlmIChfaGFzT3duUHJvcGVydHkuY2FsbCh3YXJuZWRQcm9wZXJ0aWVzJDEsIG5hbWUpICYmIHdhcm5lZFByb3BlcnRpZXMkMVtuYW1lXSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgdmFyIGxvd2VyQ2FzZWROYW1lID0gbmFtZS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgaWYgKGxvd2VyQ2FzZWROYW1lID09PSAnb25mb2N1c2luJyB8fCBsb3dlckNhc2VkTmFtZSA9PT0gJ29uZm9jdXNvdXQnKSB7XG4gICAgICBlcnJvcignUmVhY3QgdXNlcyBvbkZvY3VzIGFuZCBvbkJsdXIgaW5zdGVhZCBvZiBvbkZvY3VzSW4gYW5kIG9uRm9jdXNPdXQuICcgKyAnQWxsIFJlYWN0IGV2ZW50cyBhcmUgbm9ybWFsaXplZCB0byBidWJibGUsIHNvIG9uRm9jdXNJbiBhbmQgb25Gb2N1c091dCAnICsgJ2FyZSBub3QgbmVlZGVkL3N1cHBvcnRlZCBieSBSZWFjdC4nKTtcblxuICAgICAgd2FybmVkUHJvcGVydGllcyQxW25hbWVdID0gdHJ1ZTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gLy8gV2UgY2FuJ3QgcmVseSBvbiB0aGUgZXZlbnQgc3lzdGVtIGJlaW5nIGluamVjdGVkIG9uIHRoZSBzZXJ2ZXIuXG5cblxuICAgIGlmIChldmVudFJlZ2lzdHJ5ICE9IG51bGwpIHtcbiAgICAgIHZhciByZWdpc3RyYXRpb25OYW1lRGVwZW5kZW5jaWVzID0gZXZlbnRSZWdpc3RyeS5yZWdpc3RyYXRpb25OYW1lRGVwZW5kZW5jaWVzLFxuICAgICAgICAgIHBvc3NpYmxlUmVnaXN0cmF0aW9uTmFtZXMgPSBldmVudFJlZ2lzdHJ5LnBvc3NpYmxlUmVnaXN0cmF0aW9uTmFtZXM7XG5cbiAgICAgIGlmIChyZWdpc3RyYXRpb25OYW1lRGVwZW5kZW5jaWVzLmhhc093blByb3BlcnR5KG5hbWUpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICB2YXIgcmVnaXN0cmF0aW9uTmFtZSA9IHBvc3NpYmxlUmVnaXN0cmF0aW9uTmFtZXMuaGFzT3duUHJvcGVydHkobG93ZXJDYXNlZE5hbWUpID8gcG9zc2libGVSZWdpc3RyYXRpb25OYW1lc1tsb3dlckNhc2VkTmFtZV0gOiBudWxsO1xuXG4gICAgICBpZiAocmVnaXN0cmF0aW9uTmFtZSAhPSBudWxsKSB7XG4gICAgICAgIGVycm9yKCdJbnZhbGlkIGV2ZW50IGhhbmRsZXIgcHJvcGVydHkgYCVzYC4gRGlkIHlvdSBtZWFuIGAlc2A/JywgbmFtZSwgcmVnaXN0cmF0aW9uTmFtZSk7XG5cbiAgICAgICAgd2FybmVkUHJvcGVydGllcyQxW25hbWVdID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChFVkVOVF9OQU1FX1JFR0VYLnRlc3QobmFtZSkpIHtcbiAgICAgICAgZXJyb3IoJ1Vua25vd24gZXZlbnQgaGFuZGxlciBwcm9wZXJ0eSBgJXNgLiBJdCB3aWxsIGJlIGlnbm9yZWQuJywgbmFtZSk7XG5cbiAgICAgICAgd2FybmVkUHJvcGVydGllcyQxW25hbWVdID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChFVkVOVF9OQU1FX1JFR0VYLnRlc3QobmFtZSkpIHtcbiAgICAgIC8vIElmIG5vIGV2ZW50IHBsdWdpbnMgaGF2ZSBiZWVuIGluamVjdGVkLCB3ZSBhcmUgaW4gYSBzZXJ2ZXIgZW52aXJvbm1lbnQuXG4gICAgICAvLyBTbyB3ZSBjYW4ndCB0ZWxsIGlmIHRoZSBldmVudCBuYW1lIGlzIGNvcnJlY3QgZm9yIHN1cmUsIGJ1dCB3ZSBjYW4gZmlsdGVyXG4gICAgICAvLyBvdXQga25vd24gYmFkIG9uZXMgbGlrZSBgb25jbGlja2AuIFdlIGNhbid0IHN1Z2dlc3QgYSBzcGVjaWZpYyByZXBsYWNlbWVudCB0aG91Z2guXG4gICAgICBpZiAoSU5WQUxJRF9FVkVOVF9OQU1FX1JFR0VYLnRlc3QobmFtZSkpIHtcbiAgICAgICAgZXJyb3IoJ0ludmFsaWQgZXZlbnQgaGFuZGxlciBwcm9wZXJ0eSBgJXNgLiAnICsgJ1JlYWN0IGV2ZW50cyB1c2UgdGhlIGNhbWVsQ2FzZSBuYW1pbmcgY29udmVudGlvbiwgZm9yIGV4YW1wbGUgYG9uQ2xpY2tgLicsIG5hbWUpO1xuICAgICAgfVxuXG4gICAgICB3YXJuZWRQcm9wZXJ0aWVzJDFbbmFtZV0gPSB0cnVlO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSAvLyBMZXQgdGhlIEFSSUEgYXR0cmlidXRlIGhvb2sgdmFsaWRhdGUgQVJJQSBhdHRyaWJ1dGVzXG5cblxuICAgIGlmIChyQVJJQSQxLnRlc3QobmFtZSkgfHwgckFSSUFDYW1lbCQxLnRlc3QobmFtZSkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmIChsb3dlckNhc2VkTmFtZSA9PT0gJ2lubmVyaHRtbCcpIHtcbiAgICAgIGVycm9yKCdEaXJlY3RseSBzZXR0aW5nIHByb3BlcnR5IGBpbm5lckhUTUxgIGlzIG5vdCBwZXJtaXR0ZWQuICcgKyAnRm9yIG1vcmUgaW5mb3JtYXRpb24sIGxvb2t1cCBkb2N1bWVudGF0aW9uIG9uIGBkYW5nZXJvdXNseVNldElubmVySFRNTGAuJyk7XG5cbiAgICAgIHdhcm5lZFByb3BlcnRpZXMkMVtuYW1lXSA9IHRydWU7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAobG93ZXJDYXNlZE5hbWUgPT09ICdhcmlhJykge1xuICAgICAgZXJyb3IoJ1RoZSBgYXJpYWAgYXR0cmlidXRlIGlzIHJlc2VydmVkIGZvciBmdXR1cmUgdXNlIGluIFJlYWN0LiAnICsgJ1Bhc3MgaW5kaXZpZHVhbCBgYXJpYS1gIGF0dHJpYnV0ZXMgaW5zdGVhZC4nKTtcblxuICAgICAgd2FybmVkUHJvcGVydGllcyQxW25hbWVdID0gdHJ1ZTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmIChsb3dlckNhc2VkTmFtZSA9PT0gJ2lzJyAmJiB2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIGVycm9yKCdSZWNlaXZlZCBhIGAlc2AgZm9yIGEgc3RyaW5nIGF0dHJpYnV0ZSBgaXNgLiBJZiB0aGlzIGlzIGV4cGVjdGVkLCBjYXN0ICcgKyAndGhlIHZhbHVlIHRvIGEgc3RyaW5nLicsIHR5cGVvZiB2YWx1ZSk7XG5cbiAgICAgIHdhcm5lZFByb3BlcnRpZXMkMVtuYW1lXSA9IHRydWU7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyAmJiBpc05hTih2YWx1ZSkpIHtcbiAgICAgIGVycm9yKCdSZWNlaXZlZCBOYU4gZm9yIHRoZSBgJXNgIGF0dHJpYnV0ZS4gSWYgdGhpcyBpcyBleHBlY3RlZCwgY2FzdCAnICsgJ3RoZSB2YWx1ZSB0byBhIHN0cmluZy4nLCBuYW1lKTtcblxuICAgICAgd2FybmVkUHJvcGVydGllcyQxW25hbWVdID0gdHJ1ZTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHZhciBwcm9wZXJ0eUluZm8gPSBnZXRQcm9wZXJ0eUluZm8obmFtZSk7XG4gICAgdmFyIGlzUmVzZXJ2ZWQgPSBwcm9wZXJ0eUluZm8gIT09IG51bGwgJiYgcHJvcGVydHlJbmZvLnR5cGUgPT09IFJFU0VSVkVEOyAvLyBLbm93biBhdHRyaWJ1dGVzIHNob3VsZCBtYXRjaCB0aGUgY2FzaW5nIHNwZWNpZmllZCBpbiB0aGUgcHJvcGVydHkgY29uZmlnLlxuXG4gICAgaWYgKHBvc3NpYmxlU3RhbmRhcmROYW1lcy5oYXNPd25Qcm9wZXJ0eShsb3dlckNhc2VkTmFtZSkpIHtcbiAgICAgIHZhciBzdGFuZGFyZE5hbWUgPSBwb3NzaWJsZVN0YW5kYXJkTmFtZXNbbG93ZXJDYXNlZE5hbWVdO1xuXG4gICAgICBpZiAoc3RhbmRhcmROYW1lICE9PSBuYW1lKSB7XG4gICAgICAgIGVycm9yKCdJbnZhbGlkIERPTSBwcm9wZXJ0eSBgJXNgLiBEaWQgeW91IG1lYW4gYCVzYD8nLCBuYW1lLCBzdGFuZGFyZE5hbWUpO1xuXG4gICAgICAgIHdhcm5lZFByb3BlcnRpZXMkMVtuYW1lXSA9IHRydWU7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoIWlzUmVzZXJ2ZWQgJiYgbmFtZSAhPT0gbG93ZXJDYXNlZE5hbWUpIHtcbiAgICAgIC8vIFVua25vd24gYXR0cmlidXRlcyBzaG91bGQgaGF2ZSBsb3dlcmNhc2UgY2FzaW5nIHNpbmNlIHRoYXQncyBob3cgdGhleVxuICAgICAgLy8gd2lsbCBiZSBjYXNlZCBhbnl3YXkgd2l0aCBzZXJ2ZXIgcmVuZGVyaW5nLlxuICAgICAgZXJyb3IoJ1JlYWN0IGRvZXMgbm90IHJlY29nbml6ZSB0aGUgYCVzYCBwcm9wIG9uIGEgRE9NIGVsZW1lbnQuIElmIHlvdSAnICsgJ2ludGVudGlvbmFsbHkgd2FudCBpdCB0byBhcHBlYXIgaW4gdGhlIERPTSBhcyBhIGN1c3RvbSAnICsgJ2F0dHJpYnV0ZSwgc3BlbGwgaXQgYXMgbG93ZXJjYXNlIGAlc2AgaW5zdGVhZC4gJyArICdJZiB5b3UgYWNjaWRlbnRhbGx5IHBhc3NlZCBpdCBmcm9tIGEgcGFyZW50IGNvbXBvbmVudCwgcmVtb3ZlICcgKyAnaXQgZnJvbSB0aGUgRE9NIGVsZW1lbnQuJywgbmFtZSwgbG93ZXJDYXNlZE5hbWUpO1xuXG4gICAgICB3YXJuZWRQcm9wZXJ0aWVzJDFbbmFtZV0gPSB0cnVlO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nICYmIHNob3VsZFJlbW92ZUF0dHJpYnV0ZVdpdGhXYXJuaW5nKG5hbWUsIHZhbHVlLCBwcm9wZXJ0eUluZm8sIGZhbHNlKSkge1xuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIGVycm9yKCdSZWNlaXZlZCBgJXNgIGZvciBhIG5vbi1ib29sZWFuIGF0dHJpYnV0ZSBgJXNgLlxcblxcbicgKyAnSWYgeW91IHdhbnQgdG8gd3JpdGUgaXQgdG8gdGhlIERPTSwgcGFzcyBhIHN0cmluZyBpbnN0ZWFkOiAnICsgJyVzPVwiJXNcIiBvciAlcz17dmFsdWUudG9TdHJpbmcoKX0uJywgdmFsdWUsIG5hbWUsIG5hbWUsIHZhbHVlLCBuYW1lKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVycm9yKCdSZWNlaXZlZCBgJXNgIGZvciBhIG5vbi1ib29sZWFuIGF0dHJpYnV0ZSBgJXNgLlxcblxcbicgKyAnSWYgeW91IHdhbnQgdG8gd3JpdGUgaXQgdG8gdGhlIERPTSwgcGFzcyBhIHN0cmluZyBpbnN0ZWFkOiAnICsgJyVzPVwiJXNcIiBvciAlcz17dmFsdWUudG9TdHJpbmcoKX0uXFxuXFxuJyArICdJZiB5b3UgdXNlZCB0byBjb25kaXRpb25hbGx5IG9taXQgaXQgd2l0aCAlcz17Y29uZGl0aW9uICYmIHZhbHVlfSwgJyArICdwYXNzICVzPXtjb25kaXRpb24gPyB2YWx1ZSA6IHVuZGVmaW5lZH0gaW5zdGVhZC4nLCB2YWx1ZSwgbmFtZSwgbmFtZSwgdmFsdWUsIG5hbWUsIG5hbWUsIG5hbWUpO1xuICAgICAgfVxuXG4gICAgICB3YXJuZWRQcm9wZXJ0aWVzJDFbbmFtZV0gPSB0cnVlO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSAvLyBOb3cgdGhhdCB3ZSd2ZSB2YWxpZGF0ZWQgY2FzaW5nLCBkbyBub3QgdmFsaWRhdGVcbiAgICAvLyBkYXRhIHR5cGVzIGZvciByZXNlcnZlZCBwcm9wc1xuXG5cbiAgICBpZiAoaXNSZXNlcnZlZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSAvLyBXYXJuIHdoZW4gYSBrbm93biBhdHRyaWJ1dGUgaXMgYSBiYWQgdHlwZVxuXG5cbiAgICBpZiAoc2hvdWxkUmVtb3ZlQXR0cmlidXRlV2l0aFdhcm5pbmcobmFtZSwgdmFsdWUsIHByb3BlcnR5SW5mbywgZmFsc2UpKSB7XG4gICAgICB3YXJuZWRQcm9wZXJ0aWVzJDFbbmFtZV0gPSB0cnVlO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gLy8gV2FybiB3aGVuIHBhc3NpbmcgdGhlIHN0cmluZ3MgJ2ZhbHNlJyBvciAndHJ1ZScgaW50byBhIGJvb2xlYW4gcHJvcFxuXG5cbiAgICBpZiAoKHZhbHVlID09PSAnZmFsc2UnIHx8IHZhbHVlID09PSAndHJ1ZScpICYmIHByb3BlcnR5SW5mbyAhPT0gbnVsbCAmJiBwcm9wZXJ0eUluZm8udHlwZSA9PT0gQk9PTEVBTikge1xuICAgICAgZXJyb3IoJ1JlY2VpdmVkIHRoZSBzdHJpbmcgYCVzYCBmb3IgdGhlIGJvb2xlYW4gYXR0cmlidXRlIGAlc2AuICcgKyAnJXMgJyArICdEaWQgeW91IG1lYW4gJXM9eyVzfT8nLCB2YWx1ZSwgbmFtZSwgdmFsdWUgPT09ICdmYWxzZScgPyAnVGhlIGJyb3dzZXIgd2lsbCBpbnRlcnByZXQgaXQgYXMgYSB0cnV0aHkgdmFsdWUuJyA6ICdBbHRob3VnaCB0aGlzIHdvcmtzLCBpdCB3aWxsIG5vdCB3b3JrIGFzIGV4cGVjdGVkIGlmIHlvdSBwYXNzIHRoZSBzdHJpbmcgXCJmYWxzZVwiLicsIG5hbWUsIHZhbHVlKTtcblxuICAgICAgd2FybmVkUHJvcGVydGllcyQxW25hbWVdID0gdHJ1ZTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9O1xufVxuXG52YXIgd2FyblVua25vd25Qcm9wZXJ0aWVzID0gZnVuY3Rpb24gKHR5cGUsIHByb3BzLCBldmVudFJlZ2lzdHJ5KSB7XG4gIHtcbiAgICB2YXIgdW5rbm93blByb3BzID0gW107XG5cbiAgICBmb3IgKHZhciBrZXkgaW4gcHJvcHMpIHtcbiAgICAgIHZhciBpc1ZhbGlkID0gdmFsaWRhdGVQcm9wZXJ0eSQxKHR5cGUsIGtleSwgcHJvcHNba2V5XSwgZXZlbnRSZWdpc3RyeSk7XG5cbiAgICAgIGlmICghaXNWYWxpZCkge1xuICAgICAgICB1bmtub3duUHJvcHMucHVzaChrZXkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciB1bmtub3duUHJvcFN0cmluZyA9IHVua25vd25Qcm9wcy5tYXAoZnVuY3Rpb24gKHByb3ApIHtcbiAgICAgIHJldHVybiAnYCcgKyBwcm9wICsgJ2AnO1xuICAgIH0pLmpvaW4oJywgJyk7XG5cbiAgICBpZiAodW5rbm93blByb3BzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgZXJyb3IoJ0ludmFsaWQgdmFsdWUgZm9yIHByb3AgJXMgb24gPCVzPiB0YWcuIEVpdGhlciByZW1vdmUgaXQgZnJvbSB0aGUgZWxlbWVudCwgJyArICdvciBwYXNzIGEgc3RyaW5nIG9yIG51bWJlciB2YWx1ZSB0byBrZWVwIGl0IGluIHRoZSBET00uICcgKyAnRm9yIGRldGFpbHMsIHNlZSBodHRwczovL3JlYWN0anMub3JnL2xpbmsvYXR0cmlidXRlLWJlaGF2aW9yICcsIHVua25vd25Qcm9wU3RyaW5nLCB0eXBlKTtcbiAgICB9IGVsc2UgaWYgKHVua25vd25Qcm9wcy5sZW5ndGggPiAxKSB7XG4gICAgICBlcnJvcignSW52YWxpZCB2YWx1ZXMgZm9yIHByb3BzICVzIG9uIDwlcz4gdGFnLiBFaXRoZXIgcmVtb3ZlIHRoZW0gZnJvbSB0aGUgZWxlbWVudCwgJyArICdvciBwYXNzIGEgc3RyaW5nIG9yIG51bWJlciB2YWx1ZSB0byBrZWVwIHRoZW0gaW4gdGhlIERPTS4gJyArICdGb3IgZGV0YWlscywgc2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9hdHRyaWJ1dGUtYmVoYXZpb3IgJywgdW5rbm93blByb3BTdHJpbmcsIHR5cGUpO1xuICAgIH1cbiAgfVxufTtcblxuZnVuY3Rpb24gdmFsaWRhdGVQcm9wZXJ0aWVzJDIodHlwZSwgcHJvcHMsIGV2ZW50UmVnaXN0cnkpIHtcbiAgaWYgKGlzQ3VzdG9tQ29tcG9uZW50KHR5cGUsIHByb3BzKSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHdhcm5Vbmtub3duUHJvcGVydGllcyh0eXBlLCBwcm9wcywgZXZlbnRSZWdpc3RyeSk7XG59XG5cbnZhciBJU19FVkVOVF9IQU5ETEVfTk9OX01BTkFHRURfTk9ERSA9IDE7XG52YXIgSVNfTk9OX0RFTEVHQVRFRCA9IDEgPDwgMTtcbnZhciBJU19DQVBUVVJFX1BIQVNFID0gMSA8PCAyO1xudmFyIElTX1JFUExBWUVEID0gMSA8PCA0O1xuLy8gc2V0IHRvIExFR0FDWV9GQl9TVVBQT1JULiBMRUdBQ1lfRkJfU1VQUE9SVCBvbmx5IGdldHMgc2V0IHdoZW5cbi8vIHdlIGNhbGwgd2lsbERlZmVyTGF0ZXJGb3JMZWdhY3lGQlN1cHBvcnQsIHRodXMgbm90IGJhaWxpbmcgb3V0XG4vLyB3aWxsIHJlc3VsdCBpbiBlbmRsZXNzIGN5Y2xlcyBsaWtlIGFuIGluZmluaXRlIGxvb3AuXG4vLyBXZSBhbHNvIGRvbid0IHdhbnQgdG8gZGVmZXIgZHVyaW5nIGV2ZW50IHJlcGxheWluZy5cblxudmFyIFNIT1VMRF9OT1RfUFJPQ0VTU19QT0xZRklMTF9FVkVOVF9QTFVHSU5TID0gSVNfRVZFTlRfSEFORExFX05PTl9NQU5BR0VEX05PREUgfCBJU19OT05fREVMRUdBVEVEIHwgSVNfQ0FQVFVSRV9QSEFTRTtcblxuLyoqXG4gKiBHZXRzIHRoZSB0YXJnZXQgbm9kZSBmcm9tIGEgbmF0aXZlIGJyb3dzZXIgZXZlbnQgYnkgYWNjb3VudGluZyBmb3JcbiAqIGluY29uc2lzdGVuY2llcyBpbiBicm93c2VyIERPTSBBUElzLlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSBuYXRpdmVFdmVudCBOYXRpdmUgYnJvd3NlciBldmVudC5cbiAqIEByZXR1cm4ge0RPTUV2ZW50VGFyZ2V0fSBUYXJnZXQgbm9kZS5cbiAqL1xuXG5mdW5jdGlvbiBnZXRFdmVudFRhcmdldChuYXRpdmVFdmVudCkge1xuICAvLyBGYWxsYmFjayB0byBuYXRpdmVFdmVudC5zcmNFbGVtZW50IGZvciBJRTlcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xMjUwNlxuICB2YXIgdGFyZ2V0ID0gbmF0aXZlRXZlbnQudGFyZ2V0IHx8IG5hdGl2ZUV2ZW50LnNyY0VsZW1lbnQgfHwgd2luZG93OyAvLyBOb3JtYWxpemUgU1ZHIDx1c2U+IGVsZW1lbnQgZXZlbnRzICM0OTYzXG5cbiAgaWYgKHRhcmdldC5jb3JyZXNwb25kaW5nVXNlRWxlbWVudCkge1xuICAgIHRhcmdldCA9IHRhcmdldC5jb3JyZXNwb25kaW5nVXNlRWxlbWVudDtcbiAgfSAvLyBTYWZhcmkgbWF5IGZpcmUgZXZlbnRzIG9uIHRleHQgbm9kZXMgKE5vZGUuVEVYVF9OT0RFIGlzIDMpLlxuICAvLyBAc2VlIGh0dHA6Ly93d3cucXVpcmtzbW9kZS5vcmcvanMvZXZlbnRzX3Byb3BlcnRpZXMuaHRtbFxuXG5cbiAgcmV0dXJuIHRhcmdldC5ub2RlVHlwZSA9PT0gVEVYVF9OT0RFID8gdGFyZ2V0LnBhcmVudE5vZGUgOiB0YXJnZXQ7XG59XG5cbnZhciByZXN0b3JlSW1wbCA9IG51bGw7XG52YXIgcmVzdG9yZVRhcmdldCA9IG51bGw7XG52YXIgcmVzdG9yZVF1ZXVlID0gbnVsbDtcblxuZnVuY3Rpb24gcmVzdG9yZVN0YXRlT2ZUYXJnZXQodGFyZ2V0KSB7XG4gIC8vIFdlIHBlcmZvcm0gdGhpcyB0cmFuc2xhdGlvbiBhdCB0aGUgZW5kIG9mIHRoZSBldmVudCBsb29wIHNvIHRoYXQgd2VcbiAgLy8gYWx3YXlzIHJlY2VpdmUgdGhlIGNvcnJlY3QgZmliZXIgaGVyZVxuICB2YXIgaW50ZXJuYWxJbnN0YW5jZSA9IGdldEluc3RhbmNlRnJvbU5vZGUodGFyZ2V0KTtcblxuICBpZiAoIWludGVybmFsSW5zdGFuY2UpIHtcbiAgICAvLyBVbm1vdW50ZWRcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoISh0eXBlb2YgcmVzdG9yZUltcGwgPT09ICdmdW5jdGlvbicpKSB7XG4gICAge1xuICAgICAgdGhyb3cgRXJyb3IoIFwic2V0UmVzdG9yZUltcGxlbWVudGF0aW9uKCkgbmVlZHMgdG8gYmUgY2FsbGVkIHRvIGhhbmRsZSBhIHRhcmdldCBmb3IgY29udHJvbGxlZCBldmVudHMuIFRoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCIgKTtcbiAgICB9XG4gIH1cblxuICB2YXIgc3RhdGVOb2RlID0gaW50ZXJuYWxJbnN0YW5jZS5zdGF0ZU5vZGU7IC8vIEd1YXJkIGFnYWluc3QgRmliZXIgYmVpbmcgdW5tb3VudGVkLlxuXG4gIGlmIChzdGF0ZU5vZGUpIHtcbiAgICB2YXIgX3Byb3BzID0gZ2V0RmliZXJDdXJyZW50UHJvcHNGcm9tTm9kZShzdGF0ZU5vZGUpO1xuXG4gICAgcmVzdG9yZUltcGwoaW50ZXJuYWxJbnN0YW5jZS5zdGF0ZU5vZGUsIGludGVybmFsSW5zdGFuY2UudHlwZSwgX3Byb3BzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBzZXRSZXN0b3JlSW1wbGVtZW50YXRpb24oaW1wbCkge1xuICByZXN0b3JlSW1wbCA9IGltcGw7XG59XG5mdW5jdGlvbiBlbnF1ZXVlU3RhdGVSZXN0b3JlKHRhcmdldCkge1xuICBpZiAocmVzdG9yZVRhcmdldCkge1xuICAgIGlmIChyZXN0b3JlUXVldWUpIHtcbiAgICAgIHJlc3RvcmVRdWV1ZS5wdXNoKHRhcmdldCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3RvcmVRdWV1ZSA9IFt0YXJnZXRdO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICByZXN0b3JlVGFyZ2V0ID0gdGFyZ2V0O1xuICB9XG59XG5mdW5jdGlvbiBuZWVkc1N0YXRlUmVzdG9yZSgpIHtcbiAgcmV0dXJuIHJlc3RvcmVUYXJnZXQgIT09IG51bGwgfHwgcmVzdG9yZVF1ZXVlICE9PSBudWxsO1xufVxuZnVuY3Rpb24gcmVzdG9yZVN0YXRlSWZOZWVkZWQoKSB7XG4gIGlmICghcmVzdG9yZVRhcmdldCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciB0YXJnZXQgPSByZXN0b3JlVGFyZ2V0O1xuICB2YXIgcXVldWVkVGFyZ2V0cyA9IHJlc3RvcmVRdWV1ZTtcbiAgcmVzdG9yZVRhcmdldCA9IG51bGw7XG4gIHJlc3RvcmVRdWV1ZSA9IG51bGw7XG4gIHJlc3RvcmVTdGF0ZU9mVGFyZ2V0KHRhcmdldCk7XG5cbiAgaWYgKHF1ZXVlZFRhcmdldHMpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHF1ZXVlZFRhcmdldHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHJlc3RvcmVTdGF0ZU9mVGFyZ2V0KHF1ZXVlZFRhcmdldHNbaV0pO1xuICAgIH1cbiAgfVxufVxuXG4vLyB0aGUgcmVuZGVyZXIuIFN1Y2ggYXMgd2hlbiB3ZSdyZSBkaXNwYXRjaGluZyBldmVudHMgb3IgaWYgdGhpcmQgcGFydHlcbi8vIGxpYnJhcmllcyBuZWVkIHRvIGNhbGwgYmF0Y2hlZFVwZGF0ZXMuIEV2ZW50dWFsbHksIHRoaXMgQVBJIHdpbGwgZ28gYXdheSB3aGVuXG4vLyBldmVyeXRoaW5nIGlzIGJhdGNoZWQgYnkgZGVmYXVsdC4gV2UnbGwgdGhlbiBoYXZlIGEgc2ltaWxhciBBUEkgdG8gb3B0LW91dCBvZlxuLy8gc2NoZWR1bGVkIHdvcmsgYW5kIGluc3RlYWQgZG8gc3luY2hyb25vdXMgd29yay5cbi8vIERlZmF1bHRzXG5cbnZhciBiYXRjaGVkVXBkYXRlc0ltcGwgPSBmdW5jdGlvbiAoZm4sIGJvb2trZWVwaW5nKSB7XG4gIHJldHVybiBmbihib29ra2VlcGluZyk7XG59O1xuXG52YXIgZGlzY3JldGVVcGRhdGVzSW1wbCA9IGZ1bmN0aW9uIChmbiwgYSwgYiwgYywgZCkge1xuICByZXR1cm4gZm4oYSwgYiwgYywgZCk7XG59O1xuXG52YXIgZmx1c2hEaXNjcmV0ZVVwZGF0ZXNJbXBsID0gZnVuY3Rpb24gKCkge307XG5cbnZhciBiYXRjaGVkRXZlbnRVcGRhdGVzSW1wbCA9IGJhdGNoZWRVcGRhdGVzSW1wbDtcbnZhciBpc0luc2lkZUV2ZW50SGFuZGxlciA9IGZhbHNlO1xudmFyIGlzQmF0Y2hpbmdFdmVudFVwZGF0ZXMgPSBmYWxzZTtcblxuZnVuY3Rpb24gZmluaXNoRXZlbnRIYW5kbGVyKCkge1xuICAvLyBIZXJlIHdlIHdhaXQgdW50aWwgYWxsIHVwZGF0ZXMgaGF2ZSBwcm9wYWdhdGVkLCB3aGljaCBpcyBpbXBvcnRhbnRcbiAgLy8gd2hlbiB1c2luZyBjb250cm9sbGVkIGNvbXBvbmVudHMgd2l0aGluIGxheWVyczpcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xNjk4XG4gIC8vIFRoZW4gd2UgcmVzdG9yZSBzdGF0ZSBvZiBhbnkgY29udHJvbGxlZCBjb21wb25lbnQuXG4gIHZhciBjb250cm9sbGVkQ29tcG9uZW50c0hhdmVQZW5kaW5nVXBkYXRlcyA9IG5lZWRzU3RhdGVSZXN0b3JlKCk7XG5cbiAgaWYgKGNvbnRyb2xsZWRDb21wb25lbnRzSGF2ZVBlbmRpbmdVcGRhdGVzKSB7XG4gICAgLy8gSWYgYSBjb250cm9sbGVkIGV2ZW50IHdhcyBmaXJlZCwgd2UgbWF5IG5lZWQgdG8gcmVzdG9yZSB0aGUgc3RhdGUgb2ZcbiAgICAvLyB0aGUgRE9NIG5vZGUgYmFjayB0byB0aGUgY29udHJvbGxlZCB2YWx1ZS4gVGhpcyBpcyBuZWNlc3Nhcnkgd2hlbiBSZWFjdFxuICAgIC8vIGJhaWxzIG91dCBvZiB0aGUgdXBkYXRlIHdpdGhvdXQgdG91Y2hpbmcgdGhlIERPTS5cbiAgICBmbHVzaERpc2NyZXRlVXBkYXRlc0ltcGwoKTtcbiAgICByZXN0b3JlU3RhdGVJZk5lZWRlZCgpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGJhdGNoZWRVcGRhdGVzKGZuLCBib29ra2VlcGluZykge1xuICBpZiAoaXNJbnNpZGVFdmVudEhhbmRsZXIpIHtcbiAgICAvLyBJZiB3ZSBhcmUgY3VycmVudGx5IGluc2lkZSBhbm90aGVyIGJhdGNoLCB3ZSBuZWVkIHRvIHdhaXQgdW50aWwgaXRcbiAgICAvLyBmdWxseSBjb21wbGV0ZXMgYmVmb3JlIHJlc3RvcmluZyBzdGF0ZS5cbiAgICByZXR1cm4gZm4oYm9va2tlZXBpbmcpO1xuICB9XG5cbiAgaXNJbnNpZGVFdmVudEhhbmRsZXIgPSB0cnVlO1xuXG4gIHRyeSB7XG4gICAgcmV0dXJuIGJhdGNoZWRVcGRhdGVzSW1wbChmbiwgYm9va2tlZXBpbmcpO1xuICB9IGZpbmFsbHkge1xuICAgIGlzSW5zaWRlRXZlbnRIYW5kbGVyID0gZmFsc2U7XG4gICAgZmluaXNoRXZlbnRIYW5kbGVyKCk7XG4gIH1cbn1cbmZ1bmN0aW9uIGJhdGNoZWRFdmVudFVwZGF0ZXMoZm4sIGEsIGIpIHtcbiAgaWYgKGlzQmF0Y2hpbmdFdmVudFVwZGF0ZXMpIHtcbiAgICAvLyBJZiB3ZSBhcmUgY3VycmVudGx5IGluc2lkZSBhbm90aGVyIGJhdGNoLCB3ZSBuZWVkIHRvIHdhaXQgdW50aWwgaXRcbiAgICAvLyBmdWxseSBjb21wbGV0ZXMgYmVmb3JlIHJlc3RvcmluZyBzdGF0ZS5cbiAgICByZXR1cm4gZm4oYSwgYik7XG4gIH1cblxuICBpc0JhdGNoaW5nRXZlbnRVcGRhdGVzID0gdHJ1ZTtcblxuICB0cnkge1xuICAgIHJldHVybiBiYXRjaGVkRXZlbnRVcGRhdGVzSW1wbChmbiwgYSwgYik7XG4gIH0gZmluYWxseSB7XG4gICAgaXNCYXRjaGluZ0V2ZW50VXBkYXRlcyA9IGZhbHNlO1xuICAgIGZpbmlzaEV2ZW50SGFuZGxlcigpO1xuICB9XG59XG5mdW5jdGlvbiBkaXNjcmV0ZVVwZGF0ZXMoZm4sIGEsIGIsIGMsIGQpIHtcbiAgdmFyIHByZXZJc0luc2lkZUV2ZW50SGFuZGxlciA9IGlzSW5zaWRlRXZlbnRIYW5kbGVyO1xuICBpc0luc2lkZUV2ZW50SGFuZGxlciA9IHRydWU7XG5cbiAgdHJ5IHtcbiAgICByZXR1cm4gZGlzY3JldGVVcGRhdGVzSW1wbChmbiwgYSwgYiwgYywgZCk7XG4gIH0gZmluYWxseSB7XG4gICAgaXNJbnNpZGVFdmVudEhhbmRsZXIgPSBwcmV2SXNJbnNpZGVFdmVudEhhbmRsZXI7XG5cbiAgICBpZiAoIWlzSW5zaWRlRXZlbnRIYW5kbGVyKSB7XG4gICAgICBmaW5pc2hFdmVudEhhbmRsZXIoKTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIGZsdXNoRGlzY3JldGVVcGRhdGVzSWZOZWVkZWQodGltZVN0YW1wKSB7XG4gIHtcbiAgICBpZiAoIWlzSW5zaWRlRXZlbnRIYW5kbGVyKSB7XG4gICAgICBmbHVzaERpc2NyZXRlVXBkYXRlc0ltcGwoKTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIHNldEJhdGNoaW5nSW1wbGVtZW50YXRpb24oX2JhdGNoZWRVcGRhdGVzSW1wbCwgX2Rpc2NyZXRlVXBkYXRlc0ltcGwsIF9mbHVzaERpc2NyZXRlVXBkYXRlc0ltcGwsIF9iYXRjaGVkRXZlbnRVcGRhdGVzSW1wbCkge1xuICBiYXRjaGVkVXBkYXRlc0ltcGwgPSBfYmF0Y2hlZFVwZGF0ZXNJbXBsO1xuICBkaXNjcmV0ZVVwZGF0ZXNJbXBsID0gX2Rpc2NyZXRlVXBkYXRlc0ltcGw7XG4gIGZsdXNoRGlzY3JldGVVcGRhdGVzSW1wbCA9IF9mbHVzaERpc2NyZXRlVXBkYXRlc0ltcGw7XG4gIGJhdGNoZWRFdmVudFVwZGF0ZXNJbXBsID0gX2JhdGNoZWRFdmVudFVwZGF0ZXNJbXBsO1xufVxuXG5mdW5jdGlvbiBpc0ludGVyYWN0aXZlKHRhZykge1xuICByZXR1cm4gdGFnID09PSAnYnV0dG9uJyB8fCB0YWcgPT09ICdpbnB1dCcgfHwgdGFnID09PSAnc2VsZWN0JyB8fCB0YWcgPT09ICd0ZXh0YXJlYSc7XG59XG5cbmZ1bmN0aW9uIHNob3VsZFByZXZlbnRNb3VzZUV2ZW50KG5hbWUsIHR5cGUsIHByb3BzKSB7XG4gIHN3aXRjaCAobmFtZSkge1xuICAgIGNhc2UgJ29uQ2xpY2snOlxuICAgIGNhc2UgJ29uQ2xpY2tDYXB0dXJlJzpcbiAgICBjYXNlICdvbkRvdWJsZUNsaWNrJzpcbiAgICBjYXNlICdvbkRvdWJsZUNsaWNrQ2FwdHVyZSc6XG4gICAgY2FzZSAnb25Nb3VzZURvd24nOlxuICAgIGNhc2UgJ29uTW91c2VEb3duQ2FwdHVyZSc6XG4gICAgY2FzZSAnb25Nb3VzZU1vdmUnOlxuICAgIGNhc2UgJ29uTW91c2VNb3ZlQ2FwdHVyZSc6XG4gICAgY2FzZSAnb25Nb3VzZVVwJzpcbiAgICBjYXNlICdvbk1vdXNlVXBDYXB0dXJlJzpcbiAgICBjYXNlICdvbk1vdXNlRW50ZXInOlxuICAgICAgcmV0dXJuICEhKHByb3BzLmRpc2FibGVkICYmIGlzSW50ZXJhY3RpdmUodHlwZSkpO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuLyoqXG4gKiBAcGFyYW0ge29iamVjdH0gaW5zdCBUaGUgaW5zdGFuY2UsIHdoaWNoIGlzIHRoZSBzb3VyY2Ugb2YgZXZlbnRzLlxuICogQHBhcmFtIHtzdHJpbmd9IHJlZ2lzdHJhdGlvbk5hbWUgTmFtZSBvZiBsaXN0ZW5lciAoZS5nLiBgb25DbGlja2ApLlxuICogQHJldHVybiB7P2Z1bmN0aW9ufSBUaGUgc3RvcmVkIGNhbGxiYWNrLlxuICovXG5cblxuZnVuY3Rpb24gZ2V0TGlzdGVuZXIoaW5zdCwgcmVnaXN0cmF0aW9uTmFtZSkge1xuICB2YXIgc3RhdGVOb2RlID0gaW5zdC5zdGF0ZU5vZGU7XG5cbiAgaWYgKHN0YXRlTm9kZSA9PT0gbnVsbCkge1xuICAgIC8vIFdvcmsgaW4gcHJvZ3Jlc3MgKGV4OiBvbmxvYWQgZXZlbnRzIGluIGluY3JlbWVudGFsIG1vZGUpLlxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgdmFyIHByb3BzID0gZ2V0RmliZXJDdXJyZW50UHJvcHNGcm9tTm9kZShzdGF0ZU5vZGUpO1xuXG4gIGlmIChwcm9wcyA9PT0gbnVsbCkge1xuICAgIC8vIFdvcmsgaW4gcHJvZ3Jlc3MuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICB2YXIgbGlzdGVuZXIgPSBwcm9wc1tyZWdpc3RyYXRpb25OYW1lXTtcblxuICBpZiAoc2hvdWxkUHJldmVudE1vdXNlRXZlbnQocmVnaXN0cmF0aW9uTmFtZSwgaW5zdC50eXBlLCBwcm9wcykpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmICghKCFsaXN0ZW5lciB8fCB0eXBlb2YgbGlzdGVuZXIgPT09ICdmdW5jdGlvbicpKSB7XG4gICAge1xuICAgICAgdGhyb3cgRXJyb3IoIFwiRXhwZWN0ZWQgYFwiICsgcmVnaXN0cmF0aW9uTmFtZSArIFwiYCBsaXN0ZW5lciB0byBiZSBhIGZ1bmN0aW9uLCBpbnN0ZWFkIGdvdCBhIHZhbHVlIG9mIGBcIiArIHR5cGVvZiBsaXN0ZW5lciArIFwiYCB0eXBlLlwiICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGxpc3RlbmVyO1xufVxuXG52YXIgcGFzc2l2ZUJyb3dzZXJFdmVudHNTdXBwb3J0ZWQgPSBmYWxzZTsgLy8gQ2hlY2sgaWYgYnJvd3NlciBzdXBwb3J0IGV2ZW50cyB3aXRoIHBhc3NpdmUgbGlzdGVuZXJzXG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRXZlbnRUYXJnZXQvYWRkRXZlbnRMaXN0ZW5lciNTYWZlbHlfZGV0ZWN0aW5nX29wdGlvbl9zdXBwb3J0XG5cbmlmIChjYW5Vc2VET00pIHtcbiAgdHJ5IHtcbiAgICB2YXIgb3B0aW9ucyA9IHt9OyAvLyAkRmxvd0ZpeE1lOiBJZ25vcmUgRmxvdyBjb21wbGFpbmluZyBhYm91dCBuZWVkaW5nIGEgdmFsdWVcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvcHRpb25zLCAncGFzc2l2ZScsIHtcbiAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICBwYXNzaXZlQnJvd3NlckV2ZW50c1N1cHBvcnRlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Rlc3QnLCBvcHRpb25zLCBvcHRpb25zKTtcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigndGVzdCcsIG9wdGlvbnMsIG9wdGlvbnMpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcGFzc2l2ZUJyb3dzZXJFdmVudHNTdXBwb3J0ZWQgPSBmYWxzZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpbnZva2VHdWFyZGVkQ2FsbGJhY2tQcm9kKG5hbWUsIGZ1bmMsIGNvbnRleHQsIGEsIGIsIGMsIGQsIGUsIGYpIHtcbiAgdmFyIGZ1bmNBcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAzKTtcblxuICB0cnkge1xuICAgIGZ1bmMuYXBwbHkoY29udGV4dCwgZnVuY0FyZ3MpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHRoaXMub25FcnJvcihlcnJvcik7XG4gIH1cbn1cblxudmFyIGludm9rZUd1YXJkZWRDYWxsYmFja0ltcGwgPSBpbnZva2VHdWFyZGVkQ2FsbGJhY2tQcm9kO1xuXG57XG4gIC8vIEluIERFViBtb2RlLCB3ZSBzd2FwIG91dCBpbnZva2VHdWFyZGVkQ2FsbGJhY2sgZm9yIGEgc3BlY2lhbCB2ZXJzaW9uXG4gIC8vIHRoYXQgcGxheXMgbW9yZSBuaWNlbHkgd2l0aCB0aGUgYnJvd3NlcidzIERldlRvb2xzLiBUaGUgaWRlYSBpcyB0byBwcmVzZXJ2ZVxuICAvLyBcIlBhdXNlIG9uIGV4Y2VwdGlvbnNcIiBiZWhhdmlvci4gQmVjYXVzZSBSZWFjdCB3cmFwcyBhbGwgdXNlci1wcm92aWRlZFxuICAvLyBmdW5jdGlvbnMgaW4gaW52b2tlR3VhcmRlZENhbGxiYWNrLCBhbmQgdGhlIHByb2R1Y3Rpb24gdmVyc2lvbiBvZlxuICAvLyBpbnZva2VHdWFyZGVkQ2FsbGJhY2sgdXNlcyBhIHRyeS1jYXRjaCwgYWxsIHVzZXIgZXhjZXB0aW9ucyBhcmUgdHJlYXRlZFxuICAvLyBsaWtlIGNhdWdodCBleGNlcHRpb25zLCBhbmQgdGhlIERldlRvb2xzIHdvbid0IHBhdXNlIHVubGVzcyB0aGUgZGV2ZWxvcGVyXG4gIC8vIHRha2VzIHRoZSBleHRyYSBzdGVwIG9mIGVuYWJsaW5nIHBhdXNlIG9uIGNhdWdodCBleGNlcHRpb25zLiBUaGlzIGlzXG4gIC8vIHVuaW50dWl0aXZlLCB0aG91Z2gsIGJlY2F1c2UgZXZlbiB0aG91Z2ggUmVhY3QgaGFzIGNhdWdodCB0aGUgZXJyb3IsIGZyb21cbiAgLy8gdGhlIGRldmVsb3BlcidzIHBlcnNwZWN0aXZlLCB0aGUgZXJyb3IgaXMgdW5jYXVnaHQuXG4gIC8vXG4gIC8vIFRvIHByZXNlcnZlIHRoZSBleHBlY3RlZCBcIlBhdXNlIG9uIGV4Y2VwdGlvbnNcIiBiZWhhdmlvciwgd2UgZG9uJ3QgdXNlIGFcbiAgLy8gdHJ5LWNhdGNoIGluIERFVi4gSW5zdGVhZCwgd2Ugc3luY2hyb25vdXNseSBkaXNwYXRjaCBhIGZha2UgZXZlbnQgdG8gYSBmYWtlXG4gIC8vIERPTSBub2RlLCBhbmQgY2FsbCB0aGUgdXNlci1wcm92aWRlZCBjYWxsYmFjayBmcm9tIGluc2lkZSBhbiBldmVudCBoYW5kbGVyXG4gIC8vIGZvciB0aGF0IGZha2UgZXZlbnQuIElmIHRoZSBjYWxsYmFjayB0aHJvd3MsIHRoZSBlcnJvciBpcyBcImNhcHR1cmVkXCIgdXNpbmdcbiAgLy8gYSBnbG9iYWwgZXZlbnQgaGFuZGxlci4gQnV0IGJlY2F1c2UgdGhlIGVycm9yIGhhcHBlbnMgaW4gYSBkaWZmZXJlbnRcbiAgLy8gZXZlbnQgbG9vcCBjb250ZXh0LCBpdCBkb2VzIG5vdCBpbnRlcnJ1cHQgdGhlIG5vcm1hbCBwcm9ncmFtIGZsb3cuXG4gIC8vIEVmZmVjdGl2ZWx5LCB0aGlzIGdpdmVzIHVzIHRyeS1jYXRjaCBiZWhhdmlvciB3aXRob3V0IGFjdHVhbGx5IHVzaW5nXG4gIC8vIHRyeS1jYXRjaC4gTmVhdCFcbiAgLy8gQ2hlY2sgdGhhdCB0aGUgYnJvd3NlciBzdXBwb3J0cyB0aGUgQVBJcyB3ZSBuZWVkIHRvIGltcGxlbWVudCBvdXIgc3BlY2lhbFxuICAvLyBERVYgdmVyc2lvbiBvZiBpbnZva2VHdWFyZGVkQ2FsbGJhY2tcbiAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiB3aW5kb3cuZGlzcGF0Y2hFdmVudCA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBkb2N1bWVudC5jcmVhdGVFdmVudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHZhciBmYWtlTm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3JlYWN0Jyk7XG5cbiAgICBpbnZva2VHdWFyZGVkQ2FsbGJhY2tJbXBsID0gZnVuY3Rpb24gaW52b2tlR3VhcmRlZENhbGxiYWNrRGV2KG5hbWUsIGZ1bmMsIGNvbnRleHQsIGEsIGIsIGMsIGQsIGUsIGYpIHtcbiAgICAgIC8vIElmIGRvY3VtZW50IGRvZXNuJ3QgZXhpc3Qgd2Uga25vdyBmb3Igc3VyZSB3ZSB3aWxsIGNyYXNoIGluIHRoaXMgbWV0aG9kXG4gICAgICAvLyB3aGVuIHdlIGNhbGwgZG9jdW1lbnQuY3JlYXRlRXZlbnQoKS4gSG93ZXZlciB0aGlzIGNhbiBjYXVzZSBjb25mdXNpbmdcbiAgICAgIC8vIGVycm9yczogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29raW5jdWJhdG9yL2NyZWF0ZS1yZWFjdC1hcHAvaXNzdWVzLzM0ODJcbiAgICAgIC8vIFNvIHdlIHByZWVtcHRpdmVseSB0aHJvdyB3aXRoIGEgYmV0dGVyIG1lc3NhZ2UgaW5zdGVhZC5cbiAgICAgIGlmICghKHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcpKSB7XG4gICAgICAgIHtcbiAgICAgICAgICB0aHJvdyBFcnJvciggXCJUaGUgYGRvY3VtZW50YCBnbG9iYWwgd2FzIGRlZmluZWQgd2hlbiBSZWFjdCB3YXMgaW5pdGlhbGl6ZWQsIGJ1dCBpcyBub3QgZGVmaW5lZCBhbnltb3JlLiBUaGlzIGNhbiBoYXBwZW4gaW4gYSB0ZXN0IGVudmlyb25tZW50IGlmIGEgY29tcG9uZW50IHNjaGVkdWxlcyBhbiB1cGRhdGUgZnJvbSBhbiBhc3luY2hyb25vdXMgY2FsbGJhY2ssIGJ1dCB0aGUgdGVzdCBoYXMgYWxyZWFkeSBmaW5pc2hlZCBydW5uaW5nLiBUbyBzb2x2ZSB0aGlzLCB5b3UgY2FuIGVpdGhlciB1bm1vdW50IHRoZSBjb21wb25lbnQgYXQgdGhlIGVuZCBvZiB5b3VyIHRlc3QgKGFuZCBlbnN1cmUgdGhhdCBhbnkgYXN5bmNocm9ub3VzIG9wZXJhdGlvbnMgZ2V0IGNhbmNlbGVkIGluIGBjb21wb25lbnRXaWxsVW5tb3VudGApLCBvciB5b3UgY2FuIGNoYW5nZSB0aGUgdGVzdCBpdHNlbGYgdG8gYmUgYXN5bmNocm9ub3VzLlwiICk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdmFyIGV2dCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdFdmVudCcpO1xuICAgICAgdmFyIGRpZENhbGwgPSBmYWxzZTsgLy8gS2VlcHMgdHJhY2sgb2Ygd2hldGhlciB0aGUgdXNlci1wcm92aWRlZCBjYWxsYmFjayB0aHJldyBhbiBlcnJvci4gV2VcbiAgICAgIC8vIHNldCB0aGlzIHRvIHRydWUgYXQgdGhlIGJlZ2lubmluZywgdGhlbiBzZXQgaXQgdG8gZmFsc2UgcmlnaHQgYWZ0ZXJcbiAgICAgIC8vIGNhbGxpbmcgdGhlIGZ1bmN0aW9uLiBJZiB0aGUgZnVuY3Rpb24gZXJyb3JzLCBgZGlkRXJyb3JgIHdpbGwgbmV2ZXIgYmVcbiAgICAgIC8vIHNldCB0byBmYWxzZS4gVGhpcyBzdHJhdGVneSB3b3JrcyBldmVuIGlmIHRoZSBicm93c2VyIGlzIGZsYWt5IGFuZFxuICAgICAgLy8gZmFpbHMgdG8gY2FsbCBvdXIgZ2xvYmFsIGVycm9yIGhhbmRsZXIsIGJlY2F1c2UgaXQgZG9lc24ndCByZWx5IG9uXG4gICAgICAvLyB0aGUgZXJyb3IgZXZlbnQgYXQgYWxsLlxuXG4gICAgICB2YXIgZGlkRXJyb3IgPSB0cnVlOyAvLyBLZWVwcyB0cmFjayBvZiB0aGUgdmFsdWUgb2Ygd2luZG93LmV2ZW50IHNvIHRoYXQgd2UgY2FuIHJlc2V0IGl0XG4gICAgICAvLyBkdXJpbmcgdGhlIGNhbGxiYWNrIHRvIGxldCB1c2VyIGNvZGUgYWNjZXNzIHdpbmRvdy5ldmVudCBpbiB0aGVcbiAgICAgIC8vIGJyb3dzZXJzIHRoYXQgc3VwcG9ydCBpdC5cblxuICAgICAgdmFyIHdpbmRvd0V2ZW50ID0gd2luZG93LmV2ZW50OyAvLyBLZWVwcyB0cmFjayBvZiB0aGUgZGVzY3JpcHRvciBvZiB3aW5kb3cuZXZlbnQgdG8gcmVzdG9yZSBpdCBhZnRlciBldmVudFxuICAgICAgLy8gZGlzcGF0Y2hpbmc6IGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMTM2ODhcblxuICAgICAgdmFyIHdpbmRvd0V2ZW50RGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnZXZlbnQnKTtcblxuICAgICAgZnVuY3Rpb24gcmVzdG9yZUFmdGVyRGlzcGF0Y2goKSB7XG4gICAgICAgIC8vIFdlIGltbWVkaWF0ZWx5IHJlbW92ZSB0aGUgY2FsbGJhY2sgZnJvbSBldmVudCBsaXN0ZW5lcnMgc28gdGhhdFxuICAgICAgICAvLyBuZXN0ZWQgYGludm9rZUd1YXJkZWRDYWxsYmFja2AgY2FsbHMgZG8gbm90IGNsYXNoLiBPdGhlcndpc2UsIGFcbiAgICAgICAgLy8gbmVzdGVkIGNhbGwgd291bGQgdHJpZ2dlciB0aGUgZmFrZSBldmVudCBoYW5kbGVycyBvZiBhbnkgY2FsbCBoaWdoZXJcbiAgICAgICAgLy8gaW4gdGhlIHN0YWNrLlxuICAgICAgICBmYWtlTm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKGV2dFR5cGUsIGNhbGxDYWxsYmFjaywgZmFsc2UpOyAvLyBXZSBjaGVjayBmb3Igd2luZG93Lmhhc093blByb3BlcnR5KCdldmVudCcpIHRvIHByZXZlbnQgdGhlXG4gICAgICAgIC8vIHdpbmRvdy5ldmVudCBhc3NpZ25tZW50IGluIGJvdGggSUUgPD0gMTAgYXMgdGhleSB0aHJvdyBhbiBlcnJvclxuICAgICAgICAvLyBcIk1lbWJlciBub3QgZm91bmRcIiBpbiBzdHJpY3QgbW9kZSwgYW5kIGluIEZpcmVmb3ggd2hpY2ggZG9lcyBub3RcbiAgICAgICAgLy8gc3VwcG9ydCB3aW5kb3cuZXZlbnQuXG5cbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cuZXZlbnQgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5oYXNPd25Qcm9wZXJ0eSgnZXZlbnQnKSkge1xuICAgICAgICAgIHdpbmRvdy5ldmVudCA9IHdpbmRvd0V2ZW50O1xuICAgICAgICB9XG4gICAgICB9IC8vIENyZWF0ZSBhbiBldmVudCBoYW5kbGVyIGZvciBvdXIgZmFrZSBldmVudC4gV2Ugd2lsbCBzeW5jaHJvbm91c2x5XG4gICAgICAvLyBkaXNwYXRjaCBvdXIgZmFrZSBldmVudCB1c2luZyBgZGlzcGF0Y2hFdmVudGAuIEluc2lkZSB0aGUgaGFuZGxlciwgd2VcbiAgICAgIC8vIGNhbGwgdGhlIHVzZXItcHJvdmlkZWQgY2FsbGJhY2suXG5cblxuICAgICAgdmFyIGZ1bmNBcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAzKTtcblxuICAgICAgZnVuY3Rpb24gY2FsbENhbGxiYWNrKCkge1xuICAgICAgICBkaWRDYWxsID0gdHJ1ZTtcbiAgICAgICAgcmVzdG9yZUFmdGVyRGlzcGF0Y2goKTtcbiAgICAgICAgZnVuYy5hcHBseShjb250ZXh0LCBmdW5jQXJncyk7XG4gICAgICAgIGRpZEVycm9yID0gZmFsc2U7XG4gICAgICB9IC8vIENyZWF0ZSBhIGdsb2JhbCBlcnJvciBldmVudCBoYW5kbGVyLiBXZSB1c2UgdGhpcyB0byBjYXB0dXJlIHRoZSB2YWx1ZVxuICAgICAgLy8gdGhhdCB3YXMgdGhyb3duLiBJdCdzIHBvc3NpYmxlIHRoYXQgdGhpcyBlcnJvciBoYW5kbGVyIHdpbGwgZmlyZSBtb3JlXG4gICAgICAvLyB0aGFuIG9uY2U7IGZvciBleGFtcGxlLCBpZiBub24tUmVhY3QgY29kZSBhbHNvIGNhbGxzIGBkaXNwYXRjaEV2ZW50YFxuICAgICAgLy8gYW5kIGEgaGFuZGxlciBmb3IgdGhhdCBldmVudCB0aHJvd3MuIFdlIHNob3VsZCBiZSByZXNpbGllbnQgdG8gbW9zdCBvZlxuICAgICAgLy8gdGhvc2UgY2FzZXMuIEV2ZW4gaWYgb3VyIGVycm9yIGV2ZW50IGhhbmRsZXIgZmlyZXMgbW9yZSB0aGFuIG9uY2UsIHRoZVxuICAgICAgLy8gbGFzdCBlcnJvciBldmVudCBpcyBhbHdheXMgdXNlZC4gSWYgdGhlIGNhbGxiYWNrIGFjdHVhbGx5IGRvZXMgZXJyb3IsXG4gICAgICAvLyB3ZSBrbm93IHRoYXQgdGhlIGxhc3QgZXJyb3IgZXZlbnQgaXMgdGhlIGNvcnJlY3Qgb25lLCBiZWNhdXNlIGl0J3Mgbm90XG4gICAgICAvLyBwb3NzaWJsZSBmb3IgYW55dGhpbmcgZWxzZSB0byBoYXZlIGhhcHBlbmVkIGluIGJldHdlZW4gb3VyIGNhbGxiYWNrXG4gICAgICAvLyBlcnJvcmluZyBhbmQgdGhlIGNvZGUgdGhhdCBmb2xsb3dzIHRoZSBgZGlzcGF0Y2hFdmVudGAgY2FsbCBiZWxvdy4gSWZcbiAgICAgIC8vIHRoZSBjYWxsYmFjayBkb2Vzbid0IGVycm9yLCBidXQgdGhlIGVycm9yIGV2ZW50IHdhcyBmaXJlZCwgd2Uga25vdyB0b1xuICAgICAgLy8gaWdub3JlIGl0IGJlY2F1c2UgYGRpZEVycm9yYCB3aWxsIGJlIGZhbHNlLCBhcyBkZXNjcmliZWQgYWJvdmUuXG5cblxuICAgICAgdmFyIGVycm9yOyAvLyBVc2UgdGhpcyB0byB0cmFjayB3aGV0aGVyIHRoZSBlcnJvciBldmVudCBpcyBldmVyIGNhbGxlZC5cblxuICAgICAgdmFyIGRpZFNldEVycm9yID0gZmFsc2U7XG4gICAgICB2YXIgaXNDcm9zc09yaWdpbkVycm9yID0gZmFsc2U7XG5cbiAgICAgIGZ1bmN0aW9uIGhhbmRsZVdpbmRvd0Vycm9yKGV2ZW50KSB7XG4gICAgICAgIGVycm9yID0gZXZlbnQuZXJyb3I7XG4gICAgICAgIGRpZFNldEVycm9yID0gdHJ1ZTtcblxuICAgICAgICBpZiAoZXJyb3IgPT09IG51bGwgJiYgZXZlbnQuY29sbm8gPT09IDAgJiYgZXZlbnQubGluZW5vID09PSAwKSB7XG4gICAgICAgICAgaXNDcm9zc09yaWdpbkVycm9yID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgLy8gU29tZSBvdGhlciBlcnJvciBoYW5kbGVyIGhhcyBwcmV2ZW50ZWQgZGVmYXVsdC5cbiAgICAgICAgICAvLyBCcm93c2VycyBzaWxlbmNlIHRoZSBlcnJvciByZXBvcnQgaWYgdGhpcyBoYXBwZW5zLlxuICAgICAgICAgIC8vIFdlJ2xsIHJlbWVtYmVyIHRoaXMgdG8gbGF0ZXIgZGVjaWRlIHdoZXRoZXIgdG8gbG9nIGl0IG9yIG5vdC5cbiAgICAgICAgICBpZiAoZXJyb3IgIT0gbnVsbCAmJiB0eXBlb2YgZXJyb3IgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBlcnJvci5fc3VwcHJlc3NMb2dnaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGlubmVyKSB7Ly8gSWdub3JlLlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSAvLyBDcmVhdGUgYSBmYWtlIGV2ZW50IHR5cGUuXG5cblxuICAgICAgdmFyIGV2dFR5cGUgPSBcInJlYWN0LVwiICsgKG5hbWUgPyBuYW1lIDogJ2ludm9rZWd1YXJkZWRjYWxsYmFjaycpOyAvLyBBdHRhY2ggb3VyIGV2ZW50IGhhbmRsZXJzXG5cbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIGhhbmRsZVdpbmRvd0Vycm9yKTtcbiAgICAgIGZha2VOb2RlLmFkZEV2ZW50TGlzdGVuZXIoZXZ0VHlwZSwgY2FsbENhbGxiYWNrLCBmYWxzZSk7IC8vIFN5bmNocm9ub3VzbHkgZGlzcGF0Y2ggb3VyIGZha2UgZXZlbnQuIElmIHRoZSB1c2VyLXByb3ZpZGVkIGZ1bmN0aW9uXG4gICAgICAvLyBlcnJvcnMsIGl0IHdpbGwgdHJpZ2dlciBvdXIgZ2xvYmFsIGVycm9yIGhhbmRsZXIuXG5cbiAgICAgIGV2dC5pbml0RXZlbnQoZXZ0VHlwZSwgZmFsc2UsIGZhbHNlKTtcbiAgICAgIGZha2VOb2RlLmRpc3BhdGNoRXZlbnQoZXZ0KTtcblxuICAgICAgaWYgKHdpbmRvd0V2ZW50RGVzY3JpcHRvcikge1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LCAnZXZlbnQnLCB3aW5kb3dFdmVudERlc2NyaXB0b3IpO1xuICAgICAgfVxuXG4gICAgICBpZiAoZGlkQ2FsbCAmJiBkaWRFcnJvcikge1xuICAgICAgICBpZiAoIWRpZFNldEVycm9yKSB7XG4gICAgICAgICAgLy8gVGhlIGNhbGxiYWNrIGVycm9yZWQsIGJ1dCB0aGUgZXJyb3IgZXZlbnQgbmV2ZXIgZmlyZWQuXG4gICAgICAgICAgZXJyb3IgPSBuZXcgRXJyb3IoJ0FuIGVycm9yIHdhcyB0aHJvd24gaW5zaWRlIG9uZSBvZiB5b3VyIGNvbXBvbmVudHMsIGJ1dCBSZWFjdCAnICsgXCJkb2Vzbid0IGtub3cgd2hhdCBpdCB3YXMuIFRoaXMgaXMgbGlrZWx5IGR1ZSB0byBicm93c2VyIFwiICsgJ2ZsYWtpbmVzcy4gUmVhY3QgZG9lcyBpdHMgYmVzdCB0byBwcmVzZXJ2ZSB0aGUgXCJQYXVzZSBvbiAnICsgJ2V4Y2VwdGlvbnNcIiBiZWhhdmlvciBvZiB0aGUgRGV2VG9vbHMsIHdoaWNoIHJlcXVpcmVzIHNvbWUgJyArIFwiREVWLW1vZGUgb25seSB0cmlja3MuIEl0J3MgcG9zc2libGUgdGhhdCB0aGVzZSBkb24ndCB3b3JrIGluIFwiICsgJ3lvdXIgYnJvd3Nlci4gVHJ5IHRyaWdnZXJpbmcgdGhlIGVycm9yIGluIHByb2R1Y3Rpb24gbW9kZSwgJyArICdvciBzd2l0Y2hpbmcgdG8gYSBtb2Rlcm4gYnJvd3Nlci4gSWYgeW91IHN1c3BlY3QgdGhhdCB0aGlzIGlzICcgKyAnYWN0dWFsbHkgYW4gaXNzdWUgd2l0aCBSZWFjdCwgcGxlYXNlIGZpbGUgYW4gaXNzdWUuJyk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNDcm9zc09yaWdpbkVycm9yKSB7XG4gICAgICAgICAgZXJyb3IgPSBuZXcgRXJyb3IoXCJBIGNyb3NzLW9yaWdpbiBlcnJvciB3YXMgdGhyb3duLiBSZWFjdCBkb2Vzbid0IGhhdmUgYWNjZXNzIHRvIFwiICsgJ3RoZSBhY3R1YWwgZXJyb3Igb2JqZWN0IGluIGRldmVsb3BtZW50LiAnICsgJ1NlZSBodHRwczovL3JlYWN0anMub3JnL2xpbmsvY3Jvc3NvcmlnaW4tZXJyb3IgZm9yIG1vcmUgaW5mb3JtYXRpb24uJyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm9uRXJyb3IoZXJyb3IpO1xuICAgICAgfSAvLyBSZW1vdmUgb3VyIGV2ZW50IGxpc3RlbmVyc1xuXG5cbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdlcnJvcicsIGhhbmRsZVdpbmRvd0Vycm9yKTtcblxuICAgICAgaWYgKCFkaWRDYWxsKSB7XG4gICAgICAgIC8vIFNvbWV0aGluZyB3ZW50IHJlYWxseSB3cm9uZywgYW5kIG91ciBldmVudCB3YXMgbm90IGRpc3BhdGNoZWQuXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMTY3MzRcbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xNjU4NVxuICAgICAgICAvLyBGYWxsIGJhY2sgdG8gdGhlIHByb2R1Y3Rpb24gaW1wbGVtZW50YXRpb24uXG4gICAgICAgIHJlc3RvcmVBZnRlckRpc3BhdGNoKCk7XG4gICAgICAgIHJldHVybiBpbnZva2VHdWFyZGVkQ2FsbGJhY2tQcm9kLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICB9XG4gICAgfTtcbiAgfVxufVxuXG52YXIgaW52b2tlR3VhcmRlZENhbGxiYWNrSW1wbCQxID0gaW52b2tlR3VhcmRlZENhbGxiYWNrSW1wbDtcblxudmFyIGhhc0Vycm9yID0gZmFsc2U7XG52YXIgY2F1Z2h0RXJyb3IgPSBudWxsOyAvLyBVc2VkIGJ5IGV2ZW50IHN5c3RlbSB0byBjYXB0dXJlL3JldGhyb3cgdGhlIGZpcnN0IGVycm9yLlxuXG52YXIgaGFzUmV0aHJvd0Vycm9yID0gZmFsc2U7XG52YXIgcmV0aHJvd0Vycm9yID0gbnVsbDtcbnZhciByZXBvcnRlciA9IHtcbiAgb25FcnJvcjogZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgaGFzRXJyb3IgPSB0cnVlO1xuICAgIGNhdWdodEVycm9yID0gZXJyb3I7XG4gIH1cbn07XG4vKipcbiAqIENhbGwgYSBmdW5jdGlvbiB3aGlsZSBndWFyZGluZyBhZ2FpbnN0IGVycm9ycyB0aGF0IGhhcHBlbnMgd2l0aGluIGl0LlxuICogUmV0dXJucyBhbiBlcnJvciBpZiBpdCB0aHJvd3MsIG90aGVyd2lzZSBudWxsLlxuICpcbiAqIEluIHByb2R1Y3Rpb24sIHRoaXMgaXMgaW1wbGVtZW50ZWQgdXNpbmcgYSB0cnktY2F0Y2guIFRoZSByZWFzb24gd2UgZG9uJ3RcbiAqIHVzZSBhIHRyeS1jYXRjaCBkaXJlY3RseSBpcyBzbyB0aGF0IHdlIGNhbiBzd2FwIG91dCBhIGRpZmZlcmVudFxuICogaW1wbGVtZW50YXRpb24gaW4gREVWIG1vZGUuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IG5hbWUgb2YgdGhlIGd1YXJkIHRvIHVzZSBmb3IgbG9nZ2luZyBvciBkZWJ1Z2dpbmdcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGludm9rZVxuICogQHBhcmFtIHsqfSBjb250ZXh0IFRoZSBjb250ZXh0IHRvIHVzZSB3aGVuIGNhbGxpbmcgdGhlIGZ1bmN0aW9uXG4gKiBAcGFyYW0gey4uLip9IGFyZ3MgQXJndW1lbnRzIGZvciBmdW5jdGlvblxuICovXG5cbmZ1bmN0aW9uIGludm9rZUd1YXJkZWRDYWxsYmFjayhuYW1lLCBmdW5jLCBjb250ZXh0LCBhLCBiLCBjLCBkLCBlLCBmKSB7XG4gIGhhc0Vycm9yID0gZmFsc2U7XG4gIGNhdWdodEVycm9yID0gbnVsbDtcbiAgaW52b2tlR3VhcmRlZENhbGxiYWNrSW1wbCQxLmFwcGx5KHJlcG9ydGVyLCBhcmd1bWVudHMpO1xufVxuLyoqXG4gKiBTYW1lIGFzIGludm9rZUd1YXJkZWRDYWxsYmFjaywgYnV0IGluc3RlYWQgb2YgcmV0dXJuaW5nIGFuIGVycm9yLCBpdCBzdG9yZXNcbiAqIGl0IGluIGEgZ2xvYmFsIHNvIGl0IGNhbiBiZSByZXRocm93biBieSBgcmV0aHJvd0NhdWdodEVycm9yYCBsYXRlci5cbiAqIFRPRE86IFNlZSBpZiBjYXVnaHRFcnJvciBhbmQgcmV0aHJvd0Vycm9yIGNhbiBiZSB1bmlmaWVkLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lIG9mIHRoZSBndWFyZCB0byB1c2UgZm9yIGxvZ2dpbmcgb3IgZGVidWdnaW5nXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBpbnZva2VcbiAqIEBwYXJhbSB7Kn0gY29udGV4dCBUaGUgY29udGV4dCB0byB1c2Ugd2hlbiBjYWxsaW5nIHRoZSBmdW5jdGlvblxuICogQHBhcmFtIHsuLi4qfSBhcmdzIEFyZ3VtZW50cyBmb3IgZnVuY3Rpb25cbiAqL1xuXG5mdW5jdGlvbiBpbnZva2VHdWFyZGVkQ2FsbGJhY2tBbmRDYXRjaEZpcnN0RXJyb3IobmFtZSwgZnVuYywgY29udGV4dCwgYSwgYiwgYywgZCwgZSwgZikge1xuICBpbnZva2VHdWFyZGVkQ2FsbGJhY2suYXBwbHkodGhpcywgYXJndW1lbnRzKTtcblxuICBpZiAoaGFzRXJyb3IpIHtcbiAgICB2YXIgZXJyb3IgPSBjbGVhckNhdWdodEVycm9yKCk7XG5cbiAgICBpZiAoIWhhc1JldGhyb3dFcnJvcikge1xuICAgICAgaGFzUmV0aHJvd0Vycm9yID0gdHJ1ZTtcbiAgICAgIHJldGhyb3dFcnJvciA9IGVycm9yO1xuICAgIH1cbiAgfVxufVxuLyoqXG4gKiBEdXJpbmcgZXhlY3V0aW9uIG9mIGd1YXJkZWQgZnVuY3Rpb25zIHdlIHdpbGwgY2FwdHVyZSB0aGUgZmlyc3QgZXJyb3Igd2hpY2hcbiAqIHdlIHdpbGwgcmV0aHJvdyB0byBiZSBoYW5kbGVkIGJ5IHRoZSB0b3AgbGV2ZWwgZXJyb3IgaGFuZGxlci5cbiAqL1xuXG5mdW5jdGlvbiByZXRocm93Q2F1Z2h0RXJyb3IoKSB7XG4gIGlmIChoYXNSZXRocm93RXJyb3IpIHtcbiAgICB2YXIgZXJyb3IgPSByZXRocm93RXJyb3I7XG4gICAgaGFzUmV0aHJvd0Vycm9yID0gZmFsc2U7XG4gICAgcmV0aHJvd0Vycm9yID0gbnVsbDtcbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufVxuZnVuY3Rpb24gaGFzQ2F1Z2h0RXJyb3IoKSB7XG4gIHJldHVybiBoYXNFcnJvcjtcbn1cbmZ1bmN0aW9uIGNsZWFyQ2F1Z2h0RXJyb3IoKSB7XG4gIGlmIChoYXNFcnJvcikge1xuICAgIHZhciBlcnJvciA9IGNhdWdodEVycm9yO1xuICAgIGhhc0Vycm9yID0gZmFsc2U7XG4gICAgY2F1Z2h0RXJyb3IgPSBudWxsO1xuICAgIHJldHVybiBlcnJvcjtcbiAgfSBlbHNlIHtcbiAgICB7XG4gICAgICB7XG4gICAgICAgIHRocm93IEVycm9yKCBcImNsZWFyQ2F1Z2h0RXJyb3Igd2FzIGNhbGxlZCBidXQgbm8gZXJyb3Igd2FzIGNhcHR1cmVkLiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLlwiICk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogYFJlYWN0SW5zdGFuY2VNYXBgIG1haW50YWlucyBhIG1hcHBpbmcgZnJvbSBhIHB1YmxpYyBmYWNpbmcgc3RhdGVmdWxcbiAqIGluc3RhbmNlIChrZXkpIGFuZCB0aGUgaW50ZXJuYWwgcmVwcmVzZW50YXRpb24gKHZhbHVlKS4gVGhpcyBhbGxvd3MgcHVibGljXG4gKiBtZXRob2RzIHRvIGFjY2VwdCB0aGUgdXNlciBmYWNpbmcgaW5zdGFuY2UgYXMgYW4gYXJndW1lbnQgYW5kIG1hcCB0aGVtIGJhY2tcbiAqIHRvIGludGVybmFsIG1ldGhvZHMuXG4gKlxuICogTm90ZSB0aGF0IHRoaXMgbW9kdWxlIGlzIGN1cnJlbnRseSBzaGFyZWQgYW5kIGFzc3VtZWQgdG8gYmUgc3RhdGVsZXNzLlxuICogSWYgdGhpcyBiZWNvbWVzIGFuIGFjdHVhbCBNYXAsIHRoYXQgd2lsbCBicmVhay5cbiAqL1xuZnVuY3Rpb24gZ2V0KGtleSkge1xuICByZXR1cm4ga2V5Ll9yZWFjdEludGVybmFscztcbn1cbmZ1bmN0aW9uIGhhcyhrZXkpIHtcbiAgcmV0dXJuIGtleS5fcmVhY3RJbnRlcm5hbHMgIT09IHVuZGVmaW5lZDtcbn1cbmZ1bmN0aW9uIHNldChrZXksIHZhbHVlKSB7XG4gIGtleS5fcmVhY3RJbnRlcm5hbHMgPSB2YWx1ZTtcbn1cblxuLy8gRG9uJ3QgY2hhbmdlIHRoZXNlIHR3byB2YWx1ZXMuIFRoZXkncmUgdXNlZCBieSBSZWFjdCBEZXYgVG9vbHMuXG52YXIgTm9GbGFncyA9XG4vKiAgICAgICAgICAgICAgICAgICAgICAqL1xuMDtcbnZhciBQZXJmb3JtZWRXb3JrID1cbi8qICAgICAgICAgICAgICAgICovXG4xOyAvLyBZb3UgY2FuIGNoYW5nZSB0aGUgcmVzdCAoYW5kIGFkZCBtb3JlKS5cblxudmFyIFBsYWNlbWVudCA9XG4vKiAgICAgICAgICAgICAgICAgICAgKi9cbjI7XG52YXIgVXBkYXRlID1cbi8qICAgICAgICAgICAgICAgICAgICAgICAqL1xuNDtcbnZhciBQbGFjZW1lbnRBbmRVcGRhdGUgPVxuLyogICAgICAgICAgICovXG42O1xudmFyIERlbGV0aW9uID1cbi8qICAgICAgICAgICAgICAgICAgICAgKi9cbjg7XG52YXIgQ29udGVudFJlc2V0ID1cbi8qICAgICAgICAgICAgICAgICAqL1xuMTY7XG52YXIgQ2FsbGJhY2sgPVxuLyogICAgICAgICAgICAgICAgICAgICAqL1xuMzI7XG52YXIgRGlkQ2FwdHVyZSA9XG4vKiAgICAgICAgICAgICAgICAgICAqL1xuNjQ7XG52YXIgUmVmID1cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuMTI4O1xudmFyIFNuYXBzaG90ID1cbi8qICAgICAgICAgICAgICAgICAgICAgKi9cbjI1NjtcbnZhciBQYXNzaXZlID1cbi8qICAgICAgICAgICAgICAgICAgICAgICovXG41MTI7IC8vIFRPRE8gKGVmZmVjdHMpIFJlbW92ZSB0aGlzIGJpdCBvbmNlIHRoZSBuZXcgcmVjb25jaWxlciBpcyBzeW5jZWQgdG8gdGhlIG9sZC5cblxudmFyIFBhc3NpdmVVbm1vdW50UGVuZGluZ0RldiA9XG4vKiAgICAgKi9cbjgxOTI7XG52YXIgSHlkcmF0aW5nID1cbi8qICAgICAgICAgICAgICAgICAgICAqL1xuMTAyNDtcbnZhciBIeWRyYXRpbmdBbmRVcGRhdGUgPVxuLyogICAgICAgICAgICovXG4xMDI4OyAvLyBQYXNzaXZlICYgVXBkYXRlICYgQ2FsbGJhY2sgJiBSZWYgJiBTbmFwc2hvdFxuXG52YXIgTGlmZWN5Y2xlRWZmZWN0TWFzayA9XG4vKiAgICAgICAgICAqL1xuOTMyOyAvLyBVbmlvbiBvZiBhbGwgaG9zdCBlZmZlY3RzXG5cbnZhciBIb3N0RWZmZWN0TWFzayA9XG4vKiAgICAgICAgICAgICAgICovXG4yMDQ3OyAvLyBUaGVzZSBhcmUgbm90IHJlYWxseSBzaWRlIGVmZmVjdHMsIGJ1dCB3ZSBzdGlsbCByZXVzZSB0aGlzIGZpZWxkLlxuXG52YXIgSW5jb21wbGV0ZSA9XG4vKiAgICAgICAgICAgICAgICAgICAqL1xuMjA0ODtcbnZhciBTaG91bGRDYXB0dXJlID1cbi8qICAgICAgICAgICAgICAgICovXG40MDk2O1xudmFyIEZvcmNlVXBkYXRlRm9yTGVnYWN5U3VzcGVuc2UgPVxuLyogKi9cbjE2Mzg0OyAvLyBTdGF0aWMgdGFncyBkZXNjcmliZSBhc3BlY3RzIG9mIGEgZmliZXIgdGhhdCBhcmUgbm90IHNwZWNpZmljIHRvIGEgcmVuZGVyLFxuXG52YXIgUmVhY3RDdXJyZW50T3duZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdEN1cnJlbnRPd25lcjtcbmZ1bmN0aW9uIGdldE5lYXJlc3RNb3VudGVkRmliZXIoZmliZXIpIHtcbiAgdmFyIG5vZGUgPSBmaWJlcjtcbiAgdmFyIG5lYXJlc3RNb3VudGVkID0gZmliZXI7XG5cbiAgaWYgKCFmaWJlci5hbHRlcm5hdGUpIHtcbiAgICAvLyBJZiB0aGVyZSBpcyBubyBhbHRlcm5hdGUsIHRoaXMgbWlnaHQgYmUgYSBuZXcgdHJlZSB0aGF0IGlzbid0IGluc2VydGVkXG4gICAgLy8geWV0LiBJZiBpdCBpcywgdGhlbiBpdCB3aWxsIGhhdmUgYSBwZW5kaW5nIGluc2VydGlvbiBlZmZlY3Qgb24gaXQuXG4gICAgdmFyIG5leHROb2RlID0gbm9kZTtcblxuICAgIGRvIHtcbiAgICAgIG5vZGUgPSBuZXh0Tm9kZTtcblxuICAgICAgaWYgKChub2RlLmZsYWdzICYgKFBsYWNlbWVudCB8IEh5ZHJhdGluZykpICE9PSBOb0ZsYWdzKSB7XG4gICAgICAgIC8vIFRoaXMgaXMgYW4gaW5zZXJ0aW9uIG9yIGluLXByb2dyZXNzIGh5ZHJhdGlvbi4gVGhlIG5lYXJlc3QgcG9zc2libGVcbiAgICAgICAgLy8gbW91bnRlZCBmaWJlciBpcyB0aGUgcGFyZW50IGJ1dCB3ZSBuZWVkIHRvIGNvbnRpbnVlIHRvIGZpZ3VyZSBvdXRcbiAgICAgICAgLy8gaWYgdGhhdCBvbmUgaXMgc3RpbGwgbW91bnRlZC5cbiAgICAgICAgbmVhcmVzdE1vdW50ZWQgPSBub2RlLnJldHVybjtcbiAgICAgIH1cblxuICAgICAgbmV4dE5vZGUgPSBub2RlLnJldHVybjtcbiAgICB9IHdoaWxlIChuZXh0Tm9kZSk7XG4gIH0gZWxzZSB7XG4gICAgd2hpbGUgKG5vZGUucmV0dXJuKSB7XG4gICAgICBub2RlID0gbm9kZS5yZXR1cm47XG4gICAgfVxuICB9XG5cbiAgaWYgKG5vZGUudGFnID09PSBIb3N0Um9vdCkge1xuICAgIC8vIFRPRE86IENoZWNrIGlmIHRoaXMgd2FzIGEgbmVzdGVkIEhvc3RSb290IHdoZW4gdXNlZCB3aXRoXG4gICAgLy8gcmVuZGVyQ29udGFpbmVySW50b1N1YnRyZWUuXG4gICAgcmV0dXJuIG5lYXJlc3RNb3VudGVkO1xuICB9IC8vIElmIHdlIGRpZG4ndCBoaXQgdGhlIHJvb3QsIHRoYXQgbWVhbnMgdGhhdCB3ZSdyZSBpbiBhbiBkaXNjb25uZWN0ZWQgdHJlZVxuICAvLyB0aGF0IGhhcyBiZWVuIHVubW91bnRlZC5cblxuXG4gIHJldHVybiBudWxsO1xufVxuZnVuY3Rpb24gZ2V0U3VzcGVuc2VJbnN0YW5jZUZyb21GaWJlcihmaWJlcikge1xuICBpZiAoZmliZXIudGFnID09PSBTdXNwZW5zZUNvbXBvbmVudCkge1xuICAgIHZhciBzdXNwZW5zZVN0YXRlID0gZmliZXIubWVtb2l6ZWRTdGF0ZTtcblxuICAgIGlmIChzdXNwZW5zZVN0YXRlID09PSBudWxsKSB7XG4gICAgICB2YXIgY3VycmVudCA9IGZpYmVyLmFsdGVybmF0ZTtcblxuICAgICAgaWYgKGN1cnJlbnQgIT09IG51bGwpIHtcbiAgICAgICAgc3VzcGVuc2VTdGF0ZSA9IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc3VzcGVuc2VTdGF0ZSAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHN1c3BlbnNlU3RhdGUuZGVoeWRyYXRlZDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cbmZ1bmN0aW9uIGdldENvbnRhaW5lckZyb21GaWJlcihmaWJlcikge1xuICByZXR1cm4gZmliZXIudGFnID09PSBIb3N0Um9vdCA/IGZpYmVyLnN0YXRlTm9kZS5jb250YWluZXJJbmZvIDogbnVsbDtcbn1cbmZ1bmN0aW9uIGlzRmliZXJNb3VudGVkKGZpYmVyKSB7XG4gIHJldHVybiBnZXROZWFyZXN0TW91bnRlZEZpYmVyKGZpYmVyKSA9PT0gZmliZXI7XG59XG5mdW5jdGlvbiBpc01vdW50ZWQoY29tcG9uZW50KSB7XG4gIHtcbiAgICB2YXIgb3duZXIgPSBSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50O1xuXG4gICAgaWYgKG93bmVyICE9PSBudWxsICYmIG93bmVyLnRhZyA9PT0gQ2xhc3NDb21wb25lbnQpIHtcbiAgICAgIHZhciBvd25lckZpYmVyID0gb3duZXI7XG4gICAgICB2YXIgaW5zdGFuY2UgPSBvd25lckZpYmVyLnN0YXRlTm9kZTtcblxuICAgICAgaWYgKCFpbnN0YW5jZS5fd2FybmVkQWJvdXRSZWZzSW5SZW5kZXIpIHtcbiAgICAgICAgZXJyb3IoJyVzIGlzIGFjY2Vzc2luZyBpc01vdW50ZWQgaW5zaWRlIGl0cyByZW5kZXIoKSBmdW5jdGlvbi4gJyArICdyZW5kZXIoKSBzaG91bGQgYmUgYSBwdXJlIGZ1bmN0aW9uIG9mIHByb3BzIGFuZCBzdGF0ZS4gSXQgc2hvdWxkICcgKyAnbmV2ZXIgYWNjZXNzIHNvbWV0aGluZyB0aGF0IHJlcXVpcmVzIHN0YWxlIGRhdGEgZnJvbSB0aGUgcHJldmlvdXMgJyArICdyZW5kZXIsIHN1Y2ggYXMgcmVmcy4gTW92ZSB0aGlzIGxvZ2ljIHRvIGNvbXBvbmVudERpZE1vdW50IGFuZCAnICsgJ2NvbXBvbmVudERpZFVwZGF0ZSBpbnN0ZWFkLicsIGdldENvbXBvbmVudE5hbWUob3duZXJGaWJlci50eXBlKSB8fCAnQSBjb21wb25lbnQnKTtcbiAgICAgIH1cblxuICAgICAgaW5zdGFuY2UuX3dhcm5lZEFib3V0UmVmc0luUmVuZGVyID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICB2YXIgZmliZXIgPSBnZXQoY29tcG9uZW50KTtcblxuICBpZiAoIWZpYmVyKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIGdldE5lYXJlc3RNb3VudGVkRmliZXIoZmliZXIpID09PSBmaWJlcjtcbn1cblxuZnVuY3Rpb24gYXNzZXJ0SXNNb3VudGVkKGZpYmVyKSB7XG4gIGlmICghKGdldE5lYXJlc3RNb3VudGVkRmliZXIoZmliZXIpID09PSBmaWJlcikpIHtcbiAgICB7XG4gICAgICB0aHJvdyBFcnJvciggXCJVbmFibGUgdG8gZmluZCBub2RlIG9uIGFuIHVubW91bnRlZCBjb21wb25lbnQuXCIgKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZmluZEN1cnJlbnRGaWJlclVzaW5nU2xvd1BhdGgoZmliZXIpIHtcbiAgdmFyIGFsdGVybmF0ZSA9IGZpYmVyLmFsdGVybmF0ZTtcblxuICBpZiAoIWFsdGVybmF0ZSkge1xuICAgIC8vIElmIHRoZXJlIGlzIG5vIGFsdGVybmF0ZSwgdGhlbiB3ZSBvbmx5IG5lZWQgdG8gY2hlY2sgaWYgaXQgaXMgbW91bnRlZC5cbiAgICB2YXIgbmVhcmVzdE1vdW50ZWQgPSBnZXROZWFyZXN0TW91bnRlZEZpYmVyKGZpYmVyKTtcblxuICAgIGlmICghKG5lYXJlc3RNb3VudGVkICE9PSBudWxsKSkge1xuICAgICAge1xuICAgICAgICB0aHJvdyBFcnJvciggXCJVbmFibGUgdG8gZmluZCBub2RlIG9uIGFuIHVubW91bnRlZCBjb21wb25lbnQuXCIgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobmVhcmVzdE1vdW50ZWQgIT09IGZpYmVyKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gZmliZXI7XG4gIH0gLy8gSWYgd2UgaGF2ZSB0d28gcG9zc2libGUgYnJhbmNoZXMsIHdlJ2xsIHdhbGsgYmFja3dhcmRzIHVwIHRvIHRoZSByb290XG4gIC8vIHRvIHNlZSB3aGF0IHBhdGggdGhlIHJvb3QgcG9pbnRzIHRvLiBPbiB0aGUgd2F5IHdlIG1heSBoaXQgb25lIG9mIHRoZVxuICAvLyBzcGVjaWFsIGNhc2VzIGFuZCB3ZSdsbCBkZWFsIHdpdGggdGhlbS5cblxuXG4gIHZhciBhID0gZmliZXI7XG4gIHZhciBiID0gYWx0ZXJuYXRlO1xuXG4gIHdoaWxlICh0cnVlKSB7XG4gICAgdmFyIHBhcmVudEEgPSBhLnJldHVybjtcblxuICAgIGlmIChwYXJlbnRBID09PSBudWxsKSB7XG4gICAgICAvLyBXZSdyZSBhdCB0aGUgcm9vdC5cbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHZhciBwYXJlbnRCID0gcGFyZW50QS5hbHRlcm5hdGU7XG5cbiAgICBpZiAocGFyZW50QiA9PT0gbnVsbCkge1xuICAgICAgLy8gVGhlcmUgaXMgbm8gYWx0ZXJuYXRlLiBUaGlzIGlzIGFuIHVudXN1YWwgY2FzZS4gQ3VycmVudGx5LCBpdCBvbmx5XG4gICAgICAvLyBoYXBwZW5zIHdoZW4gYSBTdXNwZW5zZSBjb21wb25lbnQgaXMgaGlkZGVuLiBBbiBleHRyYSBmcmFnbWVudCBmaWJlclxuICAgICAgLy8gaXMgaW5zZXJ0ZWQgaW4gYmV0d2VlbiB0aGUgU3VzcGVuc2UgZmliZXIgYW5kIGl0cyBjaGlsZHJlbi4gU2tpcFxuICAgICAgLy8gb3ZlciB0aGlzIGV4dHJhIGZyYWdtZW50IGZpYmVyIGFuZCBwcm9jZWVkIHRvIHRoZSBuZXh0IHBhcmVudC5cbiAgICAgIHZhciBuZXh0UGFyZW50ID0gcGFyZW50QS5yZXR1cm47XG5cbiAgICAgIGlmIChuZXh0UGFyZW50ICE9PSBudWxsKSB7XG4gICAgICAgIGEgPSBiID0gbmV4dFBhcmVudDtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9IC8vIElmIHRoZXJlJ3Mgbm8gcGFyZW50LCB3ZSdyZSBhdCB0aGUgcm9vdC5cblxuXG4gICAgICBicmVhaztcbiAgICB9IC8vIElmIGJvdGggY29waWVzIG9mIHRoZSBwYXJlbnQgZmliZXIgcG9pbnQgdG8gdGhlIHNhbWUgY2hpbGQsIHdlIGNhblxuICAgIC8vIGFzc3VtZSB0aGF0IHRoZSBjaGlsZCBpcyBjdXJyZW50LiBUaGlzIGhhcHBlbnMgd2hlbiB3ZSBiYWlsb3V0IG9uIGxvd1xuICAgIC8vIHByaW9yaXR5OiB0aGUgYmFpbGVkIG91dCBmaWJlcidzIGNoaWxkIHJldXNlcyB0aGUgY3VycmVudCBjaGlsZC5cblxuXG4gICAgaWYgKHBhcmVudEEuY2hpbGQgPT09IHBhcmVudEIuY2hpbGQpIHtcbiAgICAgIHZhciBjaGlsZCA9IHBhcmVudEEuY2hpbGQ7XG5cbiAgICAgIHdoaWxlIChjaGlsZCkge1xuICAgICAgICBpZiAoY2hpbGQgPT09IGEpIHtcbiAgICAgICAgICAvLyBXZSd2ZSBkZXRlcm1pbmVkIHRoYXQgQSBpcyB0aGUgY3VycmVudCBicmFuY2guXG4gICAgICAgICAgYXNzZXJ0SXNNb3VudGVkKHBhcmVudEEpO1xuICAgICAgICAgIHJldHVybiBmaWJlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjaGlsZCA9PT0gYikge1xuICAgICAgICAgIC8vIFdlJ3ZlIGRldGVybWluZWQgdGhhdCBCIGlzIHRoZSBjdXJyZW50IGJyYW5jaC5cbiAgICAgICAgICBhc3NlcnRJc01vdW50ZWQocGFyZW50QSk7XG4gICAgICAgICAgcmV0dXJuIGFsdGVybmF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNoaWxkID0gY2hpbGQuc2libGluZztcbiAgICAgIH0gLy8gV2Ugc2hvdWxkIG5ldmVyIGhhdmUgYW4gYWx0ZXJuYXRlIGZvciBhbnkgbW91bnRpbmcgbm9kZS4gU28gdGhlIG9ubHlcbiAgICAgIC8vIHdheSB0aGlzIGNvdWxkIHBvc3NpYmx5IGhhcHBlbiBpcyBpZiB0aGlzIHdhcyB1bm1vdW50ZWQsIGlmIGF0IGFsbC5cblxuXG4gICAgICB7XG4gICAgICAgIHtcbiAgICAgICAgICB0aHJvdyBFcnJvciggXCJVbmFibGUgdG8gZmluZCBub2RlIG9uIGFuIHVubW91bnRlZCBjb21wb25lbnQuXCIgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChhLnJldHVybiAhPT0gYi5yZXR1cm4pIHtcbiAgICAgIC8vIFRoZSByZXR1cm4gcG9pbnRlciBvZiBBIGFuZCB0aGUgcmV0dXJuIHBvaW50ZXIgb2YgQiBwb2ludCB0byBkaWZmZXJlbnRcbiAgICAgIC8vIGZpYmVycy4gV2UgYXNzdW1lIHRoYXQgcmV0dXJuIHBvaW50ZXJzIG5ldmVyIGNyaXNzLWNyb3NzLCBzbyBBIG11c3RcbiAgICAgIC8vIGJlbG9uZyB0byB0aGUgY2hpbGQgc2V0IG9mIEEucmV0dXJuLCBhbmQgQiBtdXN0IGJlbG9uZyB0byB0aGUgY2hpbGRcbiAgICAgIC8vIHNldCBvZiBCLnJldHVybi5cbiAgICAgIGEgPSBwYXJlbnRBO1xuICAgICAgYiA9IHBhcmVudEI7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRoZSByZXR1cm4gcG9pbnRlcnMgcG9pbnQgdG8gdGhlIHNhbWUgZmliZXIuIFdlJ2xsIGhhdmUgdG8gdXNlIHRoZVxuICAgICAgLy8gZGVmYXVsdCwgc2xvdyBwYXRoOiBzY2FuIHRoZSBjaGlsZCBzZXRzIG9mIGVhY2ggcGFyZW50IGFsdGVybmF0ZSB0byBzZWVcbiAgICAgIC8vIHdoaWNoIGNoaWxkIGJlbG9uZ3MgdG8gd2hpY2ggc2V0LlxuICAgICAgLy9cbiAgICAgIC8vIFNlYXJjaCBwYXJlbnQgQSdzIGNoaWxkIHNldFxuICAgICAgdmFyIGRpZEZpbmRDaGlsZCA9IGZhbHNlO1xuICAgICAgdmFyIF9jaGlsZCA9IHBhcmVudEEuY2hpbGQ7XG5cbiAgICAgIHdoaWxlIChfY2hpbGQpIHtcbiAgICAgICAgaWYgKF9jaGlsZCA9PT0gYSkge1xuICAgICAgICAgIGRpZEZpbmRDaGlsZCA9IHRydWU7XG4gICAgICAgICAgYSA9IHBhcmVudEE7XG4gICAgICAgICAgYiA9IHBhcmVudEI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoX2NoaWxkID09PSBiKSB7XG4gICAgICAgICAgZGlkRmluZENoaWxkID0gdHJ1ZTtcbiAgICAgICAgICBiID0gcGFyZW50QTtcbiAgICAgICAgICBhID0gcGFyZW50QjtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIF9jaGlsZCA9IF9jaGlsZC5zaWJsaW5nO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWRpZEZpbmRDaGlsZCkge1xuICAgICAgICAvLyBTZWFyY2ggcGFyZW50IEIncyBjaGlsZCBzZXRcbiAgICAgICAgX2NoaWxkID0gcGFyZW50Qi5jaGlsZDtcblxuICAgICAgICB3aGlsZSAoX2NoaWxkKSB7XG4gICAgICAgICAgaWYgKF9jaGlsZCA9PT0gYSkge1xuICAgICAgICAgICAgZGlkRmluZENoaWxkID0gdHJ1ZTtcbiAgICAgICAgICAgIGEgPSBwYXJlbnRCO1xuICAgICAgICAgICAgYiA9IHBhcmVudEE7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoX2NoaWxkID09PSBiKSB7XG4gICAgICAgICAgICBkaWRGaW5kQ2hpbGQgPSB0cnVlO1xuICAgICAgICAgICAgYiA9IHBhcmVudEI7XG4gICAgICAgICAgICBhID0gcGFyZW50QTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIF9jaGlsZCA9IF9jaGlsZC5zaWJsaW5nO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFkaWRGaW5kQ2hpbGQpIHtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvciggXCJDaGlsZCB3YXMgbm90IGZvdW5kIGluIGVpdGhlciBwYXJlbnQgc2V0LiBUaGlzIGluZGljYXRlcyBhIGJ1ZyBpbiBSZWFjdCByZWxhdGVkIHRvIHRoZSByZXR1cm4gcG9pbnRlci4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCIgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIShhLmFsdGVybmF0ZSA9PT0gYikpIHtcbiAgICAgIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoIFwiUmV0dXJuIGZpYmVycyBzaG91bGQgYWx3YXlzIGJlIGVhY2ggb3RoZXJzJyBhbHRlcm5hdGVzLiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLlwiICk7XG4gICAgICB9XG4gICAgfVxuICB9IC8vIElmIHRoZSByb290IGlzIG5vdCBhIGhvc3QgY29udGFpbmVyLCB3ZSdyZSBpbiBhIGRpc2Nvbm5lY3RlZCB0cmVlLiBJLmUuXG4gIC8vIHVubW91bnRlZC5cblxuXG4gIGlmICghKGEudGFnID09PSBIb3N0Um9vdCkpIHtcbiAgICB7XG4gICAgICB0aHJvdyBFcnJvciggXCJVbmFibGUgdG8gZmluZCBub2RlIG9uIGFuIHVubW91bnRlZCBjb21wb25lbnQuXCIgKTtcbiAgICB9XG4gIH1cblxuICBpZiAoYS5zdGF0ZU5vZGUuY3VycmVudCA9PT0gYSkge1xuICAgIC8vIFdlJ3ZlIGRldGVybWluZWQgdGhhdCBBIGlzIHRoZSBjdXJyZW50IGJyYW5jaC5cbiAgICByZXR1cm4gZmliZXI7XG4gIH0gLy8gT3RoZXJ3aXNlIEIgaGFzIHRvIGJlIGN1cnJlbnQgYnJhbmNoLlxuXG5cbiAgcmV0dXJuIGFsdGVybmF0ZTtcbn1cbmZ1bmN0aW9uIGZpbmRDdXJyZW50SG9zdEZpYmVyKHBhcmVudCkge1xuICB2YXIgY3VycmVudFBhcmVudCA9IGZpbmRDdXJyZW50RmliZXJVc2luZ1Nsb3dQYXRoKHBhcmVudCk7XG5cbiAgaWYgKCFjdXJyZW50UGFyZW50KSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH0gLy8gTmV4dCB3ZSdsbCBkcmlsbCBkb3duIHRoaXMgY29tcG9uZW50IHRvIGZpbmQgdGhlIGZpcnN0IEhvc3RDb21wb25lbnQvVGV4dC5cblxuXG4gIHZhciBub2RlID0gY3VycmVudFBhcmVudDtcblxuICB3aGlsZSAodHJ1ZSkge1xuICAgIGlmIChub2RlLnRhZyA9PT0gSG9zdENvbXBvbmVudCB8fCBub2RlLnRhZyA9PT0gSG9zdFRleHQpIHtcbiAgICAgIHJldHVybiBub2RlO1xuICAgIH0gZWxzZSBpZiAobm9kZS5jaGlsZCkge1xuICAgICAgbm9kZS5jaGlsZC5yZXR1cm4gPSBub2RlO1xuICAgICAgbm9kZSA9IG5vZGUuY2hpbGQ7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAobm9kZSA9PT0gY3VycmVudFBhcmVudCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgd2hpbGUgKCFub2RlLnNpYmxpbmcpIHtcbiAgICAgIGlmICghbm9kZS5yZXR1cm4gfHwgbm9kZS5yZXR1cm4gPT09IGN1cnJlbnRQYXJlbnQpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIG5vZGUgPSBub2RlLnJldHVybjtcbiAgICB9XG5cbiAgICBub2RlLnNpYmxpbmcucmV0dXJuID0gbm9kZS5yZXR1cm47XG4gICAgbm9kZSA9IG5vZGUuc2libGluZztcbiAgfSAvLyBGbG93IG5lZWRzIHRoZSByZXR1cm4gbnVsbCBoZXJlLCBidXQgRVNMaW50IGNvbXBsYWlucyBhYm91dCBpdC5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVucmVhY2hhYmxlXG5cblxuICByZXR1cm4gbnVsbDtcbn1cbmZ1bmN0aW9uIGZpbmRDdXJyZW50SG9zdEZpYmVyV2l0aE5vUG9ydGFscyhwYXJlbnQpIHtcbiAgdmFyIGN1cnJlbnRQYXJlbnQgPSBmaW5kQ3VycmVudEZpYmVyVXNpbmdTbG93UGF0aChwYXJlbnQpO1xuXG4gIGlmICghY3VycmVudFBhcmVudCkge1xuICAgIHJldHVybiBudWxsO1xuICB9IC8vIE5leHQgd2UnbGwgZHJpbGwgZG93biB0aGlzIGNvbXBvbmVudCB0byBmaW5kIHRoZSBmaXJzdCBIb3N0Q29tcG9uZW50L1RleHQuXG5cblxuICB2YXIgbm9kZSA9IGN1cnJlbnRQYXJlbnQ7XG5cbiAgd2hpbGUgKHRydWUpIHtcbiAgICBpZiAobm9kZS50YWcgPT09IEhvc3RDb21wb25lbnQgfHwgbm9kZS50YWcgPT09IEhvc3RUZXh0IHx8IGVuYWJsZUZ1bmRhbWVudGFsQVBJICkge1xuICAgICAgcmV0dXJuIG5vZGU7XG4gICAgfSBlbHNlIGlmIChub2RlLmNoaWxkICYmIG5vZGUudGFnICE9PSBIb3N0UG9ydGFsKSB7XG4gICAgICBub2RlLmNoaWxkLnJldHVybiA9IG5vZGU7XG4gICAgICBub2RlID0gbm9kZS5jaGlsZDtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmIChub2RlID09PSBjdXJyZW50UGFyZW50KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICB3aGlsZSAoIW5vZGUuc2libGluZykge1xuICAgICAgaWYgKCFub2RlLnJldHVybiB8fCBub2RlLnJldHVybiA9PT0gY3VycmVudFBhcmVudCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgbm9kZSA9IG5vZGUucmV0dXJuO1xuICAgIH1cblxuICAgIG5vZGUuc2libGluZy5yZXR1cm4gPSBub2RlLnJldHVybjtcbiAgICBub2RlID0gbm9kZS5zaWJsaW5nO1xuICB9IC8vIEZsb3cgbmVlZHMgdGhlIHJldHVybiBudWxsIGhlcmUsIGJ1dCBFU0xpbnQgY29tcGxhaW5zIGFib3V0IGl0LlxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5yZWFjaGFibGVcblxuXG4gIHJldHVybiBudWxsO1xufVxuZnVuY3Rpb24gZG9lc0ZpYmVyQ29udGFpbihwYXJlbnRGaWJlciwgY2hpbGRGaWJlcikge1xuICB2YXIgbm9kZSA9IGNoaWxkRmliZXI7XG4gIHZhciBwYXJlbnRGaWJlckFsdGVybmF0ZSA9IHBhcmVudEZpYmVyLmFsdGVybmF0ZTtcblxuICB3aGlsZSAobm9kZSAhPT0gbnVsbCkge1xuICAgIGlmIChub2RlID09PSBwYXJlbnRGaWJlciB8fCBub2RlID09PSBwYXJlbnRGaWJlckFsdGVybmF0ZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgbm9kZSA9IG5vZGUucmV0dXJuO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG52YXIgYXR0ZW1wdFVzZXJCbG9ja2luZ0h5ZHJhdGlvbjtcbmZ1bmN0aW9uIHNldEF0dGVtcHRVc2VyQmxvY2tpbmdIeWRyYXRpb24oZm4pIHtcbiAgYXR0ZW1wdFVzZXJCbG9ja2luZ0h5ZHJhdGlvbiA9IGZuO1xufVxudmFyIGF0dGVtcHRDb250aW51b3VzSHlkcmF0aW9uO1xuZnVuY3Rpb24gc2V0QXR0ZW1wdENvbnRpbnVvdXNIeWRyYXRpb24oZm4pIHtcbiAgYXR0ZW1wdENvbnRpbnVvdXNIeWRyYXRpb24gPSBmbjtcbn1cbnZhciBhdHRlbXB0SHlkcmF0aW9uQXRDdXJyZW50UHJpb3JpdHk7XG5mdW5jdGlvbiBzZXRBdHRlbXB0SHlkcmF0aW9uQXRDdXJyZW50UHJpb3JpdHkoZm4pIHtcbiAgYXR0ZW1wdEh5ZHJhdGlvbkF0Q3VycmVudFByaW9yaXR5ID0gZm47XG59XG52YXIgYXR0ZW1wdEh5ZHJhdGlvbkF0UHJpb3JpdHk7XG5mdW5jdGlvbiBzZXRBdHRlbXB0SHlkcmF0aW9uQXRQcmlvcml0eShmbikge1xuICBhdHRlbXB0SHlkcmF0aW9uQXRQcmlvcml0eSA9IGZuO1xufSAvLyBUT0RPOiBVcGdyYWRlIHRoaXMgZGVmaW5pdGlvbiBvbmNlIHdlJ3JlIG9uIGEgbmV3ZXIgdmVyc2lvbiBvZiBGbG93IHRoYXRcbnZhciBoYXNTY2hlZHVsZWRSZXBsYXlBdHRlbXB0ID0gZmFsc2U7IC8vIFRoZSBxdWV1ZSBvZiBkaXNjcmV0ZSBldmVudHMgdG8gYmUgcmVwbGF5ZWQuXG5cbnZhciBxdWV1ZWREaXNjcmV0ZUV2ZW50cyA9IFtdOyAvLyBJbmRpY2F0ZXMgaWYgYW55IGNvbnRpbnVvdXMgZXZlbnQgdGFyZ2V0cyBhcmUgbm9uLW51bGwgZm9yIGVhcmx5IGJhaWxvdXQuXG4vLyBpZiB0aGUgbGFzdCB0YXJnZXQgd2FzIGRlaHlkcmF0ZWQuXG5cbnZhciBxdWV1ZWRGb2N1cyA9IG51bGw7XG52YXIgcXVldWVkRHJhZyA9IG51bGw7XG52YXIgcXVldWVkTW91c2UgPSBudWxsOyAvLyBGb3IgcG9pbnRlciBldmVudHMgdGhlcmUgY2FuIGJlIG9uZSBsYXRlc3QgZXZlbnQgcGVyIHBvaW50ZXJJZC5cblxudmFyIHF1ZXVlZFBvaW50ZXJzID0gbmV3IE1hcCgpO1xudmFyIHF1ZXVlZFBvaW50ZXJDYXB0dXJlcyA9IG5ldyBNYXAoKTsgLy8gV2UgY291bGQgY29uc2lkZXIgcmVwbGF5aW5nIHNlbGVjdGlvbmNoYW5nZSBhbmQgdG91Y2htb3ZlcyB0b28uXG5cbnZhciBxdWV1ZWRFeHBsaWNpdEh5ZHJhdGlvblRhcmdldHMgPSBbXTtcbmZ1bmN0aW9uIGhhc1F1ZXVlZERpc2NyZXRlRXZlbnRzKCkge1xuICByZXR1cm4gcXVldWVkRGlzY3JldGVFdmVudHMubGVuZ3RoID4gMDtcbn1cbnZhciBkaXNjcmV0ZVJlcGxheWFibGVFdmVudHMgPSBbJ21vdXNlZG93bicsICdtb3VzZXVwJywgJ3RvdWNoY2FuY2VsJywgJ3RvdWNoZW5kJywgJ3RvdWNoc3RhcnQnLCAnYXV4Y2xpY2snLCAnZGJsY2xpY2snLCAncG9pbnRlcmNhbmNlbCcsICdwb2ludGVyZG93bicsICdwb2ludGVydXAnLCAnZHJhZ2VuZCcsICdkcmFnc3RhcnQnLCAnZHJvcCcsICdjb21wb3NpdGlvbmVuZCcsICdjb21wb3NpdGlvbnN0YXJ0JywgJ2tleWRvd24nLCAna2V5cHJlc3MnLCAna2V5dXAnLCAnaW5wdXQnLCAndGV4dElucHV0JywgLy8gSW50ZW50aW9uYWxseSBjYW1lbENhc2Vcbidjb3B5JywgJ2N1dCcsICdwYXN0ZScsICdjbGljaycsICdjaGFuZ2UnLCAnY29udGV4dG1lbnUnLCAncmVzZXQnLCAnc3VibWl0J107XG5mdW5jdGlvbiBpc1JlcGxheWFibGVEaXNjcmV0ZUV2ZW50KGV2ZW50VHlwZSkge1xuICByZXR1cm4gZGlzY3JldGVSZXBsYXlhYmxlRXZlbnRzLmluZGV4T2YoZXZlbnRUeXBlKSA+IC0xO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVRdWV1ZWRSZXBsYXlhYmxlRXZlbnQoYmxvY2tlZE9uLCBkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIHRhcmdldENvbnRhaW5lciwgbmF0aXZlRXZlbnQpIHtcbiAgcmV0dXJuIHtcbiAgICBibG9ja2VkT246IGJsb2NrZWRPbixcbiAgICBkb21FdmVudE5hbWU6IGRvbUV2ZW50TmFtZSxcbiAgICBldmVudFN5c3RlbUZsYWdzOiBldmVudFN5c3RlbUZsYWdzIHwgSVNfUkVQTEFZRUQsXG4gICAgbmF0aXZlRXZlbnQ6IG5hdGl2ZUV2ZW50LFxuICAgIHRhcmdldENvbnRhaW5lcnM6IFt0YXJnZXRDb250YWluZXJdXG4gIH07XG59XG5cbmZ1bmN0aW9uIHF1ZXVlRGlzY3JldGVFdmVudChibG9ja2VkT24sIGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgdGFyZ2V0Q29udGFpbmVyLCBuYXRpdmVFdmVudCkge1xuICB2YXIgcXVldWVkRXZlbnQgPSBjcmVhdGVRdWV1ZWRSZXBsYXlhYmxlRXZlbnQoYmxvY2tlZE9uLCBkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIHRhcmdldENvbnRhaW5lciwgbmF0aXZlRXZlbnQpO1xuICBxdWV1ZWREaXNjcmV0ZUV2ZW50cy5wdXNoKHF1ZXVlZEV2ZW50KTtcbn0gLy8gUmVzZXRzIHRoZSByZXBsYXlpbmcgZm9yIHRoaXMgdHlwZSBvZiBjb250aW51b3VzIGV2ZW50IHRvIG5vIGV2ZW50LlxuXG5mdW5jdGlvbiBjbGVhcklmQ29udGludW91c0V2ZW50KGRvbUV2ZW50TmFtZSwgbmF0aXZlRXZlbnQpIHtcbiAgc3dpdGNoIChkb21FdmVudE5hbWUpIHtcbiAgICBjYXNlICdmb2N1c2luJzpcbiAgICBjYXNlICdmb2N1c291dCc6XG4gICAgICBxdWV1ZWRGb2N1cyA9IG51bGw7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2RyYWdlbnRlcic6XG4gICAgY2FzZSAnZHJhZ2xlYXZlJzpcbiAgICAgIHF1ZXVlZERyYWcgPSBudWxsO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdtb3VzZW92ZXInOlxuICAgIGNhc2UgJ21vdXNlb3V0JzpcbiAgICAgIHF1ZXVlZE1vdXNlID0gbnVsbDtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAncG9pbnRlcm92ZXInOlxuICAgIGNhc2UgJ3BvaW50ZXJvdXQnOlxuICAgICAge1xuICAgICAgICB2YXIgcG9pbnRlcklkID0gbmF0aXZlRXZlbnQucG9pbnRlcklkO1xuICAgICAgICBxdWV1ZWRQb2ludGVycy5kZWxldGUocG9pbnRlcklkKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICBjYXNlICdnb3Rwb2ludGVyY2FwdHVyZSc6XG4gICAgY2FzZSAnbG9zdHBvaW50ZXJjYXB0dXJlJzpcbiAgICAgIHtcbiAgICAgICAgdmFyIF9wb2ludGVySWQgPSBuYXRpdmVFdmVudC5wb2ludGVySWQ7XG4gICAgICAgIHF1ZXVlZFBvaW50ZXJDYXB0dXJlcy5kZWxldGUoX3BvaW50ZXJJZCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGFjY3VtdWxhdGVPckNyZWF0ZUNvbnRpbnVvdXNRdWV1ZWRSZXBsYXlhYmxlRXZlbnQoZXhpc3RpbmdRdWV1ZWRFdmVudCwgYmxvY2tlZE9uLCBkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIHRhcmdldENvbnRhaW5lciwgbmF0aXZlRXZlbnQpIHtcbiAgaWYgKGV4aXN0aW5nUXVldWVkRXZlbnQgPT09IG51bGwgfHwgZXhpc3RpbmdRdWV1ZWRFdmVudC5uYXRpdmVFdmVudCAhPT0gbmF0aXZlRXZlbnQpIHtcbiAgICB2YXIgcXVldWVkRXZlbnQgPSBjcmVhdGVRdWV1ZWRSZXBsYXlhYmxlRXZlbnQoYmxvY2tlZE9uLCBkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIHRhcmdldENvbnRhaW5lciwgbmF0aXZlRXZlbnQpO1xuXG4gICAgaWYgKGJsb2NrZWRPbiAhPT0gbnVsbCkge1xuICAgICAgdmFyIF9maWJlcjIgPSBnZXRJbnN0YW5jZUZyb21Ob2RlKGJsb2NrZWRPbik7XG5cbiAgICAgIGlmIChfZmliZXIyICE9PSBudWxsKSB7XG4gICAgICAgIC8vIEF0dGVtcHQgdG8gaW5jcmVhc2UgdGhlIHByaW9yaXR5IG9mIHRoaXMgdGFyZ2V0LlxuICAgICAgICBhdHRlbXB0Q29udGludW91c0h5ZHJhdGlvbihfZmliZXIyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcXVldWVkRXZlbnQ7XG4gIH0gLy8gSWYgd2UgaGF2ZSBhbHJlYWR5IHF1ZXVlZCB0aGlzIGV4YWN0IGV2ZW50LCB0aGVuIGl0J3MgYmVjYXVzZVxuICAvLyB0aGUgZGlmZmVyZW50IGV2ZW50IHN5c3RlbXMgaGF2ZSBkaWZmZXJlbnQgRE9NIGV2ZW50IGxpc3RlbmVycy5cbiAgLy8gV2UgY2FuIGFjY3VtdWxhdGUgdGhlIGZsYWdzLCBhbmQgdGhlIHRhcmdldENvbnRhaW5lcnMsIGFuZFxuICAvLyBzdG9yZSBhIHNpbmdsZSBldmVudCB0byBiZSByZXBsYXllZC5cblxuXG4gIGV4aXN0aW5nUXVldWVkRXZlbnQuZXZlbnRTeXN0ZW1GbGFncyB8PSBldmVudFN5c3RlbUZsYWdzO1xuICB2YXIgdGFyZ2V0Q29udGFpbmVycyA9IGV4aXN0aW5nUXVldWVkRXZlbnQudGFyZ2V0Q29udGFpbmVycztcblxuICBpZiAodGFyZ2V0Q29udGFpbmVyICE9PSBudWxsICYmIHRhcmdldENvbnRhaW5lcnMuaW5kZXhPZih0YXJnZXRDb250YWluZXIpID09PSAtMSkge1xuICAgIHRhcmdldENvbnRhaW5lcnMucHVzaCh0YXJnZXRDb250YWluZXIpO1xuICB9XG5cbiAgcmV0dXJuIGV4aXN0aW5nUXVldWVkRXZlbnQ7XG59XG5cbmZ1bmN0aW9uIHF1ZXVlSWZDb250aW51b3VzRXZlbnQoYmxvY2tlZE9uLCBkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIHRhcmdldENvbnRhaW5lciwgbmF0aXZlRXZlbnQpIHtcbiAgLy8gVGhlc2Ugc2V0IHJlbGF0ZWRUYXJnZXQgdG8gbnVsbCBiZWNhdXNlIHRoZSByZXBsYXllZCBldmVudCB3aWxsIGJlIHRyZWF0ZWQgYXMgaWYgd2VcbiAgLy8gbW92ZWQgZnJvbSBvdXRzaWRlIHRoZSB3aW5kb3cgKG5vIHRhcmdldCkgb250byB0aGUgdGFyZ2V0IG9uY2UgaXQgaHlkcmF0ZXMuXG4gIC8vIEluc3RlYWQgb2YgbXV0YXRpbmcgd2UgY291bGQgY2xvbmUgdGhlIGV2ZW50LlxuICBzd2l0Y2ggKGRvbUV2ZW50TmFtZSkge1xuICAgIGNhc2UgJ2ZvY3VzaW4nOlxuICAgICAge1xuICAgICAgICB2YXIgZm9jdXNFdmVudCA9IG5hdGl2ZUV2ZW50O1xuICAgICAgICBxdWV1ZWRGb2N1cyA9IGFjY3VtdWxhdGVPckNyZWF0ZUNvbnRpbnVvdXNRdWV1ZWRSZXBsYXlhYmxlRXZlbnQocXVldWVkRm9jdXMsIGJsb2NrZWRPbiwgZG9tRXZlbnROYW1lLCBldmVudFN5c3RlbUZsYWdzLCB0YXJnZXRDb250YWluZXIsIGZvY3VzRXZlbnQpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgIGNhc2UgJ2RyYWdlbnRlcic6XG4gICAgICB7XG4gICAgICAgIHZhciBkcmFnRXZlbnQgPSBuYXRpdmVFdmVudDtcbiAgICAgICAgcXVldWVkRHJhZyA9IGFjY3VtdWxhdGVPckNyZWF0ZUNvbnRpbnVvdXNRdWV1ZWRSZXBsYXlhYmxlRXZlbnQocXVldWVkRHJhZywgYmxvY2tlZE9uLCBkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIHRhcmdldENvbnRhaW5lciwgZHJhZ0V2ZW50KTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICBjYXNlICdtb3VzZW92ZXInOlxuICAgICAge1xuICAgICAgICB2YXIgbW91c2VFdmVudCA9IG5hdGl2ZUV2ZW50O1xuICAgICAgICBxdWV1ZWRNb3VzZSA9IGFjY3VtdWxhdGVPckNyZWF0ZUNvbnRpbnVvdXNRdWV1ZWRSZXBsYXlhYmxlRXZlbnQocXVldWVkTW91c2UsIGJsb2NrZWRPbiwgZG9tRXZlbnROYW1lLCBldmVudFN5c3RlbUZsYWdzLCB0YXJnZXRDb250YWluZXIsIG1vdXNlRXZlbnQpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgIGNhc2UgJ3BvaW50ZXJvdmVyJzpcbiAgICAgIHtcbiAgICAgICAgdmFyIHBvaW50ZXJFdmVudCA9IG5hdGl2ZUV2ZW50O1xuICAgICAgICB2YXIgcG9pbnRlcklkID0gcG9pbnRlckV2ZW50LnBvaW50ZXJJZDtcbiAgICAgICAgcXVldWVkUG9pbnRlcnMuc2V0KHBvaW50ZXJJZCwgYWNjdW11bGF0ZU9yQ3JlYXRlQ29udGludW91c1F1ZXVlZFJlcGxheWFibGVFdmVudChxdWV1ZWRQb2ludGVycy5nZXQocG9pbnRlcklkKSB8fCBudWxsLCBibG9ja2VkT24sIGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgdGFyZ2V0Q29udGFpbmVyLCBwb2ludGVyRXZlbnQpKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICBjYXNlICdnb3Rwb2ludGVyY2FwdHVyZSc6XG4gICAgICB7XG4gICAgICAgIHZhciBfcG9pbnRlckV2ZW50ID0gbmF0aXZlRXZlbnQ7XG4gICAgICAgIHZhciBfcG9pbnRlcklkMiA9IF9wb2ludGVyRXZlbnQucG9pbnRlcklkO1xuICAgICAgICBxdWV1ZWRQb2ludGVyQ2FwdHVyZXMuc2V0KF9wb2ludGVySWQyLCBhY2N1bXVsYXRlT3JDcmVhdGVDb250aW51b3VzUXVldWVkUmVwbGF5YWJsZUV2ZW50KHF1ZXVlZFBvaW50ZXJDYXB0dXJlcy5nZXQoX3BvaW50ZXJJZDIpIHx8IG51bGwsIGJsb2NrZWRPbiwgZG9tRXZlbnROYW1lLCBldmVudFN5c3RlbUZsYWdzLCB0YXJnZXRDb250YWluZXIsIF9wb2ludGVyRXZlbnQpKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59IC8vIENoZWNrIGlmIHRoaXMgdGFyZ2V0IGlzIHVuYmxvY2tlZC4gUmV0dXJucyB0cnVlIGlmIGl0J3MgdW5ibG9ja2VkLlxuXG5mdW5jdGlvbiBhdHRlbXB0RXhwbGljaXRIeWRyYXRpb25UYXJnZXQocXVldWVkVGFyZ2V0KSB7XG4gIC8vIFRPRE86IFRoaXMgZnVuY3Rpb24gc2hhcmVzIGEgbG90IG9mIGxvZ2ljIHdpdGggYXR0ZW1wdFRvRGlzcGF0Y2hFdmVudC5cbiAgLy8gVHJ5IHRvIHVuaWZ5IHRoZW0uIEl0J3MgYSBiaXQgdHJpY2t5IHNpbmNlIGl0IHdvdWxkIHJlcXVpcmUgdHdvIHJldHVyblxuICAvLyB2YWx1ZXMuXG4gIHZhciB0YXJnZXRJbnN0ID0gZ2V0Q2xvc2VzdEluc3RhbmNlRnJvbU5vZGUocXVldWVkVGFyZ2V0LnRhcmdldCk7XG5cbiAgaWYgKHRhcmdldEluc3QgIT09IG51bGwpIHtcbiAgICB2YXIgbmVhcmVzdE1vdW50ZWQgPSBnZXROZWFyZXN0TW91bnRlZEZpYmVyKHRhcmdldEluc3QpO1xuXG4gICAgaWYgKG5lYXJlc3RNb3VudGVkICE9PSBudWxsKSB7XG4gICAgICB2YXIgdGFnID0gbmVhcmVzdE1vdW50ZWQudGFnO1xuXG4gICAgICBpZiAodGFnID09PSBTdXNwZW5zZUNvbXBvbmVudCkge1xuICAgICAgICB2YXIgaW5zdGFuY2UgPSBnZXRTdXNwZW5zZUluc3RhbmNlRnJvbUZpYmVyKG5lYXJlc3RNb3VudGVkKTtcblxuICAgICAgICBpZiAoaW5zdGFuY2UgIT09IG51bGwpIHtcbiAgICAgICAgICAvLyBXZSdyZSBibG9ja2VkIG9uIGh5ZHJhdGluZyB0aGlzIGJvdW5kYXJ5LlxuICAgICAgICAgIC8vIEluY3JlYXNlIGl0cyBwcmlvcml0eS5cbiAgICAgICAgICBxdWV1ZWRUYXJnZXQuYmxvY2tlZE9uID0gaW5zdGFuY2U7XG4gICAgICAgICAgYXR0ZW1wdEh5ZHJhdGlvbkF0UHJpb3JpdHkocXVldWVkVGFyZ2V0LmxhbmVQcmlvcml0eSwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgU2NoZWR1bGVyLnVuc3RhYmxlX3J1bldpdGhQcmlvcml0eShxdWV1ZWRUYXJnZXQucHJpb3JpdHksIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgYXR0ZW1wdEh5ZHJhdGlvbkF0Q3VycmVudFByaW9yaXR5KG5lYXJlc3RNb3VudGVkKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0YWcgPT09IEhvc3RSb290KSB7XG4gICAgICAgIHZhciByb290ID0gbmVhcmVzdE1vdW50ZWQuc3RhdGVOb2RlO1xuXG4gICAgICAgIGlmIChyb290Lmh5ZHJhdGUpIHtcbiAgICAgICAgICBxdWV1ZWRUYXJnZXQuYmxvY2tlZE9uID0gZ2V0Q29udGFpbmVyRnJvbUZpYmVyKG5lYXJlc3RNb3VudGVkKTsgLy8gV2UgZG9uJ3QgY3VycmVudGx5IGhhdmUgYSB3YXkgdG8gaW5jcmVhc2UgdGhlIHByaW9yaXR5IG9mXG4gICAgICAgICAgLy8gYSByb290IG90aGVyIHRoYW4gc3luYy5cblxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHF1ZXVlZFRhcmdldC5ibG9ja2VkT24gPSBudWxsO1xufVxuXG5mdW5jdGlvbiBhdHRlbXB0UmVwbGF5Q29udGludW91c1F1ZXVlZEV2ZW50KHF1ZXVlZEV2ZW50KSB7XG4gIGlmIChxdWV1ZWRFdmVudC5ibG9ja2VkT24gIT09IG51bGwpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB2YXIgdGFyZ2V0Q29udGFpbmVycyA9IHF1ZXVlZEV2ZW50LnRhcmdldENvbnRhaW5lcnM7XG5cbiAgd2hpbGUgKHRhcmdldENvbnRhaW5lcnMubGVuZ3RoID4gMCkge1xuICAgIHZhciB0YXJnZXRDb250YWluZXIgPSB0YXJnZXRDb250YWluZXJzWzBdO1xuICAgIHZhciBuZXh0QmxvY2tlZE9uID0gYXR0ZW1wdFRvRGlzcGF0Y2hFdmVudChxdWV1ZWRFdmVudC5kb21FdmVudE5hbWUsIHF1ZXVlZEV2ZW50LmV2ZW50U3lzdGVtRmxhZ3MsIHRhcmdldENvbnRhaW5lciwgcXVldWVkRXZlbnQubmF0aXZlRXZlbnQpO1xuXG4gICAgaWYgKG5leHRCbG9ja2VkT24gIT09IG51bGwpIHtcbiAgICAgIC8vIFdlJ3JlIHN0aWxsIGJsb2NrZWQuIFRyeSBhZ2FpbiBsYXRlci5cbiAgICAgIHZhciBfZmliZXIzID0gZ2V0SW5zdGFuY2VGcm9tTm9kZShuZXh0QmxvY2tlZE9uKTtcblxuICAgICAgaWYgKF9maWJlcjMgIT09IG51bGwpIHtcbiAgICAgICAgYXR0ZW1wdENvbnRpbnVvdXNIeWRyYXRpb24oX2ZpYmVyMyk7XG4gICAgICB9XG5cbiAgICAgIHF1ZXVlZEV2ZW50LmJsb2NrZWRPbiA9IG5leHRCbG9ja2VkT247XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSAvLyBUaGlzIHRhcmdldCBjb250YWluZXIgd2FzIHN1Y2Nlc3NmdWxseSBkaXNwYXRjaGVkLiBUcnkgdGhlIG5leHQuXG5cblxuICAgIHRhcmdldENvbnRhaW5lcnMuc2hpZnQoKTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBhdHRlbXB0UmVwbGF5Q29udGludW91c1F1ZXVlZEV2ZW50SW5NYXAocXVldWVkRXZlbnQsIGtleSwgbWFwKSB7XG4gIGlmIChhdHRlbXB0UmVwbGF5Q29udGludW91c1F1ZXVlZEV2ZW50KHF1ZXVlZEV2ZW50KSkge1xuICAgIG1hcC5kZWxldGUoa2V5KTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZXBsYXlVbmJsb2NrZWRFdmVudHMoKSB7XG4gIGhhc1NjaGVkdWxlZFJlcGxheUF0dGVtcHQgPSBmYWxzZTsgLy8gRmlyc3QgcmVwbGF5IGRpc2NyZXRlIGV2ZW50cy5cblxuICB3aGlsZSAocXVldWVkRGlzY3JldGVFdmVudHMubGVuZ3RoID4gMCkge1xuICAgIHZhciBuZXh0RGlzY3JldGVFdmVudCA9IHF1ZXVlZERpc2NyZXRlRXZlbnRzWzBdO1xuXG4gICAgaWYgKG5leHREaXNjcmV0ZUV2ZW50LmJsb2NrZWRPbiAhPT0gbnVsbCkge1xuICAgICAgLy8gV2UncmUgc3RpbGwgYmxvY2tlZC5cbiAgICAgIC8vIEluY3JlYXNlIHRoZSBwcmlvcml0eSBvZiB0aGlzIGJvdW5kYXJ5IHRvIHVuYmxvY2tcbiAgICAgIC8vIHRoZSBuZXh0IGRpc2NyZXRlIGV2ZW50LlxuICAgICAgdmFyIF9maWJlcjQgPSBnZXRJbnN0YW5jZUZyb21Ob2RlKG5leHREaXNjcmV0ZUV2ZW50LmJsb2NrZWRPbik7XG5cbiAgICAgIGlmIChfZmliZXI0ICE9PSBudWxsKSB7XG4gICAgICAgIGF0dGVtcHRVc2VyQmxvY2tpbmdIeWRyYXRpb24oX2ZpYmVyNCk7XG4gICAgICB9XG5cbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHZhciB0YXJnZXRDb250YWluZXJzID0gbmV4dERpc2NyZXRlRXZlbnQudGFyZ2V0Q29udGFpbmVycztcblxuICAgIHdoaWxlICh0YXJnZXRDb250YWluZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgIHZhciB0YXJnZXRDb250YWluZXIgPSB0YXJnZXRDb250YWluZXJzWzBdO1xuICAgICAgdmFyIG5leHRCbG9ja2VkT24gPSBhdHRlbXB0VG9EaXNwYXRjaEV2ZW50KG5leHREaXNjcmV0ZUV2ZW50LmRvbUV2ZW50TmFtZSwgbmV4dERpc2NyZXRlRXZlbnQuZXZlbnRTeXN0ZW1GbGFncywgdGFyZ2V0Q29udGFpbmVyLCBuZXh0RGlzY3JldGVFdmVudC5uYXRpdmVFdmVudCk7XG5cbiAgICAgIGlmIChuZXh0QmxvY2tlZE9uICE9PSBudWxsKSB7XG4gICAgICAgIC8vIFdlJ3JlIHN0aWxsIGJsb2NrZWQuIFRyeSBhZ2FpbiBsYXRlci5cbiAgICAgICAgbmV4dERpc2NyZXRlRXZlbnQuYmxvY2tlZE9uID0gbmV4dEJsb2NrZWRPbjtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9IC8vIFRoaXMgdGFyZ2V0IGNvbnRhaW5lciB3YXMgc3VjY2Vzc2Z1bGx5IGRpc3BhdGNoZWQuIFRyeSB0aGUgbmV4dC5cblxuXG4gICAgICB0YXJnZXRDb250YWluZXJzLnNoaWZ0KCk7XG4gICAgfVxuXG4gICAgaWYgKG5leHREaXNjcmV0ZUV2ZW50LmJsb2NrZWRPbiA9PT0gbnVsbCkge1xuICAgICAgLy8gV2UndmUgc3VjY2Vzc2Z1bGx5IHJlcGxheWVkIHRoZSBmaXJzdCBldmVudC4gTGV0J3MgdHJ5IHRoZSBuZXh0IG9uZS5cbiAgICAgIHF1ZXVlZERpc2NyZXRlRXZlbnRzLnNoaWZ0KCk7XG4gICAgfVxuICB9IC8vIE5leHQgcmVwbGF5IGFueSBjb250aW51b3VzIGV2ZW50cy5cblxuXG4gIGlmIChxdWV1ZWRGb2N1cyAhPT0gbnVsbCAmJiBhdHRlbXB0UmVwbGF5Q29udGludW91c1F1ZXVlZEV2ZW50KHF1ZXVlZEZvY3VzKSkge1xuICAgIHF1ZXVlZEZvY3VzID0gbnVsbDtcbiAgfVxuXG4gIGlmIChxdWV1ZWREcmFnICE9PSBudWxsICYmIGF0dGVtcHRSZXBsYXlDb250aW51b3VzUXVldWVkRXZlbnQocXVldWVkRHJhZykpIHtcbiAgICBxdWV1ZWREcmFnID0gbnVsbDtcbiAgfVxuXG4gIGlmIChxdWV1ZWRNb3VzZSAhPT0gbnVsbCAmJiBhdHRlbXB0UmVwbGF5Q29udGludW91c1F1ZXVlZEV2ZW50KHF1ZXVlZE1vdXNlKSkge1xuICAgIHF1ZXVlZE1vdXNlID0gbnVsbDtcbiAgfVxuXG4gIHF1ZXVlZFBvaW50ZXJzLmZvckVhY2goYXR0ZW1wdFJlcGxheUNvbnRpbnVvdXNRdWV1ZWRFdmVudEluTWFwKTtcbiAgcXVldWVkUG9pbnRlckNhcHR1cmVzLmZvckVhY2goYXR0ZW1wdFJlcGxheUNvbnRpbnVvdXNRdWV1ZWRFdmVudEluTWFwKTtcbn1cblxuZnVuY3Rpb24gc2NoZWR1bGVDYWxsYmFja0lmVW5ibG9ja2VkKHF1ZXVlZEV2ZW50LCB1bmJsb2NrZWQpIHtcbiAgaWYgKHF1ZXVlZEV2ZW50LmJsb2NrZWRPbiA9PT0gdW5ibG9ja2VkKSB7XG4gICAgcXVldWVkRXZlbnQuYmxvY2tlZE9uID0gbnVsbDtcblxuICAgIGlmICghaGFzU2NoZWR1bGVkUmVwbGF5QXR0ZW1wdCkge1xuICAgICAgaGFzU2NoZWR1bGVkUmVwbGF5QXR0ZW1wdCA9IHRydWU7IC8vIFNjaGVkdWxlIGEgY2FsbGJhY2sgdG8gYXR0ZW1wdCByZXBsYXlpbmcgYXMgbWFueSBldmVudHMgYXMgYXJlXG4gICAgICAvLyBub3cgdW5ibG9ja2VkLiBUaGlzIGZpcnN0IG1pZ2h0IG5vdCBhY3R1YWxseSBiZSB1bmJsb2NrZWQgeWV0LlxuICAgICAgLy8gV2UgY291bGQgY2hlY2sgaXQgZWFybHkgdG8gYXZvaWQgc2NoZWR1bGluZyBhbiB1bm5lY2Vzc2FyeSBjYWxsYmFjay5cblxuICAgICAgU2NoZWR1bGVyLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2soU2NoZWR1bGVyLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5LCByZXBsYXlVbmJsb2NrZWRFdmVudHMpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiByZXRyeUlmQmxvY2tlZE9uKHVuYmxvY2tlZCkge1xuICAvLyBNYXJrIGFueXRoaW5nIHRoYXQgd2FzIGJsb2NrZWQgb24gdGhpcyBhcyBubyBsb25nZXIgYmxvY2tlZFxuICAvLyBhbmQgZWxpZ2libGUgZm9yIGEgcmVwbGF5LlxuICBpZiAocXVldWVkRGlzY3JldGVFdmVudHMubGVuZ3RoID4gMCkge1xuICAgIHNjaGVkdWxlQ2FsbGJhY2tJZlVuYmxvY2tlZChxdWV1ZWREaXNjcmV0ZUV2ZW50c1swXSwgdW5ibG9ja2VkKTsgLy8gVGhpcyBpcyBhIGV4cG9uZW50aWFsIHNlYXJjaCBmb3IgZWFjaCBib3VuZGFyeSB0aGF0IGNvbW1pdHMuIEkgdGhpbmsgaXQnc1xuICAgIC8vIHdvcnRoIGl0IGJlY2F1c2Ugd2UgZXhwZWN0IHZlcnkgZmV3IGRpc2NyZXRlIGV2ZW50cyB0byBxdWV1ZSB1cCBhbmQgb25jZVxuICAgIC8vIHdlIGFyZSBhY3R1YWxseSBmdWxseSB1bmJsb2NrZWQgaXQgd2lsbCBiZSBmYXN0IHRvIHJlcGxheSB0aGVtLlxuXG4gICAgZm9yICh2YXIgaSA9IDE7IGkgPCBxdWV1ZWREaXNjcmV0ZUV2ZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHF1ZXVlZEV2ZW50ID0gcXVldWVkRGlzY3JldGVFdmVudHNbaV07XG5cbiAgICAgIGlmIChxdWV1ZWRFdmVudC5ibG9ja2VkT24gPT09IHVuYmxvY2tlZCkge1xuICAgICAgICBxdWV1ZWRFdmVudC5ibG9ja2VkT24gPSBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmIChxdWV1ZWRGb2N1cyAhPT0gbnVsbCkge1xuICAgIHNjaGVkdWxlQ2FsbGJhY2tJZlVuYmxvY2tlZChxdWV1ZWRGb2N1cywgdW5ibG9ja2VkKTtcbiAgfVxuXG4gIGlmIChxdWV1ZWREcmFnICE9PSBudWxsKSB7XG4gICAgc2NoZWR1bGVDYWxsYmFja0lmVW5ibG9ja2VkKHF1ZXVlZERyYWcsIHVuYmxvY2tlZCk7XG4gIH1cblxuICBpZiAocXVldWVkTW91c2UgIT09IG51bGwpIHtcbiAgICBzY2hlZHVsZUNhbGxiYWNrSWZVbmJsb2NrZWQocXVldWVkTW91c2UsIHVuYmxvY2tlZCk7XG4gIH1cblxuICB2YXIgdW5ibG9jayA9IGZ1bmN0aW9uIChxdWV1ZWRFdmVudCkge1xuICAgIHJldHVybiBzY2hlZHVsZUNhbGxiYWNrSWZVbmJsb2NrZWQocXVldWVkRXZlbnQsIHVuYmxvY2tlZCk7XG4gIH07XG5cbiAgcXVldWVkUG9pbnRlcnMuZm9yRWFjaCh1bmJsb2NrKTtcbiAgcXVldWVkUG9pbnRlckNhcHR1cmVzLmZvckVhY2godW5ibG9jayk7XG5cbiAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IHF1ZXVlZEV4cGxpY2l0SHlkcmF0aW9uVGFyZ2V0cy5sZW5ndGg7IF9pKyspIHtcbiAgICB2YXIgcXVldWVkVGFyZ2V0ID0gcXVldWVkRXhwbGljaXRIeWRyYXRpb25UYXJnZXRzW19pXTtcblxuICAgIGlmIChxdWV1ZWRUYXJnZXQuYmxvY2tlZE9uID09PSB1bmJsb2NrZWQpIHtcbiAgICAgIHF1ZXVlZFRhcmdldC5ibG9ja2VkT24gPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHdoaWxlIChxdWV1ZWRFeHBsaWNpdEh5ZHJhdGlvblRhcmdldHMubGVuZ3RoID4gMCkge1xuICAgIHZhciBuZXh0RXhwbGljaXRUYXJnZXQgPSBxdWV1ZWRFeHBsaWNpdEh5ZHJhdGlvblRhcmdldHNbMF07XG5cbiAgICBpZiAobmV4dEV4cGxpY2l0VGFyZ2V0LmJsb2NrZWRPbiAhPT0gbnVsbCkge1xuICAgICAgLy8gV2UncmUgc3RpbGwgYmxvY2tlZC5cbiAgICAgIGJyZWFrO1xuICAgIH0gZWxzZSB7XG4gICAgICBhdHRlbXB0RXhwbGljaXRIeWRyYXRpb25UYXJnZXQobmV4dEV4cGxpY2l0VGFyZ2V0KTtcblxuICAgICAgaWYgKG5leHRFeHBsaWNpdFRhcmdldC5ibG9ja2VkT24gPT09IG51bGwpIHtcbiAgICAgICAgLy8gV2UncmUgdW5ibG9ja2VkLlxuICAgICAgICBxdWV1ZWRFeHBsaWNpdEh5ZHJhdGlvblRhcmdldHMuc2hpZnQoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxudmFyIERpc2NyZXRlRXZlbnQgPSAwO1xudmFyIFVzZXJCbG9ja2luZ0V2ZW50ID0gMTtcbnZhciBDb250aW51b3VzRXZlbnQgPSAyO1xuXG4vKipcbiAqIEdlbmVyYXRlIGEgbWFwcGluZyBvZiBzdGFuZGFyZCB2ZW5kb3IgcHJlZml4ZXMgdXNpbmcgdGhlIGRlZmluZWQgc3R5bGUgcHJvcGVydHkgYW5kIGV2ZW50IG5hbWUuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHN0eWxlUHJvcFxuICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50TmFtZVxuICogQHJldHVybnMge29iamVjdH1cbiAqL1xuXG5mdW5jdGlvbiBtYWtlUHJlZml4TWFwKHN0eWxlUHJvcCwgZXZlbnROYW1lKSB7XG4gIHZhciBwcmVmaXhlcyA9IHt9O1xuICBwcmVmaXhlc1tzdHlsZVByb3AudG9Mb3dlckNhc2UoKV0gPSBldmVudE5hbWUudG9Mb3dlckNhc2UoKTtcbiAgcHJlZml4ZXNbJ1dlYmtpdCcgKyBzdHlsZVByb3BdID0gJ3dlYmtpdCcgKyBldmVudE5hbWU7XG4gIHByZWZpeGVzWydNb3onICsgc3R5bGVQcm9wXSA9ICdtb3onICsgZXZlbnROYW1lO1xuICByZXR1cm4gcHJlZml4ZXM7XG59XG4vKipcbiAqIEEgbGlzdCBvZiBldmVudCBuYW1lcyB0byBhIGNvbmZpZ3VyYWJsZSBsaXN0IG9mIHZlbmRvciBwcmVmaXhlcy5cbiAqL1xuXG5cbnZhciB2ZW5kb3JQcmVmaXhlcyA9IHtcbiAgYW5pbWF0aW9uZW5kOiBtYWtlUHJlZml4TWFwKCdBbmltYXRpb24nLCAnQW5pbWF0aW9uRW5kJyksXG4gIGFuaW1hdGlvbml0ZXJhdGlvbjogbWFrZVByZWZpeE1hcCgnQW5pbWF0aW9uJywgJ0FuaW1hdGlvbkl0ZXJhdGlvbicpLFxuICBhbmltYXRpb25zdGFydDogbWFrZVByZWZpeE1hcCgnQW5pbWF0aW9uJywgJ0FuaW1hdGlvblN0YXJ0JyksXG4gIHRyYW5zaXRpb25lbmQ6IG1ha2VQcmVmaXhNYXAoJ1RyYW5zaXRpb24nLCAnVHJhbnNpdGlvbkVuZCcpXG59O1xuLyoqXG4gKiBFdmVudCBuYW1lcyB0aGF0IGhhdmUgYWxyZWFkeSBiZWVuIGRldGVjdGVkIGFuZCBwcmVmaXhlZCAoaWYgYXBwbGljYWJsZSkuXG4gKi9cblxudmFyIHByZWZpeGVkRXZlbnROYW1lcyA9IHt9O1xuLyoqXG4gKiBFbGVtZW50IHRvIGNoZWNrIGZvciBwcmVmaXhlcyBvbi5cbiAqL1xuXG52YXIgc3R5bGUgPSB7fTtcbi8qKlxuICogQm9vdHN0cmFwIGlmIGEgRE9NIGV4aXN0cy5cbiAqL1xuXG5pZiAoY2FuVXNlRE9NKSB7XG4gIHN0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jykuc3R5bGU7IC8vIE9uIHNvbWUgcGxhdGZvcm1zLCBpbiBwYXJ0aWN1bGFyIHNvbWUgcmVsZWFzZXMgb2YgQW5kcm9pZCA0LngsXG4gIC8vIHRoZSB1bi1wcmVmaXhlZCBcImFuaW1hdGlvblwiIGFuZCBcInRyYW5zaXRpb25cIiBwcm9wZXJ0aWVzIGFyZSBkZWZpbmVkIG9uIHRoZVxuICAvLyBzdHlsZSBvYmplY3QgYnV0IHRoZSBldmVudHMgdGhhdCBmaXJlIHdpbGwgc3RpbGwgYmUgcHJlZml4ZWQsIHNvIHdlIG5lZWRcbiAgLy8gdG8gY2hlY2sgaWYgdGhlIHVuLXByZWZpeGVkIGV2ZW50cyBhcmUgdXNhYmxlLCBhbmQgaWYgbm90IHJlbW92ZSB0aGVtIGZyb20gdGhlIG1hcC5cblxuICBpZiAoISgnQW5pbWF0aW9uRXZlbnQnIGluIHdpbmRvdykpIHtcbiAgICBkZWxldGUgdmVuZG9yUHJlZml4ZXMuYW5pbWF0aW9uZW5kLmFuaW1hdGlvbjtcbiAgICBkZWxldGUgdmVuZG9yUHJlZml4ZXMuYW5pbWF0aW9uaXRlcmF0aW9uLmFuaW1hdGlvbjtcbiAgICBkZWxldGUgdmVuZG9yUHJlZml4ZXMuYW5pbWF0aW9uc3RhcnQuYW5pbWF0aW9uO1xuICB9IC8vIFNhbWUgYXMgYWJvdmVcblxuXG4gIGlmICghKCdUcmFuc2l0aW9uRXZlbnQnIGluIHdpbmRvdykpIHtcbiAgICBkZWxldGUgdmVuZG9yUHJlZml4ZXMudHJhbnNpdGlvbmVuZC50cmFuc2l0aW9uO1xuICB9XG59XG4vKipcbiAqIEF0dGVtcHRzIHRvIGRldGVybWluZSB0aGUgY29ycmVjdCB2ZW5kb3IgcHJlZml4ZWQgZXZlbnQgbmFtZS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gZXZlbnROYW1lXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5cblxuZnVuY3Rpb24gZ2V0VmVuZG9yUHJlZml4ZWRFdmVudE5hbWUoZXZlbnROYW1lKSB7XG4gIGlmIChwcmVmaXhlZEV2ZW50TmFtZXNbZXZlbnROYW1lXSkge1xuICAgIHJldHVybiBwcmVmaXhlZEV2ZW50TmFtZXNbZXZlbnROYW1lXTtcbiAgfSBlbHNlIGlmICghdmVuZG9yUHJlZml4ZXNbZXZlbnROYW1lXSkge1xuICAgIHJldHVybiBldmVudE5hbWU7XG4gIH1cblxuICB2YXIgcHJlZml4TWFwID0gdmVuZG9yUHJlZml4ZXNbZXZlbnROYW1lXTtcblxuICBmb3IgKHZhciBzdHlsZVByb3AgaW4gcHJlZml4TWFwKSB7XG4gICAgaWYgKHByZWZpeE1hcC5oYXNPd25Qcm9wZXJ0eShzdHlsZVByb3ApICYmIHN0eWxlUHJvcCBpbiBzdHlsZSkge1xuICAgICAgcmV0dXJuIHByZWZpeGVkRXZlbnROYW1lc1tldmVudE5hbWVdID0gcHJlZml4TWFwW3N0eWxlUHJvcF07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGV2ZW50TmFtZTtcbn1cblxudmFyIEFOSU1BVElPTl9FTkQgPSBnZXRWZW5kb3JQcmVmaXhlZEV2ZW50TmFtZSgnYW5pbWF0aW9uZW5kJyk7XG52YXIgQU5JTUFUSU9OX0lURVJBVElPTiA9IGdldFZlbmRvclByZWZpeGVkRXZlbnROYW1lKCdhbmltYXRpb25pdGVyYXRpb24nKTtcbnZhciBBTklNQVRJT05fU1RBUlQgPSBnZXRWZW5kb3JQcmVmaXhlZEV2ZW50TmFtZSgnYW5pbWF0aW9uc3RhcnQnKTtcbnZhciBUUkFOU0lUSU9OX0VORCA9IGdldFZlbmRvclByZWZpeGVkRXZlbnROYW1lKCd0cmFuc2l0aW9uZW5kJyk7XG5cbnZhciB0b3BMZXZlbEV2ZW50c1RvUmVhY3ROYW1lcyA9IG5ldyBNYXAoKTtcbnZhciBldmVudFByaW9yaXRpZXMgPSBuZXcgTWFwKCk7IC8vIFdlIHN0b3JlIG1vc3Qgb2YgdGhlIGV2ZW50cyBpbiB0aGlzIG1vZHVsZSBpbiBwYWlycyBvZiB0d28gc3RyaW5ncyBzbyB3ZSBjYW4gcmUtdXNlXG4vLyB0aGUgY29kZSByZXF1aXJlZCB0byBhcHBseSB0aGUgc2FtZSBsb2dpYyBmb3IgZXZlbnQgcHJpb3JpdGl6YXRpb24gYW5kIHRoYXQgb2YgdGhlXG4vLyBTaW1wbGVFdmVudFBsdWdpbi4gVGhpcyBjb21wbGljYXRlcyB0aGluZ3Mgc2xpZ2h0bHksIGJ1dCB0aGUgYWltIGlzIHRvIHJlZHVjZSBjb2RlXG4vLyBkdXBsaWNhdGlvbiAoZm9yIHdoaWNoIHRoZXJlIHdvdWxkIGJlIHF1aXRlIGEgYml0KS4gRm9yIHRoZSBldmVudHMgdGhhdCBhcmUgbm90IG5lZWRlZFxuLy8gZm9yIHRoZSBTaW1wbGVFdmVudFBsdWdpbiAob3RoZXJEaXNjcmV0ZUV2ZW50cykgd2UgcHJvY2VzcyB0aGVtIHNlcGFyYXRlbHkgYXMgYW5cbi8vIGFycmF5IG9mIHRvcCBsZXZlbCBldmVudHMuXG4vLyBMYXN0bHksIHdlIGlnbm9yZSBwcmV0dGllciBzbyB3ZSBjYW4ga2VlcCB0aGUgZm9ybWF0dGluZyBzYW5lLlxuLy8gcHJldHRpZXItaWdub3JlXG5cbnZhciBkaXNjcmV0ZUV2ZW50UGFpcnNGb3JTaW1wbGVFdmVudFBsdWdpbiA9IFsnY2FuY2VsJywgJ2NhbmNlbCcsICdjbGljaycsICdjbGljaycsICdjbG9zZScsICdjbG9zZScsICdjb250ZXh0bWVudScsICdjb250ZXh0TWVudScsICdjb3B5JywgJ2NvcHknLCAnY3V0JywgJ2N1dCcsICdhdXhjbGljaycsICdhdXhDbGljaycsICdkYmxjbGljaycsICdkb3VibGVDbGljaycsIC8vIENhcmVmdWwhXG4nZHJhZ2VuZCcsICdkcmFnRW5kJywgJ2RyYWdzdGFydCcsICdkcmFnU3RhcnQnLCAnZHJvcCcsICdkcm9wJywgJ2ZvY3VzaW4nLCAnZm9jdXMnLCAvLyBDYXJlZnVsIVxuJ2ZvY3Vzb3V0JywgJ2JsdXInLCAvLyBDYXJlZnVsIVxuJ2lucHV0JywgJ2lucHV0JywgJ2ludmFsaWQnLCAnaW52YWxpZCcsICdrZXlkb3duJywgJ2tleURvd24nLCAna2V5cHJlc3MnLCAna2V5UHJlc3MnLCAna2V5dXAnLCAna2V5VXAnLCAnbW91c2Vkb3duJywgJ21vdXNlRG93bicsICdtb3VzZXVwJywgJ21vdXNlVXAnLCAncGFzdGUnLCAncGFzdGUnLCAncGF1c2UnLCAncGF1c2UnLCAncGxheScsICdwbGF5JywgJ3BvaW50ZXJjYW5jZWwnLCAncG9pbnRlckNhbmNlbCcsICdwb2ludGVyZG93bicsICdwb2ludGVyRG93bicsICdwb2ludGVydXAnLCAncG9pbnRlclVwJywgJ3JhdGVjaGFuZ2UnLCAncmF0ZUNoYW5nZScsICdyZXNldCcsICdyZXNldCcsICdzZWVrZWQnLCAnc2Vla2VkJywgJ3N1Ym1pdCcsICdzdWJtaXQnLCAndG91Y2hjYW5jZWwnLCAndG91Y2hDYW5jZWwnLCAndG91Y2hlbmQnLCAndG91Y2hFbmQnLCAndG91Y2hzdGFydCcsICd0b3VjaFN0YXJ0JywgJ3ZvbHVtZWNoYW5nZScsICd2b2x1bWVDaGFuZ2UnXTtcbnZhciBvdGhlckRpc2NyZXRlRXZlbnRzID0gWydjaGFuZ2UnLCAnc2VsZWN0aW9uY2hhbmdlJywgJ3RleHRJbnB1dCcsICdjb21wb3NpdGlvbnN0YXJ0JywgJ2NvbXBvc2l0aW9uZW5kJywgJ2NvbXBvc2l0aW9udXBkYXRlJ107XG5cblxudmFyIHVzZXJCbG9ja2luZ1BhaXJzRm9yU2ltcGxlRXZlbnRQbHVnaW4gPSBbJ2RyYWcnLCAnZHJhZycsICdkcmFnZW50ZXInLCAnZHJhZ0VudGVyJywgJ2RyYWdleGl0JywgJ2RyYWdFeGl0JywgJ2RyYWdsZWF2ZScsICdkcmFnTGVhdmUnLCAnZHJhZ292ZXInLCAnZHJhZ092ZXInLCAnbW91c2Vtb3ZlJywgJ21vdXNlTW92ZScsICdtb3VzZW91dCcsICdtb3VzZU91dCcsICdtb3VzZW92ZXInLCAnbW91c2VPdmVyJywgJ3BvaW50ZXJtb3ZlJywgJ3BvaW50ZXJNb3ZlJywgJ3BvaW50ZXJvdXQnLCAncG9pbnRlck91dCcsICdwb2ludGVyb3ZlcicsICdwb2ludGVyT3ZlcicsICdzY3JvbGwnLCAnc2Nyb2xsJywgJ3RvZ2dsZScsICd0b2dnbGUnLCAndG91Y2htb3ZlJywgJ3RvdWNoTW92ZScsICd3aGVlbCcsICd3aGVlbCddOyAvLyBwcmV0dGllci1pZ25vcmVcblxudmFyIGNvbnRpbnVvdXNQYWlyc0ZvclNpbXBsZUV2ZW50UGx1Z2luID0gWydhYm9ydCcsICdhYm9ydCcsIEFOSU1BVElPTl9FTkQsICdhbmltYXRpb25FbmQnLCBBTklNQVRJT05fSVRFUkFUSU9OLCAnYW5pbWF0aW9uSXRlcmF0aW9uJywgQU5JTUFUSU9OX1NUQVJULCAnYW5pbWF0aW9uU3RhcnQnLCAnY2FucGxheScsICdjYW5QbGF5JywgJ2NhbnBsYXl0aHJvdWdoJywgJ2NhblBsYXlUaHJvdWdoJywgJ2R1cmF0aW9uY2hhbmdlJywgJ2R1cmF0aW9uQ2hhbmdlJywgJ2VtcHRpZWQnLCAnZW1wdGllZCcsICdlbmNyeXB0ZWQnLCAnZW5jcnlwdGVkJywgJ2VuZGVkJywgJ2VuZGVkJywgJ2Vycm9yJywgJ2Vycm9yJywgJ2dvdHBvaW50ZXJjYXB0dXJlJywgJ2dvdFBvaW50ZXJDYXB0dXJlJywgJ2xvYWQnLCAnbG9hZCcsICdsb2FkZWRkYXRhJywgJ2xvYWRlZERhdGEnLCAnbG9hZGVkbWV0YWRhdGEnLCAnbG9hZGVkTWV0YWRhdGEnLCAnbG9hZHN0YXJ0JywgJ2xvYWRTdGFydCcsICdsb3N0cG9pbnRlcmNhcHR1cmUnLCAnbG9zdFBvaW50ZXJDYXB0dXJlJywgJ3BsYXlpbmcnLCAncGxheWluZycsICdwcm9ncmVzcycsICdwcm9ncmVzcycsICdzZWVraW5nJywgJ3NlZWtpbmcnLCAnc3RhbGxlZCcsICdzdGFsbGVkJywgJ3N1c3BlbmQnLCAnc3VzcGVuZCcsICd0aW1ldXBkYXRlJywgJ3RpbWVVcGRhdGUnLCBUUkFOU0lUSU9OX0VORCwgJ3RyYW5zaXRpb25FbmQnLCAnd2FpdGluZycsICd3YWl0aW5nJ107XG4vKipcbiAqIFR1cm5zXG4gKiBbJ2Fib3J0JywgLi4uXVxuICpcbiAqIGludG9cbiAqXG4gKiB0b3BMZXZlbEV2ZW50c1RvUmVhY3ROYW1lcyA9IG5ldyBNYXAoW1xuICogICBbJ2Fib3J0JywgJ29uQWJvcnQnXSxcbiAqIF0pO1xuICpcbiAqIGFuZCByZWdpc3RlcnMgdGhlbS5cbiAqL1xuXG5mdW5jdGlvbiByZWdpc3RlclNpbXBsZVBsdWdpbkV2ZW50c0FuZFNldFRoZWlyUHJpb3JpdGllcyhldmVudFR5cGVzLCBwcmlvcml0eSkge1xuICAvLyBBcyB0aGUgZXZlbnQgdHlwZXMgYXJlIGluIHBhaXJzIG9mIHR3bywgd2UgbmVlZCB0byBpdGVyYXRlXG4gIC8vIHRocm91Z2ggaW4gdHdvcy4gVGhlIGV2ZW50cyBhcmUgaW4gcGFpcnMgb2YgdHdvIHRvIHNhdmUgY29kZVxuICAvLyBhbmQgaW1wcm92ZSBpbml0IHBlcmYgb2YgcHJvY2Vzc2luZyB0aGlzIGFycmF5LCBhcyBpdCB3aWxsXG4gIC8vIHJlc3VsdCBpbiBmYXIgZmV3ZXIgb2JqZWN0IGFsbG9jYXRpb25zIGFuZCBwcm9wZXJ0eSBhY2Nlc3Nlc1xuICAvLyBpZiB3ZSBvbmx5IHVzZSB0aHJlZSBhcnJheXMgdG8gcHJvY2VzcyBhbGwgdGhlIGNhdGVnb3JpZXMgb2ZcbiAgLy8gaW5zdGVhZCBvZiB0dXBsZXMuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgZXZlbnRUeXBlcy5sZW5ndGg7IGkgKz0gMikge1xuICAgIHZhciB0b3BFdmVudCA9IGV2ZW50VHlwZXNbaV07XG4gICAgdmFyIGV2ZW50ID0gZXZlbnRUeXBlc1tpICsgMV07XG4gICAgdmFyIGNhcGl0YWxpemVkRXZlbnQgPSBldmVudFswXS50b1VwcGVyQ2FzZSgpICsgZXZlbnQuc2xpY2UoMSk7XG4gICAgdmFyIHJlYWN0TmFtZSA9ICdvbicgKyBjYXBpdGFsaXplZEV2ZW50O1xuICAgIGV2ZW50UHJpb3JpdGllcy5zZXQodG9wRXZlbnQsIHByaW9yaXR5KTtcbiAgICB0b3BMZXZlbEV2ZW50c1RvUmVhY3ROYW1lcy5zZXQodG9wRXZlbnQsIHJlYWN0TmFtZSk7XG4gICAgcmVnaXN0ZXJUd29QaGFzZUV2ZW50KHJlYWN0TmFtZSwgW3RvcEV2ZW50XSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gc2V0RXZlbnRQcmlvcml0aWVzKGV2ZW50VHlwZXMsIHByaW9yaXR5KSB7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgZXZlbnRUeXBlcy5sZW5ndGg7IGkrKykge1xuICAgIGV2ZW50UHJpb3JpdGllcy5zZXQoZXZlbnRUeXBlc1tpXSwgcHJpb3JpdHkpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldEV2ZW50UHJpb3JpdHlGb3JQbHVnaW5TeXN0ZW0oZG9tRXZlbnROYW1lKSB7XG4gIHZhciBwcmlvcml0eSA9IGV2ZW50UHJpb3JpdGllcy5nZXQoZG9tRXZlbnROYW1lKTsgLy8gRGVmYXVsdCB0byBhIENvbnRpbnVvdXNFdmVudC4gTm90ZTogd2UgbWlnaHRcbiAgLy8gd2FudCB0byB3YXJuIGlmIHdlIGNhbid0IGRldGVjdCB0aGUgcHJpb3JpdHlcbiAgLy8gZm9yIHRoZSBldmVudC5cblxuICByZXR1cm4gcHJpb3JpdHkgPT09IHVuZGVmaW5lZCA/IENvbnRpbnVvdXNFdmVudCA6IHByaW9yaXR5O1xufVxuZnVuY3Rpb24gcmVnaXN0ZXJTaW1wbGVFdmVudHMoKSB7XG4gIHJlZ2lzdGVyU2ltcGxlUGx1Z2luRXZlbnRzQW5kU2V0VGhlaXJQcmlvcml0aWVzKGRpc2NyZXRlRXZlbnRQYWlyc0ZvclNpbXBsZUV2ZW50UGx1Z2luLCBEaXNjcmV0ZUV2ZW50KTtcbiAgcmVnaXN0ZXJTaW1wbGVQbHVnaW5FdmVudHNBbmRTZXRUaGVpclByaW9yaXRpZXModXNlckJsb2NraW5nUGFpcnNGb3JTaW1wbGVFdmVudFBsdWdpbiwgVXNlckJsb2NraW5nRXZlbnQpO1xuICByZWdpc3RlclNpbXBsZVBsdWdpbkV2ZW50c0FuZFNldFRoZWlyUHJpb3JpdGllcyhjb250aW51b3VzUGFpcnNGb3JTaW1wbGVFdmVudFBsdWdpbiwgQ29udGludW91c0V2ZW50KTtcbiAgc2V0RXZlbnRQcmlvcml0aWVzKG90aGVyRGlzY3JldGVFdmVudHMsIERpc2NyZXRlRXZlbnQpO1xufVxuXG52YXIgU2NoZWR1bGVyX25vdyA9IFNjaGVkdWxlci51bnN0YWJsZV9ub3c7XG5cbntcbiAgLy8gUHJvdmlkZSBleHBsaWNpdCBlcnJvciBtZXNzYWdlIHdoZW4gcHJvZHVjdGlvbitwcm9maWxpbmcgYnVuZGxlIG9mIGUuZy5cbiAgLy8gcmVhY3QtZG9tIGlzIHVzZWQgd2l0aCBwcm9kdWN0aW9uIChub24tcHJvZmlsaW5nKSBidW5kbGUgb2ZcbiAgLy8gc2NoZWR1bGVyL3RyYWNpbmdcbiAgaWYgKCEodHJhY2luZy5fX2ludGVyYWN0aW9uc1JlZiAhPSBudWxsICYmIHRyYWNpbmcuX19pbnRlcmFjdGlvbnNSZWYuY3VycmVudCAhPSBudWxsKSkge1xuICAgIHtcbiAgICAgIHRocm93IEVycm9yKCBcIkl0IGlzIG5vdCBzdXBwb3J0ZWQgdG8gcnVuIHRoZSBwcm9maWxpbmcgdmVyc2lvbiBvZiBhIHJlbmRlcmVyIChmb3IgZXhhbXBsZSwgYHJlYWN0LWRvbS9wcm9maWxpbmdgKSB3aXRob3V0IGFsc28gcmVwbGFjaW5nIHRoZSBgc2NoZWR1bGVyL3RyYWNpbmdgIG1vZHVsZSB3aXRoIGBzY2hlZHVsZXIvdHJhY2luZy1wcm9maWxpbmdgLiBZb3VyIGJ1bmRsZXIgbWlnaHQgaGF2ZSBhIHNldHRpbmcgZm9yIGFsaWFzaW5nIGJvdGggbW9kdWxlcy4gTGVhcm4gbW9yZSBhdCBodHRwczovL3JlYWN0anMub3JnL2xpbmsvcHJvZmlsaW5nXCIgKTtcbiAgICB9XG4gIH1cbn1cbi8vIGFzY2VuZGluZyBudW1iZXJzIHNvIHdlIGNhbiBjb21wYXJlIHRoZW0gbGlrZSBudW1iZXJzLiBUaGV5IHN0YXJ0IGF0IDkwIHRvXG4vLyBhdm9pZCBjbGFzaGluZyB3aXRoIFNjaGVkdWxlcidzIHByaW9yaXRpZXMuXG5cbnZhciBJbW1lZGlhdGVQcmlvcml0eSA9IDk5O1xudmFyIFVzZXJCbG9ja2luZ1ByaW9yaXR5ID0gOTg7XG52YXIgTm9ybWFsUHJpb3JpdHkgPSA5NztcbnZhciBMb3dQcmlvcml0eSA9IDk2O1xudmFyIElkbGVQcmlvcml0eSA9IDk1OyAvLyBOb1ByaW9yaXR5IGlzIHRoZSBhYnNlbmNlIG9mIHByaW9yaXR5LiBBbHNvIFJlYWN0LW9ubHkuXG5cbnZhciBOb1ByaW9yaXR5ID0gOTA7XG52YXIgaW5pdGlhbFRpbWVNcyA9IFNjaGVkdWxlcl9ub3coKTsgLy8gSWYgdGhlIGluaXRpYWwgdGltZXN0YW1wIGlzIHJlYXNvbmFibHkgc21hbGwsIHVzZSBTY2hlZHVsZXIncyBgbm93YCBkaXJlY3RseS5cblxudmFyIFN5bmNMYW5lUHJpb3JpdHkgPSAxNTtcbnZhciBTeW5jQmF0Y2hlZExhbmVQcmlvcml0eSA9IDE0O1xudmFyIElucHV0RGlzY3JldGVIeWRyYXRpb25MYW5lUHJpb3JpdHkgPSAxMztcbnZhciBJbnB1dERpc2NyZXRlTGFuZVByaW9yaXR5ID0gMTI7XG52YXIgSW5wdXRDb250aW51b3VzSHlkcmF0aW9uTGFuZVByaW9yaXR5ID0gMTE7XG52YXIgSW5wdXRDb250aW51b3VzTGFuZVByaW9yaXR5ID0gMTA7XG52YXIgRGVmYXVsdEh5ZHJhdGlvbkxhbmVQcmlvcml0eSA9IDk7XG52YXIgRGVmYXVsdExhbmVQcmlvcml0eSA9IDg7XG52YXIgVHJhbnNpdGlvbkh5ZHJhdGlvblByaW9yaXR5ID0gNztcbnZhciBUcmFuc2l0aW9uUHJpb3JpdHkgPSA2O1xudmFyIFJldHJ5TGFuZVByaW9yaXR5ID0gNTtcbnZhciBTZWxlY3RpdmVIeWRyYXRpb25MYW5lUHJpb3JpdHkgPSA0O1xudmFyIElkbGVIeWRyYXRpb25MYW5lUHJpb3JpdHkgPSAzO1xudmFyIElkbGVMYW5lUHJpb3JpdHkgPSAyO1xudmFyIE9mZnNjcmVlbkxhbmVQcmlvcml0eSA9IDE7XG52YXIgTm9MYW5lUHJpb3JpdHkgPSAwO1xudmFyIFRvdGFsTGFuZXMgPSAzMTtcbnZhciBOb0xhbmVzID1cbi8qICAgICAgICAgICAgICAgICAgICAgICAgKi9cbjA7XG52YXIgTm9MYW5lID1cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuMDtcbnZhciBTeW5jTGFuZSA9XG4vKiAgICAgICAgICAgICAgICAgICAgICAgICovXG4xO1xudmFyIFN5bmNCYXRjaGVkTGFuZSA9XG4vKiAgICAgICAgICAgICAgICAgKi9cbjI7XG52YXIgSW5wdXREaXNjcmV0ZUh5ZHJhdGlvbkxhbmUgPVxuLyogICAgICAqL1xuNDtcbnZhciBJbnB1dERpc2NyZXRlTGFuZXMgPVxuLyogICAgICAgICAgICAgICAgICAgICovXG4yNDtcbnZhciBJbnB1dENvbnRpbnVvdXNIeWRyYXRpb25MYW5lID1cbi8qICAgICAgICAgICAqL1xuMzI7XG52YXIgSW5wdXRDb250aW51b3VzTGFuZXMgPVxuLyogICAgICAgICAgICAgICAgICAqL1xuMTkyO1xudmFyIERlZmF1bHRIeWRyYXRpb25MYW5lID1cbi8qICAgICAgICAgICAgKi9cbjI1NjtcbnZhciBEZWZhdWx0TGFuZXMgPVxuLyogICAgICAgICAgICAgICAgICAgKi9cbjM1ODQ7XG52YXIgVHJhbnNpdGlvbkh5ZHJhdGlvbkxhbmUgPVxuLyogICAgICAgICAgICAgICAgKi9cbjQwOTY7XG52YXIgVHJhbnNpdGlvbkxhbmVzID1cbi8qICAgICAgICAgICAgICAgICAgICAgICAqL1xuNDE4NjExMjtcbnZhciBSZXRyeUxhbmVzID1cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG42MjkxNDU2MDtcbnZhciBTb21lUmV0cnlMYW5lID1cbi8qICAgICAgICAgICAgICAgICAgKi9cbjMzNTU0NDMyO1xudmFyIFNlbGVjdGl2ZUh5ZHJhdGlvbkxhbmUgPVxuLyogICAgICAgICAgKi9cbjY3MTA4ODY0O1xudmFyIE5vbklkbGVMYW5lcyA9XG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4xMzQyMTc3Mjc7XG52YXIgSWRsZUh5ZHJhdGlvbkxhbmUgPVxuLyogICAgICAgICAgICAgICAqL1xuMTM0MjE3NzI4O1xudmFyIElkbGVMYW5lcyA9XG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbjgwNTMwNjM2ODtcbnZhciBPZmZzY3JlZW5MYW5lID1cbi8qICAgICAgICAgICAgICAgICAgICovXG4xMDczNzQxODI0O1xudmFyIE5vVGltZXN0YW1wID0gLTE7XG5mdW5jdGlvbiBzZXRDdXJyZW50VXBkYXRlTGFuZVByaW9yaXR5KG5ld0xhbmVQcmlvcml0eSkge1xufSAvLyBcIlJlZ2lzdGVyc1wiIHVzZWQgdG8gXCJyZXR1cm5cIiBtdWx0aXBsZSB2YWx1ZXNcbi8vIFVzZWQgYnkgZ2V0SGlnaGVzdFByaW9yaXR5TGFuZXMgYW5kIGdldE5leHRMYW5lczpcblxudmFyIHJldHVybl9oaWdoZXN0TGFuZVByaW9yaXR5ID0gRGVmYXVsdExhbmVQcmlvcml0eTtcblxuZnVuY3Rpb24gZ2V0SGlnaGVzdFByaW9yaXR5TGFuZXMobGFuZXMpIHtcbiAgaWYgKChTeW5jTGFuZSAmIGxhbmVzKSAhPT0gTm9MYW5lcykge1xuICAgIHJldHVybl9oaWdoZXN0TGFuZVByaW9yaXR5ID0gU3luY0xhbmVQcmlvcml0eTtcbiAgICByZXR1cm4gU3luY0xhbmU7XG4gIH1cblxuICBpZiAoKFN5bmNCYXRjaGVkTGFuZSAmIGxhbmVzKSAhPT0gTm9MYW5lcykge1xuICAgIHJldHVybl9oaWdoZXN0TGFuZVByaW9yaXR5ID0gU3luY0JhdGNoZWRMYW5lUHJpb3JpdHk7XG4gICAgcmV0dXJuIFN5bmNCYXRjaGVkTGFuZTtcbiAgfVxuXG4gIGlmICgoSW5wdXREaXNjcmV0ZUh5ZHJhdGlvbkxhbmUgJiBsYW5lcykgIT09IE5vTGFuZXMpIHtcbiAgICByZXR1cm5faGlnaGVzdExhbmVQcmlvcml0eSA9IElucHV0RGlzY3JldGVIeWRyYXRpb25MYW5lUHJpb3JpdHk7XG4gICAgcmV0dXJuIElucHV0RGlzY3JldGVIeWRyYXRpb25MYW5lO1xuICB9XG5cbiAgdmFyIGlucHV0RGlzY3JldGVMYW5lcyA9IElucHV0RGlzY3JldGVMYW5lcyAmIGxhbmVzO1xuXG4gIGlmIChpbnB1dERpc2NyZXRlTGFuZXMgIT09IE5vTGFuZXMpIHtcbiAgICByZXR1cm5faGlnaGVzdExhbmVQcmlvcml0eSA9IElucHV0RGlzY3JldGVMYW5lUHJpb3JpdHk7XG4gICAgcmV0dXJuIGlucHV0RGlzY3JldGVMYW5lcztcbiAgfVxuXG4gIGlmICgobGFuZXMgJiBJbnB1dENvbnRpbnVvdXNIeWRyYXRpb25MYW5lKSAhPT0gTm9MYW5lcykge1xuICAgIHJldHVybl9oaWdoZXN0TGFuZVByaW9yaXR5ID0gSW5wdXRDb250aW51b3VzSHlkcmF0aW9uTGFuZVByaW9yaXR5O1xuICAgIHJldHVybiBJbnB1dENvbnRpbnVvdXNIeWRyYXRpb25MYW5lO1xuICB9XG5cbiAgdmFyIGlucHV0Q29udGludW91c0xhbmVzID0gSW5wdXRDb250aW51b3VzTGFuZXMgJiBsYW5lcztcblxuICBpZiAoaW5wdXRDb250aW51b3VzTGFuZXMgIT09IE5vTGFuZXMpIHtcbiAgICByZXR1cm5faGlnaGVzdExhbmVQcmlvcml0eSA9IElucHV0Q29udGludW91c0xhbmVQcmlvcml0eTtcbiAgICByZXR1cm4gaW5wdXRDb250aW51b3VzTGFuZXM7XG4gIH1cblxuICBpZiAoKGxhbmVzICYgRGVmYXVsdEh5ZHJhdGlvbkxhbmUpICE9PSBOb0xhbmVzKSB7XG4gICAgcmV0dXJuX2hpZ2hlc3RMYW5lUHJpb3JpdHkgPSBEZWZhdWx0SHlkcmF0aW9uTGFuZVByaW9yaXR5O1xuICAgIHJldHVybiBEZWZhdWx0SHlkcmF0aW9uTGFuZTtcbiAgfVxuXG4gIHZhciBkZWZhdWx0TGFuZXMgPSBEZWZhdWx0TGFuZXMgJiBsYW5lcztcblxuICBpZiAoZGVmYXVsdExhbmVzICE9PSBOb0xhbmVzKSB7XG4gICAgcmV0dXJuX2hpZ2hlc3RMYW5lUHJpb3JpdHkgPSBEZWZhdWx0TGFuZVByaW9yaXR5O1xuICAgIHJldHVybiBkZWZhdWx0TGFuZXM7XG4gIH1cblxuICBpZiAoKGxhbmVzICYgVHJhbnNpdGlvbkh5ZHJhdGlvbkxhbmUpICE9PSBOb0xhbmVzKSB7XG4gICAgcmV0dXJuX2hpZ2hlc3RMYW5lUHJpb3JpdHkgPSBUcmFuc2l0aW9uSHlkcmF0aW9uUHJpb3JpdHk7XG4gICAgcmV0dXJuIFRyYW5zaXRpb25IeWRyYXRpb25MYW5lO1xuICB9XG5cbiAgdmFyIHRyYW5zaXRpb25MYW5lcyA9IFRyYW5zaXRpb25MYW5lcyAmIGxhbmVzO1xuXG4gIGlmICh0cmFuc2l0aW9uTGFuZXMgIT09IE5vTGFuZXMpIHtcbiAgICByZXR1cm5faGlnaGVzdExhbmVQcmlvcml0eSA9IFRyYW5zaXRpb25Qcmlvcml0eTtcbiAgICByZXR1cm4gdHJhbnNpdGlvbkxhbmVzO1xuICB9XG5cbiAgdmFyIHJldHJ5TGFuZXMgPSBSZXRyeUxhbmVzICYgbGFuZXM7XG5cbiAgaWYgKHJldHJ5TGFuZXMgIT09IE5vTGFuZXMpIHtcbiAgICByZXR1cm5faGlnaGVzdExhbmVQcmlvcml0eSA9IFJldHJ5TGFuZVByaW9yaXR5O1xuICAgIHJldHVybiByZXRyeUxhbmVzO1xuICB9XG5cbiAgaWYgKGxhbmVzICYgU2VsZWN0aXZlSHlkcmF0aW9uTGFuZSkge1xuICAgIHJldHVybl9oaWdoZXN0TGFuZVByaW9yaXR5ID0gU2VsZWN0aXZlSHlkcmF0aW9uTGFuZVByaW9yaXR5O1xuICAgIHJldHVybiBTZWxlY3RpdmVIeWRyYXRpb25MYW5lO1xuICB9XG5cbiAgaWYgKChsYW5lcyAmIElkbGVIeWRyYXRpb25MYW5lKSAhPT0gTm9MYW5lcykge1xuICAgIHJldHVybl9oaWdoZXN0TGFuZVByaW9yaXR5ID0gSWRsZUh5ZHJhdGlvbkxhbmVQcmlvcml0eTtcbiAgICByZXR1cm4gSWRsZUh5ZHJhdGlvbkxhbmU7XG4gIH1cblxuICB2YXIgaWRsZUxhbmVzID0gSWRsZUxhbmVzICYgbGFuZXM7XG5cbiAgaWYgKGlkbGVMYW5lcyAhPT0gTm9MYW5lcykge1xuICAgIHJldHVybl9oaWdoZXN0TGFuZVByaW9yaXR5ID0gSWRsZUxhbmVQcmlvcml0eTtcbiAgICByZXR1cm4gaWRsZUxhbmVzO1xuICB9XG5cbiAgaWYgKChPZmZzY3JlZW5MYW5lICYgbGFuZXMpICE9PSBOb0xhbmVzKSB7XG4gICAgcmV0dXJuX2hpZ2hlc3RMYW5lUHJpb3JpdHkgPSBPZmZzY3JlZW5MYW5lUHJpb3JpdHk7XG4gICAgcmV0dXJuIE9mZnNjcmVlbkxhbmU7XG4gIH1cblxuICB7XG4gICAgZXJyb3IoJ1Nob3VsZCBoYXZlIGZvdW5kIG1hdGNoaW5nIGxhbmVzLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LicpO1xuICB9IC8vIFRoaXMgc2hvdWxkbid0IGJlIHJlYWNoYWJsZSwgYnV0IGFzIGEgZmFsbGJhY2ssIHJldHVybiB0aGUgZW50aXJlIGJpdG1hc2suXG5cblxuICByZXR1cm5faGlnaGVzdExhbmVQcmlvcml0eSA9IERlZmF1bHRMYW5lUHJpb3JpdHk7XG4gIHJldHVybiBsYW5lcztcbn1cblxuZnVuY3Rpb24gc2NoZWR1bGVyUHJpb3JpdHlUb0xhbmVQcmlvcml0eShzY2hlZHVsZXJQcmlvcml0eUxldmVsKSB7XG4gIHN3aXRjaCAoc2NoZWR1bGVyUHJpb3JpdHlMZXZlbCkge1xuICAgIGNhc2UgSW1tZWRpYXRlUHJpb3JpdHk6XG4gICAgICByZXR1cm4gU3luY0xhbmVQcmlvcml0eTtcblxuICAgIGNhc2UgVXNlckJsb2NraW5nUHJpb3JpdHk6XG4gICAgICByZXR1cm4gSW5wdXRDb250aW51b3VzTGFuZVByaW9yaXR5O1xuXG4gICAgY2FzZSBOb3JtYWxQcmlvcml0eTpcbiAgICBjYXNlIExvd1ByaW9yaXR5OlxuICAgICAgLy8gVE9ETzogSGFuZGxlIExvd1NjaGVkdWxlclByaW9yaXR5LCBzb21laG93LiBNYXliZSB0aGUgc2FtZSBsYW5lIGFzIGh5ZHJhdGlvbi5cbiAgICAgIHJldHVybiBEZWZhdWx0TGFuZVByaW9yaXR5O1xuXG4gICAgY2FzZSBJZGxlUHJpb3JpdHk6XG4gICAgICByZXR1cm4gSWRsZUxhbmVQcmlvcml0eTtcblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gTm9MYW5lUHJpb3JpdHk7XG4gIH1cbn1cbmZ1bmN0aW9uIGxhbmVQcmlvcml0eVRvU2NoZWR1bGVyUHJpb3JpdHkobGFuZVByaW9yaXR5KSB7XG4gIHN3aXRjaCAobGFuZVByaW9yaXR5KSB7XG4gICAgY2FzZSBTeW5jTGFuZVByaW9yaXR5OlxuICAgIGNhc2UgU3luY0JhdGNoZWRMYW5lUHJpb3JpdHk6XG4gICAgICByZXR1cm4gSW1tZWRpYXRlUHJpb3JpdHk7XG5cbiAgICBjYXNlIElucHV0RGlzY3JldGVIeWRyYXRpb25MYW5lUHJpb3JpdHk6XG4gICAgY2FzZSBJbnB1dERpc2NyZXRlTGFuZVByaW9yaXR5OlxuICAgIGNhc2UgSW5wdXRDb250aW51b3VzSHlkcmF0aW9uTGFuZVByaW9yaXR5OlxuICAgIGNhc2UgSW5wdXRDb250aW51b3VzTGFuZVByaW9yaXR5OlxuICAgICAgcmV0dXJuIFVzZXJCbG9ja2luZ1ByaW9yaXR5O1xuXG4gICAgY2FzZSBEZWZhdWx0SHlkcmF0aW9uTGFuZVByaW9yaXR5OlxuICAgIGNhc2UgRGVmYXVsdExhbmVQcmlvcml0eTpcbiAgICBjYXNlIFRyYW5zaXRpb25IeWRyYXRpb25Qcmlvcml0eTpcbiAgICBjYXNlIFRyYW5zaXRpb25Qcmlvcml0eTpcbiAgICBjYXNlIFNlbGVjdGl2ZUh5ZHJhdGlvbkxhbmVQcmlvcml0eTpcbiAgICBjYXNlIFJldHJ5TGFuZVByaW9yaXR5OlxuICAgICAgcmV0dXJuIE5vcm1hbFByaW9yaXR5O1xuXG4gICAgY2FzZSBJZGxlSHlkcmF0aW9uTGFuZVByaW9yaXR5OlxuICAgIGNhc2UgSWRsZUxhbmVQcmlvcml0eTpcbiAgICBjYXNlIE9mZnNjcmVlbkxhbmVQcmlvcml0eTpcbiAgICAgIHJldHVybiBJZGxlUHJpb3JpdHk7XG5cbiAgICBjYXNlIE5vTGFuZVByaW9yaXR5OlxuICAgICAgcmV0dXJuIE5vUHJpb3JpdHk7XG5cbiAgICBkZWZhdWx0OlxuICAgICAge1xuICAgICAgICB7XG4gICAgICAgICAgdGhyb3cgRXJyb3IoIFwiSW52YWxpZCB1cGRhdGUgcHJpb3JpdHk6IFwiICsgbGFuZVByaW9yaXR5ICsgXCIuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuXCIgKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gIH1cbn1cbmZ1bmN0aW9uIGdldE5leHRMYW5lcyhyb290LCB3aXBMYW5lcykge1xuICAvLyBFYXJseSBiYWlsb3V0IGlmIHRoZXJlJ3Mgbm8gcGVuZGluZyB3b3JrIGxlZnQuXG4gIHZhciBwZW5kaW5nTGFuZXMgPSByb290LnBlbmRpbmdMYW5lcztcblxuICBpZiAocGVuZGluZ0xhbmVzID09PSBOb0xhbmVzKSB7XG4gICAgcmV0dXJuX2hpZ2hlc3RMYW5lUHJpb3JpdHkgPSBOb0xhbmVQcmlvcml0eTtcbiAgICByZXR1cm4gTm9MYW5lcztcbiAgfVxuXG4gIHZhciBuZXh0TGFuZXMgPSBOb0xhbmVzO1xuICB2YXIgbmV4dExhbmVQcmlvcml0eSA9IE5vTGFuZVByaW9yaXR5O1xuICB2YXIgZXhwaXJlZExhbmVzID0gcm9vdC5leHBpcmVkTGFuZXM7XG4gIHZhciBzdXNwZW5kZWRMYW5lcyA9IHJvb3Quc3VzcGVuZGVkTGFuZXM7XG4gIHZhciBwaW5nZWRMYW5lcyA9IHJvb3QucGluZ2VkTGFuZXM7IC8vIENoZWNrIGlmIGFueSB3b3JrIGhhcyBleHBpcmVkLlxuXG4gIGlmIChleHBpcmVkTGFuZXMgIT09IE5vTGFuZXMpIHtcbiAgICBuZXh0TGFuZXMgPSBleHBpcmVkTGFuZXM7XG4gICAgbmV4dExhbmVQcmlvcml0eSA9IHJldHVybl9oaWdoZXN0TGFuZVByaW9yaXR5ID0gU3luY0xhbmVQcmlvcml0eTtcbiAgfSBlbHNlIHtcbiAgICAvLyBEbyBub3Qgd29yayBvbiBhbnkgaWRsZSB3b3JrIHVudGlsIGFsbCB0aGUgbm9uLWlkbGUgd29yayBoYXMgZmluaXNoZWQsXG4gICAgLy8gZXZlbiBpZiB0aGUgd29yayBpcyBzdXNwZW5kZWQuXG4gICAgdmFyIG5vbklkbGVQZW5kaW5nTGFuZXMgPSBwZW5kaW5nTGFuZXMgJiBOb25JZGxlTGFuZXM7XG5cbiAgICBpZiAobm9uSWRsZVBlbmRpbmdMYW5lcyAhPT0gTm9MYW5lcykge1xuICAgICAgdmFyIG5vbklkbGVVbmJsb2NrZWRMYW5lcyA9IG5vbklkbGVQZW5kaW5nTGFuZXMgJiB+c3VzcGVuZGVkTGFuZXM7XG5cbiAgICAgIGlmIChub25JZGxlVW5ibG9ja2VkTGFuZXMgIT09IE5vTGFuZXMpIHtcbiAgICAgICAgbmV4dExhbmVzID0gZ2V0SGlnaGVzdFByaW9yaXR5TGFuZXMobm9uSWRsZVVuYmxvY2tlZExhbmVzKTtcbiAgICAgICAgbmV4dExhbmVQcmlvcml0eSA9IHJldHVybl9oaWdoZXN0TGFuZVByaW9yaXR5O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIG5vbklkbGVQaW5nZWRMYW5lcyA9IG5vbklkbGVQZW5kaW5nTGFuZXMgJiBwaW5nZWRMYW5lcztcblxuICAgICAgICBpZiAobm9uSWRsZVBpbmdlZExhbmVzICE9PSBOb0xhbmVzKSB7XG4gICAgICAgICAgbmV4dExhbmVzID0gZ2V0SGlnaGVzdFByaW9yaXR5TGFuZXMobm9uSWRsZVBpbmdlZExhbmVzKTtcbiAgICAgICAgICBuZXh0TGFuZVByaW9yaXR5ID0gcmV0dXJuX2hpZ2hlc3RMYW5lUHJpb3JpdHk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVGhlIG9ubHkgcmVtYWluaW5nIHdvcmsgaXMgSWRsZS5cbiAgICAgIHZhciB1bmJsb2NrZWRMYW5lcyA9IHBlbmRpbmdMYW5lcyAmIH5zdXNwZW5kZWRMYW5lcztcblxuICAgICAgaWYgKHVuYmxvY2tlZExhbmVzICE9PSBOb0xhbmVzKSB7XG4gICAgICAgIG5leHRMYW5lcyA9IGdldEhpZ2hlc3RQcmlvcml0eUxhbmVzKHVuYmxvY2tlZExhbmVzKTtcbiAgICAgICAgbmV4dExhbmVQcmlvcml0eSA9IHJldHVybl9oaWdoZXN0TGFuZVByaW9yaXR5O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHBpbmdlZExhbmVzICE9PSBOb0xhbmVzKSB7XG4gICAgICAgICAgbmV4dExhbmVzID0gZ2V0SGlnaGVzdFByaW9yaXR5TGFuZXMocGluZ2VkTGFuZXMpO1xuICAgICAgICAgIG5leHRMYW5lUHJpb3JpdHkgPSByZXR1cm5faGlnaGVzdExhbmVQcmlvcml0eTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmIChuZXh0TGFuZXMgPT09IE5vTGFuZXMpIHtcbiAgICAvLyBUaGlzIHNob3VsZCBvbmx5IGJlIHJlYWNoYWJsZSBpZiB3ZSdyZSBzdXNwZW5kZWRcbiAgICAvLyBUT0RPOiBDb25zaWRlciB3YXJuaW5nIGluIHRoaXMgcGF0aCBpZiBhIGZhbGxiYWNrIHRpbWVyIGlzIG5vdCBzY2hlZHVsZWQuXG4gICAgcmV0dXJuIE5vTGFuZXM7XG4gIH0gLy8gSWYgdGhlcmUgYXJlIGhpZ2hlciBwcmlvcml0eSBsYW5lcywgd2UnbGwgaW5jbHVkZSB0aGVtIGV2ZW4gaWYgdGhleVxuICAvLyBhcmUgc3VzcGVuZGVkLlxuXG5cbiAgbmV4dExhbmVzID0gcGVuZGluZ0xhbmVzICYgZ2V0RXF1YWxPckhpZ2hlclByaW9yaXR5TGFuZXMobmV4dExhbmVzKTsgLy8gSWYgd2UncmUgYWxyZWFkeSBpbiB0aGUgbWlkZGxlIG9mIGEgcmVuZGVyLCBzd2l0Y2hpbmcgbGFuZXMgd2lsbCBpbnRlcnJ1cHRcbiAgLy8gaXQgYW5kIHdlJ2xsIGxvc2Ugb3VyIHByb2dyZXNzLiBXZSBzaG91bGQgb25seSBkbyB0aGlzIGlmIHRoZSBuZXcgbGFuZXMgYXJlXG4gIC8vIGhpZ2hlciBwcmlvcml0eS5cblxuICBpZiAod2lwTGFuZXMgIT09IE5vTGFuZXMgJiYgd2lwTGFuZXMgIT09IG5leHRMYW5lcyAmJiAvLyBJZiB3ZSBhbHJlYWR5IHN1c3BlbmRlZCB3aXRoIGEgZGVsYXksIHRoZW4gaW50ZXJydXB0aW5nIGlzIGZpbmUuIERvbid0XG4gIC8vIGJvdGhlciB3YWl0aW5nIHVudGlsIHRoZSByb290IGlzIGNvbXBsZXRlLlxuICAod2lwTGFuZXMgJiBzdXNwZW5kZWRMYW5lcykgPT09IE5vTGFuZXMpIHtcbiAgICBnZXRIaWdoZXN0UHJpb3JpdHlMYW5lcyh3aXBMYW5lcyk7XG4gICAgdmFyIHdpcExhbmVQcmlvcml0eSA9IHJldHVybl9oaWdoZXN0TGFuZVByaW9yaXR5O1xuXG4gICAgaWYgKG5leHRMYW5lUHJpb3JpdHkgPD0gd2lwTGFuZVByaW9yaXR5KSB7XG4gICAgICByZXR1cm4gd2lwTGFuZXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybl9oaWdoZXN0TGFuZVByaW9yaXR5ID0gbmV4dExhbmVQcmlvcml0eTtcbiAgICB9XG4gIH0gLy8gQ2hlY2sgZm9yIGVudGFuZ2xlZCBsYW5lcyBhbmQgYWRkIHRoZW0gdG8gdGhlIGJhdGNoLlxuICAvL1xuICAvLyBBIGxhbmUgaXMgc2FpZCB0byBiZSBlbnRhbmdsZWQgd2l0aCBhbm90aGVyIHdoZW4gaXQncyBub3QgYWxsb3dlZCB0byByZW5kZXJcbiAgLy8gaW4gYSBiYXRjaCB0aGF0IGRvZXMgbm90IGFsc28gaW5jbHVkZSB0aGUgb3RoZXIgbGFuZS4gVHlwaWNhbGx5IHdlIGRvIHRoaXNcbiAgLy8gd2hlbiBtdWx0aXBsZSB1cGRhdGVzIGhhdmUgdGhlIHNhbWUgc291cmNlLCBhbmQgd2Ugb25seSB3YW50IHRvIHJlc3BvbmQgdG9cbiAgLy8gdGhlIG1vc3QgcmVjZW50IGV2ZW50IGZyb20gdGhhdCBzb3VyY2UuXG4gIC8vXG4gIC8vIE5vdGUgdGhhdCB3ZSBhcHBseSBlbnRhbmdsZW1lbnRzICphZnRlciogY2hlY2tpbmcgZm9yIHBhcnRpYWwgd29yayBhYm92ZS5cbiAgLy8gVGhpcyBtZWFucyB0aGF0IGlmIGEgbGFuZSBpcyBlbnRhbmdsZWQgZHVyaW5nIGFuIGludGVybGVhdmVkIGV2ZW50IHdoaWxlXG4gIC8vIGl0J3MgYWxyZWFkeSByZW5kZXJpbmcsIHdlIHdvbid0IGludGVycnVwdCBpdC4gVGhpcyBpcyBpbnRlbnRpb25hbCwgc2luY2VcbiAgLy8gZW50YW5nbGVtZW50IGlzIHVzdWFsbHkgXCJiZXN0IGVmZm9ydFwiOiB3ZSdsbCB0cnkgb3VyIGJlc3QgdG8gcmVuZGVyIHRoZVxuICAvLyBsYW5lcyBpbiB0aGUgc2FtZSBiYXRjaCwgYnV0IGl0J3Mgbm90IHdvcnRoIHRocm93aW5nIG91dCBwYXJ0aWFsbHlcbiAgLy8gY29tcGxldGVkIHdvcmsgaW4gb3JkZXIgdG8gZG8gaXQuXG4gIC8vXG4gIC8vIEZvciB0aG9zZSBleGNlcHRpb25zIHdoZXJlIGVudGFuZ2xlbWVudCBpcyBzZW1hbnRpY2FsbHkgaW1wb3J0YW50LCBsaWtlXG4gIC8vIHVzZU11dGFibGVTb3VyY2UsIHdlIHNob3VsZCBlbnN1cmUgdGhhdCB0aGVyZSBpcyBubyBwYXJ0aWFsIHdvcmsgYXQgdGhlXG4gIC8vIHRpbWUgd2UgYXBwbHkgdGhlIGVudGFuZ2xlbWVudC5cblxuXG4gIHZhciBlbnRhbmdsZWRMYW5lcyA9IHJvb3QuZW50YW5nbGVkTGFuZXM7XG5cbiAgaWYgKGVudGFuZ2xlZExhbmVzICE9PSBOb0xhbmVzKSB7XG4gICAgdmFyIGVudGFuZ2xlbWVudHMgPSByb290LmVudGFuZ2xlbWVudHM7XG4gICAgdmFyIGxhbmVzID0gbmV4dExhbmVzICYgZW50YW5nbGVkTGFuZXM7XG5cbiAgICB3aGlsZSAobGFuZXMgPiAwKSB7XG4gICAgICB2YXIgaW5kZXggPSBwaWNrQXJiaXRyYXJ5TGFuZUluZGV4KGxhbmVzKTtcbiAgICAgIHZhciBsYW5lID0gMSA8PCBpbmRleDtcbiAgICAgIG5leHRMYW5lcyB8PSBlbnRhbmdsZW1lbnRzW2luZGV4XTtcbiAgICAgIGxhbmVzICY9IH5sYW5lO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBuZXh0TGFuZXM7XG59XG5mdW5jdGlvbiBnZXRNb3N0UmVjZW50RXZlbnRUaW1lKHJvb3QsIGxhbmVzKSB7XG4gIHZhciBldmVudFRpbWVzID0gcm9vdC5ldmVudFRpbWVzO1xuICB2YXIgbW9zdFJlY2VudEV2ZW50VGltZSA9IE5vVGltZXN0YW1wO1xuXG4gIHdoaWxlIChsYW5lcyA+IDApIHtcbiAgICB2YXIgaW5kZXggPSBwaWNrQXJiaXRyYXJ5TGFuZUluZGV4KGxhbmVzKTtcbiAgICB2YXIgbGFuZSA9IDEgPDwgaW5kZXg7XG4gICAgdmFyIGV2ZW50VGltZSA9IGV2ZW50VGltZXNbaW5kZXhdO1xuXG4gICAgaWYgKGV2ZW50VGltZSA+IG1vc3RSZWNlbnRFdmVudFRpbWUpIHtcbiAgICAgIG1vc3RSZWNlbnRFdmVudFRpbWUgPSBldmVudFRpbWU7XG4gICAgfVxuXG4gICAgbGFuZXMgJj0gfmxhbmU7XG4gIH1cblxuICByZXR1cm4gbW9zdFJlY2VudEV2ZW50VGltZTtcbn1cblxuZnVuY3Rpb24gY29tcHV0ZUV4cGlyYXRpb25UaW1lKGxhbmUsIGN1cnJlbnRUaW1lKSB7XG4gIC8vIFRPRE86IEV4cGlyYXRpb24gaGV1cmlzdGljIGlzIGNvbnN0YW50IHBlciBsYW5lLCBzbyBjb3VsZCB1c2UgYSBtYXAuXG4gIGdldEhpZ2hlc3RQcmlvcml0eUxhbmVzKGxhbmUpO1xuICB2YXIgcHJpb3JpdHkgPSByZXR1cm5faGlnaGVzdExhbmVQcmlvcml0eTtcblxuICBpZiAocHJpb3JpdHkgPj0gSW5wdXRDb250aW51b3VzTGFuZVByaW9yaXR5KSB7XG4gICAgLy8gVXNlciBpbnRlcmFjdGlvbnMgc2hvdWxkIGV4cGlyZSBzbGlnaHRseSBtb3JlIHF1aWNrbHkuXG4gICAgLy9cbiAgICAvLyBOT1RFOiBUaGlzIGlzIHNldCB0byB0aGUgY29ycmVzcG9uZGluZyBjb25zdGFudCBhcyBpbiBTY2hlZHVsZXIuanMuIFdoZW5cbiAgICAvLyB3ZSBtYWRlIGl0IGxhcmdlciwgYSBwcm9kdWN0IG1ldHJpYyBpbiB3d3cgcmVncmVzc2VkLCBzdWdnZXN0aW5nIHRoZXJlJ3NcbiAgICAvLyBhIHVzZXIgaW50ZXJhY3Rpb24gdGhhdCdzIGJlaW5nIHN0YXJ2ZWQgYnkgYSBzZXJpZXMgb2Ygc3luY2hyb25vdXNcbiAgICAvLyB1cGRhdGVzLiBJZiB0aGF0IHRoZW9yeSBpcyBjb3JyZWN0LCB0aGUgcHJvcGVyIHNvbHV0aW9uIGlzIHRvIGZpeCB0aGVcbiAgICAvLyBzdGFydmF0aW9uLiBIb3dldmVyLCB0aGlzIHNjZW5hcmlvIHN1cHBvcnRzIHRoZSBpZGVhIHRoYXQgZXhwaXJhdGlvblxuICAgIC8vIHRpbWVzIGFyZSBhbiBpbXBvcnRhbnQgc2FmZWd1YXJkIHdoZW4gc3RhcnZhdGlvbiBkb2VzIGhhcHBlbi5cbiAgICAvL1xuICAgIC8vIEFsc28gbm90ZSB0aGF0LCBpbiB0aGUgY2FzZSBvZiB1c2VyIGlucHV0IHNwZWNpZmljYWxseSwgdGhpcyB3aWxsIHNvb24gbm9cbiAgICAvLyBsb25nZXIgYmUgYW4gaXNzdWUgYmVjYXVzZSB3ZSBwbGFuIHRvIG1ha2UgdXNlciBpbnB1dCBzeW5jaHJvbm91cyBieVxuICAgIC8vIGRlZmF1bHQgKHVudGlsIHlvdSBlbnRlciBgc3RhcnRUcmFuc2l0aW9uYCwgb2YgY291cnNlLilcbiAgICAvL1xuICAgIC8vIElmIHdlcmVuJ3QgcGxhbm5pbmcgdG8gbWFrZSB0aGVzZSB1cGRhdGVzIHN5bmNocm9ub3VzIHNvb24gYW55d2F5LCBJXG4gICAgLy8gd291bGQgcHJvYmFibHkgbWFrZSB0aGlzIG51bWJlciBhIGNvbmZpZ3VyYWJsZSBwYXJhbWV0ZXIuXG4gICAgcmV0dXJuIGN1cnJlbnRUaW1lICsgMjUwO1xuICB9IGVsc2UgaWYgKHByaW9yaXR5ID49IFRyYW5zaXRpb25Qcmlvcml0eSkge1xuICAgIHJldHVybiBjdXJyZW50VGltZSArIDUwMDA7XG4gIH0gZWxzZSB7XG4gICAgLy8gQW55dGhpbmcgaWRsZSBwcmlvcml0eSBvciBsb3dlciBzaG91bGQgbmV2ZXIgZXhwaXJlLlxuICAgIHJldHVybiBOb1RpbWVzdGFtcDtcbiAgfVxufVxuXG5mdW5jdGlvbiBtYXJrU3RhcnZlZExhbmVzQXNFeHBpcmVkKHJvb3QsIGN1cnJlbnRUaW1lKSB7XG4gIC8vIFRPRE86IFRoaXMgZ2V0cyBjYWxsZWQgZXZlcnkgdGltZSB3ZSB5aWVsZC4gV2UgY2FuIG9wdGltaXplIGJ5IHN0b3JpbmdcbiAgLy8gdGhlIGVhcmxpZXN0IGV4cGlyYXRpb24gdGltZSBvbiB0aGUgcm9vdC4gVGhlbiB1c2UgdGhhdCB0byBxdWlja2x5IGJhaWwgb3V0XG4gIC8vIG9mIHRoaXMgZnVuY3Rpb24uXG4gIHZhciBwZW5kaW5nTGFuZXMgPSByb290LnBlbmRpbmdMYW5lcztcbiAgdmFyIHN1c3BlbmRlZExhbmVzID0gcm9vdC5zdXNwZW5kZWRMYW5lcztcbiAgdmFyIHBpbmdlZExhbmVzID0gcm9vdC5waW5nZWRMYW5lcztcbiAgdmFyIGV4cGlyYXRpb25UaW1lcyA9IHJvb3QuZXhwaXJhdGlvblRpbWVzOyAvLyBJdGVyYXRlIHRocm91Z2ggdGhlIHBlbmRpbmcgbGFuZXMgYW5kIGNoZWNrIGlmIHdlJ3ZlIHJlYWNoZWQgdGhlaXJcbiAgLy8gZXhwaXJhdGlvbiB0aW1lLiBJZiBzbywgd2UnbGwgYXNzdW1lIHRoZSB1cGRhdGUgaXMgYmVpbmcgc3RhcnZlZCBhbmQgbWFya1xuICAvLyBpdCBhcyBleHBpcmVkIHRvIGZvcmNlIGl0IHRvIGZpbmlzaC5cblxuICB2YXIgbGFuZXMgPSBwZW5kaW5nTGFuZXM7XG5cbiAgd2hpbGUgKGxhbmVzID4gMCkge1xuICAgIHZhciBpbmRleCA9IHBpY2tBcmJpdHJhcnlMYW5lSW5kZXgobGFuZXMpO1xuICAgIHZhciBsYW5lID0gMSA8PCBpbmRleDtcbiAgICB2YXIgZXhwaXJhdGlvblRpbWUgPSBleHBpcmF0aW9uVGltZXNbaW5kZXhdO1xuXG4gICAgaWYgKGV4cGlyYXRpb25UaW1lID09PSBOb1RpbWVzdGFtcCkge1xuICAgICAgLy8gRm91bmQgYSBwZW5kaW5nIGxhbmUgd2l0aCBubyBleHBpcmF0aW9uIHRpbWUuIElmIGl0J3Mgbm90IHN1c3BlbmRlZCwgb3JcbiAgICAgIC8vIGlmIGl0J3MgcGluZ2VkLCBhc3N1bWUgaXQncyBDUFUtYm91bmQuIENvbXB1dGUgYSBuZXcgZXhwaXJhdGlvbiB0aW1lXG4gICAgICAvLyB1c2luZyB0aGUgY3VycmVudCB0aW1lLlxuICAgICAgaWYgKChsYW5lICYgc3VzcGVuZGVkTGFuZXMpID09PSBOb0xhbmVzIHx8IChsYW5lICYgcGluZ2VkTGFuZXMpICE9PSBOb0xhbmVzKSB7XG4gICAgICAgIC8vIEFzc3VtZXMgdGltZXN0YW1wcyBhcmUgbW9ub3RvbmljYWxseSBpbmNyZWFzaW5nLlxuICAgICAgICBleHBpcmF0aW9uVGltZXNbaW5kZXhdID0gY29tcHV0ZUV4cGlyYXRpb25UaW1lKGxhbmUsIGN1cnJlbnRUaW1lKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGV4cGlyYXRpb25UaW1lIDw9IGN1cnJlbnRUaW1lKSB7XG4gICAgICAvLyBUaGlzIGxhbmUgZXhwaXJlZFxuICAgICAgcm9vdC5leHBpcmVkTGFuZXMgfD0gbGFuZTtcbiAgICB9XG5cbiAgICBsYW5lcyAmPSB+bGFuZTtcbiAgfVxufSAvLyBUaGlzIHJldHVybnMgdGhlIGhpZ2hlc3QgcHJpb3JpdHkgcGVuZGluZyBsYW5lcyByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhleVxuZnVuY3Rpb24gZ2V0TGFuZXNUb1JldHJ5U3luY2hyb25vdXNseU9uRXJyb3Iocm9vdCkge1xuICB2YXIgZXZlcnl0aGluZ0J1dE9mZnNjcmVlbiA9IHJvb3QucGVuZGluZ0xhbmVzICYgfk9mZnNjcmVlbkxhbmU7XG5cbiAgaWYgKGV2ZXJ5dGhpbmdCdXRPZmZzY3JlZW4gIT09IE5vTGFuZXMpIHtcbiAgICByZXR1cm4gZXZlcnl0aGluZ0J1dE9mZnNjcmVlbjtcbiAgfVxuXG4gIGlmIChldmVyeXRoaW5nQnV0T2Zmc2NyZWVuICYgT2Zmc2NyZWVuTGFuZSkge1xuICAgIHJldHVybiBPZmZzY3JlZW5MYW5lO1xuICB9XG5cbiAgcmV0dXJuIE5vTGFuZXM7XG59XG5mdW5jdGlvbiByZXR1cm5OZXh0TGFuZXNQcmlvcml0eSgpIHtcbiAgcmV0dXJuIHJldHVybl9oaWdoZXN0TGFuZVByaW9yaXR5O1xufVxuZnVuY3Rpb24gaW5jbHVkZXNOb25JZGxlV29yayhsYW5lcykge1xuICByZXR1cm4gKGxhbmVzICYgTm9uSWRsZUxhbmVzKSAhPT0gTm9MYW5lcztcbn1cbmZ1bmN0aW9uIGluY2x1ZGVzT25seVJldHJpZXMobGFuZXMpIHtcbiAgcmV0dXJuIChsYW5lcyAmIFJldHJ5TGFuZXMpID09PSBsYW5lcztcbn1cbmZ1bmN0aW9uIGluY2x1ZGVzT25seVRyYW5zaXRpb25zKGxhbmVzKSB7XG4gIHJldHVybiAobGFuZXMgJiBUcmFuc2l0aW9uTGFuZXMpID09PSBsYW5lcztcbn0gLy8gVG8gZW5zdXJlIGNvbnNpc3RlbmN5IGFjcm9zcyBtdWx0aXBsZSB1cGRhdGVzIGluIHRoZSBzYW1lIGV2ZW50LCB0aGlzIHNob3VsZFxuLy8gYmUgYSBwdXJlIGZ1bmN0aW9uLCBzbyB0aGF0IGl0IGFsd2F5cyByZXR1cm5zIHRoZSBzYW1lIGxhbmUgZm9yIGdpdmVuIGlucHV0cy5cblxuZnVuY3Rpb24gZmluZFVwZGF0ZUxhbmUobGFuZVByaW9yaXR5LCB3aXBMYW5lcykge1xuICBzd2l0Y2ggKGxhbmVQcmlvcml0eSkge1xuICAgIGNhc2UgTm9MYW5lUHJpb3JpdHk6XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgU3luY0xhbmVQcmlvcml0eTpcbiAgICAgIHJldHVybiBTeW5jTGFuZTtcblxuICAgIGNhc2UgU3luY0JhdGNoZWRMYW5lUHJpb3JpdHk6XG4gICAgICByZXR1cm4gU3luY0JhdGNoZWRMYW5lO1xuXG4gICAgY2FzZSBJbnB1dERpc2NyZXRlTGFuZVByaW9yaXR5OlxuICAgICAge1xuICAgICAgICB2YXIgX2xhbmUgPSBwaWNrQXJiaXRyYXJ5TGFuZShJbnB1dERpc2NyZXRlTGFuZXMgJiB+d2lwTGFuZXMpO1xuXG4gICAgICAgIGlmIChfbGFuZSA9PT0gTm9MYW5lKSB7XG4gICAgICAgICAgLy8gU2hpZnQgdG8gdGhlIG5leHQgcHJpb3JpdHkgbGV2ZWxcbiAgICAgICAgICByZXR1cm4gZmluZFVwZGF0ZUxhbmUoSW5wdXRDb250aW51b3VzTGFuZVByaW9yaXR5LCB3aXBMYW5lcyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gX2xhbmU7XG4gICAgICB9XG5cbiAgICBjYXNlIElucHV0Q29udGludW91c0xhbmVQcmlvcml0eTpcbiAgICAgIHtcbiAgICAgICAgdmFyIF9sYW5lMiA9IHBpY2tBcmJpdHJhcnlMYW5lKElucHV0Q29udGludW91c0xhbmVzICYgfndpcExhbmVzKTtcblxuICAgICAgICBpZiAoX2xhbmUyID09PSBOb0xhbmUpIHtcbiAgICAgICAgICAvLyBTaGlmdCB0byB0aGUgbmV4dCBwcmlvcml0eSBsZXZlbFxuICAgICAgICAgIHJldHVybiBmaW5kVXBkYXRlTGFuZShEZWZhdWx0TGFuZVByaW9yaXR5LCB3aXBMYW5lcyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gX2xhbmUyO1xuICAgICAgfVxuXG4gICAgY2FzZSBEZWZhdWx0TGFuZVByaW9yaXR5OlxuICAgICAge1xuICAgICAgICB2YXIgX2xhbmUzID0gcGlja0FyYml0cmFyeUxhbmUoRGVmYXVsdExhbmVzICYgfndpcExhbmVzKTtcblxuICAgICAgICBpZiAoX2xhbmUzID09PSBOb0xhbmUpIHtcbiAgICAgICAgICAvLyBJZiBhbGwgdGhlIGRlZmF1bHQgbGFuZXMgYXJlIGFscmVhZHkgYmVpbmcgd29ya2VkIG9uLCBsb29rIGZvciBhXG4gICAgICAgICAgLy8gbGFuZSBpbiB0aGUgdHJhbnNpdGlvbiByYW5nZS5cbiAgICAgICAgICBfbGFuZTMgPSBwaWNrQXJiaXRyYXJ5TGFuZShUcmFuc2l0aW9uTGFuZXMgJiB+d2lwTGFuZXMpO1xuXG4gICAgICAgICAgaWYgKF9sYW5lMyA9PT0gTm9MYW5lKSB7XG4gICAgICAgICAgICAvLyBBbGwgdGhlIHRyYW5zaXRpb24gbGFuZXMgYXJlIHRha2VuLCB0b28uIFRoaXMgc2hvdWxkIGJlIHZlcnlcbiAgICAgICAgICAgIC8vIHJhcmUsIGJ1dCBhcyBhIGxhc3QgcmVzb3J0LCBwaWNrIGEgZGVmYXVsdCBsYW5lLiBUaGlzIHdpbGwgaGF2ZVxuICAgICAgICAgICAgLy8gdGhlIGVmZmVjdCBvZiBpbnRlcnJ1cHRpbmcgdGhlIGN1cnJlbnQgd29yay1pbi1wcm9ncmVzcyByZW5kZXIuXG4gICAgICAgICAgICBfbGFuZTMgPSBwaWNrQXJiaXRyYXJ5TGFuZShEZWZhdWx0TGFuZXMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBfbGFuZTM7XG4gICAgICB9XG5cbiAgICBjYXNlIFRyYW5zaXRpb25Qcmlvcml0eTogLy8gU2hvdWxkIGJlIGhhbmRsZWQgYnkgZmluZFRyYW5zaXRpb25MYW5lIGluc3RlYWRcblxuICAgIGNhc2UgUmV0cnlMYW5lUHJpb3JpdHk6XG4gICAgICAvLyBTaG91bGQgYmUgaGFuZGxlZCBieSBmaW5kUmV0cnlMYW5lIGluc3RlYWRcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBJZGxlTGFuZVByaW9yaXR5OlxuICAgICAgdmFyIGxhbmUgPSBwaWNrQXJiaXRyYXJ5TGFuZShJZGxlTGFuZXMgJiB+d2lwTGFuZXMpO1xuXG4gICAgICBpZiAobGFuZSA9PT0gTm9MYW5lKSB7XG4gICAgICAgIGxhbmUgPSBwaWNrQXJiaXRyYXJ5TGFuZShJZGxlTGFuZXMpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbGFuZTtcbiAgfVxuXG4gIHtcbiAgICB7XG4gICAgICB0aHJvdyBFcnJvciggXCJJbnZhbGlkIHVwZGF0ZSBwcmlvcml0eTogXCIgKyBsYW5lUHJpb3JpdHkgKyBcIi4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC5cIiApO1xuICAgIH1cbiAgfVxufSAvLyBUbyBlbnN1cmUgY29uc2lzdGVuY3kgYWNyb3NzIG11bHRpcGxlIHVwZGF0ZXMgaW4gdGhlIHNhbWUgZXZlbnQsIHRoaXMgc2hvdWxkXG4vLyBiZSBwdXJlIGZ1bmN0aW9uLCBzbyB0aGF0IGl0IGFsd2F5cyByZXR1cm5zIHRoZSBzYW1lIGxhbmUgZm9yIGdpdmVuIGlucHV0cy5cblxuZnVuY3Rpb24gZmluZFRyYW5zaXRpb25MYW5lKHdpcExhbmVzLCBwZW5kaW5nTGFuZXMpIHtcbiAgLy8gRmlyc3QgbG9vayBmb3IgbGFuZXMgdGhhdCBhcmUgY29tcGxldGVseSB1bmNsYWltZWQsIGkuZS4gaGF2ZSBub1xuICAvLyBwZW5kaW5nIHdvcmsuXG4gIHZhciBsYW5lID0gcGlja0FyYml0cmFyeUxhbmUoVHJhbnNpdGlvbkxhbmVzICYgfnBlbmRpbmdMYW5lcyk7XG5cbiAgaWYgKGxhbmUgPT09IE5vTGFuZSkge1xuICAgIC8vIElmIGFsbCBsYW5lcyBoYXZlIHBlbmRpbmcgd29yaywgbG9vayBmb3IgYSBsYW5lIHRoYXQgaXNuJ3QgY3VycmVudGx5XG4gICAgLy8gYmVpbmcgd29ya2VkIG9uLlxuICAgIGxhbmUgPSBwaWNrQXJiaXRyYXJ5TGFuZShUcmFuc2l0aW9uTGFuZXMgJiB+d2lwTGFuZXMpO1xuXG4gICAgaWYgKGxhbmUgPT09IE5vTGFuZSkge1xuICAgICAgLy8gSWYgZXZlcnl0aGluZyBpcyBiZWluZyB3b3JrZWQgb24sIHBpY2sgYW55IGxhbmUuIFRoaXMgaGFzIHRoZVxuICAgICAgLy8gZWZmZWN0IG9mIGludGVycnVwdGluZyB0aGUgY3VycmVudCB3b3JrLWluLXByb2dyZXNzLlxuICAgICAgbGFuZSA9IHBpY2tBcmJpdHJhcnlMYW5lKFRyYW5zaXRpb25MYW5lcyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGxhbmU7XG59IC8vIFRvIGVuc3VyZSBjb25zaXN0ZW5jeSBhY3Jvc3MgbXVsdGlwbGUgdXBkYXRlcyBpbiB0aGUgc2FtZSBldmVudCwgdGhpcyBzaG91bGRcbi8vIGJlIHB1cmUgZnVuY3Rpb24sIHNvIHRoYXQgaXQgYWx3YXlzIHJldHVybnMgdGhlIHNhbWUgbGFuZSBmb3IgZ2l2ZW4gaW5wdXRzLlxuXG5mdW5jdGlvbiBmaW5kUmV0cnlMYW5lKHdpcExhbmVzKSB7XG4gIC8vIFRoaXMgaXMgYSBmb3JrIG9mIGBmaW5kVXBkYXRlTGFuZWAgZGVzaWduZWQgc3BlY2lmaWNhbGx5IGZvciBTdXNwZW5zZVxuICAvLyBcInJldHJpZXNcIiDigJQgYSBzcGVjaWFsIHVwZGF0ZSB0aGF0IGF0dGVtcHRzIHRvIGZsaXAgYSBTdXNwZW5zZSBib3VuZGFyeVxuICAvLyBmcm9tIGl0cyBwbGFjZWhvbGRlciBzdGF0ZSB0byBpdHMgcHJpbWFyeS9yZXNvbHZlZCBzdGF0ZS5cbiAgdmFyIGxhbmUgPSBwaWNrQXJiaXRyYXJ5TGFuZShSZXRyeUxhbmVzICYgfndpcExhbmVzKTtcblxuICBpZiAobGFuZSA9PT0gTm9MYW5lKSB7XG4gICAgbGFuZSA9IHBpY2tBcmJpdHJhcnlMYW5lKFJldHJ5TGFuZXMpO1xuICB9XG5cbiAgcmV0dXJuIGxhbmU7XG59XG5cbmZ1bmN0aW9uIGdldEhpZ2hlc3RQcmlvcml0eUxhbmUobGFuZXMpIHtcbiAgcmV0dXJuIGxhbmVzICYgLWxhbmVzO1xufVxuXG5mdW5jdGlvbiBnZXRMb3dlc3RQcmlvcml0eUxhbmUobGFuZXMpIHtcbiAgLy8gVGhpcyBmaW5kcyB0aGUgbW9zdCBzaWduaWZpY2FudCBub24temVybyBiaXQuXG4gIHZhciBpbmRleCA9IDMxIC0gY2x6MzIobGFuZXMpO1xuICByZXR1cm4gaW5kZXggPCAwID8gTm9MYW5lcyA6IDEgPDwgaW5kZXg7XG59XG5cbmZ1bmN0aW9uIGdldEVxdWFsT3JIaWdoZXJQcmlvcml0eUxhbmVzKGxhbmVzKSB7XG4gIHJldHVybiAoZ2V0TG93ZXN0UHJpb3JpdHlMYW5lKGxhbmVzKSA8PCAxKSAtIDE7XG59XG5cbmZ1bmN0aW9uIHBpY2tBcmJpdHJhcnlMYW5lKGxhbmVzKSB7XG4gIC8vIFRoaXMgd3JhcHBlciBmdW5jdGlvbiBnZXRzIGlubGluZWQuIE9ubHkgZXhpc3RzIHNvIHRvIGNvbW11bmljYXRlIHRoYXQgaXRcbiAgLy8gZG9lc24ndCBtYXR0ZXIgd2hpY2ggYml0IGlzIHNlbGVjdGVkOyB5b3UgY2FuIHBpY2sgYW55IGJpdCB3aXRob3V0XG4gIC8vIGFmZmVjdGluZyB0aGUgYWxnb3JpdGhtcyB3aGVyZSBpdHMgdXNlZC4gSGVyZSBJJ20gdXNpbmdcbiAgLy8gZ2V0SGlnaGVzdFByaW9yaXR5TGFuZSBiZWNhdXNlIGl0IHJlcXVpcmVzIHRoZSBmZXdlc3Qgb3BlcmF0aW9ucy5cbiAgcmV0dXJuIGdldEhpZ2hlc3RQcmlvcml0eUxhbmUobGFuZXMpO1xufVxuXG5mdW5jdGlvbiBwaWNrQXJiaXRyYXJ5TGFuZUluZGV4KGxhbmVzKSB7XG4gIHJldHVybiAzMSAtIGNsejMyKGxhbmVzKTtcbn1cblxuZnVuY3Rpb24gbGFuZVRvSW5kZXgobGFuZSkge1xuICByZXR1cm4gcGlja0FyYml0cmFyeUxhbmVJbmRleChsYW5lKTtcbn1cblxuZnVuY3Rpb24gaW5jbHVkZXNTb21lTGFuZShhLCBiKSB7XG4gIHJldHVybiAoYSAmIGIpICE9PSBOb0xhbmVzO1xufVxuZnVuY3Rpb24gaXNTdWJzZXRPZkxhbmVzKHNldCwgc3Vic2V0KSB7XG4gIHJldHVybiAoc2V0ICYgc3Vic2V0KSA9PT0gc3Vic2V0O1xufVxuZnVuY3Rpb24gbWVyZ2VMYW5lcyhhLCBiKSB7XG4gIHJldHVybiBhIHwgYjtcbn1cbmZ1bmN0aW9uIHJlbW92ZUxhbmVzKHNldCwgc3Vic2V0KSB7XG4gIHJldHVybiBzZXQgJiB+c3Vic2V0O1xufSAvLyBTZWVtcyByZWR1bmRhbnQsIGJ1dCBpdCBjaGFuZ2VzIHRoZSB0eXBlIGZyb20gYSBzaW5nbGUgbGFuZSAodXNlZCBmb3Jcbi8vIHVwZGF0ZXMpIHRvIGEgZ3JvdXAgb2YgbGFuZXMgKHVzZWQgZm9yIGZsdXNoaW5nIHdvcmspLlxuXG5mdW5jdGlvbiBsYW5lVG9MYW5lcyhsYW5lKSB7XG4gIHJldHVybiBsYW5lO1xufVxuZnVuY3Rpb24gaGlnaGVyUHJpb3JpdHlMYW5lKGEsIGIpIHtcbiAgLy8gVGhpcyB3b3JrcyBiZWNhdXNlIHRoZSBiaXQgcmFuZ2VzIGRlY3JlYXNlIGluIHByaW9yaXR5IGFzIHlvdSBnbyBsZWZ0LlxuICByZXR1cm4gYSAhPT0gTm9MYW5lICYmIGEgPCBiID8gYSA6IGI7XG59XG5mdW5jdGlvbiBjcmVhdGVMYW5lTWFwKGluaXRpYWwpIHtcbiAgLy8gSW50ZW50aW9uYWxseSBwdXNoaW5nIG9uZSBieSBvbmUuXG4gIC8vIGh0dHBzOi8vdjguZGV2L2Jsb2cvZWxlbWVudHMta2luZHMjYXZvaWQtY3JlYXRpbmctaG9sZXNcbiAgdmFyIGxhbmVNYXAgPSBbXTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IFRvdGFsTGFuZXM7IGkrKykge1xuICAgIGxhbmVNYXAucHVzaChpbml0aWFsKTtcbiAgfVxuXG4gIHJldHVybiBsYW5lTWFwO1xufVxuZnVuY3Rpb24gbWFya1Jvb3RVcGRhdGVkKHJvb3QsIHVwZGF0ZUxhbmUsIGV2ZW50VGltZSkge1xuICByb290LnBlbmRpbmdMYW5lcyB8PSB1cGRhdGVMYW5lOyAvLyBUT0RPOiBUaGVvcmV0aWNhbGx5LCBhbnkgdXBkYXRlIHRvIGFueSBsYW5lIGNhbiB1bmJsb2NrIGFueSBvdGhlciBsYW5lLiBCdXRcbiAgLy8gaXQncyBub3QgcHJhY3RpY2FsIHRvIHRyeSBldmVyeSBzaW5nbGUgcG9zc2libGUgY29tYmluYXRpb24uIFdlIG5lZWQgYVxuICAvLyBoZXVyaXN0aWMgdG8gZGVjaWRlIHdoaWNoIGxhbmVzIHRvIGF0dGVtcHQgdG8gcmVuZGVyLCBhbmQgaW4gd2hpY2ggYmF0Y2hlcy5cbiAgLy8gRm9yIG5vdywgd2UgdXNlIHRoZSBzYW1lIGhldXJpc3RpYyBhcyBpbiB0aGUgb2xkIEV4cGlyYXRpb25UaW1lcyBtb2RlbDpcbiAgLy8gcmV0cnkgYW55IGxhbmUgYXQgZXF1YWwgb3IgbG93ZXIgcHJpb3JpdHksIGJ1dCBkb24ndCB0cnkgdXBkYXRlcyBhdCBoaWdoZXJcbiAgLy8gcHJpb3JpdHkgd2l0aG91dCBhbHNvIGluY2x1ZGluZyB0aGUgbG93ZXIgcHJpb3JpdHkgdXBkYXRlcy4gVGhpcyB3b3JrcyB3ZWxsXG4gIC8vIHdoZW4gY29uc2lkZXJpbmcgdXBkYXRlcyBhY3Jvc3MgZGlmZmVyZW50IHByaW9yaXR5IGxldmVscywgYnV0IGlzbid0XG4gIC8vIHN1ZmZpY2llbnQgZm9yIHVwZGF0ZXMgd2l0aGluIHRoZSBzYW1lIHByaW9yaXR5LCBzaW5jZSB3ZSB3YW50IHRvIHRyZWF0XG4gIC8vIHRob3NlIHVwZGF0ZXMgYXMgcGFyYWxsZWwuXG4gIC8vIFVuc3VzcGVuZCBhbnkgdXBkYXRlIGF0IGVxdWFsIG9yIGxvd2VyIHByaW9yaXR5LlxuXG4gIHZhciBoaWdoZXJQcmlvcml0eUxhbmVzID0gdXBkYXRlTGFuZSAtIDE7IC8vIFR1cm5zIDBiMTAwMCBpbnRvIDBiMDExMVxuXG4gIHJvb3Quc3VzcGVuZGVkTGFuZXMgJj0gaGlnaGVyUHJpb3JpdHlMYW5lcztcbiAgcm9vdC5waW5nZWRMYW5lcyAmPSBoaWdoZXJQcmlvcml0eUxhbmVzO1xuICB2YXIgZXZlbnRUaW1lcyA9IHJvb3QuZXZlbnRUaW1lcztcbiAgdmFyIGluZGV4ID0gbGFuZVRvSW5kZXgodXBkYXRlTGFuZSk7IC8vIFdlIGNhbiBhbHdheXMgb3ZlcndyaXRlIGFuIGV4aXN0aW5nIHRpbWVzdGFtcCBiZWNhdXNlIHdlIHByZWZlciB0aGUgbW9zdFxuICAvLyByZWNlbnQgZXZlbnQsIGFuZCB3ZSBhc3N1bWUgdGltZSBpcyBtb25vdG9uaWNhbGx5IGluY3JlYXNpbmcuXG5cbiAgZXZlbnRUaW1lc1tpbmRleF0gPSBldmVudFRpbWU7XG59XG5mdW5jdGlvbiBtYXJrUm9vdFN1c3BlbmRlZChyb290LCBzdXNwZW5kZWRMYW5lcykge1xuICByb290LnN1c3BlbmRlZExhbmVzIHw9IHN1c3BlbmRlZExhbmVzO1xuICByb290LnBpbmdlZExhbmVzICY9IH5zdXNwZW5kZWRMYW5lczsgLy8gVGhlIHN1c3BlbmRlZCBsYW5lcyBhcmUgbm8gbG9uZ2VyIENQVS1ib3VuZC4gQ2xlYXIgdGhlaXIgZXhwaXJhdGlvbiB0aW1lcy5cblxuICB2YXIgZXhwaXJhdGlvblRpbWVzID0gcm9vdC5leHBpcmF0aW9uVGltZXM7XG4gIHZhciBsYW5lcyA9IHN1c3BlbmRlZExhbmVzO1xuXG4gIHdoaWxlIChsYW5lcyA+IDApIHtcbiAgICB2YXIgaW5kZXggPSBwaWNrQXJiaXRyYXJ5TGFuZUluZGV4KGxhbmVzKTtcbiAgICB2YXIgbGFuZSA9IDEgPDwgaW5kZXg7XG4gICAgZXhwaXJhdGlvblRpbWVzW2luZGV4XSA9IE5vVGltZXN0YW1wO1xuICAgIGxhbmVzICY9IH5sYW5lO1xuICB9XG59XG5mdW5jdGlvbiBtYXJrUm9vdFBpbmdlZChyb290LCBwaW5nZWRMYW5lcywgZXZlbnRUaW1lKSB7XG4gIHJvb3QucGluZ2VkTGFuZXMgfD0gcm9vdC5zdXNwZW5kZWRMYW5lcyAmIHBpbmdlZExhbmVzO1xufVxuZnVuY3Rpb24gbWFya0Rpc2NyZXRlVXBkYXRlc0V4cGlyZWQocm9vdCkge1xuICByb290LmV4cGlyZWRMYW5lcyB8PSBJbnB1dERpc2NyZXRlTGFuZXMgJiByb290LnBlbmRpbmdMYW5lcztcbn1cbmZ1bmN0aW9uIGhhc0Rpc2NyZXRlTGFuZXMobGFuZXMpIHtcbiAgcmV0dXJuIChsYW5lcyAmIElucHV0RGlzY3JldGVMYW5lcykgIT09IE5vTGFuZXM7XG59XG5mdW5jdGlvbiBtYXJrUm9vdE11dGFibGVSZWFkKHJvb3QsIHVwZGF0ZUxhbmUpIHtcbiAgcm9vdC5tdXRhYmxlUmVhZExhbmVzIHw9IHVwZGF0ZUxhbmUgJiByb290LnBlbmRpbmdMYW5lcztcbn1cbmZ1bmN0aW9uIG1hcmtSb290RmluaXNoZWQocm9vdCwgcmVtYWluaW5nTGFuZXMpIHtcbiAgdmFyIG5vTG9uZ2VyUGVuZGluZ0xhbmVzID0gcm9vdC5wZW5kaW5nTGFuZXMgJiB+cmVtYWluaW5nTGFuZXM7XG4gIHJvb3QucGVuZGluZ0xhbmVzID0gcmVtYWluaW5nTGFuZXM7IC8vIExldCdzIHRyeSBldmVyeXRoaW5nIGFnYWluXG5cbiAgcm9vdC5zdXNwZW5kZWRMYW5lcyA9IDA7XG4gIHJvb3QucGluZ2VkTGFuZXMgPSAwO1xuICByb290LmV4cGlyZWRMYW5lcyAmPSByZW1haW5pbmdMYW5lcztcbiAgcm9vdC5tdXRhYmxlUmVhZExhbmVzICY9IHJlbWFpbmluZ0xhbmVzO1xuICByb290LmVudGFuZ2xlZExhbmVzICY9IHJlbWFpbmluZ0xhbmVzO1xuICB2YXIgZW50YW5nbGVtZW50cyA9IHJvb3QuZW50YW5nbGVtZW50cztcbiAgdmFyIGV2ZW50VGltZXMgPSByb290LmV2ZW50VGltZXM7XG4gIHZhciBleHBpcmF0aW9uVGltZXMgPSByb290LmV4cGlyYXRpb25UaW1lczsgLy8gQ2xlYXIgdGhlIGxhbmVzIHRoYXQgbm8gbG9uZ2VyIGhhdmUgcGVuZGluZyB3b3JrXG5cbiAgdmFyIGxhbmVzID0gbm9Mb25nZXJQZW5kaW5nTGFuZXM7XG5cbiAgd2hpbGUgKGxhbmVzID4gMCkge1xuICAgIHZhciBpbmRleCA9IHBpY2tBcmJpdHJhcnlMYW5lSW5kZXgobGFuZXMpO1xuICAgIHZhciBsYW5lID0gMSA8PCBpbmRleDtcbiAgICBlbnRhbmdsZW1lbnRzW2luZGV4XSA9IE5vTGFuZXM7XG4gICAgZXZlbnRUaW1lc1tpbmRleF0gPSBOb1RpbWVzdGFtcDtcbiAgICBleHBpcmF0aW9uVGltZXNbaW5kZXhdID0gTm9UaW1lc3RhbXA7XG4gICAgbGFuZXMgJj0gfmxhbmU7XG4gIH1cbn1cbmZ1bmN0aW9uIG1hcmtSb290RW50YW5nbGVkKHJvb3QsIGVudGFuZ2xlZExhbmVzKSB7XG4gIHJvb3QuZW50YW5nbGVkTGFuZXMgfD0gZW50YW5nbGVkTGFuZXM7XG4gIHZhciBlbnRhbmdsZW1lbnRzID0gcm9vdC5lbnRhbmdsZW1lbnRzO1xuICB2YXIgbGFuZXMgPSBlbnRhbmdsZWRMYW5lcztcblxuICB3aGlsZSAobGFuZXMgPiAwKSB7XG4gICAgdmFyIGluZGV4ID0gcGlja0FyYml0cmFyeUxhbmVJbmRleChsYW5lcyk7XG4gICAgdmFyIGxhbmUgPSAxIDw8IGluZGV4O1xuICAgIGVudGFuZ2xlbWVudHNbaW5kZXhdIHw9IGVudGFuZ2xlZExhbmVzO1xuICAgIGxhbmVzICY9IH5sYW5lO1xuICB9XG59XG52YXIgY2x6MzIgPSBNYXRoLmNsejMyID8gTWF0aC5jbHozMiA6IGNsejMyRmFsbGJhY2s7IC8vIENvdW50IGxlYWRpbmcgemVyb3MuIE9ubHkgdXNlZCBvbiBsYW5lcywgc28gYXNzdW1lIGlucHV0IGlzIGFuIGludGVnZXIuXG4vLyBCYXNlZCBvbjpcbi8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL01hdGgvY2x6MzJcblxudmFyIGxvZyA9IE1hdGgubG9nO1xudmFyIExOMiA9IE1hdGguTE4yO1xuXG5mdW5jdGlvbiBjbHozMkZhbGxiYWNrKGxhbmVzKSB7XG4gIGlmIChsYW5lcyA9PT0gMCkge1xuICAgIHJldHVybiAzMjtcbiAgfVxuXG4gIHJldHVybiAzMSAtIChsb2cobGFuZXMpIC8gTE4yIHwgMCkgfCAwO1xufVxuXG4vLyBJbnRlbnRpb25hbGx5IG5vdCBuYW1lZCBpbXBvcnRzIGJlY2F1c2UgUm9sbHVwIHdvdWxkIHVzZSBkeW5hbWljIGRpc3BhdGNoIGZvclxudmFyIFVzZXJCbG9ja2luZ1ByaW9yaXR5JDEgPSBTY2hlZHVsZXIudW5zdGFibGVfVXNlckJsb2NraW5nUHJpb3JpdHksXG4gICAgcnVuV2l0aFByaW9yaXR5ID0gU2NoZWR1bGVyLnVuc3RhYmxlX3J1bldpdGhQcmlvcml0eTsgLy8gVE9ETzogY2FuIHdlIHN0b3AgZXhwb3J0aW5nIHRoZXNlP1xuXG52YXIgX2VuYWJsZWQgPSB0cnVlOyAvLyBUaGlzIGlzIGV4cG9ydGVkIGluIEZCIGJ1aWxkcyBmb3IgdXNlIGJ5IGxlZ2FjeSBGQiBsYXllciBpbmZyYS5cbi8vIFdlJ2QgbGlrZSB0byByZW1vdmUgdGhpcyBidXQgaXQncyBub3QgY2xlYXIgaWYgdGhpcyBpcyBzYWZlLlxuXG5mdW5jdGlvbiBzZXRFbmFibGVkKGVuYWJsZWQpIHtcbiAgX2VuYWJsZWQgPSAhIWVuYWJsZWQ7XG59XG5mdW5jdGlvbiBpc0VuYWJsZWQoKSB7XG4gIHJldHVybiBfZW5hYmxlZDtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUV2ZW50TGlzdGVuZXJXcmFwcGVyV2l0aFByaW9yaXR5KHRhcmdldENvbnRhaW5lciwgZG9tRXZlbnROYW1lLCBldmVudFN5c3RlbUZsYWdzKSB7XG4gIHZhciBldmVudFByaW9yaXR5ID0gZ2V0RXZlbnRQcmlvcml0eUZvclBsdWdpblN5c3RlbShkb21FdmVudE5hbWUpO1xuICB2YXIgbGlzdGVuZXJXcmFwcGVyO1xuXG4gIHN3aXRjaCAoZXZlbnRQcmlvcml0eSkge1xuICAgIGNhc2UgRGlzY3JldGVFdmVudDpcbiAgICAgIGxpc3RlbmVyV3JhcHBlciA9IGRpc3BhdGNoRGlzY3JldGVFdmVudDtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBVc2VyQmxvY2tpbmdFdmVudDpcbiAgICAgIGxpc3RlbmVyV3JhcHBlciA9IGRpc3BhdGNoVXNlckJsb2NraW5nVXBkYXRlO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIENvbnRpbnVvdXNFdmVudDpcbiAgICBkZWZhdWx0OlxuICAgICAgbGlzdGVuZXJXcmFwcGVyID0gZGlzcGF0Y2hFdmVudDtcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgcmV0dXJuIGxpc3RlbmVyV3JhcHBlci5iaW5kKG51bGwsIGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgdGFyZ2V0Q29udGFpbmVyKTtcbn1cblxuZnVuY3Rpb24gZGlzcGF0Y2hEaXNjcmV0ZUV2ZW50KGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgY29udGFpbmVyLCBuYXRpdmVFdmVudCkge1xuICB7XG4gICAgZmx1c2hEaXNjcmV0ZVVwZGF0ZXNJZk5lZWRlZChuYXRpdmVFdmVudC50aW1lU3RhbXApO1xuICB9XG5cbiAgZGlzY3JldGVVcGRhdGVzKGRpc3BhdGNoRXZlbnQsIGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgY29udGFpbmVyLCBuYXRpdmVFdmVudCk7XG59XG5cbmZ1bmN0aW9uIGRpc3BhdGNoVXNlckJsb2NraW5nVXBkYXRlKGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgY29udGFpbmVyLCBuYXRpdmVFdmVudCkge1xuICB7XG4gICAgcnVuV2l0aFByaW9yaXR5KFVzZXJCbG9ja2luZ1ByaW9yaXR5JDEsIGRpc3BhdGNoRXZlbnQuYmluZChudWxsLCBkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIGNvbnRhaW5lciwgbmF0aXZlRXZlbnQpKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBkaXNwYXRjaEV2ZW50KGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgdGFyZ2V0Q29udGFpbmVyLCBuYXRpdmVFdmVudCkge1xuICBpZiAoIV9lbmFibGVkKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdmFyIGFsbG93UmVwbGF5ID0gdHJ1ZTtcblxuICB7XG4gICAgLy8gVE9ETzogcmVwbGF5aW5nIGNhcHR1cmUgcGhhc2UgZXZlbnRzIGlzIGN1cnJlbnRseSBicm9rZW5cbiAgICAvLyBiZWNhdXNlIHdlIHVzZWQgdG8gZG8gaXQgZHVyaW5nIHRvcC1sZXZlbCBuYXRpdmUgYnViYmxlIGhhbmRsZXJzXG4gICAgLy8gYnV0IG5vdyB3ZSB1c2UgZGlmZmVyZW50IGJ1YmJsZSBhbmQgY2FwdHVyZSBoYW5kbGVycy5cbiAgICAvLyBJbiBlYWdlciBtb2RlLCB3ZSBhdHRhY2ggY2FwdHVyZSBsaXN0ZW5lcnMgZWFybHksIHNvIHdlIG5lZWRcbiAgICAvLyB0byBmaWx0ZXIgdGhlbSBvdXQgdW50aWwgd2UgZml4IHRoZSBsb2dpYyB0byBoYW5kbGUgdGhlbSBjb3JyZWN0bHkuXG4gICAgLy8gVGhpcyBjb3VsZCd2ZSBiZWVuIG91dHNpZGUgdGhlIGZsYWcgYnV0IEkgcHV0IGl0IGluc2lkZSB0byByZWR1Y2Ugcmlzay5cbiAgICBhbGxvd1JlcGxheSA9IChldmVudFN5c3RlbUZsYWdzICYgSVNfQ0FQVFVSRV9QSEFTRSkgPT09IDA7XG4gIH1cblxuICBpZiAoYWxsb3dSZXBsYXkgJiYgaGFzUXVldWVkRGlzY3JldGVFdmVudHMoKSAmJiBpc1JlcGxheWFibGVEaXNjcmV0ZUV2ZW50KGRvbUV2ZW50TmFtZSkpIHtcbiAgICAvLyBJZiB3ZSBhbHJlYWR5IGhhdmUgYSBxdWV1ZSBvZiBkaXNjcmV0ZSBldmVudHMsIGFuZCB0aGlzIGlzIGFub3RoZXIgZGlzY3JldGVcbiAgICAvLyBldmVudCwgdGhlbiB3ZSBjYW4ndCBkaXNwYXRjaCBpdCByZWdhcmRsZXNzIG9mIGl0cyB0YXJnZXQsIHNpbmNlIHRoZXlcbiAgICAvLyBuZWVkIHRvIGRpc3BhdGNoIGluIG9yZGVyLlxuICAgIHF1ZXVlRGlzY3JldGVFdmVudChudWxsLCAvLyBGbGFncyB0aGF0IHdlJ3JlIG5vdCBhY3R1YWxseSBibG9ja2VkIG9uIGFueXRoaW5nIGFzIGZhciBhcyB3ZSBrbm93LlxuICAgIGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgdGFyZ2V0Q29udGFpbmVyLCBuYXRpdmVFdmVudCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdmFyIGJsb2NrZWRPbiA9IGF0dGVtcHRUb0Rpc3BhdGNoRXZlbnQoZG9tRXZlbnROYW1lLCBldmVudFN5c3RlbUZsYWdzLCB0YXJnZXRDb250YWluZXIsIG5hdGl2ZUV2ZW50KTtcblxuICBpZiAoYmxvY2tlZE9uID09PSBudWxsKSB7XG4gICAgLy8gV2Ugc3VjY2Vzc2Z1bGx5IGRpc3BhdGNoZWQgdGhpcyBldmVudC5cbiAgICBpZiAoYWxsb3dSZXBsYXkpIHtcbiAgICAgIGNsZWFySWZDb250aW51b3VzRXZlbnQoZG9tRXZlbnROYW1lLCBuYXRpdmVFdmVudCk7XG4gICAgfVxuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKGFsbG93UmVwbGF5KSB7XG4gICAgaWYgKGlzUmVwbGF5YWJsZURpc2NyZXRlRXZlbnQoZG9tRXZlbnROYW1lKSkge1xuICAgICAgLy8gVGhpcyB0aGlzIHRvIGJlIHJlcGxheWVkIGxhdGVyIG9uY2UgdGhlIHRhcmdldCBpcyBhdmFpbGFibGUuXG4gICAgICBxdWV1ZURpc2NyZXRlRXZlbnQoYmxvY2tlZE9uLCBkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIHRhcmdldENvbnRhaW5lciwgbmF0aXZlRXZlbnQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChxdWV1ZUlmQ29udGludW91c0V2ZW50KGJsb2NrZWRPbiwgZG9tRXZlbnROYW1lLCBldmVudFN5c3RlbUZsYWdzLCB0YXJnZXRDb250YWluZXIsIG5hdGl2ZUV2ZW50KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH0gLy8gV2UgbmVlZCB0byBjbGVhciBvbmx5IGlmIHdlIGRpZG4ndCBxdWV1ZSBiZWNhdXNlXG4gICAgLy8gcXVldWVpbmcgaXMgYWNjdW1tdWxhdGl2ZS5cblxuXG4gICAgY2xlYXJJZkNvbnRpbnVvdXNFdmVudChkb21FdmVudE5hbWUsIG5hdGl2ZUV2ZW50KTtcbiAgfSAvLyBUaGlzIGlzIG5vdCByZXBsYXlhYmxlIHNvIHdlJ2xsIGludm9rZSBpdCBidXQgd2l0aG91dCBhIHRhcmdldCxcbiAgLy8gaW4gY2FzZSB0aGUgZXZlbnQgc3lzdGVtIG5lZWRzIHRvIHRyYWNlIGl0LlxuXG5cbiAgZGlzcGF0Y2hFdmVudEZvclBsdWdpbkV2ZW50U3lzdGVtKGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgbmF0aXZlRXZlbnQsIG51bGwsIHRhcmdldENvbnRhaW5lcik7XG59IC8vIEF0dGVtcHQgZGlzcGF0Y2hpbmcgYW4gZXZlbnQuIFJldHVybnMgYSBTdXNwZW5zZUluc3RhbmNlIG9yIENvbnRhaW5lciBpZiBpdCdzIGJsb2NrZWQuXG5cbmZ1bmN0aW9uIGF0dGVtcHRUb0Rpc3BhdGNoRXZlbnQoZG9tRXZlbnROYW1lLCBldmVudFN5c3RlbUZsYWdzLCB0YXJnZXRDb250YWluZXIsIG5hdGl2ZUV2ZW50KSB7XG4gIC8vIFRPRE86IFdhcm4gaWYgX2VuYWJsZWQgaXMgZmFsc2UuXG4gIHZhciBuYXRpdmVFdmVudFRhcmdldCA9IGdldEV2ZW50VGFyZ2V0KG5hdGl2ZUV2ZW50KTtcbiAgdmFyIHRhcmdldEluc3QgPSBnZXRDbG9zZXN0SW5zdGFuY2VGcm9tTm9kZShuYXRpdmVFdmVudFRhcmdldCk7XG5cbiAgaWYgKHRhcmdldEluc3QgIT09IG51bGwpIHtcbiAgICB2YXIgbmVhcmVzdE1vdW50ZWQgPSBnZXROZWFyZXN0TW91bnRlZEZpYmVyKHRhcmdldEluc3QpO1xuXG4gICAgaWYgKG5lYXJlc3RNb3VudGVkID09PSBudWxsKSB7XG4gICAgICAvLyBUaGlzIHRyZWUgaGFzIGJlZW4gdW5tb3VudGVkIGFscmVhZHkuIERpc3BhdGNoIHdpdGhvdXQgYSB0YXJnZXQuXG4gICAgICB0YXJnZXRJbnN0ID0gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIHRhZyA9IG5lYXJlc3RNb3VudGVkLnRhZztcblxuICAgICAgaWYgKHRhZyA9PT0gU3VzcGVuc2VDb21wb25lbnQpIHtcbiAgICAgICAgdmFyIGluc3RhbmNlID0gZ2V0U3VzcGVuc2VJbnN0YW5jZUZyb21GaWJlcihuZWFyZXN0TW91bnRlZCk7XG5cbiAgICAgICAgaWYgKGluc3RhbmNlICE9PSBudWxsKSB7XG4gICAgICAgICAgLy8gUXVldWUgdGhlIGV2ZW50IHRvIGJlIHJlcGxheWVkIGxhdGVyLiBBYm9ydCBkaXNwYXRjaGluZyBzaW5jZSB3ZVxuICAgICAgICAgIC8vIGRvbid0IHdhbnQgdGhpcyBldmVudCBkaXNwYXRjaGVkIHR3aWNlIHRocm91Z2ggdGhlIGV2ZW50IHN5c3RlbS5cbiAgICAgICAgICAvLyBUT0RPOiBJZiB0aGlzIGlzIHRoZSBmaXJzdCBkaXNjcmV0ZSBldmVudCBpbiB0aGUgcXVldWUuIFNjaGVkdWxlIGFuIGluY3JlYXNlZFxuICAgICAgICAgIC8vIHByaW9yaXR5IGZvciB0aGlzIGJvdW5kYXJ5LlxuICAgICAgICAgIHJldHVybiBpbnN0YW5jZTtcbiAgICAgICAgfSAvLyBUaGlzIHNob3VsZG4ndCBoYXBwZW4sIHNvbWV0aGluZyB3ZW50IHdyb25nIGJ1dCB0byBhdm9pZCBibG9ja2luZ1xuICAgICAgICAvLyB0aGUgd2hvbGUgc3lzdGVtLCBkaXNwYXRjaCB0aGUgZXZlbnQgd2l0aG91dCBhIHRhcmdldC5cbiAgICAgICAgLy8gVE9ETzogV2Fybi5cblxuXG4gICAgICAgIHRhcmdldEluc3QgPSBudWxsO1xuICAgICAgfSBlbHNlIGlmICh0YWcgPT09IEhvc3RSb290KSB7XG4gICAgICAgIHZhciByb290ID0gbmVhcmVzdE1vdW50ZWQuc3RhdGVOb2RlO1xuXG4gICAgICAgIGlmIChyb290Lmh5ZHJhdGUpIHtcbiAgICAgICAgICAvLyBJZiB0aGlzIGhhcHBlbnMgZHVyaW5nIGEgcmVwbGF5IHNvbWV0aGluZyB3ZW50IHdyb25nIGFuZCBpdCBtaWdodCBibG9ja1xuICAgICAgICAgIC8vIHRoZSB3aG9sZSBzeXN0ZW0uXG4gICAgICAgICAgcmV0dXJuIGdldENvbnRhaW5lckZyb21GaWJlcihuZWFyZXN0TW91bnRlZCk7XG4gICAgICAgIH1cblxuICAgICAgICB0YXJnZXRJbnN0ID0gbnVsbDtcbiAgICAgIH0gZWxzZSBpZiAobmVhcmVzdE1vdW50ZWQgIT09IHRhcmdldEluc3QpIHtcbiAgICAgICAgLy8gSWYgd2UgZ2V0IGFuIGV2ZW50IChleDogaW1nIG9ubG9hZCkgYmVmb3JlIGNvbW1pdHRpbmcgdGhhdFxuICAgICAgICAvLyBjb21wb25lbnQncyBtb3VudCwgaWdub3JlIGl0IGZvciBub3cgKHRoYXQgaXMsIHRyZWF0IGl0IGFzIGlmIGl0IHdhcyBhblxuICAgICAgICAvLyBldmVudCBvbiBhIG5vbi1SZWFjdCB0cmVlKS4gV2UgbWlnaHQgYWxzbyBjb25zaWRlciBxdWV1ZWluZyBldmVudHMgYW5kXG4gICAgICAgIC8vIGRpc3BhdGNoaW5nIHRoZW0gYWZ0ZXIgdGhlIG1vdW50LlxuICAgICAgICB0YXJnZXRJbnN0ID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBkaXNwYXRjaEV2ZW50Rm9yUGx1Z2luRXZlbnRTeXN0ZW0oZG9tRXZlbnROYW1lLCBldmVudFN5c3RlbUZsYWdzLCBuYXRpdmVFdmVudCwgdGFyZ2V0SW5zdCwgdGFyZ2V0Q29udGFpbmVyKTsgLy8gV2UncmUgbm90IGJsb2NrZWQgb24gYW55dGhpbmcuXG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIGFkZEV2ZW50QnViYmxlTGlzdGVuZXIodGFyZ2V0LCBldmVudFR5cGUsIGxpc3RlbmVyKSB7XG4gIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgbGlzdGVuZXIsIGZhbHNlKTtcbiAgcmV0dXJuIGxpc3RlbmVyO1xufVxuZnVuY3Rpb24gYWRkRXZlbnRDYXB0dXJlTGlzdGVuZXIodGFyZ2V0LCBldmVudFR5cGUsIGxpc3RlbmVyKSB7XG4gIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgbGlzdGVuZXIsIHRydWUpO1xuICByZXR1cm4gbGlzdGVuZXI7XG59XG5mdW5jdGlvbiBhZGRFdmVudENhcHR1cmVMaXN0ZW5lcldpdGhQYXNzaXZlRmxhZyh0YXJnZXQsIGV2ZW50VHlwZSwgbGlzdGVuZXIsIHBhc3NpdmUpIHtcbiAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBsaXN0ZW5lciwge1xuICAgIGNhcHR1cmU6IHRydWUsXG4gICAgcGFzc2l2ZTogcGFzc2l2ZVxuICB9KTtcbiAgcmV0dXJuIGxpc3RlbmVyO1xufVxuZnVuY3Rpb24gYWRkRXZlbnRCdWJibGVMaXN0ZW5lcldpdGhQYXNzaXZlRmxhZyh0YXJnZXQsIGV2ZW50VHlwZSwgbGlzdGVuZXIsIHBhc3NpdmUpIHtcbiAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBsaXN0ZW5lciwge1xuICAgIHBhc3NpdmU6IHBhc3NpdmVcbiAgfSk7XG4gIHJldHVybiBsaXN0ZW5lcjtcbn1cblxuLyoqXG4gKiBUaGVzZSB2YXJpYWJsZXMgc3RvcmUgaW5mb3JtYXRpb24gYWJvdXQgdGV4dCBjb250ZW50IG9mIGEgdGFyZ2V0IG5vZGUsXG4gKiBhbGxvd2luZyBjb21wYXJpc29uIG9mIGNvbnRlbnQgYmVmb3JlIGFuZCBhZnRlciBhIGdpdmVuIGV2ZW50LlxuICpcbiAqIElkZW50aWZ5IHRoZSBub2RlIHdoZXJlIHNlbGVjdGlvbiBjdXJyZW50bHkgYmVnaW5zLCB0aGVuIG9ic2VydmVcbiAqIGJvdGggaXRzIHRleHQgY29udGVudCBhbmQgaXRzIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIERPTS4gU2luY2UgdGhlXG4gKiBicm93c2VyIG1heSBuYXRpdmVseSByZXBsYWNlIHRoZSB0YXJnZXQgbm9kZSBkdXJpbmcgY29tcG9zaXRpb24sIHdlIGNhblxuICogdXNlIGl0cyBwb3NpdGlvbiB0byBmaW5kIGl0cyByZXBsYWNlbWVudC5cbiAqXG4gKlxuICovXG52YXIgcm9vdCA9IG51bGw7XG52YXIgc3RhcnRUZXh0ID0gbnVsbDtcbnZhciBmYWxsYmFja1RleHQgPSBudWxsO1xuZnVuY3Rpb24gaW5pdGlhbGl6ZShuYXRpdmVFdmVudFRhcmdldCkge1xuICByb290ID0gbmF0aXZlRXZlbnRUYXJnZXQ7XG4gIHN0YXJ0VGV4dCA9IGdldFRleHQoKTtcbiAgcmV0dXJuIHRydWU7XG59XG5mdW5jdGlvbiByZXNldCgpIHtcbiAgcm9vdCA9IG51bGw7XG4gIHN0YXJ0VGV4dCA9IG51bGw7XG4gIGZhbGxiYWNrVGV4dCA9IG51bGw7XG59XG5mdW5jdGlvbiBnZXREYXRhKCkge1xuICBpZiAoZmFsbGJhY2tUZXh0KSB7XG4gICAgcmV0dXJuIGZhbGxiYWNrVGV4dDtcbiAgfVxuXG4gIHZhciBzdGFydDtcbiAgdmFyIHN0YXJ0VmFsdWUgPSBzdGFydFRleHQ7XG4gIHZhciBzdGFydExlbmd0aCA9IHN0YXJ0VmFsdWUubGVuZ3RoO1xuICB2YXIgZW5kO1xuICB2YXIgZW5kVmFsdWUgPSBnZXRUZXh0KCk7XG4gIHZhciBlbmRMZW5ndGggPSBlbmRWYWx1ZS5sZW5ndGg7XG5cbiAgZm9yIChzdGFydCA9IDA7IHN0YXJ0IDwgc3RhcnRMZW5ndGg7IHN0YXJ0KyspIHtcbiAgICBpZiAoc3RhcnRWYWx1ZVtzdGFydF0gIT09IGVuZFZhbHVlW3N0YXJ0XSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgdmFyIG1pbkVuZCA9IHN0YXJ0TGVuZ3RoIC0gc3RhcnQ7XG5cbiAgZm9yIChlbmQgPSAxOyBlbmQgPD0gbWluRW5kOyBlbmQrKykge1xuICAgIGlmIChzdGFydFZhbHVlW3N0YXJ0TGVuZ3RoIC0gZW5kXSAhPT0gZW5kVmFsdWVbZW5kTGVuZ3RoIC0gZW5kXSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgdmFyIHNsaWNlVGFpbCA9IGVuZCA+IDEgPyAxIC0gZW5kIDogdW5kZWZpbmVkO1xuICBmYWxsYmFja1RleHQgPSBlbmRWYWx1ZS5zbGljZShzdGFydCwgc2xpY2VUYWlsKTtcbiAgcmV0dXJuIGZhbGxiYWNrVGV4dDtcbn1cbmZ1bmN0aW9uIGdldFRleHQoKSB7XG4gIGlmICgndmFsdWUnIGluIHJvb3QpIHtcbiAgICByZXR1cm4gcm9vdC52YWx1ZTtcbiAgfVxuXG4gIHJldHVybiByb290LnRleHRDb250ZW50O1xufVxuXG4vKipcbiAqIGBjaGFyQ29kZWAgcmVwcmVzZW50cyB0aGUgYWN0dWFsIFwiY2hhcmFjdGVyIGNvZGVcIiBhbmQgaXMgc2FmZSB0byB1c2Ugd2l0aFxuICogYFN0cmluZy5mcm9tQ2hhckNvZGVgLiBBcyBzdWNoLCBvbmx5IGtleXMgdGhhdCBjb3JyZXNwb25kIHRvIHByaW50YWJsZVxuICogY2hhcmFjdGVycyBwcm9kdWNlIGEgdmFsaWQgYGNoYXJDb2RlYCwgdGhlIG9ubHkgZXhjZXB0aW9uIHRvIHRoaXMgaXMgRW50ZXIuXG4gKiBUaGUgVGFiLWtleSBpcyBjb25zaWRlcmVkIG5vbi1wcmludGFibGUgYW5kIGRvZXMgbm90IGhhdmUgYSBgY2hhckNvZGVgLFxuICogcHJlc3VtYWJseSBiZWNhdXNlIGl0IGRvZXMgbm90IHByb2R1Y2UgYSB0YWItY2hhcmFjdGVyIGluIGJyb3dzZXJzLlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSBuYXRpdmVFdmVudCBOYXRpdmUgYnJvd3NlciBldmVudC5cbiAqIEByZXR1cm4ge251bWJlcn0gTm9ybWFsaXplZCBgY2hhckNvZGVgIHByb3BlcnR5LlxuICovXG5mdW5jdGlvbiBnZXRFdmVudENoYXJDb2RlKG5hdGl2ZUV2ZW50KSB7XG4gIHZhciBjaGFyQ29kZTtcbiAgdmFyIGtleUNvZGUgPSBuYXRpdmVFdmVudC5rZXlDb2RlO1xuXG4gIGlmICgnY2hhckNvZGUnIGluIG5hdGl2ZUV2ZW50KSB7XG4gICAgY2hhckNvZGUgPSBuYXRpdmVFdmVudC5jaGFyQ29kZTsgLy8gRkYgZG9lcyBub3Qgc2V0IGBjaGFyQ29kZWAgZm9yIHRoZSBFbnRlci1rZXksIGNoZWNrIGFnYWluc3QgYGtleUNvZGVgLlxuXG4gICAgaWYgKGNoYXJDb2RlID09PSAwICYmIGtleUNvZGUgPT09IDEzKSB7XG4gICAgICBjaGFyQ29kZSA9IDEzO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBJRTggZG9lcyBub3QgaW1wbGVtZW50IGBjaGFyQ29kZWAsIGJ1dCBga2V5Q29kZWAgaGFzIHRoZSBjb3JyZWN0IHZhbHVlLlxuICAgIGNoYXJDb2RlID0ga2V5Q29kZTtcbiAgfSAvLyBJRSBhbmQgRWRnZSAob24gV2luZG93cykgYW5kIENocm9tZSAvIFNhZmFyaSAob24gV2luZG93cyBhbmQgTGludXgpXG4gIC8vIHJlcG9ydCBFbnRlciBhcyBjaGFyQ29kZSAxMCB3aGVuIGN0cmwgaXMgcHJlc3NlZC5cblxuXG4gIGlmIChjaGFyQ29kZSA9PT0gMTApIHtcbiAgICBjaGFyQ29kZSA9IDEzO1xuICB9IC8vIFNvbWUgbm9uLXByaW50YWJsZSBrZXlzIGFyZSByZXBvcnRlZCBpbiBgY2hhckNvZGVgL2BrZXlDb2RlYCwgZGlzY2FyZCB0aGVtLlxuICAvLyBNdXN0IG5vdCBkaXNjYXJkIHRoZSAobm9uLSlwcmludGFibGUgRW50ZXIta2V5LlxuXG5cbiAgaWYgKGNoYXJDb2RlID49IDMyIHx8IGNoYXJDb2RlID09PSAxMykge1xuICAgIHJldHVybiBjaGFyQ29kZTtcbiAgfVxuXG4gIHJldHVybiAwO1xufVxuXG5mdW5jdGlvbiBmdW5jdGlvblRoYXRSZXR1cm5zVHJ1ZSgpIHtcbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIGZ1bmN0aW9uVGhhdFJldHVybnNGYWxzZSgpIHtcbiAgcmV0dXJuIGZhbHNlO1xufSAvLyBUaGlzIGlzIGludGVudGlvbmFsbHkgYSBmYWN0b3J5IHNvIHRoYXQgd2UgaGF2ZSBkaWZmZXJlbnQgcmV0dXJuZWQgY29uc3RydWN0b3JzLlxuLy8gSWYgd2UgaGFkIGEgc2luZ2xlIGNvbnN0cnVjdG9yLCBpdCB3b3VsZCBiZSBtZWdhbW9ycGhpYyBhbmQgZW5naW5lcyB3b3VsZCBkZW9wdC5cblxuXG5mdW5jdGlvbiBjcmVhdGVTeW50aGV0aWNFdmVudChJbnRlcmZhY2UpIHtcbiAgLyoqXG4gICAqIFN5bnRoZXRpYyBldmVudHMgYXJlIGRpc3BhdGNoZWQgYnkgZXZlbnQgcGx1Z2lucywgdHlwaWNhbGx5IGluIHJlc3BvbnNlIHRvIGFcbiAgICogdG9wLWxldmVsIGV2ZW50IGRlbGVnYXRpb24gaGFuZGxlci5cbiAgICpcbiAgICogVGhlc2Ugc3lzdGVtcyBzaG91bGQgZ2VuZXJhbGx5IHVzZSBwb29saW5nIHRvIHJlZHVjZSB0aGUgZnJlcXVlbmN5IG9mIGdhcmJhZ2VcbiAgICogY29sbGVjdGlvbi4gVGhlIHN5c3RlbSBzaG91bGQgY2hlY2sgYGlzUGVyc2lzdGVudGAgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlXG4gICAqIGV2ZW50IHNob3VsZCBiZSByZWxlYXNlZCBpbnRvIHRoZSBwb29sIGFmdGVyIGJlaW5nIGRpc3BhdGNoZWQuIFVzZXJzIHRoYXRcbiAgICogbmVlZCBhIHBlcnNpc3RlZCBldmVudCBzaG91bGQgaW52b2tlIGBwZXJzaXN0YC5cbiAgICpcbiAgICogU3ludGhldGljIGV2ZW50cyAoYW5kIHN1YmNsYXNzZXMpIGltcGxlbWVudCB0aGUgRE9NIExldmVsIDMgRXZlbnRzIEFQSSBieVxuICAgKiBub3JtYWxpemluZyBicm93c2VyIHF1aXJrcy4gU3ViY2xhc3NlcyBkbyBub3QgbmVjZXNzYXJpbHkgaGF2ZSB0byBpbXBsZW1lbnQgYVxuICAgKiBET00gaW50ZXJmYWNlOyBjdXN0b20gYXBwbGljYXRpb24tc3BlY2lmaWMgZXZlbnRzIGNhbiBhbHNvIHN1YmNsYXNzIHRoaXMuXG4gICAqL1xuICBmdW5jdGlvbiBTeW50aGV0aWNCYXNlRXZlbnQocmVhY3ROYW1lLCByZWFjdEV2ZW50VHlwZSwgdGFyZ2V0SW5zdCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KSB7XG4gICAgdGhpcy5fcmVhY3ROYW1lID0gcmVhY3ROYW1lO1xuICAgIHRoaXMuX3RhcmdldEluc3QgPSB0YXJnZXRJbnN0O1xuICAgIHRoaXMudHlwZSA9IHJlYWN0RXZlbnRUeXBlO1xuICAgIHRoaXMubmF0aXZlRXZlbnQgPSBuYXRpdmVFdmVudDtcbiAgICB0aGlzLnRhcmdldCA9IG5hdGl2ZUV2ZW50VGFyZ2V0O1xuICAgIHRoaXMuY3VycmVudFRhcmdldCA9IG51bGw7XG5cbiAgICBmb3IgKHZhciBfcHJvcE5hbWUgaW4gSW50ZXJmYWNlKSB7XG4gICAgICBpZiAoIUludGVyZmFjZS5oYXNPd25Qcm9wZXJ0eShfcHJvcE5hbWUpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICB2YXIgbm9ybWFsaXplID0gSW50ZXJmYWNlW19wcm9wTmFtZV07XG5cbiAgICAgIGlmIChub3JtYWxpemUpIHtcbiAgICAgICAgdGhpc1tfcHJvcE5hbWVdID0gbm9ybWFsaXplKG5hdGl2ZUV2ZW50KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXNbX3Byb3BOYW1lXSA9IG5hdGl2ZUV2ZW50W19wcm9wTmFtZV07XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGRlZmF1bHRQcmV2ZW50ZWQgPSBuYXRpdmVFdmVudC5kZWZhdWx0UHJldmVudGVkICE9IG51bGwgPyBuYXRpdmVFdmVudC5kZWZhdWx0UHJldmVudGVkIDogbmF0aXZlRXZlbnQucmV0dXJuVmFsdWUgPT09IGZhbHNlO1xuXG4gICAgaWYgKGRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgIHRoaXMuaXNEZWZhdWx0UHJldmVudGVkID0gZnVuY3Rpb25UaGF0UmV0dXJuc1RydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaXNEZWZhdWx0UHJldmVudGVkID0gZnVuY3Rpb25UaGF0UmV0dXJuc0ZhbHNlO1xuICAgIH1cblxuICAgIHRoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQgPSBmdW5jdGlvblRoYXRSZXR1cm5zRmFsc2U7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBfYXNzaWduKFN5bnRoZXRpY0Jhc2VFdmVudC5wcm90b3R5cGUsIHtcbiAgICBwcmV2ZW50RGVmYXVsdDogZnVuY3Rpb24gKCkge1xuICAgICAgdGhpcy5kZWZhdWx0UHJldmVudGVkID0gdHJ1ZTtcbiAgICAgIHZhciBldmVudCA9IHRoaXMubmF0aXZlRXZlbnQ7XG5cbiAgICAgIGlmICghZXZlbnQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoZXZlbnQucHJldmVudERlZmF1bHQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsgLy8gJEZsb3dGaXhNZSAtIGZsb3cgaXMgbm90IGF3YXJlIG9mIGB1bmtub3duYCBpbiBJRVxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZXZlbnQucmV0dXJuVmFsdWUgIT09ICd1bmtub3duJykge1xuICAgICAgICBldmVudC5yZXR1cm5WYWx1ZSA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmlzRGVmYXVsdFByZXZlbnRlZCA9IGZ1bmN0aW9uVGhhdFJldHVybnNUcnVlO1xuICAgIH0sXG4gICAgc3RvcFByb3BhZ2F0aW9uOiBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgZXZlbnQgPSB0aGlzLm5hdGl2ZUV2ZW50O1xuXG4gICAgICBpZiAoIWV2ZW50KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGV2ZW50LnN0b3BQcm9wYWdhdGlvbikge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgLy8gJEZsb3dGaXhNZSAtIGZsb3cgaXMgbm90IGF3YXJlIG9mIGB1bmtub3duYCBpbiBJRVxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZXZlbnQuY2FuY2VsQnViYmxlICE9PSAndW5rbm93bicpIHtcbiAgICAgICAgLy8gVGhlIENoYW5nZUV2ZW50UGx1Z2luIHJlZ2lzdGVycyBhIFwicHJvcGVydHljaGFuZ2VcIiBldmVudCBmb3JcbiAgICAgICAgLy8gSUUuIFRoaXMgZXZlbnQgZG9lcyBub3Qgc3VwcG9ydCBidWJibGluZyBvciBjYW5jZWxsaW5nLCBhbmRcbiAgICAgICAgLy8gYW55IHJlZmVyZW5jZXMgdG8gY2FuY2VsQnViYmxlIHRocm93IFwiTWVtYmVyIG5vdCBmb3VuZFwiLiAgQVxuICAgICAgICAvLyB0eXBlb2YgY2hlY2sgb2YgXCJ1bmtub3duXCIgY2lyY3VtdmVudHMgdGhpcyBpc3N1ZSAoYW5kIGlzIGFsc29cbiAgICAgICAgLy8gSUUgc3BlY2lmaWMpLlxuICAgICAgICBldmVudC5jYW5jZWxCdWJibGUgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkID0gZnVuY3Rpb25UaGF0UmV0dXJuc1RydWU7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIFdlIHJlbGVhc2UgYWxsIGRpc3BhdGNoZWQgYFN5bnRoZXRpY0V2ZW50YHMgYWZ0ZXIgZWFjaCBldmVudCBsb29wLCBhZGRpbmdcbiAgICAgKiB0aGVtIGJhY2sgaW50byB0aGUgcG9vbC4gVGhpcyBhbGxvd3MgYSB3YXkgdG8gaG9sZCBvbnRvIGEgcmVmZXJlbmNlIHRoYXRcbiAgICAgKiB3b24ndCBiZSBhZGRlZCBiYWNrIGludG8gdGhlIHBvb2wuXG4gICAgICovXG4gICAgcGVyc2lzdDogZnVuY3Rpb24gKCkgey8vIE1vZGVybiBldmVudCBzeXN0ZW0gZG9lc24ndCB1c2UgcG9vbGluZy5cbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIHRoaXMgZXZlbnQgc2hvdWxkIGJlIHJlbGVhc2VkIGJhY2sgaW50byB0aGUgcG9vbC5cbiAgICAgKlxuICAgICAqIEByZXR1cm4ge2Jvb2xlYW59IFRydWUgaWYgdGhpcyBzaG91bGQgbm90IGJlIHJlbGVhc2VkLCBmYWxzZSBvdGhlcndpc2UuXG4gICAgICovXG4gICAgaXNQZXJzaXN0ZW50OiBmdW5jdGlvblRoYXRSZXR1cm5zVHJ1ZVxuICB9KTtcblxuICByZXR1cm4gU3ludGhldGljQmFzZUV2ZW50O1xufVxuLyoqXG4gKiBAaW50ZXJmYWNlIEV2ZW50XG4gKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUV2ZW50cy9cbiAqL1xuXG5cbnZhciBFdmVudEludGVyZmFjZSA9IHtcbiAgZXZlbnRQaGFzZTogMCxcbiAgYnViYmxlczogMCxcbiAgY2FuY2VsYWJsZTogMCxcbiAgdGltZVN0YW1wOiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICByZXR1cm4gZXZlbnQudGltZVN0YW1wIHx8IERhdGUubm93KCk7XG4gIH0sXG4gIGRlZmF1bHRQcmV2ZW50ZWQ6IDAsXG4gIGlzVHJ1c3RlZDogMFxufTtcbnZhciBTeW50aGV0aWNFdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KEV2ZW50SW50ZXJmYWNlKTtcblxudmFyIFVJRXZlbnRJbnRlcmZhY2UgPSBfYXNzaWduKHt9LCBFdmVudEludGVyZmFjZSwge1xuICB2aWV3OiAwLFxuICBkZXRhaWw6IDBcbn0pO1xuXG52YXIgU3ludGhldGljVUlFdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KFVJRXZlbnRJbnRlcmZhY2UpO1xudmFyIGxhc3RNb3ZlbWVudFg7XG52YXIgbGFzdE1vdmVtZW50WTtcbnZhciBsYXN0TW91c2VFdmVudDtcblxuZnVuY3Rpb24gdXBkYXRlTW91c2VNb3ZlbWVudFBvbHlmaWxsU3RhdGUoZXZlbnQpIHtcbiAgaWYgKGV2ZW50ICE9PSBsYXN0TW91c2VFdmVudCkge1xuICAgIGlmIChsYXN0TW91c2VFdmVudCAmJiBldmVudC50eXBlID09PSAnbW91c2Vtb3ZlJykge1xuICAgICAgbGFzdE1vdmVtZW50WCA9IGV2ZW50LnNjcmVlblggLSBsYXN0TW91c2VFdmVudC5zY3JlZW5YO1xuICAgICAgbGFzdE1vdmVtZW50WSA9IGV2ZW50LnNjcmVlblkgLSBsYXN0TW91c2VFdmVudC5zY3JlZW5ZO1xuICAgIH0gZWxzZSB7XG4gICAgICBsYXN0TW92ZW1lbnRYID0gMDtcbiAgICAgIGxhc3RNb3ZlbWVudFkgPSAwO1xuICAgIH1cblxuICAgIGxhc3RNb3VzZUV2ZW50ID0gZXZlbnQ7XG4gIH1cbn1cbi8qKlxuICogQGludGVyZmFjZSBNb3VzZUV2ZW50XG4gKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUV2ZW50cy9cbiAqL1xuXG5cbnZhciBNb3VzZUV2ZW50SW50ZXJmYWNlID0gX2Fzc2lnbih7fSwgVUlFdmVudEludGVyZmFjZSwge1xuICBzY3JlZW5YOiAwLFxuICBzY3JlZW5ZOiAwLFxuICBjbGllbnRYOiAwLFxuICBjbGllbnRZOiAwLFxuICBwYWdlWDogMCxcbiAgcGFnZVk6IDAsXG4gIGN0cmxLZXk6IDAsXG4gIHNoaWZ0S2V5OiAwLFxuICBhbHRLZXk6IDAsXG4gIG1ldGFLZXk6IDAsXG4gIGdldE1vZGlmaWVyU3RhdGU6IGdldEV2ZW50TW9kaWZpZXJTdGF0ZSxcbiAgYnV0dG9uOiAwLFxuICBidXR0b25zOiAwLFxuICByZWxhdGVkVGFyZ2V0OiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICBpZiAoZXZlbnQucmVsYXRlZFRhcmdldCA9PT0gdW5kZWZpbmVkKSByZXR1cm4gZXZlbnQuZnJvbUVsZW1lbnQgPT09IGV2ZW50LnNyY0VsZW1lbnQgPyBldmVudC50b0VsZW1lbnQgOiBldmVudC5mcm9tRWxlbWVudDtcbiAgICByZXR1cm4gZXZlbnQucmVsYXRlZFRhcmdldDtcbiAgfSxcbiAgbW92ZW1lbnRYOiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICBpZiAoJ21vdmVtZW50WCcgaW4gZXZlbnQpIHtcbiAgICAgIHJldHVybiBldmVudC5tb3ZlbWVudFg7XG4gICAgfVxuXG4gICAgdXBkYXRlTW91c2VNb3ZlbWVudFBvbHlmaWxsU3RhdGUoZXZlbnQpO1xuICAgIHJldHVybiBsYXN0TW92ZW1lbnRYO1xuICB9LFxuICBtb3ZlbWVudFk6IGZ1bmN0aW9uIChldmVudCkge1xuICAgIGlmICgnbW92ZW1lbnRZJyBpbiBldmVudCkge1xuICAgICAgcmV0dXJuIGV2ZW50Lm1vdmVtZW50WTtcbiAgICB9IC8vIERvbid0IG5lZWQgdG8gY2FsbCB1cGRhdGVNb3VzZU1vdmVtZW50UG9seWZpbGxTdGF0ZSgpIGhlcmVcbiAgICAvLyBiZWNhdXNlIGl0J3MgZ3VhcmFudGVlZCB0byBoYXZlIGFscmVhZHkgcnVuIHdoZW4gbW92ZW1lbnRYXG4gICAgLy8gd2FzIGNvcGllZC5cblxuXG4gICAgcmV0dXJuIGxhc3RNb3ZlbWVudFk7XG4gIH1cbn0pO1xuXG52YXIgU3ludGhldGljTW91c2VFdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KE1vdXNlRXZlbnRJbnRlcmZhY2UpO1xuLyoqXG4gKiBAaW50ZXJmYWNlIERyYWdFdmVudFxuICogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi9ET00tTGV2ZWwtMy1FdmVudHMvXG4gKi9cblxudmFyIERyYWdFdmVudEludGVyZmFjZSA9IF9hc3NpZ24oe30sIE1vdXNlRXZlbnRJbnRlcmZhY2UsIHtcbiAgZGF0YVRyYW5zZmVyOiAwXG59KTtcblxudmFyIFN5bnRoZXRpY0RyYWdFdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KERyYWdFdmVudEludGVyZmFjZSk7XG4vKipcbiAqIEBpbnRlcmZhY2UgRm9jdXNFdmVudFxuICogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi9ET00tTGV2ZWwtMy1FdmVudHMvXG4gKi9cblxudmFyIEZvY3VzRXZlbnRJbnRlcmZhY2UgPSBfYXNzaWduKHt9LCBVSUV2ZW50SW50ZXJmYWNlLCB7XG4gIHJlbGF0ZWRUYXJnZXQ6IDBcbn0pO1xuXG52YXIgU3ludGhldGljRm9jdXNFdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KEZvY3VzRXZlbnRJbnRlcmZhY2UpO1xuLyoqXG4gKiBAaW50ZXJmYWNlIEV2ZW50XG4gKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtYW5pbWF0aW9ucy8jQW5pbWF0aW9uRXZlbnQtaW50ZXJmYWNlXG4gKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9BbmltYXRpb25FdmVudFxuICovXG5cbnZhciBBbmltYXRpb25FdmVudEludGVyZmFjZSA9IF9hc3NpZ24oe30sIEV2ZW50SW50ZXJmYWNlLCB7XG4gIGFuaW1hdGlvbk5hbWU6IDAsXG4gIGVsYXBzZWRUaW1lOiAwLFxuICBwc2V1ZG9FbGVtZW50OiAwXG59KTtcblxudmFyIFN5bnRoZXRpY0FuaW1hdGlvbkV2ZW50ID0gY3JlYXRlU3ludGhldGljRXZlbnQoQW5pbWF0aW9uRXZlbnRJbnRlcmZhY2UpO1xuLyoqXG4gKiBAaW50ZXJmYWNlIEV2ZW50XG4gKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL2NsaXBib2FyZC1hcGlzL1xuICovXG5cbnZhciBDbGlwYm9hcmRFdmVudEludGVyZmFjZSA9IF9hc3NpZ24oe30sIEV2ZW50SW50ZXJmYWNlLCB7XG4gIGNsaXBib2FyZERhdGE6IGZ1bmN0aW9uIChldmVudCkge1xuICAgIHJldHVybiAnY2xpcGJvYXJkRGF0YScgaW4gZXZlbnQgPyBldmVudC5jbGlwYm9hcmREYXRhIDogd2luZG93LmNsaXBib2FyZERhdGE7XG4gIH1cbn0pO1xuXG52YXIgU3ludGhldGljQ2xpcGJvYXJkRXZlbnQgPSBjcmVhdGVTeW50aGV0aWNFdmVudChDbGlwYm9hcmRFdmVudEludGVyZmFjZSk7XG4vKipcbiAqIEBpbnRlcmZhY2UgRXZlbnRcbiAqIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvRE9NLUxldmVsLTMtRXZlbnRzLyNldmVudHMtY29tcG9zaXRpb25ldmVudHNcbiAqL1xuXG52YXIgQ29tcG9zaXRpb25FdmVudEludGVyZmFjZSA9IF9hc3NpZ24oe30sIEV2ZW50SW50ZXJmYWNlLCB7XG4gIGRhdGE6IDBcbn0pO1xuXG52YXIgU3ludGhldGljQ29tcG9zaXRpb25FdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KENvbXBvc2l0aW9uRXZlbnRJbnRlcmZhY2UpO1xuLyoqXG4gKiBAaW50ZXJmYWNlIEV2ZW50XG4gKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMTMvV0QtRE9NLUxldmVsLTMtRXZlbnRzLTIwMTMxMTA1XG4gKiAgICAgIC8jZXZlbnRzLWlucHV0ZXZlbnRzXG4gKi9cbi8vIEhhcHBlbnMgdG8gc2hhcmUgdGhlIHNhbWUgbGlzdCBmb3Igbm93LlxuXG52YXIgU3ludGhldGljSW5wdXRFdmVudCA9IFN5bnRoZXRpY0NvbXBvc2l0aW9uRXZlbnQ7XG4vKipcbiAqIE5vcm1hbGl6YXRpb24gb2YgZGVwcmVjYXRlZCBIVE1MNSBga2V5YCB2YWx1ZXNcbiAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0tleWJvYXJkRXZlbnQjS2V5X25hbWVzXG4gKi9cblxudmFyIG5vcm1hbGl6ZUtleSA9IHtcbiAgRXNjOiAnRXNjYXBlJyxcbiAgU3BhY2ViYXI6ICcgJyxcbiAgTGVmdDogJ0Fycm93TGVmdCcsXG4gIFVwOiAnQXJyb3dVcCcsXG4gIFJpZ2h0OiAnQXJyb3dSaWdodCcsXG4gIERvd246ICdBcnJvd0Rvd24nLFxuICBEZWw6ICdEZWxldGUnLFxuICBXaW46ICdPUycsXG4gIE1lbnU6ICdDb250ZXh0TWVudScsXG4gIEFwcHM6ICdDb250ZXh0TWVudScsXG4gIFNjcm9sbDogJ1Njcm9sbExvY2snLFxuICBNb3pQcmludGFibGVLZXk6ICdVbmlkZW50aWZpZWQnXG59O1xuLyoqXG4gKiBUcmFuc2xhdGlvbiBmcm9tIGxlZ2FjeSBga2V5Q29kZWAgdG8gSFRNTDUgYGtleWBcbiAqIE9ubHkgc3BlY2lhbCBrZXlzIHN1cHBvcnRlZCwgYWxsIG90aGVycyBkZXBlbmQgb24ga2V5Ym9hcmQgbGF5b3V0IG9yIGJyb3dzZXJcbiAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0tleWJvYXJkRXZlbnQjS2V5X25hbWVzXG4gKi9cblxudmFyIHRyYW5zbGF0ZVRvS2V5ID0ge1xuICAnOCc6ICdCYWNrc3BhY2UnLFxuICAnOSc6ICdUYWInLFxuICAnMTInOiAnQ2xlYXInLFxuICAnMTMnOiAnRW50ZXInLFxuICAnMTYnOiAnU2hpZnQnLFxuICAnMTcnOiAnQ29udHJvbCcsXG4gICcxOCc6ICdBbHQnLFxuICAnMTknOiAnUGF1c2UnLFxuICAnMjAnOiAnQ2Fwc0xvY2snLFxuICAnMjcnOiAnRXNjYXBlJyxcbiAgJzMyJzogJyAnLFxuICAnMzMnOiAnUGFnZVVwJyxcbiAgJzM0JzogJ1BhZ2VEb3duJyxcbiAgJzM1JzogJ0VuZCcsXG4gICczNic6ICdIb21lJyxcbiAgJzM3JzogJ0Fycm93TGVmdCcsXG4gICczOCc6ICdBcnJvd1VwJyxcbiAgJzM5JzogJ0Fycm93UmlnaHQnLFxuICAnNDAnOiAnQXJyb3dEb3duJyxcbiAgJzQ1JzogJ0luc2VydCcsXG4gICc0Nic6ICdEZWxldGUnLFxuICAnMTEyJzogJ0YxJyxcbiAgJzExMyc6ICdGMicsXG4gICcxMTQnOiAnRjMnLFxuICAnMTE1JzogJ0Y0JyxcbiAgJzExNic6ICdGNScsXG4gICcxMTcnOiAnRjYnLFxuICAnMTE4JzogJ0Y3JyxcbiAgJzExOSc6ICdGOCcsXG4gICcxMjAnOiAnRjknLFxuICAnMTIxJzogJ0YxMCcsXG4gICcxMjInOiAnRjExJyxcbiAgJzEyMyc6ICdGMTInLFxuICAnMTQ0JzogJ051bUxvY2snLFxuICAnMTQ1JzogJ1Njcm9sbExvY2snLFxuICAnMjI0JzogJ01ldGEnXG59O1xuLyoqXG4gKiBAcGFyYW0ge29iamVjdH0gbmF0aXZlRXZlbnQgTmF0aXZlIGJyb3dzZXIgZXZlbnQuXG4gKiBAcmV0dXJuIHtzdHJpbmd9IE5vcm1hbGl6ZWQgYGtleWAgcHJvcGVydHkuXG4gKi9cblxuZnVuY3Rpb24gZ2V0RXZlbnRLZXkobmF0aXZlRXZlbnQpIHtcbiAgaWYgKG5hdGl2ZUV2ZW50LmtleSkge1xuICAgIC8vIE5vcm1hbGl6ZSBpbmNvbnNpc3RlbnQgdmFsdWVzIHJlcG9ydGVkIGJ5IGJyb3dzZXJzIGR1ZSB0b1xuICAgIC8vIGltcGxlbWVudGF0aW9ucyBvZiBhIHdvcmtpbmcgZHJhZnQgc3BlY2lmaWNhdGlvbi5cbiAgICAvLyBGaXJlRm94IGltcGxlbWVudHMgYGtleWAgYnV0IHJldHVybnMgYE1velByaW50YWJsZUtleWAgZm9yIGFsbFxuICAgIC8vIHByaW50YWJsZSBjaGFyYWN0ZXJzIChub3JtYWxpemVkIHRvIGBVbmlkZW50aWZpZWRgKSwgaWdub3JlIGl0LlxuICAgIHZhciBrZXkgPSBub3JtYWxpemVLZXlbbmF0aXZlRXZlbnQua2V5XSB8fCBuYXRpdmVFdmVudC5rZXk7XG5cbiAgICBpZiAoa2V5ICE9PSAnVW5pZGVudGlmaWVkJykge1xuICAgICAgcmV0dXJuIGtleTtcbiAgICB9XG4gIH0gLy8gQnJvd3NlciBkb2VzIG5vdCBpbXBsZW1lbnQgYGtleWAsIHBvbHlmaWxsIGFzIG11Y2ggb2YgaXQgYXMgd2UgY2FuLlxuXG5cbiAgaWYgKG5hdGl2ZUV2ZW50LnR5cGUgPT09ICdrZXlwcmVzcycpIHtcbiAgICB2YXIgY2hhckNvZGUgPSBnZXRFdmVudENoYXJDb2RlKG5hdGl2ZUV2ZW50KTsgLy8gVGhlIGVudGVyLWtleSBpcyB0ZWNobmljYWxseSBib3RoIHByaW50YWJsZSBhbmQgbm9uLXByaW50YWJsZSBhbmQgY2FuXG4gICAgLy8gdGh1cyBiZSBjYXB0dXJlZCBieSBga2V5cHJlc3NgLCBubyBvdGhlciBub24tcHJpbnRhYmxlIGtleSBzaG91bGQuXG5cbiAgICByZXR1cm4gY2hhckNvZGUgPT09IDEzID8gJ0VudGVyJyA6IFN0cmluZy5mcm9tQ2hhckNvZGUoY2hhckNvZGUpO1xuICB9XG5cbiAgaWYgKG5hdGl2ZUV2ZW50LnR5cGUgPT09ICdrZXlkb3duJyB8fCBuYXRpdmVFdmVudC50eXBlID09PSAna2V5dXAnKSB7XG4gICAgLy8gV2hpbGUgdXNlciBrZXlib2FyZCBsYXlvdXQgZGV0ZXJtaW5lcyB0aGUgYWN0dWFsIG1lYW5pbmcgb2YgZWFjaFxuICAgIC8vIGBrZXlDb2RlYCB2YWx1ZSwgYWxtb3N0IGFsbCBmdW5jdGlvbiBrZXlzIGhhdmUgYSB1bml2ZXJzYWwgdmFsdWUuXG4gICAgcmV0dXJuIHRyYW5zbGF0ZVRvS2V5W25hdGl2ZUV2ZW50LmtleUNvZGVdIHx8ICdVbmlkZW50aWZpZWQnO1xuICB9XG5cbiAgcmV0dXJuICcnO1xufVxuLyoqXG4gKiBUcmFuc2xhdGlvbiBmcm9tIG1vZGlmaWVyIGtleSB0byB0aGUgYXNzb2NpYXRlZCBwcm9wZXJ0eSBpbiB0aGUgZXZlbnQuXG4gKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUV2ZW50cy8ja2V5cy1Nb2RpZmllcnNcbiAqL1xuXG5cbnZhciBtb2RpZmllcktleVRvUHJvcCA9IHtcbiAgQWx0OiAnYWx0S2V5JyxcbiAgQ29udHJvbDogJ2N0cmxLZXknLFxuICBNZXRhOiAnbWV0YUtleScsXG4gIFNoaWZ0OiAnc2hpZnRLZXknXG59OyAvLyBPbGRlciBicm93c2VycyAoU2FmYXJpIDw9IDEwLCBpT1MgU2FmYXJpIDw9IDEwLjIpIGRvIG5vdCBzdXBwb3J0XG4vLyBnZXRNb2RpZmllclN0YXRlLiBJZiBnZXRNb2RpZmllclN0YXRlIGlzIG5vdCBzdXBwb3J0ZWQsIHdlIG1hcCBpdCB0byBhIHNldCBvZlxuLy8gbW9kaWZpZXIga2V5cyBleHBvc2VkIGJ5IHRoZSBldmVudC4gSW4gdGhpcyBjYXNlLCBMb2NrLWtleXMgYXJlIG5vdCBzdXBwb3J0ZWQuXG5cbmZ1bmN0aW9uIG1vZGlmaWVyU3RhdGVHZXR0ZXIoa2V5QXJnKSB7XG4gIHZhciBzeW50aGV0aWNFdmVudCA9IHRoaXM7XG4gIHZhciBuYXRpdmVFdmVudCA9IHN5bnRoZXRpY0V2ZW50Lm5hdGl2ZUV2ZW50O1xuXG4gIGlmIChuYXRpdmVFdmVudC5nZXRNb2RpZmllclN0YXRlKSB7XG4gICAgcmV0dXJuIG5hdGl2ZUV2ZW50LmdldE1vZGlmaWVyU3RhdGUoa2V5QXJnKTtcbiAgfVxuXG4gIHZhciBrZXlQcm9wID0gbW9kaWZpZXJLZXlUb1Byb3Bba2V5QXJnXTtcbiAgcmV0dXJuIGtleVByb3AgPyAhIW5hdGl2ZUV2ZW50W2tleVByb3BdIDogZmFsc2U7XG59XG5cbmZ1bmN0aW9uIGdldEV2ZW50TW9kaWZpZXJTdGF0ZShuYXRpdmVFdmVudCkge1xuICByZXR1cm4gbW9kaWZpZXJTdGF0ZUdldHRlcjtcbn1cbi8qKlxuICogQGludGVyZmFjZSBLZXlib2FyZEV2ZW50XG4gKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUV2ZW50cy9cbiAqL1xuXG5cbnZhciBLZXlib2FyZEV2ZW50SW50ZXJmYWNlID0gX2Fzc2lnbih7fSwgVUlFdmVudEludGVyZmFjZSwge1xuICBrZXk6IGdldEV2ZW50S2V5LFxuICBjb2RlOiAwLFxuICBsb2NhdGlvbjogMCxcbiAgY3RybEtleTogMCxcbiAgc2hpZnRLZXk6IDAsXG4gIGFsdEtleTogMCxcbiAgbWV0YUtleTogMCxcbiAgcmVwZWF0OiAwLFxuICBsb2NhbGU6IDAsXG4gIGdldE1vZGlmaWVyU3RhdGU6IGdldEV2ZW50TW9kaWZpZXJTdGF0ZSxcbiAgLy8gTGVnYWN5IEludGVyZmFjZVxuICBjaGFyQ29kZTogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgLy8gYGNoYXJDb2RlYCBpcyB0aGUgcmVzdWx0IG9mIGEgS2V5UHJlc3MgZXZlbnQgYW5kIHJlcHJlc2VudHMgdGhlIHZhbHVlIG9mXG4gICAgLy8gdGhlIGFjdHVhbCBwcmludGFibGUgY2hhcmFjdGVyLlxuICAgIC8vIEtleVByZXNzIGlzIGRlcHJlY2F0ZWQsIGJ1dCBpdHMgcmVwbGFjZW1lbnQgaXMgbm90IHlldCBmaW5hbCBhbmQgbm90XG4gICAgLy8gaW1wbGVtZW50ZWQgaW4gYW55IG1ham9yIGJyb3dzZXIuIE9ubHkgS2V5UHJlc3MgaGFzIGNoYXJDb2RlLlxuICAgIGlmIChldmVudC50eXBlID09PSAna2V5cHJlc3MnKSB7XG4gICAgICByZXR1cm4gZ2V0RXZlbnRDaGFyQ29kZShldmVudCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIDA7XG4gIH0sXG4gIGtleUNvZGU6IGZ1bmN0aW9uIChldmVudCkge1xuICAgIC8vIGBrZXlDb2RlYCBpcyB0aGUgcmVzdWx0IG9mIGEgS2V5RG93bi9VcCBldmVudCBhbmQgcmVwcmVzZW50cyB0aGUgdmFsdWUgb2ZcbiAgICAvLyBwaHlzaWNhbCBrZXlib2FyZCBrZXkuXG4gICAgLy8gVGhlIGFjdHVhbCBtZWFuaW5nIG9mIHRoZSB2YWx1ZSBkZXBlbmRzIG9uIHRoZSB1c2Vycycga2V5Ym9hcmQgbGF5b3V0XG4gICAgLy8gd2hpY2ggY2Fubm90IGJlIGRldGVjdGVkLiBBc3N1bWluZyB0aGF0IGl0IGlzIGEgVVMga2V5Ym9hcmQgbGF5b3V0XG4gICAgLy8gcHJvdmlkZXMgYSBzdXJwcmlzaW5nbHkgYWNjdXJhdGUgbWFwcGluZyBmb3IgVVMgYW5kIEV1cm9wZWFuIHVzZXJzLlxuICAgIC8vIER1ZSB0byB0aGlzLCBpdCBpcyBsZWZ0IHRvIHRoZSB1c2VyIHRvIGltcGxlbWVudCBhdCB0aGlzIHRpbWUuXG4gICAgaWYgKGV2ZW50LnR5cGUgPT09ICdrZXlkb3duJyB8fCBldmVudC50eXBlID09PSAna2V5dXAnKSB7XG4gICAgICByZXR1cm4gZXZlbnQua2V5Q29kZTtcbiAgICB9XG5cbiAgICByZXR1cm4gMDtcbiAgfSxcbiAgd2hpY2g6IGZ1bmN0aW9uIChldmVudCkge1xuICAgIC8vIGB3aGljaGAgaXMgYW4gYWxpYXMgZm9yIGVpdGhlciBga2V5Q29kZWAgb3IgYGNoYXJDb2RlYCBkZXBlbmRpbmcgb24gdGhlXG4gICAgLy8gdHlwZSBvZiB0aGUgZXZlbnQuXG4gICAgaWYgKGV2ZW50LnR5cGUgPT09ICdrZXlwcmVzcycpIHtcbiAgICAgIHJldHVybiBnZXRFdmVudENoYXJDb2RlKGV2ZW50KTtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ2tleWRvd24nIHx8IGV2ZW50LnR5cGUgPT09ICdrZXl1cCcpIHtcbiAgICAgIHJldHVybiBldmVudC5rZXlDb2RlO1xuICAgIH1cblxuICAgIHJldHVybiAwO1xuICB9XG59KTtcblxudmFyIFN5bnRoZXRpY0tleWJvYXJkRXZlbnQgPSBjcmVhdGVTeW50aGV0aWNFdmVudChLZXlib2FyZEV2ZW50SW50ZXJmYWNlKTtcbi8qKlxuICogQGludGVyZmFjZSBQb2ludGVyRXZlbnRcbiAqIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvcG9pbnRlcmV2ZW50cy9cbiAqL1xuXG52YXIgUG9pbnRlckV2ZW50SW50ZXJmYWNlID0gX2Fzc2lnbih7fSwgTW91c2VFdmVudEludGVyZmFjZSwge1xuICBwb2ludGVySWQ6IDAsXG4gIHdpZHRoOiAwLFxuICBoZWlnaHQ6IDAsXG4gIHByZXNzdXJlOiAwLFxuICB0YW5nZW50aWFsUHJlc3N1cmU6IDAsXG4gIHRpbHRYOiAwLFxuICB0aWx0WTogMCxcbiAgdHdpc3Q6IDAsXG4gIHBvaW50ZXJUeXBlOiAwLFxuICBpc1ByaW1hcnk6IDBcbn0pO1xuXG52YXIgU3ludGhldGljUG9pbnRlckV2ZW50ID0gY3JlYXRlU3ludGhldGljRXZlbnQoUG9pbnRlckV2ZW50SW50ZXJmYWNlKTtcbi8qKlxuICogQGludGVyZmFjZSBUb3VjaEV2ZW50XG4gKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL3RvdWNoLWV2ZW50cy9cbiAqL1xuXG52YXIgVG91Y2hFdmVudEludGVyZmFjZSA9IF9hc3NpZ24oe30sIFVJRXZlbnRJbnRlcmZhY2UsIHtcbiAgdG91Y2hlczogMCxcbiAgdGFyZ2V0VG91Y2hlczogMCxcbiAgY2hhbmdlZFRvdWNoZXM6IDAsXG4gIGFsdEtleTogMCxcbiAgbWV0YUtleTogMCxcbiAgY3RybEtleTogMCxcbiAgc2hpZnRLZXk6IDAsXG4gIGdldE1vZGlmaWVyU3RhdGU6IGdldEV2ZW50TW9kaWZpZXJTdGF0ZVxufSk7XG5cbnZhciBTeW50aGV0aWNUb3VjaEV2ZW50ID0gY3JlYXRlU3ludGhldGljRXZlbnQoVG91Y2hFdmVudEludGVyZmFjZSk7XG4vKipcbiAqIEBpbnRlcmZhY2UgRXZlbnRcbiAqIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwOS9XRC1jc3MzLXRyYW5zaXRpb25zLTIwMDkwMzIwLyN0cmFuc2l0aW9uLWV2ZW50cy1cbiAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1RyYW5zaXRpb25FdmVudFxuICovXG5cbnZhciBUcmFuc2l0aW9uRXZlbnRJbnRlcmZhY2UgPSBfYXNzaWduKHt9LCBFdmVudEludGVyZmFjZSwge1xuICBwcm9wZXJ0eU5hbWU6IDAsXG4gIGVsYXBzZWRUaW1lOiAwLFxuICBwc2V1ZG9FbGVtZW50OiAwXG59KTtcblxudmFyIFN5bnRoZXRpY1RyYW5zaXRpb25FdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KFRyYW5zaXRpb25FdmVudEludGVyZmFjZSk7XG4vKipcbiAqIEBpbnRlcmZhY2UgV2hlZWxFdmVudFxuICogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi9ET00tTGV2ZWwtMy1FdmVudHMvXG4gKi9cblxudmFyIFdoZWVsRXZlbnRJbnRlcmZhY2UgPSBfYXNzaWduKHt9LCBNb3VzZUV2ZW50SW50ZXJmYWNlLCB7XG4gIGRlbHRhWDogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgcmV0dXJuICdkZWx0YVgnIGluIGV2ZW50ID8gZXZlbnQuZGVsdGFYIDogLy8gRmFsbGJhY2sgdG8gYHdoZWVsRGVsdGFYYCBmb3IgV2Via2l0IGFuZCBub3JtYWxpemUgKHJpZ2h0IGlzIHBvc2l0aXZlKS5cbiAgICAnd2hlZWxEZWx0YVgnIGluIGV2ZW50ID8gLWV2ZW50LndoZWVsRGVsdGFYIDogMDtcbiAgfSxcbiAgZGVsdGFZOiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICByZXR1cm4gJ2RlbHRhWScgaW4gZXZlbnQgPyBldmVudC5kZWx0YVkgOiAvLyBGYWxsYmFjayB0byBgd2hlZWxEZWx0YVlgIGZvciBXZWJraXQgYW5kIG5vcm1hbGl6ZSAoZG93biBpcyBwb3NpdGl2ZSkuXG4gICAgJ3doZWVsRGVsdGFZJyBpbiBldmVudCA/IC1ldmVudC53aGVlbERlbHRhWSA6IC8vIEZhbGxiYWNrIHRvIGB3aGVlbERlbHRhYCBmb3IgSUU8OSBhbmQgbm9ybWFsaXplIChkb3duIGlzIHBvc2l0aXZlKS5cbiAgICAnd2hlZWxEZWx0YScgaW4gZXZlbnQgPyAtZXZlbnQud2hlZWxEZWx0YSA6IDA7XG4gIH0sXG4gIGRlbHRhWjogMCxcbiAgLy8gQnJvd3NlcnMgd2l0aG91dCBcImRlbHRhTW9kZVwiIGlzIHJlcG9ydGluZyBpbiByYXcgd2hlZWwgZGVsdGEgd2hlcmUgb25lXG4gIC8vIG5vdGNoIG9uIHRoZSBzY3JvbGwgaXMgYWx3YXlzICsvLSAxMjAsIHJvdWdobHkgZXF1aXZhbGVudCB0byBwaXhlbHMuXG4gIC8vIEEgZ29vZCBhcHByb3hpbWF0aW9uIG9mIERPTV9ERUxUQV9MSU5FICgxKSBpcyA1JSBvZiB2aWV3cG9ydCBzaXplIG9yXG4gIC8vIH40MCBwaXhlbHMsIGZvciBET01fREVMVEFfU0NSRUVOICgyKSBpdCBpcyA4Ny41JSBvZiB2aWV3cG9ydCBzaXplLlxuICBkZWx0YU1vZGU6IDBcbn0pO1xuXG52YXIgU3ludGhldGljV2hlZWxFdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KFdoZWVsRXZlbnRJbnRlcmZhY2UpO1xuXG52YXIgRU5EX0tFWUNPREVTID0gWzksIDEzLCAyNywgMzJdOyAvLyBUYWIsIFJldHVybiwgRXNjLCBTcGFjZVxuXG52YXIgU1RBUlRfS0VZQ09ERSA9IDIyOTtcbnZhciBjYW5Vc2VDb21wb3NpdGlvbkV2ZW50ID0gY2FuVXNlRE9NICYmICdDb21wb3NpdGlvbkV2ZW50JyBpbiB3aW5kb3c7XG52YXIgZG9jdW1lbnRNb2RlID0gbnVsbDtcblxuaWYgKGNhblVzZURPTSAmJiAnZG9jdW1lbnRNb2RlJyBpbiBkb2N1bWVudCkge1xuICBkb2N1bWVudE1vZGUgPSBkb2N1bWVudC5kb2N1bWVudE1vZGU7XG59IC8vIFdlYmtpdCBvZmZlcnMgYSB2ZXJ5IHVzZWZ1bCBgdGV4dElucHV0YCBldmVudCB0aGF0IGNhbiBiZSB1c2VkIHRvXG4vLyBkaXJlY3RseSByZXByZXNlbnQgYGJlZm9yZUlucHV0YC4gVGhlIElFIGB0ZXh0aW5wdXRgIGV2ZW50IGlzIG5vdCBhc1xuLy8gdXNlZnVsLCBzbyB3ZSBkb24ndCB1c2UgaXQuXG5cblxudmFyIGNhblVzZVRleHRJbnB1dEV2ZW50ID0gY2FuVXNlRE9NICYmICdUZXh0RXZlbnQnIGluIHdpbmRvdyAmJiAhZG9jdW1lbnRNb2RlOyAvLyBJbiBJRTkrLCB3ZSBoYXZlIGFjY2VzcyB0byBjb21wb3NpdGlvbiBldmVudHMsIGJ1dCB0aGUgZGF0YSBzdXBwbGllZFxuLy8gYnkgdGhlIG5hdGl2ZSBjb21wb3NpdGlvbmVuZCBldmVudCBtYXkgYmUgaW5jb3JyZWN0LiBKYXBhbmVzZSBpZGVvZ3JhcGhpY1xuLy8gc3BhY2VzLCBmb3IgaW5zdGFuY2UgKFxcdTMwMDApIGFyZSBub3QgcmVjb3JkZWQgY29ycmVjdGx5LlxuXG52YXIgdXNlRmFsbGJhY2tDb21wb3NpdGlvbkRhdGEgPSBjYW5Vc2VET00gJiYgKCFjYW5Vc2VDb21wb3NpdGlvbkV2ZW50IHx8IGRvY3VtZW50TW9kZSAmJiBkb2N1bWVudE1vZGUgPiA4ICYmIGRvY3VtZW50TW9kZSA8PSAxMSk7XG52YXIgU1BBQ0VCQVJfQ09ERSA9IDMyO1xudmFyIFNQQUNFQkFSX0NIQVIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKFNQQUNFQkFSX0NPREUpO1xuXG5mdW5jdGlvbiByZWdpc3RlckV2ZW50cygpIHtcbiAgcmVnaXN0ZXJUd29QaGFzZUV2ZW50KCdvbkJlZm9yZUlucHV0JywgWydjb21wb3NpdGlvbmVuZCcsICdrZXlwcmVzcycsICd0ZXh0SW5wdXQnLCAncGFzdGUnXSk7XG4gIHJlZ2lzdGVyVHdvUGhhc2VFdmVudCgnb25Db21wb3NpdGlvbkVuZCcsIFsnY29tcG9zaXRpb25lbmQnLCAnZm9jdXNvdXQnLCAna2V5ZG93bicsICdrZXlwcmVzcycsICdrZXl1cCcsICdtb3VzZWRvd24nXSk7XG4gIHJlZ2lzdGVyVHdvUGhhc2VFdmVudCgnb25Db21wb3NpdGlvblN0YXJ0JywgWydjb21wb3NpdGlvbnN0YXJ0JywgJ2ZvY3Vzb3V0JywgJ2tleWRvd24nLCAna2V5cHJlc3MnLCAna2V5dXAnLCAnbW91c2Vkb3duJ10pO1xuICByZWdpc3RlclR3b1BoYXNlRXZlbnQoJ29uQ29tcG9zaXRpb25VcGRhdGUnLCBbJ2NvbXBvc2l0aW9udXBkYXRlJywgJ2ZvY3Vzb3V0JywgJ2tleWRvd24nLCAna2V5cHJlc3MnLCAna2V5dXAnLCAnbW91c2Vkb3duJ10pO1xufSAvLyBUcmFjayB3aGV0aGVyIHdlJ3ZlIGV2ZXIgaGFuZGxlZCBhIGtleXByZXNzIG9uIHRoZSBzcGFjZSBrZXkuXG5cblxudmFyIGhhc1NwYWNlS2V5cHJlc3MgPSBmYWxzZTtcbi8qKlxuICogUmV0dXJuIHdoZXRoZXIgYSBuYXRpdmUga2V5cHJlc3MgZXZlbnQgaXMgYXNzdW1lZCB0byBiZSBhIGNvbW1hbmQuXG4gKiBUaGlzIGlzIHJlcXVpcmVkIGJlY2F1c2UgRmlyZWZveCBmaXJlcyBga2V5cHJlc3NgIGV2ZW50cyBmb3Iga2V5IGNvbW1hbmRzXG4gKiAoY3V0LCBjb3B5LCBzZWxlY3QtYWxsLCBldGMuKSBldmVuIHRob3VnaCBubyBjaGFyYWN0ZXIgaXMgaW5zZXJ0ZWQuXG4gKi9cblxuZnVuY3Rpb24gaXNLZXlwcmVzc0NvbW1hbmQobmF0aXZlRXZlbnQpIHtcbiAgcmV0dXJuIChuYXRpdmVFdmVudC5jdHJsS2V5IHx8IG5hdGl2ZUV2ZW50LmFsdEtleSB8fCBuYXRpdmVFdmVudC5tZXRhS2V5KSAmJiAvLyBjdHJsS2V5ICYmIGFsdEtleSBpcyBlcXVpdmFsZW50IHRvIEFsdEdyLCBhbmQgaXMgbm90IGEgY29tbWFuZC5cbiAgIShuYXRpdmVFdmVudC5jdHJsS2V5ICYmIG5hdGl2ZUV2ZW50LmFsdEtleSk7XG59XG4vKipcbiAqIFRyYW5zbGF0ZSBuYXRpdmUgdG9wIGxldmVsIGV2ZW50cyBpbnRvIGV2ZW50IHR5cGVzLlxuICovXG5cblxuZnVuY3Rpb24gZ2V0Q29tcG9zaXRpb25FdmVudFR5cGUoZG9tRXZlbnROYW1lKSB7XG4gIHN3aXRjaCAoZG9tRXZlbnROYW1lKSB7XG4gICAgY2FzZSAnY29tcG9zaXRpb25zdGFydCc6XG4gICAgICByZXR1cm4gJ29uQ29tcG9zaXRpb25TdGFydCc7XG5cbiAgICBjYXNlICdjb21wb3NpdGlvbmVuZCc6XG4gICAgICByZXR1cm4gJ29uQ29tcG9zaXRpb25FbmQnO1xuXG4gICAgY2FzZSAnY29tcG9zaXRpb251cGRhdGUnOlxuICAgICAgcmV0dXJuICdvbkNvbXBvc2l0aW9uVXBkYXRlJztcbiAgfVxufVxuLyoqXG4gKiBEb2VzIG91ciBmYWxsYmFjayBiZXN0LWd1ZXNzIG1vZGVsIHRoaW5rIHRoaXMgZXZlbnQgc2lnbmlmaWVzIHRoYXRcbiAqIGNvbXBvc2l0aW9uIGhhcyBiZWd1bj9cbiAqL1xuXG5cbmZ1bmN0aW9uIGlzRmFsbGJhY2tDb21wb3NpdGlvblN0YXJ0KGRvbUV2ZW50TmFtZSwgbmF0aXZlRXZlbnQpIHtcbiAgcmV0dXJuIGRvbUV2ZW50TmFtZSA9PT0gJ2tleWRvd24nICYmIG5hdGl2ZUV2ZW50LmtleUNvZGUgPT09IFNUQVJUX0tFWUNPREU7XG59XG4vKipcbiAqIERvZXMgb3VyIGZhbGxiYWNrIG1vZGUgdGhpbmsgdGhhdCB0aGlzIGV2ZW50IGlzIHRoZSBlbmQgb2YgY29tcG9zaXRpb24/XG4gKi9cblxuXG5mdW5jdGlvbiBpc0ZhbGxiYWNrQ29tcG9zaXRpb25FbmQoZG9tRXZlbnROYW1lLCBuYXRpdmVFdmVudCkge1xuICBzd2l0Y2ggKGRvbUV2ZW50TmFtZSkge1xuICAgIGNhc2UgJ2tleXVwJzpcbiAgICAgIC8vIENvbW1hbmQga2V5cyBpbnNlcnQgb3IgY2xlYXIgSU1FIGlucHV0LlxuICAgICAgcmV0dXJuIEVORF9LRVlDT0RFUy5pbmRleE9mKG5hdGl2ZUV2ZW50LmtleUNvZGUpICE9PSAtMTtcblxuICAgIGNhc2UgJ2tleWRvd24nOlxuICAgICAgLy8gRXhwZWN0IElNRSBrZXlDb2RlIG9uIGVhY2gga2V5ZG93bi4gSWYgd2UgZ2V0IGFueSBvdGhlclxuICAgICAgLy8gY29kZSB3ZSBtdXN0IGhhdmUgZXhpdGVkIGVhcmxpZXIuXG4gICAgICByZXR1cm4gbmF0aXZlRXZlbnQua2V5Q29kZSAhPT0gU1RBUlRfS0VZQ09ERTtcblxuICAgIGNhc2UgJ2tleXByZXNzJzpcbiAgICBjYXNlICdtb3VzZWRvd24nOlxuICAgIGNhc2UgJ2ZvY3Vzb3V0JzpcbiAgICAgIC8vIEV2ZW50cyBhcmUgbm90IHBvc3NpYmxlIHdpdGhvdXQgY2FuY2VsbGluZyBJTUUuXG4gICAgICByZXR1cm4gdHJ1ZTtcblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbi8qKlxuICogR29vZ2xlIElucHV0IFRvb2xzIHByb3ZpZGVzIGNvbXBvc2l0aW9uIGRhdGEgdmlhIGEgQ3VzdG9tRXZlbnQsXG4gKiB3aXRoIHRoZSBgZGF0YWAgcHJvcGVydHkgcG9wdWxhdGVkIGluIHRoZSBgZGV0YWlsYCBvYmplY3QuIElmIHRoaXNcbiAqIGlzIGF2YWlsYWJsZSBvbiB0aGUgZXZlbnQgb2JqZWN0LCB1c2UgaXQuIElmIG5vdCwgdGhpcyBpcyBhIHBsYWluXG4gKiBjb21wb3NpdGlvbiBldmVudCBhbmQgd2UgaGF2ZSBub3RoaW5nIHNwZWNpYWwgdG8gZXh0cmFjdC5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gbmF0aXZlRXZlbnRcbiAqIEByZXR1cm4gez9zdHJpbmd9XG4gKi9cblxuXG5mdW5jdGlvbiBnZXREYXRhRnJvbUN1c3RvbUV2ZW50KG5hdGl2ZUV2ZW50KSB7XG4gIHZhciBkZXRhaWwgPSBuYXRpdmVFdmVudC5kZXRhaWw7XG5cbiAgaWYgKHR5cGVvZiBkZXRhaWwgPT09ICdvYmplY3QnICYmICdkYXRhJyBpbiBkZXRhaWwpIHtcbiAgICByZXR1cm4gZGV0YWlsLmRhdGE7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cbi8qKlxuICogQ2hlY2sgaWYgYSBjb21wb3NpdGlvbiBldmVudCB3YXMgdHJpZ2dlcmVkIGJ5IEtvcmVhbiBJTUUuXG4gKiBPdXIgZmFsbGJhY2sgbW9kZSBkb2VzIG5vdCB3b3JrIHdlbGwgd2l0aCBJRSdzIEtvcmVhbiBJTUUsXG4gKiBzbyBqdXN0IHVzZSBuYXRpdmUgY29tcG9zaXRpb24gZXZlbnRzIHdoZW4gS29yZWFuIElNRSBpcyB1c2VkLlxuICogQWx0aG91Z2ggQ29tcG9zaXRpb25FdmVudC5sb2NhbGUgcHJvcGVydHkgaXMgZGVwcmVjYXRlZCxcbiAqIGl0IGlzIGF2YWlsYWJsZSBpbiBJRSwgd2hlcmUgb3VyIGZhbGxiYWNrIG1vZGUgaXMgZW5hYmxlZC5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gbmF0aXZlRXZlbnRcbiAqIEByZXR1cm4ge2Jvb2xlYW59XG4gKi9cblxuXG5mdW5jdGlvbiBpc1VzaW5nS29yZWFuSU1FKG5hdGl2ZUV2ZW50KSB7XG4gIHJldHVybiBuYXRpdmVFdmVudC5sb2NhbGUgPT09ICdrbyc7XG59IC8vIFRyYWNrIHRoZSBjdXJyZW50IElNRSBjb21wb3NpdGlvbiBzdGF0dXMsIGlmIGFueS5cblxuXG52YXIgaXNDb21wb3NpbmcgPSBmYWxzZTtcbi8qKlxuICogQHJldHVybiB7P29iamVjdH0gQSBTeW50aGV0aWNDb21wb3NpdGlvbkV2ZW50LlxuICovXG5cbmZ1bmN0aW9uIGV4dHJhY3RDb21wb3NpdGlvbkV2ZW50KGRpc3BhdGNoUXVldWUsIGRvbUV2ZW50TmFtZSwgdGFyZ2V0SW5zdCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KSB7XG4gIHZhciBldmVudFR5cGU7XG4gIHZhciBmYWxsYmFja0RhdGE7XG5cbiAgaWYgKGNhblVzZUNvbXBvc2l0aW9uRXZlbnQpIHtcbiAgICBldmVudFR5cGUgPSBnZXRDb21wb3NpdGlvbkV2ZW50VHlwZShkb21FdmVudE5hbWUpO1xuICB9IGVsc2UgaWYgKCFpc0NvbXBvc2luZykge1xuICAgIGlmIChpc0ZhbGxiYWNrQ29tcG9zaXRpb25TdGFydChkb21FdmVudE5hbWUsIG5hdGl2ZUV2ZW50KSkge1xuICAgICAgZXZlbnRUeXBlID0gJ29uQ29tcG9zaXRpb25TdGFydCc7XG4gICAgfVxuICB9IGVsc2UgaWYgKGlzRmFsbGJhY2tDb21wb3NpdGlvbkVuZChkb21FdmVudE5hbWUsIG5hdGl2ZUV2ZW50KSkge1xuICAgIGV2ZW50VHlwZSA9ICdvbkNvbXBvc2l0aW9uRW5kJztcbiAgfVxuXG4gIGlmICghZXZlbnRUeXBlKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpZiAodXNlRmFsbGJhY2tDb21wb3NpdGlvbkRhdGEgJiYgIWlzVXNpbmdLb3JlYW5JTUUobmF0aXZlRXZlbnQpKSB7XG4gICAgLy8gVGhlIGN1cnJlbnQgY29tcG9zaXRpb24gaXMgc3RvcmVkIHN0YXRpY2FsbHkgYW5kIG11c3Qgbm90IGJlXG4gICAgLy8gb3ZlcndyaXR0ZW4gd2hpbGUgY29tcG9zaXRpb24gY29udGludWVzLlxuICAgIGlmICghaXNDb21wb3NpbmcgJiYgZXZlbnRUeXBlID09PSAnb25Db21wb3NpdGlvblN0YXJ0Jykge1xuICAgICAgaXNDb21wb3NpbmcgPSBpbml0aWFsaXplKG5hdGl2ZUV2ZW50VGFyZ2V0KTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9PT0gJ29uQ29tcG9zaXRpb25FbmQnKSB7XG4gICAgICBpZiAoaXNDb21wb3NpbmcpIHtcbiAgICAgICAgZmFsbGJhY2tEYXRhID0gZ2V0RGF0YSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHZhciBsaXN0ZW5lcnMgPSBhY2N1bXVsYXRlVHdvUGhhc2VMaXN0ZW5lcnModGFyZ2V0SW5zdCwgZXZlbnRUeXBlKTtcblxuICBpZiAobGlzdGVuZXJzLmxlbmd0aCA+IDApIHtcbiAgICB2YXIgZXZlbnQgPSBuZXcgU3ludGhldGljQ29tcG9zaXRpb25FdmVudChldmVudFR5cGUsIGRvbUV2ZW50TmFtZSwgbnVsbCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KTtcbiAgICBkaXNwYXRjaFF1ZXVlLnB1c2goe1xuICAgICAgZXZlbnQ6IGV2ZW50LFxuICAgICAgbGlzdGVuZXJzOiBsaXN0ZW5lcnNcbiAgICB9KTtcblxuICAgIGlmIChmYWxsYmFja0RhdGEpIHtcbiAgICAgIC8vIEluamVjdCBkYXRhIGdlbmVyYXRlZCBmcm9tIGZhbGxiYWNrIHBhdGggaW50byB0aGUgc3ludGhldGljIGV2ZW50LlxuICAgICAgLy8gVGhpcyBtYXRjaGVzIHRoZSBwcm9wZXJ0eSBvZiBuYXRpdmUgQ29tcG9zaXRpb25FdmVudEludGVyZmFjZS5cbiAgICAgIGV2ZW50LmRhdGEgPSBmYWxsYmFja0RhdGE7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBjdXN0b21EYXRhID0gZ2V0RGF0YUZyb21DdXN0b21FdmVudChuYXRpdmVFdmVudCk7XG5cbiAgICAgIGlmIChjdXN0b21EYXRhICE9PSBudWxsKSB7XG4gICAgICAgIGV2ZW50LmRhdGEgPSBjdXN0b21EYXRhO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBnZXROYXRpdmVCZWZvcmVJbnB1dENoYXJzKGRvbUV2ZW50TmFtZSwgbmF0aXZlRXZlbnQpIHtcbiAgc3dpdGNoIChkb21FdmVudE5hbWUpIHtcbiAgICBjYXNlICdjb21wb3NpdGlvbmVuZCc6XG4gICAgICByZXR1cm4gZ2V0RGF0YUZyb21DdXN0b21FdmVudChuYXRpdmVFdmVudCk7XG5cbiAgICBjYXNlICdrZXlwcmVzcyc6XG4gICAgICAvKipcbiAgICAgICAqIElmIG5hdGl2ZSBgdGV4dElucHV0YCBldmVudHMgYXJlIGF2YWlsYWJsZSwgb3VyIGdvYWwgaXMgdG8gbWFrZVxuICAgICAgICogdXNlIG9mIHRoZW0uIEhvd2V2ZXIsIHRoZXJlIGlzIGEgc3BlY2lhbCBjYXNlOiB0aGUgc3BhY2ViYXIga2V5LlxuICAgICAgICogSW4gV2Via2l0LCBwcmV2ZW50aW5nIGRlZmF1bHQgb24gYSBzcGFjZWJhciBgdGV4dElucHV0YCBldmVudFxuICAgICAgICogY2FuY2VscyBjaGFyYWN0ZXIgaW5zZXJ0aW9uLCBidXQgaXQgKmFsc28qIGNhdXNlcyB0aGUgYnJvd3NlclxuICAgICAgICogdG8gZmFsbCBiYWNrIHRvIGl0cyBkZWZhdWx0IHNwYWNlYmFyIGJlaGF2aW9yIG9mIHNjcm9sbGluZyB0aGVcbiAgICAgICAqIHBhZ2UuXG4gICAgICAgKlxuICAgICAgICogVHJhY2tpbmcgYXQ6XG4gICAgICAgKiBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9MzU1MTAzXG4gICAgICAgKlxuICAgICAgICogVG8gYXZvaWQgdGhpcyBpc3N1ZSwgdXNlIHRoZSBrZXlwcmVzcyBldmVudCBhcyBpZiBubyBgdGV4dElucHV0YFxuICAgICAgICogZXZlbnQgaXMgYXZhaWxhYmxlLlxuICAgICAgICovXG4gICAgICB2YXIgd2hpY2ggPSBuYXRpdmVFdmVudC53aGljaDtcblxuICAgICAgaWYgKHdoaWNoICE9PSBTUEFDRUJBUl9DT0RFKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICBoYXNTcGFjZUtleXByZXNzID0gdHJ1ZTtcbiAgICAgIHJldHVybiBTUEFDRUJBUl9DSEFSO1xuXG4gICAgY2FzZSAndGV4dElucHV0JzpcbiAgICAgIC8vIFJlY29yZCB0aGUgY2hhcmFjdGVycyB0byBiZSBhZGRlZCB0byB0aGUgRE9NLlxuICAgICAgdmFyIGNoYXJzID0gbmF0aXZlRXZlbnQuZGF0YTsgLy8gSWYgaXQncyBhIHNwYWNlYmFyIGNoYXJhY3RlciwgYXNzdW1lIHRoYXQgd2UgaGF2ZSBhbHJlYWR5IGhhbmRsZWRcbiAgICAgIC8vIGl0IGF0IHRoZSBrZXlwcmVzcyBsZXZlbCBhbmQgYmFpbCBpbW1lZGlhdGVseS4gQW5kcm9pZCBDaHJvbWVcbiAgICAgIC8vIGRvZXNuJ3QgZ2l2ZSB1cyBrZXljb2Rlcywgc28gd2UgbmVlZCB0byBpZ25vcmUgaXQuXG5cbiAgICAgIGlmIChjaGFycyA9PT0gU1BBQ0VCQVJfQ0hBUiAmJiBoYXNTcGFjZUtleXByZXNzKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY2hhcnM7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgLy8gRm9yIG90aGVyIG5hdGl2ZSBldmVudCB0eXBlcywgZG8gbm90aGluZy5cbiAgICAgIHJldHVybiBudWxsO1xuICB9XG59XG4vKipcbiAqIEZvciBicm93c2VycyB0aGF0IGRvIG5vdCBwcm92aWRlIHRoZSBgdGV4dElucHV0YCBldmVudCwgZXh0cmFjdCB0aGVcbiAqIGFwcHJvcHJpYXRlIHN0cmluZyB0byB1c2UgZm9yIFN5bnRoZXRpY0lucHV0RXZlbnQuXG4gKi9cblxuXG5mdW5jdGlvbiBnZXRGYWxsYmFja0JlZm9yZUlucHV0Q2hhcnMoZG9tRXZlbnROYW1lLCBuYXRpdmVFdmVudCkge1xuICAvLyBJZiB3ZSBhcmUgY3VycmVudGx5IGNvbXBvc2luZyAoSU1FKSBhbmQgdXNpbmcgYSBmYWxsYmFjayB0byBkbyBzbyxcbiAgLy8gdHJ5IHRvIGV4dHJhY3QgdGhlIGNvbXBvc2VkIGNoYXJhY3RlcnMgZnJvbSB0aGUgZmFsbGJhY2sgb2JqZWN0LlxuICAvLyBJZiBjb21wb3NpdGlvbiBldmVudCBpcyBhdmFpbGFibGUsIHdlIGV4dHJhY3QgYSBzdHJpbmcgb25seSBhdFxuICAvLyBjb21wb3NpdGlvbmV2ZW50LCBvdGhlcndpc2UgZXh0cmFjdCBpdCBhdCBmYWxsYmFjayBldmVudHMuXG4gIGlmIChpc0NvbXBvc2luZykge1xuICAgIGlmIChkb21FdmVudE5hbWUgPT09ICdjb21wb3NpdGlvbmVuZCcgfHwgIWNhblVzZUNvbXBvc2l0aW9uRXZlbnQgJiYgaXNGYWxsYmFja0NvbXBvc2l0aW9uRW5kKGRvbUV2ZW50TmFtZSwgbmF0aXZlRXZlbnQpKSB7XG4gICAgICB2YXIgY2hhcnMgPSBnZXREYXRhKCk7XG4gICAgICByZXNldCgpO1xuICAgICAgaXNDb21wb3NpbmcgPSBmYWxzZTtcbiAgICAgIHJldHVybiBjaGFycztcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHN3aXRjaCAoZG9tRXZlbnROYW1lKSB7XG4gICAgY2FzZSAncGFzdGUnOlxuICAgICAgLy8gSWYgYSBwYXN0ZSBldmVudCBvY2N1cnMgYWZ0ZXIgYSBrZXlwcmVzcywgdGhyb3cgb3V0IHRoZSBpbnB1dFxuICAgICAgLy8gY2hhcnMuIFBhc3RlIGV2ZW50cyBzaG91bGQgbm90IGxlYWQgdG8gQmVmb3JlSW5wdXQgZXZlbnRzLlxuICAgICAgcmV0dXJuIG51bGw7XG5cbiAgICBjYXNlICdrZXlwcmVzcyc6XG4gICAgICAvKipcbiAgICAgICAqIEFzIG9mIHYyNywgRmlyZWZveCBtYXkgZmlyZSBrZXlwcmVzcyBldmVudHMgZXZlbiB3aGVuIG5vIGNoYXJhY3RlclxuICAgICAgICogd2lsbCBiZSBpbnNlcnRlZC4gQSBmZXcgcG9zc2liaWxpdGllczpcbiAgICAgICAqXG4gICAgICAgKiAtIGB3aGljaGAgaXMgYDBgLiBBcnJvdyBrZXlzLCBFc2Mga2V5LCBldGMuXG4gICAgICAgKlxuICAgICAgICogLSBgd2hpY2hgIGlzIHRoZSBwcmVzc2VkIGtleSBjb2RlLCBidXQgbm8gY2hhciBpcyBhdmFpbGFibGUuXG4gICAgICAgKiAgIEV4OiAnQWx0R3IgKyBkYCBpbiBQb2xpc2guIFRoZXJlIGlzIG5vIG1vZGlmaWVkIGNoYXJhY3RlciBmb3JcbiAgICAgICAqICAgdGhpcyBrZXkgY29tYmluYXRpb24gYW5kIG5vIGNoYXJhY3RlciBpcyBpbnNlcnRlZCBpbnRvIHRoZVxuICAgICAgICogICBkb2N1bWVudCwgYnV0IEZGIGZpcmVzIHRoZSBrZXlwcmVzcyBmb3IgY2hhciBjb2RlIGAxMDBgIGFueXdheS5cbiAgICAgICAqICAgTm8gYGlucHV0YCBldmVudCB3aWxsIG9jY3VyLlxuICAgICAgICpcbiAgICAgICAqIC0gYHdoaWNoYCBpcyB0aGUgcHJlc3NlZCBrZXkgY29kZSwgYnV0IGEgY29tbWFuZCBjb21iaW5hdGlvbiBpc1xuICAgICAgICogICBiZWluZyB1c2VkLiBFeDogYENtZCtDYC4gTm8gY2hhcmFjdGVyIGlzIGluc2VydGVkLCBhbmQgbm9cbiAgICAgICAqICAgYGlucHV0YCBldmVudCB3aWxsIG9jY3VyLlxuICAgICAgICovXG4gICAgICBpZiAoIWlzS2V5cHJlc3NDb21tYW5kKG5hdGl2ZUV2ZW50KSkge1xuICAgICAgICAvLyBJRSBmaXJlcyB0aGUgYGtleXByZXNzYCBldmVudCB3aGVuIGEgdXNlciB0eXBlcyBhbiBlbW9qaSB2aWFcbiAgICAgICAgLy8gVG91Y2gga2V5Ym9hcmQgb2YgV2luZG93cy4gIEluIHN1Y2ggYSBjYXNlLCB0aGUgYGNoYXJgIHByb3BlcnR5XG4gICAgICAgIC8vIGhvbGRzIGFuIGVtb2ppIGNoYXJhY3RlciBsaWtlIGBcXHVEODNEXFx1REUwQWAuICBCZWNhdXNlIGl0cyBsZW5ndGhcbiAgICAgICAgLy8gaXMgMiwgdGhlIHByb3BlcnR5IGB3aGljaGAgZG9lcyBub3QgcmVwcmVzZW50IGFuIGVtb2ppIGNvcnJlY3RseS5cbiAgICAgICAgLy8gSW4gc3VjaCBhIGNhc2UsIHdlIGRpcmVjdGx5IHJldHVybiB0aGUgYGNoYXJgIHByb3BlcnR5IGluc3RlYWQgb2ZcbiAgICAgICAgLy8gdXNpbmcgYHdoaWNoYC5cbiAgICAgICAgaWYgKG5hdGl2ZUV2ZW50LmNoYXIgJiYgbmF0aXZlRXZlbnQuY2hhci5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgcmV0dXJuIG5hdGl2ZUV2ZW50LmNoYXI7XG4gICAgICAgIH0gZWxzZSBpZiAobmF0aXZlRXZlbnQud2hpY2gpIHtcbiAgICAgICAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShuYXRpdmVFdmVudC53aGljaCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG51bGw7XG5cbiAgICBjYXNlICdjb21wb3NpdGlvbmVuZCc6XG4gICAgICByZXR1cm4gdXNlRmFsbGJhY2tDb21wb3NpdGlvbkRhdGEgJiYgIWlzVXNpbmdLb3JlYW5JTUUobmF0aXZlRXZlbnQpID8gbnVsbCA6IG5hdGl2ZUV2ZW50LmRhdGE7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cbi8qKlxuICogRXh0cmFjdCBhIFN5bnRoZXRpY0lucHV0RXZlbnQgZm9yIGBiZWZvcmVJbnB1dGAsIGJhc2VkIG9uIGVpdGhlciBuYXRpdmVcbiAqIGB0ZXh0SW5wdXRgIG9yIGZhbGxiYWNrIGJlaGF2aW9yLlxuICpcbiAqIEByZXR1cm4gez9vYmplY3R9IEEgU3ludGhldGljSW5wdXRFdmVudC5cbiAqL1xuXG5cbmZ1bmN0aW9uIGV4dHJhY3RCZWZvcmVJbnB1dEV2ZW50KGRpc3BhdGNoUXVldWUsIGRvbUV2ZW50TmFtZSwgdGFyZ2V0SW5zdCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KSB7XG4gIHZhciBjaGFycztcblxuICBpZiAoY2FuVXNlVGV4dElucHV0RXZlbnQpIHtcbiAgICBjaGFycyA9IGdldE5hdGl2ZUJlZm9yZUlucHV0Q2hhcnMoZG9tRXZlbnROYW1lLCBuYXRpdmVFdmVudCk7XG4gIH0gZWxzZSB7XG4gICAgY2hhcnMgPSBnZXRGYWxsYmFja0JlZm9yZUlucHV0Q2hhcnMoZG9tRXZlbnROYW1lLCBuYXRpdmVFdmVudCk7XG4gIH0gLy8gSWYgbm8gY2hhcmFjdGVycyBhcmUgYmVpbmcgaW5zZXJ0ZWQsIG5vIEJlZm9yZUlucHV0IGV2ZW50IHNob3VsZFxuICAvLyBiZSBmaXJlZC5cblxuXG4gIGlmICghY2hhcnMpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHZhciBsaXN0ZW5lcnMgPSBhY2N1bXVsYXRlVHdvUGhhc2VMaXN0ZW5lcnModGFyZ2V0SW5zdCwgJ29uQmVmb3JlSW5wdXQnKTtcblxuICBpZiAobGlzdGVuZXJzLmxlbmd0aCA+IDApIHtcbiAgICB2YXIgZXZlbnQgPSBuZXcgU3ludGhldGljSW5wdXRFdmVudCgnb25CZWZvcmVJbnB1dCcsICdiZWZvcmVpbnB1dCcsIG51bGwsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCk7XG4gICAgZGlzcGF0Y2hRdWV1ZS5wdXNoKHtcbiAgICAgIGV2ZW50OiBldmVudCxcbiAgICAgIGxpc3RlbmVyczogbGlzdGVuZXJzXG4gICAgfSk7XG4gICAgZXZlbnQuZGF0YSA9IGNoYXJzO1xuICB9XG59XG4vKipcbiAqIENyZWF0ZSBhbiBgb25CZWZvcmVJbnB1dGAgZXZlbnQgdG8gbWF0Y2hcbiAqIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMTMvV0QtRE9NLUxldmVsLTMtRXZlbnRzLTIwMTMxMTA1LyNldmVudHMtaW5wdXRldmVudHMuXG4gKlxuICogVGhpcyBldmVudCBwbHVnaW4gaXMgYmFzZWQgb24gdGhlIG5hdGl2ZSBgdGV4dElucHV0YCBldmVudFxuICogYXZhaWxhYmxlIGluIENocm9tZSwgU2FmYXJpLCBPcGVyYSwgYW5kIElFLiBUaGlzIGV2ZW50IGZpcmVzIGFmdGVyXG4gKiBgb25LZXlQcmVzc2AgYW5kIGBvbkNvbXBvc2l0aW9uRW5kYCwgYnV0IGJlZm9yZSBgb25JbnB1dGAuXG4gKlxuICogYGJlZm9yZUlucHV0YCBpcyBzcGVjJ2QgYnV0IG5vdCBpbXBsZW1lbnRlZCBpbiBhbnkgYnJvd3NlcnMsIGFuZFxuICogdGhlIGBpbnB1dGAgZXZlbnQgZG9lcyBub3QgcHJvdmlkZSBhbnkgdXNlZnVsIGluZm9ybWF0aW9uIGFib3V0IHdoYXQgaGFzXG4gKiBhY3R1YWxseSBiZWVuIGFkZGVkLCBjb250cmFyeSB0byB0aGUgc3BlYy4gVGh1cywgYHRleHRJbnB1dGAgaXMgdGhlIGJlc3RcbiAqIGF2YWlsYWJsZSBldmVudCB0byBpZGVudGlmeSB0aGUgY2hhcmFjdGVycyB0aGF0IGhhdmUgYWN0dWFsbHkgYmVlbiBpbnNlcnRlZFxuICogaW50byB0aGUgdGFyZ2V0IG5vZGUuXG4gKlxuICogVGhpcyBwbHVnaW4gaXMgYWxzbyByZXNwb25zaWJsZSBmb3IgZW1pdHRpbmcgYGNvbXBvc2l0aW9uYCBldmVudHMsIHRodXNcbiAqIGFsbG93aW5nIHVzIHRvIHNoYXJlIGNvbXBvc2l0aW9uIGZhbGxiYWNrIGNvZGUgZm9yIGJvdGggYGJlZm9yZUlucHV0YCBhbmRcbiAqIGBjb21wb3NpdGlvbmAgZXZlbnQgdHlwZXMuXG4gKi9cblxuXG5mdW5jdGlvbiBleHRyYWN0RXZlbnRzKGRpc3BhdGNoUXVldWUsIGRvbUV2ZW50TmFtZSwgdGFyZ2V0SW5zdCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0LCBldmVudFN5c3RlbUZsYWdzLCB0YXJnZXRDb250YWluZXIpIHtcbiAgZXh0cmFjdENvbXBvc2l0aW9uRXZlbnQoZGlzcGF0Y2hRdWV1ZSwgZG9tRXZlbnROYW1lLCB0YXJnZXRJbnN0LCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpO1xuICBleHRyYWN0QmVmb3JlSW5wdXRFdmVudChkaXNwYXRjaFF1ZXVlLCBkb21FdmVudE5hbWUsIHRhcmdldEluc3QsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCk7XG59XG5cbi8qKlxuICogQHNlZSBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS90aGUtaW5wdXQtZWxlbWVudC5odG1sI2lucHV0LXR5cGUtYXR0ci1zdW1tYXJ5XG4gKi9cbnZhciBzdXBwb3J0ZWRJbnB1dFR5cGVzID0ge1xuICBjb2xvcjogdHJ1ZSxcbiAgZGF0ZTogdHJ1ZSxcbiAgZGF0ZXRpbWU6IHRydWUsXG4gICdkYXRldGltZS1sb2NhbCc6IHRydWUsXG4gIGVtYWlsOiB0cnVlLFxuICBtb250aDogdHJ1ZSxcbiAgbnVtYmVyOiB0cnVlLFxuICBwYXNzd29yZDogdHJ1ZSxcbiAgcmFuZ2U6IHRydWUsXG4gIHNlYXJjaDogdHJ1ZSxcbiAgdGVsOiB0cnVlLFxuICB0ZXh0OiB0cnVlLFxuICB0aW1lOiB0cnVlLFxuICB1cmw6IHRydWUsXG4gIHdlZWs6IHRydWVcbn07XG5cbmZ1bmN0aW9uIGlzVGV4dElucHV0RWxlbWVudChlbGVtKSB7XG4gIHZhciBub2RlTmFtZSA9IGVsZW0gJiYgZWxlbS5ub2RlTmFtZSAmJiBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XG5cbiAgaWYgKG5vZGVOYW1lID09PSAnaW5wdXQnKSB7XG4gICAgcmV0dXJuICEhc3VwcG9ydGVkSW5wdXRUeXBlc1tlbGVtLnR5cGVdO1xuICB9XG5cbiAgaWYgKG5vZGVOYW1lID09PSAndGV4dGFyZWEnKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIGFuIGV2ZW50IGlzIHN1cHBvcnRlZCBpbiB0aGUgY3VycmVudCBleGVjdXRpb24gZW52aXJvbm1lbnQuXG4gKlxuICogTk9URTogVGhpcyB3aWxsIG5vdCB3b3JrIGNvcnJlY3RseSBmb3Igbm9uLWdlbmVyaWMgZXZlbnRzIHN1Y2ggYXMgYGNoYW5nZWAsXG4gKiBgcmVzZXRgLCBgbG9hZGAsIGBlcnJvcmAsIGFuZCBgc2VsZWN0YC5cbiAqXG4gKiBCb3Jyb3dzIGZyb20gTW9kZXJuaXpyLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBldmVudE5hbWVTdWZmaXggRXZlbnQgbmFtZSwgZS5nLiBcImNsaWNrXCIuXG4gKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIGlmIHRoZSBldmVudCBpcyBzdXBwb3J0ZWQuXG4gKiBAaW50ZXJuYWxcbiAqIEBsaWNlbnNlIE1vZGVybml6ciAzLjAuMHByZSAoQ3VzdG9tIEJ1aWxkKSB8IE1JVFxuICovXG5cbmZ1bmN0aW9uIGlzRXZlbnRTdXBwb3J0ZWQoZXZlbnROYW1lU3VmZml4KSB7XG4gIGlmICghY2FuVXNlRE9NKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgdmFyIGV2ZW50TmFtZSA9ICdvbicgKyBldmVudE5hbWVTdWZmaXg7XG4gIHZhciBpc1N1cHBvcnRlZCA9IChldmVudE5hbWUgaW4gZG9jdW1lbnQpO1xuXG4gIGlmICghaXNTdXBwb3J0ZWQpIHtcbiAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKGV2ZW50TmFtZSwgJ3JldHVybjsnKTtcbiAgICBpc1N1cHBvcnRlZCA9IHR5cGVvZiBlbGVtZW50W2V2ZW50TmFtZV0gPT09ICdmdW5jdGlvbic7XG4gIH1cblxuICByZXR1cm4gaXNTdXBwb3J0ZWQ7XG59XG5cbmZ1bmN0aW9uIHJlZ2lzdGVyRXZlbnRzJDEoKSB7XG4gIHJlZ2lzdGVyVHdvUGhhc2VFdmVudCgnb25DaGFuZ2UnLCBbJ2NoYW5nZScsICdjbGljaycsICdmb2N1c2luJywgJ2ZvY3Vzb3V0JywgJ2lucHV0JywgJ2tleWRvd24nLCAna2V5dXAnLCAnc2VsZWN0aW9uY2hhbmdlJ10pO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVBbmRBY2N1bXVsYXRlQ2hhbmdlRXZlbnQoZGlzcGF0Y2hRdWV1ZSwgaW5zdCwgbmF0aXZlRXZlbnQsIHRhcmdldCkge1xuICAvLyBGbGFnIHRoaXMgZXZlbnQgbG9vcCBhcyBuZWVkaW5nIHN0YXRlIHJlc3RvcmUuXG4gIGVucXVldWVTdGF0ZVJlc3RvcmUodGFyZ2V0KTtcbiAgdmFyIGxpc3RlbmVycyA9IGFjY3VtdWxhdGVUd29QaGFzZUxpc3RlbmVycyhpbnN0LCAnb25DaGFuZ2UnKTtcblxuICBpZiAobGlzdGVuZXJzLmxlbmd0aCA+IDApIHtcbiAgICB2YXIgZXZlbnQgPSBuZXcgU3ludGhldGljRXZlbnQoJ29uQ2hhbmdlJywgJ2NoYW5nZScsIG51bGwsIG5hdGl2ZUV2ZW50LCB0YXJnZXQpO1xuICAgIGRpc3BhdGNoUXVldWUucHVzaCh7XG4gICAgICBldmVudDogZXZlbnQsXG4gICAgICBsaXN0ZW5lcnM6IGxpc3RlbmVyc1xuICAgIH0pO1xuICB9XG59XG4vKipcbiAqIEZvciBJRSBzaGltc1xuICovXG5cblxudmFyIGFjdGl2ZUVsZW1lbnQgPSBudWxsO1xudmFyIGFjdGl2ZUVsZW1lbnRJbnN0ID0gbnVsbDtcbi8qKlxuICogU0VDVElPTjogaGFuZGxlIGBjaGFuZ2VgIGV2ZW50XG4gKi9cblxuZnVuY3Rpb24gc2hvdWxkVXNlQ2hhbmdlRXZlbnQoZWxlbSkge1xuICB2YXIgbm9kZU5hbWUgPSBlbGVtLm5vZGVOYW1lICYmIGVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgcmV0dXJuIG5vZGVOYW1lID09PSAnc2VsZWN0JyB8fCBub2RlTmFtZSA9PT0gJ2lucHV0JyAmJiBlbGVtLnR5cGUgPT09ICdmaWxlJztcbn1cblxuZnVuY3Rpb24gbWFudWFsRGlzcGF0Y2hDaGFuZ2VFdmVudChuYXRpdmVFdmVudCkge1xuICB2YXIgZGlzcGF0Y2hRdWV1ZSA9IFtdO1xuICBjcmVhdGVBbmRBY2N1bXVsYXRlQ2hhbmdlRXZlbnQoZGlzcGF0Y2hRdWV1ZSwgYWN0aXZlRWxlbWVudEluc3QsIG5hdGl2ZUV2ZW50LCBnZXRFdmVudFRhcmdldChuYXRpdmVFdmVudCkpOyAvLyBJZiBjaGFuZ2UgYW5kIHByb3BlcnR5Y2hhbmdlIGJ1YmJsZWQsIHdlJ2QganVzdCBiaW5kIHRvIGl0IGxpa2UgYWxsIHRoZVxuICAvLyBvdGhlciBldmVudHMgYW5kIGhhdmUgaXQgZ28gdGhyb3VnaCBSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXIuIFNpbmNlIGl0XG4gIC8vIGRvZXNuJ3QsIHdlIG1hbnVhbGx5IGxpc3RlbiBmb3IgdGhlIGV2ZW50cyBhbmQgc28gd2UgaGF2ZSB0byBlbnF1ZXVlIGFuZFxuICAvLyBwcm9jZXNzIHRoZSBhYnN0cmFjdCBldmVudCBtYW51YWxseS5cbiAgLy9cbiAgLy8gQmF0Y2hpbmcgaXMgbmVjZXNzYXJ5IGhlcmUgaW4gb3JkZXIgdG8gZW5zdXJlIHRoYXQgYWxsIGV2ZW50IGhhbmRsZXJzIHJ1blxuICAvLyBiZWZvcmUgdGhlIG5leHQgcmVyZW5kZXIgKGluY2x1ZGluZyBldmVudCBoYW5kbGVycyBhdHRhY2hlZCB0byBhbmNlc3RvclxuICAvLyBlbGVtZW50cyBpbnN0ZWFkIG9mIGRpcmVjdGx5IG9uIHRoZSBpbnB1dCkuIFdpdGhvdXQgdGhpcywgY29udHJvbGxlZFxuICAvLyBjb21wb25lbnRzIGRvbid0IHdvcmsgcHJvcGVybHkgaW4gY29uanVuY3Rpb24gd2l0aCBldmVudCBidWJibGluZyBiZWNhdXNlXG4gIC8vIHRoZSBjb21wb25lbnQgaXMgcmVyZW5kZXJlZCBhbmQgdGhlIHZhbHVlIHJldmVydGVkIGJlZm9yZSBhbGwgdGhlIGV2ZW50XG4gIC8vIGhhbmRsZXJzIGNhbiBydW4uIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzcwOC5cblxuICBiYXRjaGVkVXBkYXRlcyhydW5FdmVudEluQmF0Y2gsIGRpc3BhdGNoUXVldWUpO1xufVxuXG5mdW5jdGlvbiBydW5FdmVudEluQmF0Y2goZGlzcGF0Y2hRdWV1ZSkge1xuICBwcm9jZXNzRGlzcGF0Y2hRdWV1ZShkaXNwYXRjaFF1ZXVlLCAwKTtcbn1cblxuZnVuY3Rpb24gZ2V0SW5zdElmVmFsdWVDaGFuZ2VkKHRhcmdldEluc3QpIHtcbiAgdmFyIHRhcmdldE5vZGUgPSBnZXROb2RlRnJvbUluc3RhbmNlKHRhcmdldEluc3QpO1xuXG4gIGlmICh1cGRhdGVWYWx1ZUlmQ2hhbmdlZCh0YXJnZXROb2RlKSkge1xuICAgIHJldHVybiB0YXJnZXRJbnN0O1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldFRhcmdldEluc3RGb3JDaGFuZ2VFdmVudChkb21FdmVudE5hbWUsIHRhcmdldEluc3QpIHtcbiAgaWYgKGRvbUV2ZW50TmFtZSA9PT0gJ2NoYW5nZScpIHtcbiAgICByZXR1cm4gdGFyZ2V0SW5zdDtcbiAgfVxufVxuLyoqXG4gKiBTRUNUSU9OOiBoYW5kbGUgYGlucHV0YCBldmVudFxuICovXG5cblxudmFyIGlzSW5wdXRFdmVudFN1cHBvcnRlZCA9IGZhbHNlO1xuXG5pZiAoY2FuVXNlRE9NKSB7XG4gIC8vIElFOSBjbGFpbXMgdG8gc3VwcG9ydCB0aGUgaW5wdXQgZXZlbnQgYnV0IGZhaWxzIHRvIHRyaWdnZXIgaXQgd2hlblxuICAvLyBkZWxldGluZyB0ZXh0LCBzbyB3ZSBpZ25vcmUgaXRzIGlucHV0IGV2ZW50cy5cbiAgaXNJbnB1dEV2ZW50U3VwcG9ydGVkID0gaXNFdmVudFN1cHBvcnRlZCgnaW5wdXQnKSAmJiAoIWRvY3VtZW50LmRvY3VtZW50TW9kZSB8fCBkb2N1bWVudC5kb2N1bWVudE1vZGUgPiA5KTtcbn1cbi8qKlxuICogKEZvciBJRSA8PTkpIFN0YXJ0cyB0cmFja2luZyBwcm9wZXJ0eWNoYW5nZSBldmVudHMgb24gdGhlIHBhc3NlZC1pbiBlbGVtZW50XG4gKiBhbmQgb3ZlcnJpZGUgdGhlIHZhbHVlIHByb3BlcnR5IHNvIHRoYXQgd2UgY2FuIGRpc3Rpbmd1aXNoIHVzZXIgZXZlbnRzIGZyb21cbiAqIHZhbHVlIGNoYW5nZXMgaW4gSlMuXG4gKi9cblxuXG5mdW5jdGlvbiBzdGFydFdhdGNoaW5nRm9yVmFsdWVDaGFuZ2UodGFyZ2V0LCB0YXJnZXRJbnN0KSB7XG4gIGFjdGl2ZUVsZW1lbnQgPSB0YXJnZXQ7XG4gIGFjdGl2ZUVsZW1lbnRJbnN0ID0gdGFyZ2V0SW5zdDtcbiAgYWN0aXZlRWxlbWVudC5hdHRhY2hFdmVudCgnb25wcm9wZXJ0eWNoYW5nZScsIGhhbmRsZVByb3BlcnR5Q2hhbmdlKTtcbn1cbi8qKlxuICogKEZvciBJRSA8PTkpIFJlbW92ZXMgdGhlIGV2ZW50IGxpc3RlbmVycyBmcm9tIHRoZSBjdXJyZW50bHktdHJhY2tlZCBlbGVtZW50LFxuICogaWYgYW55IGV4aXN0cy5cbiAqL1xuXG5cbmZ1bmN0aW9uIHN0b3BXYXRjaGluZ0ZvclZhbHVlQ2hhbmdlKCkge1xuICBpZiAoIWFjdGl2ZUVsZW1lbnQpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBhY3RpdmVFbGVtZW50LmRldGFjaEV2ZW50KCdvbnByb3BlcnR5Y2hhbmdlJywgaGFuZGxlUHJvcGVydHlDaGFuZ2UpO1xuICBhY3RpdmVFbGVtZW50ID0gbnVsbDtcbiAgYWN0aXZlRWxlbWVudEluc3QgPSBudWxsO1xufVxuLyoqXG4gKiAoRm9yIElFIDw9OSkgSGFuZGxlcyBhIHByb3BlcnR5Y2hhbmdlIGV2ZW50LCBzZW5kaW5nIGEgYGNoYW5nZWAgZXZlbnQgaWZcbiAqIHRoZSB2YWx1ZSBvZiB0aGUgYWN0aXZlIGVsZW1lbnQgaGFzIGNoYW5nZWQuXG4gKi9cblxuXG5mdW5jdGlvbiBoYW5kbGVQcm9wZXJ0eUNoYW5nZShuYXRpdmVFdmVudCkge1xuICBpZiAobmF0aXZlRXZlbnQucHJvcGVydHlOYW1lICE9PSAndmFsdWUnKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKGdldEluc3RJZlZhbHVlQ2hhbmdlZChhY3RpdmVFbGVtZW50SW5zdCkpIHtcbiAgICBtYW51YWxEaXNwYXRjaENoYW5nZUV2ZW50KG5hdGl2ZUV2ZW50KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBoYW5kbGVFdmVudHNGb3JJbnB1dEV2ZW50UG9seWZpbGwoZG9tRXZlbnROYW1lLCB0YXJnZXQsIHRhcmdldEluc3QpIHtcbiAgaWYgKGRvbUV2ZW50TmFtZSA9PT0gJ2ZvY3VzaW4nKSB7XG4gICAgLy8gSW4gSUU5LCBwcm9wZXJ0eWNoYW5nZSBmaXJlcyBmb3IgbW9zdCBpbnB1dCBldmVudHMgYnV0IGlzIGJ1Z2d5IGFuZFxuICAgIC8vIGRvZXNuJ3QgZmlyZSB3aGVuIHRleHQgaXMgZGVsZXRlZCwgYnV0IGNvbnZlbmllbnRseSwgc2VsZWN0aW9uY2hhbmdlXG4gICAgLy8gYXBwZWFycyB0byBmaXJlIGluIGFsbCBvZiB0aGUgcmVtYWluaW5nIGNhc2VzIHNvIHdlIGNhdGNoIHRob3NlIGFuZFxuICAgIC8vIGZvcndhcmQgdGhlIGV2ZW50IGlmIHRoZSB2YWx1ZSBoYXMgY2hhbmdlZFxuICAgIC8vIEluIGVpdGhlciBjYXNlLCB3ZSBkb24ndCB3YW50IHRvIGNhbGwgdGhlIGV2ZW50IGhhbmRsZXIgaWYgdGhlIHZhbHVlXG4gICAgLy8gaXMgY2hhbmdlZCBmcm9tIEpTIHNvIHdlIHJlZGVmaW5lIGEgc2V0dGVyIGZvciBgLnZhbHVlYCB0aGF0IHVwZGF0ZXNcbiAgICAvLyBvdXIgYWN0aXZlRWxlbWVudFZhbHVlIHZhcmlhYmxlLCBhbGxvd2luZyB1cyB0byBpZ25vcmUgdGhvc2UgY2hhbmdlc1xuICAgIC8vXG4gICAgLy8gc3RvcFdhdGNoaW5nKCkgc2hvdWxkIGJlIGEgbm9vcCBoZXJlIGJ1dCB3ZSBjYWxsIGl0IGp1c3QgaW4gY2FzZSB3ZVxuICAgIC8vIG1pc3NlZCBhIGJsdXIgZXZlbnQgc29tZWhvdy5cbiAgICBzdG9wV2F0Y2hpbmdGb3JWYWx1ZUNoYW5nZSgpO1xuICAgIHN0YXJ0V2F0Y2hpbmdGb3JWYWx1ZUNoYW5nZSh0YXJnZXQsIHRhcmdldEluc3QpO1xuICB9IGVsc2UgaWYgKGRvbUV2ZW50TmFtZSA9PT0gJ2ZvY3Vzb3V0Jykge1xuICAgIHN0b3BXYXRjaGluZ0ZvclZhbHVlQ2hhbmdlKCk7XG4gIH1cbn0gLy8gRm9yIElFOCBhbmQgSUU5LlxuXG5cbmZ1bmN0aW9uIGdldFRhcmdldEluc3RGb3JJbnB1dEV2ZW50UG9seWZpbGwoZG9tRXZlbnROYW1lLCB0YXJnZXRJbnN0KSB7XG4gIGlmIChkb21FdmVudE5hbWUgPT09ICdzZWxlY3Rpb25jaGFuZ2UnIHx8IGRvbUV2ZW50TmFtZSA9PT0gJ2tleXVwJyB8fCBkb21FdmVudE5hbWUgPT09ICdrZXlkb3duJykge1xuICAgIC8vIE9uIHRoZSBzZWxlY3Rpb25jaGFuZ2UgZXZlbnQsIHRoZSB0YXJnZXQgaXMganVzdCBkb2N1bWVudCB3aGljaCBpc24ndFxuICAgIC8vIGhlbHBmdWwgZm9yIHVzIHNvIGp1c3QgY2hlY2sgYWN0aXZlRWxlbWVudCBpbnN0ZWFkLlxuICAgIC8vXG4gICAgLy8gOTklIG9mIHRoZSB0aW1lLCBrZXlkb3duIGFuZCBrZXl1cCBhcmVuJ3QgbmVjZXNzYXJ5LiBJRTggZmFpbHMgdG8gZmlyZVxuICAgIC8vIHByb3BlcnR5Y2hhbmdlIG9uIHRoZSBmaXJzdCBpbnB1dCBldmVudCBhZnRlciBzZXR0aW5nIGB2YWx1ZWAgZnJvbSBhXG4gICAgLy8gc2NyaXB0IGFuZCBmaXJlcyBvbmx5IGtleWRvd24sIGtleXByZXNzLCBrZXl1cC4gQ2F0Y2hpbmcga2V5dXAgdXN1YWxseVxuICAgIC8vIGdldHMgaXQgYW5kIGNhdGNoaW5nIGtleWRvd24gbGV0cyB1cyBmaXJlIGFuIGV2ZW50IGZvciB0aGUgZmlyc3RcbiAgICAvLyBrZXlzdHJva2UgaWYgdXNlciBkb2VzIGEga2V5IHJlcGVhdCAoaXQnbGwgYmUgYSBsaXR0bGUgZGVsYXllZDogcmlnaHRcbiAgICAvLyBiZWZvcmUgdGhlIHNlY29uZCBrZXlzdHJva2UpLiBPdGhlciBpbnB1dCBtZXRob2RzIChlLmcuLCBwYXN0ZSkgc2VlbSB0b1xuICAgIC8vIGZpcmUgc2VsZWN0aW9uY2hhbmdlIG5vcm1hbGx5LlxuICAgIHJldHVybiBnZXRJbnN0SWZWYWx1ZUNoYW5nZWQoYWN0aXZlRWxlbWVudEluc3QpO1xuICB9XG59XG4vKipcbiAqIFNFQ1RJT046IGhhbmRsZSBgY2xpY2tgIGV2ZW50XG4gKi9cblxuXG5mdW5jdGlvbiBzaG91bGRVc2VDbGlja0V2ZW50KGVsZW0pIHtcbiAgLy8gVXNlIHRoZSBgY2xpY2tgIGV2ZW50IHRvIGRldGVjdCBjaGFuZ2VzIHRvIGNoZWNrYm94IGFuZCByYWRpbyBpbnB1dHMuXG4gIC8vIFRoaXMgYXBwcm9hY2ggd29ya3MgYWNyb3NzIGFsbCBicm93c2Vycywgd2hlcmVhcyBgY2hhbmdlYCBkb2VzIG5vdCBmaXJlXG4gIC8vIHVudGlsIGBibHVyYCBpbiBJRTguXG4gIHZhciBub2RlTmFtZSA9IGVsZW0ubm9kZU5hbWU7XG4gIHJldHVybiBub2RlTmFtZSAmJiBub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnaW5wdXQnICYmIChlbGVtLnR5cGUgPT09ICdjaGVja2JveCcgfHwgZWxlbS50eXBlID09PSAncmFkaW8nKTtcbn1cblxuZnVuY3Rpb24gZ2V0VGFyZ2V0SW5zdEZvckNsaWNrRXZlbnQoZG9tRXZlbnROYW1lLCB0YXJnZXRJbnN0KSB7XG4gIGlmIChkb21FdmVudE5hbWUgPT09ICdjbGljaycpIHtcbiAgICByZXR1cm4gZ2V0SW5zdElmVmFsdWVDaGFuZ2VkKHRhcmdldEluc3QpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldFRhcmdldEluc3RGb3JJbnB1dE9yQ2hhbmdlRXZlbnQoZG9tRXZlbnROYW1lLCB0YXJnZXRJbnN0KSB7XG4gIGlmIChkb21FdmVudE5hbWUgPT09ICdpbnB1dCcgfHwgZG9tRXZlbnROYW1lID09PSAnY2hhbmdlJykge1xuICAgIHJldHVybiBnZXRJbnN0SWZWYWx1ZUNoYW5nZWQodGFyZ2V0SW5zdCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaGFuZGxlQ29udHJvbGxlZElucHV0Qmx1cihub2RlKSB7XG4gIHZhciBzdGF0ZSA9IG5vZGUuX3dyYXBwZXJTdGF0ZTtcblxuICBpZiAoIXN0YXRlIHx8ICFzdGF0ZS5jb250cm9sbGVkIHx8IG5vZGUudHlwZSAhPT0gJ251bWJlcicpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICB7XG4gICAgLy8gSWYgY29udHJvbGxlZCwgYXNzaWduIHRoZSB2YWx1ZSBhdHRyaWJ1dGUgdG8gdGhlIGN1cnJlbnQgdmFsdWUgb24gYmx1clxuICAgIHNldERlZmF1bHRWYWx1ZShub2RlLCAnbnVtYmVyJywgbm9kZS52YWx1ZSk7XG4gIH1cbn1cbi8qKlxuICogVGhpcyBwbHVnaW4gY3JlYXRlcyBhbiBgb25DaGFuZ2VgIGV2ZW50IHRoYXQgbm9ybWFsaXplcyBjaGFuZ2UgZXZlbnRzXG4gKiBhY3Jvc3MgZm9ybSBlbGVtZW50cy4gVGhpcyBldmVudCBmaXJlcyBhdCBhIHRpbWUgd2hlbiBpdCdzIHBvc3NpYmxlIHRvXG4gKiBjaGFuZ2UgdGhlIGVsZW1lbnQncyB2YWx1ZSB3aXRob3V0IHNlZWluZyBhIGZsaWNrZXIuXG4gKlxuICogU3VwcG9ydGVkIGVsZW1lbnRzIGFyZTpcbiAqIC0gaW5wdXQgKHNlZSBgaXNUZXh0SW5wdXRFbGVtZW50YClcbiAqIC0gdGV4dGFyZWFcbiAqIC0gc2VsZWN0XG4gKi9cblxuXG5mdW5jdGlvbiBleHRyYWN0RXZlbnRzJDEoZGlzcGF0Y2hRdWV1ZSwgZG9tRXZlbnROYW1lLCB0YXJnZXRJbnN0LCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQsIGV2ZW50U3lzdGVtRmxhZ3MsIHRhcmdldENvbnRhaW5lcikge1xuICB2YXIgdGFyZ2V0Tm9kZSA9IHRhcmdldEluc3QgPyBnZXROb2RlRnJvbUluc3RhbmNlKHRhcmdldEluc3QpIDogd2luZG93O1xuICB2YXIgZ2V0VGFyZ2V0SW5zdEZ1bmMsIGhhbmRsZUV2ZW50RnVuYztcblxuICBpZiAoc2hvdWxkVXNlQ2hhbmdlRXZlbnQodGFyZ2V0Tm9kZSkpIHtcbiAgICBnZXRUYXJnZXRJbnN0RnVuYyA9IGdldFRhcmdldEluc3RGb3JDaGFuZ2VFdmVudDtcbiAgfSBlbHNlIGlmIChpc1RleHRJbnB1dEVsZW1lbnQodGFyZ2V0Tm9kZSkpIHtcbiAgICBpZiAoaXNJbnB1dEV2ZW50U3VwcG9ydGVkKSB7XG4gICAgICBnZXRUYXJnZXRJbnN0RnVuYyA9IGdldFRhcmdldEluc3RGb3JJbnB1dE9yQ2hhbmdlRXZlbnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGdldFRhcmdldEluc3RGdW5jID0gZ2V0VGFyZ2V0SW5zdEZvcklucHV0RXZlbnRQb2x5ZmlsbDtcbiAgICAgIGhhbmRsZUV2ZW50RnVuYyA9IGhhbmRsZUV2ZW50c0ZvcklucHV0RXZlbnRQb2x5ZmlsbDtcbiAgICB9XG4gIH0gZWxzZSBpZiAoc2hvdWxkVXNlQ2xpY2tFdmVudCh0YXJnZXROb2RlKSkge1xuICAgIGdldFRhcmdldEluc3RGdW5jID0gZ2V0VGFyZ2V0SW5zdEZvckNsaWNrRXZlbnQ7XG4gIH1cblxuICBpZiAoZ2V0VGFyZ2V0SW5zdEZ1bmMpIHtcbiAgICB2YXIgaW5zdCA9IGdldFRhcmdldEluc3RGdW5jKGRvbUV2ZW50TmFtZSwgdGFyZ2V0SW5zdCk7XG5cbiAgICBpZiAoaW5zdCkge1xuICAgICAgY3JlYXRlQW5kQWNjdW11bGF0ZUNoYW5nZUV2ZW50KGRpc3BhdGNoUXVldWUsIGluc3QsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgaWYgKGhhbmRsZUV2ZW50RnVuYykge1xuICAgIGhhbmRsZUV2ZW50RnVuYyhkb21FdmVudE5hbWUsIHRhcmdldE5vZGUsIHRhcmdldEluc3QpO1xuICB9IC8vIFdoZW4gYmx1cnJpbmcsIHNldCB0aGUgdmFsdWUgYXR0cmlidXRlIGZvciBudW1iZXIgaW5wdXRzXG5cblxuICBpZiAoZG9tRXZlbnROYW1lID09PSAnZm9jdXNvdXQnKSB7XG4gICAgaGFuZGxlQ29udHJvbGxlZElucHV0Qmx1cih0YXJnZXROb2RlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZWdpc3RlckV2ZW50cyQyKCkge1xuICByZWdpc3RlckRpcmVjdEV2ZW50KCdvbk1vdXNlRW50ZXInLCBbJ21vdXNlb3V0JywgJ21vdXNlb3ZlciddKTtcbiAgcmVnaXN0ZXJEaXJlY3RFdmVudCgnb25Nb3VzZUxlYXZlJywgWydtb3VzZW91dCcsICdtb3VzZW92ZXInXSk7XG4gIHJlZ2lzdGVyRGlyZWN0RXZlbnQoJ29uUG9pbnRlckVudGVyJywgWydwb2ludGVyb3V0JywgJ3BvaW50ZXJvdmVyJ10pO1xuICByZWdpc3RlckRpcmVjdEV2ZW50KCdvblBvaW50ZXJMZWF2ZScsIFsncG9pbnRlcm91dCcsICdwb2ludGVyb3ZlciddKTtcbn1cbi8qKlxuICogRm9yIGFsbW9zdCBldmVyeSBpbnRlcmFjdGlvbiB3ZSBjYXJlIGFib3V0LCB0aGVyZSB3aWxsIGJlIGJvdGggYSB0b3AtbGV2ZWxcbiAqIGBtb3VzZW92ZXJgIGFuZCBgbW91c2VvdXRgIGV2ZW50IHRoYXQgb2NjdXJzLiBPbmx5IHVzZSBgbW91c2VvdXRgIHNvIHRoYXRcbiAqIHdlIGRvIG5vdCBleHRyYWN0IGR1cGxpY2F0ZSBldmVudHMuIEhvd2V2ZXIsIG1vdmluZyB0aGUgbW91c2UgaW50byB0aGVcbiAqIGJyb3dzZXIgZnJvbSBvdXRzaWRlIHdpbGwgbm90IGZpcmUgYSBgbW91c2VvdXRgIGV2ZW50LiBJbiB0aGlzIGNhc2UsIHdlIHVzZVxuICogdGhlIGBtb3VzZW92ZXJgIHRvcC1sZXZlbCBldmVudC5cbiAqL1xuXG5cbmZ1bmN0aW9uIGV4dHJhY3RFdmVudHMkMihkaXNwYXRjaFF1ZXVlLCBkb21FdmVudE5hbWUsIHRhcmdldEluc3QsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCwgZXZlbnRTeXN0ZW1GbGFncywgdGFyZ2V0Q29udGFpbmVyKSB7XG4gIHZhciBpc092ZXJFdmVudCA9IGRvbUV2ZW50TmFtZSA9PT0gJ21vdXNlb3ZlcicgfHwgZG9tRXZlbnROYW1lID09PSAncG9pbnRlcm92ZXInO1xuICB2YXIgaXNPdXRFdmVudCA9IGRvbUV2ZW50TmFtZSA9PT0gJ21vdXNlb3V0JyB8fCBkb21FdmVudE5hbWUgPT09ICdwb2ludGVyb3V0JztcblxuICBpZiAoaXNPdmVyRXZlbnQgJiYgKGV2ZW50U3lzdGVtRmxhZ3MgJiBJU19SRVBMQVlFRCkgPT09IDApIHtcbiAgICAvLyBJZiB0aGlzIGlzIGFuIG92ZXIgZXZlbnQgd2l0aCBhIHRhcmdldCwgd2UgbWlnaHQgaGF2ZSBhbHJlYWR5IGRpc3BhdGNoZWRcbiAgICAvLyB0aGUgZXZlbnQgaW4gdGhlIG91dCBldmVudCBvZiB0aGUgb3RoZXIgdGFyZ2V0LiBJZiB0aGlzIGlzIHJlcGxheWVkLFxuICAgIC8vIHRoZW4gaXQncyBiZWNhdXNlIHdlIGNvdWxkbid0IGRpc3BhdGNoIGFnYWluc3QgdGhpcyB0YXJnZXQgcHJldmlvdXNseVxuICAgIC8vIHNvIHdlIGhhdmUgdG8gZG8gaXQgbm93IGluc3RlYWQuXG4gICAgdmFyIHJlbGF0ZWQgPSBuYXRpdmVFdmVudC5yZWxhdGVkVGFyZ2V0IHx8IG5hdGl2ZUV2ZW50LmZyb21FbGVtZW50O1xuXG4gICAgaWYgKHJlbGF0ZWQpIHtcbiAgICAgIC8vIElmIHRoZSByZWxhdGVkIG5vZGUgaXMgbWFuYWdlZCBieSBSZWFjdCwgd2UgY2FuIGFzc3VtZSB0aGF0IHdlIGhhdmVcbiAgICAgIC8vIGFscmVhZHkgZGlzcGF0Y2hlZCB0aGUgY29ycmVzcG9uZGluZyBldmVudHMgZHVyaW5nIGl0cyBtb3VzZW91dC5cbiAgICAgIGlmIChnZXRDbG9zZXN0SW5zdGFuY2VGcm9tTm9kZShyZWxhdGVkKSB8fCBpc0NvbnRhaW5lck1hcmtlZEFzUm9vdChyZWxhdGVkKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKCFpc091dEV2ZW50ICYmICFpc092ZXJFdmVudCkge1xuICAgIC8vIE11c3Qgbm90IGJlIGEgbW91c2Ugb3IgcG9pbnRlciBpbiBvciBvdXQgLSBpZ25vcmluZy5cbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgd2luOyAvLyBUT0RPOiB3aHkgaXMgdGhpcyBudWxsYWJsZSBpbiB0aGUgdHlwZXMgYnV0IHdlIHJlYWQgZnJvbSBpdD9cblxuICBpZiAobmF0aXZlRXZlbnRUYXJnZXQud2luZG93ID09PSBuYXRpdmVFdmVudFRhcmdldCkge1xuICAgIC8vIGBuYXRpdmVFdmVudFRhcmdldGAgaXMgcHJvYmFibHkgYSB3aW5kb3cgb2JqZWN0LlxuICAgIHdpbiA9IG5hdGl2ZUV2ZW50VGFyZ2V0O1xuICB9IGVsc2Uge1xuICAgIC8vIFRPRE86IEZpZ3VyZSBvdXQgd2h5IGBvd25lckRvY3VtZW50YCBpcyBzb21ldGltZXMgdW5kZWZpbmVkIGluIElFOC5cbiAgICB2YXIgZG9jID0gbmF0aXZlRXZlbnRUYXJnZXQub3duZXJEb2N1bWVudDtcblxuICAgIGlmIChkb2MpIHtcbiAgICAgIHdpbiA9IGRvYy5kZWZhdWx0VmlldyB8fCBkb2MucGFyZW50V2luZG93O1xuICAgIH0gZWxzZSB7XG4gICAgICB3aW4gPSB3aW5kb3c7XG4gICAgfVxuICB9XG5cbiAgdmFyIGZyb207XG4gIHZhciB0bztcblxuICBpZiAoaXNPdXRFdmVudCkge1xuICAgIHZhciBfcmVsYXRlZCA9IG5hdGl2ZUV2ZW50LnJlbGF0ZWRUYXJnZXQgfHwgbmF0aXZlRXZlbnQudG9FbGVtZW50O1xuXG4gICAgZnJvbSA9IHRhcmdldEluc3Q7XG4gICAgdG8gPSBfcmVsYXRlZCA/IGdldENsb3Nlc3RJbnN0YW5jZUZyb21Ob2RlKF9yZWxhdGVkKSA6IG51bGw7XG5cbiAgICBpZiAodG8gIT09IG51bGwpIHtcbiAgICAgIHZhciBuZWFyZXN0TW91bnRlZCA9IGdldE5lYXJlc3RNb3VudGVkRmliZXIodG8pO1xuXG4gICAgICBpZiAodG8gIT09IG5lYXJlc3RNb3VudGVkIHx8IHRvLnRhZyAhPT0gSG9zdENvbXBvbmVudCAmJiB0by50YWcgIT09IEhvc3RUZXh0KSB7XG4gICAgICAgIHRvID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gTW92aW5nIHRvIGEgbm9kZSBmcm9tIG91dHNpZGUgdGhlIHdpbmRvdy5cbiAgICBmcm9tID0gbnVsbDtcbiAgICB0byA9IHRhcmdldEluc3Q7XG4gIH1cblxuICBpZiAoZnJvbSA9PT0gdG8pIHtcbiAgICAvLyBOb3RoaW5nIHBlcnRhaW5zIHRvIG91ciBtYW5hZ2VkIGNvbXBvbmVudHMuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdmFyIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY01vdXNlRXZlbnQ7XG4gIHZhciBsZWF2ZUV2ZW50VHlwZSA9ICdvbk1vdXNlTGVhdmUnO1xuICB2YXIgZW50ZXJFdmVudFR5cGUgPSAnb25Nb3VzZUVudGVyJztcbiAgdmFyIGV2ZW50VHlwZVByZWZpeCA9ICdtb3VzZSc7XG5cbiAgaWYgKGRvbUV2ZW50TmFtZSA9PT0gJ3BvaW50ZXJvdXQnIHx8IGRvbUV2ZW50TmFtZSA9PT0gJ3BvaW50ZXJvdmVyJykge1xuICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY1BvaW50ZXJFdmVudDtcbiAgICBsZWF2ZUV2ZW50VHlwZSA9ICdvblBvaW50ZXJMZWF2ZSc7XG4gICAgZW50ZXJFdmVudFR5cGUgPSAnb25Qb2ludGVyRW50ZXInO1xuICAgIGV2ZW50VHlwZVByZWZpeCA9ICdwb2ludGVyJztcbiAgfVxuXG4gIHZhciBmcm9tTm9kZSA9IGZyb20gPT0gbnVsbCA/IHdpbiA6IGdldE5vZGVGcm9tSW5zdGFuY2UoZnJvbSk7XG4gIHZhciB0b05vZGUgPSB0byA9PSBudWxsID8gd2luIDogZ2V0Tm9kZUZyb21JbnN0YW5jZSh0byk7XG4gIHZhciBsZWF2ZSA9IG5ldyBTeW50aGV0aWNFdmVudEN0b3IobGVhdmVFdmVudFR5cGUsIGV2ZW50VHlwZVByZWZpeCArICdsZWF2ZScsIGZyb20sIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCk7XG4gIGxlYXZlLnRhcmdldCA9IGZyb21Ob2RlO1xuICBsZWF2ZS5yZWxhdGVkVGFyZ2V0ID0gdG9Ob2RlO1xuICB2YXIgZW50ZXIgPSBudWxsOyAvLyBXZSBzaG91bGQgb25seSBwcm9jZXNzIHRoaXMgbmF0aXZlRXZlbnQgaWYgd2UgYXJlIHByb2Nlc3NpbmdcbiAgLy8gdGhlIGZpcnN0IGFuY2VzdG9yLiBOZXh0IHRpbWUsIHdlIHdpbGwgaWdub3JlIHRoZSBldmVudC5cblxuICB2YXIgbmF0aXZlVGFyZ2V0SW5zdCA9IGdldENsb3Nlc3RJbnN0YW5jZUZyb21Ob2RlKG5hdGl2ZUV2ZW50VGFyZ2V0KTtcblxuICBpZiAobmF0aXZlVGFyZ2V0SW5zdCA9PT0gdGFyZ2V0SW5zdCkge1xuICAgIHZhciBlbnRlckV2ZW50ID0gbmV3IFN5bnRoZXRpY0V2ZW50Q3RvcihlbnRlckV2ZW50VHlwZSwgZXZlbnRUeXBlUHJlZml4ICsgJ2VudGVyJywgdG8sIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCk7XG4gICAgZW50ZXJFdmVudC50YXJnZXQgPSB0b05vZGU7XG4gICAgZW50ZXJFdmVudC5yZWxhdGVkVGFyZ2V0ID0gZnJvbU5vZGU7XG4gICAgZW50ZXIgPSBlbnRlckV2ZW50O1xuICB9XG5cbiAgYWNjdW11bGF0ZUVudGVyTGVhdmVUd29QaGFzZUxpc3RlbmVycyhkaXNwYXRjaFF1ZXVlLCBsZWF2ZSwgZW50ZXIsIGZyb20sIHRvKTtcbn1cblxuLyoqXG4gKiBpbmxpbmVkIE9iamVjdC5pcyBwb2x5ZmlsbCB0byBhdm9pZCByZXF1aXJpbmcgY29uc3VtZXJzIHNoaXAgdGhlaXIgb3duXG4gKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9PYmplY3QvaXNcbiAqL1xuZnVuY3Rpb24gaXMoeCwgeSkge1xuICByZXR1cm4geCA9PT0geSAmJiAoeCAhPT0gMCB8fCAxIC8geCA9PT0gMSAvIHkpIHx8IHggIT09IHggJiYgeSAhPT0geSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXNlbGYtY29tcGFyZVxuICA7XG59XG5cbnZhciBvYmplY3RJcyA9IHR5cGVvZiBPYmplY3QuaXMgPT09ICdmdW5jdGlvbicgPyBPYmplY3QuaXMgOiBpcztcblxudmFyIGhhc093blByb3BlcnR5JDIgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuLyoqXG4gKiBQZXJmb3JtcyBlcXVhbGl0eSBieSBpdGVyYXRpbmcgdGhyb3VnaCBrZXlzIG9uIGFuIG9iamVjdCBhbmQgcmV0dXJuaW5nIGZhbHNlXG4gKiB3aGVuIGFueSBrZXkgaGFzIHZhbHVlcyB3aGljaCBhcmUgbm90IHN0cmljdGx5IGVxdWFsIGJldHdlZW4gdGhlIGFyZ3VtZW50cy5cbiAqIFJldHVybnMgdHJ1ZSB3aGVuIHRoZSB2YWx1ZXMgb2YgYWxsIGtleXMgYXJlIHN0cmljdGx5IGVxdWFsLlxuICovXG5cbmZ1bmN0aW9uIHNoYWxsb3dFcXVhbChvYmpBLCBvYmpCKSB7XG4gIGlmIChvYmplY3RJcyhvYmpBLCBvYmpCKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBvYmpBICE9PSAnb2JqZWN0JyB8fCBvYmpBID09PSBudWxsIHx8IHR5cGVvZiBvYmpCICE9PSAnb2JqZWN0JyB8fCBvYmpCID09PSBudWxsKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgdmFyIGtleXNBID0gT2JqZWN0LmtleXMob2JqQSk7XG4gIHZhciBrZXlzQiA9IE9iamVjdC5rZXlzKG9iakIpO1xuXG4gIGlmIChrZXlzQS5sZW5ndGggIT09IGtleXNCLmxlbmd0aCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfSAvLyBUZXN0IGZvciBBJ3Mga2V5cyBkaWZmZXJlbnQgZnJvbSBCLlxuXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzQS5sZW5ndGg7IGkrKykge1xuICAgIGlmICghaGFzT3duUHJvcGVydHkkMi5jYWxsKG9iakIsIGtleXNBW2ldKSB8fCAhb2JqZWN0SXMob2JqQVtrZXlzQVtpXV0sIG9iakJba2V5c0FbaV1dKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG4vKipcbiAqIEdpdmVuIGFueSBub2RlIHJldHVybiB0aGUgZmlyc3QgbGVhZiBub2RlIHdpdGhvdXQgY2hpbGRyZW4uXG4gKlxuICogQHBhcmFtIHtET01FbGVtZW50fERPTVRleHROb2RlfSBub2RlXG4gKiBAcmV0dXJuIHtET01FbGVtZW50fERPTVRleHROb2RlfVxuICovXG5cbmZ1bmN0aW9uIGdldExlYWZOb2RlKG5vZGUpIHtcbiAgd2hpbGUgKG5vZGUgJiYgbm9kZS5maXJzdENoaWxkKSB7XG4gICAgbm9kZSA9IG5vZGUuZmlyc3RDaGlsZDtcbiAgfVxuXG4gIHJldHVybiBub2RlO1xufVxuLyoqXG4gKiBHZXQgdGhlIG5leHQgc2libGluZyB3aXRoaW4gYSBjb250YWluZXIuIFRoaXMgd2lsbCB3YWxrIHVwIHRoZVxuICogRE9NIGlmIGEgbm9kZSdzIHNpYmxpbmdzIGhhdmUgYmVlbiBleGhhdXN0ZWQuXG4gKlxuICogQHBhcmFtIHtET01FbGVtZW50fERPTVRleHROb2RlfSBub2RlXG4gKiBAcmV0dXJuIHs/RE9NRWxlbWVudHxET01UZXh0Tm9kZX1cbiAqL1xuXG5cbmZ1bmN0aW9uIGdldFNpYmxpbmdOb2RlKG5vZGUpIHtcbiAgd2hpbGUgKG5vZGUpIHtcbiAgICBpZiAobm9kZS5uZXh0U2libGluZykge1xuICAgICAgcmV0dXJuIG5vZGUubmV4dFNpYmxpbmc7XG4gICAgfVxuXG4gICAgbm9kZSA9IG5vZGUucGFyZW50Tm9kZTtcbiAgfVxufVxuLyoqXG4gKiBHZXQgb2JqZWN0IGRlc2NyaWJpbmcgdGhlIG5vZGVzIHdoaWNoIGNvbnRhaW4gY2hhcmFjdGVycyBhdCBvZmZzZXQuXG4gKlxuICogQHBhcmFtIHtET01FbGVtZW50fERPTVRleHROb2RlfSByb290XG4gKiBAcGFyYW0ge251bWJlcn0gb2Zmc2V0XG4gKiBAcmV0dXJuIHs/b2JqZWN0fVxuICovXG5cblxuZnVuY3Rpb24gZ2V0Tm9kZUZvckNoYXJhY3Rlck9mZnNldChyb290LCBvZmZzZXQpIHtcbiAgdmFyIG5vZGUgPSBnZXRMZWFmTm9kZShyb290KTtcbiAgdmFyIG5vZGVTdGFydCA9IDA7XG4gIHZhciBub2RlRW5kID0gMDtcblxuICB3aGlsZSAobm9kZSkge1xuICAgIGlmIChub2RlLm5vZGVUeXBlID09PSBURVhUX05PREUpIHtcbiAgICAgIG5vZGVFbmQgPSBub2RlU3RhcnQgKyBub2RlLnRleHRDb250ZW50Lmxlbmd0aDtcblxuICAgICAgaWYgKG5vZGVTdGFydCA8PSBvZmZzZXQgJiYgbm9kZUVuZCA+PSBvZmZzZXQpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBub2RlOiBub2RlLFxuICAgICAgICAgIG9mZnNldDogb2Zmc2V0IC0gbm9kZVN0YXJ0XG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIG5vZGVTdGFydCA9IG5vZGVFbmQ7XG4gICAgfVxuXG4gICAgbm9kZSA9IGdldExlYWZOb2RlKGdldFNpYmxpbmdOb2RlKG5vZGUpKTtcbiAgfVxufVxuXG4vKipcbiAqIEBwYXJhbSB7RE9NRWxlbWVudH0gb3V0ZXJOb2RlXG4gKiBAcmV0dXJuIHs/b2JqZWN0fVxuICovXG5cbmZ1bmN0aW9uIGdldE9mZnNldHMob3V0ZXJOb2RlKSB7XG4gIHZhciBvd25lckRvY3VtZW50ID0gb3V0ZXJOb2RlLm93bmVyRG9jdW1lbnQ7XG4gIHZhciB3aW4gPSBvd25lckRvY3VtZW50ICYmIG93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcgfHwgd2luZG93O1xuICB2YXIgc2VsZWN0aW9uID0gd2luLmdldFNlbGVjdGlvbiAmJiB3aW4uZ2V0U2VsZWN0aW9uKCk7XG5cbiAgaWYgKCFzZWxlY3Rpb24gfHwgc2VsZWN0aW9uLnJhbmdlQ291bnQgPT09IDApIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHZhciBhbmNob3JOb2RlID0gc2VsZWN0aW9uLmFuY2hvck5vZGUsXG4gICAgICBhbmNob3JPZmZzZXQgPSBzZWxlY3Rpb24uYW5jaG9yT2Zmc2V0LFxuICAgICAgZm9jdXNOb2RlID0gc2VsZWN0aW9uLmZvY3VzTm9kZSxcbiAgICAgIGZvY3VzT2Zmc2V0ID0gc2VsZWN0aW9uLmZvY3VzT2Zmc2V0OyAvLyBJbiBGaXJlZm94LCBhbmNob3JOb2RlIGFuZCBmb2N1c05vZGUgY2FuIGJlIFwiYW5vbnltb3VzIGRpdnNcIiwgZS5nLiB0aGVcbiAgLy8gdXAvZG93biBidXR0b25zIG9uIGFuIDxpbnB1dCB0eXBlPVwibnVtYmVyXCI+LiBBbm9ueW1vdXMgZGl2cyBkbyBub3Qgc2VlbSB0b1xuICAvLyBleHBvc2UgcHJvcGVydGllcywgdHJpZ2dlcmluZyBhIFwiUGVybWlzc2lvbiBkZW5pZWQgZXJyb3JcIiBpZiBhbnkgb2YgaXRzXG4gIC8vIHByb3BlcnRpZXMgYXJlIGFjY2Vzc2VkLiBUaGUgb25seSBzZWVtaW5nbHkgcG9zc2libGUgd2F5IHRvIGF2b2lkIGVycm9yaW5nXG4gIC8vIGlzIHRvIGFjY2VzcyBhIHByb3BlcnR5IHRoYXQgdHlwaWNhbGx5IHdvcmtzIGZvciBub24tYW5vbnltb3VzIGRpdnMgYW5kXG4gIC8vIGNhdGNoIGFueSBlcnJvciB0aGF0IG1heSBvdGhlcndpc2UgYXJpc2UuIFNlZVxuICAvLyBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg0MjdcblxuICB0cnkge1xuICAgIC8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC1leHByZXNzaW9ucyAqL1xuICAgIGFuY2hvck5vZGUubm9kZVR5cGU7XG4gICAgZm9jdXNOb2RlLm5vZGVUeXBlO1xuICAgIC8qIGVzbGludC1lbmFibGUgbm8tdW51c2VkLWV4cHJlc3Npb25zICovXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiBnZXRNb2Rlcm5PZmZzZXRzRnJvbVBvaW50cyhvdXRlck5vZGUsIGFuY2hvck5vZGUsIGFuY2hvck9mZnNldCwgZm9jdXNOb2RlLCBmb2N1c09mZnNldCk7XG59XG4vKipcbiAqIFJldHVybnMge3N0YXJ0LCBlbmR9IHdoZXJlIGBzdGFydGAgaXMgdGhlIGNoYXJhY3Rlci9jb2RlcG9pbnQgaW5kZXggb2ZcbiAqIChhbmNob3JOb2RlLCBhbmNob3JPZmZzZXQpIHdpdGhpbiB0aGUgdGV4dENvbnRlbnQgb2YgYG91dGVyTm9kZWAsIGFuZFxuICogYGVuZGAgaXMgdGhlIGluZGV4IG9mIChmb2N1c05vZGUsIGZvY3VzT2Zmc2V0KS5cbiAqXG4gKiBSZXR1cm5zIG51bGwgaWYgeW91IHBhc3MgaW4gZ2FyYmFnZSBpbnB1dCBidXQgd2Ugc2hvdWxkIHByb2JhYmx5IGp1c3QgY3Jhc2guXG4gKlxuICogRXhwb3J0ZWQgb25seSBmb3IgdGVzdGluZy5cbiAqL1xuXG5mdW5jdGlvbiBnZXRNb2Rlcm5PZmZzZXRzRnJvbVBvaW50cyhvdXRlck5vZGUsIGFuY2hvck5vZGUsIGFuY2hvck9mZnNldCwgZm9jdXNOb2RlLCBmb2N1c09mZnNldCkge1xuICB2YXIgbGVuZ3RoID0gMDtcbiAgdmFyIHN0YXJ0ID0gLTE7XG4gIHZhciBlbmQgPSAtMTtcbiAgdmFyIGluZGV4V2l0aGluQW5jaG9yID0gMDtcbiAgdmFyIGluZGV4V2l0aGluRm9jdXMgPSAwO1xuICB2YXIgbm9kZSA9IG91dGVyTm9kZTtcbiAgdmFyIHBhcmVudE5vZGUgPSBudWxsO1xuXG4gIG91dGVyOiB3aGlsZSAodHJ1ZSkge1xuICAgIHZhciBuZXh0ID0gbnVsbDtcblxuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICBpZiAobm9kZSA9PT0gYW5jaG9yTm9kZSAmJiAoYW5jaG9yT2Zmc2V0ID09PSAwIHx8IG5vZGUubm9kZVR5cGUgPT09IFRFWFRfTk9ERSkpIHtcbiAgICAgICAgc3RhcnQgPSBsZW5ndGggKyBhbmNob3JPZmZzZXQ7XG4gICAgICB9XG5cbiAgICAgIGlmIChub2RlID09PSBmb2N1c05vZGUgJiYgKGZvY3VzT2Zmc2V0ID09PSAwIHx8IG5vZGUubm9kZVR5cGUgPT09IFRFWFRfTk9ERSkpIHtcbiAgICAgICAgZW5kID0gbGVuZ3RoICsgZm9jdXNPZmZzZXQ7XG4gICAgICB9XG5cbiAgICAgIGlmIChub2RlLm5vZGVUeXBlID09PSBURVhUX05PREUpIHtcbiAgICAgICAgbGVuZ3RoICs9IG5vZGUubm9kZVZhbHVlLmxlbmd0aDtcbiAgICAgIH1cblxuICAgICAgaWYgKChuZXh0ID0gbm9kZS5maXJzdENoaWxkKSA9PT0gbnVsbCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH0gLy8gTW92aW5nIGZyb20gYG5vZGVgIHRvIGl0cyBmaXJzdCBjaGlsZCBgbmV4dGAuXG5cblxuICAgICAgcGFyZW50Tm9kZSA9IG5vZGU7XG4gICAgICBub2RlID0gbmV4dDtcbiAgICB9XG5cbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgaWYgKG5vZGUgPT09IG91dGVyTm9kZSkge1xuICAgICAgICAvLyBJZiBgb3V0ZXJOb2RlYCBoYXMgY2hpbGRyZW4sIHRoaXMgaXMgYWx3YXlzIHRoZSBzZWNvbmQgdGltZSB2aXNpdGluZ1xuICAgICAgICAvLyBpdC4gSWYgaXQgaGFzIG5vIGNoaWxkcmVuLCB0aGlzIGlzIHN0aWxsIHRoZSBmaXJzdCBsb29wLCBhbmQgdGhlIG9ubHlcbiAgICAgICAgLy8gdmFsaWQgc2VsZWN0aW9uIGlzIGFuY2hvck5vZGUgYW5kIGZvY3VzTm9kZSBib3RoIGVxdWFsIHRvIHRoaXMgbm9kZVxuICAgICAgICAvLyBhbmQgYm90aCBvZmZzZXRzIDAsIGluIHdoaWNoIGNhc2Ugd2Ugd2lsbCBoYXZlIGhhbmRsZWQgYWJvdmUuXG4gICAgICAgIGJyZWFrIG91dGVyO1xuICAgICAgfVxuXG4gICAgICBpZiAocGFyZW50Tm9kZSA9PT0gYW5jaG9yTm9kZSAmJiArK2luZGV4V2l0aGluQW5jaG9yID09PSBhbmNob3JPZmZzZXQpIHtcbiAgICAgICAgc3RhcnQgPSBsZW5ndGg7XG4gICAgICB9XG5cbiAgICAgIGlmIChwYXJlbnROb2RlID09PSBmb2N1c05vZGUgJiYgKytpbmRleFdpdGhpbkZvY3VzID09PSBmb2N1c09mZnNldCkge1xuICAgICAgICBlbmQgPSBsZW5ndGg7XG4gICAgICB9XG5cbiAgICAgIGlmICgobmV4dCA9IG5vZGUubmV4dFNpYmxpbmcpICE9PSBudWxsKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBub2RlID0gcGFyZW50Tm9kZTtcbiAgICAgIHBhcmVudE5vZGUgPSBub2RlLnBhcmVudE5vZGU7XG4gICAgfSAvLyBNb3ZpbmcgZnJvbSBgbm9kZWAgdG8gaXRzIG5leHQgc2libGluZyBgbmV4dGAuXG5cblxuICAgIG5vZGUgPSBuZXh0O1xuICB9XG5cbiAgaWYgKHN0YXJ0ID09PSAtMSB8fCBlbmQgPT09IC0xKSB7XG4gICAgLy8gVGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuLiAoV291bGQgaGFwcGVuIGlmIHRoZSBhbmNob3IvZm9jdXMgbm9kZXMgYXJlbid0XG4gICAgLy8gYWN0dWFsbHkgaW5zaWRlIHRoZSBwYXNzZWQtaW4gbm9kZS4pXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHN0YXJ0OiBzdGFydCxcbiAgICBlbmQ6IGVuZFxuICB9O1xufVxuLyoqXG4gKiBJbiBtb2Rlcm4gbm9uLUlFIGJyb3dzZXJzLCB3ZSBjYW4gc3VwcG9ydCBib3RoIGZvcndhcmQgYW5kIGJhY2t3YXJkXG4gKiBzZWxlY3Rpb25zLlxuICpcbiAqIE5vdGU6IElFMTArIHN1cHBvcnRzIHRoZSBTZWxlY3Rpb24gb2JqZWN0LCBidXQgaXQgZG9lcyBub3Qgc3VwcG9ydFxuICogdGhlIGBleHRlbmRgIG1ldGhvZCwgd2hpY2ggbWVhbnMgdGhhdCBldmVuIGluIG1vZGVybiBJRSwgaXQncyBub3QgcG9zc2libGVcbiAqIHRvIHByb2dyYW1tYXRpY2FsbHkgY3JlYXRlIGEgYmFja3dhcmQgc2VsZWN0aW9uLiBUaHVzLCBmb3IgYWxsIElFXG4gKiB2ZXJzaW9ucywgd2UgdXNlIHRoZSBvbGQgSUUgQVBJIHRvIGNyZWF0ZSBvdXIgc2VsZWN0aW9ucy5cbiAqXG4gKiBAcGFyYW0ge0RPTUVsZW1lbnR8RE9NVGV4dE5vZGV9IG5vZGVcbiAqIEBwYXJhbSB7b2JqZWN0fSBvZmZzZXRzXG4gKi9cblxuZnVuY3Rpb24gc2V0T2Zmc2V0cyhub2RlLCBvZmZzZXRzKSB7XG4gIHZhciBkb2MgPSBub2RlLm93bmVyRG9jdW1lbnQgfHwgZG9jdW1lbnQ7XG4gIHZhciB3aW4gPSBkb2MgJiYgZG9jLmRlZmF1bHRWaWV3IHx8IHdpbmRvdzsgLy8gRWRnZSBmYWlscyB3aXRoIFwiT2JqZWN0IGV4cGVjdGVkXCIgaW4gc29tZSBzY2VuYXJpb3MuXG4gIC8vIChGb3IgaW5zdGFuY2U6IFRpbnlNQ0UgZWRpdG9yIHVzZWQgaW4gYSBsaXN0IGNvbXBvbmVudCB0aGF0IHN1cHBvcnRzIHBhc3RpbmcgdG8gYWRkIG1vcmUsXG4gIC8vIGZhaWxzIHdoZW4gcGFzdGluZyAxMDArIGl0ZW1zKVxuXG4gIGlmICghd2luLmdldFNlbGVjdGlvbikge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciBzZWxlY3Rpb24gPSB3aW4uZ2V0U2VsZWN0aW9uKCk7XG4gIHZhciBsZW5ndGggPSBub2RlLnRleHRDb250ZW50Lmxlbmd0aDtcbiAgdmFyIHN0YXJ0ID0gTWF0aC5taW4ob2Zmc2V0cy5zdGFydCwgbGVuZ3RoKTtcbiAgdmFyIGVuZCA9IG9mZnNldHMuZW5kID09PSB1bmRlZmluZWQgPyBzdGFydCA6IE1hdGgubWluKG9mZnNldHMuZW5kLCBsZW5ndGgpOyAvLyBJRSAxMSB1c2VzIG1vZGVybiBzZWxlY3Rpb24sIGJ1dCBkb2Vzbid0IHN1cHBvcnQgdGhlIGV4dGVuZCBtZXRob2QuXG4gIC8vIEZsaXAgYmFja3dhcmQgc2VsZWN0aW9ucywgc28gd2UgY2FuIHNldCB3aXRoIGEgc2luZ2xlIHJhbmdlLlxuXG4gIGlmICghc2VsZWN0aW9uLmV4dGVuZCAmJiBzdGFydCA+IGVuZCkge1xuICAgIHZhciB0ZW1wID0gZW5kO1xuICAgIGVuZCA9IHN0YXJ0O1xuICAgIHN0YXJ0ID0gdGVtcDtcbiAgfVxuXG4gIHZhciBzdGFydE1hcmtlciA9IGdldE5vZGVGb3JDaGFyYWN0ZXJPZmZzZXQobm9kZSwgc3RhcnQpO1xuICB2YXIgZW5kTWFya2VyID0gZ2V0Tm9kZUZvckNoYXJhY3Rlck9mZnNldChub2RlLCBlbmQpO1xuXG4gIGlmIChzdGFydE1hcmtlciAmJiBlbmRNYXJrZXIpIHtcbiAgICBpZiAoc2VsZWN0aW9uLnJhbmdlQ291bnQgPT09IDEgJiYgc2VsZWN0aW9uLmFuY2hvck5vZGUgPT09IHN0YXJ0TWFya2VyLm5vZGUgJiYgc2VsZWN0aW9uLmFuY2hvck9mZnNldCA9PT0gc3RhcnRNYXJrZXIub2Zmc2V0ICYmIHNlbGVjdGlvbi5mb2N1c05vZGUgPT09IGVuZE1hcmtlci5ub2RlICYmIHNlbGVjdGlvbi5mb2N1c09mZnNldCA9PT0gZW5kTWFya2VyLm9mZnNldCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciByYW5nZSA9IGRvYy5jcmVhdGVSYW5nZSgpO1xuICAgIHJhbmdlLnNldFN0YXJ0KHN0YXJ0TWFya2VyLm5vZGUsIHN0YXJ0TWFya2VyLm9mZnNldCk7XG4gICAgc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpO1xuXG4gICAgaWYgKHN0YXJ0ID4gZW5kKSB7XG4gICAgICBzZWxlY3Rpb24uYWRkUmFuZ2UocmFuZ2UpO1xuICAgICAgc2VsZWN0aW9uLmV4dGVuZChlbmRNYXJrZXIubm9kZSwgZW5kTWFya2VyLm9mZnNldCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJhbmdlLnNldEVuZChlbmRNYXJrZXIubm9kZSwgZW5kTWFya2VyLm9mZnNldCk7XG4gICAgICBzZWxlY3Rpb24uYWRkUmFuZ2UocmFuZ2UpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBpc1RleHROb2RlKG5vZGUpIHtcbiAgcmV0dXJuIG5vZGUgJiYgbm9kZS5ub2RlVHlwZSA9PT0gVEVYVF9OT0RFO1xufVxuXG5mdW5jdGlvbiBjb250YWluc05vZGUob3V0ZXJOb2RlLCBpbm5lck5vZGUpIHtcbiAgaWYgKCFvdXRlck5vZGUgfHwgIWlubmVyTm9kZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfSBlbHNlIGlmIChvdXRlck5vZGUgPT09IGlubmVyTm9kZSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9IGVsc2UgaWYgKGlzVGV4dE5vZGUob3V0ZXJOb2RlKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfSBlbHNlIGlmIChpc1RleHROb2RlKGlubmVyTm9kZSkpIHtcbiAgICByZXR1cm4gY29udGFpbnNOb2RlKG91dGVyTm9kZSwgaW5uZXJOb2RlLnBhcmVudE5vZGUpO1xuICB9IGVsc2UgaWYgKCdjb250YWlucycgaW4gb3V0ZXJOb2RlKSB7XG4gICAgcmV0dXJuIG91dGVyTm9kZS5jb250YWlucyhpbm5lck5vZGUpO1xuICB9IGVsc2UgaWYgKG91dGVyTm9kZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbikge1xuICAgIHJldHVybiAhIShvdXRlck5vZGUuY29tcGFyZURvY3VtZW50UG9zaXRpb24oaW5uZXJOb2RlKSAmIDE2KTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNJbkRvY3VtZW50KG5vZGUpIHtcbiAgcmV0dXJuIG5vZGUgJiYgbm9kZS5vd25lckRvY3VtZW50ICYmIGNvbnRhaW5zTm9kZShub2RlLm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCBub2RlKTtcbn1cblxuZnVuY3Rpb24gaXNTYW1lT3JpZ2luRnJhbWUoaWZyYW1lKSB7XG4gIHRyeSB7XG4gICAgLy8gQWNjZXNzaW5nIHRoZSBjb250ZW50RG9jdW1lbnQgb2YgYSBIVE1MSWZyYW1lRWxlbWVudCBjYW4gY2F1c2UgdGhlIGJyb3dzZXJcbiAgICAvLyB0byB0aHJvdywgZS5nLiBpZiBpdCBoYXMgYSBjcm9zcy1vcmlnaW4gc3JjIGF0dHJpYnV0ZS5cbiAgICAvLyBTYWZhcmkgd2lsbCBzaG93IGFuIGVycm9yIGluIHRoZSBjb25zb2xlIHdoZW4gdGhlIGFjY2VzcyByZXN1bHRzIGluIFwiQmxvY2tlZCBhIGZyYW1lIHdpdGggb3JpZ2luXCIuIGUuZzpcbiAgICAvLyBpZnJhbWUuY29udGVudERvY3VtZW50LmRlZmF1bHRWaWV3O1xuICAgIC8vIEEgc2FmZXR5IHdheSBpcyB0byBhY2Nlc3Mgb25lIG9mIHRoZSBjcm9zcyBvcmlnaW4gcHJvcGVydGllczogV2luZG93IG9yIExvY2F0aW9uXG4gICAgLy8gV2hpY2ggbWlnaHQgcmVzdWx0IGluIFwiU2VjdXJpdHlFcnJvclwiIERPTSBFeGNlcHRpb24gYW5kIGl0IGlzIGNvbXBhdGlibGUgdG8gU2FmYXJpLlxuICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2Jyb3dzZXJzLmh0bWwjaW50ZWdyYXRpb24td2l0aC1pZGxcbiAgICByZXR1cm4gdHlwZW9mIGlmcmFtZS5jb250ZW50V2luZG93LmxvY2F0aW9uLmhyZWYgPT09ICdzdHJpbmcnO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0QWN0aXZlRWxlbWVudERlZXAoKSB7XG4gIHZhciB3aW4gPSB3aW5kb3c7XG4gIHZhciBlbGVtZW50ID0gZ2V0QWN0aXZlRWxlbWVudCgpO1xuXG4gIHdoaWxlIChlbGVtZW50IGluc3RhbmNlb2Ygd2luLkhUTUxJRnJhbWVFbGVtZW50KSB7XG4gICAgaWYgKGlzU2FtZU9yaWdpbkZyYW1lKGVsZW1lbnQpKSB7XG4gICAgICB3aW4gPSBlbGVtZW50LmNvbnRlbnRXaW5kb3c7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBlbGVtZW50O1xuICAgIH1cblxuICAgIGVsZW1lbnQgPSBnZXRBY3RpdmVFbGVtZW50KHdpbi5kb2N1bWVudCk7XG4gIH1cblxuICByZXR1cm4gZWxlbWVudDtcbn1cbi8qKlxuICogQFJlYWN0SW5wdXRTZWxlY3Rpb246IFJlYWN0IGlucHV0IHNlbGVjdGlvbiBtb2R1bGUuIEJhc2VkIG9uIFNlbGVjdGlvbi5qcyxcbiAqIGJ1dCBtb2RpZmllZCB0byBiZSBzdWl0YWJsZSBmb3IgcmVhY3QgYW5kIGhhcyBhIGNvdXBsZSBvZiBidWcgZml4ZXMgKGRvZXNuJ3RcbiAqIGFzc3VtZSBidXR0b25zIGhhdmUgcmFuZ2Ugc2VsZWN0aW9ucyBhbGxvd2VkKS5cbiAqIElucHV0IHNlbGVjdGlvbiBtb2R1bGUgZm9yIFJlYWN0LlxuICovXG5cbi8qKlxuICogQGhhc1NlbGVjdGlvbkNhcGFiaWxpdGllczogd2UgZ2V0IHRoZSBlbGVtZW50IHR5cGVzIHRoYXQgc3VwcG9ydCBzZWxlY3Rpb25cbiAqIGZyb20gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jZG8tbm90LWFwcGx5LCBsb29raW5nIGF0IGBzZWxlY3Rpb25TdGFydGBcbiAqIGFuZCBgc2VsZWN0aW9uRW5kYCByb3dzLlxuICovXG5cblxuZnVuY3Rpb24gaGFzU2VsZWN0aW9uQ2FwYWJpbGl0aWVzKGVsZW0pIHtcbiAgdmFyIG5vZGVOYW1lID0gZWxlbSAmJiBlbGVtLm5vZGVOYW1lICYmIGVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgcmV0dXJuIG5vZGVOYW1lICYmIChub2RlTmFtZSA9PT0gJ2lucHV0JyAmJiAoZWxlbS50eXBlID09PSAndGV4dCcgfHwgZWxlbS50eXBlID09PSAnc2VhcmNoJyB8fCBlbGVtLnR5cGUgPT09ICd0ZWwnIHx8IGVsZW0udHlwZSA9PT0gJ3VybCcgfHwgZWxlbS50eXBlID09PSAncGFzc3dvcmQnKSB8fCBub2RlTmFtZSA9PT0gJ3RleHRhcmVhJyB8fCBlbGVtLmNvbnRlbnRFZGl0YWJsZSA9PT0gJ3RydWUnKTtcbn1cbmZ1bmN0aW9uIGdldFNlbGVjdGlvbkluZm9ybWF0aW9uKCkge1xuICB2YXIgZm9jdXNlZEVsZW0gPSBnZXRBY3RpdmVFbGVtZW50RGVlcCgpO1xuICByZXR1cm4ge1xuICAgIGZvY3VzZWRFbGVtOiBmb2N1c2VkRWxlbSxcbiAgICBzZWxlY3Rpb25SYW5nZTogaGFzU2VsZWN0aW9uQ2FwYWJpbGl0aWVzKGZvY3VzZWRFbGVtKSA/IGdldFNlbGVjdGlvbihmb2N1c2VkRWxlbSkgOiBudWxsXG4gIH07XG59XG4vKipcbiAqIEByZXN0b3JlU2VsZWN0aW9uOiBJZiBhbnkgc2VsZWN0aW9uIGluZm9ybWF0aW9uIHdhcyBwb3RlbnRpYWxseSBsb3N0LFxuICogcmVzdG9yZSBpdC4gVGhpcyBpcyB1c2VmdWwgd2hlbiBwZXJmb3JtaW5nIG9wZXJhdGlvbnMgdGhhdCBjb3VsZCByZW1vdmUgZG9tXG4gKiBub2RlcyBhbmQgcGxhY2UgdGhlbSBiYWNrIGluLCByZXN1bHRpbmcgaW4gZm9jdXMgYmVpbmcgbG9zdC5cbiAqL1xuXG5mdW5jdGlvbiByZXN0b3JlU2VsZWN0aW9uKHByaW9yU2VsZWN0aW9uSW5mb3JtYXRpb24pIHtcbiAgdmFyIGN1ckZvY3VzZWRFbGVtID0gZ2V0QWN0aXZlRWxlbWVudERlZXAoKTtcbiAgdmFyIHByaW9yRm9jdXNlZEVsZW0gPSBwcmlvclNlbGVjdGlvbkluZm9ybWF0aW9uLmZvY3VzZWRFbGVtO1xuICB2YXIgcHJpb3JTZWxlY3Rpb25SYW5nZSA9IHByaW9yU2VsZWN0aW9uSW5mb3JtYXRpb24uc2VsZWN0aW9uUmFuZ2U7XG5cbiAgaWYgKGN1ckZvY3VzZWRFbGVtICE9PSBwcmlvckZvY3VzZWRFbGVtICYmIGlzSW5Eb2N1bWVudChwcmlvckZvY3VzZWRFbGVtKSkge1xuICAgIGlmIChwcmlvclNlbGVjdGlvblJhbmdlICE9PSBudWxsICYmIGhhc1NlbGVjdGlvbkNhcGFiaWxpdGllcyhwcmlvckZvY3VzZWRFbGVtKSkge1xuICAgICAgc2V0U2VsZWN0aW9uKHByaW9yRm9jdXNlZEVsZW0sIHByaW9yU2VsZWN0aW9uUmFuZ2UpO1xuICAgIH0gLy8gRm9jdXNpbmcgYSBub2RlIGNhbiBjaGFuZ2UgdGhlIHNjcm9sbCBwb3NpdGlvbiwgd2hpY2ggaXMgdW5kZXNpcmFibGVcblxuXG4gICAgdmFyIGFuY2VzdG9ycyA9IFtdO1xuICAgIHZhciBhbmNlc3RvciA9IHByaW9yRm9jdXNlZEVsZW07XG5cbiAgICB3aGlsZSAoYW5jZXN0b3IgPSBhbmNlc3Rvci5wYXJlbnROb2RlKSB7XG4gICAgICBpZiAoYW5jZXN0b3Iubm9kZVR5cGUgPT09IEVMRU1FTlRfTk9ERSkge1xuICAgICAgICBhbmNlc3RvcnMucHVzaCh7XG4gICAgICAgICAgZWxlbWVudDogYW5jZXN0b3IsXG4gICAgICAgICAgbGVmdDogYW5jZXN0b3Iuc2Nyb2xsTGVmdCxcbiAgICAgICAgICB0b3A6IGFuY2VzdG9yLnNjcm9sbFRvcFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHByaW9yRm9jdXNlZEVsZW0uZm9jdXMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHByaW9yRm9jdXNlZEVsZW0uZm9jdXMoKTtcbiAgICB9XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFuY2VzdG9ycy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGluZm8gPSBhbmNlc3RvcnNbaV07XG4gICAgICBpbmZvLmVsZW1lbnQuc2Nyb2xsTGVmdCA9IGluZm8ubGVmdDtcbiAgICAgIGluZm8uZWxlbWVudC5zY3JvbGxUb3AgPSBpbmZvLnRvcDtcbiAgICB9XG4gIH1cbn1cbi8qKlxuICogQGdldFNlbGVjdGlvbjogR2V0cyB0aGUgc2VsZWN0aW9uIGJvdW5kcyBvZiBhIGZvY3VzZWQgdGV4dGFyZWEsIGlucHV0IG9yXG4gKiBjb250ZW50RWRpdGFibGUgbm9kZS5cbiAqIC1AaW5wdXQ6IExvb2sgdXAgc2VsZWN0aW9uIGJvdW5kcyBvZiB0aGlzIGlucHV0XG4gKiAtQHJldHVybiB7c3RhcnQ6IHNlbGVjdGlvblN0YXJ0LCBlbmQ6IHNlbGVjdGlvbkVuZH1cbiAqL1xuXG5mdW5jdGlvbiBnZXRTZWxlY3Rpb24oaW5wdXQpIHtcbiAgdmFyIHNlbGVjdGlvbjtcblxuICBpZiAoJ3NlbGVjdGlvblN0YXJ0JyBpbiBpbnB1dCkge1xuICAgIC8vIE1vZGVybiBicm93c2VyIHdpdGggaW5wdXQgb3IgdGV4dGFyZWEuXG4gICAgc2VsZWN0aW9uID0ge1xuICAgICAgc3RhcnQ6IGlucHV0LnNlbGVjdGlvblN0YXJ0LFxuICAgICAgZW5kOiBpbnB1dC5zZWxlY3Rpb25FbmRcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIC8vIENvbnRlbnQgZWRpdGFibGUgb3Igb2xkIElFIHRleHRhcmVhLlxuICAgIHNlbGVjdGlvbiA9IGdldE9mZnNldHMoaW5wdXQpO1xuICB9XG5cbiAgcmV0dXJuIHNlbGVjdGlvbiB8fCB7XG4gICAgc3RhcnQ6IDAsXG4gICAgZW5kOiAwXG4gIH07XG59XG4vKipcbiAqIEBzZXRTZWxlY3Rpb246IFNldHMgdGhlIHNlbGVjdGlvbiBib3VuZHMgb2YgYSB0ZXh0YXJlYSBvciBpbnB1dCBhbmQgZm9jdXNlc1xuICogdGhlIGlucHV0LlxuICogLUBpbnB1dCAgICAgU2V0IHNlbGVjdGlvbiBib3VuZHMgb2YgdGhpcyBpbnB1dCBvciB0ZXh0YXJlYVxuICogLUBvZmZzZXRzICAgT2JqZWN0IG9mIHNhbWUgZm9ybSB0aGF0IGlzIHJldHVybmVkIGZyb20gZ2V0KlxuICovXG5cbmZ1bmN0aW9uIHNldFNlbGVjdGlvbihpbnB1dCwgb2Zmc2V0cykge1xuICB2YXIgc3RhcnQgPSBvZmZzZXRzLnN0YXJ0O1xuICB2YXIgZW5kID0gb2Zmc2V0cy5lbmQ7XG5cbiAgaWYgKGVuZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZW5kID0gc3RhcnQ7XG4gIH1cblxuICBpZiAoJ3NlbGVjdGlvblN0YXJ0JyBpbiBpbnB1dCkge1xuICAgIGlucHV0LnNlbGVjdGlvblN0YXJ0ID0gc3RhcnQ7XG4gICAgaW5wdXQuc2VsZWN0aW9uRW5kID0gTWF0aC5taW4oZW5kLCBpbnB1dC52YWx1ZS5sZW5ndGgpO1xuICB9IGVsc2Uge1xuICAgIHNldE9mZnNldHMoaW5wdXQsIG9mZnNldHMpO1xuICB9XG59XG5cbnZhciBza2lwU2VsZWN0aW9uQ2hhbmdlRXZlbnQgPSBjYW5Vc2VET00gJiYgJ2RvY3VtZW50TW9kZScgaW4gZG9jdW1lbnQgJiYgZG9jdW1lbnQuZG9jdW1lbnRNb2RlIDw9IDExO1xuXG5mdW5jdGlvbiByZWdpc3RlckV2ZW50cyQzKCkge1xuICByZWdpc3RlclR3b1BoYXNlRXZlbnQoJ29uU2VsZWN0JywgWydmb2N1c291dCcsICdjb250ZXh0bWVudScsICdkcmFnZW5kJywgJ2ZvY3VzaW4nLCAna2V5ZG93bicsICdrZXl1cCcsICdtb3VzZWRvd24nLCAnbW91c2V1cCcsICdzZWxlY3Rpb25jaGFuZ2UnXSk7XG59XG5cbnZhciBhY3RpdmVFbGVtZW50JDEgPSBudWxsO1xudmFyIGFjdGl2ZUVsZW1lbnRJbnN0JDEgPSBudWxsO1xudmFyIGxhc3RTZWxlY3Rpb24gPSBudWxsO1xudmFyIG1vdXNlRG93biA9IGZhbHNlO1xuLyoqXG4gKiBHZXQgYW4gb2JqZWN0IHdoaWNoIGlzIGEgdW5pcXVlIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBjdXJyZW50IHNlbGVjdGlvbi5cbiAqXG4gKiBUaGUgcmV0dXJuIHZhbHVlIHdpbGwgbm90IGJlIGNvbnNpc3RlbnQgYWNyb3NzIG5vZGVzIG9yIGJyb3dzZXJzLCBidXRcbiAqIHR3byBpZGVudGljYWwgc2VsZWN0aW9ucyBvbiB0aGUgc2FtZSBub2RlIHdpbGwgcmV0dXJuIGlkZW50aWNhbCBvYmplY3RzLlxuICovXG5cbmZ1bmN0aW9uIGdldFNlbGVjdGlvbiQxKG5vZGUpIHtcbiAgaWYgKCdzZWxlY3Rpb25TdGFydCcgaW4gbm9kZSAmJiBoYXNTZWxlY3Rpb25DYXBhYmlsaXRpZXMobm9kZSkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc3RhcnQ6IG5vZGUuc2VsZWN0aW9uU3RhcnQsXG4gICAgICBlbmQ6IG5vZGUuc2VsZWN0aW9uRW5kXG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgd2luID0gbm9kZS5vd25lckRvY3VtZW50ICYmIG5vZGUub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldyB8fCB3aW5kb3c7XG4gICAgdmFyIHNlbGVjdGlvbiA9IHdpbi5nZXRTZWxlY3Rpb24oKTtcbiAgICByZXR1cm4ge1xuICAgICAgYW5jaG9yTm9kZTogc2VsZWN0aW9uLmFuY2hvck5vZGUsXG4gICAgICBhbmNob3JPZmZzZXQ6IHNlbGVjdGlvbi5hbmNob3JPZmZzZXQsXG4gICAgICBmb2N1c05vZGU6IHNlbGVjdGlvbi5mb2N1c05vZGUsXG4gICAgICBmb2N1c09mZnNldDogc2VsZWN0aW9uLmZvY3VzT2Zmc2V0XG4gICAgfTtcbiAgfVxufVxuLyoqXG4gKiBHZXQgZG9jdW1lbnQgYXNzb2NpYXRlZCB3aXRoIHRoZSBldmVudCB0YXJnZXQuXG4gKi9cblxuXG5mdW5jdGlvbiBnZXRFdmVudFRhcmdldERvY3VtZW50KGV2ZW50VGFyZ2V0KSB7XG4gIHJldHVybiBldmVudFRhcmdldC53aW5kb3cgPT09IGV2ZW50VGFyZ2V0ID8gZXZlbnRUYXJnZXQuZG9jdW1lbnQgOiBldmVudFRhcmdldC5ub2RlVHlwZSA9PT0gRE9DVU1FTlRfTk9ERSA/IGV2ZW50VGFyZ2V0IDogZXZlbnRUYXJnZXQub3duZXJEb2N1bWVudDtcbn1cbi8qKlxuICogUG9sbCBzZWxlY3Rpb24gdG8gc2VlIHdoZXRoZXIgaXQncyBjaGFuZ2VkLlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSBuYXRpdmVFdmVudFxuICogQHBhcmFtIHtvYmplY3R9IG5hdGl2ZUV2ZW50VGFyZ2V0XG4gKiBAcmV0dXJuIHs/U3ludGhldGljRXZlbnR9XG4gKi9cblxuXG5mdW5jdGlvbiBjb25zdHJ1Y3RTZWxlY3RFdmVudChkaXNwYXRjaFF1ZXVlLCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpIHtcbiAgLy8gRW5zdXJlIHdlIGhhdmUgdGhlIHJpZ2h0IGVsZW1lbnQsIGFuZCB0aGF0IHRoZSB1c2VyIGlzIG5vdCBkcmFnZ2luZyBhXG4gIC8vIHNlbGVjdGlvbiAodGhpcyBtYXRjaGVzIG5hdGl2ZSBgc2VsZWN0YCBldmVudCBiZWhhdmlvcikuIEluIEhUTUw1LCBzZWxlY3RcbiAgLy8gZmlyZXMgb25seSBvbiBpbnB1dCBhbmQgdGV4dGFyZWEgdGh1cyBpZiB0aGVyZSdzIG5vIGZvY3VzZWQgZWxlbWVudCB3ZVxuICAvLyB3b24ndCBkaXNwYXRjaC5cbiAgdmFyIGRvYyA9IGdldEV2ZW50VGFyZ2V0RG9jdW1lbnQobmF0aXZlRXZlbnRUYXJnZXQpO1xuXG4gIGlmIChtb3VzZURvd24gfHwgYWN0aXZlRWxlbWVudCQxID09IG51bGwgfHwgYWN0aXZlRWxlbWVudCQxICE9PSBnZXRBY3RpdmVFbGVtZW50KGRvYykpIHtcbiAgICByZXR1cm47XG4gIH0gLy8gT25seSBmaXJlIHdoZW4gc2VsZWN0aW9uIGhhcyBhY3R1YWxseSBjaGFuZ2VkLlxuXG5cbiAgdmFyIGN1cnJlbnRTZWxlY3Rpb24gPSBnZXRTZWxlY3Rpb24kMShhY3RpdmVFbGVtZW50JDEpO1xuXG4gIGlmICghbGFzdFNlbGVjdGlvbiB8fCAhc2hhbGxvd0VxdWFsKGxhc3RTZWxlY3Rpb24sIGN1cnJlbnRTZWxlY3Rpb24pKSB7XG4gICAgbGFzdFNlbGVjdGlvbiA9IGN1cnJlbnRTZWxlY3Rpb247XG4gICAgdmFyIGxpc3RlbmVycyA9IGFjY3VtdWxhdGVUd29QaGFzZUxpc3RlbmVycyhhY3RpdmVFbGVtZW50SW5zdCQxLCAnb25TZWxlY3QnKTtcblxuICAgIGlmIChsaXN0ZW5lcnMubGVuZ3RoID4gMCkge1xuICAgICAgdmFyIGV2ZW50ID0gbmV3IFN5bnRoZXRpY0V2ZW50KCdvblNlbGVjdCcsICdzZWxlY3QnLCBudWxsLCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpO1xuICAgICAgZGlzcGF0Y2hRdWV1ZS5wdXNoKHtcbiAgICAgICAgZXZlbnQ6IGV2ZW50LFxuICAgICAgICBsaXN0ZW5lcnM6IGxpc3RlbmVyc1xuICAgICAgfSk7XG4gICAgICBldmVudC50YXJnZXQgPSBhY3RpdmVFbGVtZW50JDE7XG4gICAgfVxuICB9XG59XG4vKipcbiAqIFRoaXMgcGx1Z2luIGNyZWF0ZXMgYW4gYG9uU2VsZWN0YCBldmVudCB0aGF0IG5vcm1hbGl6ZXMgc2VsZWN0IGV2ZW50c1xuICogYWNyb3NzIGZvcm0gZWxlbWVudHMuXG4gKlxuICogU3VwcG9ydGVkIGVsZW1lbnRzIGFyZTpcbiAqIC0gaW5wdXQgKHNlZSBgaXNUZXh0SW5wdXRFbGVtZW50YClcbiAqIC0gdGV4dGFyZWFcbiAqIC0gY29udGVudEVkaXRhYmxlXG4gKlxuICogVGhpcyBkaWZmZXJzIGZyb20gbmF0aXZlIGJyb3dzZXIgaW1wbGVtZW50YXRpb25zIGluIHRoZSBmb2xsb3dpbmcgd2F5czpcbiAqIC0gRmlyZXMgb24gY29udGVudEVkaXRhYmxlIGZpZWxkcyBhcyB3ZWxsIGFzIGlucHV0cy5cbiAqIC0gRmlyZXMgZm9yIGNvbGxhcHNlZCBzZWxlY3Rpb24uXG4gKiAtIEZpcmVzIGFmdGVyIHVzZXIgaW5wdXQuXG4gKi9cblxuXG5mdW5jdGlvbiBleHRyYWN0RXZlbnRzJDMoZGlzcGF0Y2hRdWV1ZSwgZG9tRXZlbnROYW1lLCB0YXJnZXRJbnN0LCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQsIGV2ZW50U3lzdGVtRmxhZ3MsIHRhcmdldENvbnRhaW5lcikge1xuXG4gIHZhciB0YXJnZXROb2RlID0gdGFyZ2V0SW5zdCA/IGdldE5vZGVGcm9tSW5zdGFuY2UodGFyZ2V0SW5zdCkgOiB3aW5kb3c7XG5cbiAgc3dpdGNoIChkb21FdmVudE5hbWUpIHtcbiAgICAvLyBUcmFjayB0aGUgaW5wdXQgbm9kZSB0aGF0IGhhcyBmb2N1cy5cbiAgICBjYXNlICdmb2N1c2luJzpcbiAgICAgIGlmIChpc1RleHRJbnB1dEVsZW1lbnQodGFyZ2V0Tm9kZSkgfHwgdGFyZ2V0Tm9kZS5jb250ZW50RWRpdGFibGUgPT09ICd0cnVlJykge1xuICAgICAgICBhY3RpdmVFbGVtZW50JDEgPSB0YXJnZXROb2RlO1xuICAgICAgICBhY3RpdmVFbGVtZW50SW5zdCQxID0gdGFyZ2V0SW5zdDtcbiAgICAgICAgbGFzdFNlbGVjdGlvbiA9IG51bGw7XG4gICAgICB9XG5cbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnZm9jdXNvdXQnOlxuICAgICAgYWN0aXZlRWxlbWVudCQxID0gbnVsbDtcbiAgICAgIGFjdGl2ZUVsZW1lbnRJbnN0JDEgPSBudWxsO1xuICAgICAgbGFzdFNlbGVjdGlvbiA9IG51bGw7XG4gICAgICBicmVhaztcbiAgICAvLyBEb24ndCBmaXJlIHRoZSBldmVudCB3aGlsZSB0aGUgdXNlciBpcyBkcmFnZ2luZy4gVGhpcyBtYXRjaGVzIHRoZVxuICAgIC8vIHNlbWFudGljcyBvZiB0aGUgbmF0aXZlIHNlbGVjdCBldmVudC5cblxuICAgIGNhc2UgJ21vdXNlZG93bic6XG4gICAgICBtb3VzZURvd24gPSB0cnVlO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdjb250ZXh0bWVudSc6XG4gICAgY2FzZSAnbW91c2V1cCc6XG4gICAgY2FzZSAnZHJhZ2VuZCc6XG4gICAgICBtb3VzZURvd24gPSBmYWxzZTtcbiAgICAgIGNvbnN0cnVjdFNlbGVjdEV2ZW50KGRpc3BhdGNoUXVldWUsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCk7XG4gICAgICBicmVhaztcbiAgICAvLyBDaHJvbWUgYW5kIElFIGZpcmUgbm9uLXN0YW5kYXJkIGV2ZW50IHdoZW4gc2VsZWN0aW9uIGlzIGNoYW5nZWQgKGFuZFxuICAgIC8vIHNvbWV0aW1lcyB3aGVuIGl0IGhhc24ndCkuIElFJ3MgZXZlbnQgZmlyZXMgb3V0IG9mIG9yZGVyIHdpdGggcmVzcGVjdFxuICAgIC8vIHRvIGtleSBhbmQgaW5wdXQgZXZlbnRzIG9uIGRlbGV0aW9uLCBzbyB3ZSBkaXNjYXJkIGl0LlxuICAgIC8vXG4gICAgLy8gRmlyZWZveCBkb2Vzbid0IHN1cHBvcnQgc2VsZWN0aW9uY2hhbmdlLCBzbyBjaGVjayBzZWxlY3Rpb24gc3RhdHVzXG4gICAgLy8gYWZ0ZXIgZWFjaCBrZXkgZW50cnkuIFRoZSBzZWxlY3Rpb24gY2hhbmdlcyBhZnRlciBrZXlkb3duIGFuZCBiZWZvcmVcbiAgICAvLyBrZXl1cCwgYnV0IHdlIGNoZWNrIG9uIGtleWRvd24gYXMgd2VsbCBpbiB0aGUgY2FzZSBvZiBob2xkaW5nIGRvd24gYVxuICAgIC8vIGtleSwgd2hlbiBtdWx0aXBsZSBrZXlkb3duIGV2ZW50cyBhcmUgZmlyZWQgYnV0IG9ubHkgb25lIGtleXVwIGlzLlxuICAgIC8vIFRoaXMgaXMgYWxzbyBvdXIgYXBwcm9hY2ggZm9yIElFIGhhbmRsaW5nLCBmb3IgdGhlIHJlYXNvbiBhYm92ZS5cblxuICAgIGNhc2UgJ3NlbGVjdGlvbmNoYW5nZSc6XG4gICAgICBpZiAoc2tpcFNlbGVjdGlvbkNoYW5nZUV2ZW50KSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgLy8gZmFsbHMgdGhyb3VnaFxuXG4gICAgY2FzZSAna2V5ZG93bic6XG4gICAgY2FzZSAna2V5dXAnOlxuICAgICAgY29uc3RydWN0U2VsZWN0RXZlbnQoZGlzcGF0Y2hRdWV1ZSwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBleHRyYWN0RXZlbnRzJDQoZGlzcGF0Y2hRdWV1ZSwgZG9tRXZlbnROYW1lLCB0YXJnZXRJbnN0LCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQsIGV2ZW50U3lzdGVtRmxhZ3MsIHRhcmdldENvbnRhaW5lcikge1xuICB2YXIgcmVhY3ROYW1lID0gdG9wTGV2ZWxFdmVudHNUb1JlYWN0TmFtZXMuZ2V0KGRvbUV2ZW50TmFtZSk7XG5cbiAgaWYgKHJlYWN0TmFtZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdmFyIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY0V2ZW50O1xuICB2YXIgcmVhY3RFdmVudFR5cGUgPSBkb21FdmVudE5hbWU7XG5cbiAgc3dpdGNoIChkb21FdmVudE5hbWUpIHtcbiAgICBjYXNlICdrZXlwcmVzcyc6XG4gICAgICAvLyBGaXJlZm94IGNyZWF0ZXMgYSBrZXlwcmVzcyBldmVudCBmb3IgZnVuY3Rpb24ga2V5cyB0b28uIFRoaXMgcmVtb3Zlc1xuICAgICAgLy8gdGhlIHVud2FudGVkIGtleXByZXNzIGV2ZW50cy4gRW50ZXIgaXMgaG93ZXZlciBib3RoIHByaW50YWJsZSBhbmRcbiAgICAgIC8vIG5vbi1wcmludGFibGUuIE9uZSB3b3VsZCBleHBlY3QgVGFiIHRvIGJlIGFzIHdlbGwgKGJ1dCBpdCBpc24ndCkuXG4gICAgICBpZiAoZ2V0RXZlbnRDaGFyQ29kZShuYXRpdmVFdmVudCkgPT09IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgLyogZmFsbHMgdGhyb3VnaCAqL1xuXG4gICAgY2FzZSAna2V5ZG93bic6XG4gICAgY2FzZSAna2V5dXAnOlxuICAgICAgU3ludGhldGljRXZlbnRDdG9yID0gU3ludGhldGljS2V5Ym9hcmRFdmVudDtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnZm9jdXNpbic6XG4gICAgICByZWFjdEV2ZW50VHlwZSA9ICdmb2N1cyc7XG4gICAgICBTeW50aGV0aWNFdmVudEN0b3IgPSBTeW50aGV0aWNGb2N1c0V2ZW50O1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdmb2N1c291dCc6XG4gICAgICByZWFjdEV2ZW50VHlwZSA9ICdibHVyJztcbiAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY0ZvY3VzRXZlbnQ7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2JlZm9yZWJsdXInOlxuICAgIGNhc2UgJ2FmdGVyYmx1cic6XG4gICAgICBTeW50aGV0aWNFdmVudEN0b3IgPSBTeW50aGV0aWNGb2N1c0V2ZW50O1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdjbGljayc6XG4gICAgICAvLyBGaXJlZm94IGNyZWF0ZXMgYSBjbGljayBldmVudCBvbiByaWdodCBtb3VzZSBjbGlja3MuIFRoaXMgcmVtb3ZlcyB0aGVcbiAgICAgIC8vIHVud2FudGVkIGNsaWNrIGV2ZW50cy5cbiAgICAgIGlmIChuYXRpdmVFdmVudC5idXR0b24gPT09IDIpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgLyogZmFsbHMgdGhyb3VnaCAqL1xuXG4gICAgY2FzZSAnYXV4Y2xpY2snOlxuICAgIGNhc2UgJ2RibGNsaWNrJzpcbiAgICBjYXNlICdtb3VzZWRvd24nOlxuICAgIGNhc2UgJ21vdXNlbW92ZSc6XG4gICAgY2FzZSAnbW91c2V1cCc6IC8vIFRPRE86IERpc2FibGVkIGVsZW1lbnRzIHNob3VsZCBub3QgcmVzcG9uZCB0byBtb3VzZSBldmVudHNcblxuICAgIC8qIGZhbGxzIHRocm91Z2ggKi9cblxuICAgIGNhc2UgJ21vdXNlb3V0JzpcbiAgICBjYXNlICdtb3VzZW92ZXInOlxuICAgIGNhc2UgJ2NvbnRleHRtZW51JzpcbiAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY01vdXNlRXZlbnQ7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2RyYWcnOlxuICAgIGNhc2UgJ2RyYWdlbmQnOlxuICAgIGNhc2UgJ2RyYWdlbnRlcic6XG4gICAgY2FzZSAnZHJhZ2V4aXQnOlxuICAgIGNhc2UgJ2RyYWdsZWF2ZSc6XG4gICAgY2FzZSAnZHJhZ292ZXInOlxuICAgIGNhc2UgJ2RyYWdzdGFydCc6XG4gICAgY2FzZSAnZHJvcCc6XG4gICAgICBTeW50aGV0aWNFdmVudEN0b3IgPSBTeW50aGV0aWNEcmFnRXZlbnQ7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ3RvdWNoY2FuY2VsJzpcbiAgICBjYXNlICd0b3VjaGVuZCc6XG4gICAgY2FzZSAndG91Y2htb3ZlJzpcbiAgICBjYXNlICd0b3VjaHN0YXJ0JzpcbiAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY1RvdWNoRXZlbnQ7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgQU5JTUFUSU9OX0VORDpcbiAgICBjYXNlIEFOSU1BVElPTl9JVEVSQVRJT046XG4gICAgY2FzZSBBTklNQVRJT05fU1RBUlQ6XG4gICAgICBTeW50aGV0aWNFdmVudEN0b3IgPSBTeW50aGV0aWNBbmltYXRpb25FdmVudDtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBUUkFOU0lUSU9OX0VORDpcbiAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY1RyYW5zaXRpb25FdmVudDtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnc2Nyb2xsJzpcbiAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY1VJRXZlbnQ7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ3doZWVsJzpcbiAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY1doZWVsRXZlbnQ7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2NvcHknOlxuICAgIGNhc2UgJ2N1dCc6XG4gICAgY2FzZSAncGFzdGUnOlxuICAgICAgU3ludGhldGljRXZlbnRDdG9yID0gU3ludGhldGljQ2xpcGJvYXJkRXZlbnQ7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2dvdHBvaW50ZXJjYXB0dXJlJzpcbiAgICBjYXNlICdsb3N0cG9pbnRlcmNhcHR1cmUnOlxuICAgIGNhc2UgJ3BvaW50ZXJjYW5jZWwnOlxuICAgIGNhc2UgJ3BvaW50ZXJkb3duJzpcbiAgICBjYXNlICdwb2ludGVybW92ZSc6XG4gICAgY2FzZSAncG9pbnRlcm91dCc6XG4gICAgY2FzZSAncG9pbnRlcm92ZXInOlxuICAgIGNhc2UgJ3BvaW50ZXJ1cCc6XG4gICAgICBTeW50aGV0aWNFdmVudEN0b3IgPSBTeW50aGV0aWNQb2ludGVyRXZlbnQ7XG4gICAgICBicmVhaztcbiAgfVxuXG4gIHZhciBpbkNhcHR1cmVQaGFzZSA9IChldmVudFN5c3RlbUZsYWdzICYgSVNfQ0FQVFVSRV9QSEFTRSkgIT09IDA7XG5cbiAge1xuICAgIC8vIFNvbWUgZXZlbnRzIGRvbid0IGJ1YmJsZSBpbiB0aGUgYnJvd3Nlci5cbiAgICAvLyBJbiB0aGUgcGFzdCwgUmVhY3QgaGFzIGFsd2F5cyBidWJibGVkIHRoZW0sIGJ1dCB0aGlzIGNhbiBiZSBzdXJwcmlzaW5nLlxuICAgIC8vIFdlJ3JlIGdvaW5nIHRvIHRyeSBhbGlnbmluZyBjbG9zZXIgdG8gdGhlIGJyb3dzZXIgYmVoYXZpb3IgYnkgbm90IGJ1YmJsaW5nXG4gICAgLy8gdGhlbSBpbiBSZWFjdCBlaXRoZXIuIFdlJ2xsIHN0YXJ0IGJ5IG5vdCBidWJibGluZyBvblNjcm9sbCwgYW5kIHRoZW4gZXhwYW5kLlxuICAgIHZhciBhY2N1bXVsYXRlVGFyZ2V0T25seSA9ICFpbkNhcHR1cmVQaGFzZSAmJiAvLyBUT0RPOiBpZGVhbGx5LCB3ZSdkIGV2ZW50dWFsbHkgYWRkIGFsbCBldmVudHMgZnJvbVxuICAgIC8vIG5vbkRlbGVnYXRlZEV2ZW50cyBsaXN0IGluIERPTVBsdWdpbkV2ZW50U3lzdGVtLlxuICAgIC8vIFRoZW4gd2UgY2FuIHJlbW92ZSB0aGlzIHNwZWNpYWwgbGlzdC5cbiAgICAvLyBUaGlzIGlzIGEgYnJlYWtpbmcgY2hhbmdlIHRoYXQgY2FuIHdhaXQgdW50aWwgUmVhY3QgMTguXG4gICAgZG9tRXZlbnROYW1lID09PSAnc2Nyb2xsJztcblxuICAgIHZhciBfbGlzdGVuZXJzID0gYWNjdW11bGF0ZVNpbmdsZVBoYXNlTGlzdGVuZXJzKHRhcmdldEluc3QsIHJlYWN0TmFtZSwgbmF0aXZlRXZlbnQudHlwZSwgaW5DYXB0dXJlUGhhc2UsIGFjY3VtdWxhdGVUYXJnZXRPbmx5KTtcblxuICAgIGlmIChfbGlzdGVuZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgIC8vIEludGVudGlvbmFsbHkgY3JlYXRlIGV2ZW50IGxhemlseS5cbiAgICAgIHZhciBfZXZlbnQgPSBuZXcgU3ludGhldGljRXZlbnRDdG9yKHJlYWN0TmFtZSwgcmVhY3RFdmVudFR5cGUsIG51bGwsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCk7XG5cbiAgICAgIGRpc3BhdGNoUXVldWUucHVzaCh7XG4gICAgICAgIGV2ZW50OiBfZXZlbnQsXG4gICAgICAgIGxpc3RlbmVyczogX2xpc3RlbmVyc1xuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG5cbi8vIFRPRE86IHJlbW92ZSB0b3AtbGV2ZWwgc2lkZSBlZmZlY3QuXG5yZWdpc3RlclNpbXBsZUV2ZW50cygpO1xucmVnaXN0ZXJFdmVudHMkMigpO1xucmVnaXN0ZXJFdmVudHMkMSgpO1xucmVnaXN0ZXJFdmVudHMkMygpO1xucmVnaXN0ZXJFdmVudHMoKTtcblxuZnVuY3Rpb24gZXh0cmFjdEV2ZW50cyQ1KGRpc3BhdGNoUXVldWUsIGRvbUV2ZW50TmFtZSwgdGFyZ2V0SW5zdCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0LCBldmVudFN5c3RlbUZsYWdzLCB0YXJnZXRDb250YWluZXIpIHtcbiAgLy8gVE9ETzogd2Ugc2hvdWxkIHJlbW92ZSB0aGUgY29uY2VwdCBvZiBhIFwiU2ltcGxlRXZlbnRQbHVnaW5cIi5cbiAgLy8gVGhpcyBpcyB0aGUgYmFzaWMgZnVuY3Rpb25hbGl0eSBvZiB0aGUgZXZlbnQgc3lzdGVtLiBBbGxcbiAgLy8gdGhlIG90aGVyIHBsdWdpbnMgYXJlIGVzc2VudGlhbGx5IHBvbHlmaWxscy4gU28gdGhlIHBsdWdpblxuICAvLyBzaG91bGQgcHJvYmFibHkgYmUgaW5saW5lZCBzb21ld2hlcmUgYW5kIGhhdmUgaXRzIGxvZ2ljXG4gIC8vIGJlIGNvcmUgdGhlIHRvIGV2ZW50IHN5c3RlbS4gVGhpcyB3b3VsZCBwb3RlbnRpYWxseSBhbGxvd1xuICAvLyB1cyB0byBzaGlwIGJ1aWxkcyBvZiBSZWFjdCB3aXRob3V0IHRoZSBwb2x5ZmlsbGVkIHBsdWdpbnMgYmVsb3cuXG4gIGV4dHJhY3RFdmVudHMkNChkaXNwYXRjaFF1ZXVlLCBkb21FdmVudE5hbWUsIHRhcmdldEluc3QsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCwgZXZlbnRTeXN0ZW1GbGFncyk7XG4gIHZhciBzaG91bGRQcm9jZXNzUG9seWZpbGxQbHVnaW5zID0gKGV2ZW50U3lzdGVtRmxhZ3MgJiBTSE9VTERfTk9UX1BST0NFU1NfUE9MWUZJTExfRVZFTlRfUExVR0lOUykgPT09IDA7IC8vIFdlIGRvbid0IHByb2Nlc3MgdGhlc2UgZXZlbnRzIHVubGVzcyB3ZSBhcmUgaW4gdGhlXG4gIC8vIGV2ZW50J3MgbmF0aXZlIFwiYnViYmxlXCIgcGhhc2UsIHdoaWNoIG1lYW5zIHRoYXQgd2UncmVcbiAgLy8gbm90IGluIHRoZSBjYXB0dXJlIHBoYXNlLiBUaGF0J3MgYmVjYXVzZSB3ZSBlbXVsYXRlXG4gIC8vIHRoZSBjYXB0dXJlIHBoYXNlIGhlcmUgc3RpbGwuIFRoaXMgaXMgYSB0cmFkZS1vZmYsXG4gIC8vIGJlY2F1c2UgaW4gYW4gaWRlYWwgd29ybGQgd2Ugd291bGQgbm90IGVtdWxhdGUgYW5kIHVzZVxuICAvLyB0aGUgcGhhc2VzIHByb3Blcmx5LCBsaWtlIHdlIGRvIHdpdGggdGhlIFNpbXBsZUV2ZW50XG4gIC8vIHBsdWdpbi4gSG93ZXZlciwgdGhlIHBsdWdpbnMgYmVsb3cgZWl0aGVyIGV4cGVjdFxuICAvLyBlbXVsYXRpb24gKEVudGVyTGVhdmUpIG9yIHVzZSBzdGF0ZSBsb2NhbGl6ZWQgdG8gdGhhdFxuICAvLyBwbHVnaW4gKEJlZm9yZUlucHV0LCBDaGFuZ2UsIFNlbGVjdCkuIFRoZSBzdGF0ZSBpblxuICAvLyB0aGVzZSBtb2R1bGVzIGNvbXBsaWNhdGVzIHRoaW5ncywgYXMgeW91J2xsIGVzc2VudGlhbGx5XG4gIC8vIGdldCB0aGUgY2FzZSB3aGVyZSB0aGUgY2FwdHVyZSBwaGFzZSBldmVudCBtaWdodCBjaGFuZ2VcbiAgLy8gc3RhdGUsIG9ubHkgZm9yIHRoZSBmb2xsb3dpbmcgYnViYmxlIGV2ZW50IHRvIGNvbWUgaW5cbiAgLy8gbGF0ZXIgYW5kIG5vdCB0cmlnZ2VyIGFueXRoaW5nIGFzIHRoZSBzdGF0ZSBub3dcbiAgLy8gaW52YWxpZGF0ZXMgdGhlIGhldXJpc3RpY3Mgb2YgdGhlIGV2ZW50IHBsdWdpbi4gV2VcbiAgLy8gY291bGQgYWx0ZXIgYWxsIHRoZXNlIHBsdWdpbnMgdG8gd29yayBpbiBzdWNoIHdheXMsIGJ1dFxuICAvLyB0aGF0IG1pZ2h0IGNhdXNlIG90aGVyIHVua25vd24gc2lkZS1lZmZlY3RzIHRoYXQgd2VcbiAgLy8gY2FuJ3QgZm9yc2VlIHJpZ2h0IG5vdy5cblxuICBpZiAoc2hvdWxkUHJvY2Vzc1BvbHlmaWxsUGx1Z2lucykge1xuICAgIGV4dHJhY3RFdmVudHMkMihkaXNwYXRjaFF1ZXVlLCBkb21FdmVudE5hbWUsIHRhcmdldEluc3QsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCwgZXZlbnRTeXN0ZW1GbGFncyk7XG4gICAgZXh0cmFjdEV2ZW50cyQxKGRpc3BhdGNoUXVldWUsIGRvbUV2ZW50TmFtZSwgdGFyZ2V0SW5zdCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KTtcbiAgICBleHRyYWN0RXZlbnRzJDMoZGlzcGF0Y2hRdWV1ZSwgZG9tRXZlbnROYW1lLCB0YXJnZXRJbnN0LCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpO1xuICAgIGV4dHJhY3RFdmVudHMoZGlzcGF0Y2hRdWV1ZSwgZG9tRXZlbnROYW1lLCB0YXJnZXRJbnN0LCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpO1xuICB9XG59IC8vIExpc3Qgb2YgZXZlbnRzIHRoYXQgbmVlZCB0byBiZSBpbmRpdmlkdWFsbHkgYXR0YWNoZWQgdG8gbWVkaWEgZWxlbWVudHMuXG5cblxudmFyIG1lZGlhRXZlbnRUeXBlcyA9IFsnYWJvcnQnLCAnY2FucGxheScsICdjYW5wbGF5dGhyb3VnaCcsICdkdXJhdGlvbmNoYW5nZScsICdlbXB0aWVkJywgJ2VuY3J5cHRlZCcsICdlbmRlZCcsICdlcnJvcicsICdsb2FkZWRkYXRhJywgJ2xvYWRlZG1ldGFkYXRhJywgJ2xvYWRzdGFydCcsICdwYXVzZScsICdwbGF5JywgJ3BsYXlpbmcnLCAncHJvZ3Jlc3MnLCAncmF0ZWNoYW5nZScsICdzZWVrZWQnLCAnc2Vla2luZycsICdzdGFsbGVkJywgJ3N1c3BlbmQnLCAndGltZXVwZGF0ZScsICd2b2x1bWVjaGFuZ2UnLCAnd2FpdGluZyddOyAvLyBXZSBzaG91bGQgbm90IGRlbGVnYXRlIHRoZXNlIGV2ZW50cyB0byB0aGUgY29udGFpbmVyLCBidXQgcmF0aGVyXG4vLyBzZXQgdGhlbSBvbiB0aGUgYWN0dWFsIHRhcmdldCBlbGVtZW50IGl0c2VsZi4gVGhpcyBpcyBwcmltYXJpbHlcbi8vIGJlY2F1c2UgdGhlc2UgZXZlbnRzIGRvIG5vdCBjb25zaXN0ZW50bHkgYnViYmxlIGluIHRoZSBET00uXG5cbnZhciBub25EZWxlZ2F0ZWRFdmVudHMgPSBuZXcgU2V0KFsnY2FuY2VsJywgJ2Nsb3NlJywgJ2ludmFsaWQnLCAnbG9hZCcsICdzY3JvbGwnLCAndG9nZ2xlJ10uY29uY2F0KG1lZGlhRXZlbnRUeXBlcykpO1xuXG5mdW5jdGlvbiBleGVjdXRlRGlzcGF0Y2goZXZlbnQsIGxpc3RlbmVyLCBjdXJyZW50VGFyZ2V0KSB7XG4gIHZhciB0eXBlID0gZXZlbnQudHlwZSB8fCAndW5rbm93bi1ldmVudCc7XG4gIGV2ZW50LmN1cnJlbnRUYXJnZXQgPSBjdXJyZW50VGFyZ2V0O1xuICBpbnZva2VHdWFyZGVkQ2FsbGJhY2tBbmRDYXRjaEZpcnN0RXJyb3IodHlwZSwgbGlzdGVuZXIsIHVuZGVmaW5lZCwgZXZlbnQpO1xuICBldmVudC5jdXJyZW50VGFyZ2V0ID0gbnVsbDtcbn1cblxuZnVuY3Rpb24gcHJvY2Vzc0Rpc3BhdGNoUXVldWVJdGVtc0luT3JkZXIoZXZlbnQsIGRpc3BhdGNoTGlzdGVuZXJzLCBpbkNhcHR1cmVQaGFzZSkge1xuICB2YXIgcHJldmlvdXNJbnN0YW5jZTtcblxuICBpZiAoaW5DYXB0dXJlUGhhc2UpIHtcbiAgICBmb3IgKHZhciBpID0gZGlzcGF0Y2hMaXN0ZW5lcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIHZhciBfZGlzcGF0Y2hMaXN0ZW5lcnMkaSA9IGRpc3BhdGNoTGlzdGVuZXJzW2ldLFxuICAgICAgICAgIGluc3RhbmNlID0gX2Rpc3BhdGNoTGlzdGVuZXJzJGkuaW5zdGFuY2UsXG4gICAgICAgICAgY3VycmVudFRhcmdldCA9IF9kaXNwYXRjaExpc3RlbmVycyRpLmN1cnJlbnRUYXJnZXQsXG4gICAgICAgICAgbGlzdGVuZXIgPSBfZGlzcGF0Y2hMaXN0ZW5lcnMkaS5saXN0ZW5lcjtcblxuICAgICAgaWYgKGluc3RhbmNlICE9PSBwcmV2aW91c0luc3RhbmNlICYmIGV2ZW50LmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBleGVjdXRlRGlzcGF0Y2goZXZlbnQsIGxpc3RlbmVyLCBjdXJyZW50VGFyZ2V0KTtcbiAgICAgIHByZXZpb3VzSW5zdGFuY2UgPSBpbnN0YW5jZTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGRpc3BhdGNoTGlzdGVuZXJzLmxlbmd0aDsgX2krKykge1xuICAgICAgdmFyIF9kaXNwYXRjaExpc3RlbmVycyRfaSA9IGRpc3BhdGNoTGlzdGVuZXJzW19pXSxcbiAgICAgICAgICBfaW5zdGFuY2UgPSBfZGlzcGF0Y2hMaXN0ZW5lcnMkX2kuaW5zdGFuY2UsXG4gICAgICAgICAgX2N1cnJlbnRUYXJnZXQgPSBfZGlzcGF0Y2hMaXN0ZW5lcnMkX2kuY3VycmVudFRhcmdldCxcbiAgICAgICAgICBfbGlzdGVuZXIgPSBfZGlzcGF0Y2hMaXN0ZW5lcnMkX2kubGlzdGVuZXI7XG5cbiAgICAgIGlmIChfaW5zdGFuY2UgIT09IHByZXZpb3VzSW5zdGFuY2UgJiYgZXZlbnQuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGV4ZWN1dGVEaXNwYXRjaChldmVudCwgX2xpc3RlbmVyLCBfY3VycmVudFRhcmdldCk7XG4gICAgICBwcmV2aW91c0luc3RhbmNlID0gX2luc3RhbmNlO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBwcm9jZXNzRGlzcGF0Y2hRdWV1ZShkaXNwYXRjaFF1ZXVlLCBldmVudFN5c3RlbUZsYWdzKSB7XG4gIHZhciBpbkNhcHR1cmVQaGFzZSA9IChldmVudFN5c3RlbUZsYWdzICYgSVNfQ0FQVFVSRV9QSEFTRSkgIT09IDA7XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBkaXNwYXRjaFF1ZXVlLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIF9kaXNwYXRjaFF1ZXVlJGkgPSBkaXNwYXRjaFF1ZXVlW2ldLFxuICAgICAgICBldmVudCA9IF9kaXNwYXRjaFF1ZXVlJGkuZXZlbnQsXG4gICAgICAgIGxpc3RlbmVycyA9IF9kaXNwYXRjaFF1ZXVlJGkubGlzdGVuZXJzO1xuICAgIHByb2Nlc3NEaXNwYXRjaFF1ZXVlSXRlbXNJbk9yZGVyKGV2ZW50LCBsaXN0ZW5lcnMsIGluQ2FwdHVyZVBoYXNlKTsgLy8gIGV2ZW50IHN5c3RlbSBkb2Vzbid0IHVzZSBwb29saW5nLlxuICB9IC8vIFRoaXMgd291bGQgYmUgYSBnb29kIHRpbWUgdG8gcmV0aHJvdyBpZiBhbnkgb2YgdGhlIGV2ZW50IGhhbmRsZXJzIHRocmV3LlxuXG5cbiAgcmV0aHJvd0NhdWdodEVycm9yKCk7XG59XG5cbmZ1bmN0aW9uIGRpc3BhdGNoRXZlbnRzRm9yUGx1Z2lucyhkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIG5hdGl2ZUV2ZW50LCB0YXJnZXRJbnN0LCB0YXJnZXRDb250YWluZXIpIHtcbiAgdmFyIG5hdGl2ZUV2ZW50VGFyZ2V0ID0gZ2V0RXZlbnRUYXJnZXQobmF0aXZlRXZlbnQpO1xuICB2YXIgZGlzcGF0Y2hRdWV1ZSA9IFtdO1xuICBleHRyYWN0RXZlbnRzJDUoZGlzcGF0Y2hRdWV1ZSwgZG9tRXZlbnROYW1lLCB0YXJnZXRJbnN0LCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQsIGV2ZW50U3lzdGVtRmxhZ3MpO1xuICBwcm9jZXNzRGlzcGF0Y2hRdWV1ZShkaXNwYXRjaFF1ZXVlLCBldmVudFN5c3RlbUZsYWdzKTtcbn1cblxuZnVuY3Rpb24gbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudChkb21FdmVudE5hbWUsIHRhcmdldEVsZW1lbnQpIHtcbiAgdmFyIGlzQ2FwdHVyZVBoYXNlTGlzdGVuZXIgPSBmYWxzZTtcbiAgdmFyIGxpc3RlbmVyU2V0ID0gZ2V0RXZlbnRMaXN0ZW5lclNldCh0YXJnZXRFbGVtZW50KTtcbiAgdmFyIGxpc3RlbmVyU2V0S2V5ID0gZ2V0TGlzdGVuZXJTZXRLZXkoZG9tRXZlbnROYW1lLCBpc0NhcHR1cmVQaGFzZUxpc3RlbmVyKTtcblxuICBpZiAoIWxpc3RlbmVyU2V0LmhhcyhsaXN0ZW5lclNldEtleSkpIHtcbiAgICBhZGRUcmFwcGVkRXZlbnRMaXN0ZW5lcih0YXJnZXRFbGVtZW50LCBkb21FdmVudE5hbWUsIElTX05PTl9ERUxFR0FURUQsIGlzQ2FwdHVyZVBoYXNlTGlzdGVuZXIpO1xuICAgIGxpc3RlbmVyU2V0LmFkZChsaXN0ZW5lclNldEtleSk7XG4gIH1cbn1cbnZhciBsaXN0ZW5pbmdNYXJrZXIgPSAnX3JlYWN0TGlzdGVuaW5nJyArIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIpO1xuZnVuY3Rpb24gbGlzdGVuVG9BbGxTdXBwb3J0ZWRFdmVudHMocm9vdENvbnRhaW5lckVsZW1lbnQpIHtcbiAge1xuICAgIGlmIChyb290Q29udGFpbmVyRWxlbWVudFtsaXN0ZW5pbmdNYXJrZXJdKSB7XG4gICAgICAvLyBQZXJmb3JtYW5jZSBvcHRpbWl6YXRpb246IGRvbid0IGl0ZXJhdGUgdGhyb3VnaCBldmVudHNcbiAgICAgIC8vIGZvciB0aGUgc2FtZSBwb3J0YWwgY29udGFpbmVyIG9yIHJvb3Qgbm9kZSBtb3JlIHRoYW4gb25jZS5cbiAgICAgIC8vIFRPRE86IG9uY2Ugd2UgcmVtb3ZlIHRoZSBmbGFnLCB3ZSBtYXkgYmUgYWJsZSB0byBhbHNvXG4gICAgICAvLyByZW1vdmUgc29tZSBvZiB0aGUgYm9va2tlZXBpbmcgbWFwcyB1c2VkIGZvciBsYXppbmVzcy5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByb290Q29udGFpbmVyRWxlbWVudFtsaXN0ZW5pbmdNYXJrZXJdID0gdHJ1ZTtcbiAgICBhbGxOYXRpdmVFdmVudHMuZm9yRWFjaChmdW5jdGlvbiAoZG9tRXZlbnROYW1lKSB7XG4gICAgICBpZiAoIW5vbkRlbGVnYXRlZEV2ZW50cy5oYXMoZG9tRXZlbnROYW1lKSkge1xuICAgICAgICBsaXN0ZW5Ub05hdGl2ZUV2ZW50KGRvbUV2ZW50TmFtZSwgZmFsc2UsIHJvb3RDb250YWluZXJFbGVtZW50LCBudWxsKTtcbiAgICAgIH1cblxuICAgICAgbGlzdGVuVG9OYXRpdmVFdmVudChkb21FdmVudE5hbWUsIHRydWUsIHJvb3RDb250YWluZXJFbGVtZW50LCBudWxsKTtcbiAgICB9KTtcbiAgfVxufVxuZnVuY3Rpb24gbGlzdGVuVG9OYXRpdmVFdmVudChkb21FdmVudE5hbWUsIGlzQ2FwdHVyZVBoYXNlTGlzdGVuZXIsIHJvb3RDb250YWluZXJFbGVtZW50LCB0YXJnZXRFbGVtZW50KSB7XG4gIHZhciBldmVudFN5c3RlbUZsYWdzID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAwO1xuICB2YXIgdGFyZ2V0ID0gcm9vdENvbnRhaW5lckVsZW1lbnQ7IC8vIHNlbGVjdGlvbmNoYW5nZSBuZWVkcyB0byBiZSBhdHRhY2hlZCB0byB0aGUgZG9jdW1lbnRcbiAgLy8gb3RoZXJ3aXNlIGl0IHdvbid0IGNhcHR1cmUgaW5jb21pbmcgZXZlbnRzIHRoYXQgYXJlIG9ubHlcbiAgLy8gdHJpZ2dlcmVkIG9uIHRoZSBkb2N1bWVudCBkaXJlY3RseS5cblxuICBpZiAoZG9tRXZlbnROYW1lID09PSAnc2VsZWN0aW9uY2hhbmdlJyAmJiByb290Q29udGFpbmVyRWxlbWVudC5ub2RlVHlwZSAhPT0gRE9DVU1FTlRfTk9ERSkge1xuICAgIHRhcmdldCA9IHJvb3RDb250YWluZXJFbGVtZW50Lm93bmVyRG9jdW1lbnQ7XG4gIH0gLy8gSWYgdGhlIGV2ZW50IGNhbiBiZSBkZWxlZ2F0ZWQgKG9yIGlzIGNhcHR1cmUgcGhhc2UpLCB3ZSBjYW5cbiAgLy8gcmVnaXN0ZXIgaXQgdG8gdGhlIHJvb3QgY29udGFpbmVyLiBPdGhlcndpc2UsIHdlIHNob3VsZFxuICAvLyByZWdpc3RlciB0aGUgZXZlbnQgdG8gdGhlIHRhcmdldCBlbGVtZW50IGFuZCBtYXJrIGl0IGFzXG4gIC8vIGEgbm9uLWRlbGVnYXRlZCBldmVudC5cblxuXG4gIGlmICh0YXJnZXRFbGVtZW50ICE9PSBudWxsICYmICFpc0NhcHR1cmVQaGFzZUxpc3RlbmVyICYmIG5vbkRlbGVnYXRlZEV2ZW50cy5oYXMoZG9tRXZlbnROYW1lKSkge1xuICAgIC8vIEZvciBhbGwgbm9uLWRlbGVnYXRlZCBldmVudHMsIGFwYXJ0IGZyb20gc2Nyb2xsLCB3ZSBhdHRhY2hcbiAgICAvLyB0aGVpciBldmVudCBsaXN0ZW5lcnMgdG8gdGhlIHJlc3BlY3RpdmUgZWxlbWVudHMgdGhhdCB0aGVpclxuICAgIC8vIGV2ZW50cyBmaXJlIG9uLiBUaGF0IG1lYW5zIHdlIGNhbiBza2lwIHRoaXMgc3RlcCwgYXMgZXZlbnRcbiAgICAvLyBsaXN0ZW5lciBoYXMgYWxyZWFkeSBiZWVuIGFkZGVkIHByZXZpb3VzbHkuIEhvd2V2ZXIsIHdlXG4gICAgLy8gc3BlY2lhbCBjYXNlIHRoZSBzY3JvbGwgZXZlbnQgYmVjYXVzZSB0aGUgcmVhbGl0eSBpcyB0aGF0IGFueVxuICAgIC8vIGVsZW1lbnQgY2FuIHNjcm9sbC5cbiAgICAvLyBUT0RPOiBpZGVhbGx5LCB3ZSdkIGV2ZW50dWFsbHkgYXBwbHkgdGhlIHNhbWUgbG9naWMgdG8gYWxsXG4gICAgLy8gZXZlbnRzIGZyb20gdGhlIG5vbkRlbGVnYXRlZEV2ZW50cyBsaXN0LiBUaGVuIHdlIGNhbiByZW1vdmVcbiAgICAvLyB0aGlzIHNwZWNpYWwgY2FzZSBhbmQgdXNlIHRoZSBzYW1lIGxvZ2ljIGZvciBhbGwgZXZlbnRzLlxuICAgIGlmIChkb21FdmVudE5hbWUgIT09ICdzY3JvbGwnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZXZlbnRTeXN0ZW1GbGFncyB8PSBJU19OT05fREVMRUdBVEVEO1xuICAgIHRhcmdldCA9IHRhcmdldEVsZW1lbnQ7XG4gIH1cblxuICB2YXIgbGlzdGVuZXJTZXQgPSBnZXRFdmVudExpc3RlbmVyU2V0KHRhcmdldCk7XG4gIHZhciBsaXN0ZW5lclNldEtleSA9IGdldExpc3RlbmVyU2V0S2V5KGRvbUV2ZW50TmFtZSwgaXNDYXB0dXJlUGhhc2VMaXN0ZW5lcik7IC8vIElmIHRoZSBsaXN0ZW5lciBlbnRyeSBpcyBlbXB0eSBvciB3ZSBzaG91bGQgdXBncmFkZSwgdGhlblxuICAvLyB3ZSBuZWVkIHRvIHRyYXAgYW4gZXZlbnQgbGlzdGVuZXIgb250byB0aGUgdGFyZ2V0LlxuXG4gIGlmICghbGlzdGVuZXJTZXQuaGFzKGxpc3RlbmVyU2V0S2V5KSkge1xuICAgIGlmIChpc0NhcHR1cmVQaGFzZUxpc3RlbmVyKSB7XG4gICAgICBldmVudFN5c3RlbUZsYWdzIHw9IElTX0NBUFRVUkVfUEhBU0U7XG4gICAgfVxuXG4gICAgYWRkVHJhcHBlZEV2ZW50TGlzdGVuZXIodGFyZ2V0LCBkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIGlzQ2FwdHVyZVBoYXNlTGlzdGVuZXIpO1xuICAgIGxpc3RlbmVyU2V0LmFkZChsaXN0ZW5lclNldEtleSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gYWRkVHJhcHBlZEV2ZW50TGlzdGVuZXIodGFyZ2V0Q29udGFpbmVyLCBkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIGlzQ2FwdHVyZVBoYXNlTGlzdGVuZXIsIGlzRGVmZXJyZWRMaXN0ZW5lckZvckxlZ2FjeUZCU3VwcG9ydCkge1xuICB2YXIgbGlzdGVuZXIgPSBjcmVhdGVFdmVudExpc3RlbmVyV3JhcHBlcldpdGhQcmlvcml0eSh0YXJnZXRDb250YWluZXIsIGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncyk7IC8vIElmIHBhc3NpdmUgb3B0aW9uIGlzIG5vdCBzdXBwb3J0ZWQsIHRoZW4gdGhlIGV2ZW50IHdpbGwgYmVcbiAgLy8gYWN0aXZlIGFuZCBub3QgcGFzc2l2ZS5cblxuICB2YXIgaXNQYXNzaXZlTGlzdGVuZXIgPSB1bmRlZmluZWQ7XG5cbiAgaWYgKHBhc3NpdmVCcm93c2VyRXZlbnRzU3VwcG9ydGVkKSB7XG4gICAgLy8gQnJvd3NlcnMgaW50cm9kdWNlZCBhbiBpbnRlcnZlbnRpb24sIG1ha2luZyB0aGVzZSBldmVudHNcbiAgICAvLyBwYXNzaXZlIGJ5IGRlZmF1bHQgb24gZG9jdW1lbnQuIFJlYWN0IGRvZXNuJ3QgYmluZCB0aGVtXG4gICAgLy8gdG8gZG9jdW1lbnQgYW55bW9yZSwgYnV0IGNoYW5naW5nIHRoaXMgbm93IHdvdWxkIHVuZG9cbiAgICAvLyB0aGUgcGVyZm9ybWFuY2Ugd2lucyBmcm9tIHRoZSBjaGFuZ2UuIFNvIHdlIGVtdWxhdGVcbiAgICAvLyB0aGUgZXhpc3RpbmcgYmVoYXZpb3IgbWFudWFsbHkgb24gdGhlIHJvb3RzIG5vdy5cbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzE5NjUxXG4gICAgaWYgKGRvbUV2ZW50TmFtZSA9PT0gJ3RvdWNoc3RhcnQnIHx8IGRvbUV2ZW50TmFtZSA9PT0gJ3RvdWNobW92ZScgfHwgZG9tRXZlbnROYW1lID09PSAnd2hlZWwnKSB7XG4gICAgICBpc1Bhc3NpdmVMaXN0ZW5lciA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgdGFyZ2V0Q29udGFpbmVyID0gIHRhcmdldENvbnRhaW5lcjtcbiAgdmFyIHVuc3Vic2NyaWJlTGlzdGVuZXI7IC8vIFdoZW4gbGVnYWN5RkJTdXBwb3J0IGlzIGVuYWJsZWQsIGl0J3MgZm9yIHdoZW4gd2VcblxuXG4gIGlmIChpc0NhcHR1cmVQaGFzZUxpc3RlbmVyKSB7XG4gICAgaWYgKGlzUGFzc2l2ZUxpc3RlbmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHVuc3Vic2NyaWJlTGlzdGVuZXIgPSBhZGRFdmVudENhcHR1cmVMaXN0ZW5lcldpdGhQYXNzaXZlRmxhZyh0YXJnZXRDb250YWluZXIsIGRvbUV2ZW50TmFtZSwgbGlzdGVuZXIsIGlzUGFzc2l2ZUxpc3RlbmVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdW5zdWJzY3JpYmVMaXN0ZW5lciA9IGFkZEV2ZW50Q2FwdHVyZUxpc3RlbmVyKHRhcmdldENvbnRhaW5lciwgZG9tRXZlbnROYW1lLCBsaXN0ZW5lcik7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmIChpc1Bhc3NpdmVMaXN0ZW5lciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB1bnN1YnNjcmliZUxpc3RlbmVyID0gYWRkRXZlbnRCdWJibGVMaXN0ZW5lcldpdGhQYXNzaXZlRmxhZyh0YXJnZXRDb250YWluZXIsIGRvbUV2ZW50TmFtZSwgbGlzdGVuZXIsIGlzUGFzc2l2ZUxpc3RlbmVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdW5zdWJzY3JpYmVMaXN0ZW5lciA9IGFkZEV2ZW50QnViYmxlTGlzdGVuZXIodGFyZ2V0Q29udGFpbmVyLCBkb21FdmVudE5hbWUsIGxpc3RlbmVyKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNNYXRjaGluZ1Jvb3RDb250YWluZXIoZ3JhbmRDb250YWluZXIsIHRhcmdldENvbnRhaW5lcikge1xuICByZXR1cm4gZ3JhbmRDb250YWluZXIgPT09IHRhcmdldENvbnRhaW5lciB8fCBncmFuZENvbnRhaW5lci5ub2RlVHlwZSA9PT0gQ09NTUVOVF9OT0RFICYmIGdyYW5kQ29udGFpbmVyLnBhcmVudE5vZGUgPT09IHRhcmdldENvbnRhaW5lcjtcbn1cblxuZnVuY3Rpb24gZGlzcGF0Y2hFdmVudEZvclBsdWdpbkV2ZW50U3lzdGVtKGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgbmF0aXZlRXZlbnQsIHRhcmdldEluc3QsIHRhcmdldENvbnRhaW5lcikge1xuICB2YXIgYW5jZXN0b3JJbnN0ID0gdGFyZ2V0SW5zdDtcblxuICBpZiAoKGV2ZW50U3lzdGVtRmxhZ3MgJiBJU19FVkVOVF9IQU5ETEVfTk9OX01BTkFHRURfTk9ERSkgPT09IDAgJiYgKGV2ZW50U3lzdGVtRmxhZ3MgJiBJU19OT05fREVMRUdBVEVEKSA9PT0gMCkge1xuICAgIHZhciB0YXJnZXRDb250YWluZXJOb2RlID0gdGFyZ2V0Q29udGFpbmVyOyAvLyBJZiB3ZSBhcmUgdXNpbmcgdGhlIGxlZ2FjeSBGQiBzdXBwb3J0IGZsYWcsIHdlXG5cbiAgICBpZiAodGFyZ2V0SW5zdCAhPT0gbnVsbCkge1xuICAgICAgLy8gVGhlIGJlbG93IGxvZ2ljIGF0dGVtcHRzIHRvIHdvcmsgb3V0IGlmIHdlIG5lZWQgdG8gY2hhbmdlXG4gICAgICAvLyB0aGUgdGFyZ2V0IGZpYmVyIHRvIGEgZGlmZmVyZW50IGFuY2VzdG9yLiBXZSBoYWQgc2ltaWxhciBsb2dpY1xuICAgICAgLy8gaW4gdGhlIGxlZ2FjeSBldmVudCBzeXN0ZW0sIGV4Y2VwdCB0aGUgYmlnIGRpZmZlcmVuY2UgYmV0d2VlblxuICAgICAgLy8gc3lzdGVtcyBpcyB0aGF0IHRoZSBtb2Rlcm4gZXZlbnQgc3lzdGVtIG5vdyBoYXMgYW4gZXZlbnQgbGlzdGVuZXJcbiAgICAgIC8vIGF0dGFjaGVkIHRvIGVhY2ggUmVhY3QgUm9vdCBhbmQgUmVhY3QgUG9ydGFsIFJvb3QuIFRvZ2V0aGVyLFxuICAgICAgLy8gdGhlIERPTSBub2RlcyByZXByZXNlbnRpbmcgdGhlc2Ugcm9vdHMgYXJlIHRoZSBcInJvb3RDb250YWluZXJcIi5cbiAgICAgIC8vIFRvIGZpZ3VyZSBvdXQgd2hpY2ggYW5jZXN0b3IgaW5zdGFuY2Ugd2Ugc2hvdWxkIHVzZSwgd2UgdHJhdmVyc2VcbiAgICAgIC8vIHVwIHRoZSBmaWJlciB0cmVlIGZyb20gdGhlIHRhcmdldCBpbnN0YW5jZSBhbmQgYXR0ZW1wdCB0byBmaW5kXG4gICAgICAvLyByb290IGJvdW5kYXJpZXMgdGhhdCBtYXRjaCB0aGF0IG9mIG91ciBjdXJyZW50IFwicm9vdENvbnRhaW5lclwiLlxuICAgICAgLy8gSWYgd2UgZmluZCB0aGF0IFwicm9vdENvbnRhaW5lclwiLCB3ZSBmaW5kIHRoZSBwYXJlbnQgZmliZXJcbiAgICAgIC8vIHN1Yi10cmVlIGZvciB0aGF0IHJvb3QgYW5kIG1ha2UgdGhhdCBvdXIgYW5jZXN0b3IgaW5zdGFuY2UuXG4gICAgICB2YXIgbm9kZSA9IHRhcmdldEluc3Q7XG5cbiAgICAgIG1haW5Mb29wOiB3aGlsZSAodHJ1ZSkge1xuICAgICAgICBpZiAobm9kZSA9PT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBub2RlVGFnID0gbm9kZS50YWc7XG5cbiAgICAgICAgaWYgKG5vZGVUYWcgPT09IEhvc3RSb290IHx8IG5vZGVUYWcgPT09IEhvc3RQb3J0YWwpIHtcbiAgICAgICAgICB2YXIgY29udGFpbmVyID0gbm9kZS5zdGF0ZU5vZGUuY29udGFpbmVySW5mbztcblxuICAgICAgICAgIGlmIChpc01hdGNoaW5nUm9vdENvbnRhaW5lcihjb250YWluZXIsIHRhcmdldENvbnRhaW5lck5vZGUpKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAobm9kZVRhZyA9PT0gSG9zdFBvcnRhbCkge1xuICAgICAgICAgICAgLy8gVGhlIHRhcmdldCBpcyBhIHBvcnRhbCwgYnV0IGl0J3Mgbm90IHRoZSByb290Q29udGFpbmVyIHdlJ3JlIGxvb2tpbmcgZm9yLlxuICAgICAgICAgICAgLy8gTm9ybWFsbHkgcG9ydGFscyBoYW5kbGUgdGhlaXIgb3duIGV2ZW50cyBhbGwgdGhlIHdheSBkb3duIHRvIHRoZSByb290LlxuICAgICAgICAgICAgLy8gU28gd2Ugc2hvdWxkIGJlIGFibGUgdG8gc3RvcCBub3cuIEhvd2V2ZXIsIHdlIGRvbid0IGtub3cgaWYgdGhpcyBwb3J0YWxcbiAgICAgICAgICAgIC8vIHdhcyBwYXJ0IG9mICpvdXIqIHJvb3QuXG4gICAgICAgICAgICB2YXIgZ3JhbmROb2RlID0gbm9kZS5yZXR1cm47XG5cbiAgICAgICAgICAgIHdoaWxlIChncmFuZE5vZGUgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgdmFyIGdyYW5kVGFnID0gZ3JhbmROb2RlLnRhZztcblxuICAgICAgICAgICAgICBpZiAoZ3JhbmRUYWcgPT09IEhvc3RSb290IHx8IGdyYW5kVGFnID09PSBIb3N0UG9ydGFsKSB7XG4gICAgICAgICAgICAgICAgdmFyIGdyYW5kQ29udGFpbmVyID0gZ3JhbmROb2RlLnN0YXRlTm9kZS5jb250YWluZXJJbmZvO1xuXG4gICAgICAgICAgICAgICAgaWYgKGlzTWF0Y2hpbmdSb290Q29udGFpbmVyKGdyYW5kQ29udGFpbmVyLCB0YXJnZXRDb250YWluZXJOb2RlKSkge1xuICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyB0aGUgcm9vdENvbnRhaW5lciB3ZSdyZSBsb29raW5nIGZvciBhbmQgd2UgZm91bmQgaXQgYXNcbiAgICAgICAgICAgICAgICAgIC8vIGEgcGFyZW50IG9mIHRoZSBQb3J0YWwuIFRoYXQgbWVhbnMgd2UgY2FuIGlnbm9yZSBpdCBiZWNhdXNlIHRoZVxuICAgICAgICAgICAgICAgICAgLy8gUG9ydGFsIHdpbGwgYnViYmxlIHRocm91Z2ggdG8gdXMuXG4gICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgZ3JhbmROb2RlID0gZ3JhbmROb2RlLnJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IC8vIE5vdyB3ZSBuZWVkIHRvIGZpbmQgaXQncyBjb3JyZXNwb25kaW5nIGhvc3QgZmliZXIgaW4gdGhlIG90aGVyXG4gICAgICAgICAgLy8gdHJlZS4gVG8gZG8gdGhpcyB3ZSBjYW4gdXNlIGdldENsb3Nlc3RJbnN0YW5jZUZyb21Ob2RlLCBidXQgd2VcbiAgICAgICAgICAvLyBuZWVkIHRvIHZhbGlkYXRlIHRoYXQgdGhlIGZpYmVyIGlzIGEgaG9zdCBpbnN0YW5jZSwgb3RoZXJ3aXNlXG4gICAgICAgICAgLy8gd2UgbmVlZCB0byB0cmF2ZXJzZSB1cCB0aHJvdWdoIHRoZSBET00gdGlsbCB3ZSBmaW5kIHRoZSBjb3JyZWN0XG4gICAgICAgICAgLy8gbm9kZSB0aGF0IGlzIGZyb20gdGhlIG90aGVyIHRyZWUuXG5cblxuICAgICAgICAgIHdoaWxlIChjb250YWluZXIgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHZhciBwYXJlbnROb2RlID0gZ2V0Q2xvc2VzdEluc3RhbmNlRnJvbU5vZGUoY29udGFpbmVyKTtcblxuICAgICAgICAgICAgaWYgKHBhcmVudE5vZGUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgcGFyZW50VGFnID0gcGFyZW50Tm9kZS50YWc7XG5cbiAgICAgICAgICAgIGlmIChwYXJlbnRUYWcgPT09IEhvc3RDb21wb25lbnQgfHwgcGFyZW50VGFnID09PSBIb3N0VGV4dCkge1xuICAgICAgICAgICAgICBub2RlID0gYW5jZXN0b3JJbnN0ID0gcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgY29udGludWUgbWFpbkxvb3A7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnRhaW5lciA9IGNvbnRhaW5lci5wYXJlbnROb2RlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIG5vZGUgPSBub2RlLnJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBiYXRjaGVkRXZlbnRVcGRhdGVzKGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gZGlzcGF0Y2hFdmVudHNGb3JQbHVnaW5zKGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgbmF0aXZlRXZlbnQsIGFuY2VzdG9ySW5zdCk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVEaXNwYXRjaExpc3RlbmVyKGluc3RhbmNlLCBsaXN0ZW5lciwgY3VycmVudFRhcmdldCkge1xuICByZXR1cm4ge1xuICAgIGluc3RhbmNlOiBpbnN0YW5jZSxcbiAgICBsaXN0ZW5lcjogbGlzdGVuZXIsXG4gICAgY3VycmVudFRhcmdldDogY3VycmVudFRhcmdldFxuICB9O1xufVxuXG5mdW5jdGlvbiBhY2N1bXVsYXRlU2luZ2xlUGhhc2VMaXN0ZW5lcnModGFyZ2V0RmliZXIsIHJlYWN0TmFtZSwgbmF0aXZlRXZlbnRUeXBlLCBpbkNhcHR1cmVQaGFzZSwgYWNjdW11bGF0ZVRhcmdldE9ubHkpIHtcbiAgdmFyIGNhcHR1cmVOYW1lID0gcmVhY3ROYW1lICE9PSBudWxsID8gcmVhY3ROYW1lICsgJ0NhcHR1cmUnIDogbnVsbDtcbiAgdmFyIHJlYWN0RXZlbnROYW1lID0gaW5DYXB0dXJlUGhhc2UgPyBjYXB0dXJlTmFtZSA6IHJlYWN0TmFtZTtcbiAgdmFyIGxpc3RlbmVycyA9IFtdO1xuICB2YXIgaW5zdGFuY2UgPSB0YXJnZXRGaWJlcjtcbiAgdmFyIGxhc3RIb3N0Q29tcG9uZW50ID0gbnVsbDsgLy8gQWNjdW11bGF0ZSBhbGwgaW5zdGFuY2VzIGFuZCBsaXN0ZW5lcnMgdmlhIHRoZSB0YXJnZXQgLT4gcm9vdCBwYXRoLlxuXG4gIHdoaWxlIChpbnN0YW5jZSAhPT0gbnVsbCkge1xuICAgIHZhciBfaW5zdGFuY2UyID0gaW5zdGFuY2UsXG4gICAgICAgIHN0YXRlTm9kZSA9IF9pbnN0YW5jZTIuc3RhdGVOb2RlLFxuICAgICAgICB0YWcgPSBfaW5zdGFuY2UyLnRhZzsgLy8gSGFuZGxlIGxpc3RlbmVycyB0aGF0IGFyZSBvbiBIb3N0Q29tcG9uZW50cyAoaS5lLiA8ZGl2PilcblxuICAgIGlmICh0YWcgPT09IEhvc3RDb21wb25lbnQgJiYgc3RhdGVOb2RlICE9PSBudWxsKSB7XG4gICAgICBsYXN0SG9zdENvbXBvbmVudCA9IHN0YXRlTm9kZTsgLy8gY3JlYXRlRXZlbnRIYW5kbGUgbGlzdGVuZXJzXG5cblxuICAgICAgaWYgKHJlYWN0RXZlbnROYW1lICE9PSBudWxsKSB7XG4gICAgICAgIHZhciBsaXN0ZW5lciA9IGdldExpc3RlbmVyKGluc3RhbmNlLCByZWFjdEV2ZW50TmFtZSk7XG5cbiAgICAgICAgaWYgKGxpc3RlbmVyICE9IG51bGwpIHtcbiAgICAgICAgICBsaXN0ZW5lcnMucHVzaChjcmVhdGVEaXNwYXRjaExpc3RlbmVyKGluc3RhbmNlLCBsaXN0ZW5lciwgbGFzdEhvc3RDb21wb25lbnQpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gLy8gSWYgd2UgYXJlIG9ubHkgYWNjdW11bGF0aW5nIGV2ZW50cyBmb3IgdGhlIHRhcmdldCwgdGhlbiB3ZSBkb24ndFxuICAgIC8vIGNvbnRpbnVlIHRvIHByb3BhZ2F0ZSB0aHJvdWdoIHRoZSBSZWFjdCBmaWJlciB0cmVlIHRvIGZpbmQgb3RoZXJcbiAgICAvLyBsaXN0ZW5lcnMuXG5cblxuICAgIGlmIChhY2N1bXVsYXRlVGFyZ2V0T25seSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgaW5zdGFuY2UgPSBpbnN0YW5jZS5yZXR1cm47XG4gIH1cblxuICByZXR1cm4gbGlzdGVuZXJzO1xufSAvLyBXZSBzaG91bGQgb25seSB1c2UgdGhpcyBmdW5jdGlvbiBmb3I6XG4vLyAtIEJlZm9yZUlucHV0RXZlbnRQbHVnaW5cbi8vIC0gQ2hhbmdlRXZlbnRQbHVnaW5cbi8vIC0gU2VsZWN0RXZlbnRQbHVnaW5cbi8vIFRoaXMgaXMgYmVjYXVzZSB3ZSBvbmx5IHByb2Nlc3MgdGhlc2UgcGx1Z2luc1xuLy8gaW4gdGhlIGJ1YmJsZSBwaGFzZSwgc28gd2UgbmVlZCB0byBhY2N1bXVsYXRlIHR3b1xuLy8gcGhhc2UgZXZlbnQgbGlzdGVuZXJzICh2aWEgZW11bGF0aW9uKS5cblxuZnVuY3Rpb24gYWNjdW11bGF0ZVR3b1BoYXNlTGlzdGVuZXJzKHRhcmdldEZpYmVyLCByZWFjdE5hbWUpIHtcbiAgdmFyIGNhcHR1cmVOYW1lID0gcmVhY3ROYW1lICsgJ0NhcHR1cmUnO1xuICB2YXIgbGlzdGVuZXJzID0gW107XG4gIHZhciBpbnN0YW5jZSA9IHRhcmdldEZpYmVyOyAvLyBBY2N1bXVsYXRlIGFsbCBpbnN0YW5jZXMgYW5kIGxpc3RlbmVycyB2aWEgdGhlIHRhcmdldCAtPiByb290IHBhdGguXG5cbiAgd2hpbGUgKGluc3RhbmNlICE9PSBudWxsKSB7XG4gICAgdmFyIF9pbnN0YW5jZTMgPSBpbnN0YW5jZSxcbiAgICAgICAgc3RhdGVOb2RlID0gX2luc3RhbmNlMy5zdGF0ZU5vZGUsXG4gICAgICAgIHRhZyA9IF9pbnN0YW5jZTMudGFnOyAvLyBIYW5kbGUgbGlzdGVuZXJzIHRoYXQgYXJlIG9uIEhvc3RDb21wb25lbnRzIChpLmUuIDxkaXY+KVxuXG4gICAgaWYgKHRhZyA9PT0gSG9zdENvbXBvbmVudCAmJiBzdGF0ZU5vZGUgIT09IG51bGwpIHtcbiAgICAgIHZhciBjdXJyZW50VGFyZ2V0ID0gc3RhdGVOb2RlO1xuICAgICAgdmFyIGNhcHR1cmVMaXN0ZW5lciA9IGdldExpc3RlbmVyKGluc3RhbmNlLCBjYXB0dXJlTmFtZSk7XG5cbiAgICAgIGlmIChjYXB0dXJlTGlzdGVuZXIgIT0gbnVsbCkge1xuICAgICAgICBsaXN0ZW5lcnMudW5zaGlmdChjcmVhdGVEaXNwYXRjaExpc3RlbmVyKGluc3RhbmNlLCBjYXB0dXJlTGlzdGVuZXIsIGN1cnJlbnRUYXJnZXQpKTtcbiAgICAgIH1cblxuICAgICAgdmFyIGJ1YmJsZUxpc3RlbmVyID0gZ2V0TGlzdGVuZXIoaW5zdGFuY2UsIHJlYWN0TmFtZSk7XG5cbiAgICAgIGlmIChidWJibGVMaXN0ZW5lciAhPSBudWxsKSB7XG4gICAgICAgIGxpc3RlbmVycy5wdXNoKGNyZWF0ZURpc3BhdGNoTGlzdGVuZXIoaW5zdGFuY2UsIGJ1YmJsZUxpc3RlbmVyLCBjdXJyZW50VGFyZ2V0KSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW5zdGFuY2UgPSBpbnN0YW5jZS5yZXR1cm47XG4gIH1cblxuICByZXR1cm4gbGlzdGVuZXJzO1xufVxuXG5mdW5jdGlvbiBnZXRQYXJlbnQoaW5zdCkge1xuICBpZiAoaW5zdCA9PT0gbnVsbCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgZG8ge1xuICAgIGluc3QgPSBpbnN0LnJldHVybjsgLy8gVE9ETzogSWYgdGhpcyBpcyBhIEhvc3RSb290IHdlIG1pZ2h0IHdhbnQgdG8gYmFpbCBvdXQuXG4gICAgLy8gVGhhdCBpcyBkZXBlbmRpbmcgb24gaWYgd2Ugd2FudCBuZXN0ZWQgc3VidHJlZXMgKGxheWVycykgdG8gYnViYmxlXG4gICAgLy8gZXZlbnRzIHRvIHRoZWlyIHBhcmVudC4gV2UgY291bGQgYWxzbyBnbyB0aHJvdWdoIHBhcmVudE5vZGUgb24gdGhlXG4gICAgLy8gaG9zdCBub2RlIGJ1dCB0aGF0IHdvdWxkbid0IHdvcmsgZm9yIFJlYWN0IE5hdGl2ZSBhbmQgZG9lc24ndCBsZXQgdXNcbiAgICAvLyBkbyB0aGUgcG9ydGFsIGZlYXR1cmUuXG4gIH0gd2hpbGUgKGluc3QgJiYgaW5zdC50YWcgIT09IEhvc3RDb21wb25lbnQpO1xuXG4gIGlmIChpbnN0KSB7XG4gICAgcmV0dXJuIGluc3Q7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cbi8qKlxuICogUmV0dXJuIHRoZSBsb3dlc3QgY29tbW9uIGFuY2VzdG9yIG9mIEEgYW5kIEIsIG9yIG51bGwgaWYgdGhleSBhcmUgaW5cbiAqIGRpZmZlcmVudCB0cmVlcy5cbiAqL1xuXG5cbmZ1bmN0aW9uIGdldExvd2VzdENvbW1vbkFuY2VzdG9yKGluc3RBLCBpbnN0Qikge1xuICB2YXIgbm9kZUEgPSBpbnN0QTtcbiAgdmFyIG5vZGVCID0gaW5zdEI7XG4gIHZhciBkZXB0aEEgPSAwO1xuXG4gIGZvciAodmFyIHRlbXBBID0gbm9kZUE7IHRlbXBBOyB0ZW1wQSA9IGdldFBhcmVudCh0ZW1wQSkpIHtcbiAgICBkZXB0aEErKztcbiAgfVxuXG4gIHZhciBkZXB0aEIgPSAwO1xuXG4gIGZvciAodmFyIHRlbXBCID0gbm9kZUI7IHRlbXBCOyB0ZW1wQiA9IGdldFBhcmVudCh0ZW1wQikpIHtcbiAgICBkZXB0aEIrKztcbiAgfSAvLyBJZiBBIGlzIGRlZXBlciwgY3Jhd2wgdXAuXG5cblxuICB3aGlsZSAoZGVwdGhBIC0gZGVwdGhCID4gMCkge1xuICAgIG5vZGVBID0gZ2V0UGFyZW50KG5vZGVBKTtcbiAgICBkZXB0aEEtLTtcbiAgfSAvLyBJZiBCIGlzIGRlZXBlciwgY3Jhd2wgdXAuXG5cblxuICB3aGlsZSAoZGVwdGhCIC0gZGVwdGhBID4gMCkge1xuICAgIG5vZGVCID0gZ2V0UGFyZW50KG5vZGVCKTtcbiAgICBkZXB0aEItLTtcbiAgfSAvLyBXYWxrIGluIGxvY2tzdGVwIHVudGlsIHdlIGZpbmQgYSBtYXRjaC5cblxuXG4gIHZhciBkZXB0aCA9IGRlcHRoQTtcblxuICB3aGlsZSAoZGVwdGgtLSkge1xuICAgIGlmIChub2RlQSA9PT0gbm9kZUIgfHwgbm9kZUIgIT09IG51bGwgJiYgbm9kZUEgPT09IG5vZGVCLmFsdGVybmF0ZSkge1xuICAgICAgcmV0dXJuIG5vZGVBO1xuICAgIH1cblxuICAgIG5vZGVBID0gZ2V0UGFyZW50KG5vZGVBKTtcbiAgICBub2RlQiA9IGdldFBhcmVudChub2RlQik7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gYWNjdW11bGF0ZUVudGVyTGVhdmVMaXN0ZW5lcnNGb3JFdmVudChkaXNwYXRjaFF1ZXVlLCBldmVudCwgdGFyZ2V0LCBjb21tb24sIGluQ2FwdHVyZVBoYXNlKSB7XG4gIHZhciByZWdpc3RyYXRpb25OYW1lID0gZXZlbnQuX3JlYWN0TmFtZTtcbiAgdmFyIGxpc3RlbmVycyA9IFtdO1xuICB2YXIgaW5zdGFuY2UgPSB0YXJnZXQ7XG5cbiAgd2hpbGUgKGluc3RhbmNlICE9PSBudWxsKSB7XG4gICAgaWYgKGluc3RhbmNlID09PSBjb21tb24pIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHZhciBfaW5zdGFuY2U0ID0gaW5zdGFuY2UsXG4gICAgICAgIGFsdGVybmF0ZSA9IF9pbnN0YW5jZTQuYWx0ZXJuYXRlLFxuICAgICAgICBzdGF0ZU5vZGUgPSBfaW5zdGFuY2U0LnN0YXRlTm9kZSxcbiAgICAgICAgdGFnID0gX2luc3RhbmNlNC50YWc7XG5cbiAgICBpZiAoYWx0ZXJuYXRlICE9PSBudWxsICYmIGFsdGVybmF0ZSA9PT0gY29tbW9uKSB7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBpZiAodGFnID09PSBIb3N0Q29tcG9uZW50ICYmIHN0YXRlTm9kZSAhPT0gbnVsbCkge1xuICAgICAgdmFyIGN1cnJlbnRUYXJnZXQgPSBzdGF0ZU5vZGU7XG5cbiAgICAgIGlmIChpbkNhcHR1cmVQaGFzZSkge1xuICAgICAgICB2YXIgY2FwdHVyZUxpc3RlbmVyID0gZ2V0TGlzdGVuZXIoaW5zdGFuY2UsIHJlZ2lzdHJhdGlvbk5hbWUpO1xuXG4gICAgICAgIGlmIChjYXB0dXJlTGlzdGVuZXIgIT0gbnVsbCkge1xuICAgICAgICAgIGxpc3RlbmVycy51bnNoaWZ0KGNyZWF0ZURpc3BhdGNoTGlzdGVuZXIoaW5zdGFuY2UsIGNhcHR1cmVMaXN0ZW5lciwgY3VycmVudFRhcmdldCkpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKCFpbkNhcHR1cmVQaGFzZSkge1xuICAgICAgICB2YXIgYnViYmxlTGlzdGVuZXIgPSBnZXRMaXN0ZW5lcihpbnN0YW5jZSwgcmVnaXN0cmF0aW9uTmFtZSk7XG5cbiAgICAgICAgaWYgKGJ1YmJsZUxpc3RlbmVyICE9IG51bGwpIHtcbiAgICAgICAgICBsaXN0ZW5lcnMucHVzaChjcmVhdGVEaXNwYXRjaExpc3RlbmVyKGluc3RhbmNlLCBidWJibGVMaXN0ZW5lciwgY3VycmVudFRhcmdldCkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW5zdGFuY2UgPSBpbnN0YW5jZS5yZXR1cm47XG4gIH1cblxuICBpZiAobGlzdGVuZXJzLmxlbmd0aCAhPT0gMCkge1xuICAgIGRpc3BhdGNoUXVldWUucHVzaCh7XG4gICAgICBldmVudDogZXZlbnQsXG4gICAgICBsaXN0ZW5lcnM6IGxpc3RlbmVyc1xuICAgIH0pO1xuICB9XG59IC8vIFdlIHNob3VsZCBvbmx5IHVzZSB0aGlzIGZ1bmN0aW9uIGZvcjpcbi8vIC0gRW50ZXJMZWF2ZUV2ZW50UGx1Z2luXG4vLyBUaGlzIGlzIGJlY2F1c2Ugd2Ugb25seSBwcm9jZXNzIHRoaXMgcGx1Z2luXG4vLyBpbiB0aGUgYnViYmxlIHBoYXNlLCBzbyB3ZSBuZWVkIHRvIGFjY3VtdWxhdGUgdHdvXG4vLyBwaGFzZSBldmVudCBsaXN0ZW5lcnMuXG5cblxuZnVuY3Rpb24gYWNjdW11bGF0ZUVudGVyTGVhdmVUd29QaGFzZUxpc3RlbmVycyhkaXNwYXRjaFF1ZXVlLCBsZWF2ZUV2ZW50LCBlbnRlckV2ZW50LCBmcm9tLCB0bykge1xuICB2YXIgY29tbW9uID0gZnJvbSAmJiB0byA/IGdldExvd2VzdENvbW1vbkFuY2VzdG9yKGZyb20sIHRvKSA6IG51bGw7XG5cbiAgaWYgKGZyb20gIT09IG51bGwpIHtcbiAgICBhY2N1bXVsYXRlRW50ZXJMZWF2ZUxpc3RlbmVyc0ZvckV2ZW50KGRpc3BhdGNoUXVldWUsIGxlYXZlRXZlbnQsIGZyb20sIGNvbW1vbiwgZmFsc2UpO1xuICB9XG5cbiAgaWYgKHRvICE9PSBudWxsICYmIGVudGVyRXZlbnQgIT09IG51bGwpIHtcbiAgICBhY2N1bXVsYXRlRW50ZXJMZWF2ZUxpc3RlbmVyc0ZvckV2ZW50KGRpc3BhdGNoUXVldWUsIGVudGVyRXZlbnQsIHRvLCBjb21tb24sIHRydWUpO1xuICB9XG59XG5mdW5jdGlvbiBnZXRMaXN0ZW5lclNldEtleShkb21FdmVudE5hbWUsIGNhcHR1cmUpIHtcbiAgcmV0dXJuIGRvbUV2ZW50TmFtZSArIFwiX19cIiArIChjYXB0dXJlID8gJ2NhcHR1cmUnIDogJ2J1YmJsZScpO1xufVxuXG52YXIgZGlkV2FybkludmFsaWRIeWRyYXRpb24gPSBmYWxzZTtcbnZhciBEQU5HRVJPVVNMWV9TRVRfSU5ORVJfSFRNTCA9ICdkYW5nZXJvdXNseVNldElubmVySFRNTCc7XG52YXIgU1VQUFJFU1NfQ09OVEVOVF9FRElUQUJMRV9XQVJOSU5HID0gJ3N1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZyc7XG52YXIgU1VQUFJFU1NfSFlEUkFUSU9OX1dBUk5JTkcgPSAnc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nJztcbnZhciBBVVRPRk9DVVMgPSAnYXV0b0ZvY3VzJztcbnZhciBDSElMRFJFTiA9ICdjaGlsZHJlbic7XG52YXIgU1RZTEUgPSAnc3R5bGUnO1xudmFyIEhUTUwkMSA9ICdfX2h0bWwnO1xudmFyIEhUTUxfTkFNRVNQQUNFJDEgPSBOYW1lc3BhY2VzLmh0bWw7XG52YXIgd2FybmVkVW5rbm93blRhZ3M7XG52YXIgc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nO1xudmFyIHZhbGlkYXRlUHJvcGVydGllc0luRGV2ZWxvcG1lbnQ7XG52YXIgd2FybkZvclRleHREaWZmZXJlbmNlO1xudmFyIHdhcm5Gb3JQcm9wRGlmZmVyZW5jZTtcbnZhciB3YXJuRm9yRXh0cmFBdHRyaWJ1dGVzO1xudmFyIHdhcm5Gb3JJbnZhbGlkRXZlbnRMaXN0ZW5lcjtcbnZhciBjYW5EaWZmU3R5bGVGb3JIeWRyYXRpb25XYXJuaW5nO1xudmFyIG5vcm1hbGl6ZU1hcmt1cEZvclRleHRPckF0dHJpYnV0ZTtcbnZhciBub3JtYWxpemVIVE1MO1xuXG57XG4gIHdhcm5lZFVua25vd25UYWdzID0ge1xuICAgIC8vIFRoZXJlIGFyZSB3b3JraW5nIHBvbHlmaWxscyBmb3IgPGRpYWxvZz4uIExldCBwZW9wbGUgdXNlIGl0LlxuICAgIGRpYWxvZzogdHJ1ZSxcbiAgICAvLyBFbGVjdHJvbiBzaGlwcyBhIGN1c3RvbSA8d2Vidmlldz4gdGFnIHRvIGRpc3BsYXkgZXh0ZXJuYWwgd2ViIGNvbnRlbnQgaW5cbiAgICAvLyBhbiBpc29sYXRlZCBmcmFtZSBhbmQgcHJvY2Vzcy5cbiAgICAvLyBUaGlzIHRhZyBpcyBub3QgcHJlc2VudCBpbiBub24gRWxlY3Ryb24gZW52aXJvbm1lbnRzIHN1Y2ggYXMgSlNEb20gd2hpY2hcbiAgICAvLyBpcyBvZnRlbiB1c2VkIGZvciB0ZXN0aW5nIHB1cnBvc2VzLlxuICAgIC8vIEBzZWUgaHR0cHM6Ly9lbGVjdHJvbmpzLm9yZy9kb2NzL2FwaS93ZWJ2aWV3LXRhZ1xuICAgIHdlYnZpZXc6IHRydWVcbiAgfTtcblxuICB2YWxpZGF0ZVByb3BlcnRpZXNJbkRldmVsb3BtZW50ID0gZnVuY3Rpb24gKHR5cGUsIHByb3BzKSB7XG4gICAgdmFsaWRhdGVQcm9wZXJ0aWVzKHR5cGUsIHByb3BzKTtcbiAgICB2YWxpZGF0ZVByb3BlcnRpZXMkMSh0eXBlLCBwcm9wcyk7XG4gICAgdmFsaWRhdGVQcm9wZXJ0aWVzJDIodHlwZSwgcHJvcHMsIHtcbiAgICAgIHJlZ2lzdHJhdGlvbk5hbWVEZXBlbmRlbmNpZXM6IHJlZ2lzdHJhdGlvbk5hbWVEZXBlbmRlbmNpZXMsXG4gICAgICBwb3NzaWJsZVJlZ2lzdHJhdGlvbk5hbWVzOiBwb3NzaWJsZVJlZ2lzdHJhdGlvbk5hbWVzXG4gICAgfSk7XG4gIH07IC8vIElFIDExIHBhcnNlcyAmIG5vcm1hbGl6ZXMgdGhlIHN0eWxlIGF0dHJpYnV0ZSBhcyBvcHBvc2VkIHRvIG90aGVyXG4gIC8vIGJyb3dzZXJzLiBJdCBhZGRzIHNwYWNlcyBhbmQgc29ydHMgdGhlIHByb3BlcnRpZXMgaW4gc29tZVxuICAvLyBub24tYWxwaGFiZXRpY2FsIG9yZGVyLiBIYW5kbGluZyB0aGF0IHdvdWxkIHJlcXVpcmUgc29ydGluZyBDU1NcbiAgLy8gcHJvcGVydGllcyBpbiB0aGUgY2xpZW50ICYgc2VydmVyIHZlcnNpb25zIG9yIGFwcGx5aW5nXG4gIC8vIGBleHBlY3RlZFN0eWxlYCB0byBhIHRlbXBvcmFyeSBET00gbm9kZSB0byByZWFkIGl0cyBgc3R5bGVgIGF0dHJpYnV0ZVxuICAvLyBub3JtYWxpemVkLiBTaW5jZSBpdCBvbmx5IGFmZmVjdHMgSUUsIHdlJ3JlIHNraXBwaW5nIHN0eWxlIHdhcm5pbmdzXG4gIC8vIGluIHRoYXQgYnJvd3NlciBjb21wbGV0ZWx5IGluIGZhdm9yIG9mIGRvaW5nIGFsbCB0aGF0IHdvcmsuXG4gIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzExODA3XG5cblxuICBjYW5EaWZmU3R5bGVGb3JIeWRyYXRpb25XYXJuaW5nID0gY2FuVXNlRE9NICYmICFkb2N1bWVudC5kb2N1bWVudE1vZGU7IC8vIEhUTUwgcGFyc2luZyBub3JtYWxpemVzIENSIGFuZCBDUkxGIHRvIExGLlxuICAvLyBJdCBhbHNvIGNhbiB0dXJuIFxcdTAwMDAgaW50byBcXHVGRkZEIGluc2lkZSBhdHRyaWJ1dGVzLlxuICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvaHRtbDUvc2luZ2xlLXBhZ2UuaHRtbCNwcmVwcm9jZXNzaW5nLXRoZS1pbnB1dC1zdHJlYW1cbiAgLy8gSWYgd2UgaGF2ZSBhIG1pc21hdGNoLCBpdCBtaWdodCBiZSBjYXVzZWQgYnkgdGhhdC5cbiAgLy8gV2Ugd2lsbCBzdGlsbCBwYXRjaCB1cCBpbiB0aGlzIGNhc2UgYnV0IG5vdCBmaXJlIHRoZSB3YXJuaW5nLlxuXG4gIHZhciBOT1JNQUxJWkVfTkVXTElORVNfUkVHRVggPSAvXFxyXFxuPy9nO1xuICB2YXIgTk9STUFMSVpFX05VTExfQU5EX1JFUExBQ0VNRU5UX1JFR0VYID0gL1xcdTAwMDB8XFx1RkZGRC9nO1xuXG4gIG5vcm1hbGl6ZU1hcmt1cEZvclRleHRPckF0dHJpYnV0ZSA9IGZ1bmN0aW9uIChtYXJrdXApIHtcbiAgICB2YXIgbWFya3VwU3RyaW5nID0gdHlwZW9mIG1hcmt1cCA9PT0gJ3N0cmluZycgPyBtYXJrdXAgOiAnJyArIG1hcmt1cDtcbiAgICByZXR1cm4gbWFya3VwU3RyaW5nLnJlcGxhY2UoTk9STUFMSVpFX05FV0xJTkVTX1JFR0VYLCAnXFxuJykucmVwbGFjZShOT1JNQUxJWkVfTlVMTF9BTkRfUkVQTEFDRU1FTlRfUkVHRVgsICcnKTtcbiAgfTtcblxuICB3YXJuRm9yVGV4dERpZmZlcmVuY2UgPSBmdW5jdGlvbiAoc2VydmVyVGV4dCwgY2xpZW50VGV4dCkge1xuICAgIGlmIChkaWRXYXJuSW52YWxpZEh5ZHJhdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciBub3JtYWxpemVkQ2xpZW50VGV4dCA9IG5vcm1hbGl6ZU1hcmt1cEZvclRleHRPckF0dHJpYnV0ZShjbGllbnRUZXh0KTtcbiAgICB2YXIgbm9ybWFsaXplZFNlcnZlclRleHQgPSBub3JtYWxpemVNYXJrdXBGb3JUZXh0T3JBdHRyaWJ1dGUoc2VydmVyVGV4dCk7XG5cbiAgICBpZiAobm9ybWFsaXplZFNlcnZlclRleHQgPT09IG5vcm1hbGl6ZWRDbGllbnRUZXh0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZGlkV2FybkludmFsaWRIeWRyYXRpb24gPSB0cnVlO1xuXG4gICAgZXJyb3IoJ1RleHQgY29udGVudCBkaWQgbm90IG1hdGNoLiBTZXJ2ZXI6IFwiJXNcIiBDbGllbnQ6IFwiJXNcIicsIG5vcm1hbGl6ZWRTZXJ2ZXJUZXh0LCBub3JtYWxpemVkQ2xpZW50VGV4dCk7XG4gIH07XG5cbiAgd2FybkZvclByb3BEaWZmZXJlbmNlID0gZnVuY3Rpb24gKHByb3BOYW1lLCBzZXJ2ZXJWYWx1ZSwgY2xpZW50VmFsdWUpIHtcbiAgICBpZiAoZGlkV2FybkludmFsaWRIeWRyYXRpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2YXIgbm9ybWFsaXplZENsaWVudFZhbHVlID0gbm9ybWFsaXplTWFya3VwRm9yVGV4dE9yQXR0cmlidXRlKGNsaWVudFZhbHVlKTtcbiAgICB2YXIgbm9ybWFsaXplZFNlcnZlclZhbHVlID0gbm9ybWFsaXplTWFya3VwRm9yVGV4dE9yQXR0cmlidXRlKHNlcnZlclZhbHVlKTtcblxuICAgIGlmIChub3JtYWxpemVkU2VydmVyVmFsdWUgPT09IG5vcm1hbGl6ZWRDbGllbnRWYWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGRpZFdhcm5JbnZhbGlkSHlkcmF0aW9uID0gdHJ1ZTtcblxuICAgIGVycm9yKCdQcm9wIGAlc2AgZGlkIG5vdCBtYXRjaC4gU2VydmVyOiAlcyBDbGllbnQ6ICVzJywgcHJvcE5hbWUsIEpTT04uc3RyaW5naWZ5KG5vcm1hbGl6ZWRTZXJ2ZXJWYWx1ZSksIEpTT04uc3RyaW5naWZ5KG5vcm1hbGl6ZWRDbGllbnRWYWx1ZSkpO1xuICB9O1xuXG4gIHdhcm5Gb3JFeHRyYUF0dHJpYnV0ZXMgPSBmdW5jdGlvbiAoYXR0cmlidXRlTmFtZXMpIHtcbiAgICBpZiAoZGlkV2FybkludmFsaWRIeWRyYXRpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBkaWRXYXJuSW52YWxpZEh5ZHJhdGlvbiA9IHRydWU7XG4gICAgdmFyIG5hbWVzID0gW107XG4gICAgYXR0cmlidXRlTmFtZXMuZm9yRWFjaChmdW5jdGlvbiAobmFtZSkge1xuICAgICAgbmFtZXMucHVzaChuYW1lKTtcbiAgICB9KTtcblxuICAgIGVycm9yKCdFeHRyYSBhdHRyaWJ1dGVzIGZyb20gdGhlIHNlcnZlcjogJXMnLCBuYW1lcyk7XG4gIH07XG5cbiAgd2FybkZvckludmFsaWRFdmVudExpc3RlbmVyID0gZnVuY3Rpb24gKHJlZ2lzdHJhdGlvbk5hbWUsIGxpc3RlbmVyKSB7XG4gICAgaWYgKGxpc3RlbmVyID09PSBmYWxzZSkge1xuICAgICAgZXJyb3IoJ0V4cGVjdGVkIGAlc2AgbGlzdGVuZXIgdG8gYmUgYSBmdW5jdGlvbiwgaW5zdGVhZCBnb3QgYGZhbHNlYC5cXG5cXG4nICsgJ0lmIHlvdSB1c2VkIHRvIGNvbmRpdGlvbmFsbHkgb21pdCBpdCB3aXRoICVzPXtjb25kaXRpb24gJiYgdmFsdWV9LCAnICsgJ3Bhc3MgJXM9e2NvbmRpdGlvbiA/IHZhbHVlIDogdW5kZWZpbmVkfSBpbnN0ZWFkLicsIHJlZ2lzdHJhdGlvbk5hbWUsIHJlZ2lzdHJhdGlvbk5hbWUsIHJlZ2lzdHJhdGlvbk5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBlcnJvcignRXhwZWN0ZWQgYCVzYCBsaXN0ZW5lciB0byBiZSBhIGZ1bmN0aW9uLCBpbnN0ZWFkIGdvdCBhIHZhbHVlIG9mIGAlc2AgdHlwZS4nLCByZWdpc3RyYXRpb25OYW1lLCB0eXBlb2YgbGlzdGVuZXIpO1xuICAgIH1cbiAgfTsgLy8gUGFyc2UgdGhlIEhUTUwgYW5kIHJlYWQgaXQgYmFjayB0byBub3JtYWxpemUgdGhlIEhUTUwgc3RyaW5nIHNvIHRoYXQgaXRcbiAgLy8gY2FuIGJlIHVzZWQgZm9yIGNvbXBhcmlzb24uXG5cblxuICBub3JtYWxpemVIVE1MID0gZnVuY3Rpb24gKHBhcmVudCwgaHRtbCkge1xuICAgIC8vIFdlIGNvdWxkIGhhdmUgY3JlYXRlZCBhIHNlcGFyYXRlIGRvY3VtZW50IGhlcmUgdG8gYXZvaWRcbiAgICAvLyByZS1pbml0aWFsaXppbmcgY3VzdG9tIGVsZW1lbnRzIGlmIHRoZXkgZXhpc3QuIEJ1dCB0aGlzIGJyZWFrc1xuICAgIC8vIGhvdyA8bm9zY3JpcHQ+IGlzIGJlaW5nIGhhbmRsZWQuIFNvIHdlIHVzZSB0aGUgc2FtZSBkb2N1bWVudC5cbiAgICAvLyBTZWUgdGhlIGRpc2N1c3Npb24gaW4gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L3B1bGwvMTExNTcuXG4gICAgdmFyIHRlc3RFbGVtZW50ID0gcGFyZW50Lm5hbWVzcGFjZVVSSSA9PT0gSFRNTF9OQU1FU1BBQ0UkMSA/IHBhcmVudC5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQocGFyZW50LnRhZ05hbWUpIDogcGFyZW50Lm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHBhcmVudC5uYW1lc3BhY2VVUkksIHBhcmVudC50YWdOYW1lKTtcbiAgICB0ZXN0RWxlbWVudC5pbm5lckhUTUwgPSBodG1sO1xuICAgIHJldHVybiB0ZXN0RWxlbWVudC5pbm5lckhUTUw7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldE93bmVyRG9jdW1lbnRGcm9tUm9vdENvbnRhaW5lcihyb290Q29udGFpbmVyRWxlbWVudCkge1xuICByZXR1cm4gcm9vdENvbnRhaW5lckVsZW1lbnQubm9kZVR5cGUgPT09IERPQ1VNRU5UX05PREUgPyByb290Q29udGFpbmVyRWxlbWVudCA6IHJvb3RDb250YWluZXJFbGVtZW50Lm93bmVyRG9jdW1lbnQ7XG59XG5cbmZ1bmN0aW9uIG5vb3AoKSB7fVxuXG5mdW5jdGlvbiB0cmFwQ2xpY2tPbk5vbkludGVyYWN0aXZlRWxlbWVudChub2RlKSB7XG4gIC8vIE1vYmlsZSBTYWZhcmkgZG9lcyBub3QgZmlyZSBwcm9wZXJseSBidWJibGUgY2xpY2sgZXZlbnRzIG9uXG4gIC8vIG5vbi1pbnRlcmFjdGl2ZSBlbGVtZW50cywgd2hpY2ggbWVhbnMgZGVsZWdhdGVkIGNsaWNrIGxpc3RlbmVycyBkbyBub3RcbiAgLy8gZmlyZS4gVGhlIHdvcmthcm91bmQgZm9yIHRoaXMgYnVnIGludm9sdmVzIGF0dGFjaGluZyBhbiBlbXB0eSBjbGlja1xuICAvLyBsaXN0ZW5lciBvbiB0aGUgdGFyZ2V0IG5vZGUuXG4gIC8vIGh0dHBzOi8vd3d3LnF1aXJrc21vZGUub3JnL2Jsb2cvYXJjaGl2ZXMvMjAxMC8wOS9jbGlja19ldmVudF9kZWwuaHRtbFxuICAvLyBKdXN0IHNldCBpdCB1c2luZyB0aGUgb25jbGljayBwcm9wZXJ0eSBzbyB0aGF0IHdlIGRvbid0IGhhdmUgdG8gbWFuYWdlIGFueVxuICAvLyBib29ra2VlcGluZyBmb3IgaXQuIE5vdCBzdXJlIGlmIHdlIG5lZWQgdG8gY2xlYXIgaXQgd2hlbiB0aGUgbGlzdGVuZXIgaXNcbiAgLy8gcmVtb3ZlZC5cbiAgLy8gVE9ETzogT25seSBkbyB0aGlzIGZvciB0aGUgcmVsZXZhbnQgU2FmYXJpcyBtYXliZT9cbiAgbm9kZS5vbmNsaWNrID0gbm9vcDtcbn1cblxuZnVuY3Rpb24gc2V0SW5pdGlhbERPTVByb3BlcnRpZXModGFnLCBkb21FbGVtZW50LCByb290Q29udGFpbmVyRWxlbWVudCwgbmV4dFByb3BzLCBpc0N1c3RvbUNvbXBvbmVudFRhZykge1xuICBmb3IgKHZhciBwcm9wS2V5IGluIG5leHRQcm9wcykge1xuICAgIGlmICghbmV4dFByb3BzLmhhc093blByb3BlcnR5KHByb3BLZXkpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICB2YXIgbmV4dFByb3AgPSBuZXh0UHJvcHNbcHJvcEtleV07XG5cbiAgICBpZiAocHJvcEtleSA9PT0gU1RZTEUpIHtcbiAgICAgIHtcbiAgICAgICAgaWYgKG5leHRQcm9wKSB7XG4gICAgICAgICAgLy8gRnJlZXplIHRoZSBuZXh0IHN0eWxlIG9iamVjdCBzbyB0aGF0IHdlIGNhbiBhc3N1bWUgaXQgd29uJ3QgYmVcbiAgICAgICAgICAvLyBtdXRhdGVkLiBXZSBoYXZlIGFscmVhZHkgd2FybmVkIGZvciB0aGlzIGluIHRoZSBwYXN0LlxuICAgICAgICAgIE9iamVjdC5mcmVlemUobmV4dFByb3ApO1xuICAgICAgICB9XG4gICAgICB9IC8vIFJlbGllcyBvbiBgdXBkYXRlU3R5bGVzQnlJRGAgbm90IG11dGF0aW5nIGBzdHlsZVVwZGF0ZXNgLlxuXG5cbiAgICAgIHNldFZhbHVlRm9yU3R5bGVzKGRvbUVsZW1lbnQsIG5leHRQcm9wKTtcbiAgICB9IGVsc2UgaWYgKHByb3BLZXkgPT09IERBTkdFUk9VU0xZX1NFVF9JTk5FUl9IVE1MKSB7XG4gICAgICB2YXIgbmV4dEh0bWwgPSBuZXh0UHJvcCA/IG5leHRQcm9wW0hUTUwkMV0gOiB1bmRlZmluZWQ7XG5cbiAgICAgIGlmIChuZXh0SHRtbCAhPSBudWxsKSB7XG4gICAgICAgIHNldElubmVySFRNTChkb21FbGVtZW50LCBuZXh0SHRtbCk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChwcm9wS2V5ID09PSBDSElMRFJFTikge1xuICAgICAgaWYgKHR5cGVvZiBuZXh0UHJvcCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgLy8gQXZvaWQgc2V0dGluZyBpbml0aWFsIHRleHRDb250ZW50IHdoZW4gdGhlIHRleHQgaXMgZW1wdHkuIEluIElFMTEgc2V0dGluZ1xuICAgICAgICAvLyB0ZXh0Q29udGVudCBvbiBhIDx0ZXh0YXJlYT4gd2lsbCBjYXVzZSB0aGUgcGxhY2Vob2xkZXIgdG8gbm90XG4gICAgICAgIC8vIHNob3cgd2l0aGluIHRoZSA8dGV4dGFyZWE+IHVudGlsIGl0IGhhcyBiZWVuIGZvY3VzZWQgYW5kIGJsdXJyZWQgYWdhaW4uXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvNjczMSNpc3N1ZWNvbW1lbnQtMjU0ODc0NTUzXG4gICAgICAgIHZhciBjYW5TZXRUZXh0Q29udGVudCA9IHRhZyAhPT0gJ3RleHRhcmVhJyB8fCBuZXh0UHJvcCAhPT0gJyc7XG5cbiAgICAgICAgaWYgKGNhblNldFRleHRDb250ZW50KSB7XG4gICAgICAgICAgc2V0VGV4dENvbnRlbnQoZG9tRWxlbWVudCwgbmV4dFByb3ApO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBuZXh0UHJvcCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgc2V0VGV4dENvbnRlbnQoZG9tRWxlbWVudCwgJycgKyBuZXh0UHJvcCk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChwcm9wS2V5ID09PSBTVVBQUkVTU19DT05URU5UX0VESVRBQkxFX1dBUk5JTkcgfHwgcHJvcEtleSA9PT0gU1VQUFJFU1NfSFlEUkFUSU9OX1dBUk5JTkcpIDsgZWxzZSBpZiAocHJvcEtleSA9PT0gQVVUT0ZPQ1VTKSA7IGVsc2UgaWYgKHJlZ2lzdHJhdGlvbk5hbWVEZXBlbmRlbmNpZXMuaGFzT3duUHJvcGVydHkocHJvcEtleSkpIHtcbiAgICAgIGlmIChuZXh0UHJvcCAhPSBudWxsKSB7XG4gICAgICAgIGlmICggdHlwZW9mIG5leHRQcm9wICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgd2FybkZvckludmFsaWRFdmVudExpc3RlbmVyKHByb3BLZXksIG5leHRQcm9wKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwcm9wS2V5ID09PSAnb25TY3JvbGwnKSB7XG4gICAgICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudCgnc2Nyb2xsJywgZG9tRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKG5leHRQcm9wICE9IG51bGwpIHtcbiAgICAgIHNldFZhbHVlRm9yUHJvcGVydHkoZG9tRWxlbWVudCwgcHJvcEtleSwgbmV4dFByb3AsIGlzQ3VzdG9tQ29tcG9uZW50VGFnKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gdXBkYXRlRE9NUHJvcGVydGllcyhkb21FbGVtZW50LCB1cGRhdGVQYXlsb2FkLCB3YXNDdXN0b21Db21wb25lbnRUYWcsIGlzQ3VzdG9tQ29tcG9uZW50VGFnKSB7XG4gIC8vIFRPRE86IEhhbmRsZSB3YXNDdXN0b21Db21wb25lbnRUYWdcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCB1cGRhdGVQYXlsb2FkLmxlbmd0aDsgaSArPSAyKSB7XG4gICAgdmFyIHByb3BLZXkgPSB1cGRhdGVQYXlsb2FkW2ldO1xuICAgIHZhciBwcm9wVmFsdWUgPSB1cGRhdGVQYXlsb2FkW2kgKyAxXTtcblxuICAgIGlmIChwcm9wS2V5ID09PSBTVFlMRSkge1xuICAgICAgc2V0VmFsdWVGb3JTdHlsZXMoZG9tRWxlbWVudCwgcHJvcFZhbHVlKTtcbiAgICB9IGVsc2UgaWYgKHByb3BLZXkgPT09IERBTkdFUk9VU0xZX1NFVF9JTk5FUl9IVE1MKSB7XG4gICAgICBzZXRJbm5lckhUTUwoZG9tRWxlbWVudCwgcHJvcFZhbHVlKTtcbiAgICB9IGVsc2UgaWYgKHByb3BLZXkgPT09IENISUxEUkVOKSB7XG4gICAgICBzZXRUZXh0Q29udGVudChkb21FbGVtZW50LCBwcm9wVmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRWYWx1ZUZvclByb3BlcnR5KGRvbUVsZW1lbnQsIHByb3BLZXksIHByb3BWYWx1ZSwgaXNDdXN0b21Db21wb25lbnRUYWcpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjcmVhdGVFbGVtZW50KHR5cGUsIHByb3BzLCByb290Q29udGFpbmVyRWxlbWVudCwgcGFyZW50TmFtZXNwYWNlKSB7XG4gIHZhciBpc0N1c3RvbUNvbXBvbmVudFRhZzsgLy8gV2UgY3JlYXRlIHRhZ3MgaW4gdGhlIG5hbWVzcGFjZSBvZiB0aGVpciBwYXJlbnQgY29udGFpbmVyLCBleGNlcHQgSFRNTFxuICAvLyB0YWdzIGdldCBubyBuYW1lc3BhY2UuXG5cbiAgdmFyIG93bmVyRG9jdW1lbnQgPSBnZXRPd25lckRvY3VtZW50RnJvbVJvb3RDb250YWluZXIocm9vdENvbnRhaW5lckVsZW1lbnQpO1xuICB2YXIgZG9tRWxlbWVudDtcbiAgdmFyIG5hbWVzcGFjZVVSSSA9IHBhcmVudE5hbWVzcGFjZTtcblxuICBpZiAobmFtZXNwYWNlVVJJID09PSBIVE1MX05BTUVTUEFDRSQxKSB7XG4gICAgbmFtZXNwYWNlVVJJID0gZ2V0SW50cmluc2ljTmFtZXNwYWNlKHR5cGUpO1xuICB9XG5cbiAgaWYgKG5hbWVzcGFjZVVSSSA9PT0gSFRNTF9OQU1FU1BBQ0UkMSkge1xuICAgIHtcbiAgICAgIGlzQ3VzdG9tQ29tcG9uZW50VGFnID0gaXNDdXN0b21Db21wb25lbnQodHlwZSwgcHJvcHMpOyAvLyBTaG91bGQgdGhpcyBjaGVjayBiZSBnYXRlZCBieSBwYXJlbnQgbmFtZXNwYWNlPyBOb3Qgc3VyZSB3ZSB3YW50IHRvXG4gICAgICAvLyBhbGxvdyA8U1ZHPiBvciA8bUFUSD4uXG5cbiAgICAgIGlmICghaXNDdXN0b21Db21wb25lbnRUYWcgJiYgdHlwZSAhPT0gdHlwZS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgIGVycm9yKCc8JXMgLz4gaXMgdXNpbmcgaW5jb3JyZWN0IGNhc2luZy4gJyArICdVc2UgUGFzY2FsQ2FzZSBmb3IgUmVhY3QgY29tcG9uZW50cywgJyArICdvciBsb3dlcmNhc2UgZm9yIEhUTUwgZWxlbWVudHMuJywgdHlwZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHR5cGUgPT09ICdzY3JpcHQnKSB7XG4gICAgICAvLyBDcmVhdGUgdGhlIHNjcmlwdCB2aWEgLmlubmVySFRNTCBzbyBpdHMgXCJwYXJzZXItaW5zZXJ0ZWRcIiBmbGFnIGlzXG4gICAgICAvLyBzZXQgdG8gdHJ1ZSBhbmQgaXQgZG9lcyBub3QgZXhlY3V0ZVxuICAgICAgdmFyIGRpdiA9IG93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG5cbiAgICAgIGRpdi5pbm5lckhUTUwgPSAnPHNjcmlwdD48JyArICcvc2NyaXB0Pic7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiAgICAgIC8vIFRoaXMgaXMgZ3VhcmFudGVlZCB0byB5aWVsZCBhIHNjcmlwdCBlbGVtZW50LlxuXG4gICAgICB2YXIgZmlyc3RDaGlsZCA9IGRpdi5maXJzdENoaWxkO1xuICAgICAgZG9tRWxlbWVudCA9IGRpdi5yZW1vdmVDaGlsZChmaXJzdENoaWxkKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBwcm9wcy5pcyA9PT0gJ3N0cmluZycpIHtcbiAgICAgIC8vICRGbG93SXNzdWUgYGNyZWF0ZUVsZW1lbnRgIHNob3VsZCBiZSB1cGRhdGVkIGZvciBXZWIgQ29tcG9uZW50c1xuICAgICAgZG9tRWxlbWVudCA9IG93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0eXBlLCB7XG4gICAgICAgIGlzOiBwcm9wcy5pc1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFNlcGFyYXRlIGVsc2UgYnJhbmNoIGluc3RlYWQgb2YgdXNpbmcgYHByb3BzLmlzIHx8IHVuZGVmaW5lZGAgYWJvdmUgYmVjYXVzZSBvZiBhIEZpcmVmb3ggYnVnLlxuICAgICAgLy8gU2VlIGRpc2N1c3Npb24gaW4gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L3B1bGwvNjg5NlxuICAgICAgLy8gYW5kIGRpc2N1c3Npb24gaW4gaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NjI0MFxuICAgICAgZG9tRWxlbWVudCA9IG93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0eXBlKTsgLy8gTm9ybWFsbHkgYXR0cmlidXRlcyBhcmUgYXNzaWduZWQgaW4gYHNldEluaXRpYWxET01Qcm9wZXJ0aWVzYCwgaG93ZXZlciB0aGUgYG11bHRpcGxlYCBhbmQgYHNpemVgXG4gICAgICAvLyBhdHRyaWJ1dGVzIG9uIGBzZWxlY3RgcyBuZWVkcyB0byBiZSBhZGRlZCBiZWZvcmUgYG9wdGlvbmBzIGFyZSBpbnNlcnRlZC5cbiAgICAgIC8vIFRoaXMgcHJldmVudHM6XG4gICAgICAvLyAtIGEgYnVnIHdoZXJlIHRoZSBgc2VsZWN0YCBkb2VzIG5vdCBzY3JvbGwgdG8gdGhlIGNvcnJlY3Qgb3B0aW9uIGJlY2F1c2Ugc2luZ3VsYXJcbiAgICAgIC8vICBgc2VsZWN0YCBlbGVtZW50cyBhdXRvbWF0aWNhbGx5IHBpY2sgdGhlIGZpcnN0IGl0ZW0gIzEzMjIyXG4gICAgICAvLyAtIGEgYnVnIHdoZXJlIHRoZSBgc2VsZWN0YCBzZXQgdGhlIGZpcnN0IGl0ZW0gYXMgc2VsZWN0ZWQgZGVzcGl0ZSB0aGUgYHNpemVgIGF0dHJpYnV0ZSAjMTQyMzlcbiAgICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzEzMjIyXG4gICAgICAvLyBhbmQgaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xNDIzOVxuXG4gICAgICBpZiAodHlwZSA9PT0gJ3NlbGVjdCcpIHtcbiAgICAgICAgdmFyIG5vZGUgPSBkb21FbGVtZW50O1xuXG4gICAgICAgIGlmIChwcm9wcy5tdWx0aXBsZSkge1xuICAgICAgICAgIG5vZGUubXVsdGlwbGUgPSB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKHByb3BzLnNpemUpIHtcbiAgICAgICAgICAvLyBTZXR0aW5nIGEgc2l6ZSBncmVhdGVyIHRoYW4gMSBjYXVzZXMgYSBzZWxlY3QgdG8gYmVoYXZlIGxpa2UgYG11bHRpcGxlPXRydWVgLCB3aGVyZVxuICAgICAgICAgIC8vIGl0IGlzIHBvc3NpYmxlIHRoYXQgbm8gb3B0aW9uIGlzIHNlbGVjdGVkLlxuICAgICAgICAgIC8vXG4gICAgICAgICAgLy8gVGhpcyBpcyBvbmx5IG5lY2Vzc2FyeSB3aGVuIGEgc2VsZWN0IGluIFwic2luZ2xlIHNlbGVjdGlvbiBtb2RlXCIuXG4gICAgICAgICAgbm9kZS5zaXplID0gcHJvcHMuc2l6ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBkb21FbGVtZW50ID0gb3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50TlMobmFtZXNwYWNlVVJJLCB0eXBlKTtcbiAgfVxuXG4gIHtcbiAgICBpZiAobmFtZXNwYWNlVVJJID09PSBIVE1MX05BTUVTUEFDRSQxKSB7XG4gICAgICBpZiAoIWlzQ3VzdG9tQ29tcG9uZW50VGFnICYmIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkb21FbGVtZW50KSA9PT0gJ1tvYmplY3QgSFRNTFVua25vd25FbGVtZW50XScgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh3YXJuZWRVbmtub3duVGFncywgdHlwZSkpIHtcbiAgICAgICAgd2FybmVkVW5rbm93blRhZ3NbdHlwZV0gPSB0cnVlO1xuXG4gICAgICAgIGVycm9yKCdUaGUgdGFnIDwlcz4gaXMgdW5yZWNvZ25pemVkIGluIHRoaXMgYnJvd3Nlci4gJyArICdJZiB5b3UgbWVhbnQgdG8gcmVuZGVyIGEgUmVhY3QgY29tcG9uZW50LCBzdGFydCBpdHMgbmFtZSB3aXRoICcgKyAnYW4gdXBwZXJjYXNlIGxldHRlci4nLCB0eXBlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gZG9tRWxlbWVudDtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVRleHROb2RlKHRleHQsIHJvb3RDb250YWluZXJFbGVtZW50KSB7XG4gIHJldHVybiBnZXRPd25lckRvY3VtZW50RnJvbVJvb3RDb250YWluZXIocm9vdENvbnRhaW5lckVsZW1lbnQpLmNyZWF0ZVRleHROb2RlKHRleHQpO1xufVxuZnVuY3Rpb24gc2V0SW5pdGlhbFByb3BlcnRpZXMoZG9tRWxlbWVudCwgdGFnLCByYXdQcm9wcywgcm9vdENvbnRhaW5lckVsZW1lbnQpIHtcbiAgdmFyIGlzQ3VzdG9tQ29tcG9uZW50VGFnID0gaXNDdXN0b21Db21wb25lbnQodGFnLCByYXdQcm9wcyk7XG5cbiAge1xuICAgIHZhbGlkYXRlUHJvcGVydGllc0luRGV2ZWxvcG1lbnQodGFnLCByYXdQcm9wcyk7XG4gIH0gLy8gVE9ETzogTWFrZSBzdXJlIHRoYXQgd2UgY2hlY2sgaXNNb3VudGVkIGJlZm9yZSBmaXJpbmcgYW55IG9mIHRoZXNlIGV2ZW50cy5cblxuXG4gIHZhciBwcm9wcztcblxuICBzd2l0Y2ggKHRhZykge1xuICAgIGNhc2UgJ2RpYWxvZyc6XG4gICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCdjYW5jZWwnLCBkb21FbGVtZW50KTtcbiAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoJ2Nsb3NlJywgZG9tRWxlbWVudCk7XG4gICAgICBwcm9wcyA9IHJhd1Byb3BzO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdpZnJhbWUnOlxuICAgIGNhc2UgJ29iamVjdCc6XG4gICAgY2FzZSAnZW1iZWQnOlxuICAgICAgLy8gV2UgbGlzdGVuIHRvIHRoaXMgZXZlbnQgaW4gY2FzZSB0byBlbnN1cmUgZW11bGF0ZWQgYnViYmxlXG4gICAgICAvLyBsaXN0ZW5lcnMgc3RpbGwgZmlyZSBmb3IgdGhlIGxvYWQgZXZlbnQuXG4gICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCdsb2FkJywgZG9tRWxlbWVudCk7XG4gICAgICBwcm9wcyA9IHJhd1Byb3BzO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICd2aWRlbyc6XG4gICAgY2FzZSAnYXVkaW8nOlxuICAgICAgLy8gV2UgbGlzdGVuIHRvIHRoZXNlIGV2ZW50cyBpbiBjYXNlIHRvIGVuc3VyZSBlbXVsYXRlZCBidWJibGVcbiAgICAgIC8vIGxpc3RlbmVycyBzdGlsbCBmaXJlIGZvciBhbGwgdGhlIG1lZGlhIGV2ZW50cy5cbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWVkaWFFdmVudFR5cGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQobWVkaWFFdmVudFR5cGVzW2ldLCBkb21FbGVtZW50KTtcbiAgICAgIH1cblxuICAgICAgcHJvcHMgPSByYXdQcm9wcztcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnc291cmNlJzpcbiAgICAgIC8vIFdlIGxpc3RlbiB0byB0aGlzIGV2ZW50IGluIGNhc2UgdG8gZW5zdXJlIGVtdWxhdGVkIGJ1YmJsZVxuICAgICAgLy8gbGlzdGVuZXJzIHN0aWxsIGZpcmUgZm9yIHRoZSBlcnJvciBldmVudC5cbiAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoJ2Vycm9yJywgZG9tRWxlbWVudCk7XG4gICAgICBwcm9wcyA9IHJhd1Byb3BzO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdpbWcnOlxuICAgIGNhc2UgJ2ltYWdlJzpcbiAgICBjYXNlICdsaW5rJzpcbiAgICAgIC8vIFdlIGxpc3RlbiB0byB0aGVzZSBldmVudHMgaW4gY2FzZSB0byBlbnN1cmUgZW11bGF0ZWQgYnViYmxlXG4gICAgICAvLyBsaXN0ZW5lcnMgc3RpbGwgZmlyZSBmb3IgZXJyb3IgYW5kIGxvYWQgZXZlbnRzLlxuICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudCgnZXJyb3InLCBkb21FbGVtZW50KTtcbiAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoJ2xvYWQnLCBkb21FbGVtZW50KTtcbiAgICAgIHByb3BzID0gcmF3UHJvcHM7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2RldGFpbHMnOlxuICAgICAgLy8gV2UgbGlzdGVuIHRvIHRoaXMgZXZlbnQgaW4gY2FzZSB0byBlbnN1cmUgZW11bGF0ZWQgYnViYmxlXG4gICAgICAvLyBsaXN0ZW5lcnMgc3RpbGwgZmlyZSBmb3IgdGhlIHRvZ2dsZSBldmVudC5cbiAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoJ3RvZ2dsZScsIGRvbUVsZW1lbnQpO1xuICAgICAgcHJvcHMgPSByYXdQcm9wcztcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnaW5wdXQnOlxuICAgICAgaW5pdFdyYXBwZXJTdGF0ZShkb21FbGVtZW50LCByYXdQcm9wcyk7XG4gICAgICBwcm9wcyA9IGdldEhvc3RQcm9wcyhkb21FbGVtZW50LCByYXdQcm9wcyk7IC8vIFdlIGxpc3RlbiB0byB0aGlzIGV2ZW50IGluIGNhc2UgdG8gZW5zdXJlIGVtdWxhdGVkIGJ1YmJsZVxuICAgICAgLy8gbGlzdGVuZXJzIHN0aWxsIGZpcmUgZm9yIHRoZSBpbnZhbGlkIGV2ZW50LlxuXG4gICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCdpbnZhbGlkJywgZG9tRWxlbWVudCk7XG5cbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnb3B0aW9uJzpcbiAgICAgIHZhbGlkYXRlUHJvcHMoZG9tRWxlbWVudCwgcmF3UHJvcHMpO1xuICAgICAgcHJvcHMgPSBnZXRIb3N0UHJvcHMkMShkb21FbGVtZW50LCByYXdQcm9wcyk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ3NlbGVjdCc6XG4gICAgICBpbml0V3JhcHBlclN0YXRlJDEoZG9tRWxlbWVudCwgcmF3UHJvcHMpO1xuICAgICAgcHJvcHMgPSBnZXRIb3N0UHJvcHMkMihkb21FbGVtZW50LCByYXdQcm9wcyk7IC8vIFdlIGxpc3RlbiB0byB0aGlzIGV2ZW50IGluIGNhc2UgdG8gZW5zdXJlIGVtdWxhdGVkIGJ1YmJsZVxuICAgICAgLy8gbGlzdGVuZXJzIHN0aWxsIGZpcmUgZm9yIHRoZSBpbnZhbGlkIGV2ZW50LlxuXG4gICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCdpbnZhbGlkJywgZG9tRWxlbWVudCk7XG5cbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAndGV4dGFyZWEnOlxuICAgICAgaW5pdFdyYXBwZXJTdGF0ZSQyKGRvbUVsZW1lbnQsIHJhd1Byb3BzKTtcbiAgICAgIHByb3BzID0gZ2V0SG9zdFByb3BzJDMoZG9tRWxlbWVudCwgcmF3UHJvcHMpOyAvLyBXZSBsaXN0ZW4gdG8gdGhpcyBldmVudCBpbiBjYXNlIHRvIGVuc3VyZSBlbXVsYXRlZCBidWJibGVcbiAgICAgIC8vIGxpc3RlbmVycyBzdGlsbCBmaXJlIGZvciB0aGUgaW52YWxpZCBldmVudC5cblxuICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudCgnaW52YWxpZCcsIGRvbUVsZW1lbnQpO1xuXG4gICAgICBicmVhaztcblxuICAgIGRlZmF1bHQ6XG4gICAgICBwcm9wcyA9IHJhd1Byb3BzO1xuICB9XG5cbiAgYXNzZXJ0VmFsaWRQcm9wcyh0YWcsIHByb3BzKTtcbiAgc2V0SW5pdGlhbERPTVByb3BlcnRpZXModGFnLCBkb21FbGVtZW50LCByb290Q29udGFpbmVyRWxlbWVudCwgcHJvcHMsIGlzQ3VzdG9tQ29tcG9uZW50VGFnKTtcblxuICBzd2l0Y2ggKHRhZykge1xuICAgIGNhc2UgJ2lucHV0JzpcbiAgICAgIC8vIFRPRE86IE1ha2Ugc3VyZSB3ZSBjaGVjayBpZiB0aGlzIGlzIHN0aWxsIHVubW91bnRlZCBvciBkbyBhbnkgY2xlYW5cbiAgICAgIC8vIHVwIG5lY2Vzc2FyeSBzaW5jZSB3ZSBuZXZlciBzdG9wIHRyYWNraW5nIGFueW1vcmUuXG4gICAgICB0cmFjayhkb21FbGVtZW50KTtcbiAgICAgIHBvc3RNb3VudFdyYXBwZXIoZG9tRWxlbWVudCwgcmF3UHJvcHMsIGZhbHNlKTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAndGV4dGFyZWEnOlxuICAgICAgLy8gVE9ETzogTWFrZSBzdXJlIHdlIGNoZWNrIGlmIHRoaXMgaXMgc3RpbGwgdW5tb3VudGVkIG9yIGRvIGFueSBjbGVhblxuICAgICAgLy8gdXAgbmVjZXNzYXJ5IHNpbmNlIHdlIG5ldmVyIHN0b3AgdHJhY2tpbmcgYW55bW9yZS5cbiAgICAgIHRyYWNrKGRvbUVsZW1lbnQpO1xuICAgICAgcG9zdE1vdW50V3JhcHBlciQzKGRvbUVsZW1lbnQpO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdvcHRpb24nOlxuICAgICAgcG9zdE1vdW50V3JhcHBlciQxKGRvbUVsZW1lbnQsIHJhd1Byb3BzKTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnc2VsZWN0JzpcbiAgICAgIHBvc3RNb3VudFdyYXBwZXIkMihkb21FbGVtZW50LCByYXdQcm9wcyk7XG4gICAgICBicmVhaztcblxuICAgIGRlZmF1bHQ6XG4gICAgICBpZiAodHlwZW9mIHByb3BzLm9uQ2xpY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgLy8gVE9ETzogVGhpcyBjYXN0IG1heSBub3QgYmUgc291bmQgZm9yIFNWRywgTWF0aE1MIG9yIGN1c3RvbSBlbGVtZW50cy5cbiAgICAgICAgdHJhcENsaWNrT25Ob25JbnRlcmFjdGl2ZUVsZW1lbnQoZG9tRWxlbWVudCk7XG4gICAgICB9XG5cbiAgICAgIGJyZWFrO1xuICB9XG59IC8vIENhbGN1bGF0ZSB0aGUgZGlmZiBiZXR3ZWVuIHRoZSB0d28gb2JqZWN0cy5cblxuZnVuY3Rpb24gZGlmZlByb3BlcnRpZXMoZG9tRWxlbWVudCwgdGFnLCBsYXN0UmF3UHJvcHMsIG5leHRSYXdQcm9wcywgcm9vdENvbnRhaW5lckVsZW1lbnQpIHtcbiAge1xuICAgIHZhbGlkYXRlUHJvcGVydGllc0luRGV2ZWxvcG1lbnQodGFnLCBuZXh0UmF3UHJvcHMpO1xuICB9XG5cbiAgdmFyIHVwZGF0ZVBheWxvYWQgPSBudWxsO1xuICB2YXIgbGFzdFByb3BzO1xuICB2YXIgbmV4dFByb3BzO1xuXG4gIHN3aXRjaCAodGFnKSB7XG4gICAgY2FzZSAnaW5wdXQnOlxuICAgICAgbGFzdFByb3BzID0gZ2V0SG9zdFByb3BzKGRvbUVsZW1lbnQsIGxhc3RSYXdQcm9wcyk7XG4gICAgICBuZXh0UHJvcHMgPSBnZXRIb3N0UHJvcHMoZG9tRWxlbWVudCwgbmV4dFJhd1Byb3BzKTtcbiAgICAgIHVwZGF0ZVBheWxvYWQgPSBbXTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnb3B0aW9uJzpcbiAgICAgIGxhc3RQcm9wcyA9IGdldEhvc3RQcm9wcyQxKGRvbUVsZW1lbnQsIGxhc3RSYXdQcm9wcyk7XG4gICAgICBuZXh0UHJvcHMgPSBnZXRIb3N0UHJvcHMkMShkb21FbGVtZW50LCBuZXh0UmF3UHJvcHMpO1xuICAgICAgdXBkYXRlUGF5bG9hZCA9IFtdO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdzZWxlY3QnOlxuICAgICAgbGFzdFByb3BzID0gZ2V0SG9zdFByb3BzJDIoZG9tRWxlbWVudCwgbGFzdFJhd1Byb3BzKTtcbiAgICAgIG5leHRQcm9wcyA9IGdldEhvc3RQcm9wcyQyKGRvbUVsZW1lbnQsIG5leHRSYXdQcm9wcyk7XG4gICAgICB1cGRhdGVQYXlsb2FkID0gW107XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ3RleHRhcmVhJzpcbiAgICAgIGxhc3RQcm9wcyA9IGdldEhvc3RQcm9wcyQzKGRvbUVsZW1lbnQsIGxhc3RSYXdQcm9wcyk7XG4gICAgICBuZXh0UHJvcHMgPSBnZXRIb3N0UHJvcHMkMyhkb21FbGVtZW50LCBuZXh0UmF3UHJvcHMpO1xuICAgICAgdXBkYXRlUGF5bG9hZCA9IFtdO1xuICAgICAgYnJlYWs7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgbGFzdFByb3BzID0gbGFzdFJhd1Byb3BzO1xuICAgICAgbmV4dFByb3BzID0gbmV4dFJhd1Byb3BzO1xuXG4gICAgICBpZiAodHlwZW9mIGxhc3RQcm9wcy5vbkNsaWNrICE9PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBuZXh0UHJvcHMub25DbGljayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAvLyBUT0RPOiBUaGlzIGNhc3QgbWF5IG5vdCBiZSBzb3VuZCBmb3IgU1ZHLCBNYXRoTUwgb3IgY3VzdG9tIGVsZW1lbnRzLlxuICAgICAgICB0cmFwQ2xpY2tPbk5vbkludGVyYWN0aXZlRWxlbWVudChkb21FbGVtZW50KTtcbiAgICAgIH1cblxuICAgICAgYnJlYWs7XG4gIH1cblxuICBhc3NlcnRWYWxpZFByb3BzKHRhZywgbmV4dFByb3BzKTtcbiAgdmFyIHByb3BLZXk7XG4gIHZhciBzdHlsZU5hbWU7XG4gIHZhciBzdHlsZVVwZGF0ZXMgPSBudWxsO1xuXG4gIGZvciAocHJvcEtleSBpbiBsYXN0UHJvcHMpIHtcbiAgICBpZiAobmV4dFByb3BzLmhhc093blByb3BlcnR5KHByb3BLZXkpIHx8ICFsYXN0UHJvcHMuaGFzT3duUHJvcGVydHkocHJvcEtleSkgfHwgbGFzdFByb3BzW3Byb3BLZXldID09IG51bGwpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmIChwcm9wS2V5ID09PSBTVFlMRSkge1xuICAgICAgdmFyIGxhc3RTdHlsZSA9IGxhc3RQcm9wc1twcm9wS2V5XTtcblxuICAgICAgZm9yIChzdHlsZU5hbWUgaW4gbGFzdFN0eWxlKSB7XG4gICAgICAgIGlmIChsYXN0U3R5bGUuaGFzT3duUHJvcGVydHkoc3R5bGVOYW1lKSkge1xuICAgICAgICAgIGlmICghc3R5bGVVcGRhdGVzKSB7XG4gICAgICAgICAgICBzdHlsZVVwZGF0ZXMgPSB7fTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBzdHlsZVVwZGF0ZXNbc3R5bGVOYW1lXSA9ICcnO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChwcm9wS2V5ID09PSBEQU5HRVJPVVNMWV9TRVRfSU5ORVJfSFRNTCB8fCBwcm9wS2V5ID09PSBDSElMRFJFTikgOyBlbHNlIGlmIChwcm9wS2V5ID09PSBTVVBQUkVTU19DT05URU5UX0VESVRBQkxFX1dBUk5JTkcgfHwgcHJvcEtleSA9PT0gU1VQUFJFU1NfSFlEUkFUSU9OX1dBUk5JTkcpIDsgZWxzZSBpZiAocHJvcEtleSA9PT0gQVVUT0ZPQ1VTKSA7IGVsc2UgaWYgKHJlZ2lzdHJhdGlvbk5hbWVEZXBlbmRlbmNpZXMuaGFzT3duUHJvcGVydHkocHJvcEtleSkpIHtcbiAgICAgIC8vIFRoaXMgaXMgYSBzcGVjaWFsIGNhc2UuIElmIGFueSBsaXN0ZW5lciB1cGRhdGVzIHdlIG5lZWQgdG8gZW5zdXJlXG4gICAgICAvLyB0aGF0IHRoZSBcImN1cnJlbnRcIiBmaWJlciBwb2ludGVyIGdldHMgdXBkYXRlZCBzbyB3ZSBuZWVkIGEgY29tbWl0XG4gICAgICAvLyB0byB1cGRhdGUgdGhpcyBlbGVtZW50LlxuICAgICAgaWYgKCF1cGRhdGVQYXlsb2FkKSB7XG4gICAgICAgIHVwZGF0ZVBheWxvYWQgPSBbXTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRm9yIGFsbCBvdGhlciBkZWxldGVkIHByb3BlcnRpZXMgd2UgYWRkIGl0IHRvIHRoZSBxdWV1ZS4gV2UgdXNlXG4gICAgICAvLyB0aGUgYWxsb3dlZCBwcm9wZXJ0eSBsaXN0IGluIHRoZSBjb21taXQgcGhhc2UgaW5zdGVhZC5cbiAgICAgICh1cGRhdGVQYXlsb2FkID0gdXBkYXRlUGF5bG9hZCB8fCBbXSkucHVzaChwcm9wS2V5LCBudWxsKTtcbiAgICB9XG4gIH1cblxuICBmb3IgKHByb3BLZXkgaW4gbmV4dFByb3BzKSB7XG4gICAgdmFyIG5leHRQcm9wID0gbmV4dFByb3BzW3Byb3BLZXldO1xuICAgIHZhciBsYXN0UHJvcCA9IGxhc3RQcm9wcyAhPSBudWxsID8gbGFzdFByb3BzW3Byb3BLZXldIDogdW5kZWZpbmVkO1xuXG4gICAgaWYgKCFuZXh0UHJvcHMuaGFzT3duUHJvcGVydHkocHJvcEtleSkgfHwgbmV4dFByb3AgPT09IGxhc3RQcm9wIHx8IG5leHRQcm9wID09IG51bGwgJiYgbGFzdFByb3AgPT0gbnVsbCkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKHByb3BLZXkgPT09IFNUWUxFKSB7XG4gICAgICB7XG4gICAgICAgIGlmIChuZXh0UHJvcCkge1xuICAgICAgICAgIC8vIEZyZWV6ZSB0aGUgbmV4dCBzdHlsZSBvYmplY3Qgc28gdGhhdCB3ZSBjYW4gYXNzdW1lIGl0IHdvbid0IGJlXG4gICAgICAgICAgLy8gbXV0YXRlZC4gV2UgaGF2ZSBhbHJlYWR5IHdhcm5lZCBmb3IgdGhpcyBpbiB0aGUgcGFzdC5cbiAgICAgICAgICBPYmplY3QuZnJlZXplKG5leHRQcm9wKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAobGFzdFByb3ApIHtcbiAgICAgICAgLy8gVW5zZXQgc3R5bGVzIG9uIGBsYXN0UHJvcGAgYnV0IG5vdCBvbiBgbmV4dFByb3BgLlxuICAgICAgICBmb3IgKHN0eWxlTmFtZSBpbiBsYXN0UHJvcCkge1xuICAgICAgICAgIGlmIChsYXN0UHJvcC5oYXNPd25Qcm9wZXJ0eShzdHlsZU5hbWUpICYmICghbmV4dFByb3AgfHwgIW5leHRQcm9wLmhhc093blByb3BlcnR5KHN0eWxlTmFtZSkpKSB7XG4gICAgICAgICAgICBpZiAoIXN0eWxlVXBkYXRlcykge1xuICAgICAgICAgICAgICBzdHlsZVVwZGF0ZXMgPSB7fTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3R5bGVVcGRhdGVzW3N0eWxlTmFtZV0gPSAnJztcbiAgICAgICAgICB9XG4gICAgICAgIH0gLy8gVXBkYXRlIHN0eWxlcyB0aGF0IGNoYW5nZWQgc2luY2UgYGxhc3RQcm9wYC5cblxuXG4gICAgICAgIGZvciAoc3R5bGVOYW1lIGluIG5leHRQcm9wKSB7XG4gICAgICAgICAgaWYgKG5leHRQcm9wLmhhc093blByb3BlcnR5KHN0eWxlTmFtZSkgJiYgbGFzdFByb3Bbc3R5bGVOYW1lXSAhPT0gbmV4dFByb3Bbc3R5bGVOYW1lXSkge1xuICAgICAgICAgICAgaWYgKCFzdHlsZVVwZGF0ZXMpIHtcbiAgICAgICAgICAgICAgc3R5bGVVcGRhdGVzID0ge307XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHN0eWxlVXBkYXRlc1tzdHlsZU5hbWVdID0gbmV4dFByb3Bbc3R5bGVOYW1lXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFJlbGllcyBvbiBgdXBkYXRlU3R5bGVzQnlJRGAgbm90IG11dGF0aW5nIGBzdHlsZVVwZGF0ZXNgLlxuICAgICAgICBpZiAoIXN0eWxlVXBkYXRlcykge1xuICAgICAgICAgIGlmICghdXBkYXRlUGF5bG9hZCkge1xuICAgICAgICAgICAgdXBkYXRlUGF5bG9hZCA9IFtdO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHVwZGF0ZVBheWxvYWQucHVzaChwcm9wS2V5LCBzdHlsZVVwZGF0ZXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3R5bGVVcGRhdGVzID0gbmV4dFByb3A7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChwcm9wS2V5ID09PSBEQU5HRVJPVVNMWV9TRVRfSU5ORVJfSFRNTCkge1xuICAgICAgdmFyIG5leHRIdG1sID0gbmV4dFByb3AgPyBuZXh0UHJvcFtIVE1MJDFdIDogdW5kZWZpbmVkO1xuICAgICAgdmFyIGxhc3RIdG1sID0gbGFzdFByb3AgPyBsYXN0UHJvcFtIVE1MJDFdIDogdW5kZWZpbmVkO1xuXG4gICAgICBpZiAobmV4dEh0bWwgIT0gbnVsbCkge1xuICAgICAgICBpZiAobGFzdEh0bWwgIT09IG5leHRIdG1sKSB7XG4gICAgICAgICAgKHVwZGF0ZVBheWxvYWQgPSB1cGRhdGVQYXlsb2FkIHx8IFtdKS5wdXNoKHByb3BLZXksIG5leHRIdG1sKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAocHJvcEtleSA9PT0gQ0hJTERSRU4pIHtcbiAgICAgIGlmICh0eXBlb2YgbmV4dFByb3AgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBuZXh0UHJvcCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgKHVwZGF0ZVBheWxvYWQgPSB1cGRhdGVQYXlsb2FkIHx8IFtdKS5wdXNoKHByb3BLZXksICcnICsgbmV4dFByb3ApO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAocHJvcEtleSA9PT0gU1VQUFJFU1NfQ09OVEVOVF9FRElUQUJMRV9XQVJOSU5HIHx8IHByb3BLZXkgPT09IFNVUFBSRVNTX0hZRFJBVElPTl9XQVJOSU5HKSA7IGVsc2UgaWYgKHJlZ2lzdHJhdGlvbk5hbWVEZXBlbmRlbmNpZXMuaGFzT3duUHJvcGVydHkocHJvcEtleSkpIHtcbiAgICAgIGlmIChuZXh0UHJvcCAhPSBudWxsKSB7XG4gICAgICAgIC8vIFdlIGVhZ2VybHkgbGlzdGVuIHRvIHRoaXMgZXZlbiB0aG91Z2ggd2UgaGF2ZW4ndCBjb21taXR0ZWQgeWV0LlxuICAgICAgICBpZiAoIHR5cGVvZiBuZXh0UHJvcCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIHdhcm5Gb3JJbnZhbGlkRXZlbnRMaXN0ZW5lcihwcm9wS2V5LCBuZXh0UHJvcCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocHJvcEtleSA9PT0gJ29uU2Nyb2xsJykge1xuICAgICAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoJ3Njcm9sbCcsIGRvbUVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghdXBkYXRlUGF5bG9hZCAmJiBsYXN0UHJvcCAhPT0gbmV4dFByb3ApIHtcbiAgICAgICAgLy8gVGhpcyBpcyBhIHNwZWNpYWwgY2FzZS4gSWYgYW55IGxpc3RlbmVyIHVwZGF0ZXMgd2UgbmVlZCB0byBlbnN1cmVcbiAgICAgICAgLy8gdGhhdCB0aGUgXCJjdXJyZW50XCIgcHJvcHMgcG9pbnRlciBnZXRzIHVwZGF0ZWQgc28gd2UgbmVlZCBhIGNvbW1pdFxuICAgICAgICAvLyB0byB1cGRhdGUgdGhpcyBlbGVtZW50LlxuICAgICAgICB1cGRhdGVQYXlsb2FkID0gW107XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgbmV4dFByb3AgPT09ICdvYmplY3QnICYmIG5leHRQcm9wICE9PSBudWxsICYmIG5leHRQcm9wLiQkdHlwZW9mID09PSBSRUFDVF9PUEFRVUVfSURfVFlQRSkge1xuICAgICAgLy8gSWYgd2UgZW5jb3VudGVyIHVzZU9wYXF1ZVJlZmVyZW5jZSdzIG9wYXF1ZSBvYmplY3QsIHRoaXMgbWVhbnMgd2UgYXJlIGh5ZHJhdGluZy5cbiAgICAgIC8vIEluIHRoaXMgY2FzZSwgY2FsbCB0aGUgb3BhcXVlIG9iamVjdCdzIHRvU3RyaW5nIGZ1bmN0aW9uIHdoaWNoIGdlbmVyYXRlcyBhIG5ldyBjbGllbnRcbiAgICAgIC8vIElEIHNvIGNsaWVudCBhbmQgc2VydmVyIElEcyBtYXRjaCBhbmQgdGhyb3dzIHRvIHJlcmVuZGVyLlxuICAgICAgbmV4dFByb3AudG9TdHJpbmcoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRm9yIGFueSBvdGhlciBwcm9wZXJ0eSB3ZSBhbHdheXMgYWRkIGl0IHRvIHRoZSBxdWV1ZSBhbmQgdGhlbiB3ZVxuICAgICAgLy8gZmlsdGVyIGl0IG91dCB1c2luZyB0aGUgYWxsb3dlZCBwcm9wZXJ0eSBsaXN0IGR1cmluZyB0aGUgY29tbWl0LlxuICAgICAgKHVwZGF0ZVBheWxvYWQgPSB1cGRhdGVQYXlsb2FkIHx8IFtdKS5wdXNoKHByb3BLZXksIG5leHRQcm9wKTtcbiAgICB9XG4gIH1cblxuICBpZiAoc3R5bGVVcGRhdGVzKSB7XG4gICAge1xuICAgICAgdmFsaWRhdGVTaG9ydGhhbmRQcm9wZXJ0eUNvbGxpc2lvbkluRGV2KHN0eWxlVXBkYXRlcywgbmV4dFByb3BzW1NUWUxFXSk7XG4gICAgfVxuXG4gICAgKHVwZGF0ZVBheWxvYWQgPSB1cGRhdGVQYXlsb2FkIHx8IFtdKS5wdXNoKFNUWUxFLCBzdHlsZVVwZGF0ZXMpO1xuICB9XG5cbiAgcmV0dXJuIHVwZGF0ZVBheWxvYWQ7XG59IC8vIEFwcGx5IHRoZSBkaWZmLlxuXG5mdW5jdGlvbiB1cGRhdGVQcm9wZXJ0aWVzKGRvbUVsZW1lbnQsIHVwZGF0ZVBheWxvYWQsIHRhZywgbGFzdFJhd1Byb3BzLCBuZXh0UmF3UHJvcHMpIHtcbiAgLy8gVXBkYXRlIGNoZWNrZWQgKmJlZm9yZSogbmFtZS5cbiAgLy8gSW4gdGhlIG1pZGRsZSBvZiBhbiB1cGRhdGUsIGl0IGlzIHBvc3NpYmxlIHRvIGhhdmUgbXVsdGlwbGUgY2hlY2tlZC5cbiAgLy8gV2hlbiBhIGNoZWNrZWQgcmFkaW8gdHJpZXMgdG8gY2hhbmdlIG5hbWUsIGJyb3dzZXIgbWFrZXMgYW5vdGhlciByYWRpbydzIGNoZWNrZWQgZmFsc2UuXG4gIGlmICh0YWcgPT09ICdpbnB1dCcgJiYgbmV4dFJhd1Byb3BzLnR5cGUgPT09ICdyYWRpbycgJiYgbmV4dFJhd1Byb3BzLm5hbWUgIT0gbnVsbCkge1xuICAgIHVwZGF0ZUNoZWNrZWQoZG9tRWxlbWVudCwgbmV4dFJhd1Byb3BzKTtcbiAgfVxuXG4gIHZhciB3YXNDdXN0b21Db21wb25lbnRUYWcgPSBpc0N1c3RvbUNvbXBvbmVudCh0YWcsIGxhc3RSYXdQcm9wcyk7XG4gIHZhciBpc0N1c3RvbUNvbXBvbmVudFRhZyA9IGlzQ3VzdG9tQ29tcG9uZW50KHRhZywgbmV4dFJhd1Byb3BzKTsgLy8gQXBwbHkgdGhlIGRpZmYuXG5cbiAgdXBkYXRlRE9NUHJvcGVydGllcyhkb21FbGVtZW50LCB1cGRhdGVQYXlsb2FkLCB3YXNDdXN0b21Db21wb25lbnRUYWcsIGlzQ3VzdG9tQ29tcG9uZW50VGFnKTsgLy8gVE9ETzogRW5zdXJlIHRoYXQgYW4gdXBkYXRlIGdldHMgc2NoZWR1bGVkIGlmIGFueSBvZiB0aGUgc3BlY2lhbCBwcm9wc1xuICAvLyBjaGFuZ2VkLlxuXG4gIHN3aXRjaCAodGFnKSB7XG4gICAgY2FzZSAnaW5wdXQnOlxuICAgICAgLy8gVXBkYXRlIHRoZSB3cmFwcGVyIGFyb3VuZCBpbnB1dHMgKmFmdGVyKiB1cGRhdGluZyBwcm9wcy4gVGhpcyBoYXMgdG9cbiAgICAgIC8vIGhhcHBlbiBhZnRlciBgdXBkYXRlRE9NUHJvcGVydGllc2AuIE90aGVyd2lzZSBIVE1MNSBpbnB1dCB2YWxpZGF0aW9uc1xuICAgICAgLy8gcmFpc2Ugd2FybmluZ3MgYW5kIHByZXZlbnQgdGhlIG5ldyB2YWx1ZSBmcm9tIGJlaW5nIGFzc2lnbmVkLlxuICAgICAgdXBkYXRlV3JhcHBlcihkb21FbGVtZW50LCBuZXh0UmF3UHJvcHMpO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICd0ZXh0YXJlYSc6XG4gICAgICB1cGRhdGVXcmFwcGVyJDEoZG9tRWxlbWVudCwgbmV4dFJhd1Byb3BzKTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnc2VsZWN0JzpcbiAgICAgIC8vIDxzZWxlY3Q+IHZhbHVlIHVwZGF0ZSBuZWVkcyB0byBvY2N1ciBhZnRlciA8b3B0aW9uPiBjaGlsZHJlblxuICAgICAgLy8gcmVjb25jaWxpYXRpb25cbiAgICAgIHBvc3RVcGRhdGVXcmFwcGVyKGRvbUVsZW1lbnQsIG5leHRSYXdQcm9wcyk7XG4gICAgICBicmVhaztcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRQb3NzaWJsZVN0YW5kYXJkTmFtZShwcm9wTmFtZSkge1xuICB7XG4gICAgdmFyIGxvd2VyQ2FzZWROYW1lID0gcHJvcE5hbWUudG9Mb3dlckNhc2UoKTtcblxuICAgIGlmICghcG9zc2libGVTdGFuZGFyZE5hbWVzLmhhc093blByb3BlcnR5KGxvd2VyQ2FzZWROYW1lKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBvc3NpYmxlU3RhbmRhcmROYW1lc1tsb3dlckNhc2VkTmFtZV0gfHwgbnVsbDtcbiAgfVxufVxuXG5mdW5jdGlvbiBkaWZmSHlkcmF0ZWRQcm9wZXJ0aWVzKGRvbUVsZW1lbnQsIHRhZywgcmF3UHJvcHMsIHBhcmVudE5hbWVzcGFjZSwgcm9vdENvbnRhaW5lckVsZW1lbnQpIHtcbiAgdmFyIGlzQ3VzdG9tQ29tcG9uZW50VGFnO1xuICB2YXIgZXh0cmFBdHRyaWJ1dGVOYW1lcztcblxuICB7XG4gICAgc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nID0gcmF3UHJvcHNbU1VQUFJFU1NfSFlEUkFUSU9OX1dBUk5JTkddID09PSB0cnVlO1xuICAgIGlzQ3VzdG9tQ29tcG9uZW50VGFnID0gaXNDdXN0b21Db21wb25lbnQodGFnLCByYXdQcm9wcyk7XG4gICAgdmFsaWRhdGVQcm9wZXJ0aWVzSW5EZXZlbG9wbWVudCh0YWcsIHJhd1Byb3BzKTtcbiAgfSAvLyBUT0RPOiBNYWtlIHN1cmUgdGhhdCB3ZSBjaGVjayBpc01vdW50ZWQgYmVmb3JlIGZpcmluZyBhbnkgb2YgdGhlc2UgZXZlbnRzLlxuXG5cbiAgc3dpdGNoICh0YWcpIHtcbiAgICBjYXNlICdkaWFsb2cnOlxuICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudCgnY2FuY2VsJywgZG9tRWxlbWVudCk7XG4gICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCdjbG9zZScsIGRvbUVsZW1lbnQpO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdpZnJhbWUnOlxuICAgIGNhc2UgJ29iamVjdCc6XG4gICAgY2FzZSAnZW1iZWQnOlxuICAgICAgLy8gV2UgbGlzdGVuIHRvIHRoaXMgZXZlbnQgaW4gY2FzZSB0byBlbnN1cmUgZW11bGF0ZWQgYnViYmxlXG4gICAgICAvLyBsaXN0ZW5lcnMgc3RpbGwgZmlyZSBmb3IgdGhlIGxvYWQgZXZlbnQuXG4gICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCdsb2FkJywgZG9tRWxlbWVudCk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ3ZpZGVvJzpcbiAgICBjYXNlICdhdWRpbyc6XG4gICAgICAvLyBXZSBsaXN0ZW4gdG8gdGhlc2UgZXZlbnRzIGluIGNhc2UgdG8gZW5zdXJlIGVtdWxhdGVkIGJ1YmJsZVxuICAgICAgLy8gbGlzdGVuZXJzIHN0aWxsIGZpcmUgZm9yIGFsbCB0aGUgbWVkaWEgZXZlbnRzLlxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtZWRpYUV2ZW50VHlwZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudChtZWRpYUV2ZW50VHlwZXNbaV0sIGRvbUVsZW1lbnQpO1xuICAgICAgfVxuXG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ3NvdXJjZSc6XG4gICAgICAvLyBXZSBsaXN0ZW4gdG8gdGhpcyBldmVudCBpbiBjYXNlIHRvIGVuc3VyZSBlbXVsYXRlZCBidWJibGVcbiAgICAgIC8vIGxpc3RlbmVycyBzdGlsbCBmaXJlIGZvciB0aGUgZXJyb3IgZXZlbnQuXG4gICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCdlcnJvcicsIGRvbUVsZW1lbnQpO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdpbWcnOlxuICAgIGNhc2UgJ2ltYWdlJzpcbiAgICBjYXNlICdsaW5rJzpcbiAgICAgIC8vIFdlIGxpc3RlbiB0byB0aGVzZSBldmVudHMgaW4gY2FzZSB0byBlbnN1cmUgZW11bGF0ZWQgYnViYmxlXG4gICAgICAvLyBsaXN0ZW5lcnMgc3RpbGwgZmlyZSBmb3IgZXJyb3IgYW5kIGxvYWQgZXZlbnRzLlxuICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudCgnZXJyb3InLCBkb21FbGVtZW50KTtcbiAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoJ2xvYWQnLCBkb21FbGVtZW50KTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnZGV0YWlscyc6XG4gICAgICAvLyBXZSBsaXN0ZW4gdG8gdGhpcyBldmVudCBpbiBjYXNlIHRvIGVuc3VyZSBlbXVsYXRlZCBidWJibGVcbiAgICAgIC8vIGxpc3RlbmVycyBzdGlsbCBmaXJlIGZvciB0aGUgdG9nZ2xlIGV2ZW50LlxuICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudCgndG9nZ2xlJywgZG9tRWxlbWVudCk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2lucHV0JzpcbiAgICAgIGluaXRXcmFwcGVyU3RhdGUoZG9tRWxlbWVudCwgcmF3UHJvcHMpOyAvLyBXZSBsaXN0ZW4gdG8gdGhpcyBldmVudCBpbiBjYXNlIHRvIGVuc3VyZSBlbXVsYXRlZCBidWJibGVcbiAgICAgIC8vIGxpc3RlbmVycyBzdGlsbCBmaXJlIGZvciB0aGUgaW52YWxpZCBldmVudC5cblxuICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudCgnaW52YWxpZCcsIGRvbUVsZW1lbnQpO1xuXG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ29wdGlvbic6XG4gICAgICB2YWxpZGF0ZVByb3BzKGRvbUVsZW1lbnQsIHJhd1Byb3BzKTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnc2VsZWN0JzpcbiAgICAgIGluaXRXcmFwcGVyU3RhdGUkMShkb21FbGVtZW50LCByYXdQcm9wcyk7IC8vIFdlIGxpc3RlbiB0byB0aGlzIGV2ZW50IGluIGNhc2UgdG8gZW5zdXJlIGVtdWxhdGVkIGJ1YmJsZVxuICAgICAgLy8gbGlzdGVuZXJzIHN0aWxsIGZpcmUgZm9yIHRoZSBpbnZhbGlkIGV2ZW50LlxuXG4gICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCdpbnZhbGlkJywgZG9tRWxlbWVudCk7XG5cbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAndGV4dGFyZWEnOlxuICAgICAgaW5pdFdyYXBwZXJTdGF0ZSQyKGRvbUVsZW1lbnQsIHJhd1Byb3BzKTsgLy8gV2UgbGlzdGVuIHRvIHRoaXMgZXZlbnQgaW4gY2FzZSB0byBlbnN1cmUgZW11bGF0ZWQgYnViYmxlXG4gICAgICAvLyBsaXN0ZW5lcnMgc3RpbGwgZmlyZSBmb3IgdGhlIGludmFsaWQgZXZlbnQuXG5cbiAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoJ2ludmFsaWQnLCBkb21FbGVtZW50KTtcblxuICAgICAgYnJlYWs7XG4gIH1cblxuICBhc3NlcnRWYWxpZFByb3BzKHRhZywgcmF3UHJvcHMpO1xuXG4gIHtcbiAgICBleHRyYUF0dHJpYnV0ZU5hbWVzID0gbmV3IFNldCgpO1xuICAgIHZhciBhdHRyaWJ1dGVzID0gZG9tRWxlbWVudC5hdHRyaWJ1dGVzO1xuXG4gICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGF0dHJpYnV0ZXMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICB2YXIgbmFtZSA9IGF0dHJpYnV0ZXNbX2ldLm5hbWUudG9Mb3dlckNhc2UoKTtcblxuICAgICAgc3dpdGNoIChuYW1lKSB7XG4gICAgICAgIC8vIEJ1aWx0LWluIFNTUiBhdHRyaWJ1dGUgaXMgYWxsb3dlZFxuICAgICAgICBjYXNlICdkYXRhLXJlYWN0cm9vdCc6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIC8vIENvbnRyb2xsZWQgYXR0cmlidXRlcyBhcmUgbm90IHZhbGlkYXRlZFxuICAgICAgICAvLyBUT0RPOiBPbmx5IGlnbm9yZSB0aGVtIG9uIGNvbnRyb2xsZWQgdGFncy5cblxuICAgICAgICBjYXNlICd2YWx1ZSc6XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnY2hlY2tlZCc6XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnc2VsZWN0ZWQnOlxuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgLy8gSW50ZW50aW9uYWxseSB1c2UgdGhlIG9yaWdpbmFsIG5hbWUuXG4gICAgICAgICAgLy8gU2VlIGRpc2N1c3Npb24gaW4gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L3B1bGwvMTA2NzYuXG4gICAgICAgICAgZXh0cmFBdHRyaWJ1dGVOYW1lcy5hZGQoYXR0cmlidXRlc1tfaV0ubmFtZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdmFyIHVwZGF0ZVBheWxvYWQgPSBudWxsO1xuXG4gIGZvciAodmFyIHByb3BLZXkgaW4gcmF3UHJvcHMpIHtcbiAgICBpZiAoIXJhd1Byb3BzLmhhc093blByb3BlcnR5KHByb3BLZXkpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICB2YXIgbmV4dFByb3AgPSByYXdQcm9wc1twcm9wS2V5XTtcblxuICAgIGlmIChwcm9wS2V5ID09PSBDSElMRFJFTikge1xuICAgICAgLy8gRm9yIHRleHQgY29udGVudCBjaGlsZHJlbiB3ZSBjb21wYXJlIGFnYWluc3QgdGV4dENvbnRlbnQuIFRoaXNcbiAgICAgIC8vIG1pZ2h0IG1hdGNoIGFkZGl0aW9uYWwgSFRNTCB0aGF0IGlzIGhpZGRlbiB3aGVuIHdlIHJlYWQgaXQgdXNpbmdcbiAgICAgIC8vIHRleHRDb250ZW50LiBFLmcuIFwiZm9vXCIgd2lsbCBtYXRjaCBcImY8c3Bhbj5vbzwvc3Bhbj5cIiBidXQgdGhhdCBzdGlsbFxuICAgICAgLy8gc2F0aXNmaWVzIG91ciByZXF1aXJlbWVudC4gT3VyIHJlcXVpcmVtZW50IGlzIG5vdCB0byBwcm9kdWNlIHBlcmZlY3RcbiAgICAgIC8vIEhUTUwgYW5kIGF0dHJpYnV0ZXMuIElkZWFsbHkgd2Ugc2hvdWxkIHByZXNlcnZlIHN0cnVjdHVyZSBidXQgaXQnc1xuICAgICAgLy8gb2sgbm90IHRvIGlmIHRoZSB2aXNpYmxlIGNvbnRlbnQgaXMgc3RpbGwgZW5vdWdoIHRvIGluZGljYXRlIHdoYXRcbiAgICAgIC8vIGV2ZW4gbGlzdGVuZXJzIHRoZXNlIG5vZGVzIG1pZ2h0IGJlIHdpcmVkIHVwIHRvLlxuICAgICAgLy8gVE9ETzogV2FybiBpZiB0aGVyZSBpcyBtb3JlIHRoYW4gYSBzaW5nbGUgdGV4dE5vZGUgYXMgYSBjaGlsZC5cbiAgICAgIC8vIFRPRE86IFNob3VsZCB3ZSB1c2UgZG9tRWxlbWVudC5maXJzdENoaWxkLm5vZGVWYWx1ZSB0byBjb21wYXJlP1xuICAgICAgaWYgKHR5cGVvZiBuZXh0UHJvcCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgaWYgKGRvbUVsZW1lbnQudGV4dENvbnRlbnQgIT09IG5leHRQcm9wKSB7XG4gICAgICAgICAgaWYgKCAhc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nKSB7XG4gICAgICAgICAgICB3YXJuRm9yVGV4dERpZmZlcmVuY2UoZG9tRWxlbWVudC50ZXh0Q29udGVudCwgbmV4dFByb3ApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHVwZGF0ZVBheWxvYWQgPSBbQ0hJTERSRU4sIG5leHRQcm9wXTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgbmV4dFByb3AgPT09ICdudW1iZXInKSB7XG4gICAgICAgIGlmIChkb21FbGVtZW50LnRleHRDb250ZW50ICE9PSAnJyArIG5leHRQcm9wKSB7XG4gICAgICAgICAgaWYgKCAhc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nKSB7XG4gICAgICAgICAgICB3YXJuRm9yVGV4dERpZmZlcmVuY2UoZG9tRWxlbWVudC50ZXh0Q29udGVudCwgbmV4dFByb3ApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHVwZGF0ZVBheWxvYWQgPSBbQ0hJTERSRU4sICcnICsgbmV4dFByb3BdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChyZWdpc3RyYXRpb25OYW1lRGVwZW5kZW5jaWVzLmhhc093blByb3BlcnR5KHByb3BLZXkpKSB7XG4gICAgICBpZiAobmV4dFByb3AgIT0gbnVsbCkge1xuICAgICAgICBpZiAoIHR5cGVvZiBuZXh0UHJvcCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIHdhcm5Gb3JJbnZhbGlkRXZlbnRMaXN0ZW5lcihwcm9wS2V5LCBuZXh0UHJvcCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocHJvcEtleSA9PT0gJ29uU2Nyb2xsJykge1xuICAgICAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoJ3Njcm9sbCcsIGRvbUVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICggLy8gQ29udmluY2UgRmxvdyB3ZSd2ZSBjYWxjdWxhdGVkIGl0IChpdCdzIERFVi1vbmx5IGluIHRoaXMgbWV0aG9kLilcbiAgICB0eXBlb2YgaXNDdXN0b21Db21wb25lbnRUYWcgPT09ICdib29sZWFuJykge1xuICAgICAgLy8gVmFsaWRhdGUgdGhhdCB0aGUgcHJvcGVydGllcyBjb3JyZXNwb25kIHRvIHRoZWlyIGV4cGVjdGVkIHZhbHVlcy5cbiAgICAgIHZhciBzZXJ2ZXJWYWx1ZSA9IHZvaWQgMDtcbiAgICAgIHZhciBwcm9wZXJ0eUluZm8gPSBnZXRQcm9wZXJ0eUluZm8ocHJvcEtleSk7XG5cbiAgICAgIGlmIChzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmcpIDsgZWxzZSBpZiAocHJvcEtleSA9PT0gU1VQUFJFU1NfQ09OVEVOVF9FRElUQUJMRV9XQVJOSU5HIHx8IHByb3BLZXkgPT09IFNVUFBSRVNTX0hZRFJBVElPTl9XQVJOSU5HIHx8IC8vIENvbnRyb2xsZWQgYXR0cmlidXRlcyBhcmUgbm90IHZhbGlkYXRlZFxuICAgICAgLy8gVE9ETzogT25seSBpZ25vcmUgdGhlbSBvbiBjb250cm9sbGVkIHRhZ3MuXG4gICAgICBwcm9wS2V5ID09PSAndmFsdWUnIHx8IHByb3BLZXkgPT09ICdjaGVja2VkJyB8fCBwcm9wS2V5ID09PSAnc2VsZWN0ZWQnKSA7IGVsc2UgaWYgKHByb3BLZXkgPT09IERBTkdFUk9VU0xZX1NFVF9JTk5FUl9IVE1MKSB7XG4gICAgICAgIHZhciBzZXJ2ZXJIVE1MID0gZG9tRWxlbWVudC5pbm5lckhUTUw7XG4gICAgICAgIHZhciBuZXh0SHRtbCA9IG5leHRQcm9wID8gbmV4dFByb3BbSFRNTCQxXSA6IHVuZGVmaW5lZDtcblxuICAgICAgICBpZiAobmV4dEh0bWwgIT0gbnVsbCkge1xuICAgICAgICAgIHZhciBleHBlY3RlZEhUTUwgPSBub3JtYWxpemVIVE1MKGRvbUVsZW1lbnQsIG5leHRIdG1sKTtcblxuICAgICAgICAgIGlmIChleHBlY3RlZEhUTUwgIT09IHNlcnZlckhUTUwpIHtcbiAgICAgICAgICAgIHdhcm5Gb3JQcm9wRGlmZmVyZW5jZShwcm9wS2V5LCBzZXJ2ZXJIVE1MLCBleHBlY3RlZEhUTUwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChwcm9wS2V5ID09PSBTVFlMRSkge1xuICAgICAgICAvLyAkRmxvd0ZpeE1lIC0gU2hvdWxkIGJlIGluZmVycmVkIGFzIG5vdCB1bmRlZmluZWQuXG4gICAgICAgIGV4dHJhQXR0cmlidXRlTmFtZXMuZGVsZXRlKHByb3BLZXkpO1xuXG4gICAgICAgIGlmIChjYW5EaWZmU3R5bGVGb3JIeWRyYXRpb25XYXJuaW5nKSB7XG4gICAgICAgICAgdmFyIGV4cGVjdGVkU3R5bGUgPSBjcmVhdGVEYW5nZXJvdXNTdHJpbmdGb3JTdHlsZXMobmV4dFByb3ApO1xuICAgICAgICAgIHNlcnZlclZhbHVlID0gZG9tRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3N0eWxlJyk7XG5cbiAgICAgICAgICBpZiAoZXhwZWN0ZWRTdHlsZSAhPT0gc2VydmVyVmFsdWUpIHtcbiAgICAgICAgICAgIHdhcm5Gb3JQcm9wRGlmZmVyZW5jZShwcm9wS2V5LCBzZXJ2ZXJWYWx1ZSwgZXhwZWN0ZWRTdHlsZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGlzQ3VzdG9tQ29tcG9uZW50VGFnKSB7XG4gICAgICAgIC8vICRGbG93Rml4TWUgLSBTaG91bGQgYmUgaW5mZXJyZWQgYXMgbm90IHVuZGVmaW5lZC5cbiAgICAgICAgZXh0cmFBdHRyaWJ1dGVOYW1lcy5kZWxldGUocHJvcEtleS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgc2VydmVyVmFsdWUgPSBnZXRWYWx1ZUZvckF0dHJpYnV0ZShkb21FbGVtZW50LCBwcm9wS2V5LCBuZXh0UHJvcCk7XG5cbiAgICAgICAgaWYgKG5leHRQcm9wICE9PSBzZXJ2ZXJWYWx1ZSkge1xuICAgICAgICAgIHdhcm5Gb3JQcm9wRGlmZmVyZW5jZShwcm9wS2V5LCBzZXJ2ZXJWYWx1ZSwgbmV4dFByb3ApO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKCFzaG91bGRJZ25vcmVBdHRyaWJ1dGUocHJvcEtleSwgcHJvcGVydHlJbmZvLCBpc0N1c3RvbUNvbXBvbmVudFRhZykgJiYgIXNob3VsZFJlbW92ZUF0dHJpYnV0ZShwcm9wS2V5LCBuZXh0UHJvcCwgcHJvcGVydHlJbmZvLCBpc0N1c3RvbUNvbXBvbmVudFRhZykpIHtcbiAgICAgICAgdmFyIGlzTWlzbWF0Y2hEdWVUb0JhZENhc2luZyA9IGZhbHNlO1xuXG4gICAgICAgIGlmIChwcm9wZXJ0eUluZm8gIT09IG51bGwpIHtcbiAgICAgICAgICAvLyAkRmxvd0ZpeE1lIC0gU2hvdWxkIGJlIGluZmVycmVkIGFzIG5vdCB1bmRlZmluZWQuXG4gICAgICAgICAgZXh0cmFBdHRyaWJ1dGVOYW1lcy5kZWxldGUocHJvcGVydHlJbmZvLmF0dHJpYnV0ZU5hbWUpO1xuICAgICAgICAgIHNlcnZlclZhbHVlID0gZ2V0VmFsdWVGb3JQcm9wZXJ0eShkb21FbGVtZW50LCBwcm9wS2V5LCBuZXh0UHJvcCwgcHJvcGVydHlJbmZvKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2YXIgb3duTmFtZXNwYWNlID0gcGFyZW50TmFtZXNwYWNlO1xuXG4gICAgICAgICAgaWYgKG93bk5hbWVzcGFjZSA9PT0gSFRNTF9OQU1FU1BBQ0UkMSkge1xuICAgICAgICAgICAgb3duTmFtZXNwYWNlID0gZ2V0SW50cmluc2ljTmFtZXNwYWNlKHRhZyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKG93bk5hbWVzcGFjZSA9PT0gSFRNTF9OQU1FU1BBQ0UkMSkge1xuICAgICAgICAgICAgLy8gJEZsb3dGaXhNZSAtIFNob3VsZCBiZSBpbmZlcnJlZCBhcyBub3QgdW5kZWZpbmVkLlxuICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVOYW1lcy5kZWxldGUocHJvcEtleS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFyIHN0YW5kYXJkTmFtZSA9IGdldFBvc3NpYmxlU3RhbmRhcmROYW1lKHByb3BLZXkpO1xuXG4gICAgICAgICAgICBpZiAoc3RhbmRhcmROYW1lICE9PSBudWxsICYmIHN0YW5kYXJkTmFtZSAhPT0gcHJvcEtleSkge1xuICAgICAgICAgICAgICAvLyBJZiBhbiBTVkcgcHJvcCBpcyBzdXBwbGllZCB3aXRoIGJhZCBjYXNpbmcsIGl0IHdpbGxcbiAgICAgICAgICAgICAgLy8gYmUgc3VjY2Vzc2Z1bGx5IHBhcnNlZCBmcm9tIEhUTUwsIGJ1dCB3aWxsIHByb2R1Y2UgYSBtaXNtYXRjaFxuICAgICAgICAgICAgICAvLyAoYW5kIHdvdWxkIGJlIGluY29ycmVjdGx5IHJlbmRlcmVkIG9uIHRoZSBjbGllbnQpLlxuICAgICAgICAgICAgICAvLyBIb3dldmVyLCB3ZSBhbHJlYWR5IHdhcm4gYWJvdXQgYmFkIGNhc2luZyBlbHNld2hlcmUuXG4gICAgICAgICAgICAgIC8vIFNvIHdlJ2xsIHNraXAgdGhlIG1pc2xlYWRpbmcgZXh0cmEgbWlzbWF0Y2ggd2FybmluZyBpbiB0aGlzIGNhc2UuXG4gICAgICAgICAgICAgIGlzTWlzbWF0Y2hEdWVUb0JhZENhc2luZyA9IHRydWU7IC8vICRGbG93Rml4TWUgLSBTaG91bGQgYmUgaW5mZXJyZWQgYXMgbm90IHVuZGVmaW5lZC5cblxuICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZU5hbWVzLmRlbGV0ZShzdGFuZGFyZE5hbWUpO1xuICAgICAgICAgICAgfSAvLyAkRmxvd0ZpeE1lIC0gU2hvdWxkIGJlIGluZmVycmVkIGFzIG5vdCB1bmRlZmluZWQuXG5cblxuICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVOYW1lcy5kZWxldGUocHJvcEtleSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgc2VydmVyVmFsdWUgPSBnZXRWYWx1ZUZvckF0dHJpYnV0ZShkb21FbGVtZW50LCBwcm9wS2V5LCBuZXh0UHJvcCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobmV4dFByb3AgIT09IHNlcnZlclZhbHVlICYmICFpc01pc21hdGNoRHVlVG9CYWRDYXNpbmcpIHtcbiAgICAgICAgICB3YXJuRm9yUHJvcERpZmZlcmVuY2UocHJvcEtleSwgc2VydmVyVmFsdWUsIG5leHRQcm9wKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHtcbiAgICAvLyAkRmxvd0ZpeE1lIC0gU2hvdWxkIGJlIGluZmVycmVkIGFzIG5vdCB1bmRlZmluZWQuXG4gICAgaWYgKGV4dHJhQXR0cmlidXRlTmFtZXMuc2l6ZSA+IDAgJiYgIXN1cHByZXNzSHlkcmF0aW9uV2FybmluZykge1xuICAgICAgLy8gJEZsb3dGaXhNZSAtIFNob3VsZCBiZSBpbmZlcnJlZCBhcyBub3QgdW5kZWZpbmVkLlxuICAgICAgd2FybkZvckV4dHJhQXR0cmlidXRlcyhleHRyYUF0dHJpYnV0ZU5hbWVzKTtcbiAgICB9XG4gIH1cblxuICBzd2l0Y2ggKHRhZykge1xuICAgIGNhc2UgJ2lucHV0JzpcbiAgICAgIC8vIFRPRE86IE1ha2Ugc3VyZSB3ZSBjaGVjayBpZiB0aGlzIGlzIHN0aWxsIHVubW91bnRlZCBvciBkbyBhbnkgY2xlYW5cbiAgICAgIC8vIHVwIG5lY2Vzc2FyeSBzaW5jZSB3ZSBuZXZlciBzdG9wIHRyYWNraW5nIGFueW1vcmUuXG4gICAgICB0cmFjayhkb21FbGVtZW50KTtcbiAgICAgIHBvc3RNb3VudFdyYXBwZXIoZG9tRWxlbWVudCwgcmF3UHJvcHMsIHRydWUpO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICd0ZXh0YXJlYSc6XG4gICAgICAvLyBUT0RPOiBNYWtlIHN1cmUgd2UgY2hlY2sgaWYgdGhpcyBpcyBzdGlsbCB1bm1vdW50ZWQgb3IgZG8gYW55IGNsZWFuXG4gICAgICAvLyB1cCBuZWNlc3Nhcnkgc2luY2Ugd2UgbmV2ZXIgc3RvcCB0cmFja2luZyBhbnltb3JlLlxuICAgICAgdHJhY2soZG9tRWxlbWVudCk7XG4gICAgICBwb3N0TW91bnRXcmFwcGVyJDMoZG9tRWxlbWVudCk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ3NlbGVjdCc6XG4gICAgY2FzZSAnb3B0aW9uJzpcbiAgICAgIC8vIEZvciBpbnB1dCBhbmQgdGV4dGFyZWEgd2UgY3VycmVudCBhbHdheXMgc2V0IHRoZSB2YWx1ZSBwcm9wZXJ0eSBhdFxuICAgICAgLy8gcG9zdCBtb3VudCB0byBmb3JjZSBpdCB0byBkaXZlcmdlIGZyb20gYXR0cmlidXRlcy4gSG93ZXZlciwgZm9yXG4gICAgICAvLyBvcHRpb24gYW5kIHNlbGVjdCB3ZSBkb24ndCBxdWl0ZSBkbyB0aGUgc2FtZSB0aGluZyBhbmQgc2VsZWN0XG4gICAgICAvLyBpcyBub3QgcmVzaWxpZW50IHRvIHRoZSBET00gc3RhdGUgY2hhbmdpbmcgc28gd2UgZG9uJ3QgZG8gdGhhdCBoZXJlLlxuICAgICAgLy8gVE9ETzogQ29uc2lkZXIgbm90IGRvaW5nIHRoaXMgZm9yIGlucHV0IGFuZCB0ZXh0YXJlYS5cbiAgICAgIGJyZWFrO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIGlmICh0eXBlb2YgcmF3UHJvcHMub25DbGljayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAvLyBUT0RPOiBUaGlzIGNhc3QgbWF5IG5vdCBiZSBzb3VuZCBmb3IgU1ZHLCBNYXRoTUwgb3IgY3VzdG9tIGVsZW1lbnRzLlxuICAgICAgICB0cmFwQ2xpY2tPbk5vbkludGVyYWN0aXZlRWxlbWVudChkb21FbGVtZW50KTtcbiAgICAgIH1cblxuICAgICAgYnJlYWs7XG4gIH1cblxuICByZXR1cm4gdXBkYXRlUGF5bG9hZDtcbn1cbmZ1bmN0aW9uIGRpZmZIeWRyYXRlZFRleHQodGV4dE5vZGUsIHRleHQpIHtcbiAgdmFyIGlzRGlmZmVyZW50ID0gdGV4dE5vZGUubm9kZVZhbHVlICE9PSB0ZXh0O1xuICByZXR1cm4gaXNEaWZmZXJlbnQ7XG59XG5mdW5jdGlvbiB3YXJuRm9yVW5tYXRjaGVkVGV4dCh0ZXh0Tm9kZSwgdGV4dCkge1xuICB7XG4gICAgd2FybkZvclRleHREaWZmZXJlbmNlKHRleHROb2RlLm5vZGVWYWx1ZSwgdGV4dCk7XG4gIH1cbn1cbmZ1bmN0aW9uIHdhcm5Gb3JEZWxldGVkSHlkcmF0YWJsZUVsZW1lbnQocGFyZW50Tm9kZSwgY2hpbGQpIHtcbiAge1xuICAgIGlmIChkaWRXYXJuSW52YWxpZEh5ZHJhdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGRpZFdhcm5JbnZhbGlkSHlkcmF0aW9uID0gdHJ1ZTtcblxuICAgIGVycm9yKCdEaWQgbm90IGV4cGVjdCBzZXJ2ZXIgSFRNTCB0byBjb250YWluIGEgPCVzPiBpbiA8JXM+LicsIGNoaWxkLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksIHBhcmVudE5vZGUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSk7XG4gIH1cbn1cbmZ1bmN0aW9uIHdhcm5Gb3JEZWxldGVkSHlkcmF0YWJsZVRleHQocGFyZW50Tm9kZSwgY2hpbGQpIHtcbiAge1xuICAgIGlmIChkaWRXYXJuSW52YWxpZEh5ZHJhdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGRpZFdhcm5JbnZhbGlkSHlkcmF0aW9uID0gdHJ1ZTtcblxuICAgIGVycm9yKCdEaWQgbm90IGV4cGVjdCBzZXJ2ZXIgSFRNTCB0byBjb250YWluIHRoZSB0ZXh0IG5vZGUgXCIlc1wiIGluIDwlcz4uJywgY2hpbGQubm9kZVZhbHVlLCBwYXJlbnROb2RlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpO1xuICB9XG59XG5mdW5jdGlvbiB3YXJuRm9ySW5zZXJ0ZWRIeWRyYXRlZEVsZW1lbnQocGFyZW50Tm9kZSwgdGFnLCBwcm9wcykge1xuICB7XG4gICAgaWYgKGRpZFdhcm5JbnZhbGlkSHlkcmF0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZGlkV2FybkludmFsaWRIeWRyYXRpb24gPSB0cnVlO1xuXG4gICAgZXJyb3IoJ0V4cGVjdGVkIHNlcnZlciBIVE1MIHRvIGNvbnRhaW4gYSBtYXRjaGluZyA8JXM+IGluIDwlcz4uJywgdGFnLCBwYXJlbnROb2RlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpO1xuICB9XG59XG5mdW5jdGlvbiB3YXJuRm9ySW5zZXJ0ZWRIeWRyYXRlZFRleHQocGFyZW50Tm9kZSwgdGV4dCkge1xuICB7XG4gICAgaWYgKHRleHQgPT09ICcnKSB7XG4gICAgICAvLyBXZSBleHBlY3QgdG8gaW5zZXJ0IGVtcHR5IHRleHQgbm9kZXMgc2luY2UgdGhleSdyZSBub3QgcmVwcmVzZW50ZWQgaW5cbiAgICAgIC8vIHRoZSBIVE1MLlxuICAgICAgLy8gVE9ETzogUmVtb3ZlIHRoaXMgc3BlY2lhbCBjYXNlIGlmIHdlIGNhbiBqdXN0IGF2b2lkIGluc2VydGluZyBlbXB0eVxuICAgICAgLy8gdGV4dCBub2Rlcy5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZGlkV2FybkludmFsaWRIeWRyYXRpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBkaWRXYXJuSW52YWxpZEh5ZHJhdGlvbiA9IHRydWU7XG5cbiAgICBlcnJvcignRXhwZWN0ZWQgc2VydmVyIEhUTUwgdG8gY29udGFpbiBhIG1hdGNoaW5nIHRleHQgbm9kZSBmb3IgXCIlc1wiIGluIDwlcz4uJywgdGV4dCwgcGFyZW50Tm9kZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKTtcbiAgfVxufVxuZnVuY3Rpb24gcmVzdG9yZUNvbnRyb2xsZWRTdGF0ZSQzKGRvbUVsZW1lbnQsIHRhZywgcHJvcHMpIHtcbiAgc3dpdGNoICh0YWcpIHtcbiAgICBjYXNlICdpbnB1dCc6XG4gICAgICByZXN0b3JlQ29udHJvbGxlZFN0YXRlKGRvbUVsZW1lbnQsIHByb3BzKTtcbiAgICAgIHJldHVybjtcblxuICAgIGNhc2UgJ3RleHRhcmVhJzpcbiAgICAgIHJlc3RvcmVDb250cm9sbGVkU3RhdGUkMihkb21FbGVtZW50LCBwcm9wcyk7XG4gICAgICByZXR1cm47XG5cbiAgICBjYXNlICdzZWxlY3QnOlxuICAgICAgcmVzdG9yZUNvbnRyb2xsZWRTdGF0ZSQxKGRvbUVsZW1lbnQsIHByb3BzKTtcbiAgICAgIHJldHVybjtcbiAgfVxufVxuXG52YXIgdmFsaWRhdGVET01OZXN0aW5nID0gZnVuY3Rpb24gKCkge307XG5cbnZhciB1cGRhdGVkQW5jZXN0b3JJbmZvID0gZnVuY3Rpb24gKCkge307XG5cbntcbiAgLy8gVGhpcyB2YWxpZGF0aW9uIGNvZGUgd2FzIHdyaXR0ZW4gYmFzZWQgb24gdGhlIEhUTUw1IHBhcnNpbmcgc3BlYzpcbiAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc3ludGF4Lmh0bWwjaGFzLWFuLWVsZW1lbnQtaW4tc2NvcGVcbiAgLy9cbiAgLy8gTm90ZTogdGhpcyBkb2VzIG5vdCBjYXRjaCBhbGwgaW52YWxpZCBuZXN0aW5nLCBub3IgZG9lcyBpdCB0cnkgdG8gKGFzIGl0J3NcbiAgLy8gbm90IGNsZWFyIHdoYXQgcHJhY3RpY2FsIGJlbmVmaXQgZG9pbmcgc28gcHJvdmlkZXMpOyBpbnN0ZWFkLCB3ZSB3YXJuIG9ubHlcbiAgLy8gZm9yIGNhc2VzIHdoZXJlIHRoZSBwYXJzZXIgd2lsbCBnaXZlIGEgcGFyc2UgdHJlZSBkaWZmZXJpbmcgZnJvbSB3aGF0IFJlYWN0XG4gIC8vIGludGVuZGVkLiBGb3IgZXhhbXBsZSwgPGI+PGRpdj48L2Rpdj48L2I+IGlzIGludmFsaWQgYnV0IHdlIGRvbid0IHdhcm5cbiAgLy8gYmVjYXVzZSBpdCBzdGlsbCBwYXJzZXMgY29ycmVjdGx5OyB3ZSBkbyB3YXJuIGZvciBvdGhlciBjYXNlcyBsaWtlIG5lc3RlZFxuICAvLyA8cD4gdGFncyB3aGVyZSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzZWNvbmQgZWxlbWVudCBpbXBsaWNpdGx5IGNsb3NlcyB0aGVcbiAgLy8gZmlyc3QsIGNhdXNpbmcgYSBjb25mdXNpbmcgbWVzcy5cbiAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc3ludGF4Lmh0bWwjc3BlY2lhbFxuICB2YXIgc3BlY2lhbFRhZ3MgPSBbJ2FkZHJlc3MnLCAnYXBwbGV0JywgJ2FyZWEnLCAnYXJ0aWNsZScsICdhc2lkZScsICdiYXNlJywgJ2Jhc2Vmb250JywgJ2Jnc291bmQnLCAnYmxvY2txdW90ZScsICdib2R5JywgJ2JyJywgJ2J1dHRvbicsICdjYXB0aW9uJywgJ2NlbnRlcicsICdjb2wnLCAnY29sZ3JvdXAnLCAnZGQnLCAnZGV0YWlscycsICdkaXInLCAnZGl2JywgJ2RsJywgJ2R0JywgJ2VtYmVkJywgJ2ZpZWxkc2V0JywgJ2ZpZ2NhcHRpb24nLCAnZmlndXJlJywgJ2Zvb3RlcicsICdmb3JtJywgJ2ZyYW1lJywgJ2ZyYW1lc2V0JywgJ2gxJywgJ2gyJywgJ2gzJywgJ2g0JywgJ2g1JywgJ2g2JywgJ2hlYWQnLCAnaGVhZGVyJywgJ2hncm91cCcsICdocicsICdodG1sJywgJ2lmcmFtZScsICdpbWcnLCAnaW5wdXQnLCAnaXNpbmRleCcsICdsaScsICdsaW5rJywgJ2xpc3RpbmcnLCAnbWFpbicsICdtYXJxdWVlJywgJ21lbnUnLCAnbWVudWl0ZW0nLCAnbWV0YScsICduYXYnLCAnbm9lbWJlZCcsICdub2ZyYW1lcycsICdub3NjcmlwdCcsICdvYmplY3QnLCAnb2wnLCAncCcsICdwYXJhbScsICdwbGFpbnRleHQnLCAncHJlJywgJ3NjcmlwdCcsICdzZWN0aW9uJywgJ3NlbGVjdCcsICdzb3VyY2UnLCAnc3R5bGUnLCAnc3VtbWFyeScsICd0YWJsZScsICd0Ym9keScsICd0ZCcsICd0ZW1wbGF0ZScsICd0ZXh0YXJlYScsICd0Zm9vdCcsICd0aCcsICd0aGVhZCcsICd0aXRsZScsICd0cicsICd0cmFjaycsICd1bCcsICd3YnInLCAneG1wJ107IC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI2hhcy1hbi1lbGVtZW50LWluLXNjb3BlXG5cbiAgdmFyIGluU2NvcGVUYWdzID0gWydhcHBsZXQnLCAnY2FwdGlvbicsICdodG1sJywgJ3RhYmxlJywgJ3RkJywgJ3RoJywgJ21hcnF1ZWUnLCAnb2JqZWN0JywgJ3RlbXBsYXRlJywgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc3ludGF4Lmh0bWwjaHRtbC1pbnRlZ3JhdGlvbi1wb2ludFxuICAvLyBUT0RPOiBEaXN0aW5ndWlzaCBieSBuYW1lc3BhY2UgaGVyZSAtLSBmb3IgPHRpdGxlPiwgaW5jbHVkaW5nIGl0IGhlcmVcbiAgLy8gZXJycyBvbiB0aGUgc2lkZSBvZiBmZXdlciB3YXJuaW5nc1xuICAnZm9yZWlnbk9iamVjdCcsICdkZXNjJywgJ3RpdGxlJ107IC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI2hhcy1hbi1lbGVtZW50LWluLWJ1dHRvbi1zY29wZVxuXG4gIHZhciBidXR0b25TY29wZVRhZ3MgPSBpblNjb3BlVGFncy5jb25jYXQoWydidXR0b24nXSk7IC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI2dlbmVyYXRlLWltcGxpZWQtZW5kLXRhZ3NcblxuICB2YXIgaW1wbGllZEVuZFRhZ3MgPSBbJ2RkJywgJ2R0JywgJ2xpJywgJ29wdGlvbicsICdvcHRncm91cCcsICdwJywgJ3JwJywgJ3J0J107XG4gIHZhciBlbXB0eUFuY2VzdG9ySW5mbyA9IHtcbiAgICBjdXJyZW50OiBudWxsLFxuICAgIGZvcm1UYWc6IG51bGwsXG4gICAgYVRhZ0luU2NvcGU6IG51bGwsXG4gICAgYnV0dG9uVGFnSW5TY29wZTogbnVsbCxcbiAgICBub2JyVGFnSW5TY29wZTogbnVsbCxcbiAgICBwVGFnSW5CdXR0b25TY29wZTogbnVsbCxcbiAgICBsaXN0SXRlbVRhZ0F1dG9jbG9zaW5nOiBudWxsLFxuICAgIGRsSXRlbVRhZ0F1dG9jbG9zaW5nOiBudWxsXG4gIH07XG5cbiAgdXBkYXRlZEFuY2VzdG9ySW5mbyA9IGZ1bmN0aW9uIChvbGRJbmZvLCB0YWcpIHtcbiAgICB2YXIgYW5jZXN0b3JJbmZvID0gX2Fzc2lnbih7fSwgb2xkSW5mbyB8fCBlbXB0eUFuY2VzdG9ySW5mbyk7XG5cbiAgICB2YXIgaW5mbyA9IHtcbiAgICAgIHRhZzogdGFnXG4gICAgfTtcblxuICAgIGlmIChpblNjb3BlVGFncy5pbmRleE9mKHRhZykgIT09IC0xKSB7XG4gICAgICBhbmNlc3RvckluZm8uYVRhZ0luU2NvcGUgPSBudWxsO1xuICAgICAgYW5jZXN0b3JJbmZvLmJ1dHRvblRhZ0luU2NvcGUgPSBudWxsO1xuICAgICAgYW5jZXN0b3JJbmZvLm5vYnJUYWdJblNjb3BlID0gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoYnV0dG9uU2NvcGVUYWdzLmluZGV4T2YodGFnKSAhPT0gLTEpIHtcbiAgICAgIGFuY2VzdG9ySW5mby5wVGFnSW5CdXR0b25TY29wZSA9IG51bGw7XG4gICAgfSAvLyBTZWUgcnVsZXMgZm9yICdsaScsICdkZCcsICdkdCcgc3RhcnQgdGFncyBpblxuICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbmJvZHlcblxuXG4gICAgaWYgKHNwZWNpYWxUYWdzLmluZGV4T2YodGFnKSAhPT0gLTEgJiYgdGFnICE9PSAnYWRkcmVzcycgJiYgdGFnICE9PSAnZGl2JyAmJiB0YWcgIT09ICdwJykge1xuICAgICAgYW5jZXN0b3JJbmZvLmxpc3RJdGVtVGFnQXV0b2Nsb3NpbmcgPSBudWxsO1xuICAgICAgYW5jZXN0b3JJbmZvLmRsSXRlbVRhZ0F1dG9jbG9zaW5nID0gbnVsbDtcbiAgICB9XG5cbiAgICBhbmNlc3RvckluZm8uY3VycmVudCA9IGluZm87XG5cbiAgICBpZiAodGFnID09PSAnZm9ybScpIHtcbiAgICAgIGFuY2VzdG9ySW5mby5mb3JtVGFnID0gaW5mbztcbiAgICB9XG5cbiAgICBpZiAodGFnID09PSAnYScpIHtcbiAgICAgIGFuY2VzdG9ySW5mby5hVGFnSW5TY29wZSA9IGluZm87XG4gICAgfVxuXG4gICAgaWYgKHRhZyA9PT0gJ2J1dHRvbicpIHtcbiAgICAgIGFuY2VzdG9ySW5mby5idXR0b25UYWdJblNjb3BlID0gaW5mbztcbiAgICB9XG5cbiAgICBpZiAodGFnID09PSAnbm9icicpIHtcbiAgICAgIGFuY2VzdG9ySW5mby5ub2JyVGFnSW5TY29wZSA9IGluZm87XG4gICAgfVxuXG4gICAgaWYgKHRhZyA9PT0gJ3AnKSB7XG4gICAgICBhbmNlc3RvckluZm8ucFRhZ0luQnV0dG9uU2NvcGUgPSBpbmZvO1xuICAgIH1cblxuICAgIGlmICh0YWcgPT09ICdsaScpIHtcbiAgICAgIGFuY2VzdG9ySW5mby5saXN0SXRlbVRhZ0F1dG9jbG9zaW5nID0gaW5mbztcbiAgICB9XG5cbiAgICBpZiAodGFnID09PSAnZGQnIHx8IHRhZyA9PT0gJ2R0Jykge1xuICAgICAgYW5jZXN0b3JJbmZvLmRsSXRlbVRhZ0F1dG9jbG9zaW5nID0gaW5mbztcbiAgICB9XG5cbiAgICByZXR1cm4gYW5jZXN0b3JJbmZvO1xuICB9O1xuICAvKipcbiAgICogUmV0dXJucyB3aGV0aGVyXG4gICAqL1xuXG5cbiAgdmFyIGlzVGFnVmFsaWRXaXRoUGFyZW50ID0gZnVuY3Rpb24gKHRhZywgcGFyZW50VGFnKSB7XG4gICAgLy8gRmlyc3QsIGxldCdzIGNoZWNrIGlmIHdlJ3JlIGluIGFuIHVudXN1YWwgcGFyc2luZyBtb2RlLi4uXG4gICAgc3dpdGNoIChwYXJlbnRUYWcpIHtcbiAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbnNlbGVjdFxuICAgICAgY2FzZSAnc2VsZWN0JzpcbiAgICAgICAgcmV0dXJuIHRhZyA9PT0gJ29wdGlvbicgfHwgdGFnID09PSAnb3B0Z3JvdXAnIHx8IHRhZyA9PT0gJyN0ZXh0JztcblxuICAgICAgY2FzZSAnb3B0Z3JvdXAnOlxuICAgICAgICByZXR1cm4gdGFnID09PSAnb3B0aW9uJyB8fCB0YWcgPT09ICcjdGV4dCc7XG4gICAgICAvLyBTdHJpY3RseSBzcGVha2luZywgc2VlaW5nIGFuIDxvcHRpb24+IGRvZXNuJ3QgbWVhbiB3ZSdyZSBpbiBhIDxzZWxlY3Q+XG4gICAgICAvLyBidXRcblxuICAgICAgY2FzZSAnb3B0aW9uJzpcbiAgICAgICAgcmV0dXJuIHRhZyA9PT0gJyN0ZXh0JztcbiAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbnRkXG4gICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zeW50YXguaHRtbCNwYXJzaW5nLW1haW4taW5jYXB0aW9uXG4gICAgICAvLyBObyBzcGVjaWFsIGJlaGF2aW9yIHNpbmNlIHRoZXNlIHJ1bGVzIGZhbGwgYmFjayB0byBcImluIGJvZHlcIiBtb2RlIGZvclxuICAgICAgLy8gYWxsIGV4Y2VwdCBzcGVjaWFsIHRhYmxlIG5vZGVzIHdoaWNoIGNhdXNlIGJhZCBwYXJzaW5nIGJlaGF2aW9yIGFueXdheS5cbiAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbnRyXG5cbiAgICAgIGNhc2UgJ3RyJzpcbiAgICAgICAgcmV0dXJuIHRhZyA9PT0gJ3RoJyB8fCB0YWcgPT09ICd0ZCcgfHwgdGFnID09PSAnc3R5bGUnIHx8IHRhZyA9PT0gJ3NjcmlwdCcgfHwgdGFnID09PSAndGVtcGxhdGUnO1xuICAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc3ludGF4Lmh0bWwjcGFyc2luZy1tYWluLWludGJvZHlcblxuICAgICAgY2FzZSAndGJvZHknOlxuICAgICAgY2FzZSAndGhlYWQnOlxuICAgICAgY2FzZSAndGZvb3QnOlxuICAgICAgICByZXR1cm4gdGFnID09PSAndHInIHx8IHRhZyA9PT0gJ3N0eWxlJyB8fCB0YWcgPT09ICdzY3JpcHQnIHx8IHRhZyA9PT0gJ3RlbXBsYXRlJztcbiAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbmNvbGdyb3VwXG5cbiAgICAgIGNhc2UgJ2NvbGdyb3VwJzpcbiAgICAgICAgcmV0dXJuIHRhZyA9PT0gJ2NvbCcgfHwgdGFnID09PSAndGVtcGxhdGUnO1xuICAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc3ludGF4Lmh0bWwjcGFyc2luZy1tYWluLWludGFibGVcblxuICAgICAgY2FzZSAndGFibGUnOlxuICAgICAgICByZXR1cm4gdGFnID09PSAnY2FwdGlvbicgfHwgdGFnID09PSAnY29sZ3JvdXAnIHx8IHRhZyA9PT0gJ3Rib2R5JyB8fCB0YWcgPT09ICd0Zm9vdCcgfHwgdGFnID09PSAndGhlYWQnIHx8IHRhZyA9PT0gJ3N0eWxlJyB8fCB0YWcgPT09ICdzY3JpcHQnIHx8IHRhZyA9PT0gJ3RlbXBsYXRlJztcbiAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbmhlYWRcblxuICAgICAgY2FzZSAnaGVhZCc6XG4gICAgICAgIHJldHVybiB0YWcgPT09ICdiYXNlJyB8fCB0YWcgPT09ICdiYXNlZm9udCcgfHwgdGFnID09PSAnYmdzb3VuZCcgfHwgdGFnID09PSAnbGluaycgfHwgdGFnID09PSAnbWV0YScgfHwgdGFnID09PSAndGl0bGUnIHx8IHRhZyA9PT0gJ25vc2NyaXB0JyB8fCB0YWcgPT09ICdub2ZyYW1lcycgfHwgdGFnID09PSAnc3R5bGUnIHx8IHRhZyA9PT0gJ3NjcmlwdCcgfHwgdGFnID09PSAndGVtcGxhdGUnO1xuICAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc2VtYW50aWNzLmh0bWwjdGhlLWh0bWwtZWxlbWVudFxuXG4gICAgICBjYXNlICdodG1sJzpcbiAgICAgICAgcmV0dXJuIHRhZyA9PT0gJ2hlYWQnIHx8IHRhZyA9PT0gJ2JvZHknIHx8IHRhZyA9PT0gJ2ZyYW1lc2V0JztcblxuICAgICAgY2FzZSAnZnJhbWVzZXQnOlxuICAgICAgICByZXR1cm4gdGFnID09PSAnZnJhbWUnO1xuXG4gICAgICBjYXNlICcjZG9jdW1lbnQnOlxuICAgICAgICByZXR1cm4gdGFnID09PSAnaHRtbCc7XG4gICAgfSAvLyBQcm9iYWJseSBpbiB0aGUgXCJpbiBib2R5XCIgcGFyc2luZyBtb2RlLCBzbyB3ZSBvdXRsYXcgb25seSB0YWcgY29tYm9zXG4gICAgLy8gd2hlcmUgdGhlIHBhcnNpbmcgcnVsZXMgY2F1c2UgaW1wbGljaXQgb3BlbnMgb3IgY2xvc2VzIHRvIGJlIGFkZGVkLlxuICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbmJvZHlcblxuXG4gICAgc3dpdGNoICh0YWcpIHtcbiAgICAgIGNhc2UgJ2gxJzpcbiAgICAgIGNhc2UgJ2gyJzpcbiAgICAgIGNhc2UgJ2gzJzpcbiAgICAgIGNhc2UgJ2g0JzpcbiAgICAgIGNhc2UgJ2g1JzpcbiAgICAgIGNhc2UgJ2g2JzpcbiAgICAgICAgcmV0dXJuIHBhcmVudFRhZyAhPT0gJ2gxJyAmJiBwYXJlbnRUYWcgIT09ICdoMicgJiYgcGFyZW50VGFnICE9PSAnaDMnICYmIHBhcmVudFRhZyAhPT0gJ2g0JyAmJiBwYXJlbnRUYWcgIT09ICdoNScgJiYgcGFyZW50VGFnICE9PSAnaDYnO1xuXG4gICAgICBjYXNlICdycCc6XG4gICAgICBjYXNlICdydCc6XG4gICAgICAgIHJldHVybiBpbXBsaWVkRW5kVGFncy5pbmRleE9mKHBhcmVudFRhZykgPT09IC0xO1xuXG4gICAgICBjYXNlICdib2R5JzpcbiAgICAgIGNhc2UgJ2NhcHRpb24nOlxuICAgICAgY2FzZSAnY29sJzpcbiAgICAgIGNhc2UgJ2NvbGdyb3VwJzpcbiAgICAgIGNhc2UgJ2ZyYW1lc2V0JzpcbiAgICAgIGNhc2UgJ2ZyYW1lJzpcbiAgICAgIGNhc2UgJ2hlYWQnOlxuICAgICAgY2FzZSAnaHRtbCc6XG4gICAgICBjYXNlICd0Ym9keSc6XG4gICAgICBjYXNlICd0ZCc6XG4gICAgICBjYXNlICd0Zm9vdCc6XG4gICAgICBjYXNlICd0aCc6XG4gICAgICBjYXNlICd0aGVhZCc6XG4gICAgICBjYXNlICd0cic6XG4gICAgICAgIC8vIFRoZXNlIHRhZ3MgYXJlIG9ubHkgdmFsaWQgd2l0aCBhIGZldyBwYXJlbnRzIHRoYXQgaGF2ZSBzcGVjaWFsIGNoaWxkXG4gICAgICAgIC8vIHBhcnNpbmcgcnVsZXMgLS0gaWYgd2UncmUgZG93biBoZXJlLCB0aGVuIG5vbmUgb2YgdGhvc2UgbWF0Y2hlZCBhbmRcbiAgICAgICAgLy8gc28gd2UgYWxsb3cgaXQgb25seSBpZiB3ZSBkb24ndCBrbm93IHdoYXQgdGhlIHBhcmVudCBpcywgYXMgYWxsIG90aGVyXG4gICAgICAgIC8vIGNhc2VzIGFyZSBpbnZhbGlkLlxuICAgICAgICByZXR1cm4gcGFyZW50VGFnID09IG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH07XG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXJcbiAgICovXG5cblxuICB2YXIgZmluZEludmFsaWRBbmNlc3RvckZvclRhZyA9IGZ1bmN0aW9uICh0YWcsIGFuY2VzdG9ySW5mbykge1xuICAgIHN3aXRjaCAodGFnKSB7XG4gICAgICBjYXNlICdhZGRyZXNzJzpcbiAgICAgIGNhc2UgJ2FydGljbGUnOlxuICAgICAgY2FzZSAnYXNpZGUnOlxuICAgICAgY2FzZSAnYmxvY2txdW90ZSc6XG4gICAgICBjYXNlICdjZW50ZXInOlxuICAgICAgY2FzZSAnZGV0YWlscyc6XG4gICAgICBjYXNlICdkaWFsb2cnOlxuICAgICAgY2FzZSAnZGlyJzpcbiAgICAgIGNhc2UgJ2Rpdic6XG4gICAgICBjYXNlICdkbCc6XG4gICAgICBjYXNlICdmaWVsZHNldCc6XG4gICAgICBjYXNlICdmaWdjYXB0aW9uJzpcbiAgICAgIGNhc2UgJ2ZpZ3VyZSc6XG4gICAgICBjYXNlICdmb290ZXInOlxuICAgICAgY2FzZSAnaGVhZGVyJzpcbiAgICAgIGNhc2UgJ2hncm91cCc6XG4gICAgICBjYXNlICdtYWluJzpcbiAgICAgIGNhc2UgJ21lbnUnOlxuICAgICAgY2FzZSAnbmF2JzpcbiAgICAgIGNhc2UgJ29sJzpcbiAgICAgIGNhc2UgJ3AnOlxuICAgICAgY2FzZSAnc2VjdGlvbic6XG4gICAgICBjYXNlICdzdW1tYXJ5JzpcbiAgICAgIGNhc2UgJ3VsJzpcbiAgICAgIGNhc2UgJ3ByZSc6XG4gICAgICBjYXNlICdsaXN0aW5nJzpcbiAgICAgIGNhc2UgJ3RhYmxlJzpcbiAgICAgIGNhc2UgJ2hyJzpcbiAgICAgIGNhc2UgJ3htcCc6XG4gICAgICBjYXNlICdoMSc6XG4gICAgICBjYXNlICdoMic6XG4gICAgICBjYXNlICdoMyc6XG4gICAgICBjYXNlICdoNCc6XG4gICAgICBjYXNlICdoNSc6XG4gICAgICBjYXNlICdoNic6XG4gICAgICAgIHJldHVybiBhbmNlc3RvckluZm8ucFRhZ0luQnV0dG9uU2NvcGU7XG5cbiAgICAgIGNhc2UgJ2Zvcm0nOlxuICAgICAgICByZXR1cm4gYW5jZXN0b3JJbmZvLmZvcm1UYWcgfHwgYW5jZXN0b3JJbmZvLnBUYWdJbkJ1dHRvblNjb3BlO1xuXG4gICAgICBjYXNlICdsaSc6XG4gICAgICAgIHJldHVybiBhbmNlc3RvckluZm8ubGlzdEl0ZW1UYWdBdXRvY2xvc2luZztcblxuICAgICAgY2FzZSAnZGQnOlxuICAgICAgY2FzZSAnZHQnOlxuICAgICAgICByZXR1cm4gYW5jZXN0b3JJbmZvLmRsSXRlbVRhZ0F1dG9jbG9zaW5nO1xuXG4gICAgICBjYXNlICdidXR0b24nOlxuICAgICAgICByZXR1cm4gYW5jZXN0b3JJbmZvLmJ1dHRvblRhZ0luU2NvcGU7XG5cbiAgICAgIGNhc2UgJ2EnOlxuICAgICAgICAvLyBTcGVjIHNheXMgc29tZXRoaW5nIGFib3V0IHN0b3JpbmcgYSBsaXN0IG9mIG1hcmtlcnMsIGJ1dCBpdCBzb3VuZHNcbiAgICAgICAgLy8gZXF1aXZhbGVudCB0byB0aGlzIGNoZWNrLlxuICAgICAgICByZXR1cm4gYW5jZXN0b3JJbmZvLmFUYWdJblNjb3BlO1xuXG4gICAgICBjYXNlICdub2JyJzpcbiAgICAgICAgcmV0dXJuIGFuY2VzdG9ySW5mby5ub2JyVGFnSW5TY29wZTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfTtcblxuICB2YXIgZGlkV2FybiQxID0ge307XG5cbiAgdmFsaWRhdGVET01OZXN0aW5nID0gZnVuY3Rpb24gKGNoaWxkVGFnLCBjaGlsZFRleHQsIGFuY2VzdG9ySW5mbykge1xuICAgIGFuY2VzdG9ySW5mbyA9IGFuY2VzdG9ySW5mbyB8fCBlbXB0eUFuY2VzdG9ySW5mbztcbiAgICB2YXIgcGFyZW50SW5mbyA9IGFuY2VzdG9ySW5mby5jdXJyZW50O1xuICAgIHZhciBwYXJlbnRUYWcgPSBwYXJlbnRJbmZvICYmIHBhcmVudEluZm8udGFnO1xuXG4gICAgaWYgKGNoaWxkVGV4dCAhPSBudWxsKSB7XG4gICAgICBpZiAoY2hpbGRUYWcgIT0gbnVsbCkge1xuICAgICAgICBlcnJvcigndmFsaWRhdGVET01OZXN0aW5nOiB3aGVuIGNoaWxkVGV4dCBpcyBwYXNzZWQsIGNoaWxkVGFnIHNob3VsZCBiZSBudWxsJyk7XG4gICAgICB9XG5cbiAgICAgIGNoaWxkVGFnID0gJyN0ZXh0JztcbiAgICB9XG5cbiAgICB2YXIgaW52YWxpZFBhcmVudCA9IGlzVGFnVmFsaWRXaXRoUGFyZW50KGNoaWxkVGFnLCBwYXJlbnRUYWcpID8gbnVsbCA6IHBhcmVudEluZm87XG4gICAgdmFyIGludmFsaWRBbmNlc3RvciA9IGludmFsaWRQYXJlbnQgPyBudWxsIDogZmluZEludmFsaWRBbmNlc3RvckZvclRhZyhjaGlsZFRhZywgYW5jZXN0b3JJbmZvKTtcbiAgICB2YXIgaW52YWxpZFBhcmVudE9yQW5jZXN0b3IgPSBpbnZhbGlkUGFyZW50IHx8IGludmFsaWRBbmNlc3RvcjtcblxuICAgIGlmICghaW52YWxpZFBhcmVudE9yQW5jZXN0b3IpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2YXIgYW5jZXN0b3JUYWcgPSBpbnZhbGlkUGFyZW50T3JBbmNlc3Rvci50YWc7XG4gICAgdmFyIHdhcm5LZXkgPSAhIWludmFsaWRQYXJlbnQgKyAnfCcgKyBjaGlsZFRhZyArICd8JyArIGFuY2VzdG9yVGFnO1xuXG4gICAgaWYgKGRpZFdhcm4kMVt3YXJuS2V5XSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGRpZFdhcm4kMVt3YXJuS2V5XSA9IHRydWU7XG4gICAgdmFyIHRhZ0Rpc3BsYXlOYW1lID0gY2hpbGRUYWc7XG4gICAgdmFyIHdoaXRlc3BhY2VJbmZvID0gJyc7XG5cbiAgICBpZiAoY2hpbGRUYWcgPT09ICcjdGV4dCcpIHtcbiAgICAgIGlmICgvXFxTLy50ZXN0KGNoaWxkVGV4dCkpIHtcbiAgICAgICAgdGFnRGlzcGxheU5hbWUgPSAnVGV4dCBub2Rlcyc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0YWdEaXNwbGF5TmFtZSA9ICdXaGl0ZXNwYWNlIHRleHQgbm9kZXMnO1xuICAgICAgICB3aGl0ZXNwYWNlSW5mbyA9IFwiIE1ha2Ugc3VyZSB5b3UgZG9uJ3QgaGF2ZSBhbnkgZXh0cmEgd2hpdGVzcGFjZSBiZXR3ZWVuIHRhZ3Mgb24gXCIgKyAnZWFjaCBsaW5lIG9mIHlvdXIgc291cmNlIGNvZGUuJztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGFnRGlzcGxheU5hbWUgPSAnPCcgKyBjaGlsZFRhZyArICc+JztcbiAgICB9XG5cbiAgICBpZiAoaW52YWxpZFBhcmVudCkge1xuICAgICAgdmFyIGluZm8gPSAnJztcblxuICAgICAgaWYgKGFuY2VzdG9yVGFnID09PSAndGFibGUnICYmIGNoaWxkVGFnID09PSAndHInKSB7XG4gICAgICAgIGluZm8gKz0gJyBBZGQgYSA8dGJvZHk+LCA8dGhlYWQ+IG9yIDx0Zm9vdD4gdG8geW91ciBjb2RlIHRvIG1hdGNoIHRoZSBET00gdHJlZSBnZW5lcmF0ZWQgYnkgJyArICd0aGUgYnJvd3Nlci4nO1xuICAgICAgfVxuXG4gICAgICBlcnJvcigndmFsaWRhdGVET01OZXN0aW5nKC4uLik6ICVzIGNhbm5vdCBhcHBlYXIgYXMgYSBjaGlsZCBvZiA8JXM+LiVzJXMnLCB0YWdEaXNwbGF5TmFtZSwgYW5jZXN0b3JUYWcsIHdoaXRlc3BhY2VJbmZvLCBpbmZvKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZXJyb3IoJ3ZhbGlkYXRlRE9NTmVzdGluZyguLi4pOiAlcyBjYW5ub3QgYXBwZWFyIGFzIGEgZGVzY2VuZGFudCBvZiAnICsgJzwlcz4uJywgdGFnRGlzcGxheU5hbWUsIGFuY2VzdG9yVGFnKTtcbiAgICB9XG4gIH07XG59XG5cbnZhciBTVVBQUkVTU19IWURSQVRJT05fV0FSTklORyQxO1xuXG57XG4gIFNVUFBSRVNTX0hZRFJBVElPTl9XQVJOSU5HJDEgPSAnc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nJztcbn1cblxudmFyIFNVU1BFTlNFX1NUQVJUX0RBVEEgPSAnJCc7XG52YXIgU1VTUEVOU0VfRU5EX0RBVEEgPSAnLyQnO1xudmFyIFNVU1BFTlNFX1BFTkRJTkdfU1RBUlRfREFUQSA9ICckPyc7XG52YXIgU1VTUEVOU0VfRkFMTEJBQ0tfU1RBUlRfREFUQSA9ICckISc7XG52YXIgU1RZTEUkMSA9ICdzdHlsZSc7XG52YXIgZXZlbnRzRW5hYmxlZCA9IG51bGw7XG52YXIgc2VsZWN0aW9uSW5mb3JtYXRpb24gPSBudWxsO1xuXG5mdW5jdGlvbiBzaG91bGRBdXRvRm9jdXNIb3N0Q29tcG9uZW50KHR5cGUsIHByb3BzKSB7XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgJ2J1dHRvbic6XG4gICAgY2FzZSAnaW5wdXQnOlxuICAgIGNhc2UgJ3NlbGVjdCc6XG4gICAgY2FzZSAndGV4dGFyZWEnOlxuICAgICAgcmV0dXJuICEhcHJvcHMuYXV0b0ZvY3VzO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuZnVuY3Rpb24gZ2V0Um9vdEhvc3RDb250ZXh0KHJvb3RDb250YWluZXJJbnN0YW5jZSkge1xuICB2YXIgdHlwZTtcbiAgdmFyIG5hbWVzcGFjZTtcbiAgdmFyIG5vZGVUeXBlID0gcm9vdENvbnRhaW5lckluc3RhbmNlLm5vZGVUeXBlO1xuXG4gIHN3aXRjaCAobm9kZVR5cGUpIHtcbiAgICBjYXNlIERPQ1VNRU5UX05PREU6XG4gICAgY2FzZSBET0NVTUVOVF9GUkFHTUVOVF9OT0RFOlxuICAgICAge1xuICAgICAgICB0eXBlID0gbm9kZVR5cGUgPT09IERPQ1VNRU5UX05PREUgPyAnI2RvY3VtZW50JyA6ICcjZnJhZ21lbnQnO1xuICAgICAgICB2YXIgcm9vdCA9IHJvb3RDb250YWluZXJJbnN0YW5jZS5kb2N1bWVudEVsZW1lbnQ7XG4gICAgICAgIG5hbWVzcGFjZSA9IHJvb3QgPyByb290Lm5hbWVzcGFjZVVSSSA6IGdldENoaWxkTmFtZXNwYWNlKG51bGwsICcnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICBkZWZhdWx0OlxuICAgICAge1xuICAgICAgICB2YXIgY29udGFpbmVyID0gbm9kZVR5cGUgPT09IENPTU1FTlRfTk9ERSA/IHJvb3RDb250YWluZXJJbnN0YW5jZS5wYXJlbnROb2RlIDogcm9vdENvbnRhaW5lckluc3RhbmNlO1xuICAgICAgICB2YXIgb3duTmFtZXNwYWNlID0gY29udGFpbmVyLm5hbWVzcGFjZVVSSSB8fCBudWxsO1xuICAgICAgICB0eXBlID0gY29udGFpbmVyLnRhZ05hbWU7XG4gICAgICAgIG5hbWVzcGFjZSA9IGdldENoaWxkTmFtZXNwYWNlKG93bk5hbWVzcGFjZSwgdHlwZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICB9XG5cbiAge1xuICAgIHZhciB2YWxpZGF0ZWRUYWcgPSB0eXBlLnRvTG93ZXJDYXNlKCk7XG4gICAgdmFyIGFuY2VzdG9ySW5mbyA9IHVwZGF0ZWRBbmNlc3RvckluZm8obnVsbCwgdmFsaWRhdGVkVGFnKTtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZXNwYWNlOiBuYW1lc3BhY2UsXG4gICAgICBhbmNlc3RvckluZm86IGFuY2VzdG9ySW5mb1xuICAgIH07XG4gIH1cbn1cbmZ1bmN0aW9uIGdldENoaWxkSG9zdENvbnRleHQocGFyZW50SG9zdENvbnRleHQsIHR5cGUsIHJvb3RDb250YWluZXJJbnN0YW5jZSkge1xuICB7XG4gICAgdmFyIHBhcmVudEhvc3RDb250ZXh0RGV2ID0gcGFyZW50SG9zdENvbnRleHQ7XG4gICAgdmFyIG5hbWVzcGFjZSA9IGdldENoaWxkTmFtZXNwYWNlKHBhcmVudEhvc3RDb250ZXh0RGV2Lm5hbWVzcGFjZSwgdHlwZSk7XG4gICAgdmFyIGFuY2VzdG9ySW5mbyA9IHVwZGF0ZWRBbmNlc3RvckluZm8ocGFyZW50SG9zdENvbnRleHREZXYuYW5jZXN0b3JJbmZvLCB0eXBlKTtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZXNwYWNlOiBuYW1lc3BhY2UsXG4gICAgICBhbmNlc3RvckluZm86IGFuY2VzdG9ySW5mb1xuICAgIH07XG4gIH1cbn1cbmZ1bmN0aW9uIGdldFB1YmxpY0luc3RhbmNlKGluc3RhbmNlKSB7XG4gIHJldHVybiBpbnN0YW5jZTtcbn1cbmZ1bmN0aW9uIHByZXBhcmVGb3JDb21taXQoY29udGFpbmVySW5mbykge1xuICBldmVudHNFbmFibGVkID0gaXNFbmFibGVkKCk7XG4gIHNlbGVjdGlvbkluZm9ybWF0aW9uID0gZ2V0U2VsZWN0aW9uSW5mb3JtYXRpb24oKTtcbiAgdmFyIGFjdGl2ZUluc3RhbmNlID0gbnVsbDtcblxuICBzZXRFbmFibGVkKGZhbHNlKTtcbiAgcmV0dXJuIGFjdGl2ZUluc3RhbmNlO1xufVxuZnVuY3Rpb24gcmVzZXRBZnRlckNvbW1pdChjb250YWluZXJJbmZvKSB7XG4gIHJlc3RvcmVTZWxlY3Rpb24oc2VsZWN0aW9uSW5mb3JtYXRpb24pO1xuICBzZXRFbmFibGVkKGV2ZW50c0VuYWJsZWQpO1xuICBldmVudHNFbmFibGVkID0gbnVsbDtcbiAgc2VsZWN0aW9uSW5mb3JtYXRpb24gPSBudWxsO1xufVxuZnVuY3Rpb24gY3JlYXRlSW5zdGFuY2UodHlwZSwgcHJvcHMsIHJvb3RDb250YWluZXJJbnN0YW5jZSwgaG9zdENvbnRleHQsIGludGVybmFsSW5zdGFuY2VIYW5kbGUpIHtcbiAgdmFyIHBhcmVudE5hbWVzcGFjZTtcblxuICB7XG4gICAgLy8gVE9ETzogdGFrZSBuYW1lc3BhY2UgaW50byBhY2NvdW50IHdoZW4gdmFsaWRhdGluZy5cbiAgICB2YXIgaG9zdENvbnRleHREZXYgPSBob3N0Q29udGV4dDtcbiAgICB2YWxpZGF0ZURPTU5lc3RpbmcodHlwZSwgbnVsbCwgaG9zdENvbnRleHREZXYuYW5jZXN0b3JJbmZvKTtcblxuICAgIGlmICh0eXBlb2YgcHJvcHMuY2hpbGRyZW4gPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBwcm9wcy5jaGlsZHJlbiA9PT0gJ251bWJlcicpIHtcbiAgICAgIHZhciBzdHJpbmcgPSAnJyArIHByb3BzLmNoaWxkcmVuO1xuICAgICAgdmFyIG93bkFuY2VzdG9ySW5mbyA9IHVwZGF0ZWRBbmNlc3RvckluZm8oaG9zdENvbnRleHREZXYuYW5jZXN0b3JJbmZvLCB0eXBlKTtcbiAgICAgIHZhbGlkYXRlRE9NTmVzdGluZyhudWxsLCBzdHJpbmcsIG93bkFuY2VzdG9ySW5mbyk7XG4gICAgfVxuXG4gICAgcGFyZW50TmFtZXNwYWNlID0gaG9zdENvbnRleHREZXYubmFtZXNwYWNlO1xuICB9XG5cbiAgdmFyIGRvbUVsZW1lbnQgPSBjcmVhdGVFbGVtZW50KHR5cGUsIHByb3BzLCByb290Q29udGFpbmVySW5zdGFuY2UsIHBhcmVudE5hbWVzcGFjZSk7XG4gIHByZWNhY2hlRmliZXJOb2RlKGludGVybmFsSW5zdGFuY2VIYW5kbGUsIGRvbUVsZW1lbnQpO1xuICB1cGRhdGVGaWJlclByb3BzKGRvbUVsZW1lbnQsIHByb3BzKTtcbiAgcmV0dXJuIGRvbUVsZW1lbnQ7XG59XG5mdW5jdGlvbiBhcHBlbmRJbml0aWFsQ2hpbGQocGFyZW50SW5zdGFuY2UsIGNoaWxkKSB7XG4gIHBhcmVudEluc3RhbmNlLmFwcGVuZENoaWxkKGNoaWxkKTtcbn1cbmZ1bmN0aW9uIGZpbmFsaXplSW5pdGlhbENoaWxkcmVuKGRvbUVsZW1lbnQsIHR5cGUsIHByb3BzLCByb290Q29udGFpbmVySW5zdGFuY2UsIGhvc3RDb250ZXh0KSB7XG4gIHNldEluaXRpYWxQcm9wZXJ0aWVzKGRvbUVsZW1lbnQsIHR5cGUsIHByb3BzLCByb290Q29udGFpbmVySW5zdGFuY2UpO1xuICByZXR1cm4gc2hvdWxkQXV0b0ZvY3VzSG9zdENvbXBvbmVudCh0eXBlLCBwcm9wcyk7XG59XG5mdW5jdGlvbiBwcmVwYXJlVXBkYXRlKGRvbUVsZW1lbnQsIHR5cGUsIG9sZFByb3BzLCBuZXdQcm9wcywgcm9vdENvbnRhaW5lckluc3RhbmNlLCBob3N0Q29udGV4dCkge1xuICB7XG4gICAgdmFyIGhvc3RDb250ZXh0RGV2ID0gaG9zdENvbnRleHQ7XG5cbiAgICBpZiAodHlwZW9mIG5ld1Byb3BzLmNoaWxkcmVuICE9PSB0eXBlb2Ygb2xkUHJvcHMuY2hpbGRyZW4gJiYgKHR5cGVvZiBuZXdQcm9wcy5jaGlsZHJlbiA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIG5ld1Byb3BzLmNoaWxkcmVuID09PSAnbnVtYmVyJykpIHtcbiAgICAgIHZhciBzdHJpbmcgPSAnJyArIG5ld1Byb3BzLmNoaWxkcmVuO1xuICAgICAgdmFyIG93bkFuY2VzdG9ySW5mbyA9IHVwZGF0ZWRBbmNlc3RvckluZm8oaG9zdENvbnRleHREZXYuYW5jZXN0b3JJbmZvLCB0eXBlKTtcbiAgICAgIHZhbGlkYXRlRE9NTmVzdGluZyhudWxsLCBzdHJpbmcsIG93bkFuY2VzdG9ySW5mbyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRpZmZQcm9wZXJ0aWVzKGRvbUVsZW1lbnQsIHR5cGUsIG9sZFByb3BzLCBuZXdQcm9wcyk7XG59XG5mdW5jdGlvbiBzaG91bGRTZXRUZXh0Q29udGVudCh0eXBlLCBwcm9wcykge1xuICByZXR1cm4gdHlwZSA9PT0gJ3RleHRhcmVhJyB8fCB0eXBlID09PSAnb3B0aW9uJyB8fCB0eXBlID09PSAnbm9zY3JpcHQnIHx8IHR5cGVvZiBwcm9wcy5jaGlsZHJlbiA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHByb3BzLmNoaWxkcmVuID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgcHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgPT09ICdvYmplY3QnICYmIHByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MICE9PSBudWxsICYmIHByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLl9faHRtbCAhPSBudWxsO1xufVxuZnVuY3Rpb24gY3JlYXRlVGV4dEluc3RhbmNlKHRleHQsIHJvb3RDb250YWluZXJJbnN0YW5jZSwgaG9zdENvbnRleHQsIGludGVybmFsSW5zdGFuY2VIYW5kbGUpIHtcbiAge1xuICAgIHZhciBob3N0Q29udGV4dERldiA9IGhvc3RDb250ZXh0O1xuICAgIHZhbGlkYXRlRE9NTmVzdGluZyhudWxsLCB0ZXh0LCBob3N0Q29udGV4dERldi5hbmNlc3RvckluZm8pO1xuICB9XG5cbiAgdmFyIHRleHROb2RlID0gY3JlYXRlVGV4dE5vZGUodGV4dCwgcm9vdENvbnRhaW5lckluc3RhbmNlKTtcbiAgcHJlY2FjaGVGaWJlck5vZGUoaW50ZXJuYWxJbnN0YW5jZUhhbmRsZSwgdGV4dE5vZGUpO1xuICByZXR1cm4gdGV4dE5vZGU7XG59XG4vLyBpZiBhIGNvbXBvbmVudCBqdXN0IGltcG9ydHMgUmVhY3RET00gKGUuZy4gZm9yIGZpbmRET01Ob2RlKS5cbi8vIFNvbWUgZW52aXJvbm1lbnRzIG1pZ2h0IG5vdCBoYXZlIHNldFRpbWVvdXQgb3IgY2xlYXJUaW1lb3V0LlxuXG52YXIgc2NoZWR1bGVUaW1lb3V0ID0gdHlwZW9mIHNldFRpbWVvdXQgPT09ICdmdW5jdGlvbicgPyBzZXRUaW1lb3V0IDogdW5kZWZpbmVkO1xudmFyIGNhbmNlbFRpbWVvdXQgPSB0eXBlb2YgY2xlYXJUaW1lb3V0ID09PSAnZnVuY3Rpb24nID8gY2xlYXJUaW1lb3V0IDogdW5kZWZpbmVkO1xudmFyIG5vVGltZW91dCA9IC0xOyAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBjb21taXRNb3VudChkb21FbGVtZW50LCB0eXBlLCBuZXdQcm9wcywgaW50ZXJuYWxJbnN0YW5jZUhhbmRsZSkge1xuICAvLyBEZXNwaXRlIHRoZSBuYW1pbmcgdGhhdCBtaWdodCBpbXBseSBvdGhlcndpc2UsIHRoaXMgbWV0aG9kIG9ubHlcbiAgLy8gZmlyZXMgaWYgdGhlcmUgaXMgYW4gYFVwZGF0ZWAgZWZmZWN0IHNjaGVkdWxlZCBkdXJpbmcgbW91bnRpbmcuXG4gIC8vIFRoaXMgaGFwcGVucyBpZiBgZmluYWxpemVJbml0aWFsQ2hpbGRyZW5gIHJldHVybnMgYHRydWVgICh3aGljaCBpdFxuICAvLyBkb2VzIHRvIGltcGxlbWVudCB0aGUgYGF1dG9Gb2N1c2AgYXR0cmlidXRlIG9uIHRoZSBjbGllbnQpLiBCdXRcbiAgLy8gdGhlcmUgYXJlIGFsc28gb3RoZXIgY2FzZXMgd2hlbiB0aGlzIG1pZ2h0IGhhcHBlbiAoc3VjaCBhcyBwYXRjaGluZ1xuICAvLyB1cCB0ZXh0IGNvbnRlbnQgZHVyaW5nIGh5ZHJhdGlvbiBtaXNtYXRjaCkuIFNvIHdlJ2xsIGNoZWNrIHRoaXMgYWdhaW4uXG4gIGlmIChzaG91bGRBdXRvRm9jdXNIb3N0Q29tcG9uZW50KHR5cGUsIG5ld1Byb3BzKSkge1xuICAgIGRvbUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxufVxuZnVuY3Rpb24gY29tbWl0VXBkYXRlKGRvbUVsZW1lbnQsIHVwZGF0ZVBheWxvYWQsIHR5cGUsIG9sZFByb3BzLCBuZXdQcm9wcywgaW50ZXJuYWxJbnN0YW5jZUhhbmRsZSkge1xuICAvLyBVcGRhdGUgdGhlIHByb3BzIGhhbmRsZSBzbyB0aGF0IHdlIGtub3cgd2hpY2ggcHJvcHMgYXJlIHRoZSBvbmVzIHdpdGhcbiAgLy8gd2l0aCBjdXJyZW50IGV2ZW50IGhhbmRsZXJzLlxuICB1cGRhdGVGaWJlclByb3BzKGRvbUVsZW1lbnQsIG5ld1Byb3BzKTsgLy8gQXBwbHkgdGhlIGRpZmYgdG8gdGhlIERPTSBub2RlLlxuXG4gIHVwZGF0ZVByb3BlcnRpZXMoZG9tRWxlbWVudCwgdXBkYXRlUGF5bG9hZCwgdHlwZSwgb2xkUHJvcHMsIG5ld1Byb3BzKTtcbn1cbmZ1bmN0aW9uIHJlc2V0VGV4dENvbnRlbnQoZG9tRWxlbWVudCkge1xuICBzZXRUZXh0Q29udGVudChkb21FbGVtZW50LCAnJyk7XG59XG5mdW5jdGlvbiBjb21taXRUZXh0VXBkYXRlKHRleHRJbnN0YW5jZSwgb2xkVGV4dCwgbmV3VGV4dCkge1xuICB0ZXh0SW5zdGFuY2Uubm9kZVZhbHVlID0gbmV3VGV4dDtcbn1cbmZ1bmN0aW9uIGFwcGVuZENoaWxkKHBhcmVudEluc3RhbmNlLCBjaGlsZCkge1xuICBwYXJlbnRJbnN0YW5jZS5hcHBlbmRDaGlsZChjaGlsZCk7XG59XG5mdW5jdGlvbiBhcHBlbmRDaGlsZFRvQ29udGFpbmVyKGNvbnRhaW5lciwgY2hpbGQpIHtcbiAgdmFyIHBhcmVudE5vZGU7XG5cbiAgaWYgKGNvbnRhaW5lci5ub2RlVHlwZSA9PT0gQ09NTUVOVF9OT0RFKSB7XG4gICAgcGFyZW50Tm9kZSA9IGNvbnRhaW5lci5wYXJlbnROb2RlO1xuICAgIHBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGNoaWxkLCBjb250YWluZXIpO1xuICB9IGVsc2Uge1xuICAgIHBhcmVudE5vZGUgPSBjb250YWluZXI7XG4gICAgcGFyZW50Tm9kZS5hcHBlbmRDaGlsZChjaGlsZCk7XG4gIH0gLy8gVGhpcyBjb250YWluZXIgbWlnaHQgYmUgdXNlZCBmb3IgYSBwb3J0YWwuXG4gIC8vIElmIHNvbWV0aGluZyBpbnNpZGUgYSBwb3J0YWwgaXMgY2xpY2tlZCwgdGhhdCBjbGljayBzaG91bGQgYnViYmxlXG4gIC8vIHRocm91Z2ggdGhlIFJlYWN0IHRyZWUuIEhvd2V2ZXIsIG9uIE1vYmlsZSBTYWZhcmkgdGhlIGNsaWNrIHdvdWxkXG4gIC8vIG5ldmVyIGJ1YmJsZSB0aHJvdWdoIHRoZSAqRE9NKiB0cmVlIHVubGVzcyBhbiBhbmNlc3RvciB3aXRoIG9uY2xpY2tcbiAgLy8gZXZlbnQgZXhpc3RzLiBTbyB3ZSB3b3VsZG4ndCBzZWUgaXQgYW5kIGRpc3BhdGNoIGl0LlxuICAvLyBUaGlzIGlzIHdoeSB3ZSBlbnN1cmUgdGhhdCBub24gUmVhY3Qgcm9vdCBjb250YWluZXJzIGhhdmUgaW5saW5lIG9uY2xpY2tcbiAgLy8gZGVmaW5lZC5cbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xMTkxOFxuXG5cbiAgdmFyIHJlYWN0Um9vdENvbnRhaW5lciA9IGNvbnRhaW5lci5fcmVhY3RSb290Q29udGFpbmVyO1xuXG4gIGlmICgocmVhY3RSb290Q29udGFpbmVyID09PSBudWxsIHx8IHJlYWN0Um9vdENvbnRhaW5lciA9PT0gdW5kZWZpbmVkKSAmJiBwYXJlbnROb2RlLm9uY2xpY2sgPT09IG51bGwpIHtcbiAgICAvLyBUT0RPOiBUaGlzIGNhc3QgbWF5IG5vdCBiZSBzb3VuZCBmb3IgU1ZHLCBNYXRoTUwgb3IgY3VzdG9tIGVsZW1lbnRzLlxuICAgIHRyYXBDbGlja09uTm9uSW50ZXJhY3RpdmVFbGVtZW50KHBhcmVudE5vZGUpO1xuICB9XG59XG5mdW5jdGlvbiBpbnNlcnRCZWZvcmUocGFyZW50SW5zdGFuY2UsIGNoaWxkLCBiZWZvcmVDaGlsZCkge1xuICBwYXJlbnRJbnN0YW5jZS5pbnNlcnRCZWZvcmUoY2hpbGQsIGJlZm9yZUNoaWxkKTtcbn1cbmZ1bmN0aW9uIGluc2VydEluQ29udGFpbmVyQmVmb3JlKGNvbnRhaW5lciwgY2hpbGQsIGJlZm9yZUNoaWxkKSB7XG4gIGlmIChjb250YWluZXIubm9kZVR5cGUgPT09IENPTU1FTlRfTk9ERSkge1xuICAgIGNvbnRhaW5lci5wYXJlbnROb2RlLmluc2VydEJlZm9yZShjaGlsZCwgYmVmb3JlQ2hpbGQpO1xuICB9IGVsc2Uge1xuICAgIGNvbnRhaW5lci5pbnNlcnRCZWZvcmUoY2hpbGQsIGJlZm9yZUNoaWxkKTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZW1vdmVDaGlsZChwYXJlbnRJbnN0YW5jZSwgY2hpbGQpIHtcbiAgcGFyZW50SW5zdGFuY2UucmVtb3ZlQ2hpbGQoY2hpbGQpO1xufVxuZnVuY3Rpb24gcmVtb3ZlQ2hpbGRGcm9tQ29udGFpbmVyKGNvbnRhaW5lciwgY2hpbGQpIHtcbiAgaWYgKGNvbnRhaW5lci5ub2RlVHlwZSA9PT0gQ09NTUVOVF9OT0RFKSB7XG4gICAgY29udGFpbmVyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoY2hpbGQpO1xuICB9IGVsc2Uge1xuICAgIGNvbnRhaW5lci5yZW1vdmVDaGlsZChjaGlsZCk7XG4gIH1cbn1cbmZ1bmN0aW9uIGhpZGVJbnN0YW5jZShpbnN0YW5jZSkge1xuICAvLyBUT0RPOiBEb2VzIHRoaXMgd29yayBmb3IgYWxsIGVsZW1lbnQgdHlwZXM/IFdoYXQgYWJvdXQgTWF0aE1MPyBTaG91bGQgd2VcbiAgLy8gcGFzcyBob3N0IGNvbnRleHQgdG8gdGhpcyBtZXRob2Q/XG4gIGluc3RhbmNlID0gaW5zdGFuY2U7XG4gIHZhciBzdHlsZSA9IGluc3RhbmNlLnN0eWxlO1xuXG4gIGlmICh0eXBlb2Ygc3R5bGUuc2V0UHJvcGVydHkgPT09ICdmdW5jdGlvbicpIHtcbiAgICBzdHlsZS5zZXRQcm9wZXJ0eSgnZGlzcGxheScsICdub25lJywgJ2ltcG9ydGFudCcpO1xuICB9IGVsc2Uge1xuICAgIHN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gIH1cbn1cbmZ1bmN0aW9uIGhpZGVUZXh0SW5zdGFuY2UodGV4dEluc3RhbmNlKSB7XG4gIHRleHRJbnN0YW5jZS5ub2RlVmFsdWUgPSAnJztcbn1cbmZ1bmN0aW9uIHVuaGlkZUluc3RhbmNlKGluc3RhbmNlLCBwcm9wcykge1xuICBpbnN0YW5jZSA9IGluc3RhbmNlO1xuICB2YXIgc3R5bGVQcm9wID0gcHJvcHNbU1RZTEUkMV07XG4gIHZhciBkaXNwbGF5ID0gc3R5bGVQcm9wICE9PSB1bmRlZmluZWQgJiYgc3R5bGVQcm9wICE9PSBudWxsICYmIHN0eWxlUHJvcC5oYXNPd25Qcm9wZXJ0eSgnZGlzcGxheScpID8gc3R5bGVQcm9wLmRpc3BsYXkgOiBudWxsO1xuICBpbnN0YW5jZS5zdHlsZS5kaXNwbGF5ID0gZGFuZ2Vyb3VzU3R5bGVWYWx1ZSgnZGlzcGxheScsIGRpc3BsYXkpO1xufVxuZnVuY3Rpb24gdW5oaWRlVGV4dEluc3RhbmNlKHRleHRJbnN0YW5jZSwgdGV4dCkge1xuICB0ZXh0SW5zdGFuY2Uubm9kZVZhbHVlID0gdGV4dDtcbn1cbmZ1bmN0aW9uIGNsZWFyQ29udGFpbmVyKGNvbnRhaW5lcikge1xuICBpZiAoY29udGFpbmVyLm5vZGVUeXBlID09PSBFTEVNRU5UX05PREUpIHtcbiAgICBjb250YWluZXIudGV4dENvbnRlbnQgPSAnJztcbiAgfSBlbHNlIGlmIChjb250YWluZXIubm9kZVR5cGUgPT09IERPQ1VNRU5UX05PREUpIHtcbiAgICB2YXIgYm9keSA9IGNvbnRhaW5lci5ib2R5O1xuXG4gICAgaWYgKGJvZHkgIT0gbnVsbCkge1xuICAgICAgYm9keS50ZXh0Q29udGVudCA9ICcnO1xuICAgIH1cbiAgfVxufSAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBjYW5IeWRyYXRlSW5zdGFuY2UoaW5zdGFuY2UsIHR5cGUsIHByb3BzKSB7XG4gIGlmIChpbnN0YW5jZS5ub2RlVHlwZSAhPT0gRUxFTUVOVF9OT0RFIHx8IHR5cGUudG9Mb3dlckNhc2UoKSAhPT0gaW5zdGFuY2Uubm9kZU5hbWUudG9Mb3dlckNhc2UoKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9IC8vIFRoaXMgaGFzIG5vdyBiZWVuIHJlZmluZWQgdG8gYW4gZWxlbWVudCBub2RlLlxuXG5cbiAgcmV0dXJuIGluc3RhbmNlO1xufVxuZnVuY3Rpb24gY2FuSHlkcmF0ZVRleHRJbnN0YW5jZShpbnN0YW5jZSwgdGV4dCkge1xuICBpZiAodGV4dCA9PT0gJycgfHwgaW5zdGFuY2Uubm9kZVR5cGUgIT09IFRFWFRfTk9ERSkge1xuICAgIC8vIEVtcHR5IHN0cmluZ3MgYXJlIG5vdCBwYXJzZWQgYnkgSFRNTCBzbyB0aGVyZSB3b24ndCBiZSBhIGNvcnJlY3QgbWF0Y2ggaGVyZS5cbiAgICByZXR1cm4gbnVsbDtcbiAgfSAvLyBUaGlzIGhhcyBub3cgYmVlbiByZWZpbmVkIHRvIGEgdGV4dCBub2RlLlxuXG5cbiAgcmV0dXJuIGluc3RhbmNlO1xufVxuZnVuY3Rpb24gaXNTdXNwZW5zZUluc3RhbmNlUGVuZGluZyhpbnN0YW5jZSkge1xuICByZXR1cm4gaW5zdGFuY2UuZGF0YSA9PT0gU1VTUEVOU0VfUEVORElOR19TVEFSVF9EQVRBO1xufVxuZnVuY3Rpb24gaXNTdXNwZW5zZUluc3RhbmNlRmFsbGJhY2soaW5zdGFuY2UpIHtcbiAgcmV0dXJuIGluc3RhbmNlLmRhdGEgPT09IFNVU1BFTlNFX0ZBTExCQUNLX1NUQVJUX0RBVEE7XG59XG5cbmZ1bmN0aW9uIGdldE5leHRIeWRyYXRhYmxlKG5vZGUpIHtcbiAgLy8gU2tpcCBub24taHlkcmF0YWJsZSBub2Rlcy5cbiAgZm9yICg7IG5vZGUgIT0gbnVsbDsgbm9kZSA9IG5vZGUubmV4dFNpYmxpbmcpIHtcbiAgICB2YXIgbm9kZVR5cGUgPSBub2RlLm5vZGVUeXBlO1xuXG4gICAgaWYgKG5vZGVUeXBlID09PSBFTEVNRU5UX05PREUgfHwgbm9kZVR5cGUgPT09IFRFWFRfTk9ERSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5vZGU7XG59XG5cbmZ1bmN0aW9uIGdldE5leHRIeWRyYXRhYmxlU2libGluZyhpbnN0YW5jZSkge1xuICByZXR1cm4gZ2V0TmV4dEh5ZHJhdGFibGUoaW5zdGFuY2UubmV4dFNpYmxpbmcpO1xufVxuZnVuY3Rpb24gZ2V0Rmlyc3RIeWRyYXRhYmxlQ2hpbGQocGFyZW50SW5zdGFuY2UpIHtcbiAgcmV0dXJuIGdldE5leHRIeWRyYXRhYmxlKHBhcmVudEluc3RhbmNlLmZpcnN0Q2hpbGQpO1xufVxuZnVuY3Rpb24gaHlkcmF0ZUluc3RhbmNlKGluc3RhbmNlLCB0eXBlLCBwcm9wcywgcm9vdENvbnRhaW5lckluc3RhbmNlLCBob3N0Q29udGV4dCwgaW50ZXJuYWxJbnN0YW5jZUhhbmRsZSkge1xuICBwcmVjYWNoZUZpYmVyTm9kZShpbnRlcm5hbEluc3RhbmNlSGFuZGxlLCBpbnN0YW5jZSk7IC8vIFRPRE86IFBvc3NpYmx5IGRlZmVyIHRoaXMgdW50aWwgdGhlIGNvbW1pdCBwaGFzZSB3aGVyZSBhbGwgdGhlIGV2ZW50c1xuICAvLyBnZXQgYXR0YWNoZWQuXG5cbiAgdXBkYXRlRmliZXJQcm9wcyhpbnN0YW5jZSwgcHJvcHMpO1xuICB2YXIgcGFyZW50TmFtZXNwYWNlO1xuXG4gIHtcbiAgICB2YXIgaG9zdENvbnRleHREZXYgPSBob3N0Q29udGV4dDtcbiAgICBwYXJlbnROYW1lc3BhY2UgPSBob3N0Q29udGV4dERldi5uYW1lc3BhY2U7XG4gIH1cblxuICByZXR1cm4gZGlmZkh5ZHJhdGVkUHJvcGVydGllcyhpbnN0YW5jZSwgdHlwZSwgcHJvcHMsIHBhcmVudE5hbWVzcGFjZSk7XG59XG5mdW5jdGlvbiBoeWRyYXRlVGV4dEluc3RhbmNlKHRleHRJbnN0YW5jZSwgdGV4dCwgaW50ZXJuYWxJbnN0YW5jZUhhbmRsZSkge1xuICBwcmVjYWNoZUZpYmVyTm9kZShpbnRlcm5hbEluc3RhbmNlSGFuZGxlLCB0ZXh0SW5zdGFuY2UpO1xuICByZXR1cm4gZGlmZkh5ZHJhdGVkVGV4dCh0ZXh0SW5zdGFuY2UsIHRleHQpO1xufVxuZnVuY3Rpb24gZ2V0TmV4dEh5ZHJhdGFibGVJbnN0YW5jZUFmdGVyU3VzcGVuc2VJbnN0YW5jZShzdXNwZW5zZUluc3RhbmNlKSB7XG4gIHZhciBub2RlID0gc3VzcGVuc2VJbnN0YW5jZS5uZXh0U2libGluZzsgLy8gU2tpcCBwYXN0IGFsbCBub2RlcyB3aXRoaW4gdGhpcyBzdXNwZW5zZSBib3VuZGFyeS5cbiAgLy8gVGhlcmUgbWlnaHQgYmUgbmVzdGVkIG5vZGVzIHNvIHdlIG5lZWQgdG8ga2VlcCB0cmFjayBvZiBob3dcbiAgLy8gZGVlcCB3ZSBhcmUgYW5kIG9ubHkgYnJlYWsgb3V0IHdoZW4gd2UncmUgYmFjayBvbiB0b3AuXG5cbiAgdmFyIGRlcHRoID0gMDtcblxuICB3aGlsZSAobm9kZSkge1xuICAgIGlmIChub2RlLm5vZGVUeXBlID09PSBDT01NRU5UX05PREUpIHtcbiAgICAgIHZhciBkYXRhID0gbm9kZS5kYXRhO1xuXG4gICAgICBpZiAoZGF0YSA9PT0gU1VTUEVOU0VfRU5EX0RBVEEpIHtcbiAgICAgICAgaWYgKGRlcHRoID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIGdldE5leHRIeWRyYXRhYmxlU2libGluZyhub2RlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkZXB0aC0tO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGRhdGEgPT09IFNVU1BFTlNFX1NUQVJUX0RBVEEgfHwgZGF0YSA9PT0gU1VTUEVOU0VfRkFMTEJBQ0tfU1RBUlRfREFUQSB8fCBkYXRhID09PSBTVVNQRU5TRV9QRU5ESU5HX1NUQVJUX0RBVEEpIHtcbiAgICAgICAgZGVwdGgrKztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBub2RlID0gbm9kZS5uZXh0U2libGluZztcbiAgfSAvLyBUT0RPOiBXYXJuLCB3ZSBkaWRuJ3QgZmluZCB0aGUgZW5kIGNvbW1lbnQgYm91bmRhcnkuXG5cblxuICByZXR1cm4gbnVsbDtcbn0gLy8gUmV0dXJucyB0aGUgU3VzcGVuc2VJbnN0YW5jZSBpZiB0aGlzIG5vZGUgaXMgYSBkaXJlY3QgY2hpbGQgb2YgYVxuLy8gU3VzcGVuc2VJbnN0YW5jZS4gSS5lLiBpZiBpdHMgcHJldmlvdXMgc2libGluZyBpcyBhIENvbW1lbnQgd2l0aFxuLy8gU1VTUEVOU0VfeF9TVEFSVF9EQVRBLiBPdGhlcndpc2UsIG51bGwuXG5cbmZ1bmN0aW9uIGdldFBhcmVudFN1c3BlbnNlSW5zdGFuY2UodGFyZ2V0SW5zdGFuY2UpIHtcbiAgdmFyIG5vZGUgPSB0YXJnZXRJbnN0YW5jZS5wcmV2aW91c1NpYmxpbmc7IC8vIFNraXAgcGFzdCBhbGwgbm9kZXMgd2l0aGluIHRoaXMgc3VzcGVuc2UgYm91bmRhcnkuXG4gIC8vIFRoZXJlIG1pZ2h0IGJlIG5lc3RlZCBub2RlcyBzbyB3ZSBuZWVkIHRvIGtlZXAgdHJhY2sgb2YgaG93XG4gIC8vIGRlZXAgd2UgYXJlIGFuZCBvbmx5IGJyZWFrIG91dCB3aGVuIHdlJ3JlIGJhY2sgb24gdG9wLlxuXG4gIHZhciBkZXB0aCA9IDA7XG5cbiAgd2hpbGUgKG5vZGUpIHtcbiAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gQ09NTUVOVF9OT0RFKSB7XG4gICAgICB2YXIgZGF0YSA9IG5vZGUuZGF0YTtcblxuICAgICAgaWYgKGRhdGEgPT09IFNVU1BFTlNFX1NUQVJUX0RBVEEgfHwgZGF0YSA9PT0gU1VTUEVOU0VfRkFMTEJBQ0tfU1RBUlRfREFUQSB8fCBkYXRhID09PSBTVVNQRU5TRV9QRU5ESU5HX1NUQVJUX0RBVEEpIHtcbiAgICAgICAgaWYgKGRlcHRoID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZGVwdGgtLTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChkYXRhID09PSBTVVNQRU5TRV9FTkRfREFUQSkge1xuICAgICAgICBkZXB0aCsrO1xuICAgICAgfVxuICAgIH1cblxuICAgIG5vZGUgPSBub2RlLnByZXZpb3VzU2libGluZztcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuZnVuY3Rpb24gY29tbWl0SHlkcmF0ZWRDb250YWluZXIoY29udGFpbmVyKSB7XG4gIC8vIFJldHJ5IGlmIGFueSBldmVudCByZXBsYXlpbmcgd2FzIGJsb2NrZWQgb24gdGhpcy5cbiAgcmV0cnlJZkJsb2NrZWRPbihjb250YWluZXIpO1xufVxuZnVuY3Rpb24gY29tbWl0SHlkcmF0ZWRTdXNwZW5zZUluc3RhbmNlKHN1c3BlbnNlSW5zdGFuY2UpIHtcbiAgLy8gUmV0cnkgaWYgYW55IGV2ZW50IHJlcGxheWluZyB3YXMgYmxvY2tlZCBvbiB0aGlzLlxuICByZXRyeUlmQmxvY2tlZE9uKHN1c3BlbnNlSW5zdGFuY2UpO1xufVxuZnVuY3Rpb24gZGlkTm90TWF0Y2hIeWRyYXRlZENvbnRhaW5lclRleHRJbnN0YW5jZShwYXJlbnRDb250YWluZXIsIHRleHRJbnN0YW5jZSwgdGV4dCkge1xuICB7XG4gICAgd2FybkZvclVubWF0Y2hlZFRleHQodGV4dEluc3RhbmNlLCB0ZXh0KTtcbiAgfVxufVxuZnVuY3Rpb24gZGlkTm90TWF0Y2hIeWRyYXRlZFRleHRJbnN0YW5jZShwYXJlbnRUeXBlLCBwYXJlbnRQcm9wcywgcGFyZW50SW5zdGFuY2UsIHRleHRJbnN0YW5jZSwgdGV4dCkge1xuICBpZiAoIHBhcmVudFByb3BzW1NVUFBSRVNTX0hZRFJBVElPTl9XQVJOSU5HJDFdICE9PSB0cnVlKSB7XG4gICAgd2FybkZvclVubWF0Y2hlZFRleHQodGV4dEluc3RhbmNlLCB0ZXh0KTtcbiAgfVxufVxuZnVuY3Rpb24gZGlkTm90SHlkcmF0ZUNvbnRhaW5lckluc3RhbmNlKHBhcmVudENvbnRhaW5lciwgaW5zdGFuY2UpIHtcbiAge1xuICAgIGlmIChpbnN0YW5jZS5ub2RlVHlwZSA9PT0gRUxFTUVOVF9OT0RFKSB7XG4gICAgICB3YXJuRm9yRGVsZXRlZEh5ZHJhdGFibGVFbGVtZW50KHBhcmVudENvbnRhaW5lciwgaW5zdGFuY2UpO1xuICAgIH0gZWxzZSBpZiAoaW5zdGFuY2Uubm9kZVR5cGUgPT09IENPTU1FTlRfTk9ERSkgOyBlbHNlIHtcbiAgICAgIHdhcm5Gb3JEZWxldGVkSHlkcmF0YWJsZVRleHQocGFyZW50Q29udGFpbmVyLCBpbnN0YW5jZSk7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBkaWROb3RIeWRyYXRlSW5zdGFuY2UocGFyZW50VHlwZSwgcGFyZW50UHJvcHMsIHBhcmVudEluc3RhbmNlLCBpbnN0YW5jZSkge1xuICBpZiAoIHBhcmVudFByb3BzW1NVUFBSRVNTX0hZRFJBVElPTl9XQVJOSU5HJDFdICE9PSB0cnVlKSB7XG4gICAgaWYgKGluc3RhbmNlLm5vZGVUeXBlID09PSBFTEVNRU5UX05PREUpIHtcbiAgICAgIHdhcm5Gb3JEZWxldGVkSHlkcmF0YWJsZUVsZW1lbnQocGFyZW50SW5zdGFuY2UsIGluc3RhbmNlKTtcbiAgICB9IGVsc2UgaWYgKGluc3RhbmNlLm5vZGVUeXBlID09PSBDT01NRU5UX05PREUpIDsgZWxzZSB7XG4gICAgICB3YXJuRm9yRGVsZXRlZEh5ZHJhdGFibGVUZXh0KHBhcmVudEluc3RhbmNlLCBpbnN0YW5jZSk7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBkaWROb3RGaW5kSHlkcmF0YWJsZUNvbnRhaW5lckluc3RhbmNlKHBhcmVudENvbnRhaW5lciwgdHlwZSwgcHJvcHMpIHtcbiAge1xuICAgIHdhcm5Gb3JJbnNlcnRlZEh5ZHJhdGVkRWxlbWVudChwYXJlbnRDb250YWluZXIsIHR5cGUpO1xuICB9XG59XG5mdW5jdGlvbiBkaWROb3RGaW5kSHlkcmF0YWJsZUNvbnRhaW5lclRleHRJbnN0YW5jZShwYXJlbnRDb250YWluZXIsIHRleHQpIHtcbiAge1xuICAgIHdhcm5Gb3JJbnNlcnRlZEh5ZHJhdGVkVGV4dChwYXJlbnRDb250YWluZXIsIHRleHQpO1xuICB9XG59XG5mdW5jdGlvbiBkaWROb3RGaW5kSHlkcmF0YWJsZUluc3RhbmNlKHBhcmVudFR5cGUsIHBhcmVudFByb3BzLCBwYXJlbnRJbnN0YW5jZSwgdHlwZSwgcHJvcHMpIHtcbiAgaWYgKCBwYXJlbnRQcm9wc1tTVVBQUkVTU19IWURSQVRJT05fV0FSTklORyQxXSAhPT0gdHJ1ZSkge1xuICAgIHdhcm5Gb3JJbnNlcnRlZEh5ZHJhdGVkRWxlbWVudChwYXJlbnRJbnN0YW5jZSwgdHlwZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIGRpZE5vdEZpbmRIeWRyYXRhYmxlVGV4dEluc3RhbmNlKHBhcmVudFR5cGUsIHBhcmVudFByb3BzLCBwYXJlbnRJbnN0YW5jZSwgdGV4dCkge1xuICBpZiAoIHBhcmVudFByb3BzW1NVUFBSRVNTX0hZRFJBVElPTl9XQVJOSU5HJDFdICE9PSB0cnVlKSB7XG4gICAgd2FybkZvckluc2VydGVkSHlkcmF0ZWRUZXh0KHBhcmVudEluc3RhbmNlLCB0ZXh0KTtcbiAgfVxufVxuZnVuY3Rpb24gZGlkTm90RmluZEh5ZHJhdGFibGVTdXNwZW5zZUluc3RhbmNlKHBhcmVudFR5cGUsIHBhcmVudFByb3BzLCBwYXJlbnRJbnN0YW5jZSkge1xuICBpZiAoIHBhcmVudFByb3BzW1NVUFBSRVNTX0hZRFJBVElPTl9XQVJOSU5HJDFdICE9PSB0cnVlKSA7XG59XG52YXIgY2xpZW50SWQgPSAwO1xuZnVuY3Rpb24gbWFrZUNsaWVudElkSW5ERVYod2Fybk9uQWNjZXNzSW5ERVYpIHtcbiAgdmFyIGlkID0gJ3I6JyArIChjbGllbnRJZCsrKS50b1N0cmluZygzNik7XG4gIHJldHVybiB7XG4gICAgdG9TdHJpbmc6IGZ1bmN0aW9uICgpIHtcbiAgICAgIHdhcm5PbkFjY2Vzc0luREVWKCk7XG4gICAgICByZXR1cm4gaWQ7XG4gICAgfSxcbiAgICB2YWx1ZU9mOiBmdW5jdGlvbiAoKSB7XG4gICAgICB3YXJuT25BY2Nlc3NJbkRFVigpO1xuICAgICAgcmV0dXJuIGlkO1xuICAgIH1cbiAgfTtcbn1cbmZ1bmN0aW9uIGlzT3BhcXVlSHlkcmF0aW5nT2JqZWN0KHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlLiQkdHlwZW9mID09PSBSRUFDVF9PUEFRVUVfSURfVFlQRTtcbn1cbmZ1bmN0aW9uIG1ha2VPcGFxdWVIeWRyYXRpbmdPYmplY3QoYXR0ZW1wdFRvUmVhZFZhbHVlKSB7XG4gIHJldHVybiB7XG4gICAgJCR0eXBlb2Y6IFJFQUNUX09QQVFVRV9JRF9UWVBFLFxuICAgIHRvU3RyaW5nOiBhdHRlbXB0VG9SZWFkVmFsdWUsXG4gICAgdmFsdWVPZjogYXR0ZW1wdFRvUmVhZFZhbHVlXG4gIH07XG59XG5mdW5jdGlvbiBwcmVwYXJlUG9ydGFsTW91bnQocG9ydGFsSW5zdGFuY2UpIHtcbiAge1xuICAgIGxpc3RlblRvQWxsU3VwcG9ydGVkRXZlbnRzKHBvcnRhbEluc3RhbmNlKTtcbiAgfVxufVxuXG52YXIgcmFuZG9tS2V5ID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMik7XG52YXIgaW50ZXJuYWxJbnN0YW5jZUtleSA9ICdfX3JlYWN0RmliZXIkJyArIHJhbmRvbUtleTtcbnZhciBpbnRlcm5hbFByb3BzS2V5ID0gJ19fcmVhY3RQcm9wcyQnICsgcmFuZG9tS2V5O1xudmFyIGludGVybmFsQ29udGFpbmVySW5zdGFuY2VLZXkgPSAnX19yZWFjdENvbnRhaW5lciQnICsgcmFuZG9tS2V5O1xudmFyIGludGVybmFsRXZlbnRIYW5kbGVyc0tleSA9ICdfX3JlYWN0RXZlbnRzJCcgKyByYW5kb21LZXk7XG5mdW5jdGlvbiBwcmVjYWNoZUZpYmVyTm9kZShob3N0SW5zdCwgbm9kZSkge1xuICBub2RlW2ludGVybmFsSW5zdGFuY2VLZXldID0gaG9zdEluc3Q7XG59XG5mdW5jdGlvbiBtYXJrQ29udGFpbmVyQXNSb290KGhvc3RSb290LCBub2RlKSB7XG4gIG5vZGVbaW50ZXJuYWxDb250YWluZXJJbnN0YW5jZUtleV0gPSBob3N0Um9vdDtcbn1cbmZ1bmN0aW9uIHVubWFya0NvbnRhaW5lckFzUm9vdChub2RlKSB7XG4gIG5vZGVbaW50ZXJuYWxDb250YWluZXJJbnN0YW5jZUtleV0gPSBudWxsO1xufVxuZnVuY3Rpb24gaXNDb250YWluZXJNYXJrZWRBc1Jvb3Qobm9kZSkge1xuICByZXR1cm4gISFub2RlW2ludGVybmFsQ29udGFpbmVySW5zdGFuY2VLZXldO1xufSAvLyBHaXZlbiBhIERPTSBub2RlLCByZXR1cm4gdGhlIGNsb3Nlc3QgSG9zdENvbXBvbmVudCBvciBIb3N0VGV4dCBmaWJlciBhbmNlc3Rvci5cbi8vIElmIHRoZSB0YXJnZXQgbm9kZSBpcyBwYXJ0IG9mIGEgaHlkcmF0ZWQgb3Igbm90IHlldCByZW5kZXJlZCBzdWJ0cmVlLCB0aGVuXG4vLyB0aGlzIG1heSBhbHNvIHJldHVybiBhIFN1c3BlbnNlQ29tcG9uZW50IG9yIEhvc3RSb290IHRvIGluZGljYXRlIHRoYXQuXG4vLyBDb25jZXB0dWFsbHkgdGhlIEhvc3RSb290IGZpYmVyIGlzIGEgY2hpbGQgb2YgdGhlIENvbnRhaW5lciBub2RlLiBTbyBpZiB5b3Vcbi8vIHBhc3MgdGhlIENvbnRhaW5lciBub2RlIGFzIHRoZSB0YXJnZXROb2RlLCB5b3Ugd2lsbCBub3QgYWN0dWFsbHkgZ2V0IHRoZVxuLy8gSG9zdFJvb3QgYmFjay4gVG8gZ2V0IHRvIHRoZSBIb3N0Um9vdCwgeW91IG5lZWQgdG8gcGFzcyBhIGNoaWxkIG9mIGl0LlxuLy8gVGhlIHNhbWUgdGhpbmcgYXBwbGllcyB0byBTdXNwZW5zZSBib3VuZGFyaWVzLlxuXG5mdW5jdGlvbiBnZXRDbG9zZXN0SW5zdGFuY2VGcm9tTm9kZSh0YXJnZXROb2RlKSB7XG4gIHZhciB0YXJnZXRJbnN0ID0gdGFyZ2V0Tm9kZVtpbnRlcm5hbEluc3RhbmNlS2V5XTtcblxuICBpZiAodGFyZ2V0SW5zdCkge1xuICAgIC8vIERvbid0IHJldHVybiBIb3N0Um9vdCBvciBTdXNwZW5zZUNvbXBvbmVudCBoZXJlLlxuICAgIHJldHVybiB0YXJnZXRJbnN0O1xuICB9IC8vIElmIHRoZSBkaXJlY3QgZXZlbnQgdGFyZ2V0IGlzbid0IGEgUmVhY3Qgb3duZWQgRE9NIG5vZGUsIHdlIG5lZWQgdG8gbG9va1xuICAvLyB0byBzZWUgaWYgb25lIG9mIGl0cyBwYXJlbnRzIGlzIGEgUmVhY3Qgb3duZWQgRE9NIG5vZGUuXG5cblxuICB2YXIgcGFyZW50Tm9kZSA9IHRhcmdldE5vZGUucGFyZW50Tm9kZTtcblxuICB3aGlsZSAocGFyZW50Tm9kZSkge1xuICAgIC8vIFdlJ2xsIGNoZWNrIGlmIHRoaXMgaXMgYSBjb250YWluZXIgcm9vdCB0aGF0IGNvdWxkIGluY2x1ZGVcbiAgICAvLyBSZWFjdCBub2RlcyBpbiB0aGUgZnV0dXJlLiBXZSBuZWVkIHRvIGNoZWNrIHRoaXMgZmlyc3QgYmVjYXVzZVxuICAgIC8vIGlmIHdlJ3JlIGEgY2hpbGQgb2YgYSBkZWh5ZHJhdGVkIGNvbnRhaW5lciwgd2UgbmVlZCB0byBmaXJzdFxuICAgIC8vIGZpbmQgdGhhdCBpbm5lciBjb250YWluZXIgYmVmb3JlIG1vdmluZyBvbiB0byBmaW5kaW5nIHRoZSBwYXJlbnRcbiAgICAvLyBpbnN0YW5jZS4gTm90ZSB0aGF0IHdlIGRvbid0IGNoZWNrIHRoaXMgZmllbGQgb24gIHRoZSB0YXJnZXROb2RlXG4gICAgLy8gaXRzZWxmIGJlY2F1c2UgdGhlIGZpYmVycyBhcmUgY29uY2VwdHVhbGx5IGJldHdlZW4gdGhlIGNvbnRhaW5lclxuICAgIC8vIG5vZGUgYW5kIHRoZSBmaXJzdCBjaGlsZC4gSXQgaXNuJ3Qgc3Vycm91bmRpbmcgdGhlIGNvbnRhaW5lciBub2RlLlxuICAgIC8vIElmIGl0J3Mgbm90IGEgY29udGFpbmVyLCB3ZSBjaGVjayBpZiBpdCdzIGFuIGluc3RhbmNlLlxuICAgIHRhcmdldEluc3QgPSBwYXJlbnROb2RlW2ludGVybmFsQ29udGFpbmVySW5zdGFuY2VLZXldIHx8IHBhcmVudE5vZGVbaW50ZXJuYWxJbnN0YW5jZUtleV07XG5cbiAgICBpZiAodGFyZ2V0SW5zdCkge1xuICAgICAgLy8gU2luY2UgdGhpcyB3YXNuJ3QgdGhlIGRpcmVjdCB0YXJnZXQgb2YgdGhlIGV2ZW50LCB3ZSBtaWdodCBoYXZlXG4gICAgICAvLyBzdGVwcGVkIHBhc3QgZGVoeWRyYXRlZCBET00gbm9kZXMgdG8gZ2V0IGhlcmUuIEhvd2V2ZXIgdGhleSBjb3VsZFxuICAgICAgLy8gYWxzbyBoYXZlIGJlZW4gbm9uLVJlYWN0IG5vZGVzLiBXZSBuZWVkIHRvIGFuc3dlciB3aGljaCBvbmUuXG4gICAgICAvLyBJZiB3ZSB0aGUgaW5zdGFuY2UgZG9lc24ndCBoYXZlIGFueSBjaGlsZHJlbiwgdGhlbiB0aGVyZSBjYW4ndCBiZVxuICAgICAgLy8gYSBuZXN0ZWQgc3VzcGVuc2UgYm91bmRhcnkgd2l0aGluIGl0LiBTbyB3ZSBjYW4gdXNlIHRoaXMgYXMgYSBmYXN0XG4gICAgICAvLyBiYWlsb3V0LiBNb3N0IG9mIHRoZSB0aW1lLCB3aGVuIHBlb3BsZSBhZGQgbm9uLVJlYWN0IGNoaWxkcmVuIHRvXG4gICAgICAvLyB0aGUgdHJlZSwgaXQgaXMgdXNpbmcgYSByZWYgdG8gYSBjaGlsZC1sZXNzIERPTSBub2RlLlxuICAgICAgLy8gTm9ybWFsbHkgd2UnZCBvbmx5IG5lZWQgdG8gY2hlY2sgb25lIG9mIHRoZSBmaWJlcnMgYmVjYXVzZSBpZiBpdFxuICAgICAgLy8gaGFzIGV2ZXIgZ29uZSBmcm9tIGhhdmluZyBjaGlsZHJlbiB0byBkZWxldGluZyB0aGVtIG9yIHZpY2UgdmVyc2FcbiAgICAgIC8vIGl0IHdvdWxkIGhhdmUgZGVsZXRlZCB0aGUgZGVoeWRyYXRlZCBib3VuZGFyeSBuZXN0ZWQgaW5zaWRlIGFscmVhZHkuXG4gICAgICAvLyBIb3dldmVyLCBzaW5jZSB0aGUgSG9zdFJvb3Qgc3RhcnRzIG91dCB3aXRoIGFuIGFsdGVybmF0ZSBpdCBtaWdodFxuICAgICAgLy8gaGF2ZSBvbmUgb24gdGhlIGFsdGVybmF0ZSBzbyB3ZSBuZWVkIHRvIGNoZWNrIGluIGNhc2UgdGhpcyB3YXMgYVxuICAgICAgLy8gcm9vdC5cbiAgICAgIHZhciBhbHRlcm5hdGUgPSB0YXJnZXRJbnN0LmFsdGVybmF0ZTtcblxuICAgICAgaWYgKHRhcmdldEluc3QuY2hpbGQgIT09IG51bGwgfHwgYWx0ZXJuYXRlICE9PSBudWxsICYmIGFsdGVybmF0ZS5jaGlsZCAhPT0gbnVsbCkge1xuICAgICAgICAvLyBOZXh0IHdlIG5lZWQgdG8gZmlndXJlIG91dCBpZiB0aGUgbm9kZSB0aGF0IHNraXBwZWQgcGFzdCBpc1xuICAgICAgICAvLyBuZXN0ZWQgd2l0aGluIGEgZGVoeWRyYXRlZCBib3VuZGFyeSBhbmQgaWYgc28sIHdoaWNoIG9uZS5cbiAgICAgICAgdmFyIHN1c3BlbnNlSW5zdGFuY2UgPSBnZXRQYXJlbnRTdXNwZW5zZUluc3RhbmNlKHRhcmdldE5vZGUpO1xuXG4gICAgICAgIHdoaWxlIChzdXNwZW5zZUluc3RhbmNlICE9PSBudWxsKSB7XG4gICAgICAgICAgLy8gV2UgZm91bmQgYSBzdXNwZW5zZSBpbnN0YW5jZS4gVGhhdCBtZWFucyB0aGF0IHdlIGhhdmVuJ3RcbiAgICAgICAgICAvLyBoeWRyYXRlZCBpdCB5ZXQuIEV2ZW4gdGhvdWdoIHdlIGxlYXZlIHRoZSBjb21tZW50cyBpbiB0aGVcbiAgICAgICAgICAvLyBET00gYWZ0ZXIgaHlkcmF0aW5nLCBhbmQgdGhlcmUgYXJlIGJvdW5kYXJpZXMgaW4gdGhlIERPTVxuICAgICAgICAgIC8vIHRoYXQgY291bGQgYWxyZWFkeSBiZSBoeWRyYXRlZCwgd2Ugd291bGRuJ3QgaGF2ZSBmb3VuZCB0aGVtXG4gICAgICAgICAgLy8gdGhyb3VnaCB0aGlzIHBhc3Mgc2luY2UgaWYgdGhlIHRhcmdldCBpcyBoeWRyYXRlZCBpdCB3b3VsZFxuICAgICAgICAgIC8vIGhhdmUgaGFkIGFuIGludGVybmFsSW5zdGFuY2VLZXkgb24gaXQuXG4gICAgICAgICAgLy8gTGV0J3MgZ2V0IHRoZSBmaWJlciBhc3NvY2lhdGVkIHdpdGggdGhlIFN1c3BlbnNlQ29tcG9uZW50XG4gICAgICAgICAgLy8gYXMgdGhlIGRlZXBlc3QgaW5zdGFuY2UuXG4gICAgICAgICAgdmFyIHRhcmdldFN1c3BlbnNlSW5zdCA9IHN1c3BlbnNlSW5zdGFuY2VbaW50ZXJuYWxJbnN0YW5jZUtleV07XG5cbiAgICAgICAgICBpZiAodGFyZ2V0U3VzcGVuc2VJbnN0KSB7XG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0U3VzcGVuc2VJbnN0O1xuICAgICAgICAgIH0gLy8gSWYgd2UgZG9uJ3QgZmluZCBhIEZpYmVyIG9uIHRoZSBjb21tZW50LCBpdCBtaWdodCBiZSBiZWNhdXNlXG4gICAgICAgICAgLy8gd2UgaGF2ZW4ndCBnb3R0ZW4gdG8gaHlkcmF0ZSBpdCB5ZXQuIFRoZXJlIG1pZ2h0IHN0aWxsIGJlIGFcbiAgICAgICAgICAvLyBwYXJlbnQgYm91bmRhcnkgdGhhdCBoYXNuJ3QgYWJvdmUgdGhpcyBvbmUgc28gd2UgbmVlZCB0byBmaW5kXG4gICAgICAgICAgLy8gdGhlIG91dGVyIG1vc3QgdGhhdCBpcyBrbm93bi5cblxuXG4gICAgICAgICAgc3VzcGVuc2VJbnN0YW5jZSA9IGdldFBhcmVudFN1c3BlbnNlSW5zdGFuY2Uoc3VzcGVuc2VJbnN0YW5jZSk7IC8vIElmIHdlIGRvbid0IGZpbmQgb25lLCB0aGVuIHRoYXQgc2hvdWxkIG1lYW4gdGhhdCB0aGUgcGFyZW50XG4gICAgICAgICAgLy8gaG9zdCBjb21wb25lbnQgYWxzbyBoYXNuJ3QgaHlkcmF0ZWQgeWV0LiBXZSBjYW4gcmV0dXJuIGl0XG4gICAgICAgICAgLy8gYmVsb3cgc2luY2UgaXQgd2lsbCBiYWlsIG91dCBvbiB0aGUgaXNNb3VudGVkIGNoZWNrIGxhdGVyLlxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0YXJnZXRJbnN0O1xuICAgIH1cblxuICAgIHRhcmdldE5vZGUgPSBwYXJlbnROb2RlO1xuICAgIHBhcmVudE5vZGUgPSB0YXJnZXROb2RlLnBhcmVudE5vZGU7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cbi8qKlxuICogR2l2ZW4gYSBET00gbm9kZSwgcmV0dXJuIHRoZSBSZWFjdERPTUNvbXBvbmVudCBvciBSZWFjdERPTVRleHRDb21wb25lbnRcbiAqIGluc3RhbmNlLCBvciBudWxsIGlmIHRoZSBub2RlIHdhcyBub3QgcmVuZGVyZWQgYnkgdGhpcyBSZWFjdC5cbiAqL1xuXG5mdW5jdGlvbiBnZXRJbnN0YW5jZUZyb21Ob2RlKG5vZGUpIHtcbiAgdmFyIGluc3QgPSBub2RlW2ludGVybmFsSW5zdGFuY2VLZXldIHx8IG5vZGVbaW50ZXJuYWxDb250YWluZXJJbnN0YW5jZUtleV07XG5cbiAgaWYgKGluc3QpIHtcbiAgICBpZiAoaW5zdC50YWcgPT09IEhvc3RDb21wb25lbnQgfHwgaW5zdC50YWcgPT09IEhvc3RUZXh0IHx8IGluc3QudGFnID09PSBTdXNwZW5zZUNvbXBvbmVudCB8fCBpbnN0LnRhZyA9PT0gSG9zdFJvb3QpIHtcbiAgICAgIHJldHVybiBpbnN0O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cbi8qKlxuICogR2l2ZW4gYSBSZWFjdERPTUNvbXBvbmVudCBvciBSZWFjdERPTVRleHRDb21wb25lbnQsIHJldHVybiB0aGUgY29ycmVzcG9uZGluZ1xuICogRE9NIG5vZGUuXG4gKi9cblxuZnVuY3Rpb24gZ2V0Tm9kZUZyb21JbnN0YW5jZShpbnN0KSB7XG4gIGlmIChpbnN0LnRhZyA9PT0gSG9zdENvbXBvbmVudCB8fCBpbnN0LnRhZyA9PT0gSG9zdFRleHQpIHtcbiAgICAvLyBJbiBGaWJlciB0aGlzLCBpcyBqdXN0IHRoZSBzdGF0ZSBub2RlIHJpZ2h0IG5vdy4gV2UgYXNzdW1lIGl0IHdpbGwgYmVcbiAgICAvLyBhIGhvc3QgY29tcG9uZW50IG9yIGhvc3QgdGV4dC5cbiAgICByZXR1cm4gaW5zdC5zdGF0ZU5vZGU7XG4gIH0gLy8gV2l0aG91dCB0aGlzIGZpcnN0IGludmFyaWFudCwgcGFzc2luZyBhIG5vbi1ET00tY29tcG9uZW50IHRyaWdnZXJzIHRoZSBuZXh0XG4gIC8vIGludmFyaWFudCBmb3IgYSBtaXNzaW5nIHBhcmVudCwgd2hpY2ggaXMgc3VwZXIgY29uZnVzaW5nLlxuXG5cbiAge1xuICAgIHtcbiAgICAgIHRocm93IEVycm9yKCBcImdldE5vZGVGcm9tSW5zdGFuY2U6IEludmFsaWQgYXJndW1lbnQuXCIgKTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIGdldEZpYmVyQ3VycmVudFByb3BzRnJvbU5vZGUobm9kZSkge1xuICByZXR1cm4gbm9kZVtpbnRlcm5hbFByb3BzS2V5XSB8fCBudWxsO1xufVxuZnVuY3Rpb24gdXBkYXRlRmliZXJQcm9wcyhub2RlLCBwcm9wcykge1xuICBub2RlW2ludGVybmFsUHJvcHNLZXldID0gcHJvcHM7XG59XG5mdW5jdGlvbiBnZXRFdmVudExpc3RlbmVyU2V0KG5vZGUpIHtcbiAgdmFyIGVsZW1lbnRMaXN0ZW5lclNldCA9IG5vZGVbaW50ZXJuYWxFdmVudEhhbmRsZXJzS2V5XTtcblxuICBpZiAoZWxlbWVudExpc3RlbmVyU2V0ID09PSB1bmRlZmluZWQpIHtcbiAgICBlbGVtZW50TGlzdGVuZXJTZXQgPSBub2RlW2ludGVybmFsRXZlbnRIYW5kbGVyc0tleV0gPSBuZXcgU2V0KCk7XG4gIH1cblxuICByZXR1cm4gZWxlbWVudExpc3RlbmVyU2V0O1xufVxuXG52YXIgbG9nZ2VkVHlwZUZhaWx1cmVzID0ge307XG52YXIgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSQxID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZTtcblxuZnVuY3Rpb24gc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQoZWxlbWVudCkge1xuICB7XG4gICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgIHZhciBvd25lciA9IGVsZW1lbnQuX293bmVyO1xuICAgICAgdmFyIHN0YWNrID0gZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWKGVsZW1lbnQudHlwZSwgZWxlbWVudC5fc291cmNlLCBvd25lciA/IG93bmVyLnR5cGUgOiBudWxsKTtcbiAgICAgIFJlYWN0RGVidWdDdXJyZW50RnJhbWUkMS5zZXRFeHRyYVN0YWNrRnJhbWUoc3RhY2spO1xuICAgIH0gZWxzZSB7XG4gICAgICBSZWFjdERlYnVnQ3VycmVudEZyYW1lJDEuc2V0RXh0cmFTdGFja0ZyYW1lKG51bGwpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjaGVja1Byb3BUeXBlcyh0eXBlU3BlY3MsIHZhbHVlcywgbG9jYXRpb24sIGNvbXBvbmVudE5hbWUsIGVsZW1lbnQpIHtcbiAge1xuICAgIC8vICRGbG93Rml4TWUgVGhpcyBpcyBva2F5IGJ1dCBGbG93IGRvZXNuJ3Qga25vdyBpdC5cbiAgICB2YXIgaGFzID0gRnVuY3Rpb24uY2FsbC5iaW5kKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkpO1xuXG4gICAgZm9yICh2YXIgdHlwZVNwZWNOYW1lIGluIHR5cGVTcGVjcykge1xuICAgICAgaWYgKGhhcyh0eXBlU3BlY3MsIHR5cGVTcGVjTmFtZSkpIHtcbiAgICAgICAgdmFyIGVycm9yJDEgPSB2b2lkIDA7IC8vIFByb3AgdHlwZSB2YWxpZGF0aW9uIG1heSB0aHJvdy4gSW4gY2FzZSB0aGV5IGRvLCB3ZSBkb24ndCB3YW50IHRvXG4gICAgICAgIC8vIGZhaWwgdGhlIHJlbmRlciBwaGFzZSB3aGVyZSBpdCBkaWRuJ3QgZmFpbCBiZWZvcmUuIFNvIHdlIGxvZyBpdC5cbiAgICAgICAgLy8gQWZ0ZXIgdGhlc2UgaGF2ZSBiZWVuIGNsZWFuZWQgdXAsIHdlJ2xsIGxldCB0aGVtIHRocm93LlxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgLy8gVGhpcyBpcyBpbnRlbnRpb25hbGx5IGFuIGludmFyaWFudCB0aGF0IGdldHMgY2F1Z2h0LiBJdCdzIHRoZSBzYW1lXG4gICAgICAgICAgLy8gYmVoYXZpb3IgYXMgd2l0aG91dCB0aGlzIHN0YXRlbWVudCBleGNlcHQgd2l0aCBhIGJldHRlciBtZXNzYWdlLlxuICAgICAgICAgIGlmICh0eXBlb2YgdHlwZVNwZWNzW3R5cGVTcGVjTmFtZV0gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHZhciBlcnIgPSBFcnJvcigoY29tcG9uZW50TmFtZSB8fCAnUmVhY3QgY2xhc3MnKSArICc6ICcgKyBsb2NhdGlvbiArICcgdHlwZSBgJyArIHR5cGVTcGVjTmFtZSArICdgIGlzIGludmFsaWQ7ICcgKyAnaXQgbXVzdCBiZSBhIGZ1bmN0aW9uLCB1c3VhbGx5IGZyb20gdGhlIGBwcm9wLXR5cGVzYCBwYWNrYWdlLCBidXQgcmVjZWl2ZWQgYCcgKyB0eXBlb2YgdHlwZVNwZWNzW3R5cGVTcGVjTmFtZV0gKyAnYC4nICsgJ1RoaXMgb2Z0ZW4gaGFwcGVucyBiZWNhdXNlIG9mIHR5cG9zIHN1Y2ggYXMgYFByb3BUeXBlcy5mdW5jdGlvbmAgaW5zdGVhZCBvZiBgUHJvcFR5cGVzLmZ1bmNgLicpO1xuICAgICAgICAgICAgZXJyLm5hbWUgPSAnSW52YXJpYW50IFZpb2xhdGlvbic7XG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZXJyb3IkMSA9IHR5cGVTcGVjc1t0eXBlU3BlY05hbWVdKHZhbHVlcywgdHlwZVNwZWNOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgbnVsbCwgJ1NFQ1JFVF9ET19OT1RfUEFTU19USElTX09SX1lPVV9XSUxMX0JFX0ZJUkVEJyk7XG4gICAgICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICAgICAgZXJyb3IkMSA9IGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGVycm9yJDEgJiYgIShlcnJvciQxIGluc3RhbmNlb2YgRXJyb3IpKSB7XG4gICAgICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQoZWxlbWVudCk7XG5cbiAgICAgICAgICBlcnJvcignJXM6IHR5cGUgc3BlY2lmaWNhdGlvbiBvZiAlcycgKyAnIGAlc2AgaXMgaW52YWxpZDsgdGhlIHR5cGUgY2hlY2tlciAnICsgJ2Z1bmN0aW9uIG11c3QgcmV0dXJuIGBudWxsYCBvciBhbiBgRXJyb3JgIGJ1dCByZXR1cm5lZCBhICVzLiAnICsgJ1lvdSBtYXkgaGF2ZSBmb3Jnb3R0ZW4gdG8gcGFzcyBhbiBhcmd1bWVudCB0byB0aGUgdHlwZSBjaGVja2VyICcgKyAnY3JlYXRvciAoYXJyYXlPZiwgaW5zdGFuY2VPZiwgb2JqZWN0T2YsIG9uZU9mLCBvbmVPZlR5cGUsIGFuZCAnICsgJ3NoYXBlIGFsbCByZXF1aXJlIGFuIGFyZ3VtZW50KS4nLCBjb21wb25lbnROYW1lIHx8ICdSZWFjdCBjbGFzcycsIGxvY2F0aW9uLCB0eXBlU3BlY05hbWUsIHR5cGVvZiBlcnJvciQxKTtcblxuICAgICAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50KG51bGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGVycm9yJDEgaW5zdGFuY2VvZiBFcnJvciAmJiAhKGVycm9yJDEubWVzc2FnZSBpbiBsb2dnZWRUeXBlRmFpbHVyZXMpKSB7XG4gICAgICAgICAgLy8gT25seSBtb25pdG9yIHRoaXMgZmFpbHVyZSBvbmNlIGJlY2F1c2UgdGhlcmUgdGVuZHMgdG8gYmUgYSBsb3Qgb2YgdGhlXG4gICAgICAgICAgLy8gc2FtZSBlcnJvci5cbiAgICAgICAgICBsb2dnZWRUeXBlRmFpbHVyZXNbZXJyb3IkMS5tZXNzYWdlXSA9IHRydWU7XG4gICAgICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQoZWxlbWVudCk7XG5cbiAgICAgICAgICBlcnJvcignRmFpbGVkICVzIHR5cGU6ICVzJywgbG9jYXRpb24sIGVycm9yJDEubWVzc2FnZSk7XG5cbiAgICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChudWxsKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG52YXIgdmFsdWVTdGFjayA9IFtdO1xudmFyIGZpYmVyU3RhY2s7XG5cbntcbiAgZmliZXJTdGFjayA9IFtdO1xufVxuXG52YXIgaW5kZXggPSAtMTtcblxuZnVuY3Rpb24gY3JlYXRlQ3Vyc29yKGRlZmF1bHRWYWx1ZSkge1xuICByZXR1cm4ge1xuICAgIGN1cnJlbnQ6IGRlZmF1bHRWYWx1ZVxuICB9O1xufVxuXG5mdW5jdGlvbiBwb3AoY3Vyc29yLCBmaWJlcikge1xuICBpZiAoaW5kZXggPCAwKSB7XG4gICAge1xuICAgICAgZXJyb3IoJ1VuZXhwZWN0ZWQgcG9wLicpO1xuICAgIH1cblxuICAgIHJldHVybjtcbiAgfVxuXG4gIHtcbiAgICBpZiAoZmliZXIgIT09IGZpYmVyU3RhY2tbaW5kZXhdKSB7XG4gICAgICBlcnJvcignVW5leHBlY3RlZCBGaWJlciBwb3BwZWQuJyk7XG4gICAgfVxuICB9XG5cbiAgY3Vyc29yLmN1cnJlbnQgPSB2YWx1ZVN0YWNrW2luZGV4XTtcbiAgdmFsdWVTdGFja1tpbmRleF0gPSBudWxsO1xuXG4gIHtcbiAgICBmaWJlclN0YWNrW2luZGV4XSA9IG51bGw7XG4gIH1cblxuICBpbmRleC0tO1xufVxuXG5mdW5jdGlvbiBwdXNoKGN1cnNvciwgdmFsdWUsIGZpYmVyKSB7XG4gIGluZGV4Kys7XG4gIHZhbHVlU3RhY2tbaW5kZXhdID0gY3Vyc29yLmN1cnJlbnQ7XG5cbiAge1xuICAgIGZpYmVyU3RhY2tbaW5kZXhdID0gZmliZXI7XG4gIH1cblxuICBjdXJzb3IuY3VycmVudCA9IHZhbHVlO1xufVxuXG52YXIgd2FybmVkQWJvdXRNaXNzaW5nR2V0Q2hpbGRDb250ZXh0O1xuXG57XG4gIHdhcm5lZEFib3V0TWlzc2luZ0dldENoaWxkQ29udGV4dCA9IHt9O1xufVxuXG52YXIgZW1wdHlDb250ZXh0T2JqZWN0ID0ge307XG5cbntcbiAgT2JqZWN0LmZyZWV6ZShlbXB0eUNvbnRleHRPYmplY3QpO1xufSAvLyBBIGN1cnNvciB0byB0aGUgY3VycmVudCBtZXJnZWQgY29udGV4dCBvYmplY3Qgb24gdGhlIHN0YWNrLlxuXG5cbnZhciBjb250ZXh0U3RhY2tDdXJzb3IgPSBjcmVhdGVDdXJzb3IoZW1wdHlDb250ZXh0T2JqZWN0KTsgLy8gQSBjdXJzb3IgdG8gYSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgY29udGV4dCBoYXMgY2hhbmdlZC5cblxudmFyIGRpZFBlcmZvcm1Xb3JrU3RhY2tDdXJzb3IgPSBjcmVhdGVDdXJzb3IoZmFsc2UpOyAvLyBLZWVwIHRyYWNrIG9mIHRoZSBwcmV2aW91cyBjb250ZXh0IG9iamVjdCB0aGF0IHdhcyBvbiB0aGUgc3RhY2suXG4vLyBXZSB1c2UgdGhpcyB0byBnZXQgYWNjZXNzIHRvIHRoZSBwYXJlbnQgY29udGV4dCBhZnRlciB3ZSBoYXZlIGFscmVhZHlcbi8vIHB1c2hlZCB0aGUgbmV4dCBjb250ZXh0IHByb3ZpZGVyLCBhbmQgbm93IG5lZWQgdG8gbWVyZ2UgdGhlaXIgY29udGV4dHMuXG5cbnZhciBwcmV2aW91c0NvbnRleHQgPSBlbXB0eUNvbnRleHRPYmplY3Q7XG5cbmZ1bmN0aW9uIGdldFVubWFza2VkQ29udGV4dCh3b3JrSW5Qcm9ncmVzcywgQ29tcG9uZW50LCBkaWRQdXNoT3duQ29udGV4dElmUHJvdmlkZXIpIHtcbiAge1xuICAgIGlmIChkaWRQdXNoT3duQ29udGV4dElmUHJvdmlkZXIgJiYgaXNDb250ZXh0UHJvdmlkZXIoQ29tcG9uZW50KSkge1xuICAgICAgLy8gSWYgdGhlIGZpYmVyIGlzIGEgY29udGV4dCBwcm92aWRlciBpdHNlbGYsIHdoZW4gd2UgcmVhZCBpdHMgY29udGV4dFxuICAgICAgLy8gd2UgbWF5IGhhdmUgYWxyZWFkeSBwdXNoZWQgaXRzIG93biBjaGlsZCBjb250ZXh0IG9uIHRoZSBzdGFjay4gQSBjb250ZXh0XG4gICAgICAvLyBwcm92aWRlciBzaG91bGQgbm90IFwic2VlXCIgaXRzIG93biBjaGlsZCBjb250ZXh0LiBUaGVyZWZvcmUgd2UgcmVhZCB0aGVcbiAgICAgIC8vIHByZXZpb3VzIChwYXJlbnQpIGNvbnRleHQgaW5zdGVhZCBmb3IgYSBjb250ZXh0IHByb3ZpZGVyLlxuICAgICAgcmV0dXJuIHByZXZpb3VzQ29udGV4dDtcbiAgICB9XG5cbiAgICByZXR1cm4gY29udGV4dFN0YWNrQ3Vyc29yLmN1cnJlbnQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gY2FjaGVDb250ZXh0KHdvcmtJblByb2dyZXNzLCB1bm1hc2tlZENvbnRleHQsIG1hc2tlZENvbnRleHQpIHtcbiAge1xuICAgIHZhciBpbnN0YW5jZSA9IHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZTtcbiAgICBpbnN0YW5jZS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZFVubWFza2VkQ2hpbGRDb250ZXh0ID0gdW5tYXNrZWRDb250ZXh0O1xuICAgIGluc3RhbmNlLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWFza2VkQ2hpbGRDb250ZXh0ID0gbWFza2VkQ29udGV4dDtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRNYXNrZWRDb250ZXh0KHdvcmtJblByb2dyZXNzLCB1bm1hc2tlZENvbnRleHQpIHtcbiAge1xuICAgIHZhciB0eXBlID0gd29ya0luUHJvZ3Jlc3MudHlwZTtcbiAgICB2YXIgY29udGV4dFR5cGVzID0gdHlwZS5jb250ZXh0VHlwZXM7XG5cbiAgICBpZiAoIWNvbnRleHRUeXBlcykge1xuICAgICAgcmV0dXJuIGVtcHR5Q29udGV4dE9iamVjdDtcbiAgICB9IC8vIEF2b2lkIHJlY3JlYXRpbmcgbWFza2VkIGNvbnRleHQgdW5sZXNzIHVubWFza2VkIGNvbnRleHQgaGFzIGNoYW5nZWQuXG4gICAgLy8gRmFpbGluZyB0byBkbyB0aGlzIHdpbGwgcmVzdWx0IGluIHVubmVjZXNzYXJ5IGNhbGxzIHRvIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMuXG4gICAgLy8gVGhpcyBtYXkgdHJpZ2dlciBpbmZpbml0ZSBsb29wcyBpZiBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzIGNhbGxzIHNldFN0YXRlLlxuXG5cbiAgICB2YXIgaW5zdGFuY2UgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG5cbiAgICBpZiAoaW5zdGFuY2UgJiYgaW5zdGFuY2UuX19yZWFjdEludGVybmFsTWVtb2l6ZWRVbm1hc2tlZENoaWxkQ29udGV4dCA9PT0gdW5tYXNrZWRDb250ZXh0KSB7XG4gICAgICByZXR1cm4gaW5zdGFuY2UuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNYXNrZWRDaGlsZENvbnRleHQ7XG4gICAgfVxuXG4gICAgdmFyIGNvbnRleHQgPSB7fTtcblxuICAgIGZvciAodmFyIGtleSBpbiBjb250ZXh0VHlwZXMpIHtcbiAgICAgIGNvbnRleHRba2V5XSA9IHVubWFza2VkQ29udGV4dFtrZXldO1xuICAgIH1cblxuICAgIHtcbiAgICAgIHZhciBuYW1lID0gZ2V0Q29tcG9uZW50TmFtZSh0eXBlKSB8fCAnVW5rbm93bic7XG4gICAgICBjaGVja1Byb3BUeXBlcyhjb250ZXh0VHlwZXMsIGNvbnRleHQsICdjb250ZXh0JywgbmFtZSk7XG4gICAgfSAvLyBDYWNoZSB1bm1hc2tlZCBjb250ZXh0IHNvIHdlIGNhbiBhdm9pZCByZWNyZWF0aW5nIG1hc2tlZCBjb250ZXh0IHVubGVzcyBuZWNlc3NhcnkuXG4gICAgLy8gQ29udGV4dCBpcyBjcmVhdGVkIGJlZm9yZSB0aGUgY2xhc3MgY29tcG9uZW50IGlzIGluc3RhbnRpYXRlZCBzbyBjaGVjayBmb3IgaW5zdGFuY2UuXG5cblxuICAgIGlmIChpbnN0YW5jZSkge1xuICAgICAgY2FjaGVDb250ZXh0KHdvcmtJblByb2dyZXNzLCB1bm1hc2tlZENvbnRleHQsIGNvbnRleHQpO1xuICAgIH1cblxuICAgIHJldHVybiBjb250ZXh0O1xuICB9XG59XG5cbmZ1bmN0aW9uIGhhc0NvbnRleHRDaGFuZ2VkKCkge1xuICB7XG4gICAgcmV0dXJuIGRpZFBlcmZvcm1Xb3JrU3RhY2tDdXJzb3IuY3VycmVudDtcbiAgfVxufVxuXG5mdW5jdGlvbiBpc0NvbnRleHRQcm92aWRlcih0eXBlKSB7XG4gIHtcbiAgICB2YXIgY2hpbGRDb250ZXh0VHlwZXMgPSB0eXBlLmNoaWxkQ29udGV4dFR5cGVzO1xuICAgIHJldHVybiBjaGlsZENvbnRleHRUeXBlcyAhPT0gbnVsbCAmJiBjaGlsZENvbnRleHRUeXBlcyAhPT0gdW5kZWZpbmVkO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBvcENvbnRleHQoZmliZXIpIHtcbiAge1xuICAgIHBvcChkaWRQZXJmb3JtV29ya1N0YWNrQ3Vyc29yLCBmaWJlcik7XG4gICAgcG9wKGNvbnRleHRTdGFja0N1cnNvciwgZmliZXIpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBvcFRvcExldmVsQ29udGV4dE9iamVjdChmaWJlcikge1xuICB7XG4gICAgcG9wKGRpZFBlcmZvcm1Xb3JrU3RhY2tDdXJzb3IsIGZpYmVyKTtcbiAgICBwb3AoY29udGV4dFN0YWNrQ3Vyc29yLCBmaWJlcik7XG4gIH1cbn1cblxuZnVuY3Rpb24gcHVzaFRvcExldmVsQ29udGV4dE9iamVjdChmaWJlciwgY29udGV4dCwgZGlkQ2hhbmdlKSB7XG4gIHtcbiAgICBpZiAoIShjb250ZXh0U3RhY2tDdXJzb3IuY3VycmVudCA9PT0gZW1wdHlDb250ZXh0T2JqZWN0KSkge1xuICAgICAge1xuICAgICAgICB0aHJvdyBFcnJvciggXCJVbmV4cGVjdGVkIGNvbnRleHQgZm91bmQgb24gc3RhY2suIFRoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCIgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwdXNoKGNvbnRleHRTdGFja0N1cnNvciwgY29udGV4dCwgZmliZXIpO1xuICAgIHB1c2goZGlkUGVyZm9ybVdvcmtTdGFja0N1cnNvciwgZGlkQ2hhbmdlLCBmaWJlcik7XG4gIH1cbn1cblxuZnVuY3Rpb24gcHJvY2Vzc0NoaWxkQ29udGV4dChmaWJlciwgdHlwZSwgcGFyZW50Q29udGV4dCkge1xuICB7XG4gICAgdmFyIGluc3RhbmNlID0gZmliZXIuc3RhdGVOb2RlO1xuICAgIHZhciBjaGlsZENvbnRleHRUeXBlcyA9IHR5cGUuY2hpbGRDb250ZXh0VHlwZXM7IC8vIFRPRE8gKGJ2YXVnaG4pIFJlcGxhY2UgdGhpcyBiZWhhdmlvciB3aXRoIGFuIGludmFyaWFudCgpIGluIHRoZSBmdXR1cmUuXG4gICAgLy8gSXQgaGFzIG9ubHkgYmVlbiBhZGRlZCBpbiBGaWJlciB0byBtYXRjaCB0aGUgKHVuaW50ZW50aW9uYWwpIGJlaGF2aW9yIGluIFN0YWNrLlxuXG4gICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5nZXRDaGlsZENvbnRleHQgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHtcbiAgICAgICAgdmFyIGNvbXBvbmVudE5hbWUgPSBnZXRDb21wb25lbnROYW1lKHR5cGUpIHx8ICdVbmtub3duJztcblxuICAgICAgICBpZiAoIXdhcm5lZEFib3V0TWlzc2luZ0dldENoaWxkQ29udGV4dFtjb21wb25lbnROYW1lXSkge1xuICAgICAgICAgIHdhcm5lZEFib3V0TWlzc2luZ0dldENoaWxkQ29udGV4dFtjb21wb25lbnROYW1lXSA9IHRydWU7XG5cbiAgICAgICAgICBlcnJvcignJXMuY2hpbGRDb250ZXh0VHlwZXMgaXMgc3BlY2lmaWVkIGJ1dCB0aGVyZSBpcyBubyBnZXRDaGlsZENvbnRleHQoKSBtZXRob2QgJyArICdvbiB0aGUgaW5zdGFuY2UuIFlvdSBjYW4gZWl0aGVyIGRlZmluZSBnZXRDaGlsZENvbnRleHQoKSBvbiAlcyBvciByZW1vdmUgJyArICdjaGlsZENvbnRleHRUeXBlcyBmcm9tIGl0LicsIGNvbXBvbmVudE5hbWUsIGNvbXBvbmVudE5hbWUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBwYXJlbnRDb250ZXh0O1xuICAgIH1cblxuICAgIHZhciBjaGlsZENvbnRleHQgPSBpbnN0YW5jZS5nZXRDaGlsZENvbnRleHQoKTtcblxuICAgIGZvciAodmFyIGNvbnRleHRLZXkgaW4gY2hpbGRDb250ZXh0KSB7XG4gICAgICBpZiAoIShjb250ZXh0S2V5IGluIGNoaWxkQ29udGV4dFR5cGVzKSkge1xuICAgICAgICB7XG4gICAgICAgICAgdGhyb3cgRXJyb3IoIChnZXRDb21wb25lbnROYW1lKHR5cGUpIHx8ICdVbmtub3duJykgKyBcIi5nZXRDaGlsZENvbnRleHQoKToga2V5IFxcXCJcIiArIGNvbnRleHRLZXkgKyBcIlxcXCIgaXMgbm90IGRlZmluZWQgaW4gY2hpbGRDb250ZXh0VHlwZXMuXCIgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHtcbiAgICAgIHZhciBuYW1lID0gZ2V0Q29tcG9uZW50TmFtZSh0eXBlKSB8fCAnVW5rbm93bic7XG4gICAgICBjaGVja1Byb3BUeXBlcyhjaGlsZENvbnRleHRUeXBlcywgY2hpbGRDb250ZXh0LCAnY2hpbGQgY29udGV4dCcsIG5hbWUpO1xuICAgIH1cblxuICAgIHJldHVybiBfYXNzaWduKHt9LCBwYXJlbnRDb250ZXh0LCBjaGlsZENvbnRleHQpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHB1c2hDb250ZXh0UHJvdmlkZXIod29ya0luUHJvZ3Jlc3MpIHtcbiAge1xuICAgIHZhciBpbnN0YW5jZSA9IHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZTsgLy8gV2UgcHVzaCB0aGUgY29udGV4dCBhcyBlYXJseSBhcyBwb3NzaWJsZSB0byBlbnN1cmUgc3RhY2sgaW50ZWdyaXR5LlxuICAgIC8vIElmIHRoZSBpbnN0YW5jZSBkb2VzIG5vdCBleGlzdCB5ZXQsIHdlIHdpbGwgcHVzaCBudWxsIGF0IGZpcnN0LFxuICAgIC8vIGFuZCByZXBsYWNlIGl0IG9uIHRoZSBzdGFjayBsYXRlciB3aGVuIGludmFsaWRhdGluZyB0aGUgY29udGV4dC5cblxuICAgIHZhciBtZW1vaXplZE1lcmdlZENoaWxkQ29udGV4dCA9IGluc3RhbmNlICYmIGluc3RhbmNlLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0IHx8IGVtcHR5Q29udGV4dE9iamVjdDsgLy8gUmVtZW1iZXIgdGhlIHBhcmVudCBjb250ZXh0IHNvIHdlIGNhbiBtZXJnZSB3aXRoIGl0IGxhdGVyLlxuICAgIC8vIEluaGVyaXQgdGhlIHBhcmVudCdzIGRpZC1wZXJmb3JtLXdvcmsgdmFsdWUgdG8gYXZvaWQgaW5hZHZlcnRlbnRseSBibG9ja2luZyB1cGRhdGVzLlxuXG4gICAgcHJldmlvdXNDb250ZXh0ID0gY29udGV4dFN0YWNrQ3Vyc29yLmN1cnJlbnQ7XG4gICAgcHVzaChjb250ZXh0U3RhY2tDdXJzb3IsIG1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0LCB3b3JrSW5Qcm9ncmVzcyk7XG4gICAgcHVzaChkaWRQZXJmb3JtV29ya1N0YWNrQ3Vyc29yLCBkaWRQZXJmb3JtV29ya1N0YWNrQ3Vyc29yLmN1cnJlbnQsIHdvcmtJblByb2dyZXNzKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpbnZhbGlkYXRlQ29udGV4dFByb3ZpZGVyKHdvcmtJblByb2dyZXNzLCB0eXBlLCBkaWRDaGFuZ2UpIHtcbiAge1xuICAgIHZhciBpbnN0YW5jZSA9IHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZTtcblxuICAgIGlmICghaW5zdGFuY2UpIHtcbiAgICAgIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoIFwiRXhwZWN0ZWQgdG8gaGF2ZSBhbiBpbnN0YW5jZSBieSB0aGlzIHBvaW50LiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLlwiICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGRpZENoYW5nZSkge1xuICAgICAgLy8gTWVyZ2UgcGFyZW50IGFuZCBvd24gY29udGV4dC5cbiAgICAgIC8vIFNraXAgdGhpcyBpZiB3ZSdyZSBub3QgdXBkYXRpbmcgZHVlIHRvIHNDVS5cbiAgICAgIC8vIFRoaXMgYXZvaWRzIHVubmVjZXNzYXJpbHkgcmVjb21wdXRpbmcgbWVtb2l6ZWQgdmFsdWVzLlxuICAgICAgdmFyIG1lcmdlZENvbnRleHQgPSBwcm9jZXNzQ2hpbGRDb250ZXh0KHdvcmtJblByb2dyZXNzLCB0eXBlLCBwcmV2aW91c0NvbnRleHQpO1xuICAgICAgaW5zdGFuY2UuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNZXJnZWRDaGlsZENvbnRleHQgPSBtZXJnZWRDb250ZXh0OyAvLyBSZXBsYWNlIHRoZSBvbGQgKG9yIGVtcHR5KSBjb250ZXh0IHdpdGggdGhlIG5ldyBvbmUuXG4gICAgICAvLyBJdCBpcyBpbXBvcnRhbnQgdG8gdW53aW5kIHRoZSBjb250ZXh0IGluIHRoZSByZXZlcnNlIG9yZGVyLlxuXG4gICAgICBwb3AoZGlkUGVyZm9ybVdvcmtTdGFja0N1cnNvciwgd29ya0luUHJvZ3Jlc3MpO1xuICAgICAgcG9wKGNvbnRleHRTdGFja0N1cnNvciwgd29ya0luUHJvZ3Jlc3MpOyAvLyBOb3cgcHVzaCB0aGUgbmV3IGNvbnRleHQgYW5kIG1hcmsgdGhhdCBpdCBoYXMgY2hhbmdlZC5cblxuICAgICAgcHVzaChjb250ZXh0U3RhY2tDdXJzb3IsIG1lcmdlZENvbnRleHQsIHdvcmtJblByb2dyZXNzKTtcbiAgICAgIHB1c2goZGlkUGVyZm9ybVdvcmtTdGFja0N1cnNvciwgZGlkQ2hhbmdlLCB3b3JrSW5Qcm9ncmVzcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBvcChkaWRQZXJmb3JtV29ya1N0YWNrQ3Vyc29yLCB3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICBwdXNoKGRpZFBlcmZvcm1Xb3JrU3RhY2tDdXJzb3IsIGRpZENoYW5nZSwgd29ya0luUHJvZ3Jlc3MpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBmaW5kQ3VycmVudFVubWFza2VkQ29udGV4dChmaWJlcikge1xuICB7XG4gICAgLy8gQ3VycmVudGx5IHRoaXMgaXMgb25seSB1c2VkIHdpdGggcmVuZGVyU3VidHJlZUludG9Db250YWluZXI7IG5vdCBzdXJlIGlmIGl0XG4gICAgLy8gbWFrZXMgc2Vuc2UgZWxzZXdoZXJlXG4gICAgaWYgKCEoaXNGaWJlck1vdW50ZWQoZmliZXIpICYmIGZpYmVyLnRhZyA9PT0gQ2xhc3NDb21wb25lbnQpKSB7XG4gICAgICB7XG4gICAgICAgIHRocm93IEVycm9yKCBcIkV4cGVjdGVkIHN1YnRyZWUgcGFyZW50IHRvIGJlIGEgbW91bnRlZCBjbGFzcyBjb21wb25lbnQuIFRoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCIgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgbm9kZSA9IGZpYmVyO1xuXG4gICAgZG8ge1xuICAgICAgc3dpdGNoIChub2RlLnRhZykge1xuICAgICAgICBjYXNlIEhvc3RSb290OlxuICAgICAgICAgIHJldHVybiBub2RlLnN0YXRlTm9kZS5jb250ZXh0O1xuXG4gICAgICAgIGNhc2UgQ2xhc3NDb21wb25lbnQ6XG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFyIENvbXBvbmVudCA9IG5vZGUudHlwZTtcblxuICAgICAgICAgICAgaWYgKGlzQ29udGV4dFByb3ZpZGVyKENvbXBvbmVudCkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG5vZGUuc3RhdGVOb2RlLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG5vZGUgPSBub2RlLnJldHVybjtcbiAgICB9IHdoaWxlIChub2RlICE9PSBudWxsKTtcblxuICAgIHtcbiAgICAgIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoIFwiRm91bmQgdW5leHBlY3RlZCBkZXRhY2hlZCBzdWJ0cmVlIHBhcmVudC4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIiApO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG52YXIgTGVnYWN5Um9vdCA9IDA7XG52YXIgQmxvY2tpbmdSb290ID0gMTtcbnZhciBDb25jdXJyZW50Um9vdCA9IDI7XG5cbnZhciByZW5kZXJlcklEID0gbnVsbDtcbnZhciBpbmplY3RlZEhvb2sgPSBudWxsO1xudmFyIGhhc0xvZ2dlZEVycm9yID0gZmFsc2U7XG52YXIgaXNEZXZUb29sc1ByZXNlbnQgPSB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fICE9PSAndW5kZWZpbmVkJztcbmZ1bmN0aW9uIGluamVjdEludGVybmFscyhpbnRlcm5hbHMpIHtcbiAgaWYgKHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgLy8gTm8gRGV2VG9vbHNcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB2YXIgaG9vayA9IF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXztcblxuICBpZiAoaG9vay5pc0Rpc2FibGVkKSB7XG4gICAgLy8gVGhpcyBpc24ndCBhIHJlYWwgcHJvcGVydHkgb24gdGhlIGhvb2ssIGJ1dCBpdCBjYW4gYmUgc2V0IHRvIG9wdCBvdXRcbiAgICAvLyBvZiBEZXZUb29scyBpbnRlZ3JhdGlvbiBhbmQgYXNzb2NpYXRlZCB3YXJuaW5ncyBhbmQgbG9ncy5cbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzM4NzdcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmICghaG9vay5zdXBwb3J0c0ZpYmVyKSB7XG4gICAge1xuICAgICAgZXJyb3IoJ1RoZSBpbnN0YWxsZWQgdmVyc2lvbiBvZiBSZWFjdCBEZXZUb29scyBpcyB0b28gb2xkIGFuZCB3aWxsIG5vdCB3b3JrICcgKyAnd2l0aCB0aGUgY3VycmVudCB2ZXJzaW9uIG9mIFJlYWN0LiBQbGVhc2UgdXBkYXRlIFJlYWN0IERldlRvb2xzLiAnICsgJ2h0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9yZWFjdC1kZXZ0b29scycpO1xuICAgIH0gLy8gRGV2VG9vbHMgZXhpc3RzLCBldmVuIHRob3VnaCBpdCBkb2Vzbid0IHN1cHBvcnQgRmliZXIuXG5cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgdHJ5IHtcbiAgICByZW5kZXJlcklEID0gaG9vay5pbmplY3QoaW50ZXJuYWxzKTsgLy8gV2UgaGF2ZSBzdWNjZXNzZnVsbHkgaW5qZWN0ZWQsIHNvIG5vdyBpdCBpcyBzYWZlIHRvIHNldCB1cCBob29rcy5cblxuICAgIGluamVjdGVkSG9vayA9IGhvb2s7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIC8vIENhdGNoIGFsbCBlcnJvcnMgYmVjYXVzZSBpdCBpcyB1bnNhZmUgdG8gdGhyb3cgZHVyaW5nIGluaXRpYWxpemF0aW9uLlxuICAgIHtcbiAgICAgIGVycm9yKCdSZWFjdCBpbnN0cnVtZW50YXRpb24gZW5jb3VudGVyZWQgYW4gZXJyb3I6ICVzLicsIGVycik7XG4gICAgfVxuICB9IC8vIERldlRvb2xzIGV4aXN0c1xuXG5cbiAgcmV0dXJuIHRydWU7XG59XG5mdW5jdGlvbiBvblNjaGVkdWxlUm9vdChyb290LCBjaGlsZHJlbikge1xuICB7XG4gICAgaWYgKGluamVjdGVkSG9vayAmJiB0eXBlb2YgaW5qZWN0ZWRIb29rLm9uU2NoZWR1bGVGaWJlclJvb3QgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGluamVjdGVkSG9vay5vblNjaGVkdWxlRmliZXJSb290KHJlbmRlcmVySUQsIHJvb3QsIGNoaWxkcmVuKTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBpZiAoICFoYXNMb2dnZWRFcnJvcikge1xuICAgICAgICAgIGhhc0xvZ2dlZEVycm9yID0gdHJ1ZTtcblxuICAgICAgICAgIGVycm9yKCdSZWFjdCBpbnN0cnVtZW50YXRpb24gZW5jb3VudGVyZWQgYW4gZXJyb3I6ICVzJywgZXJyKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gb25Db21taXRSb290KHJvb3QsIHByaW9yaXR5TGV2ZWwpIHtcbiAgaWYgKGluamVjdGVkSG9vayAmJiB0eXBlb2YgaW5qZWN0ZWRIb29rLm9uQ29tbWl0RmliZXJSb290ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgdHJ5IHtcbiAgICAgIHZhciBkaWRFcnJvciA9IChyb290LmN1cnJlbnQuZmxhZ3MgJiBEaWRDYXB0dXJlKSA9PT0gRGlkQ2FwdHVyZTtcblxuICAgICAgaWYgKGVuYWJsZVByb2ZpbGVyVGltZXIpIHtcbiAgICAgICAgaW5qZWN0ZWRIb29rLm9uQ29tbWl0RmliZXJSb290KHJlbmRlcmVySUQsIHJvb3QsIHByaW9yaXR5TGV2ZWwsIGRpZEVycm9yKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGluamVjdGVkSG9vay5vbkNvbW1pdEZpYmVyUm9vdChyZW5kZXJlcklELCByb290LCB1bmRlZmluZWQsIGRpZEVycm9yKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHtcbiAgICAgICAgaWYgKCFoYXNMb2dnZWRFcnJvcikge1xuICAgICAgICAgIGhhc0xvZ2dlZEVycm9yID0gdHJ1ZTtcblxuICAgICAgICAgIGVycm9yKCdSZWFjdCBpbnN0cnVtZW50YXRpb24gZW5jb3VudGVyZWQgYW4gZXJyb3I6ICVzJywgZXJyKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gb25Db21taXRVbm1vdW50KGZpYmVyKSB7XG4gIGlmIChpbmplY3RlZEhvb2sgJiYgdHlwZW9mIGluamVjdGVkSG9vay5vbkNvbW1pdEZpYmVyVW5tb3VudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHRyeSB7XG4gICAgICBpbmplY3RlZEhvb2sub25Db21taXRGaWJlclVubW91bnQocmVuZGVyZXJJRCwgZmliZXIpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAge1xuICAgICAgICBpZiAoIWhhc0xvZ2dlZEVycm9yKSB7XG4gICAgICAgICAgaGFzTG9nZ2VkRXJyb3IgPSB0cnVlO1xuXG4gICAgICAgICAgZXJyb3IoJ1JlYWN0IGluc3RydW1lbnRhdGlvbiBlbmNvdW50ZXJlZCBhbiBlcnJvcjogJXMnLCBlcnIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbnZhciBTY2hlZHVsZXJfcnVuV2l0aFByaW9yaXR5ID0gU2NoZWR1bGVyLnVuc3RhYmxlX3J1bldpdGhQcmlvcml0eSxcbiAgICBTY2hlZHVsZXJfc2NoZWR1bGVDYWxsYmFjayA9IFNjaGVkdWxlci51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrLFxuICAgIFNjaGVkdWxlcl9jYW5jZWxDYWxsYmFjayA9IFNjaGVkdWxlci51bnN0YWJsZV9jYW5jZWxDYWxsYmFjayxcbiAgICBTY2hlZHVsZXJfc2hvdWxkWWllbGQgPSBTY2hlZHVsZXIudW5zdGFibGVfc2hvdWxkWWllbGQsXG4gICAgU2NoZWR1bGVyX3JlcXVlc3RQYWludCA9IFNjaGVkdWxlci51bnN0YWJsZV9yZXF1ZXN0UGFpbnQsXG4gICAgU2NoZWR1bGVyX25vdyQxID0gU2NoZWR1bGVyLnVuc3RhYmxlX25vdyxcbiAgICBTY2hlZHVsZXJfZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWwgPSBTY2hlZHVsZXIudW5zdGFibGVfZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWwsXG4gICAgU2NoZWR1bGVyX0ltbWVkaWF0ZVByaW9yaXR5ID0gU2NoZWR1bGVyLnVuc3RhYmxlX0ltbWVkaWF0ZVByaW9yaXR5LFxuICAgIFNjaGVkdWxlcl9Vc2VyQmxvY2tpbmdQcmlvcml0eSA9IFNjaGVkdWxlci51bnN0YWJsZV9Vc2VyQmxvY2tpbmdQcmlvcml0eSxcbiAgICBTY2hlZHVsZXJfTm9ybWFsUHJpb3JpdHkgPSBTY2hlZHVsZXIudW5zdGFibGVfTm9ybWFsUHJpb3JpdHksXG4gICAgU2NoZWR1bGVyX0xvd1ByaW9yaXR5ID0gU2NoZWR1bGVyLnVuc3RhYmxlX0xvd1ByaW9yaXR5LFxuICAgIFNjaGVkdWxlcl9JZGxlUHJpb3JpdHkgPSBTY2hlZHVsZXIudW5zdGFibGVfSWRsZVByaW9yaXR5O1xuXG57XG4gIC8vIFByb3ZpZGUgZXhwbGljaXQgZXJyb3IgbWVzc2FnZSB3aGVuIHByb2R1Y3Rpb24rcHJvZmlsaW5nIGJ1bmRsZSBvZiBlLmcuXG4gIC8vIHJlYWN0LWRvbSBpcyB1c2VkIHdpdGggcHJvZHVjdGlvbiAobm9uLXByb2ZpbGluZykgYnVuZGxlIG9mXG4gIC8vIHNjaGVkdWxlci90cmFjaW5nXG4gIGlmICghKHRyYWNpbmcuX19pbnRlcmFjdGlvbnNSZWYgIT0gbnVsbCAmJiB0cmFjaW5nLl9faW50ZXJhY3Rpb25zUmVmLmN1cnJlbnQgIT0gbnVsbCkpIHtcbiAgICB7XG4gICAgICB0aHJvdyBFcnJvciggXCJJdCBpcyBub3Qgc3VwcG9ydGVkIHRvIHJ1biB0aGUgcHJvZmlsaW5nIHZlcnNpb24gb2YgYSByZW5kZXJlciAoZm9yIGV4YW1wbGUsIGByZWFjdC1kb20vcHJvZmlsaW5nYCkgd2l0aG91dCBhbHNvIHJlcGxhY2luZyB0aGUgYHNjaGVkdWxlci90cmFjaW5nYCBtb2R1bGUgd2l0aCBgc2NoZWR1bGVyL3RyYWNpbmctcHJvZmlsaW5nYC4gWW91ciBidW5kbGVyIG1pZ2h0IGhhdmUgYSBzZXR0aW5nIGZvciBhbGlhc2luZyBib3RoIG1vZHVsZXMuIExlYXJuIG1vcmUgYXQgaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3Byb2ZpbGluZ1wiICk7XG4gICAgfVxuICB9XG59XG5cbnZhciBmYWtlQ2FsbGJhY2tOb2RlID0ge307IC8vIEV4Y2VwdCBmb3IgTm9Qcmlvcml0eSwgdGhlc2UgY29ycmVzcG9uZCB0byBTY2hlZHVsZXIgcHJpb3JpdGllcy4gV2UgdXNlXG4vLyBhc2NlbmRpbmcgbnVtYmVycyBzbyB3ZSBjYW4gY29tcGFyZSB0aGVtIGxpa2UgbnVtYmVycy4gVGhleSBzdGFydCBhdCA5MCB0b1xuLy8gYXZvaWQgY2xhc2hpbmcgd2l0aCBTY2hlZHVsZXIncyBwcmlvcml0aWVzLlxuXG52YXIgSW1tZWRpYXRlUHJpb3JpdHkkMSA9IDk5O1xudmFyIFVzZXJCbG9ja2luZ1ByaW9yaXR5JDIgPSA5ODtcbnZhciBOb3JtYWxQcmlvcml0eSQxID0gOTc7XG52YXIgTG93UHJpb3JpdHkkMSA9IDk2O1xudmFyIElkbGVQcmlvcml0eSQxID0gOTU7IC8vIE5vUHJpb3JpdHkgaXMgdGhlIGFic2VuY2Ugb2YgcHJpb3JpdHkuIEFsc28gUmVhY3Qtb25seS5cblxudmFyIE5vUHJpb3JpdHkkMSA9IDkwO1xudmFyIHNob3VsZFlpZWxkID0gU2NoZWR1bGVyX3Nob3VsZFlpZWxkO1xudmFyIHJlcXVlc3RQYWludCA9IC8vIEZhbGwgYmFjayBncmFjZWZ1bGx5IGlmIHdlJ3JlIHJ1bm5pbmcgYW4gb2xkZXIgdmVyc2lvbiBvZiBTY2hlZHVsZXIuXG5TY2hlZHVsZXJfcmVxdWVzdFBhaW50ICE9PSB1bmRlZmluZWQgPyBTY2hlZHVsZXJfcmVxdWVzdFBhaW50IDogZnVuY3Rpb24gKCkge307XG52YXIgc3luY1F1ZXVlID0gbnVsbDtcbnZhciBpbW1lZGlhdGVRdWV1ZUNhbGxiYWNrTm9kZSA9IG51bGw7XG52YXIgaXNGbHVzaGluZ1N5bmNRdWV1ZSA9IGZhbHNlO1xudmFyIGluaXRpYWxUaW1lTXMkMSA9IFNjaGVkdWxlcl9ub3ckMSgpOyAvLyBJZiB0aGUgaW5pdGlhbCB0aW1lc3RhbXAgaXMgcmVhc29uYWJseSBzbWFsbCwgdXNlIFNjaGVkdWxlcidzIGBub3dgIGRpcmVjdGx5LlxuLy8gVGhpcyB3aWxsIGJlIHRoZSBjYXNlIGZvciBtb2Rlcm4gYnJvd3NlcnMgdGhhdCBzdXBwb3J0IGBwZXJmb3JtYW5jZS5ub3dgLiBJblxuLy8gb2xkZXIgYnJvd3NlcnMsIFNjaGVkdWxlciBmYWxscyBiYWNrIHRvIGBEYXRlLm5vd2AsIHdoaWNoIHJldHVybnMgYSBVbml4XG4vLyB0aW1lc3RhbXAuIEluIHRoYXQgY2FzZSwgc3VidHJhY3QgdGhlIG1vZHVsZSBpbml0aWFsaXphdGlvbiB0aW1lIHRvIHNpbXVsYXRlXG4vLyB0aGUgYmVoYXZpb3Igb2YgcGVyZm9ybWFuY2Uubm93IGFuZCBrZWVwIG91ciB0aW1lcyBzbWFsbCBlbm91Z2ggdG8gZml0XG4vLyB3aXRoaW4gMzIgYml0cy5cbi8vIFRPRE86IENvbnNpZGVyIGxpZnRpbmcgdGhpcyBpbnRvIFNjaGVkdWxlci5cblxudmFyIG5vdyA9IGluaXRpYWxUaW1lTXMkMSA8IDEwMDAwID8gU2NoZWR1bGVyX25vdyQxIDogZnVuY3Rpb24gKCkge1xuICByZXR1cm4gU2NoZWR1bGVyX25vdyQxKCkgLSBpbml0aWFsVGltZU1zJDE7XG59O1xuZnVuY3Rpb24gZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWwoKSB7XG4gIHN3aXRjaCAoU2NoZWR1bGVyX2dldEN1cnJlbnRQcmlvcml0eUxldmVsKCkpIHtcbiAgICBjYXNlIFNjaGVkdWxlcl9JbW1lZGlhdGVQcmlvcml0eTpcbiAgICAgIHJldHVybiBJbW1lZGlhdGVQcmlvcml0eSQxO1xuXG4gICAgY2FzZSBTY2hlZHVsZXJfVXNlckJsb2NraW5nUHJpb3JpdHk6XG4gICAgICByZXR1cm4gVXNlckJsb2NraW5nUHJpb3JpdHkkMjtcblxuICAgIGNhc2UgU2NoZWR1bGVyX05vcm1hbFByaW9yaXR5OlxuICAgICAgcmV0dXJuIE5vcm1hbFByaW9yaXR5JDE7XG5cbiAgICBjYXNlIFNjaGVkdWxlcl9Mb3dQcmlvcml0eTpcbiAgICAgIHJldHVybiBMb3dQcmlvcml0eSQxO1xuXG4gICAgY2FzZSBTY2hlZHVsZXJfSWRsZVByaW9yaXR5OlxuICAgICAgcmV0dXJuIElkbGVQcmlvcml0eSQxO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIHtcbiAgICAgICAge1xuICAgICAgICAgIHRocm93IEVycm9yKCBcIlVua25vd24gcHJpb3JpdHkgbGV2ZWwuXCIgKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gIH1cbn1cblxuZnVuY3Rpb24gcmVhY3RQcmlvcml0eVRvU2NoZWR1bGVyUHJpb3JpdHkocmVhY3RQcmlvcml0eUxldmVsKSB7XG4gIHN3aXRjaCAocmVhY3RQcmlvcml0eUxldmVsKSB7XG4gICAgY2FzZSBJbW1lZGlhdGVQcmlvcml0eSQxOlxuICAgICAgcmV0dXJuIFNjaGVkdWxlcl9JbW1lZGlhdGVQcmlvcml0eTtcblxuICAgIGNhc2UgVXNlckJsb2NraW5nUHJpb3JpdHkkMjpcbiAgICAgIHJldHVybiBTY2hlZHVsZXJfVXNlckJsb2NraW5nUHJpb3JpdHk7XG5cbiAgICBjYXNlIE5vcm1hbFByaW9yaXR5JDE6XG4gICAgICByZXR1cm4gU2NoZWR1bGVyX05vcm1hbFByaW9yaXR5O1xuXG4gICAgY2FzZSBMb3dQcmlvcml0eSQxOlxuICAgICAgcmV0dXJuIFNjaGVkdWxlcl9Mb3dQcmlvcml0eTtcblxuICAgIGNhc2UgSWRsZVByaW9yaXR5JDE6XG4gICAgICByZXR1cm4gU2NoZWR1bGVyX0lkbGVQcmlvcml0eTtcblxuICAgIGRlZmF1bHQ6XG4gICAgICB7XG4gICAgICAgIHtcbiAgICAgICAgICB0aHJvdyBFcnJvciggXCJVbmtub3duIHByaW9yaXR5IGxldmVsLlwiICk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICB9XG59XG5cbmZ1bmN0aW9uIHJ1bldpdGhQcmlvcml0eSQxKHJlYWN0UHJpb3JpdHlMZXZlbCwgZm4pIHtcbiAgdmFyIHByaW9yaXR5TGV2ZWwgPSByZWFjdFByaW9yaXR5VG9TY2hlZHVsZXJQcmlvcml0eShyZWFjdFByaW9yaXR5TGV2ZWwpO1xuICByZXR1cm4gU2NoZWR1bGVyX3J1bldpdGhQcmlvcml0eShwcmlvcml0eUxldmVsLCBmbik7XG59XG5mdW5jdGlvbiBzY2hlZHVsZUNhbGxiYWNrKHJlYWN0UHJpb3JpdHlMZXZlbCwgY2FsbGJhY2ssIG9wdGlvbnMpIHtcbiAgdmFyIHByaW9yaXR5TGV2ZWwgPSByZWFjdFByaW9yaXR5VG9TY2hlZHVsZXJQcmlvcml0eShyZWFjdFByaW9yaXR5TGV2ZWwpO1xuICByZXR1cm4gU2NoZWR1bGVyX3NjaGVkdWxlQ2FsbGJhY2socHJpb3JpdHlMZXZlbCwgY2FsbGJhY2ssIG9wdGlvbnMpO1xufVxuZnVuY3Rpb24gc2NoZWR1bGVTeW5jQ2FsbGJhY2soY2FsbGJhY2spIHtcbiAgLy8gUHVzaCB0aGlzIGNhbGxiYWNrIGludG8gYW4gaW50ZXJuYWwgcXVldWUuIFdlJ2xsIGZsdXNoIHRoZXNlIGVpdGhlciBpblxuICAvLyB0aGUgbmV4dCB0aWNrLCBvciBlYXJsaWVyIGlmIHNvbWV0aGluZyBjYWxscyBgZmx1c2hTeW5jQ2FsbGJhY2tRdWV1ZWAuXG4gIGlmIChzeW5jUXVldWUgPT09IG51bGwpIHtcbiAgICBzeW5jUXVldWUgPSBbY2FsbGJhY2tdOyAvLyBGbHVzaCB0aGUgcXVldWUgaW4gdGhlIG5leHQgdGljaywgYXQgdGhlIGVhcmxpZXN0LlxuXG4gICAgaW1tZWRpYXRlUXVldWVDYWxsYmFja05vZGUgPSBTY2hlZHVsZXJfc2NoZWR1bGVDYWxsYmFjayhTY2hlZHVsZXJfSW1tZWRpYXRlUHJpb3JpdHksIGZsdXNoU3luY0NhbGxiYWNrUXVldWVJbXBsKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBQdXNoIG9udG8gZXhpc3RpbmcgcXVldWUuIERvbid0IG5lZWQgdG8gc2NoZWR1bGUgYSBjYWxsYmFjayBiZWNhdXNlXG4gICAgLy8gd2UgYWxyZWFkeSBzY2hlZHVsZWQgb25lIHdoZW4gd2UgY3JlYXRlZCB0aGUgcXVldWUuXG4gICAgc3luY1F1ZXVlLnB1c2goY2FsbGJhY2spO1xuICB9XG5cbiAgcmV0dXJuIGZha2VDYWxsYmFja05vZGU7XG59XG5mdW5jdGlvbiBjYW5jZWxDYWxsYmFjayhjYWxsYmFja05vZGUpIHtcbiAgaWYgKGNhbGxiYWNrTm9kZSAhPT0gZmFrZUNhbGxiYWNrTm9kZSkge1xuICAgIFNjaGVkdWxlcl9jYW5jZWxDYWxsYmFjayhjYWxsYmFja05vZGUpO1xuICB9XG59XG5mdW5jdGlvbiBmbHVzaFN5bmNDYWxsYmFja1F1ZXVlKCkge1xuICBpZiAoaW1tZWRpYXRlUXVldWVDYWxsYmFja05vZGUgIT09IG51bGwpIHtcbiAgICB2YXIgbm9kZSA9IGltbWVkaWF0ZVF1ZXVlQ2FsbGJhY2tOb2RlO1xuICAgIGltbWVkaWF0ZVF1ZXVlQ2FsbGJhY2tOb2RlID0gbnVsbDtcbiAgICBTY2hlZHVsZXJfY2FuY2VsQ2FsbGJhY2sobm9kZSk7XG4gIH1cblxuICBmbHVzaFN5bmNDYWxsYmFja1F1ZXVlSW1wbCgpO1xufVxuXG5mdW5jdGlvbiBmbHVzaFN5bmNDYWxsYmFja1F1ZXVlSW1wbCgpIHtcbiAgaWYgKCFpc0ZsdXNoaW5nU3luY1F1ZXVlICYmIHN5bmNRdWV1ZSAhPT0gbnVsbCkge1xuICAgIC8vIFByZXZlbnQgcmUtZW50cmFuY3kuXG4gICAgaXNGbHVzaGluZ1N5bmNRdWV1ZSA9IHRydWU7XG4gICAgdmFyIGkgPSAwO1xuXG4gICAge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdmFyIF9pc1N5bmMyID0gdHJ1ZTtcbiAgICAgICAgdmFyIF9xdWV1ZSA9IHN5bmNRdWV1ZTtcbiAgICAgICAgcnVuV2l0aFByaW9yaXR5JDEoSW1tZWRpYXRlUHJpb3JpdHkkMSwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGZvciAoOyBpIDwgX3F1ZXVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB2YXIgY2FsbGJhY2sgPSBfcXVldWVbaV07XG5cbiAgICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgICAgY2FsbGJhY2sgPSBjYWxsYmFjayhfaXNTeW5jMik7XG4gICAgICAgICAgICB9IHdoaWxlIChjYWxsYmFjayAhPT0gbnVsbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgc3luY1F1ZXVlID0gbnVsbDtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIC8vIElmIHNvbWV0aGluZyB0aHJvd3MsIGxlYXZlIHRoZSByZW1haW5pbmcgY2FsbGJhY2tzIG9uIHRoZSBxdWV1ZS5cbiAgICAgICAgaWYgKHN5bmNRdWV1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgIHN5bmNRdWV1ZSA9IHN5bmNRdWV1ZS5zbGljZShpICsgMSk7XG4gICAgICAgIH0gLy8gUmVzdW1lIGZsdXNoaW5nIGluIHRoZSBuZXh0IHRpY2tcblxuXG4gICAgICAgIFNjaGVkdWxlcl9zY2hlZHVsZUNhbGxiYWNrKFNjaGVkdWxlcl9JbW1lZGlhdGVQcmlvcml0eSwgZmx1c2hTeW5jQ2FsbGJhY2tRdWV1ZSk7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgaXNGbHVzaGluZ1N5bmNRdWV1ZSA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBUT0RPOiB0aGlzIGlzIHNwZWNpYWwgYmVjYXVzZSBpdCBnZXRzIGltcG9ydGVkIGR1cmluZyBidWlsZC5cbnZhciBSZWFjdFZlcnNpb24gPSAnMTcuMC4yJztcblxudmFyIE5vTW9kZSA9IDA7XG52YXIgU3RyaWN0TW9kZSA9IDE7IC8vIFRPRE86IFJlbW92ZSBCbG9ja2luZ01vZGUgYW5kIENvbmN1cnJlbnRNb2RlIGJ5IHJlYWRpbmcgZnJvbSB0aGUgcm9vdFxuLy8gdGFnIGluc3RlYWRcblxudmFyIEJsb2NraW5nTW9kZSA9IDI7XG52YXIgQ29uY3VycmVudE1vZGUgPSA0O1xudmFyIFByb2ZpbGVNb2RlID0gODtcbnZhciBEZWJ1Z1RyYWNpbmdNb2RlID0gMTY7XG5cbnZhciBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZyA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0Q3VycmVudEJhdGNoQ29uZmlnO1xudmFyIE5vVHJhbnNpdGlvbiA9IDA7XG5mdW5jdGlvbiByZXF1ZXN0Q3VycmVudFRyYW5zaXRpb24oKSB7XG4gIHJldHVybiBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZy50cmFuc2l0aW9uO1xufVxuXG52YXIgUmVhY3RTdHJpY3RNb2RlV2FybmluZ3MgPSB7XG4gIHJlY29yZFVuc2FmZUxpZmVjeWNsZVdhcm5pbmdzOiBmdW5jdGlvbiAoZmliZXIsIGluc3RhbmNlKSB7fSxcbiAgZmx1c2hQZW5kaW5nVW5zYWZlTGlmZWN5Y2xlV2FybmluZ3M6IGZ1bmN0aW9uICgpIHt9LFxuICByZWNvcmRMZWdhY3lDb250ZXh0V2FybmluZzogZnVuY3Rpb24gKGZpYmVyLCBpbnN0YW5jZSkge30sXG4gIGZsdXNoTGVnYWN5Q29udGV4dFdhcm5pbmc6IGZ1bmN0aW9uICgpIHt9LFxuICBkaXNjYXJkUGVuZGluZ1dhcm5pbmdzOiBmdW5jdGlvbiAoKSB7fVxufTtcblxue1xuICB2YXIgZmluZFN0cmljdFJvb3QgPSBmdW5jdGlvbiAoZmliZXIpIHtcbiAgICB2YXIgbWF5YmVTdHJpY3RSb290ID0gbnVsbDtcbiAgICB2YXIgbm9kZSA9IGZpYmVyO1xuXG4gICAgd2hpbGUgKG5vZGUgIT09IG51bGwpIHtcbiAgICAgIGlmIChub2RlLm1vZGUgJiBTdHJpY3RNb2RlKSB7XG4gICAgICAgIG1heWJlU3RyaWN0Um9vdCA9IG5vZGU7XG4gICAgICB9XG5cbiAgICAgIG5vZGUgPSBub2RlLnJldHVybjtcbiAgICB9XG5cbiAgICByZXR1cm4gbWF5YmVTdHJpY3RSb290O1xuICB9O1xuXG4gIHZhciBzZXRUb1NvcnRlZFN0cmluZyA9IGZ1bmN0aW9uIChzZXQpIHtcbiAgICB2YXIgYXJyYXkgPSBbXTtcbiAgICBzZXQuZm9yRWFjaChmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgIGFycmF5LnB1c2godmFsdWUpO1xuICAgIH0pO1xuICAgIHJldHVybiBhcnJheS5zb3J0KCkuam9pbignLCAnKTtcbiAgfTtcblxuICB2YXIgcGVuZGluZ0NvbXBvbmVudFdpbGxNb3VudFdhcm5pbmdzID0gW107XG4gIHZhciBwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxNb3VudFdhcm5pbmdzID0gW107XG4gIHZhciBwZW5kaW5nQ29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1dhcm5pbmdzID0gW107XG4gIHZhciBwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNXYXJuaW5ncyA9IFtdO1xuICB2YXIgcGVuZGluZ0NvbXBvbmVudFdpbGxVcGRhdGVXYXJuaW5ncyA9IFtdO1xuICB2YXIgcGVuZGluZ1VOU0FGRV9Db21wb25lbnRXaWxsVXBkYXRlV2FybmluZ3MgPSBbXTsgLy8gVHJhY2tzIGNvbXBvbmVudHMgd2UgaGF2ZSBhbHJlYWR5IHdhcm5lZCBhYm91dC5cblxuICB2YXIgZGlkV2FybkFib3V0VW5zYWZlTGlmZWN5Y2xlcyA9IG5ldyBTZXQoKTtcblxuICBSZWFjdFN0cmljdE1vZGVXYXJuaW5ncy5yZWNvcmRVbnNhZmVMaWZlY3ljbGVXYXJuaW5ncyA9IGZ1bmN0aW9uIChmaWJlciwgaW5zdGFuY2UpIHtcbiAgICAvLyBEZWR1cCBzdHJhdGVneTogV2FybiBvbmNlIHBlciBjb21wb25lbnQuXG4gICAgaWYgKGRpZFdhcm5BYm91dFVuc2FmZUxpZmVjeWNsZXMuaGFzKGZpYmVyLnR5cGUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnRXaWxsTW91bnQgPT09ICdmdW5jdGlvbicgJiYgLy8gRG9uJ3Qgd2FybiBhYm91dCByZWFjdC1saWZlY3ljbGVzLWNvbXBhdCBwb2x5ZmlsbGVkIGNvbXBvbmVudHMuXG4gICAgaW5zdGFuY2UuY29tcG9uZW50V2lsbE1vdW50Ll9fc3VwcHJlc3NEZXByZWNhdGlvbldhcm5pbmcgIT09IHRydWUpIHtcbiAgICAgIHBlbmRpbmdDb21wb25lbnRXaWxsTW91bnRXYXJuaW5ncy5wdXNoKGZpYmVyKTtcbiAgICB9XG5cbiAgICBpZiAoZmliZXIubW9kZSAmIFN0cmljdE1vZGUgJiYgdHlwZW9mIGluc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbE1vdW50V2FybmluZ3MucHVzaChmaWJlcik7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzID09PSAnZnVuY3Rpb24nICYmIGluc3RhbmNlLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMuX19zdXBwcmVzc0RlcHJlY2F0aW9uV2FybmluZyAhPT0gdHJ1ZSkge1xuICAgICAgcGVuZGluZ0NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNXYXJuaW5ncy5wdXNoKGZpYmVyKTtcbiAgICB9XG5cbiAgICBpZiAoZmliZXIubW9kZSAmIFN0cmljdE1vZGUgJiYgdHlwZW9mIGluc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNXYXJuaW5ncy5wdXNoKGZpYmVyKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudFdpbGxVcGRhdGUgPT09ICdmdW5jdGlvbicgJiYgaW5zdGFuY2UuY29tcG9uZW50V2lsbFVwZGF0ZS5fX3N1cHByZXNzRGVwcmVjYXRpb25XYXJuaW5nICE9PSB0cnVlKSB7XG4gICAgICBwZW5kaW5nQ29tcG9uZW50V2lsbFVwZGF0ZVdhcm5pbmdzLnB1c2goZmliZXIpO1xuICAgIH1cblxuICAgIGlmIChmaWJlci5tb2RlICYgU3RyaWN0TW9kZSAmJiB0eXBlb2YgaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbFVwZGF0ZVdhcm5pbmdzLnB1c2goZmliZXIpO1xuICAgIH1cbiAgfTtcblxuICBSZWFjdFN0cmljdE1vZGVXYXJuaW5ncy5mbHVzaFBlbmRpbmdVbnNhZmVMaWZlY3ljbGVXYXJuaW5ncyA9IGZ1bmN0aW9uICgpIHtcbiAgICAvLyBXZSBkbyBhbiBpbml0aWFsIHBhc3MgdG8gZ2F0aGVyIGNvbXBvbmVudCBuYW1lc1xuICAgIHZhciBjb21wb25lbnRXaWxsTW91bnRVbmlxdWVOYW1lcyA9IG5ldyBTZXQoKTtcblxuICAgIGlmIChwZW5kaW5nQ29tcG9uZW50V2lsbE1vdW50V2FybmluZ3MubGVuZ3RoID4gMCkge1xuICAgICAgcGVuZGluZ0NvbXBvbmVudFdpbGxNb3VudFdhcm5pbmdzLmZvckVhY2goZnVuY3Rpb24gKGZpYmVyKSB7XG4gICAgICAgIGNvbXBvbmVudFdpbGxNb3VudFVuaXF1ZU5hbWVzLmFkZChnZXRDb21wb25lbnROYW1lKGZpYmVyLnR5cGUpIHx8ICdDb21wb25lbnQnKTtcbiAgICAgICAgZGlkV2FybkFib3V0VW5zYWZlTGlmZWN5Y2xlcy5hZGQoZmliZXIudHlwZSk7XG4gICAgICB9KTtcbiAgICAgIHBlbmRpbmdDb21wb25lbnRXaWxsTW91bnRXYXJuaW5ncyA9IFtdO1xuICAgIH1cblxuICAgIHZhciBVTlNBRkVfY29tcG9uZW50V2lsbE1vdW50VW5pcXVlTmFtZXMgPSBuZXcgU2V0KCk7XG5cbiAgICBpZiAocGVuZGluZ1VOU0FGRV9Db21wb25lbnRXaWxsTW91bnRXYXJuaW5ncy5sZW5ndGggPiAwKSB7XG4gICAgICBwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxNb3VudFdhcm5pbmdzLmZvckVhY2goZnVuY3Rpb24gKGZpYmVyKSB7XG4gICAgICAgIFVOU0FGRV9jb21wb25lbnRXaWxsTW91bnRVbmlxdWVOYW1lcy5hZGQoZ2V0Q29tcG9uZW50TmFtZShmaWJlci50eXBlKSB8fCAnQ29tcG9uZW50Jyk7XG4gICAgICAgIGRpZFdhcm5BYm91dFVuc2FmZUxpZmVjeWNsZXMuYWRkKGZpYmVyLnR5cGUpO1xuICAgICAgfSk7XG4gICAgICBwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxNb3VudFdhcm5pbmdzID0gW107XG4gICAgfVxuXG4gICAgdmFyIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNVbmlxdWVOYW1lcyA9IG5ldyBTZXQoKTtcblxuICAgIGlmIChwZW5kaW5nQ29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1dhcm5pbmdzLmxlbmd0aCA+IDApIHtcbiAgICAgIHBlbmRpbmdDb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzV2FybmluZ3MuZm9yRWFjaChmdW5jdGlvbiAoZmliZXIpIHtcbiAgICAgICAgY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1VuaXF1ZU5hbWVzLmFkZChnZXRDb21wb25lbnROYW1lKGZpYmVyLnR5cGUpIHx8ICdDb21wb25lbnQnKTtcbiAgICAgICAgZGlkV2FybkFib3V0VW5zYWZlTGlmZWN5Y2xlcy5hZGQoZmliZXIudHlwZSk7XG4gICAgICB9KTtcbiAgICAgIHBlbmRpbmdDb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzV2FybmluZ3MgPSBbXTtcbiAgICB9XG5cbiAgICB2YXIgVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNVbmlxdWVOYW1lcyA9IG5ldyBTZXQoKTtcblxuICAgIGlmIChwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNXYXJuaW5ncy5sZW5ndGggPiAwKSB7XG4gICAgICBwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNXYXJuaW5ncy5mb3JFYWNoKGZ1bmN0aW9uIChmaWJlcikge1xuICAgICAgICBVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1VuaXF1ZU5hbWVzLmFkZChnZXRDb21wb25lbnROYW1lKGZpYmVyLnR5cGUpIHx8ICdDb21wb25lbnQnKTtcbiAgICAgICAgZGlkV2FybkFib3V0VW5zYWZlTGlmZWN5Y2xlcy5hZGQoZmliZXIudHlwZSk7XG4gICAgICB9KTtcbiAgICAgIHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1dhcm5pbmdzID0gW107XG4gICAgfVxuXG4gICAgdmFyIGNvbXBvbmVudFdpbGxVcGRhdGVVbmlxdWVOYW1lcyA9IG5ldyBTZXQoKTtcblxuICAgIGlmIChwZW5kaW5nQ29tcG9uZW50V2lsbFVwZGF0ZVdhcm5pbmdzLmxlbmd0aCA+IDApIHtcbiAgICAgIHBlbmRpbmdDb21wb25lbnRXaWxsVXBkYXRlV2FybmluZ3MuZm9yRWFjaChmdW5jdGlvbiAoZmliZXIpIHtcbiAgICAgICAgY29tcG9uZW50V2lsbFVwZGF0ZVVuaXF1ZU5hbWVzLmFkZChnZXRDb21wb25lbnROYW1lKGZpYmVyLnR5cGUpIHx8ICdDb21wb25lbnQnKTtcbiAgICAgICAgZGlkV2FybkFib3V0VW5zYWZlTGlmZWN5Y2xlcy5hZGQoZmliZXIudHlwZSk7XG4gICAgICB9KTtcbiAgICAgIHBlbmRpbmdDb21wb25lbnRXaWxsVXBkYXRlV2FybmluZ3MgPSBbXTtcbiAgICB9XG5cbiAgICB2YXIgVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGVVbmlxdWVOYW1lcyA9IG5ldyBTZXQoKTtcblxuICAgIGlmIChwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxVcGRhdGVXYXJuaW5ncy5sZW5ndGggPiAwKSB7XG4gICAgICBwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxVcGRhdGVXYXJuaW5ncy5mb3JFYWNoKGZ1bmN0aW9uIChmaWJlcikge1xuICAgICAgICBVTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZVVuaXF1ZU5hbWVzLmFkZChnZXRDb21wb25lbnROYW1lKGZpYmVyLnR5cGUpIHx8ICdDb21wb25lbnQnKTtcbiAgICAgICAgZGlkV2FybkFib3V0VW5zYWZlTGlmZWN5Y2xlcy5hZGQoZmliZXIudHlwZSk7XG4gICAgICB9KTtcbiAgICAgIHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbFVwZGF0ZVdhcm5pbmdzID0gW107XG4gICAgfSAvLyBGaW5hbGx5LCB3ZSBmbHVzaCBhbGwgdGhlIHdhcm5pbmdzXG4gICAgLy8gVU5TQUZFXyBvbmVzIGJlZm9yZSB0aGUgZGVwcmVjYXRlZCBvbmVzLCBzaW5jZSB0aGV5J2xsIGJlICdsb3VkZXInXG5cblxuICAgIGlmIChVTlNBRkVfY29tcG9uZW50V2lsbE1vdW50VW5pcXVlTmFtZXMuc2l6ZSA+IDApIHtcbiAgICAgIHZhciBzb3J0ZWROYW1lcyA9IHNldFRvU29ydGVkU3RyaW5nKFVOU0FGRV9jb21wb25lbnRXaWxsTW91bnRVbmlxdWVOYW1lcyk7XG5cbiAgICAgIGVycm9yKCdVc2luZyBVTlNBRkVfY29tcG9uZW50V2lsbE1vdW50IGluIHN0cmljdCBtb2RlIGlzIG5vdCByZWNvbW1lbmRlZCBhbmQgbWF5IGluZGljYXRlIGJ1Z3MgaW4geW91ciBjb2RlLiAnICsgJ1NlZSBodHRwczovL3JlYWN0anMub3JnL2xpbmsvdW5zYWZlLWNvbXBvbmVudC1saWZlY3ljbGVzIGZvciBkZXRhaWxzLlxcblxcbicgKyAnKiBNb3ZlIGNvZGUgd2l0aCBzaWRlIGVmZmVjdHMgdG8gY29tcG9uZW50RGlkTW91bnQsIGFuZCBzZXQgaW5pdGlhbCBzdGF0ZSBpbiB0aGUgY29uc3RydWN0b3IuXFxuJyArICdcXG5QbGVhc2UgdXBkYXRlIHRoZSBmb2xsb3dpbmcgY29tcG9uZW50czogJXMnLCBzb3J0ZWROYW1lcyk7XG4gICAgfVxuXG4gICAgaWYgKFVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzVW5pcXVlTmFtZXMuc2l6ZSA+IDApIHtcbiAgICAgIHZhciBfc29ydGVkTmFtZXMgPSBzZXRUb1NvcnRlZFN0cmluZyhVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1VuaXF1ZU5hbWVzKTtcblxuICAgICAgZXJyb3IoJ1VzaW5nIFVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzIGluIHN0cmljdCBtb2RlIGlzIG5vdCByZWNvbW1lbmRlZCAnICsgJ2FuZCBtYXkgaW5kaWNhdGUgYnVncyBpbiB5b3VyIGNvZGUuICcgKyAnU2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay91bnNhZmUtY29tcG9uZW50LWxpZmVjeWNsZXMgZm9yIGRldGFpbHMuXFxuXFxuJyArICcqIE1vdmUgZGF0YSBmZXRjaGluZyBjb2RlIG9yIHNpZGUgZWZmZWN0cyB0byBjb21wb25lbnREaWRVcGRhdGUuXFxuJyArIFwiKiBJZiB5b3UncmUgdXBkYXRpbmcgc3RhdGUgd2hlbmV2ZXIgcHJvcHMgY2hhbmdlLCBcIiArICdyZWZhY3RvciB5b3VyIGNvZGUgdG8gdXNlIG1lbW9pemF0aW9uIHRlY2huaXF1ZXMgb3IgbW92ZSBpdCB0byAnICsgJ3N0YXRpYyBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMuIExlYXJuIG1vcmUgYXQ6IGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9kZXJpdmVkLXN0YXRlXFxuJyArICdcXG5QbGVhc2UgdXBkYXRlIHRoZSBmb2xsb3dpbmcgY29tcG9uZW50czogJXMnLCBfc29ydGVkTmFtZXMpO1xuICAgIH1cblxuICAgIGlmIChVTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZVVuaXF1ZU5hbWVzLnNpemUgPiAwKSB7XG4gICAgICB2YXIgX3NvcnRlZE5hbWVzMiA9IHNldFRvU29ydGVkU3RyaW5nKFVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlVW5pcXVlTmFtZXMpO1xuXG4gICAgICBlcnJvcignVXNpbmcgVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUgaW4gc3RyaWN0IG1vZGUgaXMgbm90IHJlY29tbWVuZGVkICcgKyAnYW5kIG1heSBpbmRpY2F0ZSBidWdzIGluIHlvdXIgY29kZS4gJyArICdTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3Vuc2FmZS1jb21wb25lbnQtbGlmZWN5Y2xlcyBmb3IgZGV0YWlscy5cXG5cXG4nICsgJyogTW92ZSBkYXRhIGZldGNoaW5nIGNvZGUgb3Igc2lkZSBlZmZlY3RzIHRvIGNvbXBvbmVudERpZFVwZGF0ZS5cXG4nICsgJ1xcblBsZWFzZSB1cGRhdGUgdGhlIGZvbGxvd2luZyBjb21wb25lbnRzOiAlcycsIF9zb3J0ZWROYW1lczIpO1xuICAgIH1cblxuICAgIGlmIChjb21wb25lbnRXaWxsTW91bnRVbmlxdWVOYW1lcy5zaXplID4gMCkge1xuICAgICAgdmFyIF9zb3J0ZWROYW1lczMgPSBzZXRUb1NvcnRlZFN0cmluZyhjb21wb25lbnRXaWxsTW91bnRVbmlxdWVOYW1lcyk7XG5cbiAgICAgIHdhcm4oJ2NvbXBvbmVudFdpbGxNb3VudCBoYXMgYmVlbiByZW5hbWVkLCBhbmQgaXMgbm90IHJlY29tbWVuZGVkIGZvciB1c2UuICcgKyAnU2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay91bnNhZmUtY29tcG9uZW50LWxpZmVjeWNsZXMgZm9yIGRldGFpbHMuXFxuXFxuJyArICcqIE1vdmUgY29kZSB3aXRoIHNpZGUgZWZmZWN0cyB0byBjb21wb25lbnREaWRNb3VudCwgYW5kIHNldCBpbml0aWFsIHN0YXRlIGluIHRoZSBjb25zdHJ1Y3Rvci5cXG4nICsgJyogUmVuYW1lIGNvbXBvbmVudFdpbGxNb3VudCB0byBVTlNBRkVfY29tcG9uZW50V2lsbE1vdW50IHRvIHN1cHByZXNzICcgKyAndGhpcyB3YXJuaW5nIGluIG5vbi1zdHJpY3QgbW9kZS4gSW4gUmVhY3QgMTgueCwgb25seSB0aGUgVU5TQUZFXyBuYW1lIHdpbGwgd29yay4gJyArICdUbyByZW5hbWUgYWxsIGRlcHJlY2F0ZWQgbGlmZWN5Y2xlcyB0byB0aGVpciBuZXcgbmFtZXMsIHlvdSBjYW4gcnVuICcgKyAnYG5weCByZWFjdC1jb2RlbW9kIHJlbmFtZS11bnNhZmUtbGlmZWN5Y2xlc2AgaW4geW91ciBwcm9qZWN0IHNvdXJjZSBmb2xkZXIuXFxuJyArICdcXG5QbGVhc2UgdXBkYXRlIHRoZSBmb2xsb3dpbmcgY29tcG9uZW50czogJXMnLCBfc29ydGVkTmFtZXMzKTtcbiAgICB9XG5cbiAgICBpZiAoY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1VuaXF1ZU5hbWVzLnNpemUgPiAwKSB7XG4gICAgICB2YXIgX3NvcnRlZE5hbWVzNCA9IHNldFRvU29ydGVkU3RyaW5nKGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNVbmlxdWVOYW1lcyk7XG5cbiAgICAgIHdhcm4oJ2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgaGFzIGJlZW4gcmVuYW1lZCwgYW5kIGlzIG5vdCByZWNvbW1lbmRlZCBmb3IgdXNlLiAnICsgJ1NlZSBodHRwczovL3JlYWN0anMub3JnL2xpbmsvdW5zYWZlLWNvbXBvbmVudC1saWZlY3ljbGVzIGZvciBkZXRhaWxzLlxcblxcbicgKyAnKiBNb3ZlIGRhdGEgZmV0Y2hpbmcgY29kZSBvciBzaWRlIGVmZmVjdHMgdG8gY29tcG9uZW50RGlkVXBkYXRlLlxcbicgKyBcIiogSWYgeW91J3JlIHVwZGF0aW5nIHN0YXRlIHdoZW5ldmVyIHByb3BzIGNoYW5nZSwgcmVmYWN0b3IgeW91ciBcIiArICdjb2RlIHRvIHVzZSBtZW1vaXphdGlvbiB0ZWNobmlxdWVzIG9yIG1vdmUgaXQgdG8gJyArICdzdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzLiBMZWFybiBtb3JlIGF0OiBodHRwczovL3JlYWN0anMub3JnL2xpbmsvZGVyaXZlZC1zdGF0ZVxcbicgKyAnKiBSZW5hbWUgY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyB0byBVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyB0byBzdXBwcmVzcyAnICsgJ3RoaXMgd2FybmluZyBpbiBub24tc3RyaWN0IG1vZGUuIEluIFJlYWN0IDE4LngsIG9ubHkgdGhlIFVOU0FGRV8gbmFtZSB3aWxsIHdvcmsuICcgKyAnVG8gcmVuYW1lIGFsbCBkZXByZWNhdGVkIGxpZmVjeWNsZXMgdG8gdGhlaXIgbmV3IG5hbWVzLCB5b3UgY2FuIHJ1biAnICsgJ2BucHggcmVhY3QtY29kZW1vZCByZW5hbWUtdW5zYWZlLWxpZmVjeWNsZXNgIGluIHlvdXIgcHJvamVjdCBzb3VyY2UgZm9sZGVyLlxcbicgKyAnXFxuUGxlYXNlIHVwZGF0ZSB0aGUgZm9sbG93aW5nIGNvbXBvbmVudHM6ICVzJywgX3NvcnRlZE5hbWVzNCk7XG4gICAgfVxuXG4gICAgaWYgKGNvbXBvbmVudFdpbGxVcGRhdGVVbmlxdWVOYW1lcy5zaXplID4gMCkge1xuICAgICAgdmFyIF9zb3J0ZWROYW1lczUgPSBzZXRUb1NvcnRlZFN0cmluZyhjb21wb25lbnRXaWxsVXBkYXRlVW5pcXVlTmFtZXMpO1xuXG4gICAgICB3YXJuKCdjb21wb25lbnRXaWxsVXBkYXRlIGhhcyBiZWVuIHJlbmFtZWQsIGFuZCBpcyBub3QgcmVjb21tZW5kZWQgZm9yIHVzZS4gJyArICdTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3Vuc2FmZS1jb21wb25lbnQtbGlmZWN5Y2xlcyBmb3IgZGV0YWlscy5cXG5cXG4nICsgJyogTW92ZSBkYXRhIGZldGNoaW5nIGNvZGUgb3Igc2lkZSBlZmZlY3RzIHRvIGNvbXBvbmVudERpZFVwZGF0ZS5cXG4nICsgJyogUmVuYW1lIGNvbXBvbmVudFdpbGxVcGRhdGUgdG8gVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUgdG8gc3VwcHJlc3MgJyArICd0aGlzIHdhcm5pbmcgaW4gbm9uLXN0cmljdCBtb2RlLiBJbiBSZWFjdCAxOC54LCBvbmx5IHRoZSBVTlNBRkVfIG5hbWUgd2lsbCB3b3JrLiAnICsgJ1RvIHJlbmFtZSBhbGwgZGVwcmVjYXRlZCBsaWZlY3ljbGVzIHRvIHRoZWlyIG5ldyBuYW1lcywgeW91IGNhbiBydW4gJyArICdgbnB4IHJlYWN0LWNvZGVtb2QgcmVuYW1lLXVuc2FmZS1saWZlY3ljbGVzYCBpbiB5b3VyIHByb2plY3Qgc291cmNlIGZvbGRlci5cXG4nICsgJ1xcblBsZWFzZSB1cGRhdGUgdGhlIGZvbGxvd2luZyBjb21wb25lbnRzOiAlcycsIF9zb3J0ZWROYW1lczUpO1xuICAgIH1cbiAgfTtcblxuICB2YXIgcGVuZGluZ0xlZ2FjeUNvbnRleHRXYXJuaW5nID0gbmV3IE1hcCgpOyAvLyBUcmFja3MgY29tcG9uZW50cyB3ZSBoYXZlIGFscmVhZHkgd2FybmVkIGFib3V0LlxuXG4gIHZhciBkaWRXYXJuQWJvdXRMZWdhY3lDb250ZXh0ID0gbmV3IFNldCgpO1xuXG4gIFJlYWN0U3RyaWN0TW9kZVdhcm5pbmdzLnJlY29yZExlZ2FjeUNvbnRleHRXYXJuaW5nID0gZnVuY3Rpb24gKGZpYmVyLCBpbnN0YW5jZSkge1xuICAgIHZhciBzdHJpY3RSb290ID0gZmluZFN0cmljdFJvb3QoZmliZXIpO1xuXG4gICAgaWYgKHN0cmljdFJvb3QgPT09IG51bGwpIHtcbiAgICAgIGVycm9yKCdFeHBlY3RlZCB0byBmaW5kIGEgU3RyaWN0TW9kZSBjb21wb25lbnQgaW4gYSBzdHJpY3QgbW9kZSB0cmVlLiAnICsgJ1RoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJyk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9IC8vIERlZHVwIHN0cmF0ZWd5OiBXYXJuIG9uY2UgcGVyIGNvbXBvbmVudC5cblxuXG4gICAgaWYgKGRpZFdhcm5BYm91dExlZ2FjeUNvbnRleHQuaGFzKGZpYmVyLnR5cGUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIHdhcm5pbmdzRm9yUm9vdCA9IHBlbmRpbmdMZWdhY3lDb250ZXh0V2FybmluZy5nZXQoc3RyaWN0Um9vdCk7XG5cbiAgICBpZiAoZmliZXIudHlwZS5jb250ZXh0VHlwZXMgIT0gbnVsbCB8fCBmaWJlci50eXBlLmNoaWxkQ29udGV4dFR5cGVzICE9IG51bGwgfHwgaW5zdGFuY2UgIT09IG51bGwgJiYgdHlwZW9mIGluc3RhbmNlLmdldENoaWxkQ29udGV4dCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgaWYgKHdhcm5pbmdzRm9yUm9vdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHdhcm5pbmdzRm9yUm9vdCA9IFtdO1xuICAgICAgICBwZW5kaW5nTGVnYWN5Q29udGV4dFdhcm5pbmcuc2V0KHN0cmljdFJvb3QsIHdhcm5pbmdzRm9yUm9vdCk7XG4gICAgICB9XG5cbiAgICAgIHdhcm5pbmdzRm9yUm9vdC5wdXNoKGZpYmVyKTtcbiAgICB9XG4gIH07XG5cbiAgUmVhY3RTdHJpY3RNb2RlV2FybmluZ3MuZmx1c2hMZWdhY3lDb250ZXh0V2FybmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICBwZW5kaW5nTGVnYWN5Q29udGV4dFdhcm5pbmcuZm9yRWFjaChmdW5jdGlvbiAoZmliZXJBcnJheSwgc3RyaWN0Um9vdCkge1xuICAgICAgaWYgKGZpYmVyQXJyYXkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdmFyIGZpcnN0RmliZXIgPSBmaWJlckFycmF5WzBdO1xuICAgICAgdmFyIHVuaXF1ZU5hbWVzID0gbmV3IFNldCgpO1xuICAgICAgZmliZXJBcnJheS5mb3JFYWNoKGZ1bmN0aW9uIChmaWJlcikge1xuICAgICAgICB1bmlxdWVOYW1lcy5hZGQoZ2V0Q29tcG9uZW50TmFtZShmaWJlci50eXBlKSB8fCAnQ29tcG9uZW50Jyk7XG4gICAgICAgIGRpZFdhcm5BYm91dExlZ2FjeUNvbnRleHQuYWRkKGZpYmVyLnR5cGUpO1xuICAgICAgfSk7XG4gICAgICB2YXIgc29ydGVkTmFtZXMgPSBzZXRUb1NvcnRlZFN0cmluZyh1bmlxdWVOYW1lcyk7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHNldEN1cnJlbnRGaWJlcihmaXJzdEZpYmVyKTtcblxuICAgICAgICBlcnJvcignTGVnYWN5IGNvbnRleHQgQVBJIGhhcyBiZWVuIGRldGVjdGVkIHdpdGhpbiBhIHN0cmljdC1tb2RlIHRyZWUuJyArICdcXG5cXG5UaGUgb2xkIEFQSSB3aWxsIGJlIHN1cHBvcnRlZCBpbiBhbGwgMTYueCByZWxlYXNlcywgYnV0IGFwcGxpY2F0aW9ucyAnICsgJ3VzaW5nIGl0IHNob3VsZCBtaWdyYXRlIHRvIHRoZSBuZXcgdmVyc2lvbi4nICsgJ1xcblxcblBsZWFzZSB1cGRhdGUgdGhlIGZvbGxvd2luZyBjb21wb25lbnRzOiAlcycgKyAnXFxuXFxuTGVhcm4gbW9yZSBhYm91dCB0aGlzIHdhcm5pbmcgaGVyZTogaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL2xlZ2FjeS1jb250ZXh0Jywgc29ydGVkTmFtZXMpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgcmVzZXRDdXJyZW50RmliZXIoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcblxuICBSZWFjdFN0cmljdE1vZGVXYXJuaW5ncy5kaXNjYXJkUGVuZGluZ1dhcm5pbmdzID0gZnVuY3Rpb24gKCkge1xuICAgIHBlbmRpbmdDb21wb25lbnRXaWxsTW91bnRXYXJuaW5ncyA9IFtdO1xuICAgIHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbE1vdW50V2FybmluZ3MgPSBbXTtcbiAgICBwZW5kaW5nQ29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1dhcm5pbmdzID0gW107XG4gICAgcGVuZGluZ1VOU0FGRV9Db21wb25lbnRXaWxsUmVjZWl2ZVByb3BzV2FybmluZ3MgPSBbXTtcbiAgICBwZW5kaW5nQ29tcG9uZW50V2lsbFVwZGF0ZVdhcm5pbmdzID0gW107XG4gICAgcGVuZGluZ1VOU0FGRV9Db21wb25lbnRXaWxsVXBkYXRlV2FybmluZ3MgPSBbXTtcbiAgICBwZW5kaW5nTGVnYWN5Q29udGV4dFdhcm5pbmcgPSBuZXcgTWFwKCk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIHJlc29sdmVEZWZhdWx0UHJvcHMoQ29tcG9uZW50LCBiYXNlUHJvcHMpIHtcbiAgaWYgKENvbXBvbmVudCAmJiBDb21wb25lbnQuZGVmYXVsdFByb3BzKSB7XG4gICAgLy8gUmVzb2x2ZSBkZWZhdWx0IHByb3BzLiBUYWtlbiBmcm9tIFJlYWN0RWxlbWVudFxuICAgIHZhciBwcm9wcyA9IF9hc3NpZ24oe30sIGJhc2VQcm9wcyk7XG5cbiAgICB2YXIgZGVmYXVsdFByb3BzID0gQ29tcG9uZW50LmRlZmF1bHRQcm9wcztcblxuICAgIGZvciAodmFyIHByb3BOYW1lIGluIGRlZmF1bHRQcm9wcykge1xuICAgICAgaWYgKHByb3BzW3Byb3BOYW1lXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHByb3BzW3Byb3BOYW1lXSA9IGRlZmF1bHRQcm9wc1twcm9wTmFtZV07XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHByb3BzO1xuICB9XG5cbiAgcmV0dXJuIGJhc2VQcm9wcztcbn1cblxuLy8gTWF4IDMxIGJpdCBpbnRlZ2VyLiBUaGUgbWF4IGludGVnZXIgc2l6ZSBpbiBWOCBmb3IgMzItYml0IHN5c3RlbXMuXG4vLyBNYXRoLnBvdygyLCAzMCkgLSAxXG4vLyAwYjExMTExMTExMTExMTExMTExMTExMTExMTExMTExMVxudmFyIE1BWF9TSUdORURfMzFfQklUX0lOVCA9IDEwNzM3NDE4MjM7XG5cbnZhciB2YWx1ZUN1cnNvciA9IGNyZWF0ZUN1cnNvcihudWxsKTtcbnZhciByZW5kZXJlclNpZ2lsO1xuXG57XG4gIC8vIFVzZSB0aGlzIHRvIGRldGVjdCBtdWx0aXBsZSByZW5kZXJlcnMgdXNpbmcgdGhlIHNhbWUgY29udGV4dFxuICByZW5kZXJlclNpZ2lsID0ge307XG59XG5cbnZhciBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciA9IG51bGw7XG52YXIgbGFzdENvbnRleHREZXBlbmRlbmN5ID0gbnVsbDtcbnZhciBsYXN0Q29udGV4dFdpdGhBbGxCaXRzT2JzZXJ2ZWQgPSBudWxsO1xudmFyIGlzRGlzYWxsb3dlZENvbnRleHRSZWFkSW5ERVYgPSBmYWxzZTtcbmZ1bmN0aW9uIHJlc2V0Q29udGV4dERlcGVuZGVuY2llcygpIHtcbiAgLy8gVGhpcyBpcyBjYWxsZWQgcmlnaHQgYmVmb3JlIFJlYWN0IHlpZWxkcyBleGVjdXRpb24sIHRvIGVuc3VyZSBgcmVhZENvbnRleHRgXG4gIC8vIGNhbm5vdCBiZSBjYWxsZWQgb3V0c2lkZSB0aGUgcmVuZGVyIHBoYXNlLlxuICBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciA9IG51bGw7XG4gIGxhc3RDb250ZXh0RGVwZW5kZW5jeSA9IG51bGw7XG4gIGxhc3RDb250ZXh0V2l0aEFsbEJpdHNPYnNlcnZlZCA9IG51bGw7XG5cbiAge1xuICAgIGlzRGlzYWxsb3dlZENvbnRleHRSZWFkSW5ERVYgPSBmYWxzZTtcbiAgfVxufVxuZnVuY3Rpb24gZW50ZXJEaXNhbGxvd2VkQ29udGV4dFJlYWRJbkRFVigpIHtcbiAge1xuICAgIGlzRGlzYWxsb3dlZENvbnRleHRSZWFkSW5ERVYgPSB0cnVlO1xuICB9XG59XG5mdW5jdGlvbiBleGl0RGlzYWxsb3dlZENvbnRleHRSZWFkSW5ERVYoKSB7XG4gIHtcbiAgICBpc0Rpc2FsbG93ZWRDb250ZXh0UmVhZEluREVWID0gZmFsc2U7XG4gIH1cbn1cbmZ1bmN0aW9uIHB1c2hQcm92aWRlcihwcm92aWRlckZpYmVyLCBuZXh0VmFsdWUpIHtcbiAgdmFyIGNvbnRleHQgPSBwcm92aWRlckZpYmVyLnR5cGUuX2NvbnRleHQ7XG5cbiAge1xuICAgIHB1c2godmFsdWVDdXJzb3IsIGNvbnRleHQuX2N1cnJlbnRWYWx1ZSwgcHJvdmlkZXJGaWJlcik7XG4gICAgY29udGV4dC5fY3VycmVudFZhbHVlID0gbmV4dFZhbHVlO1xuXG4gICAge1xuICAgICAgaWYgKGNvbnRleHQuX2N1cnJlbnRSZW5kZXJlciAhPT0gdW5kZWZpbmVkICYmIGNvbnRleHQuX2N1cnJlbnRSZW5kZXJlciAhPT0gbnVsbCAmJiBjb250ZXh0Ll9jdXJyZW50UmVuZGVyZXIgIT09IHJlbmRlcmVyU2lnaWwpIHtcbiAgICAgICAgZXJyb3IoJ0RldGVjdGVkIG11bHRpcGxlIHJlbmRlcmVycyBjb25jdXJyZW50bHkgcmVuZGVyaW5nIHRoZSAnICsgJ3NhbWUgY29udGV4dCBwcm92aWRlci4gVGhpcyBpcyBjdXJyZW50bHkgdW5zdXBwb3J0ZWQuJyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnRleHQuX2N1cnJlbnRSZW5kZXJlciA9IHJlbmRlcmVyU2lnaWw7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBwb3BQcm92aWRlcihwcm92aWRlckZpYmVyKSB7XG4gIHZhciBjdXJyZW50VmFsdWUgPSB2YWx1ZUN1cnNvci5jdXJyZW50O1xuICBwb3AodmFsdWVDdXJzb3IsIHByb3ZpZGVyRmliZXIpO1xuICB2YXIgY29udGV4dCA9IHByb3ZpZGVyRmliZXIudHlwZS5fY29udGV4dDtcblxuICB7XG4gICAgY29udGV4dC5fY3VycmVudFZhbHVlID0gY3VycmVudFZhbHVlO1xuICB9XG59XG5mdW5jdGlvbiBjYWxjdWxhdGVDaGFuZ2VkQml0cyhjb250ZXh0LCBuZXdWYWx1ZSwgb2xkVmFsdWUpIHtcbiAgaWYgKG9iamVjdElzKG9sZFZhbHVlLCBuZXdWYWx1ZSkpIHtcbiAgICAvLyBObyBjaGFuZ2VcbiAgICByZXR1cm4gMDtcbiAgfSBlbHNlIHtcbiAgICB2YXIgY2hhbmdlZEJpdHMgPSB0eXBlb2YgY29udGV4dC5fY2FsY3VsYXRlQ2hhbmdlZEJpdHMgPT09ICdmdW5jdGlvbicgPyBjb250ZXh0Ll9jYWxjdWxhdGVDaGFuZ2VkQml0cyhvbGRWYWx1ZSwgbmV3VmFsdWUpIDogTUFYX1NJR05FRF8zMV9CSVRfSU5UO1xuXG4gICAge1xuICAgICAgaWYgKChjaGFuZ2VkQml0cyAmIE1BWF9TSUdORURfMzFfQklUX0lOVCkgIT09IGNoYW5nZWRCaXRzKSB7XG4gICAgICAgIGVycm9yKCdjYWxjdWxhdGVDaGFuZ2VkQml0czogRXhwZWN0ZWQgdGhlIHJldHVybiB2YWx1ZSB0byBiZSBhICcgKyAnMzEtYml0IGludGVnZXIuIEluc3RlYWQgcmVjZWl2ZWQ6ICVzJywgY2hhbmdlZEJpdHMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjaGFuZ2VkQml0cyB8IDA7XG4gIH1cbn1cbmZ1bmN0aW9uIHNjaGVkdWxlV29ya09uUGFyZW50UGF0aChwYXJlbnQsIHJlbmRlckxhbmVzKSB7XG4gIC8vIFVwZGF0ZSB0aGUgY2hpbGQgbGFuZXMgb2YgYWxsIHRoZSBhbmNlc3RvcnMsIGluY2x1ZGluZyB0aGUgYWx0ZXJuYXRlcy5cbiAgdmFyIG5vZGUgPSBwYXJlbnQ7XG5cbiAgd2hpbGUgKG5vZGUgIT09IG51bGwpIHtcbiAgICB2YXIgYWx0ZXJuYXRlID0gbm9kZS5hbHRlcm5hdGU7XG5cbiAgICBpZiAoIWlzU3Vic2V0T2ZMYW5lcyhub2RlLmNoaWxkTGFuZXMsIHJlbmRlckxhbmVzKSkge1xuICAgICAgbm9kZS5jaGlsZExhbmVzID0gbWVyZ2VMYW5lcyhub2RlLmNoaWxkTGFuZXMsIHJlbmRlckxhbmVzKTtcblxuICAgICAgaWYgKGFsdGVybmF0ZSAhPT0gbnVsbCkge1xuICAgICAgICBhbHRlcm5hdGUuY2hpbGRMYW5lcyA9IG1lcmdlTGFuZXMoYWx0ZXJuYXRlLmNoaWxkTGFuZXMsIHJlbmRlckxhbmVzKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGFsdGVybmF0ZSAhPT0gbnVsbCAmJiAhaXNTdWJzZXRPZkxhbmVzKGFsdGVybmF0ZS5jaGlsZExhbmVzLCByZW5kZXJMYW5lcykpIHtcbiAgICAgIGFsdGVybmF0ZS5jaGlsZExhbmVzID0gbWVyZ2VMYW5lcyhhbHRlcm5hdGUuY2hpbGRMYW5lcywgcmVuZGVyTGFuZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBOZWl0aGVyIGFsdGVybmF0ZSB3YXMgdXBkYXRlZCwgd2hpY2ggbWVhbnMgdGhlIHJlc3Qgb2YgdGhlXG4gICAgICAvLyBhbmNlc3RvciBwYXRoIGFscmVhZHkgaGFzIHN1ZmZpY2llbnQgcHJpb3JpdHkuXG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBub2RlID0gbm9kZS5yZXR1cm47XG4gIH1cbn1cbmZ1bmN0aW9uIHByb3BhZ2F0ZUNvbnRleHRDaGFuZ2Uod29ya0luUHJvZ3Jlc3MsIGNvbnRleHQsIGNoYW5nZWRCaXRzLCByZW5kZXJMYW5lcykge1xuICB2YXIgZmliZXIgPSB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcblxuICBpZiAoZmliZXIgIT09IG51bGwpIHtcbiAgICAvLyBTZXQgdGhlIHJldHVybiBwb2ludGVyIG9mIHRoZSBjaGlsZCB0byB0aGUgd29yay1pbi1wcm9ncmVzcyBmaWJlci5cbiAgICBmaWJlci5yZXR1cm4gPSB3b3JrSW5Qcm9ncmVzcztcbiAgfVxuXG4gIHdoaWxlIChmaWJlciAhPT0gbnVsbCkge1xuICAgIHZhciBuZXh0RmliZXIgPSB2b2lkIDA7IC8vIFZpc2l0IHRoaXMgZmliZXIuXG5cbiAgICB2YXIgbGlzdCA9IGZpYmVyLmRlcGVuZGVuY2llcztcblxuICAgIGlmIChsaXN0ICE9PSBudWxsKSB7XG4gICAgICBuZXh0RmliZXIgPSBmaWJlci5jaGlsZDtcbiAgICAgIHZhciBkZXBlbmRlbmN5ID0gbGlzdC5maXJzdENvbnRleHQ7XG5cbiAgICAgIHdoaWxlIChkZXBlbmRlbmN5ICE9PSBudWxsKSB7XG4gICAgICAgIC8vIENoZWNrIGlmIHRoZSBjb250ZXh0IG1hdGNoZXMuXG4gICAgICAgIGlmIChkZXBlbmRlbmN5LmNvbnRleHQgPT09IGNvbnRleHQgJiYgKGRlcGVuZGVuY3kub2JzZXJ2ZWRCaXRzICYgY2hhbmdlZEJpdHMpICE9PSAwKSB7XG4gICAgICAgICAgLy8gTWF0Y2ghIFNjaGVkdWxlIGFuIHVwZGF0ZSBvbiB0aGlzIGZpYmVyLlxuICAgICAgICAgIGlmIChmaWJlci50YWcgPT09IENsYXNzQ29tcG9uZW50KSB7XG4gICAgICAgICAgICAvLyBTY2hlZHVsZSBhIGZvcmNlIHVwZGF0ZSBvbiB0aGUgd29yay1pbi1wcm9ncmVzcy5cbiAgICAgICAgICAgIHZhciB1cGRhdGUgPSBjcmVhdGVVcGRhdGUoTm9UaW1lc3RhbXAsIHBpY2tBcmJpdHJhcnlMYW5lKHJlbmRlckxhbmVzKSk7XG4gICAgICAgICAgICB1cGRhdGUudGFnID0gRm9yY2VVcGRhdGU7IC8vIFRPRE86IEJlY2F1c2Ugd2UgZG9uJ3QgaGF2ZSBhIHdvcmstaW4tcHJvZ3Jlc3MsIHRoaXMgd2lsbCBhZGQgdGhlXG4gICAgICAgICAgICAvLyB1cGRhdGUgdG8gdGhlIGN1cnJlbnQgZmliZXIsIHRvbywgd2hpY2ggbWVhbnMgaXQgd2lsbCBwZXJzaXN0IGV2ZW4gaWZcbiAgICAgICAgICAgIC8vIHRoaXMgcmVuZGVyIGlzIHRocm93biBhd2F5LiBTaW5jZSBpdCdzIGEgcmFjZSBjb25kaXRpb24sIG5vdCBzdXJlIGl0J3NcbiAgICAgICAgICAgIC8vIHdvcnRoIGZpeGluZy5cblxuICAgICAgICAgICAgZW5xdWV1ZVVwZGF0ZShmaWJlciwgdXBkYXRlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBmaWJlci5sYW5lcyA9IG1lcmdlTGFuZXMoZmliZXIubGFuZXMsIHJlbmRlckxhbmVzKTtcbiAgICAgICAgICB2YXIgYWx0ZXJuYXRlID0gZmliZXIuYWx0ZXJuYXRlO1xuXG4gICAgICAgICAgaWYgKGFsdGVybmF0ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgYWx0ZXJuYXRlLmxhbmVzID0gbWVyZ2VMYW5lcyhhbHRlcm5hdGUubGFuZXMsIHJlbmRlckxhbmVzKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBzY2hlZHVsZVdvcmtPblBhcmVudFBhdGgoZmliZXIucmV0dXJuLCByZW5kZXJMYW5lcyk7IC8vIE1hcmsgdGhlIHVwZGF0ZWQgbGFuZXMgb24gdGhlIGxpc3QsIHRvby5cblxuICAgICAgICAgIGxpc3QubGFuZXMgPSBtZXJnZUxhbmVzKGxpc3QubGFuZXMsIHJlbmRlckxhbmVzKTsgLy8gU2luY2Ugd2UgYWxyZWFkeSBmb3VuZCBhIG1hdGNoLCB3ZSBjYW4gc3RvcCB0cmF2ZXJzaW5nIHRoZVxuICAgICAgICAgIC8vIGRlcGVuZGVuY3kgbGlzdC5cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgZGVwZW5kZW5jeSA9IGRlcGVuZGVuY3kubmV4dDtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGZpYmVyLnRhZyA9PT0gQ29udGV4dFByb3ZpZGVyKSB7XG4gICAgICAvLyBEb24ndCBzY2FuIGRlZXBlciBpZiB0aGlzIGlzIGEgbWF0Y2hpbmcgcHJvdmlkZXJcbiAgICAgIG5leHRGaWJlciA9IGZpYmVyLnR5cGUgPT09IHdvcmtJblByb2dyZXNzLnR5cGUgPyBudWxsIDogZmliZXIuY2hpbGQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRyYXZlcnNlIGRvd24uXG4gICAgICBuZXh0RmliZXIgPSBmaWJlci5jaGlsZDtcbiAgICB9XG5cbiAgICBpZiAobmV4dEZpYmVyICE9PSBudWxsKSB7XG4gICAgICAvLyBTZXQgdGhlIHJldHVybiBwb2ludGVyIG9mIHRoZSBjaGlsZCB0byB0aGUgd29yay1pbi1wcm9ncmVzcyBmaWJlci5cbiAgICAgIG5leHRGaWJlci5yZXR1cm4gPSBmaWJlcjtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTm8gY2hpbGQuIFRyYXZlcnNlIHRvIG5leHQgc2libGluZy5cbiAgICAgIG5leHRGaWJlciA9IGZpYmVyO1xuXG4gICAgICB3aGlsZSAobmV4dEZpYmVyICE9PSBudWxsKSB7XG4gICAgICAgIGlmIChuZXh0RmliZXIgPT09IHdvcmtJblByb2dyZXNzKSB7XG4gICAgICAgICAgLy8gV2UncmUgYmFjayB0byB0aGUgcm9vdCBvZiB0aGlzIHN1YnRyZWUuIEV4aXQuXG4gICAgICAgICAgbmV4dEZpYmVyID0gbnVsbDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBzaWJsaW5nID0gbmV4dEZpYmVyLnNpYmxpbmc7XG5cbiAgICAgICAgaWYgKHNpYmxpbmcgIT09IG51bGwpIHtcbiAgICAgICAgICAvLyBTZXQgdGhlIHJldHVybiBwb2ludGVyIG9mIHRoZSBzaWJsaW5nIHRvIHRoZSB3b3JrLWluLXByb2dyZXNzIGZpYmVyLlxuICAgICAgICAgIHNpYmxpbmcucmV0dXJuID0gbmV4dEZpYmVyLnJldHVybjtcbiAgICAgICAgICBuZXh0RmliZXIgPSBzaWJsaW5nO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9IC8vIE5vIG1vcmUgc2libGluZ3MuIFRyYXZlcnNlIHVwLlxuXG5cbiAgICAgICAgbmV4dEZpYmVyID0gbmV4dEZpYmVyLnJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmaWJlciA9IG5leHRGaWJlcjtcbiAgfVxufVxuZnVuY3Rpb24gcHJlcGFyZVRvUmVhZENvbnRleHQod29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKSB7XG4gIGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyID0gd29ya0luUHJvZ3Jlc3M7XG4gIGxhc3RDb250ZXh0RGVwZW5kZW5jeSA9IG51bGw7XG4gIGxhc3RDb250ZXh0V2l0aEFsbEJpdHNPYnNlcnZlZCA9IG51bGw7XG4gIHZhciBkZXBlbmRlbmNpZXMgPSB3b3JrSW5Qcm9ncmVzcy5kZXBlbmRlbmNpZXM7XG5cbiAgaWYgKGRlcGVuZGVuY2llcyAhPT0gbnVsbCkge1xuICAgIHZhciBmaXJzdENvbnRleHQgPSBkZXBlbmRlbmNpZXMuZmlyc3RDb250ZXh0O1xuXG4gICAgaWYgKGZpcnN0Q29udGV4dCAhPT0gbnVsbCkge1xuICAgICAgaWYgKGluY2x1ZGVzU29tZUxhbmUoZGVwZW5kZW5jaWVzLmxhbmVzLCByZW5kZXJMYW5lcykpIHtcbiAgICAgICAgLy8gQ29udGV4dCBsaXN0IGhhcyBhIHBlbmRpbmcgdXBkYXRlLiBNYXJrIHRoYXQgdGhpcyBmaWJlciBwZXJmb3JtZWQgd29yay5cbiAgICAgICAgbWFya1dvcmtJblByb2dyZXNzUmVjZWl2ZWRVcGRhdGUoKTtcbiAgICAgIH0gLy8gUmVzZXQgdGhlIHdvcmstaW4tcHJvZ3Jlc3MgbGlzdFxuXG5cbiAgICAgIGRlcGVuZGVuY2llcy5maXJzdENvbnRleHQgPSBudWxsO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gcmVhZENvbnRleHQoY29udGV4dCwgb2JzZXJ2ZWRCaXRzKSB7XG4gIHtcbiAgICAvLyBUaGlzIHdhcm5pbmcgd291bGQgZmlyZSBpZiB5b3UgcmVhZCBjb250ZXh0IGluc2lkZSBhIEhvb2sgbGlrZSB1c2VNZW1vLlxuICAgIC8vIFVubGlrZSB0aGUgY2xhc3MgY2hlY2sgYmVsb3csIGl0J3Mgbm90IGVuZm9yY2VkIGluIHByb2R1Y3Rpb24gZm9yIHBlcmYuXG4gICAgaWYgKGlzRGlzYWxsb3dlZENvbnRleHRSZWFkSW5ERVYpIHtcbiAgICAgIGVycm9yKCdDb250ZXh0IGNhbiBvbmx5IGJlIHJlYWQgd2hpbGUgUmVhY3QgaXMgcmVuZGVyaW5nLiAnICsgJ0luIGNsYXNzZXMsIHlvdSBjYW4gcmVhZCBpdCBpbiB0aGUgcmVuZGVyIG1ldGhvZCBvciBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMuICcgKyAnSW4gZnVuY3Rpb24gY29tcG9uZW50cywgeW91IGNhbiByZWFkIGl0IGRpcmVjdGx5IGluIHRoZSBmdW5jdGlvbiBib2R5LCBidXQgbm90ICcgKyAnaW5zaWRlIEhvb2tzIGxpa2UgdXNlUmVkdWNlcigpIG9yIHVzZU1lbW8oKS4nKTtcbiAgICB9XG4gIH1cblxuICBpZiAobGFzdENvbnRleHRXaXRoQWxsQml0c09ic2VydmVkID09PSBjb250ZXh0KSA7IGVsc2UgaWYgKG9ic2VydmVkQml0cyA9PT0gZmFsc2UgfHwgb2JzZXJ2ZWRCaXRzID09PSAwKSA7IGVsc2Uge1xuICAgIHZhciByZXNvbHZlZE9ic2VydmVkQml0czsgLy8gQXZvaWQgZGVvcHRpbmcgb24gb2JzZXJ2YWJsZSBhcmd1bWVudHMgb3IgaGV0ZXJvZ2VuZW91cyB0eXBlcy5cblxuICAgIGlmICh0eXBlb2Ygb2JzZXJ2ZWRCaXRzICE9PSAnbnVtYmVyJyB8fCBvYnNlcnZlZEJpdHMgPT09IE1BWF9TSUdORURfMzFfQklUX0lOVCkge1xuICAgICAgLy8gT2JzZXJ2ZSBhbGwgdXBkYXRlcy5cbiAgICAgIGxhc3RDb250ZXh0V2l0aEFsbEJpdHNPYnNlcnZlZCA9IGNvbnRleHQ7XG4gICAgICByZXNvbHZlZE9ic2VydmVkQml0cyA9IE1BWF9TSUdORURfMzFfQklUX0lOVDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzb2x2ZWRPYnNlcnZlZEJpdHMgPSBvYnNlcnZlZEJpdHM7XG4gICAgfVxuXG4gICAgdmFyIGNvbnRleHRJdGVtID0ge1xuICAgICAgY29udGV4dDogY29udGV4dCxcbiAgICAgIG9ic2VydmVkQml0czogcmVzb2x2ZWRPYnNlcnZlZEJpdHMsXG4gICAgICBuZXh0OiBudWxsXG4gICAgfTtcblxuICAgIGlmIChsYXN0Q29udGV4dERlcGVuZGVuY3kgPT09IG51bGwpIHtcbiAgICAgIGlmICghKGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyICE9PSBudWxsKSkge1xuICAgICAgICB7XG4gICAgICAgICAgdGhyb3cgRXJyb3IoIFwiQ29udGV4dCBjYW4gb25seSBiZSByZWFkIHdoaWxlIFJlYWN0IGlzIHJlbmRlcmluZy4gSW4gY2xhc3NlcywgeW91IGNhbiByZWFkIGl0IGluIHRoZSByZW5kZXIgbWV0aG9kIG9yIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcy4gSW4gZnVuY3Rpb24gY29tcG9uZW50cywgeW91IGNhbiByZWFkIGl0IGRpcmVjdGx5IGluIHRoZSBmdW5jdGlvbiBib2R5LCBidXQgbm90IGluc2lkZSBIb29rcyBsaWtlIHVzZVJlZHVjZXIoKSBvciB1c2VNZW1vKCkuXCIgKTtcbiAgICAgICAgfVxuICAgICAgfSAvLyBUaGlzIGlzIHRoZSBmaXJzdCBkZXBlbmRlbmN5IGZvciB0aGlzIGNvbXBvbmVudC4gQ3JlYXRlIGEgbmV3IGxpc3QuXG5cblxuICAgICAgbGFzdENvbnRleHREZXBlbmRlbmN5ID0gY29udGV4dEl0ZW07XG4gICAgICBjdXJyZW50bHlSZW5kZXJpbmdGaWJlci5kZXBlbmRlbmNpZXMgPSB7XG4gICAgICAgIGxhbmVzOiBOb0xhbmVzLFxuICAgICAgICBmaXJzdENvbnRleHQ6IGNvbnRleHRJdGVtLFxuICAgICAgICByZXNwb25kZXJzOiBudWxsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBBcHBlbmQgYSBuZXcgY29udGV4dCBpdGVtLlxuICAgICAgbGFzdENvbnRleHREZXBlbmRlbmN5ID0gbGFzdENvbnRleHREZXBlbmRlbmN5Lm5leHQgPSBjb250ZXh0SXRlbTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gIGNvbnRleHQuX2N1cnJlbnRWYWx1ZSA7XG59XG5cbnZhciBVcGRhdGVTdGF0ZSA9IDA7XG52YXIgUmVwbGFjZVN0YXRlID0gMTtcbnZhciBGb3JjZVVwZGF0ZSA9IDI7XG52YXIgQ2FwdHVyZVVwZGF0ZSA9IDM7IC8vIEdsb2JhbCBzdGF0ZSB0aGF0IGlzIHJlc2V0IGF0IHRoZSBiZWdpbm5pbmcgb2YgY2FsbGluZyBgcHJvY2Vzc1VwZGF0ZVF1ZXVlYC5cbi8vIEl0IHNob3VsZCBvbmx5IGJlIHJlYWQgcmlnaHQgYWZ0ZXIgY2FsbGluZyBgcHJvY2Vzc1VwZGF0ZVF1ZXVlYCwgdmlhXG4vLyBgY2hlY2tIYXNGb3JjZVVwZGF0ZUFmdGVyUHJvY2Vzc2luZ2AuXG5cbnZhciBoYXNGb3JjZVVwZGF0ZSA9IGZhbHNlO1xudmFyIGRpZFdhcm5VcGRhdGVJbnNpZGVVcGRhdGU7XG52YXIgY3VycmVudGx5UHJvY2Vzc2luZ1F1ZXVlO1xuXG57XG4gIGRpZFdhcm5VcGRhdGVJbnNpZGVVcGRhdGUgPSBmYWxzZTtcbiAgY3VycmVudGx5UHJvY2Vzc2luZ1F1ZXVlID0gbnVsbDtcbn1cblxuZnVuY3Rpb24gaW5pdGlhbGl6ZVVwZGF0ZVF1ZXVlKGZpYmVyKSB7XG4gIHZhciBxdWV1ZSA9IHtcbiAgICBiYXNlU3RhdGU6IGZpYmVyLm1lbW9pemVkU3RhdGUsXG4gICAgZmlyc3RCYXNlVXBkYXRlOiBudWxsLFxuICAgIGxhc3RCYXNlVXBkYXRlOiBudWxsLFxuICAgIHNoYXJlZDoge1xuICAgICAgcGVuZGluZzogbnVsbFxuICAgIH0sXG4gICAgZWZmZWN0czogbnVsbFxuICB9O1xuICBmaWJlci51cGRhdGVRdWV1ZSA9IHF1ZXVlO1xufVxuZnVuY3Rpb24gY2xvbmVVcGRhdGVRdWV1ZShjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcykge1xuICAvLyBDbG9uZSB0aGUgdXBkYXRlIHF1ZXVlIGZyb20gY3VycmVudC4gVW5sZXNzIGl0J3MgYWxyZWFkeSBhIGNsb25lLlxuICB2YXIgcXVldWUgPSB3b3JrSW5Qcm9ncmVzcy51cGRhdGVRdWV1ZTtcbiAgdmFyIGN1cnJlbnRRdWV1ZSA9IGN1cnJlbnQudXBkYXRlUXVldWU7XG5cbiAgaWYgKHF1ZXVlID09PSBjdXJyZW50UXVldWUpIHtcbiAgICB2YXIgY2xvbmUgPSB7XG4gICAgICBiYXNlU3RhdGU6IGN1cnJlbnRRdWV1ZS5iYXNlU3RhdGUsXG4gICAgICBmaXJzdEJhc2VVcGRhdGU6IGN1cnJlbnRRdWV1ZS5maXJzdEJhc2VVcGRhdGUsXG4gICAgICBsYXN0QmFzZVVwZGF0ZTogY3VycmVudFF1ZXVlLmxhc3RCYXNlVXBkYXRlLFxuICAgICAgc2hhcmVkOiBjdXJyZW50UXVldWUuc2hhcmVkLFxuICAgICAgZWZmZWN0czogY3VycmVudFF1ZXVlLmVmZmVjdHNcbiAgICB9O1xuICAgIHdvcmtJblByb2dyZXNzLnVwZGF0ZVF1ZXVlID0gY2xvbmU7XG4gIH1cbn1cbmZ1bmN0aW9uIGNyZWF0ZVVwZGF0ZShldmVudFRpbWUsIGxhbmUpIHtcbiAgdmFyIHVwZGF0ZSA9IHtcbiAgICBldmVudFRpbWU6IGV2ZW50VGltZSxcbiAgICBsYW5lOiBsYW5lLFxuICAgIHRhZzogVXBkYXRlU3RhdGUsXG4gICAgcGF5bG9hZDogbnVsbCxcbiAgICBjYWxsYmFjazogbnVsbCxcbiAgICBuZXh0OiBudWxsXG4gIH07XG4gIHJldHVybiB1cGRhdGU7XG59XG5mdW5jdGlvbiBlbnF1ZXVlVXBkYXRlKGZpYmVyLCB1cGRhdGUpIHtcbiAgdmFyIHVwZGF0ZVF1ZXVlID0gZmliZXIudXBkYXRlUXVldWU7XG5cbiAgaWYgKHVwZGF0ZVF1ZXVlID09PSBudWxsKSB7XG4gICAgLy8gT25seSBvY2N1cnMgaWYgdGhlIGZpYmVyIGhhcyBiZWVuIHVubW91bnRlZC5cbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgc2hhcmVkUXVldWUgPSB1cGRhdGVRdWV1ZS5zaGFyZWQ7XG4gIHZhciBwZW5kaW5nID0gc2hhcmVkUXVldWUucGVuZGluZztcblxuICBpZiAocGVuZGluZyA9PT0gbnVsbCkge1xuICAgIC8vIFRoaXMgaXMgdGhlIGZpcnN0IHVwZGF0ZS4gQ3JlYXRlIGEgY2lyY3VsYXIgbGlzdC5cbiAgICB1cGRhdGUubmV4dCA9IHVwZGF0ZTtcbiAgfSBlbHNlIHtcbiAgICB1cGRhdGUubmV4dCA9IHBlbmRpbmcubmV4dDtcbiAgICBwZW5kaW5nLm5leHQgPSB1cGRhdGU7XG4gIH1cblxuICBzaGFyZWRRdWV1ZS5wZW5kaW5nID0gdXBkYXRlO1xuXG4gIHtcbiAgICBpZiAoY3VycmVudGx5UHJvY2Vzc2luZ1F1ZXVlID09PSBzaGFyZWRRdWV1ZSAmJiAhZGlkV2FyblVwZGF0ZUluc2lkZVVwZGF0ZSkge1xuICAgICAgZXJyb3IoJ0FuIHVwZGF0ZSAoc2V0U3RhdGUsIHJlcGxhY2VTdGF0ZSwgb3IgZm9yY2VVcGRhdGUpIHdhcyBzY2hlZHVsZWQgJyArICdmcm9tIGluc2lkZSBhbiB1cGRhdGUgZnVuY3Rpb24uIFVwZGF0ZSBmdW5jdGlvbnMgc2hvdWxkIGJlIHB1cmUsICcgKyAnd2l0aCB6ZXJvIHNpZGUtZWZmZWN0cy4gQ29uc2lkZXIgdXNpbmcgY29tcG9uZW50RGlkVXBkYXRlIG9yIGEgJyArICdjYWxsYmFjay4nKTtcblxuICAgICAgZGlkV2FyblVwZGF0ZUluc2lkZVVwZGF0ZSA9IHRydWU7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBlbnF1ZXVlQ2FwdHVyZWRVcGRhdGUod29ya0luUHJvZ3Jlc3MsIGNhcHR1cmVkVXBkYXRlKSB7XG4gIC8vIENhcHR1cmVkIHVwZGF0ZXMgYXJlIHVwZGF0ZXMgdGhhdCBhcmUgdGhyb3duIGJ5IGEgY2hpbGQgZHVyaW5nIHRoZSByZW5kZXJcbiAgLy8gcGhhc2UuIFRoZXkgc2hvdWxkIGJlIGRpc2NhcmRlZCBpZiB0aGUgcmVuZGVyIGlzIGFib3J0ZWQuIFRoZXJlZm9yZSxcbiAgLy8gd2Ugc2hvdWxkIG9ubHkgcHV0IHRoZW0gb24gdGhlIHdvcmstaW4tcHJvZ3Jlc3MgcXVldWUsIG5vdCB0aGUgY3VycmVudCBvbmUuXG4gIHZhciBxdWV1ZSA9IHdvcmtJblByb2dyZXNzLnVwZGF0ZVF1ZXVlOyAvLyBDaGVjayBpZiB0aGUgd29yay1pbi1wcm9ncmVzcyBxdWV1ZSBpcyBhIGNsb25lLlxuXG4gIHZhciBjdXJyZW50ID0gd29ya0luUHJvZ3Jlc3MuYWx0ZXJuYXRlO1xuXG4gIGlmIChjdXJyZW50ICE9PSBudWxsKSB7XG4gICAgdmFyIGN1cnJlbnRRdWV1ZSA9IGN1cnJlbnQudXBkYXRlUXVldWU7XG5cbiAgICBpZiAocXVldWUgPT09IGN1cnJlbnRRdWV1ZSkge1xuICAgICAgLy8gVGhlIHdvcmstaW4tcHJvZ3Jlc3MgcXVldWUgaXMgdGhlIHNhbWUgYXMgY3VycmVudC4gVGhpcyBoYXBwZW5zIHdoZW5cbiAgICAgIC8vIHdlIGJhaWwgb3V0IG9uIGEgcGFyZW50IGZpYmVyIHRoYXQgdGhlbiBjYXB0dXJlcyBhbiBlcnJvciB0aHJvd24gYnlcbiAgICAgIC8vIGEgY2hpbGQuIFNpbmNlIHdlIHdhbnQgdG8gYXBwZW5kIHRoZSB1cGRhdGUgb25seSB0byB0aGUgd29yay1pblxuICAgICAgLy8gLXByb2dyZXNzIHF1ZXVlLCB3ZSBuZWVkIHRvIGNsb25lIHRoZSB1cGRhdGVzLiBXZSB1c3VhbGx5IGNsb25lIGR1cmluZ1xuICAgICAgLy8gcHJvY2Vzc1VwZGF0ZVF1ZXVlLCBidXQgdGhhdCBkaWRuJ3QgaGFwcGVuIGluIHRoaXMgY2FzZSBiZWNhdXNlIHdlXG4gICAgICAvLyBza2lwcGVkIG92ZXIgdGhlIHBhcmVudCB3aGVuIHdlIGJhaWxlZCBvdXQuXG4gICAgICB2YXIgbmV3Rmlyc3QgPSBudWxsO1xuICAgICAgdmFyIG5ld0xhc3QgPSBudWxsO1xuICAgICAgdmFyIGZpcnN0QmFzZVVwZGF0ZSA9IHF1ZXVlLmZpcnN0QmFzZVVwZGF0ZTtcblxuICAgICAgaWYgKGZpcnN0QmFzZVVwZGF0ZSAhPT0gbnVsbCkge1xuICAgICAgICAvLyBMb29wIHRocm91Z2ggdGhlIHVwZGF0ZXMgYW5kIGNsb25lIHRoZW0uXG4gICAgICAgIHZhciB1cGRhdGUgPSBmaXJzdEJhc2VVcGRhdGU7XG5cbiAgICAgICAgZG8ge1xuICAgICAgICAgIHZhciBjbG9uZSA9IHtcbiAgICAgICAgICAgIGV2ZW50VGltZTogdXBkYXRlLmV2ZW50VGltZSxcbiAgICAgICAgICAgIGxhbmU6IHVwZGF0ZS5sYW5lLFxuICAgICAgICAgICAgdGFnOiB1cGRhdGUudGFnLFxuICAgICAgICAgICAgcGF5bG9hZDogdXBkYXRlLnBheWxvYWQsXG4gICAgICAgICAgICBjYWxsYmFjazogdXBkYXRlLmNhbGxiYWNrLFxuICAgICAgICAgICAgbmV4dDogbnVsbFxuICAgICAgICAgIH07XG5cbiAgICAgICAgICBpZiAobmV3TGFzdCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgbmV3Rmlyc3QgPSBuZXdMYXN0ID0gY2xvbmU7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5ld0xhc3QubmV4dCA9IGNsb25lO1xuICAgICAgICAgICAgbmV3TGFzdCA9IGNsb25lO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHVwZGF0ZSA9IHVwZGF0ZS5uZXh0O1xuICAgICAgICB9IHdoaWxlICh1cGRhdGUgIT09IG51bGwpOyAvLyBBcHBlbmQgdGhlIGNhcHR1cmVkIHVwZGF0ZSB0aGUgZW5kIG9mIHRoZSBjbG9uZWQgbGlzdC5cblxuXG4gICAgICAgIGlmIChuZXdMYXN0ID09PSBudWxsKSB7XG4gICAgICAgICAgbmV3Rmlyc3QgPSBuZXdMYXN0ID0gY2FwdHVyZWRVcGRhdGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbmV3TGFzdC5uZXh0ID0gY2FwdHVyZWRVcGRhdGU7XG4gICAgICAgICAgbmV3TGFzdCA9IGNhcHR1cmVkVXBkYXRlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBUaGVyZSBhcmUgbm8gYmFzZSB1cGRhdGVzLlxuICAgICAgICBuZXdGaXJzdCA9IG5ld0xhc3QgPSBjYXB0dXJlZFVwZGF0ZTtcbiAgICAgIH1cblxuICAgICAgcXVldWUgPSB7XG4gICAgICAgIGJhc2VTdGF0ZTogY3VycmVudFF1ZXVlLmJhc2VTdGF0ZSxcbiAgICAgICAgZmlyc3RCYXNlVXBkYXRlOiBuZXdGaXJzdCxcbiAgICAgICAgbGFzdEJhc2VVcGRhdGU6IG5ld0xhc3QsXG4gICAgICAgIHNoYXJlZDogY3VycmVudFF1ZXVlLnNoYXJlZCxcbiAgICAgICAgZWZmZWN0czogY3VycmVudFF1ZXVlLmVmZmVjdHNcbiAgICAgIH07XG4gICAgICB3b3JrSW5Qcm9ncmVzcy51cGRhdGVRdWV1ZSA9IHF1ZXVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfSAvLyBBcHBlbmQgdGhlIHVwZGF0ZSB0byB0aGUgZW5kIG9mIHRoZSBsaXN0LlxuXG5cbiAgdmFyIGxhc3RCYXNlVXBkYXRlID0gcXVldWUubGFzdEJhc2VVcGRhdGU7XG5cbiAgaWYgKGxhc3RCYXNlVXBkYXRlID09PSBudWxsKSB7XG4gICAgcXVldWUuZmlyc3RCYXNlVXBkYXRlID0gY2FwdHVyZWRVcGRhdGU7XG4gIH0gZWxzZSB7XG4gICAgbGFzdEJhc2VVcGRhdGUubmV4dCA9IGNhcHR1cmVkVXBkYXRlO1xuICB9XG5cbiAgcXVldWUubGFzdEJhc2VVcGRhdGUgPSBjYXB0dXJlZFVwZGF0ZTtcbn1cblxuZnVuY3Rpb24gZ2V0U3RhdGVGcm9tVXBkYXRlKHdvcmtJblByb2dyZXNzLCBxdWV1ZSwgdXBkYXRlLCBwcmV2U3RhdGUsIG5leHRQcm9wcywgaW5zdGFuY2UpIHtcbiAgc3dpdGNoICh1cGRhdGUudGFnKSB7XG4gICAgY2FzZSBSZXBsYWNlU3RhdGU6XG4gICAgICB7XG4gICAgICAgIHZhciBwYXlsb2FkID0gdXBkYXRlLnBheWxvYWQ7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBwYXlsb2FkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgLy8gVXBkYXRlciBmdW5jdGlvblxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGVudGVyRGlzYWxsb3dlZENvbnRleHRSZWFkSW5ERVYoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB2YXIgbmV4dFN0YXRlID0gcGF5bG9hZC5jYWxsKGluc3RhbmNlLCBwcmV2U3RhdGUsIG5leHRQcm9wcyk7XG5cbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZiAoIHdvcmtJblByb2dyZXNzLm1vZGUgJiBTdHJpY3RNb2RlKSB7XG4gICAgICAgICAgICAgIGRpc2FibGVMb2dzKCk7XG5cbiAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBwYXlsb2FkLmNhbGwoaW5zdGFuY2UsIHByZXZTdGF0ZSwgbmV4dFByb3BzKTtcbiAgICAgICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgICByZWVuYWJsZUxvZ3MoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBleGl0RGlzYWxsb3dlZENvbnRleHRSZWFkSW5ERVYoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbmV4dFN0YXRlO1xuICAgICAgICB9IC8vIFN0YXRlIG9iamVjdFxuXG5cbiAgICAgICAgcmV0dXJuIHBheWxvYWQ7XG4gICAgICB9XG5cbiAgICBjYXNlIENhcHR1cmVVcGRhdGU6XG4gICAgICB7XG4gICAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzID0gd29ya0luUHJvZ3Jlc3MuZmxhZ3MgJiB+U2hvdWxkQ2FwdHVyZSB8IERpZENhcHR1cmU7XG4gICAgICB9XG4gICAgLy8gSW50ZW50aW9uYWwgZmFsbHRocm91Z2hcblxuICAgIGNhc2UgVXBkYXRlU3RhdGU6XG4gICAgICB7XG4gICAgICAgIHZhciBfcGF5bG9hZCA9IHVwZGF0ZS5wYXlsb2FkO1xuICAgICAgICB2YXIgcGFydGlhbFN0YXRlO1xuXG4gICAgICAgIGlmICh0eXBlb2YgX3BheWxvYWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAvLyBVcGRhdGVyIGZ1bmN0aW9uXG4gICAgICAgICAge1xuICAgICAgICAgICAgZW50ZXJEaXNhbGxvd2VkQ29udGV4dFJlYWRJbkRFVigpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHBhcnRpYWxTdGF0ZSA9IF9wYXlsb2FkLmNhbGwoaW5zdGFuY2UsIHByZXZTdGF0ZSwgbmV4dFByb3BzKTtcblxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlmICggd29ya0luUHJvZ3Jlc3MubW9kZSAmIFN0cmljdE1vZGUpIHtcbiAgICAgICAgICAgICAgZGlzYWJsZUxvZ3MoKTtcblxuICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIF9wYXlsb2FkLmNhbGwoaW5zdGFuY2UsIHByZXZTdGF0ZSwgbmV4dFByb3BzKTtcbiAgICAgICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgICByZWVuYWJsZUxvZ3MoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBleGl0RGlzYWxsb3dlZENvbnRleHRSZWFkSW5ERVYoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gUGFydGlhbCBzdGF0ZSBvYmplY3RcbiAgICAgICAgICBwYXJ0aWFsU3RhdGUgPSBfcGF5bG9hZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwYXJ0aWFsU3RhdGUgPT09IG51bGwgfHwgcGFydGlhbFN0YXRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAvLyBOdWxsIGFuZCB1bmRlZmluZWQgYXJlIHRyZWF0ZWQgYXMgbm8tb3BzLlxuICAgICAgICAgIHJldHVybiBwcmV2U3RhdGU7XG4gICAgICAgIH0gLy8gTWVyZ2UgdGhlIHBhcnRpYWwgc3RhdGUgYW5kIHRoZSBwcmV2aW91cyBzdGF0ZS5cblxuXG4gICAgICAgIHJldHVybiBfYXNzaWduKHt9LCBwcmV2U3RhdGUsIHBhcnRpYWxTdGF0ZSk7XG4gICAgICB9XG5cbiAgICBjYXNlIEZvcmNlVXBkYXRlOlxuICAgICAge1xuICAgICAgICBoYXNGb3JjZVVwZGF0ZSA9IHRydWU7XG4gICAgICAgIHJldHVybiBwcmV2U3RhdGU7XG4gICAgICB9XG4gIH1cblxuICByZXR1cm4gcHJldlN0YXRlO1xufVxuXG5mdW5jdGlvbiBwcm9jZXNzVXBkYXRlUXVldWUod29ya0luUHJvZ3Jlc3MsIHByb3BzLCBpbnN0YW5jZSwgcmVuZGVyTGFuZXMpIHtcbiAgLy8gVGhpcyBpcyBhbHdheXMgbm9uLW51bGwgb24gYSBDbGFzc0NvbXBvbmVudCBvciBIb3N0Um9vdFxuICB2YXIgcXVldWUgPSB3b3JrSW5Qcm9ncmVzcy51cGRhdGVRdWV1ZTtcbiAgaGFzRm9yY2VVcGRhdGUgPSBmYWxzZTtcblxuICB7XG4gICAgY3VycmVudGx5UHJvY2Vzc2luZ1F1ZXVlID0gcXVldWUuc2hhcmVkO1xuICB9XG5cbiAgdmFyIGZpcnN0QmFzZVVwZGF0ZSA9IHF1ZXVlLmZpcnN0QmFzZVVwZGF0ZTtcbiAgdmFyIGxhc3RCYXNlVXBkYXRlID0gcXVldWUubGFzdEJhc2VVcGRhdGU7IC8vIENoZWNrIGlmIHRoZXJlIGFyZSBwZW5kaW5nIHVwZGF0ZXMuIElmIHNvLCB0cmFuc2ZlciB0aGVtIHRvIHRoZSBiYXNlIHF1ZXVlLlxuXG4gIHZhciBwZW5kaW5nUXVldWUgPSBxdWV1ZS5zaGFyZWQucGVuZGluZztcblxuICBpZiAocGVuZGluZ1F1ZXVlICE9PSBudWxsKSB7XG4gICAgcXVldWUuc2hhcmVkLnBlbmRpbmcgPSBudWxsOyAvLyBUaGUgcGVuZGluZyBxdWV1ZSBpcyBjaXJjdWxhci4gRGlzY29ubmVjdCB0aGUgcG9pbnRlciBiZXR3ZWVuIGZpcnN0XG4gICAgLy8gYW5kIGxhc3Qgc28gdGhhdCBpdCdzIG5vbi1jaXJjdWxhci5cblxuICAgIHZhciBsYXN0UGVuZGluZ1VwZGF0ZSA9IHBlbmRpbmdRdWV1ZTtcbiAgICB2YXIgZmlyc3RQZW5kaW5nVXBkYXRlID0gbGFzdFBlbmRpbmdVcGRhdGUubmV4dDtcbiAgICBsYXN0UGVuZGluZ1VwZGF0ZS5uZXh0ID0gbnVsbDsgLy8gQXBwZW5kIHBlbmRpbmcgdXBkYXRlcyB0byBiYXNlIHF1ZXVlXG5cbiAgICBpZiAobGFzdEJhc2VVcGRhdGUgPT09IG51bGwpIHtcbiAgICAgIGZpcnN0QmFzZVVwZGF0ZSA9IGZpcnN0UGVuZGluZ1VwZGF0ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGFzdEJhc2VVcGRhdGUubmV4dCA9IGZpcnN0UGVuZGluZ1VwZGF0ZTtcbiAgICB9XG5cbiAgICBsYXN0QmFzZVVwZGF0ZSA9IGxhc3RQZW5kaW5nVXBkYXRlOyAvLyBJZiB0aGVyZSdzIGEgY3VycmVudCBxdWV1ZSwgYW5kIGl0J3MgZGlmZmVyZW50IGZyb20gdGhlIGJhc2UgcXVldWUsIHRoZW5cbiAgICAvLyB3ZSBuZWVkIHRvIHRyYW5zZmVyIHRoZSB1cGRhdGVzIHRvIHRoYXQgcXVldWUsIHRvby4gQmVjYXVzZSB0aGUgYmFzZVxuICAgIC8vIHF1ZXVlIGlzIGEgc2luZ2x5LWxpbmtlZCBsaXN0IHdpdGggbm8gY3ljbGVzLCB3ZSBjYW4gYXBwZW5kIHRvIGJvdGhcbiAgICAvLyBsaXN0cyBhbmQgdGFrZSBhZHZhbnRhZ2Ugb2Ygc3RydWN0dXJhbCBzaGFyaW5nLlxuICAgIC8vIFRPRE86IFBhc3MgYGN1cnJlbnRgIGFzIGFyZ3VtZW50XG5cbiAgICB2YXIgY3VycmVudCA9IHdvcmtJblByb2dyZXNzLmFsdGVybmF0ZTtcblxuICAgIGlmIChjdXJyZW50ICE9PSBudWxsKSB7XG4gICAgICAvLyBUaGlzIGlzIGFsd2F5cyBub24tbnVsbCBvbiBhIENsYXNzQ29tcG9uZW50IG9yIEhvc3RSb290XG4gICAgICB2YXIgY3VycmVudFF1ZXVlID0gY3VycmVudC51cGRhdGVRdWV1ZTtcbiAgICAgIHZhciBjdXJyZW50TGFzdEJhc2VVcGRhdGUgPSBjdXJyZW50UXVldWUubGFzdEJhc2VVcGRhdGU7XG5cbiAgICAgIGlmIChjdXJyZW50TGFzdEJhc2VVcGRhdGUgIT09IGxhc3RCYXNlVXBkYXRlKSB7XG4gICAgICAgIGlmIChjdXJyZW50TGFzdEJhc2VVcGRhdGUgPT09IG51bGwpIHtcbiAgICAgICAgICBjdXJyZW50UXVldWUuZmlyc3RCYXNlVXBkYXRlID0gZmlyc3RQZW5kaW5nVXBkYXRlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGN1cnJlbnRMYXN0QmFzZVVwZGF0ZS5uZXh0ID0gZmlyc3RQZW5kaW5nVXBkYXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgY3VycmVudFF1ZXVlLmxhc3RCYXNlVXBkYXRlID0gbGFzdFBlbmRpbmdVcGRhdGU7XG4gICAgICB9XG4gICAgfVxuICB9IC8vIFRoZXNlIHZhbHVlcyBtYXkgY2hhbmdlIGFzIHdlIHByb2Nlc3MgdGhlIHF1ZXVlLlxuXG5cbiAgaWYgKGZpcnN0QmFzZVVwZGF0ZSAhPT0gbnVsbCkge1xuICAgIC8vIEl0ZXJhdGUgdGhyb3VnaCB0aGUgbGlzdCBvZiB1cGRhdGVzIHRvIGNvbXB1dGUgdGhlIHJlc3VsdC5cbiAgICB2YXIgbmV3U3RhdGUgPSBxdWV1ZS5iYXNlU3RhdGU7IC8vIFRPRE86IERvbid0IG5lZWQgdG8gYWNjdW11bGF0ZSB0aGlzLiBJbnN0ZWFkLCB3ZSBjYW4gcmVtb3ZlIHJlbmRlckxhbmVzXG4gICAgLy8gZnJvbSB0aGUgb3JpZ2luYWwgbGFuZXMuXG5cbiAgICB2YXIgbmV3TGFuZXMgPSBOb0xhbmVzO1xuICAgIHZhciBuZXdCYXNlU3RhdGUgPSBudWxsO1xuICAgIHZhciBuZXdGaXJzdEJhc2VVcGRhdGUgPSBudWxsO1xuICAgIHZhciBuZXdMYXN0QmFzZVVwZGF0ZSA9IG51bGw7XG4gICAgdmFyIHVwZGF0ZSA9IGZpcnN0QmFzZVVwZGF0ZTtcblxuICAgIGRvIHtcbiAgICAgIHZhciB1cGRhdGVMYW5lID0gdXBkYXRlLmxhbmU7XG4gICAgICB2YXIgdXBkYXRlRXZlbnRUaW1lID0gdXBkYXRlLmV2ZW50VGltZTtcblxuICAgICAgaWYgKCFpc1N1YnNldE9mTGFuZXMocmVuZGVyTGFuZXMsIHVwZGF0ZUxhbmUpKSB7XG4gICAgICAgIC8vIFByaW9yaXR5IGlzIGluc3VmZmljaWVudC4gU2tpcCB0aGlzIHVwZGF0ZS4gSWYgdGhpcyBpcyB0aGUgZmlyc3RcbiAgICAgICAgLy8gc2tpcHBlZCB1cGRhdGUsIHRoZSBwcmV2aW91cyB1cGRhdGUvc3RhdGUgaXMgdGhlIG5ldyBiYXNlXG4gICAgICAgIC8vIHVwZGF0ZS9zdGF0ZS5cbiAgICAgICAgdmFyIGNsb25lID0ge1xuICAgICAgICAgIGV2ZW50VGltZTogdXBkYXRlRXZlbnRUaW1lLFxuICAgICAgICAgIGxhbmU6IHVwZGF0ZUxhbmUsXG4gICAgICAgICAgdGFnOiB1cGRhdGUudGFnLFxuICAgICAgICAgIHBheWxvYWQ6IHVwZGF0ZS5wYXlsb2FkLFxuICAgICAgICAgIGNhbGxiYWNrOiB1cGRhdGUuY2FsbGJhY2ssXG4gICAgICAgICAgbmV4dDogbnVsbFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChuZXdMYXN0QmFzZVVwZGF0ZSA9PT0gbnVsbCkge1xuICAgICAgICAgIG5ld0ZpcnN0QmFzZVVwZGF0ZSA9IG5ld0xhc3RCYXNlVXBkYXRlID0gY2xvbmU7XG4gICAgICAgICAgbmV3QmFzZVN0YXRlID0gbmV3U3RhdGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbmV3TGFzdEJhc2VVcGRhdGUgPSBuZXdMYXN0QmFzZVVwZGF0ZS5uZXh0ID0gY2xvbmU7XG4gICAgICAgIH0gLy8gVXBkYXRlIHRoZSByZW1haW5pbmcgcHJpb3JpdHkgaW4gdGhlIHF1ZXVlLlxuXG5cbiAgICAgICAgbmV3TGFuZXMgPSBtZXJnZUxhbmVzKG5ld0xhbmVzLCB1cGRhdGVMYW5lKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFRoaXMgdXBkYXRlIGRvZXMgaGF2ZSBzdWZmaWNpZW50IHByaW9yaXR5LlxuICAgICAgICBpZiAobmV3TGFzdEJhc2VVcGRhdGUgIT09IG51bGwpIHtcbiAgICAgICAgICB2YXIgX2Nsb25lID0ge1xuICAgICAgICAgICAgZXZlbnRUaW1lOiB1cGRhdGVFdmVudFRpbWUsXG4gICAgICAgICAgICAvLyBUaGlzIHVwZGF0ZSBpcyBnb2luZyB0byBiZSBjb21taXR0ZWQgc28gd2UgbmV2ZXIgd2FudCB1bmNvbW1pdFxuICAgICAgICAgICAgLy8gaXQuIFVzaW5nIE5vTGFuZSB3b3JrcyBiZWNhdXNlIDAgaXMgYSBzdWJzZXQgb2YgYWxsIGJpdG1hc2tzLCBzb1xuICAgICAgICAgICAgLy8gdGhpcyB3aWxsIG5ldmVyIGJlIHNraXBwZWQgYnkgdGhlIGNoZWNrIGFib3ZlLlxuICAgICAgICAgICAgbGFuZTogTm9MYW5lLFxuICAgICAgICAgICAgdGFnOiB1cGRhdGUudGFnLFxuICAgICAgICAgICAgcGF5bG9hZDogdXBkYXRlLnBheWxvYWQsXG4gICAgICAgICAgICBjYWxsYmFjazogdXBkYXRlLmNhbGxiYWNrLFxuICAgICAgICAgICAgbmV4dDogbnVsbFxuICAgICAgICAgIH07XG4gICAgICAgICAgbmV3TGFzdEJhc2VVcGRhdGUgPSBuZXdMYXN0QmFzZVVwZGF0ZS5uZXh0ID0gX2Nsb25lO1xuICAgICAgICB9IC8vIFByb2Nlc3MgdGhpcyB1cGRhdGUuXG5cblxuICAgICAgICBuZXdTdGF0ZSA9IGdldFN0YXRlRnJvbVVwZGF0ZSh3b3JrSW5Qcm9ncmVzcywgcXVldWUsIHVwZGF0ZSwgbmV3U3RhdGUsIHByb3BzLCBpbnN0YW5jZSk7XG4gICAgICAgIHZhciBjYWxsYmFjayA9IHVwZGF0ZS5jYWxsYmFjaztcblxuICAgICAgICBpZiAoY2FsbGJhY2sgIT09IG51bGwpIHtcbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBDYWxsYmFjaztcbiAgICAgICAgICB2YXIgZWZmZWN0cyA9IHF1ZXVlLmVmZmVjdHM7XG5cbiAgICAgICAgICBpZiAoZWZmZWN0cyA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcXVldWUuZWZmZWN0cyA9IFt1cGRhdGVdO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlZmZlY3RzLnB1c2godXBkYXRlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdXBkYXRlID0gdXBkYXRlLm5leHQ7XG5cbiAgICAgIGlmICh1cGRhdGUgPT09IG51bGwpIHtcbiAgICAgICAgcGVuZGluZ1F1ZXVlID0gcXVldWUuc2hhcmVkLnBlbmRpbmc7XG5cbiAgICAgICAgaWYgKHBlbmRpbmdRdWV1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIEFuIHVwZGF0ZSB3YXMgc2NoZWR1bGVkIGZyb20gaW5zaWRlIGEgcmVkdWNlci4gQWRkIHRoZSBuZXdcbiAgICAgICAgICAvLyBwZW5kaW5nIHVwZGF0ZXMgdG8gdGhlIGVuZCBvZiB0aGUgbGlzdCBhbmQga2VlcCBwcm9jZXNzaW5nLlxuICAgICAgICAgIHZhciBfbGFzdFBlbmRpbmdVcGRhdGUgPSBwZW5kaW5nUXVldWU7IC8vIEludGVudGlvbmFsbHkgdW5zb3VuZC4gUGVuZGluZyB1cGRhdGVzIGZvcm0gYSBjaXJjdWxhciBsaXN0LCBidXQgd2VcbiAgICAgICAgICAvLyB1bnJhdmVsIHRoZW0gd2hlbiB0cmFuc2ZlcnJpbmcgdGhlbSB0byB0aGUgYmFzZSBxdWV1ZS5cblxuICAgICAgICAgIHZhciBfZmlyc3RQZW5kaW5nVXBkYXRlID0gX2xhc3RQZW5kaW5nVXBkYXRlLm5leHQ7XG4gICAgICAgICAgX2xhc3RQZW5kaW5nVXBkYXRlLm5leHQgPSBudWxsO1xuICAgICAgICAgIHVwZGF0ZSA9IF9maXJzdFBlbmRpbmdVcGRhdGU7XG4gICAgICAgICAgcXVldWUubGFzdEJhc2VVcGRhdGUgPSBfbGFzdFBlbmRpbmdVcGRhdGU7XG4gICAgICAgICAgcXVldWUuc2hhcmVkLnBlbmRpbmcgPSBudWxsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSB3aGlsZSAodHJ1ZSk7XG5cbiAgICBpZiAobmV3TGFzdEJhc2VVcGRhdGUgPT09IG51bGwpIHtcbiAgICAgIG5ld0Jhc2VTdGF0ZSA9IG5ld1N0YXRlO1xuICAgIH1cblxuICAgIHF1ZXVlLmJhc2VTdGF0ZSA9IG5ld0Jhc2VTdGF0ZTtcbiAgICBxdWV1ZS5maXJzdEJhc2VVcGRhdGUgPSBuZXdGaXJzdEJhc2VVcGRhdGU7XG4gICAgcXVldWUubGFzdEJhc2VVcGRhdGUgPSBuZXdMYXN0QmFzZVVwZGF0ZTsgLy8gU2V0IHRoZSByZW1haW5pbmcgZXhwaXJhdGlvbiB0aW1lIHRvIGJlIHdoYXRldmVyIGlzIHJlbWFpbmluZyBpbiB0aGUgcXVldWUuXG4gICAgLy8gVGhpcyBzaG91bGQgYmUgZmluZSBiZWNhdXNlIHRoZSBvbmx5IHR3byBvdGhlciB0aGluZ3MgdGhhdCBjb250cmlidXRlIHRvXG4gICAgLy8gZXhwaXJhdGlvbiB0aW1lIGFyZSBwcm9wcyBhbmQgY29udGV4dC4gV2UncmUgYWxyZWFkeSBpbiB0aGUgbWlkZGxlIG9mIHRoZVxuICAgIC8vIGJlZ2luIHBoYXNlIGJ5IHRoZSB0aW1lIHdlIHN0YXJ0IHByb2Nlc3NpbmcgdGhlIHF1ZXVlLCBzbyB3ZSd2ZSBhbHJlYWR5XG4gICAgLy8gZGVhbHQgd2l0aCB0aGUgcHJvcHMuIENvbnRleHQgaW4gY29tcG9uZW50cyB0aGF0IHNwZWNpZnlcbiAgICAvLyBzaG91bGRDb21wb25lbnRVcGRhdGUgaXMgdHJpY2t5OyBidXQgd2UnbGwgaGF2ZSB0byBhY2NvdW50IGZvclxuICAgIC8vIHRoYXQgcmVnYXJkbGVzcy5cblxuICAgIG1hcmtTa2lwcGVkVXBkYXRlTGFuZXMobmV3TGFuZXMpO1xuICAgIHdvcmtJblByb2dyZXNzLmxhbmVzID0gbmV3TGFuZXM7XG4gICAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IG5ld1N0YXRlO1xuICB9XG5cbiAge1xuICAgIGN1cnJlbnRseVByb2Nlc3NpbmdRdWV1ZSA9IG51bGw7XG4gIH1cbn1cblxuZnVuY3Rpb24gY2FsbENhbGxiYWNrKGNhbGxiYWNrLCBjb250ZXh0KSB7XG4gIGlmICghKHR5cGVvZiBjYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykpIHtcbiAgICB7XG4gICAgICB0aHJvdyBFcnJvciggXCJJbnZhbGlkIGFyZ3VtZW50IHBhc3NlZCBhcyBjYWxsYmFjay4gRXhwZWN0ZWQgYSBmdW5jdGlvbi4gSW5zdGVhZCByZWNlaXZlZDogXCIgKyBjYWxsYmFjayApO1xuICAgIH1cbiAgfVxuXG4gIGNhbGxiYWNrLmNhbGwoY29udGV4dCk7XG59XG5cbmZ1bmN0aW9uIHJlc2V0SGFzRm9yY2VVcGRhdGVCZWZvcmVQcm9jZXNzaW5nKCkge1xuICBoYXNGb3JjZVVwZGF0ZSA9IGZhbHNlO1xufVxuZnVuY3Rpb24gY2hlY2tIYXNGb3JjZVVwZGF0ZUFmdGVyUHJvY2Vzc2luZygpIHtcbiAgcmV0dXJuIGhhc0ZvcmNlVXBkYXRlO1xufVxuZnVuY3Rpb24gY29tbWl0VXBkYXRlUXVldWUoZmluaXNoZWRXb3JrLCBmaW5pc2hlZFF1ZXVlLCBpbnN0YW5jZSkge1xuICAvLyBDb21taXQgdGhlIGVmZmVjdHNcbiAgdmFyIGVmZmVjdHMgPSBmaW5pc2hlZFF1ZXVlLmVmZmVjdHM7XG4gIGZpbmlzaGVkUXVldWUuZWZmZWN0cyA9IG51bGw7XG5cbiAgaWYgKGVmZmVjdHMgIT09IG51bGwpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVmZmVjdHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBlZmZlY3QgPSBlZmZlY3RzW2ldO1xuICAgICAgdmFyIGNhbGxiYWNrID0gZWZmZWN0LmNhbGxiYWNrO1xuXG4gICAgICBpZiAoY2FsbGJhY2sgIT09IG51bGwpIHtcbiAgICAgICAgZWZmZWN0LmNhbGxiYWNrID0gbnVsbDtcbiAgICAgICAgY2FsbENhbGxiYWNrKGNhbGxiYWNrLCBpbnN0YW5jZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbnZhciBmYWtlSW50ZXJuYWxJbnN0YW5jZSA9IHt9O1xudmFyIGlzQXJyYXkgPSBBcnJheS5pc0FycmF5OyAvLyBSZWFjdC5Db21wb25lbnQgdXNlcyBhIHNoYXJlZCBmcm96ZW4gb2JqZWN0IGJ5IGRlZmF1bHQuXG4vLyBXZSdsbCB1c2UgaXQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgd2UgbmVlZCB0byBpbml0aWFsaXplIGxlZ2FjeSByZWZzLlxuXG52YXIgZW1wdHlSZWZzT2JqZWN0ID0gbmV3IFJlYWN0LkNvbXBvbmVudCgpLnJlZnM7XG52YXIgZGlkV2FybkFib3V0U3RhdGVBc3NpZ25tZW50Rm9yQ29tcG9uZW50O1xudmFyIGRpZFdhcm5BYm91dFVuaW5pdGlhbGl6ZWRTdGF0ZTtcbnZhciBkaWRXYXJuQWJvdXRHZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZVdpdGhvdXREaWRVcGRhdGU7XG52YXIgZGlkV2FybkFib3V0TGVnYWN5TGlmZWN5Y2xlc0FuZERlcml2ZWRTdGF0ZTtcbnZhciBkaWRXYXJuQWJvdXRVbmRlZmluZWREZXJpdmVkU3RhdGU7XG52YXIgd2Fybk9uVW5kZWZpbmVkRGVyaXZlZFN0YXRlO1xudmFyIHdhcm5PbkludmFsaWRDYWxsYmFjaztcbnZhciBkaWRXYXJuQWJvdXREaXJlY3RseUFzc2lnbmluZ1Byb3BzVG9TdGF0ZTtcbnZhciBkaWRXYXJuQWJvdXRDb250ZXh0VHlwZUFuZENvbnRleHRUeXBlcztcbnZhciBkaWRXYXJuQWJvdXRJbnZhbGlkYXRlQ29udGV4dFR5cGU7XG5cbntcbiAgZGlkV2FybkFib3V0U3RhdGVBc3NpZ25tZW50Rm9yQ29tcG9uZW50ID0gbmV3IFNldCgpO1xuICBkaWRXYXJuQWJvdXRVbmluaXRpYWxpemVkU3RhdGUgPSBuZXcgU2V0KCk7XG4gIGRpZFdhcm5BYm91dEdldFNuYXBzaG90QmVmb3JlVXBkYXRlV2l0aG91dERpZFVwZGF0ZSA9IG5ldyBTZXQoKTtcbiAgZGlkV2FybkFib3V0TGVnYWN5TGlmZWN5Y2xlc0FuZERlcml2ZWRTdGF0ZSA9IG5ldyBTZXQoKTtcbiAgZGlkV2FybkFib3V0RGlyZWN0bHlBc3NpZ25pbmdQcm9wc1RvU3RhdGUgPSBuZXcgU2V0KCk7XG4gIGRpZFdhcm5BYm91dFVuZGVmaW5lZERlcml2ZWRTdGF0ZSA9IG5ldyBTZXQoKTtcbiAgZGlkV2FybkFib3V0Q29udGV4dFR5cGVBbmRDb250ZXh0VHlwZXMgPSBuZXcgU2V0KCk7XG4gIGRpZFdhcm5BYm91dEludmFsaWRhdGVDb250ZXh0VHlwZSA9IG5ldyBTZXQoKTtcbiAgdmFyIGRpZFdhcm5PbkludmFsaWRDYWxsYmFjayA9IG5ldyBTZXQoKTtcblxuICB3YXJuT25JbnZhbGlkQ2FsbGJhY2sgPSBmdW5jdGlvbiAoY2FsbGJhY2ssIGNhbGxlck5hbWUpIHtcbiAgICBpZiAoY2FsbGJhY2sgPT09IG51bGwgfHwgdHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIGtleSA9IGNhbGxlck5hbWUgKyAnXycgKyBjYWxsYmFjaztcblxuICAgIGlmICghZGlkV2Fybk9uSW52YWxpZENhbGxiYWNrLmhhcyhrZXkpKSB7XG4gICAgICBkaWRXYXJuT25JbnZhbGlkQ2FsbGJhY2suYWRkKGtleSk7XG5cbiAgICAgIGVycm9yKCclcyguLi4pOiBFeHBlY3RlZCB0aGUgbGFzdCBvcHRpb25hbCBgY2FsbGJhY2tgIGFyZ3VtZW50IHRvIGJlIGEgJyArICdmdW5jdGlvbi4gSW5zdGVhZCByZWNlaXZlZDogJXMuJywgY2FsbGVyTmFtZSwgY2FsbGJhY2spO1xuICAgIH1cbiAgfTtcblxuICB3YXJuT25VbmRlZmluZWREZXJpdmVkU3RhdGUgPSBmdW5jdGlvbiAodHlwZSwgcGFydGlhbFN0YXRlKSB7XG4gICAgaWYgKHBhcnRpYWxTdGF0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB2YXIgY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWUodHlwZSkgfHwgJ0NvbXBvbmVudCc7XG5cbiAgICAgIGlmICghZGlkV2FybkFib3V0VW5kZWZpbmVkRGVyaXZlZFN0YXRlLmhhcyhjb21wb25lbnROYW1lKSkge1xuICAgICAgICBkaWRXYXJuQWJvdXRVbmRlZmluZWREZXJpdmVkU3RhdGUuYWRkKGNvbXBvbmVudE5hbWUpO1xuXG4gICAgICAgIGVycm9yKCclcy5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMoKTogQSB2YWxpZCBzdGF0ZSBvYmplY3QgKG9yIG51bGwpIG11c3QgYmUgcmV0dXJuZWQuICcgKyAnWW91IGhhdmUgcmV0dXJuZWQgdW5kZWZpbmVkLicsIGNvbXBvbmVudE5hbWUpO1xuICAgICAgfVxuICAgIH1cbiAgfTsgLy8gVGhpcyBpcyBzbyBncm9zcyBidXQgaXQncyBhdCBsZWFzdCBub24tY3JpdGljYWwgYW5kIGNhbiBiZSByZW1vdmVkIGlmXG4gIC8vIGl0IGNhdXNlcyBwcm9ibGVtcy4gVGhpcyBpcyBtZWFudCB0byBnaXZlIGEgbmljZXIgZXJyb3IgbWVzc2FnZSBmb3JcbiAgLy8gUmVhY3RET00xNS51bnN0YWJsZV9yZW5kZXJTdWJ0cmVlSW50b0NvbnRhaW5lcihyZWFjdERPTTE2Q29tcG9uZW50LFxuICAvLyAuLi4pKSB3aGljaCBvdGhlcndpc2UgdGhyb3dzIGEgXCJfcHJvY2Vzc0NoaWxkQ29udGV4dCBpcyBub3QgYSBmdW5jdGlvblwiXG4gIC8vIGV4Y2VwdGlvbi5cblxuXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmYWtlSW50ZXJuYWxJbnN0YW5jZSwgJ19wcm9jZXNzQ2hpbGRDb250ZXh0Jywge1xuICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgIHZhbHVlOiBmdW5jdGlvbiAoKSB7XG4gICAgICB7XG4gICAgICAgIHtcbiAgICAgICAgICB0aHJvdyBFcnJvciggXCJfcHJvY2Vzc0NoaWxkQ29udGV4dCBpcyBub3QgYXZhaWxhYmxlIGluIFJlYWN0IDE2Ky4gVGhpcyBsaWtlbHkgbWVhbnMgeW91IGhhdmUgbXVsdGlwbGUgY29waWVzIG9mIFJlYWN0IGFuZCBhcmUgYXR0ZW1wdGluZyB0byBuZXN0IGEgUmVhY3QgMTUgdHJlZSBpbnNpZGUgYSBSZWFjdCAxNiB0cmVlIHVzaW5nIHVuc3RhYmxlX3JlbmRlclN1YnRyZWVJbnRvQ29udGFpbmVyLCB3aGljaCBpc24ndCBzdXBwb3J0ZWQuIFRyeSB0byBtYWtlIHN1cmUgeW91IGhhdmUgb25seSBvbmUgY29weSBvZiBSZWFjdCAoYW5kIGlkZWFsbHksIHN3aXRjaCB0byBSZWFjdERPTS5jcmVhdGVQb3J0YWwpLlwiICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuICBPYmplY3QuZnJlZXplKGZha2VJbnRlcm5hbEluc3RhbmNlKTtcbn1cblxuZnVuY3Rpb24gYXBwbHlEZXJpdmVkU3RhdGVGcm9tUHJvcHMod29ya0luUHJvZ3Jlc3MsIGN0b3IsIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcywgbmV4dFByb3BzKSB7XG4gIHZhciBwcmV2U3RhdGUgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlO1xuXG4gIHtcbiAgICBpZiAoIHdvcmtJblByb2dyZXNzLm1vZGUgJiBTdHJpY3RNb2RlKSB7XG4gICAgICBkaXNhYmxlTG9ncygpO1xuXG4gICAgICB0cnkge1xuICAgICAgICAvLyBJbnZva2UgdGhlIGZ1bmN0aW9uIGFuIGV4dHJhIHRpbWUgdG8gaGVscCBkZXRlY3Qgc2lkZS1lZmZlY3RzLlxuICAgICAgICBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMobmV4dFByb3BzLCBwcmV2U3RhdGUpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgcmVlbmFibGVMb2dzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdmFyIHBhcnRpYWxTdGF0ZSA9IGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyhuZXh0UHJvcHMsIHByZXZTdGF0ZSk7XG5cbiAge1xuICAgIHdhcm5PblVuZGVmaW5lZERlcml2ZWRTdGF0ZShjdG9yLCBwYXJ0aWFsU3RhdGUpO1xuICB9IC8vIE1lcmdlIHRoZSBwYXJ0aWFsIHN0YXRlIGFuZCB0aGUgcHJldmlvdXMgc3RhdGUuXG5cblxuICB2YXIgbWVtb2l6ZWRTdGF0ZSA9IHBhcnRpYWxTdGF0ZSA9PT0gbnVsbCB8fCBwYXJ0aWFsU3RhdGUgPT09IHVuZGVmaW5lZCA/IHByZXZTdGF0ZSA6IF9hc3NpZ24oe30sIHByZXZTdGF0ZSwgcGFydGlhbFN0YXRlKTtcbiAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IG1lbW9pemVkU3RhdGU7IC8vIE9uY2UgdGhlIHVwZGF0ZSBxdWV1ZSBpcyBlbXB0eSwgcGVyc2lzdCB0aGUgZGVyaXZlZCBzdGF0ZSBvbnRvIHRoZVxuICAvLyBiYXNlIHN0YXRlLlxuXG4gIGlmICh3b3JrSW5Qcm9ncmVzcy5sYW5lcyA9PT0gTm9MYW5lcykge1xuICAgIC8vIFF1ZXVlIGlzIGFsd2F5cyBub24tbnVsbCBmb3IgY2xhc3Nlc1xuICAgIHZhciB1cGRhdGVRdWV1ZSA9IHdvcmtJblByb2dyZXNzLnVwZGF0ZVF1ZXVlO1xuICAgIHVwZGF0ZVF1ZXVlLmJhc2VTdGF0ZSA9IG1lbW9pemVkU3RhdGU7XG4gIH1cbn1cbnZhciBjbGFzc0NvbXBvbmVudFVwZGF0ZXIgPSB7XG4gIGlzTW91bnRlZDogaXNNb3VudGVkLFxuICBlbnF1ZXVlU2V0U3RhdGU6IGZ1bmN0aW9uIChpbnN0LCBwYXlsb2FkLCBjYWxsYmFjaykge1xuICAgIHZhciBmaWJlciA9IGdldChpbnN0KTtcbiAgICB2YXIgZXZlbnRUaW1lID0gcmVxdWVzdEV2ZW50VGltZSgpO1xuICAgIHZhciBsYW5lID0gcmVxdWVzdFVwZGF0ZUxhbmUoZmliZXIpO1xuICAgIHZhciB1cGRhdGUgPSBjcmVhdGVVcGRhdGUoZXZlbnRUaW1lLCBsYW5lKTtcbiAgICB1cGRhdGUucGF5bG9hZCA9IHBheWxvYWQ7XG5cbiAgICBpZiAoY2FsbGJhY2sgIT09IHVuZGVmaW5lZCAmJiBjYWxsYmFjayAhPT0gbnVsbCkge1xuICAgICAge1xuICAgICAgICB3YXJuT25JbnZhbGlkQ2FsbGJhY2soY2FsbGJhY2ssICdzZXRTdGF0ZScpO1xuICAgICAgfVxuXG4gICAgICB1cGRhdGUuY2FsbGJhY2sgPSBjYWxsYmFjaztcbiAgICB9XG5cbiAgICBlbnF1ZXVlVXBkYXRlKGZpYmVyLCB1cGRhdGUpO1xuICAgIHNjaGVkdWxlVXBkYXRlT25GaWJlcihmaWJlciwgbGFuZSwgZXZlbnRUaW1lKTtcbiAgfSxcbiAgZW5xdWV1ZVJlcGxhY2VTdGF0ZTogZnVuY3Rpb24gKGluc3QsIHBheWxvYWQsIGNhbGxiYWNrKSB7XG4gICAgdmFyIGZpYmVyID0gZ2V0KGluc3QpO1xuICAgIHZhciBldmVudFRpbWUgPSByZXF1ZXN0RXZlbnRUaW1lKCk7XG4gICAgdmFyIGxhbmUgPSByZXF1ZXN0VXBkYXRlTGFuZShmaWJlcik7XG4gICAgdmFyIHVwZGF0ZSA9IGNyZWF0ZVVwZGF0ZShldmVudFRpbWUsIGxhbmUpO1xuICAgIHVwZGF0ZS50YWcgPSBSZXBsYWNlU3RhdGU7XG4gICAgdXBkYXRlLnBheWxvYWQgPSBwYXlsb2FkO1xuXG4gICAgaWYgKGNhbGxiYWNrICE9PSB1bmRlZmluZWQgJiYgY2FsbGJhY2sgIT09IG51bGwpIHtcbiAgICAgIHtcbiAgICAgICAgd2Fybk9uSW52YWxpZENhbGxiYWNrKGNhbGxiYWNrLCAncmVwbGFjZVN0YXRlJyk7XG4gICAgICB9XG5cbiAgICAgIHVwZGF0ZS5jYWxsYmFjayA9IGNhbGxiYWNrO1xuICAgIH1cblxuICAgIGVucXVldWVVcGRhdGUoZmliZXIsIHVwZGF0ZSk7XG4gICAgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKGZpYmVyLCBsYW5lLCBldmVudFRpbWUpO1xuICB9LFxuICBlbnF1ZXVlRm9yY2VVcGRhdGU6IGZ1bmN0aW9uIChpbnN0LCBjYWxsYmFjaykge1xuICAgIHZhciBmaWJlciA9IGdldChpbnN0KTtcbiAgICB2YXIgZXZlbnRUaW1lID0gcmVxdWVzdEV2ZW50VGltZSgpO1xuICAgIHZhciBsYW5lID0gcmVxdWVzdFVwZGF0ZUxhbmUoZmliZXIpO1xuICAgIHZhciB1cGRhdGUgPSBjcmVhdGVVcGRhdGUoZXZlbnRUaW1lLCBsYW5lKTtcbiAgICB1cGRhdGUudGFnID0gRm9yY2VVcGRhdGU7XG5cbiAgICBpZiAoY2FsbGJhY2sgIT09IHVuZGVmaW5lZCAmJiBjYWxsYmFjayAhPT0gbnVsbCkge1xuICAgICAge1xuICAgICAgICB3YXJuT25JbnZhbGlkQ2FsbGJhY2soY2FsbGJhY2ssICdmb3JjZVVwZGF0ZScpO1xuICAgICAgfVxuXG4gICAgICB1cGRhdGUuY2FsbGJhY2sgPSBjYWxsYmFjaztcbiAgICB9XG5cbiAgICBlbnF1ZXVlVXBkYXRlKGZpYmVyLCB1cGRhdGUpO1xuICAgIHNjaGVkdWxlVXBkYXRlT25GaWJlcihmaWJlciwgbGFuZSwgZXZlbnRUaW1lKTtcbiAgfVxufTtcblxuZnVuY3Rpb24gY2hlY2tTaG91bGRDb21wb25lbnRVcGRhdGUod29ya0luUHJvZ3Jlc3MsIGN0b3IsIG9sZFByb3BzLCBuZXdQcm9wcywgb2xkU3RhdGUsIG5ld1N0YXRlLCBuZXh0Q29udGV4dCkge1xuICB2YXIgaW5zdGFuY2UgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG5cbiAgaWYgKHR5cGVvZiBpbnN0YW5jZS5zaG91bGRDb21wb25lbnRVcGRhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICB7XG4gICAgICBpZiAoIHdvcmtJblByb2dyZXNzLm1vZGUgJiBTdHJpY3RNb2RlKSB7XG4gICAgICAgIGRpc2FibGVMb2dzKCk7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAvLyBJbnZva2UgdGhlIGZ1bmN0aW9uIGFuIGV4dHJhIHRpbWUgdG8gaGVscCBkZXRlY3Qgc2lkZS1lZmZlY3RzLlxuICAgICAgICAgIGluc3RhbmNlLnNob3VsZENvbXBvbmVudFVwZGF0ZShuZXdQcm9wcywgbmV3U3RhdGUsIG5leHRDb250ZXh0KTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICByZWVuYWJsZUxvZ3MoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBzaG91bGRVcGRhdGUgPSBpbnN0YW5jZS5zaG91bGRDb21wb25lbnRVcGRhdGUobmV3UHJvcHMsIG5ld1N0YXRlLCBuZXh0Q29udGV4dCk7XG5cbiAgICB7XG4gICAgICBpZiAoc2hvdWxkVXBkYXRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZXJyb3IoJyVzLnNob3VsZENvbXBvbmVudFVwZGF0ZSgpOiBSZXR1cm5lZCB1bmRlZmluZWQgaW5zdGVhZCBvZiBhICcgKyAnYm9vbGVhbiB2YWx1ZS4gTWFrZSBzdXJlIHRvIHJldHVybiB0cnVlIG9yIGZhbHNlLicsIGdldENvbXBvbmVudE5hbWUoY3RvcikgfHwgJ0NvbXBvbmVudCcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzaG91bGRVcGRhdGU7XG4gIH1cblxuICBpZiAoY3Rvci5wcm90b3R5cGUgJiYgY3Rvci5wcm90b3R5cGUuaXNQdXJlUmVhY3RDb21wb25lbnQpIHtcbiAgICByZXR1cm4gIXNoYWxsb3dFcXVhbChvbGRQcm9wcywgbmV3UHJvcHMpIHx8ICFzaGFsbG93RXF1YWwob2xkU3RhdGUsIG5ld1N0YXRlKTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBjaGVja0NsYXNzSW5zdGFuY2Uod29ya0luUHJvZ3Jlc3MsIGN0b3IsIG5ld1Byb3BzKSB7XG4gIHZhciBpbnN0YW5jZSA9IHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZTtcblxuICB7XG4gICAgdmFyIG5hbWUgPSBnZXRDb21wb25lbnROYW1lKGN0b3IpIHx8ICdDb21wb25lbnQnO1xuICAgIHZhciByZW5kZXJQcmVzZW50ID0gaW5zdGFuY2UucmVuZGVyO1xuXG4gICAgaWYgKCFyZW5kZXJQcmVzZW50KSB7XG4gICAgICBpZiAoY3Rvci5wcm90b3R5cGUgJiYgdHlwZW9mIGN0b3IucHJvdG90eXBlLnJlbmRlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBlcnJvcignJXMoLi4uKTogTm8gYHJlbmRlcmAgbWV0aG9kIGZvdW5kIG9uIHRoZSByZXR1cm5lZCBjb21wb25lbnQgJyArICdpbnN0YW5jZTogZGlkIHlvdSBhY2NpZGVudGFsbHkgcmV0dXJuIGFuIG9iamVjdCBmcm9tIHRoZSBjb25zdHJ1Y3Rvcj8nLCBuYW1lKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVycm9yKCclcyguLi4pOiBObyBgcmVuZGVyYCBtZXRob2QgZm91bmQgb24gdGhlIHJldHVybmVkIGNvbXBvbmVudCAnICsgJ2luc3RhbmNlOiB5b3UgbWF5IGhhdmUgZm9yZ290dGVuIHRvIGRlZmluZSBgcmVuZGVyYC4nLCBuYW1lKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaW5zdGFuY2UuZ2V0SW5pdGlhbFN0YXRlICYmICFpbnN0YW5jZS5nZXRJbml0aWFsU3RhdGUuaXNSZWFjdENsYXNzQXBwcm92ZWQgJiYgIWluc3RhbmNlLnN0YXRlKSB7XG4gICAgICBlcnJvcignZ2V0SW5pdGlhbFN0YXRlIHdhcyBkZWZpbmVkIG9uICVzLCBhIHBsYWluIEphdmFTY3JpcHQgY2xhc3MuICcgKyAnVGhpcyBpcyBvbmx5IHN1cHBvcnRlZCBmb3IgY2xhc3NlcyBjcmVhdGVkIHVzaW5nIFJlYWN0LmNyZWF0ZUNsYXNzLiAnICsgJ0RpZCB5b3UgbWVhbiB0byBkZWZpbmUgYSBzdGF0ZSBwcm9wZXJ0eSBpbnN0ZWFkPycsIG5hbWUpO1xuICAgIH1cblxuICAgIGlmIChpbnN0YW5jZS5nZXREZWZhdWx0UHJvcHMgJiYgIWluc3RhbmNlLmdldERlZmF1bHRQcm9wcy5pc1JlYWN0Q2xhc3NBcHByb3ZlZCkge1xuICAgICAgZXJyb3IoJ2dldERlZmF1bHRQcm9wcyB3YXMgZGVmaW5lZCBvbiAlcywgYSBwbGFpbiBKYXZhU2NyaXB0IGNsYXNzLiAnICsgJ1RoaXMgaXMgb25seSBzdXBwb3J0ZWQgZm9yIGNsYXNzZXMgY3JlYXRlZCB1c2luZyBSZWFjdC5jcmVhdGVDbGFzcy4gJyArICdVc2UgYSBzdGF0aWMgcHJvcGVydHkgdG8gZGVmaW5lIGRlZmF1bHRQcm9wcyBpbnN0ZWFkLicsIG5hbWUpO1xuICAgIH1cblxuICAgIGlmIChpbnN0YW5jZS5wcm9wVHlwZXMpIHtcbiAgICAgIGVycm9yKCdwcm9wVHlwZXMgd2FzIGRlZmluZWQgYXMgYW4gaW5zdGFuY2UgcHJvcGVydHkgb24gJXMuIFVzZSBhIHN0YXRpYyAnICsgJ3Byb3BlcnR5IHRvIGRlZmluZSBwcm9wVHlwZXMgaW5zdGVhZC4nLCBuYW1lKTtcbiAgICB9XG5cbiAgICBpZiAoaW5zdGFuY2UuY29udGV4dFR5cGUpIHtcbiAgICAgIGVycm9yKCdjb250ZXh0VHlwZSB3YXMgZGVmaW5lZCBhcyBhbiBpbnN0YW5jZSBwcm9wZXJ0eSBvbiAlcy4gVXNlIGEgc3RhdGljICcgKyAncHJvcGVydHkgdG8gZGVmaW5lIGNvbnRleHRUeXBlIGluc3RlYWQuJywgbmFtZSk7XG4gICAgfVxuXG4gICAge1xuICAgICAgaWYgKGluc3RhbmNlLmNvbnRleHRUeXBlcykge1xuICAgICAgICBlcnJvcignY29udGV4dFR5cGVzIHdhcyBkZWZpbmVkIGFzIGFuIGluc3RhbmNlIHByb3BlcnR5IG9uICVzLiBVc2UgYSBzdGF0aWMgJyArICdwcm9wZXJ0eSB0byBkZWZpbmUgY29udGV4dFR5cGVzIGluc3RlYWQuJywgbmFtZSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChjdG9yLmNvbnRleHRUeXBlICYmIGN0b3IuY29udGV4dFR5cGVzICYmICFkaWRXYXJuQWJvdXRDb250ZXh0VHlwZUFuZENvbnRleHRUeXBlcy5oYXMoY3RvcikpIHtcbiAgICAgICAgZGlkV2FybkFib3V0Q29udGV4dFR5cGVBbmRDb250ZXh0VHlwZXMuYWRkKGN0b3IpO1xuXG4gICAgICAgIGVycm9yKCclcyBkZWNsYXJlcyBib3RoIGNvbnRleHRUeXBlcyBhbmQgY29udGV4dFR5cGUgc3RhdGljIHByb3BlcnRpZXMuICcgKyAnVGhlIGxlZ2FjeSBjb250ZXh0VHlwZXMgcHJvcGVydHkgd2lsbCBiZSBpZ25vcmVkLicsIG5hbWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50U2hvdWxkVXBkYXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBlcnJvcignJXMgaGFzIGEgbWV0aG9kIGNhbGxlZCAnICsgJ2NvbXBvbmVudFNob3VsZFVwZGF0ZSgpLiBEaWQgeW91IG1lYW4gc2hvdWxkQ29tcG9uZW50VXBkYXRlKCk/ICcgKyAnVGhlIG5hbWUgaXMgcGhyYXNlZCBhcyBhIHF1ZXN0aW9uIGJlY2F1c2UgdGhlIGZ1bmN0aW9uIGlzICcgKyAnZXhwZWN0ZWQgdG8gcmV0dXJuIGEgdmFsdWUuJywgbmFtZSk7XG4gICAgfVxuXG4gICAgaWYgKGN0b3IucHJvdG90eXBlICYmIGN0b3IucHJvdG90eXBlLmlzUHVyZVJlYWN0Q29tcG9uZW50ICYmIHR5cGVvZiBpbnN0YW5jZS5zaG91bGRDb21wb25lbnRVcGRhdGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBlcnJvcignJXMgaGFzIGEgbWV0aG9kIGNhbGxlZCBzaG91bGRDb21wb25lbnRVcGRhdGUoKS4gJyArICdzaG91bGRDb21wb25lbnRVcGRhdGUgc2hvdWxkIG5vdCBiZSB1c2VkIHdoZW4gZXh0ZW5kaW5nIFJlYWN0LlB1cmVDb21wb25lbnQuICcgKyAnUGxlYXNlIGV4dGVuZCBSZWFjdC5Db21wb25lbnQgaWYgc2hvdWxkQ29tcG9uZW50VXBkYXRlIGlzIHVzZWQuJywgZ2V0Q29tcG9uZW50TmFtZShjdG9yKSB8fCAnQSBwdXJlIGNvbXBvbmVudCcpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50RGlkVW5tb3VudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgZXJyb3IoJyVzIGhhcyBhIG1ldGhvZCBjYWxsZWQgJyArICdjb21wb25lbnREaWRVbm1vdW50KCkuIEJ1dCB0aGVyZSBpcyBubyBzdWNoIGxpZmVjeWNsZSBtZXRob2QuICcgKyAnRGlkIHlvdSBtZWFuIGNvbXBvbmVudFdpbGxVbm1vdW50KCk/JywgbmFtZSk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnREaWRSZWNlaXZlUHJvcHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGVycm9yKCclcyBoYXMgYSBtZXRob2QgY2FsbGVkICcgKyAnY29tcG9uZW50RGlkUmVjZWl2ZVByb3BzKCkuIEJ1dCB0aGVyZSBpcyBubyBzdWNoIGxpZmVjeWNsZSBtZXRob2QuICcgKyAnSWYgeW91IG1lYW50IHRvIHVwZGF0ZSB0aGUgc3RhdGUgaW4gcmVzcG9uc2UgdG8gY2hhbmdpbmcgcHJvcHMsICcgKyAndXNlIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMoKS4gSWYgeW91IG1lYW50IHRvIGZldGNoIGRhdGEgb3IgJyArICdydW4gc2lkZS1lZmZlY3RzIG9yIG11dGF0aW9ucyBhZnRlciBSZWFjdCBoYXMgdXBkYXRlZCB0aGUgVUksIHVzZSBjb21wb25lbnREaWRVcGRhdGUoKS4nLCBuYW1lKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudFdpbGxSZWNpZXZlUHJvcHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGVycm9yKCclcyBoYXMgYSBtZXRob2QgY2FsbGVkICcgKyAnY29tcG9uZW50V2lsbFJlY2lldmVQcm9wcygpLiBEaWQgeW91IG1lYW4gY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcygpPycsIG5hbWUpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNpZXZlUHJvcHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGVycm9yKCclcyBoYXMgYSBtZXRob2QgY2FsbGVkICcgKyAnVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNpZXZlUHJvcHMoKS4gRGlkIHlvdSBtZWFuIFVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKCk/JywgbmFtZSk7XG4gICAgfVxuXG4gICAgdmFyIGhhc011dGF0ZWRQcm9wcyA9IGluc3RhbmNlLnByb3BzICE9PSBuZXdQcm9wcztcblxuICAgIGlmIChpbnN0YW5jZS5wcm9wcyAhPT0gdW5kZWZpbmVkICYmIGhhc011dGF0ZWRQcm9wcykge1xuICAgICAgZXJyb3IoJyVzKC4uLik6IFdoZW4gY2FsbGluZyBzdXBlcigpIGluIGAlc2AsIG1ha2Ugc3VyZSB0byBwYXNzICcgKyBcInVwIHRoZSBzYW1lIHByb3BzIHRoYXQgeW91ciBjb21wb25lbnQncyBjb25zdHJ1Y3RvciB3YXMgcGFzc2VkLlwiLCBuYW1lLCBuYW1lKTtcbiAgICB9XG5cbiAgICBpZiAoaW5zdGFuY2UuZGVmYXVsdFByb3BzKSB7XG4gICAgICBlcnJvcignU2V0dGluZyBkZWZhdWx0UHJvcHMgYXMgYW4gaW5zdGFuY2UgcHJvcGVydHkgb24gJXMgaXMgbm90IHN1cHBvcnRlZCBhbmQgd2lsbCBiZSBpZ25vcmVkLicgKyAnIEluc3RlYWQsIGRlZmluZSBkZWZhdWx0UHJvcHMgYXMgYSBzdGF0aWMgcHJvcGVydHkgb24gJXMuJywgbmFtZSwgbmFtZSk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50RGlkVXBkYXRlICE9PSAnZnVuY3Rpb24nICYmICFkaWRXYXJuQWJvdXRHZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZVdpdGhvdXREaWRVcGRhdGUuaGFzKGN0b3IpKSB7XG4gICAgICBkaWRXYXJuQWJvdXRHZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZVdpdGhvdXREaWRVcGRhdGUuYWRkKGN0b3IpO1xuXG4gICAgICBlcnJvcignJXM6IGdldFNuYXBzaG90QmVmb3JlVXBkYXRlKCkgc2hvdWxkIGJlIHVzZWQgd2l0aCBjb21wb25lbnREaWRVcGRhdGUoKS4gJyArICdUaGlzIGNvbXBvbmVudCBkZWZpbmVzIGdldFNuYXBzaG90QmVmb3JlVXBkYXRlKCkgb25seS4nLCBnZXRDb21wb25lbnROYW1lKGN0b3IpKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGluc3RhbmNlLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgZXJyb3IoJyVzOiBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMoKSBpcyBkZWZpbmVkIGFzIGFuIGluc3RhbmNlIG1ldGhvZCAnICsgJ2FuZCB3aWxsIGJlIGlnbm9yZWQuIEluc3RlYWQsIGRlY2xhcmUgaXQgYXMgYSBzdGF0aWMgbWV0aG9kLicsIG5hbWUpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgaW5zdGFuY2UuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBlcnJvcignJXM6IGdldERlcml2ZWRTdGF0ZUZyb21FcnJvcigpIGlzIGRlZmluZWQgYXMgYW4gaW5zdGFuY2UgbWV0aG9kICcgKyAnYW5kIHdpbGwgYmUgaWdub3JlZC4gSW5zdGVhZCwgZGVjbGFyZSBpdCBhcyBhIHN0YXRpYyBtZXRob2QuJywgbmFtZSk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBjdG9yLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBlcnJvcignJXM6IGdldFNuYXBzaG90QmVmb3JlVXBkYXRlKCkgaXMgZGVmaW5lZCBhcyBhIHN0YXRpYyBtZXRob2QgJyArICdhbmQgd2lsbCBiZSBpZ25vcmVkLiBJbnN0ZWFkLCBkZWNsYXJlIGl0IGFzIGFuIGluc3RhbmNlIG1ldGhvZC4nLCBuYW1lKTtcbiAgICB9XG5cbiAgICB2YXIgX3N0YXRlID0gaW5zdGFuY2Uuc3RhdGU7XG5cbiAgICBpZiAoX3N0YXRlICYmICh0eXBlb2YgX3N0YXRlICE9PSAnb2JqZWN0JyB8fCBpc0FycmF5KF9zdGF0ZSkpKSB7XG4gICAgICBlcnJvcignJXMuc3RhdGU6IG11c3QgYmUgc2V0IHRvIGFuIG9iamVjdCBvciBudWxsJywgbmFtZSk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5nZXRDaGlsZENvbnRleHQgPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIGN0b3IuY2hpbGRDb250ZXh0VHlwZXMgIT09ICdvYmplY3QnKSB7XG4gICAgICBlcnJvcignJXMuZ2V0Q2hpbGRDb250ZXh0KCk6IGNoaWxkQ29udGV4dFR5cGVzIG11c3QgYmUgZGVmaW5lZCBpbiBvcmRlciB0byAnICsgJ3VzZSBnZXRDaGlsZENvbnRleHQoKS4nLCBuYW1lKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gYWRvcHRDbGFzc0luc3RhbmNlKHdvcmtJblByb2dyZXNzLCBpbnN0YW5jZSkge1xuICBpbnN0YW5jZS51cGRhdGVyID0gY2xhc3NDb21wb25lbnRVcGRhdGVyO1xuICB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGUgPSBpbnN0YW5jZTsgLy8gVGhlIGluc3RhbmNlIG5lZWRzIGFjY2VzcyB0byB0aGUgZmliZXIgc28gdGhhdCBpdCBjYW4gc2NoZWR1bGUgdXBkYXRlc1xuXG4gIHNldChpbnN0YW5jZSwgd29ya0luUHJvZ3Jlc3MpO1xuXG4gIHtcbiAgICBpbnN0YW5jZS5fcmVhY3RJbnRlcm5hbEluc3RhbmNlID0gZmFrZUludGVybmFsSW5zdGFuY2U7XG4gIH1cbn1cblxuZnVuY3Rpb24gY29uc3RydWN0Q2xhc3NJbnN0YW5jZSh3b3JrSW5Qcm9ncmVzcywgY3RvciwgcHJvcHMpIHtcbiAgdmFyIGlzTGVnYWN5Q29udGV4dENvbnN1bWVyID0gZmFsc2U7XG4gIHZhciB1bm1hc2tlZENvbnRleHQgPSBlbXB0eUNvbnRleHRPYmplY3Q7XG4gIHZhciBjb250ZXh0ID0gZW1wdHlDb250ZXh0T2JqZWN0O1xuICB2YXIgY29udGV4dFR5cGUgPSBjdG9yLmNvbnRleHRUeXBlO1xuXG4gIHtcbiAgICBpZiAoJ2NvbnRleHRUeXBlJyBpbiBjdG9yKSB7XG4gICAgICB2YXIgaXNWYWxpZCA9IC8vIEFsbG93IG51bGwgZm9yIGNvbmRpdGlvbmFsIGRlY2xhcmF0aW9uXG4gICAgICBjb250ZXh0VHlwZSA9PT0gbnVsbCB8fCBjb250ZXh0VHlwZSAhPT0gdW5kZWZpbmVkICYmIGNvbnRleHRUeXBlLiQkdHlwZW9mID09PSBSRUFDVF9DT05URVhUX1RZUEUgJiYgY29udGV4dFR5cGUuX2NvbnRleHQgPT09IHVuZGVmaW5lZDsgLy8gTm90IGEgPENvbnRleHQuQ29uc3VtZXI+XG5cbiAgICAgIGlmICghaXNWYWxpZCAmJiAhZGlkV2FybkFib3V0SW52YWxpZGF0ZUNvbnRleHRUeXBlLmhhcyhjdG9yKSkge1xuICAgICAgICBkaWRXYXJuQWJvdXRJbnZhbGlkYXRlQ29udGV4dFR5cGUuYWRkKGN0b3IpO1xuICAgICAgICB2YXIgYWRkZW5kdW0gPSAnJztcblxuICAgICAgICBpZiAoY29udGV4dFR5cGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGFkZGVuZHVtID0gJyBIb3dldmVyLCBpdCBpcyBzZXQgdG8gdW5kZWZpbmVkLiAnICsgJ1RoaXMgY2FuIGJlIGNhdXNlZCBieSBhIHR5cG8gb3IgYnkgbWl4aW5nIHVwIG5hbWVkIGFuZCBkZWZhdWx0IGltcG9ydHMuICcgKyAnVGhpcyBjYW4gYWxzbyBoYXBwZW4gZHVlIHRvIGEgY2lyY3VsYXIgZGVwZW5kZW5jeSwgc28gJyArICd0cnkgbW92aW5nIHRoZSBjcmVhdGVDb250ZXh0KCkgY2FsbCB0byBhIHNlcGFyYXRlIGZpbGUuJztcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgY29udGV4dFR5cGUgIT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgYWRkZW5kdW0gPSAnIEhvd2V2ZXIsIGl0IGlzIHNldCB0byBhICcgKyB0eXBlb2YgY29udGV4dFR5cGUgKyAnLic7XG4gICAgICAgIH0gZWxzZSBpZiAoY29udGV4dFR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX1BST1ZJREVSX1RZUEUpIHtcbiAgICAgICAgICBhZGRlbmR1bSA9ICcgRGlkIHlvdSBhY2NpZGVudGFsbHkgcGFzcyB0aGUgQ29udGV4dC5Qcm92aWRlciBpbnN0ZWFkPyc7XG4gICAgICAgIH0gZWxzZSBpZiAoY29udGV4dFR5cGUuX2NvbnRleHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIC8vIDxDb250ZXh0LkNvbnN1bWVyPlxuICAgICAgICAgIGFkZGVuZHVtID0gJyBEaWQgeW91IGFjY2lkZW50YWxseSBwYXNzIHRoZSBDb250ZXh0LkNvbnN1bWVyIGluc3RlYWQ/JztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhZGRlbmR1bSA9ICcgSG93ZXZlciwgaXQgaXMgc2V0IHRvIGFuIG9iamVjdCB3aXRoIGtleXMgeycgKyBPYmplY3Qua2V5cyhjb250ZXh0VHlwZSkuam9pbignLCAnKSArICd9Lic7XG4gICAgICAgIH1cblxuICAgICAgICBlcnJvcignJXMgZGVmaW5lcyBhbiBpbnZhbGlkIGNvbnRleHRUeXBlLiAnICsgJ2NvbnRleHRUeXBlIHNob3VsZCBwb2ludCB0byB0aGUgQ29udGV4dCBvYmplY3QgcmV0dXJuZWQgYnkgUmVhY3QuY3JlYXRlQ29udGV4dCgpLiVzJywgZ2V0Q29tcG9uZW50TmFtZShjdG9yKSB8fCAnQ29tcG9uZW50JywgYWRkZW5kdW0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmICh0eXBlb2YgY29udGV4dFR5cGUgPT09ICdvYmplY3QnICYmIGNvbnRleHRUeXBlICE9PSBudWxsKSB7XG4gICAgY29udGV4dCA9IHJlYWRDb250ZXh0KGNvbnRleHRUeXBlKTtcbiAgfSBlbHNlIHtcbiAgICB1bm1hc2tlZENvbnRleHQgPSBnZXRVbm1hc2tlZENvbnRleHQod29ya0luUHJvZ3Jlc3MsIGN0b3IsIHRydWUpO1xuICAgIHZhciBjb250ZXh0VHlwZXMgPSBjdG9yLmNvbnRleHRUeXBlcztcbiAgICBpc0xlZ2FjeUNvbnRleHRDb25zdW1lciA9IGNvbnRleHRUeXBlcyAhPT0gbnVsbCAmJiBjb250ZXh0VHlwZXMgIT09IHVuZGVmaW5lZDtcbiAgICBjb250ZXh0ID0gaXNMZWdhY3lDb250ZXh0Q29uc3VtZXIgPyBnZXRNYXNrZWRDb250ZXh0KHdvcmtJblByb2dyZXNzLCB1bm1hc2tlZENvbnRleHQpIDogZW1wdHlDb250ZXh0T2JqZWN0O1xuICB9IC8vIEluc3RhbnRpYXRlIHR3aWNlIHRvIGhlbHAgZGV0ZWN0IHNpZGUtZWZmZWN0cy5cblxuXG4gIHtcbiAgICBpZiAoIHdvcmtJblByb2dyZXNzLm1vZGUgJiBTdHJpY3RNb2RlKSB7XG4gICAgICBkaXNhYmxlTG9ncygpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBuZXcgY3Rvcihwcm9wcywgY29udGV4dCk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tbmV3XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICByZWVuYWJsZUxvZ3MoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB2YXIgaW5zdGFuY2UgPSBuZXcgY3Rvcihwcm9wcywgY29udGV4dCk7XG4gIHZhciBzdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBpbnN0YW5jZS5zdGF0ZSAhPT0gbnVsbCAmJiBpbnN0YW5jZS5zdGF0ZSAhPT0gdW5kZWZpbmVkID8gaW5zdGFuY2Uuc3RhdGUgOiBudWxsO1xuICBhZG9wdENsYXNzSW5zdGFuY2Uod29ya0luUHJvZ3Jlc3MsIGluc3RhbmNlKTtcblxuICB7XG4gICAgaWYgKHR5cGVvZiBjdG9yLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyA9PT0gJ2Z1bmN0aW9uJyAmJiBzdGF0ZSA9PT0gbnVsbCkge1xuICAgICAgdmFyIGNvbXBvbmVudE5hbWUgPSBnZXRDb21wb25lbnROYW1lKGN0b3IpIHx8ICdDb21wb25lbnQnO1xuXG4gICAgICBpZiAoIWRpZFdhcm5BYm91dFVuaW5pdGlhbGl6ZWRTdGF0ZS5oYXMoY29tcG9uZW50TmFtZSkpIHtcbiAgICAgICAgZGlkV2FybkFib3V0VW5pbml0aWFsaXplZFN0YXRlLmFkZChjb21wb25lbnROYW1lKTtcblxuICAgICAgICBlcnJvcignYCVzYCB1c2VzIGBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHNgIGJ1dCBpdHMgaW5pdGlhbCBzdGF0ZSBpcyAnICsgJyVzLiBUaGlzIGlzIG5vdCByZWNvbW1lbmRlZC4gSW5zdGVhZCwgZGVmaW5lIHRoZSBpbml0aWFsIHN0YXRlIGJ5ICcgKyAnYXNzaWduaW5nIGFuIG9iamVjdCB0byBgdGhpcy5zdGF0ZWAgaW4gdGhlIGNvbnN0cnVjdG9yIG9mIGAlc2AuICcgKyAnVGhpcyBlbnN1cmVzIHRoYXQgYGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wc2AgYXJndW1lbnRzIGhhdmUgYSBjb25zaXN0ZW50IHNoYXBlLicsIGNvbXBvbmVudE5hbWUsIGluc3RhbmNlLnN0YXRlID09PSBudWxsID8gJ251bGwnIDogJ3VuZGVmaW5lZCcsIGNvbXBvbmVudE5hbWUpO1xuICAgICAgfVxuICAgIH0gLy8gSWYgbmV3IGNvbXBvbmVudCBBUElzIGFyZSBkZWZpbmVkLCBcInVuc2FmZVwiIGxpZmVjeWNsZXMgd29uJ3QgYmUgY2FsbGVkLlxuICAgIC8vIFdhcm4gYWJvdXQgdGhlc2UgbGlmZWN5Y2xlcyBpZiB0aGV5IGFyZSBwcmVzZW50LlxuICAgIC8vIERvbid0IHdhcm4gYWJvdXQgcmVhY3QtbGlmZWN5Y2xlcy1jb21wYXQgcG9seWZpbGxlZCBtZXRob2RzIHRob3VnaC5cblxuXG4gICAgaWYgKHR5cGVvZiBjdG9yLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyA9PT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2YgaW5zdGFuY2UuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHZhciBmb3VuZFdpbGxNb3VudE5hbWUgPSBudWxsO1xuICAgICAgdmFyIGZvdW5kV2lsbFJlY2VpdmVQcm9wc05hbWUgPSBudWxsO1xuICAgICAgdmFyIGZvdW5kV2lsbFVwZGF0ZU5hbWUgPSBudWxsO1xuXG4gICAgICBpZiAodHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudFdpbGxNb3VudCA9PT0gJ2Z1bmN0aW9uJyAmJiBpbnN0YW5jZS5jb21wb25lbnRXaWxsTW91bnQuX19zdXBwcmVzc0RlcHJlY2F0aW9uV2FybmluZyAhPT0gdHJ1ZSkge1xuICAgICAgICBmb3VuZFdpbGxNb3VudE5hbWUgPSAnY29tcG9uZW50V2lsbE1vdW50JztcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGluc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgZm91bmRXaWxsTW91bnROYW1lID0gJ1VOU0FGRV9jb21wb25lbnRXaWxsTW91bnQnO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgPT09ICdmdW5jdGlvbicgJiYgaW5zdGFuY2UuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcy5fX3N1cHByZXNzRGVwcmVjYXRpb25XYXJuaW5nICE9PSB0cnVlKSB7XG4gICAgICAgIGZvdW5kV2lsbFJlY2VpdmVQcm9wc05hbWUgPSAnY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyc7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBpbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBmb3VuZFdpbGxSZWNlaXZlUHJvcHNOYW1lID0gJ1VOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJztcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnRXaWxsVXBkYXRlID09PSAnZnVuY3Rpb24nICYmIGluc3RhbmNlLmNvbXBvbmVudFdpbGxVcGRhdGUuX19zdXBwcmVzc0RlcHJlY2F0aW9uV2FybmluZyAhPT0gdHJ1ZSkge1xuICAgICAgICBmb3VuZFdpbGxVcGRhdGVOYW1lID0gJ2NvbXBvbmVudFdpbGxVcGRhdGUnO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgZm91bmRXaWxsVXBkYXRlTmFtZSA9ICdVTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZSc7XG4gICAgICB9XG5cbiAgICAgIGlmIChmb3VuZFdpbGxNb3VudE5hbWUgIT09IG51bGwgfHwgZm91bmRXaWxsUmVjZWl2ZVByb3BzTmFtZSAhPT0gbnVsbCB8fCBmb3VuZFdpbGxVcGRhdGVOYW1lICE9PSBudWxsKSB7XG4gICAgICAgIHZhciBfY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWUoY3RvcikgfHwgJ0NvbXBvbmVudCc7XG5cbiAgICAgICAgdmFyIG5ld0FwaU5hbWUgPSB0eXBlb2YgY3Rvci5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgPT09ICdmdW5jdGlvbicgPyAnZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKCknIDogJ2dldFNuYXBzaG90QmVmb3JlVXBkYXRlKCknO1xuXG4gICAgICAgIGlmICghZGlkV2FybkFib3V0TGVnYWN5TGlmZWN5Y2xlc0FuZERlcml2ZWRTdGF0ZS5oYXMoX2NvbXBvbmVudE5hbWUpKSB7XG4gICAgICAgICAgZGlkV2FybkFib3V0TGVnYWN5TGlmZWN5Y2xlc0FuZERlcml2ZWRTdGF0ZS5hZGQoX2NvbXBvbmVudE5hbWUpO1xuXG4gICAgICAgICAgZXJyb3IoJ1Vuc2FmZSBsZWdhY3kgbGlmZWN5Y2xlcyB3aWxsIG5vdCBiZSBjYWxsZWQgZm9yIGNvbXBvbmVudHMgdXNpbmcgbmV3IGNvbXBvbmVudCBBUElzLlxcblxcbicgKyAnJXMgdXNlcyAlcyBidXQgYWxzbyBjb250YWlucyB0aGUgZm9sbG93aW5nIGxlZ2FjeSBsaWZlY3ljbGVzOiVzJXMlc1xcblxcbicgKyAnVGhlIGFib3ZlIGxpZmVjeWNsZXMgc2hvdWxkIGJlIHJlbW92ZWQuIExlYXJuIG1vcmUgYWJvdXQgdGhpcyB3YXJuaW5nIGhlcmU6XFxuJyArICdodHRwczovL3JlYWN0anMub3JnL2xpbmsvdW5zYWZlLWNvbXBvbmVudC1saWZlY3ljbGVzJywgX2NvbXBvbmVudE5hbWUsIG5ld0FwaU5hbWUsIGZvdW5kV2lsbE1vdW50TmFtZSAhPT0gbnVsbCA/IFwiXFxuICBcIiArIGZvdW5kV2lsbE1vdW50TmFtZSA6ICcnLCBmb3VuZFdpbGxSZWNlaXZlUHJvcHNOYW1lICE9PSBudWxsID8gXCJcXG4gIFwiICsgZm91bmRXaWxsUmVjZWl2ZVByb3BzTmFtZSA6ICcnLCBmb3VuZFdpbGxVcGRhdGVOYW1lICE9PSBudWxsID8gXCJcXG4gIFwiICsgZm91bmRXaWxsVXBkYXRlTmFtZSA6ICcnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSAvLyBDYWNoZSB1bm1hc2tlZCBjb250ZXh0IHNvIHdlIGNhbiBhdm9pZCByZWNyZWF0aW5nIG1hc2tlZCBjb250ZXh0IHVubGVzcyBuZWNlc3NhcnkuXG4gIC8vIFJlYWN0RmliZXJDb250ZXh0IHVzdWFsbHkgdXBkYXRlcyB0aGlzIGNhY2hlIGJ1dCBjYW4ndCBmb3IgbmV3bHktY3JlYXRlZCBpbnN0YW5jZXMuXG5cblxuICBpZiAoaXNMZWdhY3lDb250ZXh0Q29uc3VtZXIpIHtcbiAgICBjYWNoZUNvbnRleHQod29ya0luUHJvZ3Jlc3MsIHVubWFza2VkQ29udGV4dCwgY29udGV4dCk7XG4gIH1cblxuICByZXR1cm4gaW5zdGFuY2U7XG59XG5cbmZ1bmN0aW9uIGNhbGxDb21wb25lbnRXaWxsTW91bnQod29ya0luUHJvZ3Jlc3MsIGluc3RhbmNlKSB7XG4gIHZhciBvbGRTdGF0ZSA9IGluc3RhbmNlLnN0YXRlO1xuXG4gIGlmICh0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50V2lsbE1vdW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgaW5zdGFuY2UuY29tcG9uZW50V2lsbE1vdW50KCk7XG4gIH1cblxuICBpZiAodHlwZW9mIGluc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICBpbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50KCk7XG4gIH1cblxuICBpZiAob2xkU3RhdGUgIT09IGluc3RhbmNlLnN0YXRlKSB7XG4gICAge1xuICAgICAgZXJyb3IoJyVzLmNvbXBvbmVudFdpbGxNb3VudCgpOiBBc3NpZ25pbmcgZGlyZWN0bHkgdG8gdGhpcy5zdGF0ZSBpcyAnICsgXCJkZXByZWNhdGVkIChleGNlcHQgaW5zaWRlIGEgY29tcG9uZW50J3MgXCIgKyAnY29uc3RydWN0b3IpLiBVc2Ugc2V0U3RhdGUgaW5zdGVhZC4nLCBnZXRDb21wb25lbnROYW1lKHdvcmtJblByb2dyZXNzLnR5cGUpIHx8ICdDb21wb25lbnQnKTtcbiAgICB9XG5cbiAgICBjbGFzc0NvbXBvbmVudFVwZGF0ZXIuZW5xdWV1ZVJlcGxhY2VTdGF0ZShpbnN0YW5jZSwgaW5zdGFuY2Uuc3RhdGUsIG51bGwpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNhbGxDb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKHdvcmtJblByb2dyZXNzLCBpbnN0YW5jZSwgbmV3UHJvcHMsIG5leHRDb250ZXh0KSB7XG4gIHZhciBvbGRTdGF0ZSA9IGluc3RhbmNlLnN0YXRlO1xuXG4gIGlmICh0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGluc3RhbmNlLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV3UHJvcHMsIG5leHRDb250ZXh0KTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICBpbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXdQcm9wcywgbmV4dENvbnRleHQpO1xuICB9XG5cbiAgaWYgKGluc3RhbmNlLnN0YXRlICE9PSBvbGRTdGF0ZSkge1xuICAgIHtcbiAgICAgIHZhciBjb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZSh3b3JrSW5Qcm9ncmVzcy50eXBlKSB8fCAnQ29tcG9uZW50JztcblxuICAgICAgaWYgKCFkaWRXYXJuQWJvdXRTdGF0ZUFzc2lnbm1lbnRGb3JDb21wb25lbnQuaGFzKGNvbXBvbmVudE5hbWUpKSB7XG4gICAgICAgIGRpZFdhcm5BYm91dFN0YXRlQXNzaWdubWVudEZvckNvbXBvbmVudC5hZGQoY29tcG9uZW50TmFtZSk7XG5cbiAgICAgICAgZXJyb3IoJyVzLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMoKTogQXNzaWduaW5nIGRpcmVjdGx5IHRvICcgKyBcInRoaXMuc3RhdGUgaXMgZGVwcmVjYXRlZCAoZXhjZXB0IGluc2lkZSBhIGNvbXBvbmVudCdzIFwiICsgJ2NvbnN0cnVjdG9yKS4gVXNlIHNldFN0YXRlIGluc3RlYWQuJywgY29tcG9uZW50TmFtZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY2xhc3NDb21wb25lbnRVcGRhdGVyLmVucXVldWVSZXBsYWNlU3RhdGUoaW5zdGFuY2UsIGluc3RhbmNlLnN0YXRlLCBudWxsKTtcbiAgfVxufSAvLyBJbnZva2VzIHRoZSBtb3VudCBsaWZlLWN5Y2xlcyBvbiBhIHByZXZpb3VzbHkgbmV2ZXIgcmVuZGVyZWQgaW5zdGFuY2UuXG5cblxuZnVuY3Rpb24gbW91bnRDbGFzc0luc3RhbmNlKHdvcmtJblByb2dyZXNzLCBjdG9yLCBuZXdQcm9wcywgcmVuZGVyTGFuZXMpIHtcbiAge1xuICAgIGNoZWNrQ2xhc3NJbnN0YW5jZSh3b3JrSW5Qcm9ncmVzcywgY3RvciwgbmV3UHJvcHMpO1xuICB9XG5cbiAgdmFyIGluc3RhbmNlID0gd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlO1xuICBpbnN0YW5jZS5wcm9wcyA9IG5ld1Byb3BzO1xuICBpbnN0YW5jZS5zdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG4gIGluc3RhbmNlLnJlZnMgPSBlbXB0eVJlZnNPYmplY3Q7XG4gIGluaXRpYWxpemVVcGRhdGVRdWV1ZSh3b3JrSW5Qcm9ncmVzcyk7XG4gIHZhciBjb250ZXh0VHlwZSA9IGN0b3IuY29udGV4dFR5cGU7XG5cbiAgaWYgKHR5cGVvZiBjb250ZXh0VHlwZSA9PT0gJ29iamVjdCcgJiYgY29udGV4dFR5cGUgIT09IG51bGwpIHtcbiAgICBpbnN0YW5jZS5jb250ZXh0ID0gcmVhZENvbnRleHQoY29udGV4dFR5cGUpO1xuICB9IGVsc2Uge1xuICAgIHZhciB1bm1hc2tlZENvbnRleHQgPSBnZXRVbm1hc2tlZENvbnRleHQod29ya0luUHJvZ3Jlc3MsIGN0b3IsIHRydWUpO1xuICAgIGluc3RhbmNlLmNvbnRleHQgPSBnZXRNYXNrZWRDb250ZXh0KHdvcmtJblByb2dyZXNzLCB1bm1hc2tlZENvbnRleHQpO1xuICB9XG5cbiAge1xuICAgIGlmIChpbnN0YW5jZS5zdGF0ZSA9PT0gbmV3UHJvcHMpIHtcbiAgICAgIHZhciBjb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZShjdG9yKSB8fCAnQ29tcG9uZW50JztcblxuICAgICAgaWYgKCFkaWRXYXJuQWJvdXREaXJlY3RseUFzc2lnbmluZ1Byb3BzVG9TdGF0ZS5oYXMoY29tcG9uZW50TmFtZSkpIHtcbiAgICAgICAgZGlkV2FybkFib3V0RGlyZWN0bHlBc3NpZ25pbmdQcm9wc1RvU3RhdGUuYWRkKGNvbXBvbmVudE5hbWUpO1xuXG4gICAgICAgIGVycm9yKCclczogSXQgaXMgbm90IHJlY29tbWVuZGVkIHRvIGFzc2lnbiBwcm9wcyBkaXJlY3RseSB0byBzdGF0ZSAnICsgXCJiZWNhdXNlIHVwZGF0ZXMgdG8gcHJvcHMgd29uJ3QgYmUgcmVmbGVjdGVkIGluIHN0YXRlLiBcIiArICdJbiBtb3N0IGNhc2VzLCBpdCBpcyBiZXR0ZXIgdG8gdXNlIHByb3BzIGRpcmVjdGx5LicsIGNvbXBvbmVudE5hbWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgU3RyaWN0TW9kZSkge1xuICAgICAgUmVhY3RTdHJpY3RNb2RlV2FybmluZ3MucmVjb3JkTGVnYWN5Q29udGV4dFdhcm5pbmcod29ya0luUHJvZ3Jlc3MsIGluc3RhbmNlKTtcbiAgICB9XG5cbiAgICB7XG4gICAgICBSZWFjdFN0cmljdE1vZGVXYXJuaW5ncy5yZWNvcmRVbnNhZmVMaWZlY3ljbGVXYXJuaW5ncyh3b3JrSW5Qcm9ncmVzcywgaW5zdGFuY2UpO1xuICAgIH1cbiAgfVxuXG4gIHByb2Nlc3NVcGRhdGVRdWV1ZSh3b3JrSW5Qcm9ncmVzcywgbmV3UHJvcHMsIGluc3RhbmNlLCByZW5kZXJMYW5lcyk7XG4gIGluc3RhbmNlLnN0YXRlID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZTtcbiAgdmFyIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyA9IGN0b3IuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzO1xuXG4gIGlmICh0eXBlb2YgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgYXBwbHlEZXJpdmVkU3RhdGVGcm9tUHJvcHMod29ya0luUHJvZ3Jlc3MsIGN0b3IsIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcywgbmV3UHJvcHMpO1xuICAgIGluc3RhbmNlLnN0YXRlID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZTtcbiAgfSAvLyBJbiBvcmRlciB0byBzdXBwb3J0IHJlYWN0LWxpZmVjeWNsZXMtY29tcGF0IHBvbHlmaWxsZWQgY29tcG9uZW50cyxcbiAgLy8gVW5zYWZlIGxpZmVjeWNsZXMgc2hvdWxkIG5vdCBiZSBpbnZva2VkIGZvciBjb21wb25lbnRzIHVzaW5nIHRoZSBuZXcgQVBJcy5cblxuXG4gIGlmICh0eXBlb2YgY3Rvci5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgIT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIGluc3RhbmNlLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlICE9PSAnZnVuY3Rpb24nICYmICh0eXBlb2YgaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCA9PT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50V2lsbE1vdW50ID09PSAnZnVuY3Rpb24nKSkge1xuICAgIGNhbGxDb21wb25lbnRXaWxsTW91bnQod29ya0luUHJvZ3Jlc3MsIGluc3RhbmNlKTsgLy8gSWYgd2UgaGFkIGFkZGl0aW9uYWwgc3RhdGUgdXBkYXRlcyBkdXJpbmcgdGhpcyBsaWZlLWN5Y2xlLCBsZXQnc1xuICAgIC8vIHByb2Nlc3MgdGhlbSBub3cuXG5cbiAgICBwcm9jZXNzVXBkYXRlUXVldWUod29ya0luUHJvZ3Jlc3MsIG5ld1Byb3BzLCBpbnN0YW5jZSwgcmVuZGVyTGFuZXMpO1xuICAgIGluc3RhbmNlLnN0YXRlID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50RGlkTW91bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBVcGRhdGU7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVzdW1lTW91bnRDbGFzc0luc3RhbmNlKHdvcmtJblByb2dyZXNzLCBjdG9yLCBuZXdQcm9wcywgcmVuZGVyTGFuZXMpIHtcbiAgdmFyIGluc3RhbmNlID0gd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlO1xuICB2YXIgb2xkUHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFByb3BzO1xuICBpbnN0YW5jZS5wcm9wcyA9IG9sZFByb3BzO1xuICB2YXIgb2xkQ29udGV4dCA9IGluc3RhbmNlLmNvbnRleHQ7XG4gIHZhciBjb250ZXh0VHlwZSA9IGN0b3IuY29udGV4dFR5cGU7XG4gIHZhciBuZXh0Q29udGV4dCA9IGVtcHR5Q29udGV4dE9iamVjdDtcblxuICBpZiAodHlwZW9mIGNvbnRleHRUeXBlID09PSAnb2JqZWN0JyAmJiBjb250ZXh0VHlwZSAhPT0gbnVsbCkge1xuICAgIG5leHRDb250ZXh0ID0gcmVhZENvbnRleHQoY29udGV4dFR5cGUpO1xuICB9IGVsc2Uge1xuICAgIHZhciBuZXh0TGVnYWN5VW5tYXNrZWRDb250ZXh0ID0gZ2V0VW5tYXNrZWRDb250ZXh0KHdvcmtJblByb2dyZXNzLCBjdG9yLCB0cnVlKTtcbiAgICBuZXh0Q29udGV4dCA9IGdldE1hc2tlZENvbnRleHQod29ya0luUHJvZ3Jlc3MsIG5leHRMZWdhY3lVbm1hc2tlZENvbnRleHQpO1xuICB9XG5cbiAgdmFyIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyA9IGN0b3IuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzO1xuICB2YXIgaGFzTmV3TGlmZWN5Y2xlcyA9IHR5cGVvZiBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgPT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIGluc3RhbmNlLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlID09PSAnZnVuY3Rpb24nOyAvLyBOb3RlOiBEdXJpbmcgdGhlc2UgbGlmZS1jeWNsZXMsIGluc3RhbmNlLnByb3BzL2luc3RhbmNlLnN0YXRlIGFyZSB3aGF0XG4gIC8vIGV2ZXIgdGhlIHByZXZpb3VzbHkgYXR0ZW1wdGVkIHRvIHJlbmRlciAtIG5vdCB0aGUgXCJjdXJyZW50XCIuIEhvd2V2ZXIsXG4gIC8vIGR1cmluZyBjb21wb25lbnREaWRVcGRhdGUgd2UgcGFzcyB0aGUgXCJjdXJyZW50XCIgcHJvcHMuXG4gIC8vIEluIG9yZGVyIHRvIHN1cHBvcnQgcmVhY3QtbGlmZWN5Y2xlcy1jb21wYXQgcG9seWZpbGxlZCBjb21wb25lbnRzLFxuICAvLyBVbnNhZmUgbGlmZWN5Y2xlcyBzaG91bGQgbm90IGJlIGludm9rZWQgZm9yIGNvbXBvbmVudHMgdXNpbmcgdGhlIG5ldyBBUElzLlxuXG4gIGlmICghaGFzTmV3TGlmZWN5Y2xlcyAmJiAodHlwZW9mIGluc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzID09PSAnZnVuY3Rpb24nIHx8IHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzID09PSAnZnVuY3Rpb24nKSkge1xuICAgIGlmIChvbGRQcm9wcyAhPT0gbmV3UHJvcHMgfHwgb2xkQ29udGV4dCAhPT0gbmV4dENvbnRleHQpIHtcbiAgICAgIGNhbGxDb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKHdvcmtJblByb2dyZXNzLCBpbnN0YW5jZSwgbmV3UHJvcHMsIG5leHRDb250ZXh0KTtcbiAgICB9XG4gIH1cblxuICByZXNldEhhc0ZvcmNlVXBkYXRlQmVmb3JlUHJvY2Vzc2luZygpO1xuICB2YXIgb2xkU3RhdGUgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlO1xuICB2YXIgbmV3U3RhdGUgPSBpbnN0YW5jZS5zdGF0ZSA9IG9sZFN0YXRlO1xuICBwcm9jZXNzVXBkYXRlUXVldWUod29ya0luUHJvZ3Jlc3MsIG5ld1Byb3BzLCBpbnN0YW5jZSwgcmVuZGVyTGFuZXMpO1xuICBuZXdTdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG5cbiAgaWYgKG9sZFByb3BzID09PSBuZXdQcm9wcyAmJiBvbGRTdGF0ZSA9PT0gbmV3U3RhdGUgJiYgIWhhc0NvbnRleHRDaGFuZ2VkKCkgJiYgIWNoZWNrSGFzRm9yY2VVcGRhdGVBZnRlclByb2Nlc3NpbmcoKSkge1xuICAgIC8vIElmIGFuIHVwZGF0ZSB3YXMgYWxyZWFkeSBpbiBwcm9ncmVzcywgd2Ugc2hvdWxkIHNjaGVkdWxlIGFuIFVwZGF0ZVxuICAgIC8vIGVmZmVjdCBldmVuIHRob3VnaCB3ZSdyZSBiYWlsaW5nIG91dCwgc28gdGhhdCBjV1UvY0RVIGFyZSBjYWxsZWQuXG4gICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnREaWRNb3VudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gVXBkYXRlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgYXBwbHlEZXJpdmVkU3RhdGVGcm9tUHJvcHMod29ya0luUHJvZ3Jlc3MsIGN0b3IsIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcywgbmV3UHJvcHMpO1xuICAgIG5ld1N0YXRlID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZTtcbiAgfVxuXG4gIHZhciBzaG91bGRVcGRhdGUgPSBjaGVja0hhc0ZvcmNlVXBkYXRlQWZ0ZXJQcm9jZXNzaW5nKCkgfHwgY2hlY2tTaG91bGRDb21wb25lbnRVcGRhdGUod29ya0luUHJvZ3Jlc3MsIGN0b3IsIG9sZFByb3BzLCBuZXdQcm9wcywgb2xkU3RhdGUsIG5ld1N0YXRlLCBuZXh0Q29udGV4dCk7XG5cbiAgaWYgKHNob3VsZFVwZGF0ZSkge1xuICAgIC8vIEluIG9yZGVyIHRvIHN1cHBvcnQgcmVhY3QtbGlmZWN5Y2xlcy1jb21wYXQgcG9seWZpbGxlZCBjb21wb25lbnRzLFxuICAgIC8vIFVuc2FmZSBsaWZlY3ljbGVzIHNob3VsZCBub3QgYmUgaW52b2tlZCBmb3IgY29tcG9uZW50cyB1c2luZyB0aGUgbmV3IEFQSXMuXG4gICAgaWYgKCFoYXNOZXdMaWZlY3ljbGVzICYmICh0eXBlb2YgaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCA9PT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50V2lsbE1vdW50ID09PSAnZnVuY3Rpb24nKSkge1xuICAgICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnRXaWxsTW91bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgaW5zdGFuY2UuY29tcG9uZW50V2lsbE1vdW50KCk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBpbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50KCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnREaWRNb3VudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gVXBkYXRlO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBJZiBhbiB1cGRhdGUgd2FzIGFscmVhZHkgaW4gcHJvZ3Jlc3MsIHdlIHNob3VsZCBzY2hlZHVsZSBhbiBVcGRhdGVcbiAgICAvLyBlZmZlY3QgZXZlbiB0aG91Z2ggd2UncmUgYmFpbGluZyBvdXQsIHNvIHRoYXQgY1dVL2NEVSBhcmUgY2FsbGVkLlxuICAgIGlmICh0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50RGlkTW91bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IFVwZGF0ZTtcbiAgICB9IC8vIElmIHNob3VsZENvbXBvbmVudFVwZGF0ZSByZXR1cm5lZCBmYWxzZSwgd2Ugc2hvdWxkIHN0aWxsIHVwZGF0ZSB0aGVcbiAgICAvLyBtZW1vaXplZCBzdGF0ZSB0byBpbmRpY2F0ZSB0aGF0IHRoaXMgd29yayBjYW4gYmUgcmV1c2VkLlxuXG5cbiAgICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFByb3BzID0gbmV3UHJvcHM7XG4gICAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IG5ld1N0YXRlO1xuICB9IC8vIFVwZGF0ZSB0aGUgZXhpc3RpbmcgaW5zdGFuY2UncyBzdGF0ZSwgcHJvcHMsIGFuZCBjb250ZXh0IHBvaW50ZXJzIGV2ZW5cbiAgLy8gaWYgc2hvdWxkQ29tcG9uZW50VXBkYXRlIHJldHVybnMgZmFsc2UuXG5cblxuICBpbnN0YW5jZS5wcm9wcyA9IG5ld1Byb3BzO1xuICBpbnN0YW5jZS5zdGF0ZSA9IG5ld1N0YXRlO1xuICBpbnN0YW5jZS5jb250ZXh0ID0gbmV4dENvbnRleHQ7XG4gIHJldHVybiBzaG91bGRVcGRhdGU7XG59IC8vIEludm9rZXMgdGhlIHVwZGF0ZSBsaWZlLWN5Y2xlcyBhbmQgcmV0dXJucyBmYWxzZSBpZiBpdCBzaG91bGRuJ3QgcmVyZW5kZXIuXG5cblxuZnVuY3Rpb24gdXBkYXRlQ2xhc3NJbnN0YW5jZShjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgY3RvciwgbmV3UHJvcHMsIHJlbmRlckxhbmVzKSB7XG4gIHZhciBpbnN0YW5jZSA9IHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZTtcbiAgY2xvbmVVcGRhdGVRdWV1ZShjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcyk7XG4gIHZhciB1bnJlc29sdmVkT2xkUHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFByb3BzO1xuICB2YXIgb2xkUHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy50eXBlID09PSB3b3JrSW5Qcm9ncmVzcy5lbGVtZW50VHlwZSA/IHVucmVzb2x2ZWRPbGRQcm9wcyA6IHJlc29sdmVEZWZhdWx0UHJvcHMod29ya0luUHJvZ3Jlc3MudHlwZSwgdW5yZXNvbHZlZE9sZFByb3BzKTtcbiAgaW5zdGFuY2UucHJvcHMgPSBvbGRQcm9wcztcbiAgdmFyIHVucmVzb2x2ZWROZXdQcm9wcyA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcztcbiAgdmFyIG9sZENvbnRleHQgPSBpbnN0YW5jZS5jb250ZXh0O1xuICB2YXIgY29udGV4dFR5cGUgPSBjdG9yLmNvbnRleHRUeXBlO1xuICB2YXIgbmV4dENvbnRleHQgPSBlbXB0eUNvbnRleHRPYmplY3Q7XG5cbiAgaWYgKHR5cGVvZiBjb250ZXh0VHlwZSA9PT0gJ29iamVjdCcgJiYgY29udGV4dFR5cGUgIT09IG51bGwpIHtcbiAgICBuZXh0Q29udGV4dCA9IHJlYWRDb250ZXh0KGNvbnRleHRUeXBlKTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgbmV4dFVubWFza2VkQ29udGV4dCA9IGdldFVubWFza2VkQ29udGV4dCh3b3JrSW5Qcm9ncmVzcywgY3RvciwgdHJ1ZSk7XG4gICAgbmV4dENvbnRleHQgPSBnZXRNYXNrZWRDb250ZXh0KHdvcmtJblByb2dyZXNzLCBuZXh0VW5tYXNrZWRDb250ZXh0KTtcbiAgfVxuXG4gIHZhciBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgPSBjdG9yLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcztcbiAgdmFyIGhhc05ld0xpZmVjeWNsZXMgPSB0eXBlb2YgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzID09PSAnZnVuY3Rpb24nIHx8IHR5cGVvZiBpbnN0YW5jZS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSA9PT0gJ2Z1bmN0aW9uJzsgLy8gTm90ZTogRHVyaW5nIHRoZXNlIGxpZmUtY3ljbGVzLCBpbnN0YW5jZS5wcm9wcy9pbnN0YW5jZS5zdGF0ZSBhcmUgd2hhdFxuICAvLyBldmVyIHRoZSBwcmV2aW91c2x5IGF0dGVtcHRlZCB0byByZW5kZXIgLSBub3QgdGhlIFwiY3VycmVudFwiLiBIb3dldmVyLFxuICAvLyBkdXJpbmcgY29tcG9uZW50RGlkVXBkYXRlIHdlIHBhc3MgdGhlIFwiY3VycmVudFwiIHByb3BzLlxuICAvLyBJbiBvcmRlciB0byBzdXBwb3J0IHJlYWN0LWxpZmVjeWNsZXMtY29tcGF0IHBvbHlmaWxsZWQgY29tcG9uZW50cyxcbiAgLy8gVW5zYWZlIGxpZmVjeWNsZXMgc2hvdWxkIG5vdCBiZSBpbnZva2VkIGZvciBjb21wb25lbnRzIHVzaW5nIHRoZSBuZXcgQVBJcy5cblxuICBpZiAoIWhhc05ld0xpZmVjeWNsZXMgJiYgKHR5cGVvZiBpbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyA9PT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyA9PT0gJ2Z1bmN0aW9uJykpIHtcbiAgICBpZiAodW5yZXNvbHZlZE9sZFByb3BzICE9PSB1bnJlc29sdmVkTmV3UHJvcHMgfHwgb2xkQ29udGV4dCAhPT0gbmV4dENvbnRleHQpIHtcbiAgICAgIGNhbGxDb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKHdvcmtJblByb2dyZXNzLCBpbnN0YW5jZSwgbmV3UHJvcHMsIG5leHRDb250ZXh0KTtcbiAgICB9XG4gIH1cblxuICByZXNldEhhc0ZvcmNlVXBkYXRlQmVmb3JlUHJvY2Vzc2luZygpO1xuICB2YXIgb2xkU3RhdGUgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlO1xuICB2YXIgbmV3U3RhdGUgPSBpbnN0YW5jZS5zdGF0ZSA9IG9sZFN0YXRlO1xuICBwcm9jZXNzVXBkYXRlUXVldWUod29ya0luUHJvZ3Jlc3MsIG5ld1Byb3BzLCBpbnN0YW5jZSwgcmVuZGVyTGFuZXMpO1xuICBuZXdTdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG5cbiAgaWYgKHVucmVzb2x2ZWRPbGRQcm9wcyA9PT0gdW5yZXNvbHZlZE5ld1Byb3BzICYmIG9sZFN0YXRlID09PSBuZXdTdGF0ZSAmJiAhaGFzQ29udGV4dENoYW5nZWQoKSAmJiAhY2hlY2tIYXNGb3JjZVVwZGF0ZUFmdGVyUHJvY2Vzc2luZygpKSB7XG4gICAgLy8gSWYgYW4gdXBkYXRlIHdhcyBhbHJlYWR5IGluIHByb2dyZXNzLCB3ZSBzaG91bGQgc2NoZWR1bGUgYW4gVXBkYXRlXG4gICAgLy8gZWZmZWN0IGV2ZW4gdGhvdWdoIHdlJ3JlIGJhaWxpbmcgb3V0LCBzbyB0aGF0IGNXVS9jRFUgYXJlIGNhbGxlZC5cbiAgICBpZiAodHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudERpZFVwZGF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgaWYgKHVucmVzb2x2ZWRPbGRQcm9wcyAhPT0gY3VycmVudC5tZW1vaXplZFByb3BzIHx8IG9sZFN0YXRlICE9PSBjdXJyZW50Lm1lbW9pemVkU3RhdGUpIHtcbiAgICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gVXBkYXRlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgaW5zdGFuY2UuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGlmICh1bnJlc29sdmVkT2xkUHJvcHMgIT09IGN1cnJlbnQubWVtb2l6ZWRQcm9wcyB8fCBvbGRTdGF0ZSAhPT0gY3VycmVudC5tZW1vaXplZFN0YXRlKSB7XG4gICAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IFNuYXBzaG90O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgYXBwbHlEZXJpdmVkU3RhdGVGcm9tUHJvcHMod29ya0luUHJvZ3Jlc3MsIGN0b3IsIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcywgbmV3UHJvcHMpO1xuICAgIG5ld1N0YXRlID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZTtcbiAgfVxuXG4gIHZhciBzaG91bGRVcGRhdGUgPSBjaGVja0hhc0ZvcmNlVXBkYXRlQWZ0ZXJQcm9jZXNzaW5nKCkgfHwgY2hlY2tTaG91bGRDb21wb25lbnRVcGRhdGUod29ya0luUHJvZ3Jlc3MsIGN0b3IsIG9sZFByb3BzLCBuZXdQcm9wcywgb2xkU3RhdGUsIG5ld1N0YXRlLCBuZXh0Q29udGV4dCk7XG5cbiAgaWYgKHNob3VsZFVwZGF0ZSkge1xuICAgIC8vIEluIG9yZGVyIHRvIHN1cHBvcnQgcmVhY3QtbGlmZWN5Y2xlcy1jb21wYXQgcG9seWZpbGxlZCBjb21wb25lbnRzLFxuICAgIC8vIFVuc2FmZSBsaWZlY3ljbGVzIHNob3VsZCBub3QgYmUgaW52b2tlZCBmb3IgY29tcG9uZW50cyB1c2luZyB0aGUgbmV3IEFQSXMuXG4gICAgaWYgKCFoYXNOZXdMaWZlY3ljbGVzICYmICh0eXBlb2YgaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUgPT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudFdpbGxVcGRhdGUgPT09ICdmdW5jdGlvbicpKSB7XG4gICAgICBpZiAodHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudFdpbGxVcGRhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgaW5zdGFuY2UuY29tcG9uZW50V2lsbFVwZGF0ZShuZXdQcm9wcywgbmV3U3RhdGUsIG5leHRDb250ZXh0KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBpbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZShuZXdQcm9wcywgbmV3U3RhdGUsIG5leHRDb250ZXh0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudERpZFVwZGF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gVXBkYXRlO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgaW5zdGFuY2UuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IFNuYXBzaG90O1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBJZiBhbiB1cGRhdGUgd2FzIGFscmVhZHkgaW4gcHJvZ3Jlc3MsIHdlIHNob3VsZCBzY2hlZHVsZSBhbiBVcGRhdGVcbiAgICAvLyBlZmZlY3QgZXZlbiB0aG91Z2ggd2UncmUgYmFpbGluZyBvdXQsIHNvIHRoYXQgY1dVL2NEVSBhcmUgY2FsbGVkLlxuICAgIGlmICh0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50RGlkVXBkYXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBpZiAodW5yZXNvbHZlZE9sZFByb3BzICE9PSBjdXJyZW50Lm1lbW9pemVkUHJvcHMgfHwgb2xkU3RhdGUgIT09IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZSkge1xuICAgICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBVcGRhdGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgaWYgKHVucmVzb2x2ZWRPbGRQcm9wcyAhPT0gY3VycmVudC5tZW1vaXplZFByb3BzIHx8IG9sZFN0YXRlICE9PSBjdXJyZW50Lm1lbW9pemVkU3RhdGUpIHtcbiAgICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gU25hcHNob3Q7XG4gICAgICB9XG4gICAgfSAvLyBJZiBzaG91bGRDb21wb25lbnRVcGRhdGUgcmV0dXJuZWQgZmFsc2UsIHdlIHNob3VsZCBzdGlsbCB1cGRhdGUgdGhlXG4gICAgLy8gbWVtb2l6ZWQgcHJvcHMvc3RhdGUgdG8gaW5kaWNhdGUgdGhhdCB0aGlzIHdvcmsgY2FuIGJlIHJldXNlZC5cblxuXG4gICAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRQcm9wcyA9IG5ld1Byb3BzO1xuICAgIHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBuZXdTdGF0ZTtcbiAgfSAvLyBVcGRhdGUgdGhlIGV4aXN0aW5nIGluc3RhbmNlJ3Mgc3RhdGUsIHByb3BzLCBhbmQgY29udGV4dCBwb2ludGVycyBldmVuXG4gIC8vIGlmIHNob3VsZENvbXBvbmVudFVwZGF0ZSByZXR1cm5zIGZhbHNlLlxuXG5cbiAgaW5zdGFuY2UucHJvcHMgPSBuZXdQcm9wcztcbiAgaW5zdGFuY2Uuc3RhdGUgPSBuZXdTdGF0ZTtcbiAgaW5zdGFuY2UuY29udGV4dCA9IG5leHRDb250ZXh0O1xuICByZXR1cm4gc2hvdWxkVXBkYXRlO1xufVxuXG52YXIgZGlkV2FybkFib3V0TWFwcztcbnZhciBkaWRXYXJuQWJvdXRHZW5lcmF0b3JzO1xudmFyIGRpZFdhcm5BYm91dFN0cmluZ1JlZnM7XG52YXIgb3duZXJIYXNLZXlVc2VXYXJuaW5nO1xudmFyIG93bmVySGFzRnVuY3Rpb25UeXBlV2FybmluZztcblxudmFyIHdhcm5Gb3JNaXNzaW5nS2V5ID0gZnVuY3Rpb24gKGNoaWxkLCByZXR1cm5GaWJlcikge307XG5cbntcbiAgZGlkV2FybkFib3V0TWFwcyA9IGZhbHNlO1xuICBkaWRXYXJuQWJvdXRHZW5lcmF0b3JzID0gZmFsc2U7XG4gIGRpZFdhcm5BYm91dFN0cmluZ1JlZnMgPSB7fTtcbiAgLyoqXG4gICAqIFdhcm4gaWYgdGhlcmUncyBubyBrZXkgZXhwbGljaXRseSBzZXQgb24gZHluYW1pYyBhcnJheXMgb2YgY2hpbGRyZW4gb3JcbiAgICogb2JqZWN0IGtleXMgYXJlIG5vdCB2YWxpZC4gVGhpcyBhbGxvd3MgdXMgdG8ga2VlcCB0cmFjayBvZiBjaGlsZHJlbiBiZXR3ZWVuXG4gICAqIHVwZGF0ZXMuXG4gICAqL1xuXG4gIG93bmVySGFzS2V5VXNlV2FybmluZyA9IHt9O1xuICBvd25lckhhc0Z1bmN0aW9uVHlwZVdhcm5pbmcgPSB7fTtcblxuICB3YXJuRm9yTWlzc2luZ0tleSA9IGZ1bmN0aW9uIChjaGlsZCwgcmV0dXJuRmliZXIpIHtcbiAgICBpZiAoY2hpbGQgPT09IG51bGwgfHwgdHlwZW9mIGNoaWxkICE9PSAnb2JqZWN0Jykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghY2hpbGQuX3N0b3JlIHx8IGNoaWxkLl9zdG9yZS52YWxpZGF0ZWQgfHwgY2hpbGQua2V5ICE9IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoISh0eXBlb2YgY2hpbGQuX3N0b3JlID09PSAnb2JqZWN0JykpIHtcbiAgICAgIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoIFwiUmVhY3QgQ29tcG9uZW50IGluIHdhcm5Gb3JNaXNzaW5nS2V5IHNob3VsZCBoYXZlIGEgX3N0b3JlLiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLlwiICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY2hpbGQuX3N0b3JlLnZhbGlkYXRlZCA9IHRydWU7XG4gICAgdmFyIGNvbXBvbmVudE5hbWUgPSBnZXRDb21wb25lbnROYW1lKHJldHVybkZpYmVyLnR5cGUpIHx8ICdDb21wb25lbnQnO1xuXG4gICAgaWYgKG93bmVySGFzS2V5VXNlV2FybmluZ1tjb21wb25lbnROYW1lXSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG93bmVySGFzS2V5VXNlV2FybmluZ1tjb21wb25lbnROYW1lXSA9IHRydWU7XG5cbiAgICBlcnJvcignRWFjaCBjaGlsZCBpbiBhIGxpc3Qgc2hvdWxkIGhhdmUgYSB1bmlxdWUgJyArICdcImtleVwiIHByb3AuIFNlZSBodHRwczovL3JlYWN0anMub3JnL2xpbmsvd2FybmluZy1rZXlzIGZvciAnICsgJ21vcmUgaW5mb3JtYXRpb24uJyk7XG4gIH07XG59XG5cbnZhciBpc0FycmF5JDEgPSBBcnJheS5pc0FycmF5O1xuXG5mdW5jdGlvbiBjb2VyY2VSZWYocmV0dXJuRmliZXIsIGN1cnJlbnQsIGVsZW1lbnQpIHtcbiAgdmFyIG1peGVkUmVmID0gZWxlbWVudC5yZWY7XG5cbiAgaWYgKG1peGVkUmVmICE9PSBudWxsICYmIHR5cGVvZiBtaXhlZFJlZiAhPT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgbWl4ZWRSZWYgIT09ICdvYmplY3QnKSB7XG4gICAge1xuICAgICAgLy8gVE9ETzogQ2xlYW4gdGhpcyB1cCBvbmNlIHdlIHR1cm4gb24gdGhlIHN0cmluZyByZWYgd2FybmluZyBmb3JcbiAgICAgIC8vIGV2ZXJ5b25lLCBiZWNhdXNlIHRoZSBzdHJpY3QgbW9kZSBjYXNlIHdpbGwgbm8gbG9uZ2VyIGJlIHJlbGV2YW50XG4gICAgICBpZiAoKHJldHVybkZpYmVyLm1vZGUgJiBTdHJpY3RNb2RlIHx8IHdhcm5BYm91dFN0cmluZ1JlZnMpICYmIC8vIFdlIHdhcm4gaW4gUmVhY3RFbGVtZW50LmpzIGlmIG93bmVyIGFuZCBzZWxmIGFyZSBlcXVhbCBmb3Igc3RyaW5nIHJlZnNcbiAgICAgIC8vIGJlY2F1c2UgdGhlc2UgY2Fubm90IGJlIGF1dG9tYXRpY2FsbHkgY29udmVydGVkIHRvIGFuIGFycm93IGZ1bmN0aW9uXG4gICAgICAvLyB1c2luZyBhIGNvZGVtb2QuIFRoZXJlZm9yZSwgd2UgZG9uJ3QgaGF2ZSB0byB3YXJuIGFib3V0IHN0cmluZyByZWZzIGFnYWluLlxuICAgICAgIShlbGVtZW50Ll9vd25lciAmJiBlbGVtZW50Ll9zZWxmICYmIGVsZW1lbnQuX293bmVyLnN0YXRlTm9kZSAhPT0gZWxlbWVudC5fc2VsZikpIHtcbiAgICAgICAgdmFyIGNvbXBvbmVudE5hbWUgPSBnZXRDb21wb25lbnROYW1lKHJldHVybkZpYmVyLnR5cGUpIHx8ICdDb21wb25lbnQnO1xuXG4gICAgICAgIGlmICghZGlkV2FybkFib3V0U3RyaW5nUmVmc1tjb21wb25lbnROYW1lXSkge1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGVycm9yKCdBIHN0cmluZyByZWYsIFwiJXNcIiwgaGFzIGJlZW4gZm91bmQgd2l0aGluIGEgc3RyaWN0IG1vZGUgdHJlZS4gJyArICdTdHJpbmcgcmVmcyBhcmUgYSBzb3VyY2Ugb2YgcG90ZW50aWFsIGJ1Z3MgYW5kIHNob3VsZCBiZSBhdm9pZGVkLiAnICsgJ1dlIHJlY29tbWVuZCB1c2luZyB1c2VSZWYoKSBvciBjcmVhdGVSZWYoKSBpbnN0ZWFkLiAnICsgJ0xlYXJuIG1vcmUgYWJvdXQgdXNpbmcgcmVmcyBzYWZlbHkgaGVyZTogJyArICdodHRwczovL3JlYWN0anMub3JnL2xpbmsvc3RyaWN0LW1vZGUtc3RyaW5nLXJlZicsIG1peGVkUmVmKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBkaWRXYXJuQWJvdXRTdHJpbmdSZWZzW2NvbXBvbmVudE5hbWVdID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChlbGVtZW50Ll9vd25lcikge1xuICAgICAgdmFyIG93bmVyID0gZWxlbWVudC5fb3duZXI7XG4gICAgICB2YXIgaW5zdDtcblxuICAgICAgaWYgKG93bmVyKSB7XG4gICAgICAgIHZhciBvd25lckZpYmVyID0gb3duZXI7XG5cbiAgICAgICAgaWYgKCEob3duZXJGaWJlci50YWcgPT09IENsYXNzQ29tcG9uZW50KSkge1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRocm93IEVycm9yKCBcIkZ1bmN0aW9uIGNvbXBvbmVudHMgY2Fubm90IGhhdmUgc3RyaW5nIHJlZnMuIFdlIHJlY29tbWVuZCB1c2luZyB1c2VSZWYoKSBpbnN0ZWFkLiBMZWFybiBtb3JlIGFib3V0IHVzaW5nIHJlZnMgc2FmZWx5IGhlcmU6IGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9zdHJpY3QtbW9kZS1zdHJpbmctcmVmXCIgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpbnN0ID0gb3duZXJGaWJlci5zdGF0ZU5vZGU7XG4gICAgICB9XG5cbiAgICAgIGlmICghaW5zdCkge1xuICAgICAgICB7XG4gICAgICAgICAgdGhyb3cgRXJyb3IoIFwiTWlzc2luZyBvd25lciBmb3Igc3RyaW5nIHJlZiBcIiArIG1peGVkUmVmICsgXCIuIFRoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCIgKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB2YXIgc3RyaW5nUmVmID0gJycgKyBtaXhlZFJlZjsgLy8gQ2hlY2sgaWYgcHJldmlvdXMgc3RyaW5nIHJlZiBtYXRjaGVzIG5ldyBzdHJpbmcgcmVmXG5cbiAgICAgIGlmIChjdXJyZW50ICE9PSBudWxsICYmIGN1cnJlbnQucmVmICE9PSBudWxsICYmIHR5cGVvZiBjdXJyZW50LnJlZiA9PT0gJ2Z1bmN0aW9uJyAmJiBjdXJyZW50LnJlZi5fc3RyaW5nUmVmID09PSBzdHJpbmdSZWYpIHtcbiAgICAgICAgcmV0dXJuIGN1cnJlbnQucmVmO1xuICAgICAgfVxuXG4gICAgICB2YXIgcmVmID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgIHZhciByZWZzID0gaW5zdC5yZWZzO1xuXG4gICAgICAgIGlmIChyZWZzID09PSBlbXB0eVJlZnNPYmplY3QpIHtcbiAgICAgICAgICAvLyBUaGlzIGlzIGEgbGF6eSBwb29sZWQgZnJvemVuIG9iamVjdCwgc28gd2UgbmVlZCB0byBpbml0aWFsaXplLlxuICAgICAgICAgIHJlZnMgPSBpbnN0LnJlZnMgPSB7fTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgIGRlbGV0ZSByZWZzW3N0cmluZ1JlZl07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVmc1tzdHJpbmdSZWZdID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIHJlZi5fc3RyaW5nUmVmID0gc3RyaW5nUmVmO1xuICAgICAgcmV0dXJuIHJlZjtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCEodHlwZW9mIG1peGVkUmVmID09PSAnc3RyaW5nJykpIHtcbiAgICAgICAge1xuICAgICAgICAgIHRocm93IEVycm9yKCBcIkV4cGVjdGVkIHJlZiB0byBiZSBhIGZ1bmN0aW9uLCBhIHN0cmluZywgYW4gb2JqZWN0IHJldHVybmVkIGJ5IFJlYWN0LmNyZWF0ZVJlZigpLCBvciBudWxsLlwiICk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKCFlbGVtZW50Ll9vd25lcikge1xuICAgICAgICB7XG4gICAgICAgICAgdGhyb3cgRXJyb3IoIFwiRWxlbWVudCByZWYgd2FzIHNwZWNpZmllZCBhcyBhIHN0cmluZyAoXCIgKyBtaXhlZFJlZiArIFwiKSBidXQgbm8gb3duZXIgd2FzIHNldC4gVGhpcyBjb3VsZCBoYXBwZW4gZm9yIG9uZSBvZiB0aGUgZm9sbG93aW5nIHJlYXNvbnM6XFxuMS4gWW91IG1heSBiZSBhZGRpbmcgYSByZWYgdG8gYSBmdW5jdGlvbiBjb21wb25lbnRcXG4yLiBZb3UgbWF5IGJlIGFkZGluZyBhIHJlZiB0byBhIGNvbXBvbmVudCB0aGF0IHdhcyBub3QgY3JlYXRlZCBpbnNpZGUgYSBjb21wb25lbnQncyByZW5kZXIgbWV0aG9kXFxuMy4gWW91IGhhdmUgbXVsdGlwbGUgY29waWVzIG9mIFJlYWN0IGxvYWRlZFxcblNlZSBodHRwczovL3JlYWN0anMub3JnL2xpbmsvcmVmcy1tdXN0LWhhdmUtb3duZXIgZm9yIG1vcmUgaW5mb3JtYXRpb24uXCIgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBtaXhlZFJlZjtcbn1cblxuZnVuY3Rpb24gdGhyb3dPbkludmFsaWRPYmplY3RUeXBlKHJldHVybkZpYmVyLCBuZXdDaGlsZCkge1xuICBpZiAocmV0dXJuRmliZXIudHlwZSAhPT0gJ3RleHRhcmVhJykge1xuICAgIHtcbiAgICAgIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoIFwiT2JqZWN0cyBhcmUgbm90IHZhbGlkIGFzIGEgUmVhY3QgY2hpbGQgKGZvdW5kOiBcIiArIChPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobmV3Q2hpbGQpID09PSAnW29iamVjdCBPYmplY3RdJyA/ICdvYmplY3Qgd2l0aCBrZXlzIHsnICsgT2JqZWN0LmtleXMobmV3Q2hpbGQpLmpvaW4oJywgJykgKyAnfScgOiBuZXdDaGlsZCkgKyBcIikuIElmIHlvdSBtZWFudCB0byByZW5kZXIgYSBjb2xsZWN0aW9uIG9mIGNoaWxkcmVuLCB1c2UgYW4gYXJyYXkgaW5zdGVhZC5cIiApO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB3YXJuT25GdW5jdGlvblR5cGUocmV0dXJuRmliZXIpIHtcbiAge1xuICAgIHZhciBjb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZShyZXR1cm5GaWJlci50eXBlKSB8fCAnQ29tcG9uZW50JztcblxuICAgIGlmIChvd25lckhhc0Z1bmN0aW9uVHlwZVdhcm5pbmdbY29tcG9uZW50TmFtZV0pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBvd25lckhhc0Z1bmN0aW9uVHlwZVdhcm5pbmdbY29tcG9uZW50TmFtZV0gPSB0cnVlO1xuXG4gICAgZXJyb3IoJ0Z1bmN0aW9ucyBhcmUgbm90IHZhbGlkIGFzIGEgUmVhY3QgY2hpbGQuIFRoaXMgbWF5IGhhcHBlbiBpZiAnICsgJ3lvdSByZXR1cm4gYSBDb21wb25lbnQgaW5zdGVhZCBvZiA8Q29tcG9uZW50IC8+IGZyb20gcmVuZGVyLiAnICsgJ09yIG1heWJlIHlvdSBtZWFudCB0byBjYWxsIHRoaXMgZnVuY3Rpb24gcmF0aGVyIHRoYW4gcmV0dXJuIGl0LicpO1xuICB9XG59IC8vIFdlIGF2b2lkIGlubGluaW5nIHRoaXMgdG8gYXZvaWQgcG90ZW50aWFsIGRlb3B0cyBmcm9tIHVzaW5nIHRyeS9jYXRjaC5cbi8vIHRvIGJlIGFibGUgdG8gb3B0aW1pemUgZWFjaCBwYXRoIGluZGl2aWR1YWxseSBieSBicmFuY2hpbmcgZWFybHkuIFRoaXMgbmVlZHNcbi8vIGEgY29tcGlsZXIgb3Igd2UgY2FuIGRvIGl0IG1hbnVhbGx5LiBIZWxwZXJzIHRoYXQgZG9uJ3QgbmVlZCB0aGlzIGJyYW5jaGluZ1xuLy8gbGl2ZSBvdXRzaWRlIG9mIHRoaXMgZnVuY3Rpb24uXG5cblxuZnVuY3Rpb24gQ2hpbGRSZWNvbmNpbGVyKHNob3VsZFRyYWNrU2lkZUVmZmVjdHMpIHtcbiAgZnVuY3Rpb24gZGVsZXRlQ2hpbGQocmV0dXJuRmliZXIsIGNoaWxkVG9EZWxldGUpIHtcbiAgICBpZiAoIXNob3VsZFRyYWNrU2lkZUVmZmVjdHMpIHtcbiAgICAgIC8vIE5vb3AuXG4gICAgICByZXR1cm47XG4gICAgfSAvLyBEZWxldGlvbnMgYXJlIGFkZGVkIGluIHJldmVyc2VkIG9yZGVyIHNvIHdlIGFkZCBpdCB0byB0aGUgZnJvbnQuXG4gICAgLy8gQXQgdGhpcyBwb2ludCwgdGhlIHJldHVybiBmaWJlcidzIGVmZmVjdCBsaXN0IGlzIGVtcHR5IGV4Y2VwdCBmb3JcbiAgICAvLyBkZWxldGlvbnMsIHNvIHdlIGNhbiBqdXN0IGFwcGVuZCB0aGUgZGVsZXRpb24gdG8gdGhlIGxpc3QuIFRoZSByZW1haW5pbmdcbiAgICAvLyBlZmZlY3RzIGFyZW4ndCBhZGRlZCB1bnRpbCB0aGUgY29tcGxldGUgcGhhc2UuIE9uY2Ugd2UgaW1wbGVtZW50XG4gICAgLy8gcmVzdW1pbmcsIHRoaXMgbWF5IG5vdCBiZSB0cnVlLlxuXG5cbiAgICB2YXIgbGFzdCA9IHJldHVybkZpYmVyLmxhc3RFZmZlY3Q7XG5cbiAgICBpZiAobGFzdCAhPT0gbnVsbCkge1xuICAgICAgbGFzdC5uZXh0RWZmZWN0ID0gY2hpbGRUb0RlbGV0ZTtcbiAgICAgIHJldHVybkZpYmVyLmxhc3RFZmZlY3QgPSBjaGlsZFRvRGVsZXRlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm5GaWJlci5maXJzdEVmZmVjdCA9IHJldHVybkZpYmVyLmxhc3RFZmZlY3QgPSBjaGlsZFRvRGVsZXRlO1xuICAgIH1cblxuICAgIGNoaWxkVG9EZWxldGUubmV4dEVmZmVjdCA9IG51bGw7XG4gICAgY2hpbGRUb0RlbGV0ZS5mbGFncyA9IERlbGV0aW9uO1xuICB9XG5cbiAgZnVuY3Rpb24gZGVsZXRlUmVtYWluaW5nQ2hpbGRyZW4ocmV0dXJuRmliZXIsIGN1cnJlbnRGaXJzdENoaWxkKSB7XG4gICAgaWYgKCFzaG91bGRUcmFja1NpZGVFZmZlY3RzKSB7XG4gICAgICAvLyBOb29wLlxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSAvLyBUT0RPOiBGb3IgdGhlIHNob3VsZENsb25lIGNhc2UsIHRoaXMgY291bGQgYmUgbWljcm8tb3B0aW1pemVkIGEgYml0IGJ5XG4gICAgLy8gYXNzdW1pbmcgdGhhdCBhZnRlciB0aGUgZmlyc3QgY2hpbGQgd2UndmUgYWxyZWFkeSBhZGRlZCBldmVyeXRoaW5nLlxuXG5cbiAgICB2YXIgY2hpbGRUb0RlbGV0ZSA9IGN1cnJlbnRGaXJzdENoaWxkO1xuXG4gICAgd2hpbGUgKGNoaWxkVG9EZWxldGUgIT09IG51bGwpIHtcbiAgICAgIGRlbGV0ZUNoaWxkKHJldHVybkZpYmVyLCBjaGlsZFRvRGVsZXRlKTtcbiAgICAgIGNoaWxkVG9EZWxldGUgPSBjaGlsZFRvRGVsZXRlLnNpYmxpbmc7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBmdW5jdGlvbiBtYXBSZW1haW5pbmdDaGlsZHJlbihyZXR1cm5GaWJlciwgY3VycmVudEZpcnN0Q2hpbGQpIHtcbiAgICAvLyBBZGQgdGhlIHJlbWFpbmluZyBjaGlsZHJlbiB0byBhIHRlbXBvcmFyeSBtYXAgc28gdGhhdCB3ZSBjYW4gZmluZCB0aGVtIGJ5XG4gICAgLy8ga2V5cyBxdWlja2x5LiBJbXBsaWNpdCAobnVsbCkga2V5cyBnZXQgYWRkZWQgdG8gdGhpcyBzZXQgd2l0aCB0aGVpciBpbmRleFxuICAgIC8vIGluc3RlYWQuXG4gICAgdmFyIGV4aXN0aW5nQ2hpbGRyZW4gPSBuZXcgTWFwKCk7XG4gICAgdmFyIGV4aXN0aW5nQ2hpbGQgPSBjdXJyZW50Rmlyc3RDaGlsZDtcblxuICAgIHdoaWxlIChleGlzdGluZ0NoaWxkICE9PSBudWxsKSB7XG4gICAgICBpZiAoZXhpc3RpbmdDaGlsZC5rZXkgIT09IG51bGwpIHtcbiAgICAgICAgZXhpc3RpbmdDaGlsZHJlbi5zZXQoZXhpc3RpbmdDaGlsZC5rZXksIGV4aXN0aW5nQ2hpbGQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXhpc3RpbmdDaGlsZHJlbi5zZXQoZXhpc3RpbmdDaGlsZC5pbmRleCwgZXhpc3RpbmdDaGlsZCk7XG4gICAgICB9XG5cbiAgICAgIGV4aXN0aW5nQ2hpbGQgPSBleGlzdGluZ0NoaWxkLnNpYmxpbmc7XG4gICAgfVxuXG4gICAgcmV0dXJuIGV4aXN0aW5nQ2hpbGRyZW47XG4gIH1cblxuICBmdW5jdGlvbiB1c2VGaWJlcihmaWJlciwgcGVuZGluZ1Byb3BzKSB7XG4gICAgLy8gV2UgY3VycmVudGx5IHNldCBzaWJsaW5nIHRvIG51bGwgYW5kIGluZGV4IHRvIDAgaGVyZSBiZWNhdXNlIGl0IGlzIGVhc3lcbiAgICAvLyB0byBmb3JnZXQgdG8gZG8gYmVmb3JlIHJldHVybmluZyBpdC4gRS5nLiBmb3IgdGhlIHNpbmdsZSBjaGlsZCBjYXNlLlxuICAgIHZhciBjbG9uZSA9IGNyZWF0ZVdvcmtJblByb2dyZXNzKGZpYmVyLCBwZW5kaW5nUHJvcHMpO1xuICAgIGNsb25lLmluZGV4ID0gMDtcbiAgICBjbG9uZS5zaWJsaW5nID0gbnVsbDtcbiAgICByZXR1cm4gY2xvbmU7XG4gIH1cblxuICBmdW5jdGlvbiBwbGFjZUNoaWxkKG5ld0ZpYmVyLCBsYXN0UGxhY2VkSW5kZXgsIG5ld0luZGV4KSB7XG4gICAgbmV3RmliZXIuaW5kZXggPSBuZXdJbmRleDtcblxuICAgIGlmICghc2hvdWxkVHJhY2tTaWRlRWZmZWN0cykge1xuICAgICAgLy8gTm9vcC5cbiAgICAgIHJldHVybiBsYXN0UGxhY2VkSW5kZXg7XG4gICAgfVxuXG4gICAgdmFyIGN1cnJlbnQgPSBuZXdGaWJlci5hbHRlcm5hdGU7XG5cbiAgICBpZiAoY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgdmFyIG9sZEluZGV4ID0gY3VycmVudC5pbmRleDtcblxuICAgICAgaWYgKG9sZEluZGV4IDwgbGFzdFBsYWNlZEluZGV4KSB7XG4gICAgICAgIC8vIFRoaXMgaXMgYSBtb3ZlLlxuICAgICAgICBuZXdGaWJlci5mbGFncyA9IFBsYWNlbWVudDtcbiAgICAgICAgcmV0dXJuIGxhc3RQbGFjZWRJbmRleDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFRoaXMgaXRlbSBjYW4gc3RheSBpbiBwbGFjZS5cbiAgICAgICAgcmV0dXJuIG9sZEluZGV4O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUaGlzIGlzIGFuIGluc2VydGlvbi5cbiAgICAgIG5ld0ZpYmVyLmZsYWdzID0gUGxhY2VtZW50O1xuICAgICAgcmV0dXJuIGxhc3RQbGFjZWRJbmRleDtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBwbGFjZVNpbmdsZUNoaWxkKG5ld0ZpYmVyKSB7XG4gICAgLy8gVGhpcyBpcyBzaW1wbGVyIGZvciB0aGUgc2luZ2xlIGNoaWxkIGNhc2UuIFdlIG9ubHkgbmVlZCB0byBkbyBhXG4gICAgLy8gcGxhY2VtZW50IGZvciBpbnNlcnRpbmcgbmV3IGNoaWxkcmVuLlxuICAgIGlmIChzaG91bGRUcmFja1NpZGVFZmZlY3RzICYmIG5ld0ZpYmVyLmFsdGVybmF0ZSA9PT0gbnVsbCkge1xuICAgICAgbmV3RmliZXIuZmxhZ3MgPSBQbGFjZW1lbnQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ld0ZpYmVyO1xuICB9XG5cbiAgZnVuY3Rpb24gdXBkYXRlVGV4dE5vZGUocmV0dXJuRmliZXIsIGN1cnJlbnQsIHRleHRDb250ZW50LCBsYW5lcykge1xuICAgIGlmIChjdXJyZW50ID09PSBudWxsIHx8IGN1cnJlbnQudGFnICE9PSBIb3N0VGV4dCkge1xuICAgICAgLy8gSW5zZXJ0XG4gICAgICB2YXIgY3JlYXRlZCA9IGNyZWF0ZUZpYmVyRnJvbVRleHQodGV4dENvbnRlbnQsIHJldHVybkZpYmVyLm1vZGUsIGxhbmVzKTtcbiAgICAgIGNyZWF0ZWQucmV0dXJuID0gcmV0dXJuRmliZXI7XG4gICAgICByZXR1cm4gY3JlYXRlZDtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVXBkYXRlXG4gICAgICB2YXIgZXhpc3RpbmcgPSB1c2VGaWJlcihjdXJyZW50LCB0ZXh0Q29udGVudCk7XG4gICAgICBleGlzdGluZy5yZXR1cm4gPSByZXR1cm5GaWJlcjtcbiAgICAgIHJldHVybiBleGlzdGluZztcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiB1cGRhdGVFbGVtZW50KHJldHVybkZpYmVyLCBjdXJyZW50LCBlbGVtZW50LCBsYW5lcykge1xuICAgIGlmIChjdXJyZW50ICE9PSBudWxsKSB7XG4gICAgICBpZiAoY3VycmVudC5lbGVtZW50VHlwZSA9PT0gZWxlbWVudC50eXBlIHx8ICggLy8gS2VlcCB0aGlzIGNoZWNrIGlubGluZSBzbyBpdCBvbmx5IHJ1bnMgb24gdGhlIGZhbHNlIHBhdGg6XG4gICAgICAgaXNDb21wYXRpYmxlRmFtaWx5Rm9ySG90UmVsb2FkaW5nKGN1cnJlbnQsIGVsZW1lbnQpICkpIHtcbiAgICAgICAgLy8gTW92ZSBiYXNlZCBvbiBpbmRleFxuICAgICAgICB2YXIgZXhpc3RpbmcgPSB1c2VGaWJlcihjdXJyZW50LCBlbGVtZW50LnByb3BzKTtcbiAgICAgICAgZXhpc3RpbmcucmVmID0gY29lcmNlUmVmKHJldHVybkZpYmVyLCBjdXJyZW50LCBlbGVtZW50KTtcbiAgICAgICAgZXhpc3RpbmcucmV0dXJuID0gcmV0dXJuRmliZXI7XG5cbiAgICAgICAge1xuICAgICAgICAgIGV4aXN0aW5nLl9kZWJ1Z1NvdXJjZSA9IGVsZW1lbnQuX3NvdXJjZTtcbiAgICAgICAgICBleGlzdGluZy5fZGVidWdPd25lciA9IGVsZW1lbnQuX293bmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGV4aXN0aW5nO1xuICAgICAgfVxuICAgIH0gLy8gSW5zZXJ0XG5cblxuICAgIHZhciBjcmVhdGVkID0gY3JlYXRlRmliZXJGcm9tRWxlbWVudChlbGVtZW50LCByZXR1cm5GaWJlci5tb2RlLCBsYW5lcyk7XG4gICAgY3JlYXRlZC5yZWYgPSBjb2VyY2VSZWYocmV0dXJuRmliZXIsIGN1cnJlbnQsIGVsZW1lbnQpO1xuICAgIGNyZWF0ZWQucmV0dXJuID0gcmV0dXJuRmliZXI7XG4gICAgcmV0dXJuIGNyZWF0ZWQ7XG4gIH1cblxuICBmdW5jdGlvbiB1cGRhdGVQb3J0YWwocmV0dXJuRmliZXIsIGN1cnJlbnQsIHBvcnRhbCwgbGFuZXMpIHtcbiAgICBpZiAoY3VycmVudCA9PT0gbnVsbCB8fCBjdXJyZW50LnRhZyAhPT0gSG9zdFBvcnRhbCB8fCBjdXJyZW50LnN0YXRlTm9kZS5jb250YWluZXJJbmZvICE9PSBwb3J0YWwuY29udGFpbmVySW5mbyB8fCBjdXJyZW50LnN0YXRlTm9kZS5pbXBsZW1lbnRhdGlvbiAhPT0gcG9ydGFsLmltcGxlbWVudGF0aW9uKSB7XG4gICAgICAvLyBJbnNlcnRcbiAgICAgIHZhciBjcmVhdGVkID0gY3JlYXRlRmliZXJGcm9tUG9ydGFsKHBvcnRhbCwgcmV0dXJuRmliZXIubW9kZSwgbGFuZXMpO1xuICAgICAgY3JlYXRlZC5yZXR1cm4gPSByZXR1cm5GaWJlcjtcbiAgICAgIHJldHVybiBjcmVhdGVkO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBVcGRhdGVcbiAgICAgIHZhciBleGlzdGluZyA9IHVzZUZpYmVyKGN1cnJlbnQsIHBvcnRhbC5jaGlsZHJlbiB8fCBbXSk7XG4gICAgICBleGlzdGluZy5yZXR1cm4gPSByZXR1cm5GaWJlcjtcbiAgICAgIHJldHVybiBleGlzdGluZztcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiB1cGRhdGVGcmFnbWVudChyZXR1cm5GaWJlciwgY3VycmVudCwgZnJhZ21lbnQsIGxhbmVzLCBrZXkpIHtcbiAgICBpZiAoY3VycmVudCA9PT0gbnVsbCB8fCBjdXJyZW50LnRhZyAhPT0gRnJhZ21lbnQpIHtcbiAgICAgIC8vIEluc2VydFxuICAgICAgdmFyIGNyZWF0ZWQgPSBjcmVhdGVGaWJlckZyb21GcmFnbWVudChmcmFnbWVudCwgcmV0dXJuRmliZXIubW9kZSwgbGFuZXMsIGtleSk7XG4gICAgICBjcmVhdGVkLnJldHVybiA9IHJldHVybkZpYmVyO1xuICAgICAgcmV0dXJuIGNyZWF0ZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFVwZGF0ZVxuICAgICAgdmFyIGV4aXN0aW5nID0gdXNlRmliZXIoY3VycmVudCwgZnJhZ21lbnQpO1xuICAgICAgZXhpc3RpbmcucmV0dXJuID0gcmV0dXJuRmliZXI7XG4gICAgICByZXR1cm4gZXhpc3Rpbmc7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gY3JlYXRlQ2hpbGQocmV0dXJuRmliZXIsIG5ld0NoaWxkLCBsYW5lcykge1xuICAgIGlmICh0eXBlb2YgbmV3Q2hpbGQgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBuZXdDaGlsZCA9PT0gJ251bWJlcicpIHtcbiAgICAgIC8vIFRleHQgbm9kZXMgZG9uJ3QgaGF2ZSBrZXlzLiBJZiB0aGUgcHJldmlvdXMgbm9kZSBpcyBpbXBsaWNpdGx5IGtleWVkXG4gICAgICAvLyB3ZSBjYW4gY29udGludWUgdG8gcmVwbGFjZSBpdCB3aXRob3V0IGFib3J0aW5nIGV2ZW4gaWYgaXQgaXMgbm90IGEgdGV4dFxuICAgICAgLy8gbm9kZS5cbiAgICAgIHZhciBjcmVhdGVkID0gY3JlYXRlRmliZXJGcm9tVGV4dCgnJyArIG5ld0NoaWxkLCByZXR1cm5GaWJlci5tb2RlLCBsYW5lcyk7XG4gICAgICBjcmVhdGVkLnJldHVybiA9IHJldHVybkZpYmVyO1xuICAgICAgcmV0dXJuIGNyZWF0ZWQ7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBuZXdDaGlsZCA9PT0gJ29iamVjdCcgJiYgbmV3Q2hpbGQgIT09IG51bGwpIHtcbiAgICAgIHN3aXRjaCAobmV3Q2hpbGQuJCR0eXBlb2YpIHtcbiAgICAgICAgY2FzZSBSRUFDVF9FTEVNRU5UX1RZUEU6XG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFyIF9jcmVhdGVkID0gY3JlYXRlRmliZXJGcm9tRWxlbWVudChuZXdDaGlsZCwgcmV0dXJuRmliZXIubW9kZSwgbGFuZXMpO1xuXG4gICAgICAgICAgICBfY3JlYXRlZC5yZWYgPSBjb2VyY2VSZWYocmV0dXJuRmliZXIsIG51bGwsIG5ld0NoaWxkKTtcbiAgICAgICAgICAgIF9jcmVhdGVkLnJldHVybiA9IHJldHVybkZpYmVyO1xuICAgICAgICAgICAgcmV0dXJuIF9jcmVhdGVkO1xuICAgICAgICAgIH1cblxuICAgICAgICBjYXNlIFJFQUNUX1BPUlRBTF9UWVBFOlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhciBfY3JlYXRlZDIgPSBjcmVhdGVGaWJlckZyb21Qb3J0YWwobmV3Q2hpbGQsIHJldHVybkZpYmVyLm1vZGUsIGxhbmVzKTtcblxuICAgICAgICAgICAgX2NyZWF0ZWQyLnJldHVybiA9IHJldHVybkZpYmVyO1xuICAgICAgICAgICAgcmV0dXJuIF9jcmVhdGVkMjtcbiAgICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChpc0FycmF5JDEobmV3Q2hpbGQpIHx8IGdldEl0ZXJhdG9yRm4obmV3Q2hpbGQpKSB7XG4gICAgICAgIHZhciBfY3JlYXRlZDMgPSBjcmVhdGVGaWJlckZyb21GcmFnbWVudChuZXdDaGlsZCwgcmV0dXJuRmliZXIubW9kZSwgbGFuZXMsIG51bGwpO1xuXG4gICAgICAgIF9jcmVhdGVkMy5yZXR1cm4gPSByZXR1cm5GaWJlcjtcbiAgICAgICAgcmV0dXJuIF9jcmVhdGVkMztcbiAgICAgIH1cblxuICAgICAgdGhyb3dPbkludmFsaWRPYmplY3RUeXBlKHJldHVybkZpYmVyLCBuZXdDaGlsZCk7XG4gICAgfVxuXG4gICAge1xuICAgICAgaWYgKHR5cGVvZiBuZXdDaGlsZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB3YXJuT25GdW5jdGlvblR5cGUocmV0dXJuRmliZXIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgZnVuY3Rpb24gdXBkYXRlU2xvdChyZXR1cm5GaWJlciwgb2xkRmliZXIsIG5ld0NoaWxkLCBsYW5lcykge1xuICAgIC8vIFVwZGF0ZSB0aGUgZmliZXIgaWYgdGhlIGtleXMgbWF0Y2gsIG90aGVyd2lzZSByZXR1cm4gbnVsbC5cbiAgICB2YXIga2V5ID0gb2xkRmliZXIgIT09IG51bGwgPyBvbGRGaWJlci5rZXkgOiBudWxsO1xuXG4gICAgaWYgKHR5cGVvZiBuZXdDaGlsZCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIG5ld0NoaWxkID09PSAnbnVtYmVyJykge1xuICAgICAgLy8gVGV4dCBub2RlcyBkb24ndCBoYXZlIGtleXMuIElmIHRoZSBwcmV2aW91cyBub2RlIGlzIGltcGxpY2l0bHkga2V5ZWRcbiAgICAgIC8vIHdlIGNhbiBjb250aW51ZSB0byByZXBsYWNlIGl0IHdpdGhvdXQgYWJvcnRpbmcgZXZlbiBpZiBpdCBpcyBub3QgYSB0ZXh0XG4gICAgICAvLyBub2RlLlxuICAgICAgaWYgKGtleSAhPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVwZGF0ZVRleHROb2RlKHJldHVybkZpYmVyLCBvbGRGaWJlciwgJycgKyBuZXdDaGlsZCwgbGFuZXMpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgbmV3Q2hpbGQgPT09ICdvYmplY3QnICYmIG5ld0NoaWxkICE9PSBudWxsKSB7XG4gICAgICBzd2l0Y2ggKG5ld0NoaWxkLiQkdHlwZW9mKSB7XG4gICAgICAgIGNhc2UgUkVBQ1RfRUxFTUVOVF9UWVBFOlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlmIChuZXdDaGlsZC5rZXkgPT09IGtleSkge1xuICAgICAgICAgICAgICBpZiAobmV3Q2hpbGQudHlwZSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB1cGRhdGVGcmFnbWVudChyZXR1cm5GaWJlciwgb2xkRmliZXIsIG5ld0NoaWxkLnByb3BzLmNoaWxkcmVuLCBsYW5lcywga2V5KTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHJldHVybiB1cGRhdGVFbGVtZW50KHJldHVybkZpYmVyLCBvbGRGaWJlciwgbmV3Q2hpbGQsIGxhbmVzKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICBjYXNlIFJFQUNUX1BPUlRBTF9UWVBFOlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlmIChuZXdDaGlsZC5rZXkgPT09IGtleSkge1xuICAgICAgICAgICAgICByZXR1cm4gdXBkYXRlUG9ydGFsKHJldHVybkZpYmVyLCBvbGRGaWJlciwgbmV3Q2hpbGQsIGxhbmVzKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGlzQXJyYXkkMShuZXdDaGlsZCkgfHwgZ2V0SXRlcmF0b3JGbihuZXdDaGlsZCkpIHtcbiAgICAgICAgaWYgKGtleSAhPT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHVwZGF0ZUZyYWdtZW50KHJldHVybkZpYmVyLCBvbGRGaWJlciwgbmV3Q2hpbGQsIGxhbmVzLCBudWxsKTtcbiAgICAgIH1cblxuICAgICAgdGhyb3dPbkludmFsaWRPYmplY3RUeXBlKHJldHVybkZpYmVyLCBuZXdDaGlsZCk7XG4gICAgfVxuXG4gICAge1xuICAgICAgaWYgKHR5cGVvZiBuZXdDaGlsZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB3YXJuT25GdW5jdGlvblR5cGUocmV0dXJuRmliZXIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgZnVuY3Rpb24gdXBkYXRlRnJvbU1hcChleGlzdGluZ0NoaWxkcmVuLCByZXR1cm5GaWJlciwgbmV3SWR4LCBuZXdDaGlsZCwgbGFuZXMpIHtcbiAgICBpZiAodHlwZW9mIG5ld0NoaWxkID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgbmV3Q2hpbGQgPT09ICdudW1iZXInKSB7XG4gICAgICAvLyBUZXh0IG5vZGVzIGRvbid0IGhhdmUga2V5cywgc28gd2UgbmVpdGhlciBoYXZlIHRvIGNoZWNrIHRoZSBvbGQgbm9yXG4gICAgICAvLyBuZXcgbm9kZSBmb3IgdGhlIGtleS4gSWYgYm90aCBhcmUgdGV4dCBub2RlcywgdGhleSBtYXRjaC5cbiAgICAgIHZhciBtYXRjaGVkRmliZXIgPSBleGlzdGluZ0NoaWxkcmVuLmdldChuZXdJZHgpIHx8IG51bGw7XG4gICAgICByZXR1cm4gdXBkYXRlVGV4dE5vZGUocmV0dXJuRmliZXIsIG1hdGNoZWRGaWJlciwgJycgKyBuZXdDaGlsZCwgbGFuZXMpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgbmV3Q2hpbGQgPT09ICdvYmplY3QnICYmIG5ld0NoaWxkICE9PSBudWxsKSB7XG4gICAgICBzd2l0Y2ggKG5ld0NoaWxkLiQkdHlwZW9mKSB7XG4gICAgICAgIGNhc2UgUkVBQ1RfRUxFTUVOVF9UWVBFOlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhciBfbWF0Y2hlZEZpYmVyID0gZXhpc3RpbmdDaGlsZHJlbi5nZXQobmV3Q2hpbGQua2V5ID09PSBudWxsID8gbmV3SWR4IDogbmV3Q2hpbGQua2V5KSB8fCBudWxsO1xuXG4gICAgICAgICAgICBpZiAobmV3Q2hpbGQudHlwZSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRSkge1xuICAgICAgICAgICAgICByZXR1cm4gdXBkYXRlRnJhZ21lbnQocmV0dXJuRmliZXIsIF9tYXRjaGVkRmliZXIsIG5ld0NoaWxkLnByb3BzLmNoaWxkcmVuLCBsYW5lcywgbmV3Q2hpbGQua2V5KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZUVsZW1lbnQocmV0dXJuRmliZXIsIF9tYXRjaGVkRmliZXIsIG5ld0NoaWxkLCBsYW5lcyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgIGNhc2UgUkVBQ1RfUE9SVEFMX1RZUEU6XG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFyIF9tYXRjaGVkRmliZXIyID0gZXhpc3RpbmdDaGlsZHJlbi5nZXQobmV3Q2hpbGQua2V5ID09PSBudWxsID8gbmV3SWR4IDogbmV3Q2hpbGQua2V5KSB8fCBudWxsO1xuXG4gICAgICAgICAgICByZXR1cm4gdXBkYXRlUG9ydGFsKHJldHVybkZpYmVyLCBfbWF0Y2hlZEZpYmVyMiwgbmV3Q2hpbGQsIGxhbmVzKTtcbiAgICAgICAgICB9XG5cbiAgICAgIH1cblxuICAgICAgaWYgKGlzQXJyYXkkMShuZXdDaGlsZCkgfHwgZ2V0SXRlcmF0b3JGbihuZXdDaGlsZCkpIHtcbiAgICAgICAgdmFyIF9tYXRjaGVkRmliZXIzID0gZXhpc3RpbmdDaGlsZHJlbi5nZXQobmV3SWR4KSB8fCBudWxsO1xuXG4gICAgICAgIHJldHVybiB1cGRhdGVGcmFnbWVudChyZXR1cm5GaWJlciwgX21hdGNoZWRGaWJlcjMsIG5ld0NoaWxkLCBsYW5lcywgbnVsbCk7XG4gICAgICB9XG5cbiAgICAgIHRocm93T25JbnZhbGlkT2JqZWN0VHlwZShyZXR1cm5GaWJlciwgbmV3Q2hpbGQpO1xuICAgIH1cblxuICAgIHtcbiAgICAgIGlmICh0eXBlb2YgbmV3Q2hpbGQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgd2Fybk9uRnVuY3Rpb25UeXBlKHJldHVybkZpYmVyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICAvKipcbiAgICogV2FybnMgaWYgdGhlcmUgaXMgYSBkdXBsaWNhdGUgb3IgbWlzc2luZyBrZXlcbiAgICovXG5cblxuICBmdW5jdGlvbiB3YXJuT25JbnZhbGlkS2V5KGNoaWxkLCBrbm93bktleXMsIHJldHVybkZpYmVyKSB7XG4gICAge1xuICAgICAgaWYgKHR5cGVvZiBjaGlsZCAhPT0gJ29iamVjdCcgfHwgY2hpbGQgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIGtub3duS2V5cztcbiAgICAgIH1cblxuICAgICAgc3dpdGNoIChjaGlsZC4kJHR5cGVvZikge1xuICAgICAgICBjYXNlIFJFQUNUX0VMRU1FTlRfVFlQRTpcbiAgICAgICAgY2FzZSBSRUFDVF9QT1JUQUxfVFlQRTpcbiAgICAgICAgICB3YXJuRm9yTWlzc2luZ0tleShjaGlsZCwgcmV0dXJuRmliZXIpO1xuICAgICAgICAgIHZhciBrZXkgPSBjaGlsZC5rZXk7XG5cbiAgICAgICAgICBpZiAodHlwZW9mIGtleSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChrbm93bktleXMgPT09IG51bGwpIHtcbiAgICAgICAgICAgIGtub3duS2V5cyA9IG5ldyBTZXQoKTtcbiAgICAgICAgICAgIGtub3duS2V5cy5hZGQoa2V5KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICgha25vd25LZXlzLmhhcyhrZXkpKSB7XG4gICAgICAgICAgICBrbm93bktleXMuYWRkKGtleSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBlcnJvcignRW5jb3VudGVyZWQgdHdvIGNoaWxkcmVuIHdpdGggdGhlIHNhbWUga2V5LCBgJXNgLiAnICsgJ0tleXMgc2hvdWxkIGJlIHVuaXF1ZSBzbyB0aGF0IGNvbXBvbmVudHMgbWFpbnRhaW4gdGhlaXIgaWRlbnRpdHkgJyArICdhY3Jvc3MgdXBkYXRlcy4gTm9uLXVuaXF1ZSBrZXlzIG1heSBjYXVzZSBjaGlsZHJlbiB0byBiZSAnICsgJ2R1cGxpY2F0ZWQgYW5kL29yIG9taXR0ZWQg4oCUIHRoZSBiZWhhdmlvciBpcyB1bnN1cHBvcnRlZCBhbmQgJyArICdjb3VsZCBjaGFuZ2UgaW4gYSBmdXR1cmUgdmVyc2lvbi4nLCBrZXkpO1xuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGtub3duS2V5cztcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlY29uY2lsZUNoaWxkcmVuQXJyYXkocmV0dXJuRmliZXIsIGN1cnJlbnRGaXJzdENoaWxkLCBuZXdDaGlsZHJlbiwgbGFuZXMpIHtcbiAgICAvLyBUaGlzIGFsZ29yaXRobSBjYW4ndCBvcHRpbWl6ZSBieSBzZWFyY2hpbmcgZnJvbSBib3RoIGVuZHMgc2luY2Ugd2VcbiAgICAvLyBkb24ndCBoYXZlIGJhY2twb2ludGVycyBvbiBmaWJlcnMuIEknbSB0cnlpbmcgdG8gc2VlIGhvdyBmYXIgd2UgY2FuIGdldFxuICAgIC8vIHdpdGggdGhhdCBtb2RlbC4gSWYgaXQgZW5kcyB1cCBub3QgYmVpbmcgd29ydGggdGhlIHRyYWRlb2Zmcywgd2UgY2FuXG4gICAgLy8gYWRkIGl0IGxhdGVyLlxuICAgIC8vIEV2ZW4gd2l0aCBhIHR3byBlbmRlZCBvcHRpbWl6YXRpb24sIHdlJ2Qgd2FudCB0byBvcHRpbWl6ZSBmb3IgdGhlIGNhc2VcbiAgICAvLyB3aGVyZSB0aGVyZSBhcmUgZmV3IGNoYW5nZXMgYW5kIGJydXRlIGZvcmNlIHRoZSBjb21wYXJpc29uIGluc3RlYWQgb2ZcbiAgICAvLyBnb2luZyBmb3IgdGhlIE1hcC4gSXQnZCBsaWtlIHRvIGV4cGxvcmUgaGl0dGluZyB0aGF0IHBhdGggZmlyc3QgaW5cbiAgICAvLyBmb3J3YXJkLW9ubHkgbW9kZSBhbmQgb25seSBnbyBmb3IgdGhlIE1hcCBvbmNlIHdlIG5vdGljZSB0aGF0IHdlIG5lZWRcbiAgICAvLyBsb3RzIG9mIGxvb2sgYWhlYWQuIFRoaXMgZG9lc24ndCBoYW5kbGUgcmV2ZXJzYWwgYXMgd2VsbCBhcyB0d28gZW5kZWRcbiAgICAvLyBzZWFyY2ggYnV0IHRoYXQncyB1bnVzdWFsLiBCZXNpZGVzLCBmb3IgdGhlIHR3byBlbmRlZCBvcHRpbWl6YXRpb24gdG9cbiAgICAvLyB3b3JrIG9uIEl0ZXJhYmxlcywgd2UnZCBuZWVkIHRvIGNvcHkgdGhlIHdob2xlIHNldC5cbiAgICAvLyBJbiB0aGlzIGZpcnN0IGl0ZXJhdGlvbiwgd2UnbGwganVzdCBsaXZlIHdpdGggaGl0dGluZyB0aGUgYmFkIGNhc2VcbiAgICAvLyAoYWRkaW5nIGV2ZXJ5dGhpbmcgdG8gYSBNYXApIGluIGZvciBldmVyeSBpbnNlcnQvbW92ZS5cbiAgICAvLyBJZiB5b3UgY2hhbmdlIHRoaXMgY29kZSwgYWxzbyB1cGRhdGUgcmVjb25jaWxlQ2hpbGRyZW5JdGVyYXRvcigpIHdoaWNoXG4gICAgLy8gdXNlcyB0aGUgc2FtZSBhbGdvcml0aG0uXG4gICAge1xuICAgICAgLy8gRmlyc3QsIHZhbGlkYXRlIGtleXMuXG4gICAgICB2YXIga25vd25LZXlzID0gbnVsbDtcblxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuZXdDaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgY2hpbGQgPSBuZXdDaGlsZHJlbltpXTtcbiAgICAgICAga25vd25LZXlzID0gd2Fybk9uSW52YWxpZEtleShjaGlsZCwga25vd25LZXlzLCByZXR1cm5GaWJlcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIHJlc3VsdGluZ0ZpcnN0Q2hpbGQgPSBudWxsO1xuICAgIHZhciBwcmV2aW91c05ld0ZpYmVyID0gbnVsbDtcbiAgICB2YXIgb2xkRmliZXIgPSBjdXJyZW50Rmlyc3RDaGlsZDtcbiAgICB2YXIgbGFzdFBsYWNlZEluZGV4ID0gMDtcbiAgICB2YXIgbmV3SWR4ID0gMDtcbiAgICB2YXIgbmV4dE9sZEZpYmVyID0gbnVsbDtcblxuICAgIGZvciAoOyBvbGRGaWJlciAhPT0gbnVsbCAmJiBuZXdJZHggPCBuZXdDaGlsZHJlbi5sZW5ndGg7IG5ld0lkeCsrKSB7XG4gICAgICBpZiAob2xkRmliZXIuaW5kZXggPiBuZXdJZHgpIHtcbiAgICAgICAgbmV4dE9sZEZpYmVyID0gb2xkRmliZXI7XG4gICAgICAgIG9sZEZpYmVyID0gbnVsbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5leHRPbGRGaWJlciA9IG9sZEZpYmVyLnNpYmxpbmc7XG4gICAgICB9XG5cbiAgICAgIHZhciBuZXdGaWJlciA9IHVwZGF0ZVNsb3QocmV0dXJuRmliZXIsIG9sZEZpYmVyLCBuZXdDaGlsZHJlbltuZXdJZHhdLCBsYW5lcyk7XG5cbiAgICAgIGlmIChuZXdGaWJlciA9PT0gbnVsbCkge1xuICAgICAgICAvLyBUT0RPOiBUaGlzIGJyZWFrcyBvbiBlbXB0eSBzbG90cyBsaWtlIG51bGwgY2hpbGRyZW4uIFRoYXQnc1xuICAgICAgICAvLyB1bmZvcnR1bmF0ZSBiZWNhdXNlIGl0IHRyaWdnZXJzIHRoZSBzbG93IHBhdGggYWxsIHRoZSB0aW1lLiBXZSBuZWVkXG4gICAgICAgIC8vIGEgYmV0dGVyIHdheSB0byBjb21tdW5pY2F0ZSB3aGV0aGVyIHRoaXMgd2FzIGEgbWlzcyBvciBudWxsLFxuICAgICAgICAvLyBib29sZWFuLCB1bmRlZmluZWQsIGV0Yy5cbiAgICAgICAgaWYgKG9sZEZpYmVyID09PSBudWxsKSB7XG4gICAgICAgICAgb2xkRmliZXIgPSBuZXh0T2xkRmliZXI7XG4gICAgICAgIH1cblxuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgaWYgKHNob3VsZFRyYWNrU2lkZUVmZmVjdHMpIHtcbiAgICAgICAgaWYgKG9sZEZpYmVyICYmIG5ld0ZpYmVyLmFsdGVybmF0ZSA9PT0gbnVsbCkge1xuICAgICAgICAgIC8vIFdlIG1hdGNoZWQgdGhlIHNsb3QsIGJ1dCB3ZSBkaWRuJ3QgcmV1c2UgdGhlIGV4aXN0aW5nIGZpYmVyLCBzbyB3ZVxuICAgICAgICAgIC8vIG5lZWQgdG8gZGVsZXRlIHRoZSBleGlzdGluZyBjaGlsZC5cbiAgICAgICAgICBkZWxldGVDaGlsZChyZXR1cm5GaWJlciwgb2xkRmliZXIpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGxhc3RQbGFjZWRJbmRleCA9IHBsYWNlQ2hpbGQobmV3RmliZXIsIGxhc3RQbGFjZWRJbmRleCwgbmV3SWR4KTtcblxuICAgICAgaWYgKHByZXZpb3VzTmV3RmliZXIgPT09IG51bGwpIHtcbiAgICAgICAgLy8gVE9ETzogTW92ZSBvdXQgb2YgdGhlIGxvb3AuIFRoaXMgb25seSBoYXBwZW5zIGZvciB0aGUgZmlyc3QgcnVuLlxuICAgICAgICByZXN1bHRpbmdGaXJzdENoaWxkID0gbmV3RmliZXI7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBUT0RPOiBEZWZlciBzaWJsaW5ncyBpZiB3ZSdyZSBub3QgYXQgdGhlIHJpZ2h0IGluZGV4IGZvciB0aGlzIHNsb3QuXG4gICAgICAgIC8vIEkuZS4gaWYgd2UgaGFkIG51bGwgdmFsdWVzIGJlZm9yZSwgdGhlbiB3ZSB3YW50IHRvIGRlZmVyIHRoaXNcbiAgICAgICAgLy8gZm9yIGVhY2ggbnVsbCB2YWx1ZS4gSG93ZXZlciwgd2UgYWxzbyBkb24ndCB3YW50IHRvIGNhbGwgdXBkYXRlU2xvdFxuICAgICAgICAvLyB3aXRoIHRoZSBwcmV2aW91cyBvbmUuXG4gICAgICAgIHByZXZpb3VzTmV3RmliZXIuc2libGluZyA9IG5ld0ZpYmVyO1xuICAgICAgfVxuXG4gICAgICBwcmV2aW91c05ld0ZpYmVyID0gbmV3RmliZXI7XG4gICAgICBvbGRGaWJlciA9IG5leHRPbGRGaWJlcjtcbiAgICB9XG5cbiAgICBpZiAobmV3SWR4ID09PSBuZXdDaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgIC8vIFdlJ3ZlIHJlYWNoZWQgdGhlIGVuZCBvZiB0aGUgbmV3IGNoaWxkcmVuLiBXZSBjYW4gZGVsZXRlIHRoZSByZXN0LlxuICAgICAgZGVsZXRlUmVtYWluaW5nQ2hpbGRyZW4ocmV0dXJuRmliZXIsIG9sZEZpYmVyKTtcbiAgICAgIHJldHVybiByZXN1bHRpbmdGaXJzdENoaWxkO1xuICAgIH1cblxuICAgIGlmIChvbGRGaWJlciA9PT0gbnVsbCkge1xuICAgICAgLy8gSWYgd2UgZG9uJ3QgaGF2ZSBhbnkgbW9yZSBleGlzdGluZyBjaGlsZHJlbiB3ZSBjYW4gY2hvb3NlIGEgZmFzdCBwYXRoXG4gICAgICAvLyBzaW5jZSB0aGUgcmVzdCB3aWxsIGFsbCBiZSBpbnNlcnRpb25zLlxuICAgICAgZm9yICg7IG5ld0lkeCA8IG5ld0NoaWxkcmVuLmxlbmd0aDsgbmV3SWR4KyspIHtcbiAgICAgICAgdmFyIF9uZXdGaWJlciA9IGNyZWF0ZUNoaWxkKHJldHVybkZpYmVyLCBuZXdDaGlsZHJlbltuZXdJZHhdLCBsYW5lcyk7XG5cbiAgICAgICAgaWYgKF9uZXdGaWJlciA9PT0gbnVsbCkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgbGFzdFBsYWNlZEluZGV4ID0gcGxhY2VDaGlsZChfbmV3RmliZXIsIGxhc3RQbGFjZWRJbmRleCwgbmV3SWR4KTtcblxuICAgICAgICBpZiAocHJldmlvdXNOZXdGaWJlciA9PT0gbnVsbCkge1xuICAgICAgICAgIC8vIFRPRE86IE1vdmUgb3V0IG9mIHRoZSBsb29wLiBUaGlzIG9ubHkgaGFwcGVucyBmb3IgdGhlIGZpcnN0IHJ1bi5cbiAgICAgICAgICByZXN1bHRpbmdGaXJzdENoaWxkID0gX25ld0ZpYmVyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHByZXZpb3VzTmV3RmliZXIuc2libGluZyA9IF9uZXdGaWJlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHByZXZpb3VzTmV3RmliZXIgPSBfbmV3RmliZXI7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHRpbmdGaXJzdENoaWxkO1xuICAgIH0gLy8gQWRkIGFsbCBjaGlsZHJlbiB0byBhIGtleSBtYXAgZm9yIHF1aWNrIGxvb2t1cHMuXG5cblxuICAgIHZhciBleGlzdGluZ0NoaWxkcmVuID0gbWFwUmVtYWluaW5nQ2hpbGRyZW4ocmV0dXJuRmliZXIsIG9sZEZpYmVyKTsgLy8gS2VlcCBzY2FubmluZyBhbmQgdXNlIHRoZSBtYXAgdG8gcmVzdG9yZSBkZWxldGVkIGl0ZW1zIGFzIG1vdmVzLlxuXG4gICAgZm9yICg7IG5ld0lkeCA8IG5ld0NoaWxkcmVuLmxlbmd0aDsgbmV3SWR4KyspIHtcbiAgICAgIHZhciBfbmV3RmliZXIyID0gdXBkYXRlRnJvbU1hcChleGlzdGluZ0NoaWxkcmVuLCByZXR1cm5GaWJlciwgbmV3SWR4LCBuZXdDaGlsZHJlbltuZXdJZHhdLCBsYW5lcyk7XG5cbiAgICAgIGlmIChfbmV3RmliZXIyICE9PSBudWxsKSB7XG4gICAgICAgIGlmIChzaG91bGRUcmFja1NpZGVFZmZlY3RzKSB7XG4gICAgICAgICAgaWYgKF9uZXdGaWJlcjIuYWx0ZXJuYXRlICE9PSBudWxsKSB7XG4gICAgICAgICAgICAvLyBUaGUgbmV3IGZpYmVyIGlzIGEgd29yayBpbiBwcm9ncmVzcywgYnV0IGlmIHRoZXJlIGV4aXN0cyBhXG4gICAgICAgICAgICAvLyBjdXJyZW50LCB0aGF0IG1lYW5zIHRoYXQgd2UgcmV1c2VkIHRoZSBmaWJlci4gV2UgbmVlZCB0byBkZWxldGVcbiAgICAgICAgICAgIC8vIGl0IGZyb20gdGhlIGNoaWxkIGxpc3Qgc28gdGhhdCB3ZSBkb24ndCBhZGQgaXQgdG8gdGhlIGRlbGV0aW9uXG4gICAgICAgICAgICAvLyBsaXN0LlxuICAgICAgICAgICAgZXhpc3RpbmdDaGlsZHJlbi5kZWxldGUoX25ld0ZpYmVyMi5rZXkgPT09IG51bGwgPyBuZXdJZHggOiBfbmV3RmliZXIyLmtleSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbGFzdFBsYWNlZEluZGV4ID0gcGxhY2VDaGlsZChfbmV3RmliZXIyLCBsYXN0UGxhY2VkSW5kZXgsIG5ld0lkeCk7XG5cbiAgICAgICAgaWYgKHByZXZpb3VzTmV3RmliZXIgPT09IG51bGwpIHtcbiAgICAgICAgICByZXN1bHRpbmdGaXJzdENoaWxkID0gX25ld0ZpYmVyMjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwcmV2aW91c05ld0ZpYmVyLnNpYmxpbmcgPSBfbmV3RmliZXIyO1xuICAgICAgICB9XG5cbiAgICAgICAgcHJldmlvdXNOZXdGaWJlciA9IF9uZXdGaWJlcjI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHNob3VsZFRyYWNrU2lkZUVmZmVjdHMpIHtcbiAgICAgIC8vIEFueSBleGlzdGluZyBjaGlsZHJlbiB0aGF0IHdlcmVuJ3QgY29uc3VtZWQgYWJvdmUgd2VyZSBkZWxldGVkLiBXZSBuZWVkXG4gICAgICAvLyB0byBhZGQgdGhlbSB0byB0aGUgZGVsZXRpb24gbGlzdC5cbiAgICAgIGV4aXN0aW5nQ2hpbGRyZW4uZm9yRWFjaChmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICAgICAgcmV0dXJuIGRlbGV0ZUNoaWxkKHJldHVybkZpYmVyLCBjaGlsZCk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0aW5nRmlyc3RDaGlsZDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlY29uY2lsZUNoaWxkcmVuSXRlcmF0b3IocmV0dXJuRmliZXIsIGN1cnJlbnRGaXJzdENoaWxkLCBuZXdDaGlsZHJlbkl0ZXJhYmxlLCBsYW5lcykge1xuICAgIC8vIFRoaXMgaXMgdGhlIHNhbWUgaW1wbGVtZW50YXRpb24gYXMgcmVjb25jaWxlQ2hpbGRyZW5BcnJheSgpLFxuICAgIC8vIGJ1dCB1c2luZyB0aGUgaXRlcmF0b3IgaW5zdGVhZC5cbiAgICB2YXIgaXRlcmF0b3JGbiA9IGdldEl0ZXJhdG9yRm4obmV3Q2hpbGRyZW5JdGVyYWJsZSk7XG5cbiAgICBpZiAoISh0eXBlb2YgaXRlcmF0b3JGbiA9PT0gJ2Z1bmN0aW9uJykpIHtcbiAgICAgIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoIFwiQW4gb2JqZWN0IGlzIG5vdCBhbiBpdGVyYWJsZS4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIiApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHtcbiAgICAgIC8vIFdlIGRvbid0IHN1cHBvcnQgcmVuZGVyaW5nIEdlbmVyYXRvcnMgYmVjYXVzZSBpdCdzIGEgbXV0YXRpb24uXG4gICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xMjk5NVxuICAgICAgaWYgKHR5cGVvZiBTeW1ib2wgPT09ICdmdW5jdGlvbicgJiYgLy8gJEZsb3dGaXhNZSBGbG93IGRvZXNuJ3Qga25vdyBhYm91dCB0b1N0cmluZ1RhZ1xuICAgICAgbmV3Q2hpbGRyZW5JdGVyYWJsZVtTeW1ib2wudG9TdHJpbmdUYWddID09PSAnR2VuZXJhdG9yJykge1xuICAgICAgICBpZiAoIWRpZFdhcm5BYm91dEdlbmVyYXRvcnMpIHtcbiAgICAgICAgICBlcnJvcignVXNpbmcgR2VuZXJhdG9ycyBhcyBjaGlsZHJlbiBpcyB1bnN1cHBvcnRlZCBhbmQgd2lsbCBsaWtlbHkgeWllbGQgJyArICd1bmV4cGVjdGVkIHJlc3VsdHMgYmVjYXVzZSBlbnVtZXJhdGluZyBhIGdlbmVyYXRvciBtdXRhdGVzIGl0LiAnICsgJ1lvdSBtYXkgY29udmVydCBpdCB0byBhbiBhcnJheSB3aXRoIGBBcnJheS5mcm9tKClgIG9yIHRoZSAnICsgJ2BbLi4uc3ByZWFkXWAgb3BlcmF0b3IgYmVmb3JlIHJlbmRlcmluZy4gS2VlcCBpbiBtaW5kICcgKyAneW91IG1pZ2h0IG5lZWQgdG8gcG9seWZpbGwgdGhlc2UgZmVhdHVyZXMgZm9yIG9sZGVyIGJyb3dzZXJzLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgZGlkV2FybkFib3V0R2VuZXJhdG9ycyA9IHRydWU7XG4gICAgICB9IC8vIFdhcm4gYWJvdXQgdXNpbmcgTWFwcyBhcyBjaGlsZHJlblxuXG5cbiAgICAgIGlmIChuZXdDaGlsZHJlbkl0ZXJhYmxlLmVudHJpZXMgPT09IGl0ZXJhdG9yRm4pIHtcbiAgICAgICAgaWYgKCFkaWRXYXJuQWJvdXRNYXBzKSB7XG4gICAgICAgICAgZXJyb3IoJ1VzaW5nIE1hcHMgYXMgY2hpbGRyZW4gaXMgbm90IHN1cHBvcnRlZC4gJyArICdVc2UgYW4gYXJyYXkgb2Yga2V5ZWQgUmVhY3RFbGVtZW50cyBpbnN0ZWFkLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgZGlkV2FybkFib3V0TWFwcyA9IHRydWU7XG4gICAgICB9IC8vIEZpcnN0LCB2YWxpZGF0ZSBrZXlzLlxuICAgICAgLy8gV2UnbGwgZ2V0IGEgZGlmZmVyZW50IGl0ZXJhdG9yIGxhdGVyIGZvciB0aGUgbWFpbiBwYXNzLlxuXG5cbiAgICAgIHZhciBfbmV3Q2hpbGRyZW4gPSBpdGVyYXRvckZuLmNhbGwobmV3Q2hpbGRyZW5JdGVyYWJsZSk7XG5cbiAgICAgIGlmIChfbmV3Q2hpbGRyZW4pIHtcbiAgICAgICAgdmFyIGtub3duS2V5cyA9IG51bGw7XG5cbiAgICAgICAgdmFyIF9zdGVwID0gX25ld0NoaWxkcmVuLm5leHQoKTtcblxuICAgICAgICBmb3IgKDsgIV9zdGVwLmRvbmU7IF9zdGVwID0gX25ld0NoaWxkcmVuLm5leHQoKSkge1xuICAgICAgICAgIHZhciBjaGlsZCA9IF9zdGVwLnZhbHVlO1xuICAgICAgICAgIGtub3duS2V5cyA9IHdhcm5PbkludmFsaWRLZXkoY2hpbGQsIGtub3duS2V5cywgcmV0dXJuRmliZXIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIG5ld0NoaWxkcmVuID0gaXRlcmF0b3JGbi5jYWxsKG5ld0NoaWxkcmVuSXRlcmFibGUpO1xuXG4gICAgaWYgKCEobmV3Q2hpbGRyZW4gIT0gbnVsbCkpIHtcbiAgICAgIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoIFwiQW4gaXRlcmFibGUgb2JqZWN0IHByb3ZpZGVkIG5vIGl0ZXJhdG9yLlwiICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIHJlc3VsdGluZ0ZpcnN0Q2hpbGQgPSBudWxsO1xuICAgIHZhciBwcmV2aW91c05ld0ZpYmVyID0gbnVsbDtcbiAgICB2YXIgb2xkRmliZXIgPSBjdXJyZW50Rmlyc3RDaGlsZDtcbiAgICB2YXIgbGFzdFBsYWNlZEluZGV4ID0gMDtcbiAgICB2YXIgbmV3SWR4ID0gMDtcbiAgICB2YXIgbmV4dE9sZEZpYmVyID0gbnVsbDtcbiAgICB2YXIgc3RlcCA9IG5ld0NoaWxkcmVuLm5leHQoKTtcblxuICAgIGZvciAoOyBvbGRGaWJlciAhPT0gbnVsbCAmJiAhc3RlcC5kb25lOyBuZXdJZHgrKywgc3RlcCA9IG5ld0NoaWxkcmVuLm5leHQoKSkge1xuICAgICAgaWYgKG9sZEZpYmVyLmluZGV4ID4gbmV3SWR4KSB7XG4gICAgICAgIG5leHRPbGRGaWJlciA9IG9sZEZpYmVyO1xuICAgICAgICBvbGRGaWJlciA9IG51bGw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXh0T2xkRmliZXIgPSBvbGRGaWJlci5zaWJsaW5nO1xuICAgICAgfVxuXG4gICAgICB2YXIgbmV3RmliZXIgPSB1cGRhdGVTbG90KHJldHVybkZpYmVyLCBvbGRGaWJlciwgc3RlcC52YWx1ZSwgbGFuZXMpO1xuXG4gICAgICBpZiAobmV3RmliZXIgPT09IG51bGwpIHtcbiAgICAgICAgLy8gVE9ETzogVGhpcyBicmVha3Mgb24gZW1wdHkgc2xvdHMgbGlrZSBudWxsIGNoaWxkcmVuLiBUaGF0J3NcbiAgICAgICAgLy8gdW5mb3J0dW5hdGUgYmVjYXVzZSBpdCB0cmlnZ2VycyB0aGUgc2xvdyBwYXRoIGFsbCB0aGUgdGltZS4gV2UgbmVlZFxuICAgICAgICAvLyBhIGJldHRlciB3YXkgdG8gY29tbXVuaWNhdGUgd2hldGhlciB0aGlzIHdhcyBhIG1pc3Mgb3IgbnVsbCxcbiAgICAgICAgLy8gYm9vbGVhbiwgdW5kZWZpbmVkLCBldGMuXG4gICAgICAgIGlmIChvbGRGaWJlciA9PT0gbnVsbCkge1xuICAgICAgICAgIG9sZEZpYmVyID0gbmV4dE9sZEZpYmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGlmIChzaG91bGRUcmFja1NpZGVFZmZlY3RzKSB7XG4gICAgICAgIGlmIChvbGRGaWJlciAmJiBuZXdGaWJlci5hbHRlcm5hdGUgPT09IG51bGwpIHtcbiAgICAgICAgICAvLyBXZSBtYXRjaGVkIHRoZSBzbG90LCBidXQgd2UgZGlkbid0IHJldXNlIHRoZSBleGlzdGluZyBmaWJlciwgc28gd2VcbiAgICAgICAgICAvLyBuZWVkIHRvIGRlbGV0ZSB0aGUgZXhpc3RpbmcgY2hpbGQuXG4gICAgICAgICAgZGVsZXRlQ2hpbGQocmV0dXJuRmliZXIsIG9sZEZpYmVyKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBsYXN0UGxhY2VkSW5kZXggPSBwbGFjZUNoaWxkKG5ld0ZpYmVyLCBsYXN0UGxhY2VkSW5kZXgsIG5ld0lkeCk7XG5cbiAgICAgIGlmIChwcmV2aW91c05ld0ZpYmVyID09PSBudWxsKSB7XG4gICAgICAgIC8vIFRPRE86IE1vdmUgb3V0IG9mIHRoZSBsb29wLiBUaGlzIG9ubHkgaGFwcGVucyBmb3IgdGhlIGZpcnN0IHJ1bi5cbiAgICAgICAgcmVzdWx0aW5nRmlyc3RDaGlsZCA9IG5ld0ZpYmVyO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gVE9ETzogRGVmZXIgc2libGluZ3MgaWYgd2UncmUgbm90IGF0IHRoZSByaWdodCBpbmRleCBmb3IgdGhpcyBzbG90LlxuICAgICAgICAvLyBJLmUuIGlmIHdlIGhhZCBudWxsIHZhbHVlcyBiZWZvcmUsIHRoZW4gd2Ugd2FudCB0byBkZWZlciB0aGlzXG4gICAgICAgIC8vIGZvciBlYWNoIG51bGwgdmFsdWUuIEhvd2V2ZXIsIHdlIGFsc28gZG9uJ3Qgd2FudCB0byBjYWxsIHVwZGF0ZVNsb3RcbiAgICAgICAgLy8gd2l0aCB0aGUgcHJldmlvdXMgb25lLlxuICAgICAgICBwcmV2aW91c05ld0ZpYmVyLnNpYmxpbmcgPSBuZXdGaWJlcjtcbiAgICAgIH1cblxuICAgICAgcHJldmlvdXNOZXdGaWJlciA9IG5ld0ZpYmVyO1xuICAgICAgb2xkRmliZXIgPSBuZXh0T2xkRmliZXI7XG4gICAgfVxuXG4gICAgaWYgKHN0ZXAuZG9uZSkge1xuICAgICAgLy8gV2UndmUgcmVhY2hlZCB0aGUgZW5kIG9mIHRoZSBuZXcgY2hpbGRyZW4uIFdlIGNhbiBkZWxldGUgdGhlIHJlc3QuXG4gICAgICBkZWxldGVSZW1haW5pbmdDaGlsZHJlbihyZXR1cm5GaWJlciwgb2xkRmliZXIpO1xuICAgICAgcmV0dXJuIHJlc3VsdGluZ0ZpcnN0Q2hpbGQ7XG4gICAgfVxuXG4gICAgaWYgKG9sZEZpYmVyID09PSBudWxsKSB7XG4gICAgICAvLyBJZiB3ZSBkb24ndCBoYXZlIGFueSBtb3JlIGV4aXN0aW5nIGNoaWxkcmVuIHdlIGNhbiBjaG9vc2UgYSBmYXN0IHBhdGhcbiAgICAgIC8vIHNpbmNlIHRoZSByZXN0IHdpbGwgYWxsIGJlIGluc2VydGlvbnMuXG4gICAgICBmb3IgKDsgIXN0ZXAuZG9uZTsgbmV3SWR4KyssIHN0ZXAgPSBuZXdDaGlsZHJlbi5uZXh0KCkpIHtcbiAgICAgICAgdmFyIF9uZXdGaWJlcjMgPSBjcmVhdGVDaGlsZChyZXR1cm5GaWJlciwgc3RlcC52YWx1ZSwgbGFuZXMpO1xuXG4gICAgICAgIGlmIChfbmV3RmliZXIzID09PSBudWxsKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBsYXN0UGxhY2VkSW5kZXggPSBwbGFjZUNoaWxkKF9uZXdGaWJlcjMsIGxhc3RQbGFjZWRJbmRleCwgbmV3SWR4KTtcblxuICAgICAgICBpZiAocHJldmlvdXNOZXdGaWJlciA9PT0gbnVsbCkge1xuICAgICAgICAgIC8vIFRPRE86IE1vdmUgb3V0IG9mIHRoZSBsb29wLiBUaGlzIG9ubHkgaGFwcGVucyBmb3IgdGhlIGZpcnN0IHJ1bi5cbiAgICAgICAgICByZXN1bHRpbmdGaXJzdENoaWxkID0gX25ld0ZpYmVyMztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwcmV2aW91c05ld0ZpYmVyLnNpYmxpbmcgPSBfbmV3RmliZXIzO1xuICAgICAgICB9XG5cbiAgICAgICAgcHJldmlvdXNOZXdGaWJlciA9IF9uZXdGaWJlcjM7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHRpbmdGaXJzdENoaWxkO1xuICAgIH0gLy8gQWRkIGFsbCBjaGlsZHJlbiB0byBhIGtleSBtYXAgZm9yIHF1aWNrIGxvb2t1cHMuXG5cblxuICAgIHZhciBleGlzdGluZ0NoaWxkcmVuID0gbWFwUmVtYWluaW5nQ2hpbGRyZW4ocmV0dXJuRmliZXIsIG9sZEZpYmVyKTsgLy8gS2VlcCBzY2FubmluZyBhbmQgdXNlIHRoZSBtYXAgdG8gcmVzdG9yZSBkZWxldGVkIGl0ZW1zIGFzIG1vdmVzLlxuXG4gICAgZm9yICg7ICFzdGVwLmRvbmU7IG5ld0lkeCsrLCBzdGVwID0gbmV3Q2hpbGRyZW4ubmV4dCgpKSB7XG4gICAgICB2YXIgX25ld0ZpYmVyNCA9IHVwZGF0ZUZyb21NYXAoZXhpc3RpbmdDaGlsZHJlbiwgcmV0dXJuRmliZXIsIG5ld0lkeCwgc3RlcC52YWx1ZSwgbGFuZXMpO1xuXG4gICAgICBpZiAoX25ld0ZpYmVyNCAhPT0gbnVsbCkge1xuICAgICAgICBpZiAoc2hvdWxkVHJhY2tTaWRlRWZmZWN0cykge1xuICAgICAgICAgIGlmIChfbmV3RmliZXI0LmFsdGVybmF0ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gVGhlIG5ldyBmaWJlciBpcyBhIHdvcmsgaW4gcHJvZ3Jlc3MsIGJ1dCBpZiB0aGVyZSBleGlzdHMgYVxuICAgICAgICAgICAgLy8gY3VycmVudCwgdGhhdCBtZWFucyB0aGF0IHdlIHJldXNlZCB0aGUgZmliZXIuIFdlIG5lZWQgdG8gZGVsZXRlXG4gICAgICAgICAgICAvLyBpdCBmcm9tIHRoZSBjaGlsZCBsaXN0IHNvIHRoYXQgd2UgZG9uJ3QgYWRkIGl0IHRvIHRoZSBkZWxldGlvblxuICAgICAgICAgICAgLy8gbGlzdC5cbiAgICAgICAgICAgIGV4aXN0aW5nQ2hpbGRyZW4uZGVsZXRlKF9uZXdGaWJlcjQua2V5ID09PSBudWxsID8gbmV3SWR4IDogX25ld0ZpYmVyNC5rZXkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxhc3RQbGFjZWRJbmRleCA9IHBsYWNlQ2hpbGQoX25ld0ZpYmVyNCwgbGFzdFBsYWNlZEluZGV4LCBuZXdJZHgpO1xuXG4gICAgICAgIGlmIChwcmV2aW91c05ld0ZpYmVyID09PSBudWxsKSB7XG4gICAgICAgICAgcmVzdWx0aW5nRmlyc3RDaGlsZCA9IF9uZXdGaWJlcjQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcHJldmlvdXNOZXdGaWJlci5zaWJsaW5nID0gX25ld0ZpYmVyNDtcbiAgICAgICAgfVxuXG4gICAgICAgIHByZXZpb3VzTmV3RmliZXIgPSBfbmV3RmliZXI0O1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChzaG91bGRUcmFja1NpZGVFZmZlY3RzKSB7XG4gICAgICAvLyBBbnkgZXhpc3RpbmcgY2hpbGRyZW4gdGhhdCB3ZXJlbid0IGNvbnN1bWVkIGFib3ZlIHdlcmUgZGVsZXRlZC4gV2UgbmVlZFxuICAgICAgLy8gdG8gYWRkIHRoZW0gdG8gdGhlIGRlbGV0aW9uIGxpc3QuXG4gICAgICBleGlzdGluZ0NoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgICAgIHJldHVybiBkZWxldGVDaGlsZChyZXR1cm5GaWJlciwgY2hpbGQpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdGluZ0ZpcnN0Q2hpbGQ7XG4gIH1cblxuICBmdW5jdGlvbiByZWNvbmNpbGVTaW5nbGVUZXh0Tm9kZShyZXR1cm5GaWJlciwgY3VycmVudEZpcnN0Q2hpbGQsIHRleHRDb250ZW50LCBsYW5lcykge1xuICAgIC8vIFRoZXJlJ3Mgbm8gbmVlZCB0byBjaGVjayBmb3Iga2V5cyBvbiB0ZXh0IG5vZGVzIHNpbmNlIHdlIGRvbid0IGhhdmUgYVxuICAgIC8vIHdheSB0byBkZWZpbmUgdGhlbS5cbiAgICBpZiAoY3VycmVudEZpcnN0Q2hpbGQgIT09IG51bGwgJiYgY3VycmVudEZpcnN0Q2hpbGQudGFnID09PSBIb3N0VGV4dCkge1xuICAgICAgLy8gV2UgYWxyZWFkeSBoYXZlIGFuIGV4aXN0aW5nIG5vZGUgc28gbGV0J3MganVzdCB1cGRhdGUgaXQgYW5kIGRlbGV0ZVxuICAgICAgLy8gdGhlIHJlc3QuXG4gICAgICBkZWxldGVSZW1haW5pbmdDaGlsZHJlbihyZXR1cm5GaWJlciwgY3VycmVudEZpcnN0Q2hpbGQuc2libGluZyk7XG4gICAgICB2YXIgZXhpc3RpbmcgPSB1c2VGaWJlcihjdXJyZW50Rmlyc3RDaGlsZCwgdGV4dENvbnRlbnQpO1xuICAgICAgZXhpc3RpbmcucmV0dXJuID0gcmV0dXJuRmliZXI7XG4gICAgICByZXR1cm4gZXhpc3Rpbmc7XG4gICAgfSAvLyBUaGUgZXhpc3RpbmcgZmlyc3QgY2hpbGQgaXMgbm90IGEgdGV4dCBub2RlIHNvIHdlIG5lZWQgdG8gY3JlYXRlIG9uZVxuICAgIC8vIGFuZCBkZWxldGUgdGhlIGV4aXN0aW5nIG9uZXMuXG5cblxuICAgIGRlbGV0ZVJlbWFpbmluZ0NoaWxkcmVuKHJldHVybkZpYmVyLCBjdXJyZW50Rmlyc3RDaGlsZCk7XG4gICAgdmFyIGNyZWF0ZWQgPSBjcmVhdGVGaWJlckZyb21UZXh0KHRleHRDb250ZW50LCByZXR1cm5GaWJlci5tb2RlLCBsYW5lcyk7XG4gICAgY3JlYXRlZC5yZXR1cm4gPSByZXR1cm5GaWJlcjtcbiAgICByZXR1cm4gY3JlYXRlZDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlY29uY2lsZVNpbmdsZUVsZW1lbnQocmV0dXJuRmliZXIsIGN1cnJlbnRGaXJzdENoaWxkLCBlbGVtZW50LCBsYW5lcykge1xuICAgIHZhciBrZXkgPSBlbGVtZW50LmtleTtcbiAgICB2YXIgY2hpbGQgPSBjdXJyZW50Rmlyc3RDaGlsZDtcblxuICAgIHdoaWxlIChjaGlsZCAhPT0gbnVsbCkge1xuICAgICAgLy8gVE9ETzogSWYga2V5ID09PSBudWxsIGFuZCBjaGlsZC5rZXkgPT09IG51bGwsIHRoZW4gdGhpcyBvbmx5IGFwcGxpZXMgdG9cbiAgICAgIC8vIHRoZSBmaXJzdCBpdGVtIGluIHRoZSBsaXN0LlxuICAgICAgaWYgKGNoaWxkLmtleSA9PT0ga2V5KSB7XG4gICAgICAgIHN3aXRjaCAoY2hpbGQudGFnKSB7XG4gICAgICAgICAgY2FzZSBGcmFnbWVudDpcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWYgKGVsZW1lbnQudHlwZSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZVJlbWFpbmluZ0NoaWxkcmVuKHJldHVybkZpYmVyLCBjaGlsZC5zaWJsaW5nKTtcbiAgICAgICAgICAgICAgICB2YXIgZXhpc3RpbmcgPSB1c2VGaWJlcihjaGlsZCwgZWxlbWVudC5wcm9wcy5jaGlsZHJlbik7XG4gICAgICAgICAgICAgICAgZXhpc3RpbmcucmV0dXJuID0gcmV0dXJuRmliZXI7XG5cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBleGlzdGluZy5fZGVidWdTb3VyY2UgPSBlbGVtZW50Ll9zb3VyY2U7XG4gICAgICAgICAgICAgICAgICBleGlzdGluZy5fZGVidWdPd25lciA9IGVsZW1lbnQuX293bmVyO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBleGlzdGluZztcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgY2FzZSBCbG9jazpcblxuICAgICAgICAgIC8vIFdlIGludGVudGlvbmFsbHkgZmFsbHRocm91Z2ggaGVyZSBpZiBlbmFibGVCbG9ja3NBUEkgaXMgbm90IG9uLlxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZWQgbm8tZmFsbHRocm91Z2hcblxuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGlmIChjaGlsZC5lbGVtZW50VHlwZSA9PT0gZWxlbWVudC50eXBlIHx8ICggLy8gS2VlcCB0aGlzIGNoZWNrIGlubGluZSBzbyBpdCBvbmx5IHJ1bnMgb24gdGhlIGZhbHNlIHBhdGg6XG4gICAgICAgICAgICAgICBpc0NvbXBhdGlibGVGYW1pbHlGb3JIb3RSZWxvYWRpbmcoY2hpbGQsIGVsZW1lbnQpICkpIHtcbiAgICAgICAgICAgICAgICBkZWxldGVSZW1haW5pbmdDaGlsZHJlbihyZXR1cm5GaWJlciwgY2hpbGQuc2libGluZyk7XG5cbiAgICAgICAgICAgICAgICB2YXIgX2V4aXN0aW5nMyA9IHVzZUZpYmVyKGNoaWxkLCBlbGVtZW50LnByb3BzKTtcblxuICAgICAgICAgICAgICAgIF9leGlzdGluZzMucmVmID0gY29lcmNlUmVmKHJldHVybkZpYmVyLCBjaGlsZCwgZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgX2V4aXN0aW5nMy5yZXR1cm4gPSByZXR1cm5GaWJlcjtcblxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIF9leGlzdGluZzMuX2RlYnVnU291cmNlID0gZWxlbWVudC5fc291cmNlO1xuICAgICAgICAgICAgICAgICAgX2V4aXN0aW5nMy5fZGVidWdPd25lciA9IGVsZW1lbnQuX293bmVyO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBfZXhpc3RpbmczO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gLy8gRGlkbid0IG1hdGNoLlxuXG5cbiAgICAgICAgZGVsZXRlUmVtYWluaW5nQ2hpbGRyZW4ocmV0dXJuRmliZXIsIGNoaWxkKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkZWxldGVDaGlsZChyZXR1cm5GaWJlciwgY2hpbGQpO1xuICAgICAgfVxuXG4gICAgICBjaGlsZCA9IGNoaWxkLnNpYmxpbmc7XG4gICAgfVxuXG4gICAgaWYgKGVsZW1lbnQudHlwZSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRSkge1xuICAgICAgdmFyIGNyZWF0ZWQgPSBjcmVhdGVGaWJlckZyb21GcmFnbWVudChlbGVtZW50LnByb3BzLmNoaWxkcmVuLCByZXR1cm5GaWJlci5tb2RlLCBsYW5lcywgZWxlbWVudC5rZXkpO1xuICAgICAgY3JlYXRlZC5yZXR1cm4gPSByZXR1cm5GaWJlcjtcbiAgICAgIHJldHVybiBjcmVhdGVkO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgX2NyZWF0ZWQ0ID0gY3JlYXRlRmliZXJGcm9tRWxlbWVudChlbGVtZW50LCByZXR1cm5GaWJlci5tb2RlLCBsYW5lcyk7XG5cbiAgICAgIF9jcmVhdGVkNC5yZWYgPSBjb2VyY2VSZWYocmV0dXJuRmliZXIsIGN1cnJlbnRGaXJzdENoaWxkLCBlbGVtZW50KTtcbiAgICAgIF9jcmVhdGVkNC5yZXR1cm4gPSByZXR1cm5GaWJlcjtcbiAgICAgIHJldHVybiBfY3JlYXRlZDQ7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gcmVjb25jaWxlU2luZ2xlUG9ydGFsKHJldHVybkZpYmVyLCBjdXJyZW50Rmlyc3RDaGlsZCwgcG9ydGFsLCBsYW5lcykge1xuICAgIHZhciBrZXkgPSBwb3J0YWwua2V5O1xuICAgIHZhciBjaGlsZCA9IGN1cnJlbnRGaXJzdENoaWxkO1xuXG4gICAgd2hpbGUgKGNoaWxkICE9PSBudWxsKSB7XG4gICAgICAvLyBUT0RPOiBJZiBrZXkgPT09IG51bGwgYW5kIGNoaWxkLmtleSA9PT0gbnVsbCwgdGhlbiB0aGlzIG9ubHkgYXBwbGllcyB0b1xuICAgICAgLy8gdGhlIGZpcnN0IGl0ZW0gaW4gdGhlIGxpc3QuXG4gICAgICBpZiAoY2hpbGQua2V5ID09PSBrZXkpIHtcbiAgICAgICAgaWYgKGNoaWxkLnRhZyA9PT0gSG9zdFBvcnRhbCAmJiBjaGlsZC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyA9PT0gcG9ydGFsLmNvbnRhaW5lckluZm8gJiYgY2hpbGQuc3RhdGVOb2RlLmltcGxlbWVudGF0aW9uID09PSBwb3J0YWwuaW1wbGVtZW50YXRpb24pIHtcbiAgICAgICAgICBkZWxldGVSZW1haW5pbmdDaGlsZHJlbihyZXR1cm5GaWJlciwgY2hpbGQuc2libGluZyk7XG4gICAgICAgICAgdmFyIGV4aXN0aW5nID0gdXNlRmliZXIoY2hpbGQsIHBvcnRhbC5jaGlsZHJlbiB8fCBbXSk7XG4gICAgICAgICAgZXhpc3RpbmcucmV0dXJuID0gcmV0dXJuRmliZXI7XG4gICAgICAgICAgcmV0dXJuIGV4aXN0aW5nO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRlbGV0ZVJlbWFpbmluZ0NoaWxkcmVuKHJldHVybkZpYmVyLCBjaGlsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRlbGV0ZUNoaWxkKHJldHVybkZpYmVyLCBjaGlsZCk7XG4gICAgICB9XG5cbiAgICAgIGNoaWxkID0gY2hpbGQuc2libGluZztcbiAgICB9XG5cbiAgICB2YXIgY3JlYXRlZCA9IGNyZWF0ZUZpYmVyRnJvbVBvcnRhbChwb3J0YWwsIHJldHVybkZpYmVyLm1vZGUsIGxhbmVzKTtcbiAgICBjcmVhdGVkLnJldHVybiA9IHJldHVybkZpYmVyO1xuICAgIHJldHVybiBjcmVhdGVkO1xuICB9IC8vIFRoaXMgQVBJIHdpbGwgdGFnIHRoZSBjaGlsZHJlbiB3aXRoIHRoZSBzaWRlLWVmZmVjdCBvZiB0aGUgcmVjb25jaWxpYXRpb25cbiAgLy8gaXRzZWxmLiBUaGV5IHdpbGwgYmUgYWRkZWQgdG8gdGhlIHNpZGUtZWZmZWN0IGxpc3QgYXMgd2UgcGFzcyB0aHJvdWdoIHRoZVxuICAvLyBjaGlsZHJlbiBhbmQgdGhlIHBhcmVudC5cblxuXG4gIGZ1bmN0aW9uIHJlY29uY2lsZUNoaWxkRmliZXJzKHJldHVybkZpYmVyLCBjdXJyZW50Rmlyc3RDaGlsZCwgbmV3Q2hpbGQsIGxhbmVzKSB7XG4gICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBub3QgcmVjdXJzaXZlLlxuICAgIC8vIElmIHRoZSB0b3AgbGV2ZWwgaXRlbSBpcyBhbiBhcnJheSwgd2UgdHJlYXQgaXQgYXMgYSBzZXQgb2YgY2hpbGRyZW4sXG4gICAgLy8gbm90IGFzIGEgZnJhZ21lbnQuIE5lc3RlZCBhcnJheXMgb24gdGhlIG90aGVyIGhhbmQgd2lsbCBiZSB0cmVhdGVkIGFzXG4gICAgLy8gZnJhZ21lbnQgbm9kZXMuIFJlY3Vyc2lvbiBoYXBwZW5zIGF0IHRoZSBub3JtYWwgZmxvdy5cbiAgICAvLyBIYW5kbGUgdG9wIGxldmVsIHVua2V5ZWQgZnJhZ21lbnRzIGFzIGlmIHRoZXkgd2VyZSBhcnJheXMuXG4gICAgLy8gVGhpcyBsZWFkcyB0byBhbiBhbWJpZ3VpdHkgYmV0d2VlbiA8PntbLi4uXX08Lz4gYW5kIDw+Li4uPC8+LlxuICAgIC8vIFdlIHRyZWF0IHRoZSBhbWJpZ3VvdXMgY2FzZXMgYWJvdmUgdGhlIHNhbWUuXG4gICAgdmFyIGlzVW5rZXllZFRvcExldmVsRnJhZ21lbnQgPSB0eXBlb2YgbmV3Q2hpbGQgPT09ICdvYmplY3QnICYmIG5ld0NoaWxkICE9PSBudWxsICYmIG5ld0NoaWxkLnR5cGUgPT09IFJFQUNUX0ZSQUdNRU5UX1RZUEUgJiYgbmV3Q2hpbGQua2V5ID09PSBudWxsO1xuXG4gICAgaWYgKGlzVW5rZXllZFRvcExldmVsRnJhZ21lbnQpIHtcbiAgICAgIG5ld0NoaWxkID0gbmV3Q2hpbGQucHJvcHMuY2hpbGRyZW47XG4gICAgfSAvLyBIYW5kbGUgb2JqZWN0IHR5cGVzXG5cblxuICAgIHZhciBpc09iamVjdCA9IHR5cGVvZiBuZXdDaGlsZCA9PT0gJ29iamVjdCcgJiYgbmV3Q2hpbGQgIT09IG51bGw7XG5cbiAgICBpZiAoaXNPYmplY3QpIHtcbiAgICAgIHN3aXRjaCAobmV3Q2hpbGQuJCR0eXBlb2YpIHtcbiAgICAgICAgY2FzZSBSRUFDVF9FTEVNRU5UX1RZUEU6XG4gICAgICAgICAgcmV0dXJuIHBsYWNlU2luZ2xlQ2hpbGQocmVjb25jaWxlU2luZ2xlRWxlbWVudChyZXR1cm5GaWJlciwgY3VycmVudEZpcnN0Q2hpbGQsIG5ld0NoaWxkLCBsYW5lcykpO1xuXG4gICAgICAgIGNhc2UgUkVBQ1RfUE9SVEFMX1RZUEU6XG4gICAgICAgICAgcmV0dXJuIHBsYWNlU2luZ2xlQ2hpbGQocmVjb25jaWxlU2luZ2xlUG9ydGFsKHJldHVybkZpYmVyLCBjdXJyZW50Rmlyc3RDaGlsZCwgbmV3Q2hpbGQsIGxhbmVzKSk7XG5cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIG5ld0NoaWxkID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgbmV3Q2hpbGQgPT09ICdudW1iZXInKSB7XG4gICAgICByZXR1cm4gcGxhY2VTaW5nbGVDaGlsZChyZWNvbmNpbGVTaW5nbGVUZXh0Tm9kZShyZXR1cm5GaWJlciwgY3VycmVudEZpcnN0Q2hpbGQsICcnICsgbmV3Q2hpbGQsIGxhbmVzKSk7XG4gICAgfVxuXG4gICAgaWYgKGlzQXJyYXkkMShuZXdDaGlsZCkpIHtcbiAgICAgIHJldHVybiByZWNvbmNpbGVDaGlsZHJlbkFycmF5KHJldHVybkZpYmVyLCBjdXJyZW50Rmlyc3RDaGlsZCwgbmV3Q2hpbGQsIGxhbmVzKTtcbiAgICB9XG5cbiAgICBpZiAoZ2V0SXRlcmF0b3JGbihuZXdDaGlsZCkpIHtcbiAgICAgIHJldHVybiByZWNvbmNpbGVDaGlsZHJlbkl0ZXJhdG9yKHJldHVybkZpYmVyLCBjdXJyZW50Rmlyc3RDaGlsZCwgbmV3Q2hpbGQsIGxhbmVzKTtcbiAgICB9XG5cbiAgICBpZiAoaXNPYmplY3QpIHtcbiAgICAgIHRocm93T25JbnZhbGlkT2JqZWN0VHlwZShyZXR1cm5GaWJlciwgbmV3Q2hpbGQpO1xuICAgIH1cblxuICAgIHtcbiAgICAgIGlmICh0eXBlb2YgbmV3Q2hpbGQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgd2Fybk9uRnVuY3Rpb25UeXBlKHJldHVybkZpYmVyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIG5ld0NoaWxkID09PSAndW5kZWZpbmVkJyAmJiAhaXNVbmtleWVkVG9wTGV2ZWxGcmFnbWVudCkge1xuICAgICAgLy8gSWYgdGhlIG5ldyBjaGlsZCBpcyB1bmRlZmluZWQsIGFuZCB0aGUgcmV0dXJuIGZpYmVyIGlzIGEgY29tcG9zaXRlXG4gICAgICAvLyBjb21wb25lbnQsIHRocm93IGFuIGVycm9yLiBJZiBGaWJlciByZXR1cm4gdHlwZXMgYXJlIGRpc2FibGVkLFxuICAgICAgLy8gd2UgYWxyZWFkeSB0aHJldyBhYm92ZS5cbiAgICAgIHN3aXRjaCAocmV0dXJuRmliZXIudGFnKSB7XG4gICAgICAgIGNhc2UgQ2xhc3NDb21wb25lbnQ6XG4gICAgICAgICAge1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB2YXIgaW5zdGFuY2UgPSByZXR1cm5GaWJlci5zdGF0ZU5vZGU7XG5cbiAgICAgICAgICAgICAgaWYgKGluc3RhbmNlLnJlbmRlci5faXNNb2NrRnVuY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAvLyBXZSBhbGxvdyBhdXRvLW1vY2tzIHRvIHByb2NlZWQgYXMgaWYgdGhleSdyZSByZXR1cm5pbmcgbnVsbC5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgLy8gSW50ZW50aW9uYWxseSBmYWxsIHRocm91Z2ggdG8gdGhlIG5leHQgY2FzZSwgd2hpY2ggaGFuZGxlcyBib3RoXG4gICAgICAgIC8vIGZ1bmN0aW9ucyBhbmQgY2xhc3Nlc1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVkIG5vLWZhbGx0aHJvdWdoXG5cbiAgICAgICAgY2FzZSBCbG9jazpcbiAgICAgICAgY2FzZSBGdW5jdGlvbkNvbXBvbmVudDpcbiAgICAgICAgY2FzZSBGb3J3YXJkUmVmOlxuICAgICAgICBjYXNlIFNpbXBsZU1lbW9Db21wb25lbnQ6XG4gICAgICAgICAge1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoIChnZXRDb21wb25lbnROYW1lKHJldHVybkZpYmVyLnR5cGUpIHx8ICdDb21wb25lbnQnKSArIFwiKC4uLik6IE5vdGhpbmcgd2FzIHJldHVybmVkIGZyb20gcmVuZGVyLiBUaGlzIHVzdWFsbHkgbWVhbnMgYSByZXR1cm4gc3RhdGVtZW50IGlzIG1pc3NpbmcuIE9yLCB0byByZW5kZXIgbm90aGluZywgcmV0dXJuIG51bGwuXCIgKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICB9IC8vIFJlbWFpbmluZyBjYXNlcyBhcmUgYWxsIHRyZWF0ZWQgYXMgZW1wdHkuXG5cblxuICAgIHJldHVybiBkZWxldGVSZW1haW5pbmdDaGlsZHJlbihyZXR1cm5GaWJlciwgY3VycmVudEZpcnN0Q2hpbGQpO1xuICB9XG5cbiAgcmV0dXJuIHJlY29uY2lsZUNoaWxkRmliZXJzO1xufVxuXG52YXIgcmVjb25jaWxlQ2hpbGRGaWJlcnMgPSBDaGlsZFJlY29uY2lsZXIodHJ1ZSk7XG52YXIgbW91bnRDaGlsZEZpYmVycyA9IENoaWxkUmVjb25jaWxlcihmYWxzZSk7XG5mdW5jdGlvbiBjbG9uZUNoaWxkRmliZXJzKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzKSB7XG4gIGlmICghKGN1cnJlbnQgPT09IG51bGwgfHwgd29ya0luUHJvZ3Jlc3MuY2hpbGQgPT09IGN1cnJlbnQuY2hpbGQpKSB7XG4gICAge1xuICAgICAgdGhyb3cgRXJyb3IoIFwiUmVzdW1pbmcgd29yayBub3QgeWV0IGltcGxlbWVudGVkLlwiICk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHdvcmtJblByb2dyZXNzLmNoaWxkID09PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdmFyIGN1cnJlbnRDaGlsZCA9IHdvcmtJblByb2dyZXNzLmNoaWxkO1xuICB2YXIgbmV3Q2hpbGQgPSBjcmVhdGVXb3JrSW5Qcm9ncmVzcyhjdXJyZW50Q2hpbGQsIGN1cnJlbnRDaGlsZC5wZW5kaW5nUHJvcHMpO1xuICB3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IG5ld0NoaWxkO1xuICBuZXdDaGlsZC5yZXR1cm4gPSB3b3JrSW5Qcm9ncmVzcztcblxuICB3aGlsZSAoY3VycmVudENoaWxkLnNpYmxpbmcgIT09IG51bGwpIHtcbiAgICBjdXJyZW50Q2hpbGQgPSBjdXJyZW50Q2hpbGQuc2libGluZztcbiAgICBuZXdDaGlsZCA9IG5ld0NoaWxkLnNpYmxpbmcgPSBjcmVhdGVXb3JrSW5Qcm9ncmVzcyhjdXJyZW50Q2hpbGQsIGN1cnJlbnRDaGlsZC5wZW5kaW5nUHJvcHMpO1xuICAgIG5ld0NoaWxkLnJldHVybiA9IHdvcmtJblByb2dyZXNzO1xuICB9XG5cbiAgbmV3Q2hpbGQuc2libGluZyA9IG51bGw7XG59IC8vIFJlc2V0IGEgd29ya0luUHJvZ3Jlc3MgY2hpbGQgc2V0IHRvIHByZXBhcmUgaXQgZm9yIGEgc2Vjb25kIHBhc3MuXG5cbmZ1bmN0aW9uIHJlc2V0Q2hpbGRGaWJlcnMod29ya0luUHJvZ3Jlc3MsIGxhbmVzKSB7XG4gIHZhciBjaGlsZCA9IHdvcmtJblByb2dyZXNzLmNoaWxkO1xuXG4gIHdoaWxlIChjaGlsZCAhPT0gbnVsbCkge1xuICAgIHJlc2V0V29ya0luUHJvZ3Jlc3MoY2hpbGQsIGxhbmVzKTtcbiAgICBjaGlsZCA9IGNoaWxkLnNpYmxpbmc7XG4gIH1cbn1cblxudmFyIE5PX0NPTlRFWFQgPSB7fTtcbnZhciBjb250ZXh0U3RhY2tDdXJzb3IkMSA9IGNyZWF0ZUN1cnNvcihOT19DT05URVhUKTtcbnZhciBjb250ZXh0RmliZXJTdGFja0N1cnNvciA9IGNyZWF0ZUN1cnNvcihOT19DT05URVhUKTtcbnZhciByb290SW5zdGFuY2VTdGFja0N1cnNvciA9IGNyZWF0ZUN1cnNvcihOT19DT05URVhUKTtcblxuZnVuY3Rpb24gcmVxdWlyZWRDb250ZXh0KGMpIHtcbiAgaWYgKCEoYyAhPT0gTk9fQ09OVEVYVCkpIHtcbiAgICB7XG4gICAgICB0aHJvdyBFcnJvciggXCJFeHBlY3RlZCBob3N0IGNvbnRleHQgdG8gZXhpc3QuIFRoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCIgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gYztcbn1cblxuZnVuY3Rpb24gZ2V0Um9vdEhvc3RDb250YWluZXIoKSB7XG4gIHZhciByb290SW5zdGFuY2UgPSByZXF1aXJlZENvbnRleHQocm9vdEluc3RhbmNlU3RhY2tDdXJzb3IuY3VycmVudCk7XG4gIHJldHVybiByb290SW5zdGFuY2U7XG59XG5cbmZ1bmN0aW9uIHB1c2hIb3N0Q29udGFpbmVyKGZpYmVyLCBuZXh0Um9vdEluc3RhbmNlKSB7XG4gIC8vIFB1c2ggY3VycmVudCByb290IGluc3RhbmNlIG9udG8gdGhlIHN0YWNrO1xuICAvLyBUaGlzIGFsbG93cyB1cyB0byByZXNldCByb290IHdoZW4gcG9ydGFscyBhcmUgcG9wcGVkLlxuICBwdXNoKHJvb3RJbnN0YW5jZVN0YWNrQ3Vyc29yLCBuZXh0Um9vdEluc3RhbmNlLCBmaWJlcik7IC8vIFRyYWNrIHRoZSBjb250ZXh0IGFuZCB0aGUgRmliZXIgdGhhdCBwcm92aWRlZCBpdC5cbiAgLy8gVGhpcyBlbmFibGVzIHVzIHRvIHBvcCBvbmx5IEZpYmVycyB0aGF0IHByb3ZpZGUgdW5pcXVlIGNvbnRleHRzLlxuXG4gIHB1c2goY29udGV4dEZpYmVyU3RhY2tDdXJzb3IsIGZpYmVyLCBmaWJlcik7IC8vIEZpbmFsbHksIHdlIG5lZWQgdG8gcHVzaCB0aGUgaG9zdCBjb250ZXh0IHRvIHRoZSBzdGFjay5cbiAgLy8gSG93ZXZlciwgd2UgY2FuJ3QganVzdCBjYWxsIGdldFJvb3RIb3N0Q29udGV4dCgpIGFuZCBwdXNoIGl0IGJlY2F1c2VcbiAgLy8gd2UnZCBoYXZlIGEgZGlmZmVyZW50IG51bWJlciBvZiBlbnRyaWVzIG9uIHRoZSBzdGFjayBkZXBlbmRpbmcgb25cbiAgLy8gd2hldGhlciBnZXRSb290SG9zdENvbnRleHQoKSB0aHJvd3Mgc29tZXdoZXJlIGluIHJlbmRlcmVyIGNvZGUgb3Igbm90LlxuICAvLyBTbyB3ZSBwdXNoIGFuIGVtcHR5IHZhbHVlIGZpcnN0LiBUaGlzIGxldHMgdXMgc2FmZWx5IHVud2luZCBvbiBlcnJvcnMuXG5cbiAgcHVzaChjb250ZXh0U3RhY2tDdXJzb3IkMSwgTk9fQ09OVEVYVCwgZmliZXIpO1xuICB2YXIgbmV4dFJvb3RDb250ZXh0ID0gZ2V0Um9vdEhvc3RDb250ZXh0KG5leHRSb290SW5zdGFuY2UpOyAvLyBOb3cgdGhhdCB3ZSBrbm93IHRoaXMgZnVuY3Rpb24gZG9lc24ndCB0aHJvdywgcmVwbGFjZSBpdC5cblxuICBwb3AoY29udGV4dFN0YWNrQ3Vyc29yJDEsIGZpYmVyKTtcbiAgcHVzaChjb250ZXh0U3RhY2tDdXJzb3IkMSwgbmV4dFJvb3RDb250ZXh0LCBmaWJlcik7XG59XG5cbmZ1bmN0aW9uIHBvcEhvc3RDb250YWluZXIoZmliZXIpIHtcbiAgcG9wKGNvbnRleHRTdGFja0N1cnNvciQxLCBmaWJlcik7XG4gIHBvcChjb250ZXh0RmliZXJTdGFja0N1cnNvciwgZmliZXIpO1xuICBwb3Aocm9vdEluc3RhbmNlU3RhY2tDdXJzb3IsIGZpYmVyKTtcbn1cblxuZnVuY3Rpb24gZ2V0SG9zdENvbnRleHQoKSB7XG4gIHZhciBjb250ZXh0ID0gcmVxdWlyZWRDb250ZXh0KGNvbnRleHRTdGFja0N1cnNvciQxLmN1cnJlbnQpO1xuICByZXR1cm4gY29udGV4dDtcbn1cblxuZnVuY3Rpb24gcHVzaEhvc3RDb250ZXh0KGZpYmVyKSB7XG4gIHZhciByb290SW5zdGFuY2UgPSByZXF1aXJlZENvbnRleHQocm9vdEluc3RhbmNlU3RhY2tDdXJzb3IuY3VycmVudCk7XG4gIHZhciBjb250ZXh0ID0gcmVxdWlyZWRDb250ZXh0KGNvbnRleHRTdGFja0N1cnNvciQxLmN1cnJlbnQpO1xuICB2YXIgbmV4dENvbnRleHQgPSBnZXRDaGlsZEhvc3RDb250ZXh0KGNvbnRleHQsIGZpYmVyLnR5cGUpOyAvLyBEb24ndCBwdXNoIHRoaXMgRmliZXIncyBjb250ZXh0IHVubGVzcyBpdCdzIHVuaXF1ZS5cblxuICBpZiAoY29udGV4dCA9PT0gbmV4dENvbnRleHQpIHtcbiAgICByZXR1cm47XG4gIH0gLy8gVHJhY2sgdGhlIGNvbnRleHQgYW5kIHRoZSBGaWJlciB0aGF0IHByb3ZpZGVkIGl0LlxuICAvLyBUaGlzIGVuYWJsZXMgdXMgdG8gcG9wIG9ubHkgRmliZXJzIHRoYXQgcHJvdmlkZSB1bmlxdWUgY29udGV4dHMuXG5cblxuICBwdXNoKGNvbnRleHRGaWJlclN0YWNrQ3Vyc29yLCBmaWJlciwgZmliZXIpO1xuICBwdXNoKGNvbnRleHRTdGFja0N1cnNvciQxLCBuZXh0Q29udGV4dCwgZmliZXIpO1xufVxuXG5mdW5jdGlvbiBwb3BIb3N0Q29udGV4dChmaWJlcikge1xuICAvLyBEbyBub3QgcG9wIHVubGVzcyB0aGlzIEZpYmVyIHByb3ZpZGVkIHRoZSBjdXJyZW50IGNvbnRleHQuXG4gIC8vIHB1c2hIb3N0Q29udGV4dCgpIG9ubHkgcHVzaGVzIEZpYmVycyB0aGF0IHByb3ZpZGUgdW5pcXVlIGNvbnRleHRzLlxuICBpZiAoY29udGV4dEZpYmVyU3RhY2tDdXJzb3IuY3VycmVudCAhPT0gZmliZXIpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBwb3AoY29udGV4dFN0YWNrQ3Vyc29yJDEsIGZpYmVyKTtcbiAgcG9wKGNvbnRleHRGaWJlclN0YWNrQ3Vyc29yLCBmaWJlcik7XG59XG5cbnZhciBEZWZhdWx0U3VzcGVuc2VDb250ZXh0ID0gMDsgLy8gVGhlIFN1c3BlbnNlIENvbnRleHQgaXMgc3BsaXQgaW50byB0d28gcGFydHMuIFRoZSBsb3dlciBiaXRzIGlzXG4vLyBpbmhlcml0ZWQgZGVlcGx5IGRvd24gdGhlIHN1YnRyZWUuIFRoZSB1cHBlciBiaXRzIG9ubHkgYWZmZWN0XG4vLyB0aGlzIGltbWVkaWF0ZSBzdXNwZW5zZSBib3VuZGFyeSBhbmQgZ2V0cyByZXNldCBlYWNoIG5ld1xuLy8gYm91bmRhcnkgb3Igc3VzcGVuc2UgbGlzdC5cblxudmFyIFN1YnRyZWVTdXNwZW5zZUNvbnRleHRNYXNrID0gMTsgLy8gU3VidHJlZSBGbGFnczpcbi8vIEludmlzaWJsZVBhcmVudFN1c3BlbnNlQ29udGV4dCBpbmRpY2F0ZXMgdGhhdCBvbmUgb2Ygb3VyIHBhcmVudCBTdXNwZW5zZVxuLy8gYm91bmRhcmllcyBpcyBub3QgY3VycmVudGx5IHNob3dpbmcgdmlzaWJsZSBtYWluIGNvbnRlbnQuXG4vLyBFaXRoZXIgYmVjYXVzZSBpdCBpcyBhbHJlYWR5IHNob3dpbmcgYSBmYWxsYmFjayBvciBpcyBub3QgbW91bnRlZCBhdCBhbGwuXG4vLyBXZSBjYW4gdXNlIHRoaXMgdG8gZGV0ZXJtaW5lIGlmIGl0IGlzIGRlc2lyYWJsZSB0byB0cmlnZ2VyIGEgZmFsbGJhY2sgYXRcbi8vIHRoZSBwYXJlbnQuIElmIG5vdCwgdGhlbiB3ZSBtaWdodCBuZWVkIHRvIHRyaWdnZXIgdW5kZXNpcmFibGUgYm91bmRhcmllc1xuLy8gYW5kL29yIHN1c3BlbmQgdGhlIGNvbW1pdCB0byBhdm9pZCBoaWRpbmcgdGhlIHBhcmVudCBjb250ZW50LlxuXG52YXIgSW52aXNpYmxlUGFyZW50U3VzcGVuc2VDb250ZXh0ID0gMTsgLy8gU2hhbGxvdyBGbGFnczpcbi8vIEZvcmNlU3VzcGVuc2VGYWxsYmFjayBjYW4gYmUgdXNlZCBieSBTdXNwZW5zZUxpc3QgdG8gZm9yY2UgbmV3bHkgYWRkZWRcbi8vIGl0ZW1zIGludG8gdGhlaXIgZmFsbGJhY2sgc3RhdGUgZHVyaW5nIG9uZSBvZiB0aGUgcmVuZGVyIHBhc3Nlcy5cblxudmFyIEZvcmNlU3VzcGVuc2VGYWxsYmFjayA9IDI7XG52YXIgc3VzcGVuc2VTdGFja0N1cnNvciA9IGNyZWF0ZUN1cnNvcihEZWZhdWx0U3VzcGVuc2VDb250ZXh0KTtcbmZ1bmN0aW9uIGhhc1N1c3BlbnNlQ29udGV4dChwYXJlbnRDb250ZXh0LCBmbGFnKSB7XG4gIHJldHVybiAocGFyZW50Q29udGV4dCAmIGZsYWcpICE9PSAwO1xufVxuZnVuY3Rpb24gc2V0RGVmYXVsdFNoYWxsb3dTdXNwZW5zZUNvbnRleHQocGFyZW50Q29udGV4dCkge1xuICByZXR1cm4gcGFyZW50Q29udGV4dCAmIFN1YnRyZWVTdXNwZW5zZUNvbnRleHRNYXNrO1xufVxuZnVuY3Rpb24gc2V0U2hhbGxvd1N1c3BlbnNlQ29udGV4dChwYXJlbnRDb250ZXh0LCBzaGFsbG93Q29udGV4dCkge1xuICByZXR1cm4gcGFyZW50Q29udGV4dCAmIFN1YnRyZWVTdXNwZW5zZUNvbnRleHRNYXNrIHwgc2hhbGxvd0NvbnRleHQ7XG59XG5mdW5jdGlvbiBhZGRTdWJ0cmVlU3VzcGVuc2VDb250ZXh0KHBhcmVudENvbnRleHQsIHN1YnRyZWVDb250ZXh0KSB7XG4gIHJldHVybiBwYXJlbnRDb250ZXh0IHwgc3VidHJlZUNvbnRleHQ7XG59XG5mdW5jdGlvbiBwdXNoU3VzcGVuc2VDb250ZXh0KGZpYmVyLCBuZXdDb250ZXh0KSB7XG4gIHB1c2goc3VzcGVuc2VTdGFja0N1cnNvciwgbmV3Q29udGV4dCwgZmliZXIpO1xufVxuZnVuY3Rpb24gcG9wU3VzcGVuc2VDb250ZXh0KGZpYmVyKSB7XG4gIHBvcChzdXNwZW5zZVN0YWNrQ3Vyc29yLCBmaWJlcik7XG59XG5cbmZ1bmN0aW9uIHNob3VsZENhcHR1cmVTdXNwZW5zZSh3b3JrSW5Qcm9ncmVzcywgaGFzSW52aXNpYmxlUGFyZW50KSB7XG4gIC8vIElmIGl0IHdhcyB0aGUgcHJpbWFyeSBjaGlsZHJlbiB0aGF0IGp1c3Qgc3VzcGVuZGVkLCBjYXB0dXJlIGFuZCByZW5kZXIgdGhlXG4gIC8vIGZhbGxiYWNrLiBPdGhlcndpc2UsIGRvbid0IGNhcHR1cmUgYW5kIGJ1YmJsZSB0byB0aGUgbmV4dCBib3VuZGFyeS5cbiAgdmFyIG5leHRTdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG5cbiAgaWYgKG5leHRTdGF0ZSAhPT0gbnVsbCkge1xuICAgIGlmIChuZXh0U3RhdGUuZGVoeWRyYXRlZCAhPT0gbnVsbCkge1xuICAgICAgLy8gQSBkZWh5ZHJhdGVkIGJvdW5kYXJ5IGFsd2F5cyBjYXB0dXJlcy5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHZhciBwcm9wcyA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkUHJvcHM7IC8vIEluIG9yZGVyIHRvIGNhcHR1cmUsIHRoZSBTdXNwZW5zZSBjb21wb25lbnQgbXVzdCBoYXZlIGEgZmFsbGJhY2sgcHJvcC5cblxuICBpZiAocHJvcHMuZmFsbGJhY2sgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfSAvLyBSZWd1bGFyIGJvdW5kYXJpZXMgYWx3YXlzIGNhcHR1cmUuXG5cblxuICBpZiAocHJvcHMudW5zdGFibGVfYXZvaWRUaGlzRmFsbGJhY2sgIT09IHRydWUpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSAvLyBJZiBpdCdzIGEgYm91bmRhcnkgd2Ugc2hvdWxkIGF2b2lkLCB0aGVuIHdlIHByZWZlciB0byBidWJibGUgdXAgdG8gdGhlXG4gIC8vIHBhcmVudCBib3VuZGFyeSBpZiBpdCBpcyBjdXJyZW50bHkgaW52aXNpYmxlLlxuXG5cbiAgaWYgKGhhc0ludmlzaWJsZVBhcmVudCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfSAvLyBJZiB0aGUgcGFyZW50IGlzIG5vdCBhYmxlIHRvIGhhbmRsZSBpdCwgd2UgbXVzdCBoYW5kbGUgaXQuXG5cblxuICByZXR1cm4gdHJ1ZTtcbn1cbmZ1bmN0aW9uIGZpbmRGaXJzdFN1c3BlbmRlZChyb3cpIHtcbiAgdmFyIG5vZGUgPSByb3c7XG5cbiAgd2hpbGUgKG5vZGUgIT09IG51bGwpIHtcbiAgICBpZiAobm9kZS50YWcgPT09IFN1c3BlbnNlQ29tcG9uZW50KSB7XG4gICAgICB2YXIgc3RhdGUgPSBub2RlLm1lbW9pemVkU3RhdGU7XG5cbiAgICAgIGlmIChzdGF0ZSAhPT0gbnVsbCkge1xuICAgICAgICB2YXIgZGVoeWRyYXRlZCA9IHN0YXRlLmRlaHlkcmF0ZWQ7XG5cbiAgICAgICAgaWYgKGRlaHlkcmF0ZWQgPT09IG51bGwgfHwgaXNTdXNwZW5zZUluc3RhbmNlUGVuZGluZyhkZWh5ZHJhdGVkKSB8fCBpc1N1c3BlbnNlSW5zdGFuY2VGYWxsYmFjayhkZWh5ZHJhdGVkKSkge1xuICAgICAgICAgIHJldHVybiBub2RlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChub2RlLnRhZyA9PT0gU3VzcGVuc2VMaXN0Q29tcG9uZW50ICYmIC8vIHJldmVhbE9yZGVyIHVuZGVmaW5lZCBjYW4ndCBiZSB0cnVzdGVkIGJlY2F1c2UgaXQgZG9uJ3RcbiAgICAvLyBrZWVwIHRyYWNrIG9mIHdoZXRoZXIgaXQgc3VzcGVuZGVkIG9yIG5vdC5cbiAgICBub2RlLm1lbW9pemVkUHJvcHMucmV2ZWFsT3JkZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdmFyIGRpZFN1c3BlbmQgPSAobm9kZS5mbGFncyAmIERpZENhcHR1cmUpICE9PSBOb0ZsYWdzO1xuXG4gICAgICBpZiAoZGlkU3VzcGVuZCkge1xuICAgICAgICByZXR1cm4gbm9kZTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKG5vZGUuY2hpbGQgIT09IG51bGwpIHtcbiAgICAgIG5vZGUuY2hpbGQucmV0dXJuID0gbm9kZTtcbiAgICAgIG5vZGUgPSBub2RlLmNoaWxkO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKG5vZGUgPT09IHJvdykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgd2hpbGUgKG5vZGUuc2libGluZyA9PT0gbnVsbCkge1xuICAgICAgaWYgKG5vZGUucmV0dXJuID09PSBudWxsIHx8IG5vZGUucmV0dXJuID09PSByb3cpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIG5vZGUgPSBub2RlLnJldHVybjtcbiAgICB9XG5cbiAgICBub2RlLnNpYmxpbmcucmV0dXJuID0gbm9kZS5yZXR1cm47XG4gICAgbm9kZSA9IG5vZGUuc2libGluZztcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG52YXIgTm9GbGFncyQxID1cbi8qICAqL1xuMDsgLy8gUmVwcmVzZW50cyB3aGV0aGVyIGVmZmVjdCBzaG91bGQgZmlyZS5cblxudmFyIEhhc0VmZmVjdCA9XG4vKiAqL1xuMTsgLy8gUmVwcmVzZW50cyB0aGUgcGhhc2UgaW4gd2hpY2ggdGhlIGVmZmVjdCAobm90IHRoZSBjbGVhbi11cCkgZmlyZXMuXG5cbnZhciBMYXlvdXQgPVxuLyogICAgKi9cbjI7XG52YXIgUGFzc2l2ZSQxID1cbi8qICAgKi9cbjQ7XG5cbi8vIFRoaXMgbWF5IGhhdmUgYmVlbiBhbiBpbnNlcnRpb24gb3IgYSBoeWRyYXRpb24uXG5cbnZhciBoeWRyYXRpb25QYXJlbnRGaWJlciA9IG51bGw7XG52YXIgbmV4dEh5ZHJhdGFibGVJbnN0YW5jZSA9IG51bGw7XG52YXIgaXNIeWRyYXRpbmcgPSBmYWxzZTtcblxuZnVuY3Rpb24gZW50ZXJIeWRyYXRpb25TdGF0ZShmaWJlcikge1xuXG4gIHZhciBwYXJlbnRJbnN0YW5jZSA9IGZpYmVyLnN0YXRlTm9kZS5jb250YWluZXJJbmZvO1xuICBuZXh0SHlkcmF0YWJsZUluc3RhbmNlID0gZ2V0Rmlyc3RIeWRyYXRhYmxlQ2hpbGQocGFyZW50SW5zdGFuY2UpO1xuICBoeWRyYXRpb25QYXJlbnRGaWJlciA9IGZpYmVyO1xuICBpc0h5ZHJhdGluZyA9IHRydWU7XG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBkZWxldGVIeWRyYXRhYmxlSW5zdGFuY2UocmV0dXJuRmliZXIsIGluc3RhbmNlKSB7XG4gIHtcbiAgICBzd2l0Y2ggKHJldHVybkZpYmVyLnRhZykge1xuICAgICAgY2FzZSBIb3N0Um9vdDpcbiAgICAgICAgZGlkTm90SHlkcmF0ZUNvbnRhaW5lckluc3RhbmNlKHJldHVybkZpYmVyLnN0YXRlTm9kZS5jb250YWluZXJJbmZvLCBpbnN0YW5jZSk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIEhvc3RDb21wb25lbnQ6XG4gICAgICAgIGRpZE5vdEh5ZHJhdGVJbnN0YW5jZShyZXR1cm5GaWJlci50eXBlLCByZXR1cm5GaWJlci5tZW1vaXplZFByb3BzLCByZXR1cm5GaWJlci5zdGF0ZU5vZGUsIGluc3RhbmNlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgdmFyIGNoaWxkVG9EZWxldGUgPSBjcmVhdGVGaWJlckZyb21Ib3N0SW5zdGFuY2VGb3JEZWxldGlvbigpO1xuICBjaGlsZFRvRGVsZXRlLnN0YXRlTm9kZSA9IGluc3RhbmNlO1xuICBjaGlsZFRvRGVsZXRlLnJldHVybiA9IHJldHVybkZpYmVyO1xuICBjaGlsZFRvRGVsZXRlLmZsYWdzID0gRGVsZXRpb247IC8vIFRoaXMgbWlnaHQgc2VlbSBsaWtlIGl0IGJlbG9uZ3Mgb24gcHJvZ3Jlc3NlZEZpcnN0RGVsZXRpb24uIEhvd2V2ZXIsXG4gIC8vIHRoZXNlIGNoaWxkcmVuIGFyZSBub3QgcGFydCBvZiB0aGUgcmVjb25jaWxpYXRpb24gbGlzdCBvZiBjaGlsZHJlbi5cbiAgLy8gRXZlbiBpZiB3ZSBhYm9ydCBhbmQgcmVyZWNvbmNpbGUgdGhlIGNoaWxkcmVuLCB0aGF0IHdpbGwgdHJ5IHRvIGh5ZHJhdGVcbiAgLy8gYWdhaW4gYW5kIHRoZSBub2RlcyBhcmUgc3RpbGwgaW4gdGhlIGhvc3QgdHJlZSBzbyB0aGVzZSB3aWxsIGJlXG4gIC8vIHJlY3JlYXRlZC5cblxuICBpZiAocmV0dXJuRmliZXIubGFzdEVmZmVjdCAhPT0gbnVsbCkge1xuICAgIHJldHVybkZpYmVyLmxhc3RFZmZlY3QubmV4dEVmZmVjdCA9IGNoaWxkVG9EZWxldGU7XG4gICAgcmV0dXJuRmliZXIubGFzdEVmZmVjdCA9IGNoaWxkVG9EZWxldGU7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuRmliZXIuZmlyc3RFZmZlY3QgPSByZXR1cm5GaWJlci5sYXN0RWZmZWN0ID0gY2hpbGRUb0RlbGV0ZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpbnNlcnROb25IeWRyYXRlZEluc3RhbmNlKHJldHVybkZpYmVyLCBmaWJlcikge1xuICBmaWJlci5mbGFncyA9IGZpYmVyLmZsYWdzICYgfkh5ZHJhdGluZyB8IFBsYWNlbWVudDtcblxuICB7XG4gICAgc3dpdGNoIChyZXR1cm5GaWJlci50YWcpIHtcbiAgICAgIGNhc2UgSG9zdFJvb3Q6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgcGFyZW50Q29udGFpbmVyID0gcmV0dXJuRmliZXIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm87XG5cbiAgICAgICAgICBzd2l0Y2ggKGZpYmVyLnRhZykge1xuICAgICAgICAgICAgY2FzZSBIb3N0Q29tcG9uZW50OlxuICAgICAgICAgICAgICB2YXIgdHlwZSA9IGZpYmVyLnR5cGU7XG4gICAgICAgICAgICAgIHZhciBwcm9wcyA9IGZpYmVyLnBlbmRpbmdQcm9wcztcbiAgICAgICAgICAgICAgZGlkTm90RmluZEh5ZHJhdGFibGVDb250YWluZXJJbnN0YW5jZShwYXJlbnRDb250YWluZXIsIHR5cGUpO1xuICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSBIb3N0VGV4dDpcbiAgICAgICAgICAgICAgdmFyIHRleHQgPSBmaWJlci5wZW5kaW5nUHJvcHM7XG4gICAgICAgICAgICAgIGRpZE5vdEZpbmRIeWRyYXRhYmxlQ29udGFpbmVyVGV4dEluc3RhbmNlKHBhcmVudENvbnRhaW5lciwgdGV4dCk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgIGNhc2UgSG9zdENvbXBvbmVudDpcbiAgICAgICAge1xuICAgICAgICAgIHZhciBwYXJlbnRUeXBlID0gcmV0dXJuRmliZXIudHlwZTtcbiAgICAgICAgICB2YXIgcGFyZW50UHJvcHMgPSByZXR1cm5GaWJlci5tZW1vaXplZFByb3BzO1xuICAgICAgICAgIHZhciBwYXJlbnRJbnN0YW5jZSA9IHJldHVybkZpYmVyLnN0YXRlTm9kZTtcblxuICAgICAgICAgIHN3aXRjaCAoZmliZXIudGFnKSB7XG4gICAgICAgICAgICBjYXNlIEhvc3RDb21wb25lbnQ6XG4gICAgICAgICAgICAgIHZhciBfdHlwZSA9IGZpYmVyLnR5cGU7XG4gICAgICAgICAgICAgIHZhciBfcHJvcHMgPSBmaWJlci5wZW5kaW5nUHJvcHM7XG4gICAgICAgICAgICAgIGRpZE5vdEZpbmRIeWRyYXRhYmxlSW5zdGFuY2UocGFyZW50VHlwZSwgcGFyZW50UHJvcHMsIHBhcmVudEluc3RhbmNlLCBfdHlwZSk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlIEhvc3RUZXh0OlxuICAgICAgICAgICAgICB2YXIgX3RleHQgPSBmaWJlci5wZW5kaW5nUHJvcHM7XG4gICAgICAgICAgICAgIGRpZE5vdEZpbmRIeWRyYXRhYmxlVGV4dEluc3RhbmNlKHBhcmVudFR5cGUsIHBhcmVudFByb3BzLCBwYXJlbnRJbnN0YW5jZSwgX3RleHQpO1xuICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSBTdXNwZW5zZUNvbXBvbmVudDpcbiAgICAgICAgICAgICAgZGlkTm90RmluZEh5ZHJhdGFibGVTdXNwZW5zZUluc3RhbmNlKHBhcmVudFR5cGUsIHBhcmVudFByb3BzKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB0cnlIeWRyYXRlKGZpYmVyLCBuZXh0SW5zdGFuY2UpIHtcbiAgc3dpdGNoIChmaWJlci50YWcpIHtcbiAgICBjYXNlIEhvc3RDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHZhciB0eXBlID0gZmliZXIudHlwZTtcbiAgICAgICAgdmFyIHByb3BzID0gZmliZXIucGVuZGluZ1Byb3BzO1xuICAgICAgICB2YXIgaW5zdGFuY2UgPSBjYW5IeWRyYXRlSW5zdGFuY2UobmV4dEluc3RhbmNlLCB0eXBlKTtcblxuICAgICAgICBpZiAoaW5zdGFuY2UgIT09IG51bGwpIHtcbiAgICAgICAgICBmaWJlci5zdGF0ZU5vZGUgPSBpbnN0YW5jZTtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgIGNhc2UgSG9zdFRleHQ6XG4gICAgICB7XG4gICAgICAgIHZhciB0ZXh0ID0gZmliZXIucGVuZGluZ1Byb3BzO1xuICAgICAgICB2YXIgdGV4dEluc3RhbmNlID0gY2FuSHlkcmF0ZVRleHRJbnN0YW5jZShuZXh0SW5zdGFuY2UsIHRleHQpO1xuXG4gICAgICAgIGlmICh0ZXh0SW5zdGFuY2UgIT09IG51bGwpIHtcbiAgICAgICAgICBmaWJlci5zdGF0ZU5vZGUgPSB0ZXh0SW5zdGFuY2U7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICBjYXNlIFN1c3BlbnNlQ29tcG9uZW50OlxuICAgICAge1xuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZnVuY3Rpb24gdHJ5VG9DbGFpbU5leHRIeWRyYXRhYmxlSW5zdGFuY2UoZmliZXIpIHtcbiAgaWYgKCFpc0h5ZHJhdGluZykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciBuZXh0SW5zdGFuY2UgPSBuZXh0SHlkcmF0YWJsZUluc3RhbmNlO1xuXG4gIGlmICghbmV4dEluc3RhbmNlKSB7XG4gICAgLy8gTm90aGluZyB0byBoeWRyYXRlLiBNYWtlIGl0IGFuIGluc2VydGlvbi5cbiAgICBpbnNlcnROb25IeWRyYXRlZEluc3RhbmNlKGh5ZHJhdGlvblBhcmVudEZpYmVyLCBmaWJlcik7XG4gICAgaXNIeWRyYXRpbmcgPSBmYWxzZTtcbiAgICBoeWRyYXRpb25QYXJlbnRGaWJlciA9IGZpYmVyO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciBmaXJzdEF0dGVtcHRlZEluc3RhbmNlID0gbmV4dEluc3RhbmNlO1xuXG4gIGlmICghdHJ5SHlkcmF0ZShmaWJlciwgbmV4dEluc3RhbmNlKSkge1xuICAgIC8vIElmIHdlIGNhbid0IGh5ZHJhdGUgdGhpcyBpbnN0YW5jZSBsZXQncyB0cnkgdGhlIG5leHQgb25lLlxuICAgIC8vIFdlIHVzZSB0aGlzIGFzIGEgaGV1cmlzdGljLiBJdCdzIGJhc2VkIG9uIGludHVpdGlvbiBhbmQgbm90IGRhdGEgc28gaXRcbiAgICAvLyBtaWdodCBiZSBmbGF3ZWQgb3IgdW5uZWNlc3NhcnkuXG4gICAgbmV4dEluc3RhbmNlID0gZ2V0TmV4dEh5ZHJhdGFibGVTaWJsaW5nKGZpcnN0QXR0ZW1wdGVkSW5zdGFuY2UpO1xuXG4gICAgaWYgKCFuZXh0SW5zdGFuY2UgfHwgIXRyeUh5ZHJhdGUoZmliZXIsIG5leHRJbnN0YW5jZSkpIHtcbiAgICAgIC8vIE5vdGhpbmcgdG8gaHlkcmF0ZS4gTWFrZSBpdCBhbiBpbnNlcnRpb24uXG4gICAgICBpbnNlcnROb25IeWRyYXRlZEluc3RhbmNlKGh5ZHJhdGlvblBhcmVudEZpYmVyLCBmaWJlcik7XG4gICAgICBpc0h5ZHJhdGluZyA9IGZhbHNlO1xuICAgICAgaHlkcmF0aW9uUGFyZW50RmliZXIgPSBmaWJlcjtcbiAgICAgIHJldHVybjtcbiAgICB9IC8vIFdlIG1hdGNoZWQgdGhlIG5leHQgb25lLCB3ZSdsbCBub3cgYXNzdW1lIHRoYXQgdGhlIGZpcnN0IG9uZSB3YXNcbiAgICAvLyBzdXBlcmZsdW91cyBhbmQgd2UnbGwgZGVsZXRlIGl0LiBTaW5jZSB3ZSBjYW4ndCBlYWdlcmx5IGRlbGV0ZSBpdFxuICAgIC8vIHdlJ2xsIGhhdmUgdG8gc2NoZWR1bGUgYSBkZWxldGlvbi4gVG8gZG8gdGhhdCwgdGhpcyBub2RlIG5lZWRzIGEgZHVtbXlcbiAgICAvLyBmaWJlciBhc3NvY2lhdGVkIHdpdGggaXQuXG5cblxuICAgIGRlbGV0ZUh5ZHJhdGFibGVJbnN0YW5jZShoeWRyYXRpb25QYXJlbnRGaWJlciwgZmlyc3RBdHRlbXB0ZWRJbnN0YW5jZSk7XG4gIH1cblxuICBoeWRyYXRpb25QYXJlbnRGaWJlciA9IGZpYmVyO1xuICBuZXh0SHlkcmF0YWJsZUluc3RhbmNlID0gZ2V0Rmlyc3RIeWRyYXRhYmxlQ2hpbGQobmV4dEluc3RhbmNlKTtcbn1cblxuZnVuY3Rpb24gcHJlcGFyZVRvSHlkcmF0ZUhvc3RJbnN0YW5jZShmaWJlciwgcm9vdENvbnRhaW5lckluc3RhbmNlLCBob3N0Q29udGV4dCkge1xuXG4gIHZhciBpbnN0YW5jZSA9IGZpYmVyLnN0YXRlTm9kZTtcbiAgdmFyIHVwZGF0ZVBheWxvYWQgPSBoeWRyYXRlSW5zdGFuY2UoaW5zdGFuY2UsIGZpYmVyLnR5cGUsIGZpYmVyLm1lbW9pemVkUHJvcHMsIHJvb3RDb250YWluZXJJbnN0YW5jZSwgaG9zdENvbnRleHQsIGZpYmVyKTsgLy8gVE9ETzogVHlwZSB0aGlzIHNwZWNpZmljIHRvIHRoaXMgdHlwZSBvZiBjb21wb25lbnQuXG5cbiAgZmliZXIudXBkYXRlUXVldWUgPSB1cGRhdGVQYXlsb2FkOyAvLyBJZiB0aGUgdXBkYXRlIHBheWxvYWQgaW5kaWNhdGVzIHRoYXQgdGhlcmUgaXMgYSBjaGFuZ2Ugb3IgaWYgdGhlcmVcbiAgLy8gaXMgYSBuZXcgcmVmIHdlIG1hcmsgdGhpcyBhcyBhbiB1cGRhdGUuXG5cbiAgaWYgKHVwZGF0ZVBheWxvYWQgIT09IG51bGwpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gcHJlcGFyZVRvSHlkcmF0ZUhvc3RUZXh0SW5zdGFuY2UoZmliZXIpIHtcblxuICB2YXIgdGV4dEluc3RhbmNlID0gZmliZXIuc3RhdGVOb2RlO1xuICB2YXIgdGV4dENvbnRlbnQgPSBmaWJlci5tZW1vaXplZFByb3BzO1xuICB2YXIgc2hvdWxkVXBkYXRlID0gaHlkcmF0ZVRleHRJbnN0YW5jZSh0ZXh0SW5zdGFuY2UsIHRleHRDb250ZW50LCBmaWJlcik7XG5cbiAge1xuICAgIGlmIChzaG91bGRVcGRhdGUpIHtcbiAgICAgIC8vIFdlIGFzc3VtZSB0aGF0IHByZXBhcmVUb0h5ZHJhdGVIb3N0VGV4dEluc3RhbmNlIGlzIGNhbGxlZCBpbiBhIGNvbnRleHQgd2hlcmUgdGhlXG4gICAgICAvLyBoeWRyYXRpb24gcGFyZW50IGlzIHRoZSBwYXJlbnQgaG9zdCBjb21wb25lbnQgb2YgdGhpcyBob3N0IHRleHQuXG4gICAgICB2YXIgcmV0dXJuRmliZXIgPSBoeWRyYXRpb25QYXJlbnRGaWJlcjtcblxuICAgICAgaWYgKHJldHVybkZpYmVyICE9PSBudWxsKSB7XG4gICAgICAgIHN3aXRjaCAocmV0dXJuRmliZXIudGFnKSB7XG4gICAgICAgICAgY2FzZSBIb3N0Um9vdDpcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdmFyIHBhcmVudENvbnRhaW5lciA9IHJldHVybkZpYmVyLnN0YXRlTm9kZS5jb250YWluZXJJbmZvO1xuICAgICAgICAgICAgICBkaWROb3RNYXRjaEh5ZHJhdGVkQ29udGFpbmVyVGV4dEluc3RhbmNlKHBhcmVudENvbnRhaW5lciwgdGV4dEluc3RhbmNlLCB0ZXh0Q29udGVudCk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgY2FzZSBIb3N0Q29tcG9uZW50OlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB2YXIgcGFyZW50VHlwZSA9IHJldHVybkZpYmVyLnR5cGU7XG4gICAgICAgICAgICAgIHZhciBwYXJlbnRQcm9wcyA9IHJldHVybkZpYmVyLm1lbW9pemVkUHJvcHM7XG4gICAgICAgICAgICAgIHZhciBwYXJlbnRJbnN0YW5jZSA9IHJldHVybkZpYmVyLnN0YXRlTm9kZTtcbiAgICAgICAgICAgICAgZGlkTm90TWF0Y2hIeWRyYXRlZFRleHRJbnN0YW5jZShwYXJlbnRUeXBlLCBwYXJlbnRQcm9wcywgcGFyZW50SW5zdGFuY2UsIHRleHRJbnN0YW5jZSwgdGV4dENvbnRlbnQpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzaG91bGRVcGRhdGU7XG59XG5cbmZ1bmN0aW9uIHNraXBQYXN0RGVoeWRyYXRlZFN1c3BlbnNlSW5zdGFuY2UoZmliZXIpIHtcblxuICB2YXIgc3VzcGVuc2VTdGF0ZSA9IGZpYmVyLm1lbW9pemVkU3RhdGU7XG4gIHZhciBzdXNwZW5zZUluc3RhbmNlID0gc3VzcGVuc2VTdGF0ZSAhPT0gbnVsbCA/IHN1c3BlbnNlU3RhdGUuZGVoeWRyYXRlZCA6IG51bGw7XG5cbiAgaWYgKCFzdXNwZW5zZUluc3RhbmNlKSB7XG4gICAge1xuICAgICAgdGhyb3cgRXJyb3IoIFwiRXhwZWN0ZWQgdG8gaGF2ZSBhIGh5ZHJhdGVkIHN1c3BlbnNlIGluc3RhbmNlLiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLlwiICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGdldE5leHRIeWRyYXRhYmxlSW5zdGFuY2VBZnRlclN1c3BlbnNlSW5zdGFuY2Uoc3VzcGVuc2VJbnN0YW5jZSk7XG59XG5cbmZ1bmN0aW9uIHBvcFRvTmV4dEhvc3RQYXJlbnQoZmliZXIpIHtcbiAgdmFyIHBhcmVudCA9IGZpYmVyLnJldHVybjtcblxuICB3aGlsZSAocGFyZW50ICE9PSBudWxsICYmIHBhcmVudC50YWcgIT09IEhvc3RDb21wb25lbnQgJiYgcGFyZW50LnRhZyAhPT0gSG9zdFJvb3QgJiYgcGFyZW50LnRhZyAhPT0gU3VzcGVuc2VDb21wb25lbnQpIHtcbiAgICBwYXJlbnQgPSBwYXJlbnQucmV0dXJuO1xuICB9XG5cbiAgaHlkcmF0aW9uUGFyZW50RmliZXIgPSBwYXJlbnQ7XG59XG5cbmZ1bmN0aW9uIHBvcEh5ZHJhdGlvblN0YXRlKGZpYmVyKSB7XG5cbiAgaWYgKGZpYmVyICE9PSBoeWRyYXRpb25QYXJlbnRGaWJlcikge1xuICAgIC8vIFdlJ3JlIGRlZXBlciB0aGFuIHRoZSBjdXJyZW50IGh5ZHJhdGlvbiBjb250ZXh0LCBpbnNpZGUgYW4gaW5zZXJ0ZWRcbiAgICAvLyB0cmVlLlxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaXNIeWRyYXRpbmcpIHtcbiAgICAvLyBJZiB3ZSdyZSBub3QgY3VycmVudGx5IGh5ZHJhdGluZyBidXQgd2UncmUgaW4gYSBoeWRyYXRpb24gY29udGV4dCwgdGhlblxuICAgIC8vIHdlIHdlcmUgYW4gaW5zZXJ0aW9uIGFuZCBub3cgbmVlZCB0byBwb3AgdXAgcmVlbnRlciBoeWRyYXRpb24gb2Ygb3VyXG4gICAgLy8gc2libGluZ3MuXG4gICAgcG9wVG9OZXh0SG9zdFBhcmVudChmaWJlcik7XG4gICAgaXNIeWRyYXRpbmcgPSB0cnVlO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHZhciB0eXBlID0gZmliZXIudHlwZTsgLy8gSWYgd2UgaGF2ZSBhbnkgcmVtYWluaW5nIGh5ZHJhdGFibGUgbm9kZXMsIHdlIG5lZWQgdG8gZGVsZXRlIHRoZW0gbm93LlxuICAvLyBXZSBvbmx5IGRvIHRoaXMgZGVlcGVyIHRoYW4gaGVhZCBhbmQgYm9keSBzaW5jZSB0aGV5IHRlbmQgdG8gaGF2ZSByYW5kb21cbiAgLy8gb3RoZXIgbm9kZXMgaW4gdGhlbS4gV2UgYWxzbyBpZ25vcmUgY29tcG9uZW50cyB3aXRoIHB1cmUgdGV4dCBjb250ZW50IGluXG4gIC8vIHNpZGUgb2YgdGhlbS5cbiAgLy8gVE9ETzogQmV0dGVyIGhldXJpc3RpYy5cblxuICBpZiAoZmliZXIudGFnICE9PSBIb3N0Q29tcG9uZW50IHx8IHR5cGUgIT09ICdoZWFkJyAmJiB0eXBlICE9PSAnYm9keScgJiYgIXNob3VsZFNldFRleHRDb250ZW50KHR5cGUsIGZpYmVyLm1lbW9pemVkUHJvcHMpKSB7XG4gICAgdmFyIG5leHRJbnN0YW5jZSA9IG5leHRIeWRyYXRhYmxlSW5zdGFuY2U7XG5cbiAgICB3aGlsZSAobmV4dEluc3RhbmNlKSB7XG4gICAgICBkZWxldGVIeWRyYXRhYmxlSW5zdGFuY2UoZmliZXIsIG5leHRJbnN0YW5jZSk7XG4gICAgICBuZXh0SW5zdGFuY2UgPSBnZXROZXh0SHlkcmF0YWJsZVNpYmxpbmcobmV4dEluc3RhbmNlKTtcbiAgICB9XG4gIH1cblxuICBwb3BUb05leHRIb3N0UGFyZW50KGZpYmVyKTtcblxuICBpZiAoZmliZXIudGFnID09PSBTdXNwZW5zZUNvbXBvbmVudCkge1xuICAgIG5leHRIeWRyYXRhYmxlSW5zdGFuY2UgPSBza2lwUGFzdERlaHlkcmF0ZWRTdXNwZW5zZUluc3RhbmNlKGZpYmVyKTtcbiAgfSBlbHNlIHtcbiAgICBuZXh0SHlkcmF0YWJsZUluc3RhbmNlID0gaHlkcmF0aW9uUGFyZW50RmliZXIgPyBnZXROZXh0SHlkcmF0YWJsZVNpYmxpbmcoZmliZXIuc3RhdGVOb2RlKSA6IG51bGw7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gcmVzZXRIeWRyYXRpb25TdGF0ZSgpIHtcblxuICBoeWRyYXRpb25QYXJlbnRGaWJlciA9IG51bGw7XG4gIG5leHRIeWRyYXRhYmxlSW5zdGFuY2UgPSBudWxsO1xuICBpc0h5ZHJhdGluZyA9IGZhbHNlO1xufVxuXG5mdW5jdGlvbiBnZXRJc0h5ZHJhdGluZygpIHtcbiAgcmV0dXJuIGlzSHlkcmF0aW5nO1xufVxuXG4vLyBhbmQgc2hvdWxkIGJlIHJlc2V0IGJlZm9yZSBzdGFydGluZyBhIG5ldyByZW5kZXIuXG4vLyBUaGlzIHRyYWNrcyB3aGljaCBtdXRhYmxlIHNvdXJjZXMgbmVlZCB0byBiZSByZXNldCBhZnRlciBhIHJlbmRlci5cblxudmFyIHdvcmtJblByb2dyZXNzU291cmNlcyA9IFtdO1xudmFyIHJlbmRlcmVyU2lnaWwkMTtcblxue1xuICAvLyBVc2VkIHRvIGRldGVjdCBtdWx0aXBsZSByZW5kZXJlcnMgdXNpbmcgdGhlIHNhbWUgbXV0YWJsZSBzb3VyY2UuXG4gIHJlbmRlcmVyU2lnaWwkMSA9IHt9O1xufVxuXG5mdW5jdGlvbiBtYXJrU291cmNlQXNEaXJ0eShtdXRhYmxlU291cmNlKSB7XG4gIHdvcmtJblByb2dyZXNzU291cmNlcy5wdXNoKG11dGFibGVTb3VyY2UpO1xufVxuZnVuY3Rpb24gcmVzZXRXb3JrSW5Qcm9ncmVzc1ZlcnNpb25zKCkge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHdvcmtJblByb2dyZXNzU291cmNlcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBtdXRhYmxlU291cmNlID0gd29ya0luUHJvZ3Jlc3NTb3VyY2VzW2ldO1xuXG4gICAge1xuICAgICAgbXV0YWJsZVNvdXJjZS5fd29ya0luUHJvZ3Jlc3NWZXJzaW9uUHJpbWFyeSA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgd29ya0luUHJvZ3Jlc3NTb3VyY2VzLmxlbmd0aCA9IDA7XG59XG5mdW5jdGlvbiBnZXRXb3JrSW5Qcm9ncmVzc1ZlcnNpb24obXV0YWJsZVNvdXJjZSkge1xuICB7XG4gICAgcmV0dXJuIG11dGFibGVTb3VyY2UuX3dvcmtJblByb2dyZXNzVmVyc2lvblByaW1hcnk7XG4gIH1cbn1cbmZ1bmN0aW9uIHNldFdvcmtJblByb2dyZXNzVmVyc2lvbihtdXRhYmxlU291cmNlLCB2ZXJzaW9uKSB7XG4gIHtcbiAgICBtdXRhYmxlU291cmNlLl93b3JrSW5Qcm9ncmVzc1ZlcnNpb25QcmltYXJ5ID0gdmVyc2lvbjtcbiAgfVxuXG4gIHdvcmtJblByb2dyZXNzU291cmNlcy5wdXNoKG11dGFibGVTb3VyY2UpO1xufVxuZnVuY3Rpb24gd2FybkFib3V0TXVsdGlwbGVSZW5kZXJlcnNERVYobXV0YWJsZVNvdXJjZSkge1xuICB7XG4gICAge1xuICAgICAgaWYgKG11dGFibGVTb3VyY2UuX2N1cnJlbnRQcmltYXJ5UmVuZGVyZXIgPT0gbnVsbCkge1xuICAgICAgICBtdXRhYmxlU291cmNlLl9jdXJyZW50UHJpbWFyeVJlbmRlcmVyID0gcmVuZGVyZXJTaWdpbCQxO1xuICAgICAgfSBlbHNlIGlmIChtdXRhYmxlU291cmNlLl9jdXJyZW50UHJpbWFyeVJlbmRlcmVyICE9PSByZW5kZXJlclNpZ2lsJDEpIHtcbiAgICAgICAgZXJyb3IoJ0RldGVjdGVkIG11bHRpcGxlIHJlbmRlcmVycyBjb25jdXJyZW50bHkgcmVuZGVyaW5nIHRoZSAnICsgJ3NhbWUgbXV0YWJsZSBzb3VyY2UuIFRoaXMgaXMgY3VycmVudGx5IHVuc3VwcG9ydGVkLicpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufSAvLyBFYWdlciByZWFkcyB0aGUgdmVyc2lvbiBvZiBhIG11dGFibGUgc291cmNlIGFuZCBzdG9yZXMgaXQgb24gdGhlIHJvb3QuXG5cbnZhciBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdEN1cnJlbnREaXNwYXRjaGVyLFxuICAgIFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnJDEgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdEN1cnJlbnRCYXRjaENvbmZpZztcbnZhciBkaWRXYXJuQWJvdXRNaXNtYXRjaGVkSG9va3NGb3JDb21wb25lbnQ7XG52YXIgZGlkV2FybkFib3V0VXNlT3BhcXVlSWRlbnRpZmllcjtcblxue1xuICBkaWRXYXJuQWJvdXRVc2VPcGFxdWVJZGVudGlmaWVyID0ge307XG4gIGRpZFdhcm5BYm91dE1pc21hdGNoZWRIb29rc0ZvckNvbXBvbmVudCA9IG5ldyBTZXQoKTtcbn1cblxuLy8gVGhlc2UgYXJlIHNldCByaWdodCBiZWZvcmUgY2FsbGluZyB0aGUgY29tcG9uZW50LlxudmFyIHJlbmRlckxhbmVzID0gTm9MYW5lczsgLy8gVGhlIHdvcmstaW4tcHJvZ3Jlc3MgZmliZXIuIEkndmUgbmFtZWQgaXQgZGlmZmVyZW50bHkgdG8gZGlzdGluZ3Vpc2ggaXQgZnJvbVxuLy8gdGhlIHdvcmstaW4tcHJvZ3Jlc3MgaG9vay5cblxudmFyIGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyJDEgPSBudWxsOyAvLyBIb29rcyBhcmUgc3RvcmVkIGFzIGEgbGlua2VkIGxpc3Qgb24gdGhlIGZpYmVyJ3MgbWVtb2l6ZWRTdGF0ZSBmaWVsZC4gVGhlXG4vLyBjdXJyZW50IGhvb2sgbGlzdCBpcyB0aGUgbGlzdCB0aGF0IGJlbG9uZ3MgdG8gdGhlIGN1cnJlbnQgZmliZXIuIFRoZVxuLy8gd29yay1pbi1wcm9ncmVzcyBob29rIGxpc3QgaXMgYSBuZXcgbGlzdCB0aGF0IHdpbGwgYmUgYWRkZWQgdG8gdGhlXG4vLyB3b3JrLWluLXByb2dyZXNzIGZpYmVyLlxuXG52YXIgY3VycmVudEhvb2sgPSBudWxsO1xudmFyIHdvcmtJblByb2dyZXNzSG9vayA9IG51bGw7IC8vIFdoZXRoZXIgYW4gdXBkYXRlIHdhcyBzY2hlZHVsZWQgYXQgYW55IHBvaW50IGR1cmluZyB0aGUgcmVuZGVyIHBoYXNlLiBUaGlzXG4vLyBkb2VzIG5vdCBnZXQgcmVzZXQgaWYgd2UgZG8gYW5vdGhlciByZW5kZXIgcGFzczsgb25seSB3aGVuIHdlJ3JlIGNvbXBsZXRlbHlcbi8vIGZpbmlzaGVkIGV2YWx1YXRpbmcgdGhpcyBjb21wb25lbnQuIFRoaXMgaXMgYW4gb3B0aW1pemF0aW9uIHNvIHdlIGtub3dcbi8vIHdoZXRoZXIgd2UgbmVlZCB0byBjbGVhciByZW5kZXIgcGhhc2UgdXBkYXRlcyBhZnRlciBhIHRocm93LlxuXG52YXIgZGlkU2NoZWR1bGVSZW5kZXJQaGFzZVVwZGF0ZSA9IGZhbHNlOyAvLyBXaGVyZSBhbiB1cGRhdGUgd2FzIHNjaGVkdWxlZCBvbmx5IGR1cmluZyB0aGUgY3VycmVudCByZW5kZXIgcGFzcy4gVGhpc1xuLy8gZ2V0cyByZXNldCBhZnRlciBlYWNoIGF0dGVtcHQuXG4vLyBUT0RPOiBNYXliZSB0aGVyZSdzIHNvbWUgd2F5IHRvIGNvbnNvbGlkYXRlIHRoaXMgd2l0aFxuLy8gYGRpZFNjaGVkdWxlUmVuZGVyUGhhc2VVcGRhdGVgLiBPciB3aXRoIGBudW1iZXJPZlJlUmVuZGVyc2AuXG5cbnZhciBkaWRTY2hlZHVsZVJlbmRlclBoYXNlVXBkYXRlRHVyaW5nVGhpc1Bhc3MgPSBmYWxzZTtcbnZhciBSRV9SRU5ERVJfTElNSVQgPSAyNTsgLy8gSW4gREVWLCB0aGlzIGlzIHRoZSBuYW1lIG9mIHRoZSBjdXJyZW50bHkgZXhlY3V0aW5nIHByaW1pdGl2ZSBob29rXG5cbnZhciBjdXJyZW50SG9va05hbWVJbkRldiA9IG51bGw7IC8vIEluIERFViwgdGhpcyBsaXN0IGVuc3VyZXMgdGhhdCBob29rcyBhcmUgY2FsbGVkIGluIHRoZSBzYW1lIG9yZGVyIGJldHdlZW4gcmVuZGVycy5cbi8vIFRoZSBsaXN0IHN0b3JlcyB0aGUgb3JkZXIgb2YgaG9va3MgdXNlZCBkdXJpbmcgdGhlIGluaXRpYWwgcmVuZGVyIChtb3VudCkuXG4vLyBTdWJzZXF1ZW50IHJlbmRlcnMgKHVwZGF0ZXMpIHJlZmVyZW5jZSB0aGlzIGxpc3QuXG5cbnZhciBob29rVHlwZXNEZXYgPSBudWxsO1xudmFyIGhvb2tUeXBlc1VwZGF0ZUluZGV4RGV2ID0gLTE7IC8vIEluIERFViwgdGhpcyB0cmFja3Mgd2hldGhlciBjdXJyZW50bHkgcmVuZGVyaW5nIGNvbXBvbmVudCBuZWVkcyB0byBpZ25vcmVcbi8vIHRoZSBkZXBlbmRlbmNpZXMgZm9yIEhvb2tzIHRoYXQgbmVlZCB0aGVtIChlLmcuIHVzZUVmZmVjdCBvciB1c2VNZW1vKS5cbi8vIFdoZW4gdHJ1ZSwgc3VjaCBIb29rcyB3aWxsIGFsd2F5cyBiZSBcInJlbW91bnRlZFwiLiBPbmx5IHVzZWQgZHVyaW5nIGhvdCByZWxvYWQuXG5cbnZhciBpZ25vcmVQcmV2aW91c0RlcGVuZGVuY2llcyA9IGZhbHNlO1xuXG5mdW5jdGlvbiBtb3VudEhvb2tUeXBlc0RldigpIHtcbiAge1xuICAgIHZhciBob29rTmFtZSA9IGN1cnJlbnRIb29rTmFtZUluRGV2O1xuXG4gICAgaWYgKGhvb2tUeXBlc0RldiA9PT0gbnVsbCkge1xuICAgICAgaG9va1R5cGVzRGV2ID0gW2hvb2tOYW1lXTtcbiAgICB9IGVsc2Uge1xuICAgICAgaG9va1R5cGVzRGV2LnB1c2goaG9va05hbWUpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB1cGRhdGVIb29rVHlwZXNEZXYoKSB7XG4gIHtcbiAgICB2YXIgaG9va05hbWUgPSBjdXJyZW50SG9va05hbWVJbkRldjtcblxuICAgIGlmIChob29rVHlwZXNEZXYgIT09IG51bGwpIHtcbiAgICAgIGhvb2tUeXBlc1VwZGF0ZUluZGV4RGV2Kys7XG5cbiAgICAgIGlmIChob29rVHlwZXNEZXZbaG9va1R5cGVzVXBkYXRlSW5kZXhEZXZdICE9PSBob29rTmFtZSkge1xuICAgICAgICB3YXJuT25Ib29rTWlzbWF0Y2hJbkRldihob29rTmFtZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGNoZWNrRGVwc0FyZUFycmF5RGV2KGRlcHMpIHtcbiAge1xuICAgIGlmIChkZXBzICE9PSB1bmRlZmluZWQgJiYgZGVwcyAhPT0gbnVsbCAmJiAhQXJyYXkuaXNBcnJheShkZXBzKSkge1xuICAgICAgLy8gVmVyaWZ5IGRlcHMsIGJ1dCBvbmx5IG9uIG1vdW50IHRvIGF2b2lkIGV4dHJhIGNoZWNrcy5cbiAgICAgIC8vIEl0J3MgdW5saWtlbHkgdGhlaXIgdHlwZSB3b3VsZCBjaGFuZ2UgYXMgdXN1YWxseSB5b3UgZGVmaW5lIHRoZW0gaW5saW5lLlxuICAgICAgZXJyb3IoJyVzIHJlY2VpdmVkIGEgZmluYWwgYXJndW1lbnQgdGhhdCBpcyBub3QgYW4gYXJyYXkgKGluc3RlYWQsIHJlY2VpdmVkIGAlc2ApLiBXaGVuICcgKyAnc3BlY2lmaWVkLCB0aGUgZmluYWwgYXJndW1lbnQgbXVzdCBiZSBhbiBhcnJheS4nLCBjdXJyZW50SG9va05hbWVJbkRldiwgdHlwZW9mIGRlcHMpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB3YXJuT25Ib29rTWlzbWF0Y2hJbkRldihjdXJyZW50SG9va05hbWUpIHtcbiAge1xuICAgIHZhciBjb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZShjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxLnR5cGUpO1xuXG4gICAgaWYgKCFkaWRXYXJuQWJvdXRNaXNtYXRjaGVkSG9va3NGb3JDb21wb25lbnQuaGFzKGNvbXBvbmVudE5hbWUpKSB7XG4gICAgICBkaWRXYXJuQWJvdXRNaXNtYXRjaGVkSG9va3NGb3JDb21wb25lbnQuYWRkKGNvbXBvbmVudE5hbWUpO1xuXG4gICAgICBpZiAoaG9va1R5cGVzRGV2ICE9PSBudWxsKSB7XG4gICAgICAgIHZhciB0YWJsZSA9ICcnO1xuICAgICAgICB2YXIgc2Vjb25kQ29sdW1uU3RhcnQgPSAzMDtcblxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8PSBob29rVHlwZXNVcGRhdGVJbmRleERldjsgaSsrKSB7XG4gICAgICAgICAgdmFyIG9sZEhvb2tOYW1lID0gaG9va1R5cGVzRGV2W2ldO1xuICAgICAgICAgIHZhciBuZXdIb29rTmFtZSA9IGkgPT09IGhvb2tUeXBlc1VwZGF0ZUluZGV4RGV2ID8gY3VycmVudEhvb2tOYW1lIDogb2xkSG9va05hbWU7XG4gICAgICAgICAgdmFyIHJvdyA9IGkgKyAxICsgXCIuIFwiICsgb2xkSG9va05hbWU7IC8vIEV4dHJhIHNwYWNlIHNvIHNlY29uZCBjb2x1bW4gbGluZXMgdXBcbiAgICAgICAgICAvLyBsb2wgQCBJRSBub3Qgc3VwcG9ydGluZyBTdHJpbmcjcmVwZWF0XG5cbiAgICAgICAgICB3aGlsZSAocm93Lmxlbmd0aCA8IHNlY29uZENvbHVtblN0YXJ0KSB7XG4gICAgICAgICAgICByb3cgKz0gJyAnO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJvdyArPSBuZXdIb29rTmFtZSArICdcXG4nO1xuICAgICAgICAgIHRhYmxlICs9IHJvdztcbiAgICAgICAgfVxuXG4gICAgICAgIGVycm9yKCdSZWFjdCBoYXMgZGV0ZWN0ZWQgYSBjaGFuZ2UgaW4gdGhlIG9yZGVyIG9mIEhvb2tzIGNhbGxlZCBieSAlcy4gJyArICdUaGlzIHdpbGwgbGVhZCB0byBidWdzIGFuZCBlcnJvcnMgaWYgbm90IGZpeGVkLiAnICsgJ0ZvciBtb3JlIGluZm9ybWF0aW9uLCByZWFkIHRoZSBSdWxlcyBvZiBIb29rczogaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3J1bGVzLW9mLWhvb2tzXFxuXFxuJyArICcgICBQcmV2aW91cyByZW5kZXIgICAgICAgICAgICBOZXh0IHJlbmRlclxcbicgKyAnICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuJyArICclcycgKyAnICAgXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXFxuJywgY29tcG9uZW50TmFtZSwgdGFibGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB0aHJvd0ludmFsaWRIb29rRXJyb3IoKSB7XG4gIHtcbiAgICB7XG4gICAgICB0aHJvdyBFcnJvciggXCJJbnZhbGlkIGhvb2sgY2FsbC4gSG9va3MgY2FuIG9ubHkgYmUgY2FsbGVkIGluc2lkZSBvZiB0aGUgYm9keSBvZiBhIGZ1bmN0aW9uIGNvbXBvbmVudC4gVGhpcyBjb3VsZCBoYXBwZW4gZm9yIG9uZSBvZiB0aGUgZm9sbG93aW5nIHJlYXNvbnM6XFxuMS4gWW91IG1pZ2h0IGhhdmUgbWlzbWF0Y2hpbmcgdmVyc2lvbnMgb2YgUmVhY3QgYW5kIHRoZSByZW5kZXJlciAoc3VjaCBhcyBSZWFjdCBET00pXFxuMi4gWW91IG1pZ2h0IGJlIGJyZWFraW5nIHRoZSBSdWxlcyBvZiBIb29rc1xcbjMuIFlvdSBtaWdodCBoYXZlIG1vcmUgdGhhbiBvbmUgY29weSBvZiBSZWFjdCBpbiB0aGUgc2FtZSBhcHBcXG5TZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL2ludmFsaWQtaG9vay1jYWxsIGZvciB0aXBzIGFib3V0IGhvdyB0byBkZWJ1ZyBhbmQgZml4IHRoaXMgcHJvYmxlbS5cIiApO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBhcmVIb29rSW5wdXRzRXF1YWwobmV4dERlcHMsIHByZXZEZXBzKSB7XG4gIHtcbiAgICBpZiAoaWdub3JlUHJldmlvdXNEZXBlbmRlbmNpZXMpIHtcbiAgICAgIC8vIE9ubHkgdHJ1ZSB3aGVuIHRoaXMgY29tcG9uZW50IGlzIGJlaW5nIGhvdCByZWxvYWRlZC5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBpZiAocHJldkRlcHMgPT09IG51bGwpIHtcbiAgICB7XG4gICAgICBlcnJvcignJXMgcmVjZWl2ZWQgYSBmaW5hbCBhcmd1bWVudCBkdXJpbmcgdGhpcyByZW5kZXIsIGJ1dCBub3QgZHVyaW5nICcgKyAndGhlIHByZXZpb3VzIHJlbmRlci4gRXZlbiB0aG91Z2ggdGhlIGZpbmFsIGFyZ3VtZW50IGlzIG9wdGlvbmFsLCAnICsgJ2l0cyB0eXBlIGNhbm5vdCBjaGFuZ2UgYmV0d2VlbiByZW5kZXJzLicsIGN1cnJlbnRIb29rTmFtZUluRGV2KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB7XG4gICAgLy8gRG9uJ3QgYm90aGVyIGNvbXBhcmluZyBsZW5ndGhzIGluIHByb2QgYmVjYXVzZSB0aGVzZSBhcnJheXMgc2hvdWxkIGJlXG4gICAgLy8gcGFzc2VkIGlubGluZS5cbiAgICBpZiAobmV4dERlcHMubGVuZ3RoICE9PSBwcmV2RGVwcy5sZW5ndGgpIHtcbiAgICAgIGVycm9yKCdUaGUgZmluYWwgYXJndW1lbnQgcGFzc2VkIHRvICVzIGNoYW5nZWQgc2l6ZSBiZXR3ZWVuIHJlbmRlcnMuIFRoZSAnICsgJ29yZGVyIGFuZCBzaXplIG9mIHRoaXMgYXJyYXkgbXVzdCByZW1haW4gY29uc3RhbnQuXFxuXFxuJyArICdQcmV2aW91czogJXNcXG4nICsgJ0luY29taW5nOiAlcycsIGN1cnJlbnRIb29rTmFtZUluRGV2LCBcIltcIiArIHByZXZEZXBzLmpvaW4oJywgJykgKyBcIl1cIiwgXCJbXCIgKyBuZXh0RGVwcy5qb2luKCcsICcpICsgXCJdXCIpO1xuICAgIH1cbiAgfVxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgcHJldkRlcHMubGVuZ3RoICYmIGkgPCBuZXh0RGVwcy5sZW5ndGg7IGkrKykge1xuICAgIGlmIChvYmplY3RJcyhuZXh0RGVwc1tpXSwgcHJldkRlcHNbaV0pKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gcmVuZGVyV2l0aEhvb2tzKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIHByb3BzLCBzZWNvbmRBcmcsIG5leHRSZW5kZXJMYW5lcykge1xuICByZW5kZXJMYW5lcyA9IG5leHRSZW5kZXJMYW5lcztcbiAgY3VycmVudGx5UmVuZGVyaW5nRmliZXIkMSA9IHdvcmtJblByb2dyZXNzO1xuXG4gIHtcbiAgICBob29rVHlwZXNEZXYgPSBjdXJyZW50ICE9PSBudWxsID8gY3VycmVudC5fZGVidWdIb29rVHlwZXMgOiBudWxsO1xuICAgIGhvb2tUeXBlc1VwZGF0ZUluZGV4RGV2ID0gLTE7IC8vIFVzZWQgZm9yIGhvdCByZWxvYWRpbmc6XG5cbiAgICBpZ25vcmVQcmV2aW91c0RlcGVuZGVuY2llcyA9IGN1cnJlbnQgIT09IG51bGwgJiYgY3VycmVudC50eXBlICE9PSB3b3JrSW5Qcm9ncmVzcy50eXBlO1xuICB9XG5cbiAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IG51bGw7XG4gIHdvcmtJblByb2dyZXNzLnVwZGF0ZVF1ZXVlID0gbnVsbDtcbiAgd29ya0luUHJvZ3Jlc3MubGFuZXMgPSBOb0xhbmVzOyAvLyBUaGUgZm9sbG93aW5nIHNob3VsZCBoYXZlIGFscmVhZHkgYmVlbiByZXNldFxuICAvLyBjdXJyZW50SG9vayA9IG51bGw7XG4gIC8vIHdvcmtJblByb2dyZXNzSG9vayA9IG51bGw7XG4gIC8vIGRpZFNjaGVkdWxlUmVuZGVyUGhhc2VVcGRhdGUgPSBmYWxzZTtcbiAgLy8gVE9ETyBXYXJuIGlmIG5vIGhvb2tzIGFyZSB1c2VkIGF0IGFsbCBkdXJpbmcgbW91bnQsIHRoZW4gc29tZSBhcmUgdXNlZCBkdXJpbmcgdXBkYXRlLlxuICAvLyBDdXJyZW50bHkgd2Ugd2lsbCBpZGVudGlmeSB0aGUgdXBkYXRlIHJlbmRlciBhcyBhIG1vdW50IGJlY2F1c2UgbWVtb2l6ZWRTdGF0ZSA9PT0gbnVsbC5cbiAgLy8gVGhpcyBpcyB0cmlja3kgYmVjYXVzZSBpdCdzIHZhbGlkIGZvciBjZXJ0YWluIHR5cGVzIG9mIGNvbXBvbmVudHMgKGUuZy4gUmVhY3QubGF6eSlcbiAgLy8gVXNpbmcgbWVtb2l6ZWRTdGF0ZSB0byBkaWZmZXJlbnRpYXRlIGJldHdlZW4gbW91bnQvdXBkYXRlIG9ubHkgd29ya3MgaWYgYXQgbGVhc3Qgb25lIHN0YXRlZnVsIGhvb2sgaXMgdXNlZC5cbiAgLy8gTm9uLXN0YXRlZnVsIGhvb2tzIChlLmcuIGNvbnRleHQpIGRvbid0IGdldCBhZGRlZCB0byBtZW1vaXplZFN0YXRlLFxuICAvLyBzbyBtZW1vaXplZFN0YXRlIHdvdWxkIGJlIG51bGwgZHVyaW5nIHVwZGF0ZXMgYW5kIG1vdW50cy5cblxuICB7XG4gICAgaWYgKGN1cnJlbnQgIT09IG51bGwgJiYgY3VycmVudC5tZW1vaXplZFN0YXRlICE9PSBudWxsKSB7XG4gICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IEhvb2tzRGlzcGF0Y2hlck9uVXBkYXRlSW5ERVY7XG4gICAgfSBlbHNlIGlmIChob29rVHlwZXNEZXYgIT09IG51bGwpIHtcbiAgICAgIC8vIFRoaXMgZGlzcGF0Y2hlciBoYW5kbGVzIGFuIGVkZ2UgY2FzZSB3aGVyZSBhIGNvbXBvbmVudCBpcyB1cGRhdGluZyxcbiAgICAgIC8vIGJ1dCBubyBzdGF0ZWZ1bCBob29rcyBoYXZlIGJlZW4gdXNlZC5cbiAgICAgIC8vIFdlIHdhbnQgdG8gbWF0Y2ggdGhlIHByb2R1Y3Rpb24gY29kZSBiZWhhdmlvciAod2hpY2ggd2lsbCB1c2UgSG9va3NEaXNwYXRjaGVyT25Nb3VudCksXG4gICAgICAvLyBidXQgd2l0aCB0aGUgZXh0cmEgREVWIHZhbGlkYXRpb24gdG8gZW5zdXJlIGhvb2tzIG9yZGVyaW5nIGhhc24ndCBjaGFuZ2VkLlxuICAgICAgLy8gVGhpcyBkaXNwYXRjaGVyIGRvZXMgdGhhdC5cbiAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gSG9va3NEaXNwYXRjaGVyT25Nb3VudFdpdGhIb29rVHlwZXNJbkRFVjtcbiAgICB9IGVsc2Uge1xuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBIb29rc0Rpc3BhdGNoZXJPbk1vdW50SW5ERVY7XG4gICAgfVxuICB9XG5cbiAgdmFyIGNoaWxkcmVuID0gQ29tcG9uZW50KHByb3BzLCBzZWNvbmRBcmcpOyAvLyBDaGVjayBpZiB0aGVyZSB3YXMgYSByZW5kZXIgcGhhc2UgdXBkYXRlXG5cbiAgaWYgKGRpZFNjaGVkdWxlUmVuZGVyUGhhc2VVcGRhdGVEdXJpbmdUaGlzUGFzcykge1xuICAgIC8vIEtlZXAgcmVuZGVyaW5nIGluIGEgbG9vcCBmb3IgYXMgbG9uZyBhcyByZW5kZXIgcGhhc2UgdXBkYXRlcyBjb250aW51ZSB0b1xuICAgIC8vIGJlIHNjaGVkdWxlZC4gVXNlIGEgY291bnRlciB0byBwcmV2ZW50IGluZmluaXRlIGxvb3BzLlxuICAgIHZhciBudW1iZXJPZlJlUmVuZGVycyA9IDA7XG5cbiAgICBkbyB7XG4gICAgICBkaWRTY2hlZHVsZVJlbmRlclBoYXNlVXBkYXRlRHVyaW5nVGhpc1Bhc3MgPSBmYWxzZTtcblxuICAgICAgaWYgKCEobnVtYmVyT2ZSZVJlbmRlcnMgPCBSRV9SRU5ERVJfTElNSVQpKSB7XG4gICAgICAgIHtcbiAgICAgICAgICB0aHJvdyBFcnJvciggXCJUb28gbWFueSByZS1yZW5kZXJzLiBSZWFjdCBsaW1pdHMgdGhlIG51bWJlciBvZiByZW5kZXJzIHRvIHByZXZlbnQgYW4gaW5maW5pdGUgbG9vcC5cIiApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG51bWJlck9mUmVSZW5kZXJzICs9IDE7XG5cbiAgICAgIHtcbiAgICAgICAgLy8gRXZlbiB3aGVuIGhvdCByZWxvYWRpbmcsIGFsbG93IGRlcGVuZGVuY2llcyB0byBzdGFiaWxpemVcbiAgICAgICAgLy8gYWZ0ZXIgZmlyc3QgcmVuZGVyIHRvIHByZXZlbnQgaW5maW5pdGUgcmVuZGVyIHBoYXNlIHVwZGF0ZXMuXG4gICAgICAgIGlnbm9yZVByZXZpb3VzRGVwZW5kZW5jaWVzID0gZmFsc2U7XG4gICAgICB9IC8vIFN0YXJ0IG92ZXIgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaXN0XG5cblxuICAgICAgY3VycmVudEhvb2sgPSBudWxsO1xuICAgICAgd29ya0luUHJvZ3Jlc3NIb29rID0gbnVsbDtcbiAgICAgIHdvcmtJblByb2dyZXNzLnVwZGF0ZVF1ZXVlID0gbnVsbDtcblxuICAgICAge1xuICAgICAgICAvLyBBbHNvIHZhbGlkYXRlIGhvb2sgb3JkZXIgZm9yIGNhc2NhZGluZyB1cGRhdGVzLlxuICAgICAgICBob29rVHlwZXNVcGRhdGVJbmRleERldiA9IC0xO1xuICAgICAgfVxuXG4gICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9ICBIb29rc0Rpc3BhdGNoZXJPblJlcmVuZGVySW5ERVYgO1xuICAgICAgY2hpbGRyZW4gPSBDb21wb25lbnQocHJvcHMsIHNlY29uZEFyZyk7XG4gICAgfSB3aGlsZSAoZGlkU2NoZWR1bGVSZW5kZXJQaGFzZVVwZGF0ZUR1cmluZ1RoaXNQYXNzKTtcbiAgfSAvLyBXZSBjYW4gYXNzdW1lIHRoZSBwcmV2aW91cyBkaXNwYXRjaGVyIGlzIGFsd2F5cyB0aGlzIG9uZSwgc2luY2Ugd2Ugc2V0IGl0XG4gIC8vIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHJlbmRlciBwaGFzZSBhbmQgdGhlcmUncyBubyByZS1lbnRyYW5jeS5cblxuXG4gIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gQ29udGV4dE9ubHlEaXNwYXRjaGVyO1xuXG4gIHtcbiAgICB3b3JrSW5Qcm9ncmVzcy5fZGVidWdIb29rVHlwZXMgPSBob29rVHlwZXNEZXY7XG4gIH0gLy8gVGhpcyBjaGVjayB1c2VzIGN1cnJlbnRIb29rIHNvIHRoYXQgaXQgd29ya3MgdGhlIHNhbWUgaW4gREVWIGFuZCBwcm9kIGJ1bmRsZXMuXG4gIC8vIGhvb2tUeXBlc0RldiBjb3VsZCBjYXRjaCBtb3JlIGNhc2VzIChlLmcuIGNvbnRleHQpIGJ1dCBvbmx5IGluIERFViBidW5kbGVzLlxuXG5cbiAgdmFyIGRpZFJlbmRlclRvb0Zld0hvb2tzID0gY3VycmVudEhvb2sgIT09IG51bGwgJiYgY3VycmVudEhvb2submV4dCAhPT0gbnVsbDtcbiAgcmVuZGVyTGFuZXMgPSBOb0xhbmVzO1xuICBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxID0gbnVsbDtcbiAgY3VycmVudEhvb2sgPSBudWxsO1xuICB3b3JrSW5Qcm9ncmVzc0hvb2sgPSBudWxsO1xuXG4gIHtcbiAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IG51bGw7XG4gICAgaG9va1R5cGVzRGV2ID0gbnVsbDtcbiAgICBob29rVHlwZXNVcGRhdGVJbmRleERldiA9IC0xO1xuICB9XG5cbiAgZGlkU2NoZWR1bGVSZW5kZXJQaGFzZVVwZGF0ZSA9IGZhbHNlO1xuXG4gIGlmICghIWRpZFJlbmRlclRvb0Zld0hvb2tzKSB7XG4gICAge1xuICAgICAgdGhyb3cgRXJyb3IoIFwiUmVuZGVyZWQgZmV3ZXIgaG9va3MgdGhhbiBleHBlY3RlZC4gVGhpcyBtYXkgYmUgY2F1c2VkIGJ5IGFuIGFjY2lkZW50YWwgZWFybHkgcmV0dXJuIHN0YXRlbWVudC5cIiApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjaGlsZHJlbjtcbn1cbmZ1bmN0aW9uIGJhaWxvdXRIb29rcyhjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgbGFuZXMpIHtcbiAgd29ya0luUHJvZ3Jlc3MudXBkYXRlUXVldWUgPSBjdXJyZW50LnVwZGF0ZVF1ZXVlO1xuICB3b3JrSW5Qcm9ncmVzcy5mbGFncyAmPSB+KFBhc3NpdmUgfCBVcGRhdGUpO1xuICBjdXJyZW50LmxhbmVzID0gcmVtb3ZlTGFuZXMoY3VycmVudC5sYW5lcywgbGFuZXMpO1xufVxuZnVuY3Rpb24gcmVzZXRIb29rc0FmdGVyVGhyb3coKSB7XG4gIC8vIFdlIGNhbiBhc3N1bWUgdGhlIHByZXZpb3VzIGRpc3BhdGNoZXIgaXMgYWx3YXlzIHRoaXMgb25lLCBzaW5jZSB3ZSBzZXQgaXRcbiAgLy8gYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgcmVuZGVyIHBoYXNlIGFuZCB0aGVyZSdzIG5vIHJlLWVudHJhbmN5LlxuICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IENvbnRleHRPbmx5RGlzcGF0Y2hlcjtcblxuICBpZiAoZGlkU2NoZWR1bGVSZW5kZXJQaGFzZVVwZGF0ZSkge1xuICAgIC8vIFRoZXJlIHdlcmUgcmVuZGVyIHBoYXNlIHVwZGF0ZXMuIFRoZXNlIGFyZSBvbmx5IHZhbGlkIGZvciB0aGlzIHJlbmRlclxuICAgIC8vIHBoYXNlLCB3aGljaCB3ZSBhcmUgbm93IGFib3J0aW5nLiBSZW1vdmUgdGhlIHVwZGF0ZXMgZnJvbSB0aGUgcXVldWVzIHNvXG4gICAgLy8gdGhleSBkbyBub3QgcGVyc2lzdCB0byB0aGUgbmV4dCByZW5kZXIuIERvIG5vdCByZW1vdmUgdXBkYXRlcyBmcm9tIGhvb2tzXG4gICAgLy8gdGhhdCB3ZXJlbid0IHByb2Nlc3NlZC5cbiAgICAvL1xuICAgIC8vIE9ubHkgcmVzZXQgdGhlIHVwZGF0ZXMgZnJvbSB0aGUgcXVldWUgaWYgaXQgaGFzIGEgY2xvbmUuIElmIGl0IGRvZXNcbiAgICAvLyBub3QgaGF2ZSBhIGNsb25lLCB0aGF0IG1lYW5zIGl0IHdhc24ndCBwcm9jZXNzZWQsIGFuZCB0aGUgdXBkYXRlcyB3ZXJlXG4gICAgLy8gc2NoZWR1bGVkIGJlZm9yZSB3ZSBlbnRlcmVkIHRoZSByZW5kZXIgcGhhc2UuXG4gICAgdmFyIGhvb2sgPSBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxLm1lbW9pemVkU3RhdGU7XG5cbiAgICB3aGlsZSAoaG9vayAhPT0gbnVsbCkge1xuICAgICAgdmFyIHF1ZXVlID0gaG9vay5xdWV1ZTtcblxuICAgICAgaWYgKHF1ZXVlICE9PSBudWxsKSB7XG4gICAgICAgIHF1ZXVlLnBlbmRpbmcgPSBudWxsO1xuICAgICAgfVxuXG4gICAgICBob29rID0gaG9vay5uZXh0O1xuICAgIH1cblxuICAgIGRpZFNjaGVkdWxlUmVuZGVyUGhhc2VVcGRhdGUgPSBmYWxzZTtcbiAgfVxuXG4gIHJlbmRlckxhbmVzID0gTm9MYW5lcztcbiAgY3VycmVudGx5UmVuZGVyaW5nRmliZXIkMSA9IG51bGw7XG4gIGN1cnJlbnRIb29rID0gbnVsbDtcbiAgd29ya0luUHJvZ3Jlc3NIb29rID0gbnVsbDtcblxuICB7XG4gICAgaG9va1R5cGVzRGV2ID0gbnVsbDtcbiAgICBob29rVHlwZXNVcGRhdGVJbmRleERldiA9IC0xO1xuICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gbnVsbDtcbiAgICBpc1VwZGF0aW5nT3BhcXVlVmFsdWVJblJlbmRlclBoYXNlID0gZmFsc2U7XG4gIH1cblxuICBkaWRTY2hlZHVsZVJlbmRlclBoYXNlVXBkYXRlRHVyaW5nVGhpc1Bhc3MgPSBmYWxzZTtcbn1cblxuZnVuY3Rpb24gbW91bnRXb3JrSW5Qcm9ncmVzc0hvb2soKSB7XG4gIHZhciBob29rID0ge1xuICAgIG1lbW9pemVkU3RhdGU6IG51bGwsXG4gICAgYmFzZVN0YXRlOiBudWxsLFxuICAgIGJhc2VRdWV1ZTogbnVsbCxcbiAgICBxdWV1ZTogbnVsbCxcbiAgICBuZXh0OiBudWxsXG4gIH07XG5cbiAgaWYgKHdvcmtJblByb2dyZXNzSG9vayA9PT0gbnVsbCkge1xuICAgIC8vIFRoaXMgaXMgdGhlIGZpcnN0IGhvb2sgaW4gdGhlIGxpc3RcbiAgICBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxLm1lbW9pemVkU3RhdGUgPSB3b3JrSW5Qcm9ncmVzc0hvb2sgPSBob29rO1xuICB9IGVsc2Uge1xuICAgIC8vIEFwcGVuZCB0byB0aGUgZW5kIG9mIHRoZSBsaXN0XG4gICAgd29ya0luUHJvZ3Jlc3NIb29rID0gd29ya0luUHJvZ3Jlc3NIb29rLm5leHQgPSBob29rO1xuICB9XG5cbiAgcmV0dXJuIHdvcmtJblByb2dyZXNzSG9vaztcbn1cblxuZnVuY3Rpb24gdXBkYXRlV29ya0luUHJvZ3Jlc3NIb29rKCkge1xuICAvLyBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgYm90aCBmb3IgdXBkYXRlcyBhbmQgZm9yIHJlLXJlbmRlcnMgdHJpZ2dlcmVkIGJ5IGFcbiAgLy8gcmVuZGVyIHBoYXNlIHVwZGF0ZS4gSXQgYXNzdW1lcyB0aGVyZSBpcyBlaXRoZXIgYSBjdXJyZW50IGhvb2sgd2UgY2FuXG4gIC8vIGNsb25lLCBvciBhIHdvcmstaW4tcHJvZ3Jlc3MgaG9vayBmcm9tIGEgcHJldmlvdXMgcmVuZGVyIHBhc3MgdGhhdCB3ZSBjYW5cbiAgLy8gdXNlIGFzIGEgYmFzZS4gV2hlbiB3ZSByZWFjaCB0aGUgZW5kIG9mIHRoZSBiYXNlIGxpc3QsIHdlIG11c3Qgc3dpdGNoIHRvXG4gIC8vIHRoZSBkaXNwYXRjaGVyIHVzZWQgZm9yIG1vdW50cy5cbiAgdmFyIG5leHRDdXJyZW50SG9vaztcblxuICBpZiAoY3VycmVudEhvb2sgPT09IG51bGwpIHtcbiAgICB2YXIgY3VycmVudCA9IGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyJDEuYWx0ZXJuYXRlO1xuXG4gICAgaWYgKGN1cnJlbnQgIT09IG51bGwpIHtcbiAgICAgIG5leHRDdXJyZW50SG9vayA9IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgbmV4dEN1cnJlbnRIb29rID0gbnVsbDtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgbmV4dEN1cnJlbnRIb29rID0gY3VycmVudEhvb2submV4dDtcbiAgfVxuXG4gIHZhciBuZXh0V29ya0luUHJvZ3Jlc3NIb29rO1xuXG4gIGlmICh3b3JrSW5Qcm9ncmVzc0hvb2sgPT09IG51bGwpIHtcbiAgICBuZXh0V29ya0luUHJvZ3Jlc3NIb29rID0gY3VycmVudGx5UmVuZGVyaW5nRmliZXIkMS5tZW1vaXplZFN0YXRlO1xuICB9IGVsc2Uge1xuICAgIG5leHRXb3JrSW5Qcm9ncmVzc0hvb2sgPSB3b3JrSW5Qcm9ncmVzc0hvb2submV4dDtcbiAgfVxuXG4gIGlmIChuZXh0V29ya0luUHJvZ3Jlc3NIb29rICE9PSBudWxsKSB7XG4gICAgLy8gVGhlcmUncyBhbHJlYWR5IGEgd29yay1pbi1wcm9ncmVzcy4gUmV1c2UgaXQuXG4gICAgd29ya0luUHJvZ3Jlc3NIb29rID0gbmV4dFdvcmtJblByb2dyZXNzSG9vaztcbiAgICBuZXh0V29ya0luUHJvZ3Jlc3NIb29rID0gd29ya0luUHJvZ3Jlc3NIb29rLm5leHQ7XG4gICAgY3VycmVudEhvb2sgPSBuZXh0Q3VycmVudEhvb2s7XG4gIH0gZWxzZSB7XG4gICAgLy8gQ2xvbmUgZnJvbSB0aGUgY3VycmVudCBob29rLlxuICAgIGlmICghKG5leHRDdXJyZW50SG9vayAhPT0gbnVsbCkpIHtcbiAgICAgIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoIFwiUmVuZGVyZWQgbW9yZSBob29rcyB0aGFuIGR1cmluZyB0aGUgcHJldmlvdXMgcmVuZGVyLlwiICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY3VycmVudEhvb2sgPSBuZXh0Q3VycmVudEhvb2s7XG4gICAgdmFyIG5ld0hvb2sgPSB7XG4gICAgICBtZW1vaXplZFN0YXRlOiBjdXJyZW50SG9vay5tZW1vaXplZFN0YXRlLFxuICAgICAgYmFzZVN0YXRlOiBjdXJyZW50SG9vay5iYXNlU3RhdGUsXG4gICAgICBiYXNlUXVldWU6IGN1cnJlbnRIb29rLmJhc2VRdWV1ZSxcbiAgICAgIHF1ZXVlOiBjdXJyZW50SG9vay5xdWV1ZSxcbiAgICAgIG5leHQ6IG51bGxcbiAgICB9O1xuXG4gICAgaWYgKHdvcmtJblByb2dyZXNzSG9vayA9PT0gbnVsbCkge1xuICAgICAgLy8gVGhpcyBpcyB0aGUgZmlyc3QgaG9vayBpbiB0aGUgbGlzdC5cbiAgICAgIGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyJDEubWVtb2l6ZWRTdGF0ZSA9IHdvcmtJblByb2dyZXNzSG9vayA9IG5ld0hvb2s7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEFwcGVuZCB0byB0aGUgZW5kIG9mIHRoZSBsaXN0LlxuICAgICAgd29ya0luUHJvZ3Jlc3NIb29rID0gd29ya0luUHJvZ3Jlc3NIb29rLm5leHQgPSBuZXdIb29rO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB3b3JrSW5Qcm9ncmVzc0hvb2s7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUZ1bmN0aW9uQ29tcG9uZW50VXBkYXRlUXVldWUoKSB7XG4gIHJldHVybiB7XG4gICAgbGFzdEVmZmVjdDogbnVsbFxuICB9O1xufVxuXG5mdW5jdGlvbiBiYXNpY1N0YXRlUmVkdWNlcihzdGF0ZSwgYWN0aW9uKSB7XG4gIC8vICRGbG93Rml4TWU6IEZsb3cgZG9lc24ndCBsaWtlIG1peGVkIHR5cGVzXG4gIHJldHVybiB0eXBlb2YgYWN0aW9uID09PSAnZnVuY3Rpb24nID8gYWN0aW9uKHN0YXRlKSA6IGFjdGlvbjtcbn1cblxuZnVuY3Rpb24gbW91bnRSZWR1Y2VyKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpIHtcbiAgdmFyIGhvb2sgPSBtb3VudFdvcmtJblByb2dyZXNzSG9vaygpO1xuICB2YXIgaW5pdGlhbFN0YXRlO1xuXG4gIGlmIChpbml0ICE9PSB1bmRlZmluZWQpIHtcbiAgICBpbml0aWFsU3RhdGUgPSBpbml0KGluaXRpYWxBcmcpO1xuICB9IGVsc2Uge1xuICAgIGluaXRpYWxTdGF0ZSA9IGluaXRpYWxBcmc7XG4gIH1cblxuICBob29rLm1lbW9pemVkU3RhdGUgPSBob29rLmJhc2VTdGF0ZSA9IGluaXRpYWxTdGF0ZTtcbiAgdmFyIHF1ZXVlID0gaG9vay5xdWV1ZSA9IHtcbiAgICBwZW5kaW5nOiBudWxsLFxuICAgIGRpc3BhdGNoOiBudWxsLFxuICAgIGxhc3RSZW5kZXJlZFJlZHVjZXI6IHJlZHVjZXIsXG4gICAgbGFzdFJlbmRlcmVkU3RhdGU6IGluaXRpYWxTdGF0ZVxuICB9O1xuICB2YXIgZGlzcGF0Y2ggPSBxdWV1ZS5kaXNwYXRjaCA9IGRpc3BhdGNoQWN0aW9uLmJpbmQobnVsbCwgY3VycmVudGx5UmVuZGVyaW5nRmliZXIkMSwgcXVldWUpO1xuICByZXR1cm4gW2hvb2subWVtb2l6ZWRTdGF0ZSwgZGlzcGF0Y2hdO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVSZWR1Y2VyKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpIHtcbiAgdmFyIGhvb2sgPSB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKTtcbiAgdmFyIHF1ZXVlID0gaG9vay5xdWV1ZTtcblxuICBpZiAoIShxdWV1ZSAhPT0gbnVsbCkpIHtcbiAgICB7XG4gICAgICB0aHJvdyBFcnJvciggXCJTaG91bGQgaGF2ZSBhIHF1ZXVlLiBUaGlzIGlzIGxpa2VseSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCIgKTtcbiAgICB9XG4gIH1cblxuICBxdWV1ZS5sYXN0UmVuZGVyZWRSZWR1Y2VyID0gcmVkdWNlcjtcbiAgdmFyIGN1cnJlbnQgPSBjdXJyZW50SG9vazsgLy8gVGhlIGxhc3QgcmViYXNlIHVwZGF0ZSB0aGF0IGlzIE5PVCBwYXJ0IG9mIHRoZSBiYXNlIHN0YXRlLlxuXG4gIHZhciBiYXNlUXVldWUgPSBjdXJyZW50LmJhc2VRdWV1ZTsgLy8gVGhlIGxhc3QgcGVuZGluZyB1cGRhdGUgdGhhdCBoYXNuJ3QgYmVlbiBwcm9jZXNzZWQgeWV0LlxuXG4gIHZhciBwZW5kaW5nUXVldWUgPSBxdWV1ZS5wZW5kaW5nO1xuXG4gIGlmIChwZW5kaW5nUXVldWUgIT09IG51bGwpIHtcbiAgICAvLyBXZSBoYXZlIG5ldyB1cGRhdGVzIHRoYXQgaGF2ZW4ndCBiZWVuIHByb2Nlc3NlZCB5ZXQuXG4gICAgLy8gV2UnbGwgYWRkIHRoZW0gdG8gdGhlIGJhc2UgcXVldWUuXG4gICAgaWYgKGJhc2VRdWV1ZSAhPT0gbnVsbCkge1xuICAgICAgLy8gTWVyZ2UgdGhlIHBlbmRpbmcgcXVldWUgYW5kIHRoZSBiYXNlIHF1ZXVlLlxuICAgICAgdmFyIGJhc2VGaXJzdCA9IGJhc2VRdWV1ZS5uZXh0O1xuICAgICAgdmFyIHBlbmRpbmdGaXJzdCA9IHBlbmRpbmdRdWV1ZS5uZXh0O1xuICAgICAgYmFzZVF1ZXVlLm5leHQgPSBwZW5kaW5nRmlyc3Q7XG4gICAgICBwZW5kaW5nUXVldWUubmV4dCA9IGJhc2VGaXJzdDtcbiAgICB9XG5cbiAgICB7XG4gICAgICBpZiAoY3VycmVudC5iYXNlUXVldWUgIT09IGJhc2VRdWV1ZSkge1xuICAgICAgICAvLyBJbnRlcm5hbCBpbnZhcmlhbnQgdGhhdCBzaG91bGQgbmV2ZXIgaGFwcGVuLCBidXQgZmVhc2libHkgY291bGQgaW5cbiAgICAgICAgLy8gdGhlIGZ1dHVyZSBpZiB3ZSBpbXBsZW1lbnQgcmVzdW1pbmcsIG9yIHNvbWUgZm9ybSBvZiB0aGF0LlxuICAgICAgICBlcnJvcignSW50ZXJuYWwgZXJyb3I6IEV4cGVjdGVkIHdvcmstaW4tcHJvZ3Jlc3MgcXVldWUgdG8gYmUgYSBjbG9uZS4gJyArICdUaGlzIGlzIGEgYnVnIGluIFJlYWN0LicpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGN1cnJlbnQuYmFzZVF1ZXVlID0gYmFzZVF1ZXVlID0gcGVuZGluZ1F1ZXVlO1xuICAgIHF1ZXVlLnBlbmRpbmcgPSBudWxsO1xuICB9XG5cbiAgaWYgKGJhc2VRdWV1ZSAhPT0gbnVsbCkge1xuICAgIC8vIFdlIGhhdmUgYSBxdWV1ZSB0byBwcm9jZXNzLlxuICAgIHZhciBmaXJzdCA9IGJhc2VRdWV1ZS5uZXh0O1xuICAgIHZhciBuZXdTdGF0ZSA9IGN1cnJlbnQuYmFzZVN0YXRlO1xuICAgIHZhciBuZXdCYXNlU3RhdGUgPSBudWxsO1xuICAgIHZhciBuZXdCYXNlUXVldWVGaXJzdCA9IG51bGw7XG4gICAgdmFyIG5ld0Jhc2VRdWV1ZUxhc3QgPSBudWxsO1xuICAgIHZhciB1cGRhdGUgPSBmaXJzdDtcblxuICAgIGRvIHtcbiAgICAgIHZhciB1cGRhdGVMYW5lID0gdXBkYXRlLmxhbmU7XG5cbiAgICAgIGlmICghaXNTdWJzZXRPZkxhbmVzKHJlbmRlckxhbmVzLCB1cGRhdGVMYW5lKSkge1xuICAgICAgICAvLyBQcmlvcml0eSBpcyBpbnN1ZmZpY2llbnQuIFNraXAgdGhpcyB1cGRhdGUuIElmIHRoaXMgaXMgdGhlIGZpcnN0XG4gICAgICAgIC8vIHNraXBwZWQgdXBkYXRlLCB0aGUgcHJldmlvdXMgdXBkYXRlL3N0YXRlIGlzIHRoZSBuZXcgYmFzZVxuICAgICAgICAvLyB1cGRhdGUvc3RhdGUuXG4gICAgICAgIHZhciBjbG9uZSA9IHtcbiAgICAgICAgICBsYW5lOiB1cGRhdGVMYW5lLFxuICAgICAgICAgIGFjdGlvbjogdXBkYXRlLmFjdGlvbixcbiAgICAgICAgICBlYWdlclJlZHVjZXI6IHVwZGF0ZS5lYWdlclJlZHVjZXIsXG4gICAgICAgICAgZWFnZXJTdGF0ZTogdXBkYXRlLmVhZ2VyU3RhdGUsXG4gICAgICAgICAgbmV4dDogbnVsbFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChuZXdCYXNlUXVldWVMYXN0ID09PSBudWxsKSB7XG4gICAgICAgICAgbmV3QmFzZVF1ZXVlRmlyc3QgPSBuZXdCYXNlUXVldWVMYXN0ID0gY2xvbmU7XG4gICAgICAgICAgbmV3QmFzZVN0YXRlID0gbmV3U3RhdGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbmV3QmFzZVF1ZXVlTGFzdCA9IG5ld0Jhc2VRdWV1ZUxhc3QubmV4dCA9IGNsb25lO1xuICAgICAgICB9IC8vIFVwZGF0ZSB0aGUgcmVtYWluaW5nIHByaW9yaXR5IGluIHRoZSBxdWV1ZS5cbiAgICAgICAgLy8gVE9ETzogRG9uJ3QgbmVlZCB0byBhY2N1bXVsYXRlIHRoaXMuIEluc3RlYWQsIHdlIGNhbiByZW1vdmVcbiAgICAgICAgLy8gcmVuZGVyTGFuZXMgZnJvbSB0aGUgb3JpZ2luYWwgbGFuZXMuXG5cblxuICAgICAgICBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxLmxhbmVzID0gbWVyZ2VMYW5lcyhjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxLmxhbmVzLCB1cGRhdGVMYW5lKTtcbiAgICAgICAgbWFya1NraXBwZWRVcGRhdGVMYW5lcyh1cGRhdGVMYW5lKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFRoaXMgdXBkYXRlIGRvZXMgaGF2ZSBzdWZmaWNpZW50IHByaW9yaXR5LlxuICAgICAgICBpZiAobmV3QmFzZVF1ZXVlTGFzdCAhPT0gbnVsbCkge1xuICAgICAgICAgIHZhciBfY2xvbmUgPSB7XG4gICAgICAgICAgICAvLyBUaGlzIHVwZGF0ZSBpcyBnb2luZyB0byBiZSBjb21taXR0ZWQgc28gd2UgbmV2ZXIgd2FudCB1bmNvbW1pdFxuICAgICAgICAgICAgLy8gaXQuIFVzaW5nIE5vTGFuZSB3b3JrcyBiZWNhdXNlIDAgaXMgYSBzdWJzZXQgb2YgYWxsIGJpdG1hc2tzLCBzb1xuICAgICAgICAgICAgLy8gdGhpcyB3aWxsIG5ldmVyIGJlIHNraXBwZWQgYnkgdGhlIGNoZWNrIGFib3ZlLlxuICAgICAgICAgICAgbGFuZTogTm9MYW5lLFxuICAgICAgICAgICAgYWN0aW9uOiB1cGRhdGUuYWN0aW9uLFxuICAgICAgICAgICAgZWFnZXJSZWR1Y2VyOiB1cGRhdGUuZWFnZXJSZWR1Y2VyLFxuICAgICAgICAgICAgZWFnZXJTdGF0ZTogdXBkYXRlLmVhZ2VyU3RhdGUsXG4gICAgICAgICAgICBuZXh0OiBudWxsXG4gICAgICAgICAgfTtcbiAgICAgICAgICBuZXdCYXNlUXVldWVMYXN0ID0gbmV3QmFzZVF1ZXVlTGFzdC5uZXh0ID0gX2Nsb25lO1xuICAgICAgICB9IC8vIFByb2Nlc3MgdGhpcyB1cGRhdGUuXG5cblxuICAgICAgICBpZiAodXBkYXRlLmVhZ2VyUmVkdWNlciA9PT0gcmVkdWNlcikge1xuICAgICAgICAgIC8vIElmIHRoaXMgdXBkYXRlIHdhcyBwcm9jZXNzZWQgZWFnZXJseSwgYW5kIGl0cyByZWR1Y2VyIG1hdGNoZXMgdGhlXG4gICAgICAgICAgLy8gY3VycmVudCByZWR1Y2VyLCB3ZSBjYW4gdXNlIHRoZSBlYWdlcmx5IGNvbXB1dGVkIHN0YXRlLlxuICAgICAgICAgIG5ld1N0YXRlID0gdXBkYXRlLmVhZ2VyU3RhdGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFyIGFjdGlvbiA9IHVwZGF0ZS5hY3Rpb247XG4gICAgICAgICAgbmV3U3RhdGUgPSByZWR1Y2VyKG5ld1N0YXRlLCBhY3Rpb24pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHVwZGF0ZSA9IHVwZGF0ZS5uZXh0O1xuICAgIH0gd2hpbGUgKHVwZGF0ZSAhPT0gbnVsbCAmJiB1cGRhdGUgIT09IGZpcnN0KTtcblxuICAgIGlmIChuZXdCYXNlUXVldWVMYXN0ID09PSBudWxsKSB7XG4gICAgICBuZXdCYXNlU3RhdGUgPSBuZXdTdGF0ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgbmV3QmFzZVF1ZXVlTGFzdC5uZXh0ID0gbmV3QmFzZVF1ZXVlRmlyc3Q7XG4gICAgfSAvLyBNYXJrIHRoYXQgdGhlIGZpYmVyIHBlcmZvcm1lZCB3b3JrLCBidXQgb25seSBpZiB0aGUgbmV3IHN0YXRlIGlzXG4gICAgLy8gZGlmZmVyZW50IGZyb20gdGhlIGN1cnJlbnQgc3RhdGUuXG5cblxuICAgIGlmICghb2JqZWN0SXMobmV3U3RhdGUsIGhvb2subWVtb2l6ZWRTdGF0ZSkpIHtcbiAgICAgIG1hcmtXb3JrSW5Qcm9ncmVzc1JlY2VpdmVkVXBkYXRlKCk7XG4gICAgfVxuXG4gICAgaG9vay5tZW1vaXplZFN0YXRlID0gbmV3U3RhdGU7XG4gICAgaG9vay5iYXNlU3RhdGUgPSBuZXdCYXNlU3RhdGU7XG4gICAgaG9vay5iYXNlUXVldWUgPSBuZXdCYXNlUXVldWVMYXN0O1xuICAgIHF1ZXVlLmxhc3RSZW5kZXJlZFN0YXRlID0gbmV3U3RhdGU7XG4gIH1cblxuICB2YXIgZGlzcGF0Y2ggPSBxdWV1ZS5kaXNwYXRjaDtcbiAgcmV0dXJuIFtob29rLm1lbW9pemVkU3RhdGUsIGRpc3BhdGNoXTtcbn1cblxuZnVuY3Rpb24gcmVyZW5kZXJSZWR1Y2VyKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpIHtcbiAgdmFyIGhvb2sgPSB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKTtcbiAgdmFyIHF1ZXVlID0gaG9vay5xdWV1ZTtcblxuICBpZiAoIShxdWV1ZSAhPT0gbnVsbCkpIHtcbiAgICB7XG4gICAgICB0aHJvdyBFcnJvciggXCJTaG91bGQgaGF2ZSBhIHF1ZXVlLiBUaGlzIGlzIGxpa2VseSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCIgKTtcbiAgICB9XG4gIH1cblxuICBxdWV1ZS5sYXN0UmVuZGVyZWRSZWR1Y2VyID0gcmVkdWNlcjsgLy8gVGhpcyBpcyBhIHJlLXJlbmRlci4gQXBwbHkgdGhlIG5ldyByZW5kZXIgcGhhc2UgdXBkYXRlcyB0byB0aGUgcHJldmlvdXNcbiAgLy8gd29yay1pbi1wcm9ncmVzcyBob29rLlxuXG4gIHZhciBkaXNwYXRjaCA9IHF1ZXVlLmRpc3BhdGNoO1xuICB2YXIgbGFzdFJlbmRlclBoYXNlVXBkYXRlID0gcXVldWUucGVuZGluZztcbiAgdmFyIG5ld1N0YXRlID0gaG9vay5tZW1vaXplZFN0YXRlO1xuXG4gIGlmIChsYXN0UmVuZGVyUGhhc2VVcGRhdGUgIT09IG51bGwpIHtcbiAgICAvLyBUaGUgcXVldWUgZG9lc24ndCBwZXJzaXN0IHBhc3QgdGhpcyByZW5kZXIgcGFzcy5cbiAgICBxdWV1ZS5wZW5kaW5nID0gbnVsbDtcbiAgICB2YXIgZmlyc3RSZW5kZXJQaGFzZVVwZGF0ZSA9IGxhc3RSZW5kZXJQaGFzZVVwZGF0ZS5uZXh0O1xuICAgIHZhciB1cGRhdGUgPSBmaXJzdFJlbmRlclBoYXNlVXBkYXRlO1xuXG4gICAgZG8ge1xuICAgICAgLy8gUHJvY2VzcyB0aGlzIHJlbmRlciBwaGFzZSB1cGRhdGUuIFdlIGRvbid0IGhhdmUgdG8gY2hlY2sgdGhlXG4gICAgICAvLyBwcmlvcml0eSBiZWNhdXNlIGl0IHdpbGwgYWx3YXlzIGJlIHRoZSBzYW1lIGFzIHRoZSBjdXJyZW50XG4gICAgICAvLyByZW5kZXIncy5cbiAgICAgIHZhciBhY3Rpb24gPSB1cGRhdGUuYWN0aW9uO1xuICAgICAgbmV3U3RhdGUgPSByZWR1Y2VyKG5ld1N0YXRlLCBhY3Rpb24pO1xuICAgICAgdXBkYXRlID0gdXBkYXRlLm5leHQ7XG4gICAgfSB3aGlsZSAodXBkYXRlICE9PSBmaXJzdFJlbmRlclBoYXNlVXBkYXRlKTsgLy8gTWFyayB0aGF0IHRoZSBmaWJlciBwZXJmb3JtZWQgd29yaywgYnV0IG9ubHkgaWYgdGhlIG5ldyBzdGF0ZSBpc1xuICAgIC8vIGRpZmZlcmVudCBmcm9tIHRoZSBjdXJyZW50IHN0YXRlLlxuXG5cbiAgICBpZiAoIW9iamVjdElzKG5ld1N0YXRlLCBob29rLm1lbW9pemVkU3RhdGUpKSB7XG4gICAgICBtYXJrV29ya0luUHJvZ3Jlc3NSZWNlaXZlZFVwZGF0ZSgpO1xuICAgIH1cblxuICAgIGhvb2subWVtb2l6ZWRTdGF0ZSA9IG5ld1N0YXRlOyAvLyBEb24ndCBwZXJzaXN0IHRoZSBzdGF0ZSBhY2N1bXVsYXRlZCBmcm9tIHRoZSByZW5kZXIgcGhhc2UgdXBkYXRlcyB0b1xuICAgIC8vIHRoZSBiYXNlIHN0YXRlIHVubGVzcyB0aGUgcXVldWUgaXMgZW1wdHkuXG4gICAgLy8gVE9ETzogTm90IHN1cmUgaWYgdGhpcyBpcyB0aGUgZGVzaXJlZCBzZW1hbnRpY3MsIGJ1dCBpdCdzIHdoYXQgd2VcbiAgICAvLyBkbyBmb3IgZ0RTRlAuIEkgY2FuJ3QgcmVtZW1iZXIgd2h5LlxuXG4gICAgaWYgKGhvb2suYmFzZVF1ZXVlID09PSBudWxsKSB7XG4gICAgICBob29rLmJhc2VTdGF0ZSA9IG5ld1N0YXRlO1xuICAgIH1cblxuICAgIHF1ZXVlLmxhc3RSZW5kZXJlZFN0YXRlID0gbmV3U3RhdGU7XG4gIH1cblxuICByZXR1cm4gW25ld1N0YXRlLCBkaXNwYXRjaF07XG59XG5cbmZ1bmN0aW9uIHJlYWRGcm9tVW5zdWJjcmliZWRNdXRhYmxlU291cmNlKHJvb3QsIHNvdXJjZSwgZ2V0U25hcHNob3QpIHtcbiAge1xuICAgIHdhcm5BYm91dE11bHRpcGxlUmVuZGVyZXJzREVWKHNvdXJjZSk7XG4gIH1cblxuICB2YXIgZ2V0VmVyc2lvbiA9IHNvdXJjZS5fZ2V0VmVyc2lvbjtcbiAgdmFyIHZlcnNpb24gPSBnZXRWZXJzaW9uKHNvdXJjZS5fc291cmNlKTsgLy8gSXMgaXQgc2FmZSBmb3IgdGhpcyBjb21wb25lbnQgdG8gcmVhZCBmcm9tIHRoaXMgc291cmNlIGR1cmluZyB0aGUgY3VycmVudCByZW5kZXI/XG5cbiAgdmFyIGlzU2FmZVRvUmVhZEZyb21Tb3VyY2UgPSBmYWxzZTsgLy8gQ2hlY2sgdGhlIHZlcnNpb24gZmlyc3QuXG4gIC8vIElmIHRoaXMgcmVuZGVyIGhhcyBhbHJlYWR5IGJlZW4gc3RhcnRlZCB3aXRoIGEgc3BlY2lmaWMgdmVyc2lvbixcbiAgLy8gd2UgY2FuIHVzZSBpdCBhbG9uZSB0byBkZXRlcm1pbmUgaWYgd2UgY2FuIHNhZmVseSByZWFkIGZyb20gdGhlIHNvdXJjZS5cblxuICB2YXIgY3VycmVudFJlbmRlclZlcnNpb24gPSBnZXRXb3JrSW5Qcm9ncmVzc1ZlcnNpb24oc291cmNlKTtcblxuICBpZiAoY3VycmVudFJlbmRlclZlcnNpb24gIT09IG51bGwpIHtcbiAgICAvLyBJdCdzIHNhZmUgdG8gcmVhZCBpZiB0aGUgc3RvcmUgaGFzbid0IGJlZW4gbXV0YXRlZCBzaW5jZSB0aGUgbGFzdCB0aW1lXG4gICAgLy8gd2UgcmVhZCBzb21ldGhpbmcuXG4gICAgaXNTYWZlVG9SZWFkRnJvbVNvdXJjZSA9IGN1cnJlbnRSZW5kZXJWZXJzaW9uID09PSB2ZXJzaW9uO1xuICB9IGVsc2Uge1xuICAgIC8vIElmIHRoZXJlJ3Mgbm8gdmVyc2lvbiwgdGhlbiB0aGlzIGlzIHRoZSBmaXJzdCB0aW1lIHdlJ3ZlIHJlYWQgZnJvbSB0aGVcbiAgICAvLyBzb3VyY2UgZHVyaW5nIHRoZSBjdXJyZW50IHJlbmRlciBwYXNzLCBzbyB3ZSBuZWVkIHRvIGRvIGEgYml0IG1vcmUgd29yay5cbiAgICAvLyBXaGF0IHdlIG5lZWQgdG8gZGV0ZXJtaW5lIGlzIGlmIHRoZXJlIGFyZSBhbnkgaG9va3MgdGhhdCBhbHJlYWR5XG4gICAgLy8gc3Vic2NyaWJlZCB0byB0aGUgc291cmNlLCBhbmQgaWYgc28sIHdoZXRoZXIgdGhlcmUgYXJlIGFueSBwZW5kaW5nXG4gICAgLy8gbXV0YXRpb25zIHRoYXQgaGF2ZW4ndCBiZWVuIHN5bmNocm9uaXplZCB5ZXQuXG4gICAgLy9cbiAgICAvLyBJZiB0aGVyZSBhcmUgbm8gcGVuZGluZyBtdXRhdGlvbnMsIHRoZW4gYHJvb3QubXV0YWJsZVJlYWRMYW5lc2Agd2lsbCBiZVxuICAgIC8vIGVtcHR5LCBhbmQgd2Uga25vdyB3ZSBjYW4gc2FmZWx5IHJlYWQuXG4gICAgLy9cbiAgICAvLyBJZiB0aGVyZSAqYXJlKiBwZW5kaW5nIG11dGF0aW9ucywgd2UgbWF5IHN0aWxsIGJlIGFibGUgdG8gc2FmZWx5IHJlYWRcbiAgICAvLyBpZiB0aGUgY3VycmVudGx5IHJlbmRlcmluZyBsYW5lcyBhcmUgaW5jbHVzaXZlIG9mIHRoZSBwZW5kaW5nIG11dGF0aW9uXG4gICAgLy8gbGFuZXMsIHNpbmNlIHRoYXQgZ3VhcmFudGVlcyB0aGF0IHRoZSB2YWx1ZSB3ZSdyZSBhYm91dCB0byByZWFkIGZyb21cbiAgICAvLyB0aGUgc291cmNlIGlzIGNvbnNpc3RlbnQgd2l0aCB0aGUgdmFsdWVzIHRoYXQgd2UgcmVhZCBkdXJpbmcgdGhlIG1vc3RcbiAgICAvLyByZWNlbnQgbXV0YXRpb24uXG4gICAgaXNTYWZlVG9SZWFkRnJvbVNvdXJjZSA9IGlzU3Vic2V0T2ZMYW5lcyhyZW5kZXJMYW5lcywgcm9vdC5tdXRhYmxlUmVhZExhbmVzKTtcblxuICAgIGlmIChpc1NhZmVUb1JlYWRGcm9tU291cmNlKSB7XG4gICAgICAvLyBJZiBpdCdzIHNhZmUgdG8gcmVhZCBmcm9tIHRoaXMgc291cmNlIGR1cmluZyB0aGUgY3VycmVudCByZW5kZXIsXG4gICAgICAvLyBzdG9yZSB0aGUgdmVyc2lvbiBpbiBjYXNlIG90aGVyIGNvbXBvbmVudHMgcmVhZCBmcm9tIGl0LlxuICAgICAgLy8gQSBjaGFuZ2VkIHZlcnNpb24gbnVtYmVyIHdpbGwgbGV0IHRob3NlIGNvbXBvbmVudHMga25vdyB0byB0aHJvdyBhbmQgcmVzdGFydCB0aGUgcmVuZGVyLlxuICAgICAgc2V0V29ya0luUHJvZ3Jlc3NWZXJzaW9uKHNvdXJjZSwgdmVyc2lvbik7XG4gICAgfVxuICB9XG5cbiAgaWYgKGlzU2FmZVRvUmVhZEZyb21Tb3VyY2UpIHtcbiAgICB2YXIgc25hcHNob3QgPSBnZXRTbmFwc2hvdChzb3VyY2UuX3NvdXJjZSk7XG5cbiAgICB7XG4gICAgICBpZiAodHlwZW9mIHNuYXBzaG90ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGVycm9yKCdNdXRhYmxlIHNvdXJjZSBzaG91bGQgbm90IHJldHVybiBhIGZ1bmN0aW9uIGFzIHRoZSBzbmFwc2hvdCB2YWx1ZS4gJyArICdGdW5jdGlvbnMgbWF5IGNsb3NlIG92ZXIgbXV0YWJsZSB2YWx1ZXMgYW5kIGNhdXNlIHRlYXJpbmcuJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHNuYXBzaG90O1xuICB9IGVsc2Uge1xuICAgIC8vIFRoaXMgaGFuZGxlcyB0aGUgc3BlY2lhbCBjYXNlIG9mIGEgbXV0YWJsZSBzb3VyY2UgYmVpbmcgc2hhcmVkIGJldHdlZW4gcmVuZGVyZXJzLlxuICAgIC8vIEluIHRoYXQgY2FzZSwgaWYgdGhlIHNvdXJjZSBpcyBtdXRhdGVkIGJldHdlZW4gdGhlIGZpcnN0IGFuZCBzZWNvbmQgcmVuZGVyZXIsXG4gICAgLy8gVGhlIHNlY29uZCByZW5kZXJlciBkb24ndCBrbm93IHRoYXQgaXQgbmVlZHMgdG8gcmVzZXQgdGhlIFdJUCB2ZXJzaW9uIGR1cmluZyB1bndpbmQsXG4gICAgLy8gKGJlY2F1c2UgdGhlIGhvb2sgb25seSBtYXJrcyBzb3VyY2VzIGFzIGRpcnR5IGlmIGl0J3Mgd3JpdHRlbiB0byB0aGVpciBXSVAgdmVyc2lvbikuXG4gICAgLy8gVGhhdCB3b3VsZCBjYXVzZSB0aGlzIHRlYXIgY2hlY2sgdG8gdGhyb3cgYWdhaW4gYW5kIGV2ZW50dWFsbHkgYmUgdmlzaWJsZSB0byB0aGUgdXNlci5cbiAgICAvLyBXZSBjYW4gYXZvaWQgdGhpcyBpbmZpbml0ZSBsb29wIGJ5IGV4cGxpY2l0bHkgbWFya2luZyB0aGUgc291cmNlIGFzIGRpcnR5LlxuICAgIC8vXG4gICAgLy8gVGhpcyBjYW4gbGVhZCB0byB0ZWFyaW5nIGluIHRoZSBmaXJzdCByZW5kZXJlciB3aGVuIGl0IHJlc3VtZXMsXG4gICAgLy8gYnV0IHRoZXJlJ3Mgbm90aGluZyB3ZSBjYW4gZG8gYWJvdXQgdGhhdCAoc2hvcnQgb2YgdGhyb3dpbmcgaGVyZSBhbmQgcmVmdXNpbmcgdG8gY29udGludWUgdGhlIHJlbmRlcikuXG4gICAgbWFya1NvdXJjZUFzRGlydHkoc291cmNlKTtcblxuICAgIHtcbiAgICAgIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoIFwiQ2Fubm90IHJlYWQgZnJvbSBtdXRhYmxlIHNvdXJjZSBkdXJpbmcgdGhlIGN1cnJlbnQgcmVuZGVyIHdpdGhvdXQgdGVhcmluZy4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCIgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gdXNlTXV0YWJsZVNvdXJjZShob29rLCBzb3VyY2UsIGdldFNuYXBzaG90LCBzdWJzY3JpYmUpIHtcbiAgdmFyIHJvb3QgPSBnZXRXb3JrSW5Qcm9ncmVzc1Jvb3QoKTtcblxuICBpZiAoIShyb290ICE9PSBudWxsKSkge1xuICAgIHtcbiAgICAgIHRocm93IEVycm9yKCBcIkV4cGVjdGVkIGEgd29yay1pbi1wcm9ncmVzcyByb290LiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIiApO1xuICAgIH1cbiAgfVxuXG4gIHZhciBnZXRWZXJzaW9uID0gc291cmNlLl9nZXRWZXJzaW9uO1xuICB2YXIgdmVyc2lvbiA9IGdldFZlcnNpb24oc291cmNlLl9zb3VyY2UpO1xuICB2YXIgZGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50OyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLWNvbnN0XG5cbiAgdmFyIF9kaXNwYXRjaGVyJHVzZVN0YXRlID0gZGlzcGF0Y2hlci51c2VTdGF0ZShmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHJlYWRGcm9tVW5zdWJjcmliZWRNdXRhYmxlU291cmNlKHJvb3QsIHNvdXJjZSwgZ2V0U25hcHNob3QpO1xuICB9KSxcbiAgICAgIGN1cnJlbnRTbmFwc2hvdCA9IF9kaXNwYXRjaGVyJHVzZVN0YXRlWzBdLFxuICAgICAgc2V0U25hcHNob3QgPSBfZGlzcGF0Y2hlciR1c2VTdGF0ZVsxXTtcblxuICB2YXIgc25hcHNob3QgPSBjdXJyZW50U25hcHNob3Q7IC8vIEdyYWIgYSBoYW5kbGUgdG8gdGhlIHN0YXRlIGhvb2sgYXMgd2VsbC5cbiAgLy8gV2UgdXNlIGl0IHRvIGNsZWFyIHRoZSBwZW5kaW5nIHVwZGF0ZSBxdWV1ZSBpZiB3ZSBoYXZlIGEgbmV3IHNvdXJjZS5cblxuICB2YXIgc3RhdGVIb29rID0gd29ya0luUHJvZ3Jlc3NIb29rO1xuICB2YXIgbWVtb2l6ZWRTdGF0ZSA9IGhvb2subWVtb2l6ZWRTdGF0ZTtcbiAgdmFyIHJlZnMgPSBtZW1vaXplZFN0YXRlLnJlZnM7XG4gIHZhciBwcmV2R2V0U25hcHNob3QgPSByZWZzLmdldFNuYXBzaG90O1xuICB2YXIgcHJldlNvdXJjZSA9IG1lbW9pemVkU3RhdGUuc291cmNlO1xuICB2YXIgcHJldlN1YnNjcmliZSA9IG1lbW9pemVkU3RhdGUuc3Vic2NyaWJlO1xuICB2YXIgZmliZXIgPSBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxO1xuICBob29rLm1lbW9pemVkU3RhdGUgPSB7XG4gICAgcmVmczogcmVmcyxcbiAgICBzb3VyY2U6IHNvdXJjZSxcbiAgICBzdWJzY3JpYmU6IHN1YnNjcmliZVxuICB9OyAvLyBTeW5jIHRoZSB2YWx1ZXMgbmVlZGVkIGJ5IG91ciBzdWJzY3JpcHRpb24gaGFuZGxlciBhZnRlciBlYWNoIGNvbW1pdC5cblxuICBkaXNwYXRjaGVyLnVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgcmVmcy5nZXRTbmFwc2hvdCA9IGdldFNuYXBzaG90OyAvLyBOb3JtYWxseSB0aGUgZGlzcGF0Y2ggZnVuY3Rpb24gZm9yIGEgc3RhdGUgaG9vayBuZXZlciBjaGFuZ2VzLFxuICAgIC8vIGJ1dCB0aGlzIGhvb2sgcmVjcmVhdGVzIHRoZSBxdWV1ZSBpbiBjZXJ0YWluIGNhc2VzICB0byBhdm9pZCB1cGRhdGVzIGZyb20gc3RhbGUgc291cmNlcy5cbiAgICAvLyBoYW5kbGVDaGFuZ2UoKSBiZWxvdyBuZWVkcyB0byByZWZlcmVuY2UgdGhlIGRpc3BhdGNoIGZ1bmN0aW9uIHdpdGhvdXQgcmUtc3Vic2NyaWJpbmcsXG4gICAgLy8gc28gd2UgdXNlIGEgcmVmIHRvIGVuc3VyZSB0aGF0IGl0IGFsd2F5cyBoYXMgdGhlIGxhdGVzdCB2ZXJzaW9uLlxuXG4gICAgcmVmcy5zZXRTbmFwc2hvdCA9IHNldFNuYXBzaG90OyAvLyBDaGVjayBmb3IgYSBwb3NzaWJsZSBjaGFuZ2UgYmV0d2VlbiB3aGVuIHdlIGxhc3QgcmVuZGVyZWQgbm93LlxuXG4gICAgdmFyIG1heWJlTmV3VmVyc2lvbiA9IGdldFZlcnNpb24oc291cmNlLl9zb3VyY2UpO1xuXG4gICAgaWYgKCFvYmplY3RJcyh2ZXJzaW9uLCBtYXliZU5ld1ZlcnNpb24pKSB7XG4gICAgICB2YXIgbWF5YmVOZXdTbmFwc2hvdCA9IGdldFNuYXBzaG90KHNvdXJjZS5fc291cmNlKTtcblxuICAgICAge1xuICAgICAgICBpZiAodHlwZW9mIG1heWJlTmV3U25hcHNob3QgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICBlcnJvcignTXV0YWJsZSBzb3VyY2Ugc2hvdWxkIG5vdCByZXR1cm4gYSBmdW5jdGlvbiBhcyB0aGUgc25hcHNob3QgdmFsdWUuICcgKyAnRnVuY3Rpb25zIG1heSBjbG9zZSBvdmVyIG11dGFibGUgdmFsdWVzIGFuZCBjYXVzZSB0ZWFyaW5nLicpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghb2JqZWN0SXMoc25hcHNob3QsIG1heWJlTmV3U25hcHNob3QpKSB7XG4gICAgICAgIHNldFNuYXBzaG90KG1heWJlTmV3U25hcHNob3QpO1xuICAgICAgICB2YXIgbGFuZSA9IHJlcXVlc3RVcGRhdGVMYW5lKGZpYmVyKTtcbiAgICAgICAgbWFya1Jvb3RNdXRhYmxlUmVhZChyb290LCBsYW5lKTtcbiAgICAgIH0gLy8gSWYgdGhlIHNvdXJjZSBtdXRhdGVkIGJldHdlZW4gcmVuZGVyIGFuZCBub3csXG4gICAgICAvLyB0aGVyZSBtYXkgYmUgc3RhdGUgdXBkYXRlcyBhbHJlYWR5IHNjaGVkdWxlZCBmcm9tIHRoZSBvbGQgc291cmNlLlxuICAgICAgLy8gRW50YW5nbGUgdGhlIHVwZGF0ZXMgc28gdGhhdCB0aGV5IHJlbmRlciBpbiB0aGUgc2FtZSBiYXRjaC5cblxuXG4gICAgICBtYXJrUm9vdEVudGFuZ2xlZChyb290LCByb290Lm11dGFibGVSZWFkTGFuZXMpO1xuICAgIH1cbiAgfSwgW2dldFNuYXBzaG90LCBzb3VyY2UsIHN1YnNjcmliZV0pOyAvLyBJZiB3ZSBnb3QgYSBuZXcgc291cmNlIG9yIHN1YnNjcmliZSBmdW5jdGlvbiwgcmUtc3Vic2NyaWJlIGluIGEgcGFzc2l2ZSBlZmZlY3QuXG5cbiAgZGlzcGF0Y2hlci51c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIHZhciBoYW5kbGVDaGFuZ2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgbGF0ZXN0R2V0U25hcHNob3QgPSByZWZzLmdldFNuYXBzaG90O1xuICAgICAgdmFyIGxhdGVzdFNldFNuYXBzaG90ID0gcmVmcy5zZXRTbmFwc2hvdDtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgbGF0ZXN0U2V0U25hcHNob3QobGF0ZXN0R2V0U25hcHNob3Qoc291cmNlLl9zb3VyY2UpKTsgLy8gUmVjb3JkIGEgcGVuZGluZyBtdXRhYmxlIHNvdXJjZSB1cGRhdGUgd2l0aCB0aGUgc2FtZSBleHBpcmF0aW9uIHRpbWUuXG5cbiAgICAgICAgdmFyIGxhbmUgPSByZXF1ZXN0VXBkYXRlTGFuZShmaWJlcik7XG4gICAgICAgIG1hcmtSb290TXV0YWJsZVJlYWQocm9vdCwgbGFuZSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAvLyBBIHNlbGVjdG9yIG1pZ2h0IHRocm93IGFmdGVyIGEgc291cmNlIG11dGF0aW9uLlxuICAgICAgICAvLyBlLmcuIGl0IG1pZ2h0IHRyeSB0byByZWFkIGZyb20gYSBwYXJ0IG9mIHRoZSBzdG9yZSB0aGF0IG5vIGxvbmdlciBleGlzdHMuXG4gICAgICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBzaG91bGQgc3RpbGwgc2NoZWR1bGUgYW4gdXBkYXRlIHdpdGggUmVhY3QuXG4gICAgICAgIC8vIFdvcnN0IGNhc2UgdGhlIHNlbGVjdG9yIHdpbGwgdGhyb3cgYWdhaW4gYW5kIHRoZW4gYW4gZXJyb3IgYm91bmRhcnkgd2lsbCBoYW5kbGUgaXQuXG4gICAgICAgIGxhdGVzdFNldFNuYXBzaG90KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHZhciB1bnN1YnNjcmliZSA9IHN1YnNjcmliZShzb3VyY2UuX3NvdXJjZSwgaGFuZGxlQ2hhbmdlKTtcblxuICAgIHtcbiAgICAgIGlmICh0eXBlb2YgdW5zdWJzY3JpYmUgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgZXJyb3IoJ011dGFibGUgc291cmNlIHN1YnNjcmliZSBmdW5jdGlvbiBtdXN0IHJldHVybiBhbiB1bnN1YnNjcmliZSBmdW5jdGlvbi4nKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdW5zdWJzY3JpYmU7XG4gIH0sIFtzb3VyY2UsIHN1YnNjcmliZV0pOyAvLyBJZiBhbnkgb2YgdGhlIGlucHV0cyB0byB1c2VNdXRhYmxlU291cmNlIGNoYW5nZSwgcmVhZGluZyBpcyBwb3RlbnRpYWxseSB1bnNhZmUuXG4gIC8vXG4gIC8vIElmIGVpdGhlciB0aGUgc291cmNlIG9yIHRoZSBzdWJzY3JpcHRpb24gaGF2ZSBjaGFuZ2VkIHdlIGNhbid0IGNhbid0IHRydXN0IHRoZSB1cGRhdGUgcXVldWUuXG4gIC8vIE1heWJlIHRoZSBzb3VyY2UgY2hhbmdlZCBpbiBhIHdheSB0aGF0IHRoZSBvbGQgc3Vic2NyaXB0aW9uIGlnbm9yZWQgYnV0IHRoZSBuZXcgb25lIGRlcGVuZHMgb24uXG4gIC8vXG4gIC8vIElmIHRoZSBnZXRTbmFwc2hvdCBmdW5jdGlvbiBjaGFuZ2VkLCB3ZSBhbHNvIHNob3VsZG4ndCByZWx5IG9uIHRoZSB1cGRhdGUgcXVldWUuXG4gIC8vIEl0J3MgcG9zc2libGUgdGhhdCB0aGUgdW5kZXJseWluZyBzb3VyY2Ugd2FzIG11dGF0ZWQgYmV0d2VlbiB0aGUgd2hlbiB0aGUgbGFzdCBcImNoYW5nZVwiIGV2ZW50IGZpcmVkLFxuICAvLyBhbmQgd2hlbiB0aGUgY3VycmVudCByZW5kZXIgKHdpdGggdGhlIG5ldyBnZXRTbmFwc2hvdCBmdW5jdGlvbikgaXMgcHJvY2Vzc2VkLlxuICAvL1xuICAvLyBJbiBib3RoIGNhc2VzLCB3ZSBuZWVkIHRvIHRocm93IGF3YXkgcGVuZGluZyB1cGRhdGVzIChzaW5jZSB0aGV5IGFyZSBubyBsb25nZXIgcmVsZXZhbnQpXG4gIC8vIGFuZCB0cmVhdCByZWFkaW5nIGZyb20gdGhlIHNvdXJjZSBhcyB3ZSBkbyBpbiB0aGUgbW91bnQgY2FzZS5cblxuICBpZiAoIW9iamVjdElzKHByZXZHZXRTbmFwc2hvdCwgZ2V0U25hcHNob3QpIHx8ICFvYmplY3RJcyhwcmV2U291cmNlLCBzb3VyY2UpIHx8ICFvYmplY3RJcyhwcmV2U3Vic2NyaWJlLCBzdWJzY3JpYmUpKSB7XG4gICAgLy8gQ3JlYXRlIGEgbmV3IHF1ZXVlIGFuZCBzZXRTdGF0ZSBtZXRob2QsXG4gICAgLy8gU28gaWYgdGhlcmUgYXJlIGludGVybGVhdmVkIHVwZGF0ZXMsIHRoZXkgZ2V0IHB1c2hlZCB0byB0aGUgb2xkZXIgcXVldWUuXG4gICAgLy8gV2hlbiB0aGlzIGJlY29tZXMgY3VycmVudCwgdGhlIHByZXZpb3VzIHF1ZXVlIGFuZCBkaXNwYXRjaCBtZXRob2Qgd2lsbCBiZSBkaXNjYXJkZWQsXG4gICAgLy8gaW5jbHVkaW5nIGFueSBpbnRlcmxlYXZpbmcgdXBkYXRlcyB0aGF0IG9jY3VyLlxuICAgIHZhciBuZXdRdWV1ZSA9IHtcbiAgICAgIHBlbmRpbmc6IG51bGwsXG4gICAgICBkaXNwYXRjaDogbnVsbCxcbiAgICAgIGxhc3RSZW5kZXJlZFJlZHVjZXI6IGJhc2ljU3RhdGVSZWR1Y2VyLFxuICAgICAgbGFzdFJlbmRlcmVkU3RhdGU6IHNuYXBzaG90XG4gICAgfTtcbiAgICBuZXdRdWV1ZS5kaXNwYXRjaCA9IHNldFNuYXBzaG90ID0gZGlzcGF0Y2hBY3Rpb24uYmluZChudWxsLCBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxLCBuZXdRdWV1ZSk7XG4gICAgc3RhdGVIb29rLnF1ZXVlID0gbmV3UXVldWU7XG4gICAgc3RhdGVIb29rLmJhc2VRdWV1ZSA9IG51bGw7XG4gICAgc25hcHNob3QgPSByZWFkRnJvbVVuc3ViY3JpYmVkTXV0YWJsZVNvdXJjZShyb290LCBzb3VyY2UsIGdldFNuYXBzaG90KTtcbiAgICBzdGF0ZUhvb2subWVtb2l6ZWRTdGF0ZSA9IHN0YXRlSG9vay5iYXNlU3RhdGUgPSBzbmFwc2hvdDtcbiAgfVxuXG4gIHJldHVybiBzbmFwc2hvdDtcbn1cblxuZnVuY3Rpb24gbW91bnRNdXRhYmxlU291cmNlKHNvdXJjZSwgZ2V0U25hcHNob3QsIHN1YnNjcmliZSkge1xuICB2YXIgaG9vayA9IG1vdW50V29ya0luUHJvZ3Jlc3NIb29rKCk7XG4gIGhvb2subWVtb2l6ZWRTdGF0ZSA9IHtcbiAgICByZWZzOiB7XG4gICAgICBnZXRTbmFwc2hvdDogZ2V0U25hcHNob3QsXG4gICAgICBzZXRTbmFwc2hvdDogbnVsbFxuICAgIH0sXG4gICAgc291cmNlOiBzb3VyY2UsXG4gICAgc3Vic2NyaWJlOiBzdWJzY3JpYmVcbiAgfTtcbiAgcmV0dXJuIHVzZU11dGFibGVTb3VyY2UoaG9vaywgc291cmNlLCBnZXRTbmFwc2hvdCwgc3Vic2NyaWJlKTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlTXV0YWJsZVNvdXJjZShzb3VyY2UsIGdldFNuYXBzaG90LCBzdWJzY3JpYmUpIHtcbiAgdmFyIGhvb2sgPSB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKTtcbiAgcmV0dXJuIHVzZU11dGFibGVTb3VyY2UoaG9vaywgc291cmNlLCBnZXRTbmFwc2hvdCwgc3Vic2NyaWJlKTtcbn1cblxuZnVuY3Rpb24gbW91bnRTdGF0ZShpbml0aWFsU3RhdGUpIHtcbiAgdmFyIGhvb2sgPSBtb3VudFdvcmtJblByb2dyZXNzSG9vaygpO1xuXG4gIGlmICh0eXBlb2YgaW5pdGlhbFN0YXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgLy8gJEZsb3dGaXhNZTogRmxvdyBkb2Vzbid0IGxpa2UgbWl4ZWQgdHlwZXNcbiAgICBpbml0aWFsU3RhdGUgPSBpbml0aWFsU3RhdGUoKTtcbiAgfVxuXG4gIGhvb2subWVtb2l6ZWRTdGF0ZSA9IGhvb2suYmFzZVN0YXRlID0gaW5pdGlhbFN0YXRlO1xuICB2YXIgcXVldWUgPSBob29rLnF1ZXVlID0ge1xuICAgIHBlbmRpbmc6IG51bGwsXG4gICAgZGlzcGF0Y2g6IG51bGwsXG4gICAgbGFzdFJlbmRlcmVkUmVkdWNlcjogYmFzaWNTdGF0ZVJlZHVjZXIsXG4gICAgbGFzdFJlbmRlcmVkU3RhdGU6IGluaXRpYWxTdGF0ZVxuICB9O1xuICB2YXIgZGlzcGF0Y2ggPSBxdWV1ZS5kaXNwYXRjaCA9IGRpc3BhdGNoQWN0aW9uLmJpbmQobnVsbCwgY3VycmVudGx5UmVuZGVyaW5nRmliZXIkMSwgcXVldWUpO1xuICByZXR1cm4gW2hvb2subWVtb2l6ZWRTdGF0ZSwgZGlzcGF0Y2hdO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVTdGF0ZShpbml0aWFsU3RhdGUpIHtcbiAgcmV0dXJuIHVwZGF0ZVJlZHVjZXIoYmFzaWNTdGF0ZVJlZHVjZXIpO1xufVxuXG5mdW5jdGlvbiByZXJlbmRlclN0YXRlKGluaXRpYWxTdGF0ZSkge1xuICByZXR1cm4gcmVyZW5kZXJSZWR1Y2VyKGJhc2ljU3RhdGVSZWR1Y2VyKTtcbn1cblxuZnVuY3Rpb24gcHVzaEVmZmVjdCh0YWcsIGNyZWF0ZSwgZGVzdHJveSwgZGVwcykge1xuICB2YXIgZWZmZWN0ID0ge1xuICAgIHRhZzogdGFnLFxuICAgIGNyZWF0ZTogY3JlYXRlLFxuICAgIGRlc3Ryb3k6IGRlc3Ryb3ksXG4gICAgZGVwczogZGVwcyxcbiAgICAvLyBDaXJjdWxhclxuICAgIG5leHQ6IG51bGxcbiAgfTtcbiAgdmFyIGNvbXBvbmVudFVwZGF0ZVF1ZXVlID0gY3VycmVudGx5UmVuZGVyaW5nRmliZXIkMS51cGRhdGVRdWV1ZTtcblxuICBpZiAoY29tcG9uZW50VXBkYXRlUXVldWUgPT09IG51bGwpIHtcbiAgICBjb21wb25lbnRVcGRhdGVRdWV1ZSA9IGNyZWF0ZUZ1bmN0aW9uQ29tcG9uZW50VXBkYXRlUXVldWUoKTtcbiAgICBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxLnVwZGF0ZVF1ZXVlID0gY29tcG9uZW50VXBkYXRlUXVldWU7XG4gICAgY29tcG9uZW50VXBkYXRlUXVldWUubGFzdEVmZmVjdCA9IGVmZmVjdC5uZXh0ID0gZWZmZWN0O1xuICB9IGVsc2Uge1xuICAgIHZhciBsYXN0RWZmZWN0ID0gY29tcG9uZW50VXBkYXRlUXVldWUubGFzdEVmZmVjdDtcblxuICAgIGlmIChsYXN0RWZmZWN0ID09PSBudWxsKSB7XG4gICAgICBjb21wb25lbnRVcGRhdGVRdWV1ZS5sYXN0RWZmZWN0ID0gZWZmZWN0Lm5leHQgPSBlZmZlY3Q7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBmaXJzdEVmZmVjdCA9IGxhc3RFZmZlY3QubmV4dDtcbiAgICAgIGxhc3RFZmZlY3QubmV4dCA9IGVmZmVjdDtcbiAgICAgIGVmZmVjdC5uZXh0ID0gZmlyc3RFZmZlY3Q7XG4gICAgICBjb21wb25lbnRVcGRhdGVRdWV1ZS5sYXN0RWZmZWN0ID0gZWZmZWN0O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBlZmZlY3Q7XG59XG5cbmZ1bmN0aW9uIG1vdW50UmVmKGluaXRpYWxWYWx1ZSkge1xuICB2YXIgaG9vayA9IG1vdW50V29ya0luUHJvZ3Jlc3NIb29rKCk7XG4gIHZhciByZWYgPSB7XG4gICAgY3VycmVudDogaW5pdGlhbFZhbHVlXG4gIH07XG5cbiAge1xuICAgIE9iamVjdC5zZWFsKHJlZik7XG4gIH1cblxuICBob29rLm1lbW9pemVkU3RhdGUgPSByZWY7XG4gIHJldHVybiByZWY7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZVJlZihpbml0aWFsVmFsdWUpIHtcbiAgdmFyIGhvb2sgPSB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKTtcbiAgcmV0dXJuIGhvb2subWVtb2l6ZWRTdGF0ZTtcbn1cblxuZnVuY3Rpb24gbW91bnRFZmZlY3RJbXBsKGZpYmVyRmxhZ3MsIGhvb2tGbGFncywgY3JlYXRlLCBkZXBzKSB7XG4gIHZhciBob29rID0gbW91bnRXb3JrSW5Qcm9ncmVzc0hvb2soKTtcbiAgdmFyIG5leHREZXBzID0gZGVwcyA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGRlcHM7XG4gIGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyJDEuZmxhZ3MgfD0gZmliZXJGbGFncztcbiAgaG9vay5tZW1vaXplZFN0YXRlID0gcHVzaEVmZmVjdChIYXNFZmZlY3QgfCBob29rRmxhZ3MsIGNyZWF0ZSwgdW5kZWZpbmVkLCBuZXh0RGVwcyk7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUVmZmVjdEltcGwoZmliZXJGbGFncywgaG9va0ZsYWdzLCBjcmVhdGUsIGRlcHMpIHtcbiAgdmFyIGhvb2sgPSB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKTtcbiAgdmFyIG5leHREZXBzID0gZGVwcyA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGRlcHM7XG4gIHZhciBkZXN0cm95ID0gdW5kZWZpbmVkO1xuXG4gIGlmIChjdXJyZW50SG9vayAhPT0gbnVsbCkge1xuICAgIHZhciBwcmV2RWZmZWN0ID0gY3VycmVudEhvb2subWVtb2l6ZWRTdGF0ZTtcbiAgICBkZXN0cm95ID0gcHJldkVmZmVjdC5kZXN0cm95O1xuXG4gICAgaWYgKG5leHREZXBzICE9PSBudWxsKSB7XG4gICAgICB2YXIgcHJldkRlcHMgPSBwcmV2RWZmZWN0LmRlcHM7XG5cbiAgICAgIGlmIChhcmVIb29rSW5wdXRzRXF1YWwobmV4dERlcHMsIHByZXZEZXBzKSkge1xuICAgICAgICBwdXNoRWZmZWN0KGhvb2tGbGFncywgY3JlYXRlLCBkZXN0cm95LCBuZXh0RGVwcyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxLmZsYWdzIHw9IGZpYmVyRmxhZ3M7XG4gIGhvb2subWVtb2l6ZWRTdGF0ZSA9IHB1c2hFZmZlY3QoSGFzRWZmZWN0IHwgaG9va0ZsYWdzLCBjcmVhdGUsIGRlc3Ryb3ksIG5leHREZXBzKTtcbn1cblxuZnVuY3Rpb24gbW91bnRFZmZlY3QoY3JlYXRlLCBkZXBzKSB7XG4gIHtcbiAgICAvLyAkRmxvd0V4cGVjdGVkRXJyb3IgLSBqZXN0IGlzbid0IGEgZ2xvYmFsLCBhbmQgaXNuJ3QgcmVjb2duaXplZCBvdXRzaWRlIG9mIHRlc3RzXG4gICAgaWYgKCd1bmRlZmluZWQnICE9PSB0eXBlb2YgamVzdCkge1xuICAgICAgd2FybklmTm90Q3VycmVudGx5QWN0aW5nRWZmZWN0c0luREVWKGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyJDEpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBtb3VudEVmZmVjdEltcGwoVXBkYXRlIHwgUGFzc2l2ZSwgUGFzc2l2ZSQxLCBjcmVhdGUsIGRlcHMpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVFZmZlY3QoY3JlYXRlLCBkZXBzKSB7XG4gIHtcbiAgICAvLyAkRmxvd0V4cGVjdGVkRXJyb3IgLSBqZXN0IGlzbid0IGEgZ2xvYmFsLCBhbmQgaXNuJ3QgcmVjb2duaXplZCBvdXRzaWRlIG9mIHRlc3RzXG4gICAgaWYgKCd1bmRlZmluZWQnICE9PSB0eXBlb2YgamVzdCkge1xuICAgICAgd2FybklmTm90Q3VycmVudGx5QWN0aW5nRWZmZWN0c0luREVWKGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyJDEpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB1cGRhdGVFZmZlY3RJbXBsKFVwZGF0ZSB8IFBhc3NpdmUsIFBhc3NpdmUkMSwgY3JlYXRlLCBkZXBzKTtcbn1cblxuZnVuY3Rpb24gbW91bnRMYXlvdXRFZmZlY3QoY3JlYXRlLCBkZXBzKSB7XG4gIHJldHVybiBtb3VudEVmZmVjdEltcGwoVXBkYXRlLCBMYXlvdXQsIGNyZWF0ZSwgZGVwcyk7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUxheW91dEVmZmVjdChjcmVhdGUsIGRlcHMpIHtcbiAgcmV0dXJuIHVwZGF0ZUVmZmVjdEltcGwoVXBkYXRlLCBMYXlvdXQsIGNyZWF0ZSwgZGVwcyk7XG59XG5cbmZ1bmN0aW9uIGltcGVyYXRpdmVIYW5kbGVFZmZlY3QoY3JlYXRlLCByZWYpIHtcbiAgaWYgKHR5cGVvZiByZWYgPT09ICdmdW5jdGlvbicpIHtcbiAgICB2YXIgcmVmQ2FsbGJhY2sgPSByZWY7XG5cbiAgICB2YXIgX2luc3QgPSBjcmVhdGUoKTtcblxuICAgIHJlZkNhbGxiYWNrKF9pbnN0KTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgcmVmQ2FsbGJhY2sobnVsbCk7XG4gICAgfTtcbiAgfSBlbHNlIGlmIChyZWYgIT09IG51bGwgJiYgcmVmICE9PSB1bmRlZmluZWQpIHtcbiAgICB2YXIgcmVmT2JqZWN0ID0gcmVmO1xuXG4gICAge1xuICAgICAgaWYgKCFyZWZPYmplY3QuaGFzT3duUHJvcGVydHkoJ2N1cnJlbnQnKSkge1xuICAgICAgICBlcnJvcignRXhwZWN0ZWQgdXNlSW1wZXJhdGl2ZUhhbmRsZSgpIGZpcnN0IGFyZ3VtZW50IHRvIGVpdGhlciBiZSBhICcgKyAncmVmIGNhbGxiYWNrIG9yIFJlYWN0LmNyZWF0ZVJlZigpIG9iamVjdC4gSW5zdGVhZCByZWNlaXZlZDogJXMuJywgJ2FuIG9iamVjdCB3aXRoIGtleXMgeycgKyBPYmplY3Qua2V5cyhyZWZPYmplY3QpLmpvaW4oJywgJykgKyAnfScpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBfaW5zdDIgPSBjcmVhdGUoKTtcblxuICAgIHJlZk9iamVjdC5jdXJyZW50ID0gX2luc3QyO1xuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICByZWZPYmplY3QuY3VycmVudCA9IG51bGw7XG4gICAgfTtcbiAgfVxufVxuXG5mdW5jdGlvbiBtb3VudEltcGVyYXRpdmVIYW5kbGUocmVmLCBjcmVhdGUsIGRlcHMpIHtcbiAge1xuICAgIGlmICh0eXBlb2YgY3JlYXRlICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICBlcnJvcignRXhwZWN0ZWQgdXNlSW1wZXJhdGl2ZUhhbmRsZSgpIHNlY29uZCBhcmd1bWVudCB0byBiZSBhIGZ1bmN0aW9uICcgKyAndGhhdCBjcmVhdGVzIGEgaGFuZGxlLiBJbnN0ZWFkIHJlY2VpdmVkOiAlcy4nLCBjcmVhdGUgIT09IG51bGwgPyB0eXBlb2YgY3JlYXRlIDogJ251bGwnKTtcbiAgICB9XG4gIH0gLy8gVE9ETzogSWYgZGVwcyBhcmUgcHJvdmlkZWQsIHNob3VsZCB3ZSBza2lwIGNvbXBhcmluZyB0aGUgcmVmIGl0c2VsZj9cblxuXG4gIHZhciBlZmZlY3REZXBzID0gZGVwcyAhPT0gbnVsbCAmJiBkZXBzICE9PSB1bmRlZmluZWQgPyBkZXBzLmNvbmNhdChbcmVmXSkgOiBudWxsO1xuICByZXR1cm4gbW91bnRFZmZlY3RJbXBsKFVwZGF0ZSwgTGF5b3V0LCBpbXBlcmF0aXZlSGFuZGxlRWZmZWN0LmJpbmQobnVsbCwgY3JlYXRlLCByZWYpLCBlZmZlY3REZXBzKTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlSW1wZXJhdGl2ZUhhbmRsZShyZWYsIGNyZWF0ZSwgZGVwcykge1xuICB7XG4gICAgaWYgKHR5cGVvZiBjcmVhdGUgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGVycm9yKCdFeHBlY3RlZCB1c2VJbXBlcmF0aXZlSGFuZGxlKCkgc2Vjb25kIGFyZ3VtZW50IHRvIGJlIGEgZnVuY3Rpb24gJyArICd0aGF0IGNyZWF0ZXMgYSBoYW5kbGUuIEluc3RlYWQgcmVjZWl2ZWQ6ICVzLicsIGNyZWF0ZSAhPT0gbnVsbCA/IHR5cGVvZiBjcmVhdGUgOiAnbnVsbCcpO1xuICAgIH1cbiAgfSAvLyBUT0RPOiBJZiBkZXBzIGFyZSBwcm92aWRlZCwgc2hvdWxkIHdlIHNraXAgY29tcGFyaW5nIHRoZSByZWYgaXRzZWxmP1xuXG5cbiAgdmFyIGVmZmVjdERlcHMgPSBkZXBzICE9PSBudWxsICYmIGRlcHMgIT09IHVuZGVmaW5lZCA/IGRlcHMuY29uY2F0KFtyZWZdKSA6IG51bGw7XG4gIHJldHVybiB1cGRhdGVFZmZlY3RJbXBsKFVwZGF0ZSwgTGF5b3V0LCBpbXBlcmF0aXZlSGFuZGxlRWZmZWN0LmJpbmQobnVsbCwgY3JlYXRlLCByZWYpLCBlZmZlY3REZXBzKTtcbn1cblxuZnVuY3Rpb24gbW91bnREZWJ1Z1ZhbHVlKHZhbHVlLCBmb3JtYXR0ZXJGbikgey8vIFRoaXMgaG9vayBpcyBub3JtYWxseSBhIG5vLW9wLlxuICAvLyBUaGUgcmVhY3QtZGVidWctaG9va3MgcGFja2FnZSBpbmplY3RzIGl0cyBvd24gaW1wbGVtZW50YXRpb25cbiAgLy8gc28gdGhhdCBlLmcuIERldlRvb2xzIGNhbiBkaXNwbGF5IGN1c3RvbSBob29rIHZhbHVlcy5cbn1cblxudmFyIHVwZGF0ZURlYnVnVmFsdWUgPSBtb3VudERlYnVnVmFsdWU7XG5cbmZ1bmN0aW9uIG1vdW50Q2FsbGJhY2soY2FsbGJhY2ssIGRlcHMpIHtcbiAgdmFyIGhvb2sgPSBtb3VudFdvcmtJblByb2dyZXNzSG9vaygpO1xuICB2YXIgbmV4dERlcHMgPSBkZXBzID09PSB1bmRlZmluZWQgPyBudWxsIDogZGVwcztcbiAgaG9vay5tZW1vaXplZFN0YXRlID0gW2NhbGxiYWNrLCBuZXh0RGVwc107XG4gIHJldHVybiBjYWxsYmFjaztcbn1cblxuZnVuY3Rpb24gdXBkYXRlQ2FsbGJhY2soY2FsbGJhY2ssIGRlcHMpIHtcbiAgdmFyIGhvb2sgPSB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKTtcbiAgdmFyIG5leHREZXBzID0gZGVwcyA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGRlcHM7XG4gIHZhciBwcmV2U3RhdGUgPSBob29rLm1lbW9pemVkU3RhdGU7XG5cbiAgaWYgKHByZXZTdGF0ZSAhPT0gbnVsbCkge1xuICAgIGlmIChuZXh0RGVwcyAhPT0gbnVsbCkge1xuICAgICAgdmFyIHByZXZEZXBzID0gcHJldlN0YXRlWzFdO1xuXG4gICAgICBpZiAoYXJlSG9va0lucHV0c0VxdWFsKG5leHREZXBzLCBwcmV2RGVwcykpIHtcbiAgICAgICAgcmV0dXJuIHByZXZTdGF0ZVswXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBob29rLm1lbW9pemVkU3RhdGUgPSBbY2FsbGJhY2ssIG5leHREZXBzXTtcbiAgcmV0dXJuIGNhbGxiYWNrO1xufVxuXG5mdW5jdGlvbiBtb3VudE1lbW8obmV4dENyZWF0ZSwgZGVwcykge1xuICB2YXIgaG9vayA9IG1vdW50V29ya0luUHJvZ3Jlc3NIb29rKCk7XG4gIHZhciBuZXh0RGVwcyA9IGRlcHMgPT09IHVuZGVmaW5lZCA/IG51bGwgOiBkZXBzO1xuICB2YXIgbmV4dFZhbHVlID0gbmV4dENyZWF0ZSgpO1xuICBob29rLm1lbW9pemVkU3RhdGUgPSBbbmV4dFZhbHVlLCBuZXh0RGVwc107XG4gIHJldHVybiBuZXh0VmFsdWU7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZU1lbW8obmV4dENyZWF0ZSwgZGVwcykge1xuICB2YXIgaG9vayA9IHVwZGF0ZVdvcmtJblByb2dyZXNzSG9vaygpO1xuICB2YXIgbmV4dERlcHMgPSBkZXBzID09PSB1bmRlZmluZWQgPyBudWxsIDogZGVwcztcbiAgdmFyIHByZXZTdGF0ZSA9IGhvb2subWVtb2l6ZWRTdGF0ZTtcblxuICBpZiAocHJldlN0YXRlICE9PSBudWxsKSB7XG4gICAgLy8gQXNzdW1lIHRoZXNlIGFyZSBkZWZpbmVkLiBJZiB0aGV5J3JlIG5vdCwgYXJlSG9va0lucHV0c0VxdWFsIHdpbGwgd2Fybi5cbiAgICBpZiAobmV4dERlcHMgIT09IG51bGwpIHtcbiAgICAgIHZhciBwcmV2RGVwcyA9IHByZXZTdGF0ZVsxXTtcblxuICAgICAgaWYgKGFyZUhvb2tJbnB1dHNFcXVhbChuZXh0RGVwcywgcHJldkRlcHMpKSB7XG4gICAgICAgIHJldHVybiBwcmV2U3RhdGVbMF07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdmFyIG5leHRWYWx1ZSA9IG5leHRDcmVhdGUoKTtcbiAgaG9vay5tZW1vaXplZFN0YXRlID0gW25leHRWYWx1ZSwgbmV4dERlcHNdO1xuICByZXR1cm4gbmV4dFZhbHVlO1xufVxuXG5mdW5jdGlvbiBtb3VudERlZmVycmVkVmFsdWUodmFsdWUpIHtcbiAgdmFyIF9tb3VudFN0YXRlID0gbW91bnRTdGF0ZSh2YWx1ZSksXG4gICAgICBwcmV2VmFsdWUgPSBfbW91bnRTdGF0ZVswXSxcbiAgICAgIHNldFZhbHVlID0gX21vdW50U3RhdGVbMV07XG5cbiAgbW91bnRFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIHZhciBwcmV2VHJhbnNpdGlvbiA9IFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnJDEudHJhbnNpdGlvbjtcbiAgICBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZyQxLnRyYW5zaXRpb24gPSAxO1xuXG4gICAgdHJ5IHtcbiAgICAgIHNldFZhbHVlKHZhbHVlKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgUmVhY3RDdXJyZW50QmF0Y2hDb25maWckMS50cmFuc2l0aW9uID0gcHJldlRyYW5zaXRpb247XG4gICAgfVxuICB9LCBbdmFsdWVdKTtcbiAgcmV0dXJuIHByZXZWYWx1ZTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlRGVmZXJyZWRWYWx1ZSh2YWx1ZSkge1xuICB2YXIgX3VwZGF0ZVN0YXRlID0gdXBkYXRlU3RhdGUoKSxcbiAgICAgIHByZXZWYWx1ZSA9IF91cGRhdGVTdGF0ZVswXSxcbiAgICAgIHNldFZhbHVlID0gX3VwZGF0ZVN0YXRlWzFdO1xuXG4gIHVwZGF0ZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHByZXZUcmFuc2l0aW9uID0gUmVhY3RDdXJyZW50QmF0Y2hDb25maWckMS50cmFuc2l0aW9uO1xuICAgIFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnJDEudHJhbnNpdGlvbiA9IDE7XG5cbiAgICB0cnkge1xuICAgICAgc2V0VmFsdWUodmFsdWUpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZyQxLnRyYW5zaXRpb24gPSBwcmV2VHJhbnNpdGlvbjtcbiAgICB9XG4gIH0sIFt2YWx1ZV0pO1xuICByZXR1cm4gcHJldlZhbHVlO1xufVxuXG5mdW5jdGlvbiByZXJlbmRlckRlZmVycmVkVmFsdWUodmFsdWUpIHtcbiAgdmFyIF9yZXJlbmRlclN0YXRlID0gcmVyZW5kZXJTdGF0ZSgpLFxuICAgICAgcHJldlZhbHVlID0gX3JlcmVuZGVyU3RhdGVbMF0sXG4gICAgICBzZXRWYWx1ZSA9IF9yZXJlbmRlclN0YXRlWzFdO1xuXG4gIHVwZGF0ZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHByZXZUcmFuc2l0aW9uID0gUmVhY3RDdXJyZW50QmF0Y2hDb25maWckMS50cmFuc2l0aW9uO1xuICAgIFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnJDEudHJhbnNpdGlvbiA9IDE7XG5cbiAgICB0cnkge1xuICAgICAgc2V0VmFsdWUodmFsdWUpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZyQxLnRyYW5zaXRpb24gPSBwcmV2VHJhbnNpdGlvbjtcbiAgICB9XG4gIH0sIFt2YWx1ZV0pO1xuICByZXR1cm4gcHJldlZhbHVlO1xufVxuXG5mdW5jdGlvbiBzdGFydFRyYW5zaXRpb24oc2V0UGVuZGluZywgY2FsbGJhY2spIHtcbiAgdmFyIHByaW9yaXR5TGV2ZWwgPSBnZXRDdXJyZW50UHJpb3JpdHlMZXZlbCgpO1xuXG4gIHtcbiAgICBydW5XaXRoUHJpb3JpdHkkMShwcmlvcml0eUxldmVsIDwgVXNlckJsb2NraW5nUHJpb3JpdHkkMiA/IFVzZXJCbG9ja2luZ1ByaW9yaXR5JDIgOiBwcmlvcml0eUxldmVsLCBmdW5jdGlvbiAoKSB7XG4gICAgICBzZXRQZW5kaW5nKHRydWUpO1xuICAgIH0pO1xuICAgIHJ1bldpdGhQcmlvcml0eSQxKHByaW9yaXR5TGV2ZWwgPiBOb3JtYWxQcmlvcml0eSQxID8gTm9ybWFsUHJpb3JpdHkkMSA6IHByaW9yaXR5TGV2ZWwsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBwcmV2VHJhbnNpdGlvbiA9IFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnJDEudHJhbnNpdGlvbjtcbiAgICAgIFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnJDEudHJhbnNpdGlvbiA9IDE7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHNldFBlbmRpbmcoZmFsc2UpO1xuICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgUmVhY3RDdXJyZW50QmF0Y2hDb25maWckMS50cmFuc2l0aW9uID0gcHJldlRyYW5zaXRpb247XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gbW91bnRUcmFuc2l0aW9uKCkge1xuICB2YXIgX21vdW50U3RhdGUyID0gbW91bnRTdGF0ZShmYWxzZSksXG4gICAgICBpc1BlbmRpbmcgPSBfbW91bnRTdGF0ZTJbMF0sXG4gICAgICBzZXRQZW5kaW5nID0gX21vdW50U3RhdGUyWzFdOyAvLyBUaGUgYHN0YXJ0YCBtZXRob2QgY2FuIGJlIHN0b3JlZCBvbiBhIHJlZiwgc2luY2UgYHNldFBlbmRpbmdgXG4gIC8vIG5ldmVyIGNoYW5nZXMuXG5cblxuICB2YXIgc3RhcnQgPSBzdGFydFRyYW5zaXRpb24uYmluZChudWxsLCBzZXRQZW5kaW5nKTtcbiAgbW91bnRSZWYoc3RhcnQpO1xuICByZXR1cm4gW3N0YXJ0LCBpc1BlbmRpbmddO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVUcmFuc2l0aW9uKCkge1xuICB2YXIgX3VwZGF0ZVN0YXRlMiA9IHVwZGF0ZVN0YXRlKCksXG4gICAgICBpc1BlbmRpbmcgPSBfdXBkYXRlU3RhdGUyWzBdO1xuXG4gIHZhciBzdGFydFJlZiA9IHVwZGF0ZVJlZigpO1xuICB2YXIgc3RhcnQgPSBzdGFydFJlZi5jdXJyZW50O1xuICByZXR1cm4gW3N0YXJ0LCBpc1BlbmRpbmddO1xufVxuXG5mdW5jdGlvbiByZXJlbmRlclRyYW5zaXRpb24oKSB7XG4gIHZhciBfcmVyZW5kZXJTdGF0ZTIgPSByZXJlbmRlclN0YXRlKCksXG4gICAgICBpc1BlbmRpbmcgPSBfcmVyZW5kZXJTdGF0ZTJbMF07XG5cbiAgdmFyIHN0YXJ0UmVmID0gdXBkYXRlUmVmKCk7XG4gIHZhciBzdGFydCA9IHN0YXJ0UmVmLmN1cnJlbnQ7XG4gIHJldHVybiBbc3RhcnQsIGlzUGVuZGluZ107XG59XG5cbnZhciBpc1VwZGF0aW5nT3BhcXVlVmFsdWVJblJlbmRlclBoYXNlID0gZmFsc2U7XG5mdW5jdGlvbiBnZXRJc1VwZGF0aW5nT3BhcXVlVmFsdWVJblJlbmRlclBoYXNlSW5ERVYoKSB7XG4gIHtcbiAgICByZXR1cm4gaXNVcGRhdGluZ09wYXF1ZVZhbHVlSW5SZW5kZXJQaGFzZTtcbiAgfVxufVxuXG5mdW5jdGlvbiB3YXJuT25PcGFxdWVJZGVudGlmaWVyQWNjZXNzSW5ERVYoZmliZXIpIHtcbiAge1xuICAgIC8vIFRPRE86IFNob3VsZCB3YXJuIGluIGVmZmVjdHMgYW5kIGNhbGxiYWNrcywgdG9vXG4gICAgdmFyIG5hbWUgPSBnZXRDb21wb25lbnROYW1lKGZpYmVyLnR5cGUpIHx8ICdVbmtub3duJztcblxuICAgIGlmIChnZXRJc1JlbmRlcmluZygpICYmICFkaWRXYXJuQWJvdXRVc2VPcGFxdWVJZGVudGlmaWVyW25hbWVdKSB7XG4gICAgICBlcnJvcignVGhlIG9iamVjdCBwYXNzZWQgYmFjayBmcm9tIHVzZU9wYXF1ZUlkZW50aWZpZXIgaXMgbWVhbnQgdG8gYmUgJyArICdwYXNzZWQgdGhyb3VnaCB0byBhdHRyaWJ1dGVzIG9ubHkuIERvIG5vdCByZWFkIHRoZSAnICsgJ3ZhbHVlIGRpcmVjdGx5LicpO1xuXG4gICAgICBkaWRXYXJuQWJvdXRVc2VPcGFxdWVJZGVudGlmaWVyW25hbWVdID0gdHJ1ZTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gbW91bnRPcGFxdWVJZGVudGlmaWVyKCkge1xuICB2YXIgbWFrZUlkID0gIG1ha2VDbGllbnRJZEluREVWLmJpbmQobnVsbCwgd2Fybk9uT3BhcXVlSWRlbnRpZmllckFjY2Vzc0luREVWLmJpbmQobnVsbCwgY3VycmVudGx5UmVuZGVyaW5nRmliZXIkMSkpIDtcblxuICBpZiAoZ2V0SXNIeWRyYXRpbmcoKSkge1xuICAgIHZhciBkaWRVcGdyYWRlID0gZmFsc2U7XG4gICAgdmFyIGZpYmVyID0gY3VycmVudGx5UmVuZGVyaW5nRmliZXIkMTtcblxuICAgIHZhciByZWFkVmFsdWUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAoIWRpZFVwZ3JhZGUpIHtcbiAgICAgICAgLy8gT25seSB1cGdyYWRlIG9uY2UuIFRoaXMgd29ya3MgZXZlbiBpbnNpZGUgdGhlIHJlbmRlciBwaGFzZSBiZWNhdXNlXG4gICAgICAgIC8vIHRoZSB1cGRhdGUgaXMgYWRkZWQgdG8gYSBzaGFyZWQgcXVldWUsIHdoaWNoIG91dGxhc3RzIHRoZVxuICAgICAgICAvLyBpbi1wcm9ncmVzcyByZW5kZXIuXG4gICAgICAgIGRpZFVwZ3JhZGUgPSB0cnVlO1xuXG4gICAgICAgIHtcbiAgICAgICAgICBpc1VwZGF0aW5nT3BhcXVlVmFsdWVJblJlbmRlclBoYXNlID0gdHJ1ZTtcbiAgICAgICAgICBzZXRJZChtYWtlSWQoKSk7XG4gICAgICAgICAgaXNVcGRhdGluZ09wYXF1ZVZhbHVlSW5SZW5kZXJQaGFzZSA9IGZhbHNlO1xuICAgICAgICAgIHdhcm5Pbk9wYXF1ZUlkZW50aWZpZXJBY2Nlc3NJbkRFVihmaWJlcik7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAge1xuICAgICAgICB7XG4gICAgICAgICAgdGhyb3cgRXJyb3IoIFwiVGhlIG9iamVjdCBwYXNzZWQgYmFjayBmcm9tIHVzZU9wYXF1ZUlkZW50aWZpZXIgaXMgbWVhbnQgdG8gYmUgcGFzc2VkIHRocm91Z2ggdG8gYXR0cmlidXRlcyBvbmx5LiBEbyBub3QgcmVhZCB0aGUgdmFsdWUgZGlyZWN0bHkuXCIgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG5cbiAgICB2YXIgaWQgPSBtYWtlT3BhcXVlSHlkcmF0aW5nT2JqZWN0KHJlYWRWYWx1ZSk7XG4gICAgdmFyIHNldElkID0gbW91bnRTdGF0ZShpZClbMV07XG5cbiAgICBpZiAoKGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyJDEubW9kZSAmIEJsb2NraW5nTW9kZSkgPT09IE5vTW9kZSkge1xuICAgICAgY3VycmVudGx5UmVuZGVyaW5nRmliZXIkMS5mbGFncyB8PSBVcGRhdGUgfCBQYXNzaXZlO1xuICAgICAgcHVzaEVmZmVjdChIYXNFZmZlY3QgfCBQYXNzaXZlJDEsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgc2V0SWQobWFrZUlkKCkpO1xuICAgICAgfSwgdW5kZWZpbmVkLCBudWxsKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaWQ7XG4gIH0gZWxzZSB7XG4gICAgdmFyIF9pZCA9IG1ha2VJZCgpO1xuXG4gICAgbW91bnRTdGF0ZShfaWQpO1xuICAgIHJldHVybiBfaWQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gdXBkYXRlT3BhcXVlSWRlbnRpZmllcigpIHtcbiAgdmFyIGlkID0gdXBkYXRlU3RhdGUoKVswXTtcbiAgcmV0dXJuIGlkO1xufVxuXG5mdW5jdGlvbiByZXJlbmRlck9wYXF1ZUlkZW50aWZpZXIoKSB7XG4gIHZhciBpZCA9IHJlcmVuZGVyU3RhdGUoKVswXTtcbiAgcmV0dXJuIGlkO1xufVxuXG5mdW5jdGlvbiBkaXNwYXRjaEFjdGlvbihmaWJlciwgcXVldWUsIGFjdGlvbikge1xuICB7XG4gICAgaWYgKHR5cGVvZiBhcmd1bWVudHNbM10gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGVycm9yKFwiU3RhdGUgdXBkYXRlcyBmcm9tIHRoZSB1c2VTdGF0ZSgpIGFuZCB1c2VSZWR1Y2VyKCkgSG9va3MgZG9uJ3Qgc3VwcG9ydCB0aGUgXCIgKyAnc2Vjb25kIGNhbGxiYWNrIGFyZ3VtZW50LiBUbyBleGVjdXRlIGEgc2lkZSBlZmZlY3QgYWZ0ZXIgJyArICdyZW5kZXJpbmcsIGRlY2xhcmUgaXQgaW4gdGhlIGNvbXBvbmVudCBib2R5IHdpdGggdXNlRWZmZWN0KCkuJyk7XG4gICAgfVxuICB9XG5cbiAgdmFyIGV2ZW50VGltZSA9IHJlcXVlc3RFdmVudFRpbWUoKTtcbiAgdmFyIGxhbmUgPSByZXF1ZXN0VXBkYXRlTGFuZShmaWJlcik7XG4gIHZhciB1cGRhdGUgPSB7XG4gICAgbGFuZTogbGFuZSxcbiAgICBhY3Rpb246IGFjdGlvbixcbiAgICBlYWdlclJlZHVjZXI6IG51bGwsXG4gICAgZWFnZXJTdGF0ZTogbnVsbCxcbiAgICBuZXh0OiBudWxsXG4gIH07IC8vIEFwcGVuZCB0aGUgdXBkYXRlIHRvIHRoZSBlbmQgb2YgdGhlIGxpc3QuXG5cbiAgdmFyIHBlbmRpbmcgPSBxdWV1ZS5wZW5kaW5nO1xuXG4gIGlmIChwZW5kaW5nID09PSBudWxsKSB7XG4gICAgLy8gVGhpcyBpcyB0aGUgZmlyc3QgdXBkYXRlLiBDcmVhdGUgYSBjaXJjdWxhciBsaXN0LlxuICAgIHVwZGF0ZS5uZXh0ID0gdXBkYXRlO1xuICB9IGVsc2Uge1xuICAgIHVwZGF0ZS5uZXh0ID0gcGVuZGluZy5uZXh0O1xuICAgIHBlbmRpbmcubmV4dCA9IHVwZGF0ZTtcbiAgfVxuXG4gIHF1ZXVlLnBlbmRpbmcgPSB1cGRhdGU7XG4gIHZhciBhbHRlcm5hdGUgPSBmaWJlci5hbHRlcm5hdGU7XG5cbiAgaWYgKGZpYmVyID09PSBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxIHx8IGFsdGVybmF0ZSAhPT0gbnVsbCAmJiBhbHRlcm5hdGUgPT09IGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyJDEpIHtcbiAgICAvLyBUaGlzIGlzIGEgcmVuZGVyIHBoYXNlIHVwZGF0ZS4gU3Rhc2ggaXQgaW4gYSBsYXppbHktY3JlYXRlZCBtYXAgb2ZcbiAgICAvLyBxdWV1ZSAtPiBsaW5rZWQgbGlzdCBvZiB1cGRhdGVzLiBBZnRlciB0aGlzIHJlbmRlciBwYXNzLCB3ZSdsbCByZXN0YXJ0XG4gICAgLy8gYW5kIGFwcGx5IHRoZSBzdGFzaGVkIHVwZGF0ZXMgb24gdG9wIG9mIHRoZSB3b3JrLWluLXByb2dyZXNzIGhvb2suXG4gICAgZGlkU2NoZWR1bGVSZW5kZXJQaGFzZVVwZGF0ZUR1cmluZ1RoaXNQYXNzID0gZGlkU2NoZWR1bGVSZW5kZXJQaGFzZVVwZGF0ZSA9IHRydWU7XG4gIH0gZWxzZSB7XG4gICAgaWYgKGZpYmVyLmxhbmVzID09PSBOb0xhbmVzICYmIChhbHRlcm5hdGUgPT09IG51bGwgfHwgYWx0ZXJuYXRlLmxhbmVzID09PSBOb0xhbmVzKSkge1xuICAgICAgLy8gVGhlIHF1ZXVlIGlzIGN1cnJlbnRseSBlbXB0eSwgd2hpY2ggbWVhbnMgd2UgY2FuIGVhZ2VybHkgY29tcHV0ZSB0aGVcbiAgICAgIC8vIG5leHQgc3RhdGUgYmVmb3JlIGVudGVyaW5nIHRoZSByZW5kZXIgcGhhc2UuIElmIHRoZSBuZXcgc3RhdGUgaXMgdGhlXG4gICAgICAvLyBzYW1lIGFzIHRoZSBjdXJyZW50IHN0YXRlLCB3ZSBtYXkgYmUgYWJsZSB0byBiYWlsIG91dCBlbnRpcmVseS5cbiAgICAgIHZhciBsYXN0UmVuZGVyZWRSZWR1Y2VyID0gcXVldWUubGFzdFJlbmRlcmVkUmVkdWNlcjtcblxuICAgICAgaWYgKGxhc3RSZW5kZXJlZFJlZHVjZXIgIT09IG51bGwpIHtcbiAgICAgICAgdmFyIHByZXZEaXNwYXRjaGVyO1xuXG4gICAgICAgIHtcbiAgICAgICAgICBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50O1xuICAgICAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uVXBkYXRlSW5ERVY7XG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgIHZhciBjdXJyZW50U3RhdGUgPSBxdWV1ZS5sYXN0UmVuZGVyZWRTdGF0ZTtcbiAgICAgICAgICB2YXIgZWFnZXJTdGF0ZSA9IGxhc3RSZW5kZXJlZFJlZHVjZXIoY3VycmVudFN0YXRlLCBhY3Rpb24pOyAvLyBTdGFzaCB0aGUgZWFnZXJseSBjb21wdXRlZCBzdGF0ZSwgYW5kIHRoZSByZWR1Y2VyIHVzZWQgdG8gY29tcHV0ZVxuICAgICAgICAgIC8vIGl0LCBvbiB0aGUgdXBkYXRlIG9iamVjdC4gSWYgdGhlIHJlZHVjZXIgaGFzbid0IGNoYW5nZWQgYnkgdGhlXG4gICAgICAgICAgLy8gdGltZSB3ZSBlbnRlciB0aGUgcmVuZGVyIHBoYXNlLCB0aGVuIHRoZSBlYWdlciBzdGF0ZSBjYW4gYmUgdXNlZFxuICAgICAgICAgIC8vIHdpdGhvdXQgY2FsbGluZyB0aGUgcmVkdWNlciBhZ2Fpbi5cblxuICAgICAgICAgIHVwZGF0ZS5lYWdlclJlZHVjZXIgPSBsYXN0UmVuZGVyZWRSZWR1Y2VyO1xuICAgICAgICAgIHVwZGF0ZS5lYWdlclN0YXRlID0gZWFnZXJTdGF0ZTtcblxuICAgICAgICAgIGlmIChvYmplY3RJcyhlYWdlclN0YXRlLCBjdXJyZW50U3RhdGUpKSB7XG4gICAgICAgICAgICAvLyBGYXN0IHBhdGguIFdlIGNhbiBiYWlsIG91dCB3aXRob3V0IHNjaGVkdWxpbmcgUmVhY3QgdG8gcmUtcmVuZGVyLlxuICAgICAgICAgICAgLy8gSXQncyBzdGlsbCBwb3NzaWJsZSB0aGF0IHdlJ2xsIG5lZWQgdG8gcmViYXNlIHRoaXMgdXBkYXRlIGxhdGVyLFxuICAgICAgICAgICAgLy8gaWYgdGhlIGNvbXBvbmVudCByZS1yZW5kZXJzIGZvciBhIGRpZmZlcmVudCByZWFzb24gYW5kIGJ5IHRoYXRcbiAgICAgICAgICAgIC8vIHRpbWUgdGhlIHJlZHVjZXIgaGFzIGNoYW5nZWQuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnJvcikgey8vIFN1cHByZXNzIHRoZSBlcnJvci4gSXQgd2lsbCB0aHJvdyBhZ2FpbiBpbiB0aGUgcmVuZGVyIHBoYXNlLlxuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAge1xuICAgICAgLy8gJEZsb3dFeHBlY3RlZEVycm9yIC0gamVzdCBpc24ndCBhIGdsb2JhbCwgYW5kIGlzbid0IHJlY29nbml6ZWQgb3V0c2lkZSBvZiB0ZXN0c1xuICAgICAgaWYgKCd1bmRlZmluZWQnICE9PSB0eXBlb2YgamVzdCkge1xuICAgICAgICB3YXJuSWZOb3RTY29wZWRXaXRoTWF0Y2hpbmdBY3QoZmliZXIpO1xuICAgICAgICB3YXJuSWZOb3RDdXJyZW50bHlBY3RpbmdVcGRhdGVzSW5EZXYoZmliZXIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHNjaGVkdWxlVXBkYXRlT25GaWJlcihmaWJlciwgbGFuZSwgZXZlbnRUaW1lKTtcbiAgfVxufVxuXG52YXIgQ29udGV4dE9ubHlEaXNwYXRjaGVyID0ge1xuICByZWFkQ29udGV4dDogcmVhZENvbnRleHQsXG4gIHVzZUNhbGxiYWNrOiB0aHJvd0ludmFsaWRIb29rRXJyb3IsXG4gIHVzZUNvbnRleHQ6IHRocm93SW52YWxpZEhvb2tFcnJvcixcbiAgdXNlRWZmZWN0OiB0aHJvd0ludmFsaWRIb29rRXJyb3IsXG4gIHVzZUltcGVyYXRpdmVIYW5kbGU6IHRocm93SW52YWxpZEhvb2tFcnJvcixcbiAgdXNlTGF5b3V0RWZmZWN0OiB0aHJvd0ludmFsaWRIb29rRXJyb3IsXG4gIHVzZU1lbW86IHRocm93SW52YWxpZEhvb2tFcnJvcixcbiAgdXNlUmVkdWNlcjogdGhyb3dJbnZhbGlkSG9va0Vycm9yLFxuICB1c2VSZWY6IHRocm93SW52YWxpZEhvb2tFcnJvcixcbiAgdXNlU3RhdGU6IHRocm93SW52YWxpZEhvb2tFcnJvcixcbiAgdXNlRGVidWdWYWx1ZTogdGhyb3dJbnZhbGlkSG9va0Vycm9yLFxuICB1c2VEZWZlcnJlZFZhbHVlOiB0aHJvd0ludmFsaWRIb29rRXJyb3IsXG4gIHVzZVRyYW5zaXRpb246IHRocm93SW52YWxpZEhvb2tFcnJvcixcbiAgdXNlTXV0YWJsZVNvdXJjZTogdGhyb3dJbnZhbGlkSG9va0Vycm9yLFxuICB1c2VPcGFxdWVJZGVudGlmaWVyOiB0aHJvd0ludmFsaWRIb29rRXJyb3IsXG4gIHVuc3RhYmxlX2lzTmV3UmVjb25jaWxlcjogZW5hYmxlTmV3UmVjb25jaWxlclxufTtcbnZhciBIb29rc0Rpc3BhdGNoZXJPbk1vdW50SW5ERVYgPSBudWxsO1xudmFyIEhvb2tzRGlzcGF0Y2hlck9uTW91bnRXaXRoSG9va1R5cGVzSW5ERVYgPSBudWxsO1xudmFyIEhvb2tzRGlzcGF0Y2hlck9uVXBkYXRlSW5ERVYgPSBudWxsO1xudmFyIEhvb2tzRGlzcGF0Y2hlck9uUmVyZW5kZXJJbkRFViA9IG51bGw7XG52YXIgSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uTW91bnRJbkRFViA9IG51bGw7XG52YXIgSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uVXBkYXRlSW5ERVYgPSBudWxsO1xudmFyIEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPblJlcmVuZGVySW5ERVYgPSBudWxsO1xuXG57XG4gIHZhciB3YXJuSW52YWxpZENvbnRleHRBY2Nlc3MgPSBmdW5jdGlvbiAoKSB7XG4gICAgZXJyb3IoJ0NvbnRleHQgY2FuIG9ubHkgYmUgcmVhZCB3aGlsZSBSZWFjdCBpcyByZW5kZXJpbmcuICcgKyAnSW4gY2xhc3NlcywgeW91IGNhbiByZWFkIGl0IGluIHRoZSByZW5kZXIgbWV0aG9kIG9yIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcy4gJyArICdJbiBmdW5jdGlvbiBjb21wb25lbnRzLCB5b3UgY2FuIHJlYWQgaXQgZGlyZWN0bHkgaW4gdGhlIGZ1bmN0aW9uIGJvZHksIGJ1dCBub3QgJyArICdpbnNpZGUgSG9va3MgbGlrZSB1c2VSZWR1Y2VyKCkgb3IgdXNlTWVtbygpLicpO1xuICB9O1xuXG4gIHZhciB3YXJuSW52YWxpZEhvb2tBY2Nlc3MgPSBmdW5jdGlvbiAoKSB7XG4gICAgZXJyb3IoJ0RvIG5vdCBjYWxsIEhvb2tzIGluc2lkZSB1c2VFZmZlY3QoLi4uKSwgdXNlTWVtbyguLi4pLCBvciBvdGhlciBidWlsdC1pbiBIb29rcy4gJyArICdZb3UgY2FuIG9ubHkgY2FsbCBIb29rcyBhdCB0aGUgdG9wIGxldmVsIG9mIHlvdXIgUmVhY3QgZnVuY3Rpb24uICcgKyAnRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSAnICsgJ2h0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9ydWxlcy1vZi1ob29rcycpO1xuICB9O1xuXG4gIEhvb2tzRGlzcGF0Y2hlck9uTW91bnRJbkRFViA9IHtcbiAgICByZWFkQ29udGV4dDogZnVuY3Rpb24gKGNvbnRleHQsIG9ic2VydmVkQml0cykge1xuICAgICAgcmV0dXJuIHJlYWRDb250ZXh0KGNvbnRleHQsIG9ic2VydmVkQml0cyk7XG4gICAgfSxcbiAgICB1c2VDYWxsYmFjazogZnVuY3Rpb24gKGNhbGxiYWNrLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VDYWxsYmFjayc7XG4gICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgY2hlY2tEZXBzQXJlQXJyYXlEZXYoZGVwcyk7XG4gICAgICByZXR1cm4gbW91bnRDYWxsYmFjayhjYWxsYmFjaywgZGVwcyk7XG4gICAgfSxcbiAgICB1c2VDb250ZXh0OiBmdW5jdGlvbiAoY29udGV4dCwgb2JzZXJ2ZWRCaXRzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VDb250ZXh0JztcbiAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gcmVhZENvbnRleHQoY29udGV4dCwgb2JzZXJ2ZWRCaXRzKTtcbiAgICB9LFxuICAgIHVzZUVmZmVjdDogZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlRWZmZWN0JztcbiAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICBjaGVja0RlcHNBcmVBcnJheURldihkZXBzKTtcbiAgICAgIHJldHVybiBtb3VudEVmZmVjdChjcmVhdGUsIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZTogZnVuY3Rpb24gKHJlZiwgY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VJbXBlcmF0aXZlSGFuZGxlJztcbiAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICBjaGVja0RlcHNBcmVBcnJheURldihkZXBzKTtcbiAgICAgIHJldHVybiBtb3VudEltcGVyYXRpdmVIYW5kbGUocmVmLCBjcmVhdGUsIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlTGF5b3V0RWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VMYXlvdXRFZmZlY3QnO1xuICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgIGNoZWNrRGVwc0FyZUFycmF5RGV2KGRlcHMpO1xuICAgICAgcmV0dXJuIG1vdW50TGF5b3V0RWZmZWN0KGNyZWF0ZSwgZGVwcyk7XG4gICAgfSxcbiAgICB1c2VNZW1vOiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VNZW1vJztcbiAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICBjaGVja0RlcHNBcmVBcnJheURldihkZXBzKTtcbiAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50O1xuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25Nb3VudEluREVWO1xuXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gbW91bnRNZW1vKGNyZWF0ZSwgZGVwcyk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IHByZXZEaXNwYXRjaGVyO1xuICAgICAgfVxuICAgIH0sXG4gICAgdXNlUmVkdWNlcjogZnVuY3Rpb24gKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZVJlZHVjZXInO1xuICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50O1xuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25Nb3VudEluREVWO1xuXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gbW91bnRSZWR1Y2VyKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgIH1cbiAgICB9LFxuICAgIHVzZVJlZjogZnVuY3Rpb24gKGluaXRpYWxWYWx1ZSkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlUmVmJztcbiAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnRSZWYoaW5pdGlhbFZhbHVlKTtcbiAgICB9LFxuICAgIHVzZVN0YXRlOiBmdW5jdGlvbiAoaW5pdGlhbFN0YXRlKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VTdGF0ZSc7XG4gICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQ7XG4gICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPbk1vdW50SW5ERVY7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBtb3VudFN0YXRlKGluaXRpYWxTdGF0ZSk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IHByZXZEaXNwYXRjaGVyO1xuICAgICAgfVxuICAgIH0sXG4gICAgdXNlRGVidWdWYWx1ZTogZnVuY3Rpb24gKHZhbHVlLCBmb3JtYXR0ZXJGbikge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlRGVidWdWYWx1ZSc7XG4gICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIG1vdW50RGVidWdWYWx1ZSgpO1xuICAgIH0sXG4gICAgdXNlRGVmZXJyZWRWYWx1ZTogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VEZWZlcnJlZFZhbHVlJztcbiAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnREZWZlcnJlZFZhbHVlKHZhbHVlKTtcbiAgICB9LFxuICAgIHVzZVRyYW5zaXRpb246IGZ1bmN0aW9uICgpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZVRyYW5zaXRpb24nO1xuICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiBtb3VudFRyYW5zaXRpb24oKTtcbiAgICB9LFxuICAgIHVzZU11dGFibGVTb3VyY2U6IGZ1bmN0aW9uIChzb3VyY2UsIGdldFNuYXBzaG90LCBzdWJzY3JpYmUpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZU11dGFibGVTb3VyY2UnO1xuICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiBtb3VudE11dGFibGVTb3VyY2Uoc291cmNlLCBnZXRTbmFwc2hvdCwgc3Vic2NyaWJlKTtcbiAgICB9LFxuICAgIHVzZU9wYXF1ZUlkZW50aWZpZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZU9wYXF1ZUlkZW50aWZpZXInO1xuICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiBtb3VudE9wYXF1ZUlkZW50aWZpZXIoKTtcbiAgICB9LFxuICAgIHVuc3RhYmxlX2lzTmV3UmVjb25jaWxlcjogZW5hYmxlTmV3UmVjb25jaWxlclxuICB9O1xuICBIb29rc0Rpc3BhdGNoZXJPbk1vdW50V2l0aEhvb2tUeXBlc0luREVWID0ge1xuICAgIHJlYWRDb250ZXh0OiBmdW5jdGlvbiAoY29udGV4dCwgb2JzZXJ2ZWRCaXRzKSB7XG4gICAgICByZXR1cm4gcmVhZENvbnRleHQoY29udGV4dCwgb2JzZXJ2ZWRCaXRzKTtcbiAgICB9LFxuICAgIHVzZUNhbGxiYWNrOiBmdW5jdGlvbiAoY2FsbGJhY2ssIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUNhbGxiYWNrJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIG1vdW50Q2FsbGJhY2soY2FsbGJhY2ssIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlQ29udGV4dDogZnVuY3Rpb24gKGNvbnRleHQsIG9ic2VydmVkQml0cykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlQ29udGV4dCc7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiByZWFkQ29udGV4dChjb250ZXh0LCBvYnNlcnZlZEJpdHMpO1xuICAgIH0sXG4gICAgdXNlRWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VFZmZlY3QnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnRFZmZlY3QoY3JlYXRlLCBkZXBzKTtcbiAgICB9LFxuICAgIHVzZUltcGVyYXRpdmVIYW5kbGU6IGZ1bmN0aW9uIChyZWYsIGNyZWF0ZSwgZGVwcykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlSW1wZXJhdGl2ZUhhbmRsZSc7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiBtb3VudEltcGVyYXRpdmVIYW5kbGUocmVmLCBjcmVhdGUsIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlTGF5b3V0RWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VMYXlvdXRFZmZlY3QnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnRMYXlvdXRFZmZlY3QoY3JlYXRlLCBkZXBzKTtcbiAgICB9LFxuICAgIHVzZU1lbW86IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZU1lbW8nO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudDtcbiAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uTW91bnRJbkRFVjtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIG1vdW50TWVtbyhjcmVhdGUsIGRlcHMpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgIH1cbiAgICB9LFxuICAgIHVzZVJlZHVjZXI6IGZ1bmN0aW9uIChyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VSZWR1Y2VyJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQ7XG4gICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPbk1vdW50SW5ERVY7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBtb3VudFJlZHVjZXIocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IHByZXZEaXNwYXRjaGVyO1xuICAgICAgfVxuICAgIH0sXG4gICAgdXNlUmVmOiBmdW5jdGlvbiAoaW5pdGlhbFZhbHVlKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VSZWYnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnRSZWYoaW5pdGlhbFZhbHVlKTtcbiAgICB9LFxuICAgIHVzZVN0YXRlOiBmdW5jdGlvbiAoaW5pdGlhbFN0YXRlKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VTdGF0ZSc7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50O1xuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25Nb3VudEluREVWO1xuXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gbW91bnRTdGF0ZShpbml0aWFsU3RhdGUpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgIH1cbiAgICB9LFxuICAgIHVzZURlYnVnVmFsdWU6IGZ1bmN0aW9uICh2YWx1ZSwgZm9ybWF0dGVyRm4pIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZURlYnVnVmFsdWUnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnREZWJ1Z1ZhbHVlKCk7XG4gICAgfSxcbiAgICB1c2VEZWZlcnJlZFZhbHVlOiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZURlZmVycmVkVmFsdWUnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnREZWZlcnJlZFZhbHVlKHZhbHVlKTtcbiAgICB9LFxuICAgIHVzZVRyYW5zaXRpb246IGZ1bmN0aW9uICgpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZVRyYW5zaXRpb24nO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnRUcmFuc2l0aW9uKCk7XG4gICAgfSxcbiAgICB1c2VNdXRhYmxlU291cmNlOiBmdW5jdGlvbiAoc291cmNlLCBnZXRTbmFwc2hvdCwgc3Vic2NyaWJlKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VNdXRhYmxlU291cmNlJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIG1vdW50TXV0YWJsZVNvdXJjZShzb3VyY2UsIGdldFNuYXBzaG90LCBzdWJzY3JpYmUpO1xuICAgIH0sXG4gICAgdXNlT3BhcXVlSWRlbnRpZmllcjogZnVuY3Rpb24gKCkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlT3BhcXVlSWRlbnRpZmllcic7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiBtb3VudE9wYXF1ZUlkZW50aWZpZXIoKTtcbiAgICB9LFxuICAgIHVuc3RhYmxlX2lzTmV3UmVjb25jaWxlcjogZW5hYmxlTmV3UmVjb25jaWxlclxuICB9O1xuICBIb29rc0Rpc3BhdGNoZXJPblVwZGF0ZUluREVWID0ge1xuICAgIHJlYWRDb250ZXh0OiBmdW5jdGlvbiAoY29udGV4dCwgb2JzZXJ2ZWRCaXRzKSB7XG4gICAgICByZXR1cm4gcmVhZENvbnRleHQoY29udGV4dCwgb2JzZXJ2ZWRCaXRzKTtcbiAgICB9LFxuICAgIHVzZUNhbGxiYWNrOiBmdW5jdGlvbiAoY2FsbGJhY2ssIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUNhbGxiYWNrJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZUNhbGxiYWNrKGNhbGxiYWNrLCBkZXBzKTtcbiAgICB9LFxuICAgIHVzZUNvbnRleHQ6IGZ1bmN0aW9uIChjb250ZXh0LCBvYnNlcnZlZEJpdHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUNvbnRleHQnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gcmVhZENvbnRleHQoY29udGV4dCwgb2JzZXJ2ZWRCaXRzKTtcbiAgICB9LFxuICAgIHVzZUVmZmVjdDogZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlRWZmZWN0JztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZUVmZmVjdChjcmVhdGUsIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZTogZnVuY3Rpb24gKHJlZiwgY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VJbXBlcmF0aXZlSGFuZGxlJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZUltcGVyYXRpdmVIYW5kbGUocmVmLCBjcmVhdGUsIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlTGF5b3V0RWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VMYXlvdXRFZmZlY3QnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlTGF5b3V0RWZmZWN0KGNyZWF0ZSwgZGVwcyk7XG4gICAgfSxcbiAgICB1c2VNZW1vOiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VNZW1vJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQ7XG4gICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPblVwZGF0ZUluREVWO1xuXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gdXBkYXRlTWVtbyhjcmVhdGUsIGRlcHMpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgIH1cbiAgICB9LFxuICAgIHVzZVJlZHVjZXI6IGZ1bmN0aW9uIChyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VSZWR1Y2VyJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQ7XG4gICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPblVwZGF0ZUluREVWO1xuXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gdXBkYXRlUmVkdWNlcihyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICB9XG4gICAgfSxcbiAgICB1c2VSZWY6IGZ1bmN0aW9uIChpbml0aWFsVmFsdWUpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZVJlZic7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVSZWYoKTtcbiAgICB9LFxuICAgIHVzZVN0YXRlOiBmdW5jdGlvbiAoaW5pdGlhbFN0YXRlKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VTdGF0ZSc7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50O1xuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25VcGRhdGVJbkRFVjtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZVN0YXRlKGluaXRpYWxTdGF0ZSk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IHByZXZEaXNwYXRjaGVyO1xuICAgICAgfVxuICAgIH0sXG4gICAgdXNlRGVidWdWYWx1ZTogZnVuY3Rpb24gKHZhbHVlLCBmb3JtYXR0ZXJGbikge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlRGVidWdWYWx1ZSc7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVEZWJ1Z1ZhbHVlKCk7XG4gICAgfSxcbiAgICB1c2VEZWZlcnJlZFZhbHVlOiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZURlZmVycmVkVmFsdWUnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlRGVmZXJyZWRWYWx1ZSh2YWx1ZSk7XG4gICAgfSxcbiAgICB1c2VUcmFuc2l0aW9uOiBmdW5jdGlvbiAoKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VUcmFuc2l0aW9uJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZVRyYW5zaXRpb24oKTtcbiAgICB9LFxuICAgIHVzZU11dGFibGVTb3VyY2U6IGZ1bmN0aW9uIChzb3VyY2UsIGdldFNuYXBzaG90LCBzdWJzY3JpYmUpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZU11dGFibGVTb3VyY2UnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlTXV0YWJsZVNvdXJjZShzb3VyY2UsIGdldFNuYXBzaG90LCBzdWJzY3JpYmUpO1xuICAgIH0sXG4gICAgdXNlT3BhcXVlSWRlbnRpZmllcjogZnVuY3Rpb24gKCkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlT3BhcXVlSWRlbnRpZmllcic7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVPcGFxdWVJZGVudGlmaWVyKCk7XG4gICAgfSxcbiAgICB1bnN0YWJsZV9pc05ld1JlY29uY2lsZXI6IGVuYWJsZU5ld1JlY29uY2lsZXJcbiAgfTtcbiAgSG9va3NEaXNwYXRjaGVyT25SZXJlbmRlckluREVWID0ge1xuICAgIHJlYWRDb250ZXh0OiBmdW5jdGlvbiAoY29udGV4dCwgb2JzZXJ2ZWRCaXRzKSB7XG4gICAgICByZXR1cm4gcmVhZENvbnRleHQoY29udGV4dCwgb2JzZXJ2ZWRCaXRzKTtcbiAgICB9LFxuICAgIHVzZUNhbGxiYWNrOiBmdW5jdGlvbiAoY2FsbGJhY2ssIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUNhbGxiYWNrJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZUNhbGxiYWNrKGNhbGxiYWNrLCBkZXBzKTtcbiAgICB9LFxuICAgIHVzZUNvbnRleHQ6IGZ1bmN0aW9uIChjb250ZXh0LCBvYnNlcnZlZEJpdHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUNvbnRleHQnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gcmVhZENvbnRleHQoY29udGV4dCwgb2JzZXJ2ZWRCaXRzKTtcbiAgICB9LFxuICAgIHVzZUVmZmVjdDogZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlRWZmZWN0JztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZUVmZmVjdChjcmVhdGUsIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZTogZnVuY3Rpb24gKHJlZiwgY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VJbXBlcmF0aXZlSGFuZGxlJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZUltcGVyYXRpdmVIYW5kbGUocmVmLCBjcmVhdGUsIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlTGF5b3V0RWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VMYXlvdXRFZmZlY3QnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlTGF5b3V0RWZmZWN0KGNyZWF0ZSwgZGVwcyk7XG4gICAgfSxcbiAgICB1c2VNZW1vOiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VNZW1vJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQ7XG4gICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPblJlcmVuZGVySW5ERVY7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiB1cGRhdGVNZW1vKGNyZWF0ZSwgZGVwcyk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IHByZXZEaXNwYXRjaGVyO1xuICAgICAgfVxuICAgIH0sXG4gICAgdXNlUmVkdWNlcjogZnVuY3Rpb24gKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZVJlZHVjZXInO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudDtcbiAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uUmVyZW5kZXJJbkRFVjtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHJlcmVuZGVyUmVkdWNlcihyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICB9XG4gICAgfSxcbiAgICB1c2VSZWY6IGZ1bmN0aW9uIChpbml0aWFsVmFsdWUpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZVJlZic7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVSZWYoKTtcbiAgICB9LFxuICAgIHVzZVN0YXRlOiBmdW5jdGlvbiAoaW5pdGlhbFN0YXRlKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VTdGF0ZSc7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50O1xuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25SZXJlbmRlckluREVWO1xuXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gcmVyZW5kZXJTdGF0ZShpbml0aWFsU3RhdGUpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgIH1cbiAgICB9LFxuICAgIHVzZURlYnVnVmFsdWU6IGZ1bmN0aW9uICh2YWx1ZSwgZm9ybWF0dGVyRm4pIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZURlYnVnVmFsdWUnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlRGVidWdWYWx1ZSgpO1xuICAgIH0sXG4gICAgdXNlRGVmZXJyZWRWYWx1ZTogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VEZWZlcnJlZFZhbHVlJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHJlcmVuZGVyRGVmZXJyZWRWYWx1ZSh2YWx1ZSk7XG4gICAgfSxcbiAgICB1c2VUcmFuc2l0aW9uOiBmdW5jdGlvbiAoKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VUcmFuc2l0aW9uJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHJlcmVuZGVyVHJhbnNpdGlvbigpO1xuICAgIH0sXG4gICAgdXNlTXV0YWJsZVNvdXJjZTogZnVuY3Rpb24gKHNvdXJjZSwgZ2V0U25hcHNob3QsIHN1YnNjcmliZSkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlTXV0YWJsZVNvdXJjZSc7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVNdXRhYmxlU291cmNlKHNvdXJjZSwgZ2V0U25hcHNob3QsIHN1YnNjcmliZSk7XG4gICAgfSxcbiAgICB1c2VPcGFxdWVJZGVudGlmaWVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VPcGFxdWVJZGVudGlmaWVyJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHJlcmVuZGVyT3BhcXVlSWRlbnRpZmllcigpO1xuICAgIH0sXG4gICAgdW5zdGFibGVfaXNOZXdSZWNvbmNpbGVyOiBlbmFibGVOZXdSZWNvbmNpbGVyXG4gIH07XG4gIEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPbk1vdW50SW5ERVYgPSB7XG4gICAgcmVhZENvbnRleHQ6IGZ1bmN0aW9uIChjb250ZXh0LCBvYnNlcnZlZEJpdHMpIHtcbiAgICAgIHdhcm5JbnZhbGlkQ29udGV4dEFjY2VzcygpO1xuICAgICAgcmV0dXJuIHJlYWRDb250ZXh0KGNvbnRleHQsIG9ic2VydmVkQml0cyk7XG4gICAgfSxcbiAgICB1c2VDYWxsYmFjazogZnVuY3Rpb24gKGNhbGxiYWNrLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VDYWxsYmFjayc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnRDYWxsYmFjayhjYWxsYmFjaywgZGVwcyk7XG4gICAgfSxcbiAgICB1c2VDb250ZXh0OiBmdW5jdGlvbiAoY29udGV4dCwgb2JzZXJ2ZWRCaXRzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VDb250ZXh0JztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiByZWFkQ29udGV4dChjb250ZXh0LCBvYnNlcnZlZEJpdHMpO1xuICAgIH0sXG4gICAgdXNlRWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VFZmZlY3QnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIG1vdW50RWZmZWN0KGNyZWF0ZSwgZGVwcyk7XG4gICAgfSxcbiAgICB1c2VJbXBlcmF0aXZlSGFuZGxlOiBmdW5jdGlvbiAocmVmLCBjcmVhdGUsIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUltcGVyYXRpdmVIYW5kbGUnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIG1vdW50SW1wZXJhdGl2ZUhhbmRsZShyZWYsIGNyZWF0ZSwgZGVwcyk7XG4gICAgfSxcbiAgICB1c2VMYXlvdXRFZmZlY3Q6IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUxheW91dEVmZmVjdCc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnRMYXlvdXRFZmZlY3QoY3JlYXRlLCBkZXBzKTtcbiAgICB9LFxuICAgIHVzZU1lbW86IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZU1lbW8nO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQ7XG4gICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPbk1vdW50SW5ERVY7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBtb3VudE1lbW8oY3JlYXRlLCBkZXBzKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICB9XG4gICAgfSxcbiAgICB1c2VSZWR1Y2VyOiBmdW5jdGlvbiAocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlUmVkdWNlcic7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudDtcbiAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uTW91bnRJbkRFVjtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIG1vdW50UmVkdWNlcihyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICB9XG4gICAgfSxcbiAgICB1c2VSZWY6IGZ1bmN0aW9uIChpbml0aWFsVmFsdWUpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZVJlZic7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnRSZWYoaW5pdGlhbFZhbHVlKTtcbiAgICB9LFxuICAgIHVzZVN0YXRlOiBmdW5jdGlvbiAoaW5pdGlhbFN0YXRlKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VTdGF0ZSc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudDtcbiAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uTW91bnRJbkRFVjtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIG1vdW50U3RhdGUoaW5pdGlhbFN0YXRlKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICB9XG4gICAgfSxcbiAgICB1c2VEZWJ1Z1ZhbHVlOiBmdW5jdGlvbiAodmFsdWUsIGZvcm1hdHRlckZuKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VEZWJ1Z1ZhbHVlJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiBtb3VudERlYnVnVmFsdWUoKTtcbiAgICB9LFxuICAgIHVzZURlZmVycmVkVmFsdWU6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlRGVmZXJyZWRWYWx1ZSc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnREZWZlcnJlZFZhbHVlKHZhbHVlKTtcbiAgICB9LFxuICAgIHVzZVRyYW5zaXRpb246IGZ1bmN0aW9uICgpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZVRyYW5zaXRpb24nO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIG1vdW50VHJhbnNpdGlvbigpO1xuICAgIH0sXG4gICAgdXNlTXV0YWJsZVNvdXJjZTogZnVuY3Rpb24gKHNvdXJjZSwgZ2V0U25hcHNob3QsIHN1YnNjcmliZSkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlTXV0YWJsZVNvdXJjZSc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnRNdXRhYmxlU291cmNlKHNvdXJjZSwgZ2V0U25hcHNob3QsIHN1YnNjcmliZSk7XG4gICAgfSxcbiAgICB1c2VPcGFxdWVJZGVudGlmaWVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VPcGFxdWVJZGVudGlmaWVyJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiBtb3VudE9wYXF1ZUlkZW50aWZpZXIoKTtcbiAgICB9LFxuICAgIHVuc3RhYmxlX2lzTmV3UmVjb25jaWxlcjogZW5hYmxlTmV3UmVjb25jaWxlclxuICB9O1xuICBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25VcGRhdGVJbkRFViA9IHtcbiAgICByZWFkQ29udGV4dDogZnVuY3Rpb24gKGNvbnRleHQsIG9ic2VydmVkQml0cykge1xuICAgICAgd2FybkludmFsaWRDb250ZXh0QWNjZXNzKCk7XG4gICAgICByZXR1cm4gcmVhZENvbnRleHQoY29udGV4dCwgb2JzZXJ2ZWRCaXRzKTtcbiAgICB9LFxuICAgIHVzZUNhbGxiYWNrOiBmdW5jdGlvbiAoY2FsbGJhY2ssIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUNhbGxiYWNrJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlQ2FsbGJhY2soY2FsbGJhY2ssIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlQ29udGV4dDogZnVuY3Rpb24gKGNvbnRleHQsIG9ic2VydmVkQml0cykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlQ29udGV4dCc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHJlYWRDb250ZXh0KGNvbnRleHQsIG9ic2VydmVkQml0cyk7XG4gICAgfSxcbiAgICB1c2VFZmZlY3Q6IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUVmZmVjdCc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZUVmZmVjdChjcmVhdGUsIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZTogZnVuY3Rpb24gKHJlZiwgY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VJbXBlcmF0aXZlSGFuZGxlJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlSW1wZXJhdGl2ZUhhbmRsZShyZWYsIGNyZWF0ZSwgZGVwcyk7XG4gICAgfSxcbiAgICB1c2VMYXlvdXRFZmZlY3Q6IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUxheW91dEVmZmVjdCc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZUxheW91dEVmZmVjdChjcmVhdGUsIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlTWVtbzogZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlTWVtbyc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQ7XG4gICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPblVwZGF0ZUluREVWO1xuXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gdXBkYXRlTWVtbyhjcmVhdGUsIGRlcHMpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgIH1cbiAgICB9LFxuICAgIHVzZVJlZHVjZXI6IGZ1bmN0aW9uIChyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VSZWR1Y2VyJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudDtcbiAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uVXBkYXRlSW5ERVY7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiB1cGRhdGVSZWR1Y2VyKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgIH1cbiAgICB9LFxuICAgIHVzZVJlZjogZnVuY3Rpb24gKGluaXRpYWxWYWx1ZSkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlUmVmJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlUmVmKCk7XG4gICAgfSxcbiAgICB1c2VTdGF0ZTogZnVuY3Rpb24gKGluaXRpYWxTdGF0ZSkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlU3RhdGUnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50O1xuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25VcGRhdGVJbkRFVjtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZVN0YXRlKGluaXRpYWxTdGF0ZSk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IHByZXZEaXNwYXRjaGVyO1xuICAgICAgfVxuICAgIH0sXG4gICAgdXNlRGVidWdWYWx1ZTogZnVuY3Rpb24gKHZhbHVlLCBmb3JtYXR0ZXJGbikge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlRGVidWdWYWx1ZSc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZURlYnVnVmFsdWUoKTtcbiAgICB9LFxuICAgIHVzZURlZmVycmVkVmFsdWU6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlRGVmZXJyZWRWYWx1ZSc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZURlZmVycmVkVmFsdWUodmFsdWUpO1xuICAgIH0sXG4gICAgdXNlVHJhbnNpdGlvbjogZnVuY3Rpb24gKCkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlVHJhbnNpdGlvbic7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZVRyYW5zaXRpb24oKTtcbiAgICB9LFxuICAgIHVzZU11dGFibGVTb3VyY2U6IGZ1bmN0aW9uIChzb3VyY2UsIGdldFNuYXBzaG90LCBzdWJzY3JpYmUpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZU11dGFibGVTb3VyY2UnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVNdXRhYmxlU291cmNlKHNvdXJjZSwgZ2V0U25hcHNob3QsIHN1YnNjcmliZSk7XG4gICAgfSxcbiAgICB1c2VPcGFxdWVJZGVudGlmaWVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VPcGFxdWVJZGVudGlmaWVyJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlT3BhcXVlSWRlbnRpZmllcigpO1xuICAgIH0sXG4gICAgdW5zdGFibGVfaXNOZXdSZWNvbmNpbGVyOiBlbmFibGVOZXdSZWNvbmNpbGVyXG4gIH07XG4gIEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPblJlcmVuZGVySW5ERVYgPSB7XG4gICAgcmVhZENvbnRleHQ6IGZ1bmN0aW9uIChjb250ZXh0LCBvYnNlcnZlZEJpdHMpIHtcbiAgICAgIHdhcm5JbnZhbGlkQ29udGV4dEFjY2VzcygpO1xuICAgICAgcmV0dXJuIHJlYWRDb250ZXh0KGNvbnRleHQsIG9ic2VydmVkQml0cyk7XG4gICAgfSxcbiAgICB1c2VDYWxsYmFjazogZnVuY3Rpb24gKGNhbGxiYWNrLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VDYWxsYmFjayc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZUNhbGxiYWNrKGNhbGxiYWNrLCBkZXBzKTtcbiAgICB9LFxuICAgIHVzZUNvbnRleHQ6IGZ1bmN0aW9uIChjb250ZXh0LCBvYnNlcnZlZEJpdHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUNvbnRleHQnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiByZWFkQ29udGV4dChjb250ZXh0LCBvYnNlcnZlZEJpdHMpO1xuICAgIH0sXG4gICAgdXNlRWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VFZmZlY3QnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVFZmZlY3QoY3JlYXRlLCBkZXBzKTtcbiAgICB9LFxuICAgIHVzZUltcGVyYXRpdmVIYW5kbGU6IGZ1bmN0aW9uIChyZWYsIGNyZWF0ZSwgZGVwcykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlSW1wZXJhdGl2ZUhhbmRsZSc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZUltcGVyYXRpdmVIYW5kbGUocmVmLCBjcmVhdGUsIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlTGF5b3V0RWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VMYXlvdXRFZmZlY3QnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVMYXlvdXRFZmZlY3QoY3JlYXRlLCBkZXBzKTtcbiAgICB9LFxuICAgIHVzZU1lbW86IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZU1lbW8nO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50O1xuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25VcGRhdGVJbkRFVjtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZU1lbW8oY3JlYXRlLCBkZXBzKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICB9XG4gICAgfSxcbiAgICB1c2VSZWR1Y2VyOiBmdW5jdGlvbiAocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlUmVkdWNlcic7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQ7XG4gICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPblVwZGF0ZUluREVWO1xuXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gcmVyZW5kZXJSZWR1Y2VyKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgIH1cbiAgICB9LFxuICAgIHVzZVJlZjogZnVuY3Rpb24gKGluaXRpYWxWYWx1ZSkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlUmVmJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlUmVmKCk7XG4gICAgfSxcbiAgICB1c2VTdGF0ZTogZnVuY3Rpb24gKGluaXRpYWxTdGF0ZSkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlU3RhdGUnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50O1xuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25VcGRhdGVJbkRFVjtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHJlcmVuZGVyU3RhdGUoaW5pdGlhbFN0YXRlKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICB9XG4gICAgfSxcbiAgICB1c2VEZWJ1Z1ZhbHVlOiBmdW5jdGlvbiAodmFsdWUsIGZvcm1hdHRlckZuKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VEZWJ1Z1ZhbHVlJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlRGVidWdWYWx1ZSgpO1xuICAgIH0sXG4gICAgdXNlRGVmZXJyZWRWYWx1ZTogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VEZWZlcnJlZFZhbHVlJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gcmVyZW5kZXJEZWZlcnJlZFZhbHVlKHZhbHVlKTtcbiAgICB9LFxuICAgIHVzZVRyYW5zaXRpb246IGZ1bmN0aW9uICgpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZVRyYW5zaXRpb24nO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiByZXJlbmRlclRyYW5zaXRpb24oKTtcbiAgICB9LFxuICAgIHVzZU11dGFibGVTb3VyY2U6IGZ1bmN0aW9uIChzb3VyY2UsIGdldFNuYXBzaG90LCBzdWJzY3JpYmUpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZU11dGFibGVTb3VyY2UnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVNdXRhYmxlU291cmNlKHNvdXJjZSwgZ2V0U25hcHNob3QsIHN1YnNjcmliZSk7XG4gICAgfSxcbiAgICB1c2VPcGFxdWVJZGVudGlmaWVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VPcGFxdWVJZGVudGlmaWVyJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gcmVyZW5kZXJPcGFxdWVJZGVudGlmaWVyKCk7XG4gICAgfSxcbiAgICB1bnN0YWJsZV9pc05ld1JlY29uY2lsZXI6IGVuYWJsZU5ld1JlY29uY2lsZXJcbiAgfTtcbn1cblxudmFyIG5vdyQxID0gU2NoZWR1bGVyLnVuc3RhYmxlX25vdztcbnZhciBjb21taXRUaW1lID0gMDtcbnZhciBwcm9maWxlclN0YXJ0VGltZSA9IC0xO1xuXG5mdW5jdGlvbiBnZXRDb21taXRUaW1lKCkge1xuICByZXR1cm4gY29tbWl0VGltZTtcbn1cblxuZnVuY3Rpb24gcmVjb3JkQ29tbWl0VGltZSgpIHtcblxuICBjb21taXRUaW1lID0gbm93JDEoKTtcbn1cblxuZnVuY3Rpb24gc3RhcnRQcm9maWxlclRpbWVyKGZpYmVyKSB7XG5cbiAgcHJvZmlsZXJTdGFydFRpbWUgPSBub3ckMSgpO1xuXG4gIGlmIChmaWJlci5hY3R1YWxTdGFydFRpbWUgPCAwKSB7XG4gICAgZmliZXIuYWN0dWFsU3RhcnRUaW1lID0gbm93JDEoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBzdG9wUHJvZmlsZXJUaW1lcklmUnVubmluZyhmaWJlcikge1xuXG4gIHByb2ZpbGVyU3RhcnRUaW1lID0gLTE7XG59XG5cbmZ1bmN0aW9uIHN0b3BQcm9maWxlclRpbWVySWZSdW5uaW5nQW5kUmVjb3JkRGVsdGEoZmliZXIsIG92ZXJyaWRlQmFzZVRpbWUpIHtcblxuICBpZiAocHJvZmlsZXJTdGFydFRpbWUgPj0gMCkge1xuICAgIHZhciBlbGFwc2VkVGltZSA9IG5vdyQxKCkgLSBwcm9maWxlclN0YXJ0VGltZTtcbiAgICBmaWJlci5hY3R1YWxEdXJhdGlvbiArPSBlbGFwc2VkVGltZTtcblxuICAgIGlmIChvdmVycmlkZUJhc2VUaW1lKSB7XG4gICAgICBmaWJlci5zZWxmQmFzZUR1cmF0aW9uID0gZWxhcHNlZFRpbWU7XG4gICAgfVxuXG4gICAgcHJvZmlsZXJTdGFydFRpbWUgPSAtMTtcbiAgfVxufVxuXG5mdW5jdGlvbiB0cmFuc2ZlckFjdHVhbER1cmF0aW9uKGZpYmVyKSB7XG4gIC8vIFRyYW5zZmVyIHRpbWUgc3BlbnQgcmVuZGVyaW5nIHRoZXNlIGNoaWxkcmVuIHNvIHdlIGRvbid0IGxvc2UgaXRcbiAgLy8gYWZ0ZXIgd2UgcmVyZW5kZXIuIFRoaXMgaXMgdXNlZCBhcyBhIGhlbHBlciBpbiBzcGVjaWFsIGNhc2VzXG4gIC8vIHdoZXJlIHdlIHNob3VsZCBjb3VudCB0aGUgd29yayBvZiBtdWx0aXBsZSBwYXNzZXMuXG4gIHZhciBjaGlsZCA9IGZpYmVyLmNoaWxkO1xuXG4gIHdoaWxlIChjaGlsZCkge1xuICAgIGZpYmVyLmFjdHVhbER1cmF0aW9uICs9IGNoaWxkLmFjdHVhbER1cmF0aW9uO1xuICAgIGNoaWxkID0gY2hpbGQuc2libGluZztcbiAgfVxufVxuXG52YXIgUmVhY3RDdXJyZW50T3duZXIkMSA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0Q3VycmVudE93bmVyO1xudmFyIGRpZFJlY2VpdmVVcGRhdGUgPSBmYWxzZTtcbnZhciBkaWRXYXJuQWJvdXRCYWRDbGFzcztcbnZhciBkaWRXYXJuQWJvdXRNb2R1bGVQYXR0ZXJuQ29tcG9uZW50O1xudmFyIGRpZFdhcm5BYm91dENvbnRleHRUeXBlT25GdW5jdGlvbkNvbXBvbmVudDtcbnZhciBkaWRXYXJuQWJvdXRHZXREZXJpdmVkU3RhdGVPbkZ1bmN0aW9uQ29tcG9uZW50O1xudmFyIGRpZFdhcm5BYm91dEZ1bmN0aW9uUmVmcztcbnZhciBkaWRXYXJuQWJvdXRSZWFzc2lnbmluZ1Byb3BzO1xudmFyIGRpZFdhcm5BYm91dFJldmVhbE9yZGVyO1xudmFyIGRpZFdhcm5BYm91dFRhaWxPcHRpb25zO1xuXG57XG4gIGRpZFdhcm5BYm91dEJhZENsYXNzID0ge307XG4gIGRpZFdhcm5BYm91dE1vZHVsZVBhdHRlcm5Db21wb25lbnQgPSB7fTtcbiAgZGlkV2FybkFib3V0Q29udGV4dFR5cGVPbkZ1bmN0aW9uQ29tcG9uZW50ID0ge307XG4gIGRpZFdhcm5BYm91dEdldERlcml2ZWRTdGF0ZU9uRnVuY3Rpb25Db21wb25lbnQgPSB7fTtcbiAgZGlkV2FybkFib3V0RnVuY3Rpb25SZWZzID0ge307XG4gIGRpZFdhcm5BYm91dFJlYXNzaWduaW5nUHJvcHMgPSBmYWxzZTtcbiAgZGlkV2FybkFib3V0UmV2ZWFsT3JkZXIgPSB7fTtcbiAgZGlkV2FybkFib3V0VGFpbE9wdGlvbnMgPSB7fTtcbn1cblxuZnVuY3Rpb24gcmVjb25jaWxlQ2hpbGRyZW4oY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIG5leHRDaGlsZHJlbiwgcmVuZGVyTGFuZXMpIHtcbiAgaWYgKGN1cnJlbnQgPT09IG51bGwpIHtcbiAgICAvLyBJZiB0aGlzIGlzIGEgZnJlc2ggbmV3IGNvbXBvbmVudCB0aGF0IGhhc24ndCBiZWVuIHJlbmRlcmVkIHlldCwgd2VcbiAgICAvLyB3b24ndCB1cGRhdGUgaXRzIGNoaWxkIHNldCBieSBhcHBseWluZyBtaW5pbWFsIHNpZGUtZWZmZWN0cy4gSW5zdGVhZCxcbiAgICAvLyB3ZSB3aWxsIGFkZCB0aGVtIGFsbCB0byB0aGUgY2hpbGQgYmVmb3JlIGl0IGdldHMgcmVuZGVyZWQuIFRoYXQgbWVhbnNcbiAgICAvLyB3ZSBjYW4gb3B0aW1pemUgdGhpcyByZWNvbmNpbGlhdGlvbiBwYXNzIGJ5IG5vdCB0cmFja2luZyBzaWRlLWVmZmVjdHMuXG4gICAgd29ya0luUHJvZ3Jlc3MuY2hpbGQgPSBtb3VudENoaWxkRmliZXJzKHdvcmtJblByb2dyZXNzLCBudWxsLCBuZXh0Q2hpbGRyZW4sIHJlbmRlckxhbmVzKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBJZiB0aGUgY3VycmVudCBjaGlsZCBpcyB0aGUgc2FtZSBhcyB0aGUgd29yayBpbiBwcm9ncmVzcywgaXQgbWVhbnMgdGhhdFxuICAgIC8vIHdlIGhhdmVuJ3QgeWV0IHN0YXJ0ZWQgYW55IHdvcmsgb24gdGhlc2UgY2hpbGRyZW4uIFRoZXJlZm9yZSwgd2UgdXNlXG4gICAgLy8gdGhlIGNsb25lIGFsZ29yaXRobSB0byBjcmVhdGUgYSBjb3B5IG9mIGFsbCB0aGUgY3VycmVudCBjaGlsZHJlbi5cbiAgICAvLyBJZiB3ZSBoYWQgYW55IHByb2dyZXNzZWQgd29yayBhbHJlYWR5LCB0aGF0IGlzIGludmFsaWQgYXQgdGhpcyBwb2ludCBzb1xuICAgIC8vIGxldCdzIHRocm93IGl0IG91dC5cbiAgICB3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IHJlY29uY2lsZUNoaWxkRmliZXJzKHdvcmtJblByb2dyZXNzLCBjdXJyZW50LmNoaWxkLCBuZXh0Q2hpbGRyZW4sIHJlbmRlckxhbmVzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBmb3JjZVVubW91bnRDdXJyZW50QW5kUmVjb25jaWxlKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBuZXh0Q2hpbGRyZW4sIHJlbmRlckxhbmVzKSB7XG4gIC8vIFRoaXMgZnVuY3Rpb24gaXMgZm9yayBvZiByZWNvbmNpbGVDaGlsZHJlbi4gSXQncyB1c2VkIGluIGNhc2VzIHdoZXJlIHdlXG4gIC8vIHdhbnQgdG8gcmVjb25jaWxlIHdpdGhvdXQgbWF0Y2hpbmcgYWdhaW5zdCB0aGUgZXhpc3Rpbmcgc2V0LiBUaGlzIGhhcyB0aGVcbiAgLy8gZWZmZWN0IG9mIGFsbCBjdXJyZW50IGNoaWxkcmVuIGJlaW5nIHVubW91bnRlZDsgZXZlbiBpZiB0aGUgdHlwZSBhbmQga2V5XG4gIC8vIGFyZSB0aGUgc2FtZSwgdGhlIG9sZCBjaGlsZCBpcyB1bm1vdW50ZWQgYW5kIGEgbmV3IGNoaWxkIGlzIGNyZWF0ZWQuXG4gIC8vXG4gIC8vIFRvIGRvIHRoaXMsIHdlJ3JlIGdvaW5nIHRvIGdvIHRocm91Z2ggdGhlIHJlY29uY2lsZSBhbGdvcml0aG0gdHdpY2UuIEluXG4gIC8vIHRoZSBmaXJzdCBwYXNzLCB3ZSBzY2hlZHVsZSBhIGRlbGV0aW9uIGZvciBhbGwgdGhlIGN1cnJlbnQgY2hpbGRyZW4gYnlcbiAgLy8gcGFzc2luZyBudWxsLlxuICB3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IHJlY29uY2lsZUNoaWxkRmliZXJzKHdvcmtJblByb2dyZXNzLCBjdXJyZW50LmNoaWxkLCBudWxsLCByZW5kZXJMYW5lcyk7IC8vIEluIHRoZSBzZWNvbmQgcGFzcywgd2UgbW91bnQgdGhlIG5ldyBjaGlsZHJlbi4gVGhlIHRyaWNrIGhlcmUgaXMgdGhhdCB3ZVxuICAvLyBwYXNzIG51bGwgaW4gcGxhY2Ugb2Ygd2hlcmUgd2UgdXN1YWxseSBwYXNzIHRoZSBjdXJyZW50IGNoaWxkIHNldC4gVGhpcyBoYXNcbiAgLy8gdGhlIGVmZmVjdCBvZiByZW1vdW50aW5nIGFsbCBjaGlsZHJlbiByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlaXJcbiAgLy8gaWRlbnRpdGllcyBtYXRjaC5cblxuICB3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IHJlY29uY2lsZUNoaWxkRmliZXJzKHdvcmtJblByb2dyZXNzLCBudWxsLCBuZXh0Q2hpbGRyZW4sIHJlbmRlckxhbmVzKTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlRm9yd2FyZFJlZihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgQ29tcG9uZW50LCBuZXh0UHJvcHMsIHJlbmRlckxhbmVzKSB7XG4gIC8vIFRPRE86IGN1cnJlbnQgY2FuIGJlIG5vbi1udWxsIGhlcmUgZXZlbiBpZiB0aGUgY29tcG9uZW50XG4gIC8vIGhhc24ndCB5ZXQgbW91bnRlZC4gVGhpcyBoYXBwZW5zIGFmdGVyIHRoZSBmaXJzdCByZW5kZXIgc3VzcGVuZHMuXG4gIC8vIFdlJ2xsIG5lZWQgdG8gZmlndXJlIG91dCBpZiB0aGlzIGlzIGZpbmUgb3IgY2FuIGNhdXNlIGlzc3Vlcy5cbiAge1xuICAgIGlmICh3b3JrSW5Qcm9ncmVzcy50eXBlICE9PSB3b3JrSW5Qcm9ncmVzcy5lbGVtZW50VHlwZSkge1xuICAgICAgLy8gTGF6eSBjb21wb25lbnQgcHJvcHMgY2FuJ3QgYmUgdmFsaWRhdGVkIGluIGNyZWF0ZUVsZW1lbnRcbiAgICAgIC8vIGJlY2F1c2UgdGhleSdyZSBvbmx5IGd1YXJhbnRlZWQgdG8gYmUgcmVzb2x2ZWQgaGVyZS5cbiAgICAgIHZhciBpbm5lclByb3BUeXBlcyA9IENvbXBvbmVudC5wcm9wVHlwZXM7XG5cbiAgICAgIGlmIChpbm5lclByb3BUeXBlcykge1xuICAgICAgICBjaGVja1Byb3BUeXBlcyhpbm5lclByb3BUeXBlcywgbmV4dFByb3BzLCAvLyBSZXNvbHZlZCBwcm9wc1xuICAgICAgICAncHJvcCcsIGdldENvbXBvbmVudE5hbWUoQ29tcG9uZW50KSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdmFyIHJlbmRlciA9IENvbXBvbmVudC5yZW5kZXI7XG4gIHZhciByZWYgPSB3b3JrSW5Qcm9ncmVzcy5yZWY7IC8vIFRoZSByZXN0IGlzIGEgZm9yayBvZiB1cGRhdGVGdW5jdGlvbkNvbXBvbmVudFxuXG4gIHZhciBuZXh0Q2hpbGRyZW47XG4gIHByZXBhcmVUb1JlYWRDb250ZXh0KHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG5cbiAge1xuICAgIFJlYWN0Q3VycmVudE93bmVyJDEuY3VycmVudCA9IHdvcmtJblByb2dyZXNzO1xuICAgIHNldElzUmVuZGVyaW5nKHRydWUpO1xuICAgIG5leHRDaGlsZHJlbiA9IHJlbmRlcldpdGhIb29rcyhjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyLCBuZXh0UHJvcHMsIHJlZiwgcmVuZGVyTGFuZXMpO1xuXG4gICAgaWYgKCB3b3JrSW5Qcm9ncmVzcy5tb2RlICYgU3RyaWN0TW9kZSkge1xuICAgICAgZGlzYWJsZUxvZ3MoKTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgbmV4dENoaWxkcmVuID0gcmVuZGVyV2l0aEhvb2tzKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXIsIG5leHRQcm9wcywgcmVmLCByZW5kZXJMYW5lcyk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICByZWVuYWJsZUxvZ3MoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRJc1JlbmRlcmluZyhmYWxzZSk7XG4gIH1cblxuICBpZiAoY3VycmVudCAhPT0gbnVsbCAmJiAhZGlkUmVjZWl2ZVVwZGF0ZSkge1xuICAgIGJhaWxvdXRIb29rcyhjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpO1xuICAgIHJldHVybiBiYWlsb3V0T25BbHJlYWR5RmluaXNoZWRXb3JrKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG4gIH0gLy8gUmVhY3QgRGV2VG9vbHMgcmVhZHMgdGhpcyBmbGFnLlxuXG5cbiAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gUGVyZm9ybWVkV29yaztcbiAgcmVjb25jaWxlQ2hpbGRyZW4oY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIG5leHRDaGlsZHJlbiwgcmVuZGVyTGFuZXMpO1xuICByZXR1cm4gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZU1lbW9Db21wb25lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgbmV4dFByb3BzLCB1cGRhdGVMYW5lcywgcmVuZGVyTGFuZXMpIHtcbiAgaWYgKGN1cnJlbnQgPT09IG51bGwpIHtcbiAgICB2YXIgdHlwZSA9IENvbXBvbmVudC50eXBlO1xuXG4gICAgaWYgKGlzU2ltcGxlRnVuY3Rpb25Db21wb25lbnQodHlwZSkgJiYgQ29tcG9uZW50LmNvbXBhcmUgPT09IG51bGwgJiYgLy8gU2ltcGxlTWVtb0NvbXBvbmVudCBjb2RlcGF0aCBkb2Vzbid0IHJlc29sdmUgb3V0ZXIgcHJvcHMgZWl0aGVyLlxuICAgIENvbXBvbmVudC5kZWZhdWx0UHJvcHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdmFyIHJlc29sdmVkVHlwZSA9IHR5cGU7XG5cbiAgICAgIHtcbiAgICAgICAgcmVzb2x2ZWRUeXBlID0gcmVzb2x2ZUZ1bmN0aW9uRm9ySG90UmVsb2FkaW5nKHR5cGUpO1xuICAgICAgfSAvLyBJZiB0aGlzIGlzIGEgcGxhaW4gZnVuY3Rpb24gY29tcG9uZW50IHdpdGhvdXQgZGVmYXVsdCBwcm9wcyxcbiAgICAgIC8vIGFuZCB3aXRoIG9ubHkgdGhlIGRlZmF1bHQgc2hhbGxvdyBjb21wYXJpc29uLCB3ZSB1cGdyYWRlIGl0XG4gICAgICAvLyB0byBhIFNpbXBsZU1lbW9Db21wb25lbnQgdG8gYWxsb3cgZmFzdCBwYXRoIHVwZGF0ZXMuXG5cblxuICAgICAgd29ya0luUHJvZ3Jlc3MudGFnID0gU2ltcGxlTWVtb0NvbXBvbmVudDtcbiAgICAgIHdvcmtJblByb2dyZXNzLnR5cGUgPSByZXNvbHZlZFR5cGU7XG5cbiAgICAgIHtcbiAgICAgICAgdmFsaWRhdGVGdW5jdGlvbkNvbXBvbmVudEluRGV2KHdvcmtJblByb2dyZXNzLCB0eXBlKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVwZGF0ZVNpbXBsZU1lbW9Db21wb25lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlc29sdmVkVHlwZSwgbmV4dFByb3BzLCB1cGRhdGVMYW5lcywgcmVuZGVyTGFuZXMpO1xuICAgIH1cblxuICAgIHtcbiAgICAgIHZhciBpbm5lclByb3BUeXBlcyA9IHR5cGUucHJvcFR5cGVzO1xuXG4gICAgICBpZiAoaW5uZXJQcm9wVHlwZXMpIHtcbiAgICAgICAgLy8gSW5uZXIgbWVtbyBjb21wb25lbnQgcHJvcHMgYXJlbid0IGN1cnJlbnRseSB2YWxpZGF0ZWQgaW4gY3JlYXRlRWxlbWVudC5cbiAgICAgICAgLy8gV2UgY291bGQgbW92ZSBpdCB0aGVyZSwgYnV0IHdlJ2Qgc3RpbGwgbmVlZCB0aGlzIGZvciBsYXp5IGNvZGUgcGF0aC5cbiAgICAgICAgY2hlY2tQcm9wVHlwZXMoaW5uZXJQcm9wVHlwZXMsIG5leHRQcm9wcywgLy8gUmVzb2x2ZWQgcHJvcHNcbiAgICAgICAgJ3Byb3AnLCBnZXRDb21wb25lbnROYW1lKHR5cGUpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgY2hpbGQgPSBjcmVhdGVGaWJlckZyb21UeXBlQW5kUHJvcHMoQ29tcG9uZW50LnR5cGUsIG51bGwsIG5leHRQcm9wcywgd29ya0luUHJvZ3Jlc3MsIHdvcmtJblByb2dyZXNzLm1vZGUsIHJlbmRlckxhbmVzKTtcbiAgICBjaGlsZC5yZWYgPSB3b3JrSW5Qcm9ncmVzcy5yZWY7XG4gICAgY2hpbGQucmV0dXJuID0gd29ya0luUHJvZ3Jlc3M7XG4gICAgd29ya0luUHJvZ3Jlc3MuY2hpbGQgPSBjaGlsZDtcbiAgICByZXR1cm4gY2hpbGQ7XG4gIH1cblxuICB7XG4gICAgdmFyIF90eXBlID0gQ29tcG9uZW50LnR5cGU7XG4gICAgdmFyIF9pbm5lclByb3BUeXBlcyA9IF90eXBlLnByb3BUeXBlcztcblxuICAgIGlmIChfaW5uZXJQcm9wVHlwZXMpIHtcbiAgICAgIC8vIElubmVyIG1lbW8gY29tcG9uZW50IHByb3BzIGFyZW4ndCBjdXJyZW50bHkgdmFsaWRhdGVkIGluIGNyZWF0ZUVsZW1lbnQuXG4gICAgICAvLyBXZSBjb3VsZCBtb3ZlIGl0IHRoZXJlLCBidXQgd2UnZCBzdGlsbCBuZWVkIHRoaXMgZm9yIGxhenkgY29kZSBwYXRoLlxuICAgICAgY2hlY2tQcm9wVHlwZXMoX2lubmVyUHJvcFR5cGVzLCBuZXh0UHJvcHMsIC8vIFJlc29sdmVkIHByb3BzXG4gICAgICAncHJvcCcsIGdldENvbXBvbmVudE5hbWUoX3R5cGUpKTtcbiAgICB9XG4gIH1cblxuICB2YXIgY3VycmVudENoaWxkID0gY3VycmVudC5jaGlsZDsgLy8gVGhpcyBpcyBhbHdheXMgZXhhY3RseSBvbmUgY2hpbGRcblxuICBpZiAoIWluY2x1ZGVzU29tZUxhbmUodXBkYXRlTGFuZXMsIHJlbmRlckxhbmVzKSkge1xuICAgIC8vIFRoaXMgd2lsbCBiZSB0aGUgcHJvcHMgd2l0aCByZXNvbHZlZCBkZWZhdWx0UHJvcHMsXG4gICAgLy8gdW5saWtlIGN1cnJlbnQubWVtb2l6ZWRQcm9wcyB3aGljaCB3aWxsIGJlIHRoZSB1bnJlc29sdmVkIG9uZXMuXG4gICAgdmFyIHByZXZQcm9wcyA9IGN1cnJlbnRDaGlsZC5tZW1vaXplZFByb3BzOyAvLyBEZWZhdWx0IHRvIHNoYWxsb3cgY29tcGFyaXNvblxuXG4gICAgdmFyIGNvbXBhcmUgPSBDb21wb25lbnQuY29tcGFyZTtcbiAgICBjb21wYXJlID0gY29tcGFyZSAhPT0gbnVsbCA/IGNvbXBhcmUgOiBzaGFsbG93RXF1YWw7XG5cbiAgICBpZiAoY29tcGFyZShwcmV2UHJvcHMsIG5leHRQcm9wcykgJiYgY3VycmVudC5yZWYgPT09IHdvcmtJblByb2dyZXNzLnJlZikge1xuICAgICAgcmV0dXJuIGJhaWxvdXRPbkFscmVhZHlGaW5pc2hlZFdvcmsoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKTtcbiAgICB9XG4gIH0gLy8gUmVhY3QgRGV2VG9vbHMgcmVhZHMgdGhpcyBmbGFnLlxuXG5cbiAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gUGVyZm9ybWVkV29yaztcbiAgdmFyIG5ld0NoaWxkID0gY3JlYXRlV29ya0luUHJvZ3Jlc3MoY3VycmVudENoaWxkLCBuZXh0UHJvcHMpO1xuICBuZXdDaGlsZC5yZWYgPSB3b3JrSW5Qcm9ncmVzcy5yZWY7XG4gIG5ld0NoaWxkLnJldHVybiA9IHdvcmtJblByb2dyZXNzO1xuICB3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IG5ld0NoaWxkO1xuICByZXR1cm4gbmV3Q2hpbGQ7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZVNpbXBsZU1lbW9Db21wb25lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgbmV4dFByb3BzLCB1cGRhdGVMYW5lcywgcmVuZGVyTGFuZXMpIHtcbiAgLy8gVE9ETzogY3VycmVudCBjYW4gYmUgbm9uLW51bGwgaGVyZSBldmVuIGlmIHRoZSBjb21wb25lbnRcbiAgLy8gaGFzbid0IHlldCBtb3VudGVkLiBUaGlzIGhhcHBlbnMgd2hlbiB0aGUgaW5uZXIgcmVuZGVyIHN1c3BlbmRzLlxuICAvLyBXZSdsbCBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgdGhpcyBpcyBmaW5lIG9yIGNhbiBjYXVzZSBpc3N1ZXMuXG4gIHtcbiAgICBpZiAod29ya0luUHJvZ3Jlc3MudHlwZSAhPT0gd29ya0luUHJvZ3Jlc3MuZWxlbWVudFR5cGUpIHtcbiAgICAgIC8vIExhenkgY29tcG9uZW50IHByb3BzIGNhbid0IGJlIHZhbGlkYXRlZCBpbiBjcmVhdGVFbGVtZW50XG4gICAgICAvLyBiZWNhdXNlIHRoZXkncmUgb25seSBndWFyYW50ZWVkIHRvIGJlIHJlc29sdmVkIGhlcmUuXG4gICAgICB2YXIgb3V0ZXJNZW1vVHlwZSA9IHdvcmtJblByb2dyZXNzLmVsZW1lbnRUeXBlO1xuXG4gICAgICBpZiAob3V0ZXJNZW1vVHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTEFaWV9UWVBFKSB7XG4gICAgICAgIC8vIFdlIHdhcm4gd2hlbiB5b3UgZGVmaW5lIHByb3BUeXBlcyBvbiBsYXp5KClcbiAgICAgICAgLy8gc28gbGV0J3MganVzdCBza2lwIG92ZXIgaXQgdG8gZmluZCBtZW1vKCkgb3V0ZXIgd3JhcHBlci5cbiAgICAgICAgLy8gSW5uZXIgcHJvcHMgZm9yIG1lbW8gYXJlIHZhbGlkYXRlZCBsYXRlci5cbiAgICAgICAgdmFyIGxhenlDb21wb25lbnQgPSBvdXRlck1lbW9UeXBlO1xuICAgICAgICB2YXIgcGF5bG9hZCA9IGxhenlDb21wb25lbnQuX3BheWxvYWQ7XG4gICAgICAgIHZhciBpbml0ID0gbGF6eUNvbXBvbmVudC5faW5pdDtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgIG91dGVyTWVtb1R5cGUgPSBpbml0KHBheWxvYWQpO1xuICAgICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgICAgb3V0ZXJNZW1vVHlwZSA9IG51bGw7XG4gICAgICAgIH0gLy8gSW5uZXIgcHJvcFR5cGVzIHdpbGwgYmUgdmFsaWRhdGVkIGluIHRoZSBmdW5jdGlvbiBjb21wb25lbnQgcGF0aC5cblxuXG4gICAgICAgIHZhciBvdXRlclByb3BUeXBlcyA9IG91dGVyTWVtb1R5cGUgJiYgb3V0ZXJNZW1vVHlwZS5wcm9wVHlwZXM7XG5cbiAgICAgICAgaWYgKG91dGVyUHJvcFR5cGVzKSB7XG4gICAgICAgICAgY2hlY2tQcm9wVHlwZXMob3V0ZXJQcm9wVHlwZXMsIG5leHRQcm9wcywgLy8gUmVzb2x2ZWQgKFNpbXBsZU1lbW9Db21wb25lbnQgaGFzIG5vIGRlZmF1bHRQcm9wcylcbiAgICAgICAgICAncHJvcCcsIGdldENvbXBvbmVudE5hbWUob3V0ZXJNZW1vVHlwZSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKGN1cnJlbnQgIT09IG51bGwpIHtcbiAgICB2YXIgcHJldlByb3BzID0gY3VycmVudC5tZW1vaXplZFByb3BzO1xuXG4gICAgaWYgKHNoYWxsb3dFcXVhbChwcmV2UHJvcHMsIG5leHRQcm9wcykgJiYgY3VycmVudC5yZWYgPT09IHdvcmtJblByb2dyZXNzLnJlZiAmJiAoIC8vIFByZXZlbnQgYmFpbG91dCBpZiB0aGUgaW1wbGVtZW50YXRpb24gY2hhbmdlZCBkdWUgdG8gaG90IHJlbG9hZC5cbiAgICAgd29ya0luUHJvZ3Jlc3MudHlwZSA9PT0gY3VycmVudC50eXBlICkpIHtcbiAgICAgIGRpZFJlY2VpdmVVcGRhdGUgPSBmYWxzZTtcblxuICAgICAgaWYgKCFpbmNsdWRlc1NvbWVMYW5lKHJlbmRlckxhbmVzLCB1cGRhdGVMYW5lcykpIHtcbiAgICAgICAgLy8gVGhlIHBlbmRpbmcgbGFuZXMgd2VyZSBjbGVhcmVkIGF0IHRoZSBiZWdpbm5pbmcgb2YgYmVnaW5Xb3JrLiBXZSdyZVxuICAgICAgICAvLyBhYm91dCB0byBiYWlsIG91dCwgYnV0IHRoZXJlIG1pZ2h0IGJlIG90aGVyIGxhbmVzIHRoYXQgd2VyZW4ndFxuICAgICAgICAvLyBpbmNsdWRlZCBpbiB0aGUgY3VycmVudCByZW5kZXIuIFVzdWFsbHksIHRoZSBwcmlvcml0eSBsZXZlbCBvZiB0aGVcbiAgICAgICAgLy8gcmVtYWluaW5nIHVwZGF0ZXMgaXMgYWNjdW1sYXRlZCBkdXJpbmcgdGhlIGV2YWx1YXRpb24gb2YgdGhlXG4gICAgICAgIC8vIGNvbXBvbmVudCAoaS5lLiB3aGVuIHByb2Nlc3NpbmcgdGhlIHVwZGF0ZSBxdWV1ZSkuIEJ1dCBzaW5jZSBzaW5jZVxuICAgICAgICAvLyB3ZSdyZSBiYWlsaW5nIG91dCBlYXJseSAqd2l0aG91dCogZXZhbHVhdGluZyB0aGUgY29tcG9uZW50LCB3ZSBuZWVkXG4gICAgICAgIC8vIHRvIGFjY291bnQgZm9yIGl0IGhlcmUsIHRvby4gUmVzZXQgdG8gdGhlIHZhbHVlIG9mIHRoZSBjdXJyZW50IGZpYmVyLlxuICAgICAgICAvLyBOT1RFOiBUaGlzIG9ubHkgYXBwbGllcyB0byBTaW1wbGVNZW1vQ29tcG9uZW50LCBub3QgTWVtb0NvbXBvbmVudCxcbiAgICAgICAgLy8gYmVjYXVzZSBhIE1lbW9Db21wb25lbnQgZmliZXIgZG9lcyBub3QgaGF2ZSBob29rcyBvciBhbiB1cGRhdGUgcXVldWU7XG4gICAgICAgIC8vIHJhdGhlciwgaXQgd3JhcHMgYXJvdW5kIGFuIGlubmVyIGNvbXBvbmVudCwgd2hpY2ggbWF5IG9yIG1heSBub3RcbiAgICAgICAgLy8gY29udGFpbnMgaG9va3MuXG4gICAgICAgIC8vIFRPRE86IE1vdmUgdGhlIHJlc2V0IGF0IGluIGJlZ2luV29yayBvdXQgb2YgdGhlIGNvbW1vbiBwYXRoIHNvIHRoYXRcbiAgICAgICAgLy8gdGhpcyBpcyBubyBsb25nZXIgbmVjZXNzYXJ5LlxuICAgICAgICB3b3JrSW5Qcm9ncmVzcy5sYW5lcyA9IGN1cnJlbnQubGFuZXM7XG4gICAgICAgIHJldHVybiBiYWlsb3V0T25BbHJlYWR5RmluaXNoZWRXb3JrKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG4gICAgICB9IGVsc2UgaWYgKChjdXJyZW50LmZsYWdzICYgRm9yY2VVcGRhdGVGb3JMZWdhY3lTdXNwZW5zZSkgIT09IE5vRmxhZ3MpIHtcbiAgICAgICAgLy8gVGhpcyBpcyBhIHNwZWNpYWwgY2FzZSB0aGF0IG9ubHkgZXhpc3RzIGZvciBsZWdhY3kgbW9kZS5cbiAgICAgICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9wdWxsLzE5MjE2LlxuICAgICAgICBkaWRSZWNlaXZlVXBkYXRlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdXBkYXRlRnVuY3Rpb25Db21wb25lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgbmV4dFByb3BzLCByZW5kZXJMYW5lcyk7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZU9mZnNjcmVlbkNvbXBvbmVudChjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpIHtcbiAgdmFyIG5leHRQcm9wcyA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcztcbiAgdmFyIG5leHRDaGlsZHJlbiA9IG5leHRQcm9wcy5jaGlsZHJlbjtcbiAgdmFyIHByZXZTdGF0ZSA9IGN1cnJlbnQgIT09IG51bGwgPyBjdXJyZW50Lm1lbW9pemVkU3RhdGUgOiBudWxsO1xuXG4gIGlmIChuZXh0UHJvcHMubW9kZSA9PT0gJ2hpZGRlbicgfHwgbmV4dFByb3BzLm1vZGUgPT09ICd1bnN0YWJsZS1kZWZlci13aXRob3V0LWhpZGluZycpIHtcbiAgICBpZiAoKHdvcmtJblByb2dyZXNzLm1vZGUgJiBDb25jdXJyZW50TW9kZSkgPT09IE5vTW9kZSkge1xuICAgICAgLy8gSW4gbGVnYWN5IHN5bmMgbW9kZSwgZG9uJ3QgZGVmZXIgdGhlIHN1YnRyZWUuIFJlbmRlciBpdCBub3cuXG4gICAgICAvLyBUT0RPOiBGaWd1cmUgb3V0IHdoYXQgd2Ugc2hvdWxkIGRvIGluIEJsb2NraW5nIG1vZGUuXG4gICAgICB2YXIgbmV4dFN0YXRlID0ge1xuICAgICAgICBiYXNlTGFuZXM6IE5vTGFuZXNcbiAgICAgIH07XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gbmV4dFN0YXRlO1xuICAgICAgcHVzaFJlbmRlckxhbmVzKHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG4gICAgfSBlbHNlIGlmICghaW5jbHVkZXNTb21lTGFuZShyZW5kZXJMYW5lcywgT2Zmc2NyZWVuTGFuZSkpIHtcbiAgICAgIHZhciBuZXh0QmFzZUxhbmVzO1xuXG4gICAgICBpZiAocHJldlN0YXRlICE9PSBudWxsKSB7XG4gICAgICAgIHZhciBwcmV2QmFzZUxhbmVzID0gcHJldlN0YXRlLmJhc2VMYW5lcztcbiAgICAgICAgbmV4dEJhc2VMYW5lcyA9IG1lcmdlTGFuZXMocHJldkJhc2VMYW5lcywgcmVuZGVyTGFuZXMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV4dEJhc2VMYW5lcyA9IHJlbmRlckxhbmVzO1xuICAgICAgfSAvLyBTY2hlZHVsZSB0aGlzIGZpYmVyIHRvIHJlLXJlbmRlciBhdCBvZmZzY3JlZW4gcHJpb3JpdHkuIFRoZW4gYmFpbG91dC5cblxuXG4gICAgICB7XG4gICAgICAgIG1hcmtTcGF3bmVkV29yayhPZmZzY3JlZW5MYW5lKTtcbiAgICAgIH1cblxuICAgICAgd29ya0luUHJvZ3Jlc3MubGFuZXMgPSB3b3JrSW5Qcm9ncmVzcy5jaGlsZExhbmVzID0gbGFuZVRvTGFuZXMoT2Zmc2NyZWVuTGFuZSk7XG4gICAgICB2YXIgX25leHRTdGF0ZSA9IHtcbiAgICAgICAgYmFzZUxhbmVzOiBuZXh0QmFzZUxhbmVzXG4gICAgICB9O1xuICAgICAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IF9uZXh0U3RhdGU7IC8vIFdlJ3JlIGFib3V0IHRvIGJhaWwgb3V0LCBidXQgd2UgbmVlZCB0byBwdXNoIHRoaXMgdG8gdGhlIHN0YWNrIGFueXdheVxuICAgICAgLy8gdG8gYXZvaWQgYSBwdXNoL3BvcCBtaXNhbGlnbm1lbnQuXG5cbiAgICAgIHB1c2hSZW5kZXJMYW5lcyh3b3JrSW5Qcm9ncmVzcywgbmV4dEJhc2VMYW5lcyk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gUmVuZGVyaW5nIGF0IG9mZnNjcmVlbiwgc28gd2UgY2FuIGNsZWFyIHRoZSBiYXNlIGxhbmVzLlxuICAgICAgdmFyIF9uZXh0U3RhdGUyID0ge1xuICAgICAgICBiYXNlTGFuZXM6IE5vTGFuZXNcbiAgICAgIH07XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gX25leHRTdGF0ZTI7IC8vIFB1c2ggdGhlIGxhbmVzIHRoYXQgd2VyZSBza2lwcGVkIHdoZW4gd2UgYmFpbGVkIG91dC5cblxuICAgICAgdmFyIHN1YnRyZWVSZW5kZXJMYW5lcyA9IHByZXZTdGF0ZSAhPT0gbnVsbCA/IHByZXZTdGF0ZS5iYXNlTGFuZXMgOiByZW5kZXJMYW5lcztcbiAgICAgIHB1c2hSZW5kZXJMYW5lcyh3b3JrSW5Qcm9ncmVzcywgc3VidHJlZVJlbmRlckxhbmVzKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdmFyIF9zdWJ0cmVlUmVuZGVyTGFuZXM7XG5cbiAgICBpZiAocHJldlN0YXRlICE9PSBudWxsKSB7XG4gICAgICBfc3VidHJlZVJlbmRlckxhbmVzID0gbWVyZ2VMYW5lcyhwcmV2U3RhdGUuYmFzZUxhbmVzLCByZW5kZXJMYW5lcyk7IC8vIFNpbmNlIHdlJ3JlIG5vdCBoaWRkZW4gYW55bW9yZSwgcmVzZXQgdGhlIHN0YXRlXG5cbiAgICAgIHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBXZSB3ZXJlbid0IHByZXZpb3VzbHkgaGlkZGVuLCBhbmQgd2Ugc3RpbGwgYXJlbid0LCBzbyB0aGVyZSdzIG5vdGhpbmdcbiAgICAgIC8vIHNwZWNpYWwgdG8gZG8uIE5lZWQgdG8gcHVzaCB0byB0aGUgc3RhY2sgcmVnYXJkbGVzcywgdGhvdWdoLCB0byBhdm9pZFxuICAgICAgLy8gYSBwdXNoL3BvcCBtaXNhbGlnbm1lbnQuXG4gICAgICBfc3VidHJlZVJlbmRlckxhbmVzID0gcmVuZGVyTGFuZXM7XG4gICAgfVxuXG4gICAgcHVzaFJlbmRlckxhbmVzKHdvcmtJblByb2dyZXNzLCBfc3VidHJlZVJlbmRlckxhbmVzKTtcbiAgfVxuXG4gIHJlY29uY2lsZUNoaWxkcmVuKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBuZXh0Q2hpbGRyZW4sIHJlbmRlckxhbmVzKTtcbiAgcmV0dXJuIHdvcmtJblByb2dyZXNzLmNoaWxkO1xufSAvLyBOb3RlOiBUaGVzZSBoYXBwZW4gdG8gaGF2ZSBpZGVudGljYWwgYmVnaW4gcGhhc2VzLCBmb3Igbm93LiBXZSBzaG91bGRuJ3QgaG9sZFxuLy8gb3Vyc2VsdmVzIHRvIHRoaXMgY29uc3RyYWludCwgdGhvdWdoLiBJZiB0aGUgYmVoYXZpb3IgZGl2ZXJnZXMsIHdlIHNob3VsZFxuLy8gZm9yayB0aGUgZnVuY3Rpb24uXG5cblxudmFyIHVwZGF0ZUxlZ2FjeUhpZGRlbkNvbXBvbmVudCA9IHVwZGF0ZU9mZnNjcmVlbkNvbXBvbmVudDtcblxuZnVuY3Rpb24gdXBkYXRlRnJhZ21lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKSB7XG4gIHZhciBuZXh0Q2hpbGRyZW4gPSB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHM7XG4gIHJlY29uY2lsZUNoaWxkcmVuKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBuZXh0Q2hpbGRyZW4sIHJlbmRlckxhbmVzKTtcbiAgcmV0dXJuIHdvcmtJblByb2dyZXNzLmNoaWxkO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVNb2RlKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcykge1xuICB2YXIgbmV4dENoaWxkcmVuID0gd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzLmNoaWxkcmVuO1xuICByZWNvbmNpbGVDaGlsZHJlbihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgbmV4dENoaWxkcmVuLCByZW5kZXJMYW5lcyk7XG4gIHJldHVybiB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcbn1cblxuZnVuY3Rpb24gdXBkYXRlUHJvZmlsZXIoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKSB7XG4gIHtcbiAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBVcGRhdGU7IC8vIFJlc2V0IGVmZmVjdCBkdXJhdGlvbnMgZm9yIHRoZSBuZXh0IGV2ZW50dWFsIGVmZmVjdCBwaGFzZS5cbiAgICAvLyBUaGVzZSBhcmUgcmVzZXQgZHVyaW5nIHJlbmRlciB0byBhbGxvdyB0aGUgRGV2VG9vbHMgY29tbWl0IGhvb2sgYSBjaGFuY2UgdG8gcmVhZCB0aGVtLFxuXG4gICAgdmFyIHN0YXRlTm9kZSA9IHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZTtcbiAgICBzdGF0ZU5vZGUuZWZmZWN0RHVyYXRpb24gPSAwO1xuICAgIHN0YXRlTm9kZS5wYXNzaXZlRWZmZWN0RHVyYXRpb24gPSAwO1xuICB9XG5cbiAgdmFyIG5leHRQcm9wcyA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcztcbiAgdmFyIG5leHRDaGlsZHJlbiA9IG5leHRQcm9wcy5jaGlsZHJlbjtcbiAgcmVjb25jaWxlQ2hpbGRyZW4oY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIG5leHRDaGlsZHJlbiwgcmVuZGVyTGFuZXMpO1xuICByZXR1cm4gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG59XG5cbmZ1bmN0aW9uIG1hcmtSZWYoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MpIHtcbiAgdmFyIHJlZiA9IHdvcmtJblByb2dyZXNzLnJlZjtcblxuICBpZiAoY3VycmVudCA9PT0gbnVsbCAmJiByZWYgIT09IG51bGwgfHwgY3VycmVudCAhPT0gbnVsbCAmJiBjdXJyZW50LnJlZiAhPT0gcmVmKSB7XG4gICAgLy8gU2NoZWR1bGUgYSBSZWYgZWZmZWN0XG4gICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gUmVmO1xuICB9XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUZ1bmN0aW9uQ29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIG5leHRQcm9wcywgcmVuZGVyTGFuZXMpIHtcbiAge1xuICAgIGlmICh3b3JrSW5Qcm9ncmVzcy50eXBlICE9PSB3b3JrSW5Qcm9ncmVzcy5lbGVtZW50VHlwZSkge1xuICAgICAgLy8gTGF6eSBjb21wb25lbnQgcHJvcHMgY2FuJ3QgYmUgdmFsaWRhdGVkIGluIGNyZWF0ZUVsZW1lbnRcbiAgICAgIC8vIGJlY2F1c2UgdGhleSdyZSBvbmx5IGd1YXJhbnRlZWQgdG8gYmUgcmVzb2x2ZWQgaGVyZS5cbiAgICAgIHZhciBpbm5lclByb3BUeXBlcyA9IENvbXBvbmVudC5wcm9wVHlwZXM7XG5cbiAgICAgIGlmIChpbm5lclByb3BUeXBlcykge1xuICAgICAgICBjaGVja1Byb3BUeXBlcyhpbm5lclByb3BUeXBlcywgbmV4dFByb3BzLCAvLyBSZXNvbHZlZCBwcm9wc1xuICAgICAgICAncHJvcCcsIGdldENvbXBvbmVudE5hbWUoQ29tcG9uZW50KSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdmFyIGNvbnRleHQ7XG5cbiAge1xuICAgIHZhciB1bm1hc2tlZENvbnRleHQgPSBnZXRVbm1hc2tlZENvbnRleHQod29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgdHJ1ZSk7XG4gICAgY29udGV4dCA9IGdldE1hc2tlZENvbnRleHQod29ya0luUHJvZ3Jlc3MsIHVubWFza2VkQ29udGV4dCk7XG4gIH1cblxuICB2YXIgbmV4dENoaWxkcmVuO1xuICBwcmVwYXJlVG9SZWFkQ29udGV4dCh3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpO1xuXG4gIHtcbiAgICBSZWFjdEN1cnJlbnRPd25lciQxLmN1cnJlbnQgPSB3b3JrSW5Qcm9ncmVzcztcbiAgICBzZXRJc1JlbmRlcmluZyh0cnVlKTtcbiAgICBuZXh0Q2hpbGRyZW4gPSByZW5kZXJXaXRoSG9va3MoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgbmV4dFByb3BzLCBjb250ZXh0LCByZW5kZXJMYW5lcyk7XG5cbiAgICBpZiAoIHdvcmtJblByb2dyZXNzLm1vZGUgJiBTdHJpY3RNb2RlKSB7XG4gICAgICBkaXNhYmxlTG9ncygpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBuZXh0Q2hpbGRyZW4gPSByZW5kZXJXaXRoSG9va3MoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgbmV4dFByb3BzLCBjb250ZXh0LCByZW5kZXJMYW5lcyk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICByZWVuYWJsZUxvZ3MoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRJc1JlbmRlcmluZyhmYWxzZSk7XG4gIH1cblxuICBpZiAoY3VycmVudCAhPT0gbnVsbCAmJiAhZGlkUmVjZWl2ZVVwZGF0ZSkge1xuICAgIGJhaWxvdXRIb29rcyhjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpO1xuICAgIHJldHVybiBiYWlsb3V0T25BbHJlYWR5RmluaXNoZWRXb3JrKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG4gIH0gLy8gUmVhY3QgRGV2VG9vbHMgcmVhZHMgdGhpcyBmbGFnLlxuXG5cbiAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gUGVyZm9ybWVkV29yaztcbiAgcmVjb25jaWxlQ2hpbGRyZW4oY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIG5leHRDaGlsZHJlbiwgcmVuZGVyTGFuZXMpO1xuICByZXR1cm4gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUNsYXNzQ29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIG5leHRQcm9wcywgcmVuZGVyTGFuZXMpIHtcbiAge1xuICAgIGlmICh3b3JrSW5Qcm9ncmVzcy50eXBlICE9PSB3b3JrSW5Qcm9ncmVzcy5lbGVtZW50VHlwZSkge1xuICAgICAgLy8gTGF6eSBjb21wb25lbnQgcHJvcHMgY2FuJ3QgYmUgdmFsaWRhdGVkIGluIGNyZWF0ZUVsZW1lbnRcbiAgICAgIC8vIGJlY2F1c2UgdGhleSdyZSBvbmx5IGd1YXJhbnRlZWQgdG8gYmUgcmVzb2x2ZWQgaGVyZS5cbiAgICAgIHZhciBpbm5lclByb3BUeXBlcyA9IENvbXBvbmVudC5wcm9wVHlwZXM7XG5cbiAgICAgIGlmIChpbm5lclByb3BUeXBlcykge1xuICAgICAgICBjaGVja1Byb3BUeXBlcyhpbm5lclByb3BUeXBlcywgbmV4dFByb3BzLCAvLyBSZXNvbHZlZCBwcm9wc1xuICAgICAgICAncHJvcCcsIGdldENvbXBvbmVudE5hbWUoQ29tcG9uZW50KSk7XG4gICAgICB9XG4gICAgfVxuICB9IC8vIFB1c2ggY29udGV4dCBwcm92aWRlcnMgZWFybHkgdG8gcHJldmVudCBjb250ZXh0IHN0YWNrIG1pc21hdGNoZXMuXG4gIC8vIER1cmluZyBtb3VudGluZyB3ZSBkb24ndCBrbm93IHRoZSBjaGlsZCBjb250ZXh0IHlldCBhcyB0aGUgaW5zdGFuY2UgZG9lc24ndCBleGlzdC5cbiAgLy8gV2Ugd2lsbCBpbnZhbGlkYXRlIHRoZSBjaGlsZCBjb250ZXh0IGluIGZpbmlzaENsYXNzQ29tcG9uZW50KCkgcmlnaHQgYWZ0ZXIgcmVuZGVyaW5nLlxuXG5cbiAgdmFyIGhhc0NvbnRleHQ7XG5cbiAgaWYgKGlzQ29udGV4dFByb3ZpZGVyKENvbXBvbmVudCkpIHtcbiAgICBoYXNDb250ZXh0ID0gdHJ1ZTtcbiAgICBwdXNoQ29udGV4dFByb3ZpZGVyKHdvcmtJblByb2dyZXNzKTtcbiAgfSBlbHNlIHtcbiAgICBoYXNDb250ZXh0ID0gZmFsc2U7XG4gIH1cblxuICBwcmVwYXJlVG9SZWFkQ29udGV4dCh3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpO1xuICB2YXIgaW5zdGFuY2UgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG4gIHZhciBzaG91bGRVcGRhdGU7XG5cbiAgaWYgKGluc3RhbmNlID09PSBudWxsKSB7XG4gICAgaWYgKGN1cnJlbnQgIT09IG51bGwpIHtcbiAgICAgIC8vIEEgY2xhc3MgY29tcG9uZW50IHdpdGhvdXQgYW4gaW5zdGFuY2Ugb25seSBtb3VudHMgaWYgaXQgc3VzcGVuZGVkXG4gICAgICAvLyBpbnNpZGUgYSBub24tY29uY3VycmVudCB0cmVlLCBpbiBhbiBpbmNvbnNpc3RlbnQgc3RhdGUuIFdlIHdhbnQgdG9cbiAgICAgIC8vIHRyZWF0IGl0IGxpa2UgYSBuZXcgbW91bnQsIGV2ZW4gdGhvdWdoIGFuIGVtcHR5IHZlcnNpb24gb2YgaXQgYWxyZWFkeVxuICAgICAgLy8gY29tbWl0dGVkLiBEaXNjb25uZWN0IHRoZSBhbHRlcm5hdGUgcG9pbnRlcnMuXG4gICAgICBjdXJyZW50LmFsdGVybmF0ZSA9IG51bGw7XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5hbHRlcm5hdGUgPSBudWxsOyAvLyBTaW5jZSB0aGlzIGlzIGNvbmNlcHR1YWxseSBhIG5ldyBmaWJlciwgc2NoZWR1bGUgYSBQbGFjZW1lbnQgZWZmZWN0XG5cbiAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IFBsYWNlbWVudDtcbiAgICB9IC8vIEluIHRoZSBpbml0aWFsIHBhc3Mgd2UgbWlnaHQgbmVlZCB0byBjb25zdHJ1Y3QgdGhlIGluc3RhbmNlLlxuXG5cbiAgICBjb25zdHJ1Y3RDbGFzc0luc3RhbmNlKHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIG5leHRQcm9wcyk7XG4gICAgbW91bnRDbGFzc0luc3RhbmNlKHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIG5leHRQcm9wcywgcmVuZGVyTGFuZXMpO1xuICAgIHNob3VsZFVwZGF0ZSA9IHRydWU7XG4gIH0gZWxzZSBpZiAoY3VycmVudCA9PT0gbnVsbCkge1xuICAgIC8vIEluIGEgcmVzdW1lLCB3ZSdsbCBhbHJlYWR5IGhhdmUgYW4gaW5zdGFuY2Ugd2UgY2FuIHJldXNlLlxuICAgIHNob3VsZFVwZGF0ZSA9IHJlc3VtZU1vdW50Q2xhc3NJbnN0YW5jZSh3b3JrSW5Qcm9ncmVzcywgQ29tcG9uZW50LCBuZXh0UHJvcHMsIHJlbmRlckxhbmVzKTtcbiAgfSBlbHNlIHtcbiAgICBzaG91bGRVcGRhdGUgPSB1cGRhdGVDbGFzc0luc3RhbmNlKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIG5leHRQcm9wcywgcmVuZGVyTGFuZXMpO1xuICB9XG5cbiAgdmFyIG5leHRVbml0T2ZXb3JrID0gZmluaXNoQ2xhc3NDb21wb25lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgc2hvdWxkVXBkYXRlLCBoYXNDb250ZXh0LCByZW5kZXJMYW5lcyk7XG5cbiAge1xuICAgIHZhciBpbnN0ID0gd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlO1xuXG4gICAgaWYgKHNob3VsZFVwZGF0ZSAmJiBpbnN0LnByb3BzICE9PSBuZXh0UHJvcHMpIHtcbiAgICAgIGlmICghZGlkV2FybkFib3V0UmVhc3NpZ25pbmdQcm9wcykge1xuICAgICAgICBlcnJvcignSXQgbG9va3MgbGlrZSAlcyBpcyByZWFzc2lnbmluZyBpdHMgb3duIGB0aGlzLnByb3BzYCB3aGlsZSByZW5kZXJpbmcuICcgKyAnVGhpcyBpcyBub3Qgc3VwcG9ydGVkIGFuZCBjYW4gbGVhZCB0byBjb25mdXNpbmcgYnVncy4nLCBnZXRDb21wb25lbnROYW1lKHdvcmtJblByb2dyZXNzLnR5cGUpIHx8ICdhIGNvbXBvbmVudCcpO1xuICAgICAgfVxuXG4gICAgICBkaWRXYXJuQWJvdXRSZWFzc2lnbmluZ1Byb3BzID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbmV4dFVuaXRPZldvcms7XG59XG5cbmZ1bmN0aW9uIGZpbmlzaENsYXNzQ29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIHNob3VsZFVwZGF0ZSwgaGFzQ29udGV4dCwgcmVuZGVyTGFuZXMpIHtcbiAgLy8gUmVmcyBzaG91bGQgdXBkYXRlIGV2ZW4gaWYgc2hvdWxkQ29tcG9uZW50VXBkYXRlIHJldHVybnMgZmFsc2VcbiAgbWFya1JlZihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcyk7XG4gIHZhciBkaWRDYXB0dXJlRXJyb3IgPSAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgJiBEaWRDYXB0dXJlKSAhPT0gTm9GbGFncztcblxuICBpZiAoIXNob3VsZFVwZGF0ZSAmJiAhZGlkQ2FwdHVyZUVycm9yKSB7XG4gICAgLy8gQ29udGV4dCBwcm92aWRlcnMgc2hvdWxkIGRlZmVyIHRvIHNDVSBmb3IgcmVuZGVyaW5nXG4gICAgaWYgKGhhc0NvbnRleHQpIHtcbiAgICAgIGludmFsaWRhdGVDb250ZXh0UHJvdmlkZXIod29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgZmFsc2UpO1xuICAgIH1cblxuICAgIHJldHVybiBiYWlsb3V0T25BbHJlYWR5RmluaXNoZWRXb3JrKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG4gIH1cblxuICB2YXIgaW5zdGFuY2UgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7IC8vIFJlcmVuZGVyXG5cbiAgUmVhY3RDdXJyZW50T3duZXIkMS5jdXJyZW50ID0gd29ya0luUHJvZ3Jlc3M7XG4gIHZhciBuZXh0Q2hpbGRyZW47XG5cbiAgaWYgKGRpZENhcHR1cmVFcnJvciAmJiB0eXBlb2YgQ29tcG9uZW50LmdldERlcml2ZWRTdGF0ZUZyb21FcnJvciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIC8vIElmIHdlIGNhcHR1cmVkIGFuIGVycm9yLCBidXQgZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yIGlzIG5vdCBkZWZpbmVkLFxuICAgIC8vIHVubW91bnQgYWxsIHRoZSBjaGlsZHJlbi4gY29tcG9uZW50RGlkQ2F0Y2ggd2lsbCBzY2hlZHVsZSBhbiB1cGRhdGUgdG9cbiAgICAvLyByZS1yZW5kZXIgYSBmYWxsYmFjay4gVGhpcyBpcyB0ZW1wb3JhcnkgdW50aWwgd2UgbWlncmF0ZSBldmVyeW9uZSB0b1xuICAgIC8vIHRoZSBuZXcgQVBJLlxuICAgIC8vIFRPRE86IFdhcm4gaW4gYSBmdXR1cmUgcmVsZWFzZS5cbiAgICBuZXh0Q2hpbGRyZW4gPSBudWxsO1xuXG4gICAge1xuICAgICAgc3RvcFByb2ZpbGVyVGltZXJJZlJ1bm5pbmcoKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAge1xuICAgICAgc2V0SXNSZW5kZXJpbmcodHJ1ZSk7XG4gICAgICBuZXh0Q2hpbGRyZW4gPSBpbnN0YW5jZS5yZW5kZXIoKTtcblxuICAgICAgaWYgKCB3b3JrSW5Qcm9ncmVzcy5tb2RlICYgU3RyaWN0TW9kZSkge1xuICAgICAgICBkaXNhYmxlTG9ncygpO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgaW5zdGFuY2UucmVuZGVyKCk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgcmVlbmFibGVMb2dzKCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgc2V0SXNSZW5kZXJpbmcoZmFsc2UpO1xuICAgIH1cbiAgfSAvLyBSZWFjdCBEZXZUb29scyByZWFkcyB0aGlzIGZsYWcuXG5cblxuICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBQZXJmb3JtZWRXb3JrO1xuXG4gIGlmIChjdXJyZW50ICE9PSBudWxsICYmIGRpZENhcHR1cmVFcnJvcikge1xuICAgIC8vIElmIHdlJ3JlIHJlY292ZXJpbmcgZnJvbSBhbiBlcnJvciwgcmVjb25jaWxlIHdpdGhvdXQgcmV1c2luZyBhbnkgb2ZcbiAgICAvLyB0aGUgZXhpc3RpbmcgY2hpbGRyZW4uIENvbmNlcHR1YWxseSwgdGhlIG5vcm1hbCBjaGlsZHJlbiBhbmQgdGhlIGNoaWxkcmVuXG4gICAgLy8gdGhhdCBhcmUgc2hvd24gb24gZXJyb3IgYXJlIHR3byBkaWZmZXJlbnQgc2V0cywgc28gd2Ugc2hvdWxkbid0IHJldXNlXG4gICAgLy8gbm9ybWFsIGNoaWxkcmVuIGV2ZW4gaWYgdGhlaXIgaWRlbnRpdGllcyBtYXRjaC5cbiAgICBmb3JjZVVubW91bnRDdXJyZW50QW5kUmVjb25jaWxlKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBuZXh0Q2hpbGRyZW4sIHJlbmRlckxhbmVzKTtcbiAgfSBlbHNlIHtcbiAgICByZWNvbmNpbGVDaGlsZHJlbihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgbmV4dENoaWxkcmVuLCByZW5kZXJMYW5lcyk7XG4gIH0gLy8gTWVtb2l6ZSBzdGF0ZSB1c2luZyB0aGUgdmFsdWVzIHdlIGp1c3QgdXNlZCB0byByZW5kZXIuXG4gIC8vIFRPRE86IFJlc3RydWN0dXJlIHNvIHdlIG5ldmVyIHJlYWQgdmFsdWVzIGZyb20gdGhlIGluc3RhbmNlLlxuXG5cbiAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IGluc3RhbmNlLnN0YXRlOyAvLyBUaGUgY29udGV4dCBtaWdodCBoYXZlIGNoYW5nZWQgc28gd2UgbmVlZCB0byByZWNhbGN1bGF0ZSBpdC5cblxuICBpZiAoaGFzQ29udGV4dCkge1xuICAgIGludmFsaWRhdGVDb250ZXh0UHJvdmlkZXIod29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgdHJ1ZSk7XG4gIH1cblxuICByZXR1cm4gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG59XG5cbmZ1bmN0aW9uIHB1c2hIb3N0Um9vdENvbnRleHQod29ya0luUHJvZ3Jlc3MpIHtcbiAgdmFyIHJvb3QgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG5cbiAgaWYgKHJvb3QucGVuZGluZ0NvbnRleHQpIHtcbiAgICBwdXNoVG9wTGV2ZWxDb250ZXh0T2JqZWN0KHdvcmtJblByb2dyZXNzLCByb290LnBlbmRpbmdDb250ZXh0LCByb290LnBlbmRpbmdDb250ZXh0ICE9PSByb290LmNvbnRleHQpO1xuICB9IGVsc2UgaWYgKHJvb3QuY29udGV4dCkge1xuICAgIC8vIFNob3VsZCBhbHdheXMgYmUgc2V0XG4gICAgcHVzaFRvcExldmVsQ29udGV4dE9iamVjdCh3b3JrSW5Qcm9ncmVzcywgcm9vdC5jb250ZXh0LCBmYWxzZSk7XG4gIH1cblxuICBwdXNoSG9zdENvbnRhaW5lcih3b3JrSW5Qcm9ncmVzcywgcm9vdC5jb250YWluZXJJbmZvKTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlSG9zdFJvb3QoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKSB7XG4gIHB1c2hIb3N0Um9vdENvbnRleHQod29ya0luUHJvZ3Jlc3MpO1xuICB2YXIgdXBkYXRlUXVldWUgPSB3b3JrSW5Qcm9ncmVzcy51cGRhdGVRdWV1ZTtcblxuICBpZiAoIShjdXJyZW50ICE9PSBudWxsICYmIHVwZGF0ZVF1ZXVlICE9PSBudWxsKSkge1xuICAgIHtcbiAgICAgIHRocm93IEVycm9yKCBcIklmIHRoZSByb290IGRvZXMgbm90IGhhdmUgYW4gdXBkYXRlUXVldWUsIHdlIHNob3VsZCBoYXZlIGFscmVhZHkgYmFpbGVkIG91dC4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIiApO1xuICAgIH1cbiAgfVxuXG4gIHZhciBuZXh0UHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHM7XG4gIHZhciBwcmV2U3RhdGUgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlO1xuICB2YXIgcHJldkNoaWxkcmVuID0gcHJldlN0YXRlICE9PSBudWxsID8gcHJldlN0YXRlLmVsZW1lbnQgOiBudWxsO1xuICBjbG9uZVVwZGF0ZVF1ZXVlKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzKTtcbiAgcHJvY2Vzc1VwZGF0ZVF1ZXVlKHdvcmtJblByb2dyZXNzLCBuZXh0UHJvcHMsIG51bGwsIHJlbmRlckxhbmVzKTtcbiAgdmFyIG5leHRTdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7IC8vIENhdXRpb246IFJlYWN0IERldlRvb2xzIGN1cnJlbnRseSBkZXBlbmRzIG9uIHRoaXMgcHJvcGVydHlcbiAgLy8gYmVpbmcgY2FsbGVkIFwiZWxlbWVudFwiLlxuXG4gIHZhciBuZXh0Q2hpbGRyZW4gPSBuZXh0U3RhdGUuZWxlbWVudDtcblxuICBpZiAobmV4dENoaWxkcmVuID09PSBwcmV2Q2hpbGRyZW4pIHtcbiAgICByZXNldEh5ZHJhdGlvblN0YXRlKCk7XG4gICAgcmV0dXJuIGJhaWxvdXRPbkFscmVhZHlGaW5pc2hlZFdvcmsoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKTtcbiAgfVxuXG4gIHZhciByb290ID0gd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlO1xuXG4gIGlmIChyb290Lmh5ZHJhdGUgJiYgZW50ZXJIeWRyYXRpb25TdGF0ZSh3b3JrSW5Qcm9ncmVzcykpIHtcbiAgICAvLyBJZiB3ZSBkb24ndCBoYXZlIGFueSBjdXJyZW50IGNoaWxkcmVuIHRoaXMgbWlnaHQgYmUgdGhlIGZpcnN0IHBhc3MuXG4gICAgLy8gV2UgYWx3YXlzIHRyeSB0byBoeWRyYXRlLiBJZiB0aGlzIGlzbid0IGEgaHlkcmF0aW9uIHBhc3MgdGhlcmUgd29uJ3RcbiAgICAvLyBiZSBhbnkgY2hpbGRyZW4gdG8gaHlkcmF0ZSB3aGljaCBpcyBlZmZlY3RpdmVseSB0aGUgc2FtZSB0aGluZyBhc1xuICAgIC8vIG5vdCBoeWRyYXRpbmcuXG4gICAge1xuICAgICAgdmFyIG11dGFibGVTb3VyY2VFYWdlckh5ZHJhdGlvbkRhdGEgPSByb290Lm11dGFibGVTb3VyY2VFYWdlckh5ZHJhdGlvbkRhdGE7XG5cbiAgICAgIGlmIChtdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhICE9IG51bGwpIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhLmxlbmd0aDsgaSArPSAyKSB7XG4gICAgICAgICAgdmFyIG11dGFibGVTb3VyY2UgPSBtdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhW2ldO1xuICAgICAgICAgIHZhciB2ZXJzaW9uID0gbXV0YWJsZVNvdXJjZUVhZ2VySHlkcmF0aW9uRGF0YVtpICsgMV07XG4gICAgICAgICAgc2V0V29ya0luUHJvZ3Jlc3NWZXJzaW9uKG11dGFibGVTb3VyY2UsIHZlcnNpb24pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGNoaWxkID0gbW91bnRDaGlsZEZpYmVycyh3b3JrSW5Qcm9ncmVzcywgbnVsbCwgbmV4dENoaWxkcmVuLCByZW5kZXJMYW5lcyk7XG4gICAgd29ya0luUHJvZ3Jlc3MuY2hpbGQgPSBjaGlsZDtcbiAgICB2YXIgbm9kZSA9IGNoaWxkO1xuXG4gICAgd2hpbGUgKG5vZGUpIHtcbiAgICAgIC8vIE1hcmsgZWFjaCBjaGlsZCBhcyBoeWRyYXRpbmcuIFRoaXMgaXMgYSBmYXN0IHBhdGggdG8ga25vdyB3aGV0aGVyIHRoaXNcbiAgICAgIC8vIHRyZWUgaXMgcGFydCBvZiBhIGh5ZHJhdGluZyB0cmVlLiBUaGlzIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIGlmIGEgY2hpbGRcbiAgICAgIC8vIG5vZGUgaGFzIGZ1bGx5IG1vdW50ZWQgeWV0LCBhbmQgZm9yIHNjaGVkdWxpbmcgZXZlbnQgcmVwbGF5aW5nLlxuICAgICAgLy8gQ29uY2VwdHVhbGx5IHRoaXMgaXMgc2ltaWxhciB0byBQbGFjZW1lbnQgaW4gdGhhdCBhIG5ldyBzdWJ0cmVlIGlzXG4gICAgICAvLyBpbnNlcnRlZCBpbnRvIHRoZSBSZWFjdCB0cmVlIGhlcmUuIEl0IGp1c3QgaGFwcGVucyB0byBub3QgbmVlZCBET01cbiAgICAgIC8vIG11dGF0aW9ucyBiZWNhdXNlIGl0IGFscmVhZHkgZXhpc3RzLlxuICAgICAgbm9kZS5mbGFncyA9IG5vZGUuZmxhZ3MgJiB+UGxhY2VtZW50IHwgSHlkcmF0aW5nO1xuICAgICAgbm9kZSA9IG5vZGUuc2libGluZztcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gT3RoZXJ3aXNlIHJlc2V0IGh5ZHJhdGlvbiBzdGF0ZSBpbiBjYXNlIHdlIGFib3J0ZWQgYW5kIHJlc3VtZWQgYW5vdGhlclxuICAgIC8vIHJvb3QuXG4gICAgcmVjb25jaWxlQ2hpbGRyZW4oY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIG5leHRDaGlsZHJlbiwgcmVuZGVyTGFuZXMpO1xuICAgIHJlc2V0SHlkcmF0aW9uU3RhdGUoKTtcbiAgfVxuXG4gIHJldHVybiB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcbn1cblxuZnVuY3Rpb24gdXBkYXRlSG9zdENvbXBvbmVudChjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpIHtcbiAgcHVzaEhvc3RDb250ZXh0KHdvcmtJblByb2dyZXNzKTtcblxuICBpZiAoY3VycmVudCA9PT0gbnVsbCkge1xuICAgIHRyeVRvQ2xhaW1OZXh0SHlkcmF0YWJsZUluc3RhbmNlKHdvcmtJblByb2dyZXNzKTtcbiAgfVxuXG4gIHZhciB0eXBlID0gd29ya0luUHJvZ3Jlc3MudHlwZTtcbiAgdmFyIG5leHRQcm9wcyA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcztcbiAgdmFyIHByZXZQcm9wcyA9IGN1cnJlbnQgIT09IG51bGwgPyBjdXJyZW50Lm1lbW9pemVkUHJvcHMgOiBudWxsO1xuICB2YXIgbmV4dENoaWxkcmVuID0gbmV4dFByb3BzLmNoaWxkcmVuO1xuICB2YXIgaXNEaXJlY3RUZXh0Q2hpbGQgPSBzaG91bGRTZXRUZXh0Q29udGVudCh0eXBlLCBuZXh0UHJvcHMpO1xuXG4gIGlmIChpc0RpcmVjdFRleHRDaGlsZCkge1xuICAgIC8vIFdlIHNwZWNpYWwgY2FzZSBhIGRpcmVjdCB0ZXh0IGNoaWxkIG9mIGEgaG9zdCBub2RlLiBUaGlzIGlzIGEgY29tbW9uXG4gICAgLy8gY2FzZS4gV2Ugd29uJ3QgaGFuZGxlIGl0IGFzIGEgcmVpZmllZCBjaGlsZC4gV2Ugd2lsbCBpbnN0ZWFkIGhhbmRsZVxuICAgIC8vIHRoaXMgaW4gdGhlIGhvc3QgZW52aXJvbm1lbnQgdGhhdCBhbHNvIGhhcyBhY2Nlc3MgdG8gdGhpcyBwcm9wLiBUaGF0XG4gICAgLy8gYXZvaWRzIGFsbG9jYXRpbmcgYW5vdGhlciBIb3N0VGV4dCBmaWJlciBhbmQgdHJhdmVyc2luZyBpdC5cbiAgICBuZXh0Q2hpbGRyZW4gPSBudWxsO1xuICB9IGVsc2UgaWYgKHByZXZQcm9wcyAhPT0gbnVsbCAmJiBzaG91bGRTZXRUZXh0Q29udGVudCh0eXBlLCBwcmV2UHJvcHMpKSB7XG4gICAgLy8gSWYgd2UncmUgc3dpdGNoaW5nIGZyb20gYSBkaXJlY3QgdGV4dCBjaGlsZCB0byBhIG5vcm1hbCBjaGlsZCwgb3IgdG9cbiAgICAvLyBlbXB0eSwgd2UgbmVlZCB0byBzY2hlZHVsZSB0aGUgdGV4dCBjb250ZW50IHRvIGJlIHJlc2V0LlxuICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IENvbnRlbnRSZXNldDtcbiAgfVxuXG4gIG1hcmtSZWYoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MpO1xuICByZWNvbmNpbGVDaGlsZHJlbihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgbmV4dENoaWxkcmVuLCByZW5kZXJMYW5lcyk7XG4gIHJldHVybiB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcbn1cblxuZnVuY3Rpb24gdXBkYXRlSG9zdFRleHQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MpIHtcbiAgaWYgKGN1cnJlbnQgPT09IG51bGwpIHtcbiAgICB0cnlUb0NsYWltTmV4dEh5ZHJhdGFibGVJbnN0YW5jZSh3b3JrSW5Qcm9ncmVzcyk7XG4gIH0gLy8gTm90aGluZyB0byBkbyBoZXJlLiBUaGlzIGlzIHRlcm1pbmFsLiBXZSdsbCBkbyB0aGUgY29tcGxldGlvbiBzdGVwXG4gIC8vIGltbWVkaWF0ZWx5IGFmdGVyLlxuXG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIG1vdW50TGF6eUNvbXBvbmVudChfY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIGVsZW1lbnRUeXBlLCB1cGRhdGVMYW5lcywgcmVuZGVyTGFuZXMpIHtcbiAgaWYgKF9jdXJyZW50ICE9PSBudWxsKSB7XG4gICAgLy8gQSBsYXp5IGNvbXBvbmVudCBvbmx5IG1vdW50cyBpZiBpdCBzdXNwZW5kZWQgaW5zaWRlIGEgbm9uLVxuICAgIC8vIGNvbmN1cnJlbnQgdHJlZSwgaW4gYW4gaW5jb25zaXN0ZW50IHN0YXRlLiBXZSB3YW50IHRvIHRyZWF0IGl0IGxpa2VcbiAgICAvLyBhIG5ldyBtb3VudCwgZXZlbiB0aG91Z2ggYW4gZW1wdHkgdmVyc2lvbiBvZiBpdCBhbHJlYWR5IGNvbW1pdHRlZC5cbiAgICAvLyBEaXNjb25uZWN0IHRoZSBhbHRlcm5hdGUgcG9pbnRlcnMuXG4gICAgX2N1cnJlbnQuYWx0ZXJuYXRlID0gbnVsbDtcbiAgICB3b3JrSW5Qcm9ncmVzcy5hbHRlcm5hdGUgPSBudWxsOyAvLyBTaW5jZSB0aGlzIGlzIGNvbmNlcHR1YWxseSBhIG5ldyBmaWJlciwgc2NoZWR1bGUgYSBQbGFjZW1lbnQgZWZmZWN0XG5cbiAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBQbGFjZW1lbnQ7XG4gIH1cblxuICB2YXIgcHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHM7XG4gIHZhciBsYXp5Q29tcG9uZW50ID0gZWxlbWVudFR5cGU7XG4gIHZhciBwYXlsb2FkID0gbGF6eUNvbXBvbmVudC5fcGF5bG9hZDtcbiAgdmFyIGluaXQgPSBsYXp5Q29tcG9uZW50Ll9pbml0O1xuICB2YXIgQ29tcG9uZW50ID0gaW5pdChwYXlsb2FkKTsgLy8gU3RvcmUgdGhlIHVud3JhcHBlZCBjb21wb25lbnQgaW4gdGhlIHR5cGUuXG5cbiAgd29ya0luUHJvZ3Jlc3MudHlwZSA9IENvbXBvbmVudDtcbiAgdmFyIHJlc29sdmVkVGFnID0gd29ya0luUHJvZ3Jlc3MudGFnID0gcmVzb2x2ZUxhenlDb21wb25lbnRUYWcoQ29tcG9uZW50KTtcbiAgdmFyIHJlc29sdmVkUHJvcHMgPSByZXNvbHZlRGVmYXVsdFByb3BzKENvbXBvbmVudCwgcHJvcHMpO1xuICB2YXIgY2hpbGQ7XG5cbiAgc3dpdGNoIChyZXNvbHZlZFRhZykge1xuICAgIGNhc2UgRnVuY3Rpb25Db21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHtcbiAgICAgICAgICB2YWxpZGF0ZUZ1bmN0aW9uQ29tcG9uZW50SW5EZXYod29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCk7XG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MudHlwZSA9IENvbXBvbmVudCA9IHJlc29sdmVGdW5jdGlvbkZvckhvdFJlbG9hZGluZyhDb21wb25lbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgY2hpbGQgPSB1cGRhdGVGdW5jdGlvbkNvbXBvbmVudChudWxsLCB3b3JrSW5Qcm9ncmVzcywgQ29tcG9uZW50LCByZXNvbHZlZFByb3BzLCByZW5kZXJMYW5lcyk7XG4gICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgIH1cblxuICAgIGNhc2UgQ2xhc3NDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHtcbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy50eXBlID0gQ29tcG9uZW50ID0gcmVzb2x2ZUNsYXNzRm9ySG90UmVsb2FkaW5nKENvbXBvbmVudCk7XG4gICAgICAgIH1cblxuICAgICAgICBjaGlsZCA9IHVwZGF0ZUNsYXNzQ29tcG9uZW50KG51bGwsIHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIHJlc29sdmVkUHJvcHMsIHJlbmRlckxhbmVzKTtcbiAgICAgICAgcmV0dXJuIGNoaWxkO1xuICAgICAgfVxuXG4gICAgY2FzZSBGb3J3YXJkUmVmOlxuICAgICAge1xuICAgICAgICB7XG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MudHlwZSA9IENvbXBvbmVudCA9IHJlc29sdmVGb3J3YXJkUmVmRm9ySG90UmVsb2FkaW5nKENvbXBvbmVudCk7XG4gICAgICAgIH1cblxuICAgICAgICBjaGlsZCA9IHVwZGF0ZUZvcndhcmRSZWYobnVsbCwgd29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgcmVzb2x2ZWRQcm9wcywgcmVuZGVyTGFuZXMpO1xuICAgICAgICByZXR1cm4gY2hpbGQ7XG4gICAgICB9XG5cbiAgICBjYXNlIE1lbW9Db21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHtcbiAgICAgICAgICBpZiAod29ya0luUHJvZ3Jlc3MudHlwZSAhPT0gd29ya0luUHJvZ3Jlc3MuZWxlbWVudFR5cGUpIHtcbiAgICAgICAgICAgIHZhciBvdXRlclByb3BUeXBlcyA9IENvbXBvbmVudC5wcm9wVHlwZXM7XG5cbiAgICAgICAgICAgIGlmIChvdXRlclByb3BUeXBlcykge1xuICAgICAgICAgICAgICBjaGVja1Byb3BUeXBlcyhvdXRlclByb3BUeXBlcywgcmVzb2x2ZWRQcm9wcywgLy8gUmVzb2x2ZWQgZm9yIG91dGVyIG9ubHlcbiAgICAgICAgICAgICAgJ3Byb3AnLCBnZXRDb21wb25lbnROYW1lKENvbXBvbmVudCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNoaWxkID0gdXBkYXRlTWVtb0NvbXBvbmVudChudWxsLCB3b3JrSW5Qcm9ncmVzcywgQ29tcG9uZW50LCByZXNvbHZlRGVmYXVsdFByb3BzKENvbXBvbmVudC50eXBlLCByZXNvbHZlZFByb3BzKSwgLy8gVGhlIGlubmVyIHR5cGUgY2FuIGhhdmUgZGVmYXVsdHMgdG9vXG4gICAgICAgIHVwZGF0ZUxhbmVzLCByZW5kZXJMYW5lcyk7XG4gICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgIH1cbiAgfVxuXG4gIHZhciBoaW50ID0gJyc7XG5cbiAge1xuICAgIGlmIChDb21wb25lbnQgIT09IG51bGwgJiYgdHlwZW9mIENvbXBvbmVudCA9PT0gJ29iamVjdCcgJiYgQ29tcG9uZW50LiQkdHlwZW9mID09PSBSRUFDVF9MQVpZX1RZUEUpIHtcbiAgICAgIGhpbnQgPSAnIERpZCB5b3Ugd3JhcCBhIGNvbXBvbmVudCBpbiBSZWFjdC5sYXp5KCkgbW9yZSB0aGFuIG9uY2U/JztcbiAgICB9XG4gIH0gLy8gVGhpcyBtZXNzYWdlIGludGVudGlvbmFsbHkgZG9lc24ndCBtZW50aW9uIEZvcndhcmRSZWYgb3IgTWVtb0NvbXBvbmVudFxuICAvLyBiZWNhdXNlIHRoZSBmYWN0IHRoYXQgaXQncyBhIHNlcGFyYXRlIHR5cGUgb2Ygd29yayBpcyBhblxuICAvLyBpbXBsZW1lbnRhdGlvbiBkZXRhaWwuXG5cblxuICB7XG4gICAge1xuICAgICAgdGhyb3cgRXJyb3IoIFwiRWxlbWVudCB0eXBlIGlzIGludmFsaWQuIFJlY2VpdmVkIGEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvOiBcIiArIENvbXBvbmVudCArIFwiLiBMYXp5IGVsZW1lbnQgdHlwZSBtdXN0IHJlc29sdmUgdG8gYSBjbGFzcyBvciBmdW5jdGlvbi5cIiArIGhpbnQgKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gbW91bnRJbmNvbXBsZXRlQ2xhc3NDb21wb25lbnQoX2N1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIG5leHRQcm9wcywgcmVuZGVyTGFuZXMpIHtcbiAgaWYgKF9jdXJyZW50ICE9PSBudWxsKSB7XG4gICAgLy8gQW4gaW5jb21wbGV0ZSBjb21wb25lbnQgb25seSBtb3VudHMgaWYgaXQgc3VzcGVuZGVkIGluc2lkZSBhIG5vbi1cbiAgICAvLyBjb25jdXJyZW50IHRyZWUsIGluIGFuIGluY29uc2lzdGVudCBzdGF0ZS4gV2Ugd2FudCB0byB0cmVhdCBpdCBsaWtlXG4gICAgLy8gYSBuZXcgbW91bnQsIGV2ZW4gdGhvdWdoIGFuIGVtcHR5IHZlcnNpb24gb2YgaXQgYWxyZWFkeSBjb21taXR0ZWQuXG4gICAgLy8gRGlzY29ubmVjdCB0aGUgYWx0ZXJuYXRlIHBvaW50ZXJzLlxuICAgIF9jdXJyZW50LmFsdGVybmF0ZSA9IG51bGw7XG4gICAgd29ya0luUHJvZ3Jlc3MuYWx0ZXJuYXRlID0gbnVsbDsgLy8gU2luY2UgdGhpcyBpcyBjb25jZXB0dWFsbHkgYSBuZXcgZmliZXIsIHNjaGVkdWxlIGEgUGxhY2VtZW50IGVmZmVjdFxuXG4gICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gUGxhY2VtZW50O1xuICB9IC8vIFByb21vdGUgdGhlIGZpYmVyIHRvIGEgY2xhc3MgYW5kIHRyeSByZW5kZXJpbmcgYWdhaW4uXG5cblxuICB3b3JrSW5Qcm9ncmVzcy50YWcgPSBDbGFzc0NvbXBvbmVudDsgLy8gVGhlIHJlc3Qgb2YgdGhpcyBmdW5jdGlvbiBpcyBhIGZvcmsgb2YgYHVwZGF0ZUNsYXNzQ29tcG9uZW50YFxuICAvLyBQdXNoIGNvbnRleHQgcHJvdmlkZXJzIGVhcmx5IHRvIHByZXZlbnQgY29udGV4dCBzdGFjayBtaXNtYXRjaGVzLlxuICAvLyBEdXJpbmcgbW91bnRpbmcgd2UgZG9uJ3Qga25vdyB0aGUgY2hpbGQgY29udGV4dCB5ZXQgYXMgdGhlIGluc3RhbmNlIGRvZXNuJ3QgZXhpc3QuXG4gIC8vIFdlIHdpbGwgaW52YWxpZGF0ZSB0aGUgY2hpbGQgY29udGV4dCBpbiBmaW5pc2hDbGFzc0NvbXBvbmVudCgpIHJpZ2h0IGFmdGVyIHJlbmRlcmluZy5cblxuICB2YXIgaGFzQ29udGV4dDtcblxuICBpZiAoaXNDb250ZXh0UHJvdmlkZXIoQ29tcG9uZW50KSkge1xuICAgIGhhc0NvbnRleHQgPSB0cnVlO1xuICAgIHB1c2hDb250ZXh0UHJvdmlkZXIod29ya0luUHJvZ3Jlc3MpO1xuICB9IGVsc2Uge1xuICAgIGhhc0NvbnRleHQgPSBmYWxzZTtcbiAgfVxuXG4gIHByZXBhcmVUb1JlYWRDb250ZXh0KHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG4gIGNvbnN0cnVjdENsYXNzSW5zdGFuY2Uod29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgbmV4dFByb3BzKTtcbiAgbW91bnRDbGFzc0luc3RhbmNlKHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIG5leHRQcm9wcywgcmVuZGVyTGFuZXMpO1xuICByZXR1cm4gZmluaXNoQ2xhc3NDb21wb25lbnQobnVsbCwgd29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgdHJ1ZSwgaGFzQ29udGV4dCwgcmVuZGVyTGFuZXMpO1xufVxuXG5mdW5jdGlvbiBtb3VudEluZGV0ZXJtaW5hdGVDb21wb25lbnQoX2N1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIHJlbmRlckxhbmVzKSB7XG4gIGlmIChfY3VycmVudCAhPT0gbnVsbCkge1xuICAgIC8vIEFuIGluZGV0ZXJtaW5hdGUgY29tcG9uZW50IG9ubHkgbW91bnRzIGlmIGl0IHN1c3BlbmRlZCBpbnNpZGUgYSBub24tXG4gICAgLy8gY29uY3VycmVudCB0cmVlLCBpbiBhbiBpbmNvbnNpc3RlbnQgc3RhdGUuIFdlIHdhbnQgdG8gdHJlYXQgaXQgbGlrZVxuICAgIC8vIGEgbmV3IG1vdW50LCBldmVuIHRob3VnaCBhbiBlbXB0eSB2ZXJzaW9uIG9mIGl0IGFscmVhZHkgY29tbWl0dGVkLlxuICAgIC8vIERpc2Nvbm5lY3QgdGhlIGFsdGVybmF0ZSBwb2ludGVycy5cbiAgICBfY3VycmVudC5hbHRlcm5hdGUgPSBudWxsO1xuICAgIHdvcmtJblByb2dyZXNzLmFsdGVybmF0ZSA9IG51bGw7IC8vIFNpbmNlIHRoaXMgaXMgY29uY2VwdHVhbGx5IGEgbmV3IGZpYmVyLCBzY2hlZHVsZSBhIFBsYWNlbWVudCBlZmZlY3RcblxuICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IFBsYWNlbWVudDtcbiAgfVxuXG4gIHZhciBwcm9wcyA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcztcbiAgdmFyIGNvbnRleHQ7XG5cbiAge1xuICAgIHZhciB1bm1hc2tlZENvbnRleHQgPSBnZXRVbm1hc2tlZENvbnRleHQod29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgZmFsc2UpO1xuICAgIGNvbnRleHQgPSBnZXRNYXNrZWRDb250ZXh0KHdvcmtJblByb2dyZXNzLCB1bm1hc2tlZENvbnRleHQpO1xuICB9XG5cbiAgcHJlcGFyZVRvUmVhZENvbnRleHQod29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKTtcbiAgdmFyIHZhbHVlO1xuXG4gIHtcbiAgICBpZiAoQ29tcG9uZW50LnByb3RvdHlwZSAmJiB0eXBlb2YgQ29tcG9uZW50LnByb3RvdHlwZS5yZW5kZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHZhciBjb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZShDb21wb25lbnQpIHx8ICdVbmtub3duJztcblxuICAgICAgaWYgKCFkaWRXYXJuQWJvdXRCYWRDbGFzc1tjb21wb25lbnROYW1lXSkge1xuICAgICAgICBlcnJvcihcIlRoZSA8JXMgLz4gY29tcG9uZW50IGFwcGVhcnMgdG8gaGF2ZSBhIHJlbmRlciBtZXRob2QsIGJ1dCBkb2Vzbid0IGV4dGVuZCBSZWFjdC5Db21wb25lbnQuIFwiICsgJ1RoaXMgaXMgbGlrZWx5IHRvIGNhdXNlIGVycm9ycy4gQ2hhbmdlICVzIHRvIGV4dGVuZCBSZWFjdC5Db21wb25lbnQgaW5zdGVhZC4nLCBjb21wb25lbnROYW1lLCBjb21wb25lbnROYW1lKTtcblxuICAgICAgICBkaWRXYXJuQWJvdXRCYWRDbGFzc1tjb21wb25lbnROYW1lXSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHdvcmtJblByb2dyZXNzLm1vZGUgJiBTdHJpY3RNb2RlKSB7XG4gICAgICBSZWFjdFN0cmljdE1vZGVXYXJuaW5ncy5yZWNvcmRMZWdhY3lDb250ZXh0V2FybmluZyh3b3JrSW5Qcm9ncmVzcywgbnVsbCk7XG4gICAgfVxuXG4gICAgc2V0SXNSZW5kZXJpbmcodHJ1ZSk7XG4gICAgUmVhY3RDdXJyZW50T3duZXIkMS5jdXJyZW50ID0gd29ya0luUHJvZ3Jlc3M7XG4gICAgdmFsdWUgPSByZW5kZXJXaXRoSG9va3MobnVsbCwgd29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgcHJvcHMsIGNvbnRleHQsIHJlbmRlckxhbmVzKTtcbiAgICBzZXRJc1JlbmRlcmluZyhmYWxzZSk7XG4gIH0gLy8gUmVhY3QgRGV2VG9vbHMgcmVhZHMgdGhpcyBmbGFnLlxuXG5cbiAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gUGVyZm9ybWVkV29yaztcblxuICB7XG4gICAgLy8gU3VwcG9ydCBmb3IgbW9kdWxlIGNvbXBvbmVudHMgaXMgZGVwcmVjYXRlZCBhbmQgaXMgcmVtb3ZlZCBiZWhpbmQgYSBmbGFnLlxuICAgIC8vIFdoZXRoZXIgb3Igbm90IGl0IHdvdWxkIGNyYXNoIGxhdGVyLCB3ZSB3YW50IHRvIHNob3cgYSBnb29kIG1lc3NhZ2UgaW4gREVWIGZpcnN0LlxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsICYmIHR5cGVvZiB2YWx1ZS5yZW5kZXIgPT09ICdmdW5jdGlvbicgJiYgdmFsdWUuJCR0eXBlb2YgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdmFyIF9jb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZShDb21wb25lbnQpIHx8ICdVbmtub3duJztcblxuICAgICAgaWYgKCFkaWRXYXJuQWJvdXRNb2R1bGVQYXR0ZXJuQ29tcG9uZW50W19jb21wb25lbnROYW1lXSkge1xuICAgICAgICBlcnJvcignVGhlIDwlcyAvPiBjb21wb25lbnQgYXBwZWFycyB0byBiZSBhIGZ1bmN0aW9uIGNvbXBvbmVudCB0aGF0IHJldHVybnMgYSBjbGFzcyBpbnN0YW5jZS4gJyArICdDaGFuZ2UgJXMgdG8gYSBjbGFzcyB0aGF0IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IGluc3RlYWQuICcgKyBcIklmIHlvdSBjYW4ndCB1c2UgYSBjbGFzcyB0cnkgYXNzaWduaW5nIHRoZSBwcm90b3R5cGUgb24gdGhlIGZ1bmN0aW9uIGFzIGEgd29ya2Fyb3VuZC4gXCIgKyBcImAlcy5wcm90b3R5cGUgPSBSZWFjdC5Db21wb25lbnQucHJvdG90eXBlYC4gRG9uJ3QgdXNlIGFuIGFycm93IGZ1bmN0aW9uIHNpbmNlIGl0IFwiICsgJ2Nhbm5vdCBiZSBjYWxsZWQgd2l0aCBgbmV3YCBieSBSZWFjdC4nLCBfY29tcG9uZW50TmFtZSwgX2NvbXBvbmVudE5hbWUsIF9jb21wb25lbnROYW1lKTtcblxuICAgICAgICBkaWRXYXJuQWJvdXRNb2R1bGVQYXR0ZXJuQ29tcG9uZW50W19jb21wb25lbnROYW1lXSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKCAvLyBSdW4gdGhlc2UgY2hlY2tzIGluIHByb2R1Y3Rpb24gb25seSBpZiB0aGUgZmxhZyBpcyBvZmYuXG4gIC8vIEV2ZW50dWFsbHkgd2UnbGwgZGVsZXRlIHRoaXMgYnJhbmNoIGFsdG9nZXRoZXIuXG4gICB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsICYmIHR5cGVvZiB2YWx1ZS5yZW5kZXIgPT09ICdmdW5jdGlvbicgJiYgdmFsdWUuJCR0eXBlb2YgPT09IHVuZGVmaW5lZCkge1xuICAgIHtcbiAgICAgIHZhciBfY29tcG9uZW50TmFtZTIgPSBnZXRDb21wb25lbnROYW1lKENvbXBvbmVudCkgfHwgJ1Vua25vd24nO1xuXG4gICAgICBpZiAoIWRpZFdhcm5BYm91dE1vZHVsZVBhdHRlcm5Db21wb25lbnRbX2NvbXBvbmVudE5hbWUyXSkge1xuICAgICAgICBlcnJvcignVGhlIDwlcyAvPiBjb21wb25lbnQgYXBwZWFycyB0byBiZSBhIGZ1bmN0aW9uIGNvbXBvbmVudCB0aGF0IHJldHVybnMgYSBjbGFzcyBpbnN0YW5jZS4gJyArICdDaGFuZ2UgJXMgdG8gYSBjbGFzcyB0aGF0IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IGluc3RlYWQuICcgKyBcIklmIHlvdSBjYW4ndCB1c2UgYSBjbGFzcyB0cnkgYXNzaWduaW5nIHRoZSBwcm90b3R5cGUgb24gdGhlIGZ1bmN0aW9uIGFzIGEgd29ya2Fyb3VuZC4gXCIgKyBcImAlcy5wcm90b3R5cGUgPSBSZWFjdC5Db21wb25lbnQucHJvdG90eXBlYC4gRG9uJ3QgdXNlIGFuIGFycm93IGZ1bmN0aW9uIHNpbmNlIGl0IFwiICsgJ2Nhbm5vdCBiZSBjYWxsZWQgd2l0aCBgbmV3YCBieSBSZWFjdC4nLCBfY29tcG9uZW50TmFtZTIsIF9jb21wb25lbnROYW1lMiwgX2NvbXBvbmVudE5hbWUyKTtcblxuICAgICAgICBkaWRXYXJuQWJvdXRNb2R1bGVQYXR0ZXJuQ29tcG9uZW50W19jb21wb25lbnROYW1lMl0gPSB0cnVlO1xuICAgICAgfVxuICAgIH0gLy8gUHJvY2VlZCB1bmRlciB0aGUgYXNzdW1wdGlvbiB0aGF0IHRoaXMgaXMgYSBjbGFzcyBpbnN0YW5jZVxuXG5cbiAgICB3b3JrSW5Qcm9ncmVzcy50YWcgPSBDbGFzc0NvbXBvbmVudDsgLy8gVGhyb3cgb3V0IGFueSBob29rcyB0aGF0IHdlcmUgdXNlZC5cblxuICAgIHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBudWxsO1xuICAgIHdvcmtJblByb2dyZXNzLnVwZGF0ZVF1ZXVlID0gbnVsbDsgLy8gUHVzaCBjb250ZXh0IHByb3ZpZGVycyBlYXJseSB0byBwcmV2ZW50IGNvbnRleHQgc3RhY2sgbWlzbWF0Y2hlcy5cbiAgICAvLyBEdXJpbmcgbW91bnRpbmcgd2UgZG9uJ3Qga25vdyB0aGUgY2hpbGQgY29udGV4dCB5ZXQgYXMgdGhlIGluc3RhbmNlIGRvZXNuJ3QgZXhpc3QuXG4gICAgLy8gV2Ugd2lsbCBpbnZhbGlkYXRlIHRoZSBjaGlsZCBjb250ZXh0IGluIGZpbmlzaENsYXNzQ29tcG9uZW50KCkgcmlnaHQgYWZ0ZXIgcmVuZGVyaW5nLlxuXG4gICAgdmFyIGhhc0NvbnRleHQgPSBmYWxzZTtcblxuICAgIGlmIChpc0NvbnRleHRQcm92aWRlcihDb21wb25lbnQpKSB7XG4gICAgICBoYXNDb250ZXh0ID0gdHJ1ZTtcbiAgICAgIHB1c2hDb250ZXh0UHJvdmlkZXIod29ya0luUHJvZ3Jlc3MpO1xuICAgIH0gZWxzZSB7XG4gICAgICBoYXNDb250ZXh0ID0gZmFsc2U7XG4gICAgfVxuXG4gICAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IHZhbHVlLnN0YXRlICE9PSBudWxsICYmIHZhbHVlLnN0YXRlICE9PSB1bmRlZmluZWQgPyB2YWx1ZS5zdGF0ZSA6IG51bGw7XG4gICAgaW5pdGlhbGl6ZVVwZGF0ZVF1ZXVlKHdvcmtJblByb2dyZXNzKTtcbiAgICB2YXIgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzID0gQ29tcG9uZW50LmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcztcblxuICAgIGlmICh0eXBlb2YgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBhcHBseURlcml2ZWRTdGF0ZUZyb21Qcm9wcyh3b3JrSW5Qcm9ncmVzcywgQ29tcG9uZW50LCBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMsIHByb3BzKTtcbiAgICB9XG5cbiAgICBhZG9wdENsYXNzSW5zdGFuY2Uod29ya0luUHJvZ3Jlc3MsIHZhbHVlKTtcbiAgICBtb3VudENsYXNzSW5zdGFuY2Uod29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgcHJvcHMsIHJlbmRlckxhbmVzKTtcbiAgICByZXR1cm4gZmluaXNoQ2xhc3NDb21wb25lbnQobnVsbCwgd29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgdHJ1ZSwgaGFzQ29udGV4dCwgcmVuZGVyTGFuZXMpO1xuICB9IGVsc2Uge1xuICAgIC8vIFByb2NlZWQgdW5kZXIgdGhlIGFzc3VtcHRpb24gdGhhdCB0aGlzIGlzIGEgZnVuY3Rpb24gY29tcG9uZW50XG4gICAgd29ya0luUHJvZ3Jlc3MudGFnID0gRnVuY3Rpb25Db21wb25lbnQ7XG5cbiAgICB7XG5cbiAgICAgIGlmICggd29ya0luUHJvZ3Jlc3MubW9kZSAmIFN0cmljdE1vZGUpIHtcbiAgICAgICAgZGlzYWJsZUxvZ3MoKTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgIHZhbHVlID0gcmVuZGVyV2l0aEhvb2tzKG51bGwsIHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIHByb3BzLCBjb250ZXh0LCByZW5kZXJMYW5lcyk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgcmVlbmFibGVMb2dzKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZWNvbmNpbGVDaGlsZHJlbihudWxsLCB3b3JrSW5Qcm9ncmVzcywgdmFsdWUsIHJlbmRlckxhbmVzKTtcblxuICAgIHtcbiAgICAgIHZhbGlkYXRlRnVuY3Rpb25Db21wb25lbnRJbkRldih3b3JrSW5Qcm9ncmVzcywgQ29tcG9uZW50KTtcbiAgICB9XG5cbiAgICByZXR1cm4gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVGdW5jdGlvbkNvbXBvbmVudEluRGV2KHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQpIHtcbiAge1xuICAgIGlmIChDb21wb25lbnQpIHtcbiAgICAgIGlmIChDb21wb25lbnQuY2hpbGRDb250ZXh0VHlwZXMpIHtcbiAgICAgICAgZXJyb3IoJyVzKC4uLik6IGNoaWxkQ29udGV4dFR5cGVzIGNhbm5vdCBiZSBkZWZpbmVkIG9uIGEgZnVuY3Rpb24gY29tcG9uZW50LicsIENvbXBvbmVudC5kaXNwbGF5TmFtZSB8fCBDb21wb25lbnQubmFtZSB8fCAnQ29tcG9uZW50Jyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHdvcmtJblByb2dyZXNzLnJlZiAhPT0gbnVsbCkge1xuICAgICAgdmFyIGluZm8gPSAnJztcbiAgICAgIHZhciBvd25lck5hbWUgPSBnZXRDdXJyZW50RmliZXJPd25lck5hbWVJbkRldk9yTnVsbCgpO1xuXG4gICAgICBpZiAob3duZXJOYW1lKSB7XG4gICAgICAgIGluZm8gKz0gJ1xcblxcbkNoZWNrIHRoZSByZW5kZXIgbWV0aG9kIG9mIGAnICsgb3duZXJOYW1lICsgJ2AuJztcbiAgICAgIH1cblxuICAgICAgdmFyIHdhcm5pbmdLZXkgPSBvd25lck5hbWUgfHwgd29ya0luUHJvZ3Jlc3MuX2RlYnVnSUQgfHwgJyc7XG4gICAgICB2YXIgZGVidWdTb3VyY2UgPSB3b3JrSW5Qcm9ncmVzcy5fZGVidWdTb3VyY2U7XG5cbiAgICAgIGlmIChkZWJ1Z1NvdXJjZSkge1xuICAgICAgICB3YXJuaW5nS2V5ID0gZGVidWdTb3VyY2UuZmlsZU5hbWUgKyAnOicgKyBkZWJ1Z1NvdXJjZS5saW5lTnVtYmVyO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWRpZFdhcm5BYm91dEZ1bmN0aW9uUmVmc1t3YXJuaW5nS2V5XSkge1xuICAgICAgICBkaWRXYXJuQWJvdXRGdW5jdGlvblJlZnNbd2FybmluZ0tleV0gPSB0cnVlO1xuXG4gICAgICAgIGVycm9yKCdGdW5jdGlvbiBjb21wb25lbnRzIGNhbm5vdCBiZSBnaXZlbiByZWZzLiAnICsgJ0F0dGVtcHRzIHRvIGFjY2VzcyB0aGlzIHJlZiB3aWxsIGZhaWwuICcgKyAnRGlkIHlvdSBtZWFuIHRvIHVzZSBSZWFjdC5mb3J3YXJkUmVmKCk/JXMnLCBpbmZvKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIENvbXBvbmVudC5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHZhciBfY29tcG9uZW50TmFtZTMgPSBnZXRDb21wb25lbnROYW1lKENvbXBvbmVudCkgfHwgJ1Vua25vd24nO1xuXG4gICAgICBpZiAoIWRpZFdhcm5BYm91dEdldERlcml2ZWRTdGF0ZU9uRnVuY3Rpb25Db21wb25lbnRbX2NvbXBvbmVudE5hbWUzXSkge1xuICAgICAgICBlcnJvcignJXM6IEZ1bmN0aW9uIGNvbXBvbmVudHMgZG8gbm90IHN1cHBvcnQgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzLicsIF9jb21wb25lbnROYW1lMyk7XG5cbiAgICAgICAgZGlkV2FybkFib3V0R2V0RGVyaXZlZFN0YXRlT25GdW5jdGlvbkNvbXBvbmVudFtfY29tcG9uZW50TmFtZTNdID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIENvbXBvbmVudC5jb250ZXh0VHlwZSA9PT0gJ29iamVjdCcgJiYgQ29tcG9uZW50LmNvbnRleHRUeXBlICE9PSBudWxsKSB7XG4gICAgICB2YXIgX2NvbXBvbmVudE5hbWU0ID0gZ2V0Q29tcG9uZW50TmFtZShDb21wb25lbnQpIHx8ICdVbmtub3duJztcblxuICAgICAgaWYgKCFkaWRXYXJuQWJvdXRDb250ZXh0VHlwZU9uRnVuY3Rpb25Db21wb25lbnRbX2NvbXBvbmVudE5hbWU0XSkge1xuICAgICAgICBlcnJvcignJXM6IEZ1bmN0aW9uIGNvbXBvbmVudHMgZG8gbm90IHN1cHBvcnQgY29udGV4dFR5cGUuJywgX2NvbXBvbmVudE5hbWU0KTtcblxuICAgICAgICBkaWRXYXJuQWJvdXRDb250ZXh0VHlwZU9uRnVuY3Rpb25Db21wb25lbnRbX2NvbXBvbmVudE5hbWU0XSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbnZhciBTVVNQRU5ERURfTUFSS0VSID0ge1xuICBkZWh5ZHJhdGVkOiBudWxsLFxuICByZXRyeUxhbmU6IE5vTGFuZVxufTtcblxuZnVuY3Rpb24gbW91bnRTdXNwZW5zZU9mZnNjcmVlblN0YXRlKHJlbmRlckxhbmVzKSB7XG4gIHJldHVybiB7XG4gICAgYmFzZUxhbmVzOiByZW5kZXJMYW5lc1xuICB9O1xufVxuXG5mdW5jdGlvbiB1cGRhdGVTdXNwZW5zZU9mZnNjcmVlblN0YXRlKHByZXZPZmZzY3JlZW5TdGF0ZSwgcmVuZGVyTGFuZXMpIHtcbiAgcmV0dXJuIHtcbiAgICBiYXNlTGFuZXM6IG1lcmdlTGFuZXMocHJldk9mZnNjcmVlblN0YXRlLmJhc2VMYW5lcywgcmVuZGVyTGFuZXMpXG4gIH07XG59IC8vIFRPRE86IFByb2JhYmx5IHNob3VsZCBpbmxpbmUgdGhpcyBiYWNrXG5cblxuZnVuY3Rpb24gc2hvdWxkUmVtYWluT25GYWxsYmFjayhzdXNwZW5zZUNvbnRleHQsIGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcykge1xuICAvLyBJZiB3ZSdyZSBhbHJlYWR5IHNob3dpbmcgYSBmYWxsYmFjaywgdGhlcmUgYXJlIGNhc2VzIHdoZXJlIHdlIG5lZWQgdG9cbiAgLy8gcmVtYWluIG9uIHRoYXQgZmFsbGJhY2sgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBjb250ZW50IGhhcyByZXNvbHZlZC5cbiAgLy8gRm9yIGV4YW1wbGUsIFN1c3BlbnNlTGlzdCBjb29yZGluYXRlcyB3aGVuIG5lc3RlZCBjb250ZW50IGFwcGVhcnMuXG4gIGlmIChjdXJyZW50ICE9PSBudWxsKSB7XG4gICAgdmFyIHN1c3BlbnNlU3RhdGUgPSBjdXJyZW50Lm1lbW9pemVkU3RhdGU7XG5cbiAgICBpZiAoc3VzcGVuc2VTdGF0ZSA9PT0gbnVsbCkge1xuICAgICAgLy8gQ3VycmVudGx5IHNob3dpbmcgY29udGVudC4gRG9uJ3QgaGlkZSBpdCwgZXZlbiBpZiBGb3JjZVN1c3BlbnNlRmFsbGFja1xuICAgICAgLy8gaXMgdHJ1ZS4gTW9yZSBwcmVjaXNlIG5hbWUgbWlnaHQgYmUgXCJGb3JjZVJlbWFpblN1c3BlbnNlRmFsbGJhY2tcIi5cbiAgICAgIC8vIE5vdGU6IFRoaXMgaXMgYSBmYWN0b3Jpbmcgc21lbGwuIENhbid0IHJlbWFpbiBvbiBhIGZhbGxiYWNrIGlmIHRoZXJlJ3NcbiAgICAgIC8vIG5vIGZhbGxiYWNrIHRvIHJlbWFpbiBvbi5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH0gLy8gTm90IGN1cnJlbnRseSBzaG93aW5nIGNvbnRlbnQuIENvbnN1bHQgdGhlIFN1c3BlbnNlIGNvbnRleHQuXG5cblxuICByZXR1cm4gaGFzU3VzcGVuc2VDb250ZXh0KHN1c3BlbnNlQ29udGV4dCwgRm9yY2VTdXNwZW5zZUZhbGxiYWNrKTtcbn1cblxuZnVuY3Rpb24gZ2V0UmVtYWluaW5nV29ya0luUHJpbWFyeVRyZWUoY3VycmVudCwgcmVuZGVyTGFuZXMpIHtcbiAgLy8gVE9ETzogU2hvdWxkIG5vdCByZW1vdmUgcmVuZGVyIGxhbmVzIHRoYXQgd2VyZSBwaW5nZWQgZHVyaW5nIHRoaXMgcmVuZGVyXG4gIHJldHVybiByZW1vdmVMYW5lcyhjdXJyZW50LmNoaWxkTGFuZXMsIHJlbmRlckxhbmVzKTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlU3VzcGVuc2VDb21wb25lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKSB7XG4gIHZhciBuZXh0UHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHM7IC8vIFRoaXMgaXMgdXNlZCBieSBEZXZUb29scyB0byBmb3JjZSBhIGJvdW5kYXJ5IHRvIHN1c3BlbmQuXG5cbiAge1xuICAgIGlmIChzaG91bGRTdXNwZW5kKHdvcmtJblByb2dyZXNzKSkge1xuICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gRGlkQ2FwdHVyZTtcbiAgICB9XG4gIH1cblxuICB2YXIgc3VzcGVuc2VDb250ZXh0ID0gc3VzcGVuc2VTdGFja0N1cnNvci5jdXJyZW50O1xuICB2YXIgc2hvd0ZhbGxiYWNrID0gZmFsc2U7XG4gIHZhciBkaWRTdXNwZW5kID0gKHdvcmtJblByb2dyZXNzLmZsYWdzICYgRGlkQ2FwdHVyZSkgIT09IE5vRmxhZ3M7XG5cbiAgaWYgKGRpZFN1c3BlbmQgfHwgc2hvdWxkUmVtYWluT25GYWxsYmFjayhzdXNwZW5zZUNvbnRleHQsIGN1cnJlbnQpKSB7XG4gICAgLy8gU29tZXRoaW5nIGluIHRoaXMgYm91bmRhcnkncyBzdWJ0cmVlIGFscmVhZHkgc3VzcGVuZGVkLiBTd2l0Y2ggdG9cbiAgICAvLyByZW5kZXJpbmcgdGhlIGZhbGxiYWNrIGNoaWxkcmVuLlxuICAgIHNob3dGYWxsYmFjayA9IHRydWU7XG4gICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgJj0gfkRpZENhcHR1cmU7XG4gIH0gZWxzZSB7XG4gICAgLy8gQXR0ZW1wdGluZyB0aGUgbWFpbiBjb250ZW50XG4gICAgaWYgKGN1cnJlbnQgPT09IG51bGwgfHwgY3VycmVudC5tZW1vaXplZFN0YXRlICE9PSBudWxsKSB7XG4gICAgICAvLyBUaGlzIGlzIGEgbmV3IG1vdW50IG9yIHRoaXMgYm91bmRhcnkgaXMgYWxyZWFkeSBzaG93aW5nIGEgZmFsbGJhY2sgc3RhdGUuXG4gICAgICAvLyBNYXJrIHRoaXMgc3VidHJlZSBjb250ZXh0IGFzIGhhdmluZyBhdCBsZWFzdCBvbmUgaW52aXNpYmxlIHBhcmVudCB0aGF0IGNvdWxkXG4gICAgICAvLyBoYW5kbGUgdGhlIGZhbGxiYWNrIHN0YXRlLlxuICAgICAgLy8gQm91bmRhcmllcyB3aXRob3V0IGZhbGxiYWNrcyBvciBzaG91bGQgYmUgYXZvaWRlZCBhcmUgbm90IGNvbnNpZGVyZWQgc2luY2VcbiAgICAgIC8vIHRoZXkgY2Fubm90IGhhbmRsZSBwcmVmZXJyZWQgZmFsbGJhY2sgc3RhdGVzLlxuICAgICAgaWYgKG5leHRQcm9wcy5mYWxsYmFjayAhPT0gdW5kZWZpbmVkICYmIG5leHRQcm9wcy51bnN0YWJsZV9hdm9pZFRoaXNGYWxsYmFjayAhPT0gdHJ1ZSkge1xuICAgICAgICBzdXNwZW5zZUNvbnRleHQgPSBhZGRTdWJ0cmVlU3VzcGVuc2VDb250ZXh0KHN1c3BlbnNlQ29udGV4dCwgSW52aXNpYmxlUGFyZW50U3VzcGVuc2VDb250ZXh0KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzdXNwZW5zZUNvbnRleHQgPSBzZXREZWZhdWx0U2hhbGxvd1N1c3BlbnNlQ29udGV4dChzdXNwZW5zZUNvbnRleHQpO1xuICBwdXNoU3VzcGVuc2VDb250ZXh0KHdvcmtJblByb2dyZXNzLCBzdXNwZW5zZUNvbnRleHQpOyAvLyBPSywgdGhlIG5leHQgcGFydCBpcyBjb25mdXNpbmcuIFdlJ3JlIGFib3V0IHRvIHJlY29uY2lsZSB0aGUgU3VzcGVuc2VcbiAgLy8gYm91bmRhcnkncyBjaGlsZHJlbi4gVGhpcyBpbnZvbHZlcyBzb21lIGN1c3RvbSByZWNvbmNpbGF0aW9uIGxvZ2ljLiBUd29cbiAgLy8gbWFpbiByZWFzb25zIHRoaXMgaXMgc28gY29tcGxpY2F0ZWQuXG4gIC8vXG4gIC8vIEZpcnN0LCBMZWdhY3kgTW9kZSBoYXMgZGlmZmVyZW50IHNlbWFudGljcyBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuIFRoZVxuICAvLyBwcmltYXJ5IHRyZWUgd2lsbCBjb21taXQgaW4gYW4gaW5jb25zaXN0ZW50IHN0YXRlLCBzbyB3aGVuIHdlIGRvIHRoZVxuICAvLyBzZWNvbmQgcGFzcyB0byByZW5kZXIgdGhlIGZhbGxiYWNrLCB3ZSBkbyBzb21lIGV4Y2VlZGluZ2x5LCB1aCwgY2xldmVyXG4gIC8vIGhhY2tzIHRvIG1ha2UgdGhhdCBub3QgdG90YWxseSBicmVhay4gTGlrZSB0cmFuc2ZlcnJpbmcgZWZmZWN0cyBhbmRcbiAgLy8gZGVsZXRpb25zIGZyb20gaGlkZGVuIHRyZWUuIEluIENvbmN1cnJlbnQgTW9kZSwgaXQncyBtdWNoIHNpbXBsZXIsXG4gIC8vIGJlY2F1c2Ugd2UgYmFpbG91dCBvbiB0aGUgcHJpbWFyeSB0cmVlIGNvbXBsZXRlbHkgYW5kIGxlYXZlIGl0IGluIGl0cyBvbGRcbiAgLy8gc3RhdGUsIG5vIGVmZmVjdHMuIFNhbWUgYXMgd2hhdCB3ZSBkbyBmb3IgT2Zmc2NyZWVuIChleGNlcHQgdGhhdFxuICAvLyBPZmZzY3JlZW4gZG9lc24ndCBoYXZlIHRoZSBmaXJzdCByZW5kZXIgcGFzcykuXG4gIC8vXG4gIC8vIFNlY29uZCBpcyBoeWRyYXRpb24uIER1cmluZyBoeWRyYXRpb24sIHRoZSBTdXNwZW5zZSBmaWJlciBoYXMgYSBzbGlnaHRseVxuICAvLyBkaWZmZXJlbnQgbGF5b3V0LCB3aGVyZSB0aGUgY2hpbGQgcG9pbnRzIHRvIGEgZGVoeWRyYXRlZCBmcmFnbWVudCwgd2hpY2hcbiAgLy8gY29udGFpbnMgdGhlIERPTSByZW5kZXJlZCBieSB0aGUgc2VydmVyLlxuICAvL1xuICAvLyBUaGlyZCwgZXZlbiBpZiB5b3Ugc2V0IGFsbCB0aGF0IGFzaWRlLCBTdXNwZW5zZSBpcyBsaWtlIGVycm9yIGJvdW5kYXJpZXMgaW5cbiAgLy8gdGhhdCB3ZSBmaXJzdCB3ZSB0cnkgdG8gcmVuZGVyIG9uZSB0cmVlLCBhbmQgaWYgdGhhdCBmYWlscywgd2UgcmVuZGVyIGFnYWluXG4gIC8vIGFuZCBzd2l0Y2ggdG8gYSBkaWZmZXJlbnQgdHJlZS4gTGlrZSBhIHRyeS9jYXRjaCBibG9jay4gU28gd2UgaGF2ZSB0byB0cmFja1xuICAvLyB3aGljaCBicmFuY2ggd2UncmUgY3VycmVudGx5IHJlbmRlcmluZy4gSWRlYWxseSB3ZSB3b3VsZCBtb2RlbCB0aGlzIHVzaW5nXG4gIC8vIGEgc3RhY2suXG5cbiAgaWYgKGN1cnJlbnQgPT09IG51bGwpIHtcbiAgICAvLyBJbml0aWFsIG1vdW50XG4gICAgLy8gSWYgd2UncmUgY3VycmVudGx5IGh5ZHJhdGluZywgdHJ5IHRvIGh5ZHJhdGUgdGhpcyBib3VuZGFyeS5cbiAgICAvLyBCdXQgb25seSBpZiB0aGlzIGhhcyBhIGZhbGxiYWNrLlxuICAgIGlmIChuZXh0UHJvcHMuZmFsbGJhY2sgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdHJ5VG9DbGFpbU5leHRIeWRyYXRhYmxlSW5zdGFuY2Uod29ya0luUHJvZ3Jlc3MpOyAvLyBUaGlzIGNvdWxkJ3ZlIGJlZW4gYSBkZWh5ZHJhdGVkIHN1c3BlbnNlIGNvbXBvbmVudC5cbiAgICB9XG5cbiAgICB2YXIgbmV4dFByaW1hcnlDaGlsZHJlbiA9IG5leHRQcm9wcy5jaGlsZHJlbjtcbiAgICB2YXIgbmV4dEZhbGxiYWNrQ2hpbGRyZW4gPSBuZXh0UHJvcHMuZmFsbGJhY2s7XG5cbiAgICBpZiAoc2hvd0ZhbGxiYWNrKSB7XG4gICAgICB2YXIgZmFsbGJhY2tGcmFnbWVudCA9IG1vdW50U3VzcGVuc2VGYWxsYmFja0NoaWxkcmVuKHdvcmtJblByb2dyZXNzLCBuZXh0UHJpbWFyeUNoaWxkcmVuLCBuZXh0RmFsbGJhY2tDaGlsZHJlbiwgcmVuZGVyTGFuZXMpO1xuICAgICAgdmFyIHByaW1hcnlDaGlsZEZyYWdtZW50ID0gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG4gICAgICBwcmltYXJ5Q2hpbGRGcmFnbWVudC5tZW1vaXplZFN0YXRlID0gbW91bnRTdXNwZW5zZU9mZnNjcmVlblN0YXRlKHJlbmRlckxhbmVzKTtcbiAgICAgIHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBTVVNQRU5ERURfTUFSS0VSO1xuICAgICAgcmV0dXJuIGZhbGxiYWNrRnJhZ21lbnQ7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgbmV4dFByb3BzLnVuc3RhYmxlX2V4cGVjdGVkTG9hZFRpbWUgPT09ICdudW1iZXInKSB7XG4gICAgICAvLyBUaGlzIGlzIGEgQ1BVLWJvdW5kIHRyZWUuIFNraXAgdGhpcyB0cmVlIGFuZCBzaG93IGEgcGxhY2Vob2xkZXIgdG9cbiAgICAgIC8vIHVuYmxvY2sgdGhlIHN1cnJvdW5kaW5nIGNvbnRlbnQuIFRoZW4gaW1tZWRpYXRlbHkgcmV0cnkgYWZ0ZXIgdGhlXG4gICAgICAvLyBpbml0aWFsIGNvbW1pdC5cbiAgICAgIHZhciBfZmFsbGJhY2tGcmFnbWVudCA9IG1vdW50U3VzcGVuc2VGYWxsYmFja0NoaWxkcmVuKHdvcmtJblByb2dyZXNzLCBuZXh0UHJpbWFyeUNoaWxkcmVuLCBuZXh0RmFsbGJhY2tDaGlsZHJlbiwgcmVuZGVyTGFuZXMpO1xuXG4gICAgICB2YXIgX3ByaW1hcnlDaGlsZEZyYWdtZW50ID0gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG4gICAgICBfcHJpbWFyeUNoaWxkRnJhZ21lbnQubWVtb2l6ZWRTdGF0ZSA9IG1vdW50U3VzcGVuc2VPZmZzY3JlZW5TdGF0ZShyZW5kZXJMYW5lcyk7XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gU1VTUEVOREVEX01BUktFUjsgLy8gU2luY2Ugbm90aGluZyBhY3R1YWxseSBzdXNwZW5kZWQsIHRoZXJlIHdpbGwgbm90aGluZyB0byBwaW5nIHRoaXMgdG9cbiAgICAgIC8vIGdldCBpdCBzdGFydGVkIGJhY2sgdXAgdG8gYXR0ZW1wdCB0aGUgbmV4dCBpdGVtLiBXaGlsZSBpbiB0ZXJtcyBvZlxuICAgICAgLy8gcHJpb3JpdHkgdGhpcyB3b3JrIGhhcyB0aGUgc2FtZSBwcmlvcml0eSBhcyB0aGlzIGN1cnJlbnQgcmVuZGVyLCBpdCdzXG4gICAgICAvLyBub3QgcGFydCBvZiB0aGUgc2FtZSB0cmFuc2l0aW9uIG9uY2UgdGhlIHRyYW5zaXRpb24gaGFzIGNvbW1pdHRlZC4gSWZcbiAgICAgIC8vIGl0J3Mgc3luYywgd2Ugc3RpbGwgd2FudCB0byB5aWVsZCBzbyB0aGF0IGl0IGNhbiBiZSBwYWludGVkLlxuICAgICAgLy8gQ29uY2VwdHVhbGx5LCB0aGlzIGlzIHJlYWxseSB0aGUgc2FtZSBhcyBwaW5naW5nLiBXZSBjYW4gdXNlIGFueVxuICAgICAgLy8gUmV0cnlMYW5lIGV2ZW4gaWYgaXQncyB0aGUgb25lIGN1cnJlbnRseSByZW5kZXJpbmcgc2luY2Ugd2UncmUgbGVhdmluZ1xuICAgICAgLy8gaXQgYmVoaW5kIG9uIHRoaXMgbm9kZS5cblxuICAgICAgd29ya0luUHJvZ3Jlc3MubGFuZXMgPSBTb21lUmV0cnlMYW5lO1xuXG4gICAgICB7XG4gICAgICAgIG1hcmtTcGF3bmVkV29yayhTb21lUmV0cnlMYW5lKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIF9mYWxsYmFja0ZyYWdtZW50O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbW91bnRTdXNwZW5zZVByaW1hcnlDaGlsZHJlbih3b3JrSW5Qcm9ncmVzcywgbmV4dFByaW1hcnlDaGlsZHJlbiwgcmVuZGVyTGFuZXMpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBUaGlzIGlzIGFuIHVwZGF0ZS5cbiAgICAvLyBJZiB0aGUgY3VycmVudCBmaWJlciBoYXMgYSBTdXNwZW5zZVN0YXRlLCB0aGF0IG1lYW5zIGl0J3MgYWxyZWFkeSBzaG93aW5nXG4gICAgLy8gYSBmYWxsYmFjay5cbiAgICB2YXIgcHJldlN0YXRlID0gY3VycmVudC5tZW1vaXplZFN0YXRlO1xuXG4gICAgaWYgKHByZXZTdGF0ZSAhPT0gbnVsbCkge1xuXG4gICAgICBpZiAoc2hvd0ZhbGxiYWNrKSB7XG4gICAgICAgIHZhciBfbmV4dEZhbGxiYWNrQ2hpbGRyZW4yID0gbmV4dFByb3BzLmZhbGxiYWNrO1xuICAgICAgICB2YXIgX25leHRQcmltYXJ5Q2hpbGRyZW4yID0gbmV4dFByb3BzLmNoaWxkcmVuO1xuXG4gICAgICAgIHZhciBfZmFsbGJhY2tDaGlsZEZyYWdtZW50ID0gdXBkYXRlU3VzcGVuc2VGYWxsYmFja0NoaWxkcmVuKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBfbmV4dFByaW1hcnlDaGlsZHJlbjIsIF9uZXh0RmFsbGJhY2tDaGlsZHJlbjIsIHJlbmRlckxhbmVzKTtcblxuICAgICAgICB2YXIgX3ByaW1hcnlDaGlsZEZyYWdtZW50MyA9IHdvcmtJblByb2dyZXNzLmNoaWxkO1xuICAgICAgICB2YXIgcHJldk9mZnNjcmVlblN0YXRlID0gY3VycmVudC5jaGlsZC5tZW1vaXplZFN0YXRlO1xuICAgICAgICBfcHJpbWFyeUNoaWxkRnJhZ21lbnQzLm1lbW9pemVkU3RhdGUgPSBwcmV2T2Zmc2NyZWVuU3RhdGUgPT09IG51bGwgPyBtb3VudFN1c3BlbnNlT2Zmc2NyZWVuU3RhdGUocmVuZGVyTGFuZXMpIDogdXBkYXRlU3VzcGVuc2VPZmZzY3JlZW5TdGF0ZShwcmV2T2Zmc2NyZWVuU3RhdGUsIHJlbmRlckxhbmVzKTtcbiAgICAgICAgX3ByaW1hcnlDaGlsZEZyYWdtZW50My5jaGlsZExhbmVzID0gZ2V0UmVtYWluaW5nV29ya0luUHJpbWFyeVRyZWUoY3VycmVudCwgcmVuZGVyTGFuZXMpO1xuICAgICAgICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gU1VTUEVOREVEX01BUktFUjtcbiAgICAgICAgcmV0dXJuIF9mYWxsYmFja0NoaWxkRnJhZ21lbnQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgX25leHRQcmltYXJ5Q2hpbGRyZW4zID0gbmV4dFByb3BzLmNoaWxkcmVuO1xuXG4gICAgICAgIHZhciBfcHJpbWFyeUNoaWxkRnJhZ21lbnQ0ID0gdXBkYXRlU3VzcGVuc2VQcmltYXJ5Q2hpbGRyZW4oY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIF9uZXh0UHJpbWFyeUNoaWxkcmVuMywgcmVuZGVyTGFuZXMpO1xuXG4gICAgICAgIHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBudWxsO1xuICAgICAgICByZXR1cm4gX3ByaW1hcnlDaGlsZEZyYWdtZW50NDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVGhlIGN1cnJlbnQgdHJlZSBpcyBub3QgYWxyZWFkeSBzaG93aW5nIGEgZmFsbGJhY2suXG4gICAgICBpZiAoc2hvd0ZhbGxiYWNrKSB7XG4gICAgICAgIC8vIFRpbWVkIG91dC5cbiAgICAgICAgdmFyIF9uZXh0RmFsbGJhY2tDaGlsZHJlbjMgPSBuZXh0UHJvcHMuZmFsbGJhY2s7XG4gICAgICAgIHZhciBfbmV4dFByaW1hcnlDaGlsZHJlbjQgPSBuZXh0UHJvcHMuY2hpbGRyZW47XG5cbiAgICAgICAgdmFyIF9mYWxsYmFja0NoaWxkRnJhZ21lbnQyID0gdXBkYXRlU3VzcGVuc2VGYWxsYmFja0NoaWxkcmVuKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBfbmV4dFByaW1hcnlDaGlsZHJlbjQsIF9uZXh0RmFsbGJhY2tDaGlsZHJlbjMsIHJlbmRlckxhbmVzKTtcblxuICAgICAgICB2YXIgX3ByaW1hcnlDaGlsZEZyYWdtZW50NSA9IHdvcmtJblByb2dyZXNzLmNoaWxkO1xuICAgICAgICB2YXIgX3ByZXZPZmZzY3JlZW5TdGF0ZSA9IGN1cnJlbnQuY2hpbGQubWVtb2l6ZWRTdGF0ZTtcbiAgICAgICAgX3ByaW1hcnlDaGlsZEZyYWdtZW50NS5tZW1vaXplZFN0YXRlID0gX3ByZXZPZmZzY3JlZW5TdGF0ZSA9PT0gbnVsbCA/IG1vdW50U3VzcGVuc2VPZmZzY3JlZW5TdGF0ZShyZW5kZXJMYW5lcykgOiB1cGRhdGVTdXNwZW5zZU9mZnNjcmVlblN0YXRlKF9wcmV2T2Zmc2NyZWVuU3RhdGUsIHJlbmRlckxhbmVzKTtcbiAgICAgICAgX3ByaW1hcnlDaGlsZEZyYWdtZW50NS5jaGlsZExhbmVzID0gZ2V0UmVtYWluaW5nV29ya0luUHJpbWFyeVRyZWUoY3VycmVudCwgcmVuZGVyTGFuZXMpOyAvLyBTa2lwIHRoZSBwcmltYXJ5IGNoaWxkcmVuLCBhbmQgY29udGludWUgd29ya2luZyBvbiB0aGVcbiAgICAgICAgLy8gZmFsbGJhY2sgY2hpbGRyZW4uXG5cbiAgICAgICAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IFNVU1BFTkRFRF9NQVJLRVI7XG4gICAgICAgIHJldHVybiBfZmFsbGJhY2tDaGlsZEZyYWdtZW50MjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFN0aWxsIGhhdmVuJ3QgdGltZWQgb3V0LiBDb250aW51ZSByZW5kZXJpbmcgdGhlIGNoaWxkcmVuLCBsaWtlIHdlXG4gICAgICAgIC8vIG5vcm1hbGx5IGRvLlxuICAgICAgICB2YXIgX25leHRQcmltYXJ5Q2hpbGRyZW41ID0gbmV4dFByb3BzLmNoaWxkcmVuO1xuXG4gICAgICAgIHZhciBfcHJpbWFyeUNoaWxkRnJhZ21lbnQ2ID0gdXBkYXRlU3VzcGVuc2VQcmltYXJ5Q2hpbGRyZW4oY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIF9uZXh0UHJpbWFyeUNoaWxkcmVuNSwgcmVuZGVyTGFuZXMpO1xuXG4gICAgICAgIHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBudWxsO1xuICAgICAgICByZXR1cm4gX3ByaW1hcnlDaGlsZEZyYWdtZW50NjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gbW91bnRTdXNwZW5zZVByaW1hcnlDaGlsZHJlbih3b3JrSW5Qcm9ncmVzcywgcHJpbWFyeUNoaWxkcmVuLCByZW5kZXJMYW5lcykge1xuICB2YXIgbW9kZSA9IHdvcmtJblByb2dyZXNzLm1vZGU7XG4gIHZhciBwcmltYXJ5Q2hpbGRQcm9wcyA9IHtcbiAgICBtb2RlOiAndmlzaWJsZScsXG4gICAgY2hpbGRyZW46IHByaW1hcnlDaGlsZHJlblxuICB9O1xuICB2YXIgcHJpbWFyeUNoaWxkRnJhZ21lbnQgPSBjcmVhdGVGaWJlckZyb21PZmZzY3JlZW4ocHJpbWFyeUNoaWxkUHJvcHMsIG1vZGUsIHJlbmRlckxhbmVzLCBudWxsKTtcbiAgcHJpbWFyeUNoaWxkRnJhZ21lbnQucmV0dXJuID0gd29ya0luUHJvZ3Jlc3M7XG4gIHdvcmtJblByb2dyZXNzLmNoaWxkID0gcHJpbWFyeUNoaWxkRnJhZ21lbnQ7XG4gIHJldHVybiBwcmltYXJ5Q2hpbGRGcmFnbWVudDtcbn1cblxuZnVuY3Rpb24gbW91bnRTdXNwZW5zZUZhbGxiYWNrQ2hpbGRyZW4od29ya0luUHJvZ3Jlc3MsIHByaW1hcnlDaGlsZHJlbiwgZmFsbGJhY2tDaGlsZHJlbiwgcmVuZGVyTGFuZXMpIHtcbiAgdmFyIG1vZGUgPSB3b3JrSW5Qcm9ncmVzcy5tb2RlO1xuICB2YXIgcHJvZ3Jlc3NlZFByaW1hcnlGcmFnbWVudCA9IHdvcmtJblByb2dyZXNzLmNoaWxkO1xuICB2YXIgcHJpbWFyeUNoaWxkUHJvcHMgPSB7XG4gICAgbW9kZTogJ2hpZGRlbicsXG4gICAgY2hpbGRyZW46IHByaW1hcnlDaGlsZHJlblxuICB9O1xuICB2YXIgcHJpbWFyeUNoaWxkRnJhZ21lbnQ7XG4gIHZhciBmYWxsYmFja0NoaWxkRnJhZ21lbnQ7XG5cbiAgaWYgKChtb2RlICYgQmxvY2tpbmdNb2RlKSA9PT0gTm9Nb2RlICYmIHByb2dyZXNzZWRQcmltYXJ5RnJhZ21lbnQgIT09IG51bGwpIHtcbiAgICAvLyBJbiBsZWdhY3kgbW9kZSwgd2UgY29tbWl0IHRoZSBwcmltYXJ5IHRyZWUgYXMgaWYgaXQgc3VjY2Vzc2Z1bGx5XG4gICAgLy8gY29tcGxldGVkLCBldmVuIHRob3VnaCBpdCdzIGluIGFuIGluY29uc2lzdGVudCBzdGF0ZS5cbiAgICBwcmltYXJ5Q2hpbGRGcmFnbWVudCA9IHByb2dyZXNzZWRQcmltYXJ5RnJhZ21lbnQ7XG4gICAgcHJpbWFyeUNoaWxkRnJhZ21lbnQuY2hpbGRMYW5lcyA9IE5vTGFuZXM7XG4gICAgcHJpbWFyeUNoaWxkRnJhZ21lbnQucGVuZGluZ1Byb3BzID0gcHJpbWFyeUNoaWxkUHJvcHM7XG5cbiAgICBpZiAoIHdvcmtJblByb2dyZXNzLm1vZGUgJiBQcm9maWxlTW9kZSkge1xuICAgICAgLy8gUmVzZXQgdGhlIGR1cmF0aW9ucyBmcm9tIHRoZSBmaXJzdCBwYXNzIHNvIHRoZXkgYXJlbid0IGluY2x1ZGVkIGluIHRoZVxuICAgICAgLy8gZmluYWwgYW1vdW50cy4gVGhpcyBzZWVtcyBjb3VudGVyaW50dWl0aXZlLCBzaW5jZSB3ZSdyZSBpbnRlbnRpb25hbGx5XG4gICAgICAvLyBub3QgbWVhc3VyaW5nIHBhcnQgb2YgdGhlIHJlbmRlciBwaGFzZSwgYnV0IHRoaXMgbWFrZXMgaXQgbWF0Y2ggd2hhdCB3ZVxuICAgICAgLy8gZG8gaW4gQ29uY3VycmVudCBNb2RlLlxuICAgICAgcHJpbWFyeUNoaWxkRnJhZ21lbnQuYWN0dWFsRHVyYXRpb24gPSAwO1xuICAgICAgcHJpbWFyeUNoaWxkRnJhZ21lbnQuYWN0dWFsU3RhcnRUaW1lID0gLTE7XG4gICAgICBwcmltYXJ5Q2hpbGRGcmFnbWVudC5zZWxmQmFzZUR1cmF0aW9uID0gMDtcbiAgICAgIHByaW1hcnlDaGlsZEZyYWdtZW50LnRyZWVCYXNlRHVyYXRpb24gPSAwO1xuICAgIH1cblxuICAgIGZhbGxiYWNrQ2hpbGRGcmFnbWVudCA9IGNyZWF0ZUZpYmVyRnJvbUZyYWdtZW50KGZhbGxiYWNrQ2hpbGRyZW4sIG1vZGUsIHJlbmRlckxhbmVzLCBudWxsKTtcbiAgfSBlbHNlIHtcbiAgICBwcmltYXJ5Q2hpbGRGcmFnbWVudCA9IGNyZWF0ZUZpYmVyRnJvbU9mZnNjcmVlbihwcmltYXJ5Q2hpbGRQcm9wcywgbW9kZSwgTm9MYW5lcywgbnVsbCk7XG4gICAgZmFsbGJhY2tDaGlsZEZyYWdtZW50ID0gY3JlYXRlRmliZXJGcm9tRnJhZ21lbnQoZmFsbGJhY2tDaGlsZHJlbiwgbW9kZSwgcmVuZGVyTGFuZXMsIG51bGwpO1xuICB9XG5cbiAgcHJpbWFyeUNoaWxkRnJhZ21lbnQucmV0dXJuID0gd29ya0luUHJvZ3Jlc3M7XG4gIGZhbGxiYWNrQ2hpbGRGcmFnbWVudC5yZXR1cm4gPSB3b3JrSW5Qcm9ncmVzcztcbiAgcHJpbWFyeUNoaWxkRnJhZ21lbnQuc2libGluZyA9IGZhbGxiYWNrQ2hpbGRGcmFnbWVudDtcbiAgd29ya0luUHJvZ3Jlc3MuY2hpbGQgPSBwcmltYXJ5Q2hpbGRGcmFnbWVudDtcbiAgcmV0dXJuIGZhbGxiYWNrQ2hpbGRGcmFnbWVudDtcbn1cblxuZnVuY3Rpb24gY3JlYXRlV29ya0luUHJvZ3Jlc3NPZmZzY3JlZW5GaWJlcihjdXJyZW50LCBvZmZzY3JlZW5Qcm9wcykge1xuICAvLyBUaGUgcHJvcHMgYXJndW1lbnQgdG8gYGNyZWF0ZVdvcmtJblByb2dyZXNzYCBpcyBgYW55YCB0eXBlZCwgc28gd2UgdXNlIHRoaXNcbiAgLy8gd3JhcHBlciBmdW5jdGlvbiB0byBjb25zdHJhaW4gaXQuXG4gIHJldHVybiBjcmVhdGVXb3JrSW5Qcm9ncmVzcyhjdXJyZW50LCBvZmZzY3JlZW5Qcm9wcyk7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZVN1c3BlbnNlUHJpbWFyeUNoaWxkcmVuKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBwcmltYXJ5Q2hpbGRyZW4sIHJlbmRlckxhbmVzKSB7XG4gIHZhciBjdXJyZW50UHJpbWFyeUNoaWxkRnJhZ21lbnQgPSBjdXJyZW50LmNoaWxkO1xuICB2YXIgY3VycmVudEZhbGxiYWNrQ2hpbGRGcmFnbWVudCA9IGN1cnJlbnRQcmltYXJ5Q2hpbGRGcmFnbWVudC5zaWJsaW5nO1xuICB2YXIgcHJpbWFyeUNoaWxkRnJhZ21lbnQgPSBjcmVhdGVXb3JrSW5Qcm9ncmVzc09mZnNjcmVlbkZpYmVyKGN1cnJlbnRQcmltYXJ5Q2hpbGRGcmFnbWVudCwge1xuICAgIG1vZGU6ICd2aXNpYmxlJyxcbiAgICBjaGlsZHJlbjogcHJpbWFyeUNoaWxkcmVuXG4gIH0pO1xuXG4gIGlmICgod29ya0luUHJvZ3Jlc3MubW9kZSAmIEJsb2NraW5nTW9kZSkgPT09IE5vTW9kZSkge1xuICAgIHByaW1hcnlDaGlsZEZyYWdtZW50LmxhbmVzID0gcmVuZGVyTGFuZXM7XG4gIH1cblxuICBwcmltYXJ5Q2hpbGRGcmFnbWVudC5yZXR1cm4gPSB3b3JrSW5Qcm9ncmVzcztcbiAgcHJpbWFyeUNoaWxkRnJhZ21lbnQuc2libGluZyA9IG51bGw7XG5cbiAgaWYgKGN1cnJlbnRGYWxsYmFja0NoaWxkRnJhZ21lbnQgIT09IG51bGwpIHtcbiAgICAvLyBEZWxldGUgdGhlIGZhbGxiYWNrIGNoaWxkIGZyYWdtZW50XG4gICAgY3VycmVudEZhbGxiYWNrQ2hpbGRGcmFnbWVudC5uZXh0RWZmZWN0ID0gbnVsbDtcbiAgICBjdXJyZW50RmFsbGJhY2tDaGlsZEZyYWdtZW50LmZsYWdzID0gRGVsZXRpb247XG4gICAgd29ya0luUHJvZ3Jlc3MuZmlyc3RFZmZlY3QgPSB3b3JrSW5Qcm9ncmVzcy5sYXN0RWZmZWN0ID0gY3VycmVudEZhbGxiYWNrQ2hpbGRGcmFnbWVudDtcbiAgfVxuXG4gIHdvcmtJblByb2dyZXNzLmNoaWxkID0gcHJpbWFyeUNoaWxkRnJhZ21lbnQ7XG4gIHJldHVybiBwcmltYXJ5Q2hpbGRGcmFnbWVudDtcbn1cblxuZnVuY3Rpb24gdXBkYXRlU3VzcGVuc2VGYWxsYmFja0NoaWxkcmVuKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBwcmltYXJ5Q2hpbGRyZW4sIGZhbGxiYWNrQ2hpbGRyZW4sIHJlbmRlckxhbmVzKSB7XG4gIHZhciBtb2RlID0gd29ya0luUHJvZ3Jlc3MubW9kZTtcbiAgdmFyIGN1cnJlbnRQcmltYXJ5Q2hpbGRGcmFnbWVudCA9IGN1cnJlbnQuY2hpbGQ7XG4gIHZhciBjdXJyZW50RmFsbGJhY2tDaGlsZEZyYWdtZW50ID0gY3VycmVudFByaW1hcnlDaGlsZEZyYWdtZW50LnNpYmxpbmc7XG4gIHZhciBwcmltYXJ5Q2hpbGRQcm9wcyA9IHtcbiAgICBtb2RlOiAnaGlkZGVuJyxcbiAgICBjaGlsZHJlbjogcHJpbWFyeUNoaWxkcmVuXG4gIH07XG4gIHZhciBwcmltYXJ5Q2hpbGRGcmFnbWVudDtcblxuICBpZiAoIC8vIEluIGxlZ2FjeSBtb2RlLCB3ZSBjb21taXQgdGhlIHByaW1hcnkgdHJlZSBhcyBpZiBpdCBzdWNjZXNzZnVsbHlcbiAgLy8gY29tcGxldGVkLCBldmVuIHRob3VnaCBpdCdzIGluIGFuIGluY29uc2lzdGVudCBzdGF0ZS5cbiAgKG1vZGUgJiBCbG9ja2luZ01vZGUpID09PSBOb01vZGUgJiYgLy8gTWFrZSBzdXJlIHdlJ3JlIG9uIHRoZSBzZWNvbmQgcGFzcywgaS5lLiB0aGUgcHJpbWFyeSBjaGlsZCBmcmFnbWVudCB3YXNcbiAgLy8gYWxyZWFkeSBjbG9uZWQuIEluIGxlZ2FjeSBtb2RlLCB0aGUgb25seSBjYXNlIHdoZXJlIHRoaXMgaXNuJ3QgdHJ1ZSBpc1xuICAvLyB3aGVuIERldlRvb2xzIGZvcmNlcyB1cyB0byBkaXNwbGF5IGEgZmFsbGJhY2s7IHdlIHNraXAgdGhlIGZpcnN0IHJlbmRlclxuICAvLyBwYXNzIGVudGlyZWx5IGFuZCBnbyBzdHJhaWdodCB0byByZW5kZXJpbmcgdGhlIGZhbGxiYWNrLiAoSW4gQ29uY3VycmVudFxuICAvLyBNb2RlLCBTdXNwZW5zZUxpc3QgY2FuIGFsc28gdHJpZ2dlciB0aGlzIHNjZW5hcmlvLCBidXQgdGhpcyBpcyBhIGxlZ2FjeS1cbiAgLy8gb25seSBjb2RlcGF0aC4pXG4gIHdvcmtJblByb2dyZXNzLmNoaWxkICE9PSBjdXJyZW50UHJpbWFyeUNoaWxkRnJhZ21lbnQpIHtcbiAgICB2YXIgcHJvZ3Jlc3NlZFByaW1hcnlGcmFnbWVudCA9IHdvcmtJblByb2dyZXNzLmNoaWxkO1xuICAgIHByaW1hcnlDaGlsZEZyYWdtZW50ID0gcHJvZ3Jlc3NlZFByaW1hcnlGcmFnbWVudDtcbiAgICBwcmltYXJ5Q2hpbGRGcmFnbWVudC5jaGlsZExhbmVzID0gTm9MYW5lcztcbiAgICBwcmltYXJ5Q2hpbGRGcmFnbWVudC5wZW5kaW5nUHJvcHMgPSBwcmltYXJ5Q2hpbGRQcm9wcztcblxuICAgIGlmICggd29ya0luUHJvZ3Jlc3MubW9kZSAmIFByb2ZpbGVNb2RlKSB7XG4gICAgICAvLyBSZXNldCB0aGUgZHVyYXRpb25zIGZyb20gdGhlIGZpcnN0IHBhc3Mgc28gdGhleSBhcmVuJ3QgaW5jbHVkZWQgaW4gdGhlXG4gICAgICAvLyBmaW5hbCBhbW91bnRzLiBUaGlzIHNlZW1zIGNvdW50ZXJpbnR1aXRpdmUsIHNpbmNlIHdlJ3JlIGludGVudGlvbmFsbHlcbiAgICAgIC8vIG5vdCBtZWFzdXJpbmcgcGFydCBvZiB0aGUgcmVuZGVyIHBoYXNlLCBidXQgdGhpcyBtYWtlcyBpdCBtYXRjaCB3aGF0IHdlXG4gICAgICAvLyBkbyBpbiBDb25jdXJyZW50IE1vZGUuXG4gICAgICBwcmltYXJ5Q2hpbGRGcmFnbWVudC5hY3R1YWxEdXJhdGlvbiA9IDA7XG4gICAgICBwcmltYXJ5Q2hpbGRGcmFnbWVudC5hY3R1YWxTdGFydFRpbWUgPSAtMTtcbiAgICAgIHByaW1hcnlDaGlsZEZyYWdtZW50LnNlbGZCYXNlRHVyYXRpb24gPSBjdXJyZW50UHJpbWFyeUNoaWxkRnJhZ21lbnQuc2VsZkJhc2VEdXJhdGlvbjtcbiAgICAgIHByaW1hcnlDaGlsZEZyYWdtZW50LnRyZWVCYXNlRHVyYXRpb24gPSBjdXJyZW50UHJpbWFyeUNoaWxkRnJhZ21lbnQudHJlZUJhc2VEdXJhdGlvbjtcbiAgICB9IC8vIFRoZSBmYWxsYmFjayBmaWJlciB3YXMgYWRkZWQgYXMgYSBkZWxldGlvbiBlZmZlY3QgZHVyaW5nIHRoZSBmaXJzdCBwYXNzLlxuICAgIC8vIEhvd2V2ZXIsIHNpbmNlIHdlJ3JlIGdvaW5nIHRvIHJlbWFpbiBvbiB0aGUgZmFsbGJhY2ssIHdlIG5vIGxvbmdlciB3YW50XG4gICAgLy8gdG8gZGVsZXRlIGl0LiBTbyB3ZSBuZWVkIHRvIHJlbW92ZSBpdCBmcm9tIHRoZSBsaXN0LiBEZWxldGlvbnMgYXJlIHN0b3JlZFxuICAgIC8vIG9uIHRoZSBzYW1lIGxpc3QgYXMgZWZmZWN0cy4gV2Ugd2FudCB0byBrZWVwIHRoZSBlZmZlY3RzIGZyb20gdGhlIHByaW1hcnlcbiAgICAvLyB0cmVlLiBTbyB3ZSBjb3B5IHRoZSBwcmltYXJ5IGNoaWxkIGZyYWdtZW50J3MgZWZmZWN0IGxpc3QsIHdoaWNoIGRvZXMgbm90XG4gICAgLy8gaW5jbHVkZSB0aGUgZmFsbGJhY2sgZGVsZXRpb24gZWZmZWN0LlxuXG5cbiAgICB2YXIgcHJvZ3Jlc3NlZExhc3RFZmZlY3QgPSBwcmltYXJ5Q2hpbGRGcmFnbWVudC5sYXN0RWZmZWN0O1xuXG4gICAgaWYgKHByb2dyZXNzZWRMYXN0RWZmZWN0ICE9PSBudWxsKSB7XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5maXJzdEVmZmVjdCA9IHByaW1hcnlDaGlsZEZyYWdtZW50LmZpcnN0RWZmZWN0O1xuICAgICAgd29ya0luUHJvZ3Jlc3MubGFzdEVmZmVjdCA9IHByb2dyZXNzZWRMYXN0RWZmZWN0O1xuICAgICAgcHJvZ3Jlc3NlZExhc3RFZmZlY3QubmV4dEVmZmVjdCA9IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRPRE86IFJlc2V0IHRoaXMgc29tZXdoZXJlIGVsc2U/IExvbCBsZWdhY3kgbW9kZSBpcyBzbyB3ZWlyZC5cbiAgICAgIHdvcmtJblByb2dyZXNzLmZpcnN0RWZmZWN0ID0gd29ya0luUHJvZ3Jlc3MubGFzdEVmZmVjdCA9IG51bGw7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHByaW1hcnlDaGlsZEZyYWdtZW50ID0gY3JlYXRlV29ya0luUHJvZ3Jlc3NPZmZzY3JlZW5GaWJlcihjdXJyZW50UHJpbWFyeUNoaWxkRnJhZ21lbnQsIHByaW1hcnlDaGlsZFByb3BzKTtcbiAgfVxuXG4gIHZhciBmYWxsYmFja0NoaWxkRnJhZ21lbnQ7XG5cbiAgaWYgKGN1cnJlbnRGYWxsYmFja0NoaWxkRnJhZ21lbnQgIT09IG51bGwpIHtcbiAgICBmYWxsYmFja0NoaWxkRnJhZ21lbnQgPSBjcmVhdGVXb3JrSW5Qcm9ncmVzcyhjdXJyZW50RmFsbGJhY2tDaGlsZEZyYWdtZW50LCBmYWxsYmFja0NoaWxkcmVuKTtcbiAgfSBlbHNlIHtcbiAgICBmYWxsYmFja0NoaWxkRnJhZ21lbnQgPSBjcmVhdGVGaWJlckZyb21GcmFnbWVudChmYWxsYmFja0NoaWxkcmVuLCBtb2RlLCByZW5kZXJMYW5lcywgbnVsbCk7IC8vIE5lZWRzIGEgcGxhY2VtZW50IGVmZmVjdCBiZWNhdXNlIHRoZSBwYXJlbnQgKHRoZSBTdXNwZW5zZSBib3VuZGFyeSkgYWxyZWFkeVxuICAgIC8vIG1vdW50ZWQgYnV0IHRoaXMgaXMgYSBuZXcgZmliZXIuXG5cbiAgICBmYWxsYmFja0NoaWxkRnJhZ21lbnQuZmxhZ3MgfD0gUGxhY2VtZW50O1xuICB9XG5cbiAgZmFsbGJhY2tDaGlsZEZyYWdtZW50LnJldHVybiA9IHdvcmtJblByb2dyZXNzO1xuICBwcmltYXJ5Q2hpbGRGcmFnbWVudC5yZXR1cm4gPSB3b3JrSW5Qcm9ncmVzcztcbiAgcHJpbWFyeUNoaWxkRnJhZ21lbnQuc2libGluZyA9IGZhbGxiYWNrQ2hpbGRGcmFnbWVudDtcbiAgd29ya0luUHJvZ3Jlc3MuY2hpbGQgPSBwcmltYXJ5Q2hpbGRGcmFnbWVudDtcbiAgcmV0dXJuIGZhbGxiYWNrQ2hpbGRGcmFnbWVudDtcbn1cblxuZnVuY3Rpb24gc2NoZWR1bGVXb3JrT25GaWJlcihmaWJlciwgcmVuZGVyTGFuZXMpIHtcbiAgZmliZXIubGFuZXMgPSBtZXJnZUxhbmVzKGZpYmVyLmxhbmVzLCByZW5kZXJMYW5lcyk7XG4gIHZhciBhbHRlcm5hdGUgPSBmaWJlci5hbHRlcm5hdGU7XG5cbiAgaWYgKGFsdGVybmF0ZSAhPT0gbnVsbCkge1xuICAgIGFsdGVybmF0ZS5sYW5lcyA9IG1lcmdlTGFuZXMoYWx0ZXJuYXRlLmxhbmVzLCByZW5kZXJMYW5lcyk7XG4gIH1cblxuICBzY2hlZHVsZVdvcmtPblBhcmVudFBhdGgoZmliZXIucmV0dXJuLCByZW5kZXJMYW5lcyk7XG59XG5cbmZ1bmN0aW9uIHByb3BhZ2F0ZVN1c3BlbnNlQ29udGV4dENoYW5nZSh3b3JrSW5Qcm9ncmVzcywgZmlyc3RDaGlsZCwgcmVuZGVyTGFuZXMpIHtcbiAgLy8gTWFyayBhbnkgU3VzcGVuc2UgYm91bmRhcmllcyB3aXRoIGZhbGxiYWNrcyBhcyBoYXZpbmcgd29yayB0byBkby5cbiAgLy8gSWYgdGhleSB3ZXJlIHByZXZpb3VzbHkgZm9yY2VkIGludG8gZmFsbGJhY2tzLCB0aGV5IG1heSBub3cgYmUgYWJsZVxuICAvLyB0byB1bmJsb2NrLlxuICB2YXIgbm9kZSA9IGZpcnN0Q2hpbGQ7XG5cbiAgd2hpbGUgKG5vZGUgIT09IG51bGwpIHtcbiAgICBpZiAobm9kZS50YWcgPT09IFN1c3BlbnNlQ29tcG9uZW50KSB7XG4gICAgICB2YXIgc3RhdGUgPSBub2RlLm1lbW9pemVkU3RhdGU7XG5cbiAgICAgIGlmIChzdGF0ZSAhPT0gbnVsbCkge1xuICAgICAgICBzY2hlZHVsZVdvcmtPbkZpYmVyKG5vZGUsIHJlbmRlckxhbmVzKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKG5vZGUudGFnID09PSBTdXNwZW5zZUxpc3RDb21wb25lbnQpIHtcbiAgICAgIC8vIElmIHRoZSB0YWlsIGlzIGhpZGRlbiB0aGVyZSBtaWdodCBub3QgYmUgYW4gU3VzcGVuc2UgYm91bmRhcmllc1xuICAgICAgLy8gdG8gc2NoZWR1bGUgd29yayBvbi4gSW4gdGhpcyBjYXNlIHdlIGhhdmUgdG8gc2NoZWR1bGUgaXQgb24gdGhlXG4gICAgICAvLyBsaXN0IGl0c2VsZi5cbiAgICAgIC8vIFdlIGRvbid0IGhhdmUgdG8gdHJhdmVyc2UgdG8gdGhlIGNoaWxkcmVuIG9mIHRoZSBsaXN0IHNpbmNlXG4gICAgICAvLyB0aGUgbGlzdCB3aWxsIHByb3BhZ2F0ZSB0aGUgY2hhbmdlIHdoZW4gaXQgcmVyZW5kZXJzLlxuICAgICAgc2NoZWR1bGVXb3JrT25GaWJlcihub2RlLCByZW5kZXJMYW5lcyk7XG4gICAgfSBlbHNlIGlmIChub2RlLmNoaWxkICE9PSBudWxsKSB7XG4gICAgICBub2RlLmNoaWxkLnJldHVybiA9IG5vZGU7XG4gICAgICBub2RlID0gbm9kZS5jaGlsZDtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmIChub2RlID09PSB3b3JrSW5Qcm9ncmVzcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHdoaWxlIChub2RlLnNpYmxpbmcgPT09IG51bGwpIHtcbiAgICAgIGlmIChub2RlLnJldHVybiA9PT0gbnVsbCB8fCBub2RlLnJldHVybiA9PT0gd29ya0luUHJvZ3Jlc3MpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBub2RlID0gbm9kZS5yZXR1cm47XG4gICAgfVxuXG4gICAgbm9kZS5zaWJsaW5nLnJldHVybiA9IG5vZGUucmV0dXJuO1xuICAgIG5vZGUgPSBub2RlLnNpYmxpbmc7XG4gIH1cbn1cblxuZnVuY3Rpb24gZmluZExhc3RDb250ZW50Um93KGZpcnN0Q2hpbGQpIHtcbiAgLy8gVGhpcyBpcyBnb2luZyB0byBmaW5kIHRoZSBsYXN0IHJvdyBhbW9uZyB0aGVzZSBjaGlsZHJlbiB0aGF0IGlzIGFscmVhZHlcbiAgLy8gc2hvd2luZyBjb250ZW50IG9uIHRoZSBzY3JlZW4sIGFzIG9wcG9zZWQgdG8gYmVpbmcgaW4gZmFsbGJhY2sgc3RhdGUgb3JcbiAgLy8gbmV3LiBJZiBhIHJvdyBoYXMgbXVsdGlwbGUgU3VzcGVuc2UgYm91bmRhcmllcywgYW55IG9mIHRoZW0gYmVpbmcgaW4gdGhlXG4gIC8vIGZhbGxiYWNrIHN0YXRlLCBjb3VudHMgYXMgdGhlIHdob2xlIHJvdyBiZWluZyBpbiBhIGZhbGxiYWNrIHN0YXRlLlxuICAvLyBOb3RlIHRoYXQgdGhlIFwicm93c1wiIHdpbGwgYmUgd29ya0luUHJvZ3Jlc3MsIGJ1dCBhbnkgbmVzdGVkIGNoaWxkcmVuXG4gIC8vIHdpbGwgc3RpbGwgYmUgY3VycmVudCBzaW5jZSB3ZSBoYXZlbid0IHJlbmRlcmVkIHRoZW0geWV0LiBUaGUgbW91bnRlZFxuICAvLyBvcmRlciBtYXkgbm90IGJlIHRoZSBzYW1lIGFzIHRoZSBuZXcgb3JkZXIuIFdlIHVzZSB0aGUgbmV3IG9yZGVyLlxuICB2YXIgcm93ID0gZmlyc3RDaGlsZDtcbiAgdmFyIGxhc3RDb250ZW50Um93ID0gbnVsbDtcblxuICB3aGlsZSAocm93ICE9PSBudWxsKSB7XG4gICAgdmFyIGN1cnJlbnRSb3cgPSByb3cuYWx0ZXJuYXRlOyAvLyBOZXcgcm93cyBjYW4ndCBiZSBjb250ZW50IHJvd3MuXG5cbiAgICBpZiAoY3VycmVudFJvdyAhPT0gbnVsbCAmJiBmaW5kRmlyc3RTdXNwZW5kZWQoY3VycmVudFJvdykgPT09IG51bGwpIHtcbiAgICAgIGxhc3RDb250ZW50Um93ID0gcm93O1xuICAgIH1cblxuICAgIHJvdyA9IHJvdy5zaWJsaW5nO1xuICB9XG5cbiAgcmV0dXJuIGxhc3RDb250ZW50Um93O1xufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVJldmVhbE9yZGVyKHJldmVhbE9yZGVyKSB7XG4gIHtcbiAgICBpZiAocmV2ZWFsT3JkZXIgIT09IHVuZGVmaW5lZCAmJiByZXZlYWxPcmRlciAhPT0gJ2ZvcndhcmRzJyAmJiByZXZlYWxPcmRlciAhPT0gJ2JhY2t3YXJkcycgJiYgcmV2ZWFsT3JkZXIgIT09ICd0b2dldGhlcicgJiYgIWRpZFdhcm5BYm91dFJldmVhbE9yZGVyW3JldmVhbE9yZGVyXSkge1xuICAgICAgZGlkV2FybkFib3V0UmV2ZWFsT3JkZXJbcmV2ZWFsT3JkZXJdID0gdHJ1ZTtcblxuICAgICAgaWYgKHR5cGVvZiByZXZlYWxPcmRlciA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgc3dpdGNoIChyZXZlYWxPcmRlci50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgICAgY2FzZSAndG9nZXRoZXInOlxuICAgICAgICAgIGNhc2UgJ2ZvcndhcmRzJzpcbiAgICAgICAgICBjYXNlICdiYWNrd2FyZHMnOlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBlcnJvcignXCIlc1wiIGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciByZXZlYWxPcmRlciBvbiA8U3VzcGVuc2VMaXN0IC8+LiAnICsgJ1VzZSBsb3dlcmNhc2UgXCIlc1wiIGluc3RlYWQuJywgcmV2ZWFsT3JkZXIsIHJldmVhbE9yZGVyLnRvTG93ZXJDYXNlKCkpO1xuXG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgY2FzZSAnZm9yd2FyZCc6XG4gICAgICAgICAgY2FzZSAnYmFja3dhcmQnOlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBlcnJvcignXCIlc1wiIGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciByZXZlYWxPcmRlciBvbiA8U3VzcGVuc2VMaXN0IC8+LiAnICsgJ1JlYWN0IHVzZXMgdGhlIC1zIHN1ZmZpeCBpbiB0aGUgc3BlbGxpbmcuIFVzZSBcIiVzc1wiIGluc3RlYWQuJywgcmV2ZWFsT3JkZXIsIHJldmVhbE9yZGVyLnRvTG93ZXJDYXNlKCkpO1xuXG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGVycm9yKCdcIiVzXCIgaXMgbm90IGEgc3VwcG9ydGVkIHJldmVhbE9yZGVyIG9uIDxTdXNwZW5zZUxpc3QgLz4uICcgKyAnRGlkIHlvdSBtZWFuIFwidG9nZXRoZXJcIiwgXCJmb3J3YXJkc1wiIG9yIFwiYmFja3dhcmRzXCI/JywgcmV2ZWFsT3JkZXIpO1xuXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXJyb3IoJyVzIGlzIG5vdCBhIHN1cHBvcnRlZCB2YWx1ZSBmb3IgcmV2ZWFsT3JkZXIgb24gPFN1c3BlbnNlTGlzdCAvPi4gJyArICdEaWQgeW91IG1lYW4gXCJ0b2dldGhlclwiLCBcImZvcndhcmRzXCIgb3IgXCJiYWNrd2FyZHNcIj8nLCByZXZlYWxPcmRlcik7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlVGFpbE9wdGlvbnModGFpbE1vZGUsIHJldmVhbE9yZGVyKSB7XG4gIHtcbiAgICBpZiAodGFpbE1vZGUgIT09IHVuZGVmaW5lZCAmJiAhZGlkV2FybkFib3V0VGFpbE9wdGlvbnNbdGFpbE1vZGVdKSB7XG4gICAgICBpZiAodGFpbE1vZGUgIT09ICdjb2xsYXBzZWQnICYmIHRhaWxNb2RlICE9PSAnaGlkZGVuJykge1xuICAgICAgICBkaWRXYXJuQWJvdXRUYWlsT3B0aW9uc1t0YWlsTW9kZV0gPSB0cnVlO1xuXG4gICAgICAgIGVycm9yKCdcIiVzXCIgaXMgbm90IGEgc3VwcG9ydGVkIHZhbHVlIGZvciB0YWlsIG9uIDxTdXNwZW5zZUxpc3QgLz4uICcgKyAnRGlkIHlvdSBtZWFuIFwiY29sbGFwc2VkXCIgb3IgXCJoaWRkZW5cIj8nLCB0YWlsTW9kZSk7XG4gICAgICB9IGVsc2UgaWYgKHJldmVhbE9yZGVyICE9PSAnZm9yd2FyZHMnICYmIHJldmVhbE9yZGVyICE9PSAnYmFja3dhcmRzJykge1xuICAgICAgICBkaWRXYXJuQWJvdXRUYWlsT3B0aW9uc1t0YWlsTW9kZV0gPSB0cnVlO1xuXG4gICAgICAgIGVycm9yKCc8U3VzcGVuc2VMaXN0IHRhaWw9XCIlc1wiIC8+IGlzIG9ubHkgdmFsaWQgaWYgcmV2ZWFsT3JkZXIgaXMgJyArICdcImZvcndhcmRzXCIgb3IgXCJiYWNrd2FyZHNcIi4gJyArICdEaWQgeW91IG1lYW4gdG8gc3BlY2lmeSByZXZlYWxPcmRlcj1cImZvcndhcmRzXCI/JywgdGFpbE1vZGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVN1c3BlbnNlTGlzdE5lc3RlZENoaWxkKGNoaWxkU2xvdCwgaW5kZXgpIHtcbiAge1xuICAgIHZhciBpc0FycmF5ID0gQXJyYXkuaXNBcnJheShjaGlsZFNsb3QpO1xuICAgIHZhciBpc0l0ZXJhYmxlID0gIWlzQXJyYXkgJiYgdHlwZW9mIGdldEl0ZXJhdG9yRm4oY2hpbGRTbG90KSA9PT0gJ2Z1bmN0aW9uJztcblxuICAgIGlmIChpc0FycmF5IHx8IGlzSXRlcmFibGUpIHtcbiAgICAgIHZhciB0eXBlID0gaXNBcnJheSA/ICdhcnJheScgOiAnaXRlcmFibGUnO1xuXG4gICAgICBlcnJvcignQSBuZXN0ZWQgJXMgd2FzIHBhc3NlZCB0byByb3cgIyVzIGluIDxTdXNwZW5zZUxpc3QgLz4uIFdyYXAgaXQgaW4gJyArICdhbiBhZGRpdGlvbmFsIFN1c3BlbnNlTGlzdCB0byBjb25maWd1cmUgaXRzIHJldmVhbE9yZGVyOiAnICsgJzxTdXNwZW5zZUxpc3QgcmV2ZWFsT3JkZXI9Li4uPiAuLi4gJyArICc8U3VzcGVuc2VMaXN0IHJldmVhbE9yZGVyPS4uLj57JXN9PC9TdXNwZW5zZUxpc3Q+IC4uLiAnICsgJzwvU3VzcGVuc2VMaXN0PicsIHR5cGUsIGluZGV4LCB0eXBlKTtcblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVN1c3BlbnNlTGlzdENoaWxkcmVuKGNoaWxkcmVuLCByZXZlYWxPcmRlcikge1xuICB7XG4gICAgaWYgKChyZXZlYWxPcmRlciA9PT0gJ2ZvcndhcmRzJyB8fCByZXZlYWxPcmRlciA9PT0gJ2JhY2t3YXJkcycpICYmIGNoaWxkcmVuICE9PSB1bmRlZmluZWQgJiYgY2hpbGRyZW4gIT09IG51bGwgJiYgY2hpbGRyZW4gIT09IGZhbHNlKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShjaGlsZHJlbikpIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGlmICghdmFsaWRhdGVTdXNwZW5zZUxpc3ROZXN0ZWRDaGlsZChjaGlsZHJlbltpXSwgaSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBpdGVyYXRvckZuID0gZ2V0SXRlcmF0b3JGbihjaGlsZHJlbik7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBpdGVyYXRvckZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgdmFyIGNoaWxkcmVuSXRlcmF0b3IgPSBpdGVyYXRvckZuLmNhbGwoY2hpbGRyZW4pO1xuXG4gICAgICAgICAgaWYgKGNoaWxkcmVuSXRlcmF0b3IpIHtcbiAgICAgICAgICAgIHZhciBzdGVwID0gY2hpbGRyZW5JdGVyYXRvci5uZXh0KCk7XG4gICAgICAgICAgICB2YXIgX2kgPSAwO1xuXG4gICAgICAgICAgICBmb3IgKDsgIXN0ZXAuZG9uZTsgc3RlcCA9IGNoaWxkcmVuSXRlcmF0b3IubmV4dCgpKSB7XG4gICAgICAgICAgICAgIGlmICghdmFsaWRhdGVTdXNwZW5zZUxpc3ROZXN0ZWRDaGlsZChzdGVwLnZhbHVlLCBfaSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBfaSsrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBlcnJvcignQSBzaW5nbGUgcm93IHdhcyBwYXNzZWQgdG8gYSA8U3VzcGVuc2VMaXN0IHJldmVhbE9yZGVyPVwiJXNcIiAvPi4gJyArICdUaGlzIGlzIG5vdCB1c2VmdWwgc2luY2UgaXQgbmVlZHMgbXVsdGlwbGUgcm93cy4gJyArICdEaWQgeW91IG1lYW4gdG8gcGFzcyBtdWx0aXBsZSBjaGlsZHJlbiBvciBhbiBhcnJheT8nLCByZXZlYWxPcmRlcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gaW5pdFN1c3BlbnNlTGlzdFJlbmRlclN0YXRlKHdvcmtJblByb2dyZXNzLCBpc0JhY2t3YXJkcywgdGFpbCwgbGFzdENvbnRlbnRSb3csIHRhaWxNb2RlLCBsYXN0RWZmZWN0QmVmb3JlUmVuZGVyaW5nKSB7XG4gIHZhciByZW5kZXJTdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG5cbiAgaWYgKHJlbmRlclN0YXRlID09PSBudWxsKSB7XG4gICAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IHtcbiAgICAgIGlzQmFja3dhcmRzOiBpc0JhY2t3YXJkcyxcbiAgICAgIHJlbmRlcmluZzogbnVsbCxcbiAgICAgIHJlbmRlcmluZ1N0YXJ0VGltZTogMCxcbiAgICAgIGxhc3Q6IGxhc3RDb250ZW50Um93LFxuICAgICAgdGFpbDogdGFpbCxcbiAgICAgIHRhaWxNb2RlOiB0YWlsTW9kZSxcbiAgICAgIGxhc3RFZmZlY3Q6IGxhc3RFZmZlY3RCZWZvcmVSZW5kZXJpbmdcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIC8vIFdlIGNhbiByZXVzZSB0aGUgZXhpc3Rpbmcgb2JqZWN0IGZyb20gcHJldmlvdXMgcmVuZGVycy5cbiAgICByZW5kZXJTdGF0ZS5pc0JhY2t3YXJkcyA9IGlzQmFja3dhcmRzO1xuICAgIHJlbmRlclN0YXRlLnJlbmRlcmluZyA9IG51bGw7XG4gICAgcmVuZGVyU3RhdGUucmVuZGVyaW5nU3RhcnRUaW1lID0gMDtcbiAgICByZW5kZXJTdGF0ZS5sYXN0ID0gbGFzdENvbnRlbnRSb3c7XG4gICAgcmVuZGVyU3RhdGUudGFpbCA9IHRhaWw7XG4gICAgcmVuZGVyU3RhdGUudGFpbE1vZGUgPSB0YWlsTW9kZTtcbiAgICByZW5kZXJTdGF0ZS5sYXN0RWZmZWN0ID0gbGFzdEVmZmVjdEJlZm9yZVJlbmRlcmluZztcbiAgfVxufSAvLyBUaGlzIGNhbiBlbmQgdXAgcmVuZGVyaW5nIHRoaXMgY29tcG9uZW50IG11bHRpcGxlIHBhc3Nlcy5cbi8vIFRoZSBmaXJzdCBwYXNzIHNwbGl0cyB0aGUgY2hpbGRyZW4gZmliZXJzIGludG8gdHdvIHNldHMuIEEgaGVhZCBhbmQgdGFpbC5cbi8vIFdlIGZpcnN0IHJlbmRlciB0aGUgaGVhZC4gSWYgYW55dGhpbmcgaXMgaW4gZmFsbGJhY2sgc3RhdGUsIHdlIGRvIGFub3RoZXJcbi8vIHBhc3MgdGhyb3VnaCBiZWdpbldvcmsgdG8gcmVyZW5kZXIgYWxsIGNoaWxkcmVuIChpbmNsdWRpbmcgdGhlIHRhaWwpIHdpdGhcbi8vIHRoZSBmb3JjZSBzdXNwZW5kIGNvbnRleHQuIElmIHRoZSBmaXJzdCByZW5kZXIgZGlkbid0IGhhdmUgYW55dGhpbmcgaW5cbi8vIGluIGZhbGxiYWNrIHN0YXRlLiBUaGVuIHdlIHJlbmRlciBlYWNoIHJvdyBpbiB0aGUgdGFpbCBvbmUtYnktb25lLlxuLy8gVGhhdCBoYXBwZW5zIGluIHRoZSBjb21wbGV0ZVdvcmsgcGhhc2Ugd2l0aG91dCBnb2luZyBiYWNrIHRvIGJlZ2luV29yay5cblxuXG5mdW5jdGlvbiB1cGRhdGVTdXNwZW5zZUxpc3RDb21wb25lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKSB7XG4gIHZhciBuZXh0UHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHM7XG4gIHZhciByZXZlYWxPcmRlciA9IG5leHRQcm9wcy5yZXZlYWxPcmRlcjtcbiAgdmFyIHRhaWxNb2RlID0gbmV4dFByb3BzLnRhaWw7XG4gIHZhciBuZXdDaGlsZHJlbiA9IG5leHRQcm9wcy5jaGlsZHJlbjtcbiAgdmFsaWRhdGVSZXZlYWxPcmRlcihyZXZlYWxPcmRlcik7XG4gIHZhbGlkYXRlVGFpbE9wdGlvbnModGFpbE1vZGUsIHJldmVhbE9yZGVyKTtcbiAgdmFsaWRhdGVTdXNwZW5zZUxpc3RDaGlsZHJlbihuZXdDaGlsZHJlbiwgcmV2ZWFsT3JkZXIpO1xuICByZWNvbmNpbGVDaGlsZHJlbihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgbmV3Q2hpbGRyZW4sIHJlbmRlckxhbmVzKTtcbiAgdmFyIHN1c3BlbnNlQ29udGV4dCA9IHN1c3BlbnNlU3RhY2tDdXJzb3IuY3VycmVudDtcbiAgdmFyIHNob3VsZEZvcmNlRmFsbGJhY2sgPSBoYXNTdXNwZW5zZUNvbnRleHQoc3VzcGVuc2VDb250ZXh0LCBGb3JjZVN1c3BlbnNlRmFsbGJhY2spO1xuXG4gIGlmIChzaG91bGRGb3JjZUZhbGxiYWNrKSB7XG4gICAgc3VzcGVuc2VDb250ZXh0ID0gc2V0U2hhbGxvd1N1c3BlbnNlQ29udGV4dChzdXNwZW5zZUNvbnRleHQsIEZvcmNlU3VzcGVuc2VGYWxsYmFjayk7XG4gICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gRGlkQ2FwdHVyZTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgZGlkU3VzcGVuZEJlZm9yZSA9IGN1cnJlbnQgIT09IG51bGwgJiYgKGN1cnJlbnQuZmxhZ3MgJiBEaWRDYXB0dXJlKSAhPT0gTm9GbGFncztcblxuICAgIGlmIChkaWRTdXNwZW5kQmVmb3JlKSB7XG4gICAgICAvLyBJZiB3ZSBwcmV2aW91c2x5IGZvcmNlZCBhIGZhbGxiYWNrLCB3ZSBuZWVkIHRvIHNjaGVkdWxlIHdvcmtcbiAgICAgIC8vIG9uIGFueSBuZXN0ZWQgYm91bmRhcmllcyB0byBsZXQgdGhlbSBrbm93IHRvIHRyeSB0byByZW5kZXJcbiAgICAgIC8vIGFnYWluLiBUaGlzIGlzIHRoZSBzYW1lIGFzIGNvbnRleHQgdXBkYXRpbmcuXG4gICAgICBwcm9wYWdhdGVTdXNwZW5zZUNvbnRleHRDaGFuZ2Uod29ya0luUHJvZ3Jlc3MsIHdvcmtJblByb2dyZXNzLmNoaWxkLCByZW5kZXJMYW5lcyk7XG4gICAgfVxuXG4gICAgc3VzcGVuc2VDb250ZXh0ID0gc2V0RGVmYXVsdFNoYWxsb3dTdXNwZW5zZUNvbnRleHQoc3VzcGVuc2VDb250ZXh0KTtcbiAgfVxuXG4gIHB1c2hTdXNwZW5zZUNvbnRleHQod29ya0luUHJvZ3Jlc3MsIHN1c3BlbnNlQ29udGV4dCk7XG5cbiAgaWYgKCh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgQmxvY2tpbmdNb2RlKSA9PT0gTm9Nb2RlKSB7XG4gICAgLy8gSW4gbGVnYWN5IG1vZGUsIFN1c3BlbnNlTGlzdCBkb2Vzbid0IHdvcmsgc28gd2UganVzdFxuICAgIC8vIHVzZSBtYWtlIGl0IGEgbm9vcCBieSB0cmVhdGluZyBpdCBhcyB0aGUgZGVmYXVsdCByZXZlYWxPcmRlci5cbiAgICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gbnVsbDtcbiAgfSBlbHNlIHtcbiAgICBzd2l0Y2ggKHJldmVhbE9yZGVyKSB7XG4gICAgICBjYXNlICdmb3J3YXJkcyc6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgbGFzdENvbnRlbnRSb3cgPSBmaW5kTGFzdENvbnRlbnRSb3cod29ya0luUHJvZ3Jlc3MuY2hpbGQpO1xuICAgICAgICAgIHZhciB0YWlsO1xuXG4gICAgICAgICAgaWYgKGxhc3RDb250ZW50Um93ID09PSBudWxsKSB7XG4gICAgICAgICAgICAvLyBUaGUgd2hvbGUgbGlzdCBpcyBwYXJ0IG9mIHRoZSB0YWlsLlxuICAgICAgICAgICAgLy8gVE9ETzogV2UgY291bGQgZmFzdCBwYXRoIGJ5IGp1c3QgcmVuZGVyaW5nIHRoZSB0YWlsIG5vdy5cbiAgICAgICAgICAgIHRhaWwgPSB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLmNoaWxkID0gbnVsbDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gRGlzY29ubmVjdCB0aGUgdGFpbCByb3dzIGFmdGVyIHRoZSBjb250ZW50IHJvdy5cbiAgICAgICAgICAgIC8vIFdlJ3JlIGdvaW5nIHRvIHJlbmRlciB0aGVtIHNlcGFyYXRlbHkgbGF0ZXIuXG4gICAgICAgICAgICB0YWlsID0gbGFzdENvbnRlbnRSb3cuc2libGluZztcbiAgICAgICAgICAgIGxhc3RDb250ZW50Um93LnNpYmxpbmcgPSBudWxsO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGluaXRTdXNwZW5zZUxpc3RSZW5kZXJTdGF0ZSh3b3JrSW5Qcm9ncmVzcywgZmFsc2UsIC8vIGlzQmFja3dhcmRzXG4gICAgICAgICAgdGFpbCwgbGFzdENvbnRlbnRSb3csIHRhaWxNb2RlLCB3b3JrSW5Qcm9ncmVzcy5sYXN0RWZmZWN0KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICBjYXNlICdiYWNrd2FyZHMnOlxuICAgICAgICB7XG4gICAgICAgICAgLy8gV2UncmUgZ29pbmcgdG8gZmluZCB0aGUgZmlyc3Qgcm93IHRoYXQgaGFzIGV4aXN0aW5nIGNvbnRlbnQuXG4gICAgICAgICAgLy8gQXQgdGhlIHNhbWUgdGltZSB3ZSdyZSBnb2luZyB0byByZXZlcnNlIHRoZSBsaXN0IG9mIGV2ZXJ5dGhpbmdcbiAgICAgICAgICAvLyB3ZSBwYXNzIGluIHRoZSBtZWFudGltZS4gVGhhdCdzIGdvaW5nIHRvIGJlIG91ciB0YWlsIGluIHJldmVyc2VcbiAgICAgICAgICAvLyBvcmRlci5cbiAgICAgICAgICB2YXIgX3RhaWwgPSBudWxsO1xuICAgICAgICAgIHZhciByb3cgPSB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IG51bGw7XG5cbiAgICAgICAgICB3aGlsZSAocm93ICE9PSBudWxsKSB7XG4gICAgICAgICAgICB2YXIgY3VycmVudFJvdyA9IHJvdy5hbHRlcm5hdGU7IC8vIE5ldyByb3dzIGNhbid0IGJlIGNvbnRlbnQgcm93cy5cblxuICAgICAgICAgICAgaWYgKGN1cnJlbnRSb3cgIT09IG51bGwgJiYgZmluZEZpcnN0U3VzcGVuZGVkKGN1cnJlbnRSb3cpID09PSBudWxsKSB7XG4gICAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIGJlZ2lubmluZyBvZiB0aGUgbWFpbiBjb250ZW50LlxuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IHJvdztcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhciBuZXh0Um93ID0gcm93LnNpYmxpbmc7XG4gICAgICAgICAgICByb3cuc2libGluZyA9IF90YWlsO1xuICAgICAgICAgICAgX3RhaWwgPSByb3c7XG4gICAgICAgICAgICByb3cgPSBuZXh0Um93O1xuICAgICAgICAgIH0gLy8gVE9ETzogSWYgd29ya0luUHJvZ3Jlc3MuY2hpbGQgaXMgbnVsbCwgd2UgY2FuIGNvbnRpbnVlIG9uIHRoZSB0YWlsIGltbWVkaWF0ZWx5LlxuXG5cbiAgICAgICAgICBpbml0U3VzcGVuc2VMaXN0UmVuZGVyU3RhdGUod29ya0luUHJvZ3Jlc3MsIHRydWUsIC8vIGlzQmFja3dhcmRzXG4gICAgICAgICAgX3RhaWwsIG51bGwsIC8vIGxhc3RcbiAgICAgICAgICB0YWlsTW9kZSwgd29ya0luUHJvZ3Jlc3MubGFzdEVmZmVjdCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgY2FzZSAndG9nZXRoZXInOlxuICAgICAgICB7XG4gICAgICAgICAgaW5pdFN1c3BlbnNlTGlzdFJlbmRlclN0YXRlKHdvcmtJblByb2dyZXNzLCBmYWxzZSwgLy8gaXNCYWNrd2FyZHNcbiAgICAgICAgICBudWxsLCAvLyB0YWlsXG4gICAgICAgICAgbnVsbCwgLy8gbGFzdFxuICAgICAgICAgIHVuZGVmaW5lZCwgd29ya0luUHJvZ3Jlc3MubGFzdEVmZmVjdCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAge1xuICAgICAgICAgIC8vIFRoZSBkZWZhdWx0IHJldmVhbCBvcmRlciBpcyB0aGUgc2FtZSBhcyBub3QgaGF2aW5nXG4gICAgICAgICAgLy8gYSBib3VuZGFyeS5cbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcbn1cblxuZnVuY3Rpb24gdXBkYXRlUG9ydGFsQ29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcykge1xuICBwdXNoSG9zdENvbnRhaW5lcih3b3JrSW5Qcm9ncmVzcywgd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pO1xuICB2YXIgbmV4dENoaWxkcmVuID0gd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzO1xuXG4gIGlmIChjdXJyZW50ID09PSBudWxsKSB7XG4gICAgLy8gUG9ydGFscyBhcmUgc3BlY2lhbCBiZWNhdXNlIHdlIGRvbid0IGFwcGVuZCB0aGUgY2hpbGRyZW4gZHVyaW5nIG1vdW50XG4gICAgLy8gYnV0IGF0IGNvbW1pdC4gVGhlcmVmb3JlIHdlIG5lZWQgdG8gdHJhY2sgaW5zZXJ0aW9ucyB3aGljaCB0aGUgbm9ybWFsXG4gICAgLy8gZmxvdyBkb2Vzbid0IGRvIGR1cmluZyBtb3VudC4gVGhpcyBkb2Vzbid0IGhhcHBlbiBhdCB0aGUgcm9vdCBiZWNhdXNlXG4gICAgLy8gdGhlIHJvb3QgYWx3YXlzIHN0YXJ0cyB3aXRoIGEgXCJjdXJyZW50XCIgd2l0aCBhIG51bGwgY2hpbGQuXG4gICAgLy8gVE9ETzogQ29uc2lkZXIgdW5pZnlpbmcgdGhpcyB3aXRoIGhvdyB0aGUgcm9vdCB3b3Jrcy5cbiAgICB3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IHJlY29uY2lsZUNoaWxkRmliZXJzKHdvcmtJblByb2dyZXNzLCBudWxsLCBuZXh0Q2hpbGRyZW4sIHJlbmRlckxhbmVzKTtcbiAgfSBlbHNlIHtcbiAgICByZWNvbmNpbGVDaGlsZHJlbihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgbmV4dENoaWxkcmVuLCByZW5kZXJMYW5lcyk7XG4gIH1cblxuICByZXR1cm4gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG59XG5cbnZhciBoYXNXYXJuZWRBYm91dFVzaW5nTm9WYWx1ZVByb3BPbkNvbnRleHRQcm92aWRlciA9IGZhbHNlO1xuXG5mdW5jdGlvbiB1cGRhdGVDb250ZXh0UHJvdmlkZXIoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKSB7XG4gIHZhciBwcm92aWRlclR5cGUgPSB3b3JrSW5Qcm9ncmVzcy50eXBlO1xuICB2YXIgY29udGV4dCA9IHByb3ZpZGVyVHlwZS5fY29udGV4dDtcbiAgdmFyIG5ld1Byb3BzID0gd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzO1xuICB2YXIgb2xkUHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFByb3BzO1xuICB2YXIgbmV3VmFsdWUgPSBuZXdQcm9wcy52YWx1ZTtcblxuICB7XG4gICAgaWYgKCEoJ3ZhbHVlJyBpbiBuZXdQcm9wcykpIHtcbiAgICAgIGlmICghaGFzV2FybmVkQWJvdXRVc2luZ05vVmFsdWVQcm9wT25Db250ZXh0UHJvdmlkZXIpIHtcbiAgICAgICAgaGFzV2FybmVkQWJvdXRVc2luZ05vVmFsdWVQcm9wT25Db250ZXh0UHJvdmlkZXIgPSB0cnVlO1xuXG4gICAgICAgIGVycm9yKCdUaGUgYHZhbHVlYCBwcm9wIGlzIHJlcXVpcmVkIGZvciB0aGUgYDxDb250ZXh0LlByb3ZpZGVyPmAuIERpZCB5b3UgbWlzc3BlbGwgaXQgb3IgZm9yZ2V0IHRvIHBhc3MgaXQ/Jyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIHByb3ZpZGVyUHJvcFR5cGVzID0gd29ya0luUHJvZ3Jlc3MudHlwZS5wcm9wVHlwZXM7XG5cbiAgICBpZiAocHJvdmlkZXJQcm9wVHlwZXMpIHtcbiAgICAgIGNoZWNrUHJvcFR5cGVzKHByb3ZpZGVyUHJvcFR5cGVzLCBuZXdQcm9wcywgJ3Byb3AnLCAnQ29udGV4dC5Qcm92aWRlcicpO1xuICAgIH1cbiAgfVxuXG4gIHB1c2hQcm92aWRlcih3b3JrSW5Qcm9ncmVzcywgbmV3VmFsdWUpO1xuXG4gIGlmIChvbGRQcm9wcyAhPT0gbnVsbCkge1xuICAgIHZhciBvbGRWYWx1ZSA9IG9sZFByb3BzLnZhbHVlO1xuICAgIHZhciBjaGFuZ2VkQml0cyA9IGNhbGN1bGF0ZUNoYW5nZWRCaXRzKGNvbnRleHQsIG5ld1ZhbHVlLCBvbGRWYWx1ZSk7XG5cbiAgICBpZiAoY2hhbmdlZEJpdHMgPT09IDApIHtcbiAgICAgIC8vIE5vIGNoYW5nZS4gQmFpbG91dCBlYXJseSBpZiBjaGlsZHJlbiBhcmUgdGhlIHNhbWUuXG4gICAgICBpZiAob2xkUHJvcHMuY2hpbGRyZW4gPT09IG5ld1Byb3BzLmNoaWxkcmVuICYmICFoYXNDb250ZXh0Q2hhbmdlZCgpKSB7XG4gICAgICAgIHJldHVybiBiYWlsb3V0T25BbHJlYWR5RmluaXNoZWRXb3JrKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRoZSBjb250ZXh0IHZhbHVlIGNoYW5nZWQuIFNlYXJjaCBmb3IgbWF0Y2hpbmcgY29uc3VtZXJzIGFuZCBzY2hlZHVsZVxuICAgICAgLy8gdGhlbSB0byB1cGRhdGUuXG4gICAgICBwcm9wYWdhdGVDb250ZXh0Q2hhbmdlKHdvcmtJblByb2dyZXNzLCBjb250ZXh0LCBjaGFuZ2VkQml0cywgcmVuZGVyTGFuZXMpO1xuICAgIH1cbiAgfVxuXG4gIHZhciBuZXdDaGlsZHJlbiA9IG5ld1Byb3BzLmNoaWxkcmVuO1xuICByZWNvbmNpbGVDaGlsZHJlbihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgbmV3Q2hpbGRyZW4sIHJlbmRlckxhbmVzKTtcbiAgcmV0dXJuIHdvcmtJblByb2dyZXNzLmNoaWxkO1xufVxuXG52YXIgaGFzV2FybmVkQWJvdXRVc2luZ0NvbnRleHRBc0NvbnN1bWVyID0gZmFsc2U7XG5cbmZ1bmN0aW9uIHVwZGF0ZUNvbnRleHRDb25zdW1lcihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpIHtcbiAgdmFyIGNvbnRleHQgPSB3b3JrSW5Qcm9ncmVzcy50eXBlOyAvLyBUaGUgbG9naWMgYmVsb3cgZm9yIENvbnRleHQgZGlmZmVycyBkZXBlbmRpbmcgb24gUFJPRCBvciBERVYgbW9kZS4gSW5cbiAgLy8gREVWIG1vZGUsIHdlIGNyZWF0ZSBhIHNlcGFyYXRlIG9iamVjdCBmb3IgQ29udGV4dC5Db25zdW1lciB0aGF0IGFjdHNcbiAgLy8gbGlrZSBhIHByb3h5IHRvIENvbnRleHQuIFRoaXMgcHJveHkgb2JqZWN0IGFkZHMgdW5uZWNlc3NhcnkgY29kZSBpbiBQUk9EXG4gIC8vIHNvIHdlIHVzZSB0aGUgb2xkIGJlaGF2aW91ciAoQ29udGV4dC5Db25zdW1lciByZWZlcmVuY2VzIENvbnRleHQpIHRvXG4gIC8vIHJlZHVjZSBzaXplIGFuZCBvdmVyaGVhZC4gVGhlIHNlcGFyYXRlIG9iamVjdCByZWZlcmVuY2VzIGNvbnRleHQgdmlhXG4gIC8vIGEgcHJvcGVydHkgY2FsbGVkIFwiX2NvbnRleHRcIiwgd2hpY2ggYWxzbyBnaXZlcyB1cyB0aGUgYWJpbGl0eSB0byBjaGVja1xuICAvLyBpbiBERVYgbW9kZSBpZiB0aGlzIHByb3BlcnR5IGV4aXN0cyBvciBub3QgYW5kIHdhcm4gaWYgaXQgZG9lcyBub3QuXG5cbiAge1xuICAgIGlmIChjb250ZXh0Ll9jb250ZXh0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIFRoaXMgbWF5IGJlIGJlY2F1c2UgaXQncyBhIENvbnRleHQgKHJhdGhlciB0aGFuIGEgQ29uc3VtZXIpLlxuICAgICAgLy8gT3IgaXQgbWF5IGJlIGJlY2F1c2UgaXQncyBvbGRlciBSZWFjdCB3aGVyZSB0aGV5J3JlIHRoZSBzYW1lIHRoaW5nLlxuICAgICAgLy8gV2Ugb25seSB3YW50IHRvIHdhcm4gaWYgd2UncmUgc3VyZSBpdCdzIGEgbmV3IFJlYWN0LlxuICAgICAgaWYgKGNvbnRleHQgIT09IGNvbnRleHQuQ29uc3VtZXIpIHtcbiAgICAgICAgaWYgKCFoYXNXYXJuZWRBYm91dFVzaW5nQ29udGV4dEFzQ29uc3VtZXIpIHtcbiAgICAgICAgICBoYXNXYXJuZWRBYm91dFVzaW5nQ29udGV4dEFzQ29uc3VtZXIgPSB0cnVlO1xuXG4gICAgICAgICAgZXJyb3IoJ1JlbmRlcmluZyA8Q29udGV4dD4gZGlyZWN0bHkgaXMgbm90IHN1cHBvcnRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluICcgKyAnYSBmdXR1cmUgbWFqb3IgcmVsZWFzZS4gRGlkIHlvdSBtZWFuIHRvIHJlbmRlciA8Q29udGV4dC5Db25zdW1lcj4gaW5zdGVhZD8nKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb250ZXh0ID0gY29udGV4dC5fY29udGV4dDtcbiAgICB9XG4gIH1cblxuICB2YXIgbmV3UHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHM7XG4gIHZhciByZW5kZXIgPSBuZXdQcm9wcy5jaGlsZHJlbjtcblxuICB7XG4gICAgaWYgKHR5cGVvZiByZW5kZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGVycm9yKCdBIGNvbnRleHQgY29uc3VtZXIgd2FzIHJlbmRlcmVkIHdpdGggbXVsdGlwbGUgY2hpbGRyZW4sIG9yIGEgY2hpbGQgJyArIFwidGhhdCBpc24ndCBhIGZ1bmN0aW9uLiBBIGNvbnRleHQgY29uc3VtZXIgZXhwZWN0cyBhIHNpbmdsZSBjaGlsZCBcIiArICd0aGF0IGlzIGEgZnVuY3Rpb24uIElmIHlvdSBkaWQgcGFzcyBhIGZ1bmN0aW9uLCBtYWtlIHN1cmUgdGhlcmUgJyArICdpcyBubyB0cmFpbGluZyBvciBsZWFkaW5nIHdoaXRlc3BhY2UgYXJvdW5kIGl0LicpO1xuICAgIH1cbiAgfVxuXG4gIHByZXBhcmVUb1JlYWRDb250ZXh0KHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG4gIHZhciBuZXdWYWx1ZSA9IHJlYWRDb250ZXh0KGNvbnRleHQsIG5ld1Byb3BzLnVuc3RhYmxlX29ic2VydmVkQml0cyk7XG4gIHZhciBuZXdDaGlsZHJlbjtcblxuICB7XG4gICAgUmVhY3RDdXJyZW50T3duZXIkMS5jdXJyZW50ID0gd29ya0luUHJvZ3Jlc3M7XG4gICAgc2V0SXNSZW5kZXJpbmcodHJ1ZSk7XG4gICAgbmV3Q2hpbGRyZW4gPSByZW5kZXIobmV3VmFsdWUpO1xuICAgIHNldElzUmVuZGVyaW5nKGZhbHNlKTtcbiAgfSAvLyBSZWFjdCBEZXZUb29scyByZWFkcyB0aGlzIGZsYWcuXG5cblxuICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBQZXJmb3JtZWRXb3JrO1xuICByZWNvbmNpbGVDaGlsZHJlbihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgbmV3Q2hpbGRyZW4sIHJlbmRlckxhbmVzKTtcbiAgcmV0dXJuIHdvcmtJblByb2dyZXNzLmNoaWxkO1xufVxuXG5mdW5jdGlvbiBtYXJrV29ya0luUHJvZ3Jlc3NSZWNlaXZlZFVwZGF0ZSgpIHtcbiAgZGlkUmVjZWl2ZVVwZGF0ZSA9IHRydWU7XG59XG5cbmZ1bmN0aW9uIGJhaWxvdXRPbkFscmVhZHlGaW5pc2hlZFdvcmsoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKSB7XG4gIGlmIChjdXJyZW50ICE9PSBudWxsKSB7XG4gICAgLy8gUmV1c2UgcHJldmlvdXMgZGVwZW5kZW5jaWVzXG4gICAgd29ya0luUHJvZ3Jlc3MuZGVwZW5kZW5jaWVzID0gY3VycmVudC5kZXBlbmRlbmNpZXM7XG4gIH1cblxuICB7XG4gICAgLy8gRG9uJ3QgdXBkYXRlIFwiYmFzZVwiIHJlbmRlciB0aW1lcyBmb3IgYmFpbG91dHMuXG4gICAgc3RvcFByb2ZpbGVyVGltZXJJZlJ1bm5pbmcoKTtcbiAgfVxuXG4gIG1hcmtTa2lwcGVkVXBkYXRlTGFuZXMod29ya0luUHJvZ3Jlc3MubGFuZXMpOyAvLyBDaGVjayBpZiB0aGUgY2hpbGRyZW4gaGF2ZSBhbnkgcGVuZGluZyB3b3JrLlxuXG4gIGlmICghaW5jbHVkZXNTb21lTGFuZShyZW5kZXJMYW5lcywgd29ya0luUHJvZ3Jlc3MuY2hpbGRMYW5lcykpIHtcbiAgICAvLyBUaGUgY2hpbGRyZW4gZG9uJ3QgaGF2ZSBhbnkgd29yayBlaXRoZXIuIFdlIGNhbiBza2lwIHRoZW0uXG4gICAgLy8gVE9ETzogT25jZSB3ZSBhZGQgYmFjayByZXN1bWluZywgd2Ugc2hvdWxkIGNoZWNrIGlmIHRoZSBjaGlsZHJlbiBhcmVcbiAgICAvLyBhIHdvcmstaW4tcHJvZ3Jlc3Mgc2V0LiBJZiBzbywgd2UgbmVlZCB0byB0cmFuc2ZlciB0aGVpciBlZmZlY3RzLlxuICAgIHJldHVybiBudWxsO1xuICB9IGVsc2Uge1xuICAgIC8vIFRoaXMgZmliZXIgZG9lc24ndCBoYXZlIHdvcmssIGJ1dCBpdHMgc3VidHJlZSBkb2VzLiBDbG9uZSB0aGUgY2hpbGRcbiAgICAvLyBmaWJlcnMgYW5kIGNvbnRpbnVlLlxuICAgIGNsb25lQ2hpbGRGaWJlcnMoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MpO1xuICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcbiAgfVxufVxuXG5mdW5jdGlvbiByZW1vdW50RmliZXIoY3VycmVudCwgb2xkV29ya0luUHJvZ3Jlc3MsIG5ld1dvcmtJblByb2dyZXNzKSB7XG4gIHtcbiAgICB2YXIgcmV0dXJuRmliZXIgPSBvbGRXb3JrSW5Qcm9ncmVzcy5yZXR1cm47XG5cbiAgICBpZiAocmV0dXJuRmliZXIgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHN3YXAgdGhlIHJvb3QgZmliZXIuJyk7XG4gICAgfSAvLyBEaXNjb25uZWN0IGZyb20gdGhlIG9sZCBjdXJyZW50LlxuICAgIC8vIEl0IHdpbGwgZ2V0IGRlbGV0ZWQuXG5cblxuICAgIGN1cnJlbnQuYWx0ZXJuYXRlID0gbnVsbDtcbiAgICBvbGRXb3JrSW5Qcm9ncmVzcy5hbHRlcm5hdGUgPSBudWxsOyAvLyBDb25uZWN0IHRvIHRoZSBuZXcgdHJlZS5cblxuICAgIG5ld1dvcmtJblByb2dyZXNzLmluZGV4ID0gb2xkV29ya0luUHJvZ3Jlc3MuaW5kZXg7XG4gICAgbmV3V29ya0luUHJvZ3Jlc3Muc2libGluZyA9IG9sZFdvcmtJblByb2dyZXNzLnNpYmxpbmc7XG4gICAgbmV3V29ya0luUHJvZ3Jlc3MucmV0dXJuID0gb2xkV29ya0luUHJvZ3Jlc3MucmV0dXJuO1xuICAgIG5ld1dvcmtJblByb2dyZXNzLnJlZiA9IG9sZFdvcmtJblByb2dyZXNzLnJlZjsgLy8gUmVwbGFjZSB0aGUgY2hpbGQvc2libGluZyBwb2ludGVycyBhYm92ZSBpdC5cblxuICAgIGlmIChvbGRXb3JrSW5Qcm9ncmVzcyA9PT0gcmV0dXJuRmliZXIuY2hpbGQpIHtcbiAgICAgIHJldHVybkZpYmVyLmNoaWxkID0gbmV3V29ya0luUHJvZ3Jlc3M7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBwcmV2U2libGluZyA9IHJldHVybkZpYmVyLmNoaWxkO1xuXG4gICAgICBpZiAocHJldlNpYmxpbmcgPT09IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBwYXJlbnQgdG8gaGF2ZSBhIGNoaWxkLicpO1xuICAgICAgfVxuXG4gICAgICB3aGlsZSAocHJldlNpYmxpbmcuc2libGluZyAhPT0gb2xkV29ya0luUHJvZ3Jlc3MpIHtcbiAgICAgICAgcHJldlNpYmxpbmcgPSBwcmV2U2libGluZy5zaWJsaW5nO1xuXG4gICAgICAgIGlmIChwcmV2U2libGluZyA9PT0gbnVsbCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgdG8gZmluZCB0aGUgcHJldmlvdXMgc2libGluZy4nKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBwcmV2U2libGluZy5zaWJsaW5nID0gbmV3V29ya0luUHJvZ3Jlc3M7XG4gICAgfSAvLyBEZWxldGUgdGhlIG9sZCBmaWJlciBhbmQgcGxhY2UgdGhlIG5ldyBvbmUuXG4gICAgLy8gU2luY2UgdGhlIG9sZCBmaWJlciBpcyBkaXNjb25uZWN0ZWQsIHdlIGhhdmUgdG8gc2NoZWR1bGUgaXQgbWFudWFsbHkuXG5cblxuICAgIHZhciBsYXN0ID0gcmV0dXJuRmliZXIubGFzdEVmZmVjdDtcblxuICAgIGlmIChsYXN0ICE9PSBudWxsKSB7XG4gICAgICBsYXN0Lm5leHRFZmZlY3QgPSBjdXJyZW50O1xuICAgICAgcmV0dXJuRmliZXIubGFzdEVmZmVjdCA9IGN1cnJlbnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybkZpYmVyLmZpcnN0RWZmZWN0ID0gcmV0dXJuRmliZXIubGFzdEVmZmVjdCA9IGN1cnJlbnQ7XG4gICAgfVxuXG4gICAgY3VycmVudC5uZXh0RWZmZWN0ID0gbnVsbDtcbiAgICBjdXJyZW50LmZsYWdzID0gRGVsZXRpb247XG4gICAgbmV3V29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gUGxhY2VtZW50OyAvLyBSZXN0YXJ0IHdvcmsgZnJvbSB0aGUgbmV3IGZpYmVyLlxuXG4gICAgcmV0dXJuIG5ld1dvcmtJblByb2dyZXNzO1xuICB9XG59XG5cbmZ1bmN0aW9uIGJlZ2luV29yayhjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpIHtcbiAgdmFyIHVwZGF0ZUxhbmVzID0gd29ya0luUHJvZ3Jlc3MubGFuZXM7XG5cbiAge1xuICAgIGlmICh3b3JrSW5Qcm9ncmVzcy5fZGVidWdOZWVkc1JlbW91bnQgJiYgY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgLy8gVGhpcyB3aWxsIHJlc3RhcnQgdGhlIGJlZ2luIHBoYXNlIHdpdGggYSBuZXcgZmliZXIuXG4gICAgICByZXR1cm4gcmVtb3VudEZpYmVyKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBjcmVhdGVGaWJlckZyb21UeXBlQW5kUHJvcHMod29ya0luUHJvZ3Jlc3MudHlwZSwgd29ya0luUHJvZ3Jlc3Mua2V5LCB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHMsIHdvcmtJblByb2dyZXNzLl9kZWJ1Z093bmVyIHx8IG51bGwsIHdvcmtJblByb2dyZXNzLm1vZGUsIHdvcmtJblByb2dyZXNzLmxhbmVzKSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKGN1cnJlbnQgIT09IG51bGwpIHtcbiAgICB2YXIgb2xkUHJvcHMgPSBjdXJyZW50Lm1lbW9pemVkUHJvcHM7XG4gICAgdmFyIG5ld1Byb3BzID0gd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzO1xuXG4gICAgaWYgKG9sZFByb3BzICE9PSBuZXdQcm9wcyB8fCBoYXNDb250ZXh0Q2hhbmdlZCgpIHx8ICggLy8gRm9yY2UgYSByZS1yZW5kZXIgaWYgdGhlIGltcGxlbWVudGF0aW9uIGNoYW5nZWQgZHVlIHRvIGhvdCByZWxvYWQ6XG4gICAgIHdvcmtJblByb2dyZXNzLnR5cGUgIT09IGN1cnJlbnQudHlwZSApKSB7XG4gICAgICAvLyBJZiBwcm9wcyBvciBjb250ZXh0IGNoYW5nZWQsIG1hcmsgdGhlIGZpYmVyIGFzIGhhdmluZyBwZXJmb3JtZWQgd29yay5cbiAgICAgIC8vIFRoaXMgbWF5IGJlIHVuc2V0IGlmIHRoZSBwcm9wcyBhcmUgZGV0ZXJtaW5lZCB0byBiZSBlcXVhbCBsYXRlciAobWVtbykuXG4gICAgICBkaWRSZWNlaXZlVXBkYXRlID0gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKCFpbmNsdWRlc1NvbWVMYW5lKHJlbmRlckxhbmVzLCB1cGRhdGVMYW5lcykpIHtcbiAgICAgIGRpZFJlY2VpdmVVcGRhdGUgPSBmYWxzZTsgLy8gVGhpcyBmaWJlciBkb2VzIG5vdCBoYXZlIGFueSBwZW5kaW5nIHdvcmsuIEJhaWxvdXQgd2l0aG91dCBlbnRlcmluZ1xuICAgICAgLy8gdGhlIGJlZ2luIHBoYXNlLiBUaGVyZSdzIHN0aWxsIHNvbWUgYm9va2tlZXBpbmcgd2UgdGhhdCBuZWVkcyB0byBiZSBkb25lXG4gICAgICAvLyBpbiB0aGlzIG9wdGltaXplZCBwYXRoLCBtb3N0bHkgcHVzaGluZyBzdHVmZiBvbnRvIHRoZSBzdGFjay5cblxuICAgICAgc3dpdGNoICh3b3JrSW5Qcm9ncmVzcy50YWcpIHtcbiAgICAgICAgY2FzZSBIb3N0Um9vdDpcbiAgICAgICAgICBwdXNoSG9zdFJvb3RDb250ZXh0KHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgICByZXNldEh5ZHJhdGlvblN0YXRlKCk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBIb3N0Q29tcG9uZW50OlxuICAgICAgICAgIHB1c2hIb3N0Q29udGV4dCh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBDbGFzc0NvbXBvbmVudDpcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YXIgQ29tcG9uZW50ID0gd29ya0luUHJvZ3Jlc3MudHlwZTtcblxuICAgICAgICAgICAgaWYgKGlzQ29udGV4dFByb3ZpZGVyKENvbXBvbmVudCkpIHtcbiAgICAgICAgICAgICAgcHVzaENvbnRleHRQcm92aWRlcih3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICBjYXNlIEhvc3RQb3J0YWw6XG4gICAgICAgICAgcHVzaEhvc3RDb250YWluZXIod29ya0luUHJvZ3Jlc3MsIHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIENvbnRleHRQcm92aWRlcjpcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YXIgbmV3VmFsdWUgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFByb3BzLnZhbHVlO1xuICAgICAgICAgICAgcHVzaFByb3ZpZGVyKHdvcmtJblByb2dyZXNzLCBuZXdWYWx1ZSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgY2FzZSBQcm9maWxlcjpcbiAgICAgICAgICB7XG4gICAgICAgICAgICAvLyBQcm9maWxlciBzaG91bGQgb25seSBjYWxsIG9uUmVuZGVyIHdoZW4gb25lIG9mIGl0cyBkZXNjZW5kYW50cyBhY3R1YWxseSByZW5kZXJlZC5cbiAgICAgICAgICAgIHZhciBoYXNDaGlsZFdvcmsgPSBpbmNsdWRlc1NvbWVMYW5lKHJlbmRlckxhbmVzLCB3b3JrSW5Qcm9ncmVzcy5jaGlsZExhbmVzKTtcblxuICAgICAgICAgICAgaWYgKGhhc0NoaWxkV29yaykge1xuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBVcGRhdGU7XG4gICAgICAgICAgICB9IC8vIFJlc2V0IGVmZmVjdCBkdXJhdGlvbnMgZm9yIHRoZSBuZXh0IGV2ZW50dWFsIGVmZmVjdCBwaGFzZS5cbiAgICAgICAgICAgIC8vIFRoZXNlIGFyZSByZXNldCBkdXJpbmcgcmVuZGVyIHRvIGFsbG93IHRoZSBEZXZUb29scyBjb21taXQgaG9vayBhIGNoYW5jZSB0byByZWFkIHRoZW0sXG5cblxuICAgICAgICAgICAgdmFyIHN0YXRlTm9kZSA9IHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZTtcbiAgICAgICAgICAgIHN0YXRlTm9kZS5lZmZlY3REdXJhdGlvbiA9IDA7XG4gICAgICAgICAgICBzdGF0ZU5vZGUucGFzc2l2ZUVmZmVjdER1cmF0aW9uID0gMDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIFN1c3BlbnNlQ29tcG9uZW50OlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhciBzdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG5cbiAgICAgICAgICAgIGlmIChzdGF0ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAvLyB3aGV0aGVyIHRvIHJldHJ5IHRoZSBwcmltYXJ5IGNoaWxkcmVuLCBvciB0byBza2lwIG92ZXIgaXQgYW5kXG4gICAgICAgICAgICAgIC8vIGdvIHN0cmFpZ2h0IHRvIHRoZSBmYWxsYmFjay4gQ2hlY2sgdGhlIHByaW9yaXR5IG9mIHRoZSBwcmltYXJ5XG4gICAgICAgICAgICAgIC8vIGNoaWxkIGZyYWdtZW50LlxuXG5cbiAgICAgICAgICAgICAgdmFyIHByaW1hcnlDaGlsZEZyYWdtZW50ID0gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG4gICAgICAgICAgICAgIHZhciBwcmltYXJ5Q2hpbGRMYW5lcyA9IHByaW1hcnlDaGlsZEZyYWdtZW50LmNoaWxkTGFuZXM7XG5cbiAgICAgICAgICAgICAgaWYgKGluY2x1ZGVzU29tZUxhbmUocmVuZGVyTGFuZXMsIHByaW1hcnlDaGlsZExhbmVzKSkge1xuICAgICAgICAgICAgICAgIC8vIFRoZSBwcmltYXJ5IGNoaWxkcmVuIGhhdmUgcGVuZGluZyB3b3JrLiBVc2UgdGhlIG5vcm1hbCBwYXRoXG4gICAgICAgICAgICAgICAgLy8gdG8gYXR0ZW1wdCB0byByZW5kZXIgdGhlIHByaW1hcnkgY2hpbGRyZW4gYWdhaW4uXG4gICAgICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZVN1c3BlbnNlQ29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gVGhlIHByaW1hcnkgY2hpbGQgZnJhZ21lbnQgZG9lcyBub3QgaGF2ZSBwZW5kaW5nIHdvcmsgbWFya2VkXG4gICAgICAgICAgICAgICAgLy8gb24gaXRcbiAgICAgICAgICAgICAgICBwdXNoU3VzcGVuc2VDb250ZXh0KHdvcmtJblByb2dyZXNzLCBzZXREZWZhdWx0U2hhbGxvd1N1c3BlbnNlQ29udGV4dChzdXNwZW5zZVN0YWNrQ3Vyc29yLmN1cnJlbnQpKTsgLy8gVGhlIHByaW1hcnkgY2hpbGRyZW4gZG8gbm90IGhhdmUgcGVuZGluZyB3b3JrIHdpdGggc3VmZmljaWVudFxuICAgICAgICAgICAgICAgIC8vIHByaW9yaXR5LiBCYWlsb3V0LlxuXG4gICAgICAgICAgICAgICAgdmFyIGNoaWxkID0gYmFpbG91dE9uQWxyZWFkeUZpbmlzaGVkV29yayhjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGNoaWxkICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAvLyBUaGUgZmFsbGJhY2sgY2hpbGRyZW4gaGF2ZSBwZW5kaW5nIHdvcmsuIFNraXAgb3ZlciB0aGVcbiAgICAgICAgICAgICAgICAgIC8vIHByaW1hcnkgY2hpbGRyZW4gYW5kIHdvcmsgb24gdGhlIGZhbGxiYWNrLlxuICAgICAgICAgICAgICAgICAgcmV0dXJuIGNoaWxkLnNpYmxpbmc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcHVzaFN1c3BlbnNlQ29udGV4dCh3b3JrSW5Qcm9ncmVzcywgc2V0RGVmYXVsdFNoYWxsb3dTdXNwZW5zZUNvbnRleHQoc3VzcGVuc2VTdGFja0N1cnNvci5jdXJyZW50KSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICBjYXNlIFN1c3BlbnNlTGlzdENvbXBvbmVudDpcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YXIgZGlkU3VzcGVuZEJlZm9yZSA9IChjdXJyZW50LmZsYWdzICYgRGlkQ2FwdHVyZSkgIT09IE5vRmxhZ3M7XG5cbiAgICAgICAgICAgIHZhciBfaGFzQ2hpbGRXb3JrID0gaW5jbHVkZXNTb21lTGFuZShyZW5kZXJMYW5lcywgd29ya0luUHJvZ3Jlc3MuY2hpbGRMYW5lcyk7XG5cbiAgICAgICAgICAgIGlmIChkaWRTdXNwZW5kQmVmb3JlKSB7XG4gICAgICAgICAgICAgIGlmIChfaGFzQ2hpbGRXb3JrKSB7XG4gICAgICAgICAgICAgICAgLy8gSWYgc29tZXRoaW5nIHdhcyBpbiBmYWxsYmFjayBzdGF0ZSBsYXN0IHRpbWUsIGFuZCB3ZSBoYXZlIGFsbCB0aGVcbiAgICAgICAgICAgICAgICAvLyBzYW1lIGNoaWxkcmVuIHRoZW4gd2UncmUgc3RpbGwgaW4gcHJvZ3Jlc3NpdmUgbG9hZGluZyBzdGF0ZS5cbiAgICAgICAgICAgICAgICAvLyBTb21ldGhpbmcgbWlnaHQgZ2V0IHVuYmxvY2tlZCBieSBzdGF0ZSB1cGRhdGVzIG9yIHJldHJpZXMgaW4gdGhlXG4gICAgICAgICAgICAgICAgLy8gdHJlZSB3aGljaCB3aWxsIGFmZmVjdCB0aGUgdGFpbC4gU28gd2UgbmVlZCB0byB1c2UgdGhlIG5vcm1hbFxuICAgICAgICAgICAgICAgIC8vIHBhdGggdG8gY29tcHV0ZSB0aGUgY29ycmVjdCB0YWlsLlxuICAgICAgICAgICAgICAgIHJldHVybiB1cGRhdGVTdXNwZW5zZUxpc3RDb21wb25lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKTtcbiAgICAgICAgICAgICAgfSAvLyBJZiBub25lIG9mIHRoZSBjaGlsZHJlbiBoYWQgYW55IHdvcmssIHRoYXQgbWVhbnMgdGhhdCBub25lIG9mXG4gICAgICAgICAgICAgIC8vIHRoZW0gZ290IHJldHJpZWQgc28gdGhleSdsbCBzdGlsbCBiZSBibG9ja2VkIGluIHRoZSBzYW1lIHdheVxuICAgICAgICAgICAgICAvLyBhcyBiZWZvcmUuIFdlIGNhbiBmYXN0IGJhaWwgb3V0LlxuXG5cbiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gRGlkQ2FwdHVyZTtcbiAgICAgICAgICAgIH0gLy8gSWYgbm90aGluZyBzdXNwZW5kZWQgYmVmb3JlIGFuZCB3ZSdyZSByZW5kZXJpbmcgdGhlIHNhbWUgY2hpbGRyZW4sXG4gICAgICAgICAgICAvLyB0aGVuIHRoZSB0YWlsIGRvZXNuJ3QgbWF0dGVyLiBBbnl0aGluZyBuZXcgdGhhdCBzdXNwZW5kcyB3aWxsIHdvcmtcbiAgICAgICAgICAgIC8vIGluIHRoZSBcInRvZ2V0aGVyXCIgbW9kZSwgc28gd2UgY2FuIGNvbnRpbnVlIGZyb20gdGhlIHN0YXRlIHdlIGhhZC5cblxuXG4gICAgICAgICAgICB2YXIgcmVuZGVyU3RhdGUgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlO1xuXG4gICAgICAgICAgICBpZiAocmVuZGVyU3RhdGUgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgLy8gUmVzZXQgdG8gdGhlIFwidG9nZXRoZXJcIiBtb2RlIGluIGNhc2Ugd2UndmUgc3RhcnRlZCBhIGRpZmZlcmVudFxuICAgICAgICAgICAgICAvLyB1cGRhdGUgaW4gdGhlIHBhc3QgYnV0IGRpZG4ndCBjb21wbGV0ZSBpdC5cbiAgICAgICAgICAgICAgcmVuZGVyU3RhdGUucmVuZGVyaW5nID0gbnVsbDtcbiAgICAgICAgICAgICAgcmVuZGVyU3RhdGUudGFpbCA9IG51bGw7XG4gICAgICAgICAgICAgIHJlbmRlclN0YXRlLmxhc3RFZmZlY3QgPSBudWxsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBwdXNoU3VzcGVuc2VDb250ZXh0KHdvcmtJblByb2dyZXNzLCBzdXNwZW5zZVN0YWNrQ3Vyc29yLmN1cnJlbnQpO1xuXG4gICAgICAgICAgICBpZiAoX2hhc0NoaWxkV29yaykge1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIElmIG5vbmUgb2YgdGhlIGNoaWxkcmVuIGhhZCBhbnkgd29yaywgdGhhdCBtZWFucyB0aGF0IG5vbmUgb2ZcbiAgICAgICAgICAgICAgLy8gdGhlbSBnb3QgcmV0cmllZCBzbyB0aGV5J2xsIHN0aWxsIGJlIGJsb2NrZWQgaW4gdGhlIHNhbWUgd2F5XG4gICAgICAgICAgICAgIC8vIGFzIGJlZm9yZS4gV2UgY2FuIGZhc3QgYmFpbCBvdXQuXG4gICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICBjYXNlIE9mZnNjcmVlbkNvbXBvbmVudDpcbiAgICAgICAgY2FzZSBMZWdhY3lIaWRkZW5Db21wb25lbnQ6XG4gICAgICAgICAge1xuICAgICAgICAgICAgLy8gTmVlZCB0byBjaGVjayBpZiB0aGUgdHJlZSBzdGlsbCBuZWVkcyB0byBiZSBkZWZlcnJlZC4gVGhpcyBpc1xuICAgICAgICAgICAgLy8gYWxtb3N0IGlkZW50aWNhbCB0byB0aGUgbG9naWMgdXNlZCBpbiB0aGUgbm9ybWFsIHVwZGF0ZSBwYXRoLFxuICAgICAgICAgICAgLy8gc28gd2UnbGwganVzdCBlbnRlciB0aGF0LiBUaGUgb25seSBkaWZmZXJlbmNlIGlzIHdlJ2xsIGJhaWwgb3V0XG4gICAgICAgICAgICAvLyBhdCB0aGUgbmV4dCBsZXZlbCBpbnN0ZWFkIG9mIHRoaXMgb25lLCBiZWNhdXNlIHRoZSBjaGlsZCBwcm9wc1xuICAgICAgICAgICAgLy8gaGF2ZSBub3QgY2hhbmdlZC4gV2hpY2ggaXMgZmluZS5cbiAgICAgICAgICAgIC8vIFRPRE86IFByb2JhYmx5IHNob3VsZCByZWZhY3RvciBgYmVnaW5Xb3JrYCB0byBzcGxpdCB0aGUgYmFpbG91dFxuICAgICAgICAgICAgLy8gcGF0aCBmcm9tIHRoZSBub3JtYWwgcGF0aC4gSSdtIHRlbXB0ZWQgdG8gZG8gYSBsYWJlbGVkIGJyZWFrIGhlcmVcbiAgICAgICAgICAgIC8vIGJ1dCBJIHdvbid0IDopXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5sYW5lcyA9IE5vTGFuZXM7XG4gICAgICAgICAgICByZXR1cm4gdXBkYXRlT2Zmc2NyZWVuQ29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG4gICAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gYmFpbG91dE9uQWxyZWFkeUZpbmlzaGVkV29yayhjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoKGN1cnJlbnQuZmxhZ3MgJiBGb3JjZVVwZGF0ZUZvckxlZ2FjeVN1c3BlbnNlKSAhPT0gTm9GbGFncykge1xuICAgICAgICAvLyBUaGlzIGlzIGEgc3BlY2lhbCBjYXNlIHRoYXQgb25seSBleGlzdHMgZm9yIGxlZ2FjeSBtb2RlLlxuICAgICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L3B1bGwvMTkyMTYuXG4gICAgICAgIGRpZFJlY2VpdmVVcGRhdGUgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gQW4gdXBkYXRlIHdhcyBzY2hlZHVsZWQgb24gdGhpcyBmaWJlciwgYnV0IHRoZXJlIGFyZSBubyBuZXcgcHJvcHNcbiAgICAgICAgLy8gbm9yIGxlZ2FjeSBjb250ZXh0LiBTZXQgdGhpcyB0byBmYWxzZS4gSWYgYW4gdXBkYXRlIHF1ZXVlIG9yIGNvbnRleHRcbiAgICAgICAgLy8gY29uc3VtZXIgcHJvZHVjZXMgYSBjaGFuZ2VkIHZhbHVlLCBpdCB3aWxsIHNldCB0aGlzIHRvIHRydWUuIE90aGVyd2lzZSxcbiAgICAgICAgLy8gdGhlIGNvbXBvbmVudCB3aWxsIGFzc3VtZSB0aGUgY2hpbGRyZW4gaGF2ZSBub3QgY2hhbmdlZCBhbmQgYmFpbCBvdXQuXG4gICAgICAgIGRpZFJlY2VpdmVVcGRhdGUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgZGlkUmVjZWl2ZVVwZGF0ZSA9IGZhbHNlO1xuICB9IC8vIEJlZm9yZSBlbnRlcmluZyB0aGUgYmVnaW4gcGhhc2UsIGNsZWFyIHBlbmRpbmcgdXBkYXRlIHByaW9yaXR5LlxuICAvLyBUT0RPOiBUaGlzIGFzc3VtZXMgdGhhdCB3ZSdyZSBhYm91dCB0byBldmFsdWF0ZSB0aGUgY29tcG9uZW50IGFuZCBwcm9jZXNzXG4gIC8vIHRoZSB1cGRhdGUgcXVldWUuIEhvd2V2ZXIsIHRoZXJlJ3MgYW4gZXhjZXB0aW9uOiBTaW1wbGVNZW1vQ29tcG9uZW50XG4gIC8vIHNvbWV0aW1lcyBiYWlscyBvdXQgbGF0ZXIgaW4gdGhlIGJlZ2luIHBoYXNlLiBUaGlzIGluZGljYXRlcyB0aGF0IHdlIHNob3VsZFxuICAvLyBtb3ZlIHRoaXMgYXNzaWdubWVudCBvdXQgb2YgdGhlIGNvbW1vbiBwYXRoIGFuZCBpbnRvIGVhY2ggYnJhbmNoLlxuXG5cbiAgd29ya0luUHJvZ3Jlc3MubGFuZXMgPSBOb0xhbmVzO1xuXG4gIHN3aXRjaCAod29ya0luUHJvZ3Jlc3MudGFnKSB7XG4gICAgY2FzZSBJbmRldGVybWluYXRlQ29tcG9uZW50OlxuICAgICAge1xuICAgICAgICByZXR1cm4gbW91bnRJbmRldGVybWluYXRlQ29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCB3b3JrSW5Qcm9ncmVzcy50eXBlLCByZW5kZXJMYW5lcyk7XG4gICAgICB9XG5cbiAgICBjYXNlIExhenlDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHZhciBlbGVtZW50VHlwZSA9IHdvcmtJblByb2dyZXNzLmVsZW1lbnRUeXBlO1xuICAgICAgICByZXR1cm4gbW91bnRMYXp5Q29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBlbGVtZW50VHlwZSwgdXBkYXRlTGFuZXMsIHJlbmRlckxhbmVzKTtcbiAgICAgIH1cblxuICAgIGNhc2UgRnVuY3Rpb25Db21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHZhciBfQ29tcG9uZW50ID0gd29ya0luUHJvZ3Jlc3MudHlwZTtcbiAgICAgICAgdmFyIHVucmVzb2x2ZWRQcm9wcyA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcztcbiAgICAgICAgdmFyIHJlc29sdmVkUHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy5lbGVtZW50VHlwZSA9PT0gX0NvbXBvbmVudCA/IHVucmVzb2x2ZWRQcm9wcyA6IHJlc29sdmVEZWZhdWx0UHJvcHMoX0NvbXBvbmVudCwgdW5yZXNvbHZlZFByb3BzKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZUZ1bmN0aW9uQ29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBfQ29tcG9uZW50LCByZXNvbHZlZFByb3BzLCByZW5kZXJMYW5lcyk7XG4gICAgICB9XG5cbiAgICBjYXNlIENsYXNzQ29tcG9uZW50OlxuICAgICAge1xuICAgICAgICB2YXIgX0NvbXBvbmVudDIgPSB3b3JrSW5Qcm9ncmVzcy50eXBlO1xuICAgICAgICB2YXIgX3VucmVzb2x2ZWRQcm9wcyA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcztcblxuICAgICAgICB2YXIgX3Jlc29sdmVkUHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy5lbGVtZW50VHlwZSA9PT0gX0NvbXBvbmVudDIgPyBfdW5yZXNvbHZlZFByb3BzIDogcmVzb2x2ZURlZmF1bHRQcm9wcyhfQ29tcG9uZW50MiwgX3VucmVzb2x2ZWRQcm9wcyk7XG5cbiAgICAgICAgcmV0dXJuIHVwZGF0ZUNsYXNzQ29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBfQ29tcG9uZW50MiwgX3Jlc29sdmVkUHJvcHMsIHJlbmRlckxhbmVzKTtcbiAgICAgIH1cblxuICAgIGNhc2UgSG9zdFJvb3Q6XG4gICAgICByZXR1cm4gdXBkYXRlSG9zdFJvb3QoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKTtcblxuICAgIGNhc2UgSG9zdENvbXBvbmVudDpcbiAgICAgIHJldHVybiB1cGRhdGVIb3N0Q29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG5cbiAgICBjYXNlIEhvc3RUZXh0OlxuICAgICAgcmV0dXJuIHVwZGF0ZUhvc3RUZXh0KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzKTtcblxuICAgIGNhc2UgU3VzcGVuc2VDb21wb25lbnQ6XG4gICAgICByZXR1cm4gdXBkYXRlU3VzcGVuc2VDb21wb25lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKTtcblxuICAgIGNhc2UgSG9zdFBvcnRhbDpcbiAgICAgIHJldHVybiB1cGRhdGVQb3J0YWxDb21wb25lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKTtcblxuICAgIGNhc2UgRm9yd2FyZFJlZjpcbiAgICAgIHtcbiAgICAgICAgdmFyIHR5cGUgPSB3b3JrSW5Qcm9ncmVzcy50eXBlO1xuICAgICAgICB2YXIgX3VucmVzb2x2ZWRQcm9wczIgPSB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHM7XG5cbiAgICAgICAgdmFyIF9yZXNvbHZlZFByb3BzMiA9IHdvcmtJblByb2dyZXNzLmVsZW1lbnRUeXBlID09PSB0eXBlID8gX3VucmVzb2x2ZWRQcm9wczIgOiByZXNvbHZlRGVmYXVsdFByb3BzKHR5cGUsIF91bnJlc29sdmVkUHJvcHMyKTtcblxuICAgICAgICByZXR1cm4gdXBkYXRlRm9yd2FyZFJlZihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgdHlwZSwgX3Jlc29sdmVkUHJvcHMyLCByZW5kZXJMYW5lcyk7XG4gICAgICB9XG5cbiAgICBjYXNlIEZyYWdtZW50OlxuICAgICAgcmV0dXJuIHVwZGF0ZUZyYWdtZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG5cbiAgICBjYXNlIE1vZGU6XG4gICAgICByZXR1cm4gdXBkYXRlTW9kZShjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpO1xuXG4gICAgY2FzZSBQcm9maWxlcjpcbiAgICAgIHJldHVybiB1cGRhdGVQcm9maWxlcihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpO1xuXG4gICAgY2FzZSBDb250ZXh0UHJvdmlkZXI6XG4gICAgICByZXR1cm4gdXBkYXRlQ29udGV4dFByb3ZpZGVyKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG5cbiAgICBjYXNlIENvbnRleHRDb25zdW1lcjpcbiAgICAgIHJldHVybiB1cGRhdGVDb250ZXh0Q29uc3VtZXIoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKTtcblxuICAgIGNhc2UgTWVtb0NvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgdmFyIF90eXBlMiA9IHdvcmtJblByb2dyZXNzLnR5cGU7XG4gICAgICAgIHZhciBfdW5yZXNvbHZlZFByb3BzMyA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wczsgLy8gUmVzb2x2ZSBvdXRlciBwcm9wcyBmaXJzdCwgdGhlbiByZXNvbHZlIGlubmVyIHByb3BzLlxuXG4gICAgICAgIHZhciBfcmVzb2x2ZWRQcm9wczMgPSByZXNvbHZlRGVmYXVsdFByb3BzKF90eXBlMiwgX3VucmVzb2x2ZWRQcm9wczMpO1xuXG4gICAgICAgIHtcbiAgICAgICAgICBpZiAod29ya0luUHJvZ3Jlc3MudHlwZSAhPT0gd29ya0luUHJvZ3Jlc3MuZWxlbWVudFR5cGUpIHtcbiAgICAgICAgICAgIHZhciBvdXRlclByb3BUeXBlcyA9IF90eXBlMi5wcm9wVHlwZXM7XG5cbiAgICAgICAgICAgIGlmIChvdXRlclByb3BUeXBlcykge1xuICAgICAgICAgICAgICBjaGVja1Byb3BUeXBlcyhvdXRlclByb3BUeXBlcywgX3Jlc29sdmVkUHJvcHMzLCAvLyBSZXNvbHZlZCBmb3Igb3V0ZXIgb25seVxuICAgICAgICAgICAgICAncHJvcCcsIGdldENvbXBvbmVudE5hbWUoX3R5cGUyKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgX3Jlc29sdmVkUHJvcHMzID0gcmVzb2x2ZURlZmF1bHRQcm9wcyhfdHlwZTIudHlwZSwgX3Jlc29sdmVkUHJvcHMzKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZU1lbW9Db21wb25lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIF90eXBlMiwgX3Jlc29sdmVkUHJvcHMzLCB1cGRhdGVMYW5lcywgcmVuZGVyTGFuZXMpO1xuICAgICAgfVxuXG4gICAgY2FzZSBTaW1wbGVNZW1vQ29tcG9uZW50OlxuICAgICAge1xuICAgICAgICByZXR1cm4gdXBkYXRlU2ltcGxlTWVtb0NvbXBvbmVudChjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgd29ya0luUHJvZ3Jlc3MudHlwZSwgd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzLCB1cGRhdGVMYW5lcywgcmVuZGVyTGFuZXMpO1xuICAgICAgfVxuXG4gICAgY2FzZSBJbmNvbXBsZXRlQ2xhc3NDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHZhciBfQ29tcG9uZW50MyA9IHdvcmtJblByb2dyZXNzLnR5cGU7XG4gICAgICAgIHZhciBfdW5yZXNvbHZlZFByb3BzNCA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcztcblxuICAgICAgICB2YXIgX3Jlc29sdmVkUHJvcHM0ID0gd29ya0luUHJvZ3Jlc3MuZWxlbWVudFR5cGUgPT09IF9Db21wb25lbnQzID8gX3VucmVzb2x2ZWRQcm9wczQgOiByZXNvbHZlRGVmYXVsdFByb3BzKF9Db21wb25lbnQzLCBfdW5yZXNvbHZlZFByb3BzNCk7XG5cbiAgICAgICAgcmV0dXJuIG1vdW50SW5jb21wbGV0ZUNsYXNzQ29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBfQ29tcG9uZW50MywgX3Jlc29sdmVkUHJvcHM0LCByZW5kZXJMYW5lcyk7XG4gICAgICB9XG5cbiAgICBjYXNlIFN1c3BlbnNlTGlzdENvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZVN1c3BlbnNlTGlzdENvbXBvbmVudChjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpO1xuICAgICAgfVxuXG4gICAgY2FzZSBGdW5kYW1lbnRhbENvbXBvbmVudDpcbiAgICAgIHtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgIGNhc2UgU2NvcGVDb21wb25lbnQ6XG4gICAgICB7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICBjYXNlIEJsb2NrOlxuICAgICAge1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgY2FzZSBPZmZzY3JlZW5Db21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHJldHVybiB1cGRhdGVPZmZzY3JlZW5Db21wb25lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKTtcbiAgICAgIH1cblxuICAgIGNhc2UgTGVnYWN5SGlkZGVuQ29tcG9uZW50OlxuICAgICAge1xuICAgICAgICByZXR1cm4gdXBkYXRlTGVnYWN5SGlkZGVuQ29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG4gICAgICB9XG4gIH1cblxuICB7XG4gICAge1xuICAgICAgdGhyb3cgRXJyb3IoIFwiVW5rbm93biB1bml0IG9mIHdvcmsgdGFnIChcIiArIHdvcmtJblByb2dyZXNzLnRhZyArIFwiKS4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIiApO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBtYXJrVXBkYXRlKHdvcmtJblByb2dyZXNzKSB7XG4gIC8vIFRhZyB0aGUgZmliZXIgd2l0aCBhbiB1cGRhdGUgZWZmZWN0LiBUaGlzIHR1cm5zIGEgUGxhY2VtZW50IGludG9cbiAgLy8gYSBQbGFjZW1lbnRBbmRVcGRhdGUuXG4gIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IFVwZGF0ZTtcbn1cblxuZnVuY3Rpb24gbWFya1JlZiQxKHdvcmtJblByb2dyZXNzKSB7XG4gIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IFJlZjtcbn1cblxudmFyIGFwcGVuZEFsbENoaWxkcmVuO1xudmFyIHVwZGF0ZUhvc3RDb250YWluZXI7XG52YXIgdXBkYXRlSG9zdENvbXBvbmVudCQxO1xudmFyIHVwZGF0ZUhvc3RUZXh0JDE7XG5cbntcbiAgLy8gTXV0YXRpb24gbW9kZVxuICBhcHBlbmRBbGxDaGlsZHJlbiA9IGZ1bmN0aW9uIChwYXJlbnQsIHdvcmtJblByb2dyZXNzLCBuZWVkc1Zpc2liaWxpdHlUb2dnbGUsIGlzSGlkZGVuKSB7XG4gICAgLy8gV2Ugb25seSBoYXZlIHRoZSB0b3AgRmliZXIgdGhhdCB3YXMgY3JlYXRlZCBidXQgd2UgbmVlZCByZWN1cnNlIGRvd24gaXRzXG4gICAgLy8gY2hpbGRyZW4gdG8gZmluZCBhbGwgdGhlIHRlcm1pbmFsIG5vZGVzLlxuICAgIHZhciBub2RlID0gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG5cbiAgICB3aGlsZSAobm9kZSAhPT0gbnVsbCkge1xuICAgICAgaWYgKG5vZGUudGFnID09PSBIb3N0Q29tcG9uZW50IHx8IG5vZGUudGFnID09PSBIb3N0VGV4dCkge1xuICAgICAgICBhcHBlbmRJbml0aWFsQ2hpbGQocGFyZW50LCBub2RlLnN0YXRlTm9kZSk7XG4gICAgICB9IGVsc2UgaWYgKG5vZGUudGFnID09PSBIb3N0UG9ydGFsKSA7IGVsc2UgaWYgKG5vZGUuY2hpbGQgIT09IG51bGwpIHtcbiAgICAgICAgbm9kZS5jaGlsZC5yZXR1cm4gPSBub2RlO1xuICAgICAgICBub2RlID0gbm9kZS5jaGlsZDtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChub2RlID09PSB3b3JrSW5Qcm9ncmVzcykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHdoaWxlIChub2RlLnNpYmxpbmcgPT09IG51bGwpIHtcbiAgICAgICAgaWYgKG5vZGUucmV0dXJuID09PSBudWxsIHx8IG5vZGUucmV0dXJuID09PSB3b3JrSW5Qcm9ncmVzcykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIG5vZGUgPSBub2RlLnJldHVybjtcbiAgICAgIH1cblxuICAgICAgbm9kZS5zaWJsaW5nLnJldHVybiA9IG5vZGUucmV0dXJuO1xuICAgICAgbm9kZSA9IG5vZGUuc2libGluZztcbiAgICB9XG4gIH07XG5cbiAgdXBkYXRlSG9zdENvbnRhaW5lciA9IGZ1bmN0aW9uICh3b3JrSW5Qcm9ncmVzcykgey8vIE5vb3BcbiAgfTtcblxuICB1cGRhdGVIb3N0Q29tcG9uZW50JDEgPSBmdW5jdGlvbiAoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHR5cGUsIG5ld1Byb3BzLCByb290Q29udGFpbmVySW5zdGFuY2UpIHtcbiAgICAvLyBJZiB3ZSBoYXZlIGFuIGFsdGVybmF0ZSwgdGhhdCBtZWFucyB0aGlzIGlzIGFuIHVwZGF0ZSBhbmQgd2UgbmVlZCB0b1xuICAgIC8vIHNjaGVkdWxlIGEgc2lkZS1lZmZlY3QgdG8gZG8gdGhlIHVwZGF0ZXMuXG4gICAgdmFyIG9sZFByb3BzID0gY3VycmVudC5tZW1vaXplZFByb3BzO1xuXG4gICAgaWYgKG9sZFByb3BzID09PSBuZXdQcm9wcykge1xuICAgICAgLy8gSW4gbXV0YXRpb24gbW9kZSwgdGhpcyBpcyBzdWZmaWNpZW50IGZvciBhIGJhaWxvdXQgYmVjYXVzZVxuICAgICAgLy8gd2Ugd29uJ3QgdG91Y2ggdGhpcyBub2RlIGV2ZW4gaWYgY2hpbGRyZW4gY2hhbmdlZC5cbiAgICAgIHJldHVybjtcbiAgICB9IC8vIElmIHdlIGdldCB1cGRhdGVkIGJlY2F1c2Ugb25lIG9mIG91ciBjaGlsZHJlbiB1cGRhdGVkLCB3ZSBkb24ndFxuICAgIC8vIGhhdmUgbmV3UHJvcHMgc28gd2UnbGwgaGF2ZSB0byByZXVzZSB0aGVtLlxuICAgIC8vIFRPRE86IFNwbGl0IHRoZSB1cGRhdGUgQVBJIGFzIHNlcGFyYXRlIGZvciB0aGUgcHJvcHMgdnMuIGNoaWxkcmVuLlxuICAgIC8vIEV2ZW4gYmV0dGVyIHdvdWxkIGJlIGlmIGNoaWxkcmVuIHdlcmVuJ3Qgc3BlY2lhbCBjYXNlZCBhdCBhbGwgdGhvLlxuXG5cbiAgICB2YXIgaW5zdGFuY2UgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG4gICAgdmFyIGN1cnJlbnRIb3N0Q29udGV4dCA9IGdldEhvc3RDb250ZXh0KCk7IC8vIFRPRE86IEV4cGVyaWVuY2luZyBhbiBlcnJvciB3aGVyZSBvbGRQcm9wcyBpcyBudWxsLiBTdWdnZXN0cyBhIGhvc3RcbiAgICAvLyBjb21wb25lbnQgaXMgaGl0dGluZyB0aGUgcmVzdW1lIHBhdGguIEZpZ3VyZSBvdXQgd2h5LiBQb3NzaWJseVxuICAgIC8vIHJlbGF0ZWQgdG8gYGhpZGRlbmAuXG5cbiAgICB2YXIgdXBkYXRlUGF5bG9hZCA9IHByZXBhcmVVcGRhdGUoaW5zdGFuY2UsIHR5cGUsIG9sZFByb3BzLCBuZXdQcm9wcywgcm9vdENvbnRhaW5lckluc3RhbmNlLCBjdXJyZW50SG9zdENvbnRleHQpOyAvLyBUT0RPOiBUeXBlIHRoaXMgc3BlY2lmaWMgdG8gdGhpcyB0eXBlIG9mIGNvbXBvbmVudC5cblxuICAgIHdvcmtJblByb2dyZXNzLnVwZGF0ZVF1ZXVlID0gdXBkYXRlUGF5bG9hZDsgLy8gSWYgdGhlIHVwZGF0ZSBwYXlsb2FkIGluZGljYXRlcyB0aGF0IHRoZXJlIGlzIGEgY2hhbmdlIG9yIGlmIHRoZXJlXG4gICAgLy8gaXMgYSBuZXcgcmVmIHdlIG1hcmsgdGhpcyBhcyBhbiB1cGRhdGUuIEFsbCB0aGUgd29yayBpcyBkb25lIGluIGNvbW1pdFdvcmsuXG5cbiAgICBpZiAodXBkYXRlUGF5bG9hZCkge1xuICAgICAgbWFya1VwZGF0ZSh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgfVxuICB9O1xuXG4gIHVwZGF0ZUhvc3RUZXh0JDEgPSBmdW5jdGlvbiAoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIG9sZFRleHQsIG5ld1RleHQpIHtcbiAgICAvLyBJZiB0aGUgdGV4dCBkaWZmZXJzLCBtYXJrIGl0IGFzIGFuIHVwZGF0ZS4gQWxsIHRoZSB3b3JrIGluIGRvbmUgaW4gY29tbWl0V29yay5cbiAgICBpZiAob2xkVGV4dCAhPT0gbmV3VGV4dCkge1xuICAgICAgbWFya1VwZGF0ZSh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgfVxuICB9O1xufVxuXG5mdW5jdGlvbiBjdXRPZmZUYWlsSWZOZWVkZWQocmVuZGVyU3RhdGUsIGhhc1JlbmRlcmVkQVRhaWxGYWxsYmFjaykge1xuICBpZiAoZ2V0SXNIeWRyYXRpbmcoKSkge1xuICAgIC8vIElmIHdlJ3JlIGh5ZHJhdGluZywgd2Ugc2hvdWxkIGNvbnN1bWUgYXMgbWFueSBpdGVtcyBhcyB3ZSBjYW5cbiAgICAvLyBzbyB3ZSBkb24ndCBsZWF2ZSBhbnkgYmVoaW5kLlxuICAgIHJldHVybjtcbiAgfVxuXG4gIHN3aXRjaCAocmVuZGVyU3RhdGUudGFpbE1vZGUpIHtcbiAgICBjYXNlICdoaWRkZW4nOlxuICAgICAge1xuICAgICAgICAvLyBBbnkgaW5zZXJ0aW9ucyBhdCB0aGUgZW5kIG9mIHRoZSB0YWlsIGxpc3QgYWZ0ZXIgdGhpcyBwb2ludFxuICAgICAgICAvLyBzaG91bGQgYmUgaW52aXNpYmxlLiBJZiB0aGVyZSBhcmUgYWxyZWFkeSBtb3VudGVkIGJvdW5kYXJpZXNcbiAgICAgICAgLy8gYW55dGhpbmcgYmVmb3JlIHRoZW0gYXJlIG5vdCBjb25zaWRlcmVkIGZvciBjb2xsYXBzaW5nLlxuICAgICAgICAvLyBUaGVyZWZvcmUgd2UgbmVlZCB0byBnbyB0aHJvdWdoIHRoZSB3aG9sZSB0YWlsIHRvIGZpbmQgaWZcbiAgICAgICAgLy8gdGhlcmUgYXJlIGFueS5cbiAgICAgICAgdmFyIHRhaWxOb2RlID0gcmVuZGVyU3RhdGUudGFpbDtcbiAgICAgICAgdmFyIGxhc3RUYWlsTm9kZSA9IG51bGw7XG5cbiAgICAgICAgd2hpbGUgKHRhaWxOb2RlICE9PSBudWxsKSB7XG4gICAgICAgICAgaWYgKHRhaWxOb2RlLmFsdGVybmF0ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgbGFzdFRhaWxOb2RlID0gdGFpbE5vZGU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGFpbE5vZGUgPSB0YWlsTm9kZS5zaWJsaW5nO1xuICAgICAgICB9IC8vIE5leHQgd2UncmUgc2ltcGx5IGdvaW5nIHRvIGRlbGV0ZSBhbGwgaW5zZXJ0aW9ucyBhZnRlciB0aGVcbiAgICAgICAgLy8gbGFzdCByZW5kZXJlZCBpdGVtLlxuXG5cbiAgICAgICAgaWYgKGxhc3RUYWlsTm9kZSA9PT0gbnVsbCkge1xuICAgICAgICAgIC8vIEFsbCByZW1haW5pbmcgaXRlbXMgaW4gdGhlIHRhaWwgYXJlIGluc2VydGlvbnMuXG4gICAgICAgICAgcmVuZGVyU3RhdGUudGFpbCA9IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gRGV0YWNoIHRoZSBpbnNlcnRpb24gYWZ0ZXIgdGhlIGxhc3Qgbm9kZSB0aGF0IHdhcyBhbHJlYWR5XG4gICAgICAgICAgLy8gaW5zZXJ0ZWQuXG4gICAgICAgICAgbGFzdFRhaWxOb2RlLnNpYmxpbmcgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICBjYXNlICdjb2xsYXBzZWQnOlxuICAgICAge1xuICAgICAgICAvLyBBbnkgaW5zZXJ0aW9ucyBhdCB0aGUgZW5kIG9mIHRoZSB0YWlsIGxpc3QgYWZ0ZXIgdGhpcyBwb2ludFxuICAgICAgICAvLyBzaG91bGQgYmUgaW52aXNpYmxlLiBJZiB0aGVyZSBhcmUgYWxyZWFkeSBtb3VudGVkIGJvdW5kYXJpZXNcbiAgICAgICAgLy8gYW55dGhpbmcgYmVmb3JlIHRoZW0gYXJlIG5vdCBjb25zaWRlcmVkIGZvciBjb2xsYXBzaW5nLlxuICAgICAgICAvLyBUaGVyZWZvcmUgd2UgbmVlZCB0byBnbyB0aHJvdWdoIHRoZSB3aG9sZSB0YWlsIHRvIGZpbmQgaWZcbiAgICAgICAgLy8gdGhlcmUgYXJlIGFueS5cbiAgICAgICAgdmFyIF90YWlsTm9kZSA9IHJlbmRlclN0YXRlLnRhaWw7XG4gICAgICAgIHZhciBfbGFzdFRhaWxOb2RlID0gbnVsbDtcblxuICAgICAgICB3aGlsZSAoX3RhaWxOb2RlICE9PSBudWxsKSB7XG4gICAgICAgICAgaWYgKF90YWlsTm9kZS5hbHRlcm5hdGUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIF9sYXN0VGFpbE5vZGUgPSBfdGFpbE5vZGU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgX3RhaWxOb2RlID0gX3RhaWxOb2RlLnNpYmxpbmc7XG4gICAgICAgIH0gLy8gTmV4dCB3ZSdyZSBzaW1wbHkgZ29pbmcgdG8gZGVsZXRlIGFsbCBpbnNlcnRpb25zIGFmdGVyIHRoZVxuICAgICAgICAvLyBsYXN0IHJlbmRlcmVkIGl0ZW0uXG5cblxuICAgICAgICBpZiAoX2xhc3RUYWlsTm9kZSA9PT0gbnVsbCkge1xuICAgICAgICAgIC8vIEFsbCByZW1haW5pbmcgaXRlbXMgaW4gdGhlIHRhaWwgYXJlIGluc2VydGlvbnMuXG4gICAgICAgICAgaWYgKCFoYXNSZW5kZXJlZEFUYWlsRmFsbGJhY2sgJiYgcmVuZGVyU3RhdGUudGFpbCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gV2Ugc3VzcGVuZGVkIGR1cmluZyB0aGUgaGVhZC4gV2Ugd2FudCB0byBzaG93IGF0IGxlYXN0IG9uZVxuICAgICAgICAgICAgLy8gcm93IGF0IHRoZSB0YWlsLiBTbyB3ZSdsbCBrZWVwIG9uIGFuZCBjdXQgb2ZmIHRoZSByZXN0LlxuICAgICAgICAgICAgcmVuZGVyU3RhdGUudGFpbC5zaWJsaW5nID0gbnVsbDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVuZGVyU3RhdGUudGFpbCA9IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIERldGFjaCB0aGUgaW5zZXJ0aW9uIGFmdGVyIHRoZSBsYXN0IG5vZGUgdGhhdCB3YXMgYWxyZWFkeVxuICAgICAgICAgIC8vIGluc2VydGVkLlxuICAgICAgICAgIF9sYXN0VGFpbE5vZGUuc2libGluZyA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjb21wbGV0ZVdvcmsoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKSB7XG4gIHZhciBuZXdQcm9wcyA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcztcblxuICBzd2l0Y2ggKHdvcmtJblByb2dyZXNzLnRhZykge1xuICAgIGNhc2UgSW5kZXRlcm1pbmF0ZUNvbXBvbmVudDpcbiAgICBjYXNlIExhenlDb21wb25lbnQ6XG4gICAgY2FzZSBTaW1wbGVNZW1vQ29tcG9uZW50OlxuICAgIGNhc2UgRnVuY3Rpb25Db21wb25lbnQ6XG4gICAgY2FzZSBGb3J3YXJkUmVmOlxuICAgIGNhc2UgRnJhZ21lbnQ6XG4gICAgY2FzZSBNb2RlOlxuICAgIGNhc2UgUHJvZmlsZXI6XG4gICAgY2FzZSBDb250ZXh0Q29uc3VtZXI6XG4gICAgY2FzZSBNZW1vQ29tcG9uZW50OlxuICAgICAgcmV0dXJuIG51bGw7XG5cbiAgICBjYXNlIENsYXNzQ29tcG9uZW50OlxuICAgICAge1xuICAgICAgICB2YXIgQ29tcG9uZW50ID0gd29ya0luUHJvZ3Jlc3MudHlwZTtcblxuICAgICAgICBpZiAoaXNDb250ZXh0UHJvdmlkZXIoQ29tcG9uZW50KSkge1xuICAgICAgICAgIHBvcENvbnRleHQod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICBjYXNlIEhvc3RSb290OlxuICAgICAge1xuICAgICAgICBwb3BIb3N0Q29udGFpbmVyKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgcG9wVG9wTGV2ZWxDb250ZXh0T2JqZWN0KHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgcmVzZXRXb3JrSW5Qcm9ncmVzc1ZlcnNpb25zKCk7XG4gICAgICAgIHZhciBmaWJlclJvb3QgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG5cbiAgICAgICAgaWYgKGZpYmVyUm9vdC5wZW5kaW5nQ29udGV4dCkge1xuICAgICAgICAgIGZpYmVyUm9vdC5jb250ZXh0ID0gZmliZXJSb290LnBlbmRpbmdDb250ZXh0O1xuICAgICAgICAgIGZpYmVyUm9vdC5wZW5kaW5nQ29udGV4dCA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY3VycmVudCA9PT0gbnVsbCB8fCBjdXJyZW50LmNoaWxkID09PSBudWxsKSB7XG4gICAgICAgICAgLy8gSWYgd2UgaHlkcmF0ZWQsIHBvcCBzbyB0aGF0IHdlIGNhbiBkZWxldGUgYW55IHJlbWFpbmluZyBjaGlsZHJlblxuICAgICAgICAgIC8vIHRoYXQgd2VyZW4ndCBoeWRyYXRlZC5cbiAgICAgICAgICB2YXIgd2FzSHlkcmF0ZWQgPSBwb3BIeWRyYXRpb25TdGF0ZSh3b3JrSW5Qcm9ncmVzcyk7XG5cbiAgICAgICAgICBpZiAod2FzSHlkcmF0ZWQpIHtcbiAgICAgICAgICAgIC8vIElmIHdlIGh5ZHJhdGVkLCB0aGVuIHdlJ2xsIG5lZWQgdG8gc2NoZWR1bGUgYW4gdXBkYXRlIGZvclxuICAgICAgICAgICAgLy8gdGhlIGNvbW1pdCBzaWRlLWVmZmVjdHMgb24gdGhlIHJvb3QuXG4gICAgICAgICAgICBtYXJrVXBkYXRlKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKCFmaWJlclJvb3QuaHlkcmF0ZSkge1xuICAgICAgICAgICAgLy8gU2NoZWR1bGUgYW4gZWZmZWN0IHRvIGNsZWFyIHRoaXMgY29udGFpbmVyIGF0IHRoZSBzdGFydCBvZiB0aGUgbmV4dCBjb21taXQuXG4gICAgICAgICAgICAvLyBUaGlzIGhhbmRsZXMgdGhlIGNhc2Ugb2YgUmVhY3QgcmVuZGVyaW5nIGludG8gYSBjb250YWluZXIgd2l0aCBwcmV2aW91cyBjaGlsZHJlbi5cbiAgICAgICAgICAgIC8vIEl0J3MgYWxzbyBzYWZlIHRvIGRvIGZvciB1cGRhdGVzIHRvbywgYmVjYXVzZSBjdXJyZW50LmNoaWxkIHdvdWxkIG9ubHkgYmUgbnVsbFxuICAgICAgICAgICAgLy8gaWYgdGhlIHByZXZpb3VzIHJlbmRlciB3YXMgbnVsbCAoc28gdGhlIHRoZSBjb250YWluZXIgd291bGQgYWxyZWFkeSBiZSBlbXB0eSkuXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBTbmFwc2hvdDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB1cGRhdGVIb3N0Q29udGFpbmVyKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICBjYXNlIEhvc3RDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHBvcEhvc3RDb250ZXh0KHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgdmFyIHJvb3RDb250YWluZXJJbnN0YW5jZSA9IGdldFJvb3RIb3N0Q29udGFpbmVyKCk7XG4gICAgICAgIHZhciB0eXBlID0gd29ya0luUHJvZ3Jlc3MudHlwZTtcblxuICAgICAgICBpZiAoY3VycmVudCAhPT0gbnVsbCAmJiB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGUgIT0gbnVsbCkge1xuICAgICAgICAgIHVwZGF0ZUhvc3RDb21wb25lbnQkMShjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgdHlwZSwgbmV3UHJvcHMsIHJvb3RDb250YWluZXJJbnN0YW5jZSk7XG5cbiAgICAgICAgICBpZiAoY3VycmVudC5yZWYgIT09IHdvcmtJblByb2dyZXNzLnJlZikge1xuICAgICAgICAgICAgbWFya1JlZiQxKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKCFuZXdQcm9wcykge1xuICAgICAgICAgICAgaWYgKCEod29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlICE9PSBudWxsKSkge1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoIFwiV2UgbXVzdCBoYXZlIG5ldyBwcm9wcyBmb3IgbmV3IG1vdW50cy4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIiApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IC8vIFRoaXMgY2FuIGhhcHBlbiB3aGVuIHdlIGFib3J0IHdvcmsuXG5cblxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdmFyIGN1cnJlbnRIb3N0Q29udGV4dCA9IGdldEhvc3RDb250ZXh0KCk7IC8vIFRPRE86IE1vdmUgY3JlYXRlSW5zdGFuY2UgdG8gYmVnaW5Xb3JrIGFuZCBrZWVwIGl0IG9uIGEgY29udGV4dFxuICAgICAgICAgIC8vIFwic3RhY2tcIiBhcyB0aGUgcGFyZW50LiBUaGVuIGFwcGVuZCBjaGlsZHJlbiBhcyB3ZSBnbyBpbiBiZWdpbldvcmtcbiAgICAgICAgICAvLyBvciBjb21wbGV0ZVdvcmsgZGVwZW5kaW5nIG9uIHdoZXRoZXIgd2Ugd2FudCB0byBhZGQgdGhlbSB0b3AtPmRvd24gb3JcbiAgICAgICAgICAvLyBib3R0b20tPnVwLiBUb3AtPmRvd24gaXMgZmFzdGVyIGluIElFMTEuXG5cbiAgICAgICAgICB2YXIgX3dhc0h5ZHJhdGVkID0gcG9wSHlkcmF0aW9uU3RhdGUod29ya0luUHJvZ3Jlc3MpO1xuXG4gICAgICAgICAgaWYgKF93YXNIeWRyYXRlZCkge1xuICAgICAgICAgICAgLy8gVE9ETzogTW92ZSB0aGlzIGFuZCBjcmVhdGVJbnN0YW5jZSBzdGVwIGludG8gdGhlIGJlZ2luUGhhc2VcbiAgICAgICAgICAgIC8vIHRvIGNvbnNvbGlkYXRlLlxuICAgICAgICAgICAgaWYgKHByZXBhcmVUb0h5ZHJhdGVIb3N0SW5zdGFuY2Uod29ya0luUHJvZ3Jlc3MsIHJvb3RDb250YWluZXJJbnN0YW5jZSwgY3VycmVudEhvc3RDb250ZXh0KSkge1xuICAgICAgICAgICAgICAvLyBJZiBjaGFuZ2VzIHRvIHRoZSBoeWRyYXRlZCBub2RlIG5lZWQgdG8gYmUgYXBwbGllZCBhdCB0aGVcbiAgICAgICAgICAgICAgLy8gY29tbWl0LXBoYXNlIHdlIG1hcmsgdGhpcyBhcyBzdWNoLlxuICAgICAgICAgICAgICBtYXJrVXBkYXRlKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFyIGluc3RhbmNlID0gY3JlYXRlSW5zdGFuY2UodHlwZSwgbmV3UHJvcHMsIHJvb3RDb250YWluZXJJbnN0YW5jZSwgY3VycmVudEhvc3RDb250ZXh0LCB3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgICAgICBhcHBlbmRBbGxDaGlsZHJlbihpbnN0YW5jZSwgd29ya0luUHJvZ3Jlc3MsIGZhbHNlLCBmYWxzZSk7XG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGUgPSBpbnN0YW5jZTsgLy8gQ2VydGFpbiByZW5kZXJlcnMgcmVxdWlyZSBjb21taXQtdGltZSBlZmZlY3RzIGZvciBpbml0aWFsIG1vdW50LlxuICAgICAgICAgICAgLy8gKGVnIERPTSByZW5kZXJlciBzdXBwb3J0cyBhdXRvLWZvY3VzIGZvciBjZXJ0YWluIGVsZW1lbnRzKS5cbiAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSBzdWNoIHJlbmRlcmVycyBnZXQgc2NoZWR1bGVkIGZvciBsYXRlciB3b3JrLlxuXG4gICAgICAgICAgICBpZiAoZmluYWxpemVJbml0aWFsQ2hpbGRyZW4oaW5zdGFuY2UsIHR5cGUsIG5ld1Byb3BzLCByb290Q29udGFpbmVySW5zdGFuY2UpKSB7XG4gICAgICAgICAgICAgIG1hcmtVcGRhdGUod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh3b3JrSW5Qcm9ncmVzcy5yZWYgIT09IG51bGwpIHtcbiAgICAgICAgICAgIC8vIElmIHRoZXJlIGlzIGEgcmVmIG9uIGEgaG9zdCBub2RlIHdlIG5lZWQgdG8gc2NoZWR1bGUgYSBjYWxsYmFja1xuICAgICAgICAgICAgbWFya1JlZiQxKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgIGNhc2UgSG9zdFRleHQ6XG4gICAgICB7XG4gICAgICAgIHZhciBuZXdUZXh0ID0gbmV3UHJvcHM7XG5cbiAgICAgICAgaWYgKGN1cnJlbnQgJiYgd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlICE9IG51bGwpIHtcbiAgICAgICAgICB2YXIgb2xkVGV4dCA9IGN1cnJlbnQubWVtb2l6ZWRQcm9wczsgLy8gSWYgd2UgaGF2ZSBhbiBhbHRlcm5hdGUsIHRoYXQgbWVhbnMgdGhpcyBpcyBhbiB1cGRhdGUgYW5kIHdlIG5lZWRcbiAgICAgICAgICAvLyB0byBzY2hlZHVsZSBhIHNpZGUtZWZmZWN0IHRvIGRvIHRoZSB1cGRhdGVzLlxuXG4gICAgICAgICAgdXBkYXRlSG9zdFRleHQkMShjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgb2xkVGV4dCwgbmV3VGV4dCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBuZXdUZXh0ICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgaWYgKCEod29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlICE9PSBudWxsKSkge1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoIFwiV2UgbXVzdCBoYXZlIG5ldyBwcm9wcyBmb3IgbmV3IG1vdW50cy4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIiApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IC8vIFRoaXMgY2FuIGhhcHBlbiB3aGVuIHdlIGFib3J0IHdvcmsuXG5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICB2YXIgX3Jvb3RDb250YWluZXJJbnN0YW5jZSA9IGdldFJvb3RIb3N0Q29udGFpbmVyKCk7XG5cbiAgICAgICAgICB2YXIgX2N1cnJlbnRIb3N0Q29udGV4dCA9IGdldEhvc3RDb250ZXh0KCk7XG5cbiAgICAgICAgICB2YXIgX3dhc0h5ZHJhdGVkMiA9IHBvcEh5ZHJhdGlvblN0YXRlKHdvcmtJblByb2dyZXNzKTtcblxuICAgICAgICAgIGlmIChfd2FzSHlkcmF0ZWQyKSB7XG4gICAgICAgICAgICBpZiAocHJlcGFyZVRvSHlkcmF0ZUhvc3RUZXh0SW5zdGFuY2Uod29ya0luUHJvZ3Jlc3MpKSB7XG4gICAgICAgICAgICAgIG1hcmtVcGRhdGUod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGUgPSBjcmVhdGVUZXh0SW5zdGFuY2UobmV3VGV4dCwgX3Jvb3RDb250YWluZXJJbnN0YW5jZSwgX2N1cnJlbnRIb3N0Q29udGV4dCwgd29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgY2FzZSBTdXNwZW5zZUNvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgcG9wU3VzcGVuc2VDb250ZXh0KHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgdmFyIG5leHRTdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG5cbiAgICAgICAgaWYgKCh3b3JrSW5Qcm9ncmVzcy5mbGFncyAmIERpZENhcHR1cmUpICE9PSBOb0ZsYWdzKSB7XG4gICAgICAgICAgLy8gU29tZXRoaW5nIHN1c3BlbmRlZC4gUmUtcmVuZGVyIHdpdGggdGhlIGZhbGxiYWNrIGNoaWxkcmVuLlxuICAgICAgICAgIHdvcmtJblByb2dyZXNzLmxhbmVzID0gcmVuZGVyTGFuZXM7IC8vIERvIG5vdCByZXNldCB0aGUgZWZmZWN0IGxpc3QuXG5cbiAgICAgICAgICBpZiAoICh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUpIHtcbiAgICAgICAgICAgIHRyYW5zZmVyQWN0dWFsRHVyYXRpb24od29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzcztcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBuZXh0RGlkVGltZW91dCA9IG5leHRTdGF0ZSAhPT0gbnVsbDtcbiAgICAgICAgdmFyIHByZXZEaWRUaW1lb3V0ID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKGN1cnJlbnQgPT09IG51bGwpIHtcbiAgICAgICAgICBpZiAod29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRQcm9wcy5mYWxsYmFjayAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBwb3BIeWRyYXRpb25TdGF0ZSh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhciBwcmV2U3RhdGUgPSBjdXJyZW50Lm1lbW9pemVkU3RhdGU7XG4gICAgICAgICAgcHJldkRpZFRpbWVvdXQgPSBwcmV2U3RhdGUgIT09IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobmV4dERpZFRpbWVvdXQgJiYgIXByZXZEaWRUaW1lb3V0KSB7XG4gICAgICAgICAgLy8gSWYgdGhpcyBzdWJ0cmVlZSBpcyBydW5uaW5nIGluIGJsb2NraW5nIG1vZGUgd2UgY2FuIHN1c3BlbmQsXG4gICAgICAgICAgLy8gb3RoZXJ3aXNlIHdlIHdvbid0IHN1c3BlbmQuXG4gICAgICAgICAgLy8gVE9ETzogVGhpcyB3aWxsIHN0aWxsIHN1c3BlbmQgYSBzeW5jaHJvbm91cyB0cmVlIGlmIGFueXRoaW5nXG4gICAgICAgICAgLy8gaW4gdGhlIGNvbmN1cnJlbnQgdHJlZSBhbHJlYWR5IHN1c3BlbmRlZCBkdXJpbmcgdGhpcyByZW5kZXIuXG4gICAgICAgICAgLy8gVGhpcyBpcyBhIGtub3duIGJ1Zy5cbiAgICAgICAgICBpZiAoKHdvcmtJblByb2dyZXNzLm1vZGUgJiBCbG9ja2luZ01vZGUpICE9PSBOb01vZGUpIHtcbiAgICAgICAgICAgIC8vIFRPRE86IE1vdmUgdGhpcyBiYWNrIHRvIHRocm93RXhjZXB0aW9uIGJlY2F1c2UgdGhpcyBpcyB0b28gbGF0ZVxuICAgICAgICAgICAgLy8gaWYgdGhpcyBpcyBhIGxhcmdlIHRyZWUgd2hpY2ggaXMgY29tbW9uIGZvciBpbml0aWFsIGxvYWRzLiBXZVxuICAgICAgICAgICAgLy8gZG9uJ3Qga25vdyBpZiB3ZSBzaG91bGQgcmVzdGFydCBhIHJlbmRlciBvciBub3QgdW50aWwgd2UgZ2V0XG4gICAgICAgICAgICAvLyB0aGlzIG1hcmtlciwgYW5kIHRoaXMgaXMgdG9vIGxhdGUuXG4gICAgICAgICAgICAvLyBJZiB0aGlzIHJlbmRlciBhbHJlYWR5IGhhZCBhIHBpbmcgb3IgbG93ZXIgcHJpIHVwZGF0ZXMsXG4gICAgICAgICAgICAvLyBhbmQgdGhpcyBpcyB0aGUgZmlyc3QgdGltZSB3ZSBrbm93IHdlJ3JlIGdvaW5nIHRvIHN1c3BlbmQgd2VcbiAgICAgICAgICAgIC8vIHNob3VsZCBiZSBhYmxlIHRvIGltbWVkaWF0ZWx5IHJlc3RhcnQgZnJvbSB3aXRoaW4gdGhyb3dFeGNlcHRpb24uXG4gICAgICAgICAgICB2YXIgaGFzSW52aXNpYmxlQ2hpbGRDb250ZXh0ID0gY3VycmVudCA9PT0gbnVsbCAmJiB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFByb3BzLnVuc3RhYmxlX2F2b2lkVGhpc0ZhbGxiYWNrICE9PSB0cnVlO1xuXG4gICAgICAgICAgICBpZiAoaGFzSW52aXNpYmxlQ2hpbGRDb250ZXh0IHx8IGhhc1N1c3BlbnNlQ29udGV4dChzdXNwZW5zZVN0YWNrQ3Vyc29yLmN1cnJlbnQsIEludmlzaWJsZVBhcmVudFN1c3BlbnNlQ29udGV4dCkpIHtcbiAgICAgICAgICAgICAgLy8gSWYgdGhpcyB3YXMgaW4gYW4gaW52aXNpYmxlIHRyZWUgb3IgYSBuZXcgcmVuZGVyLCB0aGVuIHNob3dpbmdcbiAgICAgICAgICAgICAgLy8gdGhpcyBib3VuZGFyeSBpcyBvay5cbiAgICAgICAgICAgICAgcmVuZGVyRGlkU3VzcGVuZCgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8gT3RoZXJ3aXNlLCB3ZSdyZSBnb2luZyB0byBoYXZlIHRvIGhpZGUgY29udGVudCBzbyB3ZSBzaG91bGRcbiAgICAgICAgICAgICAgLy8gc3VzcGVuZCBmb3IgbG9uZ2VyIGlmIHBvc3NpYmxlLlxuICAgICAgICAgICAgICByZW5kZXJEaWRTdXNwZW5kRGVsYXlJZlBvc3NpYmxlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAge1xuICAgICAgICAgIC8vIFRPRE86IE9ubHkgc2NoZWR1bGUgdXBkYXRlcyBpZiB0aGVzZSB2YWx1ZXMgYXJlIG5vbiBlcXVhbCwgaS5lLiBpdCBjaGFuZ2VkLlxuICAgICAgICAgIGlmIChuZXh0RGlkVGltZW91dCB8fCBwcmV2RGlkVGltZW91dCkge1xuICAgICAgICAgICAgLy8gSWYgdGhpcyBib3VuZGFyeSBqdXN0IHRpbWVkIG91dCwgc2NoZWR1bGUgYW4gZWZmZWN0IHRvIGF0dGFjaCBhXG4gICAgICAgICAgICAvLyByZXRyeSBsaXN0ZW5lciB0byB0aGUgcHJvbWlzZS4gVGhpcyBmbGFnIGlzIGFsc28gdXNlZCB0byBoaWRlIHRoZVxuICAgICAgICAgICAgLy8gcHJpbWFyeSBjaGlsZHJlbi4gSW4gbXV0YXRpb24gbW9kZSwgd2UgYWxzbyBuZWVkIHRoZSBmbGFnIHRvXG4gICAgICAgICAgICAvLyAqdW5oaWRlKiBjaGlsZHJlbiB0aGF0IHdlcmUgcHJldmlvdXNseSBoaWRkZW4sIHNvIGNoZWNrIGlmIHRoaXNcbiAgICAgICAgICAgIC8vIGlzIGN1cnJlbnRseSB0aW1lZCBvdXQsIHRvby5cbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IFVwZGF0ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgIGNhc2UgSG9zdFBvcnRhbDpcbiAgICAgIHBvcEhvc3RDb250YWluZXIod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgdXBkYXRlSG9zdENvbnRhaW5lcih3b3JrSW5Qcm9ncmVzcyk7XG5cbiAgICAgIGlmIChjdXJyZW50ID09PSBudWxsKSB7XG4gICAgICAgIHByZXBhcmVQb3J0YWxNb3VudCh3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBudWxsO1xuXG4gICAgY2FzZSBDb250ZXh0UHJvdmlkZXI6XG4gICAgICAvLyBQb3AgcHJvdmlkZXIgZmliZXJcbiAgICAgIHBvcFByb3ZpZGVyKHdvcmtJblByb2dyZXNzKTtcbiAgICAgIHJldHVybiBudWxsO1xuXG4gICAgY2FzZSBJbmNvbXBsZXRlQ2xhc3NDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIC8vIFNhbWUgYXMgY2xhc3MgY29tcG9uZW50IGNhc2UuIEkgcHV0IGl0IGRvd24gaGVyZSBzbyB0aGF0IHRoZSB0YWdzIGFyZVxuICAgICAgICAvLyBzZXF1ZW50aWFsIHRvIGVuc3VyZSB0aGlzIHN3aXRjaCBpcyBjb21waWxlZCB0byBhIGp1bXAgdGFibGUuXG4gICAgICAgIHZhciBfQ29tcG9uZW50ID0gd29ya0luUHJvZ3Jlc3MudHlwZTtcblxuICAgICAgICBpZiAoaXNDb250ZXh0UHJvdmlkZXIoX0NvbXBvbmVudCkpIHtcbiAgICAgICAgICBwb3BDb250ZXh0KHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgY2FzZSBTdXNwZW5zZUxpc3RDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHBvcFN1c3BlbnNlQ29udGV4dCh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgIHZhciByZW5kZXJTdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG5cbiAgICAgICAgaWYgKHJlbmRlclN0YXRlID09PSBudWxsKSB7XG4gICAgICAgICAgLy8gV2UncmUgcnVubmluZyBpbiB0aGUgZGVmYXVsdCwgXCJpbmRlcGVuZGVudFwiIG1vZGUuXG4gICAgICAgICAgLy8gV2UgZG9uJ3QgZG8gYW55dGhpbmcgaW4gdGhpcyBtb2RlLlxuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGRpZFN1c3BlbmRBbHJlYWR5ID0gKHdvcmtJblByb2dyZXNzLmZsYWdzICYgRGlkQ2FwdHVyZSkgIT09IE5vRmxhZ3M7XG4gICAgICAgIHZhciByZW5kZXJlZFRhaWwgPSByZW5kZXJTdGF0ZS5yZW5kZXJpbmc7XG5cbiAgICAgICAgaWYgKHJlbmRlcmVkVGFpbCA9PT0gbnVsbCkge1xuICAgICAgICAgIC8vIFdlIGp1c3QgcmVuZGVyZWQgdGhlIGhlYWQuXG4gICAgICAgICAgaWYgKCFkaWRTdXNwZW5kQWxyZWFkeSkge1xuICAgICAgICAgICAgLy8gVGhpcyBpcyB0aGUgZmlyc3QgcGFzcy4gV2UgbmVlZCB0byBmaWd1cmUgb3V0IGlmIGFueXRoaW5nIGlzIHN0aWxsXG4gICAgICAgICAgICAvLyBzdXNwZW5kZWQgaW4gdGhlIHJlbmRlcmVkIHNldC5cbiAgICAgICAgICAgIC8vIElmIG5ldyBjb250ZW50IHVuc3VzcGVuZGVkLCBidXQgdGhlcmUncyBzdGlsbCBzb21lIGNvbnRlbnQgdGhhdFxuICAgICAgICAgICAgLy8gZGlkbid0LiBUaGVuIHdlIG5lZWQgdG8gZG8gYSBzZWNvbmQgcGFzcyB0aGF0IGZvcmNlcyBldmVyeXRoaW5nXG4gICAgICAgICAgICAvLyB0byBrZWVwIHNob3dpbmcgdGhlaXIgZmFsbGJhY2tzLlxuICAgICAgICAgICAgLy8gV2UgbWlnaHQgYmUgc3VzcGVuZGVkIGlmIHNvbWV0aGluZyBpbiB0aGlzIHJlbmRlciBwYXNzIHN1c3BlbmRlZCwgb3JcbiAgICAgICAgICAgIC8vIHNvbWV0aGluZyBpbiB0aGUgcHJldmlvdXMgY29tbWl0dGVkIHBhc3Mgc3VzcGVuZGVkLiBPdGhlcndpc2UsXG4gICAgICAgICAgICAvLyB0aGVyZSdzIG5vIGNoYW5jZSBzbyB3ZSBjYW4gc2tpcCB0aGUgZXhwZW5zaXZlIGNhbGwgdG9cbiAgICAgICAgICAgIC8vIGZpbmRGaXJzdFN1c3BlbmRlZC5cbiAgICAgICAgICAgIHZhciBjYW5ub3RCZVN1c3BlbmRlZCA9IHJlbmRlckhhc05vdFN1c3BlbmRlZFlldCgpICYmIChjdXJyZW50ID09PSBudWxsIHx8IChjdXJyZW50LmZsYWdzICYgRGlkQ2FwdHVyZSkgPT09IE5vRmxhZ3MpO1xuXG4gICAgICAgICAgICBpZiAoIWNhbm5vdEJlU3VzcGVuZGVkKSB7XG4gICAgICAgICAgICAgIHZhciByb3cgPSB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcblxuICAgICAgICAgICAgICB3aGlsZSAocm93ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdmFyIHN1c3BlbmRlZCA9IGZpbmRGaXJzdFN1c3BlbmRlZChyb3cpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHN1c3BlbmRlZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgZGlkU3VzcGVuZEFscmVhZHkgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gRGlkQ2FwdHVyZTtcbiAgICAgICAgICAgICAgICAgIGN1dE9mZlRhaWxJZk5lZWRlZChyZW5kZXJTdGF0ZSwgZmFsc2UpOyAvLyBJZiB0aGlzIGlzIGEgbmV3bHkgc3VzcGVuZGVkIHRyZWUsIGl0IG1pZ2h0IG5vdCBnZXQgY29tbWl0dGVkIGFzXG4gICAgICAgICAgICAgICAgICAvLyBwYXJ0IG9mIHRoZSBzZWNvbmQgcGFzcy4gSW4gdGhhdCBjYXNlIG5vdGhpbmcgd2lsbCBzdWJzY3JpYmUgdG9cbiAgICAgICAgICAgICAgICAgIC8vIGl0cyB0aGVubmFibGVzLiBJbnN0ZWFkLCB3ZSdsbCB0cmFuc2ZlciBpdHMgdGhlbm5hYmxlcyB0byB0aGVcbiAgICAgICAgICAgICAgICAgIC8vIFN1c3BlbnNlTGlzdCBzbyB0aGF0IGl0IGNhbiByZXRyeSBpZiB0aGV5IHJlc29sdmUuXG4gICAgICAgICAgICAgICAgICAvLyBUaGVyZSBtaWdodCBiZSBtdWx0aXBsZSBvZiB0aGVzZSBpbiB0aGUgbGlzdCBidXQgc2luY2Ugd2UncmVcbiAgICAgICAgICAgICAgICAgIC8vIGdvaW5nIHRvIHdhaXQgZm9yIGFsbCBvZiB0aGVtIGFueXdheSwgaXQgZG9lc24ndCByZWFsbHkgbWF0dGVyXG4gICAgICAgICAgICAgICAgICAvLyB3aGljaCBvbmVzIGdldHMgdG8gcGluZy4gSW4gdGhlb3J5IHdlIGNvdWxkIGdldCBjbGV2ZXIgYW5kIGtlZXBcbiAgICAgICAgICAgICAgICAgIC8vIHRyYWNrIG9mIGhvdyBtYW55IGRlcGVuZGVuY2llcyByZW1haW4gYnV0IGl0IGdldHMgdHJpY2t5IGJlY2F1c2VcbiAgICAgICAgICAgICAgICAgIC8vIGluIHRoZSBtZWFudGltZSwgd2UgY2FuIGFkZC9yZW1vdmUvY2hhbmdlIGl0ZW1zIGFuZCBkZXBlbmRlbmNpZXMuXG4gICAgICAgICAgICAgICAgICAvLyBXZSBtaWdodCBiYWlsIG91dCBvZiB0aGUgbG9vcCBiZWZvcmUgZmluZGluZyBhbnkgYnV0IHRoYXRcbiAgICAgICAgICAgICAgICAgIC8vIGRvZXNuJ3QgbWF0dGVyIHNpbmNlIHRoYXQgbWVhbnMgdGhhdCB0aGUgb3RoZXIgYm91bmRhcmllcyB0aGF0XG4gICAgICAgICAgICAgICAgICAvLyB3ZSBkaWQgZmluZCBhbHJlYWR5IGhhcyB0aGVpciBsaXN0ZW5lcnMgYXR0YWNoZWQuXG5cbiAgICAgICAgICAgICAgICAgIHZhciBuZXdUaGVubmFibGVzID0gc3VzcGVuZGVkLnVwZGF0ZVF1ZXVlO1xuXG4gICAgICAgICAgICAgICAgICBpZiAobmV3VGhlbm5hYmxlcyAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy51cGRhdGVRdWV1ZSA9IG5ld1RoZW5uYWJsZXM7XG4gICAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IFVwZGF0ZTtcbiAgICAgICAgICAgICAgICAgIH0gLy8gUmVyZW5kZXIgdGhlIHdob2xlIGxpc3QsIGJ1dCB0aGlzIHRpbWUsIHdlJ2xsIGZvcmNlIGZhbGxiYWNrc1xuICAgICAgICAgICAgICAgICAgLy8gdG8gc3RheSBpbiBwbGFjZS5cbiAgICAgICAgICAgICAgICAgIC8vIFJlc2V0IHRoZSBlZmZlY3QgbGlzdCBiZWZvcmUgZG9pbmcgdGhlIHNlY29uZCBwYXNzIHNpbmNlIHRoYXQncyBub3cgaW52YWxpZC5cblxuXG4gICAgICAgICAgICAgICAgICBpZiAocmVuZGVyU3RhdGUubGFzdEVmZmVjdCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5maXJzdEVmZmVjdCA9IG51bGw7XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLmxhc3RFZmZlY3QgPSByZW5kZXJTdGF0ZS5sYXN0RWZmZWN0OyAvLyBSZXNldCB0aGUgY2hpbGQgZmliZXJzIHRvIHRoZWlyIG9yaWdpbmFsIHN0YXRlLlxuXG4gICAgICAgICAgICAgICAgICByZXNldENoaWxkRmliZXJzKHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7IC8vIFNldCB1cCB0aGUgU3VzcGVuc2UgQ29udGV4dCB0byBmb3JjZSBzdXNwZW5zZSBhbmQgaW1tZWRpYXRlbHlcbiAgICAgICAgICAgICAgICAgIC8vIHJlcmVuZGVyIHRoZSBjaGlsZHJlbi5cblxuICAgICAgICAgICAgICAgICAgcHVzaFN1c3BlbnNlQ29udGV4dCh3b3JrSW5Qcm9ncmVzcywgc2V0U2hhbGxvd1N1c3BlbnNlQ29udGV4dChzdXNwZW5zZVN0YWNrQ3Vyc29yLmN1cnJlbnQsIEZvcmNlU3VzcGVuc2VGYWxsYmFjaykpO1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIHdvcmtJblByb2dyZXNzLmNoaWxkO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJvdyA9IHJvdy5zaWJsaW5nO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChyZW5kZXJTdGF0ZS50YWlsICE9PSBudWxsICYmIG5vdygpID4gZ2V0UmVuZGVyVGFyZ2V0VGltZSgpKSB7XG4gICAgICAgICAgICAgIC8vIFdlIGhhdmUgYWxyZWFkeSBwYXNzZWQgb3VyIENQVSBkZWFkbGluZSBidXQgd2Ugc3RpbGwgaGF2ZSByb3dzXG4gICAgICAgICAgICAgIC8vIGxlZnQgaW4gdGhlIHRhaWwuIFdlJ2xsIGp1c3QgZ2l2ZSB1cCBmdXJ0aGVyIGF0dGVtcHRzIHRvIHJlbmRlclxuICAgICAgICAgICAgICAvLyB0aGUgbWFpbiBjb250ZW50IGFuZCBvbmx5IHJlbmRlciBmYWxsYmFja3MuXG4gICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IERpZENhcHR1cmU7XG4gICAgICAgICAgICAgIGRpZFN1c3BlbmRBbHJlYWR5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgY3V0T2ZmVGFpbElmTmVlZGVkKHJlbmRlclN0YXRlLCBmYWxzZSk7IC8vIFNpbmNlIG5vdGhpbmcgYWN0dWFsbHkgc3VzcGVuZGVkLCB0aGVyZSB3aWxsIG5vdGhpbmcgdG8gcGluZyB0aGlzXG4gICAgICAgICAgICAgIC8vIHRvIGdldCBpdCBzdGFydGVkIGJhY2sgdXAgdG8gYXR0ZW1wdCB0aGUgbmV4dCBpdGVtLiBXaGlsZSBpbiB0ZXJtc1xuICAgICAgICAgICAgICAvLyBvZiBwcmlvcml0eSB0aGlzIHdvcmsgaGFzIHRoZSBzYW1lIHByaW9yaXR5IGFzIHRoaXMgY3VycmVudCByZW5kZXIsXG4gICAgICAgICAgICAgIC8vIGl0J3Mgbm90IHBhcnQgb2YgdGhlIHNhbWUgdHJhbnNpdGlvbiBvbmNlIHRoZSB0cmFuc2l0aW9uIGhhc1xuICAgICAgICAgICAgICAvLyBjb21taXR0ZWQuIElmIGl0J3Mgc3luYywgd2Ugc3RpbGwgd2FudCB0byB5aWVsZCBzbyB0aGF0IGl0IGNhbiBiZVxuICAgICAgICAgICAgICAvLyBwYWludGVkLiBDb25jZXB0dWFsbHksIHRoaXMgaXMgcmVhbGx5IHRoZSBzYW1lIGFzIHBpbmdpbmcuXG4gICAgICAgICAgICAgIC8vIFdlIGNhbiB1c2UgYW55IFJldHJ5TGFuZSBldmVuIGlmIGl0J3MgdGhlIG9uZSBjdXJyZW50bHkgcmVuZGVyaW5nXG4gICAgICAgICAgICAgIC8vIHNpbmNlIHdlJ3JlIGxlYXZpbmcgaXQgYmVoaW5kIG9uIHRoaXMgbm9kZS5cblxuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5sYW5lcyA9IFNvbWVSZXRyeUxhbmU7XG5cbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG1hcmtTcGF3bmVkV29yayhTb21lUmV0cnlMYW5lKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjdXRPZmZUYWlsSWZOZWVkZWQocmVuZGVyU3RhdGUsIGZhbHNlKTtcbiAgICAgICAgICB9IC8vIE5leHQgd2UncmUgZ29pbmcgdG8gcmVuZGVyIHRoZSB0YWlsLlxuXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gQXBwZW5kIHRoZSByZW5kZXJlZCByb3cgdG8gdGhlIGNoaWxkIGxpc3QuXG4gICAgICAgICAgaWYgKCFkaWRTdXNwZW5kQWxyZWFkeSkge1xuICAgICAgICAgICAgdmFyIF9zdXNwZW5kZWQgPSBmaW5kRmlyc3RTdXNwZW5kZWQocmVuZGVyZWRUYWlsKTtcblxuICAgICAgICAgICAgaWYgKF9zdXNwZW5kZWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gRGlkQ2FwdHVyZTtcbiAgICAgICAgICAgICAgZGlkU3VzcGVuZEFscmVhZHkgPSB0cnVlOyAvLyBFbnN1cmUgd2UgdHJhbnNmZXIgdGhlIHVwZGF0ZSBxdWV1ZSB0byB0aGUgcGFyZW50IHNvIHRoYXQgaXQgZG9lc24ndFxuICAgICAgICAgICAgICAvLyBnZXQgbG9zdCBpZiB0aGlzIHJvdyBlbmRzIHVwIGRyb3BwZWQgZHVyaW5nIGEgc2Vjb25kIHBhc3MuXG5cbiAgICAgICAgICAgICAgdmFyIF9uZXdUaGVubmFibGVzID0gX3N1c3BlbmRlZC51cGRhdGVRdWV1ZTtcblxuICAgICAgICAgICAgICBpZiAoX25ld1RoZW5uYWJsZXMgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy51cGRhdGVRdWV1ZSA9IF9uZXdUaGVubmFibGVzO1xuICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IFVwZGF0ZTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGN1dE9mZlRhaWxJZk5lZWRlZChyZW5kZXJTdGF0ZSwgdHJ1ZSk7IC8vIFRoaXMgbWlnaHQgaGF2ZSBiZWVuIG1vZGlmaWVkLlxuXG4gICAgICAgICAgICAgIGlmIChyZW5kZXJTdGF0ZS50YWlsID09PSBudWxsICYmIHJlbmRlclN0YXRlLnRhaWxNb2RlID09PSAnaGlkZGVuJyAmJiAhcmVuZGVyZWRUYWlsLmFsdGVybmF0ZSAmJiAhZ2V0SXNIeWRyYXRpbmcoKSAvLyBXZSBkb24ndCBjdXQgaXQgaWYgd2UncmUgaHlkcmF0aW5nLlxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gZGVsZXRlIHRoZSByb3cgd2UganVzdCByZW5kZXJlZC5cbiAgICAgICAgICAgICAgICAgIC8vIFJlc2V0IHRoZSBlZmZlY3QgbGlzdCB0byB3aGF0IGl0IHdhcyBiZWZvcmUgd2UgcmVuZGVyZWQgdGhpc1xuICAgICAgICAgICAgICAgICAgLy8gY2hpbGQuIFRoZSBuZXN0ZWQgY2hpbGRyZW4gaGF2ZSBhbHJlYWR5IGFwcGVuZGVkIHRoZW1zZWx2ZXMuXG4gICAgICAgICAgICAgICAgICB2YXIgbGFzdEVmZmVjdCA9IHdvcmtJblByb2dyZXNzLmxhc3RFZmZlY3QgPSByZW5kZXJTdGF0ZS5sYXN0RWZmZWN0OyAvLyBSZW1vdmUgYW55IGVmZmVjdHMgdGhhdCB3ZXJlIGFwcGVuZGVkIGFmdGVyIHRoaXMgcG9pbnQuXG5cbiAgICAgICAgICAgICAgICAgIGlmIChsYXN0RWZmZWN0ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGxhc3RFZmZlY3QubmV4dEVmZmVjdCA9IG51bGw7XG4gICAgICAgICAgICAgICAgICB9IC8vIFdlJ3JlIGRvbmUuXG5cblxuICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmICggLy8gVGhlIHRpbWUgaXQgdG9vayB0byByZW5kZXIgbGFzdCByb3cgaXMgZ3JlYXRlciB0aGFuIHRoZSByZW1haW5pbmdcbiAgICAgICAgICAgIC8vIHRpbWUgd2UgaGF2ZSB0byByZW5kZXIuIFNvIHJlbmRlcmluZyBvbmUgbW9yZSByb3cgd291bGQgbGlrZWx5XG4gICAgICAgICAgICAvLyBleGNlZWQgaXQuXG4gICAgICAgICAgICBub3coKSAqIDIgLSByZW5kZXJTdGF0ZS5yZW5kZXJpbmdTdGFydFRpbWUgPiBnZXRSZW5kZXJUYXJnZXRUaW1lKCkgJiYgcmVuZGVyTGFuZXMgIT09IE9mZnNjcmVlbkxhbmUpIHtcbiAgICAgICAgICAgICAgLy8gV2UgaGF2ZSBub3cgcGFzc2VkIG91ciBDUFUgZGVhZGxpbmUgYW5kIHdlJ2xsIGp1c3QgZ2l2ZSB1cCBmdXJ0aGVyXG4gICAgICAgICAgICAgIC8vIGF0dGVtcHRzIHRvIHJlbmRlciB0aGUgbWFpbiBjb250ZW50IGFuZCBvbmx5IHJlbmRlciBmYWxsYmFja3MuXG4gICAgICAgICAgICAgIC8vIFRoZSBhc3N1bXB0aW9uIGlzIHRoYXQgdGhpcyBpcyB1c3VhbGx5IGZhc3Rlci5cbiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gRGlkQ2FwdHVyZTtcbiAgICAgICAgICAgICAgZGlkU3VzcGVuZEFscmVhZHkgPSB0cnVlO1xuICAgICAgICAgICAgICBjdXRPZmZUYWlsSWZOZWVkZWQocmVuZGVyU3RhdGUsIGZhbHNlKTsgLy8gU2luY2Ugbm90aGluZyBhY3R1YWxseSBzdXNwZW5kZWQsIHRoZXJlIHdpbGwgbm90aGluZyB0byBwaW5nIHRoaXNcbiAgICAgICAgICAgICAgLy8gdG8gZ2V0IGl0IHN0YXJ0ZWQgYmFjayB1cCB0byBhdHRlbXB0IHRoZSBuZXh0IGl0ZW0uIFdoaWxlIGluIHRlcm1zXG4gICAgICAgICAgICAgIC8vIG9mIHByaW9yaXR5IHRoaXMgd29yayBoYXMgdGhlIHNhbWUgcHJpb3JpdHkgYXMgdGhpcyBjdXJyZW50IHJlbmRlcixcbiAgICAgICAgICAgICAgLy8gaXQncyBub3QgcGFydCBvZiB0aGUgc2FtZSB0cmFuc2l0aW9uIG9uY2UgdGhlIHRyYW5zaXRpb24gaGFzXG4gICAgICAgICAgICAgIC8vIGNvbW1pdHRlZC4gSWYgaXQncyBzeW5jLCB3ZSBzdGlsbCB3YW50IHRvIHlpZWxkIHNvIHRoYXQgaXQgY2FuIGJlXG4gICAgICAgICAgICAgIC8vIHBhaW50ZWQuIENvbmNlcHR1YWxseSwgdGhpcyBpcyByZWFsbHkgdGhlIHNhbWUgYXMgcGluZ2luZy5cbiAgICAgICAgICAgICAgLy8gV2UgY2FuIHVzZSBhbnkgUmV0cnlMYW5lIGV2ZW4gaWYgaXQncyB0aGUgb25lIGN1cnJlbnRseSByZW5kZXJpbmdcbiAgICAgICAgICAgICAgLy8gc2luY2Ugd2UncmUgbGVhdmluZyBpdCBiZWhpbmQgb24gdGhpcyBub2RlLlxuXG4gICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLmxhbmVzID0gU29tZVJldHJ5TGFuZTtcblxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbWFya1NwYXduZWRXb3JrKFNvbWVSZXRyeUxhbmUpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHJlbmRlclN0YXRlLmlzQmFja3dhcmRzKSB7XG4gICAgICAgICAgICAvLyBUaGUgZWZmZWN0IGxpc3Qgb2YgdGhlIGJhY2t3YXJkcyB0YWlsIHdpbGwgaGF2ZSBiZWVuIGFkZGVkXG4gICAgICAgICAgICAvLyB0byB0aGUgZW5kLiBUaGlzIGJyZWFrcyB0aGUgZ3VhcmFudGVlIHRoYXQgbGlmZS1jeWNsZXMgZmlyZSBpblxuICAgICAgICAgICAgLy8gc2libGluZyBvcmRlciBidXQgdGhhdCBpc24ndCBhIHN0cm9uZyBndWFyYW50ZWUgcHJvbWlzZWQgYnkgUmVhY3QuXG4gICAgICAgICAgICAvLyBFc3BlY2lhbGx5IHNpbmNlIHRoZXNlIG1pZ2h0IGFsc28ganVzdCBwb3AgaW4gZHVyaW5nIGZ1dHVyZSBjb21taXRzLlxuICAgICAgICAgICAgLy8gQXBwZW5kIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpc3QuXG4gICAgICAgICAgICByZW5kZXJlZFRhaWwuc2libGluZyA9IHdvcmtJblByb2dyZXNzLmNoaWxkO1xuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MuY2hpbGQgPSByZW5kZXJlZFRhaWw7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciBwcmV2aW91c1NpYmxpbmcgPSByZW5kZXJTdGF0ZS5sYXN0O1xuXG4gICAgICAgICAgICBpZiAocHJldmlvdXNTaWJsaW5nICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIHByZXZpb3VzU2libGluZy5zaWJsaW5nID0gcmVuZGVyZWRUYWlsO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MuY2hpbGQgPSByZW5kZXJlZFRhaWw7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJlbmRlclN0YXRlLmxhc3QgPSByZW5kZXJlZFRhaWw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJlbmRlclN0YXRlLnRhaWwgIT09IG51bGwpIHtcbiAgICAgICAgICAvLyBXZSBzdGlsbCBoYXZlIHRhaWwgcm93cyB0byByZW5kZXIuXG4gICAgICAgICAgLy8gUG9wIGEgcm93LlxuICAgICAgICAgIHZhciBuZXh0ID0gcmVuZGVyU3RhdGUudGFpbDtcbiAgICAgICAgICByZW5kZXJTdGF0ZS5yZW5kZXJpbmcgPSBuZXh0O1xuICAgICAgICAgIHJlbmRlclN0YXRlLnRhaWwgPSBuZXh0LnNpYmxpbmc7XG4gICAgICAgICAgcmVuZGVyU3RhdGUubGFzdEVmZmVjdCA9IHdvcmtJblByb2dyZXNzLmxhc3RFZmZlY3Q7XG4gICAgICAgICAgcmVuZGVyU3RhdGUucmVuZGVyaW5nU3RhcnRUaW1lID0gbm93KCk7XG4gICAgICAgICAgbmV4dC5zaWJsaW5nID0gbnVsbDsgLy8gUmVzdG9yZSB0aGUgY29udGV4dC5cbiAgICAgICAgICAvLyBUT0RPOiBXZSBjYW4gcHJvYmFibHkganVzdCBhdm9pZCBwb3BwaW5nIGl0IGluc3RlYWQgYW5kIG9ubHlcbiAgICAgICAgICAvLyBzZXR0aW5nIGl0IHRoZSBmaXJzdCB0aW1lIHdlIGdvIGZyb20gbm90IHN1c3BlbmRlZCB0byBzdXNwZW5kZWQuXG5cbiAgICAgICAgICB2YXIgc3VzcGVuc2VDb250ZXh0ID0gc3VzcGVuc2VTdGFja0N1cnNvci5jdXJyZW50O1xuXG4gICAgICAgICAgaWYgKGRpZFN1c3BlbmRBbHJlYWR5KSB7XG4gICAgICAgICAgICBzdXNwZW5zZUNvbnRleHQgPSBzZXRTaGFsbG93U3VzcGVuc2VDb250ZXh0KHN1c3BlbnNlQ29udGV4dCwgRm9yY2VTdXNwZW5zZUZhbGxiYWNrKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3VzcGVuc2VDb250ZXh0ID0gc2V0RGVmYXVsdFNoYWxsb3dTdXNwZW5zZUNvbnRleHQoc3VzcGVuc2VDb250ZXh0KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBwdXNoU3VzcGVuc2VDb250ZXh0KHdvcmtJblByb2dyZXNzLCBzdXNwZW5zZUNvbnRleHQpOyAvLyBEbyBhIHBhc3Mgb3ZlciB0aGUgbmV4dCByb3cuXG5cbiAgICAgICAgICByZXR1cm4gbmV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgY2FzZSBGdW5kYW1lbnRhbENvbXBvbmVudDpcbiAgICAgIHtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgIGNhc2UgU2NvcGVDb21wb25lbnQ6XG4gICAgICB7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICBjYXNlIEJsb2NrOlxuXG4gICAgICBicmVhaztcblxuICAgIGNhc2UgT2Zmc2NyZWVuQ29tcG9uZW50OlxuICAgIGNhc2UgTGVnYWN5SGlkZGVuQ29tcG9uZW50OlxuICAgICAge1xuICAgICAgICBwb3BSZW5kZXJMYW5lcyh3b3JrSW5Qcm9ncmVzcyk7XG5cbiAgICAgICAgaWYgKGN1cnJlbnQgIT09IG51bGwpIHtcbiAgICAgICAgICB2YXIgX25leHRTdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG4gICAgICAgICAgdmFyIF9wcmV2U3RhdGUgPSBjdXJyZW50Lm1lbW9pemVkU3RhdGU7XG4gICAgICAgICAgdmFyIHByZXZJc0hpZGRlbiA9IF9wcmV2U3RhdGUgIT09IG51bGw7XG4gICAgICAgICAgdmFyIG5leHRJc0hpZGRlbiA9IF9uZXh0U3RhdGUgIT09IG51bGw7XG5cbiAgICAgICAgICBpZiAocHJldklzSGlkZGVuICE9PSBuZXh0SXNIaWRkZW4gJiYgbmV3UHJvcHMubW9kZSAhPT0gJ3Vuc3RhYmxlLWRlZmVyLXdpdGhvdXQtaGlkaW5nJykge1xuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gVXBkYXRlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICB9XG5cbiAge1xuICAgIHtcbiAgICAgIHRocm93IEVycm9yKCBcIlVua25vd24gdW5pdCBvZiB3b3JrIHRhZyAoXCIgKyB3b3JrSW5Qcm9ncmVzcy50YWcgKyBcIikuIFRoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCIgKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gdW53aW5kV29yayh3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpIHtcbiAgc3dpdGNoICh3b3JrSW5Qcm9ncmVzcy50YWcpIHtcbiAgICBjYXNlIENsYXNzQ29tcG9uZW50OlxuICAgICAge1xuICAgICAgICB2YXIgQ29tcG9uZW50ID0gd29ya0luUHJvZ3Jlc3MudHlwZTtcblxuICAgICAgICBpZiAoaXNDb250ZXh0UHJvdmlkZXIoQ29tcG9uZW50KSkge1xuICAgICAgICAgIHBvcENvbnRleHQod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGZsYWdzID0gd29ya0luUHJvZ3Jlc3MuZmxhZ3M7XG5cbiAgICAgICAgaWYgKGZsYWdzICYgU2hvdWxkQ2FwdHVyZSkge1xuICAgICAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzID0gZmxhZ3MgJiB+U2hvdWxkQ2FwdHVyZSB8IERpZENhcHR1cmU7XG5cbiAgICAgICAgICBpZiAoICh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUpIHtcbiAgICAgICAgICAgIHRyYW5zZmVyQWN0dWFsRHVyYXRpb24od29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzcztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgY2FzZSBIb3N0Um9vdDpcbiAgICAgIHtcbiAgICAgICAgcG9wSG9zdENvbnRhaW5lcih3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgIHBvcFRvcExldmVsQ29udGV4dE9iamVjdCh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgIHJlc2V0V29ya0luUHJvZ3Jlc3NWZXJzaW9ucygpO1xuICAgICAgICB2YXIgX2ZsYWdzID0gd29ya0luUHJvZ3Jlc3MuZmxhZ3M7XG5cbiAgICAgICAgaWYgKCEoKF9mbGFncyAmIERpZENhcHR1cmUpID09PSBOb0ZsYWdzKSkge1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRocm93IEVycm9yKCBcIlRoZSByb290IGZhaWxlZCB0byB1bm1vdW50IGFmdGVyIGFuIGVycm9yLiBUaGlzIGlzIGxpa2VseSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCIgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyA9IF9mbGFncyAmIH5TaG91bGRDYXB0dXJlIHwgRGlkQ2FwdHVyZTtcbiAgICAgICAgcmV0dXJuIHdvcmtJblByb2dyZXNzO1xuICAgICAgfVxuXG4gICAgY2FzZSBIb3N0Q29tcG9uZW50OlxuICAgICAge1xuICAgICAgICAvLyBUT0RPOiBwb3BIeWRyYXRpb25TdGF0ZVxuICAgICAgICBwb3BIb3N0Q29udGV4dCh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgY2FzZSBTdXNwZW5zZUNvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgcG9wU3VzcGVuc2VDb250ZXh0KHdvcmtJblByb2dyZXNzKTtcblxuICAgICAgICB2YXIgX2ZsYWdzMiA9IHdvcmtJblByb2dyZXNzLmZsYWdzO1xuXG4gICAgICAgIGlmIChfZmxhZ3MyICYgU2hvdWxkQ2FwdHVyZSkge1xuICAgICAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzID0gX2ZsYWdzMiAmIH5TaG91bGRDYXB0dXJlIHwgRGlkQ2FwdHVyZTsgLy8gQ2FwdHVyZWQgYSBzdXNwZW5zZSBlZmZlY3QuIFJlLXJlbmRlciB0aGUgYm91bmRhcnkuXG5cbiAgICAgICAgICBpZiAoICh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUpIHtcbiAgICAgICAgICAgIHRyYW5zZmVyQWN0dWFsRHVyYXRpb24od29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzcztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgY2FzZSBTdXNwZW5zZUxpc3RDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHBvcFN1c3BlbnNlQ29udGV4dCh3b3JrSW5Qcm9ncmVzcyk7IC8vIFN1c3BlbnNlTGlzdCBkb2Vzbid0IGFjdHVhbGx5IGNhdGNoIGFueXRoaW5nLiBJdCBzaG91bGQndmUgYmVlblxuICAgICAgICAvLyBjYXVnaHQgYnkgYSBuZXN0ZWQgYm91bmRhcnkuIElmIG5vdCwgaXQgc2hvdWxkIGJ1YmJsZSB0aHJvdWdoLlxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgY2FzZSBIb3N0UG9ydGFsOlxuICAgICAgcG9wSG9zdENvbnRhaW5lcih3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICByZXR1cm4gbnVsbDtcblxuICAgIGNhc2UgQ29udGV4dFByb3ZpZGVyOlxuICAgICAgcG9wUHJvdmlkZXIod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgcmV0dXJuIG51bGw7XG5cbiAgICBjYXNlIE9mZnNjcmVlbkNvbXBvbmVudDpcbiAgICBjYXNlIExlZ2FjeUhpZGRlbkNvbXBvbmVudDpcbiAgICAgIHBvcFJlbmRlckxhbmVzKHdvcmtJblByb2dyZXNzKTtcbiAgICAgIHJldHVybiBudWxsO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmZ1bmN0aW9uIHVud2luZEludGVycnVwdGVkV29yayhpbnRlcnJ1cHRlZFdvcmspIHtcbiAgc3dpdGNoIChpbnRlcnJ1cHRlZFdvcmsudGFnKSB7XG4gICAgY2FzZSBDbGFzc0NvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgdmFyIGNoaWxkQ29udGV4dFR5cGVzID0gaW50ZXJydXB0ZWRXb3JrLnR5cGUuY2hpbGRDb250ZXh0VHlwZXM7XG5cbiAgICAgICAgaWYgKGNoaWxkQ29udGV4dFR5cGVzICE9PSBudWxsICYmIGNoaWxkQ29udGV4dFR5cGVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBwb3BDb250ZXh0KGludGVycnVwdGVkV29yayk7XG4gICAgICAgIH1cblxuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgIGNhc2UgSG9zdFJvb3Q6XG4gICAgICB7XG4gICAgICAgIHBvcEhvc3RDb250YWluZXIoaW50ZXJydXB0ZWRXb3JrKTtcbiAgICAgICAgcG9wVG9wTGV2ZWxDb250ZXh0T2JqZWN0KGludGVycnVwdGVkV29yayk7XG4gICAgICAgIHJlc2V0V29ya0luUHJvZ3Jlc3NWZXJzaW9ucygpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgIGNhc2UgSG9zdENvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgcG9wSG9zdENvbnRleHQoaW50ZXJydXB0ZWRXb3JrKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICBjYXNlIEhvc3RQb3J0YWw6XG4gICAgICBwb3BIb3N0Q29udGFpbmVyKGludGVycnVwdGVkV29yayk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgU3VzcGVuc2VDb21wb25lbnQ6XG4gICAgICBwb3BTdXNwZW5zZUNvbnRleHQoaW50ZXJydXB0ZWRXb3JrKTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBTdXNwZW5zZUxpc3RDb21wb25lbnQ6XG4gICAgICBwb3BTdXNwZW5zZUNvbnRleHQoaW50ZXJydXB0ZWRXb3JrKTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBDb250ZXh0UHJvdmlkZXI6XG4gICAgICBwb3BQcm92aWRlcihpbnRlcnJ1cHRlZFdvcmspO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIE9mZnNjcmVlbkNvbXBvbmVudDpcbiAgICBjYXNlIExlZ2FjeUhpZGRlbkNvbXBvbmVudDpcbiAgICAgIHBvcFJlbmRlckxhbmVzKGludGVycnVwdGVkV29yayk7XG4gICAgICBicmVhaztcbiAgfVxufVxuXG5mdW5jdGlvbiBjcmVhdGVDYXB0dXJlZFZhbHVlKHZhbHVlLCBzb3VyY2UpIHtcbiAgLy8gSWYgdGhlIHZhbHVlIGlzIGFuIGVycm9yLCBjYWxsIHRoaXMgZnVuY3Rpb24gaW1tZWRpYXRlbHkgYWZ0ZXIgaXQgaXMgdGhyb3duXG4gIC8vIHNvIHRoZSBzdGFjayBpcyBhY2N1cmF0ZS5cbiAgcmV0dXJuIHtcbiAgICB2YWx1ZTogdmFsdWUsXG4gICAgc291cmNlOiBzb3VyY2UsXG4gICAgc3RhY2s6IGdldFN0YWNrQnlGaWJlckluRGV2QW5kUHJvZChzb3VyY2UpXG4gIH07XG59XG5cbi8vIFRoaXMgbW9kdWxlIGlzIGZvcmtlZCBpbiBkaWZmZXJlbnQgZW52aXJvbm1lbnRzLlxuLy8gQnkgZGVmYXVsdCwgcmV0dXJuIGB0cnVlYCB0byBsb2cgZXJyb3JzIHRvIHRoZSBjb25zb2xlLlxuLy8gRm9ya3MgY2FuIHJldHVybiBgZmFsc2VgIGlmIHRoaXMgaXNuJ3QgZGVzaXJhYmxlLlxuZnVuY3Rpb24gc2hvd0Vycm9yRGlhbG9nKGJvdW5kYXJ5LCBlcnJvckluZm8pIHtcbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIGxvZ0NhcHR1cmVkRXJyb3IoYm91bmRhcnksIGVycm9ySW5mbykge1xuICB0cnkge1xuICAgIHZhciBsb2dFcnJvciA9IHNob3dFcnJvckRpYWxvZyhib3VuZGFyeSwgZXJyb3JJbmZvKTsgLy8gQWxsb3cgaW5qZWN0ZWQgc2hvd0Vycm9yRGlhbG9nKCkgdG8gcHJldmVudCBkZWZhdWx0IGNvbnNvbGUuZXJyb3IgbG9nZ2luZy5cbiAgICAvLyBUaGlzIGVuYWJsZXMgcmVuZGVyZXJzIGxpa2UgUmVhY3ROYXRpdmUgdG8gYmV0dGVyIG1hbmFnZSByZWRib3ggYmVoYXZpb3IuXG5cbiAgICBpZiAobG9nRXJyb3IgPT09IGZhbHNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIGVycm9yID0gZXJyb3JJbmZvLnZhbHVlO1xuXG4gICAgaWYgKHRydWUpIHtcbiAgICAgIHZhciBzb3VyY2UgPSBlcnJvckluZm8uc291cmNlO1xuICAgICAgdmFyIHN0YWNrID0gZXJyb3JJbmZvLnN0YWNrO1xuICAgICAgdmFyIGNvbXBvbmVudFN0YWNrID0gc3RhY2sgIT09IG51bGwgPyBzdGFjayA6ICcnOyAvLyBCcm93c2VycyBzdXBwb3J0IHNpbGVuY2luZyB1bmNhdWdodCBlcnJvcnMgYnkgY2FsbGluZ1xuICAgICAgLy8gYHByZXZlbnREZWZhdWx0KClgIGluIHdpbmRvdyBgZXJyb3JgIGhhbmRsZXIuXG4gICAgICAvLyBXZSByZWNvcmQgdGhpcyBpbmZvcm1hdGlvbiBhcyBhbiBleHBhbmRvIG9uIHRoZSBlcnJvci5cblxuICAgICAgaWYgKGVycm9yICE9IG51bGwgJiYgZXJyb3IuX3N1cHByZXNzTG9nZ2luZykge1xuICAgICAgICBpZiAoYm91bmRhcnkudGFnID09PSBDbGFzc0NvbXBvbmVudCkge1xuICAgICAgICAgIC8vIFRoZSBlcnJvciBpcyByZWNvdmVyYWJsZSBhbmQgd2FzIHNpbGVuY2VkLlxuICAgICAgICAgIC8vIElnbm9yZSBpdCBhbmQgZG9uJ3QgcHJpbnQgdGhlIHN0YWNrIGFkZGVuZHVtLlxuICAgICAgICAgIC8vIFRoaXMgaXMgaGFuZHkgZm9yIHRlc3RpbmcgZXJyb3IgYm91bmRhcmllcyB3aXRob3V0IG5vaXNlLlxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSAvLyBUaGUgZXJyb3IgaXMgZmF0YWwuIFNpbmNlIHRoZSBzaWxlbmNpbmcgbWlnaHQgaGF2ZVxuICAgICAgICAvLyBiZWVuIGFjY2lkZW50YWwsIHdlJ2xsIHN1cmZhY2UgaXQgYW55d2F5LlxuICAgICAgICAvLyBIb3dldmVyLCB0aGUgYnJvd3NlciB3b3VsZCBoYXZlIHNpbGVuY2VkIHRoZSBvcmlnaW5hbCBlcnJvclxuICAgICAgICAvLyBzbyB3ZSdsbCBwcmludCBpdCBmaXJzdCwgYW5kIHRoZW4gcHJpbnQgdGhlIHN0YWNrIGFkZGVuZHVtLlxuXG5cbiAgICAgICAgY29uc29sZVsnZXJyb3InXShlcnJvcik7IC8vIERvbid0IHRyYW5zZm9ybSB0byBvdXIgd3JhcHBlclxuICAgICAgICAvLyBGb3IgYSBtb3JlIGRldGFpbGVkIGRlc2NyaXB0aW9uIG9mIHRoaXMgYmxvY2ssIHNlZTpcbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L3B1bGwvMTMzODRcbiAgICAgIH1cblxuICAgICAgdmFyIGNvbXBvbmVudE5hbWUgPSBzb3VyY2UgPyBnZXRDb21wb25lbnROYW1lKHNvdXJjZS50eXBlKSA6IG51bGw7XG4gICAgICB2YXIgY29tcG9uZW50TmFtZU1lc3NhZ2UgPSBjb21wb25lbnROYW1lID8gXCJUaGUgYWJvdmUgZXJyb3Igb2NjdXJyZWQgaW4gdGhlIDxcIiArIGNvbXBvbmVudE5hbWUgKyBcIj4gY29tcG9uZW50OlwiIDogJ1RoZSBhYm92ZSBlcnJvciBvY2N1cnJlZCBpbiBvbmUgb2YgeW91ciBSZWFjdCBjb21wb25lbnRzOic7XG4gICAgICB2YXIgZXJyb3JCb3VuZGFyeU1lc3NhZ2U7XG4gICAgICB2YXIgZXJyb3JCb3VuZGFyeU5hbWUgPSBnZXRDb21wb25lbnROYW1lKGJvdW5kYXJ5LnR5cGUpO1xuXG4gICAgICBpZiAoZXJyb3JCb3VuZGFyeU5hbWUpIHtcbiAgICAgICAgZXJyb3JCb3VuZGFyeU1lc3NhZ2UgPSBcIlJlYWN0IHdpbGwgdHJ5IHRvIHJlY3JlYXRlIHRoaXMgY29tcG9uZW50IHRyZWUgZnJvbSBzY3JhdGNoIFwiICsgKFwidXNpbmcgdGhlIGVycm9yIGJvdW5kYXJ5IHlvdSBwcm92aWRlZCwgXCIgKyBlcnJvckJvdW5kYXJ5TmFtZSArIFwiLlwiKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVycm9yQm91bmRhcnlNZXNzYWdlID0gJ0NvbnNpZGVyIGFkZGluZyBhbiBlcnJvciBib3VuZGFyeSB0byB5b3VyIHRyZWUgdG8gY3VzdG9taXplIGVycm9yIGhhbmRsaW5nIGJlaGF2aW9yLlxcbicgKyAnVmlzaXQgaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL2Vycm9yLWJvdW5kYXJpZXMgdG8gbGVhcm4gbW9yZSBhYm91dCBlcnJvciBib3VuZGFyaWVzLic7XG4gICAgICB9XG5cbiAgICAgIHZhciBjb21iaW5lZE1lc3NhZ2UgPSBjb21wb25lbnROYW1lTWVzc2FnZSArIFwiXFxuXCIgKyBjb21wb25lbnRTdGFjayArIFwiXFxuXFxuXCIgKyAoXCJcIiArIGVycm9yQm91bmRhcnlNZXNzYWdlKTsgLy8gSW4gZGV2ZWxvcG1lbnQsIHdlIHByb3ZpZGUgb3VyIG93biBtZXNzYWdlIHdpdGgganVzdCB0aGUgY29tcG9uZW50IHN0YWNrLlxuICAgICAgLy8gV2UgZG9uJ3QgaW5jbHVkZSB0aGUgb3JpZ2luYWwgZXJyb3IgbWVzc2FnZSBhbmQgSlMgc3RhY2sgYmVjYXVzZSB0aGUgYnJvd3NlclxuICAgICAgLy8gaGFzIGFscmVhZHkgcHJpbnRlZCBpdC4gRXZlbiBpZiB0aGUgYXBwbGljYXRpb24gc3dhbGxvd3MgdGhlIGVycm9yLCBpdCBpcyBzdGlsbFxuICAgICAgLy8gZGlzcGxheWVkIGJ5IHRoZSBicm93c2VyIHRoYW5rcyB0byB0aGUgREVWLW9ubHkgZmFrZSBldmVudCB0cmljayBpbiBSZWFjdEVycm9yVXRpbHMuXG5cbiAgICAgIGNvbnNvbGVbJ2Vycm9yJ10oY29tYmluZWRNZXNzYWdlKTsgLy8gRG9uJ3QgdHJhbnNmb3JtIHRvIG91ciB3cmFwcGVyXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEluIHByb2R1Y3Rpb24sIHdlIHByaW50IHRoZSBlcnJvciBkaXJlY3RseS5cbiAgICAgIC8vIFRoaXMgd2lsbCBpbmNsdWRlIHRoZSBtZXNzYWdlLCB0aGUgSlMgc3RhY2ssIGFuZCBhbnl0aGluZyB0aGUgYnJvd3NlciB3YW50cyB0byBzaG93LlxuICAgICAgLy8gV2UgcGFzcyB0aGUgZXJyb3Igb2JqZWN0IGluc3RlYWQgb2YgY3VzdG9tIG1lc3NhZ2Ugc28gdGhhdCB0aGUgYnJvd3NlciBkaXNwbGF5cyB0aGUgZXJyb3IgbmF0aXZlbHkuXG4gICAgICBjb25zb2xlWydlcnJvciddKGVycm9yKTsgLy8gRG9uJ3QgdHJhbnNmb3JtIHRvIG91ciB3cmFwcGVyXG4gICAgfVxuICB9IGNhdGNoIChlKSB7XG4gICAgLy8gVGhpcyBtZXRob2QgbXVzdCBub3QgdGhyb3csIG9yIFJlYWN0IGludGVybmFsIHN0YXRlIHdpbGwgZ2V0IG1lc3NlZCB1cC5cbiAgICAvLyBJZiBjb25zb2xlLmVycm9yIGlzIG92ZXJyaWRkZW4sIG9yIGxvZ0NhcHR1cmVkRXJyb3IoKSBzaG93cyBhIGRpYWxvZyB0aGF0IHRocm93cyxcbiAgICAvLyB3ZSB3YW50IHRvIHJlcG9ydCB0aGlzIGVycm9yIG91dHNpZGUgb2YgdGhlIG5vcm1hbCBzdGFjayBhcyBhIGxhc3QgcmVzb3J0LlxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMTMxODhcbiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgIHRocm93IGU7XG4gICAgfSk7XG4gIH1cbn1cblxudmFyIFBvc3NpYmx5V2Vha01hcCQxID0gdHlwZW9mIFdlYWtNYXAgPT09ICdmdW5jdGlvbicgPyBXZWFrTWFwIDogTWFwO1xuXG5mdW5jdGlvbiBjcmVhdGVSb290RXJyb3JVcGRhdGUoZmliZXIsIGVycm9ySW5mbywgbGFuZSkge1xuICB2YXIgdXBkYXRlID0gY3JlYXRlVXBkYXRlKE5vVGltZXN0YW1wLCBsYW5lKTsgLy8gVW5tb3VudCB0aGUgcm9vdCBieSByZW5kZXJpbmcgbnVsbC5cblxuICB1cGRhdGUudGFnID0gQ2FwdHVyZVVwZGF0ZTsgLy8gQ2F1dGlvbjogUmVhY3QgRGV2VG9vbHMgY3VycmVudGx5IGRlcGVuZHMgb24gdGhpcyBwcm9wZXJ0eVxuICAvLyBiZWluZyBjYWxsZWQgXCJlbGVtZW50XCIuXG5cbiAgdXBkYXRlLnBheWxvYWQgPSB7XG4gICAgZWxlbWVudDogbnVsbFxuICB9O1xuICB2YXIgZXJyb3IgPSBlcnJvckluZm8udmFsdWU7XG5cbiAgdXBkYXRlLmNhbGxiYWNrID0gZnVuY3Rpb24gKCkge1xuICAgIG9uVW5jYXVnaHRFcnJvcihlcnJvcik7XG4gICAgbG9nQ2FwdHVyZWRFcnJvcihmaWJlciwgZXJyb3JJbmZvKTtcbiAgfTtcblxuICByZXR1cm4gdXBkYXRlO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVDbGFzc0Vycm9yVXBkYXRlKGZpYmVyLCBlcnJvckluZm8sIGxhbmUpIHtcbiAgdmFyIHVwZGF0ZSA9IGNyZWF0ZVVwZGF0ZShOb1RpbWVzdGFtcCwgbGFuZSk7XG4gIHVwZGF0ZS50YWcgPSBDYXB0dXJlVXBkYXRlO1xuICB2YXIgZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yID0gZmliZXIudHlwZS5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3I7XG5cbiAgaWYgKHR5cGVvZiBnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IgPT09ICdmdW5jdGlvbicpIHtcbiAgICB2YXIgZXJyb3IkMSA9IGVycm9ySW5mby52YWx1ZTtcblxuICAgIHVwZGF0ZS5wYXlsb2FkID0gZnVuY3Rpb24gKCkge1xuICAgICAgbG9nQ2FwdHVyZWRFcnJvcihmaWJlciwgZXJyb3JJbmZvKTtcbiAgICAgIHJldHVybiBnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IoZXJyb3IkMSk7XG4gICAgfTtcbiAgfVxuXG4gIHZhciBpbnN0ID0gZmliZXIuc3RhdGVOb2RlO1xuXG4gIGlmIChpbnN0ICE9PSBudWxsICYmIHR5cGVvZiBpbnN0LmNvbXBvbmVudERpZENhdGNoID09PSAnZnVuY3Rpb24nKSB7XG4gICAgdXBkYXRlLmNhbGxiYWNrID0gZnVuY3Rpb24gY2FsbGJhY2soKSB7XG4gICAgICB7XG4gICAgICAgIG1hcmtGYWlsZWRFcnJvckJvdW5kYXJ5Rm9ySG90UmVsb2FkaW5nKGZpYmVyKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiBnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgLy8gVG8gcHJlc2VydmUgdGhlIHByZWV4aXN0aW5nIHJldHJ5IGJlaGF2aW9yIG9mIGVycm9yIGJvdW5kYXJpZXMsXG4gICAgICAgIC8vIHdlIGtlZXAgdHJhY2sgb2Ygd2hpY2ggb25lcyBhbHJlYWR5IGZhaWxlZCBkdXJpbmcgdGhpcyBiYXRjaC5cbiAgICAgICAgLy8gVGhpcyBnZXRzIHJlc2V0IGJlZm9yZSB3ZSB5aWVsZCBiYWNrIHRvIHRoZSBicm93c2VyLlxuICAgICAgICAvLyBUT0RPOiBXYXJuIGluIHN0cmljdCBtb2RlIGlmIGdldERlcml2ZWRTdGF0ZUZyb21FcnJvciBpc1xuICAgICAgICAvLyBub3QgZGVmaW5lZC5cbiAgICAgICAgbWFya0xlZ2FjeUVycm9yQm91bmRhcnlBc0ZhaWxlZCh0aGlzKTsgLy8gT25seSBsb2cgaGVyZSBpZiBjb21wb25lbnREaWRDYXRjaCBpcyB0aGUgb25seSBlcnJvciBib3VuZGFyeSBtZXRob2QgZGVmaW5lZFxuXG4gICAgICAgIGxvZ0NhcHR1cmVkRXJyb3IoZmliZXIsIGVycm9ySW5mbyk7XG4gICAgICB9XG5cbiAgICAgIHZhciBlcnJvciQxID0gZXJyb3JJbmZvLnZhbHVlO1xuICAgICAgdmFyIHN0YWNrID0gZXJyb3JJbmZvLnN0YWNrO1xuICAgICAgdGhpcy5jb21wb25lbnREaWRDYXRjaChlcnJvciQxLCB7XG4gICAgICAgIGNvbXBvbmVudFN0YWNrOiBzdGFjayAhPT0gbnVsbCA/IHN0YWNrIDogJydcbiAgICAgIH0pO1xuXG4gICAgICB7XG4gICAgICAgIGlmICh0eXBlb2YgZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgLy8gSWYgY29tcG9uZW50RGlkQ2F0Y2ggaXMgdGhlIG9ubHkgZXJyb3IgYm91bmRhcnkgbWV0aG9kIGRlZmluZWQsXG4gICAgICAgICAgLy8gdGhlbiBpdCBuZWVkcyB0byBjYWxsIHNldFN0YXRlIHRvIHJlY292ZXIgZnJvbSBlcnJvcnMuXG4gICAgICAgICAgLy8gSWYgbm8gc3RhdGUgdXBkYXRlIGlzIHNjaGVkdWxlZCB0aGVuIHRoZSBib3VuZGFyeSB3aWxsIHN3YWxsb3cgdGhlIGVycm9yLlxuICAgICAgICAgIGlmICghaW5jbHVkZXNTb21lTGFuZShmaWJlci5sYW5lcywgU3luY0xhbmUpKSB7XG4gICAgICAgICAgICBlcnJvcignJXM6IEVycm9yIGJvdW5kYXJpZXMgc2hvdWxkIGltcGxlbWVudCBnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IoKS4gJyArICdJbiB0aGF0IG1ldGhvZCwgcmV0dXJuIGEgc3RhdGUgdXBkYXRlIHRvIGRpc3BsYXkgYW4gZXJyb3IgbWVzc2FnZSBvciBmYWxsYmFjayBVSS4nLCBnZXRDb21wb25lbnROYW1lKGZpYmVyLnR5cGUpIHx8ICdVbmtub3duJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICB1cGRhdGUuY2FsbGJhY2sgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBtYXJrRmFpbGVkRXJyb3JCb3VuZGFyeUZvckhvdFJlbG9hZGluZyhmaWJlcik7XG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB1cGRhdGU7XG59XG5cbmZ1bmN0aW9uIGF0dGFjaFBpbmdMaXN0ZW5lcihyb290LCB3YWtlYWJsZSwgbGFuZXMpIHtcbiAgLy8gQXR0YWNoIGEgbGlzdGVuZXIgdG8gdGhlIHByb21pc2UgdG8gXCJwaW5nXCIgdGhlIHJvb3QgYW5kIHJldHJ5LiBCdXQgb25seSBpZlxuICAvLyBvbmUgZG9lcyBub3QgYWxyZWFkeSBleGlzdCBmb3IgdGhlIGxhbmVzIHdlJ3JlIGN1cnJlbnRseSByZW5kZXJpbmcgKHdoaWNoXG4gIC8vIGFjdHMgbGlrZSBhIFwidGhyZWFkIElEXCIgaGVyZSkuXG4gIHZhciBwaW5nQ2FjaGUgPSByb290LnBpbmdDYWNoZTtcbiAgdmFyIHRocmVhZElEcztcblxuICBpZiAocGluZ0NhY2hlID09PSBudWxsKSB7XG4gICAgcGluZ0NhY2hlID0gcm9vdC5waW5nQ2FjaGUgPSBuZXcgUG9zc2libHlXZWFrTWFwJDEoKTtcbiAgICB0aHJlYWRJRHMgPSBuZXcgU2V0KCk7XG4gICAgcGluZ0NhY2hlLnNldCh3YWtlYWJsZSwgdGhyZWFkSURzKTtcbiAgfSBlbHNlIHtcbiAgICB0aHJlYWRJRHMgPSBwaW5nQ2FjaGUuZ2V0KHdha2VhYmxlKTtcblxuICAgIGlmICh0aHJlYWRJRHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyZWFkSURzID0gbmV3IFNldCgpO1xuICAgICAgcGluZ0NhY2hlLnNldCh3YWtlYWJsZSwgdGhyZWFkSURzKTtcbiAgICB9XG4gIH1cblxuICBpZiAoIXRocmVhZElEcy5oYXMobGFuZXMpKSB7XG4gICAgLy8gTWVtb2l6ZSB1c2luZyB0aGUgdGhyZWFkIElEIHRvIHByZXZlbnQgcmVkdW5kYW50IGxpc3RlbmVycy5cbiAgICB0aHJlYWRJRHMuYWRkKGxhbmVzKTtcbiAgICB2YXIgcGluZyA9IHBpbmdTdXNwZW5kZWRSb290LmJpbmQobnVsbCwgcm9vdCwgd2FrZWFibGUsIGxhbmVzKTtcbiAgICB3YWtlYWJsZS50aGVuKHBpbmcsIHBpbmcpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHRocm93RXhjZXB0aW9uKHJvb3QsIHJldHVybkZpYmVyLCBzb3VyY2VGaWJlciwgdmFsdWUsIHJvb3RSZW5kZXJMYW5lcykge1xuICAvLyBUaGUgc291cmNlIGZpYmVyIGRpZCBub3QgY29tcGxldGUuXG4gIHNvdXJjZUZpYmVyLmZsYWdzIHw9IEluY29tcGxldGU7IC8vIEl0cyBlZmZlY3QgbGlzdCBpcyBubyBsb25nZXIgdmFsaWQuXG5cbiAgc291cmNlRmliZXIuZmlyc3RFZmZlY3QgPSBzb3VyY2VGaWJlci5sYXN0RWZmZWN0ID0gbnVsbDtcblxuICBpZiAodmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgdmFsdWUudGhlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIC8vIFRoaXMgaXMgYSB3YWtlYWJsZS5cbiAgICB2YXIgd2FrZWFibGUgPSB2YWx1ZTtcblxuICAgIGlmICgoc291cmNlRmliZXIubW9kZSAmIEJsb2NraW5nTW9kZSkgPT09IE5vTW9kZSkge1xuICAgICAgLy8gUmVzZXQgdGhlIG1lbW9pemVkU3RhdGUgdG8gd2hhdCBpdCB3YXMgYmVmb3JlIHdlIGF0dGVtcHRlZFxuICAgICAgLy8gdG8gcmVuZGVyIGl0LlxuICAgICAgdmFyIGN1cnJlbnRTb3VyY2UgPSBzb3VyY2VGaWJlci5hbHRlcm5hdGU7XG5cbiAgICAgIGlmIChjdXJyZW50U291cmNlKSB7XG4gICAgICAgIHNvdXJjZUZpYmVyLnVwZGF0ZVF1ZXVlID0gY3VycmVudFNvdXJjZS51cGRhdGVRdWV1ZTtcbiAgICAgICAgc291cmNlRmliZXIubWVtb2l6ZWRTdGF0ZSA9IGN1cnJlbnRTb3VyY2UubWVtb2l6ZWRTdGF0ZTtcbiAgICAgICAgc291cmNlRmliZXIubGFuZXMgPSBjdXJyZW50U291cmNlLmxhbmVzO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc291cmNlRmliZXIudXBkYXRlUXVldWUgPSBudWxsO1xuICAgICAgICBzb3VyY2VGaWJlci5tZW1vaXplZFN0YXRlID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgaGFzSW52aXNpYmxlUGFyZW50Qm91bmRhcnkgPSBoYXNTdXNwZW5zZUNvbnRleHQoc3VzcGVuc2VTdGFja0N1cnNvci5jdXJyZW50LCBJbnZpc2libGVQYXJlbnRTdXNwZW5zZUNvbnRleHQpOyAvLyBTY2hlZHVsZSB0aGUgbmVhcmVzdCBTdXNwZW5zZSB0byByZS1yZW5kZXIgdGhlIHRpbWVkIG91dCB2aWV3LlxuXG4gICAgdmFyIF93b3JrSW5Qcm9ncmVzcyA9IHJldHVybkZpYmVyO1xuXG4gICAgZG8ge1xuICAgICAgaWYgKF93b3JrSW5Qcm9ncmVzcy50YWcgPT09IFN1c3BlbnNlQ29tcG9uZW50ICYmIHNob3VsZENhcHR1cmVTdXNwZW5zZShfd29ya0luUHJvZ3Jlc3MsIGhhc0ludmlzaWJsZVBhcmVudEJvdW5kYXJ5KSkge1xuICAgICAgICAvLyBGb3VuZCB0aGUgbmVhcmVzdCBib3VuZGFyeS5cbiAgICAgICAgLy8gU3Rhc2ggdGhlIHByb21pc2Ugb24gdGhlIGJvdW5kYXJ5IGZpYmVyLiBJZiB0aGUgYm91bmRhcnkgdGltZXMgb3V0LCB3ZSdsbFxuICAgICAgICAvLyBhdHRhY2ggYW5vdGhlciBsaXN0ZW5lciB0byBmbGlwIHRoZSBib3VuZGFyeSBiYWNrIHRvIGl0cyBub3JtYWwgc3RhdGUuXG4gICAgICAgIHZhciB3YWtlYWJsZXMgPSBfd29ya0luUHJvZ3Jlc3MudXBkYXRlUXVldWU7XG5cbiAgICAgICAgaWYgKHdha2VhYmxlcyA9PT0gbnVsbCkge1xuICAgICAgICAgIHZhciB1cGRhdGVRdWV1ZSA9IG5ldyBTZXQoKTtcbiAgICAgICAgICB1cGRhdGVRdWV1ZS5hZGQod2FrZWFibGUpO1xuICAgICAgICAgIF93b3JrSW5Qcm9ncmVzcy51cGRhdGVRdWV1ZSA9IHVwZGF0ZVF1ZXVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHdha2VhYmxlcy5hZGQod2FrZWFibGUpO1xuICAgICAgICB9IC8vIElmIHRoZSBib3VuZGFyeSBpcyBvdXRzaWRlIG9mIGJsb2NraW5nIG1vZGUsIHdlIHNob3VsZCAqbm90KlxuICAgICAgICAvLyBzdXNwZW5kIHRoZSBjb21taXQuIFByZXRlbmQgYXMgaWYgdGhlIHN1c3BlbmRlZCBjb21wb25lbnQgcmVuZGVyZWRcbiAgICAgICAgLy8gbnVsbCBhbmQga2VlcCByZW5kZXJpbmcuIEluIHRoZSBjb21taXQgcGhhc2UsIHdlJ2xsIHNjaGVkdWxlIGFcbiAgICAgICAgLy8gc3Vic2VxdWVudCBzeW5jaHJvbm91cyB1cGRhdGUgdG8gcmUtcmVuZGVyIHRoZSBTdXNwZW5zZS5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gTm90ZTogSXQgZG9lc24ndCBtYXR0ZXIgd2hldGhlciB0aGUgY29tcG9uZW50IHRoYXQgc3VzcGVuZGVkIHdhc1xuICAgICAgICAvLyBpbnNpZGUgYSBibG9ja2luZyBtb2RlIHRyZWUuIElmIHRoZSBTdXNwZW5zZSBpcyBvdXRzaWRlIG9mIGl0LCB3ZVxuICAgICAgICAvLyBzaG91bGQgKm5vdCogc3VzcGVuZCB0aGUgY29tbWl0LlxuXG5cbiAgICAgICAgaWYgKChfd29ya0luUHJvZ3Jlc3MubW9kZSAmIEJsb2NraW5nTW9kZSkgPT09IE5vTW9kZSkge1xuICAgICAgICAgIF93b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBEaWRDYXB0dXJlO1xuICAgICAgICAgIHNvdXJjZUZpYmVyLmZsYWdzIHw9IEZvcmNlVXBkYXRlRm9yTGVnYWN5U3VzcGVuc2U7IC8vIFdlJ3JlIGdvaW5nIHRvIGNvbW1pdCB0aGlzIGZpYmVyIGV2ZW4gdGhvdWdoIGl0IGRpZG4ndCBjb21wbGV0ZS5cbiAgICAgICAgICAvLyBCdXQgd2Ugc2hvdWxkbid0IGNhbGwgYW55IGxpZmVjeWNsZSBtZXRob2RzIG9yIGNhbGxiYWNrcy4gUmVtb3ZlXG4gICAgICAgICAgLy8gYWxsIGxpZmVjeWNsZSBlZmZlY3QgdGFncy5cblxuICAgICAgICAgIHNvdXJjZUZpYmVyLmZsYWdzICY9IH4oTGlmZWN5Y2xlRWZmZWN0TWFzayB8IEluY29tcGxldGUpO1xuXG4gICAgICAgICAgaWYgKHNvdXJjZUZpYmVyLnRhZyA9PT0gQ2xhc3NDb21wb25lbnQpIHtcbiAgICAgICAgICAgIHZhciBjdXJyZW50U291cmNlRmliZXIgPSBzb3VyY2VGaWJlci5hbHRlcm5hdGU7XG5cbiAgICAgICAgICAgIGlmIChjdXJyZW50U291cmNlRmliZXIgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgLy8gVGhpcyBpcyBhIG5ldyBtb3VudC4gQ2hhbmdlIHRoZSB0YWcgc28gaXQncyBub3QgbWlzdGFrZW4gZm9yIGFcbiAgICAgICAgICAgICAgLy8gY29tcGxldGVkIGNsYXNzIGNvbXBvbmVudC4gRm9yIGV4YW1wbGUsIHdlIHNob3VsZCBub3QgY2FsbFxuICAgICAgICAgICAgICAvLyBjb21wb25lbnRXaWxsVW5tb3VudCBpZiBpdCBpcyBkZWxldGVkLlxuICAgICAgICAgICAgICBzb3VyY2VGaWJlci50YWcgPSBJbmNvbXBsZXRlQ2xhc3NDb21wb25lbnQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAvLyBXaGVuIHdlIHRyeSByZW5kZXJpbmcgYWdhaW4sIHdlIHNob3VsZCBub3QgcmV1c2UgdGhlIGN1cnJlbnQgZmliZXIsXG4gICAgICAgICAgICAgIC8vIHNpbmNlIGl0J3Mga25vd24gdG8gYmUgaW4gYW4gaW5jb25zaXN0ZW50IHN0YXRlLiBVc2UgYSBmb3JjZSB1cGRhdGUgdG9cbiAgICAgICAgICAgICAgLy8gcHJldmVudCBhIGJhaWwgb3V0LlxuICAgICAgICAgICAgICB2YXIgdXBkYXRlID0gY3JlYXRlVXBkYXRlKE5vVGltZXN0YW1wLCBTeW5jTGFuZSk7XG4gICAgICAgICAgICAgIHVwZGF0ZS50YWcgPSBGb3JjZVVwZGF0ZTtcbiAgICAgICAgICAgICAgZW5xdWV1ZVVwZGF0ZShzb3VyY2VGaWJlciwgdXBkYXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IC8vIFRoZSBzb3VyY2UgZmliZXIgZGlkIG5vdCBjb21wbGV0ZS4gTWFyayBpdCB3aXRoIFN5bmMgcHJpb3JpdHkgdG9cbiAgICAgICAgICAvLyBpbmRpY2F0ZSB0aGF0IGl0IHN0aWxsIGhhcyBwZW5kaW5nIHdvcmsuXG5cblxuICAgICAgICAgIHNvdXJjZUZpYmVyLmxhbmVzID0gbWVyZ2VMYW5lcyhzb3VyY2VGaWJlci5sYW5lcywgU3luY0xhbmUpOyAvLyBFeGl0IHdpdGhvdXQgc3VzcGVuZGluZy5cblxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSAvLyBDb25maXJtZWQgdGhhdCB0aGUgYm91bmRhcnkgaXMgaW4gYSBjb25jdXJyZW50IG1vZGUgdHJlZS4gQ29udGludWVcbiAgICAgICAgLy8gd2l0aCB0aGUgbm9ybWFsIHN1c3BlbmQgcGF0aC5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gQWZ0ZXIgdGhpcyB3ZSdsbCB1c2UgYSBzZXQgb2YgaGV1cmlzdGljcyB0byBkZXRlcm1pbmUgd2hldGhlciB0aGlzXG4gICAgICAgIC8vIHJlbmRlciBwYXNzIHdpbGwgcnVuIHRvIGNvbXBsZXRpb24gb3IgcmVzdGFydCBvciBcInN1c3BlbmRcIiB0aGUgY29tbWl0LlxuICAgICAgICAvLyBUaGUgYWN0dWFsIGxvZ2ljIGZvciB0aGlzIGlzIHNwcmVhZCBvdXQgaW4gZGlmZmVyZW50IHBsYWNlcy5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gVGhpcyBmaXJzdCBwcmluY2lwbGUgaXMgdGhhdCBpZiB3ZSdyZSBnb2luZyB0byBzdXNwZW5kIHdoZW4gd2UgY29tcGxldGVcbiAgICAgICAgLy8gYSByb290LCB0aGVuIHdlIHNob3VsZCBhbHNvIHJlc3RhcnQgaWYgd2UgZ2V0IGFuIHVwZGF0ZSBvciBwaW5nIHRoYXRcbiAgICAgICAgLy8gbWlnaHQgdW5zdXNwZW5kIGl0LCBhbmQgdmljZSB2ZXJzYS4gVGhlIG9ubHkgcmVhc29uIHRvIHN1c3BlbmQgaXNcbiAgICAgICAgLy8gYmVjYXVzZSB5b3UgdGhpbmsgeW91IG1pZ2h0IHdhbnQgdG8gcmVzdGFydCBiZWZvcmUgY29tbWl0dGluZy4gSG93ZXZlcixcbiAgICAgICAgLy8gaXQgZG9lc24ndCBtYWtlIHNlbnNlIHRvIHJlc3RhcnQgb25seSB3aGlsZSBpbiB0aGUgcGVyaW9kIHdlJ3JlIHN1c3BlbmRlZC5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gUmVzdGFydGluZyB0b28gYWdncmVzc2l2ZWx5IGlzIGFsc28gbm90IGdvb2QgYmVjYXVzZSBpdCBzdGFydmVzIG91dCBhbnlcbiAgICAgICAgLy8gaW50ZXJtZWRpYXRlIGxvYWRpbmcgc3RhdGUuIFNvIHdlIHVzZSBoZXVyaXN0aWNzIHRvIGRldGVybWluZSB3aGVuLlxuICAgICAgICAvLyBTdXNwZW5zZSBIZXVyaXN0aWNzXG4gICAgICAgIC8vXG4gICAgICAgIC8vIElmIG5vdGhpbmcgdGhyZXcgYSBQcm9taXNlIG9yIGFsbCB0aGUgc2FtZSBmYWxsYmFja3MgYXJlIGFscmVhZHkgc2hvd2luZyxcbiAgICAgICAgLy8gdGhlbiBkb24ndCBzdXNwZW5kL3Jlc3RhcnQuXG4gICAgICAgIC8vXG4gICAgICAgIC8vIElmIHRoaXMgaXMgYW4gaW5pdGlhbCByZW5kZXIgb2YgYSBuZXcgdHJlZSBvZiBTdXNwZW5zZSBib3VuZGFyaWVzIGFuZFxuICAgICAgICAvLyB0aG9zZSB0cmlnZ2VyIGEgZmFsbGJhY2ssIHRoZW4gZG9uJ3Qgc3VzcGVuZC9yZXN0YXJ0LiBXZSB3YW50IHRvIGVuc3VyZVxuICAgICAgICAvLyB0aGF0IHdlIGNhbiBzaG93IHRoZSBpbml0aWFsIGxvYWRpbmcgc3RhdGUgYXMgcXVpY2tseSBhcyBwb3NzaWJsZS5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gSWYgd2UgaGl0IGEgXCJEZWxheWVkXCIgY2FzZSwgc3VjaCBhcyB3aGVuIHdlJ2Qgc3dpdGNoIGZyb20gY29udGVudCBiYWNrIGludG9cbiAgICAgICAgLy8gYSBmYWxsYmFjaywgdGhlbiB3ZSBzaG91bGQgYWx3YXlzIHN1c3BlbmQvcmVzdGFydC4gVHJhbnNpdGlvbnMgYXBwbHlcbiAgICAgICAgLy8gdG8gdGhpcyBjYXNlLiBJZiBub25lIGlzIGRlZmluZWQsIEpORCBpcyB1c2VkIGluc3RlYWQuXG4gICAgICAgIC8vXG4gICAgICAgIC8vIElmIHdlJ3JlIGFscmVhZHkgc2hvd2luZyBhIGZhbGxiYWNrIGFuZCBpdCBnZXRzIFwicmV0cmllZFwiLCBhbGxvd2luZyB1cyB0byBzaG93XG4gICAgICAgIC8vIGFub3RoZXIgbGV2ZWwsIGJ1dCB0aGVyZSdzIHN0aWxsIGFuIGlubmVyIGJvdW5kYXJ5IHRoYXQgd291bGQgc2hvdyBhIGZhbGxiYWNrLFxuICAgICAgICAvLyB0aGVuIHdlIHN1c3BlbmQvcmVzdGFydCBmb3IgNTAwbXMgc2luY2UgdGhlIGxhc3QgdGltZSB3ZSBzaG93ZWQgYSBmYWxsYmFja1xuICAgICAgICAvLyBhbnl3aGVyZSBpbiB0aGUgdHJlZS4gVGhpcyBlZmZlY3RpdmVseSB0aHJvdHRsZXMgcHJvZ3Jlc3NpdmUgbG9hZGluZyBpbnRvIGFcbiAgICAgICAgLy8gY29uc2lzdGVudCB0cmFpbiBvZiBjb21taXRzLiBUaGlzIGFsc28gZ2l2ZXMgdXMgYW4gb3Bwb3J0dW5pdHkgdG8gcmVzdGFydCB0b1xuICAgICAgICAvLyBnZXQgdG8gdGhlIGNvbXBsZXRlZCBzdGF0ZSBzbGlnaHRseSBlYXJsaWVyLlxuICAgICAgICAvL1xuICAgICAgICAvLyBJZiB0aGVyZSdzIGFtYmlndWl0eSBkdWUgdG8gYmF0Y2hpbmcgaXQncyByZXNvbHZlZCBpbiBwcmVmZXJlbmNlIG9mOlxuICAgICAgICAvLyAxKSBcImRlbGF5ZWRcIiwgMikgXCJpbml0aWFsIHJlbmRlclwiLCAzKSBcInJldHJ5XCIuXG4gICAgICAgIC8vXG4gICAgICAgIC8vIFdlIHdhbnQgdG8gZW5zdXJlIHRoYXQgYSBcImJ1c3lcIiBzdGF0ZSBkb2Vzbid0IGdldCBmb3JjZSBjb21taXR0ZWQuIFdlIHdhbnQgdG9cbiAgICAgICAgLy8gZW5zdXJlIHRoYXQgbmV3IGluaXRpYWwgbG9hZGluZyBzdGF0ZXMgY2FuIGNvbW1pdCBhcyBzb29uIGFzIHBvc3NpYmxlLlxuXG5cbiAgICAgICAgYXR0YWNoUGluZ0xpc3RlbmVyKHJvb3QsIHdha2VhYmxlLCByb290UmVuZGVyTGFuZXMpO1xuICAgICAgICBfd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gU2hvdWxkQ2FwdHVyZTtcbiAgICAgICAgX3dvcmtJblByb2dyZXNzLmxhbmVzID0gcm9vdFJlbmRlckxhbmVzO1xuICAgICAgICByZXR1cm47XG4gICAgICB9IC8vIFRoaXMgYm91bmRhcnkgYWxyZWFkeSBjYXB0dXJlZCBkdXJpbmcgdGhpcyByZW5kZXIuIENvbnRpbnVlIHRvIHRoZSBuZXh0XG4gICAgICAvLyBib3VuZGFyeS5cblxuXG4gICAgICBfd29ya0luUHJvZ3Jlc3MgPSBfd29ya0luUHJvZ3Jlc3MucmV0dXJuO1xuICAgIH0gd2hpbGUgKF93b3JrSW5Qcm9ncmVzcyAhPT0gbnVsbCk7IC8vIE5vIGJvdW5kYXJ5IHdhcyBmb3VuZC4gRmFsbHRocm91Z2ggdG8gZXJyb3IgbW9kZS5cbiAgICAvLyBUT0RPOiBVc2UgaW52YXJpYW50IHNvIHRoZSBtZXNzYWdlIGlzIHN0cmlwcGVkIGluIHByb2Q/XG5cblxuICAgIHZhbHVlID0gbmV3IEVycm9yKChnZXRDb21wb25lbnROYW1lKHNvdXJjZUZpYmVyLnR5cGUpIHx8ICdBIFJlYWN0IGNvbXBvbmVudCcpICsgJyBzdXNwZW5kZWQgd2hpbGUgcmVuZGVyaW5nLCBidXQgbm8gZmFsbGJhY2sgVUkgd2FzIHNwZWNpZmllZC5cXG4nICsgJ1xcbicgKyAnQWRkIGEgPFN1c3BlbnNlIGZhbGxiYWNrPS4uLj4gY29tcG9uZW50IGhpZ2hlciBpbiB0aGUgdHJlZSB0byAnICsgJ3Byb3ZpZGUgYSBsb2FkaW5nIGluZGljYXRvciBvciBwbGFjZWhvbGRlciB0byBkaXNwbGF5LicpO1xuICB9IC8vIFdlIGRpZG4ndCBmaW5kIGEgYm91bmRhcnkgdGhhdCBjb3VsZCBoYW5kbGUgdGhpcyB0eXBlIG9mIGV4Y2VwdGlvbi4gU3RhcnRcbiAgLy8gb3ZlciBhbmQgdHJhdmVyc2UgcGFyZW50IHBhdGggYWdhaW4sIHRoaXMgdGltZSB0cmVhdGluZyB0aGUgZXhjZXB0aW9uXG4gIC8vIGFzIGFuIGVycm9yLlxuXG5cbiAgcmVuZGVyRGlkRXJyb3IoKTtcbiAgdmFsdWUgPSBjcmVhdGVDYXB0dXJlZFZhbHVlKHZhbHVlLCBzb3VyY2VGaWJlcik7XG4gIHZhciB3b3JrSW5Qcm9ncmVzcyA9IHJldHVybkZpYmVyO1xuXG4gIGRvIHtcbiAgICBzd2l0Y2ggKHdvcmtJblByb2dyZXNzLnRhZykge1xuICAgICAgY2FzZSBIb3N0Um9vdDpcbiAgICAgICAge1xuICAgICAgICAgIHZhciBfZXJyb3JJbmZvID0gdmFsdWU7XG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gU2hvdWxkQ2FwdHVyZTtcbiAgICAgICAgICB2YXIgbGFuZSA9IHBpY2tBcmJpdHJhcnlMYW5lKHJvb3RSZW5kZXJMYW5lcyk7XG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MubGFuZXMgPSBtZXJnZUxhbmVzKHdvcmtJblByb2dyZXNzLmxhbmVzLCBsYW5lKTtcblxuICAgICAgICAgIHZhciBfdXBkYXRlID0gY3JlYXRlUm9vdEVycm9yVXBkYXRlKHdvcmtJblByb2dyZXNzLCBfZXJyb3JJbmZvLCBsYW5lKTtcblxuICAgICAgICAgIGVucXVldWVDYXB0dXJlZFVwZGF0ZSh3b3JrSW5Qcm9ncmVzcywgX3VwZGF0ZSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgIGNhc2UgQ2xhc3NDb21wb25lbnQ6XG4gICAgICAgIC8vIENhcHR1cmUgYW5kIHJldHJ5XG4gICAgICAgIHZhciBlcnJvckluZm8gPSB2YWx1ZTtcbiAgICAgICAgdmFyIGN0b3IgPSB3b3JrSW5Qcm9ncmVzcy50eXBlO1xuICAgICAgICB2YXIgaW5zdGFuY2UgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG5cbiAgICAgICAgaWYgKCh3b3JrSW5Qcm9ncmVzcy5mbGFncyAmIERpZENhcHR1cmUpID09PSBOb0ZsYWdzICYmICh0eXBlb2YgY3Rvci5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IgPT09ICdmdW5jdGlvbicgfHwgaW5zdGFuY2UgIT09IG51bGwgJiYgdHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudERpZENhdGNoID09PSAnZnVuY3Rpb24nICYmICFpc0FscmVhZHlGYWlsZWRMZWdhY3lFcnJvckJvdW5kYXJ5KGluc3RhbmNlKSkpIHtcbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBTaG91bGRDYXB0dXJlO1xuXG4gICAgICAgICAgdmFyIF9sYW5lID0gcGlja0FyYml0cmFyeUxhbmUocm9vdFJlbmRlckxhbmVzKTtcblxuICAgICAgICAgIHdvcmtJblByb2dyZXNzLmxhbmVzID0gbWVyZ2VMYW5lcyh3b3JrSW5Qcm9ncmVzcy5sYW5lcywgX2xhbmUpOyAvLyBTY2hlZHVsZSB0aGUgZXJyb3IgYm91bmRhcnkgdG8gcmUtcmVuZGVyIHVzaW5nIHVwZGF0ZWQgc3RhdGVcblxuICAgICAgICAgIHZhciBfdXBkYXRlMiA9IGNyZWF0ZUNsYXNzRXJyb3JVcGRhdGUod29ya0luUHJvZ3Jlc3MsIGVycm9ySW5mbywgX2xhbmUpO1xuXG4gICAgICAgICAgZW5xdWV1ZUNhcHR1cmVkVXBkYXRlKHdvcmtJblByb2dyZXNzLCBfdXBkYXRlMik7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgd29ya0luUHJvZ3Jlc3MgPSB3b3JrSW5Qcm9ncmVzcy5yZXR1cm47XG4gIH0gd2hpbGUgKHdvcmtJblByb2dyZXNzICE9PSBudWxsKTtcbn1cblxudmFyIGRpZFdhcm5BYm91dFVuZGVmaW5lZFNuYXBzaG90QmVmb3JlVXBkYXRlID0gbnVsbDtcblxue1xuICBkaWRXYXJuQWJvdXRVbmRlZmluZWRTbmFwc2hvdEJlZm9yZVVwZGF0ZSA9IG5ldyBTZXQoKTtcbn1cblxudmFyIFBvc3NpYmx5V2Vha1NldCA9IHR5cGVvZiBXZWFrU2V0ID09PSAnZnVuY3Rpb24nID8gV2Vha1NldCA6IFNldDtcblxudmFyIGNhbGxDb21wb25lbnRXaWxsVW5tb3VudFdpdGhUaW1lciA9IGZ1bmN0aW9uIChjdXJyZW50LCBpbnN0YW5jZSkge1xuICBpbnN0YW5jZS5wcm9wcyA9IGN1cnJlbnQubWVtb2l6ZWRQcm9wcztcbiAgaW5zdGFuY2Uuc3RhdGUgPSBjdXJyZW50Lm1lbW9pemVkU3RhdGU7XG5cbiAge1xuICAgIGluc3RhbmNlLmNvbXBvbmVudFdpbGxVbm1vdW50KCk7XG4gIH1cbn07IC8vIENhcHR1cmUgZXJyb3JzIHNvIHRoZXkgZG9uJ3QgaW50ZXJydXB0IHVubW91bnRpbmcuXG5cblxuZnVuY3Rpb24gc2FmZWx5Q2FsbENvbXBvbmVudFdpbGxVbm1vdW50KGN1cnJlbnQsIGluc3RhbmNlKSB7XG4gIHtcbiAgICBpbnZva2VHdWFyZGVkQ2FsbGJhY2sobnVsbCwgY2FsbENvbXBvbmVudFdpbGxVbm1vdW50V2l0aFRpbWVyLCBudWxsLCBjdXJyZW50LCBpbnN0YW5jZSk7XG5cbiAgICBpZiAoaGFzQ2F1Z2h0RXJyb3IoKSkge1xuICAgICAgdmFyIHVubW91bnRFcnJvciA9IGNsZWFyQ2F1Z2h0RXJyb3IoKTtcbiAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGN1cnJlbnQsIHVubW91bnRFcnJvcik7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHNhZmVseURldGFjaFJlZihjdXJyZW50KSB7XG4gIHZhciByZWYgPSBjdXJyZW50LnJlZjtcblxuICBpZiAocmVmICE9PSBudWxsKSB7XG4gICAgaWYgKHR5cGVvZiByZWYgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHtcbiAgICAgICAgaW52b2tlR3VhcmRlZENhbGxiYWNrKG51bGwsIHJlZiwgbnVsbCwgbnVsbCk7XG5cbiAgICAgICAgaWYgKGhhc0NhdWdodEVycm9yKCkpIHtcbiAgICAgICAgICB2YXIgcmVmRXJyb3IgPSBjbGVhckNhdWdodEVycm9yKCk7XG4gICAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoY3VycmVudCwgcmVmRXJyb3IpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gc2FmZWx5Q2FsbERlc3Ryb3koY3VycmVudCwgZGVzdHJveSkge1xuICB7XG4gICAgaW52b2tlR3VhcmRlZENhbGxiYWNrKG51bGwsIGRlc3Ryb3ksIG51bGwpO1xuXG4gICAgaWYgKGhhc0NhdWdodEVycm9yKCkpIHtcbiAgICAgIHZhciBlcnJvciA9IGNsZWFyQ2F1Z2h0RXJyb3IoKTtcbiAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGN1cnJlbnQsIGVycm9yKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gY29tbWl0QmVmb3JlTXV0YXRpb25MaWZlQ3ljbGVzKGN1cnJlbnQsIGZpbmlzaGVkV29yaykge1xuICBzd2l0Y2ggKGZpbmlzaGVkV29yay50YWcpIHtcbiAgICBjYXNlIEZ1bmN0aW9uQ29tcG9uZW50OlxuICAgIGNhc2UgRm9yd2FyZFJlZjpcbiAgICBjYXNlIFNpbXBsZU1lbW9Db21wb25lbnQ6XG4gICAgY2FzZSBCbG9jazpcbiAgICAgIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgY2FzZSBDbGFzc0NvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgaWYgKGZpbmlzaGVkV29yay5mbGFncyAmIFNuYXBzaG90KSB7XG4gICAgICAgICAgaWYgKGN1cnJlbnQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHZhciBwcmV2UHJvcHMgPSBjdXJyZW50Lm1lbW9pemVkUHJvcHM7XG4gICAgICAgICAgICB2YXIgcHJldlN0YXRlID0gY3VycmVudC5tZW1vaXplZFN0YXRlO1xuICAgICAgICAgICAgdmFyIGluc3RhbmNlID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZTsgLy8gV2UgY291bGQgdXBkYXRlIGluc3RhbmNlIHByb3BzIGFuZCBzdGF0ZSBoZXJlLFxuICAgICAgICAgICAgLy8gYnV0IGluc3RlYWQgd2UgcmVseSBvbiB0aGVtIGJlaW5nIHNldCBkdXJpbmcgbGFzdCByZW5kZXIuXG4gICAgICAgICAgICAvLyBUT0RPOiByZXZpc2l0IHRoaXMgd2hlbiB3ZSBpbXBsZW1lbnQgcmVzdW1pbmcuXG5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWYgKGZpbmlzaGVkV29yay50eXBlID09PSBmaW5pc2hlZFdvcmsuZWxlbWVudFR5cGUgJiYgIWRpZFdhcm5BYm91dFJlYXNzaWduaW5nUHJvcHMpIHtcbiAgICAgICAgICAgICAgICBpZiAoaW5zdGFuY2UucHJvcHMgIT09IGZpbmlzaGVkV29yay5tZW1vaXplZFByb3BzKSB7XG4gICAgICAgICAgICAgICAgICBlcnJvcignRXhwZWN0ZWQgJXMgcHJvcHMgdG8gbWF0Y2ggbWVtb2l6ZWQgcHJvcHMgYmVmb3JlICcgKyAnZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUuICcgKyAnVGhpcyBtaWdodCBlaXRoZXIgYmUgYmVjYXVzZSBvZiBhIGJ1ZyBpbiBSZWFjdCwgb3IgYmVjYXVzZSAnICsgJ2EgY29tcG9uZW50IHJlYXNzaWducyBpdHMgb3duIGB0aGlzLnByb3BzYC4gJyArICdQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nLCBnZXRDb21wb25lbnROYW1lKGZpbmlzaGVkV29yay50eXBlKSB8fCAnaW5zdGFuY2UnKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoaW5zdGFuY2Uuc3RhdGUgIT09IGZpbmlzaGVkV29yay5tZW1vaXplZFN0YXRlKSB7XG4gICAgICAgICAgICAgICAgICBlcnJvcignRXhwZWN0ZWQgJXMgc3RhdGUgdG8gbWF0Y2ggbWVtb2l6ZWQgc3RhdGUgYmVmb3JlICcgKyAnZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUuICcgKyAnVGhpcyBtaWdodCBlaXRoZXIgYmUgYmVjYXVzZSBvZiBhIGJ1ZyBpbiBSZWFjdCwgb3IgYmVjYXVzZSAnICsgJ2EgY29tcG9uZW50IHJlYXNzaWducyBpdHMgb3duIGB0aGlzLnN0YXRlYC4gJyArICdQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nLCBnZXRDb21wb25lbnROYW1lKGZpbmlzaGVkV29yay50eXBlKSB8fCAnaW5zdGFuY2UnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdmFyIHNuYXBzaG90ID0gaW5zdGFuY2UuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUoZmluaXNoZWRXb3JrLmVsZW1lbnRUeXBlID09PSBmaW5pc2hlZFdvcmsudHlwZSA/IHByZXZQcm9wcyA6IHJlc29sdmVEZWZhdWx0UHJvcHMoZmluaXNoZWRXb3JrLnR5cGUsIHByZXZQcm9wcyksIHByZXZTdGF0ZSk7XG5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdmFyIGRpZFdhcm5TZXQgPSBkaWRXYXJuQWJvdXRVbmRlZmluZWRTbmFwc2hvdEJlZm9yZVVwZGF0ZTtcblxuICAgICAgICAgICAgICBpZiAoc25hcHNob3QgPT09IHVuZGVmaW5lZCAmJiAhZGlkV2FyblNldC5oYXMoZmluaXNoZWRXb3JrLnR5cGUpKSB7XG4gICAgICAgICAgICAgICAgZGlkV2FyblNldC5hZGQoZmluaXNoZWRXb3JrLnR5cGUpO1xuXG4gICAgICAgICAgICAgICAgZXJyb3IoJyVzLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlKCk6IEEgc25hcHNob3QgdmFsdWUgKG9yIG51bGwpICcgKyAnbXVzdCBiZSByZXR1cm5lZC4gWW91IGhhdmUgcmV0dXJuZWQgdW5kZWZpbmVkLicsIGdldENvbXBvbmVudE5hbWUoZmluaXNoZWRXb3JrLnR5cGUpKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpbnN0YW5jZS5fX3JlYWN0SW50ZXJuYWxTbmFwc2hvdEJlZm9yZVVwZGF0ZSA9IHNuYXBzaG90O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgIGNhc2UgSG9zdFJvb3Q6XG4gICAgICB7XG4gICAgICAgIHtcbiAgICAgICAgICBpZiAoZmluaXNoZWRXb3JrLmZsYWdzICYgU25hcHNob3QpIHtcbiAgICAgICAgICAgIHZhciByb290ID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZTtcbiAgICAgICAgICAgIGNsZWFyQ29udGFpbmVyKHJvb3QuY29udGFpbmVySW5mbyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgY2FzZSBIb3N0Q29tcG9uZW50OlxuICAgIGNhc2UgSG9zdFRleHQ6XG4gICAgY2FzZSBIb3N0UG9ydGFsOlxuICAgIGNhc2UgSW5jb21wbGV0ZUNsYXNzQ29tcG9uZW50OlxuICAgICAgLy8gTm90aGluZyB0byBkbyBmb3IgdGhlc2UgY29tcG9uZW50IHR5cGVzXG4gICAgICByZXR1cm47XG4gIH1cblxuICB7XG4gICAge1xuICAgICAgdGhyb3cgRXJyb3IoIFwiVGhpcyB1bml0IG9mIHdvcmsgdGFnIHNob3VsZCBub3QgaGF2ZSBzaWRlLWVmZmVjdHMuIFRoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCIgKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gY29tbWl0SG9va0VmZmVjdExpc3RVbm1vdW50KHRhZywgZmluaXNoZWRXb3JrKSB7XG4gIHZhciB1cGRhdGVRdWV1ZSA9IGZpbmlzaGVkV29yay51cGRhdGVRdWV1ZTtcbiAgdmFyIGxhc3RFZmZlY3QgPSB1cGRhdGVRdWV1ZSAhPT0gbnVsbCA/IHVwZGF0ZVF1ZXVlLmxhc3RFZmZlY3QgOiBudWxsO1xuXG4gIGlmIChsYXN0RWZmZWN0ICE9PSBudWxsKSB7XG4gICAgdmFyIGZpcnN0RWZmZWN0ID0gbGFzdEVmZmVjdC5uZXh0O1xuICAgIHZhciBlZmZlY3QgPSBmaXJzdEVmZmVjdDtcblxuICAgIGRvIHtcbiAgICAgIGlmICgoZWZmZWN0LnRhZyAmIHRhZykgPT09IHRhZykge1xuICAgICAgICAvLyBVbm1vdW50XG4gICAgICAgIHZhciBkZXN0cm95ID0gZWZmZWN0LmRlc3Ryb3k7XG4gICAgICAgIGVmZmVjdC5kZXN0cm95ID0gdW5kZWZpbmVkO1xuXG4gICAgICAgIGlmIChkZXN0cm95ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBkZXN0cm95KCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZWZmZWN0ID0gZWZmZWN0Lm5leHQ7XG4gICAgfSB3aGlsZSAoZWZmZWN0ICE9PSBmaXJzdEVmZmVjdCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gY29tbWl0SG9va0VmZmVjdExpc3RNb3VudCh0YWcsIGZpbmlzaGVkV29yaykge1xuICB2YXIgdXBkYXRlUXVldWUgPSBmaW5pc2hlZFdvcmsudXBkYXRlUXVldWU7XG4gIHZhciBsYXN0RWZmZWN0ID0gdXBkYXRlUXVldWUgIT09IG51bGwgPyB1cGRhdGVRdWV1ZS5sYXN0RWZmZWN0IDogbnVsbDtcblxuICBpZiAobGFzdEVmZmVjdCAhPT0gbnVsbCkge1xuICAgIHZhciBmaXJzdEVmZmVjdCA9IGxhc3RFZmZlY3QubmV4dDtcbiAgICB2YXIgZWZmZWN0ID0gZmlyc3RFZmZlY3Q7XG5cbiAgICBkbyB7XG4gICAgICBpZiAoKGVmZmVjdC50YWcgJiB0YWcpID09PSB0YWcpIHtcbiAgICAgICAgLy8gTW91bnRcbiAgICAgICAgdmFyIGNyZWF0ZSA9IGVmZmVjdC5jcmVhdGU7XG4gICAgICAgIGVmZmVjdC5kZXN0cm95ID0gY3JlYXRlKCk7XG5cbiAgICAgICAge1xuICAgICAgICAgIHZhciBkZXN0cm95ID0gZWZmZWN0LmRlc3Ryb3k7XG5cbiAgICAgICAgICBpZiAoZGVzdHJveSAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiBkZXN0cm95ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB2YXIgYWRkZW5kdW0gPSB2b2lkIDA7XG5cbiAgICAgICAgICAgIGlmIChkZXN0cm95ID09PSBudWxsKSB7XG4gICAgICAgICAgICAgIGFkZGVuZHVtID0gJyBZb3UgcmV0dXJuZWQgbnVsbC4gSWYgeW91ciBlZmZlY3QgZG9lcyBub3QgcmVxdWlyZSBjbGVhbiAnICsgJ3VwLCByZXR1cm4gdW5kZWZpbmVkIChvciBub3RoaW5nKS4nO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZGVzdHJveS50aGVuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgIGFkZGVuZHVtID0gJ1xcblxcbkl0IGxvb2tzIGxpa2UgeW91IHdyb3RlIHVzZUVmZmVjdChhc3luYyAoKSA9PiAuLi4pIG9yIHJldHVybmVkIGEgUHJvbWlzZS4gJyArICdJbnN0ZWFkLCB3cml0ZSB0aGUgYXN5bmMgZnVuY3Rpb24gaW5zaWRlIHlvdXIgZWZmZWN0ICcgKyAnYW5kIGNhbGwgaXQgaW1tZWRpYXRlbHk6XFxuXFxuJyArICd1c2VFZmZlY3QoKCkgPT4ge1xcbicgKyAnICBhc3luYyBmdW5jdGlvbiBmZXRjaERhdGEoKSB7XFxuJyArICcgICAgLy8gWW91IGNhbiBhd2FpdCBoZXJlXFxuJyArICcgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBNeUFQSS5nZXREYXRhKHNvbWVJZCk7XFxuJyArICcgICAgLy8gLi4uXFxuJyArICcgIH1cXG4nICsgJyAgZmV0Y2hEYXRhKCk7XFxuJyArIFwifSwgW3NvbWVJZF0pOyAvLyBPciBbXSBpZiBlZmZlY3QgZG9lc24ndCBuZWVkIHByb3BzIG9yIHN0YXRlXFxuXFxuXCIgKyAnTGVhcm4gbW9yZSBhYm91dCBkYXRhIGZldGNoaW5nIHdpdGggSG9va3M6IGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9ob29rcy1kYXRhLWZldGNoaW5nJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGFkZGVuZHVtID0gJyBZb3UgcmV0dXJuZWQ6ICcgKyBkZXN0cm95O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBlcnJvcignQW4gZWZmZWN0IGZ1bmN0aW9uIG11c3Qgbm90IHJldHVybiBhbnl0aGluZyBiZXNpZGVzIGEgZnVuY3Rpb24sICcgKyAnd2hpY2ggaXMgdXNlZCBmb3IgY2xlYW4tdXAuJXMnLCBhZGRlbmR1bSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGVmZmVjdCA9IGVmZmVjdC5uZXh0O1xuICAgIH0gd2hpbGUgKGVmZmVjdCAhPT0gZmlyc3RFZmZlY3QpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHNjaGVkdWxlUGFzc2l2ZUVmZmVjdHMoZmluaXNoZWRXb3JrKSB7XG4gIHZhciB1cGRhdGVRdWV1ZSA9IGZpbmlzaGVkV29yay51cGRhdGVRdWV1ZTtcbiAgdmFyIGxhc3RFZmZlY3QgPSB1cGRhdGVRdWV1ZSAhPT0gbnVsbCA/IHVwZGF0ZVF1ZXVlLmxhc3RFZmZlY3QgOiBudWxsO1xuXG4gIGlmIChsYXN0RWZmZWN0ICE9PSBudWxsKSB7XG4gICAgdmFyIGZpcnN0RWZmZWN0ID0gbGFzdEVmZmVjdC5uZXh0O1xuICAgIHZhciBlZmZlY3QgPSBmaXJzdEVmZmVjdDtcblxuICAgIGRvIHtcbiAgICAgIHZhciBfZWZmZWN0ID0gZWZmZWN0LFxuICAgICAgICAgIG5leHQgPSBfZWZmZWN0Lm5leHQsXG4gICAgICAgICAgdGFnID0gX2VmZmVjdC50YWc7XG5cbiAgICAgIGlmICgodGFnICYgUGFzc2l2ZSQxKSAhPT0gTm9GbGFncyQxICYmICh0YWcgJiBIYXNFZmZlY3QpICE9PSBOb0ZsYWdzJDEpIHtcbiAgICAgICAgZW5xdWV1ZVBlbmRpbmdQYXNzaXZlSG9va0VmZmVjdFVubW91bnQoZmluaXNoZWRXb3JrLCBlZmZlY3QpO1xuICAgICAgICBlbnF1ZXVlUGVuZGluZ1Bhc3NpdmVIb29rRWZmZWN0TW91bnQoZmluaXNoZWRXb3JrLCBlZmZlY3QpO1xuICAgICAgfVxuXG4gICAgICBlZmZlY3QgPSBuZXh0O1xuICAgIH0gd2hpbGUgKGVmZmVjdCAhPT0gZmlyc3RFZmZlY3QpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNvbW1pdExpZmVDeWNsZXMoZmluaXNoZWRSb290LCBjdXJyZW50LCBmaW5pc2hlZFdvcmssIGNvbW1pdHRlZExhbmVzKSB7XG4gIHN3aXRjaCAoZmluaXNoZWRXb3JrLnRhZykge1xuICAgIGNhc2UgRnVuY3Rpb25Db21wb25lbnQ6XG4gICAgY2FzZSBGb3J3YXJkUmVmOlxuICAgIGNhc2UgU2ltcGxlTWVtb0NvbXBvbmVudDpcbiAgICBjYXNlIEJsb2NrOlxuICAgICAge1xuICAgICAgICAvLyBBdCB0aGlzIHBvaW50IGxheW91dCBlZmZlY3RzIGhhdmUgYWxyZWFkeSBiZWVuIGRlc3Ryb3llZCAoZHVyaW5nIG11dGF0aW9uIHBoYXNlKS5cbiAgICAgICAgLy8gVGhpcyBpcyBkb25lIHRvIHByZXZlbnQgc2libGluZyBjb21wb25lbnQgZWZmZWN0cyBmcm9tIGludGVyZmVyaW5nIHdpdGggZWFjaCBvdGhlcixcbiAgICAgICAgLy8gZS5nLiBhIGRlc3Ryb3kgZnVuY3Rpb24gaW4gb25lIGNvbXBvbmVudCBzaG91bGQgbmV2ZXIgb3ZlcnJpZGUgYSByZWYgc2V0XG4gICAgICAgIC8vIGJ5IGEgY3JlYXRlIGZ1bmN0aW9uIGluIGFub3RoZXIgY29tcG9uZW50IGR1cmluZyB0aGUgc2FtZSBjb21taXQuXG4gICAgICAgIHtcbiAgICAgICAgICBjb21taXRIb29rRWZmZWN0TGlzdE1vdW50KExheW91dCB8IEhhc0VmZmVjdCwgZmluaXNoZWRXb3JrKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNjaGVkdWxlUGFzc2l2ZUVmZmVjdHMoZmluaXNoZWRXb3JrKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgY2FzZSBDbGFzc0NvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgdmFyIGluc3RhbmNlID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZTtcblxuICAgICAgICBpZiAoZmluaXNoZWRXb3JrLmZsYWdzICYgVXBkYXRlKSB7XG4gICAgICAgICAgaWYgKGN1cnJlbnQgPT09IG51bGwpIHtcbiAgICAgICAgICAgIC8vIFdlIGNvdWxkIHVwZGF0ZSBpbnN0YW5jZSBwcm9wcyBhbmQgc3RhdGUgaGVyZSxcbiAgICAgICAgICAgIC8vIGJ1dCBpbnN0ZWFkIHdlIHJlbHkgb24gdGhlbSBiZWluZyBzZXQgZHVyaW5nIGxhc3QgcmVuZGVyLlxuICAgICAgICAgICAgLy8gVE9ETzogcmV2aXNpdCB0aGlzIHdoZW4gd2UgaW1wbGVtZW50IHJlc3VtaW5nLlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpZiAoZmluaXNoZWRXb3JrLnR5cGUgPT09IGZpbmlzaGVkV29yay5lbGVtZW50VHlwZSAmJiAhZGlkV2FybkFib3V0UmVhc3NpZ25pbmdQcm9wcykge1xuICAgICAgICAgICAgICAgIGlmIChpbnN0YW5jZS5wcm9wcyAhPT0gZmluaXNoZWRXb3JrLm1lbW9pemVkUHJvcHMpIHtcbiAgICAgICAgICAgICAgICAgIGVycm9yKCdFeHBlY3RlZCAlcyBwcm9wcyB0byBtYXRjaCBtZW1vaXplZCBwcm9wcyBiZWZvcmUgJyArICdjb21wb25lbnREaWRNb3VudC4gJyArICdUaGlzIG1pZ2h0IGVpdGhlciBiZSBiZWNhdXNlIG9mIGEgYnVnIGluIFJlYWN0LCBvciBiZWNhdXNlICcgKyAnYSBjb21wb25lbnQgcmVhc3NpZ25zIGl0cyBvd24gYHRoaXMucHJvcHNgLiAnICsgJ1BsZWFzZSBmaWxlIGFuIGlzc3VlLicsIGdldENvbXBvbmVudE5hbWUoZmluaXNoZWRXb3JrLnR5cGUpIHx8ICdpbnN0YW5jZScpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChpbnN0YW5jZS5zdGF0ZSAhPT0gZmluaXNoZWRXb3JrLm1lbW9pemVkU3RhdGUpIHtcbiAgICAgICAgICAgICAgICAgIGVycm9yKCdFeHBlY3RlZCAlcyBzdGF0ZSB0byBtYXRjaCBtZW1vaXplZCBzdGF0ZSBiZWZvcmUgJyArICdjb21wb25lbnREaWRNb3VudC4gJyArICdUaGlzIG1pZ2h0IGVpdGhlciBiZSBiZWNhdXNlIG9mIGEgYnVnIGluIFJlYWN0LCBvciBiZWNhdXNlICcgKyAnYSBjb21wb25lbnQgcmVhc3NpZ25zIGl0cyBvd24gYHRoaXMuc3RhdGVgLiAnICsgJ1BsZWFzZSBmaWxlIGFuIGlzc3VlLicsIGdldENvbXBvbmVudE5hbWUoZmluaXNoZWRXb3JrLnR5cGUpIHx8ICdpbnN0YW5jZScpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGluc3RhbmNlLmNvbXBvbmVudERpZE1vdW50KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciBwcmV2UHJvcHMgPSBmaW5pc2hlZFdvcmsuZWxlbWVudFR5cGUgPT09IGZpbmlzaGVkV29yay50eXBlID8gY3VycmVudC5tZW1vaXplZFByb3BzIDogcmVzb2x2ZURlZmF1bHRQcm9wcyhmaW5pc2hlZFdvcmsudHlwZSwgY3VycmVudC5tZW1vaXplZFByb3BzKTtcbiAgICAgICAgICAgIHZhciBwcmV2U3RhdGUgPSBjdXJyZW50Lm1lbW9pemVkU3RhdGU7IC8vIFdlIGNvdWxkIHVwZGF0ZSBpbnN0YW5jZSBwcm9wcyBhbmQgc3RhdGUgaGVyZSxcbiAgICAgICAgICAgIC8vIGJ1dCBpbnN0ZWFkIHdlIHJlbHkgb24gdGhlbSBiZWluZyBzZXQgZHVyaW5nIGxhc3QgcmVuZGVyLlxuICAgICAgICAgICAgLy8gVE9ETzogcmV2aXNpdCB0aGlzIHdoZW4gd2UgaW1wbGVtZW50IHJlc3VtaW5nLlxuXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGlmIChmaW5pc2hlZFdvcmsudHlwZSA9PT0gZmluaXNoZWRXb3JrLmVsZW1lbnRUeXBlICYmICFkaWRXYXJuQWJvdXRSZWFzc2lnbmluZ1Byb3BzKSB7XG4gICAgICAgICAgICAgICAgaWYgKGluc3RhbmNlLnByb3BzICE9PSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRQcm9wcykge1xuICAgICAgICAgICAgICAgICAgZXJyb3IoJ0V4cGVjdGVkICVzIHByb3BzIHRvIG1hdGNoIG1lbW9pemVkIHByb3BzIGJlZm9yZSAnICsgJ2NvbXBvbmVudERpZFVwZGF0ZS4gJyArICdUaGlzIG1pZ2h0IGVpdGhlciBiZSBiZWNhdXNlIG9mIGEgYnVnIGluIFJlYWN0LCBvciBiZWNhdXNlICcgKyAnYSBjb21wb25lbnQgcmVhc3NpZ25zIGl0cyBvd24gYHRoaXMucHJvcHNgLiAnICsgJ1BsZWFzZSBmaWxlIGFuIGlzc3VlLicsIGdldENvbXBvbmVudE5hbWUoZmluaXNoZWRXb3JrLnR5cGUpIHx8ICdpbnN0YW5jZScpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChpbnN0YW5jZS5zdGF0ZSAhPT0gZmluaXNoZWRXb3JrLm1lbW9pemVkU3RhdGUpIHtcbiAgICAgICAgICAgICAgICAgIGVycm9yKCdFeHBlY3RlZCAlcyBzdGF0ZSB0byBtYXRjaCBtZW1vaXplZCBzdGF0ZSBiZWZvcmUgJyArICdjb21wb25lbnREaWRVcGRhdGUuICcgKyAnVGhpcyBtaWdodCBlaXRoZXIgYmUgYmVjYXVzZSBvZiBhIGJ1ZyBpbiBSZWFjdCwgb3IgYmVjYXVzZSAnICsgJ2EgY29tcG9uZW50IHJlYXNzaWducyBpdHMgb3duIGB0aGlzLnN0YXRlYC4gJyArICdQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nLCBnZXRDb21wb25lbnROYW1lKGZpbmlzaGVkV29yay50eXBlKSB8fCAnaW5zdGFuY2UnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpbnN0YW5jZS5jb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzLCBwcmV2U3RhdGUsIGluc3RhbmNlLl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90QmVmb3JlVXBkYXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gLy8gVE9ETzogSSB0aGluayB0aGlzIGlzIG5vdyBhbHdheXMgbm9uLW51bGwgYnkgdGhlIHRpbWUgaXQgcmVhY2hlcyB0aGVcbiAgICAgICAgLy8gY29tbWl0IHBoYXNlLiBDb25zaWRlciByZW1vdmluZyB0aGUgdHlwZSBjaGVjay5cblxuXG4gICAgICAgIHZhciB1cGRhdGVRdWV1ZSA9IGZpbmlzaGVkV29yay51cGRhdGVRdWV1ZTtcblxuICAgICAgICBpZiAodXBkYXRlUXVldWUgIT09IG51bGwpIHtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZiAoZmluaXNoZWRXb3JrLnR5cGUgPT09IGZpbmlzaGVkV29yay5lbGVtZW50VHlwZSAmJiAhZGlkV2FybkFib3V0UmVhc3NpZ25pbmdQcm9wcykge1xuICAgICAgICAgICAgICBpZiAoaW5zdGFuY2UucHJvcHMgIT09IGZpbmlzaGVkV29yay5tZW1vaXplZFByb3BzKSB7XG4gICAgICAgICAgICAgICAgZXJyb3IoJ0V4cGVjdGVkICVzIHByb3BzIHRvIG1hdGNoIG1lbW9pemVkIHByb3BzIGJlZm9yZSAnICsgJ3Byb2Nlc3NpbmcgdGhlIHVwZGF0ZSBxdWV1ZS4gJyArICdUaGlzIG1pZ2h0IGVpdGhlciBiZSBiZWNhdXNlIG9mIGEgYnVnIGluIFJlYWN0LCBvciBiZWNhdXNlICcgKyAnYSBjb21wb25lbnQgcmVhc3NpZ25zIGl0cyBvd24gYHRoaXMucHJvcHNgLiAnICsgJ1BsZWFzZSBmaWxlIGFuIGlzc3VlLicsIGdldENvbXBvbmVudE5hbWUoZmluaXNoZWRXb3JrLnR5cGUpIHx8ICdpbnN0YW5jZScpO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgaWYgKGluc3RhbmNlLnN0YXRlICE9PSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRTdGF0ZSkge1xuICAgICAgICAgICAgICAgIGVycm9yKCdFeHBlY3RlZCAlcyBzdGF0ZSB0byBtYXRjaCBtZW1vaXplZCBzdGF0ZSBiZWZvcmUgJyArICdwcm9jZXNzaW5nIHRoZSB1cGRhdGUgcXVldWUuICcgKyAnVGhpcyBtaWdodCBlaXRoZXIgYmUgYmVjYXVzZSBvZiBhIGJ1ZyBpbiBSZWFjdCwgb3IgYmVjYXVzZSAnICsgJ2EgY29tcG9uZW50IHJlYXNzaWducyBpdHMgb3duIGB0aGlzLnN0YXRlYC4gJyArICdQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nLCBnZXRDb21wb25lbnROYW1lKGZpbmlzaGVkV29yay50eXBlKSB8fCAnaW5zdGFuY2UnKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gLy8gV2UgY291bGQgdXBkYXRlIGluc3RhbmNlIHByb3BzIGFuZCBzdGF0ZSBoZXJlLFxuICAgICAgICAgIC8vIGJ1dCBpbnN0ZWFkIHdlIHJlbHkgb24gdGhlbSBiZWluZyBzZXQgZHVyaW5nIGxhc3QgcmVuZGVyLlxuICAgICAgICAgIC8vIFRPRE86IHJldmlzaXQgdGhpcyB3aGVuIHdlIGltcGxlbWVudCByZXN1bWluZy5cblxuXG4gICAgICAgICAgY29tbWl0VXBkYXRlUXVldWUoZmluaXNoZWRXb3JrLCB1cGRhdGVRdWV1ZSwgaW5zdGFuY2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgY2FzZSBIb3N0Um9vdDpcbiAgICAgIHtcbiAgICAgICAgLy8gVE9ETzogSSB0aGluayB0aGlzIGlzIG5vdyBhbHdheXMgbm9uLW51bGwgYnkgdGhlIHRpbWUgaXQgcmVhY2hlcyB0aGVcbiAgICAgICAgLy8gY29tbWl0IHBoYXNlLiBDb25zaWRlciByZW1vdmluZyB0aGUgdHlwZSBjaGVjay5cbiAgICAgICAgdmFyIF91cGRhdGVRdWV1ZSA9IGZpbmlzaGVkV29yay51cGRhdGVRdWV1ZTtcblxuICAgICAgICBpZiAoX3VwZGF0ZVF1ZXVlICE9PSBudWxsKSB7XG4gICAgICAgICAgdmFyIF9pbnN0YW5jZSA9IG51bGw7XG5cbiAgICAgICAgICBpZiAoZmluaXNoZWRXb3JrLmNoaWxkICE9PSBudWxsKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKGZpbmlzaGVkV29yay5jaGlsZC50YWcpIHtcbiAgICAgICAgICAgICAgY2FzZSBIb3N0Q29tcG9uZW50OlxuICAgICAgICAgICAgICAgIF9pbnN0YW5jZSA9IGdldFB1YmxpY0luc3RhbmNlKGZpbmlzaGVkV29yay5jaGlsZC5zdGF0ZU5vZGUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgIGNhc2UgQ2xhc3NDb21wb25lbnQ6XG4gICAgICAgICAgICAgICAgX2luc3RhbmNlID0gZmluaXNoZWRXb3JrLmNoaWxkLnN0YXRlTm9kZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb21taXRVcGRhdGVRdWV1ZShmaW5pc2hlZFdvcmssIF91cGRhdGVRdWV1ZSwgX2luc3RhbmNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgIGNhc2UgSG9zdENvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgdmFyIF9pbnN0YW5jZTIgPSBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlOyAvLyBSZW5kZXJlcnMgbWF5IHNjaGVkdWxlIHdvcmsgdG8gYmUgZG9uZSBhZnRlciBob3N0IGNvbXBvbmVudHMgYXJlIG1vdW50ZWRcbiAgICAgICAgLy8gKGVnIERPTSByZW5kZXJlciBtYXkgc2NoZWR1bGUgYXV0by1mb2N1cyBmb3IgaW5wdXRzIGFuZCBmb3JtIGNvbnRyb2xzKS5cbiAgICAgICAgLy8gVGhlc2UgZWZmZWN0cyBzaG91bGQgb25seSBiZSBjb21taXR0ZWQgd2hlbiBjb21wb25lbnRzIGFyZSBmaXJzdCBtb3VudGVkLFxuICAgICAgICAvLyBha2Egd2hlbiB0aGVyZSBpcyBubyBjdXJyZW50L2FsdGVybmF0ZS5cblxuICAgICAgICBpZiAoY3VycmVudCA9PT0gbnVsbCAmJiBmaW5pc2hlZFdvcmsuZmxhZ3MgJiBVcGRhdGUpIHtcbiAgICAgICAgICB2YXIgdHlwZSA9IGZpbmlzaGVkV29yay50eXBlO1xuICAgICAgICAgIHZhciBwcm9wcyA9IGZpbmlzaGVkV29yay5tZW1vaXplZFByb3BzO1xuICAgICAgICAgIGNvbW1pdE1vdW50KF9pbnN0YW5jZTIsIHR5cGUsIHByb3BzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgIGNhc2UgSG9zdFRleHQ6XG4gICAgICB7XG4gICAgICAgIC8vIFdlIGhhdmUgbm8gbGlmZS1jeWNsZXMgYXNzb2NpYXRlZCB3aXRoIHRleHQuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgIGNhc2UgSG9zdFBvcnRhbDpcbiAgICAgIHtcbiAgICAgICAgLy8gV2UgaGF2ZSBubyBsaWZlLWN5Y2xlcyBhc3NvY2lhdGVkIHdpdGggcG9ydGFscy5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgY2FzZSBQcm9maWxlcjpcbiAgICAgIHtcbiAgICAgICAge1xuICAgICAgICAgIHZhciBfZmluaXNoZWRXb3JrJG1lbW9pemUyID0gZmluaXNoZWRXb3JrLm1lbW9pemVkUHJvcHMsXG4gICAgICAgICAgICAgIG9uQ29tbWl0ID0gX2ZpbmlzaGVkV29yayRtZW1vaXplMi5vbkNvbW1pdCxcbiAgICAgICAgICAgICAgb25SZW5kZXIgPSBfZmluaXNoZWRXb3JrJG1lbW9pemUyLm9uUmVuZGVyO1xuICAgICAgICAgIHZhciBlZmZlY3REdXJhdGlvbiA9IGZpbmlzaGVkV29yay5zdGF0ZU5vZGUuZWZmZWN0RHVyYXRpb247XG4gICAgICAgICAgdmFyIGNvbW1pdFRpbWUgPSBnZXRDb21taXRUaW1lKCk7XG5cbiAgICAgICAgICBpZiAodHlwZW9mIG9uUmVuZGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG9uUmVuZGVyKGZpbmlzaGVkV29yay5tZW1vaXplZFByb3BzLmlkLCBjdXJyZW50ID09PSBudWxsID8gJ21vdW50JyA6ICd1cGRhdGUnLCBmaW5pc2hlZFdvcmsuYWN0dWFsRHVyYXRpb24sIGZpbmlzaGVkV29yay50cmVlQmFzZUR1cmF0aW9uLCBmaW5pc2hlZFdvcmsuYWN0dWFsU3RhcnRUaW1lLCBjb21taXRUaW1lLCBmaW5pc2hlZFJvb3QubWVtb2l6ZWRJbnRlcmFjdGlvbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgIGNhc2UgU3VzcGVuc2VDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIGNvbW1pdFN1c3BlbnNlSHlkcmF0aW9uQ2FsbGJhY2tzKGZpbmlzaGVkUm9vdCwgZmluaXNoZWRXb3JrKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgY2FzZSBTdXNwZW5zZUxpc3RDb21wb25lbnQ6XG4gICAgY2FzZSBJbmNvbXBsZXRlQ2xhc3NDb21wb25lbnQ6XG4gICAgY2FzZSBGdW5kYW1lbnRhbENvbXBvbmVudDpcbiAgICBjYXNlIFNjb3BlQ29tcG9uZW50OlxuICAgIGNhc2UgT2Zmc2NyZWVuQ29tcG9uZW50OlxuICAgIGNhc2UgTGVnYWN5SGlkZGVuQ29tcG9uZW50OlxuICAgICAgcmV0dXJuO1xuICB9XG5cbiAge1xuICAgIHtcbiAgICAgIHRocm93IEVycm9yKCBcIlRoaXMgdW5pdCBvZiB3b3JrIHRhZyBzaG91bGQgbm90IGhhdmUgc2lkZS1lZmZlY3RzLiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLlwiICk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGhpZGVPclVuaGlkZUFsbENoaWxkcmVuKGZpbmlzaGVkV29yaywgaXNIaWRkZW4pIHtcbiAge1xuICAgIC8vIFdlIG9ubHkgaGF2ZSB0aGUgdG9wIEZpYmVyIHRoYXQgd2FzIGluc2VydGVkIGJ1dCB3ZSBuZWVkIHRvIHJlY3Vyc2UgZG93biBpdHNcbiAgICAvLyBjaGlsZHJlbiB0byBmaW5kIGFsbCB0aGUgdGVybWluYWwgbm9kZXMuXG4gICAgdmFyIG5vZGUgPSBmaW5pc2hlZFdvcms7XG5cbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgaWYgKG5vZGUudGFnID09PSBIb3N0Q29tcG9uZW50KSB7XG4gICAgICAgIHZhciBpbnN0YW5jZSA9IG5vZGUuc3RhdGVOb2RlO1xuXG4gICAgICAgIGlmIChpc0hpZGRlbikge1xuICAgICAgICAgIGhpZGVJbnN0YW5jZShpbnN0YW5jZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdW5oaWRlSW5zdGFuY2Uobm9kZS5zdGF0ZU5vZGUsIG5vZGUubWVtb2l6ZWRQcm9wcyk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAobm9kZS50YWcgPT09IEhvc3RUZXh0KSB7XG4gICAgICAgIHZhciBfaW5zdGFuY2UzID0gbm9kZS5zdGF0ZU5vZGU7XG5cbiAgICAgICAgaWYgKGlzSGlkZGVuKSB7XG4gICAgICAgICAgaGlkZVRleHRJbnN0YW5jZShfaW5zdGFuY2UzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB1bmhpZGVUZXh0SW5zdGFuY2UoX2luc3RhbmNlMywgbm9kZS5tZW1vaXplZFByb3BzKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICgobm9kZS50YWcgPT09IE9mZnNjcmVlbkNvbXBvbmVudCB8fCBub2RlLnRhZyA9PT0gTGVnYWN5SGlkZGVuQ29tcG9uZW50KSAmJiBub2RlLm1lbW9pemVkU3RhdGUgIT09IG51bGwgJiYgbm9kZSAhPT0gZmluaXNoZWRXb3JrKSA7IGVsc2UgaWYgKG5vZGUuY2hpbGQgIT09IG51bGwpIHtcbiAgICAgICAgbm9kZS5jaGlsZC5yZXR1cm4gPSBub2RlO1xuICAgICAgICBub2RlID0gbm9kZS5jaGlsZDtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChub2RlID09PSBmaW5pc2hlZFdvcmspIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB3aGlsZSAobm9kZS5zaWJsaW5nID09PSBudWxsKSB7XG4gICAgICAgIGlmIChub2RlLnJldHVybiA9PT0gbnVsbCB8fCBub2RlLnJldHVybiA9PT0gZmluaXNoZWRXb3JrKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbm9kZSA9IG5vZGUucmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBub2RlLnNpYmxpbmcucmV0dXJuID0gbm9kZS5yZXR1cm47XG4gICAgICBub2RlID0gbm9kZS5zaWJsaW5nO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjb21taXRBdHRhY2hSZWYoZmluaXNoZWRXb3JrKSB7XG4gIHZhciByZWYgPSBmaW5pc2hlZFdvcmsucmVmO1xuXG4gIGlmIChyZWYgIT09IG51bGwpIHtcbiAgICB2YXIgaW5zdGFuY2UgPSBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlO1xuICAgIHZhciBpbnN0YW5jZVRvVXNlO1xuXG4gICAgc3dpdGNoIChmaW5pc2hlZFdvcmsudGFnKSB7XG4gICAgICBjYXNlIEhvc3RDb21wb25lbnQ6XG4gICAgICAgIGluc3RhbmNlVG9Vc2UgPSBnZXRQdWJsaWNJbnN0YW5jZShpbnN0YW5jZSk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBpbnN0YW5jZVRvVXNlID0gaW5zdGFuY2U7XG4gICAgfSAvLyBNb3ZlZCBvdXRzaWRlIHRvIGVuc3VyZSBEQ0Ugd29ya3Mgd2l0aCB0aGlzIGZsYWdcblxuICAgIGlmICh0eXBlb2YgcmVmID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZWYoaW5zdGFuY2VUb1VzZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHtcbiAgICAgICAgaWYgKCFyZWYuaGFzT3duUHJvcGVydHkoJ2N1cnJlbnQnKSkge1xuICAgICAgICAgIGVycm9yKCdVbmV4cGVjdGVkIHJlZiBvYmplY3QgcHJvdmlkZWQgZm9yICVzLiAnICsgJ1VzZSBlaXRoZXIgYSByZWYtc2V0dGVyIGZ1bmN0aW9uIG9yIFJlYWN0LmNyZWF0ZVJlZigpLicsIGdldENvbXBvbmVudE5hbWUoZmluaXNoZWRXb3JrLnR5cGUpKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZWYuY3VycmVudCA9IGluc3RhbmNlVG9Vc2U7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGNvbW1pdERldGFjaFJlZihjdXJyZW50KSB7XG4gIHZhciBjdXJyZW50UmVmID0gY3VycmVudC5yZWY7XG5cbiAgaWYgKGN1cnJlbnRSZWYgIT09IG51bGwpIHtcbiAgICBpZiAodHlwZW9mIGN1cnJlbnRSZWYgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGN1cnJlbnRSZWYobnVsbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGN1cnJlbnRSZWYuY3VycmVudCA9IG51bGw7XG4gICAgfVxuICB9XG59IC8vIFVzZXItb3JpZ2luYXRpbmcgZXJyb3JzIChsaWZlY3ljbGVzIGFuZCByZWZzKSBzaG91bGQgbm90IGludGVycnVwdFxuLy8gZGVsZXRpb24sIHNvIGRvbid0IGxldCB0aGVtIHRocm93LiBIb3N0LW9yaWdpbmF0aW5nIGVycm9ycyBzaG91bGRcbi8vIGludGVycnVwdCBkZWxldGlvbiwgc28gaXQncyBva2F5XG5cblxuZnVuY3Rpb24gY29tbWl0VW5tb3VudChmaW5pc2hlZFJvb3QsIGN1cnJlbnQsIHJlbmRlclByaW9yaXR5TGV2ZWwpIHtcbiAgb25Db21taXRVbm1vdW50KGN1cnJlbnQpO1xuXG4gIHN3aXRjaCAoY3VycmVudC50YWcpIHtcbiAgICBjYXNlIEZ1bmN0aW9uQ29tcG9uZW50OlxuICAgIGNhc2UgRm9yd2FyZFJlZjpcbiAgICBjYXNlIE1lbW9Db21wb25lbnQ6XG4gICAgY2FzZSBTaW1wbGVNZW1vQ29tcG9uZW50OlxuICAgIGNhc2UgQmxvY2s6XG4gICAgICB7XG4gICAgICAgIHZhciB1cGRhdGVRdWV1ZSA9IGN1cnJlbnQudXBkYXRlUXVldWU7XG5cbiAgICAgICAgaWYgKHVwZGF0ZVF1ZXVlICE9PSBudWxsKSB7XG4gICAgICAgICAgdmFyIGxhc3RFZmZlY3QgPSB1cGRhdGVRdWV1ZS5sYXN0RWZmZWN0O1xuXG4gICAgICAgICAgaWYgKGxhc3RFZmZlY3QgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHZhciBmaXJzdEVmZmVjdCA9IGxhc3RFZmZlY3QubmV4dDtcbiAgICAgICAgICAgIHZhciBlZmZlY3QgPSBmaXJzdEVmZmVjdDtcblxuICAgICAgICAgICAgZG8ge1xuICAgICAgICAgICAgICB2YXIgX2VmZmVjdDIgPSBlZmZlY3QsXG4gICAgICAgICAgICAgICAgICBkZXN0cm95ID0gX2VmZmVjdDIuZGVzdHJveSxcbiAgICAgICAgICAgICAgICAgIHRhZyA9IF9lZmZlY3QyLnRhZztcblxuICAgICAgICAgICAgICBpZiAoZGVzdHJveSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgaWYgKCh0YWcgJiBQYXNzaXZlJDEpICE9PSBOb0ZsYWdzJDEpIHtcbiAgICAgICAgICAgICAgICAgIGVucXVldWVQZW5kaW5nUGFzc2l2ZUhvb2tFZmZlY3RVbm1vdW50KGN1cnJlbnQsIGVmZmVjdCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgc2FmZWx5Q2FsbERlc3Ryb3koY3VycmVudCwgZGVzdHJveSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgZWZmZWN0ID0gZWZmZWN0Lm5leHQ7XG4gICAgICAgICAgICB9IHdoaWxlIChlZmZlY3QgIT09IGZpcnN0RWZmZWN0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICBjYXNlIENsYXNzQ29tcG9uZW50OlxuICAgICAge1xuICAgICAgICBzYWZlbHlEZXRhY2hSZWYoY3VycmVudCk7XG4gICAgICAgIHZhciBpbnN0YW5jZSA9IGN1cnJlbnQuc3RhdGVOb2RlO1xuXG4gICAgICAgIGlmICh0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50V2lsbFVubW91bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICBzYWZlbHlDYWxsQ29tcG9uZW50V2lsbFVubW91bnQoY3VycmVudCwgaW5zdGFuY2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgY2FzZSBIb3N0Q29tcG9uZW50OlxuICAgICAge1xuICAgICAgICBzYWZlbHlEZXRhY2hSZWYoY3VycmVudCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgIGNhc2UgSG9zdFBvcnRhbDpcbiAgICAgIHtcbiAgICAgICAgLy8gVE9ETzogdGhpcyBpcyByZWN1cnNpdmUuXG4gICAgICAgIC8vIFdlIGFyZSBhbHNvIG5vdCB1c2luZyB0aGlzIHBhcmVudCBiZWNhdXNlXG4gICAgICAgIC8vIHRoZSBwb3J0YWwgd2lsbCBnZXQgcHVzaGVkIGltbWVkaWF0ZWx5LlxuICAgICAgICB7XG4gICAgICAgICAgdW5tb3VudEhvc3RDb21wb25lbnRzKGZpbmlzaGVkUm9vdCwgY3VycmVudCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICBjYXNlIEZ1bmRhbWVudGFsQ29tcG9uZW50OlxuICAgICAge1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgIGNhc2UgRGVoeWRyYXRlZEZyYWdtZW50OlxuICAgICAge1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgIGNhc2UgU2NvcGVDb21wb25lbnQ6XG4gICAgICB7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGNvbW1pdE5lc3RlZFVubW91bnRzKGZpbmlzaGVkUm9vdCwgcm9vdCwgcmVuZGVyUHJpb3JpdHlMZXZlbCkge1xuICAvLyBXaGlsZSB3ZSdyZSBpbnNpZGUgYSByZW1vdmVkIGhvc3Qgbm9kZSB3ZSBkb24ndCB3YW50IHRvIGNhbGxcbiAgLy8gcmVtb3ZlQ2hpbGQgb24gdGhlIGlubmVyIG5vZGVzIGJlY2F1c2UgdGhleSdyZSByZW1vdmVkIGJ5IHRoZSB0b3BcbiAgLy8gY2FsbCBhbnl3YXkuIFdlIGFsc28gd2FudCB0byBjYWxsIGNvbXBvbmVudFdpbGxVbm1vdW50IG9uIGFsbFxuICAvLyBjb21wb3NpdGVzIGJlZm9yZSB0aGlzIGhvc3Qgbm9kZSBpcyByZW1vdmVkIGZyb20gdGhlIHRyZWUuIFRoZXJlZm9yZVxuICAvLyB3ZSBkbyBhbiBpbm5lciBsb29wIHdoaWxlIHdlJ3JlIHN0aWxsIGluc2lkZSB0aGUgaG9zdCBub2RlLlxuICB2YXIgbm9kZSA9IHJvb3Q7XG5cbiAgd2hpbGUgKHRydWUpIHtcbiAgICBjb21taXRVbm1vdW50KGZpbmlzaGVkUm9vdCwgbm9kZSk7IC8vIFZpc2l0IGNoaWxkcmVuIGJlY2F1c2UgdGhleSBtYXkgY29udGFpbiBtb3JlIGNvbXBvc2l0ZSBvciBob3N0IG5vZGVzLlxuICAgIC8vIFNraXAgcG9ydGFscyBiZWNhdXNlIGNvbW1pdFVubW91bnQoKSBjdXJyZW50bHkgdmlzaXRzIHRoZW0gcmVjdXJzaXZlbHkuXG5cbiAgICBpZiAobm9kZS5jaGlsZCAhPT0gbnVsbCAmJiAoIC8vIElmIHdlIHVzZSBtdXRhdGlvbiB3ZSBkcmlsbCBkb3duIGludG8gcG9ydGFscyB1c2luZyBjb21taXRVbm1vdW50IGFib3ZlLlxuICAgIC8vIElmIHdlIGRvbid0IHVzZSBtdXRhdGlvbiB3ZSBkcmlsbCBkb3duIGludG8gcG9ydGFscyBoZXJlIGluc3RlYWQuXG4gICAgIG5vZGUudGFnICE9PSBIb3N0UG9ydGFsKSkge1xuICAgICAgbm9kZS5jaGlsZC5yZXR1cm4gPSBub2RlO1xuICAgICAgbm9kZSA9IG5vZGUuY2hpbGQ7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAobm9kZSA9PT0gcm9vdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHdoaWxlIChub2RlLnNpYmxpbmcgPT09IG51bGwpIHtcbiAgICAgIGlmIChub2RlLnJldHVybiA9PT0gbnVsbCB8fCBub2RlLnJldHVybiA9PT0gcm9vdCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIG5vZGUgPSBub2RlLnJldHVybjtcbiAgICB9XG5cbiAgICBub2RlLnNpYmxpbmcucmV0dXJuID0gbm9kZS5yZXR1cm47XG4gICAgbm9kZSA9IG5vZGUuc2libGluZztcbiAgfVxufVxuXG5mdW5jdGlvbiBkZXRhY2hGaWJlck11dGF0aW9uKGZpYmVyKSB7XG4gIC8vIEN1dCBvZmYgdGhlIHJldHVybiBwb2ludGVycyB0byBkaXNjb25uZWN0IGl0IGZyb20gdGhlIHRyZWUuIElkZWFsbHksIHdlXG4gIC8vIHNob3VsZCBjbGVhciB0aGUgY2hpbGQgcG9pbnRlciBvZiB0aGUgcGFyZW50IGFsdGVybmF0ZSB0byBsZXQgdGhpc1xuICAvLyBnZXQgR0M6ZWQgYnV0IHdlIGRvbid0IGtub3cgd2hpY2ggZm9yIHN1cmUgd2hpY2ggcGFyZW50IGlzIHRoZSBjdXJyZW50XG4gIC8vIG9uZSBzbyB3ZSdsbCBzZXR0bGUgZm9yIEdDOmluZyB0aGUgc3VidHJlZSBvZiB0aGlzIGNoaWxkLiBUaGlzIGNoaWxkXG4gIC8vIGl0c2VsZiB3aWxsIGJlIEdDOmVkIHdoZW4gdGhlIHBhcmVudCB1cGRhdGVzIHRoZSBuZXh0IHRpbWUuXG4gIC8vIE5vdGU6IHdlIGNhbm5vdCBudWxsIG91dCBzaWJsaW5nIGhlcmUsIG90aGVyd2lzZSBpdCBjYW4gY2F1c2UgaXNzdWVzXG4gIC8vIHdpdGggZmluZERPTU5vZGUgYW5kIGhvdyBpdCByZXF1aXJlcyB0aGUgc2libGluZyBmaWVsZCB0byBjYXJyeSBvdXRcbiAgLy8gdHJhdmVyc2FsIGluIGEgbGF0ZXIgZWZmZWN0LiBTZWUgUFIgIzE2ODIwLiBXZSBub3cgY2xlYXIgdGhlIHNpYmxpbmdcbiAgLy8gZmllbGQgYWZ0ZXIgZWZmZWN0cywgc2VlOiBkZXRhY2hGaWJlckFmdGVyRWZmZWN0cy5cbiAgLy9cbiAgLy8gRG9uJ3QgZGlzY29ubmVjdCBzdGF0ZU5vZGUgbm93OyBpdCB3aWxsIGJlIGRldGFjaGVkIGluIGRldGFjaEZpYmVyQWZ0ZXJFZmZlY3RzLlxuICAvLyBJdCBtYXkgYmUgcmVxdWlyZWQgaWYgdGhlIGN1cnJlbnQgY29tcG9uZW50IGlzIGFuIGVycm9yIGJvdW5kYXJ5LFxuICAvLyBhbmQgb25lIG9mIGl0cyBkZXNjZW5kYW50cyB0aHJvd3Mgd2hpbGUgdW5tb3VudGluZyBhIHBhc3NpdmUgZWZmZWN0LlxuICBmaWJlci5hbHRlcm5hdGUgPSBudWxsO1xuICBmaWJlci5jaGlsZCA9IG51bGw7XG4gIGZpYmVyLmRlcGVuZGVuY2llcyA9IG51bGw7XG4gIGZpYmVyLmZpcnN0RWZmZWN0ID0gbnVsbDtcbiAgZmliZXIubGFzdEVmZmVjdCA9IG51bGw7XG4gIGZpYmVyLm1lbW9pemVkUHJvcHMgPSBudWxsO1xuICBmaWJlci5tZW1vaXplZFN0YXRlID0gbnVsbDtcbiAgZmliZXIucGVuZGluZ1Byb3BzID0gbnVsbDtcbiAgZmliZXIucmV0dXJuID0gbnVsbDtcbiAgZmliZXIudXBkYXRlUXVldWUgPSBudWxsO1xuXG4gIHtcbiAgICBmaWJlci5fZGVidWdPd25lciA9IG51bGw7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0SG9zdFBhcmVudEZpYmVyKGZpYmVyKSB7XG4gIHZhciBwYXJlbnQgPSBmaWJlci5yZXR1cm47XG5cbiAgd2hpbGUgKHBhcmVudCAhPT0gbnVsbCkge1xuICAgIGlmIChpc0hvc3RQYXJlbnQocGFyZW50KSkge1xuICAgICAgcmV0dXJuIHBhcmVudDtcbiAgICB9XG5cbiAgICBwYXJlbnQgPSBwYXJlbnQucmV0dXJuO1xuICB9XG5cbiAge1xuICAgIHtcbiAgICAgIHRocm93IEVycm9yKCBcIkV4cGVjdGVkIHRvIGZpbmQgYSBob3N0IHBhcmVudC4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIiApO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBpc0hvc3RQYXJlbnQoZmliZXIpIHtcbiAgcmV0dXJuIGZpYmVyLnRhZyA9PT0gSG9zdENvbXBvbmVudCB8fCBmaWJlci50YWcgPT09IEhvc3RSb290IHx8IGZpYmVyLnRhZyA9PT0gSG9zdFBvcnRhbDtcbn1cblxuZnVuY3Rpb24gZ2V0SG9zdFNpYmxpbmcoZmliZXIpIHtcbiAgLy8gV2UncmUgZ29pbmcgdG8gc2VhcmNoIGZvcndhcmQgaW50byB0aGUgdHJlZSB1bnRpbCB3ZSBmaW5kIGEgc2libGluZyBob3N0XG4gIC8vIG5vZGUuIFVuZm9ydHVuYXRlbHksIGlmIG11bHRpcGxlIGluc2VydGlvbnMgYXJlIGRvbmUgaW4gYSByb3cgd2UgaGF2ZSB0b1xuICAvLyBzZWFyY2ggcGFzdCB0aGVtLiBUaGlzIGxlYWRzIHRvIGV4cG9uZW50aWFsIHNlYXJjaCBmb3IgdGhlIG5leHQgc2libGluZy5cbiAgLy8gVE9ETzogRmluZCBhIG1vcmUgZWZmaWNpZW50IHdheSB0byBkbyB0aGlzLlxuICB2YXIgbm9kZSA9IGZpYmVyO1xuXG4gIHNpYmxpbmdzOiB3aGlsZSAodHJ1ZSkge1xuICAgIC8vIElmIHdlIGRpZG4ndCBmaW5kIGFueXRoaW5nLCBsZXQncyB0cnkgdGhlIG5leHQgc2libGluZy5cbiAgICB3aGlsZSAobm9kZS5zaWJsaW5nID09PSBudWxsKSB7XG4gICAgICBpZiAobm9kZS5yZXR1cm4gPT09IG51bGwgfHwgaXNIb3N0UGFyZW50KG5vZGUucmV0dXJuKSkge1xuICAgICAgICAvLyBJZiB3ZSBwb3Agb3V0IG9mIHRoZSByb290IG9yIGhpdCB0aGUgcGFyZW50IHRoZSBmaWJlciB3ZSBhcmUgdGhlXG4gICAgICAgIC8vIGxhc3Qgc2libGluZy5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIG5vZGUgPSBub2RlLnJldHVybjtcbiAgICB9XG5cbiAgICBub2RlLnNpYmxpbmcucmV0dXJuID0gbm9kZS5yZXR1cm47XG4gICAgbm9kZSA9IG5vZGUuc2libGluZztcblxuICAgIHdoaWxlIChub2RlLnRhZyAhPT0gSG9zdENvbXBvbmVudCAmJiBub2RlLnRhZyAhPT0gSG9zdFRleHQgJiYgbm9kZS50YWcgIT09IERlaHlkcmF0ZWRGcmFnbWVudCkge1xuICAgICAgLy8gSWYgaXQgaXMgbm90IGhvc3Qgbm9kZSBhbmQsIHdlIG1pZ2h0IGhhdmUgYSBob3N0IG5vZGUgaW5zaWRlIGl0LlxuICAgICAgLy8gVHJ5IHRvIHNlYXJjaCBkb3duIHVudGlsIHdlIGZpbmQgb25lLlxuICAgICAgaWYgKG5vZGUuZmxhZ3MgJiBQbGFjZW1lbnQpIHtcbiAgICAgICAgLy8gSWYgd2UgZG9uJ3QgaGF2ZSBhIGNoaWxkLCB0cnkgdGhlIHNpYmxpbmdzIGluc3RlYWQuXG4gICAgICAgIGNvbnRpbnVlIHNpYmxpbmdzO1xuICAgICAgfSAvLyBJZiB3ZSBkb24ndCBoYXZlIGEgY2hpbGQsIHRyeSB0aGUgc2libGluZ3MgaW5zdGVhZC5cbiAgICAgIC8vIFdlIGFsc28gc2tpcCBwb3J0YWxzIGJlY2F1c2UgdGhleSBhcmUgbm90IHBhcnQgb2YgdGhpcyBob3N0IHRyZWUuXG5cblxuICAgICAgaWYgKG5vZGUuY2hpbGQgPT09IG51bGwgfHwgbm9kZS50YWcgPT09IEhvc3RQb3J0YWwpIHtcbiAgICAgICAgY29udGludWUgc2libGluZ3M7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBub2RlLmNoaWxkLnJldHVybiA9IG5vZGU7XG4gICAgICAgIG5vZGUgPSBub2RlLmNoaWxkO1xuICAgICAgfVxuICAgIH0gLy8gQ2hlY2sgaWYgdGhpcyBob3N0IG5vZGUgaXMgc3RhYmxlIG9yIGFib3V0IHRvIGJlIHBsYWNlZC5cblxuXG4gICAgaWYgKCEobm9kZS5mbGFncyAmIFBsYWNlbWVudCkpIHtcbiAgICAgIC8vIEZvdW5kIGl0IVxuICAgICAgcmV0dXJuIG5vZGUuc3RhdGVOb2RlO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjb21taXRQbGFjZW1lbnQoZmluaXNoZWRXb3JrKSB7XG5cblxuICB2YXIgcGFyZW50RmliZXIgPSBnZXRIb3N0UGFyZW50RmliZXIoZmluaXNoZWRXb3JrKTsgLy8gTm90ZTogdGhlc2UgdHdvIHZhcmlhYmxlcyAqbXVzdCogYWx3YXlzIGJlIHVwZGF0ZWQgdG9nZXRoZXIuXG5cbiAgdmFyIHBhcmVudDtcbiAgdmFyIGlzQ29udGFpbmVyO1xuICB2YXIgcGFyZW50U3RhdGVOb2RlID0gcGFyZW50RmliZXIuc3RhdGVOb2RlO1xuXG4gIHN3aXRjaCAocGFyZW50RmliZXIudGFnKSB7XG4gICAgY2FzZSBIb3N0Q29tcG9uZW50OlxuICAgICAgcGFyZW50ID0gcGFyZW50U3RhdGVOb2RlO1xuICAgICAgaXNDb250YWluZXIgPSBmYWxzZTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBIb3N0Um9vdDpcbiAgICAgIHBhcmVudCA9IHBhcmVudFN0YXRlTm9kZS5jb250YWluZXJJbmZvO1xuICAgICAgaXNDb250YWluZXIgPSB0cnVlO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIEhvc3RQb3J0YWw6XG4gICAgICBwYXJlbnQgPSBwYXJlbnRTdGF0ZU5vZGUuY29udGFpbmVySW5mbztcbiAgICAgIGlzQ29udGFpbmVyID0gdHJ1ZTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBGdW5kYW1lbnRhbENvbXBvbmVudDpcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZS1uby1mYWxsdGhyb3VnaFxuXG4gICAgZGVmYXVsdDpcbiAgICAgIHtcbiAgICAgICAge1xuICAgICAgICAgIHRocm93IEVycm9yKCBcIkludmFsaWQgaG9zdCBwYXJlbnQgZmliZXIuIFRoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCIgKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gIH1cblxuICBpZiAocGFyZW50RmliZXIuZmxhZ3MgJiBDb250ZW50UmVzZXQpIHtcbiAgICAvLyBSZXNldCB0aGUgdGV4dCBjb250ZW50IG9mIHRoZSBwYXJlbnQgYmVmb3JlIGRvaW5nIGFueSBpbnNlcnRpb25zXG4gICAgcmVzZXRUZXh0Q29udGVudChwYXJlbnQpOyAvLyBDbGVhciBDb250ZW50UmVzZXQgZnJvbSB0aGUgZWZmZWN0IHRhZ1xuXG4gICAgcGFyZW50RmliZXIuZmxhZ3MgJj0gfkNvbnRlbnRSZXNldDtcbiAgfVxuXG4gIHZhciBiZWZvcmUgPSBnZXRIb3N0U2libGluZyhmaW5pc2hlZFdvcmspOyAvLyBXZSBvbmx5IGhhdmUgdGhlIHRvcCBGaWJlciB0aGF0IHdhcyBpbnNlcnRlZCBidXQgd2UgbmVlZCB0byByZWN1cnNlIGRvd24gaXRzXG4gIC8vIGNoaWxkcmVuIHRvIGZpbmQgYWxsIHRoZSB0ZXJtaW5hbCBub2Rlcy5cblxuICBpZiAoaXNDb250YWluZXIpIHtcbiAgICBpbnNlcnRPckFwcGVuZFBsYWNlbWVudE5vZGVJbnRvQ29udGFpbmVyKGZpbmlzaGVkV29yaywgYmVmb3JlLCBwYXJlbnQpO1xuICB9IGVsc2Uge1xuICAgIGluc2VydE9yQXBwZW5kUGxhY2VtZW50Tm9kZShmaW5pc2hlZFdvcmssIGJlZm9yZSwgcGFyZW50KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpbnNlcnRPckFwcGVuZFBsYWNlbWVudE5vZGVJbnRvQ29udGFpbmVyKG5vZGUsIGJlZm9yZSwgcGFyZW50KSB7XG4gIHZhciB0YWcgPSBub2RlLnRhZztcbiAgdmFyIGlzSG9zdCA9IHRhZyA9PT0gSG9zdENvbXBvbmVudCB8fCB0YWcgPT09IEhvc3RUZXh0O1xuXG4gIGlmIChpc0hvc3QgfHwgZW5hYmxlRnVuZGFtZW50YWxBUEkgKSB7XG4gICAgdmFyIHN0YXRlTm9kZSA9IGlzSG9zdCA/IG5vZGUuc3RhdGVOb2RlIDogbm9kZS5zdGF0ZU5vZGUuaW5zdGFuY2U7XG5cbiAgICBpZiAoYmVmb3JlKSB7XG4gICAgICBpbnNlcnRJbkNvbnRhaW5lckJlZm9yZShwYXJlbnQsIHN0YXRlTm9kZSwgYmVmb3JlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXBwZW5kQ2hpbGRUb0NvbnRhaW5lcihwYXJlbnQsIHN0YXRlTm9kZSk7XG4gICAgfVxuICB9IGVsc2UgaWYgKHRhZyA9PT0gSG9zdFBvcnRhbCkgOyBlbHNlIHtcbiAgICB2YXIgY2hpbGQgPSBub2RlLmNoaWxkO1xuXG4gICAgaWYgKGNoaWxkICE9PSBudWxsKSB7XG4gICAgICBpbnNlcnRPckFwcGVuZFBsYWNlbWVudE5vZGVJbnRvQ29udGFpbmVyKGNoaWxkLCBiZWZvcmUsIHBhcmVudCk7XG4gICAgICB2YXIgc2libGluZyA9IGNoaWxkLnNpYmxpbmc7XG5cbiAgICAgIHdoaWxlIChzaWJsaW5nICE9PSBudWxsKSB7XG4gICAgICAgIGluc2VydE9yQXBwZW5kUGxhY2VtZW50Tm9kZUludG9Db250YWluZXIoc2libGluZywgYmVmb3JlLCBwYXJlbnQpO1xuICAgICAgICBzaWJsaW5nID0gc2libGluZy5zaWJsaW5nO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBpbnNlcnRPckFwcGVuZFBsYWNlbWVudE5vZGUobm9kZSwgYmVmb3JlLCBwYXJlbnQpIHtcbiAgdmFyIHRhZyA9IG5vZGUudGFnO1xuICB2YXIgaXNIb3N0ID0gdGFnID09PSBIb3N0Q29tcG9uZW50IHx8IHRhZyA9PT0gSG9zdFRleHQ7XG5cbiAgaWYgKGlzSG9zdCB8fCBlbmFibGVGdW5kYW1lbnRhbEFQSSApIHtcbiAgICB2YXIgc3RhdGVOb2RlID0gaXNIb3N0ID8gbm9kZS5zdGF0ZU5vZGUgOiBub2RlLnN0YXRlTm9kZS5pbnN0YW5jZTtcblxuICAgIGlmIChiZWZvcmUpIHtcbiAgICAgIGluc2VydEJlZm9yZShwYXJlbnQsIHN0YXRlTm9kZSwgYmVmb3JlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXBwZW5kQ2hpbGQocGFyZW50LCBzdGF0ZU5vZGUpO1xuICAgIH1cbiAgfSBlbHNlIGlmICh0YWcgPT09IEhvc3RQb3J0YWwpIDsgZWxzZSB7XG4gICAgdmFyIGNoaWxkID0gbm9kZS5jaGlsZDtcblxuICAgIGlmIChjaGlsZCAhPT0gbnVsbCkge1xuICAgICAgaW5zZXJ0T3JBcHBlbmRQbGFjZW1lbnROb2RlKGNoaWxkLCBiZWZvcmUsIHBhcmVudCk7XG4gICAgICB2YXIgc2libGluZyA9IGNoaWxkLnNpYmxpbmc7XG5cbiAgICAgIHdoaWxlIChzaWJsaW5nICE9PSBudWxsKSB7XG4gICAgICAgIGluc2VydE9yQXBwZW5kUGxhY2VtZW50Tm9kZShzaWJsaW5nLCBiZWZvcmUsIHBhcmVudCk7XG4gICAgICAgIHNpYmxpbmcgPSBzaWJsaW5nLnNpYmxpbmc7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHVubW91bnRIb3N0Q29tcG9uZW50cyhmaW5pc2hlZFJvb3QsIGN1cnJlbnQsIHJlbmRlclByaW9yaXR5TGV2ZWwpIHtcbiAgLy8gV2Ugb25seSBoYXZlIHRoZSB0b3AgRmliZXIgdGhhdCB3YXMgZGVsZXRlZCBidXQgd2UgbmVlZCB0byByZWN1cnNlIGRvd24gaXRzXG4gIC8vIGNoaWxkcmVuIHRvIGZpbmQgYWxsIHRoZSB0ZXJtaW5hbCBub2Rlcy5cbiAgdmFyIG5vZGUgPSBjdXJyZW50OyAvLyBFYWNoIGl0ZXJhdGlvbiwgY3VycmVudFBhcmVudCBpcyBwb3B1bGF0ZWQgd2l0aCBub2RlJ3MgaG9zdCBwYXJlbnQgaWYgbm90XG4gIC8vIGN1cnJlbnRQYXJlbnRJc1ZhbGlkLlxuXG4gIHZhciBjdXJyZW50UGFyZW50SXNWYWxpZCA9IGZhbHNlOyAvLyBOb3RlOiB0aGVzZSB0d28gdmFyaWFibGVzICptdXN0KiBhbHdheXMgYmUgdXBkYXRlZCB0b2dldGhlci5cblxuICB2YXIgY3VycmVudFBhcmVudDtcbiAgdmFyIGN1cnJlbnRQYXJlbnRJc0NvbnRhaW5lcjtcblxuICB3aGlsZSAodHJ1ZSkge1xuICAgIGlmICghY3VycmVudFBhcmVudElzVmFsaWQpIHtcbiAgICAgIHZhciBwYXJlbnQgPSBub2RlLnJldHVybjtcblxuICAgICAgZmluZFBhcmVudDogd2hpbGUgKHRydWUpIHtcbiAgICAgICAgaWYgKCEocGFyZW50ICE9PSBudWxsKSkge1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRocm93IEVycm9yKCBcIkV4cGVjdGVkIHRvIGZpbmQgYSBob3N0IHBhcmVudC4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIiApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBwYXJlbnRTdGF0ZU5vZGUgPSBwYXJlbnQuc3RhdGVOb2RlO1xuXG4gICAgICAgIHN3aXRjaCAocGFyZW50LnRhZykge1xuICAgICAgICAgIGNhc2UgSG9zdENvbXBvbmVudDpcbiAgICAgICAgICAgIGN1cnJlbnRQYXJlbnQgPSBwYXJlbnRTdGF0ZU5vZGU7XG4gICAgICAgICAgICBjdXJyZW50UGFyZW50SXNDb250YWluZXIgPSBmYWxzZTtcbiAgICAgICAgICAgIGJyZWFrIGZpbmRQYXJlbnQ7XG5cbiAgICAgICAgICBjYXNlIEhvc3RSb290OlxuICAgICAgICAgICAgY3VycmVudFBhcmVudCA9IHBhcmVudFN0YXRlTm9kZS5jb250YWluZXJJbmZvO1xuICAgICAgICAgICAgY3VycmVudFBhcmVudElzQ29udGFpbmVyID0gdHJ1ZTtcbiAgICAgICAgICAgIGJyZWFrIGZpbmRQYXJlbnQ7XG5cbiAgICAgICAgICBjYXNlIEhvc3RQb3J0YWw6XG4gICAgICAgICAgICBjdXJyZW50UGFyZW50ID0gcGFyZW50U3RhdGVOb2RlLmNvbnRhaW5lckluZm87XG4gICAgICAgICAgICBjdXJyZW50UGFyZW50SXNDb250YWluZXIgPSB0cnVlO1xuICAgICAgICAgICAgYnJlYWsgZmluZFBhcmVudDtcblxuICAgICAgICB9XG5cbiAgICAgICAgcGFyZW50ID0gcGFyZW50LnJldHVybjtcbiAgICAgIH1cblxuICAgICAgY3VycmVudFBhcmVudElzVmFsaWQgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmIChub2RlLnRhZyA9PT0gSG9zdENvbXBvbmVudCB8fCBub2RlLnRhZyA9PT0gSG9zdFRleHQpIHtcbiAgICAgIGNvbW1pdE5lc3RlZFVubW91bnRzKGZpbmlzaGVkUm9vdCwgbm9kZSk7IC8vIEFmdGVyIGFsbCB0aGUgY2hpbGRyZW4gaGF2ZSB1bm1vdW50ZWQsIGl0IGlzIG5vdyBzYWZlIHRvIHJlbW92ZSB0aGVcbiAgICAgIC8vIG5vZGUgZnJvbSB0aGUgdHJlZS5cblxuICAgICAgaWYgKGN1cnJlbnRQYXJlbnRJc0NvbnRhaW5lcikge1xuICAgICAgICByZW1vdmVDaGlsZEZyb21Db250YWluZXIoY3VycmVudFBhcmVudCwgbm9kZS5zdGF0ZU5vZGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVtb3ZlQ2hpbGQoY3VycmVudFBhcmVudCwgbm9kZS5zdGF0ZU5vZGUpO1xuICAgICAgfSAvLyBEb24ndCB2aXNpdCBjaGlsZHJlbiBiZWNhdXNlIHdlIGFscmVhZHkgdmlzaXRlZCB0aGVtLlxuXG4gICAgfSBlbHNlIGlmIChub2RlLnRhZyA9PT0gSG9zdFBvcnRhbCkge1xuICAgICAgaWYgKG5vZGUuY2hpbGQgIT09IG51bGwpIHtcbiAgICAgICAgLy8gV2hlbiB3ZSBnbyBpbnRvIGEgcG9ydGFsLCBpdCBiZWNvbWVzIHRoZSBwYXJlbnQgdG8gcmVtb3ZlIGZyb20uXG4gICAgICAgIC8vIFdlIHdpbGwgcmVhc3NpZ24gaXQgYmFjayB3aGVuIHdlIHBvcCB0aGUgcG9ydGFsIG9uIHRoZSB3YXkgdXAuXG4gICAgICAgIGN1cnJlbnRQYXJlbnQgPSBub2RlLnN0YXRlTm9kZS5jb250YWluZXJJbmZvO1xuICAgICAgICBjdXJyZW50UGFyZW50SXNDb250YWluZXIgPSB0cnVlOyAvLyBWaXNpdCBjaGlsZHJlbiBiZWNhdXNlIHBvcnRhbHMgbWlnaHQgY29udGFpbiBob3N0IGNvbXBvbmVudHMuXG5cbiAgICAgICAgbm9kZS5jaGlsZC5yZXR1cm4gPSBub2RlO1xuICAgICAgICBub2RlID0gbm9kZS5jaGlsZDtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbW1pdFVubW91bnQoZmluaXNoZWRSb290LCBub2RlKTsgLy8gVmlzaXQgY2hpbGRyZW4gYmVjYXVzZSB3ZSBtYXkgZmluZCBtb3JlIGhvc3QgY29tcG9uZW50cyBiZWxvdy5cblxuICAgICAgaWYgKG5vZGUuY2hpbGQgIT09IG51bGwpIHtcbiAgICAgICAgbm9kZS5jaGlsZC5yZXR1cm4gPSBub2RlO1xuICAgICAgICBub2RlID0gbm9kZS5jaGlsZDtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG5vZGUgPT09IGN1cnJlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB3aGlsZSAobm9kZS5zaWJsaW5nID09PSBudWxsKSB7XG4gICAgICBpZiAobm9kZS5yZXR1cm4gPT09IG51bGwgfHwgbm9kZS5yZXR1cm4gPT09IGN1cnJlbnQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBub2RlID0gbm9kZS5yZXR1cm47XG5cbiAgICAgIGlmIChub2RlLnRhZyA9PT0gSG9zdFBvcnRhbCkge1xuICAgICAgICAvLyBXaGVuIHdlIGdvIG91dCBvZiB0aGUgcG9ydGFsLCB3ZSBuZWVkIHRvIHJlc3RvcmUgdGhlIHBhcmVudC5cbiAgICAgICAgLy8gU2luY2Ugd2UgZG9uJ3Qga2VlcCBhIHN0YWNrIG9mIHRoZW0sIHdlIHdpbGwgc2VhcmNoIGZvciBpdC5cbiAgICAgICAgY3VycmVudFBhcmVudElzVmFsaWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBub2RlLnNpYmxpbmcucmV0dXJuID0gbm9kZS5yZXR1cm47XG4gICAgbm9kZSA9IG5vZGUuc2libGluZztcbiAgfVxufVxuXG5mdW5jdGlvbiBjb21taXREZWxldGlvbihmaW5pc2hlZFJvb3QsIGN1cnJlbnQsIHJlbmRlclByaW9yaXR5TGV2ZWwpIHtcbiAge1xuICAgIC8vIFJlY3Vyc2l2ZWx5IGRlbGV0ZSBhbGwgaG9zdCBub2RlcyBmcm9tIHRoZSBwYXJlbnQuXG4gICAgLy8gRGV0YWNoIHJlZnMgYW5kIGNhbGwgY29tcG9uZW50V2lsbFVubW91bnQoKSBvbiB0aGUgd2hvbGUgc3VidHJlZS5cbiAgICB1bm1vdW50SG9zdENvbXBvbmVudHMoZmluaXNoZWRSb290LCBjdXJyZW50KTtcbiAgfVxuXG4gIHZhciBhbHRlcm5hdGUgPSBjdXJyZW50LmFsdGVybmF0ZTtcbiAgZGV0YWNoRmliZXJNdXRhdGlvbihjdXJyZW50KTtcblxuICBpZiAoYWx0ZXJuYXRlICE9PSBudWxsKSB7XG4gICAgZGV0YWNoRmliZXJNdXRhdGlvbihhbHRlcm5hdGUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNvbW1pdFdvcmsoY3VycmVudCwgZmluaXNoZWRXb3JrKSB7XG5cbiAgc3dpdGNoIChmaW5pc2hlZFdvcmsudGFnKSB7XG4gICAgY2FzZSBGdW5jdGlvbkNvbXBvbmVudDpcbiAgICBjYXNlIEZvcndhcmRSZWY6XG4gICAgY2FzZSBNZW1vQ29tcG9uZW50OlxuICAgIGNhc2UgU2ltcGxlTWVtb0NvbXBvbmVudDpcbiAgICBjYXNlIEJsb2NrOlxuICAgICAge1xuICAgICAgICAvLyBMYXlvdXQgZWZmZWN0cyBhcmUgZGVzdHJveWVkIGR1cmluZyB0aGUgbXV0YXRpb24gcGhhc2Ugc28gdGhhdCBhbGxcbiAgICAgICAgLy8gZGVzdHJveSBmdW5jdGlvbnMgZm9yIGFsbCBmaWJlcnMgYXJlIGNhbGxlZCBiZWZvcmUgYW55IGNyZWF0ZSBmdW5jdGlvbnMuXG4gICAgICAgIC8vIFRoaXMgcHJldmVudHMgc2libGluZyBjb21wb25lbnQgZWZmZWN0cyBmcm9tIGludGVyZmVyaW5nIHdpdGggZWFjaCBvdGhlcixcbiAgICAgICAgLy8gZS5nLiBhIGRlc3Ryb3kgZnVuY3Rpb24gaW4gb25lIGNvbXBvbmVudCBzaG91bGQgbmV2ZXIgb3ZlcnJpZGUgYSByZWYgc2V0XG4gICAgICAgIC8vIGJ5IGEgY3JlYXRlIGZ1bmN0aW9uIGluIGFub3RoZXIgY29tcG9uZW50IGR1cmluZyB0aGUgc2FtZSBjb21taXQuXG4gICAgICAgIHtcbiAgICAgICAgICBjb21taXRIb29rRWZmZWN0TGlzdFVubW91bnQoTGF5b3V0IHwgSGFzRWZmZWN0LCBmaW5pc2hlZFdvcmspO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgY2FzZSBDbGFzc0NvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgY2FzZSBIb3N0Q29tcG9uZW50OlxuICAgICAge1xuICAgICAgICB2YXIgaW5zdGFuY2UgPSBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlO1xuXG4gICAgICAgIGlmIChpbnN0YW5jZSAhPSBudWxsKSB7XG4gICAgICAgICAgLy8gQ29tbWl0IHRoZSB3b3JrIHByZXBhcmVkIGVhcmxpZXIuXG4gICAgICAgICAgdmFyIG5ld1Byb3BzID0gZmluaXNoZWRXb3JrLm1lbW9pemVkUHJvcHM7IC8vIEZvciBoeWRyYXRpb24gd2UgcmV1c2UgdGhlIHVwZGF0ZSBwYXRoIGJ1dCB3ZSB0cmVhdCB0aGUgb2xkUHJvcHNcbiAgICAgICAgICAvLyBhcyB0aGUgbmV3UHJvcHMuIFRoZSB1cGRhdGVQYXlsb2FkIHdpbGwgY29udGFpbiB0aGUgcmVhbCBjaGFuZ2UgaW5cbiAgICAgICAgICAvLyB0aGlzIGNhc2UuXG5cbiAgICAgICAgICB2YXIgb2xkUHJvcHMgPSBjdXJyZW50ICE9PSBudWxsID8gY3VycmVudC5tZW1vaXplZFByb3BzIDogbmV3UHJvcHM7XG4gICAgICAgICAgdmFyIHR5cGUgPSBmaW5pc2hlZFdvcmsudHlwZTsgLy8gVE9ETzogVHlwZSB0aGUgdXBkYXRlUXVldWUgdG8gYmUgc3BlY2lmaWMgdG8gaG9zdCBjb21wb25lbnRzLlxuXG4gICAgICAgICAgdmFyIHVwZGF0ZVBheWxvYWQgPSBmaW5pc2hlZFdvcmsudXBkYXRlUXVldWU7XG4gICAgICAgICAgZmluaXNoZWRXb3JrLnVwZGF0ZVF1ZXVlID0gbnVsbDtcblxuICAgICAgICAgIGlmICh1cGRhdGVQYXlsb2FkICE9PSBudWxsKSB7XG4gICAgICAgICAgICBjb21taXRVcGRhdGUoaW5zdGFuY2UsIHVwZGF0ZVBheWxvYWQsIHR5cGUsIG9sZFByb3BzLCBuZXdQcm9wcyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgY2FzZSBIb3N0VGV4dDpcbiAgICAgIHtcbiAgICAgICAgaWYgKCEoZmluaXNoZWRXb3JrLnN0YXRlTm9kZSAhPT0gbnVsbCkpIHtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvciggXCJUaGlzIHNob3VsZCBoYXZlIGEgdGV4dCBub2RlIGluaXRpYWxpemVkLiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLlwiICk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHRleHRJbnN0YW5jZSA9IGZpbmlzaGVkV29yay5zdGF0ZU5vZGU7XG4gICAgICAgIHZhciBuZXdUZXh0ID0gZmluaXNoZWRXb3JrLm1lbW9pemVkUHJvcHM7IC8vIEZvciBoeWRyYXRpb24gd2UgcmV1c2UgdGhlIHVwZGF0ZSBwYXRoIGJ1dCB3ZSB0cmVhdCB0aGUgb2xkUHJvcHNcbiAgICAgICAgLy8gYXMgdGhlIG5ld1Byb3BzLiBUaGUgdXBkYXRlUGF5bG9hZCB3aWxsIGNvbnRhaW4gdGhlIHJlYWwgY2hhbmdlIGluXG4gICAgICAgIC8vIHRoaXMgY2FzZS5cblxuICAgICAgICB2YXIgb2xkVGV4dCA9IGN1cnJlbnQgIT09IG51bGwgPyBjdXJyZW50Lm1lbW9pemVkUHJvcHMgOiBuZXdUZXh0O1xuICAgICAgICBjb21taXRUZXh0VXBkYXRlKHRleHRJbnN0YW5jZSwgb2xkVGV4dCwgbmV3VGV4dCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgIGNhc2UgSG9zdFJvb3Q6XG4gICAgICB7XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgX3Jvb3QgPSBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlO1xuXG4gICAgICAgICAgaWYgKF9yb290Lmh5ZHJhdGUpIHtcbiAgICAgICAgICAgIC8vIFdlJ3ZlIGp1c3QgaHlkcmF0ZWQuIE5vIG5lZWQgdG8gaHlkcmF0ZSBhZ2Fpbi5cbiAgICAgICAgICAgIF9yb290Lmh5ZHJhdGUgPSBmYWxzZTtcbiAgICAgICAgICAgIGNvbW1pdEh5ZHJhdGVkQ29udGFpbmVyKF9yb290LmNvbnRhaW5lckluZm8pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgIGNhc2UgUHJvZmlsZXI6XG4gICAgICB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgIGNhc2UgU3VzcGVuc2VDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIGNvbW1pdFN1c3BlbnNlQ29tcG9uZW50KGZpbmlzaGVkV29yayk7XG4gICAgICAgIGF0dGFjaFN1c3BlbnNlUmV0cnlMaXN0ZW5lcnMoZmluaXNoZWRXb3JrKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgY2FzZSBTdXNwZW5zZUxpc3RDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIGF0dGFjaFN1c3BlbnNlUmV0cnlMaXN0ZW5lcnMoZmluaXNoZWRXb3JrKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgY2FzZSBJbmNvbXBsZXRlQ2xhc3NDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgIGNhc2UgRnVuZGFtZW50YWxDb21wb25lbnQ6XG4gICAgICB7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICBjYXNlIFNjb3BlQ29tcG9uZW50OlxuICAgICAge1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgY2FzZSBPZmZzY3JlZW5Db21wb25lbnQ6XG4gICAgY2FzZSBMZWdhY3lIaWRkZW5Db21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHZhciBuZXdTdGF0ZSA9IGZpbmlzaGVkV29yay5tZW1vaXplZFN0YXRlO1xuICAgICAgICB2YXIgaXNIaWRkZW4gPSBuZXdTdGF0ZSAhPT0gbnVsbDtcbiAgICAgICAgaGlkZU9yVW5oaWRlQWxsQ2hpbGRyZW4oZmluaXNoZWRXb3JrLCBpc0hpZGRlbik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgfVxuXG4gIHtcbiAgICB7XG4gICAgICB0aHJvdyBFcnJvciggXCJUaGlzIHVuaXQgb2Ygd29yayB0YWcgc2hvdWxkIG5vdCBoYXZlIHNpZGUtZWZmZWN0cy4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIiApO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjb21taXRTdXNwZW5zZUNvbXBvbmVudChmaW5pc2hlZFdvcmspIHtcbiAgdmFyIG5ld1N0YXRlID0gZmluaXNoZWRXb3JrLm1lbW9pemVkU3RhdGU7XG5cbiAgaWYgKG5ld1N0YXRlICE9PSBudWxsKSB7XG4gICAgbWFya0NvbW1pdFRpbWVPZkZhbGxiYWNrKCk7XG5cbiAgICB7XG4gICAgICAvLyBIaWRlIHRoZSBPZmZzY3JlZW4gY29tcG9uZW50IHRoYXQgY29udGFpbnMgdGhlIHByaW1hcnkgY2hpbGRyZW4uIFRPRE86XG4gICAgICAvLyBJZGVhbGx5LCB0aGlzIGVmZmVjdCB3b3VsZCBoYXZlIGJlZW4gc2NoZWR1bGVkIG9uIHRoZSBPZmZzY3JlZW4gZmliZXJcbiAgICAgIC8vIGl0c2VsZi4gVGhhdCdzIGhvdyB1bmhpZGluZyB3b3JrczogdGhlIE9mZnNjcmVlbiBjb21wb25lbnQgc2NoZWR1bGVzIGFuXG4gICAgICAvLyBlZmZlY3Qgb24gaXRzZWxmLiBIb3dldmVyLCBpbiB0aGlzIGNhc2UsIHRoZSBjb21wb25lbnQgZGlkbid0IGNvbXBsZXRlLFxuICAgICAgLy8gc28gdGhlIGZpYmVyIHdhcyBuZXZlciBhZGRlZCB0byB0aGUgZWZmZWN0IGxpc3QgaW4gdGhlIG5vcm1hbCBwYXRoLiBXZVxuICAgICAgLy8gY291bGQgaGF2ZSBhcHBlbmRlZCBpdCB0byB0aGUgZWZmZWN0IGxpc3QgaW4gdGhlIFN1c3BlbnNlIGNvbXBvbmVudCdzXG4gICAgICAvLyBzZWNvbmQgcGFzcywgYnV0IGRvaW5nIGl0IHRoaXMgd2F5IGlzIGxlc3MgY29tcGxpY2F0ZWQuIFRoaXMgd291bGQgYmVcbiAgICAgIC8vIHNpbXBsZXIgaWYgd2UgZ290IHJpZCBvZiB0aGUgZWZmZWN0IGxpc3QgYW5kIHRyYXZlcnNlZCB0aGUgdHJlZSwgbGlrZVxuICAgICAgLy8gd2UncmUgcGxhbm5pbmcgdG8gZG8uXG4gICAgICB2YXIgcHJpbWFyeUNoaWxkUGFyZW50ID0gZmluaXNoZWRXb3JrLmNoaWxkO1xuICAgICAgaGlkZU9yVW5oaWRlQWxsQ2hpbGRyZW4ocHJpbWFyeUNoaWxkUGFyZW50LCB0cnVlKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gY29tbWl0U3VzcGVuc2VIeWRyYXRpb25DYWxsYmFja3MoZmluaXNoZWRSb290LCBmaW5pc2hlZFdvcmspIHtcblxuICB2YXIgbmV3U3RhdGUgPSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRTdGF0ZTtcblxuICBpZiAobmV3U3RhdGUgPT09IG51bGwpIHtcbiAgICB2YXIgY3VycmVudCA9IGZpbmlzaGVkV29yay5hbHRlcm5hdGU7XG5cbiAgICBpZiAoY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgdmFyIHByZXZTdGF0ZSA9IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZTtcblxuICAgICAgaWYgKHByZXZTdGF0ZSAhPT0gbnVsbCkge1xuICAgICAgICB2YXIgc3VzcGVuc2VJbnN0YW5jZSA9IHByZXZTdGF0ZS5kZWh5ZHJhdGVkO1xuXG4gICAgICAgIGlmIChzdXNwZW5zZUluc3RhbmNlICE9PSBudWxsKSB7XG4gICAgICAgICAgY29tbWl0SHlkcmF0ZWRTdXNwZW5zZUluc3RhbmNlKHN1c3BlbnNlSW5zdGFuY2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGF0dGFjaFN1c3BlbnNlUmV0cnlMaXN0ZW5lcnMoZmluaXNoZWRXb3JrKSB7XG4gIC8vIElmIHRoaXMgYm91bmRhcnkganVzdCB0aW1lZCBvdXQsIHRoZW4gaXQgd2lsbCBoYXZlIGEgc2V0IG9mIHdha2VhYmxlcy5cbiAgLy8gRm9yIGVhY2ggd2FrZWFibGUsIGF0dGFjaCBhIGxpc3RlbmVyIHNvIHRoYXQgd2hlbiBpdCByZXNvbHZlcywgUmVhY3RcbiAgLy8gYXR0ZW1wdHMgdG8gcmUtcmVuZGVyIHRoZSBib3VuZGFyeSBpbiB0aGUgcHJpbWFyeSAocHJlLXRpbWVvdXQpIHN0YXRlLlxuICB2YXIgd2FrZWFibGVzID0gZmluaXNoZWRXb3JrLnVwZGF0ZVF1ZXVlO1xuXG4gIGlmICh3YWtlYWJsZXMgIT09IG51bGwpIHtcbiAgICBmaW5pc2hlZFdvcmsudXBkYXRlUXVldWUgPSBudWxsO1xuICAgIHZhciByZXRyeUNhY2hlID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZTtcblxuICAgIGlmIChyZXRyeUNhY2hlID09PSBudWxsKSB7XG4gICAgICByZXRyeUNhY2hlID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZSA9IG5ldyBQb3NzaWJseVdlYWtTZXQoKTtcbiAgICB9XG5cbiAgICB3YWtlYWJsZXMuZm9yRWFjaChmdW5jdGlvbiAod2FrZWFibGUpIHtcbiAgICAgIC8vIE1lbW9pemUgdXNpbmcgdGhlIGJvdW5kYXJ5IGZpYmVyIHRvIHByZXZlbnQgcmVkdW5kYW50IGxpc3RlbmVycy5cbiAgICAgIHZhciByZXRyeSA9IHJlc29sdmVSZXRyeVdha2VhYmxlLmJpbmQobnVsbCwgZmluaXNoZWRXb3JrLCB3YWtlYWJsZSk7XG5cbiAgICAgIGlmICghcmV0cnlDYWNoZS5oYXMod2FrZWFibGUpKSB7XG4gICAgICAgIHtcbiAgICAgICAgICBpZiAod2FrZWFibGUuX19yZWFjdERvTm90VHJhY2VJbnRlcmFjdGlvbnMgIT09IHRydWUpIHtcbiAgICAgICAgICAgIHJldHJ5ID0gdHJhY2luZy51bnN0YWJsZV93cmFwKHJldHJ5KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXRyeUNhY2hlLmFkZCh3YWtlYWJsZSk7XG4gICAgICAgIHdha2VhYmxlLnRoZW4ocmV0cnksIHJldHJ5KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufSAvLyBUaGlzIGZ1bmN0aW9uIGRldGVjdHMgd2hlbiBhIFN1c3BlbnNlIGJvdW5kYXJ5IGdvZXMgZnJvbSB2aXNpYmxlIHRvIGhpZGRlbi5cbi8vIEl0IHJldHVybnMgZmFsc2UgaWYgdGhlIGJvdW5kYXJ5IGlzIGFscmVhZHkgaGlkZGVuLlxuLy8gVE9ETzogVXNlIGFuIGVmZmVjdCB0YWcuXG5cblxuZnVuY3Rpb24gaXNTdXNwZW5zZUJvdW5kYXJ5QmVpbmdIaWRkZW4oY3VycmVudCwgZmluaXNoZWRXb3JrKSB7XG4gIGlmIChjdXJyZW50ICE9PSBudWxsKSB7XG4gICAgdmFyIG9sZFN0YXRlID0gY3VycmVudC5tZW1vaXplZFN0YXRlO1xuXG4gICAgaWYgKG9sZFN0YXRlID09PSBudWxsIHx8IG9sZFN0YXRlLmRlaHlkcmF0ZWQgIT09IG51bGwpIHtcbiAgICAgIHZhciBuZXdTdGF0ZSA9IGZpbmlzaGVkV29yay5tZW1vaXplZFN0YXRlO1xuICAgICAgcmV0dXJuIG5ld1N0YXRlICE9PSBudWxsICYmIG5ld1N0YXRlLmRlaHlkcmF0ZWQgPT09IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBjb21taXRSZXNldFRleHRDb250ZW50KGN1cnJlbnQpIHtcblxuICByZXNldFRleHRDb250ZW50KGN1cnJlbnQuc3RhdGVOb2RlKTtcbn1cblxudmFyIENPTVBPTkVOVF9UWVBFID0gMDtcbnZhciBIQVNfUFNFVURPX0NMQVNTX1RZUEUgPSAxO1xudmFyIFJPTEVfVFlQRSA9IDI7XG52YXIgVEVTVF9OQU1FX1RZUEUgPSAzO1xudmFyIFRFWFRfVFlQRSA9IDQ7XG5cbmlmICh0eXBlb2YgU3ltYm9sID09PSAnZnVuY3Rpb24nICYmIFN5bWJvbC5mb3IpIHtcbiAgdmFyIHN5bWJvbEZvciQxID0gU3ltYm9sLmZvcjtcbiAgQ09NUE9ORU5UX1RZUEUgPSBzeW1ib2xGb3IkMSgnc2VsZWN0b3IuY29tcG9uZW50Jyk7XG4gIEhBU19QU0VVRE9fQ0xBU1NfVFlQRSA9IHN5bWJvbEZvciQxKCdzZWxlY3Rvci5oYXNfcHNldWRvX2NsYXNzJyk7XG4gIFJPTEVfVFlQRSA9IHN5bWJvbEZvciQxKCdzZWxlY3Rvci5yb2xlJyk7XG4gIFRFU1RfTkFNRV9UWVBFID0gc3ltYm9sRm9yJDEoJ3NlbGVjdG9yLnRlc3RfaWQnKTtcbiAgVEVYVF9UWVBFID0gc3ltYm9sRm9yJDEoJ3NlbGVjdG9yLnRleHQnKTtcbn1cbnZhciBjb21taXRIb29rcyA9IFtdO1xuZnVuY3Rpb24gb25Db21taXRSb290JDEoKSB7XG4gIHtcbiAgICBjb21taXRIb29rcy5mb3JFYWNoKGZ1bmN0aW9uIChjb21taXRIb29rKSB7XG4gICAgICByZXR1cm4gY29tbWl0SG9vaygpO1xuICAgIH0pO1xuICB9XG59XG5cbnZhciBjZWlsID0gTWF0aC5jZWlsO1xudmFyIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMiA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0Q3VycmVudERpc3BhdGNoZXIsXG4gICAgUmVhY3RDdXJyZW50T3duZXIkMiA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0Q3VycmVudE93bmVyLFxuICAgIElzU29tZVJlbmRlcmVyQWN0aW5nID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuSXNTb21lUmVuZGVyZXJBY3Rpbmc7XG52YXIgTm9Db250ZXh0ID1cbi8qICAgICAgICAgICAgICovXG4wO1xudmFyIEJhdGNoZWRDb250ZXh0ID1cbi8qICAgICAgICAgICAgICAgKi9cbjE7XG52YXIgRXZlbnRDb250ZXh0ID1cbi8qICAgICAgICAgICAgICAgICAqL1xuMjtcbnZhciBEaXNjcmV0ZUV2ZW50Q29udGV4dCA9XG4vKiAgICAgICAgICovXG40O1xudmFyIExlZ2FjeVVuYmF0Y2hlZENvbnRleHQgPVxuLyogICAgICAgKi9cbjg7XG52YXIgUmVuZGVyQ29udGV4dCA9XG4vKiAgICAgICAgICAgICAgICAqL1xuMTY7XG52YXIgQ29tbWl0Q29udGV4dCA9XG4vKiAgICAgICAgICAgICAgICAqL1xuMzI7XG52YXIgUmV0cnlBZnRlckVycm9yID1cbi8qICAgICAgICovXG42NDtcbnZhciBSb290SW5jb21wbGV0ZSA9IDA7XG52YXIgUm9vdEZhdGFsRXJyb3JlZCA9IDE7XG52YXIgUm9vdEVycm9yZWQgPSAyO1xudmFyIFJvb3RTdXNwZW5kZWQgPSAzO1xudmFyIFJvb3RTdXNwZW5kZWRXaXRoRGVsYXkgPSA0O1xudmFyIFJvb3RDb21wbGV0ZWQgPSA1OyAvLyBEZXNjcmliZXMgd2hlcmUgd2UgYXJlIGluIHRoZSBSZWFjdCBleGVjdXRpb24gc3RhY2tcblxudmFyIGV4ZWN1dGlvbkNvbnRleHQgPSBOb0NvbnRleHQ7IC8vIFRoZSByb290IHdlJ3JlIHdvcmtpbmcgb25cblxudmFyIHdvcmtJblByb2dyZXNzUm9vdCA9IG51bGw7IC8vIFRoZSBmaWJlciB3ZSdyZSB3b3JraW5nIG9uXG5cbnZhciB3b3JrSW5Qcm9ncmVzcyA9IG51bGw7IC8vIFRoZSBsYW5lcyB3ZSdyZSByZW5kZXJpbmdcblxudmFyIHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzID0gTm9MYW5lczsgLy8gU3RhY2sgdGhhdCBhbGxvd3MgY29tcG9uZW50cyB0byBjaGFuZ2UgdGhlIHJlbmRlciBsYW5lcyBmb3IgaXRzIHN1YnRyZWVcbi8vIFRoaXMgaXMgYSBzdXBlcnNldCBvZiB0aGUgbGFuZXMgd2Ugc3RhcnRlZCB3b3JraW5nIG9uIGF0IHRoZSByb290LiBUaGUgb25seVxuLy8gY2FzZSB3aGVyZSBpdCdzIGRpZmZlcmVudCBmcm9tIGB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lc2AgaXMgd2hlbiB3ZVxuLy8gZW50ZXIgYSBzdWJ0cmVlIHRoYXQgaXMgaGlkZGVuIGFuZCBuZWVkcyB0byBiZSB1bmhpZGRlbjogU3VzcGVuc2UgYW5kXG4vLyBPZmZzY3JlZW4gY29tcG9uZW50LlxuLy9cbi8vIE1vc3QgdGhpbmdzIGluIHRoZSB3b3JrIGxvb3Agc2hvdWxkIGRlYWwgd2l0aCB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcy5cbi8vIE1vc3QgdGhpbmdzIGluIGJlZ2luL2NvbXBsZXRlIHBoYXNlcyBzaG91bGQgZGVhbCB3aXRoIHN1YnRyZWVSZW5kZXJMYW5lcy5cblxudmFyIHN1YnRyZWVSZW5kZXJMYW5lcyA9IE5vTGFuZXM7XG52YXIgc3VidHJlZVJlbmRlckxhbmVzQ3Vyc29yID0gY3JlYXRlQ3Vyc29yKE5vTGFuZXMpOyAvLyBXaGV0aGVyIHRvIHJvb3QgY29tcGxldGVkLCBlcnJvcmVkLCBzdXNwZW5kZWQsIGV0Yy5cblxudmFyIHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgPSBSb290SW5jb21wbGV0ZTsgLy8gQSBmYXRhbCBlcnJvciwgaWYgb25lIGlzIHRocm93blxuXG52YXIgd29ya0luUHJvZ3Jlc3NSb290RmF0YWxFcnJvciA9IG51bGw7IC8vIFwiSW5jbHVkZWRcIiBsYW5lcyByZWZlciB0byBsYW5lcyB0aGF0IHdlcmUgd29ya2VkIG9uIGR1cmluZyB0aGlzIHJlbmRlci4gSXQnc1xuLy8gc2xpZ2h0bHkgZGlmZmVyZW50IHRoYW4gYHJlbmRlckxhbmVzYCBiZWNhdXNlIGByZW5kZXJMYW5lc2AgY2FuIGNoYW5nZSBhcyB5b3Vcbi8vIGVudGVyIGFuZCBleGl0IGFuIE9mZnNjcmVlbiB0cmVlLiBUaGlzIHZhbHVlIGlzIHRoZSBjb21iaW5hdGlvbiBvZiBhbGwgcmVuZGVyXG4vLyBsYW5lcyBmb3IgdGhlIGVudGlyZSByZW5kZXIgcGhhc2UuXG5cbnZhciB3b3JrSW5Qcm9ncmVzc1Jvb3RJbmNsdWRlZExhbmVzID0gTm9MYW5lczsgLy8gVGhlIHdvcmsgbGVmdCBvdmVyIGJ5IGNvbXBvbmVudHMgdGhhdCB3ZXJlIHZpc2l0ZWQgZHVyaW5nIHRoaXMgcmVuZGVyLiBPbmx5XG4vLyBpbmNsdWRlcyB1bnByb2Nlc3NlZCB1cGRhdGVzLCBub3Qgd29yayBpbiBiYWlsZWQgb3V0IGNoaWxkcmVuLlxuXG52YXIgd29ya0luUHJvZ3Jlc3NSb290U2tpcHBlZExhbmVzID0gTm9MYW5lczsgLy8gTGFuZXMgdGhhdCB3ZXJlIHVwZGF0ZWQgKGluIGFuIGludGVybGVhdmVkIGV2ZW50KSBkdXJpbmcgdGhpcyByZW5kZXIuXG5cbnZhciB3b3JrSW5Qcm9ncmVzc1Jvb3RVcGRhdGVkTGFuZXMgPSBOb0xhbmVzOyAvLyBMYW5lcyB0aGF0IHdlcmUgcGluZ2VkIChpbiBhbiBpbnRlcmxlYXZlZCBldmVudCkgZHVyaW5nIHRoaXMgcmVuZGVyLlxuXG52YXIgd29ya0luUHJvZ3Jlc3NSb290UGluZ2VkTGFuZXMgPSBOb0xhbmVzO1xudmFyIG1vc3RSZWNlbnRseVVwZGF0ZWRSb290ID0gbnVsbDsgLy8gVGhlIG1vc3QgcmVjZW50IHRpbWUgd2UgY29tbWl0dGVkIGEgZmFsbGJhY2suIFRoaXMgbGV0cyB1cyBlbnN1cmUgYSB0cmFpblxuLy8gbW9kZWwgd2hlcmUgd2UgZG9uJ3QgY29tbWl0IG5ldyBsb2FkaW5nIHN0YXRlcyBpbiB0b28gcXVpY2sgc3VjY2Vzc2lvbi5cblxudmFyIGdsb2JhbE1vc3RSZWNlbnRGYWxsYmFja1RpbWUgPSAwO1xudmFyIEZBTExCQUNLX1RIUk9UVExFX01TID0gNTAwOyAvLyBUaGUgYWJzb2x1dGUgdGltZSBmb3Igd2hlbiB3ZSBzaG91bGQgc3RhcnQgZ2l2aW5nIHVwIG9uIHJlbmRlcmluZ1xuLy8gbW9yZSBhbmQgcHJlZmVyIENQVSBzdXNwZW5zZSBoZXVyaXN0aWNzIGluc3RlYWQuXG5cbnZhciB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJUYXJnZXRUaW1lID0gSW5maW5pdHk7IC8vIEhvdyBsb25nIGEgcmVuZGVyIGlzIHN1cHBvc2VkIHRvIHRha2UgYmVmb3JlIHdlIHN0YXJ0IGZvbGxvd2luZyBDUFVcbi8vIHN1c3BlbnNlIGhldXJpc3RpY3MgYW5kIG9wdCBvdXQgb2YgcmVuZGVyaW5nIG1vcmUgY29udGVudC5cblxudmFyIFJFTkRFUl9USU1FT1VUX01TID0gNTAwO1xuXG5mdW5jdGlvbiByZXNldFJlbmRlclRpbWVyKCkge1xuICB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJUYXJnZXRUaW1lID0gbm93KCkgKyBSRU5ERVJfVElNRU9VVF9NUztcbn1cblxuZnVuY3Rpb24gZ2V0UmVuZGVyVGFyZ2V0VGltZSgpIHtcbiAgcmV0dXJuIHdvcmtJblByb2dyZXNzUm9vdFJlbmRlclRhcmdldFRpbWU7XG59XG52YXIgbmV4dEVmZmVjdCA9IG51bGw7XG52YXIgaGFzVW5jYXVnaHRFcnJvciA9IGZhbHNlO1xudmFyIGZpcnN0VW5jYXVnaHRFcnJvciA9IG51bGw7XG52YXIgbGVnYWN5RXJyb3JCb3VuZGFyaWVzVGhhdEFscmVhZHlGYWlsZWQgPSBudWxsO1xudmFyIHJvb3REb2VzSGF2ZVBhc3NpdmVFZmZlY3RzID0gZmFsc2U7XG52YXIgcm9vdFdpdGhQZW5kaW5nUGFzc2l2ZUVmZmVjdHMgPSBudWxsO1xudmFyIHBlbmRpbmdQYXNzaXZlRWZmZWN0c1JlbmRlclByaW9yaXR5ID0gTm9Qcmlvcml0eSQxO1xudmFyIHBlbmRpbmdQYXNzaXZlRWZmZWN0c0xhbmVzID0gTm9MYW5lcztcbnZhciBwZW5kaW5nUGFzc2l2ZUhvb2tFZmZlY3RzTW91bnQgPSBbXTtcbnZhciBwZW5kaW5nUGFzc2l2ZUhvb2tFZmZlY3RzVW5tb3VudCA9IFtdO1xudmFyIHJvb3RzV2l0aFBlbmRpbmdEaXNjcmV0ZVVwZGF0ZXMgPSBudWxsOyAvLyBVc2UgdGhlc2UgdG8gcHJldmVudCBhbiBpbmZpbml0ZSBsb29wIG9mIG5lc3RlZCB1cGRhdGVzXG5cbnZhciBORVNURURfVVBEQVRFX0xJTUlUID0gNTA7XG52YXIgbmVzdGVkVXBkYXRlQ291bnQgPSAwO1xudmFyIHJvb3RXaXRoTmVzdGVkVXBkYXRlcyA9IG51bGw7XG52YXIgTkVTVEVEX1BBU1NJVkVfVVBEQVRFX0xJTUlUID0gNTA7XG52YXIgbmVzdGVkUGFzc2l2ZVVwZGF0ZUNvdW50ID0gMDsgLy8gTWFya3MgdGhlIG5lZWQgdG8gcmVzY2hlZHVsZSBwZW5kaW5nIGludGVyYWN0aW9ucyBhdCB0aGVzZSBsYW5lc1xuLy8gZHVyaW5nIHRoZSBjb21taXQgcGhhc2UuIFRoaXMgZW5hYmxlcyB0aGVtIHRvIGJlIHRyYWNlZCBhY3Jvc3MgY29tcG9uZW50c1xuLy8gdGhhdCBzcGF3biBuZXcgd29yayBkdXJpbmcgcmVuZGVyLiBFLmcuIGhpZGRlbiBib3VuZGFyaWVzLCBzdXNwZW5kZWQgU1NSXG4vLyBoeWRyYXRpb24gb3IgU3VzcGVuc2VMaXN0LlxuLy8gVE9ETzogQ2FuIHVzZSBhIGJpdG1hc2sgaW5zdGVhZCBvZiBhbiBhcnJheVxuXG52YXIgc3Bhd25lZFdvcmtEdXJpbmdSZW5kZXIgPSBudWxsOyAvLyBJZiB0d28gdXBkYXRlcyBhcmUgc2NoZWR1bGVkIHdpdGhpbiB0aGUgc2FtZSBldmVudCwgd2Ugc2hvdWxkIHRyZWF0IHRoZWlyXG4vLyBldmVudCB0aW1lcyBhcyBzaW11bHRhbmVvdXMsIGV2ZW4gaWYgdGhlIGFjdHVhbCBjbG9jayB0aW1lIGhhcyBhZHZhbmNlZFxuLy8gYmV0d2VlbiB0aGUgZmlyc3QgYW5kIHNlY29uZCBjYWxsLlxuXG52YXIgY3VycmVudEV2ZW50VGltZSA9IE5vVGltZXN0YW1wO1xudmFyIGN1cnJlbnRFdmVudFdpcExhbmVzID0gTm9MYW5lcztcbnZhciBjdXJyZW50RXZlbnRQZW5kaW5nTGFuZXMgPSBOb0xhbmVzOyAvLyBEZXYgb25seSBmbGFnIHRoYXQgdHJhY2tzIGlmIHBhc3NpdmUgZWZmZWN0cyBhcmUgY3VycmVudGx5IGJlaW5nIGZsdXNoZWQuXG4vLyBXZSB3YXJuIGFib3V0IHN0YXRlIHVwZGF0ZXMgZm9yIHVubW91bnRlZCBjb21wb25lbnRzIGRpZmZlcmVudGx5IGluIHRoaXMgY2FzZS5cblxudmFyIGlzRmx1c2hpbmdQYXNzaXZlRWZmZWN0cyA9IGZhbHNlO1xudmFyIGZvY3VzZWRJbnN0YW5jZUhhbmRsZSA9IG51bGw7XG52YXIgc2hvdWxkRmlyZUFmdGVyQWN0aXZlSW5zdGFuY2VCbHVyID0gZmFsc2U7XG5mdW5jdGlvbiBnZXRXb3JrSW5Qcm9ncmVzc1Jvb3QoKSB7XG4gIHJldHVybiB3b3JrSW5Qcm9ncmVzc1Jvb3Q7XG59XG5mdW5jdGlvbiByZXF1ZXN0RXZlbnRUaW1lKCkge1xuICBpZiAoKGV4ZWN1dGlvbkNvbnRleHQgJiAoUmVuZGVyQ29udGV4dCB8IENvbW1pdENvbnRleHQpKSAhPT0gTm9Db250ZXh0KSB7XG4gICAgLy8gV2UncmUgaW5zaWRlIFJlYWN0LCBzbyBpdCdzIGZpbmUgdG8gcmVhZCB0aGUgYWN0dWFsIHRpbWUuXG4gICAgcmV0dXJuIG5vdygpO1xuICB9IC8vIFdlJ3JlIG5vdCBpbnNpZGUgUmVhY3QsIHNvIHdlIG1heSBiZSBpbiB0aGUgbWlkZGxlIG9mIGEgYnJvd3NlciBldmVudC5cblxuXG4gIGlmIChjdXJyZW50RXZlbnRUaW1lICE9PSBOb1RpbWVzdGFtcCkge1xuICAgIC8vIFVzZSB0aGUgc2FtZSBzdGFydCB0aW1lIGZvciBhbGwgdXBkYXRlcyB1bnRpbCB3ZSBlbnRlciBSZWFjdCBhZ2Fpbi5cbiAgICByZXR1cm4gY3VycmVudEV2ZW50VGltZTtcbiAgfSAvLyBUaGlzIGlzIHRoZSBmaXJzdCB1cGRhdGUgc2luY2UgUmVhY3QgeWllbGRlZC4gQ29tcHV0ZSBhIG5ldyBzdGFydCB0aW1lLlxuXG5cbiAgY3VycmVudEV2ZW50VGltZSA9IG5vdygpO1xuICByZXR1cm4gY3VycmVudEV2ZW50VGltZTtcbn1cbmZ1bmN0aW9uIHJlcXVlc3RVcGRhdGVMYW5lKGZpYmVyKSB7XG4gIC8vIFNwZWNpYWwgY2FzZXNcbiAgdmFyIG1vZGUgPSBmaWJlci5tb2RlO1xuXG4gIGlmICgobW9kZSAmIEJsb2NraW5nTW9kZSkgPT09IE5vTW9kZSkge1xuICAgIHJldHVybiBTeW5jTGFuZTtcbiAgfSBlbHNlIGlmICgobW9kZSAmIENvbmN1cnJlbnRNb2RlKSA9PT0gTm9Nb2RlKSB7XG4gICAgcmV0dXJuIGdldEN1cnJlbnRQcmlvcml0eUxldmVsKCkgPT09IEltbWVkaWF0ZVByaW9yaXR5JDEgPyBTeW5jTGFuZSA6IFN5bmNCYXRjaGVkTGFuZTtcbiAgfSAvLyBUaGUgYWxnb3JpdGhtIGZvciBhc3NpZ25pbmcgYW4gdXBkYXRlIHRvIGEgbGFuZSBzaG91bGQgYmUgc3RhYmxlIGZvciBhbGxcbiAgLy8gdXBkYXRlcyBhdCB0aGUgc2FtZSBwcmlvcml0eSB3aXRoaW4gdGhlIHNhbWUgZXZlbnQuIFRvIGRvIHRoaXMsIHRoZSBpbnB1dHNcbiAgLy8gdG8gdGhlIGFsZ29yaXRobSBtdXN0IGJlIHRoZSBzYW1lLiBGb3IgZXhhbXBsZSwgd2UgdXNlIHRoZSBgcmVuZGVyTGFuZXNgXG4gIC8vIHRvIGF2b2lkIGNob29zaW5nIGEgbGFuZSB0aGF0IGlzIGFscmVhZHkgaW4gdGhlIG1pZGRsZSBvZiByZW5kZXJpbmcuXG4gIC8vXG4gIC8vIEhvd2V2ZXIsIHRoZSBcImluY2x1ZGVkXCIgbGFuZXMgY291bGQgYmUgbXV0YXRlZCBpbiBiZXR3ZWVuIHVwZGF0ZXMgaW4gdGhlXG4gIC8vIHNhbWUgZXZlbnQsIGxpa2UgaWYgeW91IHBlcmZvcm0gYW4gdXBkYXRlIGluc2lkZSBgZmx1c2hTeW5jYC4gT3IgYW55IG90aGVyXG4gIC8vIGNvZGUgcGF0aCB0aGF0IG1pZ2h0IGNhbGwgYHByZXBhcmVGcmVzaFN0YWNrYC5cbiAgLy9cbiAgLy8gVGhlIHRyaWNrIHdlIHVzZSBpcyB0byBjYWNoZSB0aGUgZmlyc3Qgb2YgZWFjaCBvZiB0aGVzZSBpbnB1dHMgd2l0aGluIGFuXG4gIC8vIGV2ZW50LiBUaGVuIHJlc2V0IHRoZSBjYWNoZWQgdmFsdWVzIG9uY2Ugd2UgY2FuIGJlIHN1cmUgdGhlIGV2ZW50IGlzIG92ZXIuXG4gIC8vIE91ciBoZXVyaXN0aWMgZm9yIHRoYXQgaXMgd2hlbmV2ZXIgd2UgZW50ZXIgYSBjb25jdXJyZW50IHdvcmsgbG9vcC5cbiAgLy9cbiAgLy8gV2UnbGwgZG8gdGhlIHNhbWUgZm9yIGBjdXJyZW50RXZlbnRQZW5kaW5nTGFuZXNgIGJlbG93LlxuXG5cbiAgaWYgKGN1cnJlbnRFdmVudFdpcExhbmVzID09PSBOb0xhbmVzKSB7XG4gICAgY3VycmVudEV2ZW50V2lwTGFuZXMgPSB3b3JrSW5Qcm9ncmVzc1Jvb3RJbmNsdWRlZExhbmVzO1xuICB9XG5cbiAgdmFyIGlzVHJhbnNpdGlvbiA9IHJlcXVlc3RDdXJyZW50VHJhbnNpdGlvbigpICE9PSBOb1RyYW5zaXRpb247XG5cbiAgaWYgKGlzVHJhbnNpdGlvbikge1xuICAgIGlmIChjdXJyZW50RXZlbnRQZW5kaW5nTGFuZXMgIT09IE5vTGFuZXMpIHtcbiAgICAgIGN1cnJlbnRFdmVudFBlbmRpbmdMYW5lcyA9IG1vc3RSZWNlbnRseVVwZGF0ZWRSb290ICE9PSBudWxsID8gbW9zdFJlY2VudGx5VXBkYXRlZFJvb3QucGVuZGluZ0xhbmVzIDogTm9MYW5lcztcbiAgICB9XG5cbiAgICByZXR1cm4gZmluZFRyYW5zaXRpb25MYW5lKGN1cnJlbnRFdmVudFdpcExhbmVzLCBjdXJyZW50RXZlbnRQZW5kaW5nTGFuZXMpO1xuICB9IC8vIFRPRE86IFJlbW92ZSB0aGlzIGRlcGVuZGVuY3kgb24gdGhlIFNjaGVkdWxlciBwcmlvcml0eS5cbiAgLy8gVG8gZG8gdGhhdCwgd2UncmUgcmVwbGFjaW5nIGl0IHdpdGggYW4gdXBkYXRlIGxhbmUgcHJpb3JpdHkuXG5cblxuICB2YXIgc2NoZWR1bGVyUHJpb3JpdHkgPSBnZXRDdXJyZW50UHJpb3JpdHlMZXZlbCgpOyAvLyBUaGUgb2xkIGJlaGF2aW9yIHdhcyB1c2luZyB0aGUgcHJpb3JpdHkgbGV2ZWwgb2YgdGhlIFNjaGVkdWxlci5cbiAgLy8gVGhpcyBjb3VwbGVzIFJlYWN0IHRvIHRoZSBTY2hlZHVsZXIgaW50ZXJuYWxzLCBzbyB3ZSdyZSByZXBsYWNpbmcgaXRcbiAgLy8gd2l0aCB0aGUgY3VycmVudFVwZGF0ZUxhbmVQcmlvcml0eSBhYm92ZS4gQXMgYW4gZXhhbXBsZSBvZiBob3cgdGhpc1xuICAvLyBjb3VsZCBiZSBwcm9ibGVtYXRpYywgaWYgd2UncmUgbm90IGluc2lkZSBgU2NoZWR1bGVyLnJ1bldpdGhQcmlvcml0eWAsXG4gIC8vIHRoZW4gd2UnbGwgZ2V0IHRoZSBwcmlvcml0eSBvZiB0aGUgY3VycmVudCBydW5uaW5nIFNjaGVkdWxlciB0YXNrLFxuICAvLyB3aGljaCBpcyBwcm9iYWJseSBub3Qgd2hhdCB3ZSB3YW50LlxuXG4gIHZhciBsYW5lO1xuXG4gIGlmICggLy8gVE9ETzogVGVtcG9yYXJ5LiBXZSdyZSByZW1vdmluZyB0aGUgY29uY2VwdCBvZiBkaXNjcmV0ZSB1cGRhdGVzLlxuICAoZXhlY3V0aW9uQ29udGV4dCAmIERpc2NyZXRlRXZlbnRDb250ZXh0KSAhPT0gTm9Db250ZXh0ICYmIHNjaGVkdWxlclByaW9yaXR5ID09PSBVc2VyQmxvY2tpbmdQcmlvcml0eSQyKSB7XG4gICAgbGFuZSA9IGZpbmRVcGRhdGVMYW5lKElucHV0RGlzY3JldGVMYW5lUHJpb3JpdHksIGN1cnJlbnRFdmVudFdpcExhbmVzKTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgc2NoZWR1bGVyTGFuZVByaW9yaXR5ID0gc2NoZWR1bGVyUHJpb3JpdHlUb0xhbmVQcmlvcml0eShzY2hlZHVsZXJQcmlvcml0eSk7XG5cbiAgICBsYW5lID0gZmluZFVwZGF0ZUxhbmUoc2NoZWR1bGVyTGFuZVByaW9yaXR5LCBjdXJyZW50RXZlbnRXaXBMYW5lcyk7XG4gIH1cblxuICByZXR1cm4gbGFuZTtcbn1cblxuZnVuY3Rpb24gcmVxdWVzdFJldHJ5TGFuZShmaWJlcikge1xuICAvLyBUaGlzIGlzIGEgZm9yayBvZiBgcmVxdWVzdFVwZGF0ZUxhbmVgIGRlc2lnbmVkIHNwZWNpZmljYWxseSBmb3IgU3VzcGVuc2VcbiAgLy8gXCJyZXRyaWVzXCIg4oCUIGEgc3BlY2lhbCB1cGRhdGUgdGhhdCBhdHRlbXB0cyB0byBmbGlwIGEgU3VzcGVuc2UgYm91bmRhcnlcbiAgLy8gZnJvbSBpdHMgcGxhY2Vob2xkZXIgc3RhdGUgdG8gaXRzIHByaW1hcnkvcmVzb2x2ZWQgc3RhdGUuXG4gIC8vIFNwZWNpYWwgY2FzZXNcbiAgdmFyIG1vZGUgPSBmaWJlci5tb2RlO1xuXG4gIGlmICgobW9kZSAmIEJsb2NraW5nTW9kZSkgPT09IE5vTW9kZSkge1xuICAgIHJldHVybiBTeW5jTGFuZTtcbiAgfSBlbHNlIGlmICgobW9kZSAmIENvbmN1cnJlbnRNb2RlKSA9PT0gTm9Nb2RlKSB7XG4gICAgcmV0dXJuIGdldEN1cnJlbnRQcmlvcml0eUxldmVsKCkgPT09IEltbWVkaWF0ZVByaW9yaXR5JDEgPyBTeW5jTGFuZSA6IFN5bmNCYXRjaGVkTGFuZTtcbiAgfSAvLyBTZWUgYHJlcXVlc3RVcGRhdGVMYW5lYCBmb3IgZXhwbGFuYXRpb24gb2YgYGN1cnJlbnRFdmVudFdpcExhbmVzYFxuXG5cbiAgaWYgKGN1cnJlbnRFdmVudFdpcExhbmVzID09PSBOb0xhbmVzKSB7XG4gICAgY3VycmVudEV2ZW50V2lwTGFuZXMgPSB3b3JrSW5Qcm9ncmVzc1Jvb3RJbmNsdWRlZExhbmVzO1xuICB9XG5cbiAgcmV0dXJuIGZpbmRSZXRyeUxhbmUoY3VycmVudEV2ZW50V2lwTGFuZXMpO1xufVxuXG5mdW5jdGlvbiBzY2hlZHVsZVVwZGF0ZU9uRmliZXIoZmliZXIsIGxhbmUsIGV2ZW50VGltZSkge1xuICBjaGVja0Zvck5lc3RlZFVwZGF0ZXMoKTtcbiAgd2FybkFib3V0UmVuZGVyUGhhc2VVcGRhdGVzSW5ERVYoZmliZXIpO1xuICB2YXIgcm9vdCA9IG1hcmtVcGRhdGVMYW5lRnJvbUZpYmVyVG9Sb290KGZpYmVyLCBsYW5lKTtcblxuICBpZiAocm9vdCA9PT0gbnVsbCkge1xuICAgIHdhcm5BYm91dFVwZGF0ZU9uVW5tb3VudGVkRmliZXJJbkRFVihmaWJlcik7XG4gICAgcmV0dXJuIG51bGw7XG4gIH0gLy8gTWFyayB0aGF0IHRoZSByb290IGhhcyBhIHBlbmRpbmcgdXBkYXRlLlxuXG5cbiAgbWFya1Jvb3RVcGRhdGVkKHJvb3QsIGxhbmUsIGV2ZW50VGltZSk7XG5cbiAgaWYgKHJvb3QgPT09IHdvcmtJblByb2dyZXNzUm9vdCkge1xuICAgIC8vIFJlY2VpdmVkIGFuIHVwZGF0ZSB0byBhIHRyZWUgdGhhdCdzIGluIHRoZSBtaWRkbGUgb2YgcmVuZGVyaW5nLiBNYXJrXG4gICAgLy8gdGhhdCB0aGVyZSB3YXMgYW4gaW50ZXJsZWF2ZWQgdXBkYXRlIHdvcmsgb24gdGhpcyByb290LiBVbmxlc3MgdGhlXG4gICAgLy8gYGRlZmVyUmVuZGVyUGhhc2VVcGRhdGVUb05leHRCYXRjaGAgZmxhZyBpcyBvZmYgYW5kIHRoaXMgaXMgYSByZW5kZXJcbiAgICAvLyBwaGFzZSB1cGRhdGUuIEluIHRoYXQgY2FzZSwgd2UgZG9uJ3QgdHJlYXQgcmVuZGVyIHBoYXNlIHVwZGF0ZXMgYXMgaWZcbiAgICAvLyB0aGV5IHdlcmUgaW50ZXJsZWF2ZWQsIGZvciBiYWNrd2FyZHMgY29tcGF0IHJlYXNvbnMuXG4gICAge1xuICAgICAgd29ya0luUHJvZ3Jlc3NSb290VXBkYXRlZExhbmVzID0gbWVyZ2VMYW5lcyh3b3JrSW5Qcm9ncmVzc1Jvb3RVcGRhdGVkTGFuZXMsIGxhbmUpO1xuICAgIH1cblxuICAgIGlmICh3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzID09PSBSb290U3VzcGVuZGVkV2l0aERlbGF5KSB7XG4gICAgICAvLyBUaGUgcm9vdCBhbHJlYWR5IHN1c3BlbmRlZCB3aXRoIGEgZGVsYXksIHdoaWNoIG1lYW5zIHRoaXMgcmVuZGVyXG4gICAgICAvLyBkZWZpbml0ZWx5IHdvbid0IGZpbmlzaC4gU2luY2Ugd2UgaGF2ZSBhIG5ldyB1cGRhdGUsIGxldCdzIG1hcmsgaXQgYXNcbiAgICAgIC8vIHN1c3BlbmRlZCBub3csIHJpZ2h0IGJlZm9yZSBtYXJraW5nIHRoZSBpbmNvbWluZyB1cGRhdGUuIFRoaXMgaGFzIHRoZVxuICAgICAgLy8gZWZmZWN0IG9mIGludGVycnVwdGluZyB0aGUgY3VycmVudCByZW5kZXIgYW5kIHN3aXRjaGluZyB0byB0aGUgdXBkYXRlLlxuICAgICAgLy8gVE9ETzogTWFrZSBzdXJlIHRoaXMgZG9lc24ndCBvdmVycmlkZSBwaW5ncyB0aGF0IGhhcHBlbiB3aGlsZSB3ZSd2ZVxuICAgICAgLy8gYWxyZWFkeSBzdGFydGVkIHJlbmRlcmluZy5cbiAgICAgIG1hcmtSb290U3VzcGVuZGVkJDEocm9vdCwgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMpO1xuICAgIH1cbiAgfSAvLyBUT0RPOiByZXF1ZXN0VXBkYXRlTGFuZVByaW9yaXR5IGFsc28gcmVhZHMgdGhlIHByaW9yaXR5LiBQYXNzIHRoZVxuICAvLyBwcmlvcml0eSBhcyBhbiBhcmd1bWVudCB0byB0aGF0IGZ1bmN0aW9uIGFuZCB0aGlzIG9uZS5cblxuXG4gIHZhciBwcmlvcml0eUxldmVsID0gZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWwoKTtcblxuICBpZiAobGFuZSA9PT0gU3luY0xhbmUpIHtcbiAgICBpZiAoIC8vIENoZWNrIGlmIHdlJ3JlIGluc2lkZSB1bmJhdGNoZWRVcGRhdGVzXG4gICAgKGV4ZWN1dGlvbkNvbnRleHQgJiBMZWdhY3lVbmJhdGNoZWRDb250ZXh0KSAhPT0gTm9Db250ZXh0ICYmIC8vIENoZWNrIGlmIHdlJ3JlIG5vdCBhbHJlYWR5IHJlbmRlcmluZ1xuICAgIChleGVjdXRpb25Db250ZXh0ICYgKFJlbmRlckNvbnRleHQgfCBDb21taXRDb250ZXh0KSkgPT09IE5vQ29udGV4dCkge1xuICAgICAgLy8gUmVnaXN0ZXIgcGVuZGluZyBpbnRlcmFjdGlvbnMgb24gdGhlIHJvb3QgdG8gYXZvaWQgbG9zaW5nIHRyYWNlZCBpbnRlcmFjdGlvbiBkYXRhLlxuICAgICAgc2NoZWR1bGVQZW5kaW5nSW50ZXJhY3Rpb25zKHJvb3QsIGxhbmUpOyAvLyBUaGlzIGlzIGEgbGVnYWN5IGVkZ2UgY2FzZS4gVGhlIGluaXRpYWwgbW91bnQgb2YgYSBSZWFjdERPTS5yZW5kZXItZWRcbiAgICAgIC8vIHJvb3QgaW5zaWRlIG9mIGJhdGNoZWRVcGRhdGVzIHNob3VsZCBiZSBzeW5jaHJvbm91cywgYnV0IGxheW91dCB1cGRhdGVzXG4gICAgICAvLyBzaG91bGQgYmUgZGVmZXJyZWQgdW50aWwgdGhlIGVuZCBvZiB0aGUgYmF0Y2guXG5cbiAgICAgIHBlcmZvcm1TeW5jV29ya09uUm9vdChyb290KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZW5zdXJlUm9vdElzU2NoZWR1bGVkKHJvb3QsIGV2ZW50VGltZSk7XG4gICAgICBzY2hlZHVsZVBlbmRpbmdJbnRlcmFjdGlvbnMocm9vdCwgbGFuZSk7XG5cbiAgICAgIGlmIChleGVjdXRpb25Db250ZXh0ID09PSBOb0NvbnRleHQpIHtcbiAgICAgICAgLy8gRmx1c2ggdGhlIHN5bmNocm9ub3VzIHdvcmsgbm93LCB1bmxlc3Mgd2UncmUgYWxyZWFkeSB3b3JraW5nIG9yIGluc2lkZVxuICAgICAgICAvLyBhIGJhdGNoLiBUaGlzIGlzIGludGVudGlvbmFsbHkgaW5zaWRlIHNjaGVkdWxlVXBkYXRlT25GaWJlciBpbnN0ZWFkIG9mXG4gICAgICAgIC8vIHNjaGVkdWxlQ2FsbGJhY2tGb3JGaWJlciB0byBwcmVzZXJ2ZSB0aGUgYWJpbGl0eSB0byBzY2hlZHVsZSBhIGNhbGxiYWNrXG4gICAgICAgIC8vIHdpdGhvdXQgaW1tZWRpYXRlbHkgZmx1c2hpbmcgaXQuIFdlIG9ubHkgZG8gdGhpcyBmb3IgdXNlci1pbml0aWF0ZWRcbiAgICAgICAgLy8gdXBkYXRlcywgdG8gcHJlc2VydmUgaGlzdG9yaWNhbCBiZWhhdmlvciBvZiBsZWdhY3kgbW9kZS5cbiAgICAgICAgcmVzZXRSZW5kZXJUaW1lcigpO1xuICAgICAgICBmbHVzaFN5bmNDYWxsYmFja1F1ZXVlKCk7XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIC8vIFNjaGVkdWxlIGEgZGlzY3JldGUgdXBkYXRlIGJ1dCBvbmx5IGlmIGl0J3Mgbm90IFN5bmMuXG4gICAgaWYgKChleGVjdXRpb25Db250ZXh0ICYgRGlzY3JldGVFdmVudENvbnRleHQpICE9PSBOb0NvbnRleHQgJiYgKCAvLyBPbmx5IHVwZGF0ZXMgYXQgdXNlci1ibG9ja2luZyBwcmlvcml0eSBvciBncmVhdGVyIGFyZSBjb25zaWRlcmVkXG4gICAgLy8gZGlzY3JldGUsIGV2ZW4gaW5zaWRlIGEgZGlzY3JldGUgZXZlbnQuXG4gICAgcHJpb3JpdHlMZXZlbCA9PT0gVXNlckJsb2NraW5nUHJpb3JpdHkkMiB8fCBwcmlvcml0eUxldmVsID09PSBJbW1lZGlhdGVQcmlvcml0eSQxKSkge1xuICAgICAgLy8gVGhpcyBpcyB0aGUgcmVzdWx0IG9mIGEgZGlzY3JldGUgZXZlbnQuIFRyYWNrIHRoZSBsb3dlc3QgcHJpb3JpdHlcbiAgICAgIC8vIGRpc2NyZXRlIHVwZGF0ZSBwZXIgcm9vdCBzbyB3ZSBjYW4gZmx1c2ggdGhlbSBlYXJseSwgaWYgbmVlZGVkLlxuICAgICAgaWYgKHJvb3RzV2l0aFBlbmRpbmdEaXNjcmV0ZVVwZGF0ZXMgPT09IG51bGwpIHtcbiAgICAgICAgcm9vdHNXaXRoUGVuZGluZ0Rpc2NyZXRlVXBkYXRlcyA9IG5ldyBTZXQoW3Jvb3RdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJvb3RzV2l0aFBlbmRpbmdEaXNjcmV0ZVVwZGF0ZXMuYWRkKHJvb3QpO1xuICAgICAgfVxuICAgIH0gLy8gU2NoZWR1bGUgb3RoZXIgdXBkYXRlcyBhZnRlciBpbiBjYXNlIHRoZSBjYWxsYmFjayBpcyBzeW5jLlxuXG5cbiAgICBlbnN1cmVSb290SXNTY2hlZHVsZWQocm9vdCwgZXZlbnRUaW1lKTtcbiAgICBzY2hlZHVsZVBlbmRpbmdJbnRlcmFjdGlvbnMocm9vdCwgbGFuZSk7XG4gIH0gLy8gV2UgdXNlIHRoaXMgd2hlbiBhc3NpZ25pbmcgYSBsYW5lIGZvciBhIHRyYW5zaXRpb24gaW5zaWRlXG4gIC8vIGByZXF1ZXN0VXBkYXRlTGFuZWAuIFdlIGFzc3VtZSBpdCdzIHRoZSBzYW1lIGFzIHRoZSByb290IGJlaW5nIHVwZGF0ZWQsXG4gIC8vIHNpbmNlIGluIHRoZSBjb21tb24gY2FzZSBvZiBhIHNpbmdsZSByb290IGFwcCBpdCBwcm9iYWJseSBpcy4gSWYgaXQncyBub3RcbiAgLy8gdGhlIHNhbWUgcm9vdCwgdGhlbiBpdCdzIG5vdCBhIGh1Z2UgZGVhbCwgd2UganVzdCBtaWdodCBiYXRjaCBtb3JlIHN0dWZmXG4gIC8vIHRvZ2V0aGVyIG1vcmUgdGhhbiBuZWNlc3NhcnkuXG5cblxuICBtb3N0UmVjZW50bHlVcGRhdGVkUm9vdCA9IHJvb3Q7XG59IC8vIFRoaXMgaXMgc3BsaXQgaW50byBhIHNlcGFyYXRlIGZ1bmN0aW9uIHNvIHdlIGNhbiBtYXJrIGEgZmliZXIgd2l0aCBwZW5kaW5nXG4vLyB3b3JrIHdpdGhvdXQgdHJlYXRpbmcgaXQgYXMgYSB0eXBpY2FsIHVwZGF0ZSB0aGF0IG9yaWdpbmF0ZXMgZnJvbSBhbiBldmVudDtcbi8vIGUuZy4gcmV0cnlpbmcgYSBTdXNwZW5zZSBib3VuZGFyeSBpc24ndCBhbiB1cGRhdGUsIGJ1dCBpdCBkb2VzIHNjaGVkdWxlIHdvcmtcbi8vIG9uIGEgZmliZXIuXG5cbmZ1bmN0aW9uIG1hcmtVcGRhdGVMYW5lRnJvbUZpYmVyVG9Sb290KHNvdXJjZUZpYmVyLCBsYW5lKSB7XG4gIC8vIFVwZGF0ZSB0aGUgc291cmNlIGZpYmVyJ3MgbGFuZXNcbiAgc291cmNlRmliZXIubGFuZXMgPSBtZXJnZUxhbmVzKHNvdXJjZUZpYmVyLmxhbmVzLCBsYW5lKTtcbiAgdmFyIGFsdGVybmF0ZSA9IHNvdXJjZUZpYmVyLmFsdGVybmF0ZTtcblxuICBpZiAoYWx0ZXJuYXRlICE9PSBudWxsKSB7XG4gICAgYWx0ZXJuYXRlLmxhbmVzID0gbWVyZ2VMYW5lcyhhbHRlcm5hdGUubGFuZXMsIGxhbmUpO1xuICB9XG5cbiAge1xuICAgIGlmIChhbHRlcm5hdGUgPT09IG51bGwgJiYgKHNvdXJjZUZpYmVyLmZsYWdzICYgKFBsYWNlbWVudCB8IEh5ZHJhdGluZykpICE9PSBOb0ZsYWdzKSB7XG4gICAgICB3YXJuQWJvdXRVcGRhdGVPbk5vdFlldE1vdW50ZWRGaWJlckluREVWKHNvdXJjZUZpYmVyKTtcbiAgICB9XG4gIH0gLy8gV2FsayB0aGUgcGFyZW50IHBhdGggdG8gdGhlIHJvb3QgYW5kIHVwZGF0ZSB0aGUgY2hpbGQgZXhwaXJhdGlvbiB0aW1lLlxuXG5cbiAgdmFyIG5vZGUgPSBzb3VyY2VGaWJlcjtcbiAgdmFyIHBhcmVudCA9IHNvdXJjZUZpYmVyLnJldHVybjtcblxuICB3aGlsZSAocGFyZW50ICE9PSBudWxsKSB7XG4gICAgcGFyZW50LmNoaWxkTGFuZXMgPSBtZXJnZUxhbmVzKHBhcmVudC5jaGlsZExhbmVzLCBsYW5lKTtcbiAgICBhbHRlcm5hdGUgPSBwYXJlbnQuYWx0ZXJuYXRlO1xuXG4gICAgaWYgKGFsdGVybmF0ZSAhPT0gbnVsbCkge1xuICAgICAgYWx0ZXJuYXRlLmNoaWxkTGFuZXMgPSBtZXJnZUxhbmVzKGFsdGVybmF0ZS5jaGlsZExhbmVzLCBsYW5lKTtcbiAgICB9IGVsc2Uge1xuICAgICAge1xuICAgICAgICBpZiAoKHBhcmVudC5mbGFncyAmIChQbGFjZW1lbnQgfCBIeWRyYXRpbmcpKSAhPT0gTm9GbGFncykge1xuICAgICAgICAgIHdhcm5BYm91dFVwZGF0ZU9uTm90WWV0TW91bnRlZEZpYmVySW5ERVYoc291cmNlRmliZXIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgbm9kZSA9IHBhcmVudDtcbiAgICBwYXJlbnQgPSBwYXJlbnQucmV0dXJuO1xuICB9XG5cbiAgaWYgKG5vZGUudGFnID09PSBIb3N0Um9vdCkge1xuICAgIHZhciByb290ID0gbm9kZS5zdGF0ZU5vZGU7XG4gICAgcmV0dXJuIHJvb3Q7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn0gLy8gVXNlIHRoaXMgZnVuY3Rpb24gdG8gc2NoZWR1bGUgYSB0YXNrIGZvciBhIHJvb3QuIFRoZXJlJ3Mgb25seSBvbmUgdGFzayBwZXJcbi8vIHJvb3Q7IGlmIGEgdGFzayB3YXMgYWxyZWFkeSBzY2hlZHVsZWQsIHdlJ2xsIGNoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgcHJpb3JpdHlcbi8vIG9mIHRoZSBleGlzdGluZyB0YXNrIGlzIHRoZSBzYW1lIGFzIHRoZSBwcmlvcml0eSBvZiB0aGUgbmV4dCBsZXZlbCB0aGF0IHRoZVxuLy8gcm9vdCBoYXMgd29yayBvbi4gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgb24gZXZlcnkgdXBkYXRlLCBhbmQgcmlnaHQgYmVmb3JlXG4vLyBleGl0aW5nIGEgdGFzay5cblxuXG5mdW5jdGlvbiBlbnN1cmVSb290SXNTY2hlZHVsZWQocm9vdCwgY3VycmVudFRpbWUpIHtcbiAgdmFyIGV4aXN0aW5nQ2FsbGJhY2tOb2RlID0gcm9vdC5jYWxsYmFja05vZGU7IC8vIENoZWNrIGlmIGFueSBsYW5lcyBhcmUgYmVpbmcgc3RhcnZlZCBieSBvdGhlciB3b3JrLiBJZiBzbywgbWFyayB0aGVtIGFzXG4gIC8vIGV4cGlyZWQgc28gd2Uga25vdyB0byB3b3JrIG9uIHRob3NlIG5leHQuXG5cbiAgbWFya1N0YXJ2ZWRMYW5lc0FzRXhwaXJlZChyb290LCBjdXJyZW50VGltZSk7IC8vIERldGVybWluZSB0aGUgbmV4dCBsYW5lcyB0byB3b3JrIG9uLCBhbmQgdGhlaXIgcHJpb3JpdHkuXG5cbiAgdmFyIG5leHRMYW5lcyA9IGdldE5leHRMYW5lcyhyb290LCByb290ID09PSB3b3JrSW5Qcm9ncmVzc1Jvb3QgPyB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyA6IE5vTGFuZXMpOyAvLyBUaGlzIHJldHVybnMgdGhlIHByaW9yaXR5IGxldmVsIGNvbXB1dGVkIGR1cmluZyB0aGUgYGdldE5leHRMYW5lc2AgY2FsbC5cblxuICB2YXIgbmV3Q2FsbGJhY2tQcmlvcml0eSA9IHJldHVybk5leHRMYW5lc1ByaW9yaXR5KCk7XG5cbiAgaWYgKG5leHRMYW5lcyA9PT0gTm9MYW5lcykge1xuICAgIC8vIFNwZWNpYWwgY2FzZTogVGhlcmUncyBub3RoaW5nIHRvIHdvcmsgb24uXG4gICAgaWYgKGV4aXN0aW5nQ2FsbGJhY2tOb2RlICE9PSBudWxsKSB7XG4gICAgICBjYW5jZWxDYWxsYmFjayhleGlzdGluZ0NhbGxiYWNrTm9kZSk7XG4gICAgICByb290LmNhbGxiYWNrTm9kZSA9IG51bGw7XG4gICAgICByb290LmNhbGxiYWNrUHJpb3JpdHkgPSBOb0xhbmVQcmlvcml0eTtcbiAgICB9XG5cbiAgICByZXR1cm47XG4gIH0gLy8gQ2hlY2sgaWYgdGhlcmUncyBhbiBleGlzdGluZyB0YXNrLiBXZSBtYXkgYmUgYWJsZSB0byByZXVzZSBpdC5cblxuXG4gIGlmIChleGlzdGluZ0NhbGxiYWNrTm9kZSAhPT0gbnVsbCkge1xuICAgIHZhciBleGlzdGluZ0NhbGxiYWNrUHJpb3JpdHkgPSByb290LmNhbGxiYWNrUHJpb3JpdHk7XG5cbiAgICBpZiAoZXhpc3RpbmdDYWxsYmFja1ByaW9yaXR5ID09PSBuZXdDYWxsYmFja1ByaW9yaXR5KSB7XG4gICAgICAvLyBUaGUgcHJpb3JpdHkgaGFzbid0IGNoYW5nZWQuIFdlIGNhbiByZXVzZSB0aGUgZXhpc3RpbmcgdGFzay4gRXhpdC5cbiAgICAgIHJldHVybjtcbiAgICB9IC8vIFRoZSBwcmlvcml0eSBjaGFuZ2VkLiBDYW5jZWwgdGhlIGV4aXN0aW5nIGNhbGxiYWNrLiBXZSdsbCBzY2hlZHVsZSBhIG5ld1xuICAgIC8vIG9uZSBiZWxvdy5cblxuXG4gICAgY2FuY2VsQ2FsbGJhY2soZXhpc3RpbmdDYWxsYmFja05vZGUpO1xuICB9IC8vIFNjaGVkdWxlIGEgbmV3IGNhbGxiYWNrLlxuXG5cbiAgdmFyIG5ld0NhbGxiYWNrTm9kZTtcblxuICBpZiAobmV3Q2FsbGJhY2tQcmlvcml0eSA9PT0gU3luY0xhbmVQcmlvcml0eSkge1xuICAgIC8vIFNwZWNpYWwgY2FzZTogU3luYyBSZWFjdCBjYWxsYmFja3MgYXJlIHNjaGVkdWxlZCBvbiBhIHNwZWNpYWxcbiAgICAvLyBpbnRlcm5hbCBxdWV1ZVxuICAgIG5ld0NhbGxiYWNrTm9kZSA9IHNjaGVkdWxlU3luY0NhbGxiYWNrKHBlcmZvcm1TeW5jV29ya09uUm9vdC5iaW5kKG51bGwsIHJvb3QpKTtcbiAgfSBlbHNlIGlmIChuZXdDYWxsYmFja1ByaW9yaXR5ID09PSBTeW5jQmF0Y2hlZExhbmVQcmlvcml0eSkge1xuICAgIG5ld0NhbGxiYWNrTm9kZSA9IHNjaGVkdWxlQ2FsbGJhY2soSW1tZWRpYXRlUHJpb3JpdHkkMSwgcGVyZm9ybVN5bmNXb3JrT25Sb290LmJpbmQobnVsbCwgcm9vdCkpO1xuICB9IGVsc2Uge1xuICAgIHZhciBzY2hlZHVsZXJQcmlvcml0eUxldmVsID0gbGFuZVByaW9yaXR5VG9TY2hlZHVsZXJQcmlvcml0eShuZXdDYWxsYmFja1ByaW9yaXR5KTtcbiAgICBuZXdDYWxsYmFja05vZGUgPSBzY2hlZHVsZUNhbGxiYWNrKHNjaGVkdWxlclByaW9yaXR5TGV2ZWwsIHBlcmZvcm1Db25jdXJyZW50V29ya09uUm9vdC5iaW5kKG51bGwsIHJvb3QpKTtcbiAgfVxuXG4gIHJvb3QuY2FsbGJhY2tQcmlvcml0eSA9IG5ld0NhbGxiYWNrUHJpb3JpdHk7XG4gIHJvb3QuY2FsbGJhY2tOb2RlID0gbmV3Q2FsbGJhY2tOb2RlO1xufSAvLyBUaGlzIGlzIHRoZSBlbnRyeSBwb2ludCBmb3IgZXZlcnkgY29uY3VycmVudCB0YXNrLCBpLmUuIGFueXRoaW5nIHRoYXRcbi8vIGdvZXMgdGhyb3VnaCBTY2hlZHVsZXIuXG5cblxuZnVuY3Rpb24gcGVyZm9ybUNvbmN1cnJlbnRXb3JrT25Sb290KHJvb3QpIHtcbiAgLy8gU2luY2Ugd2Uga25vdyB3ZSdyZSBpbiBhIFJlYWN0IGV2ZW50LCB3ZSBjYW4gY2xlYXIgdGhlIGN1cnJlbnRcbiAgLy8gZXZlbnQgdGltZS4gVGhlIG5leHQgdXBkYXRlIHdpbGwgY29tcHV0ZSBhIG5ldyBldmVudCB0aW1lLlxuICBjdXJyZW50RXZlbnRUaW1lID0gTm9UaW1lc3RhbXA7XG4gIGN1cnJlbnRFdmVudFdpcExhbmVzID0gTm9MYW5lcztcbiAgY3VycmVudEV2ZW50UGVuZGluZ0xhbmVzID0gTm9MYW5lcztcblxuICBpZiAoISgoZXhlY3V0aW9uQ29udGV4dCAmIChSZW5kZXJDb250ZXh0IHwgQ29tbWl0Q29udGV4dCkpID09PSBOb0NvbnRleHQpKSB7XG4gICAge1xuICAgICAgdGhyb3cgRXJyb3IoIFwiU2hvdWxkIG5vdCBhbHJlYWR5IGJlIHdvcmtpbmcuXCIgKTtcbiAgICB9XG4gIH0gLy8gRmx1c2ggYW55IHBlbmRpbmcgcGFzc2l2ZSBlZmZlY3RzIGJlZm9yZSBkZWNpZGluZyB3aGljaCBsYW5lcyB0byB3b3JrIG9uLFxuICAvLyBpbiBjYXNlIHRoZXkgc2NoZWR1bGUgYWRkaXRpb25hbCB3b3JrLlxuXG5cbiAgdmFyIG9yaWdpbmFsQ2FsbGJhY2tOb2RlID0gcm9vdC5jYWxsYmFja05vZGU7XG4gIHZhciBkaWRGbHVzaFBhc3NpdmVFZmZlY3RzID0gZmx1c2hQYXNzaXZlRWZmZWN0cygpO1xuXG4gIGlmIChkaWRGbHVzaFBhc3NpdmVFZmZlY3RzKSB7XG4gICAgLy8gU29tZXRoaW5nIGluIHRoZSBwYXNzaXZlIGVmZmVjdCBwaGFzZSBtYXkgaGF2ZSBjYW5jZWxlZCB0aGUgY3VycmVudCB0YXNrLlxuICAgIC8vIENoZWNrIGlmIHRoZSB0YXNrIG5vZGUgZm9yIHRoaXMgcm9vdCB3YXMgY2hhbmdlZC5cbiAgICBpZiAocm9vdC5jYWxsYmFja05vZGUgIT09IG9yaWdpbmFsQ2FsbGJhY2tOb2RlKSB7XG4gICAgICAvLyBUaGUgY3VycmVudCB0YXNrIHdhcyBjYW5jZWxlZC4gRXhpdC4gV2UgZG9uJ3QgbmVlZCB0byBjYWxsXG4gICAgICAvLyBgZW5zdXJlUm9vdElzU2NoZWR1bGVkYCBiZWNhdXNlIHRoZSBjaGVjayBhYm92ZSBpbXBsaWVzIGVpdGhlciB0aGF0XG4gICAgICAvLyB0aGVyZSdzIGEgbmV3IHRhc2ssIG9yIHRoYXQgdGhlcmUncyBubyByZW1haW5pbmcgd29yayBvbiB0aGlzIHJvb3QuXG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH0gLy8gRGV0ZXJtaW5lIHRoZSBuZXh0IGV4cGlyYXRpb24gdGltZSB0byB3b3JrIG9uLCB1c2luZyB0aGUgZmllbGRzIHN0b3JlZFxuICAvLyBvbiB0aGUgcm9vdC5cblxuXG4gIHZhciBsYW5lcyA9IGdldE5leHRMYW5lcyhyb290LCByb290ID09PSB3b3JrSW5Qcm9ncmVzc1Jvb3QgPyB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyA6IE5vTGFuZXMpO1xuXG4gIGlmIChsYW5lcyA9PT0gTm9MYW5lcykge1xuICAgIC8vIERlZmVuc2l2ZSBjb2RpbmcuIFRoaXMgaXMgbmV2ZXIgZXhwZWN0ZWQgdG8gaGFwcGVuLlxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgdmFyIGV4aXRTdGF0dXMgPSByZW5kZXJSb290Q29uY3VycmVudChyb290LCBsYW5lcyk7XG5cbiAgaWYgKGluY2x1ZGVzU29tZUxhbmUod29ya0luUHJvZ3Jlc3NSb290SW5jbHVkZWRMYW5lcywgd29ya0luUHJvZ3Jlc3NSb290VXBkYXRlZExhbmVzKSkge1xuICAgIC8vIFRoZSByZW5kZXIgaW5jbHVkZWQgbGFuZXMgdGhhdCB3ZXJlIHVwZGF0ZWQgZHVyaW5nIHRoZSByZW5kZXIgcGhhc2UuXG4gICAgLy8gRm9yIGV4YW1wbGUsIHdoZW4gdW5oaWRpbmcgYSBoaWRkZW4gdHJlZSwgd2UgaW5jbHVkZSBhbGwgdGhlIGxhbmVzXG4gICAgLy8gdGhhdCB3ZXJlIHByZXZpb3VzbHkgc2tpcHBlZCB3aGVuIHRoZSB0cmVlIHdhcyBoaWRkZW4uIFRoYXQgc2V0IG9mXG4gICAgLy8gbGFuZXMgaXMgYSBzdXBlcnNldCBvZiB0aGUgbGFuZXMgd2Ugc3RhcnRlZCByZW5kZXJpbmcgd2l0aC5cbiAgICAvL1xuICAgIC8vIFNvIHdlJ2xsIHRocm93IG91dCB0aGUgY3VycmVudCB3b3JrIGFuZCByZXN0YXJ0LlxuICAgIHByZXBhcmVGcmVzaFN0YWNrKHJvb3QsIE5vTGFuZXMpO1xuICB9IGVsc2UgaWYgKGV4aXRTdGF0dXMgIT09IFJvb3RJbmNvbXBsZXRlKSB7XG4gICAgaWYgKGV4aXRTdGF0dXMgPT09IFJvb3RFcnJvcmVkKSB7XG4gICAgICBleGVjdXRpb25Db250ZXh0IHw9IFJldHJ5QWZ0ZXJFcnJvcjsgLy8gSWYgYW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIGh5ZHJhdGlvbixcbiAgICAgIC8vIGRpc2NhcmQgc2VydmVyIHJlc3BvbnNlIGFuZCBmYWxsIGJhY2sgdG8gY2xpZW50IHNpZGUgcmVuZGVyLlxuXG4gICAgICBpZiAocm9vdC5oeWRyYXRlKSB7XG4gICAgICAgIHJvb3QuaHlkcmF0ZSA9IGZhbHNlO1xuICAgICAgICBjbGVhckNvbnRhaW5lcihyb290LmNvbnRhaW5lckluZm8pO1xuICAgICAgfSAvLyBJZiBzb21ldGhpbmcgdGhyZXcgYW4gZXJyb3IsIHRyeSByZW5kZXJpbmcgb25lIG1vcmUgdGltZS4gV2UnbGwgcmVuZGVyXG4gICAgICAvLyBzeW5jaHJvbm91c2x5IHRvIGJsb2NrIGNvbmN1cnJlbnQgZGF0YSBtdXRhdGlvbnMsIGFuZCB3ZSdsbCBpbmNsdWRlc1xuICAgICAgLy8gYWxsIHBlbmRpbmcgdXBkYXRlcyBhcmUgaW5jbHVkZWQuIElmIGl0IHN0aWxsIGZhaWxzIGFmdGVyIHRoZSBzZWNvbmRcbiAgICAgIC8vIGF0dGVtcHQsIHdlJ2xsIGdpdmUgdXAgYW5kIGNvbW1pdCB0aGUgcmVzdWx0aW5nIHRyZWUuXG5cblxuICAgICAgbGFuZXMgPSBnZXRMYW5lc1RvUmV0cnlTeW5jaHJvbm91c2x5T25FcnJvcihyb290KTtcblxuICAgICAgaWYgKGxhbmVzICE9PSBOb0xhbmVzKSB7XG4gICAgICAgIGV4aXRTdGF0dXMgPSByZW5kZXJSb290U3luYyhyb290LCBsYW5lcyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGV4aXRTdGF0dXMgPT09IFJvb3RGYXRhbEVycm9yZWQpIHtcbiAgICAgIHZhciBmYXRhbEVycm9yID0gd29ya0luUHJvZ3Jlc3NSb290RmF0YWxFcnJvcjtcbiAgICAgIHByZXBhcmVGcmVzaFN0YWNrKHJvb3QsIE5vTGFuZXMpO1xuICAgICAgbWFya1Jvb3RTdXNwZW5kZWQkMShyb290LCBsYW5lcyk7XG4gICAgICBlbnN1cmVSb290SXNTY2hlZHVsZWQocm9vdCwgbm93KCkpO1xuICAgICAgdGhyb3cgZmF0YWxFcnJvcjtcbiAgICB9IC8vIFdlIG5vdyBoYXZlIGEgY29uc2lzdGVudCB0cmVlLiBUaGUgbmV4dCBzdGVwIGlzIGVpdGhlciB0byBjb21taXQgaXQsXG4gICAgLy8gb3IsIGlmIHNvbWV0aGluZyBzdXNwZW5kZWQsIHdhaXQgdG8gY29tbWl0IGl0IGFmdGVyIGEgdGltZW91dC5cblxuXG4gICAgdmFyIGZpbmlzaGVkV29yayA9IHJvb3QuY3VycmVudC5hbHRlcm5hdGU7XG4gICAgcm9vdC5maW5pc2hlZFdvcmsgPSBmaW5pc2hlZFdvcms7XG4gICAgcm9vdC5maW5pc2hlZExhbmVzID0gbGFuZXM7XG4gICAgZmluaXNoQ29uY3VycmVudFJlbmRlcihyb290LCBleGl0U3RhdHVzLCBsYW5lcyk7XG4gIH1cblxuICBlbnN1cmVSb290SXNTY2hlZHVsZWQocm9vdCwgbm93KCkpO1xuXG4gIGlmIChyb290LmNhbGxiYWNrTm9kZSA9PT0gb3JpZ2luYWxDYWxsYmFja05vZGUpIHtcbiAgICAvLyBUaGUgdGFzayBub2RlIHNjaGVkdWxlZCBmb3IgdGhpcyByb290IGlzIHRoZSBzYW1lIG9uZSB0aGF0J3NcbiAgICAvLyBjdXJyZW50bHkgZXhlY3V0ZWQuIE5lZWQgdG8gcmV0dXJuIGEgY29udGludWF0aW9uLlxuICAgIHJldHVybiBwZXJmb3JtQ29uY3VycmVudFdvcmtPblJvb3QuYmluZChudWxsLCByb290KTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiBmaW5pc2hDb25jdXJyZW50UmVuZGVyKHJvb3QsIGV4aXRTdGF0dXMsIGxhbmVzKSB7XG4gIHN3aXRjaCAoZXhpdFN0YXR1cykge1xuICAgIGNhc2UgUm9vdEluY29tcGxldGU6XG4gICAgY2FzZSBSb290RmF0YWxFcnJvcmVkOlxuICAgICAge1xuICAgICAgICB7XG4gICAgICAgICAge1xuICAgICAgICAgICAgdGhyb3cgRXJyb3IoIFwiUm9vdCBkaWQgbm90IGNvbXBsZXRlLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LlwiICk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgLy8gRmxvdyBrbm93cyBhYm91dCBpbnZhcmlhbnQsIHNvIGl0IGNvbXBsYWlucyBpZiBJIGFkZCBhIGJyZWFrXG4gICAgLy8gc3RhdGVtZW50LCBidXQgZXNsaW50IGRvZXNuJ3Qga25vdyBhYm91dCBpbnZhcmlhbnQsIHNvIGl0IGNvbXBsYWluc1xuICAgIC8vIGlmIEkgZG8uIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1mYWxsdGhyb3VnaFxuXG4gICAgY2FzZSBSb290RXJyb3JlZDpcbiAgICAgIHtcbiAgICAgICAgLy8gV2Ugc2hvdWxkIGhhdmUgYWxyZWFkeSBhdHRlbXB0ZWQgdG8gcmV0cnkgdGhpcyB0cmVlLiBJZiB3ZSByZWFjaGVkXG4gICAgICAgIC8vIHRoaXMgcG9pbnQsIGl0IGVycm9yZWQgYWdhaW4uIENvbW1pdCBpdC5cbiAgICAgICAgY29tbWl0Um9vdChyb290KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICBjYXNlIFJvb3RTdXNwZW5kZWQ6XG4gICAgICB7XG4gICAgICAgIG1hcmtSb290U3VzcGVuZGVkJDEocm9vdCwgbGFuZXMpOyAvLyBXZSBoYXZlIGFuIGFjY2VwdGFibGUgbG9hZGluZyBzdGF0ZS4gV2UgbmVlZCB0byBmaWd1cmUgb3V0IGlmIHdlXG4gICAgICAgIC8vIHNob3VsZCBpbW1lZGlhdGVseSBjb21taXQgaXQgb3Igd2FpdCBhIGJpdC5cblxuICAgICAgICBpZiAoaW5jbHVkZXNPbmx5UmV0cmllcyhsYW5lcykgJiYgLy8gZG8gbm90IGRlbGF5IGlmIHdlJ3JlIGluc2lkZSBhbiBhY3QoKSBzY29wZVxuICAgICAgICAhc2hvdWxkRm9yY2VGbHVzaEZhbGxiYWNrc0luREVWKCkpIHtcbiAgICAgICAgICAvLyBUaGlzIHJlbmRlciBvbmx5IGluY2x1ZGVkIHJldHJpZXMsIG5vIHVwZGF0ZXMuIFRocm90dGxlIGNvbW1pdHRpbmdcbiAgICAgICAgICAvLyByZXRyaWVzIHNvIHRoYXQgd2UgZG9uJ3Qgc2hvdyB0b28gbWFueSBsb2FkaW5nIHN0YXRlcyB0b28gcXVpY2tseS5cbiAgICAgICAgICB2YXIgbXNVbnRpbFRpbWVvdXQgPSBnbG9iYWxNb3N0UmVjZW50RmFsbGJhY2tUaW1lICsgRkFMTEJBQ0tfVEhST1RUTEVfTVMgLSBub3coKTsgLy8gRG9uJ3QgYm90aGVyIHdpdGggYSB2ZXJ5IHNob3J0IHN1c3BlbnNlIHRpbWUuXG5cbiAgICAgICAgICBpZiAobXNVbnRpbFRpbWVvdXQgPiAxMCkge1xuICAgICAgICAgICAgdmFyIG5leHRMYW5lcyA9IGdldE5leHRMYW5lcyhyb290LCBOb0xhbmVzKTtcblxuICAgICAgICAgICAgaWYgKG5leHRMYW5lcyAhPT0gTm9MYW5lcykge1xuICAgICAgICAgICAgICAvLyBUaGVyZSdzIGFkZGl0aW9uYWwgd29yayBvbiB0aGlzIHJvb3QuXG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgc3VzcGVuZGVkTGFuZXMgPSByb290LnN1c3BlbmRlZExhbmVzO1xuXG4gICAgICAgICAgICBpZiAoIWlzU3Vic2V0T2ZMYW5lcyhzdXNwZW5kZWRMYW5lcywgbGFuZXMpKSB7XG4gICAgICAgICAgICAgIC8vIFdlIHNob3VsZCBwcmVmZXIgdG8gcmVuZGVyIHRoZSBmYWxsYmFjayBvZiBhdCB0aGUgbGFzdFxuICAgICAgICAgICAgICAvLyBzdXNwZW5kZWQgbGV2ZWwuIFBpbmcgdGhlIGxhc3Qgc3VzcGVuZGVkIGxldmVsIHRvIHRyeVxuICAgICAgICAgICAgICAvLyByZW5kZXJpbmcgaXQgYWdhaW4uXG4gICAgICAgICAgICAgIC8vIEZJWE1FOiBXaGF0IGlmIHRoZSBzdXNwZW5kZWQgbGFuZXMgYXJlIElkbGU/IFNob3VsZCBub3QgcmVzdGFydC5cbiAgICAgICAgICAgICAgdmFyIGV2ZW50VGltZSA9IHJlcXVlc3RFdmVudFRpbWUoKTtcbiAgICAgICAgICAgICAgbWFya1Jvb3RQaW5nZWQocm9vdCwgc3VzcGVuZGVkTGFuZXMpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH0gLy8gVGhlIHJlbmRlciBpcyBzdXNwZW5kZWQsIGl0IGhhc24ndCB0aW1lZCBvdXQsIGFuZCB0aGVyZSdzIG5vXG4gICAgICAgICAgICAvLyBsb3dlciBwcmlvcml0eSB3b3JrIHRvIGRvLiBJbnN0ZWFkIG9mIGNvbW1pdHRpbmcgdGhlIGZhbGxiYWNrXG4gICAgICAgICAgICAvLyBpbW1lZGlhdGVseSwgd2FpdCBmb3IgbW9yZSBkYXRhIHRvIGFycml2ZS5cblxuXG4gICAgICAgICAgICByb290LnRpbWVvdXRIYW5kbGUgPSBzY2hlZHVsZVRpbWVvdXQoY29tbWl0Um9vdC5iaW5kKG51bGwsIHJvb3QpLCBtc1VudGlsVGltZW91dCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH0gLy8gVGhlIHdvcmsgZXhwaXJlZC4gQ29tbWl0IGltbWVkaWF0ZWx5LlxuXG5cbiAgICAgICAgY29tbWl0Um9vdChyb290KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICBjYXNlIFJvb3RTdXNwZW5kZWRXaXRoRGVsYXk6XG4gICAgICB7XG4gICAgICAgIG1hcmtSb290U3VzcGVuZGVkJDEocm9vdCwgbGFuZXMpO1xuXG4gICAgICAgIGlmIChpbmNsdWRlc09ubHlUcmFuc2l0aW9ucyhsYW5lcykpIHtcbiAgICAgICAgICAvLyBUaGlzIGlzIGEgdHJhbnNpdGlvbiwgc28gd2Ugc2hvdWxkIGV4aXQgd2l0aG91dCBjb21taXR0aW5nIGFcbiAgICAgICAgICAvLyBwbGFjZWhvbGRlciBhbmQgd2l0aG91dCBzY2hlZHVsaW5nIGEgdGltZW91dC4gRGVsYXkgaW5kZWZpbml0ZWx5XG4gICAgICAgICAgLy8gdW50aWwgd2UgcmVjZWl2ZSBtb3JlIGRhdGEuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXNob3VsZEZvcmNlRmx1c2hGYWxsYmFja3NJbkRFVigpKSB7XG4gICAgICAgICAgLy8gVGhpcyBpcyBub3QgYSB0cmFuc2l0aW9uLCBidXQgd2UgZGlkIHRyaWdnZXIgYW4gYXZvaWRlZCBzdGF0ZS5cbiAgICAgICAgICAvLyBTY2hlZHVsZSBhIHBsYWNlaG9sZGVyIHRvIGRpc3BsYXkgYWZ0ZXIgYSBzaG9ydCBkZWxheSwgdXNpbmcgdGhlIEp1c3RcbiAgICAgICAgICAvLyBOb3RpY2VhYmxlIERpZmZlcmVuY2UuXG4gICAgICAgICAgLy8gVE9ETzogSXMgdGhlIEpORCBvcHRpbWl6YXRpb24gd29ydGggdGhlIGFkZGVkIGNvbXBsZXhpdHk/IElmIHRoaXMgaXNcbiAgICAgICAgICAvLyB0aGUgb25seSByZWFzb24gd2UgdHJhY2sgdGhlIGV2ZW50IHRpbWUsIHRoZW4gcHJvYmFibHkgbm90LlxuICAgICAgICAgIC8vIENvbnNpZGVyIHJlbW92aW5nLlxuICAgICAgICAgIHZhciBtb3N0UmVjZW50RXZlbnRUaW1lID0gZ2V0TW9zdFJlY2VudEV2ZW50VGltZShyb290LCBsYW5lcyk7XG4gICAgICAgICAgdmFyIGV2ZW50VGltZU1zID0gbW9zdFJlY2VudEV2ZW50VGltZTtcbiAgICAgICAgICB2YXIgdGltZUVsYXBzZWRNcyA9IG5vdygpIC0gZXZlbnRUaW1lTXM7XG5cbiAgICAgICAgICB2YXIgX21zVW50aWxUaW1lb3V0ID0gam5kKHRpbWVFbGFwc2VkTXMpIC0gdGltZUVsYXBzZWRNczsgLy8gRG9uJ3QgYm90aGVyIHdpdGggYSB2ZXJ5IHNob3J0IHN1c3BlbnNlIHRpbWUuXG5cblxuICAgICAgICAgIGlmIChfbXNVbnRpbFRpbWVvdXQgPiAxMCkge1xuICAgICAgICAgICAgLy8gSW5zdGVhZCBvZiBjb21taXR0aW5nIHRoZSBmYWxsYmFjayBpbW1lZGlhdGVseSwgd2FpdCBmb3IgbW9yZSBkYXRhXG4gICAgICAgICAgICAvLyB0byBhcnJpdmUuXG4gICAgICAgICAgICByb290LnRpbWVvdXRIYW5kbGUgPSBzY2hlZHVsZVRpbWVvdXQoY29tbWl0Um9vdC5iaW5kKG51bGwsIHJvb3QpLCBfbXNVbnRpbFRpbWVvdXQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9IC8vIENvbW1pdCB0aGUgcGxhY2Vob2xkZXIuXG5cblxuICAgICAgICBjb21taXRSb290KHJvb3QpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgIGNhc2UgUm9vdENvbXBsZXRlZDpcbiAgICAgIHtcbiAgICAgICAgLy8gVGhlIHdvcmsgY29tcGxldGVkLiBSZWFkeSB0byBjb21taXQuXG4gICAgICAgIGNvbW1pdFJvb3Qocm9vdCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgZGVmYXVsdDpcbiAgICAgIHtcbiAgICAgICAge1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRocm93IEVycm9yKCBcIlVua25vd24gcm9vdCBleGl0IHN0YXR1cy5cIiApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIG1hcmtSb290U3VzcGVuZGVkJDEocm9vdCwgc3VzcGVuZGVkTGFuZXMpIHtcbiAgLy8gV2hlbiBzdXNwZW5kaW5nLCB3ZSBzaG91bGQgYWx3YXlzIGV4Y2x1ZGUgbGFuZXMgdGhhdCB3ZXJlIHBpbmdlZCBvciAobW9yZVxuICAvLyByYXJlbHksIHNpbmNlIHdlIHRyeSB0byBhdm9pZCBpdCkgdXBkYXRlZCBkdXJpbmcgdGhlIHJlbmRlciBwaGFzZS5cbiAgLy8gVE9ETzogTG9sIG1heWJlIHRoZXJlJ3MgYSBiZXR0ZXIgd2F5IHRvIGZhY3RvciB0aGlzIGJlc2lkZXMgdGhpc1xuICAvLyBvYm5veGlvdXNseSBuYW1lZCBmdW5jdGlvbiA6KVxuICBzdXNwZW5kZWRMYW5lcyA9IHJlbW92ZUxhbmVzKHN1c3BlbmRlZExhbmVzLCB3b3JrSW5Qcm9ncmVzc1Jvb3RQaW5nZWRMYW5lcyk7XG4gIHN1c3BlbmRlZExhbmVzID0gcmVtb3ZlTGFuZXMoc3VzcGVuZGVkTGFuZXMsIHdvcmtJblByb2dyZXNzUm9vdFVwZGF0ZWRMYW5lcyk7XG4gIG1hcmtSb290U3VzcGVuZGVkKHJvb3QsIHN1c3BlbmRlZExhbmVzKTtcbn0gLy8gVGhpcyBpcyB0aGUgZW50cnkgcG9pbnQgZm9yIHN5bmNocm9ub3VzIHRhc2tzIHRoYXQgZG9uJ3QgZ29cbi8vIHRocm91Z2ggU2NoZWR1bGVyXG5cblxuZnVuY3Rpb24gcGVyZm9ybVN5bmNXb3JrT25Sb290KHJvb3QpIHtcbiAgaWYgKCEoKGV4ZWN1dGlvbkNvbnRleHQgJiAoUmVuZGVyQ29udGV4dCB8IENvbW1pdENvbnRleHQpKSA9PT0gTm9Db250ZXh0KSkge1xuICAgIHtcbiAgICAgIHRocm93IEVycm9yKCBcIlNob3VsZCBub3QgYWxyZWFkeSBiZSB3b3JraW5nLlwiICk7XG4gICAgfVxuICB9XG5cbiAgZmx1c2hQYXNzaXZlRWZmZWN0cygpO1xuICB2YXIgbGFuZXM7XG4gIHZhciBleGl0U3RhdHVzO1xuXG4gIGlmIChyb290ID09PSB3b3JrSW5Qcm9ncmVzc1Jvb3QgJiYgaW5jbHVkZXNTb21lTGFuZShyb290LmV4cGlyZWRMYW5lcywgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMpKSB7XG4gICAgLy8gVGhlcmUncyBhIHBhcnRpYWwgdHJlZSwgYW5kIGF0IGxlYXN0IG9uZSBvZiBpdHMgbGFuZXMgaGFzIGV4cGlyZWQuIEZpbmlzaFxuICAgIC8vIHJlbmRlcmluZyBpdCBiZWZvcmUgcmVuZGVyaW5nIHRoZSByZXN0IG9mIHRoZSBleHBpcmVkIHdvcmsuXG4gICAgbGFuZXMgPSB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcztcbiAgICBleGl0U3RhdHVzID0gcmVuZGVyUm9vdFN5bmMocm9vdCwgbGFuZXMpO1xuXG4gICAgaWYgKGluY2x1ZGVzU29tZUxhbmUod29ya0luUHJvZ3Jlc3NSb290SW5jbHVkZWRMYW5lcywgd29ya0luUHJvZ3Jlc3NSb290VXBkYXRlZExhbmVzKSkge1xuICAgICAgLy8gVGhlIHJlbmRlciBpbmNsdWRlZCBsYW5lcyB0aGF0IHdlcmUgdXBkYXRlZCBkdXJpbmcgdGhlIHJlbmRlciBwaGFzZS5cbiAgICAgIC8vIEZvciBleGFtcGxlLCB3aGVuIHVuaGlkaW5nIGEgaGlkZGVuIHRyZWUsIHdlIGluY2x1ZGUgYWxsIHRoZSBsYW5lc1xuICAgICAgLy8gdGhhdCB3ZXJlIHByZXZpb3VzbHkgc2tpcHBlZCB3aGVuIHRoZSB0cmVlIHdhcyBoaWRkZW4uIFRoYXQgc2V0IG9mXG4gICAgICAvLyBsYW5lcyBpcyBhIHN1cGVyc2V0IG9mIHRoZSBsYW5lcyB3ZSBzdGFydGVkIHJlbmRlcmluZyB3aXRoLlxuICAgICAgLy9cbiAgICAgIC8vIE5vdGUgdGhhdCB0aGlzIG9ubHkgaGFwcGVucyB3aGVuIHBhcnQgb2YgdGhlIHRyZWUgaXMgcmVuZGVyZWRcbiAgICAgIC8vIGNvbmN1cnJlbnRseS4gSWYgdGhlIHdob2xlIHRyZWUgaXMgcmVuZGVyZWQgc3luY2hyb25vdXNseSwgdGhlbiB0aGVyZVxuICAgICAgLy8gYXJlIG5vIGludGVybGVhdmVkIGV2ZW50cy5cbiAgICAgIGxhbmVzID0gZ2V0TmV4dExhbmVzKHJvb3QsIGxhbmVzKTtcbiAgICAgIGV4aXRTdGF0dXMgPSByZW5kZXJSb290U3luYyhyb290LCBsYW5lcyk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGxhbmVzID0gZ2V0TmV4dExhbmVzKHJvb3QsIE5vTGFuZXMpO1xuICAgIGV4aXRTdGF0dXMgPSByZW5kZXJSb290U3luYyhyb290LCBsYW5lcyk7XG4gIH1cblxuICBpZiAocm9vdC50YWcgIT09IExlZ2FjeVJvb3QgJiYgZXhpdFN0YXR1cyA9PT0gUm9vdEVycm9yZWQpIHtcbiAgICBleGVjdXRpb25Db250ZXh0IHw9IFJldHJ5QWZ0ZXJFcnJvcjsgLy8gSWYgYW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIGh5ZHJhdGlvbixcbiAgICAvLyBkaXNjYXJkIHNlcnZlciByZXNwb25zZSBhbmQgZmFsbCBiYWNrIHRvIGNsaWVudCBzaWRlIHJlbmRlci5cblxuICAgIGlmIChyb290Lmh5ZHJhdGUpIHtcbiAgICAgIHJvb3QuaHlkcmF0ZSA9IGZhbHNlO1xuICAgICAgY2xlYXJDb250YWluZXIocm9vdC5jb250YWluZXJJbmZvKTtcbiAgICB9IC8vIElmIHNvbWV0aGluZyB0aHJldyBhbiBlcnJvciwgdHJ5IHJlbmRlcmluZyBvbmUgbW9yZSB0aW1lLiBXZSdsbCByZW5kZXJcbiAgICAvLyBzeW5jaHJvbm91c2x5IHRvIGJsb2NrIGNvbmN1cnJlbnQgZGF0YSBtdXRhdGlvbnMsIGFuZCB3ZSdsbCBpbmNsdWRlc1xuICAgIC8vIGFsbCBwZW5kaW5nIHVwZGF0ZXMgYXJlIGluY2x1ZGVkLiBJZiBpdCBzdGlsbCBmYWlscyBhZnRlciB0aGUgc2Vjb25kXG4gICAgLy8gYXR0ZW1wdCwgd2UnbGwgZ2l2ZSB1cCBhbmQgY29tbWl0IHRoZSByZXN1bHRpbmcgdHJlZS5cblxuXG4gICAgbGFuZXMgPSBnZXRMYW5lc1RvUmV0cnlTeW5jaHJvbm91c2x5T25FcnJvcihyb290KTtcblxuICAgIGlmIChsYW5lcyAhPT0gTm9MYW5lcykge1xuICAgICAgZXhpdFN0YXR1cyA9IHJlbmRlclJvb3RTeW5jKHJvb3QsIGxhbmVzKTtcbiAgICB9XG4gIH1cblxuICBpZiAoZXhpdFN0YXR1cyA9PT0gUm9vdEZhdGFsRXJyb3JlZCkge1xuICAgIHZhciBmYXRhbEVycm9yID0gd29ya0luUHJvZ3Jlc3NSb290RmF0YWxFcnJvcjtcbiAgICBwcmVwYXJlRnJlc2hTdGFjayhyb290LCBOb0xhbmVzKTtcbiAgICBtYXJrUm9vdFN1c3BlbmRlZCQxKHJvb3QsIGxhbmVzKTtcbiAgICBlbnN1cmVSb290SXNTY2hlZHVsZWQocm9vdCwgbm93KCkpO1xuICAgIHRocm93IGZhdGFsRXJyb3I7XG4gIH0gLy8gV2Ugbm93IGhhdmUgYSBjb25zaXN0ZW50IHRyZWUuIEJlY2F1c2UgdGhpcyBpcyBhIHN5bmMgcmVuZGVyLCB3ZVxuICAvLyB3aWxsIGNvbW1pdCBpdCBldmVuIGlmIHNvbWV0aGluZyBzdXNwZW5kZWQuXG5cblxuICB2YXIgZmluaXNoZWRXb3JrID0gcm9vdC5jdXJyZW50LmFsdGVybmF0ZTtcbiAgcm9vdC5maW5pc2hlZFdvcmsgPSBmaW5pc2hlZFdvcms7XG4gIHJvb3QuZmluaXNoZWRMYW5lcyA9IGxhbmVzO1xuICBjb21taXRSb290KHJvb3QpOyAvLyBCZWZvcmUgZXhpdGluZywgbWFrZSBzdXJlIHRoZXJlJ3MgYSBjYWxsYmFjayBzY2hlZHVsZWQgZm9yIHRoZSBuZXh0XG4gIC8vIHBlbmRpbmcgbGV2ZWwuXG5cbiAgZW5zdXJlUm9vdElzU2NoZWR1bGVkKHJvb3QsIG5vdygpKTtcbiAgcmV0dXJuIG51bGw7XG59XG5mdW5jdGlvbiBmbHVzaERpc2NyZXRlVXBkYXRlcygpIHtcbiAgLy8gVE9ETzogU2hvdWxkIGJlIGFibGUgdG8gZmx1c2ggaW5zaWRlIGJhdGNoZWRVcGRhdGVzLCBidXQgbm90IGluc2lkZSBgYWN0YC5cbiAgLy8gSG93ZXZlciwgYGFjdGAgdXNlcyBgYmF0Y2hlZFVwZGF0ZXNgLCBzbyB0aGVyZSdzIG5vIHdheSB0byBkaXN0aW5ndWlzaFxuICAvLyB0aG9zZSB0d28gY2FzZXMuIE5lZWQgdG8gZml4IHRoaXMgYmVmb3JlIGV4cG9zaW5nIGZsdXNoRGlzY3JldGVVcGRhdGVzXG4gIC8vIGFzIGEgcHVibGljIEFQSS5cbiAgaWYgKChleGVjdXRpb25Db250ZXh0ICYgKEJhdGNoZWRDb250ZXh0IHwgUmVuZGVyQ29udGV4dCB8IENvbW1pdENvbnRleHQpKSAhPT0gTm9Db250ZXh0KSB7XG4gICAge1xuICAgICAgaWYgKChleGVjdXRpb25Db250ZXh0ICYgUmVuZGVyQ29udGV4dCkgIT09IE5vQ29udGV4dCkge1xuICAgICAgICBlcnJvcigndW5zdGFibGVfZmx1c2hEaXNjcmV0ZVVwZGF0ZXM6IENhbm5vdCBmbHVzaCB1cGRhdGVzIHdoZW4gUmVhY3QgaXMgJyArICdhbHJlYWR5IHJlbmRlcmluZy4nKTtcbiAgICAgIH1cbiAgICB9IC8vIFdlJ3JlIGFscmVhZHkgcmVuZGVyaW5nLCBzbyB3ZSBjYW4ndCBzeW5jaHJvbm91c2x5IGZsdXNoIHBlbmRpbmcgd29yay5cbiAgICAvLyBUaGlzIGlzIHByb2JhYmx5IGEgbmVzdGVkIGV2ZW50IGRpc3BhdGNoIHRyaWdnZXJlZCBieSBhIGxpZmVjeWNsZS9lZmZlY3QsXG4gICAgLy8gbGlrZSBgZWwuZm9jdXMoKWAuIEV4aXQuXG5cblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGZsdXNoUGVuZGluZ0Rpc2NyZXRlVXBkYXRlcygpOyAvLyBJZiB0aGUgZGlzY3JldGUgdXBkYXRlcyBzY2hlZHVsZWQgcGFzc2l2ZSBlZmZlY3RzLCBmbHVzaCB0aGVtIG5vdyBzbyB0aGF0XG4gIC8vIHRoZXkgZmlyZSBiZWZvcmUgdGhlIG5leHQgc2VyaWFsIGV2ZW50LlxuXG4gIGZsdXNoUGFzc2l2ZUVmZmVjdHMoKTtcbn1cblxuZnVuY3Rpb24gZmx1c2hQZW5kaW5nRGlzY3JldGVVcGRhdGVzKCkge1xuICBpZiAocm9vdHNXaXRoUGVuZGluZ0Rpc2NyZXRlVXBkYXRlcyAhPT0gbnVsbCkge1xuICAgIC8vIEZvciBlYWNoIHJvb3Qgd2l0aCBwZW5kaW5nIGRpc2NyZXRlIHVwZGF0ZXMsIHNjaGVkdWxlIGEgY2FsbGJhY2sgdG9cbiAgICAvLyBpbW1lZGlhdGVseSBmbHVzaCB0aGVtLlxuICAgIHZhciByb290cyA9IHJvb3RzV2l0aFBlbmRpbmdEaXNjcmV0ZVVwZGF0ZXM7XG4gICAgcm9vdHNXaXRoUGVuZGluZ0Rpc2NyZXRlVXBkYXRlcyA9IG51bGw7XG4gICAgcm9vdHMuZm9yRWFjaChmdW5jdGlvbiAocm9vdCkge1xuICAgICAgbWFya0Rpc2NyZXRlVXBkYXRlc0V4cGlyZWQocm9vdCk7XG4gICAgICBlbnN1cmVSb290SXNTY2hlZHVsZWQocm9vdCwgbm93KCkpO1xuICAgIH0pO1xuICB9IC8vIE5vdyBmbHVzaCB0aGUgaW1tZWRpYXRlIHF1ZXVlLlxuXG5cbiAgZmx1c2hTeW5jQ2FsbGJhY2tRdWV1ZSgpO1xufVxuXG5mdW5jdGlvbiBiYXRjaGVkVXBkYXRlcyQxKGZuLCBhKSB7XG4gIHZhciBwcmV2RXhlY3V0aW9uQ29udGV4dCA9IGV4ZWN1dGlvbkNvbnRleHQ7XG4gIGV4ZWN1dGlvbkNvbnRleHQgfD0gQmF0Y2hlZENvbnRleHQ7XG5cbiAgdHJ5IHtcbiAgICByZXR1cm4gZm4oYSk7XG4gIH0gZmluYWxseSB7XG4gICAgZXhlY3V0aW9uQ29udGV4dCA9IHByZXZFeGVjdXRpb25Db250ZXh0O1xuXG4gICAgaWYgKGV4ZWN1dGlvbkNvbnRleHQgPT09IE5vQ29udGV4dCkge1xuICAgICAgLy8gRmx1c2ggdGhlIGltbWVkaWF0ZSBjYWxsYmFja3MgdGhhdCB3ZXJlIHNjaGVkdWxlZCBkdXJpbmcgdGhpcyBiYXRjaFxuICAgICAgcmVzZXRSZW5kZXJUaW1lcigpO1xuICAgICAgZmx1c2hTeW5jQ2FsbGJhY2tRdWV1ZSgpO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gYmF0Y2hlZEV2ZW50VXBkYXRlcyQxKGZuLCBhKSB7XG4gIHZhciBwcmV2RXhlY3V0aW9uQ29udGV4dCA9IGV4ZWN1dGlvbkNvbnRleHQ7XG4gIGV4ZWN1dGlvbkNvbnRleHQgfD0gRXZlbnRDb250ZXh0O1xuXG4gIHRyeSB7XG4gICAgcmV0dXJuIGZuKGEpO1xuICB9IGZpbmFsbHkge1xuICAgIGV4ZWN1dGlvbkNvbnRleHQgPSBwcmV2RXhlY3V0aW9uQ29udGV4dDtcblxuICAgIGlmIChleGVjdXRpb25Db250ZXh0ID09PSBOb0NvbnRleHQpIHtcbiAgICAgIC8vIEZsdXNoIHRoZSBpbW1lZGlhdGUgY2FsbGJhY2tzIHRoYXQgd2VyZSBzY2hlZHVsZWQgZHVyaW5nIHRoaXMgYmF0Y2hcbiAgICAgIHJlc2V0UmVuZGVyVGltZXIoKTtcbiAgICAgIGZsdXNoU3luY0NhbGxiYWNrUXVldWUoKTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIGRpc2NyZXRlVXBkYXRlcyQxKGZuLCBhLCBiLCBjLCBkKSB7XG4gIHZhciBwcmV2RXhlY3V0aW9uQ29udGV4dCA9IGV4ZWN1dGlvbkNvbnRleHQ7XG4gIGV4ZWN1dGlvbkNvbnRleHQgfD0gRGlzY3JldGVFdmVudENvbnRleHQ7XG5cbiAge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gcnVuV2l0aFByaW9yaXR5JDEoVXNlckJsb2NraW5nUHJpb3JpdHkkMiwgZm4uYmluZChudWxsLCBhLCBiLCBjLCBkKSk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGV4ZWN1dGlvbkNvbnRleHQgPSBwcmV2RXhlY3V0aW9uQ29udGV4dDtcblxuICAgICAgaWYgKGV4ZWN1dGlvbkNvbnRleHQgPT09IE5vQ29udGV4dCkge1xuICAgICAgICAvLyBGbHVzaCB0aGUgaW1tZWRpYXRlIGNhbGxiYWNrcyB0aGF0IHdlcmUgc2NoZWR1bGVkIGR1cmluZyB0aGlzIGJhdGNoXG4gICAgICAgIHJlc2V0UmVuZGVyVGltZXIoKTtcbiAgICAgICAgZmx1c2hTeW5jQ2FsbGJhY2tRdWV1ZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gdW5iYXRjaGVkVXBkYXRlcyhmbiwgYSkge1xuICB2YXIgcHJldkV4ZWN1dGlvbkNvbnRleHQgPSBleGVjdXRpb25Db250ZXh0O1xuICBleGVjdXRpb25Db250ZXh0ICY9IH5CYXRjaGVkQ29udGV4dDtcbiAgZXhlY3V0aW9uQ29udGV4dCB8PSBMZWdhY3lVbmJhdGNoZWRDb250ZXh0O1xuXG4gIHRyeSB7XG4gICAgcmV0dXJuIGZuKGEpO1xuICB9IGZpbmFsbHkge1xuICAgIGV4ZWN1dGlvbkNvbnRleHQgPSBwcmV2RXhlY3V0aW9uQ29udGV4dDtcblxuICAgIGlmIChleGVjdXRpb25Db250ZXh0ID09PSBOb0NvbnRleHQpIHtcbiAgICAgIC8vIEZsdXNoIHRoZSBpbW1lZGlhdGUgY2FsbGJhY2tzIHRoYXQgd2VyZSBzY2hlZHVsZWQgZHVyaW5nIHRoaXMgYmF0Y2hcbiAgICAgIHJlc2V0UmVuZGVyVGltZXIoKTtcbiAgICAgIGZsdXNoU3luY0NhbGxiYWNrUXVldWUoKTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIGZsdXNoU3luYyhmbiwgYSkge1xuICB2YXIgcHJldkV4ZWN1dGlvbkNvbnRleHQgPSBleGVjdXRpb25Db250ZXh0O1xuXG4gIGlmICgocHJldkV4ZWN1dGlvbkNvbnRleHQgJiAoUmVuZGVyQ29udGV4dCB8IENvbW1pdENvbnRleHQpKSAhPT0gTm9Db250ZXh0KSB7XG4gICAge1xuICAgICAgZXJyb3IoJ2ZsdXNoU3luYyB3YXMgY2FsbGVkIGZyb20gaW5zaWRlIGEgbGlmZWN5Y2xlIG1ldGhvZC4gUmVhY3QgY2Fubm90ICcgKyAnZmx1c2ggd2hlbiBSZWFjdCBpcyBhbHJlYWR5IHJlbmRlcmluZy4gQ29uc2lkZXIgbW92aW5nIHRoaXMgY2FsbCB0byAnICsgJ2Egc2NoZWR1bGVyIHRhc2sgb3IgbWljcm8gdGFzay4nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZm4oYSk7XG4gIH1cblxuICBleGVjdXRpb25Db250ZXh0IHw9IEJhdGNoZWRDb250ZXh0O1xuXG4gIHtcbiAgICB0cnkge1xuICAgICAgaWYgKGZuKSB7XG4gICAgICAgIHJldHVybiBydW5XaXRoUHJpb3JpdHkkMShJbW1lZGlhdGVQcmlvcml0eSQxLCBmbi5iaW5kKG51bGwsIGEpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGV4ZWN1dGlvbkNvbnRleHQgPSBwcmV2RXhlY3V0aW9uQ29udGV4dDsgLy8gRmx1c2ggdGhlIGltbWVkaWF0ZSBjYWxsYmFja3MgdGhhdCB3ZXJlIHNjaGVkdWxlZCBkdXJpbmcgdGhpcyBiYXRjaC5cbiAgICAgIC8vIE5vdGUgdGhhdCB0aGlzIHdpbGwgaGFwcGVuIGV2ZW4gaWYgYmF0Y2hlZFVwZGF0ZXMgaXMgaGlnaGVyIHVwXG4gICAgICAvLyB0aGUgc3RhY2suXG5cbiAgICAgIGZsdXNoU3luY0NhbGxiYWNrUXVldWUoKTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIHB1c2hSZW5kZXJMYW5lcyhmaWJlciwgbGFuZXMpIHtcbiAgcHVzaChzdWJ0cmVlUmVuZGVyTGFuZXNDdXJzb3IsIHN1YnRyZWVSZW5kZXJMYW5lcywgZmliZXIpO1xuICBzdWJ0cmVlUmVuZGVyTGFuZXMgPSBtZXJnZUxhbmVzKHN1YnRyZWVSZW5kZXJMYW5lcywgbGFuZXMpO1xuICB3b3JrSW5Qcm9ncmVzc1Jvb3RJbmNsdWRlZExhbmVzID0gbWVyZ2VMYW5lcyh3b3JrSW5Qcm9ncmVzc1Jvb3RJbmNsdWRlZExhbmVzLCBsYW5lcyk7XG59XG5mdW5jdGlvbiBwb3BSZW5kZXJMYW5lcyhmaWJlcikge1xuICBzdWJ0cmVlUmVuZGVyTGFuZXMgPSBzdWJ0cmVlUmVuZGVyTGFuZXNDdXJzb3IuY3VycmVudDtcbiAgcG9wKHN1YnRyZWVSZW5kZXJMYW5lc0N1cnNvciwgZmliZXIpO1xufVxuXG5mdW5jdGlvbiBwcmVwYXJlRnJlc2hTdGFjayhyb290LCBsYW5lcykge1xuICByb290LmZpbmlzaGVkV29yayA9IG51bGw7XG4gIHJvb3QuZmluaXNoZWRMYW5lcyA9IE5vTGFuZXM7XG4gIHZhciB0aW1lb3V0SGFuZGxlID0gcm9vdC50aW1lb3V0SGFuZGxlO1xuXG4gIGlmICh0aW1lb3V0SGFuZGxlICE9PSBub1RpbWVvdXQpIHtcbiAgICAvLyBUaGUgcm9vdCBwcmV2aW91cyBzdXNwZW5kZWQgYW5kIHNjaGVkdWxlZCBhIHRpbWVvdXQgdG8gY29tbWl0IGEgZmFsbGJhY2tcbiAgICAvLyBzdGF0ZS4gTm93IHRoYXQgd2UgaGF2ZSBhZGRpdGlvbmFsIHdvcmssIGNhbmNlbCB0aGUgdGltZW91dC5cbiAgICByb290LnRpbWVvdXRIYW5kbGUgPSBub1RpbWVvdXQ7IC8vICRGbG93Rml4TWUgQ29tcGxhaW5zIG5vVGltZW91dCBpcyBub3QgYSBUaW1lb3V0SUQsIGRlc3BpdGUgdGhlIGNoZWNrIGFib3ZlXG5cbiAgICBjYW5jZWxUaW1lb3V0KHRpbWVvdXRIYW5kbGUpO1xuICB9XG5cbiAgaWYgKHdvcmtJblByb2dyZXNzICE9PSBudWxsKSB7XG4gICAgdmFyIGludGVycnVwdGVkV29yayA9IHdvcmtJblByb2dyZXNzLnJldHVybjtcblxuICAgIHdoaWxlIChpbnRlcnJ1cHRlZFdvcmsgIT09IG51bGwpIHtcbiAgICAgIHVud2luZEludGVycnVwdGVkV29yayhpbnRlcnJ1cHRlZFdvcmspO1xuICAgICAgaW50ZXJydXB0ZWRXb3JrID0gaW50ZXJydXB0ZWRXb3JrLnJldHVybjtcbiAgICB9XG4gIH1cblxuICB3b3JrSW5Qcm9ncmVzc1Jvb3QgPSByb290O1xuICB3b3JrSW5Qcm9ncmVzcyA9IGNyZWF0ZVdvcmtJblByb2dyZXNzKHJvb3QuY3VycmVudCwgbnVsbCk7XG4gIHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzID0gc3VidHJlZVJlbmRlckxhbmVzID0gd29ya0luUHJvZ3Jlc3NSb290SW5jbHVkZWRMYW5lcyA9IGxhbmVzO1xuICB3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzID0gUm9vdEluY29tcGxldGU7XG4gIHdvcmtJblByb2dyZXNzUm9vdEZhdGFsRXJyb3IgPSBudWxsO1xuICB3b3JrSW5Qcm9ncmVzc1Jvb3RTa2lwcGVkTGFuZXMgPSBOb0xhbmVzO1xuICB3b3JrSW5Qcm9ncmVzc1Jvb3RVcGRhdGVkTGFuZXMgPSBOb0xhbmVzO1xuICB3b3JrSW5Qcm9ncmVzc1Jvb3RQaW5nZWRMYW5lcyA9IE5vTGFuZXM7XG5cbiAge1xuICAgIHNwYXduZWRXb3JrRHVyaW5nUmVuZGVyID0gbnVsbDtcbiAgfVxuXG4gIHtcbiAgICBSZWFjdFN0cmljdE1vZGVXYXJuaW5ncy5kaXNjYXJkUGVuZGluZ1dhcm5pbmdzKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaGFuZGxlRXJyb3Iocm9vdCwgdGhyb3duVmFsdWUpIHtcbiAgZG8ge1xuICAgIHZhciBlcnJvcmVkV29yayA9IHdvcmtJblByb2dyZXNzO1xuXG4gICAgdHJ5IHtcbiAgICAgIC8vIFJlc2V0IG1vZHVsZS1sZXZlbCBzdGF0ZSB0aGF0IHdhcyBzZXQgZHVyaW5nIHRoZSByZW5kZXIgcGhhc2UuXG4gICAgICByZXNldENvbnRleHREZXBlbmRlbmNpZXMoKTtcbiAgICAgIHJlc2V0SG9va3NBZnRlclRocm93KCk7XG4gICAgICByZXNldEN1cnJlbnRGaWJlcigpOyAvLyBUT0RPOiBJIGZvdW5kIGFuZCBhZGRlZCB0aGlzIG1pc3NpbmcgbGluZSB3aGlsZSBpbnZlc3RpZ2F0aW5nIGFcbiAgICAgIC8vIHNlcGFyYXRlIGlzc3VlLiBXcml0ZSBhIHJlZ3Jlc3Npb24gdGVzdCB1c2luZyBzdHJpbmcgcmVmcy5cblxuICAgICAgUmVhY3RDdXJyZW50T3duZXIkMi5jdXJyZW50ID0gbnVsbDtcblxuICAgICAgaWYgKGVycm9yZWRXb3JrID09PSBudWxsIHx8IGVycm9yZWRXb3JrLnJldHVybiA9PT0gbnVsbCkge1xuICAgICAgICAvLyBFeHBlY3RlZCB0byBiZSB3b3JraW5nIG9uIGEgbm9uLXJvb3QgZmliZXIuIFRoaXMgaXMgYSBmYXRhbCBlcnJvclxuICAgICAgICAvLyBiZWNhdXNlIHRoZXJlJ3Mgbm8gYW5jZXN0b3IgdGhhdCBjYW4gaGFuZGxlIGl0OyB0aGUgcm9vdCBpc1xuICAgICAgICAvLyBzdXBwb3NlZCB0byBjYXB0dXJlIGFsbCBlcnJvcnMgdGhhdCB3ZXJlbid0IGNhdWdodCBieSBhbiBlcnJvclxuICAgICAgICAvLyBib3VuZGFyeS5cbiAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyA9IFJvb3RGYXRhbEVycm9yZWQ7XG4gICAgICAgIHdvcmtJblByb2dyZXNzUm9vdEZhdGFsRXJyb3IgPSB0aHJvd25WYWx1ZTsgLy8gU2V0IGB3b3JrSW5Qcm9ncmVzc2AgdG8gbnVsbC4gVGhpcyByZXByZXNlbnRzIGFkdmFuY2luZyB0byB0aGUgbmV4dFxuICAgICAgICAvLyBzaWJsaW5nLCBvciB0aGUgcGFyZW50IGlmIHRoZXJlIGFyZSBubyBzaWJsaW5ncy4gQnV0IHNpbmNlIHRoZSByb290XG4gICAgICAgIC8vIGhhcyBubyBzaWJsaW5ncyBub3IgYSBwYXJlbnQsIHdlIHNldCBpdCB0byBudWxsLiBVc3VhbGx5IHRoaXMgaXNcbiAgICAgICAgLy8gaGFuZGxlZCBieSBgY29tcGxldGVVbml0T2ZXb3JrYCBvciBgdW53aW5kV29ya2AsIGJ1dCBzaW5jZSB3ZSdyZVxuICAgICAgICAvLyBpbnRlbnRpb25hbGx5IG5vdCBjYWxsaW5nIHRob3NlLCB3ZSBuZWVkIHNldCBpdCBoZXJlLlxuICAgICAgICAvLyBUT0RPOiBDb25zaWRlciBjYWxsaW5nIGB1bndpbmRXb3JrYCB0byBwb3AgdGhlIGNvbnRleHRzLlxuXG4gICAgICAgIHdvcmtJblByb2dyZXNzID0gbnVsbDtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoZW5hYmxlUHJvZmlsZXJUaW1lciAmJiBlcnJvcmVkV29yay5tb2RlICYgUHJvZmlsZU1vZGUpIHtcbiAgICAgICAgLy8gUmVjb3JkIHRoZSB0aW1lIHNwZW50IHJlbmRlcmluZyBiZWZvcmUgYW4gZXJyb3Igd2FzIHRocm93bi4gVGhpc1xuICAgICAgICAvLyBhdm9pZHMgaW5hY2N1cmF0ZSBQcm9maWxlciBkdXJhdGlvbnMgaW4gdGhlIGNhc2Ugb2YgYVxuICAgICAgICAvLyBzdXNwZW5kZWQgcmVuZGVyLlxuICAgICAgICBzdG9wUHJvZmlsZXJUaW1lcklmUnVubmluZ0FuZFJlY29yZERlbHRhKGVycm9yZWRXb3JrLCB0cnVlKTtcbiAgICAgIH1cblxuICAgICAgdGhyb3dFeGNlcHRpb24ocm9vdCwgZXJyb3JlZFdvcmsucmV0dXJuLCBlcnJvcmVkV29yaywgdGhyb3duVmFsdWUsIHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzKTtcbiAgICAgIGNvbXBsZXRlVW5pdE9mV29yayhlcnJvcmVkV29yayk7XG4gICAgfSBjYXRjaCAoeWV0QW5vdGhlclRocm93blZhbHVlKSB7XG4gICAgICAvLyBTb21ldGhpbmcgaW4gdGhlIHJldHVybiBwYXRoIGFsc28gdGhyZXcuXG4gICAgICB0aHJvd25WYWx1ZSA9IHlldEFub3RoZXJUaHJvd25WYWx1ZTtcblxuICAgICAgaWYgKHdvcmtJblByb2dyZXNzID09PSBlcnJvcmVkV29yayAmJiBlcnJvcmVkV29yayAhPT0gbnVsbCkge1xuICAgICAgICAvLyBJZiB0aGlzIGJvdW5kYXJ5IGhhcyBhbHJlYWR5IGVycm9yZWQsIHRoZW4gd2UgaGFkIHRyb3VibGUgcHJvY2Vzc2luZ1xuICAgICAgICAvLyB0aGUgZXJyb3IuIEJ1YmJsZSBpdCB0byB0aGUgbmV4dCBib3VuZGFyeS5cbiAgICAgICAgZXJyb3JlZFdvcmsgPSBlcnJvcmVkV29yay5yZXR1cm47XG4gICAgICAgIHdvcmtJblByb2dyZXNzID0gZXJyb3JlZFdvcms7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlcnJvcmVkV29yayA9IHdvcmtJblByb2dyZXNzO1xuICAgICAgfVxuXG4gICAgICBjb250aW51ZTtcbiAgICB9IC8vIFJldHVybiB0byB0aGUgbm9ybWFsIHdvcmsgbG9vcC5cblxuXG4gICAgcmV0dXJuO1xuICB9IHdoaWxlICh0cnVlKTtcbn1cblxuZnVuY3Rpb24gcHVzaERpc3BhdGNoZXIoKSB7XG4gIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMi5jdXJyZW50O1xuICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDIuY3VycmVudCA9IENvbnRleHRPbmx5RGlzcGF0Y2hlcjtcblxuICBpZiAocHJldkRpc3BhdGNoZXIgPT09IG51bGwpIHtcbiAgICAvLyBUaGUgUmVhY3QgaXNvbW9ycGhpYyBwYWNrYWdlIGRvZXMgbm90IGluY2x1ZGUgYSBkZWZhdWx0IGRpc3BhdGNoZXIuXG4gICAgLy8gSW5zdGVhZCB0aGUgZmlyc3QgcmVuZGVyZXIgd2lsbCBsYXppbHkgYXR0YWNoIG9uZSwgaW4gb3JkZXIgdG8gZ2l2ZVxuICAgIC8vIG5pY2VyIGVycm9yIG1lc3NhZ2VzLlxuICAgIHJldHVybiBDb250ZXh0T25seURpc3BhdGNoZXI7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHByZXZEaXNwYXRjaGVyO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBvcERpc3BhdGNoZXIocHJldkRpc3BhdGNoZXIpIHtcbiAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQyLmN1cnJlbnQgPSBwcmV2RGlzcGF0Y2hlcjtcbn1cblxuZnVuY3Rpb24gcHVzaEludGVyYWN0aW9ucyhyb290KSB7XG4gIHtcbiAgICB2YXIgcHJldkludGVyYWN0aW9ucyA9IHRyYWNpbmcuX19pbnRlcmFjdGlvbnNSZWYuY3VycmVudDtcbiAgICB0cmFjaW5nLl9faW50ZXJhY3Rpb25zUmVmLmN1cnJlbnQgPSByb290Lm1lbW9pemVkSW50ZXJhY3Rpb25zO1xuICAgIHJldHVybiBwcmV2SW50ZXJhY3Rpb25zO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBvcEludGVyYWN0aW9ucyhwcmV2SW50ZXJhY3Rpb25zKSB7XG4gIHtcbiAgICB0cmFjaW5nLl9faW50ZXJhY3Rpb25zUmVmLmN1cnJlbnQgPSBwcmV2SW50ZXJhY3Rpb25zO1xuICB9XG59XG5cbmZ1bmN0aW9uIG1hcmtDb21taXRUaW1lT2ZGYWxsYmFjaygpIHtcbiAgZ2xvYmFsTW9zdFJlY2VudEZhbGxiYWNrVGltZSA9IG5vdygpO1xufVxuZnVuY3Rpb24gbWFya1NraXBwZWRVcGRhdGVMYW5lcyhsYW5lKSB7XG4gIHdvcmtJblByb2dyZXNzUm9vdFNraXBwZWRMYW5lcyA9IG1lcmdlTGFuZXMobGFuZSwgd29ya0luUHJvZ3Jlc3NSb290U2tpcHBlZExhbmVzKTtcbn1cbmZ1bmN0aW9uIHJlbmRlckRpZFN1c3BlbmQoKSB7XG4gIGlmICh3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzID09PSBSb290SW5jb21wbGV0ZSkge1xuICAgIHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgPSBSb290U3VzcGVuZGVkO1xuICB9XG59XG5mdW5jdGlvbiByZW5kZXJEaWRTdXNwZW5kRGVsYXlJZlBvc3NpYmxlKCkge1xuICBpZiAod29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyA9PT0gUm9vdEluY29tcGxldGUgfHwgd29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyA9PT0gUm9vdFN1c3BlbmRlZCkge1xuICAgIHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgPSBSb290U3VzcGVuZGVkV2l0aERlbGF5O1xuICB9IC8vIENoZWNrIGlmIHRoZXJlIGFyZSB1cGRhdGVzIHRoYXQgd2Ugc2tpcHBlZCB0cmVlIHRoYXQgbWlnaHQgaGF2ZSB1bmJsb2NrZWRcbiAgLy8gdGhpcyByZW5kZXIuXG5cblxuICBpZiAod29ya0luUHJvZ3Jlc3NSb290ICE9PSBudWxsICYmIChpbmNsdWRlc05vbklkbGVXb3JrKHdvcmtJblByb2dyZXNzUm9vdFNraXBwZWRMYW5lcykgfHwgaW5jbHVkZXNOb25JZGxlV29yayh3b3JrSW5Qcm9ncmVzc1Jvb3RVcGRhdGVkTGFuZXMpKSkge1xuICAgIC8vIE1hcmsgdGhlIGN1cnJlbnQgcmVuZGVyIGFzIHN1c3BlbmRlZCBzbyB0aGF0IHdlIHN3aXRjaCB0byB3b3JraW5nIG9uXG4gICAgLy8gdGhlIHVwZGF0ZXMgdGhhdCB3ZXJlIHNraXBwZWQuIFVzdWFsbHkgd2Ugb25seSBzdXNwZW5kIGF0IHRoZSBlbmQgb2ZcbiAgICAvLyB0aGUgcmVuZGVyIHBoYXNlLlxuICAgIC8vIFRPRE86IFdlIHNob3VsZCBwcm9iYWJseSBhbHdheXMgbWFyayB0aGUgcm9vdCBhcyBzdXNwZW5kZWQgaW1tZWRpYXRlbHlcbiAgICAvLyAoaW5zaWRlIHRoaXMgZnVuY3Rpb24pLCBzaW5jZSBieSBzdXNwZW5kaW5nIGF0IHRoZSBlbmQgb2YgdGhlIHJlbmRlclxuICAgIC8vIHBoYXNlIGludHJvZHVjZXMgYSBwb3RlbnRpYWwgbWlzdGFrZSB3aGVyZSB3ZSBzdXNwZW5kIGxhbmVzIHRoYXQgd2VyZVxuICAgIC8vIHBpbmdlZCBvciB1cGRhdGVkIHdoaWxlIHdlIHdlcmUgcmVuZGVyaW5nLlxuICAgIG1hcmtSb290U3VzcGVuZGVkJDEod29ya0luUHJvZ3Jlc3NSb290LCB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyk7XG4gIH1cbn1cbmZ1bmN0aW9uIHJlbmRlckRpZEVycm9yKCkge1xuICBpZiAod29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyAhPT0gUm9vdENvbXBsZXRlZCkge1xuICAgIHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgPSBSb290RXJyb3JlZDtcbiAgfVxufSAvLyBDYWxsZWQgZHVyaW5nIHJlbmRlciB0byBkZXRlcm1pbmUgaWYgYW55dGhpbmcgaGFzIHN1c3BlbmRlZC5cbi8vIFJldHVybnMgZmFsc2UgaWYgd2UncmUgbm90IHN1cmUuXG5cbmZ1bmN0aW9uIHJlbmRlckhhc05vdFN1c3BlbmRlZFlldCgpIHtcbiAgLy8gSWYgc29tZXRoaW5nIGVycm9yZWQgb3IgY29tcGxldGVkLCB3ZSBjYW4ndCByZWFsbHkgYmUgc3VyZSxcbiAgLy8gc28gdGhvc2UgYXJlIGZhbHNlLlxuICByZXR1cm4gd29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyA9PT0gUm9vdEluY29tcGxldGU7XG59XG5cbmZ1bmN0aW9uIHJlbmRlclJvb3RTeW5jKHJvb3QsIGxhbmVzKSB7XG4gIHZhciBwcmV2RXhlY3V0aW9uQ29udGV4dCA9IGV4ZWN1dGlvbkNvbnRleHQ7XG4gIGV4ZWN1dGlvbkNvbnRleHQgfD0gUmVuZGVyQ29udGV4dDtcbiAgdmFyIHByZXZEaXNwYXRjaGVyID0gcHVzaERpc3BhdGNoZXIoKTsgLy8gSWYgdGhlIHJvb3Qgb3IgbGFuZXMgaGF2ZSBjaGFuZ2VkLCB0aHJvdyBvdXQgdGhlIGV4aXN0aW5nIHN0YWNrXG4gIC8vIGFuZCBwcmVwYXJlIGEgZnJlc2ggb25lLiBPdGhlcndpc2Ugd2UnbGwgY29udGludWUgd2hlcmUgd2UgbGVmdCBvZmYuXG5cbiAgaWYgKHdvcmtJblByb2dyZXNzUm9vdCAhPT0gcm9vdCB8fCB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyAhPT0gbGFuZXMpIHtcbiAgICBwcmVwYXJlRnJlc2hTdGFjayhyb290LCBsYW5lcyk7XG4gICAgc3RhcnRXb3JrT25QZW5kaW5nSW50ZXJhY3Rpb25zKHJvb3QsIGxhbmVzKTtcbiAgfVxuXG4gIHZhciBwcmV2SW50ZXJhY3Rpb25zID0gcHVzaEludGVyYWN0aW9ucyhyb290KTtcblxuICBkbyB7XG4gICAgdHJ5IHtcbiAgICAgIHdvcmtMb29wU3luYygpO1xuICAgICAgYnJlYWs7XG4gICAgfSBjYXRjaCAodGhyb3duVmFsdWUpIHtcbiAgICAgIGhhbmRsZUVycm9yKHJvb3QsIHRocm93blZhbHVlKTtcbiAgICB9XG4gIH0gd2hpbGUgKHRydWUpO1xuXG4gIHJlc2V0Q29udGV4dERlcGVuZGVuY2llcygpO1xuXG4gIHtcbiAgICBwb3BJbnRlcmFjdGlvbnMocHJldkludGVyYWN0aW9ucyk7XG4gIH1cblxuICBleGVjdXRpb25Db250ZXh0ID0gcHJldkV4ZWN1dGlvbkNvbnRleHQ7XG4gIHBvcERpc3BhdGNoZXIocHJldkRpc3BhdGNoZXIpO1xuXG4gIGlmICh3b3JrSW5Qcm9ncmVzcyAhPT0gbnVsbCkge1xuICAgIC8vIFRoaXMgaXMgYSBzeW5jIHJlbmRlciwgc28gd2Ugc2hvdWxkIGhhdmUgZmluaXNoZWQgdGhlIHdob2xlIHRyZWUuXG4gICAge1xuICAgICAge1xuICAgICAgICB0aHJvdyBFcnJvciggXCJDYW5ub3QgY29tbWl0IGFuIGluY29tcGxldGUgcm9vdC4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIiApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG5cbiAgd29ya0luUHJvZ3Jlc3NSb290ID0gbnVsbDtcbiAgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMgPSBOb0xhbmVzO1xuICByZXR1cm4gd29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cztcbn0gLy8gVGhlIHdvcmsgbG9vcCBpcyBhbiBleHRyZW1lbHkgaG90IHBhdGguIFRlbGwgQ2xvc3VyZSBub3QgdG8gaW5saW5lIGl0LlxuXG4vKiogQG5vaW5saW5lICovXG5cblxuZnVuY3Rpb24gd29ya0xvb3BTeW5jKCkge1xuICAvLyBBbHJlYWR5IHRpbWVkIG91dCwgc28gcGVyZm9ybSB3b3JrIHdpdGhvdXQgY2hlY2tpbmcgaWYgd2UgbmVlZCB0byB5aWVsZC5cbiAgd2hpbGUgKHdvcmtJblByb2dyZXNzICE9PSBudWxsKSB7XG4gICAgcGVyZm9ybVVuaXRPZldvcmsod29ya0luUHJvZ3Jlc3MpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlbmRlclJvb3RDb25jdXJyZW50KHJvb3QsIGxhbmVzKSB7XG4gIHZhciBwcmV2RXhlY3V0aW9uQ29udGV4dCA9IGV4ZWN1dGlvbkNvbnRleHQ7XG4gIGV4ZWN1dGlvbkNvbnRleHQgfD0gUmVuZGVyQ29udGV4dDtcbiAgdmFyIHByZXZEaXNwYXRjaGVyID0gcHVzaERpc3BhdGNoZXIoKTsgLy8gSWYgdGhlIHJvb3Qgb3IgbGFuZXMgaGF2ZSBjaGFuZ2VkLCB0aHJvdyBvdXQgdGhlIGV4aXN0aW5nIHN0YWNrXG4gIC8vIGFuZCBwcmVwYXJlIGEgZnJlc2ggb25lLiBPdGhlcndpc2Ugd2UnbGwgY29udGludWUgd2hlcmUgd2UgbGVmdCBvZmYuXG5cbiAgaWYgKHdvcmtJblByb2dyZXNzUm9vdCAhPT0gcm9vdCB8fCB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyAhPT0gbGFuZXMpIHtcbiAgICByZXNldFJlbmRlclRpbWVyKCk7XG4gICAgcHJlcGFyZUZyZXNoU3RhY2socm9vdCwgbGFuZXMpO1xuICAgIHN0YXJ0V29ya09uUGVuZGluZ0ludGVyYWN0aW9ucyhyb290LCBsYW5lcyk7XG4gIH1cblxuICB2YXIgcHJldkludGVyYWN0aW9ucyA9IHB1c2hJbnRlcmFjdGlvbnMocm9vdCk7XG5cbiAgZG8ge1xuICAgIHRyeSB7XG4gICAgICB3b3JrTG9vcENvbmN1cnJlbnQoKTtcbiAgICAgIGJyZWFrO1xuICAgIH0gY2F0Y2ggKHRocm93blZhbHVlKSB7XG4gICAgICBoYW5kbGVFcnJvcihyb290LCB0aHJvd25WYWx1ZSk7XG4gICAgfVxuICB9IHdoaWxlICh0cnVlKTtcblxuICByZXNldENvbnRleHREZXBlbmRlbmNpZXMoKTtcblxuICB7XG4gICAgcG9wSW50ZXJhY3Rpb25zKHByZXZJbnRlcmFjdGlvbnMpO1xuICB9XG5cbiAgcG9wRGlzcGF0Y2hlcihwcmV2RGlzcGF0Y2hlcik7XG4gIGV4ZWN1dGlvbkNvbnRleHQgPSBwcmV2RXhlY3V0aW9uQ29udGV4dDtcblxuXG4gIGlmICh3b3JrSW5Qcm9ncmVzcyAhPT0gbnVsbCkge1xuXG4gICAgcmV0dXJuIFJvb3RJbmNvbXBsZXRlO1xuICB9IGVsc2Uge1xuXG5cbiAgICB3b3JrSW5Qcm9ncmVzc1Jvb3QgPSBudWxsO1xuICAgIHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzID0gTm9MYW5lczsgLy8gUmV0dXJuIHRoZSBmaW5hbCBleGl0IHN0YXR1cy5cblxuICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzO1xuICB9XG59XG4vKiogQG5vaW5saW5lICovXG5cblxuZnVuY3Rpb24gd29ya0xvb3BDb25jdXJyZW50KCkge1xuICAvLyBQZXJmb3JtIHdvcmsgdW50aWwgU2NoZWR1bGVyIGFza3MgdXMgdG8geWllbGRcbiAgd2hpbGUgKHdvcmtJblByb2dyZXNzICE9PSBudWxsICYmICFzaG91bGRZaWVsZCgpKSB7XG4gICAgcGVyZm9ybVVuaXRPZldvcmsod29ya0luUHJvZ3Jlc3MpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBlcmZvcm1Vbml0T2ZXb3JrKHVuaXRPZldvcmspIHtcbiAgLy8gVGhlIGN1cnJlbnQsIGZsdXNoZWQsIHN0YXRlIG9mIHRoaXMgZmliZXIgaXMgdGhlIGFsdGVybmF0ZS4gSWRlYWxseVxuICAvLyBub3RoaW5nIHNob3VsZCByZWx5IG9uIHRoaXMsIGJ1dCByZWx5aW5nIG9uIGl0IGhlcmUgbWVhbnMgdGhhdCB3ZSBkb24ndFxuICAvLyBuZWVkIGFuIGFkZGl0aW9uYWwgZmllbGQgb24gdGhlIHdvcmsgaW4gcHJvZ3Jlc3MuXG4gIHZhciBjdXJyZW50ID0gdW5pdE9mV29yay5hbHRlcm5hdGU7XG4gIHNldEN1cnJlbnRGaWJlcih1bml0T2ZXb3JrKTtcbiAgdmFyIG5leHQ7XG5cbiAgaWYgKCAodW5pdE9mV29yay5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUpIHtcbiAgICBzdGFydFByb2ZpbGVyVGltZXIodW5pdE9mV29yayk7XG4gICAgbmV4dCA9IGJlZ2luV29yayQxKGN1cnJlbnQsIHVuaXRPZldvcmssIHN1YnRyZWVSZW5kZXJMYW5lcyk7XG4gICAgc3RvcFByb2ZpbGVyVGltZXJJZlJ1bm5pbmdBbmRSZWNvcmREZWx0YSh1bml0T2ZXb3JrLCB0cnVlKTtcbiAgfSBlbHNlIHtcbiAgICBuZXh0ID0gYmVnaW5Xb3JrJDEoY3VycmVudCwgdW5pdE9mV29yaywgc3VidHJlZVJlbmRlckxhbmVzKTtcbiAgfVxuXG4gIHJlc2V0Q3VycmVudEZpYmVyKCk7XG4gIHVuaXRPZldvcmsubWVtb2l6ZWRQcm9wcyA9IHVuaXRPZldvcmsucGVuZGluZ1Byb3BzO1xuXG4gIGlmIChuZXh0ID09PSBudWxsKSB7XG4gICAgLy8gSWYgdGhpcyBkb2Vzbid0IHNwYXduIG5ldyB3b3JrLCBjb21wbGV0ZSB0aGUgY3VycmVudCB3b3JrLlxuICAgIGNvbXBsZXRlVW5pdE9mV29yayh1bml0T2ZXb3JrKTtcbiAgfSBlbHNlIHtcbiAgICB3b3JrSW5Qcm9ncmVzcyA9IG5leHQ7XG4gIH1cblxuICBSZWFjdEN1cnJlbnRPd25lciQyLmN1cnJlbnQgPSBudWxsO1xufVxuXG5mdW5jdGlvbiBjb21wbGV0ZVVuaXRPZldvcmsodW5pdE9mV29yaykge1xuICAvLyBBdHRlbXB0IHRvIGNvbXBsZXRlIHRoZSBjdXJyZW50IHVuaXQgb2Ygd29yaywgdGhlbiBtb3ZlIHRvIHRoZSBuZXh0XG4gIC8vIHNpYmxpbmcuIElmIHRoZXJlIGFyZSBubyBtb3JlIHNpYmxpbmdzLCByZXR1cm4gdG8gdGhlIHBhcmVudCBmaWJlci5cbiAgdmFyIGNvbXBsZXRlZFdvcmsgPSB1bml0T2ZXb3JrO1xuXG4gIGRvIHtcbiAgICAvLyBUaGUgY3VycmVudCwgZmx1c2hlZCwgc3RhdGUgb2YgdGhpcyBmaWJlciBpcyB0aGUgYWx0ZXJuYXRlLiBJZGVhbGx5XG4gICAgLy8gbm90aGluZyBzaG91bGQgcmVseSBvbiB0aGlzLCBidXQgcmVseWluZyBvbiBpdCBoZXJlIG1lYW5zIHRoYXQgd2UgZG9uJ3RcbiAgICAvLyBuZWVkIGFuIGFkZGl0aW9uYWwgZmllbGQgb24gdGhlIHdvcmsgaW4gcHJvZ3Jlc3MuXG4gICAgdmFyIGN1cnJlbnQgPSBjb21wbGV0ZWRXb3JrLmFsdGVybmF0ZTtcbiAgICB2YXIgcmV0dXJuRmliZXIgPSBjb21wbGV0ZWRXb3JrLnJldHVybjsgLy8gQ2hlY2sgaWYgdGhlIHdvcmsgY29tcGxldGVkIG9yIGlmIHNvbWV0aGluZyB0aHJldy5cblxuICAgIGlmICgoY29tcGxldGVkV29yay5mbGFncyAmIEluY29tcGxldGUpID09PSBOb0ZsYWdzKSB7XG4gICAgICBzZXRDdXJyZW50RmliZXIoY29tcGxldGVkV29yayk7XG4gICAgICB2YXIgbmV4dCA9IHZvaWQgMDtcblxuICAgICAgaWYgKCAoY29tcGxldGVkV29yay5tb2RlICYgUHJvZmlsZU1vZGUpID09PSBOb01vZGUpIHtcbiAgICAgICAgbmV4dCA9IGNvbXBsZXRlV29yayhjdXJyZW50LCBjb21wbGV0ZWRXb3JrLCBzdWJ0cmVlUmVuZGVyTGFuZXMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3RhcnRQcm9maWxlclRpbWVyKGNvbXBsZXRlZFdvcmspO1xuICAgICAgICBuZXh0ID0gY29tcGxldGVXb3JrKGN1cnJlbnQsIGNvbXBsZXRlZFdvcmssIHN1YnRyZWVSZW5kZXJMYW5lcyk7IC8vIFVwZGF0ZSByZW5kZXIgZHVyYXRpb24gYXNzdW1pbmcgd2UgZGlkbid0IGVycm9yLlxuXG4gICAgICAgIHN0b3BQcm9maWxlclRpbWVySWZSdW5uaW5nQW5kUmVjb3JkRGVsdGEoY29tcGxldGVkV29yaywgZmFsc2UpO1xuICAgICAgfVxuXG4gICAgICByZXNldEN1cnJlbnRGaWJlcigpO1xuXG4gICAgICBpZiAobmV4dCAhPT0gbnVsbCkge1xuICAgICAgICAvLyBDb21wbGV0aW5nIHRoaXMgZmliZXIgc3Bhd25lZCBuZXcgd29yay4gV29yayBvbiB0aGF0IG5leHQuXG4gICAgICAgIHdvcmtJblByb2dyZXNzID0gbmV4dDtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICByZXNldENoaWxkTGFuZXMoY29tcGxldGVkV29yayk7XG5cbiAgICAgIGlmIChyZXR1cm5GaWJlciAhPT0gbnVsbCAmJiAvLyBEbyBub3QgYXBwZW5kIGVmZmVjdHMgdG8gcGFyZW50cyBpZiBhIHNpYmxpbmcgZmFpbGVkIHRvIGNvbXBsZXRlXG4gICAgICAocmV0dXJuRmliZXIuZmxhZ3MgJiBJbmNvbXBsZXRlKSA9PT0gTm9GbGFncykge1xuICAgICAgICAvLyBBcHBlbmQgYWxsIHRoZSBlZmZlY3RzIG9mIHRoZSBzdWJ0cmVlIGFuZCB0aGlzIGZpYmVyIG9udG8gdGhlIGVmZmVjdFxuICAgICAgICAvLyBsaXN0IG9mIHRoZSBwYXJlbnQuIFRoZSBjb21wbGV0aW9uIG9yZGVyIG9mIHRoZSBjaGlsZHJlbiBhZmZlY3RzIHRoZVxuICAgICAgICAvLyBzaWRlLWVmZmVjdCBvcmRlci5cbiAgICAgICAgaWYgKHJldHVybkZpYmVyLmZpcnN0RWZmZWN0ID09PSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuRmliZXIuZmlyc3RFZmZlY3QgPSBjb21wbGV0ZWRXb3JrLmZpcnN0RWZmZWN0O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvbXBsZXRlZFdvcmsubGFzdEVmZmVjdCAhPT0gbnVsbCkge1xuICAgICAgICAgIGlmIChyZXR1cm5GaWJlci5sYXN0RWZmZWN0ICE9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm5GaWJlci5sYXN0RWZmZWN0Lm5leHRFZmZlY3QgPSBjb21wbGV0ZWRXb3JrLmZpcnN0RWZmZWN0O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybkZpYmVyLmxhc3RFZmZlY3QgPSBjb21wbGV0ZWRXb3JrLmxhc3RFZmZlY3Q7XG4gICAgICAgIH0gLy8gSWYgdGhpcyBmaWJlciBoYWQgc2lkZS1lZmZlY3RzLCB3ZSBhcHBlbmQgaXQgQUZURVIgdGhlIGNoaWxkcmVuJ3NcbiAgICAgICAgLy8gc2lkZS1lZmZlY3RzLiBXZSBjYW4gcGVyZm9ybSBjZXJ0YWluIHNpZGUtZWZmZWN0cyBlYXJsaWVyIGlmIG5lZWRlZCxcbiAgICAgICAgLy8gYnkgZG9pbmcgbXVsdGlwbGUgcGFzc2VzIG92ZXIgdGhlIGVmZmVjdCBsaXN0LiBXZSBkb24ndCB3YW50IHRvXG4gICAgICAgIC8vIHNjaGVkdWxlIG91ciBvd24gc2lkZS1lZmZlY3Qgb24gb3VyIG93biBsaXN0IGJlY2F1c2UgaWYgZW5kIHVwXG4gICAgICAgIC8vIHJldXNpbmcgY2hpbGRyZW4gd2UnbGwgc2NoZWR1bGUgdGhpcyBlZmZlY3Qgb250byBpdHNlbGYgc2luY2Ugd2UncmVcbiAgICAgICAgLy8gYXQgdGhlIGVuZC5cblxuXG4gICAgICAgIHZhciBmbGFncyA9IGNvbXBsZXRlZFdvcmsuZmxhZ3M7IC8vIFNraXAgYm90aCBOb1dvcmsgYW5kIFBlcmZvcm1lZFdvcmsgdGFncyB3aGVuIGNyZWF0aW5nIHRoZSBlZmZlY3RcbiAgICAgICAgLy8gbGlzdC4gUGVyZm9ybWVkV29yayBlZmZlY3QgaXMgcmVhZCBieSBSZWFjdCBEZXZUb29scyBidXQgc2hvdWxkbid0IGJlXG4gICAgICAgIC8vIGNvbW1pdHRlZC5cblxuICAgICAgICBpZiAoZmxhZ3MgPiBQZXJmb3JtZWRXb3JrKSB7XG4gICAgICAgICAgaWYgKHJldHVybkZpYmVyLmxhc3RFZmZlY3QgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybkZpYmVyLmxhc3RFZmZlY3QubmV4dEVmZmVjdCA9IGNvbXBsZXRlZFdvcms7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybkZpYmVyLmZpcnN0RWZmZWN0ID0gY29tcGxldGVkV29yaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm5GaWJlci5sYXN0RWZmZWN0ID0gY29tcGxldGVkV29yaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUaGlzIGZpYmVyIGRpZCBub3QgY29tcGxldGUgYmVjYXVzZSBzb21ldGhpbmcgdGhyZXcuIFBvcCB2YWx1ZXMgb2ZmXG4gICAgICAvLyB0aGUgc3RhY2sgd2l0aG91dCBlbnRlcmluZyB0aGUgY29tcGxldGUgcGhhc2UuIElmIHRoaXMgaXMgYSBib3VuZGFyeSxcbiAgICAgIC8vIGNhcHR1cmUgdmFsdWVzIGlmIHBvc3NpYmxlLlxuICAgICAgdmFyIF9uZXh0ID0gdW53aW5kV29yayhjb21wbGV0ZWRXb3JrKTsgLy8gQmVjYXVzZSB0aGlzIGZpYmVyIGRpZCBub3QgY29tcGxldGUsIGRvbid0IHJlc2V0IGl0cyBleHBpcmF0aW9uIHRpbWUuXG5cblxuICAgICAgaWYgKF9uZXh0ICE9PSBudWxsKSB7XG4gICAgICAgIC8vIElmIGNvbXBsZXRpbmcgdGhpcyB3b3JrIHNwYXduZWQgbmV3IHdvcmssIGRvIHRoYXQgbmV4dC4gV2UnbGwgY29tZVxuICAgICAgICAvLyBiYWNrIGhlcmUgYWdhaW4uXG4gICAgICAgIC8vIFNpbmNlIHdlJ3JlIHJlc3RhcnRpbmcsIHJlbW92ZSBhbnl0aGluZyB0aGF0IGlzIG5vdCBhIGhvc3QgZWZmZWN0XG4gICAgICAgIC8vIGZyb20gdGhlIGVmZmVjdCB0YWcuXG4gICAgICAgIF9uZXh0LmZsYWdzICY9IEhvc3RFZmZlY3RNYXNrO1xuICAgICAgICB3b3JrSW5Qcm9ncmVzcyA9IF9uZXh0O1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICggKGNvbXBsZXRlZFdvcmsubW9kZSAmIFByb2ZpbGVNb2RlKSAhPT0gTm9Nb2RlKSB7XG4gICAgICAgIC8vIFJlY29yZCB0aGUgcmVuZGVyIGR1cmF0aW9uIGZvciB0aGUgZmliZXIgdGhhdCBlcnJvcmVkLlxuICAgICAgICBzdG9wUHJvZmlsZXJUaW1lcklmUnVubmluZ0FuZFJlY29yZERlbHRhKGNvbXBsZXRlZFdvcmssIGZhbHNlKTsgLy8gSW5jbHVkZSB0aGUgdGltZSBzcGVudCB3b3JraW5nIG9uIGZhaWxlZCBjaGlsZHJlbiBiZWZvcmUgY29udGludWluZy5cblxuICAgICAgICB2YXIgYWN0dWFsRHVyYXRpb24gPSBjb21wbGV0ZWRXb3JrLmFjdHVhbER1cmF0aW9uO1xuICAgICAgICB2YXIgY2hpbGQgPSBjb21wbGV0ZWRXb3JrLmNoaWxkO1xuXG4gICAgICAgIHdoaWxlIChjaGlsZCAhPT0gbnVsbCkge1xuICAgICAgICAgIGFjdHVhbER1cmF0aW9uICs9IGNoaWxkLmFjdHVhbER1cmF0aW9uO1xuICAgICAgICAgIGNoaWxkID0gY2hpbGQuc2libGluZztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbXBsZXRlZFdvcmsuYWN0dWFsRHVyYXRpb24gPSBhY3R1YWxEdXJhdGlvbjtcbiAgICAgIH1cblxuICAgICAgaWYgKHJldHVybkZpYmVyICE9PSBudWxsKSB7XG4gICAgICAgIC8vIE1hcmsgdGhlIHBhcmVudCBmaWJlciBhcyBpbmNvbXBsZXRlIGFuZCBjbGVhciBpdHMgZWZmZWN0IGxpc3QuXG4gICAgICAgIHJldHVybkZpYmVyLmZpcnN0RWZmZWN0ID0gcmV0dXJuRmliZXIubGFzdEVmZmVjdCA9IG51bGw7XG4gICAgICAgIHJldHVybkZpYmVyLmZsYWdzIHw9IEluY29tcGxldGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIHNpYmxpbmdGaWJlciA9IGNvbXBsZXRlZFdvcmsuc2libGluZztcblxuICAgIGlmIChzaWJsaW5nRmliZXIgIT09IG51bGwpIHtcbiAgICAgIC8vIElmIHRoZXJlIGlzIG1vcmUgd29yayB0byBkbyBpbiB0aGlzIHJldHVybkZpYmVyLCBkbyB0aGF0IG5leHQuXG4gICAgICB3b3JrSW5Qcm9ncmVzcyA9IHNpYmxpbmdGaWJlcjtcbiAgICAgIHJldHVybjtcbiAgICB9IC8vIE90aGVyd2lzZSwgcmV0dXJuIHRvIHRoZSBwYXJlbnRcblxuXG4gICAgY29tcGxldGVkV29yayA9IHJldHVybkZpYmVyOyAvLyBVcGRhdGUgdGhlIG5leHQgdGhpbmcgd2UncmUgd29ya2luZyBvbiBpbiBjYXNlIHNvbWV0aGluZyB0aHJvd3MuXG5cbiAgICB3b3JrSW5Qcm9ncmVzcyA9IGNvbXBsZXRlZFdvcms7XG4gIH0gd2hpbGUgKGNvbXBsZXRlZFdvcmsgIT09IG51bGwpOyAvLyBXZSd2ZSByZWFjaGVkIHRoZSByb290LlxuXG5cbiAgaWYgKHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgPT09IFJvb3RJbmNvbXBsZXRlKSB7XG4gICAgd29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyA9IFJvb3RDb21wbGV0ZWQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVzZXRDaGlsZExhbmVzKGNvbXBsZXRlZFdvcmspIHtcbiAgaWYgKCAvLyBUT0RPOiBNb3ZlIHRoaXMgY2hlY2sgb3V0IG9mIHRoZSBob3QgcGF0aCBieSBtb3ZpbmcgYHJlc2V0Q2hpbGRMYW5lc2BcbiAgLy8gdG8gc3dpdGNoIHN0YXRlbWVudCBpbiBgY29tcGxldGVXb3JrYC5cbiAgKGNvbXBsZXRlZFdvcmsudGFnID09PSBMZWdhY3lIaWRkZW5Db21wb25lbnQgfHwgY29tcGxldGVkV29yay50YWcgPT09IE9mZnNjcmVlbkNvbXBvbmVudCkgJiYgY29tcGxldGVkV29yay5tZW1vaXplZFN0YXRlICE9PSBudWxsICYmICFpbmNsdWRlc1NvbWVMYW5lKHN1YnRyZWVSZW5kZXJMYW5lcywgT2Zmc2NyZWVuTGFuZSkgJiYgKGNvbXBsZXRlZFdvcmsubW9kZSAmIENvbmN1cnJlbnRNb2RlKSAhPT0gTm9MYW5lcykge1xuICAgIC8vIFRoZSBjaGlsZHJlbiBvZiB0aGlzIGNvbXBvbmVudCBhcmUgaGlkZGVuLiBEb24ndCBidWJibGUgdGhlaXJcbiAgICAvLyBleHBpcmF0aW9uIHRpbWVzLlxuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciBuZXdDaGlsZExhbmVzID0gTm9MYW5lczsgLy8gQnViYmxlIHVwIHRoZSBlYXJsaWVzdCBleHBpcmF0aW9uIHRpbWUuXG5cbiAgaWYgKCAoY29tcGxldGVkV29yay5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUpIHtcbiAgICAvLyBJbiBwcm9maWxpbmcgbW9kZSwgcmVzZXRDaGlsZEV4cGlyYXRpb25UaW1lIGlzIGFsc28gdXNlZCB0byByZXNldFxuICAgIC8vIHByb2ZpbGVyIGR1cmF0aW9ucy5cbiAgICB2YXIgYWN0dWFsRHVyYXRpb24gPSBjb21wbGV0ZWRXb3JrLmFjdHVhbER1cmF0aW9uO1xuICAgIHZhciB0cmVlQmFzZUR1cmF0aW9uID0gY29tcGxldGVkV29yay5zZWxmQmFzZUR1cmF0aW9uOyAvLyBXaGVuIGEgZmliZXIgaXMgY2xvbmVkLCBpdHMgYWN0dWFsRHVyYXRpb24gaXMgcmVzZXQgdG8gMC4gVGhpcyB2YWx1ZSB3aWxsXG4gICAgLy8gb25seSBiZSB1cGRhdGVkIGlmIHdvcmsgaXMgZG9uZSBvbiB0aGUgZmliZXIgKGkuZS4gaXQgZG9lc24ndCBiYWlsb3V0KS5cbiAgICAvLyBXaGVuIHdvcmsgaXMgZG9uZSwgaXQgc2hvdWxkIGJ1YmJsZSB0byB0aGUgcGFyZW50J3MgYWN0dWFsRHVyYXRpb24uIElmXG4gICAgLy8gdGhlIGZpYmVyIGhhcyBub3QgYmVlbiBjbG9uZWQgdGhvdWdoLCAobWVhbmluZyBubyB3b3JrIHdhcyBkb25lKSwgdGhlblxuICAgIC8vIHRoaXMgdmFsdWUgd2lsbCByZWZsZWN0IHRoZSBhbW91bnQgb2YgdGltZSBzcGVudCB3b3JraW5nIG9uIGEgcHJldmlvdXNcbiAgICAvLyByZW5kZXIuIEluIHRoYXQgY2FzZSBpdCBzaG91bGQgbm90IGJ1YmJsZS4gV2UgZGV0ZXJtaW5lIHdoZXRoZXIgaXQgd2FzXG4gICAgLy8gY2xvbmVkIGJ5IGNvbXBhcmluZyB0aGUgY2hpbGQgcG9pbnRlci5cblxuICAgIHZhciBzaG91bGRCdWJibGVBY3R1YWxEdXJhdGlvbnMgPSBjb21wbGV0ZWRXb3JrLmFsdGVybmF0ZSA9PT0gbnVsbCB8fCBjb21wbGV0ZWRXb3JrLmNoaWxkICE9PSBjb21wbGV0ZWRXb3JrLmFsdGVybmF0ZS5jaGlsZDtcbiAgICB2YXIgY2hpbGQgPSBjb21wbGV0ZWRXb3JrLmNoaWxkO1xuXG4gICAgd2hpbGUgKGNoaWxkICE9PSBudWxsKSB7XG4gICAgICBuZXdDaGlsZExhbmVzID0gbWVyZ2VMYW5lcyhuZXdDaGlsZExhbmVzLCBtZXJnZUxhbmVzKGNoaWxkLmxhbmVzLCBjaGlsZC5jaGlsZExhbmVzKSk7XG5cbiAgICAgIGlmIChzaG91bGRCdWJibGVBY3R1YWxEdXJhdGlvbnMpIHtcbiAgICAgICAgYWN0dWFsRHVyYXRpb24gKz0gY2hpbGQuYWN0dWFsRHVyYXRpb247XG4gICAgICB9XG5cbiAgICAgIHRyZWVCYXNlRHVyYXRpb24gKz0gY2hpbGQudHJlZUJhc2VEdXJhdGlvbjtcbiAgICAgIGNoaWxkID0gY2hpbGQuc2libGluZztcbiAgICB9XG5cbiAgICB2YXIgaXNUaW1lZE91dFN1c3BlbnNlID0gY29tcGxldGVkV29yay50YWcgPT09IFN1c3BlbnNlQ29tcG9uZW50ICYmIGNvbXBsZXRlZFdvcmsubWVtb2l6ZWRTdGF0ZSAhPT0gbnVsbDtcblxuICAgIGlmIChpc1RpbWVkT3V0U3VzcGVuc2UpIHtcbiAgICAgIC8vIERvbid0IGNvdW50IHRpbWUgc3BlbnQgaW4gYSB0aW1lZCBvdXQgU3VzcGVuc2Ugc3VidHJlZSBhcyBwYXJ0IG9mIHRoZSBiYXNlIGR1cmF0aW9uLlxuICAgICAgdmFyIHByaW1hcnlDaGlsZEZyYWdtZW50ID0gY29tcGxldGVkV29yay5jaGlsZDtcblxuICAgICAgaWYgKHByaW1hcnlDaGlsZEZyYWdtZW50ICE9PSBudWxsKSB7XG4gICAgICAgIHRyZWVCYXNlRHVyYXRpb24gLT0gcHJpbWFyeUNoaWxkRnJhZ21lbnQudHJlZUJhc2VEdXJhdGlvbjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wbGV0ZWRXb3JrLmFjdHVhbER1cmF0aW9uID0gYWN0dWFsRHVyYXRpb247XG4gICAgY29tcGxldGVkV29yay50cmVlQmFzZUR1cmF0aW9uID0gdHJlZUJhc2VEdXJhdGlvbjtcbiAgfSBlbHNlIHtcbiAgICB2YXIgX2NoaWxkID0gY29tcGxldGVkV29yay5jaGlsZDtcblxuICAgIHdoaWxlIChfY2hpbGQgIT09IG51bGwpIHtcbiAgICAgIG5ld0NoaWxkTGFuZXMgPSBtZXJnZUxhbmVzKG5ld0NoaWxkTGFuZXMsIG1lcmdlTGFuZXMoX2NoaWxkLmxhbmVzLCBfY2hpbGQuY2hpbGRMYW5lcykpO1xuICAgICAgX2NoaWxkID0gX2NoaWxkLnNpYmxpbmc7XG4gICAgfVxuICB9XG5cbiAgY29tcGxldGVkV29yay5jaGlsZExhbmVzID0gbmV3Q2hpbGRMYW5lcztcbn1cblxuZnVuY3Rpb24gY29tbWl0Um9vdChyb290KSB7XG4gIHZhciByZW5kZXJQcmlvcml0eUxldmVsID0gZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWwoKTtcbiAgcnVuV2l0aFByaW9yaXR5JDEoSW1tZWRpYXRlUHJpb3JpdHkkMSwgY29tbWl0Um9vdEltcGwuYmluZChudWxsLCByb290LCByZW5kZXJQcmlvcml0eUxldmVsKSk7XG4gIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiBjb21taXRSb290SW1wbChyb290LCByZW5kZXJQcmlvcml0eUxldmVsKSB7XG4gIGRvIHtcbiAgICAvLyBgZmx1c2hQYXNzaXZlRWZmZWN0c2Agd2lsbCBjYWxsIGBmbHVzaFN5bmNVcGRhdGVRdWV1ZWAgYXQgdGhlIGVuZCwgd2hpY2hcbiAgICAvLyBtZWFucyBgZmx1c2hQYXNzaXZlRWZmZWN0c2Agd2lsbCBzb21ldGltZXMgcmVzdWx0IGluIGFkZGl0aW9uYWxcbiAgICAvLyBwYXNzaXZlIGVmZmVjdHMuIFNvIHdlIG5lZWQgdG8ga2VlcCBmbHVzaGluZyBpbiBhIGxvb3AgdW50aWwgdGhlcmUgYXJlXG4gICAgLy8gbm8gbW9yZSBwZW5kaW5nIGVmZmVjdHMuXG4gICAgLy8gVE9ETzogTWlnaHQgYmUgYmV0dGVyIGlmIGBmbHVzaFBhc3NpdmVFZmZlY3RzYCBkaWQgbm90IGF1dG9tYXRpY2FsbHlcbiAgICAvLyBmbHVzaCBzeW5jaHJvbm91cyB3b3JrIGF0IHRoZSBlbmQsIHRvIGF2b2lkIGZhY3RvcmluZyBoYXphcmRzIGxpa2UgdGhpcy5cbiAgICBmbHVzaFBhc3NpdmVFZmZlY3RzKCk7XG4gIH0gd2hpbGUgKHJvb3RXaXRoUGVuZGluZ1Bhc3NpdmVFZmZlY3RzICE9PSBudWxsKTtcblxuICBmbHVzaFJlbmRlclBoYXNlU3RyaWN0TW9kZVdhcm5pbmdzSW5ERVYoKTtcblxuICBpZiAoISgoZXhlY3V0aW9uQ29udGV4dCAmIChSZW5kZXJDb250ZXh0IHwgQ29tbWl0Q29udGV4dCkpID09PSBOb0NvbnRleHQpKSB7XG4gICAge1xuICAgICAgdGhyb3cgRXJyb3IoIFwiU2hvdWxkIG5vdCBhbHJlYWR5IGJlIHdvcmtpbmcuXCIgKTtcbiAgICB9XG4gIH1cblxuICB2YXIgZmluaXNoZWRXb3JrID0gcm9vdC5maW5pc2hlZFdvcms7XG4gIHZhciBsYW5lcyA9IHJvb3QuZmluaXNoZWRMYW5lcztcblxuICBpZiAoZmluaXNoZWRXb3JrID09PSBudWxsKSB7XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJvb3QuZmluaXNoZWRXb3JrID0gbnVsbDtcbiAgcm9vdC5maW5pc2hlZExhbmVzID0gTm9MYW5lcztcblxuICBpZiAoIShmaW5pc2hlZFdvcmsgIT09IHJvb3QuY3VycmVudCkpIHtcbiAgICB7XG4gICAgICB0aHJvdyBFcnJvciggXCJDYW5ub3QgY29tbWl0IHRoZSBzYW1lIHRyZWUgYXMgYmVmb3JlLiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLlwiICk7XG4gICAgfVxuICB9IC8vIGNvbW1pdFJvb3QgbmV2ZXIgcmV0dXJucyBhIGNvbnRpbnVhdGlvbjsgaXQgYWx3YXlzIGZpbmlzaGVzIHN5bmNocm9ub3VzbHkuXG4gIC8vIFNvIHdlIGNhbiBjbGVhciB0aGVzZSBub3cgdG8gYWxsb3cgYSBuZXcgY2FsbGJhY2sgdG8gYmUgc2NoZWR1bGVkLlxuXG5cbiAgcm9vdC5jYWxsYmFja05vZGUgPSBudWxsOyAvLyBVcGRhdGUgdGhlIGZpcnN0IGFuZCBsYXN0IHBlbmRpbmcgdGltZXMgb24gdGhpcyByb290LiBUaGUgbmV3IGZpcnN0XG4gIC8vIHBlbmRpbmcgdGltZSBpcyB3aGF0ZXZlciBpcyBsZWZ0IG9uIHRoZSByb290IGZpYmVyLlxuXG4gIHZhciByZW1haW5pbmdMYW5lcyA9IG1lcmdlTGFuZXMoZmluaXNoZWRXb3JrLmxhbmVzLCBmaW5pc2hlZFdvcmsuY2hpbGRMYW5lcyk7XG4gIG1hcmtSb290RmluaXNoZWQocm9vdCwgcmVtYWluaW5nTGFuZXMpOyAvLyBDbGVhciBhbHJlYWR5IGZpbmlzaGVkIGRpc2NyZXRlIHVwZGF0ZXMgaW4gY2FzZSB0aGF0IGEgbGF0ZXIgY2FsbCBvZlxuICAvLyBgZmx1c2hEaXNjcmV0ZVVwZGF0ZXNgIHN0YXJ0cyBhIHVzZWxlc3MgcmVuZGVyIHBhc3Mgd2hpY2ggbWF5IGNhbmNlbHNcbiAgLy8gYSBzY2hlZHVsZWQgdGltZW91dC5cblxuICBpZiAocm9vdHNXaXRoUGVuZGluZ0Rpc2NyZXRlVXBkYXRlcyAhPT0gbnVsbCkge1xuICAgIGlmICghaGFzRGlzY3JldGVMYW5lcyhyZW1haW5pbmdMYW5lcykgJiYgcm9vdHNXaXRoUGVuZGluZ0Rpc2NyZXRlVXBkYXRlcy5oYXMocm9vdCkpIHtcbiAgICAgIHJvb3RzV2l0aFBlbmRpbmdEaXNjcmV0ZVVwZGF0ZXMuZGVsZXRlKHJvb3QpO1xuICAgIH1cbiAgfVxuXG4gIGlmIChyb290ID09PSB3b3JrSW5Qcm9ncmVzc1Jvb3QpIHtcbiAgICAvLyBXZSBjYW4gcmVzZXQgdGhlc2Ugbm93IHRoYXQgdGhleSBhcmUgZmluaXNoZWQuXG4gICAgd29ya0luUHJvZ3Jlc3NSb290ID0gbnVsbDtcbiAgICB3b3JrSW5Qcm9ncmVzcyA9IG51bGw7XG4gICAgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMgPSBOb0xhbmVzO1xuICB9IC8vIEdldCB0aGUgbGlzdCBvZiBlZmZlY3RzLlxuXG5cbiAgdmFyIGZpcnN0RWZmZWN0O1xuXG4gIGlmIChmaW5pc2hlZFdvcmsuZmxhZ3MgPiBQZXJmb3JtZWRXb3JrKSB7XG4gICAgLy8gQSBmaWJlcidzIGVmZmVjdCBsaXN0IGNvbnNpc3RzIG9ubHkgb2YgaXRzIGNoaWxkcmVuLCBub3QgaXRzZWxmLiBTbyBpZlxuICAgIC8vIHRoZSByb290IGhhcyBhbiBlZmZlY3QsIHdlIG5lZWQgdG8gYWRkIGl0IHRvIHRoZSBlbmQgb2YgdGhlIGxpc3QuIFRoZVxuICAgIC8vIHJlc3VsdGluZyBsaXN0IGlzIHRoZSBzZXQgdGhhdCB3b3VsZCBiZWxvbmcgdG8gdGhlIHJvb3QncyBwYXJlbnQsIGlmIGl0XG4gICAgLy8gaGFkIG9uZTsgdGhhdCBpcywgYWxsIHRoZSBlZmZlY3RzIGluIHRoZSB0cmVlIGluY2x1ZGluZyB0aGUgcm9vdC5cbiAgICBpZiAoZmluaXNoZWRXb3JrLmxhc3RFZmZlY3QgIT09IG51bGwpIHtcbiAgICAgIGZpbmlzaGVkV29yay5sYXN0RWZmZWN0Lm5leHRFZmZlY3QgPSBmaW5pc2hlZFdvcms7XG4gICAgICBmaXJzdEVmZmVjdCA9IGZpbmlzaGVkV29yay5maXJzdEVmZmVjdDtcbiAgICB9IGVsc2Uge1xuICAgICAgZmlyc3RFZmZlY3QgPSBmaW5pc2hlZFdvcms7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIC8vIFRoZXJlIGlzIG5vIGVmZmVjdCBvbiB0aGUgcm9vdC5cbiAgICBmaXJzdEVmZmVjdCA9IGZpbmlzaGVkV29yay5maXJzdEVmZmVjdDtcbiAgfVxuXG4gIGlmIChmaXJzdEVmZmVjdCAhPT0gbnVsbCkge1xuXG4gICAgdmFyIHByZXZFeGVjdXRpb25Db250ZXh0ID0gZXhlY3V0aW9uQ29udGV4dDtcbiAgICBleGVjdXRpb25Db250ZXh0IHw9IENvbW1pdENvbnRleHQ7XG4gICAgdmFyIHByZXZJbnRlcmFjdGlvbnMgPSBwdXNoSW50ZXJhY3Rpb25zKHJvb3QpOyAvLyBSZXNldCB0aGlzIHRvIG51bGwgYmVmb3JlIGNhbGxpbmcgbGlmZWN5Y2xlc1xuXG4gICAgUmVhY3RDdXJyZW50T3duZXIkMi5jdXJyZW50ID0gbnVsbDsgLy8gVGhlIGNvbW1pdCBwaGFzZSBpcyBicm9rZW4gaW50byBzZXZlcmFsIHN1Yi1waGFzZXMuIFdlIGRvIGEgc2VwYXJhdGUgcGFzc1xuICAgIC8vIG9mIHRoZSBlZmZlY3QgbGlzdCBmb3IgZWFjaCBwaGFzZTogYWxsIG11dGF0aW9uIGVmZmVjdHMgY29tZSBiZWZvcmUgYWxsXG4gICAgLy8gbGF5b3V0IGVmZmVjdHMsIGFuZCBzbyBvbi5cbiAgICAvLyBUaGUgZmlyc3QgcGhhc2UgYSBcImJlZm9yZSBtdXRhdGlvblwiIHBoYXNlLiBXZSB1c2UgdGhpcyBwaGFzZSB0byByZWFkIHRoZVxuICAgIC8vIHN0YXRlIG9mIHRoZSBob3N0IHRyZWUgcmlnaHQgYmVmb3JlIHdlIG11dGF0ZSBpdC4gVGhpcyBpcyB3aGVyZVxuICAgIC8vIGdldFNuYXBzaG90QmVmb3JlVXBkYXRlIGlzIGNhbGxlZC5cblxuICAgIGZvY3VzZWRJbnN0YW5jZUhhbmRsZSA9IHByZXBhcmVGb3JDb21taXQocm9vdC5jb250YWluZXJJbmZvKTtcbiAgICBzaG91bGRGaXJlQWZ0ZXJBY3RpdmVJbnN0YW5jZUJsdXIgPSBmYWxzZTtcbiAgICBuZXh0RWZmZWN0ID0gZmlyc3RFZmZlY3Q7XG5cbiAgICBkbyB7XG4gICAgICB7XG4gICAgICAgIGludm9rZUd1YXJkZWRDYWxsYmFjayhudWxsLCBjb21taXRCZWZvcmVNdXRhdGlvbkVmZmVjdHMsIG51bGwpO1xuXG4gICAgICAgIGlmIChoYXNDYXVnaHRFcnJvcigpKSB7XG4gICAgICAgICAgaWYgKCEobmV4dEVmZmVjdCAhPT0gbnVsbCkpIHtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoIFwiU2hvdWxkIGJlIHdvcmtpbmcgb24gYW4gZWZmZWN0LlwiICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdmFyIGVycm9yID0gY2xlYXJDYXVnaHRFcnJvcigpO1xuICAgICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKG5leHRFZmZlY3QsIGVycm9yKTtcbiAgICAgICAgICBuZXh0RWZmZWN0ID0gbmV4dEVmZmVjdC5uZXh0RWZmZWN0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSB3aGlsZSAobmV4dEVmZmVjdCAhPT0gbnVsbCk7IC8vIFdlIG5vIGxvbmdlciBuZWVkIHRvIHRyYWNrIHRoZSBhY3RpdmUgaW5zdGFuY2UgZmliZXJcblxuXG4gICAgZm9jdXNlZEluc3RhbmNlSGFuZGxlID0gbnVsbDtcblxuICAgIHtcbiAgICAgIC8vIE1hcmsgdGhlIGN1cnJlbnQgY29tbWl0IHRpbWUgdG8gYmUgc2hhcmVkIGJ5IGFsbCBQcm9maWxlcnMgaW4gdGhpc1xuICAgICAgLy8gYmF0Y2guIFRoaXMgZW5hYmxlcyB0aGVtIHRvIGJlIGdyb3VwZWQgbGF0ZXIuXG4gICAgICByZWNvcmRDb21taXRUaW1lKCk7XG4gICAgfSAvLyBUaGUgbmV4dCBwaGFzZSBpcyB0aGUgbXV0YXRpb24gcGhhc2UsIHdoZXJlIHdlIG11dGF0ZSB0aGUgaG9zdCB0cmVlLlxuXG5cbiAgICBuZXh0RWZmZWN0ID0gZmlyc3RFZmZlY3Q7XG5cbiAgICBkbyB7XG4gICAgICB7XG4gICAgICAgIGludm9rZUd1YXJkZWRDYWxsYmFjayhudWxsLCBjb21taXRNdXRhdGlvbkVmZmVjdHMsIG51bGwsIHJvb3QsIHJlbmRlclByaW9yaXR5TGV2ZWwpO1xuXG4gICAgICAgIGlmIChoYXNDYXVnaHRFcnJvcigpKSB7XG4gICAgICAgICAgaWYgKCEobmV4dEVmZmVjdCAhPT0gbnVsbCkpIHtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoIFwiU2hvdWxkIGJlIHdvcmtpbmcgb24gYW4gZWZmZWN0LlwiICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdmFyIF9lcnJvciA9IGNsZWFyQ2F1Z2h0RXJyb3IoKTtcblxuICAgICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKG5leHRFZmZlY3QsIF9lcnJvcik7XG4gICAgICAgICAgbmV4dEVmZmVjdCA9IG5leHRFZmZlY3QubmV4dEVmZmVjdDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gd2hpbGUgKG5leHRFZmZlY3QgIT09IG51bGwpO1xuXG4gICAgcmVzZXRBZnRlckNvbW1pdChyb290LmNvbnRhaW5lckluZm8pOyAvLyBUaGUgd29yay1pbi1wcm9ncmVzcyB0cmVlIGlzIG5vdyB0aGUgY3VycmVudCB0cmVlLiBUaGlzIG11c3QgY29tZSBhZnRlclxuICAgIC8vIHRoZSBtdXRhdGlvbiBwaGFzZSwgc28gdGhhdCB0aGUgcHJldmlvdXMgdHJlZSBpcyBzdGlsbCBjdXJyZW50IGR1cmluZ1xuICAgIC8vIGNvbXBvbmVudFdpbGxVbm1vdW50LCBidXQgYmVmb3JlIHRoZSBsYXlvdXQgcGhhc2UsIHNvIHRoYXQgdGhlIGZpbmlzaGVkXG4gICAgLy8gd29yayBpcyBjdXJyZW50IGR1cmluZyBjb21wb25lbnREaWRNb3VudC9VcGRhdGUuXG5cbiAgICByb290LmN1cnJlbnQgPSBmaW5pc2hlZFdvcms7IC8vIFRoZSBuZXh0IHBoYXNlIGlzIHRoZSBsYXlvdXQgcGhhc2UsIHdoZXJlIHdlIGNhbGwgZWZmZWN0cyB0aGF0IHJlYWRcbiAgICAvLyB0aGUgaG9zdCB0cmVlIGFmdGVyIGl0J3MgYmVlbiBtdXRhdGVkLiBUaGUgaWRpb21hdGljIHVzZSBjYXNlIGZvciB0aGlzIGlzXG4gICAgLy8gbGF5b3V0LCBidXQgY2xhc3MgY29tcG9uZW50IGxpZmVjeWNsZXMgYWxzbyBmaXJlIGhlcmUgZm9yIGxlZ2FjeSByZWFzb25zLlxuXG4gICAgbmV4dEVmZmVjdCA9IGZpcnN0RWZmZWN0O1xuXG4gICAgZG8ge1xuICAgICAge1xuICAgICAgICBpbnZva2VHdWFyZGVkQ2FsbGJhY2sobnVsbCwgY29tbWl0TGF5b3V0RWZmZWN0cywgbnVsbCwgcm9vdCwgbGFuZXMpO1xuXG4gICAgICAgIGlmIChoYXNDYXVnaHRFcnJvcigpKSB7XG4gICAgICAgICAgaWYgKCEobmV4dEVmZmVjdCAhPT0gbnVsbCkpIHtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoIFwiU2hvdWxkIGJlIHdvcmtpbmcgb24gYW4gZWZmZWN0LlwiICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdmFyIF9lcnJvcjIgPSBjbGVhckNhdWdodEVycm9yKCk7XG5cbiAgICAgICAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcihuZXh0RWZmZWN0LCBfZXJyb3IyKTtcbiAgICAgICAgICBuZXh0RWZmZWN0ID0gbmV4dEVmZmVjdC5uZXh0RWZmZWN0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSB3aGlsZSAobmV4dEVmZmVjdCAhPT0gbnVsbCk7XG5cbiAgICBuZXh0RWZmZWN0ID0gbnVsbDsgLy8gVGVsbCBTY2hlZHVsZXIgdG8geWllbGQgYXQgdGhlIGVuZCBvZiB0aGUgZnJhbWUsIHNvIHRoZSBicm93c2VyIGhhcyBhblxuICAgIC8vIG9wcG9ydHVuaXR5IHRvIHBhaW50LlxuXG4gICAgcmVxdWVzdFBhaW50KCk7XG5cbiAgICB7XG4gICAgICBwb3BJbnRlcmFjdGlvbnMocHJldkludGVyYWN0aW9ucyk7XG4gICAgfVxuXG4gICAgZXhlY3V0aW9uQ29udGV4dCA9IHByZXZFeGVjdXRpb25Db250ZXh0O1xuICB9IGVsc2Uge1xuICAgIC8vIE5vIGVmZmVjdHMuXG4gICAgcm9vdC5jdXJyZW50ID0gZmluaXNoZWRXb3JrOyAvLyBNZWFzdXJlIHRoZXNlIGFueXdheSBzbyB0aGUgZmxhbWVncmFwaCBleHBsaWNpdGx5IHNob3dzIHRoYXQgdGhlcmUgd2VyZVxuICAgIC8vIG5vIGVmZmVjdHMuXG4gICAgLy8gVE9ETzogTWF5YmUgdGhlcmUncyBhIGJldHRlciB3YXkgdG8gcmVwb3J0IHRoaXMuXG5cbiAgICB7XG4gICAgICByZWNvcmRDb21taXRUaW1lKCk7XG4gICAgfVxuICB9XG5cbiAgdmFyIHJvb3REaWRIYXZlUGFzc2l2ZUVmZmVjdHMgPSByb290RG9lc0hhdmVQYXNzaXZlRWZmZWN0cztcblxuICBpZiAocm9vdERvZXNIYXZlUGFzc2l2ZUVmZmVjdHMpIHtcbiAgICAvLyBUaGlzIGNvbW1pdCBoYXMgcGFzc2l2ZSBlZmZlY3RzLiBTdGFzaCBhIHJlZmVyZW5jZSB0byB0aGVtLiBCdXQgZG9uJ3RcbiAgICAvLyBzY2hlZHVsZSBhIGNhbGxiYWNrIHVudGlsIGFmdGVyIGZsdXNoaW5nIGxheW91dCB3b3JrLlxuICAgIHJvb3REb2VzSGF2ZVBhc3NpdmVFZmZlY3RzID0gZmFsc2U7XG4gICAgcm9vdFdpdGhQZW5kaW5nUGFzc2l2ZUVmZmVjdHMgPSByb290O1xuICAgIHBlbmRpbmdQYXNzaXZlRWZmZWN0c0xhbmVzID0gbGFuZXM7XG4gICAgcGVuZGluZ1Bhc3NpdmVFZmZlY3RzUmVuZGVyUHJpb3JpdHkgPSByZW5kZXJQcmlvcml0eUxldmVsO1xuICB9IGVsc2Uge1xuICAgIC8vIFdlIGFyZSBkb25lIHdpdGggdGhlIGVmZmVjdCBjaGFpbiBhdCB0aGlzIHBvaW50IHNvIGxldCdzIGNsZWFyIHRoZVxuICAgIC8vIG5leHRFZmZlY3QgcG9pbnRlcnMgdG8gYXNzaXN0IHdpdGggR0MuIElmIHdlIGhhdmUgcGFzc2l2ZSBlZmZlY3RzLCB3ZSdsbFxuICAgIC8vIGNsZWFyIHRoaXMgaW4gZmx1c2hQYXNzaXZlRWZmZWN0cy5cbiAgICBuZXh0RWZmZWN0ID0gZmlyc3RFZmZlY3Q7XG5cbiAgICB3aGlsZSAobmV4dEVmZmVjdCAhPT0gbnVsbCkge1xuICAgICAgdmFyIG5leHROZXh0RWZmZWN0ID0gbmV4dEVmZmVjdC5uZXh0RWZmZWN0O1xuICAgICAgbmV4dEVmZmVjdC5uZXh0RWZmZWN0ID0gbnVsbDtcblxuICAgICAgaWYgKG5leHRFZmZlY3QuZmxhZ3MgJiBEZWxldGlvbikge1xuICAgICAgICBkZXRhY2hGaWJlckFmdGVyRWZmZWN0cyhuZXh0RWZmZWN0KTtcbiAgICAgIH1cblxuICAgICAgbmV4dEVmZmVjdCA9IG5leHROZXh0RWZmZWN0O1xuICAgIH1cbiAgfSAvLyBSZWFkIHRoaXMgYWdhaW4sIHNpbmNlIGFuIGVmZmVjdCBtaWdodCBoYXZlIHVwZGF0ZWQgaXRcblxuXG4gIHJlbWFpbmluZ0xhbmVzID0gcm9vdC5wZW5kaW5nTGFuZXM7IC8vIENoZWNrIGlmIHRoZXJlJ3MgcmVtYWluaW5nIHdvcmsgb24gdGhpcyByb290XG5cbiAgaWYgKHJlbWFpbmluZ0xhbmVzICE9PSBOb0xhbmVzKSB7XG4gICAge1xuICAgICAgaWYgKHNwYXduZWRXb3JrRHVyaW5nUmVuZGVyICE9PSBudWxsKSB7XG4gICAgICAgIHZhciBleHBpcmF0aW9uVGltZXMgPSBzcGF3bmVkV29ya0R1cmluZ1JlbmRlcjtcbiAgICAgICAgc3Bhd25lZFdvcmtEdXJpbmdSZW5kZXIgPSBudWxsO1xuXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXhwaXJhdGlvblRpbWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgc2NoZWR1bGVJbnRlcmFjdGlvbnMocm9vdCwgZXhwaXJhdGlvblRpbWVzW2ldLCByb290Lm1lbW9pemVkSW50ZXJhY3Rpb25zKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBzY2hlZHVsZVBlbmRpbmdJbnRlcmFjdGlvbnMocm9vdCwgcmVtYWluaW5nTGFuZXMpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBJZiB0aGVyZSdzIG5vIHJlbWFpbmluZyB3b3JrLCB3ZSBjYW4gY2xlYXIgdGhlIHNldCBvZiBhbHJlYWR5IGZhaWxlZFxuICAgIC8vIGVycm9yIGJvdW5kYXJpZXMuXG4gICAgbGVnYWN5RXJyb3JCb3VuZGFyaWVzVGhhdEFscmVhZHlGYWlsZWQgPSBudWxsO1xuICB9XG5cbiAge1xuICAgIGlmICghcm9vdERpZEhhdmVQYXNzaXZlRWZmZWN0cykge1xuICAgICAgLy8gSWYgdGhlcmUgYXJlIG5vIHBhc3NpdmUgZWZmZWN0cywgdGhlbiB3ZSBjYW4gY29tcGxldGUgdGhlIHBlbmRpbmcgaW50ZXJhY3Rpb25zLlxuICAgICAgLy8gT3RoZXJ3aXNlLCB3ZSdsbCB3YWl0IHVudGlsIGFmdGVyIHRoZSBwYXNzaXZlIGVmZmVjdHMgYXJlIGZsdXNoZWQuXG4gICAgICAvLyBXYWl0IHRvIGRvIHRoaXMgdW50aWwgYWZ0ZXIgcmVtYWluaW5nIHdvcmsgaGFzIGJlZW4gc2NoZWR1bGVkLFxuICAgICAgLy8gc28gdGhhdCB3ZSBkb24ndCBwcmVtYXR1cmVseSBzaWduYWwgY29tcGxldGUgZm9yIGludGVyYWN0aW9ucyB3aGVuIHRoZXJlJ3MgZS5nLiBoaWRkZW4gd29yay5cbiAgICAgIGZpbmlzaFBlbmRpbmdJbnRlcmFjdGlvbnMocm9vdCwgbGFuZXMpO1xuICAgIH1cbiAgfVxuXG4gIGlmIChyZW1haW5pbmdMYW5lcyA9PT0gU3luY0xhbmUpIHtcbiAgICAvLyBDb3VudCB0aGUgbnVtYmVyIG9mIHRpbWVzIHRoZSByb290IHN5bmNocm9ub3VzbHkgcmUtcmVuZGVycyB3aXRob3V0XG4gICAgLy8gZmluaXNoaW5nLiBJZiB0aGVyZSBhcmUgdG9vIG1hbnksIGl0IGluZGljYXRlcyBhbiBpbmZpbml0ZSB1cGRhdGUgbG9vcC5cbiAgICBpZiAocm9vdCA9PT0gcm9vdFdpdGhOZXN0ZWRVcGRhdGVzKSB7XG4gICAgICBuZXN0ZWRVcGRhdGVDb3VudCsrO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXN0ZWRVcGRhdGVDb3VudCA9IDA7XG4gICAgICByb290V2l0aE5lc3RlZFVwZGF0ZXMgPSByb290O1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBuZXN0ZWRVcGRhdGVDb3VudCA9IDA7XG4gIH1cblxuICBvbkNvbW1pdFJvb3QoZmluaXNoZWRXb3JrLnN0YXRlTm9kZSwgcmVuZGVyUHJpb3JpdHlMZXZlbCk7XG5cbiAge1xuICAgIG9uQ29tbWl0Um9vdCQxKCk7XG4gIH0gLy8gQWx3YXlzIGNhbGwgdGhpcyBiZWZvcmUgZXhpdGluZyBgY29tbWl0Um9vdGAsIHRvIGVuc3VyZSB0aGF0IGFueVxuICAvLyBhZGRpdGlvbmFsIHdvcmsgb24gdGhpcyByb290IGlzIHNjaGVkdWxlZC5cblxuXG4gIGVuc3VyZVJvb3RJc1NjaGVkdWxlZChyb290LCBub3coKSk7XG5cbiAgaWYgKGhhc1VuY2F1Z2h0RXJyb3IpIHtcbiAgICBoYXNVbmNhdWdodEVycm9yID0gZmFsc2U7XG4gICAgdmFyIF9lcnJvcjMgPSBmaXJzdFVuY2F1Z2h0RXJyb3I7XG4gICAgZmlyc3RVbmNhdWdodEVycm9yID0gbnVsbDtcbiAgICB0aHJvdyBfZXJyb3IzO1xuICB9XG5cbiAgaWYgKChleGVjdXRpb25Db250ZXh0ICYgTGVnYWN5VW5iYXRjaGVkQ29udGV4dCkgIT09IE5vQ29udGV4dCkge1xuICAgIC8vIGEgUmVhY3RET00ucmVuZGVyLWVkIHJvb3QgaW5zaWRlIG9mIGJhdGNoZWRVcGRhdGVzLiBUaGUgY29tbWl0IGZpcmVkXG4gICAgLy8gc3luY2hyb25vdXNseSwgYnV0IGxheW91dCB1cGRhdGVzIHNob3VsZCBiZSBkZWZlcnJlZCB1bnRpbCB0aGUgZW5kXG4gICAgLy8gb2YgdGhlIGJhdGNoLlxuXG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfSAvLyBJZiBsYXlvdXQgd29yayB3YXMgc2NoZWR1bGVkLCBmbHVzaCBpdCBub3cuXG5cblxuICBmbHVzaFN5bmNDYWxsYmFja1F1ZXVlKCk7XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIGNvbW1pdEJlZm9yZU11dGF0aW9uRWZmZWN0cygpIHtcbiAgd2hpbGUgKG5leHRFZmZlY3QgIT09IG51bGwpIHtcbiAgICB2YXIgY3VycmVudCA9IG5leHRFZmZlY3QuYWx0ZXJuYXRlO1xuXG4gICAgaWYgKCFzaG91bGRGaXJlQWZ0ZXJBY3RpdmVJbnN0YW5jZUJsdXIgJiYgZm9jdXNlZEluc3RhbmNlSGFuZGxlICE9PSBudWxsKSB7XG4gICAgICBpZiAoKG5leHRFZmZlY3QuZmxhZ3MgJiBEZWxldGlvbikgIT09IE5vRmxhZ3MpIHtcbiAgICAgICAgaWYgKGRvZXNGaWJlckNvbnRhaW4obmV4dEVmZmVjdCwgZm9jdXNlZEluc3RhbmNlSGFuZGxlKSkge1xuICAgICAgICAgIHNob3VsZEZpcmVBZnRlckFjdGl2ZUluc3RhbmNlQmx1ciA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFRPRE86IE1vdmUgdGhpcyBvdXQgb2YgdGhlIGhvdCBwYXRoIHVzaW5nIGEgZGVkaWNhdGVkIGVmZmVjdCB0YWcuXG4gICAgICAgIGlmIChuZXh0RWZmZWN0LnRhZyA9PT0gU3VzcGVuc2VDb21wb25lbnQgJiYgaXNTdXNwZW5zZUJvdW5kYXJ5QmVpbmdIaWRkZW4oY3VycmVudCwgbmV4dEVmZmVjdCkgJiYgZG9lc0ZpYmVyQ29udGFpbihuZXh0RWZmZWN0LCBmb2N1c2VkSW5zdGFuY2VIYW5kbGUpKSB7XG4gICAgICAgICAgc2hvdWxkRmlyZUFmdGVyQWN0aXZlSW5zdGFuY2VCbHVyID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBmbGFncyA9IG5leHRFZmZlY3QuZmxhZ3M7XG5cbiAgICBpZiAoKGZsYWdzICYgU25hcHNob3QpICE9PSBOb0ZsYWdzKSB7XG4gICAgICBzZXRDdXJyZW50RmliZXIobmV4dEVmZmVjdCk7XG4gICAgICBjb21taXRCZWZvcmVNdXRhdGlvbkxpZmVDeWNsZXMoY3VycmVudCwgbmV4dEVmZmVjdCk7XG4gICAgICByZXNldEN1cnJlbnRGaWJlcigpO1xuICAgIH1cblxuICAgIGlmICgoZmxhZ3MgJiBQYXNzaXZlKSAhPT0gTm9GbGFncykge1xuICAgICAgLy8gSWYgdGhlcmUgYXJlIHBhc3NpdmUgZWZmZWN0cywgc2NoZWR1bGUgYSBjYWxsYmFjayB0byBmbHVzaCBhdFxuICAgICAgLy8gdGhlIGVhcmxpZXN0IG9wcG9ydHVuaXR5LlxuICAgICAgaWYgKCFyb290RG9lc0hhdmVQYXNzaXZlRWZmZWN0cykge1xuICAgICAgICByb290RG9lc0hhdmVQYXNzaXZlRWZmZWN0cyA9IHRydWU7XG4gICAgICAgIHNjaGVkdWxlQ2FsbGJhY2soTm9ybWFsUHJpb3JpdHkkMSwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGZsdXNoUGFzc2l2ZUVmZmVjdHMoKTtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbmV4dEVmZmVjdCA9IG5leHRFZmZlY3QubmV4dEVmZmVjdDtcbiAgfVxufVxuXG5mdW5jdGlvbiBjb21taXRNdXRhdGlvbkVmZmVjdHMocm9vdCwgcmVuZGVyUHJpb3JpdHlMZXZlbCkge1xuICAvLyBUT0RPOiBTaG91bGQgcHJvYmFibHkgbW92ZSB0aGUgYnVsayBvZiB0aGlzIGZ1bmN0aW9uIHRvIGNvbW1pdFdvcmsuXG4gIHdoaWxlIChuZXh0RWZmZWN0ICE9PSBudWxsKSB7XG4gICAgc2V0Q3VycmVudEZpYmVyKG5leHRFZmZlY3QpO1xuICAgIHZhciBmbGFncyA9IG5leHRFZmZlY3QuZmxhZ3M7XG5cbiAgICBpZiAoZmxhZ3MgJiBDb250ZW50UmVzZXQpIHtcbiAgICAgIGNvbW1pdFJlc2V0VGV4dENvbnRlbnQobmV4dEVmZmVjdCk7XG4gICAgfVxuXG4gICAgaWYgKGZsYWdzICYgUmVmKSB7XG4gICAgICB2YXIgY3VycmVudCA9IG5leHRFZmZlY3QuYWx0ZXJuYXRlO1xuXG4gICAgICBpZiAoY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgICBjb21taXREZXRhY2hSZWYoY3VycmVudCk7XG4gICAgICB9XG4gICAgfSAvLyBUaGUgZm9sbG93aW5nIHN3aXRjaCBzdGF0ZW1lbnQgaXMgb25seSBjb25jZXJuZWQgYWJvdXQgcGxhY2VtZW50LFxuICAgIC8vIHVwZGF0ZXMsIGFuZCBkZWxldGlvbnMuIFRvIGF2b2lkIG5lZWRpbmcgdG8gYWRkIGEgY2FzZSBmb3IgZXZlcnkgcG9zc2libGVcbiAgICAvLyBiaXRtYXAgdmFsdWUsIHdlIHJlbW92ZSB0aGUgc2Vjb25kYXJ5IGVmZmVjdHMgZnJvbSB0aGUgZWZmZWN0IHRhZyBhbmRcbiAgICAvLyBzd2l0Y2ggb24gdGhhdCB2YWx1ZS5cblxuXG4gICAgdmFyIHByaW1hcnlGbGFncyA9IGZsYWdzICYgKFBsYWNlbWVudCB8IFVwZGF0ZSB8IERlbGV0aW9uIHwgSHlkcmF0aW5nKTtcblxuICAgIHN3aXRjaCAocHJpbWFyeUZsYWdzKSB7XG4gICAgICBjYXNlIFBsYWNlbWVudDpcbiAgICAgICAge1xuICAgICAgICAgIGNvbW1pdFBsYWNlbWVudChuZXh0RWZmZWN0KTsgLy8gQ2xlYXIgdGhlIFwicGxhY2VtZW50XCIgZnJvbSBlZmZlY3QgdGFnIHNvIHRoYXQgd2Uga25vdyB0aGF0IHRoaXMgaXNcbiAgICAgICAgICAvLyBpbnNlcnRlZCwgYmVmb3JlIGFueSBsaWZlLWN5Y2xlcyBsaWtlIGNvbXBvbmVudERpZE1vdW50IGdldHMgY2FsbGVkLlxuICAgICAgICAgIC8vIFRPRE86IGZpbmRET01Ob2RlIGRvZXNuJ3QgcmVseSBvbiB0aGlzIGFueSBtb3JlIGJ1dCBpc01vdW50ZWQgZG9lc1xuICAgICAgICAgIC8vIGFuZCBpc01vdW50ZWQgaXMgZGVwcmVjYXRlZCBhbnl3YXkgc28gd2Ugc2hvdWxkIGJlIGFibGUgdG8ga2lsbCB0aGlzLlxuXG4gICAgICAgICAgbmV4dEVmZmVjdC5mbGFncyAmPSB+UGxhY2VtZW50O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgIGNhc2UgUGxhY2VtZW50QW5kVXBkYXRlOlxuICAgICAgICB7XG4gICAgICAgICAgLy8gUGxhY2VtZW50XG4gICAgICAgICAgY29tbWl0UGxhY2VtZW50KG5leHRFZmZlY3QpOyAvLyBDbGVhciB0aGUgXCJwbGFjZW1lbnRcIiBmcm9tIGVmZmVjdCB0YWcgc28gdGhhdCB3ZSBrbm93IHRoYXQgdGhpcyBpc1xuICAgICAgICAgIC8vIGluc2VydGVkLCBiZWZvcmUgYW55IGxpZmUtY3ljbGVzIGxpa2UgY29tcG9uZW50RGlkTW91bnQgZ2V0cyBjYWxsZWQuXG5cbiAgICAgICAgICBuZXh0RWZmZWN0LmZsYWdzICY9IH5QbGFjZW1lbnQ7IC8vIFVwZGF0ZVxuXG4gICAgICAgICAgdmFyIF9jdXJyZW50ID0gbmV4dEVmZmVjdC5hbHRlcm5hdGU7XG4gICAgICAgICAgY29tbWl0V29yayhfY3VycmVudCwgbmV4dEVmZmVjdCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgY2FzZSBIeWRyYXRpbmc6XG4gICAgICAgIHtcbiAgICAgICAgICBuZXh0RWZmZWN0LmZsYWdzICY9IH5IeWRyYXRpbmc7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgY2FzZSBIeWRyYXRpbmdBbmRVcGRhdGU6XG4gICAgICAgIHtcbiAgICAgICAgICBuZXh0RWZmZWN0LmZsYWdzICY9IH5IeWRyYXRpbmc7IC8vIFVwZGF0ZVxuXG4gICAgICAgICAgdmFyIF9jdXJyZW50MiA9IG5leHRFZmZlY3QuYWx0ZXJuYXRlO1xuICAgICAgICAgIGNvbW1pdFdvcmsoX2N1cnJlbnQyLCBuZXh0RWZmZWN0KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICBjYXNlIFVwZGF0ZTpcbiAgICAgICAge1xuICAgICAgICAgIHZhciBfY3VycmVudDMgPSBuZXh0RWZmZWN0LmFsdGVybmF0ZTtcbiAgICAgICAgICBjb21taXRXb3JrKF9jdXJyZW50MywgbmV4dEVmZmVjdCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgY2FzZSBEZWxldGlvbjpcbiAgICAgICAge1xuICAgICAgICAgIGNvbW1pdERlbGV0aW9uKHJvb3QsIG5leHRFZmZlY3QpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVzZXRDdXJyZW50RmliZXIoKTtcbiAgICBuZXh0RWZmZWN0ID0gbmV4dEVmZmVjdC5uZXh0RWZmZWN0O1xuICB9XG59XG5cbmZ1bmN0aW9uIGNvbW1pdExheW91dEVmZmVjdHMocm9vdCwgY29tbWl0dGVkTGFuZXMpIHtcblxuXG4gIHdoaWxlIChuZXh0RWZmZWN0ICE9PSBudWxsKSB7XG4gICAgc2V0Q3VycmVudEZpYmVyKG5leHRFZmZlY3QpO1xuICAgIHZhciBmbGFncyA9IG5leHRFZmZlY3QuZmxhZ3M7XG5cbiAgICBpZiAoZmxhZ3MgJiAoVXBkYXRlIHwgQ2FsbGJhY2spKSB7XG4gICAgICB2YXIgY3VycmVudCA9IG5leHRFZmZlY3QuYWx0ZXJuYXRlO1xuICAgICAgY29tbWl0TGlmZUN5Y2xlcyhyb290LCBjdXJyZW50LCBuZXh0RWZmZWN0KTtcbiAgICB9XG5cbiAgICB7XG4gICAgICBpZiAoZmxhZ3MgJiBSZWYpIHtcbiAgICAgICAgY29tbWl0QXR0YWNoUmVmKG5leHRFZmZlY3QpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJlc2V0Q3VycmVudEZpYmVyKCk7XG4gICAgbmV4dEVmZmVjdCA9IG5leHRFZmZlY3QubmV4dEVmZmVjdDtcbiAgfVxufVxuXG5mdW5jdGlvbiBmbHVzaFBhc3NpdmVFZmZlY3RzKCkge1xuICAvLyBSZXR1cm5zIHdoZXRoZXIgcGFzc2l2ZSBlZmZlY3RzIHdlcmUgZmx1c2hlZC5cbiAgaWYgKHBlbmRpbmdQYXNzaXZlRWZmZWN0c1JlbmRlclByaW9yaXR5ICE9PSBOb1ByaW9yaXR5JDEpIHtcbiAgICB2YXIgcHJpb3JpdHlMZXZlbCA9IHBlbmRpbmdQYXNzaXZlRWZmZWN0c1JlbmRlclByaW9yaXR5ID4gTm9ybWFsUHJpb3JpdHkkMSA/IE5vcm1hbFByaW9yaXR5JDEgOiBwZW5kaW5nUGFzc2l2ZUVmZmVjdHNSZW5kZXJQcmlvcml0eTtcbiAgICBwZW5kaW5nUGFzc2l2ZUVmZmVjdHNSZW5kZXJQcmlvcml0eSA9IE5vUHJpb3JpdHkkMTtcblxuICAgIHtcbiAgICAgIHJldHVybiBydW5XaXRoUHJpb3JpdHkkMShwcmlvcml0eUxldmVsLCBmbHVzaFBhc3NpdmVFZmZlY3RzSW1wbCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuZnVuY3Rpb24gZW5xdWV1ZVBlbmRpbmdQYXNzaXZlSG9va0VmZmVjdE1vdW50KGZpYmVyLCBlZmZlY3QpIHtcbiAgcGVuZGluZ1Bhc3NpdmVIb29rRWZmZWN0c01vdW50LnB1c2goZWZmZWN0LCBmaWJlcik7XG5cbiAgaWYgKCFyb290RG9lc0hhdmVQYXNzaXZlRWZmZWN0cykge1xuICAgIHJvb3REb2VzSGF2ZVBhc3NpdmVFZmZlY3RzID0gdHJ1ZTtcbiAgICBzY2hlZHVsZUNhbGxiYWNrKE5vcm1hbFByaW9yaXR5JDEsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGZsdXNoUGFzc2l2ZUVmZmVjdHMoKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0pO1xuICB9XG59XG5mdW5jdGlvbiBlbnF1ZXVlUGVuZGluZ1Bhc3NpdmVIb29rRWZmZWN0VW5tb3VudChmaWJlciwgZWZmZWN0KSB7XG4gIHBlbmRpbmdQYXNzaXZlSG9va0VmZmVjdHNVbm1vdW50LnB1c2goZWZmZWN0LCBmaWJlcik7XG5cbiAge1xuICAgIGZpYmVyLmZsYWdzIHw9IFBhc3NpdmVVbm1vdW50UGVuZGluZ0RldjtcbiAgICB2YXIgYWx0ZXJuYXRlID0gZmliZXIuYWx0ZXJuYXRlO1xuXG4gICAgaWYgKGFsdGVybmF0ZSAhPT0gbnVsbCkge1xuICAgICAgYWx0ZXJuYXRlLmZsYWdzIHw9IFBhc3NpdmVVbm1vdW50UGVuZGluZ0RldjtcbiAgICB9XG4gIH1cblxuICBpZiAoIXJvb3REb2VzSGF2ZVBhc3NpdmVFZmZlY3RzKSB7XG4gICAgcm9vdERvZXNIYXZlUGFzc2l2ZUVmZmVjdHMgPSB0cnVlO1xuICAgIHNjaGVkdWxlQ2FsbGJhY2soTm9ybWFsUHJpb3JpdHkkMSwgZnVuY3Rpb24gKCkge1xuICAgICAgZmx1c2hQYXNzaXZlRWZmZWN0cygpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaW52b2tlUGFzc2l2ZUVmZmVjdENyZWF0ZShlZmZlY3QpIHtcbiAgdmFyIGNyZWF0ZSA9IGVmZmVjdC5jcmVhdGU7XG4gIGVmZmVjdC5kZXN0cm95ID0gY3JlYXRlKCk7XG59XG5cbmZ1bmN0aW9uIGZsdXNoUGFzc2l2ZUVmZmVjdHNJbXBsKCkge1xuICBpZiAocm9vdFdpdGhQZW5kaW5nUGFzc2l2ZUVmZmVjdHMgPT09IG51bGwpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB2YXIgcm9vdCA9IHJvb3RXaXRoUGVuZGluZ1Bhc3NpdmVFZmZlY3RzO1xuICB2YXIgbGFuZXMgPSBwZW5kaW5nUGFzc2l2ZUVmZmVjdHNMYW5lcztcbiAgcm9vdFdpdGhQZW5kaW5nUGFzc2l2ZUVmZmVjdHMgPSBudWxsO1xuICBwZW5kaW5nUGFzc2l2ZUVmZmVjdHNMYW5lcyA9IE5vTGFuZXM7XG5cbiAgaWYgKCEoKGV4ZWN1dGlvbkNvbnRleHQgJiAoUmVuZGVyQ29udGV4dCB8IENvbW1pdENvbnRleHQpKSA9PT0gTm9Db250ZXh0KSkge1xuICAgIHtcbiAgICAgIHRocm93IEVycm9yKCBcIkNhbm5vdCBmbHVzaCBwYXNzaXZlIGVmZmVjdHMgd2hpbGUgYWxyZWFkeSByZW5kZXJpbmcuXCIgKTtcbiAgICB9XG4gIH1cblxuICB7XG4gICAgaXNGbHVzaGluZ1Bhc3NpdmVFZmZlY3RzID0gdHJ1ZTtcbiAgfVxuXG4gIHZhciBwcmV2RXhlY3V0aW9uQ29udGV4dCA9IGV4ZWN1dGlvbkNvbnRleHQ7XG4gIGV4ZWN1dGlvbkNvbnRleHQgfD0gQ29tbWl0Q29udGV4dDtcbiAgdmFyIHByZXZJbnRlcmFjdGlvbnMgPSBwdXNoSW50ZXJhY3Rpb25zKHJvb3QpOyAvLyBJdCdzIGltcG9ydGFudCB0aGF0IEFMTCBwZW5kaW5nIHBhc3NpdmUgZWZmZWN0IGRlc3Ryb3kgZnVuY3Rpb25zIGFyZSBjYWxsZWRcbiAgLy8gYmVmb3JlIEFOWSBwYXNzaXZlIGVmZmVjdCBjcmVhdGUgZnVuY3Rpb25zIGFyZSBjYWxsZWQuXG4gIC8vIE90aGVyd2lzZSBlZmZlY3RzIGluIHNpYmxpbmcgY29tcG9uZW50cyBtaWdodCBpbnRlcmZlcmUgd2l0aCBlYWNoIG90aGVyLlxuICAvLyBlLmcuIGEgZGVzdHJveSBmdW5jdGlvbiBpbiBvbmUgY29tcG9uZW50IG1heSB1bmludGVudGlvbmFsbHkgb3ZlcnJpZGUgYSByZWZcbiAgLy8gdmFsdWUgc2V0IGJ5IGEgY3JlYXRlIGZ1bmN0aW9uIGluIGFub3RoZXIgY29tcG9uZW50LlxuICAvLyBMYXlvdXQgZWZmZWN0cyBoYXZlIHRoZSBzYW1lIGNvbnN0cmFpbnQuXG4gIC8vIEZpcnN0IHBhc3M6IERlc3Ryb3kgc3RhbGUgcGFzc2l2ZSBlZmZlY3RzLlxuXG4gIHZhciB1bm1vdW50RWZmZWN0cyA9IHBlbmRpbmdQYXNzaXZlSG9va0VmZmVjdHNVbm1vdW50O1xuICBwZW5kaW5nUGFzc2l2ZUhvb2tFZmZlY3RzVW5tb3VudCA9IFtdO1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgdW5tb3VudEVmZmVjdHMubGVuZ3RoOyBpICs9IDIpIHtcbiAgICB2YXIgX2VmZmVjdCA9IHVubW91bnRFZmZlY3RzW2ldO1xuICAgIHZhciBmaWJlciA9IHVubW91bnRFZmZlY3RzW2kgKyAxXTtcbiAgICB2YXIgZGVzdHJveSA9IF9lZmZlY3QuZGVzdHJveTtcbiAgICBfZWZmZWN0LmRlc3Ryb3kgPSB1bmRlZmluZWQ7XG5cbiAgICB7XG4gICAgICBmaWJlci5mbGFncyAmPSB+UGFzc2l2ZVVubW91bnRQZW5kaW5nRGV2O1xuICAgICAgdmFyIGFsdGVybmF0ZSA9IGZpYmVyLmFsdGVybmF0ZTtcblxuICAgICAgaWYgKGFsdGVybmF0ZSAhPT0gbnVsbCkge1xuICAgICAgICBhbHRlcm5hdGUuZmxhZ3MgJj0gflBhc3NpdmVVbm1vdW50UGVuZGluZ0RldjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGRlc3Ryb3kgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHtcbiAgICAgICAgc2V0Q3VycmVudEZpYmVyKGZpYmVyKTtcblxuICAgICAgICB7XG4gICAgICAgICAgaW52b2tlR3VhcmRlZENhbGxiYWNrKG51bGwsIGRlc3Ryb3ksIG51bGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGhhc0NhdWdodEVycm9yKCkpIHtcbiAgICAgICAgICBpZiAoIShmaWJlciAhPT0gbnVsbCkpIHtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoIFwiU2hvdWxkIGJlIHdvcmtpbmcgb24gYW4gZWZmZWN0LlwiICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdmFyIGVycm9yID0gY2xlYXJDYXVnaHRFcnJvcigpO1xuICAgICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGZpYmVyLCBlcnJvcik7XG4gICAgICAgIH1cblxuICAgICAgICByZXNldEN1cnJlbnRGaWJlcigpO1xuICAgICAgfVxuICAgIH1cbiAgfSAvLyBTZWNvbmQgcGFzczogQ3JlYXRlIG5ldyBwYXNzaXZlIGVmZmVjdHMuXG5cblxuICB2YXIgbW91bnRFZmZlY3RzID0gcGVuZGluZ1Bhc3NpdmVIb29rRWZmZWN0c01vdW50O1xuICBwZW5kaW5nUGFzc2l2ZUhvb2tFZmZlY3RzTW91bnQgPSBbXTtcblxuICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgbW91bnRFZmZlY3RzLmxlbmd0aDsgX2kgKz0gMikge1xuICAgIHZhciBfZWZmZWN0MiA9IG1vdW50RWZmZWN0c1tfaV07XG4gICAgdmFyIF9maWJlciA9IG1vdW50RWZmZWN0c1tfaSArIDFdO1xuXG4gICAge1xuICAgICAgc2V0Q3VycmVudEZpYmVyKF9maWJlcik7XG5cbiAgICAgIHtcbiAgICAgICAgaW52b2tlR3VhcmRlZENhbGxiYWNrKG51bGwsIGludm9rZVBhc3NpdmVFZmZlY3RDcmVhdGUsIG51bGwsIF9lZmZlY3QyKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0NhdWdodEVycm9yKCkpIHtcbiAgICAgICAgaWYgKCEoX2ZpYmVyICE9PSBudWxsKSkge1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRocm93IEVycm9yKCBcIlNob3VsZCBiZSB3b3JraW5nIG9uIGFuIGVmZmVjdC5cIiApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBfZXJyb3I0ID0gY2xlYXJDYXVnaHRFcnJvcigpO1xuXG4gICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKF9maWJlciwgX2Vycm9yNCk7XG4gICAgICB9XG5cbiAgICAgIHJlc2V0Q3VycmVudEZpYmVyKCk7XG4gICAgfVxuICB9IC8vIE5vdGU6IFRoaXMgY3VycmVudGx5IGFzc3VtZXMgdGhlcmUgYXJlIG5vIHBhc3NpdmUgZWZmZWN0cyBvbiB0aGUgcm9vdCBmaWJlclxuICAvLyBiZWNhdXNlIHRoZSByb290IGlzIG5vdCBwYXJ0IG9mIGl0cyBvd24gZWZmZWN0IGxpc3QuXG4gIC8vIFRoaXMgY291bGQgY2hhbmdlIGluIHRoZSBmdXR1cmUuXG5cblxuICB2YXIgZWZmZWN0ID0gcm9vdC5jdXJyZW50LmZpcnN0RWZmZWN0O1xuXG4gIHdoaWxlIChlZmZlY3QgIT09IG51bGwpIHtcbiAgICB2YXIgbmV4dE5leHRFZmZlY3QgPSBlZmZlY3QubmV4dEVmZmVjdDsgLy8gUmVtb3ZlIG5leHRFZmZlY3QgcG9pbnRlciB0byBhc3Npc3QgR0NcblxuICAgIGVmZmVjdC5uZXh0RWZmZWN0ID0gbnVsbDtcblxuICAgIGlmIChlZmZlY3QuZmxhZ3MgJiBEZWxldGlvbikge1xuICAgICAgZGV0YWNoRmliZXJBZnRlckVmZmVjdHMoZWZmZWN0KTtcbiAgICB9XG5cbiAgICBlZmZlY3QgPSBuZXh0TmV4dEVmZmVjdDtcbiAgfVxuXG4gIHtcbiAgICBwb3BJbnRlcmFjdGlvbnMocHJldkludGVyYWN0aW9ucyk7XG4gICAgZmluaXNoUGVuZGluZ0ludGVyYWN0aW9ucyhyb290LCBsYW5lcyk7XG4gIH1cblxuICB7XG4gICAgaXNGbHVzaGluZ1Bhc3NpdmVFZmZlY3RzID0gZmFsc2U7XG4gIH1cblxuICBleGVjdXRpb25Db250ZXh0ID0gcHJldkV4ZWN1dGlvbkNvbnRleHQ7XG4gIGZsdXNoU3luY0NhbGxiYWNrUXVldWUoKTsgLy8gSWYgYWRkaXRpb25hbCBwYXNzaXZlIGVmZmVjdHMgd2VyZSBzY2hlZHVsZWQsIGluY3JlbWVudCBhIGNvdW50ZXIuIElmIHRoaXNcbiAgLy8gZXhjZWVkcyB0aGUgbGltaXQsIHdlJ2xsIGZpcmUgYSB3YXJuaW5nLlxuXG4gIG5lc3RlZFBhc3NpdmVVcGRhdGVDb3VudCA9IHJvb3RXaXRoUGVuZGluZ1Bhc3NpdmVFZmZlY3RzID09PSBudWxsID8gMCA6IG5lc3RlZFBhc3NpdmVVcGRhdGVDb3VudCArIDE7XG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBpc0FscmVhZHlGYWlsZWRMZWdhY3lFcnJvckJvdW5kYXJ5KGluc3RhbmNlKSB7XG4gIHJldHVybiBsZWdhY3lFcnJvckJvdW5kYXJpZXNUaGF0QWxyZWFkeUZhaWxlZCAhPT0gbnVsbCAmJiBsZWdhY3lFcnJvckJvdW5kYXJpZXNUaGF0QWxyZWFkeUZhaWxlZC5oYXMoaW5zdGFuY2UpO1xufVxuZnVuY3Rpb24gbWFya0xlZ2FjeUVycm9yQm91bmRhcnlBc0ZhaWxlZChpbnN0YW5jZSkge1xuICBpZiAobGVnYWN5RXJyb3JCb3VuZGFyaWVzVGhhdEFscmVhZHlGYWlsZWQgPT09IG51bGwpIHtcbiAgICBsZWdhY3lFcnJvckJvdW5kYXJpZXNUaGF0QWxyZWFkeUZhaWxlZCA9IG5ldyBTZXQoW2luc3RhbmNlXSk7XG4gIH0gZWxzZSB7XG4gICAgbGVnYWN5RXJyb3JCb3VuZGFyaWVzVGhhdEFscmVhZHlGYWlsZWQuYWRkKGluc3RhbmNlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwcmVwYXJlVG9UaHJvd1VuY2F1Z2h0RXJyb3IoZXJyb3IpIHtcbiAgaWYgKCFoYXNVbmNhdWdodEVycm9yKSB7XG4gICAgaGFzVW5jYXVnaHRFcnJvciA9IHRydWU7XG4gICAgZmlyc3RVbmNhdWdodEVycm9yID0gZXJyb3I7XG4gIH1cbn1cblxudmFyIG9uVW5jYXVnaHRFcnJvciA9IHByZXBhcmVUb1Rocm93VW5jYXVnaHRFcnJvcjtcblxuZnVuY3Rpb24gY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3JPblJvb3Qocm9vdEZpYmVyLCBzb3VyY2VGaWJlciwgZXJyb3IpIHtcbiAgdmFyIGVycm9ySW5mbyA9IGNyZWF0ZUNhcHR1cmVkVmFsdWUoZXJyb3IsIHNvdXJjZUZpYmVyKTtcbiAgdmFyIHVwZGF0ZSA9IGNyZWF0ZVJvb3RFcnJvclVwZGF0ZShyb290RmliZXIsIGVycm9ySW5mbywgU3luY0xhbmUpO1xuICBlbnF1ZXVlVXBkYXRlKHJvb3RGaWJlciwgdXBkYXRlKTtcbiAgdmFyIGV2ZW50VGltZSA9IHJlcXVlc3RFdmVudFRpbWUoKTtcbiAgdmFyIHJvb3QgPSBtYXJrVXBkYXRlTGFuZUZyb21GaWJlclRvUm9vdChyb290RmliZXIsIFN5bmNMYW5lKTtcblxuICBpZiAocm9vdCAhPT0gbnVsbCkge1xuICAgIG1hcmtSb290VXBkYXRlZChyb290LCBTeW5jTGFuZSwgZXZlbnRUaW1lKTtcbiAgICBlbnN1cmVSb290SXNTY2hlZHVsZWQocm9vdCwgZXZlbnRUaW1lKTtcbiAgICBzY2hlZHVsZVBlbmRpbmdJbnRlcmFjdGlvbnMocm9vdCwgU3luY0xhbmUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKHNvdXJjZUZpYmVyLCBlcnJvcikge1xuICBpZiAoc291cmNlRmliZXIudGFnID09PSBIb3N0Um9vdCkge1xuICAgIC8vIEVycm9yIHdhcyB0aHJvd24gYXQgdGhlIHJvb3QuIFRoZXJlIGlzIG5vIHBhcmVudCwgc28gdGhlIHJvb3RcbiAgICAvLyBpdHNlbGYgc2hvdWxkIGNhcHR1cmUgaXQuXG4gICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3JPblJvb3Qoc291cmNlRmliZXIsIHNvdXJjZUZpYmVyLCBlcnJvcik7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdmFyIGZpYmVyID0gc291cmNlRmliZXIucmV0dXJuO1xuXG4gIHdoaWxlIChmaWJlciAhPT0gbnVsbCkge1xuICAgIGlmIChmaWJlci50YWcgPT09IEhvc3RSb290KSB7XG4gICAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvck9uUm9vdChmaWJlciwgc291cmNlRmliZXIsIGVycm9yKTtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKGZpYmVyLnRhZyA9PT0gQ2xhc3NDb21wb25lbnQpIHtcbiAgICAgIHZhciBjdG9yID0gZmliZXIudHlwZTtcbiAgICAgIHZhciBpbnN0YW5jZSA9IGZpYmVyLnN0YXRlTm9kZTtcblxuICAgICAgaWYgKHR5cGVvZiBjdG9yLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvciA9PT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50RGlkQ2F0Y2ggPT09ICdmdW5jdGlvbicgJiYgIWlzQWxyZWFkeUZhaWxlZExlZ2FjeUVycm9yQm91bmRhcnkoaW5zdGFuY2UpKSB7XG4gICAgICAgIHZhciBlcnJvckluZm8gPSBjcmVhdGVDYXB0dXJlZFZhbHVlKGVycm9yLCBzb3VyY2VGaWJlcik7XG4gICAgICAgIHZhciB1cGRhdGUgPSBjcmVhdGVDbGFzc0Vycm9yVXBkYXRlKGZpYmVyLCBlcnJvckluZm8sIFN5bmNMYW5lKTtcbiAgICAgICAgZW5xdWV1ZVVwZGF0ZShmaWJlciwgdXBkYXRlKTtcbiAgICAgICAgdmFyIGV2ZW50VGltZSA9IHJlcXVlc3RFdmVudFRpbWUoKTtcbiAgICAgICAgdmFyIHJvb3QgPSBtYXJrVXBkYXRlTGFuZUZyb21GaWJlclRvUm9vdChmaWJlciwgU3luY0xhbmUpO1xuXG4gICAgICAgIGlmIChyb290ICE9PSBudWxsKSB7XG4gICAgICAgICAgbWFya1Jvb3RVcGRhdGVkKHJvb3QsIFN5bmNMYW5lLCBldmVudFRpbWUpO1xuICAgICAgICAgIGVuc3VyZVJvb3RJc1NjaGVkdWxlZChyb290LCBldmVudFRpbWUpO1xuICAgICAgICAgIHNjaGVkdWxlUGVuZGluZ0ludGVyYWN0aW9ucyhyb290LCBTeW5jTGFuZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gVGhpcyBjb21wb25lbnQgaGFzIGFscmVhZHkgYmVlbiB1bm1vdW50ZWQuXG4gICAgICAgICAgLy8gV2UgY2FuJ3Qgc2NoZWR1bGUgYW55IGZvbGxvdyB1cCB3b3JrIGZvciB0aGUgcm9vdCBiZWNhdXNlIHRoZSBmaWJlciBpcyBhbHJlYWR5IHVubW91bnRlZCxcbiAgICAgICAgICAvLyBidXQgd2UgY2FuIHN0aWxsIGNhbGwgdGhlIGxvZy1vbmx5IGJvdW5kYXJ5IHNvIHRoZSBlcnJvciBpc24ndCBzd2FsbG93ZWQuXG4gICAgICAgICAgLy9cbiAgICAgICAgICAvLyBUT0RPIFRoaXMgaXMgb25seSBhIHRlbXBvcmFyeSBiYW5kYWlkIGZvciB0aGUgb2xkIHJlY29uY2lsZXIgZm9yay5cbiAgICAgICAgICAvLyBXZSBjYW4gZGVsZXRlIHRoaXMgc3BlY2lhbCBjYXNlIG9uY2UgdGhlIG5ldyBmb3JrIGlzIG1lcmdlZC5cbiAgICAgICAgICBpZiAodHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudERpZENhdGNoID09PSAnZnVuY3Rpb24nICYmICFpc0FscmVhZHlGYWlsZWRMZWdhY3lFcnJvckJvdW5kYXJ5KGluc3RhbmNlKSkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgaW5zdGFuY2UuY29tcG9uZW50RGlkQ2F0Y2goZXJyb3IsIGVycm9ySW5mbyk7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvclRvSWdub3JlKSB7Ly8gVE9ETyBJZ25vcmUgdGhpcyBlcnJvcj8gUmV0aHJvdyBpdD9cbiAgICAgICAgICAgICAgLy8gVGhpcyBpcyBraW5kIG9mIGFuIGVkZ2UgY2FzZS5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgZmliZXIgPSBmaWJlci5yZXR1cm47XG4gIH1cbn1cbmZ1bmN0aW9uIHBpbmdTdXNwZW5kZWRSb290KHJvb3QsIHdha2VhYmxlLCBwaW5nZWRMYW5lcykge1xuICB2YXIgcGluZ0NhY2hlID0gcm9vdC5waW5nQ2FjaGU7XG5cbiAgaWYgKHBpbmdDYWNoZSAhPT0gbnVsbCkge1xuICAgIC8vIFRoZSB3YWtlYWJsZSByZXNvbHZlZCwgc28gd2Ugbm8gbG9uZ2VyIG5lZWQgdG8gbWVtb2l6ZSwgYmVjYXVzZSBpdCB3aWxsXG4gICAgLy8gbmV2ZXIgYmUgdGhyb3duIGFnYWluLlxuICAgIHBpbmdDYWNoZS5kZWxldGUod2FrZWFibGUpO1xuICB9XG5cbiAgdmFyIGV2ZW50VGltZSA9IHJlcXVlc3RFdmVudFRpbWUoKTtcbiAgbWFya1Jvb3RQaW5nZWQocm9vdCwgcGluZ2VkTGFuZXMpO1xuXG4gIGlmICh3b3JrSW5Qcm9ncmVzc1Jvb3QgPT09IHJvb3QgJiYgaXNTdWJzZXRPZkxhbmVzKHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzLCBwaW5nZWRMYW5lcykpIHtcbiAgICAvLyBSZWNlaXZlZCBhIHBpbmcgYXQgdGhlIHNhbWUgcHJpb3JpdHkgbGV2ZWwgYXQgd2hpY2ggd2UncmUgY3VycmVudGx5XG4gICAgLy8gcmVuZGVyaW5nLiBXZSBtaWdodCB3YW50IHRvIHJlc3RhcnQgdGhpcyByZW5kZXIuIFRoaXMgc2hvdWxkIG1pcnJvclxuICAgIC8vIHRoZSBsb2dpYyBvZiB3aGV0aGVyIG9yIG5vdCBhIHJvb3Qgc3VzcGVuZHMgb25jZSBpdCBjb21wbGV0ZXMuXG4gICAgLy8gVE9ETzogSWYgd2UncmUgcmVuZGVyaW5nIHN5bmMgZWl0aGVyIGR1ZSB0byBTeW5jLCBCYXRjaGVkIG9yIGV4cGlyZWQsXG4gICAgLy8gd2Ugc2hvdWxkIHByb2JhYmx5IG5ldmVyIHJlc3RhcnQuXG4gICAgLy8gSWYgd2UncmUgc3VzcGVuZGVkIHdpdGggZGVsYXksIG9yIGlmIGl0J3MgYSByZXRyeSwgd2UnbGwgYWx3YXlzIHN1c3BlbmRcbiAgICAvLyBzbyB3ZSBjYW4gYWx3YXlzIHJlc3RhcnQuXG4gICAgaWYgKHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgPT09IFJvb3RTdXNwZW5kZWRXaXRoRGVsYXkgfHwgd29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyA9PT0gUm9vdFN1c3BlbmRlZCAmJiBpbmNsdWRlc09ubHlSZXRyaWVzKHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzKSAmJiBub3coKSAtIGdsb2JhbE1vc3RSZWNlbnRGYWxsYmFja1RpbWUgPCBGQUxMQkFDS19USFJPVFRMRV9NUykge1xuICAgICAgLy8gUmVzdGFydCBmcm9tIHRoZSByb290LlxuICAgICAgcHJlcGFyZUZyZXNoU3RhY2socm9vdCwgTm9MYW5lcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEV2ZW4gdGhvdWdoIHdlIGNhbid0IHJlc3RhcnQgcmlnaHQgbm93LCB3ZSBtaWdodCBnZXQgYW5cbiAgICAgIC8vIG9wcG9ydHVuaXR5IGxhdGVyLiBTbyB3ZSBtYXJrIHRoaXMgcmVuZGVyIGFzIGhhdmluZyBhIHBpbmcuXG4gICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RQaW5nZWRMYW5lcyA9IG1lcmdlTGFuZXMod29ya0luUHJvZ3Jlc3NSb290UGluZ2VkTGFuZXMsIHBpbmdlZExhbmVzKTtcbiAgICB9XG4gIH1cblxuICBlbnN1cmVSb290SXNTY2hlZHVsZWQocm9vdCwgZXZlbnRUaW1lKTtcbiAgc2NoZWR1bGVQZW5kaW5nSW50ZXJhY3Rpb25zKHJvb3QsIHBpbmdlZExhbmVzKTtcbn1cblxuZnVuY3Rpb24gcmV0cnlUaW1lZE91dEJvdW5kYXJ5KGJvdW5kYXJ5RmliZXIsIHJldHJ5TGFuZSkge1xuICAvLyBUaGUgYm91bmRhcnkgZmliZXIgKGEgU3VzcGVuc2UgY29tcG9uZW50IG9yIFN1c3BlbnNlTGlzdCBjb21wb25lbnQpXG4gIC8vIHByZXZpb3VzbHkgd2FzIHJlbmRlcmVkIGluIGl0cyBmYWxsYmFjayBzdGF0ZS4gT25lIG9mIHRoZSBwcm9taXNlcyB0aGF0XG4gIC8vIHN1c3BlbmRlZCBpdCBoYXMgcmVzb2x2ZWQsIHdoaWNoIG1lYW5zIGF0IGxlYXN0IHBhcnQgb2YgdGhlIHRyZWUgd2FzXG4gIC8vIGxpa2VseSB1bmJsb2NrZWQuIFRyeSByZW5kZXJpbmcgYWdhaW4sIGF0IGEgbmV3IGV4cGlyYXRpb24gdGltZS5cbiAgaWYgKHJldHJ5TGFuZSA9PT0gTm9MYW5lKSB7XG4gICAgcmV0cnlMYW5lID0gcmVxdWVzdFJldHJ5TGFuZShib3VuZGFyeUZpYmVyKTtcbiAgfSAvLyBUT0RPOiBTcGVjaWFsIGNhc2UgaWRsZSBwcmlvcml0eT9cblxuXG4gIHZhciBldmVudFRpbWUgPSByZXF1ZXN0RXZlbnRUaW1lKCk7XG4gIHZhciByb290ID0gbWFya1VwZGF0ZUxhbmVGcm9tRmliZXJUb1Jvb3QoYm91bmRhcnlGaWJlciwgcmV0cnlMYW5lKTtcblxuICBpZiAocm9vdCAhPT0gbnVsbCkge1xuICAgIG1hcmtSb290VXBkYXRlZChyb290LCByZXRyeUxhbmUsIGV2ZW50VGltZSk7XG4gICAgZW5zdXJlUm9vdElzU2NoZWR1bGVkKHJvb3QsIGV2ZW50VGltZSk7XG4gICAgc2NoZWR1bGVQZW5kaW5nSW50ZXJhY3Rpb25zKHJvb3QsIHJldHJ5TGFuZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIHJlc29sdmVSZXRyeVdha2VhYmxlKGJvdW5kYXJ5RmliZXIsIHdha2VhYmxlKSB7XG4gIHZhciByZXRyeUxhbmUgPSBOb0xhbmU7IC8vIERlZmF1bHRcblxuICB2YXIgcmV0cnlDYWNoZTtcblxuICB7XG4gICAgcmV0cnlDYWNoZSA9IGJvdW5kYXJ5RmliZXIuc3RhdGVOb2RlO1xuICB9XG5cbiAgaWYgKHJldHJ5Q2FjaGUgIT09IG51bGwpIHtcbiAgICAvLyBUaGUgd2FrZWFibGUgcmVzb2x2ZWQsIHNvIHdlIG5vIGxvbmdlciBuZWVkIHRvIG1lbW9pemUsIGJlY2F1c2UgaXQgd2lsbFxuICAgIC8vIG5ldmVyIGJlIHRocm93biBhZ2Fpbi5cbiAgICByZXRyeUNhY2hlLmRlbGV0ZSh3YWtlYWJsZSk7XG4gIH1cblxuICByZXRyeVRpbWVkT3V0Qm91bmRhcnkoYm91bmRhcnlGaWJlciwgcmV0cnlMYW5lKTtcbn0gLy8gQ29tcHV0ZXMgdGhlIG5leHQgSnVzdCBOb3RpY2VhYmxlIERpZmZlcmVuY2UgKEpORCkgYm91bmRhcnkuXG4vLyBUaGUgdGhlb3J5IGlzIHRoYXQgYSBwZXJzb24gY2FuJ3QgdGVsbCB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHNtYWxsIGRpZmZlcmVuY2VzIGluIHRpbWUuXG4vLyBUaGVyZWZvcmUsIGlmIHdlIHdhaXQgYSBiaXQgbG9uZ2VyIHRoYW4gbmVjZXNzYXJ5IHRoYXQgd29uJ3QgdHJhbnNsYXRlIHRvIGEgbm90aWNlYWJsZVxuLy8gZGlmZmVyZW5jZSBpbiB0aGUgZXhwZXJpZW5jZS4gSG93ZXZlciwgd2FpdGluZyBmb3IgbG9uZ2VyIG1pZ2h0IG1lYW4gdGhhdCB3ZSBjYW4gYXZvaWRcbi8vIHNob3dpbmcgYW4gaW50ZXJtZWRpYXRlIGxvYWRpbmcgc3RhdGUuIFRoZSBsb25nZXIgd2UgaGF2ZSBhbHJlYWR5IHdhaXRlZCwgdGhlIGhhcmRlciBpdFxuLy8gaXMgdG8gdGVsbCBzbWFsbCBkaWZmZXJlbmNlcyBpbiB0aW1lLiBUaGVyZWZvcmUsIHRoZSBsb25nZXIgd2UndmUgYWxyZWFkeSB3YWl0ZWQsXG4vLyB0aGUgbG9uZ2VyIHdlIGNhbiB3YWl0IGFkZGl0aW9uYWxseS4gQXQgc29tZSBwb2ludCB3ZSBoYXZlIHRvIGdpdmUgdXAgdGhvdWdoLlxuLy8gV2UgcGljayBhIHRyYWluIG1vZGVsIHdoZXJlIHRoZSBuZXh0IGJvdW5kYXJ5IGNvbW1pdHMgYXQgYSBjb25zaXN0ZW50IHNjaGVkdWxlLlxuLy8gVGhlc2UgcGFydGljdWxhciBudW1iZXJzIGFyZSB2YWd1ZSBlc3RpbWF0ZXMuIFdlIGV4cGVjdCB0byBhZGp1c3QgdGhlbSBiYXNlZCBvbiByZXNlYXJjaC5cblxuZnVuY3Rpb24gam5kKHRpbWVFbGFwc2VkKSB7XG4gIHJldHVybiB0aW1lRWxhcHNlZCA8IDEyMCA/IDEyMCA6IHRpbWVFbGFwc2VkIDwgNDgwID8gNDgwIDogdGltZUVsYXBzZWQgPCAxMDgwID8gMTA4MCA6IHRpbWVFbGFwc2VkIDwgMTkyMCA/IDE5MjAgOiB0aW1lRWxhcHNlZCA8IDMwMDAgPyAzMDAwIDogdGltZUVsYXBzZWQgPCA0MzIwID8gNDMyMCA6IGNlaWwodGltZUVsYXBzZWQgLyAxOTYwKSAqIDE5NjA7XG59XG5cbmZ1bmN0aW9uIGNoZWNrRm9yTmVzdGVkVXBkYXRlcygpIHtcbiAgaWYgKG5lc3RlZFVwZGF0ZUNvdW50ID4gTkVTVEVEX1VQREFURV9MSU1JVCkge1xuICAgIG5lc3RlZFVwZGF0ZUNvdW50ID0gMDtcbiAgICByb290V2l0aE5lc3RlZFVwZGF0ZXMgPSBudWxsO1xuXG4gICAge1xuICAgICAge1xuICAgICAgICB0aHJvdyBFcnJvciggXCJNYXhpbXVtIHVwZGF0ZSBkZXB0aCBleGNlZWRlZC4gVGhpcyBjYW4gaGFwcGVuIHdoZW4gYSBjb21wb25lbnQgcmVwZWF0ZWRseSBjYWxscyBzZXRTdGF0ZSBpbnNpZGUgY29tcG9uZW50V2lsbFVwZGF0ZSBvciBjb21wb25lbnREaWRVcGRhdGUuIFJlYWN0IGxpbWl0cyB0aGUgbnVtYmVyIG9mIG5lc3RlZCB1cGRhdGVzIHRvIHByZXZlbnQgaW5maW5pdGUgbG9vcHMuXCIgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB7XG4gICAgaWYgKG5lc3RlZFBhc3NpdmVVcGRhdGVDb3VudCA+IE5FU1RFRF9QQVNTSVZFX1VQREFURV9MSU1JVCkge1xuICAgICAgbmVzdGVkUGFzc2l2ZVVwZGF0ZUNvdW50ID0gMDtcblxuICAgICAgZXJyb3IoJ01heGltdW0gdXBkYXRlIGRlcHRoIGV4Y2VlZGVkLiBUaGlzIGNhbiBoYXBwZW4gd2hlbiBhIGNvbXBvbmVudCAnICsgXCJjYWxscyBzZXRTdGF0ZSBpbnNpZGUgdXNlRWZmZWN0LCBidXQgdXNlRWZmZWN0IGVpdGhlciBkb2Vzbid0IFwiICsgJ2hhdmUgYSBkZXBlbmRlbmN5IGFycmF5LCBvciBvbmUgb2YgdGhlIGRlcGVuZGVuY2llcyBjaGFuZ2VzIG9uICcgKyAnZXZlcnkgcmVuZGVyLicpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBmbHVzaFJlbmRlclBoYXNlU3RyaWN0TW9kZVdhcm5pbmdzSW5ERVYoKSB7XG4gIHtcbiAgICBSZWFjdFN0cmljdE1vZGVXYXJuaW5ncy5mbHVzaExlZ2FjeUNvbnRleHRXYXJuaW5nKCk7XG5cbiAgICB7XG4gICAgICBSZWFjdFN0cmljdE1vZGVXYXJuaW5ncy5mbHVzaFBlbmRpbmdVbnNhZmVMaWZlY3ljbGVXYXJuaW5ncygpO1xuICAgIH1cbiAgfVxufVxuXG52YXIgZGlkV2FyblN0YXRlVXBkYXRlRm9yTm90WWV0TW91bnRlZENvbXBvbmVudCA9IG51bGw7XG5cbmZ1bmN0aW9uIHdhcm5BYm91dFVwZGF0ZU9uTm90WWV0TW91bnRlZEZpYmVySW5ERVYoZmliZXIpIHtcbiAge1xuICAgIGlmICgoZXhlY3V0aW9uQ29udGV4dCAmIFJlbmRlckNvbnRleHQpICE9PSBOb0NvbnRleHQpIHtcbiAgICAgIC8vIFdlIGxldCB0aGUgb3RoZXIgd2FybmluZyBhYm91dCByZW5kZXIgcGhhc2UgdXBkYXRlcyBkZWFsIHdpdGggdGhpcyBvbmUuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCEoZmliZXIubW9kZSAmIChCbG9ja2luZ01vZGUgfCBDb25jdXJyZW50TW9kZSkpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIHRhZyA9IGZpYmVyLnRhZztcblxuICAgIGlmICh0YWcgIT09IEluZGV0ZXJtaW5hdGVDb21wb25lbnQgJiYgdGFnICE9PSBIb3N0Um9vdCAmJiB0YWcgIT09IENsYXNzQ29tcG9uZW50ICYmIHRhZyAhPT0gRnVuY3Rpb25Db21wb25lbnQgJiYgdGFnICE9PSBGb3J3YXJkUmVmICYmIHRhZyAhPT0gTWVtb0NvbXBvbmVudCAmJiB0YWcgIT09IFNpbXBsZU1lbW9Db21wb25lbnQgJiYgdGFnICE9PSBCbG9jaykge1xuICAgICAgLy8gT25seSB3YXJuIGZvciB1c2VyLWRlZmluZWQgY29tcG9uZW50cywgbm90IGludGVybmFsIG9uZXMgbGlrZSBTdXNwZW5zZS5cbiAgICAgIHJldHVybjtcbiAgICB9IC8vIFdlIHNob3cgdGhlIHdob2xlIHN0YWNrIGJ1dCBkZWR1cGUgb24gdGhlIHRvcCBjb21wb25lbnQncyBuYW1lIGJlY2F1c2VcbiAgICAvLyB0aGUgcHJvYmxlbWF0aWMgY29kZSBhbG1vc3QgYWx3YXlzIGxpZXMgaW5zaWRlIHRoYXQgY29tcG9uZW50LlxuXG5cbiAgICB2YXIgY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWUoZmliZXIudHlwZSkgfHwgJ1JlYWN0Q29tcG9uZW50JztcblxuICAgIGlmIChkaWRXYXJuU3RhdGVVcGRhdGVGb3JOb3RZZXRNb3VudGVkQ29tcG9uZW50ICE9PSBudWxsKSB7XG4gICAgICBpZiAoZGlkV2FyblN0YXRlVXBkYXRlRm9yTm90WWV0TW91bnRlZENvbXBvbmVudC5oYXMoY29tcG9uZW50TmFtZSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBkaWRXYXJuU3RhdGVVcGRhdGVGb3JOb3RZZXRNb3VudGVkQ29tcG9uZW50LmFkZChjb21wb25lbnROYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGlkV2FyblN0YXRlVXBkYXRlRm9yTm90WWV0TW91bnRlZENvbXBvbmVudCA9IG5ldyBTZXQoW2NvbXBvbmVudE5hbWVdKTtcbiAgICB9XG5cbiAgICB2YXIgcHJldmlvdXNGaWJlciA9IGN1cnJlbnQ7XG5cbiAgICB0cnkge1xuICAgICAgc2V0Q3VycmVudEZpYmVyKGZpYmVyKTtcblxuICAgICAgZXJyb3IoXCJDYW4ndCBwZXJmb3JtIGEgUmVhY3Qgc3RhdGUgdXBkYXRlIG9uIGEgY29tcG9uZW50IHRoYXQgaGFzbid0IG1vdW50ZWQgeWV0LiBcIiArICdUaGlzIGluZGljYXRlcyB0aGF0IHlvdSBoYXZlIGEgc2lkZS1lZmZlY3QgaW4geW91ciByZW5kZXIgZnVuY3Rpb24gdGhhdCAnICsgJ2FzeW5jaHJvbm91c2x5IGxhdGVyIGNhbGxzIHRyaWVzIHRvIHVwZGF0ZSB0aGUgY29tcG9uZW50LiBNb3ZlIHRoaXMgd29yayB0byAnICsgJ3VzZUVmZmVjdCBpbnN0ZWFkLicpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAocHJldmlvdXNGaWJlcikge1xuICAgICAgICBzZXRDdXJyZW50RmliZXIoZmliZXIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzZXRDdXJyZW50RmliZXIoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxudmFyIGRpZFdhcm5TdGF0ZVVwZGF0ZUZvclVubW91bnRlZENvbXBvbmVudCA9IG51bGw7XG5cbmZ1bmN0aW9uIHdhcm5BYm91dFVwZGF0ZU9uVW5tb3VudGVkRmliZXJJbkRFVihmaWJlcikge1xuICB7XG4gICAgdmFyIHRhZyA9IGZpYmVyLnRhZztcblxuICAgIGlmICh0YWcgIT09IEhvc3RSb290ICYmIHRhZyAhPT0gQ2xhc3NDb21wb25lbnQgJiYgdGFnICE9PSBGdW5jdGlvbkNvbXBvbmVudCAmJiB0YWcgIT09IEZvcndhcmRSZWYgJiYgdGFnICE9PSBNZW1vQ29tcG9uZW50ICYmIHRhZyAhPT0gU2ltcGxlTWVtb0NvbXBvbmVudCAmJiB0YWcgIT09IEJsb2NrKSB7XG4gICAgICAvLyBPbmx5IHdhcm4gZm9yIHVzZXItZGVmaW5lZCBjb21wb25lbnRzLCBub3QgaW50ZXJuYWwgb25lcyBsaWtlIFN1c3BlbnNlLlxuICAgICAgcmV0dXJuO1xuICAgIH0gLy8gSWYgdGhlcmUgYXJlIHBlbmRpbmcgcGFzc2l2ZSBlZmZlY3RzIHVubW91bnRzIGZvciB0aGlzIEZpYmVyLFxuICAgIC8vIHdlIGNhbiBhc3N1bWUgdGhhdCB0aGV5IHdvdWxkIGhhdmUgcHJldmVudGVkIHRoaXMgdXBkYXRlLlxuXG5cbiAgICBpZiAoKGZpYmVyLmZsYWdzICYgUGFzc2l2ZVVubW91bnRQZW5kaW5nRGV2KSAhPT0gTm9GbGFncykge1xuICAgICAgcmV0dXJuO1xuICAgIH0gLy8gV2Ugc2hvdyB0aGUgd2hvbGUgc3RhY2sgYnV0IGRlZHVwZSBvbiB0aGUgdG9wIGNvbXBvbmVudCdzIG5hbWUgYmVjYXVzZVxuICAgIC8vIHRoZSBwcm9ibGVtYXRpYyBjb2RlIGFsbW9zdCBhbHdheXMgbGllcyBpbnNpZGUgdGhhdCBjb21wb25lbnQuXG5cblxuICAgIHZhciBjb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZShmaWJlci50eXBlKSB8fCAnUmVhY3RDb21wb25lbnQnO1xuXG4gICAgaWYgKGRpZFdhcm5TdGF0ZVVwZGF0ZUZvclVubW91bnRlZENvbXBvbmVudCAhPT0gbnVsbCkge1xuICAgICAgaWYgKGRpZFdhcm5TdGF0ZVVwZGF0ZUZvclVubW91bnRlZENvbXBvbmVudC5oYXMoY29tcG9uZW50TmFtZSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBkaWRXYXJuU3RhdGVVcGRhdGVGb3JVbm1vdW50ZWRDb21wb25lbnQuYWRkKGNvbXBvbmVudE5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkaWRXYXJuU3RhdGVVcGRhdGVGb3JVbm1vdW50ZWRDb21wb25lbnQgPSBuZXcgU2V0KFtjb21wb25lbnROYW1lXSk7XG4gICAgfVxuXG4gICAgaWYgKGlzRmx1c2hpbmdQYXNzaXZlRWZmZWN0cykgOyBlbHNlIHtcbiAgICAgIHZhciBwcmV2aW91c0ZpYmVyID0gY3VycmVudDtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgc2V0Q3VycmVudEZpYmVyKGZpYmVyKTtcblxuICAgICAgICBlcnJvcihcIkNhbid0IHBlcmZvcm0gYSBSZWFjdCBzdGF0ZSB1cGRhdGUgb24gYW4gdW5tb3VudGVkIGNvbXBvbmVudC4gVGhpcyBcIiArICdpcyBhIG5vLW9wLCBidXQgaXQgaW5kaWNhdGVzIGEgbWVtb3J5IGxlYWsgaW4geW91ciBhcHBsaWNhdGlvbi4gVG8gJyArICdmaXgsIGNhbmNlbCBhbGwgc3Vic2NyaXB0aW9ucyBhbmQgYXN5bmNocm9ub3VzIHRhc2tzIGluICVzLicsIHRhZyA9PT0gQ2xhc3NDb21wb25lbnQgPyAndGhlIGNvbXBvbmVudFdpbGxVbm1vdW50IG1ldGhvZCcgOiAnYSB1c2VFZmZlY3QgY2xlYW51cCBmdW5jdGlvbicpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgaWYgKHByZXZpb3VzRmliZXIpIHtcbiAgICAgICAgICBzZXRDdXJyZW50RmliZXIoZmliZXIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc2V0Q3VycmVudEZpYmVyKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxudmFyIGJlZ2luV29yayQxO1xuXG57XG4gIHZhciBkdW1teUZpYmVyID0gbnVsbDtcblxuICBiZWdpbldvcmskMSA9IGZ1bmN0aW9uIChjdXJyZW50LCB1bml0T2ZXb3JrLCBsYW5lcykge1xuICAgIC8vIElmIGEgY29tcG9uZW50IHRocm93cyBhbiBlcnJvciwgd2UgcmVwbGF5IGl0IGFnYWluIGluIGEgc3luY2hyb25vdXNseVxuICAgIC8vIGRpc3BhdGNoZWQgZXZlbnQsIHNvIHRoYXQgdGhlIGRlYnVnZ2VyIHdpbGwgdHJlYXQgaXQgYXMgYW4gdW5jYXVnaHRcbiAgICAvLyBlcnJvciBTZWUgUmVhY3RFcnJvclV0aWxzIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICAgIC8vIEJlZm9yZSBlbnRlcmluZyB0aGUgYmVnaW4gcGhhc2UsIGNvcHkgdGhlIHdvcmstaW4tcHJvZ3Jlc3Mgb250byBhIGR1bW15XG4gICAgLy8gZmliZXIuIElmIGJlZ2luV29yayB0aHJvd3MsIHdlJ2xsIHVzZSB0aGlzIHRvIHJlc2V0IHRoZSBzdGF0ZS5cbiAgICB2YXIgb3JpZ2luYWxXb3JrSW5Qcm9ncmVzc0NvcHkgPSBhc3NpZ25GaWJlclByb3BlcnRpZXNJbkRFVihkdW1teUZpYmVyLCB1bml0T2ZXb3JrKTtcblxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYmVnaW5Xb3JrKGN1cnJlbnQsIHVuaXRPZldvcmssIGxhbmVzKTtcbiAgICB9IGNhdGNoIChvcmlnaW5hbEVycm9yKSB7XG4gICAgICBpZiAob3JpZ2luYWxFcnJvciAhPT0gbnVsbCAmJiB0eXBlb2Ygb3JpZ2luYWxFcnJvciA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG9yaWdpbmFsRXJyb3IudGhlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAvLyBEb24ndCByZXBsYXkgcHJvbWlzZXMuIFRyZWF0IGV2ZXJ5dGhpbmcgZWxzZSBsaWtlIGFuIGVycm9yLlxuICAgICAgICB0aHJvdyBvcmlnaW5hbEVycm9yO1xuICAgICAgfSAvLyBLZWVwIHRoaXMgY29kZSBpbiBzeW5jIHdpdGggaGFuZGxlRXJyb3I7IGFueSBjaGFuZ2VzIGhlcmUgbXVzdCBoYXZlXG4gICAgICAvLyBjb3JyZXNwb25kaW5nIGNoYW5nZXMgdGhlcmUuXG5cblxuICAgICAgcmVzZXRDb250ZXh0RGVwZW5kZW5jaWVzKCk7XG4gICAgICByZXNldEhvb2tzQWZ0ZXJUaHJvdygpOyAvLyBEb24ndCByZXNldCBjdXJyZW50IGRlYnVnIGZpYmVyLCBzaW5jZSB3ZSdyZSBhYm91dCB0byB3b3JrIG9uIHRoZVxuICAgICAgLy8gc2FtZSBmaWJlciBhZ2Fpbi5cbiAgICAgIC8vIFVud2luZCB0aGUgZmFpbGVkIHN0YWNrIGZyYW1lXG5cbiAgICAgIHVud2luZEludGVycnVwdGVkV29yayh1bml0T2ZXb3JrKTsgLy8gUmVzdG9yZSB0aGUgb3JpZ2luYWwgcHJvcGVydGllcyBvZiB0aGUgZmliZXIuXG5cbiAgICAgIGFzc2lnbkZpYmVyUHJvcGVydGllc0luREVWKHVuaXRPZldvcmssIG9yaWdpbmFsV29ya0luUHJvZ3Jlc3NDb3B5KTtcblxuICAgICAgaWYgKCB1bml0T2ZXb3JrLm1vZGUgJiBQcm9maWxlTW9kZSkge1xuICAgICAgICAvLyBSZXNldCB0aGUgcHJvZmlsZXIgdGltZXIuXG4gICAgICAgIHN0YXJ0UHJvZmlsZXJUaW1lcih1bml0T2ZXb3JrKTtcbiAgICAgIH0gLy8gUnVuIGJlZ2luV29yayBhZ2Fpbi5cblxuXG4gICAgICBpbnZva2VHdWFyZGVkQ2FsbGJhY2sobnVsbCwgYmVnaW5Xb3JrLCBudWxsLCBjdXJyZW50LCB1bml0T2ZXb3JrLCBsYW5lcyk7XG5cbiAgICAgIGlmIChoYXNDYXVnaHRFcnJvcigpKSB7XG4gICAgICAgIHZhciByZXBsYXlFcnJvciA9IGNsZWFyQ2F1Z2h0RXJyb3IoKTsgLy8gYGludm9rZUd1YXJkZWRDYWxsYmFja2Agc29tZXRpbWVzIHNldHMgYW4gZXhwYW5kbyBgX3N1cHByZXNzTG9nZ2luZ2AuXG4gICAgICAgIC8vIFJldGhyb3cgdGhpcyBlcnJvciBpbnN0ZWFkIG9mIHRoZSBvcmlnaW5hbCBvbmUuXG5cbiAgICAgICAgdGhyb3cgcmVwbGF5RXJyb3I7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBUaGlzIGJyYW5jaCBpcyByZWFjaGFibGUgaWYgdGhlIHJlbmRlciBwaGFzZSBpcyBpbXB1cmUuXG4gICAgICAgIHRocm93IG9yaWdpbmFsRXJyb3I7XG4gICAgICB9XG4gICAgfVxuICB9O1xufVxuXG52YXIgZGlkV2FybkFib3V0VXBkYXRlSW5SZW5kZXIgPSBmYWxzZTtcbnZhciBkaWRXYXJuQWJvdXRVcGRhdGVJblJlbmRlckZvckFub3RoZXJDb21wb25lbnQ7XG5cbntcbiAgZGlkV2FybkFib3V0VXBkYXRlSW5SZW5kZXJGb3JBbm90aGVyQ29tcG9uZW50ID0gbmV3IFNldCgpO1xufVxuXG5mdW5jdGlvbiB3YXJuQWJvdXRSZW5kZXJQaGFzZVVwZGF0ZXNJbkRFVihmaWJlcikge1xuICB7XG4gICAgaWYgKGlzUmVuZGVyaW5nICYmIChleGVjdXRpb25Db250ZXh0ICYgUmVuZGVyQ29udGV4dCkgIT09IE5vQ29udGV4dCAmJiAhZ2V0SXNVcGRhdGluZ09wYXF1ZVZhbHVlSW5SZW5kZXJQaGFzZUluREVWKCkpIHtcbiAgICAgIHN3aXRjaCAoZmliZXIudGFnKSB7XG4gICAgICAgIGNhc2UgRnVuY3Rpb25Db21wb25lbnQ6XG4gICAgICAgIGNhc2UgRm9yd2FyZFJlZjpcbiAgICAgICAgY2FzZSBTaW1wbGVNZW1vQ29tcG9uZW50OlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhciByZW5kZXJpbmdDb21wb25lbnROYW1lID0gd29ya0luUHJvZ3Jlc3MgJiYgZ2V0Q29tcG9uZW50TmFtZSh3b3JrSW5Qcm9ncmVzcy50eXBlKSB8fCAnVW5rbm93bic7IC8vIERlZHVwZSBieSB0aGUgcmVuZGVyaW5nIGNvbXBvbmVudCBiZWNhdXNlIGl0J3MgdGhlIG9uZSB0aGF0IG5lZWRzIHRvIGJlIGZpeGVkLlxuXG4gICAgICAgICAgICB2YXIgZGVkdXBlS2V5ID0gcmVuZGVyaW5nQ29tcG9uZW50TmFtZTtcblxuICAgICAgICAgICAgaWYgKCFkaWRXYXJuQWJvdXRVcGRhdGVJblJlbmRlckZvckFub3RoZXJDb21wb25lbnQuaGFzKGRlZHVwZUtleSkpIHtcbiAgICAgICAgICAgICAgZGlkV2FybkFib3V0VXBkYXRlSW5SZW5kZXJGb3JBbm90aGVyQ29tcG9uZW50LmFkZChkZWR1cGVLZXkpO1xuICAgICAgICAgICAgICB2YXIgc2V0U3RhdGVDb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZShmaWJlci50eXBlKSB8fCAnVW5rbm93bic7XG5cbiAgICAgICAgICAgICAgZXJyb3IoJ0Nhbm5vdCB1cGRhdGUgYSBjb21wb25lbnQgKGAlc2ApIHdoaWxlIHJlbmRlcmluZyBhICcgKyAnZGlmZmVyZW50IGNvbXBvbmVudCAoYCVzYCkuIFRvIGxvY2F0ZSB0aGUgYmFkIHNldFN0YXRlKCkgY2FsbCBpbnNpZGUgYCVzYCwgJyArICdmb2xsb3cgdGhlIHN0YWNrIHRyYWNlIGFzIGRlc2NyaWJlZCBpbiBodHRwczovL3JlYWN0anMub3JnL2xpbmsvc2V0c3RhdGUtaW4tcmVuZGVyJywgc2V0U3RhdGVDb21wb25lbnROYW1lLCByZW5kZXJpbmdDb21wb25lbnROYW1lLCByZW5kZXJpbmdDb21wb25lbnROYW1lKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgIGNhc2UgQ2xhc3NDb21wb25lbnQ6XG4gICAgICAgICAge1xuICAgICAgICAgICAgaWYgKCFkaWRXYXJuQWJvdXRVcGRhdGVJblJlbmRlcikge1xuICAgICAgICAgICAgICBlcnJvcignQ2Fubm90IHVwZGF0ZSBkdXJpbmcgYW4gZXhpc3Rpbmcgc3RhdGUgdHJhbnNpdGlvbiAoc3VjaCBhcyAnICsgJ3dpdGhpbiBgcmVuZGVyYCkuIFJlbmRlciBtZXRob2RzIHNob3VsZCBiZSBhIHB1cmUgJyArICdmdW5jdGlvbiBvZiBwcm9wcyBhbmQgc3RhdGUuJyk7XG5cbiAgICAgICAgICAgICAgZGlkV2FybkFib3V0VXBkYXRlSW5SZW5kZXIgPSB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59IC8vIGEgJ3NoYXJlZCcgdmFyaWFibGUgdGhhdCBjaGFuZ2VzIHdoZW4gYWN0KCkgb3BlbnMvY2xvc2VzIGluIHRlc3RzLlxuXG5cbnZhciBJc1RoaXNSZW5kZXJlckFjdGluZyA9IHtcbiAgY3VycmVudDogZmFsc2Vcbn07XG5mdW5jdGlvbiB3YXJuSWZOb3RTY29wZWRXaXRoTWF0Y2hpbmdBY3QoZmliZXIpIHtcbiAge1xuICAgIGlmICggSXNTb21lUmVuZGVyZXJBY3RpbmcuY3VycmVudCA9PT0gdHJ1ZSAmJiBJc1RoaXNSZW5kZXJlckFjdGluZy5jdXJyZW50ICE9PSB0cnVlKSB7XG4gICAgICB2YXIgcHJldmlvdXNGaWJlciA9IGN1cnJlbnQ7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHNldEN1cnJlbnRGaWJlcihmaWJlcik7XG5cbiAgICAgICAgZXJyb3IoXCJJdCBsb29rcyBsaWtlIHlvdSdyZSB1c2luZyB0aGUgd3JvbmcgYWN0KCkgYXJvdW5kIHlvdXIgdGVzdCBpbnRlcmFjdGlvbnMuXFxuXCIgKyAnQmUgc3VyZSB0byB1c2UgdGhlIG1hdGNoaW5nIHZlcnNpb24gb2YgYWN0KCkgY29ycmVzcG9uZGluZyB0byB5b3VyIHJlbmRlcmVyOlxcblxcbicgKyAnLy8gZm9yIHJlYWN0LWRvbTpcXG4nICsgLy8gQnJlYWsgdXAgaW1wb3J0cyB0byBhdm9pZCBhY2NpZGVudGFsbHkgcGFyc2luZyB0aGVtIGFzIGRlcGVuZGVuY2llcy5cbiAgICAgICAgJ2ltcG9ydCB7YWN0fSBmcicgKyBcIm9tICdyZWFjdC1kb20vdGVzdC11dGlscyc7XFxuXCIgKyAnLy8gLi4uXFxuJyArICdhY3QoKCkgPT4gLi4uKTtcXG5cXG4nICsgJy8vIGZvciByZWFjdC10ZXN0LXJlbmRlcmVyOlxcbicgKyAvLyBCcmVhayB1cCBpbXBvcnRzIHRvIGF2b2lkIGFjY2lkZW50YWxseSBwYXJzaW5nIHRoZW0gYXMgZGVwZW5kZW5jaWVzLlxuICAgICAgICAnaW1wb3J0IFRlc3RSZW5kZXJlciBmcicgKyBcIm9tIHJlYWN0LXRlc3QtcmVuZGVyZXInO1xcblwiICsgJ2NvbnN0IHthY3R9ID0gVGVzdFJlbmRlcmVyO1xcbicgKyAnLy8gLi4uXFxuJyArICdhY3QoKCkgPT4gLi4uKTsnKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGlmIChwcmV2aW91c0ZpYmVyKSB7XG4gICAgICAgICAgc2V0Q3VycmVudEZpYmVyKGZpYmVyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXNldEN1cnJlbnRGaWJlcigpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiB3YXJuSWZOb3RDdXJyZW50bHlBY3RpbmdFZmZlY3RzSW5ERVYoZmliZXIpIHtcbiAge1xuICAgIGlmICggKGZpYmVyLm1vZGUgJiBTdHJpY3RNb2RlKSAhPT0gTm9Nb2RlICYmIElzU29tZVJlbmRlcmVyQWN0aW5nLmN1cnJlbnQgPT09IGZhbHNlICYmIElzVGhpc1JlbmRlcmVyQWN0aW5nLmN1cnJlbnQgPT09IGZhbHNlKSB7XG4gICAgICBlcnJvcignQW4gdXBkYXRlIHRvICVzIHJhbiBhbiBlZmZlY3QsIGJ1dCB3YXMgbm90IHdyYXBwZWQgaW4gYWN0KC4uLikuXFxuXFxuJyArICdXaGVuIHRlc3RpbmcsIGNvZGUgdGhhdCBjYXVzZXMgUmVhY3Qgc3RhdGUgdXBkYXRlcyBzaG91bGQgYmUgJyArICd3cmFwcGVkIGludG8gYWN0KC4uLik6XFxuXFxuJyArICdhY3QoKCkgPT4ge1xcbicgKyAnICAvKiBmaXJlIGV2ZW50cyB0aGF0IHVwZGF0ZSBzdGF0ZSAqL1xcbicgKyAnfSk7XFxuJyArICcvKiBhc3NlcnQgb24gdGhlIG91dHB1dCAqL1xcblxcbicgKyBcIlRoaXMgZW5zdXJlcyB0aGF0IHlvdSdyZSB0ZXN0aW5nIHRoZSBiZWhhdmlvciB0aGUgdXNlciB3b3VsZCBzZWUgXCIgKyAnaW4gdGhlIGJyb3dzZXIuJyArICcgTGVhcm4gbW9yZSBhdCBodHRwczovL3JlYWN0anMub3JnL2xpbmsvd3JhcC10ZXN0cy13aXRoLWFjdCcsIGdldENvbXBvbmVudE5hbWUoZmliZXIudHlwZSkpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB3YXJuSWZOb3RDdXJyZW50bHlBY3RpbmdVcGRhdGVzSW5ERVYoZmliZXIpIHtcbiAge1xuICAgIGlmICggZXhlY3V0aW9uQ29udGV4dCA9PT0gTm9Db250ZXh0ICYmIElzU29tZVJlbmRlcmVyQWN0aW5nLmN1cnJlbnQgPT09IGZhbHNlICYmIElzVGhpc1JlbmRlcmVyQWN0aW5nLmN1cnJlbnQgPT09IGZhbHNlKSB7XG4gICAgICB2YXIgcHJldmlvdXNGaWJlciA9IGN1cnJlbnQ7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHNldEN1cnJlbnRGaWJlcihmaWJlcik7XG5cbiAgICAgICAgZXJyb3IoJ0FuIHVwZGF0ZSB0byAlcyBpbnNpZGUgYSB0ZXN0IHdhcyBub3Qgd3JhcHBlZCBpbiBhY3QoLi4uKS5cXG5cXG4nICsgJ1doZW4gdGVzdGluZywgY29kZSB0aGF0IGNhdXNlcyBSZWFjdCBzdGF0ZSB1cGRhdGVzIHNob3VsZCBiZSAnICsgJ3dyYXBwZWQgaW50byBhY3QoLi4uKTpcXG5cXG4nICsgJ2FjdCgoKSA9PiB7XFxuJyArICcgIC8qIGZpcmUgZXZlbnRzIHRoYXQgdXBkYXRlIHN0YXRlICovXFxuJyArICd9KTtcXG4nICsgJy8qIGFzc2VydCBvbiB0aGUgb3V0cHV0ICovXFxuXFxuJyArIFwiVGhpcyBlbnN1cmVzIHRoYXQgeW91J3JlIHRlc3RpbmcgdGhlIGJlaGF2aW9yIHRoZSB1c2VyIHdvdWxkIHNlZSBcIiArICdpbiB0aGUgYnJvd3Nlci4nICsgJyBMZWFybiBtb3JlIGF0IGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay93cmFwLXRlc3RzLXdpdGgtYWN0JywgZ2V0Q29tcG9uZW50TmFtZShmaWJlci50eXBlKSk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBpZiAocHJldmlvdXNGaWJlcikge1xuICAgICAgICAgIHNldEN1cnJlbnRGaWJlcihmaWJlcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzZXRDdXJyZW50RmliZXIoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG52YXIgd2FybklmTm90Q3VycmVudGx5QWN0aW5nVXBkYXRlc0luRGV2ID0gd2FybklmTm90Q3VycmVudGx5QWN0aW5nVXBkYXRlc0luREVWOyAvLyBJbiB0ZXN0cywgd2Ugd2FudCB0byBlbmZvcmNlIGEgbW9ja2VkIHNjaGVkdWxlci5cblxudmFyIGRpZFdhcm5BYm91dFVubW9ja2VkU2NoZWR1bGVyID0gZmFsc2U7IC8vIFRPRE8gQmVmb3JlIHdlIHJlbGVhc2UgY29uY3VycmVudCBtb2RlLCByZXZpc2l0IHRoaXMgYW5kIGRlY2lkZSB3aGV0aGVyIGEgbW9ja2VkXG4vLyBzY2hlZHVsZXIgaXMgdGhlIGFjdHVhbCByZWNvbW1lbmRhdGlvbi4gVGhlIGFsdGVybmF0aXZlIGNvdWxkIGJlIGEgdGVzdGluZyBidWlsZCxcbi8vIGEgbmV3IGxpYiwgb3Igd2hhdGV2ZXI7IHdlIGR1bm5vIGp1c3QgeWV0LiBUaGlzIG1lc3NhZ2UgaXMgZm9yIGVhcmx5IGFkb3B0ZXJzXG4vLyB0byBnZXQgdGhlaXIgdGVzdHMgcmlnaHQuXG5cbmZ1bmN0aW9uIHdhcm5JZlVubW9ja2VkU2NoZWR1bGVyKGZpYmVyKSB7XG4gIHtcbiAgICBpZiAoZGlkV2FybkFib3V0VW5tb2NrZWRTY2hlZHVsZXIgPT09IGZhbHNlICYmIFNjaGVkdWxlci51bnN0YWJsZV9mbHVzaEFsbFdpdGhvdXRBc3NlcnRpbmcgPT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKGZpYmVyLm1vZGUgJiBCbG9ja2luZ01vZGUgfHwgZmliZXIubW9kZSAmIENvbmN1cnJlbnRNb2RlKSB7XG4gICAgICAgIGRpZFdhcm5BYm91dFVubW9ja2VkU2NoZWR1bGVyID0gdHJ1ZTtcblxuICAgICAgICBlcnJvcignSW4gQ29uY3VycmVudCBvciBTeW5jIG1vZGVzLCB0aGUgXCJzY2hlZHVsZXJcIiBtb2R1bGUgbmVlZHMgdG8gYmUgbW9ja2VkICcgKyAndG8gZ3VhcmFudGVlIGNvbnNpc3RlbnQgYmVoYXZpb3VyIGFjcm9zcyB0ZXN0cyBhbmQgYnJvd3NlcnMuICcgKyAnRm9yIGV4YW1wbGUsIHdpdGggamVzdDogXFxuJyArIC8vIEJyZWFrIHVwIHJlcXVpcmVzIHRvIGF2b2lkIGFjY2lkZW50YWxseSBwYXJzaW5nIHRoZW0gYXMgZGVwZW5kZW5jaWVzLlxuICAgICAgICBcImplc3QubW9jaygnc2NoZWR1bGVyJywgKCkgPT4gcmVxdWlyZVwiICsgXCIoJ3NjaGVkdWxlci91bnN0YWJsZV9tb2NrJykpO1xcblxcblwiICsgJ0ZvciBtb3JlIGluZm8sIHZpc2l0IGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9tb2NrLXNjaGVkdWxlcicpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjb21wdXRlVGhyZWFkSUQocm9vdCwgbGFuZSkge1xuICAvLyBJbnRlcmFjdGlvbiB0aHJlYWRzIGFyZSB1bmlxdWUgcGVyIHJvb3QgYW5kIGV4cGlyYXRpb24gdGltZS5cbiAgLy8gTk9URTogSW50ZW50aW9uYWxseSB1bnNvdW5kIGNhc3QuIEFsbCB0aGF0IG1hdHRlcnMgaXMgdGhhdCBpdCdzIGEgbnVtYmVyXG4gIC8vIGFuZCBpdCByZXByZXNlbnRzIGEgYmF0Y2ggb2Ygd29yay4gQ291bGQgbWFrZSBhIGhlbHBlciBmdW5jdGlvbiBpbnN0ZWFkLFxuICAvLyBidXQgbWVoIHRoaXMgaXMgZmluZSBmb3Igbm93LlxuICByZXR1cm4gbGFuZSAqIDEwMDAgKyByb290LmludGVyYWN0aW9uVGhyZWFkSUQ7XG59XG5cbmZ1bmN0aW9uIG1hcmtTcGF3bmVkV29yayhsYW5lKSB7XG5cbiAgaWYgKHNwYXduZWRXb3JrRHVyaW5nUmVuZGVyID09PSBudWxsKSB7XG4gICAgc3Bhd25lZFdvcmtEdXJpbmdSZW5kZXIgPSBbbGFuZV07XG4gIH0gZWxzZSB7XG4gICAgc3Bhd25lZFdvcmtEdXJpbmdSZW5kZXIucHVzaChsYW5lKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBzY2hlZHVsZUludGVyYWN0aW9ucyhyb290LCBsYW5lLCBpbnRlcmFjdGlvbnMpIHtcblxuICBpZiAoaW50ZXJhY3Rpb25zLnNpemUgPiAwKSB7XG4gICAgdmFyIHBlbmRpbmdJbnRlcmFjdGlvbk1hcCA9IHJvb3QucGVuZGluZ0ludGVyYWN0aW9uTWFwO1xuICAgIHZhciBwZW5kaW5nSW50ZXJhY3Rpb25zID0gcGVuZGluZ0ludGVyYWN0aW9uTWFwLmdldChsYW5lKTtcblxuICAgIGlmIChwZW5kaW5nSW50ZXJhY3Rpb25zICE9IG51bGwpIHtcbiAgICAgIGludGVyYWN0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uIChpbnRlcmFjdGlvbikge1xuICAgICAgICBpZiAoIXBlbmRpbmdJbnRlcmFjdGlvbnMuaGFzKGludGVyYWN0aW9uKSkge1xuICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgcGVuZGluZyBhc3luYyB3b3JrIGNvdW50IGZvciBwcmV2aW91c2x5IHVuc2NoZWR1bGVkIGludGVyYWN0aW9uLlxuICAgICAgICAgIGludGVyYWN0aW9uLl9fY291bnQrKztcbiAgICAgICAgfVxuXG4gICAgICAgIHBlbmRpbmdJbnRlcmFjdGlvbnMuYWRkKGludGVyYWN0aW9uKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBwZW5kaW5nSW50ZXJhY3Rpb25NYXAuc2V0KGxhbmUsIG5ldyBTZXQoaW50ZXJhY3Rpb25zKSk7IC8vIFVwZGF0ZSB0aGUgcGVuZGluZyBhc3luYyB3b3JrIGNvdW50IGZvciB0aGUgY3VycmVudCBpbnRlcmFjdGlvbnMuXG5cbiAgICAgIGludGVyYWN0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uIChpbnRlcmFjdGlvbikge1xuICAgICAgICBpbnRlcmFjdGlvbi5fX2NvdW50Kys7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB2YXIgc3Vic2NyaWJlciA9IHRyYWNpbmcuX19zdWJzY3JpYmVyUmVmLmN1cnJlbnQ7XG5cbiAgICBpZiAoc3Vic2NyaWJlciAhPT0gbnVsbCkge1xuICAgICAgdmFyIHRocmVhZElEID0gY29tcHV0ZVRocmVhZElEKHJvb3QsIGxhbmUpO1xuICAgICAgc3Vic2NyaWJlci5vbldvcmtTY2hlZHVsZWQoaW50ZXJhY3Rpb25zLCB0aHJlYWRJRCk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHNjaGVkdWxlUGVuZGluZ0ludGVyYWN0aW9ucyhyb290LCBsYW5lKSB7XG5cbiAgc2NoZWR1bGVJbnRlcmFjdGlvbnMocm9vdCwgbGFuZSwgdHJhY2luZy5fX2ludGVyYWN0aW9uc1JlZi5jdXJyZW50KTtcbn1cblxuZnVuY3Rpb24gc3RhcnRXb3JrT25QZW5kaW5nSW50ZXJhY3Rpb25zKHJvb3QsIGxhbmVzKSB7XG4gIC8vIHdlIGNhbiBhY2N1cmF0ZWx5IGF0dHJpYnV0ZSB0aW1lIHNwZW50IHdvcmtpbmcgb24gaXQsIEFuZCBzbyB0aGF0IGNhc2NhZGluZ1xuICAvLyB3b3JrIHRyaWdnZXJlZCBkdXJpbmcgdGhlIHJlbmRlciBwaGFzZSB3aWxsIGJlIGFzc29jaWF0ZWQgd2l0aCBpdC5cblxuXG4gIHZhciBpbnRlcmFjdGlvbnMgPSBuZXcgU2V0KCk7XG4gIHJvb3QucGVuZGluZ0ludGVyYWN0aW9uTWFwLmZvckVhY2goZnVuY3Rpb24gKHNjaGVkdWxlZEludGVyYWN0aW9ucywgc2NoZWR1bGVkTGFuZSkge1xuICAgIGlmIChpbmNsdWRlc1NvbWVMYW5lKGxhbmVzLCBzY2hlZHVsZWRMYW5lKSkge1xuICAgICAgc2NoZWR1bGVkSW50ZXJhY3Rpb25zLmZvckVhY2goZnVuY3Rpb24gKGludGVyYWN0aW9uKSB7XG4gICAgICAgIHJldHVybiBpbnRlcmFjdGlvbnMuYWRkKGludGVyYWN0aW9uKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfSk7IC8vIFN0b3JlIHRoZSBjdXJyZW50IHNldCBvZiBpbnRlcmFjdGlvbnMgb24gdGhlIEZpYmVyUm9vdCBmb3IgYSBmZXcgcmVhc29uczpcbiAgLy8gV2UgY2FuIHJlLXVzZSBpdCBpbiBob3QgZnVuY3Rpb25zIGxpa2UgcGVyZm9ybUNvbmN1cnJlbnRXb3JrT25Sb290KClcbiAgLy8gd2l0aG91dCBoYXZpbmcgdG8gcmVjYWxjdWxhdGUgaXQuIFdlIHdpbGwgYWxzbyB1c2UgaXQgaW4gY29tbWl0V29yaygpIHRvXG4gIC8vIHBhc3MgdG8gYW55IFByb2ZpbGVyIG9uUmVuZGVyKCkgaG9va3MuIFRoaXMgYWxzbyBwcm92aWRlcyBEZXZUb29scyB3aXRoIGFcbiAgLy8gd2F5IHRvIGFjY2VzcyBpdCB3aGVuIHRoZSBvbkNvbW1pdFJvb3QoKSBob29rIGlzIGNhbGxlZC5cblxuICByb290Lm1lbW9pemVkSW50ZXJhY3Rpb25zID0gaW50ZXJhY3Rpb25zO1xuXG4gIGlmIChpbnRlcmFjdGlvbnMuc2l6ZSA+IDApIHtcbiAgICB2YXIgc3Vic2NyaWJlciA9IHRyYWNpbmcuX19zdWJzY3JpYmVyUmVmLmN1cnJlbnQ7XG5cbiAgICBpZiAoc3Vic2NyaWJlciAhPT0gbnVsbCkge1xuICAgICAgdmFyIHRocmVhZElEID0gY29tcHV0ZVRocmVhZElEKHJvb3QsIGxhbmVzKTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgc3Vic2NyaWJlci5vbldvcmtTdGFydGVkKGludGVyYWN0aW9ucywgdGhyZWFkSUQpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgLy8gSWYgdGhlIHN1YnNjcmliZXIgdGhyb3dzLCByZXRocm93IGl0IGluIGEgc2VwYXJhdGUgdGFza1xuICAgICAgICBzY2hlZHVsZUNhbGxiYWNrKEltbWVkaWF0ZVByaW9yaXR5JDEsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGZpbmlzaFBlbmRpbmdJbnRlcmFjdGlvbnMocm9vdCwgY29tbWl0dGVkTGFuZXMpIHtcblxuICB2YXIgcmVtYWluaW5nTGFuZXNBZnRlckNvbW1pdCA9IHJvb3QucGVuZGluZ0xhbmVzO1xuICB2YXIgc3Vic2NyaWJlcjtcblxuICB0cnkge1xuICAgIHN1YnNjcmliZXIgPSB0cmFjaW5nLl9fc3Vic2NyaWJlclJlZi5jdXJyZW50O1xuXG4gICAgaWYgKHN1YnNjcmliZXIgIT09IG51bGwgJiYgcm9vdC5tZW1vaXplZEludGVyYWN0aW9ucy5zaXplID4gMCkge1xuICAgICAgLy8gRklYTUU6IE1vcmUgdGhhbiBvbmUgbGFuZSBjYW4gZmluaXNoIGluIGEgc2luZ2xlIGNvbW1pdC5cbiAgICAgIHZhciB0aHJlYWRJRCA9IGNvbXB1dGVUaHJlYWRJRChyb290LCBjb21taXR0ZWRMYW5lcyk7XG4gICAgICBzdWJzY3JpYmVyLm9uV29ya1N0b3BwZWQocm9vdC5tZW1vaXplZEludGVyYWN0aW9ucywgdGhyZWFkSUQpO1xuICAgIH1cbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAvLyBJZiB0aGUgc3Vic2NyaWJlciB0aHJvd3MsIHJldGhyb3cgaXQgaW4gYSBzZXBhcmF0ZSB0YXNrXG4gICAgc2NoZWR1bGVDYWxsYmFjayhJbW1lZGlhdGVQcmlvcml0eSQxLCBmdW5jdGlvbiAoKSB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9KTtcbiAgfSBmaW5hbGx5IHtcbiAgICAvLyBDbGVhciBjb21wbGV0ZWQgaW50ZXJhY3Rpb25zIGZyb20gdGhlIHBlbmRpbmcgTWFwLlxuICAgIC8vIFVubGVzcyB0aGUgcmVuZGVyIHdhcyBzdXNwZW5kZWQgb3IgY2FzY2FkaW5nIHdvcmsgd2FzIHNjaGVkdWxlZCxcbiAgICAvLyBJbiB3aGljaCBjYXNl4oCTIGxlYXZlIHBlbmRpbmcgaW50ZXJhY3Rpb25zIHVudGlsIHRoZSBzdWJzZXF1ZW50IHJlbmRlci5cbiAgICB2YXIgcGVuZGluZ0ludGVyYWN0aW9uTWFwID0gcm9vdC5wZW5kaW5nSW50ZXJhY3Rpb25NYXA7XG4gICAgcGVuZGluZ0ludGVyYWN0aW9uTWFwLmZvckVhY2goZnVuY3Rpb24gKHNjaGVkdWxlZEludGVyYWN0aW9ucywgbGFuZSkge1xuICAgICAgLy8gT25seSBkZWNyZW1lbnQgdGhlIHBlbmRpbmcgaW50ZXJhY3Rpb24gY291bnQgaWYgd2UncmUgZG9uZS5cbiAgICAgIC8vIElmIHRoZXJlJ3Mgc3RpbGwgd29yayBhdCB0aGUgY3VycmVudCBwcmlvcml0eSxcbiAgICAgIC8vIFRoYXQgaW5kaWNhdGVzIHRoYXQgd2UgYXJlIHdhaXRpbmcgZm9yIHN1c3BlbnNlIGRhdGEuXG4gICAgICBpZiAoIWluY2x1ZGVzU29tZUxhbmUocmVtYWluaW5nTGFuZXNBZnRlckNvbW1pdCwgbGFuZSkpIHtcbiAgICAgICAgcGVuZGluZ0ludGVyYWN0aW9uTWFwLmRlbGV0ZShsYW5lKTtcbiAgICAgICAgc2NoZWR1bGVkSW50ZXJhY3Rpb25zLmZvckVhY2goZnVuY3Rpb24gKGludGVyYWN0aW9uKSB7XG4gICAgICAgICAgaW50ZXJhY3Rpb24uX19jb3VudC0tO1xuXG4gICAgICAgICAgaWYgKHN1YnNjcmliZXIgIT09IG51bGwgJiYgaW50ZXJhY3Rpb24uX19jb3VudCA9PT0gMCkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgc3Vic2NyaWJlci5vbkludGVyYWN0aW9uU2NoZWR1bGVkV29ya0NvbXBsZXRlZChpbnRlcmFjdGlvbik7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAvLyBJZiB0aGUgc3Vic2NyaWJlciB0aHJvd3MsIHJldGhyb3cgaXQgaW4gYSBzZXBhcmF0ZSB0YXNrXG4gICAgICAgICAgICAgIHNjaGVkdWxlQ2FsbGJhY2soSW1tZWRpYXRlUHJpb3JpdHkkMSwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59IC8vIGBhY3RgIHRlc3RpbmcgQVBJXG5cbmZ1bmN0aW9uIHNob3VsZEZvcmNlRmx1c2hGYWxsYmFja3NJbkRFVigpIHtcbiAgLy8gTmV2ZXIgZm9yY2UgZmx1c2ggaW4gcHJvZHVjdGlvbi4gVGhpcyBmdW5jdGlvbiBzaG91bGQgZ2V0IHN0cmlwcGVkIG91dC5cbiAgcmV0dXJuICBhY3RpbmdVcGRhdGVzU2NvcGVEZXB0aCA+IDA7XG59XG4vLyBzbyB3ZSBjYW4gdGVsbCBpZiBhbnkgYXN5bmMgYWN0KCkgY2FsbHMgdHJ5IHRvIHJ1biBpbiBwYXJhbGxlbC5cblxuXG52YXIgYWN0aW5nVXBkYXRlc1Njb3BlRGVwdGggPSAwO1xuXG5mdW5jdGlvbiBkZXRhY2hGaWJlckFmdGVyRWZmZWN0cyhmaWJlcikge1xuICBmaWJlci5zaWJsaW5nID0gbnVsbDtcbiAgZmliZXIuc3RhdGVOb2RlID0gbnVsbDtcbn1cblxudmFyIHJlc29sdmVGYW1pbHkgPSBudWxsOyAvLyAkRmxvd0ZpeE1lIEZsb3cgZ2V0cyBjb25mdXNlZCBieSBhIFdlYWtTZXQgZmVhdHVyZSBjaGVjayBiZWxvdy5cblxudmFyIGZhaWxlZEJvdW5kYXJpZXMgPSBudWxsO1xudmFyIHNldFJlZnJlc2hIYW5kbGVyID0gZnVuY3Rpb24gKGhhbmRsZXIpIHtcbiAge1xuICAgIHJlc29sdmVGYW1pbHkgPSBoYW5kbGVyO1xuICB9XG59O1xuZnVuY3Rpb24gcmVzb2x2ZUZ1bmN0aW9uRm9ySG90UmVsb2FkaW5nKHR5cGUpIHtcbiAge1xuICAgIGlmIChyZXNvbHZlRmFtaWx5ID09PSBudWxsKSB7XG4gICAgICAvLyBIb3QgcmVsb2FkaW5nIGlzIGRpc2FibGVkLlxuICAgICAgcmV0dXJuIHR5cGU7XG4gICAgfVxuXG4gICAgdmFyIGZhbWlseSA9IHJlc29sdmVGYW1pbHkodHlwZSk7XG5cbiAgICBpZiAoZmFtaWx5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB0eXBlO1xuICAgIH0gLy8gVXNlIHRoZSBsYXRlc3Qga25vd24gaW1wbGVtZW50YXRpb24uXG5cblxuICAgIHJldHVybiBmYW1pbHkuY3VycmVudDtcbiAgfVxufVxuZnVuY3Rpb24gcmVzb2x2ZUNsYXNzRm9ySG90UmVsb2FkaW5nKHR5cGUpIHtcbiAgLy8gTm8gaW1wbGVtZW50YXRpb24gZGlmZmVyZW5jZXMuXG4gIHJldHVybiByZXNvbHZlRnVuY3Rpb25Gb3JIb3RSZWxvYWRpbmcodHlwZSk7XG59XG5mdW5jdGlvbiByZXNvbHZlRm9yd2FyZFJlZkZvckhvdFJlbG9hZGluZyh0eXBlKSB7XG4gIHtcbiAgICBpZiAocmVzb2x2ZUZhbWlseSA9PT0gbnVsbCkge1xuICAgICAgLy8gSG90IHJlbG9hZGluZyBpcyBkaXNhYmxlZC5cbiAgICAgIHJldHVybiB0eXBlO1xuICAgIH1cblxuICAgIHZhciBmYW1pbHkgPSByZXNvbHZlRmFtaWx5KHR5cGUpO1xuXG4gICAgaWYgKGZhbWlseSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBDaGVjayBpZiB3ZSdyZSBkZWFsaW5nIHdpdGggYSByZWFsIGZvcndhcmRSZWYuIERvbid0IHdhbnQgdG8gY3Jhc2ggZWFybHkuXG4gICAgICBpZiAodHlwZSAhPT0gbnVsbCAmJiB0eXBlICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIHR5cGUucmVuZGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIC8vIEZvcndhcmRSZWYgaXMgc3BlY2lhbCBiZWNhdXNlIGl0cyByZXNvbHZlZCAudHlwZSBpcyBhbiBvYmplY3QsXG4gICAgICAgIC8vIGJ1dCBpdCdzIHBvc3NpYmxlIHRoYXQgd2Ugb25seSBoYXZlIGl0cyBpbm5lciByZW5kZXIgZnVuY3Rpb24gaW4gdGhlIG1hcC5cbiAgICAgICAgLy8gSWYgdGhhdCBpbm5lciByZW5kZXIgZnVuY3Rpb24gaXMgZGlmZmVyZW50LCB3ZSdsbCBidWlsZCBhIG5ldyBmb3J3YXJkUmVmIHR5cGUuXG4gICAgICAgIHZhciBjdXJyZW50UmVuZGVyID0gcmVzb2x2ZUZ1bmN0aW9uRm9ySG90UmVsb2FkaW5nKHR5cGUucmVuZGVyKTtcblxuICAgICAgICBpZiAodHlwZS5yZW5kZXIgIT09IGN1cnJlbnRSZW5kZXIpIHtcbiAgICAgICAgICB2YXIgc3ludGhldGljVHlwZSA9IHtcbiAgICAgICAgICAgICQkdHlwZW9mOiBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFLFxuICAgICAgICAgICAgcmVuZGVyOiBjdXJyZW50UmVuZGVyXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGlmICh0eXBlLmRpc3BsYXlOYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHN5bnRoZXRpY1R5cGUuZGlzcGxheU5hbWUgPSB0eXBlLmRpc3BsYXlOYW1lO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBzeW50aGV0aWNUeXBlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0eXBlO1xuICAgIH0gLy8gVXNlIHRoZSBsYXRlc3Qga25vd24gaW1wbGVtZW50YXRpb24uXG5cblxuICAgIHJldHVybiBmYW1pbHkuY3VycmVudDtcbiAgfVxufVxuZnVuY3Rpb24gaXNDb21wYXRpYmxlRmFtaWx5Rm9ySG90UmVsb2FkaW5nKGZpYmVyLCBlbGVtZW50KSB7XG4gIHtcbiAgICBpZiAocmVzb2x2ZUZhbWlseSA9PT0gbnVsbCkge1xuICAgICAgLy8gSG90IHJlbG9hZGluZyBpcyBkaXNhYmxlZC5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICB2YXIgcHJldlR5cGUgPSBmaWJlci5lbGVtZW50VHlwZTtcbiAgICB2YXIgbmV4dFR5cGUgPSBlbGVtZW50LnR5cGU7IC8vIElmIHdlIGdvdCBoZXJlLCB3ZSBrbm93IHR5cGVzIGFyZW4ndCA9PT0gZXF1YWwuXG5cbiAgICB2YXIgbmVlZHNDb21wYXJlRmFtaWxpZXMgPSBmYWxzZTtcbiAgICB2YXIgJCR0eXBlb2ZOZXh0VHlwZSA9IHR5cGVvZiBuZXh0VHlwZSA9PT0gJ29iamVjdCcgJiYgbmV4dFR5cGUgIT09IG51bGwgPyBuZXh0VHlwZS4kJHR5cGVvZiA6IG51bGw7XG5cbiAgICBzd2l0Y2ggKGZpYmVyLnRhZykge1xuICAgICAgY2FzZSBDbGFzc0NvbXBvbmVudDpcbiAgICAgICAge1xuICAgICAgICAgIGlmICh0eXBlb2YgbmV4dFR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIG5lZWRzQ29tcGFyZUZhbWlsaWVzID0gdHJ1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICBjYXNlIEZ1bmN0aW9uQ29tcG9uZW50OlxuICAgICAgICB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBuZXh0VHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgbmVlZHNDb21wYXJlRmFtaWxpZXMgPSB0cnVlO1xuICAgICAgICAgIH0gZWxzZSBpZiAoJCR0eXBlb2ZOZXh0VHlwZSA9PT0gUkVBQ1RfTEFaWV9UWVBFKSB7XG4gICAgICAgICAgICAvLyBXZSBkb24ndCBrbm93IHRoZSBpbm5lciB0eXBlIHlldC5cbiAgICAgICAgICAgIC8vIFdlJ3JlIGdvaW5nIHRvIGFzc3VtZSB0aGF0IHRoZSBsYXp5IGlubmVyIHR5cGUgaXMgc3RhYmxlLFxuICAgICAgICAgICAgLy8gYW5kIHNvIGl0IGlzIHN1ZmZpY2llbnQgdG8gYXZvaWQgcmVjb25jaWxpbmcgaXQgYXdheS5cbiAgICAgICAgICAgIC8vIFdlJ3JlIG5vdCBnb2luZyB0byB1bndyYXAgb3IgYWN0dWFsbHkgdXNlIHRoZSBuZXcgbGF6eSB0eXBlLlxuICAgICAgICAgICAgbmVlZHNDb21wYXJlRmFtaWxpZXMgPSB0cnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgIGNhc2UgRm9yd2FyZFJlZjpcbiAgICAgICAge1xuICAgICAgICAgIGlmICgkJHR5cGVvZk5leHRUeXBlID09PSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFKSB7XG4gICAgICAgICAgICBuZWVkc0NvbXBhcmVGYW1pbGllcyA9IHRydWU7XG4gICAgICAgICAgfSBlbHNlIGlmICgkJHR5cGVvZk5leHRUeXBlID09PSBSRUFDVF9MQVpZX1RZUEUpIHtcbiAgICAgICAgICAgIG5lZWRzQ29tcGFyZUZhbWlsaWVzID0gdHJ1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICBjYXNlIE1lbW9Db21wb25lbnQ6XG4gICAgICBjYXNlIFNpbXBsZU1lbW9Db21wb25lbnQ6XG4gICAgICAgIHtcbiAgICAgICAgICBpZiAoJCR0eXBlb2ZOZXh0VHlwZSA9PT0gUkVBQ1RfTUVNT19UWVBFKSB7XG4gICAgICAgICAgICAvLyBUT0RPOiBpZiBpdCB3YXMgYnV0IGNhbiBubyBsb25nZXIgYmUgc2ltcGxlLFxuICAgICAgICAgICAgLy8gd2Ugc2hvdWxkbid0IHNldCB0aGlzLlxuICAgICAgICAgICAgbmVlZHNDb21wYXJlRmFtaWxpZXMgPSB0cnVlO1xuICAgICAgICAgIH0gZWxzZSBpZiAoJCR0eXBlb2ZOZXh0VHlwZSA9PT0gUkVBQ1RfTEFaWV9UWVBFKSB7XG4gICAgICAgICAgICBuZWVkc0NvbXBhcmVGYW1pbGllcyA9IHRydWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gLy8gQ2hlY2sgaWYgYm90aCB0eXBlcyBoYXZlIGEgZmFtaWx5IGFuZCBpdCdzIHRoZSBzYW1lIG9uZS5cblxuXG4gICAgaWYgKG5lZWRzQ29tcGFyZUZhbWlsaWVzKSB7XG4gICAgICAvLyBOb3RlOiBtZW1vKCkgYW5kIGZvcndhcmRSZWYoKSB3ZSdsbCBjb21wYXJlIG91dGVyIHJhdGhlciB0aGFuIGlubmVyIHR5cGUuXG4gICAgICAvLyBUaGlzIG1lYW5zIGJvdGggb2YgdGhlbSBuZWVkIHRvIGJlIHJlZ2lzdGVyZWQgdG8gcHJlc2VydmUgc3RhdGUuXG4gICAgICAvLyBJZiB3ZSB1bndyYXBwZWQgYW5kIGNvbXBhcmVkIHRoZSBpbm5lciB0eXBlcyBmb3Igd3JhcHBlcnMgaW5zdGVhZCxcbiAgICAgIC8vIHRoZW4gd2Ugd291bGQgcmlzayBmYWxzZWx5IHNheWluZyB0d28gc2VwYXJhdGUgbWVtbyhGb28pXG4gICAgICAvLyBjYWxscyBhcmUgZXF1aXZhbGVudCBiZWNhdXNlIHRoZXkgd3JhcCB0aGUgc2FtZSBGb28gZnVuY3Rpb24uXG4gICAgICB2YXIgcHJldkZhbWlseSA9IHJlc29sdmVGYW1pbHkocHJldlR5cGUpO1xuXG4gICAgICBpZiAocHJldkZhbWlseSAhPT0gdW5kZWZpbmVkICYmIHByZXZGYW1pbHkgPT09IHJlc29sdmVGYW1pbHkobmV4dFR5cGUpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuZnVuY3Rpb24gbWFya0ZhaWxlZEVycm9yQm91bmRhcnlGb3JIb3RSZWxvYWRpbmcoZmliZXIpIHtcbiAge1xuICAgIGlmIChyZXNvbHZlRmFtaWx5ID09PSBudWxsKSB7XG4gICAgICAvLyBIb3QgcmVsb2FkaW5nIGlzIGRpc2FibGVkLlxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgV2Vha1NldCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChmYWlsZWRCb3VuZGFyaWVzID09PSBudWxsKSB7XG4gICAgICBmYWlsZWRCb3VuZGFyaWVzID0gbmV3IFdlYWtTZXQoKTtcbiAgICB9XG5cbiAgICBmYWlsZWRCb3VuZGFyaWVzLmFkZChmaWJlcik7XG4gIH1cbn1cbnZhciBzY2hlZHVsZVJlZnJlc2ggPSBmdW5jdGlvbiAocm9vdCwgdXBkYXRlKSB7XG4gIHtcbiAgICBpZiAocmVzb2x2ZUZhbWlseSA9PT0gbnVsbCkge1xuICAgICAgLy8gSG90IHJlbG9hZGluZyBpcyBkaXNhYmxlZC5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2YXIgc3RhbGVGYW1pbGllcyA9IHVwZGF0ZS5zdGFsZUZhbWlsaWVzLFxuICAgICAgICB1cGRhdGVkRmFtaWxpZXMgPSB1cGRhdGUudXBkYXRlZEZhbWlsaWVzO1xuICAgIGZsdXNoUGFzc2l2ZUVmZmVjdHMoKTtcbiAgICBmbHVzaFN5bmMoZnVuY3Rpb24gKCkge1xuICAgICAgc2NoZWR1bGVGaWJlcnNXaXRoRmFtaWxpZXNSZWN1cnNpdmVseShyb290LmN1cnJlbnQsIHVwZGF0ZWRGYW1pbGllcywgc3RhbGVGYW1pbGllcyk7XG4gICAgfSk7XG4gIH1cbn07XG52YXIgc2NoZWR1bGVSb290ID0gZnVuY3Rpb24gKHJvb3QsIGVsZW1lbnQpIHtcbiAge1xuICAgIGlmIChyb290LmNvbnRleHQgIT09IGVtcHR5Q29udGV4dE9iamVjdCkge1xuICAgICAgLy8gU3VwZXIgZWRnZSBjYXNlOiByb290IGhhcyBhIGxlZ2FjeSBfcmVuZGVyU3VidHJlZSBjb250ZXh0XG4gICAgICAvLyBidXQgd2UgZG9uJ3Qga25vdyB0aGUgcGFyZW50Q29tcG9uZW50IHNvIHdlIGNhbid0IHBhc3MgaXQuXG4gICAgICAvLyBKdXN0IGlnbm9yZS4gV2UnbGwgZGVsZXRlIHRoaXMgd2l0aCBfcmVuZGVyU3VidHJlZSBjb2RlIHBhdGggbGF0ZXIuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZmx1c2hQYXNzaXZlRWZmZWN0cygpO1xuICAgIGZsdXNoU3luYyhmdW5jdGlvbiAoKSB7XG4gICAgICB1cGRhdGVDb250YWluZXIoZWxlbWVudCwgcm9vdCwgbnVsbCwgbnVsbCk7XG4gICAgfSk7XG4gIH1cbn07XG5cbmZ1bmN0aW9uIHNjaGVkdWxlRmliZXJzV2l0aEZhbWlsaWVzUmVjdXJzaXZlbHkoZmliZXIsIHVwZGF0ZWRGYW1pbGllcywgc3RhbGVGYW1pbGllcykge1xuICB7XG4gICAgdmFyIGFsdGVybmF0ZSA9IGZpYmVyLmFsdGVybmF0ZSxcbiAgICAgICAgY2hpbGQgPSBmaWJlci5jaGlsZCxcbiAgICAgICAgc2libGluZyA9IGZpYmVyLnNpYmxpbmcsXG4gICAgICAgIHRhZyA9IGZpYmVyLnRhZyxcbiAgICAgICAgdHlwZSA9IGZpYmVyLnR5cGU7XG4gICAgdmFyIGNhbmRpZGF0ZVR5cGUgPSBudWxsO1xuXG4gICAgc3dpdGNoICh0YWcpIHtcbiAgICAgIGNhc2UgRnVuY3Rpb25Db21wb25lbnQ6XG4gICAgICBjYXNlIFNpbXBsZU1lbW9Db21wb25lbnQ6XG4gICAgICBjYXNlIENsYXNzQ29tcG9uZW50OlxuICAgICAgICBjYW5kaWRhdGVUeXBlID0gdHlwZTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgRm9yd2FyZFJlZjpcbiAgICAgICAgY2FuZGlkYXRlVHlwZSA9IHR5cGUucmVuZGVyO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICBpZiAocmVzb2x2ZUZhbWlseSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCByZXNvbHZlRmFtaWx5IHRvIGJlIHNldCBkdXJpbmcgaG90IHJlbG9hZC4nKTtcbiAgICB9XG5cbiAgICB2YXIgbmVlZHNSZW5kZXIgPSBmYWxzZTtcbiAgICB2YXIgbmVlZHNSZW1vdW50ID0gZmFsc2U7XG5cbiAgICBpZiAoY2FuZGlkYXRlVHlwZSAhPT0gbnVsbCkge1xuICAgICAgdmFyIGZhbWlseSA9IHJlc29sdmVGYW1pbHkoY2FuZGlkYXRlVHlwZSk7XG5cbiAgICAgIGlmIChmYW1pbHkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAoc3RhbGVGYW1pbGllcy5oYXMoZmFtaWx5KSkge1xuICAgICAgICAgIG5lZWRzUmVtb3VudCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAodXBkYXRlZEZhbWlsaWVzLmhhcyhmYW1pbHkpKSB7XG4gICAgICAgICAgaWYgKHRhZyA9PT0gQ2xhc3NDb21wb25lbnQpIHtcbiAgICAgICAgICAgIG5lZWRzUmVtb3VudCA9IHRydWU7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5lZWRzUmVuZGVyID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZmFpbGVkQm91bmRhcmllcyAhPT0gbnVsbCkge1xuICAgICAgaWYgKGZhaWxlZEJvdW5kYXJpZXMuaGFzKGZpYmVyKSB8fCBhbHRlcm5hdGUgIT09IG51bGwgJiYgZmFpbGVkQm91bmRhcmllcy5oYXMoYWx0ZXJuYXRlKSkge1xuICAgICAgICBuZWVkc1JlbW91bnQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChuZWVkc1JlbW91bnQpIHtcbiAgICAgIGZpYmVyLl9kZWJ1Z05lZWRzUmVtb3VudCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKG5lZWRzUmVtb3VudCB8fCBuZWVkc1JlbmRlcikge1xuICAgICAgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKGZpYmVyLCBTeW5jTGFuZSwgTm9UaW1lc3RhbXApO1xuICAgIH1cblxuICAgIGlmIChjaGlsZCAhPT0gbnVsbCAmJiAhbmVlZHNSZW1vdW50KSB7XG4gICAgICBzY2hlZHVsZUZpYmVyc1dpdGhGYW1pbGllc1JlY3Vyc2l2ZWx5KGNoaWxkLCB1cGRhdGVkRmFtaWxpZXMsIHN0YWxlRmFtaWxpZXMpO1xuICAgIH1cblxuICAgIGlmIChzaWJsaW5nICE9PSBudWxsKSB7XG4gICAgICBzY2hlZHVsZUZpYmVyc1dpdGhGYW1pbGllc1JlY3Vyc2l2ZWx5KHNpYmxpbmcsIHVwZGF0ZWRGYW1pbGllcywgc3RhbGVGYW1pbGllcyk7XG4gICAgfVxuICB9XG59XG5cbnZhciBmaW5kSG9zdEluc3RhbmNlc0ZvclJlZnJlc2ggPSBmdW5jdGlvbiAocm9vdCwgZmFtaWxpZXMpIHtcbiAge1xuICAgIHZhciBob3N0SW5zdGFuY2VzID0gbmV3IFNldCgpO1xuICAgIHZhciB0eXBlcyA9IG5ldyBTZXQoZmFtaWxpZXMubWFwKGZ1bmN0aW9uIChmYW1pbHkpIHtcbiAgICAgIHJldHVybiBmYW1pbHkuY3VycmVudDtcbiAgICB9KSk7XG4gICAgZmluZEhvc3RJbnN0YW5jZXNGb3JNYXRjaGluZ0ZpYmVyc1JlY3Vyc2l2ZWx5KHJvb3QuY3VycmVudCwgdHlwZXMsIGhvc3RJbnN0YW5jZXMpO1xuICAgIHJldHVybiBob3N0SW5zdGFuY2VzO1xuICB9XG59O1xuXG5mdW5jdGlvbiBmaW5kSG9zdEluc3RhbmNlc0Zvck1hdGNoaW5nRmliZXJzUmVjdXJzaXZlbHkoZmliZXIsIHR5cGVzLCBob3N0SW5zdGFuY2VzKSB7XG4gIHtcbiAgICB2YXIgY2hpbGQgPSBmaWJlci5jaGlsZCxcbiAgICAgICAgc2libGluZyA9IGZpYmVyLnNpYmxpbmcsXG4gICAgICAgIHRhZyA9IGZpYmVyLnRhZyxcbiAgICAgICAgdHlwZSA9IGZpYmVyLnR5cGU7XG4gICAgdmFyIGNhbmRpZGF0ZVR5cGUgPSBudWxsO1xuXG4gICAgc3dpdGNoICh0YWcpIHtcbiAgICAgIGNhc2UgRnVuY3Rpb25Db21wb25lbnQ6XG4gICAgICBjYXNlIFNpbXBsZU1lbW9Db21wb25lbnQ6XG4gICAgICBjYXNlIENsYXNzQ29tcG9uZW50OlxuICAgICAgICBjYW5kaWRhdGVUeXBlID0gdHlwZTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgRm9yd2FyZFJlZjpcbiAgICAgICAgY2FuZGlkYXRlVHlwZSA9IHR5cGUucmVuZGVyO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICB2YXIgZGlkTWF0Y2ggPSBmYWxzZTtcblxuICAgIGlmIChjYW5kaWRhdGVUeXBlICE9PSBudWxsKSB7XG4gICAgICBpZiAodHlwZXMuaGFzKGNhbmRpZGF0ZVR5cGUpKSB7XG4gICAgICAgIGRpZE1hdGNoID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZGlkTWF0Y2gpIHtcbiAgICAgIC8vIFdlIGhhdmUgYSBtYXRjaC4gVGhpcyBvbmx5IGRyaWxscyBkb3duIHRvIHRoZSBjbG9zZXN0IGhvc3QgY29tcG9uZW50cy5cbiAgICAgIC8vIFRoZXJlJ3Mgbm8gbmVlZCB0byBzZWFyY2ggZGVlcGVyIGJlY2F1c2UgZm9yIHRoZSBwdXJwb3NlIG9mIGdpdmluZ1xuICAgICAgLy8gdmlzdWFsIGZlZWRiYWNrLCBcImZsYXNoaW5nXCIgb3V0ZXJtb3N0IHBhcmVudCByZWN0YW5nbGVzIGlzIHN1ZmZpY2llbnQuXG4gICAgICBmaW5kSG9zdEluc3RhbmNlc0ZvckZpYmVyU2hhbGxvd2x5KGZpYmVyLCBob3N0SW5zdGFuY2VzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSWYgdGhlcmUncyBubyBtYXRjaCwgbWF5YmUgdGhlcmUgd2lsbCBiZSBvbmUgZnVydGhlciBkb3duIGluIHRoZSBjaGlsZCB0cmVlLlxuICAgICAgaWYgKGNoaWxkICE9PSBudWxsKSB7XG4gICAgICAgIGZpbmRIb3N0SW5zdGFuY2VzRm9yTWF0Y2hpbmdGaWJlcnNSZWN1cnNpdmVseShjaGlsZCwgdHlwZXMsIGhvc3RJbnN0YW5jZXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChzaWJsaW5nICE9PSBudWxsKSB7XG4gICAgICBmaW5kSG9zdEluc3RhbmNlc0Zvck1hdGNoaW5nRmliZXJzUmVjdXJzaXZlbHkoc2libGluZywgdHlwZXMsIGhvc3RJbnN0YW5jZXMpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBmaW5kSG9zdEluc3RhbmNlc0ZvckZpYmVyU2hhbGxvd2x5KGZpYmVyLCBob3N0SW5zdGFuY2VzKSB7XG4gIHtcbiAgICB2YXIgZm91bmRIb3N0SW5zdGFuY2VzID0gZmluZENoaWxkSG9zdEluc3RhbmNlc0ZvckZpYmVyU2hhbGxvd2x5KGZpYmVyLCBob3N0SW5zdGFuY2VzKTtcblxuICAgIGlmIChmb3VuZEhvc3RJbnN0YW5jZXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9IC8vIElmIHdlIGRpZG4ndCBmaW5kIGFueSBob3N0IGNoaWxkcmVuLCBmYWxsYmFjayB0byBjbG9zZXN0IGhvc3QgcGFyZW50LlxuXG5cbiAgICB2YXIgbm9kZSA9IGZpYmVyO1xuXG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIHN3aXRjaCAobm9kZS50YWcpIHtcbiAgICAgICAgY2FzZSBIb3N0Q29tcG9uZW50OlxuICAgICAgICAgIGhvc3RJbnN0YW5jZXMuYWRkKG5vZGUuc3RhdGVOb2RlKTtcbiAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgY2FzZSBIb3N0UG9ydGFsOlxuICAgICAgICAgIGhvc3RJbnN0YW5jZXMuYWRkKG5vZGUuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pO1xuICAgICAgICAgIHJldHVybjtcblxuICAgICAgICBjYXNlIEhvc3RSb290OlxuICAgICAgICAgIGhvc3RJbnN0YW5jZXMuYWRkKG5vZGUuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKG5vZGUucmV0dXJuID09PSBudWxsKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgdG8gcmVhY2ggcm9vdCBmaXJzdC4nKTtcbiAgICAgIH1cblxuICAgICAgbm9kZSA9IG5vZGUucmV0dXJuO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBmaW5kQ2hpbGRIb3N0SW5zdGFuY2VzRm9yRmliZXJTaGFsbG93bHkoZmliZXIsIGhvc3RJbnN0YW5jZXMpIHtcbiAge1xuICAgIHZhciBub2RlID0gZmliZXI7XG4gICAgdmFyIGZvdW5kSG9zdEluc3RhbmNlcyA9IGZhbHNlO1xuXG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIGlmIChub2RlLnRhZyA9PT0gSG9zdENvbXBvbmVudCkge1xuICAgICAgICAvLyBXZSBnb3QgYSBtYXRjaC5cbiAgICAgICAgZm91bmRIb3N0SW5zdGFuY2VzID0gdHJ1ZTtcbiAgICAgICAgaG9zdEluc3RhbmNlcy5hZGQobm9kZS5zdGF0ZU5vZGUpOyAvLyBUaGVyZSBtYXkgc3RpbGwgYmUgbW9yZSwgc28ga2VlcCBzZWFyY2hpbmcuXG4gICAgICB9IGVsc2UgaWYgKG5vZGUuY2hpbGQgIT09IG51bGwpIHtcbiAgICAgICAgbm9kZS5jaGlsZC5yZXR1cm4gPSBub2RlO1xuICAgICAgICBub2RlID0gbm9kZS5jaGlsZDtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChub2RlID09PSBmaWJlcikge1xuICAgICAgICByZXR1cm4gZm91bmRIb3N0SW5zdGFuY2VzO1xuICAgICAgfVxuXG4gICAgICB3aGlsZSAobm9kZS5zaWJsaW5nID09PSBudWxsKSB7XG4gICAgICAgIGlmIChub2RlLnJldHVybiA9PT0gbnVsbCB8fCBub2RlLnJldHVybiA9PT0gZmliZXIpIHtcbiAgICAgICAgICByZXR1cm4gZm91bmRIb3N0SW5zdGFuY2VzO1xuICAgICAgICB9XG5cbiAgICAgICAgbm9kZSA9IG5vZGUucmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBub2RlLnNpYmxpbmcucmV0dXJuID0gbm9kZS5yZXR1cm47XG4gICAgICBub2RlID0gbm9kZS5zaWJsaW5nO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxudmFyIGhhc0JhZE1hcFBvbHlmaWxsO1xuXG57XG4gIGhhc0JhZE1hcFBvbHlmaWxsID0gZmFsc2U7XG5cbiAgdHJ5IHtcbiAgICB2YXIgbm9uRXh0ZW5zaWJsZU9iamVjdCA9IE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyh7fSk7XG4gICAgLyogZXNsaW50LWRpc2FibGUgbm8tbmV3ICovXG5cbiAgICBuZXcgTWFwKFtbbm9uRXh0ZW5zaWJsZU9iamVjdCwgbnVsbF1dKTtcbiAgICBuZXcgU2V0KFtub25FeHRlbnNpYmxlT2JqZWN0XSk7XG4gICAgLyogZXNsaW50LWVuYWJsZSBuby1uZXcgKi9cbiAgfSBjYXRjaCAoZSkge1xuICAgIC8vIFRPRE86IENvbnNpZGVyIHdhcm5pbmcgYWJvdXQgYmFkIHBvbHlmaWxsc1xuICAgIGhhc0JhZE1hcFBvbHlmaWxsID0gdHJ1ZTtcbiAgfVxufVxuXG52YXIgZGVidWdDb3VudGVyID0gMTtcblxuZnVuY3Rpb24gRmliZXJOb2RlKHRhZywgcGVuZGluZ1Byb3BzLCBrZXksIG1vZGUpIHtcbiAgLy8gSW5zdGFuY2VcbiAgdGhpcy50YWcgPSB0YWc7XG4gIHRoaXMua2V5ID0ga2V5O1xuICB0aGlzLmVsZW1lbnRUeXBlID0gbnVsbDtcbiAgdGhpcy50eXBlID0gbnVsbDtcbiAgdGhpcy5zdGF0ZU5vZGUgPSBudWxsOyAvLyBGaWJlclxuXG4gIHRoaXMucmV0dXJuID0gbnVsbDtcbiAgdGhpcy5jaGlsZCA9IG51bGw7XG4gIHRoaXMuc2libGluZyA9IG51bGw7XG4gIHRoaXMuaW5kZXggPSAwO1xuICB0aGlzLnJlZiA9IG51bGw7XG4gIHRoaXMucGVuZGluZ1Byb3BzID0gcGVuZGluZ1Byb3BzO1xuICB0aGlzLm1lbW9pemVkUHJvcHMgPSBudWxsO1xuICB0aGlzLnVwZGF0ZVF1ZXVlID0gbnVsbDtcbiAgdGhpcy5tZW1vaXplZFN0YXRlID0gbnVsbDtcbiAgdGhpcy5kZXBlbmRlbmNpZXMgPSBudWxsO1xuICB0aGlzLm1vZGUgPSBtb2RlOyAvLyBFZmZlY3RzXG5cbiAgdGhpcy5mbGFncyA9IE5vRmxhZ3M7XG4gIHRoaXMubmV4dEVmZmVjdCA9IG51bGw7XG4gIHRoaXMuZmlyc3RFZmZlY3QgPSBudWxsO1xuICB0aGlzLmxhc3RFZmZlY3QgPSBudWxsO1xuICB0aGlzLmxhbmVzID0gTm9MYW5lcztcbiAgdGhpcy5jaGlsZExhbmVzID0gTm9MYW5lcztcbiAgdGhpcy5hbHRlcm5hdGUgPSBudWxsO1xuXG4gIHtcbiAgICAvLyBOb3RlOiBUaGUgZm9sbG93aW5nIGlzIGRvbmUgdG8gYXZvaWQgYSB2OCBwZXJmb3JtYW5jZSBjbGlmZi5cbiAgICAvL1xuICAgIC8vIEluaXRpYWxpemluZyB0aGUgZmllbGRzIGJlbG93IHRvIHNtaXMgYW5kIGxhdGVyIHVwZGF0aW5nIHRoZW0gd2l0aFxuICAgIC8vIGRvdWJsZSB2YWx1ZXMgd2lsbCBjYXVzZSBGaWJlcnMgdG8gZW5kIHVwIGhhdmluZyBzZXBhcmF0ZSBzaGFwZXMuXG4gICAgLy8gVGhpcyBiZWhhdmlvci9idWcgaGFzIHNvbWV0aGluZyB0byBkbyB3aXRoIE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9uKCkuXG4gICAgLy8gRm9ydHVuYXRlbHkgdGhpcyBvbmx5IGltcGFjdHMgREVWIGJ1aWxkcy5cbiAgICAvLyBVbmZvcnR1bmF0ZWx5IGl0IG1ha2VzIFJlYWN0IHVudXNhYmx5IHNsb3cgZm9yIHNvbWUgYXBwbGljYXRpb25zLlxuICAgIC8vIFRvIHdvcmsgYXJvdW5kIHRoaXMsIGluaXRpYWxpemUgdGhlIGZpZWxkcyBiZWxvdyB3aXRoIGRvdWJsZXMuXG4gICAgLy9cbiAgICAvLyBMZWFybiBtb3JlIGFib3V0IHRoaXMgaGVyZTpcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzE0MzY1XG4gICAgLy8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9ODUzOFxuICAgIHRoaXMuYWN0dWFsRHVyYXRpb24gPSBOdW1iZXIuTmFOO1xuICAgIHRoaXMuYWN0dWFsU3RhcnRUaW1lID0gTnVtYmVyLk5hTjtcbiAgICB0aGlzLnNlbGZCYXNlRHVyYXRpb24gPSBOdW1iZXIuTmFOO1xuICAgIHRoaXMudHJlZUJhc2VEdXJhdGlvbiA9IE51bWJlci5OYU47IC8vIEl0J3Mgb2theSB0byByZXBsYWNlIHRoZSBpbml0aWFsIGRvdWJsZXMgd2l0aCBzbWlzIGFmdGVyIGluaXRpYWxpemF0aW9uLlxuICAgIC8vIFRoaXMgd29uJ3QgdHJpZ2dlciB0aGUgcGVyZm9ybWFuY2UgY2xpZmYgbWVudGlvbmVkIGFib3ZlLFxuICAgIC8vIGFuZCBpdCBzaW1wbGlmaWVzIG90aGVyIHByb2ZpbGVyIGNvZGUgKGluY2x1ZGluZyBEZXZUb29scykuXG5cbiAgICB0aGlzLmFjdHVhbER1cmF0aW9uID0gMDtcbiAgICB0aGlzLmFjdHVhbFN0YXJ0VGltZSA9IC0xO1xuICAgIHRoaXMuc2VsZkJhc2VEdXJhdGlvbiA9IDA7XG4gICAgdGhpcy50cmVlQmFzZUR1cmF0aW9uID0gMDtcbiAgfVxuXG4gIHtcbiAgICAvLyBUaGlzIGlzbid0IGRpcmVjdGx5IHVzZWQgYnV0IGlzIGhhbmR5IGZvciBkZWJ1Z2dpbmcgaW50ZXJuYWxzOlxuICAgIHRoaXMuX2RlYnVnSUQgPSBkZWJ1Z0NvdW50ZXIrKztcbiAgICB0aGlzLl9kZWJ1Z1NvdXJjZSA9IG51bGw7XG4gICAgdGhpcy5fZGVidWdPd25lciA9IG51bGw7XG4gICAgdGhpcy5fZGVidWdOZWVkc1JlbW91bnQgPSBmYWxzZTtcbiAgICB0aGlzLl9kZWJ1Z0hvb2tUeXBlcyA9IG51bGw7XG5cbiAgICBpZiAoIWhhc0JhZE1hcFBvbHlmaWxsICYmIHR5cGVvZiBPYmplY3QucHJldmVudEV4dGVuc2lvbnMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyh0aGlzKTtcbiAgICB9XG4gIH1cbn0gLy8gVGhpcyBpcyBhIGNvbnN0cnVjdG9yIGZ1bmN0aW9uLCByYXRoZXIgdGhhbiBhIFBPSk8gY29uc3RydWN0b3IsIHN0aWxsXG4vLyBwbGVhc2UgZW5zdXJlIHdlIGRvIHRoZSBmb2xsb3dpbmc6XG4vLyAxKSBOb2JvZHkgc2hvdWxkIGFkZCBhbnkgaW5zdGFuY2UgbWV0aG9kcyBvbiB0aGlzLiBJbnN0YW5jZSBtZXRob2RzIGNhbiBiZVxuLy8gICAgbW9yZSBkaWZmaWN1bHQgdG8gcHJlZGljdCB3aGVuIHRoZXkgZ2V0IG9wdGltaXplZCBhbmQgdGhleSBhcmUgYWxtb3N0XG4vLyAgICBuZXZlciBpbmxpbmVkIHByb3Blcmx5IGluIHN0YXRpYyBjb21waWxlcnMuXG4vLyAyKSBOb2JvZHkgc2hvdWxkIHJlbHkgb24gYGluc3RhbmNlb2YgRmliZXJgIGZvciB0eXBlIHRlc3RpbmcuIFdlIHNob3VsZFxuLy8gICAgYWx3YXlzIGtub3cgd2hlbiBpdCBpcyBhIGZpYmVyLlxuLy8gMykgV2UgbWlnaHQgd2FudCB0byBleHBlcmltZW50IHdpdGggdXNpbmcgbnVtZXJpYyBrZXlzIHNpbmNlIHRoZXkgYXJlIGVhc2llclxuLy8gICAgdG8gb3B0aW1pemUgaW4gYSBub24tSklUIGVudmlyb25tZW50LlxuLy8gNCkgV2UgY2FuIGVhc2lseSBnbyBmcm9tIGEgY29uc3RydWN0b3IgdG8gYSBjcmVhdGVGaWJlciBvYmplY3QgbGl0ZXJhbCBpZiB0aGF0XG4vLyAgICBpcyBmYXN0ZXIuXG4vLyA1KSBJdCBzaG91bGQgYmUgZWFzeSB0byBwb3J0IHRoaXMgdG8gYSBDIHN0cnVjdCBhbmQga2VlcCBhIEMgaW1wbGVtZW50YXRpb25cbi8vICAgIGNvbXBhdGlibGUuXG5cblxudmFyIGNyZWF0ZUZpYmVyID0gZnVuY3Rpb24gKHRhZywgcGVuZGluZ1Byb3BzLCBrZXksIG1vZGUpIHtcbiAgLy8gJEZsb3dGaXhNZTogdGhlIHNoYXBlcyBhcmUgZXhhY3QgaGVyZSBidXQgRmxvdyBkb2Vzbid0IGxpa2UgY29uc3RydWN0b3JzXG4gIHJldHVybiBuZXcgRmliZXJOb2RlKHRhZywgcGVuZGluZ1Byb3BzLCBrZXksIG1vZGUpO1xufTtcblxuZnVuY3Rpb24gc2hvdWxkQ29uc3RydWN0JDEoQ29tcG9uZW50KSB7XG4gIHZhciBwcm90b3R5cGUgPSBDb21wb25lbnQucHJvdG90eXBlO1xuICByZXR1cm4gISEocHJvdG90eXBlICYmIHByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50KTtcbn1cblxuZnVuY3Rpb24gaXNTaW1wbGVGdW5jdGlvbkNvbXBvbmVudCh0eXBlKSB7XG4gIHJldHVybiB0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJyAmJiAhc2hvdWxkQ29uc3RydWN0JDEodHlwZSkgJiYgdHlwZS5kZWZhdWx0UHJvcHMgPT09IHVuZGVmaW5lZDtcbn1cbmZ1bmN0aW9uIHJlc29sdmVMYXp5Q29tcG9uZW50VGFnKENvbXBvbmVudCkge1xuICBpZiAodHlwZW9mIENvbXBvbmVudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBzaG91bGRDb25zdHJ1Y3QkMShDb21wb25lbnQpID8gQ2xhc3NDb21wb25lbnQgOiBGdW5jdGlvbkNvbXBvbmVudDtcbiAgfSBlbHNlIGlmIChDb21wb25lbnQgIT09IHVuZGVmaW5lZCAmJiBDb21wb25lbnQgIT09IG51bGwpIHtcbiAgICB2YXIgJCR0eXBlb2YgPSBDb21wb25lbnQuJCR0eXBlb2Y7XG5cbiAgICBpZiAoJCR0eXBlb2YgPT09IFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUpIHtcbiAgICAgIHJldHVybiBGb3J3YXJkUmVmO1xuICAgIH1cblxuICAgIGlmICgkJHR5cGVvZiA9PT0gUkVBQ1RfTUVNT19UWVBFKSB7XG4gICAgICByZXR1cm4gTWVtb0NvbXBvbmVudDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gSW5kZXRlcm1pbmF0ZUNvbXBvbmVudDtcbn0gLy8gVGhpcyBpcyB1c2VkIHRvIGNyZWF0ZSBhbiBhbHRlcm5hdGUgZmliZXIgdG8gZG8gd29yayBvbi5cblxuZnVuY3Rpb24gY3JlYXRlV29ya0luUHJvZ3Jlc3MoY3VycmVudCwgcGVuZGluZ1Byb3BzKSB7XG4gIHZhciB3b3JrSW5Qcm9ncmVzcyA9IGN1cnJlbnQuYWx0ZXJuYXRlO1xuXG4gIGlmICh3b3JrSW5Qcm9ncmVzcyA9PT0gbnVsbCkge1xuICAgIC8vIFdlIHVzZSBhIGRvdWJsZSBidWZmZXJpbmcgcG9vbGluZyB0ZWNobmlxdWUgYmVjYXVzZSB3ZSBrbm93IHRoYXQgd2UnbGxcbiAgICAvLyBvbmx5IGV2ZXIgbmVlZCBhdCBtb3N0IHR3byB2ZXJzaW9ucyBvZiBhIHRyZWUuIFdlIHBvb2wgdGhlIFwib3RoZXJcIiB1bnVzZWRcbiAgICAvLyBub2RlIHRoYXQgd2UncmUgZnJlZSB0byByZXVzZS4gVGhpcyBpcyBsYXppbHkgY3JlYXRlZCB0byBhdm9pZCBhbGxvY2F0aW5nXG4gICAgLy8gZXh0cmEgb2JqZWN0cyBmb3IgdGhpbmdzIHRoYXQgYXJlIG5ldmVyIHVwZGF0ZWQuIEl0IGFsc28gYWxsb3cgdXMgdG9cbiAgICAvLyByZWNsYWltIHRoZSBleHRyYSBtZW1vcnkgaWYgbmVlZGVkLlxuICAgIHdvcmtJblByb2dyZXNzID0gY3JlYXRlRmliZXIoY3VycmVudC50YWcsIHBlbmRpbmdQcm9wcywgY3VycmVudC5rZXksIGN1cnJlbnQubW9kZSk7XG4gICAgd29ya0luUHJvZ3Jlc3MuZWxlbWVudFR5cGUgPSBjdXJyZW50LmVsZW1lbnRUeXBlO1xuICAgIHdvcmtJblByb2dyZXNzLnR5cGUgPSBjdXJyZW50LnR5cGU7XG4gICAgd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlID0gY3VycmVudC5zdGF0ZU5vZGU7XG5cbiAgICB7XG4gICAgICAvLyBERVYtb25seSBmaWVsZHNcbiAgICAgIHdvcmtJblByb2dyZXNzLl9kZWJ1Z0lEID0gY3VycmVudC5fZGVidWdJRDtcbiAgICAgIHdvcmtJblByb2dyZXNzLl9kZWJ1Z1NvdXJjZSA9IGN1cnJlbnQuX2RlYnVnU291cmNlO1xuICAgICAgd29ya0luUHJvZ3Jlc3MuX2RlYnVnT3duZXIgPSBjdXJyZW50Ll9kZWJ1Z093bmVyO1xuICAgICAgd29ya0luUHJvZ3Jlc3MuX2RlYnVnSG9va1R5cGVzID0gY3VycmVudC5fZGVidWdIb29rVHlwZXM7XG4gICAgfVxuXG4gICAgd29ya0luUHJvZ3Jlc3MuYWx0ZXJuYXRlID0gY3VycmVudDtcbiAgICBjdXJyZW50LmFsdGVybmF0ZSA9IHdvcmtJblByb2dyZXNzO1xuICB9IGVsc2Uge1xuICAgIHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcyA9IHBlbmRpbmdQcm9wczsgLy8gTmVlZGVkIGJlY2F1c2UgQmxvY2tzIHN0b3JlIGRhdGEgb24gdHlwZS5cblxuICAgIHdvcmtJblByb2dyZXNzLnR5cGUgPSBjdXJyZW50LnR5cGU7IC8vIFdlIGFscmVhZHkgaGF2ZSBhbiBhbHRlcm5hdGUuXG4gICAgLy8gUmVzZXQgdGhlIGVmZmVjdCB0YWcuXG5cbiAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyA9IE5vRmxhZ3M7IC8vIFRoZSBlZmZlY3QgbGlzdCBpcyBubyBsb25nZXIgdmFsaWQuXG5cbiAgICB3b3JrSW5Qcm9ncmVzcy5uZXh0RWZmZWN0ID0gbnVsbDtcbiAgICB3b3JrSW5Qcm9ncmVzcy5maXJzdEVmZmVjdCA9IG51bGw7XG4gICAgd29ya0luUHJvZ3Jlc3MubGFzdEVmZmVjdCA9IG51bGw7XG5cbiAgICB7XG4gICAgICAvLyBXZSBpbnRlbnRpb25hbGx5IHJlc2V0LCByYXRoZXIgdGhhbiBjb3B5LCBhY3R1YWxEdXJhdGlvbiAmIGFjdHVhbFN0YXJ0VGltZS5cbiAgICAgIC8vIFRoaXMgcHJldmVudHMgdGltZSBmcm9tIGVuZGxlc3NseSBhY2N1bXVsYXRpbmcgaW4gbmV3IGNvbW1pdHMuXG4gICAgICAvLyBUaGlzIGhhcyB0aGUgZG93bnNpZGUgb2YgcmVzZXR0aW5nIHZhbHVlcyBmb3IgZGlmZmVyZW50IHByaW9yaXR5IHJlbmRlcnMsXG4gICAgICAvLyBCdXQgd29ya3MgZm9yIHlpZWxkaW5nICh0aGUgY29tbW9uIGNhc2UpIGFuZCBzaG91bGQgc3VwcG9ydCByZXN1bWluZy5cbiAgICAgIHdvcmtJblByb2dyZXNzLmFjdHVhbER1cmF0aW9uID0gMDtcbiAgICAgIHdvcmtJblByb2dyZXNzLmFjdHVhbFN0YXJ0VGltZSA9IC0xO1xuICAgIH1cbiAgfVxuXG4gIHdvcmtJblByb2dyZXNzLmNoaWxkTGFuZXMgPSBjdXJyZW50LmNoaWxkTGFuZXM7XG4gIHdvcmtJblByb2dyZXNzLmxhbmVzID0gY3VycmVudC5sYW5lcztcbiAgd29ya0luUHJvZ3Jlc3MuY2hpbGQgPSBjdXJyZW50LmNoaWxkO1xuICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFByb3BzID0gY3VycmVudC5tZW1vaXplZFByb3BzO1xuICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gY3VycmVudC5tZW1vaXplZFN0YXRlO1xuICB3b3JrSW5Qcm9ncmVzcy51cGRhdGVRdWV1ZSA9IGN1cnJlbnQudXBkYXRlUXVldWU7IC8vIENsb25lIHRoZSBkZXBlbmRlbmNpZXMgb2JqZWN0LiBUaGlzIGlzIG11dGF0ZWQgZHVyaW5nIHRoZSByZW5kZXIgcGhhc2UsIHNvXG4gIC8vIGl0IGNhbm5vdCBiZSBzaGFyZWQgd2l0aCB0aGUgY3VycmVudCBmaWJlci5cblxuICB2YXIgY3VycmVudERlcGVuZGVuY2llcyA9IGN1cnJlbnQuZGVwZW5kZW5jaWVzO1xuICB3b3JrSW5Qcm9ncmVzcy5kZXBlbmRlbmNpZXMgPSBjdXJyZW50RGVwZW5kZW5jaWVzID09PSBudWxsID8gbnVsbCA6IHtcbiAgICBsYW5lczogY3VycmVudERlcGVuZGVuY2llcy5sYW5lcyxcbiAgICBmaXJzdENvbnRleHQ6IGN1cnJlbnREZXBlbmRlbmNpZXMuZmlyc3RDb250ZXh0XG4gIH07IC8vIFRoZXNlIHdpbGwgYmUgb3ZlcnJpZGRlbiBkdXJpbmcgdGhlIHBhcmVudCdzIHJlY29uY2lsaWF0aW9uXG5cbiAgd29ya0luUHJvZ3Jlc3Muc2libGluZyA9IGN1cnJlbnQuc2libGluZztcbiAgd29ya0luUHJvZ3Jlc3MuaW5kZXggPSBjdXJyZW50LmluZGV4O1xuICB3b3JrSW5Qcm9ncmVzcy5yZWYgPSBjdXJyZW50LnJlZjtcblxuICB7XG4gICAgd29ya0luUHJvZ3Jlc3Muc2VsZkJhc2VEdXJhdGlvbiA9IGN1cnJlbnQuc2VsZkJhc2VEdXJhdGlvbjtcbiAgICB3b3JrSW5Qcm9ncmVzcy50cmVlQmFzZUR1cmF0aW9uID0gY3VycmVudC50cmVlQmFzZUR1cmF0aW9uO1xuICB9XG5cbiAge1xuICAgIHdvcmtJblByb2dyZXNzLl9kZWJ1Z05lZWRzUmVtb3VudCA9IGN1cnJlbnQuX2RlYnVnTmVlZHNSZW1vdW50O1xuXG4gICAgc3dpdGNoICh3b3JrSW5Qcm9ncmVzcy50YWcpIHtcbiAgICAgIGNhc2UgSW5kZXRlcm1pbmF0ZUNvbXBvbmVudDpcbiAgICAgIGNhc2UgRnVuY3Rpb25Db21wb25lbnQ6XG4gICAgICBjYXNlIFNpbXBsZU1lbW9Db21wb25lbnQ6XG4gICAgICAgIHdvcmtJblByb2dyZXNzLnR5cGUgPSByZXNvbHZlRnVuY3Rpb25Gb3JIb3RSZWxvYWRpbmcoY3VycmVudC50eXBlKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgQ2xhc3NDb21wb25lbnQ6XG4gICAgICAgIHdvcmtJblByb2dyZXNzLnR5cGUgPSByZXNvbHZlQ2xhc3NGb3JIb3RSZWxvYWRpbmcoY3VycmVudC50eXBlKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgRm9yd2FyZFJlZjpcbiAgICAgICAgd29ya0luUHJvZ3Jlc3MudHlwZSA9IHJlc29sdmVGb3J3YXJkUmVmRm9ySG90UmVsb2FkaW5nKGN1cnJlbnQudHlwZSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB3b3JrSW5Qcm9ncmVzcztcbn0gLy8gVXNlZCB0byByZXVzZSBhIEZpYmVyIGZvciBhIHNlY29uZCBwYXNzLlxuXG5mdW5jdGlvbiByZXNldFdvcmtJblByb2dyZXNzKHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcykge1xuICAvLyBUaGlzIHJlc2V0cyB0aGUgRmliZXIgdG8gd2hhdCBjcmVhdGVGaWJlciBvciBjcmVhdGVXb3JrSW5Qcm9ncmVzcyB3b3VsZFxuICAvLyBoYXZlIHNldCB0aGUgdmFsdWVzIHRvIGJlZm9yZSBkdXJpbmcgdGhlIGZpcnN0IHBhc3MuIElkZWFsbHkgdGhpcyB3b3VsZG4ndFxuICAvLyBiZSBuZWNlc3NhcnkgYnV0IHVuZm9ydHVuYXRlbHkgbWFueSBjb2RlIHBhdGhzIHJlYWRzIGZyb20gdGhlIHdvcmtJblByb2dyZXNzXG4gIC8vIHdoZW4gdGhleSBzaG91bGQgYmUgcmVhZGluZyBmcm9tIGN1cnJlbnQgYW5kIHdyaXRpbmcgdG8gd29ya0luUHJvZ3Jlc3MuXG4gIC8vIFdlIGFzc3VtZSBwZW5kaW5nUHJvcHMsIGluZGV4LCBrZXksIHJlZiwgcmV0dXJuIGFyZSBzdGlsbCB1bnRvdWNoZWQgdG9cbiAgLy8gYXZvaWQgZG9pbmcgYW5vdGhlciByZWNvbmNpbGlhdGlvbi5cbiAgLy8gUmVzZXQgdGhlIGVmZmVjdCB0YWcgYnV0IGtlZXAgYW55IFBsYWNlbWVudCB0YWdzLCBzaW5jZSB0aGF0J3Mgc29tZXRoaW5nXG4gIC8vIHRoYXQgY2hpbGQgZmliZXIgaXMgc2V0dGluZywgbm90IHRoZSByZWNvbmNpbGlhdGlvbi5cbiAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgJj0gUGxhY2VtZW50OyAvLyBUaGUgZWZmZWN0IGxpc3QgaXMgbm8gbG9uZ2VyIHZhbGlkLlxuXG4gIHdvcmtJblByb2dyZXNzLm5leHRFZmZlY3QgPSBudWxsO1xuICB3b3JrSW5Qcm9ncmVzcy5maXJzdEVmZmVjdCA9IG51bGw7XG4gIHdvcmtJblByb2dyZXNzLmxhc3RFZmZlY3QgPSBudWxsO1xuICB2YXIgY3VycmVudCA9IHdvcmtJblByb2dyZXNzLmFsdGVybmF0ZTtcblxuICBpZiAoY3VycmVudCA9PT0gbnVsbCkge1xuICAgIC8vIFJlc2V0IHRvIGNyZWF0ZUZpYmVyJ3MgaW5pdGlhbCB2YWx1ZXMuXG4gICAgd29ya0luUHJvZ3Jlc3MuY2hpbGRMYW5lcyA9IE5vTGFuZXM7XG4gICAgd29ya0luUHJvZ3Jlc3MubGFuZXMgPSByZW5kZXJMYW5lcztcbiAgICB3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IG51bGw7XG4gICAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRQcm9wcyA9IG51bGw7XG4gICAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IG51bGw7XG4gICAgd29ya0luUHJvZ3Jlc3MudXBkYXRlUXVldWUgPSBudWxsO1xuICAgIHdvcmtJblByb2dyZXNzLmRlcGVuZGVuY2llcyA9IG51bGw7XG4gICAgd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlID0gbnVsbDtcblxuICAgIHtcbiAgICAgIC8vIE5vdGU6IFdlIGRvbid0IHJlc2V0IHRoZSBhY3R1YWxUaW1lIGNvdW50cy4gSXQncyB1c2VmdWwgdG8gYWNjdW11bGF0ZVxuICAgICAgLy8gYWN0dWFsIHRpbWUgYWNyb3NzIG11bHRpcGxlIHJlbmRlciBwYXNzZXMuXG4gICAgICB3b3JrSW5Qcm9ncmVzcy5zZWxmQmFzZUR1cmF0aW9uID0gMDtcbiAgICAgIHdvcmtJblByb2dyZXNzLnRyZWVCYXNlRHVyYXRpb24gPSAwO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBSZXNldCB0byB0aGUgY2xvbmVkIHZhbHVlcyB0aGF0IGNyZWF0ZVdvcmtJblByb2dyZXNzIHdvdWxkJ3ZlLlxuICAgIHdvcmtJblByb2dyZXNzLmNoaWxkTGFuZXMgPSBjdXJyZW50LmNoaWxkTGFuZXM7XG4gICAgd29ya0luUHJvZ3Jlc3MubGFuZXMgPSBjdXJyZW50LmxhbmVzO1xuICAgIHdvcmtJblByb2dyZXNzLmNoaWxkID0gY3VycmVudC5jaGlsZDtcbiAgICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFByb3BzID0gY3VycmVudC5tZW1vaXplZFByb3BzO1xuICAgIHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBjdXJyZW50Lm1lbW9pemVkU3RhdGU7XG4gICAgd29ya0luUHJvZ3Jlc3MudXBkYXRlUXVldWUgPSBjdXJyZW50LnVwZGF0ZVF1ZXVlOyAvLyBOZWVkZWQgYmVjYXVzZSBCbG9ja3Mgc3RvcmUgZGF0YSBvbiB0eXBlLlxuXG4gICAgd29ya0luUHJvZ3Jlc3MudHlwZSA9IGN1cnJlbnQudHlwZTsgLy8gQ2xvbmUgdGhlIGRlcGVuZGVuY2llcyBvYmplY3QuIFRoaXMgaXMgbXV0YXRlZCBkdXJpbmcgdGhlIHJlbmRlciBwaGFzZSwgc29cbiAgICAvLyBpdCBjYW5ub3QgYmUgc2hhcmVkIHdpdGggdGhlIGN1cnJlbnQgZmliZXIuXG5cbiAgICB2YXIgY3VycmVudERlcGVuZGVuY2llcyA9IGN1cnJlbnQuZGVwZW5kZW5jaWVzO1xuICAgIHdvcmtJblByb2dyZXNzLmRlcGVuZGVuY2llcyA9IGN1cnJlbnREZXBlbmRlbmNpZXMgPT09IG51bGwgPyBudWxsIDoge1xuICAgICAgbGFuZXM6IGN1cnJlbnREZXBlbmRlbmNpZXMubGFuZXMsXG4gICAgICBmaXJzdENvbnRleHQ6IGN1cnJlbnREZXBlbmRlbmNpZXMuZmlyc3RDb250ZXh0XG4gICAgfTtcblxuICAgIHtcbiAgICAgIC8vIE5vdGU6IFdlIGRvbid0IHJlc2V0IHRoZSBhY3R1YWxUaW1lIGNvdW50cy4gSXQncyB1c2VmdWwgdG8gYWNjdW11bGF0ZVxuICAgICAgLy8gYWN0dWFsIHRpbWUgYWNyb3NzIG11bHRpcGxlIHJlbmRlciBwYXNzZXMuXG4gICAgICB3b3JrSW5Qcm9ncmVzcy5zZWxmQmFzZUR1cmF0aW9uID0gY3VycmVudC5zZWxmQmFzZUR1cmF0aW9uO1xuICAgICAgd29ya0luUHJvZ3Jlc3MudHJlZUJhc2VEdXJhdGlvbiA9IGN1cnJlbnQudHJlZUJhc2VEdXJhdGlvbjtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gd29ya0luUHJvZ3Jlc3M7XG59XG5mdW5jdGlvbiBjcmVhdGVIb3N0Um9vdEZpYmVyKHRhZykge1xuICB2YXIgbW9kZTtcblxuICBpZiAodGFnID09PSBDb25jdXJyZW50Um9vdCkge1xuICAgIG1vZGUgPSBDb25jdXJyZW50TW9kZSB8IEJsb2NraW5nTW9kZSB8IFN0cmljdE1vZGU7XG4gIH0gZWxzZSBpZiAodGFnID09PSBCbG9ja2luZ1Jvb3QpIHtcbiAgICBtb2RlID0gQmxvY2tpbmdNb2RlIHwgU3RyaWN0TW9kZTtcbiAgfSBlbHNlIHtcbiAgICBtb2RlID0gTm9Nb2RlO1xuICB9XG5cbiAgaWYgKCBpc0RldlRvb2xzUHJlc2VudCkge1xuICAgIC8vIEFsd2F5cyBjb2xsZWN0IHByb2ZpbGUgdGltaW5ncyB3aGVuIERldlRvb2xzIGFyZSBwcmVzZW50LlxuICAgIC8vIFRoaXMgZW5hYmxlcyBEZXZUb29scyB0byBzdGFydCBjYXB0dXJpbmcgdGltaW5nIGF0IGFueSBwb2ludOKAk1xuICAgIC8vIFdpdGhvdXQgc29tZSBub2RlcyBpbiB0aGUgdHJlZSBoYXZpbmcgZW1wdHkgYmFzZSB0aW1lcy5cbiAgICBtb2RlIHw9IFByb2ZpbGVNb2RlO1xuICB9XG5cbiAgcmV0dXJuIGNyZWF0ZUZpYmVyKEhvc3RSb290LCBudWxsLCBudWxsLCBtb2RlKTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUZpYmVyRnJvbVR5cGVBbmRQcm9wcyh0eXBlLCAvLyBSZWFjdCRFbGVtZW50VHlwZVxua2V5LCBwZW5kaW5nUHJvcHMsIG93bmVyLCBtb2RlLCBsYW5lcykge1xuICB2YXIgZmliZXJUYWcgPSBJbmRldGVybWluYXRlQ29tcG9uZW50OyAvLyBUaGUgcmVzb2x2ZWQgdHlwZSBpcyBzZXQgaWYgd2Uga25vdyB3aGF0IHRoZSBmaW5hbCB0eXBlIHdpbGwgYmUuIEkuZS4gaXQncyBub3QgbGF6eS5cblxuICB2YXIgcmVzb2x2ZWRUeXBlID0gdHlwZTtcblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICBpZiAoc2hvdWxkQ29uc3RydWN0JDEodHlwZSkpIHtcbiAgICAgIGZpYmVyVGFnID0gQ2xhc3NDb21wb25lbnQ7XG5cbiAgICAgIHtcbiAgICAgICAgcmVzb2x2ZWRUeXBlID0gcmVzb2x2ZUNsYXNzRm9ySG90UmVsb2FkaW5nKHJlc29sdmVkVHlwZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHtcbiAgICAgICAgcmVzb2x2ZWRUeXBlID0gcmVzb2x2ZUZ1bmN0aW9uRm9ySG90UmVsb2FkaW5nKHJlc29sdmVkVHlwZSk7XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2UgaWYgKHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJykge1xuICAgIGZpYmVyVGFnID0gSG9zdENvbXBvbmVudDtcbiAgfSBlbHNlIHtcbiAgICBnZXRUYWc6IHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSBSRUFDVF9GUkFHTUVOVF9UWVBFOlxuICAgICAgICByZXR1cm4gY3JlYXRlRmliZXJGcm9tRnJhZ21lbnQocGVuZGluZ1Byb3BzLmNoaWxkcmVuLCBtb2RlLCBsYW5lcywga2V5KTtcblxuICAgICAgY2FzZSBSRUFDVF9ERUJVR19UUkFDSU5HX01PREVfVFlQRTpcbiAgICAgICAgZmliZXJUYWcgPSBNb2RlO1xuICAgICAgICBtb2RlIHw9IERlYnVnVHJhY2luZ01vZGU7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFJFQUNUX1NUUklDVF9NT0RFX1RZUEU6XG4gICAgICAgIGZpYmVyVGFnID0gTW9kZTtcbiAgICAgICAgbW9kZSB8PSBTdHJpY3RNb2RlO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBSRUFDVF9QUk9GSUxFUl9UWVBFOlxuICAgICAgICByZXR1cm4gY3JlYXRlRmliZXJGcm9tUHJvZmlsZXIocGVuZGluZ1Byb3BzLCBtb2RlLCBsYW5lcywga2V5KTtcblxuICAgICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9UWVBFOlxuICAgICAgICByZXR1cm4gY3JlYXRlRmliZXJGcm9tU3VzcGVuc2UocGVuZGluZ1Byb3BzLCBtb2RlLCBsYW5lcywga2V5KTtcblxuICAgICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEU6XG4gICAgICAgIHJldHVybiBjcmVhdGVGaWJlckZyb21TdXNwZW5zZUxpc3QocGVuZGluZ1Byb3BzLCBtb2RlLCBsYW5lcywga2V5KTtcblxuICAgICAgY2FzZSBSRUFDVF9PRkZTQ1JFRU5fVFlQRTpcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUZpYmVyRnJvbU9mZnNjcmVlbihwZW5kaW5nUHJvcHMsIG1vZGUsIGxhbmVzLCBrZXkpO1xuXG4gICAgICBjYXNlIFJFQUNUX0xFR0FDWV9ISURERU5fVFlQRTpcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUZpYmVyRnJvbUxlZ2FjeUhpZGRlbihwZW5kaW5nUHJvcHMsIG1vZGUsIGxhbmVzLCBrZXkpO1xuXG4gICAgICBjYXNlIFJFQUNUX1NDT1BFX1RZUEU6XG5cbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1mYWxsdGhyb3VnaFxuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB7XG4gICAgICAgICAgaWYgKHR5cGVvZiB0eXBlID09PSAnb2JqZWN0JyAmJiB0eXBlICE9PSBudWxsKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHR5cGUuJCR0eXBlb2YpIHtcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9QUk9WSURFUl9UWVBFOlxuICAgICAgICAgICAgICAgIGZpYmVyVGFnID0gQ29udGV4dFByb3ZpZGVyO1xuICAgICAgICAgICAgICAgIGJyZWFrIGdldFRhZztcblxuICAgICAgICAgICAgICBjYXNlIFJFQUNUX0NPTlRFWFRfVFlQRTpcbiAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIGEgY29uc3VtZXJcbiAgICAgICAgICAgICAgICBmaWJlclRhZyA9IENvbnRleHRDb25zdW1lcjtcbiAgICAgICAgICAgICAgICBicmVhayBnZXRUYWc7XG5cbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFOlxuICAgICAgICAgICAgICAgIGZpYmVyVGFnID0gRm9yd2FyZFJlZjtcblxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIHJlc29sdmVkVHlwZSA9IHJlc29sdmVGb3J3YXJkUmVmRm9ySG90UmVsb2FkaW5nKHJlc29sdmVkVHlwZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgYnJlYWsgZ2V0VGFnO1xuXG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOlxuICAgICAgICAgICAgICAgIGZpYmVyVGFnID0gTWVtb0NvbXBvbmVudDtcbiAgICAgICAgICAgICAgICBicmVhayBnZXRUYWc7XG5cbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgICAgICAgICAgZmliZXJUYWcgPSBMYXp5Q29tcG9uZW50O1xuICAgICAgICAgICAgICAgIHJlc29sdmVkVHlwZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgYnJlYWsgZ2V0VGFnO1xuXG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfQkxPQ0tfVFlQRTpcbiAgICAgICAgICAgICAgICBmaWJlclRhZyA9IEJsb2NrO1xuICAgICAgICAgICAgICAgIGJyZWFrIGdldFRhZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICB2YXIgaW5mbyA9ICcnO1xuXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWYgKHR5cGUgPT09IHVuZGVmaW5lZCB8fCB0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcgJiYgdHlwZSAhPT0gbnVsbCAmJiBPYmplY3Qua2V5cyh0eXBlKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgaW5mbyArPSAnIFlvdSBsaWtlbHkgZm9yZ290IHRvIGV4cG9ydCB5b3VyIGNvbXBvbmVudCBmcm9tIHRoZSBmaWxlICcgKyBcIml0J3MgZGVmaW5lZCBpbiwgb3IgeW91IG1pZ2h0IGhhdmUgbWl4ZWQgdXAgZGVmYXVsdCBhbmQgXCIgKyAnbmFtZWQgaW1wb3J0cy4nO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgb3duZXJOYW1lID0gb3duZXIgPyBnZXRDb21wb25lbnROYW1lKG93bmVyLnR5cGUpIDogbnVsbDtcblxuICAgICAgICAgICAgaWYgKG93bmVyTmFtZSkge1xuICAgICAgICAgICAgICBpbmZvICs9ICdcXG5cXG5DaGVjayB0aGUgcmVuZGVyIG1ldGhvZCBvZiBgJyArIG93bmVyTmFtZSArICdgLic7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAge1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aHJvdyBFcnJvciggXCJFbGVtZW50IHR5cGUgaXMgaW52YWxpZDogZXhwZWN0ZWQgYSBzdHJpbmcgKGZvciBidWlsdC1pbiBjb21wb25lbnRzKSBvciBhIGNsYXNzL2Z1bmN0aW9uIChmb3IgY29tcG9zaXRlIGNvbXBvbmVudHMpIGJ1dCBnb3Q6IFwiICsgKHR5cGUgPT0gbnVsbCA/IHR5cGUgOiB0eXBlb2YgdHlwZSkgKyBcIi5cIiArIGluZm8gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gIH1cblxuICB2YXIgZmliZXIgPSBjcmVhdGVGaWJlcihmaWJlclRhZywgcGVuZGluZ1Byb3BzLCBrZXksIG1vZGUpO1xuICBmaWJlci5lbGVtZW50VHlwZSA9IHR5cGU7XG4gIGZpYmVyLnR5cGUgPSByZXNvbHZlZFR5cGU7XG4gIGZpYmVyLmxhbmVzID0gbGFuZXM7XG5cbiAge1xuICAgIGZpYmVyLl9kZWJ1Z093bmVyID0gb3duZXI7XG4gIH1cblxuICByZXR1cm4gZmliZXI7XG59XG5mdW5jdGlvbiBjcmVhdGVGaWJlckZyb21FbGVtZW50KGVsZW1lbnQsIG1vZGUsIGxhbmVzKSB7XG4gIHZhciBvd25lciA9IG51bGw7XG5cbiAge1xuICAgIG93bmVyID0gZWxlbWVudC5fb3duZXI7XG4gIH1cblxuICB2YXIgdHlwZSA9IGVsZW1lbnQudHlwZTtcbiAgdmFyIGtleSA9IGVsZW1lbnQua2V5O1xuICB2YXIgcGVuZGluZ1Byb3BzID0gZWxlbWVudC5wcm9wcztcbiAgdmFyIGZpYmVyID0gY3JlYXRlRmliZXJGcm9tVHlwZUFuZFByb3BzKHR5cGUsIGtleSwgcGVuZGluZ1Byb3BzLCBvd25lciwgbW9kZSwgbGFuZXMpO1xuXG4gIHtcbiAgICBmaWJlci5fZGVidWdTb3VyY2UgPSBlbGVtZW50Ll9zb3VyY2U7XG4gICAgZmliZXIuX2RlYnVnT3duZXIgPSBlbGVtZW50Ll9vd25lcjtcbiAgfVxuXG4gIHJldHVybiBmaWJlcjtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUZpYmVyRnJvbUZyYWdtZW50KGVsZW1lbnRzLCBtb2RlLCBsYW5lcywga2V5KSB7XG4gIHZhciBmaWJlciA9IGNyZWF0ZUZpYmVyKEZyYWdtZW50LCBlbGVtZW50cywga2V5LCBtb2RlKTtcbiAgZmliZXIubGFuZXMgPSBsYW5lcztcbiAgcmV0dXJuIGZpYmVyO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVGaWJlckZyb21Qcm9maWxlcihwZW5kaW5nUHJvcHMsIG1vZGUsIGxhbmVzLCBrZXkpIHtcbiAge1xuICAgIGlmICh0eXBlb2YgcGVuZGluZ1Byb3BzLmlkICE9PSAnc3RyaW5nJykge1xuICAgICAgZXJyb3IoJ1Byb2ZpbGVyIG11c3Qgc3BlY2lmeSBhbiBcImlkXCIgYXMgYSBwcm9wJyk7XG4gICAgfVxuICB9XG5cbiAgdmFyIGZpYmVyID0gY3JlYXRlRmliZXIoUHJvZmlsZXIsIHBlbmRpbmdQcm9wcywga2V5LCBtb2RlIHwgUHJvZmlsZU1vZGUpOyAvLyBUT0RPOiBUaGUgUHJvZmlsZXIgZmliZXIgc2hvdWxkbid0IGhhdmUgYSB0eXBlLiBJdCBoYXMgYSB0YWcuXG5cbiAgZmliZXIuZWxlbWVudFR5cGUgPSBSRUFDVF9QUk9GSUxFUl9UWVBFO1xuICBmaWJlci50eXBlID0gUkVBQ1RfUFJPRklMRVJfVFlQRTtcbiAgZmliZXIubGFuZXMgPSBsYW5lcztcblxuICB7XG4gICAgZmliZXIuc3RhdGVOb2RlID0ge1xuICAgICAgZWZmZWN0RHVyYXRpb246IDAsXG4gICAgICBwYXNzaXZlRWZmZWN0RHVyYXRpb246IDBcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIGZpYmVyO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVGaWJlckZyb21TdXNwZW5zZShwZW5kaW5nUHJvcHMsIG1vZGUsIGxhbmVzLCBrZXkpIHtcbiAgdmFyIGZpYmVyID0gY3JlYXRlRmliZXIoU3VzcGVuc2VDb21wb25lbnQsIHBlbmRpbmdQcm9wcywga2V5LCBtb2RlKTsgLy8gVE9ETzogVGhlIFN1c3BlbnNlQ29tcG9uZW50IGZpYmVyIHNob3VsZG4ndCBoYXZlIGEgdHlwZS4gSXQgaGFzIGEgdGFnLlxuICAvLyBUaGlzIG5lZWRzIHRvIGJlIGZpeGVkIGluIGdldENvbXBvbmVudE5hbWUgc28gdGhhdCBpdCByZWxpZXMgb24gdGhlIHRhZ1xuICAvLyBpbnN0ZWFkLlxuXG4gIGZpYmVyLnR5cGUgPSBSRUFDVF9TVVNQRU5TRV9UWVBFO1xuICBmaWJlci5lbGVtZW50VHlwZSA9IFJFQUNUX1NVU1BFTlNFX1RZUEU7XG4gIGZpYmVyLmxhbmVzID0gbGFuZXM7XG4gIHJldHVybiBmaWJlcjtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUZpYmVyRnJvbVN1c3BlbnNlTGlzdChwZW5kaW5nUHJvcHMsIG1vZGUsIGxhbmVzLCBrZXkpIHtcbiAgdmFyIGZpYmVyID0gY3JlYXRlRmliZXIoU3VzcGVuc2VMaXN0Q29tcG9uZW50LCBwZW5kaW5nUHJvcHMsIGtleSwgbW9kZSk7XG5cbiAge1xuICAgIC8vIFRPRE86IFRoZSBTdXNwZW5zZUxpc3RDb21wb25lbnQgZmliZXIgc2hvdWxkbid0IGhhdmUgYSB0eXBlLiBJdCBoYXMgYSB0YWcuXG4gICAgLy8gVGhpcyBuZWVkcyB0byBiZSBmaXhlZCBpbiBnZXRDb21wb25lbnROYW1lIHNvIHRoYXQgaXQgcmVsaWVzIG9uIHRoZSB0YWdcbiAgICAvLyBpbnN0ZWFkLlxuICAgIGZpYmVyLnR5cGUgPSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEU7XG4gIH1cblxuICBmaWJlci5lbGVtZW50VHlwZSA9IFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRTtcbiAgZmliZXIubGFuZXMgPSBsYW5lcztcbiAgcmV0dXJuIGZpYmVyO1xufVxuZnVuY3Rpb24gY3JlYXRlRmliZXJGcm9tT2Zmc2NyZWVuKHBlbmRpbmdQcm9wcywgbW9kZSwgbGFuZXMsIGtleSkge1xuICB2YXIgZmliZXIgPSBjcmVhdGVGaWJlcihPZmZzY3JlZW5Db21wb25lbnQsIHBlbmRpbmdQcm9wcywga2V5LCBtb2RlKTsgLy8gVE9ETzogVGhlIE9mZnNjcmVlbkNvbXBvbmVudCBmaWJlciBzaG91bGRuJ3QgaGF2ZSBhIHR5cGUuIEl0IGhhcyBhIHRhZy5cbiAgLy8gVGhpcyBuZWVkcyB0byBiZSBmaXhlZCBpbiBnZXRDb21wb25lbnROYW1lIHNvIHRoYXQgaXQgcmVsaWVzIG9uIHRoZSB0YWdcbiAgLy8gaW5zdGVhZC5cblxuICB7XG4gICAgZmliZXIudHlwZSA9IFJFQUNUX09GRlNDUkVFTl9UWVBFO1xuICB9XG5cbiAgZmliZXIuZWxlbWVudFR5cGUgPSBSRUFDVF9PRkZTQ1JFRU5fVFlQRTtcbiAgZmliZXIubGFuZXMgPSBsYW5lcztcbiAgcmV0dXJuIGZpYmVyO1xufVxuZnVuY3Rpb24gY3JlYXRlRmliZXJGcm9tTGVnYWN5SGlkZGVuKHBlbmRpbmdQcm9wcywgbW9kZSwgbGFuZXMsIGtleSkge1xuICB2YXIgZmliZXIgPSBjcmVhdGVGaWJlcihMZWdhY3lIaWRkZW5Db21wb25lbnQsIHBlbmRpbmdQcm9wcywga2V5LCBtb2RlKTsgLy8gVE9ETzogVGhlIExlZ2FjeUhpZGRlbiBmaWJlciBzaG91bGRuJ3QgaGF2ZSBhIHR5cGUuIEl0IGhhcyBhIHRhZy5cbiAgLy8gVGhpcyBuZWVkcyB0byBiZSBmaXhlZCBpbiBnZXRDb21wb25lbnROYW1lIHNvIHRoYXQgaXQgcmVsaWVzIG9uIHRoZSB0YWdcbiAgLy8gaW5zdGVhZC5cblxuICB7XG4gICAgZmliZXIudHlwZSA9IFJFQUNUX0xFR0FDWV9ISURERU5fVFlQRTtcbiAgfVxuXG4gIGZpYmVyLmVsZW1lbnRUeXBlID0gUkVBQ1RfTEVHQUNZX0hJRERFTl9UWVBFO1xuICBmaWJlci5sYW5lcyA9IGxhbmVzO1xuICByZXR1cm4gZmliZXI7XG59XG5mdW5jdGlvbiBjcmVhdGVGaWJlckZyb21UZXh0KGNvbnRlbnQsIG1vZGUsIGxhbmVzKSB7XG4gIHZhciBmaWJlciA9IGNyZWF0ZUZpYmVyKEhvc3RUZXh0LCBjb250ZW50LCBudWxsLCBtb2RlKTtcbiAgZmliZXIubGFuZXMgPSBsYW5lcztcbiAgcmV0dXJuIGZpYmVyO1xufVxuZnVuY3Rpb24gY3JlYXRlRmliZXJGcm9tSG9zdEluc3RhbmNlRm9yRGVsZXRpb24oKSB7XG4gIHZhciBmaWJlciA9IGNyZWF0ZUZpYmVyKEhvc3RDb21wb25lbnQsIG51bGwsIG51bGwsIE5vTW9kZSk7IC8vIFRPRE86IFRoZXNlIHNob3VsZCBub3QgbmVlZCBhIHR5cGUuXG5cbiAgZmliZXIuZWxlbWVudFR5cGUgPSAnREVMRVRFRCc7XG4gIGZpYmVyLnR5cGUgPSAnREVMRVRFRCc7XG4gIHJldHVybiBmaWJlcjtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUZpYmVyRnJvbVBvcnRhbChwb3J0YWwsIG1vZGUsIGxhbmVzKSB7XG4gIHZhciBwZW5kaW5nUHJvcHMgPSBwb3J0YWwuY2hpbGRyZW4gIT09IG51bGwgPyBwb3J0YWwuY2hpbGRyZW4gOiBbXTtcbiAgdmFyIGZpYmVyID0gY3JlYXRlRmliZXIoSG9zdFBvcnRhbCwgcGVuZGluZ1Byb3BzLCBwb3J0YWwua2V5LCBtb2RlKTtcbiAgZmliZXIubGFuZXMgPSBsYW5lcztcbiAgZmliZXIuc3RhdGVOb2RlID0ge1xuICAgIGNvbnRhaW5lckluZm86IHBvcnRhbC5jb250YWluZXJJbmZvLFxuICAgIHBlbmRpbmdDaGlsZHJlbjogbnVsbCxcbiAgICAvLyBVc2VkIGJ5IHBlcnNpc3RlbnQgdXBkYXRlc1xuICAgIGltcGxlbWVudGF0aW9uOiBwb3J0YWwuaW1wbGVtZW50YXRpb25cbiAgfTtcbiAgcmV0dXJuIGZpYmVyO1xufSAvLyBVc2VkIGZvciBzdGFzaGluZyBXSVAgcHJvcGVydGllcyB0byByZXBsYXkgZmFpbGVkIHdvcmsgaW4gREVWLlxuXG5mdW5jdGlvbiBhc3NpZ25GaWJlclByb3BlcnRpZXNJbkRFVih0YXJnZXQsIHNvdXJjZSkge1xuICBpZiAodGFyZ2V0ID09PSBudWxsKSB7XG4gICAgLy8gVGhpcyBGaWJlcidzIGluaXRpYWwgcHJvcGVydGllcyB3aWxsIGFsd2F5cyBiZSBvdmVyd3JpdHRlbi5cbiAgICAvLyBXZSBvbmx5IHVzZSBhIEZpYmVyIHRvIGVuc3VyZSB0aGUgc2FtZSBoaWRkZW4gY2xhc3Mgc28gREVWIGlzbid0IHNsb3cuXG4gICAgdGFyZ2V0ID0gY3JlYXRlRmliZXIoSW5kZXRlcm1pbmF0ZUNvbXBvbmVudCwgbnVsbCwgbnVsbCwgTm9Nb2RlKTtcbiAgfSAvLyBUaGlzIGlzIGludGVudGlvbmFsbHkgd3JpdHRlbiBhcyBhIGxpc3Qgb2YgYWxsIHByb3BlcnRpZXMuXG4gIC8vIFdlIHRyaWVkIHRvIHVzZSBPYmplY3QuYXNzaWduKCkgaW5zdGVhZCBidXQgdGhpcyBpcyBjYWxsZWQgaW5cbiAgLy8gdGhlIGhvdHRlc3QgcGF0aCwgYW5kIE9iamVjdC5hc3NpZ24oKSB3YXMgdG9vIHNsb3c6XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMTI1MDJcbiAgLy8gVGhpcyBjb2RlIGlzIERFVi1vbmx5IHNvIHNpemUgaXMgbm90IGEgY29uY2Vybi5cblxuXG4gIHRhcmdldC50YWcgPSBzb3VyY2UudGFnO1xuICB0YXJnZXQua2V5ID0gc291cmNlLmtleTtcbiAgdGFyZ2V0LmVsZW1lbnRUeXBlID0gc291cmNlLmVsZW1lbnRUeXBlO1xuICB0YXJnZXQudHlwZSA9IHNvdXJjZS50eXBlO1xuICB0YXJnZXQuc3RhdGVOb2RlID0gc291cmNlLnN0YXRlTm9kZTtcbiAgdGFyZ2V0LnJldHVybiA9IHNvdXJjZS5yZXR1cm47XG4gIHRhcmdldC5jaGlsZCA9IHNvdXJjZS5jaGlsZDtcbiAgdGFyZ2V0LnNpYmxpbmcgPSBzb3VyY2Uuc2libGluZztcbiAgdGFyZ2V0LmluZGV4ID0gc291cmNlLmluZGV4O1xuICB0YXJnZXQucmVmID0gc291cmNlLnJlZjtcbiAgdGFyZ2V0LnBlbmRpbmdQcm9wcyA9IHNvdXJjZS5wZW5kaW5nUHJvcHM7XG4gIHRhcmdldC5tZW1vaXplZFByb3BzID0gc291cmNlLm1lbW9pemVkUHJvcHM7XG4gIHRhcmdldC51cGRhdGVRdWV1ZSA9IHNvdXJjZS51cGRhdGVRdWV1ZTtcbiAgdGFyZ2V0Lm1lbW9pemVkU3RhdGUgPSBzb3VyY2UubWVtb2l6ZWRTdGF0ZTtcbiAgdGFyZ2V0LmRlcGVuZGVuY2llcyA9IHNvdXJjZS5kZXBlbmRlbmNpZXM7XG4gIHRhcmdldC5tb2RlID0gc291cmNlLm1vZGU7XG4gIHRhcmdldC5mbGFncyA9IHNvdXJjZS5mbGFncztcbiAgdGFyZ2V0Lm5leHRFZmZlY3QgPSBzb3VyY2UubmV4dEVmZmVjdDtcbiAgdGFyZ2V0LmZpcnN0RWZmZWN0ID0gc291cmNlLmZpcnN0RWZmZWN0O1xuICB0YXJnZXQubGFzdEVmZmVjdCA9IHNvdXJjZS5sYXN0RWZmZWN0O1xuICB0YXJnZXQubGFuZXMgPSBzb3VyY2UubGFuZXM7XG4gIHRhcmdldC5jaGlsZExhbmVzID0gc291cmNlLmNoaWxkTGFuZXM7XG4gIHRhcmdldC5hbHRlcm5hdGUgPSBzb3VyY2UuYWx0ZXJuYXRlO1xuXG4gIHtcbiAgICB0YXJnZXQuYWN0dWFsRHVyYXRpb24gPSBzb3VyY2UuYWN0dWFsRHVyYXRpb247XG4gICAgdGFyZ2V0LmFjdHVhbFN0YXJ0VGltZSA9IHNvdXJjZS5hY3R1YWxTdGFydFRpbWU7XG4gICAgdGFyZ2V0LnNlbGZCYXNlRHVyYXRpb24gPSBzb3VyY2Uuc2VsZkJhc2VEdXJhdGlvbjtcbiAgICB0YXJnZXQudHJlZUJhc2VEdXJhdGlvbiA9IHNvdXJjZS50cmVlQmFzZUR1cmF0aW9uO1xuICB9XG5cbiAgdGFyZ2V0Ll9kZWJ1Z0lEID0gc291cmNlLl9kZWJ1Z0lEO1xuICB0YXJnZXQuX2RlYnVnU291cmNlID0gc291cmNlLl9kZWJ1Z1NvdXJjZTtcbiAgdGFyZ2V0Ll9kZWJ1Z093bmVyID0gc291cmNlLl9kZWJ1Z093bmVyO1xuICB0YXJnZXQuX2RlYnVnTmVlZHNSZW1vdW50ID0gc291cmNlLl9kZWJ1Z05lZWRzUmVtb3VudDtcbiAgdGFyZ2V0Ll9kZWJ1Z0hvb2tUeXBlcyA9IHNvdXJjZS5fZGVidWdIb29rVHlwZXM7XG4gIHJldHVybiB0YXJnZXQ7XG59XG5cbmZ1bmN0aW9uIEZpYmVyUm9vdE5vZGUoY29udGFpbmVySW5mbywgdGFnLCBoeWRyYXRlKSB7XG4gIHRoaXMudGFnID0gdGFnO1xuICB0aGlzLmNvbnRhaW5lckluZm8gPSBjb250YWluZXJJbmZvO1xuICB0aGlzLnBlbmRpbmdDaGlsZHJlbiA9IG51bGw7XG4gIHRoaXMuY3VycmVudCA9IG51bGw7XG4gIHRoaXMucGluZ0NhY2hlID0gbnVsbDtcbiAgdGhpcy5maW5pc2hlZFdvcmsgPSBudWxsO1xuICB0aGlzLnRpbWVvdXRIYW5kbGUgPSBub1RpbWVvdXQ7XG4gIHRoaXMuY29udGV4dCA9IG51bGw7XG4gIHRoaXMucGVuZGluZ0NvbnRleHQgPSBudWxsO1xuICB0aGlzLmh5ZHJhdGUgPSBoeWRyYXRlO1xuICB0aGlzLmNhbGxiYWNrTm9kZSA9IG51bGw7XG4gIHRoaXMuY2FsbGJhY2tQcmlvcml0eSA9IE5vTGFuZVByaW9yaXR5O1xuICB0aGlzLmV2ZW50VGltZXMgPSBjcmVhdGVMYW5lTWFwKE5vTGFuZXMpO1xuICB0aGlzLmV4cGlyYXRpb25UaW1lcyA9IGNyZWF0ZUxhbmVNYXAoTm9UaW1lc3RhbXApO1xuICB0aGlzLnBlbmRpbmdMYW5lcyA9IE5vTGFuZXM7XG4gIHRoaXMuc3VzcGVuZGVkTGFuZXMgPSBOb0xhbmVzO1xuICB0aGlzLnBpbmdlZExhbmVzID0gTm9MYW5lcztcbiAgdGhpcy5leHBpcmVkTGFuZXMgPSBOb0xhbmVzO1xuICB0aGlzLm11dGFibGVSZWFkTGFuZXMgPSBOb0xhbmVzO1xuICB0aGlzLmZpbmlzaGVkTGFuZXMgPSBOb0xhbmVzO1xuICB0aGlzLmVudGFuZ2xlZExhbmVzID0gTm9MYW5lcztcbiAgdGhpcy5lbnRhbmdsZW1lbnRzID0gY3JlYXRlTGFuZU1hcChOb0xhbmVzKTtcblxuICB7XG4gICAgdGhpcy5tdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhID0gbnVsbDtcbiAgfVxuXG4gIHtcbiAgICB0aGlzLmludGVyYWN0aW9uVGhyZWFkSUQgPSB0cmFjaW5nLnVuc3RhYmxlX2dldFRocmVhZElEKCk7XG4gICAgdGhpcy5tZW1vaXplZEludGVyYWN0aW9ucyA9IG5ldyBTZXQoKTtcbiAgICB0aGlzLnBlbmRpbmdJbnRlcmFjdGlvbk1hcCA9IG5ldyBNYXAoKTtcbiAgfVxuXG4gIHtcbiAgICBzd2l0Y2ggKHRhZykge1xuICAgICAgY2FzZSBCbG9ja2luZ1Jvb3Q6XG4gICAgICAgIHRoaXMuX2RlYnVnUm9vdFR5cGUgPSAnY3JlYXRlQmxvY2tpbmdSb290KCknO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBDb25jdXJyZW50Um9vdDpcbiAgICAgICAgdGhpcy5fZGVidWdSb290VHlwZSA9ICdjcmVhdGVSb290KCknO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBMZWdhY3lSb290OlxuICAgICAgICB0aGlzLl9kZWJ1Z1Jvb3RUeXBlID0gJ2NyZWF0ZUxlZ2FjeVJvb3QoKSc7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjcmVhdGVGaWJlclJvb3QoY29udGFpbmVySW5mbywgdGFnLCBoeWRyYXRlLCBoeWRyYXRpb25DYWxsYmFja3MpIHtcbiAgdmFyIHJvb3QgPSBuZXcgRmliZXJSb290Tm9kZShjb250YWluZXJJbmZvLCB0YWcsIGh5ZHJhdGUpO1xuICAvLyBzdGF0ZU5vZGUgaXMgYW55LlxuXG5cbiAgdmFyIHVuaW5pdGlhbGl6ZWRGaWJlciA9IGNyZWF0ZUhvc3RSb290RmliZXIodGFnKTtcbiAgcm9vdC5jdXJyZW50ID0gdW5pbml0aWFsaXplZEZpYmVyO1xuICB1bmluaXRpYWxpemVkRmliZXIuc3RhdGVOb2RlID0gcm9vdDtcbiAgaW5pdGlhbGl6ZVVwZGF0ZVF1ZXVlKHVuaW5pdGlhbGl6ZWRGaWJlcik7XG4gIHJldHVybiByb290O1xufVxuXG4vLyBUaGlzIGVuc3VyZXMgdGhhdCB0aGUgdmVyc2lvbiB1c2VkIGZvciBzZXJ2ZXIgcmVuZGVyaW5nIG1hdGNoZXMgdGhlIG9uZVxuLy8gdGhhdCBpcyBldmVudHVhbGx5IHJlYWQgZHVyaW5nIGh5ZHJhdGlvbi5cbi8vIElmIHRoZXkgZG9uJ3QgbWF0Y2ggdGhlcmUncyBhIHBvdGVudGlhbCB0ZWFyIGFuZCBhIGZ1bGwgZGVvcHQgcmVuZGVyIGlzIHJlcXVpcmVkLlxuXG5mdW5jdGlvbiByZWdpc3Rlck11dGFibGVTb3VyY2VGb3JIeWRyYXRpb24ocm9vdCwgbXV0YWJsZVNvdXJjZSkge1xuICB2YXIgZ2V0VmVyc2lvbiA9IG11dGFibGVTb3VyY2UuX2dldFZlcnNpb247XG4gIHZhciB2ZXJzaW9uID0gZ2V0VmVyc2lvbihtdXRhYmxlU291cmNlLl9zb3VyY2UpOyAvLyBUT0RPIENsZWFyIHRoaXMgZGF0YSBvbmNlIGFsbCBwZW5kaW5nIGh5ZHJhdGlvbiB3b3JrIGlzIGZpbmlzaGVkLlxuICAvLyBSZXRhaW5pbmcgaXQgZm9yZXZlciBtYXkgaW50ZXJmZXJlIHdpdGggR0MuXG5cbiAgaWYgKHJvb3QubXV0YWJsZVNvdXJjZUVhZ2VySHlkcmF0aW9uRGF0YSA9PSBudWxsKSB7XG4gICAgcm9vdC5tdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhID0gW211dGFibGVTb3VyY2UsIHZlcnNpb25dO1xuICB9IGVsc2Uge1xuICAgIHJvb3QubXV0YWJsZVNvdXJjZUVhZ2VySHlkcmF0aW9uRGF0YS5wdXNoKG11dGFibGVTb3VyY2UsIHZlcnNpb24pO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVBvcnRhbChjaGlsZHJlbiwgY29udGFpbmVySW5mbywgLy8gVE9ETzogZmlndXJlIG91dCB0aGUgQVBJIGZvciBjcm9zcy1yZW5kZXJlciBpbXBsZW1lbnRhdGlvbi5cbmltcGxlbWVudGF0aW9uKSB7XG4gIHZhciBrZXkgPSBhcmd1bWVudHMubGVuZ3RoID4gMyAmJiBhcmd1bWVudHNbM10gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1szXSA6IG51bGw7XG4gIHJldHVybiB7XG4gICAgLy8gVGhpcyB0YWcgYWxsb3cgdXMgdG8gdW5pcXVlbHkgaWRlbnRpZnkgdGhpcyBhcyBhIFJlYWN0IFBvcnRhbFxuICAgICQkdHlwZW9mOiBSRUFDVF9QT1JUQUxfVFlQRSxcbiAgICBrZXk6IGtleSA9PSBudWxsID8gbnVsbCA6ICcnICsga2V5LFxuICAgIGNoaWxkcmVuOiBjaGlsZHJlbixcbiAgICBjb250YWluZXJJbmZvOiBjb250YWluZXJJbmZvLFxuICAgIGltcGxlbWVudGF0aW9uOiBpbXBsZW1lbnRhdGlvblxuICB9O1xufVxuXG52YXIgZGlkV2FybkFib3V0TmVzdGVkVXBkYXRlcztcbnZhciBkaWRXYXJuQWJvdXRGaW5kTm9kZUluU3RyaWN0TW9kZTtcblxue1xuICBkaWRXYXJuQWJvdXROZXN0ZWRVcGRhdGVzID0gZmFsc2U7XG4gIGRpZFdhcm5BYm91dEZpbmROb2RlSW5TdHJpY3RNb2RlID0ge307XG59XG5cbmZ1bmN0aW9uIGdldENvbnRleHRGb3JTdWJ0cmVlKHBhcmVudENvbXBvbmVudCkge1xuICBpZiAoIXBhcmVudENvbXBvbmVudCkge1xuICAgIHJldHVybiBlbXB0eUNvbnRleHRPYmplY3Q7XG4gIH1cblxuICB2YXIgZmliZXIgPSBnZXQocGFyZW50Q29tcG9uZW50KTtcbiAgdmFyIHBhcmVudENvbnRleHQgPSBmaW5kQ3VycmVudFVubWFza2VkQ29udGV4dChmaWJlcik7XG5cbiAgaWYgKGZpYmVyLnRhZyA9PT0gQ2xhc3NDb21wb25lbnQpIHtcbiAgICB2YXIgQ29tcG9uZW50ID0gZmliZXIudHlwZTtcblxuICAgIGlmIChpc0NvbnRleHRQcm92aWRlcihDb21wb25lbnQpKSB7XG4gICAgICByZXR1cm4gcHJvY2Vzc0NoaWxkQ29udGV4dChmaWJlciwgQ29tcG9uZW50LCBwYXJlbnRDb250ZXh0KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcGFyZW50Q29udGV4dDtcbn1cblxuZnVuY3Rpb24gZmluZEhvc3RJbnN0YW5jZVdpdGhXYXJuaW5nKGNvbXBvbmVudCwgbWV0aG9kTmFtZSkge1xuICB7XG4gICAgdmFyIGZpYmVyID0gZ2V0KGNvbXBvbmVudCk7XG5cbiAgICBpZiAoZmliZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHR5cGVvZiBjb21wb25lbnQucmVuZGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvciggXCJVbmFibGUgdG8gZmluZCBub2RlIG9uIGFuIHVubW91bnRlZCBjb21wb25lbnQuXCIgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvciggXCJBcmd1bWVudCBhcHBlYXJzIHRvIG5vdCBiZSBhIFJlYWN0Q29tcG9uZW50LiBLZXlzOiBcIiArIE9iamVjdC5rZXlzKGNvbXBvbmVudCkgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgaG9zdEZpYmVyID0gZmluZEN1cnJlbnRIb3N0RmliZXIoZmliZXIpO1xuXG4gICAgaWYgKGhvc3RGaWJlciA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKGhvc3RGaWJlci5tb2RlICYgU3RyaWN0TW9kZSkge1xuICAgICAgdmFyIGNvbXBvbmVudE5hbWUgPSBnZXRDb21wb25lbnROYW1lKGZpYmVyLnR5cGUpIHx8ICdDb21wb25lbnQnO1xuXG4gICAgICBpZiAoIWRpZFdhcm5BYm91dEZpbmROb2RlSW5TdHJpY3RNb2RlW2NvbXBvbmVudE5hbWVdKSB7XG4gICAgICAgIGRpZFdhcm5BYm91dEZpbmROb2RlSW5TdHJpY3RNb2RlW2NvbXBvbmVudE5hbWVdID0gdHJ1ZTtcbiAgICAgICAgdmFyIHByZXZpb3VzRmliZXIgPSBjdXJyZW50O1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgc2V0Q3VycmVudEZpYmVyKGhvc3RGaWJlcik7XG5cbiAgICAgICAgICBpZiAoZmliZXIubW9kZSAmIFN0cmljdE1vZGUpIHtcbiAgICAgICAgICAgIGVycm9yKCclcyBpcyBkZXByZWNhdGVkIGluIFN0cmljdE1vZGUuICcgKyAnJXMgd2FzIHBhc3NlZCBhbiBpbnN0YW5jZSBvZiAlcyB3aGljaCBpcyBpbnNpZGUgU3RyaWN0TW9kZS4gJyArICdJbnN0ZWFkLCBhZGQgYSByZWYgZGlyZWN0bHkgdG8gdGhlIGVsZW1lbnQgeW91IHdhbnQgdG8gcmVmZXJlbmNlLiAnICsgJ0xlYXJuIG1vcmUgYWJvdXQgdXNpbmcgcmVmcyBzYWZlbHkgaGVyZTogJyArICdodHRwczovL3JlYWN0anMub3JnL2xpbmsvc3RyaWN0LW1vZGUtZmluZC1ub2RlJywgbWV0aG9kTmFtZSwgbWV0aG9kTmFtZSwgY29tcG9uZW50TmFtZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVycm9yKCclcyBpcyBkZXByZWNhdGVkIGluIFN0cmljdE1vZGUuICcgKyAnJXMgd2FzIHBhc3NlZCBhbiBpbnN0YW5jZSBvZiAlcyB3aGljaCByZW5kZXJzIFN0cmljdE1vZGUgY2hpbGRyZW4uICcgKyAnSW5zdGVhZCwgYWRkIGEgcmVmIGRpcmVjdGx5IHRvIHRoZSBlbGVtZW50IHlvdSB3YW50IHRvIHJlZmVyZW5jZS4gJyArICdMZWFybiBtb3JlIGFib3V0IHVzaW5nIHJlZnMgc2FmZWx5IGhlcmU6ICcgKyAnaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3N0cmljdC1tb2RlLWZpbmQtbm9kZScsIG1ldGhvZE5hbWUsIG1ldGhvZE5hbWUsIGNvbXBvbmVudE5hbWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAvLyBJZGVhbGx5IHRoaXMgc2hvdWxkIHJlc2V0IHRvIHByZXZpb3VzIGJ1dCB0aGlzIHNob3VsZG4ndCBiZSBjYWxsZWQgaW5cbiAgICAgICAgICAvLyByZW5kZXIgYW5kIHRoZXJlJ3MgYW5vdGhlciB3YXJuaW5nIGZvciB0aGF0IGFueXdheS5cbiAgICAgICAgICBpZiAocHJldmlvdXNGaWJlcikge1xuICAgICAgICAgICAgc2V0Q3VycmVudEZpYmVyKHByZXZpb3VzRmliZXIpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXNldEN1cnJlbnRGaWJlcigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBob3N0RmliZXIuc3RhdGVOb2RlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUNvbnRhaW5lcihjb250YWluZXJJbmZvLCB0YWcsIGh5ZHJhdGUsIGh5ZHJhdGlvbkNhbGxiYWNrcykge1xuICByZXR1cm4gY3JlYXRlRmliZXJSb290KGNvbnRhaW5lckluZm8sIHRhZywgaHlkcmF0ZSk7XG59XG5mdW5jdGlvbiB1cGRhdGVDb250YWluZXIoZWxlbWVudCwgY29udGFpbmVyLCBwYXJlbnRDb21wb25lbnQsIGNhbGxiYWNrKSB7XG4gIHtcbiAgICBvblNjaGVkdWxlUm9vdChjb250YWluZXIsIGVsZW1lbnQpO1xuICB9XG5cbiAgdmFyIGN1cnJlbnQkMSA9IGNvbnRhaW5lci5jdXJyZW50O1xuICB2YXIgZXZlbnRUaW1lID0gcmVxdWVzdEV2ZW50VGltZSgpO1xuXG4gIHtcbiAgICAvLyAkRmxvd0V4cGVjdGVkRXJyb3IgLSBqZXN0IGlzbid0IGEgZ2xvYmFsLCBhbmQgaXNuJ3QgcmVjb2duaXplZCBvdXRzaWRlIG9mIHRlc3RzXG4gICAgaWYgKCd1bmRlZmluZWQnICE9PSB0eXBlb2YgamVzdCkge1xuICAgICAgd2FybklmVW5tb2NrZWRTY2hlZHVsZXIoY3VycmVudCQxKTtcbiAgICAgIHdhcm5JZk5vdFNjb3BlZFdpdGhNYXRjaGluZ0FjdChjdXJyZW50JDEpO1xuICAgIH1cbiAgfVxuXG4gIHZhciBsYW5lID0gcmVxdWVzdFVwZGF0ZUxhbmUoY3VycmVudCQxKTtcblxuICB2YXIgY29udGV4dCA9IGdldENvbnRleHRGb3JTdWJ0cmVlKHBhcmVudENvbXBvbmVudCk7XG5cbiAgaWYgKGNvbnRhaW5lci5jb250ZXh0ID09PSBudWxsKSB7XG4gICAgY29udGFpbmVyLmNvbnRleHQgPSBjb250ZXh0O1xuICB9IGVsc2Uge1xuICAgIGNvbnRhaW5lci5wZW5kaW5nQ29udGV4dCA9IGNvbnRleHQ7XG4gIH1cblxuICB7XG4gICAgaWYgKGlzUmVuZGVyaW5nICYmIGN1cnJlbnQgIT09IG51bGwgJiYgIWRpZFdhcm5BYm91dE5lc3RlZFVwZGF0ZXMpIHtcbiAgICAgIGRpZFdhcm5BYm91dE5lc3RlZFVwZGF0ZXMgPSB0cnVlO1xuXG4gICAgICBlcnJvcignUmVuZGVyIG1ldGhvZHMgc2hvdWxkIGJlIGEgcHVyZSBmdW5jdGlvbiBvZiBwcm9wcyBhbmQgc3RhdGU7ICcgKyAndHJpZ2dlcmluZyBuZXN0ZWQgY29tcG9uZW50IHVwZGF0ZXMgZnJvbSByZW5kZXIgaXMgbm90IGFsbG93ZWQuICcgKyAnSWYgbmVjZXNzYXJ5LCB0cmlnZ2VyIG5lc3RlZCB1cGRhdGVzIGluIGNvbXBvbmVudERpZFVwZGF0ZS5cXG5cXG4nICsgJ0NoZWNrIHRoZSByZW5kZXIgbWV0aG9kIG9mICVzLicsIGdldENvbXBvbmVudE5hbWUoY3VycmVudC50eXBlKSB8fCAnVW5rbm93bicpO1xuICAgIH1cbiAgfVxuXG4gIHZhciB1cGRhdGUgPSBjcmVhdGVVcGRhdGUoZXZlbnRUaW1lLCBsYW5lKTsgLy8gQ2F1dGlvbjogUmVhY3QgRGV2VG9vbHMgY3VycmVudGx5IGRlcGVuZHMgb24gdGhpcyBwcm9wZXJ0eVxuICAvLyBiZWluZyBjYWxsZWQgXCJlbGVtZW50XCIuXG5cbiAgdXBkYXRlLnBheWxvYWQgPSB7XG4gICAgZWxlbWVudDogZWxlbWVudFxuICB9O1xuICBjYWxsYmFjayA9IGNhbGxiYWNrID09PSB1bmRlZmluZWQgPyBudWxsIDogY2FsbGJhY2s7XG5cbiAgaWYgKGNhbGxiYWNrICE9PSBudWxsKSB7XG4gICAge1xuICAgICAgaWYgKHR5cGVvZiBjYWxsYmFjayAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBlcnJvcigncmVuZGVyKC4uLik6IEV4cGVjdGVkIHRoZSBsYXN0IG9wdGlvbmFsIGBjYWxsYmFja2AgYXJndW1lbnQgdG8gYmUgYSAnICsgJ2Z1bmN0aW9uLiBJbnN0ZWFkIHJlY2VpdmVkOiAlcy4nLCBjYWxsYmFjayk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdXBkYXRlLmNhbGxiYWNrID0gY2FsbGJhY2s7XG4gIH1cblxuICBlbnF1ZXVlVXBkYXRlKGN1cnJlbnQkMSwgdXBkYXRlKTtcbiAgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKGN1cnJlbnQkMSwgbGFuZSwgZXZlbnRUaW1lKTtcbiAgcmV0dXJuIGxhbmU7XG59XG5mdW5jdGlvbiBnZXRQdWJsaWNSb290SW5zdGFuY2UoY29udGFpbmVyKSB7XG4gIHZhciBjb250YWluZXJGaWJlciA9IGNvbnRhaW5lci5jdXJyZW50O1xuXG4gIGlmICghY29udGFpbmVyRmliZXIuY2hpbGQpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHN3aXRjaCAoY29udGFpbmVyRmliZXIuY2hpbGQudGFnKSB7XG4gICAgY2FzZSBIb3N0Q29tcG9uZW50OlxuICAgICAgcmV0dXJuIGdldFB1YmxpY0luc3RhbmNlKGNvbnRhaW5lckZpYmVyLmNoaWxkLnN0YXRlTm9kZSk7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGNvbnRhaW5lckZpYmVyLmNoaWxkLnN0YXRlTm9kZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBtYXJrUmV0cnlMYW5lSW1wbChmaWJlciwgcmV0cnlMYW5lKSB7XG4gIHZhciBzdXNwZW5zZVN0YXRlID0gZmliZXIubWVtb2l6ZWRTdGF0ZTtcblxuICBpZiAoc3VzcGVuc2VTdGF0ZSAhPT0gbnVsbCAmJiBzdXNwZW5zZVN0YXRlLmRlaHlkcmF0ZWQgIT09IG51bGwpIHtcbiAgICBzdXNwZW5zZVN0YXRlLnJldHJ5TGFuZSA9IGhpZ2hlclByaW9yaXR5TGFuZShzdXNwZW5zZVN0YXRlLnJldHJ5TGFuZSwgcmV0cnlMYW5lKTtcbiAgfVxufSAvLyBJbmNyZWFzZXMgdGhlIHByaW9yaXR5IG9mIHRoZW5uYWJsZXMgd2hlbiB0aGV5IHJlc29sdmUgd2l0aGluIHRoaXMgYm91bmRhcnkuXG5cblxuZnVuY3Rpb24gbWFya1JldHJ5TGFuZUlmTm90SHlkcmF0ZWQoZmliZXIsIHJldHJ5TGFuZSkge1xuICBtYXJrUmV0cnlMYW5lSW1wbChmaWJlciwgcmV0cnlMYW5lKTtcbiAgdmFyIGFsdGVybmF0ZSA9IGZpYmVyLmFsdGVybmF0ZTtcblxuICBpZiAoYWx0ZXJuYXRlKSB7XG4gICAgbWFya1JldHJ5TGFuZUltcGwoYWx0ZXJuYXRlLCByZXRyeUxhbmUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGF0dGVtcHRVc2VyQmxvY2tpbmdIeWRyYXRpb24kMShmaWJlcikge1xuICBpZiAoZmliZXIudGFnICE9PSBTdXNwZW5zZUNvbXBvbmVudCkge1xuICAgIC8vIFdlIGlnbm9yZSBIb3N0Um9vdHMgaGVyZSBiZWNhdXNlIHdlIGNhbid0IGluY3JlYXNlXG4gICAgLy8gdGhlaXIgcHJpb3JpdHkgYW5kIHRoZXkgc2hvdWxkIG5vdCBzdXNwZW5kIG9uIEkvTyxcbiAgICAvLyBzaW5jZSB5b3UgaGF2ZSB0byB3cmFwIGFueXRoaW5nIHRoYXQgbWlnaHQgc3VzcGVuZCBpblxuICAgIC8vIFN1c3BlbnNlLlxuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciBldmVudFRpbWUgPSByZXF1ZXN0RXZlbnRUaW1lKCk7XG4gIHZhciBsYW5lID0gSW5wdXREaXNjcmV0ZUh5ZHJhdGlvbkxhbmU7XG4gIHNjaGVkdWxlVXBkYXRlT25GaWJlcihmaWJlciwgbGFuZSwgZXZlbnRUaW1lKTtcbiAgbWFya1JldHJ5TGFuZUlmTm90SHlkcmF0ZWQoZmliZXIsIGxhbmUpO1xufVxuZnVuY3Rpb24gYXR0ZW1wdENvbnRpbnVvdXNIeWRyYXRpb24kMShmaWJlcikge1xuICBpZiAoZmliZXIudGFnICE9PSBTdXNwZW5zZUNvbXBvbmVudCkge1xuICAgIC8vIFdlIGlnbm9yZSBIb3N0Um9vdHMgaGVyZSBiZWNhdXNlIHdlIGNhbid0IGluY3JlYXNlXG4gICAgLy8gdGhlaXIgcHJpb3JpdHkgYW5kIHRoZXkgc2hvdWxkIG5vdCBzdXNwZW5kIG9uIEkvTyxcbiAgICAvLyBzaW5jZSB5b3UgaGF2ZSB0byB3cmFwIGFueXRoaW5nIHRoYXQgbWlnaHQgc3VzcGVuZCBpblxuICAgIC8vIFN1c3BlbnNlLlxuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciBldmVudFRpbWUgPSByZXF1ZXN0RXZlbnRUaW1lKCk7XG4gIHZhciBsYW5lID0gU2VsZWN0aXZlSHlkcmF0aW9uTGFuZTtcbiAgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKGZpYmVyLCBsYW5lLCBldmVudFRpbWUpO1xuICBtYXJrUmV0cnlMYW5lSWZOb3RIeWRyYXRlZChmaWJlciwgbGFuZSk7XG59XG5mdW5jdGlvbiBhdHRlbXB0SHlkcmF0aW9uQXRDdXJyZW50UHJpb3JpdHkkMShmaWJlcikge1xuICBpZiAoZmliZXIudGFnICE9PSBTdXNwZW5zZUNvbXBvbmVudCkge1xuICAgIC8vIFdlIGlnbm9yZSBIb3N0Um9vdHMgaGVyZSBiZWNhdXNlIHdlIGNhbid0IGluY3JlYXNlXG4gICAgLy8gdGhlaXIgcHJpb3JpdHkgb3RoZXIgdGhhbiBzeW5jaHJvbm91c2x5IGZsdXNoIGl0LlxuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciBldmVudFRpbWUgPSByZXF1ZXN0RXZlbnRUaW1lKCk7XG4gIHZhciBsYW5lID0gcmVxdWVzdFVwZGF0ZUxhbmUoZmliZXIpO1xuICBzY2hlZHVsZVVwZGF0ZU9uRmliZXIoZmliZXIsIGxhbmUsIGV2ZW50VGltZSk7XG4gIG1hcmtSZXRyeUxhbmVJZk5vdEh5ZHJhdGVkKGZpYmVyLCBsYW5lKTtcbn1cbmZ1bmN0aW9uIHJ1bldpdGhQcmlvcml0eSQyKHByaW9yaXR5LCBmbikge1xuXG4gIHRyeSB7XG4gICAgc2V0Q3VycmVudFVwZGF0ZUxhbmVQcmlvcml0eShwcmlvcml0eSk7XG4gICAgcmV0dXJuIGZuKCk7XG4gIH0gZmluYWxseSB7XG4gIH1cbn1cbmZ1bmN0aW9uIGZpbmRIb3N0SW5zdGFuY2VXaXRoTm9Qb3J0YWxzKGZpYmVyKSB7XG4gIHZhciBob3N0RmliZXIgPSBmaW5kQ3VycmVudEhvc3RGaWJlcldpdGhOb1BvcnRhbHMoZmliZXIpO1xuXG4gIGlmIChob3N0RmliZXIgPT09IG51bGwpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmIChob3N0RmliZXIudGFnID09PSBGdW5kYW1lbnRhbENvbXBvbmVudCkge1xuICAgIHJldHVybiBob3N0RmliZXIuc3RhdGVOb2RlLmluc3RhbmNlO1xuICB9XG5cbiAgcmV0dXJuIGhvc3RGaWJlci5zdGF0ZU5vZGU7XG59XG5cbnZhciBzaG91bGRTdXNwZW5kSW1wbCA9IGZ1bmN0aW9uIChmaWJlcikge1xuICByZXR1cm4gZmFsc2U7XG59O1xuXG5mdW5jdGlvbiBzaG91bGRTdXNwZW5kKGZpYmVyKSB7XG4gIHJldHVybiBzaG91bGRTdXNwZW5kSW1wbChmaWJlcik7XG59XG52YXIgb3ZlcnJpZGVIb29rU3RhdGUgPSBudWxsO1xudmFyIG92ZXJyaWRlSG9va1N0YXRlRGVsZXRlUGF0aCA9IG51bGw7XG52YXIgb3ZlcnJpZGVIb29rU3RhdGVSZW5hbWVQYXRoID0gbnVsbDtcbnZhciBvdmVycmlkZVByb3BzID0gbnVsbDtcbnZhciBvdmVycmlkZVByb3BzRGVsZXRlUGF0aCA9IG51bGw7XG52YXIgb3ZlcnJpZGVQcm9wc1JlbmFtZVBhdGggPSBudWxsO1xudmFyIHNjaGVkdWxlVXBkYXRlID0gbnVsbDtcbnZhciBzZXRTdXNwZW5zZUhhbmRsZXIgPSBudWxsO1xuXG57XG4gIHZhciBjb3B5V2l0aERlbGV0ZUltcGwgPSBmdW5jdGlvbiAob2JqLCBwYXRoLCBpbmRleCkge1xuICAgIHZhciBrZXkgPSBwYXRoW2luZGV4XTtcbiAgICB2YXIgdXBkYXRlZCA9IEFycmF5LmlzQXJyYXkob2JqKSA/IG9iai5zbGljZSgpIDogX2Fzc2lnbih7fSwgb2JqKTtcblxuICAgIGlmIChpbmRleCArIDEgPT09IHBhdGgubGVuZ3RoKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh1cGRhdGVkKSkge1xuICAgICAgICB1cGRhdGVkLnNwbGljZShrZXksIDEpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGVsZXRlIHVwZGF0ZWRba2V5XTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVwZGF0ZWQ7XG4gICAgfSAvLyAkRmxvd0ZpeE1lIG51bWJlciBvciBzdHJpbmcgaXMgZmluZSBoZXJlXG5cblxuICAgIHVwZGF0ZWRba2V5XSA9IGNvcHlXaXRoRGVsZXRlSW1wbChvYmpba2V5XSwgcGF0aCwgaW5kZXggKyAxKTtcbiAgICByZXR1cm4gdXBkYXRlZDtcbiAgfTtcblxuICB2YXIgY29weVdpdGhEZWxldGUgPSBmdW5jdGlvbiAob2JqLCBwYXRoKSB7XG4gICAgcmV0dXJuIGNvcHlXaXRoRGVsZXRlSW1wbChvYmosIHBhdGgsIDApO1xuICB9O1xuXG4gIHZhciBjb3B5V2l0aFJlbmFtZUltcGwgPSBmdW5jdGlvbiAob2JqLCBvbGRQYXRoLCBuZXdQYXRoLCBpbmRleCkge1xuICAgIHZhciBvbGRLZXkgPSBvbGRQYXRoW2luZGV4XTtcbiAgICB2YXIgdXBkYXRlZCA9IEFycmF5LmlzQXJyYXkob2JqKSA/IG9iai5zbGljZSgpIDogX2Fzc2lnbih7fSwgb2JqKTtcblxuICAgIGlmIChpbmRleCArIDEgPT09IG9sZFBhdGgubGVuZ3RoKSB7XG4gICAgICB2YXIgbmV3S2V5ID0gbmV3UGF0aFtpbmRleF07IC8vICRGbG93Rml4TWUgbnVtYmVyIG9yIHN0cmluZyBpcyBmaW5lIGhlcmVcblxuICAgICAgdXBkYXRlZFtuZXdLZXldID0gdXBkYXRlZFtvbGRLZXldO1xuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh1cGRhdGVkKSkge1xuICAgICAgICB1cGRhdGVkLnNwbGljZShvbGRLZXksIDEpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGVsZXRlIHVwZGF0ZWRbb2xkS2V5XTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gJEZsb3dGaXhNZSBudW1iZXIgb3Igc3RyaW5nIGlzIGZpbmUgaGVyZVxuICAgICAgdXBkYXRlZFtvbGRLZXldID0gY29weVdpdGhSZW5hbWVJbXBsKCAvLyAkRmxvd0ZpeE1lIG51bWJlciBvciBzdHJpbmcgaXMgZmluZSBoZXJlXG4gICAgICBvYmpbb2xkS2V5XSwgb2xkUGF0aCwgbmV3UGF0aCwgaW5kZXggKyAxKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdXBkYXRlZDtcbiAgfTtcblxuICB2YXIgY29weVdpdGhSZW5hbWUgPSBmdW5jdGlvbiAob2JqLCBvbGRQYXRoLCBuZXdQYXRoKSB7XG4gICAgaWYgKG9sZFBhdGgubGVuZ3RoICE9PSBuZXdQYXRoLmxlbmd0aCkge1xuICAgICAgd2FybignY29weVdpdGhSZW5hbWUoKSBleHBlY3RzIHBhdGhzIG9mIHRoZSBzYW1lIGxlbmd0aCcpO1xuXG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbmV3UGF0aC5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgICAgaWYgKG9sZFBhdGhbaV0gIT09IG5ld1BhdGhbaV0pIHtcbiAgICAgICAgICB3YXJuKCdjb3B5V2l0aFJlbmFtZSgpIGV4cGVjdHMgcGF0aHMgdG8gYmUgdGhlIHNhbWUgZXhjZXB0IGZvciB0aGUgZGVlcGVzdCBrZXknKTtcblxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjb3B5V2l0aFJlbmFtZUltcGwob2JqLCBvbGRQYXRoLCBuZXdQYXRoLCAwKTtcbiAgfTtcblxuICB2YXIgY29weVdpdGhTZXRJbXBsID0gZnVuY3Rpb24gKG9iaiwgcGF0aCwgaW5kZXgsIHZhbHVlKSB7XG4gICAgaWYgKGluZGV4ID49IHBhdGgubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgdmFyIGtleSA9IHBhdGhbaW5kZXhdO1xuICAgIHZhciB1cGRhdGVkID0gQXJyYXkuaXNBcnJheShvYmopID8gb2JqLnNsaWNlKCkgOiBfYXNzaWduKHt9LCBvYmopOyAvLyAkRmxvd0ZpeE1lIG51bWJlciBvciBzdHJpbmcgaXMgZmluZSBoZXJlXG5cbiAgICB1cGRhdGVkW2tleV0gPSBjb3B5V2l0aFNldEltcGwob2JqW2tleV0sIHBhdGgsIGluZGV4ICsgMSwgdmFsdWUpO1xuICAgIHJldHVybiB1cGRhdGVkO1xuICB9O1xuXG4gIHZhciBjb3B5V2l0aFNldCA9IGZ1bmN0aW9uIChvYmosIHBhdGgsIHZhbHVlKSB7XG4gICAgcmV0dXJuIGNvcHlXaXRoU2V0SW1wbChvYmosIHBhdGgsIDAsIHZhbHVlKTtcbiAgfTtcblxuICB2YXIgZmluZEhvb2sgPSBmdW5jdGlvbiAoZmliZXIsIGlkKSB7XG4gICAgLy8gRm9yIG5vdywgdGhlIFwiaWRcIiBvZiBzdGF0ZWZ1bCBob29rcyBpcyBqdXN0IHRoZSBzdGF0ZWZ1bCBob29rIGluZGV4LlxuICAgIC8vIFRoaXMgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlIHdpdGggZS5nLiBuZXN0ZWQgaG9va3MuXG4gICAgdmFyIGN1cnJlbnRIb29rID0gZmliZXIubWVtb2l6ZWRTdGF0ZTtcblxuICAgIHdoaWxlIChjdXJyZW50SG9vayAhPT0gbnVsbCAmJiBpZCA+IDApIHtcbiAgICAgIGN1cnJlbnRIb29rID0gY3VycmVudEhvb2submV4dDtcbiAgICAgIGlkLS07XG4gICAgfVxuXG4gICAgcmV0dXJuIGN1cnJlbnRIb29rO1xuICB9OyAvLyBTdXBwb3J0IERldlRvb2xzIGVkaXRhYmxlIHZhbHVlcyBmb3IgdXNlU3RhdGUgYW5kIHVzZVJlZHVjZXIuXG5cblxuICBvdmVycmlkZUhvb2tTdGF0ZSA9IGZ1bmN0aW9uIChmaWJlciwgaWQsIHBhdGgsIHZhbHVlKSB7XG4gICAgdmFyIGhvb2sgPSBmaW5kSG9vayhmaWJlciwgaWQpO1xuXG4gICAgaWYgKGhvb2sgIT09IG51bGwpIHtcbiAgICAgIHZhciBuZXdTdGF0ZSA9IGNvcHlXaXRoU2V0KGhvb2subWVtb2l6ZWRTdGF0ZSwgcGF0aCwgdmFsdWUpO1xuICAgICAgaG9vay5tZW1vaXplZFN0YXRlID0gbmV3U3RhdGU7XG4gICAgICBob29rLmJhc2VTdGF0ZSA9IG5ld1N0YXRlOyAvLyBXZSBhcmVuJ3QgYWN0dWFsbHkgYWRkaW5nIGFuIHVwZGF0ZSB0byB0aGUgcXVldWUsXG4gICAgICAvLyBiZWNhdXNlIHRoZXJlIGlzIG5vIHVwZGF0ZSB3ZSBjYW4gYWRkIGZvciB1c2VSZWR1Y2VyIGhvb2tzIHRoYXQgd29uJ3QgdHJpZ2dlciBhbiBlcnJvci5cbiAgICAgIC8vIChUaGVyZSdzIG5vIGFwcHJvcHJpYXRlIGFjdGlvbiB0eXBlIGZvciBEZXZUb29scyBvdmVycmlkZXMuKVxuICAgICAgLy8gQXMgYSByZXN1bHQgdGhvdWdoLCBSZWFjdCB3aWxsIHNlZSB0aGUgc2NoZWR1bGVkIHVwZGF0ZSBhcyBhIG5vb3AgYW5kIGJhaWxvdXQuXG4gICAgICAvLyBTaGFsbG93IGNsb25pbmcgcHJvcHMgd29ya3MgYXMgYSB3b3JrYXJvdW5kIGZvciBub3cgdG8gYnlwYXNzIHRoZSBiYWlsb3V0IGNoZWNrLlxuXG4gICAgICBmaWJlci5tZW1vaXplZFByb3BzID0gX2Fzc2lnbih7fSwgZmliZXIubWVtb2l6ZWRQcm9wcyk7XG4gICAgICBzY2hlZHVsZVVwZGF0ZU9uRmliZXIoZmliZXIsIFN5bmNMYW5lLCBOb1RpbWVzdGFtcCk7XG4gICAgfVxuICB9O1xuXG4gIG92ZXJyaWRlSG9va1N0YXRlRGVsZXRlUGF0aCA9IGZ1bmN0aW9uIChmaWJlciwgaWQsIHBhdGgpIHtcbiAgICB2YXIgaG9vayA9IGZpbmRIb29rKGZpYmVyLCBpZCk7XG5cbiAgICBpZiAoaG9vayAhPT0gbnVsbCkge1xuICAgICAgdmFyIG5ld1N0YXRlID0gY29weVdpdGhEZWxldGUoaG9vay5tZW1vaXplZFN0YXRlLCBwYXRoKTtcbiAgICAgIGhvb2subWVtb2l6ZWRTdGF0ZSA9IG5ld1N0YXRlO1xuICAgICAgaG9vay5iYXNlU3RhdGUgPSBuZXdTdGF0ZTsgLy8gV2UgYXJlbid0IGFjdHVhbGx5IGFkZGluZyBhbiB1cGRhdGUgdG8gdGhlIHF1ZXVlLFxuICAgICAgLy8gYmVjYXVzZSB0aGVyZSBpcyBubyB1cGRhdGUgd2UgY2FuIGFkZCBmb3IgdXNlUmVkdWNlciBob29rcyB0aGF0IHdvbid0IHRyaWdnZXIgYW4gZXJyb3IuXG4gICAgICAvLyAoVGhlcmUncyBubyBhcHByb3ByaWF0ZSBhY3Rpb24gdHlwZSBmb3IgRGV2VG9vbHMgb3ZlcnJpZGVzLilcbiAgICAgIC8vIEFzIGEgcmVzdWx0IHRob3VnaCwgUmVhY3Qgd2lsbCBzZWUgdGhlIHNjaGVkdWxlZCB1cGRhdGUgYXMgYSBub29wIGFuZCBiYWlsb3V0LlxuICAgICAgLy8gU2hhbGxvdyBjbG9uaW5nIHByb3BzIHdvcmtzIGFzIGEgd29ya2Fyb3VuZCBmb3Igbm93IHRvIGJ5cGFzcyB0aGUgYmFpbG91dCBjaGVjay5cblxuICAgICAgZmliZXIubWVtb2l6ZWRQcm9wcyA9IF9hc3NpZ24oe30sIGZpYmVyLm1lbW9pemVkUHJvcHMpO1xuICAgICAgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKGZpYmVyLCBTeW5jTGFuZSwgTm9UaW1lc3RhbXApO1xuICAgIH1cbiAgfTtcblxuICBvdmVycmlkZUhvb2tTdGF0ZVJlbmFtZVBhdGggPSBmdW5jdGlvbiAoZmliZXIsIGlkLCBvbGRQYXRoLCBuZXdQYXRoKSB7XG4gICAgdmFyIGhvb2sgPSBmaW5kSG9vayhmaWJlciwgaWQpO1xuXG4gICAgaWYgKGhvb2sgIT09IG51bGwpIHtcbiAgICAgIHZhciBuZXdTdGF0ZSA9IGNvcHlXaXRoUmVuYW1lKGhvb2subWVtb2l6ZWRTdGF0ZSwgb2xkUGF0aCwgbmV3UGF0aCk7XG4gICAgICBob29rLm1lbW9pemVkU3RhdGUgPSBuZXdTdGF0ZTtcbiAgICAgIGhvb2suYmFzZVN0YXRlID0gbmV3U3RhdGU7IC8vIFdlIGFyZW4ndCBhY3R1YWxseSBhZGRpbmcgYW4gdXBkYXRlIHRvIHRoZSBxdWV1ZSxcbiAgICAgIC8vIGJlY2F1c2UgdGhlcmUgaXMgbm8gdXBkYXRlIHdlIGNhbiBhZGQgZm9yIHVzZVJlZHVjZXIgaG9va3MgdGhhdCB3b24ndCB0cmlnZ2VyIGFuIGVycm9yLlxuICAgICAgLy8gKFRoZXJlJ3Mgbm8gYXBwcm9wcmlhdGUgYWN0aW9uIHR5cGUgZm9yIERldlRvb2xzIG92ZXJyaWRlcy4pXG4gICAgICAvLyBBcyBhIHJlc3VsdCB0aG91Z2gsIFJlYWN0IHdpbGwgc2VlIHRoZSBzY2hlZHVsZWQgdXBkYXRlIGFzIGEgbm9vcCBhbmQgYmFpbG91dC5cbiAgICAgIC8vIFNoYWxsb3cgY2xvbmluZyBwcm9wcyB3b3JrcyBhcyBhIHdvcmthcm91bmQgZm9yIG5vdyB0byBieXBhc3MgdGhlIGJhaWxvdXQgY2hlY2suXG5cbiAgICAgIGZpYmVyLm1lbW9pemVkUHJvcHMgPSBfYXNzaWduKHt9LCBmaWJlci5tZW1vaXplZFByb3BzKTtcbiAgICAgIHNjaGVkdWxlVXBkYXRlT25GaWJlcihmaWJlciwgU3luY0xhbmUsIE5vVGltZXN0YW1wKTtcbiAgICB9XG4gIH07IC8vIFN1cHBvcnQgRGV2VG9vbHMgcHJvcHMgZm9yIGZ1bmN0aW9uIGNvbXBvbmVudHMsIGZvcndhcmRSZWYsIG1lbW8sIGhvc3QgY29tcG9uZW50cywgZXRjLlxuXG5cbiAgb3ZlcnJpZGVQcm9wcyA9IGZ1bmN0aW9uIChmaWJlciwgcGF0aCwgdmFsdWUpIHtcbiAgICBmaWJlci5wZW5kaW5nUHJvcHMgPSBjb3B5V2l0aFNldChmaWJlci5tZW1vaXplZFByb3BzLCBwYXRoLCB2YWx1ZSk7XG5cbiAgICBpZiAoZmliZXIuYWx0ZXJuYXRlKSB7XG4gICAgICBmaWJlci5hbHRlcm5hdGUucGVuZGluZ1Byb3BzID0gZmliZXIucGVuZGluZ1Byb3BzO1xuICAgIH1cblxuICAgIHNjaGVkdWxlVXBkYXRlT25GaWJlcihmaWJlciwgU3luY0xhbmUsIE5vVGltZXN0YW1wKTtcbiAgfTtcblxuICBvdmVycmlkZVByb3BzRGVsZXRlUGF0aCA9IGZ1bmN0aW9uIChmaWJlciwgcGF0aCkge1xuICAgIGZpYmVyLnBlbmRpbmdQcm9wcyA9IGNvcHlXaXRoRGVsZXRlKGZpYmVyLm1lbW9pemVkUHJvcHMsIHBhdGgpO1xuXG4gICAgaWYgKGZpYmVyLmFsdGVybmF0ZSkge1xuICAgICAgZmliZXIuYWx0ZXJuYXRlLnBlbmRpbmdQcm9wcyA9IGZpYmVyLnBlbmRpbmdQcm9wcztcbiAgICB9XG5cbiAgICBzY2hlZHVsZVVwZGF0ZU9uRmliZXIoZmliZXIsIFN5bmNMYW5lLCBOb1RpbWVzdGFtcCk7XG4gIH07XG5cbiAgb3ZlcnJpZGVQcm9wc1JlbmFtZVBhdGggPSBmdW5jdGlvbiAoZmliZXIsIG9sZFBhdGgsIG5ld1BhdGgpIHtcbiAgICBmaWJlci5wZW5kaW5nUHJvcHMgPSBjb3B5V2l0aFJlbmFtZShmaWJlci5tZW1vaXplZFByb3BzLCBvbGRQYXRoLCBuZXdQYXRoKTtcblxuICAgIGlmIChmaWJlci5hbHRlcm5hdGUpIHtcbiAgICAgIGZpYmVyLmFsdGVybmF0ZS5wZW5kaW5nUHJvcHMgPSBmaWJlci5wZW5kaW5nUHJvcHM7XG4gICAgfVxuXG4gICAgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKGZpYmVyLCBTeW5jTGFuZSwgTm9UaW1lc3RhbXApO1xuICB9O1xuXG4gIHNjaGVkdWxlVXBkYXRlID0gZnVuY3Rpb24gKGZpYmVyKSB7XG4gICAgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKGZpYmVyLCBTeW5jTGFuZSwgTm9UaW1lc3RhbXApO1xuICB9O1xuXG4gIHNldFN1c3BlbnNlSGFuZGxlciA9IGZ1bmN0aW9uIChuZXdTaG91bGRTdXNwZW5kSW1wbCkge1xuICAgIHNob3VsZFN1c3BlbmRJbXBsID0gbmV3U2hvdWxkU3VzcGVuZEltcGw7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGZpbmRIb3N0SW5zdGFuY2VCeUZpYmVyKGZpYmVyKSB7XG4gIHZhciBob3N0RmliZXIgPSBmaW5kQ3VycmVudEhvc3RGaWJlcihmaWJlcik7XG5cbiAgaWYgKGhvc3RGaWJlciA9PT0gbnVsbCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIGhvc3RGaWJlci5zdGF0ZU5vZGU7XG59XG5cbmZ1bmN0aW9uIGVtcHR5RmluZEZpYmVyQnlIb3N0SW5zdGFuY2UoaW5zdGFuY2UpIHtcbiAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIGdldEN1cnJlbnRGaWJlckZvckRldlRvb2xzKCkge1xuICByZXR1cm4gY3VycmVudDtcbn1cblxuZnVuY3Rpb24gaW5qZWN0SW50b0RldlRvb2xzKGRldlRvb2xzQ29uZmlnKSB7XG4gIHZhciBmaW5kRmliZXJCeUhvc3RJbnN0YW5jZSA9IGRldlRvb2xzQ29uZmlnLmZpbmRGaWJlckJ5SG9zdEluc3RhbmNlO1xuICB2YXIgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0Q3VycmVudERpc3BhdGNoZXI7XG4gIHJldHVybiBpbmplY3RJbnRlcm5hbHMoe1xuICAgIGJ1bmRsZVR5cGU6IGRldlRvb2xzQ29uZmlnLmJ1bmRsZVR5cGUsXG4gICAgdmVyc2lvbjogZGV2VG9vbHNDb25maWcudmVyc2lvbixcbiAgICByZW5kZXJlclBhY2thZ2VOYW1lOiBkZXZUb29sc0NvbmZpZy5yZW5kZXJlclBhY2thZ2VOYW1lLFxuICAgIHJlbmRlcmVyQ29uZmlnOiBkZXZUb29sc0NvbmZpZy5yZW5kZXJlckNvbmZpZyxcbiAgICBvdmVycmlkZUhvb2tTdGF0ZTogb3ZlcnJpZGVIb29rU3RhdGUsXG4gICAgb3ZlcnJpZGVIb29rU3RhdGVEZWxldGVQYXRoOiBvdmVycmlkZUhvb2tTdGF0ZURlbGV0ZVBhdGgsXG4gICAgb3ZlcnJpZGVIb29rU3RhdGVSZW5hbWVQYXRoOiBvdmVycmlkZUhvb2tTdGF0ZVJlbmFtZVBhdGgsXG4gICAgb3ZlcnJpZGVQcm9wczogb3ZlcnJpZGVQcm9wcyxcbiAgICBvdmVycmlkZVByb3BzRGVsZXRlUGF0aDogb3ZlcnJpZGVQcm9wc0RlbGV0ZVBhdGgsXG4gICAgb3ZlcnJpZGVQcm9wc1JlbmFtZVBhdGg6IG92ZXJyaWRlUHJvcHNSZW5hbWVQYXRoLFxuICAgIHNldFN1c3BlbnNlSGFuZGxlcjogc2V0U3VzcGVuc2VIYW5kbGVyLFxuICAgIHNjaGVkdWxlVXBkYXRlOiBzY2hlZHVsZVVwZGF0ZSxcbiAgICBjdXJyZW50RGlzcGF0Y2hlclJlZjogUmVhY3RDdXJyZW50RGlzcGF0Y2hlcixcbiAgICBmaW5kSG9zdEluc3RhbmNlQnlGaWJlcjogZmluZEhvc3RJbnN0YW5jZUJ5RmliZXIsXG4gICAgZmluZEZpYmVyQnlIb3N0SW5zdGFuY2U6IGZpbmRGaWJlckJ5SG9zdEluc3RhbmNlIHx8IGVtcHR5RmluZEZpYmVyQnlIb3N0SW5zdGFuY2UsXG4gICAgLy8gUmVhY3QgUmVmcmVzaFxuICAgIGZpbmRIb3N0SW5zdGFuY2VzRm9yUmVmcmVzaDogIGZpbmRIb3N0SW5zdGFuY2VzRm9yUmVmcmVzaCAsXG4gICAgc2NoZWR1bGVSZWZyZXNoOiAgc2NoZWR1bGVSZWZyZXNoICxcbiAgICBzY2hlZHVsZVJvb3Q6ICBzY2hlZHVsZVJvb3QgLFxuICAgIHNldFJlZnJlc2hIYW5kbGVyOiAgc2V0UmVmcmVzaEhhbmRsZXIgLFxuICAgIC8vIEVuYWJsZXMgRGV2VG9vbHMgdG8gYXBwZW5kIG93bmVyIHN0YWNrcyB0byBlcnJvciBtZXNzYWdlcyBpbiBERVYgbW9kZS5cbiAgICBnZXRDdXJyZW50RmliZXI6ICBnZXRDdXJyZW50RmliZXJGb3JEZXZUb29scyBcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIFJlYWN0RE9NUm9vdChjb250YWluZXIsIG9wdGlvbnMpIHtcbiAgdGhpcy5faW50ZXJuYWxSb290ID0gY3JlYXRlUm9vdEltcGwoY29udGFpbmVyLCBDb25jdXJyZW50Um9vdCwgb3B0aW9ucyk7XG59XG5cbmZ1bmN0aW9uIFJlYWN0RE9NQmxvY2tpbmdSb290KGNvbnRhaW5lciwgdGFnLCBvcHRpb25zKSB7XG4gIHRoaXMuX2ludGVybmFsUm9vdCA9IGNyZWF0ZVJvb3RJbXBsKGNvbnRhaW5lciwgdGFnLCBvcHRpb25zKTtcbn1cblxuUmVhY3RET01Sb290LnByb3RvdHlwZS5yZW5kZXIgPSBSZWFjdERPTUJsb2NraW5nUm9vdC5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gKGNoaWxkcmVuKSB7XG4gIHZhciByb290ID0gdGhpcy5faW50ZXJuYWxSb290O1xuXG4gIHtcbiAgICBpZiAodHlwZW9mIGFyZ3VtZW50c1sxXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgZXJyb3IoJ3JlbmRlciguLi4pOiBkb2VzIG5vdCBzdXBwb3J0IHRoZSBzZWNvbmQgY2FsbGJhY2sgYXJndW1lbnQuICcgKyAnVG8gZXhlY3V0ZSBhIHNpZGUgZWZmZWN0IGFmdGVyIHJlbmRlcmluZywgZGVjbGFyZSBpdCBpbiBhIGNvbXBvbmVudCBib2R5IHdpdGggdXNlRWZmZWN0KCkuJyk7XG4gICAgfVxuXG4gICAgdmFyIGNvbnRhaW5lciA9IHJvb3QuY29udGFpbmVySW5mbztcblxuICAgIGlmIChjb250YWluZXIubm9kZVR5cGUgIT09IENPTU1FTlRfTk9ERSkge1xuICAgICAgdmFyIGhvc3RJbnN0YW5jZSA9IGZpbmRIb3N0SW5zdGFuY2VXaXRoTm9Qb3J0YWxzKHJvb3QuY3VycmVudCk7XG5cbiAgICAgIGlmIChob3N0SW5zdGFuY2UpIHtcbiAgICAgICAgaWYgKGhvc3RJbnN0YW5jZS5wYXJlbnROb2RlICE9PSBjb250YWluZXIpIHtcbiAgICAgICAgICBlcnJvcigncmVuZGVyKC4uLik6IEl0IGxvb2tzIGxpa2UgdGhlIFJlYWN0LXJlbmRlcmVkIGNvbnRlbnQgb2YgdGhlICcgKyAncm9vdCBjb250YWluZXIgd2FzIHJlbW92ZWQgd2l0aG91dCB1c2luZyBSZWFjdC4gVGhpcyBpcyBub3QgJyArICdzdXBwb3J0ZWQgYW5kIHdpbGwgY2F1c2UgZXJyb3JzLiBJbnN0ZWFkLCBjYWxsICcgKyBcInJvb3QudW5tb3VudCgpIHRvIGVtcHR5IGEgcm9vdCdzIGNvbnRhaW5lci5cIik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB1cGRhdGVDb250YWluZXIoY2hpbGRyZW4sIHJvb3QsIG51bGwsIG51bGwpO1xufTtcblxuUmVhY3RET01Sb290LnByb3RvdHlwZS51bm1vdW50ID0gUmVhY3RET01CbG9ja2luZ1Jvb3QucHJvdG90eXBlLnVubW91bnQgPSBmdW5jdGlvbiAoKSB7XG4gIHtcbiAgICBpZiAodHlwZW9mIGFyZ3VtZW50c1swXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgZXJyb3IoJ3VubW91bnQoLi4uKTogZG9lcyBub3Qgc3VwcG9ydCBhIGNhbGxiYWNrIGFyZ3VtZW50LiAnICsgJ1RvIGV4ZWN1dGUgYSBzaWRlIGVmZmVjdCBhZnRlciByZW5kZXJpbmcsIGRlY2xhcmUgaXQgaW4gYSBjb21wb25lbnQgYm9keSB3aXRoIHVzZUVmZmVjdCgpLicpO1xuICAgIH1cbiAgfVxuXG4gIHZhciByb290ID0gdGhpcy5faW50ZXJuYWxSb290O1xuICB2YXIgY29udGFpbmVyID0gcm9vdC5jb250YWluZXJJbmZvO1xuICB1cGRhdGVDb250YWluZXIobnVsbCwgcm9vdCwgbnVsbCwgZnVuY3Rpb24gKCkge1xuICAgIHVubWFya0NvbnRhaW5lckFzUm9vdChjb250YWluZXIpO1xuICB9KTtcbn07XG5cbmZ1bmN0aW9uIGNyZWF0ZVJvb3RJbXBsKGNvbnRhaW5lciwgdGFnLCBvcHRpb25zKSB7XG4gIC8vIFRhZyBpcyBlaXRoZXIgTGVnYWN5Um9vdCBvciBDb25jdXJyZW50IFJvb3RcbiAgdmFyIGh5ZHJhdGUgPSBvcHRpb25zICE9IG51bGwgJiYgb3B0aW9ucy5oeWRyYXRlID09PSB0cnVlO1xuICB2YXIgaHlkcmF0aW9uQ2FsbGJhY2tzID0gb3B0aW9ucyAhPSBudWxsICYmIG9wdGlvbnMuaHlkcmF0aW9uT3B0aW9ucyB8fCBudWxsO1xuICB2YXIgbXV0YWJsZVNvdXJjZXMgPSBvcHRpb25zICE9IG51bGwgJiYgb3B0aW9ucy5oeWRyYXRpb25PcHRpb25zICE9IG51bGwgJiYgb3B0aW9ucy5oeWRyYXRpb25PcHRpb25zLm11dGFibGVTb3VyY2VzIHx8IG51bGw7XG4gIHZhciByb290ID0gY3JlYXRlQ29udGFpbmVyKGNvbnRhaW5lciwgdGFnLCBoeWRyYXRlKTtcbiAgbWFya0NvbnRhaW5lckFzUm9vdChyb290LmN1cnJlbnQsIGNvbnRhaW5lcik7XG4gIHZhciBjb250YWluZXJOb2RlVHlwZSA9IGNvbnRhaW5lci5ub2RlVHlwZTtcblxuICB7XG4gICAgdmFyIHJvb3RDb250YWluZXJFbGVtZW50ID0gY29udGFpbmVyLm5vZGVUeXBlID09PSBDT01NRU5UX05PREUgPyBjb250YWluZXIucGFyZW50Tm9kZSA6IGNvbnRhaW5lcjtcbiAgICBsaXN0ZW5Ub0FsbFN1cHBvcnRlZEV2ZW50cyhyb290Q29udGFpbmVyRWxlbWVudCk7XG4gIH1cblxuICBpZiAobXV0YWJsZVNvdXJjZXMpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG11dGFibGVTb3VyY2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgbXV0YWJsZVNvdXJjZSA9IG11dGFibGVTb3VyY2VzW2ldO1xuICAgICAgcmVnaXN0ZXJNdXRhYmxlU291cmNlRm9ySHlkcmF0aW9uKHJvb3QsIG11dGFibGVTb3VyY2UpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByb290O1xufVxuZnVuY3Rpb24gY3JlYXRlTGVnYWN5Um9vdChjb250YWluZXIsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIG5ldyBSZWFjdERPTUJsb2NraW5nUm9vdChjb250YWluZXIsIExlZ2FjeVJvb3QsIG9wdGlvbnMpO1xufVxuZnVuY3Rpb24gaXNWYWxpZENvbnRhaW5lcihub2RlKSB7XG4gIHJldHVybiAhIShub2RlICYmIChub2RlLm5vZGVUeXBlID09PSBFTEVNRU5UX05PREUgfHwgbm9kZS5ub2RlVHlwZSA9PT0gRE9DVU1FTlRfTk9ERSB8fCBub2RlLm5vZGVUeXBlID09PSBET0NVTUVOVF9GUkFHTUVOVF9OT0RFIHx8IG5vZGUubm9kZVR5cGUgPT09IENPTU1FTlRfTk9ERSAmJiBub2RlLm5vZGVWYWx1ZSA9PT0gJyByZWFjdC1tb3VudC1wb2ludC11bnN0YWJsZSAnKSk7XG59XG5cbnZhciBSZWFjdEN1cnJlbnRPd25lciQzID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3RDdXJyZW50T3duZXI7XG52YXIgdG9wTGV2ZWxVcGRhdGVXYXJuaW5ncztcbnZhciB3YXJuZWRBYm91dEh5ZHJhdGVBUEkgPSBmYWxzZTtcblxue1xuICB0b3BMZXZlbFVwZGF0ZVdhcm5pbmdzID0gZnVuY3Rpb24gKGNvbnRhaW5lcikge1xuICAgIGlmIChjb250YWluZXIuX3JlYWN0Um9vdENvbnRhaW5lciAmJiBjb250YWluZXIubm9kZVR5cGUgIT09IENPTU1FTlRfTk9ERSkge1xuICAgICAgdmFyIGhvc3RJbnN0YW5jZSA9IGZpbmRIb3N0SW5zdGFuY2VXaXRoTm9Qb3J0YWxzKGNvbnRhaW5lci5fcmVhY3RSb290Q29udGFpbmVyLl9pbnRlcm5hbFJvb3QuY3VycmVudCk7XG5cbiAgICAgIGlmIChob3N0SW5zdGFuY2UpIHtcbiAgICAgICAgaWYgKGhvc3RJbnN0YW5jZS5wYXJlbnROb2RlICE9PSBjb250YWluZXIpIHtcbiAgICAgICAgICBlcnJvcigncmVuZGVyKC4uLik6IEl0IGxvb2tzIGxpa2UgdGhlIFJlYWN0LXJlbmRlcmVkIGNvbnRlbnQgb2YgdGhpcyAnICsgJ2NvbnRhaW5lciB3YXMgcmVtb3ZlZCB3aXRob3V0IHVzaW5nIFJlYWN0LiBUaGlzIGlzIG5vdCAnICsgJ3N1cHBvcnRlZCBhbmQgd2lsbCBjYXVzZSBlcnJvcnMuIEluc3RlYWQsIGNhbGwgJyArICdSZWFjdERPTS51bm1vdW50Q29tcG9uZW50QXROb2RlIHRvIGVtcHR5IGEgY29udGFpbmVyLicpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGlzUm9vdFJlbmRlcmVkQnlTb21lUmVhY3QgPSAhIWNvbnRhaW5lci5fcmVhY3RSb290Q29udGFpbmVyO1xuICAgIHZhciByb290RWwgPSBnZXRSZWFjdFJvb3RFbGVtZW50SW5Db250YWluZXIoY29udGFpbmVyKTtcbiAgICB2YXIgaGFzTm9uUm9vdFJlYWN0Q2hpbGQgPSAhIShyb290RWwgJiYgZ2V0SW5zdGFuY2VGcm9tTm9kZShyb290RWwpKTtcblxuICAgIGlmIChoYXNOb25Sb290UmVhY3RDaGlsZCAmJiAhaXNSb290UmVuZGVyZWRCeVNvbWVSZWFjdCkge1xuICAgICAgZXJyb3IoJ3JlbmRlciguLi4pOiBSZXBsYWNpbmcgUmVhY3QtcmVuZGVyZWQgY2hpbGRyZW4gd2l0aCBhIG5ldyByb290ICcgKyAnY29tcG9uZW50LiBJZiB5b3UgaW50ZW5kZWQgdG8gdXBkYXRlIHRoZSBjaGlsZHJlbiBvZiB0aGlzIG5vZGUsICcgKyAneW91IHNob3VsZCBpbnN0ZWFkIGhhdmUgdGhlIGV4aXN0aW5nIGNoaWxkcmVuIHVwZGF0ZSB0aGVpciBzdGF0ZSAnICsgJ2FuZCByZW5kZXIgdGhlIG5ldyBjb21wb25lbnRzIGluc3RlYWQgb2YgY2FsbGluZyBSZWFjdERPTS5yZW5kZXIuJyk7XG4gICAgfVxuXG4gICAgaWYgKGNvbnRhaW5lci5ub2RlVHlwZSA9PT0gRUxFTUVOVF9OT0RFICYmIGNvbnRhaW5lci50YWdOYW1lICYmIGNvbnRhaW5lci50YWdOYW1lLnRvVXBwZXJDYXNlKCkgPT09ICdCT0RZJykge1xuICAgICAgZXJyb3IoJ3JlbmRlcigpOiBSZW5kZXJpbmcgY29tcG9uZW50cyBkaXJlY3RseSBpbnRvIGRvY3VtZW50LmJvZHkgaXMgJyArICdkaXNjb3VyYWdlZCwgc2luY2UgaXRzIGNoaWxkcmVuIGFyZSBvZnRlbiBtYW5pcHVsYXRlZCBieSB0aGlyZC1wYXJ0eSAnICsgJ3NjcmlwdHMgYW5kIGJyb3dzZXIgZXh0ZW5zaW9ucy4gVGhpcyBtYXkgbGVhZCB0byBzdWJ0bGUgJyArICdyZWNvbmNpbGlhdGlvbiBpc3N1ZXMuIFRyeSByZW5kZXJpbmcgaW50byBhIGNvbnRhaW5lciBlbGVtZW50IGNyZWF0ZWQgJyArICdmb3IgeW91ciBhcHAuJyk7XG4gICAgfVxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRSZWFjdFJvb3RFbGVtZW50SW5Db250YWluZXIoY29udGFpbmVyKSB7XG4gIGlmICghY29udGFpbmVyKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpZiAoY29udGFpbmVyLm5vZGVUeXBlID09PSBET0NVTUVOVF9OT0RFKSB7XG4gICAgcmV0dXJuIGNvbnRhaW5lci5kb2N1bWVudEVsZW1lbnQ7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGNvbnRhaW5lci5maXJzdENoaWxkO1xuICB9XG59XG5cbmZ1bmN0aW9uIHNob3VsZEh5ZHJhdGVEdWVUb0xlZ2FjeUhldXJpc3RpYyhjb250YWluZXIpIHtcbiAgdmFyIHJvb3RFbGVtZW50ID0gZ2V0UmVhY3RSb290RWxlbWVudEluQ29udGFpbmVyKGNvbnRhaW5lcik7XG4gIHJldHVybiAhIShyb290RWxlbWVudCAmJiByb290RWxlbWVudC5ub2RlVHlwZSA9PT0gRUxFTUVOVF9OT0RFICYmIHJvb3RFbGVtZW50Lmhhc0F0dHJpYnV0ZShST09UX0FUVFJJQlVURV9OQU1FKSk7XG59XG5cbmZ1bmN0aW9uIGxlZ2FjeUNyZWF0ZVJvb3RGcm9tRE9NQ29udGFpbmVyKGNvbnRhaW5lciwgZm9yY2VIeWRyYXRlKSB7XG4gIHZhciBzaG91bGRIeWRyYXRlID0gZm9yY2VIeWRyYXRlIHx8IHNob3VsZEh5ZHJhdGVEdWVUb0xlZ2FjeUhldXJpc3RpYyhjb250YWluZXIpOyAvLyBGaXJzdCBjbGVhciBhbnkgZXhpc3RpbmcgY29udGVudC5cblxuICBpZiAoIXNob3VsZEh5ZHJhdGUpIHtcbiAgICB2YXIgd2FybmVkID0gZmFsc2U7XG4gICAgdmFyIHJvb3RTaWJsaW5nO1xuXG4gICAgd2hpbGUgKHJvb3RTaWJsaW5nID0gY29udGFpbmVyLmxhc3RDaGlsZCkge1xuICAgICAge1xuICAgICAgICBpZiAoIXdhcm5lZCAmJiByb290U2libGluZy5ub2RlVHlwZSA9PT0gRUxFTUVOVF9OT0RFICYmIHJvb3RTaWJsaW5nLmhhc0F0dHJpYnV0ZShST09UX0FUVFJJQlVURV9OQU1FKSkge1xuICAgICAgICAgIHdhcm5lZCA9IHRydWU7XG5cbiAgICAgICAgICBlcnJvcigncmVuZGVyKCk6IFRhcmdldCBub2RlIGhhcyBtYXJrdXAgcmVuZGVyZWQgYnkgUmVhY3QsIGJ1dCB0aGVyZSAnICsgJ2FyZSB1bnJlbGF0ZWQgbm9kZXMgYXMgd2VsbC4gVGhpcyBpcyBtb3N0IGNvbW1vbmx5IGNhdXNlZCBieSAnICsgJ3doaXRlLXNwYWNlIGluc2VydGVkIGFyb3VuZCBzZXJ2ZXItcmVuZGVyZWQgbWFya3VwLicpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnRhaW5lci5yZW1vdmVDaGlsZChyb290U2libGluZyk7XG4gICAgfVxuICB9XG5cbiAge1xuICAgIGlmIChzaG91bGRIeWRyYXRlICYmICFmb3JjZUh5ZHJhdGUgJiYgIXdhcm5lZEFib3V0SHlkcmF0ZUFQSSkge1xuICAgICAgd2FybmVkQWJvdXRIeWRyYXRlQVBJID0gdHJ1ZTtcblxuICAgICAgd2FybigncmVuZGVyKCk6IENhbGxpbmcgUmVhY3RET00ucmVuZGVyKCkgdG8gaHlkcmF0ZSBzZXJ2ZXItcmVuZGVyZWQgbWFya3VwICcgKyAnd2lsbCBzdG9wIHdvcmtpbmcgaW4gUmVhY3QgdjE4LiBSZXBsYWNlIHRoZSBSZWFjdERPTS5yZW5kZXIoKSBjYWxsICcgKyAnd2l0aCBSZWFjdERPTS5oeWRyYXRlKCkgaWYgeW91IHdhbnQgUmVhY3QgdG8gYXR0YWNoIHRvIHRoZSBzZXJ2ZXIgSFRNTC4nKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gY3JlYXRlTGVnYWN5Um9vdChjb250YWluZXIsIHNob3VsZEh5ZHJhdGUgPyB7XG4gICAgaHlkcmF0ZTogdHJ1ZVxuICB9IDogdW5kZWZpbmVkKTtcbn1cblxuZnVuY3Rpb24gd2Fybk9uSW52YWxpZENhbGxiYWNrJDEoY2FsbGJhY2ssIGNhbGxlck5hbWUpIHtcbiAge1xuICAgIGlmIChjYWxsYmFjayAhPT0gbnVsbCAmJiB0eXBlb2YgY2FsbGJhY2sgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGVycm9yKCclcyguLi4pOiBFeHBlY3RlZCB0aGUgbGFzdCBvcHRpb25hbCBgY2FsbGJhY2tgIGFyZ3VtZW50IHRvIGJlIGEgJyArICdmdW5jdGlvbi4gSW5zdGVhZCByZWNlaXZlZDogJXMuJywgY2FsbGVyTmFtZSwgY2FsbGJhY2spO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBsZWdhY3lSZW5kZXJTdWJ0cmVlSW50b0NvbnRhaW5lcihwYXJlbnRDb21wb25lbnQsIGNoaWxkcmVuLCBjb250YWluZXIsIGZvcmNlSHlkcmF0ZSwgY2FsbGJhY2spIHtcbiAge1xuICAgIHRvcExldmVsVXBkYXRlV2FybmluZ3MoY29udGFpbmVyKTtcbiAgICB3YXJuT25JbnZhbGlkQ2FsbGJhY2skMShjYWxsYmFjayA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGNhbGxiYWNrLCAncmVuZGVyJyk7XG4gIH0gLy8gVE9ETzogV2l0aG91dCBgYW55YCB0eXBlLCBGbG93IHNheXMgXCJQcm9wZXJ0eSBjYW5ub3QgYmUgYWNjZXNzZWQgb24gYW55XG4gIC8vIG1lbWJlciBvZiBpbnRlcnNlY3Rpb24gdHlwZS5cIiBXaHl5eXl5eS5cblxuXG4gIHZhciByb290ID0gY29udGFpbmVyLl9yZWFjdFJvb3RDb250YWluZXI7XG4gIHZhciBmaWJlclJvb3Q7XG5cbiAgaWYgKCFyb290KSB7XG4gICAgLy8gSW5pdGlhbCBtb3VudFxuICAgIHJvb3QgPSBjb250YWluZXIuX3JlYWN0Um9vdENvbnRhaW5lciA9IGxlZ2FjeUNyZWF0ZVJvb3RGcm9tRE9NQ29udGFpbmVyKGNvbnRhaW5lciwgZm9yY2VIeWRyYXRlKTtcbiAgICBmaWJlclJvb3QgPSByb290Ll9pbnRlcm5hbFJvb3Q7XG5cbiAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB2YXIgb3JpZ2luYWxDYWxsYmFjayA9IGNhbGxiYWNrO1xuXG4gICAgICBjYWxsYmFjayA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIGluc3RhbmNlID0gZ2V0UHVibGljUm9vdEluc3RhbmNlKGZpYmVyUm9vdCk7XG4gICAgICAgIG9yaWdpbmFsQ2FsbGJhY2suY2FsbChpbnN0YW5jZSk7XG4gICAgICB9O1xuICAgIH0gLy8gSW5pdGlhbCBtb3VudCBzaG91bGQgbm90IGJlIGJhdGNoZWQuXG5cblxuICAgIHVuYmF0Y2hlZFVwZGF0ZXMoZnVuY3Rpb24gKCkge1xuICAgICAgdXBkYXRlQ29udGFpbmVyKGNoaWxkcmVuLCBmaWJlclJvb3QsIHBhcmVudENvbXBvbmVudCwgY2FsbGJhY2spO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIGZpYmVyUm9vdCA9IHJvb3QuX2ludGVybmFsUm9vdDtcblxuICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHZhciBfb3JpZ2luYWxDYWxsYmFjayA9IGNhbGxiYWNrO1xuXG4gICAgICBjYWxsYmFjayA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIGluc3RhbmNlID0gZ2V0UHVibGljUm9vdEluc3RhbmNlKGZpYmVyUm9vdCk7XG5cbiAgICAgICAgX29yaWdpbmFsQ2FsbGJhY2suY2FsbChpbnN0YW5jZSk7XG4gICAgICB9O1xuICAgIH0gLy8gVXBkYXRlXG5cblxuICAgIHVwZGF0ZUNvbnRhaW5lcihjaGlsZHJlbiwgZmliZXJSb290LCBwYXJlbnRDb21wb25lbnQsIGNhbGxiYWNrKTtcbiAgfVxuXG4gIHJldHVybiBnZXRQdWJsaWNSb290SW5zdGFuY2UoZmliZXJSb290KTtcbn1cblxuZnVuY3Rpb24gZmluZERPTU5vZGUoY29tcG9uZW50T3JFbGVtZW50KSB7XG4gIHtcbiAgICB2YXIgb3duZXIgPSBSZWFjdEN1cnJlbnRPd25lciQzLmN1cnJlbnQ7XG5cbiAgICBpZiAob3duZXIgIT09IG51bGwgJiYgb3duZXIuc3RhdGVOb2RlICE9PSBudWxsKSB7XG4gICAgICB2YXIgd2FybmVkQWJvdXRSZWZzSW5SZW5kZXIgPSBvd25lci5zdGF0ZU5vZGUuX3dhcm5lZEFib3V0UmVmc0luUmVuZGVyO1xuXG4gICAgICBpZiAoIXdhcm5lZEFib3V0UmVmc0luUmVuZGVyKSB7XG4gICAgICAgIGVycm9yKCclcyBpcyBhY2Nlc3NpbmcgZmluZERPTU5vZGUgaW5zaWRlIGl0cyByZW5kZXIoKS4gJyArICdyZW5kZXIoKSBzaG91bGQgYmUgYSBwdXJlIGZ1bmN0aW9uIG9mIHByb3BzIGFuZCBzdGF0ZS4gSXQgc2hvdWxkICcgKyAnbmV2ZXIgYWNjZXNzIHNvbWV0aGluZyB0aGF0IHJlcXVpcmVzIHN0YWxlIGRhdGEgZnJvbSB0aGUgcHJldmlvdXMgJyArICdyZW5kZXIsIHN1Y2ggYXMgcmVmcy4gTW92ZSB0aGlzIGxvZ2ljIHRvIGNvbXBvbmVudERpZE1vdW50IGFuZCAnICsgJ2NvbXBvbmVudERpZFVwZGF0ZSBpbnN0ZWFkLicsIGdldENvbXBvbmVudE5hbWUob3duZXIudHlwZSkgfHwgJ0EgY29tcG9uZW50Jyk7XG4gICAgICB9XG5cbiAgICAgIG93bmVyLnN0YXRlTm9kZS5fd2FybmVkQWJvdXRSZWZzSW5SZW5kZXIgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGlmIChjb21wb25lbnRPckVsZW1lbnQgPT0gbnVsbCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKGNvbXBvbmVudE9yRWxlbWVudC5ub2RlVHlwZSA9PT0gRUxFTUVOVF9OT0RFKSB7XG4gICAgcmV0dXJuIGNvbXBvbmVudE9yRWxlbWVudDtcbiAgfVxuXG4gIHtcbiAgICByZXR1cm4gZmluZEhvc3RJbnN0YW5jZVdpdGhXYXJuaW5nKGNvbXBvbmVudE9yRWxlbWVudCwgJ2ZpbmRET01Ob2RlJyk7XG4gIH1cbn1cbmZ1bmN0aW9uIGh5ZHJhdGUoZWxlbWVudCwgY29udGFpbmVyLCBjYWxsYmFjaykge1xuICBpZiAoIWlzVmFsaWRDb250YWluZXIoY29udGFpbmVyKSkge1xuICAgIHtcbiAgICAgIHRocm93IEVycm9yKCBcIlRhcmdldCBjb250YWluZXIgaXMgbm90IGEgRE9NIGVsZW1lbnQuXCIgKTtcbiAgICB9XG4gIH1cblxuICB7XG4gICAgdmFyIGlzTW9kZXJuUm9vdCA9IGlzQ29udGFpbmVyTWFya2VkQXNSb290KGNvbnRhaW5lcikgJiYgY29udGFpbmVyLl9yZWFjdFJvb3RDb250YWluZXIgPT09IHVuZGVmaW5lZDtcblxuICAgIGlmIChpc01vZGVyblJvb3QpIHtcbiAgICAgIGVycm9yKCdZb3UgYXJlIGNhbGxpbmcgUmVhY3RET00uaHlkcmF0ZSgpIG9uIGEgY29udGFpbmVyIHRoYXQgd2FzIHByZXZpb3VzbHkgJyArICdwYXNzZWQgdG8gUmVhY3RET00uY3JlYXRlUm9vdCgpLiBUaGlzIGlzIG5vdCBzdXBwb3J0ZWQuICcgKyAnRGlkIHlvdSBtZWFuIHRvIGNhbGwgY3JlYXRlUm9vdChjb250YWluZXIsIHtoeWRyYXRlOiB0cnVlfSkucmVuZGVyKGVsZW1lbnQpPycpO1xuICAgIH1cbiAgfSAvLyBUT0RPOiB0aHJvdyBvciB3YXJuIGlmIHdlIGNvdWxkbid0IGh5ZHJhdGU/XG5cblxuICByZXR1cm4gbGVnYWN5UmVuZGVyU3VidHJlZUludG9Db250YWluZXIobnVsbCwgZWxlbWVudCwgY29udGFpbmVyLCB0cnVlLCBjYWxsYmFjayk7XG59XG5mdW5jdGlvbiByZW5kZXIoZWxlbWVudCwgY29udGFpbmVyLCBjYWxsYmFjaykge1xuICBpZiAoIWlzVmFsaWRDb250YWluZXIoY29udGFpbmVyKSkge1xuICAgIHtcbiAgICAgIHRocm93IEVycm9yKCBcIlRhcmdldCBjb250YWluZXIgaXMgbm90IGEgRE9NIGVsZW1lbnQuXCIgKTtcbiAgICB9XG4gIH1cblxuICB7XG4gICAgdmFyIGlzTW9kZXJuUm9vdCA9IGlzQ29udGFpbmVyTWFya2VkQXNSb290KGNvbnRhaW5lcikgJiYgY29udGFpbmVyLl9yZWFjdFJvb3RDb250YWluZXIgPT09IHVuZGVmaW5lZDtcblxuICAgIGlmIChpc01vZGVyblJvb3QpIHtcbiAgICAgIGVycm9yKCdZb3UgYXJlIGNhbGxpbmcgUmVhY3RET00ucmVuZGVyKCkgb24gYSBjb250YWluZXIgdGhhdCB3YXMgcHJldmlvdXNseSAnICsgJ3Bhc3NlZCB0byBSZWFjdERPTS5jcmVhdGVSb290KCkuIFRoaXMgaXMgbm90IHN1cHBvcnRlZC4gJyArICdEaWQgeW91IG1lYW4gdG8gY2FsbCByb290LnJlbmRlcihlbGVtZW50KT8nKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbGVnYWN5UmVuZGVyU3VidHJlZUludG9Db250YWluZXIobnVsbCwgZWxlbWVudCwgY29udGFpbmVyLCBmYWxzZSwgY2FsbGJhY2spO1xufVxuZnVuY3Rpb24gdW5zdGFibGVfcmVuZGVyU3VidHJlZUludG9Db250YWluZXIocGFyZW50Q29tcG9uZW50LCBlbGVtZW50LCBjb250YWluZXJOb2RlLCBjYWxsYmFjaykge1xuICBpZiAoIWlzVmFsaWRDb250YWluZXIoY29udGFpbmVyTm9kZSkpIHtcbiAgICB7XG4gICAgICB0aHJvdyBFcnJvciggXCJUYXJnZXQgY29udGFpbmVyIGlzIG5vdCBhIERPTSBlbGVtZW50LlwiICk7XG4gICAgfVxuICB9XG5cbiAgaWYgKCEocGFyZW50Q29tcG9uZW50ICE9IG51bGwgJiYgaGFzKHBhcmVudENvbXBvbmVudCkpKSB7XG4gICAge1xuICAgICAgdGhyb3cgRXJyb3IoIFwicGFyZW50Q29tcG9uZW50IG11c3QgYmUgYSB2YWxpZCBSZWFjdCBDb21wb25lbnRcIiApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBsZWdhY3lSZW5kZXJTdWJ0cmVlSW50b0NvbnRhaW5lcihwYXJlbnRDb21wb25lbnQsIGVsZW1lbnQsIGNvbnRhaW5lck5vZGUsIGZhbHNlLCBjYWxsYmFjayk7XG59XG5mdW5jdGlvbiB1bm1vdW50Q29tcG9uZW50QXROb2RlKGNvbnRhaW5lcikge1xuICBpZiAoIWlzVmFsaWRDb250YWluZXIoY29udGFpbmVyKSkge1xuICAgIHtcbiAgICAgIHRocm93IEVycm9yKCBcInVubW91bnRDb21wb25lbnRBdE5vZGUoLi4uKTogVGFyZ2V0IGNvbnRhaW5lciBpcyBub3QgYSBET00gZWxlbWVudC5cIiApO1xuICAgIH1cbiAgfVxuXG4gIHtcbiAgICB2YXIgaXNNb2Rlcm5Sb290ID0gaXNDb250YWluZXJNYXJrZWRBc1Jvb3QoY29udGFpbmVyKSAmJiBjb250YWluZXIuX3JlYWN0Um9vdENvbnRhaW5lciA9PT0gdW5kZWZpbmVkO1xuXG4gICAgaWYgKGlzTW9kZXJuUm9vdCkge1xuICAgICAgZXJyb3IoJ1lvdSBhcmUgY2FsbGluZyBSZWFjdERPTS51bm1vdW50Q29tcG9uZW50QXROb2RlKCkgb24gYSBjb250YWluZXIgdGhhdCB3YXMgcHJldmlvdXNseSAnICsgJ3Bhc3NlZCB0byBSZWFjdERPTS5jcmVhdGVSb290KCkuIFRoaXMgaXMgbm90IHN1cHBvcnRlZC4gRGlkIHlvdSBtZWFuIHRvIGNhbGwgcm9vdC51bm1vdW50KCk/Jyk7XG4gICAgfVxuICB9XG5cbiAgaWYgKGNvbnRhaW5lci5fcmVhY3RSb290Q29udGFpbmVyKSB7XG4gICAge1xuICAgICAgdmFyIHJvb3RFbCA9IGdldFJlYWN0Um9vdEVsZW1lbnRJbkNvbnRhaW5lcihjb250YWluZXIpO1xuICAgICAgdmFyIHJlbmRlcmVkQnlEaWZmZXJlbnRSZWFjdCA9IHJvb3RFbCAmJiAhZ2V0SW5zdGFuY2VGcm9tTm9kZShyb290RWwpO1xuXG4gICAgICBpZiAocmVuZGVyZWRCeURpZmZlcmVudFJlYWN0KSB7XG4gICAgICAgIGVycm9yKFwidW5tb3VudENvbXBvbmVudEF0Tm9kZSgpOiBUaGUgbm9kZSB5b3UncmUgYXR0ZW1wdGluZyB0byB1bm1vdW50IFwiICsgJ3dhcyByZW5kZXJlZCBieSBhbm90aGVyIGNvcHkgb2YgUmVhY3QuJyk7XG4gICAgICB9XG4gICAgfSAvLyBVbm1vdW50IHNob3VsZCBub3QgYmUgYmF0Y2hlZC5cblxuXG4gICAgdW5iYXRjaGVkVXBkYXRlcyhmdW5jdGlvbiAoKSB7XG4gICAgICBsZWdhY3lSZW5kZXJTdWJ0cmVlSW50b0NvbnRhaW5lcihudWxsLCBudWxsLCBjb250YWluZXIsIGZhbHNlLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIC8vICRGbG93Rml4TWUgVGhpcyBzaG91bGQgcHJvYmFibHkgdXNlIGBkZWxldGUgY29udGFpbmVyLl9yZWFjdFJvb3RDb250YWluZXJgXG4gICAgICAgIGNvbnRhaW5lci5fcmVhY3RSb290Q29udGFpbmVyID0gbnVsbDtcbiAgICAgICAgdW5tYXJrQ29udGFpbmVyQXNSb290KGNvbnRhaW5lcik7XG4gICAgICB9KTtcbiAgICB9KTsgLy8gSWYgeW91IGNhbGwgdW5tb3VudENvbXBvbmVudEF0Tm9kZSB0d2ljZSBpbiBxdWljayBzdWNjZXNzaW9uLCB5b3UnbGxcbiAgICAvLyBnZXQgYHRydWVgIHR3aWNlLiBUaGF0J3MgcHJvYmFibHkgZmluZT9cblxuICAgIHJldHVybiB0cnVlO1xuICB9IGVsc2Uge1xuICAgIHtcbiAgICAgIHZhciBfcm9vdEVsID0gZ2V0UmVhY3RSb290RWxlbWVudEluQ29udGFpbmVyKGNvbnRhaW5lcik7XG5cbiAgICAgIHZhciBoYXNOb25Sb290UmVhY3RDaGlsZCA9ICEhKF9yb290RWwgJiYgZ2V0SW5zdGFuY2VGcm9tTm9kZShfcm9vdEVsKSk7IC8vIENoZWNrIGlmIHRoZSBjb250YWluZXIgaXRzZWxmIGlzIGEgUmVhY3Qgcm9vdCBub2RlLlxuXG4gICAgICB2YXIgaXNDb250YWluZXJSZWFjdFJvb3QgPSBjb250YWluZXIubm9kZVR5cGUgPT09IEVMRU1FTlRfTk9ERSAmJiBpc1ZhbGlkQ29udGFpbmVyKGNvbnRhaW5lci5wYXJlbnROb2RlKSAmJiAhIWNvbnRhaW5lci5wYXJlbnROb2RlLl9yZWFjdFJvb3RDb250YWluZXI7XG5cbiAgICAgIGlmIChoYXNOb25Sb290UmVhY3RDaGlsZCkge1xuICAgICAgICBlcnJvcihcInVubW91bnRDb21wb25lbnRBdE5vZGUoKTogVGhlIG5vZGUgeW91J3JlIGF0dGVtcHRpbmcgdG8gdW5tb3VudCBcIiArICd3YXMgcmVuZGVyZWQgYnkgUmVhY3QgYW5kIGlzIG5vdCBhIHRvcC1sZXZlbCBjb250YWluZXIuICVzJywgaXNDb250YWluZXJSZWFjdFJvb3QgPyAnWW91IG1heSBoYXZlIGFjY2lkZW50YWxseSBwYXNzZWQgaW4gYSBSZWFjdCByb290IG5vZGUgaW5zdGVhZCAnICsgJ29mIGl0cyBjb250YWluZXIuJyA6ICdJbnN0ZWFkLCBoYXZlIHRoZSBwYXJlbnQgY29tcG9uZW50IHVwZGF0ZSBpdHMgc3RhdGUgYW5kICcgKyAncmVyZW5kZXIgaW4gb3JkZXIgdG8gcmVtb3ZlIHRoaXMgY29tcG9uZW50LicpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5zZXRBdHRlbXB0VXNlckJsb2NraW5nSHlkcmF0aW9uKGF0dGVtcHRVc2VyQmxvY2tpbmdIeWRyYXRpb24kMSk7XG5zZXRBdHRlbXB0Q29udGludW91c0h5ZHJhdGlvbihhdHRlbXB0Q29udGludW91c0h5ZHJhdGlvbiQxKTtcbnNldEF0dGVtcHRIeWRyYXRpb25BdEN1cnJlbnRQcmlvcml0eShhdHRlbXB0SHlkcmF0aW9uQXRDdXJyZW50UHJpb3JpdHkkMSk7XG5zZXRBdHRlbXB0SHlkcmF0aW9uQXRQcmlvcml0eShydW5XaXRoUHJpb3JpdHkkMik7XG52YXIgZGlkV2FybkFib3V0VW5zdGFibGVDcmVhdGVQb3J0YWwgPSBmYWxzZTtcblxue1xuICBpZiAodHlwZW9mIE1hcCAhPT0gJ2Z1bmN0aW9uJyB8fCAvLyAkRmxvd0lzc3VlIEZsb3cgaW5jb3JyZWN0bHkgdGhpbmtzIE1hcCBoYXMgbm8gcHJvdG90eXBlXG4gIE1hcC5wcm90b3R5cGUgPT0gbnVsbCB8fCB0eXBlb2YgTWFwLnByb3RvdHlwZS5mb3JFYWNoICE9PSAnZnVuY3Rpb24nIHx8IHR5cGVvZiBTZXQgIT09ICdmdW5jdGlvbicgfHwgLy8gJEZsb3dJc3N1ZSBGbG93IGluY29ycmVjdGx5IHRoaW5rcyBTZXQgaGFzIG5vIHByb3RvdHlwZVxuICBTZXQucHJvdG90eXBlID09IG51bGwgfHwgdHlwZW9mIFNldC5wcm90b3R5cGUuY2xlYXIgIT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIFNldC5wcm90b3R5cGUuZm9yRWFjaCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIGVycm9yKCdSZWFjdCBkZXBlbmRzIG9uIE1hcCBhbmQgU2V0IGJ1aWx0LWluIHR5cGVzLiBNYWtlIHN1cmUgdGhhdCB5b3UgbG9hZCBhICcgKyAncG9seWZpbGwgaW4gb2xkZXIgYnJvd3NlcnMuIGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9yZWFjdC1wb2x5ZmlsbHMnKTtcbiAgfVxufVxuXG5zZXRSZXN0b3JlSW1wbGVtZW50YXRpb24ocmVzdG9yZUNvbnRyb2xsZWRTdGF0ZSQzKTtcbnNldEJhdGNoaW5nSW1wbGVtZW50YXRpb24oYmF0Y2hlZFVwZGF0ZXMkMSwgZGlzY3JldGVVcGRhdGVzJDEsIGZsdXNoRGlzY3JldGVVcGRhdGVzLCBiYXRjaGVkRXZlbnRVcGRhdGVzJDEpO1xuXG5mdW5jdGlvbiBjcmVhdGVQb3J0YWwkMShjaGlsZHJlbiwgY29udGFpbmVyKSB7XG4gIHZhciBrZXkgPSBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiBhcmd1bWVudHNbMl0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1syXSA6IG51bGw7XG5cbiAgaWYgKCFpc1ZhbGlkQ29udGFpbmVyKGNvbnRhaW5lcikpIHtcbiAgICB7XG4gICAgICB0aHJvdyBFcnJvciggXCJUYXJnZXQgY29udGFpbmVyIGlzIG5vdCBhIERPTSBlbGVtZW50LlwiICk7XG4gICAgfVxuICB9IC8vIFRPRE86IHBhc3MgUmVhY3RET00gcG9ydGFsIGltcGxlbWVudGF0aW9uIGFzIHRoaXJkIGFyZ3VtZW50XG4gIC8vICRGbG93Rml4TWUgVGhlIEZsb3cgdHlwZSBpcyBvcGFxdWUgYnV0IHRoZXJlJ3Mgbm8gd2F5IHRvIGFjdHVhbGx5IGNyZWF0ZSBpdC5cblxuXG4gIHJldHVybiBjcmVhdGVQb3J0YWwoY2hpbGRyZW4sIGNvbnRhaW5lciwgbnVsbCwga2V5KTtcbn1cblxuZnVuY3Rpb24gcmVuZGVyU3VidHJlZUludG9Db250YWluZXIocGFyZW50Q29tcG9uZW50LCBlbGVtZW50LCBjb250YWluZXJOb2RlLCBjYWxsYmFjaykge1xuXG4gIHJldHVybiB1bnN0YWJsZV9yZW5kZXJTdWJ0cmVlSW50b0NvbnRhaW5lcihwYXJlbnRDb21wb25lbnQsIGVsZW1lbnQsIGNvbnRhaW5lck5vZGUsIGNhbGxiYWNrKTtcbn1cblxuZnVuY3Rpb24gdW5zdGFibGVfY3JlYXRlUG9ydGFsKGNoaWxkcmVuLCBjb250YWluZXIpIHtcbiAgdmFyIGtleSA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDogbnVsbDtcblxuICB7XG4gICAgaWYgKCFkaWRXYXJuQWJvdXRVbnN0YWJsZUNyZWF0ZVBvcnRhbCkge1xuICAgICAgZGlkV2FybkFib3V0VW5zdGFibGVDcmVhdGVQb3J0YWwgPSB0cnVlO1xuXG4gICAgICB3YXJuKCdUaGUgUmVhY3RET00udW5zdGFibGVfY3JlYXRlUG9ydGFsKCkgYWxpYXMgaGFzIGJlZW4gZGVwcmVjYXRlZCwgJyArICdhbmQgd2lsbCBiZSByZW1vdmVkIGluIFJlYWN0IDE4Ky4gVXBkYXRlIHlvdXIgY29kZSB0byB1c2UgJyArICdSZWFjdERPTS5jcmVhdGVQb3J0YWwoKSBpbnN0ZWFkLiBJdCBoYXMgdGhlIGV4YWN0IHNhbWUgQVBJLCAnICsgJ2J1dCB3aXRob3V0IHRoZSBcInVuc3RhYmxlX1wiIHByZWZpeC4nKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gY3JlYXRlUG9ydGFsJDEoY2hpbGRyZW4sIGNvbnRhaW5lciwga2V5KTtcbn1cblxudmFyIEludGVybmFscyA9IHtcbiAgLy8gS2VlcCBpbiBzeW5jIHdpdGggUmVhY3RUZXN0VXRpbHMuanMsIGFuZCBSZWFjdFRlc3RVdGlsc0FjdC5qcy5cbiAgLy8gVGhpcyBpcyBhbiBhcnJheSBmb3IgYmV0dGVyIG1pbmlmaWNhdGlvbi5cbiAgRXZlbnRzOiBbZ2V0SW5zdGFuY2VGcm9tTm9kZSwgZ2V0Tm9kZUZyb21JbnN0YW5jZSwgZ2V0RmliZXJDdXJyZW50UHJvcHNGcm9tTm9kZSwgZW5xdWV1ZVN0YXRlUmVzdG9yZSwgcmVzdG9yZVN0YXRlSWZOZWVkZWQsIGZsdXNoUGFzc2l2ZUVmZmVjdHMsIC8vIFRPRE86IFRoaXMgaXMgcmVsYXRlZCB0byBgYWN0YCwgbm90IGV2ZW50cy4gTW92ZSB0byBzZXBhcmF0ZSBrZXk/XG4gIElzVGhpc1JlbmRlcmVyQWN0aW5nXVxufTtcbnZhciBmb3VuZERldlRvb2xzID0gaW5qZWN0SW50b0RldlRvb2xzKHtcbiAgZmluZEZpYmVyQnlIb3N0SW5zdGFuY2U6IGdldENsb3Nlc3RJbnN0YW5jZUZyb21Ob2RlLFxuICBidW5kbGVUeXBlOiAgMSAsXG4gIHZlcnNpb246IFJlYWN0VmVyc2lvbixcbiAgcmVuZGVyZXJQYWNrYWdlTmFtZTogJ3JlYWN0LWRvbSdcbn0pO1xuXG57XG4gIGlmICghZm91bmREZXZUb29scyAmJiBjYW5Vc2VET00gJiYgd2luZG93LnRvcCA9PT0gd2luZG93LnNlbGYpIHtcbiAgICAvLyBJZiB3ZSdyZSBpbiBDaHJvbWUgb3IgRmlyZWZveCwgcHJvdmlkZSBhIGRvd25sb2FkIGxpbmsgaWYgbm90IGluc3RhbGxlZC5cbiAgICBpZiAobmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCdDaHJvbWUnKSA+IC0xICYmIG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZignRWRnZScpID09PSAtMSB8fCBuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoJ0ZpcmVmb3gnKSA+IC0xKSB7XG4gICAgICB2YXIgcHJvdG9jb2wgPSB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2w7IC8vIERvbid0IHdhcm4gaW4gZXhvdGljIGNhc2VzIGxpa2UgY2hyb21lLWV4dGVuc2lvbjovLy5cblxuICAgICAgaWYgKC9eKGh0dHBzP3xmaWxlKTokLy50ZXN0KHByb3RvY29sKSkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nXG4gICAgICAgIGNvbnNvbGUuaW5mbygnJWNEb3dubG9hZCB0aGUgUmVhY3QgRGV2VG9vbHMgJyArICdmb3IgYSBiZXR0ZXIgZGV2ZWxvcG1lbnQgZXhwZXJpZW5jZTogJyArICdodHRwczovL3JlYWN0anMub3JnL2xpbmsvcmVhY3QtZGV2dG9vbHMnICsgKHByb3RvY29sID09PSAnZmlsZTonID8gJ1xcbllvdSBtaWdodCBuZWVkIHRvIHVzZSBhIGxvY2FsIEhUVFAgc2VydmVyIChpbnN0ZWFkIG9mIGZpbGU6Ly8pOiAnICsgJ2h0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9yZWFjdC1kZXZ0b29scy1mYXEnIDogJycpLCAnZm9udC13ZWlnaHQ6Ym9sZCcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnRzLl9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEID0gSW50ZXJuYWxzO1xuZXhwb3J0cy5jcmVhdGVQb3J0YWwgPSBjcmVhdGVQb3J0YWwkMTtcbmV4cG9ydHMuZmluZERPTU5vZGUgPSBmaW5kRE9NTm9kZTtcbmV4cG9ydHMuZmx1c2hTeW5jID0gZmx1c2hTeW5jO1xuZXhwb3J0cy5oeWRyYXRlID0gaHlkcmF0ZTtcbmV4cG9ydHMucmVuZGVyID0gcmVuZGVyO1xuZXhwb3J0cy51bm1vdW50Q29tcG9uZW50QXROb2RlID0gdW5tb3VudENvbXBvbmVudEF0Tm9kZTtcbmV4cG9ydHMudW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXMgPSBiYXRjaGVkVXBkYXRlcyQxO1xuZXhwb3J0cy51bnN0YWJsZV9jcmVhdGVQb3J0YWwgPSB1bnN0YWJsZV9jcmVhdGVQb3J0YWw7XG5leHBvcnRzLnVuc3RhYmxlX3JlbmRlclN1YnRyZWVJbnRvQ29udGFpbmVyID0gcmVuZGVyU3VidHJlZUludG9Db250YWluZXI7XG5leHBvcnRzLnZlcnNpb24gPSBSZWFjdFZlcnNpb247XG4gIH0pKCk7XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-dom/cjs/react-dom.development.js\n"); + +/***/ }), + +/***/ "./node_modules/react-dom/index.js": +/*!*****************************************!*\ + !*** ./node_modules/react-dom/index.js ***! + \*****************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (true) {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-dom.development.js */ \"./node_modules/react-dom/cjs/react-dom.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLElBQXFDO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLElBQUksS0FBcUMsRUFBRSxFQUsxQyxDQUFDO0FBQ0YsRUFBRSxtSUFBMEQ7QUFDNUQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9pbmRleC5qcz83NzIyIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuZnVuY3Rpb24gY2hlY2tEQ0UoKSB7XG4gIC8qIGdsb2JhbCBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gKi9cbiAgaWYgKFxuICAgIHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gPT09ICd1bmRlZmluZWQnIHx8XG4gICAgdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRSAhPT0gJ2Z1bmN0aW9uJ1xuICApIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAvLyBUaGlzIGJyYW5jaCBpcyB1bnJlYWNoYWJsZSBiZWNhdXNlIHRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWRcbiAgICAvLyBpbiBwcm9kdWN0aW9uLCBidXQgdGhlIGNvbmRpdGlvbiBpcyB0cnVlIG9ubHkgaW4gZGV2ZWxvcG1lbnQuXG4gICAgLy8gVGhlcmVmb3JlIGlmIHRoZSBicmFuY2ggaXMgc3RpbGwgaGVyZSwgZGVhZCBjb2RlIGVsaW1pbmF0aW9uIHdhc24ndFxuICAgIC8vIHByb3Blcmx5IGFwcGxpZWQuXG4gICAgLy8gRG9uJ3QgY2hhbmdlIHRoZSBtZXNzYWdlLiBSZWFjdCBEZXZUb29scyByZWxpZXMgb24gaXQuIEFsc28gbWFrZSBzdXJlXG4gICAgLy8gdGhpcyBtZXNzYWdlIGRvZXNuJ3Qgb2NjdXIgZWxzZXdoZXJlIGluIHRoaXMgZnVuY3Rpb24sIG9yIGl0IHdpbGwgY2F1c2VcbiAgICAvLyBhIGZhbHNlIHBvc2l0aXZlLlxuICAgIHRocm93IG5ldyBFcnJvcignXl9eJyk7XG4gIH1cbiAgdHJ5IHtcbiAgICAvLyBWZXJpZnkgdGhhdCB0aGUgY29kZSBhYm92ZSBoYXMgYmVlbiBkZWFkIGNvZGUgZWxpbWluYXRlZCAoRENFJ2QpLlxuICAgIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRShjaGVja0RDRSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIC8vIERldlRvb2xzIHNob3VsZG4ndCBjcmFzaCBSZWFjdCwgbm8gbWF0dGVyIHdoYXQuXG4gICAgLy8gV2Ugc2hvdWxkIHN0aWxsIHJlcG9ydCBpbiBjYXNlIHdlIGJyZWFrIHRoaXMgY29kZS5cbiAgICBjb25zb2xlLmVycm9yKGVycik7XG4gIH1cbn1cblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgLy8gRENFIGNoZWNrIHNob3VsZCBoYXBwZW4gYmVmb3JlIFJlYWN0RE9NIGJ1bmRsZSBleGVjdXRlcyBzbyB0aGF0XG4gIC8vIERldlRvb2xzIGNhbiByZXBvcnQgYmFkIG1pbmlmaWNhdGlvbiBkdXJpbmcgaW5qZWN0aW9uLlxuICBjaGVja0RDRSgpO1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWRvbS5wcm9kdWN0aW9uLm1pbi5qcycpO1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1kb20uZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-dom/index.js\n"); + +/***/ }), + +/***/ "./node_modules/react-is/cjs/react-is.development.js": +/*!***********************************************************!*\ + !*** ./node_modules/react-is/cjs/react-is.development.js ***! + \***********************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("/** @license React v17.0.2\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its 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\n\n\nif (true) {\n (function() {\n'use strict';\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar REACT_ELEMENT_TYPE = 0xeac7;\nvar REACT_PORTAL_TYPE = 0xeaca;\nvar REACT_FRAGMENT_TYPE = 0xeacb;\nvar REACT_STRICT_MODE_TYPE = 0xeacc;\nvar REACT_PROFILER_TYPE = 0xead2;\nvar REACT_PROVIDER_TYPE = 0xeacd;\nvar REACT_CONTEXT_TYPE = 0xeace;\nvar REACT_FORWARD_REF_TYPE = 0xead0;\nvar REACT_SUSPENSE_TYPE = 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = 0xead8;\nvar REACT_MEMO_TYPE = 0xead3;\nvar REACT_LAZY_TYPE = 0xead4;\nvar REACT_BLOCK_TYPE = 0xead9;\nvar REACT_SERVER_BLOCK_TYPE = 0xeada;\nvar REACT_FUNDAMENTAL_TYPE = 0xead5;\nvar REACT_SCOPE_TYPE = 0xead7;\nvar REACT_OPAQUE_ID_TYPE = 0xeae0;\nvar REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1;\nvar REACT_OFFSCREEN_TYPE = 0xeae2;\nvar REACT_LEGACY_HIDDEN_TYPE = 0xeae3;\n\nif (typeof Symbol === 'function' && Symbol.for) {\n var symbolFor = Symbol.for;\n REACT_ELEMENT_TYPE = symbolFor('react.element');\n REACT_PORTAL_TYPE = symbolFor('react.portal');\n REACT_FRAGMENT_TYPE = symbolFor('react.fragment');\n REACT_STRICT_MODE_TYPE = symbolFor('react.strict_mode');\n REACT_PROFILER_TYPE = symbolFor('react.profiler');\n REACT_PROVIDER_TYPE = symbolFor('react.provider');\n REACT_CONTEXT_TYPE = symbolFor('react.context');\n REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref');\n REACT_SUSPENSE_TYPE = symbolFor('react.suspense');\n REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list');\n REACT_MEMO_TYPE = symbolFor('react.memo');\n REACT_LAZY_TYPE = symbolFor('react.lazy');\n REACT_BLOCK_TYPE = symbolFor('react.block');\n REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block');\n REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental');\n REACT_SCOPE_TYPE = symbolFor('react.scope');\n REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id');\n REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode');\n REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen');\n REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden');\n}\n\n// Filter certain DOM attributes (e.g. src, href) if their values are empty strings.\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || type === REACT_DEBUG_TRACING_MODE_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_LEGACY_HIDDEN_TYPE || enableScopeAPI ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_BLOCK_TYPE || type[0] === REACT_SERVER_BLOCK_TYPE) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\nvar hasWarnedAboutDeprecatedIsConcurrentMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isConcurrentMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsConcurrentMode) {\n hasWarnedAboutDeprecatedIsConcurrentMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isConcurrentMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtaXMvY2pzL3JlYWN0LWlzLmRldmVsb3BtZW50LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWE7O0FBRWIsSUFBSSxJQUFxQztBQUN6QztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUEsNEJBQTRCOztBQUU1QjtBQUNBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNEQUFzRDs7QUFFdEQ7QUFDQTtBQUNBO0FBQ0Esa0RBQWtEOztBQUVsRDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVEQUF1RDs7QUFFdkQ7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsdUJBQXVCO0FBQ3ZCLHVCQUF1QjtBQUN2QixlQUFlO0FBQ2Ysa0JBQWtCO0FBQ2xCLGdCQUFnQjtBQUNoQixZQUFZO0FBQ1osWUFBWTtBQUNaLGNBQWM7QUFDZCxnQkFBZ0I7QUFDaEIsa0JBQWtCO0FBQ2xCLGdCQUFnQjtBQUNoQixtQkFBbUI7QUFDbkIsd0JBQXdCO0FBQ3hCLHlCQUF5QjtBQUN6Qix5QkFBeUI7QUFDekIsaUJBQWlCO0FBQ2pCLG9CQUFvQjtBQUNwQixrQkFBa0I7QUFDbEIsY0FBYztBQUNkLGNBQWM7QUFDZCxnQkFBZ0I7QUFDaEIsa0JBQWtCO0FBQ2xCLG9CQUFvQjtBQUNwQixrQkFBa0I7QUFDbEIsMEJBQTBCO0FBQzFCLGNBQWM7QUFDZCxHQUFHO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWlzL2Nqcy9yZWFjdC1pcy5kZXZlbG9wbWVudC5qcz80OTZhIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBAbGljZW5zZSBSZWFjdCB2MTcuMC4yXG4gKiByZWFjdC1pcy5kZXZlbG9wbWVudC5qc1xuICpcbiAqIENvcHlyaWdodCAoYykgRmFjZWJvb2ssIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAoZnVuY3Rpb24oKSB7XG4ndXNlIHN0cmljdCc7XG5cbi8vIEFUVEVOVElPTlxuLy8gV2hlbiBhZGRpbmcgbmV3IHN5bWJvbHMgdG8gdGhpcyBmaWxlLFxuLy8gUGxlYXNlIGNvbnNpZGVyIGFsc28gYWRkaW5nIHRvICdyZWFjdC1kZXZ0b29scy1zaGFyZWQvc3JjL2JhY2tlbmQvUmVhY3RTeW1ib2xzJ1xuLy8gVGhlIFN5bWJvbCB1c2VkIHRvIHRhZyB0aGUgUmVhY3RFbGVtZW50LWxpa2UgdHlwZXMuIElmIHRoZXJlIGlzIG5vIG5hdGl2ZSBTeW1ib2xcbi8vIG5vciBwb2x5ZmlsbCwgdGhlbiBhIHBsYWluIG51bWJlciBpcyB1c2VkIGZvciBwZXJmb3JtYW5jZS5cbnZhciBSRUFDVF9FTEVNRU5UX1RZUEUgPSAweGVhYzc7XG52YXIgUkVBQ1RfUE9SVEFMX1RZUEUgPSAweGVhY2E7XG52YXIgUkVBQ1RfRlJBR01FTlRfVFlQRSA9IDB4ZWFjYjtcbnZhciBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFID0gMHhlYWNjO1xudmFyIFJFQUNUX1BST0ZJTEVSX1RZUEUgPSAweGVhZDI7XG52YXIgUkVBQ1RfUFJPVklERVJfVFlQRSA9IDB4ZWFjZDtcbnZhciBSRUFDVF9DT05URVhUX1RZUEUgPSAweGVhY2U7XG52YXIgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSA9IDB4ZWFkMDtcbnZhciBSRUFDVF9TVVNQRU5TRV9UWVBFID0gMHhlYWQxO1xudmFyIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSA9IDB4ZWFkODtcbnZhciBSRUFDVF9NRU1PX1RZUEUgPSAweGVhZDM7XG52YXIgUkVBQ1RfTEFaWV9UWVBFID0gMHhlYWQ0O1xudmFyIFJFQUNUX0JMT0NLX1RZUEUgPSAweGVhZDk7XG52YXIgUkVBQ1RfU0VSVkVSX0JMT0NLX1RZUEUgPSAweGVhZGE7XG52YXIgUkVBQ1RfRlVOREFNRU5UQUxfVFlQRSA9IDB4ZWFkNTtcbnZhciBSRUFDVF9TQ09QRV9UWVBFID0gMHhlYWQ3O1xudmFyIFJFQUNUX09QQVFVRV9JRF9UWVBFID0gMHhlYWUwO1xudmFyIFJFQUNUX0RFQlVHX1RSQUNJTkdfTU9ERV9UWVBFID0gMHhlYWUxO1xudmFyIFJFQUNUX09GRlNDUkVFTl9UWVBFID0gMHhlYWUyO1xudmFyIFJFQUNUX0xFR0FDWV9ISURERU5fVFlQRSA9IDB4ZWFlMztcblxuaWYgKHR5cGVvZiBTeW1ib2wgPT09ICdmdW5jdGlvbicgJiYgU3ltYm9sLmZvcikge1xuICB2YXIgc3ltYm9sRm9yID0gU3ltYm9sLmZvcjtcbiAgUkVBQ1RfRUxFTUVOVF9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5lbGVtZW50Jyk7XG4gIFJFQUNUX1BPUlRBTF9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5wb3J0YWwnKTtcbiAgUkVBQ1RfRlJBR01FTlRfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QuZnJhZ21lbnQnKTtcbiAgUkVBQ1RfU1RSSUNUX01PREVfVFlQRSA9IHN5bWJvbEZvcigncmVhY3Quc3RyaWN0X21vZGUnKTtcbiAgUkVBQ1RfUFJPRklMRVJfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QucHJvZmlsZXInKTtcbiAgUkVBQ1RfUFJPVklERVJfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QucHJvdmlkZXInKTtcbiAgUkVBQ1RfQ09OVEVYVF9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5jb250ZXh0Jyk7XG4gIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LmZvcndhcmRfcmVmJyk7XG4gIFJFQUNUX1NVU1BFTlNFX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LnN1c3BlbnNlJyk7XG4gIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSA9IHN5bWJvbEZvcigncmVhY3Quc3VzcGVuc2VfbGlzdCcpO1xuICBSRUFDVF9NRU1PX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0Lm1lbW8nKTtcbiAgUkVBQ1RfTEFaWV9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5sYXp5Jyk7XG4gIFJFQUNUX0JMT0NLX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LmJsb2NrJyk7XG4gIFJFQUNUX1NFUlZFUl9CTE9DS19UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5zZXJ2ZXIuYmxvY2snKTtcbiAgUkVBQ1RfRlVOREFNRU5UQUxfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QuZnVuZGFtZW50YWwnKTtcbiAgUkVBQ1RfU0NPUEVfVFlQRSA9IHN5bWJvbEZvcigncmVhY3Quc2NvcGUnKTtcbiAgUkVBQ1RfT1BBUVVFX0lEX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0Lm9wYXF1ZS5pZCcpO1xuICBSRUFDVF9ERUJVR19UUkFDSU5HX01PREVfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QuZGVidWdfdHJhY2VfbW9kZScpO1xuICBSRUFDVF9PRkZTQ1JFRU5fVFlQRSA9IHN5bWJvbEZvcigncmVhY3Qub2Zmc2NyZWVuJyk7XG4gIFJFQUNUX0xFR0FDWV9ISURERU5fVFlQRSA9IHN5bWJvbEZvcigncmVhY3QubGVnYWN5X2hpZGRlbicpO1xufVxuXG4vLyBGaWx0ZXIgY2VydGFpbiBET00gYXR0cmlidXRlcyAoZS5nLiBzcmMsIGhyZWYpIGlmIHRoZWlyIHZhbHVlcyBhcmUgZW1wdHkgc3RyaW5ncy5cblxudmFyIGVuYWJsZVNjb3BlQVBJID0gZmFsc2U7IC8vIEV4cGVyaW1lbnRhbCBDcmVhdGUgRXZlbnQgSGFuZGxlIEFQSS5cblxuZnVuY3Rpb24gaXNWYWxpZEVsZW1lbnRUeXBlKHR5cGUpIHtcbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiB0cnVlO1xuICB9IC8vIE5vdGU6IHR5cGVvZiBtaWdodCBiZSBvdGhlciB0aGFuICdzeW1ib2wnIG9yICdudW1iZXInIChlLmcuIGlmIGl0J3MgYSBwb2x5ZmlsbCkuXG5cblxuICBpZiAodHlwZSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9QUk9GSUxFUl9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX0RFQlVHX1RSQUNJTkdfTU9ERV9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgfHwgdHlwZSA9PT0gUkVBQ1RfU1VTUEVOU0VfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUgfHwgdHlwZSA9PT0gUkVBQ1RfTEVHQUNZX0hJRERFTl9UWVBFIHx8IGVuYWJsZVNjb3BlQVBJICkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnb2JqZWN0JyAmJiB0eXBlICE9PSBudWxsKSB7XG4gICAgaWYgKHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0xBWllfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9NRU1PX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfUFJPVklERVJfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9DT05URVhUX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9GVU5EQU1FTlRBTF9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0JMT0NLX1RZUEUgfHwgdHlwZVswXSA9PT0gUkVBQ1RfU0VSVkVSX0JMT0NLX1RZUEUpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gdHlwZU9mKG9iamVjdCkge1xuICBpZiAodHlwZW9mIG9iamVjdCA9PT0gJ29iamVjdCcgJiYgb2JqZWN0ICE9PSBudWxsKSB7XG4gICAgdmFyICQkdHlwZW9mID0gb2JqZWN0LiQkdHlwZW9mO1xuXG4gICAgc3dpdGNoICgkJHR5cGVvZikge1xuICAgICAgY2FzZSBSRUFDVF9FTEVNRU5UX1RZUEU6XG4gICAgICAgIHZhciB0eXBlID0gb2JqZWN0LnR5cGU7XG5cbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgY2FzZSBSRUFDVF9GUkFHTUVOVF9UWVBFOlxuICAgICAgICAgIGNhc2UgUkVBQ1RfUFJPRklMRVJfVFlQRTpcbiAgICAgICAgICBjYXNlIFJFQUNUX1NUUklDVF9NT0RFX1RZUEU6XG4gICAgICAgICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9UWVBFOlxuICAgICAgICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFOlxuICAgICAgICAgICAgcmV0dXJuIHR5cGU7XG5cbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdmFyICQkdHlwZW9mVHlwZSA9IHR5cGUgJiYgdHlwZS4kJHR5cGVvZjtcblxuICAgICAgICAgICAgc3dpdGNoICgkJHR5cGVvZlR5cGUpIHtcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9DT05URVhUX1RZUEU6XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTpcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOlxuICAgICAgICAgICAgICBjYXNlIFJFQUNUX1BST1ZJREVSX1RZUEU6XG4gICAgICAgICAgICAgICAgcmV0dXJuICQkdHlwZW9mVHlwZTtcblxuICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiAkJHR5cGVvZjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgIGNhc2UgUkVBQ1RfUE9SVEFMX1RZUEU6XG4gICAgICAgIHJldHVybiAkJHR5cGVvZjtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxudmFyIENvbnRleHRDb25zdW1lciA9IFJFQUNUX0NPTlRFWFRfVFlQRTtcbnZhciBDb250ZXh0UHJvdmlkZXIgPSBSRUFDVF9QUk9WSURFUl9UWVBFO1xudmFyIEVsZW1lbnQgPSBSRUFDVF9FTEVNRU5UX1RZUEU7XG52YXIgRm9yd2FyZFJlZiA9IFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU7XG52YXIgRnJhZ21lbnQgPSBSRUFDVF9GUkFHTUVOVF9UWVBFO1xudmFyIExhenkgPSBSRUFDVF9MQVpZX1RZUEU7XG52YXIgTWVtbyA9IFJFQUNUX01FTU9fVFlQRTtcbnZhciBQb3J0YWwgPSBSRUFDVF9QT1JUQUxfVFlQRTtcbnZhciBQcm9maWxlciA9IFJFQUNUX1BST0ZJTEVSX1RZUEU7XG52YXIgU3RyaWN0TW9kZSA9IFJFQUNUX1NUUklDVF9NT0RFX1RZUEU7XG52YXIgU3VzcGVuc2UgPSBSRUFDVF9TVVNQRU5TRV9UWVBFO1xudmFyIGhhc1dhcm5lZEFib3V0RGVwcmVjYXRlZElzQXN5bmNNb2RlID0gZmFsc2U7XG52YXIgaGFzV2FybmVkQWJvdXREZXByZWNhdGVkSXNDb25jdXJyZW50TW9kZSA9IGZhbHNlOyAvLyBBc3luY01vZGUgc2hvdWxkIGJlIGRlcHJlY2F0ZWRcblxuZnVuY3Rpb24gaXNBc3luY01vZGUob2JqZWN0KSB7XG4gIHtcbiAgICBpZiAoIWhhc1dhcm5lZEFib3V0RGVwcmVjYXRlZElzQXN5bmNNb2RlKSB7XG4gICAgICBoYXNXYXJuZWRBYm91dERlcHJlY2F0ZWRJc0FzeW5jTW9kZSA9IHRydWU7IC8vIFVzaW5nIGNvbnNvbGVbJ3dhcm4nXSB0byBldmFkZSBCYWJlbCBhbmQgRVNMaW50XG5cbiAgICAgIGNvbnNvbGVbJ3dhcm4nXSgnVGhlIFJlYWN0SXMuaXNBc3luY01vZGUoKSBhbGlhcyBoYXMgYmVlbiBkZXByZWNhdGVkLCAnICsgJ2FuZCB3aWxsIGJlIHJlbW92ZWQgaW4gUmVhY3QgMTgrLicpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cbmZ1bmN0aW9uIGlzQ29uY3VycmVudE1vZGUob2JqZWN0KSB7XG4gIHtcbiAgICBpZiAoIWhhc1dhcm5lZEFib3V0RGVwcmVjYXRlZElzQ29uY3VycmVudE1vZGUpIHtcbiAgICAgIGhhc1dhcm5lZEFib3V0RGVwcmVjYXRlZElzQ29uY3VycmVudE1vZGUgPSB0cnVlOyAvLyBVc2luZyBjb25zb2xlWyd3YXJuJ10gdG8gZXZhZGUgQmFiZWwgYW5kIEVTTGludFxuXG4gICAgICBjb25zb2xlWyd3YXJuJ10oJ1RoZSBSZWFjdElzLmlzQ29uY3VycmVudE1vZGUoKSBhbGlhcyBoYXMgYmVlbiBkZXByZWNhdGVkLCAnICsgJ2FuZCB3aWxsIGJlIHJlbW92ZWQgaW4gUmVhY3QgMTgrLicpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cbmZ1bmN0aW9uIGlzQ29udGV4dENvbnN1bWVyKG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX0NPTlRFWFRfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzQ29udGV4dFByb3ZpZGVyKG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX1BST1ZJREVSX1RZUEU7XG59XG5mdW5jdGlvbiBpc0VsZW1lbnQob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlb2Ygb2JqZWN0ID09PSAnb2JqZWN0JyAmJiBvYmplY3QgIT09IG51bGwgJiYgb2JqZWN0LiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEU7XG59XG5mdW5jdGlvbiBpc0ZvcndhcmRSZWYob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzRnJhZ21lbnQob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzTGF6eShvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9MQVpZX1RZUEU7XG59XG5mdW5jdGlvbiBpc01lbW8ob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfTUVNT19UWVBFO1xufVxuZnVuY3Rpb24gaXNQb3J0YWwob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfUE9SVEFMX1RZUEU7XG59XG5mdW5jdGlvbiBpc1Byb2ZpbGVyKG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX1BST0ZJTEVSX1RZUEU7XG59XG5mdW5jdGlvbiBpc1N0cmljdE1vZGUob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfU1RSSUNUX01PREVfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzU3VzcGVuc2Uob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfU1VTUEVOU0VfVFlQRTtcbn1cblxuZXhwb3J0cy5Db250ZXh0Q29uc3VtZXIgPSBDb250ZXh0Q29uc3VtZXI7XG5leHBvcnRzLkNvbnRleHRQcm92aWRlciA9IENvbnRleHRQcm92aWRlcjtcbmV4cG9ydHMuRWxlbWVudCA9IEVsZW1lbnQ7XG5leHBvcnRzLkZvcndhcmRSZWYgPSBGb3J3YXJkUmVmO1xuZXhwb3J0cy5GcmFnbWVudCA9IEZyYWdtZW50O1xuZXhwb3J0cy5MYXp5ID0gTGF6eTtcbmV4cG9ydHMuTWVtbyA9IE1lbW87XG5leHBvcnRzLlBvcnRhbCA9IFBvcnRhbDtcbmV4cG9ydHMuUHJvZmlsZXIgPSBQcm9maWxlcjtcbmV4cG9ydHMuU3RyaWN0TW9kZSA9IFN0cmljdE1vZGU7XG5leHBvcnRzLlN1c3BlbnNlID0gU3VzcGVuc2U7XG5leHBvcnRzLmlzQXN5bmNNb2RlID0gaXNBc3luY01vZGU7XG5leHBvcnRzLmlzQ29uY3VycmVudE1vZGUgPSBpc0NvbmN1cnJlbnRNb2RlO1xuZXhwb3J0cy5pc0NvbnRleHRDb25zdW1lciA9IGlzQ29udGV4dENvbnN1bWVyO1xuZXhwb3J0cy5pc0NvbnRleHRQcm92aWRlciA9IGlzQ29udGV4dFByb3ZpZGVyO1xuZXhwb3J0cy5pc0VsZW1lbnQgPSBpc0VsZW1lbnQ7XG5leHBvcnRzLmlzRm9yd2FyZFJlZiA9IGlzRm9yd2FyZFJlZjtcbmV4cG9ydHMuaXNGcmFnbWVudCA9IGlzRnJhZ21lbnQ7XG5leHBvcnRzLmlzTGF6eSA9IGlzTGF6eTtcbmV4cG9ydHMuaXNNZW1vID0gaXNNZW1vO1xuZXhwb3J0cy5pc1BvcnRhbCA9IGlzUG9ydGFsO1xuZXhwb3J0cy5pc1Byb2ZpbGVyID0gaXNQcm9maWxlcjtcbmV4cG9ydHMuaXNTdHJpY3RNb2RlID0gaXNTdHJpY3RNb2RlO1xuZXhwb3J0cy5pc1N1c3BlbnNlID0gaXNTdXNwZW5zZTtcbmV4cG9ydHMuaXNWYWxpZEVsZW1lbnRUeXBlID0gaXNWYWxpZEVsZW1lbnRUeXBlO1xuZXhwb3J0cy50eXBlT2YgPSB0eXBlT2Y7XG4gIH0pKCk7XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-is/cjs/react-is.development.js\n"); + +/***/ }), + +/***/ "./node_modules/react-is/index.js": +/*!****************************************!*\ + !*** ./node_modules/react-is/index.js ***! + \****************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ \"./node_modules/react-is/cjs/react-is.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtaXMvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsSUFBSSxLQUFxQyxFQUFFLEVBRTFDLENBQUM7QUFDRixFQUFFLGdJQUF5RDtBQUMzRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmVhY3QtaXMvaW5kZXguanM/YjMxMyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtaXMucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtaXMuZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-is/index.js\n"); + +/***/ }), + +/***/ "./node_modules/react/cjs/react.development.js": +/*!*****************************************************!*\ + !*** ./node_modules/react/cjs/react.development.js ***! + \*****************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("/** @license React v17.0.2\n * react.development.js\n *\n * Copyright (c) Facebook, Inc. and its 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\n\n\nif (true) {\n (function() {\n'use strict';\n\nvar _assign = __webpack_require__(/*! object-assign */ \"./node_modules/next/dist/build/polyfills/object-assign.js\");\n\n// TODO: this is special because it gets imported during build.\nvar ReactVersion = '17.0.2';\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar REACT_ELEMENT_TYPE = 0xeac7;\nvar REACT_PORTAL_TYPE = 0xeaca;\nexports.Fragment = 0xeacb;\nexports.StrictMode = 0xeacc;\nexports.Profiler = 0xead2;\nvar REACT_PROVIDER_TYPE = 0xeacd;\nvar REACT_CONTEXT_TYPE = 0xeace;\nvar REACT_FORWARD_REF_TYPE = 0xead0;\nexports.Suspense = 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = 0xead8;\nvar REACT_MEMO_TYPE = 0xead3;\nvar REACT_LAZY_TYPE = 0xead4;\nvar REACT_BLOCK_TYPE = 0xead9;\nvar REACT_SERVER_BLOCK_TYPE = 0xeada;\nvar REACT_FUNDAMENTAL_TYPE = 0xead5;\nvar REACT_SCOPE_TYPE = 0xead7;\nvar REACT_OPAQUE_ID_TYPE = 0xeae0;\nvar REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1;\nvar REACT_OFFSCREEN_TYPE = 0xeae2;\nvar REACT_LEGACY_HIDDEN_TYPE = 0xeae3;\n\nif (typeof Symbol === 'function' && Symbol.for) {\n var symbolFor = Symbol.for;\n REACT_ELEMENT_TYPE = symbolFor('react.element');\n REACT_PORTAL_TYPE = symbolFor('react.portal');\n exports.Fragment = symbolFor('react.fragment');\n exports.StrictMode = symbolFor('react.strict_mode');\n exports.Profiler = symbolFor('react.profiler');\n REACT_PROVIDER_TYPE = symbolFor('react.provider');\n REACT_CONTEXT_TYPE = symbolFor('react.context');\n REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref');\n exports.Suspense = symbolFor('react.suspense');\n REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list');\n REACT_MEMO_TYPE = symbolFor('react.memo');\n REACT_LAZY_TYPE = symbolFor('react.lazy');\n REACT_BLOCK_TYPE = symbolFor('react.block');\n REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block');\n REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental');\n REACT_SCOPE_TYPE = symbolFor('react.scope');\n REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id');\n REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode');\n REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen');\n REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden');\n}\n\nvar MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\n return null;\n }\n\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n\n return null;\n}\n\n/**\n * Keeps track of the current dispatcher.\n */\nvar ReactCurrentDispatcher = {\n /**\n * @internal\n * @type {ReactComponent}\n */\n current: null\n};\n\n/**\n * Keeps track of the current batch's configuration such as how long an update\n * should suspend for if it needs to.\n */\nvar ReactCurrentBatchConfig = {\n transition: 0\n};\n\n/**\n * Keeps track of the current owner.\n *\n * The current owner is the component who should own any components that are\n * currently being constructed.\n */\nvar ReactCurrentOwner = {\n /**\n * @internal\n * @type {ReactComponent}\n */\n current: null\n};\n\nvar ReactDebugCurrentFrame = {};\nvar currentExtraStackFrame = null;\nfunction setExtraStackFrame(stack) {\n {\n currentExtraStackFrame = stack;\n }\n}\n\n{\n ReactDebugCurrentFrame.setExtraStackFrame = function (stack) {\n {\n currentExtraStackFrame = stack;\n }\n }; // Stack implementation injected by the current renderer.\n\n\n ReactDebugCurrentFrame.getCurrentStack = null;\n\n ReactDebugCurrentFrame.getStackAddendum = function () {\n var stack = ''; // Add an extra top frame while an element is being validated\n\n if (currentExtraStackFrame) {\n stack += currentExtraStackFrame;\n } // Delegate to the injected renderer-specific implementation\n\n\n var impl = ReactDebugCurrentFrame.getCurrentStack;\n\n if (impl) {\n stack += impl() || '';\n }\n\n return stack;\n };\n}\n\n/**\n * Used by act() to track whether you're inside an act() scope.\n */\nvar IsSomeRendererActing = {\n current: false\n};\n\nvar ReactSharedInternals = {\n ReactCurrentDispatcher: ReactCurrentDispatcher,\n ReactCurrentBatchConfig: ReactCurrentBatchConfig,\n ReactCurrentOwner: ReactCurrentOwner,\n IsSomeRendererActing: IsSomeRendererActing,\n // Used by renderers to avoid bundling object-assign twice in UMD bundles:\n assign: _assign\n};\n\n{\n ReactSharedInternals.ReactDebugCurrentFrame = ReactDebugCurrentFrame;\n}\n\n// by calls to these methods by a Babel plugin.\n//\n// In PROD (or in packages without access to React internals),\n// they are left as they are instead.\n\nfunction warn(format) {\n {\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\n printWarning('warn', format, args);\n }\n}\nfunction error(format) {\n {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n printWarning('error', format, args);\n }\n}\n\nfunction printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n }\n\n var argsWithFormat = args.map(function (item) {\n return '' + item;\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n}\n\nvar didWarnStateUpdateForUnmountedComponent = {};\n\nfunction warnNoop(publicInstance, callerName) {\n {\n var _constructor = publicInstance.constructor;\n var componentName = _constructor && (_constructor.displayName || _constructor.name) || 'ReactClass';\n var warningKey = componentName + \".\" + callerName;\n\n if (didWarnStateUpdateForUnmountedComponent[warningKey]) {\n return;\n }\n\n error(\"Can't call %s on a component that is not yet mounted. \" + 'This is a no-op, but it might indicate a bug in your application. ' + 'Instead, assign to `this.state` directly or define a `state = {};` ' + 'class property with the desired state in the %s component.', callerName, componentName);\n\n didWarnStateUpdateForUnmountedComponent[warningKey] = true;\n }\n}\n/**\n * This is the abstract API for an update queue.\n */\n\n\nvar ReactNoopUpdateQueue = {\n /**\n * Checks whether or not this composite component is mounted.\n * @param {ReactClass} publicInstance The instance we want to test.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function (publicInstance) {\n return false;\n },\n\n /**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {?function} callback Called after component is updated.\n * @param {?string} callerName name of the calling function in the public API.\n * @internal\n */\n enqueueForceUpdate: function (publicInstance, callback, callerName) {\n warnNoop(publicInstance, 'forceUpdate');\n },\n\n /**\n * Replaces all of the state. Always use this or `setState` to mutate state.\n * You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} completeState Next state.\n * @param {?function} callback Called after component is updated.\n * @param {?string} callerName name of the calling function in the public API.\n * @internal\n */\n enqueueReplaceState: function (publicInstance, completeState, callback, callerName) {\n warnNoop(publicInstance, 'replaceState');\n },\n\n /**\n * Sets a subset of the state. This only exists because _pendingState is\n * internal. This provides a merging strategy that is not available to deep\n * properties which is confusing. TODO: Expose pendingState or don't use it\n * during the merge.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} partialState Next partial state to be merged with state.\n * @param {?function} callback Called after component is updated.\n * @param {?string} Name of the calling function in the public API.\n * @internal\n */\n enqueueSetState: function (publicInstance, partialState, callback, callerName) {\n warnNoop(publicInstance, 'setState');\n }\n};\n\nvar emptyObject = {};\n\n{\n Object.freeze(emptyObject);\n}\n/**\n * Base class helpers for the updating state of a component.\n */\n\n\nfunction Component(props, context, updater) {\n this.props = props;\n this.context = context; // If a component has string refs, we will assign a different object later.\n\n this.refs = emptyObject; // We initialize the default updater but the real one gets injected by the\n // renderer.\n\n this.updater = updater || ReactNoopUpdateQueue;\n}\n\nComponent.prototype.isReactComponent = {};\n/**\n * Sets a subset of the state. Always use this to mutate\n * state. You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * There is no guarantee that calls to `setState` will run synchronously,\n * as they may eventually be batched together. You can provide an optional\n * callback that will be executed when the call to setState is actually\n * completed.\n *\n * When a function is provided to setState, it will be called at some point in\n * the future (not synchronously). It will be called with the up to date\n * component arguments (state, props, context). These values can be different\n * from this.* because your function may be called after receiveProps but before\n * shouldComponentUpdate, and this new state, props, and context will not yet be\n * assigned to this.\n *\n * @param {object|function} partialState Next partial state or function to\n * produce next partial state to be merged with current state.\n * @param {?function} callback Called after state is updated.\n * @final\n * @protected\n */\n\nComponent.prototype.setState = function (partialState, callback) {\n if (!(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null)) {\n {\n throw Error( \"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\" );\n }\n }\n\n this.updater.enqueueSetState(this, partialState, callback, 'setState');\n};\n/**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {?function} callback Called after update is complete.\n * @final\n * @protected\n */\n\n\nComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, 'forceUpdate');\n};\n/**\n * Deprecated APIs. These APIs used to exist on classic React classes but since\n * we would like to deprecate them, we're not going to move them over to this\n * modern base class. Instead, we define a getter that warns if it's accessed.\n */\n\n\n{\n var deprecatedAPIs = {\n isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],\n replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).']\n };\n\n var defineDeprecationWarning = function (methodName, info) {\n Object.defineProperty(Component.prototype, methodName, {\n get: function () {\n warn('%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]);\n\n return undefined;\n }\n });\n };\n\n for (var fnName in deprecatedAPIs) {\n if (deprecatedAPIs.hasOwnProperty(fnName)) {\n defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n }\n }\n}\n\nfunction ComponentDummy() {}\n\nComponentDummy.prototype = Component.prototype;\n/**\n * Convenience component with default shallow equality check for sCU.\n */\n\nfunction PureComponent(props, context, updater) {\n this.props = props;\n this.context = context; // If a component has string refs, we will assign a different object later.\n\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\n\nvar pureComponentPrototype = PureComponent.prototype = new ComponentDummy();\npureComponentPrototype.constructor = PureComponent; // Avoid an extra prototype jump for these methods.\n\n_assign(pureComponentPrototype, Component.prototype);\n\npureComponentPrototype.isPureReactComponent = true;\n\n// an immutable object with a single mutable value\nfunction createRef() {\n var refObject = {\n current: null\n };\n\n {\n Object.seal(refObject);\n }\n\n return refObject;\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var functionName = innerType.displayName || innerType.name || '';\n return outerType.displayName || (functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName);\n}\n\nfunction getContextName(type) {\n return type.displayName || 'Context';\n}\n\nfunction getComponentName(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n\n {\n if (typeof type.tag === 'number') {\n error('Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.');\n }\n }\n\n if (typeof type === 'function') {\n return type.displayName || type.name || null;\n }\n\n if (typeof type === 'string') {\n return type;\n }\n\n switch (type) {\n case exports.Fragment:\n return 'Fragment';\n\n case REACT_PORTAL_TYPE:\n return 'Portal';\n\n case exports.Profiler:\n return 'Profiler';\n\n case exports.StrictMode:\n return 'StrictMode';\n\n case exports.Suspense:\n return 'Suspense';\n\n case REACT_SUSPENSE_LIST_TYPE:\n return 'SuspenseList';\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + '.Consumer';\n\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + '.Provider';\n\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, 'ForwardRef');\n\n case REACT_MEMO_TYPE:\n return getComponentName(type.type);\n\n case REACT_BLOCK_TYPE:\n return getComponentName(type._render);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n return getComponentName(init(payload));\n } catch (x) {\n return null;\n }\n }\n }\n }\n\n return null;\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n};\nvar specialPropKeyWarningShown, specialPropRefWarningShown, didWarnAboutStringRefs;\n\n{\n didWarnAboutStringRefs = {};\n}\n\nfunction hasValidRef(config) {\n {\n if (hasOwnProperty.call(config, 'ref')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n {\n if (hasOwnProperty.call(config, 'key')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.key !== undefined;\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n var warnAboutAccessingKey = function () {\n {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n\n error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n }\n };\n\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n var warnAboutAccessingRef = function () {\n {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n\n error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n }\n };\n\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n}\n\nfunction warnIfStringRefCannotBeAutoConverted(config) {\n {\n if (typeof config.ref === 'string' && ReactCurrentOwner.current && config.__self && ReactCurrentOwner.current.stateNode !== config.__self) {\n var componentName = getComponentName(ReactCurrentOwner.current.type);\n\n if (!didWarnAboutStringRefs[componentName]) {\n error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', componentName, config.ref);\n\n didWarnAboutStringRefs[componentName] = true;\n }\n }\n }\n}\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */\n\n\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allows us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n // Record the component responsible for creating this element.\n _owner: owner\n };\n\n {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n\n Object.defineProperty(element._store, 'validated', {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n }); // self and source are DEV only properties.\n\n Object.defineProperty(element, '_self', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n }); // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n\n Object.defineProperty(element, '_source', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n\n return element;\n};\n/**\n * Create and return a new ReactElement of the given type.\n * See https://reactjs.org/docs/react-api.html#createelement\n */\n\nfunction createElement(type, config, children) {\n var propName; // Reserved names are extracted\n\n var props = {};\n var key = null;\n var ref = null;\n var self = null;\n var source = null;\n\n if (config != null) {\n if (hasValidRef(config)) {\n ref = config.ref;\n\n {\n warnIfStringRefCannotBeAutoConverted(config);\n }\n }\n\n if (hasValidKey(config)) {\n key = '' + config.key;\n }\n\n self = config.__self === undefined ? null : config.__self;\n source = config.__source === undefined ? null : config.__source; // Remaining properties are added to a new props object\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n }\n } // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n\n\n var childrenLength = arguments.length - 2;\n\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 2];\n }\n\n {\n if (Object.freeze) {\n Object.freeze(childArray);\n }\n }\n\n props.children = childArray;\n } // Resolve default props\n\n\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n\n {\n if (key || ref) {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n }\n\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n}\nfunction cloneAndReplaceKey(oldElement, newKey) {\n var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props);\n return newElement;\n}\n/**\n * Clone and return a new ReactElement using element as the starting point.\n * See https://reactjs.org/docs/react-api.html#cloneelement\n */\n\nfunction cloneElement(element, config, children) {\n if (!!(element === null || element === undefined)) {\n {\n throw Error( \"React.cloneElement(...): The argument must be a React element, but you passed \" + element + \".\" );\n }\n }\n\n var propName; // Original props are copied\n\n var props = _assign({}, element.props); // Reserved names are extracted\n\n\n var key = element.key;\n var ref = element.ref; // Self is preserved since the owner is preserved.\n\n var self = element._self; // Source is preserved since cloneElement is unlikely to be targeted by a\n // transpiler, and the original source is probably a better indicator of the\n // true owner.\n\n var source = element._source; // Owner will be preserved, unless ref is overridden\n\n var owner = element._owner;\n\n if (config != null) {\n if (hasValidRef(config)) {\n // Silently steal the ref from the parent.\n ref = config.ref;\n owner = ReactCurrentOwner.current;\n }\n\n if (hasValidKey(config)) {\n key = '' + config.key;\n } // Remaining properties override existing props\n\n\n var defaultProps;\n\n if (element.type && element.type.defaultProps) {\n defaultProps = element.type.defaultProps;\n }\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n if (config[propName] === undefined && defaultProps !== undefined) {\n // Resolve default props\n props[propName] = defaultProps[propName];\n } else {\n props[propName] = config[propName];\n }\n }\n }\n } // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n\n\n var childrenLength = arguments.length - 2;\n\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 2];\n }\n\n props.children = childArray;\n }\n\n return ReactElement(element.type, key, ref, self, source, owner, props);\n}\n/**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */\n\nfunction isValidElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\n\nvar SEPARATOR = '.';\nvar SUBSEPARATOR = ':';\n/**\n * Escape and wrap key so it is safe to use as a reactid\n *\n * @param {string} key to be escaped.\n * @return {string} the escaped key.\n */\n\nfunction escape(key) {\n var escapeRegex = /[=:]/g;\n var escaperLookup = {\n '=': '=0',\n ':': '=2'\n };\n var escapedString = key.replace(escapeRegex, function (match) {\n return escaperLookup[match];\n });\n return '$' + escapedString;\n}\n/**\n * TODO: Test that a single child and an array with one item have the same key\n * pattern.\n */\n\n\nvar didWarnAboutMaps = false;\nvar userProvidedKeyEscapeRegex = /\\/+/g;\n\nfunction escapeUserProvidedKey(text) {\n return text.replace(userProvidedKeyEscapeRegex, '$&/');\n}\n/**\n * Generate a key string that identifies a element within a set.\n *\n * @param {*} element A element that could contain a manual key.\n * @param {number} index Index that is used if a manual key is not provided.\n * @return {string}\n */\n\n\nfunction getElementKey(element, index) {\n // Do some typechecking here since we call this blindly. We want to ensure\n // that we don't block potential future ES APIs.\n if (typeof element === 'object' && element !== null && element.key != null) {\n // Explicit key\n return escape('' + element.key);\n } // Implicit key determined by the index in the set\n\n\n return index.toString(36);\n}\n\nfunction mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n\n if (type === 'undefined' || type === 'boolean') {\n // All of the above are perceived as null.\n children = null;\n }\n\n var invokeCallback = false;\n\n if (children === null) {\n invokeCallback = true;\n } else {\n switch (type) {\n case 'string':\n case 'number':\n invokeCallback = true;\n break;\n\n case 'object':\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = true;\n }\n\n }\n }\n\n if (invokeCallback) {\n var _child = children;\n var mappedChild = callback(_child); // If it's the only child, treat the name as if it was wrapped in an array\n // so that it's consistent if the number of children grows:\n\n var childKey = nameSoFar === '' ? SEPARATOR + getElementKey(_child, 0) : nameSoFar;\n\n if (Array.isArray(mappedChild)) {\n var escapedChildKey = '';\n\n if (childKey != null) {\n escapedChildKey = escapeUserProvidedKey(childKey) + '/';\n }\n\n mapIntoArray(mappedChild, array, escapedChildKey, '', function (c) {\n return c;\n });\n } else if (mappedChild != null) {\n if (isValidElement(mappedChild)) {\n mappedChild = cloneAndReplaceKey(mappedChild, // Keep both the (mapped) and old keys if they differ, just as\n // traverseAllChildren used to do for objects as children\n escapedPrefix + ( // $FlowFixMe Flow incorrectly thinks React.Portal doesn't have a key\n mappedChild.key && (!_child || _child.key !== mappedChild.key) ? // $FlowFixMe Flow incorrectly thinks existing element's key can be a number\n escapeUserProvidedKey('' + mappedChild.key) + '/' : '') + childKey);\n }\n\n array.push(mappedChild);\n }\n\n return 1;\n }\n\n var child;\n var nextName;\n var subtreeCount = 0; // Count of children found in the current subtree.\n\n var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR;\n\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n nextName = nextNamePrefix + getElementKey(child, i);\n subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback);\n }\n } else {\n var iteratorFn = getIteratorFn(children);\n\n if (typeof iteratorFn === 'function') {\n var iterableChildren = children;\n\n {\n // Warn about using Maps as children\n if (iteratorFn === iterableChildren.entries) {\n if (!didWarnAboutMaps) {\n warn('Using Maps as children is not supported. ' + 'Use an array of keyed ReactElements instead.');\n }\n\n didWarnAboutMaps = true;\n }\n }\n\n var iterator = iteratorFn.call(iterableChildren);\n var step;\n var ii = 0;\n\n while (!(step = iterator.next()).done) {\n child = step.value;\n nextName = nextNamePrefix + getElementKey(child, ii++);\n subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback);\n }\n } else if (type === 'object') {\n var childrenString = '' + children;\n\n {\n {\n throw Error( \"Objects are not valid as a React child (found: \" + (childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString) + \"). If you meant to render a collection of children, use an array instead.\" );\n }\n }\n }\n }\n\n return subtreeCount;\n}\n\n/**\n * Maps children that are typically specified as `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenmap\n *\n * The provided mapFunction(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} func The map function.\n * @param {*} context Context for mapFunction.\n * @return {object} Object containing the ordered map of results.\n */\nfunction mapChildren(children, func, context) {\n if (children == null) {\n return children;\n }\n\n var result = [];\n var count = 0;\n mapIntoArray(children, result, '', '', function (child) {\n return func.call(context, child, count++);\n });\n return result;\n}\n/**\n * Count the number of children that are typically specified as\n * `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrencount\n *\n * @param {?*} children Children tree container.\n * @return {number} The number of children.\n */\n\n\nfunction countChildren(children) {\n var n = 0;\n mapChildren(children, function () {\n n++; // Don't return anything\n });\n return n;\n}\n\n/**\n * Iterates through children that are typically specified as `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenforeach\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} forEachFunc\n * @param {*} forEachContext Context for forEachContext.\n */\nfunction forEachChildren(children, forEachFunc, forEachContext) {\n mapChildren(children, function () {\n forEachFunc.apply(this, arguments); // Don't return anything.\n }, forEachContext);\n}\n/**\n * Flatten a children object (typically specified as `props.children`) and\n * return an array with appropriately re-keyed children.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrentoarray\n */\n\n\nfunction toArray(children) {\n return mapChildren(children, function (child) {\n return child;\n }) || [];\n}\n/**\n * Returns the first child in a collection of children and verifies that there\n * is only one child in the collection.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenonly\n *\n * The current implementation of this function assumes that a single child gets\n * passed without a wrapper, but the purpose of this helper function is to\n * abstract away the particular structure of children.\n *\n * @param {?object} children Child collection structure.\n * @return {ReactElement} The first and only `ReactElement` contained in the\n * structure.\n */\n\n\nfunction onlyChild(children) {\n if (!isValidElement(children)) {\n {\n throw Error( \"React.Children.only expected to receive a single React element child.\" );\n }\n }\n\n return children;\n}\n\nfunction createContext(defaultValue, calculateChangedBits) {\n if (calculateChangedBits === undefined) {\n calculateChangedBits = null;\n } else {\n {\n if (calculateChangedBits !== null && typeof calculateChangedBits !== 'function') {\n error('createContext: Expected the optional second argument to be a ' + 'function. Instead received: %s', calculateChangedBits);\n }\n }\n }\n\n var context = {\n $$typeof: REACT_CONTEXT_TYPE,\n _calculateChangedBits: calculateChangedBits,\n // As a workaround to support multiple concurrent renderers, we categorize\n // some renderers as primary and others as secondary. We only expect\n // there to be two concurrent renderers at most: React Native (primary) and\n // Fabric (secondary); React DOM (primary) and React ART (secondary).\n // Secondary renderers store their context values on separate fields.\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n // Used to track how many concurrent renderers this context currently\n // supports within in a single renderer. Such as parallel server rendering.\n _threadCount: 0,\n // These are circular\n Provider: null,\n Consumer: null\n };\n context.Provider = {\n $$typeof: REACT_PROVIDER_TYPE,\n _context: context\n };\n var hasWarnedAboutUsingNestedContextConsumers = false;\n var hasWarnedAboutUsingConsumerProvider = false;\n var hasWarnedAboutDisplayNameOnConsumer = false;\n\n {\n // A separate object, but proxies back to the original context object for\n // backwards compatibility. It has a different $$typeof, so we can properly\n // warn for the incorrect usage of Context as a Consumer.\n var Consumer = {\n $$typeof: REACT_CONTEXT_TYPE,\n _context: context,\n _calculateChangedBits: context._calculateChangedBits\n }; // $FlowFixMe: Flow complains about not setting a value, which is intentional here\n\n Object.defineProperties(Consumer, {\n Provider: {\n get: function () {\n if (!hasWarnedAboutUsingConsumerProvider) {\n hasWarnedAboutUsingConsumerProvider = true;\n\n error('Rendering <Context.Consumer.Provider> is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Provider> instead?');\n }\n\n return context.Provider;\n },\n set: function (_Provider) {\n context.Provider = _Provider;\n }\n },\n _currentValue: {\n get: function () {\n return context._currentValue;\n },\n set: function (_currentValue) {\n context._currentValue = _currentValue;\n }\n },\n _currentValue2: {\n get: function () {\n return context._currentValue2;\n },\n set: function (_currentValue2) {\n context._currentValue2 = _currentValue2;\n }\n },\n _threadCount: {\n get: function () {\n return context._threadCount;\n },\n set: function (_threadCount) {\n context._threadCount = _threadCount;\n }\n },\n Consumer: {\n get: function () {\n if (!hasWarnedAboutUsingNestedContextConsumers) {\n hasWarnedAboutUsingNestedContextConsumers = true;\n\n error('Rendering <Context.Consumer.Consumer> is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Consumer> instead?');\n }\n\n return context.Consumer;\n }\n },\n displayName: {\n get: function () {\n return context.displayName;\n },\n set: function (displayName) {\n if (!hasWarnedAboutDisplayNameOnConsumer) {\n warn('Setting `displayName` on Context.Consumer has no effect. ' + \"You should set it directly on the context with Context.displayName = '%s'.\", displayName);\n\n hasWarnedAboutDisplayNameOnConsumer = true;\n }\n }\n }\n }); // $FlowFixMe: Flow complains about missing properties because it doesn't understand defineProperty\n\n context.Consumer = Consumer;\n }\n\n {\n context._currentRenderer = null;\n context._currentRenderer2 = null;\n }\n\n return context;\n}\n\nvar Uninitialized = -1;\nvar Pending = 0;\nvar Resolved = 1;\nvar Rejected = 2;\n\nfunction lazyInitializer(payload) {\n if (payload._status === Uninitialized) {\n var ctor = payload._result;\n var thenable = ctor(); // Transition to the next state.\n\n var pending = payload;\n pending._status = Pending;\n pending._result = thenable;\n thenable.then(function (moduleObject) {\n if (payload._status === Pending) {\n var defaultExport = moduleObject.default;\n\n {\n if (defaultExport === undefined) {\n error('lazy: Expected the result of a dynamic import() call. ' + 'Instead received: %s\\n\\nYour code should look like: \\n ' + // Break up imports to avoid accidentally parsing them as dependencies.\n 'const MyComponent = lazy(() => imp' + \"ort('./MyComponent'))\", moduleObject);\n }\n } // Transition to the next state.\n\n\n var resolved = payload;\n resolved._status = Resolved;\n resolved._result = defaultExport;\n }\n }, function (error) {\n if (payload._status === Pending) {\n // Transition to the next state.\n var rejected = payload;\n rejected._status = Rejected;\n rejected._result = error;\n }\n });\n }\n\n if (payload._status === Resolved) {\n return payload._result;\n } else {\n throw payload._result;\n }\n}\n\nfunction lazy(ctor) {\n var payload = {\n // We use these fields to store the result.\n _status: -1,\n _result: ctor\n };\n var lazyType = {\n $$typeof: REACT_LAZY_TYPE,\n _payload: payload,\n _init: lazyInitializer\n };\n\n {\n // In production, this would just set it on the object.\n var defaultProps;\n var propTypes; // $FlowFixMe\n\n Object.defineProperties(lazyType, {\n defaultProps: {\n configurable: true,\n get: function () {\n return defaultProps;\n },\n set: function (newDefaultProps) {\n error('React.lazy(...): It is not supported to assign `defaultProps` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.');\n\n defaultProps = newDefaultProps; // Match production behavior more closely:\n // $FlowFixMe\n\n Object.defineProperty(lazyType, 'defaultProps', {\n enumerable: true\n });\n }\n },\n propTypes: {\n configurable: true,\n get: function () {\n return propTypes;\n },\n set: function (newPropTypes) {\n error('React.lazy(...): It is not supported to assign `propTypes` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.');\n\n propTypes = newPropTypes; // Match production behavior more closely:\n // $FlowFixMe\n\n Object.defineProperty(lazyType, 'propTypes', {\n enumerable: true\n });\n }\n }\n });\n }\n\n return lazyType;\n}\n\nfunction forwardRef(render) {\n {\n if (render != null && render.$$typeof === REACT_MEMO_TYPE) {\n error('forwardRef requires a render function but received a `memo` ' + 'component. Instead of forwardRef(memo(...)), use ' + 'memo(forwardRef(...)).');\n } else if (typeof render !== 'function') {\n error('forwardRef requires a render function but was given %s.', render === null ? 'null' : typeof render);\n } else {\n if (render.length !== 0 && render.length !== 2) {\n error('forwardRef render functions accept exactly two parameters: props and ref. %s', render.length === 1 ? 'Did you forget to use the ref parameter?' : 'Any additional parameter will be undefined.');\n }\n }\n\n if (render != null) {\n if (render.defaultProps != null || render.propTypes != null) {\n error('forwardRef render functions do not support propTypes or defaultProps. ' + 'Did you accidentally pass a React component?');\n }\n }\n }\n\n var elementType = {\n $$typeof: REACT_FORWARD_REF_TYPE,\n render: render\n };\n\n {\n var ownName;\n Object.defineProperty(elementType, 'displayName', {\n enumerable: false,\n configurable: true,\n get: function () {\n return ownName;\n },\n set: function (name) {\n ownName = name;\n\n if (render.displayName == null) {\n render.displayName = name;\n }\n }\n });\n }\n\n return elementType;\n}\n\n// Filter certain DOM attributes (e.g. src, href) if their values are empty strings.\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === exports.Fragment || type === exports.Profiler || type === REACT_DEBUG_TRACING_MODE_TYPE || type === exports.StrictMode || type === exports.Suspense || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_LEGACY_HIDDEN_TYPE || enableScopeAPI ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_BLOCK_TYPE || type[0] === REACT_SERVER_BLOCK_TYPE) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction memo(type, compare) {\n {\n if (!isValidElementType(type)) {\n error('memo: The first argument must be a component. Instead ' + 'received: %s', type === null ? 'null' : typeof type);\n }\n }\n\n var elementType = {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: compare === undefined ? null : compare\n };\n\n {\n var ownName;\n Object.defineProperty(elementType, 'displayName', {\n enumerable: false,\n configurable: true,\n get: function () {\n return ownName;\n },\n set: function (name) {\n ownName = name;\n\n if (type.displayName == null) {\n type.displayName = name;\n }\n }\n });\n }\n\n return elementType;\n}\n\nfunction resolveDispatcher() {\n var dispatcher = ReactCurrentDispatcher.current;\n\n if (!(dispatcher !== null)) {\n {\n throw Error( \"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.\" );\n }\n }\n\n return dispatcher;\n}\n\nfunction useContext(Context, unstable_observedBits) {\n var dispatcher = resolveDispatcher();\n\n {\n if (unstable_observedBits !== undefined) {\n error('useContext() second argument is reserved for future ' + 'use in React. Passing it is not supported. ' + 'You passed: %s.%s', unstable_observedBits, typeof unstable_observedBits === 'number' && Array.isArray(arguments[2]) ? '\\n\\nDid you call array.map(useContext)? ' + 'Calling Hooks inside a loop is not supported. ' + 'Learn more at https://reactjs.org/link/rules-of-hooks' : '');\n } // TODO: add a more generic warning for invalid values.\n\n\n if (Context._context !== undefined) {\n var realContext = Context._context; // Don't deduplicate because this legitimately causes bugs\n // and nobody should be using this in existing code.\n\n if (realContext.Consumer === Context) {\n error('Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be ' + 'removed in a future major release. Did you mean to call useContext(Context) instead?');\n } else if (realContext.Provider === Context) {\n error('Calling useContext(Context.Provider) is not supported. ' + 'Did you mean to call useContext(Context) instead?');\n }\n }\n }\n\n return dispatcher.useContext(Context, unstable_observedBits);\n}\nfunction useState(initialState) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useState(initialState);\n}\nfunction useReducer(reducer, initialArg, init) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useReducer(reducer, initialArg, init);\n}\nfunction useRef(initialValue) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useRef(initialValue);\n}\nfunction useEffect(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useEffect(create, deps);\n}\nfunction useLayoutEffect(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useLayoutEffect(create, deps);\n}\nfunction useCallback(callback, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useCallback(callback, deps);\n}\nfunction useMemo(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useMemo(create, deps);\n}\nfunction useImperativeHandle(ref, create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useImperativeHandle(ref, create, deps);\n}\nfunction useDebugValue(value, formatterFn) {\n {\n var dispatcher = resolveDispatcher();\n return dispatcher.useDebugValue(value, formatterFn);\n }\n}\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n disabledDepth++;\n }\n}\nfunction reenableLogs() {\n {\n disabledDepth--;\n\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n log: _assign({}, props, {\n value: prevLog\n }),\n info: _assign({}, props, {\n value: prevInfo\n }),\n warn: _assign({}, props, {\n value: prevWarn\n }),\n error: _assign({}, props, {\n value: prevError\n }),\n group: _assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: _assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: _assign({}, props, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n if (disabledDepth < 0) {\n error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n }\n }\n}\n\nvar ReactCurrentDispatcher$1 = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || '';\n }\n } // We use the prefix to ensure our stacks line up with native stack frames.\n\n\n return '\\n' + prefix + name;\n }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n}\n\nfunction describeNativeComponentFrame(fn, construct) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if (!fn || reentry) {\n return '';\n }\n\n {\n var frame = componentFrameCache.get(fn);\n\n if (frame !== undefined) {\n return frame;\n }\n }\n\n var control;\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n\n {\n previousDispatcher = ReactCurrentDispatcher$1.current; // Set the dispatcher in DEV because this might be call in the render function\n // for warnings.\n\n ReactCurrentDispatcher$1.current = null;\n disableLogs();\n }\n\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function () {\n throw Error();\n }; // $FlowFixMe\n\n\n Object.defineProperty(Fake.prototype, 'props', {\n set: function () {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n\n if (typeof Reflect === 'object' && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n }\n\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n }\n\n fn();\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === 'string') {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sample.stack.split('\\n');\n var controlLines = control.stack.split('\\n');\n var s = sampleLines.length - 1;\n var c = controlLines.length - 1;\n\n while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n\n for (; s >= 1 && c >= 0; s--, c--) {\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at ');\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, _frame);\n }\n } // Return the line we found.\n\n\n return _frame;\n }\n } while (s >= 1 && c >= 0);\n }\n\n break;\n }\n }\n }\n } finally {\n reentry = false;\n\n {\n ReactCurrentDispatcher$1.current = previousDispatcher;\n reenableLogs();\n }\n\n Error.prepareStackTrace = previousPrepareStackTrace;\n } // Fallback to just using the name if we couldn't make it throw.\n\n\n var name = fn ? fn.displayName || fn.name : '';\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n\n return syntheticFrame;\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n}\n\nfunction shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n if (type == null) {\n return '';\n }\n\n if (typeof type === 'function') {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n\n if (typeof type === 'string') {\n return describeBuiltInComponentFrame(type);\n }\n\n switch (type) {\n case exports.Suspense:\n return describeBuiltInComponentFrame('Suspense');\n\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame('SuspenseList');\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n\n case REACT_MEMO_TYPE:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n case REACT_BLOCK_TYPE:\n return describeFunctionComponentFrame(type._render);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n\n return '';\n}\n\nvar loggedTypeFailures = {};\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n }\n }\n}\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\n {\n // $FlowFixMe This is okay but Flow doesn't know it.\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n } catch (ex) {\n error$1 = ex;\n }\n\n if (error$1 && !(error$1 instanceof Error)) {\n setCurrentlyValidatingElement(element);\n\n error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n\n setCurrentlyValidatingElement(null);\n }\n\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error$1.message] = true;\n setCurrentlyValidatingElement(element);\n\n error('Failed %s type: %s', location, error$1.message);\n\n setCurrentlyValidatingElement(null);\n }\n }\n }\n }\n}\n\nfunction setCurrentlyValidatingElement$1(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n setExtraStackFrame(stack);\n } else {\n setExtraStackFrame(null);\n }\n }\n}\n\nvar propTypesMisspellWarningShown;\n\n{\n propTypesMisspellWarningShown = false;\n}\n\nfunction getDeclarationErrorAddendum() {\n if (ReactCurrentOwner.current) {\n var name = getComponentName(ReactCurrentOwner.current.type);\n\n if (name) {\n return '\\n\\nCheck the render method of `' + name + '`.';\n }\n }\n\n return '';\n}\n\nfunction getSourceInfoErrorAddendum(source) {\n if (source !== undefined) {\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n var lineNumber = source.lineNumber;\n return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n }\n\n return '';\n}\n\nfunction getSourceInfoErrorAddendumForProps(elementProps) {\n if (elementProps !== null && elementProps !== undefined) {\n return getSourceInfoErrorAddendum(elementProps.__source);\n }\n\n return '';\n}\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n\n\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n var info = getDeclarationErrorAddendum();\n\n if (!info) {\n var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n\n if (parentName) {\n info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n }\n }\n\n return info;\n}\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\n\n\nfunction validateExplicitKey(element, parentType) {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n\n element._store.validated = true;\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n return;\n }\n\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n\n var childOwner = '';\n\n if (element && element._owner && element._owner !== ReactCurrentOwner.current) {\n // Give the component that originally created this child.\n childOwner = \" It was passed a child from \" + getComponentName(element._owner.type) + \".\";\n }\n\n {\n setCurrentlyValidatingElement$1(element);\n\n error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\n\n setCurrentlyValidatingElement$1(null);\n }\n}\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\n\n\nfunction validateChildKeys(node, parentType) {\n if (typeof node !== 'object') {\n return;\n }\n\n if (Array.isArray(node)) {\n for (var i = 0; i < node.length; i++) {\n var child = node[i];\n\n if (isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else if (node) {\n var iteratorFn = getIteratorFn(node);\n\n if (typeof iteratorFn === 'function') {\n // Entry iterators used to provide implicit keys,\n // but now we print a separate warning for them later.\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n\n while (!(step = iterator.next()).done) {\n if (isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n}\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\n\n\nfunction validatePropTypes(element) {\n {\n var type = element.type;\n\n if (type === null || type === undefined || typeof type === 'string') {\n return;\n }\n\n var propTypes;\n\n if (typeof type === 'function') {\n propTypes = type.propTypes;\n } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n // Inner props are checked in the reconciler.\n type.$$typeof === REACT_MEMO_TYPE)) {\n propTypes = type.propTypes;\n } else {\n return;\n }\n\n if (propTypes) {\n // Intentionally inside to avoid triggering lazy initializers:\n var name = getComponentName(type);\n checkPropTypes(propTypes, element.props, 'prop', name, element);\n } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n\n var _name = getComponentName(type);\n\n error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');\n }\n\n if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\n error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\n }\n }\n}\n/**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\n\n\nfunction validateFragmentProps(fragment) {\n {\n var keys = Object.keys(fragment.props);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (key !== 'children' && key !== 'key') {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n\n setCurrentlyValidatingElement$1(null);\n break;\n }\n }\n\n if (fragment.ref !== null) {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid attribute `ref` supplied to `React.Fragment`.');\n\n setCurrentlyValidatingElement$1(null);\n }\n }\n}\nfunction createElementWithValidation(type, props, children) {\n var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n\n if (!validType) {\n var info = '';\n\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n }\n\n var sourceInfo = getSourceInfoErrorAddendumForProps(props);\n\n if (sourceInfo) {\n info += sourceInfo;\n } else {\n info += getDeclarationErrorAddendum();\n }\n\n var typeString;\n\n if (type === null) {\n typeString = 'null';\n } else if (Array.isArray(type)) {\n typeString = 'array';\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n typeString = \"<\" + (getComponentName(type.type) || 'Unknown') + \" />\";\n info = ' Did you accidentally export a JSX literal instead of a component?';\n } else {\n typeString = typeof type;\n }\n\n {\n error('React.createElement: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n }\n }\n\n var element = createElement.apply(this, arguments); // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n\n if (element == null) {\n return element;\n } // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n\n\n if (validType) {\n for (var i = 2; i < arguments.length; i++) {\n validateChildKeys(arguments[i], type);\n }\n }\n\n if (type === exports.Fragment) {\n validateFragmentProps(element);\n } else {\n validatePropTypes(element);\n }\n\n return element;\n}\nvar didWarnAboutDeprecatedCreateFactory = false;\nfunction createFactoryWithValidation(type) {\n var validatedFactory = createElementWithValidation.bind(null, type);\n validatedFactory.type = type;\n\n {\n if (!didWarnAboutDeprecatedCreateFactory) {\n didWarnAboutDeprecatedCreateFactory = true;\n\n warn('React.createFactory() is deprecated and will be removed in ' + 'a future major release. Consider using JSX ' + 'or use React.createElement() directly instead.');\n } // Legacy hook: remove it\n\n\n Object.defineProperty(validatedFactory, 'type', {\n enumerable: false,\n get: function () {\n warn('Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.');\n\n Object.defineProperty(this, 'type', {\n value: type\n });\n return type;\n }\n });\n }\n\n return validatedFactory;\n}\nfunction cloneElementWithValidation(element, props, children) {\n var newElement = cloneElement.apply(this, arguments);\n\n for (var i = 2; i < arguments.length; i++) {\n validateChildKeys(arguments[i], newElement.type);\n }\n\n validatePropTypes(newElement);\n return newElement;\n}\n\n{\n\n try {\n var frozenObject = Object.freeze({});\n /* eslint-disable no-new */\n\n new Map([[frozenObject, null]]);\n new Set([frozenObject]);\n /* eslint-enable no-new */\n } catch (e) {\n }\n}\n\nvar createElement$1 = createElementWithValidation ;\nvar cloneElement$1 = cloneElementWithValidation ;\nvar createFactory = createFactoryWithValidation ;\nvar Children = {\n map: mapChildren,\n forEach: forEachChildren,\n count: countChildren,\n toArray: toArray,\n only: onlyChild\n};\n\nexports.Children = Children;\nexports.Component = Component;\nexports.PureComponent = PureComponent;\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactSharedInternals;\nexports.cloneElement = cloneElement$1;\nexports.createContext = createContext;\nexports.createElement = createElement$1;\nexports.createFactory = createFactory;\nexports.createRef = createRef;\nexports.forwardRef = forwardRef;\nexports.isValidElement = isValidElement;\nexports.lazy = lazy;\nexports.memo = memo;\nexports.useCallback = useCallback;\nexports.useContext = useContext;\nexports.useDebugValue = useDebugValue;\nexports.useEffect = useEffect;\nexports.useImperativeHandle = useImperativeHandle;\nexports.useLayoutEffect = useLayoutEffect;\nexports.useMemo = useMemo;\nexports.useReducer = useReducer;\nexports.useRef = useRef;\nexports.useState = useState;\nexports.version = ReactVersion;\n })();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QvY2pzL3JlYWN0LmRldmVsb3BtZW50LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWE7O0FBRWIsSUFBSSxJQUFxQztBQUN6QztBQUNBOztBQUVBLGNBQWMsbUJBQU8sQ0FBQyxnRkFBZTs7QUFFckM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQixrQkFBa0I7QUFDbEIsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRSxnQkFBZ0I7QUFDbEIsRUFBRSxrQkFBa0I7QUFDcEIsRUFBRSxnQkFBZ0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0EsRUFBRSxnQkFBZ0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7OztBQUdMOztBQUVBO0FBQ0Esb0JBQW9COztBQUVwQjtBQUNBO0FBQ0EsTUFBTTs7O0FBR047O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLDJGQUEyRixhQUFhO0FBQ3hHO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtGQUErRixlQUFlO0FBQzlHO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSyxHQUFHOztBQUVSLGtEQUFrRDtBQUNsRDtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSw4TUFBOE07O0FBRTlNO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxZQUFZO0FBQ3pCLGNBQWMsU0FBUztBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsWUFBWTtBQUN6QixhQUFhLFdBQVc7QUFDeEIsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsWUFBWTtBQUN6QixhQUFhLFFBQVE7QUFDckIsYUFBYSxXQUFXO0FBQ3hCLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxZQUFZO0FBQ3pCLGFBQWEsUUFBUTtBQUNyQixhQUFhLFdBQVc7QUFDeEIsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQSwwQkFBMEI7O0FBRTFCLDJCQUEyQjtBQUMzQjs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLGlCQUFpQjtBQUM1QjtBQUNBLFdBQVcsV0FBVztBQUN0QjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsV0FBVztBQUN0QjtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLDBCQUEwQjs7QUFFMUI7QUFDQTtBQUNBOztBQUVBO0FBQ0Esb0RBQW9EOztBQUVwRDs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxXQUFXLEdBQUc7QUFDZCxXQUFXLEdBQUc7QUFDZCxXQUFXLGVBQWU7QUFDMUIsV0FBVyxHQUFHO0FBQ2QsV0FBVyxHQUFHO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZDtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSyxHQUFHOztBQUVSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLLEdBQUc7QUFDUjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGdCQUFnQjs7QUFFaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EscUVBQXFFOztBQUVyRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOzs7QUFHQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOztBQUVBLG9CQUFvQixvQkFBb0I7QUFDeEM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsSUFBSTs7O0FBR0o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxnQkFBZ0I7O0FBRWhCLHdCQUF3QixrQkFBa0I7OztBQUcxQztBQUNBLHlCQUF5Qjs7QUFFekIsNEJBQTRCO0FBQzVCO0FBQ0E7O0FBRUEsZ0NBQWdDOztBQUVoQzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07OztBQUdOOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOzs7QUFHQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOztBQUVBLG9CQUFvQixvQkFBb0I7QUFDeEM7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFNBQVM7QUFDcEIsWUFBWSxTQUFTO0FBQ3JCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsWUFBWSxRQUFRO0FBQ3BCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLFdBQVcsUUFBUTtBQUNuQixZQUFZO0FBQ1o7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7OztBQUdKO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHdDQUF3QztBQUN4Qzs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsT0FBTztBQUNQLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHdCQUF3Qjs7QUFFeEI7O0FBRUE7QUFDQSxvQkFBb0IscUJBQXFCO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjs7QUFFQTtBQUNBO0FBQ0Esc0lBQXNJLHlDQUF5QztBQUMvSztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLElBQUk7QUFDZixXQUFXLGtCQUFrQjtBQUM3QixXQUFXLEdBQUc7QUFDZCxZQUFZLFFBQVE7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxJQUFJO0FBQ2YsWUFBWSxRQUFRO0FBQ3BCOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsR0FBRztBQUNIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsSUFBSTtBQUNmLFdBQVcsa0JBQWtCO0FBQzdCLFdBQVcsR0FBRztBQUNkO0FBQ0E7QUFDQTtBQUNBLHdDQUF3QztBQUN4QyxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxTQUFTO0FBQ3BCLFlBQVksY0FBYztBQUMxQjtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJCQUEyQjtBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPOztBQUVQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLLEdBQUc7O0FBRVI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLDJCQUEyQjs7QUFFM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVOzs7QUFHVjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUI7O0FBRW5CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTs7QUFFQSwwQ0FBMEM7QUFDMUM7O0FBRUE7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBOztBQUVBLG9DQUFvQztBQUNwQzs7QUFFQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBOztBQUVBOztBQUVBLDRCQUE0Qjs7QUFFNUI7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNOzs7QUFHTjtBQUNBLDBDQUEwQztBQUMxQzs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7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Q0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsZ0JBQWdCO0FBQ2hCLGlCQUFpQjtBQUNqQixxQkFBcUI7QUFDckIsMERBQTBEO0FBQzFELG9CQUFvQjtBQUNwQixxQkFBcUI7QUFDckIscUJBQXFCO0FBQ3JCLHFCQUFxQjtBQUNyQixpQkFBaUI7QUFDakIsa0JBQWtCO0FBQ2xCLHNCQUFzQjtBQUN0QixZQUFZO0FBQ1osWUFBWTtBQUNaLG1CQUFtQjtBQUNuQixrQkFBa0I7QUFDbEIscUJBQXFCO0FBQ3JCLGlCQUFpQjtBQUNqQiwyQkFBMkI7QUFDM0IsdUJBQXVCO0FBQ3ZCLGVBQWU7QUFDZixrQkFBa0I7QUFDbEIsY0FBYztBQUNkLGdCQUFnQjtBQUNoQixlQUFlO0FBQ2YsR0FBRztBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9yZWFjdC9janMvcmVhY3QuZGV2ZWxvcG1lbnQuanM/MWI3ZSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQGxpY2Vuc2UgUmVhY3QgdjE3LjAuMlxuICogcmVhY3QuZGV2ZWxvcG1lbnQuanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIEZhY2Vib29rLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgKGZ1bmN0aW9uKCkge1xuJ3VzZSBzdHJpY3QnO1xuXG52YXIgX2Fzc2lnbiA9IHJlcXVpcmUoJ29iamVjdC1hc3NpZ24nKTtcblxuLy8gVE9ETzogdGhpcyBpcyBzcGVjaWFsIGJlY2F1c2UgaXQgZ2V0cyBpbXBvcnRlZCBkdXJpbmcgYnVpbGQuXG52YXIgUmVhY3RWZXJzaW9uID0gJzE3LjAuMic7XG5cbi8vIEFUVEVOVElPTlxuLy8gV2hlbiBhZGRpbmcgbmV3IHN5bWJvbHMgdG8gdGhpcyBmaWxlLFxuLy8gUGxlYXNlIGNvbnNpZGVyIGFsc28gYWRkaW5nIHRvICdyZWFjdC1kZXZ0b29scy1zaGFyZWQvc3JjL2JhY2tlbmQvUmVhY3RTeW1ib2xzJ1xuLy8gVGhlIFN5bWJvbCB1c2VkIHRvIHRhZyB0aGUgUmVhY3RFbGVtZW50LWxpa2UgdHlwZXMuIElmIHRoZXJlIGlzIG5vIG5hdGl2ZSBTeW1ib2xcbi8vIG5vciBwb2x5ZmlsbCwgdGhlbiBhIHBsYWluIG51bWJlciBpcyB1c2VkIGZvciBwZXJmb3JtYW5jZS5cbnZhciBSRUFDVF9FTEVNRU5UX1RZUEUgPSAweGVhYzc7XG52YXIgUkVBQ1RfUE9SVEFMX1RZUEUgPSAweGVhY2E7XG5leHBvcnRzLkZyYWdtZW50ID0gMHhlYWNiO1xuZXhwb3J0cy5TdHJpY3RNb2RlID0gMHhlYWNjO1xuZXhwb3J0cy5Qcm9maWxlciA9IDB4ZWFkMjtcbnZhciBSRUFDVF9QUk9WSURFUl9UWVBFID0gMHhlYWNkO1xudmFyIFJFQUNUX0NPTlRFWFRfVFlQRSA9IDB4ZWFjZTtcbnZhciBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFID0gMHhlYWQwO1xuZXhwb3J0cy5TdXNwZW5zZSA9IDB4ZWFkMTtcbnZhciBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUgPSAweGVhZDg7XG52YXIgUkVBQ1RfTUVNT19UWVBFID0gMHhlYWQzO1xudmFyIFJFQUNUX0xBWllfVFlQRSA9IDB4ZWFkNDtcbnZhciBSRUFDVF9CTE9DS19UWVBFID0gMHhlYWQ5O1xudmFyIFJFQUNUX1NFUlZFUl9CTE9DS19UWVBFID0gMHhlYWRhO1xudmFyIFJFQUNUX0ZVTkRBTUVOVEFMX1RZUEUgPSAweGVhZDU7XG52YXIgUkVBQ1RfU0NPUEVfVFlQRSA9IDB4ZWFkNztcbnZhciBSRUFDVF9PUEFRVUVfSURfVFlQRSA9IDB4ZWFlMDtcbnZhciBSRUFDVF9ERUJVR19UUkFDSU5HX01PREVfVFlQRSA9IDB4ZWFlMTtcbnZhciBSRUFDVF9PRkZTQ1JFRU5fVFlQRSA9IDB4ZWFlMjtcbnZhciBSRUFDVF9MRUdBQ1lfSElEREVOX1RZUEUgPSAweGVhZTM7XG5cbmlmICh0eXBlb2YgU3ltYm9sID09PSAnZnVuY3Rpb24nICYmIFN5bWJvbC5mb3IpIHtcbiAgdmFyIHN5bWJvbEZvciA9IFN5bWJvbC5mb3I7XG4gIFJFQUNUX0VMRU1FTlRfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QuZWxlbWVudCcpO1xuICBSRUFDVF9QT1JUQUxfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QucG9ydGFsJyk7XG4gIGV4cG9ydHMuRnJhZ21lbnQgPSBzeW1ib2xGb3IoJ3JlYWN0LmZyYWdtZW50Jyk7XG4gIGV4cG9ydHMuU3RyaWN0TW9kZSA9IHN5bWJvbEZvcigncmVhY3Quc3RyaWN0X21vZGUnKTtcbiAgZXhwb3J0cy5Qcm9maWxlciA9IHN5bWJvbEZvcigncmVhY3QucHJvZmlsZXInKTtcbiAgUkVBQ1RfUFJPVklERVJfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QucHJvdmlkZXInKTtcbiAgUkVBQ1RfQ09OVEVYVF9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5jb250ZXh0Jyk7XG4gIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LmZvcndhcmRfcmVmJyk7XG4gIGV4cG9ydHMuU3VzcGVuc2UgPSBzeW1ib2xGb3IoJ3JlYWN0LnN1c3BlbnNlJyk7XG4gIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSA9IHN5bWJvbEZvcigncmVhY3Quc3VzcGVuc2VfbGlzdCcpO1xuICBSRUFDVF9NRU1PX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0Lm1lbW8nKTtcbiAgUkVBQ1RfTEFaWV9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5sYXp5Jyk7XG4gIFJFQUNUX0JMT0NLX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LmJsb2NrJyk7XG4gIFJFQUNUX1NFUlZFUl9CTE9DS19UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5zZXJ2ZXIuYmxvY2snKTtcbiAgUkVBQ1RfRlVOREFNRU5UQUxfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QuZnVuZGFtZW50YWwnKTtcbiAgUkVBQ1RfU0NPUEVfVFlQRSA9IHN5bWJvbEZvcigncmVhY3Quc2NvcGUnKTtcbiAgUkVBQ1RfT1BBUVVFX0lEX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0Lm9wYXF1ZS5pZCcpO1xuICBSRUFDVF9ERUJVR19UUkFDSU5HX01PREVfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QuZGVidWdfdHJhY2VfbW9kZScpO1xuICBSRUFDVF9PRkZTQ1JFRU5fVFlQRSA9IHN5bWJvbEZvcigncmVhY3Qub2Zmc2NyZWVuJyk7XG4gIFJFQUNUX0xFR0FDWV9ISURERU5fVFlQRSA9IHN5bWJvbEZvcigncmVhY3QubGVnYWN5X2hpZGRlbicpO1xufVxuXG52YXIgTUFZQkVfSVRFUkFUT1JfU1lNQk9MID0gdHlwZW9mIFN5bWJvbCA9PT0gJ2Z1bmN0aW9uJyAmJiBTeW1ib2wuaXRlcmF0b3I7XG52YXIgRkFVWF9JVEVSQVRPUl9TWU1CT0wgPSAnQEBpdGVyYXRvcic7XG5mdW5jdGlvbiBnZXRJdGVyYXRvckZuKG1heWJlSXRlcmFibGUpIHtcbiAgaWYgKG1heWJlSXRlcmFibGUgPT09IG51bGwgfHwgdHlwZW9mIG1heWJlSXRlcmFibGUgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICB2YXIgbWF5YmVJdGVyYXRvciA9IE1BWUJFX0lURVJBVE9SX1NZTUJPTCAmJiBtYXliZUl0ZXJhYmxlW01BWUJFX0lURVJBVE9SX1NZTUJPTF0gfHwgbWF5YmVJdGVyYWJsZVtGQVVYX0lURVJBVE9SX1NZTUJPTF07XG5cbiAgaWYgKHR5cGVvZiBtYXliZUl0ZXJhdG9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIG1heWJlSXRlcmF0b3I7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBLZWVwcyB0cmFjayBvZiB0aGUgY3VycmVudCBkaXNwYXRjaGVyLlxuICovXG52YXIgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciA9IHtcbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBAdHlwZSB7UmVhY3RDb21wb25lbnR9XG4gICAqL1xuICBjdXJyZW50OiBudWxsXG59O1xuXG4vKipcbiAqIEtlZXBzIHRyYWNrIG9mIHRoZSBjdXJyZW50IGJhdGNoJ3MgY29uZmlndXJhdGlvbiBzdWNoIGFzIGhvdyBsb25nIGFuIHVwZGF0ZVxuICogc2hvdWxkIHN1c3BlbmQgZm9yIGlmIGl0IG5lZWRzIHRvLlxuICovXG52YXIgUmVhY3RDdXJyZW50QmF0Y2hDb25maWcgPSB7XG4gIHRyYW5zaXRpb246IDBcbn07XG5cbi8qKlxuICogS2VlcHMgdHJhY2sgb2YgdGhlIGN1cnJlbnQgb3duZXIuXG4gKlxuICogVGhlIGN1cnJlbnQgb3duZXIgaXMgdGhlIGNvbXBvbmVudCB3aG8gc2hvdWxkIG93biBhbnkgY29tcG9uZW50cyB0aGF0IGFyZVxuICogY3VycmVudGx5IGJlaW5nIGNvbnN0cnVjdGVkLlxuICovXG52YXIgUmVhY3RDdXJyZW50T3duZXIgPSB7XG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogQHR5cGUge1JlYWN0Q29tcG9uZW50fVxuICAgKi9cbiAgY3VycmVudDogbnVsbFxufTtcblxudmFyIFJlYWN0RGVidWdDdXJyZW50RnJhbWUgPSB7fTtcbnZhciBjdXJyZW50RXh0cmFTdGFja0ZyYW1lID0gbnVsbDtcbmZ1bmN0aW9uIHNldEV4dHJhU3RhY2tGcmFtZShzdGFjaykge1xuICB7XG4gICAgY3VycmVudEV4dHJhU3RhY2tGcmFtZSA9IHN0YWNrO1xuICB9XG59XG5cbntcbiAgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZS5zZXRFeHRyYVN0YWNrRnJhbWUgPSBmdW5jdGlvbiAoc3RhY2spIHtcbiAgICB7XG4gICAgICBjdXJyZW50RXh0cmFTdGFja0ZyYW1lID0gc3RhY2s7XG4gICAgfVxuICB9OyAvLyBTdGFjayBpbXBsZW1lbnRhdGlvbiBpbmplY3RlZCBieSB0aGUgY3VycmVudCByZW5kZXJlci5cblxuXG4gIFJlYWN0RGVidWdDdXJyZW50RnJhbWUuZ2V0Q3VycmVudFN0YWNrID0gbnVsbDtcblxuICBSZWFjdERlYnVnQ3VycmVudEZyYW1lLmdldFN0YWNrQWRkZW5kdW0gPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHN0YWNrID0gJyc7IC8vIEFkZCBhbiBleHRyYSB0b3AgZnJhbWUgd2hpbGUgYW4gZWxlbWVudCBpcyBiZWluZyB2YWxpZGF0ZWRcblxuICAgIGlmIChjdXJyZW50RXh0cmFTdGFja0ZyYW1lKSB7XG4gICAgICBzdGFjayArPSBjdXJyZW50RXh0cmFTdGFja0ZyYW1lO1xuICAgIH0gLy8gRGVsZWdhdGUgdG8gdGhlIGluamVjdGVkIHJlbmRlcmVyLXNwZWNpZmljIGltcGxlbWVudGF0aW9uXG5cblxuICAgIHZhciBpbXBsID0gUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZS5nZXRDdXJyZW50U3RhY2s7XG5cbiAgICBpZiAoaW1wbCkge1xuICAgICAgc3RhY2sgKz0gaW1wbCgpIHx8ICcnO1xuICAgIH1cblxuICAgIHJldHVybiBzdGFjaztcbiAgfTtcbn1cblxuLyoqXG4gKiBVc2VkIGJ5IGFjdCgpIHRvIHRyYWNrIHdoZXRoZXIgeW91J3JlIGluc2lkZSBhbiBhY3QoKSBzY29wZS5cbiAqL1xudmFyIElzU29tZVJlbmRlcmVyQWN0aW5nID0ge1xuICBjdXJyZW50OiBmYWxzZVxufTtcblxudmFyIFJlYWN0U2hhcmVkSW50ZXJuYWxzID0ge1xuICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyOiBSZWFjdEN1cnJlbnREaXNwYXRjaGVyLFxuICBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZzogUmVhY3RDdXJyZW50QmF0Y2hDb25maWcsXG4gIFJlYWN0Q3VycmVudE93bmVyOiBSZWFjdEN1cnJlbnRPd25lcixcbiAgSXNTb21lUmVuZGVyZXJBY3Rpbmc6IElzU29tZVJlbmRlcmVyQWN0aW5nLFxuICAvLyBVc2VkIGJ5IHJlbmRlcmVycyB0byBhdm9pZCBidW5kbGluZyBvYmplY3QtYXNzaWduIHR3aWNlIGluIFVNRCBidW5kbGVzOlxuICBhc3NpZ246IF9hc3NpZ25cbn07XG5cbntcbiAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSA9IFJlYWN0RGVidWdDdXJyZW50RnJhbWU7XG59XG5cbi8vIGJ5IGNhbGxzIHRvIHRoZXNlIG1ldGhvZHMgYnkgYSBCYWJlbCBwbHVnaW4uXG4vL1xuLy8gSW4gUFJPRCAob3IgaW4gcGFja2FnZXMgd2l0aG91dCBhY2Nlc3MgdG8gUmVhY3QgaW50ZXJuYWxzKSxcbi8vIHRoZXkgYXJlIGxlZnQgYXMgdGhleSBhcmUgaW5zdGVhZC5cblxuZnVuY3Rpb24gd2Fybihmb3JtYXQpIHtcbiAge1xuICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4gPiAxID8gX2xlbiAtIDEgOiAwKSwgX2tleSA9IDE7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgIGFyZ3NbX2tleSAtIDFdID0gYXJndW1lbnRzW19rZXldO1xuICAgIH1cblxuICAgIHByaW50V2FybmluZygnd2FybicsIGZvcm1hdCwgYXJncyk7XG4gIH1cbn1cbmZ1bmN0aW9uIGVycm9yKGZvcm1hdCkge1xuICB7XG4gICAgZm9yICh2YXIgX2xlbjIgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4yID4gMSA/IF9sZW4yIC0gMSA6IDApLCBfa2V5MiA9IDE7IF9rZXkyIDwgX2xlbjI7IF9rZXkyKyspIHtcbiAgICAgIGFyZ3NbX2tleTIgLSAxXSA9IGFyZ3VtZW50c1tfa2V5Ml07XG4gICAgfVxuXG4gICAgcHJpbnRXYXJuaW5nKCdlcnJvcicsIGZvcm1hdCwgYXJncyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcHJpbnRXYXJuaW5nKGxldmVsLCBmb3JtYXQsIGFyZ3MpIHtcbiAgLy8gV2hlbiBjaGFuZ2luZyB0aGlzIGxvZ2ljLCB5b3UgbWlnaHQgd2FudCB0byBhbHNvXG4gIC8vIHVwZGF0ZSBjb25zb2xlV2l0aFN0YWNrRGV2Lnd3dy5qcyBhcyB3ZWxsLlxuICB7XG4gICAgdmFyIFJlYWN0RGVidWdDdXJyZW50RnJhbWUgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdERlYnVnQ3VycmVudEZyYW1lO1xuICAgIHZhciBzdGFjayA9IFJlYWN0RGVidWdDdXJyZW50RnJhbWUuZ2V0U3RhY2tBZGRlbmR1bSgpO1xuXG4gICAgaWYgKHN0YWNrICE9PSAnJykge1xuICAgICAgZm9ybWF0ICs9ICclcyc7XG4gICAgICBhcmdzID0gYXJncy5jb25jYXQoW3N0YWNrXSk7XG4gICAgfVxuXG4gICAgdmFyIGFyZ3NXaXRoRm9ybWF0ID0gYXJncy5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgIHJldHVybiAnJyArIGl0ZW07XG4gICAgfSk7IC8vIENhcmVmdWw6IFJOIGN1cnJlbnRseSBkZXBlbmRzIG9uIHRoaXMgcHJlZml4XG5cbiAgICBhcmdzV2l0aEZvcm1hdC51bnNoaWZ0KCdXYXJuaW5nOiAnICsgZm9ybWF0KTsgLy8gV2UgaW50ZW50aW9uYWxseSBkb24ndCB1c2Ugc3ByZWFkIChvciAuYXBwbHkpIGRpcmVjdGx5IGJlY2F1c2UgaXRcbiAgICAvLyBicmVha3MgSUU5OiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzEzNjEwXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL25vLXByb2R1Y3Rpb24tbG9nZ2luZ1xuXG4gICAgRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5LmNhbGwoY29uc29sZVtsZXZlbF0sIGNvbnNvbGUsIGFyZ3NXaXRoRm9ybWF0KTtcbiAgfVxufVxuXG52YXIgZGlkV2FyblN0YXRlVXBkYXRlRm9yVW5tb3VudGVkQ29tcG9uZW50ID0ge307XG5cbmZ1bmN0aW9uIHdhcm5Ob29wKHB1YmxpY0luc3RhbmNlLCBjYWxsZXJOYW1lKSB7XG4gIHtcbiAgICB2YXIgX2NvbnN0cnVjdG9yID0gcHVibGljSW5zdGFuY2UuY29uc3RydWN0b3I7XG4gICAgdmFyIGNvbXBvbmVudE5hbWUgPSBfY29uc3RydWN0b3IgJiYgKF9jb25zdHJ1Y3Rvci5kaXNwbGF5TmFtZSB8fCBfY29uc3RydWN0b3IubmFtZSkgfHwgJ1JlYWN0Q2xhc3MnO1xuICAgIHZhciB3YXJuaW5nS2V5ID0gY29tcG9uZW50TmFtZSArIFwiLlwiICsgY2FsbGVyTmFtZTtcblxuICAgIGlmIChkaWRXYXJuU3RhdGVVcGRhdGVGb3JVbm1vdW50ZWRDb21wb25lbnRbd2FybmluZ0tleV0pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBlcnJvcihcIkNhbid0IGNhbGwgJXMgb24gYSBjb21wb25lbnQgdGhhdCBpcyBub3QgeWV0IG1vdW50ZWQuIFwiICsgJ1RoaXMgaXMgYSBuby1vcCwgYnV0IGl0IG1pZ2h0IGluZGljYXRlIGEgYnVnIGluIHlvdXIgYXBwbGljYXRpb24uICcgKyAnSW5zdGVhZCwgYXNzaWduIHRvIGB0aGlzLnN0YXRlYCBkaXJlY3RseSBvciBkZWZpbmUgYSBgc3RhdGUgPSB7fTtgICcgKyAnY2xhc3MgcHJvcGVydHkgd2l0aCB0aGUgZGVzaXJlZCBzdGF0ZSBpbiB0aGUgJXMgY29tcG9uZW50LicsIGNhbGxlck5hbWUsIGNvbXBvbmVudE5hbWUpO1xuXG4gICAgZGlkV2FyblN0YXRlVXBkYXRlRm9yVW5tb3VudGVkQ29tcG9uZW50W3dhcm5pbmdLZXldID0gdHJ1ZTtcbiAgfVxufVxuLyoqXG4gKiBUaGlzIGlzIHRoZSBhYnN0cmFjdCBBUEkgZm9yIGFuIHVwZGF0ZSBxdWV1ZS5cbiAqL1xuXG5cbnZhciBSZWFjdE5vb3BVcGRhdGVRdWV1ZSA9IHtcbiAgLyoqXG4gICAqIENoZWNrcyB3aGV0aGVyIG9yIG5vdCB0aGlzIGNvbXBvc2l0ZSBjb21wb25lbnQgaXMgbW91bnRlZC5cbiAgICogQHBhcmFtIHtSZWFjdENsYXNzfSBwdWJsaWNJbnN0YW5jZSBUaGUgaW5zdGFuY2Ugd2Ugd2FudCB0byB0ZXN0LlxuICAgKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIGlmIG1vdW50ZWQsIGZhbHNlIG90aGVyd2lzZS5cbiAgICogQHByb3RlY3RlZFxuICAgKiBAZmluYWxcbiAgICovXG4gIGlzTW91bnRlZDogZnVuY3Rpb24gKHB1YmxpY0luc3RhbmNlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9LFxuXG4gIC8qKlxuICAgKiBGb3JjZXMgYW4gdXBkYXRlLiBUaGlzIHNob3VsZCBvbmx5IGJlIGludm9rZWQgd2hlbiBpdCBpcyBrbm93biB3aXRoXG4gICAqIGNlcnRhaW50eSB0aGF0IHdlIGFyZSAqKm5vdCoqIGluIGEgRE9NIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBZb3UgbWF5IHdhbnQgdG8gY2FsbCB0aGlzIHdoZW4geW91IGtub3cgdGhhdCBzb21lIGRlZXBlciBhc3BlY3Qgb2YgdGhlXG4gICAqIGNvbXBvbmVudCdzIHN0YXRlIGhhcyBjaGFuZ2VkIGJ1dCBgc2V0U3RhdGVgIHdhcyBub3QgY2FsbGVkLlxuICAgKlxuICAgKiBUaGlzIHdpbGwgbm90IGludm9rZSBgc2hvdWxkQ29tcG9uZW50VXBkYXRlYCwgYnV0IGl0IHdpbGwgaW52b2tlXG4gICAqIGBjb21wb25lbnRXaWxsVXBkYXRlYCBhbmQgYGNvbXBvbmVudERpZFVwZGF0ZWAuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVhY3RDbGFzc30gcHVibGljSW5zdGFuY2UgVGhlIGluc3RhbmNlIHRoYXQgc2hvdWxkIHJlcmVuZGVyLlxuICAgKiBAcGFyYW0gez9mdW5jdGlvbn0gY2FsbGJhY2sgQ2FsbGVkIGFmdGVyIGNvbXBvbmVudCBpcyB1cGRhdGVkLlxuICAgKiBAcGFyYW0gez9zdHJpbmd9IGNhbGxlck5hbWUgbmFtZSBvZiB0aGUgY2FsbGluZyBmdW5jdGlvbiBpbiB0aGUgcHVibGljIEFQSS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBlbnF1ZXVlRm9yY2VVcGRhdGU6IGZ1bmN0aW9uIChwdWJsaWNJbnN0YW5jZSwgY2FsbGJhY2ssIGNhbGxlck5hbWUpIHtcbiAgICB3YXJuTm9vcChwdWJsaWNJbnN0YW5jZSwgJ2ZvcmNlVXBkYXRlJyk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlcGxhY2VzIGFsbCBvZiB0aGUgc3RhdGUuIEFsd2F5cyB1c2UgdGhpcyBvciBgc2V0U3RhdGVgIHRvIG11dGF0ZSBzdGF0ZS5cbiAgICogWW91IHNob3VsZCB0cmVhdCBgdGhpcy5zdGF0ZWAgYXMgaW1tdXRhYmxlLlxuICAgKlxuICAgKiBUaGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBgdGhpcy5zdGF0ZWAgd2lsbCBiZSBpbW1lZGlhdGVseSB1cGRhdGVkLCBzb1xuICAgKiBhY2Nlc3NpbmcgYHRoaXMuc3RhdGVgIGFmdGVyIGNhbGxpbmcgdGhpcyBtZXRob2QgbWF5IHJldHVybiB0aGUgb2xkIHZhbHVlLlxuICAgKlxuICAgKiBAcGFyYW0ge1JlYWN0Q2xhc3N9IHB1YmxpY0luc3RhbmNlIFRoZSBpbnN0YW5jZSB0aGF0IHNob3VsZCByZXJlbmRlci5cbiAgICogQHBhcmFtIHtvYmplY3R9IGNvbXBsZXRlU3RhdGUgTmV4dCBzdGF0ZS5cbiAgICogQHBhcmFtIHs/ZnVuY3Rpb259IGNhbGxiYWNrIENhbGxlZCBhZnRlciBjb21wb25lbnQgaXMgdXBkYXRlZC5cbiAgICogQHBhcmFtIHs/c3RyaW5nfSBjYWxsZXJOYW1lIG5hbWUgb2YgdGhlIGNhbGxpbmcgZnVuY3Rpb24gaW4gdGhlIHB1YmxpYyBBUEkuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZW5xdWV1ZVJlcGxhY2VTdGF0ZTogZnVuY3Rpb24gKHB1YmxpY0luc3RhbmNlLCBjb21wbGV0ZVN0YXRlLCBjYWxsYmFjaywgY2FsbGVyTmFtZSkge1xuICAgIHdhcm5Ob29wKHB1YmxpY0luc3RhbmNlLCAncmVwbGFjZVN0YXRlJyk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFNldHMgYSBzdWJzZXQgb2YgdGhlIHN0YXRlLiBUaGlzIG9ubHkgZXhpc3RzIGJlY2F1c2UgX3BlbmRpbmdTdGF0ZSBpc1xuICAgKiBpbnRlcm5hbC4gVGhpcyBwcm92aWRlcyBhIG1lcmdpbmcgc3RyYXRlZ3kgdGhhdCBpcyBub3QgYXZhaWxhYmxlIHRvIGRlZXBcbiAgICogcHJvcGVydGllcyB3aGljaCBpcyBjb25mdXNpbmcuIFRPRE86IEV4cG9zZSBwZW5kaW5nU3RhdGUgb3IgZG9uJ3QgdXNlIGl0XG4gICAqIGR1cmluZyB0aGUgbWVyZ2UuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVhY3RDbGFzc30gcHVibGljSW5zdGFuY2UgVGhlIGluc3RhbmNlIHRoYXQgc2hvdWxkIHJlcmVuZGVyLlxuICAgKiBAcGFyYW0ge29iamVjdH0gcGFydGlhbFN0YXRlIE5leHQgcGFydGlhbCBzdGF0ZSB0byBiZSBtZXJnZWQgd2l0aCBzdGF0ZS5cbiAgICogQHBhcmFtIHs/ZnVuY3Rpb259IGNhbGxiYWNrIENhbGxlZCBhZnRlciBjb21wb25lbnQgaXMgdXBkYXRlZC5cbiAgICogQHBhcmFtIHs/c3RyaW5nfSBOYW1lIG9mIHRoZSBjYWxsaW5nIGZ1bmN0aW9uIGluIHRoZSBwdWJsaWMgQVBJLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGVucXVldWVTZXRTdGF0ZTogZnVuY3Rpb24gKHB1YmxpY0luc3RhbmNlLCBwYXJ0aWFsU3RhdGUsIGNhbGxiYWNrLCBjYWxsZXJOYW1lKSB7XG4gICAgd2Fybk5vb3AocHVibGljSW5zdGFuY2UsICdzZXRTdGF0ZScpO1xuICB9XG59O1xuXG52YXIgZW1wdHlPYmplY3QgPSB7fTtcblxue1xuICBPYmplY3QuZnJlZXplKGVtcHR5T2JqZWN0KTtcbn1cbi8qKlxuICogQmFzZSBjbGFzcyBoZWxwZXJzIGZvciB0aGUgdXBkYXRpbmcgc3RhdGUgb2YgYSBjb21wb25lbnQuXG4gKi9cblxuXG5mdW5jdGlvbiBDb21wb25lbnQocHJvcHMsIGNvbnRleHQsIHVwZGF0ZXIpIHtcbiAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICB0aGlzLmNvbnRleHQgPSBjb250ZXh0OyAvLyBJZiBhIGNvbXBvbmVudCBoYXMgc3RyaW5nIHJlZnMsIHdlIHdpbGwgYXNzaWduIGEgZGlmZmVyZW50IG9iamVjdCBsYXRlci5cblxuICB0aGlzLnJlZnMgPSBlbXB0eU9iamVjdDsgLy8gV2UgaW5pdGlhbGl6ZSB0aGUgZGVmYXVsdCB1cGRhdGVyIGJ1dCB0aGUgcmVhbCBvbmUgZ2V0cyBpbmplY3RlZCBieSB0aGVcbiAgLy8gcmVuZGVyZXIuXG5cbiAgdGhpcy51cGRhdGVyID0gdXBkYXRlciB8fCBSZWFjdE5vb3BVcGRhdGVRdWV1ZTtcbn1cblxuQ29tcG9uZW50LnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50ID0ge307XG4vKipcbiAqIFNldHMgYSBzdWJzZXQgb2YgdGhlIHN0YXRlLiBBbHdheXMgdXNlIHRoaXMgdG8gbXV0YXRlXG4gKiBzdGF0ZS4gWW91IHNob3VsZCB0cmVhdCBgdGhpcy5zdGF0ZWAgYXMgaW1tdXRhYmxlLlxuICpcbiAqIFRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IGB0aGlzLnN0YXRlYCB3aWxsIGJlIGltbWVkaWF0ZWx5IHVwZGF0ZWQsIHNvXG4gKiBhY2Nlc3NpbmcgYHRoaXMuc3RhdGVgIGFmdGVyIGNhbGxpbmcgdGhpcyBtZXRob2QgbWF5IHJldHVybiB0aGUgb2xkIHZhbHVlLlxuICpcbiAqIFRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IGNhbGxzIHRvIGBzZXRTdGF0ZWAgd2lsbCBydW4gc3luY2hyb25vdXNseSxcbiAqIGFzIHRoZXkgbWF5IGV2ZW50dWFsbHkgYmUgYmF0Y2hlZCB0b2dldGhlci4gIFlvdSBjYW4gcHJvdmlkZSBhbiBvcHRpb25hbFxuICogY2FsbGJhY2sgdGhhdCB3aWxsIGJlIGV4ZWN1dGVkIHdoZW4gdGhlIGNhbGwgdG8gc2V0U3RhdGUgaXMgYWN0dWFsbHlcbiAqIGNvbXBsZXRlZC5cbiAqXG4gKiBXaGVuIGEgZnVuY3Rpb24gaXMgcHJvdmlkZWQgdG8gc2V0U3RhdGUsIGl0IHdpbGwgYmUgY2FsbGVkIGF0IHNvbWUgcG9pbnQgaW5cbiAqIHRoZSBmdXR1cmUgKG5vdCBzeW5jaHJvbm91c2x5KS4gSXQgd2lsbCBiZSBjYWxsZWQgd2l0aCB0aGUgdXAgdG8gZGF0ZVxuICogY29tcG9uZW50IGFyZ3VtZW50cyAoc3RhdGUsIHByb3BzLCBjb250ZXh0KS4gVGhlc2UgdmFsdWVzIGNhbiBiZSBkaWZmZXJlbnRcbiAqIGZyb20gdGhpcy4qIGJlY2F1c2UgeW91ciBmdW5jdGlvbiBtYXkgYmUgY2FsbGVkIGFmdGVyIHJlY2VpdmVQcm9wcyBidXQgYmVmb3JlXG4gKiBzaG91bGRDb21wb25lbnRVcGRhdGUsIGFuZCB0aGlzIG5ldyBzdGF0ZSwgcHJvcHMsIGFuZCBjb250ZXh0IHdpbGwgbm90IHlldCBiZVxuICogYXNzaWduZWQgdG8gdGhpcy5cbiAqXG4gKiBAcGFyYW0ge29iamVjdHxmdW5jdGlvbn0gcGFydGlhbFN0YXRlIE5leHQgcGFydGlhbCBzdGF0ZSBvciBmdW5jdGlvbiB0b1xuICogICAgICAgIHByb2R1Y2UgbmV4dCBwYXJ0aWFsIHN0YXRlIHRvIGJlIG1lcmdlZCB3aXRoIGN1cnJlbnQgc3RhdGUuXG4gKiBAcGFyYW0gez9mdW5jdGlvbn0gY2FsbGJhY2sgQ2FsbGVkIGFmdGVyIHN0YXRlIGlzIHVwZGF0ZWQuXG4gKiBAZmluYWxcbiAqIEBwcm90ZWN0ZWRcbiAqL1xuXG5Db21wb25lbnQucHJvdG90eXBlLnNldFN0YXRlID0gZnVuY3Rpb24gKHBhcnRpYWxTdGF0ZSwgY2FsbGJhY2spIHtcbiAgaWYgKCEodHlwZW9mIHBhcnRpYWxTdGF0ZSA9PT0gJ29iamVjdCcgfHwgdHlwZW9mIHBhcnRpYWxTdGF0ZSA9PT0gJ2Z1bmN0aW9uJyB8fCBwYXJ0aWFsU3RhdGUgPT0gbnVsbCkpIHtcbiAgICB7XG4gICAgICB0aHJvdyBFcnJvciggXCJzZXRTdGF0ZSguLi4pOiB0YWtlcyBhbiBvYmplY3Qgb2Ygc3RhdGUgdmFyaWFibGVzIHRvIHVwZGF0ZSBvciBhIGZ1bmN0aW9uIHdoaWNoIHJldHVybnMgYW4gb2JqZWN0IG9mIHN0YXRlIHZhcmlhYmxlcy5cIiApO1xuICAgIH1cbiAgfVxuXG4gIHRoaXMudXBkYXRlci5lbnF1ZXVlU2V0U3RhdGUodGhpcywgcGFydGlhbFN0YXRlLCBjYWxsYmFjaywgJ3NldFN0YXRlJyk7XG59O1xuLyoqXG4gKiBGb3JjZXMgYW4gdXBkYXRlLiBUaGlzIHNob3VsZCBvbmx5IGJlIGludm9rZWQgd2hlbiBpdCBpcyBrbm93biB3aXRoXG4gKiBjZXJ0YWludHkgdGhhdCB3ZSBhcmUgKipub3QqKiBpbiBhIERPTSB0cmFuc2FjdGlvbi5cbiAqXG4gKiBZb3UgbWF5IHdhbnQgdG8gY2FsbCB0aGlzIHdoZW4geW91IGtub3cgdGhhdCBzb21lIGRlZXBlciBhc3BlY3Qgb2YgdGhlXG4gKiBjb21wb25lbnQncyBzdGF0ZSBoYXMgY2hhbmdlZCBidXQgYHNldFN0YXRlYCB3YXMgbm90IGNhbGxlZC5cbiAqXG4gKiBUaGlzIHdpbGwgbm90IGludm9rZSBgc2hvdWxkQ29tcG9uZW50VXBkYXRlYCwgYnV0IGl0IHdpbGwgaW52b2tlXG4gKiBgY29tcG9uZW50V2lsbFVwZGF0ZWAgYW5kIGBjb21wb25lbnREaWRVcGRhdGVgLlxuICpcbiAqIEBwYXJhbSB7P2Z1bmN0aW9ufSBjYWxsYmFjayBDYWxsZWQgYWZ0ZXIgdXBkYXRlIGlzIGNvbXBsZXRlLlxuICogQGZpbmFsXG4gKiBAcHJvdGVjdGVkXG4gKi9cblxuXG5Db21wb25lbnQucHJvdG90eXBlLmZvcmNlVXBkYXRlID0gZnVuY3Rpb24gKGNhbGxiYWNrKSB7XG4gIHRoaXMudXBkYXRlci5lbnF1ZXVlRm9yY2VVcGRhdGUodGhpcywgY2FsbGJhY2ssICdmb3JjZVVwZGF0ZScpO1xufTtcbi8qKlxuICogRGVwcmVjYXRlZCBBUElzLiBUaGVzZSBBUElzIHVzZWQgdG8gZXhpc3Qgb24gY2xhc3NpYyBSZWFjdCBjbGFzc2VzIGJ1dCBzaW5jZVxuICogd2Ugd291bGQgbGlrZSB0byBkZXByZWNhdGUgdGhlbSwgd2UncmUgbm90IGdvaW5nIHRvIG1vdmUgdGhlbSBvdmVyIHRvIHRoaXNcbiAqIG1vZGVybiBiYXNlIGNsYXNzLiBJbnN0ZWFkLCB3ZSBkZWZpbmUgYSBnZXR0ZXIgdGhhdCB3YXJucyBpZiBpdCdzIGFjY2Vzc2VkLlxuICovXG5cblxue1xuICB2YXIgZGVwcmVjYXRlZEFQSXMgPSB7XG4gICAgaXNNb3VudGVkOiBbJ2lzTW91bnRlZCcsICdJbnN0ZWFkLCBtYWtlIHN1cmUgdG8gY2xlYW4gdXAgc3Vic2NyaXB0aW9ucyBhbmQgcGVuZGluZyByZXF1ZXN0cyBpbiAnICsgJ2NvbXBvbmVudFdpbGxVbm1vdW50IHRvIHByZXZlbnQgbWVtb3J5IGxlYWtzLiddLFxuICAgIHJlcGxhY2VTdGF0ZTogWydyZXBsYWNlU3RhdGUnLCAnUmVmYWN0b3IgeW91ciBjb2RlIHRvIHVzZSBzZXRTdGF0ZSBpbnN0ZWFkIChzZWUgJyArICdodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzMyMzYpLiddXG4gIH07XG5cbiAgdmFyIGRlZmluZURlcHJlY2F0aW9uV2FybmluZyA9IGZ1bmN0aW9uIChtZXRob2ROYW1lLCBpbmZvKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KENvbXBvbmVudC5wcm90b3R5cGUsIG1ldGhvZE5hbWUsIHtcbiAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICB3YXJuKCclcyguLi4pIGlzIGRlcHJlY2F0ZWQgaW4gcGxhaW4gSmF2YVNjcmlwdCBSZWFjdCBjbGFzc2VzLiAlcycsIGluZm9bMF0sIGluZm9bMV0pO1xuXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgfSk7XG4gIH07XG5cbiAgZm9yICh2YXIgZm5OYW1lIGluIGRlcHJlY2F0ZWRBUElzKSB7XG4gICAgaWYgKGRlcHJlY2F0ZWRBUElzLmhhc093blByb3BlcnR5KGZuTmFtZSkpIHtcbiAgICAgIGRlZmluZURlcHJlY2F0aW9uV2FybmluZyhmbk5hbWUsIGRlcHJlY2F0ZWRBUElzW2ZuTmFtZV0pO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBDb21wb25lbnREdW1teSgpIHt9XG5cbkNvbXBvbmVudER1bW15LnByb3RvdHlwZSA9IENvbXBvbmVudC5wcm90b3R5cGU7XG4vKipcbiAqIENvbnZlbmllbmNlIGNvbXBvbmVudCB3aXRoIGRlZmF1bHQgc2hhbGxvdyBlcXVhbGl0eSBjaGVjayBmb3Igc0NVLlxuICovXG5cbmZ1bmN0aW9uIFB1cmVDb21wb25lbnQocHJvcHMsIGNvbnRleHQsIHVwZGF0ZXIpIHtcbiAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICB0aGlzLmNvbnRleHQgPSBjb250ZXh0OyAvLyBJZiBhIGNvbXBvbmVudCBoYXMgc3RyaW5nIHJlZnMsIHdlIHdpbGwgYXNzaWduIGEgZGlmZmVyZW50IG9iamVjdCBsYXRlci5cblxuICB0aGlzLnJlZnMgPSBlbXB0eU9iamVjdDtcbiAgdGhpcy51cGRhdGVyID0gdXBkYXRlciB8fCBSZWFjdE5vb3BVcGRhdGVRdWV1ZTtcbn1cblxudmFyIHB1cmVDb21wb25lbnRQcm90b3R5cGUgPSBQdXJlQ29tcG9uZW50LnByb3RvdHlwZSA9IG5ldyBDb21wb25lbnREdW1teSgpO1xucHVyZUNvbXBvbmVudFByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IFB1cmVDb21wb25lbnQ7IC8vIEF2b2lkIGFuIGV4dHJhIHByb3RvdHlwZSBqdW1wIGZvciB0aGVzZSBtZXRob2RzLlxuXG5fYXNzaWduKHB1cmVDb21wb25lbnRQcm90b3R5cGUsIENvbXBvbmVudC5wcm90b3R5cGUpO1xuXG5wdXJlQ29tcG9uZW50UHJvdG90eXBlLmlzUHVyZVJlYWN0Q29tcG9uZW50ID0gdHJ1ZTtcblxuLy8gYW4gaW1tdXRhYmxlIG9iamVjdCB3aXRoIGEgc2luZ2xlIG11dGFibGUgdmFsdWVcbmZ1bmN0aW9uIGNyZWF0ZVJlZigpIHtcbiAgdmFyIHJlZk9iamVjdCA9IHtcbiAgICBjdXJyZW50OiBudWxsXG4gIH07XG5cbiAge1xuICAgIE9iamVjdC5zZWFsKHJlZk9iamVjdCk7XG4gIH1cblxuICByZXR1cm4gcmVmT2JqZWN0O1xufVxuXG5mdW5jdGlvbiBnZXRXcmFwcGVkTmFtZShvdXRlclR5cGUsIGlubmVyVHlwZSwgd3JhcHBlck5hbWUpIHtcbiAgdmFyIGZ1bmN0aW9uTmFtZSA9IGlubmVyVHlwZS5kaXNwbGF5TmFtZSB8fCBpbm5lclR5cGUubmFtZSB8fCAnJztcbiAgcmV0dXJuIG91dGVyVHlwZS5kaXNwbGF5TmFtZSB8fCAoZnVuY3Rpb25OYW1lICE9PSAnJyA/IHdyYXBwZXJOYW1lICsgXCIoXCIgKyBmdW5jdGlvbk5hbWUgKyBcIilcIiA6IHdyYXBwZXJOYW1lKTtcbn1cblxuZnVuY3Rpb24gZ2V0Q29udGV4dE5hbWUodHlwZSkge1xuICByZXR1cm4gdHlwZS5kaXNwbGF5TmFtZSB8fCAnQ29udGV4dCc7XG59XG5cbmZ1bmN0aW9uIGdldENvbXBvbmVudE5hbWUodHlwZSkge1xuICBpZiAodHlwZSA9PSBudWxsKSB7XG4gICAgLy8gSG9zdCByb290LCB0ZXh0IG5vZGUgb3IganVzdCBpbnZhbGlkIHR5cGUuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICB7XG4gICAgaWYgKHR5cGVvZiB0eXBlLnRhZyA9PT0gJ251bWJlcicpIHtcbiAgICAgIGVycm9yKCdSZWNlaXZlZCBhbiB1bmV4cGVjdGVkIG9iamVjdCBpbiBnZXRDb21wb25lbnROYW1lKCkuICcgKyAnVGhpcyBpcyBsaWtlbHkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicpO1xuICAgIH1cbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiB0eXBlLmRpc3BsYXlOYW1lIHx8IHR5cGUubmFtZSB8fCBudWxsO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB0eXBlO1xuICB9XG5cbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSBleHBvcnRzLkZyYWdtZW50OlxuICAgICAgcmV0dXJuICdGcmFnbWVudCc7XG5cbiAgICBjYXNlIFJFQUNUX1BPUlRBTF9UWVBFOlxuICAgICAgcmV0dXJuICdQb3J0YWwnO1xuXG4gICAgY2FzZSBleHBvcnRzLlByb2ZpbGVyOlxuICAgICAgcmV0dXJuICdQcm9maWxlcic7XG5cbiAgICBjYXNlIGV4cG9ydHMuU3RyaWN0TW9kZTpcbiAgICAgIHJldHVybiAnU3RyaWN0TW9kZSc7XG5cbiAgICBjYXNlIGV4cG9ydHMuU3VzcGVuc2U6XG4gICAgICByZXR1cm4gJ1N1c3BlbnNlJztcblxuICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFOlxuICAgICAgcmV0dXJuICdTdXNwZW5zZUxpc3QnO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnb2JqZWN0Jykge1xuICAgIHN3aXRjaCAodHlwZS4kJHR5cGVvZikge1xuICAgICAgY2FzZSBSRUFDVF9DT05URVhUX1RZUEU6XG4gICAgICAgIHZhciBjb250ZXh0ID0gdHlwZTtcbiAgICAgICAgcmV0dXJuIGdldENvbnRleHROYW1lKGNvbnRleHQpICsgJy5Db25zdW1lcic7XG5cbiAgICAgIGNhc2UgUkVBQ1RfUFJPVklERVJfVFlQRTpcbiAgICAgICAgdmFyIHByb3ZpZGVyID0gdHlwZTtcbiAgICAgICAgcmV0dXJuIGdldENvbnRleHROYW1lKHByb3ZpZGVyLl9jb250ZXh0KSArICcuUHJvdmlkZXInO1xuXG4gICAgICBjYXNlIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU6XG4gICAgICAgIHJldHVybiBnZXRXcmFwcGVkTmFtZSh0eXBlLCB0eXBlLnJlbmRlciwgJ0ZvcndhcmRSZWYnKTtcblxuICAgICAgY2FzZSBSRUFDVF9NRU1PX1RZUEU6XG4gICAgICAgIHJldHVybiBnZXRDb21wb25lbnROYW1lKHR5cGUudHlwZSk7XG5cbiAgICAgIGNhc2UgUkVBQ1RfQkxPQ0tfVFlQRTpcbiAgICAgICAgcmV0dXJuIGdldENvbXBvbmVudE5hbWUodHlwZS5fcmVuZGVyKTtcblxuICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgbGF6eUNvbXBvbmVudCA9IHR5cGU7XG4gICAgICAgICAgdmFyIHBheWxvYWQgPSBsYXp5Q29tcG9uZW50Ll9wYXlsb2FkO1xuICAgICAgICAgIHZhciBpbml0ID0gbGF6eUNvbXBvbmVudC5faW5pdDtcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0Q29tcG9uZW50TmFtZShpbml0KHBheWxvYWQpKTtcbiAgICAgICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxudmFyIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbnZhciBSRVNFUlZFRF9QUk9QUyA9IHtcbiAga2V5OiB0cnVlLFxuICByZWY6IHRydWUsXG4gIF9fc2VsZjogdHJ1ZSxcbiAgX19zb3VyY2U6IHRydWVcbn07XG52YXIgc3BlY2lhbFByb3BLZXlXYXJuaW5nU2hvd24sIHNwZWNpYWxQcm9wUmVmV2FybmluZ1Nob3duLCBkaWRXYXJuQWJvdXRTdHJpbmdSZWZzO1xuXG57XG4gIGRpZFdhcm5BYm91dFN0cmluZ1JlZnMgPSB7fTtcbn1cblxuZnVuY3Rpb24gaGFzVmFsaWRSZWYoY29uZmlnKSB7XG4gIHtcbiAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChjb25maWcsICdyZWYnKSkge1xuICAgICAgdmFyIGdldHRlciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoY29uZmlnLCAncmVmJykuZ2V0O1xuXG4gICAgICBpZiAoZ2V0dGVyICYmIGdldHRlci5pc1JlYWN0V2FybmluZykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNvbmZpZy5yZWYgIT09IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gaGFzVmFsaWRLZXkoY29uZmlnKSB7XG4gIHtcbiAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChjb25maWcsICdrZXknKSkge1xuICAgICAgdmFyIGdldHRlciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoY29uZmlnLCAna2V5JykuZ2V0O1xuXG4gICAgICBpZiAoZ2V0dGVyICYmIGdldHRlci5pc1JlYWN0V2FybmluZykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNvbmZpZy5rZXkgIT09IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gZGVmaW5lS2V5UHJvcFdhcm5pbmdHZXR0ZXIocHJvcHMsIGRpc3BsYXlOYW1lKSB7XG4gIHZhciB3YXJuQWJvdXRBY2Nlc3NpbmdLZXkgPSBmdW5jdGlvbiAoKSB7XG4gICAge1xuICAgICAgaWYgKCFzcGVjaWFsUHJvcEtleVdhcm5pbmdTaG93bikge1xuICAgICAgICBzcGVjaWFsUHJvcEtleVdhcm5pbmdTaG93biA9IHRydWU7XG5cbiAgICAgICAgZXJyb3IoJyVzOiBga2V5YCBpcyBub3QgYSBwcm9wLiBUcnlpbmcgdG8gYWNjZXNzIGl0IHdpbGwgcmVzdWx0ICcgKyAnaW4gYHVuZGVmaW5lZGAgYmVpbmcgcmV0dXJuZWQuIElmIHlvdSBuZWVkIHRvIGFjY2VzcyB0aGUgc2FtZSAnICsgJ3ZhbHVlIHdpdGhpbiB0aGUgY2hpbGQgY29tcG9uZW50LCB5b3Ugc2hvdWxkIHBhc3MgaXQgYXMgYSBkaWZmZXJlbnQgJyArICdwcm9wLiAoaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3NwZWNpYWwtcHJvcHMpJywgZGlzcGxheU5hbWUpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICB3YXJuQWJvdXRBY2Nlc3NpbmdLZXkuaXNSZWFjdFdhcm5pbmcgPSB0cnVlO1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvcHMsICdrZXknLCB7XG4gICAgZ2V0OiB3YXJuQWJvdXRBY2Nlc3NpbmdLZXksXG4gICAgY29uZmlndXJhYmxlOiB0cnVlXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBkZWZpbmVSZWZQcm9wV2FybmluZ0dldHRlcihwcm9wcywgZGlzcGxheU5hbWUpIHtcbiAgdmFyIHdhcm5BYm91dEFjY2Vzc2luZ1JlZiA9IGZ1bmN0aW9uICgpIHtcbiAgICB7XG4gICAgICBpZiAoIXNwZWNpYWxQcm9wUmVmV2FybmluZ1Nob3duKSB7XG4gICAgICAgIHNwZWNpYWxQcm9wUmVmV2FybmluZ1Nob3duID0gdHJ1ZTtcblxuICAgICAgICBlcnJvcignJXM6IGByZWZgIGlzIG5vdCBhIHByb3AuIFRyeWluZyB0byBhY2Nlc3MgaXQgd2lsbCByZXN1bHQgJyArICdpbiBgdW5kZWZpbmVkYCBiZWluZyByZXR1cm5lZC4gSWYgeW91IG5lZWQgdG8gYWNjZXNzIHRoZSBzYW1lICcgKyAndmFsdWUgd2l0aGluIHRoZSBjaGlsZCBjb21wb25lbnQsIHlvdSBzaG91bGQgcGFzcyBpdCBhcyBhIGRpZmZlcmVudCAnICsgJ3Byb3AuIChodHRwczovL3JlYWN0anMub3JnL2xpbmsvc3BlY2lhbC1wcm9wcyknLCBkaXNwbGF5TmFtZSk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIHdhcm5BYm91dEFjY2Vzc2luZ1JlZi5pc1JlYWN0V2FybmluZyA9IHRydWU7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm9wcywgJ3JlZicsIHtcbiAgICBnZXQ6IHdhcm5BYm91dEFjY2Vzc2luZ1JlZixcbiAgICBjb25maWd1cmFibGU6IHRydWVcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHdhcm5JZlN0cmluZ1JlZkNhbm5vdEJlQXV0b0NvbnZlcnRlZChjb25maWcpIHtcbiAge1xuICAgIGlmICh0eXBlb2YgY29uZmlnLnJlZiA9PT0gJ3N0cmluZycgJiYgUmVhY3RDdXJyZW50T3duZXIuY3VycmVudCAmJiBjb25maWcuX19zZWxmICYmIFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQuc3RhdGVOb2RlICE9PSBjb25maWcuX19zZWxmKSB7XG4gICAgICB2YXIgY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWUoUmVhY3RDdXJyZW50T3duZXIuY3VycmVudC50eXBlKTtcblxuICAgICAgaWYgKCFkaWRXYXJuQWJvdXRTdHJpbmdSZWZzW2NvbXBvbmVudE5hbWVdKSB7XG4gICAgICAgIGVycm9yKCdDb21wb25lbnQgXCIlc1wiIGNvbnRhaW5zIHRoZSBzdHJpbmcgcmVmIFwiJXNcIi4gJyArICdTdXBwb3J0IGZvciBzdHJpbmcgcmVmcyB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgbWFqb3IgcmVsZWFzZS4gJyArICdUaGlzIGNhc2UgY2Fubm90IGJlIGF1dG9tYXRpY2FsbHkgY29udmVydGVkIHRvIGFuIGFycm93IGZ1bmN0aW9uLiAnICsgJ1dlIGFzayB5b3UgdG8gbWFudWFsbHkgZml4IHRoaXMgY2FzZSBieSB1c2luZyB1c2VSZWYoKSBvciBjcmVhdGVSZWYoKSBpbnN0ZWFkLiAnICsgJ0xlYXJuIG1vcmUgYWJvdXQgdXNpbmcgcmVmcyBzYWZlbHkgaGVyZTogJyArICdodHRwczovL3JlYWN0anMub3JnL2xpbmsvc3RyaWN0LW1vZGUtc3RyaW5nLXJlZicsIGNvbXBvbmVudE5hbWUsIGNvbmZpZy5yZWYpO1xuXG4gICAgICAgIGRpZFdhcm5BYm91dFN0cmluZ1JlZnNbY29tcG9uZW50TmFtZV0gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuLyoqXG4gKiBGYWN0b3J5IG1ldGhvZCB0byBjcmVhdGUgYSBuZXcgUmVhY3QgZWxlbWVudC4gVGhpcyBubyBsb25nZXIgYWRoZXJlcyB0b1xuICogdGhlIGNsYXNzIHBhdHRlcm4sIHNvIGRvIG5vdCB1c2UgbmV3IHRvIGNhbGwgaXQuIEFsc28sIGluc3RhbmNlb2YgY2hlY2tcbiAqIHdpbGwgbm90IHdvcmsuIEluc3RlYWQgdGVzdCAkJHR5cGVvZiBmaWVsZCBhZ2FpbnN0IFN5bWJvbC5mb3IoJ3JlYWN0LmVsZW1lbnQnKSB0byBjaGVja1xuICogaWYgc29tZXRoaW5nIGlzIGEgUmVhY3QgRWxlbWVudC5cbiAqXG4gKiBAcGFyYW0geyp9IHR5cGVcbiAqIEBwYXJhbSB7Kn0gcHJvcHNcbiAqIEBwYXJhbSB7Kn0ga2V5XG4gKiBAcGFyYW0ge3N0cmluZ3xvYmplY3R9IHJlZlxuICogQHBhcmFtIHsqfSBvd25lclxuICogQHBhcmFtIHsqfSBzZWxmIEEgKnRlbXBvcmFyeSogaGVscGVyIHRvIGRldGVjdCBwbGFjZXMgd2hlcmUgYHRoaXNgIGlzXG4gKiBkaWZmZXJlbnQgZnJvbSB0aGUgYG93bmVyYCB3aGVuIFJlYWN0LmNyZWF0ZUVsZW1lbnQgaXMgY2FsbGVkLCBzbyB0aGF0IHdlXG4gKiBjYW4gd2Fybi4gV2Ugd2FudCB0byBnZXQgcmlkIG9mIG93bmVyIGFuZCByZXBsYWNlIHN0cmluZyBgcmVmYHMgd2l0aCBhcnJvd1xuICogZnVuY3Rpb25zLCBhbmQgYXMgbG9uZyBhcyBgdGhpc2AgYW5kIG93bmVyIGFyZSB0aGUgc2FtZSwgdGhlcmUgd2lsbCBiZSBub1xuICogY2hhbmdlIGluIGJlaGF2aW9yLlxuICogQHBhcmFtIHsqfSBzb3VyY2UgQW4gYW5ub3RhdGlvbiBvYmplY3QgKGFkZGVkIGJ5IGEgdHJhbnNwaWxlciBvciBvdGhlcndpc2UpXG4gKiBpbmRpY2F0aW5nIGZpbGVuYW1lLCBsaW5lIG51bWJlciwgYW5kL29yIG90aGVyIGluZm9ybWF0aW9uLlxuICogQGludGVybmFsXG4gKi9cblxuXG52YXIgUmVhY3RFbGVtZW50ID0gZnVuY3Rpb24gKHR5cGUsIGtleSwgcmVmLCBzZWxmLCBzb3VyY2UsIG93bmVyLCBwcm9wcykge1xuICB2YXIgZWxlbWVudCA9IHtcbiAgICAvLyBUaGlzIHRhZyBhbGxvd3MgdXMgdG8gdW5pcXVlbHkgaWRlbnRpZnkgdGhpcyBhcyBhIFJlYWN0IEVsZW1lbnRcbiAgICAkJHR5cGVvZjogUkVBQ1RfRUxFTUVOVF9UWVBFLFxuICAgIC8vIEJ1aWx0LWluIHByb3BlcnRpZXMgdGhhdCBiZWxvbmcgb24gdGhlIGVsZW1lbnRcbiAgICB0eXBlOiB0eXBlLFxuICAgIGtleToga2V5LFxuICAgIHJlZjogcmVmLFxuICAgIHByb3BzOiBwcm9wcyxcbiAgICAvLyBSZWNvcmQgdGhlIGNvbXBvbmVudCByZXNwb25zaWJsZSBmb3IgY3JlYXRpbmcgdGhpcyBlbGVtZW50LlxuICAgIF9vd25lcjogb3duZXJcbiAgfTtcblxuICB7XG4gICAgLy8gVGhlIHZhbGlkYXRpb24gZmxhZyBpcyBjdXJyZW50bHkgbXV0YXRpdmUuIFdlIHB1dCBpdCBvblxuICAgIC8vIGFuIGV4dGVybmFsIGJhY2tpbmcgc3RvcmUgc28gdGhhdCB3ZSBjYW4gZnJlZXplIHRoZSB3aG9sZSBvYmplY3QuXG4gICAgLy8gVGhpcyBjYW4gYmUgcmVwbGFjZWQgd2l0aCBhIFdlYWtNYXAgb25jZSB0aGV5IGFyZSBpbXBsZW1lbnRlZCBpblxuICAgIC8vIGNvbW1vbmx5IHVzZWQgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnRzLlxuICAgIGVsZW1lbnQuX3N0b3JlID0ge307IC8vIFRvIG1ha2UgY29tcGFyaW5nIFJlYWN0RWxlbWVudHMgZWFzaWVyIGZvciB0ZXN0aW5nIHB1cnBvc2VzLCB3ZSBtYWtlXG4gICAgLy8gdGhlIHZhbGlkYXRpb24gZmxhZyBub24tZW51bWVyYWJsZSAod2hlcmUgcG9zc2libGUsIHdoaWNoIHNob3VsZFxuICAgIC8vIGluY2x1ZGUgZXZlcnkgZW52aXJvbm1lbnQgd2UgcnVuIHRlc3RzIGluKSwgc28gdGhlIHRlc3QgZnJhbWV3b3JrXG4gICAgLy8gaWdub3JlcyBpdC5cblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlbGVtZW50Ll9zdG9yZSwgJ3ZhbGlkYXRlZCcsIHtcbiAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgdmFsdWU6IGZhbHNlXG4gICAgfSk7IC8vIHNlbGYgYW5kIHNvdXJjZSBhcmUgREVWIG9ubHkgcHJvcGVydGllcy5cblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlbGVtZW50LCAnX3NlbGYnLCB7XG4gICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICB2YWx1ZTogc2VsZlxuICAgIH0pOyAvLyBUd28gZWxlbWVudHMgY3JlYXRlZCBpbiB0d28gZGlmZmVyZW50IHBsYWNlcyBzaG91bGQgYmUgY29uc2lkZXJlZFxuICAgIC8vIGVxdWFsIGZvciB0ZXN0aW5nIHB1cnBvc2VzIGFuZCB0aGVyZWZvcmUgd2UgaGlkZSBpdCBmcm9tIGVudW1lcmF0aW9uLlxuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGVsZW1lbnQsICdfc291cmNlJywge1xuICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgICAgdmFsdWU6IHNvdXJjZVxuICAgIH0pO1xuXG4gICAgaWYgKE9iamVjdC5mcmVlemUpIHtcbiAgICAgIE9iamVjdC5mcmVlemUoZWxlbWVudC5wcm9wcyk7XG4gICAgICBPYmplY3QuZnJlZXplKGVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBlbGVtZW50O1xufTtcbi8qKlxuICogQ3JlYXRlIGFuZCByZXR1cm4gYSBuZXcgUmVhY3RFbGVtZW50IG9mIHRoZSBnaXZlbiB0eXBlLlxuICogU2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9yZWFjdC1hcGkuaHRtbCNjcmVhdGVlbGVtZW50XG4gKi9cblxuZnVuY3Rpb24gY3JlYXRlRWxlbWVudCh0eXBlLCBjb25maWcsIGNoaWxkcmVuKSB7XG4gIHZhciBwcm9wTmFtZTsgLy8gUmVzZXJ2ZWQgbmFtZXMgYXJlIGV4dHJhY3RlZFxuXG4gIHZhciBwcm9wcyA9IHt9O1xuICB2YXIga2V5ID0gbnVsbDtcbiAgdmFyIHJlZiA9IG51bGw7XG4gIHZhciBzZWxmID0gbnVsbDtcbiAgdmFyIHNvdXJjZSA9IG51bGw7XG5cbiAgaWYgKGNvbmZpZyAhPSBudWxsKSB7XG4gICAgaWYgKGhhc1ZhbGlkUmVmKGNvbmZpZykpIHtcbiAgICAgIHJlZiA9IGNvbmZpZy5yZWY7XG5cbiAgICAgIHtcbiAgICAgICAgd2FybklmU3RyaW5nUmVmQ2Fubm90QmVBdXRvQ29udmVydGVkKGNvbmZpZyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGhhc1ZhbGlkS2V5KGNvbmZpZykpIHtcbiAgICAgIGtleSA9ICcnICsgY29uZmlnLmtleTtcbiAgICB9XG5cbiAgICBzZWxmID0gY29uZmlnLl9fc2VsZiA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGNvbmZpZy5fX3NlbGY7XG4gICAgc291cmNlID0gY29uZmlnLl9fc291cmNlID09PSB1bmRlZmluZWQgPyBudWxsIDogY29uZmlnLl9fc291cmNlOyAvLyBSZW1haW5pbmcgcHJvcGVydGllcyBhcmUgYWRkZWQgdG8gYSBuZXcgcHJvcHMgb2JqZWN0XG5cbiAgICBmb3IgKHByb3BOYW1lIGluIGNvbmZpZykge1xuICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoY29uZmlnLCBwcm9wTmFtZSkgJiYgIVJFU0VSVkVEX1BST1BTLmhhc093blByb3BlcnR5KHByb3BOYW1lKSkge1xuICAgICAgICBwcm9wc1twcm9wTmFtZV0gPSBjb25maWdbcHJvcE5hbWVdO1xuICAgICAgfVxuICAgIH1cbiAgfSAvLyBDaGlsZHJlbiBjYW4gYmUgbW9yZSB0aGFuIG9uZSBhcmd1bWVudCwgYW5kIHRob3NlIGFyZSB0cmFuc2ZlcnJlZCBvbnRvXG4gIC8vIHRoZSBuZXdseSBhbGxvY2F0ZWQgcHJvcHMgb2JqZWN0LlxuXG5cbiAgdmFyIGNoaWxkcmVuTGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aCAtIDI7XG5cbiAgaWYgKGNoaWxkcmVuTGVuZ3RoID09PSAxKSB7XG4gICAgcHJvcHMuY2hpbGRyZW4gPSBjaGlsZHJlbjtcbiAgfSBlbHNlIGlmIChjaGlsZHJlbkxlbmd0aCA+IDEpIHtcbiAgICB2YXIgY2hpbGRBcnJheSA9IEFycmF5KGNoaWxkcmVuTGVuZ3RoKTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW5MZW5ndGg7IGkrKykge1xuICAgICAgY2hpbGRBcnJheVtpXSA9IGFyZ3VtZW50c1tpICsgMl07XG4gICAgfVxuXG4gICAge1xuICAgICAgaWYgKE9iamVjdC5mcmVlemUpIHtcbiAgICAgICAgT2JqZWN0LmZyZWV6ZShjaGlsZEFycmF5KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcm9wcy5jaGlsZHJlbiA9IGNoaWxkQXJyYXk7XG4gIH0gLy8gUmVzb2x2ZSBkZWZhdWx0IHByb3BzXG5cblxuICBpZiAodHlwZSAmJiB0eXBlLmRlZmF1bHRQcm9wcykge1xuICAgIHZhciBkZWZhdWx0UHJvcHMgPSB0eXBlLmRlZmF1bHRQcm9wcztcblxuICAgIGZvciAocHJvcE5hbWUgaW4gZGVmYXVsdFByb3BzKSB7XG4gICAgICBpZiAocHJvcHNbcHJvcE5hbWVdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcHJvcHNbcHJvcE5hbWVdID0gZGVmYXVsdFByb3BzW3Byb3BOYW1lXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB7XG4gICAgaWYgKGtleSB8fCByZWYpIHtcbiAgICAgIHZhciBkaXNwbGF5TmFtZSA9IHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nID8gdHlwZS5kaXNwbGF5TmFtZSB8fCB0eXBlLm5hbWUgfHwgJ1Vua25vd24nIDogdHlwZTtcblxuICAgICAgaWYgKGtleSkge1xuICAgICAgICBkZWZpbmVLZXlQcm9wV2FybmluZ0dldHRlcihwcm9wcywgZGlzcGxheU5hbWUpO1xuICAgICAgfVxuXG4gICAgICBpZiAocmVmKSB7XG4gICAgICAgIGRlZmluZVJlZlByb3BXYXJuaW5nR2V0dGVyKHByb3BzLCBkaXNwbGF5TmFtZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFJlYWN0RWxlbWVudCh0eXBlLCBrZXksIHJlZiwgc2VsZiwgc291cmNlLCBSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50LCBwcm9wcyk7XG59XG5mdW5jdGlvbiBjbG9uZUFuZFJlcGxhY2VLZXkob2xkRWxlbWVudCwgbmV3S2V5KSB7XG4gIHZhciBuZXdFbGVtZW50ID0gUmVhY3RFbGVtZW50KG9sZEVsZW1lbnQudHlwZSwgbmV3S2V5LCBvbGRFbGVtZW50LnJlZiwgb2xkRWxlbWVudC5fc2VsZiwgb2xkRWxlbWVudC5fc291cmNlLCBvbGRFbGVtZW50Ll9vd25lciwgb2xkRWxlbWVudC5wcm9wcyk7XG4gIHJldHVybiBuZXdFbGVtZW50O1xufVxuLyoqXG4gKiBDbG9uZSBhbmQgcmV0dXJuIGEgbmV3IFJlYWN0RWxlbWVudCB1c2luZyBlbGVtZW50IGFzIHRoZSBzdGFydGluZyBwb2ludC5cbiAqIFNlZSBodHRwczovL3JlYWN0anMub3JnL2RvY3MvcmVhY3QtYXBpLmh0bWwjY2xvbmVlbGVtZW50XG4gKi9cblxuZnVuY3Rpb24gY2xvbmVFbGVtZW50KGVsZW1lbnQsIGNvbmZpZywgY2hpbGRyZW4pIHtcbiAgaWYgKCEhKGVsZW1lbnQgPT09IG51bGwgfHwgZWxlbWVudCA9PT0gdW5kZWZpbmVkKSkge1xuICAgIHtcbiAgICAgIHRocm93IEVycm9yKCBcIlJlYWN0LmNsb25lRWxlbWVudCguLi4pOiBUaGUgYXJndW1lbnQgbXVzdCBiZSBhIFJlYWN0IGVsZW1lbnQsIGJ1dCB5b3UgcGFzc2VkIFwiICsgZWxlbWVudCArIFwiLlwiICk7XG4gICAgfVxuICB9XG5cbiAgdmFyIHByb3BOYW1lOyAvLyBPcmlnaW5hbCBwcm9wcyBhcmUgY29waWVkXG5cbiAgdmFyIHByb3BzID0gX2Fzc2lnbih7fSwgZWxlbWVudC5wcm9wcyk7IC8vIFJlc2VydmVkIG5hbWVzIGFyZSBleHRyYWN0ZWRcblxuXG4gIHZhciBrZXkgPSBlbGVtZW50LmtleTtcbiAgdmFyIHJlZiA9IGVsZW1lbnQucmVmOyAvLyBTZWxmIGlzIHByZXNlcnZlZCBzaW5jZSB0aGUgb3duZXIgaXMgcHJlc2VydmVkLlxuXG4gIHZhciBzZWxmID0gZWxlbWVudC5fc2VsZjsgLy8gU291cmNlIGlzIHByZXNlcnZlZCBzaW5jZSBjbG9uZUVsZW1lbnQgaXMgdW5saWtlbHkgdG8gYmUgdGFyZ2V0ZWQgYnkgYVxuICAvLyB0cmFuc3BpbGVyLCBhbmQgdGhlIG9yaWdpbmFsIHNvdXJjZSBpcyBwcm9iYWJseSBhIGJldHRlciBpbmRpY2F0b3Igb2YgdGhlXG4gIC8vIHRydWUgb3duZXIuXG5cbiAgdmFyIHNvdXJjZSA9IGVsZW1lbnQuX3NvdXJjZTsgLy8gT3duZXIgd2lsbCBiZSBwcmVzZXJ2ZWQsIHVubGVzcyByZWYgaXMgb3ZlcnJpZGRlblxuXG4gIHZhciBvd25lciA9IGVsZW1lbnQuX293bmVyO1xuXG4gIGlmIChjb25maWcgIT0gbnVsbCkge1xuICAgIGlmIChoYXNWYWxpZFJlZihjb25maWcpKSB7XG4gICAgICAvLyBTaWxlbnRseSBzdGVhbCB0aGUgcmVmIGZyb20gdGhlIHBhcmVudC5cbiAgICAgIHJlZiA9IGNvbmZpZy5yZWY7XG4gICAgICBvd25lciA9IFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQ7XG4gICAgfVxuXG4gICAgaWYgKGhhc1ZhbGlkS2V5KGNvbmZpZykpIHtcbiAgICAgIGtleSA9ICcnICsgY29uZmlnLmtleTtcbiAgICB9IC8vIFJlbWFpbmluZyBwcm9wZXJ0aWVzIG92ZXJyaWRlIGV4aXN0aW5nIHByb3BzXG5cblxuICAgIHZhciBkZWZhdWx0UHJvcHM7XG5cbiAgICBpZiAoZWxlbWVudC50eXBlICYmIGVsZW1lbnQudHlwZS5kZWZhdWx0UHJvcHMpIHtcbiAgICAgIGRlZmF1bHRQcm9wcyA9IGVsZW1lbnQudHlwZS5kZWZhdWx0UHJvcHM7XG4gICAgfVxuXG4gICAgZm9yIChwcm9wTmFtZSBpbiBjb25maWcpIHtcbiAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbmZpZywgcHJvcE5hbWUpICYmICFSRVNFUlZFRF9QUk9QUy5oYXNPd25Qcm9wZXJ0eShwcm9wTmFtZSkpIHtcbiAgICAgICAgaWYgKGNvbmZpZ1twcm9wTmFtZV0gPT09IHVuZGVmaW5lZCAmJiBkZWZhdWx0UHJvcHMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIC8vIFJlc29sdmUgZGVmYXVsdCBwcm9wc1xuICAgICAgICAgIHByb3BzW3Byb3BOYW1lXSA9IGRlZmF1bHRQcm9wc1twcm9wTmFtZV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcHJvcHNbcHJvcE5hbWVdID0gY29uZmlnW3Byb3BOYW1lXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSAvLyBDaGlsZHJlbiBjYW4gYmUgbW9yZSB0aGFuIG9uZSBhcmd1bWVudCwgYW5kIHRob3NlIGFyZSB0cmFuc2ZlcnJlZCBvbnRvXG4gIC8vIHRoZSBuZXdseSBhbGxvY2F0ZWQgcHJvcHMgb2JqZWN0LlxuXG5cbiAgdmFyIGNoaWxkcmVuTGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aCAtIDI7XG5cbiAgaWYgKGNoaWxkcmVuTGVuZ3RoID09PSAxKSB7XG4gICAgcHJvcHMuY2hpbGRyZW4gPSBjaGlsZHJlbjtcbiAgfSBlbHNlIGlmIChjaGlsZHJlbkxlbmd0aCA+IDEpIHtcbiAgICB2YXIgY2hpbGRBcnJheSA9IEFycmF5KGNoaWxkcmVuTGVuZ3RoKTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW5MZW5ndGg7IGkrKykge1xuICAgICAgY2hpbGRBcnJheVtpXSA9IGFyZ3VtZW50c1tpICsgMl07XG4gICAgfVxuXG4gICAgcHJvcHMuY2hpbGRyZW4gPSBjaGlsZEFycmF5O1xuICB9XG5cbiAgcmV0dXJuIFJlYWN0RWxlbWVudChlbGVtZW50LnR5cGUsIGtleSwgcmVmLCBzZWxmLCBzb3VyY2UsIG93bmVyLCBwcm9wcyk7XG59XG4vKipcbiAqIFZlcmlmaWVzIHRoZSBvYmplY3QgaXMgYSBSZWFjdEVsZW1lbnQuXG4gKiBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL3JlYWN0LWFwaS5odG1sI2lzdmFsaWRlbGVtZW50XG4gKiBAcGFyYW0gez9vYmplY3R9IG9iamVjdFxuICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSBpZiBgb2JqZWN0YCBpcyBhIFJlYWN0RWxlbWVudC5cbiAqIEBmaW5hbFxuICovXG5cbmZ1bmN0aW9uIGlzVmFsaWRFbGVtZW50KG9iamVjdCkge1xuICByZXR1cm4gdHlwZW9mIG9iamVjdCA9PT0gJ29iamVjdCcgJiYgb2JqZWN0ICE9PSBudWxsICYmIG9iamVjdC4kJHR5cGVvZiA9PT0gUkVBQ1RfRUxFTUVOVF9UWVBFO1xufVxuXG52YXIgU0VQQVJBVE9SID0gJy4nO1xudmFyIFNVQlNFUEFSQVRPUiA9ICc6Jztcbi8qKlxuICogRXNjYXBlIGFuZCB3cmFwIGtleSBzbyBpdCBpcyBzYWZlIHRvIHVzZSBhcyBhIHJlYWN0aWRcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IHRvIGJlIGVzY2FwZWQuXG4gKiBAcmV0dXJuIHtzdHJpbmd9IHRoZSBlc2NhcGVkIGtleS5cbiAqL1xuXG5mdW5jdGlvbiBlc2NhcGUoa2V5KSB7XG4gIHZhciBlc2NhcGVSZWdleCA9IC9bPTpdL2c7XG4gIHZhciBlc2NhcGVyTG9va3VwID0ge1xuICAgICc9JzogJz0wJyxcbiAgICAnOic6ICc9MidcbiAgfTtcbiAgdmFyIGVzY2FwZWRTdHJpbmcgPSBrZXkucmVwbGFjZShlc2NhcGVSZWdleCwgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgcmV0dXJuIGVzY2FwZXJMb29rdXBbbWF0Y2hdO1xuICB9KTtcbiAgcmV0dXJuICckJyArIGVzY2FwZWRTdHJpbmc7XG59XG4vKipcbiAqIFRPRE86IFRlc3QgdGhhdCBhIHNpbmdsZSBjaGlsZCBhbmQgYW4gYXJyYXkgd2l0aCBvbmUgaXRlbSBoYXZlIHRoZSBzYW1lIGtleVxuICogcGF0dGVybi5cbiAqL1xuXG5cbnZhciBkaWRXYXJuQWJvdXRNYXBzID0gZmFsc2U7XG52YXIgdXNlclByb3ZpZGVkS2V5RXNjYXBlUmVnZXggPSAvXFwvKy9nO1xuXG5mdW5jdGlvbiBlc2NhcGVVc2VyUHJvdmlkZWRLZXkodGV4dCkge1xuICByZXR1cm4gdGV4dC5yZXBsYWNlKHVzZXJQcm92aWRlZEtleUVzY2FwZVJlZ2V4LCAnJCYvJyk7XG59XG4vKipcbiAqIEdlbmVyYXRlIGEga2V5IHN0cmluZyB0aGF0IGlkZW50aWZpZXMgYSBlbGVtZW50IHdpdGhpbiBhIHNldC5cbiAqXG4gKiBAcGFyYW0geyp9IGVsZW1lbnQgQSBlbGVtZW50IHRoYXQgY291bGQgY29udGFpbiBhIG1hbnVhbCBrZXkuXG4gKiBAcGFyYW0ge251bWJlcn0gaW5kZXggSW5kZXggdGhhdCBpcyB1c2VkIGlmIGEgbWFudWFsIGtleSBpcyBub3QgcHJvdmlkZWQuXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cblxuXG5mdW5jdGlvbiBnZXRFbGVtZW50S2V5KGVsZW1lbnQsIGluZGV4KSB7XG4gIC8vIERvIHNvbWUgdHlwZWNoZWNraW5nIGhlcmUgc2luY2Ugd2UgY2FsbCB0aGlzIGJsaW5kbHkuIFdlIHdhbnQgdG8gZW5zdXJlXG4gIC8vIHRoYXQgd2UgZG9uJ3QgYmxvY2sgcG90ZW50aWFsIGZ1dHVyZSBFUyBBUElzLlxuICBpZiAodHlwZW9mIGVsZW1lbnQgPT09ICdvYmplY3QnICYmIGVsZW1lbnQgIT09IG51bGwgJiYgZWxlbWVudC5rZXkgIT0gbnVsbCkge1xuICAgIC8vIEV4cGxpY2l0IGtleVxuICAgIHJldHVybiBlc2NhcGUoJycgKyBlbGVtZW50LmtleSk7XG4gIH0gLy8gSW1wbGljaXQga2V5IGRldGVybWluZWQgYnkgdGhlIGluZGV4IGluIHRoZSBzZXRcblxuXG4gIHJldHVybiBpbmRleC50b1N0cmluZygzNik7XG59XG5cbmZ1bmN0aW9uIG1hcEludG9BcnJheShjaGlsZHJlbiwgYXJyYXksIGVzY2FwZWRQcmVmaXgsIG5hbWVTb0ZhciwgY2FsbGJhY2spIHtcbiAgdmFyIHR5cGUgPSB0eXBlb2YgY2hpbGRyZW47XG5cbiAgaWYgKHR5cGUgPT09ICd1bmRlZmluZWQnIHx8IHR5cGUgPT09ICdib29sZWFuJykge1xuICAgIC8vIEFsbCBvZiB0aGUgYWJvdmUgYXJlIHBlcmNlaXZlZCBhcyBudWxsLlxuICAgIGNoaWxkcmVuID0gbnVsbDtcbiAgfVxuXG4gIHZhciBpbnZva2VDYWxsYmFjayA9IGZhbHNlO1xuXG4gIGlmIChjaGlsZHJlbiA9PT0gbnVsbCkge1xuICAgIGludm9rZUNhbGxiYWNrID0gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICBpbnZva2VDYWxsYmFjayA9IHRydWU7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdvYmplY3QnOlxuICAgICAgICBzd2l0Y2ggKGNoaWxkcmVuLiQkdHlwZW9mKSB7XG4gICAgICAgICAgY2FzZSBSRUFDVF9FTEVNRU5UX1RZUEU6XG4gICAgICAgICAgY2FzZSBSRUFDVF9QT1JUQUxfVFlQRTpcbiAgICAgICAgICAgIGludm9rZUNhbGxiYWNrID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgfVxuICB9XG5cbiAgaWYgKGludm9rZUNhbGxiYWNrKSB7XG4gICAgdmFyIF9jaGlsZCA9IGNoaWxkcmVuO1xuICAgIHZhciBtYXBwZWRDaGlsZCA9IGNhbGxiYWNrKF9jaGlsZCk7IC8vIElmIGl0J3MgdGhlIG9ubHkgY2hpbGQsIHRyZWF0IHRoZSBuYW1lIGFzIGlmIGl0IHdhcyB3cmFwcGVkIGluIGFuIGFycmF5XG4gICAgLy8gc28gdGhhdCBpdCdzIGNvbnNpc3RlbnQgaWYgdGhlIG51bWJlciBvZiBjaGlsZHJlbiBncm93czpcblxuICAgIHZhciBjaGlsZEtleSA9IG5hbWVTb0ZhciA9PT0gJycgPyBTRVBBUkFUT1IgKyBnZXRFbGVtZW50S2V5KF9jaGlsZCwgMCkgOiBuYW1lU29GYXI7XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShtYXBwZWRDaGlsZCkpIHtcbiAgICAgIHZhciBlc2NhcGVkQ2hpbGRLZXkgPSAnJztcblxuICAgICAgaWYgKGNoaWxkS2V5ICE9IG51bGwpIHtcbiAgICAgICAgZXNjYXBlZENoaWxkS2V5ID0gZXNjYXBlVXNlclByb3ZpZGVkS2V5KGNoaWxkS2V5KSArICcvJztcbiAgICAgIH1cblxuICAgICAgbWFwSW50b0FycmF5KG1hcHBlZENoaWxkLCBhcnJheSwgZXNjYXBlZENoaWxkS2V5LCAnJywgZnVuY3Rpb24gKGMpIHtcbiAgICAgICAgcmV0dXJuIGM7XG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKG1hcHBlZENoaWxkICE9IG51bGwpIHtcbiAgICAgIGlmIChpc1ZhbGlkRWxlbWVudChtYXBwZWRDaGlsZCkpIHtcbiAgICAgICAgbWFwcGVkQ2hpbGQgPSBjbG9uZUFuZFJlcGxhY2VLZXkobWFwcGVkQ2hpbGQsIC8vIEtlZXAgYm90aCB0aGUgKG1hcHBlZCkgYW5kIG9sZCBrZXlzIGlmIHRoZXkgZGlmZmVyLCBqdXN0IGFzXG4gICAgICAgIC8vIHRyYXZlcnNlQWxsQ2hpbGRyZW4gdXNlZCB0byBkbyBmb3Igb2JqZWN0cyBhcyBjaGlsZHJlblxuICAgICAgICBlc2NhcGVkUHJlZml4ICsgKCAvLyAkRmxvd0ZpeE1lIEZsb3cgaW5jb3JyZWN0bHkgdGhpbmtzIFJlYWN0LlBvcnRhbCBkb2Vzbid0IGhhdmUgYSBrZXlcbiAgICAgICAgbWFwcGVkQ2hpbGQua2V5ICYmICghX2NoaWxkIHx8IF9jaGlsZC5rZXkgIT09IG1hcHBlZENoaWxkLmtleSkgPyAvLyAkRmxvd0ZpeE1lIEZsb3cgaW5jb3JyZWN0bHkgdGhpbmtzIGV4aXN0aW5nIGVsZW1lbnQncyBrZXkgY2FuIGJlIGEgbnVtYmVyXG4gICAgICAgIGVzY2FwZVVzZXJQcm92aWRlZEtleSgnJyArIG1hcHBlZENoaWxkLmtleSkgKyAnLycgOiAnJykgKyBjaGlsZEtleSk7XG4gICAgICB9XG5cbiAgICAgIGFycmF5LnB1c2gobWFwcGVkQ2hpbGQpO1xuICAgIH1cblxuICAgIHJldHVybiAxO1xuICB9XG5cbiAgdmFyIGNoaWxkO1xuICB2YXIgbmV4dE5hbWU7XG4gIHZhciBzdWJ0cmVlQ291bnQgPSAwOyAvLyBDb3VudCBvZiBjaGlsZHJlbiBmb3VuZCBpbiB0aGUgY3VycmVudCBzdWJ0cmVlLlxuXG4gIHZhciBuZXh0TmFtZVByZWZpeCA9IG5hbWVTb0ZhciA9PT0gJycgPyBTRVBBUkFUT1IgOiBuYW1lU29GYXIgKyBTVUJTRVBBUkFUT1I7XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgY2hpbGQgPSBjaGlsZHJlbltpXTtcbiAgICAgIG5leHROYW1lID0gbmV4dE5hbWVQcmVmaXggKyBnZXRFbGVtZW50S2V5KGNoaWxkLCBpKTtcbiAgICAgIHN1YnRyZWVDb3VudCArPSBtYXBJbnRvQXJyYXkoY2hpbGQsIGFycmF5LCBlc2NhcGVkUHJlZml4LCBuZXh0TmFtZSwgY2FsbGJhY2spO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB2YXIgaXRlcmF0b3JGbiA9IGdldEl0ZXJhdG9yRm4oY2hpbGRyZW4pO1xuXG4gICAgaWYgKHR5cGVvZiBpdGVyYXRvckZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB2YXIgaXRlcmFibGVDaGlsZHJlbiA9IGNoaWxkcmVuO1xuXG4gICAgICB7XG4gICAgICAgIC8vIFdhcm4gYWJvdXQgdXNpbmcgTWFwcyBhcyBjaGlsZHJlblxuICAgICAgICBpZiAoaXRlcmF0b3JGbiA9PT0gaXRlcmFibGVDaGlsZHJlbi5lbnRyaWVzKSB7XG4gICAgICAgICAgaWYgKCFkaWRXYXJuQWJvdXRNYXBzKSB7XG4gICAgICAgICAgICB3YXJuKCdVc2luZyBNYXBzIGFzIGNoaWxkcmVuIGlzIG5vdCBzdXBwb3J0ZWQuICcgKyAnVXNlIGFuIGFycmF5IG9mIGtleWVkIFJlYWN0RWxlbWVudHMgaW5zdGVhZC4nKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBkaWRXYXJuQWJvdXRNYXBzID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB2YXIgaXRlcmF0b3IgPSBpdGVyYXRvckZuLmNhbGwoaXRlcmFibGVDaGlsZHJlbik7XG4gICAgICB2YXIgc3RlcDtcbiAgICAgIHZhciBpaSA9IDA7XG5cbiAgICAgIHdoaWxlICghKHN0ZXAgPSBpdGVyYXRvci5uZXh0KCkpLmRvbmUpIHtcbiAgICAgICAgY2hpbGQgPSBzdGVwLnZhbHVlO1xuICAgICAgICBuZXh0TmFtZSA9IG5leHROYW1lUHJlZml4ICsgZ2V0RWxlbWVudEtleShjaGlsZCwgaWkrKyk7XG4gICAgICAgIHN1YnRyZWVDb3VudCArPSBtYXBJbnRvQXJyYXkoY2hpbGQsIGFycmF5LCBlc2NhcGVkUHJlZml4LCBuZXh0TmFtZSwgY2FsbGJhY2spO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHZhciBjaGlsZHJlblN0cmluZyA9ICcnICsgY2hpbGRyZW47XG5cbiAgICAgIHtcbiAgICAgICAge1xuICAgICAgICAgIHRocm93IEVycm9yKCBcIk9iamVjdHMgYXJlIG5vdCB2YWxpZCBhcyBhIFJlYWN0IGNoaWxkIChmb3VuZDogXCIgKyAoY2hpbGRyZW5TdHJpbmcgPT09ICdbb2JqZWN0IE9iamVjdF0nID8gJ29iamVjdCB3aXRoIGtleXMgeycgKyBPYmplY3Qua2V5cyhjaGlsZHJlbikuam9pbignLCAnKSArICd9JyA6IGNoaWxkcmVuU3RyaW5nKSArIFwiKS4gSWYgeW91IG1lYW50IHRvIHJlbmRlciBhIGNvbGxlY3Rpb24gb2YgY2hpbGRyZW4sIHVzZSBhbiBhcnJheSBpbnN0ZWFkLlwiICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3VidHJlZUNvdW50O1xufVxuXG4vKipcbiAqIE1hcHMgY2hpbGRyZW4gdGhhdCBhcmUgdHlwaWNhbGx5IHNwZWNpZmllZCBhcyBgcHJvcHMuY2hpbGRyZW5gLlxuICpcbiAqIFNlZSBodHRwczovL3JlYWN0anMub3JnL2RvY3MvcmVhY3QtYXBpLmh0bWwjcmVhY3RjaGlsZHJlbm1hcFxuICpcbiAqIFRoZSBwcm92aWRlZCBtYXBGdW5jdGlvbihjaGlsZCwgaW5kZXgpIHdpbGwgYmUgY2FsbGVkIGZvciBlYWNoXG4gKiBsZWFmIGNoaWxkLlxuICpcbiAqIEBwYXJhbSB7Pyp9IGNoaWxkcmVuIENoaWxkcmVuIHRyZWUgY29udGFpbmVyLlxuICogQHBhcmFtIHtmdW5jdGlvbigqLCBpbnQpfSBmdW5jIFRoZSBtYXAgZnVuY3Rpb24uXG4gKiBAcGFyYW0geyp9IGNvbnRleHQgQ29udGV4dCBmb3IgbWFwRnVuY3Rpb24uXG4gKiBAcmV0dXJuIHtvYmplY3R9IE9iamVjdCBjb250YWluaW5nIHRoZSBvcmRlcmVkIG1hcCBvZiByZXN1bHRzLlxuICovXG5mdW5jdGlvbiBtYXBDaGlsZHJlbihjaGlsZHJlbiwgZnVuYywgY29udGV4dCkge1xuICBpZiAoY2hpbGRyZW4gPT0gbnVsbCkge1xuICAgIHJldHVybiBjaGlsZHJlbjtcbiAgfVxuXG4gIHZhciByZXN1bHQgPSBbXTtcbiAgdmFyIGNvdW50ID0gMDtcbiAgbWFwSW50b0FycmF5KGNoaWxkcmVuLCByZXN1bHQsICcnLCAnJywgZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgcmV0dXJuIGZ1bmMuY2FsbChjb250ZXh0LCBjaGlsZCwgY291bnQrKyk7XG4gIH0pO1xuICByZXR1cm4gcmVzdWx0O1xufVxuLyoqXG4gKiBDb3VudCB0aGUgbnVtYmVyIG9mIGNoaWxkcmVuIHRoYXQgYXJlIHR5cGljYWxseSBzcGVjaWZpZWQgYXNcbiAqIGBwcm9wcy5jaGlsZHJlbmAuXG4gKlxuICogU2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9yZWFjdC1hcGkuaHRtbCNyZWFjdGNoaWxkcmVuY291bnRcbiAqXG4gKiBAcGFyYW0gez8qfSBjaGlsZHJlbiBDaGlsZHJlbiB0cmVlIGNvbnRhaW5lci5cbiAqIEByZXR1cm4ge251bWJlcn0gVGhlIG51bWJlciBvZiBjaGlsZHJlbi5cbiAqL1xuXG5cbmZ1bmN0aW9uIGNvdW50Q2hpbGRyZW4oY2hpbGRyZW4pIHtcbiAgdmFyIG4gPSAwO1xuICBtYXBDaGlsZHJlbihjaGlsZHJlbiwgZnVuY3Rpb24gKCkge1xuICAgIG4rKzsgLy8gRG9uJ3QgcmV0dXJuIGFueXRoaW5nXG4gIH0pO1xuICByZXR1cm4gbjtcbn1cblxuLyoqXG4gKiBJdGVyYXRlcyB0aHJvdWdoIGNoaWxkcmVuIHRoYXQgYXJlIHR5cGljYWxseSBzcGVjaWZpZWQgYXMgYHByb3BzLmNoaWxkcmVuYC5cbiAqXG4gKiBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL3JlYWN0LWFwaS5odG1sI3JlYWN0Y2hpbGRyZW5mb3JlYWNoXG4gKlxuICogVGhlIHByb3ZpZGVkIGZvckVhY2hGdW5jKGNoaWxkLCBpbmRleCkgd2lsbCBiZSBjYWxsZWQgZm9yIGVhY2hcbiAqIGxlYWYgY2hpbGQuXG4gKlxuICogQHBhcmFtIHs/Kn0gY2hpbGRyZW4gQ2hpbGRyZW4gdHJlZSBjb250YWluZXIuXG4gKiBAcGFyYW0ge2Z1bmN0aW9uKCosIGludCl9IGZvckVhY2hGdW5jXG4gKiBAcGFyYW0geyp9IGZvckVhY2hDb250ZXh0IENvbnRleHQgZm9yIGZvckVhY2hDb250ZXh0LlxuICovXG5mdW5jdGlvbiBmb3JFYWNoQ2hpbGRyZW4oY2hpbGRyZW4sIGZvckVhY2hGdW5jLCBmb3JFYWNoQ29udGV4dCkge1xuICBtYXBDaGlsZHJlbihjaGlsZHJlbiwgZnVuY3Rpb24gKCkge1xuICAgIGZvckVhY2hGdW5jLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IC8vIERvbid0IHJldHVybiBhbnl0aGluZy5cbiAgfSwgZm9yRWFjaENvbnRleHQpO1xufVxuLyoqXG4gKiBGbGF0dGVuIGEgY2hpbGRyZW4gb2JqZWN0ICh0eXBpY2FsbHkgc3BlY2lmaWVkIGFzIGBwcm9wcy5jaGlsZHJlbmApIGFuZFxuICogcmV0dXJuIGFuIGFycmF5IHdpdGggYXBwcm9wcmlhdGVseSByZS1rZXllZCBjaGlsZHJlbi5cbiAqXG4gKiBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL3JlYWN0LWFwaS5odG1sI3JlYWN0Y2hpbGRyZW50b2FycmF5XG4gKi9cblxuXG5mdW5jdGlvbiB0b0FycmF5KGNoaWxkcmVuKSB7XG4gIHJldHVybiBtYXBDaGlsZHJlbihjaGlsZHJlbiwgZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgcmV0dXJuIGNoaWxkO1xuICB9KSB8fCBbXTtcbn1cbi8qKlxuICogUmV0dXJucyB0aGUgZmlyc3QgY2hpbGQgaW4gYSBjb2xsZWN0aW9uIG9mIGNoaWxkcmVuIGFuZCB2ZXJpZmllcyB0aGF0IHRoZXJlXG4gKiBpcyBvbmx5IG9uZSBjaGlsZCBpbiB0aGUgY29sbGVjdGlvbi5cbiAqXG4gKiBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL3JlYWN0LWFwaS5odG1sI3JlYWN0Y2hpbGRyZW5vbmx5XG4gKlxuICogVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gb2YgdGhpcyBmdW5jdGlvbiBhc3N1bWVzIHRoYXQgYSBzaW5nbGUgY2hpbGQgZ2V0c1xuICogcGFzc2VkIHdpdGhvdXQgYSB3cmFwcGVyLCBidXQgdGhlIHB1cnBvc2Ugb2YgdGhpcyBoZWxwZXIgZnVuY3Rpb24gaXMgdG9cbiAqIGFic3RyYWN0IGF3YXkgdGhlIHBhcnRpY3VsYXIgc3RydWN0dXJlIG9mIGNoaWxkcmVuLlxuICpcbiAqIEBwYXJhbSB7P29iamVjdH0gY2hpbGRyZW4gQ2hpbGQgY29sbGVjdGlvbiBzdHJ1Y3R1cmUuXG4gKiBAcmV0dXJuIHtSZWFjdEVsZW1lbnR9IFRoZSBmaXJzdCBhbmQgb25seSBgUmVhY3RFbGVtZW50YCBjb250YWluZWQgaW4gdGhlXG4gKiBzdHJ1Y3R1cmUuXG4gKi9cblxuXG5mdW5jdGlvbiBvbmx5Q2hpbGQoY2hpbGRyZW4pIHtcbiAgaWYgKCFpc1ZhbGlkRWxlbWVudChjaGlsZHJlbikpIHtcbiAgICB7XG4gICAgICB0aHJvdyBFcnJvciggXCJSZWFjdC5DaGlsZHJlbi5vbmx5IGV4cGVjdGVkIHRvIHJlY2VpdmUgYSBzaW5nbGUgUmVhY3QgZWxlbWVudCBjaGlsZC5cIiApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjaGlsZHJlbjtcbn1cblxuZnVuY3Rpb24gY3JlYXRlQ29udGV4dChkZWZhdWx0VmFsdWUsIGNhbGN1bGF0ZUNoYW5nZWRCaXRzKSB7XG4gIGlmIChjYWxjdWxhdGVDaGFuZ2VkQml0cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgY2FsY3VsYXRlQ2hhbmdlZEJpdHMgPSBudWxsO1xuICB9IGVsc2Uge1xuICAgIHtcbiAgICAgIGlmIChjYWxjdWxhdGVDaGFuZ2VkQml0cyAhPT0gbnVsbCAmJiB0eXBlb2YgY2FsY3VsYXRlQ2hhbmdlZEJpdHMgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgZXJyb3IoJ2NyZWF0ZUNvbnRleHQ6IEV4cGVjdGVkIHRoZSBvcHRpb25hbCBzZWNvbmQgYXJndW1lbnQgdG8gYmUgYSAnICsgJ2Z1bmN0aW9uLiBJbnN0ZWFkIHJlY2VpdmVkOiAlcycsIGNhbGN1bGF0ZUNoYW5nZWRCaXRzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB2YXIgY29udGV4dCA9IHtcbiAgICAkJHR5cGVvZjogUkVBQ1RfQ09OVEVYVF9UWVBFLFxuICAgIF9jYWxjdWxhdGVDaGFuZ2VkQml0czogY2FsY3VsYXRlQ2hhbmdlZEJpdHMsXG4gICAgLy8gQXMgYSB3b3JrYXJvdW5kIHRvIHN1cHBvcnQgbXVsdGlwbGUgY29uY3VycmVudCByZW5kZXJlcnMsIHdlIGNhdGVnb3JpemVcbiAgICAvLyBzb21lIHJlbmRlcmVycyBhcyBwcmltYXJ5IGFuZCBvdGhlcnMgYXMgc2Vjb25kYXJ5LiBXZSBvbmx5IGV4cGVjdFxuICAgIC8vIHRoZXJlIHRvIGJlIHR3byBjb25jdXJyZW50IHJlbmRlcmVycyBhdCBtb3N0OiBSZWFjdCBOYXRpdmUgKHByaW1hcnkpIGFuZFxuICAgIC8vIEZhYnJpYyAoc2Vjb25kYXJ5KTsgUmVhY3QgRE9NIChwcmltYXJ5KSBhbmQgUmVhY3QgQVJUIChzZWNvbmRhcnkpLlxuICAgIC8vIFNlY29uZGFyeSByZW5kZXJlcnMgc3RvcmUgdGhlaXIgY29udGV4dCB2YWx1ZXMgb24gc2VwYXJhdGUgZmllbGRzLlxuICAgIF9jdXJyZW50VmFsdWU6IGRlZmF1bHRWYWx1ZSxcbiAgICBfY3VycmVudFZhbHVlMjogZGVmYXVsdFZhbHVlLFxuICAgIC8vIFVzZWQgdG8gdHJhY2sgaG93IG1hbnkgY29uY3VycmVudCByZW5kZXJlcnMgdGhpcyBjb250ZXh0IGN1cnJlbnRseVxuICAgIC8vIHN1cHBvcnRzIHdpdGhpbiBpbiBhIHNpbmdsZSByZW5kZXJlci4gU3VjaCBhcyBwYXJhbGxlbCBzZXJ2ZXIgcmVuZGVyaW5nLlxuICAgIF90aHJlYWRDb3VudDogMCxcbiAgICAvLyBUaGVzZSBhcmUgY2lyY3VsYXJcbiAgICBQcm92aWRlcjogbnVsbCxcbiAgICBDb25zdW1lcjogbnVsbFxuICB9O1xuICBjb250ZXh0LlByb3ZpZGVyID0ge1xuICAgICQkdHlwZW9mOiBSRUFDVF9QUk9WSURFUl9UWVBFLFxuICAgIF9jb250ZXh0OiBjb250ZXh0XG4gIH07XG4gIHZhciBoYXNXYXJuZWRBYm91dFVzaW5nTmVzdGVkQ29udGV4dENvbnN1bWVycyA9IGZhbHNlO1xuICB2YXIgaGFzV2FybmVkQWJvdXRVc2luZ0NvbnN1bWVyUHJvdmlkZXIgPSBmYWxzZTtcbiAgdmFyIGhhc1dhcm5lZEFib3V0RGlzcGxheU5hbWVPbkNvbnN1bWVyID0gZmFsc2U7XG5cbiAge1xuICAgIC8vIEEgc2VwYXJhdGUgb2JqZWN0LCBidXQgcHJveGllcyBiYWNrIHRvIHRoZSBvcmlnaW5hbCBjb250ZXh0IG9iamVjdCBmb3JcbiAgICAvLyBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS4gSXQgaGFzIGEgZGlmZmVyZW50ICQkdHlwZW9mLCBzbyB3ZSBjYW4gcHJvcGVybHlcbiAgICAvLyB3YXJuIGZvciB0aGUgaW5jb3JyZWN0IHVzYWdlIG9mIENvbnRleHQgYXMgYSBDb25zdW1lci5cbiAgICB2YXIgQ29uc3VtZXIgPSB7XG4gICAgICAkJHR5cGVvZjogUkVBQ1RfQ09OVEVYVF9UWVBFLFxuICAgICAgX2NvbnRleHQ6IGNvbnRleHQsXG4gICAgICBfY2FsY3VsYXRlQ2hhbmdlZEJpdHM6IGNvbnRleHQuX2NhbGN1bGF0ZUNoYW5nZWRCaXRzXG4gICAgfTsgLy8gJEZsb3dGaXhNZTogRmxvdyBjb21wbGFpbnMgYWJvdXQgbm90IHNldHRpbmcgYSB2YWx1ZSwgd2hpY2ggaXMgaW50ZW50aW9uYWwgaGVyZVxuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoQ29uc3VtZXIsIHtcbiAgICAgIFByb3ZpZGVyOiB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGlmICghaGFzV2FybmVkQWJvdXRVc2luZ0NvbnN1bWVyUHJvdmlkZXIpIHtcbiAgICAgICAgICAgIGhhc1dhcm5lZEFib3V0VXNpbmdDb25zdW1lclByb3ZpZGVyID0gdHJ1ZTtcblxuICAgICAgICAgICAgZXJyb3IoJ1JlbmRlcmluZyA8Q29udGV4dC5Db25zdW1lci5Qcm92aWRlcj4gaXMgbm90IHN1cHBvcnRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluICcgKyAnYSBmdXR1cmUgbWFqb3IgcmVsZWFzZS4gRGlkIHlvdSBtZWFuIHRvIHJlbmRlciA8Q29udGV4dC5Qcm92aWRlcj4gaW5zdGVhZD8nKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gY29udGV4dC5Qcm92aWRlcjtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAoX1Byb3ZpZGVyKSB7XG4gICAgICAgICAgY29udGV4dC5Qcm92aWRlciA9IF9Qcm92aWRlcjtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIF9jdXJyZW50VmFsdWU6IHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIGNvbnRleHQuX2N1cnJlbnRWYWx1ZTtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAoX2N1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgIGNvbnRleHQuX2N1cnJlbnRWYWx1ZSA9IF9jdXJyZW50VmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBfY3VycmVudFZhbHVlMjoge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gY29udGV4dC5fY3VycmVudFZhbHVlMjtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAoX2N1cnJlbnRWYWx1ZTIpIHtcbiAgICAgICAgICBjb250ZXh0Ll9jdXJyZW50VmFsdWUyID0gX2N1cnJlbnRWYWx1ZTI7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBfdGhyZWFkQ291bnQ6IHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIGNvbnRleHQuX3RocmVhZENvdW50O1xuICAgICAgICB9LFxuICAgICAgICBzZXQ6IGZ1bmN0aW9uIChfdGhyZWFkQ291bnQpIHtcbiAgICAgICAgICBjb250ZXh0Ll90aHJlYWRDb3VudCA9IF90aHJlYWRDb3VudDtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIENvbnN1bWVyOiB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGlmICghaGFzV2FybmVkQWJvdXRVc2luZ05lc3RlZENvbnRleHRDb25zdW1lcnMpIHtcbiAgICAgICAgICAgIGhhc1dhcm5lZEFib3V0VXNpbmdOZXN0ZWRDb250ZXh0Q29uc3VtZXJzID0gdHJ1ZTtcblxuICAgICAgICAgICAgZXJyb3IoJ1JlbmRlcmluZyA8Q29udGV4dC5Db25zdW1lci5Db25zdW1lcj4gaXMgbm90IHN1cHBvcnRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluICcgKyAnYSBmdXR1cmUgbWFqb3IgcmVsZWFzZS4gRGlkIHlvdSBtZWFuIHRvIHJlbmRlciA8Q29udGV4dC5Db25zdW1lcj4gaW5zdGVhZD8nKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gY29udGV4dC5Db25zdW1lcjtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGRpc3BsYXlOYW1lOiB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBjb250ZXh0LmRpc3BsYXlOYW1lO1xuICAgICAgICB9LFxuICAgICAgICBzZXQ6IGZ1bmN0aW9uIChkaXNwbGF5TmFtZSkge1xuICAgICAgICAgIGlmICghaGFzV2FybmVkQWJvdXREaXNwbGF5TmFtZU9uQ29uc3VtZXIpIHtcbiAgICAgICAgICAgIHdhcm4oJ1NldHRpbmcgYGRpc3BsYXlOYW1lYCBvbiBDb250ZXh0LkNvbnN1bWVyIGhhcyBubyBlZmZlY3QuICcgKyBcIllvdSBzaG91bGQgc2V0IGl0IGRpcmVjdGx5IG9uIHRoZSBjb250ZXh0IHdpdGggQ29udGV4dC5kaXNwbGF5TmFtZSA9ICclcycuXCIsIGRpc3BsYXlOYW1lKTtcblxuICAgICAgICAgICAgaGFzV2FybmVkQWJvdXREaXNwbGF5TmFtZU9uQ29uc3VtZXIgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pOyAvLyAkRmxvd0ZpeE1lOiBGbG93IGNvbXBsYWlucyBhYm91dCBtaXNzaW5nIHByb3BlcnRpZXMgYmVjYXVzZSBpdCBkb2Vzbid0IHVuZGVyc3RhbmQgZGVmaW5lUHJvcGVydHlcblxuICAgIGNvbnRleHQuQ29uc3VtZXIgPSBDb25zdW1lcjtcbiAgfVxuXG4gIHtcbiAgICBjb250ZXh0Ll9jdXJyZW50UmVuZGVyZXIgPSBudWxsO1xuICAgIGNvbnRleHQuX2N1cnJlbnRSZW5kZXJlcjIgPSBudWxsO1xuICB9XG5cbiAgcmV0dXJuIGNvbnRleHQ7XG59XG5cbnZhciBVbmluaXRpYWxpemVkID0gLTE7XG52YXIgUGVuZGluZyA9IDA7XG52YXIgUmVzb2x2ZWQgPSAxO1xudmFyIFJlamVjdGVkID0gMjtcblxuZnVuY3Rpb24gbGF6eUluaXRpYWxpemVyKHBheWxvYWQpIHtcbiAgaWYgKHBheWxvYWQuX3N0YXR1cyA9PT0gVW5pbml0aWFsaXplZCkge1xuICAgIHZhciBjdG9yID0gcGF5bG9hZC5fcmVzdWx0O1xuICAgIHZhciB0aGVuYWJsZSA9IGN0b3IoKTsgLy8gVHJhbnNpdGlvbiB0byB0aGUgbmV4dCBzdGF0ZS5cblxuICAgIHZhciBwZW5kaW5nID0gcGF5bG9hZDtcbiAgICBwZW5kaW5nLl9zdGF0dXMgPSBQZW5kaW5nO1xuICAgIHBlbmRpbmcuX3Jlc3VsdCA9IHRoZW5hYmxlO1xuICAgIHRoZW5hYmxlLnRoZW4oZnVuY3Rpb24gKG1vZHVsZU9iamVjdCkge1xuICAgICAgaWYgKHBheWxvYWQuX3N0YXR1cyA9PT0gUGVuZGluZykge1xuICAgICAgICB2YXIgZGVmYXVsdEV4cG9ydCA9IG1vZHVsZU9iamVjdC5kZWZhdWx0O1xuXG4gICAgICAgIHtcbiAgICAgICAgICBpZiAoZGVmYXVsdEV4cG9ydCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBlcnJvcignbGF6eTogRXhwZWN0ZWQgdGhlIHJlc3VsdCBvZiBhIGR5bmFtaWMgaW1wb3J0KCkgY2FsbC4gJyArICdJbnN0ZWFkIHJlY2VpdmVkOiAlc1xcblxcbllvdXIgY29kZSBzaG91bGQgbG9vayBsaWtlOiBcXG4gICcgKyAvLyBCcmVhayB1cCBpbXBvcnRzIHRvIGF2b2lkIGFjY2lkZW50YWxseSBwYXJzaW5nIHRoZW0gYXMgZGVwZW5kZW5jaWVzLlxuICAgICAgICAgICAgJ2NvbnN0IE15Q29tcG9uZW50ID0gbGF6eSgoKSA9PiBpbXAnICsgXCJvcnQoJy4vTXlDb21wb25lbnQnKSlcIiwgbW9kdWxlT2JqZWN0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gLy8gVHJhbnNpdGlvbiB0byB0aGUgbmV4dCBzdGF0ZS5cblxuXG4gICAgICAgIHZhciByZXNvbHZlZCA9IHBheWxvYWQ7XG4gICAgICAgIHJlc29sdmVkLl9zdGF0dXMgPSBSZXNvbHZlZDtcbiAgICAgICAgcmVzb2x2ZWQuX3Jlc3VsdCA9IGRlZmF1bHRFeHBvcnQ7XG4gICAgICB9XG4gICAgfSwgZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICBpZiAocGF5bG9hZC5fc3RhdHVzID09PSBQZW5kaW5nKSB7XG4gICAgICAgIC8vIFRyYW5zaXRpb24gdG8gdGhlIG5leHQgc3RhdGUuXG4gICAgICAgIHZhciByZWplY3RlZCA9IHBheWxvYWQ7XG4gICAgICAgIHJlamVjdGVkLl9zdGF0dXMgPSBSZWplY3RlZDtcbiAgICAgICAgcmVqZWN0ZWQuX3Jlc3VsdCA9IGVycm9yO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgaWYgKHBheWxvYWQuX3N0YXR1cyA9PT0gUmVzb2x2ZWQpIHtcbiAgICByZXR1cm4gcGF5bG9hZC5fcmVzdWx0O1xuICB9IGVsc2Uge1xuICAgIHRocm93IHBheWxvYWQuX3Jlc3VsdDtcbiAgfVxufVxuXG5mdW5jdGlvbiBsYXp5KGN0b3IpIHtcbiAgdmFyIHBheWxvYWQgPSB7XG4gICAgLy8gV2UgdXNlIHRoZXNlIGZpZWxkcyB0byBzdG9yZSB0aGUgcmVzdWx0LlxuICAgIF9zdGF0dXM6IC0xLFxuICAgIF9yZXN1bHQ6IGN0b3JcbiAgfTtcbiAgdmFyIGxhenlUeXBlID0ge1xuICAgICQkdHlwZW9mOiBSRUFDVF9MQVpZX1RZUEUsXG4gICAgX3BheWxvYWQ6IHBheWxvYWQsXG4gICAgX2luaXQ6IGxhenlJbml0aWFsaXplclxuICB9O1xuXG4gIHtcbiAgICAvLyBJbiBwcm9kdWN0aW9uLCB0aGlzIHdvdWxkIGp1c3Qgc2V0IGl0IG9uIHRoZSBvYmplY3QuXG4gICAgdmFyIGRlZmF1bHRQcm9wcztcbiAgICB2YXIgcHJvcFR5cGVzOyAvLyAkRmxvd0ZpeE1lXG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhsYXp5VHlwZSwge1xuICAgICAgZGVmYXVsdFByb3BzOiB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIGRlZmF1bHRQcm9wcztcbiAgICAgICAgfSxcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAobmV3RGVmYXVsdFByb3BzKSB7XG4gICAgICAgICAgZXJyb3IoJ1JlYWN0LmxhenkoLi4uKTogSXQgaXMgbm90IHN1cHBvcnRlZCB0byBhc3NpZ24gYGRlZmF1bHRQcm9wc2AgdG8gJyArICdhIGxhenkgY29tcG9uZW50IGltcG9ydC4gRWl0aGVyIHNwZWNpZnkgdGhlbSB3aGVyZSB0aGUgY29tcG9uZW50ICcgKyAnaXMgZGVmaW5lZCwgb3IgY3JlYXRlIGEgd3JhcHBpbmcgY29tcG9uZW50IGFyb3VuZCBpdC4nKTtcblxuICAgICAgICAgIGRlZmF1bHRQcm9wcyA9IG5ld0RlZmF1bHRQcm9wczsgLy8gTWF0Y2ggcHJvZHVjdGlvbiBiZWhhdmlvciBtb3JlIGNsb3NlbHk6XG4gICAgICAgICAgLy8gJEZsb3dGaXhNZVxuXG4gICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGxhenlUeXBlLCAnZGVmYXVsdFByb3BzJywge1xuICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgcHJvcFR5cGVzOiB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIHByb3BUeXBlcztcbiAgICAgICAgfSxcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAobmV3UHJvcFR5cGVzKSB7XG4gICAgICAgICAgZXJyb3IoJ1JlYWN0LmxhenkoLi4uKTogSXQgaXMgbm90IHN1cHBvcnRlZCB0byBhc3NpZ24gYHByb3BUeXBlc2AgdG8gJyArICdhIGxhenkgY29tcG9uZW50IGltcG9ydC4gRWl0aGVyIHNwZWNpZnkgdGhlbSB3aGVyZSB0aGUgY29tcG9uZW50ICcgKyAnaXMgZGVmaW5lZCwgb3IgY3JlYXRlIGEgd3JhcHBpbmcgY29tcG9uZW50IGFyb3VuZCBpdC4nKTtcblxuICAgICAgICAgIHByb3BUeXBlcyA9IG5ld1Byb3BUeXBlczsgLy8gTWF0Y2ggcHJvZHVjdGlvbiBiZWhhdmlvciBtb3JlIGNsb3NlbHk6XG4gICAgICAgICAgLy8gJEZsb3dGaXhNZVxuXG4gICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGxhenlUeXBlLCAncHJvcFR5cGVzJywge1xuICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gbGF6eVR5cGU7XG59XG5cbmZ1bmN0aW9uIGZvcndhcmRSZWYocmVuZGVyKSB7XG4gIHtcbiAgICBpZiAocmVuZGVyICE9IG51bGwgJiYgcmVuZGVyLiQkdHlwZW9mID09PSBSRUFDVF9NRU1PX1RZUEUpIHtcbiAgICAgIGVycm9yKCdmb3J3YXJkUmVmIHJlcXVpcmVzIGEgcmVuZGVyIGZ1bmN0aW9uIGJ1dCByZWNlaXZlZCBhIGBtZW1vYCAnICsgJ2NvbXBvbmVudC4gSW5zdGVhZCBvZiBmb3J3YXJkUmVmKG1lbW8oLi4uKSksIHVzZSAnICsgJ21lbW8oZm9yd2FyZFJlZiguLi4pKS4nKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiByZW5kZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGVycm9yKCdmb3J3YXJkUmVmIHJlcXVpcmVzIGEgcmVuZGVyIGZ1bmN0aW9uIGJ1dCB3YXMgZ2l2ZW4gJXMuJywgcmVuZGVyID09PSBudWxsID8gJ251bGwnIDogdHlwZW9mIHJlbmRlcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChyZW5kZXIubGVuZ3RoICE9PSAwICYmIHJlbmRlci5sZW5ndGggIT09IDIpIHtcbiAgICAgICAgZXJyb3IoJ2ZvcndhcmRSZWYgcmVuZGVyIGZ1bmN0aW9ucyBhY2NlcHQgZXhhY3RseSB0d28gcGFyYW1ldGVyczogcHJvcHMgYW5kIHJlZi4gJXMnLCByZW5kZXIubGVuZ3RoID09PSAxID8gJ0RpZCB5b3UgZm9yZ2V0IHRvIHVzZSB0aGUgcmVmIHBhcmFtZXRlcj8nIDogJ0FueSBhZGRpdGlvbmFsIHBhcmFtZXRlciB3aWxsIGJlIHVuZGVmaW5lZC4nKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocmVuZGVyICE9IG51bGwpIHtcbiAgICAgIGlmIChyZW5kZXIuZGVmYXVsdFByb3BzICE9IG51bGwgfHwgcmVuZGVyLnByb3BUeXBlcyAhPSBudWxsKSB7XG4gICAgICAgIGVycm9yKCdmb3J3YXJkUmVmIHJlbmRlciBmdW5jdGlvbnMgZG8gbm90IHN1cHBvcnQgcHJvcFR5cGVzIG9yIGRlZmF1bHRQcm9wcy4gJyArICdEaWQgeW91IGFjY2lkZW50YWxseSBwYXNzIGEgUmVhY3QgY29tcG9uZW50PycpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHZhciBlbGVtZW50VHlwZSA9IHtcbiAgICAkJHR5cGVvZjogUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSxcbiAgICByZW5kZXI6IHJlbmRlclxuICB9O1xuXG4gIHtcbiAgICB2YXIgb3duTmFtZTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZWxlbWVudFR5cGUsICdkaXNwbGF5TmFtZScsIHtcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBvd25OYW1lO1xuICAgICAgfSxcbiAgICAgIHNldDogZnVuY3Rpb24gKG5hbWUpIHtcbiAgICAgICAgb3duTmFtZSA9IG5hbWU7XG5cbiAgICAgICAgaWYgKHJlbmRlci5kaXNwbGF5TmFtZSA9PSBudWxsKSB7XG4gICAgICAgICAgcmVuZGVyLmRpc3BsYXlOYW1lID0gbmFtZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGVsZW1lbnRUeXBlO1xufVxuXG4vLyBGaWx0ZXIgY2VydGFpbiBET00gYXR0cmlidXRlcyAoZS5nLiBzcmMsIGhyZWYpIGlmIHRoZWlyIHZhbHVlcyBhcmUgZW1wdHkgc3RyaW5ncy5cblxudmFyIGVuYWJsZVNjb3BlQVBJID0gZmFsc2U7IC8vIEV4cGVyaW1lbnRhbCBDcmVhdGUgRXZlbnQgSGFuZGxlIEFQSS5cblxuZnVuY3Rpb24gaXNWYWxpZEVsZW1lbnRUeXBlKHR5cGUpIHtcbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiB0cnVlO1xuICB9IC8vIE5vdGU6IHR5cGVvZiBtaWdodCBiZSBvdGhlciB0aGFuICdzeW1ib2wnIG9yICdudW1iZXInIChlLmcuIGlmIGl0J3MgYSBwb2x5ZmlsbCkuXG5cblxuICBpZiAodHlwZSA9PT0gZXhwb3J0cy5GcmFnbWVudCB8fCB0eXBlID09PSBleHBvcnRzLlByb2ZpbGVyIHx8IHR5cGUgPT09IFJFQUNUX0RFQlVHX1RSQUNJTkdfTU9ERV9UWVBFIHx8IHR5cGUgPT09IGV4cG9ydHMuU3RyaWN0TW9kZSB8fCB0eXBlID09PSBleHBvcnRzLlN1c3BlbnNlIHx8IHR5cGUgPT09IFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9MRUdBQ1lfSElEREVOX1RZUEUgfHwgZW5hYmxlU2NvcGVBUEkgKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdvYmplY3QnICYmIHR5cGUgIT09IG51bGwpIHtcbiAgICBpZiAodHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTEFaWV9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX01FTU9fVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9QUk9WSURFUl9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0NPTlRFWFRfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0ZVTkRBTUVOVEFMX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQkxPQ0tfVFlQRSB8fCB0eXBlWzBdID09PSBSRUFDVF9TRVJWRVJfQkxPQ0tfVFlQRSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBtZW1vKHR5cGUsIGNvbXBhcmUpIHtcbiAge1xuICAgIGlmICghaXNWYWxpZEVsZW1lbnRUeXBlKHR5cGUpKSB7XG4gICAgICBlcnJvcignbWVtbzogVGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgYSBjb21wb25lbnQuIEluc3RlYWQgJyArICdyZWNlaXZlZDogJXMnLCB0eXBlID09PSBudWxsID8gJ251bGwnIDogdHlwZW9mIHR5cGUpO1xuICAgIH1cbiAgfVxuXG4gIHZhciBlbGVtZW50VHlwZSA9IHtcbiAgICAkJHR5cGVvZjogUkVBQ1RfTUVNT19UWVBFLFxuICAgIHR5cGU6IHR5cGUsXG4gICAgY29tcGFyZTogY29tcGFyZSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGNvbXBhcmVcbiAgfTtcblxuICB7XG4gICAgdmFyIG93bk5hbWU7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGVsZW1lbnRUeXBlLCAnZGlzcGxheU5hbWUnLCB7XG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gb3duTmFtZTtcbiAgICAgIH0sXG4gICAgICBzZXQ6IGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgICAgIG93bk5hbWUgPSBuYW1lO1xuXG4gICAgICAgIGlmICh0eXBlLmRpc3BsYXlOYW1lID09IG51bGwpIHtcbiAgICAgICAgICB0eXBlLmRpc3BsYXlOYW1lID0gbmFtZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGVsZW1lbnRUeXBlO1xufVxuXG5mdW5jdGlvbiByZXNvbHZlRGlzcGF0Y2hlcigpIHtcbiAgdmFyIGRpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyLmN1cnJlbnQ7XG5cbiAgaWYgKCEoZGlzcGF0Y2hlciAhPT0gbnVsbCkpIHtcbiAgICB7XG4gICAgICB0aHJvdyBFcnJvciggXCJJbnZhbGlkIGhvb2sgY2FsbC4gSG9va3MgY2FuIG9ubHkgYmUgY2FsbGVkIGluc2lkZSBvZiB0aGUgYm9keSBvZiBhIGZ1bmN0aW9uIGNvbXBvbmVudC4gVGhpcyBjb3VsZCBoYXBwZW4gZm9yIG9uZSBvZiB0aGUgZm9sbG93aW5nIHJlYXNvbnM6XFxuMS4gWW91IG1pZ2h0IGhhdmUgbWlzbWF0Y2hpbmcgdmVyc2lvbnMgb2YgUmVhY3QgYW5kIHRoZSByZW5kZXJlciAoc3VjaCBhcyBSZWFjdCBET00pXFxuMi4gWW91IG1pZ2h0IGJlIGJyZWFraW5nIHRoZSBSdWxlcyBvZiBIb29rc1xcbjMuIFlvdSBtaWdodCBoYXZlIG1vcmUgdGhhbiBvbmUgY29weSBvZiBSZWFjdCBpbiB0aGUgc2FtZSBhcHBcXG5TZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL2ludmFsaWQtaG9vay1jYWxsIGZvciB0aXBzIGFib3V0IGhvdyB0byBkZWJ1ZyBhbmQgZml4IHRoaXMgcHJvYmxlbS5cIiApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkaXNwYXRjaGVyO1xufVxuXG5mdW5jdGlvbiB1c2VDb250ZXh0KENvbnRleHQsIHVuc3RhYmxlX29ic2VydmVkQml0cykge1xuICB2YXIgZGlzcGF0Y2hlciA9IHJlc29sdmVEaXNwYXRjaGVyKCk7XG5cbiAge1xuICAgIGlmICh1bnN0YWJsZV9vYnNlcnZlZEJpdHMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgZXJyb3IoJ3VzZUNvbnRleHQoKSBzZWNvbmQgYXJndW1lbnQgaXMgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSAnICsgJ3VzZSBpbiBSZWFjdC4gUGFzc2luZyBpdCBpcyBub3Qgc3VwcG9ydGVkLiAnICsgJ1lvdSBwYXNzZWQ6ICVzLiVzJywgdW5zdGFibGVfb2JzZXJ2ZWRCaXRzLCB0eXBlb2YgdW5zdGFibGVfb2JzZXJ2ZWRCaXRzID09PSAnbnVtYmVyJyAmJiBBcnJheS5pc0FycmF5KGFyZ3VtZW50c1syXSkgPyAnXFxuXFxuRGlkIHlvdSBjYWxsIGFycmF5Lm1hcCh1c2VDb250ZXh0KT8gJyArICdDYWxsaW5nIEhvb2tzIGluc2lkZSBhIGxvb3AgaXMgbm90IHN1cHBvcnRlZC4gJyArICdMZWFybiBtb3JlIGF0IGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9ydWxlcy1vZi1ob29rcycgOiAnJyk7XG4gICAgfSAvLyBUT0RPOiBhZGQgYSBtb3JlIGdlbmVyaWMgd2FybmluZyBmb3IgaW52YWxpZCB2YWx1ZXMuXG5cblxuICAgIGlmIChDb250ZXh0Ll9jb250ZXh0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHZhciByZWFsQ29udGV4dCA9IENvbnRleHQuX2NvbnRleHQ7IC8vIERvbid0IGRlZHVwbGljYXRlIGJlY2F1c2UgdGhpcyBsZWdpdGltYXRlbHkgY2F1c2VzIGJ1Z3NcbiAgICAgIC8vIGFuZCBub2JvZHkgc2hvdWxkIGJlIHVzaW5nIHRoaXMgaW4gZXhpc3RpbmcgY29kZS5cblxuICAgICAgaWYgKHJlYWxDb250ZXh0LkNvbnN1bWVyID09PSBDb250ZXh0KSB7XG4gICAgICAgIGVycm9yKCdDYWxsaW5nIHVzZUNvbnRleHQoQ29udGV4dC5Db25zdW1lcikgaXMgbm90IHN1cHBvcnRlZCwgbWF5IGNhdXNlIGJ1Z3MsIGFuZCB3aWxsIGJlICcgKyAncmVtb3ZlZCBpbiBhIGZ1dHVyZSBtYWpvciByZWxlYXNlLiBEaWQgeW91IG1lYW4gdG8gY2FsbCB1c2VDb250ZXh0KENvbnRleHQpIGluc3RlYWQ/Jyk7XG4gICAgICB9IGVsc2UgaWYgKHJlYWxDb250ZXh0LlByb3ZpZGVyID09PSBDb250ZXh0KSB7XG4gICAgICAgIGVycm9yKCdDYWxsaW5nIHVzZUNvbnRleHQoQ29udGV4dC5Qcm92aWRlcikgaXMgbm90IHN1cHBvcnRlZC4gJyArICdEaWQgeW91IG1lYW4gdG8gY2FsbCB1c2VDb250ZXh0KENvbnRleHQpIGluc3RlYWQ/Jyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlQ29udGV4dChDb250ZXh0LCB1bnN0YWJsZV9vYnNlcnZlZEJpdHMpO1xufVxuZnVuY3Rpb24gdXNlU3RhdGUoaW5pdGlhbFN0YXRlKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlU3RhdGUoaW5pdGlhbFN0YXRlKTtcbn1cbmZ1bmN0aW9uIHVzZVJlZHVjZXIocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCkge1xuICB2YXIgZGlzcGF0Y2hlciA9IHJlc29sdmVEaXNwYXRjaGVyKCk7XG4gIHJldHVybiBkaXNwYXRjaGVyLnVzZVJlZHVjZXIocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCk7XG59XG5mdW5jdGlvbiB1c2VSZWYoaW5pdGlhbFZhbHVlKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlUmVmKGluaXRpYWxWYWx1ZSk7XG59XG5mdW5jdGlvbiB1c2VFZmZlY3QoY3JlYXRlLCBkZXBzKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlRWZmZWN0KGNyZWF0ZSwgZGVwcyk7XG59XG5mdW5jdGlvbiB1c2VMYXlvdXRFZmZlY3QoY3JlYXRlLCBkZXBzKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlTGF5b3V0RWZmZWN0KGNyZWF0ZSwgZGVwcyk7XG59XG5mdW5jdGlvbiB1c2VDYWxsYmFjayhjYWxsYmFjaywgZGVwcykge1xuICB2YXIgZGlzcGF0Y2hlciA9IHJlc29sdmVEaXNwYXRjaGVyKCk7XG4gIHJldHVybiBkaXNwYXRjaGVyLnVzZUNhbGxiYWNrKGNhbGxiYWNrLCBkZXBzKTtcbn1cbmZ1bmN0aW9uIHVzZU1lbW8oY3JlYXRlLCBkZXBzKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlTWVtbyhjcmVhdGUsIGRlcHMpO1xufVxuZnVuY3Rpb24gdXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsIGNyZWF0ZSwgZGVwcykge1xuICB2YXIgZGlzcGF0Y2hlciA9IHJlc29sdmVEaXNwYXRjaGVyKCk7XG4gIHJldHVybiBkaXNwYXRjaGVyLnVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCBjcmVhdGUsIGRlcHMpO1xufVxuZnVuY3Rpb24gdXNlRGVidWdWYWx1ZSh2YWx1ZSwgZm9ybWF0dGVyRm4pIHtcbiAge1xuICAgIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgICByZXR1cm4gZGlzcGF0Y2hlci51c2VEZWJ1Z1ZhbHVlKHZhbHVlLCBmb3JtYXR0ZXJGbik7XG4gIH1cbn1cblxuLy8gSGVscGVycyB0byBwYXRjaCBjb25zb2xlLmxvZ3MgdG8gYXZvaWQgbG9nZ2luZyBkdXJpbmcgc2lkZS1lZmZlY3QgZnJlZVxuLy8gcmVwbGF5aW5nIG9uIHJlbmRlciBmdW5jdGlvbi4gVGhpcyBjdXJyZW50bHkgb25seSBwYXRjaGVzIHRoZSBvYmplY3Rcbi8vIGxhemlseSB3aGljaCB3b24ndCBjb3ZlciBpZiB0aGUgbG9nIGZ1bmN0aW9uIHdhcyBleHRyYWN0ZWQgZWFnZXJseS5cbi8vIFdlIGNvdWxkIGFsc28gZWFnZXJseSBwYXRjaCB0aGUgbWV0aG9kLlxudmFyIGRpc2FibGVkRGVwdGggPSAwO1xudmFyIHByZXZMb2c7XG52YXIgcHJldkluZm87XG52YXIgcHJldldhcm47XG52YXIgcHJldkVycm9yO1xudmFyIHByZXZHcm91cDtcbnZhciBwcmV2R3JvdXBDb2xsYXBzZWQ7XG52YXIgcHJldkdyb3VwRW5kO1xuXG5mdW5jdGlvbiBkaXNhYmxlZExvZygpIHt9XG5cbmRpc2FibGVkTG9nLl9fcmVhY3REaXNhYmxlZExvZyA9IHRydWU7XG5mdW5jdGlvbiBkaXNhYmxlTG9ncygpIHtcbiAge1xuICAgIGlmIChkaXNhYmxlZERlcHRoID09PSAwKSB7XG4gICAgICAvKiBlc2xpbnQtZGlzYWJsZSByZWFjdC1pbnRlcm5hbC9uby1wcm9kdWN0aW9uLWxvZ2dpbmcgKi9cbiAgICAgIHByZXZMb2cgPSBjb25zb2xlLmxvZztcbiAgICAgIHByZXZJbmZvID0gY29uc29sZS5pbmZvO1xuICAgICAgcHJldldhcm4gPSBjb25zb2xlLndhcm47XG4gICAgICBwcmV2RXJyb3IgPSBjb25zb2xlLmVycm9yO1xuICAgICAgcHJldkdyb3VwID0gY29uc29sZS5ncm91cDtcbiAgICAgIHByZXZHcm91cENvbGxhcHNlZCA9IGNvbnNvbGUuZ3JvdXBDb2xsYXBzZWQ7XG4gICAgICBwcmV2R3JvdXBFbmQgPSBjb25zb2xlLmdyb3VwRW5kOyAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzE5MDk5XG5cbiAgICAgIHZhciBwcm9wcyA9IHtcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICB2YWx1ZTogZGlzYWJsZWRMb2csXG4gICAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgICB9OyAvLyAkRmxvd0ZpeE1lIEZsb3cgdGhpbmtzIGNvbnNvbGUgaXMgaW1tdXRhYmxlLlxuXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhjb25zb2xlLCB7XG4gICAgICAgIGluZm86IHByb3BzLFxuICAgICAgICBsb2c6IHByb3BzLFxuICAgICAgICB3YXJuOiBwcm9wcyxcbiAgICAgICAgZXJyb3I6IHByb3BzLFxuICAgICAgICBncm91cDogcHJvcHMsXG4gICAgICAgIGdyb3VwQ29sbGFwc2VkOiBwcm9wcyxcbiAgICAgICAgZ3JvdXBFbmQ6IHByb3BzXG4gICAgICB9KTtcbiAgICAgIC8qIGVzbGludC1lbmFibGUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nICovXG4gICAgfVxuXG4gICAgZGlzYWJsZWREZXB0aCsrO1xuICB9XG59XG5mdW5jdGlvbiByZWVuYWJsZUxvZ3MoKSB7XG4gIHtcbiAgICBkaXNhYmxlZERlcHRoLS07XG5cbiAgICBpZiAoZGlzYWJsZWREZXB0aCA9PT0gMCkge1xuICAgICAgLyogZXNsaW50LWRpc2FibGUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nICovXG4gICAgICB2YXIgcHJvcHMgPSB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgd3JpdGFibGU6IHRydWVcbiAgICAgIH07IC8vICRGbG93Rml4TWUgRmxvdyB0aGlua3MgY29uc29sZSBpcyBpbW11dGFibGUuXG5cbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGNvbnNvbGUsIHtcbiAgICAgICAgbG9nOiBfYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2TG9nXG4gICAgICAgIH0pLFxuICAgICAgICBpbmZvOiBfYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2SW5mb1xuICAgICAgICB9KSxcbiAgICAgICAgd2FybjogX2Fzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldldhcm5cbiAgICAgICAgfSksXG4gICAgICAgIGVycm9yOiBfYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2RXJyb3JcbiAgICAgICAgfSksXG4gICAgICAgIGdyb3VwOiBfYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2R3JvdXBcbiAgICAgICAgfSksXG4gICAgICAgIGdyb3VwQ29sbGFwc2VkOiBfYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2R3JvdXBDb2xsYXBzZWRcbiAgICAgICAgfSksXG4gICAgICAgIGdyb3VwRW5kOiBfYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2R3JvdXBFbmRcbiAgICAgICAgfSlcbiAgICAgIH0pO1xuICAgICAgLyogZXNsaW50LWVuYWJsZSByZWFjdC1pbnRlcm5hbC9uby1wcm9kdWN0aW9uLWxvZ2dpbmcgKi9cbiAgICB9XG5cbiAgICBpZiAoZGlzYWJsZWREZXB0aCA8IDApIHtcbiAgICAgIGVycm9yKCdkaXNhYmxlZERlcHRoIGZlbGwgYmVsb3cgemVyby4gJyArICdUaGlzIGlzIGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nKTtcbiAgICB9XG4gIH1cbn1cblxudmFyIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMSA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0Q3VycmVudERpc3BhdGNoZXI7XG52YXIgcHJlZml4O1xuZnVuY3Rpb24gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUobmFtZSwgc291cmNlLCBvd25lckZuKSB7XG4gIHtcbiAgICBpZiAocHJlZml4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIEV4dHJhY3QgdGhlIFZNIHNwZWNpZmljIHByZWZpeCB1c2VkIGJ5IGVhY2ggbGluZS5cbiAgICAgIHRyeSB7XG4gICAgICAgIHRocm93IEVycm9yKCk7XG4gICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgIHZhciBtYXRjaCA9IHguc3RhY2sudHJpbSgpLm1hdGNoKC9cXG4oICooYXQgKT8pLyk7XG4gICAgICAgIHByZWZpeCA9IG1hdGNoICYmIG1hdGNoWzFdIHx8ICcnO1xuICAgICAgfVxuICAgIH0gLy8gV2UgdXNlIHRoZSBwcmVmaXggdG8gZW5zdXJlIG91ciBzdGFja3MgbGluZSB1cCB3aXRoIG5hdGl2ZSBzdGFjayBmcmFtZXMuXG5cblxuICAgIHJldHVybiAnXFxuJyArIHByZWZpeCArIG5hbWU7XG4gIH1cbn1cbnZhciByZWVudHJ5ID0gZmFsc2U7XG52YXIgY29tcG9uZW50RnJhbWVDYWNoZTtcblxue1xuICB2YXIgUG9zc2libHlXZWFrTWFwID0gdHlwZW9mIFdlYWtNYXAgPT09ICdmdW5jdGlvbicgPyBXZWFrTWFwIDogTWFwO1xuICBjb21wb25lbnRGcmFtZUNhY2hlID0gbmV3IFBvc3NpYmx5V2Vha01hcCgpO1xufVxuXG5mdW5jdGlvbiBkZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lKGZuLCBjb25zdHJ1Y3QpIHtcbiAgLy8gSWYgc29tZXRoaW5nIGFza2VkIGZvciBhIHN0YWNrIGluc2lkZSBhIGZha2UgcmVuZGVyLCBpdCBzaG91bGQgZ2V0IGlnbm9yZWQuXG4gIGlmICghZm4gfHwgcmVlbnRyeSkge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHtcbiAgICB2YXIgZnJhbWUgPSBjb21wb25lbnRGcmFtZUNhY2hlLmdldChmbik7XG5cbiAgICBpZiAoZnJhbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGZyYW1lO1xuICAgIH1cbiAgfVxuXG4gIHZhciBjb250cm9sO1xuICByZWVudHJ5ID0gdHJ1ZTtcbiAgdmFyIHByZXZpb3VzUHJlcGFyZVN0YWNrVHJhY2UgPSBFcnJvci5wcmVwYXJlU3RhY2tUcmFjZTsgLy8gJEZsb3dGaXhNZSBJdCBkb2VzIGFjY2VwdCB1bmRlZmluZWQuXG5cbiAgRXJyb3IucHJlcGFyZVN0YWNrVHJhY2UgPSB1bmRlZmluZWQ7XG4gIHZhciBwcmV2aW91c0Rpc3BhdGNoZXI7XG5cbiAge1xuICAgIHByZXZpb3VzRGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50OyAvLyBTZXQgdGhlIGRpc3BhdGNoZXIgaW4gREVWIGJlY2F1c2UgdGhpcyBtaWdodCBiZSBjYWxsIGluIHRoZSByZW5kZXIgZnVuY3Rpb25cbiAgICAvLyBmb3Igd2FybmluZ3MuXG5cbiAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IG51bGw7XG4gICAgZGlzYWJsZUxvZ3MoKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgLy8gVGhpcyBzaG91bGQgdGhyb3cuXG4gICAgaWYgKGNvbnN0cnVjdCkge1xuICAgICAgLy8gU29tZXRoaW5nIHNob3VsZCBiZSBzZXR0aW5nIHRoZSBwcm9wcyBpbiB0aGUgY29uc3RydWN0b3IuXG4gICAgICB2YXIgRmFrZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoKTtcbiAgICAgIH07IC8vICRGbG93Rml4TWVcblxuXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRmFrZS5wcm90b3R5cGUsICdwcm9wcycsIHtcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgLy8gV2UgdXNlIGEgdGhyb3dpbmcgc2V0dGVyIGluc3RlYWQgb2YgZnJvemVuIG9yIG5vbi13cml0YWJsZSBwcm9wc1xuICAgICAgICAgIC8vIGJlY2F1c2UgdGhhdCB3b24ndCB0aHJvdyBpbiBhIG5vbi1zdHJpY3QgbW9kZSBmdW5jdGlvbi5cbiAgICAgICAgICB0aHJvdyBFcnJvcigpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSAnb2JqZWN0JyAmJiBSZWZsZWN0LmNvbnN0cnVjdCkge1xuICAgICAgICAvLyBXZSBjb25zdHJ1Y3QgYSBkaWZmZXJlbnQgY29udHJvbCBmb3IgdGhpcyBjYXNlIHRvIGluY2x1ZGUgYW55IGV4dHJhXG4gICAgICAgIC8vIGZyYW1lcyBhZGRlZCBieSB0aGUgY29uc3RydWN0IGNhbGwuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgUmVmbGVjdC5jb25zdHJ1Y3QoRmFrZSwgW10pO1xuICAgICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgICAgY29udHJvbCA9IHg7XG4gICAgICAgIH1cblxuICAgICAgICBSZWZsZWN0LmNvbnN0cnVjdChmbiwgW10sIEZha2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBGYWtlLmNhbGwoKTtcbiAgICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICAgIGNvbnRyb2wgPSB4O1xuICAgICAgICB9XG5cbiAgICAgICAgZm4uY2FsbChGYWtlLnByb3RvdHlwZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRocm93IEVycm9yKCk7XG4gICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgIGNvbnRyb2wgPSB4O1xuICAgICAgfVxuXG4gICAgICBmbigpO1xuICAgIH1cbiAgfSBjYXRjaCAoc2FtcGxlKSB7XG4gICAgLy8gVGhpcyBpcyBpbmxpbmVkIG1hbnVhbGx5IGJlY2F1c2UgY2xvc3VyZSBkb2Vzbid0IGRvIGl0IGZvciB1cy5cbiAgICBpZiAoc2FtcGxlICYmIGNvbnRyb2wgJiYgdHlwZW9mIHNhbXBsZS5zdGFjayA9PT0gJ3N0cmluZycpIHtcbiAgICAgIC8vIFRoaXMgZXh0cmFjdHMgdGhlIGZpcnN0IGZyYW1lIGZyb20gdGhlIHNhbXBsZSB0aGF0IGlzbid0IGFsc28gaW4gdGhlIGNvbnRyb2wuXG4gICAgICAvLyBTa2lwcGluZyBvbmUgZnJhbWUgdGhhdCB3ZSBhc3N1bWUgaXMgdGhlIGZyYW1lIHRoYXQgY2FsbHMgdGhlIHR3by5cbiAgICAgIHZhciBzYW1wbGVMaW5lcyA9IHNhbXBsZS5zdGFjay5zcGxpdCgnXFxuJyk7XG4gICAgICB2YXIgY29udHJvbExpbmVzID0gY29udHJvbC5zdGFjay5zcGxpdCgnXFxuJyk7XG4gICAgICB2YXIgcyA9IHNhbXBsZUxpbmVzLmxlbmd0aCAtIDE7XG4gICAgICB2YXIgYyA9IGNvbnRyb2xMaW5lcy5sZW5ndGggLSAxO1xuXG4gICAgICB3aGlsZSAocyA+PSAxICYmIGMgPj0gMCAmJiBzYW1wbGVMaW5lc1tzXSAhPT0gY29udHJvbExpbmVzW2NdKSB7XG4gICAgICAgIC8vIFdlIGV4cGVjdCBhdCBsZWFzdCBvbmUgc3RhY2sgZnJhbWUgdG8gYmUgc2hhcmVkLlxuICAgICAgICAvLyBUeXBpY2FsbHkgdGhpcyB3aWxsIGJlIHRoZSByb290IG1vc3Qgb25lLiBIb3dldmVyLCBzdGFjayBmcmFtZXMgbWF5IGJlXG4gICAgICAgIC8vIGN1dCBvZmYgZHVlIHRvIG1heGltdW0gc3RhY2sgbGltaXRzLiBJbiB0aGlzIGNhc2UsIG9uZSBtYXliZSBjdXQgb2ZmXG4gICAgICAgIC8vIGVhcmxpZXIgdGhhbiB0aGUgb3RoZXIuIFdlIGFzc3VtZSB0aGF0IHRoZSBzYW1wbGUgaXMgbG9uZ2VyIG9yIHRoZSBzYW1lXG4gICAgICAgIC8vIGFuZCB0aGVyZSBmb3IgY3V0IG9mZiBlYXJsaWVyLiBTbyB3ZSBzaG91bGQgZmluZCB0aGUgcm9vdCBtb3N0IGZyYW1lIGluXG4gICAgICAgIC8vIHRoZSBzYW1wbGUgc29tZXdoZXJlIGluIHRoZSBjb250cm9sLlxuICAgICAgICBjLS07XG4gICAgICB9XG5cbiAgICAgIGZvciAoOyBzID49IDEgJiYgYyA+PSAwOyBzLS0sIGMtLSkge1xuICAgICAgICAvLyBOZXh0IHdlIGZpbmQgdGhlIGZpcnN0IG9uZSB0aGF0IGlzbid0IHRoZSBzYW1lIHdoaWNoIHNob3VsZCBiZSB0aGVcbiAgICAgICAgLy8gZnJhbWUgdGhhdCBjYWxsZWQgb3VyIHNhbXBsZSBmdW5jdGlvbiBhbmQgdGhlIGNvbnRyb2wuXG4gICAgICAgIGlmIChzYW1wbGVMaW5lc1tzXSAhPT0gY29udHJvbExpbmVzW2NdKSB7XG4gICAgICAgICAgLy8gSW4gVjgsIHRoZSBmaXJzdCBsaW5lIGlzIGRlc2NyaWJpbmcgdGhlIG1lc3NhZ2UgYnV0IG90aGVyIFZNcyBkb24ndC5cbiAgICAgICAgICAvLyBJZiB3ZSdyZSBhYm91dCB0byByZXR1cm4gdGhlIGZpcnN0IGxpbmUsIGFuZCB0aGUgY29udHJvbCBpcyBhbHNvIG9uIHRoZSBzYW1lXG4gICAgICAgICAgLy8gbGluZSwgdGhhdCdzIGEgcHJldHR5IGdvb2QgaW5kaWNhdG9yIHRoYXQgb3VyIHNhbXBsZSB0aHJldyBhdCBzYW1lIGxpbmUgYXNcbiAgICAgICAgICAvLyB0aGUgY29udHJvbC4gSS5lLiBiZWZvcmUgd2UgZW50ZXJlZCB0aGUgc2FtcGxlIGZyYW1lLiBTbyB3ZSBpZ25vcmUgdGhpcyByZXN1bHQuXG4gICAgICAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIGlmIHlvdSBwYXNzZWQgYSBjbGFzcyB0byBmdW5jdGlvbiBjb21wb25lbnQsIG9yIG5vbi1mdW5jdGlvbi5cbiAgICAgICAgICBpZiAocyAhPT0gMSB8fCBjICE9PSAxKSB7XG4gICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgIHMtLTtcbiAgICAgICAgICAgICAgYy0tOyAvLyBXZSBtYXkgc3RpbGwgaGF2ZSBzaW1pbGFyIGludGVybWVkaWF0ZSBmcmFtZXMgZnJvbSB0aGUgY29uc3RydWN0IGNhbGwuXG4gICAgICAgICAgICAgIC8vIFRoZSBuZXh0IG9uZSB0aGF0IGlzbid0IHRoZSBzYW1lIHNob3VsZCBiZSBvdXIgbWF0Y2ggdGhvdWdoLlxuXG4gICAgICAgICAgICAgIGlmIChjIDwgMCB8fCBzYW1wbGVMaW5lc1tzXSAhPT0gY29udHJvbExpbmVzW2NdKSB7XG4gICAgICAgICAgICAgICAgLy8gVjggYWRkcyBhIFwibmV3XCIgcHJlZml4IGZvciBuYXRpdmUgY2xhc3Nlcy4gTGV0J3MgcmVtb3ZlIGl0IHRvIG1ha2UgaXQgcHJldHRpZXIuXG4gICAgICAgICAgICAgICAgdmFyIF9mcmFtZSA9ICdcXG4nICsgc2FtcGxlTGluZXNbc10ucmVwbGFjZSgnIGF0IG5ldyAnLCAnIGF0ICcpO1xuXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBmbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRGcmFtZUNhY2hlLnNldChmbiwgX2ZyYW1lKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IC8vIFJldHVybiB0aGUgbGluZSB3ZSBmb3VuZC5cblxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIF9mcmFtZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSB3aGlsZSAocyA+PSAxICYmIGMgPj0gMCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0gZmluYWxseSB7XG4gICAgcmVlbnRyeSA9IGZhbHNlO1xuXG4gICAge1xuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBwcmV2aW91c0Rpc3BhdGNoZXI7XG4gICAgICByZWVuYWJsZUxvZ3MoKTtcbiAgICB9XG5cbiAgICBFcnJvci5wcmVwYXJlU3RhY2tUcmFjZSA9IHByZXZpb3VzUHJlcGFyZVN0YWNrVHJhY2U7XG4gIH0gLy8gRmFsbGJhY2sgdG8ganVzdCB1c2luZyB0aGUgbmFtZSBpZiB3ZSBjb3VsZG4ndCBtYWtlIGl0IHRocm93LlxuXG5cbiAgdmFyIG5hbWUgPSBmbiA/IGZuLmRpc3BsYXlOYW1lIHx8IGZuLm5hbWUgOiAnJztcbiAgdmFyIHN5bnRoZXRpY0ZyYW1lID0gbmFtZSA/IGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKG5hbWUpIDogJyc7XG5cbiAge1xuICAgIGlmICh0eXBlb2YgZm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNvbXBvbmVudEZyYW1lQ2FjaGUuc2V0KGZuLCBzeW50aGV0aWNGcmFtZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN5bnRoZXRpY0ZyYW1lO1xufVxuZnVuY3Rpb24gZGVzY3JpYmVGdW5jdGlvbkNvbXBvbmVudEZyYW1lKGZuLCBzb3VyY2UsIG93bmVyRm4pIHtcbiAge1xuICAgIHJldHVybiBkZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lKGZuLCBmYWxzZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gc2hvdWxkQ29uc3RydWN0KENvbXBvbmVudCkge1xuICB2YXIgcHJvdG90eXBlID0gQ29tcG9uZW50LnByb3RvdHlwZTtcbiAgcmV0dXJuICEhKHByb3RvdHlwZSAmJiBwcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudCk7XG59XG5cbmZ1bmN0aW9uIGRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFVih0eXBlLCBzb3VyY2UsIG93bmVyRm4pIHtcblxuICBpZiAodHlwZSA9PSBudWxsKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAge1xuICAgICAgcmV0dXJuIGRlc2NyaWJlTmF0aXZlQ29tcG9uZW50RnJhbWUodHlwZSwgc2hvdWxkQ29uc3RydWN0KHR5cGUpKTtcbiAgICB9XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKHR5cGUpO1xuICB9XG5cbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSBleHBvcnRzLlN1c3BlbnNlOlxuICAgICAgcmV0dXJuIGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKCdTdXNwZW5zZScpO1xuXG4gICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEU6XG4gICAgICByZXR1cm4gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUoJ1N1c3BlbnNlTGlzdCcpO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnb2JqZWN0Jykge1xuICAgIHN3aXRjaCAodHlwZS4kJHR5cGVvZikge1xuICAgICAgY2FzZSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFOlxuICAgICAgICByZXR1cm4gZGVzY3JpYmVGdW5jdGlvbkNvbXBvbmVudEZyYW1lKHR5cGUucmVuZGVyKTtcblxuICAgICAgY2FzZSBSRUFDVF9NRU1PX1RZUEU6XG4gICAgICAgIC8vIE1lbW8gbWF5IGNvbnRhaW4gYW55IGNvbXBvbmVudCB0eXBlIHNvIHdlIHJlY3Vyc2l2ZWx5IHJlc29sdmUgaXQuXG4gICAgICAgIHJldHVybiBkZXNjcmliZVVua25vd25FbGVtZW50VHlwZUZyYW1lSW5ERVYodHlwZS50eXBlLCBzb3VyY2UsIG93bmVyRm4pO1xuXG4gICAgICBjYXNlIFJFQUNUX0JMT0NLX1RZUEU6XG4gICAgICAgIHJldHVybiBkZXNjcmliZUZ1bmN0aW9uQ29tcG9uZW50RnJhbWUodHlwZS5fcmVuZGVyKTtcblxuICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgbGF6eUNvbXBvbmVudCA9IHR5cGU7XG4gICAgICAgICAgdmFyIHBheWxvYWQgPSBsYXp5Q29tcG9uZW50Ll9wYXlsb2FkO1xuICAgICAgICAgIHZhciBpbml0ID0gbGF6eUNvbXBvbmVudC5faW5pdDtcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBMYXp5IG1heSBjb250YWluIGFueSBjb21wb25lbnQgdHlwZSBzbyB3ZSByZWN1cnNpdmVseSByZXNvbHZlIGl0LlxuICAgICAgICAgICAgcmV0dXJuIGRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFVihpbml0KHBheWxvYWQpLCBzb3VyY2UsIG93bmVyRm4pO1xuICAgICAgICAgIH0gY2F0Y2ggKHgpIHt9XG4gICAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gJyc7XG59XG5cbnZhciBsb2dnZWRUeXBlRmFpbHVyZXMgPSB7fTtcbnZhciBSZWFjdERlYnVnQ3VycmVudEZyYW1lJDEgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdERlYnVnQ3VycmVudEZyYW1lO1xuXG5mdW5jdGlvbiBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChlbGVtZW50KSB7XG4gIHtcbiAgICBpZiAoZWxlbWVudCkge1xuICAgICAgdmFyIG93bmVyID0gZWxlbWVudC5fb3duZXI7XG4gICAgICB2YXIgc3RhY2sgPSBkZXNjcmliZVVua25vd25FbGVtZW50VHlwZUZyYW1lSW5ERVYoZWxlbWVudC50eXBlLCBlbGVtZW50Ll9zb3VyY2UsIG93bmVyID8gb3duZXIudHlwZSA6IG51bGwpO1xuICAgICAgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSQxLnNldEV4dHJhU3RhY2tGcmFtZShzdGFjayk7XG4gICAgfSBlbHNlIHtcbiAgICAgIFJlYWN0RGVidWdDdXJyZW50RnJhbWUkMS5zZXRFeHRyYVN0YWNrRnJhbWUobnVsbCk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGNoZWNrUHJvcFR5cGVzKHR5cGVTcGVjcywgdmFsdWVzLCBsb2NhdGlvbiwgY29tcG9uZW50TmFtZSwgZWxlbWVudCkge1xuICB7XG4gICAgLy8gJEZsb3dGaXhNZSBUaGlzIGlzIG9rYXkgYnV0IEZsb3cgZG9lc24ndCBrbm93IGl0LlxuICAgIHZhciBoYXMgPSBGdW5jdGlvbi5jYWxsLmJpbmQoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSk7XG5cbiAgICBmb3IgKHZhciB0eXBlU3BlY05hbWUgaW4gdHlwZVNwZWNzKSB7XG4gICAgICBpZiAoaGFzKHR5cGVTcGVjcywgdHlwZVNwZWNOYW1lKSkge1xuICAgICAgICB2YXIgZXJyb3IkMSA9IHZvaWQgMDsgLy8gUHJvcCB0eXBlIHZhbGlkYXRpb24gbWF5IHRocm93LiBJbiBjYXNlIHRoZXkgZG8sIHdlIGRvbid0IHdhbnQgdG9cbiAgICAgICAgLy8gZmFpbCB0aGUgcmVuZGVyIHBoYXNlIHdoZXJlIGl0IGRpZG4ndCBmYWlsIGJlZm9yZS4gU28gd2UgbG9nIGl0LlxuICAgICAgICAvLyBBZnRlciB0aGVzZSBoYXZlIGJlZW4gY2xlYW5lZCB1cCwgd2UnbGwgbGV0IHRoZW0gdGhyb3cuXG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAvLyBUaGlzIGlzIGludGVudGlvbmFsbHkgYW4gaW52YXJpYW50IHRoYXQgZ2V0cyBjYXVnaHQuIEl0J3MgdGhlIHNhbWVcbiAgICAgICAgICAvLyBiZWhhdmlvciBhcyB3aXRob3V0IHRoaXMgc3RhdGVtZW50IGV4Y2VwdCB3aXRoIGEgYmV0dGVyIG1lc3NhZ2UuXG4gICAgICAgICAgaWYgKHR5cGVvZiB0eXBlU3BlY3NbdHlwZVNwZWNOYW1lXSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdmFyIGVyciA9IEVycm9yKChjb21wb25lbnROYW1lIHx8ICdSZWFjdCBjbGFzcycpICsgJzogJyArIGxvY2F0aW9uICsgJyB0eXBlIGAnICsgdHlwZVNwZWNOYW1lICsgJ2AgaXMgaW52YWxpZDsgJyArICdpdCBtdXN0IGJlIGEgZnVuY3Rpb24sIHVzdWFsbHkgZnJvbSB0aGUgYHByb3AtdHlwZXNgIHBhY2thZ2UsIGJ1dCByZWNlaXZlZCBgJyArIHR5cGVvZiB0eXBlU3BlY3NbdHlwZVNwZWNOYW1lXSArICdgLicgKyAnVGhpcyBvZnRlbiBoYXBwZW5zIGJlY2F1c2Ugb2YgdHlwb3Mgc3VjaCBhcyBgUHJvcFR5cGVzLmZ1bmN0aW9uYCBpbnN0ZWFkIG9mIGBQcm9wVHlwZXMuZnVuY2AuJyk7XG4gICAgICAgICAgICBlcnIubmFtZSA9ICdJbnZhcmlhbnQgVmlvbGF0aW9uJztcbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBlcnJvciQxID0gdHlwZVNwZWNzW3R5cGVTcGVjTmFtZV0odmFsdWVzLCB0eXBlU3BlY05hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBudWxsLCAnU0VDUkVUX0RPX05PVF9QQVNTX1RISVNfT1JfWU9VX1dJTExfQkVfRklSRUQnKTtcbiAgICAgICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgICAgICBlcnJvciQxID0gZXg7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXJyb3IkMSAmJiAhKGVycm9yJDEgaW5zdGFuY2VvZiBFcnJvcikpIHtcbiAgICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChlbGVtZW50KTtcblxuICAgICAgICAgIGVycm9yKCclczogdHlwZSBzcGVjaWZpY2F0aW9uIG9mICVzJyArICcgYCVzYCBpcyBpbnZhbGlkOyB0aGUgdHlwZSBjaGVja2VyICcgKyAnZnVuY3Rpb24gbXVzdCByZXR1cm4gYG51bGxgIG9yIGFuIGBFcnJvcmAgYnV0IHJldHVybmVkIGEgJXMuICcgKyAnWW91IG1heSBoYXZlIGZvcmdvdHRlbiB0byBwYXNzIGFuIGFyZ3VtZW50IHRvIHRoZSB0eXBlIGNoZWNrZXIgJyArICdjcmVhdG9yIChhcnJheU9mLCBpbnN0YW5jZU9mLCBvYmplY3RPZiwgb25lT2YsIG9uZU9mVHlwZSwgYW5kICcgKyAnc2hhcGUgYWxsIHJlcXVpcmUgYW4gYXJndW1lbnQpLicsIGNvbXBvbmVudE5hbWUgfHwgJ1JlYWN0IGNsYXNzJywgbG9jYXRpb24sIHR5cGVTcGVjTmFtZSwgdHlwZW9mIGVycm9yJDEpO1xuXG4gICAgICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQobnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXJyb3IkMSBpbnN0YW5jZW9mIEVycm9yICYmICEoZXJyb3IkMS5tZXNzYWdlIGluIGxvZ2dlZFR5cGVGYWlsdXJlcykpIHtcbiAgICAgICAgICAvLyBPbmx5IG1vbml0b3IgdGhpcyBmYWlsdXJlIG9uY2UgYmVjYXVzZSB0aGVyZSB0ZW5kcyB0byBiZSBhIGxvdCBvZiB0aGVcbiAgICAgICAgICAvLyBzYW1lIGVycm9yLlxuICAgICAgICAgIGxvZ2dlZFR5cGVGYWlsdXJlc1tlcnJvciQxLm1lc3NhZ2VdID0gdHJ1ZTtcbiAgICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChlbGVtZW50KTtcblxuICAgICAgICAgIGVycm9yKCdGYWlsZWQgJXMgdHlwZTogJXMnLCBsb2NhdGlvbiwgZXJyb3IkMS5tZXNzYWdlKTtcblxuICAgICAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50KG51bGwpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50JDEoZWxlbWVudCkge1xuICB7XG4gICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgIHZhciBvd25lciA9IGVsZW1lbnQuX293bmVyO1xuICAgICAgdmFyIHN0YWNrID0gZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWKGVsZW1lbnQudHlwZSwgZWxlbWVudC5fc291cmNlLCBvd25lciA/IG93bmVyLnR5cGUgOiBudWxsKTtcbiAgICAgIHNldEV4dHJhU3RhY2tGcmFtZShzdGFjayk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldEV4dHJhU3RhY2tGcmFtZShudWxsKTtcbiAgICB9XG4gIH1cbn1cblxudmFyIHByb3BUeXBlc01pc3NwZWxsV2FybmluZ1Nob3duO1xuXG57XG4gIHByb3BUeXBlc01pc3NwZWxsV2FybmluZ1Nob3duID0gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIGdldERlY2xhcmF0aW9uRXJyb3JBZGRlbmR1bSgpIHtcbiAgaWYgKFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQpIHtcbiAgICB2YXIgbmFtZSA9IGdldENvbXBvbmVudE5hbWUoUmVhY3RDdXJyZW50T3duZXIuY3VycmVudC50eXBlKTtcblxuICAgIGlmIChuYW1lKSB7XG4gICAgICByZXR1cm4gJ1xcblxcbkNoZWNrIHRoZSByZW5kZXIgbWV0aG9kIG9mIGAnICsgbmFtZSArICdgLic7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuICcnO1xufVxuXG5mdW5jdGlvbiBnZXRTb3VyY2VJbmZvRXJyb3JBZGRlbmR1bShzb3VyY2UpIHtcbiAgaWYgKHNvdXJjZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdmFyIGZpbGVOYW1lID0gc291cmNlLmZpbGVOYW1lLnJlcGxhY2UoL14uKltcXFxcXFwvXS8sICcnKTtcbiAgICB2YXIgbGluZU51bWJlciA9IHNvdXJjZS5saW5lTnVtYmVyO1xuICAgIHJldHVybiAnXFxuXFxuQ2hlY2sgeW91ciBjb2RlIGF0ICcgKyBmaWxlTmFtZSArICc6JyArIGxpbmVOdW1iZXIgKyAnLic7XG4gIH1cblxuICByZXR1cm4gJyc7XG59XG5cbmZ1bmN0aW9uIGdldFNvdXJjZUluZm9FcnJvckFkZGVuZHVtRm9yUHJvcHMoZWxlbWVudFByb3BzKSB7XG4gIGlmIChlbGVtZW50UHJvcHMgIT09IG51bGwgJiYgZWxlbWVudFByb3BzICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gZ2V0U291cmNlSW5mb0Vycm9yQWRkZW5kdW0oZWxlbWVudFByb3BzLl9fc291cmNlKTtcbiAgfVxuXG4gIHJldHVybiAnJztcbn1cbi8qKlxuICogV2FybiBpZiB0aGVyZSdzIG5vIGtleSBleHBsaWNpdGx5IHNldCBvbiBkeW5hbWljIGFycmF5cyBvZiBjaGlsZHJlbiBvclxuICogb2JqZWN0IGtleXMgYXJlIG5vdCB2YWxpZC4gVGhpcyBhbGxvd3MgdXMgdG8ga2VlcCB0cmFjayBvZiBjaGlsZHJlbiBiZXR3ZWVuXG4gKiB1cGRhdGVzLlxuICovXG5cblxudmFyIG93bmVySGFzS2V5VXNlV2FybmluZyA9IHt9O1xuXG5mdW5jdGlvbiBnZXRDdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvKHBhcmVudFR5cGUpIHtcbiAgdmFyIGluZm8gPSBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0oKTtcblxuICBpZiAoIWluZm8pIHtcbiAgICB2YXIgcGFyZW50TmFtZSA9IHR5cGVvZiBwYXJlbnRUeXBlID09PSAnc3RyaW5nJyA/IHBhcmVudFR5cGUgOiBwYXJlbnRUeXBlLmRpc3BsYXlOYW1lIHx8IHBhcmVudFR5cGUubmFtZTtcblxuICAgIGlmIChwYXJlbnROYW1lKSB7XG4gICAgICBpbmZvID0gXCJcXG5cXG5DaGVjayB0aGUgdG9wLWxldmVsIHJlbmRlciBjYWxsIHVzaW5nIDxcIiArIHBhcmVudE5hbWUgKyBcIj4uXCI7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGluZm87XG59XG4vKipcbiAqIFdhcm4gaWYgdGhlIGVsZW1lbnQgZG9lc24ndCBoYXZlIGFuIGV4cGxpY2l0IGtleSBhc3NpZ25lZCB0byBpdC5cbiAqIFRoaXMgZWxlbWVudCBpcyBpbiBhbiBhcnJheS4gVGhlIGFycmF5IGNvdWxkIGdyb3cgYW5kIHNocmluayBvciBiZVxuICogcmVvcmRlcmVkLiBBbGwgY2hpbGRyZW4gdGhhdCBoYXZlbid0IGFscmVhZHkgYmVlbiB2YWxpZGF0ZWQgYXJlIHJlcXVpcmVkIHRvXG4gKiBoYXZlIGEgXCJrZXlcIiBwcm9wZXJ0eSBhc3NpZ25lZCB0byBpdC4gRXJyb3Igc3RhdHVzZXMgYXJlIGNhY2hlZCBzbyBhIHdhcm5pbmdcbiAqIHdpbGwgb25seSBiZSBzaG93biBvbmNlLlxuICpcbiAqIEBpbnRlcm5hbFxuICogQHBhcmFtIHtSZWFjdEVsZW1lbnR9IGVsZW1lbnQgRWxlbWVudCB0aGF0IHJlcXVpcmVzIGEga2V5LlxuICogQHBhcmFtIHsqfSBwYXJlbnRUeXBlIGVsZW1lbnQncyBwYXJlbnQncyB0eXBlLlxuICovXG5cblxuZnVuY3Rpb24gdmFsaWRhdGVFeHBsaWNpdEtleShlbGVtZW50LCBwYXJlbnRUeXBlKSB7XG4gIGlmICghZWxlbWVudC5fc3RvcmUgfHwgZWxlbWVudC5fc3RvcmUudmFsaWRhdGVkIHx8IGVsZW1lbnQua2V5ICE9IG51bGwpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBlbGVtZW50Ll9zdG9yZS52YWxpZGF0ZWQgPSB0cnVlO1xuICB2YXIgY3VycmVudENvbXBvbmVudEVycm9ySW5mbyA9IGdldEN1cnJlbnRDb21wb25lbnRFcnJvckluZm8ocGFyZW50VHlwZSk7XG5cbiAgaWYgKG93bmVySGFzS2V5VXNlV2FybmluZ1tjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvXSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIG93bmVySGFzS2V5VXNlV2FybmluZ1tjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvXSA9IHRydWU7IC8vIFVzdWFsbHkgdGhlIGN1cnJlbnQgb3duZXIgaXMgdGhlIG9mZmVuZGVyLCBidXQgaWYgaXQgYWNjZXB0cyBjaGlsZHJlbiBhcyBhXG4gIC8vIHByb3BlcnR5LCBpdCBtYXkgYmUgdGhlIGNyZWF0b3Igb2YgdGhlIGNoaWxkIHRoYXQncyByZXNwb25zaWJsZSBmb3JcbiAgLy8gYXNzaWduaW5nIGl0IGEga2V5LlxuXG4gIHZhciBjaGlsZE93bmVyID0gJyc7XG5cbiAgaWYgKGVsZW1lbnQgJiYgZWxlbWVudC5fb3duZXIgJiYgZWxlbWVudC5fb3duZXIgIT09IFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQpIHtcbiAgICAvLyBHaXZlIHRoZSBjb21wb25lbnQgdGhhdCBvcmlnaW5hbGx5IGNyZWF0ZWQgdGhpcyBjaGlsZC5cbiAgICBjaGlsZE93bmVyID0gXCIgSXQgd2FzIHBhc3NlZCBhIGNoaWxkIGZyb20gXCIgKyBnZXRDb21wb25lbnROYW1lKGVsZW1lbnQuX293bmVyLnR5cGUpICsgXCIuXCI7XG4gIH1cblxuICB7XG4gICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQkMShlbGVtZW50KTtcblxuICAgIGVycm9yKCdFYWNoIGNoaWxkIGluIGEgbGlzdCBzaG91bGQgaGF2ZSBhIHVuaXF1ZSBcImtleVwiIHByb3AuJyArICclcyVzIFNlZSBodHRwczovL3JlYWN0anMub3JnL2xpbmsvd2FybmluZy1rZXlzIGZvciBtb3JlIGluZm9ybWF0aW9uLicsIGN1cnJlbnRDb21wb25lbnRFcnJvckluZm8sIGNoaWxkT3duZXIpO1xuXG4gICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQkMShudWxsKTtcbiAgfVxufVxuLyoqXG4gKiBFbnN1cmUgdGhhdCBldmVyeSBlbGVtZW50IGVpdGhlciBpcyBwYXNzZWQgaW4gYSBzdGF0aWMgbG9jYXRpb24sIGluIGFuXG4gKiBhcnJheSB3aXRoIGFuIGV4cGxpY2l0IGtleXMgcHJvcGVydHkgZGVmaW5lZCwgb3IgaW4gYW4gb2JqZWN0IGxpdGVyYWxcbiAqIHdpdGggdmFsaWQga2V5IHByb3BlcnR5LlxuICpcbiAqIEBpbnRlcm5hbFxuICogQHBhcmFtIHtSZWFjdE5vZGV9IG5vZGUgU3RhdGljYWxseSBwYXNzZWQgY2hpbGQgb2YgYW55IHR5cGUuXG4gKiBAcGFyYW0geyp9IHBhcmVudFR5cGUgbm9kZSdzIHBhcmVudCdzIHR5cGUuXG4gKi9cblxuXG5mdW5jdGlvbiB2YWxpZGF0ZUNoaWxkS2V5cyhub2RlLCBwYXJlbnRUeXBlKSB7XG4gIGlmICh0eXBlb2Ygbm9kZSAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoQXJyYXkuaXNBcnJheShub2RlKSkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZS5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGNoaWxkID0gbm9kZVtpXTtcblxuICAgICAgaWYgKGlzVmFsaWRFbGVtZW50KGNoaWxkKSkge1xuICAgICAgICB2YWxpZGF0ZUV4cGxpY2l0S2V5KGNoaWxkLCBwYXJlbnRUeXBlKTtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSBpZiAoaXNWYWxpZEVsZW1lbnQobm9kZSkpIHtcbiAgICAvLyBUaGlzIGVsZW1lbnQgd2FzIHBhc3NlZCBpbiBhIHZhbGlkIGxvY2F0aW9uLlxuICAgIGlmIChub2RlLl9zdG9yZSkge1xuICAgICAgbm9kZS5fc3RvcmUudmFsaWRhdGVkID0gdHJ1ZTtcbiAgICB9XG4gIH0gZWxzZSBpZiAobm9kZSkge1xuICAgIHZhciBpdGVyYXRvckZuID0gZ2V0SXRlcmF0b3JGbihub2RlKTtcblxuICAgIGlmICh0eXBlb2YgaXRlcmF0b3JGbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgLy8gRW50cnkgaXRlcmF0b3JzIHVzZWQgdG8gcHJvdmlkZSBpbXBsaWNpdCBrZXlzLFxuICAgICAgLy8gYnV0IG5vdyB3ZSBwcmludCBhIHNlcGFyYXRlIHdhcm5pbmcgZm9yIHRoZW0gbGF0ZXIuXG4gICAgICBpZiAoaXRlcmF0b3JGbiAhPT0gbm9kZS5lbnRyaWVzKSB7XG4gICAgICAgIHZhciBpdGVyYXRvciA9IGl0ZXJhdG9yRm4uY2FsbChub2RlKTtcbiAgICAgICAgdmFyIHN0ZXA7XG5cbiAgICAgICAgd2hpbGUgKCEoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSkuZG9uZSkge1xuICAgICAgICAgIGlmIChpc1ZhbGlkRWxlbWVudChzdGVwLnZhbHVlKSkge1xuICAgICAgICAgICAgdmFsaWRhdGVFeHBsaWNpdEtleShzdGVwLnZhbHVlLCBwYXJlbnRUeXBlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbi8qKlxuICogR2l2ZW4gYW4gZWxlbWVudCwgdmFsaWRhdGUgdGhhdCBpdHMgcHJvcHMgZm9sbG93IHRoZSBwcm9wVHlwZXMgZGVmaW5pdGlvbixcbiAqIHByb3ZpZGVkIGJ5IHRoZSB0eXBlLlxuICpcbiAqIEBwYXJhbSB7UmVhY3RFbGVtZW50fSBlbGVtZW50XG4gKi9cblxuXG5mdW5jdGlvbiB2YWxpZGF0ZVByb3BUeXBlcyhlbGVtZW50KSB7XG4gIHtcbiAgICB2YXIgdHlwZSA9IGVsZW1lbnQudHlwZTtcblxuICAgIGlmICh0eXBlID09PSBudWxsIHx8IHR5cGUgPT09IHVuZGVmaW5lZCB8fCB0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2YXIgcHJvcFR5cGVzO1xuXG4gICAgaWYgKHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBwcm9wVHlwZXMgPSB0eXBlLnByb3BUeXBlcztcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB0eXBlID09PSAnb2JqZWN0JyAmJiAodHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSB8fCAvLyBOb3RlOiBNZW1vIG9ubHkgY2hlY2tzIG91dGVyIHByb3BzIGhlcmUuXG4gICAgLy8gSW5uZXIgcHJvcHMgYXJlIGNoZWNrZWQgaW4gdGhlIHJlY29uY2lsZXIuXG4gICAgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTUVNT19UWVBFKSkge1xuICAgICAgcHJvcFR5cGVzID0gdHlwZS5wcm9wVHlwZXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAocHJvcFR5cGVzKSB7XG4gICAgICAvLyBJbnRlbnRpb25hbGx5IGluc2lkZSB0byBhdm9pZCB0cmlnZ2VyaW5nIGxhenkgaW5pdGlhbGl6ZXJzOlxuICAgICAgdmFyIG5hbWUgPSBnZXRDb21wb25lbnROYW1lKHR5cGUpO1xuICAgICAgY2hlY2tQcm9wVHlwZXMocHJvcFR5cGVzLCBlbGVtZW50LnByb3BzLCAncHJvcCcsIG5hbWUsIGVsZW1lbnQpO1xuICAgIH0gZWxzZSBpZiAodHlwZS5Qcm9wVHlwZXMgIT09IHVuZGVmaW5lZCAmJiAhcHJvcFR5cGVzTWlzc3BlbGxXYXJuaW5nU2hvd24pIHtcbiAgICAgIHByb3BUeXBlc01pc3NwZWxsV2FybmluZ1Nob3duID0gdHJ1ZTsgLy8gSW50ZW50aW9uYWxseSBpbnNpZGUgdG8gYXZvaWQgdHJpZ2dlcmluZyBsYXp5IGluaXRpYWxpemVyczpcblxuICAgICAgdmFyIF9uYW1lID0gZ2V0Q29tcG9uZW50TmFtZSh0eXBlKTtcblxuICAgICAgZXJyb3IoJ0NvbXBvbmVudCAlcyBkZWNsYXJlZCBgUHJvcFR5cGVzYCBpbnN0ZWFkIG9mIGBwcm9wVHlwZXNgLiBEaWQgeW91IG1pc3NwZWxsIHRoZSBwcm9wZXJ0eSBhc3NpZ25tZW50PycsIF9uYW1lIHx8ICdVbmtub3duJyk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB0eXBlLmdldERlZmF1bHRQcm9wcyA9PT0gJ2Z1bmN0aW9uJyAmJiAhdHlwZS5nZXREZWZhdWx0UHJvcHMuaXNSZWFjdENsYXNzQXBwcm92ZWQpIHtcbiAgICAgIGVycm9yKCdnZXREZWZhdWx0UHJvcHMgaXMgb25seSB1c2VkIG9uIGNsYXNzaWMgUmVhY3QuY3JlYXRlQ2xhc3MgJyArICdkZWZpbml0aW9ucy4gVXNlIGEgc3RhdGljIHByb3BlcnR5IG5hbWVkIGBkZWZhdWx0UHJvcHNgIGluc3RlYWQuJyk7XG4gICAgfVxuICB9XG59XG4vKipcbiAqIEdpdmVuIGEgZnJhZ21lbnQsIHZhbGlkYXRlIHRoYXQgaXQgY2FuIG9ubHkgYmUgcHJvdmlkZWQgd2l0aCBmcmFnbWVudCBwcm9wc1xuICogQHBhcmFtIHtSZWFjdEVsZW1lbnR9IGZyYWdtZW50XG4gKi9cblxuXG5mdW5jdGlvbiB2YWxpZGF0ZUZyYWdtZW50UHJvcHMoZnJhZ21lbnQpIHtcbiAge1xuICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoZnJhZ21lbnQucHJvcHMpO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIga2V5ID0ga2V5c1tpXTtcblxuICAgICAgaWYgKGtleSAhPT0gJ2NoaWxkcmVuJyAmJiBrZXkgIT09ICdrZXknKSB7XG4gICAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50JDEoZnJhZ21lbnQpO1xuXG4gICAgICAgIGVycm9yKCdJbnZhbGlkIHByb3AgYCVzYCBzdXBwbGllZCB0byBgUmVhY3QuRnJhZ21lbnRgLiAnICsgJ1JlYWN0LkZyYWdtZW50IGNhbiBvbmx5IGhhdmUgYGtleWAgYW5kIGBjaGlsZHJlbmAgcHJvcHMuJywga2V5KTtcblxuICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudCQxKG51bGwpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZnJhZ21lbnQucmVmICE9PSBudWxsKSB7XG4gICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudCQxKGZyYWdtZW50KTtcblxuICAgICAgZXJyb3IoJ0ludmFsaWQgYXR0cmlidXRlIGByZWZgIHN1cHBsaWVkIHRvIGBSZWFjdC5GcmFnbWVudGAuJyk7XG5cbiAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50JDEobnVsbCk7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBjcmVhdGVFbGVtZW50V2l0aFZhbGlkYXRpb24odHlwZSwgcHJvcHMsIGNoaWxkcmVuKSB7XG4gIHZhciB2YWxpZFR5cGUgPSBpc1ZhbGlkRWxlbWVudFR5cGUodHlwZSk7IC8vIFdlIHdhcm4gaW4gdGhpcyBjYXNlIGJ1dCBkb24ndCB0aHJvdy4gV2UgZXhwZWN0IHRoZSBlbGVtZW50IGNyZWF0aW9uIHRvXG4gIC8vIHN1Y2NlZWQgYW5kIHRoZXJlIHdpbGwgbGlrZWx5IGJlIGVycm9ycyBpbiByZW5kZXIuXG5cbiAgaWYgKCF2YWxpZFR5cGUpIHtcbiAgICB2YXIgaW5mbyA9ICcnO1xuXG4gICAgaWYgKHR5cGUgPT09IHVuZGVmaW5lZCB8fCB0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcgJiYgdHlwZSAhPT0gbnVsbCAmJiBPYmplY3Qua2V5cyh0eXBlKS5sZW5ndGggPT09IDApIHtcbiAgICAgIGluZm8gKz0gJyBZb3UgbGlrZWx5IGZvcmdvdCB0byBleHBvcnQgeW91ciBjb21wb25lbnQgZnJvbSB0aGUgZmlsZSAnICsgXCJpdCdzIGRlZmluZWQgaW4sIG9yIHlvdSBtaWdodCBoYXZlIG1peGVkIHVwIGRlZmF1bHQgYW5kIG5hbWVkIGltcG9ydHMuXCI7XG4gICAgfVxuXG4gICAgdmFyIHNvdXJjZUluZm8gPSBnZXRTb3VyY2VJbmZvRXJyb3JBZGRlbmR1bUZvclByb3BzKHByb3BzKTtcblxuICAgIGlmIChzb3VyY2VJbmZvKSB7XG4gICAgICBpbmZvICs9IHNvdXJjZUluZm87XG4gICAgfSBlbHNlIHtcbiAgICAgIGluZm8gKz0gZ2V0RGVjbGFyYXRpb25FcnJvckFkZGVuZHVtKCk7XG4gICAgfVxuXG4gICAgdmFyIHR5cGVTdHJpbmc7XG5cbiAgICBpZiAodHlwZSA9PT0gbnVsbCkge1xuICAgICAgdHlwZVN0cmluZyA9ICdudWxsJztcbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodHlwZSkpIHtcbiAgICAgIHR5cGVTdHJpbmcgPSAnYXJyYXknO1xuICAgIH0gZWxzZSBpZiAodHlwZSAhPT0gdW5kZWZpbmVkICYmIHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0VMRU1FTlRfVFlQRSkge1xuICAgICAgdHlwZVN0cmluZyA9IFwiPFwiICsgKGdldENvbXBvbmVudE5hbWUodHlwZS50eXBlKSB8fCAnVW5rbm93bicpICsgXCIgLz5cIjtcbiAgICAgIGluZm8gPSAnIERpZCB5b3UgYWNjaWRlbnRhbGx5IGV4cG9ydCBhIEpTWCBsaXRlcmFsIGluc3RlYWQgb2YgYSBjb21wb25lbnQ/JztcbiAgICB9IGVsc2Uge1xuICAgICAgdHlwZVN0cmluZyA9IHR5cGVvZiB0eXBlO1xuICAgIH1cblxuICAgIHtcbiAgICAgIGVycm9yKCdSZWFjdC5jcmVhdGVFbGVtZW50OiB0eXBlIGlzIGludmFsaWQgLS0gZXhwZWN0ZWQgYSBzdHJpbmcgKGZvciAnICsgJ2J1aWx0LWluIGNvbXBvbmVudHMpIG9yIGEgY2xhc3MvZnVuY3Rpb24gKGZvciBjb21wb3NpdGUgJyArICdjb21wb25lbnRzKSBidXQgZ290OiAlcy4lcycsIHR5cGVTdHJpbmcsIGluZm8pO1xuICAgIH1cbiAgfVxuXG4gIHZhciBlbGVtZW50ID0gY3JlYXRlRWxlbWVudC5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyAvLyBUaGUgcmVzdWx0IGNhbiBiZSBudWxsaXNoIGlmIGEgbW9jayBvciBhIGN1c3RvbSBmdW5jdGlvbiBpcyB1c2VkLlxuICAvLyBUT0RPOiBEcm9wIHRoaXMgd2hlbiB0aGVzZSBhcmUgbm8gbG9uZ2VyIGFsbG93ZWQgYXMgdGhlIHR5cGUgYXJndW1lbnQuXG5cbiAgaWYgKGVsZW1lbnQgPT0gbnVsbCkge1xuICAgIHJldHVybiBlbGVtZW50O1xuICB9IC8vIFNraXAga2V5IHdhcm5pbmcgaWYgdGhlIHR5cGUgaXNuJ3QgdmFsaWQgc2luY2Ugb3VyIGtleSB2YWxpZGF0aW9uIGxvZ2ljXG4gIC8vIGRvZXNuJ3QgZXhwZWN0IGEgbm9uLXN0cmluZy9mdW5jdGlvbiB0eXBlIGFuZCBjYW4gdGhyb3cgY29uZnVzaW5nIGVycm9ycy5cbiAgLy8gV2UgZG9uJ3Qgd2FudCBleGNlcHRpb24gYmVoYXZpb3IgdG8gZGlmZmVyIGJldHdlZW4gZGV2IGFuZCBwcm9kLlxuICAvLyAoUmVuZGVyaW5nIHdpbGwgdGhyb3cgd2l0aCBhIGhlbHBmdWwgbWVzc2FnZSBhbmQgYXMgc29vbiBhcyB0aGUgdHlwZSBpc1xuICAvLyBmaXhlZCwgdGhlIGtleSB3YXJuaW5ncyB3aWxsIGFwcGVhci4pXG5cblxuICBpZiAodmFsaWRUeXBlKSB7XG4gICAgZm9yICh2YXIgaSA9IDI7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhbGlkYXRlQ2hpbGRLZXlzKGFyZ3VtZW50c1tpXSwgdHlwZSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGUgPT09IGV4cG9ydHMuRnJhZ21lbnQpIHtcbiAgICB2YWxpZGF0ZUZyYWdtZW50UHJvcHMoZWxlbWVudCk7XG4gIH0gZWxzZSB7XG4gICAgdmFsaWRhdGVQcm9wVHlwZXMoZWxlbWVudCk7XG4gIH1cblxuICByZXR1cm4gZWxlbWVudDtcbn1cbnZhciBkaWRXYXJuQWJvdXREZXByZWNhdGVkQ3JlYXRlRmFjdG9yeSA9IGZhbHNlO1xuZnVuY3Rpb24gY3JlYXRlRmFjdG9yeVdpdGhWYWxpZGF0aW9uKHR5cGUpIHtcbiAgdmFyIHZhbGlkYXRlZEZhY3RvcnkgPSBjcmVhdGVFbGVtZW50V2l0aFZhbGlkYXRpb24uYmluZChudWxsLCB0eXBlKTtcbiAgdmFsaWRhdGVkRmFjdG9yeS50eXBlID0gdHlwZTtcblxuICB7XG4gICAgaWYgKCFkaWRXYXJuQWJvdXREZXByZWNhdGVkQ3JlYXRlRmFjdG9yeSkge1xuICAgICAgZGlkV2FybkFib3V0RGVwcmVjYXRlZENyZWF0ZUZhY3RvcnkgPSB0cnVlO1xuXG4gICAgICB3YXJuKCdSZWFjdC5jcmVhdGVGYWN0b3J5KCkgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluICcgKyAnYSBmdXR1cmUgbWFqb3IgcmVsZWFzZS4gQ29uc2lkZXIgdXNpbmcgSlNYICcgKyAnb3IgdXNlIFJlYWN0LmNyZWF0ZUVsZW1lbnQoKSBkaXJlY3RseSBpbnN0ZWFkLicpO1xuICAgIH0gLy8gTGVnYWN5IGhvb2s6IHJlbW92ZSBpdFxuXG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodmFsaWRhdGVkRmFjdG9yeSwgJ3R5cGUnLCB7XG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICB3YXJuKCdGYWN0b3J5LnR5cGUgaXMgZGVwcmVjYXRlZC4gQWNjZXNzIHRoZSBjbGFzcyBkaXJlY3RseSAnICsgJ2JlZm9yZSBwYXNzaW5nIGl0IHRvIGNyZWF0ZUZhY3RvcnkuJyk7XG5cbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICd0eXBlJywge1xuICAgICAgICAgIHZhbHVlOiB0eXBlXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdHlwZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiB2YWxpZGF0ZWRGYWN0b3J5O1xufVxuZnVuY3Rpb24gY2xvbmVFbGVtZW50V2l0aFZhbGlkYXRpb24oZWxlbWVudCwgcHJvcHMsIGNoaWxkcmVuKSB7XG4gIHZhciBuZXdFbGVtZW50ID0gY2xvbmVFbGVtZW50LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG5cbiAgZm9yICh2YXIgaSA9IDI7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICB2YWxpZGF0ZUNoaWxkS2V5cyhhcmd1bWVudHNbaV0sIG5ld0VsZW1lbnQudHlwZSk7XG4gIH1cblxuICB2YWxpZGF0ZVByb3BUeXBlcyhuZXdFbGVtZW50KTtcbiAgcmV0dXJuIG5ld0VsZW1lbnQ7XG59XG5cbntcblxuICB0cnkge1xuICAgIHZhciBmcm96ZW5PYmplY3QgPSBPYmplY3QuZnJlZXplKHt9KTtcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBuby1uZXcgKi9cblxuICAgIG5ldyBNYXAoW1tmcm96ZW5PYmplY3QsIG51bGxdXSk7XG4gICAgbmV3IFNldChbZnJvemVuT2JqZWN0XSk7XG4gICAgLyogZXNsaW50LWVuYWJsZSBuby1uZXcgKi9cbiAgfSBjYXRjaCAoZSkge1xuICB9XG59XG5cbnZhciBjcmVhdGVFbGVtZW50JDEgPSAgY3JlYXRlRWxlbWVudFdpdGhWYWxpZGF0aW9uIDtcbnZhciBjbG9uZUVsZW1lbnQkMSA9ICBjbG9uZUVsZW1lbnRXaXRoVmFsaWRhdGlvbiA7XG52YXIgY3JlYXRlRmFjdG9yeSA9ICBjcmVhdGVGYWN0b3J5V2l0aFZhbGlkYXRpb24gO1xudmFyIENoaWxkcmVuID0ge1xuICBtYXA6IG1hcENoaWxkcmVuLFxuICBmb3JFYWNoOiBmb3JFYWNoQ2hpbGRyZW4sXG4gIGNvdW50OiBjb3VudENoaWxkcmVuLFxuICB0b0FycmF5OiB0b0FycmF5LFxuICBvbmx5OiBvbmx5Q2hpbGRcbn07XG5cbmV4cG9ydHMuQ2hpbGRyZW4gPSBDaGlsZHJlbjtcbmV4cG9ydHMuQ29tcG9uZW50ID0gQ29tcG9uZW50O1xuZXhwb3J0cy5QdXJlQ29tcG9uZW50ID0gUHVyZUNvbXBvbmVudDtcbmV4cG9ydHMuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQgPSBSZWFjdFNoYXJlZEludGVybmFscztcbmV4cG9ydHMuY2xvbmVFbGVtZW50ID0gY2xvbmVFbGVtZW50JDE7XG5leHBvcnRzLmNyZWF0ZUNvbnRleHQgPSBjcmVhdGVDb250ZXh0O1xuZXhwb3J0cy5jcmVhdGVFbGVtZW50ID0gY3JlYXRlRWxlbWVudCQxO1xuZXhwb3J0cy5jcmVhdGVGYWN0b3J5ID0gY3JlYXRlRmFjdG9yeTtcbmV4cG9ydHMuY3JlYXRlUmVmID0gY3JlYXRlUmVmO1xuZXhwb3J0cy5mb3J3YXJkUmVmID0gZm9yd2FyZFJlZjtcbmV4cG9ydHMuaXNWYWxpZEVsZW1lbnQgPSBpc1ZhbGlkRWxlbWVudDtcbmV4cG9ydHMubGF6eSA9IGxhenk7XG5leHBvcnRzLm1lbW8gPSBtZW1vO1xuZXhwb3J0cy51c2VDYWxsYmFjayA9IHVzZUNhbGxiYWNrO1xuZXhwb3J0cy51c2VDb250ZXh0ID0gdXNlQ29udGV4dDtcbmV4cG9ydHMudXNlRGVidWdWYWx1ZSA9IHVzZURlYnVnVmFsdWU7XG5leHBvcnRzLnVzZUVmZmVjdCA9IHVzZUVmZmVjdDtcbmV4cG9ydHMudXNlSW1wZXJhdGl2ZUhhbmRsZSA9IHVzZUltcGVyYXRpdmVIYW5kbGU7XG5leHBvcnRzLnVzZUxheW91dEVmZmVjdCA9IHVzZUxheW91dEVmZmVjdDtcbmV4cG9ydHMudXNlTWVtbyA9IHVzZU1lbW87XG5leHBvcnRzLnVzZVJlZHVjZXIgPSB1c2VSZWR1Y2VyO1xuZXhwb3J0cy51c2VSZWYgPSB1c2VSZWY7XG5leHBvcnRzLnVzZVN0YXRlID0gdXNlU3RhdGU7XG5leHBvcnRzLnZlcnNpb24gPSBSZWFjdFZlcnNpb247XG4gIH0pKCk7XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react/cjs/react.development.js\n"); + +/***/ }), + +/***/ "./node_modules/react/index.js": +/*!*************************************!*\ + !*** ./node_modules/react/index.js ***! + \*************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react.development.js */ \"./node_modules/react/cjs/react.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsSUFBSSxLQUFxQyxFQUFFLEVBRTFDLENBQUM7QUFDRixFQUFFLHVIQUFzRDtBQUN4RCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmVhY3QvaW5kZXguanM/MWZiMiJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QuZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react/index.js\n"); + +/***/ }), + +/***/ "./node_modules/regenerator-runtime/runtime.js": +/*!*****************************************************!*\ + !*** ./node_modules/regenerator-runtime/runtime.js ***! + \*****************************************************/ +/***/ (function(module) { + +eval("/**\n * Copyright (c) 2014-present, Facebook, Inc.\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\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n true ? module.exports : 0\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVnZW5lcmF0b3ItcnVudGltZS9ydW50aW1lLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZixNQUFNO0FBQ04sZUFBZTtBQUNmO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMERBQTBEO0FBQzFEO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBLFdBQVc7QUFDWDs7QUFFQTtBQUNBO0FBQ0Esd0NBQXdDLFdBQVc7QUFDbkQ7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDRCQUE0QjtBQUM1QjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUEsVUFBVTtBQUNWO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxxQ0FBcUMsY0FBYztBQUNuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7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QUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmVnZW5lcmF0b3ItcnVudGltZS9ydW50aW1lLmpzP2M1NmUiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTQtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG52YXIgcnVudGltZSA9IChmdW5jdGlvbiAoZXhwb3J0cykge1xuICBcInVzZSBzdHJpY3RcIjtcblxuICB2YXIgT3AgPSBPYmplY3QucHJvdG90eXBlO1xuICB2YXIgaGFzT3duID0gT3AuaGFzT3duUHJvcGVydHk7XG4gIHZhciB1bmRlZmluZWQ7IC8vIE1vcmUgY29tcHJlc3NpYmxlIHRoYW4gdm9pZCAwLlxuICB2YXIgJFN5bWJvbCA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiA/IFN5bWJvbCA6IHt9O1xuICB2YXIgaXRlcmF0b3JTeW1ib2wgPSAkU3ltYm9sLml0ZXJhdG9yIHx8IFwiQEBpdGVyYXRvclwiO1xuICB2YXIgYXN5bmNJdGVyYXRvclN5bWJvbCA9ICRTeW1ib2wuYXN5bmNJdGVyYXRvciB8fCBcIkBAYXN5bmNJdGVyYXRvclwiO1xuICB2YXIgdG9TdHJpbmdUYWdTeW1ib2wgPSAkU3ltYm9sLnRvU3RyaW5nVGFnIHx8IFwiQEB0b1N0cmluZ1RhZ1wiO1xuXG4gIGZ1bmN0aW9uIHdyYXAoaW5uZXJGbiwgb3V0ZXJGbiwgc2VsZiwgdHJ5TG9jc0xpc3QpIHtcbiAgICAvLyBJZiBvdXRlckZuIHByb3ZpZGVkIGFuZCBvdXRlckZuLnByb3RvdHlwZSBpcyBhIEdlbmVyYXRvciwgdGhlbiBvdXRlckZuLnByb3RvdHlwZSBpbnN0YW5jZW9mIEdlbmVyYXRvci5cbiAgICB2YXIgcHJvdG9HZW5lcmF0b3IgPSBvdXRlckZuICYmIG91dGVyRm4ucHJvdG90eXBlIGluc3RhbmNlb2YgR2VuZXJhdG9yID8gb3V0ZXJGbiA6IEdlbmVyYXRvcjtcbiAgICB2YXIgZ2VuZXJhdG9yID0gT2JqZWN0LmNyZWF0ZShwcm90b0dlbmVyYXRvci5wcm90b3R5cGUpO1xuICAgIHZhciBjb250ZXh0ID0gbmV3IENvbnRleHQodHJ5TG9jc0xpc3QgfHwgW10pO1xuXG4gICAgLy8gVGhlIC5faW52b2tlIG1ldGhvZCB1bmlmaWVzIHRoZSBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlIC5uZXh0LFxuICAgIC8vIC50aHJvdywgYW5kIC5yZXR1cm4gbWV0aG9kcy5cbiAgICBnZW5lcmF0b3IuX2ludm9rZSA9IG1ha2VJbnZva2VNZXRob2QoaW5uZXJGbiwgc2VsZiwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gZ2VuZXJhdG9yO1xuICB9XG4gIGV4cG9ydHMud3JhcCA9IHdyYXA7XG5cbiAgLy8gVHJ5L2NhdGNoIGhlbHBlciB0byBtaW5pbWl6ZSBkZW9wdGltaXphdGlvbnMuIFJldHVybnMgYSBjb21wbGV0aW9uXG4gIC8vIHJlY29yZCBsaWtlIGNvbnRleHQudHJ5RW50cmllc1tpXS5jb21wbGV0aW9uLiBUaGlzIGludGVyZmFjZSBjb3VsZFxuICAvLyBoYXZlIGJlZW4gKGFuZCB3YXMgcHJldmlvdXNseSkgZGVzaWduZWQgdG8gdGFrZSBhIGNsb3N1cmUgdG8gYmVcbiAgLy8gaW52b2tlZCB3aXRob3V0IGFyZ3VtZW50cywgYnV0IGluIGFsbCB0aGUgY2FzZXMgd2UgY2FyZSBhYm91dCB3ZVxuICAvLyBhbHJlYWR5IGhhdmUgYW4gZXhpc3RpbmcgbWV0aG9kIHdlIHdhbnQgdG8gY2FsbCwgc28gdGhlcmUncyBubyBuZWVkXG4gIC8vIHRvIGNyZWF0ZSBhIG5ldyBmdW5jdGlvbiBvYmplY3QuIFdlIGNhbiBldmVuIGdldCBhd2F5IHdpdGggYXNzdW1pbmdcbiAgLy8gdGhlIG1ldGhvZCB0YWtlcyBleGFjdGx5IG9uZSBhcmd1bWVudCwgc2luY2UgdGhhdCBoYXBwZW5zIHRvIGJlIHRydWVcbiAgLy8gaW4gZXZlcnkgY2FzZSwgc28gd2UgZG9uJ3QgaGF2ZSB0byB0b3VjaCB0aGUgYXJndW1lbnRzIG9iamVjdC4gVGhlXG4gIC8vIG9ubHkgYWRkaXRpb25hbCBhbGxvY2F0aW9uIHJlcXVpcmVkIGlzIHRoZSBjb21wbGV0aW9uIHJlY29yZCwgd2hpY2hcbiAgLy8gaGFzIGEgc3RhYmxlIHNoYXBlIGFuZCBzbyBob3BlZnVsbHkgc2hvdWxkIGJlIGNoZWFwIHRvIGFsbG9jYXRlLlxuICBmdW5jdGlvbiB0cnlDYXRjaChmbiwgb2JqLCBhcmcpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHsgdHlwZTogXCJub3JtYWxcIiwgYXJnOiBmbi5jYWxsKG9iaiwgYXJnKSB9O1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgcmV0dXJuIHsgdHlwZTogXCJ0aHJvd1wiLCBhcmc6IGVyciB9O1xuICAgIH1cbiAgfVxuXG4gIHZhciBHZW5TdGF0ZVN1c3BlbmRlZFN0YXJ0ID0gXCJzdXNwZW5kZWRTdGFydFwiO1xuICB2YXIgR2VuU3RhdGVTdXNwZW5kZWRZaWVsZCA9IFwic3VzcGVuZGVkWWllbGRcIjtcbiAgdmFyIEdlblN0YXRlRXhlY3V0aW5nID0gXCJleGVjdXRpbmdcIjtcbiAgdmFyIEdlblN0YXRlQ29tcGxldGVkID0gXCJjb21wbGV0ZWRcIjtcblxuICAvLyBSZXR1cm5pbmcgdGhpcyBvYmplY3QgZnJvbSB0aGUgaW5uZXJGbiBoYXMgdGhlIHNhbWUgZWZmZWN0IGFzXG4gIC8vIGJyZWFraW5nIG91dCBvZiB0aGUgZGlzcGF0Y2ggc3dpdGNoIHN0YXRlbWVudC5cbiAgdmFyIENvbnRpbnVlU2VudGluZWwgPSB7fTtcblxuICAvLyBEdW1teSBjb25zdHJ1Y3RvciBmdW5jdGlvbnMgdGhhdCB3ZSB1c2UgYXMgdGhlIC5jb25zdHJ1Y3RvciBhbmRcbiAgLy8gLmNvbnN0cnVjdG9yLnByb3RvdHlwZSBwcm9wZXJ0aWVzIGZvciBmdW5jdGlvbnMgdGhhdCByZXR1cm4gR2VuZXJhdG9yXG4gIC8vIG9iamVjdHMuIEZvciBmdWxsIHNwZWMgY29tcGxpYW5jZSwgeW91IG1heSB3aXNoIHRvIGNvbmZpZ3VyZSB5b3VyXG4gIC8vIG1pbmlmaWVyIG5vdCB0byBtYW5nbGUgdGhlIG5hbWVzIG9mIHRoZXNlIHR3byBmdW5jdGlvbnMuXG4gIGZ1bmN0aW9uIEdlbmVyYXRvcigpIHt9XG4gIGZ1bmN0aW9uIEdlbmVyYXRvckZ1bmN0aW9uKCkge31cbiAgZnVuY3Rpb24gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUoKSB7fVxuXG4gIC8vIFRoaXMgaXMgYSBwb2x5ZmlsbCBmb3IgJUl0ZXJhdG9yUHJvdG90eXBlJSBmb3IgZW52aXJvbm1lbnRzIHRoYXRcbiAgLy8gZG9uJ3QgbmF0aXZlbHkgc3VwcG9ydCBpdC5cbiAgdmFyIEl0ZXJhdG9yUHJvdG90eXBlID0ge307XG4gIEl0ZXJhdG9yUHJvdG90eXBlW2l0ZXJhdG9yU3ltYm9sXSA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICB2YXIgZ2V0UHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Y7XG4gIHZhciBOYXRpdmVJdGVyYXRvclByb3RvdHlwZSA9IGdldFByb3RvICYmIGdldFByb3RvKGdldFByb3RvKHZhbHVlcyhbXSkpKTtcbiAgaWYgKE5hdGl2ZUl0ZXJhdG9yUHJvdG90eXBlICYmXG4gICAgICBOYXRpdmVJdGVyYXRvclByb3RvdHlwZSAhPT0gT3AgJiZcbiAgICAgIGhhc093bi5jYWxsKE5hdGl2ZUl0ZXJhdG9yUHJvdG90eXBlLCBpdGVyYXRvclN5bWJvbCkpIHtcbiAgICAvLyBUaGlzIGVudmlyb25tZW50IGhhcyBhIG5hdGl2ZSAlSXRlcmF0b3JQcm90b3R5cGUlOyB1c2UgaXQgaW5zdGVhZFxuICAgIC8vIG9mIHRoZSBwb2x5ZmlsbC5cbiAgICBJdGVyYXRvclByb3RvdHlwZSA9IE5hdGl2ZUl0ZXJhdG9yUHJvdG90eXBlO1xuICB9XG5cbiAgdmFyIEdwID0gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUucHJvdG90eXBlID1cbiAgICBHZW5lcmF0b3IucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShJdGVyYXRvclByb3RvdHlwZSk7XG4gIEdlbmVyYXRvckZ1bmN0aW9uLnByb3RvdHlwZSA9IEdwLmNvbnN0cnVjdG9yID0gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGU7XG4gIEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLmNvbnN0cnVjdG9yID0gR2VuZXJhdG9yRnVuY3Rpb247XG4gIEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlW3RvU3RyaW5nVGFnU3ltYm9sXSA9XG4gICAgR2VuZXJhdG9yRnVuY3Rpb24uZGlzcGxheU5hbWUgPSBcIkdlbmVyYXRvckZ1bmN0aW9uXCI7XG5cbiAgLy8gSGVscGVyIGZvciBkZWZpbmluZyB0aGUgLm5leHQsIC50aHJvdywgYW5kIC5yZXR1cm4gbWV0aG9kcyBvZiB0aGVcbiAgLy8gSXRlcmF0b3IgaW50ZXJmYWNlIGluIHRlcm1zIG9mIGEgc2luZ2xlIC5faW52b2tlIG1ldGhvZC5cbiAgZnVuY3Rpb24gZGVmaW5lSXRlcmF0b3JNZXRob2RzKHByb3RvdHlwZSkge1xuICAgIFtcIm5leHRcIiwgXCJ0aHJvd1wiLCBcInJldHVyblwiXS5mb3JFYWNoKGZ1bmN0aW9uKG1ldGhvZCkge1xuICAgICAgcHJvdG90eXBlW21ldGhvZF0gPSBmdW5jdGlvbihhcmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ludm9rZShtZXRob2QsIGFyZyk7XG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgZXhwb3J0cy5pc0dlbmVyYXRvckZ1bmN0aW9uID0gZnVuY3Rpb24oZ2VuRnVuKSB7XG4gICAgdmFyIGN0b3IgPSB0eXBlb2YgZ2VuRnVuID09PSBcImZ1bmN0aW9uXCIgJiYgZ2VuRnVuLmNvbnN0cnVjdG9yO1xuICAgIHJldHVybiBjdG9yXG4gICAgICA/IGN0b3IgPT09IEdlbmVyYXRvckZ1bmN0aW9uIHx8XG4gICAgICAgIC8vIEZvciB0aGUgbmF0aXZlIEdlbmVyYXRvckZ1bmN0aW9uIGNvbnN0cnVjdG9yLCB0aGUgYmVzdCB3ZSBjYW5cbiAgICAgICAgLy8gZG8gaXMgdG8gY2hlY2sgaXRzIC5uYW1lIHByb3BlcnR5LlxuICAgICAgICAoY3Rvci5kaXNwbGF5TmFtZSB8fCBjdG9yLm5hbWUpID09PSBcIkdlbmVyYXRvckZ1bmN0aW9uXCJcbiAgICAgIDogZmFsc2U7XG4gIH07XG5cbiAgZXhwb3J0cy5tYXJrID0gZnVuY3Rpb24oZ2VuRnVuKSB7XG4gICAgaWYgKE9iamVjdC5zZXRQcm90b3R5cGVPZikge1xuICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKGdlbkZ1biwgR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBnZW5GdW4uX19wcm90b19fID0gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGU7XG4gICAgICBpZiAoISh0b1N0cmluZ1RhZ1N5bWJvbCBpbiBnZW5GdW4pKSB7XG4gICAgICAgIGdlbkZ1blt0b1N0cmluZ1RhZ1N5bWJvbF0gPSBcIkdlbmVyYXRvckZ1bmN0aW9uXCI7XG4gICAgICB9XG4gICAgfVxuICAgIGdlbkZ1bi5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKEdwKTtcbiAgICByZXR1cm4gZ2VuRnVuO1xuICB9O1xuXG4gIC8vIFdpdGhpbiB0aGUgYm9keSBvZiBhbnkgYXN5bmMgZnVuY3Rpb24sIGBhd2FpdCB4YCBpcyB0cmFuc2Zvcm1lZCB0b1xuICAvLyBgeWllbGQgcmVnZW5lcmF0b3JSdW50aW1lLmF3cmFwKHgpYCwgc28gdGhhdCB0aGUgcnVudGltZSBjYW4gdGVzdFxuICAvLyBgaGFzT3duLmNhbGwodmFsdWUsIFwiX19hd2FpdFwiKWAgdG8gZGV0ZXJtaW5lIGlmIHRoZSB5aWVsZGVkIHZhbHVlIGlzXG4gIC8vIG1lYW50IHRvIGJlIGF3YWl0ZWQuXG4gIGV4cG9ydHMuYXdyYXAgPSBmdW5jdGlvbihhcmcpIHtcbiAgICByZXR1cm4geyBfX2F3YWl0OiBhcmcgfTtcbiAgfTtcblxuICBmdW5jdGlvbiBBc3luY0l0ZXJhdG9yKGdlbmVyYXRvciwgUHJvbWlzZUltcGwpIHtcbiAgICBmdW5jdGlvbiBpbnZva2UobWV0aG9kLCBhcmcsIHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgdmFyIHJlY29yZCA9IHRyeUNhdGNoKGdlbmVyYXRvclttZXRob2RdLCBnZW5lcmF0b3IsIGFyZyk7XG4gICAgICBpZiAocmVjb3JkLnR5cGUgPT09IFwidGhyb3dcIikge1xuICAgICAgICByZWplY3QocmVjb3JkLmFyZyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgcmVzdWx0ID0gcmVjb3JkLmFyZztcbiAgICAgICAgdmFyIHZhbHVlID0gcmVzdWx0LnZhbHVlO1xuICAgICAgICBpZiAodmFsdWUgJiZcbiAgICAgICAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJlxuICAgICAgICAgICAgaGFzT3duLmNhbGwodmFsdWUsIFwiX19hd2FpdFwiKSkge1xuICAgICAgICAgIHJldHVybiBQcm9taXNlSW1wbC5yZXNvbHZlKHZhbHVlLl9fYXdhaXQpLnRoZW4oZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgICAgICAgIGludm9rZShcIm5leHRcIiwgdmFsdWUsIHJlc29sdmUsIHJlamVjdCk7XG4gICAgICAgICAgfSwgZnVuY3Rpb24oZXJyKSB7XG4gICAgICAgICAgICBpbnZva2UoXCJ0aHJvd1wiLCBlcnIsIHJlc29sdmUsIHJlamVjdCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gUHJvbWlzZUltcGwucmVzb2x2ZSh2YWx1ZSkudGhlbihmdW5jdGlvbih1bndyYXBwZWQpIHtcbiAgICAgICAgICAvLyBXaGVuIGEgeWllbGRlZCBQcm9taXNlIGlzIHJlc29sdmVkLCBpdHMgZmluYWwgdmFsdWUgYmVjb21lc1xuICAgICAgICAgIC8vIHRoZSAudmFsdWUgb2YgdGhlIFByb21pc2U8e3ZhbHVlLGRvbmV9PiByZXN1bHQgZm9yIHRoZVxuICAgICAgICAgIC8vIGN1cnJlbnQgaXRlcmF0aW9uLlxuICAgICAgICAgIHJlc3VsdC52YWx1ZSA9IHVud3JhcHBlZDtcbiAgICAgICAgICByZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgIH0sIGZ1bmN0aW9uKGVycm9yKSB7XG4gICAgICAgICAgLy8gSWYgYSByZWplY3RlZCBQcm9taXNlIHdhcyB5aWVsZGVkLCB0aHJvdyB0aGUgcmVqZWN0aW9uIGJhY2tcbiAgICAgICAgICAvLyBpbnRvIHRoZSBhc3luYyBnZW5lcmF0b3IgZnVuY3Rpb24gc28gaXQgY2FuIGJlIGhhbmRsZWQgdGhlcmUuXG4gICAgICAgICAgcmV0dXJuIGludm9rZShcInRocm93XCIsIGVycm9yLCByZXNvbHZlLCByZWplY3QpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgcHJldmlvdXNQcm9taXNlO1xuXG4gICAgZnVuY3Rpb24gZW5xdWV1ZShtZXRob2QsIGFyZykge1xuICAgICAgZnVuY3Rpb24gY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmcoKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZUltcGwoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgaW52b2tlKG1ldGhvZCwgYXJnLCByZXNvbHZlLCByZWplY3QpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHByZXZpb3VzUHJvbWlzZSA9XG4gICAgICAgIC8vIElmIGVucXVldWUgaGFzIGJlZW4gY2FsbGVkIGJlZm9yZSwgdGhlbiB3ZSB3YW50IHRvIHdhaXQgdW50aWxcbiAgICAgICAgLy8gYWxsIHByZXZpb3VzIFByb21pc2VzIGhhdmUgYmVlbiByZXNvbHZlZCBiZWZvcmUgY2FsbGluZyBpbnZva2UsXG4gICAgICAgIC8vIHNvIHRoYXQgcmVzdWx0cyBhcmUgYWx3YXlzIGRlbGl2ZXJlZCBpbiB0aGUgY29ycmVjdCBvcmRlci4gSWZcbiAgICAgICAgLy8gZW5xdWV1ZSBoYXMgbm90IGJlZW4gY2FsbGVkIGJlZm9yZSwgdGhlbiBpdCBpcyBpbXBvcnRhbnQgdG9cbiAgICAgICAgLy8gY2FsbCBpbnZva2UgaW1tZWRpYXRlbHksIHdpdGhvdXQgd2FpdGluZyBvbiBhIGNhbGxiYWNrIHRvIGZpcmUsXG4gICAgICAgIC8vIHNvIHRoYXQgdGhlIGFzeW5jIGdlbmVyYXRvciBmdW5jdGlvbiBoYXMgdGhlIG9wcG9ydHVuaXR5IHRvIGRvXG4gICAgICAgIC8vIGFueSBuZWNlc3Nhcnkgc2V0dXAgaW4gYSBwcmVkaWN0YWJsZSB3YXkuIFRoaXMgcHJlZGljdGFiaWxpdHlcbiAgICAgICAgLy8gaXMgd2h5IHRoZSBQcm9taXNlIGNvbnN0cnVjdG9yIHN5bmNocm9ub3VzbHkgaW52b2tlcyBpdHNcbiAgICAgICAgLy8gZXhlY3V0b3IgY2FsbGJhY2ssIGFuZCB3aHkgYXN5bmMgZnVuY3Rpb25zIHN5bmNocm9ub3VzbHlcbiAgICAgICAgLy8gZXhlY3V0ZSBjb2RlIGJlZm9yZSB0aGUgZmlyc3QgYXdhaXQuIFNpbmNlIHdlIGltcGxlbWVudCBzaW1wbGVcbiAgICAgICAgLy8gYXN5bmMgZnVuY3Rpb25zIGluIHRlcm1zIG9mIGFzeW5jIGdlbmVyYXRvcnMsIGl0IGlzIGVzcGVjaWFsbHlcbiAgICAgICAgLy8gaW1wb3J0YW50IHRvIGdldCB0aGlzIHJpZ2h0LCBldmVuIHRob3VnaCBpdCByZXF1aXJlcyBjYXJlLlxuICAgICAgICBwcmV2aW91c1Byb21pc2UgPyBwcmV2aW91c1Byb21pc2UudGhlbihcbiAgICAgICAgICBjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZyxcbiAgICAgICAgICAvLyBBdm9pZCBwcm9wYWdhdGluZyBmYWlsdXJlcyB0byBQcm9taXNlcyByZXR1cm5lZCBieSBsYXRlclxuICAgICAgICAgIC8vIGludm9jYXRpb25zIG9mIHRoZSBpdGVyYXRvci5cbiAgICAgICAgICBjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZ1xuICAgICAgICApIDogY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmcoKTtcbiAgICB9XG5cbiAgICAvLyBEZWZpbmUgdGhlIHVuaWZpZWQgaGVscGVyIG1ldGhvZCB0aGF0IGlzIHVzZWQgdG8gaW1wbGVtZW50IC5uZXh0LFxuICAgIC8vIC50aHJvdywgYW5kIC5yZXR1cm4gKHNlZSBkZWZpbmVJdGVyYXRvck1ldGhvZHMpLlxuICAgIHRoaXMuX2ludm9rZSA9IGVucXVldWU7XG4gIH1cblxuICBkZWZpbmVJdGVyYXRvck1ldGhvZHMoQXN5bmNJdGVyYXRvci5wcm90b3R5cGUpO1xuICBBc3luY0l0ZXJhdG9yLnByb3RvdHlwZVthc3luY0l0ZXJhdG9yU3ltYm9sXSA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcbiAgZXhwb3J0cy5Bc3luY0l0ZXJhdG9yID0gQXN5bmNJdGVyYXRvcjtcblxuICAvLyBOb3RlIHRoYXQgc2ltcGxlIGFzeW5jIGZ1bmN0aW9ucyBhcmUgaW1wbGVtZW50ZWQgb24gdG9wIG9mXG4gIC8vIEFzeW5jSXRlcmF0b3Igb2JqZWN0czsgdGhleSBqdXN0IHJldHVybiBhIFByb21pc2UgZm9yIHRoZSB2YWx1ZSBvZlxuICAvLyB0aGUgZmluYWwgcmVzdWx0IHByb2R1Y2VkIGJ5IHRoZSBpdGVyYXRvci5cbiAgZXhwb3J0cy5hc3luYyA9IGZ1bmN0aW9uKGlubmVyRm4sIG91dGVyRm4sIHNlbGYsIHRyeUxvY3NMaXN0LCBQcm9taXNlSW1wbCkge1xuICAgIGlmIChQcm9taXNlSW1wbCA9PT0gdm9pZCAwKSBQcm9taXNlSW1wbCA9IFByb21pc2U7XG5cbiAgICB2YXIgaXRlciA9IG5ldyBBc3luY0l0ZXJhdG9yKFxuICAgICAgd3JhcChpbm5lckZuLCBvdXRlckZuLCBzZWxmLCB0cnlMb2NzTGlzdCksXG4gICAgICBQcm9taXNlSW1wbFxuICAgICk7XG5cbiAgICByZXR1cm4gZXhwb3J0cy5pc0dlbmVyYXRvckZ1bmN0aW9uKG91dGVyRm4pXG4gICAgICA/IGl0ZXIgLy8gSWYgb3V0ZXJGbiBpcyBhIGdlbmVyYXRvciwgcmV0dXJuIHRoZSBmdWxsIGl0ZXJhdG9yLlxuICAgICAgOiBpdGVyLm5leHQoKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkge1xuICAgICAgICAgIHJldHVybiByZXN1bHQuZG9uZSA/IHJlc3VsdC52YWx1ZSA6IGl0ZXIubmV4dCgpO1xuICAgICAgICB9KTtcbiAgfTtcblxuICBmdW5jdGlvbiBtYWtlSW52b2tlTWV0aG9kKGlubmVyRm4sIHNlbGYsIGNvbnRleHQpIHtcbiAgICB2YXIgc3RhdGUgPSBHZW5TdGF0ZVN1c3BlbmRlZFN0YXJ0O1xuXG4gICAgcmV0dXJuIGZ1bmN0aW9uIGludm9rZShtZXRob2QsIGFyZykge1xuICAgICAgaWYgKHN0YXRlID09PSBHZW5TdGF0ZUV4ZWN1dGluZykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nXCIpO1xuICAgICAgfVxuXG4gICAgICBpZiAoc3RhdGUgPT09IEdlblN0YXRlQ29tcGxldGVkKSB7XG4gICAgICAgIGlmIChtZXRob2QgPT09IFwidGhyb3dcIikge1xuICAgICAgICAgIHRocm93IGFyZztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEJlIGZvcmdpdmluZywgcGVyIDI1LjMuMy4zLjMgb2YgdGhlIHNwZWM6XG4gICAgICAgIC8vIGh0dHBzOi8vcGVvcGxlLm1vemlsbGEub3JnL35qb3JlbmRvcmZmL2VzNi1kcmFmdC5odG1sI3NlYy1nZW5lcmF0b3JyZXN1bWVcbiAgICAgICAgcmV0dXJuIGRvbmVSZXN1bHQoKTtcbiAgICAgIH1cblxuICAgICAgY29udGV4dC5tZXRob2QgPSBtZXRob2Q7XG4gICAgICBjb250ZXh0LmFyZyA9IGFyZztcblxuICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgdmFyIGRlbGVnYXRlID0gY29udGV4dC5kZWxlZ2F0ZTtcbiAgICAgICAgaWYgKGRlbGVnYXRlKSB7XG4gICAgICAgICAgdmFyIGRlbGVnYXRlUmVzdWx0ID0gbWF5YmVJbnZva2VEZWxlZ2F0ZShkZWxlZ2F0ZSwgY29udGV4dCk7XG4gICAgICAgICAgaWYgKGRlbGVnYXRlUmVzdWx0KSB7XG4gICAgICAgICAgICBpZiAoZGVsZWdhdGVSZXN1bHQgPT09IENvbnRpbnVlU2VudGluZWwpIGNvbnRpbnVlO1xuICAgICAgICAgICAgcmV0dXJuIGRlbGVnYXRlUmVzdWx0O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb250ZXh0Lm1ldGhvZCA9PT0gXCJuZXh0XCIpIHtcbiAgICAgICAgICAvLyBTZXR0aW5nIGNvbnRleHQuX3NlbnQgZm9yIGxlZ2FjeSBzdXBwb3J0IG9mIEJhYmVsJ3NcbiAgICAgICAgICAvLyBmdW5jdGlvbi5zZW50IGltcGxlbWVudGF0aW9uLlxuICAgICAgICAgIGNvbnRleHQuc2VudCA9IGNvbnRleHQuX3NlbnQgPSBjb250ZXh0LmFyZztcblxuICAgICAgICB9IGVsc2UgaWYgKGNvbnRleHQubWV0aG9kID09PSBcInRocm93XCIpIHtcbiAgICAgICAgICBpZiAoc3RhdGUgPT09IEdlblN0YXRlU3VzcGVuZGVkU3RhcnQpIHtcbiAgICAgICAgICAgIHN0YXRlID0gR2VuU3RhdGVDb21wbGV0ZWQ7XG4gICAgICAgICAgICB0aHJvdyBjb250ZXh0LmFyZztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb250ZXh0LmRpc3BhdGNoRXhjZXB0aW9uKGNvbnRleHQuYXJnKTtcblxuICAgICAgICB9IGVsc2UgaWYgKGNvbnRleHQubWV0aG9kID09PSBcInJldHVyblwiKSB7XG4gICAgICAgICAgY29udGV4dC5hYnJ1cHQoXCJyZXR1cm5cIiwgY29udGV4dC5hcmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RhdGUgPSBHZW5TdGF0ZUV4ZWN1dGluZztcblxuICAgICAgICB2YXIgcmVjb3JkID0gdHJ5Q2F0Y2goaW5uZXJGbiwgc2VsZiwgY29udGV4dCk7XG4gICAgICAgIGlmIChyZWNvcmQudHlwZSA9PT0gXCJub3JtYWxcIikge1xuICAgICAgICAgIC8vIElmIGFuIGV4Y2VwdGlvbiBpcyB0aHJvd24gZnJvbSBpbm5lckZuLCB3ZSBsZWF2ZSBzdGF0ZSA9PT1cbiAgICAgICAgICAvLyBHZW5TdGF0ZUV4ZWN1dGluZyBhbmQgbG9vcCBiYWNrIGZvciBhbm90aGVyIGludm9jYXRpb24uXG4gICAgICAgICAgc3RhdGUgPSBjb250ZXh0LmRvbmVcbiAgICAgICAgICAgID8gR2VuU3RhdGVDb21wbGV0ZWRcbiAgICAgICAgICAgIDogR2VuU3RhdGVTdXNwZW5kZWRZaWVsZDtcblxuICAgICAgICAgIGlmIChyZWNvcmQuYXJnID09PSBDb250aW51ZVNlbnRpbmVsKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdmFsdWU6IHJlY29yZC5hcmcsXG4gICAgICAgICAgICBkb25lOiBjb250ZXh0LmRvbmVcbiAgICAgICAgICB9O1xuXG4gICAgICAgIH0gZWxzZSBpZiAocmVjb3JkLnR5cGUgPT09IFwidGhyb3dcIikge1xuICAgICAgICAgIHN0YXRlID0gR2VuU3RhdGVDb21wbGV0ZWQ7XG4gICAgICAgICAgLy8gRGlzcGF0Y2ggdGhlIGV4Y2VwdGlvbiBieSBsb29waW5nIGJhY2sgYXJvdW5kIHRvIHRoZVxuICAgICAgICAgIC8vIGNvbnRleHQuZGlzcGF0Y2hFeGNlcHRpb24oY29udGV4dC5hcmcpIGNhbGwgYWJvdmUuXG4gICAgICAgICAgY29udGV4dC5tZXRob2QgPSBcInRocm93XCI7XG4gICAgICAgICAgY29udGV4dC5hcmcgPSByZWNvcmQuYXJnO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIC8vIENhbGwgZGVsZWdhdGUuaXRlcmF0b3JbY29udGV4dC5tZXRob2RdKGNvbnRleHQuYXJnKSBhbmQgaGFuZGxlIHRoZVxuICAvLyByZXN1bHQsIGVpdGhlciBieSByZXR1cm5pbmcgYSB7IHZhbHVlLCBkb25lIH0gcmVzdWx0IGZyb20gdGhlXG4gIC8vIGRlbGVnYXRlIGl0ZXJhdG9yLCBvciBieSBtb2RpZnlpbmcgY29udGV4dC5tZXRob2QgYW5kIGNvbnRleHQuYXJnLFxuICAvLyBzZXR0aW5nIGNvbnRleHQuZGVsZWdhdGUgdG8gbnVsbCwgYW5kIHJldHVybmluZyB0aGUgQ29udGludWVTZW50aW5lbC5cbiAgZnVuY3Rpb24gbWF5YmVJbnZva2VEZWxlZ2F0ZShkZWxlZ2F0ZSwgY29udGV4dCkge1xuICAgIHZhciBtZXRob2QgPSBkZWxlZ2F0ZS5pdGVyYXRvcltjb250ZXh0Lm1ldGhvZF07XG4gICAgaWYgKG1ldGhvZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBBIC50aHJvdyBvciAucmV0dXJuIHdoZW4gdGhlIGRlbGVnYXRlIGl0ZXJhdG9yIGhhcyBubyAudGhyb3dcbiAgICAgIC8vIG1ldGhvZCBhbHdheXMgdGVybWluYXRlcyB0aGUgeWllbGQqIGxvb3AuXG4gICAgICBjb250ZXh0LmRlbGVnYXRlID0gbnVsbDtcblxuICAgICAgaWYgKGNvbnRleHQubWV0aG9kID09PSBcInRocm93XCIpIHtcbiAgICAgICAgLy8gTm90ZTogW1wicmV0dXJuXCJdIG11c3QgYmUgdXNlZCBmb3IgRVMzIHBhcnNpbmcgY29tcGF0aWJpbGl0eS5cbiAgICAgICAgaWYgKGRlbGVnYXRlLml0ZXJhdG9yW1wicmV0dXJuXCJdKSB7XG4gICAgICAgICAgLy8gSWYgdGhlIGRlbGVnYXRlIGl0ZXJhdG9yIGhhcyBhIHJldHVybiBtZXRob2QsIGdpdmUgaXQgYVxuICAgICAgICAgIC8vIGNoYW5jZSB0byBjbGVhbiB1cC5cbiAgICAgICAgICBjb250ZXh0Lm1ldGhvZCA9IFwicmV0dXJuXCI7XG4gICAgICAgICAgY29udGV4dC5hcmcgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgbWF5YmVJbnZva2VEZWxlZ2F0ZShkZWxlZ2F0ZSwgY29udGV4dCk7XG5cbiAgICAgICAgICBpZiAoY29udGV4dC5tZXRob2QgPT09IFwidGhyb3dcIikge1xuICAgICAgICAgICAgLy8gSWYgbWF5YmVJbnZva2VEZWxlZ2F0ZShjb250ZXh0KSBjaGFuZ2VkIGNvbnRleHQubWV0aG9kIGZyb21cbiAgICAgICAgICAgIC8vIFwicmV0dXJuXCIgdG8gXCJ0aHJvd1wiLCBsZXQgdGhhdCBvdmVycmlkZSB0aGUgVHlwZUVycm9yIGJlbG93LlxuICAgICAgICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29udGV4dC5tZXRob2QgPSBcInRocm93XCI7XG4gICAgICAgIGNvbnRleHQuYXJnID0gbmV3IFR5cGVFcnJvcihcbiAgICAgICAgICBcIlRoZSBpdGVyYXRvciBkb2VzIG5vdCBwcm92aWRlIGEgJ3Rocm93JyBtZXRob2RcIik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBDb250aW51ZVNlbnRpbmVsO1xuICAgIH1cblxuICAgIHZhciByZWNvcmQgPSB0cnlDYXRjaChtZXRob2QsIGRlbGVnYXRlLml0ZXJhdG9yLCBjb250ZXh0LmFyZyk7XG5cbiAgICBpZiAocmVjb3JkLnR5cGUgPT09IFwidGhyb3dcIikge1xuICAgICAgY29udGV4dC5tZXRob2QgPSBcInRocm93XCI7XG4gICAgICBjb250ZXh0LmFyZyA9IHJlY29yZC5hcmc7XG4gICAgICBjb250ZXh0LmRlbGVnYXRlID0gbnVsbDtcbiAgICAgIHJldHVybiBDb250aW51ZVNlbnRpbmVsO1xuICAgIH1cblxuICAgIHZhciBpbmZvID0gcmVjb3JkLmFyZztcblxuICAgIGlmICghIGluZm8pIHtcbiAgICAgIGNvbnRleHQubWV0aG9kID0gXCJ0aHJvd1wiO1xuICAgICAgY29udGV4dC5hcmcgPSBuZXcgVHlwZUVycm9yKFwiaXRlcmF0b3IgcmVzdWx0IGlzIG5vdCBhbiBvYmplY3RcIik7XG4gICAgICBjb250ZXh0LmRlbGVnYXRlID0gbnVsbDtcbiAgICAgIHJldHVybiBDb250aW51ZVNlbnRpbmVsO1xuICAgIH1cblxuICAgIGlmIChpbmZvLmRvbmUpIHtcbiAgICAgIC8vIEFzc2lnbiB0aGUgcmVzdWx0IG9mIHRoZSBmaW5pc2hlZCBkZWxlZ2F0ZSB0byB0aGUgdGVtcG9yYXJ5XG4gICAgICAvLyB2YXJpYWJsZSBzcGVjaWZpZWQgYnkgZGVsZWdhdGUucmVzdWx0TmFtZSAoc2VlIGRlbGVnYXRlWWllbGQpLlxuICAgICAgY29udGV4dFtkZWxlZ2F0ZS5yZXN1bHROYW1lXSA9IGluZm8udmFsdWU7XG5cbiAgICAgIC8vIFJlc3VtZSBleGVjdXRpb24gYXQgdGhlIGRlc2lyZWQgbG9jYXRpb24gKHNlZSBkZWxlZ2F0ZVlpZWxkKS5cbiAgICAgIGNvbnRleHQubmV4dCA9IGRlbGVnYXRlLm5leHRMb2M7XG5cbiAgICAgIC8vIElmIGNvbnRleHQubWV0aG9kIHdhcyBcInRocm93XCIgYnV0IHRoZSBkZWxlZ2F0ZSBoYW5kbGVkIHRoZVxuICAgICAgLy8gZXhjZXB0aW9uLCBsZXQgdGhlIG91dGVyIGdlbmVyYXRvciBwcm9jZWVkIG5vcm1hbGx5LiBJZlxuICAgICAgLy8gY29udGV4dC5tZXRob2Qgd2FzIFwibmV4dFwiLCBmb3JnZXQgY29udGV4dC5hcmcgc2luY2UgaXQgaGFzIGJlZW5cbiAgICAgIC8vIFwiY29uc3VtZWRcIiBieSB0aGUgZGVsZWdhdGUgaXRlcmF0b3IuIElmIGNvbnRleHQubWV0aG9kIHdhc1xuICAgICAgLy8gXCJyZXR1cm5cIiwgYWxsb3cgdGhlIG9yaWdpbmFsIC5yZXR1cm4gY2FsbCB0byBjb250aW51ZSBpbiB0aGVcbiAgICAgIC8vIG91dGVyIGdlbmVyYXRvci5cbiAgICAgIGlmIChjb250ZXh0Lm1ldGhvZCAhPT0gXCJyZXR1cm5cIikge1xuICAgICAgICBjb250ZXh0Lm1ldGhvZCA9IFwibmV4dFwiO1xuICAgICAgICBjb250ZXh0LmFyZyA9IHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBSZS15aWVsZCB0aGUgcmVzdWx0IHJldHVybmVkIGJ5IHRoZSBkZWxlZ2F0ZSBtZXRob2QuXG4gICAgICByZXR1cm4gaW5mbztcbiAgICB9XG5cbiAgICAvLyBUaGUgZGVsZWdhdGUgaXRlcmF0b3IgaXMgZmluaXNoZWQsIHNvIGZvcmdldCBpdCBhbmQgY29udGludWUgd2l0aFxuICAgIC8vIHRoZSBvdXRlciBnZW5lcmF0b3IuXG4gICAgY29udGV4dC5kZWxlZ2F0ZSA9IG51bGw7XG4gICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gIH1cblxuICAvLyBEZWZpbmUgR2VuZXJhdG9yLnByb3RvdHlwZS57bmV4dCx0aHJvdyxyZXR1cm59IGluIHRlcm1zIG9mIHRoZVxuICAvLyB1bmlmaWVkIC5faW52b2tlIGhlbHBlciBtZXRob2QuXG4gIGRlZmluZUl0ZXJhdG9yTWV0aG9kcyhHcCk7XG5cbiAgR3BbdG9TdHJpbmdUYWdTeW1ib2xdID0gXCJHZW5lcmF0b3JcIjtcblxuICAvLyBBIEdlbmVyYXRvciBzaG91bGQgYWx3YXlzIHJldHVybiBpdHNlbGYgYXMgdGhlIGl0ZXJhdG9yIG9iamVjdCB3aGVuIHRoZVxuICAvLyBAQGl0ZXJhdG9yIGZ1bmN0aW9uIGlzIGNhbGxlZCBvbiBpdC4gU29tZSBicm93c2VycycgaW1wbGVtZW50YXRpb25zIG9mIHRoZVxuICAvLyBpdGVyYXRvciBwcm90b3R5cGUgY2hhaW4gaW5jb3JyZWN0bHkgaW1wbGVtZW50IHRoaXMsIGNhdXNpbmcgdGhlIEdlbmVyYXRvclxuICAvLyBvYmplY3QgdG8gbm90IGJlIHJldHVybmVkIGZyb20gdGhpcyBjYWxsLiBUaGlzIGVuc3VyZXMgdGhhdCBkb2Vzbid0IGhhcHBlbi5cbiAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWdlbmVyYXRvci9pc3N1ZXMvMjc0IGZvciBtb3JlIGRldGFpbHMuXG4gIEdwW2l0ZXJhdG9yU3ltYm9sXSA9IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIEdwLnRvU3RyaW5nID0gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIFwiW29iamVjdCBHZW5lcmF0b3JdXCI7XG4gIH07XG5cbiAgZnVuY3Rpb24gcHVzaFRyeUVudHJ5KGxvY3MpIHtcbiAgICB2YXIgZW50cnkgPSB7IHRyeUxvYzogbG9jc1swXSB9O1xuXG4gICAgaWYgKDEgaW4gbG9jcykge1xuICAgICAgZW50cnkuY2F0Y2hMb2MgPSBsb2NzWzFdO1xuICAgIH1cblxuICAgIGlmICgyIGluIGxvY3MpIHtcbiAgICAgIGVudHJ5LmZpbmFsbHlMb2MgPSBsb2NzWzJdO1xuICAgICAgZW50cnkuYWZ0ZXJMb2MgPSBsb2NzWzNdO1xuICAgIH1cblxuICAgIHRoaXMudHJ5RW50cmllcy5wdXNoKGVudHJ5KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlc2V0VHJ5RW50cnkoZW50cnkpIHtcbiAgICB2YXIgcmVjb3JkID0gZW50cnkuY29tcGxldGlvbiB8fCB7fTtcbiAgICByZWNvcmQudHlwZSA9IFwibm9ybWFsXCI7XG4gICAgZGVsZXRlIHJlY29yZC5hcmc7XG4gICAgZW50cnkuY29tcGxldGlvbiA9IHJlY29yZDtcbiAgfVxuXG4gIGZ1bmN0aW9uIENvbnRleHQodHJ5TG9jc0xpc3QpIHtcbiAgICAvLyBUaGUgcm9vdCBlbnRyeSBvYmplY3QgKGVmZmVjdGl2ZWx5IGEgdHJ5IHN0YXRlbWVudCB3aXRob3V0IGEgY2F0Y2hcbiAgICAvLyBvciBhIGZpbmFsbHkgYmxvY2spIGdpdmVzIHVzIGEgcGxhY2UgdG8gc3RvcmUgdmFsdWVzIHRocm93biBmcm9tXG4gICAgLy8gbG9jYXRpb25zIHdoZXJlIHRoZXJlIGlzIG5vIGVuY2xvc2luZyB0cnkgc3RhdGVtZW50LlxuICAgIHRoaXMudHJ5RW50cmllcyA9IFt7IHRyeUxvYzogXCJyb290XCIgfV07XG4gICAgdHJ5TG9jc0xpc3QuZm9yRWFjaChwdXNoVHJ5RW50cnksIHRoaXMpO1xuICAgIHRoaXMucmVzZXQodHJ1ZSk7XG4gIH1cblxuICBleHBvcnRzLmtleXMgPSBmdW5jdGlvbihvYmplY3QpIHtcbiAgICB2YXIga2V5cyA9IFtdO1xuICAgIGZvciAodmFyIGtleSBpbiBvYmplY3QpIHtcbiAgICAgIGtleXMucHVzaChrZXkpO1xuICAgIH1cbiAgICBrZXlzLnJldmVyc2UoKTtcblxuICAgIC8vIFJhdGhlciB0aGFuIHJldHVybmluZyBhbiBvYmplY3Qgd2l0aCBhIG5leHQgbWV0aG9kLCB3ZSBrZWVwXG4gICAgLy8gdGhpbmdzIHNpbXBsZSBhbmQgcmV0dXJuIHRoZSBuZXh0IGZ1bmN0aW9uIGl0c2VsZi5cbiAgICByZXR1cm4gZnVuY3Rpb24gbmV4dCgpIHtcbiAgICAgIHdoaWxlIChrZXlzLmxlbmd0aCkge1xuICAgICAgICB2YXIga2V5ID0ga2V5cy5wb3AoKTtcbiAgICAgICAgaWYgKGtleSBpbiBvYmplY3QpIHtcbiAgICAgICAgICBuZXh0LnZhbHVlID0ga2V5O1xuICAgICAgICAgIG5leHQuZG9uZSA9IGZhbHNlO1xuICAgICAgICAgIHJldHVybiBuZXh0O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFRvIGF2b2lkIGNyZWF0aW5nIGFuIGFkZGl0aW9uYWwgb2JqZWN0LCB3ZSBqdXN0IGhhbmcgdGhlIC52YWx1ZVxuICAgICAgLy8gYW5kIC5kb25lIHByb3BlcnRpZXMgb2ZmIHRoZSBuZXh0IGZ1bmN0aW9uIG9iamVjdCBpdHNlbGYuIFRoaXNcbiAgICAgIC8vIGFsc28gZW5zdXJlcyB0aGF0IHRoZSBtaW5pZmllciB3aWxsIG5vdCBhbm9ueW1pemUgdGhlIGZ1bmN0aW9uLlxuICAgICAgbmV4dC5kb25lID0gdHJ1ZTtcbiAgICAgIHJldHVybiBuZXh0O1xuICAgIH07XG4gIH07XG5cbiAgZnVuY3Rpb24gdmFsdWVzKGl0ZXJhYmxlKSB7XG4gICAgaWYgKGl0ZXJhYmxlKSB7XG4gICAgICB2YXIgaXRlcmF0b3JNZXRob2QgPSBpdGVyYWJsZVtpdGVyYXRvclN5bWJvbF07XG4gICAgICBpZiAoaXRlcmF0b3JNZXRob2QpIHtcbiAgICAgICAgcmV0dXJuIGl0ZXJhdG9yTWV0aG9kLmNhbGwoaXRlcmFibGUpO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIGl0ZXJhYmxlLm5leHQgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICByZXR1cm4gaXRlcmFibGU7XG4gICAgICB9XG5cbiAgICAgIGlmICghaXNOYU4oaXRlcmFibGUubGVuZ3RoKSkge1xuICAgICAgICB2YXIgaSA9IC0xLCBuZXh0ID0gZnVuY3Rpb24gbmV4dCgpIHtcbiAgICAgICAgICB3aGlsZSAoKytpIDwgaXRlcmFibGUubGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAoaGFzT3duLmNhbGwoaXRlcmFibGUsIGkpKSB7XG4gICAgICAgICAgICAgIG5leHQudmFsdWUgPSBpdGVyYWJsZVtpXTtcbiAgICAgICAgICAgICAgbmV4dC5kb25lID0gZmFsc2U7XG4gICAgICAgICAgICAgIHJldHVybiBuZXh0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIG5leHQudmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgbmV4dC5kb25lID0gdHJ1ZTtcblxuICAgICAgICAgIHJldHVybiBuZXh0O1xuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBuZXh0Lm5leHQgPSBuZXh0O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJldHVybiBhbiBpdGVyYXRvciB3aXRoIG5vIHZhbHVlcy5cbiAgICByZXR1cm4geyBuZXh0OiBkb25lUmVzdWx0IH07XG4gIH1cbiAgZXhwb3J0cy52YWx1ZXMgPSB2YWx1ZXM7XG5cbiAgZnVuY3Rpb24gZG9uZVJlc3VsdCgpIHtcbiAgICByZXR1cm4geyB2YWx1ZTogdW5kZWZpbmVkLCBkb25lOiB0cnVlIH07XG4gIH1cblxuICBDb250ZXh0LnByb3RvdHlwZSA9IHtcbiAgICBjb25zdHJ1Y3RvcjogQ29udGV4dCxcblxuICAgIHJlc2V0OiBmdW5jdGlvbihza2lwVGVtcFJlc2V0KSB7XG4gICAgICB0aGlzLnByZXYgPSAwO1xuICAgICAgdGhpcy5uZXh0ID0gMDtcbiAgICAgIC8vIFJlc2V0dGluZyBjb250ZXh0Ll9zZW50IGZvciBsZWdhY3kgc3VwcG9ydCBvZiBCYWJlbCdzXG4gICAgICAvLyBmdW5jdGlvbi5zZW50IGltcGxlbWVudGF0aW9uLlxuICAgICAgdGhpcy5zZW50ID0gdGhpcy5fc2VudCA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuZG9uZSA9IGZhbHNlO1xuICAgICAgdGhpcy5kZWxlZ2F0ZSA9IG51bGw7XG5cbiAgICAgIHRoaXMubWV0aG9kID0gXCJuZXh0XCI7XG4gICAgICB0aGlzLmFyZyA9IHVuZGVmaW5lZDtcblxuICAgICAgdGhpcy50cnlFbnRyaWVzLmZvckVhY2gocmVzZXRUcnlFbnRyeSk7XG5cbiAgICAgIGlmICghc2tpcFRlbXBSZXNldCkge1xuICAgICAgICBmb3IgKHZhciBuYW1lIGluIHRoaXMpIHtcbiAgICAgICAgICAvLyBOb3Qgc3VyZSBhYm91dCB0aGUgb3B0aW1hbCBvcmRlciBvZiB0aGVzZSBjb25kaXRpb25zOlxuICAgICAgICAgIGlmIChuYW1lLmNoYXJBdCgwKSA9PT0gXCJ0XCIgJiZcbiAgICAgICAgICAgICAgaGFzT3duLmNhbGwodGhpcywgbmFtZSkgJiZcbiAgICAgICAgICAgICAgIWlzTmFOKCtuYW1lLnNsaWNlKDEpKSkge1xuICAgICAgICAgICAgdGhpc1tuYW1lXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuXG4gICAgc3RvcDogZnVuY3Rpb24oKSB7XG4gICAgICB0aGlzLmRvbmUgPSB0cnVlO1xuXG4gICAgICB2YXIgcm9vdEVudHJ5ID0gdGhpcy50cnlFbnRyaWVzWzBdO1xuICAgICAgdmFyIHJvb3RSZWNvcmQgPSByb290RW50cnkuY29tcGxldGlvbjtcbiAgICAgIGlmIChyb290UmVjb3JkLnR5cGUgPT09IFwidGhyb3dcIikge1xuICAgICAgICB0aHJvdyByb290UmVjb3JkLmFyZztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMucnZhbDtcbiAgICB9LFxuXG4gICAgZGlzcGF0Y2hFeGNlcHRpb246IGZ1bmN0aW9uKGV4Y2VwdGlvbikge1xuICAgICAgaWYgKHRoaXMuZG9uZSkge1xuICAgICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgICB9XG5cbiAgICAgIHZhciBjb250ZXh0ID0gdGhpcztcbiAgICAgIGZ1bmN0aW9uIGhhbmRsZShsb2MsIGNhdWdodCkge1xuICAgICAgICByZWNvcmQudHlwZSA9IFwidGhyb3dcIjtcbiAgICAgICAgcmVjb3JkLmFyZyA9IGV4Y2VwdGlvbjtcbiAgICAgICAgY29udGV4dC5uZXh0ID0gbG9jO1xuXG4gICAgICAgIGlmIChjYXVnaHQpIHtcbiAgICAgICAgICAvLyBJZiB0aGUgZGlzcGF0Y2hlZCBleGNlcHRpb24gd2FzIGNhdWdodCBieSBhIGNhdGNoIGJsb2NrLFxuICAgICAgICAgIC8vIHRoZW4gbGV0IHRoYXQgY2F0Y2ggYmxvY2sgaGFuZGxlIHRoZSBleGNlcHRpb24gbm9ybWFsbHkuXG4gICAgICAgICAgY29udGV4dC5tZXRob2QgPSBcIm5leHRcIjtcbiAgICAgICAgICBjb250ZXh0LmFyZyA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAhISBjYXVnaHQ7XG4gICAgICB9XG5cbiAgICAgIGZvciAodmFyIGkgPSB0aGlzLnRyeUVudHJpZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyAtLWkpIHtcbiAgICAgICAgdmFyIGVudHJ5ID0gdGhpcy50cnlFbnRyaWVzW2ldO1xuICAgICAgICB2YXIgcmVjb3JkID0gZW50cnkuY29tcGxldGlvbjtcblxuICAgICAgICBpZiAoZW50cnkudHJ5TG9jID09PSBcInJvb3RcIikge1xuICAgICAgICAgIC8vIEV4Y2VwdGlvbiB0aHJvd24gb3V0c2lkZSBvZiBhbnkgdHJ5IGJsb2NrIHRoYXQgY291bGQgaGFuZGxlXG4gICAgICAgICAgLy8gaXQsIHNvIHNldCB0aGUgY29tcGxldGlvbiB2YWx1ZSBvZiB0aGUgZW50aXJlIGZ1bmN0aW9uIHRvXG4gICAgICAgICAgLy8gdGhyb3cgdGhlIGV4Y2VwdGlvbi5cbiAgICAgICAgICByZXR1cm4gaGFuZGxlKFwiZW5kXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGVudHJ5LnRyeUxvYyA8PSB0aGlzLnByZXYpIHtcbiAgICAgICAgICB2YXIgaGFzQ2F0Y2ggPSBoYXNPd24uY2FsbChlbnRyeSwgXCJjYXRjaExvY1wiKTtcbiAgICAgICAgICB2YXIgaGFzRmluYWxseSA9IGhhc093bi5jYWxsKGVudHJ5LCBcImZpbmFsbHlMb2NcIik7XG5cbiAgICAgICAgICBpZiAoaGFzQ2F0Y2ggJiYgaGFzRmluYWxseSkge1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGVudHJ5LmNhdGNoTG9jKSB7XG4gICAgICAgICAgICAgIHJldHVybiBoYW5kbGUoZW50cnkuY2F0Y2hMb2MsIHRydWUpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnByZXYgPCBlbnRyeS5maW5hbGx5TG9jKSB7XG4gICAgICAgICAgICAgIHJldHVybiBoYW5kbGUoZW50cnkuZmluYWxseUxvYyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICB9IGVsc2UgaWYgKGhhc0NhdGNoKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5wcmV2IDwgZW50cnkuY2F0Y2hMb2MpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGhhbmRsZShlbnRyeS5jYXRjaExvYywgdHJ1ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICB9IGVsc2UgaWYgKGhhc0ZpbmFsbHkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnByZXYgPCBlbnRyeS5maW5hbGx5TG9jKSB7XG4gICAgICAgICAgICAgIHJldHVybiBoYW5kbGUoZW50cnkuZmluYWxseUxvYyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwidHJ5IHN0YXRlbWVudCB3aXRob3V0IGNhdGNoIG9yIGZpbmFsbHlcIik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcblxuICAgIGFicnVwdDogZnVuY3Rpb24odHlwZSwgYXJnKSB7XG4gICAgICBmb3IgKHZhciBpID0gdGhpcy50cnlFbnRyaWVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgLS1pKSB7XG4gICAgICAgIHZhciBlbnRyeSA9IHRoaXMudHJ5RW50cmllc1tpXTtcbiAgICAgICAgaWYgKGVudHJ5LnRyeUxvYyA8PSB0aGlzLnByZXYgJiZcbiAgICAgICAgICAgIGhhc093bi5jYWxsKGVudHJ5LCBcImZpbmFsbHlMb2NcIikgJiZcbiAgICAgICAgICAgIHRoaXMucHJldiA8IGVudHJ5LmZpbmFsbHlMb2MpIHtcbiAgICAgICAgICB2YXIgZmluYWxseUVudHJ5ID0gZW50cnk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGZpbmFsbHlFbnRyeSAmJlxuICAgICAgICAgICh0eXBlID09PSBcImJyZWFrXCIgfHxcbiAgICAgICAgICAgdHlwZSA9PT0gXCJjb250aW51ZVwiKSAmJlxuICAgICAgICAgIGZpbmFsbHlFbnRyeS50cnlMb2MgPD0gYXJnICYmXG4gICAgICAgICAgYXJnIDw9IGZpbmFsbHlFbnRyeS5maW5hbGx5TG9jKSB7XG4gICAgICAgIC8vIElnbm9yZSB0aGUgZmluYWxseSBlbnRyeSBpZiBjb250cm9sIGlzIG5vdCBqdW1waW5nIHRvIGFcbiAgICAgICAgLy8gbG9jYXRpb24gb3V0c2lkZSB0aGUgdHJ5L2NhdGNoIGJsb2NrLlxuICAgICAgICBmaW5hbGx5RW50cnkgPSBudWxsO1xuICAgICAgfVxuXG4gICAgICB2YXIgcmVjb3JkID0gZmluYWxseUVudHJ5ID8gZmluYWxseUVudHJ5LmNvbXBsZXRpb24gOiB7fTtcbiAgICAgIHJlY29yZC50eXBlID0gdHlwZTtcbiAgICAgIHJlY29yZC5hcmcgPSBhcmc7XG5cbiAgICAgIGlmIChmaW5hbGx5RW50cnkpIHtcbiAgICAgICAgdGhpcy5tZXRob2QgPSBcIm5leHRcIjtcbiAgICAgICAgdGhpcy5uZXh0ID0gZmluYWxseUVudHJ5LmZpbmFsbHlMb2M7XG4gICAgICAgIHJldHVybiBDb250aW51ZVNlbnRpbmVsO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5jb21wbGV0ZShyZWNvcmQpO1xuICAgIH0sXG5cbiAgICBjb21wbGV0ZTogZnVuY3Rpb24ocmVjb3JkLCBhZnRlckxvYykge1xuICAgICAgaWYgKHJlY29yZC50eXBlID09PSBcInRocm93XCIpIHtcbiAgICAgICAgdGhyb3cgcmVjb3JkLmFyZztcbiAgICAgIH1cblxuICAgICAgaWYgKHJlY29yZC50eXBlID09PSBcImJyZWFrXCIgfHxcbiAgICAgICAgICByZWNvcmQudHlwZSA9PT0gXCJjb250aW51ZVwiKSB7XG4gICAgICAgIHRoaXMubmV4dCA9IHJlY29yZC5hcmc7XG4gICAgICB9IGVsc2UgaWYgKHJlY29yZC50eXBlID09PSBcInJldHVyblwiKSB7XG4gICAgICAgIHRoaXMucnZhbCA9IHRoaXMuYXJnID0gcmVjb3JkLmFyZztcbiAgICAgICAgdGhpcy5tZXRob2QgPSBcInJldHVyblwiO1xuICAgICAgICB0aGlzLm5leHQgPSBcImVuZFwiO1xuICAgICAgfSBlbHNlIGlmIChyZWNvcmQudHlwZSA9PT0gXCJub3JtYWxcIiAmJiBhZnRlckxvYykge1xuICAgICAgICB0aGlzLm5leHQgPSBhZnRlckxvYztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gICAgfSxcblxuICAgIGZpbmlzaDogZnVuY3Rpb24oZmluYWxseUxvYykge1xuICAgICAgZm9yICh2YXIgaSA9IHRoaXMudHJ5RW50cmllcy5sZW5ndGggLSAxOyBpID49IDA7IC0taSkge1xuICAgICAgICB2YXIgZW50cnkgPSB0aGlzLnRyeUVudHJpZXNbaV07XG4gICAgICAgIGlmIChlbnRyeS5maW5hbGx5TG9jID09PSBmaW5hbGx5TG9jKSB7XG4gICAgICAgICAgdGhpcy5jb21wbGV0ZShlbnRyeS5jb21wbGV0aW9uLCBlbnRyeS5hZnRlckxvYyk7XG4gICAgICAgICAgcmVzZXRUcnlFbnRyeShlbnRyeSk7XG4gICAgICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuXG4gICAgXCJjYXRjaFwiOiBmdW5jdGlvbih0cnlMb2MpIHtcbiAgICAgIGZvciAodmFyIGkgPSB0aGlzLnRyeUVudHJpZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyAtLWkpIHtcbiAgICAgICAgdmFyIGVudHJ5ID0gdGhpcy50cnlFbnRyaWVzW2ldO1xuICAgICAgICBpZiAoZW50cnkudHJ5TG9jID09PSB0cnlMb2MpIHtcbiAgICAgICAgICB2YXIgcmVjb3JkID0gZW50cnkuY29tcGxldGlvbjtcbiAgICAgICAgICBpZiAocmVjb3JkLnR5cGUgPT09IFwidGhyb3dcIikge1xuICAgICAgICAgICAgdmFyIHRocm93biA9IHJlY29yZC5hcmc7XG4gICAgICAgICAgICByZXNldFRyeUVudHJ5KGVudHJ5KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRocm93bjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBUaGUgY29udGV4dC5jYXRjaCBtZXRob2QgbXVzdCBvbmx5IGJlIGNhbGxlZCB3aXRoIGEgbG9jYXRpb25cbiAgICAgIC8vIGFyZ3VtZW50IHRoYXQgY29ycmVzcG9uZHMgdG8gYSBrbm93biBjYXRjaCBibG9jay5cbiAgICAgIHRocm93IG5ldyBFcnJvcihcImlsbGVnYWwgY2F0Y2ggYXR0ZW1wdFwiKTtcbiAgICB9LFxuXG4gICAgZGVsZWdhdGVZaWVsZDogZnVuY3Rpb24oaXRlcmFibGUsIHJlc3VsdE5hbWUsIG5leHRMb2MpIHtcbiAgICAgIHRoaXMuZGVsZWdhdGUgPSB7XG4gICAgICAgIGl0ZXJhdG9yOiB2YWx1ZXMoaXRlcmFibGUpLFxuICAgICAgICByZXN1bHROYW1lOiByZXN1bHROYW1lLFxuICAgICAgICBuZXh0TG9jOiBuZXh0TG9jXG4gICAgICB9O1xuXG4gICAgICBpZiAodGhpcy5tZXRob2QgPT09IFwibmV4dFwiKSB7XG4gICAgICAgIC8vIERlbGliZXJhdGVseSBmb3JnZXQgdGhlIGxhc3Qgc2VudCB2YWx1ZSBzbyB0aGF0IHdlIGRvbid0XG4gICAgICAgIC8vIGFjY2lkZW50YWxseSBwYXNzIGl0IG9uIHRvIHRoZSBkZWxlZ2F0ZS5cbiAgICAgICAgdGhpcy5hcmcgPSB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBDb250aW51ZVNlbnRpbmVsO1xuICAgIH1cbiAgfTtcblxuICAvLyBSZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhpcyBzY3JpcHQgaXMgZXhlY3V0aW5nIGFzIGEgQ29tbW9uSlMgbW9kdWxlXG4gIC8vIG9yIG5vdCwgcmV0dXJuIHRoZSBydW50aW1lIG9iamVjdCBzbyB0aGF0IHdlIGNhbiBkZWNsYXJlIHRoZSB2YXJpYWJsZVxuICAvLyByZWdlbmVyYXRvclJ1bnRpbWUgaW4gdGhlIG91dGVyIHNjb3BlLCB3aGljaCBhbGxvd3MgdGhpcyBtb2R1bGUgdG8gYmVcbiAgLy8gaW5qZWN0ZWQgZWFzaWx5IGJ5IGBiaW4vcmVnZW5lcmF0b3IgLS1pbmNsdWRlLXJ1bnRpbWUgc2NyaXB0LmpzYC5cbiAgcmV0dXJuIGV4cG9ydHM7XG5cbn0oXG4gIC8vIElmIHRoaXMgc2NyaXB0IGlzIGV4ZWN1dGluZyBhcyBhIENvbW1vbkpTIG1vZHVsZSwgdXNlIG1vZHVsZS5leHBvcnRzXG4gIC8vIGFzIHRoZSByZWdlbmVyYXRvclJ1bnRpbWUgbmFtZXNwYWNlLiBPdGhlcndpc2UgY3JlYXRlIGEgbmV3IGVtcHR5XG4gIC8vIG9iamVjdC4gRWl0aGVyIHdheSwgdGhlIHJlc3VsdGluZyBvYmplY3Qgd2lsbCBiZSB1c2VkIHRvIGluaXRpYWxpemVcbiAgLy8gdGhlIHJlZ2VuZXJhdG9yUnVudGltZSB2YXJpYWJsZSBhdCB0aGUgdG9wIG9mIHRoaXMgZmlsZS5cbiAgdHlwZW9mIG1vZHVsZSA9PT0gXCJvYmplY3RcIiA/IG1vZHVsZS5leHBvcnRzIDoge31cbikpO1xuXG50cnkge1xuICByZWdlbmVyYXRvclJ1bnRpbWUgPSBydW50aW1lO1xufSBjYXRjaCAoYWNjaWRlbnRhbFN0cmljdE1vZGUpIHtcbiAgLy8gVGhpcyBtb2R1bGUgc2hvdWxkIG5vdCBiZSBydW5uaW5nIGluIHN0cmljdCBtb2RlLCBzbyB0aGUgYWJvdmVcbiAgLy8gYXNzaWdubWVudCBzaG91bGQgYWx3YXlzIHdvcmsgdW5sZXNzIHNvbWV0aGluZyBpcyBtaXNjb25maWd1cmVkLiBKdXN0XG4gIC8vIGluIGNhc2UgcnVudGltZS5qcyBhY2NpZGVudGFsbHkgcnVucyBpbiBzdHJpY3QgbW9kZSwgd2UgY2FuIGVzY2FwZVxuICAvLyBzdHJpY3QgbW9kZSB1c2luZyBhIGdsb2JhbCBGdW5jdGlvbiBjYWxsLiBUaGlzIGNvdWxkIGNvbmNlaXZhYmx5IGZhaWxcbiAgLy8gaWYgYSBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBmb3JiaWRzIHVzaW5nIEZ1bmN0aW9uLCBidXQgaW4gdGhhdCBjYXNlXG4gIC8vIHRoZSBwcm9wZXIgc29sdXRpb24gaXMgdG8gZml4IHRoZSBhY2NpZGVudGFsIHN0cmljdCBtb2RlIHByb2JsZW0uIElmXG4gIC8vIHlvdSd2ZSBtaXNjb25maWd1cmVkIHlvdXIgYnVuZGxlciB0byBmb3JjZSBzdHJpY3QgbW9kZSBhbmQgYXBwbGllZCBhXG4gIC8vIENTUCB0byBmb3JiaWQgRnVuY3Rpb24sIGFuZCB5b3UncmUgbm90IHdpbGxpbmcgdG8gZml4IGVpdGhlciBvZiB0aG9zZVxuICAvLyBwcm9ibGVtcywgcGxlYXNlIGRldGFpbCB5b3VyIHVuaXF1ZSBwcmVkaWNhbWVudCBpbiBhIEdpdEh1YiBpc3N1ZS5cbiAgRnVuY3Rpb24oXCJyXCIsIFwicmVnZW5lcmF0b3JSdW50aW1lID0gclwiKShydW50aW1lKTtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/regenerator-runtime/runtime.js\n"); + +/***/ }), + +/***/ "./node_modules/scheduler/cjs/scheduler-tracing.development.js": +/*!*********************************************************************!*\ + !*** ./node_modules/scheduler/cjs/scheduler-tracing.development.js ***! + \*********************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("/** @license React v0.20.2\n * scheduler-tracing.development.js\n *\n * Copyright (c) Facebook, Inc. and its 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\n\n\nif (true) {\n (function() {\n'use strict';\n\nvar DEFAULT_THREAD_ID = 0; // Counters used to generate unique IDs.\n\nvar interactionIDCounter = 0;\nvar threadIDCounter = 0; // Set of currently traced interactions.\n// Interactions \"stack\"–\n// Meaning that newly traced interactions are appended to the previously active set.\n// When an interaction goes out of scope, the previous set (if any) is restored.\n\nexports.__interactionsRef = null; // Listener(s) to notify when interactions begin and end.\n\nexports.__subscriberRef = null;\n\n{\n exports.__interactionsRef = {\n current: new Set()\n };\n exports.__subscriberRef = {\n current: null\n };\n}\nfunction unstable_clear(callback) {\n\n var prevInteractions = exports.__interactionsRef.current;\n exports.__interactionsRef.current = new Set();\n\n try {\n return callback();\n } finally {\n exports.__interactionsRef.current = prevInteractions;\n }\n}\nfunction unstable_getCurrent() {\n {\n return exports.__interactionsRef.current;\n }\n}\nfunction unstable_getThreadID() {\n return ++threadIDCounter;\n}\nfunction unstable_trace(name, timestamp, callback) {\n var threadID = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : DEFAULT_THREAD_ID;\n\n var interaction = {\n __count: 1,\n id: interactionIDCounter++,\n name: name,\n timestamp: timestamp\n };\n var prevInteractions = exports.__interactionsRef.current; // Traced interactions should stack/accumulate.\n // To do that, clone the current interactions.\n // The previous set will be restored upon completion.\n\n var interactions = new Set(prevInteractions);\n interactions.add(interaction);\n exports.__interactionsRef.current = interactions;\n var subscriber = exports.__subscriberRef.current;\n var returnValue;\n\n try {\n if (subscriber !== null) {\n subscriber.onInteractionTraced(interaction);\n }\n } finally {\n try {\n if (subscriber !== null) {\n subscriber.onWorkStarted(interactions, threadID);\n }\n } finally {\n try {\n returnValue = callback();\n } finally {\n exports.__interactionsRef.current = prevInteractions;\n\n try {\n if (subscriber !== null) {\n subscriber.onWorkStopped(interactions, threadID);\n }\n } finally {\n interaction.__count--; // If no async work was scheduled for this interaction,\n // Notify subscribers that it's completed.\n\n if (subscriber !== null && interaction.__count === 0) {\n subscriber.onInteractionScheduledWorkCompleted(interaction);\n }\n }\n }\n }\n }\n\n return returnValue;\n}\nfunction unstable_wrap(callback) {\n var threadID = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_THREAD_ID;\n\n var wrappedInteractions = exports.__interactionsRef.current;\n var subscriber = exports.__subscriberRef.current;\n\n if (subscriber !== null) {\n subscriber.onWorkScheduled(wrappedInteractions, threadID);\n } // Update the pending async work count for the current interactions.\n // Update after calling subscribers in case of error.\n\n\n wrappedInteractions.forEach(function (interaction) {\n interaction.__count++;\n });\n var hasRun = false;\n\n function wrapped() {\n var prevInteractions = exports.__interactionsRef.current;\n exports.__interactionsRef.current = wrappedInteractions;\n subscriber = exports.__subscriberRef.current;\n\n try {\n var returnValue;\n\n try {\n if (subscriber !== null) {\n subscriber.onWorkStarted(wrappedInteractions, threadID);\n }\n } finally {\n try {\n returnValue = callback.apply(undefined, arguments);\n } finally {\n exports.__interactionsRef.current = prevInteractions;\n\n if (subscriber !== null) {\n subscriber.onWorkStopped(wrappedInteractions, threadID);\n }\n }\n }\n\n return returnValue;\n } finally {\n if (!hasRun) {\n // We only expect a wrapped function to be executed once,\n // But in the event that it's executed more than once–\n // Only decrement the outstanding interaction counts once.\n hasRun = true; // Update pending async counts for all wrapped interactions.\n // If this was the last scheduled async work for any of them,\n // Mark them as completed.\n\n wrappedInteractions.forEach(function (interaction) {\n interaction.__count--;\n\n if (subscriber !== null && interaction.__count === 0) {\n subscriber.onInteractionScheduledWorkCompleted(interaction);\n }\n });\n }\n }\n }\n\n wrapped.cancel = function cancel() {\n subscriber = exports.__subscriberRef.current;\n\n try {\n if (subscriber !== null) {\n subscriber.onWorkCanceled(wrappedInteractions, threadID);\n }\n } finally {\n // Update pending async counts for all wrapped interactions.\n // If this was the last scheduled async work for any of them,\n // Mark them as completed.\n wrappedInteractions.forEach(function (interaction) {\n interaction.__count--;\n\n if (subscriber && interaction.__count === 0) {\n subscriber.onInteractionScheduledWorkCompleted(interaction);\n }\n });\n }\n };\n\n return wrapped;\n}\n\nvar subscribers = null;\n\n{\n subscribers = new Set();\n}\n\nfunction unstable_subscribe(subscriber) {\n {\n subscribers.add(subscriber);\n\n if (subscribers.size === 1) {\n exports.__subscriberRef.current = {\n onInteractionScheduledWorkCompleted: onInteractionScheduledWorkCompleted,\n onInteractionTraced: onInteractionTraced,\n onWorkCanceled: onWorkCanceled,\n onWorkScheduled: onWorkScheduled,\n onWorkStarted: onWorkStarted,\n onWorkStopped: onWorkStopped\n };\n }\n }\n}\nfunction unstable_unsubscribe(subscriber) {\n {\n subscribers.delete(subscriber);\n\n if (subscribers.size === 0) {\n exports.__subscriberRef.current = null;\n }\n }\n}\n\nfunction onInteractionTraced(interaction) {\n var didCatchError = false;\n var caughtError = null;\n subscribers.forEach(function (subscriber) {\n try {\n subscriber.onInteractionTraced(interaction);\n } catch (error) {\n if (!didCatchError) {\n didCatchError = true;\n caughtError = error;\n }\n }\n });\n\n if (didCatchError) {\n throw caughtError;\n }\n}\n\nfunction onInteractionScheduledWorkCompleted(interaction) {\n var didCatchError = false;\n var caughtError = null;\n subscribers.forEach(function (subscriber) {\n try {\n subscriber.onInteractionScheduledWorkCompleted(interaction);\n } catch (error) {\n if (!didCatchError) {\n didCatchError = true;\n caughtError = error;\n }\n }\n });\n\n if (didCatchError) {\n throw caughtError;\n }\n}\n\nfunction onWorkScheduled(interactions, threadID) {\n var didCatchError = false;\n var caughtError = null;\n subscribers.forEach(function (subscriber) {\n try {\n subscriber.onWorkScheduled(interactions, threadID);\n } catch (error) {\n if (!didCatchError) {\n didCatchError = true;\n caughtError = error;\n }\n }\n });\n\n if (didCatchError) {\n throw caughtError;\n }\n}\n\nfunction onWorkStarted(interactions, threadID) {\n var didCatchError = false;\n var caughtError = null;\n subscribers.forEach(function (subscriber) {\n try {\n subscriber.onWorkStarted(interactions, threadID);\n } catch (error) {\n if (!didCatchError) {\n didCatchError = true;\n caughtError = error;\n }\n }\n });\n\n if (didCatchError) {\n throw caughtError;\n }\n}\n\nfunction onWorkStopped(interactions, threadID) {\n var didCatchError = false;\n var caughtError = null;\n subscribers.forEach(function (subscriber) {\n try {\n subscriber.onWorkStopped(interactions, threadID);\n } catch (error) {\n if (!didCatchError) {\n didCatchError = true;\n caughtError = error;\n }\n }\n });\n\n if (didCatchError) {\n throw caughtError;\n }\n}\n\nfunction onWorkCanceled(interactions, threadID) {\n var didCatchError = false;\n var caughtError = null;\n subscribers.forEach(function (subscriber) {\n try {\n subscriber.onWorkCanceled(interactions, threadID);\n } catch (error) {\n if (!didCatchError) {\n didCatchError = true;\n caughtError = error;\n }\n }\n });\n\n if (didCatchError) {\n throw caughtError;\n }\n}\n\nexports.unstable_clear = unstable_clear;\nexports.unstable_getCurrent = unstable_getCurrent;\nexports.unstable_getThreadID = unstable_getThreadID;\nexports.unstable_subscribe = unstable_subscribe;\nexports.unstable_trace = unstable_trace;\nexports.unstable_unsubscribe = unstable_unsubscribe;\nexports.unstable_wrap = unstable_wrap;\n })();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc2NoZWR1bGVyL2Nqcy9zY2hlZHVsZXItdHJhY2luZy5kZXZlbG9wbWVudC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVhOztBQUViLElBQUksSUFBcUM7QUFDekM7QUFDQTs7QUFFQSwyQkFBMkI7O0FBRTNCO0FBQ0EseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQTs7QUFFQSx5QkFBeUIsU0FBUzs7QUFFbEMsdUJBQXVCOztBQUV2QjtBQUNBLEVBQUUseUJBQXlCO0FBQzNCO0FBQ0E7QUFDQSxFQUFFLHVCQUF1QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEVBQUUsaUNBQWlDOztBQUVuQztBQUNBO0FBQ0EsSUFBSTtBQUNKLElBQUksaUNBQWlDO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0REFBNEQ7QUFDNUQ7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsRUFBRSxpQ0FBaUM7QUFDbkM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsUUFBUTtBQUNSLFFBQVEsaUNBQWlDOztBQUV6QztBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVixpQ0FBaUM7QUFDakM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOzs7QUFHQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQSxJQUFJLGlDQUFpQztBQUNyQzs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxVQUFVO0FBQ1YsVUFBVSxpQ0FBaUM7O0FBRTNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUI7QUFDdkI7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLE1BQU0sK0JBQStCO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsTUFBTSwrQkFBK0I7QUFDckM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBOztBQUVBLHNCQUFzQjtBQUN0QiwyQkFBMkI7QUFDM0IsNEJBQTRCO0FBQzVCLDBCQUEwQjtBQUMxQixzQkFBc0I7QUFDdEIsNEJBQTRCO0FBQzVCLHFCQUFxQjtBQUNyQixHQUFHO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3NjaGVkdWxlci9janMvc2NoZWR1bGVyLXRyYWNpbmcuZGV2ZWxvcG1lbnQuanM/MTQ4ZSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQGxpY2Vuc2UgUmVhY3QgdjAuMjAuMlxuICogc2NoZWR1bGVyLXRyYWNpbmcuZGV2ZWxvcG1lbnQuanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIEZhY2Vib29rLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgKGZ1bmN0aW9uKCkge1xuJ3VzZSBzdHJpY3QnO1xuXG52YXIgREVGQVVMVF9USFJFQURfSUQgPSAwOyAvLyBDb3VudGVycyB1c2VkIHRvIGdlbmVyYXRlIHVuaXF1ZSBJRHMuXG5cbnZhciBpbnRlcmFjdGlvbklEQ291bnRlciA9IDA7XG52YXIgdGhyZWFkSURDb3VudGVyID0gMDsgLy8gU2V0IG9mIGN1cnJlbnRseSB0cmFjZWQgaW50ZXJhY3Rpb25zLlxuLy8gSW50ZXJhY3Rpb25zIFwic3RhY2tcIuKAk1xuLy8gTWVhbmluZyB0aGF0IG5ld2x5IHRyYWNlZCBpbnRlcmFjdGlvbnMgYXJlIGFwcGVuZGVkIHRvIHRoZSBwcmV2aW91c2x5IGFjdGl2ZSBzZXQuXG4vLyBXaGVuIGFuIGludGVyYWN0aW9uIGdvZXMgb3V0IG9mIHNjb3BlLCB0aGUgcHJldmlvdXMgc2V0IChpZiBhbnkpIGlzIHJlc3RvcmVkLlxuXG5leHBvcnRzLl9faW50ZXJhY3Rpb25zUmVmID0gbnVsbDsgLy8gTGlzdGVuZXIocykgdG8gbm90aWZ5IHdoZW4gaW50ZXJhY3Rpb25zIGJlZ2luIGFuZCBlbmQuXG5cbmV4cG9ydHMuX19zdWJzY3JpYmVyUmVmID0gbnVsbDtcblxue1xuICBleHBvcnRzLl9faW50ZXJhY3Rpb25zUmVmID0ge1xuICAgIGN1cnJlbnQ6IG5ldyBTZXQoKVxuICB9O1xuICBleHBvcnRzLl9fc3Vic2NyaWJlclJlZiA9IHtcbiAgICBjdXJyZW50OiBudWxsXG4gIH07XG59XG5mdW5jdGlvbiB1bnN0YWJsZV9jbGVhcihjYWxsYmFjaykge1xuXG4gIHZhciBwcmV2SW50ZXJhY3Rpb25zID0gZXhwb3J0cy5fX2ludGVyYWN0aW9uc1JlZi5jdXJyZW50O1xuICBleHBvcnRzLl9faW50ZXJhY3Rpb25zUmVmLmN1cnJlbnQgPSBuZXcgU2V0KCk7XG5cbiAgdHJ5IHtcbiAgICByZXR1cm4gY2FsbGJhY2soKTtcbiAgfSBmaW5hbGx5IHtcbiAgICBleHBvcnRzLl9faW50ZXJhY3Rpb25zUmVmLmN1cnJlbnQgPSBwcmV2SW50ZXJhY3Rpb25zO1xuICB9XG59XG5mdW5jdGlvbiB1bnN0YWJsZV9nZXRDdXJyZW50KCkge1xuICB7XG4gICAgcmV0dXJuIGV4cG9ydHMuX19pbnRlcmFjdGlvbnNSZWYuY3VycmVudDtcbiAgfVxufVxuZnVuY3Rpb24gdW5zdGFibGVfZ2V0VGhyZWFkSUQoKSB7XG4gIHJldHVybiArK3RocmVhZElEQ291bnRlcjtcbn1cbmZ1bmN0aW9uIHVuc3RhYmxlX3RyYWNlKG5hbWUsIHRpbWVzdGFtcCwgY2FsbGJhY2spIHtcbiAgdmFyIHRocmVhZElEID0gYXJndW1lbnRzLmxlbmd0aCA+IDMgJiYgYXJndW1lbnRzWzNdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbM10gOiBERUZBVUxUX1RIUkVBRF9JRDtcblxuICB2YXIgaW50ZXJhY3Rpb24gPSB7XG4gICAgX19jb3VudDogMSxcbiAgICBpZDogaW50ZXJhY3Rpb25JRENvdW50ZXIrKyxcbiAgICBuYW1lOiBuYW1lLFxuICAgIHRpbWVzdGFtcDogdGltZXN0YW1wXG4gIH07XG4gIHZhciBwcmV2SW50ZXJhY3Rpb25zID0gZXhwb3J0cy5fX2ludGVyYWN0aW9uc1JlZi5jdXJyZW50OyAvLyBUcmFjZWQgaW50ZXJhY3Rpb25zIHNob3VsZCBzdGFjay9hY2N1bXVsYXRlLlxuICAvLyBUbyBkbyB0aGF0LCBjbG9uZSB0aGUgY3VycmVudCBpbnRlcmFjdGlvbnMuXG4gIC8vIFRoZSBwcmV2aW91cyBzZXQgd2lsbCBiZSByZXN0b3JlZCB1cG9uIGNvbXBsZXRpb24uXG5cbiAgdmFyIGludGVyYWN0aW9ucyA9IG5ldyBTZXQocHJldkludGVyYWN0aW9ucyk7XG4gIGludGVyYWN0aW9ucy5hZGQoaW50ZXJhY3Rpb24pO1xuICBleHBvcnRzLl9faW50ZXJhY3Rpb25zUmVmLmN1cnJlbnQgPSBpbnRlcmFjdGlvbnM7XG4gIHZhciBzdWJzY3JpYmVyID0gZXhwb3J0cy5fX3N1YnNjcmliZXJSZWYuY3VycmVudDtcbiAgdmFyIHJldHVyblZhbHVlO1xuXG4gIHRyeSB7XG4gICAgaWYgKHN1YnNjcmliZXIgIT09IG51bGwpIHtcbiAgICAgIHN1YnNjcmliZXIub25JbnRlcmFjdGlvblRyYWNlZChpbnRlcmFjdGlvbik7XG4gICAgfVxuICB9IGZpbmFsbHkge1xuICAgIHRyeSB7XG4gICAgICBpZiAoc3Vic2NyaWJlciAhPT0gbnVsbCkge1xuICAgICAgICBzdWJzY3JpYmVyLm9uV29ya1N0YXJ0ZWQoaW50ZXJhY3Rpb25zLCB0aHJlYWRJRCk7XG4gICAgICB9XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVyblZhbHVlID0gY2FsbGJhY2soKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGV4cG9ydHMuX19pbnRlcmFjdGlvbnNSZWYuY3VycmVudCA9IHByZXZJbnRlcmFjdGlvbnM7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBpZiAoc3Vic2NyaWJlciAhPT0gbnVsbCkge1xuICAgICAgICAgICAgc3Vic2NyaWJlci5vbldvcmtTdG9wcGVkKGludGVyYWN0aW9ucywgdGhyZWFkSUQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICBpbnRlcmFjdGlvbi5fX2NvdW50LS07IC8vIElmIG5vIGFzeW5jIHdvcmsgd2FzIHNjaGVkdWxlZCBmb3IgdGhpcyBpbnRlcmFjdGlvbixcbiAgICAgICAgICAvLyBOb3RpZnkgc3Vic2NyaWJlcnMgdGhhdCBpdCdzIGNvbXBsZXRlZC5cblxuICAgICAgICAgIGlmIChzdWJzY3JpYmVyICE9PSBudWxsICYmIGludGVyYWN0aW9uLl9fY291bnQgPT09IDApIHtcbiAgICAgICAgICAgIHN1YnNjcmliZXIub25JbnRlcmFjdGlvblNjaGVkdWxlZFdvcmtDb21wbGV0ZWQoaW50ZXJhY3Rpb24pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXR1cm5WYWx1ZTtcbn1cbmZ1bmN0aW9uIHVuc3RhYmxlX3dyYXAoY2FsbGJhY2spIHtcbiAgdmFyIHRocmVhZElEID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiBERUZBVUxUX1RIUkVBRF9JRDtcblxuICB2YXIgd3JhcHBlZEludGVyYWN0aW9ucyA9IGV4cG9ydHMuX19pbnRlcmFjdGlvbnNSZWYuY3VycmVudDtcbiAgdmFyIHN1YnNjcmliZXIgPSBleHBvcnRzLl9fc3Vic2NyaWJlclJlZi5jdXJyZW50O1xuXG4gIGlmIChzdWJzY3JpYmVyICE9PSBudWxsKSB7XG4gICAgc3Vic2NyaWJlci5vbldvcmtTY2hlZHVsZWQod3JhcHBlZEludGVyYWN0aW9ucywgdGhyZWFkSUQpO1xuICB9IC8vIFVwZGF0ZSB0aGUgcGVuZGluZyBhc3luYyB3b3JrIGNvdW50IGZvciB0aGUgY3VycmVudCBpbnRlcmFjdGlvbnMuXG4gIC8vIFVwZGF0ZSBhZnRlciBjYWxsaW5nIHN1YnNjcmliZXJzIGluIGNhc2Ugb2YgZXJyb3IuXG5cblxuICB3cmFwcGVkSW50ZXJhY3Rpb25zLmZvckVhY2goZnVuY3Rpb24gKGludGVyYWN0aW9uKSB7XG4gICAgaW50ZXJhY3Rpb24uX19jb3VudCsrO1xuICB9KTtcbiAgdmFyIGhhc1J1biA9IGZhbHNlO1xuXG4gIGZ1bmN0aW9uIHdyYXBwZWQoKSB7XG4gICAgdmFyIHByZXZJbnRlcmFjdGlvbnMgPSBleHBvcnRzLl9faW50ZXJhY3Rpb25zUmVmLmN1cnJlbnQ7XG4gICAgZXhwb3J0cy5fX2ludGVyYWN0aW9uc1JlZi5jdXJyZW50ID0gd3JhcHBlZEludGVyYWN0aW9ucztcbiAgICBzdWJzY3JpYmVyID0gZXhwb3J0cy5fX3N1YnNjcmliZXJSZWYuY3VycmVudDtcblxuICAgIHRyeSB7XG4gICAgICB2YXIgcmV0dXJuVmFsdWU7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGlmIChzdWJzY3JpYmVyICE9PSBudWxsKSB7XG4gICAgICAgICAgc3Vic2NyaWJlci5vbldvcmtTdGFydGVkKHdyYXBwZWRJbnRlcmFjdGlvbnMsIHRocmVhZElEKTtcbiAgICAgICAgfVxuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm5WYWx1ZSA9IGNhbGxiYWNrLmFwcGx5KHVuZGVmaW5lZCwgYXJndW1lbnRzKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICBleHBvcnRzLl9faW50ZXJhY3Rpb25zUmVmLmN1cnJlbnQgPSBwcmV2SW50ZXJhY3Rpb25zO1xuXG4gICAgICAgICAgaWYgKHN1YnNjcmliZXIgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHN1YnNjcmliZXIub25Xb3JrU3RvcHBlZCh3cmFwcGVkSW50ZXJhY3Rpb25zLCB0aHJlYWRJRCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXR1cm5WYWx1ZTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgaWYgKCFoYXNSdW4pIHtcbiAgICAgICAgLy8gV2Ugb25seSBleHBlY3QgYSB3cmFwcGVkIGZ1bmN0aW9uIHRvIGJlIGV4ZWN1dGVkIG9uY2UsXG4gICAgICAgIC8vIEJ1dCBpbiB0aGUgZXZlbnQgdGhhdCBpdCdzIGV4ZWN1dGVkIG1vcmUgdGhhbiBvbmNl4oCTXG4gICAgICAgIC8vIE9ubHkgZGVjcmVtZW50IHRoZSBvdXRzdGFuZGluZyBpbnRlcmFjdGlvbiBjb3VudHMgb25jZS5cbiAgICAgICAgaGFzUnVuID0gdHJ1ZTsgLy8gVXBkYXRlIHBlbmRpbmcgYXN5bmMgY291bnRzIGZvciBhbGwgd3JhcHBlZCBpbnRlcmFjdGlvbnMuXG4gICAgICAgIC8vIElmIHRoaXMgd2FzIHRoZSBsYXN0IHNjaGVkdWxlZCBhc3luYyB3b3JrIGZvciBhbnkgb2YgdGhlbSxcbiAgICAgICAgLy8gTWFyayB0aGVtIGFzIGNvbXBsZXRlZC5cblxuICAgICAgICB3cmFwcGVkSW50ZXJhY3Rpb25zLmZvckVhY2goZnVuY3Rpb24gKGludGVyYWN0aW9uKSB7XG4gICAgICAgICAgaW50ZXJhY3Rpb24uX19jb3VudC0tO1xuXG4gICAgICAgICAgaWYgKHN1YnNjcmliZXIgIT09IG51bGwgJiYgaW50ZXJhY3Rpb24uX19jb3VudCA9PT0gMCkge1xuICAgICAgICAgICAgc3Vic2NyaWJlci5vbkludGVyYWN0aW9uU2NoZWR1bGVkV29ya0NvbXBsZXRlZChpbnRlcmFjdGlvbik7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB3cmFwcGVkLmNhbmNlbCA9IGZ1bmN0aW9uIGNhbmNlbCgpIHtcbiAgICBzdWJzY3JpYmVyID0gZXhwb3J0cy5fX3N1YnNjcmliZXJSZWYuY3VycmVudDtcblxuICAgIHRyeSB7XG4gICAgICBpZiAoc3Vic2NyaWJlciAhPT0gbnVsbCkge1xuICAgICAgICBzdWJzY3JpYmVyLm9uV29ya0NhbmNlbGVkKHdyYXBwZWRJbnRlcmFjdGlvbnMsIHRocmVhZElEKTtcbiAgICAgIH1cbiAgICB9IGZpbmFsbHkge1xuICAgICAgLy8gVXBkYXRlIHBlbmRpbmcgYXN5bmMgY291bnRzIGZvciBhbGwgd3JhcHBlZCBpbnRlcmFjdGlvbnMuXG4gICAgICAvLyBJZiB0aGlzIHdhcyB0aGUgbGFzdCBzY2hlZHVsZWQgYXN5bmMgd29yayBmb3IgYW55IG9mIHRoZW0sXG4gICAgICAvLyBNYXJrIHRoZW0gYXMgY29tcGxldGVkLlxuICAgICAgd3JhcHBlZEludGVyYWN0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uIChpbnRlcmFjdGlvbikge1xuICAgICAgICBpbnRlcmFjdGlvbi5fX2NvdW50LS07XG5cbiAgICAgICAgaWYgKHN1YnNjcmliZXIgJiYgaW50ZXJhY3Rpb24uX19jb3VudCA9PT0gMCkge1xuICAgICAgICAgIHN1YnNjcmliZXIub25JbnRlcmFjdGlvblNjaGVkdWxlZFdvcmtDb21wbGV0ZWQoaW50ZXJhY3Rpb24pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIHdyYXBwZWQ7XG59XG5cbnZhciBzdWJzY3JpYmVycyA9IG51bGw7XG5cbntcbiAgc3Vic2NyaWJlcnMgPSBuZXcgU2V0KCk7XG59XG5cbmZ1bmN0aW9uIHVuc3RhYmxlX3N1YnNjcmliZShzdWJzY3JpYmVyKSB7XG4gIHtcbiAgICBzdWJzY3JpYmVycy5hZGQoc3Vic2NyaWJlcik7XG5cbiAgICBpZiAoc3Vic2NyaWJlcnMuc2l6ZSA9PT0gMSkge1xuICAgICAgZXhwb3J0cy5fX3N1YnNjcmliZXJSZWYuY3VycmVudCA9IHtcbiAgICAgICAgb25JbnRlcmFjdGlvblNjaGVkdWxlZFdvcmtDb21wbGV0ZWQ6IG9uSW50ZXJhY3Rpb25TY2hlZHVsZWRXb3JrQ29tcGxldGVkLFxuICAgICAgICBvbkludGVyYWN0aW9uVHJhY2VkOiBvbkludGVyYWN0aW9uVHJhY2VkLFxuICAgICAgICBvbldvcmtDYW5jZWxlZDogb25Xb3JrQ2FuY2VsZWQsXG4gICAgICAgIG9uV29ya1NjaGVkdWxlZDogb25Xb3JrU2NoZWR1bGVkLFxuICAgICAgICBvbldvcmtTdGFydGVkOiBvbldvcmtTdGFydGVkLFxuICAgICAgICBvbldvcmtTdG9wcGVkOiBvbldvcmtTdG9wcGVkXG4gICAgICB9O1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gdW5zdGFibGVfdW5zdWJzY3JpYmUoc3Vic2NyaWJlcikge1xuICB7XG4gICAgc3Vic2NyaWJlcnMuZGVsZXRlKHN1YnNjcmliZXIpO1xuXG4gICAgaWYgKHN1YnNjcmliZXJzLnNpemUgPT09IDApIHtcbiAgICAgIGV4cG9ydHMuX19zdWJzY3JpYmVyUmVmLmN1cnJlbnQgPSBudWxsO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBvbkludGVyYWN0aW9uVHJhY2VkKGludGVyYWN0aW9uKSB7XG4gIHZhciBkaWRDYXRjaEVycm9yID0gZmFsc2U7XG4gIHZhciBjYXVnaHRFcnJvciA9IG51bGw7XG4gIHN1YnNjcmliZXJzLmZvckVhY2goZnVuY3Rpb24gKHN1YnNjcmliZXIpIHtcbiAgICB0cnkge1xuICAgICAgc3Vic2NyaWJlci5vbkludGVyYWN0aW9uVHJhY2VkKGludGVyYWN0aW9uKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaWYgKCFkaWRDYXRjaEVycm9yKSB7XG4gICAgICAgIGRpZENhdGNoRXJyb3IgPSB0cnVlO1xuICAgICAgICBjYXVnaHRFcnJvciA9IGVycm9yO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgaWYgKGRpZENhdGNoRXJyb3IpIHtcbiAgICB0aHJvdyBjYXVnaHRFcnJvcjtcbiAgfVxufVxuXG5mdW5jdGlvbiBvbkludGVyYWN0aW9uU2NoZWR1bGVkV29ya0NvbXBsZXRlZChpbnRlcmFjdGlvbikge1xuICB2YXIgZGlkQ2F0Y2hFcnJvciA9IGZhbHNlO1xuICB2YXIgY2F1Z2h0RXJyb3IgPSBudWxsO1xuICBzdWJzY3JpYmVycy5mb3JFYWNoKGZ1bmN0aW9uIChzdWJzY3JpYmVyKSB7XG4gICAgdHJ5IHtcbiAgICAgIHN1YnNjcmliZXIub25JbnRlcmFjdGlvblNjaGVkdWxlZFdvcmtDb21wbGV0ZWQoaW50ZXJhY3Rpb24pO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAoIWRpZENhdGNoRXJyb3IpIHtcbiAgICAgICAgZGlkQ2F0Y2hFcnJvciA9IHRydWU7XG4gICAgICAgIGNhdWdodEVycm9yID0gZXJyb3I7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICBpZiAoZGlkQ2F0Y2hFcnJvcikge1xuICAgIHRocm93IGNhdWdodEVycm9yO1xuICB9XG59XG5cbmZ1bmN0aW9uIG9uV29ya1NjaGVkdWxlZChpbnRlcmFjdGlvbnMsIHRocmVhZElEKSB7XG4gIHZhciBkaWRDYXRjaEVycm9yID0gZmFsc2U7XG4gIHZhciBjYXVnaHRFcnJvciA9IG51bGw7XG4gIHN1YnNjcmliZXJzLmZvckVhY2goZnVuY3Rpb24gKHN1YnNjcmliZXIpIHtcbiAgICB0cnkge1xuICAgICAgc3Vic2NyaWJlci5vbldvcmtTY2hlZHVsZWQoaW50ZXJhY3Rpb25zLCB0aHJlYWRJRCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmICghZGlkQ2F0Y2hFcnJvcikge1xuICAgICAgICBkaWRDYXRjaEVycm9yID0gdHJ1ZTtcbiAgICAgICAgY2F1Z2h0RXJyb3IgPSBlcnJvcjtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIGlmIChkaWRDYXRjaEVycm9yKSB7XG4gICAgdGhyb3cgY2F1Z2h0RXJyb3I7XG4gIH1cbn1cblxuZnVuY3Rpb24gb25Xb3JrU3RhcnRlZChpbnRlcmFjdGlvbnMsIHRocmVhZElEKSB7XG4gIHZhciBkaWRDYXRjaEVycm9yID0gZmFsc2U7XG4gIHZhciBjYXVnaHRFcnJvciA9IG51bGw7XG4gIHN1YnNjcmliZXJzLmZvckVhY2goZnVuY3Rpb24gKHN1YnNjcmliZXIpIHtcbiAgICB0cnkge1xuICAgICAgc3Vic2NyaWJlci5vbldvcmtTdGFydGVkKGludGVyYWN0aW9ucywgdGhyZWFkSUQpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAoIWRpZENhdGNoRXJyb3IpIHtcbiAgICAgICAgZGlkQ2F0Y2hFcnJvciA9IHRydWU7XG4gICAgICAgIGNhdWdodEVycm9yID0gZXJyb3I7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICBpZiAoZGlkQ2F0Y2hFcnJvcikge1xuICAgIHRocm93IGNhdWdodEVycm9yO1xuICB9XG59XG5cbmZ1bmN0aW9uIG9uV29ya1N0b3BwZWQoaW50ZXJhY3Rpb25zLCB0aHJlYWRJRCkge1xuICB2YXIgZGlkQ2F0Y2hFcnJvciA9IGZhbHNlO1xuICB2YXIgY2F1Z2h0RXJyb3IgPSBudWxsO1xuICBzdWJzY3JpYmVycy5mb3JFYWNoKGZ1bmN0aW9uIChzdWJzY3JpYmVyKSB7XG4gICAgdHJ5IHtcbiAgICAgIHN1YnNjcmliZXIub25Xb3JrU3RvcHBlZChpbnRlcmFjdGlvbnMsIHRocmVhZElEKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaWYgKCFkaWRDYXRjaEVycm9yKSB7XG4gICAgICAgIGRpZENhdGNoRXJyb3IgPSB0cnVlO1xuICAgICAgICBjYXVnaHRFcnJvciA9IGVycm9yO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgaWYgKGRpZENhdGNoRXJyb3IpIHtcbiAgICB0aHJvdyBjYXVnaHRFcnJvcjtcbiAgfVxufVxuXG5mdW5jdGlvbiBvbldvcmtDYW5jZWxlZChpbnRlcmFjdGlvbnMsIHRocmVhZElEKSB7XG4gIHZhciBkaWRDYXRjaEVycm9yID0gZmFsc2U7XG4gIHZhciBjYXVnaHRFcnJvciA9IG51bGw7XG4gIHN1YnNjcmliZXJzLmZvckVhY2goZnVuY3Rpb24gKHN1YnNjcmliZXIpIHtcbiAgICB0cnkge1xuICAgICAgc3Vic2NyaWJlci5vbldvcmtDYW5jZWxlZChpbnRlcmFjdGlvbnMsIHRocmVhZElEKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaWYgKCFkaWRDYXRjaEVycm9yKSB7XG4gICAgICAgIGRpZENhdGNoRXJyb3IgPSB0cnVlO1xuICAgICAgICBjYXVnaHRFcnJvciA9IGVycm9yO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgaWYgKGRpZENhdGNoRXJyb3IpIHtcbiAgICB0aHJvdyBjYXVnaHRFcnJvcjtcbiAgfVxufVxuXG5leHBvcnRzLnVuc3RhYmxlX2NsZWFyID0gdW5zdGFibGVfY2xlYXI7XG5leHBvcnRzLnVuc3RhYmxlX2dldEN1cnJlbnQgPSB1bnN0YWJsZV9nZXRDdXJyZW50O1xuZXhwb3J0cy51bnN0YWJsZV9nZXRUaHJlYWRJRCA9IHVuc3RhYmxlX2dldFRocmVhZElEO1xuZXhwb3J0cy51bnN0YWJsZV9zdWJzY3JpYmUgPSB1bnN0YWJsZV9zdWJzY3JpYmU7XG5leHBvcnRzLnVuc3RhYmxlX3RyYWNlID0gdW5zdGFibGVfdHJhY2U7XG5leHBvcnRzLnVuc3RhYmxlX3Vuc3Vic2NyaWJlID0gdW5zdGFibGVfdW5zdWJzY3JpYmU7XG5leHBvcnRzLnVuc3RhYmxlX3dyYXAgPSB1bnN0YWJsZV93cmFwO1xuICB9KSgpO1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/scheduler/cjs/scheduler-tracing.development.js\n"); + +/***/ }), + +/***/ "./node_modules/scheduler/cjs/scheduler.development.js": +/*!*************************************************************!*\ + !*** ./node_modules/scheduler/cjs/scheduler.development.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("/** @license React v0.20.2\n * scheduler.development.js\n *\n * Copyright (c) Facebook, Inc. and its 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\n\n\nif (true) {\n (function() {\n'use strict';\n\nvar enableSchedulerDebugging = false;\nvar enableProfiling = false;\n\nvar requestHostCallback;\nvar requestHostTimeout;\nvar cancelHostTimeout;\nvar requestPaint;\nvar hasPerformanceNow = typeof performance === 'object' && typeof performance.now === 'function';\n\nif (hasPerformanceNow) {\n var localPerformance = performance;\n\n exports.unstable_now = function () {\n return localPerformance.now();\n };\n} else {\n var localDate = Date;\n var initialTime = localDate.now();\n\n exports.unstable_now = function () {\n return localDate.now() - initialTime;\n };\n}\n\nif ( // If Scheduler runs in a non-DOM environment, it falls back to a naive\n// implementation using setTimeout.\ntypeof window === 'undefined' || // Check if MessageChannel is supported, too.\ntypeof MessageChannel !== 'function') {\n // If this accidentally gets imported in a non-browser environment, e.g. JavaScriptCore,\n // fallback to a naive implementation.\n var _callback = null;\n var _timeoutID = null;\n\n var _flushCallback = function () {\n if (_callback !== null) {\n try {\n var currentTime = exports.unstable_now();\n var hasRemainingTime = true;\n\n _callback(hasRemainingTime, currentTime);\n\n _callback = null;\n } catch (e) {\n setTimeout(_flushCallback, 0);\n throw e;\n }\n }\n };\n\n requestHostCallback = function (cb) {\n if (_callback !== null) {\n // Protect against re-entrancy.\n setTimeout(requestHostCallback, 0, cb);\n } else {\n _callback = cb;\n setTimeout(_flushCallback, 0);\n }\n };\n\n requestHostTimeout = function (cb, ms) {\n _timeoutID = setTimeout(cb, ms);\n };\n\n cancelHostTimeout = function () {\n clearTimeout(_timeoutID);\n };\n\n exports.unstable_shouldYield = function () {\n return false;\n };\n\n requestPaint = exports.unstable_forceFrameRate = function () {};\n} else {\n // Capture local references to native APIs, in case a polyfill overrides them.\n var _setTimeout = window.setTimeout;\n var _clearTimeout = window.clearTimeout;\n\n if (typeof console !== 'undefined') {\n // TODO: Scheduler no longer requires these methods to be polyfilled. But\n // maybe we want to continue warning if they don't exist, to preserve the\n // option to rely on it in the future?\n var requestAnimationFrame = window.requestAnimationFrame;\n var cancelAnimationFrame = window.cancelAnimationFrame;\n\n if (typeof requestAnimationFrame !== 'function') {\n // Using console['error'] to evade Babel and ESLint\n console['error'](\"This browser doesn't support requestAnimationFrame. \" + 'Make sure that you load a ' + 'polyfill in older browsers. https://reactjs.org/link/react-polyfills');\n }\n\n if (typeof cancelAnimationFrame !== 'function') {\n // Using console['error'] to evade Babel and ESLint\n console['error'](\"This browser doesn't support cancelAnimationFrame. \" + 'Make sure that you load a ' + 'polyfill in older browsers. https://reactjs.org/link/react-polyfills');\n }\n }\n\n var isMessageLoopRunning = false;\n var scheduledHostCallback = null;\n var taskTimeoutID = -1; // Scheduler periodically yields in case there is other work on the main\n // thread, like user events. By default, it yields multiple times per frame.\n // It does not attempt to align with frame boundaries, since most tasks don't\n // need to be frame aligned; for those that do, use requestAnimationFrame.\n\n var yieldInterval = 5;\n var deadline = 0; // TODO: Make this configurable\n\n {\n // `isInputPending` is not available. Since we have no way of knowing if\n // there's pending input, always yield at the end of the frame.\n exports.unstable_shouldYield = function () {\n return exports.unstable_now() >= deadline;\n }; // Since we yield every frame regardless, `requestPaint` has no effect.\n\n\n requestPaint = function () {};\n }\n\n exports.unstable_forceFrameRate = function (fps) {\n if (fps < 0 || fps > 125) {\n // Using console['error'] to evade Babel and ESLint\n console['error']('forceFrameRate takes a positive int between 0 and 125, ' + 'forcing frame rates higher than 125 fps is not supported');\n return;\n }\n\n if (fps > 0) {\n yieldInterval = Math.floor(1000 / fps);\n } else {\n // reset the framerate\n yieldInterval = 5;\n }\n };\n\n var performWorkUntilDeadline = function () {\n if (scheduledHostCallback !== null) {\n var currentTime = exports.unstable_now(); // Yield after `yieldInterval` ms, regardless of where we are in the vsync\n // cycle. This means there's always time remaining at the beginning of\n // the message event.\n\n deadline = currentTime + yieldInterval;\n var hasTimeRemaining = true;\n\n try {\n var hasMoreWork = scheduledHostCallback(hasTimeRemaining, currentTime);\n\n if (!hasMoreWork) {\n isMessageLoopRunning = false;\n scheduledHostCallback = null;\n } else {\n // If there's more work, schedule the next message event at the end\n // of the preceding one.\n port.postMessage(null);\n }\n } catch (error) {\n // If a scheduler task throws, exit the current browser task so the\n // error can be observed.\n port.postMessage(null);\n throw error;\n }\n } else {\n isMessageLoopRunning = false;\n } // Yielding to the browser will give it a chance to paint, so we can\n };\n\n var channel = new MessageChannel();\n var port = channel.port2;\n channel.port1.onmessage = performWorkUntilDeadline;\n\n requestHostCallback = function (callback) {\n scheduledHostCallback = callback;\n\n if (!isMessageLoopRunning) {\n isMessageLoopRunning = true;\n port.postMessage(null);\n }\n };\n\n requestHostTimeout = function (callback, ms) {\n taskTimeoutID = _setTimeout(function () {\n callback(exports.unstable_now());\n }, ms);\n };\n\n cancelHostTimeout = function () {\n _clearTimeout(taskTimeoutID);\n\n taskTimeoutID = -1;\n };\n}\n\nfunction push(heap, node) {\n var index = heap.length;\n heap.push(node);\n siftUp(heap, node, index);\n}\nfunction peek(heap) {\n var first = heap[0];\n return first === undefined ? null : first;\n}\nfunction pop(heap) {\n var first = heap[0];\n\n if (first !== undefined) {\n var last = heap.pop();\n\n if (last !== first) {\n heap[0] = last;\n siftDown(heap, last, 0);\n }\n\n return first;\n } else {\n return null;\n }\n}\n\nfunction siftUp(heap, node, i) {\n var index = i;\n\n while (true) {\n var parentIndex = index - 1 >>> 1;\n var parent = heap[parentIndex];\n\n if (parent !== undefined && compare(parent, node) > 0) {\n // The parent is larger. Swap positions.\n heap[parentIndex] = node;\n heap[index] = parent;\n index = parentIndex;\n } else {\n // The parent is smaller. Exit.\n return;\n }\n }\n}\n\nfunction siftDown(heap, node, i) {\n var index = i;\n var length = heap.length;\n\n while (index < length) {\n var leftIndex = (index + 1) * 2 - 1;\n var left = heap[leftIndex];\n var rightIndex = leftIndex + 1;\n var right = heap[rightIndex]; // If the left or right node is smaller, swap with the smaller of those.\n\n if (left !== undefined && compare(left, node) < 0) {\n if (right !== undefined && compare(right, left) < 0) {\n heap[index] = right;\n heap[rightIndex] = node;\n index = rightIndex;\n } else {\n heap[index] = left;\n heap[leftIndex] = node;\n index = leftIndex;\n }\n } else if (right !== undefined && compare(right, node) < 0) {\n heap[index] = right;\n heap[rightIndex] = node;\n index = rightIndex;\n } else {\n // Neither child is smaller. Exit.\n return;\n }\n }\n}\n\nfunction compare(a, b) {\n // Compare sort index first, then task id.\n var diff = a.sortIndex - b.sortIndex;\n return diff !== 0 ? diff : a.id - b.id;\n}\n\n// TODO: Use symbols?\nvar ImmediatePriority = 1;\nvar UserBlockingPriority = 2;\nvar NormalPriority = 3;\nvar LowPriority = 4;\nvar IdlePriority = 5;\n\nfunction markTaskErrored(task, ms) {\n}\n\n/* eslint-disable no-var */\n// Math.pow(2, 30) - 1\n// 0b111111111111111111111111111111\n\nvar maxSigned31BitInt = 1073741823; // Times out immediately\n\nvar IMMEDIATE_PRIORITY_TIMEOUT = -1; // Eventually times out\n\nvar USER_BLOCKING_PRIORITY_TIMEOUT = 250;\nvar NORMAL_PRIORITY_TIMEOUT = 5000;\nvar LOW_PRIORITY_TIMEOUT = 10000; // Never times out\n\nvar IDLE_PRIORITY_TIMEOUT = maxSigned31BitInt; // Tasks are stored on a min heap\n\nvar taskQueue = [];\nvar timerQueue = []; // Incrementing id counter. Used to maintain insertion order.\n\nvar taskIdCounter = 1; // Pausing the scheduler is useful for debugging.\nvar currentTask = null;\nvar currentPriorityLevel = NormalPriority; // This is set while performing work, to prevent re-entrancy.\n\nvar isPerformingWork = false;\nvar isHostCallbackScheduled = false;\nvar isHostTimeoutScheduled = false;\n\nfunction advanceTimers(currentTime) {\n // Check for tasks that are no longer delayed and add them to the queue.\n var timer = peek(timerQueue);\n\n while (timer !== null) {\n if (timer.callback === null) {\n // Timer was cancelled.\n pop(timerQueue);\n } else if (timer.startTime <= currentTime) {\n // Timer fired. Transfer to the task queue.\n pop(timerQueue);\n timer.sortIndex = timer.expirationTime;\n push(taskQueue, timer);\n } else {\n // Remaining timers are pending.\n return;\n }\n\n timer = peek(timerQueue);\n }\n}\n\nfunction handleTimeout(currentTime) {\n isHostTimeoutScheduled = false;\n advanceTimers(currentTime);\n\n if (!isHostCallbackScheduled) {\n if (peek(taskQueue) !== null) {\n isHostCallbackScheduled = true;\n requestHostCallback(flushWork);\n } else {\n var firstTimer = peek(timerQueue);\n\n if (firstTimer !== null) {\n requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n }\n }\n }\n}\n\nfunction flushWork(hasTimeRemaining, initialTime) {\n\n\n isHostCallbackScheduled = false;\n\n if (isHostTimeoutScheduled) {\n // We scheduled a timeout but it's no longer needed. Cancel it.\n isHostTimeoutScheduled = false;\n cancelHostTimeout();\n }\n\n isPerformingWork = true;\n var previousPriorityLevel = currentPriorityLevel;\n\n try {\n if (enableProfiling) {\n try {\n return workLoop(hasTimeRemaining, initialTime);\n } catch (error) {\n if (currentTask !== null) {\n var currentTime = exports.unstable_now();\n markTaskErrored(currentTask, currentTime);\n currentTask.isQueued = false;\n }\n\n throw error;\n }\n } else {\n // No catch in prod code path.\n return workLoop(hasTimeRemaining, initialTime);\n }\n } finally {\n currentTask = null;\n currentPriorityLevel = previousPriorityLevel;\n isPerformingWork = false;\n }\n}\n\nfunction workLoop(hasTimeRemaining, initialTime) {\n var currentTime = initialTime;\n advanceTimers(currentTime);\n currentTask = peek(taskQueue);\n\n while (currentTask !== null && !(enableSchedulerDebugging )) {\n if (currentTask.expirationTime > currentTime && (!hasTimeRemaining || exports.unstable_shouldYield())) {\n // This currentTask hasn't expired, and we've reached the deadline.\n break;\n }\n\n var callback = currentTask.callback;\n\n if (typeof callback === 'function') {\n currentTask.callback = null;\n currentPriorityLevel = currentTask.priorityLevel;\n var didUserCallbackTimeout = currentTask.expirationTime <= currentTime;\n\n var continuationCallback = callback(didUserCallbackTimeout);\n currentTime = exports.unstable_now();\n\n if (typeof continuationCallback === 'function') {\n currentTask.callback = continuationCallback;\n } else {\n\n if (currentTask === peek(taskQueue)) {\n pop(taskQueue);\n }\n }\n\n advanceTimers(currentTime);\n } else {\n pop(taskQueue);\n }\n\n currentTask = peek(taskQueue);\n } // Return whether there's additional work\n\n\n if (currentTask !== null) {\n return true;\n } else {\n var firstTimer = peek(timerQueue);\n\n if (firstTimer !== null) {\n requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n }\n\n return false;\n }\n}\n\nfunction unstable_runWithPriority(priorityLevel, eventHandler) {\n switch (priorityLevel) {\n case ImmediatePriority:\n case UserBlockingPriority:\n case NormalPriority:\n case LowPriority:\n case IdlePriority:\n break;\n\n default:\n priorityLevel = NormalPriority;\n }\n\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n}\n\nfunction unstable_next(eventHandler) {\n var priorityLevel;\n\n switch (currentPriorityLevel) {\n case ImmediatePriority:\n case UserBlockingPriority:\n case NormalPriority:\n // Shift down to normal priority\n priorityLevel = NormalPriority;\n break;\n\n default:\n // Anything lower than normal priority should remain at the current level.\n priorityLevel = currentPriorityLevel;\n break;\n }\n\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n}\n\nfunction unstable_wrapCallback(callback) {\n var parentPriorityLevel = currentPriorityLevel;\n return function () {\n // This is a fork of runWithPriority, inlined for performance.\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = parentPriorityLevel;\n\n try {\n return callback.apply(this, arguments);\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n };\n}\n\nfunction unstable_scheduleCallback(priorityLevel, callback, options) {\n var currentTime = exports.unstable_now();\n var startTime;\n\n if (typeof options === 'object' && options !== null) {\n var delay = options.delay;\n\n if (typeof delay === 'number' && delay > 0) {\n startTime = currentTime + delay;\n } else {\n startTime = currentTime;\n }\n } else {\n startTime = currentTime;\n }\n\n var timeout;\n\n switch (priorityLevel) {\n case ImmediatePriority:\n timeout = IMMEDIATE_PRIORITY_TIMEOUT;\n break;\n\n case UserBlockingPriority:\n timeout = USER_BLOCKING_PRIORITY_TIMEOUT;\n break;\n\n case IdlePriority:\n timeout = IDLE_PRIORITY_TIMEOUT;\n break;\n\n case LowPriority:\n timeout = LOW_PRIORITY_TIMEOUT;\n break;\n\n case NormalPriority:\n default:\n timeout = NORMAL_PRIORITY_TIMEOUT;\n break;\n }\n\n var expirationTime = startTime + timeout;\n var newTask = {\n id: taskIdCounter++,\n callback: callback,\n priorityLevel: priorityLevel,\n startTime: startTime,\n expirationTime: expirationTime,\n sortIndex: -1\n };\n\n if (startTime > currentTime) {\n // This is a delayed task.\n newTask.sortIndex = startTime;\n push(timerQueue, newTask);\n\n if (peek(taskQueue) === null && newTask === peek(timerQueue)) {\n // All tasks are delayed, and this is the task with the earliest delay.\n if (isHostTimeoutScheduled) {\n // Cancel an existing timeout.\n cancelHostTimeout();\n } else {\n isHostTimeoutScheduled = true;\n } // Schedule a timeout.\n\n\n requestHostTimeout(handleTimeout, startTime - currentTime);\n }\n } else {\n newTask.sortIndex = expirationTime;\n push(taskQueue, newTask);\n // wait until the next time we yield.\n\n\n if (!isHostCallbackScheduled && !isPerformingWork) {\n isHostCallbackScheduled = true;\n requestHostCallback(flushWork);\n }\n }\n\n return newTask;\n}\n\nfunction unstable_pauseExecution() {\n}\n\nfunction unstable_continueExecution() {\n\n if (!isHostCallbackScheduled && !isPerformingWork) {\n isHostCallbackScheduled = true;\n requestHostCallback(flushWork);\n }\n}\n\nfunction unstable_getFirstCallbackNode() {\n return peek(taskQueue);\n}\n\nfunction unstable_cancelCallback(task) {\n // remove from the queue because you can't remove arbitrary nodes from an\n // array based heap, only the first one.)\n\n\n task.callback = null;\n}\n\nfunction unstable_getCurrentPriorityLevel() {\n return currentPriorityLevel;\n}\n\nvar unstable_requestPaint = requestPaint;\nvar unstable_Profiling = null;\n\nexports.unstable_IdlePriority = IdlePriority;\nexports.unstable_ImmediatePriority = ImmediatePriority;\nexports.unstable_LowPriority = LowPriority;\nexports.unstable_NormalPriority = NormalPriority;\nexports.unstable_Profiling = unstable_Profiling;\nexports.unstable_UserBlockingPriority = UserBlockingPriority;\nexports.unstable_cancelCallback = unstable_cancelCallback;\nexports.unstable_continueExecution = unstable_continueExecution;\nexports.unstable_getCurrentPriorityLevel = unstable_getCurrentPriorityLevel;\nexports.unstable_getFirstCallbackNode = unstable_getFirstCallbackNode;\nexports.unstable_next = unstable_next;\nexports.unstable_pauseExecution = unstable_pauseExecution;\nexports.unstable_requestPaint = unstable_requestPaint;\nexports.unstable_runWithPriority = unstable_runWithPriority;\nexports.unstable_scheduleCallback = unstable_scheduleCallback;\nexports.unstable_wrapCallback = unstable_wrapCallback;\n })();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc2NoZWR1bGVyL2Nqcy9zY2hlZHVsZXIuZGV2ZWxvcG1lbnQuanMuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFYTs7QUFFYixJQUFJLElBQXFDO0FBQ3pDO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEsRUFBRSxvQkFBb0I7QUFDdEI7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBOztBQUVBLEVBQUUsb0JBQW9CO0FBQ3RCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLEVBQUUsNEJBQTRCO0FBQzlCO0FBQ0E7O0FBRUEsaUJBQWlCLCtCQUErQjtBQUNoRCxFQUFFO0FBQ0Y7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSwwQkFBMEI7QUFDMUI7QUFDQTtBQUNBLCtCQUErQjs7QUFFL0I7QUFDQSxvQkFBb0I7O0FBRXBCO0FBQ0E7QUFDQTtBQUNBLElBQUksNEJBQTRCO0FBQ2hDO0FBQ0EsT0FBTzs7O0FBR1A7QUFDQTs7QUFFQSxFQUFFLCtCQUErQjtBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGdEQUFnRDtBQUNoRDtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBLE1BQU07QUFDTjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0M7O0FBRWxDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsb0NBQW9DOztBQUVwQyxxQ0FBcUM7O0FBRXJDO0FBQ0E7QUFDQSxrQ0FBa0M7O0FBRWxDLCtDQUErQzs7QUFFL0M7QUFDQSxxQkFBcUI7O0FBRXJCLHVCQUF1QjtBQUN2QjtBQUNBLDJDQUEyQzs7QUFFM0M7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7OztBQUdBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFROztBQUVSO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7QUFDQSxJQUFJOzs7QUFHSjtBQUNBO0FBQ0EsSUFBSTtBQUNKOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0EsUUFBUTs7O0FBR1I7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSw2QkFBNkI7QUFDN0Isa0NBQWtDO0FBQ2xDLDRCQUE0QjtBQUM1QiwrQkFBK0I7QUFDL0IsMEJBQTBCO0FBQzFCLHFDQUFxQztBQUNyQywrQkFBK0I7QUFDL0Isa0NBQWtDO0FBQ2xDLHdDQUF3QztBQUN4QyxxQ0FBcUM7QUFDckMscUJBQXFCO0FBQ3JCLCtCQUErQjtBQUMvQiw2QkFBNkI7QUFDN0IsZ0NBQWdDO0FBQ2hDLGlDQUFpQztBQUNqQyw2QkFBNkI7QUFDN0IsR0FBRztBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zY2hlZHVsZXIvY2pzL3NjaGVkdWxlci5kZXZlbG9wbWVudC5qcz9iY2QyIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBAbGljZW5zZSBSZWFjdCB2MC4yMC4yXG4gKiBzY2hlZHVsZXIuZGV2ZWxvcG1lbnQuanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIEZhY2Vib29rLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgKGZ1bmN0aW9uKCkge1xuJ3VzZSBzdHJpY3QnO1xuXG52YXIgZW5hYmxlU2NoZWR1bGVyRGVidWdnaW5nID0gZmFsc2U7XG52YXIgZW5hYmxlUHJvZmlsaW5nID0gZmFsc2U7XG5cbnZhciByZXF1ZXN0SG9zdENhbGxiYWNrO1xudmFyIHJlcXVlc3RIb3N0VGltZW91dDtcbnZhciBjYW5jZWxIb3N0VGltZW91dDtcbnZhciByZXF1ZXN0UGFpbnQ7XG52YXIgaGFzUGVyZm9ybWFuY2VOb3cgPSB0eXBlb2YgcGVyZm9ybWFuY2UgPT09ICdvYmplY3QnICYmIHR5cGVvZiBwZXJmb3JtYW5jZS5ub3cgPT09ICdmdW5jdGlvbic7XG5cbmlmIChoYXNQZXJmb3JtYW5jZU5vdykge1xuICB2YXIgbG9jYWxQZXJmb3JtYW5jZSA9IHBlcmZvcm1hbmNlO1xuXG4gIGV4cG9ydHMudW5zdGFibGVfbm93ID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBsb2NhbFBlcmZvcm1hbmNlLm5vdygpO1xuICB9O1xufSBlbHNlIHtcbiAgdmFyIGxvY2FsRGF0ZSA9IERhdGU7XG4gIHZhciBpbml0aWFsVGltZSA9IGxvY2FsRGF0ZS5ub3coKTtcblxuICBleHBvcnRzLnVuc3RhYmxlX25vdyA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gbG9jYWxEYXRlLm5vdygpIC0gaW5pdGlhbFRpbWU7XG4gIH07XG59XG5cbmlmICggLy8gSWYgU2NoZWR1bGVyIHJ1bnMgaW4gYSBub24tRE9NIGVudmlyb25tZW50LCBpdCBmYWxscyBiYWNrIHRvIGEgbmFpdmVcbi8vIGltcGxlbWVudGF0aW9uIHVzaW5nIHNldFRpbWVvdXQuXG50eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyB8fCAvLyBDaGVjayBpZiBNZXNzYWdlQ2hhbm5lbCBpcyBzdXBwb3J0ZWQsIHRvby5cbnR5cGVvZiBNZXNzYWdlQ2hhbm5lbCAhPT0gJ2Z1bmN0aW9uJykge1xuICAvLyBJZiB0aGlzIGFjY2lkZW50YWxseSBnZXRzIGltcG9ydGVkIGluIGEgbm9uLWJyb3dzZXIgZW52aXJvbm1lbnQsIGUuZy4gSmF2YVNjcmlwdENvcmUsXG4gIC8vIGZhbGxiYWNrIHRvIGEgbmFpdmUgaW1wbGVtZW50YXRpb24uXG4gIHZhciBfY2FsbGJhY2sgPSBudWxsO1xuICB2YXIgX3RpbWVvdXRJRCA9IG51bGw7XG5cbiAgdmFyIF9mbHVzaENhbGxiYWNrID0gZnVuY3Rpb24gKCkge1xuICAgIGlmIChfY2FsbGJhY2sgIT09IG51bGwpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHZhciBjdXJyZW50VGltZSA9IGV4cG9ydHMudW5zdGFibGVfbm93KCk7XG4gICAgICAgIHZhciBoYXNSZW1haW5pbmdUaW1lID0gdHJ1ZTtcblxuICAgICAgICBfY2FsbGJhY2soaGFzUmVtYWluaW5nVGltZSwgY3VycmVudFRpbWUpO1xuXG4gICAgICAgIF9jYWxsYmFjayA9IG51bGw7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHNldFRpbWVvdXQoX2ZsdXNoQ2FsbGJhY2ssIDApO1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICByZXF1ZXN0SG9zdENhbGxiYWNrID0gZnVuY3Rpb24gKGNiKSB7XG4gICAgaWYgKF9jYWxsYmFjayAhPT0gbnVsbCkge1xuICAgICAgLy8gUHJvdGVjdCBhZ2FpbnN0IHJlLWVudHJhbmN5LlxuICAgICAgc2V0VGltZW91dChyZXF1ZXN0SG9zdENhbGxiYWNrLCAwLCBjYik7XG4gICAgfSBlbHNlIHtcbiAgICAgIF9jYWxsYmFjayA9IGNiO1xuICAgICAgc2V0VGltZW91dChfZmx1c2hDYWxsYmFjaywgMCk7XG4gICAgfVxuICB9O1xuXG4gIHJlcXVlc3RIb3N0VGltZW91dCA9IGZ1bmN0aW9uIChjYiwgbXMpIHtcbiAgICBfdGltZW91dElEID0gc2V0VGltZW91dChjYiwgbXMpO1xuICB9O1xuXG4gIGNhbmNlbEhvc3RUaW1lb3V0ID0gZnVuY3Rpb24gKCkge1xuICAgIGNsZWFyVGltZW91dChfdGltZW91dElEKTtcbiAgfTtcblxuICBleHBvcnRzLnVuc3RhYmxlX3Nob3VsZFlpZWxkID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfTtcblxuICByZXF1ZXN0UGFpbnQgPSBleHBvcnRzLnVuc3RhYmxlX2ZvcmNlRnJhbWVSYXRlID0gZnVuY3Rpb24gKCkge307XG59IGVsc2Uge1xuICAvLyBDYXB0dXJlIGxvY2FsIHJlZmVyZW5jZXMgdG8gbmF0aXZlIEFQSXMsIGluIGNhc2UgYSBwb2x5ZmlsbCBvdmVycmlkZXMgdGhlbS5cbiAgdmFyIF9zZXRUaW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQ7XG4gIHZhciBfY2xlYXJUaW1lb3V0ID0gd2luZG93LmNsZWFyVGltZW91dDtcblxuICBpZiAodHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgLy8gVE9ETzogU2NoZWR1bGVyIG5vIGxvbmdlciByZXF1aXJlcyB0aGVzZSBtZXRob2RzIHRvIGJlIHBvbHlmaWxsZWQuIEJ1dFxuICAgIC8vIG1heWJlIHdlIHdhbnQgdG8gY29udGludWUgd2FybmluZyBpZiB0aGV5IGRvbid0IGV4aXN0LCB0byBwcmVzZXJ2ZSB0aGVcbiAgICAvLyBvcHRpb24gdG8gcmVseSBvbiBpdCBpbiB0aGUgZnV0dXJlP1xuICAgIHZhciByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgPSB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lO1xuICAgIHZhciBjYW5jZWxBbmltYXRpb25GcmFtZSA9IHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZTtcblxuICAgIGlmICh0eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAvLyBVc2luZyBjb25zb2xlWydlcnJvciddIHRvIGV2YWRlIEJhYmVsIGFuZCBFU0xpbnRcbiAgICAgIGNvbnNvbGVbJ2Vycm9yJ10oXCJUaGlzIGJyb3dzZXIgZG9lc24ndCBzdXBwb3J0IHJlcXVlc3RBbmltYXRpb25GcmFtZS4gXCIgKyAnTWFrZSBzdXJlIHRoYXQgeW91IGxvYWQgYSAnICsgJ3BvbHlmaWxsIGluIG9sZGVyIGJyb3dzZXJzLiBodHRwczovL3JlYWN0anMub3JnL2xpbmsvcmVhY3QtcG9seWZpbGxzJyk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBjYW5jZWxBbmltYXRpb25GcmFtZSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgLy8gVXNpbmcgY29uc29sZVsnZXJyb3InXSB0byBldmFkZSBCYWJlbCBhbmQgRVNMaW50XG4gICAgICBjb25zb2xlWydlcnJvciddKFwiVGhpcyBicm93c2VyIGRvZXNuJ3Qgc3VwcG9ydCBjYW5jZWxBbmltYXRpb25GcmFtZS4gXCIgKyAnTWFrZSBzdXJlIHRoYXQgeW91IGxvYWQgYSAnICsgJ3BvbHlmaWxsIGluIG9sZGVyIGJyb3dzZXJzLiBodHRwczovL3JlYWN0anMub3JnL2xpbmsvcmVhY3QtcG9seWZpbGxzJyk7XG4gICAgfVxuICB9XG5cbiAgdmFyIGlzTWVzc2FnZUxvb3BSdW5uaW5nID0gZmFsc2U7XG4gIHZhciBzY2hlZHVsZWRIb3N0Q2FsbGJhY2sgPSBudWxsO1xuICB2YXIgdGFza1RpbWVvdXRJRCA9IC0xOyAvLyBTY2hlZHVsZXIgcGVyaW9kaWNhbGx5IHlpZWxkcyBpbiBjYXNlIHRoZXJlIGlzIG90aGVyIHdvcmsgb24gdGhlIG1haW5cbiAgLy8gdGhyZWFkLCBsaWtlIHVzZXIgZXZlbnRzLiBCeSBkZWZhdWx0LCBpdCB5aWVsZHMgbXVsdGlwbGUgdGltZXMgcGVyIGZyYW1lLlxuICAvLyBJdCBkb2VzIG5vdCBhdHRlbXB0IHRvIGFsaWduIHdpdGggZnJhbWUgYm91bmRhcmllcywgc2luY2UgbW9zdCB0YXNrcyBkb24ndFxuICAvLyBuZWVkIHRvIGJlIGZyYW1lIGFsaWduZWQ7IGZvciB0aG9zZSB0aGF0IGRvLCB1c2UgcmVxdWVzdEFuaW1hdGlvbkZyYW1lLlxuXG4gIHZhciB5aWVsZEludGVydmFsID0gNTtcbiAgdmFyIGRlYWRsaW5lID0gMDsgLy8gVE9ETzogTWFrZSB0aGlzIGNvbmZpZ3VyYWJsZVxuXG4gIHtcbiAgICAvLyBgaXNJbnB1dFBlbmRpbmdgIGlzIG5vdCBhdmFpbGFibGUuIFNpbmNlIHdlIGhhdmUgbm8gd2F5IG9mIGtub3dpbmcgaWZcbiAgICAvLyB0aGVyZSdzIHBlbmRpbmcgaW5wdXQsIGFsd2F5cyB5aWVsZCBhdCB0aGUgZW5kIG9mIHRoZSBmcmFtZS5cbiAgICBleHBvcnRzLnVuc3RhYmxlX3Nob3VsZFlpZWxkID0gZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGV4cG9ydHMudW5zdGFibGVfbm93KCkgPj0gZGVhZGxpbmU7XG4gICAgfTsgLy8gU2luY2Ugd2UgeWllbGQgZXZlcnkgZnJhbWUgcmVnYXJkbGVzcywgYHJlcXVlc3RQYWludGAgaGFzIG5vIGVmZmVjdC5cblxuXG4gICAgcmVxdWVzdFBhaW50ID0gZnVuY3Rpb24gKCkge307XG4gIH1cblxuICBleHBvcnRzLnVuc3RhYmxlX2ZvcmNlRnJhbWVSYXRlID0gZnVuY3Rpb24gKGZwcykge1xuICAgIGlmIChmcHMgPCAwIHx8IGZwcyA+IDEyNSkge1xuICAgICAgLy8gVXNpbmcgY29uc29sZVsnZXJyb3InXSB0byBldmFkZSBCYWJlbCBhbmQgRVNMaW50XG4gICAgICBjb25zb2xlWydlcnJvciddKCdmb3JjZUZyYW1lUmF0ZSB0YWtlcyBhIHBvc2l0aXZlIGludCBiZXR3ZWVuIDAgYW5kIDEyNSwgJyArICdmb3JjaW5nIGZyYW1lIHJhdGVzIGhpZ2hlciB0aGFuIDEyNSBmcHMgaXMgbm90IHN1cHBvcnRlZCcpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChmcHMgPiAwKSB7XG4gICAgICB5aWVsZEludGVydmFsID0gTWF0aC5mbG9vcigxMDAwIC8gZnBzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gcmVzZXQgdGhlIGZyYW1lcmF0ZVxuICAgICAgeWllbGRJbnRlcnZhbCA9IDU7XG4gICAgfVxuICB9O1xuXG4gIHZhciBwZXJmb3JtV29ya1VudGlsRGVhZGxpbmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHNjaGVkdWxlZEhvc3RDYWxsYmFjayAhPT0gbnVsbCkge1xuICAgICAgdmFyIGN1cnJlbnRUaW1lID0gZXhwb3J0cy51bnN0YWJsZV9ub3coKTsgLy8gWWllbGQgYWZ0ZXIgYHlpZWxkSW50ZXJ2YWxgIG1zLCByZWdhcmRsZXNzIG9mIHdoZXJlIHdlIGFyZSBpbiB0aGUgdnN5bmNcbiAgICAgIC8vIGN5Y2xlLiBUaGlzIG1lYW5zIHRoZXJlJ3MgYWx3YXlzIHRpbWUgcmVtYWluaW5nIGF0IHRoZSBiZWdpbm5pbmcgb2ZcbiAgICAgIC8vIHRoZSBtZXNzYWdlIGV2ZW50LlxuXG4gICAgICBkZWFkbGluZSA9IGN1cnJlbnRUaW1lICsgeWllbGRJbnRlcnZhbDtcbiAgICAgIHZhciBoYXNUaW1lUmVtYWluaW5nID0gdHJ1ZTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgdmFyIGhhc01vcmVXb3JrID0gc2NoZWR1bGVkSG9zdENhbGxiYWNrKGhhc1RpbWVSZW1haW5pbmcsIGN1cnJlbnRUaW1lKTtcblxuICAgICAgICBpZiAoIWhhc01vcmVXb3JrKSB7XG4gICAgICAgICAgaXNNZXNzYWdlTG9vcFJ1bm5pbmcgPSBmYWxzZTtcbiAgICAgICAgICBzY2hlZHVsZWRIb3N0Q2FsbGJhY2sgPSBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIElmIHRoZXJlJ3MgbW9yZSB3b3JrLCBzY2hlZHVsZSB0aGUgbmV4dCBtZXNzYWdlIGV2ZW50IGF0IHRoZSBlbmRcbiAgICAgICAgICAvLyBvZiB0aGUgcHJlY2VkaW5nIG9uZS5cbiAgICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKG51bGwpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAvLyBJZiBhIHNjaGVkdWxlciB0YXNrIHRocm93cywgZXhpdCB0aGUgY3VycmVudCBicm93c2VyIHRhc2sgc28gdGhlXG4gICAgICAgIC8vIGVycm9yIGNhbiBiZSBvYnNlcnZlZC5cbiAgICAgICAgcG9ydC5wb3N0TWVzc2FnZShudWxsKTtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlzTWVzc2FnZUxvb3BSdW5uaW5nID0gZmFsc2U7XG4gICAgfSAvLyBZaWVsZGluZyB0byB0aGUgYnJvd3NlciB3aWxsIGdpdmUgaXQgYSBjaGFuY2UgdG8gcGFpbnQsIHNvIHdlIGNhblxuICB9O1xuXG4gIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7XG4gIHZhciBwb3J0ID0gY2hhbm5lbC5wb3J0MjtcbiAgY2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2UgPSBwZXJmb3JtV29ya1VudGlsRGVhZGxpbmU7XG5cbiAgcmVxdWVzdEhvc3RDYWxsYmFjayA9IGZ1bmN0aW9uIChjYWxsYmFjaykge1xuICAgIHNjaGVkdWxlZEhvc3RDYWxsYmFjayA9IGNhbGxiYWNrO1xuXG4gICAgaWYgKCFpc01lc3NhZ2VMb29wUnVubmluZykge1xuICAgICAgaXNNZXNzYWdlTG9vcFJ1bm5pbmcgPSB0cnVlO1xuICAgICAgcG9ydC5wb3N0TWVzc2FnZShudWxsKTtcbiAgICB9XG4gIH07XG5cbiAgcmVxdWVzdEhvc3RUaW1lb3V0ID0gZnVuY3Rpb24gKGNhbGxiYWNrLCBtcykge1xuICAgIHRhc2tUaW1lb3V0SUQgPSBfc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICBjYWxsYmFjayhleHBvcnRzLnVuc3RhYmxlX25vdygpKTtcbiAgICB9LCBtcyk7XG4gIH07XG5cbiAgY2FuY2VsSG9zdFRpbWVvdXQgPSBmdW5jdGlvbiAoKSB7XG4gICAgX2NsZWFyVGltZW91dCh0YXNrVGltZW91dElEKTtcblxuICAgIHRhc2tUaW1lb3V0SUQgPSAtMTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gcHVzaChoZWFwLCBub2RlKSB7XG4gIHZhciBpbmRleCA9IGhlYXAubGVuZ3RoO1xuICBoZWFwLnB1c2gobm9kZSk7XG4gIHNpZnRVcChoZWFwLCBub2RlLCBpbmRleCk7XG59XG5mdW5jdGlvbiBwZWVrKGhlYXApIHtcbiAgdmFyIGZpcnN0ID0gaGVhcFswXTtcbiAgcmV0dXJuIGZpcnN0ID09PSB1bmRlZmluZWQgPyBudWxsIDogZmlyc3Q7XG59XG5mdW5jdGlvbiBwb3AoaGVhcCkge1xuICB2YXIgZmlyc3QgPSBoZWFwWzBdO1xuXG4gIGlmIChmaXJzdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdmFyIGxhc3QgPSBoZWFwLnBvcCgpO1xuXG4gICAgaWYgKGxhc3QgIT09IGZpcnN0KSB7XG4gICAgICBoZWFwWzBdID0gbGFzdDtcbiAgICAgIHNpZnREb3duKGhlYXAsIGxhc3QsIDApO1xuICAgIH1cblxuICAgIHJldHVybiBmaXJzdDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5mdW5jdGlvbiBzaWZ0VXAoaGVhcCwgbm9kZSwgaSkge1xuICB2YXIgaW5kZXggPSBpO1xuXG4gIHdoaWxlICh0cnVlKSB7XG4gICAgdmFyIHBhcmVudEluZGV4ID0gaW5kZXggLSAxID4+PiAxO1xuICAgIHZhciBwYXJlbnQgPSBoZWFwW3BhcmVudEluZGV4XTtcblxuICAgIGlmIChwYXJlbnQgIT09IHVuZGVmaW5lZCAmJiBjb21wYXJlKHBhcmVudCwgbm9kZSkgPiAwKSB7XG4gICAgICAvLyBUaGUgcGFyZW50IGlzIGxhcmdlci4gU3dhcCBwb3NpdGlvbnMuXG4gICAgICBoZWFwW3BhcmVudEluZGV4XSA9IG5vZGU7XG4gICAgICBoZWFwW2luZGV4XSA9IHBhcmVudDtcbiAgICAgIGluZGV4ID0gcGFyZW50SW5kZXg7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRoZSBwYXJlbnQgaXMgc21hbGxlci4gRXhpdC5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gc2lmdERvd24oaGVhcCwgbm9kZSwgaSkge1xuICB2YXIgaW5kZXggPSBpO1xuICB2YXIgbGVuZ3RoID0gaGVhcC5sZW5ndGg7XG5cbiAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgdmFyIGxlZnRJbmRleCA9IChpbmRleCArIDEpICogMiAtIDE7XG4gICAgdmFyIGxlZnQgPSBoZWFwW2xlZnRJbmRleF07XG4gICAgdmFyIHJpZ2h0SW5kZXggPSBsZWZ0SW5kZXggKyAxO1xuICAgIHZhciByaWdodCA9IGhlYXBbcmlnaHRJbmRleF07IC8vIElmIHRoZSBsZWZ0IG9yIHJpZ2h0IG5vZGUgaXMgc21hbGxlciwgc3dhcCB3aXRoIHRoZSBzbWFsbGVyIG9mIHRob3NlLlxuXG4gICAgaWYgKGxlZnQgIT09IHVuZGVmaW5lZCAmJiBjb21wYXJlKGxlZnQsIG5vZGUpIDwgMCkge1xuICAgICAgaWYgKHJpZ2h0ICE9PSB1bmRlZmluZWQgJiYgY29tcGFyZShyaWdodCwgbGVmdCkgPCAwKSB7XG4gICAgICAgIGhlYXBbaW5kZXhdID0gcmlnaHQ7XG4gICAgICAgIGhlYXBbcmlnaHRJbmRleF0gPSBub2RlO1xuICAgICAgICBpbmRleCA9IHJpZ2h0SW5kZXg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBoZWFwW2luZGV4XSA9IGxlZnQ7XG4gICAgICAgIGhlYXBbbGVmdEluZGV4XSA9IG5vZGU7XG4gICAgICAgIGluZGV4ID0gbGVmdEluZGV4O1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAocmlnaHQgIT09IHVuZGVmaW5lZCAmJiBjb21wYXJlKHJpZ2h0LCBub2RlKSA8IDApIHtcbiAgICAgIGhlYXBbaW5kZXhdID0gcmlnaHQ7XG4gICAgICBoZWFwW3JpZ2h0SW5kZXhdID0gbm9kZTtcbiAgICAgIGluZGV4ID0gcmlnaHRJbmRleDtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTmVpdGhlciBjaGlsZCBpcyBzbWFsbGVyLiBFeGl0LlxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjb21wYXJlKGEsIGIpIHtcbiAgLy8gQ29tcGFyZSBzb3J0IGluZGV4IGZpcnN0LCB0aGVuIHRhc2sgaWQuXG4gIHZhciBkaWZmID0gYS5zb3J0SW5kZXggLSBiLnNvcnRJbmRleDtcbiAgcmV0dXJuIGRpZmYgIT09IDAgPyBkaWZmIDogYS5pZCAtIGIuaWQ7XG59XG5cbi8vIFRPRE86IFVzZSBzeW1ib2xzP1xudmFyIEltbWVkaWF0ZVByaW9yaXR5ID0gMTtcbnZhciBVc2VyQmxvY2tpbmdQcmlvcml0eSA9IDI7XG52YXIgTm9ybWFsUHJpb3JpdHkgPSAzO1xudmFyIExvd1ByaW9yaXR5ID0gNDtcbnZhciBJZGxlUHJpb3JpdHkgPSA1O1xuXG5mdW5jdGlvbiBtYXJrVGFza0Vycm9yZWQodGFzaywgbXMpIHtcbn1cblxuLyogZXNsaW50LWRpc2FibGUgbm8tdmFyICovXG4vLyBNYXRoLnBvdygyLCAzMCkgLSAxXG4vLyAwYjExMTExMTExMTExMTExMTExMTExMTExMTExMTExMVxuXG52YXIgbWF4U2lnbmVkMzFCaXRJbnQgPSAxMDczNzQxODIzOyAvLyBUaW1lcyBvdXQgaW1tZWRpYXRlbHlcblxudmFyIElNTUVESUFURV9QUklPUklUWV9USU1FT1VUID0gLTE7IC8vIEV2ZW50dWFsbHkgdGltZXMgb3V0XG5cbnZhciBVU0VSX0JMT0NLSU5HX1BSSU9SSVRZX1RJTUVPVVQgPSAyNTA7XG52YXIgTk9STUFMX1BSSU9SSVRZX1RJTUVPVVQgPSA1MDAwO1xudmFyIExPV19QUklPUklUWV9USU1FT1VUID0gMTAwMDA7IC8vIE5ldmVyIHRpbWVzIG91dFxuXG52YXIgSURMRV9QUklPUklUWV9USU1FT1VUID0gbWF4U2lnbmVkMzFCaXRJbnQ7IC8vIFRhc2tzIGFyZSBzdG9yZWQgb24gYSBtaW4gaGVhcFxuXG52YXIgdGFza1F1ZXVlID0gW107XG52YXIgdGltZXJRdWV1ZSA9IFtdOyAvLyBJbmNyZW1lbnRpbmcgaWQgY291bnRlci4gVXNlZCB0byBtYWludGFpbiBpbnNlcnRpb24gb3JkZXIuXG5cbnZhciB0YXNrSWRDb3VudGVyID0gMTsgLy8gUGF1c2luZyB0aGUgc2NoZWR1bGVyIGlzIHVzZWZ1bCBmb3IgZGVidWdnaW5nLlxudmFyIGN1cnJlbnRUYXNrID0gbnVsbDtcbnZhciBjdXJyZW50UHJpb3JpdHlMZXZlbCA9IE5vcm1hbFByaW9yaXR5OyAvLyBUaGlzIGlzIHNldCB3aGlsZSBwZXJmb3JtaW5nIHdvcmssIHRvIHByZXZlbnQgcmUtZW50cmFuY3kuXG5cbnZhciBpc1BlcmZvcm1pbmdXb3JrID0gZmFsc2U7XG52YXIgaXNIb3N0Q2FsbGJhY2tTY2hlZHVsZWQgPSBmYWxzZTtcbnZhciBpc0hvc3RUaW1lb3V0U2NoZWR1bGVkID0gZmFsc2U7XG5cbmZ1bmN0aW9uIGFkdmFuY2VUaW1lcnMoY3VycmVudFRpbWUpIHtcbiAgLy8gQ2hlY2sgZm9yIHRhc2tzIHRoYXQgYXJlIG5vIGxvbmdlciBkZWxheWVkIGFuZCBhZGQgdGhlbSB0byB0aGUgcXVldWUuXG4gIHZhciB0aW1lciA9IHBlZWsodGltZXJRdWV1ZSk7XG5cbiAgd2hpbGUgKHRpbWVyICE9PSBudWxsKSB7XG4gICAgaWYgKHRpbWVyLmNhbGxiYWNrID09PSBudWxsKSB7XG4gICAgICAvLyBUaW1lciB3YXMgY2FuY2VsbGVkLlxuICAgICAgcG9wKHRpbWVyUXVldWUpO1xuICAgIH0gZWxzZSBpZiAodGltZXIuc3RhcnRUaW1lIDw9IGN1cnJlbnRUaW1lKSB7XG4gICAgICAvLyBUaW1lciBmaXJlZC4gVHJhbnNmZXIgdG8gdGhlIHRhc2sgcXVldWUuXG4gICAgICBwb3AodGltZXJRdWV1ZSk7XG4gICAgICB0aW1lci5zb3J0SW5kZXggPSB0aW1lci5leHBpcmF0aW9uVGltZTtcbiAgICAgIHB1c2godGFza1F1ZXVlLCB0aW1lcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFJlbWFpbmluZyB0aW1lcnMgYXJlIHBlbmRpbmcuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGltZXIgPSBwZWVrKHRpbWVyUXVldWUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGhhbmRsZVRpbWVvdXQoY3VycmVudFRpbWUpIHtcbiAgaXNIb3N0VGltZW91dFNjaGVkdWxlZCA9IGZhbHNlO1xuICBhZHZhbmNlVGltZXJzKGN1cnJlbnRUaW1lKTtcblxuICBpZiAoIWlzSG9zdENhbGxiYWNrU2NoZWR1bGVkKSB7XG4gICAgaWYgKHBlZWsodGFza1F1ZXVlKSAhPT0gbnVsbCkge1xuICAgICAgaXNIb3N0Q2FsbGJhY2tTY2hlZHVsZWQgPSB0cnVlO1xuICAgICAgcmVxdWVzdEhvc3RDYWxsYmFjayhmbHVzaFdvcmspO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgZmlyc3RUaW1lciA9IHBlZWsodGltZXJRdWV1ZSk7XG5cbiAgICAgIGlmIChmaXJzdFRpbWVyICE9PSBudWxsKSB7XG4gICAgICAgIHJlcXVlc3RIb3N0VGltZW91dChoYW5kbGVUaW1lb3V0LCBmaXJzdFRpbWVyLnN0YXJ0VGltZSAtIGN1cnJlbnRUaW1lKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZmx1c2hXb3JrKGhhc1RpbWVSZW1haW5pbmcsIGluaXRpYWxUaW1lKSB7XG5cblxuICBpc0hvc3RDYWxsYmFja1NjaGVkdWxlZCA9IGZhbHNlO1xuXG4gIGlmIChpc0hvc3RUaW1lb3V0U2NoZWR1bGVkKSB7XG4gICAgLy8gV2Ugc2NoZWR1bGVkIGEgdGltZW91dCBidXQgaXQncyBubyBsb25nZXIgbmVlZGVkLiBDYW5jZWwgaXQuXG4gICAgaXNIb3N0VGltZW91dFNjaGVkdWxlZCA9IGZhbHNlO1xuICAgIGNhbmNlbEhvc3RUaW1lb3V0KCk7XG4gIH1cblxuICBpc1BlcmZvcm1pbmdXb3JrID0gdHJ1ZTtcbiAgdmFyIHByZXZpb3VzUHJpb3JpdHlMZXZlbCA9IGN1cnJlbnRQcmlvcml0eUxldmVsO1xuXG4gIHRyeSB7XG4gICAgaWYgKGVuYWJsZVByb2ZpbGluZykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHdvcmtMb29wKGhhc1RpbWVSZW1haW5pbmcsIGluaXRpYWxUaW1lKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGlmIChjdXJyZW50VGFzayAhPT0gbnVsbCkge1xuICAgICAgICAgIHZhciBjdXJyZW50VGltZSA9IGV4cG9ydHMudW5zdGFibGVfbm93KCk7XG4gICAgICAgICAgbWFya1Rhc2tFcnJvcmVkKGN1cnJlbnRUYXNrLCBjdXJyZW50VGltZSk7XG4gICAgICAgICAgY3VycmVudFRhc2suaXNRdWV1ZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBObyBjYXRjaCBpbiBwcm9kIGNvZGUgcGF0aC5cbiAgICAgIHJldHVybiB3b3JrTG9vcChoYXNUaW1lUmVtYWluaW5nLCBpbml0aWFsVGltZSk7XG4gICAgfVxuICB9IGZpbmFsbHkge1xuICAgIGN1cnJlbnRUYXNrID0gbnVsbDtcbiAgICBjdXJyZW50UHJpb3JpdHlMZXZlbCA9IHByZXZpb3VzUHJpb3JpdHlMZXZlbDtcbiAgICBpc1BlcmZvcm1pbmdXb3JrID0gZmFsc2U7XG4gIH1cbn1cblxuZnVuY3Rpb24gd29ya0xvb3AoaGFzVGltZVJlbWFpbmluZywgaW5pdGlhbFRpbWUpIHtcbiAgdmFyIGN1cnJlbnRUaW1lID0gaW5pdGlhbFRpbWU7XG4gIGFkdmFuY2VUaW1lcnMoY3VycmVudFRpbWUpO1xuICBjdXJyZW50VGFzayA9IHBlZWsodGFza1F1ZXVlKTtcblxuICB3aGlsZSAoY3VycmVudFRhc2sgIT09IG51bGwgJiYgIShlbmFibGVTY2hlZHVsZXJEZWJ1Z2dpbmcgKSkge1xuICAgIGlmIChjdXJyZW50VGFzay5leHBpcmF0aW9uVGltZSA+IGN1cnJlbnRUaW1lICYmICghaGFzVGltZVJlbWFpbmluZyB8fCBleHBvcnRzLnVuc3RhYmxlX3Nob3VsZFlpZWxkKCkpKSB7XG4gICAgICAvLyBUaGlzIGN1cnJlbnRUYXNrIGhhc24ndCBleHBpcmVkLCBhbmQgd2UndmUgcmVhY2hlZCB0aGUgZGVhZGxpbmUuXG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICB2YXIgY2FsbGJhY2sgPSBjdXJyZW50VGFzay5jYWxsYmFjaztcblxuICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGN1cnJlbnRUYXNrLmNhbGxiYWNrID0gbnVsbDtcbiAgICAgIGN1cnJlbnRQcmlvcml0eUxldmVsID0gY3VycmVudFRhc2sucHJpb3JpdHlMZXZlbDtcbiAgICAgIHZhciBkaWRVc2VyQ2FsbGJhY2tUaW1lb3V0ID0gY3VycmVudFRhc2suZXhwaXJhdGlvblRpbWUgPD0gY3VycmVudFRpbWU7XG5cbiAgICAgIHZhciBjb250aW51YXRpb25DYWxsYmFjayA9IGNhbGxiYWNrKGRpZFVzZXJDYWxsYmFja1RpbWVvdXQpO1xuICAgICAgY3VycmVudFRpbWUgPSBleHBvcnRzLnVuc3RhYmxlX25vdygpO1xuXG4gICAgICBpZiAodHlwZW9mIGNvbnRpbnVhdGlvbkNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGN1cnJlbnRUYXNrLmNhbGxiYWNrID0gY29udGludWF0aW9uQ2FsbGJhY2s7XG4gICAgICB9IGVsc2Uge1xuXG4gICAgICAgIGlmIChjdXJyZW50VGFzayA9PT0gcGVlayh0YXNrUXVldWUpKSB7XG4gICAgICAgICAgcG9wKHRhc2tRdWV1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgYWR2YW5jZVRpbWVycyhjdXJyZW50VGltZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBvcCh0YXNrUXVldWUpO1xuICAgIH1cblxuICAgIGN1cnJlbnRUYXNrID0gcGVlayh0YXNrUXVldWUpO1xuICB9IC8vIFJldHVybiB3aGV0aGVyIHRoZXJlJ3MgYWRkaXRpb25hbCB3b3JrXG5cblxuICBpZiAoY3VycmVudFRhc2sgIT09IG51bGwpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgZmlyc3RUaW1lciA9IHBlZWsodGltZXJRdWV1ZSk7XG5cbiAgICBpZiAoZmlyc3RUaW1lciAhPT0gbnVsbCkge1xuICAgICAgcmVxdWVzdEhvc3RUaW1lb3V0KGhhbmRsZVRpbWVvdXQsIGZpcnN0VGltZXIuc3RhcnRUaW1lIC0gY3VycmVudFRpbWUpO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5mdW5jdGlvbiB1bnN0YWJsZV9ydW5XaXRoUHJpb3JpdHkocHJpb3JpdHlMZXZlbCwgZXZlbnRIYW5kbGVyKSB7XG4gIHN3aXRjaCAocHJpb3JpdHlMZXZlbCkge1xuICAgIGNhc2UgSW1tZWRpYXRlUHJpb3JpdHk6XG4gICAgY2FzZSBVc2VyQmxvY2tpbmdQcmlvcml0eTpcbiAgICBjYXNlIE5vcm1hbFByaW9yaXR5OlxuICAgIGNhc2UgTG93UHJpb3JpdHk6XG4gICAgY2FzZSBJZGxlUHJpb3JpdHk6XG4gICAgICBicmVhaztcblxuICAgIGRlZmF1bHQ6XG4gICAgICBwcmlvcml0eUxldmVsID0gTm9ybWFsUHJpb3JpdHk7XG4gIH1cblxuICB2YXIgcHJldmlvdXNQcmlvcml0eUxldmVsID0gY3VycmVudFByaW9yaXR5TGV2ZWw7XG4gIGN1cnJlbnRQcmlvcml0eUxldmVsID0gcHJpb3JpdHlMZXZlbDtcblxuICB0cnkge1xuICAgIHJldHVybiBldmVudEhhbmRsZXIoKTtcbiAgfSBmaW5hbGx5IHtcbiAgICBjdXJyZW50UHJpb3JpdHlMZXZlbCA9IHByZXZpb3VzUHJpb3JpdHlMZXZlbDtcbiAgfVxufVxuXG5mdW5jdGlvbiB1bnN0YWJsZV9uZXh0KGV2ZW50SGFuZGxlcikge1xuICB2YXIgcHJpb3JpdHlMZXZlbDtcblxuICBzd2l0Y2ggKGN1cnJlbnRQcmlvcml0eUxldmVsKSB7XG4gICAgY2FzZSBJbW1lZGlhdGVQcmlvcml0eTpcbiAgICBjYXNlIFVzZXJCbG9ja2luZ1ByaW9yaXR5OlxuICAgIGNhc2UgTm9ybWFsUHJpb3JpdHk6XG4gICAgICAvLyBTaGlmdCBkb3duIHRvIG5vcm1hbCBwcmlvcml0eVxuICAgICAgcHJpb3JpdHlMZXZlbCA9IE5vcm1hbFByaW9yaXR5O1xuICAgICAgYnJlYWs7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgLy8gQW55dGhpbmcgbG93ZXIgdGhhbiBub3JtYWwgcHJpb3JpdHkgc2hvdWxkIHJlbWFpbiBhdCB0aGUgY3VycmVudCBsZXZlbC5cbiAgICAgIHByaW9yaXR5TGV2ZWwgPSBjdXJyZW50UHJpb3JpdHlMZXZlbDtcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgdmFyIHByZXZpb3VzUHJpb3JpdHlMZXZlbCA9IGN1cnJlbnRQcmlvcml0eUxldmVsO1xuICBjdXJyZW50UHJpb3JpdHlMZXZlbCA9IHByaW9yaXR5TGV2ZWw7XG5cbiAgdHJ5IHtcbiAgICByZXR1cm4gZXZlbnRIYW5kbGVyKCk7XG4gIH0gZmluYWxseSB7XG4gICAgY3VycmVudFByaW9yaXR5TGV2ZWwgPSBwcmV2aW91c1ByaW9yaXR5TGV2ZWw7XG4gIH1cbn1cblxuZnVuY3Rpb24gdW5zdGFibGVfd3JhcENhbGxiYWNrKGNhbGxiYWNrKSB7XG4gIHZhciBwYXJlbnRQcmlvcml0eUxldmVsID0gY3VycmVudFByaW9yaXR5TGV2ZWw7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgLy8gVGhpcyBpcyBhIGZvcmsgb2YgcnVuV2l0aFByaW9yaXR5LCBpbmxpbmVkIGZvciBwZXJmb3JtYW5jZS5cbiAgICB2YXIgcHJldmlvdXNQcmlvcml0eUxldmVsID0gY3VycmVudFByaW9yaXR5TGV2ZWw7XG4gICAgY3VycmVudFByaW9yaXR5TGV2ZWwgPSBwYXJlbnRQcmlvcml0eUxldmVsO1xuXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBjYWxsYmFjay5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBjdXJyZW50UHJpb3JpdHlMZXZlbCA9IHByZXZpb3VzUHJpb3JpdHlMZXZlbDtcbiAgICB9XG4gIH07XG59XG5cbmZ1bmN0aW9uIHVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2socHJpb3JpdHlMZXZlbCwgY2FsbGJhY2ssIG9wdGlvbnMpIHtcbiAgdmFyIGN1cnJlbnRUaW1lID0gZXhwb3J0cy51bnN0YWJsZV9ub3coKTtcbiAgdmFyIHN0YXJ0VGltZTtcblxuICBpZiAodHlwZW9mIG9wdGlvbnMgPT09ICdvYmplY3QnICYmIG9wdGlvbnMgIT09IG51bGwpIHtcbiAgICB2YXIgZGVsYXkgPSBvcHRpb25zLmRlbGF5O1xuXG4gICAgaWYgKHR5cGVvZiBkZWxheSA9PT0gJ251bWJlcicgJiYgZGVsYXkgPiAwKSB7XG4gICAgICBzdGFydFRpbWUgPSBjdXJyZW50VGltZSArIGRlbGF5O1xuICAgIH0gZWxzZSB7XG4gICAgICBzdGFydFRpbWUgPSBjdXJyZW50VGltZTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgc3RhcnRUaW1lID0gY3VycmVudFRpbWU7XG4gIH1cblxuICB2YXIgdGltZW91dDtcblxuICBzd2l0Y2ggKHByaW9yaXR5TGV2ZWwpIHtcbiAgICBjYXNlIEltbWVkaWF0ZVByaW9yaXR5OlxuICAgICAgdGltZW91dCA9IElNTUVESUFURV9QUklPUklUWV9USU1FT1VUO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIFVzZXJCbG9ja2luZ1ByaW9yaXR5OlxuICAgICAgdGltZW91dCA9IFVTRVJfQkxPQ0tJTkdfUFJJT1JJVFlfVElNRU9VVDtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBJZGxlUHJpb3JpdHk6XG4gICAgICB0aW1lb3V0ID0gSURMRV9QUklPUklUWV9USU1FT1VUO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIExvd1ByaW9yaXR5OlxuICAgICAgdGltZW91dCA9IExPV19QUklPUklUWV9USU1FT1VUO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIE5vcm1hbFByaW9yaXR5OlxuICAgIGRlZmF1bHQ6XG4gICAgICB0aW1lb3V0ID0gTk9STUFMX1BSSU9SSVRZX1RJTUVPVVQ7XG4gICAgICBicmVhaztcbiAgfVxuXG4gIHZhciBleHBpcmF0aW9uVGltZSA9IHN0YXJ0VGltZSArIHRpbWVvdXQ7XG4gIHZhciBuZXdUYXNrID0ge1xuICAgIGlkOiB0YXNrSWRDb3VudGVyKyssXG4gICAgY2FsbGJhY2s6IGNhbGxiYWNrLFxuICAgIHByaW9yaXR5TGV2ZWw6IHByaW9yaXR5TGV2ZWwsXG4gICAgc3RhcnRUaW1lOiBzdGFydFRpbWUsXG4gICAgZXhwaXJhdGlvblRpbWU6IGV4cGlyYXRpb25UaW1lLFxuICAgIHNvcnRJbmRleDogLTFcbiAgfTtcblxuICBpZiAoc3RhcnRUaW1lID4gY3VycmVudFRpbWUpIHtcbiAgICAvLyBUaGlzIGlzIGEgZGVsYXllZCB0YXNrLlxuICAgIG5ld1Rhc2suc29ydEluZGV4ID0gc3RhcnRUaW1lO1xuICAgIHB1c2godGltZXJRdWV1ZSwgbmV3VGFzayk7XG5cbiAgICBpZiAocGVlayh0YXNrUXVldWUpID09PSBudWxsICYmIG5ld1Rhc2sgPT09IHBlZWsodGltZXJRdWV1ZSkpIHtcbiAgICAgIC8vIEFsbCB0YXNrcyBhcmUgZGVsYXllZCwgYW5kIHRoaXMgaXMgdGhlIHRhc2sgd2l0aCB0aGUgZWFybGllc3QgZGVsYXkuXG4gICAgICBpZiAoaXNIb3N0VGltZW91dFNjaGVkdWxlZCkge1xuICAgICAgICAvLyBDYW5jZWwgYW4gZXhpc3RpbmcgdGltZW91dC5cbiAgICAgICAgY2FuY2VsSG9zdFRpbWVvdXQoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlzSG9zdFRpbWVvdXRTY2hlZHVsZWQgPSB0cnVlO1xuICAgICAgfSAvLyBTY2hlZHVsZSBhIHRpbWVvdXQuXG5cblxuICAgICAgcmVxdWVzdEhvc3RUaW1lb3V0KGhhbmRsZVRpbWVvdXQsIHN0YXJ0VGltZSAtIGN1cnJlbnRUaW1lKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgbmV3VGFzay5zb3J0SW5kZXggPSBleHBpcmF0aW9uVGltZTtcbiAgICBwdXNoKHRhc2tRdWV1ZSwgbmV3VGFzayk7XG4gICAgLy8gd2FpdCB1bnRpbCB0aGUgbmV4dCB0aW1lIHdlIHlpZWxkLlxuXG5cbiAgICBpZiAoIWlzSG9zdENhbGxiYWNrU2NoZWR1bGVkICYmICFpc1BlcmZvcm1pbmdXb3JrKSB7XG4gICAgICBpc0hvc3RDYWxsYmFja1NjaGVkdWxlZCA9IHRydWU7XG4gICAgICByZXF1ZXN0SG9zdENhbGxiYWNrKGZsdXNoV29yayk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5ld1Rhc2s7XG59XG5cbmZ1bmN0aW9uIHVuc3RhYmxlX3BhdXNlRXhlY3V0aW9uKCkge1xufVxuXG5mdW5jdGlvbiB1bnN0YWJsZV9jb250aW51ZUV4ZWN1dGlvbigpIHtcblxuICBpZiAoIWlzSG9zdENhbGxiYWNrU2NoZWR1bGVkICYmICFpc1BlcmZvcm1pbmdXb3JrKSB7XG4gICAgaXNIb3N0Q2FsbGJhY2tTY2hlZHVsZWQgPSB0cnVlO1xuICAgIHJlcXVlc3RIb3N0Q2FsbGJhY2soZmx1c2hXb3JrKTtcbiAgfVxufVxuXG5mdW5jdGlvbiB1bnN0YWJsZV9nZXRGaXJzdENhbGxiYWNrTm9kZSgpIHtcbiAgcmV0dXJuIHBlZWsodGFza1F1ZXVlKTtcbn1cblxuZnVuY3Rpb24gdW5zdGFibGVfY2FuY2VsQ2FsbGJhY2sodGFzaykge1xuICAvLyByZW1vdmUgZnJvbSB0aGUgcXVldWUgYmVjYXVzZSB5b3UgY2FuJ3QgcmVtb3ZlIGFyYml0cmFyeSBub2RlcyBmcm9tIGFuXG4gIC8vIGFycmF5IGJhc2VkIGhlYXAsIG9ubHkgdGhlIGZpcnN0IG9uZS4pXG5cblxuICB0YXNrLmNhbGxiYWNrID0gbnVsbDtcbn1cblxuZnVuY3Rpb24gdW5zdGFibGVfZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWwoKSB7XG4gIHJldHVybiBjdXJyZW50UHJpb3JpdHlMZXZlbDtcbn1cblxudmFyIHVuc3RhYmxlX3JlcXVlc3RQYWludCA9IHJlcXVlc3RQYWludDtcbnZhciB1bnN0YWJsZV9Qcm9maWxpbmcgPSAgbnVsbDtcblxuZXhwb3J0cy51bnN0YWJsZV9JZGxlUHJpb3JpdHkgPSBJZGxlUHJpb3JpdHk7XG5leHBvcnRzLnVuc3RhYmxlX0ltbWVkaWF0ZVByaW9yaXR5ID0gSW1tZWRpYXRlUHJpb3JpdHk7XG5leHBvcnRzLnVuc3RhYmxlX0xvd1ByaW9yaXR5ID0gTG93UHJpb3JpdHk7XG5leHBvcnRzLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5ID0gTm9ybWFsUHJpb3JpdHk7XG5leHBvcnRzLnVuc3RhYmxlX1Byb2ZpbGluZyA9IHVuc3RhYmxlX1Byb2ZpbGluZztcbmV4cG9ydHMudW5zdGFibGVfVXNlckJsb2NraW5nUHJpb3JpdHkgPSBVc2VyQmxvY2tpbmdQcmlvcml0eTtcbmV4cG9ydHMudW5zdGFibGVfY2FuY2VsQ2FsbGJhY2sgPSB1bnN0YWJsZV9jYW5jZWxDYWxsYmFjaztcbmV4cG9ydHMudW5zdGFibGVfY29udGludWVFeGVjdXRpb24gPSB1bnN0YWJsZV9jb250aW51ZUV4ZWN1dGlvbjtcbmV4cG9ydHMudW5zdGFibGVfZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWwgPSB1bnN0YWJsZV9nZXRDdXJyZW50UHJpb3JpdHlMZXZlbDtcbmV4cG9ydHMudW5zdGFibGVfZ2V0Rmlyc3RDYWxsYmFja05vZGUgPSB1bnN0YWJsZV9nZXRGaXJzdENhbGxiYWNrTm9kZTtcbmV4cG9ydHMudW5zdGFibGVfbmV4dCA9IHVuc3RhYmxlX25leHQ7XG5leHBvcnRzLnVuc3RhYmxlX3BhdXNlRXhlY3V0aW9uID0gdW5zdGFibGVfcGF1c2VFeGVjdXRpb247XG5leHBvcnRzLnVuc3RhYmxlX3JlcXVlc3RQYWludCA9IHVuc3RhYmxlX3JlcXVlc3RQYWludDtcbmV4cG9ydHMudW5zdGFibGVfcnVuV2l0aFByaW9yaXR5ID0gdW5zdGFibGVfcnVuV2l0aFByaW9yaXR5O1xuZXhwb3J0cy51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrID0gdW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjaztcbmV4cG9ydHMudW5zdGFibGVfd3JhcENhbGxiYWNrID0gdW5zdGFibGVfd3JhcENhbGxiYWNrO1xuICB9KSgpO1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/scheduler/cjs/scheduler.development.js\n"); + +/***/ }), + +/***/ "./node_modules/scheduler/index.js": +/*!*****************************************!*\ + !*** ./node_modules/scheduler/index.js ***! + \*****************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/scheduler.development.js */ \"./node_modules/scheduler/cjs/scheduler.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc2NoZWR1bGVyL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLElBQUksS0FBcUMsRUFBRSxFQUUxQyxDQUFDO0FBQ0YsRUFBRSxtSUFBMEQ7QUFDNUQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3NjaGVkdWxlci9pbmRleC5qcz9jN2NjIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9zY2hlZHVsZXIucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvc2NoZWR1bGVyLmRldmVsb3BtZW50LmpzJyk7XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/scheduler/index.js\n"); + +/***/ }), + +/***/ "./node_modules/scheduler/tracing.js": +/*!*******************************************!*\ + !*** ./node_modules/scheduler/tracing.js ***! + \*******************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/scheduler-tracing.development.js */ \"./node_modules/scheduler/cjs/scheduler-tracing.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc2NoZWR1bGVyL3RyYWNpbmcuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsSUFBSSxLQUFxQyxFQUFFLEVBRTFDLENBQUM7QUFDRixFQUFFLG1KQUFrRTtBQUNwRSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc2NoZWR1bGVyL3RyYWNpbmcuanM/NjdjMiJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvc2NoZWR1bGVyLXRyYWNpbmcucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvc2NoZWR1bGVyLXRyYWNpbmcuZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/scheduler/tracing.js\n"); + +/***/ }), + +/***/ "./node_modules/stacktrace-parser/dist/stack-trace-parser.esm.js": +/*!***********************************************************************!*\ + !*** ./node_modules/stacktrace-parser/dist/stack-trace-parser.esm.js ***! + \***********************************************************************/ +/***/ (function(__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 */ \"parse\": function() { return /* binding */ parse; }\n/* harmony export */ });\nvar UNKNOWN_FUNCTION = '<unknown>';\n/**\n * This parses the different stack traces and puts them into one format\n * This borrows heavily from TraceKit (https://github.com/csnover/TraceKit)\n */\n\nfunction parse(stackString) {\n var lines = stackString.split('\\n');\n return lines.reduce(function (stack, line) {\n var parseResult = parseChrome(line) || parseWinjs(line) || parseGecko(line) || parseNode(line) || parseJSC(line);\n\n if (parseResult) {\n stack.push(parseResult);\n }\n\n return stack;\n }, []);\n}\nvar chromeRe = /^\\s*at (.*?) ?\\(((?:file|https?|blob|chrome-extension|native|eval|webpack|<anonymous>|\\/|[a-z]:\\\\|\\\\\\\\).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\nvar chromeEvalRe = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n\nfunction parseChrome(line) {\n var parts = chromeRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n var isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line\n\n var isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n\n var submatch = chromeEvalRe.exec(parts[2]);\n\n if (isEval && submatch != null) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = submatch[1]; // url\n\n parts[3] = submatch[2]; // line\n\n parts[4] = submatch[3]; // column\n }\n\n return {\n file: !isNative ? parts[2] : null,\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: isNative ? [parts[2]] : [],\n lineNumber: parts[3] ? +parts[3] : null,\n column: parts[4] ? +parts[4] : null\n };\n}\n\nvar winjsRe = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nfunction parseWinjs(line) {\n var parts = winjsRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n return {\n file: parts[2],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: [],\n lineNumber: +parts[3],\n column: parts[4] ? +parts[4] : null\n };\n}\n\nvar geckoRe = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nvar geckoEvalRe = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\n\nfunction parseGecko(line) {\n var parts = geckoRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n var isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n var submatch = geckoEvalRe.exec(parts[3]);\n\n if (isEval && submatch != null) {\n // throw out eval line/column and use top-most line number\n parts[3] = submatch[1];\n parts[4] = submatch[2];\n parts[5] = null; // no column when eval\n }\n\n return {\n file: parts[3],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: parts[2] ? parts[2].split(',') : [],\n lineNumber: parts[4] ? +parts[4] : null,\n column: parts[5] ? +parts[5] : null\n };\n}\n\nvar javaScriptCoreRe = /^\\s*(?:([^@]*)(?:\\((.*?)\\))?@)?(\\S.*?):(\\d+)(?::(\\d+))?\\s*$/i;\n\nfunction parseJSC(line) {\n var parts = javaScriptCoreRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n return {\n file: parts[3],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: [],\n lineNumber: +parts[4],\n column: parts[5] ? +parts[5] : null\n };\n}\n\nvar nodeRe = /^\\s*at (?:((?:\\[object object\\])?[^\\\\/]+(?: \\[as \\S+\\])?) )?\\(?(.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nfunction parseNode(line) {\n var parts = nodeRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n return {\n file: parts[2],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: [],\n lineNumber: +parts[3],\n column: parts[4] ? +parts[4] : null\n };\n}\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3RhY2t0cmFjZS1wYXJzZXIvZGlzdC9zdGFjay10cmFjZS1wYXJzZXIuZXNtLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQStEOztBQUUvRCwyREFBMkQ7O0FBRTNEOztBQUVBO0FBQ0E7QUFDQSw0QkFBNEI7O0FBRTVCLDRCQUE0Qjs7QUFFNUIsNEJBQTRCO0FBQzVCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zdGFja3RyYWNlLXBhcnNlci9kaXN0L3N0YWNrLXRyYWNlLXBhcnNlci5lc20uanM/NmE0YSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgVU5LTk9XTl9GVU5DVElPTiA9ICc8dW5rbm93bj4nO1xuLyoqXG4gKiBUaGlzIHBhcnNlcyB0aGUgZGlmZmVyZW50IHN0YWNrIHRyYWNlcyBhbmQgcHV0cyB0aGVtIGludG8gb25lIGZvcm1hdFxuICogVGhpcyBib3Jyb3dzIGhlYXZpbHkgZnJvbSBUcmFjZUtpdCAoaHR0cHM6Ly9naXRodWIuY29tL2Nzbm92ZXIvVHJhY2VLaXQpXG4gKi9cblxuZnVuY3Rpb24gcGFyc2Uoc3RhY2tTdHJpbmcpIHtcbiAgdmFyIGxpbmVzID0gc3RhY2tTdHJpbmcuc3BsaXQoJ1xcbicpO1xuICByZXR1cm4gbGluZXMucmVkdWNlKGZ1bmN0aW9uIChzdGFjaywgbGluZSkge1xuICAgIHZhciBwYXJzZVJlc3VsdCA9IHBhcnNlQ2hyb21lKGxpbmUpIHx8IHBhcnNlV2luanMobGluZSkgfHwgcGFyc2VHZWNrbyhsaW5lKSB8fCBwYXJzZU5vZGUobGluZSkgfHwgcGFyc2VKU0MobGluZSk7XG5cbiAgICBpZiAocGFyc2VSZXN1bHQpIHtcbiAgICAgIHN0YWNrLnB1c2gocGFyc2VSZXN1bHQpO1xuICAgIH1cblxuICAgIHJldHVybiBzdGFjaztcbiAgfSwgW10pO1xufVxudmFyIGNocm9tZVJlID0gL15cXHMqYXQgKC4qPykgP1xcKCgoPzpmaWxlfGh0dHBzP3xibG9ifGNocm9tZS1leHRlbnNpb258bmF0aXZlfGV2YWx8d2VicGFja3w8YW5vbnltb3VzPnxcXC98W2Etel06XFxcXHxcXFxcXFxcXCkuKj8pKD86OihcXGQrKSk/KD86OihcXGQrKSk/XFwpP1xccyokL2k7XG52YXIgY2hyb21lRXZhbFJlID0gL1xcKChcXFMqKSg/OjooXFxkKykpKD86OihcXGQrKSlcXCkvO1xuXG5mdW5jdGlvbiBwYXJzZUNocm9tZShsaW5lKSB7XG4gIHZhciBwYXJ0cyA9IGNocm9tZVJlLmV4ZWMobGluZSk7XG5cbiAgaWYgKCFwYXJ0cykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgdmFyIGlzTmF0aXZlID0gcGFydHNbMl0gJiYgcGFydHNbMl0uaW5kZXhPZignbmF0aXZlJykgPT09IDA7IC8vIHN0YXJ0IG9mIGxpbmVcblxuICB2YXIgaXNFdmFsID0gcGFydHNbMl0gJiYgcGFydHNbMl0uaW5kZXhPZignZXZhbCcpID09PSAwOyAvLyBzdGFydCBvZiBsaW5lXG5cbiAgdmFyIHN1Ym1hdGNoID0gY2hyb21lRXZhbFJlLmV4ZWMocGFydHNbMl0pO1xuXG4gIGlmIChpc0V2YWwgJiYgc3VibWF0Y2ggIT0gbnVsbCkge1xuICAgIC8vIHRocm93IG91dCBldmFsIGxpbmUvY29sdW1uIGFuZCB1c2UgdG9wLW1vc3QgbGluZS9jb2x1bW4gbnVtYmVyXG4gICAgcGFydHNbMl0gPSBzdWJtYXRjaFsxXTsgLy8gdXJsXG5cbiAgICBwYXJ0c1szXSA9IHN1Ym1hdGNoWzJdOyAvLyBsaW5lXG5cbiAgICBwYXJ0c1s0XSA9IHN1Ym1hdGNoWzNdOyAvLyBjb2x1bW5cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZmlsZTogIWlzTmF0aXZlID8gcGFydHNbMl0gOiBudWxsLFxuICAgIG1ldGhvZE5hbWU6IHBhcnRzWzFdIHx8IFVOS05PV05fRlVOQ1RJT04sXG4gICAgYXJndW1lbnRzOiBpc05hdGl2ZSA/IFtwYXJ0c1syXV0gOiBbXSxcbiAgICBsaW5lTnVtYmVyOiBwYXJ0c1szXSA/ICtwYXJ0c1szXSA6IG51bGwsXG4gICAgY29sdW1uOiBwYXJ0c1s0XSA/ICtwYXJ0c1s0XSA6IG51bGxcbiAgfTtcbn1cblxudmFyIHdpbmpzUmUgPSAvXlxccyphdCAoPzooKD86XFxbb2JqZWN0IG9iamVjdFxcXSk/LispICk/XFwoPygoPzpmaWxlfG1zLWFwcHh8aHR0cHM/fHdlYnBhY2t8YmxvYik6Lio/KTooXFxkKykoPzo6KFxcZCspKT9cXCk/XFxzKiQvaTtcblxuZnVuY3Rpb24gcGFyc2VXaW5qcyhsaW5lKSB7XG4gIHZhciBwYXJ0cyA9IHdpbmpzUmUuZXhlYyhsaW5lKTtcblxuICBpZiAoIXBhcnRzKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGZpbGU6IHBhcnRzWzJdLFxuICAgIG1ldGhvZE5hbWU6IHBhcnRzWzFdIHx8IFVOS05PV05fRlVOQ1RJT04sXG4gICAgYXJndW1lbnRzOiBbXSxcbiAgICBsaW5lTnVtYmVyOiArcGFydHNbM10sXG4gICAgY29sdW1uOiBwYXJ0c1s0XSA/ICtwYXJ0c1s0XSA6IG51bGxcbiAgfTtcbn1cblxudmFyIGdlY2tvUmUgPSAvXlxccyooLio/KSg/OlxcKCguKj8pXFwpKT8oPzpefEApKCg/OmZpbGV8aHR0cHM/fGJsb2J8Y2hyb21lfHdlYnBhY2t8cmVzb3VyY2V8XFxbbmF0aXZlKS4qP3xbXkBdKmJ1bmRsZSkoPzo6KFxcZCspKT8oPzo6KFxcZCspKT9cXHMqJC9pO1xudmFyIGdlY2tvRXZhbFJlID0gLyhcXFMrKSBsaW5lIChcXGQrKSg/OiA+IGV2YWwgbGluZSBcXGQrKSogPiBldmFsL2k7XG5cbmZ1bmN0aW9uIHBhcnNlR2Vja28obGluZSkge1xuICB2YXIgcGFydHMgPSBnZWNrb1JlLmV4ZWMobGluZSk7XG5cbiAgaWYgKCFwYXJ0cykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgdmFyIGlzRXZhbCA9IHBhcnRzWzNdICYmIHBhcnRzWzNdLmluZGV4T2YoJyA+IGV2YWwnKSA+IC0xO1xuICB2YXIgc3VibWF0Y2ggPSBnZWNrb0V2YWxSZS5leGVjKHBhcnRzWzNdKTtcblxuICBpZiAoaXNFdmFsICYmIHN1Ym1hdGNoICE9IG51bGwpIHtcbiAgICAvLyB0aHJvdyBvdXQgZXZhbCBsaW5lL2NvbHVtbiBhbmQgdXNlIHRvcC1tb3N0IGxpbmUgbnVtYmVyXG4gICAgcGFydHNbM10gPSBzdWJtYXRjaFsxXTtcbiAgICBwYXJ0c1s0XSA9IHN1Ym1hdGNoWzJdO1xuICAgIHBhcnRzWzVdID0gbnVsbDsgLy8gbm8gY29sdW1uIHdoZW4gZXZhbFxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBmaWxlOiBwYXJ0c1szXSxcbiAgICBtZXRob2ROYW1lOiBwYXJ0c1sxXSB8fCBVTktOT1dOX0ZVTkNUSU9OLFxuICAgIGFyZ3VtZW50czogcGFydHNbMl0gPyBwYXJ0c1syXS5zcGxpdCgnLCcpIDogW10sXG4gICAgbGluZU51bWJlcjogcGFydHNbNF0gPyArcGFydHNbNF0gOiBudWxsLFxuICAgIGNvbHVtbjogcGFydHNbNV0gPyArcGFydHNbNV0gOiBudWxsXG4gIH07XG59XG5cbnZhciBqYXZhU2NyaXB0Q29yZVJlID0gL15cXHMqKD86KFteQF0qKSg/OlxcKCguKj8pXFwpKT9AKT8oXFxTLio/KTooXFxkKykoPzo6KFxcZCspKT9cXHMqJC9pO1xuXG5mdW5jdGlvbiBwYXJzZUpTQyhsaW5lKSB7XG4gIHZhciBwYXJ0cyA9IGphdmFTY3JpcHRDb3JlUmUuZXhlYyhsaW5lKTtcblxuICBpZiAoIXBhcnRzKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGZpbGU6IHBhcnRzWzNdLFxuICAgIG1ldGhvZE5hbWU6IHBhcnRzWzFdIHx8IFVOS05PV05fRlVOQ1RJT04sXG4gICAgYXJndW1lbnRzOiBbXSxcbiAgICBsaW5lTnVtYmVyOiArcGFydHNbNF0sXG4gICAgY29sdW1uOiBwYXJ0c1s1XSA/ICtwYXJ0c1s1XSA6IG51bGxcbiAgfTtcbn1cblxudmFyIG5vZGVSZSA9IC9eXFxzKmF0ICg/OigoPzpcXFtvYmplY3Qgb2JqZWN0XFxdKT9bXlxcXFwvXSsoPzogXFxbYXMgXFxTK1xcXSk/KSApP1xcKD8oLio/KTooXFxkKykoPzo6KFxcZCspKT9cXCk/XFxzKiQvaTtcblxuZnVuY3Rpb24gcGFyc2VOb2RlKGxpbmUpIHtcbiAgdmFyIHBhcnRzID0gbm9kZVJlLmV4ZWMobGluZSk7XG5cbiAgaWYgKCFwYXJ0cykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBmaWxlOiBwYXJ0c1syXSxcbiAgICBtZXRob2ROYW1lOiBwYXJ0c1sxXSB8fCBVTktOT1dOX0ZVTkNUSU9OLFxuICAgIGFyZ3VtZW50czogW10sXG4gICAgbGluZU51bWJlcjogK3BhcnRzWzNdLFxuICAgIGNvbHVtbjogcGFydHNbNF0gPyArcGFydHNbNF0gOiBudWxsXG4gIH07XG59XG5cbmV4cG9ydCB7IHBhcnNlIH07XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/stacktrace-parser/dist/stack-trace-parser.esm.js\n"); + +/***/ }), + +/***/ "./node_modules/string-hash/index.js": +/*!*******************************************!*\ + !*** ./node_modules/string-hash/index.js ***! + \*******************************************/ +/***/ (function(module) { + +"use strict"; +eval("\n\nfunction hash(str) {\n var hash = 5381,\n i = str.length;\n\n while(i) {\n hash = (hash * 33) ^ str.charCodeAt(--i);\n }\n\n /* JavaScript does bitwise operations (like XOR, above) on 32-bit signed\n * integers. Since we want the results to be always positive, convert the\n * signed int to an unsigned by doing an unsigned bitshift. */\n return hash >>> 0;\n}\n\nmodule.exports = hash;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3RyaW5nLWhhc2gvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWI7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zdHJpbmctaGFzaC9pbmRleC5qcz84MTk4Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5mdW5jdGlvbiBoYXNoKHN0cikge1xuICB2YXIgaGFzaCA9IDUzODEsXG4gICAgICBpICAgID0gc3RyLmxlbmd0aDtcblxuICB3aGlsZShpKSB7XG4gICAgaGFzaCA9IChoYXNoICogMzMpIF4gc3RyLmNoYXJDb2RlQXQoLS1pKTtcbiAgfVxuXG4gIC8qIEphdmFTY3JpcHQgZG9lcyBiaXR3aXNlIG9wZXJhdGlvbnMgKGxpa2UgWE9SLCBhYm92ZSkgb24gMzItYml0IHNpZ25lZFxuICAgKiBpbnRlZ2Vycy4gU2luY2Ugd2Ugd2FudCB0aGUgcmVzdWx0cyB0byBiZSBhbHdheXMgcG9zaXRpdmUsIGNvbnZlcnQgdGhlXG4gICAqIHNpZ25lZCBpbnQgdG8gYW4gdW5zaWduZWQgYnkgZG9pbmcgYW4gdW5zaWduZWQgYml0c2hpZnQuICovXG4gIHJldHVybiBoYXNoID4+PiAwO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGhhc2g7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/string-hash/index.js\n"); + +/***/ }), + +/***/ "./node_modules/styled-jsx/dist/index.js": +/*!***********************************************!*\ + !*** ./node_modules/styled-jsx/dist/index.js ***! + \***********************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nexports.__esModule = true;\nexports.useStyleRegistry = exports.createStyleRegistry = exports.StyleRegistry = void 0;\n\nvar _stylesheetRegistry = __webpack_require__(/*! ./stylesheet-registry */ \"./node_modules/styled-jsx/dist/stylesheet-registry.js\");\n\nexports.StyleRegistry = _stylesheetRegistry.StyleRegistry;\nexports.createStyleRegistry = _stylesheetRegistry.createStyleRegistry;\nexports.useStyleRegistry = _stylesheetRegistry.useStyleRegistry;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3R5bGVkLWpzeC9kaXN0L2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLGtCQUFrQjtBQUNsQix3QkFBd0IsR0FBRywyQkFBMkIsR0FBRyxxQkFBcUI7O0FBRTlFLDBCQUEwQixtQkFBTyxDQUFDLG9GQUF1Qjs7QUFFekQscUJBQXFCO0FBQ3JCLDJCQUEyQjtBQUMzQix3QkFBd0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N0eWxlZC1qc3gvZGlzdC9pbmRleC5qcz9kYzJiIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy51c2VTdHlsZVJlZ2lzdHJ5ID0gZXhwb3J0cy5jcmVhdGVTdHlsZVJlZ2lzdHJ5ID0gZXhwb3J0cy5TdHlsZVJlZ2lzdHJ5ID0gdm9pZCAwO1xuXG52YXIgX3N0eWxlc2hlZXRSZWdpc3RyeSA9IHJlcXVpcmUoXCIuL3N0eWxlc2hlZXQtcmVnaXN0cnlcIik7XG5cbmV4cG9ydHMuU3R5bGVSZWdpc3RyeSA9IF9zdHlsZXNoZWV0UmVnaXN0cnkuU3R5bGVSZWdpc3RyeTtcbmV4cG9ydHMuY3JlYXRlU3R5bGVSZWdpc3RyeSA9IF9zdHlsZXNoZWV0UmVnaXN0cnkuY3JlYXRlU3R5bGVSZWdpc3RyeTtcbmV4cG9ydHMudXNlU3R5bGVSZWdpc3RyeSA9IF9zdHlsZXNoZWV0UmVnaXN0cnkudXNlU3R5bGVSZWdpc3RyeTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/styled-jsx/dist/index.js\n"); + +/***/ }), + +/***/ "./node_modules/styled-jsx/dist/lib/hash.js": +/*!**************************************************!*\ + !*** ./node_modules/styled-jsx/dist/lib/hash.js ***! + \**************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nexports.__esModule = true;\nexports.computeId = computeId;\nexports.computeSelector = computeSelector;\n\nvar _stringHash = _interopRequireDefault(__webpack_require__(/*! string-hash */ \"./node_modules/string-hash/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar sanitize = function sanitize(rule) {\n return rule.replace(/\\/style/gi, '\\\\/style');\n};\n\nvar cache = {};\n/**\n * computeId\n *\n * Compute and memoize a jsx id from a basedId and optionally props.\n */\n\nfunction computeId(baseId, props) {\n if (!props) {\n return \"jsx-\" + baseId;\n }\n\n var propsToString = String(props);\n var key = baseId + propsToString;\n\n if (!cache[key]) {\n cache[key] = \"jsx-\" + (0, _stringHash[\"default\"])(baseId + \"-\" + propsToString);\n }\n\n return cache[key];\n}\n/**\n * computeSelector\n *\n * Compute and memoize dynamic selectors.\n */\n\n\nfunction computeSelector(id, css) {\n var selectoPlaceholderRegexp = /__jsx-style-dynamic-selector/g; // Sanitize SSR-ed CSS.\n // Client side code doesn't need to be sanitized since we use\n // document.createTextNode (dev) and the CSSOM api sheet.insertRule (prod).\n\n if (typeof window === 'undefined') {\n css = sanitize(css);\n }\n\n var idcss = id + css;\n\n if (!cache[idcss]) {\n cache[idcss] = css.replace(selectoPlaceholderRegexp, id);\n }\n\n return cache[idcss];\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3R5bGVkLWpzeC9kaXN0L2xpYi9oYXNoLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLGtCQUFrQjtBQUNsQixpQkFBaUI7QUFDakIsdUJBQXVCOztBQUV2Qix5Q0FBeUMsbUJBQU8sQ0FBQyx3REFBYTs7QUFFOUQsdUNBQXVDLHVDQUF1Qzs7QUFFOUU7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQSxrRUFBa0U7QUFDbEU7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N0eWxlZC1qc3gvZGlzdC9saWIvaGFzaC5qcz8yM2Y4Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5jb21wdXRlSWQgPSBjb21wdXRlSWQ7XG5leHBvcnRzLmNvbXB1dGVTZWxlY3RvciA9IGNvbXB1dGVTZWxlY3RvcjtcblxudmFyIF9zdHJpbmdIYXNoID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwic3RyaW5nLWhhc2hcIikpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxudmFyIHNhbml0aXplID0gZnVuY3Rpb24gc2FuaXRpemUocnVsZSkge1xuICByZXR1cm4gcnVsZS5yZXBsYWNlKC9cXC9zdHlsZS9naSwgJ1xcXFwvc3R5bGUnKTtcbn07XG5cbnZhciBjYWNoZSA9IHt9O1xuLyoqXG4gKiBjb21wdXRlSWRcbiAqXG4gKiBDb21wdXRlIGFuZCBtZW1vaXplIGEganN4IGlkIGZyb20gYSBiYXNlZElkIGFuZCBvcHRpb25hbGx5IHByb3BzLlxuICovXG5cbmZ1bmN0aW9uIGNvbXB1dGVJZChiYXNlSWQsIHByb3BzKSB7XG4gIGlmICghcHJvcHMpIHtcbiAgICByZXR1cm4gXCJqc3gtXCIgKyBiYXNlSWQ7XG4gIH1cblxuICB2YXIgcHJvcHNUb1N0cmluZyA9IFN0cmluZyhwcm9wcyk7XG4gIHZhciBrZXkgPSBiYXNlSWQgKyBwcm9wc1RvU3RyaW5nO1xuXG4gIGlmICghY2FjaGVba2V5XSkge1xuICAgIGNhY2hlW2tleV0gPSBcImpzeC1cIiArICgwLCBfc3RyaW5nSGFzaFtcImRlZmF1bHRcIl0pKGJhc2VJZCArIFwiLVwiICsgcHJvcHNUb1N0cmluZyk7XG4gIH1cblxuICByZXR1cm4gY2FjaGVba2V5XTtcbn1cbi8qKlxuICogY29tcHV0ZVNlbGVjdG9yXG4gKlxuICogQ29tcHV0ZSBhbmQgbWVtb2l6ZSBkeW5hbWljIHNlbGVjdG9ycy5cbiAqL1xuXG5cbmZ1bmN0aW9uIGNvbXB1dGVTZWxlY3RvcihpZCwgY3NzKSB7XG4gIHZhciBzZWxlY3RvUGxhY2Vob2xkZXJSZWdleHAgPSAvX19qc3gtc3R5bGUtZHluYW1pYy1zZWxlY3Rvci9nOyAvLyBTYW5pdGl6ZSBTU1ItZWQgQ1NTLlxuICAvLyBDbGllbnQgc2lkZSBjb2RlIGRvZXNuJ3QgbmVlZCB0byBiZSBzYW5pdGl6ZWQgc2luY2Ugd2UgdXNlXG4gIC8vIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlIChkZXYpIGFuZCB0aGUgQ1NTT00gYXBpIHNoZWV0Lmluc2VydFJ1bGUgKHByb2QpLlxuXG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgIGNzcyA9IHNhbml0aXplKGNzcyk7XG4gIH1cblxuICB2YXIgaWRjc3MgPSBpZCArIGNzcztcblxuICBpZiAoIWNhY2hlW2lkY3NzXSkge1xuICAgIGNhY2hlW2lkY3NzXSA9IGNzcy5yZXBsYWNlKHNlbGVjdG9QbGFjZWhvbGRlclJlZ2V4cCwgaWQpO1xuICB9XG5cbiAgcmV0dXJuIGNhY2hlW2lkY3NzXTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/styled-jsx/dist/lib/hash.js\n"); + +/***/ }), + +/***/ "./node_modules/styled-jsx/dist/lib/stylesheet.js": +/*!********************************************************!*\ + !*** ./node_modules/styled-jsx/dist/lib/stylesheet.js ***! + \********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("/* provided dependency */ var process = __webpack_require__(/*! process */ \"./node_modules/process/browser.js\");\n\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/*\nBased on Glamor's sheet\nhttps://github.com/threepointone/glamor/blob/667b480d31b3721a905021b26e1290ce92ca2879/src/sheet.js\n*/\nvar isProd = typeof process !== 'undefined' && process.env && \"development\" === 'production';\n\nvar isString = function isString(o) {\n return Object.prototype.toString.call(o) === '[object String]';\n};\n\nvar StyleSheet = /*#__PURE__*/function () {\n function StyleSheet(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$name = _ref.name,\n name = _ref$name === void 0 ? 'stylesheet' : _ref$name,\n _ref$optimizeForSpeed = _ref.optimizeForSpeed,\n optimizeForSpeed = _ref$optimizeForSpeed === void 0 ? isProd : _ref$optimizeForSpeed,\n _ref$isBrowser = _ref.isBrowser,\n isBrowser = _ref$isBrowser === void 0 ? typeof window !== 'undefined' : _ref$isBrowser;\n\n invariant(isString(name), '`name` must be a string');\n this._name = name;\n this._deletedRulePlaceholder = \"#\" + name + \"-deleted-rule____{}\";\n invariant(typeof optimizeForSpeed === 'boolean', '`optimizeForSpeed` must be a boolean');\n this._optimizeForSpeed = optimizeForSpeed;\n this._isBrowser = isBrowser;\n this._serverSheet = undefined;\n this._tags = [];\n this._injected = false;\n this._rulesCount = 0;\n var node = this._isBrowser && document.querySelector('meta[property=\"csp-nonce\"]');\n this._nonce = node ? node.getAttribute('content') : null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.setOptimizeForSpeed = function setOptimizeForSpeed(bool) {\n invariant(typeof bool === 'boolean', '`setOptimizeForSpeed` accepts a boolean');\n invariant(this._rulesCount === 0, 'optimizeForSpeed cannot be when rules have already been inserted');\n this.flush();\n this._optimizeForSpeed = bool;\n this.inject();\n };\n\n _proto.isOptimizeForSpeed = function isOptimizeForSpeed() {\n return this._optimizeForSpeed;\n };\n\n _proto.inject = function inject() {\n var _this = this;\n\n invariant(!this._injected, 'sheet already injected');\n this._injected = true;\n\n if (this._isBrowser && this._optimizeForSpeed) {\n this._tags[0] = this.makeStyleTag(this._name);\n this._optimizeForSpeed = 'insertRule' in this.getSheet();\n\n if (!this._optimizeForSpeed) {\n if (!isProd) {\n console.warn('StyleSheet: optimizeForSpeed mode not supported falling back to standard mode.');\n }\n\n this.flush();\n this._injected = true;\n }\n\n return;\n }\n\n this._serverSheet = {\n cssRules: [],\n insertRule: function insertRule(rule, index) {\n if (typeof index === 'number') {\n _this._serverSheet.cssRules[index] = {\n cssText: rule\n };\n } else {\n _this._serverSheet.cssRules.push({\n cssText: rule\n });\n }\n\n return index;\n },\n deleteRule: function deleteRule(index) {\n _this._serverSheet.cssRules[index] = null;\n }\n };\n };\n\n _proto.getSheetForTag = function getSheetForTag(tag) {\n if (tag.sheet) {\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n return document.styleSheets[i];\n }\n }\n };\n\n _proto.getSheet = function getSheet() {\n return this.getSheetForTag(this._tags[this._tags.length - 1]);\n };\n\n _proto.insertRule = function insertRule(rule, index) {\n invariant(isString(rule), '`insertRule` accepts only strings');\n\n if (!this._isBrowser) {\n if (typeof index !== 'number') {\n index = this._serverSheet.cssRules.length;\n }\n\n this._serverSheet.insertRule(rule, index);\n\n return this._rulesCount++;\n }\n\n if (this._optimizeForSpeed) {\n var sheet = this.getSheet();\n\n if (typeof index !== 'number') {\n index = sheet.cssRules.length;\n } // this weirdness for perf, and chrome's weird bug\n // https://stackoverflow.com/questions/20007992/chrome-suddenly-stopped-accepting-insertrule\n\n\n try {\n sheet.insertRule(rule, index);\n } catch (error) {\n if (!isProd) {\n console.warn(\"StyleSheet: illegal rule: \\n\\n\" + rule + \"\\n\\nSee https://stackoverflow.com/q/20007992 for more info\");\n }\n\n return -1;\n }\n } else {\n var insertionPoint = this._tags[index];\n\n this._tags.push(this.makeStyleTag(this._name, rule, insertionPoint));\n }\n\n return this._rulesCount++;\n };\n\n _proto.replaceRule = function replaceRule(index, rule) {\n if (this._optimizeForSpeed || !this._isBrowser) {\n var sheet = this._isBrowser ? this.getSheet() : this._serverSheet;\n\n if (!rule.trim()) {\n rule = this._deletedRulePlaceholder;\n }\n\n if (!sheet.cssRules[index]) {\n // @TBD Should we throw an error?\n return index;\n }\n\n sheet.deleteRule(index);\n\n try {\n sheet.insertRule(rule, index);\n } catch (error) {\n if (!isProd) {\n console.warn(\"StyleSheet: illegal rule: \\n\\n\" + rule + \"\\n\\nSee https://stackoverflow.com/q/20007992 for more info\");\n } // In order to preserve the indices we insert a deleteRulePlaceholder\n\n\n sheet.insertRule(this._deletedRulePlaceholder, index);\n }\n } else {\n var tag = this._tags[index];\n invariant(tag, \"old rule at index `\" + index + \"` not found\");\n tag.textContent = rule;\n }\n\n return index;\n };\n\n _proto.deleteRule = function deleteRule(index) {\n if (!this._isBrowser) {\n this._serverSheet.deleteRule(index);\n\n return;\n }\n\n if (this._optimizeForSpeed) {\n this.replaceRule(index, '');\n } else {\n var tag = this._tags[index];\n invariant(tag, \"rule at index `\" + index + \"` not found\");\n tag.parentNode.removeChild(tag);\n this._tags[index] = null;\n }\n };\n\n _proto.flush = function flush() {\n this._injected = false;\n this._rulesCount = 0;\n\n if (this._isBrowser) {\n this._tags.forEach(function (tag) {\n return tag && tag.parentNode.removeChild(tag);\n });\n\n this._tags = [];\n } else {\n // simpler on server\n this._serverSheet.cssRules = [];\n }\n };\n\n _proto.cssRules = function cssRules() {\n var _this2 = this;\n\n if (!this._isBrowser) {\n return this._serverSheet.cssRules;\n }\n\n return this._tags.reduce(function (rules, tag) {\n if (tag) {\n rules = rules.concat(Array.prototype.map.call(_this2.getSheetForTag(tag).cssRules, function (rule) {\n return rule.cssText === _this2._deletedRulePlaceholder ? null : rule;\n }));\n } else {\n rules.push(null);\n }\n\n return rules;\n }, []);\n };\n\n _proto.makeStyleTag = function makeStyleTag(name, cssString, relativeToTag) {\n if (cssString) {\n invariant(isString(cssString), 'makeStyleTag acceps only strings as second parameter');\n }\n\n var tag = document.createElement('style');\n if (this._nonce) tag.setAttribute('nonce', this._nonce);\n tag.type = 'text/css';\n tag.setAttribute(\"data-\" + name, '');\n\n if (cssString) {\n tag.appendChild(document.createTextNode(cssString));\n }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n\n if (relativeToTag) {\n head.insertBefore(tag, relativeToTag);\n } else {\n head.appendChild(tag);\n }\n\n return tag;\n };\n\n _createClass(StyleSheet, [{\n key: \"length\",\n get: function get() {\n return this._rulesCount;\n }\n }]);\n\n return StyleSheet;\n}();\n\nexports[\"default\"] = StyleSheet;\n\nfunction invariant(condition, message) {\n if (!condition) {\n throw new Error(\"StyleSheet: \" + message + \".\");\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3R5bGVkLWpzeC9kaXN0L2xpYi9zdHlsZXNoZWV0LmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7QUFFYixrQkFBa0I7QUFDbEIsa0JBQWtCOztBQUVsQiw0Q0FBNEMsZ0JBQWdCLGtCQUFrQixPQUFPLDJCQUEyQix3REFBd0QsZ0NBQWdDLHVEQUF1RDs7QUFFL1AsOERBQThELHNFQUFzRSw4REFBOEQ7O0FBRWxNO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLE9BQU8sb0JBQW9CLE9BQU8sUUFBUSxhQUFvQjs7QUFFbEY7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxxQ0FBcUM7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxvRUFBb0U7QUFDcEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLFdBQVc7QUFDWDs7QUFFQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07OztBQUdOLG9CQUFvQixpQ0FBaUM7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjs7O0FBR0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxVQUFVOzs7QUFHVjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE9BQU87O0FBRVA7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsUUFBUTtBQUNSO0FBQ0E7O0FBRUE7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0EsQ0FBQzs7QUFFRCxrQkFBa0I7O0FBRWxCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N0eWxlZC1qc3gvZGlzdC9saWIvc3R5bGVzaGVldC5qcz8xODZhIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH1cblxuZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH1cblxuLypcbkJhc2VkIG9uIEdsYW1vcidzIHNoZWV0XG5odHRwczovL2dpdGh1Yi5jb20vdGhyZWVwb2ludG9uZS9nbGFtb3IvYmxvYi82NjdiNDgwZDMxYjM3MjFhOTA1MDIxYjI2ZTEyOTBjZTkyY2EyODc5L3NyYy9zaGVldC5qc1xuKi9cbnZhciBpc1Byb2QgPSB0eXBlb2YgcHJvY2VzcyAhPT0gJ3VuZGVmaW5lZCcgJiYgcHJvY2Vzcy5lbnYgJiYgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJztcblxudmFyIGlzU3RyaW5nID0gZnVuY3Rpb24gaXNTdHJpbmcobykge1xuICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pID09PSAnW29iamVjdCBTdHJpbmddJztcbn07XG5cbnZhciBTdHlsZVNoZWV0ID0gLyojX19QVVJFX18qL2Z1bmN0aW9uICgpIHtcbiAgZnVuY3Rpb24gU3R5bGVTaGVldChfdGVtcCkge1xuICAgIHZhciBfcmVmID0gX3RlbXAgPT09IHZvaWQgMCA/IHt9IDogX3RlbXAsXG4gICAgICAgIF9yZWYkbmFtZSA9IF9yZWYubmFtZSxcbiAgICAgICAgbmFtZSA9IF9yZWYkbmFtZSA9PT0gdm9pZCAwID8gJ3N0eWxlc2hlZXQnIDogX3JlZiRuYW1lLFxuICAgICAgICBfcmVmJG9wdGltaXplRm9yU3BlZWQgPSBfcmVmLm9wdGltaXplRm9yU3BlZWQsXG4gICAgICAgIG9wdGltaXplRm9yU3BlZWQgPSBfcmVmJG9wdGltaXplRm9yU3BlZWQgPT09IHZvaWQgMCA/IGlzUHJvZCA6IF9yZWYkb3B0aW1pemVGb3JTcGVlZCxcbiAgICAgICAgX3JlZiRpc0Jyb3dzZXIgPSBfcmVmLmlzQnJvd3NlcixcbiAgICAgICAgaXNCcm93c2VyID0gX3JlZiRpc0Jyb3dzZXIgPT09IHZvaWQgMCA/IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnIDogX3JlZiRpc0Jyb3dzZXI7XG5cbiAgICBpbnZhcmlhbnQoaXNTdHJpbmcobmFtZSksICdgbmFtZWAgbXVzdCBiZSBhIHN0cmluZycpO1xuICAgIHRoaXMuX25hbWUgPSBuYW1lO1xuICAgIHRoaXMuX2RlbGV0ZWRSdWxlUGxhY2Vob2xkZXIgPSBcIiNcIiArIG5hbWUgKyBcIi1kZWxldGVkLXJ1bGVfX19fe31cIjtcbiAgICBpbnZhcmlhbnQodHlwZW9mIG9wdGltaXplRm9yU3BlZWQgPT09ICdib29sZWFuJywgJ2BvcHRpbWl6ZUZvclNwZWVkYCBtdXN0IGJlIGEgYm9vbGVhbicpO1xuICAgIHRoaXMuX29wdGltaXplRm9yU3BlZWQgPSBvcHRpbWl6ZUZvclNwZWVkO1xuICAgIHRoaXMuX2lzQnJvd3NlciA9IGlzQnJvd3NlcjtcbiAgICB0aGlzLl9zZXJ2ZXJTaGVldCA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLl90YWdzID0gW107XG4gICAgdGhpcy5faW5qZWN0ZWQgPSBmYWxzZTtcbiAgICB0aGlzLl9ydWxlc0NvdW50ID0gMDtcbiAgICB2YXIgbm9kZSA9IHRoaXMuX2lzQnJvd3NlciAmJiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdtZXRhW3Byb3BlcnR5PVwiY3NwLW5vbmNlXCJdJyk7XG4gICAgdGhpcy5fbm9uY2UgPSBub2RlID8gbm9kZS5nZXRBdHRyaWJ1dGUoJ2NvbnRlbnQnKSA6IG51bGw7XG4gIH1cblxuICB2YXIgX3Byb3RvID0gU3R5bGVTaGVldC5wcm90b3R5cGU7XG5cbiAgX3Byb3RvLnNldE9wdGltaXplRm9yU3BlZWQgPSBmdW5jdGlvbiBzZXRPcHRpbWl6ZUZvclNwZWVkKGJvb2wpIHtcbiAgICBpbnZhcmlhbnQodHlwZW9mIGJvb2wgPT09ICdib29sZWFuJywgJ2BzZXRPcHRpbWl6ZUZvclNwZWVkYCBhY2NlcHRzIGEgYm9vbGVhbicpO1xuICAgIGludmFyaWFudCh0aGlzLl9ydWxlc0NvdW50ID09PSAwLCAnb3B0aW1pemVGb3JTcGVlZCBjYW5ub3QgYmUgd2hlbiBydWxlcyBoYXZlIGFscmVhZHkgYmVlbiBpbnNlcnRlZCcpO1xuICAgIHRoaXMuZmx1c2goKTtcbiAgICB0aGlzLl9vcHRpbWl6ZUZvclNwZWVkID0gYm9vbDtcbiAgICB0aGlzLmluamVjdCgpO1xuICB9O1xuXG4gIF9wcm90by5pc09wdGltaXplRm9yU3BlZWQgPSBmdW5jdGlvbiBpc09wdGltaXplRm9yU3BlZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX29wdGltaXplRm9yU3BlZWQ7XG4gIH07XG5cbiAgX3Byb3RvLmluamVjdCA9IGZ1bmN0aW9uIGluamVjdCgpIHtcbiAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgaW52YXJpYW50KCF0aGlzLl9pbmplY3RlZCwgJ3NoZWV0IGFscmVhZHkgaW5qZWN0ZWQnKTtcbiAgICB0aGlzLl9pbmplY3RlZCA9IHRydWU7XG5cbiAgICBpZiAodGhpcy5faXNCcm93c2VyICYmIHRoaXMuX29wdGltaXplRm9yU3BlZWQpIHtcbiAgICAgIHRoaXMuX3RhZ3NbMF0gPSB0aGlzLm1ha2VTdHlsZVRhZyh0aGlzLl9uYW1lKTtcbiAgICAgIHRoaXMuX29wdGltaXplRm9yU3BlZWQgPSAnaW5zZXJ0UnVsZScgaW4gdGhpcy5nZXRTaGVldCgpO1xuXG4gICAgICBpZiAoIXRoaXMuX29wdGltaXplRm9yU3BlZWQpIHtcbiAgICAgICAgaWYgKCFpc1Byb2QpIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oJ1N0eWxlU2hlZXQ6IG9wdGltaXplRm9yU3BlZWQgbW9kZSBub3Qgc3VwcG9ydGVkIGZhbGxpbmcgYmFjayB0byBzdGFuZGFyZCBtb2RlLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5mbHVzaCgpO1xuICAgICAgICB0aGlzLl9pbmplY3RlZCA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9zZXJ2ZXJTaGVldCA9IHtcbiAgICAgIGNzc1J1bGVzOiBbXSxcbiAgICAgIGluc2VydFJ1bGU6IGZ1bmN0aW9uIGluc2VydFJ1bGUocnVsZSwgaW5kZXgpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBpbmRleCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICBfdGhpcy5fc2VydmVyU2hlZXQuY3NzUnVsZXNbaW5kZXhdID0ge1xuICAgICAgICAgICAgY3NzVGV4dDogcnVsZVxuICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgX3RoaXMuX3NlcnZlclNoZWV0LmNzc1J1bGVzLnB1c2goe1xuICAgICAgICAgICAgY3NzVGV4dDogcnVsZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgICAgfSxcbiAgICAgIGRlbGV0ZVJ1bGU6IGZ1bmN0aW9uIGRlbGV0ZVJ1bGUoaW5kZXgpIHtcbiAgICAgICAgX3RoaXMuX3NlcnZlclNoZWV0LmNzc1J1bGVzW2luZGV4XSA9IG51bGw7XG4gICAgICB9XG4gICAgfTtcbiAgfTtcblxuICBfcHJvdG8uZ2V0U2hlZXRGb3JUYWcgPSBmdW5jdGlvbiBnZXRTaGVldEZvclRhZyh0YWcpIHtcbiAgICBpZiAodGFnLnNoZWV0KSB7XG4gICAgICByZXR1cm4gdGFnLnNoZWV0O1xuICAgIH0gLy8gdGhpcyB3ZWlyZG5lc3MgYnJvdWdodCB0byB5b3UgYnkgZmlyZWZveFxuXG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRvY3VtZW50LnN0eWxlU2hlZXRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoZG9jdW1lbnQuc3R5bGVTaGVldHNbaV0ub3duZXJOb2RlID09PSB0YWcpIHtcbiAgICAgICAgcmV0dXJuIGRvY3VtZW50LnN0eWxlU2hlZXRzW2ldO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICBfcHJvdG8uZ2V0U2hlZXQgPSBmdW5jdGlvbiBnZXRTaGVldCgpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRTaGVldEZvclRhZyh0aGlzLl90YWdzW3RoaXMuX3RhZ3MubGVuZ3RoIC0gMV0pO1xuICB9O1xuXG4gIF9wcm90by5pbnNlcnRSdWxlID0gZnVuY3Rpb24gaW5zZXJ0UnVsZShydWxlLCBpbmRleCkge1xuICAgIGludmFyaWFudChpc1N0cmluZyhydWxlKSwgJ2BpbnNlcnRSdWxlYCBhY2NlcHRzIG9ubHkgc3RyaW5ncycpO1xuXG4gICAgaWYgKCF0aGlzLl9pc0Jyb3dzZXIpIHtcbiAgICAgIGlmICh0eXBlb2YgaW5kZXggIT09ICdudW1iZXInKSB7XG4gICAgICAgIGluZGV4ID0gdGhpcy5fc2VydmVyU2hlZXQuY3NzUnVsZXMubGVuZ3RoO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9zZXJ2ZXJTaGVldC5pbnNlcnRSdWxlKHJ1bGUsIGluZGV4KTtcblxuICAgICAgcmV0dXJuIHRoaXMuX3J1bGVzQ291bnQrKztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fb3B0aW1pemVGb3JTcGVlZCkge1xuICAgICAgdmFyIHNoZWV0ID0gdGhpcy5nZXRTaGVldCgpO1xuXG4gICAgICBpZiAodHlwZW9mIGluZGV4ICE9PSAnbnVtYmVyJykge1xuICAgICAgICBpbmRleCA9IHNoZWV0LmNzc1J1bGVzLmxlbmd0aDtcbiAgICAgIH0gLy8gdGhpcyB3ZWlyZG5lc3MgZm9yIHBlcmYsIGFuZCBjaHJvbWUncyB3ZWlyZCBidWdcbiAgICAgIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzIwMDA3OTkyL2Nocm9tZS1zdWRkZW5seS1zdG9wcGVkLWFjY2VwdGluZy1pbnNlcnRydWxlXG5cblxuICAgICAgdHJ5IHtcbiAgICAgICAgc2hlZXQuaW5zZXJ0UnVsZShydWxlLCBpbmRleCk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBpZiAoIWlzUHJvZCkge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcIlN0eWxlU2hlZXQ6IGlsbGVnYWwgcnVsZTogXFxuXFxuXCIgKyBydWxlICsgXCJcXG5cXG5TZWUgaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xLzIwMDA3OTkyIGZvciBtb3JlIGluZm9cIik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gLTE7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBpbnNlcnRpb25Qb2ludCA9IHRoaXMuX3RhZ3NbaW5kZXhdO1xuXG4gICAgICB0aGlzLl90YWdzLnB1c2godGhpcy5tYWtlU3R5bGVUYWcodGhpcy5fbmFtZSwgcnVsZSwgaW5zZXJ0aW9uUG9pbnQpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fcnVsZXNDb3VudCsrO1xuICB9O1xuXG4gIF9wcm90by5yZXBsYWNlUnVsZSA9IGZ1bmN0aW9uIHJlcGxhY2VSdWxlKGluZGV4LCBydWxlKSB7XG4gICAgaWYgKHRoaXMuX29wdGltaXplRm9yU3BlZWQgfHwgIXRoaXMuX2lzQnJvd3Nlcikge1xuICAgICAgdmFyIHNoZWV0ID0gdGhpcy5faXNCcm93c2VyID8gdGhpcy5nZXRTaGVldCgpIDogdGhpcy5fc2VydmVyU2hlZXQ7XG5cbiAgICAgIGlmICghcnVsZS50cmltKCkpIHtcbiAgICAgICAgcnVsZSA9IHRoaXMuX2RlbGV0ZWRSdWxlUGxhY2Vob2xkZXI7XG4gICAgICB9XG5cbiAgICAgIGlmICghc2hlZXQuY3NzUnVsZXNbaW5kZXhdKSB7XG4gICAgICAgIC8vIEBUQkQgU2hvdWxkIHdlIHRocm93IGFuIGVycm9yP1xuICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgICB9XG5cbiAgICAgIHNoZWV0LmRlbGV0ZVJ1bGUoaW5kZXgpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBzaGVldC5pbnNlcnRSdWxlKHJ1bGUsIGluZGV4KTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGlmICghaXNQcm9kKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFwiU3R5bGVTaGVldDogaWxsZWdhbCBydWxlOiBcXG5cXG5cIiArIHJ1bGUgKyBcIlxcblxcblNlZSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3EvMjAwMDc5OTIgZm9yIG1vcmUgaW5mb1wiKTtcbiAgICAgICAgfSAvLyBJbiBvcmRlciB0byBwcmVzZXJ2ZSB0aGUgaW5kaWNlcyB3ZSBpbnNlcnQgYSBkZWxldGVSdWxlUGxhY2Vob2xkZXJcblxuXG4gICAgICAgIHNoZWV0Lmluc2VydFJ1bGUodGhpcy5fZGVsZXRlZFJ1bGVQbGFjZWhvbGRlciwgaW5kZXgpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgdGFnID0gdGhpcy5fdGFnc1tpbmRleF07XG4gICAgICBpbnZhcmlhbnQodGFnLCBcIm9sZCBydWxlIGF0IGluZGV4IGBcIiArIGluZGV4ICsgXCJgIG5vdCBmb3VuZFwiKTtcbiAgICAgIHRhZy50ZXh0Q29udGVudCA9IHJ1bGU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGluZGV4O1xuICB9O1xuXG4gIF9wcm90by5kZWxldGVSdWxlID0gZnVuY3Rpb24gZGVsZXRlUnVsZShpbmRleCkge1xuICAgIGlmICghdGhpcy5faXNCcm93c2VyKSB7XG4gICAgICB0aGlzLl9zZXJ2ZXJTaGVldC5kZWxldGVSdWxlKGluZGV4KTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9vcHRpbWl6ZUZvclNwZWVkKSB7XG4gICAgICB0aGlzLnJlcGxhY2VSdWxlKGluZGV4LCAnJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciB0YWcgPSB0aGlzLl90YWdzW2luZGV4XTtcbiAgICAgIGludmFyaWFudCh0YWcsIFwicnVsZSBhdCBpbmRleCBgXCIgKyBpbmRleCArIFwiYCBub3QgZm91bmRcIik7XG4gICAgICB0YWcucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0YWcpO1xuICAgICAgdGhpcy5fdGFnc1tpbmRleF0gPSBudWxsO1xuICAgIH1cbiAgfTtcblxuICBfcHJvdG8uZmx1c2ggPSBmdW5jdGlvbiBmbHVzaCgpIHtcbiAgICB0aGlzLl9pbmplY3RlZCA9IGZhbHNlO1xuICAgIHRoaXMuX3J1bGVzQ291bnQgPSAwO1xuXG4gICAgaWYgKHRoaXMuX2lzQnJvd3Nlcikge1xuICAgICAgdGhpcy5fdGFncy5mb3JFYWNoKGZ1bmN0aW9uICh0YWcpIHtcbiAgICAgICAgcmV0dXJuIHRhZyAmJiB0YWcucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0YWcpO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuX3RhZ3MgPSBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gc2ltcGxlciBvbiBzZXJ2ZXJcbiAgICAgIHRoaXMuX3NlcnZlclNoZWV0LmNzc1J1bGVzID0gW107XG4gICAgfVxuICB9O1xuXG4gIF9wcm90by5jc3NSdWxlcyA9IGZ1bmN0aW9uIGNzc1J1bGVzKCkge1xuICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgaWYgKCF0aGlzLl9pc0Jyb3dzZXIpIHtcbiAgICAgIHJldHVybiB0aGlzLl9zZXJ2ZXJTaGVldC5jc3NSdWxlcztcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fdGFncy5yZWR1Y2UoZnVuY3Rpb24gKHJ1bGVzLCB0YWcpIHtcbiAgICAgIGlmICh0YWcpIHtcbiAgICAgICAgcnVsZXMgPSBydWxlcy5jb25jYXQoQXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKF90aGlzMi5nZXRTaGVldEZvclRhZyh0YWcpLmNzc1J1bGVzLCBmdW5jdGlvbiAocnVsZSkge1xuICAgICAgICAgIHJldHVybiBydWxlLmNzc1RleHQgPT09IF90aGlzMi5fZGVsZXRlZFJ1bGVQbGFjZWhvbGRlciA/IG51bGwgOiBydWxlO1xuICAgICAgICB9KSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBydWxlcy5wdXNoKG51bGwpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcnVsZXM7XG4gICAgfSwgW10pO1xuICB9O1xuXG4gIF9wcm90by5tYWtlU3R5bGVUYWcgPSBmdW5jdGlvbiBtYWtlU3R5bGVUYWcobmFtZSwgY3NzU3RyaW5nLCByZWxhdGl2ZVRvVGFnKSB7XG4gICAgaWYgKGNzc1N0cmluZykge1xuICAgICAgaW52YXJpYW50KGlzU3RyaW5nKGNzc1N0cmluZyksICdtYWtlU3R5bGVUYWcgYWNjZXBzIG9ubHkgc3RyaW5ncyBhcyBzZWNvbmQgcGFyYW1ldGVyJyk7XG4gICAgfVxuXG4gICAgdmFyIHRhZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gICAgaWYgKHRoaXMuX25vbmNlKSB0YWcuc2V0QXR0cmlidXRlKCdub25jZScsIHRoaXMuX25vbmNlKTtcbiAgICB0YWcudHlwZSA9ICd0ZXh0L2Nzcyc7XG4gICAgdGFnLnNldEF0dHJpYnV0ZShcImRhdGEtXCIgKyBuYW1lLCAnJyk7XG5cbiAgICBpZiAoY3NzU3RyaW5nKSB7XG4gICAgICB0YWcuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzU3RyaW5nKSk7XG4gICAgfVxuXG4gICAgdmFyIGhlYWQgPSBkb2N1bWVudC5oZWFkIHx8IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF07XG5cbiAgICBpZiAocmVsYXRpdmVUb1RhZykge1xuICAgICAgaGVhZC5pbnNlcnRCZWZvcmUodGFnLCByZWxhdGl2ZVRvVGFnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaGVhZC5hcHBlbmRDaGlsZCh0YWcpO1xuICAgIH1cblxuICAgIHJldHVybiB0YWc7XG4gIH07XG5cbiAgX2NyZWF0ZUNsYXNzKFN0eWxlU2hlZXQsIFt7XG4gICAga2V5OiBcImxlbmd0aFwiLFxuICAgIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgICAgcmV0dXJuIHRoaXMuX3J1bGVzQ291bnQ7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIFN0eWxlU2hlZXQ7XG59KCk7XG5cbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gU3R5bGVTaGVldDtcblxuZnVuY3Rpb24gaW52YXJpYW50KGNvbmRpdGlvbiwgbWVzc2FnZSkge1xuICBpZiAoIWNvbmRpdGlvbikge1xuICAgIHRocm93IG5ldyBFcnJvcihcIlN0eWxlU2hlZXQ6IFwiICsgbWVzc2FnZSArIFwiLlwiKTtcbiAgfVxufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/styled-jsx/dist/lib/stylesheet.js\n"); + +/***/ }), + +/***/ "./node_modules/styled-jsx/dist/stylesheet-registry.js": +/*!*************************************************************!*\ + !*** ./node_modules/styled-jsx/dist/stylesheet-registry.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nexports.__esModule = true;\nexports.createStyleRegistry = createStyleRegistry;\nexports.StyleRegistry = StyleRegistry;\nexports.useStyleRegistry = useStyleRegistry;\nexports.StyleSheetContext = exports.StyleSheetRegistry = void 0;\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _stylesheet = _interopRequireDefault(__webpack_require__(/*! ./lib/stylesheet */ \"./node_modules/styled-jsx/dist/lib/stylesheet.js\"));\n\nvar _hash = __webpack_require__(/*! ./lib/hash */ \"./node_modules/styled-jsx/dist/lib/hash.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction mapRulesToStyle(cssRules, options) {\n if (options === void 0) {\n options = {};\n }\n\n return cssRules.map(function (args) {\n var id = args[0];\n var css = args[1];\n return _react[\"default\"].createElement('style', {\n id: \"__\" + id,\n // Avoid warnings upon render with a key\n key: \"__\" + id,\n nonce: options.nonce ? options.nonce : undefined,\n dangerouslySetInnerHTML: {\n __html: css\n }\n });\n });\n}\n\nvar StyleSheetRegistry = /*#__PURE__*/function () {\n function StyleSheetRegistry(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$styleSheet = _ref.styleSheet,\n styleSheet = _ref$styleSheet === void 0 ? null : _ref$styleSheet,\n _ref$optimizeForSpeed = _ref.optimizeForSpeed,\n optimizeForSpeed = _ref$optimizeForSpeed === void 0 ? false : _ref$optimizeForSpeed,\n _ref$isBrowser = _ref.isBrowser,\n isBrowser = _ref$isBrowser === void 0 ? typeof window !== 'undefined' : _ref$isBrowser;\n\n this._sheet = styleSheet || new _stylesheet[\"default\"]({\n name: 'styled-jsx',\n optimizeForSpeed: optimizeForSpeed\n });\n\n this._sheet.inject();\n\n if (styleSheet && typeof optimizeForSpeed === 'boolean') {\n this._sheet.setOptimizeForSpeed(optimizeForSpeed);\n\n this._optimizeForSpeed = this._sheet.isOptimizeForSpeed();\n }\n\n this._isBrowser = isBrowser;\n this._fromServer = undefined;\n this._indices = {};\n this._instancesCounts = {};\n }\n\n var _proto = StyleSheetRegistry.prototype;\n\n _proto.add = function add(props) {\n var _this = this;\n\n if (undefined === this._optimizeForSpeed) {\n this._optimizeForSpeed = Array.isArray(props.children);\n\n this._sheet.setOptimizeForSpeed(this._optimizeForSpeed);\n\n this._optimizeForSpeed = this._sheet.isOptimizeForSpeed();\n }\n\n if (this._isBrowser && !this._fromServer) {\n this._fromServer = this.selectFromServer();\n this._instancesCounts = Object.keys(this._fromServer).reduce(function (acc, tagName) {\n acc[tagName] = 0;\n return acc;\n }, {});\n }\n\n var _this$getIdAndRules = this.getIdAndRules(props),\n styleId = _this$getIdAndRules.styleId,\n rules = _this$getIdAndRules.rules; // Deduping: just increase the instances count.\n\n\n if (styleId in this._instancesCounts) {\n this._instancesCounts[styleId] += 1;\n return;\n }\n\n var indices = rules.map(function (rule) {\n return _this._sheet.insertRule(rule);\n }) // Filter out invalid rules\n .filter(function (index) {\n return index !== -1;\n });\n this._indices[styleId] = indices;\n this._instancesCounts[styleId] = 1;\n };\n\n _proto.remove = function remove(props) {\n var _this2 = this;\n\n var _this$getIdAndRules2 = this.getIdAndRules(props),\n styleId = _this$getIdAndRules2.styleId;\n\n invariant(styleId in this._instancesCounts, \"styleId: `\" + styleId + \"` not found\");\n this._instancesCounts[styleId] -= 1;\n\n if (this._instancesCounts[styleId] < 1) {\n var tagFromServer = this._fromServer && this._fromServer[styleId];\n\n if (tagFromServer) {\n tagFromServer.parentNode.removeChild(tagFromServer);\n delete this._fromServer[styleId];\n } else {\n this._indices[styleId].forEach(function (index) {\n return _this2._sheet.deleteRule(index);\n });\n\n delete this._indices[styleId];\n }\n\n delete this._instancesCounts[styleId];\n }\n };\n\n _proto.update = function update(props, nextProps) {\n this.add(nextProps);\n this.remove(props);\n };\n\n _proto.flush = function flush() {\n this._sheet.flush();\n\n this._sheet.inject();\n\n this._fromServer = undefined;\n this._indices = {};\n this._instancesCounts = {};\n };\n\n _proto.cssRules = function cssRules() {\n var _this3 = this;\n\n var fromServer = this._fromServer ? Object.keys(this._fromServer).map(function (styleId) {\n return [styleId, _this3._fromServer[styleId]];\n }) : [];\n\n var cssRules = this._sheet.cssRules();\n\n return fromServer.concat(Object.keys(this._indices).map(function (styleId) {\n return [styleId, _this3._indices[styleId].map(function (index) {\n return cssRules[index].cssText;\n }).join(_this3._optimizeForSpeed ? '' : '\\n')];\n }) // filter out empty rules\n .filter(function (rule) {\n return Boolean(rule[1]);\n }));\n };\n\n _proto.styles = function styles(options) {\n return mapRulesToStyle(this.cssRules(), options);\n };\n\n _proto.getIdAndRules = function getIdAndRules(props) {\n var css = props.children,\n dynamic = props.dynamic,\n id = props.id;\n\n if (dynamic) {\n var styleId = (0, _hash.computeId)(id, dynamic);\n return {\n styleId: styleId,\n rules: Array.isArray(css) ? css.map(function (rule) {\n return (0, _hash.computeSelector)(styleId, rule);\n }) : [(0, _hash.computeSelector)(styleId, css)]\n };\n }\n\n return {\n styleId: (0, _hash.computeId)(id),\n rules: Array.isArray(css) ? css : [css]\n };\n }\n /**\n * selectFromServer\n *\n * Collects style tags from the document with id __jsx-XXX\n */\n ;\n\n _proto.selectFromServer = function selectFromServer() {\n var elements = Array.prototype.slice.call(document.querySelectorAll('[id^=\"__jsx-\"]'));\n return elements.reduce(function (acc, element) {\n var id = element.id.slice(2);\n acc[id] = element;\n return acc;\n }, {});\n };\n\n return StyleSheetRegistry;\n}();\n\nexports.StyleSheetRegistry = StyleSheetRegistry;\n\nfunction invariant(condition, message) {\n if (!condition) {\n throw new Error(\"StyleSheetRegistry: \" + message + \".\");\n }\n}\n\nvar StyleSheetContext = (0, _react.createContext)(null);\nexports.StyleSheetContext = StyleSheetContext;\n\nfunction createStyleRegistry() {\n return new StyleSheetRegistry();\n}\n\nfunction StyleRegistry(_ref2) {\n var configuredRegistry = _ref2.registry,\n children = _ref2.children;\n var rootRegistry = (0, _react.useContext)(StyleSheetContext);\n\n var _useState = (0, _react.useState)(function () {\n return rootRegistry || configuredRegistry || createStyleRegistry();\n }),\n registry = _useState[0];\n\n return _react[\"default\"].createElement(StyleSheetContext.Provider, {\n value: registry\n }, children);\n}\n\nfunction useStyleRegistry() {\n return (0, _react.useContext)(StyleSheetContext);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3R5bGVkLWpzeC9kaXN0L3N0eWxlc2hlZXQtcmVnaXN0cnkuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsa0JBQWtCO0FBQ2xCLDJCQUEyQjtBQUMzQixxQkFBcUI7QUFDckIsd0JBQXdCO0FBQ3hCLHlCQUF5QixHQUFHLDBCQUEwQjs7QUFFdEQscUNBQXFDLG1CQUFPLENBQUMsNENBQU87O0FBRXBELHlDQUF5QyxtQkFBTyxDQUFDLDBFQUFrQjs7QUFFbkUsWUFBWSxtQkFBTyxDQUFDLDhEQUFZOztBQUVoQyx1Q0FBdUMsdUNBQXVDOztBQUU5RSxzQ0FBc0MsZ0RBQWdELDJCQUEyQixpRUFBaUUsaUJBQWlCOztBQUVuTSx3Q0FBd0MsNkJBQTZCLGNBQWMsNEVBQTRFLFNBQVMsb0JBQW9CLHdDQUF3QywrQkFBK0IseUJBQXlCLGlCQUFpQixzRkFBc0YsdUJBQXVCLHNEQUFzRCxxRkFBcUYsc0NBQXNDLDRDQUE0QyxPQUFPLDhCQUE4Qix5QkFBeUIsYUFBYSwwQkFBMEI7O0FBRTV0QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0EscUNBQXFDO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLElBQUk7QUFDWDs7QUFFQTtBQUNBO0FBQ0EsMkNBQTJDOzs7QUFHM0M7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsU0FBUzs7QUFFVDtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEtBQUs7O0FBRUw7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUssSUFBSTtBQUNUOztBQUVBO0FBQ0EsQ0FBQzs7QUFFRCwwQkFBMEI7O0FBRTFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSx5QkFBeUI7O0FBRXpCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zdHlsZWQtanN4L2Rpc3Qvc3R5bGVzaGVldC1yZWdpc3RyeS5qcz81ODBhIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5jcmVhdGVTdHlsZVJlZ2lzdHJ5ID0gY3JlYXRlU3R5bGVSZWdpc3RyeTtcbmV4cG9ydHMuU3R5bGVSZWdpc3RyeSA9IFN0eWxlUmVnaXN0cnk7XG5leHBvcnRzLnVzZVN0eWxlUmVnaXN0cnkgPSB1c2VTdHlsZVJlZ2lzdHJ5O1xuZXhwb3J0cy5TdHlsZVNoZWV0Q29udGV4dCA9IGV4cG9ydHMuU3R5bGVTaGVldFJlZ2lzdHJ5ID0gdm9pZCAwO1xuXG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcblxudmFyIF9zdHlsZXNoZWV0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9saWIvc3R5bGVzaGVldFwiKSk7XG5cbnZhciBfaGFzaCA9IHJlcXVpcmUoXCIuL2xpYi9oYXNoXCIpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7IHZhciBjYWNoZSA9IG5ldyBXZWFrTWFwKCk7IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgcmV0dXJuIGNhY2hlOyB9OyByZXR1cm4gY2FjaGU7IH1cblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7IGlmIChvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHsgcmV0dXJuIG9iajsgfSBpZiAob2JqID09PSBudWxsIHx8IHR5cGVvZiBvYmogIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7IHJldHVybiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfSB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKTsgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7IHJldHVybiBjYWNoZS5nZXQob2JqKTsgfSB2YXIgbmV3T2JqID0ge307IHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjsgZm9yICh2YXIga2V5IGluIG9iaikgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkgeyB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDsgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpOyB9IGVsc2UgeyBuZXdPYmpba2V5XSA9IG9ialtrZXldOyB9IH0gfSBuZXdPYmpbXCJkZWZhdWx0XCJdID0gb2JqOyBpZiAoY2FjaGUpIHsgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTsgfSByZXR1cm4gbmV3T2JqOyB9XG5cbmZ1bmN0aW9uIG1hcFJ1bGVzVG9TdHlsZShjc3NSdWxlcywgb3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG5cbiAgcmV0dXJuIGNzc1J1bGVzLm1hcChmdW5jdGlvbiAoYXJncykge1xuICAgIHZhciBpZCA9IGFyZ3NbMF07XG4gICAgdmFyIGNzcyA9IGFyZ3NbMV07XG4gICAgcmV0dXJuIF9yZWFjdFtcImRlZmF1bHRcIl0uY3JlYXRlRWxlbWVudCgnc3R5bGUnLCB7XG4gICAgICBpZDogXCJfX1wiICsgaWQsXG4gICAgICAvLyBBdm9pZCB3YXJuaW5ncyB1cG9uIHJlbmRlciB3aXRoIGEga2V5XG4gICAgICBrZXk6IFwiX19cIiArIGlkLFxuICAgICAgbm9uY2U6IG9wdGlvbnMubm9uY2UgPyBvcHRpb25zLm5vbmNlIDogdW5kZWZpbmVkLFxuICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6IHtcbiAgICAgICAgX19odG1sOiBjc3NcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59XG5cbnZhciBTdHlsZVNoZWV0UmVnaXN0cnkgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkge1xuICBmdW5jdGlvbiBTdHlsZVNoZWV0UmVnaXN0cnkoX3RlbXApIHtcbiAgICB2YXIgX3JlZiA9IF90ZW1wID09PSB2b2lkIDAgPyB7fSA6IF90ZW1wLFxuICAgICAgICBfcmVmJHN0eWxlU2hlZXQgPSBfcmVmLnN0eWxlU2hlZXQsXG4gICAgICAgIHN0eWxlU2hlZXQgPSBfcmVmJHN0eWxlU2hlZXQgPT09IHZvaWQgMCA/IG51bGwgOiBfcmVmJHN0eWxlU2hlZXQsXG4gICAgICAgIF9yZWYkb3B0aW1pemVGb3JTcGVlZCA9IF9yZWYub3B0aW1pemVGb3JTcGVlZCxcbiAgICAgICAgb3B0aW1pemVGb3JTcGVlZCA9IF9yZWYkb3B0aW1pemVGb3JTcGVlZCA9PT0gdm9pZCAwID8gZmFsc2UgOiBfcmVmJG9wdGltaXplRm9yU3BlZWQsXG4gICAgICAgIF9yZWYkaXNCcm93c2VyID0gX3JlZi5pc0Jyb3dzZXIsXG4gICAgICAgIGlzQnJvd3NlciA9IF9yZWYkaXNCcm93c2VyID09PSB2b2lkIDAgPyB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyA6IF9yZWYkaXNCcm93c2VyO1xuXG4gICAgdGhpcy5fc2hlZXQgPSBzdHlsZVNoZWV0IHx8IG5ldyBfc3R5bGVzaGVldFtcImRlZmF1bHRcIl0oe1xuICAgICAgbmFtZTogJ3N0eWxlZC1qc3gnLFxuICAgICAgb3B0aW1pemVGb3JTcGVlZDogb3B0aW1pemVGb3JTcGVlZFxuICAgIH0pO1xuXG4gICAgdGhpcy5fc2hlZXQuaW5qZWN0KCk7XG5cbiAgICBpZiAoc3R5bGVTaGVldCAmJiB0eXBlb2Ygb3B0aW1pemVGb3JTcGVlZCA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICB0aGlzLl9zaGVldC5zZXRPcHRpbWl6ZUZvclNwZWVkKG9wdGltaXplRm9yU3BlZWQpO1xuXG4gICAgICB0aGlzLl9vcHRpbWl6ZUZvclNwZWVkID0gdGhpcy5fc2hlZXQuaXNPcHRpbWl6ZUZvclNwZWVkKCk7XG4gICAgfVxuXG4gICAgdGhpcy5faXNCcm93c2VyID0gaXNCcm93c2VyO1xuICAgIHRoaXMuX2Zyb21TZXJ2ZXIgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5faW5kaWNlcyA9IHt9O1xuICAgIHRoaXMuX2luc3RhbmNlc0NvdW50cyA9IHt9O1xuICB9XG5cbiAgdmFyIF9wcm90byA9IFN0eWxlU2hlZXRSZWdpc3RyeS5wcm90b3R5cGU7XG5cbiAgX3Byb3RvLmFkZCA9IGZ1bmN0aW9uIGFkZChwcm9wcykge1xuICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICBpZiAodW5kZWZpbmVkID09PSB0aGlzLl9vcHRpbWl6ZUZvclNwZWVkKSB7XG4gICAgICB0aGlzLl9vcHRpbWl6ZUZvclNwZWVkID0gQXJyYXkuaXNBcnJheShwcm9wcy5jaGlsZHJlbik7XG5cbiAgICAgIHRoaXMuX3NoZWV0LnNldE9wdGltaXplRm9yU3BlZWQodGhpcy5fb3B0aW1pemVGb3JTcGVlZCk7XG5cbiAgICAgIHRoaXMuX29wdGltaXplRm9yU3BlZWQgPSB0aGlzLl9zaGVldC5pc09wdGltaXplRm9yU3BlZWQoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5faXNCcm93c2VyICYmICF0aGlzLl9mcm9tU2VydmVyKSB7XG4gICAgICB0aGlzLl9mcm9tU2VydmVyID0gdGhpcy5zZWxlY3RGcm9tU2VydmVyKCk7XG4gICAgICB0aGlzLl9pbnN0YW5jZXNDb3VudHMgPSBPYmplY3Qua2V5cyh0aGlzLl9mcm9tU2VydmVyKS5yZWR1Y2UoZnVuY3Rpb24gKGFjYywgdGFnTmFtZSkge1xuICAgICAgICBhY2NbdGFnTmFtZV0gPSAwO1xuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSwge30pO1xuICAgIH1cblxuICAgIHZhciBfdGhpcyRnZXRJZEFuZFJ1bGVzID0gdGhpcy5nZXRJZEFuZFJ1bGVzKHByb3BzKSxcbiAgICAgICAgc3R5bGVJZCA9IF90aGlzJGdldElkQW5kUnVsZXMuc3R5bGVJZCxcbiAgICAgICAgcnVsZXMgPSBfdGhpcyRnZXRJZEFuZFJ1bGVzLnJ1bGVzOyAvLyBEZWR1cGluZzoganVzdCBpbmNyZWFzZSB0aGUgaW5zdGFuY2VzIGNvdW50LlxuXG5cbiAgICBpZiAoc3R5bGVJZCBpbiB0aGlzLl9pbnN0YW5jZXNDb3VudHMpIHtcbiAgICAgIHRoaXMuX2luc3RhbmNlc0NvdW50c1tzdHlsZUlkXSArPSAxO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciBpbmRpY2VzID0gcnVsZXMubWFwKGZ1bmN0aW9uIChydWxlKSB7XG4gICAgICByZXR1cm4gX3RoaXMuX3NoZWV0Lmluc2VydFJ1bGUocnVsZSk7XG4gICAgfSkgLy8gRmlsdGVyIG91dCBpbnZhbGlkIHJ1bGVzXG4gICAgLmZpbHRlcihmdW5jdGlvbiAoaW5kZXgpIHtcbiAgICAgIHJldHVybiBpbmRleCAhPT0gLTE7XG4gICAgfSk7XG4gICAgdGhpcy5faW5kaWNlc1tzdHlsZUlkXSA9IGluZGljZXM7XG4gICAgdGhpcy5faW5zdGFuY2VzQ291bnRzW3N0eWxlSWRdID0gMTtcbiAgfTtcblxuICBfcHJvdG8ucmVtb3ZlID0gZnVuY3Rpb24gcmVtb3ZlKHByb3BzKSB7XG4gICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICB2YXIgX3RoaXMkZ2V0SWRBbmRSdWxlczIgPSB0aGlzLmdldElkQW5kUnVsZXMocHJvcHMpLFxuICAgICAgICBzdHlsZUlkID0gX3RoaXMkZ2V0SWRBbmRSdWxlczIuc3R5bGVJZDtcblxuICAgIGludmFyaWFudChzdHlsZUlkIGluIHRoaXMuX2luc3RhbmNlc0NvdW50cywgXCJzdHlsZUlkOiBgXCIgKyBzdHlsZUlkICsgXCJgIG5vdCBmb3VuZFwiKTtcbiAgICB0aGlzLl9pbnN0YW5jZXNDb3VudHNbc3R5bGVJZF0gLT0gMTtcblxuICAgIGlmICh0aGlzLl9pbnN0YW5jZXNDb3VudHNbc3R5bGVJZF0gPCAxKSB7XG4gICAgICB2YXIgdGFnRnJvbVNlcnZlciA9IHRoaXMuX2Zyb21TZXJ2ZXIgJiYgdGhpcy5fZnJvbVNlcnZlcltzdHlsZUlkXTtcblxuICAgICAgaWYgKHRhZ0Zyb21TZXJ2ZXIpIHtcbiAgICAgICAgdGFnRnJvbVNlcnZlci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRhZ0Zyb21TZXJ2ZXIpO1xuICAgICAgICBkZWxldGUgdGhpcy5fZnJvbVNlcnZlcltzdHlsZUlkXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2luZGljZXNbc3R5bGVJZF0uZm9yRWFjaChmdW5jdGlvbiAoaW5kZXgpIHtcbiAgICAgICAgICByZXR1cm4gX3RoaXMyLl9zaGVldC5kZWxldGVSdWxlKGluZGV4KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZGVsZXRlIHRoaXMuX2luZGljZXNbc3R5bGVJZF07XG4gICAgICB9XG5cbiAgICAgIGRlbGV0ZSB0aGlzLl9pbnN0YW5jZXNDb3VudHNbc3R5bGVJZF07XG4gICAgfVxuICB9O1xuXG4gIF9wcm90by51cGRhdGUgPSBmdW5jdGlvbiB1cGRhdGUocHJvcHMsIG5leHRQcm9wcykge1xuICAgIHRoaXMuYWRkKG5leHRQcm9wcyk7XG4gICAgdGhpcy5yZW1vdmUocHJvcHMpO1xuICB9O1xuXG4gIF9wcm90by5mbHVzaCA9IGZ1bmN0aW9uIGZsdXNoKCkge1xuICAgIHRoaXMuX3NoZWV0LmZsdXNoKCk7XG5cbiAgICB0aGlzLl9zaGVldC5pbmplY3QoKTtcblxuICAgIHRoaXMuX2Zyb21TZXJ2ZXIgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5faW5kaWNlcyA9IHt9O1xuICAgIHRoaXMuX2luc3RhbmNlc0NvdW50cyA9IHt9O1xuICB9O1xuXG4gIF9wcm90by5jc3NSdWxlcyA9IGZ1bmN0aW9uIGNzc1J1bGVzKCkge1xuICAgIHZhciBfdGhpczMgPSB0aGlzO1xuXG4gICAgdmFyIGZyb21TZXJ2ZXIgPSB0aGlzLl9mcm9tU2VydmVyID8gT2JqZWN0LmtleXModGhpcy5fZnJvbVNlcnZlcikubWFwKGZ1bmN0aW9uIChzdHlsZUlkKSB7XG4gICAgICByZXR1cm4gW3N0eWxlSWQsIF90aGlzMy5fZnJvbVNlcnZlcltzdHlsZUlkXV07XG4gICAgfSkgOiBbXTtcblxuICAgIHZhciBjc3NSdWxlcyA9IHRoaXMuX3NoZWV0LmNzc1J1bGVzKCk7XG5cbiAgICByZXR1cm4gZnJvbVNlcnZlci5jb25jYXQoT2JqZWN0LmtleXModGhpcy5faW5kaWNlcykubWFwKGZ1bmN0aW9uIChzdHlsZUlkKSB7XG4gICAgICByZXR1cm4gW3N0eWxlSWQsIF90aGlzMy5faW5kaWNlc1tzdHlsZUlkXS5tYXAoZnVuY3Rpb24gKGluZGV4KSB7XG4gICAgICAgIHJldHVybiBjc3NSdWxlc1tpbmRleF0uY3NzVGV4dDtcbiAgICAgIH0pLmpvaW4oX3RoaXMzLl9vcHRpbWl6ZUZvclNwZWVkID8gJycgOiAnXFxuJyldO1xuICAgIH0pIC8vIGZpbHRlciBvdXQgZW1wdHkgcnVsZXNcbiAgICAuZmlsdGVyKGZ1bmN0aW9uIChydWxlKSB7XG4gICAgICByZXR1cm4gQm9vbGVhbihydWxlWzFdKTtcbiAgICB9KSk7XG4gIH07XG5cbiAgX3Byb3RvLnN0eWxlcyA9IGZ1bmN0aW9uIHN0eWxlcyhvcHRpb25zKSB7XG4gICAgcmV0dXJuIG1hcFJ1bGVzVG9TdHlsZSh0aGlzLmNzc1J1bGVzKCksIG9wdGlvbnMpO1xuICB9O1xuXG4gIF9wcm90by5nZXRJZEFuZFJ1bGVzID0gZnVuY3Rpb24gZ2V0SWRBbmRSdWxlcyhwcm9wcykge1xuICAgIHZhciBjc3MgPSBwcm9wcy5jaGlsZHJlbixcbiAgICAgICAgZHluYW1pYyA9IHByb3BzLmR5bmFtaWMsXG4gICAgICAgIGlkID0gcHJvcHMuaWQ7XG5cbiAgICBpZiAoZHluYW1pYykge1xuICAgICAgdmFyIHN0eWxlSWQgPSAoMCwgX2hhc2guY29tcHV0ZUlkKShpZCwgZHluYW1pYyk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdHlsZUlkOiBzdHlsZUlkLFxuICAgICAgICBydWxlczogQXJyYXkuaXNBcnJheShjc3MpID8gY3NzLm1hcChmdW5jdGlvbiAocnVsZSkge1xuICAgICAgICAgIHJldHVybiAoMCwgX2hhc2guY29tcHV0ZVNlbGVjdG9yKShzdHlsZUlkLCBydWxlKTtcbiAgICAgICAgfSkgOiBbKDAsIF9oYXNoLmNvbXB1dGVTZWxlY3Rvcikoc3R5bGVJZCwgY3NzKV1cbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHN0eWxlSWQ6ICgwLCBfaGFzaC5jb21wdXRlSWQpKGlkKSxcbiAgICAgIHJ1bGVzOiBBcnJheS5pc0FycmF5KGNzcykgPyBjc3MgOiBbY3NzXVxuICAgIH07XG4gIH1cbiAgLyoqXG4gICAqIHNlbGVjdEZyb21TZXJ2ZXJcbiAgICpcbiAgICogQ29sbGVjdHMgc3R5bGUgdGFncyBmcm9tIHRoZSBkb2N1bWVudCB3aXRoIGlkIF9fanN4LVhYWFxuICAgKi9cbiAgO1xuXG4gIF9wcm90by5zZWxlY3RGcm9tU2VydmVyID0gZnVuY3Rpb24gc2VsZWN0RnJvbVNlcnZlcigpIHtcbiAgICB2YXIgZWxlbWVudHMgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbaWRePVwiX19qc3gtXCJdJykpO1xuICAgIHJldHVybiBlbGVtZW50cy5yZWR1Y2UoZnVuY3Rpb24gKGFjYywgZWxlbWVudCkge1xuICAgICAgdmFyIGlkID0gZWxlbWVudC5pZC5zbGljZSgyKTtcbiAgICAgIGFjY1tpZF0gPSBlbGVtZW50O1xuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7fSk7XG4gIH07XG5cbiAgcmV0dXJuIFN0eWxlU2hlZXRSZWdpc3RyeTtcbn0oKTtcblxuZXhwb3J0cy5TdHlsZVNoZWV0UmVnaXN0cnkgPSBTdHlsZVNoZWV0UmVnaXN0cnk7XG5cbmZ1bmN0aW9uIGludmFyaWFudChjb25kaXRpb24sIG1lc3NhZ2UpIHtcbiAgaWYgKCFjb25kaXRpb24pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJTdHlsZVNoZWV0UmVnaXN0cnk6IFwiICsgbWVzc2FnZSArIFwiLlwiKTtcbiAgfVxufVxuXG52YXIgU3R5bGVTaGVldENvbnRleHQgPSAoMCwgX3JlYWN0LmNyZWF0ZUNvbnRleHQpKG51bGwpO1xuZXhwb3J0cy5TdHlsZVNoZWV0Q29udGV4dCA9IFN0eWxlU2hlZXRDb250ZXh0O1xuXG5mdW5jdGlvbiBjcmVhdGVTdHlsZVJlZ2lzdHJ5KCkge1xuICByZXR1cm4gbmV3IFN0eWxlU2hlZXRSZWdpc3RyeSgpO1xufVxuXG5mdW5jdGlvbiBTdHlsZVJlZ2lzdHJ5KF9yZWYyKSB7XG4gIHZhciBjb25maWd1cmVkUmVnaXN0cnkgPSBfcmVmMi5yZWdpc3RyeSxcbiAgICAgIGNoaWxkcmVuID0gX3JlZjIuY2hpbGRyZW47XG4gIHZhciByb290UmVnaXN0cnkgPSAoMCwgX3JlYWN0LnVzZUNvbnRleHQpKFN0eWxlU2hlZXRDb250ZXh0KTtcblxuICB2YXIgX3VzZVN0YXRlID0gKDAsIF9yZWFjdC51c2VTdGF0ZSkoZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiByb290UmVnaXN0cnkgfHwgY29uZmlndXJlZFJlZ2lzdHJ5IHx8IGNyZWF0ZVN0eWxlUmVnaXN0cnkoKTtcbiAgfSksXG4gICAgICByZWdpc3RyeSA9IF91c2VTdGF0ZVswXTtcblxuICByZXR1cm4gX3JlYWN0W1wiZGVmYXVsdFwiXS5jcmVhdGVFbGVtZW50KFN0eWxlU2hlZXRDb250ZXh0LlByb3ZpZGVyLCB7XG4gICAgdmFsdWU6IHJlZ2lzdHJ5XG4gIH0sIGNoaWxkcmVuKTtcbn1cblxuZnVuY3Rpb24gdXNlU3R5bGVSZWdpc3RyeSgpIHtcbiAgcmV0dXJuICgwLCBfcmVhY3QudXNlQ29udGV4dCkoU3R5bGVTaGVldENvbnRleHQpO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/styled-jsx/dist/stylesheet-registry.js\n"); + +/***/ }), + +/***/ "./node_modules/styled-jsx/index.js": +/*!******************************************!*\ + !*** ./node_modules/styled-jsx/index.js ***! + \******************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("module.exports = __webpack_require__(/*! ./dist */ \"./node_modules/styled-jsx/dist/index.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3R5bGVkLWpzeC9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQSw2RkFBa0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N0eWxlZC1qc3gvaW5kZXguanM/ZGJkOSJdLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vZGlzdCcpXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/styled-jsx/index.js\n"); + +/***/ }), + +/***/ "?506d": +/*!******************************************!*\ + !*** ./utils/resolve-rewrites (ignored) ***! + \******************************************/ +/***/ (function() { + +/* (ignored) */ + +/***/ }) + +}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); } +/******/ var __webpack_exports__ = (__webpack_exec__("./node_modules/next/dist/client/next-dev.js")); +/******/ _N_E = __webpack_exports__; +/******/ } +]); \ No newline at end of file diff --git a/.next/static/chunks/node_modules_next_dist_client_dev_noop_js.js b/.next/static/chunks/node_modules_next_dist_client_dev_noop_js.js new file mode 100644 index 0000000..4ebcfae --- /dev/null +++ b/.next/static/chunks/node_modules_next_dist_client_dev_noop_js.js @@ -0,0 +1,22 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["node_modules_next_dist_client_dev_noop_js"],{ + +/***/ "./node_modules/next/dist/client/dev/noop.js": +/*!***************************************************!*\ + !*** ./node_modules/next/dist/client/dev/noop.js ***! + \***************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvbm9vcC5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvZGV2L25vb3AuanM/NGRmZiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bm9vcC5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/noop.js\n"); + +/***/ }) + +}]); \ No newline at end of file diff --git a/.next/static/chunks/node_modules_next_dist_pages__error_js.js b/.next/static/chunks/node_modules_next_dist_pages__error_js.js new file mode 100644 index 0000000..ae81808 --- /dev/null +++ b/.next/static/chunks/node_modules_next_dist_pages__error_js.js @@ -0,0 +1,62 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["node_modules_next_dist_pages__error_js"],{ + +/***/ "./node_modules/next/dist/pages/_error.js": +/*!************************************************!*\ + !*** ./node_modules/next/dist/pages/_error.js ***! + \************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _classCallCheck = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\");\n\nvar _createClass = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\");\n\nvar _inherits = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/inherits */ \"./node_modules/@babel/runtime/helpers/inherits.js\");\n\nvar _possibleConstructorReturn = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/possibleConstructorReturn */ \"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\");\n\nvar _getPrototypeOf = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/getPrototypeOf */ \"./node_modules/@babel/runtime/helpers/getPrototypeOf.js\");\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _head = _interopRequireDefault(__webpack_require__(/*! ../shared/lib/head */ \"./node_modules/next/dist/shared/lib/head.js\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar statusCodes = {\n 400: 'Bad Request',\n 404: 'This page could not be found',\n 405: 'Method Not Allowed',\n 500: 'Internal Server Error'\n};\n\nfunction _getInitialProps(_ref) {\n var res = _ref.res,\n err = _ref.err;\n var statusCode = res && res.statusCode ? res.statusCode : err ? err.statusCode : 404;\n return {\n statusCode: statusCode\n };\n}\n\nvar Error = /*#__PURE__*/function (_react$default$Compon) {\n _inherits(Error, _react$default$Compon);\n\n var _super = _createSuper(Error);\n\n function Error() {\n _classCallCheck(this, Error);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Error, [{\n key: \"render\",\n value: function render() {\n var statusCode = this.props.statusCode;\n var title = this.props.title || statusCodes[statusCode] || 'An unexpected error has occurred';\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n style: styles.error\n }, /*#__PURE__*/_react[\"default\"].createElement(_head[\"default\"], null, /*#__PURE__*/_react[\"default\"].createElement(\"title\", null, statusCode ? \"\".concat(statusCode, \": \").concat(title) : 'Application error: a client-side exception has occurred')), /*#__PURE__*/_react[\"default\"].createElement(\"div\", null, /*#__PURE__*/_react[\"default\"].createElement(\"style\", {\n dangerouslySetInnerHTML: {\n __html: 'body { margin: 0 }'\n }\n }), statusCode ? /*#__PURE__*/_react[\"default\"].createElement(\"h1\", {\n style: styles.h1\n }, statusCode) : null, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n style: styles.desc\n }, /*#__PURE__*/_react[\"default\"].createElement(\"h2\", {\n style: styles.h2\n }, this.props.title || statusCode ? title : /*#__PURE__*/_react[\"default\"].createElement(_react[\"default\"].Fragment, null, \"Application error: a client-side exception has occurred (see the browser console for more information)\"), \".\"))));\n }\n }]);\n\n return Error;\n}(_react[\"default\"].Component);\n\nError.displayName = 'ErrorPage';\nError.getInitialProps = _getInitialProps;\nError.origGetInitialProps = _getInitialProps;\nexports[\"default\"] = Error;\nvar styles = {\n error: {\n color: '#000',\n background: '#fff',\n fontFamily: '-apple-system, BlinkMacSystemFont, Roboto, \"Segoe UI\", \"Fira Sans\", Avenir, \"Helvetica Neue\", \"Lucida Grande\", sans-serif',\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 textAlign: 'left',\n lineHeight: '49px',\n height: '49px',\n verticalAlign: 'middle'\n },\n h1: {\n display: 'inline-block',\n borderRight: '1px solid rgba(0, 0, 0,.3)',\n margin: 0,\n marginRight: '20px',\n padding: '10px 23px 10px 0',\n fontSize: '24px',\n fontWeight: 500,\n verticalAlign: 'top'\n },\n h2: {\n fontSize: '14px',\n fontWeight: 'normal',\n lineHeight: 'inherit',\n margin: 0,\n padding: 0\n }\n};\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3BhZ2VzL19lcnJvci5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDYkEsOENBQTZDO0FBQ3pDRyxFQUFBQSxLQUFLLEVBQUU7QUFEa0MsQ0FBN0M7QUFHQUQsa0JBQUEsR0FBa0IsS0FBSyxDQUF2Qjs7QUFDQSxJQUFJRSxNQUFNLEdBQUdDLHNCQUFzQixDQUFDQyxtQkFBTyxDQUFDLDRDQUFELENBQVIsQ0FBbkM7O0FBQ0EsSUFBSUMsS0FBSyxHQUFHRixzQkFBc0IsQ0FBQ0MsbUJBQU8sQ0FBQyx1RUFBRCxDQUFSLENBQWxDOztBQUNBLFNBQVNELHNCQUFULENBQWdDRyxHQUFoQyxFQUFxQztBQUNqQyxTQUFPQSxHQUFHLElBQUlBLEdBQUcsQ0FBQ0MsVUFBWCxHQUF3QkQsR0FBeEIsR0FBOEI7QUFDakMsZUFBU0E7QUFEd0IsR0FBckM7QUFHSDs7QUFDRCxJQUFNRSxXQUFXLEdBQUc7QUFDaEIsT0FBSyxhQURXO0FBRWhCLE9BQUssOEJBRlc7QUFHaEIsT0FBSyxvQkFIVztBQUloQixPQUFLO0FBSlcsQ0FBcEI7O0FBTUEsU0FBU0MsZ0JBQVQsT0FBMEM7QUFBQSxNQUFkQyxHQUFjLFFBQWRBLEdBQWM7QUFBQSxNQUFSQyxHQUFRLFFBQVJBLEdBQVE7QUFDdEMsTUFBTUMsVUFBVSxHQUFHRixHQUFHLElBQUlBLEdBQUcsQ0FBQ0UsVUFBWCxHQUF3QkYsR0FBRyxDQUFDRSxVQUE1QixHQUF5Q0QsR0FBRyxHQUFHQSxHQUFHLENBQUNDLFVBQVAsR0FBb0IsR0FBbkY7QUFDQSxTQUFPO0FBQ0hBLElBQUFBLFVBQVUsRUFBVkE7QUFERyxHQUFQO0FBR0g7O0lBQ0tDOzs7Ozs7Ozs7Ozs7O1dBQ0Ysa0JBQVM7QUFDTCxVQUFRRCxVQUFSLEdBQXdCLEtBQUtFLEtBQTdCLENBQVFGLFVBQVI7QUFDQSxVQUFNRyxLQUFLLEdBQUcsS0FBS0QsS0FBTCxDQUFXQyxLQUFYLElBQW9CUCxXQUFXLENB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LElBQUFBLFFBQVEsRUFBRSxNQU5WO0FBT0FDLElBQUFBLFVBQVUsRUFBRSxHQVBaO0FBUUFOLElBQUFBLGFBQWEsRUFBRTtBQVJmLEdBbkJPO0FBNkJYaEIsRUFBQUEsRUFBRSxFQUFFO0FBQ0FxQixJQUFBQSxRQUFRLEVBQUUsTUFEVjtBQUVBQyxJQUFBQSxVQUFVLEVBQUUsUUFGWjtBQUdBUCxJQUFBQSxVQUFVLEVBQUUsU0FIWjtBQUlBRyxJQUFBQSxNQUFNLEVBQUUsQ0FKUjtBQUtBRSxJQUFBQSxPQUFPLEVBQUU7QUFMVDtBQTdCTyxDQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvcGFnZXMvX2Vycm9yLmpzPzE4ZjIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7XG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xudmFyIF9oZWFkID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9oZWFkXCIpKTtcbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbmNvbnN0IHN0YXR1c0NvZGVzID0ge1xuICAgIDQwMDogJ0JhZCBSZXF1ZXN0JyxcbiAgICA0MDQ6ICdUaGlzIHBhZ2UgY291bGQgbm90IGJlIGZvdW5kJyxcbiAgICA0MDU6ICdNZXRob2QgTm90IEFsbG93ZWQnLFxuICAgIDUwMDogJ0ludGVybmFsIFNlcnZlciBFcnJvcidcbn07XG5mdW5jdGlvbiBfZ2V0SW5pdGlhbFByb3BzKHsgcmVzICwgZXJyICB9KSB7XG4gICAgY29uc3Qgc3RhdHVzQ29kZSA9IHJlcyAmJiByZXMuc3RhdHVzQ29kZSA/IHJlcy5zdGF0dXNDb2RlIDogZXJyID8gZXJyLnN0YXR1c0NvZGUgOiA0MDQ7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc3RhdHVzQ29kZVxuICAgIH07XG59XG5jbGFzcyBFcnJvciBleHRlbmRzIF9yZWFjdC5kZWZhdWx0LkNvbXBvbmVudCB7XG4gICAgcmVuZGVyKCkge1xuICAgICAgICBjb25zdCB7IHN0YXR1c0NvZGUgIH0gPSB0aGlzLnByb3BzO1xuICAgICAgICBjb25zdCB0aXRsZSA9IHRoaXMucHJvcHMudGl0bGUgfHwgc3RhdHVzQ29kZXNbc3RhdHVzQ29kZV0gfHwgJ0FuIHVuZXhwZWN0ZWQgZXJyb3IgaGFzIG9jY3VycmVkJztcbiAgICAgICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgICAgICBzdHlsZTogc3R5bGVzLmVycm9yXG4gICAgICAgIH0sIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChfaGVhZC5kZWZhdWx0LCBudWxsLCAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJ0aXRsZVwiLCBudWxsLCBzdGF0dXNDb2RlID8gYCR7c3RhdHVzQ29kZX06ICR7dGl0bGV9YCA6ICdBcHBsaWNhdGlvbiBlcnJvcjogYSBjbGllbnQtc2lkZSBleGNlcHRpb24gaGFzIG9jY3VycmVkJykpLCAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgbnVsbCwgLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwic3R5bGVcIiwge1xuICAgICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6IHtcbiAgICAgICAgICAgICAgICBfX2h0bWw6ICdib2R5IHsgbWFyZ2luOiAwIH0nXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLCBzdGF0dXNDb2RlID8gLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiaDFcIiwge1xuICAgICAgICAgICAgc3R5bGU6IHN0eWxlcy5oMVxuICAgICAgICB9LCBzdGF0dXNDb2RlKSA6IG51bGwsIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgICAgICBzdHlsZTogc3R5bGVzLmRlc2NcbiAgICAgICAgfSwgLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiaDJcIiwge1xuICAgICAgICAgICAgc3R5bGU6IHN0eWxlcy5oMlxuICAgICAgICB9LCB0aGlzLnByb3BzLnRpdGxlIHx8IHN0YXR1c0NvZGUgPyB0aXRsZSA6IC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChfcmVhY3QuZGVmYXVsdC5GcmFnbWVudCwgbnVsbCwgXCJBcHBsaWNhdGlvbiBlcnJvcjogYSBjbGllbnQtc2lkZSBleGNlcHRpb24gaGFzIG9jY3VycmVkIChzZWUgdGhlIGJyb3dzZXIgY29uc29sZSBmb3IgbW9yZSBpbmZvcm1hdGlvbilcIiksIFwiLlwiKSkpKSk7XG4gICAgfVxufVxuRXJyb3IuZGlzcGxheU5hbWUgPSAnRXJyb3JQYWdlJztcbkVycm9yLmdldEluaXRpYWxQcm9wcyA9IF9nZXRJbml0aWFsUHJvcHM7XG5FcnJvci5vcmlnR2V0SW5pdGlhbFByb3BzID0gX2dldEluaXRpYWxQcm9wcztcbmV4cG9ydHMuZGVmYXVsdCA9IEVycm9yO1xuY29uc3Qgc3R5bGVzID0ge1xuICAgIGVycm9yOiB7XG4gICAgICAgIGNvbG9yOiAnIzAwMCcsXG4gICAgICAgIGJhY2tncm91bmQ6ICcjZmZmJyxcbiAgICAgICAgZm9udEZhbWlseTogJy1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgUm9ib3RvLCBcIlNlZ29lIFVJXCIsIFwiRmlyYSBTYW5zXCIsIEF2ZW5pciwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkx1Y2lkYSBHcmFuZGVcIiwgc2Fucy1zZXJpZicsXG4gICAgICAgIGhlaWdodDogJzEwMHZoJyxcbiAgICAgICAgdGV4dEFsaWduOiAnY2VudGVyJyxcbiAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJ1xuICAgIH0sXG4gICAgZGVzYzoge1xuICAgICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICAgICAgdGV4dEFsaWduOiAnbGVmdCcsXG4gICAgICAgIGxpbmVIZWlnaHQ6ICc0OXB4JyxcbiAgICAgICAgaGVpZ2h0OiAnNDlweCcsXG4gICAgICAgIHZlcnRpY2FsQWxpZ246ICdtaWRkbGUnXG4gICAgfSxcbiAgICBoMToge1xuICAgICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICAgICAgYm9yZGVyUmlnaHQ6ICcxcHggc29saWQgcmdiYSgwLCAwLCAwLC4zKScsXG4gICAgICAgIG1hcmdpbjogMCxcbiAgICAgICAgbWFyZ2luUmlnaHQ6ICcyMHB4JyxcbiAgICAgICAgcGFkZGluZzogJzEwcHggMjNweCAxMHB4IDAnLFxuICAgICAgICBmb250U2l6ZTogJzI0cHgnLFxuICAgICAgICBmb250V2VpZ2h0OiA1MDAsXG4gICAgICAgIHZlcnRpY2FsQWxpZ246ICd0b3AnXG4gICAgfSxcbiAgICBoMjoge1xuICAgICAgICBmb250U2l6ZTogJzE0cHgnLFxuICAgICAgICBmb250V2VpZ2h0OiAnbm9ybWFsJyxcbiAgICAgICAgbGluZUhlaWdodDogJ2luaGVyaXQnLFxuICAgICAgICBtYXJnaW46IDAsXG4gICAgICAgIHBhZGRpbmc6IDBcbiAgICB9XG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1fZXJyb3IuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfaGVhZCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJzdGF0dXNDb2RlcyIsIl9nZXRJbml0aWFsUHJvcHMiLCJyZXMiLCJlcnIiLCJzdGF0dXNDb2RlIiwiRXJyb3IiLCJwcm9wcyIsInRpdGxlIiwiY3JlYXRlRWxlbWVudCIsInN0eWxlIiwic3R5bGVzIiwiZXJyb3IiLCJkYW5nZXJvdXNseVNldElubmVySFRNTCIsIl9faHRtbCIsImgxIiwiZGVzYyIsImgyIiwiRnJhZ21lbnQiLCJDb21wb25lbnQiLCJkaXNwbGF5TmFtZSIsImdldEluaXRpYWxQcm9wcyIsIm9yaWdHZXRJbml0aWFsUHJvcHMiLCJjb2xvciIsImJhY2tncm91bmQiLCJmb250RmFtaWx5IiwiaGVpZ2h0IiwidGV4dEFsaWduIiwiZGlzcGxheSIsImZsZXhEaXJlY3Rpb24iLCJhbGlnbkl0ZW1zIiwianVzdGlmeUNvbnRlbnQiLCJsaW5lSGVpZ2h0IiwidmVydGljYWxBbGlnbiIsImJvcmRlclJpZ2h0IiwibWFyZ2luIiwibWFyZ2luUmlnaHQiLCJwYWRkaW5nIiwiZm9udFNpemUiLCJmb250V2VpZ2h0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/pages/_error.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/amp-context.js": +/*!**********************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/amp-context.js ***! + \**********************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.AmpStateContext = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar AmpStateContext = _react[\"default\"].createContext({});\n\nexports.AmpStateContext = AmpStateContext;\n\nif (true) {\n AmpStateContext.displayName = 'AmpStateContext';\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvYW1wLWNvbnRleHQuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCx1QkFBQSxHQUEwQixLQUFLLENBQS9COztBQUNBLElBQUlHLE1BQU0sR0FBR0Msc0JBQXNCLENBQUNDLG1CQUFPLENBQUMsNENBQUQsQ0FBUixDQUFuQzs7QUFDQSxTQUFTRCxzQkFBVCxDQUFnQ0UsR0FBaEMsRUFBcUM7QUFDakMsU0FBT0EsR0FBRyxJQUFJQSxHQUFHLENBQUNDLFVBQVgsR0FBd0JELEdBQXhCLEdBQThCO0FBQ2pDLGVBQVNBO0FBRHdCLEdBQXJDO0FBR0g7O0FBQ0QsSUFBTUosZUFBZSxHQUFHQyxNQUFNLFdBQU4sQ0FBZUssYUFBZixDQUE2QixFQUE3QixDQUF4Qjs7QUFFQVIsdUJBQUEsR0FBMEJFLGVBQTFCOztBQUNBLElBQUksTUFBdUM7QUFDdkNBLEVBQUFBLGVBQWUsQ0FBQ08sV0FBaEIsR0FBOEIsaUJBQTlCO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zaGFyZWQvbGliL2FtcC1jb250ZXh0LmpzP2U1YTciXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLkFtcFN0YXRlQ29udGV4dCA9IHZvaWQgMDtcbnZhciBfcmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5jb25zdCBBbXBTdGF0ZUNvbnRleHQgPSBfcmVhY3QuZGVmYXVsdC5jcmVhdGVDb250ZXh0KHtcbn0pO1xuZXhwb3J0cy5BbXBTdGF0ZUNvbnRleHQgPSBBbXBTdGF0ZUNvbnRleHQ7XG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIEFtcFN0YXRlQ29udGV4dC5kaXNwbGF5TmFtZSA9ICdBbXBTdGF0ZUNvbnRleHQnO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hbXAtY29udGV4dC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJBbXBTdGF0ZUNvbnRleHQiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIm9iaiIsIl9fZXNNb2R1bGUiLCJjcmVhdGVDb250ZXh0IiwiZGlzcGxheU5hbWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/amp-context.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/amp.js": +/*!**************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/amp.js ***! + \**************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _s = $RefreshSig$();\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.isInAmpMode = isInAmpMode;\nexports.useAmp = useAmp;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _ampContext = __webpack_require__(/*! ./amp-context */ \"./node_modules/next/dist/shared/lib/amp-context.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction isInAmpMode() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$ampFirst = _ref.ampFirst,\n ampFirst = _ref$ampFirst === void 0 ? false : _ref$ampFirst,\n _ref$hybrid = _ref.hybrid,\n hybrid = _ref$hybrid === void 0 ? false : _ref$hybrid,\n _ref$hasQuery = _ref.hasQuery,\n hasQuery = _ref$hasQuery === void 0 ? false : _ref$hasQuery;\n\n return ampFirst || hybrid && hasQuery;\n}\n\nfunction useAmp() {\n _s();\n\n // Don't assign the context value to a variable to save bytes\n return isInAmpMode(_react[\"default\"].useContext(_ampContext.AmpStateContext));\n}\n\n_s(useAmp, \"gDsCjeeItUuvgOWf1v4qoK9RF6k=\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvYW1wLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7OztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxtQkFBQSxHQUFzQkUsV0FBdEI7QUFDQUYsY0FBQSxHQUFpQkcsTUFBakI7O0FBQ0EsSUFBSUMsTUFBTSxHQUFHQyxzQkFBc0IsQ0FBQ0MsbUJBQU8sQ0FBQyw0Q0FBRCxDQUFSLENBQW5DOztBQUNBLElBQUlDLFdBQVcsR0FBR0QsbUJBQU8sQ0FBQyx5RUFBRCxDQUF6Qjs7QUFDQSxTQUFTRCxzQkFBVCxDQUFnQ0csR0FBaEMsRUFBcUM7QUFDakMsU0FBT0EsR0FBRyxJQUFJQSxHQUFHLENBQUNDLFVBQVgsR0FBd0JELEdBQXhCLEdBQThCO0FBQ2pDLGVBQVNBO0FBRHdCLEdBQXJDO0FBR0g7O0FBQ0QsU0FBU04sV0FBVCxHQUNHO0FBQUEsaUZBRDZFLEVBQzdFO0FBQUEsMkJBRG9CUSxRQUNwQjtBQUFBLE1BRG9CQSxRQUNwQiw4QkFEOEIsS0FDOUI7QUFBQSx5QkFEc0NDLE1BQ3RDO0FBQUEsTUFEc0NBLE1BQ3RDLDRCQUQ4QyxLQUM5QztBQUFBLDJCQURzREMsUUFDdEQ7QUFBQSxNQURzREEsUUFDdEQsOEJBRGdFLEtBQ2hFOztBQUNDLFNBQU9GLFFBQVEsSUFBSUMsTUFBTSxJQUFJQyxRQUE3QjtBQUNIOztBQUNELFNBQVNULE1BQVQsR0FBa0I7QUFBQTs7QUFDZDtBQUNBLFNBQU9ELFdBQVcsQ0FBQ0UsTUFBTSxXQUFOLENBQWVTLFVBQWYsQ0FBMEJOLFdBQVcsQ0FBQ08sZUFBdEMsQ0FBRCxDQUFsQjtBQUNIOztHQUhRWCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvYW1wLmpzPzVlNGYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmlzSW5BbXBNb2RlID0gaXNJbkFtcE1vZGU7XG5leHBvcnRzLnVzZUFtcCA9IHVzZUFtcDtcbnZhciBfcmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG52YXIgX2FtcENvbnRleHQgPSByZXF1aXJlKFwiLi9hbXAtY29udGV4dFwiKTtcbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGlzSW5BbXBNb2RlKHsgYW1wRmlyc3QgPWZhbHNlICwgaHlicmlkID1mYWxzZSAsIGhhc1F1ZXJ5ID1mYWxzZSAsICB9ID0ge1xufSkge1xuICAgIHJldHVybiBhbXBGaXJzdCB8fCBoeWJyaWQgJiYgaGFzUXVlcnk7XG59XG5mdW5jdGlvbiB1c2VBbXAoKSB7XG4gICAgLy8gRG9uJ3QgYXNzaWduIHRoZSBjb250ZXh0IHZhbHVlIHRvIGEgdmFyaWFibGUgdG8gc2F2ZSBieXRlc1xuICAgIHJldHVybiBpc0luQW1wTW9kZShfcmVhY3QuZGVmYXVsdC51c2VDb250ZXh0KF9hbXBDb250ZXh0LkFtcFN0YXRlQ29udGV4dCkpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hbXAuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiaXNJbkFtcE1vZGUiLCJ1c2VBbXAiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9hbXBDb250ZXh0Iiwib2JqIiwiX19lc01vZHVsZSIsImFtcEZpcnN0IiwiaHlicmlkIiwiaGFzUXVlcnkiLCJ1c2VDb250ZXh0IiwiQW1wU3RhdGVDb250ZXh0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/amp.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/head.js": +/*!***************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/head.js ***! + \***************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _defineProperty = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/defineProperty.js\");\n\nvar _s = $RefreshSig$();\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.defaultHead = defaultHead;\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _sideEffect = _interopRequireDefault(__webpack_require__(/*! ./side-effect */ \"./node_modules/next/dist/shared/lib/side-effect.js\"));\n\nvar _ampContext = __webpack_require__(/*! ./amp-context */ \"./node_modules/next/dist/shared/lib/amp-context.js\");\n\nvar _headManagerContext = __webpack_require__(/*! ./head-manager-context */ \"./node_modules/next/dist/shared/lib/head-manager-context.js\");\n\nvar _amp = __webpack_require__(/*! ./amp */ \"./node_modules/next/dist/shared/lib/amp.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n return newObj;\n }\n}\n\nfunction defaultHead() {\n var inAmpMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var head = [/*#__PURE__*/_react[\"default\"].createElement(\"meta\", {\n charSet: \"utf-8\"\n })];\n\n if (!inAmpMode) {\n head.push( /*#__PURE__*/_react[\"default\"].createElement(\"meta\", {\n name: \"viewport\",\n content: \"width=device-width\"\n }));\n }\n\n return head;\n}\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 } // Adds support for React.Fragment\n\n\n if (child.type === _react[\"default\"].Fragment) {\n return list.concat(_react[\"default\"].Children.toArray(child.props.children).reduce(function (fragmentList, fragmentChild) {\n if (typeof fragmentChild === 'string' || typeof fragmentChild === 'number') {\n return fragmentList;\n }\n\n return fragmentList.concat(fragmentChild);\n }, []));\n }\n\n return list.concat(child);\n}\n\nvar METATYPES = ['name', 'httpEquiv', 'charSet', 'itemProp'];\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*/\n\nfunction unique() {\n var keys = new Set();\n var tags = new Set();\n var metaTypes = new Set();\n var metaCategories = {};\n return function (h) {\n var isUnique = true;\n var hasKey = false;\n\n if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {\n hasKey = true;\n var key = h.key.slice(h.key.indexOf('$') + 1);\n\n if (keys.has(key)) {\n isUnique = false;\n } else {\n keys.add(key);\n }\n } // eslint-disable-next-line default-case\n\n\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\n break;\n\n case 'meta':\n for (var i = 0, len = METATYPES.length; i < len; i++) {\n var metatype = METATYPES[i];\n if (!h.props.hasOwnProperty(metatype)) continue;\n\n if (metatype === 'charSet') {\n if (metaTypes.has(metatype)) {\n isUnique = false;\n } else {\n metaTypes.add(metatype);\n }\n } else {\n var category = h.props[metatype];\n var categories = metaCategories[metatype] || new Set();\n\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\n break;\n }\n\n return isUnique;\n };\n}\n/**\n *\n * @param headElements List of multiple <Head> instances\n */\n\n\nfunction reduceComponents(headElements, props) {\n return headElements.reduce(function (list, headElement) {\n var headElementChildren = _react[\"default\"].Children.toArray(headElement.props.children);\n\n return list.concat(headElementChildren);\n }, []).reduce(onlyReactElement, []).reverse().concat(defaultHead(props.inAmpMode)).filter(unique()).reverse().map(function (c, i) {\n var key = c.key || i;\n\n if (false) { var newProps; }\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(c, {\n key: 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 */\n\n\nfunction Head(_ref) {\n _s();\n\n var children = _ref.children;\n var ampState = (0, _react).useContext(_ampContext.AmpStateContext);\n var headManager = (0, _react).useContext(_headManagerContext.HeadManagerContext);\n return /*#__PURE__*/_react[\"default\"].createElement(_sideEffect[\"default\"], {\n reduceComponentsToState: reduceComponents,\n headManager: headManager,\n inAmpMode: (0, _amp).isInAmpMode(ampState)\n }, children);\n}\n\n_s(Head, \"sCUayZmr5V93tUjujy03KdMBCec=\");\n\n_c = Head;\nvar _default = Head;\nexports[\"default\"] = _default;\n\nvar _c;\n\n$RefreshReg$(_c, \"Head\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaGVhZC5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7Ozs7Ozs7Ozs7QUFDYkEsOENBQTZDO0FBQ3pDRyxFQUFBQSxLQUFLLEVBQUU7QUFEa0MsQ0FBN0M7QUFHQUQsbUJBQUEsR0FBc0JFLFdBQXRCO0FBQ0FGLGtCQUFBLEdBQWtCLEtBQUssQ0FBdkI7O0FBQ0EsSUFBSUcsTUFBTSxHQUFHQyx1QkFBdUIsQ0FBQ0MsbUJBQU8sQ0FBQyw0Q0FBRCxDQUFSLENBQXBDOztBQUNBLElBQUlDLFdBQVcsR0FBR0Msc0JBQXNCLENBQUNGLG1CQUFPLENBQUMseUVBQUQsQ0FBUixDQUF4Qzs7QUFDQSxJQUFJRyxXQUFXLEdBQUdILG1CQUFPLENBQUMseUVBQUQsQ0FBekI7O0FBQ0EsSUFBSUksbUJBQW1CLEdBQUdKLG1CQUFPLENBQUMsMkZBQUQsQ0FBakM7O0FBQ0EsSUFBSUssSUFBSSxHQUFHTCxtQkFBTyxDQUFDLHlEQUFELENBQWxCOztBQUNBLFNBQVNFLHNCQUFULENBQWdDSSxHQUFoQyxFQUFxQztBQUNqQyxTQUFPQSxHQUFHLElBQUlBLEdBQUcsQ0FBQ0MsVUFBWCxHQUF3QkQsR0FBeEIsR0FBOEI7QUFDakMsZUFBU0E7QUFEd0IsR0FBckM7QUFHSDs7QUFDRCxTQUFTUCx1QkFBVCxDQUFpQ08sR0FBakMsRUFBc0M7QUFDbEMsTUFBSUEsR0FBRyxJQUFJQSxHQUFHLENBQUNDLFVBQWYsRUFBMkI7QUFDdkIsV0FBT0QsR0FBUDtBQUNILEdBRkQsTUFFTztBQUNILFFBQUlFLE1BQU0sR0FBRyxFQUFiOztBQUVBLFFBQUlGLEdBQUcsSUFBSSxJQUFYLEVBQWlCO0FBQ2IsV0FBSSxJQUFJRyxHQUFSLElBQWVILEdBQWYsRUFBbUI7QUFDZixZQUFJYixNQUFNLENBQUNpQixTQUFQLENBQWlCQyxjQUFqQixDQUFnQ0MsSUFBaEMsQ0FBcUNOLEdBQXJDLEVBQTBDRyxHQUExQyxDQUFKLEVBQW9EO0FBQ2hELGNB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cyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9oZWFkLmpzP2ZiNWQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHRIZWFkID0gZGVmYXVsdEhlYWQ7XG5leHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7XG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcbnZhciBfc2lkZUVmZmVjdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vc2lkZS1lZmZlY3RcIikpO1xudmFyIF9hbXBDb250ZXh0ID0gcmVxdWlyZShcIi4vYW1wLWNvbnRleHRcIik7XG52YXIgX2hlYWRNYW5hZ2VyQ29udGV4dCA9IHJlcXVpcmUoXCIuL2hlYWQtbWFuYWdlci1jb250ZXh0XCIpO1xudmFyIF9hbXAgPSByZXF1aXJlKFwiLi9hbXBcIik7XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHtcbiAgICBpZiAob2JqICYmIG9iai5fX2VzTW9kdWxlKSB7XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIG5ld09iaiA9IHtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKG9iaiAhPSBudWxsKSB7XG4gICAgICAgICAgICBmb3IodmFyIGtleSBpbiBvYmope1xuICAgICAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBkZXNjID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IHtcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3T2JqW2tleV0gPSBvYmpba2V5XTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBuZXdPYmouZGVmYXVsdCA9IG9iajtcbiAgICAgICAgcmV0dXJuIG5ld09iajtcbiAgICB9XG59XG5mdW5jdGlvbiBkZWZhdWx0SGVhZChpbkFtcE1vZGUgPSBmYWxzZSkge1xuICAgIGNvbnN0IGhlYWQgPSBbXG4gICAgICAgIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChcIm1ldGFcIiwge1xuICAgICAgICAgICAgY2hhclNldDogXCJ1dGYtOFwiXG4gICAgICAgIH0pXG4gICAgXTtcbiAgICBpZiAoIWluQW1wTW9kZSkge1xuICAgICAgICBoZWFkLnB1c2goLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwibWV0YVwiLCB7XG4gICAgICAgICAgICBuYW1lOiBcInZpZXdwb3J0XCIsXG4gICAgICAgICAgICBjb250ZW50OiBcIndpZHRoPWRldmljZS13aWR0aFwiXG4gICAgICAgIH0pKTtcbiAgICB9XG4gICAgcmV0dXJuIGhlYWQ7XG59XG5mdW5jdGlvbiBvbmx5UmVhY3RFbGVtZW50KGxpc3QsIGNoaWxkKSB7XG4gICAgLy8gUmVhY3QgY2hpbGRyZW4gY2FuIGJlIFwic3RyaW5nXCIgb3IgXCJudW1iZXJcIiBpbiB0aGlzIGNhc2Ugd2UgaWdub3JlIHRoZW0gZm9yIGJhY2t3YXJkcyBjb21wYXRcbiAgICBpZiAodHlwZW9mIGNoaWxkID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgY2hpbGQgPT09ICdudW1iZXInKSB7XG4gICAgICAgIHJldHVybiBsaXN0O1xuICAgIH1cbiAgICAvLyBBZGRzIHN1cHBvcnQgZm9yIFJlYWN0LkZyYWdtZW50XG4gICAgaWYgKGNoaWxkLnR5cGUgPT09IF9yZWFjdC5kZWZhdWx0LkZyYWdtZW50KSB7XG4gICAgICAgIHJldHVybiBsaXN0LmNvbmNhdChfcmVhY3QuZGVmYXVsdC5DaGlsZHJlbi50b0FycmF5KGNoaWxkLnByb3BzLmNoaWxkcmVuKS5yZWR1Y2UoKGZyYWdtZW50TGlzdCwgZnJhZ21lbnRDaGlsZCk9PntcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZnJhZ21lbnRDaGlsZCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIGZyYWdtZW50Q2hpbGQgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZyYWdtZW50TGlzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmcmFnbWVudExpc3QuY29uY2F0KGZyYWdtZW50Q2hpbGQpO1xuICAgICAgICB9LCBbXSkpO1xuICAgIH1cbiAgICByZXR1cm4gbGlzdC5jb25jYXQoY2hpbGQpO1xufVxuY29uc3QgTUVUQVRZUEVTID0gW1xuICAgICduYW1lJyxcbiAgICAnaHR0cEVxdWl2JyxcbiAgICAnY2hhclNldCcsXG4gICAgJ2l0ZW1Qcm9wJ1xuXTtcbi8qXG4gcmV0dXJucyBhIGZ1bmN0aW9uIGZvciBmaWx0ZXJpbmcgaGVhZCBjaGlsZCBlbGVtZW50c1xuIHdoaWNoIHNob3VsZG4ndCBiZSBkdXBsaWNhdGVkLCBsaWtlIDx0aXRsZS8+XG4gQWxzbyBhZGRzIHN1cHBvcnQgZm9yIGRlZHVwbGljYXRlZCBga2V5YCBwcm9wZXJ0aWVzXG4qLyBmdW5jdGlvbiB1bmlxdWUoKSB7XG4gICAgY29uc3Qga2V5cyA9IG5ldyBTZXQoKTtcbiAgICBjb25zdCB0YWdzID0gbmV3IFNldCgpO1xuICAgIGNvbnN0IG1ldGFUeXBlcyA9IG5ldyBTZXQoKTtcbiAgICBjb25zdCBtZXRhQ2F0ZWdvcmllcyA9IHtcbiAgICB9O1xuICAgIHJldHVybiAoaCk9PntcbiAgICAgICAgbGV0IGlzVW5pcXVlID0gdHJ1ZTtcbiAgICAgICAgbGV0IGhhc0tleSA9IGZhbHNlO1xuICAgICAgICBpZiAoaC5rZXkgJiYgdHlwZW9mIGgua2V5ICE9PSAnbnVtYmVyJyAmJiBoLmtleS5pbmRleE9mKCckJykgPiAwKSB7XG4gICAgICAgICAgICBoYXNLZXkgPSB0cnVlO1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gaC5rZXkuc2xpY2UoaC5rZXkuaW5kZXhPZignJCcpICsgMSk7XG4gICAgICAgICAgICBpZiAoa2V5cy5oYXMoa2V5KSkge1xuICAgICAgICAgICAgICAgIGlzVW5pcXVlID0gZmFsc2U7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGtleXMuYWRkKGtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGRlZmF1bHQtY2FzZVxuICAgICAgICBzd2l0Y2goaC50eXBlKXtcbiAgICAgICAgICAgIGNhc2UgJ3RpdGxlJzpcbiAgICAgICAgICAgIGNhc2UgJ2Jhc2UnOlxuICAgICAgICAgICAgICAgIGlmICh0YWdzLmhhcyhoLnR5cGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlzVW5pcXVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGFncy5hZGQoaC50eXBlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtZXRhJzpcbiAgICAgICAgICAgICAgICBmb3IobGV0IGkgPSAwLCBsZW4gPSBNRVRBVFlQRVMubGVuZ3RoOyBpIDwgbGVuOyBpKyspe1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtZXRhdHlwZSA9IE1FVEFUWVBFU1tpXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFoLnByb3BzLmhhc093blByb3BlcnR5KG1ldGF0eXBlKSkgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChtZXRhdHlwZSA9PT0gJ2NoYXJTZXQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobWV0YVR5cGVzLmhhcyhtZXRhdHlwZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1VuaXF1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhVHlwZXMuYWRkKG1ldGF0eXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNhdGVnb3J5ID0gaC5wcm9wc1ttZXRhdHlwZV07XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjYXRlZ29yaWVzID0gbWV0YUNhdGVnb3JpZXNbbWV0YXR5cGVdIHx8IG5ldyBTZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgobWV0YXR5cGUgIT09ICduYW1lJyB8fCAhaGFzS2V5KSAmJiBjYXRlZ29yaWVzLmhhcyhjYXRlZ29yeSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1VuaXF1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yaWVzLmFkZChjYXRlZ29yeSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YUNhdGVnb3JpZXNbbWV0YXR5cGVdID0gY2F0ZWdvcmllcztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNVbmlxdWU7XG4gICAgfTtcbn1cbi8qKlxuICpcbiAqIEBwYXJhbSBoZWFkRWxlbWVudHMgTGlzdCBvZiBtdWx0aXBsZSA8SGVhZD4gaW5zdGFuY2VzXG4gKi8gZnVuY3Rpb24gcmVkdWNlQ29tcG9uZW50cyhoZWFkRWxlbWVudHMsIHByb3BzKSB7XG4gICAgcmV0dXJuIGhlYWRFbGVtZW50cy5yZWR1Y2UoKGxpc3QsIGhlYWRFbGVtZW50KT0+e1xuICAgICAgICBjb25zdCBoZWFkRWxlbWVudENoaWxkcmVuID0gX3JlYWN0LmRlZmF1bHQuQ2hpbGRyZW4udG9BcnJheShoZWFkRWxlbWVudC5wcm9wcy5jaGlsZHJlbik7XG4gICAgICAgIHJldHVybiBsaXN0LmNvbmNhdChoZWFkRWxlbWVudENoaWxkcmVuKTtcbiAgICB9LCBbXSkucmVkdWNlKG9ubHlSZWFjdEVsZW1lbnQsIFtdKS5yZXZlcnNlKCkuY29uY2F0KGRlZmF1bHRIZWFkKHByb3BzLmluQW1wTW9kZSkpLmZpbHRlcih1bmlxdWUoKSkucmV2ZXJzZSgpLm1hcCgoYywgaSk9PntcbiAgICAgICAgY29uc3Qga2V5ID0gYy5rZXkgfHwgaTtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAnZGV2ZWxvcG1lbnQnICYmIHByb2Nlc3MuZW52Ll9fTkVYVF9PUFRJTUlaRV9GT05UUyAmJiAhcHJvcHMuaW5BbXBNb2RlKSB7XG4gICAgICAgICAgICBpZiAoYy50eXBlID09PSAnbGluaycgJiYgYy5wcm9wc1snaHJlZiddICYmIC8vIFRPRE8ocHJhdGVla2JoQCk6IFJlcGxhY2UgdGhpcyB3aXRoIGNvbnN0IGZyb20gYGNvbnN0YW50c2Agd2hlbiB0aGUgdHJlZSBzaGFraW5nIHdvcmtzLlxuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzcycsXG4gICAgICAgICAgICAgICAgJ2h0dHBzOi8vdXNlLnR5cGVraXQubmV0LydcbiAgICAgICAgICAgIF0uc29tZSgodXJsKT0+Yy5wcm9wc1snaHJlZiddLnN0YXJ0c1dpdGgodXJsKVxuICAgICAgICAgICAgKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld1Byb3BzID0ge1xuICAgICAgICAgICAgICAgICAgICAuLi5jLnByb3BzIHx8IHtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgbmV3UHJvcHNbJ2RhdGEtaHJlZiddID0gbmV3UHJvcHNbJ2hyZWYnXTtcbiAgICAgICAgICAgICAgICBuZXdQcm9wc1snaHJlZiddID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIC8vIEFkZCB0aGlzIGF0dHJpYnV0ZSB0byBtYWtlIGl0IGVhc3kgdG8gaWRlbnRpZnkgb3B0aW1pemVkIHRhZ3NcbiAgICAgICAgICAgICAgICBuZXdQcm9wc1snZGF0YS1vcHRpbWl6ZWQtZm9udHMnXSA9IHRydWU7XG4gICAgICAgICAgICAgICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY2xvbmVFbGVtZW50KGMsIG5ld1Byb3BzKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY2xvbmVFbGVtZW50KGMsIHtcbiAgICAgICAgICAgIGtleVxuICAgICAgICB9KSk7XG4gICAgfSk7XG59XG4vKipcbiAqIFRoaXMgY29tcG9uZW50IGluamVjdHMgZWxlbWVudHMgdG8gYDxoZWFkPmAgb2YgeW91ciBwYWdlLlxuICogVG8gYXZvaWQgZHVwbGljYXRlZCBgdGFnc2AgaW4gYDxoZWFkPmAgeW91IGNhbiB1c2UgdGhlIGBrZXlgIHByb3BlcnR5LCB3aGljaCB3aWxsIG1ha2Ugc3VyZSBldmVyeSB0YWcgaXMgb25seSByZW5kZXJlZCBvbmNlLlxuICovIGZ1bmN0aW9uIEhlYWQoeyBjaGlsZHJlbiAgfSkge1xuICAgIGNvbnN0IGFtcFN0YXRlID0gKDAsIF9yZWFjdCkudXNlQ29udGV4dChfYW1wQ29udGV4dC5BbXBTdGF0ZUNvbnRleHQpO1xuICAgIGNvbnN0IGhlYWRNYW5hZ2VyID0gKDAsIF9yZWFjdCkudXNlQ29udGV4dChfaGVhZE1hbmFnZXJDb250ZXh0LkhlYWRNYW5hZ2VyQ29udGV4dCk7XG4gICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChfc2lkZUVmZmVjdC5kZWZhdWx0LCB7XG4gICAgICAgIHJlZHVjZUNvbXBvbmVudHNUb1N0YXRlOiByZWR1Y2VDb21wb25lbnRzLFxuICAgICAgICBoZWFkTWFuYWdlcjogaGVhZE1hbmFnZXIsXG4gICAgICAgIGluQW1wTW9kZTogKDAsIF9hbXApLmlzSW5BbXBNb2RlKGFtcFN0YXRlKVxuICAgIH0sIGNoaWxkcmVuKSk7XG59XG52YXIgX2RlZmF1bHQgPSBIZWFkO1xuZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhlYWQuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiZGVmYXVsdEhlYWQiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc2lkZUVmZmVjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfYW1wQ29udGV4dCIsIl9oZWFkTWFuYWdlckNvbnRleHQiLCJfYW1wIiwib2JqIiwiX19lc01vZHVsZSIsIm5ld09iaiIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJnZXQiLCJzZXQiLCJpbkFtcE1vZGUiLCJoZWFkIiwiY3JlYXRlRWxlbWVudCIsImNoYXJTZXQiLCJwdXNoIiwibmFtZSIsImNvbnRlbnQiLCJvbmx5UmVhY3RFbGVtZW50IiwibGlzdCIsImNoaWxkIiwidHlwZSIsIkZyYWdtZW50IiwiY29uY2F0IiwiQ2hpbGRyZW4iLCJ0b0FycmF5IiwicHJvcHMiLCJjaGlsZHJlbiIsInJlZHVjZSIsImZyYWdtZW50TGlzdCIsImZyYWdtZW50Q2hpbGQiLCJNRVRBVFlQRVMiLCJ1bmlxdWUiLCJrZXlzIiwiU2V0IiwidGFncyIsIm1ldGFUeXBlcyIsIm1ldGFDYXRlZ29yaWVzIiwiaCIsImlzVW5pcXVlIiwiaGFzS2V5IiwiaW5kZXhPZiIsInNsaWNlIiwiaGFzIiwiYWRkIiwiaSIsImxlbiIsImxlbmd0aCIsIm1ldGF0eXBlIiwiY2F0ZWdvcnkiLCJjYXRlZ29yaWVzIiwicmVkdWNlQ29tcG9uZW50cyIsImhlYWRFbGVtZW50cyIsImhlYWRFbGVtZW50IiwiaGVhZEVsZW1lbnRDaGlsZHJlbiIsInJldmVyc2UiLCJmaWx0ZXIiLCJtYXAiLCJjIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9PUFRJTUlaRV9GT05UUyIsInNvbWUiLCJ1cmwiLCJzdGFydHNXaXRoIiwibmV3UHJvcHMiLCJ1bmRlZmluZWQiLCJjbG9uZUVsZW1lbnQiLCJIZWFkIiwiYW1wU3RhdGUiLCJ1c2VDb250ZXh0IiwiQW1wU3RhdGVDb250ZXh0IiwiaGVhZE1hbmFnZXIiLCJIZWFkTWFuYWdlckNvbnRleHQiLCJyZWR1Y2VDb21wb25lbnRzVG9TdGF0ZSIsImlzSW5BbXBNb2RlIiwiX2RlZmF1bHQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/head.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/side-effect.js": +/*!**********************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/side-effect.js ***! + \**********************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _toConsumableArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/toConsumableArray.js\");\n\nvar _classCallCheck = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\");\n\nvar _createClass = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\");\n\nvar _assertThisInitialized = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/assertThisInitialized */ \"./node_modules/@babel/runtime/helpers/assertThisInitialized.js\");\n\nvar _inherits = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/inherits */ \"./node_modules/@babel/runtime/helpers/inherits.js\");\n\nvar _possibleConstructorReturn = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/possibleConstructorReturn */ \"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\");\n\nvar _getPrototypeOf = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/getPrototypeOf */ \"./node_modules/@babel/runtime/helpers/getPrototypeOf.js\");\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n return newObj;\n }\n}\n\nvar isServer = false;\n\nvar _class = /*#__PURE__*/function (_react$Component) {\n _inherits(_class, _react$Component);\n\n var _super = _createSuper(_class);\n\n function _class(props) {\n var _this;\n\n _classCallCheck(this, _class);\n\n _this = _super.call(this, props);\n\n _this.emitChange = function () {\n if (_this._hasHeadManager) {\n _this.props.headManager.updateHead(_this.props.reduceComponentsToState(_toConsumableArray(_this.props.headManager.mountedInstances), _this.props));\n }\n };\n\n _this._hasHeadManager = _this.props.headManager && _this.props.headManager.mountedInstances;\n\n if (isServer && _this._hasHeadManager) {\n _this.props.headManager.mountedInstances.add(_assertThisInitialized(_this));\n\n _this.emitChange();\n }\n\n return _this;\n }\n\n _createClass(_class, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this._hasHeadManager) {\n this.props.headManager.mountedInstances.add(this);\n }\n\n this.emitChange();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.emitChange();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this._hasHeadManager) {\n this.props.headManager.mountedInstances[\"delete\"](this);\n }\n\n this.emitChange();\n }\n }, {\n key: \"render\",\n value: function render() {\n return null;\n }\n }]);\n\n return _class;\n}(_react.Component);\n\nexports[\"default\"] = _class;\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvc2lkZS1lZmZlY3QuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxrQkFBQSxHQUFrQixLQUFLLENBQXZCOztBQUNBLElBQUlFLE1BQU0sR0FBR0MsdUJBQXVCLENBQUNDLG1CQUFPLENBQUMsNENBQUQsQ0FBUixDQUFwQzs7QUFDQSxTQUFTRCx1QkFBVCxDQUFpQ0UsR0FBakMsRUFBc0M7QUFDbEMsTUFBSUEsR0FBRyxJQUFJQSxHQUFHLENBQUNDLFVBQWYsRUFBMkI7QUFDdkIsV0FBT0QsR0FBUDtBQUNILEdBRkQsTUFFTztBQUNILFFBQUlFLE1BQU0sR0FBRyxFQUFiOztBQUVBLFFBQUlGLEdBQUcsSUFBSSxJQUFYLEVBQWlCO0FBQ2IsV0FBSSxJQUFJRyxHQUFSLElBQWVILEdBQWYsRUFBbUI7QUFDZixZQUFJUCxNQUFNLENBQUNXLFNBQVAsQ0FBaUJDLGNBQWpCLENBQWdDQyxJQUFoQyxDQUFxQ04sR0FBckMsRUFBMENHLEdBQTFDLENBQUosRUFBb0Q7QUFDaEQsY0FBSUksSUFBSSxHQUFHZCxNQUFNLENBQUNDLGNBQVAsSUFBeUJELE1BQU0sQ0FBQ2Usd0JBQWhDLEdBQTJEZixNQUFNLENBQUNlLHdCQUFQLENBQWdDUixHQUFoQyxFQUFxQ0csR0FBckMsQ0FBM0QsR0FBdUcsRUFBbEg7O0FBRUEsY0FBSUksSUFBSSxDQUFDRSxHQUFMLElBQVlGLElBQUksQ0FBQ0csR0FBckIsRUFBMEI7QUFDdEJqQixZQUFBQSxNQUFNLENBQUNDLGNBQVAsQ0FBc0JRLE1BQXRCLEVBQThCQyxHQUE5QixFQUFtQ0ksSUFBbkM7QUFDSCxXQUZELE1BRU87QUFDSEwsWUFBQUEsTUFBTSxDQUFDQyxHQUFELENBQU4sR0FBY0gsR0FBRyxDQUFDRyxHQUFELENBQWpCO0FBQ0g7QUFDSjtBQUNKO0FBQ0o7O0FBQ0RELElBQUFBLE1BQU0sV0FBTixHQUFpQkYsR0FBakI7QUFDQSxXQUFPRSxNQUFQO0FBQ0g7QUFDSjs7QUFDRCxJQUFNUyxRQUFRLFFBQWQ7O0lBQ01DOzs7OztBQUNGLGtCQUFZQyxLQUFaLEVBQWtCO0FBQUE7O0FBQUE7O0FBQ2QsOEJBQU1BLEtBQU47O0FBQ0EsVUFBS0MsVUFBTCxHQUFrQixZQUFJO0FBQ2xCLFVBQUksTUFBS0MsZUFBVCxFQUEwQjtBQUN0QixjQUFLRixLQUFMLENBQVdHLFdBQVgsQ0FBdUJDLFVBQXZCLENBQWtDLE1BQUtKLEtBQUwsQ0FBV0ssdUJBQVgsb0JBQzNCLE1BQUtMLEtBQUwsQ0FBV0csV0FBWCxDQUF1QkcsZ0JBREksR0FFL0IsTUFBS04sS0FGMEIsQ0FBbEM7QUFHSDtBQUNKLEtBTkQ7O0FBT0EsVUFBS0UsZUFBTCxHQUF1QixNQUFLRixLQUFMLENBQVdHLFdBQVgsSUFBMEIsTUFBS0gsS0FBTCxDQUFXRyxXQUFYLENBQXVCRyxnQkFBeEU7O0FBQ0EsUUFBSVIsUUFBUSxJQUFJLE1BQUtJLGVBQXJCLEVBQXNDO0FBQ2xDLFlBQUtGLEtBQUwsQ0FBV0csV0FBWCxDQUF1QkcsZ0JBQXZCLENBQXdDQyxHQUF4Qzs7QUFDQSxZQUFLTixVQUFMO0FBQ0g7O0FBYmE7QUFjakI7Ozs7V0FDRCw2QkFBb0I7QUFDaEIsVUFBSSxLQUFLQyxlQUFULEVBQTBCO0FBQ3RCLGFBQUtGLEtBQUwsQ0FBV0csV0FBWCxDQUF1QkcsZ0JBQXZCLENBQXdDQyxHQUF4QyxDQUE0QyxJQUE1QztBQUNIOztBQUNELFdBQUtOLFVBQUw7QUFDSDs7O1dBQ0QsOEJBQXFCO0FBQ2pCLFdBQUtBLFVBQUw7QUFDSDs7O1dBQ0QsZ0NBQXVCO0FBQ25CLFVBQUksS0FBS0MsZUFBVCxFQUEwQjtBQUN0QixhQUFLRixLQUFMLENBQVdHLFdBQVgsQ0FBdUJHLGdCQUF2QixXQUErQyxJQUEvQztBQUNIOztBQUNELFdBQUtMLFVBQUw7QUFDSDs7O1dBQ0Qsa0JBQVM7QUFDTCxhQUFPLElBQVA7QUFDSDs7OztFQWpDZ0JqQixNQUFNLENBQUN3Qjs7QUFtQzVCMUIsa0JBQUEsR0FBa0JpQixNQUFsQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvc2lkZS1lZmZlY3QuanM/NDA4YyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IHZvaWQgMDtcbnZhciBfcmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7XG4gICAgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkge1xuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBuZXdPYmogPSB7XG4gICAgICAgIH07XG4gICAgICAgIGlmIChvYmogIT0gbnVsbCkge1xuICAgICAgICAgICAgZm9yKHZhciBrZXkgaW4gb2JqKXtcbiAgICAgICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiB7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGlmIChkZXNjLmdldCB8fCBkZXNjLnNldCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld09ialtrZXldID0gb2JqW2tleV07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbmV3T2JqLmRlZmF1bHQgPSBvYmo7XG4gICAgICAgIHJldHVybiBuZXdPYmo7XG4gICAgfVxufVxuY29uc3QgaXNTZXJ2ZXIgPSB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJztcbmNsYXNzIF9jbGFzcyBleHRlbmRzIF9yZWFjdC5Db21wb25lbnQge1xuICAgIGNvbnN0cnVjdG9yKHByb3BzKXtcbiAgICAgICAgc3VwZXIocHJvcHMpO1xuICAgICAgICB0aGlzLmVtaXRDaGFuZ2UgPSAoKT0+e1xuICAgICAgICAgICAgaWYgKHRoaXMuX2hhc0hlYWRNYW5hZ2VyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5oZWFkTWFuYWdlci51cGRhdGVIZWFkKHRoaXMucHJvcHMucmVkdWNlQ29tcG9uZW50c1RvU3RhdGUoW1xuICAgICAgICAgICAgICAgICAgICAuLi50aGlzLnByb3BzLmhlYWRNYW5hZ2VyLm1vdW50ZWRJbnN0YW5jZXNcbiAgICAgICAgICAgICAgICBdLCB0aGlzLnByb3BzKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuX2hhc0hlYWRNYW5hZ2VyID0gdGhpcy5wcm9wcy5oZWFkTWFuYWdlciAmJiB0aGlzLnByb3BzLmhlYWRNYW5hZ2VyLm1vdW50ZWRJbnN0YW5jZXM7XG4gICAgICAgIGlmIChpc1NlcnZlciAmJiB0aGlzLl9oYXNIZWFkTWFuYWdlcikge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5oZWFkTWFuYWdlci5tb3VudGVkSW5zdGFuY2VzLmFkZCh0aGlzKTtcbiAgICAgICAgICAgIHRoaXMuZW1pdENoYW5nZSgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgICBpZiAodGhpcy5faGFzSGVhZE1hbmFnZXIpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMuaGVhZE1hbmFnZXIubW91bnRlZEluc3RhbmNlcy5hZGQodGhpcyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbWl0Q2hhbmdlKCk7XG4gICAgfVxuICAgIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICAgICAgdGhpcy5lbWl0Q2hhbmdlKCk7XG4gICAgfVxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgICBpZiAodGhpcy5faGFzSGVhZE1hbmFnZXIpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMuaGVhZE1hbmFnZXIubW91bnRlZEluc3RhbmNlcy5kZWxldGUodGhpcyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbWl0Q2hhbmdlKCk7XG4gICAgfVxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxufVxuZXhwb3J0cy5kZWZhdWx0ID0gX2NsYXNzO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zaWRlLWVmZmVjdC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJvYmoiLCJfX2VzTW9kdWxlIiwibmV3T2JqIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImdldCIsInNldCIsImlzU2VydmVyIiwiX2NsYXNzIiwicHJvcHMiLCJlbWl0Q2hhbmdlIiwiX2hhc0hlYWRNYW5hZ2VyIiwiaGVhZE1hbmFnZXIiLCJ1cGRhdGVIZWFkIiwicmVkdWNlQ29tcG9uZW50c1RvU3RhdGUiLCJtb3VudGVkSW5zdGFuY2VzIiwiYWRkIiwiQ29tcG9uZW50Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/side-effect.js\n"); + +/***/ }) + +}]); \ No newline at end of file diff --git a/.next/static/chunks/pages/404.js b/.next/static/chunks/pages/404.js new file mode 100644 index 0000000..fec666f --- /dev/null +++ b/.next/static/chunks/pages/404.js @@ -0,0 +1,39 @@ +/* + * 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/). + */ +(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["pages/404"],{ + +/***/ "./src/pages/404.js": +/*!**************************!*\ + !*** ./src/pages/404.js ***! + \**************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\pages\\\\404.js\",\n _this = undefined;\n\n\n\n\nvar ErrorPage = function ErrorPage() {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"h1\", {\n children: \"404 - Page Not Found\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 4,\n columnNumber: 10\n }, _this);\n};\n\n_c = ErrorPage;\n/* harmony default export */ __webpack_exports__[\"default\"] = (ErrorPage);\n\nvar _c;\n\n$RefreshReg$(_c, \"ErrorPage\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvcGFnZXMvNDA0LmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOzs7QUFFQSxJQUFNQyxTQUFTLEdBQUcsU0FBWkEsU0FBWSxHQUFNO0FBQ3RCLHNCQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBQVA7QUFDRCxDQUZEOztLQUFNQTtBQUlOLCtEQUFlQSxTQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9wYWdlcy80MDQuanM/NzU4NyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcblxyXG5jb25zdCBFcnJvclBhZ2UgPSAoKSA9PiB7XHJcbiAgcmV0dXJuIDxoMT40MDQgLSBQYWdlIE5vdCBGb3VuZDwvaDE+O1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgRXJyb3JQYWdlO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJFcnJvclBhZ2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/pages/404.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2F404&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5C404.js!": +/*!**********************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2F404&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5C404.js! ***! + \**********************************************************************************************************************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/404\",\n function () {\n return __webpack_require__(/*! ./src/pages/404.js */ \"./src/pages/404.js\");\n }\n ]);\n if(true) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/404\"])\n });\n }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWNsaWVudC1wYWdlcy1sb2FkZXIuanM/cGFnZT0lMkY0MDQmYWJzb2x1dGVQYWdlUGF0aD1DJTNBJTVDVXNlcnMlNUNocCU1Q0Rlc2t0b3AlNUNidXNpbmVzcy1odWIlNUNzcmMlNUNwYWdlcyU1QzQwNC5qcyEuanMiLCJtYXBwaW5ncyI6IjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsbUJBQU8sQ0FBQyw4Q0FBb0I7QUFDM0M7QUFDQTtBQUNBLE9BQU8sSUFBVTtBQUNqQixNQUFNLFVBQVU7QUFDaEI7QUFDQSxPQUFPO0FBQ1A7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvPzU0NGUiXSwic291cmNlc0NvbnRlbnQiOlsiXG4gICAgKHdpbmRvdy5fX05FWFRfUCA9IHdpbmRvdy5fX05FWFRfUCB8fCBbXSkucHVzaChbXG4gICAgICBcIi80MDRcIixcbiAgICAgIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHJlcXVpcmUoXCIuL3NyYy9wYWdlcy80MDQuanNcIik7XG4gICAgICB9XG4gICAgXSk7XG4gICAgaWYobW9kdWxlLmhvdCkge1xuICAgICAgbW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgd2luZG93Ll9fTkVYVF9QLnB1c2goW1wiLzQwNFwiXSlcbiAgICAgIH0pO1xuICAgIH1cbiAgIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2F404&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5C404.js!\n"); + +/***/ }) + +}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); } +/******/ __webpack_require__.O(0, ["pages/_app","main"], function() { return __webpack_exec__("./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2F404&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5C404.js!"); }); +/******/ var __webpack_exports__ = __webpack_require__.O(); +/******/ _N_E = __webpack_exports__; +/******/ } +]); \ No newline at end of file diff --git a/.next/static/chunks/pages/_app.js b/.next/static/chunks/pages/_app.js new file mode 100644 index 0000000..5c7a0a3 --- /dev/null +++ b/.next/static/chunks/pages/_app.js @@ -0,0 +1,277 @@ +/* + * 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/). + */ +(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["pages/_app"],{ + +/***/ "./node_modules/next/dist/shared/lib/amp-context.js": +/*!**********************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/amp-context.js ***! + \**********************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.AmpStateContext = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar AmpStateContext = _react[\"default\"].createContext({});\n\nexports.AmpStateContext = AmpStateContext;\n\nif (true) {\n AmpStateContext.displayName = 'AmpStateContext';\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvYW1wLWNvbnRleHQuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCx1QkFBQSxHQUEwQixLQUFLLENBQS9COztBQUNBLElBQUlHLE1BQU0sR0FBR0Msc0JBQXNCLENBQUNDLG1CQUFPLENBQUMsNENBQUQsQ0FBUixDQUFuQzs7QUFDQSxTQUFTRCxzQkFBVCxDQUFnQ0UsR0FBaEMsRUFBcUM7QUFDakMsU0FBT0EsR0FBRyxJQUFJQSxHQUFHLENBQUNDLFVBQVgsR0FBd0JELEdBQXhCLEdBQThCO0FBQ2pDLGVBQVNBO0FBRHdCLEdBQXJDO0FBR0g7O0FBQ0QsSUFBTUosZUFBZSxHQUFHQyxNQUFNLFdBQU4sQ0FBZUssYUFBZixDQUE2QixFQUE3QixDQUF4Qjs7QUFFQVIsdUJBQUEsR0FBMEJFLGVBQTFCOztBQUNBLElBQUksTUFBdUM7QUFDdkNBLEVBQUFBLGVBQWUsQ0FBQ08sV0FBaEIsR0FBOEIsaUJBQTlCO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zaGFyZWQvbGliL2FtcC1jb250ZXh0LmpzP2U1YTciXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLkFtcFN0YXRlQ29udGV4dCA9IHZvaWQgMDtcbnZhciBfcmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5jb25zdCBBbXBTdGF0ZUNvbnRleHQgPSBfcmVhY3QuZGVmYXVsdC5jcmVhdGVDb250ZXh0KHtcbn0pO1xuZXhwb3J0cy5BbXBTdGF0ZUNvbnRleHQgPSBBbXBTdGF0ZUNvbnRleHQ7XG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIEFtcFN0YXRlQ29udGV4dC5kaXNwbGF5TmFtZSA9ICdBbXBTdGF0ZUNvbnRleHQnO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hbXAtY29udGV4dC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJBbXBTdGF0ZUNvbnRleHQiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIm9iaiIsIl9fZXNNb2R1bGUiLCJjcmVhdGVDb250ZXh0IiwiZGlzcGxheU5hbWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/amp-context.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/amp.js": +/*!**************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/amp.js ***! + \**************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _s = $RefreshSig$();\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.isInAmpMode = isInAmpMode;\nexports.useAmp = useAmp;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _ampContext = __webpack_require__(/*! ./amp-context */ \"./node_modules/next/dist/shared/lib/amp-context.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction isInAmpMode() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$ampFirst = _ref.ampFirst,\n ampFirst = _ref$ampFirst === void 0 ? false : _ref$ampFirst,\n _ref$hybrid = _ref.hybrid,\n hybrid = _ref$hybrid === void 0 ? false : _ref$hybrid,\n _ref$hasQuery = _ref.hasQuery,\n hasQuery = _ref$hasQuery === void 0 ? false : _ref$hasQuery;\n\n return ampFirst || hybrid && hasQuery;\n}\n\nfunction useAmp() {\n _s();\n\n // Don't assign the context value to a variable to save bytes\n return isInAmpMode(_react[\"default\"].useContext(_ampContext.AmpStateContext));\n}\n\n_s(useAmp, \"gDsCjeeItUuvgOWf1v4qoK9RF6k=\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvYW1wLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7OztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxtQkFBQSxHQUFzQkUsV0FBdEI7QUFDQUYsY0FBQSxHQUFpQkcsTUFBakI7O0FBQ0EsSUFBSUMsTUFBTSxHQUFHQyxzQkFBc0IsQ0FBQ0MsbUJBQU8sQ0FBQyw0Q0FBRCxDQUFSLENBQW5DOztBQUNBLElBQUlDLFdBQVcsR0FBR0QsbUJBQU8sQ0FBQyx5RUFBRCxDQUF6Qjs7QUFDQSxTQUFTRCxzQkFBVCxDQUFnQ0csR0FBaEMsRUFBcUM7QUFDakMsU0FBT0EsR0FBRyxJQUFJQSxHQUFHLENBQUNDLFVBQVgsR0FBd0JELEdBQXhCLEdBQThCO0FBQ2pDLGVBQVNBO0FBRHdCLEdBQXJDO0FBR0g7O0FBQ0QsU0FBU04sV0FBVCxHQUNHO0FBQUEsaUZBRDZFLEVBQzdFO0FBQUEsMkJBRG9CUSxRQUNwQjtBQUFBLE1BRG9CQSxRQUNwQiw4QkFEOEIsS0FDOUI7QUFBQSx5QkFEc0NDLE1BQ3RDO0FBQUEsTUFEc0NBLE1BQ3RDLDRCQUQ4QyxLQUM5QztBQUFBLDJCQURzREMsUUFDdEQ7QUFBQSxNQURzREEsUUFDdEQsOEJBRGdFLEtBQ2hFOztBQUNDLFNBQU9GLFFBQVEsSUFBSUMsTUFBTSxJQUFJQyxRQUE3QjtBQUNIOztBQUNELFNBQVNULE1BQVQsR0FBa0I7QUFBQTs7QUFDZDtBQUNBLFNBQU9ELFdBQVcsQ0FBQ0UsTUFBTSxXQUFOLENBQWVTLFVBQWYsQ0FBMEJOLFdBQVcsQ0FBQ08sZUFBdEMsQ0FBRCxDQUFsQjtBQUNIOztHQUhRWCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvYW1wLmpzPzVlNGYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmlzSW5BbXBNb2RlID0gaXNJbkFtcE1vZGU7XG5leHBvcnRzLnVzZUFtcCA9IHVzZUFtcDtcbnZhciBfcmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG52YXIgX2FtcENvbnRleHQgPSByZXF1aXJlKFwiLi9hbXAtY29udGV4dFwiKTtcbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGlzSW5BbXBNb2RlKHsgYW1wRmlyc3QgPWZhbHNlICwgaHlicmlkID1mYWxzZSAsIGhhc1F1ZXJ5ID1mYWxzZSAsICB9ID0ge1xufSkge1xuICAgIHJldHVybiBhbXBGaXJzdCB8fCBoeWJyaWQgJiYgaGFzUXVlcnk7XG59XG5mdW5jdGlvbiB1c2VBbXAoKSB7XG4gICAgLy8gRG9uJ3QgYXNzaWduIHRoZSBjb250ZXh0IHZhbHVlIHRvIGEgdmFyaWFibGUgdG8gc2F2ZSBieXRlc1xuICAgIHJldHVybiBpc0luQW1wTW9kZShfcmVhY3QuZGVmYXVsdC51c2VDb250ZXh0KF9hbXBDb250ZXh0LkFtcFN0YXRlQ29udGV4dCkpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hbXAuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiaXNJbkFtcE1vZGUiLCJ1c2VBbXAiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9hbXBDb250ZXh0Iiwib2JqIiwiX19lc01vZHVsZSIsImFtcEZpcnN0IiwiaHlicmlkIiwiaGFzUXVlcnkiLCJ1c2VDb250ZXh0IiwiQW1wU3RhdGVDb250ZXh0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/amp.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/head.js": +/*!***************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/head.js ***! + \***************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _defineProperty = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/defineProperty.js\");\n\nvar _s = $RefreshSig$();\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.defaultHead = defaultHead;\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _sideEffect = _interopRequireDefault(__webpack_require__(/*! ./side-effect */ \"./node_modules/next/dist/shared/lib/side-effect.js\"));\n\nvar _ampContext = __webpack_require__(/*! ./amp-context */ \"./node_modules/next/dist/shared/lib/amp-context.js\");\n\nvar _headManagerContext = __webpack_require__(/*! ./head-manager-context */ \"./node_modules/next/dist/shared/lib/head-manager-context.js\");\n\nvar _amp = __webpack_require__(/*! ./amp */ \"./node_modules/next/dist/shared/lib/amp.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n return newObj;\n }\n}\n\nfunction defaultHead() {\n var inAmpMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var head = [/*#__PURE__*/_react[\"default\"].createElement(\"meta\", {\n charSet: \"utf-8\"\n })];\n\n if (!inAmpMode) {\n head.push( /*#__PURE__*/_react[\"default\"].createElement(\"meta\", {\n name: \"viewport\",\n content: \"width=device-width\"\n }));\n }\n\n return head;\n}\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 } // Adds support for React.Fragment\n\n\n if (child.type === _react[\"default\"].Fragment) {\n return list.concat(_react[\"default\"].Children.toArray(child.props.children).reduce(function (fragmentList, fragmentChild) {\n if (typeof fragmentChild === 'string' || typeof fragmentChild === 'number') {\n return fragmentList;\n }\n\n return fragmentList.concat(fragmentChild);\n }, []));\n }\n\n return list.concat(child);\n}\n\nvar METATYPES = ['name', 'httpEquiv', 'charSet', 'itemProp'];\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*/\n\nfunction unique() {\n var keys = new Set();\n var tags = new Set();\n var metaTypes = new Set();\n var metaCategories = {};\n return function (h) {\n var isUnique = true;\n var hasKey = false;\n\n if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {\n hasKey = true;\n var key = h.key.slice(h.key.indexOf('$') + 1);\n\n if (keys.has(key)) {\n isUnique = false;\n } else {\n keys.add(key);\n }\n } // eslint-disable-next-line default-case\n\n\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\n break;\n\n case 'meta':\n for (var i = 0, len = METATYPES.length; i < len; i++) {\n var metatype = METATYPES[i];\n if (!h.props.hasOwnProperty(metatype)) continue;\n\n if (metatype === 'charSet') {\n if (metaTypes.has(metatype)) {\n isUnique = false;\n } else {\n metaTypes.add(metatype);\n }\n } else {\n var category = h.props[metatype];\n var categories = metaCategories[metatype] || new Set();\n\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\n break;\n }\n\n return isUnique;\n };\n}\n/**\n *\n * @param headElements List of multiple <Head> instances\n */\n\n\nfunction reduceComponents(headElements, props) {\n return headElements.reduce(function (list, headElement) {\n var headElementChildren = _react[\"default\"].Children.toArray(headElement.props.children);\n\n return list.concat(headElementChildren);\n }, []).reduce(onlyReactElement, []).reverse().concat(defaultHead(props.inAmpMode)).filter(unique()).reverse().map(function (c, i) {\n var key = c.key || i;\n\n if (false) { var newProps; }\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(c, {\n key: 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 */\n\n\nfunction Head(_ref) {\n _s();\n\n var children = _ref.children;\n var ampState = (0, _react).useContext(_ampContext.AmpStateContext);\n var headManager = (0, _react).useContext(_headManagerContext.HeadManagerContext);\n return /*#__PURE__*/_react[\"default\"].createElement(_sideEffect[\"default\"], {\n reduceComponentsToState: reduceComponents,\n headManager: headManager,\n inAmpMode: (0, _amp).isInAmpMode(ampState)\n }, children);\n}\n\n_s(Head, \"sCUayZmr5V93tUjujy03KdMBCec=\");\n\n_c = Head;\nvar _default = Head;\nexports[\"default\"] = _default;\n\nvar _c;\n\n$RefreshReg$(_c, \"Head\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaGVhZC5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7Ozs7Ozs7Ozs7QUFDYkEsOENBQTZDO0FBQ3pDRyxFQUFBQSxLQUFLLEVBQUU7QUFEa0MsQ0FBN0M7QUFHQUQsbUJBQUEsR0FBc0JFLFdBQXRCO0FBQ0FGLGtCQUFBLEdBQWtCLEtBQUssQ0FBdkI7O0FBQ0EsSUFBSUcsTUFBTSxHQUFHQyx1QkFBdUIsQ0FBQ0MsbUJBQU8sQ0FBQyw0Q0FBRCxDQUFSLENBQXBDOztBQUNBLElBQUlDLFdBQVcsR0FBR0Msc0JBQXNCLENBQUNGLG1CQUFPLENBQUMseUVBQUQsQ0FBUixDQUF4Qzs7QUFDQSxJQUFJRyxXQUFXLEdBQUdILG1CQUFPLENBQUMseUVBQUQsQ0FBekI7O0FBQ0EsSUFBSUksbUJBQW1CLEdBQUdKLG1CQUFPLENBQUMsMkZBQUQsQ0FBakM7O0FBQ0EsSUFBSUssSUFBSSxHQUFHTCxtQkFBTyxDQUFDLHlEQUFELENBQWxCOztBQUNBLFNBQVNFLHNCQUFULENBQWdDSSxHQUFoQyxFQUFxQztBQUNqQyxTQUFPQSxHQUFHLElBQUlBLEdBQUcsQ0FBQ0MsVUFBWCxHQUF3QkQsR0FBeEIsR0FBOEI7QUFDakMsZUFBU0E7QUFEd0IsR0FBckM7QUFHSDs7QUFDRCxTQUFTUCx1QkFBVCxDQUFpQ08sR0FBakMsRUFBc0M7QUFDbEMsTUFBSUEsR0FBRyxJQUFJQSxHQUFHLENBQUNDLFVBQWYsRUFBMkI7QUFDdkIsV0FBT0QsR0FBUDtBQUNILEdBRkQsTUFFTztBQUNILFFBQUlFLE1BQU0sR0FBRyxFQUFiOztBQUVBLFFBQUlGLEdBQUcsSUFBSSxJQUFYLEVBQWlCO0FBQ2IsV0FBSSxJQUFJRyxHQUFSLElBQWVILEdBQWYsRUFBbUI7QUFDZixZQUFJYixNQUFNLENBQUNpQixTQUFQLENBQWlCQyxjQUFqQixDQUFnQ0MsSUFBaEMsQ0FBcUNOLEdBQXJDLEVBQTBDRyxHQUExQyxDQUFKLEVBQW9EO0FBQ2hELGNBQUlJLElBQUksR0FBR3BCLE1BQU0sQ0FBQ0MsY0FBUCxJQUF5QkQsTUFBTSxDQUFDcUIsd0JBQWhDLEdBQTJEckIsTUFBTSxDQUFDcUIsd0JBQVAsQ0FBZ0NSLEdBQWhDLEVBQXFDRyxHQUFyQyxDQUEzRCxHQUF1RyxFQUFsSDs7QUFFQSxjQUFJSSxJQUFJLENBQUNFLEdBQUwsSUFBWUYsSUFBSSxDQUFDRyxHQUFyQixFQUEwQjtBQUN0QnZCLFlBQUFBLE1BQU0sQ0FBQ0MsY0FBUCxDQUFzQmMsTUFBdEIsRUFBOEJDLEdBQTlCLEVBQW1DSSxJQUFuQztBQUNILFdBRkQsTUFFTztBQUNITCxZQUFBQSxNQUFNLENBQUNDLEdBQUQsQ0FBTixHQUFjSCxHQUFHLENBQUNHLEdBQUQsQ0FBakI7QUFDSDtBQUNKO0FBQ0o7QUFDSjs7QUFDREQsSUFBQUEsTUFBTSxXQUFOLEdBQWlCRixHQUFqQjtBQUNBLFdBQU9FLE1BQVA7QUFDSDtBQUNKOztBQUNELFNBQVNYLFdBQVQsR0FBd0M7QUFBQSxNQUFuQm9CLFNBQW1CLHVFQUFQLEtBQU87QUFDcEMsTUFBTUMsSUFBSSxHQUFHLENBQ1QsYUFBY3BCLE1BQU0sV0FBTixDQUFlcUIsYUFBZixDQUE2QixNQUE3QixFQUFxQztBQUMvQ0MsSUFBQUEsT0FBTyxFQUFFO0FBRHNDLEdBQXJDLENBREwsQ0FBYjs7QUFLQSxNQUFJLENBQUNILFNBQUwsRUFBZ0I7QUFDWkMsSUFBQUEsSUFBSSxDQUFDRyxJQUFMLEVBQVUsYUFBY3ZCLE1BQU0sV0FBTixDQUFlcUIsYUFBZixDQUE2QixNQUE3QixFQUFxQztBQUN6REcsTUFBQUEsSUFBSSxFQUFFLFVBRG1EO0FBRXpEQyxNQUFBQSxPQUFPLEVBQUU7QUFGZ0QsS0FBckMsQ0FBeEI7QUFJSDs7QUFDRCxTQUFPTCxJQUFQO0FBQ0g7O0FBQ0QsU0FBU00sZ0JBQVQsQ0FBMEJDLElBQTFCLEVBQWdDQyxLQUFoQyxFQUF1QztBQUNuQztBQUNBLE1BQUksT0FBT0EsS0FBUCxLQUFpQixRQUFqQixJQUE2QixPQUFPQSxLQUFQLEtBQWlCLFFBQWxELEVBQTREO0FBQ3hELFdBQU9ELElBQVA7QUFDSCxHQUprQyxDQUtuQzs7O0FBQ0EsTUFBSUMsS0FBSyxDQUFDQyxJQUFOLEtBQWU3QixNQUFNLFdBQU4sQ0FBZThCLFFBQWxDLEVBQTRDO0FBQ3hDLFdBQU9ILElBQUksQ0FBQ0ksTUFBTCxDQUFZL0IsTUFBTSxXQUFOLENBQWVnQyxRQUFmLENBQXdCQyxPQUF4QixDQUFnQ0wsS0FBSyxDQUFDTSxLQUFOLENBQVlDLFFBQTVDLEVBQXNEQyxNQUF0RCxDQUE2RCxVQUFDQyxZQUFELEVBQWVDLGFBQWYsRUFBK0I7QUFDM0csVUFBSSxPQUFPQSxhQUFQLEtBQXlCLFFBQXpCLElBQXFDLE9BQU9BLGFBQVAsS0FBeUIsUUFBbEUsRUFBNEU7QUFDeEUsZUFBT0QsWUFBUDtBQUNIOztBQUNELGFBQU9BLFlBQVksQ0FBQ04sTUFBYixDQUFvQk8sYUFBcEIsQ0FBUDtBQUNILEtBTGtCLEVBS2hCLEVBTGdCLENBQVosQ0FBUDtBQU1IOztBQUNELFNBQU9YLElBQUksQ0FBQ0ksTUFBTCxDQUFZSCxLQUFaLENBQVA7QUFDSDs7QUFDRCxJQUFNVyxTQUFTLEdBQUcsQ0FDZCxNQURjLEVBRWQsV0FGYyxFQUdkLFNBSGMsRUFJZCxVQUpjLENBQWxCO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFBRyxTQUFTQyxNQUFULEdBQWtCO0FBQ2pCLE1BQU1DLElBQUksR0FBRyxJQUFJQyxHQUFKLEVBQWI7QUFDQSxNQUFNQyxJQUFJLEdBQUcsSUFBSUQsR0FBSixFQUFiO0FBQ0EsTUFBTUUsU0FBUyxHQUFHLElBQUlGLEdBQUosRUFBbEI7QUFDQSxNQUFNRyxjQUFjLEdBQUcsRUFBdkI7QUFFQSxTQUFPLFVBQUNDLENBQUQsRUFBSztBQUNSLFFBQUlDLFFBQVEsR0FBRyxJQUFmO0FBQ0EsUUFBSUMsTUFBTSxHQUFHLEtBQWI7O0FBQ0EsUUFBSUYsQ0FBQyxDQUFDbkMsR0FBRixJQUFTLE9BQU9tQyxDQUFDLENBQUNuQyxHQUFULEtBQWlCLFFBQTFCLElBQXNDbUMsQ0FBQyxDQUFDbkMsR0FBRixDQUFNc0MsT0FBTixDQUFjLEdBQWQsSUFBcUIsQ0FBL0QsRUFBa0U7QUFDOURELE1BQUFBLE1BQU0sR0FBRyxJQUFUO0FBQ0EsVUFBTXJDLEdBQUcsR0FBR21DLENBQUMsQ0FBQ25DLEdBQUYsQ0FBTXVDLEtBQU4sQ0FBWUosQ0FBQyxDQUFDbkMsR0FBRixDQUFNc0MsT0FBTixDQUFjLEdBQWQsSUFBcUIsQ0FBakMsQ0FBWjs7QUFDQSxVQUFJUixJQUFJLENBQUNVLEdBQUwsQ0FBU3hDLEdBQVQsQ0FBSixFQUFtQjtBQUNmb0MsUUFBQUEsUUFBUSxHQUFHLEtBQVg7QUFDSCxPQUZELE1BRU87QUFDSE4sUUFBQUEsSUFBSSxDQUFDVyxHQUFMLENBQVN6QyxHQUFUO0FBQ0g7QUFDSixLQVhPLENBWVI7OztBQUNBLFlBQU9tQyxDQUFDLENBQUNqQixJQUFUO0FBQ0ksV0FBSyxPQUFMO0FBQ0EsV0FBSyxNQUFMO0FBQ0ksWUFBSWMsSUFBSSxDQUFDUSxHQUFMLENBQVNMLENBQUMsQ0FBQ2pCLElBQVgsQ0FBSixFQUFzQjtBQUNsQmtCLFVBQUFBLFFBQVEsR0FBRyxLQUFYO0FBQ0gsU0FGRCxNQUVPO0FBQ0hKLFVBQUFBLElBQUksQ0FBQ1MsR0FBTCxDQUFTTixDQUFDLENBQUNqQixJQUFYO0FBQ0g7O0FBQ0Q7O0FBQ0osV0FBSyxNQUFMO0FBQ0ksYUFBSSxJQUFJd0IsQ0FBQyxHQUFHLENBQVIsRUFBV0MsR0FBRyxHQUFHZixTQUFTLENBQUNnQixNQUEvQixFQUF1Q0YsQ0FBQyxHQUFHQyxHQUEzQyxFQUFnREQsQ0FBQyxFQUFqRCxFQUFvRDtBQUNoRCxjQUFNRyxRQUFRLEdBQUdqQixTQUFTLENBQUNjLENBQUQsQ0FBMUI7QUFDQSxjQUFJLENBQUNQLENBQUMsQ0FBQ1osS0FBRixDQUFRckIsY0FBUixDQUF1QjJDLFFBQXZCLENBQUwsRUFBdUM7O0FBQ3ZDLGNBQUlBLFFBQVEsS0FBSyxTQUFqQixFQUE0QjtBQUN4QixnQkFBSVosU0FBUyxDQUFDTyxHQUFWLENBQWNLLFFBQWQsQ0FBSixFQUE2QjtBQUN6QlQsY0FBQUEsUUFBUSxHQUFHLEtBQVg7QUFDSCxhQUZELE1BRU87QUFDSEgsY0FBQUEsU0FBUyxDQUFDUSxHQUFWLENBQWNJLFFBQWQ7QUFDSDtBQUNKLFdBTkQsTUFNTztBQUNILGdCQUFNQyxRQUFRLEdBQUdYLENBQUMsQ0FBQ1osS0FBRixDQUFRc0IsUUFBUixDQUFqQjtBQUNBLGdCQUFNRSxVQUFVLEdBQUdiLGNBQWMsQ0FBQ1csUUFBRCxDQUFkLElBQTRCLElBQUlkLEdBQUosRUFBL0M7O0FBQ0EsZ0JBQUksQ0FBQ2MsUUFBUSxLQUFLLE1BQWIsSUFBdUIsQ0FBQ1IsTUFBekIsS0FBb0NVLFVBQVUsQ0FBQ1AsR0FBWCxDQUFlTSxRQUFmLENBQXhDLEVBQWtFO0FBQzlEVixjQUFBQSxRQUFRLEdBQUcsS0FBWDtBQUNILGFBRkQsTUFFTztBQUNIVyxjQUFBQSxVQUFVLENBQUNOLEdBQVgsQ0FBZUssUUFBZjtBQUNBWixjQUFBQSxjQUFjLENBQUNXLFFBQUQsQ0FBZCxHQUEyQkUsVUFBM0I7QUFDSDtBQUNKO0FBQ0o7O0FBQ0Q7QUE5QlI7O0FBZ0NBLFdBQU9YLFFBQVA7QUFDSCxHQTlDRDtBQStDSDtBQUNEO0FBQ0E7QUFDQTtBQUNBOzs7QUFBSSxTQUFTWSxnQkFBVCxDQUEwQkMsWUFBMUIsRUFBd0MxQixLQUF4QyxFQUErQztBQUMvQyxTQUFPMEIsWUFBWSxDQUFDeEIsTUFBYixDQUFvQixVQUFDVCxJQUFELEVBQU9rQyxXQUFQLEVBQXFCO0FBQzVDLFFBQU1DLG1CQUFtQixHQUFHOUQsTUFBTSxXQUFOLENBQWVnQyxRQUFmLENBQXdCQyxPQUF4QixDQUFnQzRCLFdBQVcsQ0FBQzNCLEtBQVosQ0FBa0JDLFFBQWxELENBQTVCOztBQUNBLFdBQU9SLElBQUksQ0FBQ0ksTUFBTCxDQUFZK0IsbUJBQVosQ0FBUDtBQUNILEdBSE0sRUFHSixFQUhJLEVBR0ExQixNQUhBLENBR09WLGdCQUhQLEVBR3lCLEVBSHpCLEVBRzZCcUMsT0FIN0IsR0FHdUNoQyxNQUh2QyxDQUc4Q2hDLFdBQVcsQ0FBQ21DLEtBQUssQ0FBQ2YsU0FBUCxDQUh6RCxFQUc0RTZDLE1BSDVFLENBR21GeEIsTUFBTSxFQUh6RixFQUc2RnVCLE9BSDdGLEdBR3VHRSxHQUh2RyxDQUcyRyxVQUFDQyxDQUFELEVBQUliLENBQUosRUFBUTtBQUN0SCxRQUFNMUMsR0FBRyxHQUFHdUQsQ0FBQyxDQUFDdkQsR0FBRixJQUFTMEMsQ0FBckI7O0FBQ0EsUUFBSSxLQUFKLEVBQXFHLGlCQWlCcEc7O0FBQ0QsV0FBTyxhQUFjckQsTUFBTSxXQUFOLENBQWUyRSxZQUFmLENBQTRCVCxDQUE1QixFQUErQjtBQUNoRHZELE1BQUFBLEdBQUcsRUFBSEE7QUFEZ0QsS0FBL0IsQ0FBckI7QUFHSCxHQTFCTSxDQUFQO0FBMkJIO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7OztBQUFJLFNBQVNpRSxJQUFULE9BQTZCO0FBQUE7O0FBQUEsTUFBYnpDLFFBQWEsUUFBYkEsUUFBYTtBQUM3QixNQUFNMEMsUUFBUSxHQUFHLENBQUMsR0FBRzdFLE1BQUosRUFBWThFLFVBQVosQ0FBdUJ6RSxXQUFXLENBQUMwRSxlQUFuQyxDQUFqQjtBQUNBLE1BQU1DLFdBQVcsR0FBRyxDQUFDLEdBQUdoRixNQUFKLEVBQVk4RSxVQUFaLENBQXVCeEUsbUJBQW1CLENBQUMyRSxrQkFBM0MsQ0FBcEI7QUFDQSxTQUFPLGFBQWNqRixNQUFNLFdBQU4sQ0FBZXFCLGFBQWYsQ0FBNkJsQixXQUFXLFdBQXhDLEVBQWtEO0FBQ25FK0UsSUFBQUEsdUJBQXVCLEVBQUV2QixnQkFEMEM7QUFFbkVxQixJQUFBQSxXQUFXLEVBQUVBLFdBRnNEO0FBR25FN0QsSUFBQUEsU0FBUyxFQUFFLENBQUMsR0FBR1osSUFBSixFQUFVNEUsV0FBVixDQUFzQk4sUUFBdEI7QUFId0QsR0FBbEQsRUFJbEIxQyxRQUprQixDQUFyQjtBQUtIOztHQVJZeUM7O0tBQUFBO0FBU2IsSUFBSVEsUUFBUSxHQUFHUixJQUFmO0FBQ0EvRSxrQkFBQSxHQUFrQnVGLFFBQWxCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9oZWFkLmpzP2ZiNWQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHRIZWFkID0gZGVmYXVsdEhlYWQ7XG5leHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7XG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcbnZhciBfc2lkZUVmZmVjdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vc2lkZS1lZmZlY3RcIikpO1xudmFyIF9hbXBDb250ZXh0ID0gcmVxdWlyZShcIi4vYW1wLWNvbnRleHRcIik7XG52YXIgX2hlYWRNYW5hZ2VyQ29udGV4dCA9IHJlcXVpcmUoXCIuL2hlYWQtbWFuYWdlci1jb250ZXh0XCIpO1xudmFyIF9hbXAgPSByZXF1aXJlKFwiLi9hbXBcIik7XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHtcbiAgICBpZiAob2JqICYmIG9iai5fX2VzTW9kdWxlKSB7XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIG5ld09iaiA9IHtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKG9iaiAhPSBudWxsKSB7XG4gICAgICAgICAgICBmb3IodmFyIGtleSBpbiBvYmope1xuICAgICAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBkZXNjID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IHtcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3T2JqW2tleV0gPSBvYmpba2V5XTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBuZXdPYmouZGVmYXVsdCA9IG9iajtcbiAgICAgICAgcmV0dXJuIG5ld09iajtcbiAgICB9XG59XG5mdW5jdGlvbiBkZWZhdWx0SGVhZChpbkFtcE1vZGUgPSBmYWxzZSkge1xuICAgIGNvbnN0IGhlYWQgPSBbXG4gICAgICAgIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChcIm1ldGFcIiwge1xuICAgICAgICAgICAgY2hhclNldDogXCJ1dGYtOFwiXG4gICAgICAgIH0pXG4gICAgXTtcbiAgICBpZiAoIWluQW1wTW9kZSkge1xuICAgICAgICBoZWFkLnB1c2goLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwibWV0YVwiLCB7XG4gICAgICAgICAgICBuYW1lOiBcInZpZXdwb3J0XCIsXG4gICAgICAgICAgICBjb250ZW50OiBcIndpZHRoPWRldmljZS13aWR0aFwiXG4gICAgICAgIH0pKTtcbiAgICB9XG4gICAgcmV0dXJuIGhlYWQ7XG59XG5mdW5jdGlvbiBvbmx5UmVhY3RFbGVtZW50KGxpc3QsIGNoaWxkKSB7XG4gICAgLy8gUmVhY3QgY2hpbGRyZW4gY2FuIGJlIFwic3RyaW5nXCIgb3IgXCJudW1iZXJcIiBpbiB0aGlzIGNhc2Ugd2UgaWdub3JlIHRoZW0gZm9yIGJhY2t3YXJkcyBjb21wYXRcbiAgICBpZiAodHlwZW9mIGNoaWxkID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgY2hpbGQgPT09ICdudW1iZXInKSB7XG4gICAgICAgIHJldHVybiBsaXN0O1xuICAgIH1cbiAgICAvLyBBZGRzIHN1cHBvcnQgZm9yIFJlYWN0LkZyYWdtZW50XG4gICAgaWYgKGNoaWxkLnR5cGUgPT09IF9yZWFjdC5kZWZhdWx0LkZyYWdtZW50KSB7XG4gICAgICAgIHJldHVybiBsaXN0LmNvbmNhdChfcmVhY3QuZGVmYXVsdC5DaGlsZHJlbi50b0FycmF5KGNoaWxkLnByb3BzLmNoaWxkcmVuKS5yZWR1Y2UoKGZyYWdtZW50TGlzdCwgZnJhZ21lbnRDaGlsZCk9PntcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZnJhZ21lbnRDaGlsZCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIGZyYWdtZW50Q2hpbGQgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZyYWdtZW50TGlzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmcmFnbWVudExpc3QuY29uY2F0KGZyYWdtZW50Q2hpbGQpO1xuICAgICAgICB9LCBbXSkpO1xuICAgIH1cbiAgICByZXR1cm4gbGlzdC5jb25jYXQoY2hpbGQpO1xufVxuY29uc3QgTUVUQVRZUEVTID0gW1xuICAgICduYW1lJyxcbiAgICAnaHR0cEVxdWl2JyxcbiAgICAnY2hhclNldCcsXG4gICAgJ2l0ZW1Qcm9wJ1xuXTtcbi8qXG4gcmV0dXJucyBhIGZ1bmN0aW9uIGZvciBmaWx0ZXJpbmcgaGVhZCBjaGlsZCBlbGVtZW50c1xuIHdoaWNoIHNob3VsZG4ndCBiZSBkdXBsaWNhdGVkLCBsaWtlIDx0aXRsZS8+XG4gQWxzbyBhZGRzIHN1cHBvcnQgZm9yIGRlZHVwbGljYXRlZCBga2V5YCBwcm9wZXJ0aWVzXG4qLyBmdW5jdGlvbiB1bmlxdWUoKSB7XG4gICAgY29uc3Qga2V5cyA9IG5ldyBTZXQoKTtcbiAgICBjb25zdCB0YWdzID0gbmV3IFNldCgpO1xuICAgIGNvbnN0IG1ldGFUeXBlcyA9IG5ldyBTZXQoKTtcbiAgICBjb25zdCBtZXRhQ2F0ZWdvcmllcyA9IHtcbiAgICB9O1xuICAgIHJldHVybiAoaCk9PntcbiAgICAgICAgbGV0IGlzVW5pcXVlID0gdHJ1ZTtcbiAgICAgICAgbGV0IGhhc0tleSA9IGZhbHNlO1xuICAgICAgICBpZiAoaC5rZXkgJiYgdHlwZW9mIGgua2V5ICE9PSAnbnVtYmVyJyAmJiBoLmtleS5pbmRleE9mKCckJykgPiAwKSB7XG4gICAgICAgICAgICBoYXNLZXkgPSB0cnVlO1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gaC5rZXkuc2xpY2UoaC5rZXkuaW5kZXhPZignJCcpICsgMSk7XG4gICAgICAgICAgICBpZiAoa2V5cy5oYXMoa2V5KSkge1xuICAgICAgICAgICAgICAgIGlzVW5pcXVlID0gZmFsc2U7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGtleXMuYWRkKGtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGRlZmF1bHQtY2FzZVxuICAgICAgICBzd2l0Y2goaC50eXBlKXtcbiAgICAgICAgICAgIGNhc2UgJ3RpdGxlJzpcbiAgICAgICAgICAgIGNhc2UgJ2Jhc2UnOlxuICAgICAgICAgICAgICAgIGlmICh0YWdzLmhhcyhoLnR5cGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlzVW5pcXVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGFncy5hZGQoaC50eXBlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtZXRhJzpcbiAgICAgICAgICAgICAgICBmb3IobGV0IGkgPSAwLCBsZW4gPSBNRVRBVFlQRVMubGVuZ3RoOyBpIDwgbGVuOyBpKyspe1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtZXRhdHlwZSA9IE1FVEFUWVBFU1tpXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFoLnByb3BzLmhhc093blByb3BlcnR5KG1ldGF0eXBlKSkgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChtZXRhdHlwZSA9PT0gJ2NoYXJTZXQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobWV0YVR5cGVzLmhhcyhtZXRhdHlwZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1VuaXF1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhVHlwZXMuYWRkKG1ldGF0eXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNhdGVnb3J5ID0gaC5wcm9wc1ttZXRhdHlwZV07XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjYXRlZ29yaWVzID0gbWV0YUNhdGVnb3JpZXNbbWV0YXR5cGVdIHx8IG5ldyBTZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgobWV0YXR5cGUgIT09ICduYW1lJyB8fCAhaGFzS2V5KSAmJiBjYXRlZ29yaWVzLmhhcyhjYXRlZ29yeSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1VuaXF1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yaWVzLmFkZChjYXRlZ29yeSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YUNhdGVnb3JpZXNbbWV0YXR5cGVdID0gY2F0ZWdvcmllcztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNVbmlxdWU7XG4gICAgfTtcbn1cbi8qKlxuICpcbiAqIEBwYXJhbSBoZWFkRWxlbWVudHMgTGlzdCBvZiBtdWx0aXBsZSA8SGVhZD4gaW5zdGFuY2VzXG4gKi8gZnVuY3Rpb24gcmVkdWNlQ29tcG9uZW50cyhoZWFkRWxlbWVudHMsIHByb3BzKSB7XG4gICAgcmV0dXJuIGhlYWRFbGVtZW50cy5yZWR1Y2UoKGxpc3QsIGhlYWRFbGVtZW50KT0+e1xuICAgICAgICBjb25zdCBoZWFkRWxlbWVudENoaWxkcmVuID0gX3JlYWN0LmRlZmF1bHQuQ2hpbGRyZW4udG9BcnJheShoZWFkRWxlbWVudC5wcm9wcy5jaGlsZHJlbik7XG4gICAgICAgIHJldHVybiBsaXN0LmNvbmNhdChoZWFkRWxlbWVudENoaWxkcmVuKTtcbiAgICB9LCBbXSkucmVkdWNlKG9ubHlSZWFjdEVsZW1lbnQsIFtdKS5yZXZlcnNlKCkuY29uY2F0KGRlZmF1bHRIZWFkKHByb3BzLmluQW1wTW9kZSkpLmZpbHRlcih1bmlxdWUoKSkucmV2ZXJzZSgpLm1hcCgoYywgaSk9PntcbiAgICAgICAgY29uc3Qga2V5ID0gYy5rZXkgfHwgaTtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAnZGV2ZWxvcG1lbnQnICYmIHByb2Nlc3MuZW52Ll9fTkVYVF9PUFRJTUlaRV9GT05UUyAmJiAhcHJvcHMuaW5BbXBNb2RlKSB7XG4gICAgICAgICAgICBpZiAoYy50eXBlID09PSAnbGluaycgJiYgYy5wcm9wc1snaHJlZiddICYmIC8vIFRPRE8ocHJhdGVla2JoQCk6IFJlcGxhY2UgdGhpcyB3aXRoIGNvbnN0IGZyb20gYGNvbnN0YW50c2Agd2hlbiB0aGUgdHJlZSBzaGFraW5nIHdvcmtzLlxuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzcycsXG4gICAgICAgICAgICAgICAgJ2h0dHBzOi8vdXNlLnR5cGVraXQubmV0LydcbiAgICAgICAgICAgIF0uc29tZSgodXJsKT0+Yy5wcm9wc1snaHJlZiddLnN0YXJ0c1dpdGgodXJsKVxuICAgICAgICAgICAgKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld1Byb3BzID0ge1xuICAgICAgICAgICAgICAgICAgICAuLi5jLnByb3BzIHx8IHtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgbmV3UHJvcHNbJ2RhdGEtaHJlZiddID0gbmV3UHJvcHNbJ2hyZWYnXTtcbiAgICAgICAgICAgICAgICBuZXdQcm9wc1snaHJlZiddID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIC8vIEFkZCB0aGlzIGF0dHJpYnV0ZSB0byBtYWtlIGl0IGVhc3kgdG8gaWRlbnRpZnkgb3B0aW1pemVkIHRhZ3NcbiAgICAgICAgICAgICAgICBuZXdQcm9wc1snZGF0YS1vcHRpbWl6ZWQtZm9udHMnXSA9IHRydWU7XG4gICAgICAgICAgICAgICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY2xvbmVFbGVtZW50KGMsIG5ld1Byb3BzKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY2xvbmVFbGVtZW50KGMsIHtcbiAgICAgICAgICAgIGtleVxuICAgICAgICB9KSk7XG4gICAgfSk7XG59XG4vKipcbiAqIFRoaXMgY29tcG9uZW50IGluamVjdHMgZWxlbWVudHMgdG8gYDxoZWFkPmAgb2YgeW91ciBwYWdlLlxuICogVG8gYXZvaWQgZHVwbGljYXRlZCBgdGFnc2AgaW4gYDxoZWFkPmAgeW91IGNhbiB1c2UgdGhlIGBrZXlgIHByb3BlcnR5LCB3aGljaCB3aWxsIG1ha2Ugc3VyZSBldmVyeSB0YWcgaXMgb25seSByZW5kZXJlZCBvbmNlLlxuICovIGZ1bmN0aW9uIEhlYWQoeyBjaGlsZHJlbiAgfSkge1xuICAgIGNvbnN0IGFtcFN0YXRlID0gKDAsIF9yZWFjdCkudXNlQ29udGV4dChfYW1wQ29udGV4dC5BbXBTdGF0ZUNvbnRleHQpO1xuICAgIGNvbnN0IGhlYWRNYW5hZ2VyID0gKDAsIF9yZWFjdCkudXNlQ29udGV4dChfaGVhZE1hbmFnZXJDb250ZXh0LkhlYWRNYW5hZ2VyQ29udGV4dCk7XG4gICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChfc2lkZUVmZmVjdC5kZWZhdWx0LCB7XG4gICAgICAgIHJlZHVjZUNvbXBvbmVudHNUb1N0YXRlOiByZWR1Y2VDb21wb25lbnRzLFxuICAgICAgICBoZWFkTWFuYWdlcjogaGVhZE1hbmFnZXIsXG4gICAgICAgIGluQW1wTW9kZTogKDAsIF9hbXApLmlzSW5BbXBNb2RlKGFtcFN0YXRlKVxuICAgIH0sIGNoaWxkcmVuKSk7XG59XG52YXIgX2RlZmF1bHQgPSBIZWFkO1xuZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhlYWQuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiZGVmYXVsdEhlYWQiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc2lkZUVmZmVjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfYW1wQ29udGV4dCIsIl9oZWFkTWFuYWdlckNvbnRleHQiLCJfYW1wIiwib2JqIiwiX19lc01vZHVsZSIsIm5ld09iaiIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJnZXQiLCJzZXQiLCJpbkFtcE1vZGUiLCJoZWFkIiwiY3JlYXRlRWxlbWVudCIsImNoYXJTZXQiLCJwdXNoIiwibmFtZSIsImNvbnRlbnQiLCJvbmx5UmVhY3RFbGVtZW50IiwibGlzdCIsImNoaWxkIiwidHlwZSIsIkZyYWdtZW50IiwiY29uY2F0IiwiQ2hpbGRyZW4iLCJ0b0FycmF5IiwicHJvcHMiLCJjaGlsZHJlbiIsInJlZHVjZSIsImZyYWdtZW50TGlzdCIsImZyYWdtZW50Q2hpbGQiLCJNRVRBVFlQRVMiLCJ1bmlxdWUiLCJrZXlzIiwiU2V0IiwidGFncyIsIm1ldGFUeXBlcyIsIm1ldGFDYXRlZ29yaWVzIiwiaCIsImlzVW5pcXVlIiwiaGFzS2V5IiwiaW5kZXhPZiIsInNsaWNlIiwiaGFzIiwiYWRkIiwiaSIsImxlbiIsImxlbmd0aCIsIm1ldGF0eXBlIiwiY2F0ZWdvcnkiLCJjYXRlZ29yaWVzIiwicmVkdWNlQ29tcG9uZW50cyIsImhlYWRFbGVtZW50cyIsImhlYWRFbGVtZW50IiwiaGVhZEVsZW1lbnRDaGlsZHJlbiIsInJldmVyc2UiLCJmaWx0ZXIiLCJtYXAiLCJjIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9PUFRJTUlaRV9GT05UUyIsInNvbWUiLCJ1cmwiLCJzdGFydHNXaXRoIiwibmV3UHJvcHMiLCJ1bmRlZmluZWQiLCJjbG9uZUVsZW1lbnQiLCJIZWFkIiwiYW1wU3RhdGUiLCJ1c2VDb250ZXh0IiwiQW1wU3RhdGVDb250ZXh0IiwiaGVhZE1hbmFnZXIiLCJIZWFkTWFuYWdlckNvbnRleHQiLCJyZWR1Y2VDb21wb25lbnRzVG9TdGF0ZSIsImlzSW5BbXBNb2RlIiwiX2RlZmF1bHQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/head.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/side-effect.js": +/*!**********************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/side-effect.js ***! + \**********************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _toConsumableArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/toConsumableArray.js\");\n\nvar _classCallCheck = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\");\n\nvar _createClass = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\");\n\nvar _assertThisInitialized = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/assertThisInitialized */ \"./node_modules/@babel/runtime/helpers/assertThisInitialized.js\");\n\nvar _inherits = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/inherits */ \"./node_modules/@babel/runtime/helpers/inherits.js\");\n\nvar _possibleConstructorReturn = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/possibleConstructorReturn */ \"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\");\n\nvar _getPrototypeOf = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/getPrototypeOf */ \"./node_modules/@babel/runtime/helpers/getPrototypeOf.js\");\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n return newObj;\n }\n}\n\nvar isServer = false;\n\nvar _class = /*#__PURE__*/function (_react$Component) {\n _inherits(_class, _react$Component);\n\n var _super = _createSuper(_class);\n\n function _class(props) {\n var _this;\n\n _classCallCheck(this, _class);\n\n _this = _super.call(this, props);\n\n _this.emitChange = function () {\n if (_this._hasHeadManager) {\n _this.props.headManager.updateHead(_this.props.reduceComponentsToState(_toConsumableArray(_this.props.headManager.mountedInstances), _this.props));\n }\n };\n\n _this._hasHeadManager = _this.props.headManager && _this.props.headManager.mountedInstances;\n\n if (isServer && _this._hasHeadManager) {\n _this.props.headManager.mountedInstances.add(_assertThisInitialized(_this));\n\n _this.emitChange();\n }\n\n return _this;\n }\n\n _createClass(_class, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this._hasHeadManager) {\n this.props.headManager.mountedInstances.add(this);\n }\n\n this.emitChange();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.emitChange();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this._hasHeadManager) {\n this.props.headManager.mountedInstances[\"delete\"](this);\n }\n\n this.emitChange();\n }\n }, {\n key: \"render\",\n value: function render() {\n return null;\n }\n }]);\n\n return _class;\n}(_react.Component);\n\nexports[\"default\"] = _class;\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvc2lkZS1lZmZlY3QuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxrQkFBQSxHQUFrQixLQUFLLENBQXZCOztBQUNBLElBQUlFLE1BQU0sR0FBR0MsdUJBQXVCLENBQUNDLG1CQUFPLENBQUMsNENBQUQsQ0FBUixDQUFwQzs7QUFDQSxTQUFTRCx1QkFBVCxDQUFpQ0UsR0FBakMsRUFBc0M7QUFDbEMsTUFBSUEsR0FBRyxJQUFJQSxHQUFHLENBQUNDLFVBQWYsRUFBMkI7QUFDdkIsV0FBT0QsR0FBUDtBQUNILEdBRkQsTUFFTztBQUNILFFBQUlFLE1BQU0sR0FBRyxFQUFiOztBQUVBLFFBQUlGLEdBQUcsSUFBSSxJQUFYLEVBQWlCO0FBQ2IsV0FBSSxJQUFJRyxHQUFSLElBQWVILEdBQWYsRUFBbUI7QUFDZixZQUFJUCxNQUFNLENBQUNXLFNBQVAsQ0FBaUJDLGNBQWpCLENBQWdDQyxJQUFoQyxDQUFxQ04sR0FBckMsRUFBMENHLEdBQTFDLENBQUosRUFBb0Q7QUFDaEQsY0FBSUksSUFBSSxHQUFHZCxNQUFNLENBQUNDLGNBQVAsSUFBeUJELE1BQU0sQ0FBQ2Usd0JBQWhDLEdBQTJEZixNQUFNLENBQUNlLHdCQUFQLENBQWdDUixHQUFoQyxFQUFxQ0csR0FBckMsQ0FBM0QsR0FBdUcsRUFBbEg7O0FBRUEsY0FBSUksSUFBSSxDQUFDRSxHQUFMLElBQVlGLElBQUksQ0FBQ0csR0FBckIsRUFBMEI7QUFDdEJqQixZQUFBQSxNQUFNLENBQUNDLGNBQVAsQ0FBc0JRLE1BQXRCLEVBQThCQyxHQUE5QixFQUFtQ0ksSUFBbkM7QUFDSCxXQUZELE1BRU87QUFDSEwsWUFBQUEsTUFBTSxDQUFDQyxHQUFELENBQU4sR0FBY0gsR0FBRyxDQUFDRyxHQUFELENBQWpCO0FBQ0g7QUFDSjtBQUNKO0FBQ0o7O0FBQ0RELElBQUFBLE1BQU0sV0FBTixHQUFpQkYsR0FBakI7QUFDQSxXQUFPRSxNQUFQO0FBQ0g7QUFDSjs7QUFDRCxJQUFNUyxRQUFRLFFBQWQ7O0lBQ01DOzs7OztBQUNGLGtCQUFZQyxLQUFaLEVBQWtCO0FBQUE7O0FBQUE7O0FBQ2QsOEJBQU1BLEtBQU47O0FBQ0EsVUFBS0MsVUFBTCxHQUFrQixZQUFJO0FBQ2xCLFVBQUksTUFBS0MsZUFBVCxFQUEwQjtBQUN0QixjQUFLRixLQUFMLENBQVdHLFdBQVgsQ0FBdUJDLFVBQXZCLENBQWtDLE1BQUtKLEtBQUwsQ0FBV0ssdUJBQVgsb0JBQzNCLE1BQUtMLEtBQUwsQ0FBV0csV0FBWCxDQUF1QkcsZ0JBREksR0FFL0IsTUFBS04sS0FGMEIsQ0FBbEM7QUFHSDtBQUNKLEtBTkQ7O0FBT0EsVUFBS0UsZUFBTCxHQUF1QixNQUFLRixLQUFMLENBQVdHLFdBQVgsSUFBMEIsTUFBS0gsS0FBTCxDQUFXRyxXQUFYLENBQXVCRyxnQkFBeEU7O0FBQ0EsUUFBSVIsUUFBUSxJQUFJLE1BQUtJLGVBQXJCLEVBQXNDO0FBQ2xDLFlBQUtGLEtBQUwsQ0FBV0csV0FBWCxDQUF1QkcsZ0JBQXZCLENBQXdDQyxHQUF4Qzs7QUFDQSxZQUFLTixVQUFMO0FBQ0g7O0FBYmE7QUFjakI7Ozs7V0FDRCw2QkFBb0I7QUFDaEIsVUFBSSxLQUFLQyxlQUFULEVBQTBCO0FBQ3RCLGFBQUtGLEtBQUwsQ0FBV0csV0FBWCxDQUF1QkcsZ0JBQXZCLENBQXdDQyxHQUF4QyxDQUE0QyxJQUE1QztBQUNIOztBQUNELFdBQUtOLFVBQUw7QUFDSDs7O1dBQ0QsOEJBQXFCO0FBQ2pCLFdBQUtBLFVBQUw7QUFDSDs7O1dBQ0QsZ0NBQXVCO0FBQ25CLFVBQUksS0FBS0MsZUFBVCxFQUEwQjtBQUN0QixhQUFLRixLQUFMLENBQVdHLFdBQVgsQ0FBdUJHLGdCQUF2QixXQUErQyxJQUEvQztBQUNIOztBQUNELFdBQUtMLFVBQUw7QUFDSDs7O1dBQ0Qsa0JBQVM7QUFDTCxhQUFPLElBQVA7QUFDSDs7OztFQWpDZ0JqQixNQUFNLENBQUN3Qjs7QUFtQzVCMUIsa0JBQUEsR0FBa0JpQixNQUFsQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvc2lkZS1lZmZlY3QuanM/NDA4YyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IHZvaWQgMDtcbnZhciBfcmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7XG4gICAgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkge1xuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBuZXdPYmogPSB7XG4gICAgICAgIH07XG4gICAgICAgIGlmIChvYmogIT0gbnVsbCkge1xuICAgICAgICAgICAgZm9yKHZhciBrZXkgaW4gb2JqKXtcbiAgICAgICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiB7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGlmIChkZXNjLmdldCB8fCBkZXNjLnNldCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld09ialtrZXldID0gb2JqW2tleV07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbmV3T2JqLmRlZmF1bHQgPSBvYmo7XG4gICAgICAgIHJldHVybiBuZXdPYmo7XG4gICAgfVxufVxuY29uc3QgaXNTZXJ2ZXIgPSB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJztcbmNsYXNzIF9jbGFzcyBleHRlbmRzIF9yZWFjdC5Db21wb25lbnQge1xuICAgIGNvbnN0cnVjdG9yKHByb3BzKXtcbiAgICAgICAgc3VwZXIocHJvcHMpO1xuICAgICAgICB0aGlzLmVtaXRDaGFuZ2UgPSAoKT0+e1xuICAgICAgICAgICAgaWYgKHRoaXMuX2hhc0hlYWRNYW5hZ2VyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5oZWFkTWFuYWdlci51cGRhdGVIZWFkKHRoaXMucHJvcHMucmVkdWNlQ29tcG9uZW50c1RvU3RhdGUoW1xuICAgICAgICAgICAgICAgICAgICAuLi50aGlzLnByb3BzLmhlYWRNYW5hZ2VyLm1vdW50ZWRJbnN0YW5jZXNcbiAgICAgICAgICAgICAgICBdLCB0aGlzLnByb3BzKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuX2hhc0hlYWRNYW5hZ2VyID0gdGhpcy5wcm9wcy5oZWFkTWFuYWdlciAmJiB0aGlzLnByb3BzLmhlYWRNYW5hZ2VyLm1vdW50ZWRJbnN0YW5jZXM7XG4gICAgICAgIGlmIChpc1NlcnZlciAmJiB0aGlzLl9oYXNIZWFkTWFuYWdlcikge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5oZWFkTWFuYWdlci5tb3VudGVkSW5zdGFuY2VzLmFkZCh0aGlzKTtcbiAgICAgICAgICAgIHRoaXMuZW1pdENoYW5nZSgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgICBpZiAodGhpcy5faGFzSGVhZE1hbmFnZXIpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMuaGVhZE1hbmFnZXIubW91bnRlZEluc3RhbmNlcy5hZGQodGhpcyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbWl0Q2hhbmdlKCk7XG4gICAgfVxuICAgIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICAgICAgdGhpcy5lbWl0Q2hhbmdlKCk7XG4gICAgfVxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgICBpZiAodGhpcy5faGFzSGVhZE1hbmFnZXIpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMuaGVhZE1hbmFnZXIubW91bnRlZEluc3RhbmNlcy5kZWxldGUodGhpcyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbWl0Q2hhbmdlKCk7XG4gICAgfVxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxufVxuZXhwb3J0cy5kZWZhdWx0ID0gX2NsYXNzO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zaWRlLWVmZmVjdC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJvYmoiLCJfX2VzTW9kdWxlIiwibmV3T2JqIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImdldCIsInNldCIsImlzU2VydmVyIiwiX2NsYXNzIiwicHJvcHMiLCJlbWl0Q2hhbmdlIiwiX2hhc0hlYWRNYW5hZ2VyIiwiaGVhZE1hbmFnZXIiLCJ1cGRhdGVIZWFkIiwicmVkdWNlQ29tcG9uZW50c1RvU3RhdGUiLCJtb3VudGVkSW5zdGFuY2VzIiwiYWRkIiwiQ29tcG9uZW50Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/side-effect.js\n"); + +/***/ }), + +/***/ "./src/common/loadingPace.js": +/*!***********************************!*\ + !*** ./src/common/loadingPace.js ***! + \***********************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar loadingPace = function loadingPace() {\n Pace.on(\"start\", function () {\n document.querySelector(\"#preloader\").classList.remove(\"isdone\");\n document.querySelector(\".loading\").classList.remove(\"isdone\");\n });\n Pace.on(\"done\", function () {\n document.querySelector(\"#preloader\").classList.add(\"isdone\");\n document.querySelector(\".loading\").classList.add(\"isdone\");\n });\n\n if (document.querySelector(\"body\").classList.contains(\"pace-done\")) {\n document.querySelector(\"#preloader\").classList.add(\"isdone\");\n document.querySelector(\".loading\").classList.add(\"isdone\");\n }\n\n window.addEventListener(\"load\", function () {\n document.querySelector(\"#preloader\").classList.add(\"isdone\");\n document.querySelector(\".loading\").classList.add(\"isdone\");\n\n if (document.querySelector('.pace-running.pace-running')) {\n document.querySelector('.pace-running.pace-running').classList.remove('pace-running');\n }\n });\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (loadingPace);\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL2xvYWRpbmdQYWNlLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQUEsSUFBTUEsV0FBVyxHQUFHLFNBQWRBLFdBQWMsR0FBTTtBQUV4QkMsRUFBQUEsSUFBSSxDQUFDQyxFQUFMLENBQVEsT0FBUixFQUFpQixZQUFZO0FBQzNCQyxJQUFBQSxRQUFRLENBQUNDLGFBQVQsQ0FBdUIsWUFBdkIsRUFBcUNDLFNBQXJDLENBQStDQyxNQUEvQyxDQUFzRCxRQUF0RDtBQUNBSCxJQUFBQSxRQUFRLENBQUNDLGFBQVQsQ0FBdUIsVUFBdkIsRUFBbUNDLFNBQW5DLENBQTZDQyxNQUE3QyxDQUFvRCxRQUFwRDtBQUNELEdBSEQ7QUFJQUwsRUFBQUEsSUFBSSxDQUFDQyxFQUFMLENBQVEsTUFBUixFQUFnQixZQUFZO0FBQzFCQyxJQUFBQSxRQUFRLENBQUNDLGFBQVQsQ0FBdUIsWUFBdkIsRUFBcUNDLFNBQXJDLENBQStDRSxHQUEvQyxDQUFtRCxRQUFuRDtBQUNBSixJQUFBQSxRQUFRLENBQUNDLGFBQVQsQ0FBdUIsVUFBdkIsRUFBbUNDLFNBQW5DLENBQTZDRSxHQUE3QyxDQUFpRCxRQUFqRDtBQUVELEdBSkQ7O0FBTUEsTUFBSUosUUFBUSxDQUFDQyxhQUFULENBQXVCLE1BQXZCLEVBQStCQyxTQUEvQixDQUF5Q0csUUFBekMsQ0FBa0QsV0FBbEQsQ0FBSixFQUFvRTtBQUNsRUwsSUFBQUEsUUFBUSxDQUFDQyxhQUFULENBQXVCLFlBQXZCLEVBQXFDQyxTQUFyQyxDQUErQ0UsR0FBL0MsQ0FBbUQsUUFBbkQ7QUFDQUosSUFBQUEsUUFBUSxDQUFDQyxhQUFULENBQXVCLFVBQXZCLEVBQW1DQyxTQUFuQyxDQUE2Q0UsR0FBN0MsQ0FBaUQsUUFBakQ7QUFDRDs7QUFFREUsRUFBQUEsTUFBTSxDQUFDQyxnQkFBUCxDQUF3QixNQUF4QixFQUFnQyxZQUFNO0FBQ3BDUCxJQUFBQSxRQUFRLENBQUNDLGFBQVQsQ0FBdUIsWUFBdkIsRUFBcUNDLFNBQXJDLENBQStDRSxHQUEvQyxDQUFtRCxRQUFuRDtBQUNBSixJQUFBQSxRQUFRLENBQUNDLGFBQVQsQ0FBdUIsVUFBdkIsRUFBbUNDLFNBQW5DLENBQTZDRSxHQUE3QyxDQUFpRCxRQUFqRDs7QUFDQSxRQUFJSixRQUFRLENBQUNDLGFBQVQsQ0FBdUIsNEJBQXZCLENBQUosRUFBMEQ7QUFDeERELE1BQUFBLFFBQVEsQ0FBQ0MsYUFBVCxDQUF1Qiw0QkFBdkIsRUFBcURDLFNBQXJELENBQStEQyxNQUEvRCxDQUFzRSxjQUF0RTtBQUNEO0FBQ0YsR0FORDtBQU9ELENBeEJEOztBQTBCQSwrREFBZU4sV0FBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tbW9uL2xvYWRpbmdQYWNlLmpzPzdmMDEiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgbG9hZGluZ1BhY2UgPSAoKSA9PiB7XHJcbiBcclxuICBQYWNlLm9uKFwic3RhcnRcIiwgZnVuY3Rpb24gKCkge1xyXG4gICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIiNwcmVsb2FkZXJcIikuY2xhc3NMaXN0LnJlbW92ZShcImlzZG9uZVwiKTtcclxuICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIubG9hZGluZ1wiKS5jbGFzc0xpc3QucmVtb3ZlKFwiaXNkb25lXCIpO1xyXG4gIH0pO1xyXG4gIFBhY2Uub24oXCJkb25lXCIsIGZ1bmN0aW9uICgpIHtcclxuICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIjcHJlbG9hZGVyXCIpLmNsYXNzTGlzdC5hZGQoXCJpc2RvbmVcIik7XHJcbiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLmxvYWRpbmdcIikuY2xhc3NMaXN0LmFkZChcImlzZG9uZVwiKTtcclxuICAgIFxyXG4gIH0pO1xyXG5cclxuICBpZiAoZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcImJvZHlcIikuY2xhc3NMaXN0LmNvbnRhaW5zKFwicGFjZS1kb25lXCIpKSB7XHJcbiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiI3ByZWxvYWRlclwiKS5jbGFzc0xpc3QuYWRkKFwiaXNkb25lXCIpO1xyXG4gICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5sb2FkaW5nXCIpLmNsYXNzTGlzdC5hZGQoXCJpc2RvbmVcIik7XHJcbiAgfVxyXG5cclxuICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImxvYWRcIiwgKCkgPT4ge1xyXG4gICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIiNwcmVsb2FkZXJcIikuY2xhc3NMaXN0LmFkZChcImlzZG9uZVwiKTtcclxuICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIubG9hZGluZ1wiKS5jbGFzc0xpc3QuYWRkKFwiaXNkb25lXCIpO1xyXG4gICAgaWYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5wYWNlLXJ1bm5pbmcucGFjZS1ydW5uaW5nJykpIHtcclxuICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnBhY2UtcnVubmluZy5wYWNlLXJ1bm5pbmcnKS5jbGFzc0xpc3QucmVtb3ZlKCdwYWNlLXJ1bm5pbmcnKVxyXG4gICAgfVxyXG4gIH0pO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgbG9hZGluZ1BhY2U7XHJcbiJdLCJuYW1lcyI6WyJsb2FkaW5nUGFjZSIsIlBhY2UiLCJvbiIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsImNsYXNzTGlzdCIsInJlbW92ZSIsImFkZCIsImNvbnRhaW5zIiwid2luZG93IiwiYWRkRXZlbnRMaXN0ZW5lciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/common/loadingPace.js\n"); + +/***/ }), + +/***/ "./src/common/mouseEffect.js": +/*!***********************************!*\ + !*** ./src/common/mouseEffect.js ***! + \***********************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar mouseEffect = function mouseEffect() {\n function mousecursor() {\n var cursorInner = document.querySelector(\".cursor-inner\"),\n cursorOuter = document.querySelector(\".cursor-outer\");\n var n,\n i = 0,\n o = !1;\n\n window.onmousemove = function (s) {\n o || (cursorOuter.style.transform = \"translate(\" + s.clientX + \"px, \" + s.clientY + \"px)\"), cursorInner.style.transform = \"translate(\" + s.clientX + \"px, \" + s.clientY + \"px)\", n = s.clientY, i = s.clientX;\n };\n\n if (document.querySelector(\".cursor-pointer\")) {\n document.querySelector(\".cursor-pointer\").addEventListener(\"mouseenter\", function () {\n cursorInner.classList.add(\"cursor-hover\"), cursorOuter.classList.add(\"cursor-hover\");\n });\n document.querySelector(\".cursor-pointer\").addEventListener(\"mouseleave\", function () {\n cursorInner.classList.remove(\"cursor-hover\"), cursorOuter.classList.remove(\"cursor-hover\");\n }), cursorInner.style.visibility = \"visible\", cursorOuter.style.visibility = \"visible\";\n }\n\n document.querySelectorAll(\"a\").forEach(function (item) {\n item.addEventListener(\"mouseenter\", function () {\n cursorInner.classList.add(\"cursor-hover\"), cursorOuter.classList.add(\"cursor-hover\");\n });\n });\n document.querySelectorAll(\"a\").forEach(function (item) {\n item.addEventListener(\"mouseleave\", function () {\n cursorInner.classList.remove(\"cursor-hover\"), cursorOuter.classList.remove(\"cursor-hover\");\n });\n }), cursorInner.style.visibility = \"visible\", cursorOuter.style.visibility = \"visible\";\n }\n\n mousecursor();\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mouseEffect);\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q08sS0FBWixDQUFrQlEsVUFBbEIsR0FBK0IsU0FQbEM7QUFRRDs7QUFDRG5CLEVBQUFBLFdBQVc7QUFDWixDQWhERDs7QUFrREEsK0RBQWVELFdBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbW1vbi9tb3VzZUVmZmVjdC5qcz81YThkIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IG1vdXNlRWZmZWN0ID0gKCkgPT4ge1xyXG4gIGZ1bmN0aW9uIG1vdXNlY3Vyc29yKCkge1xyXG4gICAgY29uc3QgY3Vyc29ySW5uZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLmN1cnNvci1pbm5lclwiKSxcclxuICAgICAgY3Vyc29yT3V0ZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLmN1cnNvci1vdXRlclwiKTtcclxuICAgIGxldCBuLFxyXG4gICAgICBpID0gMCxcclxuICAgICAgbyA9ICExO1xyXG4gICAgd2luZG93Lm9ubW91c2Vtb3ZlID0gZnVuY3Rpb24gKHMpIHtcclxuICAgICAgbyB8fFxyXG4gICAgICAgIChjdXJzb3JPdXRlci5zdHlsZS50cmFuc2Zvcm0gPVxyXG4gICAgICAgICAgXCJ0cmFuc2xhdGUoXCIgKyBzLmNsaWVudFggKyBcInB4LCBcIiArIHMuY2xpZW50WSArIFwicHgpXCIpLFxyXG4gICAgICAgIChjdXJzb3JJbm5lci5zdHlsZS50cmFuc2Zvcm0gPVxyXG4gICAgICAgICAgXCJ0cmFuc2xhdGUoXCIgKyBzLmNsaWVudFggKyBcInB4LCBcIiArIHMuY2xpZW50WSArIFwicHgpXCIpLFxyXG4gICAgICAgIChuID0gcy5jbGllbnRZKSxcclxuICAgICAgICAoaSA9IHMuY2xpZW50WCk7XHJcbiAgICB9O1xyXG4gICAgaWYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIuY3Vyc29yLXBvaW50ZXJcIikpIHtcclxuICAgICAgZG9jdW1lbnRcclxuICAgICAgICAucXVlcnlTZWxlY3RvcihcIi5jdXJzb3ItcG9pbnRlclwiKVxyXG4gICAgICAgIC5hZGRFdmVudExpc3RlbmVyKFwibW91c2VlbnRlclwiLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICBjdXJzb3JJbm5lci5jbGFzc0xpc3QuYWRkKFwiY3Vyc29yLWhvdmVyXCIpLFxyXG4gICAgICAgICAgICBjdXJzb3JPdXRlci5jbGFzc0xpc3QuYWRkKFwiY3Vyc29yLWhvdmVyXCIpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICBkb2N1bWVudFxyXG4gICAgICAgIC5xdWVyeVNlbGVjdG9yKFwiLmN1cnNvci1wb2ludGVyXCIpXHJcbiAgICAgICAgLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIsIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgIGN1cnNvcklubmVyLmNsYXNzTGlzdC5yZW1vdmUoXCJjdXJzb3ItaG92ZXJcIiksXHJcbiAgICAgICAgICAgIGN1cnNvck91dGVyLmNsYXNzTGlzdC5yZW1vdmUoXCJjdXJzb3ItaG92ZXJcIik7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgKGN1cnNvcklubmVyLnN0eWxlLnZpc2liaWxpdHkgPSBcInZpc2libGVcIiksXHJcbiAgICAgICAgKGN1cnNvck91dGVyLnN0eWxlLnZpc2liaWxpdHkgPSBcInZpc2libGVcIik7XHJcbiAgICB9XHJcbiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiYVwiKS5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtKSB7XHJcbiAgICAgIGl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlZW50ZXJcIiwgZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGN1cnNvcklubmVyLmNsYXNzTGlzdC5hZGQoXCJjdXJzb3ItaG92ZXJcIiksXHJcbiAgICAgICAgICBjdXJzb3JPdXRlci5jbGFzc0xpc3QuYWRkKFwiY3Vyc29yLWhvdmVyXCIpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcImFcIikuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSkge1xyXG4gICAgICBpdGVtLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIsIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBjdXJzb3JJbm5lci5jbGFzc0xpc3QucmVtb3ZlKFwiY3Vyc29yLWhvdmVyXCIpLFxyXG4gICAgICAgICAgY3Vyc29yT3V0ZXIuY2xhc3NMaXN0LnJlbW92ZShcImN1cnNvci1ob3ZlclwiKTtcclxuICAgICAgfSk7XHJcbiAgICB9KSxcclxuICAgICAgKGN1cnNvcklubmVyLnN0eWxlLnZpc2liaWxpdHkgPSBcInZpc2libGVcIiksXHJcbiAgICAgIChjdXJzb3JPdXRlci5zdHlsZS52aXNpYmlsaXR5ID0gXCJ2aXNpYmxlXCIpO1xyXG4gIH1cclxuICBtb3VzZWN1cnNvcigpO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgbW91c2VFZmZlY3Q7XHJcbiJdLCJuYW1lcyI6WyJtb3VzZUVmZmVjdCIsIm1vdXNlY3Vyc29yIiwiY3Vyc29ySW5uZXIiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJjdXJzb3JPdXRlciIsIm4iLCJpIiwibyIsIndpbmRvdyIsIm9ubW91c2Vtb3ZlIiwicyIsInN0eWxlIiwidHJhbnNmb3JtIiwiY2xpZW50WCIsImNsaWVudFkiLCJhZGRFdmVudExpc3RlbmVyIiwiY2xhc3NMaXN0IiwiYWRkIiwicmVtb3ZlIiwidmlzaWJpbGl0eSIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJmb3JFYWNoIiwiaXRlbSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/common/mouseEffect.js\n"); + +/***/ }), + +/***/ "./src/common/scrollToTop.js": +/*!***********************************!*\ + !*** ./src/common/scrollToTop.js ***! + \***********************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar scrollToTop = function scrollToTop() {\n var progressPath = document.querySelector(\".progress-wrap path\");\n var pathLength = progressPath.getTotalLength();\n progressPath.style.transition = progressPath.style.WebkitTransition = \"none\";\n progressPath.style.strokeDasharray = pathLength + \" \" + pathLength;\n progressPath.style.strokeDashoffset = pathLength;\n progressPath.getBoundingClientRect();\n progressPath.style.transition = progressPath.style.WebkitTransition = \"stroke-dashoffset 10ms linear\";\n\n var updateProgress = function updateProgress() {\n var scroll = window.pageYOffset;\n var height = document.documentElement.scrollHeight - window.innerHeight;\n var progress = pathLength - scroll * pathLength / height;\n progressPath.style.strokeDashoffset = progress;\n };\n\n updateProgress();\n window.addEventListener(\"scroll\", updateProgress);\n var progressWrap = document.querySelector(\".progress-wrap\");\n var offset = 150;\n window.addEventListener(\"scroll\", function () {\n if (window.pageYOffset > offset) {\n progressWrap.classList.add(\"active-progress\");\n } else {\n document.querySelector(\".progress-wrap\").classList.remove(\"active-progress\");\n }\n });\n progressWrap.addEventListener(\"click\", function (event) {\n event.preventDefault();\n window.scrollTo({\n top: 0,\n behavior: \"smooth\"\n });\n return false;\n });\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (scrollToTop);\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL3Njcm9sbFRvVG9wLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQUEsSUFBTUEsV0FBVyxHQUFHLFNBQWRBLFdBQWMsR0FBTTtBQUN4QixNQUFJQyxZQUFZLEdBQUdDLFFBQVEsQ0FBQ0MsYUFBVCxDQUF1QixxQkFBdkIsQ0FBbkI7QUFDQSxNQUFJQyxVQUFVLEdBQUdILFlBQVksQ0FBQ0ksY0FBYixFQUFqQjtBQUNBSixFQUFBQSxZQUFZLENBQUNLLEtBQWIsQ0FBbUJDLFVBQW5CLEdBQWdDTixZQUFZLENBQUNLLEtBQWIsQ0FBbUJFLGdCQUFuQixHQUFzQyxNQUF0RTtBQUNBUCxFQUFBQSxZQUFZLENBQUNLLEtBQWIsQ0FBbUJHLGVBQW5CLEdBQXFDTCxVQUFVLEdBQUcsR0FBYixHQUFtQkEsVUFBeEQ7QUFDQUgsRUFBQUEsWUFBWSxDQUFDSyxLQUFiLENBQW1CSSxnQkFBbkIsR0FBc0NOLFVBQXRDO0FBQ0FILEVBQUFBLFlBQVksQ0FBQ1UscUJBQWI7QUFDQVYsRUFBQUEsWUFBWSxDQUFDSyxLQUFiLENBQW1CQyxVQUFuQixHQUFnQ04sWUFBWSxDQUFDSyxLQUFiLENBQW1CRSxnQkFBbkIsR0FDOUIsK0JBREY7O0FBRUEsTUFBTUksY0FBYyxHQUFHLFNBQWpCQSxjQUFpQixHQUFZO0FBQ2pDLFFBQUlDLE1BQU0sR0FBR0MsTUFBTSxDQUFDQyxXQUFwQjtBQUNBLFFBQUlDLE1BQU0sR0FBR2QsUUFBUSxDQUFDZSxlQUFULENBQXlCQyxZQUF6QixHQUF3Q0osTUFBTSxDQUFDSyxXQUE1RDtBQUNBLFFBQUlDLFFBQVEsR0FBR2hCLFVBQVUsR0FBSVMsTUFBTSxHQUFHVCxVQUFWLEdBQXdCWSxNQUFwRDtBQUNBZixJQUFBQSxZQUFZLENBQUNLLEtBQWIsQ0FBbUJJLGdCQUFuQixHQUFzQ1UsUUFBdEM7QUFDRCxHQUxEOztBQU1BUixFQUFBQSxjQUFjO0FBQ2RFLEVBQUFBLE1BQU0sQ0FBQ08sZ0JBQVAsQ0FBd0IsUUFBeEIsRUFBa0NULGNBQWxDO0FBQ0EsTUFBSVUsWUFBWSxHQUFHcEIsUUFBUSxDQUFDQyxhQUFULENBQXVCLGdCQUF2QixDQUFuQjtBQUNBLE1BQUlvQixNQUFNLEdBQUcsR0FBYjtBQUNBVCxFQUFBQSxNQUFNLENBQUNPLGdCQUFQLENBQXdCLFFBQXhCLEVBQWtDLFlBQVk7QUFDNUMsUUFBSVAsTUFBTSxDQUFDQyxXQUFQLEdBQXFCUSxNQUF6QixFQUFpQztBQUMvQkQsTUFBQUEsWUFBWSxDQUFDRSxTQUFiLENBQXVCQyxHQUF2QixDQUEyQixpQkFBM0I7QUFDRCxLQUZELE1BRU87QUFDTHZCLE1BQUFBLFFBQVEsQ0FDTEMsYUFESCxDQUNpQixnQkFEakIsRUFFR3FCLFNBRkgsQ0FFYUUsTUFGYixDQUVvQixpQkFGcEI7QUFHRDtBQUNGLEdBUkQ7QUFTQUosRUFBQUEsWUFBWSxDQUFDRCxnQkFBYixDQUE4QixPQUE5QixFQUF1QyxVQUFVTSxLQUFWLEVBQWlCO0FBQ3REQSxJQUFBQSxLQUFLLENBQUNDLGNBQU47QUFDQWQsSUFBQUEsTUFBTSxDQUFDZSxRQUFQLENBQWdCO0FBQUVDLE1BQUFBLEdBQUcsRUFBRSxDQUFQO0FBQVVDLE1BQUFBLFFBQVEsRUFBRTtBQUFwQixLQUFoQjtBQUNBLFdBQU8sS0FBUDtBQUNELEdBSkQ7QUFLRCxDQWpDRDs7QUFtQ0EsK0RBQWUvQixXQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21tb24vc2Nyb2xsVG9Ub3AuanM/ODUwZSJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBzY3JvbGxUb1RvcCA9ICgpID0+IHtcclxuICBsZXQgcHJvZ3Jlc3NQYXRoID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5wcm9ncmVzcy13cmFwIHBhdGhcIik7XHJcbiAgbGV0IHBhdGhMZW5ndGggPSBwcm9ncmVzc1BhdGguZ2V0VG90YWxMZW5ndGgoKTtcclxuICBwcm9ncmVzc1BhdGguc3R5bGUudHJhbnNpdGlvbiA9IHByb2dyZXNzUGF0aC5zdHlsZS5XZWJraXRUcmFuc2l0aW9uID0gXCJub25lXCI7XHJcbiAgcHJvZ3Jlc3NQYXRoLnN0eWxlLnN0cm9rZURhc2hhcnJheSA9IHBhdGhMZW5ndGggKyBcIiBcIiArIHBhdGhMZW5ndGg7XHJcbiAgcHJvZ3Jlc3NQYXRoLnN0eWxlLnN0cm9rZURhc2hvZmZzZXQgPSBwYXRoTGVuZ3RoO1xyXG4gIHByb2dyZXNzUGF0aC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICBwcm9ncmVzc1BhdGguc3R5bGUudHJhbnNpdGlvbiA9IHByb2dyZXNzUGF0aC5zdHlsZS5XZWJraXRUcmFuc2l0aW9uID1cclxuICAgIFwic3Ryb2tlLWRhc2hvZmZzZXQgMTBtcyBsaW5lYXJcIjtcclxuICBjb25zdCB1cGRhdGVQcm9ncmVzcyA9IGZ1bmN0aW9uICgpIHtcclxuICAgIGxldCBzY3JvbGwgPSB3aW5kb3cucGFnZVlPZmZzZXQ7XHJcbiAgICBsZXQgaGVpZ2h0ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbEhlaWdodCAtIHdpbmRvdy5pbm5lckhlaWdodDtcclxuICAgIGxldCBwcm9ncmVzcyA9IHBhdGhMZW5ndGggLSAoc2Nyb2xsICogcGF0aExlbmd0aCkgLyBoZWlnaHQ7XHJcbiAgICBwcm9ncmVzc1BhdGguc3R5bGUuc3Ryb2tlRGFzaG9mZnNldCA9IHByb2dyZXNzO1xyXG4gIH07XHJcbiAgdXBkYXRlUHJvZ3Jlc3MoKTtcclxuICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCB1cGRhdGVQcm9ncmVzcyk7XHJcbiAgbGV0IHByb2dyZXNzV3JhcCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIucHJvZ3Jlc3Mtd3JhcFwiKTtcclxuICBsZXQgb2Zmc2V0ID0gMTUwO1xyXG4gIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIGZ1bmN0aW9uICgpIHtcclxuICAgIGlmICh3aW5kb3cucGFnZVlPZmZzZXQgPiBvZmZzZXQpIHtcclxuICAgICAgcHJvZ3Jlc3NXcmFwLmNsYXNzTGlzdC5hZGQoXCJhY3RpdmUtcHJvZ3Jlc3NcIik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkb2N1bWVudFxyXG4gICAgICAgIC5xdWVyeVNlbGVjdG9yKFwiLnByb2dyZXNzLXdyYXBcIilcclxuICAgICAgICAuY2xhc3NMaXN0LnJlbW92ZShcImFjdGl2ZS1wcm9ncmVzc1wiKTtcclxuICAgIH1cclxuICB9KTtcclxuICBwcm9ncmVzc1dyYXAuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGZ1bmN0aW9uIChldmVudCkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIHdpbmRvdy5zY3JvbGxUbyh7IHRvcDogMCwgYmVoYXZpb3I6IFwic21vb3RoXCIgfSk7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfSk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBzY3JvbGxUb1RvcDtcclxuIl0sIm5hbWVzIjpbInNjcm9sbFRvVG9wIiwicHJvZ3Jlc3NQYXRoIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwicGF0aExlbmd0aCIsImdldFRvdGFsTGVuZ3RoIiwic3R5bGUiLCJ0cmFuc2l0aW9uIiwiV2Via2l0VHJhbnNpdGlvbiIsInN0cm9rZURhc2hhcnJheSIsInN0cm9rZURhc2hvZmZzZXQiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJ1cGRhdGVQcm9ncmVzcyIsInNjcm9sbCIsIndpbmRvdyIsInBhZ2VZT2Zmc2V0IiwiaGVpZ2h0IiwiZG9jdW1lbnRFbGVtZW50Iiwic2Nyb2xsSGVpZ2h0IiwiaW5uZXJIZWlnaHQiLCJwcm9ncmVzcyIsImFkZEV2ZW50TGlzdGVuZXIiLCJwcm9ncmVzc1dyYXAiLCJvZmZzZXQiLCJjbGFzc0xpc3QiLCJhZGQiLCJyZW1vdmUiLCJldmVudCIsInByZXZlbnREZWZhdWx0Iiwic2Nyb2xsVG8iLCJ0b3AiLCJiZWhhdmlvciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/common/scrollToTop.js\n"); + +/***/ }), + +/***/ "./src/components/Loading-Screen/index.jsx": +/*!*************************************************!*\ + !*** ./src/components/Loading-Screen/index.jsx ***! + \*************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_loadingPace__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/loadingPace */ \"./src/common/loadingPace.js\");\n/* harmony import */ var _data_app_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../data/app.json */ \"./src/data/app.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Loading-Screen\\\\index.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n\n\n\n\n\n\nvar LoadingScreen = function LoadingScreen() {\n _s();\n\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n var bodyEl = document.querySelector(\"body\");\n\n if (_data_app_json__WEBPACK_IMPORTED_MODULE_2__.showLoading) {\n (0,_common_loadingPace__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n if (bodyEl.classList.contains(\"hideX\")) bodyEl.classList.remove(\"hideX\");\n } else {\n bodyEl.classList.add(\"hideX\");\n }\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.Fragment, {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"\".concat(_data_app_json__WEBPACK_IMPORTED_MODULE_2__.showLoading === true ? \"showX\" : \"hideX\"),\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"loading\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: \"L\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: \"o\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: \"a\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: \"d\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: \"i\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: \"n\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: \"g\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n id: \"preloader\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 7\n }, _this)\n }, void 0, false);\n};\n\n_s(LoadingScreen, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = LoadingScreen;\n/* harmony default export */ __webpack_exports__[\"default\"] = (LoadingScreen);\n\nvar _c;\n\n$RefreshReg$(_c, \"LoadingScreen\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9Mb2FkaW5nLVNjcmVlbi9pbmRleC5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBOzs7O0FBRUEsSUFBTUcsYUFBYSxHQUFHLFNBQWhCQSxhQUFnQixHQUFNO0FBQUE7O0FBRTFCSCxFQUFBQSxzREFBQSxDQUFnQixZQUFNO0FBQ3BCLFFBQUlLLE1BQU0sR0FBR0MsUUFBUSxDQUFDQyxhQUFULENBQXVCLE1BQXZCLENBQWI7O0FBRUEsUUFBSUwsdURBQUosRUFBeUI7QUFDdkJELE1BQUFBLCtEQUFXO0FBQ1gsVUFBSUksTUFBTSxDQUFDSSxTQUFQLENBQWlCQyxRQUFqQixDQUEwQixPQUExQixDQUFKLEVBQXdDTCxNQUFNLENBQUNJLFNBQVAsQ0FBaUJFLE1BQWpCLENBQXdCLE9BQXhCO0FBQ3pDLEtBSEQsTUFHTztBQUNMTixNQUFBQSxNQUFNLENBQUNJLFNBQVAsQ0FBaUJHLEdBQWpCLENBQXFCLE9BQXJCO0FBQ0Q7QUFDRixHQVRELEVBU0csRUFUSDtBQVdBLHNCQUNFO0FBQUEsMkJBQ0U7QUFBSyxlQUFTLFlBQUtWLHVEQUFBLEtBQXdCLElBQXhCLEdBQStCLE9BQS9CLEdBQXlDLE9BQTlDLENBQWQ7QUFBQSw4QkFDRTtBQUFLLGlCQUFTLEVBQUMsU0FBZjtBQUFBLGdDQUNFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQURGLGVBRUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBRkYsZUFHRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFIRixlQUlFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQUpGLGVBS0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBTEYsZUFNRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFORixlQU9FO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQVBGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxlQURGLGVBVUU7QUFBSyxVQUFFLEVBQUM7QUFBUjtBQUFBO0FBQUE7QUFBQTtBQUFBLGVBVkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREYsbUJBREY7QUFnQkQsQ0E3QkQ7O0dBQU1DOztLQUFBQTtBQStCTiwrREFBZUEsYUFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tcG9uZW50cy9Mb2FkaW5nLVNjcmVlbi9pbmRleC5qc3g/NjhiNyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBsb2FkaW5nUGFjZSBmcm9tIFwiLi4vLi4vY29tbW9uL2xvYWRpbmdQYWNlXCI7XHJcbmltcG9ydCBhcHBEYXRhIGZyb20gXCIuLi8uLi9kYXRhL2FwcC5qc29uXCI7XHJcblxyXG5jb25zdCBMb2FkaW5nU2NyZWVuID0gKCkgPT4ge1xyXG5cclxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgbGV0IGJvZHlFbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCJib2R5XCIpO1xyXG5cclxuICAgIGlmIChhcHBEYXRhLnNob3dMb2FkaW5nKSB7XHJcbiAgICAgIGxvYWRpbmdQYWNlKCk7XHJcbiAgICAgIGlmIChib2R5RWwuY2xhc3NMaXN0LmNvbnRhaW5zKFwiaGlkZVhcIikpIGJvZHlFbC5jbGFzc0xpc3QucmVtb3ZlKFwiaGlkZVhcIik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBib2R5RWwuY2xhc3NMaXN0LmFkZChcImhpZGVYXCIpO1xyXG4gICAgfVxyXG4gIH0sIFtdKTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDw+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHthcHBEYXRhLnNob3dMb2FkaW5nID09PSB0cnVlID8gXCJzaG93WFwiIDogXCJoaWRlWFwifWB9PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibG9hZGluZ1wiPlxyXG4gICAgICAgICAgPHNwYW4+TDwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuPm88L3NwYW4+XHJcbiAgICAgICAgICA8c3Bhbj5hPC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4+ZDwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuPmk8L3NwYW4+XHJcbiAgICAgICAgICA8c3Bhbj5uPC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4+Zzwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGlkPVwicHJlbG9hZGVyXCI+PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC8+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IExvYWRpbmdTY3JlZW47XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsImxvYWRpbmdQYWNlIiwiYXBwRGF0YSIsIkxvYWRpbmdTY3JlZW4iLCJ1c2VFZmZlY3QiLCJib2R5RWwiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJzaG93TG9hZGluZyIsImNsYXNzTGlzdCIsImNvbnRhaW5zIiwicmVtb3ZlIiwiYWRkIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Loading-Screen/index.jsx\n"); + +/***/ }), + +/***/ "./src/components/cursor/index.jsx": +/*!*****************************************!*\ + !*** ./src/components/cursor/index.jsx ***! + \*****************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_mouseEffect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/mouseEffect */ \"./src/common/mouseEffect.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\cursor\\\\index.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n\n\n\n\n\nvar Cursor = function Cursor() {\n _s();\n\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n (0,_common_mouseEffect__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"mouse-cursor cursor-outer\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"mouse-cursor cursor-inner\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 7\n }, _this)]\n }, void 0, true);\n};\n\n_s(Cursor, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = Cursor;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Cursor);\n\nvar _c;\n\n$RefreshReg$(_c, \"Cursor\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9jdXJzb3IvaW5kZXguanN4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTs7OztBQUVBLElBQU1FLE1BQU0sR0FBRyxTQUFUQSxNQUFTLEdBQU07QUFBQTs7QUFDbkJGLEVBQUFBLHNEQUFBLENBQWdCLFlBQU07QUFDcEJDLElBQUFBLCtEQUFXO0FBQ1osR0FGRCxFQUVHLEVBRkg7QUFHQSxzQkFDRTtBQUFBLDRCQUNFO0FBQUssZUFBUyxFQUFDO0FBQWY7QUFBQTtBQUFBO0FBQUE7QUFBQSxhQURGLGVBRUU7QUFBSyxlQUFTLEVBQUM7QUFBZjtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBRkY7QUFBQSxrQkFERjtBQU1ELENBVkQ7O0dBQU1DOztLQUFBQTtBQVlOLCtEQUFlQSxNQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL2N1cnNvci9pbmRleC5qc3g/NDU5NSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBtb3VzZUVmZmVjdCBmcm9tIFwiLi4vLi4vY29tbW9uL21vdXNlRWZmZWN0XCI7XHJcblxyXG5jb25zdCBDdXJzb3IgPSAoKSA9PiB7XHJcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgIG1vdXNlRWZmZWN0KCk7XHJcbiAgfSwgW10pO1xyXG4gIHJldHVybiAoXHJcbiAgICA8PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1vdXNlLWN1cnNvciBjdXJzb3Itb3V0ZXJcIj48L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJtb3VzZS1jdXJzb3IgY3Vyc29yLWlubmVyXCI+PC9kaXY+XHJcbiAgICA8Lz5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgQ3Vyc29yO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJtb3VzZUVmZmVjdCIsIkN1cnNvciIsInVzZUVmZmVjdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/cursor/index.jsx\n"); + +/***/ }), + +/***/ "./src/components/scrollToTop/index.jsx": +/*!**********************************************!*\ + !*** ./src/components/scrollToTop/index.jsx ***! + \**********************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_scrollToTop__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/scrollToTop */ \"./src/common/scrollToTop.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\scrollToTop\\\\index.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n\n\n\n\nvar ScrollToTop = function ScrollToTop() {\n _s();\n\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n (0,_common_scrollToTop__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"progress-wrap cursor-pointer\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"svg\", {\n className: \"progress-circle svg-content\",\n width: \"100%\",\n height: \"100%\",\n viewBox: \"-1 -1 102 102\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"path\", {\n d: \"M50,1 a49,49 0 0,1 0,98 a49,49 0 0,1 0,-98\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, _this);\n};\n\n_s(ScrollToTop, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = ScrollToTop;\n/* harmony default export */ __webpack_exports__[\"default\"] = (ScrollToTop);\n\nvar _c;\n\n$RefreshReg$(_c, \"ScrollToTop\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9zY3JvbGxUb1RvcC9pbmRleC5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTtBQUNBOzs7QUFFQSxJQUFNRSxXQUFXLEdBQUcsU0FBZEEsV0FBYyxHQUFNO0FBQUE7O0FBQ3hCRixFQUFBQSxzREFBQSxDQUFnQixZQUFNO0FBQ3BCQyxJQUFBQSwrREFBVztBQUNaLEdBRkQsRUFFRyxFQUZIO0FBR0Esc0JBQ0U7QUFBSyxhQUFTLEVBQUMsOEJBQWY7QUFBQSwyQkFDRTtBQUNFLGVBQVMsRUFBQyw2QkFEWjtBQUVFLFdBQUssRUFBQyxNQUZSO0FBR0UsWUFBTSxFQUFDLE1BSFQ7QUFJRSxhQUFPLEVBQUMsZUFKVjtBQUFBLDZCQU1FO0FBQU0sU0FBQyxFQUFDO0FBQVI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU5GO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBREY7QUFZRCxDQWhCRDs7R0FBTUM7O0tBQUFBO0FBa0JOLCtEQUFlQSxXQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL3Njcm9sbFRvVG9wL2luZGV4LmpzeD9kNWVkIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHNjcm9sbFRvVG9wIGZyb20gXCIuLi8uLi9jb21tb24vc2Nyb2xsVG9Ub3BcIjtcclxuXHJcbmNvbnN0IFNjcm9sbFRvVG9wID0gKCkgPT4ge1xyXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBzY3JvbGxUb1RvcCgpO1xyXG4gIH0sIFtdKTtcclxuICByZXR1cm4gKFxyXG4gICAgPGRpdiBjbGFzc05hbWU9XCJwcm9ncmVzcy13cmFwIGN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgIDxzdmdcclxuICAgICAgICBjbGFzc05hbWU9XCJwcm9ncmVzcy1jaXJjbGUgc3ZnLWNvbnRlbnRcIlxyXG4gICAgICAgIHdpZHRoPVwiMTAwJVwiXHJcbiAgICAgICAgaGVpZ2h0PVwiMTAwJVwiXHJcbiAgICAgICAgdmlld0JveD1cIi0xIC0xIDEwMiAxMDJcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPHBhdGggZD1cIk01MCwxIGE0OSw0OSAwIDAsMSAwLDk4IGE0OSw0OSAwIDAsMSAwLC05OFwiIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9kaXY+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IFNjcm9sbFRvVG9wO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJzY3JvbGxUb1RvcCIsIlNjcm9sbFRvVG9wIiwidXNlRWZmZWN0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/scrollToTop/index.jsx\n"); + +/***/ }), + +/***/ "./src/pages/_app.js": +/*!***************************!*\ + !*** ./src/pages/_app.js ***! + \***************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/head */ \"./node_modules/next/head.js\");\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_head__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var next_script__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/script */ \"./node_modules/next/script.js\");\n/* harmony import */ var next_script__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_script__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _components_cursor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../components/cursor */ \"./src/components/cursor/index.jsx\");\n/* harmony import */ var _components_scrollToTop__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../components/scrollToTop */ \"./src/components/scrollToTop/index.jsx\");\n/* harmony import */ var _components_Loading_Screen__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../components/Loading-Screen */ \"./src/components/Loading-Screen/index.jsx\");\n/* harmony import */ var _styles_preloader_css__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../styles/preloader.css */ \"./src/styles/preloader.css\");\n/* harmony import */ var _styles_preloader_css__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_styles_preloader_css__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _styles_main_scss__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../styles/main.scss */ \"./src/styles/main.scss\");\n/* harmony import */ var _styles_main_scss__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_styles_main_scss__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__);\n/* module decorator */ module = __webpack_require__.hmd(module);\n\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\pages\\\\_app.js\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/* eslint-disable @next/next/no-css-tags */\n\n\n\n\n\n\n\n\n\n\n\nfunction MyApp(_ref) {\n var Component = _ref.Component,\n pageProps = _ref.pageProps;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.Fragment, {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_head__WEBPACK_IMPORTED_MODULE_2___default()), {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"title\", {\n children: \"Project Marketing: Marketing strategies for the success of your project\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 9\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"link\", {\n rel: \"icon\",\n href: \"/img/favicon.ico\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 7\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(_components_cursor__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 7\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(_components_Loading_Screen__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 7\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(Component, _objectSpread({}, pageProps), void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 7\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(_components_scrollToTop__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 7\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_script__WEBPACK_IMPORTED_MODULE_3___default()), {\n id: \"pace\",\n strategy: \"beforeInteractive\",\n src: \"/js/pace.min.js\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 7\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_script__WEBPACK_IMPORTED_MODULE_3___default()), {\n id: \"wow\",\n src: \"/js/wow.min.js\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 7\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_script__WEBPACK_IMPORTED_MODULE_3___default()), {\n strategy: \"beforeInteractive\",\n id: \"splitting\",\n src: \"/js/splitting.min.js\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 7\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_script__WEBPACK_IMPORTED_MODULE_3___default()), {\n id: \"simpleParallax\",\n src: \"/js/simpleParallax.min.js\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 7\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_script__WEBPACK_IMPORTED_MODULE_3___default()), {\n id: \"isotope\",\n strategy: \"beforeInteractive\",\n src: \"/js/isotope.pkgd.min.js\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 7\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_script__WEBPACK_IMPORTED_MODULE_3___default()), {\n id: \"wowInit\",\n strategy: \"lazyOnload\",\n src: \"/js/wowInit.js\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 7\n }, this)]\n }, void 0, true);\n}\n\n_c = MyApp;\n/* harmony default export */ __webpack_exports__[\"default\"] = (MyApp);\n\nvar _c;\n\n$RefreshReg$(_c, \"MyApp\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvcGFnZXMvX2FwcC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FBRUEsU0FBU00sS0FBVCxPQUF5QztBQUFBLE1BQXhCQyxTQUF3QixRQUF4QkEsU0FBd0I7QUFBQSxNQUFiQyxTQUFhLFFBQWJBLFNBQWE7QUFDdkMsc0JBQ0U7QUFBQSw0QkFDRSw4REFBQyxrREFBRDtBQUFBLDhCQUNFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGNBREYsZUFLRTtBQUFNLFdBQUcsRUFBQyxNQUFWO0FBQWlCLFlBQUksRUFBQztBQUF0QjtBQUFBO0FBQUE7QUFBQTtBQUFBLGNBTEY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFlBREYsZUFRRSw4REFBQywwREFBRDtBQUFBO0FBQUE7QUFBQTtBQUFBLFlBUkYsZUFTRSw4REFBQyxrRUFBRDtBQUFBO0FBQUE7QUFBQTtBQUFBLFlBVEYsZUFVRSw4REFBQyxTQUFELG9CQUFlQSxTQUFmO0FBQUE7QUFBQTtBQUFBO0FBQUEsWUFWRixlQVdFLDhEQUFDLCtEQUFEO0FBQUE7QUFBQTtBQUFBO0FBQUEsWUFYRixlQVlFLDhEQUFDLG9EQUFEO0FBQ0UsUUFBRSxFQUFDLE1BREw7QUFFRSxjQUFRLEVBQUMsbUJBRlg7QUFHRSxTQUFHLEVBQUM7QUFITjtBQUFBO0FBQUE7QUFBQTtBQUFBLFlBWkYsZUFpQkUsOERBQUMsb0RBQUQ7QUFBUSxRQUFFLEVBQUMsS0FBWDtBQUFpQixTQUFHLEVBQUM7QUFBckI7QUFBQTtBQUFBO0FBQUE7QUFBQSxZQWpCRixlQWtCRSw4REFBQyxvREFBRDtBQUNFLGNBQVEsRUFBQyxtQkFEWDtBQUVFLFFBQUUsRUFBQyxXQUZMO0FBR0UsU0FBRyxFQUFDO0FBSE47QUFBQTtBQUFBO0FBQUE7QUFBQSxZQWxCRixlQXVCRSw4REFBQyxvREFBRDtBQUFRLFFBQUUsRUFBQyxnQkFBWDtBQUE0QixTQUFHLEVBQUM7QUFBaEM7QUFBQTtBQUFBO0FBQUE7QUFBQSxZQXZCRixlQXdCRSw4REFBQyxvREFBRDtBQUNFLFFBQUUsRUFBQyxTQURMO0FBRUUsY0FBUSxFQUFDLG1CQUZYO0FBR0UsU0FBRyxFQUFDO0FBSE47QUFBQTtBQUFBO0FBQUE7QUFBQSxZQXhCRixlQTZCRSw4REFBQyxvREFBRDtBQUFRLFFBQUUsRUFBQyxTQUFYO0FBQXFCLGNBQVEsRUFBQyxZQUE5QjtBQUEyQyxTQUFHLEVBQUM7QUFBL0M7QUFBQTtBQUFBO0FBQUE7QUFBQSxZQTdCRjtBQUFBLGtCQURGO0FBaUNEOztLQWxDUUY7QUFvQ1QsK0RBQWVBLEtBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL3BhZ2VzL19hcHAuanM/OGZkYSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAbmV4dC9uZXh0L25vLWNzcy10YWdzICovXHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IEhlYWQgZnJvbSBcIm5leHQvaGVhZFwiO1xyXG5pbXBvcnQgU2NyaXB0IGZyb20gXCJuZXh0L3NjcmlwdFwiO1xyXG5pbXBvcnQgQ3Vyc29yIGZyb20gXCIuLi9jb21wb25lbnRzL2N1cnNvclwiO1xyXG5pbXBvcnQgU2Nyb2xsVG9Ub3AgZnJvbSBcIi4uL2NvbXBvbmVudHMvc2Nyb2xsVG9Ub3BcIjtcclxuaW1wb3J0IExvYWRpbmdTY3JlZW4gZnJvbSBcIi4uL2NvbXBvbmVudHMvTG9hZGluZy1TY3JlZW5cIjtcclxuaW1wb3J0IFwiLi4vc3R5bGVzL3ByZWxvYWRlci5jc3NcIjtcclxuaW1wb3J0IFwiLi4vc3R5bGVzL21haW4uc2Nzc1wiO1xyXG5cclxuZnVuY3Rpb24gTXlBcHAoeyBDb21wb25lbnQsIHBhZ2VQcm9wcyB9KSB7XHJcbiAgcmV0dXJuIChcclxuICAgIDw+XHJcbiAgICAgIDxIZWFkPlxyXG4gICAgICAgIDx0aXRsZT5cclxuICAgICAgICAgIFByb2plY3QgTWFya2V0aW5nOiBNYXJrZXRpbmcgc3RyYXRlZ2llcyBmb3IgdGhlIHN1Y2Nlc3Mgb2YgeW91clxyXG4gICAgICAgICAgcHJvamVjdFxyXG4gICAgICAgIDwvdGl0bGU+XHJcbiAgICAgICAgPGxpbmsgcmVsPVwiaWNvblwiIGhyZWY9XCIvaW1nL2Zhdmljb24uaWNvXCIgLz5cclxuICAgICAgPC9IZWFkPlxyXG4gICAgICA8Q3Vyc29yIC8+XHJcbiAgICAgIDxMb2FkaW5nU2NyZWVuIC8+XHJcbiAgICAgIDxDb21wb25lbnQgey4uLnBhZ2VQcm9wc30gLz5cclxuICAgICAgPFNjcm9sbFRvVG9wIC8+XHJcbiAgICAgIDxTY3JpcHRcclxuICAgICAgICBpZD1cInBhY2VcIlxyXG4gICAgICAgIHN0cmF0ZWd5PVwiYmVmb3JlSW50ZXJhY3RpdmVcIlxyXG4gICAgICAgIHNyYz1cIi9qcy9wYWNlLm1pbi5qc1wiXHJcbiAgICAgID48L1NjcmlwdD5cclxuICAgICAgPFNjcmlwdCBpZD1cIndvd1wiIHNyYz1cIi9qcy93b3cubWluLmpzXCI+PC9TY3JpcHQ+XHJcbiAgICAgIDxTY3JpcHRcclxuICAgICAgICBzdHJhdGVneT1cImJlZm9yZUludGVyYWN0aXZlXCJcclxuICAgICAgICBpZD1cInNwbGl0dGluZ1wiXHJcbiAgICAgICAgc3JjPVwiL2pzL3NwbGl0dGluZy5taW4uanNcIlxyXG4gICAgICA+PC9TY3JpcHQ+XHJcbiAgICAgIDxTY3JpcHQgaWQ9XCJzaW1wbGVQYXJhbGxheFwiIHNyYz1cIi9qcy9zaW1wbGVQYXJhbGxheC5taW4uanNcIj48L1NjcmlwdD5cclxuICAgICAgPFNjcmlwdFxyXG4gICAgICAgIGlkPVwiaXNvdG9wZVwiXHJcbiAgICAgICAgc3RyYXRlZ3k9XCJiZWZvcmVJbnRlcmFjdGl2ZVwiXHJcbiAgICAgICAgc3JjPVwiL2pzL2lzb3RvcGUucGtnZC5taW4uanNcIlxyXG4gICAgICA+PC9TY3JpcHQ+XHJcbiAgICAgIDxTY3JpcHQgaWQ9XCJ3b3dJbml0XCIgc3RyYXRlZ3k9XCJsYXp5T25sb2FkXCIgc3JjPVwiL2pzL3dvd0luaXQuanNcIj48L1NjcmlwdD5cclxuICAgIDwvPlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IE15QXBwO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJIZWFkIiwiU2NyaXB0IiwiQ3Vyc29yIiwiU2Nyb2xsVG9Ub3AiLCJMb2FkaW5nU2NyZWVuIiwiTXlBcHAiLCJDb21wb25lbnQiLCJwYWdlUHJvcHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/pages/_app.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[10].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[10].use[2]!./node_modules/next/dist/compiled/resolve-url-loader/index.js??ruleSet[1].rules[2].oneOf[10].use[3]!./node_modules/next/dist/compiled/sass-loader/cjs.js??ruleSet[1].rules[2].oneOf[10].use[4]!./src/styles/main.scss": +/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[10].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[10].use[2]!./node_modules/next/dist/compiled/resolve-url-loader/index.js??ruleSet[1].rules[2].oneOf[10].use[3]!./node_modules/next/dist/compiled/sass-loader/cjs.js??ruleSet[1].rules[2].oneOf[10].use[4]!./src/styles/main.scss ***! + \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js\");\n/* harmony import */ var _node_modules_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);\n// Imports\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".blog-crv .item {\\n display: flex;\\n align-items: center;\\n height: 100%;\\n}\\n\\n.block-sec .testim-box .slick-dots li button {\\n display: block;\\n opacity: 0;\\n width: 0;\\n height: 0;\\n}\\n\\n.slider .social-icon a {\\n margin: 0 3px;\\n}\\n\\n.navbar .navbar-nav .nav-link,\\n.video .vid .vid-butn .icon,\\n.video-wrapper .vid .vid-butn .icon {\\n cursor: pointer;\\n}\\n\\n.block-sec .vid-area {\\n z-index: 99;\\n}\\n\\n.div-tooltip-tit,\\n.div-tooltip-sub {\\n display: block;\\n padding: 0;\\n}\\n\\nsection.testimonials {\\n overflow: hidden;\\n}\\n\\n.contact-page .pages-header {\\n overflow: hidden;\\n}\\n\\ndiv#ieatmaps iframe {\\n width: 100%;\\n height: 100%;\\n border: 0;\\n}\\n\\nbutton.nb {\\n background: transparent;\\n color: #fff;\\n cursor: pointer;\\n}\\n\\nbutton.nb:hover {\\n background: #fff;\\n color: #222;\\n}\\n\\n.replay {\\n cursor: pointer;\\n}\\n\\n.pace-done #preloader:after {\\n bottom: 0;\\n}\\n\\n#preloader {\\n top: 0;\\n left: 0;\\n}\\n\\n.pace-done #preloader {\\n visibility: hidden;\\n transition-delay: 1.5s;\\n}\\n\\n.pace-done #preloader:after,\\n.pace-done #preloader:before {\\n height: 0;\\n transition: all 0.7s cubic-bezier(1, 0, 0.55, 1);\\n transition-delay: 1s;\\n}\\n\\nbody.hideX #preloader {\\n display: none !important;\\n z-index: -1111111;\\n height: 0;\\n width: 0;\\n overflow: hidden;\\n}\\n\\nbody.hideX .pace {\\n display: none !important;\\n background-color: transparent;\\n}\\n\\n.app-footer .social a {\\n margin-right: 4px;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://main.scss\"],\"names\":[],\"mappings\":\"AAAA;EACE,aAAA;EACA,mBAAA;EACA,YAAA;AACF;;AAEA;EACE,cAAA;EACA,UAAA;EACA,QAAA;EACA,SAAA;AACF;;AAEA;EACE,aAAA;AACF;;AAEA;;;EAGE,eAAA;AACF;;AAEA;EACE,WAAA;AACF;;AAEA;;EAEE,cAAA;EACA,UAAA;AACF;;AAEA;EACE,gBAAA;AACF;;AAEA;EACE,gBAAA;AACF;;AAEA;EACE,WAAA;EACA,YAAA;EACA,SAAA;AACF;;AAEA;EACE,uBAAA;EACA,WAAA;EACA,eAAA;AACF;;AAEA;EACE,gBAAA;EACA,WAAA;AACF;;AAEA;EACE,eAAA;AACF;;AAEA;EACE,SAAA;AACF;;AAEA;EACE,MAAA;EACA,OAAA;AACF;;AAGA;EACE,kBAAA;EAGA,sBAAA;AAAF;;AAGA;;EAEE,SAAA;EAGA,gDAAA;EAGA,oBAAA;AAAF;;AAGA;EACE,wBAAA;EACA,iBAAA;EACA,SAAA;EACA,QAAA;EACA,gBAAA;AAAF;;AAGA;EACE,wBAAA;EACA,6BAAA;AAAF;;AAGA;EACE,iBAAA;AAAF\",\"sourcesContent\":[\".blog-crv .item {\\r\\n display: flex;\\r\\n align-items: center;\\r\\n height: 100%;\\r\\n}\\r\\n\\r\\n.block-sec .testim-box .slick-dots li button {\\r\\n display: block;\\r\\n opacity: 0;\\r\\n width: 0;\\r\\n height: 0;\\r\\n}\\r\\n\\r\\n.slider .social-icon a {\\r\\n margin: 0 3px;\\r\\n}\\r\\n\\r\\n.navbar .navbar-nav .nav-link,\\r\\n.video .vid .vid-butn .icon,\\r\\n.video-wrapper .vid .vid-butn .icon {\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.block-sec .vid-area {\\r\\n z-index: 99;\\r\\n}\\r\\n\\r\\n.div-tooltip-tit,\\r\\n.div-tooltip-sub {\\r\\n display: block;\\r\\n padding: 0;\\r\\n}\\r\\n\\r\\nsection.testimonials {\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.contact-page .pages-header {\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\ndiv#ieatmaps iframe {\\r\\n width: 100%;\\r\\n height: 100%;\\r\\n border: 0;\\r\\n}\\r\\n\\r\\nbutton.nb {\\r\\n background: transparent;\\r\\n color: #fff;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\nbutton.nb:hover {\\r\\n background: #fff;\\r\\n color: #222;\\r\\n}\\r\\n\\r\\n.replay {\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.pace-done #preloader:after {\\r\\n bottom: 0;\\r\\n}\\r\\n\\r\\n#preloader {\\r\\n top: 0;\\r\\n left: 0;\\r\\n ;\\r\\n}\\r\\n\\r\\n.pace-done #preloader {\\r\\n visibility: hidden;\\r\\n -webkit-transition-delay: 1.5s;\\r\\n -o-transition-delay: 1.5s;\\r\\n transition-delay: 1.5s;\\r\\n}\\r\\n\\r\\n.pace-done #preloader:after,\\r\\n.pace-done #preloader:before {\\r\\n height: 0;\\r\\n -webkit-transition: all 0.7s cubic-bezier(1, 0, 0.55, 1);\\r\\n -o-transition: all 0.7s cubic-bezier(1, 0, 0.55, 1);\\r\\n transition: all 0.7s cubic-bezier(1, 0, 0.55, 1);\\r\\n -webkit-transition-delay: 1s;\\r\\n -o-transition-delay: 1s;\\r\\n transition-delay: 1s;\\r\\n}\\r\\n\\r\\nbody.hideX #preloader {\\r\\n display: none !important;\\r\\n z-index: -1111111;\\r\\n height: 0;\\r\\n width: 0;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\nbody.hideX .pace {\\r\\n display: none !important;\\r\\n background-color: transparent;\\r\\n}\\r\\n\\r\\n.app-footer .social a {\\r\\n margin-right: 4px;\\r\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZlsxMF0udXNlWzFdIS4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzEwXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3Jlc29sdmUtdXJsLWxvYWRlci9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZlsxMF0udXNlWzNdIS4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9zYXNzLWxvYWRlci9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbMTBdLnVzZVs0XSEuL3NyYy9zdHlsZXMvbWFpbi5zY3NzLmpzIiwibWFwcGluZ3MiOiI7OztBQUFBO0FBQzJIO0FBQzNILDhCQUE4QixrSEFBMkI7QUFDekQ7QUFDQSwyREFBMkQsa0JBQWtCLHdCQUF3QixpQkFBaUIsR0FBRyxrREFBa0QsbUJBQW1CLGVBQWUsYUFBYSxjQUFjLEdBQUcsNEJBQTRCLGtCQUFrQixHQUFHLHVHQUF1RyxvQkFBb0IsR0FBRywwQkFBMEIsZ0JBQWdCLEdBQUcseUNBQXlDLG1CQUFtQixlQUFlLEdBQUcsMEJBQTBCLHFCQUFxQixHQUFHLGlDQUFpQyxxQkFBcUIsR0FBRyx5QkFBeUIsZ0JBQWdCLGlCQUFpQixjQUFjLEdBQUcsZUFBZSw0QkFBNEIsZ0JBQWdCLG9CQUFvQixHQUFHLHFCQUFxQixxQkFBcUIsZ0JBQWdCLEdBQUcsYUFBYSxvQkFBb0IsR0FBRyxpQ0FBaUMsY0FBYyxHQUFHLGdCQUFnQixXQUFXLFlBQVksR0FBRywyQkFBMkIsdUJBQXVCLDJCQUEyQixHQUFHLGdFQUFnRSxjQUFjLHFEQUFxRCx5QkFBeUIsR0FBRywyQkFBMkIsNkJBQTZCLHNCQUFzQixjQUFjLGFBQWEscUJBQXFCLEdBQUcsc0JBQXNCLDZCQUE2QixrQ0FBa0MsR0FBRywyQkFBMkIsc0JBQXNCLEdBQUcsT0FBTywwRUFBMEUsVUFBVSxXQUFXLFVBQVUsTUFBTSxLQUFLLFVBQVUsVUFBVSxVQUFVLFVBQVUsTUFBTSxLQUFLLFVBQVUsTUFBTSxPQUFPLFVBQVUsTUFBTSxLQUFLLFVBQVUsTUFBTSxNQUFNLFVBQVUsVUFBVSxNQUFNLEtBQUssV0FBVyxNQUFNLEtBQUssV0FBVyxNQUFNLEtBQUssVUFBVSxVQUFVLFVBQVUsTUFBTSxLQUFLLFdBQVcsVUFBVSxVQUFVLE1BQU0sS0FBSyxXQUFXLFVBQVUsTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssV0FBVyxXQUFXLE1BQU0sTUFBTSxVQUFVLFdBQVcsV0FBVyxNQUFNLEtBQUssV0FBVyxXQUFXLFVBQVUsVUFBVSxXQUFXLE1BQU0sS0FBSyxXQUFXLFdBQVcsTUFBTSxLQUFLLFdBQVcsMENBQTBDLG9CQUFvQiwwQkFBMEIsbUJBQW1CLEtBQUssc0RBQXNELHFCQUFxQixpQkFBaUIsZUFBZSxnQkFBZ0IsS0FBSyxnQ0FBZ0Msb0JBQW9CLEtBQUssK0dBQStHLHNCQUFzQixLQUFLLDhCQUE4QixrQkFBa0IsS0FBSywrQ0FBK0MscUJBQXFCLGlCQUFpQixLQUFLLDhCQUE4Qix1QkFBdUIsS0FBSyxxQ0FBcUMsdUJBQXVCLEtBQUssNkJBQTZCLGtCQUFrQixtQkFBbUIsZ0JBQWdCLEtBQUssbUJBQW1CLDhCQUE4QixrQkFBa0Isc0JBQXNCLEtBQUsseUJBQXlCLHVCQUF1QixrQkFBa0IsS0FBSyxpQkFBaUIsc0JBQXNCLEtBQUsscUNBQXFDLGdCQUFnQixLQUFLLG9CQUFvQixhQUFhLGNBQWMsT0FBTyxLQUFLLCtCQUErQix5QkFBeUIscUNBQXFDLGdDQUFnQyw2QkFBNkIsS0FBSyxzRUFBc0UsZ0JBQWdCLCtEQUErRCwwREFBMEQsdURBQXVELG1DQUFtQyw4QkFBOEIsMkJBQTJCLEtBQUssK0JBQStCLCtCQUErQix3QkFBd0IsZ0JBQWdCLGVBQWUsdUJBQXVCLEtBQUssMEJBQTBCLCtCQUErQixvQ0FBb0MsS0FBSywrQkFBK0Isd0JBQXdCLEtBQUssbUJBQW1CO0FBQ3hpSTtBQUNBLCtEQUFlLHVCQUF1QixFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9zdHlsZXMvbWFpbi5zY3NzP2ZmZWMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvY3NzLWxvYWRlci9zcmMvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyh0cnVlKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIi5ibG9nLWNydiAuaXRlbSB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGhlaWdodDogMTAwJTtcXG59XFxuXFxuLmJsb2NrLXNlYyAudGVzdGltLWJveCAuc2xpY2stZG90cyBsaSBidXR0b24ge1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBvcGFjaXR5OiAwO1xcbiAgd2lkdGg6IDA7XFxuICBoZWlnaHQ6IDA7XFxufVxcblxcbi5zbGlkZXIgLnNvY2lhbC1pY29uIGEge1xcbiAgbWFyZ2luOiAwIDNweDtcXG59XFxuXFxuLm5hdmJhciAubmF2YmFyLW5hdiAubmF2LWxpbmssXFxuLnZpZGVvIC52aWQgLnZpZC1idXRuIC5pY29uLFxcbi52aWRlby13cmFwcGVyIC52aWQgLnZpZC1idXRuIC5pY29uIHtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuXFxuLmJsb2NrLXNlYyAudmlkLWFyZWEge1xcbiAgei1pbmRleDogOTk7XFxufVxcblxcbi5kaXYtdG9vbHRpcC10aXQsXFxuLmRpdi10b29sdGlwLXN1YiB7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIHBhZGRpbmc6IDA7XFxufVxcblxcbnNlY3Rpb24udGVzdGltb25pYWxzIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcblxcbi5jb250YWN0LXBhZ2UgLnBhZ2VzLWhlYWRlciB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbn1cXG5cXG5kaXYjaWVhdG1hcHMgaWZyYW1lIHtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgYm9yZGVyOiAwO1xcbn1cXG5cXG5idXR0b24ubmIge1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICBjb2xvcjogI2ZmZjtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuXFxuYnV0dG9uLm5iOmhvdmVyIHtcXG4gIGJhY2tncm91bmQ6ICNmZmY7XFxuICBjb2xvcjogIzIyMjtcXG59XFxuXFxuLnJlcGxheSB7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcblxcbi5wYWNlLWRvbmUgI3ByZWxvYWRlcjphZnRlciB7XFxuICBib3R0b206IDA7XFxufVxcblxcbiNwcmVsb2FkZXIge1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG59XFxuXFxuLnBhY2UtZG9uZSAjcHJlbG9hZGVyIHtcXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcXG4gIHRyYW5zaXRpb24tZGVsYXk6IDEuNXM7XFxufVxcblxcbi5wYWNlLWRvbmUgI3ByZWxvYWRlcjphZnRlcixcXG4ucGFjZS1kb25lICNwcmVsb2FkZXI6YmVmb3JlIHtcXG4gIGhlaWdodDogMDtcXG4gIHRyYW5zaXRpb246IGFsbCAwLjdzIGN1YmljLWJlemllcigxLCAwLCAwLjU1LCAxKTtcXG4gIHRyYW5zaXRpb24tZGVsYXk6IDFzO1xcbn1cXG5cXG5ib2R5LmhpZGVYICNwcmVsb2FkZXIge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbiAgei1pbmRleDogLTExMTExMTE7XFxuICBoZWlnaHQ6IDA7XFxuICB3aWR0aDogMDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcblxcbmJvZHkuaGlkZVggLnBhY2Uge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcblxcbi5hcHAtZm9vdGVyIC5zb2NpYWwgYSB7XFxuICBtYXJnaW4tcmlnaHQ6IDRweDtcXG59XCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovL21haW4uc2Nzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQTtFQUNFLGFBQUE7RUFDQSxtQkFBQTtFQUNBLFlBQUE7QUFDRjs7QUFFQTtFQUNFLGNBQUE7RUFDQSxVQUFBO0VBQ0EsUUFBQTtFQUNBLFNBQUE7QUFDRjs7QUFFQTtFQUNFLGFBQUE7QUFDRjs7QUFFQTs7O0VBR0UsZUFBQTtBQUNGOztBQUVBO0VBQ0UsV0FBQTtBQUNGOztBQUVBOztFQUVFLGNBQUE7RUFDQSxVQUFBO0FBQ0Y7O0FBRUE7RUFDRSxnQkFBQTtBQUNGOztBQUVBO0VBQ0UsZ0JBQUE7QUFDRjs7QUFFQTtFQUNFLFdBQUE7RUFDQSxZQUFBO0VBQ0EsU0FBQTtBQUNGOztBQUVBO0VBQ0UsdUJBQUE7RUFDQSxXQUFBO0VBQ0EsZUFBQTtBQUNGOztBQUVBO0VBQ0UsZ0JBQUE7RUFDQSxXQUFBO0FBQ0Y7O0FBRUE7RUFDRSxlQUFBO0FBQ0Y7O0FBRUE7RUFDRSxTQUFBO0FBQ0Y7O0FBRUE7RUFDRSxNQUFBO0VBQ0EsT0FBQTtBQUNGOztBQUdBO0VBQ0Usa0JBQUE7RUFHQSxzQkFBQTtBQUFGOztBQUdBOztFQUVFLFNBQUE7RUFHQSxnREFBQTtFQUdBLG9CQUFBO0FBQUY7O0FBR0E7RUFDRSx3QkFBQTtFQUNBLGlCQUFBO0VBQ0EsU0FBQTtFQUNBLFFBQUE7RUFDQSxnQkFBQTtBQUFGOztBQUdBO0VBQ0Usd0JBQUE7RUFDQSw2QkFBQTtBQUFGOztBQUdBO0VBQ0UsaUJBQUE7QUFBRlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCIuYmxvZy1jcnYgLml0ZW0ge1xcclxcbiAgZGlzcGxheTogZmxleDtcXHJcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxyXFxuICBoZWlnaHQ6IDEwMCU7XFxyXFxufVxcclxcblxcclxcbi5ibG9jay1zZWMgLnRlc3RpbS1ib3ggLnNsaWNrLWRvdHMgbGkgYnV0dG9uIHtcXHJcXG4gIGRpc3BsYXk6IGJsb2NrO1xcclxcbiAgb3BhY2l0eTogMDtcXHJcXG4gIHdpZHRoOiAwO1xcclxcbiAgaGVpZ2h0OiAwO1xcclxcbn1cXHJcXG5cXHJcXG4uc2xpZGVyIC5zb2NpYWwtaWNvbiBhIHtcXHJcXG4gIG1hcmdpbjogMCAzcHg7XFxyXFxufVxcclxcblxcclxcbi5uYXZiYXIgLm5hdmJhci1uYXYgLm5hdi1saW5rLFxcclxcbi52aWRlbyAudmlkIC52aWQtYnV0biAuaWNvbixcXHJcXG4udmlkZW8td3JhcHBlciAudmlkIC52aWQtYnV0biAuaWNvbiB7XFxyXFxuICBjdXJzb3I6IHBvaW50ZXI7XFxyXFxufVxcclxcblxcclxcbi5ibG9jay1zZWMgLnZpZC1hcmVhIHtcXHJcXG4gIHotaW5kZXg6IDk5O1xcclxcbn1cXHJcXG5cXHJcXG4uZGl2LXRvb2x0aXAtdGl0LFxcclxcbi5kaXYtdG9vbHRpcC1zdWIge1xcclxcbiAgZGlzcGxheTogYmxvY2s7XFxyXFxuICBwYWRkaW5nOiAwO1xcclxcbn1cXHJcXG5cXHJcXG5zZWN0aW9uLnRlc3RpbW9uaWFscyB7XFxyXFxuICBvdmVyZmxvdzogaGlkZGVuO1xcclxcbn1cXHJcXG5cXHJcXG4uY29udGFjdC1wYWdlIC5wYWdlcy1oZWFkZXIge1xcclxcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXHJcXG59XFxyXFxuXFxyXFxuZGl2I2llYXRtYXBzIGlmcmFtZSB7XFxyXFxuICB3aWR0aDogMTAwJTtcXHJcXG4gIGhlaWdodDogMTAwJTtcXHJcXG4gIGJvcmRlcjogMDtcXHJcXG59XFxyXFxuXFxyXFxuYnV0dG9uLm5iIHtcXHJcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcclxcbiAgY29sb3I6ICNmZmY7XFxyXFxuICBjdXJzb3I6IHBvaW50ZXI7XFxyXFxufVxcclxcblxcclxcbmJ1dHRvbi5uYjpob3ZlciB7XFxyXFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcclxcbiAgY29sb3I6ICMyMjI7XFxyXFxufVxcclxcblxcclxcbi5yZXBsYXkge1xcclxcbiAgY3Vyc29yOiBwb2ludGVyO1xcclxcbn1cXHJcXG5cXHJcXG4ucGFjZS1kb25lICNwcmVsb2FkZXI6YWZ0ZXIge1xcclxcbiAgYm90dG9tOiAwO1xcclxcbn1cXHJcXG5cXHJcXG4jcHJlbG9hZGVyIHtcXHJcXG4gIHRvcDogMDtcXHJcXG4gIGxlZnQ6IDA7XFxyXFxuICA7XFxyXFxufVxcclxcblxcclxcbi5wYWNlLWRvbmUgI3ByZWxvYWRlciB7XFxyXFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XFxyXFxuICAtd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6IDEuNXM7XFxyXFxuICAtby10cmFuc2l0aW9uLWRlbGF5OiAxLjVzO1xcclxcbiAgdHJhbnNpdGlvbi1kZWxheTogMS41cztcXHJcXG59XFxyXFxuXFxyXFxuLnBhY2UtZG9uZSAjcHJlbG9hZGVyOmFmdGVyLFxcclxcbi5wYWNlLWRvbmUgI3ByZWxvYWRlcjpiZWZvcmUge1xcclxcbiAgaGVpZ2h0OiAwO1xcclxcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC43cyBjdWJpYy1iZXppZXIoMSwgMCwgMC41NSwgMSk7XFxyXFxuICAtby10cmFuc2l0aW9uOiBhbGwgMC43cyBjdWJpYy1iZXppZXIoMSwgMCwgMC41NSwgMSk7XFxyXFxuICB0cmFuc2l0aW9uOiBhbGwgMC43cyBjdWJpYy1iZXppZXIoMSwgMCwgMC41NSwgMSk7XFxyXFxuICAtd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6IDFzO1xcclxcbiAgLW8tdHJhbnNpdGlvbi1kZWxheTogMXM7XFxyXFxuICB0cmFuc2l0aW9uLWRlbGF5OiAxcztcXHJcXG59XFxyXFxuXFxyXFxuYm9keS5oaWRlWCAjcHJlbG9hZGVyIHtcXHJcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXHJcXG4gIHotaW5kZXg6IC0xMTExMTExO1xcclxcbiAgaGVpZ2h0OiAwO1xcclxcbiAgd2lkdGg6IDA7XFxyXFxuICBvdmVyZmxvdzogaGlkZGVuO1xcclxcbn1cXHJcXG5cXHJcXG5ib2R5LmhpZGVYIC5wYWNlIHtcXHJcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXHJcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcclxcbn1cXHJcXG5cXHJcXG4uYXBwLWZvb3RlciAuc29jaWFsIGEge1xcclxcbiAgbWFyZ2luLXJpZ2h0OiA0cHg7XFxyXFxufVwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[10].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[10].use[2]!./node_modules/next/dist/compiled/resolve-url-loader/index.js??ruleSet[1].rules[2].oneOf[10].use[3]!./node_modules/next/dist/compiled/sass-loader/cjs.js??ruleSet[1].rules[2].oneOf[10].use[4]!./src/styles/main.scss\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[9].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[9].use[2]!./src/styles/preloader.css": +/*!**************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[9].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[9].use[2]!./src/styles/preloader.css ***! + \**************************************************************************************************************************************************************************************************************************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js\");\n/* harmony import */ var _node_modules_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);\n// Imports\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/* ====================== [ Start Preloader ] ====================== */\\r\\n.pace {\\r\\n pointer-events: none;\\r\\n -webkit-user-select: none;\\r\\n -moz-user-select: none;\\r\\n -ms-user-select: none;\\r\\n user-select: none;\\r\\n z-index: 99999999999999;\\r\\n position: fixed;\\r\\n margin: auto;\\r\\n top: 0;\\r\\n left: 0;\\r\\n right: 0;\\r\\n bottom: 0;\\r\\n width: 400px;\\r\\n border: 0px;\\r\\n height: 1px;\\r\\n overflow: hidden;\\r\\n background: rgba(255, 255, 255, 0.05);\\r\\n transition: all 1s;\\r\\n}\\r\\n\\r\\n.pace .pace-progress {\\r\\n transform: translate3d(0, 0, 0);\\r\\n max-width: 300px;\\r\\n position: fixed;\\r\\n z-index: 99999999999999;\\r\\n display: block;\\r\\n position: absolute;\\r\\n top: 0;\\r\\n right: 100%;\\r\\n height: 100%;\\r\\n width: 100%;\\r\\n background: #12c2e9;\\r\\n background: linear-gradient(to right, #12c2e9, #c471ed, #f64f59);\\r\\n}\\r\\n\\r\\n.pace.pace-inactive {\\r\\n width: 100vw;\\r\\n opacity: 0;\\r\\n}\\r\\n\\r\\n.pace.pace-inactive .pace-progress {\\r\\n max-width: 100vw;\\r\\n}\\r\\n\\r\\n#preloader {\\r\\n width: 100%;\\r\\n height: 100vh;\\r\\n overflow: hidden;\\r\\n position: fixed;\\r\\n z-index: 9999999;\\r\\n}\\r\\n\\r\\n#preloader:after,\\r\\n#preloader:before {\\r\\n content: \\\"\\\";\\r\\n position: fixed;\\r\\n left: 0;\\r\\n height: 50%;\\r\\n width: 100%;\\r\\n background: #252531;\\r\\n transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1);\\r\\n}\\r\\n\\r\\n#preloader:before {\\r\\n top: 0;\\r\\n}\\r\\n\\r\\n#preloader:after {\\r\\n bottom: 0;\\r\\n}\\r\\n\\r\\n#preloader.isdone {\\r\\n visibility: hidden;\\r\\n transition-delay: 1.5s;\\r\\n}\\r\\n\\r\\n#preloader.isdone:after,\\r\\n#preloader.isdone:before {\\r\\n height: 0;\\r\\n transition: all 0.7s cubic-bezier(1, 0, 0.55, 1);\\r\\n transition-delay: 1s;\\r\\n}\\r\\n\\r\\n.loading {\\r\\n position: fixed;\\r\\n left: 50%;\\r\\n top: calc(50% - 40px);\\r\\n transform: translateX(-50%) translateY(-50%);\\r\\n font-weight: 300;\\r\\n font-size: 13px;\\r\\n text-transform: uppercase;\\r\\n letter-spacing: 10px;\\r\\n z-index: 9999999999;\\r\\n}\\r\\n\\r\\n.loading.isdone {\\r\\n top: 50%;\\r\\n opacity: 0;\\r\\n transition: all 0.8s;\\r\\n transition-delay: 0.5s;\\r\\n}\\r\\n\\r\\n.loading span {\\r\\n animation: loading 1.4s infinite alternate;\\r\\n}\\r\\n\\r\\n.loading span:nth-child(1) {\\r\\n animation-delay: 0s;\\r\\n}\\r\\n\\r\\n.loading span:nth-child(2) {\\r\\n animation-delay: 0.1s;\\r\\n}\\r\\n\\r\\n.loading span:nth-child(3) {\\r\\n animation-delay: 0.2s;\\r\\n}\\r\\n\\r\\n.loading span:nth-child(4) {\\r\\n animation-delay: 0.3s;\\r\\n}\\r\\n\\r\\n.loading span:nth-child(5) {\\r\\n animation-delay: 0.4s;\\r\\n}\\r\\n\\r\\n.loading span:nth-child(6) {\\r\\n animation-delay: 0.5s;\\r\\n}\\r\\n\\r\\n.loading span:nth-child(7) {\\r\\n animation-delay: 0.6s;\\r\\n}\\r\\n\\r\\n@keyframes loading {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n/* ====================== [ End Preloader ] ====================== */\", \"\",{\"version\":3,\"sources\":[\"webpack://src/styles/preloader.css\"],\"names\":[],\"mappings\":\"AAAA,sEAAsE;AACtE;EACE,oBAAoB;EACpB,yBAAyB;EACzB,sBAAsB;EACtB,qBAAqB;EACrB,iBAAiB;EACjB,uBAAuB;EACvB,eAAe;EACf,YAAY;EACZ,MAAM;EACN,OAAO;EACP,QAAQ;EACR,SAAS;EACT,YAAY;EACZ,WAAW;EACX,WAAW;EACX,gBAAgB;EAChB,qCAAqC;EAGrC,kBAAkB;AACpB;;AAEA;EAEE,+BAA+B;EAC/B,gBAAgB;EAChB,eAAe;EACf,uBAAuB;EACvB,cAAc;EACd,kBAAkB;EAClB,MAAM;EACN,WAAW;EACX,YAAY;EACZ,WAAW;EACX,mBAAmB;EAWnB,gEAAgE;AAClE;;AAEA;EACE,YAAY;EACZ,UAAU;AACZ;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,WAAW;EACX,aAAa;EACb,gBAAgB;EAChB,eAAe;EACf,gBAAgB;AAClB;;AAEA;;EAEE,WAAW;EACX,eAAe;EACf,OAAO;EACP,WAAW;EACX,WAAW;EACX,mBAAmB;EAGnB,0DAA0D;AAC5D;;AAEA;EACE,MAAM;AACR;;AAEA;EACE,SAAS;AACX;;AAEA;EACE,kBAAkB;EAGlB,sBAAsB;AACxB;;AAEA;;EAEE,SAAS;EAGT,gDAAgD;EAGhD,oBAAoB;AACtB;;AAEA;EACE,eAAe;EACf,SAAS;EACT,qBAAqB;EAGrB,4CAA4C;EAC5C,gBAAgB;EAChB,eAAe;EACf,yBAAyB;EACzB,oBAAoB;EACpB,mBAAmB;AACrB;;AAEA;EACE,QAAQ;EACR,UAAU;EAGV,oBAAoB;EAGpB,sBAAsB;AACxB;;AAEA;EAEE,0CAA0C;AAC5C;;AAEA;EAEE,mBAAmB;AACrB;;AAEA;EAEE,qBAAqB;AACvB;;AAEA;EAEE,qBAAqB;AACvB;;AAEA;EAEE,qBAAqB;AACvB;;AAEA;EAEE,qBAAqB;AACvB;;AAEA;EAEE,qBAAqB;AACvB;;AAEA;EAEE,qBAAqB;AACvB;;AAYA;EACE;IACE,UAAU;EACZ;;EAEA;IACE,UAAU;EACZ;AACF;;AAEA,oEAAoE\",\"sourcesContent\":[\"/* ====================== [ Start Preloader ] ====================== */\\r\\n.pace {\\r\\n pointer-events: none;\\r\\n -webkit-user-select: none;\\r\\n -moz-user-select: none;\\r\\n -ms-user-select: none;\\r\\n user-select: none;\\r\\n z-index: 99999999999999;\\r\\n position: fixed;\\r\\n margin: auto;\\r\\n top: 0;\\r\\n left: 0;\\r\\n right: 0;\\r\\n bottom: 0;\\r\\n width: 400px;\\r\\n border: 0px;\\r\\n height: 1px;\\r\\n overflow: hidden;\\r\\n background: rgba(255, 255, 255, 0.05);\\r\\n -webkit-transition: all 1s;\\r\\n -o-transition: all 1s;\\r\\n transition: all 1s;\\r\\n}\\r\\n\\r\\n.pace .pace-progress {\\r\\n -webkit-transform: translate3d(0, 0, 0);\\r\\n transform: translate3d(0, 0, 0);\\r\\n max-width: 300px;\\r\\n position: fixed;\\r\\n z-index: 99999999999999;\\r\\n display: block;\\r\\n position: absolute;\\r\\n top: 0;\\r\\n right: 100%;\\r\\n height: 100%;\\r\\n width: 100%;\\r\\n background: #12c2e9;\\r\\n background: -webkit-gradient(\\r\\n linear,\\r\\n left top,\\r\\n right top,\\r\\n from(#12c2e9),\\r\\n color-stop(#c471ed),\\r\\n to(#f64f59)\\r\\n );\\r\\n background: -webkit-linear-gradient(left, #12c2e9, #c471ed, #f64f59);\\r\\n background: -o-linear-gradient(left, #12c2e9, #c471ed, #f64f59);\\r\\n background: linear-gradient(to right, #12c2e9, #c471ed, #f64f59);\\r\\n}\\r\\n\\r\\n.pace.pace-inactive {\\r\\n width: 100vw;\\r\\n opacity: 0;\\r\\n}\\r\\n\\r\\n.pace.pace-inactive .pace-progress {\\r\\n max-width: 100vw;\\r\\n}\\r\\n\\r\\n#preloader {\\r\\n width: 100%;\\r\\n height: 100vh;\\r\\n overflow: hidden;\\r\\n position: fixed;\\r\\n z-index: 9999999;\\r\\n}\\r\\n\\r\\n#preloader:after,\\r\\n#preloader:before {\\r\\n content: \\\"\\\";\\r\\n position: fixed;\\r\\n left: 0;\\r\\n height: 50%;\\r\\n width: 100%;\\r\\n background: #252531;\\r\\n -webkit-transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1);\\r\\n -o-transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1);\\r\\n transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1);\\r\\n}\\r\\n\\r\\n#preloader:before {\\r\\n top: 0;\\r\\n}\\r\\n\\r\\n#preloader:after {\\r\\n bottom: 0;\\r\\n}\\r\\n\\r\\n#preloader.isdone {\\r\\n visibility: hidden;\\r\\n -webkit-transition-delay: 1.5s;\\r\\n -o-transition-delay: 1.5s;\\r\\n transition-delay: 1.5s;\\r\\n}\\r\\n\\r\\n#preloader.isdone:after,\\r\\n#preloader.isdone:before {\\r\\n height: 0;\\r\\n -webkit-transition: all 0.7s cubic-bezier(1, 0, 0.55, 1);\\r\\n -o-transition: all 0.7s cubic-bezier(1, 0, 0.55, 1);\\r\\n transition: all 0.7s cubic-bezier(1, 0, 0.55, 1);\\r\\n -webkit-transition-delay: 1s;\\r\\n -o-transition-delay: 1s;\\r\\n transition-delay: 1s;\\r\\n}\\r\\n\\r\\n.loading {\\r\\n position: fixed;\\r\\n left: 50%;\\r\\n top: calc(50% - 40px);\\r\\n -webkit-transform: translateX(-50%) translateY(-50%);\\r\\n -ms-transform: translateX(-50%) translateY(-50%);\\r\\n transform: translateX(-50%) translateY(-50%);\\r\\n font-weight: 300;\\r\\n font-size: 13px;\\r\\n text-transform: uppercase;\\r\\n letter-spacing: 10px;\\r\\n z-index: 9999999999;\\r\\n}\\r\\n\\r\\n.loading.isdone {\\r\\n top: 50%;\\r\\n opacity: 0;\\r\\n -webkit-transition: all 0.8s;\\r\\n -o-transition: all 0.8s;\\r\\n transition: all 0.8s;\\r\\n -webkit-transition-delay: 0.5s;\\r\\n -o-transition-delay: 0.5s;\\r\\n transition-delay: 0.5s;\\r\\n}\\r\\n\\r\\n.loading span {\\r\\n -webkit-animation: loading 1.4s infinite alternate;\\r\\n animation: loading 1.4s infinite alternate;\\r\\n}\\r\\n\\r\\n.loading span:nth-child(1) {\\r\\n -webkit-animation-delay: 0s;\\r\\n animation-delay: 0s;\\r\\n}\\r\\n\\r\\n.loading span:nth-child(2) {\\r\\n -webkit-animation-delay: 0.1s;\\r\\n animation-delay: 0.1s;\\r\\n}\\r\\n\\r\\n.loading span:nth-child(3) {\\r\\n -webkit-animation-delay: 0.2s;\\r\\n animation-delay: 0.2s;\\r\\n}\\r\\n\\r\\n.loading span:nth-child(4) {\\r\\n -webkit-animation-delay: 0.3s;\\r\\n animation-delay: 0.3s;\\r\\n}\\r\\n\\r\\n.loading span:nth-child(5) {\\r\\n -webkit-animation-delay: 0.4s;\\r\\n animation-delay: 0.4s;\\r\\n}\\r\\n\\r\\n.loading span:nth-child(6) {\\r\\n -webkit-animation-delay: 0.5s;\\r\\n animation-delay: 0.5s;\\r\\n}\\r\\n\\r\\n.loading span:nth-child(7) {\\r\\n -webkit-animation-delay: 0.6s;\\r\\n animation-delay: 0.6s;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes loading {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes loading {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n/* ====================== [ End Preloader ] ====================== */\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls5XS51c2VbMV0hLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOV0udXNlWzJdIS4vc3JjL3N0eWxlcy9wcmVsb2FkZXIuY3NzLmpzIiwibWFwcGluZ3MiOiI7OztBQUFBO0FBQzJIO0FBQzNILDhCQUE4QixrSEFBMkI7QUFDekQ7QUFDQSw0SEFBNEgsMkJBQTJCLGdDQUFnQyw2QkFBNkIsNEJBQTRCLHdCQUF3Qiw4QkFBOEIsc0JBQXNCLG1CQUFtQixhQUFhLGNBQWMsZUFBZSxnQkFBZ0IsbUJBQW1CLGtCQUFrQixrQkFBa0IsdUJBQXVCLDRDQUE0Qyx5QkFBeUIsS0FBSyw4QkFBOEIsc0NBQXNDLHVCQUF1QixzQkFBc0IsOEJBQThCLHFCQUFxQix5QkFBeUIsYUFBYSxrQkFBa0IsbUJBQW1CLGtCQUFrQiwwQkFBMEIsdUVBQXVFLEtBQUssNkJBQTZCLG1CQUFtQixpQkFBaUIsS0FBSyw0Q0FBNEMsdUJBQXVCLEtBQUssb0JBQW9CLGtCQUFrQixvQkFBb0IsdUJBQXVCLHNCQUFzQix1QkFBdUIsS0FBSyxnREFBZ0Qsb0JBQW9CLHNCQUFzQixjQUFjLGtCQUFrQixrQkFBa0IsMEJBQTBCLGlFQUFpRSxLQUFLLDJCQUEyQixhQUFhLEtBQUssMEJBQTBCLGdCQUFnQixLQUFLLDJCQUEyQix5QkFBeUIsNkJBQTZCLEtBQUssOERBQThELGdCQUFnQix1REFBdUQsMkJBQTJCLEtBQUssa0JBQWtCLHNCQUFzQixnQkFBZ0IsNEJBQTRCLG1EQUFtRCx1QkFBdUIsc0JBQXNCLGdDQUFnQywyQkFBMkIsMEJBQTBCLEtBQUsseUJBQXlCLGVBQWUsaUJBQWlCLDJCQUEy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QW1CLE9BQU8sS0FBSyw0QkFBNEIsVUFBVSxtQkFBbUIsT0FBTyxnQkFBZ0IsbUJBQW1CLE9BQU8sS0FBSyxnR0FBZ0c7QUFDcnpRO0FBQ0EsK0RBQWUsdUJBQXVCLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL3N0eWxlcy9wcmVsb2FkZXIuY3NzPzI2YmUiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvY3NzLWxvYWRlci9zcmMvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyh0cnVlKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIi8qID09PT09PT09PT09PT09PT09PT09PT0gWyBTdGFydCBQcmVsb2FkZXIgXSA9PT09PT09PT09PT09PT09PT09PT09ICovXFxyXFxuLnBhY2Uge1xcclxcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxyXFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcclxcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcXHJcXG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcXHJcXG4gIHVzZXItc2VsZWN0OiBub25lO1xcclxcbiAgei1pbmRleDogOTk5OTk5OTk5OTk5OTk7XFxyXFxuICBwb3NpdGlvbjogZml4ZWQ7XFxyXFxuICBtYXJnaW46IGF1dG87XFxyXFxuICB0b3A6IDA7XFxyXFxuICBsZWZ0OiAwO1xcclxcbiAgcmlnaHQ6IDA7XFxyXFxuICBib3R0b206IDA7XFxyXFxuICB3aWR0aDogNDAwcHg7XFxyXFxuICBib3JkZXI6IDBweDtcXHJcXG4gIGhlaWdodDogMXB4O1xcclxcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXHJcXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSk7XFxyXFxuICB0cmFuc2l0aW9uOiBhbGwgMXM7XFxyXFxufVxcclxcblxcclxcbi5wYWNlIC5wYWNlLXByb2dyZXNzIHtcXHJcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XFxyXFxuICBtYXgtd2lkdGg6IDMwMHB4O1xcclxcbiAgcG9zaXRpb246IGZpeGVkO1xcclxcbiAgei1pbmRleDogOTk5OTk5OTk5OTk5OTk7XFxyXFxuICBkaXNwbGF5OiBibG9jaztcXHJcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXHJcXG4gIHRvcDogMDtcXHJcXG4gIHJpZ2h0OiAxMDAlO1xcclxcbiAgaGVpZ2h0OiAxMDAlO1xcclxcbiAgd2lkdGg6IDEwMCU7XFxyXFxuICBiYWNrZ3JvdW5kOiAjMTJjMmU5O1xcclxcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjMTJjMmU5LCAjYzQ3MWVkLCAjZjY0ZjU5KTtcXHJcXG59XFxyXFxuXFxyXFxuLnBhY2UucGFjZS1pbmFjdGl2ZSB7XFxyXFxuICB3aWR0aDogMTAwdnc7XFxyXFxuICBvcGFjaXR5OiAwO1xcclxcbn1cXHJcXG5cXHJcXG4ucGFjZS5wYWNlLWluYWN0aXZlIC5wYWNlLXByb2dyZXNzIHtcXHJcXG4gIG1heC13aWR0aDogMTAwdnc7XFxyXFxufVxcclxcblxcclxcbiNwcmVsb2FkZXIge1xcclxcbiAgd2lkdGg6IDEwMCU7XFxyXFxuICBoZWlnaHQ6IDEwMHZoO1xcclxcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXHJcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXHJcXG4gIHotaW5kZXg6IDk5OTk5OTk7XFxyXFxufVxcclxcblxcclxcbiNwcmVsb2FkZXI6YWZ0ZXIsXFxyXFxuI3ByZWxvYWRlcjpiZWZvcmUge1xcclxcbiAgY29udGVudDogXFxcIlxcXCI7XFxyXFxuICBwb3NpdGlvbjogZml4ZWQ7XFxyXFxuICBsZWZ0OiAwO1xcclxcbiAgaGVpZ2h0OiA1MCU7XFxyXFxuICB3aWR0aDogMTAwJTtcXHJcXG4gIGJhY2tncm91bmQ6ICMyNTI1MzE7XFxyXFxuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTksIDEsIDAuMjIsIDEpO1xcclxcbn1cXHJcXG5cXHJcXG4jcHJlbG9hZGVyOmJlZm9yZSB7XFxyXFxuICB0b3A6IDA7XFxyXFxufVxcclxcblxcclxcbiNwcmVsb2FkZXI6YWZ0ZXIge1xcclxcbiAgYm90dG9tOiAwO1xcclxcbn1cXHJcXG5cXHJcXG4jcHJlbG9hZGVyLmlzZG9uZSB7XFxyXFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XFxyXFxuICB0cmFuc2l0aW9uLWRlbGF5OiAxLjVzO1xcclxcbn1cXHJcXG5cXHJcXG4jcHJlbG9hZGVyLmlzZG9uZTphZnRlcixcXHJcXG4jcHJlbG9hZGVyLmlzZG9uZTpiZWZvcmUge1xcclxcbiAgaGVpZ2h0OiAwO1xcclxcbiAgdHJhbnNpdGlvbjogYWxsIDAuN3MgY3ViaWMtYmV6aWVyKDEsIDAsIDAuNTUsIDEpO1xcclxcbiAgdHJhbnNpdGlvbi1kZWxheTogMXM7XFxyXFxufVxcclxcblxcclxcbi5sb2FkaW5nIHtcXHJcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXHJcXG4gIGxlZnQ6IDUwJTtcXHJcXG4gIHRvcDogY2FsYyg1MCUgLSA0MHB4KTtcXHJcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xcclxcbiAgZm9udC13ZWlnaHQ6IDMwMDtcXHJcXG4gIGZvbnQtc2l6ZTogMTNweDtcXHJcXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XFxyXFxuICBsZXR0ZXItc3BhY2luZzogMTBweDtcXHJcXG4gIHotaW5kZXg6IDk5OTk5OTk5OTk7XFxyXFxufVxcclxcblxcclxcbi5sb2FkaW5nLmlzZG9uZSB7XFxyXFxuICB0b3A6IDUwJTtcXHJcXG4gIG9wYWNpdHk6IDA7XFxyXFxuICB0cmFuc2l0aW9uOiBhbGwgMC44cztcXHJcXG4gIHRyYW5zaXRpb24tZGVsYXk6IDAuNXM7XFxyXFxufVxcclxcblxcclxcbi5sb2FkaW5nIHNwYW4ge1xcclxcbiAgYW5pbWF0aW9uOiBsb2FkaW5nIDEuNHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xcclxcbn1cXHJcXG5cXHJcXG4ubG9hZGluZyBzcGFuOm50aC1jaGlsZCgxKSB7XFxyXFxuICBhbmltYXRpb24tZGVsYXk6IDBzO1xcclxcbn1cXHJcXG5cXHJcXG4ubG9hZGluZyBzcGFuOm50aC1jaGlsZCgyKSB7XFxyXFxuICBhbmltYXRpb24tZGVsYXk6IDAuMXM7XFxyXFxufVxcclxcblxcclxcbi5sb2FkaW5nIHNwYW46bnRoLWNoaWxkKDMpIHtcXHJcXG4gIGFuaW1hdGlvbi1kZWxheTogMC4ycztcXHJcXG59XFxyXFxuXFxyXFxuLmxvYWRpbmcgc3BhbjpudGgtY2hpbGQoNCkge1xcclxcbiAgYW5pbWF0aW9uLWRlbGF5OiAwLjNzO1xcclxcbn1cXHJcXG5cXHJcXG4ubG9hZGluZyBzcGFuOm50aC1jaGlsZCg1KSB7XFxyXFxuICBhbmltYXRpb24tZGVsYXk6IDAuNHM7XFxyXFxufVxcclxcblxcclxcbi5sb2FkaW5nIHNwYW46bnRoLWNoaWxkKDYpIHtcXHJcXG4gIGFuaW1hdGlvbi1kZWxheTogMC41cztcXHJcXG59XFxyXFxuXFxyXFxuLmxvYWRpbmcgc3BhbjpudGgtY2hpbGQoNykge1xcclxcbiAgYW5pbWF0aW9uLWRlbGF5OiAwLjZzO1xcclxcbn1cXHJcXG5cXHJcXG5Aa2V5ZnJhbWVzIGxvYWRpbmcge1xcclxcbiAgMCUge1xcclxcbiAgICBvcGFjaXR5OiAxO1xcclxcbiAgfVxcclxcblxcclxcbiAgMTAwJSB7XFxyXFxuICAgIG9wYWNpdHk6IDA7XFxyXFxuICB9XFxyXFxufVxcclxcblxcclxcbi8qID09PT09PT09PT09PT09PT09PT09PT0gWyBFbmQgUHJlbG9hZGVyIF0gPT09PT09PT09PT09PT09PT09PT09PSAqL1wiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly9zcmMvc3R5bGVzL3ByZWxvYWRlci5jc3NcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBQUEsc0VBQXNFO0FBQ3RFO0VBQ0Usb0JBQW9CO0VBQ3BCLHlCQUF5QjtFQUN6QixzQkFBc0I7RUFDdEIscUJBQXFCO0VBQ3JCLGlCQUFpQjtFQUNqQix1QkFBdUI7RUFDdkIsZUFBZTtFQUNmLFlBQVk7RUFDWixNQUFNO0VBQ04sT0FBTztFQUNQLFFBQVE7RUFDUixTQUFTO0VBQ1QsWUFBWTtFQUNaLFdBQVc7RUFDWCxXQUFXO0VBQ1gsZ0JBQWdCO0VBQ2hCLHFDQUFxQztFQUdyQyxrQkFBa0I7QUFDcEI7O0FBRUE7RUFFRSwrQkFBK0I7RUFDL0IsZ0JBQWdCO0VBQ2hCLGVBQWU7RUFDZix1QkFBdUI7RUFDdkIsY0FBYztFQUNkLGtCQUFrQjtFQUNsQixNQUFNO0VBQ04sV0FBVztFQUNYLFlBQVk7RUFDWixXQUFXO0VBQ1gsbUJBQW1CO0VBV25CLGdFQUFnRTtBQUNsRTs7QUFFQTtFQUNFLFlBQVk7RUFDWixVQUFVO0FBQ1o7O0FBRUE7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxXQUFXO0VBQ1gsYUFBYTtFQUNiLGdCQUFnQjtFQUNoQixlQUFlO0VBQ2YsZ0JBQWdCO0FBQ2xCOztBQUVBOztFQUVFLFdBQVc7RUFDWCxlQUFlO0VBQ2YsT0FBTztFQUNQLFdBQVc7RUFDWCxXQUFXO0VBQ1gsbUJBQW1CO0VBR25CLDBEQUEwRDtBQUM1RDs7QUFFQTtFQUNFLE1BQU07QUFDUjs7QUFFQTtFQUNFLFNBQVM7QUFDWDs7QUFFQTtFQUNFLGtCQUFrQjtFQUdsQixzQkFBc0I7QUFDeEI7O0FBRUE7O0VBRUUsU0FBUztFQUdULGdEQUFnRDtFQUdoRCxvQkFBb0I7QUFDdEI7O0FBRUE7RUFDRSxlQUFlO0VBQ2YsU0FBUztFQUNULHFCQUFxQjtFQUdyQiw0Q0FBNEM7RUFDNUMsZ0JBQWdCO0VBQ2hCLGVBQWU7RUFDZix5QkFBeUI7RUFDekIsb0JBQW9CO0VBQ3BCLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLFFBQVE7RUFDUixVQUFVO0VBR1Ysb0JBQW9CO0VBR3BCLHNCQUFzQjtBQUN4Qjs7QUFFQTtFQUVFLDBDQUEwQztBQUM1Qzs7QUFFQTtFQUVFLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUVFLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUVFLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUVFLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUVFLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUVFLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUVFLHFCQUFxQjtBQUN2Qjs7QUFZQTtFQUNFO0lBQ0UsVUFBVTtFQUNaOztFQUVBO0lBQ0UsVUFBVTtFQUNaO0FBQ0Y7O0FBRUEsb0VBQW9FXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIi8qID09PT09PT09PT09PT09PT09PT09PT0gWyBTdGFydCBQcmVsb2FkZXIgXSA9PT09PT09PT09PT09PT09PT09PT09ICovXFxyXFxuLnBhY2Uge1xcclxcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxyXFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcclxcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcXHJcXG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcXHJcXG4gIHVzZXItc2VsZWN0OiBub25lO1xcclxcbiAgei1pbmRleDogOTk5OTk5OTk5OTk5OTk7XFxyXFxuICBwb3NpdGlvbjogZml4ZWQ7XFxyXFxuICBtYXJnaW46IGF1dG87XFxyXFxuICB0b3A6IDA7XFxyXFxuICBsZWZ0OiAwO1xcclxcbiAgcmlnaHQ6IDA7XFxyXFxuICBib3R0b206IDA7XFxyXFxuICB3aWR0aDogNDAwcHg7XFxyXFxuICBib3JkZXI6IDBweDtcXHJcXG4gIGhlaWdodDogMXB4O1xcclxcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXHJcXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSk7XFxyXFxuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAxcztcXHJcXG4gIC1vLXRyYW5zaXRpb246IGFsbCAxcztcXHJcXG4gIHRyYW5zaXRpb246IGFsbCAxcztcXHJcXG59XFxyXFxuXFxyXFxuLnBhY2UgLnBhY2UtcHJvZ3Jlc3Mge1xcclxcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xcclxcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcXHJcXG4gIG1heC13aWR0aDogMzAwcHg7XFxyXFxuICBwb3NpdGlvbjogZml4ZWQ7XFxyXFxuICB6LWluZGV4OiA5OTk5OTk5OTk5OTk5OTtcXHJcXG4gIGRpc3BsYXk6IGJsb2NrO1xcclxcbiAgcG9zaXRpb246IGFic29sdXRlO1xcclxcbiAgdG9wOiAwO1xcclxcbiAgcmlnaHQ6IDEwMCU7XFxyXFxuICBoZWlnaHQ6IDEwMCU7XFxyXFxuICB3aWR0aDogMTAwJTtcXHJcXG4gIGJhY2tncm91bmQ6ICMxMmMyZTk7XFxyXFxuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KFxcclxcbiAgICBsaW5lYXIsXFxyXFxuICAgIGxlZnQgdG9wLFxcclxcbiAgICByaWdodCB0b3AsXFxyXFxuICAgIGZyb20oIzEyYzJlOSksXFxyXFxuICAgIGNvbG9yLXN0b3AoI2M0NzFlZCksXFxyXFxuICAgIHRvKCNmNjRmNTkpXFxyXFxuICApO1xcclxcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgIzEyYzJlOSwgI2M0NzFlZCwgI2Y2NGY1OSk7XFxyXFxuICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQobGVmdCwgIzEyYzJlOSwgI2M0NzFlZCwgI2Y2NGY1OSk7XFxyXFxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICMxMmMyZTksICNjNDcxZWQsICNmNjRmNTkpO1xcclxcbn1cXHJcXG5cXHJcXG4ucGFjZS5wYWNlLWluYWN0aXZlIHtcXHJcXG4gIHdpZHRoOiAxMDB2dztcXHJcXG4gIG9wYWNpdHk6IDA7XFxyXFxufVxcclxcblxcclxcbi5wYWNlLnBhY2UtaW5hY3RpdmUgLnBhY2UtcHJvZ3Jlc3Mge1xcclxcbiAgbWF4LXdpZHRoOiAxMDB2dztcXHJcXG59XFxyXFxuXFxyXFxuI3ByZWxvYWRlciB7XFxyXFxuICB3aWR0aDogMTAwJTtcXHJcXG4gIGhlaWdodDogMTAwdmg7XFxyXFxuICBvdmVyZmxvdzogaGlkZGVuO1xcclxcbiAgcG9zaXRpb246IGZpeGVkO1xcclxcbiAgei1pbmRleDogOTk5OTk5OTtcXHJcXG59XFxyXFxuXFxyXFxuI3ByZWxvYWRlcjphZnRlcixcXHJcXG4jcHJlbG9hZGVyOmJlZm9yZSB7XFxyXFxuICBjb250ZW50OiBcXFwiXFxcIjtcXHJcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXHJcXG4gIGxlZnQ6IDA7XFxyXFxuICBoZWlnaHQ6IDUwJTtcXHJcXG4gIHdpZHRoOiAxMDAlO1xcclxcbiAgYmFja2dyb3VuZDogIzI1MjUzMTtcXHJcXG4gIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE5LCAxLCAwLjIyLCAxKTtcXHJcXG4gIC1vLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xOSwgMSwgMC4yMiwgMSk7XFxyXFxuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTksIDEsIDAuMjIsIDEpO1xcclxcbn1cXHJcXG5cXHJcXG4jcHJlbG9hZGVyOmJlZm9yZSB7XFxyXFxuICB0b3A6IDA7XFxyXFxufVxcclxcblxcclxcbiNwcmVsb2FkZXI6YWZ0ZXIge1xcclxcbiAgYm90dG9tOiAwO1xcclxcbn1cXHJcXG5cXHJcXG4jcHJlbG9hZGVyLmlzZG9uZSB7XFxyXFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XFxyXFxuICAtd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6IDEuNXM7XFxyXFxuICAtby10cmFuc2l0aW9uLWRlbGF5OiAxLjVzO1xcclxcbiAgdHJhbnNpdGlvbi1kZWxheTogMS41cztcXHJcXG59XFxyXFxuXFxyXFxuI3ByZWxvYWRlci5pc2RvbmU6YWZ0ZXIsXFxyXFxuI3ByZWxvYWRlci5pc2RvbmU6YmVmb3JlIHtcXHJcXG4gIGhlaWdodDogMDtcXHJcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuN3MgY3ViaWMtYmV6aWVyKDEsIDAsIDAuNTUsIDEpO1xcclxcbiAgLW8tdHJhbnNpdGlvbjogYWxsIDAuN3MgY3ViaWMtYmV6aWVyKDEsIDAsIDAuNTUsIDEpO1xcclxcbiAgdHJhbnNpdGlvbjogYWxsIDAuN3MgY3ViaWMtYmV6aWVyKDEsIDAsIDAuNTUsIDEpO1xcclxcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5OiAxcztcXHJcXG4gIC1vLXRyYW5zaXRpb24tZGVsYXk6IDFzO1xcclxcbiAgdHJhbnNpdGlvbi1kZWxheTogMXM7XFxyXFxufVxcclxcblxcclxcbi5sb2FkaW5nIHtcXHJcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXHJcXG4gIGxlZnQ6IDUwJTtcXHJcXG4gIHRvcDogY2FsYyg1MCUgLSA0MHB4KTtcXHJcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XFxyXFxuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XFxyXFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcXHJcXG4gIGZvbnQtd2VpZ2h0OiAzMDA7XFxyXFxuICBmb250LXNpemU6IDEzcHg7XFxyXFxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xcclxcbiAgbGV0dGVyLXNwYWNpbmc6IDEwcHg7XFxyXFxuICB6LWluZGV4OiA5OTk5OTk5OTk5O1xcclxcbn1cXHJcXG5cXHJcXG4ubG9hZGluZy5pc2RvbmUge1xcclxcbiAgdG9wOiA1MCU7XFxyXFxuICBvcGFjaXR5OiAwO1xcclxcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC44cztcXHJcXG4gIC1vLXRyYW5zaXRpb246IGFsbCAwLjhzO1xcclxcbiAgdHJhbnNpdGlvbjogYWxsIDAuOHM7XFxyXFxuICAtd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6IDAuNXM7XFxyXFxuICAtby10cmFuc2l0aW9uLWRlbGF5OiAwLjVzO1xcclxcbiAgdHJhbnNpdGlvbi1kZWxheTogMC41cztcXHJcXG59XFxyXFxuXFxyXFxuLmxvYWRpbmcgc3BhbiB7XFxyXFxuICAtd2Via2l0LWFuaW1hdGlvbjogbG9hZGluZyAxLjRzIGluZmluaXRlIGFsdGVybmF0ZTtcXHJcXG4gIGFuaW1hdGlvbjogbG9hZGluZyAxLjRzIGluZmluaXRlIGFsdGVybmF0ZTtcXHJcXG59XFxyXFxuXFxyXFxuLmxvYWRpbmcgc3BhbjpudGgtY2hpbGQoMSkge1xcclxcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDBzO1xcclxcbiAgYW5pbWF0aW9uLWRlbGF5OiAwcztcXHJcXG59XFxyXFxuXFxyXFxuLmxvYWRpbmcgc3BhbjpudGgtY2hpbGQoMikge1xcclxcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDAuMXM7XFxyXFxuICBhbmltYXRpb24tZGVsYXk6IDAuMXM7XFxyXFxufVxcclxcblxcclxcbi5sb2FkaW5nIHNwYW46bnRoLWNoaWxkKDMpIHtcXHJcXG4gIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAwLjJzO1xcclxcbiAgYW5pbWF0aW9uLWRlbGF5OiAwLjJzO1xcclxcbn1cXHJcXG5cXHJcXG4ubG9hZGluZyBzcGFuOm50aC1jaGlsZCg0KSB7XFxyXFxuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMC4zcztcXHJcXG4gIGFuaW1hdGlvbi1kZWxheTogMC4zcztcXHJcXG59XFxyXFxuXFxyXFxuLmxvYWRpbmcgc3BhbjpudGgtY2hpbGQoNSkge1xcclxcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDAuNHM7XFxyXFxuICBhbmltYXRpb24tZGVsYXk6IDAuNHM7XFxyXFxufVxcclxcblxcclxcbi5sb2FkaW5nIHNwYW46bnRoLWNoaWxkKDYpIHtcXHJcXG4gIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAwLjVzO1xcclxcbiAgYW5pbWF0aW9uLWRlbGF5OiAwLjVzO1xcclxcbn1cXHJcXG5cXHJcXG4ubG9hZGluZyBzcGFuOm50aC1jaGlsZCg3KSB7XFxyXFxuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMC42cztcXHJcXG4gIGFuaW1hdGlvbi1kZWxheTogMC42cztcXHJcXG59XFxyXFxuXFxyXFxuQC13ZWJraXQta2V5ZnJhbWVzIGxvYWRpbmcge1xcclxcbiAgMCUge1xcclxcbiAgICBvcGFjaXR5OiAxO1xcclxcbiAgfVxcclxcblxcclxcbiAgMTAwJSB7XFxyXFxuICAgIG9wYWNpdHk6IDA7XFxyXFxuICB9XFxyXFxufVxcclxcblxcclxcbkBrZXlmcmFtZXMgbG9hZGluZyB7XFxyXFxuICAwJSB7XFxyXFxuICAgIG9wYWNpdHk6IDE7XFxyXFxuICB9XFxyXFxuXFxyXFxuICAxMDAlIHtcXHJcXG4gICAgb3BhY2l0eTogMDtcXHJcXG4gIH1cXHJcXG59XFxyXFxuXFxyXFxuLyogPT09PT09PT09PT09PT09PT09PT09PSBbIEVuZCBQcmVsb2FkZXIgXSA9PT09PT09PT09PT09PT09PT09PT09ICovXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[9].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[9].use[2]!./src/styles/preloader.css\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js": +/*!************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js ***! + \************************************************************************************/ +/***/ (function(module) { + +"use strict"; +eval("\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/ // css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function(useSourceMap) {\n var list = [] // return the list of modules as css string\n ;\n list.toString = function toString() {\n return this.map(function(item) {\n var content = cssWithMappingToString(item, useSourceMap);\n if (item[2]) {\n return '@media '.concat(item[2], ' {').concat(content, '}');\n }\n return content;\n }).join('');\n } // import a list of modules into the list\n ;\n // eslint-disable-next-line func-names\n list.i = function(modules, mediaQuery, dedupe) {\n if (typeof modules === 'string') {\n // eslint-disable-next-line no-param-reassign\n modules = [\n [\n null,\n modules,\n ''\n ]\n ];\n }\n var alreadyImportedModules = {\n };\n if (dedupe) {\n for(var i = 0; i < this.length; i++){\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for(var _i = 0; _i < modules.length; _i++){\n var item = [].concat(modules[_i]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = ''.concat(mediaQuery, ' and ').concat(item[2]);\n }\n }\n list.push(item);\n }\n };\n return list;\n};\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || '' // eslint-disable-next-line prefer-destructuring\n ;\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function(source) {\n return '/*# sourceURL='.concat(cssMapping.sourceRoot || '').concat(source, ' */');\n });\n return [\n content\n ].concat(sourceURLs).concat([\n sourceMapping\n ]).join('\\n');\n }\n return [\n content\n ].join('\\n');\n} // Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,'.concat(base64);\n return '/*# '.concat(data, ' */');\n}\n\n//# sourceMappingURL=api.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9ydW50aW1lL2FwaS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9EQUFvRCxxQkFBcUI7QUFDekU7QUFDQTtBQUNBLFNBQVM7QUFDVCxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQkFBMkIsaUJBQWlCO0FBQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLHFCQUFxQjtBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBO0FBQ0EsdURBQXVELGNBQWM7QUFDckU7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9ydW50aW1lL2FwaS5qcz9jYTRkIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuLypcbiAgTUlUIExpY2Vuc2UgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHBcbiAgQXV0aG9yIFRvYmlhcyBLb3BwZXJzIEBzb2tyYVxuKi8gLy8gY3NzIGJhc2UgY29kZSwgaW5qZWN0ZWQgYnkgdGhlIGNzcy1sb2FkZXJcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBmdW5jLW5hbWVzXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKHVzZVNvdXJjZU1hcCkge1xuICAgIHZhciBsaXN0ID0gW10gLy8gcmV0dXJuIHRoZSBsaXN0IG9mIG1vZHVsZXMgYXMgY3NzIHN0cmluZ1xuICAgIDtcbiAgICBsaXN0LnRvU3RyaW5nID0gZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1hcChmdW5jdGlvbihpdGVtKSB7XG4gICAgICAgICAgICB2YXIgY29udGVudCA9IGNzc1dpdGhNYXBwaW5nVG9TdHJpbmcoaXRlbSwgdXNlU291cmNlTWFwKTtcbiAgICAgICAgICAgIGlmIChpdGVtWzJdKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdAbWVkaWEgJy5jb25jYXQoaXRlbVsyXSwgJyB7JykuY29uY2F0KGNvbnRlbnQsICd9Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gY29udGVudDtcbiAgICAgICAgfSkuam9pbignJyk7XG4gICAgfSAvLyBpbXBvcnQgYSBsaXN0IG9mIG1vZHVsZXMgaW50byB0aGUgbGlzdFxuICAgIDtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZnVuYy1uYW1lc1xuICAgIGxpc3QuaSA9IGZ1bmN0aW9uKG1vZHVsZXMsIG1lZGlhUXVlcnksIGRlZHVwZSkge1xuICAgICAgICBpZiAodHlwZW9mIG1vZHVsZXMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgICAgICAgIG1vZHVsZXMgPSBbXG4gICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgICAgICBtb2R1bGVzLFxuICAgICAgICAgICAgICAgICAgICAnJ1xuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIF07XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGFscmVhZHlJbXBvcnRlZE1vZHVsZXMgPSB7XG4gICAgICAgIH07XG4gICAgICAgIGlmIChkZWR1cGUpIHtcbiAgICAgICAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLWRlc3RydWN0dXJpbmdcbiAgICAgICAgICAgICAgICB2YXIgaWQgPSB0aGlzW2ldWzBdO1xuICAgICAgICAgICAgICAgIGlmIChpZCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGFscmVhZHlJbXBvcnRlZE1vZHVsZXNbaWRdID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZm9yKHZhciBfaSA9IDA7IF9pIDwgbW9kdWxlcy5sZW5ndGg7IF9pKyspe1xuICAgICAgICAgICAgdmFyIGl0ZW0gPSBbXS5jb25jYXQobW9kdWxlc1tfaV0pO1xuICAgICAgICAgICAgaWYgKGRlZHVwZSAmJiBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzW2l0ZW1bMF1dKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWVkaWFRdWVyeSkge1xuICAgICAgICAgICAgICAgIGlmICghaXRlbVsyXSkge1xuICAgICAgICAgICAgICAgICAgICBpdGVtWzJdID0gbWVkaWFRdWVyeTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpdGVtWzJdID0gJycuY29uY2F0KG1lZGlhUXVlcnksICcgYW5kICcpLmNvbmNhdChpdGVtWzJdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsaXN0LnB1c2goaXRlbSk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIHJldHVybiBsaXN0O1xufTtcbmZ1bmN0aW9uIGNzc1dpdGhNYXBwaW5nVG9TdHJpbmcoaXRlbSwgdXNlU291cmNlTWFwKSB7XG4gICAgdmFyIGNvbnRlbnQgPSBpdGVtWzFdIHx8ICcnIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItZGVzdHJ1Y3R1cmluZ1xuICAgIDtcbiAgICB2YXIgY3NzTWFwcGluZyA9IGl0ZW1bM107XG4gICAgaWYgKCFjc3NNYXBwaW5nKSB7XG4gICAgICAgIHJldHVybiBjb250ZW50O1xuICAgIH1cbiAgICBpZiAodXNlU291cmNlTWFwICYmIHR5cGVvZiBidG9hID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHZhciBzb3VyY2VNYXBwaW5nID0gdG9Db21tZW50KGNzc01hcHBpbmcpO1xuICAgICAgICB2YXIgc291cmNlVVJMcyA9IGNzc01hcHBpbmcuc291cmNlcy5tYXAoZnVuY3Rpb24oc291cmNlKSB7XG4gICAgICAgICAgICByZXR1cm4gJy8qIyBzb3VyY2VVUkw9Jy5jb25jYXQoY3NzTWFwcGluZy5zb3VyY2VSb290IHx8ICcnKS5jb25jYXQoc291cmNlLCAnICovJyk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgY29udGVudFxuICAgICAgICBdLmNvbmNhdChzb3VyY2VVUkxzKS5jb25jYXQoW1xuICAgICAgICAgICAgc291cmNlTWFwcGluZ1xuICAgICAgICBdKS5qb2luKCdcXG4nKTtcbiAgICB9XG4gICAgcmV0dXJuIFtcbiAgICAgICAgY29udGVudFxuICAgIF0uam9pbignXFxuJyk7XG59IC8vIEFkYXB0ZWQgZnJvbSBjb252ZXJ0LXNvdXJjZS1tYXAgKE1JVClcbmZ1bmN0aW9uIHRvQ29tbWVudChzb3VyY2VNYXApIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZWZcbiAgICB2YXIgYmFzZTY0ID0gYnRvYSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoc291cmNlTWFwKSkpKTtcbiAgICB2YXIgZGF0YSA9ICdzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCwnLmNvbmNhdChiYXNlNjQpO1xuICAgIHJldHVybiAnLyojICcuY29uY2F0KGRhdGEsICcgKi8nKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YXBpLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2F_app&absolutePagePath=private-next-pages%2F_app!": +/*!*******************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2F_app&absolutePagePath=private-next-pages%2F_app! ***! + \*******************************************************************************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/_app\",\n function () {\n return __webpack_require__(/*! private-next-pages/_app */ \"./src/pages/_app.js\");\n }\n ]);\n if(true) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/_app\"])\n });\n }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWNsaWVudC1wYWdlcy1sb2FkZXIuanM/cGFnZT0lMkZfYXBwJmFic29sdXRlUGFnZVBhdGg9cHJpdmF0ZS1uZXh0LXBhZ2VzJTJGX2FwcCEuanMiLCJtYXBwaW5ncyI6IjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsbUJBQU8sQ0FBQyxvREFBeUI7QUFDaEQ7QUFDQTtBQUNBLE9BQU8sSUFBVTtBQUNqQixNQUFNLFVBQVU7QUFDaEI7QUFDQSxPQUFPO0FBQ1A7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvPzYzZWQiXSwic291cmNlc0NvbnRlbnQiOlsiXG4gICAgKHdpbmRvdy5fX05FWFRfUCA9IHdpbmRvdy5fX05FWFRfUCB8fCBbXSkucHVzaChbXG4gICAgICBcIi9fYXBwXCIsXG4gICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiByZXF1aXJlKFwicHJpdmF0ZS1uZXh0LXBhZ2VzL19hcHBcIik7XG4gICAgICB9XG4gICAgXSk7XG4gICAgaWYobW9kdWxlLmhvdCkge1xuICAgICAgbW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgd2luZG93Ll9fTkVYVF9QLnB1c2goW1wiL19hcHBcIl0pXG4gICAgICB9KTtcbiAgICB9XG4gICJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2F_app&absolutePagePath=private-next-pages%2F_app!\n"); + +/***/ }), + +/***/ "./src/styles/main.scss": +/*!******************************!*\ + !*** ./src/styles/main.scss ***! + \******************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var api = __webpack_require__(/*! !../../node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js */ \"./node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js\");\n var content = __webpack_require__(/*! !!../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[10].use[1]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[10].use[2]!../../node_modules/next/dist/compiled/resolve-url-loader/index.js??ruleSet[1].rules[2].oneOf[10].use[3]!../../node_modules/next/dist/compiled/sass-loader/cjs.js??ruleSet[1].rules[2].oneOf[10].use[4]!./main.scss */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[10].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[10].use[2]!./node_modules/next/dist/compiled/resolve-url-loader/index.js??ruleSet[1].rules[2].oneOf[10].use[3]!./node_modules/next/dist/compiled/sass-loader/cjs.js??ruleSet[1].rules[2].oneOf[10].use[4]!./src/styles/main.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = function(element) {\n // These elements should always exist. If they do not,\n // this code should fail.\n var anchorElement = document.querySelector('#__next_css__DO_NOT_USE__');\n var parentNode = anchorElement.parentNode// Normally <head>\n ;\n // Each style tag should be placed right before our\n // anchor. By inserting before and not after, we do not\n // need to track the last inserted element.\n parentNode.insertBefore(element, anchorElement);\n };\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\nif (true) {\n if (!content.locals || module.hot.invalidate) {\n var isEqualLocals = function isEqualLocals(a, b, isNamedExport) {\n if (!a && b || a && !b) {\n return false;\n }\n let p;\n for(p in a){\n if (isNamedExport && p === 'default') {\n continue;\n }\n if (a[p] !== b[p]) {\n return false;\n }\n }\n for(p in b){\n if (isNamedExport && p === 'default') {\n continue;\n }\n if (!a[p]) {\n return false;\n }\n }\n return true;\n};\n var oldLocals = content.locals;\n\n module.hot.accept(\n /*! !!../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[10].use[1]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[10].use[2]!../../node_modules/next/dist/compiled/resolve-url-loader/index.js??ruleSet[1].rules[2].oneOf[10].use[3]!../../node_modules/next/dist/compiled/sass-loader/cjs.js??ruleSet[1].rules[2].oneOf[10].use[4]!./main.scss */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[10].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[10].use[2]!./node_modules/next/dist/compiled/resolve-url-loader/index.js??ruleSet[1].rules[2].oneOf[10].use[3]!./node_modules/next/dist/compiled/sass-loader/cjs.js??ruleSet[1].rules[2].oneOf[10].use[4]!./src/styles/main.scss\",\n function () {\n content = __webpack_require__(/*! !!../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[10].use[1]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[10].use[2]!../../node_modules/next/dist/compiled/resolve-url-loader/index.js??ruleSet[1].rules[2].oneOf[10].use[3]!../../node_modules/next/dist/compiled/sass-loader/cjs.js??ruleSet[1].rules[2].oneOf[10].use[4]!./main.scss */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[10].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[10].use[2]!./node_modules/next/dist/compiled/resolve-url-loader/index.js??ruleSet[1].rules[2].oneOf[10].use[3]!./node_modules/next/dist/compiled/sass-loader/cjs.js??ruleSet[1].rules[2].oneOf[10].use[4]!./src/styles/main.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\n if (!isEqualLocals(oldLocals, content.locals)) {\n module.hot.invalidate();\n\n return;\n }\n\n oldLocals = content.locals;\n\n update(content);\n }\n )\n }\n\n module.hot.dispose(function() {\n update();\n });\n}\n\nmodule.exports = content.locals || {};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvc3R5bGVzL21haW4uc2Nzcy5qcyIsIm1hcHBpbmdzIjoiQUFBQSxVQUFVLG1CQUFPLENBQUMsdU5BQTJHO0FBQzdILDBCQUEwQixtQkFBTyxDQUFDLHUzQkFBNGI7O0FBRTlkOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7OztBQUdBLElBQUksSUFBVTtBQUNkLHlCQUF5QixVQUFVO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxJQUFJLGlCQUFpQjtBQUNyQixNQUFNLHUzQkFBNGI7QUFDbGM7QUFDQSxrQkFBa0IsbUJBQU8sQ0FBQyx1M0JBQTRiOztBQUV0ZDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxnQkFBZ0IsVUFBVTs7QUFFMUI7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxFQUFFLFVBQVU7QUFDWjtBQUNBLEdBQUc7QUFDSDs7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvc3R5bGVzL21haW4uc2Nzcz9hMzU5Il0sInNvdXJjZXNDb250ZW50IjpbInZhciBhcGkgPSByZXF1aXJlKFwiIS4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtc3R5bGUtbG9hZGVyL3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCIpO1xuICAgICAgICAgICAgdmFyIGNvbnRlbnQgPSByZXF1aXJlKFwiISEuLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZlsxMF0udXNlWzFdIS4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZlsxMF0udXNlWzJdIS4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcmVzb2x2ZS11cmwtbG9hZGVyL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzEwXS51c2VbM10hLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9zYXNzLWxvYWRlci9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbMTBdLnVzZVs0XSEuL21haW4uc2Nzc1wiKTtcblxuICAgICAgICAgICAgY29udGVudCA9IGNvbnRlbnQuX19lc01vZHVsZSA/IGNvbnRlbnQuZGVmYXVsdCA6IGNvbnRlbnQ7XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgY29udGVudCA9IFtbbW9kdWxlLmlkLCBjb250ZW50LCAnJ11dO1xuICAgICAgICAgICAgfVxuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLmluc2VydCA9IGZ1bmN0aW9uKGVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAvLyBUaGVzZSBlbGVtZW50cyBzaG91bGQgYWx3YXlzIGV4aXN0LiBJZiB0aGV5IGRvIG5vdCxcbiAgICAgICAgICAgICAgICAvLyB0aGlzIGNvZGUgc2hvdWxkIGZhaWwuXG4gICAgICAgICAgICAgICAgdmFyIGFuY2hvckVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjX19uZXh0X2Nzc19fRE9fTk9UX1VTRV9fJyk7XG4gICAgICAgICAgICAgICAgdmFyIHBhcmVudE5vZGUgPSBhbmNob3JFbGVtZW50LnBhcmVudE5vZGUvLyBOb3JtYWxseSA8aGVhZD5cbiAgICAgICAgICAgICAgICA7XG4gICAgICAgICAgICAgICAgLy8gRWFjaCBzdHlsZSB0YWcgc2hvdWxkIGJlIHBsYWNlZCByaWdodCBiZWZvcmUgb3VyXG4gICAgICAgICAgICAgICAgLy8gYW5jaG9yLiBCeSBpbnNlcnRpbmcgYmVmb3JlIGFuZCBub3QgYWZ0ZXIsIHdlIGRvIG5vdFxuICAgICAgICAgICAgICAgIC8vIG5lZWQgdG8gdHJhY2sgdGhlIGxhc3QgaW5zZXJ0ZWQgZWxlbWVudC5cbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlLmluc2VydEJlZm9yZShlbGVtZW50LCBhbmNob3JFbGVtZW50KTtcbiAgICAgICAgICAgIH07XG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xuXG52YXIgdXBkYXRlID0gYXBpKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cbmlmIChtb2R1bGUuaG90KSB7XG4gIGlmICghY29udGVudC5sb2NhbHMgfHwgbW9kdWxlLmhvdC5pbnZhbGlkYXRlKSB7XG4gICAgdmFyIGlzRXF1YWxMb2NhbHMgPSBmdW5jdGlvbiBpc0VxdWFsTG9jYWxzKGEsIGIsIGlzTmFtZWRFeHBvcnQpIHtcbiAgICBpZiAoIWEgJiYgYiB8fCBhICYmICFiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgbGV0IHA7XG4gICAgZm9yKHAgaW4gYSl7XG4gICAgICAgIGlmIChpc05hbWVkRXhwb3J0ICYmIHAgPT09ICdkZWZhdWx0Jykge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFbcF0gIT09IGJbcF0pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmb3IocCBpbiBiKXtcbiAgICAgICAgaWYgKGlzTmFtZWRFeHBvcnQgJiYgcCA9PT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWFbcF0pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn07XG4gICAgdmFyIG9sZExvY2FscyA9IGNvbnRlbnQubG9jYWxzO1xuXG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoXG4gICAgICBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvY3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbMTBdLnVzZVsxXSEuLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbMTBdLnVzZVsyXSEuLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3Jlc29sdmUtdXJsLWxvYWRlci9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZlsxMF0udXNlWzNdIS4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvc2Fzcy1sb2FkZXIvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzEwXS51c2VbNF0hLi9tYWluLnNjc3NcIixcbiAgICAgIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29udGVudCA9IHJlcXVpcmUoXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL2Nzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzEwXS51c2VbMV0hLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzEwXS51c2VbMl0hLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9yZXNvbHZlLXVybC1sb2FkZXIvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbMTBdLnVzZVszXSEuLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3Nhc3MtbG9hZGVyL2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZlsxMF0udXNlWzRdIS4vbWFpbi5zY3NzXCIpO1xuXG4gICAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50Ll9fZXNNb2R1bGUgPyBjb250ZW50LmRlZmF1bHQgOiBjb250ZW50O1xuXG4gICAgICAgICAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBjb250ZW50ID0gW1ttb2R1bGUuaWQsIGNvbnRlbnQsICcnXV07XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBpZiAoIWlzRXF1YWxMb2NhbHMob2xkTG9jYWxzLCBjb250ZW50LmxvY2FscykpIHtcbiAgICAgICAgICAgICAgICBtb2R1bGUuaG90LmludmFsaWRhdGUoKTtcblxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIG9sZExvY2FscyA9IGNvbnRlbnQubG9jYWxzO1xuXG4gICAgICAgICAgICAgIHVwZGF0ZShjb250ZW50KTtcbiAgICAgIH1cbiAgICApXG4gIH1cblxuICBtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24oKSB7XG4gICAgdXBkYXRlKCk7XG4gIH0pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNvbnRlbnQubG9jYWxzIHx8IHt9OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/styles/main.scss\n"); + +/***/ }), + +/***/ "./src/styles/preloader.css": +/*!**********************************!*\ + !*** ./src/styles/preloader.css ***! + \**********************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var api = __webpack_require__(/*! !../../node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js */ \"./node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js\");\n var content = __webpack_require__(/*! !!../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[9].use[1]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[9].use[2]!./preloader.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[9].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[9].use[2]!./src/styles/preloader.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = function(element) {\n // These elements should always exist. If they do not,\n // this code should fail.\n var anchorElement = document.querySelector('#__next_css__DO_NOT_USE__');\n var parentNode = anchorElement.parentNode// Normally <head>\n ;\n // Each style tag should be placed right before our\n // anchor. By inserting before and not after, we do not\n // need to track the last inserted element.\n parentNode.insertBefore(element, anchorElement);\n };\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\nif (true) {\n if (!content.locals || module.hot.invalidate) {\n var isEqualLocals = function isEqualLocals(a, b, isNamedExport) {\n if (!a && b || a && !b) {\n return false;\n }\n let p;\n for(p in a){\n if (isNamedExport && p === 'default') {\n continue;\n }\n if (a[p] !== b[p]) {\n return false;\n }\n }\n for(p in b){\n if (isNamedExport && p === 'default') {\n continue;\n }\n if (!a[p]) {\n return false;\n }\n }\n return true;\n};\n var oldLocals = content.locals;\n\n module.hot.accept(\n /*! !!../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[9].use[1]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[9].use[2]!./preloader.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[9].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[9].use[2]!./src/styles/preloader.css\",\n function () {\n content = __webpack_require__(/*! !!../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[9].use[1]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[9].use[2]!./preloader.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[9].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[9].use[2]!./src/styles/preloader.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\n if (!isEqualLocals(oldLocals, content.locals)) {\n module.hot.invalidate();\n\n return;\n }\n\n oldLocals = content.locals;\n\n update(content);\n }\n )\n }\n\n module.hot.dispose(function() {\n update();\n });\n}\n\nmodule.exports = content.locals || {};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvc3R5bGVzL3ByZWxvYWRlci5jc3MuanMiLCJtYXBwaW5ncyI6IkFBQUEsVUFBVSxtQkFBTyxDQUFDLHVOQUEyRztBQUM3SCwwQkFBMEIsbUJBQU8sQ0FBQyxxZkFBdVA7O0FBRXpSOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7OztBQUdBLElBQUksSUFBVTtBQUNkLHlCQUF5QixVQUFVO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxJQUFJLGlCQUFpQjtBQUNyQixNQUFNLHFmQUF1UDtBQUM3UDtBQUNBLGtCQUFrQixtQkFBTyxDQUFDLHFmQUF1UDs7QUFFalI7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsZ0JBQWdCLFVBQVU7O0FBRTFCO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsRUFBRSxVQUFVO0FBQ1o7QUFDQSxHQUFHO0FBQ0g7O0FBRUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL3N0eWxlcy9wcmVsb2FkZXIuY3NzP2QxY2MiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGFwaSA9IHJlcXVpcmUoXCIhLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvbmV4dC1zdHlsZS1sb2FkZXIvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIik7XG4gICAgICAgICAgICB2YXIgY29udGVudCA9IHJlcXVpcmUoXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL2Nzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzldLnVzZVsxXSEuLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOV0udXNlWzJdIS4vcHJlbG9hZGVyLmNzc1wiKTtcblxuICAgICAgICAgICAgY29udGVudCA9IGNvbnRlbnQuX19lc01vZHVsZSA/IGNvbnRlbnQuZGVmYXVsdCA6IGNvbnRlbnQ7XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgY29udGVudCA9IFtbbW9kdWxlLmlkLCBjb250ZW50LCAnJ11dO1xuICAgICAgICAgICAgfVxuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLmluc2VydCA9IGZ1bmN0aW9uKGVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAvLyBUaGVzZSBlbGVtZW50cyBzaG91bGQgYWx3YXlzIGV4aXN0LiBJZiB0aGV5IGRvIG5vdCxcbiAgICAgICAgICAgICAgICAvLyB0aGlzIGNvZGUgc2hvdWxkIGZhaWwuXG4gICAgICAgICAgICAgICAgdmFyIGFuY2hvckVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjX19uZXh0X2Nzc19fRE9fTk9UX1VTRV9fJyk7XG4gICAgICAgICAgICAgICAgdmFyIHBhcmVudE5vZGUgPSBhbmNob3JFbGVtZW50LnBhcmVudE5vZGUvLyBOb3JtYWxseSA8aGVhZD5cbiAgICAgICAgICAgICAgICA7XG4gICAgICAgICAgICAgICAgLy8gRWFjaCBzdHlsZSB0YWcgc2hvdWxkIGJlIHBsYWNlZCByaWdodCBiZWZvcmUgb3VyXG4gICAgICAgICAgICAgICAgLy8gYW5jaG9yLiBCeSBpbnNlcnRpbmcgYmVmb3JlIGFuZCBub3QgYWZ0ZXIsIHdlIGRvIG5vdFxuICAgICAgICAgICAgICAgIC8vIG5lZWQgdG8gdHJhY2sgdGhlIGxhc3QgaW5zZXJ0ZWQgZWxlbWVudC5cbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlLmluc2VydEJlZm9yZShlbGVtZW50LCBhbmNob3JFbGVtZW50KTtcbiAgICAgICAgICAgIH07XG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xuXG52YXIgdXBkYXRlID0gYXBpKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cbmlmIChtb2R1bGUuaG90KSB7XG4gIGlmICghY29udGVudC5sb2NhbHMgfHwgbW9kdWxlLmhvdC5pbnZhbGlkYXRlKSB7XG4gICAgdmFyIGlzRXF1YWxMb2NhbHMgPSBmdW5jdGlvbiBpc0VxdWFsTG9jYWxzKGEsIGIsIGlzTmFtZWRFeHBvcnQpIHtcbiAgICBpZiAoIWEgJiYgYiB8fCBhICYmICFiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgbGV0IHA7XG4gICAgZm9yKHAgaW4gYSl7XG4gICAgICAgIGlmIChpc05hbWVkRXhwb3J0ICYmIHAgPT09ICdkZWZhdWx0Jykge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFbcF0gIT09IGJbcF0pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmb3IocCBpbiBiKXtcbiAgICAgICAgaWYgKGlzTmFtZWRFeHBvcnQgJiYgcCA9PT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWFbcF0pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn07XG4gICAgdmFyIG9sZExvY2FscyA9IGNvbnRlbnQubG9jYWxzO1xuXG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoXG4gICAgICBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvY3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOV0udXNlWzFdIS4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls5XS51c2VbMl0hLi9wcmVsb2FkZXIuY3NzXCIsXG4gICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNvbnRlbnQgPSByZXF1aXJlKFwiISEuLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls5XS51c2VbMV0hLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzldLnVzZVsyXSEuL3ByZWxvYWRlci5jc3NcIik7XG5cbiAgICAgICAgICAgICAgY29udGVudCA9IGNvbnRlbnQuX19lc01vZHVsZSA/IGNvbnRlbnQuZGVmYXVsdCA6IGNvbnRlbnQ7XG5cbiAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmICghaXNFcXVhbExvY2FscyhvbGRMb2NhbHMsIGNvbnRlbnQubG9jYWxzKSkge1xuICAgICAgICAgICAgICAgIG1vZHVsZS5ob3QuaW52YWxpZGF0ZSgpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgb2xkTG9jYWxzID0gY29udGVudC5sb2NhbHM7XG5cbiAgICAgICAgICAgICAgdXBkYXRlKGNvbnRlbnQpO1xuICAgICAgfVxuICAgIClcbiAgfVxuXG4gIG1vZHVsZS5ob3QuZGlzcG9zZShmdW5jdGlvbigpIHtcbiAgICB1cGRhdGUoKTtcbiAgfSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY29udGVudC5sb2NhbHMgfHwge307Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/styles/preloader.css\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js": +/*!************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js ***! + \************************************************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("\nconst isOldIE = function isOldIE() {\n let memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n return memo;\n };\n}();\nconst getTarget = function getTarget() {\n const memo = {\n };\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n let styleTarget = document.querySelector(target);\n // Special case to return head of iframe instead of iframe itself\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n memo[target] = styleTarget;\n }\n return memo[target];\n };\n}();\nconst stylesInDom = [];\nfunction getIndexByIdentifier(identifier) {\n let result = -1;\n for(let i = 0; i < stylesInDom.length; i++){\n if (stylesInDom[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n return result;\n}\nfunction modulesToDom(list, options) {\n const idCountMap = {\n };\n const identifiers = [];\n for(let i = 0; i < list.length; i++){\n const item = list[i];\n const id = options.base ? item[0] + options.base : item[0];\n const count = idCountMap[id] || 0;\n const identifier = id + ' ' + count.toString();\n idCountMap[id] = count + 1;\n const index = getIndexByIdentifier(identifier);\n const obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3]\n };\n if (index !== -1) {\n stylesInDom[index].references++;\n stylesInDom[index].updater(obj);\n } else {\n stylesInDom.push({\n identifier: identifier,\n updater: addStyle(obj, options),\n references: 1\n });\n }\n identifiers.push(identifier);\n }\n return identifiers;\n}\nfunction insertStyleElement(options) {\n const style = document.createElement('style');\n const attributes = options.attributes || {\n };\n if (typeof attributes.nonce === 'undefined') {\n const nonce = // eslint-disable-next-line no-undef\n true ? __webpack_require__.nc : 0;\n if (nonce) {\n attributes.nonce = nonce;\n }\n }\n Object.keys(attributes).forEach(function(key) {\n style.setAttribute(key, attributes[key]);\n });\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n const target = getTarget(options.insert || 'head');\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n target.appendChild(style);\n }\n return style;\n}\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */ const replaceText = function replaceText() {\n const textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\nfunction applyToSingletonTag(style, index, remove, obj) {\n const css = remove ? '' : obj.media ? '@media ' + obj.media + ' {' + obj.css + '}' : obj.css;\n // For old IE\n /* istanbul ignore if */ if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n const cssNode = document.createTextNode(css);\n const childNodes = style.childNodes;\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\nfunction applyToTag(style, options, obj) {\n let css = obj.css;\n const media = obj.media;\n const sourceMap = obj.sourceMap;\n if (media) {\n style.setAttribute('media', media);\n } else {\n style.removeAttribute('media');\n }\n if (sourceMap && typeof btoa !== 'undefined') {\n css += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */';\n }\n // For old IE\n /* istanbul ignore if */ if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while(style.firstChild){\n style.removeChild(style.firstChild);\n }\n style.appendChild(document.createTextNode(css));\n }\n}\nlet singleton = null;\nlet singletonCounter = 0;\nfunction addStyle(obj, options) {\n let style;\n let update;\n let remove;\n if (options.singleton) {\n const styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n remove = function() {\n removeStyleElement(style);\n };\n }\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\nmodule.exports = function(list, options) {\n options = options || {\n };\n // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n // tags it will allow on a page\n if (!options.singleton && typeof options.singleton !== 'boolean') {\n options.singleton = isOldIE();\n }\n list = list || [];\n let lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n if (Object.prototype.toString.call(newList) !== '[object Array]') {\n return;\n }\n for(let i = 0; i < lastIdentifiers.length; i++){\n const identifier = lastIdentifiers[i];\n const index = getIndexByIdentifier(identifier);\n stylesInDom[index].references--;\n }\n const newLastIdentifiers = modulesToDom(newList, options);\n for(let i1 = 0; i1 < lastIdentifiers.length; i1++){\n const identifier = lastIdentifiers[i1];\n const index = getIndexByIdentifier(identifier);\n if (stylesInDom[index].references === 0) {\n stylesInDom[index].updater();\n stylesInDom.splice(index, 1);\n }\n }\n lastIdentifiers = newLastIdentifiers;\n };\n};\n\n//# sourceMappingURL=injectStylesIntoStyleTag.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LXN0eWxlLWxvYWRlci9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQix3QkFBd0I7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixpQkFBaUI7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxLQUF3QyxHQUFHLHNCQUFpQixHQUFHLENBQUk7QUFDM0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0EscUVBQXFFLGdCQUFnQjtBQUNyRjtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsNkRBQTZEO0FBQzdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIsNEJBQTRCO0FBQ25EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsNkJBQTZCO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtc3R5bGUtbG9hZGVyL3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzPzI2ZWQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5jb25zdCBpc09sZElFID0gZnVuY3Rpb24gaXNPbGRJRSgpIHtcbiAgICBsZXQgbWVtbztcbiAgICByZXR1cm4gZnVuY3Rpb24gbWVtb3JpemUoKSB7XG4gICAgICAgIGlmICh0eXBlb2YgbWVtbyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIC8vIFRlc3QgZm9yIElFIDw9IDkgYXMgcHJvcG9zZWQgYnkgQnJvd3NlcmhhY2tzXG4gICAgICAgICAgICAvLyBAc2VlIGh0dHA6Ly9icm93c2VyaGFja3MuY29tLyNoYWNrLWU3MWQ4NjkyZjY1MzM0MTczZmVlNzE1YzIyMmNiODA1XG4gICAgICAgICAgICAvLyBUZXN0cyBmb3IgZXhpc3RlbmNlIG9mIHN0YW5kYXJkIGdsb2JhbHMgaXMgdG8gYWxsb3cgc3R5bGUtbG9hZGVyXG4gICAgICAgICAgICAvLyB0byBvcGVyYXRlIGNvcnJlY3RseSBpbnRvIG5vbi1zdGFuZGFyZCBlbnZpcm9ubWVudHNcbiAgICAgICAgICAgIC8vIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3dlYnBhY2stY29udHJpYi9zdHlsZS1sb2FkZXIvaXNzdWVzLzE3N1xuICAgICAgICAgICAgbWVtbyA9IEJvb2xlYW4od2luZG93ICYmIGRvY3VtZW50ICYmIGRvY3VtZW50LmFsbCAmJiAhd2luZG93LmF0b2IpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtZW1vO1xuICAgIH07XG59KCk7XG5jb25zdCBnZXRUYXJnZXQgPSBmdW5jdGlvbiBnZXRUYXJnZXQoKSB7XG4gICAgY29uc3QgbWVtbyA9IHtcbiAgICB9O1xuICAgIHJldHVybiBmdW5jdGlvbiBtZW1vcml6ZSh0YXJnZXQpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBtZW1vW3RhcmdldF0gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBsZXQgc3R5bGVUYXJnZXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHRhcmdldCk7XG4gICAgICAgICAgICAvLyBTcGVjaWFsIGNhc2UgdG8gcmV0dXJuIGhlYWQgb2YgaWZyYW1lIGluc3RlYWQgb2YgaWZyYW1lIGl0c2VsZlxuICAgICAgICAgICAgaWYgKHdpbmRvdy5IVE1MSUZyYW1lRWxlbWVudCAmJiBzdHlsZVRhcmdldCBpbnN0YW5jZW9mIHdpbmRvdy5IVE1MSUZyYW1lRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgd2lsbCB0aHJvdyBhbiBleGNlcHRpb24gaWYgYWNjZXNzIHRvIGlmcmFtZSBpcyBibG9ja2VkXG4gICAgICAgICAgICAgICAgICAgIC8vIGR1ZSB0byBjcm9zcy1vcmlnaW4gcmVzdHJpY3Rpb25zXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlVGFyZ2V0ID0gc3R5bGVUYXJnZXQuY29udGVudERvY3VtZW50LmhlYWQ7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuICAgICAgICAgICAgICAgICAgICBzdHlsZVRhcmdldCA9IG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbWVtb1t0YXJnZXRdID0gc3R5bGVUYXJnZXQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1lbW9bdGFyZ2V0XTtcbiAgICB9O1xufSgpO1xuY29uc3Qgc3R5bGVzSW5Eb20gPSBbXTtcbmZ1bmN0aW9uIGdldEluZGV4QnlJZGVudGlmaWVyKGlkZW50aWZpZXIpIHtcbiAgICBsZXQgcmVzdWx0ID0gLTE7XG4gICAgZm9yKGxldCBpID0gMDsgaSA8IHN0eWxlc0luRG9tLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgaWYgKHN0eWxlc0luRG9tW2ldLmlkZW50aWZpZXIgPT09IGlkZW50aWZpZXIpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IGk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuZnVuY3Rpb24gbW9kdWxlc1RvRG9tKGxpc3QsIG9wdGlvbnMpIHtcbiAgICBjb25zdCBpZENvdW50TWFwID0ge1xuICAgIH07XG4gICAgY29uc3QgaWRlbnRpZmllcnMgPSBbXTtcbiAgICBmb3IobGV0IGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKyl7XG4gICAgICAgIGNvbnN0IGl0ZW0gPSBsaXN0W2ldO1xuICAgICAgICBjb25zdCBpZCA9IG9wdGlvbnMuYmFzZSA/IGl0ZW1bMF0gKyBvcHRpb25zLmJhc2UgOiBpdGVtWzBdO1xuICAgICAgICBjb25zdCBjb3VudCA9IGlkQ291bnRNYXBbaWRdIHx8IDA7XG4gICAgICAgIGNvbnN0IGlkZW50aWZpZXIgPSBpZCArICcgJyArIGNvdW50LnRvU3RyaW5nKCk7XG4gICAgICAgIGlkQ291bnRNYXBbaWRdID0gY291bnQgKyAxO1xuICAgICAgICBjb25zdCBpbmRleCA9IGdldEluZGV4QnlJZGVudGlmaWVyKGlkZW50aWZpZXIpO1xuICAgICAgICBjb25zdCBvYmogPSB7XG4gICAgICAgICAgICBjc3M6IGl0ZW1bMV0sXG4gICAgICAgICAgICBtZWRpYTogaXRlbVsyXSxcbiAgICAgICAgICAgIHNvdXJjZU1hcDogaXRlbVszXVxuICAgICAgICB9O1xuICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICBzdHlsZXNJbkRvbVtpbmRleF0ucmVmZXJlbmNlcysrO1xuICAgICAgICAgICAgc3R5bGVzSW5Eb21baW5kZXhdLnVwZGF0ZXIob2JqKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN0eWxlc0luRG9tLnB1c2goe1xuICAgICAgICAgICAgICAgIGlkZW50aWZpZXI6IGlkZW50aWZpZXIsXG4gICAgICAgICAgICAgICAgdXBkYXRlcjogYWRkU3R5bGUob2JqLCBvcHRpb25zKSxcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VzOiAxXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZGVudGlmaWVycy5wdXNoKGlkZW50aWZpZXIpO1xuICAgIH1cbiAgICByZXR1cm4gaWRlbnRpZmllcnM7XG59XG5mdW5jdGlvbiBpbnNlcnRTdHlsZUVsZW1lbnQob3B0aW9ucykge1xuICAgIGNvbnN0IHN0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcbiAgICBjb25zdCBhdHRyaWJ1dGVzID0gb3B0aW9ucy5hdHRyaWJ1dGVzIHx8IHtcbiAgICB9O1xuICAgIGlmICh0eXBlb2YgYXR0cmlidXRlcy5ub25jZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgY29uc3Qgbm9uY2UgPSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZWZcbiAgICAgICAgdHlwZW9mIF9fd2VicGFja19ub25jZV9fICE9PSAndW5kZWZpbmVkJyA/IF9fd2VicGFja19ub25jZV9fIDogbnVsbDtcbiAgICAgICAgaWYgKG5vbmNlKSB7XG4gICAgICAgICAgICBhdHRyaWJ1dGVzLm5vbmNlID0gbm9uY2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgT2JqZWN0LmtleXMoYXR0cmlidXRlcykuZm9yRWFjaChmdW5jdGlvbihrZXkpIHtcbiAgICAgICAgc3R5bGUuc2V0QXR0cmlidXRlKGtleSwgYXR0cmlidXRlc1trZXldKTtcbiAgICB9KTtcbiAgICBpZiAodHlwZW9mIG9wdGlvbnMuaW5zZXJ0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIG9wdGlvbnMuaW5zZXJ0KHN0eWxlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBnZXRUYXJnZXQob3B0aW9ucy5pbnNlcnQgfHwgJ2hlYWQnKTtcbiAgICAgICAgaWYgKCF0YXJnZXQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNvdWxkbid0IGZpbmQgYSBzdHlsZSB0YXJnZXQuIFRoaXMgcHJvYmFibHkgbWVhbnMgdGhhdCB0aGUgdmFsdWUgZm9yIHRoZSAnaW5zZXJ0JyBwYXJhbWV0ZXIgaXMgaW52YWxpZC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgdGFyZ2V0LmFwcGVuZENoaWxkKHN0eWxlKTtcbiAgICB9XG4gICAgcmV0dXJuIHN0eWxlO1xufVxuZnVuY3Rpb24gcmVtb3ZlU3R5bGVFbGVtZW50KHN0eWxlKSB7XG4gICAgLy8gaXN0YW5idWwgaWdub3JlIGlmXG4gICAgaWYgKHN0eWxlLnBhcmVudE5vZGUgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBzdHlsZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHN0eWxlKTtcbn1cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqLyBjb25zdCByZXBsYWNlVGV4dCA9IGZ1bmN0aW9uIHJlcGxhY2VUZXh0KCkge1xuICAgIGNvbnN0IHRleHRTdG9yZSA9IFtdO1xuICAgIHJldHVybiBmdW5jdGlvbiByZXBsYWNlKGluZGV4LCByZXBsYWNlbWVudCkge1xuICAgICAgICB0ZXh0U3RvcmVbaW5kZXhdID0gcmVwbGFjZW1lbnQ7XG4gICAgICAgIHJldHVybiB0ZXh0U3RvcmUuZmlsdGVyKEJvb2xlYW4pLmpvaW4oJ1xcbicpO1xuICAgIH07XG59KCk7XG5mdW5jdGlvbiBhcHBseVRvU2luZ2xldG9uVGFnKHN0eWxlLCBpbmRleCwgcmVtb3ZlLCBvYmopIHtcbiAgICBjb25zdCBjc3MgPSByZW1vdmUgPyAnJyA6IG9iai5tZWRpYSA/ICdAbWVkaWEgJyArIG9iai5tZWRpYSArICcgeycgKyBvYmouY3NzICsgJ30nIDogb2JqLmNzcztcbiAgICAvLyBGb3Igb2xkIElFXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICAqLyBpZiAoc3R5bGUuc3R5bGVTaGVldCkge1xuICAgICAgICBzdHlsZS5zdHlsZVNoZWV0LmNzc1RleHQgPSByZXBsYWNlVGV4dChpbmRleCwgY3NzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBjc3NOb2RlID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzKTtcbiAgICAgICAgY29uc3QgY2hpbGROb2RlcyA9IHN0eWxlLmNoaWxkTm9kZXM7XG4gICAgICAgIGlmIChjaGlsZE5vZGVzW2luZGV4XSkge1xuICAgICAgICAgICAgc3R5bGUucmVtb3ZlQ2hpbGQoY2hpbGROb2Rlc1tpbmRleF0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjaGlsZE5vZGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgc3R5bGUuaW5zZXJ0QmVmb3JlKGNzc05vZGUsIGNoaWxkTm9kZXNbaW5kZXhdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN0eWxlLmFwcGVuZENoaWxkKGNzc05vZGUpO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gYXBwbHlUb1RhZyhzdHlsZSwgb3B0aW9ucywgb2JqKSB7XG4gICAgbGV0IGNzcyA9IG9iai5jc3M7XG4gICAgY29uc3QgbWVkaWEgPSBvYmoubWVkaWE7XG4gICAgY29uc3Qgc291cmNlTWFwID0gb2JqLnNvdXJjZU1hcDtcbiAgICBpZiAobWVkaWEpIHtcbiAgICAgICAgc3R5bGUuc2V0QXR0cmlidXRlKCdtZWRpYScsIG1lZGlhKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBzdHlsZS5yZW1vdmVBdHRyaWJ1dGUoJ21lZGlhJyk7XG4gICAgfVxuICAgIGlmIChzb3VyY2VNYXAgJiYgdHlwZW9mIGJ0b2EgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGNzcyArPSAnXFxuLyojIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCwnICsgYnRvYSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoc291cmNlTWFwKSkpKSArICcgKi8nO1xuICAgIH1cbiAgICAvLyBGb3Igb2xkIElFXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICAqLyBpZiAoc3R5bGUuc3R5bGVTaGVldCkge1xuICAgICAgICBzdHlsZS5zdHlsZVNoZWV0LmNzc1RleHQgPSBjc3M7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgd2hpbGUoc3R5bGUuZmlyc3RDaGlsZCl7XG4gICAgICAgICAgICBzdHlsZS5yZW1vdmVDaGlsZChzdHlsZS5maXJzdENoaWxkKTtcbiAgICAgICAgfVxuICAgICAgICBzdHlsZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjc3MpKTtcbiAgICB9XG59XG5sZXQgc2luZ2xldG9uID0gbnVsbDtcbmxldCBzaW5nbGV0b25Db3VudGVyID0gMDtcbmZ1bmN0aW9uIGFkZFN0eWxlKG9iaiwgb3B0aW9ucykge1xuICAgIGxldCBzdHlsZTtcbiAgICBsZXQgdXBkYXRlO1xuICAgIGxldCByZW1vdmU7XG4gICAgaWYgKG9wdGlvbnMuc2luZ2xldG9uKSB7XG4gICAgICAgIGNvbnN0IHN0eWxlSW5kZXggPSBzaW5nbGV0b25Db3VudGVyKys7XG4gICAgICAgIHN0eWxlID0gc2luZ2xldG9uIHx8IChzaW5nbGV0b24gPSBpbnNlcnRTdHlsZUVsZW1lbnQob3B0aW9ucykpO1xuICAgICAgICB1cGRhdGUgPSBhcHBseVRvU2luZ2xldG9uVGFnLmJpbmQobnVsbCwgc3R5bGUsIHN0eWxlSW5kZXgsIGZhbHNlKTtcbiAgICAgICAgcmVtb3ZlID0gYXBwbHlUb1NpbmdsZXRvblRhZy5iaW5kKG51bGwsIHN0eWxlLCBzdHlsZUluZGV4LCB0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBzdHlsZSA9IGluc2VydFN0eWxlRWxlbWVudChvcHRpb25zKTtcbiAgICAgICAgdXBkYXRlID0gYXBwbHlUb1RhZy5iaW5kKG51bGwsIHN0eWxlLCBvcHRpb25zKTtcbiAgICAgICAgcmVtb3ZlID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICByZW1vdmVTdHlsZUVsZW1lbnQoc3R5bGUpO1xuICAgICAgICB9O1xuICAgIH1cbiAgICB1cGRhdGUob2JqKTtcbiAgICByZXR1cm4gZnVuY3Rpb24gdXBkYXRlU3R5bGUobmV3T2JqKSB7XG4gICAgICAgIGlmIChuZXdPYmopIHtcbiAgICAgICAgICAgIGlmIChuZXdPYmouY3NzID09PSBvYmouY3NzICYmIG5ld09iai5tZWRpYSA9PT0gb2JqLm1lZGlhICYmIG5ld09iai5zb3VyY2VNYXAgPT09IG9iai5zb3VyY2VNYXApIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB1cGRhdGUob2JqID0gbmV3T2JqKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlbW92ZSgpO1xuICAgICAgICB9XG4gICAgfTtcbn1cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24obGlzdCwgb3B0aW9ucykge1xuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHtcbiAgICB9O1xuICAgIC8vIEZvcmNlIHNpbmdsZS10YWcgc29sdXRpb24gb24gSUU2LTksIHdoaWNoIGhhcyBhIGhhcmQgbGltaXQgb24gdGhlICMgb2YgPHN0eWxlPlxuICAgIC8vIHRhZ3MgaXQgd2lsbCBhbGxvdyBvbiBhIHBhZ2VcbiAgICBpZiAoIW9wdGlvbnMuc2luZ2xldG9uICYmIHR5cGVvZiBvcHRpb25zLnNpbmdsZXRvbiAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgIG9wdGlvbnMuc2luZ2xldG9uID0gaXNPbGRJRSgpO1xuICAgIH1cbiAgICBsaXN0ID0gbGlzdCB8fCBbXTtcbiAgICBsZXQgbGFzdElkZW50aWZpZXJzID0gbW9kdWxlc1RvRG9tKGxpc3QsIG9wdGlvbnMpO1xuICAgIHJldHVybiBmdW5jdGlvbiB1cGRhdGUobmV3TGlzdCkge1xuICAgICAgICBuZXdMaXN0ID0gbmV3TGlzdCB8fCBbXTtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChuZXdMaXN0KSAhPT0gJ1tvYmplY3QgQXJyYXldJykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCBsYXN0SWRlbnRpZmllcnMubGVuZ3RoOyBpKyspe1xuICAgICAgICAgICAgY29uc3QgaWRlbnRpZmllciA9IGxhc3RJZGVudGlmaWVyc1tpXTtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gZ2V0SW5kZXhCeUlkZW50aWZpZXIoaWRlbnRpZmllcik7XG4gICAgICAgICAgICBzdHlsZXNJbkRvbVtpbmRleF0ucmVmZXJlbmNlcy0tO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5ld0xhc3RJZGVudGlmaWVycyA9IG1vZHVsZXNUb0RvbShuZXdMaXN0LCBvcHRpb25zKTtcbiAgICAgICAgZm9yKGxldCBpMSA9IDA7IGkxIDwgbGFzdElkZW50aWZpZXJzLmxlbmd0aDsgaTErKyl7XG4gICAgICAgICAgICBjb25zdCBpZGVudGlmaWVyID0gbGFzdElkZW50aWZpZXJzW2kxXTtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gZ2V0SW5kZXhCeUlkZW50aWZpZXIoaWRlbnRpZmllcik7XG4gICAgICAgICAgICBpZiAoc3R5bGVzSW5Eb21baW5kZXhdLnJlZmVyZW5jZXMgPT09IDApIHtcbiAgICAgICAgICAgICAgICBzdHlsZXNJbkRvbVtpbmRleF0udXBkYXRlcigpO1xuICAgICAgICAgICAgICAgIHN0eWxlc0luRG9tLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbGFzdElkZW50aWZpZXJzID0gbmV3TGFzdElkZW50aWZpZXJzO1xuICAgIH07XG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js\n"); + +/***/ }), + +/***/ "./node_modules/next/head.js": +/*!***********************************!*\ + !*** ./node_modules/next/head.js ***! + \***********************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("module.exports = __webpack_require__(/*! ./dist/shared/lib/head */ \"./node_modules/next/dist/shared/lib/head.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9oZWFkLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBLGlIQUFrRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9oZWFkLmpzPzg4NDkiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Rpc3Qvc2hhcmVkL2xpYi9oZWFkJylcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/head.js\n"); + +/***/ }), + +/***/ "./node_modules/next/script.js": +/*!*************************************!*\ + !*** ./node_modules/next/script.js ***! + \*************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("module.exports = __webpack_require__(/*! ./dist/client/script */ \"./node_modules/next/dist/client/script.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9zY3JpcHQuanMuanMiLCJtYXBwaW5ncyI6IkFBQUEsNkdBQWdEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L3NjcmlwdC5qcz9lNGJhIl0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9kaXN0L2NsaWVudC9zY3JpcHQnKVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/script.js\n"); + +/***/ }), + +/***/ "./node_modules/react/cjs/react-jsx-dev-runtime.development.js": +/*!*********************************************************************!*\ + !*** ./node_modules/react/cjs/react-jsx-dev-runtime.development.js ***! + \*********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("/** @license React v17.0.2\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its 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\n\n\nif (true) {\n (function() {\n'use strict';\n\nvar React = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\nvar _assign = __webpack_require__(/*! object-assign */ \"./node_modules/next/dist/build/polyfills/object-assign.js\");\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar REACT_ELEMENT_TYPE = 0xeac7;\nvar REACT_PORTAL_TYPE = 0xeaca;\nexports.Fragment = 0xeacb;\nvar REACT_STRICT_MODE_TYPE = 0xeacc;\nvar REACT_PROFILER_TYPE = 0xead2;\nvar REACT_PROVIDER_TYPE = 0xeacd;\nvar REACT_CONTEXT_TYPE = 0xeace;\nvar REACT_FORWARD_REF_TYPE = 0xead0;\nvar REACT_SUSPENSE_TYPE = 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = 0xead8;\nvar REACT_MEMO_TYPE = 0xead3;\nvar REACT_LAZY_TYPE = 0xead4;\nvar REACT_BLOCK_TYPE = 0xead9;\nvar REACT_SERVER_BLOCK_TYPE = 0xeada;\nvar REACT_FUNDAMENTAL_TYPE = 0xead5;\nvar REACT_SCOPE_TYPE = 0xead7;\nvar REACT_OPAQUE_ID_TYPE = 0xeae0;\nvar REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1;\nvar REACT_OFFSCREEN_TYPE = 0xeae2;\nvar REACT_LEGACY_HIDDEN_TYPE = 0xeae3;\n\nif (typeof Symbol === 'function' && Symbol.for) {\n var symbolFor = Symbol.for;\n REACT_ELEMENT_TYPE = symbolFor('react.element');\n REACT_PORTAL_TYPE = symbolFor('react.portal');\n exports.Fragment = symbolFor('react.fragment');\n REACT_STRICT_MODE_TYPE = symbolFor('react.strict_mode');\n REACT_PROFILER_TYPE = symbolFor('react.profiler');\n REACT_PROVIDER_TYPE = symbolFor('react.provider');\n REACT_CONTEXT_TYPE = symbolFor('react.context');\n REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref');\n REACT_SUSPENSE_TYPE = symbolFor('react.suspense');\n REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list');\n REACT_MEMO_TYPE = symbolFor('react.memo');\n REACT_LAZY_TYPE = symbolFor('react.lazy');\n REACT_BLOCK_TYPE = symbolFor('react.block');\n REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block');\n REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental');\n REACT_SCOPE_TYPE = symbolFor('react.scope');\n REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id');\n REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode');\n REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen');\n REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden');\n}\n\nvar MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\n return null;\n }\n\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n\n return null;\n}\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\nfunction error(format) {\n {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n printWarning('error', format, args);\n }\n}\n\nfunction printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n }\n\n var argsWithFormat = args.map(function (item) {\n return '' + item;\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n}\n\n// Filter certain DOM attributes (e.g. src, href) if their values are empty strings.\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === exports.Fragment || type === REACT_PROFILER_TYPE || type === REACT_DEBUG_TRACING_MODE_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_LEGACY_HIDDEN_TYPE || enableScopeAPI ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_BLOCK_TYPE || type[0] === REACT_SERVER_BLOCK_TYPE) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var functionName = innerType.displayName || innerType.name || '';\n return outerType.displayName || (functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName);\n}\n\nfunction getContextName(type) {\n return type.displayName || 'Context';\n}\n\nfunction getComponentName(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n\n {\n if (typeof type.tag === 'number') {\n error('Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.');\n }\n }\n\n if (typeof type === 'function') {\n return type.displayName || type.name || null;\n }\n\n if (typeof type === 'string') {\n return type;\n }\n\n switch (type) {\n case exports.Fragment:\n return 'Fragment';\n\n case REACT_PORTAL_TYPE:\n return 'Portal';\n\n case REACT_PROFILER_TYPE:\n return 'Profiler';\n\n case REACT_STRICT_MODE_TYPE:\n return 'StrictMode';\n\n case REACT_SUSPENSE_TYPE:\n return 'Suspense';\n\n case REACT_SUSPENSE_LIST_TYPE:\n return 'SuspenseList';\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + '.Consumer';\n\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + '.Provider';\n\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, 'ForwardRef');\n\n case REACT_MEMO_TYPE:\n return getComponentName(type.type);\n\n case REACT_BLOCK_TYPE:\n return getComponentName(type._render);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n return getComponentName(init(payload));\n } catch (x) {\n return null;\n }\n }\n }\n }\n\n return null;\n}\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n disabledDepth++;\n }\n}\nfunction reenableLogs() {\n {\n disabledDepth--;\n\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n log: _assign({}, props, {\n value: prevLog\n }),\n info: _assign({}, props, {\n value: prevInfo\n }),\n warn: _assign({}, props, {\n value: prevWarn\n }),\n error: _assign({}, props, {\n value: prevError\n }),\n group: _assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: _assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: _assign({}, props, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n if (disabledDepth < 0) {\n error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n }\n }\n}\n\nvar ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || '';\n }\n } // We use the prefix to ensure our stacks line up with native stack frames.\n\n\n return '\\n' + prefix + name;\n }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n}\n\nfunction describeNativeComponentFrame(fn, construct) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if (!fn || reentry) {\n return '';\n }\n\n {\n var frame = componentFrameCache.get(fn);\n\n if (frame !== undefined) {\n return frame;\n }\n }\n\n var control;\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n\n {\n previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function\n // for warnings.\n\n ReactCurrentDispatcher.current = null;\n disableLogs();\n }\n\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function () {\n throw Error();\n }; // $FlowFixMe\n\n\n Object.defineProperty(Fake.prototype, 'props', {\n set: function () {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n\n if (typeof Reflect === 'object' && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n }\n\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n }\n\n fn();\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === 'string') {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sample.stack.split('\\n');\n var controlLines = control.stack.split('\\n');\n var s = sampleLines.length - 1;\n var c = controlLines.length - 1;\n\n while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n\n for (; s >= 1 && c >= 0; s--, c--) {\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at ');\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, _frame);\n }\n } // Return the line we found.\n\n\n return _frame;\n }\n } while (s >= 1 && c >= 0);\n }\n\n break;\n }\n }\n }\n } finally {\n reentry = false;\n\n {\n ReactCurrentDispatcher.current = previousDispatcher;\n reenableLogs();\n }\n\n Error.prepareStackTrace = previousPrepareStackTrace;\n } // Fallback to just using the name if we couldn't make it throw.\n\n\n var name = fn ? fn.displayName || fn.name : '';\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n\n return syntheticFrame;\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n}\n\nfunction shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n if (type == null) {\n return '';\n }\n\n if (typeof type === 'function') {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n\n if (typeof type === 'string') {\n return describeBuiltInComponentFrame(type);\n }\n\n switch (type) {\n case REACT_SUSPENSE_TYPE:\n return describeBuiltInComponentFrame('Suspense');\n\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame('SuspenseList');\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n\n case REACT_MEMO_TYPE:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n case REACT_BLOCK_TYPE:\n return describeFunctionComponentFrame(type._render);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n\n return '';\n}\n\nvar loggedTypeFailures = {};\nvar ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame.setExtraStackFrame(null);\n }\n }\n}\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\n {\n // $FlowFixMe This is okay but Flow doesn't know it.\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n } catch (ex) {\n error$1 = ex;\n }\n\n if (error$1 && !(error$1 instanceof Error)) {\n setCurrentlyValidatingElement(element);\n\n error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n\n setCurrentlyValidatingElement(null);\n }\n\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error$1.message] = true;\n setCurrentlyValidatingElement(element);\n\n error('Failed %s type: %s', location, error$1.message);\n\n setCurrentlyValidatingElement(null);\n }\n }\n }\n }\n}\n\nvar ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n};\nvar specialPropKeyWarningShown;\nvar specialPropRefWarningShown;\nvar didWarnAboutStringRefs;\n\n{\n didWarnAboutStringRefs = {};\n}\n\nfunction hasValidRef(config) {\n {\n if (hasOwnProperty.call(config, 'ref')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n {\n if (hasOwnProperty.call(config, 'key')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.key !== undefined;\n}\n\nfunction warnIfStringRefCannotBeAutoConverted(config, self) {\n {\n if (typeof config.ref === 'string' && ReactCurrentOwner.current && self && ReactCurrentOwner.current.stateNode !== self) {\n var componentName = getComponentName(ReactCurrentOwner.current.type);\n\n if (!didWarnAboutStringRefs[componentName]) {\n error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', getComponentName(ReactCurrentOwner.current.type), config.ref);\n\n didWarnAboutStringRefs[componentName] = true;\n }\n }\n }\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingKey = function () {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n\n error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n }\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingRef = function () {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n\n error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n }\n}\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */\n\n\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allows us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n // Record the component responsible for creating this element.\n _owner: owner\n };\n\n {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n\n Object.defineProperty(element._store, 'validated', {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n }); // self and source are DEV only properties.\n\n Object.defineProperty(element, '_self', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n }); // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n\n Object.defineProperty(element, '_source', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n\n return element;\n};\n/**\n * https://github.com/reactjs/rfcs/pull/107\n * @param {*} type\n * @param {object} props\n * @param {string} key\n */\n\nfunction jsxDEV(type, config, maybeKey, source, self) {\n {\n var propName; // Reserved names are extracted\n\n var props = {};\n var key = null;\n var ref = null; // Currently, key can be spread in as a prop. This causes a potential\n // issue if key is also explicitly declared (ie. <div {...props} key=\"Hi\" />\n // or <div key=\"Hi\" {...props} /> ). We want to deprecate key spread,\n // but as an intermediary step, we will use jsxDEV for everything except\n // <div {...props} key=\"Hi\" />, because we aren't currently able to tell if\n // key is explicitly declared to be undefined or not.\n\n if (maybeKey !== undefined) {\n key = '' + maybeKey;\n }\n\n if (hasValidKey(config)) {\n key = '' + config.key;\n }\n\n if (hasValidRef(config)) {\n ref = config.ref;\n warnIfStringRefCannotBeAutoConverted(config, self);\n } // Remaining properties are added to a new props object\n\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n } // Resolve default props\n\n\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n\n if (key || ref) {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n }\n}\n\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement$1(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n }\n }\n}\n\nvar propTypesMisspellWarningShown;\n\n{\n propTypesMisspellWarningShown = false;\n}\n/**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */\n\nfunction isValidElement(object) {\n {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n }\n}\n\nfunction getDeclarationErrorAddendum() {\n {\n if (ReactCurrentOwner$1.current) {\n var name = getComponentName(ReactCurrentOwner$1.current.type);\n\n if (name) {\n return '\\n\\nCheck the render method of `' + name + '`.';\n }\n }\n\n return '';\n }\n}\n\nfunction getSourceInfoErrorAddendum(source) {\n {\n if (source !== undefined) {\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n var lineNumber = source.lineNumber;\n return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n }\n\n return '';\n }\n}\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n\n\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n {\n var info = getDeclarationErrorAddendum();\n\n if (!info) {\n var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n\n if (parentName) {\n info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n }\n }\n\n return info;\n }\n}\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\n\n\nfunction validateExplicitKey(element, parentType) {\n {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n\n element._store.validated = true;\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n return;\n }\n\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n\n var childOwner = '';\n\n if (element && element._owner && element._owner !== ReactCurrentOwner$1.current) {\n // Give the component that originally created this child.\n childOwner = \" It was passed a child from \" + getComponentName(element._owner.type) + \".\";\n }\n\n setCurrentlyValidatingElement$1(element);\n\n error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\n\n setCurrentlyValidatingElement$1(null);\n }\n}\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\n\n\nfunction validateChildKeys(node, parentType) {\n {\n if (typeof node !== 'object') {\n return;\n }\n\n if (Array.isArray(node)) {\n for (var i = 0; i < node.length; i++) {\n var child = node[i];\n\n if (isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else if (node) {\n var iteratorFn = getIteratorFn(node);\n\n if (typeof iteratorFn === 'function') {\n // Entry iterators used to provide implicit keys,\n // but now we print a separate warning for them later.\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n\n while (!(step = iterator.next()).done) {\n if (isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n }\n}\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\n\n\nfunction validatePropTypes(element) {\n {\n var type = element.type;\n\n if (type === null || type === undefined || typeof type === 'string') {\n return;\n }\n\n var propTypes;\n\n if (typeof type === 'function') {\n propTypes = type.propTypes;\n } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n // Inner props are checked in the reconciler.\n type.$$typeof === REACT_MEMO_TYPE)) {\n propTypes = type.propTypes;\n } else {\n return;\n }\n\n if (propTypes) {\n // Intentionally inside to avoid triggering lazy initializers:\n var name = getComponentName(type);\n checkPropTypes(propTypes, element.props, 'prop', name, element);\n } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n\n var _name = getComponentName(type);\n\n error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');\n }\n\n if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\n error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\n }\n }\n}\n/**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\n\n\nfunction validateFragmentProps(fragment) {\n {\n var keys = Object.keys(fragment.props);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (key !== 'children' && key !== 'key') {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n\n setCurrentlyValidatingElement$1(null);\n break;\n }\n }\n\n if (fragment.ref !== null) {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid attribute `ref` supplied to `React.Fragment`.');\n\n setCurrentlyValidatingElement$1(null);\n }\n }\n}\n\nfunction jsxWithValidation(type, props, key, isStaticChildren, source, self) {\n {\n var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n\n if (!validType) {\n var info = '';\n\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n }\n\n var sourceInfo = getSourceInfoErrorAddendum(source);\n\n if (sourceInfo) {\n info += sourceInfo;\n } else {\n info += getDeclarationErrorAddendum();\n }\n\n var typeString;\n\n if (type === null) {\n typeString = 'null';\n } else if (Array.isArray(type)) {\n typeString = 'array';\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n typeString = \"<\" + (getComponentName(type.type) || 'Unknown') + \" />\";\n info = ' Did you accidentally export a JSX literal instead of a component?';\n } else {\n typeString = typeof type;\n }\n\n error('React.jsx: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n }\n\n var element = jsxDEV(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n\n if (element == null) {\n return element;\n } // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n\n\n if (validType) {\n var children = props.children;\n\n if (children !== undefined) {\n if (isStaticChildren) {\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n validateChildKeys(children[i], type);\n }\n\n if (Object.freeze) {\n Object.freeze(children);\n }\n } else {\n error('React.jsx: Static children should always be an array. ' + 'You are likely explicitly calling React.jsxs or React.jsxDEV. ' + 'Use the Babel transform instead.');\n }\n } else {\n validateChildKeys(children, type);\n }\n }\n }\n\n if (type === exports.Fragment) {\n validateFragmentProps(element);\n } else {\n validatePropTypes(element);\n }\n\n return element;\n }\n} // These two functions exist to still get child warnings in dev\n\nvar jsxDEV$1 = jsxWithValidation ;\n\nexports.jsxDEV = jsxDEV$1;\n })();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QvY2pzL3JlYWN0LWpzeC1kZXYtcnVudGltZS5kZXZlbG9wbWVudC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVhOztBQUViLElBQUksSUFBcUM7QUFDekM7QUFDQTs7QUFFQSxZQUFZLG1CQUFPLENBQUMsNENBQU87QUFDM0IsY0FBYyxtQkFBTyxDQUFDLGdGQUFlOztBQUVyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRSxnQkFBZ0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsK0ZBQStGLGVBQWU7QUFDOUc7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxLQUFLLEdBQUc7O0FBRVIsa0RBQWtEO0FBQ2xEO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBLDRCQUE0Qjs7QUFFNUI7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7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QUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSw4QkFBOEI7QUFDOUI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJIQUEySDtBQUMzSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxVQUFVO0FBQ1Y7QUFDQTs7QUFFQTtBQUNBOztBQUVBLG9FQUFvRTs7QUFFcEU7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNM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QTtBQUNBLE1BQU07QUFDTjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOLDRDQUE0Qzs7QUFFNUM7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsY0FBYztBQUN6Qjs7O0FBR0E7QUFDQTtBQUNBOztBQUVBLG9CQUFvQixpQkFBaUI7QUFDckM7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSw4Q0FBOEM7QUFDOUM7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBOztBQUVBO0FBQ0E7O0FBRUEsMERBQTBEO0FBQzFEOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLHFCQUFxQjtBQUNqRDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7QUFFQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRjs7QUFFQSxjQUFjO0FBQ2QsR0FBRztBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9yZWFjdC9janMvcmVhY3QtanN4LWRldi1ydW50aW1lLmRldmVsb3BtZW50LmpzPzE3ZTEiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBsaWNlbnNlIFJlYWN0IHYxNy4wLjJcbiAqIHJlYWN0LWpzeC1kZXYtcnVudGltZS5kZXZlbG9wbWVudC5qc1xuICpcbiAqIENvcHlyaWdodCAoYykgRmFjZWJvb2ssIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAoZnVuY3Rpb24oKSB7XG4ndXNlIHN0cmljdCc7XG5cbnZhciBSZWFjdCA9IHJlcXVpcmUoJ3JlYWN0Jyk7XG52YXIgX2Fzc2lnbiA9IHJlcXVpcmUoJ29iamVjdC1hc3NpZ24nKTtcblxuLy8gQVRURU5USU9OXG4vLyBXaGVuIGFkZGluZyBuZXcgc3ltYm9scyB0byB0aGlzIGZpbGUsXG4vLyBQbGVhc2UgY29uc2lkZXIgYWxzbyBhZGRpbmcgdG8gJ3JlYWN0LWRldnRvb2xzLXNoYXJlZC9zcmMvYmFja2VuZC9SZWFjdFN5bWJvbHMnXG4vLyBUaGUgU3ltYm9sIHVzZWQgdG8gdGFnIHRoZSBSZWFjdEVsZW1lbnQtbGlrZSB0eXBlcy4gSWYgdGhlcmUgaXMgbm8gbmF0aXZlIFN5bWJvbFxuLy8gbm9yIHBvbHlmaWxsLCB0aGVuIGEgcGxhaW4gbnVtYmVyIGlzIHVzZWQgZm9yIHBlcmZvcm1hbmNlLlxudmFyIFJFQUNUX0VMRU1FTlRfVFlQRSA9IDB4ZWFjNztcbnZhciBSRUFDVF9QT1JUQUxfVFlQRSA9IDB4ZWFjYTtcbmV4cG9ydHMuRnJhZ21lbnQgPSAweGVhY2I7XG52YXIgUkVBQ1RfU1RSSUNUX01PREVfVFlQRSA9IDB4ZWFjYztcbnZhciBSRUFDVF9QUk9GSUxFUl9UWVBFID0gMHhlYWQyO1xudmFyIFJFQUNUX1BST1ZJREVSX1RZUEUgPSAweGVhY2Q7XG52YXIgUkVBQ1RfQ09OVEVYVF9UWVBFID0gMHhlYWNlO1xudmFyIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgPSAweGVhZDA7XG52YXIgUkVBQ1RfU1VTUEVOU0VfVFlQRSA9IDB4ZWFkMTtcbnZhciBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUgPSAweGVhZDg7XG52YXIgUkVBQ1RfTUVNT19UWVBFID0gMHhlYWQzO1xudmFyIFJFQUNUX0xBWllfVFlQRSA9IDB4ZWFkNDtcbnZhciBSRUFDVF9CTE9DS19UWVBFID0gMHhlYWQ5O1xudmFyIFJFQUNUX1NFUlZFUl9CTE9DS19UWVBFID0gMHhlYWRhO1xudmFyIFJFQUNUX0ZVTkRBTUVOVEFMX1RZUEUgPSAweGVhZDU7XG52YXIgUkVBQ1RfU0NPUEVfVFlQRSA9IDB4ZWFkNztcbnZhciBSRUFDVF9PUEFRVUVfSURfVFlQRSA9IDB4ZWFlMDtcbnZhciBSRUFDVF9ERUJVR19UUkFDSU5HX01PREVfVFlQRSA9IDB4ZWFlMTtcbnZhciBSRUFDVF9PRkZTQ1JFRU5fVFlQRSA9IDB4ZWFlMjtcbnZhciBSRUFDVF9MRUdBQ1lfSElEREVOX1RZUEUgPSAweGVhZTM7XG5cbmlmICh0eXBlb2YgU3ltYm9sID09PSAnZnVuY3Rpb24nICYmIFN5bWJvbC5mb3IpIHtcbiAgdmFyIHN5bWJvbEZvciA9IFN5bWJvbC5mb3I7XG4gIFJFQUNUX0VMRU1FTlRfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QuZWxlbWVudCcpO1xuICBSRUFDVF9QT1JUQUxfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QucG9ydGFsJyk7XG4gIGV4cG9ydHMuRnJhZ21lbnQgPSBzeW1ib2xGb3IoJ3JlYWN0LmZyYWdtZW50Jyk7XG4gIFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LnN0cmljdF9tb2RlJyk7XG4gIFJFQUNUX1BST0ZJTEVSX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LnByb2ZpbGVyJyk7XG4gIFJFQUNUX1BST1ZJREVSX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LnByb3ZpZGVyJyk7XG4gIFJFQUNUX0NPTlRFWFRfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QuY29udGV4dCcpO1xuICBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5mb3J3YXJkX3JlZicpO1xuICBSRUFDVF9TVVNQRU5TRV9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5zdXNwZW5zZScpO1xuICBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LnN1c3BlbnNlX2xpc3QnKTtcbiAgUkVBQ1RfTUVNT19UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5tZW1vJyk7XG4gIFJFQUNUX0xBWllfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QubGF6eScpO1xuICBSRUFDVF9CTE9DS19UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5ibG9jaycpO1xuICBSRUFDVF9TRVJWRVJfQkxPQ0tfVFlQRSA9IHN5bWJvbEZvcigncmVhY3Quc2VydmVyLmJsb2NrJyk7XG4gIFJFQUNUX0ZVTkRBTUVOVEFMX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LmZ1bmRhbWVudGFsJyk7XG4gIFJFQUNUX1NDT1BFX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LnNjb3BlJyk7XG4gIFJFQUNUX09QQVFVRV9JRF9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5vcGFxdWUuaWQnKTtcbiAgUkVBQ1RfREVCVUdfVFJBQ0lOR19NT0RFX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LmRlYnVnX3RyYWNlX21vZGUnKTtcbiAgUkVBQ1RfT0ZGU0NSRUVOX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0Lm9mZnNjcmVlbicpO1xuICBSRUFDVF9MRUdBQ1lfSElEREVOX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LmxlZ2FjeV9oaWRkZW4nKTtcbn1cblxudmFyIE1BWUJFX0lURVJBVE9SX1NZTUJPTCA9IHR5cGVvZiBTeW1ib2wgPT09ICdmdW5jdGlvbicgJiYgU3ltYm9sLml0ZXJhdG9yO1xudmFyIEZBVVhfSVRFUkFUT1JfU1lNQk9MID0gJ0BAaXRlcmF0b3InO1xuZnVuY3Rpb24gZ2V0SXRlcmF0b3JGbihtYXliZUl0ZXJhYmxlKSB7XG4gIGlmIChtYXliZUl0ZXJhYmxlID09PSBudWxsIHx8IHR5cGVvZiBtYXliZUl0ZXJhYmxlICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgdmFyIG1heWJlSXRlcmF0b3IgPSBNQVlCRV9JVEVSQVRPUl9TWU1CT0wgJiYgbWF5YmVJdGVyYWJsZVtNQVlCRV9JVEVSQVRPUl9TWU1CT0xdIHx8IG1heWJlSXRlcmFibGVbRkFVWF9JVEVSQVRPUl9TWU1CT0xdO1xuXG4gIGlmICh0eXBlb2YgbWF5YmVJdGVyYXRvciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBtYXliZUl0ZXJhdG9yO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbnZhciBSZWFjdFNoYXJlZEludGVybmFscyA9IFJlYWN0Ll9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEO1xuXG5mdW5jdGlvbiBlcnJvcihmb3JtYXQpIHtcbiAge1xuICAgIGZvciAodmFyIF9sZW4yID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuMiA+IDEgPyBfbGVuMiAtIDEgOiAwKSwgX2tleTIgPSAxOyBfa2V5MiA8IF9sZW4yOyBfa2V5MisrKSB7XG4gICAgICBhcmdzW19rZXkyIC0gMV0gPSBhcmd1bWVudHNbX2tleTJdO1xuICAgIH1cblxuICAgIHByaW50V2FybmluZygnZXJyb3InLCBmb3JtYXQsIGFyZ3MpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHByaW50V2FybmluZyhsZXZlbCwgZm9ybWF0LCBhcmdzKSB7XG4gIC8vIFdoZW4gY2hhbmdpbmcgdGhpcyBsb2dpYywgeW91IG1pZ2h0IHdhbnQgdG8gYWxzb1xuICAvLyB1cGRhdGUgY29uc29sZVdpdGhTdGFja0Rldi53d3cuanMgYXMgd2VsbC5cbiAge1xuICAgIHZhciBSZWFjdERlYnVnQ3VycmVudEZyYW1lID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZTtcbiAgICB2YXIgc3RhY2sgPSBSZWFjdERlYnVnQ3VycmVudEZyYW1lLmdldFN0YWNrQWRkZW5kdW0oKTtcblxuICAgIGlmIChzdGFjayAhPT0gJycpIHtcbiAgICAgIGZvcm1hdCArPSAnJXMnO1xuICAgICAgYXJncyA9IGFyZ3MuY29uY2F0KFtzdGFja10pO1xuICAgIH1cblxuICAgIHZhciBhcmdzV2l0aEZvcm1hdCA9IGFyZ3MubWFwKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICByZXR1cm4gJycgKyBpdGVtO1xuICAgIH0pOyAvLyBDYXJlZnVsOiBSTiBjdXJyZW50bHkgZGVwZW5kcyBvbiB0aGlzIHByZWZpeFxuXG4gICAgYXJnc1dpdGhGb3JtYXQudW5zaGlmdCgnV2FybmluZzogJyArIGZvcm1hdCk7IC8vIFdlIGludGVudGlvbmFsbHkgZG9uJ3QgdXNlIHNwcmVhZCAob3IgLmFwcGx5KSBkaXJlY3RseSBiZWNhdXNlIGl0XG4gICAgLy8gYnJlYWtzIElFOTogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xMzYxMFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9uby1wcm9kdWN0aW9uLWxvZ2dpbmdcblxuICAgIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5jYWxsKGNvbnNvbGVbbGV2ZWxdLCBjb25zb2xlLCBhcmdzV2l0aEZvcm1hdCk7XG4gIH1cbn1cblxuLy8gRmlsdGVyIGNlcnRhaW4gRE9NIGF0dHJpYnV0ZXMgKGUuZy4gc3JjLCBocmVmKSBpZiB0aGVpciB2YWx1ZXMgYXJlIGVtcHR5IHN0cmluZ3MuXG5cbnZhciBlbmFibGVTY29wZUFQSSA9IGZhbHNlOyAvLyBFeHBlcmltZW50YWwgQ3JlYXRlIEV2ZW50IEhhbmRsZSBBUEkuXG5cbmZ1bmN0aW9uIGlzVmFsaWRFbGVtZW50VHlwZSh0eXBlKSB7XG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSAvLyBOb3RlOiB0eXBlb2YgbWlnaHQgYmUgb3RoZXIgdGhhbiAnc3ltYm9sJyBvciAnbnVtYmVyJyAoZS5nLiBpZiBpdCdzIGEgcG9seWZpbGwpLlxuXG5cbiAgaWYgKHR5cGUgPT09IGV4cG9ydHMuRnJhZ21lbnQgfHwgdHlwZSA9PT0gUkVBQ1RfUFJPRklMRVJfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9ERUJVR19UUkFDSU5HX01PREVfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX1NVU1BFTlNFX1RZUEUgfHwgdHlwZSA9PT0gUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX0xFR0FDWV9ISURERU5fVFlQRSB8fCBlbmFibGVTY29wZUFQSSApIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcgJiYgdHlwZSAhPT0gbnVsbCkge1xuICAgIGlmICh0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9MQVpZX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTUVNT19UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX1BST1ZJREVSX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQ09OVEVYVF9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfRlVOREFNRU5UQUxfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9CTE9DS19UWVBFIHx8IHR5cGVbMF0gPT09IFJFQUNUX1NFUlZFUl9CTE9DS19UWVBFKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIGdldFdyYXBwZWROYW1lKG91dGVyVHlwZSwgaW5uZXJUeXBlLCB3cmFwcGVyTmFtZSkge1xuICB2YXIgZnVuY3Rpb25OYW1lID0gaW5uZXJUeXBlLmRpc3BsYXlOYW1lIHx8IGlubmVyVHlwZS5uYW1lIHx8ICcnO1xuICByZXR1cm4gb3V0ZXJUeXBlLmRpc3BsYXlOYW1lIHx8IChmdW5jdGlvbk5hbWUgIT09ICcnID8gd3JhcHBlck5hbWUgKyBcIihcIiArIGZ1bmN0aW9uTmFtZSArIFwiKVwiIDogd3JhcHBlck5hbWUpO1xufVxuXG5mdW5jdGlvbiBnZXRDb250ZXh0TmFtZSh0eXBlKSB7XG4gIHJldHVybiB0eXBlLmRpc3BsYXlOYW1lIHx8ICdDb250ZXh0Jztcbn1cblxuZnVuY3Rpb24gZ2V0Q29tcG9uZW50TmFtZSh0eXBlKSB7XG4gIGlmICh0eXBlID09IG51bGwpIHtcbiAgICAvLyBIb3N0IHJvb3QsIHRleHQgbm9kZSBvciBqdXN0IGludmFsaWQgdHlwZS5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHtcbiAgICBpZiAodHlwZW9mIHR5cGUudGFnID09PSAnbnVtYmVyJykge1xuICAgICAgZXJyb3IoJ1JlY2VpdmVkIGFuIHVuZXhwZWN0ZWQgb2JqZWN0IGluIGdldENvbXBvbmVudE5hbWUoKS4gJyArICdUaGlzIGlzIGxpa2VseSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJyk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIHR5cGUuZGlzcGxheU5hbWUgfHwgdHlwZS5uYW1lIHx8IG51bGw7XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cblxuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlIGV4cG9ydHMuRnJhZ21lbnQ6XG4gICAgICByZXR1cm4gJ0ZyYWdtZW50JztcblxuICAgIGNhc2UgUkVBQ1RfUE9SVEFMX1RZUEU6XG4gICAgICByZXR1cm4gJ1BvcnRhbCc7XG5cbiAgICBjYXNlIFJFQUNUX1BST0ZJTEVSX1RZUEU6XG4gICAgICByZXR1cm4gJ1Byb2ZpbGVyJztcblxuICAgIGNhc2UgUkVBQ1RfU1RSSUNUX01PREVfVFlQRTpcbiAgICAgIHJldHVybiAnU3RyaWN0TW9kZSc7XG5cbiAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX1RZUEU6XG4gICAgICByZXR1cm4gJ1N1c3BlbnNlJztcblxuICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFOlxuICAgICAgcmV0dXJuICdTdXNwZW5zZUxpc3QnO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnb2JqZWN0Jykge1xuICAgIHN3aXRjaCAodHlwZS4kJHR5cGVvZikge1xuICAgICAgY2FzZSBSRUFDVF9DT05URVhUX1RZUEU6XG4gICAgICAgIHZhciBjb250ZXh0ID0gdHlwZTtcbiAgICAgICAgcmV0dXJuIGdldENvbnRleHROYW1lKGNvbnRleHQpICsgJy5Db25zdW1lcic7XG5cbiAgICAgIGNhc2UgUkVBQ1RfUFJPVklERVJfVFlQRTpcbiAgICAgICAgdmFyIHByb3ZpZGVyID0gdHlwZTtcbiAgICAgICAgcmV0dXJuIGdldENvbnRleHROYW1lKHByb3ZpZGVyLl9jb250ZXh0KSArICcuUHJvdmlkZXInO1xuXG4gICAgICBjYXNlIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU6XG4gICAgICAgIHJldHVybiBnZXRXcmFwcGVkTmFtZSh0eXBlLCB0eXBlLnJlbmRlciwgJ0ZvcndhcmRSZWYnKTtcblxuICAgICAgY2FzZSBSRUFDVF9NRU1PX1RZUEU6XG4gICAgICAgIHJldHVybiBnZXRDb21wb25lbnROYW1lKHR5cGUudHlwZSk7XG5cbiAgICAgIGNhc2UgUkVBQ1RfQkxPQ0tfVFlQRTpcbiAgICAgICAgcmV0dXJuIGdldENvbXBvbmVudE5hbWUodHlwZS5fcmVuZGVyKTtcblxuICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgbGF6eUNvbXBvbmVudCA9IHR5cGU7XG4gICAgICAgICAgdmFyIHBheWxvYWQgPSBsYXp5Q29tcG9uZW50Ll9wYXlsb2FkO1xuICAgICAgICAgIHZhciBpbml0ID0gbGF6eUNvbXBvbmVudC5faW5pdDtcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0Q29tcG9uZW50TmFtZShpbml0KHBheWxvYWQpKTtcbiAgICAgICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuLy8gSGVscGVycyB0byBwYXRjaCBjb25zb2xlLmxvZ3MgdG8gYXZvaWQgbG9nZ2luZyBkdXJpbmcgc2lkZS1lZmZlY3QgZnJlZVxuLy8gcmVwbGF5aW5nIG9uIHJlbmRlciBmdW5jdGlvbi4gVGhpcyBjdXJyZW50bHkgb25seSBwYXRjaGVzIHRoZSBvYmplY3Rcbi8vIGxhemlseSB3aGljaCB3b24ndCBjb3ZlciBpZiB0aGUgbG9nIGZ1bmN0aW9uIHdhcyBleHRyYWN0ZWQgZWFnZXJseS5cbi8vIFdlIGNvdWxkIGFsc28gZWFnZXJseSBwYXRjaCB0aGUgbWV0aG9kLlxudmFyIGRpc2FibGVkRGVwdGggPSAwO1xudmFyIHByZXZMb2c7XG52YXIgcHJldkluZm87XG52YXIgcHJldldhcm47XG52YXIgcHJldkVycm9yO1xudmFyIHByZXZHcm91cDtcbnZhciBwcmV2R3JvdXBDb2xsYXBzZWQ7XG52YXIgcHJldkdyb3VwRW5kO1xuXG5mdW5jdGlvbiBkaXNhYmxlZExvZygpIHt9XG5cbmRpc2FibGVkTG9nLl9fcmVhY3REaXNhYmxlZExvZyA9IHRydWU7XG5mdW5jdGlvbiBkaXNhYmxlTG9ncygpIHtcbiAge1xuICAgIGlmIChkaXNhYmxlZERlcHRoID09PSAwKSB7XG4gICAgICAvKiBlc2xpbnQtZGlzYWJsZSByZWFjdC1pbnRlcm5hbC9uby1wcm9kdWN0aW9uLWxvZ2dpbmcgKi9cbiAgICAgIHByZXZMb2cgPSBjb25zb2xlLmxvZztcbiAgICAgIHByZXZJbmZvID0gY29uc29sZS5pbmZvO1xuICAgICAgcHJldldhcm4gPSBjb25zb2xlLndhcm47XG4gICAgICBwcmV2RXJyb3IgPSBjb25zb2xlLmVycm9yO1xuICAgICAgcHJldkdyb3VwID0gY29uc29sZS5ncm91cDtcbiAgICAgIHByZXZHcm91cENvbGxhcHNlZCA9IGNvbnNvbGUuZ3JvdXBDb2xsYXBzZWQ7XG4gICAgICBwcmV2R3JvdXBFbmQgPSBjb25zb2xlLmdyb3VwRW5kOyAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzE5MDk5XG5cbiAgICAgIHZhciBwcm9wcyA9IHtcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICB2YWx1ZTogZGlzYWJsZWRMb2csXG4gICAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgICB9OyAvLyAkRmxvd0ZpeE1lIEZsb3cgdGhpbmtzIGNvbnNvbGUgaXMgaW1tdXRhYmxlLlxuXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhjb25zb2xlLCB7XG4gICAgICAgIGluZm86IHByb3BzLFxuICAgICAgICBsb2c6IHByb3BzLFxuICAgICAgICB3YXJuOiBwcm9wcyxcbiAgICAgICAgZXJyb3I6IHByb3BzLFxuICAgICAgICBncm91cDogcHJvcHMsXG4gICAgICAgIGdyb3VwQ29sbGFwc2VkOiBwcm9wcyxcbiAgICAgICAgZ3JvdXBFbmQ6IHByb3BzXG4gICAgICB9KTtcbiAgICAgIC8qIGVzbGludC1lbmFibGUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nICovXG4gICAgfVxuXG4gICAgZGlzYWJsZWREZXB0aCsrO1xuICB9XG59XG5mdW5jdGlvbiByZWVuYWJsZUxvZ3MoKSB7XG4gIHtcbiAgICBkaXNhYmxlZERlcHRoLS07XG5cbiAgICBpZiAoZGlzYWJsZWREZXB0aCA9PT0gMCkge1xuICAgICAgLyogZXNsaW50LWRpc2FibGUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nICovXG4gICAgICB2YXIgcHJvcHMgPSB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgd3JpdGFibGU6IHRydWVcbiAgICAgIH07IC8vICRGbG93Rml4TWUgRmxvdyB0aGlua3MgY29uc29sZSBpcyBpbW11dGFibGUuXG5cbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGNvbnNvbGUsIHtcbiAgICAgICAgbG9nOiBfYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2TG9nXG4gICAgICAgIH0pLFxuICAgICAgICBpbmZvOiBfYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2SW5mb1xuICAgICAgICB9KSxcbiAgICAgICAgd2FybjogX2Fzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldldhcm5cbiAgICAgICAgfSksXG4gICAgICAgIGVycm9yOiBfYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2RXJyb3JcbiAgICAgICAgfSksXG4gICAgICAgIGdyb3VwOiBfYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2R3JvdXBcbiAgICAgICAgfSksXG4gICAgICAgIGdyb3VwQ29sbGFwc2VkOiBfYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2R3JvdXBDb2xsYXBzZWRcbiAgICAgICAgfSksXG4gICAgICAgIGdyb3VwRW5kOiBfYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2R3JvdXBFbmRcbiAgICAgICAgfSlcbiAgICAgIH0pO1xuICAgICAgLyogZXNsaW50LWVuYWJsZSByZWFjdC1pbnRlcm5hbC9uby1wcm9kdWN0aW9uLWxvZ2dpbmcgKi9cbiAgICB9XG5cbiAgICBpZiAoZGlzYWJsZWREZXB0aCA8IDApIHtcbiAgICAgIGVycm9yKCdkaXNhYmxlZERlcHRoIGZlbGwgYmVsb3cgemVyby4gJyArICdUaGlzIGlzIGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nKTtcbiAgICB9XG4gIH1cbn1cblxudmFyIFJlYWN0Q3VycmVudERpc3BhdGNoZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdEN1cnJlbnREaXNwYXRjaGVyO1xudmFyIHByZWZpeDtcbmZ1bmN0aW9uIGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKG5hbWUsIHNvdXJjZSwgb3duZXJGbikge1xuICB7XG4gICAgaWYgKHByZWZpeCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBFeHRyYWN0IHRoZSBWTSBzcGVjaWZpYyBwcmVmaXggdXNlZCBieSBlYWNoIGxpbmUuXG4gICAgICB0cnkge1xuICAgICAgICB0aHJvdyBFcnJvcigpO1xuICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICB2YXIgbWF0Y2ggPSB4LnN0YWNrLnRyaW0oKS5tYXRjaCgvXFxuKCAqKGF0ICk/KS8pO1xuICAgICAgICBwcmVmaXggPSBtYXRjaCAmJiBtYXRjaFsxXSB8fCAnJztcbiAgICAgIH1cbiAgICB9IC8vIFdlIHVzZSB0aGUgcHJlZml4IHRvIGVuc3VyZSBvdXIgc3RhY2tzIGxpbmUgdXAgd2l0aCBuYXRpdmUgc3RhY2sgZnJhbWVzLlxuXG5cbiAgICByZXR1cm4gJ1xcbicgKyBwcmVmaXggKyBuYW1lO1xuICB9XG59XG52YXIgcmVlbnRyeSA9IGZhbHNlO1xudmFyIGNvbXBvbmVudEZyYW1lQ2FjaGU7XG5cbntcbiAgdmFyIFBvc3NpYmx5V2Vha01hcCA9IHR5cGVvZiBXZWFrTWFwID09PSAnZnVuY3Rpb24nID8gV2Vha01hcCA6IE1hcDtcbiAgY29tcG9uZW50RnJhbWVDYWNoZSA9IG5ldyBQb3NzaWJseVdlYWtNYXAoKTtcbn1cblxuZnVuY3Rpb24gZGVzY3JpYmVOYXRpdmVDb21wb25lbnRGcmFtZShmbiwgY29uc3RydWN0KSB7XG4gIC8vIElmIHNvbWV0aGluZyBhc2tlZCBmb3IgYSBzdGFjayBpbnNpZGUgYSBmYWtlIHJlbmRlciwgaXQgc2hvdWxkIGdldCBpZ25vcmVkLlxuICBpZiAoIWZuIHx8IHJlZW50cnkpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICB7XG4gICAgdmFyIGZyYW1lID0gY29tcG9uZW50RnJhbWVDYWNoZS5nZXQoZm4pO1xuXG4gICAgaWYgKGZyYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBmcmFtZTtcbiAgICB9XG4gIH1cblxuICB2YXIgY29udHJvbDtcbiAgcmVlbnRyeSA9IHRydWU7XG4gIHZhciBwcmV2aW91c1ByZXBhcmVTdGFja1RyYWNlID0gRXJyb3IucHJlcGFyZVN0YWNrVHJhY2U7IC8vICRGbG93Rml4TWUgSXQgZG9lcyBhY2NlcHQgdW5kZWZpbmVkLlxuXG4gIEVycm9yLnByZXBhcmVTdGFja1RyYWNlID0gdW5kZWZpbmVkO1xuICB2YXIgcHJldmlvdXNEaXNwYXRjaGVyO1xuXG4gIHtcbiAgICBwcmV2aW91c0Rpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyLmN1cnJlbnQ7IC8vIFNldCB0aGUgZGlzcGF0Y2hlciBpbiBERVYgYmVjYXVzZSB0aGlzIG1pZ2h0IGJlIGNhbGwgaW4gdGhlIHJlbmRlciBmdW5jdGlvblxuICAgIC8vIGZvciB3YXJuaW5ncy5cblxuICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIuY3VycmVudCA9IG51bGw7XG4gICAgZGlzYWJsZUxvZ3MoKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgLy8gVGhpcyBzaG91bGQgdGhyb3cuXG4gICAgaWYgKGNvbnN0cnVjdCkge1xuICAgICAgLy8gU29tZXRoaW5nIHNob3VsZCBiZSBzZXR0aW5nIHRoZSBwcm9wcyBpbiB0aGUgY29uc3RydWN0b3IuXG4gICAgICB2YXIgRmFrZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoKTtcbiAgICAgIH07IC8vICRGbG93Rml4TWVcblxuXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRmFrZS5wcm90b3R5cGUsICdwcm9wcycsIHtcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgLy8gV2UgdXNlIGEgdGhyb3dpbmcgc2V0dGVyIGluc3RlYWQgb2YgZnJvemVuIG9yIG5vbi13cml0YWJsZSBwcm9wc1xuICAgICAgICAgIC8vIGJlY2F1c2UgdGhhdCB3b24ndCB0aHJvdyBpbiBhIG5vbi1zdHJpY3QgbW9kZSBmdW5jdGlvbi5cbiAgICAgICAgICB0aHJvdyBFcnJvcigpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSAnb2JqZWN0JyAmJiBSZWZsZWN0LmNvbnN0cnVjdCkge1xuICAgICAgICAvLyBXZSBjb25zdHJ1Y3QgYSBkaWZmZXJlbnQgY29udHJvbCBmb3IgdGhpcyBjYXNlIHRvIGluY2x1ZGUgYW55IGV4dHJhXG4gICAgICAgIC8vIGZyYW1lcyBhZGRlZCBieSB0aGUgY29uc3RydWN0IGNhbGwuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgUmVmbGVjdC5jb25zdHJ1Y3QoRmFrZSwgW10pO1xuICAgICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgICAgY29udHJvbCA9IHg7XG4gICAgICAgIH1cblxuICAgICAgICBSZWZsZWN0LmNvbnN0cnVjdChmbiwgW10sIEZha2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBGYWtlLmNhbGwoKTtcbiAgICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICAgIGNvbnRyb2wgPSB4O1xuICAgICAgICB9XG5cbiAgICAgICAgZm4uY2FsbChGYWtlLnByb3RvdHlwZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRocm93IEVycm9yKCk7XG4gICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgIGNvbnRyb2wgPSB4O1xuICAgICAgfVxuXG4gICAgICBmbigpO1xuICAgIH1cbiAgfSBjYXRjaCAoc2FtcGxlKSB7XG4gICAgLy8gVGhpcyBpcyBpbmxpbmVkIG1hbnVhbGx5IGJlY2F1c2UgY2xvc3VyZSBkb2Vzbid0IGRvIGl0IGZvciB1cy5cbiAgICBpZiAoc2FtcGxlICYmIGNvbnRyb2wgJiYgdHlwZW9mIHNhbXBsZS5zdGFjayA9PT0gJ3N0cmluZycpIHtcbiAgICAgIC8vIFRoaXMgZXh0cmFjdHMgdGhlIGZpcnN0IGZyYW1lIGZyb20gdGhlIHNhbXBsZSB0aGF0IGlzbid0IGFsc28gaW4gdGhlIGNvbnRyb2wuXG4gICAgICAvLyBTa2lwcGluZyBvbmUgZnJhbWUgdGhhdCB3ZSBhc3N1bWUgaXMgdGhlIGZyYW1lIHRoYXQgY2FsbHMgdGhlIHR3by5cbiAgICAgIHZhciBzYW1wbGVMaW5lcyA9IHNhbXBsZS5zdGFjay5zcGxpdCgnXFxuJyk7XG4gICAgICB2YXIgY29udHJvbExpbmVzID0gY29udHJvbC5zdGFjay5zcGxpdCgnXFxuJyk7XG4gICAgICB2YXIgcyA9IHNhbXBsZUxpbmVzLmxlbmd0aCAtIDE7XG4gICAgICB2YXIgYyA9IGNvbnRyb2xMaW5lcy5sZW5ndGggLSAxO1xuXG4gICAgICB3aGlsZSAocyA+PSAxICYmIGMgPj0gMCAmJiBzYW1wbGVMaW5lc1tzXSAhPT0gY29udHJvbExpbmVzW2NdKSB7XG4gICAgICAgIC8vIFdlIGV4cGVjdCBhdCBsZWFzdCBvbmUgc3RhY2sgZnJhbWUgdG8gYmUgc2hhcmVkLlxuICAgICAgICAvLyBUeXBpY2FsbHkgdGhpcyB3aWxsIGJlIHRoZSByb290IG1vc3Qgb25lLiBIb3dldmVyLCBzdGFjayBmcmFtZXMgbWF5IGJlXG4gICAgICAgIC8vIGN1dCBvZmYgZHVlIHRvIG1heGltdW0gc3RhY2sgbGltaXRzLiBJbiB0aGlzIGNhc2UsIG9uZSBtYXliZSBjdXQgb2ZmXG4gICAgICAgIC8vIGVhcmxpZXIgdGhhbiB0aGUgb3RoZXIuIFdlIGFzc3VtZSB0aGF0IHRoZSBzYW1wbGUgaXMgbG9uZ2VyIG9yIHRoZSBzYW1lXG4gICAgICAgIC8vIGFuZCB0aGVyZSBmb3IgY3V0IG9mZiBlYXJsaWVyLiBTbyB3ZSBzaG91bGQgZmluZCB0aGUgcm9vdCBtb3N0IGZyYW1lIGluXG4gICAgICAgIC8vIHRoZSBzYW1wbGUgc29tZXdoZXJlIGluIHRoZSBjb250cm9sLlxuICAgICAgICBjLS07XG4gICAgICB9XG5cbiAgICAgIGZvciAoOyBzID49IDEgJiYgYyA+PSAwOyBzLS0sIGMtLSkge1xuICAgICAgICAvLyBOZXh0IHdlIGZpbmQgdGhlIGZpcnN0IG9uZSB0aGF0IGlzbid0IHRoZSBzYW1lIHdoaWNoIHNob3VsZCBiZSB0aGVcbiAgICAgICAgLy8gZnJhbWUgdGhhdCBjYWxsZWQgb3VyIHNhbXBsZSBmdW5jdGlvbiBhbmQgdGhlIGNvbnRyb2wuXG4gICAgICAgIGlmIChzYW1wbGVMaW5lc1tzXSAhPT0gY29udHJvbExpbmVzW2NdKSB7XG4gICAgICAgICAgLy8gSW4gVjgsIHRoZSBmaXJzdCBsaW5lIGlzIGRlc2NyaWJpbmcgdGhlIG1lc3NhZ2UgYnV0IG90aGVyIFZNcyBkb24ndC5cbiAgICAgICAgICAvLyBJZiB3ZSdyZSBhYm91dCB0byByZXR1cm4gdGhlIGZpcnN0IGxpbmUsIGFuZCB0aGUgY29udHJvbCBpcyBhbHNvIG9uIHRoZSBzYW1lXG4gICAgICAgICAgLy8gbGluZSwgdGhhdCdzIGEgcHJldHR5IGdvb2QgaW5kaWNhdG9yIHRoYXQgb3VyIHNhbXBsZSB0aHJldyBhdCBzYW1lIGxpbmUgYXNcbiAgICAgICAgICAvLyB0aGUgY29udHJvbC4gSS5lLiBiZWZvcmUgd2UgZW50ZXJlZCB0aGUgc2FtcGxlIGZyYW1lLiBTbyB3ZSBpZ25vcmUgdGhpcyByZXN1bHQuXG4gICAgICAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIGlmIHlvdSBwYXNzZWQgYSBjbGFzcyB0byBmdW5jdGlvbiBjb21wb25lbnQsIG9yIG5vbi1mdW5jdGlvbi5cbiAgICAgICAgICBpZiAocyAhPT0gMSB8fCBjICE9PSAxKSB7XG4gICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgIHMtLTtcbiAgICAgICAgICAgICAgYy0tOyAvLyBXZSBtYXkgc3RpbGwgaGF2ZSBzaW1pbGFyIGludGVybWVkaWF0ZSBmcmFtZXMgZnJvbSB0aGUgY29uc3RydWN0IGNhbGwuXG4gICAgICAgICAgICAgIC8vIFRoZSBuZXh0IG9uZSB0aGF0IGlzbid0IHRoZSBzYW1lIHNob3VsZCBiZSBvdXIgbWF0Y2ggdGhvdWdoLlxuXG4gICAgICAgICAgICAgIGlmIChjIDwgMCB8fCBzYW1wbGVMaW5lc1tzXSAhPT0gY29udHJvbExpbmVzW2NdKSB7XG4gICAgICAgICAgICAgICAgLy8gVjggYWRkcyBhIFwibmV3XCIgcHJlZml4IGZvciBuYXRpdmUgY2xhc3Nlcy4gTGV0J3MgcmVtb3ZlIGl0IHRvIG1ha2UgaXQgcHJldHRpZXIuXG4gICAgICAgICAgICAgICAgdmFyIF9mcmFtZSA9ICdcXG4nICsgc2FtcGxlTGluZXNbc10ucmVwbGFjZSgnIGF0IG5ldyAnLCAnIGF0ICcpO1xuXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBmbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRGcmFtZUNhY2hlLnNldChmbiwgX2ZyYW1lKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IC8vIFJldHVybiB0aGUgbGluZSB3ZSBmb3VuZC5cblxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIF9mcmFtZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSB3aGlsZSAocyA+PSAxICYmIGMgPj0gMCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0gZmluYWxseSB7XG4gICAgcmVlbnRyeSA9IGZhbHNlO1xuXG4gICAge1xuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlci5jdXJyZW50ID0gcHJldmlvdXNEaXNwYXRjaGVyO1xuICAgICAgcmVlbmFibGVMb2dzKCk7XG4gICAgfVxuXG4gICAgRXJyb3IucHJlcGFyZVN0YWNrVHJhY2UgPSBwcmV2aW91c1ByZXBhcmVTdGFja1RyYWNlO1xuICB9IC8vIEZhbGxiYWNrIHRvIGp1c3QgdXNpbmcgdGhlIG5hbWUgaWYgd2UgY291bGRuJ3QgbWFrZSBpdCB0aHJvdy5cblxuXG4gIHZhciBuYW1lID0gZm4gPyBmbi5kaXNwbGF5TmFtZSB8fCBmbi5uYW1lIDogJyc7XG4gIHZhciBzeW50aGV0aWNGcmFtZSA9IG5hbWUgPyBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZShuYW1lKSA6ICcnO1xuXG4gIHtcbiAgICBpZiAodHlwZW9mIGZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb21wb25lbnRGcmFtZUNhY2hlLnNldChmbiwgc3ludGhldGljRnJhbWUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzeW50aGV0aWNGcmFtZTtcbn1cbmZ1bmN0aW9uIGRlc2NyaWJlRnVuY3Rpb25Db21wb25lbnRGcmFtZShmbiwgc291cmNlLCBvd25lckZuKSB7XG4gIHtcbiAgICByZXR1cm4gZGVzY3JpYmVOYXRpdmVDb21wb25lbnRGcmFtZShmbiwgZmFsc2UpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHNob3VsZENvbnN0cnVjdChDb21wb25lbnQpIHtcbiAgdmFyIHByb3RvdHlwZSA9IENvbXBvbmVudC5wcm90b3R5cGU7XG4gIHJldHVybiAhIShwcm90b3R5cGUgJiYgcHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQpO1xufVxuXG5mdW5jdGlvbiBkZXNjcmliZVVua25vd25FbGVtZW50VHlwZUZyYW1lSW5ERVYodHlwZSwgc291cmNlLCBvd25lckZuKSB7XG5cbiAgaWYgKHR5cGUgPT0gbnVsbCkge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHtcbiAgICAgIHJldHVybiBkZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lKHR5cGUsIHNob3VsZENvbnN0cnVjdCh0eXBlKSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZSh0eXBlKTtcbiAgfVxuXG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfVFlQRTpcbiAgICAgIHJldHVybiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZSgnU3VzcGVuc2UnKTtcblxuICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFOlxuICAgICAgcmV0dXJuIGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKCdTdXNwZW5zZUxpc3QnKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICBzd2l0Y2ggKHR5cGUuJCR0eXBlb2YpIHtcbiAgICAgIGNhc2UgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTpcbiAgICAgICAgcmV0dXJuIGRlc2NyaWJlRnVuY3Rpb25Db21wb25lbnRGcmFtZSh0eXBlLnJlbmRlcik7XG5cbiAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOlxuICAgICAgICAvLyBNZW1vIG1heSBjb250YWluIGFueSBjb21wb25lbnQgdHlwZSBzbyB3ZSByZWN1cnNpdmVseSByZXNvbHZlIGl0LlxuICAgICAgICByZXR1cm4gZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWKHR5cGUudHlwZSwgc291cmNlLCBvd25lckZuKTtcblxuICAgICAgY2FzZSBSRUFDVF9CTE9DS19UWVBFOlxuICAgICAgICByZXR1cm4gZGVzY3JpYmVGdW5jdGlvbkNvbXBvbmVudEZyYW1lKHR5cGUuX3JlbmRlcik7XG5cbiAgICAgIGNhc2UgUkVBQ1RfTEFaWV9UWVBFOlxuICAgICAgICB7XG4gICAgICAgICAgdmFyIGxhenlDb21wb25lbnQgPSB0eXBlO1xuICAgICAgICAgIHZhciBwYXlsb2FkID0gbGF6eUNvbXBvbmVudC5fcGF5bG9hZDtcbiAgICAgICAgICB2YXIgaW5pdCA9IGxhenlDb21wb25lbnQuX2luaXQ7XG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gTGF6eSBtYXkgY29udGFpbiBhbnkgY29tcG9uZW50IHR5cGUgc28gd2UgcmVjdXJzaXZlbHkgcmVzb2x2ZSBpdC5cbiAgICAgICAgICAgIHJldHVybiBkZXNjcmliZVVua25vd25FbGVtZW50VHlwZUZyYW1lSW5ERVYoaW5pdChwYXlsb2FkKSwgc291cmNlLCBvd25lckZuKTtcbiAgICAgICAgICB9IGNhdGNoICh4KSB7fVxuICAgICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuICcnO1xufVxuXG52YXIgbG9nZ2VkVHlwZUZhaWx1cmVzID0ge307XG52YXIgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0RGVidWdDdXJyZW50RnJhbWU7XG5cbmZ1bmN0aW9uIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50KGVsZW1lbnQpIHtcbiAge1xuICAgIGlmIChlbGVtZW50KSB7XG4gICAgICB2YXIgb3duZXIgPSBlbGVtZW50Ll9vd25lcjtcbiAgICAgIHZhciBzdGFjayA9IGRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFVihlbGVtZW50LnR5cGUsIGVsZW1lbnQuX3NvdXJjZSwgb3duZXIgPyBvd25lci50eXBlIDogbnVsbCk7XG4gICAgICBSZWFjdERlYnVnQ3VycmVudEZyYW1lLnNldEV4dHJhU3RhY2tGcmFtZShzdGFjayk7XG4gICAgfSBlbHNlIHtcbiAgICAgIFJlYWN0RGVidWdDdXJyZW50RnJhbWUuc2V0RXh0cmFTdGFja0ZyYW1lKG51bGwpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjaGVja1Byb3BUeXBlcyh0eXBlU3BlY3MsIHZhbHVlcywgbG9jYXRpb24sIGNvbXBvbmVudE5hbWUsIGVsZW1lbnQpIHtcbiAge1xuICAgIC8vICRGbG93Rml4TWUgVGhpcyBpcyBva2F5IGJ1dCBGbG93IGRvZXNuJ3Qga25vdyBpdC5cbiAgICB2YXIgaGFzID0gRnVuY3Rpb24uY2FsbC5iaW5kKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkpO1xuXG4gICAgZm9yICh2YXIgdHlwZVNwZWNOYW1lIGluIHR5cGVTcGVjcykge1xuICAgICAgaWYgKGhhcyh0eXBlU3BlY3MsIHR5cGVTcGVjTmFtZSkpIHtcbiAgICAgICAgdmFyIGVycm9yJDEgPSB2b2lkIDA7IC8vIFByb3AgdHlwZSB2YWxpZGF0aW9uIG1heSB0aHJvdy4gSW4gY2FzZSB0aGV5IGRvLCB3ZSBkb24ndCB3YW50IHRvXG4gICAgICAgIC8vIGZhaWwgdGhlIHJlbmRlciBwaGFzZSB3aGVyZSBpdCBkaWRuJ3QgZmFpbCBiZWZvcmUuIFNvIHdlIGxvZyBpdC5cbiAgICAgICAgLy8gQWZ0ZXIgdGhlc2UgaGF2ZSBiZWVuIGNsZWFuZWQgdXAsIHdlJ2xsIGxldCB0aGVtIHRocm93LlxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgLy8gVGhpcyBpcyBpbnRlbnRpb25hbGx5IGFuIGludmFyaWFudCB0aGF0IGdldHMgY2F1Z2h0LiBJdCdzIHRoZSBzYW1lXG4gICAgICAgICAgLy8gYmVoYXZpb3IgYXMgd2l0aG91dCB0aGlzIHN0YXRlbWVudCBleGNlcHQgd2l0aCBhIGJldHRlciBtZXNzYWdlLlxuICAgICAgICAgIGlmICh0eXBlb2YgdHlwZVNwZWNzW3R5cGVTcGVjTmFtZV0gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHZhciBlcnIgPSBFcnJvcigoY29tcG9uZW50TmFtZSB8fCAnUmVhY3QgY2xhc3MnKSArICc6ICcgKyBsb2NhdGlvbiArICcgdHlwZSBgJyArIHR5cGVTcGVjTmFtZSArICdgIGlzIGludmFsaWQ7ICcgKyAnaXQgbXVzdCBiZSBhIGZ1bmN0aW9uLCB1c3VhbGx5IGZyb20gdGhlIGBwcm9wLXR5cGVzYCBwYWNrYWdlLCBidXQgcmVjZWl2ZWQgYCcgKyB0eXBlb2YgdHlwZVNwZWNzW3R5cGVTcGVjTmFtZV0gKyAnYC4nICsgJ1RoaXMgb2Z0ZW4gaGFwcGVucyBiZWNhdXNlIG9mIHR5cG9zIHN1Y2ggYXMgYFByb3BUeXBlcy5mdW5jdGlvbmAgaW5zdGVhZCBvZiBgUHJvcFR5cGVzLmZ1bmNgLicpO1xuICAgICAgICAgICAgZXJyLm5hbWUgPSAnSW52YXJpYW50IFZpb2xhdGlvbic7XG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZXJyb3IkMSA9IHR5cGVTcGVjc1t0eXBlU3BlY05hbWVdKHZhbHVlcywgdHlwZVNwZWNOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgbnVsbCwgJ1NFQ1JFVF9ET19OT1RfUEFTU19USElTX09SX1lPVV9XSUxMX0JFX0ZJUkVEJyk7XG4gICAgICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICAgICAgZXJyb3IkMSA9IGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGVycm9yJDEgJiYgIShlcnJvciQxIGluc3RhbmNlb2YgRXJyb3IpKSB7XG4gICAgICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQoZWxlbWVudCk7XG5cbiAgICAgICAgICBlcnJvcignJXM6IHR5cGUgc3BlY2lmaWNhdGlvbiBvZiAlcycgKyAnIGAlc2AgaXMgaW52YWxpZDsgdGhlIHR5cGUgY2hlY2tlciAnICsgJ2Z1bmN0aW9uIG11c3QgcmV0dXJuIGBudWxsYCBvciBhbiBgRXJyb3JgIGJ1dCByZXR1cm5lZCBhICVzLiAnICsgJ1lvdSBtYXkgaGF2ZSBmb3Jnb3R0ZW4gdG8gcGFzcyBhbiBhcmd1bWVudCB0byB0aGUgdHlwZSBjaGVja2VyICcgKyAnY3JlYXRvciAoYXJyYXlPZiwgaW5zdGFuY2VPZiwgb2JqZWN0T2YsIG9uZU9mLCBvbmVPZlR5cGUsIGFuZCAnICsgJ3NoYXBlIGFsbCByZXF1aXJlIGFuIGFyZ3VtZW50KS4nLCBjb21wb25lbnROYW1lIHx8ICdSZWFjdCBjbGFzcycsIGxvY2F0aW9uLCB0eXBlU3BlY05hbWUsIHR5cGVvZiBlcnJvciQxKTtcblxuICAgICAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50KG51bGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGVycm9yJDEgaW5zdGFuY2VvZiBFcnJvciAmJiAhKGVycm9yJDEubWVzc2FnZSBpbiBsb2dnZWRUeXBlRmFpbHVyZXMpKSB7XG4gICAgICAgICAgLy8gT25seSBtb25pdG9yIHRoaXMgZmFpbHVyZSBvbmNlIGJlY2F1c2UgdGhlcmUgdGVuZHMgdG8gYmUgYSBsb3Qgb2YgdGhlXG4gICAgICAgICAgLy8gc2FtZSBlcnJvci5cbiAgICAgICAgICBsb2dnZWRUeXBlRmFpbHVyZXNbZXJyb3IkMS5tZXNzYWdlXSA9IHRydWU7XG4gICAgICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQoZWxlbWVudCk7XG5cbiAgICAgICAgICBlcnJvcignRmFpbGVkICVzIHR5cGU6ICVzJywgbG9jYXRpb24sIGVycm9yJDEubWVzc2FnZSk7XG5cbiAgICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChudWxsKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG52YXIgUmVhY3RDdXJyZW50T3duZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdEN1cnJlbnRPd25lcjtcbnZhciBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG52YXIgUkVTRVJWRURfUFJPUFMgPSB7XG4gIGtleTogdHJ1ZSxcbiAgcmVmOiB0cnVlLFxuICBfX3NlbGY6IHRydWUsXG4gIF9fc291cmNlOiB0cnVlXG59O1xudmFyIHNwZWNpYWxQcm9wS2V5V2FybmluZ1Nob3duO1xudmFyIHNwZWNpYWxQcm9wUmVmV2FybmluZ1Nob3duO1xudmFyIGRpZFdhcm5BYm91dFN0cmluZ1JlZnM7XG5cbntcbiAgZGlkV2FybkFib3V0U3RyaW5nUmVmcyA9IHt9O1xufVxuXG5mdW5jdGlvbiBoYXNWYWxpZFJlZihjb25maWcpIHtcbiAge1xuICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbmZpZywgJ3JlZicpKSB7XG4gICAgICB2YXIgZ2V0dGVyID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjb25maWcsICdyZWYnKS5nZXQ7XG5cbiAgICAgIGlmIChnZXR0ZXIgJiYgZ2V0dGVyLmlzUmVhY3RXYXJuaW5nKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gY29uZmlnLnJlZiAhPT0gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBoYXNWYWxpZEtleShjb25maWcpIHtcbiAge1xuICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbmZpZywgJ2tleScpKSB7XG4gICAgICB2YXIgZ2V0dGVyID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjb25maWcsICdrZXknKS5nZXQ7XG5cbiAgICAgIGlmIChnZXR0ZXIgJiYgZ2V0dGVyLmlzUmVhY3RXYXJuaW5nKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gY29uZmlnLmtleSAhPT0gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiB3YXJuSWZTdHJpbmdSZWZDYW5ub3RCZUF1dG9Db252ZXJ0ZWQoY29uZmlnLCBzZWxmKSB7XG4gIHtcbiAgICBpZiAodHlwZW9mIGNvbmZpZy5yZWYgPT09ICdzdHJpbmcnICYmIFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQgJiYgc2VsZiAmJiBSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50LnN0YXRlTm9kZSAhPT0gc2VsZikge1xuICAgICAgdmFyIGNvbXBvbmVudE5hbWUgPSBnZXRDb21wb25lbnROYW1lKFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQudHlwZSk7XG5cbiAgICAgIGlmICghZGlkV2FybkFib3V0U3RyaW5nUmVmc1tjb21wb25lbnROYW1lXSkge1xuICAgICAgICBlcnJvcignQ29tcG9uZW50IFwiJXNcIiBjb250YWlucyB0aGUgc3RyaW5nIHJlZiBcIiVzXCIuICcgKyAnU3VwcG9ydCBmb3Igc3RyaW5nIHJlZnMgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIG1ham9yIHJlbGVhc2UuICcgKyAnVGhpcyBjYXNlIGNhbm5vdCBiZSBhdXRvbWF0aWNhbGx5IGNvbnZlcnRlZCB0byBhbiBhcnJvdyBmdW5jdGlvbi4gJyArICdXZSBhc2sgeW91IHRvIG1hbnVhbGx5IGZpeCB0aGlzIGNhc2UgYnkgdXNpbmcgdXNlUmVmKCkgb3IgY3JlYXRlUmVmKCkgaW5zdGVhZC4gJyArICdMZWFybiBtb3JlIGFib3V0IHVzaW5nIHJlZnMgc2FmZWx5IGhlcmU6ICcgKyAnaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3N0cmljdC1tb2RlLXN0cmluZy1yZWYnLCBnZXRDb21wb25lbnROYW1lKFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQudHlwZSksIGNvbmZpZy5yZWYpO1xuXG4gICAgICAgIGRpZFdhcm5BYm91dFN0cmluZ1JlZnNbY29tcG9uZW50TmFtZV0gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBkZWZpbmVLZXlQcm9wV2FybmluZ0dldHRlcihwcm9wcywgZGlzcGxheU5hbWUpIHtcbiAge1xuICAgIHZhciB3YXJuQWJvdXRBY2Nlc3NpbmdLZXkgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAoIXNwZWNpYWxQcm9wS2V5V2FybmluZ1Nob3duKSB7XG4gICAgICAgIHNwZWNpYWxQcm9wS2V5V2FybmluZ1Nob3duID0gdHJ1ZTtcblxuICAgICAgICBlcnJvcignJXM6IGBrZXlgIGlzIG5vdCBhIHByb3AuIFRyeWluZyB0byBhY2Nlc3MgaXQgd2lsbCByZXN1bHQgJyArICdpbiBgdW5kZWZpbmVkYCBiZWluZyByZXR1cm5lZC4gSWYgeW91IG5lZWQgdG8gYWNjZXNzIHRoZSBzYW1lICcgKyAndmFsdWUgd2l0aGluIHRoZSBjaGlsZCBjb21wb25lbnQsIHlvdSBzaG91bGQgcGFzcyBpdCBhcyBhIGRpZmZlcmVudCAnICsgJ3Byb3AuIChodHRwczovL3JlYWN0anMub3JnL2xpbmsvc3BlY2lhbC1wcm9wcyknLCBkaXNwbGF5TmFtZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHdhcm5BYm91dEFjY2Vzc2luZ0tleS5pc1JlYWN0V2FybmluZyA9IHRydWU7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3BzLCAna2V5Jywge1xuICAgICAgZ2V0OiB3YXJuQWJvdXRBY2Nlc3NpbmdLZXksXG4gICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBkZWZpbmVSZWZQcm9wV2FybmluZ0dldHRlcihwcm9wcywgZGlzcGxheU5hbWUpIHtcbiAge1xuICAgIHZhciB3YXJuQWJvdXRBY2Nlc3NpbmdSZWYgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAoIXNwZWNpYWxQcm9wUmVmV2FybmluZ1Nob3duKSB7XG4gICAgICAgIHNwZWNpYWxQcm9wUmVmV2FybmluZ1Nob3duID0gdHJ1ZTtcblxuICAgICAgICBlcnJvcignJXM6IGByZWZgIGlzIG5vdCBhIHByb3AuIFRyeWluZyB0byBhY2Nlc3MgaXQgd2lsbCByZXN1bHQgJyArICdpbiBgdW5kZWZpbmVkYCBiZWluZyByZXR1cm5lZC4gSWYgeW91IG5lZWQgdG8gYWNjZXNzIHRoZSBzYW1lICcgKyAndmFsdWUgd2l0aGluIHRoZSBjaGlsZCBjb21wb25lbnQsIHlvdSBzaG91bGQgcGFzcyBpdCBhcyBhIGRpZmZlcmVudCAnICsgJ3Byb3AuIChodHRwczovL3JlYWN0anMub3JnL2xpbmsvc3BlY2lhbC1wcm9wcyknLCBkaXNwbGF5TmFtZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHdhcm5BYm91dEFjY2Vzc2luZ1JlZi5pc1JlYWN0V2FybmluZyA9IHRydWU7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3BzLCAncmVmJywge1xuICAgICAgZ2V0OiB3YXJuQWJvdXRBY2Nlc3NpbmdSZWYsXG4gICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgfVxufVxuLyoqXG4gKiBGYWN0b3J5IG1ldGhvZCB0byBjcmVhdGUgYSBuZXcgUmVhY3QgZWxlbWVudC4gVGhpcyBubyBsb25nZXIgYWRoZXJlcyB0b1xuICogdGhlIGNsYXNzIHBhdHRlcm4sIHNvIGRvIG5vdCB1c2UgbmV3IHRvIGNhbGwgaXQuIEFsc28sIGluc3RhbmNlb2YgY2hlY2tcbiAqIHdpbGwgbm90IHdvcmsuIEluc3RlYWQgdGVzdCAkJHR5cGVvZiBmaWVsZCBhZ2FpbnN0IFN5bWJvbC5mb3IoJ3JlYWN0LmVsZW1lbnQnKSB0byBjaGVja1xuICogaWYgc29tZXRoaW5nIGlzIGEgUmVhY3QgRWxlbWVudC5cbiAqXG4gKiBAcGFyYW0geyp9IHR5cGVcbiAqIEBwYXJhbSB7Kn0gcHJvcHNcbiAqIEBwYXJhbSB7Kn0ga2V5XG4gKiBAcGFyYW0ge3N0cmluZ3xvYmplY3R9IHJlZlxuICogQHBhcmFtIHsqfSBvd25lclxuICogQHBhcmFtIHsqfSBzZWxmIEEgKnRlbXBvcmFyeSogaGVscGVyIHRvIGRldGVjdCBwbGFjZXMgd2hlcmUgYHRoaXNgIGlzXG4gKiBkaWZmZXJlbnQgZnJvbSB0aGUgYG93bmVyYCB3aGVuIFJlYWN0LmNyZWF0ZUVsZW1lbnQgaXMgY2FsbGVkLCBzbyB0aGF0IHdlXG4gKiBjYW4gd2Fybi4gV2Ugd2FudCB0byBnZXQgcmlkIG9mIG93bmVyIGFuZCByZXBsYWNlIHN0cmluZyBgcmVmYHMgd2l0aCBhcnJvd1xuICogZnVuY3Rpb25zLCBhbmQgYXMgbG9uZyBhcyBgdGhpc2AgYW5kIG93bmVyIGFyZSB0aGUgc2FtZSwgdGhlcmUgd2lsbCBiZSBub1xuICogY2hhbmdlIGluIGJlaGF2aW9yLlxuICogQHBhcmFtIHsqfSBzb3VyY2UgQW4gYW5ub3RhdGlvbiBvYmplY3QgKGFkZGVkIGJ5IGEgdHJhbnNwaWxlciBvciBvdGhlcndpc2UpXG4gKiBpbmRpY2F0aW5nIGZpbGVuYW1lLCBsaW5lIG51bWJlciwgYW5kL29yIG90aGVyIGluZm9ybWF0aW9uLlxuICogQGludGVybmFsXG4gKi9cblxuXG52YXIgUmVhY3RFbGVtZW50ID0gZnVuY3Rpb24gKHR5cGUsIGtleSwgcmVmLCBzZWxmLCBzb3VyY2UsIG93bmVyLCBwcm9wcykge1xuICB2YXIgZWxlbWVudCA9IHtcbiAgICAvLyBUaGlzIHRhZyBhbGxvd3MgdXMgdG8gdW5pcXVlbHkgaWRlbnRpZnkgdGhpcyBhcyBhIFJlYWN0IEVsZW1lbnRcbiAgICAkJHR5cGVvZjogUkVBQ1RfRUxFTUVOVF9UWVBFLFxuICAgIC8vIEJ1aWx0LWluIHByb3BlcnRpZXMgdGhhdCBiZWxvbmcgb24gdGhlIGVsZW1lbnRcbiAgICB0eXBlOiB0eXBlLFxuICAgIGtleToga2V5LFxuICAgIHJlZjogcmVmLFxuICAgIHByb3BzOiBwcm9wcyxcbiAgICAvLyBSZWNvcmQgdGhlIGNvbXBvbmVudCByZXNwb25zaWJsZSBmb3IgY3JlYXRpbmcgdGhpcyBlbGVtZW50LlxuICAgIF9vd25lcjogb3duZXJcbiAgfTtcblxuICB7XG4gICAgLy8gVGhlIHZhbGlkYXRpb24gZmxhZyBpcyBjdXJyZW50bHkgbXV0YXRpdmUuIFdlIHB1dCBpdCBvblxuICAgIC8vIGFuIGV4dGVybmFsIGJhY2tpbmcgc3RvcmUgc28gdGhhdCB3ZSBjYW4gZnJlZXplIHRoZSB3aG9sZSBvYmplY3QuXG4gICAgLy8gVGhpcyBjYW4gYmUgcmVwbGFjZWQgd2l0aCBhIFdlYWtNYXAgb25jZSB0aGV5IGFyZSBpbXBsZW1lbnRlZCBpblxuICAgIC8vIGNvbW1vbmx5IHVzZWQgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnRzLlxuICAgIGVsZW1lbnQuX3N0b3JlID0ge307IC8vIFRvIG1ha2UgY29tcGFyaW5nIFJlYWN0RWxlbWVudHMgZWFzaWVyIGZvciB0ZXN0aW5nIHB1cnBvc2VzLCB3ZSBtYWtlXG4gICAgLy8gdGhlIHZhbGlkYXRpb24gZmxhZyBub24tZW51bWVyYWJsZSAod2hlcmUgcG9zc2libGUsIHdoaWNoIHNob3VsZFxuICAgIC8vIGluY2x1ZGUgZXZlcnkgZW52aXJvbm1lbnQgd2UgcnVuIHRlc3RzIGluKSwgc28gdGhlIHRlc3QgZnJhbWV3b3JrXG4gICAgLy8gaWdub3JlcyBpdC5cblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlbGVtZW50Ll9zdG9yZSwgJ3ZhbGlkYXRlZCcsIHtcbiAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgdmFsdWU6IGZhbHNlXG4gICAgfSk7IC8vIHNlbGYgYW5kIHNvdXJjZSBhcmUgREVWIG9ubHkgcHJvcGVydGllcy5cblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlbGVtZW50LCAnX3NlbGYnLCB7XG4gICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICB2YWx1ZTogc2VsZlxuICAgIH0pOyAvLyBUd28gZWxlbWVudHMgY3JlYXRlZCBpbiB0d28gZGlmZmVyZW50IHBsYWNlcyBzaG91bGQgYmUgY29uc2lkZXJlZFxuICAgIC8vIGVxdWFsIGZvciB0ZXN0aW5nIHB1cnBvc2VzIGFuZCB0aGVyZWZvcmUgd2UgaGlkZSBpdCBmcm9tIGVudW1lcmF0aW9uLlxuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGVsZW1lbnQsICdfc291cmNlJywge1xuICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgICAgdmFsdWU6IHNvdXJjZVxuICAgIH0pO1xuXG4gICAgaWYgKE9iamVjdC5mcmVlemUpIHtcbiAgICAgIE9iamVjdC5mcmVlemUoZWxlbWVudC5wcm9wcyk7XG4gICAgICBPYmplY3QuZnJlZXplKGVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBlbGVtZW50O1xufTtcbi8qKlxuICogaHR0cHM6Ly9naXRodWIuY29tL3JlYWN0anMvcmZjcy9wdWxsLzEwN1xuICogQHBhcmFtIHsqfSB0eXBlXG4gKiBAcGFyYW0ge29iamVjdH0gcHJvcHNcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXlcbiAqL1xuXG5mdW5jdGlvbiBqc3hERVYodHlwZSwgY29uZmlnLCBtYXliZUtleSwgc291cmNlLCBzZWxmKSB7XG4gIHtcbiAgICB2YXIgcHJvcE5hbWU7IC8vIFJlc2VydmVkIG5hbWVzIGFyZSBleHRyYWN0ZWRcblxuICAgIHZhciBwcm9wcyA9IHt9O1xuICAgIHZhciBrZXkgPSBudWxsO1xuICAgIHZhciByZWYgPSBudWxsOyAvLyBDdXJyZW50bHksIGtleSBjYW4gYmUgc3ByZWFkIGluIGFzIGEgcHJvcC4gVGhpcyBjYXVzZXMgYSBwb3RlbnRpYWxcbiAgICAvLyBpc3N1ZSBpZiBrZXkgaXMgYWxzbyBleHBsaWNpdGx5IGRlY2xhcmVkIChpZS4gPGRpdiB7Li4ucHJvcHN9IGtleT1cIkhpXCIgLz5cbiAgICAvLyBvciA8ZGl2IGtleT1cIkhpXCIgey4uLnByb3BzfSAvPiApLiBXZSB3YW50IHRvIGRlcHJlY2F0ZSBrZXkgc3ByZWFkLFxuICAgIC8vIGJ1dCBhcyBhbiBpbnRlcm1lZGlhcnkgc3RlcCwgd2Ugd2lsbCB1c2UganN4REVWIGZvciBldmVyeXRoaW5nIGV4Y2VwdFxuICAgIC8vIDxkaXYgey4uLnByb3BzfSBrZXk9XCJIaVwiIC8+LCBiZWNhdXNlIHdlIGFyZW4ndCBjdXJyZW50bHkgYWJsZSB0byB0ZWxsIGlmXG4gICAgLy8ga2V5IGlzIGV4cGxpY2l0bHkgZGVjbGFyZWQgdG8gYmUgdW5kZWZpbmVkIG9yIG5vdC5cblxuICAgIGlmIChtYXliZUtleSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBrZXkgPSAnJyArIG1heWJlS2V5O1xuICAgIH1cblxuICAgIGlmIChoYXNWYWxpZEtleShjb25maWcpKSB7XG4gICAgICBrZXkgPSAnJyArIGNvbmZpZy5rZXk7XG4gICAgfVxuXG4gICAgaWYgKGhhc1ZhbGlkUmVmKGNvbmZpZykpIHtcbiAgICAgIHJlZiA9IGNvbmZpZy5yZWY7XG4gICAgICB3YXJuSWZTdHJpbmdSZWZDYW5ub3RCZUF1dG9Db252ZXJ0ZWQoY29uZmlnLCBzZWxmKTtcbiAgICB9IC8vIFJlbWFpbmluZyBwcm9wZXJ0aWVzIGFyZSBhZGRlZCB0byBhIG5ldyBwcm9wcyBvYmplY3RcblxuXG4gICAgZm9yIChwcm9wTmFtZSBpbiBjb25maWcpIHtcbiAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbmZpZywgcHJvcE5hbWUpICYmICFSRVNFUlZFRF9QUk9QUy5oYXNPd25Qcm9wZXJ0eShwcm9wTmFtZSkpIHtcbiAgICAgICAgcHJvcHNbcHJvcE5hbWVdID0gY29uZmlnW3Byb3BOYW1lXTtcbiAgICAgIH1cbiAgICB9IC8vIFJlc29sdmUgZGVmYXVsdCBwcm9wc1xuXG5cbiAgICBpZiAodHlwZSAmJiB0eXBlLmRlZmF1bHRQcm9wcykge1xuICAgICAgdmFyIGRlZmF1bHRQcm9wcyA9IHR5cGUuZGVmYXVsdFByb3BzO1xuXG4gICAgICBmb3IgKHByb3BOYW1lIGluIGRlZmF1bHRQcm9wcykge1xuICAgICAgICBpZiAocHJvcHNbcHJvcE5hbWVdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBwcm9wc1twcm9wTmFtZV0gPSBkZWZhdWx0UHJvcHNbcHJvcE5hbWVdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGtleSB8fCByZWYpIHtcbiAgICAgIHZhciBkaXNwbGF5TmFtZSA9IHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nID8gdHlwZS5kaXNwbGF5TmFtZSB8fCB0eXBlLm5hbWUgfHwgJ1Vua25vd24nIDogdHlwZTtcblxuICAgICAgaWYgKGtleSkge1xuICAgICAgICBkZWZpbmVLZXlQcm9wV2FybmluZ0dldHRlcihwcm9wcywgZGlzcGxheU5hbWUpO1xuICAgICAgfVxuXG4gICAgICBpZiAocmVmKSB7XG4gICAgICAgIGRlZmluZVJlZlByb3BXYXJuaW5nR2V0dGVyKHByb3BzLCBkaXNwbGF5TmFtZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIFJlYWN0RWxlbWVudCh0eXBlLCBrZXksIHJlZiwgc2VsZiwgc291cmNlLCBSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50LCBwcm9wcyk7XG4gIH1cbn1cblxudmFyIFJlYWN0Q3VycmVudE93bmVyJDEgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdEN1cnJlbnRPd25lcjtcbnZhciBSZWFjdERlYnVnQ3VycmVudEZyYW1lJDEgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdERlYnVnQ3VycmVudEZyYW1lO1xuXG5mdW5jdGlvbiBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudCQxKGVsZW1lbnQpIHtcbiAge1xuICAgIGlmIChlbGVtZW50KSB7XG4gICAgICB2YXIgb3duZXIgPSBlbGVtZW50Ll9vd25lcjtcbiAgICAgIHZhciBzdGFjayA9IGRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFVihlbGVtZW50LnR5cGUsIGVsZW1lbnQuX3NvdXJjZSwgb3duZXIgPyBvd25lci50eXBlIDogbnVsbCk7XG4gICAgICBSZWFjdERlYnVnQ3VycmVudEZyYW1lJDEuc2V0RXh0cmFTdGFja0ZyYW1lKHN0YWNrKTtcbiAgICB9IGVsc2Uge1xuICAgICAgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSQxLnNldEV4dHJhU3RhY2tGcmFtZShudWxsKTtcbiAgICB9XG4gIH1cbn1cblxudmFyIHByb3BUeXBlc01pc3NwZWxsV2FybmluZ1Nob3duO1xuXG57XG4gIHByb3BUeXBlc01pc3NwZWxsV2FybmluZ1Nob3duID0gZmFsc2U7XG59XG4vKipcbiAqIFZlcmlmaWVzIHRoZSBvYmplY3QgaXMgYSBSZWFjdEVsZW1lbnQuXG4gKiBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL3JlYWN0LWFwaS5odG1sI2lzdmFsaWRlbGVtZW50XG4gKiBAcGFyYW0gez9vYmplY3R9IG9iamVjdFxuICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSBpZiBgb2JqZWN0YCBpcyBhIFJlYWN0RWxlbWVudC5cbiAqIEBmaW5hbFxuICovXG5cbmZ1bmN0aW9uIGlzVmFsaWRFbGVtZW50KG9iamVjdCkge1xuICB7XG4gICAgcmV0dXJuIHR5cGVvZiBvYmplY3QgPT09ICdvYmplY3QnICYmIG9iamVjdCAhPT0gbnVsbCAmJiBvYmplY3QuJCR0eXBlb2YgPT09IFJFQUNUX0VMRU1FTlRfVFlQRTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0oKSB7XG4gIHtcbiAgICBpZiAoUmVhY3RDdXJyZW50T3duZXIkMS5jdXJyZW50KSB7XG4gICAgICB2YXIgbmFtZSA9IGdldENvbXBvbmVudE5hbWUoUmVhY3RDdXJyZW50T3duZXIkMS5jdXJyZW50LnR5cGUpO1xuXG4gICAgICBpZiAobmFtZSkge1xuICAgICAgICByZXR1cm4gJ1xcblxcbkNoZWNrIHRoZSByZW5kZXIgbWV0aG9kIG9mIGAnICsgbmFtZSArICdgLic7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuICcnO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldFNvdXJjZUluZm9FcnJvckFkZGVuZHVtKHNvdXJjZSkge1xuICB7XG4gICAgaWYgKHNvdXJjZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB2YXIgZmlsZU5hbWUgPSBzb3VyY2UuZmlsZU5hbWUucmVwbGFjZSgvXi4qW1xcXFxcXC9dLywgJycpO1xuICAgICAgdmFyIGxpbmVOdW1iZXIgPSBzb3VyY2UubGluZU51bWJlcjtcbiAgICAgIHJldHVybiAnXFxuXFxuQ2hlY2sgeW91ciBjb2RlIGF0ICcgKyBmaWxlTmFtZSArICc6JyArIGxpbmVOdW1iZXIgKyAnLic7XG4gICAgfVxuXG4gICAgcmV0dXJuICcnO1xuICB9XG59XG4vKipcbiAqIFdhcm4gaWYgdGhlcmUncyBubyBrZXkgZXhwbGljaXRseSBzZXQgb24gZHluYW1pYyBhcnJheXMgb2YgY2hpbGRyZW4gb3JcbiAqIG9iamVjdCBrZXlzIGFyZSBub3QgdmFsaWQuIFRoaXMgYWxsb3dzIHVzIHRvIGtlZXAgdHJhY2sgb2YgY2hpbGRyZW4gYmV0d2VlblxuICogdXBkYXRlcy5cbiAqL1xuXG5cbnZhciBvd25lckhhc0tleVVzZVdhcm5pbmcgPSB7fTtcblxuZnVuY3Rpb24gZ2V0Q3VycmVudENvbXBvbmVudEVycm9ySW5mbyhwYXJlbnRUeXBlKSB7XG4gIHtcbiAgICB2YXIgaW5mbyA9IGdldERlY2xhcmF0aW9uRXJyb3JBZGRlbmR1bSgpO1xuXG4gICAgaWYgKCFpbmZvKSB7XG4gICAgICB2YXIgcGFyZW50TmFtZSA9IHR5cGVvZiBwYXJlbnRUeXBlID09PSAnc3RyaW5nJyA/IHBhcmVudFR5cGUgOiBwYXJlbnRUeXBlLmRpc3BsYXlOYW1lIHx8IHBhcmVudFR5cGUubmFtZTtcblxuICAgICAgaWYgKHBhcmVudE5hbWUpIHtcbiAgICAgICAgaW5mbyA9IFwiXFxuXFxuQ2hlY2sgdGhlIHRvcC1sZXZlbCByZW5kZXIgY2FsbCB1c2luZyA8XCIgKyBwYXJlbnROYW1lICsgXCI+LlwiO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBpbmZvO1xuICB9XG59XG4vKipcbiAqIFdhcm4gaWYgdGhlIGVsZW1lbnQgZG9lc24ndCBoYXZlIGFuIGV4cGxpY2l0IGtleSBhc3NpZ25lZCB0byBpdC5cbiAqIFRoaXMgZWxlbWVudCBpcyBpbiBhbiBhcnJheS4gVGhlIGFycmF5IGNvdWxkIGdyb3cgYW5kIHNocmluayBvciBiZVxuICogcmVvcmRlcmVkLiBBbGwgY2hpbGRyZW4gdGhhdCBoYXZlbid0IGFscmVhZHkgYmVlbiB2YWxpZGF0ZWQgYXJlIHJlcXVpcmVkIHRvXG4gKiBoYXZlIGEgXCJrZXlcIiBwcm9wZXJ0eSBhc3NpZ25lZCB0byBpdC4gRXJyb3Igc3RhdHVzZXMgYXJlIGNhY2hlZCBzbyBhIHdhcm5pbmdcbiAqIHdpbGwgb25seSBiZSBzaG93biBvbmNlLlxuICpcbiAqIEBpbnRlcm5hbFxuICogQHBhcmFtIHtSZWFjdEVsZW1lbnR9IGVsZW1lbnQgRWxlbWVudCB0aGF0IHJlcXVpcmVzIGEga2V5LlxuICogQHBhcmFtIHsqfSBwYXJlbnRUeXBlIGVsZW1lbnQncyBwYXJlbnQncyB0eXBlLlxuICovXG5cblxuZnVuY3Rpb24gdmFsaWRhdGVFeHBsaWNpdEtleShlbGVtZW50LCBwYXJlbnRUeXBlKSB7XG4gIHtcbiAgICBpZiAoIWVsZW1lbnQuX3N0b3JlIHx8IGVsZW1lbnQuX3N0b3JlLnZhbGlkYXRlZCB8fCBlbGVtZW50LmtleSAhPSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZWxlbWVudC5fc3RvcmUudmFsaWRhdGVkID0gdHJ1ZTtcbiAgICB2YXIgY3VycmVudENvbXBvbmVudEVycm9ySW5mbyA9IGdldEN1cnJlbnRDb21wb25lbnRFcnJvckluZm8ocGFyZW50VHlwZSk7XG5cbiAgICBpZiAob3duZXJIYXNLZXlVc2VXYXJuaW5nW2N1cnJlbnRDb21wb25lbnRFcnJvckluZm9dKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgb3duZXJIYXNLZXlVc2VXYXJuaW5nW2N1cnJlbnRDb21wb25lbnRFcnJvckluZm9dID0gdHJ1ZTsgLy8gVXN1YWxseSB0aGUgY3VycmVudCBvd25lciBpcyB0aGUgb2ZmZW5kZXIsIGJ1dCBpZiBpdCBhY2NlcHRzIGNoaWxkcmVuIGFzIGFcbiAgICAvLyBwcm9wZXJ0eSwgaXQgbWF5IGJlIHRoZSBjcmVhdG9yIG9mIHRoZSBjaGlsZCB0aGF0J3MgcmVzcG9uc2libGUgZm9yXG4gICAgLy8gYXNzaWduaW5nIGl0IGEga2V5LlxuXG4gICAgdmFyIGNoaWxkT3duZXIgPSAnJztcblxuICAgIGlmIChlbGVtZW50ICYmIGVsZW1lbnQuX293bmVyICYmIGVsZW1lbnQuX293bmVyICE9PSBSZWFjdEN1cnJlbnRPd25lciQxLmN1cnJlbnQpIHtcbiAgICAgIC8vIEdpdmUgdGhlIGNvbXBvbmVudCB0aGF0IG9yaWdpbmFsbHkgY3JlYXRlZCB0aGlzIGNoaWxkLlxuICAgICAgY2hpbGRPd25lciA9IFwiIEl0IHdhcyBwYXNzZWQgYSBjaGlsZCBmcm9tIFwiICsgZ2V0Q29tcG9uZW50TmFtZShlbGVtZW50Ll9vd25lci50eXBlKSArIFwiLlwiO1xuICAgIH1cblxuICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50JDEoZWxlbWVudCk7XG5cbiAgICBlcnJvcignRWFjaCBjaGlsZCBpbiBhIGxpc3Qgc2hvdWxkIGhhdmUgYSB1bmlxdWUgXCJrZXlcIiBwcm9wLicgKyAnJXMlcyBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3dhcm5pbmcta2V5cyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4nLCBjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvLCBjaGlsZE93bmVyKTtcblxuICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50JDEobnVsbCk7XG4gIH1cbn1cbi8qKlxuICogRW5zdXJlIHRoYXQgZXZlcnkgZWxlbWVudCBlaXRoZXIgaXMgcGFzc2VkIGluIGEgc3RhdGljIGxvY2F0aW9uLCBpbiBhblxuICogYXJyYXkgd2l0aCBhbiBleHBsaWNpdCBrZXlzIHByb3BlcnR5IGRlZmluZWQsIG9yIGluIGFuIG9iamVjdCBsaXRlcmFsXG4gKiB3aXRoIHZhbGlkIGtleSBwcm9wZXJ0eS5cbiAqXG4gKiBAaW50ZXJuYWxcbiAqIEBwYXJhbSB7UmVhY3ROb2RlfSBub2RlIFN0YXRpY2FsbHkgcGFzc2VkIGNoaWxkIG9mIGFueSB0eXBlLlxuICogQHBhcmFtIHsqfSBwYXJlbnRUeXBlIG5vZGUncyBwYXJlbnQncyB0eXBlLlxuICovXG5cblxuZnVuY3Rpb24gdmFsaWRhdGVDaGlsZEtleXMobm9kZSwgcGFyZW50VHlwZSkge1xuICB7XG4gICAgaWYgKHR5cGVvZiBub2RlICE9PSAnb2JqZWN0Jykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KG5vZGUpKSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIGNoaWxkID0gbm9kZVtpXTtcblxuICAgICAgICBpZiAoaXNWYWxpZEVsZW1lbnQoY2hpbGQpKSB7XG4gICAgICAgICAgdmFsaWRhdGVFeHBsaWNpdEtleShjaGlsZCwgcGFyZW50VHlwZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGlzVmFsaWRFbGVtZW50KG5vZGUpKSB7XG4gICAgICAvLyBUaGlzIGVsZW1lbnQgd2FzIHBhc3NlZCBpbiBhIHZhbGlkIGxvY2F0aW9uLlxuICAgICAgaWYgKG5vZGUuX3N0b3JlKSB7XG4gICAgICAgIG5vZGUuX3N0b3JlLnZhbGlkYXRlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChub2RlKSB7XG4gICAgICB2YXIgaXRlcmF0b3JGbiA9IGdldEl0ZXJhdG9yRm4obm9kZSk7XG5cbiAgICAgIGlmICh0eXBlb2YgaXRlcmF0b3JGbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAvLyBFbnRyeSBpdGVyYXRvcnMgdXNlZCB0byBwcm92aWRlIGltcGxpY2l0IGtleXMsXG4gICAgICAgIC8vIGJ1dCBub3cgd2UgcHJpbnQgYSBzZXBhcmF0ZSB3YXJuaW5nIGZvciB0aGVtIGxhdGVyLlxuICAgICAgICBpZiAoaXRlcmF0b3JGbiAhPT0gbm9kZS5lbnRyaWVzKSB7XG4gICAgICAgICAgdmFyIGl0ZXJhdG9yID0gaXRlcmF0b3JGbi5jYWxsKG5vZGUpO1xuICAgICAgICAgIHZhciBzdGVwO1xuXG4gICAgICAgICAgd2hpbGUgKCEoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSkuZG9uZSkge1xuICAgICAgICAgICAgaWYgKGlzVmFsaWRFbGVtZW50KHN0ZXAudmFsdWUpKSB7XG4gICAgICAgICAgICAgIHZhbGlkYXRlRXhwbGljaXRLZXkoc3RlcC52YWx1ZSwgcGFyZW50VHlwZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4vKipcbiAqIEdpdmVuIGFuIGVsZW1lbnQsIHZhbGlkYXRlIHRoYXQgaXRzIHByb3BzIGZvbGxvdyB0aGUgcHJvcFR5cGVzIGRlZmluaXRpb24sXG4gKiBwcm92aWRlZCBieSB0aGUgdHlwZS5cbiAqXG4gKiBAcGFyYW0ge1JlYWN0RWxlbWVudH0gZWxlbWVudFxuICovXG5cblxuZnVuY3Rpb24gdmFsaWRhdGVQcm9wVHlwZXMoZWxlbWVudCkge1xuICB7XG4gICAgdmFyIHR5cGUgPSBlbGVtZW50LnR5cGU7XG5cbiAgICBpZiAodHlwZSA9PT0gbnVsbCB8fCB0eXBlID09PSB1bmRlZmluZWQgfHwgdHlwZW9mIHR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIHByb3BUeXBlcztcblxuICAgIGlmICh0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcHJvcFR5cGVzID0gdHlwZS5wcm9wVHlwZXM7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcgJiYgKHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgfHwgLy8gTm90ZTogTWVtbyBvbmx5IGNoZWNrcyBvdXRlciBwcm9wcyBoZXJlLlxuICAgIC8vIElubmVyIHByb3BzIGFyZSBjaGVja2VkIGluIHRoZSByZWNvbmNpbGVyLlxuICAgIHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX01FTU9fVFlQRSkpIHtcbiAgICAgIHByb3BUeXBlcyA9IHR5cGUucHJvcFR5cGVzO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHByb3BUeXBlcykge1xuICAgICAgLy8gSW50ZW50aW9uYWxseSBpbnNpZGUgdG8gYXZvaWQgdHJpZ2dlcmluZyBsYXp5IGluaXRpYWxpemVyczpcbiAgICAgIHZhciBuYW1lID0gZ2V0Q29tcG9uZW50TmFtZSh0eXBlKTtcbiAgICAgIGNoZWNrUHJvcFR5cGVzKHByb3BUeXBlcywgZWxlbWVudC5wcm9wcywgJ3Byb3AnLCBuYW1lLCBlbGVtZW50KTtcbiAgICB9IGVsc2UgaWYgKHR5cGUuUHJvcFR5cGVzICE9PSB1bmRlZmluZWQgJiYgIXByb3BUeXBlc01pc3NwZWxsV2FybmluZ1Nob3duKSB7XG4gICAgICBwcm9wVHlwZXNNaXNzcGVsbFdhcm5pbmdTaG93biA9IHRydWU7IC8vIEludGVudGlvbmFsbHkgaW5zaWRlIHRvIGF2b2lkIHRyaWdnZXJpbmcgbGF6eSBpbml0aWFsaXplcnM6XG5cbiAgICAgIHZhciBfbmFtZSA9IGdldENvbXBvbmVudE5hbWUodHlwZSk7XG5cbiAgICAgIGVycm9yKCdDb21wb25lbnQgJXMgZGVjbGFyZWQgYFByb3BUeXBlc2AgaW5zdGVhZCBvZiBgcHJvcFR5cGVzYC4gRGlkIHlvdSBtaXNzcGVsbCB0aGUgcHJvcGVydHkgYXNzaWdubWVudD8nLCBfbmFtZSB8fCAnVW5rbm93bicpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdHlwZS5nZXREZWZhdWx0UHJvcHMgPT09ICdmdW5jdGlvbicgJiYgIXR5cGUuZ2V0RGVmYXVsdFByb3BzLmlzUmVhY3RDbGFzc0FwcHJvdmVkKSB7XG4gICAgICBlcnJvcignZ2V0RGVmYXVsdFByb3BzIGlzIG9ubHkgdXNlZCBvbiBjbGFzc2ljIFJlYWN0LmNyZWF0ZUNsYXNzICcgKyAnZGVmaW5pdGlvbnMuIFVzZSBhIHN0YXRpYyBwcm9wZXJ0eSBuYW1lZCBgZGVmYXVsdFByb3BzYCBpbnN0ZWFkLicpO1xuICAgIH1cbiAgfVxufVxuLyoqXG4gKiBHaXZlbiBhIGZyYWdtZW50LCB2YWxpZGF0ZSB0aGF0IGl0IGNhbiBvbmx5IGJlIHByb3ZpZGVkIHdpdGggZnJhZ21lbnQgcHJvcHNcbiAqIEBwYXJhbSB7UmVhY3RFbGVtZW50fSBmcmFnbWVudFxuICovXG5cblxuZnVuY3Rpb24gdmFsaWRhdGVGcmFnbWVudFByb3BzKGZyYWdtZW50KSB7XG4gIHtcbiAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKGZyYWdtZW50LnByb3BzKTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGtleSA9IGtleXNbaV07XG5cbiAgICAgIGlmIChrZXkgIT09ICdjaGlsZHJlbicgJiYga2V5ICE9PSAna2V5Jykge1xuICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudCQxKGZyYWdtZW50KTtcblxuICAgICAgICBlcnJvcignSW52YWxpZCBwcm9wIGAlc2Agc3VwcGxpZWQgdG8gYFJlYWN0LkZyYWdtZW50YC4gJyArICdSZWFjdC5GcmFnbWVudCBjYW4gb25seSBoYXZlIGBrZXlgIGFuZCBgY2hpbGRyZW5gIHByb3BzLicsIGtleSk7XG5cbiAgICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQkMShudWxsKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGZyYWdtZW50LnJlZiAhPT0gbnVsbCkge1xuICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQkMShmcmFnbWVudCk7XG5cbiAgICAgIGVycm9yKCdJbnZhbGlkIGF0dHJpYnV0ZSBgcmVmYCBzdXBwbGllZCB0byBgUmVhY3QuRnJhZ21lbnRgLicpO1xuXG4gICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudCQxKG51bGwpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBqc3hXaXRoVmFsaWRhdGlvbih0eXBlLCBwcm9wcywga2V5LCBpc1N0YXRpY0NoaWxkcmVuLCBzb3VyY2UsIHNlbGYpIHtcbiAge1xuICAgIHZhciB2YWxpZFR5cGUgPSBpc1ZhbGlkRWxlbWVudFR5cGUodHlwZSk7IC8vIFdlIHdhcm4gaW4gdGhpcyBjYXNlIGJ1dCBkb24ndCB0aHJvdy4gV2UgZXhwZWN0IHRoZSBlbGVtZW50IGNyZWF0aW9uIHRvXG4gICAgLy8gc3VjY2VlZCBhbmQgdGhlcmUgd2lsbCBsaWtlbHkgYmUgZXJyb3JzIGluIHJlbmRlci5cblxuICAgIGlmICghdmFsaWRUeXBlKSB7XG4gICAgICB2YXIgaW5mbyA9ICcnO1xuXG4gICAgICBpZiAodHlwZSA9PT0gdW5kZWZpbmVkIHx8IHR5cGVvZiB0eXBlID09PSAnb2JqZWN0JyAmJiB0eXBlICE9PSBudWxsICYmIE9iamVjdC5rZXlzKHR5cGUpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBpbmZvICs9ICcgWW91IGxpa2VseSBmb3Jnb3QgdG8gZXhwb3J0IHlvdXIgY29tcG9uZW50IGZyb20gdGhlIGZpbGUgJyArIFwiaXQncyBkZWZpbmVkIGluLCBvciB5b3UgbWlnaHQgaGF2ZSBtaXhlZCB1cCBkZWZhdWx0IGFuZCBuYW1lZCBpbXBvcnRzLlwiO1xuICAgICAgfVxuXG4gICAgICB2YXIgc291cmNlSW5mbyA9IGdldFNvdXJjZUluZm9FcnJvckFkZGVuZHVtKHNvdXJjZSk7XG5cbiAgICAgIGlmIChzb3VyY2VJbmZvKSB7XG4gICAgICAgIGluZm8gKz0gc291cmNlSW5mbztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGluZm8gKz0gZ2V0RGVjbGFyYXRpb25FcnJvckFkZGVuZHVtKCk7XG4gICAgICB9XG5cbiAgICAgIHZhciB0eXBlU3RyaW5nO1xuXG4gICAgICBpZiAodHlwZSA9PT0gbnVsbCkge1xuICAgICAgICB0eXBlU3RyaW5nID0gJ251bGwnO1xuICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHR5cGUpKSB7XG4gICAgICAgIHR5cGVTdHJpbmcgPSAnYXJyYXknO1xuICAgICAgfSBlbHNlIGlmICh0eXBlICE9PSB1bmRlZmluZWQgJiYgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfRUxFTUVOVF9UWVBFKSB7XG4gICAgICAgIHR5cGVTdHJpbmcgPSBcIjxcIiArIChnZXRDb21wb25lbnROYW1lKHR5cGUudHlwZSkgfHwgJ1Vua25vd24nKSArIFwiIC8+XCI7XG4gICAgICAgIGluZm8gPSAnIERpZCB5b3UgYWNjaWRlbnRhbGx5IGV4cG9ydCBhIEpTWCBsaXRlcmFsIGluc3RlYWQgb2YgYSBjb21wb25lbnQ/JztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHR5cGVTdHJpbmcgPSB0eXBlb2YgdHlwZTtcbiAgICAgIH1cblxuICAgICAgZXJyb3IoJ1JlYWN0LmpzeDogdHlwZSBpcyBpbnZhbGlkIC0tIGV4cGVjdGVkIGEgc3RyaW5nIChmb3IgJyArICdidWlsdC1pbiBjb21wb25lbnRzKSBvciBhIGNsYXNzL2Z1bmN0aW9uIChmb3IgY29tcG9zaXRlICcgKyAnY29tcG9uZW50cykgYnV0IGdvdDogJXMuJXMnLCB0eXBlU3RyaW5nLCBpbmZvKTtcbiAgICB9XG5cbiAgICB2YXIgZWxlbWVudCA9IGpzeERFVih0eXBlLCBwcm9wcywga2V5LCBzb3VyY2UsIHNlbGYpOyAvLyBUaGUgcmVzdWx0IGNhbiBiZSBudWxsaXNoIGlmIGEgbW9jayBvciBhIGN1c3RvbSBmdW5jdGlvbiBpcyB1c2VkLlxuICAgIC8vIFRPRE86IERyb3AgdGhpcyB3aGVuIHRoZXNlIGFyZSBubyBsb25nZXIgYWxsb3dlZCBhcyB0aGUgdHlwZSBhcmd1bWVudC5cblxuICAgIGlmIChlbGVtZW50ID09IG51bGwpIHtcbiAgICAgIHJldHVybiBlbGVtZW50O1xuICAgIH0gLy8gU2tpcCBrZXkgd2FybmluZyBpZiB0aGUgdHlwZSBpc24ndCB2YWxpZCBzaW5jZSBvdXIga2V5IHZhbGlkYXRpb24gbG9naWNcbiAgICAvLyBkb2Vzbid0IGV4cGVjdCBhIG5vbi1zdHJpbmcvZnVuY3Rpb24gdHlwZSBhbmQgY2FuIHRocm93IGNvbmZ1c2luZyBlcnJvcnMuXG4gICAgLy8gV2UgZG9uJ3Qgd2FudCBleGNlcHRpb24gYmVoYXZpb3IgdG8gZGlmZmVyIGJldHdlZW4gZGV2IGFuZCBwcm9kLlxuICAgIC8vIChSZW5kZXJpbmcgd2lsbCB0aHJvdyB3aXRoIGEgaGVscGZ1bCBtZXNzYWdlIGFuZCBhcyBzb29uIGFzIHRoZSB0eXBlIGlzXG4gICAgLy8gZml4ZWQsIHRoZSBrZXkgd2FybmluZ3Mgd2lsbCBhcHBlYXIuKVxuXG5cbiAgICBpZiAodmFsaWRUeXBlKSB7XG4gICAgICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbjtcblxuICAgICAgaWYgKGNoaWxkcmVuICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKGlzU3RhdGljQ2hpbGRyZW4pIHtcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShjaGlsZHJlbikpIHtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgdmFsaWRhdGVDaGlsZEtleXMoY2hpbGRyZW5baV0sIHR5cGUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoT2JqZWN0LmZyZWV6ZSkge1xuICAgICAgICAgICAgICBPYmplY3QuZnJlZXplKGNoaWxkcmVuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXJyb3IoJ1JlYWN0LmpzeDogU3RhdGljIGNoaWxkcmVuIHNob3VsZCBhbHdheXMgYmUgYW4gYXJyYXkuICcgKyAnWW91IGFyZSBsaWtlbHkgZXhwbGljaXRseSBjYWxsaW5nIFJlYWN0LmpzeHMgb3IgUmVhY3QuanN4REVWLiAnICsgJ1VzZSB0aGUgQmFiZWwgdHJhbnNmb3JtIGluc3RlYWQuJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhbGlkYXRlQ2hpbGRLZXlzKGNoaWxkcmVuLCB0eXBlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0eXBlID09PSBleHBvcnRzLkZyYWdtZW50KSB7XG4gICAgICB2YWxpZGF0ZUZyYWdtZW50UHJvcHMoZWxlbWVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbGlkYXRlUHJvcFR5cGVzKGVsZW1lbnQpO1xuICAgIH1cblxuICAgIHJldHVybiBlbGVtZW50O1xuICB9XG59IC8vIFRoZXNlIHR3byBmdW5jdGlvbnMgZXhpc3QgdG8gc3RpbGwgZ2V0IGNoaWxkIHdhcm5pbmdzIGluIGRldlxuXG52YXIganN4REVWJDEgPSAganN4V2l0aFZhbGlkYXRpb24gO1xuXG5leHBvcnRzLmpzeERFViA9IGpzeERFViQxO1xuICB9KSgpO1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/react/cjs/react-jsx-dev-runtime.development.js\n"); + +/***/ }), + +/***/ "./node_modules/react/jsx-dev-runtime.js": +/*!***********************************************!*\ + !*** ./node_modules/react/jsx-dev-runtime.js ***! + \***********************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-jsx-dev-runtime.development.js */ \"./node_modules/react/cjs/react-jsx-dev-runtime.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QvanN4LWRldi1ydW50aW1lLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLElBQUksS0FBcUMsRUFBRSxFQUUxQyxDQUFDO0FBQ0YsRUFBRSx1SkFBc0U7QUFDeEUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0L2pzeC1kZXYtcnVudGltZS5qcz81Nzc3Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1qc3gtZGV2LXJ1bnRpbWUucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtanN4LWRldi1ydW50aW1lLmRldmVsb3BtZW50LmpzJyk7XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react/jsx-dev-runtime.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/defineProperty.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _defineProperty; }\n/* harmony export */ });\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZGVmaW5lUHJvcGVydHkuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2RlZmluZVByb3BlcnR5LmpzPzg5MTAiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KG9iaiwga2V5LCB2YWx1ZSkge1xuICBpZiAoa2V5IGluIG9iaikge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwge1xuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgb2JqW2tleV0gPSB2YWx1ZTtcbiAgfVxuXG4gIHJldHVybiBvYmo7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js\n"); + +/***/ }), + +/***/ "./src/data/app.json": +/*!***************************!*\ + !*** ./src/data/app.json ***! + \***************************/ +/***/ (function(module) { + +"use strict"; +module.exports = JSON.parse('{"lightLogo":"/img/logo.png","darkLogo":"/img/logo.png","footerLogo":"/img/logo white.png","showLoading":true}'); + +/***/ }) + +}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); } +/******/ __webpack_require__.O(0, ["main"], function() { return __webpack_exec__("./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2F_app&absolutePagePath=private-next-pages%2F_app!"), __webpack_exec__("./node_modules/next/dist/client/router.js"); }); +/******/ var __webpack_exports__ = __webpack_require__.O(); +/******/ _N_E = __webpack_exports__; +/******/ } +]); \ No newline at end of file diff --git a/.next/static/chunks/pages/_error.js b/.next/static/chunks/pages/_error.js new file mode 100644 index 0000000..2726d8c --- /dev/null +++ b/.next/static/chunks/pages/_error.js @@ -0,0 +1,39 @@ +/* + * 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/). + */ +(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["pages/_error"],{ + +/***/ "./node_modules/next/dist/pages/_error.js": +/*!************************************************!*\ + !*** ./node_modules/next/dist/pages/_error.js ***! + \************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _classCallCheck = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\");\n\nvar _createClass = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\");\n\nvar _inherits = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/inherits */ \"./node_modules/@babel/runtime/helpers/inherits.js\");\n\nvar _possibleConstructorReturn = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/possibleConstructorReturn */ \"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\");\n\nvar _getPrototypeOf = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/getPrototypeOf */ \"./node_modules/@babel/runtime/helpers/getPrototypeOf.js\");\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _head = _interopRequireDefault(__webpack_require__(/*! ../shared/lib/head */ \"./node_modules/next/dist/shared/lib/head.js\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar statusCodes = {\n 400: 'Bad Request',\n 404: 'This page could not be found',\n 405: 'Method Not Allowed',\n 500: 'Internal Server Error'\n};\n\nfunction _getInitialProps(_ref) {\n var res = _ref.res,\n err = _ref.err;\n var statusCode = res && res.statusCode ? res.statusCode : err ? err.statusCode : 404;\n return {\n statusCode: statusCode\n };\n}\n\nvar Error = /*#__PURE__*/function (_react$default$Compon) {\n _inherits(Error, _react$default$Compon);\n\n var _super = _createSuper(Error);\n\n function Error() {\n _classCallCheck(this, Error);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Error, [{\n key: \"render\",\n value: function render() {\n var statusCode = this.props.statusCode;\n var title = this.props.title || statusCodes[statusCode] || 'An unexpected error has occurred';\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n style: styles.error\n }, /*#__PURE__*/_react[\"default\"].createElement(_head[\"default\"], null, /*#__PURE__*/_react[\"default\"].createElement(\"title\", null, statusCode ? \"\".concat(statusCode, \": \").concat(title) : 'Application error: a client-side exception has occurred')), /*#__PURE__*/_react[\"default\"].createElement(\"div\", null, /*#__PURE__*/_react[\"default\"].createElement(\"style\", {\n dangerouslySetInnerHTML: {\n __html: 'body { margin: 0 }'\n }\n }), statusCode ? /*#__PURE__*/_react[\"default\"].createElement(\"h1\", {\n style: styles.h1\n }, statusCode) : null, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n style: styles.desc\n }, /*#__PURE__*/_react[\"default\"].createElement(\"h2\", {\n style: styles.h2\n }, this.props.title || statusCode ? title : /*#__PURE__*/_react[\"default\"].createElement(_react[\"default\"].Fragment, null, \"Application error: a client-side exception has occurred (see the browser console for more information)\"), \".\"))));\n }\n }]);\n\n return Error;\n}(_react[\"default\"].Component);\n\nError.displayName = 'ErrorPage';\nError.getInitialProps = _getInitialProps;\nError.origGetInitialProps = _getInitialProps;\nexports[\"default\"] = Error;\nvar styles = {\n error: {\n color: '#000',\n background: '#fff',\n fontFamily: '-apple-system, BlinkMacSystemFont, Roboto, \"Segoe UI\", \"Fira Sans\", Avenir, \"Helvetica Neue\", \"Lucida Grande\", sans-serif',\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 textAlign: 'left',\n lineHeight: '49px',\n height: '49px',\n verticalAlign: 'middle'\n },\n h1: {\n display: 'inline-block',\n borderRight: '1px solid rgba(0, 0, 0,.3)',\n margin: 0,\n marginRight: '20px',\n padding: '10px 23px 10px 0',\n fontSize: '24px',\n fontWeight: 500,\n verticalAlign: 'top'\n },\n h2: {\n fontSize: '14px',\n fontWeight: 'normal',\n lineHeight: 'inherit',\n margin: 0,\n padding: 0\n }\n};\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3BhZ2VzL19lcnJvci5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDYkEsOENBQTZDO0FBQ3pDRyxFQUFBQSxLQUFLLEVBQUU7QUFEa0MsQ0FBN0M7QUFHQUQsa0JBQUEsR0FBa0IsS0FBSyxDQUF2Qjs7QUFDQSxJQUFJRSxNQUFNLEdBQUdDLHNCQUFzQixDQUFDQyxtQkFBTyxDQUFDLDRDQUFELENBQVIsQ0FBbkM7O0FBQ0EsSUFBSUMsS0FBSyxHQUFHRixzQkFBc0IsQ0FBQ0MsbUJBQU8sQ0FBQyx1RUFBRCxDQUFSLENBQWxDOztBQUNBLFNBQVNELHNCQUFULENBQWdDRyxHQUFoQyxFQUFxQztBQUNqQyxTQUFPQSxHQUFHLElBQUlBLEdBQUcsQ0FBQ0MsVUFBWCxHQUF3QkQsR0FBeEIsR0FBOEI7QUFDakMsZUFBU0E7QUFEd0IsR0FBckM7QUFHSDs7QUFDRCxJQUFNRSxXQUFXLEdBQUc7QUFDaEIsT0FBSyxhQURXO0FBRWhCLE9BQUssOEJBRlc7QUFHaEIsT0FBSyxvQkFIVztBQUloQixPQUFLO0FBSlcsQ0FBcEI7O0FBTUEsU0FBU0MsZ0JBQVQsT0FBMEM7QUFBQSxNQUFkQyxHQUFjLFFBQWRBLEdBQWM7QUFBQSxNQUFSQyxHQUFRLFFBQVJBLEdBQVE7QUFDdEMsTUFBTUMsVUFBVSxHQUFHRixHQUFHLElBQUlBLEdBQUcsQ0FBQ0UsVUFBWCxHQUF3QkYsR0FBRyxDQUFDRSxVQUE1QixHQUF5Q0QsR0FBRyxHQUFHQSxHQUFHLENBQUNDLFVBQVAsR0FBb0IsR0FBbkY7QUFDQSxTQUFPO0FBQ0hBLElBQUFBLFVBQVUsRUFBVkE7QUFERyxHQUFQO0FBR0g7O0lBQ0tDOzs7Ozs7Ozs7Ozs7O1dBQ0Ysa0JBQVM7QUFDTCxVQUFRRCxVQUFSLEdBQXdCLEtBQUtFLEtBQTdCLENBQVFGLFVBQVI7QUFDQSxVQUFNRyxLQUFLLEdBQUcsS0FBS0QsS0FBTCxDQUFXQyxLQUFYLElBQW9CUCxXQUFXLENB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LElBQUFBLFFBQVEsRUFBRSxNQU5WO0FBT0FDLElBQUFBLFVBQVUsRUFBRSxHQVBaO0FBUUFOLElBQUFBLGFBQWEsRUFBRTtBQVJmLEdBbkJPO0FBNkJYaEIsRUFBQUEsRUFBRSxFQUFFO0FBQ0FxQixJQUFBQSxRQUFRLEVBQUUsTUFEVjtBQUVBQyxJQUFBQSxVQUFVLEVBQUUsUUFGWjtBQUdBUCxJQUFBQSxVQUFVLEVBQUUsU0FIWjtBQUlBRyxJQUFBQSxNQUFNLEVBQUUsQ0FKUjtBQUtBRSxJQUFBQSxPQUFPLEVBQUU7QUFMVDtBQTdCTyxDQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvcGFnZXMvX2Vycm9yLmpzPzE4ZjIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7XG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xudmFyIF9oZWFkID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9oZWFkXCIpKTtcbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbmNvbnN0IHN0YXR1c0NvZGVzID0ge1xuICAgIDQwMDogJ0JhZCBSZXF1ZXN0JyxcbiAgICA0MDQ6ICdUaGlzIHBhZ2UgY291bGQgbm90IGJlIGZvdW5kJyxcbiAgICA0MDU6ICdNZXRob2QgTm90IEFsbG93ZWQnLFxuICAgIDUwMDogJ0ludGVybmFsIFNlcnZlciBFcnJvcidcbn07XG5mdW5jdGlvbiBfZ2V0SW5pdGlhbFByb3BzKHsgcmVzICwgZXJyICB9KSB7XG4gICAgY29uc3Qgc3RhdHVzQ29kZSA9IHJlcyAmJiByZXMuc3RhdHVzQ29kZSA/IHJlcy5zdGF0dXNDb2RlIDogZXJyID8gZXJyLnN0YXR1c0NvZGUgOiA0MDQ7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc3RhdHVzQ29kZVxuICAgIH07XG59XG5jbGFzcyBFcnJvciBleHRlbmRzIF9yZWFjdC5kZWZhdWx0LkNvbXBvbmVudCB7XG4gICAgcmVuZGVyKCkge1xuICAgICAgICBjb25zdCB7IHN0YXR1c0NvZGUgIH0gPSB0aGlzLnByb3BzO1xuICAgICAgICBjb25zdCB0aXRsZSA9IHRoaXMucHJvcHMudGl0bGUgfHwgc3RhdHVzQ29kZXNbc3RhdHVzQ29kZV0gfHwgJ0FuIHVuZXhwZWN0ZWQgZXJyb3IgaGFzIG9jY3VycmVkJztcbiAgICAgICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgICAgICBzdHlsZTogc3R5bGVzLmVycm9yXG4gICAgICAgIH0sIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChfaGVhZC5kZWZhdWx0LCBudWxsLCAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJ0aXRsZVwiLCBudWxsLCBzdGF0dXNDb2RlID8gYCR7c3RhdHVzQ29kZX06ICR7dGl0bGV9YCA6ICdBcHBsaWNhdGlvbiBlcnJvcjogYSBjbGllbnQtc2lkZSBleGNlcHRpb24gaGFzIG9jY3VycmVkJykpLCAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgbnVsbCwgLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwic3R5bGVcIiwge1xuICAgICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6IHtcbiAgICAgICAgICAgICAgICBfX2h0bWw6ICdib2R5IHsgbWFyZ2luOiAwIH0nXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLCBzdGF0dXNDb2RlID8gLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiaDFcIiwge1xuICAgICAgICAgICAgc3R5bGU6IHN0eWxlcy5oMVxuICAgICAgICB9LCBzdGF0dXNDb2RlKSA6IG51bGwsIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgICAgICBzdHlsZTogc3R5bGVzLmRlc2NcbiAgICAgICAgfSwgLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiaDJcIiwge1xuICAgICAgICAgICAgc3R5bGU6IHN0eWxlcy5oMlxuICAgICAgICB9LCB0aGlzLnByb3BzLnRpdGxlIHx8IHN0YXR1c0NvZGUgPyB0aXRsZSA6IC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChfcmVhY3QuZGVmYXVsdC5GcmFnbWVudCwgbnVsbCwgXCJBcHBsaWNhdGlvbiBlcnJvcjogYSBjbGllbnQtc2lkZSBleGNlcHRpb24gaGFzIG9jY3VycmVkIChzZWUgdGhlIGJyb3dzZXIgY29uc29sZSBmb3IgbW9yZSBpbmZvcm1hdGlvbilcIiksIFwiLlwiKSkpKSk7XG4gICAgfVxufVxuRXJyb3IuZGlzcGxheU5hbWUgPSAnRXJyb3JQYWdlJztcbkVycm9yLmdldEluaXRpYWxQcm9wcyA9IF9nZXRJbml0aWFsUHJvcHM7XG5FcnJvci5vcmlnR2V0SW5pdGlhbFByb3BzID0gX2dldEluaXRpYWxQcm9wcztcbmV4cG9ydHMuZGVmYXVsdCA9IEVycm9yO1xuY29uc3Qgc3R5bGVzID0ge1xuICAgIGVycm9yOiB7XG4gICAgICAgIGNvbG9yOiAnIzAwMCcsXG4gICAgICAgIGJhY2tncm91bmQ6ICcjZmZmJyxcbiAgICAgICAgZm9udEZhbWlseTogJy1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgUm9ib3RvLCBcIlNlZ29lIFVJXCIsIFwiRmlyYSBTYW5zXCIsIEF2ZW5pciwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkx1Y2lkYSBHcmFuZGVcIiwgc2Fucy1zZXJpZicsXG4gICAgICAgIGhlaWdodDogJzEwMHZoJyxcbiAgICAgICAgdGV4dEFsaWduOiAnY2VudGVyJyxcbiAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJ1xuICAgIH0sXG4gICAgZGVzYzoge1xuICAgICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICAgICAgdGV4dEFsaWduOiAnbGVmdCcsXG4gICAgICAgIGxpbmVIZWlnaHQ6ICc0OXB4JyxcbiAgICAgICAgaGVpZ2h0OiAnNDlweCcsXG4gICAgICAgIHZlcnRpY2FsQWxpZ246ICdtaWRkbGUnXG4gICAgfSxcbiAgICBoMToge1xuICAgICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICAgICAgYm9yZGVyUmlnaHQ6ICcxcHggc29saWQgcmdiYSgwLCAwLCAwLC4zKScsXG4gICAgICAgIG1hcmdpbjogMCxcbiAgICAgICAgbWFyZ2luUmlnaHQ6ICcyMHB4JyxcbiAgICAgICAgcGFkZGluZzogJzEwcHggMjNweCAxMHB4IDAnLFxuICAgICAgICBmb250U2l6ZTogJzI0cHgnLFxuICAgICAgICBmb250V2VpZ2h0OiA1MDAsXG4gICAgICAgIHZlcnRpY2FsQWxpZ246ICd0b3AnXG4gICAgfSxcbiAgICBoMjoge1xuICAgICAgICBmb250U2l6ZTogJzE0cHgnLFxuICAgICAgICBmb250V2VpZ2h0OiAnbm9ybWFsJyxcbiAgICAgICAgbGluZUhlaWdodDogJ2luaGVyaXQnLFxuICAgICAgICBtYXJnaW46IDAsXG4gICAgICAgIHBhZGRpbmc6IDBcbiAgICB9XG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1fZXJyb3IuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfaGVhZCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJzdGF0dXNDb2RlcyIsIl9nZXRJbml0aWFsUHJvcHMiLCJyZXMiLCJlcnIiLCJzdGF0dXNDb2RlIiwiRXJyb3IiLCJwcm9wcyIsInRpdGxlIiwiY3JlYXRlRWxlbWVudCIsInN0eWxlIiwic3R5bGVzIiwiZXJyb3IiLCJkYW5nZXJvdXNseVNldElubmVySFRNTCIsIl9faHRtbCIsImgxIiwiZGVzYyIsImgyIiwiRnJhZ21lbnQiLCJDb21wb25lbnQiLCJkaXNwbGF5TmFtZSIsImdldEluaXRpYWxQcm9wcyIsIm9yaWdHZXRJbml0aWFsUHJvcHMiLCJjb2xvciIsImJhY2tncm91bmQiLCJmb250RmFtaWx5IiwiaGVpZ2h0IiwidGV4dEFsaWduIiwiZGlzcGxheSIsImZsZXhEaXJlY3Rpb24iLCJhbGlnbkl0ZW1zIiwianVzdGlmeUNvbnRlbnQiLCJsaW5lSGVpZ2h0IiwidmVydGljYWxBbGlnbiIsImJvcmRlclJpZ2h0IiwibWFyZ2luIiwibWFyZ2luUmlnaHQiLCJwYWRkaW5nIiwiZm9udFNpemUiLCJmb250V2VpZ2h0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/pages/_error.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2F_error&absolutePagePath=private-next-pages%2F_error!": +/*!***********************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2F_error&absolutePagePath=private-next-pages%2F_error! ***! + \***********************************************************************************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/_error\",\n function () {\n return __webpack_require__(/*! private-next-pages/_error */ \"./node_modules/next/dist/pages/_error.js\");\n }\n ]);\n if(true) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/_error\"])\n });\n }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWNsaWVudC1wYWdlcy1sb2FkZXIuanM/cGFnZT0lMkZfZXJyb3ImYWJzb2x1dGVQYWdlUGF0aD1wcml2YXRlLW5leHQtcGFnZXMlMkZfZXJyb3IhLmpzIiwibWFwcGluZ3MiOiI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLG1CQUFPLENBQUMsMkVBQTJCO0FBQ2xEO0FBQ0E7QUFDQSxPQUFPLElBQVU7QUFDakIsTUFBTSxVQUFVO0FBQ2hCO0FBQ0EsT0FBTztBQUNQO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLz9hYzRlIl0sInNvdXJjZXNDb250ZW50IjpbIlxuICAgICh3aW5kb3cuX19ORVhUX1AgPSB3aW5kb3cuX19ORVhUX1AgfHwgW10pLnB1c2goW1xuICAgICAgXCIvX2Vycm9yXCIsXG4gICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiByZXF1aXJlKFwicHJpdmF0ZS1uZXh0LXBhZ2VzL19lcnJvclwiKTtcbiAgICAgIH1cbiAgICBdKTtcbiAgICBpZihtb2R1bGUuaG90KSB7XG4gICAgICBtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24gKCkge1xuICAgICAgICB3aW5kb3cuX19ORVhUX1AucHVzaChbXCIvX2Vycm9yXCJdKVxuICAgICAgfSk7XG4gICAgfVxuICAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2F_error&absolutePagePath=private-next-pages%2F_error!\n"); + +/***/ }) + +}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); } +/******/ __webpack_require__.O(0, ["pages/_app","main"], function() { return __webpack_exec__("./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2F_error&absolutePagePath=private-next-pages%2F_error!"); }); +/******/ var __webpack_exports__ = __webpack_require__.O(); +/******/ _N_E = __webpack_exports__; +/******/ } +]); \ No newline at end of file diff --git a/.next/static/chunks/pages/about.js b/.next/static/chunks/pages/about.js new file mode 100644 index 0000000..1dadb34 --- /dev/null +++ b/.next/static/chunks/pages/about.js @@ -0,0 +1,1013 @@ +/* + * 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/). + */ +(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["pages/about"],{ + +/***/ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js": +/*!**********************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/interopRequireDefault.js ***! + \**********************************************************************/ +/***/ (function(module) { + +eval("function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHQuanMuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHlCQUF5QixtQkFBbUIseUJBQXlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2ludGVyb3BSZXF1aXJlRGVmYXVsdC5qcz9lZThjIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgXCJkZWZhdWx0XCI6IG9ialxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQ7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/interopRequireDefault.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/link.js": +/*!***********************************************!*\ + !*** ./node_modules/next/dist/client/link.js ***! + \***********************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _slicedToArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nvar _s = $RefreshSig$();\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _router = __webpack_require__(/*! ../shared/lib/router/router */ \"./node_modules/next/dist/shared/lib/router/router.js\");\n\nvar _router1 = __webpack_require__(/*! ./router */ \"./node_modules/next/dist/client/router.js\");\n\nvar _useIntersection = __webpack_require__(/*! ./use-intersection */ \"./node_modules/next/dist/client/use-intersection.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar prefetched = {};\n\nfunction prefetch(router, href, as, options) {\n if ( false || !router) return;\n if (!(0, _router).isLocalURL(href)) return; // Prefetch the JSON 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\n router.prefetch(href, as, options)[\"catch\"](function (err) {\n if (true) {\n // rethrow to show invalid URL errors\n throw err;\n }\n });\n var curLocale = options && typeof options.locale !== 'undefined' ? options.locale : router && router.locale; // Join on an invalid URI character\n\n prefetched[href + '%' + as + (curLocale ? '%' + curLocale : '')] = true;\n}\n\nfunction isModifiedEvent(event) {\n var target = event.currentTarget.target;\n return target && target !== '_self' || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey || event.nativeEvent && event.nativeEvent.which === 2;\n}\n\nfunction linkClicked(e, router, href, as, replace, shallow, scroll, locale) {\n var nodeName = e.currentTarget.nodeName;\n\n if (nodeName === 'A' && (isModifiedEvent(e) || !(0, _router).isLocalURL(href))) {\n // ignore click for browser’s default behavior\n return;\n }\n\n e.preventDefault(); // avoid scroll for urls with anchor refs\n\n if (scroll == null && as.indexOf('#') >= 0) {\n scroll = false;\n } // replace state instead of push if prop is present\n\n\n router[replace ? 'replace' : 'push'](href, as, {\n shallow: shallow,\n locale: locale,\n scroll: scroll\n });\n}\n\nfunction Link(props) {\n _s();\n\n if (true) {\n var createPropError = function createPropError(args) {\n return new Error(\"Failed prop type: The prop `\".concat(args.key, \"` expects a \").concat(args.expected, \" in `<Link>`, but got `\").concat(args.actual, \"` instead.\") + ( true ? \"\\nOpen your browser's console to view the Component stack trace.\" : 0));\n }; // TypeScript trick for type-guarding:\n\n\n var requiredPropsGuard = {\n href: true\n };\n var requiredProps = Object.keys(requiredPropsGuard);\n requiredProps.forEach(function (key) {\n if (key === 'href') {\n if (props[key] == null || typeof props[key] !== 'string' && typeof props[key] !== 'object') {\n throw createPropError({\n key: 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 var _ = key;\n }\n }); // TypeScript trick for type-guarding:\n\n var optionalPropsGuard = {\n as: true,\n replace: true,\n scroll: true,\n shallow: true,\n passHref: true,\n prefetch: true,\n locale: true\n };\n var optionalProps = Object.keys(optionalPropsGuard);\n optionalProps.forEach(function (key) {\n var valType = typeof props[key];\n\n if (key === 'as') {\n if (props[key] && valType !== 'string' && valType !== 'object') {\n throw createPropError({\n key: key,\n expected: '`string` or `object`',\n actual: valType\n });\n }\n } else if (key === 'locale') {\n if (props[key] && valType !== 'string') {\n throw createPropError({\n key: key,\n expected: '`string`',\n actual: valType\n });\n }\n } else if (key === 'replace' || key === 'scroll' || key === 'shallow' || key === 'passHref' || key === 'prefetch') {\n if (props[key] != null && valType !== 'boolean') {\n throw createPropError({\n key: key,\n expected: '`boolean`',\n actual: valType\n });\n }\n } else {\n // TypeScript trick for type-guarding:\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var _ = key;\n }\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\n var hasWarned = _react[\"default\"].useRef(false);\n\n if (props.prefetch && !hasWarned.current) {\n hasWarned.current = true;\n console.warn('Next.js auto-prefetches automatically based on viewport. The prefetch attribute is no longer needed. More: https://nextjs.org/docs/messages/prefetch-true-deprecated');\n }\n }\n\n var p = props.prefetch !== false;\n var router = (0, _router1).useRouter();\n\n var _react$default$useMem = _react[\"default\"].useMemo(function () {\n var _resolveHref = (0, _router).resolveHref(router, props.href, true),\n _resolveHref2 = _slicedToArray(_resolveHref, 2),\n resolvedHref = _resolveHref2[0],\n resolvedAs = _resolveHref2[1];\n\n return {\n href: resolvedHref,\n as: props.as ? (0, _router).resolveHref(router, props.as) : resolvedAs || resolvedHref\n };\n }, [router, props.href, props.as]),\n href = _react$default$useMem.href,\n as = _react$default$useMem.as;\n\n var children = props.children,\n replace = props.replace,\n shallow = props.shallow,\n scroll = props.scroll,\n locale = props.locale; // Deprecated. Warning shown by propType check. If the children provided is a string (<Link>example</Link>) we wrap it in an <a> tag\n\n if (typeof children === 'string') {\n children = /*#__PURE__*/_react[\"default\"].createElement(\"a\", null, children);\n } // This will return the first child, if multiple are provided it will throw an error\n\n\n var child;\n\n if (true) {\n try {\n child = _react[\"default\"].Children.only(children);\n } catch (err) {\n throw new Error(\"Multiple children were passed to <Link> with `href` of `\".concat(props.href, \"` but only one child is supported https://nextjs.org/docs/messages/link-multiple-children\") + ( true ? \" \\nOpen your browser's console to view the Component stack trace.\" : 0));\n }\n } else {}\n\n var childRef = child && typeof child === 'object' && child.ref;\n\n var _useIntersection2 = (0, _useIntersection).useIntersection({\n rootMargin: '200px'\n }),\n _useIntersection3 = _slicedToArray(_useIntersection2, 2),\n setIntersectionRef = _useIntersection3[0],\n isVisible = _useIntersection3[1];\n\n var setRef = _react[\"default\"].useCallback(function (el) {\n setIntersectionRef(el);\n\n if (childRef) {\n if (typeof childRef === 'function') childRef(el);else if (typeof childRef === 'object') {\n childRef.current = el;\n }\n }\n }, [childRef, setIntersectionRef]);\n\n _react[\"default\"].useEffect(function () {\n var shouldPrefetch = isVisible && p && (0, _router).isLocalURL(href);\n var curLocale = typeof locale !== 'undefined' ? locale : router && router.locale;\n var isPrefetched = prefetched[href + '%' + as + (curLocale ? '%' + curLocale : '')];\n\n if (shouldPrefetch && !isPrefetched) {\n prefetch(router, href, as, {\n locale: curLocale\n });\n }\n }, [as, href, isVisible, locale, p, router]);\n\n var childProps = {\n ref: setRef,\n onClick: function onClick(e) {\n if (child.props && typeof child.props.onClick === 'function') {\n child.props.onClick(e);\n }\n\n if (!e.defaultPrevented) {\n linkClicked(e, router, href, as, replace, shallow, scroll, locale);\n }\n }\n };\n\n childProps.onMouseEnter = function (e) {\n if (!(0, _router).isLocalURL(href)) return;\n\n if (child.props && typeof child.props.onMouseEnter === 'function') {\n child.props.onMouseEnter(e);\n }\n\n prefetch(router, href, as, {\n priority: true\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\n\n if (props.passHref || child.type === 'a' && !('href' in child.props)) {\n var curLocale = typeof locale !== 'undefined' ? locale : router && router.locale; // we only render domain locales if we are currently on a domain locale\n // so that locale links are still visitable in development/preview envs\n\n var localeDomain = router && router.isLocaleDomain && (0, _router).getDomainLocale(as, curLocale, router && router.locales, router && router.domainLocales);\n childProps.href = localeDomain || (0, _router).addBasePath((0, _router).addLocale(as, curLocale, router && router.defaultLocale));\n }\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(child, childProps);\n}\n\n_s(Link, \"PYHstBoZE4p1pf5wc1Vw4fTzvCU=\", true);\n\n_c = Link;\nvar _default = Link;\nexports[\"default\"] = _default;\n\nvar _c;\n\n$RefreshReg$(_c, \"Link\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9saW5rLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7Ozs7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELGtCQUFBLEdBQWtCLEtBQUssQ0FBdkI7O0FBQ0EsSUFBSUUsTUFBTSxHQUFHQyxzQkFBc0IsQ0FBQ0MsbUJBQU8sQ0FBQyw0Q0FBRCxDQUFSLENBQW5DOztBQUNBLElBQUlDLE9BQU8sR0FBR0QsbUJBQU8sQ0FBQyx5RkFBRCxDQUFyQjs7QUFDQSxJQUFJRSxRQUFRLEdBQUdGLG1CQUFPLENBQUMsMkRBQUQsQ0FBdEI7O0FBQ0EsSUFBSUcsZ0JBQWdCLEdBQUdILG1CQUFPLENBQUMsK0VBQUQsQ0FBOUI7O0FBQ0EsU0FBU0Qsc0JBQVQsQ0FBZ0NLLEdBQWhDLEVBQXFDO0FBQ2pDLFNBQU9BLEdBQUcsSUFBSUEsR0FBRyxDQUFDQyxVQUFYLEdBQXdCRCxHQUF4QixHQUE4QjtBQUNqQyxlQUFTQTtBQUR3QixHQUFyQztBQUdIOztBQUNELElBQU1FLFVBQVUsR0FBRyxFQUFuQjs7QUFFQSxTQUFTQyxRQUFULENBQWtCQyxNQUFsQixFQUEwQkMsSUFBMUIsRUFBZ0NDLEVBQWhDLEVBQW9DQyxPQUFwQyxFQUE2QztBQUN6QyxNQUFJLFVBQWlDLENBQUNILE1BQXRDLEVBQThDO0FBQzlDLE1BQUksQ0FBQyxDQUFDLEdBQUdQLE9BQUosRUFBYVcsVUFBYixDQUF3QkgsSUFBeEIsQ0FBTCxFQUFvQyxPQUZLLENBR3pDO0FBQ0E7QUFDQTtBQUNBOztBQUNBRCxFQUFBQSxNQUFNLENBQUNELFFBQVAsQ0FBZ0JFLElBQWhCLEVBQXNCQyxFQUF0QixFQUEwQkMsT0FBMUIsV0FBeUMsVUFBQ0UsR0FBRCxFQUFPO0FBQzVDLGNBQTJDO0FBQ3ZDO0FBQ0EsWUFBTUEsR0FBTjtBQUNIO0FBQ0osR0FMRDtBQU1BLE1BQU1DLFNBQVMsR0FBR0gsT0FBTyxJQUFJLE9BQU9B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Q2dGLE9BQTdELEVBQXNFaEYsTUFBTSxJQUFJQSxNQUFNLENBQUNpRixhQUF2RixDQUF4RDtBQUNBVixJQUFBQSxVQUFVLENBQUN0RSxJQUFYLEdBQWtCNEUsWUFBWSxJQUFJLENBQUMsR0FBR3BGLE9BQUosRUFBYXlGLFdBQWIsQ0FBeUIsQ0FBQyxHQUFHekYsT0FBSixFQUFhMEYsU0FBYixDQUF1QmpGLEVBQXZCLEVBQTJCSSxTQUEzQixFQUFzQ04sTUFBTSxJQUFJQSxNQUFNLENBQUNvRixhQUF2RCxDQUF6QixDQUFsQztBQUNIOztBQUNELFNBQU8sYUFBYzlGLE1BQU0sV0FBTixDQUFlK0YsWUFBZixDQUE0QjdCLEtBQTVCLEVBQW1DZSxVQUFuQyxDQUFyQjtBQUNIOztHQXhLUTdDOztLQUFBQTtBQXlLVCxJQUFJNEQsUUFBUSxHQUFHNUQsSUFBZjtBQUNBdEMsa0JBQUEsR0FBa0JrRyxRQUFsQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9saW5rLmpzP2U0ZjkiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7XG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xudmFyIF9yb3V0ZXIgPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9yb3V0ZXIvcm91dGVyXCIpO1xudmFyIF9yb3V0ZXIxID0gcmVxdWlyZShcIi4vcm91dGVyXCIpO1xudmFyIF91c2VJbnRlcnNlY3Rpb24gPSByZXF1aXJlKFwiLi91c2UtaW50ZXJzZWN0aW9uXCIpO1xuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuY29uc3QgcHJlZmV0Y2hlZCA9IHtcbn07XG5mdW5jdGlvbiBwcmVmZXRjaChyb3V0ZXIsIGhyZWYsIGFzLCBvcHRpb25zKSB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8ICFyb3V0ZXIpIHJldHVybjtcbiAgICBpZiAoISgwLCBfcm91dGVyKS5pc0xvY2FsVVJMKGhyZWYpKSByZXR1cm47XG4gICAgLy8gUHJlZmV0Y2ggdGhlIEpTT04gcGFnZSBpZiBhc2tlZCAob25seSBpbiB0aGUgY2xpZW50KVxuICAgIC8vIFdlIG5lZWQgdG8gaGFuZGxlIGEgcHJlZmV0Y2ggZXJyb3IgaGVyZSBzaW5jZSB3ZSBtYXkgYmVcbiAgICAvLyBsb2FkaW5nIHdpdGggcHJpb3JpdHkgd2hpY2ggY2FuIHJlamVjdCBidXQgd2UgZG9uJ3RcbiAgICAvLyB3YW50IHRvIGZvcmNlIG5hdmlnYXRpb24gc2luY2UgdGhpcyBpcyBvbmx5IGEgcHJlZmV0Y2hcbiAgICByb3V0ZXIucHJlZmV0Y2goaHJlZiwgYXMsIG9wdGlvbnMpLmNhdGNoKChlcnIpPT57XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICAvLyByZXRocm93IHRvIHNob3cgaW52YWxpZCBVUkwgZXJyb3JzXG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBjdXJMb2NhbGUgPSBvcHRpb25zICYmIHR5cGVvZiBvcHRpb25zLmxvY2FsZSAhPT0gJ3VuZGVmaW5lZCcgPyBvcHRpb25zLmxvY2FsZSA6IHJvdXRlciAmJiByb3V0ZXIubG9jYWxlO1xuICAgIC8vIEpvaW4gb24gYW4gaW52YWxpZCBVUkkgY2hhcmFjdGVyXG4gICAgcHJlZmV0Y2hlZFtocmVmICsgJyUnICsgYXMgKyAoY3VyTG9jYWxlID8gJyUnICsgY3VyTG9jYWxlIDogJycpXSA9IHRydWU7XG59XG5mdW5jdGlvbiBpc01vZGlmaWVkRXZlbnQoZXZlbnQpIHtcbiAgICBjb25zdCB7IHRhcmdldCAgfSA9IGV2ZW50LmN1cnJlbnRUYXJnZXQ7XG4gICAgcmV0dXJuIHRhcmdldCAmJiB0YXJnZXQgIT09ICdfc2VsZicgfHwgZXZlbnQubWV0YUtleSB8fCBldmVudC5jdHJsS2V5IHx8IGV2ZW50LnNoaWZ0S2V5IHx8IGV2ZW50LmFsdEtleSB8fCBldmVudC5uYXRpdmVFdmVudCAmJiBldmVudC5uYXRpdmVFdmVudC53aGljaCA9PT0gMjtcbn1cbmZ1bmN0aW9uIGxpbmtDbGlja2VkKGUsIHJvdXRlciwgaHJlZiwgYXMsIHJlcGxhY2UsIHNoYWxsb3csIHNjcm9sbCwgbG9jYWxlKSB7XG4gICAgY29uc3QgeyBub2RlTmFtZSAgfSA9IGUuY3VycmVudFRhcmdldDtcbiAgICBpZiAobm9kZU5hbWUgPT09ICdBJyAmJiAoaXNNb2RpZmllZEV2ZW50KGUpIHx8ICEoMCwgX3JvdXRlcikuaXNMb2NhbFVSTChocmVmKSkpIHtcbiAgICAgICAgLy8gaWdub3JlIGNsaWNrIGZvciBicm93c2Vy4oCZcyBkZWZhdWx0IGJlaGF2aW9yXG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIC8vICBhdm9pZCBzY3JvbGwgZm9yIHVybHMgd2l0aCBhbmNob3IgcmVmc1xuICAgIGlmIChzY3JvbGwgPT0gbnVsbCAmJiBhcy5pbmRleE9mKCcjJykgPj0gMCkge1xuICAgICAgICBzY3JvbGwgPSBmYWxzZTtcbiAgICB9XG4gICAgLy8gcmVwbGFjZSBzdGF0ZSBpbnN0ZWFkIG9mIHB1c2ggaWYgcHJvcCBpcyBwcmVzZW50XG4gICAgcm91dGVyW3JlcGxhY2UgPyAncmVwbGFjZScgOiAncHVzaCddKGhyZWYsIGFzLCB7XG4gICAgICAgIHNoYWxsb3csXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgc2Nyb2xsXG4gICAgfSk7XG59XG5mdW5jdGlvbiBMaW5rKHByb3BzKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgZnVuY3Rpb24gY3JlYXRlUHJvcEVycm9yKGFyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgRXJyb3IoYEZhaWxlZCBwcm9wIHR5cGU6IFRoZSBwcm9wIFxcYCR7YXJncy5rZXl9XFxgIGV4cGVjdHMgYSAke2FyZ3MuZXhwZWN0ZWR9IGluIFxcYDxMaW5rPlxcYCwgYnV0IGdvdCBcXGAke2FyZ3MuYWN0dWFsfVxcYCBpbnN0ZWFkLmAgKyAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgPyBcIlxcbk9wZW4geW91ciBicm93c2VyJ3MgY29uc29sZSB0byB2aWV3IHRoZSBDb21wb25lbnQgc3RhY2sgdHJhY2UuXCIgOiAnJykpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFR5cGVTY3JpcHQgdHJpY2sgZm9yIHR5cGUtZ3VhcmRpbmc6XG4gICAgICAgIGNvbnN0IHJlcXVpcmVkUHJvcHNHdWFyZCA9IHtcbiAgICAgICAgICAgIGhyZWY6IHRydWVcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgcmVxdWlyZWRQcm9wcyA9IE9iamVjdC5rZXlzKHJlcXVpcmVkUHJvcHNHdWFyZCk7XG4gICAgICAgIHJlcXVpcmVkUHJvcHMuZm9yRWFjaCgoa2V5KT0+e1xuICAgICAgICAgICAgaWYgKGtleSA9PT0gJ2hyZWYnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHByb3BzW2tleV0gPT0gbnVsbCB8fCB0eXBlb2YgcHJvcHNba2V5XSAhPT0gJ3N0cmluZycgJiYgdHlwZW9mIHByb3BzW2tleV0gIT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGNyZWF0ZVByb3BFcnJvcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZDogJ2BzdHJpbmdgIG9yIGBvYmplY3RgJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbDogcHJvcHNba2V5XSA9PT0gbnVsbCA/ICdudWxsJyA6IHR5cGVvZiBwcm9wc1trZXldXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gVHlwZVNjcmlwdCB0cmljayBmb3IgdHlwZS1ndWFyZGluZzpcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgICAgICAgICAgICAgY29uc3QgXyA9IGtleTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIC8vIFR5cGVTY3JpcHQgdHJpY2sgZm9yIHR5cGUtZ3VhcmRpbmc6XG4gICAgICAgIGNvbnN0IG9wdGlvbmFsUHJvcHNHdWFyZCA9IHtcbiAgICAgICAgICAgIGFzOiB0cnVlLFxuICAgICAgICAgICAgcmVwbGFjZTogdHJ1ZSxcbiAgICAgICAgICAgIHNjcm9sbDogdHJ1ZSxcbiAgICAgICAgICAgIHNoYWxsb3c6IHRydWUsXG4gICAgICAgICAgICBwYXNzSHJlZjogdHJ1ZSxcbiAgICAgICAgICAgIHByZWZldGNoOiB0cnVlLFxuICAgICAgICAgICAgbG9jYWxlOiB0cnVlXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IG9wdGlvbmFsUHJvcHMgPSBPYmplY3Qua2V5cyhvcHRpb25hbFByb3BzR3VhcmQpO1xuICAgICAgICBvcHRpb25hbFByb3BzLmZvckVhY2goKGtleSk9PntcbiAgICAgICAgICAgIGNvbnN0IHZhbFR5cGUgPSB0eXBlb2YgcHJvcHNba2V5XTtcbiAgICAgICAgICAgIGlmIChrZXkgPT09ICdhcycpIHtcbiAgICAgICAgICAgICAgICBpZiAocHJvcHNba2V5XSAmJiB2YWxUeXBlICE9PSAnc3RyaW5nJyAmJiB2YWxUeXBlICE9PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBjcmVhdGVQcm9wRXJyb3Ioe1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQ6ICdgc3RyaW5nYCBvciBgb2JqZWN0YCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWw6IHZhbFR5cGVcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdsb2NhbGUnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHByb3BzW2tleV0gJiYgdmFsVHlwZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgY3JlYXRlUHJvcEVycm9yKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkOiAnYHN0cmluZ2AnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFsOiB2YWxUeXBlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAncmVwbGFjZScgfHwga2V5ID09PSAnc2Nyb2xsJyB8fCBrZXkgPT09ICdzaGFsbG93JyB8fCBrZXkgPT09ICdwYXNzSHJlZicgfHwga2V5ID09PSAncHJlZmV0Y2gnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHByb3BzW2tleV0gIT0gbnVsbCAmJiB2YWxUeXBlICE9PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgY3JlYXRlUHJvcEVycm9yKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkOiAnYGJvb2xlYW5gJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbDogdmFsVHlwZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIFR5cGVTY3JpcHQgdHJpY2sgZm9yIHR5cGUtZ3VhcmRpbmc6XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICAgICAgICAgICAgIGNvbnN0IF8gPSBrZXk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBUaGlzIGhvb2sgaXMgaW4gYSBjb25kaXRpb25hbCBidXQgdGhhdCBpcyBvayBiZWNhdXNlIGBwcm9jZXNzLmVudi5OT0RFX0VOVmAgbmV2ZXIgY2hhbmdlc1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgICAgICAgY29uc3QgaGFzV2FybmVkID0gX3JlYWN0LmRlZmF1bHQudXNlUmVmKGZhbHNlKTtcbiAgICAgICAgaWYgKHByb3BzLnByZWZldGNoICYmICFoYXNXYXJuZWQuY3VycmVudCkge1xuICAgICAgICAgICAgaGFzV2FybmVkLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdOZXh0LmpzIGF1dG8tcHJlZmV0Y2hlcyBhdXRvbWF0aWNhbGx5IGJhc2VkIG9uIHZpZXdwb3J0LiBUaGUgcHJlZmV0Y2ggYXR0cmlidXRlIGlzIG5vIGxvbmdlciBuZWVkZWQuIE1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3ByZWZldGNoLXRydWUtZGVwcmVjYXRlZCcpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHAgPSBwcm9wcy5wcmVmZXRjaCAhPT0gZmFsc2U7XG4gICAgY29uc3Qgcm91dGVyID0gKDAsIF9yb3V0ZXIxKS51c2VSb3V0ZXIoKTtcbiAgICBjb25zdCB7IGhyZWYgLCBhcyAgfSA9IF9yZWFjdC5kZWZhdWx0LnVzZU1lbW8oKCk9PntcbiAgICAgICAgY29uc3QgW3Jlc29sdmVkSHJlZiwgcmVzb2x2ZWRBc10gPSAoMCwgX3JvdXRlcikucmVzb2x2ZUhyZWYocm91dGVyLCBwcm9wcy5ocmVmLCB0cnVlKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGhyZWY6IHJlc29sdmVkSHJlZixcbiAgICAgICAgICAgIGFzOiBwcm9wcy5hcyA/ICgwLCBfcm91dGVyKS5yZXNvbHZlSHJlZihyb3V0ZXIsIHByb3BzLmFzKSA6IHJlc29sdmVkQXMgfHwgcmVzb2x2ZWRIcmVmXG4gICAgICAgIH07XG4gICAgfSwgW1xuICAgICAgICByb3V0ZXIsXG4gICAgICAgIHByb3BzLmhyZWYsXG4gICAgICAgIHByb3BzLmFzXG4gICAgXSk7XG4gICAgbGV0IHsgY2hpbGRyZW4gLCByZXBsYWNlICwgc2hhbGxvdyAsIHNjcm9sbCAsIGxvY2FsZSAgfSA9IHByb3BzO1xuICAgIC8vIERlcHJlY2F0ZWQuIFdhcm5pbmcgc2hvd24gYnkgcHJvcFR5cGUgY2hlY2suIElmIHRoZSBjaGlsZHJlbiBwcm92aWRlZCBpcyBhIHN0cmluZyAoPExpbms+ZXhhbXBsZTwvTGluaz4pIHdlIHdyYXAgaXQgaW4gYW4gPGE+IHRhZ1xuICAgIGlmICh0eXBlb2YgY2hpbGRyZW4gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNoaWxkcmVuID0gLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiYVwiLCBudWxsLCBjaGlsZHJlbik7XG4gICAgfVxuICAgIC8vIFRoaXMgd2lsbCByZXR1cm4gdGhlIGZpcnN0IGNoaWxkLCBpZiBtdWx0aXBsZSBhcmUgcHJvdmlkZWQgaXQgd2lsbCB0aHJvdyBhbiBlcnJvclxuICAgIGxldCBjaGlsZDtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNoaWxkID0gX3JlYWN0LmRlZmF1bHQuQ2hpbGRyZW4ub25seShjaGlsZHJlbik7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBNdWx0aXBsZSBjaGlsZHJlbiB3ZXJlIHBhc3NlZCB0byA8TGluaz4gd2l0aCBcXGBocmVmXFxgIG9mIFxcYCR7cHJvcHMuaHJlZn1cXGAgYnV0IG9ubHkgb25lIGNoaWxkIGlzIHN1cHBvcnRlZCBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9saW5rLW11bHRpcGxlLWNoaWxkcmVuYCArICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyA/IFwiIFxcbk9wZW4geW91ciBicm93c2VyJ3MgY29uc29sZSB0byB2aWV3IHRoZSBDb21wb25lbnQgc3RhY2sgdHJhY2UuXCIgOiAnJykpO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY2hpbGQgPSBfcmVhY3QuZGVmYXVsdC5DaGlsZHJlbi5vbmx5KGNoaWxkcmVuKTtcbiAgICB9XG4gICAgY29uc3QgY2hpbGRSZWYgPSBjaGlsZCAmJiB0eXBlb2YgY2hpbGQgPT09ICdvYmplY3QnICYmIGNoaWxkLnJlZjtcbiAgICBjb25zdCBbc2V0SW50ZXJzZWN0aW9uUmVmLCBpc1Zpc2libGVdID0gKDAsIF91c2VJbnRlcnNlY3Rpb24pLnVzZUludGVyc2VjdGlvbih7XG4gICAgICAgIHJvb3RNYXJnaW46ICcyMDBweCdcbiAgICB9KTtcbiAgICBjb25zdCBzZXRSZWYgPSBfcmVhY3QuZGVmYXVsdC51c2VDYWxsYmFjaygoZWwpPT57XG4gICAgICAgIHNldEludGVyc2VjdGlvblJlZihlbCk7XG4gICAgICAgIGlmIChjaGlsZFJlZikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBjaGlsZFJlZiA9PT0gJ2Z1bmN0aW9uJykgY2hpbGRSZWYoZWwpO1xuICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIGNoaWxkUmVmID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgIGNoaWxkUmVmLmN1cnJlbnQgPSBlbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgY2hpbGRSZWYsXG4gICAgICAgIHNldEludGVyc2VjdGlvblJlZlxuICAgIF0pO1xuICAgIF9yZWFjdC5kZWZhdWx0LnVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBjb25zdCBzaG91bGRQcmVmZXRjaCA9IGlzVmlzaWJsZSAmJiBwICYmICgwLCBfcm91dGVyKS5pc0xvY2FsVVJMKGhyZWYpO1xuICAgICAgICBjb25zdCBjdXJMb2NhbGUgPSB0eXBlb2YgbG9jYWxlICE9PSAndW5kZWZpbmVkJyA/IGxvY2FsZSA6IHJvdXRlciAmJiByb3V0ZXIubG9jYWxlO1xuICAgICAgICBjb25zdCBpc1ByZWZldGNoZWQgPSBwcmVmZXRjaGVkW2hyZWYgKyAnJScgKyBhcyArIChjdXJMb2NhbGUgPyAnJScgKyBjdXJMb2NhbGUgOiAnJyldO1xuICAgICAgICBpZiAoc2hvdWxkUHJlZmV0Y2ggJiYgIWlzUHJlZmV0Y2hlZCkge1xuICAgICAgICAgICAgcHJlZmV0Y2gocm91dGVyLCBocmVmLCBhcywge1xuICAgICAgICAgICAgICAgIGxvY2FsZTogY3VyTG9jYWxlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgYXMsXG4gICAgICAgIGhyZWYsXG4gICAgICAgIGlzVmlzaWJsZSxcbiAgICAgICAgbG9jYWxlLFxuICAgICAgICBwLFxuICAgICAgICByb3V0ZXJcbiAgICBdKTtcbiAgICBjb25zdCBjaGlsZFByb3BzID0ge1xuICAgICAgICByZWY6IHNldFJlZixcbiAgICAgICAgb25DbGljazogKGUpPT57XG4gICAgICAgICAgICBpZiAoY2hpbGQucHJvcHMgJiYgdHlwZW9mIGNoaWxkLnByb3BzLm9uQ2xpY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICBjaGlsZC5wcm9wcy5vbkNsaWNrKGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFlLmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICAgICAgICBsaW5rQ2xpY2tlZChlLCByb3V0ZXIsIGhyZWYsIGFzLCByZXBsYWNlLCBzaGFsbG93LCBzY3JvbGwsIGxvY2FsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGNoaWxkUHJvcHMub25Nb3VzZUVudGVyID0gKGUpPT57XG4gICAgICAgIGlmICghKDAsIF9yb3V0ZXIpLmlzTG9jYWxVUkwoaHJlZikpIHJldHVybjtcbiAgICAgICAgaWYgKGNoaWxkLnByb3BzICYmIHR5cGVvZiBjaGlsZC5wcm9wcy5vbk1vdXNlRW50ZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGNoaWxkLnByb3BzLm9uTW91c2VFbnRlcihlKTtcbiAgICAgICAgfVxuICAgICAgICBwcmVmZXRjaChyb3V0ZXIsIGhyZWYsIGFzLCB7XG4gICAgICAgICAgICBwcmlvcml0eTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIC8vIElmIGNoaWxkIGlzIGFuIDxhPiB0YWcgYW5kIGRvZXNuJ3QgaGF2ZSBhIGhyZWYgYXR0cmlidXRlLCBvciBpZiB0aGUgJ3Bhc3NIcmVmJyBwcm9wZXJ0eSBpc1xuICAgIC8vIGRlZmluZWQsIHdlIHNwZWNpZnkgdGhlIGN1cnJlbnQgJ2hyZWYnLCBzbyB0aGF0IHJlcGV0aXRpb24gaXMgbm90IG5lZWRlZCBieSB0aGUgdXNlclxuICAgIGlmIChwcm9wcy5wYXNzSHJlZiB8fCBjaGlsZC50eXBlID09PSAnYScgJiYgISgnaHJlZicgaW4gY2hpbGQucHJvcHMpKSB7XG4gICAgICAgIGNvbnN0IGN1ckxvY2FsZSA9IHR5cGVvZiBsb2NhbGUgIT09ICd1bmRlZmluZWQnID8gbG9jYWxlIDogcm91dGVyICYmIHJvdXRlci5sb2NhbGU7XG4gICAgICAgIC8vIHdlIG9ubHkgcmVuZGVyIGRvbWFpbiBsb2NhbGVzIGlmIHdlIGFyZSBjdXJyZW50bHkgb24gYSBkb21haW4gbG9jYWxlXG4gICAgICAgIC8vIHNvIHRoYXQgbG9jYWxlIGxpbmtzIGFyZSBzdGlsbCB2aXNpdGFibGUgaW4gZGV2ZWxvcG1lbnQvcHJldmlldyBlbnZzXG4gICAgICAgIGNvbnN0IGxvY2FsZURvbWFpbiA9IHJvdXRlciAmJiByb3V0ZXIuaXNMb2NhbGVEb21haW4gJiYgKDAsIF9yb3V0ZXIpLmdldERvbWFpbkxvY2FsZShhcywgY3VyTG9jYWxlLCByb3V0ZXIgJiYgcm91dGVyLmxvY2FsZXMsIHJvdXRlciAmJiByb3V0ZXIuZG9tYWluTG9jYWxlcyk7XG4gICAgICAgIGNoaWxkUHJvcHMuaHJlZiA9IGxvY2FsZURvbWFpbiB8fCAoMCwgX3JvdXRlcikuYWRkQmFzZVBhdGgoKDAsIF9yb3V0ZXIpLmFkZExvY2FsZShhcywgY3VyTG9jYWxlLCByb3V0ZXIgJiYgcm91dGVyLmRlZmF1bHRMb2NhbGUpKTtcbiAgICB9XG4gICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY2xvbmVFbGVtZW50KGNoaWxkLCBjaGlsZFByb3BzKSk7XG59XG52YXIgX2RlZmF1bHQgPSBMaW5rO1xuZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWxpbmsuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcm91dGVyIiwiX3JvdXRlcjEiLCJfdXNlSW50ZXJzZWN0aW9uIiwib2JqIiwiX19lc01vZHVsZSIsInByZWZldGNoZWQiLCJwcmVmZXRjaCIsInJvdXRlciIsImhyZWYiLCJhcyIsIm9wdGlvbnMiLCJpc0xvY2FsVVJMIiwiZXJyIiwiY3VyTG9jYWxlIiwibG9jYWxlIiwiaXNNb2RpZmllZEV2ZW50IiwiZXZlbnQiLCJ0YXJnZXQiLCJjdXJyZW50VGFyZ2V0IiwibWV0YUtleSIsImN0cmxLZXkiLCJzaGlmdEtleSIsImFsdEtleSIsIm5hdGl2ZUV2ZW50Iiwid2hpY2giLCJsaW5rQ2xpY2tlZCIsImUiLCJyZXBsYWNlIiwic2hhbGxvdyIsInNjcm9sbCIsIm5vZGVOYW1lIiwicHJldmVudERlZmF1bHQiLCJpbmRleE9mIiwiTGluayIsInByb3BzIiwiY3JlYXRlUHJvcEVycm9yIiwiYXJncyIsIkVycm9yIiwia2V5IiwiZXhwZWN0ZWQiLCJhY3R1YWwiLCJyZXF1aXJlZFByb3BzR3VhcmQiLCJyZXF1aXJlZFByb3BzIiwia2V5cyIsImZvckVhY2giLCJfIiwib3B0aW9uYWxQcm9wc0d1YXJkIiwicGFzc0hyZWYiLCJvcHRpb25hbFByb3BzIiwidmFsVHlwZSIsImhhc1dhcm5lZCIsInVzZVJlZiIsImN1cnJlbnQiLCJjb25zb2xlIiwid2FybiIsInAiLCJ1c2VSb3V0ZXIiLCJ1c2VNZW1vIiwicmVzb2x2ZUhyZWYiLCJyZXNvbHZlZEhyZWYiLCJyZXNvbHZlZEFzIiwiY2hpbGRyZW4iLCJjcmVhdGVFbGVtZW50IiwiY2hpbGQiLCJDaGlsZHJlbiIsIm9ubHkiLCJjaGlsZFJlZiIsInJlZiIsInVzZUludGVyc2VjdGlvbiIsInJvb3RNYXJnaW4iLCJzZXRJbnRlcnNlY3Rpb25SZWYiLCJpc1Zpc2libGUiLCJzZXRSZWYiLCJ1c2VDYWxsYmFjayIsImVsIiwidXNlRWZmZWN0Iiwic2hvdWxkUHJlZmV0Y2giLCJpc1ByZWZldGNoZWQiLCJjaGlsZFByb3BzIiwib25DbGljayIsImRlZmF1bHRQcmV2ZW50ZWQiLCJvbk1vdXNlRW50ZXIiLCJwcmlvcml0eSIsInR5cGUiLCJsb2NhbGVEb21haW4iLCJpc0xvY2FsZURvbWFpbiIsImdldERvbWFpbkxvY2FsZSIsImxvY2FsZXMiLCJkb21haW5Mb2NhbGVzIiwiYWRkQmFzZVBhdGgiLCJhZGRMb2NhbGUiLCJkZWZhdWx0TG9jYWxlIiwiY2xvbmVFbGVtZW50IiwiX2RlZmF1bHQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/link.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/use-intersection.js": +/*!***********************************************************!*\ + !*** ./node_modules/next/dist/client/use-intersection.js ***! + \***********************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _slicedToArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nvar _s = $RefreshSig$();\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.useIntersection = useIntersection;\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nvar _requestIdleCallback = __webpack_require__(/*! ./request-idle-callback */ \"./node_modules/next/dist/client/request-idle-callback.js\");\n\nvar hasIntersectionObserver = typeof IntersectionObserver !== 'undefined';\n\nfunction useIntersection(_ref) {\n _s();\n\n var rootMargin = _ref.rootMargin,\n disabled = _ref.disabled;\n var isDisabled = disabled || !hasIntersectionObserver;\n var unobserve = (0, _react).useRef();\n\n var _useState = (0, _react).useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n visible = _useState2[0],\n setVisible = _useState2[1];\n\n var setRef = (0, _react).useCallback(function (el) {\n if (unobserve.current) {\n unobserve.current();\n unobserve.current = undefined;\n }\n\n if (isDisabled || visible) return;\n\n if (el && el.tagName) {\n unobserve.current = observe(el, function (isVisible) {\n return isVisible && setVisible(isVisible);\n }, {\n rootMargin: rootMargin\n });\n }\n }, [isDisabled, rootMargin, visible]);\n (0, _react).useEffect(function () {\n if (!hasIntersectionObserver) {\n if (!visible) {\n var idleCallback = (0, _requestIdleCallback).requestIdleCallback(function () {\n return setVisible(true);\n });\n return function () {\n return (0, _requestIdleCallback).cancelIdleCallback(idleCallback);\n };\n }\n }\n }, [visible]);\n return [setRef, visible];\n}\n\n_s(useIntersection, \"Z6jj7qx+KE6gD9CpC9WlQTha45o=\");\n\nfunction observe(element, callback, options) {\n var _createObserver = createObserver(options),\n id = _createObserver.id,\n observer = _createObserver.observer,\n elements = _createObserver.elements;\n\n elements.set(element, callback);\n observer.observe(element);\n return function unobserve() {\n elements[\"delete\"](element);\n observer.unobserve(element); // Destroy observer when there's nothing left to watch:\n\n if (elements.size === 0) {\n observer.disconnect();\n observers[\"delete\"](id);\n }\n };\n}\n\nvar observers = new Map();\n\nfunction createObserver(options) {\n var id = options.rootMargin || '';\n var instance = observers.get(id);\n\n if (instance) {\n return instance;\n }\n\n var elements = new Map();\n var observer = new IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n var callback = elements.get(entry.target);\n var isVisible = entry.isIntersecting || entry.intersectionRatio > 0;\n\n if (callback && isVisible) {\n callback(isVisible);\n }\n });\n }, options);\n observers.set(id, instance = {\n id: id,\n observer: observer,\n elements: elements\n });\n return instance;\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC91c2UtaW50ZXJzZWN0aW9uLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7Ozs7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELHVCQUFBLEdBQTBCRSxlQUExQjs7QUFDQSxJQUFJQyxNQUFNLEdBQUdDLG1CQUFPLENBQUMsNENBQUQsQ0FBcEI7O0FBQ0EsSUFBSUMsb0JBQW9CLEdBQUdELG1CQUFPLENBQUMseUZBQUQsQ0FBbEM7O0FBQ0EsSUFBTUUsdUJBQXVCLEdBQUcsT0FBT0Msb0JBQVAsS0FBZ0MsV0FBaEU7O0FBQ0EsU0FBU0wsZUFBVCxPQUFxRDtBQUFBOztBQUFBLE1BQTFCTSxVQUEwQixRQUExQkEsVUFBMEI7QUFBQSxNQUFiQyxRQUFhLFFBQWJBLFFBQWE7QUFDakQsTUFBTUMsVUFBVSxHQUFHRCxRQUFRLElBQUksQ0FBQ0gsdUJBQWhDO0FBQ0EsTUFBTUssU0FBUyxHQUFHLENBQUMsR0FBR1IsTUFBSixFQUFZUyxNQUFaLEVBQWxCOztBQUNBLGtCQUE4QixDQUFDLEdBQUdULE1BQUosRUFBWVUsUUFBWixDQUFxQixLQUFyQixDQUE5QjtBQUFBO0FBQUEsTUFBT0MsT0FBUDtBQUFBLE1BQWdCQyxVQUFoQjs7QUFDQSxNQUFNQyxNQUFNLEdBQUcsQ0FBQyxHQUFHYixNQUFKLEVBQVljLFdBQVosQ0FBd0IsVUFBQ0MsRUFBRCxFQUFNO0FBQ3pDLFFBQUlQLFNBQVMsQ0FBQ1EsT0FBZCxFQUF1QjtBQUNuQlIsTUFBQUEsU0FBUyxDQUFDUSxPQUFWO0FBQ0FSLE1BQUFBLFNBQVMsQ0FBQ1EsT0FBVixHQUFvQkMsU0FBcEI7QUFDSDs7QUFDRCxRQUFJVixVQUFVLElBQUlJLE9BQWxCLEVBQTJCOztBQUMzQixRQUFJSSxFQUFFLElBQUlBLEVBQUUsQ0FBQ0csT0FBYixFQUFzQjtBQUNsQlYsTUFBQUEsU0FBUyxDQUFDUSxPQUFWLEdBQW9CRyxPQUFP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QUFBLEVBQUUsRUFBRkEsRUFEeUI7QUFFekJDLElBQUFBLFFBQVEsRUFBUkEsUUFGeUI7QUFHekJDLElBQUFBLFFBQVEsRUFBUkE7QUFIeUIsR0FBN0I7QUFLQSxTQUFPTSxRQUFQO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvdXNlLWludGVyc2VjdGlvbi5qcz9mZDk0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy51c2VJbnRlcnNlY3Rpb24gPSB1c2VJbnRlcnNlY3Rpb247XG52YXIgX3JlYWN0ID0gcmVxdWlyZShcInJlYWN0XCIpO1xudmFyIF9yZXF1ZXN0SWRsZUNhbGxiYWNrID0gcmVxdWlyZShcIi4vcmVxdWVzdC1pZGxlLWNhbGxiYWNrXCIpO1xuY29uc3QgaGFzSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPSB0eXBlb2YgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgIT09ICd1bmRlZmluZWQnO1xuZnVuY3Rpb24gdXNlSW50ZXJzZWN0aW9uKHsgcm9vdE1hcmdpbiAsIGRpc2FibGVkICB9KSB7XG4gICAgY29uc3QgaXNEaXNhYmxlZCA9IGRpc2FibGVkIHx8ICFoYXNJbnRlcnNlY3Rpb25PYnNlcnZlcjtcbiAgICBjb25zdCB1bm9ic2VydmUgPSAoMCwgX3JlYWN0KS51c2VSZWYoKTtcbiAgICBjb25zdCBbdmlzaWJsZSwgc2V0VmlzaWJsZV0gPSAoMCwgX3JlYWN0KS51c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3Qgc2V0UmVmID0gKDAsIF9yZWFjdCkudXNlQ2FsbGJhY2soKGVsKT0+e1xuICAgICAgICBpZiAodW5vYnNlcnZlLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIHVub2JzZXJ2ZS5jdXJyZW50KCk7XG4gICAgICAgICAgICB1bm9ic2VydmUuY3VycmVudCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNEaXNhYmxlZCB8fCB2aXNpYmxlKSByZXR1cm47XG4gICAgICAgIGlmIChlbCAmJiBlbC50YWdOYW1lKSB7XG4gICAgICAgICAgICB1bm9ic2VydmUuY3VycmVudCA9IG9ic2VydmUoZWwsIChpc1Zpc2libGUpPT5pc1Zpc2libGUgJiYgc2V0VmlzaWJsZShpc1Zpc2libGUpXG4gICAgICAgICAgICAsIHtcbiAgICAgICAgICAgICAgICByb290TWFyZ2luXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgaXNEaXNhYmxlZCxcbiAgICAgICAgcm9vdE1hcmdpbixcbiAgICAgICAgdmlzaWJsZVxuICAgIF0pO1xuICAgICgwLCBfcmVhY3QpLnVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBpZiAoIWhhc0ludGVyc2VjdGlvbk9ic2VydmVyKSB7XG4gICAgICAgICAgICBpZiAoIXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpZGxlQ2FsbGJhY2sgPSAoMCwgX3JlcXVlc3RJZGxlQ2FsbGJhY2spLnJlcXVlc3RJZGxlQ2FsbGJhY2soKCk9PnNldFZpc2libGUodHJ1ZSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHJldHVybiAoKT0+KDAsIF9yZXF1ZXN0SWRsZUNhbGxiYWNrKS5jYW5jZWxJZGxlQ2FsbGJhY2soaWRsZUNhbGxiYWNrKVxuICAgICAgICAgICAgICAgIDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgdmlzaWJsZVxuICAgIF0pO1xuICAgIHJldHVybiBbXG4gICAgICAgIHNldFJlZixcbiAgICAgICAgdmlzaWJsZVxuICAgIF07XG59XG5mdW5jdGlvbiBvYnNlcnZlKGVsZW1lbnQsIGNhbGxiYWNrLCBvcHRpb25zKSB7XG4gICAgY29uc3QgeyBpZCAsIG9ic2VydmVyICwgZWxlbWVudHMgIH0gPSBjcmVhdGVPYnNlcnZlcihvcHRpb25zKTtcbiAgICBlbGVtZW50cy5zZXQoZWxlbWVudCwgY2FsbGJhY2spO1xuICAgIG9ic2VydmVyLm9ic2VydmUoZWxlbWVudCk7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIHVub2JzZXJ2ZSgpIHtcbiAgICAgICAgZWxlbWVudHMuZGVsZXRlKGVsZW1lbnQpO1xuICAgICAgICBvYnNlcnZlci51bm9ic2VydmUoZWxlbWVudCk7XG4gICAgICAgIC8vIERlc3Ryb3kgb2JzZXJ2ZXIgd2hlbiB0aGVyZSdzIG5vdGhpbmcgbGVmdCB0byB3YXRjaDpcbiAgICAgICAgaWYgKGVsZW1lbnRzLnNpemUgPT09IDApIHtcbiAgICAgICAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICAgIG9ic2VydmVycy5kZWxldGUoaWQpO1xuICAgICAgICB9XG4gICAgfTtcbn1cbmNvbnN0IG9ic2VydmVycyA9IG5ldyBNYXAoKTtcbmZ1bmN0aW9uIGNyZWF0ZU9ic2VydmVyKG9wdGlvbnMpIHtcbiAgICBjb25zdCBpZCA9IG9wdGlvbnMucm9vdE1hcmdpbiB8fCAnJztcbiAgICBsZXQgaW5zdGFuY2UgPSBvYnNlcnZlcnMuZ2V0KGlkKTtcbiAgICBpZiAoaW5zdGFuY2UpIHtcbiAgICAgICAgcmV0dXJuIGluc3RhbmNlO1xuICAgIH1cbiAgICBjb25zdCBlbGVtZW50cyA9IG5ldyBNYXAoKTtcbiAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZW50cmllcyk9PntcbiAgICAgICAgZW50cmllcy5mb3JFYWNoKChlbnRyeSk9PntcbiAgICAgICAgICAgIGNvbnN0IGNhbGxiYWNrID0gZWxlbWVudHMuZ2V0KGVudHJ5LnRhcmdldCk7XG4gICAgICAgICAgICBjb25zdCBpc1Zpc2libGUgPSBlbnRyeS5pc0ludGVyc2VjdGluZyB8fCBlbnRyeS5pbnRlcnNlY3Rpb25SYXRpbyA+IDA7XG4gICAgICAgICAgICBpZiAoY2FsbGJhY2sgJiYgaXNWaXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2soaXNWaXNpYmxlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSwgb3B0aW9ucyk7XG4gICAgb2JzZXJ2ZXJzLnNldChpZCwgaW5zdGFuY2UgPSB7XG4gICAgICAgIGlkLFxuICAgICAgICBvYnNlcnZlcixcbiAgICAgICAgZWxlbWVudHNcbiAgICB9KTtcbiAgICByZXR1cm4gaW5zdGFuY2U7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVzZS1pbnRlcnNlY3Rpb24uanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwidXNlSW50ZXJzZWN0aW9uIiwiX3JlYWN0IiwicmVxdWlyZSIsIl9yZXF1ZXN0SWRsZUNhbGxiYWNrIiwiaGFzSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiLCJJbnRlcnNlY3Rpb25PYnNlcnZlciIsInJvb3RNYXJnaW4iLCJkaXNhYmxlZCIsImlzRGlzYWJsZWQiLCJ1bm9ic2VydmUiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInZpc2libGUiLCJzZXRWaXNpYmxlIiwic2V0UmVmIiwidXNlQ2FsbGJhY2siLCJlbCIsImN1cnJlbnQiLCJ1bmRlZmluZWQiLCJ0YWdOYW1lIiwib2JzZXJ2ZSIsImlzVmlzaWJsZSIsInVzZUVmZmVjdCIsImlkbGVDYWxsYmFjayIsInJlcXVlc3RJZGxlQ2FsbGJhY2siLCJjYW5jZWxJZGxlQ2FsbGJhY2siLCJlbGVtZW50IiwiY2FsbGJhY2siLCJvcHRpb25zIiwiY3JlYXRlT2JzZXJ2ZXIiLCJpZCIsIm9ic2VydmVyIiwiZWxlbWVudHMiLCJzZXQiLCJzaXplIiwiZGlzY29ubmVjdCIsIm9ic2VydmVycyIsIk1hcCIsImluc3RhbmNlIiwiZ2V0IiwiZW50cmllcyIsImZvckVhY2giLCJlbnRyeSIsInRhcmdldCIsImlzSW50ZXJzZWN0aW5nIiwiaW50ZXJzZWN0aW9uUmF0aW8iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/use-intersection.js\n"); + +/***/ }), + +/***/ "./src/common/cardMouseEffect.js": +/*!***************************************!*\ + !*** ./src/common/cardMouseEffect.js ***! + \***************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getSiblings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getSiblings */ \"./src/common/getSiblings.js\");\n/* module decorator */ module = __webpack_require__.hmd(module);\n\n\nvar cardMouseEffect = function cardMouseEffect(featureEl) {\n var featuresitems = featureEl;\n\n if (featuresitems) {\n featuresitems.forEach(function (item) {\n item.onmouseover = function (event) {\n item.classList.add(\"active\");\n var siblings = (0,_getSiblings__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(item),\n siblingEl = siblings.map(function (e) {\n return e.classList.remove(\"active\");\n });\n };\n });\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (cardMouseEffect);\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL2NhcmRNb3VzZUVmZmVjdC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7QUFBQTs7QUFFQSxJQUFNQyxlQUFlLEdBQUcsU0FBbEJBLGVBQWtCLENBQUNDLFNBQUQsRUFBZTtBQUNyQyxNQUFJQyxhQUFhLEdBQUdELFNBQXBCOztBQUNBLE1BQUlDLGFBQUosRUFBbUI7QUFDakJBLElBQUFBLGFBQWEsQ0FBQ0MsT0FBZCxDQUFzQixVQUFDQyxJQUFELEVBQVU7QUFDOUJBLE1BQUFBLElBQUksQ0FBQ0MsV0FBTCxHQUFtQixVQUFVQyxLQUFWLEVBQWlCO0FBQ2xDRixRQUFBQSxJQUFJLENBQUNHLFNBQUwsQ0FBZUMsR0FBZixDQUFtQixRQUFuQjtBQUNBLFlBQUlDLFFBQVEsR0FBR1Ysd0RBQVcsQ0FBQ0ssSUFBRCxDQUExQjtBQUFBLFlBQ0VNLFNBQVMsR0FBR0QsUUFBUSxDQUFDRSxHQUFULENBQWEsVUFBQ0MsQ0FBRDtBQUFBLGlCQUFPQSxDQUFDLENBQUNMLFNBQUYsQ0FBWU0sTUFBWixDQUFtQixRQUFuQixDQUFQO0FBQUEsU0FBYixDQURkO0FBRUQsT0FKRDtBQUtELEtBTkQ7QUFPRDtBQUNGLENBWEQ7O0FBYUEsK0RBQWViLGVBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbW1vbi9jYXJkTW91c2VFZmZlY3QuanM/MmFlYyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0U2libGluZ3MgZnJvbSAnLi9nZXRTaWJsaW5ncydcclxuXHJcbmNvbnN0IGNhcmRNb3VzZUVmZmVjdCA9IChmZWF0dXJlRWwpID0+IHtcclxuICB2YXIgZmVhdHVyZXNpdGVtcyA9IGZlYXR1cmVFbDtcclxuICBpZiAoZmVhdHVyZXNpdGVtcykge1xyXG4gICAgZmVhdHVyZXNpdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgIGl0ZW0ub25tb3VzZW92ZXIgPSBmdW5jdGlvbiAoZXZlbnQpIHtcclxuICAgICAgICBpdGVtLmNsYXNzTGlzdC5hZGQoXCJhY3RpdmVcIik7XHJcbiAgICAgICAgbGV0IHNpYmxpbmdzID0gZ2V0U2libGluZ3MoaXRlbSksXHJcbiAgICAgICAgICBzaWJsaW5nRWwgPSBzaWJsaW5ncy5tYXAoKGUpID0+IGUuY2xhc3NMaXN0LnJlbW92ZShcImFjdGl2ZVwiKSk7XHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICB9XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjYXJkTW91c2VFZmZlY3Q7XHJcbiJdLCJuYW1lcyI6WyJnZXRTaWJsaW5ncyIsImNhcmRNb3VzZUVmZmVjdCIsImZlYXR1cmVFbCIsImZlYXR1cmVzaXRlbXMiLCJmb3JFYWNoIiwiaXRlbSIsIm9ubW91c2VvdmVyIiwiZXZlbnQiLCJjbGFzc0xpc3QiLCJhZGQiLCJzaWJsaW5ncyIsInNpYmxpbmdFbCIsIm1hcCIsImUiLCJyZW1vdmUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/common/cardMouseEffect.js\n"); + +/***/ }), + +/***/ "./src/common/fadeInFadeOut.js": +/*!*************************************!*\ + !*** ./src/common/fadeInFadeOut.js ***! + \*************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"fadeIn\": function() { return /* binding */ fadeIn; },\n/* harmony export */ \"fadeOut\": function() { return /* binding */ fadeOut; }\n/* harmony export */ });\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar opacity = 0;\nvar intervalID = 0;\nvar fadeIn = function fadeIn(el, time) {\n setInterval(show(el), time);\n};\n\nfunction show(el) {\n opacity = Number(window.getComputedStyle(el).getPropertyValue(\"opacity\"));\n\n if (opacity < 1) {\n opacity = opacity + 1;\n el.style.opacity = opacity;\n } else {\n clearInterval(intervalID);\n }\n}\n\nvar fadeOut = function fadeOut(el, time) {\n setInterval(hide(el), time);\n};\n\nfunction hide(el) {\n opacity = Number(window.getComputedStyle(el).getPropertyValue(\"opacity\"));\n\n if (opacity > 0) {\n opacity = 0;\n el.style.opacity = opacity;\n } else {\n clearInterval(intervalID);\n }\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL2ZhZGVJbkZhZGVPdXQuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBSUEsT0FBTyxHQUFHLENBQWQ7QUFDQSxJQUFJQyxVQUFVLEdBQUcsQ0FBakI7QUFDTyxJQUFNQyxNQUFNLEdBQUcsU0FBVEEsTUFBUyxDQUFDQyxFQUFELEVBQUtDLElBQUwsRUFBYztBQUNsQ0MsRUFBQUEsV0FBVyxDQUFDQyxJQUFJLENBQUNILEVBQUQsQ0FBTCxFQUFXQyxJQUFYLENBQVg7QUFDRCxDQUZNOztBQUdQLFNBQVNFLElBQVQsQ0FBY0gsRUFBZCxFQUFrQjtBQUNoQkgsRUFBQUEsT0FBTyxHQUFHTyxNQUFNLENBQUNDLE1BQU0sQ0FBQ0MsZ0JBQVAsQ0FBd0JOLEVBQXhCLEVBQTRCTyxnQkFBNUIsQ0FBNkMsU0FBN0MsQ0FBRCxDQUFoQjs7QUFDQSxNQUFJVixPQUFPLEdBQUcsQ0FBZCxFQUFpQjtBQUNmQSxJQUFBQSxPQUFPLEdBQUdBLE9BQU8sR0FBRyxDQUFwQjtBQUNBRyxJQUFBQSxFQUFFLENBQUNRLEtBQUgsQ0FBU1gsT0FBVCxHQUFtQkEsT0FBbkI7QUFDRCxHQUhELE1BR087QUFDTFksSUFBQUEsYUFBYSxDQUFDWCxVQUFELENBQWI7QUFDRDtBQUNGOztBQUNNLElBQU1ZLE9BQU8sR0FBRyxTQUFWQSxPQUFVLENBQUNWLEVBQUQsRUFBS0MsSUFBTCxFQUFjO0FBQ25DQyxFQUFBQSxXQUFXLENBQUNTLElBQUksQ0FBQ1gsRUFBRCxDQUFMLEVBQVdDLElBQVgsQ0FBWDtBQUNELENBRk07O0FBR1AsU0FBU1UsSUFBVCxDQUFjWCxFQUFkLEVBQWtCO0FBQ2hCSCxFQUFBQSxPQUFPLEdBQUdPLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDQyxnQkFBUCxDQUF3Qk4sRUFBeEIsRUFBNEJPLGdCQUE1QixDQUE2QyxTQUE3QyxDQUFELENBQWhCOztBQUNBLE1BQUlWLE9BQU8sR0FBRyxDQUFkLEVBQWlCO0FBQ2ZBLElBQUFBLE9BQU8sR0FBRyxDQUFWO0FBQ0FHLElBQUFBLEVBQUUsQ0FBQ1EsS0FBSCxDQUFTWCxPQUFULEdBQW1CQSxPQUFuQjtBQUNELEdBSEQsTUFHTztBQUNMWSxJQUFBQSxhQUFhLENBQUNYLFVBQUQsQ0FBYjtBQUNEO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbW1vbi9mYWRlSW5GYWRlT3V0LmpzPzc0MzYiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIG9wYWNpdHkgPSAwO1xyXG52YXIgaW50ZXJ2YWxJRCA9IDA7XHJcbmV4cG9ydCBjb25zdCBmYWRlSW4gPSAoZWwsIHRpbWUpID0+IHtcclxuICBzZXRJbnRlcnZhbChzaG93KGVsKSwgdGltZSk7XHJcbn07XHJcbmZ1bmN0aW9uIHNob3coZWwpIHtcclxuICBvcGFjaXR5ID0gTnVtYmVyKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsKS5nZXRQcm9wZXJ0eVZhbHVlKFwib3BhY2l0eVwiKSk7XHJcbiAgaWYgKG9wYWNpdHkgPCAxKSB7XHJcbiAgICBvcGFjaXR5ID0gb3BhY2l0eSArIDE7XHJcbiAgICBlbC5zdHlsZS5vcGFjaXR5ID0gb3BhY2l0eTtcclxuICB9IGVsc2Uge1xyXG4gICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbElEKTtcclxuICB9XHJcbn1cclxuZXhwb3J0IGNvbnN0IGZhZGVPdXQgPSAoZWwsIHRpbWUpID0+IHtcclxuICBzZXRJbnRlcnZhbChoaWRlKGVsKSwgdGltZSk7XHJcbn07XHJcbmZ1bmN0aW9uIGhpZGUoZWwpIHtcclxuICBvcGFjaXR5ID0gTnVtYmVyKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsKS5nZXRQcm9wZXJ0eVZhbHVlKFwib3BhY2l0eVwiKSk7XHJcbiAgaWYgKG9wYWNpdHkgPiAwKSB7XHJcbiAgICBvcGFjaXR5ID0gMDtcclxuICAgIGVsLnN0eWxlLm9wYWNpdHkgPSBvcGFjaXR5O1xyXG4gIH0gZWxzZSB7XHJcbiAgICBjbGVhckludGVydmFsKGludGVydmFsSUQpO1xyXG4gIH1cclxufVxyXG4iXSwibmFtZXMiOlsib3BhY2l0eSIsImludGVydmFsSUQiLCJmYWRlSW4iLCJlbCIsInRpbWUiLCJzZXRJbnRlcnZhbCIsInNob3ciLCJOdW1iZXIiLCJ3aW5kb3ciLCJnZXRDb21wdXRlZFN0eWxlIiwiZ2V0UHJvcGVydHlWYWx1ZSIsInN0eWxlIiwiY2xlYXJJbnRlcnZhbCIsImZhZGVPdXQiLCJoaWRlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/common/fadeInFadeOut.js\n"); + +/***/ }), + +/***/ "./src/common/getSiblings.js": +/*!***********************************!*\ + !*** ./src/common/getSiblings.js ***! + \***********************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar getSiblings = function getSiblings(e) {\n var siblings = [];\n\n if (!e.parentNode) {\n return siblings;\n }\n\n var sibling = e.parentNode.firstChild;\n\n while (sibling) {\n if (sibling.nodeType === 1 && sibling !== e) {\n siblings.push(sibling);\n }\n\n sibling = sibling.nextSibling;\n }\n\n return siblings;\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (getSiblings);\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL2dldFNpYmxpbmdzLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQUEsSUFBTUEsV0FBVyxHQUFHLFNBQWRBLFdBQWMsQ0FBQ0MsQ0FBRCxFQUFPO0FBQ3pCLE1BQUlDLFFBQVEsR0FBRyxFQUFmOztBQUNBLE1BQUksQ0FBQ0QsQ0FBQyxDQUFDRSxVQUFQLEVBQW1CO0FBQ2pCLFdBQU9ELFFBQVA7QUFDRDs7QUFDRCxNQUFJRSxPQUFPLEdBQUdILENBQUMsQ0FBQ0UsVUFBRixDQUFhRSxVQUEzQjs7QUFDQSxTQUFPRCxPQUFQLEVBQWdCO0FBQ2QsUUFBSUEsT0FBTyxDQUFDRSxRQUFSLEtBQXFCLENBQXJCLElBQTBCRixPQUFPLEtBQUtILENBQTFDLEVBQTZDO0FBQzNDQyxNQUFBQSxRQUFRLENBQUNLLElBQVQsQ0FBY0gsT0FBZDtBQUNEOztBQUNEQSxJQUFBQSxPQUFPLEdBQUdBLE9BQU8sQ0FBQ0ksV0FBbEI7QUFDRDs7QUFDRCxTQUFPTixRQUFQO0FBQ0QsQ0FiRDs7QUFlQSwrREFBZUYsV0FBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tbW9uL2dldFNpYmxpbmdzLmpzPzhlNjUiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZ2V0U2libGluZ3MgPSAoZSkgPT4ge1xyXG4gIGxldCBzaWJsaW5ncyA9IFtdO1xyXG4gIGlmICghZS5wYXJlbnROb2RlKSB7XHJcbiAgICByZXR1cm4gc2libGluZ3M7XHJcbiAgfVxyXG4gIGxldCBzaWJsaW5nID0gZS5wYXJlbnROb2RlLmZpcnN0Q2hpbGQ7XHJcbiAgd2hpbGUgKHNpYmxpbmcpIHtcclxuICAgIGlmIChzaWJsaW5nLm5vZGVUeXBlID09PSAxICYmIHNpYmxpbmcgIT09IGUpIHtcclxuICAgICAgc2libGluZ3MucHVzaChzaWJsaW5nKTtcclxuICAgIH1cclxuICAgIHNpYmxpbmcgPSBzaWJsaW5nLm5leHRTaWJsaW5nO1xyXG4gIH1cclxuICByZXR1cm4gc2libGluZ3M7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBnZXRTaWJsaW5ncztcclxuIl0sIm5hbWVzIjpbImdldFNpYmxpbmdzIiwiZSIsInNpYmxpbmdzIiwicGFyZW50Tm9kZSIsInNpYmxpbmciLCJmaXJzdENoaWxkIiwibm9kZVR5cGUiLCJwdXNoIiwibmV4dFNpYmxpbmciXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/common/getSiblings.js\n"); + +/***/ }), + +/***/ "./src/common/navbar.js": +/*!******************************!*\ + !*** ./src/common/navbar.js ***! + \******************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"handleDropdown\": function() { return /* binding */ handleDropdown; },\n/* harmony export */ \"handleMobileDropdown\": function() { return /* binding */ handleMobileDropdown; }\n/* harmony export */ });\n/* harmony import */ var _getSiblings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getSiblings */ \"./src/common/getSiblings.js\");\n/* module decorator */ module = __webpack_require__.hmd(module);\n\nvar handleDropdown = function handleDropdown(e) {\n (0,_getSiblings__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(e.target.parentElement).filter(function (item) {\n return item.classList.contains(\"show\");\n }).map(function (item) {\n item.classList.remove(\"show\");\n\n if (item.childNodes[0]) {\n item.childNodes[0].setAttribute(\"aria-expanded\", false);\n }\n\n if (item.childNodes[1]) {\n item.childNodes[1].classList.remove(\"show\");\n }\n });\n e.target.parentElement.classList.toggle(\"show\");\n e.target.setAttribute(\"aria-expanded\", true);\n e.target.parentElement.childNodes[1].classList.toggle(\"show\");\n};\nvar handleMobileDropdown = function handleMobileDropdown(e) {\n document.getElementById(\"navbarSupportedContent\").classList.toggle(\"show-with-trans\");\n};\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL25hdmJhci5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7QUFFTyxJQUFNQyxjQUFjLEdBQUcsU0FBakJBLGNBQWlCLENBQUNDLENBQUQsRUFBTztBQUNuQ0YsRUFBQUEsd0RBQVcsQ0FBQ0UsQ0FBQyxDQUFDQyxNQUFGLENBQVNDLGFBQVYsQ0FBWCxDQUNHQyxNQURILENBQ1UsVUFBQ0MsSUFBRDtBQUFBLFdBQVVBLElBQUksQ0FBQ0MsU0FBTCxDQUFlQyxRQUFmLENBQXdCLE1BQXhCLENBQVY7QUFBQSxHQURWLEVBRUdDLEdBRkgsQ0FFTyxVQUFDSCxJQUFELEVBQVU7QUFDYkEsSUFBQUEsSUFBSSxDQUFDQyxTQUFMLENBQWVHLE1BQWYsQ0FBc0IsTUFBdEI7O0FBQ0EsUUFBSUosSUFBSSxDQUFDSyxVQUFMLENBQWdCLENBQWhCLENBQUosRUFBd0I7QUFDdEJMLE1BQUFBLElBQUksQ0FBQ0ssVUFBTCxDQUFnQixDQUFoQixFQUFtQkMsWUFBbkIsQ0FBZ0MsZUFBaEMsRUFBaUQsS0FBakQ7QUFDRDs7QUFDRCxRQUFJTixJQUFJLENBQUNLLFVBQUwsQ0FBZ0IsQ0FBaEIsQ0FBSixFQUF3QjtBQUN0QkwsTUFBQUEsSUFBSSxDQUFDSyxVQUFMLENBQWdCLENBQWhCLEVBQW1CSixTQUFuQixDQUE2QkcsTUFBN0IsQ0FBb0MsTUFBcEM7QUFDRDtBQUNGLEdBVkg7QUFXQVIsRUFBQUEsQ0FBQyxDQUFDQyxNQUFGLENBQVNDLGFBQVQsQ0FBdUJHLFNBQXZCLENBQWlDTSxNQUFqQyxDQUF3QyxNQUF4QztBQUNBWCxFQUFBQSxDQUFDLENBQUNDLE1BQUYsQ0FBU1MsWUFBVCxDQUFzQixlQUF0QixFQUF1QyxJQUF2QztBQUNBVixFQUFBQSxDQUFDLENBQUNDLE1BQUYsQ0FBU0MsYUFBVCxDQUF1Qk8sVUFBdkIsQ0FBa0MsQ0FBbEMsRUFBcUNKLFNBQXJDLENBQStDTSxNQUEvQyxDQUFzRCxNQUF0RDtBQUNELENBZk07QUFpQkEsSUFBTUMsb0JBQW9CLEdBQUcsU0FBdkJBLG9CQUF1QixDQUFDWixDQUFELEVBQU87QUFDekNhLEVBQUFBLFFBQVEsQ0FDTEMsY0FESCxDQUNrQix3QkFEbEIsRUFFR1QsU0FGSCxDQUVhTSxNQUZiLENBRW9CLGlCQUZwQjtBQUdELENBSk0iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbW1vbi9uYXZiYXIuanM/MWU3NiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0U2libGluZ3MgZnJvbSAnLi9nZXRTaWJsaW5ncydcclxuXHJcbmV4cG9ydCBjb25zdCBoYW5kbGVEcm9wZG93biA9IChlKSA9PiB7XHJcbiAgZ2V0U2libGluZ3MoZS50YXJnZXQucGFyZW50RWxlbWVudClcclxuICAgIC5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uY2xhc3NMaXN0LmNvbnRhaW5zKFwic2hvd1wiKSlcclxuICAgIC5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgaXRlbS5jbGFzc0xpc3QucmVtb3ZlKFwic2hvd1wiKTtcclxuICAgICAgaWYgKGl0ZW0uY2hpbGROb2Rlc1swXSkge1xyXG4gICAgICAgIGl0ZW0uY2hpbGROb2Rlc1swXS5zZXRBdHRyaWJ1dGUoXCJhcmlhLWV4cGFuZGVkXCIsIGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaXRlbS5jaGlsZE5vZGVzWzFdKSB7XHJcbiAgICAgICAgaXRlbS5jaGlsZE5vZGVzWzFdLmNsYXNzTGlzdC5yZW1vdmUoXCJzaG93XCIpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICBlLnRhcmdldC5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoXCJzaG93XCIpO1xyXG4gIGUudGFyZ2V0LnNldEF0dHJpYnV0ZShcImFyaWEtZXhwYW5kZWRcIiwgdHJ1ZSk7XHJcbiAgZS50YXJnZXQucGFyZW50RWxlbWVudC5jaGlsZE5vZGVzWzFdLmNsYXNzTGlzdC50b2dnbGUoXCJzaG93XCIpO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGhhbmRsZU1vYmlsZURyb3Bkb3duID0gKGUpID0+IHtcclxuICBkb2N1bWVudFxyXG4gICAgLmdldEVsZW1lbnRCeUlkKFwibmF2YmFyU3VwcG9ydGVkQ29udGVudFwiKVxyXG4gICAgLmNsYXNzTGlzdC50b2dnbGUoXCJzaG93LXdpdGgtdHJhbnNcIik7XHJcbn07Il0sIm5hbWVzIjpbImdldFNpYmxpbmdzIiwiaGFuZGxlRHJvcGRvd24iLCJlIiwidGFyZ2V0IiwicGFyZW50RWxlbWVudCIsImZpbHRlciIsIml0ZW0iLCJjbGFzc0xpc3QiLCJjb250YWlucyIsIm1hcCIsInJlbW92ZSIsImNoaWxkTm9kZXMiLCJzZXRBdHRyaWJ1dGUiLCJ0b2dnbGUiLCJoYW5kbGVNb2JpbGVEcm9wZG93biIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/common/navbar.js\n"); + +/***/ }), + +/***/ "./src/common/teamSkillsProgress.js": +/*!******************************************!*\ + !*** ./src/common/teamSkillsProgress.js ***! + \******************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar teamSkillsProgress = function teamSkillsProgress() {\n var teamSection = document.querySelector(\".team-crv\");\n\n if (teamSection) {\n window.addEventListener(\"scroll\", function () {\n document.querySelectorAll(\".skill-progress .progres\").forEach(function (item) {\n var myVal = item.getAttribute(\"data-value\");\n\n if (window.pageYOffset > teamSection.offsetTop - 200) {\n item.style.width = myVal;\n }\n });\n });\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (teamSkillsProgress);\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL3RlYW1Ta2lsbHNQcm9ncmVzcy5qcy5qcyIsIm1hcHBpbmdzIjoiOztBQUFBLElBQU1BLGtCQUFrQixHQUFHLFNBQXJCQSxrQkFBcUIsR0FBTTtBQUMvQixNQUFJQyxXQUFXLEdBQUdDLFFBQVEsQ0FBQ0MsYUFBVCxDQUF1QixXQUF2QixDQUFsQjs7QUFDQSxNQUFJRixXQUFKLEVBQWlCO0FBQ2ZHLElBQUFBLE1BQU0sQ0FBQ0MsZ0JBQVAsQ0FBd0IsUUFBeEIsRUFBa0MsWUFBTTtBQUN0Q0gsTUFBQUEsUUFBUSxDQUFDSSxnQkFBVCxDQUEwQiwwQkFBMUIsRUFBc0RDLE9BQXRELENBQThELFVBQUNDLElBQUQsRUFBVTtBQUN0RSxZQUFJQyxLQUFLLEdBQUdELElBQUksQ0FBQ0UsWUFBTCxDQUFrQixZQUFsQixDQUFaOztBQUNBLFlBQUlOLE1BQU0sQ0FBQ08sV0FBUCxHQUFxQlYsV0FBVyxDQUFDVyxTQUFaLEdBQXdCLEdBQWpELEVBQXNEO0FBQ3BESixVQUFBQSxJQUFJLENBQUNLLEtBQUwsQ0FBV0MsS0FBWCxHQUFtQkwsS0FBbkI7QUFDRDtBQUNGLE9BTEQ7QUFNRCxLQVBEO0FBUUQ7QUFDRixDQVpEOztBQWNBLCtEQUFlVCxrQkFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tbW9uL3RlYW1Ta2lsbHNQcm9ncmVzcy5qcz8xYTlhIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHRlYW1Ta2lsbHNQcm9ncmVzcyA9ICgpID0+IHtcclxuICBsZXQgdGVhbVNlY3Rpb24gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLnRlYW0tY3J2XCIpO1xyXG4gIGlmICh0ZWFtU2VjdGlvbikge1xyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgKCkgPT4ge1xyXG4gICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLnNraWxsLXByb2dyZXNzIC5wcm9ncmVzXCIpLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgICBsZXQgbXlWYWwgPSBpdGVtLmdldEF0dHJpYnV0ZShcImRhdGEtdmFsdWVcIik7XHJcbiAgICAgICAgaWYgKHdpbmRvdy5wYWdlWU9mZnNldCA+IHRlYW1TZWN0aW9uLm9mZnNldFRvcCAtIDIwMCkge1xyXG4gICAgICAgICAgaXRlbS5zdHlsZS53aWR0aCA9IG15VmFsO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCB0ZWFtU2tpbGxzUHJvZ3Jlc3M7XHJcbiJdLCJuYW1lcyI6WyJ0ZWFtU2tpbGxzUHJvZ3Jlc3MiLCJ0ZWFtU2VjdGlvbiIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJxdWVyeVNlbGVjdG9yQWxsIiwiZm9yRWFjaCIsIml0ZW0iLCJteVZhbCIsImdldEF0dHJpYnV0ZSIsInBhZ2VZT2Zmc2V0Iiwib2Zmc2V0VG9wIiwic3R5bGUiLCJ3aWR0aCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/common/teamSkillsProgress.js\n"); + +/***/ }), + +/***/ "./src/common/thumparallax.js": +/*!************************************!*\ + !*** ./src/common/thumparallax.js ***! + \************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"thumparallax\": function() { return /* binding */ thumparallax; },\n/* harmony export */ \"thumparallaxDown\": function() { return /* binding */ thumparallaxDown; }\n/* harmony export */ });\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar thumparallax = function thumparallax() {\n var imageUp = document.getElementsByClassName(\"thumparallax\");\n\n if (imageUp) {\n new simpleParallax(imageUp, {\n delay: 1,\n scale: 1.1\n });\n }\n};\nvar thumparallaxDown = function thumparallaxDown() {\n var imageDown = document.getElementsByClassName(\"thumparallax-down\");\n\n if (imageDown) {\n new simpleParallax(imageDown, {\n orientation: \"down\",\n delay: 1,\n scale: 1.1\n });\n }\n};\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL3RodW1wYXJhbGxheC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBTyxJQUFNQSxZQUFZLEdBQUcsU0FBZkEsWUFBZSxHQUFNO0FBQ2hDLE1BQUlDLE9BQU8sR0FBR0MsUUFBUSxDQUFDQyxzQkFBVCxDQUFnQyxjQUFoQyxDQUFkOztBQUNBLE1BQUlGLE9BQUosRUFBYTtBQUNYLFFBQUlHLGNBQUosQ0FBbUJILE9BQW5CLEVBQTRCO0FBQzFCSSxNQUFBQSxLQUFLLEVBQUUsQ0FEbUI7QUFFMUJDLE1BQUFBLEtBQUssRUFBRTtBQUZtQixLQUE1QjtBQUlEO0FBQ0YsQ0FSTTtBQVNBLElBQU1DLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBbUIsR0FBTTtBQUNwQyxNQUFJQyxTQUFTLEdBQUdOLFFBQVEsQ0FBQ0Msc0JBQVQsQ0FBZ0MsbUJBQWhDLENBQWhCOztBQUNBLE1BQUlLLFNBQUosRUFBZTtBQUNiLFFBQUlKLGNBQUosQ0FBbUJJLFNBQW5CLEVBQThCO0FBQzVCQyxNQUFBQSxXQUFXLEVBQUUsTUFEZTtBQUU1QkosTUFBQUEsS0FBSyxFQUFFLENBRnFCO0FBRzVCQyxNQUFBQSxLQUFLLEVBQUU7QUFIcUIsS0FBOUI7QUFLRDtBQUNGLENBVE0iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbW1vbi90aHVtcGFyYWxsYXguanM/YjZjYyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgdGh1bXBhcmFsbGF4ID0gKCkgPT4ge1xyXG4gIHZhciBpbWFnZVVwID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcInRodW1wYXJhbGxheFwiKTtcclxuICBpZiAoaW1hZ2VVcCkge1xyXG4gICAgbmV3IHNpbXBsZVBhcmFsbGF4KGltYWdlVXAsIHtcclxuICAgICAgZGVsYXk6IDEsXHJcbiAgICAgIHNjYWxlOiAxLjEsXHJcbiAgICB9KTtcclxuICB9XHJcbn07XHJcbmV4cG9ydCBjb25zdCB0aHVtcGFyYWxsYXhEb3duID0gKCkgPT4ge1xyXG4gIHZhciBpbWFnZURvd24gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwidGh1bXBhcmFsbGF4LWRvd25cIik7XHJcbiAgaWYgKGltYWdlRG93bikge1xyXG4gICAgbmV3IHNpbXBsZVBhcmFsbGF4KGltYWdlRG93biwge1xyXG4gICAgICBvcmllbnRhdGlvbjogXCJkb3duXCIsXHJcbiAgICAgIGRlbGF5OiAxLFxyXG4gICAgICBzY2FsZTogMS4xLFxyXG4gICAgfSk7XHJcbiAgfVxyXG59O1xyXG4iXSwibmFtZXMiOlsidGh1bXBhcmFsbGF4IiwiaW1hZ2VVcCIsImRvY3VtZW50IiwiZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSIsInNpbXBsZVBhcmFsbGF4IiwiZGVsYXkiLCJzY2FsZSIsInRodW1wYXJhbGxheERvd24iLCJpbWFnZURvd24iLCJvcmllbnRhdGlvbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/common/thumparallax.js\n"); + +/***/ }), + +/***/ "./src/common/tooltipEffect.js": +/*!*************************************!*\ + !*** ./src/common/tooltipEffect.js ***! + \*************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _fadeInFadeOut__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./fadeInFadeOut */ \"./src/common/fadeInFadeOut.js\");\n/* module decorator */ module = __webpack_require__.hmd(module);\n\n\nvar tooltipEffect = function tooltipEffect() {\n var template1 = document.createElement(\"div\");\n template1.classList.add(\"div-tooltip-tit\");\n document.body.appendChild(template1);\n var template2 = document.createElement(\"div\");\n template2.classList.add(\"div-tooltip-sub\");\n document.body.appendChild(template2);\n document.querySelectorAll(\"[data-tooltip-tit]\").forEach(function (item) {\n template1 = document.querySelector(\".div-tooltip-tit\");\n item.addEventListener(\"mouseover\", function () {\n template1.innerText = item.getAttribute(\"data-tooltip-tit\");\n });\n item.addEventListener(\"mousemove\", function (e) {\n (0,_fadeInFadeOut__WEBPACK_IMPORTED_MODULE_0__.fadeIn)(template1, 800);\n template1.style.top = e.pageY + 10 + \"px\";\n template1.style.left = e.pageX + 20 + \"px\";\n template1.style.padding = \"0px 10px\";\n });\n item.addEventListener(\"mouseleave\", function () {\n (0,_fadeInFadeOut__WEBPACK_IMPORTED_MODULE_0__.fadeOut)(template1, 800);\n template1.style.padding = 0;\n });\n });\n document.querySelectorAll(\"[data-tooltip-sub]\").forEach(function (item) {\n template2 = document.querySelector(\".div-tooltip-sub\");\n item.addEventListener(\"mouseover\", function () {\n template2.innerText = item.getAttribute(\"data-tooltip-sub\");\n });\n item.addEventListener(\"mousemove\", function (e) {\n (0,_fadeInFadeOut__WEBPACK_IMPORTED_MODULE_0__.fadeIn)(template2, 800);\n template2.style.top = e.pageY - 15 + \"px\";\n template2.style.left = e.pageX + 30 + \"px\";\n template2.style.padding = \"5px 10px\";\n });\n item.addEventListener(\"mouseleave\", function () {\n (0,_fadeInFadeOut__WEBPACK_IMPORTED_MODULE_0__.fadeOut)(template2, 800);\n template2.style.padding = 0;\n });\n });\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (tooltipEffect);\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL3Rvb2x0aXBFZmZlY3QuanMuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0FBRUEsSUFBTUUsYUFBYSxHQUFHLFNBQWhCQSxhQUFnQixHQUFNO0FBQzFCLE1BQUlDLFNBQVMsR0FBR0MsUUFBUSxDQUFDQyxhQUFULENBQXVCLEtBQXZCLENBQWhCO0FBQ0FGLEVBQUFBLFNBQVMsQ0FBQ0csU0FBVixDQUFvQkMsR0FBcEIsQ0FBd0IsaUJBQXhCO0FBQ0FILEVBQUFBLFFBQVEsQ0FBQ0ksSUFBVCxDQUFjQyxXQUFkLENBQTBCTixTQUExQjtBQUNBLE1BQUlPLFNBQVMsR0FBR04sUUFBUSxDQUFDQyxhQUFULENBQXVCLEtBQXZCLENBQWhCO0FBQ0FLLEVBQUFBLFNBQVMsQ0FBQ0osU0FBVixDQUFvQkMsR0FBcEIsQ0FBd0IsaUJBQXhCO0FBQ0FILEVBQUFBLFFBQVEsQ0FBQ0ksSUFBVCxDQUFjQyxXQUFkLENBQTBCQyxTQUExQjtBQUNBTixFQUFBQSxRQUFRLENBQUNPLGdCQUFULENBQTBCLG9CQUExQixFQUFnREMsT0FBaEQsQ0FBd0QsVUFBQ0MsSUFBRCxFQUFVO0FBQ2hFVixJQUFBQSxTQUFTLEdBQUdDLFFBQVEsQ0FBQ1UsYUFBVCxDQUF1QixrQkFBdkIsQ0FBWjtBQUNBRCxJQUFBQSxJQUFJLENBQUNFLGdCQUFMLENBQXNCLFdBQXRCLEVBQW1DLFlBQU07QUFDdkNaLE1BQUFBLFNBQVMsQ0FBQ2EsU0FBVixHQUFzQkgsSUFBSSxDQUFDSSxZQUFMLENBQWtCLGtCQUFsQixDQUF0QjtBQUNELEtBRkQ7QUFHQUosSUFBQUEsSUFBSSxDQUFDRSxnQkFBTCxDQUFzQixXQUF0QixFQUFtQyxVQUFDRyxDQUFELEVBQU87QUFDeENsQixNQUFBQSxzREFBTSxDQUFDRyxTQUFELEVBQVksR0FBWixDQUFOO0FBQ0FBLE1BQUFBLFNBQVMsQ0FBQ2dCLEtBQVYsQ0FBZ0JDLEdBQWhCLEdBQXNCRixDQUFDLENBQUNHLEtBQUYsR0FBVSxFQUFWLEdBQWUsSUFBckM7QUFDQWxCLE1BQUFBLFNBQVMsQ0FBQ2dCLEtBQVYsQ0FBZ0JHLElBQWhCLEdBQXVCSixDQUFDLENBQUNLLEtBQUYsR0FBVSxFQUFWLEdBQWUsSUFBdEM7QUFDQXBCLE1BQUFBLFNBQVMsQ0FBQ2dCLEtBQVYsQ0FBZ0JLLE9BQWhCLEdBQTBCLFVBQTFCO0FBQ0QsS0FMRDtBQU1BWCxJQUFBQSxJQUFJLENBQUNFLGdCQUFMLENBQXNCLFlBQXRCLEVBQW9DLFlBQU07QUFDeENkLE1BQUFBLHVEQUFPLENBQUNFLFNBQUQsRUFBWSxHQUFaLENBQVA7QUFDQUEsTUFBQUEsU0FBUyxDQUFDZ0IsS0FBVixDQUFnQkssT0FBaEIsR0FBMEIsQ0FBMUI7QUFDRCxLQUhEO0FBSUQsR0FmRDtBQWdCQXBCLEVBQUFBLFFBQVEsQ0FBQ08sZ0JBQVQsQ0FBMEIsb0JBQTFCLEVBQWdEQyxPQUFoRCxDQUF3RCxVQUFDQyxJQUFELEVBQVU7QUFDaEVILElBQUFBLFNBQVMsR0FBR04sUUFBUSxDQUFDVSxhQUFULENBQXVCLGtCQUF2QixDQUFaO0FBQ0FELElBQUFBLElBQUksQ0FBQ0UsZ0JBQUwsQ0FBc0IsV0FBdEIsRUFBbUMsWUFBTTtBQUN2Q0wsTUFBQUEsU0FBUyxDQUFDTSxTQUFWLEdBQXNCSCxJQUFJLENBQUNJLFlBQUwsQ0FBa0Isa0JBQWxCLENBQXRCO0FBQ0QsS0FGRDtBQUlBSixJQUFBQSxJQUFJLENBQUNFLGdCQUFMLENBQXNCLFdBQXRCLEVBQW1DLFVBQUNHLENBQUQsRUFBTztBQUN4Q2xCLE1BQUFBLHNEQUFNLENBQUNVLFNBQUQsRUFBWSxHQUFaLENBQU47QUFDQUEsTUFBQUEsU0FBUyxDQUFDUyxLQUFWLENBQWdCQyxHQUFoQixHQUFzQkYsQ0FBQyxDQUFDRyxLQUFGLEdBQVUsRUFBVixHQUFlLElBQXJDO0FBQ0FYLE1BQUFBLFNBQVMsQ0FBQ1MsS0FBVixDQUFnQkcsSUFBaEIsR0FBdUJKLENBQUMsQ0FBQ0ssS0FBRixHQUFVLEVBQVYsR0FBZSxJQUF0QztBQUNBYixNQUFBQSxTQUFTLENBQUNTLEtBQVYsQ0FBZ0JLLE9BQWhCLEdBQTBCLFVBQTFCO0FBQ0QsS0FMRDtBQU1BWCxJQUFBQSxJQUFJLENBQUNFLGdCQUFMLENBQXNCLFlBQXRCLEVBQW9DLFlBQU07QUFDeENkLE1BQUFBLHVEQUFPLENBQUNTLFNBQUQsRUFBWSxHQUFaLENBQVA7QUFDQUEsTUFBQUEsU0FBUyxDQUFDUyxLQUFWLENBQWdCSyxPQUFoQixHQUEwQixDQUExQjtBQUNELEtBSEQ7QUFJRCxHQWhCRDtBQWlCRCxDQXhDRDs7QUF5Q0EsK0RBQWV0QixhQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21tb24vdG9vbHRpcEVmZmVjdC5qcz84ZjZjIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZhZGVJbiwgZmFkZU91dCB9IGZyb20gXCIuL2ZhZGVJbkZhZGVPdXRcIjtcclxuXHJcbmNvbnN0IHRvb2x0aXBFZmZlY3QgPSAoKSA9PiB7XHJcbiAgbGV0IHRlbXBsYXRlMSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XHJcbiAgdGVtcGxhdGUxLmNsYXNzTGlzdC5hZGQoXCJkaXYtdG9vbHRpcC10aXRcIik7XHJcbiAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0ZW1wbGF0ZTEpO1xyXG4gIGxldCB0ZW1wbGF0ZTIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xyXG4gIHRlbXBsYXRlMi5jbGFzc0xpc3QuYWRkKFwiZGl2LXRvb2x0aXAtc3ViXCIpO1xyXG4gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGVtcGxhdGUyKTtcclxuICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiW2RhdGEtdG9vbHRpcC10aXRdXCIpLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgIHRlbXBsYXRlMSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIuZGl2LXRvb2x0aXAtdGl0XCIpO1xyXG4gICAgaXRlbS5hZGRFdmVudExpc3RlbmVyKFwibW91c2VvdmVyXCIsICgpID0+IHtcclxuICAgICAgdGVtcGxhdGUxLmlubmVyVGV4dCA9IGl0ZW0uZ2V0QXR0cmlidXRlKFwiZGF0YS10b29sdGlwLXRpdFwiKTtcclxuICAgIH0pO1xyXG4gICAgaXRlbS5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsIChlKSA9PiB7XHJcbiAgICAgIGZhZGVJbih0ZW1wbGF0ZTEsIDgwMCk7XHJcbiAgICAgIHRlbXBsYXRlMS5zdHlsZS50b3AgPSBlLnBhZ2VZICsgMTAgKyBcInB4XCI7XHJcbiAgICAgIHRlbXBsYXRlMS5zdHlsZS5sZWZ0ID0gZS5wYWdlWCArIDIwICsgXCJweFwiO1xyXG4gICAgICB0ZW1wbGF0ZTEuc3R5bGUucGFkZGluZyA9IFwiMHB4IDEwcHhcIjtcclxuICAgIH0pO1xyXG4gICAgaXRlbS5hZGRFdmVudExpc3RlbmVyKFwibW91c2VsZWF2ZVwiLCAoKSA9PiB7XHJcbiAgICAgIGZhZGVPdXQodGVtcGxhdGUxLCA4MDApO1xyXG4gICAgICB0ZW1wbGF0ZTEuc3R5bGUucGFkZGluZyA9IDA7XHJcbiAgICB9KTtcclxuICB9KTtcclxuICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiW2RhdGEtdG9vbHRpcC1zdWJdXCIpLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgIHRlbXBsYXRlMiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIuZGl2LXRvb2x0aXAtc3ViXCIpO1xyXG4gICAgaXRlbS5hZGRFdmVudExpc3RlbmVyKFwibW91c2VvdmVyXCIsICgpID0+IHtcclxuICAgICAgdGVtcGxhdGUyLmlubmVyVGV4dCA9IGl0ZW0uZ2V0QXR0cmlidXRlKFwiZGF0YS10b29sdGlwLXN1YlwiKTtcclxuICAgIH0pO1xyXG5cclxuICAgIGl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLCAoZSkgPT4ge1xyXG4gICAgICBmYWRlSW4odGVtcGxhdGUyLCA4MDApO1xyXG4gICAgICB0ZW1wbGF0ZTIuc3R5bGUudG9wID0gZS5wYWdlWSAtIDE1ICsgXCJweFwiO1xyXG4gICAgICB0ZW1wbGF0ZTIuc3R5bGUubGVmdCA9IGUucGFnZVggKyAzMCArIFwicHhcIjtcclxuICAgICAgdGVtcGxhdGUyLnN0eWxlLnBhZGRpbmcgPSBcIjVweCAxMHB4XCI7XHJcbiAgICB9KTtcclxuICAgIGl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIiwgKCkgPT4ge1xyXG4gICAgICBmYWRlT3V0KHRlbXBsYXRlMiwgODAwKTtcclxuICAgICAgdGVtcGxhdGUyLnN0eWxlLnBhZGRpbmcgPSAwO1xyXG4gICAgfSk7XHJcbiAgfSk7XHJcbn07XHJcbmV4cG9ydCBkZWZhdWx0IHRvb2x0aXBFZmZlY3Q7XHJcbiJdLCJuYW1lcyI6WyJmYWRlSW4iLCJmYWRlT3V0IiwidG9vbHRpcEVmZmVjdCIsInRlbXBsYXRlMSIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTGlzdCIsImFkZCIsImJvZHkiLCJhcHBlbmRDaGlsZCIsInRlbXBsYXRlMiIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJmb3JFYWNoIiwiaXRlbSIsInF1ZXJ5U2VsZWN0b3IiLCJhZGRFdmVudExpc3RlbmVyIiwiaW5uZXJUZXh0IiwiZ2V0QXR0cmlidXRlIiwiZSIsInN0eWxlIiwidG9wIiwicGFnZVkiLCJsZWZ0IiwicGFnZVgiLCJwYWRkaW5nIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/common/tooltipEffect.js\n"); + +/***/ }), + +/***/ "./src/components/About-intro/index.jsx": +/*!**********************************************!*\ + !*** ./src/components/About-intro/index.jsx ***! + \**********************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _Split__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Split */ \"./src/components/Split/index.jsx\");\n/* harmony import */ var _data_sections_about_info1_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../data/sections/about-info1.json */ \"./src/data/sections/about-info1.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\About-intro\\\\index.jsx\",\n _this = undefined;\n\n\n\n\n\n\nvar AboutIntro = function AboutIntro() {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"section\", {\n className: \"intro-section section-padding pb-0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"htit sm-mb30\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h4\", {\n children: _data_sections_about_info1_json__WEBPACK_IMPORTED_MODULE_2__.title\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-8 offset-lg-1 col-md-8\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"text\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(_Split__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n className: \"wow txt mb-10 words chars splitting\",\n \"data-splitting\": true,\n children: _data_sections_about_info1_json__WEBPACK_IMPORTED_MODULE_2__.paragraph1\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n className: \"wow txt words chars splitting\",\n \"data-splitting\": true,\n children: _data_sections_about_info1_json__WEBPACK_IMPORTED_MODULE_2__.paragraph2\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 7,\n columnNumber: 5\n }, _this);\n};\n\n_c = AboutIntro;\n/* harmony default export */ __webpack_exports__[\"default\"] = (AboutIntro);\n\nvar _c;\n\n$RefreshReg$(_c, \"AboutIntro\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9BYm91dC1pbnRyby9pbmRleC5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7OztBQUVBLElBQU1HLFVBQVUsR0FBRyxTQUFiQSxVQUFhLEdBQU07QUFDdkIsc0JBQ0U7QUFBUyxhQUFTLEVBQUMsb0NBQW5CO0FBQUEsMkJBQ0U7QUFBSyxlQUFTLEVBQUMsV0FBZjtBQUFBLDZCQUNFO0FBQUssaUJBQVMsRUFBQyxLQUFmO0FBQUEsZ0NBQ0U7QUFBSyxtQkFBUyxFQUFDLG1CQUFmO0FBQUEsaUNBQ0U7QUFBSyxxQkFBUyxFQUFDLGNBQWY7QUFBQSxtQ0FDRTtBQUFBLHdCQUFLRCxrRUFBb0JFO0FBQXpCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFERixlQU1FO0FBQUssbUJBQVMsRUFBQywrQkFBZjtBQUFBLGlDQUNFO0FBQUsscUJBQVMsRUFBQyxNQUFmO0FBQUEsbUNBQ0UsOERBQUMsOENBQUQ7QUFBQSxzQ0FDRTtBQUNFLHlCQUFTLEVBQUMscUNBRFo7QUFFRSxzQ0FGRjtBQUFBLDBCQUlHRix1RUFBeUJHO0FBSjVCO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBREYsZUFPRTtBQUFHLHlCQUFTLEVBQUMsK0JBQWI7QUFBNkMsc0NBQTdDO0FBQUEsMEJBQ0dILHVFQUF5Qkk7QUFENUI7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFQRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFORjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxXQURGO0FBNEJELENBN0JEOztLQUFNSDtBQStCTiwrREFBZUEsVUFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tcG9uZW50cy9BYm91dC1pbnRyby9pbmRleC5qc3g/ZGI4MSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBTcGxpdCBmcm9tIFwiLi4vU3BsaXRcIjtcclxuaW1wb3J0IEFib3V0SW5mbzFEYXRhIGZyb20gXCIuLi8uLi9kYXRhL3NlY3Rpb25zL2Fib3V0LWluZm8xLmpzb25cIjtcclxuXHJcbmNvbnN0IEFib3V0SW50cm8gPSAoKSA9PiB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cImludHJvLXNlY3Rpb24gc2VjdGlvbi1wYWRkaW5nIHBiLTBcIj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImh0aXQgc20tbWIzMFwiPlxyXG4gICAgICAgICAgICAgIDxoND57QWJvdXRJbmZvMURhdGEudGl0bGV9PC9oND5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTggb2Zmc2V0LWxnLTEgY29sLW1kLThcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0XCI+XHJcbiAgICAgICAgICAgICAgPFNwbGl0PlxyXG4gICAgICAgICAgICAgICAgPHBcclxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwid293IHR4dCBtYi0xMCB3b3JkcyBjaGFycyBzcGxpdHRpbmdcIlxyXG4gICAgICAgICAgICAgICAgICBkYXRhLXNwbGl0dGluZ1xyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICB7QWJvdXRJbmZvMURhdGEucGFyYWdyYXBoMX1cclxuICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cIndvdyB0eHQgd29yZHMgY2hhcnMgc3BsaXR0aW5nXCIgZGF0YS1zcGxpdHRpbmc+XHJcbiAgICAgICAgICAgICAgICAgIHtBYm91dEluZm8xRGF0YS5wYXJhZ3JhcGgyfVxyXG4gICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgIDwvU3BsaXQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBBYm91dEludHJvO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJTcGxpdCIsIkFib3V0SW5mbzFEYXRhIiwiQWJvdXRJbnRybyIsInRpdGxlIiwicGFyYWdyYXBoMSIsInBhcmFncmFwaDIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/components/About-intro/index.jsx\n"); + +/***/ }), + +/***/ "./src/components/Call-to-action/call-to-action.jsx": +/*!**********************************************************!*\ + !*** ./src/components/Call-to-action/call-to-action.jsx ***! + \**********************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _Split__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Split */ \"./src/components/Split/index.jsx\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Call-to-action\\\\call-to-action.jsx\",\n _this = undefined;\n\n\n\n\n\n\nvar CallToAction = function CallToAction(_ref) {\n var img = _ref.img;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"section\", {\n className: \"call-action section-padding sub-bg bg-img\",\n style: {\n backgroundImage: \"url(\".concat(img ? img : \"/img/patrn.svg\", \")\")\n },\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-md-8 col-lg-9\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"content sm-mb30\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(_Split__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n className: \"wow words chars splitting\",\n \"data-splitting\": true,\n children: \"Let\\u2019s Talk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h2\", {\n className: \"wow words chars splitting\",\n \"data-splitting\": true,\n children: [\"about your \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"br\", {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 30\n }, _this), \" \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"b\", {\n className: \"back-color\",\n children: \"next project\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 37\n }, _this), \".\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-md-4 col-lg-3 valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/contact/contact-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n className: \"butn bord curve wow fadeInUp\",\n \"data-wow-delay\": \".5s\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: \"Get In Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 7,\n columnNumber: 5\n }, _this);\n};\n\n_c = CallToAction;\n/* harmony default export */ __webpack_exports__[\"default\"] = (CallToAction);\n\nvar _c;\n\n$RefreshReg$(_c, \"CallToAction\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9DYWxsLXRvLWFjdGlvbi9jYWxsLXRvLWFjdGlvbi5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBOzs7QUFFQSxJQUFNRyxZQUFZLEdBQUcsU0FBZkEsWUFBZSxPQUFhO0FBQUEsTUFBVkMsR0FBVSxRQUFWQSxHQUFVO0FBQ2hDLHNCQUNFO0FBQ0UsYUFBUyxFQUFDLDJDQURaO0FBRUUsU0FBSyxFQUFFO0FBQUVDLE1BQUFBLGVBQWUsZ0JBQVNELEdBQUcsR0FBR0EsR0FBSCxHQUFTLGdCQUFyQjtBQUFqQixLQUZUO0FBQUEsMkJBSUU7QUFBSyxlQUFTLEVBQUMsV0FBZjtBQUFBLDZCQUNFO0FBQUssaUJBQVMsRUFBQyxLQUFmO0FBQUEsZ0NBQ0U7QUFBSyxtQkFBUyxFQUFDLG1CQUFmO0FBQUEsaUNBQ0U7QUFBSyxxQkFBUyxFQUFDLGlCQUFmO0FBQUEsbUNBQ0UsOERBQUMsOENBQUQ7QUFBQSxzQ0FDRTtBQUFJLHlCQUFTLEVBQUMsMkJBQWQ7QUFBMEMsc0NBQTFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQURGLGVBSUU7QUFBSSx5QkFBUyxFQUFDLDJCQUFkO0FBQTBDLHNDQUExQztBQUFBLHVEQUNhO0FBQUE7QUFBQTtBQUFBO0FBQUEseUJBRGIsb0JBQ29CO0FBQUcsMkJBQVMsRUFBQyxZQUFiO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHlCQURwQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBSkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBREYsZUFjRTtBQUFLLG1CQUFTLEVBQUMsMEJBQWY7QUFBQSxpQ0FDRSw4REFBQyxrREFBRDtBQUFNLGdCQUFJLDBCQUFWO0FBQUEsbUNBQ0U7QUFBRyx1QkFBUyxFQUFDLDhCQUFiO0FBQTRDLGdDQUFlLEtBQTNEO0FBQUEscUNBQ0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBZEY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUpGO0FBQUE7QUFBQTtBQUFBO0FBQUEsV0FERjtBQStCRCxDQWhDRDs7S0FBTUQ7QUFrQ04sK0RBQWVBLFlBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbXBvbmVudHMvQ2FsbC10by1hY3Rpb24vY2FsbC10by1hY3Rpb24uanN4PzFmOTkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgU3BsaXQgZnJvbSBcIi4uL1NwbGl0XCI7XHJcbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcclxuXHJcbmNvbnN0IENhbGxUb0FjdGlvbiA9ICh7IGltZyB9KSA9PiB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uXHJcbiAgICAgIGNsYXNzTmFtZT1cImNhbGwtYWN0aW9uIHNlY3Rpb24tcGFkZGluZyBzdWItYmcgYmctaW1nXCJcclxuICAgICAgc3R5bGU9e3sgYmFja2dyb3VuZEltYWdlOiBgdXJsKCR7aW1nID8gaW1nIDogXCIvaW1nL3BhdHJuLnN2Z1wifSlgIH19XHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLW1kLTggY29sLWxnLTlcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250ZW50IHNtLW1iMzBcIj5cclxuICAgICAgICAgICAgICA8U3BsaXQ+XHJcbiAgICAgICAgICAgICAgICA8aDYgY2xhc3NOYW1lPVwid293IHdvcmRzIGNoYXJzIHNwbGl0dGluZ1wiIGRhdGEtc3BsaXR0aW5nPlxyXG4gICAgICAgICAgICAgICAgICBMZXTigJlzIFRhbGtcclxuICAgICAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgICAgICA8aDIgY2xhc3NOYW1lPVwid293IHdvcmRzIGNoYXJzIHNwbGl0dGluZ1wiIGRhdGEtc3BsaXR0aW5nPlxyXG4gICAgICAgICAgICAgICAgICBhYm91dCB5b3VyIDxiciAvPiA8YiBjbGFzc05hbWU9XCJiYWNrLWNvbG9yXCI+bmV4dCBwcm9qZWN0PC9iPi5cclxuICAgICAgICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICAgICAgPC9TcGxpdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1tZC00IGNvbC1sZy0zIHZhbGlnblwiPlxyXG4gICAgICAgICAgICA8TGluayBocmVmPXtgL2NvbnRhY3QvY29udGFjdC1saWdodGB9PlxyXG4gICAgICAgICAgICAgIDxhIGNsYXNzTmFtZT1cImJ1dG4gYm9yZCBjdXJ2ZSB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi41c1wiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+R2V0IEluIFRvdWNoPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBDYWxsVG9BY3Rpb247XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIlNwbGl0IiwiTGluayIsIkNhbGxUb0FjdGlvbiIsImltZyIsImJhY2tncm91bmRJbWFnZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Call-to-action/call-to-action.jsx\n"); + +/***/ }), + +/***/ "./src/components/Clients/clients.jsx": +/*!********************************************!*\ + !*** ./src/components/Clients/clients.jsx ***! + \********************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _data_sections_clients_json__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../data/sections/clients.json */ \"./src/data/sections/clients.json\");\n/* harmony import */ var _Split__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Split */ \"./src/components/Split/index.jsx\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Clients\\\\clients.jsx\",\n _this = undefined;\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\nvar Clients = function Clients(_ref) {\n var theme = _ref.theme;\n var first = _data_sections_clients_json__WEBPACK_IMPORTED_MODULE_1__.slice(0, _data_sections_clients_json__WEBPACK_IMPORTED_MODULE_1__.length / 2);\n var second = _data_sections_clients_json__WEBPACK_IMPORTED_MODULE_1__.slice(4, _data_sections_clients_json__WEBPACK_IMPORTED_MODULE_1__.length);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"section\", {\n className: \"clients section-padding\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4 valign md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"sec-head mb-0\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Best Features\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h3\", {\n className: \"wow mb-20 color-font\",\n children: \"Our Clients\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"Our area of practice is quite wide: design, graphics, branding, development.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-8\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row bord\",\n children: first.map(function (item) {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-md-3 col-6 brands\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item wow fadeIn\",\n \"data-wow-delay\": \"\".concat(item.id == 1 ? \".3\" : item.id == 2 ? \".6\" : item.id == 3 ? \".8\" : item.id == 4 ? \".3\" : \"\", \"s\"),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"img\",\n children: theme === \"light\" ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: item.lightImage,\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 27\n }, _this) : /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: item.darkImage,\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 21\n }, _this)\n }, item.id, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 19\n }, _this);\n })\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: second.map(function (item) {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"\".concat(item.id == 5 ? \"col-md-3 col-6 brands sm-mb30\" : item.id == 6 ? \"col-md-3 col-6 brands sm-mb30\" : item.id == 7 ? \"col-md-3 col-6 brands\" : item.id == 8 ? \"col-md-3 col-6 brands\" : \"\"),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item wow fadeIn\",\n \"data-wow-delay\": \"\".concat(item.id == 1 ? \".4\" : item.id == 2 ? \".7\" : item.id == 3 ? \".5\" : item.id == 4 ? \".3\" : \"\", \"s\"),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"img\",\n children: theme === \"light\" ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: item.lightImage,\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 27\n }, _this) : /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: item.darkImage,\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 99,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 81,\n columnNumber: 21\n }, _this)\n }, item.id, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 19\n }, _this);\n })\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 5\n }, _this);\n};\n\n_c = Clients;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Clients);\n\nvar _c;\n\n$RefreshReg$(_c, \"Clients\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QVgsR0FDSSxJQURKLEdBRUlELElBQUksQ0FBQ0MsRUFBTCxJQUFXLENBQVgsR0FDQSxJQURBLEdBRUFELElBQUksQ0FBQ0MsRUFBTCxJQUFXLENBQVgsR0FDQSxJQURBLEdBRUFELElBQUksQ0FBQ0MsRUFBTCxJQUFXLENBQVgsR0FDQSxJQURBLEdBRUEsRUFUTixNQUZGO0FBQUEsMkNBY0U7QUFBSywrQkFBUyxFQUFDLEtBQWY7QUFBQSxnQ0FDR1AsS0FBSyxLQUFLLE9BQVYsZ0JBQ0M7QUFBSywyQkFBRyxFQUFFTSxJQUFJLENBQUNFLFVBQWY7QUFBMkIsMkJBQUcsRUFBQztBQUEvQjtBQUFBO0FBQUE7QUFBQTtBQUFBLCtCQURELGdCQUdDO0FBQUssMkJBQUcsRUFBRUYsSUFBSSxDQUFDRyxTQUFmO0FBQTBCLDJCQUFHLEVBQUM7QUFBOUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUpKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFkRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZEYsbUJBQ09ILElBQUksQ0FBQ0MsRUFEWjtBQUFBO0FBQUE7QUFBQTtBQUFBLHlCQURVO0FBQUEsZUFBWDtBQURIO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBdENGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBYkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsV0FERjtBQStHRCxDQW5IRDs7S0FBTVI7QUFxSE4sK0RBQWVBLE9BQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbXBvbmVudHMvQ2xpZW50cy9jbGllbnRzLmpzeD9iM2Q0Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBuZXh0L25leHQvbm8taW1nLWVsZW1lbnQgKi9cclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgQ2xpZW50c0RhdGEgZnJvbSBcIi4uLy4uL2RhdGEvc2VjdGlvbnMvY2xpZW50cy5qc29uXCI7XHJcbmltcG9ydCBTcGxpdCBmcm9tIFwiLi4vU3BsaXRcIjtcclxuXHJcbmNvbnN0IENsaWVudHMgPSAoeyB0aGVtZSB9KSA9PiB7XHJcbiAgdmFyIGZpcnN0ID0gQ2xpZW50c0RhdGEuc2xpY2UoMCwgQ2xpZW50c0RhdGEubGVuZ3RoIC8gMik7XHJcbiAgdmFyIHNlY29uZCA9IENsaWVudHNEYXRhLnNsaWNlKDQsIENsaWVudHNEYXRhLmxlbmd0aCk7XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8c2VjdGlvbiBjbGFzc05hbWU9XCJjbGllbnRzIHNlY3Rpb24tcGFkZGluZ1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy00IHZhbGlnbiBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2VjLWhlYWQgbWItMFwiPlxyXG4gICAgICAgICAgICAgIDxoNiBjbGFzc05hbWU9XCJ3b3cgZmFkZUluXCIgZGF0YS13b3ctZGVsYXk9XCIuNXNcIj5cclxuICAgICAgICAgICAgICAgIEJlc3QgRmVhdHVyZXNcclxuICAgICAgICAgICAgICA8L2g2PlxyXG4gICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJ3b3cgbWItMjAgY29sb3ItZm9udFwiPk91ciBDbGllbnRzPC9oMz5cclxuICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgIE91ciBhcmVhIG9mIHByYWN0aWNlIGlzIHF1aXRlIHdpZGU6IGRlc2lnbiwgZ3JhcGhpY3MsIGJyYW5kaW5nLFxyXG4gICAgICAgICAgICAgICAgZGV2ZWxvcG1lbnQuXHJcbiAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOFwiPlxyXG4gICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93IGJvcmRcIj5cclxuICAgICAgICAgICAgICAgIHtmaXJzdC5tYXAoKGl0ZW0pID0+IChcclxuICAgICAgICAgICAgICAgICAgPGRpdiBrZXk9e2l0ZW0uaWR9IGNsYXNzTmFtZT1cImNvbC1tZC0zIGNvbC02IGJyYW5kc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIml0ZW0gd293IGZhZGVJblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBkYXRhLXdvdy1kZWxheT17YCR7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uaWQgPT0gMVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gXCIuM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBpdGVtLmlkID09IDJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IFwiLjZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogaXRlbS5pZCA9PSAzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBcIi44XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IGl0ZW0uaWQgPT0gNFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gXCIuM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICB9c2B9XHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3RoZW1lID09PSBcImxpZ2h0XCIgPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9e2l0ZW0ubGlnaHRJbWFnZX0gYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz17aXRlbS5kYXJrSW1hZ2V9IGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHsvKiA8U3BsaXQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCIjMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJsaW5rIHdvcmRzIGNoYXJzIHNwbGl0dGluZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXNwbGl0dGluZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVtLnVybH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvU3BsaXQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgKSl9XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgIHtzZWNvbmQubWFwKChpdGVtKSA9PiAoXHJcbiAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICBrZXk9e2l0ZW0uaWR9XHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtcclxuICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uaWQgPT0gNVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IFwiY29sLW1kLTMgY29sLTYgYnJhbmRzIHNtLW1iMzBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGl0ZW0uaWQgPT0gNlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IFwiY29sLW1kLTMgY29sLTYgYnJhbmRzIHNtLW1iMzBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGl0ZW0uaWQgPT0gN1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IFwiY29sLW1kLTMgY29sLTYgYnJhbmRzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBpdGVtLmlkID09IDhcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBcImNvbC1tZC0zIGNvbC02IGJyYW5kc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogXCJcIlxyXG4gICAgICAgICAgICAgICAgICAgIH1gfVxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaXRlbSB3b3cgZmFkZUluXCJcclxuICAgICAgICAgICAgICAgICAgICAgIGRhdGEtd293LWRlbGF5PXtgJHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5pZCA9PSAxXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBcIi40XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IGl0ZW0uaWQgPT0gMlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gXCIuN1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBpdGVtLmlkID09IDNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IFwiLjVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogaXRlbS5pZCA9PSA0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBcIi4zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiXCJcclxuICAgICAgICAgICAgICAgICAgICAgIH1zYH1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7dGhlbWUgPT09IFwibGlnaHRcIiA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz17aXRlbS5saWdodEltYWdlfSBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPXtpdGVtLmRhcmtJbWFnZX0gYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgey8qIDxTcGxpdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cIiMwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImxpbmsgd29yZHMgY2hhcnMgc3BsaXR0aW5nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtc3BsaXR0aW5nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2l0ZW0udXJsfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9TcGxpdD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICApKX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L3NlY3Rpb24+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IENsaWVudHM7XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIkNsaWVudHNEYXRhIiwiU3BsaXQiLCJDbGllbnRzIiwidGhlbWUiLCJmaXJzdCIsInNsaWNlIiwibGVuZ3RoIiwic2Vjb25kIiwibWFwIiwiaXRlbSIsImlkIiwibGlnaHRJbWFnZSIsImRhcmtJbWFnZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Clients/clients.jsx\n"); + +/***/ }), + +/***/ "./src/components/Footer/footer.jsx": +/*!******************************************!*\ + !*** ./src/components/Footer/footer.jsx ***! + \******************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _data_app_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../data/app.json */ \"./src/data/app.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Footer\\\\footer.jsx\",\n _this = undefined;\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\nvar Footer = function Footer(_ref) {\n var hideBGCOLOR = _ref.hideBGCOLOR;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"footer\", {\n className: \"\".concat(!hideBGCOLOR ? \"sub-bg\" : \"\"),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item md-mb50\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"title\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h5\", {\n children: \"Contact Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"ul\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-map-marker\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Officeal Address\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"Baghdad Street, Al Dana area, Abu Dhabi, United Arab Emirates\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-mail\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Email Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"hello@businesshub.abudhabi\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-call\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Call Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"+971 26340404\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"logo\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.footerLogo,\n style: {\n width: \"150px\"\n },\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"social\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"https://www.facebook.com/profile.php?id=100057392223857 \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-facebook-f\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"https://www.linkedin.com/company/business-hub-international-investment\\r\\n\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-linkedin\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"https://www.instagram.com/businesshubi/?igsh=MTJ3ejZneWdmbTM3bQ%3D%3D \\r\\n\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-instagram\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"copy-right\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"\\xA9 2024, 2024 Business HUB international investment - All Rights Reserved.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 5\n }, _this);\n};\n\n_c = Footer;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Footer);\n\nvar _c;\n\n$RefreshReg$(_c, \"Footer\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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LG9CQUFJLEVBQUMsNEVBRFA7QUFBQSx1Q0FJRTtBQUFHLDJCQUFTLEVBQUM7QUFBYjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSkY7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFWRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBUkYsZUF5QkU7QUFBSyx1QkFBUyxFQUFDLFlBQWY7QUFBQSxxQ0FDRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBekJGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBbkNGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBREY7QUE0RUQsQ0E3RUQ7O0tBQU1IO0FBK0VOLCtEQUFlQSxNQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL0Zvb3Rlci9mb290ZXIuanN4P2YzOTQiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcclxuaW1wb3J0IGFwcERhdGEgZnJvbSBcIi4uLy4uL2RhdGEvYXBwLmpzb25cIjtcclxuXHJcbmNvbnN0IEZvb3RlciA9ICh7IGhpZGVCR0NPTE9SIH0pID0+IHtcclxuICByZXR1cm4gKFxyXG4gICAgPGZvb3RlciBjbGFzc05hbWU9e2AkeyFoaWRlQkdDT0xPUiA/IFwic3ViLWJnXCIgOiBcIlwifWB9PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy00XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgPGg1PkNvbnRhY3QgVXM8L2g1PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDx1bD5cclxuICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvbiBwZS03cy1tYXAtbWFya2VyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+T2ZmaWNlYWwgQWRkcmVzczwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICBCYWdoZGFkIFN0cmVldCwgQWwgRGFuYSBhcmVhLCBBYnUgRGhhYmksIFVuaXRlZCBBcmFiXHJcbiAgICAgICAgICAgICAgICAgICAgICBFbWlyYXRlc1xyXG4gICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJpY29uIHBlLTdzLW1haWxcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoNj5FbWFpbCBVczwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+aGVsbG9AYnVzaW5lc3NodWIuYWJ1ZGhhYmk8L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvbiBwZS03cy1jYWxsXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+Q2FsbCBVczwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+Kzk3MSAyNjM0MDQwNDwvcD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctNFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxvZ29cIj5cclxuICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgc3JjPXthcHBEYXRhLmZvb3RlckxvZ299XHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IHdpZHRoOiBcIjE1MHB4XCIgfX1cclxuICAgICAgICAgICAgICAgICAgYWx0PVwiXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzb2NpYWxcIj5cclxuICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJodHRwczovL3d3dy5mYWNlYm9vay5jb20vcHJvZmlsZS5waHA/aWQ9MTAwMDU3MzkyMjIzODU3IFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYWIgZmEtZmFjZWJvb2stZlwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL3d3dy5saW5rZWRpbi5jb20vY29tcGFueS9idXNpbmVzcy1odWItaW50ZXJuYXRpb25hbC1pbnZlc3RtZW50XHJcblwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhYiBmYS1saW5rZWRpblwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL3d3dy5pbnN0YWdyYW0uY29tL2J1c2luZXNzaHViaS8/aWdzaD1NVEozZWpabmVXZG1iVE0zYlElM0QlM0QgXHJcblwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhYiBmYS1pbnN0YWdyYW1cIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb3B5LXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgwqkgMjAyNCwgMjAyNCBCdXNpbmVzcyBIVUIgaW50ZXJuYXRpb25hbCBpbnZlc3RtZW50IC0gQWxsXHJcbiAgICAgICAgICAgICAgICAgIFJpZ2h0cyBSZXNlcnZlZC5cclxuICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Zvb3Rlcj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgRm9vdGVyO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJMaW5rIiwiYXBwRGF0YSIsIkZvb3RlciIsImhpZGVCR0NPTE9SIiwiZm9vdGVyTG9nbyIsIndpZHRoIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Footer/footer.jsx\n"); + +/***/ }), + +/***/ "./src/components/Minimal-Area/minimal-area.jsx": +/*!******************************************************!*\ + !*** ./src/components/Minimal-Area/minimal-area.jsx ***! + \******************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_cardMouseEffect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/cardMouseEffect */ \"./src/common/cardMouseEffect.js\");\n/* harmony import */ var _common_thumparallax__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/thumparallax */ \"./src/common/thumparallax.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Minimal-Area\\\\minimal-area.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\nvar MinimalArea = function MinimalArea() {\n _s();\n\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n (0,_common_cardMouseEffect__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(document.querySelectorAll(\".feat .items\"));\n setTimeout(function () {\n (0,_common_thumparallax__WEBPACK_IMPORTED_MODULE_2__.thumparallaxDown)();\n }, 1000);\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"section\", {\n className: \"min-area sub-bg\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n className: \"thumparallax-down\",\n src: \"/img/min-area.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-6 valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"content pt-0\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h4\", {\n className: \"wow color-font\",\n children: \"About us.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n className: \"wow txt\",\n \"data-splitting\": true,\n children: \"Our service is ranked among the finest in the UAE. We cultivate smart ideas for start-ups and seasoned players.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"ul\", {\n className: \"feat\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n className: \"wow fadeInUp\",\n \"data-wow-delay\": \".2s\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: \"1\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 21\n }, _this), \" Our Message\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"To be the gateway to safe investment in the UAE and to work to create investment opportunities for investors from outside and within the country by connecting them with the appropriate partner, providing information on all aspects of doing business, and supporting them with sources of local talent that contribute to raising the local value ratio of foreign investors, which has become one of the Main requirements, identifying cost-effective solutions, building large brands within the UAE market, presenting creative ideas to differentiate in the local market, and supporting it with the best marketing strategies and plans that help it be the best among its competitors.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n className: \"wow fadeInUp\",\n \"data-wow-delay\": \".4s\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: \"2\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 21\n }, _this), \" Our vision\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"To be the most trusted partner for all investors in the United Arab Emirates and to become a leader in providing innovative and sustainable solutions that meet the needs of our customers and business partners. We aim to build long-term relationships with our customers based on trust and mutual cooperation, and we seek to achieve joint success by achieving their goals and aspirations.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 5\n }, _this);\n};\n\n_s(MinimalArea, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = MinimalArea;\n/* harmony default export */ __webpack_exports__[\"default\"] = (MinimalArea);\n\nvar _c;\n\n$RefreshReg$(_c, \"MinimalArea\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9NaW5pbWFsLUFyZWEvbWluaW1hbC1hcmVhLmpzeC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsSUFBTUcsV0FBVyxHQUFHLFNBQWRBLFdBQWMsR0FBTTtBQUFBOztBQUN4QkgsRUFBQUEsc0RBQUEsQ0FBZ0IsWUFBTTtBQUNwQkMsSUFBQUEsbUVBQWUsQ0FBQ0ksUUFBUSxDQUFDQyxnQkFBVCxDQUEwQixjQUExQixDQUFELENBQWY7QUFDQUMsSUFBQUEsVUFBVSxDQUFDLFlBQU07QUFDZkwsTUFBQUEsc0VBQWdCO0FBQ2pCLEtBRlMsRUFFUCxJQUZPLENBQVY7QUFHRCxHQUxELEVBS0csRUFMSDtBQU1BLHNCQUNFO0FBQVMsYUFBUyxFQUFDLGlCQUFuQjtBQUFBLDJCQUNFO0FBQUssZUFBUyxFQUFDLFdBQWY7QUFBQSw2QkFDRTtBQUFLLGlCQUFTLEVBQUMsS0FBZjtBQUFBLGdDQUNFO0FBQUssbUJBQVMsRUFBQyxVQUFmO0FBQUEsaUNBQ0U7QUFBSyxxQkFBUyxFQUFDLEtBQWY7QUFBQSxtQ0FDRTtBQUNFLHVCQUFTLEVBQUMsbUJBRFo7QUFFRSxpQkFBRyxFQUFDLG1CQUZOO0FBR0UsaUJBQUcsRUFBQztBQUhOO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFERixlQVVFO0FBQUssbUJBQVMsRUFBQyxpQkFBZjtBQUFBLGlDQUNFO0FBQUsscUJBQVMsRUFBQyxjQUFmO0FBQUEsb0NBQ0U7QUFBSSx1QkFBUyxFQUFDLGdCQUFkO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQURGLGVBRUU7QUFBRyx1QkFBUyxFQUFDLFNBQWI7QUFBdUIsb0NBQXZCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQUZGLGVBTUU7QUFBSSx1QkFBUyxFQUFDLE1BQWQ7QUFBQSxzQ0FDRTtBQUFJLHlCQUFTLEVBQUMsY0FBZDtBQUE2QixrQ0FBZSxLQUE1QztBQUFBLHdDQUNFO0FBQUEsMENBQ0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHlCQURGLGVBSUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEseUJBSkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQURGLGVBb0JFO0FBQUkseUJBQVMsRUFBQyxjQUFkO0FBQTZCLGtDQUFlLEtBQTVDO0FBQUEsd0NBQ0U7QUFBQSwwQ0FDRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSwyQkFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEseUJBREYsZUFJRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSx5QkFKRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBcEJGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxxQkFORjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQVZGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBREY7QUE2REQsQ0FwRUQ7O0dBQU1DOztLQUFBQTtBQXNFTiwrREFBZUEsV0FBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tcG9uZW50cy9NaW5pbWFsLUFyZWEvbWluaW1hbC1hcmVhLmpzeD82ZWY4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBuZXh0L25leHQvbm8taW1nLWVsZW1lbnQgKi9cclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgY2FyZE1vdXNlRWZmZWN0IGZyb20gXCIuLi8uLi9jb21tb24vY2FyZE1vdXNlRWZmZWN0XCI7XHJcbmltcG9ydCB7IHRodW1wYXJhbGxheERvd24gfSBmcm9tIFwiLi4vLi4vY29tbW9uL3RodW1wYXJhbGxheFwiO1xyXG5cclxuY29uc3QgTWluaW1hbEFyZWEgPSAoKSA9PiB7XHJcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgIGNhcmRNb3VzZUVmZmVjdChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLmZlYXQgLml0ZW1zXCIpKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aHVtcGFyYWxsYXhEb3duKCk7XHJcbiAgICB9LCAxMDAwKTtcclxuICB9LCBbXSk7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cIm1pbi1hcmVhIHN1Yi1iZ1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGh1bXBhcmFsbGF4LWRvd25cIlxyXG4gICAgICAgICAgICAgICAgc3JjPVwiL2ltZy9taW4tYXJlYS5qcGdcIlxyXG4gICAgICAgICAgICAgICAgYWx0PVwiXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctNiB2YWxpZ25cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250ZW50IHB0LTBcIj5cclxuICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwid293IGNvbG9yLWZvbnRcIj5BYm91dCB1cy48L2g0PlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cIndvdyB0eHRcIiBkYXRhLXNwbGl0dGluZz5cclxuICAgICAgICAgICAgICAgIE91ciBzZXJ2aWNlIGlzIHJhbmtlZCBhbW9uZyB0aGUgZmluZXN0IGluIHRoZSBVQUUuIFdlIGN1bHRpdmF0ZVxyXG4gICAgICAgICAgICAgICAgc21hcnQgaWRlYXMgZm9yIHN0YXJ0LXVwcyBhbmQgc2Vhc29uZWQgcGxheWVycy5cclxuICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgPHVsIGNsYXNzTmFtZT1cImZlYXRcIj5cclxuICAgICAgICAgICAgICAgIDxsaSBjbGFzc05hbWU9XCJ3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi4yc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8aDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+MTwvc3Bhbj4gT3VyIE1lc3NhZ2VcclxuICAgICAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgVG8gYmUgdGhlIGdhdGV3YXkgdG8gc2FmZSBpbnZlc3RtZW50IGluIHRoZSBVQUUgYW5kIHRvIHdvcmtcclxuICAgICAgICAgICAgICAgICAgICB0byBjcmVhdGUgaW52ZXN0bWVudCBvcHBvcnR1bml0aWVzIGZvciBpbnZlc3RvcnMgZnJvbVxyXG4gICAgICAgICAgICAgICAgICAgIG91dHNpZGUgYW5kIHdpdGhpbiB0aGUgY291bnRyeSBieSBjb25uZWN0aW5nIHRoZW0gd2l0aCB0aGVcclxuICAgICAgICAgICAgICAgICAgICBhcHByb3ByaWF0ZSBwYXJ0bmVyLCBwcm92aWRpbmcgaW5mb3JtYXRpb24gb24gYWxsIGFzcGVjdHMgb2ZcclxuICAgICAgICAgICAgICAgICAgICBkb2luZyBidXNpbmVzcywgYW5kIHN1cHBvcnRpbmcgdGhlbSB3aXRoIHNvdXJjZXMgb2YgbG9jYWxcclxuICAgICAgICAgICAgICAgICAgICB0YWxlbnQgdGhhdCBjb250cmlidXRlIHRvIHJhaXNpbmcgdGhlIGxvY2FsIHZhbHVlIHJhdGlvIG9mXHJcbiAgICAgICAgICAgICAgICAgICAgZm9yZWlnbiBpbnZlc3RvcnMsIHdoaWNoIGhhcyBiZWNvbWUgb25lIG9mIHRoZSBNYWluXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZW1lbnRzLCBpZGVudGlmeWluZyBjb3N0LWVmZmVjdGl2ZSBzb2x1dGlvbnMsIGJ1aWxkaW5nXHJcbiAgICAgICAgICAgICAgICAgICAgbGFyZ2UgYnJhbmRzIHdpdGhpbiB0aGUgVUFFIG1hcmtldCwgcHJlc2VudGluZyBjcmVhdGl2ZVxyXG4gICAgICAgICAgICAgICAgICAgIGlkZWFzIHRvIGRpZmZlcmVudGlhdGUgaW4gdGhlIGxvY2FsIG1hcmtldCwgYW5kIHN1cHBvcnRpbmdcclxuICAgICAgICAgICAgICAgICAgICBpdCB3aXRoIHRoZSBiZXN0IG1hcmtldGluZyBzdHJhdGVnaWVzIGFuZCBwbGFucyB0aGF0IGhlbHAgaXRcclxuICAgICAgICAgICAgICAgICAgICBiZSB0aGUgYmVzdCBhbW9uZyBpdHMgY29tcGV0aXRvcnMuXHJcbiAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwid293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgPGg2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPjI8L3NwYW4+IE91ciB2aXNpb25cclxuICAgICAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgVG8gYmUgdGhlIG1vc3QgdHJ1c3RlZCBwYXJ0bmVyIGZvciBhbGwgaW52ZXN0b3JzIGluIHRoZVxyXG4gICAgICAgICAgICAgICAgICAgIFVuaXRlZCBBcmFiIEVtaXJhdGVzIGFuZCB0byBiZWNvbWUgYSBsZWFkZXIgaW4gcHJvdmlkaW5nXHJcbiAgICAgICAgICAgICAgICAgICAgaW5ub3ZhdGl2ZSBhbmQgc3VzdGFpbmFibGUgc29sdXRpb25zIHRoYXQgbWVldCB0aGUgbmVlZHMgb2ZcclxuICAgICAgICAgICAgICAgICAgICBvdXIgY3VzdG9tZXJzIGFuZCBidXNpbmVzcyBwYXJ0bmVycy4gV2UgYWltIHRvIGJ1aWxkXHJcbiAgICAgICAgICAgICAgICAgICAgbG9uZy10ZXJtIHJlbGF0aW9uc2hpcHMgd2l0aCBvdXIgY3VzdG9tZXJzIGJhc2VkIG9uIHRydXN0XHJcbiAgICAgICAgICAgICAgICAgICAgYW5kIG11dHVhbCBjb29wZXJhdGlvbiwgYW5kIHdlIHNlZWsgdG8gYWNoaWV2ZSBqb2ludCBzdWNjZXNzXHJcbiAgICAgICAgICAgICAgICAgICAgYnkgYWNoaWV2aW5nIHRoZWlyIGdvYWxzIGFuZCBhc3BpcmF0aW9ucy5cclxuICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvc2VjdGlvbj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgTWluaW1hbEFyZWE7XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsImNhcmRNb3VzZUVmZmVjdCIsInRodW1wYXJhbGxheERvd24iLCJNaW5pbWFsQXJlYSIsInVzZUVmZmVjdCIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvckFsbCIsInNldFRpbWVvdXQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/components/Minimal-Area/minimal-area.jsx\n"); + +/***/ }), + +/***/ "./src/components/Navbar/navbar.jsx": +/*!******************************************!*\ + !*** ./src/components/Navbar/navbar.jsx ***! + \******************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _data_app_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../data/app.json */ \"./src/data/app.json\");\n/* harmony import */ var _common_navbar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/navbar */ \"./src/common/navbar.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Navbar\\\\navbar.jsx\",\n _this = undefined;\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nvar Navbar = function Navbar(_ref) {\n var lr = _ref.lr,\n nr = _ref.nr,\n theme = _ref.theme;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"nav\", {\n ref: nr,\n className: \"navbar navbar-expand-lg change \".concat(theme === \"themeL\" ? \"light\" : \"\"),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"a\", {\n className: \"logo\",\n children: theme ? theme === \"themeL\" ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n ref: lr,\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.darkLogo,\n alt: \"logo\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 17\n }, _this) : /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n ref: lr,\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.lightLogo,\n alt: \"logo\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 17\n }, _this) : /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n ref: lr,\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.lightLogo,\n alt: \"logo\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"button\", {\n className: \"navbar-toggler\",\n type: \"button\",\n onClick: _common_navbar__WEBPACK_IMPORTED_MODULE_3__.handleMobileDropdown,\n \"data-toggle\": \"collapse\",\n \"data-target\": \"#navbarSupportedContent\",\n \"aria-controls\": \"navbarSupportedContent\",\n \"aria-expanded\": \"false\",\n \"aria-label\": \"Toggle navigation\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"icon-bar\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"i\", {\n className: \"fas fa-bars\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"collapse navbar-collapse\",\n id: \"navbarSupportedContent\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"ul\", {\n className: \"navbar-nav ml-auto\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"nav-link \",\n children: \"Home\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/about\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"a\", {\n className: \"nav-link\",\n children: \"Who we are\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/services\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"nav-link\",\n children: \"Our Services\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 59,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/blog/blog-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"nav-link \",\n children: \"Blog\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/contact/contact-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"a\", {\n className: \"nav-link\",\n children: \"Contact\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 13\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, _this);\n};\n\n_c = Navbar;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Navbar);\n\nvar _c;\n\n$RefreshReg$(_c, \"Navbar\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFDLGtEQUFEO0FBQU0sa0JBQUksb0JBQVY7QUFBQSxxQ0FDRTtBQUFNLHlCQUFTLEVBQUMsV0FBaEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxtQkFoQkYsZUFxQkU7QUFBSSxxQkFBUyxFQUFDLFVBQWQ7QUFBQSxtQ0FDRSw4REFBQyxrREFBRDtBQUFNLGtCQUFJLDBCQUFWO0FBQUEscUNBQ0U7QUFBRyx5QkFBUyxFQUFDLFVBQWI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxtQkFyQkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxlQTlCRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFORjtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBREY7QUFxRUQsQ0F0RUQ7O0tBQU1DO0FBd0VOLCtEQUFlQSxNQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL05hdmJhci9uYXZiYXIuanN4PzdhZjAiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcclxuaW1wb3J0IGFwcERhdGEgZnJvbSBcIi4uLy4uL2RhdGEvYXBwLmpzb25cIjtcclxuaW1wb3J0IHsgaGFuZGxlRHJvcGRvd24sIGhhbmRsZU1vYmlsZURyb3Bkb3duIH0gZnJvbSBcIi4uLy4uL2NvbW1vbi9uYXZiYXJcIjtcclxuXHJcbmNvbnN0IE5hdmJhciA9ICh7IGxyLCBuciwgdGhlbWUgfSkgPT4ge1xyXG4gIHJldHVybiAoXHJcbiAgICA8bmF2XHJcbiAgICAgIHJlZj17bnJ9XHJcbiAgICAgIGNsYXNzTmFtZT17YG5hdmJhciBuYXZiYXItZXhwYW5kLWxnIGNoYW5nZSAke1xyXG4gICAgICAgIHRoZW1lID09PSBcInRoZW1lTFwiID8gXCJsaWdodFwiIDogXCJcIlxyXG4gICAgICB9YH1cclxuICAgID5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICA8TGluayBocmVmPVwiL1wiPlxyXG4gICAgICAgICAgPGEgY2xhc3NOYW1lPVwibG9nb1wiPlxyXG4gICAgICAgICAgICB7dGhlbWUgPyAoXHJcbiAgICAgICAgICAgICAgdGhlbWUgPT09IFwidGhlbWVMXCIgPyAoXHJcbiAgICAgICAgICAgICAgICA8aW1nIHJlZj17bHJ9IHNyYz17YXBwRGF0YS5kYXJrTG9nb30gYWx0PVwibG9nb1wiIC8+XHJcbiAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgIDxpbWcgcmVmPXtscn0gc3JjPXthcHBEYXRhLmxpZ2h0TG9nb30gYWx0PVwibG9nb1wiIC8+XHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgIDxpbWcgcmVmPXtscn0gc3JjPXthcHBEYXRhLmxpZ2h0TG9nb30gYWx0PVwibG9nb1wiIC8+XHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgPC9MaW5rPlxyXG5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICBjbGFzc05hbWU9XCJuYXZiYXItdG9nZ2xlclwiXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZU1vYmlsZURyb3Bkb3dufVxyXG4gICAgICAgICAgZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXHJcbiAgICAgICAgICBkYXRhLXRhcmdldD1cIiNuYXZiYXJTdXBwb3J0ZWRDb250ZW50XCJcclxuICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJuYXZiYXJTdXBwb3J0ZWRDb250ZW50XCJcclxuICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiXHJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiVG9nZ2xlIG5hdmlnYXRpb25cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24tYmFyXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhcyBmYS1iYXJzXCI+PC9pPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbGxhcHNlIG5hdmJhci1jb2xsYXBzZVwiIGlkPVwibmF2YmFyU3VwcG9ydGVkQ29udGVudFwiPlxyXG4gICAgICAgICAgPHVsIGNsYXNzTmFtZT1cIm5hdmJhci1uYXYgbWwtYXV0b1wiPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibmF2LWl0ZW0gXCI+XHJcbiAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9cIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm5hdi1saW5rIFwiPkhvbWU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibmF2LWl0ZW1cIj5cclxuICAgICAgICAgICAgICA8TGluayBocmVmPXtgL2Fib3V0YH0+XHJcbiAgICAgICAgICAgICAgICA8YSBjbGFzc05hbWU9XCJuYXYtbGlua1wiPldobyB3ZSBhcmU8L2E+XHJcbiAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibmF2LWl0ZW0gXCI+XHJcbiAgICAgICAgICAgICAgPExpbmsgaHJlZj17YC9zZXJ2aWNlc2B9PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibmF2LWxpbmtcIj5PdXIgU2VydmljZXM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibmF2LWl0ZW0gXCI+XHJcbiAgICAgICAgICAgICAgPExpbmsgaHJlZj17YC9ibG9nL2Jsb2ctbGlnaHRgfT5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm5hdi1saW5rIFwiPkJsb2c8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibmF2LWl0ZW1cIj5cclxuICAgICAgICAgICAgICA8TGluayBocmVmPXtgL2NvbnRhY3QvY29udGFjdC1saWdodGB9PlxyXG4gICAgICAgICAgICAgICAgPGEgY2xhc3NOYW1lPVwibmF2LWxpbmtcIj5Db250YWN0PC9hPlxyXG4gICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uYXY+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IE5hdmJhcjtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiTGluayIsImFwcERhdGEiLCJoYW5kbGVEcm9wZG93biIsImhhbmRsZU1vYmlsZURyb3Bkb3duIiwiTmF2YmFyIiwibHIiLCJuciIsInRoZW1lIiwiZGFya0xvZ28iLCJsaWdodExvZ28iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/components/Navbar/navbar.jsx\n"); + +/***/ }), + +/***/ "./src/components/Pages-header/index.jsx": +/*!***********************************************!*\ + !*** ./src/components/Pages-header/index.jsx ***! + \***********************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Pages-header\\\\index.jsx\",\n _this = undefined;\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\nvar PagesHeader = function PagesHeader() {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"header\", {\n className: \"pages-header circle-bg valign\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"col-lg-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"cont mt-100 mb-50 text-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"h1\", {\n className: \"color-font fw-700\",\n children: \"Our dedicated team of creatives is bursting with talent, experience and passion for what we do.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"col-lg-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"img\", {\n src: \"/img/slid/about.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 7,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"half sub-bg\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"circle-color\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"gradient-circle\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"gradient-circle two\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 6,\n columnNumber: 5\n }, _this);\n};\n\n_c = PagesHeader;\n/* harmony default export */ __webpack_exports__[\"default\"] = (PagesHeader);\n\nvar _c;\n\n$RefreshReg$(_c, \"PagesHeader\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9QYWdlcy1oZWFkZXIvaW5kZXguanN4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBO0FBQ0E7OztBQUVBLElBQU1DLFdBQVcsR0FBRyxTQUFkQSxXQUFjLEdBQU07QUFDeEIsc0JBQ0U7QUFBUSxhQUFTLEVBQUMsK0JBQWxCO0FBQUEsNEJBQ0U7QUFBSyxlQUFTLEVBQUMsV0FBZjtBQUFBLDZCQUNFO0FBQUssaUJBQVMsRUFBQyw0QkFBZjtBQUFBLGdDQUNFO0FBQUssbUJBQVMsRUFBQyxXQUFmO0FBQUEsaUNBQ0U7QUFBSyxxQkFBUyxFQUFDLCtCQUFmO0FBQUEsbUNBQ0U7QUFBSSx1QkFBUyxFQUFDLG1CQUFkO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBREYsZUFTRTtBQUFLLG1CQUFTLEVBQUMsV0FBZjtBQUFBLGlDQUNFO0FBQUsscUJBQVMsRUFBQyxLQUFmO0FBQUEsbUNBQ0U7QUFBSyxpQkFBRyxFQUFDLHFCQUFUO0FBQStCLGlCQUFHLEVBQUM7QUFBbkM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQVRGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsYUFERixlQWtCRTtBQUFLLGVBQVMsRUFBQyxhQUFmO0FBQUEsNkJBQ0U7QUFBSyxpQkFBUyxFQUFDLGNBQWY7QUFBQSxnQ0FDRTtBQUFLLG1CQUFTLEVBQUM7QUFBZjtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQURGLGVBRUU7QUFBSyxtQkFBUyxFQUFDO0FBQWY7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFGRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBbEJGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxXQURGO0FBMkJELENBNUJEOztLQUFNQTtBQThCTiwrREFBZUEsV0FBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tcG9uZW50cy9QYWdlcy1oZWFkZXIvaW5kZXguanN4P2Q4NjYiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXHJcblxyXG5jb25zdCBQYWdlc0hlYWRlciA9ICgpID0+IHtcclxuICByZXR1cm4gKFxyXG4gICAgPGhlYWRlciBjbGFzc05hbWU9XCJwYWdlcy1oZWFkZXIgY2lyY2xlLWJnIHZhbGlnblwiPlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTEwXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udCBtdC0xMDAgbWItNTAgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8aDEgY2xhc3NOYW1lPVwiY29sb3ItZm9udCBmdy03MDBcIj5cclxuICAgICAgICAgICAgICAgIE91ciBkZWRpY2F0ZWQgdGVhbSBvZiBjcmVhdGl2ZXMgaXMgYnVyc3Rpbmcgd2l0aCB0YWxlbnQsXHJcbiAgICAgICAgICAgICAgICBleHBlcmllbmNlIGFuZCBwYXNzaW9uIGZvciB3aGF0IHdlIGRvLlxyXG4gICAgICAgICAgICAgIDwvaDE+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0xMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy9zbGlkL2Fib3V0LmpwZ1wiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImhhbGYgc3ViLWJnXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjaXJjbGUtY29sb3JcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JhZGllbnQtY2lyY2xlXCI+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyYWRpZW50LWNpcmNsZSB0d29cIj48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2hlYWRlcj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgUGFnZXNIZWFkZXI7Il0sIm5hbWVzIjpbIlJlYWN0IiwiUGFnZXNIZWFkZXIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/components/Pages-header/index.jsx\n"); + +/***/ }), + +/***/ "./src/components/Services/services.jsx": +/*!**********************************************!*\ + !*** ./src/components/Services/services.jsx ***! + \**********************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _data_sections_features_json__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../data/sections/features.json */ \"./src/data/sections/features.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Services\\\\services.jsx\",\n _this = undefined;\n\n\n\n\n\n\nvar Services = function Services(_ref) {\n var style = _ref.style,\n lines = _ref.lines;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"section\", {\n className: \"services bords section-padding \".concat(style === \"4item\" ? \"lficon\" : lines ? \"\" : \"pt-0\"),\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"container\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Best Features\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: \"We are a new business development agency\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"row\",\n children: style === \"4item\" ? _data_sections_features_json__WEBPACK_IMPORTED_MODULE_1__.map(function (feature) {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"col-lg-6 wow fadeInLeft\",\n \"data-wow-delay\": \"\".concat(feature.id == 1 ? \".5\" : feature.id === 2 ? \".7\" : feature.id === 3 ? \".9\" : \"1.1\", \"s\"),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"item-box\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"span\", {\n className: \"icon \".concat(feature.icon)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"h6\", {\n children: feature.title\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"p\", {\n children: feature.content\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 23\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 44,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 19\n }, _this)\n }, feature.id, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 17\n }, _this);\n }) : // max item 3 in Home page\n _data_sections_features_json__WEBPACK_IMPORTED_MODULE_1__.slice(0, 3).map(function (feature) {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"col-lg-4 wow fadeInLeft\",\n \"data-wow-delay\": \".5s\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"item-box md-mb50\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"span\", {\n className: \"icon \".concat(feature.icon)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 59,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"h6\", {\n children: feature.title\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 60,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"p\", {\n children: feature.content\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 61,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 19\n }, _this)\n }, feature.id, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 17\n }, _this);\n })\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 9\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 7\n }, _this), lines ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"line top left\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"line bottom right\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 11\n }, _this)]\n }, void 0, true) : null]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 6,\n columnNumber: 5\n }, _this);\n};\n\n_c = Services;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Services);\n\nvar _c;\n\n$RefreshReg$(_c, \"Services\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9TZXJ2aWNlcy9zZXJ2aWNlcy5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBO0FBQ0E7Ozs7QUFFQSxJQUFNRSxRQUFRLEdBQUcsU0FBWEEsUUFBVyxPQUFzQjtBQUFBLE1BQW5CQyxLQUFtQixRQUFuQkEsS0FBbUI7QUFBQSxNQUFaQyxLQUFZLFFBQVpBLEtBQVk7QUFDckMsc0JBQ0U7QUFDRSxhQUFTLDJDQUNQRCxLQUFLLEtBQUssT0FBVixHQUFvQixRQUFwQixHQUErQkMsS0FBSyxHQUFHLEVBQUgsR0FBUSxNQURyQyxDQURYO0FBQUEsNEJBS0U7QUFBSyxlQUFTLEVBQUMsV0FBZjtBQUFBLDhCQUNFO0FBQUssaUJBQVMsRUFBQyw0QkFBZjtBQUFBLCtCQUNFO0FBQUssbUJBQVMsRUFBQyxvQkFBZjtBQUFBLGlDQUNFO0FBQUsscUJBQVMsRUFBQyx1QkFBZjtBQUFBLG9DQUNFO0FBQUksdUJBQVMsRUFBQyxZQUFkO0FBQTJCLGdDQUFlLEtBQTFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQURGLGVBSUU7QUFBSSx1QkFBUyxFQUFDLGdCQUFkO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQUpGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGVBREYsZUFhRTtBQUFLLGlCQUFTLEVBQUMsS0FBZjtBQUFBLGtCQUNHRCxLQUFLLEtBQUssT0FBVixHQUNHRiw2REFBQSxDQUFpQixVQUFDSyxPQUFEO0FBQUEsOEJBQ2Y7QUFFRSxxQkFBUyxFQUFDLHlCQUZaO0FBR0Usd0NBQ0VBLE9BQU8sQ0FBQ0MsRUFBUixJQUFjLENBQWQsR0FDSSxJQURKLEdBRUlELE9BQU8sQ0FBQ0MsRUFBUixLQUFlLENBQWYsR0FDQSxJQURBLEdBRUFELE9BQU8sQ0FBQ0MsRUFBUixLQUFlLENBQWYsR0FDQSxJQURBLEdBRUEsS0FQTixNQUhGO0FBQUEsbUNBYUU7QUFBSyx1QkFBUyxFQUFDLFVBQWY7QUFBQSxzQ0FDRTtBQUFBLHVDQUNFO0FBQU0sMkJBQVMsaUJBQVVELE9BQU8sQ0FBQ0UsSUFBbEI7QUFBZjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFERixlQUlFO0FBQUsseUJBQVMsRUFBQyxNQUFmO0FBQUEsd0NBQ0U7QUFBQSw0QkFBS0YsT0FBTyxDQUFDRztBQUFiO0FBQUE7QUFBQTtBQUFBO0FBQUEseUJBREYsZUFFRTtBQUFBLDRCQUFJSCxPQUFPLENBQUNJO0FBQVo7QUFBQTtBQUFBO0FBQUE7QUFBQSx5QkFGRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBSkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBYkYsYUFDT0osT0FBTyxDQUFDQyxFQURmO0FBQUE7QUFBQTtBQUFBO0FBQUEsbUJBRGU7QUFBQSxTQUFqQixDQURILEdBMEJHO0FBQ0FOLFFBQUFBLCtEQUFBLENBQW1CLENBQW5CLEVBQXNCLENBQXRCLEVBQXlCSSxHQUF6QixDQUE2QixVQUFDQyxPQUFEO0FBQUEsOEJBQzNCO0FBRUUscUJBQVMsRUFBQyx5QkFGWjtBQUdFLDhCQUFlLEtBSGpCO0FBQUEsbUNBS0U7QUFBSyx1QkFBUyxFQUFDLGtCQUFmO0FBQUEsc0NBQ0U7QUFBTSx5QkFBUyxpQkFBVUEsT0FBTyxDQUFDRSxJQUFsQjtBQUFmO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBREYsZUFFRTtBQUFBLDBCQUFLRixPQUFPLENBQUNHO0FBQWI7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFGRixlQUdFO0FBQUEsMEJBQUlILE9BQU8sQ0FBQ0k7QUFBWjtBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQUhGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUxGLGFBQ09KLE9BQU8sQ0FBQ0MsRUFEZjtBQUFBO0FBQUE7QUFBQTtBQUFBLG1CQUQyQjtBQUFBLFNBQTdCO0FBNUJOO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFiRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsYUFMRixFQTZER0gsS0FBSyxnQkFDSjtBQUFBLDhCQUNFO0FBQUssaUJBQVMsRUFBQztBQUFmO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFERixlQUVFO0FBQUssaUJBQVMsRUFBQztBQUFmO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFGRjtBQUFBLG9CQURJLEdBS0YsSUFsRU47QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBREY7QUFzRUQsQ0F2RUQ7O0tBQU1GO0FBeUVOLCtEQUFlQSxRQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL1NlcnZpY2VzL3NlcnZpY2VzLmpzeD8yZWU0Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IGZlYXR1cmVzRGF0YSBmcm9tIFwiLi4vLi4vZGF0YS9zZWN0aW9ucy9mZWF0dXJlcy5qc29uXCI7XHJcblxyXG5jb25zdCBTZXJ2aWNlcyA9ICh7IHN0eWxlLCBsaW5lcyB9KSA9PiB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uXHJcbiAgICAgIGNsYXNzTmFtZT17YHNlcnZpY2VzIGJvcmRzIHNlY3Rpb24tcGFkZGluZyAke1xyXG4gICAgICAgIHN0eWxlID09PSBcIjRpdGVtXCIgPyBcImxmaWNvblwiIDogbGluZXMgPyBcIlwiIDogXCJwdC0wXCJcclxuICAgICAgfWB9XHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOCBjb2wtbWQtMTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWMtaGVhZCAgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8aDYgY2xhc3NOYW1lPVwid293IGZhZGVJblwiIGRhdGEtd293LWRlbGF5PVwiLjVzXCI+XHJcbiAgICAgICAgICAgICAgICBCZXN0IEZlYXR1cmVzXHJcbiAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwid293IGNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgIFdlIGFyZSBhIG5ldyBidXNpbmVzcyBkZXZlbG9wbWVudCBhZ2VuY3lcclxuICAgICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICB7c3R5bGUgPT09IFwiNGl0ZW1cIlxyXG4gICAgICAgICAgICA/IGZlYXR1cmVzRGF0YS5tYXAoKGZlYXR1cmUpID0+IChcclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAga2V5PXtmZWF0dXJlLmlkfVxyXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJjb2wtbGctNiB3b3cgZmFkZUluTGVmdFwiXHJcbiAgICAgICAgICAgICAgICAgIGRhdGEtd293LWRlbGF5PXtgJHtcclxuICAgICAgICAgICAgICAgICAgICBmZWF0dXJlLmlkID09IDFcclxuICAgICAgICAgICAgICAgICAgICAgID8gXCIuNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICA6IGZlYXR1cmUuaWQgPT09IDJcclxuICAgICAgICAgICAgICAgICAgICAgID8gXCIuN1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICA6IGZlYXR1cmUuaWQgPT09IDNcclxuICAgICAgICAgICAgICAgICAgICAgID8gXCIuOVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICA6IFwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgfXNgfVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0tYm94XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17YGljb24gJHtmZWF0dXJlLmljb259YH0+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGg2PntmZWF0dXJlLnRpdGxlfTwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cD57ZmVhdHVyZS5jb250ZW50fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICApKVxyXG4gICAgICAgICAgICA6IC8vIG1heCBpdGVtIDMgaW4gSG9tZSBwYWdlXHJcbiAgICAgICAgICAgICAgZmVhdHVyZXNEYXRhLnNsaWNlKDAsIDMpLm1hcCgoZmVhdHVyZSkgPT4gKFxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICBrZXk9e2ZlYXR1cmUuaWR9XHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImNvbC1sZy00IHdvdyBmYWRlSW5MZWZ0XCJcclxuICAgICAgICAgICAgICAgICAgZGF0YS13b3ctZGVsYXk9XCIuNXNcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0tYm94IG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2BpY29uICR7ZmVhdHVyZS5pY29ufWB9Pjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+e2ZlYXR1cmUudGl0bGV9PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICA8cD57ZmVhdHVyZS5jb250ZW50fTwvcD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICApKX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIHtsaW5lcyA/IChcclxuICAgICAgICA8PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsaW5lIHRvcCBsZWZ0XCI+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxpbmUgYm90dG9tIHJpZ2h0XCI+PC9kaXY+XHJcbiAgICAgICAgPC8+XHJcbiAgICAgICkgOiBudWxsfVxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBTZXJ2aWNlcztcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiZmVhdHVyZXNEYXRhIiwiU2VydmljZXMiLCJzdHlsZSIsImxpbmVzIiwibWFwIiwiZmVhdHVyZSIsImlkIiwiaWNvbiIsInRpdGxlIiwiY29udGVudCIsInNsaWNlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Services/services.jsx\n"); + +/***/ }), + +/***/ "./src/components/Skills-circle/skills-circle.jsx": +/*!********************************************************!*\ + !*** ./src/components/Skills-circle/skills-circle.jsx ***! + \********************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_circular_progressbar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-circular-progressbar */ \"./node_modules/react-circular-progressbar/dist/index.esm.js\");\n/* harmony import */ var react_circular_progressbar_dist_styles_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-circular-progressbar/dist/styles.css */ \"./node_modules/react-circular-progressbar/dist/styles.css\");\n/* harmony import */ var react_circular_progressbar_dist_styles_css__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_circular_progressbar_dist_styles_css__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Skills-circle\\\\skills-circle.jsx\",\n _this = undefined;\n\n\n\n\n\n\nvar SkillsCircle = function SkillsCircle(_ref) {\n var from = _ref.from,\n theme = _ref.theme;\n var cpStyle = {\n path: {\n stroke: \"rgb(18, 194, 233)\"\n },\n trail: {\n stroke: theme ? theme == \"dark\" ? \"#0f1013\" : \"#e5e5e5\" : \"\"\n },\n text: {\n fill: theme ? theme == \"dark\" ? \"#ffffff\" : \"#4e4e4e\" : \"\",\n // Text size\n fontSize: \"16px\"\n }\n };\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"section\", {\n className: \"skills-circle pt-50 pb-50 \".concat(from ? from === \"aboutPage\" ? \"sub-bg\" : \"\" : \"\"),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-7\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item wow fadeInLeft\",\n \"data-wow-delay\": \".6\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"skill\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(react_circular_progressbar__WEBPACK_IMPORTED_MODULE_1__.CircularProgressbar, {\n value: 90,\n strokeWidth: 2,\n text: \"\".concat(90, \"%\"),\n styles: cpStyle\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: \"Project\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Consulting\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 23\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item wow fadeInLeft\",\n \"data-wow-delay\": \".3\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"skill\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(react_circular_progressbar__WEBPACK_IMPORTED_MODULE_1__.CircularProgressbar, {\n value: 75,\n strokeWidth: 2,\n text: \"\".concat(75, \"%\"),\n styles: cpStyle\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: \"App\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Development\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 23\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 5\n }, _this);\n};\n\n_c = SkillsCircle;\n/* harmony default export */ __webpack_exports__[\"default\"] = (SkillsCircle);\n\nvar _c;\n\n$RefreshReg$(_c, \"SkillsCircle\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9Ta2lsbHMtY2lyY2xlL3NraWxscy1jaXJjbGUuanN4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTs7O0FBRUEsSUFBTUcsWUFBWSxHQUFHLFNBQWZBLFlBQWUsT0FBcUI7QUFBQSxNQUFsQkMsSUFBa0IsUUFBbEJBLElBQWtCO0FBQUEsTUFBWkMsS0FBWSxRQUFaQSxLQUFZO0FBQ3hDLE1BQU1DLE9BQU8sR0FBRztBQUNkQyxJQUFBQSxJQUFJLEVBQUU7QUFDSkMsTUFBQUEsTUFBTSxFQUFFO0FBREosS0FEUTtBQUlkQyxJQUFBQSxLQUFLLEVBQUU7QUFDTEQsTUFBQUEsTUFBTSxFQUFFSCxLQUFLLEdBQUlBLEtBQUssSUFBSSxNQUFULEdBQWtCLFNBQWxCLEdBQThCLFNBQWxDLEdBQStDO0FBRHZELEtBSk87QUFPZEssSUFBQUEsSUFBSSxFQUFFO0FBQ0pDLE1BQUFBLElBQUksRUFBRU4sS0FBSyxHQUFJQSxLQUFLLElBQUksTUFBVCxHQUFrQixTQUFsQixHQUE4QixTQUFsQyxHQUErQyxFQUR0RDtBQUVKO0FBQ0FPLE1BQUFBLFFBQVEsRUFBRTtBQUhOO0FBUFEsR0FBaEI7QUFhQSxzQkFDRTtBQUNFLGFBQVMsc0NBQ1BSLElBQUksR0FBSUEsSUFBSSxLQUFLLFdBQVQsR0FBdUIsUUFBdkIsR0FBa0MsRUFBdEMsR0FBNEMsRUFEekMsQ0FEWDtBQUFBLDJCQUtFO0FBQUssZUFBUyxFQUFDLFdBQWY7QUFBQSw2QkFDRTtBQUFLLGlCQUFTLEVBQUMsS0FBZjtBQUFBLCtCQUNFO0FBQUssbUJBQVMsRUFBQyxVQUFmO0FBQUEsaUNBQ0U7QUFBSyxxQkFBUyxFQUFDLEVBQWY7QUFBQSxtQ0FDRTtBQUFLLHVCQUFTLEVBQUMsS0FBZjtBQUFBLHNDQUNFO0FBQUsseUJBQVMsRUFBQyxVQUFmO0FBQUEsdUNBQ0U7QUFBSywyQkFBUyxFQUFDLHFCQUFmO0FBQXFDLG9DQUFlLElBQXBEO0FBQUEsMENBQ0U7QUFBSyw2QkFBUyxFQUFDLE9BQWY7QUFBQSwyQ0FDRSw4REFBQywyRUFBRDtBQUNFLDJCQUFLLEVBQUUsRUFEVDtBQUVFLGlDQUFXLEVBQUUsQ0FGZjtBQUdFLDBCQUFJLFlBQUssRUFBTCxNQUhOO0FBSUUsNEJBQU0sRUFBRUU7QUFKVjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSwyQkFERixlQVNFO0FBQUssNkJBQVMsRUFBQyxNQUFmO0FBQUEsNENBQ0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsNkJBREYsZUFFRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSw2QkFGRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBVEY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFERixlQWlCRTtBQUFLLHlCQUFTLEVBQUMsVUFBZjtBQUFBLHVDQUNFO0FBQUssMkJBQVMsRUFBQyxxQkFBZjtBQUFxQyxvQ0FBZSxJQUFwRDtBQUFBLDBDQUNFO0FBQUssNkJBQVMsRUFBQyxPQUFmO0FBQUEsMkNBQ0UsOERBQUMsMkVBQUQ7QUFDRSwyQkFBSyxFQUFFLEVBRFQ7QUFFRSxpQ0FBVyxFQUFFLENBRmY7QUFHRSwwQkFBSSxZQUFLLEVBQUwsTUFITjtBQUlFLDRCQUFNLEVBQUVBO0FBSlY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBREYsZUFTRTtBQUFLLDZCQUFTLEVBQUMsTUFBZjtBQUFBLDRDQUNFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLDZCQURGLGVBRUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsNkJBRkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLDJCQVRGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBakJGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFMRjtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBREY7QUFrREQsQ0FoRUQ7O0tBQU1IO0FBa0VOLCtEQUFlQSxZQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL1NraWxscy1jaXJjbGUvc2tpbGxzLWNpcmNsZS5qc3g/N2NlYSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IENpcmN1bGFyUHJvZ3Jlc3NiYXIsIGJ1aWxkU3R5bGVzIH0gZnJvbSBcInJlYWN0LWNpcmN1bGFyLXByb2dyZXNzYmFyXCI7XHJcbmltcG9ydCBcInJlYWN0LWNpcmN1bGFyLXByb2dyZXNzYmFyL2Rpc3Qvc3R5bGVzLmNzc1wiO1xyXG5cclxuY29uc3QgU2tpbGxzQ2lyY2xlID0gKHsgZnJvbSwgdGhlbWUgfSkgPT4ge1xyXG4gIGNvbnN0IGNwU3R5bGUgPSB7XHJcbiAgICBwYXRoOiB7XHJcbiAgICAgIHN0cm9rZTogXCJyZ2IoMTgsIDE5NCwgMjMzKVwiLFxyXG4gICAgfSxcclxuICAgIHRyYWlsOiB7XHJcbiAgICAgIHN0cm9rZTogdGhlbWUgPyAodGhlbWUgPT0gXCJkYXJrXCIgPyBcIiMwZjEwMTNcIiA6IFwiI2U1ZTVlNVwiKSA6IFwiXCIsXHJcbiAgICB9LFxyXG4gICAgdGV4dDoge1xyXG4gICAgICBmaWxsOiB0aGVtZSA/ICh0aGVtZSA9PSBcImRhcmtcIiA/IFwiI2ZmZmZmZlwiIDogXCIjNGU0ZTRlXCIpIDogXCJcIixcclxuICAgICAgLy8gVGV4dCBzaXplXHJcbiAgICAgIGZvbnRTaXplOiBcIjE2cHhcIixcclxuICAgIH0sXHJcbiAgfTtcclxuICByZXR1cm4gKFxyXG4gICAgPHNlY3Rpb25cclxuICAgICAgY2xhc3NOYW1lPXtgc2tpbGxzLWNpcmNsZSBwdC01MCBwYi01MCAke1xyXG4gICAgICAgIGZyb20gPyAoZnJvbSA9PT0gXCJhYm91dFBhZ2VcIiA/IFwic3ViLWJnXCIgOiBcIlwiKSA6IFwiXCJcclxuICAgICAgfWB9XHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTdcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gd293IGZhZGVJbkxlZnRcIiBkYXRhLXdvdy1kZWxheT1cIi42XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJza2lsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPENpcmN1bGFyUHJvZ3Jlc3NiYXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9ezkwfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD17Mn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dD17YCR7OTB9JWB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlcz17Y3BTdHlsZX1cclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5Qcm9qZWN0PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGg2PkNvbnN1bHRpbmc8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gd293IGZhZGVJbkxlZnRcIiBkYXRhLXdvdy1kZWxheT1cIi4zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJza2lsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPENpcmN1bGFyUHJvZ3Jlc3NiYXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9ezc1fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD17Mn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dD17YCR7NzV9JWB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlcz17Y3BTdHlsZX1cclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5BcHA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aDY+RGV2ZWxvcG1lbnQ8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvc2VjdGlvbj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgU2tpbGxzQ2lyY2xlO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJDaXJjdWxhclByb2dyZXNzYmFyIiwiYnVpbGRTdHlsZXMiLCJTa2lsbHNDaXJjbGUiLCJmcm9tIiwidGhlbWUiLCJjcFN0eWxlIiwicGF0aCIsInN0cm9rZSIsInRyYWlsIiwidGV4dCIsImZpbGwiLCJmb250U2l6ZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Skills-circle/skills-circle.jsx\n"); + +/***/ }), + +/***/ "./src/components/Split/index.jsx": +/*!****************************************!*\ + !*** ./src/components/Split/index.jsx ***! + \****************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/classCallCheck */ \"./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/createClass */ \"./node_modules/@babel/runtime/helpers/esm/createClass.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized */ \"./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/inherits */ \"./node_modules/@babel/runtime/helpers/esm/inherits.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn */ \"./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf */ \"./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__);\n/* module decorator */ module = __webpack_require__.hmd(module);\n\n\n\n\n\n\n\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Split\\\\index.jsx\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\n\n\n\nvar Split = /*#__PURE__*/function (_React$Component) {\n (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(Split, _React$Component);\n\n var _super = _createSuper(Split);\n\n function Split() {\n var _this;\n\n (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, Split);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_6__[\"default\"])((0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_this), \"target\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createRef());\n\n (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_6__[\"default\"])((0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_this), \"split\", function () {\n if (_this.target.current) {\n Splitting({\n target: _this.target.current\n });\n }\n });\n\n (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_6__[\"default\"])((0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_this), \"componentDidMount\", _this.split);\n\n (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_6__[\"default\"])((0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_this), \"componentDidUpdate\", _this.split);\n\n return _this;\n }\n\n (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Split, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n ref: this.target,\n children: this.props.children\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 12\n }, this);\n }\n }]);\n\n return Split;\n}((react__WEBPACK_IMPORTED_MODULE_7___default().Component));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Split);\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9TcGxpdC9pbmRleC5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7O0lBRU1DOzs7Ozs7Ozs7Ozs7Ozs7OzhTQUNLRCxzREFBQTs7Z1NBRUQsWUFBTTtBQUNaLFVBQUksTUFBS0csTUFBTCxDQUFZQyxPQUFoQixFQUF5QjtBQUN2QkMsUUFBQUEsU0FBUyxDQUFDO0FBQUVGLFVBQUFBLE1BQU0sRUFBRSxNQUFLQSxNQUFMLENBQVlDO0FBQXRCLFNBQUQsQ0FBVDtBQUNEO0FBQ0Y7OzRTQUVtQixNQUFLRTs7NlNBQ0osTUFBS0E7Ozs7Ozs7V0FFMUIsa0JBQVM7QUFDUCwwQkFBTztBQUFLLFdBQUcsRUFBRSxLQUFLSCxNQUFmO0FBQUEsa0JBQXdCLEtBQUtJLEtBQUwsQ0FBV0M7QUFBbkM7QUFBQTtBQUFBO0FBQUE7QUFBQSxjQUFQO0FBQ0Q7Ozs7RUFkaUJSOztBQWlCcEIsK0RBQWVDLEtBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbXBvbmVudHMvU3BsaXQvaW5kZXguanN4Pzg3MTAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5cclxuY2xhc3MgU3BsaXQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG4gIHRhcmdldCA9IFJlYWN0LmNyZWF0ZVJlZigpO1xyXG5cclxuICBzcGxpdCA9ICgpID0+IHtcclxuICAgIGlmICh0aGlzLnRhcmdldC5jdXJyZW50KSB7XHJcbiAgICAgIFNwbGl0dGluZyh7IHRhcmdldDogdGhpcy50YXJnZXQuY3VycmVudCB9KTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICBjb21wb25lbnREaWRNb3VudCA9IHRoaXMuc3BsaXQ7XHJcbiAgY29tcG9uZW50RGlkVXBkYXRlID0gdGhpcy5zcGxpdDtcclxuXHJcbiAgcmVuZGVyKCkge1xyXG4gICAgcmV0dXJuIDxkaXYgcmVmPXt0aGlzLnRhcmdldH0+e3RoaXMucHJvcHMuY2hpbGRyZW59PC9kaXY+O1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgU3BsaXQ7XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIlNwbGl0IiwiY3JlYXRlUmVmIiwidGFyZ2V0IiwiY3VycmVudCIsIlNwbGl0dGluZyIsInNwbGl0IiwicHJvcHMiLCJjaGlsZHJlbiIsIkNvbXBvbmVudCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Split/index.jsx\n"); + +/***/ }), + +/***/ "./src/components/Team/team.jsx": +/*!**************************************!*\ + !*** ./src/components/Team/team.jsx ***! + \**************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/teamSkillsProgress */ \"./src/common/teamSkillsProgress.js\");\n/* harmony import */ var _common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/tooltipEffect */ \"./src/common/tooltipEffect.js\");\n/* harmony import */ var _data_sections_team_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../data/sections/team.json */ \"./src/data/sections/team.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Team\\\\team.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nvar Team = function Team() {\n _s();\n\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n (0,_common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n setTimeout(function () {\n (0,_common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__[\"default\"])();\n }, 1000);\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"section\", {\n className: \"team section-padding\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Our Team\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: \"Our team will simplify business setup in the UAE\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container-fluid\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/01.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/02.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/03.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 117,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/04.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/05.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/06.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/07.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 292,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 291,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 297,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 299,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 298,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 280,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 275,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/08.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 319,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 333,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 332,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 338,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 340,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 339,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 321,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 320,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 318,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 317,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 316,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/09.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 361,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 375,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 374,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 380,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 382,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 381,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 363,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 362,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 360,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 359,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 358,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/10.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 401,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 415,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 414,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 420,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 422,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 421,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 403,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 402,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 400,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 399,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 398,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/11.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 441,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 455,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 454,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 460,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 462,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 461,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 443,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 442,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 440,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 439,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 438,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/12.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 482,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 496,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 495,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 501,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 503,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 502,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 484,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 483,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 481,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 480,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 479,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 357,\n columnNumber: 9\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 5\n }, _this);\n};\n\n_s(Team, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = Team;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Team);\n\nvar _c;\n\n$RefreshReg$(_c, \"Team\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFBQSxXQURGO0FBNmZELENBcGdCRDs7R0FBTUU7O0tBQUFBO0FBc2dCTiwrREFBZUEsSUFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tcG9uZW50cy9UZWFtL3RlYW0uanN4P2I2OGUiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB0ZWFtU2tpbGxzUHJvZ3Jlc3MgZnJvbSBcIi4uLy4uL2NvbW1vbi90ZWFtU2tpbGxzUHJvZ3Jlc3NcIjtcclxuaW1wb3J0IHRvb2x0aXBFZmZlY3QgZnJvbSBcIi4uLy4uL2NvbW1vbi90b29sdGlwRWZmZWN0XCI7XHJcbmltcG9ydCB0ZWFtc0RhdGUgZnJvbSBcIi4uLy4uL2RhdGEvc2VjdGlvbnMvdGVhbS5qc29uXCI7XHJcblxyXG5jb25zdCBUZWFtID0gKCkgPT4ge1xyXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICB0ZWFtU2tpbGxzUHJvZ3Jlc3MoKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0b29sdGlwRWZmZWN0KCk7XHJcbiAgICB9LCAxMDAwKTtcclxuICB9LCBbXSk7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInRlYW0gc2VjdGlvbi1wYWRkaW5nXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOCBjb2wtbWQtMTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWMtaGVhZCB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNiBjbGFzc05hbWU9XCJ3b3cgZmFkZUluXCIgZGF0YS13b3ctZGVsYXk9XCIuNXNcIj5cclxuICAgICAgICAgICAgICAgIE91ciBUZWFtXHJcbiAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwid293IGNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgIE91ciB0ZWFtIHdpbGwgc2ltcGxpZnkgYnVzaW5lc3Mgc2V0dXAgaW4gdGhlIFVBRVxyXG4gICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wMS53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUxXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDRU8gTWFuYWdlciBDRU8gTWFuYWdlciBDRU8gTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzAyLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTJcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIHNtLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDMud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlM1wiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDQud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlNFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzA1LndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTFcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgxXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENFTyBNYW5hZ2VyIENFTyBNYW5hZ2VyIENFTyBNYW5hZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDYud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlMlwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDJcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJpb3IgRGVzaWduZXIgSW50ZXJpb3IgRGVzaWduZXIgSW50ZXJpb3IgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgc20tbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wNy53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUzXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wOC53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGU0XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoNFwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDbGllbnQgTWFuYWdlciBDbGllbnQgTWFuYWdlciBDbGllbnQgTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDkud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlMVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ0VPIE1hbmFnZXIgQ0VPIE1hbmFnZXIgQ0VPIE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8xMC53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMlwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBJbnRlcmlvciBEZXNpZ25lciBJbnRlcmlvciBEZXNpZ25lciBJbnRlcmlvciBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBzbS1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzExLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTNcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzEyLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTRcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGg0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGg0XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGg0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENsaWVudCBNYW5hZ2VyIENsaWVudCBNYW5hZ2VyIENsaWVudCBNYW5hZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvc2VjdGlvbj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgVGVhbTtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwidGVhbVNraWxsc1Byb2dyZXNzIiwidG9vbHRpcEVmZmVjdCIsInRlYW1zRGF0ZSIsIlRlYW0iLCJ1c2VFZmZlY3QiLCJzZXRUaW1lb3V0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Team/team.jsx\n"); + +/***/ }), + +/***/ "./src/components/Video-with-testimonials/video-with-testimonials.jsx": +/*!****************************************************************************!*\ + !*** ./src/components/Video-with-testimonials/video-with-testimonials.jsx ***! + \****************************************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react_slick__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-slick */ \"./node_modules/react-slick/lib/index.js\");\n/* harmony import */ var slick_carousel_slick_slick_css__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! slick-carousel/slick/slick.css */ \"./node_modules/slick-carousel/slick/slick.css\");\n/* harmony import */ var slick_carousel_slick_slick_css__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(slick_carousel_slick_slick_css__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var slick_carousel_slick_slick_theme_css__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! slick-carousel/slick/slick-theme.css */ \"./node_modules/slick-carousel/slick/slick-theme.css\");\n/* harmony import */ var slick_carousel_slick_slick_theme_css__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(slick_carousel_slick_slick_theme_css__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var react_modal_video__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-modal-video */ \"./node_modules/react-modal-video/lib/index.js\");\n/* harmony import */ var react_modal_video_css_modal_video_css__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react-modal-video/css/modal-video.css */ \"./node_modules/react-modal-video/css/modal-video.css\");\n/* harmony import */ var react_modal_video_css_modal_video_css__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react_modal_video_css_modal_video_css__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__);\n/* module decorator */ module = __webpack_require__.hmd(module);\n\n\n\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Video-with-testimonials\\\\video-with-testimonials.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\n\n\nvar VideoWithTestimonials = function VideoWithTestimonials() {\n _s();\n\n var _React$useState = react__WEBPACK_IMPORTED_MODULE_2___default().useState(false),\n _React$useState2 = (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_React$useState, 2),\n isOpen = _React$useState2[0],\n setOpen = _React$useState2[1];\n\n react__WEBPACK_IMPORTED_MODULE_2___default().useEffect(function () {\n console.clear();\n }, []);\n var settings = {\n dots: true,\n infinite: true,\n arrows: false,\n speed: 500,\n slidesToShow: 1,\n slidesToScroll: 1\n };\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"section\", {\n className: \"block-sec\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"background bg-img pt-100 pb-0 parallaxie\",\n style: {\n backgroundImage: \"url(/img/bg-vid.jpg)\"\n },\n \"data-overlay-dark\": \"5\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"col-lg-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"vid-area\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"text\",\n children: \"Watch Video\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"vid-icon\",\n children: [ true && /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(react_modal_video__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n channel: \"vimeo\",\n isOpen: isOpen,\n videoId: \"127203262\",\n onClose: function onClose() {\n return setOpen(false);\n }\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n className: \"vid\",\n onClick: function onClick(e) {\n e.preventDefault();\n setOpen(true);\n },\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"vid-butn\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"icon\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"i\", {\n className: \"fas fa-play\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 51,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 21\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"col-lg-5 offset-lg-1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"testim-box\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"head-box\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Our Clients\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h4\", {\n className: \"wow fadeInLeft\",\n \"data-wow-delay\": \".5s\",\n children: \"What Client's Say?\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 61,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(react_slick__WEBPACK_IMPORTED_MODULE_3__[\"default\"], _objectSpread(_objectSpread({}, settings), {}, {\n className: \"slic-item wow fadeInUp\",\n \"data-wow-delay\": \".5s\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"p\", {\n children: \"Nulla metus metus ullamcorper vel tincidunt sed euismod nibh volutpat velit class aptent taciti sociosqu ad litora.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"info\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"img-box\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/img/clients/1.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 82,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 81,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"author\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"author-name \",\n children: \"Alex Regelman\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 27\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"author-details\",\n children: \"Co-founder, Colabrio\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 27\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 87,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 86,\n columnNumber: 23\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"p\", {\n children: \"Nulla metus metus ullamcorper vel tincidunt sed euismod nibh volutpat velit class aptent taciti sociosqu ad litora.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"info\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"img-box\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/img/clients/2.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 105,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 104,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 103,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"author\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"author-name \",\n children: \"Alex Regelman\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 27\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"author-details\",\n children: \"Co-founder, Colabrio\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 27\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 108,\n columnNumber: 23\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 102,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"p\", {\n children: \"Nulla metus metus ullamcorper vel tincidunt sed euismod nibh volutpat velit class aptent taciti sociosqu ad litora.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"info\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"img-box\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/img/clients/3.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"author\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"author-name \",\n children: \"Alex Regelman\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 27\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"author-details\",\n children: \"Co-founder, Colabrio\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 133,\n columnNumber: 27\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 23\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 19\n }, _this)]\n }), void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 60,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 59,\n columnNumber: 13\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 5\n }, _this);\n};\n\n_s(VideoWithTestimonials, \"qf539F6ReNB0H/JamsCPL0/tKN4=\");\n\n_c = VideoWithTestimonials;\n/* harmony default export */ __webpack_exports__[\"default\"] = (VideoWithTestimonials);\n\nvar _c;\n\n$RefreshReg$(_c, \"VideoWithTestimonials\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9WaWRlby13aXRoLXRlc3RpbW9uaWFscy92aWRlby13aXRoLXRlc3RpbW9uaWFscy5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUVBLElBQU1HLHFCQUFxQixHQUFHLFNBQXhCQSxxQkFBd0IsR0FBTTtBQUFBOztBQUNsQyx3QkFBMEJILHFEQUFBLENBQWUsS0FBZixDQUExQjtBQUFBO0FBQUEsTUFBT0ssTUFBUDtBQUFBLE1BQWVDLE9BQWY7O0FBQ0FOLEVBQUFBLHNEQUFBLENBQWdCLFlBQU07QUFDcEJRLElBQUFBLE9BQU8sQ0FBQ0MsS0FBUjtBQUNELEdBRkQsRUFFRyxFQUZIO0FBR0EsTUFBTUMsUUFBUSxHQUFHO0FBQ2ZDLElBQUFBLElBQUksRUFBRSxJQURTO0FBRWZDLElBQUFBLFFBQVEsRUFBRSxJQUZLO0FBR2ZDLElBQUFBLE1BQU0sRUFBRSxLQUhPO0FBSWZDLElBQUFBLEtBQUssRUFBRSxHQUpRO0FBS2ZDLElBQUFBLFlBQVksRUFBRSxDQUxDO0FBTWZDLElBQUFBLGNBQWMsRUFBRTtBQU5ELEdBQWpCO0FBUUEsc0JBQ0U7QUFBUyxhQUFTLEVBQUMsV0FBbkI7QUFBQSwyQkFDRTtBQUNFLGVBQVMsRUFBQywwQ0FEWjtBQUVFLFdBQUssRUFBRTtBQUFFQyxRQUFBQSxlQUFlO0FBQWpCLE9BRlQ7QUFHRSwyQkFBa0IsR0FIcEI7QUFBQSw2QkFLRTtBQUFLLGlCQUFTLEVBQUMsV0FBZjtBQUFBLCtCQUNFO0FBQUssbUJBQVMsRUFBQyxLQUFmO0FBQUEsa0NBQ0U7QUFBSyxxQkFBUyxFQUFDLFVBQWY7QUFBQSxtQ0FDRTtBQUFLLHVCQUFTLEVBQUMsVUFBZjtBQUFBLHNDQUNFO0FBQU0seUJBQVMsRUFBQyxNQUFoQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFERixlQUVFO0FBQUsseUJBQVMsRUFB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QUFBO0FBQUEsNkJBTkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLDJCQU5GO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSx5QkFqREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQVRGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsbUJBN0JGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFMRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxXQURGO0FBOEhELENBM0lEOztHQUFNUDs7S0FBQUE7QUE2SU4sK0RBQWVBLHFCQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL1ZpZGVvLXdpdGgtdGVzdGltb25pYWxzL3ZpZGVvLXdpdGgtdGVzdGltb25pYWxzLmpzeD81NGVjIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBuZXh0L25leHQvbm8taW1nLWVsZW1lbnQgKi9cclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgU2xpZGVyIGZyb20gXCJyZWFjdC1zbGlja1wiO1xyXG5pbXBvcnQgXCJzbGljay1jYXJvdXNlbC9zbGljay9zbGljay5jc3NcIjtcclxuaW1wb3J0IFwic2xpY2stY2Fyb3VzZWwvc2xpY2svc2xpY2stdGhlbWUuY3NzXCI7XHJcbmltcG9ydCBNb2RhbFZpZGVvIGZyb20gXCJyZWFjdC1tb2RhbC12aWRlb1wiO1xyXG5pbXBvcnQgXCJyZWFjdC1tb2RhbC12aWRlby9jc3MvbW9kYWwtdmlkZW8uY3NzXCI7XHJcblxyXG5jb25zdCBWaWRlb1dpdGhUZXN0aW1vbmlhbHMgPSAoKSA9PiB7XHJcbiAgY29uc3QgW2lzT3Blbiwgc2V0T3Blbl0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XHJcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgIGNvbnNvbGUuY2xlYXIoKTtcclxuICB9LCBbXSk7XHJcbiAgY29uc3Qgc2V0dGluZ3MgPSB7XHJcbiAgICBkb3RzOiB0cnVlLFxyXG4gICAgaW5maW5pdGU6IHRydWUsXHJcbiAgICBhcnJvd3M6IGZhbHNlLFxyXG4gICAgc3BlZWQ6IDUwMCxcclxuICAgIHNsaWRlc1RvU2hvdzogMSxcclxuICAgIHNsaWRlc1RvU2Nyb2xsOiAxLFxyXG4gIH07XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cImJsb2NrLXNlY1wiPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3NOYW1lPVwiYmFja2dyb3VuZCBiZy1pbWcgcHQtMTAwIHBiLTAgcGFyYWxsYXhpZVwiXHJcbiAgICAgICAgc3R5bGU9e3sgYmFja2dyb3VuZEltYWdlOiBgdXJsKC9pbWcvYmctdmlkLmpwZylgIH19XHJcbiAgICAgICAgZGF0YS1vdmVybGF5LWRhcms9XCI1XCJcclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy02XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ2aWQtYXJlYVwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dFwiPldhdGNoIFZpZGVvPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ2aWQtaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICB7dHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPE1vZGFsVmlkZW9cclxuICAgICAgICAgICAgICAgICAgICAgIGNoYW5uZWw9XCJ2aW1lb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBpc09wZW49e2lzT3Blbn1cclxuICAgICAgICAgICAgICAgICAgICAgIHZpZGVvSWQ9XCIxMjcyMDMyNjJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgb25DbG9zZT17KCkgPT4gc2V0T3BlbihmYWxzZSl9XHJcbiAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ2aWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICBzZXRPcGVuKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInZpZC1idXRuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJpY29uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhcyBmYS1wbGF5XCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTUgb2Zmc2V0LWxnLTFcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRlc3RpbS1ib3hcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaGVhZC1ib3hcIj5cclxuICAgICAgICAgICAgICAgICAgPGg2IGNsYXNzTmFtZT1cIndvdyBmYWRlSW5cIiBkYXRhLXdvdy1kZWxheT1cIi41c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIE91ciBDbGllbnRzXHJcbiAgICAgICAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJ3b3cgZmFkZUluTGVmdFwiIGRhdGEtd293LWRlbGF5PVwiLjVzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgV2hhdCBDbGllbnQmYXBvcztzIFNheT9cclxuICAgICAgICAgICAgICAgICAgPC9oND5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPFNsaWRlclxyXG4gICAgICAgICAgICAgICAgICB7Li4uc2V0dGluZ3N9XHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInNsaWMtaXRlbSB3b3cgZmFkZUluVXBcIlxyXG4gICAgICAgICAgICAgICAgICBkYXRhLXdvdy1kZWxheT1cIi41c1wiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgTnVsbGEgbWV0dXMgbWV0dXMgdWxsYW1jb3JwZXIgdmVsIHRpbmNpZHVudCBzZWQgZXVpc21vZFxyXG4gICAgICAgICAgICAgICAgICAgICAgbmliaCB2b2x1dHBhdCB2ZWxpdCBjbGFzcyBhcHRlbnQgdGFjaXRpIHNvY2lvc3F1IGFkXHJcbiAgICAgICAgICAgICAgICAgICAgICBsaXRvcmEuXHJcbiAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWctYm94XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL2NsaWVudHMvMS5qcGdcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYXV0aG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2IGNsYXNzTmFtZT1cImF1dGhvci1uYW1lIFwiPkFsZXggUmVnZWxtYW48L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImF1dGhvci1kZXRhaWxzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDby1mb3VuZGVyLCBDb2xhYnJpb1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgTnVsbGEgbWV0dXMgbWV0dXMgdWxsYW1jb3JwZXIgdmVsIHRpbmNpZHVudCBzZWQgZXVpc21vZFxyXG4gICAgICAgICAgICAgICAgICAgICAgbmliaCB2b2x1dHBhdCB2ZWxpdCBjbGFzcyBhcHRlbnQgdGFjaXRpIHNvY2lvc3F1IGFkXHJcbiAgICAgICAgICAgICAgICAgICAgICBsaXRvcmEuXHJcbiAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWctYm94XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL2NsaWVudHMvMi5qcGdcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYXV0aG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2IGNsYXNzTmFtZT1cImF1dGhvci1uYW1lIFwiPkFsZXggUmVnZWxtYW48L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImF1dGhvci1kZXRhaWxzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDby1mb3VuZGVyLCBDb2xhYnJpb1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgTnVsbGEgbWV0dXMgbWV0dXMgdWxsYW1jb3JwZXIgdmVsIHRpbmNpZHVudCBzZWQgZXVpc21vZFxyXG4gICAgICAgICAgICAgICAgICAgICAgbmliaCB2b2x1dHBhdCB2ZWxpdCBjbGFzcyBhcHRlbnQgdGFjaXRpIHNvY2lvc3F1IGFkXHJcbiAgICAgICAgICAgICAgICAgICAgICBsaXRvcmEuXHJcbiAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWctYm94XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL2NsaWVudHMvMy5qcGdcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYXV0aG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2IGNsYXNzTmFtZT1cImF1dGhvci1uYW1lIFwiPkFsZXggUmVnZWxtYW48L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImF1dGhvci1kZXRhaWxzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDby1mb3VuZGVyLCBDb2xhYnJpb1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L1NsaWRlcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L3NlY3Rpb24+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IFZpZGVvV2l0aFRlc3RpbW9uaWFscztcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiU2xpZGVyIiwiTW9kYWxWaWRlbyIsIlZpZGVvV2l0aFRlc3RpbW9uaWFscyIsInVzZVN0YXRlIiwiaXNPcGVuIiwic2V0T3BlbiIsInVzZUVmZmVjdCIsImNvbnNvbGUiLCJjbGVhciIsInNldHRpbmdzIiwiZG90cyIsImluZmluaXRlIiwiYXJyb3dzIiwic3BlZWQiLCJzbGlkZXNUb1Nob3ciLCJzbGlkZXNUb1Njcm9sbCIsImJhY2tncm91bmRJbWFnZSIsImUiLCJwcmV2ZW50RGVmYXVsdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Video-with-testimonials/video-with-testimonials.jsx\n"); + +/***/ }), + +/***/ "./src/layouts/Light.jsx": +/*!*******************************!*\ + !*** ./src/layouts/Light.jsx ***! + \*******************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/head */ \"./node_modules/next/head.js\");\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_head__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\layouts\\\\Light.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n/* eslint-disable @next/next/no-css-tags */\n\n\n\n\n\nvar LightTheme = function LightTheme(_ref) {\n _s();\n\n var children = _ref.children,\n mobileappstyle = _ref.mobileappstyle;\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n window.theme = \"light\";\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)((next_head__WEBPACK_IMPORTED_MODULE_1___default()), {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"link\", {\n rel: \"stylesheet\",\n href: \"/css/light.css\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 9\n }, _this), mobileappstyle ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"link\", {\n href: \"/css/mobile-app-light.css\",\n rel: \"stylesheet\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 28\n }, _this) : null]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 7\n }, _this), children]\n }, void 0, true);\n};\n\n_s(LightTheme, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = LightTheme;\n/* harmony default export */ __webpack_exports__[\"default\"] = (LightTheme);\n\nvar _c;\n\n$RefreshReg$(_c, \"LightTheme\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvbGF5b3V0cy9MaWdodC5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBOzs7O0FBRUEsSUFBTUUsVUFBVSxHQUFHLFNBQWJBLFVBQWEsT0FBa0M7QUFBQTs7QUFBQSxNQUEvQkMsUUFBK0IsUUFBL0JBLFFBQStCO0FBQUEsTUFBckJDLGNBQXFCLFFBQXJCQSxjQUFxQjtBQUNuREosRUFBQUEsc0RBQUEsQ0FBZ0IsWUFBTTtBQUNwQk0sSUFBQUEsTUFBTSxDQUFDQyxLQUFQLEdBQWUsT0FBZjtBQUNELEdBRkQsRUFFRyxFQUZIO0FBR0Esc0JBQ0U7QUFBQSw0QkFDRSw4REFBQyxrREFBRDtBQUFBLDhCQUNFO0FBQU0sV0FBRyxFQUFDLFlBQVY7QUFBdUIsWUFBSSxFQUFDO0FBQTVCO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFERixFQUVHSCxjQUFjLGdCQUFJO0FBQU0sWUFBSSxFQUFDLDJCQUFYO0FBQXVDLFdBQUcsRUFBQztBQUEzQztBQUFBO0FBQUE7QUFBQTtBQUFBLGVBQUosR0FBbUUsSUFGcEY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBREYsRUFLR0QsUUFMSDtBQUFBLGtCQURGO0FBU0QsQ0FiRDs7R0FBTUQ7O0tBQUFBO0FBZU4sK0RBQWVBLFVBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2xheW91dHMvTGlnaHQuanN4PzM5YzIiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1jc3MtdGFncyAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBIZWFkIGZyb20gXCJuZXh0L2hlYWRcIjtcclxuXHJcbmNvbnN0IExpZ2h0VGhlbWUgPSAoeyBjaGlsZHJlbiwgbW9iaWxlYXBwc3R5bGUgfSkgPT4ge1xyXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICB3aW5kb3cudGhlbWUgPSBcImxpZ2h0XCI7XHJcbiAgfSwgW10pO1xyXG4gIHJldHVybiAoXHJcbiAgICA8PlxyXG4gICAgICA8SGVhZD5cclxuICAgICAgICA8bGluayByZWw9XCJzdHlsZXNoZWV0XCIgaHJlZj1cIi9jc3MvbGlnaHQuY3NzXCIgLz5cclxuICAgICAgICB7bW9iaWxlYXBwc3R5bGUgPyAoPGxpbmsgaHJlZj1cIi9jc3MvbW9iaWxlLWFwcC1saWdodC5jc3NcIiByZWw9XCJzdHlsZXNoZWV0XCIgLz4pIDogKG51bGwpfVxyXG4gICAgICA8L0hlYWQ+XHJcbiAgICAgIHtjaGlsZHJlbn1cclxuICAgIDwvPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBMaWdodFRoZW1lO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJIZWFkIiwiTGlnaHRUaGVtZSIsImNoaWxkcmVuIiwibW9iaWxlYXBwc3R5bGUiLCJ1c2VFZmZlY3QiLCJ3aW5kb3ciLCJ0aGVtZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/layouts/Light.jsx\n"); + +/***/ }), + +/***/ "./src/pages/about/index.jsx": +/*!***********************************!*\ + !*** ./src/pages/about/index.jsx ***! + \***********************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _components_Navbar_navbar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../components/Navbar/navbar */ \"./src/components/Navbar/navbar.jsx\");\n/* harmony import */ var _components_Services_services__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../components/Services/services */ \"./src/components/Services/services.jsx\");\n/* harmony import */ var _components_Video_with_testimonials_video_with_testimonials__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../components/Video-with-testimonials/video-with-testimonials */ \"./src/components/Video-with-testimonials/video-with-testimonials.jsx\");\n/* harmony import */ var _components_Skills_circle_skills_circle__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../components/Skills-circle/skills-circle */ \"./src/components/Skills-circle/skills-circle.jsx\");\n/* harmony import */ var _components_Clients_clients__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../components/Clients/clients */ \"./src/components/Clients/clients.jsx\");\n/* harmony import */ var _components_Call_to_action_call_to_action__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../components/Call-to-action/call-to-action */ \"./src/components/Call-to-action/call-to-action.jsx\");\n/* harmony import */ var _components_Footer_footer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../components/Footer/footer */ \"./src/components/Footer/footer.jsx\");\n/* harmony import */ var _components_Pages_header__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../components/Pages-header */ \"./src/components/Pages-header/index.jsx\");\n/* harmony import */ var _components_About_intro__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../components/About-intro */ \"./src/components/About-intro/index.jsx\");\n/* harmony import */ var _layouts_Light__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../layouts/Light */ \"./src/layouts/Light.jsx\");\n/* harmony import */ var _components_Team_team__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../components/Team/team */ \"./src/components/Team/team.jsx\");\n/* harmony import */ var _components_Minimal_Area_minimal_area__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../components/Minimal-Area/minimal-area */ \"./src/components/Minimal-Area/minimal-area.jsx\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_13__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\pages\\\\about\\\\index.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar About = function About() {\n _s();\n\n var navbarRef = react__WEBPACK_IMPORTED_MODULE_0___default().useRef(null);\n var logoRef = react__WEBPACK_IMPORTED_MODULE_0___default().useRef(null);\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n var navbar = navbarRef.current,\n logo = logoRef.current;\n\n if (window.pageYOffset > 300) {\n navbar.classList.add(\"nav-scroll\");\n } else {\n navbar.classList.remove(\"nav-scroll\");\n }\n\n window.addEventListener(\"scroll\", function () {\n if (window.pageYOffset > 300) {\n navbar.classList.add(\"nav-scroll\");\n } else {\n navbar.classList.remove(\"nav-scroll\");\n }\n });\n }, [navbarRef]);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxDEV)(_layouts_Light__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxDEV)(_components_Navbar_navbar__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n nr: navbarRef,\n lr: logoRef,\n theme: \"themeL\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxDEV)(_components_Pages_header__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxDEV)(_components_About_intro__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxDEV)(_components_Services_services__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n style: \"4item\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxDEV)(_components_Team_team__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxDEV)(_components_Minimal_Area_minimal_area__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 44,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxDEV)(_components_Clients_clients__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n theme: \"light\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxDEV)(_components_Call_to_action_call_to_action__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxDEV)(_components_Footer_footer__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 5\n }, _this);\n};\n\n_s(About, \"NJv/rvX5fPwWhnPtkwq0tuwt7xI=\");\n\n_c = About;\n/* harmony default export */ __webpack_exports__[\"default\"] = (About);\n\nvar _c;\n\n$RefreshReg$(_c, \"About\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvcGFnZXMvYWJvdXQvaW5kZXguanN4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsSUFBTWEsS0FBSyxHQUFHLFNBQVJBLEtBQVEsR0FBTTtBQUFBOztBQUNsQixNQUFNQyxTQUFTLEdBQUdkLG1EQUFBLENBQWEsSUFBYixDQUFsQjtBQUNBLE1BQU1nQixPQUFPLEdBQUdoQixtREFBQSxDQUFhLElBQWIsQ0FBaEI7QUFFQUEsRUFBQUEsc0RBQUEsQ0FBZ0IsWUFBTTtBQUNwQixRQUFJa0IsTUFBTSxHQUFHSixTQUFTLENBQUNLLE9BQXZCO0FBQUEsUUFDRUMsSUFBSSxHQUFHSixPQUFPLENBQUNHLE9BRGpCOztBQUVBLFFBQUlFLE1BQU0sQ0FBQ0MsV0FBUCxHQUFxQixHQUF6QixFQUE4QjtBQUM1QkosTUFBQUEsTUFBTSxDQUFDSyxTQUFQLENBQWlCQyxHQUFqQixDQUFxQixZQUFyQjtBQUNELEtBRkQsTUFFTztBQUNMTixNQUFBQSxNQUFNLENBQUNLLFNBQVAsQ0FBaUJFLE1BQWpCLENBQXdCLFlBQXhCO0FBQ0Q7O0FBQ0RKLElBQUFBLE1BQU0sQ0FBQ0ssZ0JBQVAsQ0FBd0IsUUFBeEIsRUFBa0MsWUFBTTtBQUN0QyxVQUFJTCxNQUFNLENBQUNDLFdBQVAsR0FBcUIsR0FBekIsRUFBOEI7QUFDNUJKLFFBQUFBLE1BQU0sQ0FBQ0ssU0FBUCxDQUFpQkMsR0FBakIsQ0FBcUIsWUFBckI7QUFDRCxPQUZELE1BRU87QUFDTE4sUUFBQUEsTUFBTSxDQUFDSyxTQUFQLENBQWlCRSxNQUFqQixDQUF3QixZQUF4QjtBQUNEO0FBQ0YsS0FORDtBQU9ELEdBZkQsRUFlRyxDQUFDWCxTQUFELENBZkg7QUFnQkEsc0JBQ0UsK0RBQUMsdURBQUQ7QUFBQSw0QkFDRSwrREFBQyxpRUFBRDtBQUFRLFFBQUUsRUFBRUEsU0FBWjtBQUF1QixRQUFFLEVBQUVFLE9BQTNCO0FBQW9DLFdBQUssRUFBQztBQUExQztBQUFBO0FBQUE7QUFBQTtBQUFBLGFBREYsZUFFRSwrREFBQyxnRUFBRDtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBRkYsZUFHRSwrREFBQywrREFBRDtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBSEYsZUFJRSwrREFBQyxxRUFBRDtBQUFVLFdBQUssRUFBQztBQUFoQjtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBSkYsZUFPRSwrREFBQyw4REFBRDtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBUEYsZUFRRSwrREFBQyw4RUFBRDtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBUkYsZUFTRSwrREFBQyxtRUFBRDtBQUFTLFdBQUssRUFBQztBQUFmO0FBQUE7QUFBQTtBQUFBO0FBQUEsYUFURixlQVVFLCtEQUFDLGlGQUFEO0FBQUE7QUFBQTtBQUFBO0FBQUEsYUFWRixlQVdFLCtEQUFDLGlFQUFEO0FBQUE7QUFBQTtBQUFBO0FBQUEsYUFYRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsV0FERjtBQWVELENBbkNEOztHQUFNSDs7S0FBQUE7QUFxQ04sK0RBQWVBLEtBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL3BhZ2VzL2Fib3V0L2luZGV4LmpzeD8yOTk1Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IE5hdmJhciBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9OYXZiYXIvbmF2YmFyXCI7XHJcbmltcG9ydCBTZXJ2aWNlcyBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9TZXJ2aWNlcy9zZXJ2aWNlc1wiO1xyXG5pbXBvcnQgVmlkZW9XaXRoVGVzdGltb25pYWxzIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL1ZpZGVvLXdpdGgtdGVzdGltb25pYWxzL3ZpZGVvLXdpdGgtdGVzdGltb25pYWxzXCI7XHJcbmltcG9ydCBTa2lsbHNDaXJjbGUgZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvU2tpbGxzLWNpcmNsZS9za2lsbHMtY2lyY2xlXCI7XHJcbmltcG9ydCBDbGllbnRzIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL0NsaWVudHMvY2xpZW50c1wiO1xyXG5pbXBvcnQgQ2FsbFRvQWN0aW9uIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL0NhbGwtdG8tYWN0aW9uL2NhbGwtdG8tYWN0aW9uXCI7XHJcbmltcG9ydCBGb290ZXIgZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvRm9vdGVyL2Zvb3RlclwiO1xyXG5pbXBvcnQgUGFnZXNIZWFkZXIgZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvUGFnZXMtaGVhZGVyXCI7XHJcbmltcG9ydCBBYm91dEludHJvIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL0Fib3V0LWludHJvXCI7XHJcbmltcG9ydCBMaWdodFRoZW1lIGZyb20gXCIuLi8uLi9sYXlvdXRzL0xpZ2h0XCI7XHJcbmltcG9ydCBUZWFtIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL1RlYW0vdGVhbVwiO1xyXG5pbXBvcnQgTWluaW1hbEFyZWEgZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvTWluaW1hbC1BcmVhL21pbmltYWwtYXJlYVwiO1xyXG5cclxuY29uc3QgQWJvdXQgPSAoKSA9PiB7XHJcbiAgY29uc3QgbmF2YmFyUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xyXG4gIGNvbnN0IGxvZ29SZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XHJcblxyXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICB2YXIgbmF2YmFyID0gbmF2YmFyUmVmLmN1cnJlbnQsXHJcbiAgICAgIGxvZ28gPSBsb2dvUmVmLmN1cnJlbnQ7XHJcbiAgICBpZiAod2luZG93LnBhZ2VZT2Zmc2V0ID4gMzAwKSB7XHJcbiAgICAgIG5hdmJhci5jbGFzc0xpc3QuYWRkKFwibmF2LXNjcm9sbFwiKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG5hdmJhci5jbGFzc0xpc3QucmVtb3ZlKFwibmF2LXNjcm9sbFwiKTtcclxuICAgIH1cclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsICgpID0+IHtcclxuICAgICAgaWYgKHdpbmRvdy5wYWdlWU9mZnNldCA+IDMwMCkge1xyXG4gICAgICAgIG5hdmJhci5jbGFzc0xpc3QuYWRkKFwibmF2LXNjcm9sbFwiKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBuYXZiYXIuY2xhc3NMaXN0LnJlbW92ZShcIm5hdi1zY3JvbGxcIik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH0sIFtuYXZiYXJSZWZdKTtcclxuICByZXR1cm4gKFxyXG4gICAgPExpZ2h0VGhlbWU+XHJcbiAgICAgIDxOYXZiYXIgbnI9e25hdmJhclJlZn0gbHI9e2xvZ29SZWZ9IHRoZW1lPVwidGhlbWVMXCIgLz5cclxuICAgICAgPFBhZ2VzSGVhZGVyIC8+XHJcbiAgICAgIDxBYm91dEludHJvIC8+XHJcbiAgICAgIDxTZXJ2aWNlcyBzdHlsZT1cIjRpdGVtXCIgLz5cclxuICAgICAgey8qIDxWaWRlb1dpdGhUZXN0aW1vbmlhbHMgLz4gKi99XHJcbiAgICAgIHsvKiA8U2tpbGxzQ2lyY2xlIGZyb209XCJhYm91dFBhZ2VcIiAvPiAqL31cclxuICAgICAgPFRlYW0gLz5cclxuICAgICAgPE1pbmltYWxBcmVhIC8+XHJcbiAgICAgIDxDbGllbnRzIHRoZW1lPVwibGlnaHRcIiAvPlxyXG4gICAgICA8Q2FsbFRvQWN0aW9uIC8+XHJcbiAgICAgIDxGb290ZXIgLz5cclxuICAgIDwvTGlnaHRUaGVtZT5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgQWJvdXQ7XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIk5hdmJhciIsIlNlcnZpY2VzIiwiVmlkZW9XaXRoVGVzdGltb25pYWxzIiwiU2tpbGxzQ2lyY2xlIiwiQ2xpZW50cyIsIkNhbGxUb0FjdGlvbiIsIkZvb3RlciIsIlBhZ2VzSGVhZGVyIiwiQWJvdXRJbnRybyIsIkxpZ2h0VGhlbWUiLCJUZWFtIiwiTWluaW1hbEFyZWEiLCJBYm91dCIsIm5hdmJhclJlZiIsInVzZVJlZiIsImxvZ29SZWYiLCJ1c2VFZmZlY3QiLCJuYXZiYXIiLCJjdXJyZW50IiwibG9nbyIsIndpbmRvdyIsInBhZ2VZT2Zmc2V0IiwiY2xhc3NMaXN0IiwiYWRkIiwicmVtb3ZlIiwiYWRkRXZlbnRMaXN0ZW5lciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/pages/about/index.jsx\n"); + +/***/ }), + +/***/ "./node_modules/classnames/index.js": +/*!******************************************!*\ + !*** ./node_modules/classnames/index.js ***! + \******************************************/ +/***/ (function(module, exports) { + +eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif ( true && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (true) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {\n\t\t\treturn classNames;\n\t\t}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else {}\n}());\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvY2xhc3NuYW1lcy9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSxnQkFBZ0I7O0FBRWhCO0FBQ0E7O0FBRUEsa0JBQWtCLHNCQUFzQjtBQUN4QztBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSxLQUFLLEtBQTZCO0FBQ2xDO0FBQ0E7QUFDQSxHQUFHLFNBQVMsSUFBNEU7QUFDeEY7QUFDQSxFQUFFLGlDQUFxQixFQUFFLG1DQUFFO0FBQzNCO0FBQ0EsR0FBRztBQUFBLGtHQUFDO0FBQ0osR0FBRyxLQUFLLEVBRU47QUFDRixDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9jbGFzc25hbWVzL2luZGV4LmpzPzdkNTAiXSwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gIENvcHlyaWdodCAoYykgMjAxNyBKZWQgV2F0c29uLlxuICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UgKE1JVCksIHNlZVxuICBodHRwOi8vamVkd2F0c29uLmdpdGh1Yi5pby9jbGFzc25hbWVzXG4qL1xuLyogZ2xvYmFsIGRlZmluZSAqL1xuXG4oZnVuY3Rpb24gKCkge1xuXHQndXNlIHN0cmljdCc7XG5cblx0dmFyIGhhc093biA9IHt9Lmhhc093blByb3BlcnR5O1xuXG5cdGZ1bmN0aW9uIGNsYXNzTmFtZXMgKCkge1xuXHRcdHZhciBjbGFzc2VzID0gW107XG5cblx0XHRmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuXHRcdFx0dmFyIGFyZyA9IGFyZ3VtZW50c1tpXTtcblx0XHRcdGlmICghYXJnKSBjb250aW51ZTtcblxuXHRcdFx0dmFyIGFyZ1R5cGUgPSB0eXBlb2YgYXJnO1xuXG5cdFx0XHRpZiAoYXJnVHlwZSA9PT0gJ3N0cmluZycgfHwgYXJnVHlwZSA9PT0gJ251bWJlcicpIHtcblx0XHRcdFx0Y2xhc3Nlcy5wdXNoKGFyZyk7XG5cdFx0XHR9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoYXJnKSAmJiBhcmcubGVuZ3RoKSB7XG5cdFx0XHRcdHZhciBpbm5lciA9IGNsYXNzTmFtZXMuYXBwbHkobnVsbCwgYXJnKTtcblx0XHRcdFx0aWYgKGlubmVyKSB7XG5cdFx0XHRcdFx0Y2xhc3Nlcy5wdXNoKGlubmVyKTtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIGlmIChhcmdUeXBlID09PSAnb2JqZWN0Jykge1xuXHRcdFx0XHRmb3IgKHZhciBrZXkgaW4gYXJnKSB7XG5cdFx0XHRcdFx0aWYgKGhhc093bi5jYWxsKGFyZywga2V5KSAmJiBhcmdba2V5XSkge1xuXHRcdFx0XHRcdFx0Y2xhc3Nlcy5wdXNoKGtleSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGNsYXNzZXMuam9pbignICcpO1xuXHR9XG5cblx0aWYgKHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnICYmIG1vZHVsZS5leHBvcnRzKSB7XG5cdFx0Y2xhc3NOYW1lcy5kZWZhdWx0ID0gY2xhc3NOYW1lcztcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGNsYXNzTmFtZXM7XG5cdH0gZWxzZSBpZiAodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgZGVmaW5lLmFtZCA9PT0gJ29iamVjdCcgJiYgZGVmaW5lLmFtZCkge1xuXHRcdC8vIHJlZ2lzdGVyIGFzICdjbGFzc25hbWVzJywgY29uc2lzdGVudCB3aXRoIG5wbSBwYWNrYWdlIG5hbWVcblx0XHRkZWZpbmUoJ2NsYXNzbmFtZXMnLCBbXSwgZnVuY3Rpb24gKCkge1xuXHRcdFx0cmV0dXJuIGNsYXNzTmFtZXM7XG5cdFx0fSk7XG5cdH0gZWxzZSB7XG5cdFx0d2luZG93LmNsYXNzTmFtZXMgPSBjbGFzc05hbWVzO1xuXHR9XG59KCkpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/classnames/index.js\n"); + +/***/ }), + +/***/ "./node_modules/enquire.js/src/MediaQuery.js": +/*!***************************************************!*\ + !*** ./node_modules/enquire.js/src/MediaQuery.js ***! + \***************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var QueryHandler = __webpack_require__(/*! ./QueryHandler */ \"./node_modules/enquire.js/src/QueryHandler.js\");\nvar each = (__webpack_require__(/*! ./Util */ \"./node_modules/enquire.js/src/Util.js\").each);\n\n/**\n * Represents a single media query, manages it's state and registered handlers for this query\n *\n * @constructor\n * @param {string} query the media query string\n * @param {boolean} [isUnconditional=false] whether the media query should run regardless of whether the conditions are met. Primarily for helping older browsers deal with mobile-first design\n */\nfunction MediaQuery(query, isUnconditional) {\n this.query = query;\n this.isUnconditional = isUnconditional;\n this.handlers = [];\n this.mql = window.matchMedia(query);\n\n var self = this;\n this.listener = function(mql) {\n // Chrome passes an MediaQueryListEvent object, while other browsers pass MediaQueryList directly\n self.mql = mql.currentTarget || mql;\n self.assess();\n };\n this.mql.addListener(this.listener);\n}\n\nMediaQuery.prototype = {\n\n constuctor : MediaQuery,\n\n /**\n * add a handler for this query, triggering if already active\n *\n * @param {object} handler\n * @param {function} handler.match callback for when query is activated\n * @param {function} [handler.unmatch] callback for when query is deactivated\n * @param {function} [handler.setup] callback for immediate execution when a query handler is registered\n * @param {boolean} [handler.deferSetup=false] should the setup callback be deferred until the first time the handler is matched?\n */\n addHandler : function(handler) {\n var qh = new QueryHandler(handler);\n this.handlers.push(qh);\n\n this.matches() && qh.on();\n },\n\n /**\n * removes the given handler from the collection, and calls it's destroy methods\n *\n * @param {object || function} handler the handler to remove\n */\n removeHandler : function(handler) {\n var handlers = this.handlers;\n each(handlers, function(h, i) {\n if(h.equals(handler)) {\n h.destroy();\n return !handlers.splice(i,1); //remove from array and exit each early\n }\n });\n },\n\n /**\n * Determine whether the media query should be considered a match\n *\n * @return {Boolean} true if media query can be considered a match, false otherwise\n */\n matches : function() {\n return this.mql.matches || this.isUnconditional;\n },\n\n /**\n * Clears all handlers and unbinds events\n */\n clear : function() {\n each(this.handlers, function(handler) {\n handler.destroy();\n });\n this.mql.removeListener(this.listener);\n this.handlers.length = 0; //clear array\n },\n\n /*\n * Assesses the query, turning on all handlers if it matches, turning them off if it doesn't match\n */\n assess : function() {\n var action = this.matches() ? 'on' : 'off';\n\n each(this.handlers, function(handler) {\n handler[action]();\n });\n }\n};\n\nmodule.exports = MediaQuery;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvZW5xdWlyZS5qcy9zcmMvTWVkaWFRdWVyeS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQSxtQkFBbUIsbUJBQU8sQ0FBQyxxRUFBZ0I7QUFDM0MsV0FBVyxpRkFBc0I7O0FBRWpDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsU0FBUztBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLFFBQVE7QUFDdkIsZUFBZSxVQUFVO0FBQ3pCLGVBQWUsVUFBVTtBQUN6QixlQUFlLFVBQVU7QUFDekIsZUFBZSxTQUFTO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQSxlQUFlLG9CQUFvQjtBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBOEM7QUFDOUM7QUFDQSxTQUFTO0FBQ1QsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsU0FBUztBQUN6QjtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBLGtDQUFrQztBQUNsQyxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9lbnF1aXJlLmpzL3NyYy9NZWRpYVF1ZXJ5LmpzPzM3NzQiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIFF1ZXJ5SGFuZGxlciA9IHJlcXVpcmUoJy4vUXVlcnlIYW5kbGVyJyk7XG52YXIgZWFjaCA9IHJlcXVpcmUoJy4vVXRpbCcpLmVhY2g7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHNpbmdsZSBtZWRpYSBxdWVyeSwgbWFuYWdlcyBpdCdzIHN0YXRlIGFuZCByZWdpc3RlcmVkIGhhbmRsZXJzIGZvciB0aGlzIHF1ZXJ5XG4gKlxuICogQGNvbnN0cnVjdG9yXG4gKiBAcGFyYW0ge3N0cmluZ30gcXVlcnkgdGhlIG1lZGlhIHF1ZXJ5IHN0cmluZ1xuICogQHBhcmFtIHtib29sZWFufSBbaXNVbmNvbmRpdGlvbmFsPWZhbHNlXSB3aGV0aGVyIHRoZSBtZWRpYSBxdWVyeSBzaG91bGQgcnVuIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUgY29uZGl0aW9ucyBhcmUgbWV0LiBQcmltYXJpbHkgZm9yIGhlbHBpbmcgb2xkZXIgYnJvd3NlcnMgZGVhbCB3aXRoIG1vYmlsZS1maXJzdCBkZXNpZ25cbiAqL1xuZnVuY3Rpb24gTWVkaWFRdWVyeShxdWVyeSwgaXNVbmNvbmRpdGlvbmFsKSB7XG4gICAgdGhpcy5xdWVyeSA9IHF1ZXJ5O1xuICAgIHRoaXMuaXNVbmNvbmRpdGlvbmFsID0gaXNVbmNvbmRpdGlvbmFsO1xuICAgIHRoaXMuaGFuZGxlcnMgPSBbXTtcbiAgICB0aGlzLm1xbCA9IHdpbmRvdy5tYXRjaE1lZGlhKHF1ZXJ5KTtcblxuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB0aGlzLmxpc3RlbmVyID0gZnVuY3Rpb24obXFsKSB7XG4gICAgICAgIC8vIENocm9tZSBwYXNzZXMgYW4gTWVkaWFRdWVyeUxpc3RFdmVudCBvYmplY3QsIHdoaWxlIG90aGVyIGJyb3dzZXJzIHBhc3MgTWVkaWFRdWVyeUxpc3QgZGlyZWN0bHlcbiAgICAgICAgc2VsZi5tcWwgPSBtcWwuY3VycmVudFRhcmdldCB8fCBtcWw7XG4gICAgICAgIHNlbGYuYXNzZXNzKCk7XG4gICAgfTtcbiAgICB0aGlzLm1xbC5hZGRMaXN0ZW5lcih0aGlzLmxpc3RlbmVyKTtcbn1cblxuTWVkaWFRdWVyeS5wcm90b3R5cGUgPSB7XG5cbiAgICBjb25zdHVjdG9yIDogTWVkaWFRdWVyeSxcblxuICAgIC8qKlxuICAgICAqIGFkZCBhIGhhbmRsZXIgZm9yIHRoaXMgcXVlcnksIHRyaWdnZXJpbmcgaWYgYWxyZWFkeSBhY3RpdmVcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBoYW5kbGVyXG4gICAgICogQHBhcmFtIHtmdW5jdGlvbn0gaGFuZGxlci5tYXRjaCBjYWxsYmFjayBmb3Igd2hlbiBxdWVyeSBpcyBhY3RpdmF0ZWRcbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBbaGFuZGxlci51bm1hdGNoXSBjYWxsYmFjayBmb3Igd2hlbiBxdWVyeSBpcyBkZWFjdGl2YXRlZFxuICAgICAqIEBwYXJhbSB7ZnVuY3Rpb259IFtoYW5kbGVyLnNldHVwXSBjYWxsYmFjayBmb3IgaW1tZWRpYXRlIGV4ZWN1dGlvbiB3aGVuIGEgcXVlcnkgaGFuZGxlciBpcyByZWdpc3RlcmVkXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbaGFuZGxlci5kZWZlclNldHVwPWZhbHNlXSBzaG91bGQgdGhlIHNldHVwIGNhbGxiYWNrIGJlIGRlZmVycmVkIHVudGlsIHRoZSBmaXJzdCB0aW1lIHRoZSBoYW5kbGVyIGlzIG1hdGNoZWQ/XG4gICAgICovXG4gICAgYWRkSGFuZGxlciA6IGZ1bmN0aW9uKGhhbmRsZXIpIHtcbiAgICAgICAgdmFyIHFoID0gbmV3IFF1ZXJ5SGFuZGxlcihoYW5kbGVyKTtcbiAgICAgICAgdGhpcy5oYW5kbGVycy5wdXNoKHFoKTtcblxuICAgICAgICB0aGlzLm1hdGNoZXMoKSAmJiBxaC5vbigpO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiByZW1vdmVzIHRoZSBnaXZlbiBoYW5kbGVyIGZyb20gdGhlIGNvbGxlY3Rpb24sIGFuZCBjYWxscyBpdCdzIGRlc3Ryb3kgbWV0aG9kc1xuICAgICAqXG4gICAgICogQHBhcmFtIHtvYmplY3QgfHwgZnVuY3Rpb259IGhhbmRsZXIgdGhlIGhhbmRsZXIgdG8gcmVtb3ZlXG4gICAgICovXG4gICAgcmVtb3ZlSGFuZGxlciA6IGZ1bmN0aW9uKGhhbmRsZXIpIHtcbiAgICAgICAgdmFyIGhhbmRsZXJzID0gdGhpcy5oYW5kbGVycztcbiAgICAgICAgZWFjaChoYW5kbGVycywgZnVuY3Rpb24oaCwgaSkge1xuICAgICAgICAgICAgaWYoaC5lcXVhbHMoaGFuZGxlcikpIHtcbiAgICAgICAgICAgICAgICBoLmRlc3Ryb3koKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gIWhhbmRsZXJzLnNwbGljZShpLDEpOyAvL3JlbW92ZSBmcm9tIGFycmF5IGFuZCBleGl0IGVhY2ggZWFybHlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIERldGVybWluZSB3aGV0aGVyIHRoZSBtZWRpYSBxdWVyeSBzaG91bGQgYmUgY29uc2lkZXJlZCBhIG1hdGNoXG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHtCb29sZWFufSB0cnVlIGlmIG1lZGlhIHF1ZXJ5IGNhbiBiZSBjb25zaWRlcmVkIGEgbWF0Y2gsIGZhbHNlIG90aGVyd2lzZVxuICAgICAqL1xuICAgIG1hdGNoZXMgOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubXFsLm1hdGNoZXMgfHwgdGhpcy5pc1VuY29uZGl0aW9uYWw7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIENsZWFycyBhbGwgaGFuZGxlcnMgYW5kIHVuYmluZHMgZXZlbnRzXG4gICAgICovXG4gICAgY2xlYXIgOiBmdW5jdGlvbigpIHtcbiAgICAgICAgZWFjaCh0aGlzLmhhbmRsZXJzLCBmdW5jdGlvbihoYW5kbGVyKSB7XG4gICAgICAgICAgICBoYW5kbGVyLmRlc3Ryb3koKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubXFsLnJlbW92ZUxpc3RlbmVyKHRoaXMubGlzdGVuZXIpO1xuICAgICAgICB0aGlzLmhhbmRsZXJzLmxlbmd0aCA9IDA7IC8vY2xlYXIgYXJyYXlcbiAgICB9LFxuXG4gICAgLypcbiAgICAgICAgKiBBc3Nlc3NlcyB0aGUgcXVlcnksIHR1cm5pbmcgb24gYWxsIGhhbmRsZXJzIGlmIGl0IG1hdGNoZXMsIHR1cm5pbmcgdGhlbSBvZmYgaWYgaXQgZG9lc24ndCBtYXRjaFxuICAgICAgICAqL1xuICAgIGFzc2VzcyA6IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgYWN0aW9uID0gdGhpcy5tYXRjaGVzKCkgPyAnb24nIDogJ29mZic7XG5cbiAgICAgICAgZWFjaCh0aGlzLmhhbmRsZXJzLCBmdW5jdGlvbihoYW5kbGVyKSB7XG4gICAgICAgICAgICBoYW5kbGVyW2FjdGlvbl0oKTtcbiAgICAgICAgfSk7XG4gICAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBNZWRpYVF1ZXJ5O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/enquire.js/src/MediaQuery.js\n"); + +/***/ }), + +/***/ "./node_modules/enquire.js/src/MediaQueryDispatch.js": +/*!***********************************************************!*\ + !*** ./node_modules/enquire.js/src/MediaQueryDispatch.js ***! + \***********************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var MediaQuery = __webpack_require__(/*! ./MediaQuery */ \"./node_modules/enquire.js/src/MediaQuery.js\");\nvar Util = __webpack_require__(/*! ./Util */ \"./node_modules/enquire.js/src/Util.js\");\nvar each = Util.each;\nvar isFunction = Util.isFunction;\nvar isArray = Util.isArray;\n\n/**\n * Allows for registration of query handlers.\n * Manages the query handler's state and is responsible for wiring up browser events\n *\n * @constructor\n */\nfunction MediaQueryDispatch () {\n if(!window.matchMedia) {\n throw new Error('matchMedia not present, legacy browsers require a polyfill');\n }\n\n this.queries = {};\n this.browserIsIncapable = !window.matchMedia('only all').matches;\n}\n\nMediaQueryDispatch.prototype = {\n\n constructor : MediaQueryDispatch,\n\n /**\n * Registers a handler for the given media query\n *\n * @param {string} q the media query\n * @param {object || Array || Function} options either a single query handler object, a function, or an array of query handlers\n * @param {function} options.match fired when query matched\n * @param {function} [options.unmatch] fired when a query is no longer matched\n * @param {function} [options.setup] fired when handler first triggered\n * @param {boolean} [options.deferSetup=false] whether setup should be run immediately or deferred until query is first matched\n * @param {boolean} [shouldDegrade=false] whether this particular media query should always run on incapable browsers\n */\n register : function(q, options, shouldDegrade) {\n var queries = this.queries,\n isUnconditional = shouldDegrade && this.browserIsIncapable;\n\n if(!queries[q]) {\n queries[q] = new MediaQuery(q, isUnconditional);\n }\n\n //normalise to object in an array\n if(isFunction(options)) {\n options = { match : options };\n }\n if(!isArray(options)) {\n options = [options];\n }\n each(options, function(handler) {\n if (isFunction(handler)) {\n handler = { match : handler };\n }\n queries[q].addHandler(handler);\n });\n\n return this;\n },\n\n /**\n * unregisters a query and all it's handlers, or a specific handler for a query\n *\n * @param {string} q the media query to target\n * @param {object || function} [handler] specific handler to unregister\n */\n unregister : function(q, handler) {\n var query = this.queries[q];\n\n if(query) {\n if(handler) {\n query.removeHandler(handler);\n }\n else {\n query.clear();\n delete this.queries[q];\n }\n }\n\n return this;\n }\n};\n\nmodule.exports = MediaQueryDispatch;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvZW5xdWlyZS5qcy9zcmMvTWVkaWFRdWVyeURpc3BhdGNoLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBLGlCQUFpQixtQkFBTyxDQUFDLGlFQUFjO0FBQ3ZDLFdBQVcsbUJBQU8sQ0FBQyxxREFBUTtBQUMzQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsUUFBUTtBQUN2QixlQUFlLDZCQUE2QjtBQUM1QyxlQUFlLFVBQVU7QUFDekIsZUFBZSxVQUFVO0FBQ3pCLGVBQWUsVUFBVTtBQUN6QixlQUFlLFNBQVM7QUFDeEIsZUFBZSxTQUFTO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0Esd0JBQXdCO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QjtBQUM1QjtBQUNBO0FBQ0EsU0FBUzs7QUFFVDtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0EsZUFBZSxRQUFRO0FBQ3ZCLGVBQWUsb0JBQW9CO0FBQ25DO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9lbnF1aXJlLmpzL3NyYy9NZWRpYVF1ZXJ5RGlzcGF0Y2guanM/NDE5OSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgTWVkaWFRdWVyeSA9IHJlcXVpcmUoJy4vTWVkaWFRdWVyeScpO1xudmFyIFV0aWwgPSByZXF1aXJlKCcuL1V0aWwnKTtcbnZhciBlYWNoID0gVXRpbC5lYWNoO1xudmFyIGlzRnVuY3Rpb24gPSBVdGlsLmlzRnVuY3Rpb247XG52YXIgaXNBcnJheSA9IFV0aWwuaXNBcnJheTtcblxuLyoqXG4gKiBBbGxvd3MgZm9yIHJlZ2lzdHJhdGlvbiBvZiBxdWVyeSBoYW5kbGVycy5cbiAqIE1hbmFnZXMgdGhlIHF1ZXJ5IGhhbmRsZXIncyBzdGF0ZSBhbmQgaXMgcmVzcG9uc2libGUgZm9yIHdpcmluZyB1cCBicm93c2VyIGV2ZW50c1xuICpcbiAqIEBjb25zdHJ1Y3RvclxuICovXG5mdW5jdGlvbiBNZWRpYVF1ZXJ5RGlzcGF0Y2ggKCkge1xuICAgIGlmKCF3aW5kb3cubWF0Y2hNZWRpYSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ21hdGNoTWVkaWEgbm90IHByZXNlbnQsIGxlZ2FjeSBicm93c2VycyByZXF1aXJlIGEgcG9seWZpbGwnKTtcbiAgICB9XG5cbiAgICB0aGlzLnF1ZXJpZXMgPSB7fTtcbiAgICB0aGlzLmJyb3dzZXJJc0luY2FwYWJsZSA9ICF3aW5kb3cubWF0Y2hNZWRpYSgnb25seSBhbGwnKS5tYXRjaGVzO1xufVxuXG5NZWRpYVF1ZXJ5RGlzcGF0Y2gucHJvdG90eXBlID0ge1xuXG4gICAgY29uc3RydWN0b3IgOiBNZWRpYVF1ZXJ5RGlzcGF0Y2gsXG5cbiAgICAvKipcbiAgICAgKiBSZWdpc3RlcnMgYSBoYW5kbGVyIGZvciB0aGUgZ2l2ZW4gbWVkaWEgcXVlcnlcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBxIHRoZSBtZWRpYSBxdWVyeVxuICAgICAqIEBwYXJhbSB7b2JqZWN0IHx8IEFycmF5IHx8IEZ1bmN0aW9ufSBvcHRpb25zIGVpdGhlciBhIHNpbmdsZSBxdWVyeSBoYW5kbGVyIG9iamVjdCwgYSBmdW5jdGlvbiwgb3IgYW4gYXJyYXkgb2YgcXVlcnkgaGFuZGxlcnNcbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBvcHRpb25zLm1hdGNoIGZpcmVkIHdoZW4gcXVlcnkgbWF0Y2hlZFxuICAgICAqIEBwYXJhbSB7ZnVuY3Rpb259IFtvcHRpb25zLnVubWF0Y2hdIGZpcmVkIHdoZW4gYSBxdWVyeSBpcyBubyBsb25nZXIgbWF0Y2hlZFxuICAgICAqIEBwYXJhbSB7ZnVuY3Rpb259IFtvcHRpb25zLnNldHVwXSBmaXJlZCB3aGVuIGhhbmRsZXIgZmlyc3QgdHJpZ2dlcmVkXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5kZWZlclNldHVwPWZhbHNlXSB3aGV0aGVyIHNldHVwIHNob3VsZCBiZSBydW4gaW1tZWRpYXRlbHkgb3IgZGVmZXJyZWQgdW50aWwgcXVlcnkgaXMgZmlyc3QgbWF0Y2hlZFxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW3Nob3VsZERlZ3JhZGU9ZmFsc2VdIHdoZXRoZXIgdGhpcyBwYXJ0aWN1bGFyIG1lZGlhIHF1ZXJ5IHNob3VsZCBhbHdheXMgcnVuIG9uIGluY2FwYWJsZSBicm93c2Vyc1xuICAgICAqL1xuICAgIHJlZ2lzdGVyIDogZnVuY3Rpb24ocSwgb3B0aW9ucywgc2hvdWxkRGVncmFkZSkge1xuICAgICAgICB2YXIgcXVlcmllcyAgICAgICAgID0gdGhpcy5xdWVyaWVzLFxuICAgICAgICAgICAgaXNVbmNvbmRpdGlvbmFsID0gc2hvdWxkRGVncmFkZSAmJiB0aGlzLmJyb3dzZXJJc0luY2FwYWJsZTtcblxuICAgICAgICBpZighcXVlcmllc1txXSkge1xuICAgICAgICAgICAgcXVlcmllc1txXSA9IG5ldyBNZWRpYVF1ZXJ5KHEsIGlzVW5jb25kaXRpb25hbCk7XG4gICAgICAgIH1cblxuICAgICAgICAvL25vcm1hbGlzZSB0byBvYmplY3QgaW4gYW4gYXJyYXlcbiAgICAgICAgaWYoaXNGdW5jdGlvbihvcHRpb25zKSkge1xuICAgICAgICAgICAgb3B0aW9ucyA9IHsgbWF0Y2ggOiBvcHRpb25zIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYoIWlzQXJyYXkob3B0aW9ucykpIHtcbiAgICAgICAgICAgIG9wdGlvbnMgPSBbb3B0aW9uc107XG4gICAgICAgIH1cbiAgICAgICAgZWFjaChvcHRpb25zLCBmdW5jdGlvbihoYW5kbGVyKSB7XG4gICAgICAgICAgICBpZiAoaXNGdW5jdGlvbihoYW5kbGVyKSkge1xuICAgICAgICAgICAgICAgIGhhbmRsZXIgPSB7IG1hdGNoIDogaGFuZGxlciB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcXVlcmllc1txXS5hZGRIYW5kbGVyKGhhbmRsZXIpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogdW5yZWdpc3RlcnMgYSBxdWVyeSBhbmQgYWxsIGl0J3MgaGFuZGxlcnMsIG9yIGEgc3BlY2lmaWMgaGFuZGxlciBmb3IgYSBxdWVyeVxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHEgdGhlIG1lZGlhIHF1ZXJ5IHRvIHRhcmdldFxuICAgICAqIEBwYXJhbSB7b2JqZWN0IHx8IGZ1bmN0aW9ufSBbaGFuZGxlcl0gc3BlY2lmaWMgaGFuZGxlciB0byB1bnJlZ2lzdGVyXG4gICAgICovXG4gICAgdW5yZWdpc3RlciA6IGZ1bmN0aW9uKHEsIGhhbmRsZXIpIHtcbiAgICAgICAgdmFyIHF1ZXJ5ID0gdGhpcy5xdWVyaWVzW3FdO1xuXG4gICAgICAgIGlmKHF1ZXJ5KSB7XG4gICAgICAgICAgICBpZihoYW5kbGVyKSB7XG4gICAgICAgICAgICAgICAgcXVlcnkucmVtb3ZlSGFuZGxlcihoYW5kbGVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHF1ZXJ5LmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMucXVlcmllc1txXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gTWVkaWFRdWVyeURpc3BhdGNoO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/enquire.js/src/MediaQueryDispatch.js\n"); + +/***/ }), + +/***/ "./node_modules/enquire.js/src/QueryHandler.js": +/*!*****************************************************!*\ + !*** ./node_modules/enquire.js/src/QueryHandler.js ***! + \*****************************************************/ +/***/ (function(module) { + +eval("/**\n * Delegate to handle a media query being matched and unmatched.\n *\n * @param {object} options\n * @param {function} options.match callback for when the media query is matched\n * @param {function} [options.unmatch] callback for when the media query is unmatched\n * @param {function} [options.setup] one-time callback triggered the first time a query is matched\n * @param {boolean} [options.deferSetup=false] should the setup callback be run immediately, rather than first time query is matched?\n * @constructor\n */\nfunction QueryHandler(options) {\n this.options = options;\n !options.deferSetup && this.setup();\n}\n\nQueryHandler.prototype = {\n\n constructor : QueryHandler,\n\n /**\n * coordinates setup of the handler\n *\n * @function\n */\n setup : function() {\n if(this.options.setup) {\n this.options.setup();\n }\n this.initialised = true;\n },\n\n /**\n * coordinates setup and triggering of the handler\n *\n * @function\n */\n on : function() {\n !this.initialised && this.setup();\n this.options.match && this.options.match();\n },\n\n /**\n * coordinates the unmatch event for the handler\n *\n * @function\n */\n off : function() {\n this.options.unmatch && this.options.unmatch();\n },\n\n /**\n * called when a handler is to be destroyed.\n * delegates to the destroy or unmatch callbacks, depending on availability.\n *\n * @function\n */\n destroy : function() {\n this.options.destroy ? this.options.destroy() : this.off();\n },\n\n /**\n * determines equality by reference.\n * if object is supplied compare options, if function, compare match callback\n *\n * @function\n * @param {object || function} [target] the target for comparison\n */\n equals : function(target) {\n return this.options === target || this.options.match === target;\n }\n\n};\n\nmodule.exports = QueryHandler;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvZW5xdWlyZS5qcy9zcmMvUXVlcnlIYW5kbGVyLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLFVBQVU7QUFDckIsV0FBVyxVQUFVO0FBQ3JCLFdBQVcsVUFBVTtBQUNyQixXQUFXLFNBQVM7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsb0JBQW9CO0FBQ25DO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9lbnF1aXJlLmpzL3NyYy9RdWVyeUhhbmRsZXIuanM/NjQwMyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERlbGVnYXRlIHRvIGhhbmRsZSBhIG1lZGlhIHF1ZXJ5IGJlaW5nIG1hdGNoZWQgYW5kIHVubWF0Y2hlZC5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gb3B0aW9uc1xuICogQHBhcmFtIHtmdW5jdGlvbn0gb3B0aW9ucy5tYXRjaCBjYWxsYmFjayBmb3Igd2hlbiB0aGUgbWVkaWEgcXVlcnkgaXMgbWF0Y2hlZFxuICogQHBhcmFtIHtmdW5jdGlvbn0gW29wdGlvbnMudW5tYXRjaF0gY2FsbGJhY2sgZm9yIHdoZW4gdGhlIG1lZGlhIHF1ZXJ5IGlzIHVubWF0Y2hlZFxuICogQHBhcmFtIHtmdW5jdGlvbn0gW29wdGlvbnMuc2V0dXBdIG9uZS10aW1lIGNhbGxiYWNrIHRyaWdnZXJlZCB0aGUgZmlyc3QgdGltZSBhIHF1ZXJ5IGlzIG1hdGNoZWRcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuZGVmZXJTZXR1cD1mYWxzZV0gc2hvdWxkIHRoZSBzZXR1cCBjYWxsYmFjayBiZSBydW4gaW1tZWRpYXRlbHksIHJhdGhlciB0aGFuIGZpcnN0IHRpbWUgcXVlcnkgaXMgbWF0Y2hlZD9cbiAqIEBjb25zdHJ1Y3RvclxuICovXG5mdW5jdGlvbiBRdWVyeUhhbmRsZXIob3B0aW9ucykge1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgIW9wdGlvbnMuZGVmZXJTZXR1cCAmJiB0aGlzLnNldHVwKCk7XG59XG5cblF1ZXJ5SGFuZGxlci5wcm90b3R5cGUgPSB7XG5cbiAgICBjb25zdHJ1Y3RvciA6IFF1ZXJ5SGFuZGxlcixcblxuICAgIC8qKlxuICAgICAqIGNvb3JkaW5hdGVzIHNldHVwIG9mIHRoZSBoYW5kbGVyXG4gICAgICpcbiAgICAgKiBAZnVuY3Rpb25cbiAgICAgKi9cbiAgICBzZXR1cCA6IGZ1bmN0aW9uKCkge1xuICAgICAgICBpZih0aGlzLm9wdGlvbnMuc2V0dXApIHtcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucy5zZXR1cCgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW5pdGlhbGlzZWQgPSB0cnVlO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBjb29yZGluYXRlcyBzZXR1cCBhbmQgdHJpZ2dlcmluZyBvZiB0aGUgaGFuZGxlclxuICAgICAqXG4gICAgICogQGZ1bmN0aW9uXG4gICAgICovXG4gICAgb24gOiBmdW5jdGlvbigpIHtcbiAgICAgICAgIXRoaXMuaW5pdGlhbGlzZWQgJiYgdGhpcy5zZXR1cCgpO1xuICAgICAgICB0aGlzLm9wdGlvbnMubWF0Y2ggJiYgdGhpcy5vcHRpb25zLm1hdGNoKCk7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIGNvb3JkaW5hdGVzIHRoZSB1bm1hdGNoIGV2ZW50IGZvciB0aGUgaGFuZGxlclxuICAgICAqXG4gICAgICogQGZ1bmN0aW9uXG4gICAgICovXG4gICAgb2ZmIDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHRoaXMub3B0aW9ucy51bm1hdGNoICYmIHRoaXMub3B0aW9ucy51bm1hdGNoKCk7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIGNhbGxlZCB3aGVuIGEgaGFuZGxlciBpcyB0byBiZSBkZXN0cm95ZWQuXG4gICAgICogZGVsZWdhdGVzIHRvIHRoZSBkZXN0cm95IG9yIHVubWF0Y2ggY2FsbGJhY2tzLCBkZXBlbmRpbmcgb24gYXZhaWxhYmlsaXR5LlxuICAgICAqXG4gICAgICogQGZ1bmN0aW9uXG4gICAgICovXG4gICAgZGVzdHJveSA6IGZ1bmN0aW9uKCkge1xuICAgICAgICB0aGlzLm9wdGlvbnMuZGVzdHJveSA/IHRoaXMub3B0aW9ucy5kZXN0cm95KCkgOiB0aGlzLm9mZigpO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBkZXRlcm1pbmVzIGVxdWFsaXR5IGJ5IHJlZmVyZW5jZS5cbiAgICAgKiBpZiBvYmplY3QgaXMgc3VwcGxpZWQgY29tcGFyZSBvcHRpb25zLCBpZiBmdW5jdGlvbiwgY29tcGFyZSBtYXRjaCBjYWxsYmFja1xuICAgICAqXG4gICAgICogQGZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtvYmplY3QgfHwgZnVuY3Rpb259IFt0YXJnZXRdIHRoZSB0YXJnZXQgZm9yIGNvbXBhcmlzb25cbiAgICAgKi9cbiAgICBlcXVhbHMgOiBmdW5jdGlvbih0YXJnZXQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucyA9PT0gdGFyZ2V0IHx8IHRoaXMub3B0aW9ucy5tYXRjaCA9PT0gdGFyZ2V0O1xuICAgIH1cblxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBRdWVyeUhhbmRsZXI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/enquire.js/src/QueryHandler.js\n"); + +/***/ }), + +/***/ "./node_modules/enquire.js/src/Util.js": +/*!*********************************************!*\ + !*** ./node_modules/enquire.js/src/Util.js ***! + \*********************************************/ +/***/ (function(module) { + +eval("/**\n * Helper function for iterating over a collection\n *\n * @param collection\n * @param fn\n */\nfunction each(collection, fn) {\n var i = 0,\n length = collection.length,\n cont;\n\n for(i; i < length; i++) {\n cont = fn(collection[i], i);\n if(cont === false) {\n break; //allow early exit\n }\n }\n}\n\n/**\n * Helper function for determining whether target object is an array\n *\n * @param target the object under test\n * @return {Boolean} true if array, false otherwise\n */\nfunction isArray(target) {\n return Object.prototype.toString.apply(target) === '[object Array]';\n}\n\n/**\n * Helper function for determining whether target object is a function\n *\n * @param target the object under test\n * @return {Boolean} true if function, false otherwise\n */\nfunction isFunction(target) {\n return typeof target === 'function';\n}\n\nmodule.exports = {\n isFunction : isFunction,\n isArray : isArray,\n each : each\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvZW5xdWlyZS5qcy9zcmMvVXRpbC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxXQUFXLFlBQVk7QUFDdkI7QUFDQTtBQUNBLG1CQUFtQjtBQUNuQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLFNBQVM7QUFDckI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLFNBQVM7QUFDckI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZW5xdWlyZS5qcy9zcmMvVXRpbC5qcz8wMTA1Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIGZvciBpdGVyYXRpbmcgb3ZlciBhIGNvbGxlY3Rpb25cbiAqXG4gKiBAcGFyYW0gY29sbGVjdGlvblxuICogQHBhcmFtIGZuXG4gKi9cbmZ1bmN0aW9uIGVhY2goY29sbGVjdGlvbiwgZm4pIHtcbiAgICB2YXIgaSAgICAgID0gMCxcbiAgICAgICAgbGVuZ3RoID0gY29sbGVjdGlvbi5sZW5ndGgsXG4gICAgICAgIGNvbnQ7XG5cbiAgICBmb3IoaTsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnQgPSBmbihjb2xsZWN0aW9uW2ldLCBpKTtcbiAgICAgICAgaWYoY29udCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGJyZWFrOyAvL2FsbG93IGVhcmx5IGV4aXRcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gZm9yIGRldGVybWluaW5nIHdoZXRoZXIgdGFyZ2V0IG9iamVjdCBpcyBhbiBhcnJheVxuICpcbiAqIEBwYXJhbSB0YXJnZXQgdGhlIG9iamVjdCB1bmRlciB0ZXN0XG4gKiBAcmV0dXJuIHtCb29sZWFufSB0cnVlIGlmIGFycmF5LCBmYWxzZSBvdGhlcndpc2VcbiAqL1xuZnVuY3Rpb24gaXNBcnJheSh0YXJnZXQpIHtcbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5hcHBseSh0YXJnZXQpID09PSAnW29iamVjdCBBcnJheV0nO1xufVxuXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiBmb3IgZGV0ZXJtaW5pbmcgd2hldGhlciB0YXJnZXQgb2JqZWN0IGlzIGEgZnVuY3Rpb25cbiAqXG4gKiBAcGFyYW0gdGFyZ2V0IHRoZSBvYmplY3QgdW5kZXIgdGVzdFxuICogQHJldHVybiB7Qm9vbGVhbn0gdHJ1ZSBpZiBmdW5jdGlvbiwgZmFsc2Ugb3RoZXJ3aXNlXG4gKi9cbmZ1bmN0aW9uIGlzRnVuY3Rpb24odGFyZ2V0KSB7XG4gICAgcmV0dXJuIHR5cGVvZiB0YXJnZXQgPT09ICdmdW5jdGlvbic7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIGlzRnVuY3Rpb24gOiBpc0Z1bmN0aW9uLFxuICAgIGlzQXJyYXkgOiBpc0FycmF5LFxuICAgIGVhY2ggOiBlYWNoXG59O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/enquire.js/src/Util.js\n"); + +/***/ }), + +/***/ "./node_modules/enquire.js/src/index.js": +/*!**********************************************!*\ + !*** ./node_modules/enquire.js/src/index.js ***! + \**********************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var MediaQueryDispatch = __webpack_require__(/*! ./MediaQueryDispatch */ \"./node_modules/enquire.js/src/MediaQueryDispatch.js\");\nmodule.exports = new MediaQueryDispatch();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvZW5xdWlyZS5qcy9zcmMvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQUEseUJBQXlCLG1CQUFPLENBQUMsaUZBQXNCO0FBQ3ZEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9lbnF1aXJlLmpzL3NyYy9pbmRleC5qcz83YjFiIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBNZWRpYVF1ZXJ5RGlzcGF0Y2ggPSByZXF1aXJlKCcuL01lZGlhUXVlcnlEaXNwYXRjaCcpO1xubW9kdWxlLmV4cG9ydHMgPSBuZXcgTWVkaWFRdWVyeURpc3BhdGNoKCk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/enquire.js/src/index.js\n"); + +/***/ }), + +/***/ "./node_modules/json2mq/index.js": +/*!***************************************!*\ + !*** ./node_modules/json2mq/index.js ***! + \***************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var camel2hyphen = __webpack_require__(/*! string-convert/camel2hyphen */ \"./node_modules/string-convert/camel2hyphen.js\");\n\nvar isDimension = function (feature) {\n var re = /[height|width]$/;\n return re.test(feature);\n};\n\nvar obj2mq = function (obj) {\n var mq = '';\n var features = Object.keys(obj);\n features.forEach(function (feature, index) {\n var value = obj[feature];\n feature = camel2hyphen(feature);\n // Add px to dimension features\n if (isDimension(feature) && typeof value === 'number') {\n value = value + 'px';\n }\n if (value === true) {\n mq += feature;\n } else if (value === false) {\n mq += 'not ' + feature;\n } else {\n mq += '(' + feature + ': ' + value + ')';\n }\n if (index < features.length-1) {\n mq += ' and '\n }\n });\n return mq;\n};\n\nvar json2mq = function (query) {\n var mq = '';\n if (typeof query === 'string') {\n return query;\n }\n // Handling array of media queries\n if (query instanceof Array) {\n query.forEach(function (q, index) {\n mq += obj2mq(q);\n if (index < query.length-1) {\n mq += ', '\n }\n });\n return mq;\n }\n // Handling single media query\n return obj2mq(query);\n};\n\nmodule.exports = json2mq;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvanNvbjJtcS9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQSxtQkFBbUIsbUJBQU8sQ0FBQyxrRkFBNkI7O0FBRXhEO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2pzb24ybXEvaW5kZXguanM/YTRkZSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgY2FtZWwyaHlwaGVuID0gcmVxdWlyZSgnc3RyaW5nLWNvbnZlcnQvY2FtZWwyaHlwaGVuJyk7XG5cbnZhciBpc0RpbWVuc2lvbiA9IGZ1bmN0aW9uIChmZWF0dXJlKSB7XG4gIHZhciByZSA9IC9baGVpZ2h0fHdpZHRoXSQvO1xuICByZXR1cm4gcmUudGVzdChmZWF0dXJlKTtcbn07XG5cbnZhciBvYmoybXEgPSBmdW5jdGlvbiAob2JqKSB7XG4gIHZhciBtcSA9ICcnO1xuICB2YXIgZmVhdHVyZXMgPSBPYmplY3Qua2V5cyhvYmopO1xuICBmZWF0dXJlcy5mb3JFYWNoKGZ1bmN0aW9uIChmZWF0dXJlLCBpbmRleCkge1xuICAgIHZhciB2YWx1ZSA9IG9ialtmZWF0dXJlXTtcbiAgICBmZWF0dXJlID0gY2FtZWwyaHlwaGVuKGZlYXR1cmUpO1xuICAgIC8vIEFkZCBweCB0byBkaW1lbnNpb24gZmVhdHVyZXNcbiAgICBpZiAoaXNEaW1lbnNpb24oZmVhdHVyZSkgJiYgdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgdmFsdWUgPSB2YWx1ZSArICdweCc7XG4gICAgfVxuICAgIGlmICh2YWx1ZSA9PT0gdHJ1ZSkge1xuICAgICAgbXEgKz0gZmVhdHVyZTtcbiAgICB9IGVsc2UgaWYgKHZhbHVlID09PSBmYWxzZSkge1xuICAgICAgbXEgKz0gJ25vdCAnICsgZmVhdHVyZTtcbiAgICB9IGVsc2Uge1xuICAgICAgbXEgKz0gJygnICsgZmVhdHVyZSArICc6ICcgKyB2YWx1ZSArICcpJztcbiAgICB9XG4gICAgaWYgKGluZGV4IDwgZmVhdHVyZXMubGVuZ3RoLTEpIHtcbiAgICAgIG1xICs9ICcgYW5kICdcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gbXE7XG59O1xuXG52YXIganNvbjJtcSA9IGZ1bmN0aW9uIChxdWVyeSkge1xuICB2YXIgbXEgPSAnJztcbiAgaWYgKHR5cGVvZiBxdWVyeSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gcXVlcnk7XG4gIH1cbiAgLy8gSGFuZGxpbmcgYXJyYXkgb2YgbWVkaWEgcXVlcmllc1xuICBpZiAocXVlcnkgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgIHF1ZXJ5LmZvckVhY2goZnVuY3Rpb24gKHEsIGluZGV4KSB7XG4gICAgICBtcSArPSBvYmoybXEocSk7XG4gICAgICBpZiAoaW5kZXggPCBxdWVyeS5sZW5ndGgtMSkge1xuICAgICAgICBtcSArPSAnLCAnXG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIG1xO1xuICB9XG4gIC8vIEhhbmRsaW5nIHNpbmdsZSBtZWRpYSBxdWVyeVxuICByZXR1cm4gb2JqMm1xKHF1ZXJ5KTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ganNvbjJtcTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/json2mq/index.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash.debounce/index.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash.debounce/index.js ***! + \***********************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof __webpack_require__.g == 'object' && __webpack_require__.g && __webpack_require__.g.Object === Object && __webpack_require__.g;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLmRlYm91bmNlL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0Esd0JBQXdCLHFCQUFNLGdCQUFnQixxQkFBTSxJQUFJLHFCQUFNLHNCQUFzQixxQkFBTTs7QUFFMUY7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFVBQVU7QUFDckIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUSxXQUFXO0FBQzlCLFdBQVcsU0FBUztBQUNwQjtBQUNBLFdBQVcsUUFBUTtBQUNuQjtBQUNBLFdBQVcsU0FBUztBQUNwQjtBQUNBLGFBQWEsVUFBVTtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLCtDQUErQyxpQkFBaUI7QUFDaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2QsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2guZGVib3VuY2UvaW5kZXguanM/ODlhOCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGxvZGFzaCAoQ3VzdG9tIEJ1aWxkKSA8aHR0cHM6Ly9sb2Rhc2guY29tLz5cbiAqIEJ1aWxkOiBgbG9kYXNoIG1vZHVsYXJpemUgZXhwb3J0cz1cIm5wbVwiIC1vIC4vYFxuICogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMgPGh0dHBzOi8vanF1ZXJ5Lm9yZy8+XG4gKiBSZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZSA8aHR0cHM6Ly9sb2Rhc2guY29tL2xpY2Vuc2U+XG4gKiBCYXNlZCBvbiBVbmRlcnNjb3JlLmpzIDEuOC4zIDxodHRwOi8vdW5kZXJzY29yZWpzLm9yZy9MSUNFTlNFPlxuICogQ29weXJpZ2h0IEplcmVteSBBc2hrZW5hcywgRG9jdW1lbnRDbG91ZCBhbmQgSW52ZXN0aWdhdGl2ZSBSZXBvcnRlcnMgJiBFZGl0b3JzXG4gKi9cblxuLyoqIFVzZWQgYXMgdGhlIGBUeXBlRXJyb3JgIG1lc3NhZ2UgZm9yIFwiRnVuY3Rpb25zXCIgbWV0aG9kcy4gKi9cbnZhciBGVU5DX0VSUk9SX1RFWFQgPSAnRXhwZWN0ZWQgYSBmdW5jdGlvbic7XG5cbi8qKiBVc2VkIGFzIHJlZmVyZW5jZXMgZm9yIHZhcmlvdXMgYE51bWJlcmAgY29uc3RhbnRzLiAqL1xudmFyIE5BTiA9IDAgLyAwO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgc3ltYm9sVGFnID0gJ1tvYmplY3QgU3ltYm9sXSc7XG5cbi8qKiBVc2VkIHRvIG1hdGNoIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2UuICovXG52YXIgcmVUcmltID0gL15cXHMrfFxccyskL2c7XG5cbi8qKiBVc2VkIHRvIGRldGVjdCBiYWQgc2lnbmVkIGhleGFkZWNpbWFsIHN0cmluZyB2YWx1ZXMuICovXG52YXIgcmVJc0JhZEhleCA9IC9eWy0rXTB4WzAtOWEtZl0rJC9pO1xuXG4vKiogVXNlZCB0byBkZXRlY3QgYmluYXJ5IHN0cmluZyB2YWx1ZXMuICovXG52YXIgcmVJc0JpbmFyeSA9IC9eMGJbMDFdKyQvaTtcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IG9jdGFsIHN0cmluZyB2YWx1ZXMuICovXG52YXIgcmVJc09jdGFsID0gL14wb1swLTddKyQvaTtcblxuLyoqIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIHdpdGhvdXQgYSBkZXBlbmRlbmN5IG9uIGByb290YC4gKi9cbnZhciBmcmVlUGFyc2VJbnQgPSBwYXJzZUludDtcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBnbG9iYWxgIGZyb20gTm9kZS5qcy4gKi9cbnZhciBmcmVlR2xvYmFsID0gdHlwZW9mIGdsb2JhbCA9PSAnb2JqZWN0JyAmJiBnbG9iYWwgJiYgZ2xvYmFsLk9iamVjdCA9PT0gT2JqZWN0ICYmIGdsb2JhbDtcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBzZWxmYC4gKi9cbnZhciBmcmVlU2VsZiA9IHR5cGVvZiBzZWxmID09ICdvYmplY3QnICYmIHNlbGYgJiYgc2VsZi5PYmplY3QgPT09IE9iamVjdCAmJiBzZWxmO1xuXG4vKiogVXNlZCBhcyBhIHJlZmVyZW5jZSB0byB0aGUgZ2xvYmFsIG9iamVjdC4gKi9cbnZhciByb290ID0gZnJlZUdsb2JhbCB8fCBmcmVlU2VsZiB8fCBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKipcbiAqIFVzZWQgdG8gcmVzb2x2ZSB0aGVcbiAqIFtgdG9TdHJpbmdUYWdgXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1vYmplY3QucHJvdG90eXBlLnRvc3RyaW5nKVxuICogb2YgdmFsdWVzLlxuICovXG52YXIgb2JqZWN0VG9TdHJpbmcgPSBvYmplY3RQcm90by50b1N0cmluZztcblxuLyogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xudmFyIG5hdGl2ZU1heCA9IE1hdGgubWF4LFxuICAgIG5hdGl2ZU1pbiA9IE1hdGgubWluO1xuXG4vKipcbiAqIEdldHMgdGhlIHRpbWVzdGFtcCBvZiB0aGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0aGF0IGhhdmUgZWxhcHNlZCBzaW5jZVxuICogdGhlIFVuaXggZXBvY2ggKDEgSmFudWFyeSAxOTcwIDAwOjAwOjAwIFVUQykuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAyLjQuMFxuICogQGNhdGVnb3J5IERhdGVcbiAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHRpbWVzdGFtcC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5kZWZlcihmdW5jdGlvbihzdGFtcCkge1xuICogICBjb25zb2xlLmxvZyhfLm5vdygpIC0gc3RhbXApO1xuICogfSwgXy5ub3coKSk7XG4gKiAvLyA9PiBMb2dzIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGl0IHRvb2sgZm9yIHRoZSBkZWZlcnJlZCBpbnZvY2F0aW9uLlxuICovXG52YXIgbm93ID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiByb290LkRhdGUubm93KCk7XG59O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBkZWJvdW5jZWQgZnVuY3Rpb24gdGhhdCBkZWxheXMgaW52b2tpbmcgYGZ1bmNgIHVudGlsIGFmdGVyIGB3YWl0YFxuICogbWlsbGlzZWNvbmRzIGhhdmUgZWxhcHNlZCBzaW5jZSB0aGUgbGFzdCB0aW1lIHRoZSBkZWJvdW5jZWQgZnVuY3Rpb24gd2FzXG4gKiBpbnZva2VkLiBUaGUgZGVib3VuY2VkIGZ1bmN0aW9uIGNvbWVzIHdpdGggYSBgY2FuY2VsYCBtZXRob2QgdG8gY2FuY2VsXG4gKiBkZWxheWVkIGBmdW5jYCBpbnZvY2F0aW9ucyBhbmQgYSBgZmx1c2hgIG1ldGhvZCB0byBpbW1lZGlhdGVseSBpbnZva2UgdGhlbS5cbiAqIFByb3ZpZGUgYG9wdGlvbnNgIHRvIGluZGljYXRlIHdoZXRoZXIgYGZ1bmNgIHNob3VsZCBiZSBpbnZva2VkIG9uIHRoZVxuICogbGVhZGluZyBhbmQvb3IgdHJhaWxpbmcgZWRnZSBvZiB0aGUgYHdhaXRgIHRpbWVvdXQuIFRoZSBgZnVuY2AgaXMgaW52b2tlZFxuICogd2l0aCB0aGUgbGFzdCBhcmd1bWVudHMgcHJvdmlkZWQgdG8gdGhlIGRlYm91bmNlZCBmdW5jdGlvbi4gU3Vic2VxdWVudFxuICogY2FsbHMgdG8gdGhlIGRlYm91bmNlZCBmdW5jdGlvbiByZXR1cm4gdGhlIHJlc3VsdCBvZiB0aGUgbGFzdCBgZnVuY2BcbiAqIGludm9jYXRpb24uXG4gKlxuICogKipOb3RlOioqIElmIGBsZWFkaW5nYCBhbmQgYHRyYWlsaW5nYCBvcHRpb25zIGFyZSBgdHJ1ZWAsIGBmdW5jYCBpc1xuICogaW52b2tlZCBvbiB0aGUgdHJhaWxpbmcgZWRnZSBvZiB0aGUgdGltZW91dCBvbmx5IGlmIHRoZSBkZWJvdW5jZWQgZnVuY3Rpb25cbiAqIGlzIGludm9rZWQgbW9yZSB0aGFuIG9uY2UgZHVyaW5nIHRoZSBgd2FpdGAgdGltZW91dC5cbiAqXG4gKiBJZiBgd2FpdGAgaXMgYDBgIGFuZCBgbGVhZGluZ2AgaXMgYGZhbHNlYCwgYGZ1bmNgIGludm9jYXRpb24gaXMgZGVmZXJyZWRcbiAqIHVudGlsIHRvIHRoZSBuZXh0IHRpY2ssIHNpbWlsYXIgdG8gYHNldFRpbWVvdXRgIHdpdGggYSB0aW1lb3V0IG9mIGAwYC5cbiAqXG4gKiBTZWUgW0RhdmlkIENvcmJhY2hvJ3MgYXJ0aWNsZV0oaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS9kZWJvdW5jaW5nLXRocm90dGxpbmctZXhwbGFpbmVkLWV4YW1wbGVzLylcbiAqIGZvciBkZXRhaWxzIG92ZXIgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gYF8uZGVib3VuY2VgIGFuZCBgXy50aHJvdHRsZWAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBkZWJvdW5jZS5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbd2FpdD0wXSBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byBkZWxheS5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9ucz17fV0gVGhlIG9wdGlvbnMgb2JqZWN0LlxuICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWFkaW5nPWZhbHNlXVxuICogIFNwZWNpZnkgaW52b2tpbmcgb24gdGhlIGxlYWRpbmcgZWRnZSBvZiB0aGUgdGltZW91dC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5tYXhXYWl0XVxuICogIFRoZSBtYXhpbXVtIHRpbWUgYGZ1bmNgIGlzIGFsbG93ZWQgdG8gYmUgZGVsYXllZCBiZWZvcmUgaXQncyBpbnZva2VkLlxuICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy50cmFpbGluZz10cnVlXVxuICogIFNwZWNpZnkgaW52b2tpbmcgb24gdGhlIHRyYWlsaW5nIGVkZ2Ugb2YgdGhlIHRpbWVvdXQuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBkZWJvdW5jZWQgZnVuY3Rpb24uXG4gKiBAZXhhbXBsZVxuICpcbiAqIC8vIEF2b2lkIGNvc3RseSBjYWxjdWxhdGlvbnMgd2hpbGUgdGhlIHdpbmRvdyBzaXplIGlzIGluIGZsdXguXG4gKiBqUXVlcnkod2luZG93KS5vbigncmVzaXplJywgXy5kZWJvdW5jZShjYWxjdWxhdGVMYXlvdXQsIDE1MCkpO1xuICpcbiAqIC8vIEludm9rZSBgc2VuZE1haWxgIHdoZW4gY2xpY2tlZCwgZGVib3VuY2luZyBzdWJzZXF1ZW50IGNhbGxzLlxuICogalF1ZXJ5KGVsZW1lbnQpLm9uKCdjbGljaycsIF8uZGVib3VuY2Uoc2VuZE1haWwsIDMwMCwge1xuICogICAnbGVhZGluZyc6IHRydWUsXG4gKiAgICd0cmFpbGluZyc6IGZhbHNlXG4gKiB9KSk7XG4gKlxuICogLy8gRW5zdXJlIGBiYXRjaExvZ2AgaXMgaW52b2tlZCBvbmNlIGFmdGVyIDEgc2Vjb25kIG9mIGRlYm91bmNlZCBjYWxscy5cbiAqIHZhciBkZWJvdW5jZWQgPSBfLmRlYm91bmNlKGJhdGNoTG9nLCAyNTAsIHsgJ21heFdhaXQnOiAxMDAwIH0pO1xuICogdmFyIHNvdXJjZSA9IG5ldyBFdmVudFNvdXJjZSgnL3N0cmVhbScpO1xuICogalF1ZXJ5KHNvdXJjZSkub24oJ21lc3NhZ2UnLCBkZWJvdW5jZWQpO1xuICpcbiAqIC8vIENhbmNlbCB0aGUgdHJhaWxpbmcgZGVib3VuY2VkIGludm9jYXRpb24uXG4gKiBqUXVlcnkod2luZG93KS5vbigncG9wc3RhdGUnLCBkZWJvdW5jZWQuY2FuY2VsKTtcbiAqL1xuZnVuY3Rpb24gZGVib3VuY2UoZnVuYywgd2FpdCwgb3B0aW9ucykge1xuICB2YXIgbGFzdEFyZ3MsXG4gICAgICBsYXN0VGhpcyxcbiAgICAgIG1heFdhaXQsXG4gICAgICByZXN1bHQsXG4gICAgICB0aW1lcklkLFxuICAgICAgbGFzdENhbGxUaW1lLFxuICAgICAgbGFzdEludm9rZVRpbWUgPSAwLFxuICAgICAgbGVhZGluZyA9IGZhbHNlLFxuICAgICAgbWF4aW5nID0gZmFsc2UsXG4gICAgICB0cmFpbGluZyA9IHRydWU7XG5cbiAgaWYgKHR5cGVvZiBmdW5jICE9ICdmdW5jdGlvbicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEZVTkNfRVJST1JfVEVYVCk7XG4gIH1cbiAgd2FpdCA9IHRvTnVtYmVyKHdhaXQpIHx8IDA7XG4gIGlmIChpc09iamVjdChvcHRpb25zKSkge1xuICAgIGxlYWRpbmcgPSAhIW9wdGlvbnMubGVhZGluZztcbiAgICBtYXhpbmcgPSAnbWF4V2FpdCcgaW4gb3B0aW9ucztcbiAgICBtYXhXYWl0ID0gbWF4aW5nID8gbmF0aXZlTWF4KHRvTnVtYmVyKG9wdGlvbnMubWF4V2FpdCkgfHwgMCwgd2FpdCkgOiBtYXhXYWl0O1xuICAgIHRyYWlsaW5nID0gJ3RyYWlsaW5nJyBpbiBvcHRpb25zID8gISFvcHRpb25zLnRyYWlsaW5nIDogdHJhaWxpbmc7XG4gIH1cblxuICBmdW5jdGlvbiBpbnZva2VGdW5jKHRpbWUpIHtcbiAgICB2YXIgYXJncyA9IGxhc3RBcmdzLFxuICAgICAgICB0aGlzQXJnID0gbGFzdFRoaXM7XG5cbiAgICBsYXN0QXJncyA9IGxhc3RUaGlzID0gdW5kZWZpbmVkO1xuICAgIGxhc3RJbnZva2VUaW1lID0gdGltZTtcbiAgICByZXN1bHQgPSBmdW5jLmFwcGx5KHRoaXNBcmcsIGFyZ3MpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBmdW5jdGlvbiBsZWFkaW5nRWRnZSh0aW1lKSB7XG4gICAgLy8gUmVzZXQgYW55IGBtYXhXYWl0YCB0aW1lci5cbiAgICBsYXN0SW52b2tlVGltZSA9IHRpbWU7XG4gICAgLy8gU3RhcnQgdGhlIHRpbWVyIGZvciB0aGUgdHJhaWxpbmcgZWRnZS5cbiAgICB0aW1lcklkID0gc2V0VGltZW91dCh0aW1lckV4cGlyZWQsIHdhaXQpO1xuICAgIC8vIEludm9rZSB0aGUgbGVhZGluZyBlZGdlLlxuICAgIHJldHVybiBsZWFkaW5nID8gaW52b2tlRnVuYyh0aW1lKSA6IHJlc3VsdDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlbWFpbmluZ1dhaXQodGltZSkge1xuICAgIHZhciB0aW1lU2luY2VMYXN0Q2FsbCA9IHRpbWUgLSBsYXN0Q2FsbFRpbWUsXG4gICAgICAgIHRpbWVTaW5jZUxhc3RJbnZva2UgPSB0aW1lIC0gbGFzdEludm9rZVRpbWUsXG4gICAgICAgIHJlc3VsdCA9IHdhaXQgLSB0aW1lU2luY2VMYXN0Q2FsbDtcblxuICAgIHJldHVybiBtYXhpbmcgPyBuYXRpdmVNaW4ocmVzdWx0LCBtYXhXYWl0IC0gdGltZVNpbmNlTGFzdEludm9rZSkgOiByZXN1bHQ7XG4gIH1cblxuICBmdW5jdGlvbiBzaG91bGRJbnZva2UodGltZSkge1xuICAgIHZhciB0aW1lU2luY2VMYXN0Q2FsbCA9IHRpbWUgLSBsYXN0Q2FsbFRpbWUsXG4gICAgICAgIHRpbWVTaW5jZUxhc3RJbnZva2UgPSB0aW1lIC0gbGFzdEludm9rZVRpbWU7XG5cbiAgICAvLyBFaXRoZXIgdGhpcyBpcyB0aGUgZmlyc3QgY2FsbCwgYWN0aXZpdHkgaGFzIHN0b3BwZWQgYW5kIHdlJ3JlIGF0IHRoZVxuICAgIC8vIHRyYWlsaW5nIGVkZ2UsIHRoZSBzeXN0ZW0gdGltZSBoYXMgZ29uZSBiYWNrd2FyZHMgYW5kIHdlJ3JlIHRyZWF0aW5nXG4gICAgLy8gaXQgYXMgdGhlIHRyYWlsaW5nIGVkZ2UsIG9yIHdlJ3ZlIGhpdCB0aGUgYG1heFdhaXRgIGxpbWl0LlxuICAgIHJldHVybiAobGFzdENhbGxUaW1lID09PSB1bmRlZmluZWQgfHwgKHRpbWVTaW5jZUxhc3RDYWxsID49IHdhaXQpIHx8XG4gICAgICAodGltZVNpbmNlTGFzdENhbGwgPCAwKSB8fCAobWF4aW5nICYmIHRpbWVTaW5jZUxhc3RJbnZva2UgPj0gbWF4V2FpdCkpO1xuICB9XG5cbiAgZnVuY3Rpb24gdGltZXJFeHBpcmVkKCkge1xuICAgIHZhciB0aW1lID0gbm93KCk7XG4gICAgaWYgKHNob3VsZEludm9rZSh0aW1lKSkge1xuICAgICAgcmV0dXJuIHRyYWlsaW5nRWRnZSh0aW1lKTtcbiAgICB9XG4gICAgLy8gUmVzdGFydCB0aGUgdGltZXIuXG4gICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCByZW1haW5pbmdXYWl0KHRpbWUpKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHRyYWlsaW5nRWRnZSh0aW1lKSB7XG4gICAgdGltZXJJZCA9IHVuZGVmaW5lZDtcblxuICAgIC8vIE9ubHkgaW52b2tlIGlmIHdlIGhhdmUgYGxhc3RBcmdzYCB3aGljaCBtZWFucyBgZnVuY2AgaGFzIGJlZW5cbiAgICAvLyBkZWJvdW5jZWQgYXQgbGVhc3Qgb25jZS5cbiAgICBpZiAodHJhaWxpbmcgJiYgbGFzdEFyZ3MpIHtcbiAgICAgIHJldHVybiBpbnZva2VGdW5jKHRpbWUpO1xuICAgIH1cbiAgICBsYXN0QXJncyA9IGxhc3RUaGlzID0gdW5kZWZpbmVkO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBmdW5jdGlvbiBjYW5jZWwoKSB7XG4gICAgaWYgKHRpbWVySWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRpbWVySWQpO1xuICAgIH1cbiAgICBsYXN0SW52b2tlVGltZSA9IDA7XG4gICAgbGFzdEFyZ3MgPSBsYXN0Q2FsbFRpbWUgPSBsYXN0VGhpcyA9IHRpbWVySWQgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBmdW5jdGlvbiBmbHVzaCgpIHtcbiAgICByZXR1cm4gdGltZXJJZCA9PT0gdW5kZWZpbmVkID8gcmVzdWx0IDogdHJhaWxpbmdFZGdlKG5vdygpKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGRlYm91bmNlZCgpIHtcbiAgICB2YXIgdGltZSA9IG5vdygpLFxuICAgICAgICBpc0ludm9raW5nID0gc2hvdWxkSW52b2tlKHRpbWUpO1xuXG4gICAgbGFzdEFyZ3MgPSBhcmd1bWVudHM7XG4gICAgbGFzdFRoaXMgPSB0aGlzO1xuICAgIGxhc3RDYWxsVGltZSA9IHRpbWU7XG5cbiAgICBpZiAoaXNJbnZva2luZykge1xuICAgICAgaWYgKHRpbWVySWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gbGVhZGluZ0VkZ2UobGFzdENhbGxUaW1lKTtcbiAgICAgIH1cbiAgICAgIGlmIChtYXhpbmcpIHtcbiAgICAgICAgLy8gSGFuZGxlIGludm9jYXRpb25zIGluIGEgdGlnaHQgbG9vcC5cbiAgICAgICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCB3YWl0KTtcbiAgICAgICAgcmV0dXJuIGludm9rZUZ1bmMobGFzdENhbGxUaW1lKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRpbWVySWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCB3YWl0KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICBkZWJvdW5jZWQuY2FuY2VsID0gY2FuY2VsO1xuICBkZWJvdW5jZWQuZmx1c2ggPSBmbHVzaDtcbiAgcmV0dXJuIGRlYm91bmNlZDtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyB0aGVcbiAqIFtsYW5ndWFnZSB0eXBlXShodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtZWNtYXNjcmlwdC1sYW5ndWFnZS10eXBlcylcbiAqIG9mIGBPYmplY3RgLiAoZS5nLiBhcnJheXMsIGZ1bmN0aW9ucywgb2JqZWN0cywgcmVnZXhlcywgYG5ldyBOdW1iZXIoMClgLCBhbmQgYG5ldyBTdHJpbmcoJycpYClcbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc09iamVjdCh7fSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdChbMSwgMiwgM10pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3QoXy5ub29wKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0KG51bGwpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNPYmplY3QodmFsdWUpIHtcbiAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gIHJldHVybiAhIXZhbHVlICYmICh0eXBlID09ICdvYmplY3QnIHx8IHR5cGUgPT0gJ2Z1bmN0aW9uJyk7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgb2JqZWN0LWxpa2UuIEEgdmFsdWUgaXMgb2JqZWN0LWxpa2UgaWYgaXQncyBub3QgYG51bGxgXG4gKiBhbmQgaGFzIGEgYHR5cGVvZmAgcmVzdWx0IG9mIFwib2JqZWN0XCIuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgb2JqZWN0LWxpa2UsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc09iamVjdExpa2Uoe30pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3RMaWtlKFsxLCAyLCAzXSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdExpa2UoXy5ub29wKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc09iamVjdExpa2UobnVsbCk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc09iamVjdExpa2UodmFsdWUpIHtcbiAgcmV0dXJuICEhdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09ICdvYmplY3QnO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgU3ltYm9sYCBwcmltaXRpdmUgb3Igb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgc3ltYm9sLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNTeW1ib2woU3ltYm9sLml0ZXJhdG9yKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzU3ltYm9sKCdhYmMnKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzU3ltYm9sKHZhbHVlKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gJ3N5bWJvbCcgfHxcbiAgICAoaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBvYmplY3RUb1N0cmluZy5jYWxsKHZhbHVlKSA9PSBzeW1ib2xUYWcpO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBudW1iZXIuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHByb2Nlc3MuXG4gKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBudW1iZXIuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8udG9OdW1iZXIoMy4yKTtcbiAqIC8vID0+IDMuMlxuICpcbiAqIF8udG9OdW1iZXIoTnVtYmVyLk1JTl9WQUxVRSk7XG4gKiAvLyA9PiA1ZS0zMjRcbiAqXG4gKiBfLnRvTnVtYmVyKEluZmluaXR5KTtcbiAqIC8vID0+IEluZmluaXR5XG4gKlxuICogXy50b051bWJlcignMy4yJyk7XG4gKiAvLyA9PiAzLjJcbiAqL1xuZnVuY3Rpb24gdG9OdW1iZXIodmFsdWUpIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnbnVtYmVyJykge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICBpZiAoaXNTeW1ib2wodmFsdWUpKSB7XG4gICAgcmV0dXJuIE5BTjtcbiAgfVxuICBpZiAoaXNPYmplY3QodmFsdWUpKSB7XG4gICAgdmFyIG90aGVyID0gdHlwZW9mIHZhbHVlLnZhbHVlT2YgPT0gJ2Z1bmN0aW9uJyA/IHZhbHVlLnZhbHVlT2YoKSA6IHZhbHVlO1xuICAgIHZhbHVlID0gaXNPYmplY3Qob3RoZXIpID8gKG90aGVyICsgJycpIDogb3RoZXI7XG4gIH1cbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPSAnc3RyaW5nJykge1xuICAgIHJldHVybiB2YWx1ZSA9PT0gMCA/IHZhbHVlIDogK3ZhbHVlO1xuICB9XG4gIHZhbHVlID0gdmFsdWUucmVwbGFjZShyZVRyaW0sICcnKTtcbiAgdmFyIGlzQmluYXJ5ID0gcmVJc0JpbmFyeS50ZXN0KHZhbHVlKTtcbiAgcmV0dXJuIChpc0JpbmFyeSB8fCByZUlzT2N0YWwudGVzdCh2YWx1ZSkpXG4gICAgPyBmcmVlUGFyc2VJbnQodmFsdWUuc2xpY2UoMiksIGlzQmluYXJ5ID8gMiA6IDgpXG4gICAgOiAocmVJc0JhZEhleC50ZXN0KHZhbHVlKSA/IE5BTiA6ICt2YWx1ZSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZGVib3VuY2U7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash.debounce/index.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/react-circular-progressbar/dist/styles.css": +/*!*********************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/react-circular-progressbar/dist/styles.css ***! + \*********************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../next/dist/build/webpack/loaders/css-loader/src/runtime/api.js */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js\");\n/* harmony import */ var _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);\n// Imports\n\nvar ___CSS_LOADER_EXPORT___ = _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/*\\n * react-circular-progressbar styles\\n * All of the styles in this file are configurable!\\n */\\n\\n.CircularProgressbar {\\n /*\\n * This fixes an issue where the CircularProgressbar svg has\\n * 0 width inside a \\\"display: flex\\\" container, and thus not visible.\\n */\\n width: 100%;\\n /*\\n * This fixes a centering issue with CircularProgressbarWithChildren:\\n * https://github.com/kevinsqi/react-circular-progressbar/issues/94\\n */\\n vertical-align: middle;\\n}\\n\\n.CircularProgressbar .CircularProgressbar-path {\\n stroke: #3e98c7;\\n stroke-linecap: round;\\n transition: stroke-dashoffset 0.5s ease 0s;\\n}\\n\\n.CircularProgressbar .CircularProgressbar-trail {\\n stroke: #d6d6d6;\\n /* Used when trail is not full diameter, i.e. when props.circleRatio is set */\\n stroke-linecap: round;\\n}\\n\\n.CircularProgressbar .CircularProgressbar-text {\\n fill: #3e98c7;\\n font-size: 20px;\\n dominant-baseline: middle;\\n text-anchor: middle;\\n}\\n\\n.CircularProgressbar .CircularProgressbar-background {\\n fill: #d6d6d6;\\n}\\n\\n/*\\n * Sample background styles. Use these with e.g.:\\n *\\n * <CircularProgressbar\\n * className=\\\"CircularProgressbar-inverted\\\"\\n * background\\n * percentage={50}\\n * />\\n */\\n.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-background {\\n fill: #3e98c7;\\n}\\n\\n.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-text {\\n fill: #fff;\\n}\\n\\n.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-path {\\n stroke: #fff;\\n}\\n\\n.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-trail {\\n stroke: transparent;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://node_modules/react-circular-progressbar/dist/styles.css\"],\"names\":[],\"mappings\":\"AAAA;;;EAGE;;AAEF;EACE;;;IAGE;EACF,WAAW;EACX;;;IAGE;EACF,sBAAsB;AACxB;;AAEA;EACE,eAAe;EACf,qBAAqB;EAErB,0CAA0C;AAC5C;;AAEA;EACE,eAAe;EACf,6EAA6E;EAC7E,qBAAqB;AACvB;;AAEA;EACE,aAAa;EACb,eAAe;EACf,yBAAyB;EACzB,mBAAmB;AACrB;;AAEA;EACE,aAAa;AACf;;AAEA;;;;;;;;EAQE;AACF;EACE,aAAa;AACf;;AAEA;EACE,UAAU;AACZ;;AAEA;EACE,YAAY;AACd;;AAEA;EACE,mBAAmB;AACrB\",\"sourcesContent\":[\"/*\\n * react-circular-progressbar styles\\n * All of the styles in this file are configurable!\\n */\\n\\n.CircularProgressbar {\\n /*\\n * This fixes an issue where the CircularProgressbar svg has\\n * 0 width inside a \\\"display: flex\\\" container, and thus not visible.\\n */\\n width: 100%;\\n /*\\n * This fixes a centering issue with CircularProgressbarWithChildren:\\n * https://github.com/kevinsqi/react-circular-progressbar/issues/94\\n */\\n vertical-align: middle;\\n}\\n\\n.CircularProgressbar .CircularProgressbar-path {\\n stroke: #3e98c7;\\n stroke-linecap: round;\\n -webkit-transition: stroke-dashoffset 0.5s ease 0s;\\n transition: stroke-dashoffset 0.5s ease 0s;\\n}\\n\\n.CircularProgressbar .CircularProgressbar-trail {\\n stroke: #d6d6d6;\\n /* Used when trail is not full diameter, i.e. when props.circleRatio is set */\\n stroke-linecap: round;\\n}\\n\\n.CircularProgressbar .CircularProgressbar-text {\\n fill: #3e98c7;\\n font-size: 20px;\\n dominant-baseline: middle;\\n text-anchor: middle;\\n}\\n\\n.CircularProgressbar .CircularProgressbar-background {\\n fill: #d6d6d6;\\n}\\n\\n/*\\n * Sample background styles. Use these with e.g.:\\n *\\n * <CircularProgressbar\\n * className=\\\"CircularProgressbar-inverted\\\"\\n * background\\n * percentage={50}\\n * />\\n */\\n.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-background {\\n fill: #3e98c7;\\n}\\n\\n.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-text {\\n fill: #fff;\\n}\\n\\n.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-path {\\n stroke: #fff;\\n}\\n\\n.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-trail {\\n stroke: transparent;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMV0hLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3JlYWN0LWNpcmN1bGFyLXByb2dyZXNzYmFyL2Rpc3Qvc3R5bGVzLmNzcy5qcyIsIm1hcHBpbmdzIjoiOzs7QUFBQTtBQUM4RztBQUM5Ryw4QkFBOEIscUdBQTJCO0FBQ3pEO0FBQ0Esc0tBQXNLLHVLQUF1Syx3TEFBd0wsR0FBRyxvREFBb0Qsb0JBQW9CLDBCQUEwQiwrQ0FBK0MsR0FBRyxxREFBcUQsb0JBQW9CLDRHQUE0RyxHQUFHLG9EQUFvRCxrQkFBa0Isb0JBQW9CLDhCQUE4Qix3QkFBd0IsR0FBRywwREFBMEQsa0JBQWtCLEdBQUcsbUxBQW1MLEdBQUcsbUdBQW1HLGtCQUFrQixHQUFHLGlGQUFpRixlQUFlLEdBQUcsaUZBQWlGLGlCQUFpQixHQUFHLGtGQUFrRix3QkFBd0IsR0FBRyxTQUFTLDBIQUEwSCxNQUFNLEtBQUssT0FBTyxLQUFLLFVBQVUsT0FBTyxLQUFLLFlBQVksT0FBTyxLQUFLLFVBQVUsWUFBWSxhQUFhLE9BQU8sS0FBSyxVQUFVLFlBQVksYUFBYSxPQUFPLEtBQUssVUFBVSxVQUFVLFlBQVksYUFBYSxPQUFPLEtBQUssVUFBVSxNQUFNLFlBQVksS0FBSyxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFlBQVksc0pBQXNKLHVLQUF1Syx3TEFBd0wsR0FBRyxvREFBb0Qsb0JBQW9CLDBCQUEwQix1REFBdUQsK0NBQStDLEdBQUcscURBQXFELG9CQUFvQiw0R0FBNEcsR0FBRyxvREFBb0Qsa0JBQWtCLG9CQUFvQiw4QkFBOEIsd0JBQXdCLEdBQUcsMERBQTBELGtCQUFrQixHQUFHLG1MQUFtTCxHQUFHLG1HQUFtRyxrQkFBa0IsR0FBRyxpRkFBaUYsZUFBZSxHQUFHLGlGQUFpRixpQkFBaUIsR0FBRyxrRkFBa0Ysd0JBQXdCLEdBQUcscUJBQXFCO0FBQzl6SDtBQUNBLCtEQUFlLHVCQUF1QixFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9yZWFjdC1jaXJjdWxhci1wcm9ncmVzc2Jhci9kaXN0L3N0eWxlcy5jc3M/NzVlZiJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL2Nzcy1sb2FkZXIvc3JjL3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18odHJ1ZSk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCIvKlxcbiAqIHJlYWN0LWNpcmN1bGFyLXByb2dyZXNzYmFyIHN0eWxlc1xcbiAqIEFsbCBvZiB0aGUgc3R5bGVzIGluIHRoaXMgZmlsZSBhcmUgY29uZmlndXJhYmxlIVxcbiAqL1xcblxcbi5DaXJjdWxhclByb2dyZXNzYmFyIHtcXG4gIC8qXFxuICAgKiBUaGlzIGZpeGVzIGFuIGlzc3VlIHdoZXJlIHRoZSBDaXJjdWxhclByb2dyZXNzYmFyIHN2ZyBoYXNcXG4gICAqIDAgd2lkdGggaW5zaWRlIGEgXFxcImRpc3BsYXk6IGZsZXhcXFwiIGNvbnRhaW5lciwgYW5kIHRodXMgbm90IHZpc2libGUuXFxuICAgKi9cXG4gIHdpZHRoOiAxMDAlO1xcbiAgLypcXG4gICAqIFRoaXMgZml4ZXMgYSBjZW50ZXJpbmcgaXNzdWUgd2l0aCBDaXJjdWxhclByb2dyZXNzYmFyV2l0aENoaWxkcmVuOlxcbiAgICogaHR0cHM6Ly9naXRodWIuY29tL2tldmluc3FpL3JlYWN0LWNpcmN1bGFyLXByb2dyZXNzYmFyL2lzc3Vlcy85NFxcbiAgICovXFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbn1cXG5cXG4uQ2lyY3VsYXJQcm9ncmVzc2JhciAuQ2lyY3VsYXJQcm9ncmVzc2Jhci1wYXRoIHtcXG4gIHN0cm9rZTogIzNlOThjNztcXG4gIHN0cm9rZS1saW5lY2FwOiByb3VuZDtcXG4gIHRyYW5zaXRpb246IHN0cm9rZS1kYXNob2Zmc2V0IDAuNXMgZWFzZSAwcztcXG59XFxuXFxuLkNpcmN1bGFyUHJvZ3Jlc3NiYXIgLkNpcmN1bGFyUHJvZ3Jlc3NiYXItdHJhaWwge1xcbiAgc3Ryb2tlOiAjZDZkNmQ2O1xcbiAgLyogVXNlZCB3aGVuIHRyYWlsIGlzIG5vdCBmdWxsIGRpYW1ldGVyLCBpLmUuIHdoZW4gcHJvcHMuY2lyY2xlUmF0aW8gaXMgc2V0ICovXFxuICBzdHJva2UtbGluZWNhcDogcm91bmQ7XFxufVxcblxcbi5DaXJjdWxhclByb2dyZXNzYmFyIC5DaXJjdWxhclByb2dyZXNzYmFyLXRleHQge1xcbiAgZmlsbDogIzNlOThjNztcXG4gIGZvbnQtc2l6ZTogMjBweDtcXG4gIGRvbWluYW50LWJhc2VsaW5lOiBtaWRkbGU7XFxuICB0ZXh0LWFuY2hvcjogbWlkZGxlO1xcbn1cXG5cXG4uQ2lyY3VsYXJQcm9ncmVzc2JhciAuQ2lyY3VsYXJQcm9ncmVzc2Jhci1iYWNrZ3JvdW5kIHtcXG4gIGZpbGw6ICNkNmQ2ZDY7XFxufVxcblxcbi8qXFxuICogU2FtcGxlIGJhY2tncm91bmQgc3R5bGVzLiBVc2UgdGhlc2Ugd2l0aCBlLmcuOlxcbiAqXFxuICogICA8Q2lyY3VsYXJQcm9ncmVzc2JhclxcbiAqICAgICBjbGFzc05hbWU9XFxcIkNpcmN1bGFyUHJvZ3Jlc3NiYXItaW52ZXJ0ZWRcXFwiXFxuICogICAgIGJhY2tncm91bmRcXG4gKiAgICAgcGVyY2VudGFnZT17NTB9XFxuICogICAvPlxcbiAqL1xcbi5DaXJjdWxhclByb2dyZXNzYmFyLkNpcmN1bGFyUHJvZ3Jlc3NiYXItaW52ZXJ0ZWQgLkNpcmN1bGFyUHJvZ3Jlc3NiYXItYmFja2dyb3VuZCB7XFxuICBmaWxsOiAjM2U5OGM3O1xcbn1cXG5cXG4uQ2lyY3VsYXJQcm9ncmVzc2Jhci5DaXJjdWxhclByb2dyZXNzYmFyLWludmVydGVkIC5DaXJjdWxhclByb2dyZXNzYmFyLXRleHQge1xcbiAgZmlsbDogI2ZmZjtcXG59XFxuXFxuLkNpcmN1bGFyUHJvZ3Jlc3NiYXIuQ2lyY3VsYXJQcm9ncmVzc2Jhci1pbnZlcnRlZCAuQ2lyY3VsYXJQcm9ncmVzc2Jhci1wYXRoIHtcXG4gIHN0cm9rZTogI2ZmZjtcXG59XFxuXFxuLkNpcmN1bGFyUHJvZ3Jlc3NiYXIuQ2lyY3VsYXJQcm9ncmVzc2Jhci1pbnZlcnRlZCAuQ2lyY3VsYXJQcm9ncmVzc2Jhci10cmFpbCB7XFxuICBzdHJva2U6IHRyYW5zcGFyZW50O1xcbn1cXG5cIiwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vbm9kZV9tb2R1bGVzL3JlYWN0LWNpcmN1bGFyLXByb2dyZXNzYmFyL2Rpc3Qvc3R5bGVzLmNzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQTs7O0VBR0U7O0FBRUY7RUFDRTs7O0lBR0U7RUFDRixXQUFXO0VBQ1g7OztJQUdFO0VBQ0Ysc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0UsZUFBZTtFQUNmLHFCQUFxQjtFQUVyQiwwQ0FBMEM7QUFDNUM7O0FBRUE7RUFDRSxlQUFlO0VBQ2YsNkVBQTZFO0VBQzdFLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUNFLGFBQWE7RUFDYixlQUFlO0VBQ2YseUJBQXlCO0VBQ3pCLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLGFBQWE7QUFDZjs7QUFFQTs7Ozs7Ozs7RUFRRTtBQUNGO0VBQ0UsYUFBYTtBQUNmOztBQUVBO0VBQ0UsVUFBVTtBQUNaOztBQUVBO0VBQ0UsWUFBWTtBQUNkOztBQUVBO0VBQ0UsbUJBQW1CO0FBQ3JCXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIi8qXFxuICogcmVhY3QtY2lyY3VsYXItcHJvZ3Jlc3NiYXIgc3R5bGVzXFxuICogQWxsIG9mIHRoZSBzdHlsZXMgaW4gdGhpcyBmaWxlIGFyZSBjb25maWd1cmFibGUhXFxuICovXFxuXFxuLkNpcmN1bGFyUHJvZ3Jlc3NiYXIge1xcbiAgLypcXG4gICAqIFRoaXMgZml4ZXMgYW4gaXNzdWUgd2hlcmUgdGhlIENpcmN1bGFyUHJvZ3Jlc3NiYXIgc3ZnIGhhc1xcbiAgICogMCB3aWR0aCBpbnNpZGUgYSBcXFwiZGlzcGxheTogZmxleFxcXCIgY29udGFpbmVyLCBhbmQgdGh1cyBub3QgdmlzaWJsZS5cXG4gICAqL1xcbiAgd2lkdGg6IDEwMCU7XFxuICAvKlxcbiAgICogVGhpcyBmaXhlcyBhIGNlbnRlcmluZyBpc3N1ZSB3aXRoIENpcmN1bGFyUHJvZ3Jlc3NiYXJXaXRoQ2hpbGRyZW46XFxuICAgKiBodHRwczovL2dpdGh1Yi5jb20va2V2aW5zcWkvcmVhY3QtY2lyY3VsYXItcHJvZ3Jlc3NiYXIvaXNzdWVzLzk0XFxuICAgKi9cXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxufVxcblxcbi5DaXJjdWxhclByb2dyZXNzYmFyIC5DaXJjdWxhclByb2dyZXNzYmFyLXBhdGgge1xcbiAgc3Ryb2tlOiAjM2U5OGM3O1xcbiAgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBzdHJva2UtZGFzaG9mZnNldCAwLjVzIGVhc2UgMHM7XFxuICB0cmFuc2l0aW9uOiBzdHJva2UtZGFzaG9mZnNldCAwLjVzIGVhc2UgMHM7XFxufVxcblxcbi5DaXJjdWxhclByb2dyZXNzYmFyIC5DaXJjdWxhclByb2dyZXNzYmFyLXRyYWlsIHtcXG4gIHN0cm9rZTogI2Q2ZDZkNjtcXG4gIC8qIFVzZWQgd2hlbiB0cmFpbCBpcyBub3QgZnVsbCBkaWFtZXRlciwgaS5lLiB3aGVuIHByb3BzLmNpcmNsZVJhdGlvIGlzIHNldCAqL1xcbiAgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kO1xcbn1cXG5cXG4uQ2lyY3VsYXJQcm9ncmVzc2JhciAuQ2lyY3VsYXJQcm9ncmVzc2Jhci10ZXh0IHtcXG4gIGZpbGw6ICMzZTk4Yzc7XFxuICBmb250LXNpemU6IDIwcHg7XFxuICBkb21pbmFudC1iYXNlbGluZTogbWlkZGxlO1xcbiAgdGV4dC1hbmNob3I6IG1pZGRsZTtcXG59XFxuXFxuLkNpcmN1bGFyUHJvZ3Jlc3NiYXIgLkNpcmN1bGFyUHJvZ3Jlc3NiYXItYmFja2dyb3VuZCB7XFxuICBmaWxsOiAjZDZkNmQ2O1xcbn1cXG5cXG4vKlxcbiAqIFNhbXBsZSBiYWNrZ3JvdW5kIHN0eWxlcy4gVXNlIHRoZXNlIHdpdGggZS5nLjpcXG4gKlxcbiAqICAgPENpcmN1bGFyUHJvZ3Jlc3NiYXJcXG4gKiAgICAgY2xhc3NOYW1lPVxcXCJDaXJjdWxhclByb2dyZXNzYmFyLWludmVydGVkXFxcIlxcbiAqICAgICBiYWNrZ3JvdW5kXFxuICogICAgIHBlcmNlbnRhZ2U9ezUwfVxcbiAqICAgLz5cXG4gKi9cXG4uQ2lyY3VsYXJQcm9ncmVzc2Jhci5DaXJjdWxhclByb2dyZXNzYmFyLWludmVydGVkIC5DaXJjdWxhclByb2dyZXNzYmFyLWJhY2tncm91bmQge1xcbiAgZmlsbDogIzNlOThjNztcXG59XFxuXFxuLkNpcmN1bGFyUHJvZ3Jlc3NiYXIuQ2lyY3VsYXJQcm9ncmVzc2Jhci1pbnZlcnRlZCAuQ2lyY3VsYXJQcm9ncmVzc2Jhci10ZXh0IHtcXG4gIGZpbGw6ICNmZmY7XFxufVxcblxcbi5DaXJjdWxhclByb2dyZXNzYmFyLkNpcmN1bGFyUHJvZ3Jlc3NiYXItaW52ZXJ0ZWQgLkNpcmN1bGFyUHJvZ3Jlc3NiYXItcGF0aCB7XFxuICBzdHJva2U6ICNmZmY7XFxufVxcblxcbi5DaXJjdWxhclByb2dyZXNzYmFyLkNpcmN1bGFyUHJvZ3Jlc3NiYXItaW52ZXJ0ZWQgLkNpcmN1bGFyUHJvZ3Jlc3NiYXItdHJhaWwge1xcbiAgc3Ryb2tlOiB0cmFuc3BhcmVudDtcXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/react-circular-progressbar/dist/styles.css\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/react-modal-video/css/modal-video.css": +/*!****************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/react-modal-video/css/modal-video.css ***! + \****************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../next/dist/build/webpack/loaders/css-loader/src/runtime/api.js */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js\");\n/* harmony import */ var _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);\n// Imports\n\nvar ___CSS_LOADER_EXPORT___ = _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"@keyframes modal-video {\\n from {\\n opacity: 0;\\n }\\n to {\\n opacity: 1;\\n }\\n}\\n\\n@keyframes modal-video-inner {\\n from {\\n transform: translate(0, 100px);\\n }\\n to {\\n transform: translate(0, 0);\\n }\\n}\\n\\n.modal-video {\\n position: fixed;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n background-color: rgba(0, 0, 0, 0.5);\\n z-index: 1000000;\\n cursor: pointer;\\n opacity: 1;\\n animation-timing-function: ease-out;\\n animation-duration: 0.3s;\\n animation-name: modal-video;\\n transition: opacity 0.3s ease-out;\\n}\\n\\n.modal-video-effect-exit {\\n opacity: 0;\\n}\\n\\n.modal-video-effect-exit .modal-video-movie-wrap {\\n transform: translate(0, 100px);\\n}\\n\\n.modal-video-body {\\n max-width: 960px;\\n width: 100%;\\n height: 100%;\\n margin: 0 auto;\\n padding: 0 10px;\\n display: flex;\\n justify-content: center;\\n box-sizing: border-box;\\n}\\n\\n.modal-video-inner {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n width: 100%;\\n height: 100%;\\n}\\n\\n@media (orientation: landscape) {\\n .modal-video-inner {\\n padding: 10px 60px;\\n box-sizing: border-box;\\n }\\n}\\n\\n.modal-video-movie-wrap {\\n width: 100%;\\n height: 0;\\n position: relative;\\n padding-bottom: 56.25%;\\n background-color: #333;\\n animation-timing-function: ease-out;\\n animation-duration: 0.3s;\\n animation-name: modal-video-inner;\\n transform: translate(0, 0);\\n transition: transform 0.3s ease-out;\\n}\\n\\n.modal-video-movie-wrap iframe {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n}\\n\\n.modal-video-close-btn {\\n position: absolute;\\n z-index: 2;\\n top: -45px;\\n right: 0px;\\n display: inline-block;\\n width: 35px;\\n height: 35px;\\n overflow: hidden;\\n border: none;\\n background: transparent;\\n}\\n\\n@media (orientation: landscape) {\\n .modal-video-close-btn {\\n top: 0;\\n right: -45px;\\n }\\n}\\n\\n.modal-video-close-btn:before {\\n transform: rotate(45deg);\\n}\\n\\n.modal-video-close-btn:after {\\n transform: rotate(-45deg);\\n}\\n\\n.modal-video-close-btn:before, .modal-video-close-btn:after {\\n content: '';\\n position: absolute;\\n height: 2px;\\n width: 100%;\\n top: 50%;\\n left: 0;\\n margin-top: -1px;\\n background: #fff;\\n border-radius: 5px;\\n margin-top: -6px;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://node_modules/react-modal-video/css/modal-video.css\"],\"names\":[],\"mappings\":\"AAAA;EACE;IACE,UAAU;EACZ;EACA;IACE,UAAU;EACZ;AACF;;AAEA;EACE;IACE,8BAA8B;EAChC;EACA;IACE,0BAA0B;EAC5B;AACF;;AAEA;EACE,eAAe;EACf,MAAM;EACN,OAAO;EACP,WAAW;EACX,YAAY;EACZ,oCAAoC;EACpC,gBAAgB;EAChB,eAAe;EACf,UAAU;EACV,mCAAmC;EACnC,wBAAwB;EACxB,2BAA2B;EAK3B,iCAAiC;AACnC;;AAEA;EACE,UAAU;AACZ;;AAEA;EAKE,8BAA8B;AAChC;;AAEA;EACE,gBAAgB;EAChB,WAAW;EACX,YAAY;EACZ,cAAc;EACd,eAAe;EACf,aAAa;EACb,uBAAuB;EACvB,sBAAsB;AACxB;;AAEA;EACE,aAAa;EACb,uBAAuB;EACvB,mBAAmB;EACnB,WAAW;EACX,YAAY;AACd;;AAEA;EACE;IACE,kBAAkB;IAClB,sBAAsB;EACxB;AACF;;AAEA;EACE,WAAW;EACX,SAAS;EACT,kBAAkB;EAClB,sBAAsB;EACtB,sBAAsB;EACtB,mCAAmC;EACnC,wBAAwB;EACxB,iCAAiC;EAKjC,0BAA0B;EAK1B,mCAAmC;AACrC;;AAEA;EACE,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,WAAW;EACX,YAAY;AACd;;AAEA;EACE,kBAAkB;EAClB,UAAU;EACV,UAAU;EACV,UAAU;EACV,qBAAqB;EACrB,WAAW;EACX,YAAY;EACZ,gBAAgB;EAChB,YAAY;EACZ,uBAAuB;AACzB;;AAEA;EACE;IACE,MAAM;IACN,YAAY;EACd;AACF;;AAEA;EACE,wBAAwB;AAC1B;;AAEA;EACE,yBAAyB;AAC3B;;AAEA;EACE,WAAW;EACX,kBAAkB;EAClB,WAAW;EACX,WAAW;EACX,QAAQ;EACR,OAAO;EACP,gBAAgB;EAChB,gBAAgB;EAChB,kBAAkB;EAClB,gBAAgB;AAClB\",\"sourcesContent\":[\"@keyframes modal-video {\\n from {\\n opacity: 0;\\n }\\n to {\\n opacity: 1;\\n }\\n}\\n\\n@keyframes modal-video-inner {\\n from {\\n transform: translate(0, 100px);\\n }\\n to {\\n transform: translate(0, 0);\\n }\\n}\\n\\n.modal-video {\\n position: fixed;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n background-color: rgba(0, 0, 0, 0.5);\\n z-index: 1000000;\\n cursor: pointer;\\n opacity: 1;\\n animation-timing-function: ease-out;\\n animation-duration: 0.3s;\\n animation-name: modal-video;\\n -webkit-transition: opacity 0.3s ease-out;\\n -moz-transition: opacity 0.3s ease-out;\\n -ms-transition: opacity 0.3s ease-out;\\n -o-transition: opacity 0.3s ease-out;\\n transition: opacity 0.3s ease-out;\\n}\\n\\n.modal-video-effect-exit {\\n opacity: 0;\\n}\\n\\n.modal-video-effect-exit .modal-video-movie-wrap {\\n -webkit-transform: translate(0, 100px);\\n -moz-transform: translate(0, 100px);\\n -ms-transform: translate(0, 100px);\\n -o-transform: translate(0, 100px);\\n transform: translate(0, 100px);\\n}\\n\\n.modal-video-body {\\n max-width: 960px;\\n width: 100%;\\n height: 100%;\\n margin: 0 auto;\\n padding: 0 10px;\\n display: flex;\\n justify-content: center;\\n box-sizing: border-box;\\n}\\n\\n.modal-video-inner {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n width: 100%;\\n height: 100%;\\n}\\n\\n@media (orientation: landscape) {\\n .modal-video-inner {\\n padding: 10px 60px;\\n box-sizing: border-box;\\n }\\n}\\n\\n.modal-video-movie-wrap {\\n width: 100%;\\n height: 0;\\n position: relative;\\n padding-bottom: 56.25%;\\n background-color: #333;\\n animation-timing-function: ease-out;\\n animation-duration: 0.3s;\\n animation-name: modal-video-inner;\\n -webkit-transform: translate(0, 0);\\n -moz-transform: translate(0, 0);\\n -ms-transform: translate(0, 0);\\n -o-transform: translate(0, 0);\\n transform: translate(0, 0);\\n -webkit-transition: -webkit-transform 0.3s ease-out;\\n -moz-transition: -moz-transform 0.3s ease-out;\\n -ms-transition: -ms-transform 0.3s ease-out;\\n -o-transition: -o-transform 0.3s ease-out;\\n transition: transform 0.3s ease-out;\\n}\\n\\n.modal-video-movie-wrap iframe {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n}\\n\\n.modal-video-close-btn {\\n position: absolute;\\n z-index: 2;\\n top: -45px;\\n right: 0px;\\n display: inline-block;\\n width: 35px;\\n height: 35px;\\n overflow: hidden;\\n border: none;\\n background: transparent;\\n}\\n\\n@media (orientation: landscape) {\\n .modal-video-close-btn {\\n top: 0;\\n right: -45px;\\n }\\n}\\n\\n.modal-video-close-btn:before {\\n transform: rotate(45deg);\\n}\\n\\n.modal-video-close-btn:after {\\n transform: rotate(-45deg);\\n}\\n\\n.modal-video-close-btn:before, .modal-video-close-btn:after {\\n content: '';\\n position: absolute;\\n height: 2px;\\n width: 100%;\\n top: 50%;\\n left: 0;\\n margin-top: -1px;\\n background: #fff;\\n border-radius: 5px;\\n margin-top: -6px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMV0hLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3JlYWN0LW1vZGFsLXZpZGVvL2Nzcy9tb2RhbC12aWRlby5jc3MuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQUE7QUFDOEc7QUFDOUcsOEJBQThCLHFHQUEyQjtBQUN6RDtBQUNBLGtFQUFrRSxVQUFVLGlCQUFpQixLQUFLLFFBQVEsaUJBQWlCLEtBQUssR0FBRyxrQ0FBa0MsVUFBVSxxQ0FBcUMsS0FBSyxRQUFRLGlDQUFpQyxLQUFLLEdBQUcsa0JBQWtCLG9CQUFvQixXQUFXLFlBQVksZ0JBQWdCLGlCQUFpQix5Q0FBeUMscUJBQXFCLG9CQUFvQixlQUFlLHdDQUF3Qyw2QkFBNkIsZ0NBQWdDLHNDQUFzQyxHQUFHLDhCQUE4QixlQUFlLEdBQUcsc0RBQXNELG1DQUFtQyxHQUFHLHVCQUF1QixxQkFBcUIsZ0JBQWdCLGlCQUFpQixtQkFBbUIsb0JBQW9CLGtCQUFrQiw0QkFBNEIsMkJBQTJCLEdBQUcsd0JBQXdCLGtCQUFrQiw0QkFBNEIsd0JBQXdCLGdCQUFnQixpQkFBaUIsR0FBRyxxQ0FBcUMsd0JBQXdCLHlCQUF5Qiw2QkFBNkIsS0FBSyxHQUFHLDZCQUE2QixnQkFBZ0IsY0FBYyx1QkFBdUIsMkJBQTJCLDJCQUEyQix3Q0FBd0MsNkJBQTZCLHNDQUFzQywrQkFBK0Isd0NBQXdDLEdBQUcsb0NBQW9DLHVCQUF1QixXQUFXLFlBQVksZ0JBQWdCLGlCQUFpQixHQUFHLDRCQUE0Qix1QkFBdUIsZUFBZSxlQUFlLGVBQWUsMEJBQTBCLGdCQUFnQixpQkFBaUIscUJBQXFCLGlCQUFpQiw0QkFBNEIsR0FBRyxxQ0FBcUMsNEJBQTRCLGFBQWEsbUJBQW1CLEtBQUssR0FBRyxtQ0FBbUMsNkJBQTZCLEdBQUcsa0NBQWtDLDhCQUE4QixHQUFHLGlFQUFpRSxnQkFBZ0IsdUJBQXVCLGdCQUFnQixnQkFBZ0IsYUFBYSxZQUFZLHFCQUFxQixxQkFBcUIsdUJBQXVCLHFCQUFxQixHQUFHLFNBQVMsbUhBQW1ILEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLE1BQU0sS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLEtBQUssVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxXQUFXLFVBQVUsWUFBWSxhQUFhLGFBQWEsYUFBYSxPQUFPLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxPQUFPLEtBQUssWUFBWSxXQUFXLFVBQVUsVUFBVSxVQUFVLFVBQVUsWUFBWSxhQUFhLE9BQU8sS0FBSyxVQUFVLFlBQVksYUFBYSxXQUFXLFVBQVUsTUFBTSxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sTUFBTSxLQUFLLFVBQVUsVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsT0FBTyxLQUFLLFlBQVksV0FBVyxVQUFVLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxXQUFXLFVBQVUsVUFBVSxZQUFZLFdBQVcsVUFBVSxZQUFZLFdBQVcsWUFBWSxPQUFPLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxNQUFNLEtBQUssWUFBWSxPQUFPLEtBQUssWUFBWSxPQUFPLEtBQUssVUFBVSxZQUFZLFdBQVcsVUFBVSxVQUFVLFVBQVUsWUFBWSxhQUFhLGFBQWEsYUFBYSxrREFBa0QsVUFBVSxpQkFBaUIsS0FBSyxRQUFRLGlCQUFpQixLQUFLLEdBQUcsa0NBQWtDLFVBQVUscUNBQXFDLEtBQUssUUFBUSxpQ0FBaUMsS0FBSyxHQUFHLGtCQUFrQixvQkFBb0IsV0FBVyxZQUFZLGdCQUFnQixpQkFBaUIseUNBQXlDLHFCQUFxQixvQkFBb0IsZUFBZSx3Q0FBd0MsNkJBQTZCLGdDQUFnQyw4Q0FBOEMsMkNBQTJDLDBDQUEwQyx5Q0FBeUMsc0NBQXNDLEdBQUcsOEJBQThCLGVBQWUsR0FBRyxzREFBc0QsMkNBQTJDLHdDQUF3Qyx1Q0FBdUMsc0NBQXNDLG1DQUFtQyxHQUFHLHVCQUF1QixxQkFBcUIsZ0JBQWdCLGlCQUFpQixtQkFBbUIsb0JBQW9CLGtCQUFrQiw0QkFBNEIsMkJBQTJCLEdBQUcsd0JBQXdCLGtCQUFrQiw0QkFBNEIsd0JBQXdCLGdCQUFnQixpQkFBaUIsR0FBRyxxQ0FBcUMsd0JBQXdCLHlCQUF5Qiw2QkFBNkIsS0FBSyxHQUFHLDZCQUE2QixnQkFBZ0IsY0FBYyx1QkFBdUIsMkJBQTJCLDJCQUEyQix3Q0FBd0MsNkJBQTZCLHNDQUFzQyx1Q0FBdUMsb0NBQW9DLG1DQUFtQyxrQ0FBa0MsK0JBQStCLHdEQUF3RCxrREFBa0QsZ0RBQWdELDhDQUE4Qyx3Q0FBd0MsR0FBRyxvQ0FBb0MsdUJBQXVCLFdBQVcsWUFBWSxnQkFBZ0IsaUJBQWlCLEdBQUcsNEJBQTRCLHVCQUF1QixlQUFlLGVBQWUsZUFBZSwwQkFBMEIsZ0JBQWdCLGlCQUFpQixxQkFBcUIsaUJBQWlCLDRCQUE0QixHQUFHLHFDQUFxQyw0QkFBNEIsYUFBYSxtQkFBbUIsS0FBSyxHQUFHLG1DQUFtQyw2QkFBNkIsR0FBRyxrQ0FBa0MsOEJBQThCLEdBQUcsaUVBQWlFLGdCQUFnQix1QkFBdUIsZ0JBQWdCLGdCQUFnQixhQUFhLFlBQVkscUJBQXFCLHFCQUFxQix1QkFBdUIscUJBQXFCLEdBQUcscUJBQXFCO0FBQ3gzTTtBQUNBLCtEQUFlLHVCQUF1QixFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9yZWFjdC1tb2RhbC12aWRlby9jc3MvbW9kYWwtdmlkZW8uY3NzPzc3MDYiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKHRydWUpO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiQGtleWZyYW1lcyBtb2RhbC12aWRlbyB7XFxuICBmcm9tIHtcXG4gICAgb3BhY2l0eTogMDtcXG4gIH1cXG4gIHRvIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gIH1cXG59XFxuXFxuQGtleWZyYW1lcyBtb2RhbC12aWRlby1pbm5lciB7XFxuICBmcm9tIHtcXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTAwcHgpO1xcbiAgfVxcbiAgdG8ge1xcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcXG4gIH1cXG59XFxuXFxuLm1vZGFsLXZpZGVvIHtcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMTAwJTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcXG4gIHotaW5kZXg6IDEwMDAwMDA7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxuICBvcGFjaXR5OiAxO1xcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XFxuICBhbmltYXRpb24tZHVyYXRpb246IDAuM3M7XFxuICBhbmltYXRpb24tbmFtZTogbW9kYWwtdmlkZW87XFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZS1vdXQ7XFxufVxcblxcbi5tb2RhbC12aWRlby1lZmZlY3QtZXhpdCB7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG5cXG4ubW9kYWwtdmlkZW8tZWZmZWN0LWV4aXQgLm1vZGFsLXZpZGVvLW1vdmllLXdyYXAge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTAwcHgpO1xcbn1cXG5cXG4ubW9kYWwtdmlkZW8tYm9keSB7XFxuICBtYXgtd2lkdGg6IDk2MHB4O1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICBtYXJnaW46IDAgYXV0bztcXG4gIHBhZGRpbmc6IDAgMTBweDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxufVxcblxcbi5tb2RhbC12aWRlby1pbm5lciB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEwMCU7XFxufVxcblxcbkBtZWRpYSAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xcbiAgLm1vZGFsLXZpZGVvLWlubmVyIHtcXG4gICAgcGFkZGluZzogMTBweCA2MHB4O1xcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgfVxcbn1cXG5cXG4ubW9kYWwtdmlkZW8tbW92aWUtd3JhcCB7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMDtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XFxuICBhbmltYXRpb24tZHVyYXRpb246IDAuM3M7XFxuICBhbmltYXRpb24tbmFtZTogbW9kYWwtdmlkZW8taW5uZXI7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2Utb3V0O1xcbn1cXG5cXG4ubW9kYWwtdmlkZW8tbW92aWUtd3JhcCBpZnJhbWUge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbn1cXG5cXG4ubW9kYWwtdmlkZW8tY2xvc2UtYnRuIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHotaW5kZXg6IDI7XFxuICB0b3A6IC00NXB4O1xcbiAgcmlnaHQ6IDBweDtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIHdpZHRoOiAzNXB4O1xcbiAgaGVpZ2h0OiAzNXB4O1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIGJvcmRlcjogbm9uZTtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbn1cXG5cXG5AbWVkaWEgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHtcXG4gIC5tb2RhbC12aWRlby1jbG9zZS1idG4ge1xcbiAgICB0b3A6IDA7XFxuICAgIHJpZ2h0OiAtNDVweDtcXG4gIH1cXG59XFxuXFxuLm1vZGFsLXZpZGVvLWNsb3NlLWJ0bjpiZWZvcmUge1xcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xcbn1cXG5cXG4ubW9kYWwtdmlkZW8tY2xvc2UtYnRuOmFmdGVyIHtcXG4gIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XFxufVxcblxcbi5tb2RhbC12aWRlby1jbG9zZS1idG46YmVmb3JlLCAubW9kYWwtdmlkZW8tY2xvc2UtYnRuOmFmdGVyIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgaGVpZ2h0OiAycHg7XFxuICB3aWR0aDogMTAwJTtcXG4gIHRvcDogNTAlO1xcbiAgbGVmdDogMDtcXG4gIG1hcmdpbi10b3A6IC0xcHg7XFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xcbiAgbWFyZ2luLXRvcDogLTZweDtcXG59XFxuXCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovL25vZGVfbW9kdWxlcy9yZWFjdC1tb2RhbC12aWRlby9jc3MvbW9kYWwtdmlkZW8uY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBO0VBQ0U7SUFDRSxVQUFVO0VBQ1o7RUFDQTtJQUNFLFVBQVU7RUFDWjtBQUNGOztBQUVBO0VBQ0U7SUFDRSw4QkFBOEI7RUFDaEM7RUFDQTtJQUNFLDBCQUEwQjtFQUM1QjtBQUNGOztBQUVBO0VBQ0UsZUFBZTtFQUNmLE1BQU07RUFDTixPQUFPO0VBQ1AsV0FBVztFQUNYLFlBQVk7RUFDWixvQ0FBb0M7RUFDcEMsZ0JBQWdCO0VBQ2hCLGVBQWU7RUFDZixVQUFVO0VBQ1YsbUNBQW1DO0VBQ25DLHdCQUF3QjtFQUN4QiwyQkFBMkI7RUFLM0IsaUNBQWlDO0FBQ25DOztBQUVBO0VBQ0UsVUFBVTtBQUNaOztBQUVBO0VBS0UsOEJBQThCO0FBQ2hDOztBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLFdBQVc7RUFDWCxZQUFZO0VBQ1osY0FBYztFQUNkLGVBQWU7RUFDZixhQUFhO0VBQ2IsdUJBQXVCO0VBQ3ZCLHNCQUFzQjtBQUN4Qjs7QUFFQTtFQUNFLGFBQWE7RUFDYix1QkFBdUI7RUFDdkIsbUJBQW1CO0VBQ25CLFdBQVc7RUFDWCxZQUFZO0FBQ2Q7O0FBRUE7RUFDRTtJQUNFLGtCQUFrQjtJQUNsQixzQkFBc0I7RUFDeEI7QUFDRjs7QUFFQTtFQUNFLFdBQVc7RUFDWCxTQUFTO0VBQ1Qsa0JBQWtCO0VBQ2xCLHNCQUFzQjtFQUN0QixzQkFBc0I7RUFDdEIsbUNBQW1DO0VBQ25DLHdCQUF3QjtFQUN4QixpQ0FBaUM7RUFLakMsMEJBQTBCO0VBSzFCLG1DQUFtQztBQUNyQzs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixNQUFNO0VBQ04sT0FBTztFQUNQLFdBQVc7RUFDWCxZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsVUFBVTtFQUNWLFVBQVU7RUFDVixVQUFVO0VBQ1YscUJBQXFCO0VBQ3JCLFdBQVc7RUFDWCxZQUFZO0VBQ1osZ0JBQWdCO0VBQ2hCLFlBQVk7RUFDWix1QkFBdUI7QUFDekI7O0FBRUE7RUFDRTtJQUNFLE1BQU07SUFDTixZQUFZO0VBQ2Q7QUFDRjs7QUFFQTtFQUNFLHdCQUF3QjtBQUMxQjs7QUFFQTtFQUNFLHlCQUF5QjtBQUMzQjs7QUFFQTtFQUNFLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsV0FBVztFQUNYLFdBQVc7RUFDWCxRQUFRO0VBQ1IsT0FBTztFQUNQLGdCQUFnQjtFQUNoQixnQkFBZ0I7RUFDaEIsa0JBQWtCO0VBQ2xCLGdCQUFnQjtBQUNsQlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCJAa2V5ZnJhbWVzIG1vZGFsLXZpZGVvIHtcXG4gIGZyb20ge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgfVxcbiAgdG8ge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgfVxcbn1cXG5cXG5Aa2V5ZnJhbWVzIG1vZGFsLXZpZGVvLWlubmVyIHtcXG4gIGZyb20ge1xcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxMDBweCk7XFxuICB9XFxuICB0byB7XFxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xcbiAgfVxcbn1cXG5cXG4ubW9kYWwtdmlkZW8ge1xcbiAgcG9zaXRpb246IGZpeGVkO1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xcbiAgei1pbmRleDogMTAwMDAwMDtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIG9wYWNpdHk6IDE7XFxuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcXG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMC4zcztcXG4gIGFuaW1hdGlvbi1uYW1lOiBtb2RhbC12aWRlbztcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2Utb3V0O1xcbiAgLW1vei10cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZS1vdXQ7XFxuICAtbXMtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2Utb3V0O1xcbiAgLW8tdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2Utb3V0O1xcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2Utb3V0O1xcbn1cXG5cXG4ubW9kYWwtdmlkZW8tZWZmZWN0LWV4aXQge1xcbiAgb3BhY2l0eTogMDtcXG59XFxuXFxuLm1vZGFsLXZpZGVvLWVmZmVjdC1leGl0IC5tb2RhbC12aWRlby1tb3ZpZS13cmFwIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTAwcHgpO1xcbiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxMDBweCk7XFxuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTAwcHgpO1xcbiAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTAwcHgpO1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTAwcHgpO1xcbn1cXG5cXG4ubW9kYWwtdmlkZW8tYm9keSB7XFxuICBtYXgtd2lkdGg6IDk2MHB4O1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICBtYXJnaW46IDAgYXV0bztcXG4gIHBhZGRpbmc6IDAgMTBweDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxufVxcblxcbi5tb2RhbC12aWRlby1pbm5lciB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEwMCU7XFxufVxcblxcbkBtZWRpYSAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xcbiAgLm1vZGFsLXZpZGVvLWlubmVyIHtcXG4gICAgcGFkZGluZzogMTBweCA2MHB4O1xcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgfVxcbn1cXG5cXG4ubW9kYWwtdmlkZW8tbW92aWUtd3JhcCB7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMDtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XFxuICBhbmltYXRpb24tZHVyYXRpb246IDAuM3M7XFxuICBhbmltYXRpb24tbmFtZTogbW9kYWwtdmlkZW8taW5uZXI7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xcbiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcXG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcXG4gIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQ7XFxuICAtbW96LXRyYW5zaXRpb246IC1tb3otdHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQ7XFxuICAtbXMtdHJhbnNpdGlvbjogLW1zLXRyYW5zZm9ybSAwLjNzIGVhc2Utb3V0O1xcbiAgLW8tdHJhbnNpdGlvbjogLW8tdHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQ7XFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlLW91dDtcXG59XFxuXFxuLm1vZGFsLXZpZGVvLW1vdmllLXdyYXAgaWZyYW1lIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMTAwJTtcXG59XFxuXFxuLm1vZGFsLXZpZGVvLWNsb3NlLWJ0biB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB6LWluZGV4OiAyO1xcbiAgdG9wOiAtNDVweDtcXG4gIHJpZ2h0OiAwcHg7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICB3aWR0aDogMzVweDtcXG4gIGhlaWdodDogMzVweDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBib3JkZXI6IG5vbmU7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG59XFxuXFxuQG1lZGlhIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7XFxuICAubW9kYWwtdmlkZW8tY2xvc2UtYnRuIHtcXG4gICAgdG9wOiAwO1xcbiAgICByaWdodDogLTQ1cHg7XFxuICB9XFxufVxcblxcbi5tb2RhbC12aWRlby1jbG9zZS1idG46YmVmb3JlIHtcXG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcXG59XFxuXFxuLm1vZGFsLXZpZGVvLWNsb3NlLWJ0bjphZnRlciB7XFxuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xcbn1cXG5cXG4ubW9kYWwtdmlkZW8tY2xvc2UtYnRuOmJlZm9yZSwgLm1vZGFsLXZpZGVvLWNsb3NlLWJ0bjphZnRlciB7XFxuICBjb250ZW50OiAnJztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGhlaWdodDogMnB4O1xcbiAgd2lkdGg6IDEwMCU7XFxuICB0b3A6IDUwJTtcXG4gIGxlZnQ6IDA7XFxuICBtYXJnaW4tdG9wOiAtMXB4O1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcXG4gIG1hcmdpbi10b3A6IC02cHg7XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/react-modal-video/css/modal-video.css\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick-theme.css": +/*!***************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick-theme.css ***! + \***************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../next/dist/build/webpack/loaders/css-loader/src/runtime/api.js */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js\");\n/* harmony import */ var _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _next_dist_build_webpack_loaders_css_loader_src_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../next/dist/build/webpack/loaders/css-loader/src/runtime/getUrl.js */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/getUrl.js\");\n/* harmony import */ var _next_dist_build_webpack_loaders_css_loader_src_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_next_dist_build_webpack_loaders_css_loader_src_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _ajax_loader_gif__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ajax-loader.gif */ \"./node_modules/slick-carousel/slick/ajax-loader.gif\");\n/* harmony import */ var _fonts_slick_eot__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./fonts/slick.eot */ \"./node_modules/slick-carousel/slick/fonts/slick.eot\");\n/* harmony import */ var _fonts_slick_woff__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./fonts/slick.woff */ \"./node_modules/slick-carousel/slick/fonts/slick.woff\");\n/* harmony import */ var _fonts_slick_ttf__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./fonts/slick.ttf */ \"./node_modules/slick-carousel/slick/fonts/slick.ttf\");\n/* harmony import */ var _fonts_slick_svg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./fonts/slick.svg */ \"./node_modules/slick-carousel/slick/fonts/slick.svg\");\n// Imports\n\n\n\n\n\n\n\nvar ___CSS_LOADER_EXPORT___ = _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(true);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = _next_dist_build_webpack_loaders_css_loader_src_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1___default()(_ajax_loader_gif__WEBPACK_IMPORTED_MODULE_2__);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = _next_dist_build_webpack_loaders_css_loader_src_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1___default()(_fonts_slick_eot__WEBPACK_IMPORTED_MODULE_3__);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = _next_dist_build_webpack_loaders_css_loader_src_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1___default()(_fonts_slick_eot__WEBPACK_IMPORTED_MODULE_3__, { hash: \"?#iefix\" });\nvar ___CSS_LOADER_URL_REPLACEMENT_3___ = _next_dist_build_webpack_loaders_css_loader_src_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1___default()(_fonts_slick_woff__WEBPACK_IMPORTED_MODULE_4__);\nvar ___CSS_LOADER_URL_REPLACEMENT_4___ = _next_dist_build_webpack_loaders_css_loader_src_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1___default()(_fonts_slick_ttf__WEBPACK_IMPORTED_MODULE_5__);\nvar ___CSS_LOADER_URL_REPLACEMENT_5___ = _next_dist_build_webpack_loaders_css_loader_src_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1___default()(_fonts_slick_svg__WEBPACK_IMPORTED_MODULE_6__, { hash: \"#slick\" });\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"@charset 'UTF-8';\\n/* Slider */\\n.slick-loading .slick-list\\n{\\n background: #fff url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \") center center no-repeat;\\n}\\n\\n/* Icons */\\n@font-face\\n{\\n font-family: 'slick';\\n font-weight: normal;\\n font-style: normal;\\n\\n src: url(\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \");\\n src: url(\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \") format('embedded-opentype'), url(\" + ___CSS_LOADER_URL_REPLACEMENT_3___ + \") format('woff'), url(\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \") format('truetype'), url(\" + ___CSS_LOADER_URL_REPLACEMENT_5___ + \") format('svg');\\n}\\n/* Arrows */\\n.slick-prev,\\n.slick-next\\n{\\n font-size: 0;\\n line-height: 0;\\n\\n position: absolute;\\n top: 50%;\\n\\n display: block;\\n\\n width: 20px;\\n height: 20px;\\n padding: 0;\\n transform: translate(0, -50%);\\n\\n cursor: pointer;\\n\\n color: transparent;\\n border: none;\\n outline: none;\\n background: transparent;\\n}\\n.slick-prev:hover,\\n.slick-prev:focus,\\n.slick-next:hover,\\n.slick-next:focus\\n{\\n color: transparent;\\n outline: none;\\n background: transparent;\\n}\\n.slick-prev:hover:before,\\n.slick-prev:focus:before,\\n.slick-next:hover:before,\\n.slick-next:focus:before\\n{\\n opacity: 1;\\n}\\n.slick-prev.slick-disabled:before,\\n.slick-next.slick-disabled:before\\n{\\n opacity: .25;\\n}\\n\\n.slick-prev:before,\\n.slick-next:before\\n{\\n font-family: 'slick';\\n font-size: 20px;\\n line-height: 1;\\n\\n opacity: .75;\\n color: white;\\n\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.slick-prev\\n{\\n left: -25px;\\n}\\n[dir='rtl'] .slick-prev\\n{\\n right: -25px;\\n left: auto;\\n}\\n.slick-prev:before\\n{\\n content: '←';\\n}\\n[dir='rtl'] .slick-prev:before\\n{\\n content: '→';\\n}\\n\\n.slick-next\\n{\\n right: -25px;\\n}\\n[dir='rtl'] .slick-next\\n{\\n right: auto;\\n left: -25px;\\n}\\n.slick-next:before\\n{\\n content: '→';\\n}\\n[dir='rtl'] .slick-next:before\\n{\\n content: '←';\\n}\\n\\n/* Dots */\\n.slick-dotted.slick-slider\\n{\\n margin-bottom: 30px;\\n}\\n\\n.slick-dots\\n{\\n position: absolute;\\n bottom: -25px;\\n\\n display: block;\\n\\n width: 100%;\\n padding: 0;\\n margin: 0;\\n\\n list-style: none;\\n\\n text-align: center;\\n}\\n.slick-dots li\\n{\\n position: relative;\\n\\n display: inline-block;\\n\\n width: 20px;\\n height: 20px;\\n margin: 0 5px;\\n padding: 0;\\n\\n cursor: pointer;\\n}\\n.slick-dots li button\\n{\\n font-size: 0;\\n line-height: 0;\\n\\n display: block;\\n\\n width: 20px;\\n height: 20px;\\n padding: 5px;\\n\\n cursor: pointer;\\n\\n color: transparent;\\n border: 0;\\n outline: none;\\n background: transparent;\\n}\\n.slick-dots li button:hover,\\n.slick-dots li button:focus\\n{\\n outline: none;\\n}\\n.slick-dots li button:hover:before,\\n.slick-dots li button:focus:before\\n{\\n opacity: 1;\\n}\\n.slick-dots li button:before\\n{\\n font-family: 'slick';\\n font-size: 6px;\\n line-height: 20px;\\n\\n position: absolute;\\n top: 0;\\n left: 0;\\n\\n width: 20px;\\n height: 20px;\\n\\n content: '•';\\n text-align: center;\\n\\n opacity: .25;\\n color: black;\\n\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n.slick-dots li.slick-active button:before\\n{\\n opacity: .75;\\n color: black;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://node_modules/slick-carousel/slick/slick-theme.css\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;AAChB,WAAW;AACX;;IAEI,gFAAiE;AACrE;;AAEA,UAAU;AACV;;IAEI,oBAAoB;IACpB,mBAAmB;IACnB,kBAAkB;;IAElB,4CAA6B;IAC7B,mPAAqM;AACzM;AACA,WAAW;AACX;;;IAGI,YAAY;IACZ,cAAc;;IAEd,kBAAkB;IAClB,QAAQ;;IAER,cAAc;;IAEd,WAAW;IACX,YAAY;IACZ,UAAU;IAGV,6BAA6B;;IAE7B,eAAe;;IAEf,kBAAkB;IAClB,YAAY;IACZ,aAAa;IACb,uBAAuB;AAC3B;AACA;;;;;IAKI,kBAAkB;IAClB,aAAa;IACb,uBAAuB;AAC3B;AACA;;;;;IAKI,UAAU;AACd;AACA;;;IAGI,YAAY;AAChB;;AAEA;;;IAGI,oBAAoB;IACpB,eAAe;IACf,cAAc;;IAEd,YAAY;IACZ,YAAY;;IAEZ,mCAAmC;IACnC,kCAAkC;AACtC;;AAEA;;IAEI,WAAW;AACf;AACA;;IAEI,YAAY;IACZ,UAAU;AACd;AACA;;IAEI,YAAY;AAChB;AACA;;IAEI,YAAY;AAChB;;AAEA;;IAEI,YAAY;AAChB;AACA;;IAEI,WAAW;IACX,WAAW;AACf;AACA;;IAEI,YAAY;AAChB;AACA;;IAEI,YAAY;AAChB;;AAEA,SAAS;AACT;;IAEI,mBAAmB;AACvB;;AAEA;;IAEI,kBAAkB;IAClB,aAAa;;IAEb,cAAc;;IAEd,WAAW;IACX,UAAU;IACV,SAAS;;IAET,gBAAgB;;IAEhB,kBAAkB;AACtB;AACA;;IAEI,kBAAkB;;IAElB,qBAAqB;;IAErB,WAAW;IACX,YAAY;IACZ,aAAa;IACb,UAAU;;IAEV,eAAe;AACnB;AACA;;IAEI,YAAY;IACZ,cAAc;;IAEd,cAAc;;IAEd,WAAW;IACX,YAAY;IACZ,YAAY;;IAEZ,eAAe;;IAEf,kBAAkB;IAClB,SAAS;IACT,aAAa;IACb,uBAAuB;AAC3B;AACA;;;IAGI,aAAa;AACjB;AACA;;;IAGI,UAAU;AACd;AACA;;IAEI,oBAAoB;IACpB,cAAc;IACd,iBAAiB;;IAEjB,kBAAkB;IAClB,MAAM;IACN,OAAO;;IAEP,WAAW;IACX,YAAY;;IAEZ,YAAY;IACZ,kBAAkB;;IAElB,YAAY;IACZ,YAAY;;IAEZ,mCAAmC;IACnC,kCAAkC;AACtC;AACA;;IAEI,YAAY;IACZ,YAAY;AAChB\",\"sourcesContent\":[\"@charset 'UTF-8';\\n/* Slider */\\n.slick-loading .slick-list\\n{\\n background: #fff url('./ajax-loader.gif') center center no-repeat;\\n}\\n\\n/* Icons */\\n@font-face\\n{\\n font-family: 'slick';\\n font-weight: normal;\\n font-style: normal;\\n\\n src: url('./fonts/slick.eot');\\n src: url('./fonts/slick.eot?#iefix') format('embedded-opentype'), url('./fonts/slick.woff') format('woff'), url('./fonts/slick.ttf') format('truetype'), url('./fonts/slick.svg#slick') format('svg');\\n}\\n/* Arrows */\\n.slick-prev,\\n.slick-next\\n{\\n font-size: 0;\\n line-height: 0;\\n\\n position: absolute;\\n top: 50%;\\n\\n display: block;\\n\\n width: 20px;\\n height: 20px;\\n padding: 0;\\n -webkit-transform: translate(0, -50%);\\n -ms-transform: translate(0, -50%);\\n transform: translate(0, -50%);\\n\\n cursor: pointer;\\n\\n color: transparent;\\n border: none;\\n outline: none;\\n background: transparent;\\n}\\n.slick-prev:hover,\\n.slick-prev:focus,\\n.slick-next:hover,\\n.slick-next:focus\\n{\\n color: transparent;\\n outline: none;\\n background: transparent;\\n}\\n.slick-prev:hover:before,\\n.slick-prev:focus:before,\\n.slick-next:hover:before,\\n.slick-next:focus:before\\n{\\n opacity: 1;\\n}\\n.slick-prev.slick-disabled:before,\\n.slick-next.slick-disabled:before\\n{\\n opacity: .25;\\n}\\n\\n.slick-prev:before,\\n.slick-next:before\\n{\\n font-family: 'slick';\\n font-size: 20px;\\n line-height: 1;\\n\\n opacity: .75;\\n color: white;\\n\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.slick-prev\\n{\\n left: -25px;\\n}\\n[dir='rtl'] .slick-prev\\n{\\n right: -25px;\\n left: auto;\\n}\\n.slick-prev:before\\n{\\n content: '←';\\n}\\n[dir='rtl'] .slick-prev:before\\n{\\n content: '→';\\n}\\n\\n.slick-next\\n{\\n right: -25px;\\n}\\n[dir='rtl'] .slick-next\\n{\\n right: auto;\\n left: -25px;\\n}\\n.slick-next:before\\n{\\n content: '→';\\n}\\n[dir='rtl'] .slick-next:before\\n{\\n content: '←';\\n}\\n\\n/* Dots */\\n.slick-dotted.slick-slider\\n{\\n margin-bottom: 30px;\\n}\\n\\n.slick-dots\\n{\\n position: absolute;\\n bottom: -25px;\\n\\n display: block;\\n\\n width: 100%;\\n padding: 0;\\n margin: 0;\\n\\n list-style: none;\\n\\n text-align: center;\\n}\\n.slick-dots li\\n{\\n position: relative;\\n\\n display: inline-block;\\n\\n width: 20px;\\n height: 20px;\\n margin: 0 5px;\\n padding: 0;\\n\\n cursor: pointer;\\n}\\n.slick-dots li button\\n{\\n font-size: 0;\\n line-height: 0;\\n\\n display: block;\\n\\n width: 20px;\\n height: 20px;\\n padding: 5px;\\n\\n cursor: pointer;\\n\\n color: transparent;\\n border: 0;\\n outline: none;\\n background: transparent;\\n}\\n.slick-dots li button:hover,\\n.slick-dots li button:focus\\n{\\n outline: none;\\n}\\n.slick-dots li button:hover:before,\\n.slick-dots li button:focus:before\\n{\\n opacity: 1;\\n}\\n.slick-dots li button:before\\n{\\n font-family: 'slick';\\n font-size: 6px;\\n line-height: 20px;\\n\\n position: absolute;\\n top: 0;\\n left: 0;\\n\\n width: 20px;\\n height: 20px;\\n\\n content: '•';\\n text-align: center;\\n\\n opacity: .25;\\n color: black;\\n\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n.slick-dots li.slick-active button:before\\n{\\n opacity: .75;\\n color: black;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMV0hLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3NsaWNrLWNhcm91c2VsL3NsaWNrL3NsaWNrLXRoZW1lLmNzcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7QUFDOEc7QUFDTztBQUN2RDtBQUNBO0FBQ0M7QUFDRDtBQUNBO0FBQzlELDhCQUE4QixxR0FBMkI7QUFDekQseUNBQXlDLHdHQUErQixDQUFDLDZDQUE2QjtBQUN0Ryx5Q0FBeUMsd0dBQStCLENBQUMsNkNBQTZCO0FBQ3RHLHlDQUF5Qyx3R0FBK0IsQ0FBQyw2Q0FBNkIsSUFBSSxpQkFBaUI7QUFDM0gseUNBQXlDLHdHQUErQixDQUFDLDhDQUE2QjtBQUN0Ryx5Q0FBeUMsd0dBQStCLENBQUMsNkNBQTZCO0FBQ3RHLHlDQUF5Qyx3R0FBK0IsQ0FBQyw2Q0FBNkIsSUFBSSxnQkFBZ0I7QUFDMUg7QUFDQSwyREFBMkQsNkNBQTZDLCtGQUErRixHQUFHLDhCQUE4QiwyQkFBMkIsMEJBQTBCLHlCQUF5Qiw2REFBNkQsMFJBQTBSLEdBQUcsNENBQTRDLG1CQUFtQixxQkFBcUIsMkJBQTJCLGVBQWUsdUJBQXVCLG9CQUFvQixtQkFBbUIsaUJBQWlCLG9DQUFvQyx3QkFBd0IsMkJBQTJCLG1CQUFtQixvQkFBb0IsOEJBQThCLEdBQUcsa0ZBQWtGLHlCQUF5QixvQkFBb0IsOEJBQThCLEdBQUcsOEdBQThHLGlCQUFpQixHQUFHLDBFQUEwRSxtQkFBbUIsR0FBRyw4Q0FBOEMsMkJBQTJCLHNCQUFzQixxQkFBcUIscUJBQXFCLG1CQUFt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QUFrQix5QkFBeUIsb0JBQW9CLHVCQUF1QixvQkFBb0IsaUJBQWlCLGdCQUFnQix5QkFBeUIsMkJBQTJCLEdBQUcsbUJBQW1CLHlCQUF5Qiw4QkFBOEIsb0JBQW9CLG1CQUFtQixvQkFBb0IsaUJBQWlCLHdCQUF3QixHQUFHLDBCQUEwQixtQkFBbUIscUJBQXFCLHVCQUF1QixvQkFBb0IsbUJBQW1CLG1CQUFtQix3QkFBd0IsMkJBQTJCLGdCQUFnQixvQkFBb0IsOEJBQThCLEdBQUcsOERBQThELG9CQUFvQixHQUFHLDRFQUE0RSxpQkFBaUIsR0FBRyxpQ0FBaUMsMkJBQTJCLHFCQUFxQix3QkFBd0IsMkJBQTJCLGFBQWEsY0FBYyxvQkFBb0IsbUJBQW1CLHFCQUFxQix5QkFBeUIscUJBQXFCLG1CQUFtQiw0Q0FBNEMseUNBQXlDLEdBQUcsOENBQThDLG1CQUFtQixtQkFBbUIsR0FBRyxxQkFBcUI7QUFDcGlRO0FBQ0EsK0RBQWUsdUJBQXVCLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3NsaWNrLWNhcm91c2VsL3NsaWNrL3NsaWNrLXRoZW1lLmNzcz8xOWQ2Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvY3NzLWxvYWRlci9zcmMvcnVudGltZS9hcGkuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0dFVF9VUkxfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL2Nzcy1sb2FkZXIvc3JjL3J1bnRpbWUvZ2V0VXJsLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9VUkxfSU1QT1JUXzBfX18gZnJvbSBcIi4vYWpheC1sb2FkZXIuZ2lmXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9VUkxfSU1QT1JUXzFfX18gZnJvbSBcIi4vZm9udHMvc2xpY2suZW90XCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9VUkxfSU1QT1JUXzJfX18gZnJvbSBcIi4vZm9udHMvc2xpY2sud29mZlwiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF8zX19fIGZyb20gXCIuL2ZvbnRzL3NsaWNrLnR0ZlwiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF80X19fIGZyb20gXCIuL2ZvbnRzL3NsaWNrLnN2Z1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKHRydWUpO1xudmFyIF9fX0NTU19MT0FERVJfVVJMX1JFUExBQ0VNRU5UXzBfX18gPSBfX19DU1NfTE9BREVSX0dFVF9VUkxfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF8wX19fKTtcbnZhciBfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8xX19fID0gX19fQ1NTX0xPQURFUl9HRVRfVVJMX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX1VSTF9JTVBPUlRfMV9fXyk7XG52YXIgX19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfMl9fXyA9IF9fX0NTU19MT0FERVJfR0VUX1VSTF9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9VUkxfSU1QT1JUXzFfX18sIHsgaGFzaDogXCI/I2llZml4XCIgfSk7XG52YXIgX19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfM19fXyA9IF9fX0NTU19MT0FERVJfR0VUX1VSTF9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9VUkxfSU1QT1JUXzJfX18pO1xudmFyIF9fX0NTU19MT0FERVJfVVJMX1JFUExBQ0VNRU5UXzRfX18gPSBfX19DU1NfTE9BREVSX0dFVF9VUkxfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF8zX19fKTtcbnZhciBfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF81X19fID0gX19fQ1NTX0xPQURFUl9HRVRfVVJMX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX1VSTF9JTVBPUlRfNF9fXywgeyBoYXNoOiBcIiNzbGlja1wiIH0pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiQGNoYXJzZXQgJ1VURi04JztcXG4vKiBTbGlkZXIgKi9cXG4uc2xpY2stbG9hZGluZyAuc2xpY2stbGlzdFxcbntcXG4gICAgYmFja2dyb3VuZDogI2ZmZiB1cmwoXCIgKyBfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8wX19fICsgXCIpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0O1xcbn1cXG5cXG4vKiBJY29ucyAqL1xcbkBmb250LWZhY2VcXG57XFxuICAgIGZvbnQtZmFtaWx5OiAnc2xpY2snO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XFxuXFxuICAgIHNyYzogdXJsKFwiICsgX19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfMV9fXyArIFwiKTtcXG4gICAgc3JjOiB1cmwoXCIgKyBfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8yX19fICsgXCIpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKFwiICsgX19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfM19fXyArIFwiKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKFwiICsgX19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfNF9fXyArIFwiKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybChcIiArIF9fX0NTU19MT0FERVJfVVJMX1JFUExBQ0VNRU5UXzVfX18gKyBcIikgZm9ybWF0KCdzdmcnKTtcXG59XFxuLyogQXJyb3dzICovXFxuLnNsaWNrLXByZXYsXFxuLnNsaWNrLW5leHRcXG57XFxuICAgIGZvbnQtc2l6ZTogMDtcXG4gICAgbGluZS1oZWlnaHQ6IDA7XFxuXFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdG9wOiA1MCU7XFxuXFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcblxcbiAgICB3aWR0aDogMjBweDtcXG4gICAgaGVpZ2h0OiAyMHB4O1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTtcXG5cXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcblxcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAgIGJvcmRlcjogbm9uZTtcXG4gICAgb3V0bGluZTogbm9uZTtcXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxufVxcbi5zbGljay1wcmV2OmhvdmVyLFxcbi5zbGljay1wcmV2OmZvY3VzLFxcbi5zbGljay1uZXh0OmhvdmVyLFxcbi5zbGljay1uZXh0OmZvY3VzXFxue1xcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAgIG91dGxpbmU6IG5vbmU7XFxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbn1cXG4uc2xpY2stcHJldjpob3ZlcjpiZWZvcmUsXFxuLnNsaWNrLXByZXY6Zm9jdXM6YmVmb3JlLFxcbi5zbGljay1uZXh0OmhvdmVyOmJlZm9yZSxcXG4uc2xpY2stbmV4dDpmb2N1czpiZWZvcmVcXG57XFxuICAgIG9wYWNpdHk6IDE7XFxufVxcbi5zbGljay1wcmV2LnNsaWNrLWRpc2FibGVkOmJlZm9yZSxcXG4uc2xpY2stbmV4dC5zbGljay1kaXNhYmxlZDpiZWZvcmVcXG57XFxuICAgIG9wYWNpdHk6IC4yNTtcXG59XFxuXFxuLnNsaWNrLXByZXY6YmVmb3JlLFxcbi5zbGljay1uZXh0OmJlZm9yZVxcbntcXG4gICAgZm9udC1mYW1pbHk6ICdzbGljayc7XFxuICAgIGZvbnQtc2l6ZTogMjBweDtcXG4gICAgbGluZS1oZWlnaHQ6IDE7XFxuXFxuICAgIG9wYWNpdHk6IC43NTtcXG4gICAgY29sb3I6IHdoaXRlO1xcblxcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG59XFxuXFxuLnNsaWNrLXByZXZcXG57XFxuICAgIGxlZnQ6IC0yNXB4O1xcbn1cXG5bZGlyPSdydGwnXSAuc2xpY2stcHJldlxcbntcXG4gICAgcmlnaHQ6IC0yNXB4O1xcbiAgICBsZWZ0OiBhdXRvO1xcbn1cXG4uc2xpY2stcHJldjpiZWZvcmVcXG57XFxuICAgIGNvbnRlbnQ6ICfihpAnO1xcbn1cXG5bZGlyPSdydGwnXSAuc2xpY2stcHJldjpiZWZvcmVcXG57XFxuICAgIGNvbnRlbnQ6ICfihpInO1xcbn1cXG5cXG4uc2xpY2stbmV4dFxcbntcXG4gICAgcmlnaHQ6IC0yNXB4O1xcbn1cXG5bZGlyPSdydGwnXSAuc2xpY2stbmV4dFxcbntcXG4gICAgcmlnaHQ6IGF1dG87XFxuICAgIGxlZnQ6IC0yNXB4O1xcbn1cXG4uc2xpY2stbmV4dDpiZWZvcmVcXG57XFxuICAgIGNvbnRlbnQ6ICfihpInO1xcbn1cXG5bZGlyPSdydGwnXSAuc2xpY2stbmV4dDpiZWZvcmVcXG57XFxuICAgIGNvbnRlbnQ6ICfihpAnO1xcbn1cXG5cXG4vKiBEb3RzICovXFxuLnNsaWNrLWRvdHRlZC5zbGljay1zbGlkZXJcXG57XFxuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XFxufVxcblxcbi5zbGljay1kb3RzXFxue1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIGJvdHRvbTogLTI1cHg7XFxuXFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcblxcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgbWFyZ2luOiAwO1xcblxcbiAgICBsaXN0LXN0eWxlOiBub25lO1xcblxcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxufVxcbi5zbGljay1kb3RzIGxpXFxue1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuXFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG5cXG4gICAgd2lkdGg6IDIwcHg7XFxuICAgIGhlaWdodDogMjBweDtcXG4gICAgbWFyZ2luOiAwIDVweDtcXG4gICAgcGFkZGluZzogMDtcXG5cXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG4uc2xpY2stZG90cyBsaSBidXR0b25cXG57XFxuICAgIGZvbnQtc2l6ZTogMDtcXG4gICAgbGluZS1oZWlnaHQ6IDA7XFxuXFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcblxcbiAgICB3aWR0aDogMjBweDtcXG4gICAgaGVpZ2h0OiAyMHB4O1xcbiAgICBwYWRkaW5nOiA1cHg7XFxuXFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG5cXG4gICAgY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICBib3JkZXI6IDA7XFxuICAgIG91dGxpbmU6IG5vbmU7XFxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbn1cXG4uc2xpY2stZG90cyBsaSBidXR0b246aG92ZXIsXFxuLnNsaWNrLWRvdHMgbGkgYnV0dG9uOmZvY3VzXFxue1xcbiAgICBvdXRsaW5lOiBub25lO1xcbn1cXG4uc2xpY2stZG90cyBsaSBidXR0b246aG92ZXI6YmVmb3JlLFxcbi5zbGljay1kb3RzIGxpIGJ1dHRvbjpmb2N1czpiZWZvcmVcXG57XFxuICAgIG9wYWNpdHk6IDE7XFxufVxcbi5zbGljay1kb3RzIGxpIGJ1dHRvbjpiZWZvcmVcXG57XFxuICAgIGZvbnQtZmFtaWx5OiAnc2xpY2snO1xcbiAgICBmb250LXNpemU6IDZweDtcXG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XFxuXFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdG9wOiAwO1xcbiAgICBsZWZ0OiAwO1xcblxcbiAgICB3aWR0aDogMjBweDtcXG4gICAgaGVpZ2h0OiAyMHB4O1xcblxcbiAgICBjb250ZW50OiAn4oCiJztcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xcblxcbiAgICBvcGFjaXR5OiAuMjU7XFxuICAgIGNvbG9yOiBibGFjaztcXG5cXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxufVxcbi5zbGljay1kb3RzIGxpLnNsaWNrLWFjdGl2ZSBidXR0b246YmVmb3JlXFxue1xcbiAgICBvcGFjaXR5OiAuNzU7XFxuICAgIGNvbG9yOiBibGFjaztcXG59XFxuXCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovL25vZGVfbW9kdWxlcy9zbGljay1jYXJvdXNlbC9zbGljay9zbGljay10aGVtZS5jc3NcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBQUEsZ0JBQWdCO0FBQ2hCLFdBQVc7QUFDWDs7SUFFSSxnRkFBaUU7QUFDckU7O0FBRUEsVUFBVTtBQUNWOztJQUVJLG9CQUFvQjtJQUNwQixtQkFBbUI7SUFDbkIsa0JBQWtCOztJQUVsQiw0Q0FBNkI7SUFDN0IsbVBBQXFNO0FBQ3pNO0FBQ0EsV0FBVztBQUNYOzs7SUFHSSxZQUFZO0lBQ1osY0FBYzs7SUFFZCxrQkFBa0I7SUFDbEIsUUFBUTs7SUFFUixjQUFjOztJQUVkLFdBQVc7SUFDWCxZQUFZO0lBQ1osVUFBVTtJQUdWLDZCQUE2Qjs7SUFFN0IsZUFBZTs7SUFFZixrQkFBa0I7SUFDbEIsWUFBWTtJQUNaLGFBQWE7SUFDYix1QkFBdUI7QUFDM0I7QUFDQTs7Ozs7SUFLSSxrQkFBa0I7SUFDbEIsYUFBYTtJQUNiLHVCQUF1QjtBQUMzQjtBQUNBOzs7OztJQUtJLFVBQVU7QUFDZDtBQUNBOzs7SUFHSSxZQUFZO0FBQ2hCOztBQUVBOzs7SUFHSSxvQkFBb0I7SUFDcEIsZUFBZTtJQUNmLGNBQWM7O0lBRWQsWUFBWTtJQUNaLFlBQVk7O0lBRVosbUNBQW1DO0lBQ25DLGtDQUFrQztBQUN0Qzs7QUFFQTs7SUFFSSxXQUFXO0FBQ2Y7QUFDQTs7SUFFSSxZQUFZO0lBQ1osVUFBVTtBQUNkO0FBQ0E7O0lBRUksWUFBWTtBQUNoQjtBQUNBOztJQUVJLFlBQVk7QUFDaEI7O0FBRUE7O0lBRUksWUFBWTtBQUNoQjtBQUNBOztJQUVJLFdBQVc7SUFDWCxXQUFXO0FBQ2Y7QUFDQTs7SUFFSSxZQUFZO0FBQ2hCO0FBQ0E7O0lBRUksWUFBWTtBQUNoQjs7QUFFQSxTQUFTO0FBQ1Q7O0lBRUksbUJBQW1CO0FBQ3ZCOztBQUVBOztJQUVJLGtCQUFrQjtJQUNsQixhQUFhOztJQUViLGNBQWM7O0lBRWQsV0FBVztJQUNYLFVBQVU7SUFDVixTQUFTOztJQUVULGdCQUFnQjs7SUFFaEIsa0JBQWtCO0FBQ3RCO0FBQ0E7O0lBRUksa0JBQWtCOztJQUVsQixxQkFBcUI7O0lBRXJCLFdBQVc7SUFDWCxZQUFZO0lBQ1osYUFBYTtJQUNiLFVBQVU7O0lBRVYsZUFBZTtBQUNuQjtBQUNBOztJQUVJLFlBQVk7SUFDWixjQUFjOztJQUVkLGNBQWM7O0lBRWQsV0FBVztJQUNYLFlBQVk7SUFDWixZQUFZOztJQUVaLGVBQWU7O0lBRWYsa0JBQWtCO0lBQ2xCLFNBQVM7SUFDVCxhQUFhO0lBQ2IsdUJBQXVCO0FBQzNCO0FBQ0E7OztJQUdJLGFBQWE7QUFDakI7QUFDQTs7O0lBR0ksVUFBVTtBQUNkO0FBQ0E7O0lBRUksb0JBQW9CO0lBQ3BCLGNBQWM7SUFDZCxpQkFBaUI7O0lBRWpCLGtCQUFrQjtJQUNsQixNQUFNO0lBQ04sT0FBTzs7SUFFUCxXQUFXO0lBQ1gsWUFBWTs7SUFFWixZQUFZO0lBQ1osa0JBQWtCOztJQUVsQixZQUFZO0lBQ1osWUFBWTs7SUFFWixtQ0FBbUM7SUFDbkMsa0NBQWtDO0FBQ3RDO0FBQ0E7O0lBRUksWUFBWTtJQUNaLFlBQVk7QUFDaEJcIixcInNvdXJjZXNDb250ZW50XCI6W1wiQGNoYXJzZXQgJ1VURi04JztcXG4vKiBTbGlkZXIgKi9cXG4uc2xpY2stbG9hZGluZyAuc2xpY2stbGlzdFxcbntcXG4gICAgYmFja2dyb3VuZDogI2ZmZiB1cmwoJy4vYWpheC1sb2FkZXIuZ2lmJykgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7XFxufVxcblxcbi8qIEljb25zICovXFxuQGZvbnQtZmFjZVxcbntcXG4gICAgZm9udC1mYW1pbHk6ICdzbGljayc7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcXG5cXG4gICAgc3JjOiB1cmwoJy4vZm9udHMvc2xpY2suZW90Jyk7XFxuICAgIHNyYzogdXJsKCcuL2ZvbnRzL3NsaWNrLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnLi9mb250cy9zbGljay53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnLi9mb250cy9zbGljay50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnLi9mb250cy9zbGljay5zdmcjc2xpY2snKSBmb3JtYXQoJ3N2ZycpO1xcbn1cXG4vKiBBcnJvd3MgKi9cXG4uc2xpY2stcHJldixcXG4uc2xpY2stbmV4dFxcbntcXG4gICAgZm9udC1zaXplOiAwO1xcbiAgICBsaW5lLWhlaWdodDogMDtcXG5cXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0b3A6IDUwJTtcXG5cXG4gICAgZGlzcGxheTogYmxvY2s7XFxuXFxuICAgIHdpZHRoOiAyMHB4O1xcbiAgICBoZWlnaHQ6IDIwcHg7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XFxuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTtcXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XFxuXFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG5cXG4gICAgY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICBib3JkZXI6IG5vbmU7XFxuICAgIG91dGxpbmU6IG5vbmU7XFxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbn1cXG4uc2xpY2stcHJldjpob3ZlcixcXG4uc2xpY2stcHJldjpmb2N1cyxcXG4uc2xpY2stbmV4dDpob3ZlcixcXG4uc2xpY2stbmV4dDpmb2N1c1xcbntcXG4gICAgY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICBvdXRsaW5lOiBub25lO1xcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG59XFxuLnNsaWNrLXByZXY6aG92ZXI6YmVmb3JlLFxcbi5zbGljay1wcmV2OmZvY3VzOmJlZm9yZSxcXG4uc2xpY2stbmV4dDpob3ZlcjpiZWZvcmUsXFxuLnNsaWNrLW5leHQ6Zm9jdXM6YmVmb3JlXFxue1xcbiAgICBvcGFjaXR5OiAxO1xcbn1cXG4uc2xpY2stcHJldi5zbGljay1kaXNhYmxlZDpiZWZvcmUsXFxuLnNsaWNrLW5leHQuc2xpY2stZGlzYWJsZWQ6YmVmb3JlXFxue1xcbiAgICBvcGFjaXR5OiAuMjU7XFxufVxcblxcbi5zbGljay1wcmV2OmJlZm9yZSxcXG4uc2xpY2stbmV4dDpiZWZvcmVcXG57XFxuICAgIGZvbnQtZmFtaWx5OiAnc2xpY2snO1xcbiAgICBmb250LXNpemU6IDIwcHg7XFxuICAgIGxpbmUtaGVpZ2h0OiAxO1xcblxcbiAgICBvcGFjaXR5OiAuNzU7XFxuICAgIGNvbG9yOiB3aGl0ZTtcXG5cXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxufVxcblxcbi5zbGljay1wcmV2XFxue1xcbiAgICBsZWZ0OiAtMjVweDtcXG59XFxuW2Rpcj0ncnRsJ10gLnNsaWNrLXByZXZcXG57XFxuICAgIHJpZ2h0OiAtMjVweDtcXG4gICAgbGVmdDogYXV0bztcXG59XFxuLnNsaWNrLXByZXY6YmVmb3JlXFxue1xcbiAgICBjb250ZW50OiAn4oaQJztcXG59XFxuW2Rpcj0ncnRsJ10gLnNsaWNrLXByZXY6YmVmb3JlXFxue1xcbiAgICBjb250ZW50OiAn4oaSJztcXG59XFxuXFxuLnNsaWNrLW5leHRcXG57XFxuICAgIHJpZ2h0OiAtMjVweDtcXG59XFxuW2Rpcj0ncnRsJ10gLnNsaWNrLW5leHRcXG57XFxuICAgIHJpZ2h0OiBhdXRvO1xcbiAgICBsZWZ0OiAtMjVweDtcXG59XFxuLnNsaWNrLW5leHQ6YmVmb3JlXFxue1xcbiAgICBjb250ZW50OiAn4oaSJztcXG59XFxuW2Rpcj0ncnRsJ10gLnNsaWNrLW5leHQ6YmVmb3JlXFxue1xcbiAgICBjb250ZW50OiAn4oaQJztcXG59XFxuXFxuLyogRG90cyAqL1xcbi5zbGljay1kb3R0ZWQuc2xpY2stc2xpZGVyXFxue1xcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xcbn1cXG5cXG4uc2xpY2stZG90c1xcbntcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICBib3R0b206IC0yNXB4O1xcblxcbiAgICBkaXNwbGF5OiBibG9jaztcXG5cXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIG1hcmdpbjogMDtcXG5cXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcXG5cXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xcbn1cXG4uc2xpY2stZG90cyBsaVxcbntcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcblxcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuXFxuICAgIHdpZHRoOiAyMHB4O1xcbiAgICBoZWlnaHQ6IDIwcHg7XFxuICAgIG1hcmdpbjogMCA1cHg7XFxuICAgIHBhZGRpbmc6IDA7XFxuXFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuLnNsaWNrLWRvdHMgbGkgYnV0dG9uXFxue1xcbiAgICBmb250LXNpemU6IDA7XFxuICAgIGxpbmUtaGVpZ2h0OiAwO1xcblxcbiAgICBkaXNwbGF5OiBibG9jaztcXG5cXG4gICAgd2lkdGg6IDIwcHg7XFxuICAgIGhlaWdodDogMjBweDtcXG4gICAgcGFkZGluZzogNXB4O1xcblxcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuXFxuICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBvdXRsaW5lOiBub25lO1xcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG59XFxuLnNsaWNrLWRvdHMgbGkgYnV0dG9uOmhvdmVyLFxcbi5zbGljay1kb3RzIGxpIGJ1dHRvbjpmb2N1c1xcbntcXG4gICAgb3V0bGluZTogbm9uZTtcXG59XFxuLnNsaWNrLWRvdHMgbGkgYnV0dG9uOmhvdmVyOmJlZm9yZSxcXG4uc2xpY2stZG90cyBsaSBidXR0b246Zm9jdXM6YmVmb3JlXFxue1xcbiAgICBvcGFjaXR5OiAxO1xcbn1cXG4uc2xpY2stZG90cyBsaSBidXR0b246YmVmb3JlXFxue1xcbiAgICBmb250LWZhbWlseTogJ3NsaWNrJztcXG4gICAgZm9udC1zaXplOiA2cHg7XFxuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xcblxcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHRvcDogMDtcXG4gICAgbGVmdDogMDtcXG5cXG4gICAgd2lkdGg6IDIwcHg7XFxuICAgIGhlaWdodDogMjBweDtcXG5cXG4gICAgY29udGVudDogJ+KAoic7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG5cXG4gICAgb3BhY2l0eTogLjI1O1xcbiAgICBjb2xvcjogYmxhY2s7XFxuXFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbn1cXG4uc2xpY2stZG90cyBsaS5zbGljay1hY3RpdmUgYnV0dG9uOmJlZm9yZVxcbntcXG4gICAgb3BhY2l0eTogLjc1O1xcbiAgICBjb2xvcjogYmxhY2s7XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick-theme.css\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick.css": +/*!*********************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick.css ***! + \*********************************************************************************************************************************************************************************************************************************************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../next/dist/build/webpack/loaders/css-loader/src/runtime/api.js */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js\");\n/* harmony import */ var _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);\n// Imports\n\nvar ___CSS_LOADER_EXPORT___ = _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/* Slider */\\n.slick-slider\\n{\\n position: relative;\\n\\n display: block;\\n box-sizing: border-box;\\n\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n\\n -webkit-touch-callout: none;\\n -khtml-user-select: none;\\n touch-action: pan-y;\\n -webkit-tap-highlight-color: transparent;\\n}\\n\\n.slick-list\\n{\\n position: relative;\\n\\n display: block;\\n overflow: hidden;\\n\\n margin: 0;\\n padding: 0;\\n}\\n.slick-list:focus\\n{\\n outline: none;\\n}\\n.slick-list.dragging\\n{\\n cursor: pointer;\\n cursor: hand;\\n}\\n\\n.slick-slider .slick-track,\\n.slick-slider .slick-list\\n{\\n transform: translate3d(0, 0, 0);\\n}\\n\\n.slick-track\\n{\\n position: relative;\\n top: 0;\\n left: 0;\\n\\n display: block;\\n margin-left: auto;\\n margin-right: auto;\\n}\\n.slick-track:before,\\n.slick-track:after\\n{\\n display: table;\\n\\n content: '';\\n}\\n.slick-track:after\\n{\\n clear: both;\\n}\\n.slick-loading .slick-track\\n{\\n visibility: hidden;\\n}\\n\\n.slick-slide\\n{\\n display: none;\\n float: left;\\n\\n height: 100%;\\n min-height: 1px;\\n}\\n[dir='rtl'] .slick-slide\\n{\\n float: right;\\n}\\n.slick-slide img\\n{\\n display: block;\\n}\\n.slick-slide.slick-loading img\\n{\\n display: none;\\n}\\n.slick-slide.dragging img\\n{\\n pointer-events: none;\\n}\\n.slick-initialized .slick-slide\\n{\\n display: block;\\n}\\n.slick-loading .slick-slide\\n{\\n visibility: hidden;\\n}\\n.slick-vertical .slick-slide\\n{\\n display: block;\\n\\n height: auto;\\n\\n border: 1px solid transparent;\\n}\\n.slick-arrow.slick-hidden {\\n display: none;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://node_modules/slick-carousel/slick/slick.css\"],\"names\":[],\"mappings\":\"AAAA,WAAW;AACX;;IAEI,kBAAkB;;IAElB,cAAc;IACd,sBAAsB;;IAEtB,yBAAyB;OACtB,sBAAsB;QACrB,qBAAqB;YACjB,iBAAiB;;IAEzB,2BAA2B;IAC3B,wBAAwB;IAEpB,mBAAmB;IACvB,wCAAwC;AAC5C;;AAEA;;IAEI,kBAAkB;;IAElB,cAAc;IACd,gBAAgB;;IAEhB,SAAS;IACT,UAAU;AACd;AACA;;IAEI,aAAa;AACjB;AACA;;IAEI,eAAe;IACf,YAAY;AAChB;;AAEA;;;IAOY,+BAA+B;AAC3C;;AAEA;;IAEI,kBAAkB;IAClB,MAAM;IACN,OAAO;;IAEP,cAAc;IACd,iBAAiB;IACjB,kBAAkB;AACtB;AACA;;;IAGI,cAAc;;IAEd,WAAW;AACf;AACA;;IAEI,WAAW;AACf;AACA;;IAEI,kBAAkB;AACtB;;AAEA;;IAEI,aAAa;IACb,WAAW;;IAEX,YAAY;IACZ,eAAe;AACnB;AACA;;IAEI,YAAY;AAChB;AACA;;IAEI,cAAc;AAClB;AACA;;IAEI,aAAa;AACjB;AACA;;IAEI,oBAAoB;AACxB;AACA;;IAEI,cAAc;AAClB;AACA;;IAEI,kBAAkB;AACtB;AACA;;IAEI,cAAc;;IAEd,YAAY;;IAEZ,6BAA6B;AACjC;AACA;IACI,aAAa;AACjB\",\"sourcesContent\":[\"/* Slider */\\n.slick-slider\\n{\\n position: relative;\\n\\n display: block;\\n box-sizing: border-box;\\n\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n\\n -webkit-touch-callout: none;\\n -khtml-user-select: none;\\n -ms-touch-action: pan-y;\\n touch-action: pan-y;\\n -webkit-tap-highlight-color: transparent;\\n}\\n\\n.slick-list\\n{\\n position: relative;\\n\\n display: block;\\n overflow: hidden;\\n\\n margin: 0;\\n padding: 0;\\n}\\n.slick-list:focus\\n{\\n outline: none;\\n}\\n.slick-list.dragging\\n{\\n cursor: pointer;\\n cursor: hand;\\n}\\n\\n.slick-slider .slick-track,\\n.slick-slider .slick-list\\n{\\n -webkit-transform: translate3d(0, 0, 0);\\n -moz-transform: translate3d(0, 0, 0);\\n -ms-transform: translate3d(0, 0, 0);\\n -o-transform: translate3d(0, 0, 0);\\n transform: translate3d(0, 0, 0);\\n}\\n\\n.slick-track\\n{\\n position: relative;\\n top: 0;\\n left: 0;\\n\\n display: block;\\n margin-left: auto;\\n margin-right: auto;\\n}\\n.slick-track:before,\\n.slick-track:after\\n{\\n display: table;\\n\\n content: '';\\n}\\n.slick-track:after\\n{\\n clear: both;\\n}\\n.slick-loading .slick-track\\n{\\n visibility: hidden;\\n}\\n\\n.slick-slide\\n{\\n display: none;\\n float: left;\\n\\n height: 100%;\\n min-height: 1px;\\n}\\n[dir='rtl'] .slick-slide\\n{\\n float: right;\\n}\\n.slick-slide img\\n{\\n display: block;\\n}\\n.slick-slide.slick-loading img\\n{\\n display: none;\\n}\\n.slick-slide.dragging img\\n{\\n pointer-events: none;\\n}\\n.slick-initialized .slick-slide\\n{\\n display: block;\\n}\\n.slick-loading .slick-slide\\n{\\n visibility: hidden;\\n}\\n.slick-vertical .slick-slide\\n{\\n display: block;\\n\\n height: auto;\\n\\n border: 1px solid transparent;\\n}\\n.slick-arrow.slick-hidden {\\n display: none;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMV0hLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3NsaWNrLWNhcm91c2VsL3NsaWNrL3NsaWNrLmNzcy5qcyIsIm1hcHBpbmdzIjoiOzs7QUFBQTtBQUM4RztBQUM5Ryw4QkFBOEIscUdBQTJCO0FBQ3pEO0FBQ0Esd0VBQXdFLHlCQUF5Qix1QkFBdUIsNkJBQTZCLGtDQUFrQyxnQ0FBZ0MsZ0NBQWdDLGdDQUFnQyxvQ0FBb0MsK0JBQStCLDBCQUEwQiwrQ0FBK0MsR0FBRyxrQkFBa0IseUJBQXlCLHVCQUF1Qix1QkFBdUIsa0JBQWtCLGlCQUFpQixHQUFHLHNCQUFzQixvQkFBb0IsR0FBRyx5QkFBeUIsc0JBQXNCLG1CQUFtQixHQUFHLDZEQUE2RCxzQ0FBc0MsR0FBRyxtQkFBbUIseUJBQXlCLGFBQWEsY0FBYyx1QkFBdUIsd0JBQXdCLHlCQUF5QixHQUFHLDZDQUE2QyxxQkFBcUIsb0JBQW9CLEdBQUcsdUJBQXVCLGtCQUFrQixHQUFHLGdDQUFnQyx5QkFBeUIsR0FBRyxtQkFBbUIsb0JBQW9CLGtCQUFrQixxQkFBcUIsc0JBQXNCLEdBQUcsNkJBQTZCLG1CQUFtQixHQUFHLHFCQUFxQixxQkFBcUIsR0FBRyxtQ0FBbUMsb0JBQW9CLEdBQUcsOEJBQThCLDJCQUEyQixHQUFHLG9DQUFvQyxxQkFBcUIsR0FBRyxnQ0FBZ0MseUJBQXlCLEdBQUcsaUNBQWlDLHFCQUFxQixxQkFBcUIsc0NBQXNDLEdBQUcsNkJBQTZCLG9CQUFvQixHQUFHLFNBQVMsaUhBQWlILE1BQU0sYUFBYSxXQUFXLGFBQWEsYUFBYSxhQUFhLGFBQWEsY0FBYyxhQUFhLGFBQWEsYUFBYSxhQUFhLE9BQU8sTUFBTSxhQUFhLFdBQVcsYUFBYSxXQUFXLFVBQVUsS0FBSyxNQUFNLFVBQVUsTUFBTSxNQUFNLFVBQVUsVUFBVSxPQUFPLE9BQU8sWUFBWSxPQUFPLE1BQU0sWUFBWSxXQUFXLFdBQVcsVUFBVSxZQUFZLGFBQWEsTUFBTSxPQUFPLFdBQVcsVUFBVSxLQUFLLE1BQU0sVUFBVSxLQUFLLE1BQU0sWUFBWSxPQUFPLE1BQU0sVUFBVSxXQUFXLFVBQVUsVUFBVSxNQUFNLE1BQU0sVUFBVSxNQUFNLE1BQU0sVUFBVSxNQUFNLE1BQU0sVUFBVSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sVUFBVSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sV0FBVyxXQUFXLFlBQVksTUFBTSxLQUFLLFVBQVUsd0RBQXdELHlCQUF5Qix1QkFBdUIsNkJBQTZCLGtDQUFrQyxnQ0FBZ0MsZ0NBQWdDLGdDQUFnQyxvQ0FBb0MsK0JBQStCLDhCQUE4Qiw4QkFBOEIsK0NBQStDLEdBQUcsa0JBQWtCLHlCQUF5Qix1QkFBdUIsdUJBQXVCLGtCQUFrQixpQkFBaUIsR0FBRyxzQkFBc0Isb0JBQW9CLEdBQUcseUJBQXlCLHNCQUFzQixtQkFBbUIsR0FBRyw2REFBNkQsOENBQThDLDhDQUE4Qyw4Q0FBOEMsOENBQThDLDhDQUE4QyxHQUFHLG1CQUFtQix5QkFBeUIsYUFBYSxjQUFjLHVCQUF1Qix3QkFBd0IseUJBQXlCLEdBQUcsNkNBQTZDLHFCQUFxQixvQkFBb0IsR0FBRyx1QkFBdUIsa0JBQWtCLEdBQUcsZ0NBQWdDLHlCQUF5QixHQUFHLG1CQUFtQixvQkFBb0Isa0JBQWtCLHFCQUFxQixzQkFBc0IsR0FBRyw2QkFBNkIsbUJBQW1CLEdBQUcscUJBQXFCLHFCQUFxQixHQUFHLG1DQUFtQyxvQkFBb0IsR0FBRyw4QkFBOEIsMkJBQTJCLEdBQUcsb0NBQW9DLHFCQUFxQixHQUFHLGdDQUFnQyx5QkFBeUIsR0FBRyxpQ0FBaUMscUJBQXFCLHFCQUFxQixzQ0FBc0MsR0FBRyw2QkFBNkIsb0JBQW9CLEdBQUcscUJBQXFCO0FBQ3Q0STtBQUNBLCtEQUFlLHVCQUF1QixFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zbGljay1jYXJvdXNlbC9zbGljay9zbGljay5jc3M/NDZmMyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL2Nzcy1sb2FkZXIvc3JjL3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18odHJ1ZSk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCIvKiBTbGlkZXIgKi9cXG4uc2xpY2stc2xpZGVyXFxue1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuXFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcblxcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xcblxcbiAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XFxuICAgIC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgdG91Y2gtYWN0aW9uOiBwYW4teTtcXG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuXFxuLnNsaWNrLWxpc3RcXG57XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG5cXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuXFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogMDtcXG59XFxuLnNsaWNrLWxpc3Q6Zm9jdXNcXG57XFxuICAgIG91dGxpbmU6IG5vbmU7XFxufVxcbi5zbGljay1saXN0LmRyYWdnaW5nXFxue1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgIGN1cnNvcjogaGFuZDtcXG59XFxuXFxuLnNsaWNrLXNsaWRlciAuc2xpY2stdHJhY2ssXFxuLnNsaWNrLXNsaWRlciAuc2xpY2stbGlzdFxcbntcXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcXG59XFxuXFxuLnNsaWNrLXRyYWNrXFxue1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIHRvcDogMDtcXG4gICAgbGVmdDogMDtcXG5cXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XFxufVxcbi5zbGljay10cmFjazpiZWZvcmUsXFxuLnNsaWNrLXRyYWNrOmFmdGVyXFxue1xcbiAgICBkaXNwbGF5OiB0YWJsZTtcXG5cXG4gICAgY29udGVudDogJyc7XFxufVxcbi5zbGljay10cmFjazphZnRlclxcbntcXG4gICAgY2xlYXI6IGJvdGg7XFxufVxcbi5zbGljay1sb2FkaW5nIC5zbGljay10cmFja1xcbntcXG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xcbn1cXG5cXG4uc2xpY2stc2xpZGVcXG57XFxuICAgIGRpc3BsYXk6IG5vbmU7XFxuICAgIGZsb2F0OiBsZWZ0O1xcblxcbiAgICBoZWlnaHQ6IDEwMCU7XFxuICAgIG1pbi1oZWlnaHQ6IDFweDtcXG59XFxuW2Rpcj0ncnRsJ10gLnNsaWNrLXNsaWRlXFxue1xcbiAgICBmbG9hdDogcmlnaHQ7XFxufVxcbi5zbGljay1zbGlkZSBpbWdcXG57XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbn1cXG4uc2xpY2stc2xpZGUuc2xpY2stbG9hZGluZyBpbWdcXG57XFxuICAgIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5zbGljay1zbGlkZS5kcmFnZ2luZyBpbWdcXG57XFxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbn1cXG4uc2xpY2staW5pdGlhbGl6ZWQgLnNsaWNrLXNsaWRlXFxue1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG59XFxuLnNsaWNrLWxvYWRpbmcgLnNsaWNrLXNsaWRlXFxue1xcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XFxufVxcbi5zbGljay12ZXJ0aWNhbCAuc2xpY2stc2xpZGVcXG57XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcblxcbiAgICBoZWlnaHQ6IGF1dG87XFxuXFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xcbn1cXG4uc2xpY2stYXJyb3cuc2xpY2staGlkZGVuIHtcXG4gICAgZGlzcGxheTogbm9uZTtcXG59XFxuXCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovL25vZGVfbW9kdWxlcy9zbGljay1jYXJvdXNlbC9zbGljay9zbGljay5jc3NcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBQUEsV0FBVztBQUNYOztJQUVJLGtCQUFrQjs7SUFFbEIsY0FBYztJQUNkLHNCQUFzQjs7SUFFdEIseUJBQXlCO09BQ3RCLHNCQUFzQjtRQUNyQixxQkFBcUI7WUFDakIsaUJBQWlCOztJQUV6QiwyQkFBMkI7SUFDM0Isd0JBQXdCO0lBRXBCLG1CQUFtQjtJQUN2Qix3Q0FBd0M7QUFDNUM7O0FBRUE7O0lBRUksa0JBQWtCOztJQUVsQixjQUFjO0lBQ2QsZ0JBQWdCOztJQUVoQixTQUFTO0lBQ1QsVUFBVTtBQUNkO0FBQ0E7O0lBRUksYUFBYTtBQUNqQjtBQUNBOztJQUVJLGVBQWU7SUFDZixZQUFZO0FBQ2hCOztBQUVBOzs7SUFPWSwrQkFBK0I7QUFDM0M7O0FBRUE7O0lBRUksa0JBQWtCO0lBQ2xCLE1BQU07SUFDTixPQUFPOztJQUVQLGNBQWM7SUFDZCxpQkFBaUI7SUFDakIsa0JBQWtCO0FBQ3RCO0FBQ0E7OztJQUdJLGNBQWM7O0lBRWQsV0FBVztBQUNmO0FBQ0E7O0lBRUksV0FBVztBQUNmO0FBQ0E7O0lBRUksa0JBQWtCO0FBQ3RCOztBQUVBOztJQUVJLGFBQWE7SUFDYixXQUFXOztJQUVYLFlBQVk7SUFDWixlQUFlO0FBQ25CO0FBQ0E7O0lBRUksWUFBWTtBQUNoQjtBQUNBOztJQUVJLGNBQWM7QUFDbEI7QUFDQTs7SUFFSSxhQUFhO0FBQ2pCO0FBQ0E7O0lBRUksb0JBQW9CO0FBQ3hCO0FBQ0E7O0lBRUksY0FBYztBQUNsQjtBQUNBOztJQUVJLGtCQUFrQjtBQUN0QjtBQUNBOztJQUVJLGNBQWM7O0lBRWQsWUFBWTs7SUFFWiw2QkFBNkI7QUFDakM7QUFDQTtJQUNJLGFBQWE7QUFDakJcIixcInNvdXJjZXNDb250ZW50XCI6W1wiLyogU2xpZGVyICovXFxuLnNsaWNrLXNsaWRlclxcbntcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcblxcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG5cXG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG5cXG4gICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xcbiAgICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgIC1tcy10b3VjaC1hY3Rpb246IHBhbi15O1xcbiAgICAgICAgdG91Y2gtYWN0aW9uOiBwYW4teTtcXG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuXFxuLnNsaWNrLWxpc3RcXG57XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG5cXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuXFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogMDtcXG59XFxuLnNsaWNrLWxpc3Q6Zm9jdXNcXG57XFxuICAgIG91dGxpbmU6IG5vbmU7XFxufVxcbi5zbGljay1saXN0LmRyYWdnaW5nXFxue1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgIGN1cnNvcjogaGFuZDtcXG59XFxuXFxuLnNsaWNrLXNsaWRlciAuc2xpY2stdHJhY2ssXFxuLnNsaWNrLXNsaWRlciAuc2xpY2stbGlzdFxcbntcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xcbiAgICAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XFxuICAgICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcXG4gICAgICAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XFxufVxcblxcbi5zbGljay10cmFja1xcbntcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICB0b3A6IDA7XFxuICAgIGxlZnQ6IDA7XFxuXFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcXG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xcbn1cXG4uc2xpY2stdHJhY2s6YmVmb3JlLFxcbi5zbGljay10cmFjazphZnRlclxcbntcXG4gICAgZGlzcGxheTogdGFibGU7XFxuXFxuICAgIGNvbnRlbnQ6ICcnO1xcbn1cXG4uc2xpY2stdHJhY2s6YWZ0ZXJcXG57XFxuICAgIGNsZWFyOiBib3RoO1xcbn1cXG4uc2xpY2stbG9hZGluZyAuc2xpY2stdHJhY2tcXG57XFxuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcXG59XFxuXFxuLnNsaWNrLXNsaWRlXFxue1xcbiAgICBkaXNwbGF5OiBub25lO1xcbiAgICBmbG9hdDogbGVmdDtcXG5cXG4gICAgaGVpZ2h0OiAxMDAlO1xcbiAgICBtaW4taGVpZ2h0OiAxcHg7XFxufVxcbltkaXI9J3J0bCddIC5zbGljay1zbGlkZVxcbntcXG4gICAgZmxvYXQ6IHJpZ2h0O1xcbn1cXG4uc2xpY2stc2xpZGUgaW1nXFxue1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG59XFxuLnNsaWNrLXNsaWRlLnNsaWNrLWxvYWRpbmcgaW1nXFxue1xcbiAgICBkaXNwbGF5OiBub25lO1xcbn1cXG4uc2xpY2stc2xpZGUuZHJhZ2dpbmcgaW1nXFxue1xcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG59XFxuLnNsaWNrLWluaXRpYWxpemVkIC5zbGljay1zbGlkZVxcbntcXG4gICAgZGlzcGxheTogYmxvY2s7XFxufVxcbi5zbGljay1sb2FkaW5nIC5zbGljay1zbGlkZVxcbntcXG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xcbn1cXG4uc2xpY2stdmVydGljYWwgLnNsaWNrLXNsaWRlXFxue1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG5cXG4gICAgaGVpZ2h0OiBhdXRvO1xcblxcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcXG59XFxuLnNsaWNrLWFycm93LnNsaWNrLWhpZGRlbiB7XFxuICAgIGRpc3BsYXk6IG5vbmU7XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick.css\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/getUrl.js": +/*!***************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/getUrl.js ***! + \***************************************************************************************/ +/***/ (function(module) { + +"use strict"; +eval("\nmodule.exports = function(url, options) {\n if (!options) {\n // eslint-disable-next-line no-param-reassign\n options = {\n };\n } // eslint-disable-next-line no-underscore-dangle, no-param-reassign\n url = url && url.__esModule ? url.default : url;\n if (typeof url !== 'string') {\n return url;\n } // If url is already wrapped in quotes, remove them\n if (/^['\"].*['\"]$/.test(url)) {\n // eslint-disable-next-line no-param-reassign\n url = url.slice(1, -1);\n }\n if (options.hash) {\n // eslint-disable-next-line no-param-reassign\n url += options.hash;\n } // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n if (/[\"'() \\t\\n]/.test(url) || options.needQuotes) {\n return '\"'.concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, '\\\\n'), '\"');\n }\n return url;\n};\n\n//# sourceMappingURL=getUrl.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9ydW50aW1lL2dldFVybC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9ydW50aW1lL2dldFVybC5qcz8wZTcxIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbih1cmwsIG9wdGlvbnMpIHtcbiAgICBpZiAoIW9wdGlvbnMpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgIG9wdGlvbnMgPSB7XG4gICAgICAgIH07XG4gICAgfSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZXJzY29yZS1kYW5nbGUsIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgdXJsID0gdXJsICYmIHVybC5fX2VzTW9kdWxlID8gdXJsLmRlZmF1bHQgOiB1cmw7XG4gICAgaWYgKHR5cGVvZiB1cmwgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiB1cmw7XG4gICAgfSAvLyBJZiB1cmwgaXMgYWxyZWFkeSB3cmFwcGVkIGluIHF1b3RlcywgcmVtb3ZlIHRoZW1cbiAgICBpZiAoL15bJ1wiXS4qWydcIl0kLy50ZXN0KHVybCkpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgIHVybCA9IHVybC5zbGljZSgxLCAtMSk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLmhhc2gpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgIHVybCArPSBvcHRpb25zLmhhc2g7XG4gICAgfSAvLyBTaG91bGQgdXJsIGJlIHdyYXBwZWQ/XG4gICAgLy8gU2VlIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtdmFsdWVzLTMvI3VybHNcbiAgICBpZiAoL1tcIicoKSBcXHRcXG5dLy50ZXN0KHVybCkgfHwgb3B0aW9ucy5uZWVkUXVvdGVzKSB7XG4gICAgICAgIHJldHVybiAnXCInLmNvbmNhdCh1cmwucmVwbGFjZSgvXCIvZywgJ1xcXFxcIicpLnJlcGxhY2UoL1xcbi9nLCAnXFxcXG4nKSwgJ1wiJyk7XG4gICAgfVxuICAgIHJldHVybiB1cmw7XG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1nZXRVcmwuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/getUrl.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2Fabout&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cabout%5Cindex.jsx!": +/*!***********************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2Fabout&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cabout%5Cindex.jsx! ***! + \***********************************************************************************************************************************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/about\",\n function () {\n return __webpack_require__(/*! ./src/pages/about/index.jsx */ \"./src/pages/about/index.jsx\");\n }\n ]);\n if(true) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/about\"])\n });\n }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWNsaWVudC1wYWdlcy1sb2FkZXIuanM/cGFnZT0lMkZhYm91dCZhYnNvbHV0ZVBhZ2VQYXRoPUMlM0ElNUNVc2VycyU1Q2hwJTVDRGVza3RvcCU1Q2J1c2luZXNzLWh1YiU1Q3NyYyU1Q3BhZ2VzJTVDYWJvdXQlNUNpbmRleC5qc3ghLmpzIiwibWFwcGluZ3MiOiI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLG1CQUFPLENBQUMsZ0VBQTZCO0FBQ3BEO0FBQ0E7QUFDQSxPQUFPLElBQVU7QUFDakIsTUFBTSxVQUFVO0FBQ2hCO0FBQ0EsT0FBTztBQUNQO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLz82OGRkIl0sInNvdXJjZXNDb250ZW50IjpbIlxuICAgICh3aW5kb3cuX19ORVhUX1AgPSB3aW5kb3cuX19ORVhUX1AgfHwgW10pLnB1c2goW1xuICAgICAgXCIvYWJvdXRcIixcbiAgICAgIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHJlcXVpcmUoXCIuL3NyYy9wYWdlcy9hYm91dC9pbmRleC5qc3hcIik7XG4gICAgICB9XG4gICAgXSk7XG4gICAgaWYobW9kdWxlLmhvdCkge1xuICAgICAgbW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgd2luZG93Ll9fTkVYVF9QLnB1c2goW1wiL2Fib3V0XCJdKVxuICAgICAgfSk7XG4gICAgfVxuICAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2Fabout&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cabout%5Cindex.jsx!\n"); + +/***/ }), + +/***/ "./node_modules/react-circular-progressbar/dist/styles.css": +/*!*****************************************************************!*\ + !*** ./node_modules/react-circular-progressbar/dist/styles.css ***! + \*****************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var api = __webpack_require__(/*! !../../next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js */ \"./node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js\");\n var content = __webpack_require__(/*! !!../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./styles.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/react-circular-progressbar/dist/styles.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = function(element) {\n // These elements should always exist. If they do not,\n // this code should fail.\n var anchorElement = document.querySelector('#__next_css__DO_NOT_USE__');\n var parentNode = anchorElement.parentNode// Normally <head>\n ;\n // Each style tag should be placed right before our\n // anchor. By inserting before and not after, we do not\n // need to track the last inserted element.\n parentNode.insertBefore(element, anchorElement);\n };\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\nif (true) {\n if (!content.locals || module.hot.invalidate) {\n var isEqualLocals = function isEqualLocals(a, b, isNamedExport) {\n if (!a && b || a && !b) {\n return false;\n }\n let p;\n for(p in a){\n if (isNamedExport && p === 'default') {\n continue;\n }\n if (a[p] !== b[p]) {\n return false;\n }\n }\n for(p in b){\n if (isNamedExport && p === 'default') {\n continue;\n }\n if (!a[p]) {\n return false;\n }\n }\n return true;\n};\n var oldLocals = content.locals;\n\n module.hot.accept(\n /*! !!../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./styles.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/react-circular-progressbar/dist/styles.css\",\n function () {\n content = __webpack_require__(/*! !!../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./styles.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/react-circular-progressbar/dist/styles.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\n if (!isEqualLocals(oldLocals, content.locals)) {\n module.hot.invalidate();\n\n return;\n }\n\n oldLocals = content.locals;\n\n update(content);\n }\n )\n }\n\n module.hot.dispose(function() {\n update();\n });\n}\n\nmodule.exports = content.locals || {};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtY2lyY3VsYXItcHJvZ3Jlc3NiYXIvZGlzdC9zdHlsZXMuY3NzLmpzIiwibWFwcGluZ3MiOiJBQUFBLFVBQVUsbUJBQU8sQ0FBQywwTUFBOEY7QUFDaEgsMEJBQTBCLG1CQUFPLENBQUMsdWZBQTBOOztBQUU1UDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOzs7QUFHQSxJQUFJLElBQVU7QUFDZCx5QkFBeUIsVUFBVTtBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsSUFBSSxpQkFBaUI7QUFDckIsTUFBTSx1ZkFBME47QUFDaE87QUFDQSxrQkFBa0IsbUJBQU8sQ0FBQyx1ZkFBME47O0FBRXBQOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGdCQUFnQixVQUFVOztBQUUxQjtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLEVBQUUsVUFBVTtBQUNaO0FBQ0EsR0FBRztBQUNIOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9yZWFjdC1jaXJjdWxhci1wcm9ncmVzc2Jhci9kaXN0L3N0eWxlcy5jc3M/ZWEwYSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgYXBpID0gcmVxdWlyZShcIiEuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtc3R5bGUtbG9hZGVyL3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCIpO1xuICAgICAgICAgICAgdmFyIGNvbnRlbnQgPSByZXF1aXJlKFwiISEuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL2Nzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzhdLnVzZVsxXSEuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMl0hLi9zdHlsZXMuY3NzXCIpO1xuXG4gICAgICAgICAgICBjb250ZW50ID0gY29udGVudC5fX2VzTW9kdWxlID8gY29udGVudC5kZWZhdWx0IDogY29udGVudDtcblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICBjb250ZW50ID0gW1ttb2R1bGUuaWQsIGNvbnRlbnQsICcnXV07XG4gICAgICAgICAgICB9XG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuaW5zZXJ0ID0gZnVuY3Rpb24oZWxlbWVudCkge1xuICAgICAgICAgICAgICAgIC8vIFRoZXNlIGVsZW1lbnRzIHNob3VsZCBhbHdheXMgZXhpc3QuIElmIHRoZXkgZG8gbm90LFxuICAgICAgICAgICAgICAgIC8vIHRoaXMgY29kZSBzaG91bGQgZmFpbC5cbiAgICAgICAgICAgICAgICB2YXIgYW5jaG9yRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNfX25leHRfY3NzX19ET19OT1RfVVNFX18nKTtcbiAgICAgICAgICAgICAgICB2YXIgcGFyZW50Tm9kZSA9IGFuY2hvckVsZW1lbnQucGFyZW50Tm9kZS8vIE5vcm1hbGx5IDxoZWFkPlxuICAgICAgICAgICAgICAgIDtcbiAgICAgICAgICAgICAgICAvLyBFYWNoIHN0eWxlIHRhZyBzaG91bGQgYmUgcGxhY2VkIHJpZ2h0IGJlZm9yZSBvdXJcbiAgICAgICAgICAgICAgICAvLyBhbmNob3IuIEJ5IGluc2VydGluZyBiZWZvcmUgYW5kIG5vdCBhZnRlciwgd2UgZG8gbm90XG4gICAgICAgICAgICAgICAgLy8gbmVlZCB0byB0cmFjayB0aGUgbGFzdCBpbnNlcnRlZCBlbGVtZW50LlxuICAgICAgICAgICAgICAgIHBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGVsZW1lbnQsIGFuY2hvckVsZW1lbnQpO1xuICAgICAgICAgICAgfTtcbm9wdGlvbnMuc2luZ2xldG9uID0gZmFsc2U7XG5cbnZhciB1cGRhdGUgPSBhcGkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuaWYgKG1vZHVsZS5ob3QpIHtcbiAgaWYgKCFjb250ZW50LmxvY2FscyB8fCBtb2R1bGUuaG90LmludmFsaWRhdGUpIHtcbiAgICB2YXIgaXNFcXVhbExvY2FscyA9IGZ1bmN0aW9uIGlzRXF1YWxMb2NhbHMoYSwgYiwgaXNOYW1lZEV4cG9ydCkge1xuICAgIGlmICghYSAmJiBiIHx8IGEgJiYgIWIpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBsZXQgcDtcbiAgICBmb3IocCBpbiBhKXtcbiAgICAgICAgaWYgKGlzTmFtZWRFeHBvcnQgJiYgcCA9PT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYVtwXSAhPT0gYltwXSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZvcihwIGluIGIpe1xuICAgICAgICBpZiAoaXNOYW1lZEV4cG9ydCAmJiBwID09PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghYVtwXSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufTtcbiAgICB2YXIgb2xkTG9jYWxzID0gY29udGVudC5sb2NhbHM7XG5cbiAgICBtb2R1bGUuaG90LmFjY2VwdChcbiAgICAgIFwiISEuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL2Nzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzhdLnVzZVsxXSEuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMl0hLi9zdHlsZXMuY3NzXCIsXG4gICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNvbnRlbnQgPSByZXF1aXJlKFwiISEuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL2Nzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzhdLnVzZVsxXSEuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMl0hLi9zdHlsZXMuY3NzXCIpO1xuXG4gICAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50Ll9fZXNNb2R1bGUgPyBjb250ZW50LmRlZmF1bHQgOiBjb250ZW50O1xuXG4gICAgICAgICAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBjb250ZW50ID0gW1ttb2R1bGUuaWQsIGNvbnRlbnQsICcnXV07XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBpZiAoIWlzRXF1YWxMb2NhbHMob2xkTG9jYWxzLCBjb250ZW50LmxvY2FscykpIHtcbiAgICAgICAgICAgICAgICBtb2R1bGUuaG90LmludmFsaWRhdGUoKTtcblxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIG9sZExvY2FscyA9IGNvbnRlbnQubG9jYWxzO1xuXG4gICAgICAgICAgICAgIHVwZGF0ZShjb250ZW50KTtcbiAgICAgIH1cbiAgICApXG4gIH1cblxuICBtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24oKSB7XG4gICAgdXBkYXRlKCk7XG4gIH0pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNvbnRlbnQubG9jYWxzIHx8IHt9OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-circular-progressbar/dist/styles.css\n"); + +/***/ }), + +/***/ "./node_modules/react-modal-video/css/modal-video.css": +/*!************************************************************!*\ + !*** ./node_modules/react-modal-video/css/modal-video.css ***! + \************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var api = __webpack_require__(/*! !../../next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js */ \"./node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js\");\n var content = __webpack_require__(/*! !!../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./modal-video.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/react-modal-video/css/modal-video.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = function(element) {\n // These elements should always exist. If they do not,\n // this code should fail.\n var anchorElement = document.querySelector('#__next_css__DO_NOT_USE__');\n var parentNode = anchorElement.parentNode// Normally <head>\n ;\n // Each style tag should be placed right before our\n // anchor. By inserting before and not after, we do not\n // need to track the last inserted element.\n parentNode.insertBefore(element, anchorElement);\n };\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\nif (true) {\n if (!content.locals || module.hot.invalidate) {\n var isEqualLocals = function isEqualLocals(a, b, isNamedExport) {\n if (!a && b || a && !b) {\n return false;\n }\n let p;\n for(p in a){\n if (isNamedExport && p === 'default') {\n continue;\n }\n if (a[p] !== b[p]) {\n return false;\n }\n }\n for(p in b){\n if (isNamedExport && p === 'default') {\n continue;\n }\n if (!a[p]) {\n return false;\n }\n }\n return true;\n};\n var oldLocals = content.locals;\n\n module.hot.accept(\n /*! !!../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./modal-video.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/react-modal-video/css/modal-video.css\",\n function () {\n content = __webpack_require__(/*! !!../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./modal-video.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/react-modal-video/css/modal-video.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\n if (!isEqualLocals(oldLocals, content.locals)) {\n module.hot.invalidate();\n\n return;\n }\n\n oldLocals = content.locals;\n\n update(content);\n }\n )\n }\n\n module.hot.dispose(function() {\n update();\n });\n}\n\nmodule.exports = content.locals || {};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtbW9kYWwtdmlkZW8vY3NzL21vZGFsLXZpZGVvLmNzcy5qcyIsIm1hcHBpbmdzIjoiQUFBQSxVQUFVLG1CQUFPLENBQUMsME1BQThGO0FBQ2hILDBCQUEwQixtQkFBTyxDQUFDLHVmQUErTjs7QUFFalE7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7O0FBR0EsSUFBSSxJQUFVO0FBQ2QseUJBQXlCLFVBQVU7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLElBQUksaUJBQWlCO0FBQ3JCLE1BQU0sdWZBQStOO0FBQ3JPO0FBQ0Esa0JBQWtCLG1CQUFPLENBQUMsdWZBQStOOztBQUV6UDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxnQkFBZ0IsVUFBVTs7QUFFMUI7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxFQUFFLFVBQVU7QUFDWjtBQUNBLEdBQUc7QUFDSDs7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmVhY3QtbW9kYWwtdmlkZW8vY3NzL21vZGFsLXZpZGVvLmNzcz80YzUxIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBhcGkgPSByZXF1aXJlKFwiIS4uLy4uL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvbmV4dC1zdHlsZS1sb2FkZXIvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIik7XG4gICAgICAgICAgICB2YXIgY29udGVudCA9IHJlcXVpcmUoXCIhIS4uLy4uL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvY3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzFdIS4uLy4uL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzhdLnVzZVsyXSEuL21vZGFsLXZpZGVvLmNzc1wiKTtcblxuICAgICAgICAgICAgY29udGVudCA9IGNvbnRlbnQuX19lc01vZHVsZSA/IGNvbnRlbnQuZGVmYXVsdCA6IGNvbnRlbnQ7XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgY29udGVudCA9IFtbbW9kdWxlLmlkLCBjb250ZW50LCAnJ11dO1xuICAgICAgICAgICAgfVxuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLmluc2VydCA9IGZ1bmN0aW9uKGVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAvLyBUaGVzZSBlbGVtZW50cyBzaG91bGQgYWx3YXlzIGV4aXN0LiBJZiB0aGV5IGRvIG5vdCxcbiAgICAgICAgICAgICAgICAvLyB0aGlzIGNvZGUgc2hvdWxkIGZhaWwuXG4gICAgICAgICAgICAgICAgdmFyIGFuY2hvckVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjX19uZXh0X2Nzc19fRE9fTk9UX1VTRV9fJyk7XG4gICAgICAgICAgICAgICAgdmFyIHBhcmVudE5vZGUgPSBhbmNob3JFbGVtZW50LnBhcmVudE5vZGUvLyBOb3JtYWxseSA8aGVhZD5cbiAgICAgICAgICAgICAgICA7XG4gICAgICAgICAgICAgICAgLy8gRWFjaCBzdHlsZSB0YWcgc2hvdWxkIGJlIHBsYWNlZCByaWdodCBiZWZvcmUgb3VyXG4gICAgICAgICAgICAgICAgLy8gYW5jaG9yLiBCeSBpbnNlcnRpbmcgYmVmb3JlIGFuZCBub3QgYWZ0ZXIsIHdlIGRvIG5vdFxuICAgICAgICAgICAgICAgIC8vIG5lZWQgdG8gdHJhY2sgdGhlIGxhc3QgaW5zZXJ0ZWQgZWxlbWVudC5cbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlLmluc2VydEJlZm9yZShlbGVtZW50LCBhbmNob3JFbGVtZW50KTtcbiAgICAgICAgICAgIH07XG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xuXG52YXIgdXBkYXRlID0gYXBpKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cbmlmIChtb2R1bGUuaG90KSB7XG4gIGlmICghY29udGVudC5sb2NhbHMgfHwgbW9kdWxlLmhvdC5pbnZhbGlkYXRlKSB7XG4gICAgdmFyIGlzRXF1YWxMb2NhbHMgPSBmdW5jdGlvbiBpc0VxdWFsTG9jYWxzKGEsIGIsIGlzTmFtZWRFeHBvcnQpIHtcbiAgICBpZiAoIWEgJiYgYiB8fCBhICYmICFiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgbGV0IHA7XG4gICAgZm9yKHAgaW4gYSl7XG4gICAgICAgIGlmIChpc05hbWVkRXhwb3J0ICYmIHAgPT09ICdkZWZhdWx0Jykge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFbcF0gIT09IGJbcF0pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmb3IocCBpbiBiKXtcbiAgICAgICAgaWYgKGlzTmFtZWRFeHBvcnQgJiYgcCA9PT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWFbcF0pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn07XG4gICAgdmFyIG9sZExvY2FscyA9IGNvbnRlbnQubG9jYWxzO1xuXG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoXG4gICAgICBcIiEhLi4vLi4vbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMV0hLi4vLi4vbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzJdIS4vbW9kYWwtdmlkZW8uY3NzXCIsXG4gICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNvbnRlbnQgPSByZXF1aXJlKFwiISEuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL2Nzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzhdLnVzZVsxXSEuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMl0hLi9tb2RhbC12aWRlby5jc3NcIik7XG5cbiAgICAgICAgICAgICAgY29udGVudCA9IGNvbnRlbnQuX19lc01vZHVsZSA/IGNvbnRlbnQuZGVmYXVsdCA6IGNvbnRlbnQ7XG5cbiAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmICghaXNFcXVhbExvY2FscyhvbGRMb2NhbHMsIGNvbnRlbnQubG9jYWxzKSkge1xuICAgICAgICAgICAgICAgIG1vZHVsZS5ob3QuaW52YWxpZGF0ZSgpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgb2xkTG9jYWxzID0gY29udGVudC5sb2NhbHM7XG5cbiAgICAgICAgICAgICAgdXBkYXRlKGNvbnRlbnQpO1xuICAgICAgfVxuICAgIClcbiAgfVxuXG4gIG1vZHVsZS5ob3QuZGlzcG9zZShmdW5jdGlvbigpIHtcbiAgICB1cGRhdGUoKTtcbiAgfSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY29udGVudC5sb2NhbHMgfHwge307Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/react-modal-video/css/modal-video.css\n"); + +/***/ }), + +/***/ "./node_modules/slick-carousel/slick/slick-theme.css": +/*!***********************************************************!*\ + !*** ./node_modules/slick-carousel/slick/slick-theme.css ***! + \***********************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var api = __webpack_require__(/*! !../../next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js */ \"./node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js\");\n var content = __webpack_require__(/*! !!../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./slick-theme.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick-theme.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = function(element) {\n // These elements should always exist. If they do not,\n // this code should fail.\n var anchorElement = document.querySelector('#__next_css__DO_NOT_USE__');\n var parentNode = anchorElement.parentNode// Normally <head>\n ;\n // Each style tag should be placed right before our\n // anchor. By inserting before and not after, we do not\n // need to track the last inserted element.\n parentNode.insertBefore(element, anchorElement);\n };\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\nif (true) {\n if (!content.locals || module.hot.invalidate) {\n var isEqualLocals = function isEqualLocals(a, b, isNamedExport) {\n if (!a && b || a && !b) {\n return false;\n }\n let p;\n for(p in a){\n if (isNamedExport && p === 'default') {\n continue;\n }\n if (a[p] !== b[p]) {\n return false;\n }\n }\n for(p in b){\n if (isNamedExport && p === 'default') {\n continue;\n }\n if (!a[p]) {\n return false;\n }\n }\n return true;\n};\n var oldLocals = content.locals;\n\n module.hot.accept(\n /*! !!../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./slick-theme.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick-theme.css\",\n function () {\n content = __webpack_require__(/*! !!../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./slick-theme.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick-theme.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\n if (!isEqualLocals(oldLocals, content.locals)) {\n module.hot.invalidate();\n\n return;\n }\n\n oldLocals = content.locals;\n\n update(content);\n }\n )\n }\n\n module.hot.dispose(function() {\n update();\n });\n}\n\nmodule.exports = content.locals || {};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc2xpY2stY2Fyb3VzZWwvc2xpY2svc2xpY2stdGhlbWUuY3NzLmpzIiwibWFwcGluZ3MiOiJBQUFBLFVBQVUsbUJBQU8sQ0FBQywwTUFBOEY7QUFDaEgsMEJBQTBCLG1CQUFPLENBQUMsc2ZBQStOOztBQUVqUTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOzs7QUFHQSxJQUFJLElBQVU7QUFDZCx5QkFBeUIsVUFBVTtBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsSUFBSSxpQkFBaUI7QUFDckIsTUFBTSxzZkFBK047QUFDck87QUFDQSxrQkFBa0IsbUJBQU8sQ0FBQyxzZkFBK047O0FBRXpQOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGdCQUFnQixVQUFVOztBQUUxQjtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLEVBQUUsVUFBVTtBQUNaO0FBQ0EsR0FBRztBQUNIOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zbGljay1jYXJvdXNlbC9zbGljay9zbGljay10aGVtZS5jc3M/NzcyOCJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgYXBpID0gcmVxdWlyZShcIiEuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtc3R5bGUtbG9hZGVyL3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCIpO1xuICAgICAgICAgICAgdmFyIGNvbnRlbnQgPSByZXF1aXJlKFwiISEuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL2Nzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzhdLnVzZVsxXSEuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMl0hLi9zbGljay10aGVtZS5jc3NcIik7XG5cbiAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50Ll9fZXNNb2R1bGUgPyBjb250ZW50LmRlZmF1bHQgOiBjb250ZW50O1xuXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcbiAgICAgICAgICAgIH1cblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5pbnNlcnQgPSBmdW5jdGlvbihlbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgLy8gVGhlc2UgZWxlbWVudHMgc2hvdWxkIGFsd2F5cyBleGlzdC4gSWYgdGhleSBkbyBub3QsXG4gICAgICAgICAgICAgICAgLy8gdGhpcyBjb2RlIHNob3VsZCBmYWlsLlxuICAgICAgICAgICAgICAgIHZhciBhbmNob3JFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI19fbmV4dF9jc3NfX0RPX05PVF9VU0VfXycpO1xuICAgICAgICAgICAgICAgIHZhciBwYXJlbnROb2RlID0gYW5jaG9yRWxlbWVudC5wYXJlbnROb2RlLy8gTm9ybWFsbHkgPGhlYWQ+XG4gICAgICAgICAgICAgICAgO1xuICAgICAgICAgICAgICAgIC8vIEVhY2ggc3R5bGUgdGFnIHNob3VsZCBiZSBwbGFjZWQgcmlnaHQgYmVmb3JlIG91clxuICAgICAgICAgICAgICAgIC8vIGFuY2hvci4gQnkgaW5zZXJ0aW5nIGJlZm9yZSBhbmQgbm90IGFmdGVyLCB3ZSBkbyBub3RcbiAgICAgICAgICAgICAgICAvLyBuZWVkIHRvIHRyYWNrIHRoZSBsYXN0IGluc2VydGVkIGVsZW1lbnQuXG4gICAgICAgICAgICAgICAgcGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZWxlbWVudCwgYW5jaG9yRWxlbWVudCk7XG4gICAgICAgICAgICB9O1xub3B0aW9ucy5zaW5nbGV0b24gPSBmYWxzZTtcblxudmFyIHVwZGF0ZSA9IGFwaShjb250ZW50LCBvcHRpb25zKTtcblxuXG5pZiAobW9kdWxlLmhvdCkge1xuICBpZiAoIWNvbnRlbnQubG9jYWxzIHx8IG1vZHVsZS5ob3QuaW52YWxpZGF0ZSkge1xuICAgIHZhciBpc0VxdWFsTG9jYWxzID0gZnVuY3Rpb24gaXNFcXVhbExvY2FscyhhLCBiLCBpc05hbWVkRXhwb3J0KSB7XG4gICAgaWYgKCFhICYmIGIgfHwgYSAmJiAhYikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGxldCBwO1xuICAgIGZvcihwIGluIGEpe1xuICAgICAgICBpZiAoaXNOYW1lZEV4cG9ydCAmJiBwID09PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhW3BdICE9PSBiW3BdKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZm9yKHAgaW4gYil7XG4gICAgICAgIGlmIChpc05hbWVkRXhwb3J0ICYmIHAgPT09ICdkZWZhdWx0Jykge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFhW3BdKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG59O1xuICAgIHZhciBvbGRMb2NhbHMgPSBjb250ZW50LmxvY2FscztcblxuICAgIG1vZHVsZS5ob3QuYWNjZXB0KFxuICAgICAgXCIhIS4uLy4uL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvY3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzFdIS4uLy4uL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzhdLnVzZVsyXSEuL3NsaWNrLXRoZW1lLmNzc1wiLFxuICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICBjb250ZW50ID0gcmVxdWlyZShcIiEhLi4vLi4vbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMV0hLi4vLi4vbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzJdIS4vc2xpY2stdGhlbWUuY3NzXCIpO1xuXG4gICAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50Ll9fZXNNb2R1bGUgPyBjb250ZW50LmRlZmF1bHQgOiBjb250ZW50O1xuXG4gICAgICAgICAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBjb250ZW50ID0gW1ttb2R1bGUuaWQsIGNvbnRlbnQsICcnXV07XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBpZiAoIWlzRXF1YWxMb2NhbHMob2xkTG9jYWxzLCBjb250ZW50LmxvY2FscykpIHtcbiAgICAgICAgICAgICAgICBtb2R1bGUuaG90LmludmFsaWRhdGUoKTtcblxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIG9sZExvY2FscyA9IGNvbnRlbnQubG9jYWxzO1xuXG4gICAgICAgICAgICAgIHVwZGF0ZShjb250ZW50KTtcbiAgICAgIH1cbiAgICApXG4gIH1cblxuICBtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24oKSB7XG4gICAgdXBkYXRlKCk7XG4gIH0pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNvbnRlbnQubG9jYWxzIHx8IHt9OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/slick-carousel/slick/slick-theme.css\n"); + +/***/ }), + +/***/ "./node_modules/slick-carousel/slick/slick.css": +/*!*****************************************************!*\ + !*** ./node_modules/slick-carousel/slick/slick.css ***! + \*****************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var api = __webpack_require__(/*! !../../next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js */ \"./node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js\");\n var content = __webpack_require__(/*! !!../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./slick.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = function(element) {\n // These elements should always exist. If they do not,\n // this code should fail.\n var anchorElement = document.querySelector('#__next_css__DO_NOT_USE__');\n var parentNode = anchorElement.parentNode// Normally <head>\n ;\n // Each style tag should be placed right before our\n // anchor. By inserting before and not after, we do not\n // need to track the last inserted element.\n parentNode.insertBefore(element, anchorElement);\n };\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\nif (true) {\n if (!content.locals || module.hot.invalidate) {\n var isEqualLocals = function isEqualLocals(a, b, isNamedExport) {\n if (!a && b || a && !b) {\n return false;\n }\n let p;\n for(p in a){\n if (isNamedExport && p === 'default') {\n continue;\n }\n if (a[p] !== b[p]) {\n return false;\n }\n }\n for(p in b){\n if (isNamedExport && p === 'default') {\n continue;\n }\n if (!a[p]) {\n return false;\n }\n }\n return true;\n};\n var oldLocals = content.locals;\n\n module.hot.accept(\n /*! !!../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./slick.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick.css\",\n function () {\n content = __webpack_require__(/*! !!../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./slick.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\n if (!isEqualLocals(oldLocals, content.locals)) {\n module.hot.invalidate();\n\n return;\n }\n\n oldLocals = content.locals;\n\n update(content);\n }\n )\n }\n\n module.hot.dispose(function() {\n update();\n });\n}\n\nmodule.exports = content.locals || {};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc2xpY2stY2Fyb3VzZWwvc2xpY2svc2xpY2suY3NzLmpzIiwibWFwcGluZ3MiOiJBQUFBLFVBQVUsbUJBQU8sQ0FBQywwTUFBOEY7QUFDaEgsMEJBQTBCLG1CQUFPLENBQUMsMGVBQXlOOztBQUUzUDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOzs7QUFHQSxJQUFJLElBQVU7QUFDZCx5QkFBeUIsVUFBVTtBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsSUFBSSxpQkFBaUI7QUFDckIsTUFBTSwwZUFBeU47QUFDL047QUFDQSxrQkFBa0IsbUJBQU8sQ0FBQywwZUFBeU47O0FBRW5QOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGdCQUFnQixVQUFVOztBQUUxQjtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLEVBQUUsVUFBVTtBQUNaO0FBQ0EsR0FBRztBQUNIOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zbGljay1jYXJvdXNlbC9zbGljay9zbGljay5jc3M/NGM1YiJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgYXBpID0gcmVxdWlyZShcIiEuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtc3R5bGUtbG9hZGVyL3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCIpO1xuICAgICAgICAgICAgdmFyIGNvbnRlbnQgPSByZXF1aXJlKFwiISEuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL2Nzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzhdLnVzZVsxXSEuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMl0hLi9zbGljay5jc3NcIik7XG5cbiAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50Ll9fZXNNb2R1bGUgPyBjb250ZW50LmRlZmF1bHQgOiBjb250ZW50O1xuXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcbiAgICAgICAgICAgIH1cblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5pbnNlcnQgPSBmdW5jdGlvbihlbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgLy8gVGhlc2UgZWxlbWVudHMgc2hvdWxkIGFsd2F5cyBleGlzdC4gSWYgdGhleSBkbyBub3QsXG4gICAgICAgICAgICAgICAgLy8gdGhpcyBjb2RlIHNob3VsZCBmYWlsLlxuICAgICAgICAgICAgICAgIHZhciBhbmNob3JFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI19fbmV4dF9jc3NfX0RPX05PVF9VU0VfXycpO1xuICAgICAgICAgICAgICAgIHZhciBwYXJlbnROb2RlID0gYW5jaG9yRWxlbWVudC5wYXJlbnROb2RlLy8gTm9ybWFsbHkgPGhlYWQ+XG4gICAgICAgICAgICAgICAgO1xuICAgICAgICAgICAgICAgIC8vIEVhY2ggc3R5bGUgdGFnIHNob3VsZCBiZSBwbGFjZWQgcmlnaHQgYmVmb3JlIG91clxuICAgICAgICAgICAgICAgIC8vIGFuY2hvci4gQnkgaW5zZXJ0aW5nIGJlZm9yZSBhbmQgbm90IGFmdGVyLCB3ZSBkbyBub3RcbiAgICAgICAgICAgICAgICAvLyBuZWVkIHRvIHRyYWNrIHRoZSBsYXN0IGluc2VydGVkIGVsZW1lbnQuXG4gICAgICAgICAgICAgICAgcGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZWxlbWVudCwgYW5jaG9yRWxlbWVudCk7XG4gICAgICAgICAgICB9O1xub3B0aW9ucy5zaW5nbGV0b24gPSBmYWxzZTtcblxudmFyIHVwZGF0ZSA9IGFwaShjb250ZW50LCBvcHRpb25zKTtcblxuXG5pZiAobW9kdWxlLmhvdCkge1xuICBpZiAoIWNvbnRlbnQubG9jYWxzIHx8IG1vZHVsZS5ob3QuaW52YWxpZGF0ZSkge1xuICAgIHZhciBpc0VxdWFsTG9jYWxzID0gZnVuY3Rpb24gaXNFcXVhbExvY2FscyhhLCBiLCBpc05hbWVkRXhwb3J0KSB7XG4gICAgaWYgKCFhICYmIGIgfHwgYSAmJiAhYikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGxldCBwO1xuICAgIGZvcihwIGluIGEpe1xuICAgICAgICBpZiAoaXNOYW1lZEV4cG9ydCAmJiBwID09PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhW3BdICE9PSBiW3BdKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZm9yKHAgaW4gYil7XG4gICAgICAgIGlmIChpc05hbWVkRXhwb3J0ICYmIHAgPT09ICdkZWZhdWx0Jykge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFhW3BdKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG59O1xuICAgIHZhciBvbGRMb2NhbHMgPSBjb250ZW50LmxvY2FscztcblxuICAgIG1vZHVsZS5ob3QuYWNjZXB0KFxuICAgICAgXCIhIS4uLy4uL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvY3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzFdIS4uLy4uL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzhdLnVzZVsyXSEuL3NsaWNrLmNzc1wiLFxuICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICBjb250ZW50ID0gcmVxdWlyZShcIiEhLi4vLi4vbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMV0hLi4vLi4vbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzJdIS4vc2xpY2suY3NzXCIpO1xuXG4gICAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50Ll9fZXNNb2R1bGUgPyBjb250ZW50LmRlZmF1bHQgOiBjb250ZW50O1xuXG4gICAgICAgICAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBjb250ZW50ID0gW1ttb2R1bGUuaWQsIGNvbnRlbnQsICcnXV07XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBpZiAoIWlzRXF1YWxMb2NhbHMob2xkTG9jYWxzLCBjb250ZW50LmxvY2FscykpIHtcbiAgICAgICAgICAgICAgICBtb2R1bGUuaG90LmludmFsaWRhdGUoKTtcblxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIG9sZExvY2FscyA9IGNvbnRlbnQubG9jYWxzO1xuXG4gICAgICAgICAgICAgIHVwZGF0ZShjb250ZW50KTtcbiAgICAgIH1cbiAgICApXG4gIH1cblxuICBtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24oKSB7XG4gICAgdXBkYXRlKCk7XG4gIH0pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNvbnRlbnQubG9jYWxzIHx8IHt9OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/slick-carousel/slick/slick.css\n"); + +/***/ }), + +/***/ "./node_modules/next/link.js": +/*!***********************************!*\ + !*** ./node_modules/next/link.js ***! + \***********************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("module.exports = __webpack_require__(/*! ./dist/client/link */ \"./node_modules/next/dist/client/link.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9saW5rLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBLHlHQUE4QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9saW5rLmpzPzc1YjMiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Rpc3QvY2xpZW50L2xpbmsnKVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/link.js\n"); + +/***/ }), + +/***/ "./node_modules/prop-types/checkPropTypes.js": +/*!***************************************************!*\ + !*** ./node_modules/prop-types/checkPropTypes.js ***! + \***************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\n\n\nvar printWarning = function() {};\n\nif (true) {\n var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ \"./node_modules/prop-types/lib/ReactPropTypesSecret.js\");\n var loggedTypeFailures = {};\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (true) {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (true) {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9jaGVja1Byb3BUeXBlcy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWE7O0FBRWI7O0FBRUEsSUFBSSxJQUFxQztBQUN6Qyw2QkFBNkIsbUJBQU8sQ0FBQyx5RkFBNEI7QUFDakU7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsV0FBVztBQUN0QjtBQUNBO0FBQ0E7QUFDQSxNQUFNLElBQXFDO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2R0FBNkc7QUFDN0c7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0REFBNEQ7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLElBQXFDO0FBQzNDO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9jaGVja1Byb3BUeXBlcy5qcz8yNjI2Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgcHJpbnRXYXJuaW5nID0gZnVuY3Rpb24oKSB7fTtcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgdmFyIFJlYWN0UHJvcFR5cGVzU2VjcmV0ID0gcmVxdWlyZSgnLi9saWIvUmVhY3RQcm9wVHlwZXNTZWNyZXQnKTtcbiAgdmFyIGxvZ2dlZFR5cGVGYWlsdXJlcyA9IHt9O1xuICB2YXIgaGFzID0gRnVuY3Rpb24uY2FsbC5iaW5kKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkpO1xuXG4gIHByaW50V2FybmluZyA9IGZ1bmN0aW9uKHRleHQpIHtcbiAgICB2YXIgbWVzc2FnZSA9ICdXYXJuaW5nOiAnICsgdGV4dDtcbiAgICBpZiAodHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBjb25zb2xlLmVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgLy8gLS0tIFdlbGNvbWUgdG8gZGVidWdnaW5nIFJlYWN0IC0tLVxuICAgICAgLy8gVGhpcyBlcnJvciB3YXMgdGhyb3duIGFzIGEgY29udmVuaWVuY2Ugc28gdGhhdCB5b3UgY2FuIHVzZSB0aGlzIHN0YWNrXG4gICAgICAvLyB0byBmaW5kIHRoZSBjYWxsc2l0ZSB0aGF0IGNhdXNlZCB0aGlzIHdhcm5pbmcgdG8gZmlyZS5cbiAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgICB9IGNhdGNoICh4KSB7fVxuICB9O1xufVxuXG4vKipcbiAqIEFzc2VydCB0aGF0IHRoZSB2YWx1ZXMgbWF0Y2ggd2l0aCB0aGUgdHlwZSBzcGVjcy5cbiAqIEVycm9yIG1lc3NhZ2VzIGFyZSBtZW1vcml6ZWQgYW5kIHdpbGwgb25seSBiZSBzaG93biBvbmNlLlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSB0eXBlU3BlY3MgTWFwIG9mIG5hbWUgdG8gYSBSZWFjdFByb3BUeXBlXG4gKiBAcGFyYW0ge29iamVjdH0gdmFsdWVzIFJ1bnRpbWUgdmFsdWVzIHRoYXQgbmVlZCB0byBiZSB0eXBlLWNoZWNrZWRcbiAqIEBwYXJhbSB7c3RyaW5nfSBsb2NhdGlvbiBlLmcuIFwicHJvcFwiLCBcImNvbnRleHRcIiwgXCJjaGlsZCBjb250ZXh0XCJcbiAqIEBwYXJhbSB7c3RyaW5nfSBjb21wb25lbnROYW1lIE5hbWUgb2YgdGhlIGNvbXBvbmVudCBmb3IgZXJyb3IgbWVzc2FnZXMuXG4gKiBAcGFyYW0gez9GdW5jdGlvbn0gZ2V0U3RhY2sgUmV0dXJucyB0aGUgY29tcG9uZW50IHN0YWNrLlxuICogQHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gY2hlY2tQcm9wVHlwZXModHlwZVNwZWNzLCB2YWx1ZXMsIGxvY2F0aW9uLCBjb21wb25lbnROYW1lLCBnZXRTdGFjaykge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGZvciAodmFyIHR5cGVTcGVjTmFtZSBpbiB0eXBlU3BlY3MpIHtcbiAgICAgIGlmIChoYXModHlwZVNwZWNzLCB0eXBlU3BlY05hbWUpKSB7XG4gICAgICAgIHZhciBlcnJvcjtcbiAgICAgICAgLy8gUHJvcCB0eXBlIHZhbGlkYXRpb24gbWF5IHRocm93LiBJbiBjYXNlIHRoZXkgZG8sIHdlIGRvbid0IHdhbnQgdG9cbiAgICAgICAgLy8gZmFpbCB0aGUgcmVuZGVyIHBoYXNlIHdoZXJlIGl0IGRpZG4ndCBmYWlsIGJlZm9yZS4gU28gd2UgbG9nIGl0LlxuICAgICAgICAvLyBBZnRlciB0aGVzZSBoYXZlIGJlZW4gY2xlYW5lZCB1cCwgd2UnbGwgbGV0IHRoZW0gdGhyb3cuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgLy8gVGhpcyBpcyBpbnRlbnRpb25hbGx5IGFuIGludmFyaWFudCB0aGF0IGdldHMgY2F1Z2h0LiBJdCdzIHRoZSBzYW1lXG4gICAgICAgICAgLy8gYmVoYXZpb3IgYXMgd2l0aG91dCB0aGlzIHN0YXRlbWVudCBleGNlcHQgd2l0aCBhIGJldHRlciBtZXNzYWdlLlxuICAgICAgICAgIGlmICh0eXBlb2YgdHlwZVNwZWNzW3R5cGVTcGVjTmFtZV0gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHZhciBlcnIgPSBFcnJvcihcbiAgICAgICAgICAgICAgKGNvbXBvbmVudE5hbWUgfHwgJ1JlYWN0IGNsYXNzJykgKyAnOiAnICsgbG9jYXRpb24gKyAnIHR5cGUgYCcgKyB0eXBlU3BlY05hbWUgKyAnYCBpcyBpbnZhbGlkOyAnICtcbiAgICAgICAgICAgICAgJ2l0IG11c3QgYmUgYSBmdW5jdGlvbiwgdXN1YWxseSBmcm9tIHRoZSBgcHJvcC10eXBlc2AgcGFja2FnZSwgYnV0IHJlY2VpdmVkIGAnICsgdHlwZW9mIHR5cGVTcGVjc1t0eXBlU3BlY05hbWVdICsgJ2AuJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGVyci5uYW1lID0gJ0ludmFyaWFudCBWaW9sYXRpb24nO1xuICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlcnJvciA9IHR5cGVTcGVjc1t0eXBlU3BlY05hbWVdKHZhbHVlcywgdHlwZVNwZWNOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgbnVsbCwgUmVhY3RQcm9wVHlwZXNTZWNyZXQpO1xuICAgICAgICB9IGNhdGNoIChleCkge1xuICAgICAgICAgIGVycm9yID0gZXg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVycm9yICYmICEoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikpIHtcbiAgICAgICAgICBwcmludFdhcm5pbmcoXG4gICAgICAgICAgICAoY29tcG9uZW50TmFtZSB8fCAnUmVhY3QgY2xhc3MnKSArICc6IHR5cGUgc3BlY2lmaWNhdGlvbiBvZiAnICtcbiAgICAgICAgICAgIGxvY2F0aW9uICsgJyBgJyArIHR5cGVTcGVjTmFtZSArICdgIGlzIGludmFsaWQ7IHRoZSB0eXBlIGNoZWNrZXIgJyArXG4gICAgICAgICAgICAnZnVuY3Rpb24gbXVzdCByZXR1cm4gYG51bGxgIG9yIGFuIGBFcnJvcmAgYnV0IHJldHVybmVkIGEgJyArIHR5cGVvZiBlcnJvciArICcuICcgK1xuICAgICAgICAgICAgJ1lvdSBtYXkgaGF2ZSBmb3Jnb3R0ZW4gdG8gcGFzcyBhbiBhcmd1bWVudCB0byB0aGUgdHlwZSBjaGVja2VyICcgK1xuICAgICAgICAgICAgJ2NyZWF0b3IgKGFycmF5T2YsIGluc3RhbmNlT2YsIG9iamVjdE9mLCBvbmVPZiwgb25lT2ZUeXBlLCBhbmQgJyArXG4gICAgICAgICAgICAnc2hhcGUgYWxsIHJlcXVpcmUgYW4gYXJndW1lbnQpLidcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yICYmICEoZXJyb3IubWVzc2FnZSBpbiBsb2dnZWRUeXBlRmFpbHVyZXMpKSB7XG4gICAgICAgICAgLy8gT25seSBtb25pdG9yIHRoaXMgZmFpbHVyZSBvbmNlIGJlY2F1c2UgdGhlcmUgdGVuZHMgdG8gYmUgYSBsb3Qgb2YgdGhlXG4gICAgICAgICAgLy8gc2FtZSBlcnJvci5cbiAgICAgICAgICBsb2dnZWRUeXBlRmFpbHVyZXNbZXJyb3IubWVzc2FnZV0gPSB0cnVlO1xuXG4gICAgICAgICAgdmFyIHN0YWNrID0gZ2V0U3RhY2sgPyBnZXRTdGFjaygpIDogJyc7XG5cbiAgICAgICAgICBwcmludFdhcm5pbmcoXG4gICAgICAgICAgICAnRmFpbGVkICcgKyBsb2NhdGlvbiArICcgdHlwZTogJyArIGVycm9yLm1lc3NhZ2UgKyAoc3RhY2sgIT0gbnVsbCA/IHN0YWNrIDogJycpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFJlc2V0cyB3YXJuaW5nIGNhY2hlIHdoZW4gdGVzdGluZy5cbiAqXG4gKiBAcHJpdmF0ZVxuICovXG5jaGVja1Byb3BUeXBlcy5yZXNldFdhcm5pbmdDYWNoZSA9IGZ1bmN0aW9uKCkge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGxvZ2dlZFR5cGVGYWlsdXJlcyA9IHt9O1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY2hlY2tQcm9wVHlwZXM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/prop-types/checkPropTypes.js\n"); + +/***/ }), + +/***/ "./node_modules/prop-types/factoryWithTypeCheckers.js": +/*!************************************************************!*\ + !*** ./node_modules/prop-types/factoryWithTypeCheckers.js ***! + \************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\n\n\nvar ReactIs = __webpack_require__(/*! react-is */ \"./node_modules/prop-types/node_modules/react-is/index.js\");\nvar assign = __webpack_require__(/*! object-assign */ \"./node_modules/next/dist/build/polyfills/object-assign.js\");\n\nvar ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ \"./node_modules/prop-types/lib/ReactPropTypesSecret.js\");\nvar checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ \"./node_modules/prop-types/checkPropTypes.js\");\n\nvar has = Function.call.bind(Object.prototype.hasOwnProperty);\nvar printWarning = function() {};\n\nif (true) {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (true) {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if ( true && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (true) {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n true ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9mYWN0b3J5V2l0aFR5cGVDaGVja2Vycy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWE7O0FBRWIsY0FBYyxtQkFBTyxDQUFDLDBFQUFVO0FBQ2hDLGFBQWEsbUJBQU8sQ0FBQyxnRkFBZTs7QUFFcEMsMkJBQTJCLG1CQUFPLENBQUMseUZBQTRCO0FBQy9ELHFCQUFxQixtQkFBTyxDQUFDLHFFQUFrQjs7QUFFL0M7QUFDQTs7QUFFQSxJQUFJLElBQXFDO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQzs7QUFFM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsU0FBUztBQUN0QixjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWLDhCQUE4QjtBQUM5QixRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQkFBK0IsS0FBSztBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULDRCQUE0QjtBQUM1QixPQUFPO0FBQ1A7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxRQUFRLElBQXFDO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVUsU0FBUyxLQUFxQztBQUN4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixzQkFBc0I7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxVQUFVLElBQXFDO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0Esc0JBQXNCLDJCQUEyQjtBQUNqRDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU0sS0FBcUMsNEZBQTRGLENBQU07QUFDN0k7QUFDQTs7QUFFQSxvQkFBb0IsZ0NBQWdDO0FBQ3BEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHNCQUFzQixnQ0FBZ0M7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QjtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9mYWN0b3J5V2l0aFR5cGVDaGVja2Vycy5qcz9iNzZiIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUmVhY3RJcyA9IHJlcXVpcmUoJ3JlYWN0LWlzJyk7XG52YXIgYXNzaWduID0gcmVxdWlyZSgnb2JqZWN0LWFzc2lnbicpO1xuXG52YXIgUmVhY3RQcm9wVHlwZXNTZWNyZXQgPSByZXF1aXJlKCcuL2xpYi9SZWFjdFByb3BUeXBlc1NlY3JldCcpO1xudmFyIGNoZWNrUHJvcFR5cGVzID0gcmVxdWlyZSgnLi9jaGVja1Byb3BUeXBlcycpO1xuXG52YXIgaGFzID0gRnVuY3Rpb24uY2FsbC5iaW5kKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkpO1xudmFyIHByaW50V2FybmluZyA9IGZ1bmN0aW9uKCkge307XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIHByaW50V2FybmluZyA9IGZ1bmN0aW9uKHRleHQpIHtcbiAgICB2YXIgbWVzc2FnZSA9ICdXYXJuaW5nOiAnICsgdGV4dDtcbiAgICBpZiAodHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBjb25zb2xlLmVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgLy8gLS0tIFdlbGNvbWUgdG8gZGVidWdnaW5nIFJlYWN0IC0tLVxuICAgICAgLy8gVGhpcyBlcnJvciB3YXMgdGhyb3duIGFzIGEgY29udmVuaWVuY2Ugc28gdGhhdCB5b3UgY2FuIHVzZSB0aGlzIHN0YWNrXG4gICAgICAvLyB0byBmaW5kIHRoZSBjYWxsc2l0ZSB0aGF0IGNhdXNlZCB0aGlzIHdhcm5pbmcgdG8gZmlyZS5cbiAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgICB9IGNhdGNoICh4KSB7fVxuICB9O1xufVxuXG5mdW5jdGlvbiBlbXB0eUZ1bmN0aW9uVGhhdFJldHVybnNOdWxsKCkge1xuICByZXR1cm4gbnVsbDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihpc1ZhbGlkRWxlbWVudCwgdGhyb3dPbkRpcmVjdEFjY2Vzcykge1xuICAvKiBnbG9iYWwgU3ltYm9sICovXG4gIHZhciBJVEVSQVRPUl9TWU1CT0wgPSB0eXBlb2YgU3ltYm9sID09PSAnZnVuY3Rpb24nICYmIFN5bWJvbC5pdGVyYXRvcjtcbiAgdmFyIEZBVVhfSVRFUkFUT1JfU1lNQk9MID0gJ0BAaXRlcmF0b3InOyAvLyBCZWZvcmUgU3ltYm9sIHNwZWMuXG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGl0ZXJhdG9yIG1ldGhvZCBmdW5jdGlvbiBjb250YWluZWQgb24gdGhlIGl0ZXJhYmxlIG9iamVjdC5cbiAgICpcbiAgICogQmUgc3VyZSB0byBpbnZva2UgdGhlIGZ1bmN0aW9uIHdpdGggdGhlIGl0ZXJhYmxlIGFzIGNvbnRleHQ6XG4gICAqXG4gICAqICAgICB2YXIgaXRlcmF0b3JGbiA9IGdldEl0ZXJhdG9yRm4obXlJdGVyYWJsZSk7XG4gICAqICAgICBpZiAoaXRlcmF0b3JGbikge1xuICAgKiAgICAgICB2YXIgaXRlcmF0b3IgPSBpdGVyYXRvckZuLmNhbGwobXlJdGVyYWJsZSk7XG4gICAqICAgICAgIC4uLlxuICAgKiAgICAgfVxuICAgKlxuICAgKiBAcGFyYW0gez9vYmplY3R9IG1heWJlSXRlcmFibGVcbiAgICogQHJldHVybiB7P2Z1bmN0aW9ufVxuICAgKi9cbiAgZnVuY3Rpb24gZ2V0SXRlcmF0b3JGbihtYXliZUl0ZXJhYmxlKSB7XG4gICAgdmFyIGl0ZXJhdG9yRm4gPSBtYXliZUl0ZXJhYmxlICYmIChJVEVSQVRPUl9TWU1CT0wgJiYgbWF5YmVJdGVyYWJsZVtJVEVSQVRPUl9TWU1CT0xdIHx8IG1heWJlSXRlcmFibGVbRkFVWF9JVEVSQVRPUl9TWU1CT0xdKTtcbiAgICBpZiAodHlwZW9mIGl0ZXJhdG9yRm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiBpdGVyYXRvckZuO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDb2xsZWN0aW9uIG9mIG1ldGhvZHMgdGhhdCBhbGxvdyBkZWNsYXJhdGlvbiBhbmQgdmFsaWRhdGlvbiBvZiBwcm9wcyB0aGF0IGFyZVxuICAgKiBzdXBwbGllZCB0byBSZWFjdCBjb21wb25lbnRzLiBFeGFtcGxlIHVzYWdlOlxuICAgKlxuICAgKiAgIHZhciBQcm9wcyA9IHJlcXVpcmUoJ1JlYWN0UHJvcFR5cGVzJyk7XG4gICAqICAgdmFyIE15QXJ0aWNsZSA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtcbiAgICogICAgIHByb3BUeXBlczoge1xuICAgKiAgICAgICAvLyBBbiBvcHRpb25hbCBzdHJpbmcgcHJvcCBuYW1lZCBcImRlc2NyaXB0aW9uXCIuXG4gICAqICAgICAgIGRlc2NyaXB0aW9uOiBQcm9wcy5zdHJpbmcsXG4gICAqXG4gICAqICAgICAgIC8vIEEgcmVxdWlyZWQgZW51bSBwcm9wIG5hbWVkIFwiY2F0ZWdvcnlcIi5cbiAgICogICAgICAgY2F0ZWdvcnk6IFByb3BzLm9uZU9mKFsnTmV3cycsJ1Bob3RvcyddKS5pc1JlcXVpcmVkLFxuICAgKlxuICAgKiAgICAgICAvLyBBIHByb3AgbmFtZWQgXCJkaWFsb2dcIiB0aGF0IHJlcXVpcmVzIGFuIGluc3RhbmNlIG9mIERpYWxvZy5cbiAgICogICAgICAgZGlhbG9nOiBQcm9wcy5pbnN0YW5jZU9mKERpYWxvZykuaXNSZXF1aXJlZFxuICAgKiAgICAgfSxcbiAgICogICAgIHJlbmRlcjogZnVuY3Rpb24oKSB7IC4uLiB9XG4gICAqICAgfSk7XG4gICAqXG4gICAqIEEgbW9yZSBmb3JtYWwgc3BlY2lmaWNhdGlvbiBvZiBob3cgdGhlc2UgbWV0aG9kcyBhcmUgdXNlZDpcbiAgICpcbiAgICogICB0eXBlIDo9IGFycmF5fGJvb2x8ZnVuY3xvYmplY3R8bnVtYmVyfHN0cmluZ3xvbmVPZihbLi4uXSl8aW5zdGFuY2VPZiguLi4pXG4gICAqICAgZGVjbCA6PSBSZWFjdFByb3BUeXBlcy57dHlwZX0oLmlzUmVxdWlyZWQpP1xuICAgKlxuICAgKiBFYWNoIGFuZCBldmVyeSBkZWNsYXJhdGlvbiBwcm9kdWNlcyBhIGZ1bmN0aW9uIHdpdGggdGhlIHNhbWUgc2lnbmF0dXJlLiBUaGlzXG4gICAqIGFsbG93cyB0aGUgY3JlYXRpb24gb2YgY3VzdG9tIHZhbGlkYXRpb24gZnVuY3Rpb25zLiBGb3IgZXhhbXBsZTpcbiAgICpcbiAgICogIHZhciBNeUxpbmsgPSBSZWFjdC5jcmVhdGVDbGFzcyh7XG4gICAqICAgIHByb3BUeXBlczoge1xuICAgKiAgICAgIC8vIEFuIG9wdGlvbmFsIHN0cmluZyBvciBVUkkgcHJvcCBuYW1lZCBcImhyZWZcIi5cbiAgICogICAgICBocmVmOiBmdW5jdGlvbihwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUpIHtcbiAgICogICAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wTmFtZV07XG4gICAqICAgICAgICBpZiAocHJvcFZhbHVlICE9IG51bGwgJiYgdHlwZW9mIHByb3BWYWx1ZSAhPT0gJ3N0cmluZycgJiZcbiAgICogICAgICAgICAgICAhKHByb3BWYWx1ZSBpbnN0YW5jZW9mIFVSSSkpIHtcbiAgICogICAgICAgICAgcmV0dXJuIG5ldyBFcnJvcihcbiAgICogICAgICAgICAgICAnRXhwZWN0ZWQgYSBzdHJpbmcgb3IgYW4gVVJJIGZvciAnICsgcHJvcE5hbWUgKyAnIGluICcgK1xuICAgKiAgICAgICAgICAgIGNvbXBvbmVudE5hbWVcbiAgICogICAgICAgICAgKTtcbiAgICogICAgICAgIH1cbiAgICogICAgICB9XG4gICAqICAgIH0sXG4gICAqICAgIHJlbmRlcjogZnVuY3Rpb24oKSB7Li4ufVxuICAgKiAgfSk7XG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cblxuICB2YXIgQU5PTllNT1VTID0gJzw8YW5vbnltb3VzPj4nO1xuXG4gIC8vIEltcG9ydGFudCFcbiAgLy8gS2VlcCB0aGlzIGxpc3QgaW4gc3luYyB3aXRoIHByb2R1Y3Rpb24gdmVyc2lvbiBpbiBgLi9mYWN0b3J5V2l0aFRocm93aW5nU2hpbXMuanNgLlxuICB2YXIgUmVhY3RQcm9wVHlwZXMgPSB7XG4gICAgYXJyYXk6IGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyKCdhcnJheScpLFxuICAgIGJvb2w6IGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyKCdib29sZWFuJyksXG4gICAgZnVuYzogY3JlYXRlUHJpbWl0aXZlVHlwZUNoZWNrZXIoJ2Z1bmN0aW9uJyksXG4gICAgbnVtYmVyOiBjcmVhdGVQcmltaXRpdmVUeXBlQ2hlY2tlcignbnVtYmVyJyksXG4gICAgb2JqZWN0OiBjcmVhdGVQcmltaXRpdmVUeXBlQ2hlY2tlcignb2JqZWN0JyksXG4gICAgc3RyaW5nOiBjcmVhdGVQcmltaXRpdmVUeXBlQ2hlY2tlcignc3RyaW5nJyksXG4gICAgc3ltYm9sOiBjcmVhdGVQcmltaXRpdmVUeXBlQ2hlY2tlcignc3ltYm9sJyksXG5cbiAgICBhbnk6IGNyZWF0ZUFueVR5cGVDaGVja2VyKCksXG4gICAgYXJyYXlPZjogY3JlYXRlQXJyYXlPZlR5cGVDaGVja2VyLFxuICAgIGVsZW1lbnQ6IGNyZWF0ZUVsZW1lbnRUeXBlQ2hlY2tlcigpLFxuICAgIGVsZW1lbnRUeXBlOiBjcmVhdGVFbGVtZW50VHlwZVR5cGVDaGVja2VyKCksXG4gICAgaW5zdGFuY2VPZjogY3JlYXRlSW5zdGFuY2VUeXBlQ2hlY2tlcixcbiAgICBub2RlOiBjcmVhdGVOb2RlQ2hlY2tlcigpLFxuICAgIG9iamVjdE9mOiBjcmVhdGVPYmplY3RPZlR5cGVDaGVja2VyLFxuICAgIG9uZU9mOiBjcmVhdGVFbnVtVHlwZUNoZWNrZXIsXG4gICAgb25lT2ZUeXBlOiBjcmVhdGVVbmlvblR5cGVDaGVja2VyLFxuICAgIHNoYXBlOiBjcmVhdGVTaGFwZVR5cGVDaGVja2VyLFxuICAgIGV4YWN0OiBjcmVhdGVTdHJpY3RTaGFwZVR5cGVDaGVja2VyLFxuICB9O1xuXG4gIC8qKlxuICAgKiBpbmxpbmVkIE9iamVjdC5pcyBwb2x5ZmlsbCB0byBhdm9pZCByZXF1aXJpbmcgY29uc3VtZXJzIHNoaXAgdGhlaXIgb3duXG4gICAqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL09iamVjdC9pc1xuICAgKi9cbiAgLyplc2xpbnQtZGlzYWJsZSBuby1zZWxmLWNvbXBhcmUqL1xuICBmdW5jdGlvbiBpcyh4LCB5KSB7XG4gICAgLy8gU2FtZVZhbHVlIGFsZ29yaXRobVxuICAgIGlmICh4ID09PSB5KSB7XG4gICAgICAvLyBTdGVwcyAxLTUsIDctMTBcbiAgICAgIC8vIFN0ZXBzIDYuYi02LmU6ICswICE9IC0wXG4gICAgICByZXR1cm4geCAhPT0gMCB8fCAxIC8geCA9PT0gMSAvIHk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFN0ZXAgNi5hOiBOYU4gPT0gTmFOXG4gICAgICByZXR1cm4geCAhPT0geCAmJiB5ICE9PSB5O1xuICAgIH1cbiAgfVxuICAvKmVzbGludC1lbmFibGUgbm8tc2VsZi1jb21wYXJlKi9cblxuICAvKipcbiAgICogV2UgdXNlIGFuIEVycm9yLWxpa2Ugb2JqZWN0IGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGFzIHBlb3BsZSBtYXkgY2FsbFxuICAgKiBQcm9wVHlwZXMgZGlyZWN0bHkgYW5kIGluc3BlY3QgdGhlaXIgb3V0cHV0LiBIb3dldmVyLCB3ZSBkb24ndCB1c2UgcmVhbFxuICAgKiBFcnJvcnMgYW55bW9yZS4gV2UgZG9uJ3QgaW5zcGVjdCB0aGVpciBzdGFjayBhbnl3YXksIGFuZCBjcmVhdGluZyB0aGVtXG4gICAqIGlzIHByb2hpYml0aXZlbHkgZXhwZW5zaXZlIGlmIHRoZXkgYXJlIGNyZWF0ZWQgdG9vIG9mdGVuLCBzdWNoIGFzIHdoYXRcbiAgICogaGFwcGVucyBpbiBvbmVPZlR5cGUoKSBmb3IgYW55IHR5cGUgYmVmb3JlIHRoZSBvbmUgdGhhdCBtYXRjaGVkLlxuICAgKi9cbiAgZnVuY3Rpb24gUHJvcFR5cGVFcnJvcihtZXNzYWdlKSB7XG4gICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZTtcbiAgICB0aGlzLnN0YWNrID0gJyc7XG4gIH1cbiAgLy8gTWFrZSBgaW5zdGFuY2VvZiBFcnJvcmAgc3RpbGwgd29yayBmb3IgcmV0dXJuZWQgZXJyb3JzLlxuICBQcm9wVHlwZUVycm9yLnByb3RvdHlwZSA9IEVycm9yLnByb3RvdHlwZTtcblxuICBmdW5jdGlvbiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSkge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICB2YXIgbWFudWFsUHJvcFR5cGVDYWxsQ2FjaGUgPSB7fTtcbiAgICAgIHZhciBtYW51YWxQcm9wVHlwZVdhcm5pbmdDb3VudCA9IDA7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNoZWNrVHlwZShpc1JlcXVpcmVkLCBwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUsIHNlY3JldCkge1xuICAgICAgY29tcG9uZW50TmFtZSA9IGNvbXBvbmVudE5hbWUgfHwgQU5PTllNT1VTO1xuICAgICAgcHJvcEZ1bGxOYW1lID0gcHJvcEZ1bGxOYW1lIHx8IHByb3BOYW1lO1xuXG4gICAgICBpZiAoc2VjcmV0ICE9PSBSZWFjdFByb3BUeXBlc1NlY3JldCkge1xuICAgICAgICBpZiAodGhyb3dPbkRpcmVjdEFjY2Vzcykge1xuICAgICAgICAgIC8vIE5ldyBiZWhhdmlvciBvbmx5IGZvciB1c2VycyBvZiBgcHJvcC10eXBlc2AgcGFja2FnZVxuICAgICAgICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoXG4gICAgICAgICAgICAnQ2FsbGluZyBQcm9wVHlwZXMgdmFsaWRhdG9ycyBkaXJlY3RseSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBgcHJvcC10eXBlc2AgcGFja2FnZS4gJyArXG4gICAgICAgICAgICAnVXNlIGBQcm9wVHlwZXMuY2hlY2tQcm9wVHlwZXMoKWAgdG8gY2FsbCB0aGVtLiAnICtcbiAgICAgICAgICAgICdSZWFkIG1vcmUgYXQgaHR0cDovL2ZiLm1lL3VzZS1jaGVjay1wcm9wLXR5cGVzJ1xuICAgICAgICAgICk7XG4gICAgICAgICAgZXJyLm5hbWUgPSAnSW52YXJpYW50IFZpb2xhdGlvbic7XG4gICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICB9IGVsc2UgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgdHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgLy8gT2xkIGJlaGF2aW9yIGZvciBwZW9wbGUgdXNpbmcgUmVhY3QuUHJvcFR5cGVzXG4gICAgICAgICAgdmFyIGNhY2hlS2V5ID0gY29tcG9uZW50TmFtZSArICc6JyArIHByb3BOYW1lO1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICFtYW51YWxQcm9wVHlwZUNhbGxDYWNoZVtjYWNoZUtleV0gJiZcbiAgICAgICAgICAgIC8vIEF2b2lkIHNwYW1taW5nIHRoZSBjb25zb2xlIGJlY2F1c2UgdGhleSBhcmUgb2Z0ZW4gbm90IGFjdGlvbmFibGUgZXhjZXB0IGZvciBsaWIgYXV0aG9yc1xuICAgICAgICAgICAgbWFudWFsUHJvcFR5cGVXYXJuaW5nQ291bnQgPCAzXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBwcmludFdhcm5pbmcoXG4gICAgICAgICAgICAgICdZb3UgYXJlIG1hbnVhbGx5IGNhbGxpbmcgYSBSZWFjdC5Qcm9wVHlwZXMgdmFsaWRhdGlvbiAnICtcbiAgICAgICAgICAgICAgJ2Z1bmN0aW9uIGZvciB0aGUgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBwcm9wIG9uIGAnICsgY29tcG9uZW50TmFtZSAgKyAnYC4gVGhpcyBpcyBkZXByZWNhdGVkICcgK1xuICAgICAgICAgICAgICAnYW5kIHdpbGwgdGhyb3cgaW4gdGhlIHN0YW5kYWxvbmUgYHByb3AtdHlwZXNgIHBhY2thZ2UuICcgK1xuICAgICAgICAgICAgICAnWW91IG1heSBiZSBzZWVpbmcgdGhpcyB3YXJuaW5nIGR1ZSB0byBhIHRoaXJkLXBhcnR5IFByb3BUeXBlcyAnICtcbiAgICAgICAgICAgICAgJ2xpYnJhcnkuIFNlZSBodHRwczovL2ZiLm1lL3JlYWN0LXdhcm5pbmctZG9udC1jYWxsLXByb3B0eXBlcyAnICsgJ2ZvciBkZXRhaWxzLidcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBtYW51YWxQcm9wVHlwZUNhbGxDYWNoZVtjYWNoZUtleV0gPSB0cnVlO1xuICAgICAgICAgICAgbWFudWFsUHJvcFR5cGVXYXJuaW5nQ291bnQrKztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChwcm9wc1twcm9wTmFtZV0gPT0gbnVsbCkge1xuICAgICAgICBpZiAoaXNSZXF1aXJlZCkge1xuICAgICAgICAgIGlmIChwcm9wc1twcm9wTmFtZV0gPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignVGhlICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBpcyBtYXJrZWQgYXMgcmVxdWlyZWQgJyArICgnaW4gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGJ1dCBpdHMgdmFsdWUgaXMgYG51bGxgLicpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdUaGUgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIGlzIG1hcmtlZCBhcyByZXF1aXJlZCBpbiAnICsgKCdgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgYnV0IGl0cyB2YWx1ZSBpcyBgdW5kZWZpbmVkYC4nKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdmFsaWRhdGUocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgY2hhaW5lZENoZWNrVHlwZSA9IGNoZWNrVHlwZS5iaW5kKG51bGwsIGZhbHNlKTtcbiAgICBjaGFpbmVkQ2hlY2tUeXBlLmlzUmVxdWlyZWQgPSBjaGVja1R5cGUuYmluZChudWxsLCB0cnVlKTtcblxuICAgIHJldHVybiBjaGFpbmVkQ2hlY2tUeXBlO1xuICB9XG5cbiAgZnVuY3Rpb24gY3JlYXRlUHJpbWl0aXZlVHlwZUNoZWNrZXIoZXhwZWN0ZWRUeXBlKSB7XG4gICAgZnVuY3Rpb24gdmFsaWRhdGUocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lLCBzZWNyZXQpIHtcbiAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wTmFtZV07XG4gICAgICB2YXIgcHJvcFR5cGUgPSBnZXRQcm9wVHlwZShwcm9wVmFsdWUpO1xuICAgICAgaWYgKHByb3BUeXBlICE9PSBleHBlY3RlZFR5cGUpIHtcbiAgICAgICAgLy8gYHByb3BWYWx1ZWAgYmVpbmcgaW5zdGFuY2Ugb2YsIHNheSwgZGF0ZS9yZWdleHAsIHBhc3MgdGhlICdvYmplY3QnXG4gICAgICAgIC8vIGNoZWNrLCBidXQgd2UgY2FuIG9mZmVyIGEgbW9yZSBwcmVjaXNlIGVycm9yIG1lc3NhZ2UgaGVyZSByYXRoZXIgdGhhblxuICAgICAgICAvLyAnb2YgdHlwZSBgb2JqZWN0YCcuXG4gICAgICAgIHZhciBwcmVjaXNlVHlwZSA9IGdldFByZWNpc2VUeXBlKHByb3BWYWx1ZSk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB0eXBlICcgKyAoJ2AnICsgcHJlY2lzZVR5cGUgKyAnYCBzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgJykgKyAoJ2AnICsgZXhwZWN0ZWRUeXBlICsgJ2AuJykpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVBbnlUeXBlQ2hlY2tlcigpIHtcbiAgICByZXR1cm4gY3JlYXRlQ2hhaW5hYmxlVHlwZUNoZWNrZXIoZW1wdHlGdW5jdGlvblRoYXRSZXR1cm5zTnVsbCk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVBcnJheU9mVHlwZUNoZWNrZXIodHlwZUNoZWNrZXIpIHtcbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIGlmICh0eXBlb2YgdHlwZUNoZWNrZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdQcm9wZXJ0eSBgJyArIHByb3BGdWxsTmFtZSArICdgIG9mIGNvbXBvbmVudCBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCBoYXMgaW52YWxpZCBQcm9wVHlwZSBub3RhdGlvbiBpbnNpZGUgYXJyYXlPZi4nKTtcbiAgICAgIH1cbiAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wTmFtZV07XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkocHJvcFZhbHVlKSkge1xuICAgICAgICB2YXIgcHJvcFR5cGUgPSBnZXRQcm9wVHlwZShwcm9wVmFsdWUpO1xuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIG9mIHR5cGUgJyArICgnYCcgKyBwcm9wVHlwZSArICdgIHN1cHBsaWVkIHRvIGAnICsgY29tcG9uZW50TmFtZSArICdgLCBleHBlY3RlZCBhbiBhcnJheS4nKSk7XG4gICAgICB9XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BWYWx1ZS5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgZXJyb3IgPSB0eXBlQ2hlY2tlcihwcm9wVmFsdWUsIGksIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUgKyAnWycgKyBpICsgJ10nLCBSZWFjdFByb3BUeXBlc1NlY3JldCk7XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnRUeXBlQ2hlY2tlcigpIHtcbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wTmFtZV07XG4gICAgICBpZiAoIWlzVmFsaWRFbGVtZW50KHByb3BWYWx1ZSkpIHtcbiAgICAgICAgdmFyIHByb3BUeXBlID0gZ2V0UHJvcFR5cGUocHJvcFZhbHVlKTtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB0eXBlICcgKyAoJ2AnICsgcHJvcFR5cGUgKyAnYCBzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgYSBzaW5nbGUgUmVhY3RFbGVtZW50LicpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gY3JlYXRlQ2hhaW5hYmxlVHlwZUNoZWNrZXIodmFsaWRhdGUpO1xuICB9XG5cbiAgZnVuY3Rpb24gY3JlYXRlRWxlbWVudFR5cGVUeXBlQ2hlY2tlcigpIHtcbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wTmFtZV07XG4gICAgICBpZiAoIVJlYWN0SXMuaXNWYWxpZEVsZW1lbnRUeXBlKHByb3BWYWx1ZSkpIHtcbiAgICAgICAgdmFyIHByb3BUeXBlID0gZ2V0UHJvcFR5cGUocHJvcFZhbHVlKTtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB0eXBlICcgKyAoJ2AnICsgcHJvcFR5cGUgKyAnYCBzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgYSBzaW5nbGUgUmVhY3RFbGVtZW50IHR5cGUuJykpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVJbnN0YW5jZVR5cGVDaGVja2VyKGV4cGVjdGVkQ2xhc3MpIHtcbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIGlmICghKHByb3BzW3Byb3BOYW1lXSBpbnN0YW5jZW9mIGV4cGVjdGVkQ2xhc3MpKSB7XG4gICAgICAgIHZhciBleHBlY3RlZENsYXNzTmFtZSA9IGV4cGVjdGVkQ2xhc3MubmFtZSB8fCBBTk9OWU1PVVM7XG4gICAgICAgIHZhciBhY3R1YWxDbGFzc05hbWUgPSBnZXRDbGFzc05hbWUocHJvcHNbcHJvcE5hbWVdKTtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB0eXBlICcgKyAoJ2AnICsgYWN0dWFsQ2xhc3NOYW1lICsgJ2Agc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkICcpICsgKCdpbnN0YW5jZSBvZiBgJyArIGV4cGVjdGVkQ2xhc3NOYW1lICsgJ2AuJykpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVFbnVtVHlwZUNoZWNrZXIoZXhwZWN0ZWRWYWx1ZXMpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoZXhwZWN0ZWRWYWx1ZXMpKSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICBwcmludFdhcm5pbmcoXG4gICAgICAgICAgICAnSW52YWxpZCBhcmd1bWVudHMgc3VwcGxpZWQgdG8gb25lT2YsIGV4cGVjdGVkIGFuIGFycmF5LCBnb3QgJyArIGFyZ3VtZW50cy5sZW5ndGggKyAnIGFyZ3VtZW50cy4gJyArXG4gICAgICAgICAgICAnQSBjb21tb24gbWlzdGFrZSBpcyB0byB3cml0ZSBvbmVPZih4LCB5LCB6KSBpbnN0ZWFkIG9mIG9uZU9mKFt4LCB5LCB6XSkuJ1xuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcHJpbnRXYXJuaW5nKCdJbnZhbGlkIGFyZ3VtZW50IHN1cHBsaWVkIHRvIG9uZU9mLCBleHBlY3RlZCBhbiBhcnJheS4nKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGVtcHR5RnVuY3Rpb25UaGF0UmV0dXJuc051bGw7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdmFsaWRhdGUocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lKSB7XG4gICAgICB2YXIgcHJvcFZhbHVlID0gcHJvcHNbcHJvcE5hbWVdO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBleHBlY3RlZFZhbHVlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoaXMocHJvcFZhbHVlLCBleHBlY3RlZFZhbHVlc1tpXSkpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB2YXIgdmFsdWVzU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoZXhwZWN0ZWRWYWx1ZXMsIGZ1bmN0aW9uIHJlcGxhY2VyKGtleSwgdmFsdWUpIHtcbiAgICAgICAgdmFyIHR5cGUgPSBnZXRQcmVjaXNlVHlwZSh2YWx1ZSk7XG4gICAgICAgIGlmICh0eXBlID09PSAnc3ltYm9sJykge1xuICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB2YWx1ZSBgJyArIFN0cmluZyhwcm9wVmFsdWUpICsgJ2AgJyArICgnc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkIG9uZSBvZiAnICsgdmFsdWVzU3RyaW5nICsgJy4nKSk7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVPYmplY3RPZlR5cGVDaGVja2VyKHR5cGVDaGVja2VyKSB7XG4gICAgZnVuY3Rpb24gdmFsaWRhdGUocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lKSB7XG4gICAgICBpZiAodHlwZW9mIHR5cGVDaGVja2VyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignUHJvcGVydHkgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiBjb21wb25lbnQgYCcgKyBjb21wb25lbnROYW1lICsgJ2AgaGFzIGludmFsaWQgUHJvcFR5cGUgbm90YXRpb24gaW5zaWRlIG9iamVjdE9mLicpO1xuICAgICAgfVxuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICAgIHZhciBwcm9wVHlwZSA9IGdldFByb3BUeXBlKHByb3BWYWx1ZSk7XG4gICAgICBpZiAocHJvcFR5cGUgIT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignSW52YWxpZCAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Agb2YgdHlwZSAnICsgKCdgJyArIHByb3BUeXBlICsgJ2Agc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkIGFuIG9iamVjdC4nKSk7XG4gICAgICB9XG4gICAgICBmb3IgKHZhciBrZXkgaW4gcHJvcFZhbHVlKSB7XG4gICAgICAgIGlmIChoYXMocHJvcFZhbHVlLCBrZXkpKSB7XG4gICAgICAgICAgdmFyIGVycm9yID0gdHlwZUNoZWNrZXIocHJvcFZhbHVlLCBrZXksIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUgKyAnLicgKyBrZXksIFJlYWN0UHJvcFR5cGVzU2VjcmV0KTtcbiAgICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVVbmlvblR5cGVDaGVja2VyKGFycmF5T2ZUeXBlQ2hlY2tlcnMpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoYXJyYXlPZlR5cGVDaGVja2VycykpIHtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBwcmludFdhcm5pbmcoJ0ludmFsaWQgYXJndW1lbnQgc3VwcGxpZWQgdG8gb25lT2ZUeXBlLCBleHBlY3RlZCBhbiBpbnN0YW5jZSBvZiBhcnJheS4nKSA6IHZvaWQgMDtcbiAgICAgIHJldHVybiBlbXB0eUZ1bmN0aW9uVGhhdFJldHVybnNOdWxsO1xuICAgIH1cblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXlPZlR5cGVDaGVja2Vycy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGNoZWNrZXIgPSBhcnJheU9mVHlwZUNoZWNrZXJzW2ldO1xuICAgICAgaWYgKHR5cGVvZiBjaGVja2VyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHByaW50V2FybmluZyhcbiAgICAgICAgICAnSW52YWxpZCBhcmd1bWVudCBzdXBwbGllZCB0byBvbmVPZlR5cGUuIEV4cGVjdGVkIGFuIGFycmF5IG9mIGNoZWNrIGZ1bmN0aW9ucywgYnV0ICcgK1xuICAgICAgICAgICdyZWNlaXZlZCAnICsgZ2V0UG9zdGZpeEZvclR5cGVXYXJuaW5nKGNoZWNrZXIpICsgJyBhdCBpbmRleCAnICsgaSArICcuJ1xuICAgICAgICApO1xuICAgICAgICByZXR1cm4gZW1wdHlGdW5jdGlvblRoYXRSZXR1cm5zTnVsbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXlPZlR5cGVDaGVja2Vycy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgY2hlY2tlciA9IGFycmF5T2ZUeXBlQ2hlY2tlcnNbaV07XG4gICAgICAgIGlmIChjaGVja2VyKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSwgUmVhY3RQcm9wVHlwZXNTZWNyZXQpID09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIHN1cHBsaWVkIHRvICcgKyAoJ2AnICsgY29tcG9uZW50TmFtZSArICdgLicpKTtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZU5vZGVDaGVja2VyKCkge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgaWYgKCFpc05vZGUocHJvcHNbcHJvcE5hbWVdKSkge1xuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIHN1cHBsaWVkIHRvICcgKyAoJ2AnICsgY29tcG9uZW50TmFtZSArICdgLCBleHBlY3RlZCBhIFJlYWN0Tm9kZS4nKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZVNoYXBlVHlwZUNoZWNrZXIoc2hhcGVUeXBlcykge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICAgIHZhciBwcm9wVHlwZSA9IGdldFByb3BUeXBlKHByb3BWYWx1ZSk7XG4gICAgICBpZiAocHJvcFR5cGUgIT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignSW52YWxpZCAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Agb2YgdHlwZSBgJyArIHByb3BUeXBlICsgJ2AgJyArICgnc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkIGBvYmplY3RgLicpKTtcbiAgICAgIH1cbiAgICAgIGZvciAodmFyIGtleSBpbiBzaGFwZVR5cGVzKSB7XG4gICAgICAgIHZhciBjaGVja2VyID0gc2hhcGVUeXBlc1trZXldO1xuICAgICAgICBpZiAoIWNoZWNrZXIpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZXJyb3IgPSBjaGVja2VyKHByb3BWYWx1ZSwga2V5LCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lICsgJy4nICsga2V5LCBSZWFjdFByb3BUeXBlc1NlY3JldCk7XG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgIHJldHVybiBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVTdHJpY3RTaGFwZVR5cGVDaGVja2VyKHNoYXBlVHlwZXMpIHtcbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wTmFtZV07XG4gICAgICB2YXIgcHJvcFR5cGUgPSBnZXRQcm9wVHlwZShwcm9wVmFsdWUpO1xuICAgICAgaWYgKHByb3BUeXBlICE9PSAnb2JqZWN0Jykge1xuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIG9mIHR5cGUgYCcgKyBwcm9wVHlwZSArICdgICcgKyAoJ3N1cHBsaWVkIHRvIGAnICsgY29tcG9uZW50TmFtZSArICdgLCBleHBlY3RlZCBgb2JqZWN0YC4nKSk7XG4gICAgICB9XG4gICAgICAvLyBXZSBuZWVkIHRvIGNoZWNrIGFsbCBrZXlzIGluIGNhc2Ugc29tZSBhcmUgcmVxdWlyZWQgYnV0IG1pc3NpbmcgZnJvbVxuICAgICAgLy8gcHJvcHMuXG4gICAgICB2YXIgYWxsS2V5cyA9IGFzc2lnbih7fSwgcHJvcHNbcHJvcE5hbWVdLCBzaGFwZVR5cGVzKTtcbiAgICAgIGZvciAodmFyIGtleSBpbiBhbGxLZXlzKSB7XG4gICAgICAgIHZhciBjaGVja2VyID0gc2hhcGVUeXBlc1trZXldO1xuICAgICAgICBpZiAoIWNoZWNrZXIpIHtcbiAgICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoXG4gICAgICAgICAgICAnSW52YWxpZCAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Aga2V5IGAnICsga2V5ICsgJ2Agc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AuJyArXG4gICAgICAgICAgICAnXFxuQmFkIG9iamVjdDogJyArIEpTT04uc3RyaW5naWZ5KHByb3BzW3Byb3BOYW1lXSwgbnVsbCwgJyAgJykgK1xuICAgICAgICAgICAgJ1xcblZhbGlkIGtleXM6ICcgKyAgSlNPTi5zdHJpbmdpZnkoT2JqZWN0LmtleXMoc2hhcGVUeXBlcyksIG51bGwsICcgICcpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZXJyb3IgPSBjaGVja2VyKHByb3BWYWx1ZSwga2V5LCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lICsgJy4nICsga2V5LCBSZWFjdFByb3BUeXBlc1NlY3JldCk7XG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgIHJldHVybiBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGlzTm9kZShwcm9wVmFsdWUpIHtcbiAgICBzd2l0Y2ggKHR5cGVvZiBwcm9wVmFsdWUpIHtcbiAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgY2FzZSAndW5kZWZpbmVkJzpcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICBjYXNlICdib29sZWFuJzpcbiAgICAgICAgcmV0dXJuICFwcm9wVmFsdWU7XG4gICAgICBjYXNlICdvYmplY3QnOlxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShwcm9wVmFsdWUpKSB7XG4gICAgICAgICAgcmV0dXJuIHByb3BWYWx1ZS5ldmVyeShpc05vZGUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwcm9wVmFsdWUgPT09IG51bGwgfHwgaXNWYWxpZEVsZW1lbnQocHJvcFZhbHVlKSkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGl0ZXJhdG9yRm4gPSBnZXRJdGVyYXRvckZuKHByb3BWYWx1ZSk7XG4gICAgICAgIGlmIChpdGVyYXRvckZuKSB7XG4gICAgICAgICAgdmFyIGl0ZXJhdG9yID0gaXRlcmF0b3JGbi5jYWxsKHByb3BWYWx1ZSk7XG4gICAgICAgICAgdmFyIHN0ZXA7XG4gICAgICAgICAgaWYgKGl0ZXJhdG9yRm4gIT09IHByb3BWYWx1ZS5lbnRyaWVzKSB7XG4gICAgICAgICAgICB3aGlsZSAoIShzdGVwID0gaXRlcmF0b3IubmV4dCgpKS5kb25lKSB7XG4gICAgICAgICAgICAgIGlmICghaXNOb2RlKHN0ZXAudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEl0ZXJhdG9yIHdpbGwgcHJvdmlkZSBlbnRyeSBbayx2XSB0dXBsZXMgcmF0aGVyIHRoYW4gdmFsdWVzLlxuICAgICAgICAgICAgd2hpbGUgKCEoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSkuZG9uZSkge1xuICAgICAgICAgICAgICB2YXIgZW50cnkgPSBzdGVwLnZhbHVlO1xuICAgICAgICAgICAgICBpZiAoZW50cnkpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWlzTm9kZShlbnRyeVsxXSkpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gaXNTeW1ib2wocHJvcFR5cGUsIHByb3BWYWx1ZSkge1xuICAgIC8vIE5hdGl2ZSBTeW1ib2wuXG4gICAgaWYgKHByb3BUeXBlID09PSAnc3ltYm9sJykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gZmFsc3kgdmFsdWUgY2FuJ3QgYmUgYSBTeW1ib2xcbiAgICBpZiAoIXByb3BWYWx1ZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIDE5LjQuMy41IFN5bWJvbC5wcm90b3R5cGVbQEB0b1N0cmluZ1RhZ10gPT09ICdTeW1ib2wnXG4gICAgaWYgKHByb3BWYWx1ZVsnQEB0b1N0cmluZ1RhZyddID09PSAnU3ltYm9sJykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gRmFsbGJhY2sgZm9yIG5vbi1zcGVjIGNvbXBsaWFudCBTeW1ib2xzIHdoaWNoIGFyZSBwb2x5ZmlsbGVkLlxuICAgIGlmICh0eXBlb2YgU3ltYm9sID09PSAnZnVuY3Rpb24nICYmIHByb3BWYWx1ZSBpbnN0YW5jZW9mIFN5bWJvbCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gRXF1aXZhbGVudCBvZiBgdHlwZW9mYCBidXQgd2l0aCBzcGVjaWFsIGhhbmRsaW5nIGZvciBhcnJheSBhbmQgcmVnZXhwLlxuICBmdW5jdGlvbiBnZXRQcm9wVHlwZShwcm9wVmFsdWUpIHtcbiAgICB2YXIgcHJvcFR5cGUgPSB0eXBlb2YgcHJvcFZhbHVlO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHByb3BWYWx1ZSkpIHtcbiAgICAgIHJldHVybiAnYXJyYXknO1xuICAgIH1cbiAgICBpZiAocHJvcFZhbHVlIGluc3RhbmNlb2YgUmVnRXhwKSB7XG4gICAgICAvLyBPbGQgd2Via2l0cyAoYXQgbGVhc3QgdW50aWwgQW5kcm9pZCA0LjApIHJldHVybiAnZnVuY3Rpb24nIHJhdGhlciB0aGFuXG4gICAgICAvLyAnb2JqZWN0JyBmb3IgdHlwZW9mIGEgUmVnRXhwLiBXZSdsbCBub3JtYWxpemUgdGhpcyBoZXJlIHNvIHRoYXQgL2JsYS9cbiAgICAgIC8vIHBhc3NlcyBQcm9wVHlwZXMub2JqZWN0LlxuICAgICAgcmV0dXJuICdvYmplY3QnO1xuICAgIH1cbiAgICBpZiAoaXNTeW1ib2wocHJvcFR5cGUsIHByb3BWYWx1ZSkpIHtcbiAgICAgIHJldHVybiAnc3ltYm9sJztcbiAgICB9XG4gICAgcmV0dXJuIHByb3BUeXBlO1xuICB9XG5cbiAgLy8gVGhpcyBoYW5kbGVzIG1vcmUgdHlwZXMgdGhhbiBgZ2V0UHJvcFR5cGVgLiBPbmx5IHVzZWQgZm9yIGVycm9yIG1lc3NhZ2VzLlxuICAvLyBTZWUgYGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyYC5cbiAgZnVuY3Rpb24gZ2V0UHJlY2lzZVR5cGUocHJvcFZhbHVlKSB7XG4gICAgaWYgKHR5cGVvZiBwcm9wVmFsdWUgPT09ICd1bmRlZmluZWQnIHx8IHByb3BWYWx1ZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuICcnICsgcHJvcFZhbHVlO1xuICAgIH1cbiAgICB2YXIgcHJvcFR5cGUgPSBnZXRQcm9wVHlwZShwcm9wVmFsdWUpO1xuICAgIGlmIChwcm9wVHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGlmIChwcm9wVmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgIHJldHVybiAnZGF0ZSc7XG4gICAgICB9IGVsc2UgaWYgKHByb3BWYWx1ZSBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgICByZXR1cm4gJ3JlZ2V4cCc7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwcm9wVHlwZTtcbiAgfVxuXG4gIC8vIFJldHVybnMgYSBzdHJpbmcgdGhhdCBpcyBwb3N0Zml4ZWQgdG8gYSB3YXJuaW5nIGFib3V0IGFuIGludmFsaWQgdHlwZS5cbiAgLy8gRm9yIGV4YW1wbGUsIFwidW5kZWZpbmVkXCIgb3IgXCJvZiB0eXBlIGFycmF5XCJcbiAgZnVuY3Rpb24gZ2V0UG9zdGZpeEZvclR5cGVXYXJuaW5nKHZhbHVlKSB7XG4gICAgdmFyIHR5cGUgPSBnZXRQcmVjaXNlVHlwZSh2YWx1ZSk7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdhcnJheSc6XG4gICAgICBjYXNlICdvYmplY3QnOlxuICAgICAgICByZXR1cm4gJ2FuICcgKyB0eXBlO1xuICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICBjYXNlICdkYXRlJzpcbiAgICAgIGNhc2UgJ3JlZ2V4cCc6XG4gICAgICAgIHJldHVybiAnYSAnICsgdHlwZTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB0eXBlO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJldHVybnMgY2xhc3MgbmFtZSBvZiB0aGUgb2JqZWN0LCBpZiBhbnkuXG4gIGZ1bmN0aW9uIGdldENsYXNzTmFtZShwcm9wVmFsdWUpIHtcbiAgICBpZiAoIXByb3BWYWx1ZS5jb25zdHJ1Y3RvciB8fCAhcHJvcFZhbHVlLmNvbnN0cnVjdG9yLm5hbWUpIHtcbiAgICAgIHJldHVybiBBTk9OWU1PVVM7XG4gICAgfVxuICAgIHJldHVybiBwcm9wVmFsdWUuY29uc3RydWN0b3IubmFtZTtcbiAgfVxuXG4gIFJlYWN0UHJvcFR5cGVzLmNoZWNrUHJvcFR5cGVzID0gY2hlY2tQcm9wVHlwZXM7XG4gIFJlYWN0UHJvcFR5cGVzLnJlc2V0V2FybmluZ0NhY2hlID0gY2hlY2tQcm9wVHlwZXMucmVzZXRXYXJuaW5nQ2FjaGU7XG4gIFJlYWN0UHJvcFR5cGVzLlByb3BUeXBlcyA9IFJlYWN0UHJvcFR5cGVzO1xuXG4gIHJldHVybiBSZWFjdFByb3BUeXBlcztcbn07XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/prop-types/factoryWithTypeCheckers.js\n"); + +/***/ }), + +/***/ "./node_modules/prop-types/index.js": +/*!******************************************!*\ + !*** ./node_modules/prop-types/index.js ***! + \******************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\nif (true) {\n var ReactIs = __webpack_require__(/*! react-is */ \"./node_modules/prop-types/node_modules/react-is/index.js\");\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = __webpack_require__(/*! ./factoryWithTypeCheckers */ \"./node_modules/prop-types/factoryWithTypeCheckers.js\")(ReactIs.isElement, throwOnDirectAccess);\n} else {}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsSUFBSSxJQUFxQztBQUN6QyxnQkFBZ0IsbUJBQU8sQ0FBQywwRUFBVTs7QUFFbEM7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLG1CQUFPLENBQUMsdUZBQTJCO0FBQ3RELEVBQUUsS0FBSyxFQUlOIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2luZGV4LmpzP2JkZTEiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICB2YXIgUmVhY3RJcyA9IHJlcXVpcmUoJ3JlYWN0LWlzJyk7XG5cbiAgLy8gQnkgZXhwbGljaXRseSB1c2luZyBgcHJvcC10eXBlc2AgeW91IGFyZSBvcHRpbmcgaW50byBuZXcgZGV2ZWxvcG1lbnQgYmVoYXZpb3IuXG4gIC8vIGh0dHA6Ly9mYi5tZS9wcm9wLXR5cGVzLWluLXByb2RcbiAgdmFyIHRocm93T25EaXJlY3RBY2Nlc3MgPSB0cnVlO1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vZmFjdG9yeVdpdGhUeXBlQ2hlY2tlcnMnKShSZWFjdElzLmlzRWxlbWVudCwgdGhyb3dPbkRpcmVjdEFjY2Vzcyk7XG59IGVsc2Uge1xuICAvLyBCeSBleHBsaWNpdGx5IHVzaW5nIGBwcm9wLXR5cGVzYCB5b3UgYXJlIG9wdGluZyBpbnRvIG5ldyBwcm9kdWN0aW9uIGJlaGF2aW9yLlxuICAvLyBodHRwOi8vZmIubWUvcHJvcC10eXBlcy1pbi1wcm9kXG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9mYWN0b3J5V2l0aFRocm93aW5nU2hpbXMnKSgpO1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/prop-types/index.js\n"); + +/***/ }), + +/***/ "./node_modules/prop-types/lib/ReactPropTypesSecret.js": +/*!*************************************************************!*\ + !*** ./node_modules/prop-types/lib/ReactPropTypesSecret.js ***! + \*************************************************************/ +/***/ (function(module) { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\n\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9saWIvUmVhY3RQcm9wVHlwZXNTZWNyZXQuanMuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVhOztBQUViOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2xpYi9SZWFjdFByb3BUeXBlc1NlY3JldC5qcz9lMDk4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUmVhY3RQcm9wVHlwZXNTZWNyZXQgPSAnU0VDUkVUX0RPX05PVF9QQVNTX1RISVNfT1JfWU9VX1dJTExfQkVfRklSRUQnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0UHJvcFR5cGVzU2VjcmV0O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/prop-types/lib/ReactPropTypesSecret.js\n"); + +/***/ }), + +/***/ "./node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js ***! + \***********************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its 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\n\n\n\n\nif (true) {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9ub2RlX21vZHVsZXMvcmVhY3QtaXMvY2pzL3JlYWN0LWlzLmRldmVsb3BtZW50LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWE7Ozs7QUFJYixJQUFJLElBQXFDO0FBQ3pDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkVBQTJFO0FBQzNFOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlEQUFpRDs7QUFFakQ7QUFDQTtBQUNBO0FBQ0Esa0RBQWtEOztBQUVsRDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxpQkFBaUI7QUFDakIsc0JBQXNCO0FBQ3RCLHVCQUF1QjtBQUN2Qix1QkFBdUI7QUFDdkIsZUFBZTtBQUNmLGtCQUFrQjtBQUNsQixnQkFBZ0I7QUFDaEIsWUFBWTtBQUNaLFlBQVk7QUFDWixjQUFjO0FBQ2QsZ0JBQWdCO0FBQ2hCLGtCQUFrQjtBQUNsQixnQkFBZ0I7QUFDaEIsbUJBQW1CO0FBQ25CLHdCQUF3QjtBQUN4Qix5QkFBeUI7QUFDekIseUJBQXlCO0FBQ3pCLGlCQUFpQjtBQUNqQixvQkFBb0I7QUFDcEIsa0JBQWtCO0FBQ2xCLGNBQWM7QUFDZCxjQUFjO0FBQ2QsZ0JBQWdCO0FBQ2hCLGtCQUFrQjtBQUNsQixvQkFBb0I7QUFDcEIsa0JBQWtCO0FBQ2xCLDBCQUEwQjtBQUMxQixjQUFjO0FBQ2QsR0FBRztBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL25vZGVfbW9kdWxlcy9yZWFjdC1pcy9janMvcmVhY3QtaXMuZGV2ZWxvcG1lbnQuanM/Yzk1NyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQGxpY2Vuc2UgUmVhY3QgdjE2LjEzLjFcbiAqIHJlYWN0LWlzLmRldmVsb3BtZW50LmpzXG4gKlxuICogQ29weXJpZ2h0IChjKSBGYWNlYm9vaywgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5cblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAoZnVuY3Rpb24oKSB7XG4ndXNlIHN0cmljdCc7XG5cbi8vIFRoZSBTeW1ib2wgdXNlZCB0byB0YWcgdGhlIFJlYWN0RWxlbWVudC1saWtlIHR5cGVzLiBJZiB0aGVyZSBpcyBubyBuYXRpdmUgU3ltYm9sXG4vLyBub3IgcG9seWZpbGwsIHRoZW4gYSBwbGFpbiBudW1iZXIgaXMgdXNlZCBmb3IgcGVyZm9ybWFuY2UuXG52YXIgaGFzU3ltYm9sID0gdHlwZW9mIFN5bWJvbCA9PT0gJ2Z1bmN0aW9uJyAmJiBTeW1ib2wuZm9yO1xudmFyIFJFQUNUX0VMRU1FTlRfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmVsZW1lbnQnKSA6IDB4ZWFjNztcbnZhciBSRUFDVF9QT1JUQUxfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LnBvcnRhbCcpIDogMHhlYWNhO1xudmFyIFJFQUNUX0ZSQUdNRU5UX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5mcmFnbWVudCcpIDogMHhlYWNiO1xudmFyIFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5zdHJpY3RfbW9kZScpIDogMHhlYWNjO1xudmFyIFJFQUNUX1BST0ZJTEVSX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5wcm9maWxlcicpIDogMHhlYWQyO1xudmFyIFJFQUNUX1BST1ZJREVSX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5wcm92aWRlcicpIDogMHhlYWNkO1xudmFyIFJFQUNUX0NPTlRFWFRfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmNvbnRleHQnKSA6IDB4ZWFjZTsgLy8gVE9ETzogV2UgZG9uJ3QgdXNlIEFzeW5jTW9kZSBvciBDb25jdXJyZW50TW9kZSBhbnltb3JlLiBUaGV5IHdlcmUgdGVtcG9yYXJ5XG4vLyAodW5zdGFibGUpIEFQSXMgdGhhdCBoYXZlIGJlZW4gcmVtb3ZlZC4gQ2FuIHdlIHJlbW92ZSB0aGUgc3ltYm9scz9cblxudmFyIFJFQUNUX0FTWU5DX01PREVfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmFzeW5jX21vZGUnKSA6IDB4ZWFjZjtcbnZhciBSRUFDVF9DT05DVVJSRU5UX01PREVfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmNvbmN1cnJlbnRfbW9kZScpIDogMHhlYWNmO1xudmFyIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5mb3J3YXJkX3JlZicpIDogMHhlYWQwO1xudmFyIFJFQUNUX1NVU1BFTlNFX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5zdXNwZW5zZScpIDogMHhlYWQxO1xudmFyIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LnN1c3BlbnNlX2xpc3QnKSA6IDB4ZWFkODtcbnZhciBSRUFDVF9NRU1PX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5tZW1vJykgOiAweGVhZDM7XG52YXIgUkVBQ1RfTEFaWV9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3QubGF6eScpIDogMHhlYWQ0O1xudmFyIFJFQUNUX0JMT0NLX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5ibG9jaycpIDogMHhlYWQ5O1xudmFyIFJFQUNUX0ZVTkRBTUVOVEFMX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5mdW5kYW1lbnRhbCcpIDogMHhlYWQ1O1xudmFyIFJFQUNUX1JFU1BPTkRFUl9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3QucmVzcG9uZGVyJykgOiAweGVhZDY7XG52YXIgUkVBQ1RfU0NPUEVfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LnNjb3BlJykgOiAweGVhZDc7XG5cbmZ1bmN0aW9uIGlzVmFsaWRFbGVtZW50VHlwZSh0eXBlKSB7XG4gIHJldHVybiB0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicgfHwgLy8gTm90ZTogaXRzIHR5cGVvZiBtaWdodCBiZSBvdGhlciB0aGFuICdzeW1ib2wnIG9yICdudW1iZXInIGlmIGl0J3MgYSBwb2x5ZmlsbC5cbiAgdHlwZSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9DT05DVVJSRU5UX01PREVfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9QUk9GSUxFUl9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgfHwgdHlwZSA9PT0gUkVBQ1RfU1VTUEVOU0VfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUgfHwgdHlwZW9mIHR5cGUgPT09ICdvYmplY3QnICYmIHR5cGUgIT09IG51bGwgJiYgKHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0xBWllfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9NRU1PX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfUFJPVklERVJfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9DT05URVhUX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9GVU5EQU1FTlRBTF9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX1JFU1BPTkRFUl9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX1NDT1BFX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQkxPQ0tfVFlQRSk7XG59XG5cbmZ1bmN0aW9uIHR5cGVPZihvYmplY3QpIHtcbiAgaWYgKHR5cGVvZiBvYmplY3QgPT09ICdvYmplY3QnICYmIG9iamVjdCAhPT0gbnVsbCkge1xuICAgIHZhciAkJHR5cGVvZiA9IG9iamVjdC4kJHR5cGVvZjtcblxuICAgIHN3aXRjaCAoJCR0eXBlb2YpIHtcbiAgICAgIGNhc2UgUkVBQ1RfRUxFTUVOVF9UWVBFOlxuICAgICAgICB2YXIgdHlwZSA9IG9iamVjdC50eXBlO1xuXG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgIGNhc2UgUkVBQ1RfQVNZTkNfTU9ERV9UWVBFOlxuICAgICAgICAgIGNhc2UgUkVBQ1RfQ09OQ1VSUkVOVF9NT0RFX1RZUEU6XG4gICAgICAgICAgY2FzZSBSRUFDVF9GUkFHTUVOVF9UWVBFOlxuICAgICAgICAgIGNhc2UgUkVBQ1RfUFJPRklMRVJfVFlQRTpcbiAgICAgICAgICBjYXNlIFJFQUNUX1NUUklDVF9NT0RFX1RZUEU6XG4gICAgICAgICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9UWVBFOlxuICAgICAgICAgICAgcmV0dXJuIHR5cGU7XG5cbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdmFyICQkdHlwZW9mVHlwZSA9IHR5cGUgJiYgdHlwZS4kJHR5cGVvZjtcblxuICAgICAgICAgICAgc3dpdGNoICgkJHR5cGVvZlR5cGUpIHtcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9DT05URVhUX1RZUEU6XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTpcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOlxuICAgICAgICAgICAgICBjYXNlIFJFQUNUX1BST1ZJREVSX1RZUEU6XG4gICAgICAgICAgICAgICAgcmV0dXJuICQkdHlwZW9mVHlwZTtcblxuICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiAkJHR5cGVvZjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgIGNhc2UgUkVBQ1RfUE9SVEFMX1RZUEU6XG4gICAgICAgIHJldHVybiAkJHR5cGVvZjtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufSAvLyBBc3luY01vZGUgaXMgZGVwcmVjYXRlZCBhbG9uZyB3aXRoIGlzQXN5bmNNb2RlXG5cbnZhciBBc3luY01vZGUgPSBSRUFDVF9BU1lOQ19NT0RFX1RZUEU7XG52YXIgQ29uY3VycmVudE1vZGUgPSBSRUFDVF9DT05DVVJSRU5UX01PREVfVFlQRTtcbnZhciBDb250ZXh0Q29uc3VtZXIgPSBSRUFDVF9DT05URVhUX1RZUEU7XG52YXIgQ29udGV4dFByb3ZpZGVyID0gUkVBQ1RfUFJPVklERVJfVFlQRTtcbnZhciBFbGVtZW50ID0gUkVBQ1RfRUxFTUVOVF9UWVBFO1xudmFyIEZvcndhcmRSZWYgPSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFO1xudmFyIEZyYWdtZW50ID0gUkVBQ1RfRlJBR01FTlRfVFlQRTtcbnZhciBMYXp5ID0gUkVBQ1RfTEFaWV9UWVBFO1xudmFyIE1lbW8gPSBSRUFDVF9NRU1PX1RZUEU7XG52YXIgUG9ydGFsID0gUkVBQ1RfUE9SVEFMX1RZUEU7XG52YXIgUHJvZmlsZXIgPSBSRUFDVF9QUk9GSUxFUl9UWVBFO1xudmFyIFN0cmljdE1vZGUgPSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFO1xudmFyIFN1c3BlbnNlID0gUkVBQ1RfU1VTUEVOU0VfVFlQRTtcbnZhciBoYXNXYXJuZWRBYm91dERlcHJlY2F0ZWRJc0FzeW5jTW9kZSA9IGZhbHNlOyAvLyBBc3luY01vZGUgc2hvdWxkIGJlIGRlcHJlY2F0ZWRcblxuZnVuY3Rpb24gaXNBc3luY01vZGUob2JqZWN0KSB7XG4gIHtcbiAgICBpZiAoIWhhc1dhcm5lZEFib3V0RGVwcmVjYXRlZElzQXN5bmNNb2RlKSB7XG4gICAgICBoYXNXYXJuZWRBYm91dERlcHJlY2F0ZWRJc0FzeW5jTW9kZSA9IHRydWU7IC8vIFVzaW5nIGNvbnNvbGVbJ3dhcm4nXSB0byBldmFkZSBCYWJlbCBhbmQgRVNMaW50XG5cbiAgICAgIGNvbnNvbGVbJ3dhcm4nXSgnVGhlIFJlYWN0SXMuaXNBc3luY01vZGUoKSBhbGlhcyBoYXMgYmVlbiBkZXByZWNhdGVkLCAnICsgJ2FuZCB3aWxsIGJlIHJlbW92ZWQgaW4gUmVhY3QgMTcrLiBVcGRhdGUgeW91ciBjb2RlIHRvIHVzZSAnICsgJ1JlYWN0SXMuaXNDb25jdXJyZW50TW9kZSgpIGluc3RlYWQuIEl0IGhhcyB0aGUgZXhhY3Qgc2FtZSBBUEkuJyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGlzQ29uY3VycmVudE1vZGUob2JqZWN0KSB8fCB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfQVNZTkNfTU9ERV9UWVBFO1xufVxuZnVuY3Rpb24gaXNDb25jdXJyZW50TW9kZShvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9DT05DVVJSRU5UX01PREVfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzQ29udGV4dENvbnN1bWVyKG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX0NPTlRFWFRfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzQ29udGV4dFByb3ZpZGVyKG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX1BST1ZJREVSX1RZUEU7XG59XG5mdW5jdGlvbiBpc0VsZW1lbnQob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlb2Ygb2JqZWN0ID09PSAnb2JqZWN0JyAmJiBvYmplY3QgIT09IG51bGwgJiYgb2JqZWN0LiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEU7XG59XG5mdW5jdGlvbiBpc0ZvcndhcmRSZWYob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzRnJhZ21lbnQob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzTGF6eShvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9MQVpZX1RZUEU7XG59XG5mdW5jdGlvbiBpc01lbW8ob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfTUVNT19UWVBFO1xufVxuZnVuY3Rpb24gaXNQb3J0YWwob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfUE9SVEFMX1RZUEU7XG59XG5mdW5jdGlvbiBpc1Byb2ZpbGVyKG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX1BST0ZJTEVSX1RZUEU7XG59XG5mdW5jdGlvbiBpc1N0cmljdE1vZGUob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfU1RSSUNUX01PREVfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzU3VzcGVuc2Uob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfU1VTUEVOU0VfVFlQRTtcbn1cblxuZXhwb3J0cy5Bc3luY01vZGUgPSBBc3luY01vZGU7XG5leHBvcnRzLkNvbmN1cnJlbnRNb2RlID0gQ29uY3VycmVudE1vZGU7XG5leHBvcnRzLkNvbnRleHRDb25zdW1lciA9IENvbnRleHRDb25zdW1lcjtcbmV4cG9ydHMuQ29udGV4dFByb3ZpZGVyID0gQ29udGV4dFByb3ZpZGVyO1xuZXhwb3J0cy5FbGVtZW50ID0gRWxlbWVudDtcbmV4cG9ydHMuRm9yd2FyZFJlZiA9IEZvcndhcmRSZWY7XG5leHBvcnRzLkZyYWdtZW50ID0gRnJhZ21lbnQ7XG5leHBvcnRzLkxhenkgPSBMYXp5O1xuZXhwb3J0cy5NZW1vID0gTWVtbztcbmV4cG9ydHMuUG9ydGFsID0gUG9ydGFsO1xuZXhwb3J0cy5Qcm9maWxlciA9IFByb2ZpbGVyO1xuZXhwb3J0cy5TdHJpY3RNb2RlID0gU3RyaWN0TW9kZTtcbmV4cG9ydHMuU3VzcGVuc2UgPSBTdXNwZW5zZTtcbmV4cG9ydHMuaXNBc3luY01vZGUgPSBpc0FzeW5jTW9kZTtcbmV4cG9ydHMuaXNDb25jdXJyZW50TW9kZSA9IGlzQ29uY3VycmVudE1vZGU7XG5leHBvcnRzLmlzQ29udGV4dENvbnN1bWVyID0gaXNDb250ZXh0Q29uc3VtZXI7XG5leHBvcnRzLmlzQ29udGV4dFByb3ZpZGVyID0gaXNDb250ZXh0UHJvdmlkZXI7XG5leHBvcnRzLmlzRWxlbWVudCA9IGlzRWxlbWVudDtcbmV4cG9ydHMuaXNGb3J3YXJkUmVmID0gaXNGb3J3YXJkUmVmO1xuZXhwb3J0cy5pc0ZyYWdtZW50ID0gaXNGcmFnbWVudDtcbmV4cG9ydHMuaXNMYXp5ID0gaXNMYXp5O1xuZXhwb3J0cy5pc01lbW8gPSBpc01lbW87XG5leHBvcnRzLmlzUG9ydGFsID0gaXNQb3J0YWw7XG5leHBvcnRzLmlzUHJvZmlsZXIgPSBpc1Byb2ZpbGVyO1xuZXhwb3J0cy5pc1N0cmljdE1vZGUgPSBpc1N0cmljdE1vZGU7XG5leHBvcnRzLmlzU3VzcGVuc2UgPSBpc1N1c3BlbnNlO1xuZXhwb3J0cy5pc1ZhbGlkRWxlbWVudFR5cGUgPSBpc1ZhbGlkRWxlbWVudFR5cGU7XG5leHBvcnRzLnR5cGVPZiA9IHR5cGVPZjtcbiAgfSkoKTtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js\n"); + +/***/ }), + +/***/ "./node_modules/prop-types/node_modules/react-is/index.js": +/*!****************************************************************!*\ + !*** ./node_modules/prop-types/node_modules/react-is/index.js ***! + \****************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ \"./node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9ub2RlX21vZHVsZXMvcmVhY3QtaXMvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsSUFBSSxLQUFxQyxFQUFFLEVBRTFDLENBQUM7QUFDRixFQUFFLHdKQUF5RDtBQUMzRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9ub2RlX21vZHVsZXMvcmVhY3QtaXMvaW5kZXguanM/NWQ1MCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtaXMucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtaXMuZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/prop-types/node_modules/react-is/index.js\n"); + +/***/ }), + +/***/ "./node_modules/react-circular-progressbar/dist/index.esm.js": +/*!*******************************************************************!*\ + !*** ./node_modules/react-circular-progressbar/dist/index.esm.js ***! + \*******************************************************************/ +/***/ (function(__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 */ \"CircularProgressbar\": function() { return /* binding */ CircularProgressbar; },\n/* harmony export */ \"CircularProgressbarWithChildren\": function() { return /* binding */ CircularProgressbarWithChildren; },\n/* harmony export */ \"buildStyles\": function() { return /* binding */ buildStyles; }\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\n\nvar VIEWBOX_WIDTH = 100;\r\nvar VIEWBOX_HEIGHT = 100;\r\nvar VIEWBOX_HEIGHT_HALF = 50;\r\nvar VIEWBOX_CENTER_X = 50;\r\nvar VIEWBOX_CENTER_Y = 50;\n\nfunction Path(_a) {\r\n var className = _a.className, counterClockwise = _a.counterClockwise, dashRatio = _a.dashRatio, pathRadius = _a.pathRadius, strokeWidth = _a.strokeWidth, style = _a.style;\r\n return ((0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"path\", { className: className, style: Object.assign({}, style, getDashStyle({ pathRadius: pathRadius, dashRatio: dashRatio, counterClockwise: counterClockwise })), d: getPathDescription({\r\n pathRadius: pathRadius,\r\n counterClockwise: counterClockwise,\r\n }), strokeWidth: strokeWidth, fillOpacity: 0 }));\r\n}\r\nfunction getPathDescription(_a) {\r\n var pathRadius = _a.pathRadius, counterClockwise = _a.counterClockwise;\r\n var radius = pathRadius;\r\n var rotation = counterClockwise ? 1 : 0;\r\n return \"\\n M \" + VIEWBOX_CENTER_X + \",\" + VIEWBOX_CENTER_Y + \"\\n m 0,-\" + radius + \"\\n a \" + radius + \",\" + radius + \" \" + rotation + \" 1 1 0,\" + 2 * radius + \"\\n a \" + radius + \",\" + radius + \" \" + rotation + \" 1 1 0,-\" + 2 * radius + \"\\n \";\r\n}\r\nfunction getDashStyle(_a) {\r\n var counterClockwise = _a.counterClockwise, dashRatio = _a.dashRatio, pathRadius = _a.pathRadius;\r\n var diameter = Math.PI * 2 * pathRadius;\r\n var gapLength = (1 - dashRatio) * diameter;\r\n return {\r\n strokeDasharray: diameter + \"px \" + diameter + \"px\",\r\n strokeDashoffset: (counterClockwise ? -gapLength : gapLength) + \"px\",\r\n };\r\n}\n\nvar CircularProgressbar = (function (_super) {\r\n __extends(CircularProgressbar, _super);\r\n function CircularProgressbar() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n CircularProgressbar.prototype.getBackgroundPadding = function () {\r\n if (!this.props.background) {\r\n return 0;\r\n }\r\n return this.props.backgroundPadding;\r\n };\r\n CircularProgressbar.prototype.getPathRadius = function () {\r\n return VIEWBOX_HEIGHT_HALF - this.props.strokeWidth / 2 - this.getBackgroundPadding();\r\n };\r\n CircularProgressbar.prototype.getPathRatio = function () {\r\n var _a = this.props, value = _a.value, minValue = _a.minValue, maxValue = _a.maxValue;\r\n var boundedValue = Math.min(Math.max(value, minValue), maxValue);\r\n return (boundedValue - minValue) / (maxValue - minValue);\r\n };\r\n CircularProgressbar.prototype.render = function () {\r\n var _a = this.props, circleRatio = _a.circleRatio, className = _a.className, classes = _a.classes, counterClockwise = _a.counterClockwise, styles = _a.styles, strokeWidth = _a.strokeWidth, text = _a.text;\r\n var pathRadius = this.getPathRadius();\r\n var pathRatio = this.getPathRatio();\r\n return ((0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"svg\", { className: classes.root + \" \" + className, style: styles.root, viewBox: \"0 0 \" + VIEWBOX_WIDTH + \" \" + VIEWBOX_HEIGHT, \"data-test-id\": \"CircularProgressbar\" },\r\n this.props.background ? ((0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"circle\", { className: classes.background, style: styles.background, cx: VIEWBOX_CENTER_X, cy: VIEWBOX_CENTER_Y, r: VIEWBOX_HEIGHT_HALF })) : null,\r\n (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Path, { className: classes.trail, counterClockwise: counterClockwise, dashRatio: circleRatio, pathRadius: pathRadius, strokeWidth: strokeWidth, style: styles.trail }),\r\n (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Path, { className: classes.path, counterClockwise: counterClockwise, dashRatio: pathRatio * circleRatio, pathRadius: pathRadius, strokeWidth: strokeWidth, style: styles.path }),\r\n text ? ((0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"text\", { className: classes.text, style: styles.text, x: VIEWBOX_CENTER_X, y: VIEWBOX_CENTER_Y }, text)) : null));\r\n };\r\n CircularProgressbar.defaultProps = {\r\n background: false,\r\n backgroundPadding: 0,\r\n circleRatio: 1,\r\n classes: {\r\n root: 'CircularProgressbar',\r\n trail: 'CircularProgressbar-trail',\r\n path: 'CircularProgressbar-path',\r\n text: 'CircularProgressbar-text',\r\n background: 'CircularProgressbar-background',\r\n },\r\n counterClockwise: false,\r\n className: '',\r\n maxValue: 100,\r\n minValue: 0,\r\n strokeWidth: 8,\r\n styles: {\r\n root: {},\r\n trail: {},\r\n path: {},\r\n text: {},\r\n background: {},\r\n },\r\n text: '',\r\n };\r\n return CircularProgressbar;\r\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component));\n\nfunction CircularProgressbarWithChildren(props) {\r\n var children = props.children, circularProgressbarProps = __rest(props, [\"children\"]);\r\n return ((0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"div\", { \"data-test-id\": \"CircularProgressbarWithChildren\" },\r\n (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"div\", { style: { position: 'relative', width: '100%', height: '100%' } },\r\n (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(CircularProgressbar, __assign({}, circularProgressbarProps)),\r\n props.children ? ((0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"div\", { \"data-test-id\": \"CircularProgressbarWithChildren__children\", style: {\r\n position: 'absolute',\r\n width: '100%',\r\n height: '100%',\r\n marginTop: '-100%',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n } }, props.children)) : null)));\r\n}\n\nfunction buildStyles(_a) {\r\n var rotation = _a.rotation, strokeLinecap = _a.strokeLinecap, textColor = _a.textColor, textSize = _a.textSize, pathColor = _a.pathColor, pathTransition = _a.pathTransition, pathTransitionDuration = _a.pathTransitionDuration, trailColor = _a.trailColor, backgroundColor = _a.backgroundColor;\r\n var rotationTransform = rotation == null ? undefined : \"rotate(\" + rotation + \"turn)\";\r\n var rotationTransformOrigin = rotation == null ? undefined : 'center center';\r\n return {\r\n root: {},\r\n path: removeUndefinedValues({\r\n stroke: pathColor,\r\n strokeLinecap: strokeLinecap,\r\n transform: rotationTransform,\r\n transformOrigin: rotationTransformOrigin,\r\n transition: pathTransition,\r\n transitionDuration: pathTransitionDuration == null ? undefined : pathTransitionDuration + \"s\",\r\n }),\r\n trail: removeUndefinedValues({\r\n stroke: trailColor,\r\n strokeLinecap: strokeLinecap,\r\n transform: rotationTransform,\r\n transformOrigin: rotationTransformOrigin,\r\n }),\r\n text: removeUndefinedValues({\r\n fill: textColor,\r\n fontSize: textSize,\r\n }),\r\n background: removeUndefinedValues({\r\n fill: backgroundColor,\r\n }),\r\n };\r\n}\r\nfunction removeUndefinedValues(obj) {\r\n Object.keys(obj).forEach(function (key) {\r\n if (obj[key] == null) {\r\n delete obj[key];\r\n }\r\n });\r\n return obj;\r\n}\n\n\n//# sourceMappingURL=index.esm.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtY2lyY3VsYXItcHJvZ3Jlc3NiYXIvZGlzdC9pbmRleC5lc20uanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBaUQ7O0FBRWpEO0FBQ0E7QUFDQSxnRUFBZ0U7QUFDaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxnQkFBZ0Isc0NBQXNDLGtCQUFrQjtBQUNuRiwwQkFBMEI7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaURBQWlELE9BQU87QUFDeEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2REFBNkQsY0FBYztBQUMzRTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsWUFBWSxvREFBYSxXQUFXLDZDQUE2Qyx3QkFBd0Isa0ZBQWtGO0FBQzNMO0FBQ0E7QUFDQSxTQUFTLDZDQUE2QztBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLG9EQUFhLFVBQVUsOEpBQThKO0FBQ3JNLHFDQUFxQyxvREFBYSxhQUFhLDZIQUE2SDtBQUM1TCxZQUFZLG9EQUFhLFNBQVMsNkpBQTZKO0FBQy9MLFlBQVksb0RBQWEsU0FBUyx1S0FBdUs7QUFDek0sb0JBQW9CLG9EQUFhLFdBQVcsdUZBQXVGO0FBQ25JO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCLHFCQUFxQjtBQUNyQixvQkFBb0I7QUFDcEIsb0JBQW9CO0FBQ3BCLDBCQUEwQjtBQUMxQixTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxDQUFDLDRDQUFTOztBQUVYO0FBQ0E7QUFDQSxZQUFZLG9EQUFhLFVBQVUsbURBQW1EO0FBQ3RGLFFBQVEsb0RBQWEsVUFBVSxTQUFTLHVEQUF1RDtBQUMvRixZQUFZLG9EQUFhLGlDQUFpQztBQUMxRCw4QkFBOEIsb0RBQWEsVUFBVTtBQUNyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CO0FBQ25COztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUU2RTtBQUM3RSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmVhY3QtY2lyY3VsYXItcHJvZ3Jlc3NiYXIvZGlzdC9pbmRleC5lc20uanM/YjQ4OSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVFbGVtZW50LCBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5cbi8qISAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5Db3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTsgeW91IG1heSBub3QgdXNlXHJcbnRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlXHJcbkxpY2Vuc2UgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcblxyXG5USElTIENPREUgSVMgUFJPVklERUQgT04gQU4gKkFTIElTKiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZXHJcbktJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gQU5ZIElNUExJRURcclxuV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSxcclxuTUVSQ0hBTlRBQkxJVFkgT1IgTk9OLUlORlJJTkdFTUVOVC5cclxuXHJcblNlZSB0aGUgQXBhY2hlIFZlcnNpb24gMi4wIExpY2Vuc2UgZm9yIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xyXG5hbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXHJcbi8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlICovXHJcblxyXG52YXIgZXh0ZW5kU3RhdGljcyA9IGZ1bmN0aW9uKGQsIGIpIHtcclxuICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcclxuICAgICAgICAoeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbiAoZCwgYikgeyBkLl9fcHJvdG9fXyA9IGI7IH0pIHx8XHJcbiAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07XHJcbiAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTtcclxufTtcclxuXHJcbmZ1bmN0aW9uIF9fZXh0ZW5kcyhkLCBiKSB7XHJcbiAgICBleHRlbmRTdGF0aWNzKGQsIGIpO1xyXG4gICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9XHJcbiAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XHJcbn1cclxuXHJcbnZhciBfX2Fzc2lnbiA9IGZ1bmN0aW9uKCkge1xyXG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uIF9fYXNzaWduKHQpIHtcclxuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcclxuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcclxuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKSB0W3BdID0gc1twXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHQ7XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XHJcbn07XHJcblxyXG5mdW5jdGlvbiBfX3Jlc3QocywgZSkge1xyXG4gICAgdmFyIHQgPSB7fTtcclxuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxyXG4gICAgICAgIHRbcF0gPSBzW3BdO1xyXG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIGlmIChlLmluZGV4T2YocFtpXSkgPCAwKVxyXG4gICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcclxuICAgIHJldHVybiB0O1xyXG59XG5cbnZhciBWSUVXQk9YX1dJRFRIID0gMTAwO1xyXG52YXIgVklFV0JPWF9IRUlHSFQgPSAxMDA7XHJcbnZhciBWSUVXQk9YX0hFSUdIVF9IQUxGID0gNTA7XHJcbnZhciBWSUVXQk9YX0NFTlRFUl9YID0gNTA7XHJcbnZhciBWSUVXQk9YX0NFTlRFUl9ZID0gNTA7XG5cbmZ1bmN0aW9uIFBhdGgoX2EpIHtcclxuICAgIHZhciBjbGFzc05hbWUgPSBfYS5jbGFzc05hbWUsIGNvdW50ZXJDbG9ja3dpc2UgPSBfYS5jb3VudGVyQ2xvY2t3aXNlLCBkYXNoUmF0aW8gPSBfYS5kYXNoUmF0aW8sIHBhdGhSYWRpdXMgPSBfYS5wYXRoUmFkaXVzLCBzdHJva2VXaWR0aCA9IF9hLnN0cm9rZVdpZHRoLCBzdHlsZSA9IF9hLnN0eWxlO1xyXG4gICAgcmV0dXJuIChjcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7IGNsYXNzTmFtZTogY2xhc3NOYW1lLCBzdHlsZTogT2JqZWN0LmFzc2lnbih7fSwgc3R5bGUsIGdldERhc2hTdHlsZSh7IHBhdGhSYWRpdXM6IHBhdGhSYWRpdXMsIGRhc2hSYXRpbzogZGFzaFJhdGlvLCBjb3VudGVyQ2xvY2t3aXNlOiBjb3VudGVyQ2xvY2t3aXNlIH0pKSwgZDogZ2V0UGF0aERlc2NyaXB0aW9uKHtcclxuICAgICAgICAgICAgcGF0aFJhZGl1czogcGF0aFJhZGl1cyxcclxuICAgICAgICAgICAgY291bnRlckNsb2Nrd2lzZTogY291bnRlckNsb2Nrd2lzZSxcclxuICAgICAgICB9KSwgc3Ryb2tlV2lkdGg6IHN0cm9rZVdpZHRoLCBmaWxsT3BhY2l0eTogMCB9KSk7XHJcbn1cclxuZnVuY3Rpb24gZ2V0UGF0aERlc2NyaXB0aW9uKF9hKSB7XHJcbiAgICB2YXIgcGF0aFJhZGl1cyA9IF9hLnBhdGhSYWRpdXMsIGNvdW50ZXJDbG9ja3dpc2UgPSBfYS5jb3VudGVyQ2xvY2t3aXNlO1xyXG4gICAgdmFyIHJhZGl1cyA9IHBhdGhSYWRpdXM7XHJcbiAgICB2YXIgcm90YXRpb24gPSBjb3VudGVyQ2xvY2t3aXNlID8gMSA6IDA7XHJcbiAgICByZXR1cm4gXCJcXG4gICAgICBNIFwiICsgVklFV0JPWF9DRU5URVJfWCArIFwiLFwiICsgVklFV0JPWF9DRU5URVJfWSArIFwiXFxuICAgICAgbSAwLC1cIiArIHJhZGl1cyArIFwiXFxuICAgICAgYSBcIiArIHJhZGl1cyArIFwiLFwiICsgcmFkaXVzICsgXCIgXCIgKyByb3RhdGlvbiArIFwiIDEgMSAwLFwiICsgMiAqIHJhZGl1cyArIFwiXFxuICAgICAgYSBcIiArIHJhZGl1cyArIFwiLFwiICsgcmFkaXVzICsgXCIgXCIgKyByb3RhdGlvbiArIFwiIDEgMSAwLC1cIiArIDIgKiByYWRpdXMgKyBcIlxcbiAgICBcIjtcclxufVxyXG5mdW5jdGlvbiBnZXREYXNoU3R5bGUoX2EpIHtcclxuICAgIHZhciBjb3VudGVyQ2xvY2t3aXNlID0gX2EuY291bnRlckNsb2Nrd2lzZSwgZGFzaFJhdGlvID0gX2EuZGFzaFJhdGlvLCBwYXRoUmFkaXVzID0gX2EucGF0aFJhZGl1cztcclxuICAgIHZhciBkaWFtZXRlciA9IE1hdGguUEkgKiAyICogcGF0aFJhZGl1cztcclxuICAgIHZhciBnYXBMZW5ndGggPSAoMSAtIGRhc2hSYXRpbykgKiBkaWFtZXRlcjtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgc3Ryb2tlRGFzaGFycmF5OiBkaWFtZXRlciArIFwicHggXCIgKyBkaWFtZXRlciArIFwicHhcIixcclxuICAgICAgICBzdHJva2VEYXNob2Zmc2V0OiAoY291bnRlckNsb2Nrd2lzZSA/IC1nYXBMZW5ndGggOiBnYXBMZW5ndGgpICsgXCJweFwiLFxyXG4gICAgfTtcclxufVxuXG52YXIgQ2lyY3VsYXJQcm9ncmVzc2JhciA9IChmdW5jdGlvbiAoX3N1cGVyKSB7XHJcbiAgICBfX2V4dGVuZHMoQ2lyY3VsYXJQcm9ncmVzc2JhciwgX3N1cGVyKTtcclxuICAgIGZ1bmN0aW9uIENpcmN1bGFyUHJvZ3Jlc3NiYXIoKSB7XHJcbiAgICAgICAgcmV0dXJuIF9zdXBlciAhPT0gbnVsbCAmJiBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xyXG4gICAgfVxyXG4gICAgQ2lyY3VsYXJQcm9ncmVzc2Jhci5wcm90b3R5cGUuZ2V0QmFja2dyb3VuZFBhZGRpbmcgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnByb3BzLmJhY2tncm91bmQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLnByb3BzLmJhY2tncm91bmRQYWRkaW5nO1xyXG4gICAgfTtcclxuICAgIENpcmN1bGFyUHJvZ3Jlc3NiYXIucHJvdG90eXBlLmdldFBhdGhSYWRpdXMgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgcmV0dXJuIFZJRVdCT1hfSEVJR0hUX0hBTEYgLSB0aGlzLnByb3BzLnN0cm9rZVdpZHRoIC8gMiAtIHRoaXMuZ2V0QmFja2dyb3VuZFBhZGRpbmcoKTtcclxuICAgIH07XHJcbiAgICBDaXJjdWxhclByb2dyZXNzYmFyLnByb3RvdHlwZS5nZXRQYXRoUmF0aW8gPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdmFyIF9hID0gdGhpcy5wcm9wcywgdmFsdWUgPSBfYS52YWx1ZSwgbWluVmFsdWUgPSBfYS5taW5WYWx1ZSwgbWF4VmFsdWUgPSBfYS5tYXhWYWx1ZTtcclxuICAgICAgICB2YXIgYm91bmRlZFZhbHVlID0gTWF0aC5taW4oTWF0aC5tYXgodmFsdWUsIG1pblZhbHVlKSwgbWF4VmFsdWUpO1xyXG4gICAgICAgIHJldHVybiAoYm91bmRlZFZhbHVlIC0gbWluVmFsdWUpIC8gKG1heFZhbHVlIC0gbWluVmFsdWUpO1xyXG4gICAgfTtcclxuICAgIENpcmN1bGFyUHJvZ3Jlc3NiYXIucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB2YXIgX2EgPSB0aGlzLnByb3BzLCBjaXJjbGVSYXRpbyA9IF9hLmNpcmNsZVJhdGlvLCBjbGFzc05hbWUgPSBfYS5jbGFzc05hbWUsIGNsYXNzZXMgPSBfYS5jbGFzc2VzLCBjb3VudGVyQ2xvY2t3aXNlID0gX2EuY291bnRlckNsb2Nrd2lzZSwgc3R5bGVzID0gX2Euc3R5bGVzLCBzdHJva2VXaWR0aCA9IF9hLnN0cm9rZVdpZHRoLCB0ZXh0ID0gX2EudGV4dDtcclxuICAgICAgICB2YXIgcGF0aFJhZGl1cyA9IHRoaXMuZ2V0UGF0aFJhZGl1cygpO1xyXG4gICAgICAgIHZhciBwYXRoUmF0aW8gPSB0aGlzLmdldFBhdGhSYXRpbygpO1xyXG4gICAgICAgIHJldHVybiAoY3JlYXRlRWxlbWVudChcInN2Z1wiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcy5yb290ICsgXCIgXCIgKyBjbGFzc05hbWUsIHN0eWxlOiBzdHlsZXMucm9vdCwgdmlld0JveDogXCIwIDAgXCIgKyBWSUVXQk9YX1dJRFRIICsgXCIgXCIgKyBWSUVXQk9YX0hFSUdIVCwgXCJkYXRhLXRlc3QtaWRcIjogXCJDaXJjdWxhclByb2dyZXNzYmFyXCIgfSxcclxuICAgICAgICAgICAgdGhpcy5wcm9wcy5iYWNrZ3JvdW5kID8gKGNyZWF0ZUVsZW1lbnQoXCJjaXJjbGVcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMuYmFja2dyb3VuZCwgc3R5bGU6IHN0eWxlcy5iYWNrZ3JvdW5kLCBjeDogVklFV0JPWF9DRU5URVJfWCwgY3k6IFZJRVdCT1hfQ0VOVEVSX1ksIHI6IFZJRVdCT1hfSEVJR0hUX0hBTEYgfSkpIDogbnVsbCxcclxuICAgICAgICAgICAgY3JlYXRlRWxlbWVudChQYXRoLCB7IGNsYXNzTmFtZTogY2xhc3Nlcy50cmFpbCwgY291bnRlckNsb2Nrd2lzZTogY291bnRlckNsb2Nrd2lzZSwgZGFzaFJhdGlvOiBjaXJjbGVSYXRpbywgcGF0aFJhZGl1czogcGF0aFJhZGl1cywgc3Ryb2tlV2lkdGg6IHN0cm9rZVdpZHRoLCBzdHlsZTogc3R5bGVzLnRyYWlsIH0pLFxyXG4gICAgICAgICAgICBjcmVhdGVFbGVtZW50KFBhdGgsIHsgY2xhc3NOYW1lOiBjbGFzc2VzLnBhdGgsIGNvdW50ZXJDbG9ja3dpc2U6IGNvdW50ZXJDbG9ja3dpc2UsIGRhc2hSYXRpbzogcGF0aFJhdGlvICogY2lyY2xlUmF0aW8sIHBhdGhSYWRpdXM6IHBhdGhSYWRpdXMsIHN0cm9rZVdpZHRoOiBzdHJva2VXaWR0aCwgc3R5bGU6IHN0eWxlcy5wYXRoIH0pLFxyXG4gICAgICAgICAgICB0ZXh0ID8gKGNyZWF0ZUVsZW1lbnQoXCJ0ZXh0XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzLnRleHQsIHN0eWxlOiBzdHlsZXMudGV4dCwgeDogVklFV0JPWF9DRU5URVJfWCwgeTogVklFV0JPWF9DRU5URVJfWSB9LCB0ZXh0KSkgOiBudWxsKSk7XHJcbiAgICB9O1xyXG4gICAgQ2lyY3VsYXJQcm9ncmVzc2Jhci5kZWZhdWx0UHJvcHMgPSB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogZmFsc2UsXHJcbiAgICAgICAgYmFja2dyb3VuZFBhZGRpbmc6IDAsXHJcbiAgICAgICAgY2lyY2xlUmF0aW86IDEsXHJcbiAgICAgICAgY2xhc3Nlczoge1xyXG4gICAgICAgICAgICByb290OiAnQ2lyY3VsYXJQcm9ncmVzc2JhcicsXHJcbiAgICAgICAgICAgIHRyYWlsOiAnQ2lyY3VsYXJQcm9ncmVzc2Jhci10cmFpbCcsXHJcbiAgICAgICAgICAgIHBhdGg6ICdDaXJjdWxhclByb2dyZXNzYmFyLXBhdGgnLFxyXG4gICAgICAgICAgICB0ZXh0OiAnQ2lyY3VsYXJQcm9ncmVzc2Jhci10ZXh0JyxcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogJ0NpcmN1bGFyUHJvZ3Jlc3NiYXItYmFja2dyb3VuZCcsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBjb3VudGVyQ2xvY2t3aXNlOiBmYWxzZSxcclxuICAgICAgICBjbGFzc05hbWU6ICcnLFxyXG4gICAgICAgIG1heFZhbHVlOiAxMDAsXHJcbiAgICAgICAgbWluVmFsdWU6IDAsXHJcbiAgICAgICAgc3Ryb2tlV2lkdGg6IDgsXHJcbiAgICAgICAgc3R5bGVzOiB7XHJcbiAgICAgICAgICAgIHJvb3Q6IHt9LFxyXG4gICAgICAgICAgICB0cmFpbDoge30sXHJcbiAgICAgICAgICAgIHBhdGg6IHt9LFxyXG4gICAgICAgICAgICB0ZXh0OiB7fSxcclxuICAgICAgICAgICAgYmFja2dyb3VuZDoge30sXHJcbiAgICAgICAgfSxcclxuICAgICAgICB0ZXh0OiAnJyxcclxuICAgIH07XHJcbiAgICByZXR1cm4gQ2lyY3VsYXJQcm9ncmVzc2JhcjtcclxufShDb21wb25lbnQpKTtcblxuZnVuY3Rpb24gQ2lyY3VsYXJQcm9ncmVzc2JhcldpdGhDaGlsZHJlbihwcm9wcykge1xyXG4gICAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sIGNpcmN1bGFyUHJvZ3Jlc3NiYXJQcm9wcyA9IF9fcmVzdChwcm9wcywgW1wiY2hpbGRyZW5cIl0pO1xyXG4gICAgcmV0dXJuIChjcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgXCJkYXRhLXRlc3QtaWRcIjogXCJDaXJjdWxhclByb2dyZXNzYmFyV2l0aENoaWxkcmVuXCIgfSxcclxuICAgICAgICBjcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgc3R5bGU6IHsgcG9zaXRpb246ICdyZWxhdGl2ZScsIHdpZHRoOiAnMTAwJScsIGhlaWdodDogJzEwMCUnIH0gfSxcclxuICAgICAgICAgICAgY3JlYXRlRWxlbWVudChDaXJjdWxhclByb2dyZXNzYmFyLCBfX2Fzc2lnbih7fSwgY2lyY3VsYXJQcm9ncmVzc2JhclByb3BzKSksXHJcbiAgICAgICAgICAgIHByb3BzLmNoaWxkcmVuID8gKGNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyBcImRhdGEtdGVzdC1pZFwiOiBcIkNpcmN1bGFyUHJvZ3Jlc3NiYXJXaXRoQ2hpbGRyZW5fX2NoaWxkcmVuXCIsIHN0eWxlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICcxMDAlJyxcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW5Ub3A6ICctMTAwJScsXHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxyXG4gICAgICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxyXG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcclxuICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcclxuICAgICAgICAgICAgICAgIH0gfSwgcHJvcHMuY2hpbGRyZW4pKSA6IG51bGwpKSk7XHJcbn1cblxuZnVuY3Rpb24gYnVpbGRTdHlsZXMoX2EpIHtcclxuICAgIHZhciByb3RhdGlvbiA9IF9hLnJvdGF0aW9uLCBzdHJva2VMaW5lY2FwID0gX2Euc3Ryb2tlTGluZWNhcCwgdGV4dENvbG9yID0gX2EudGV4dENvbG9yLCB0ZXh0U2l6ZSA9IF9hLnRleHRTaXplLCBwYXRoQ29sb3IgPSBfYS5wYXRoQ29sb3IsIHBhdGhUcmFuc2l0aW9uID0gX2EucGF0aFRyYW5zaXRpb24sIHBhdGhUcmFuc2l0aW9uRHVyYXRpb24gPSBfYS5wYXRoVHJhbnNpdGlvbkR1cmF0aW9uLCB0cmFpbENvbG9yID0gX2EudHJhaWxDb2xvciwgYmFja2dyb3VuZENvbG9yID0gX2EuYmFja2dyb3VuZENvbG9yO1xyXG4gICAgdmFyIHJvdGF0aW9uVHJhbnNmb3JtID0gcm90YXRpb24gPT0gbnVsbCA/IHVuZGVmaW5lZCA6IFwicm90YXRlKFwiICsgcm90YXRpb24gKyBcInR1cm4pXCI7XHJcbiAgICB2YXIgcm90YXRpb25UcmFuc2Zvcm1PcmlnaW4gPSByb3RhdGlvbiA9PSBudWxsID8gdW5kZWZpbmVkIDogJ2NlbnRlciBjZW50ZXInO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICByb290OiB7fSxcclxuICAgICAgICBwYXRoOiByZW1vdmVVbmRlZmluZWRWYWx1ZXMoe1xyXG4gICAgICAgICAgICBzdHJva2U6IHBhdGhDb2xvcixcclxuICAgICAgICAgICAgc3Ryb2tlTGluZWNhcDogc3Ryb2tlTGluZWNhcCxcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGlvblRyYW5zZm9ybSxcclxuICAgICAgICAgICAgdHJhbnNmb3JtT3JpZ2luOiByb3RhdGlvblRyYW5zZm9ybU9yaWdpbixcclxuICAgICAgICAgICAgdHJhbnNpdGlvbjogcGF0aFRyYW5zaXRpb24sXHJcbiAgICAgICAgICAgIHRyYW5zaXRpb25EdXJhdGlvbjogcGF0aFRyYW5zaXRpb25EdXJhdGlvbiA9PSBudWxsID8gdW5kZWZpbmVkIDogcGF0aFRyYW5zaXRpb25EdXJhdGlvbiArIFwic1wiLFxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIHRyYWlsOiByZW1vdmVVbmRlZmluZWRWYWx1ZXMoe1xyXG4gICAgICAgICAgICBzdHJva2U6IHRyYWlsQ29sb3IsXHJcbiAgICAgICAgICAgIHN0cm9rZUxpbmVjYXA6IHN0cm9rZUxpbmVjYXAsXHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRpb25UcmFuc2Zvcm0sXHJcbiAgICAgICAgICAgIHRyYW5zZm9ybU9yaWdpbjogcm90YXRpb25UcmFuc2Zvcm1PcmlnaW4sXHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgdGV4dDogcmVtb3ZlVW5kZWZpbmVkVmFsdWVzKHtcclxuICAgICAgICAgICAgZmlsbDogdGV4dENvbG9yLFxyXG4gICAgICAgICAgICBmb250U2l6ZTogdGV4dFNpemUsXHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgYmFja2dyb3VuZDogcmVtb3ZlVW5kZWZpbmVkVmFsdWVzKHtcclxuICAgICAgICAgICAgZmlsbDogYmFja2dyb3VuZENvbG9yLFxyXG4gICAgICAgIH0pLFxyXG4gICAgfTtcclxufVxyXG5mdW5jdGlvbiByZW1vdmVVbmRlZmluZWRWYWx1ZXMob2JqKSB7XHJcbiAgICBPYmplY3Qua2V5cyhvYmopLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xyXG4gICAgICAgIGlmIChvYmpba2V5XSA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIGRlbGV0ZSBvYmpba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBvYmo7XHJcbn1cblxuZXhwb3J0IHsgQ2lyY3VsYXJQcm9ncmVzc2JhciwgQ2lyY3VsYXJQcm9ncmVzc2JhcldpdGhDaGlsZHJlbiwgYnVpbGRTdHlsZXMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmVzbS5qcy5tYXBcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-circular-progressbar/dist/index.esm.js\n"); + +/***/ }), + +/***/ "./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js": +/*!****************************************************************************!*\ + !*** ./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js ***! + \****************************************************************************/ +/***/ (function(__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 */ \"polyfill\": function() { return /* binding */ polyfill; }\n/* harmony export */ });\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtbGlmZWN5Y2xlcy1jb21wYXQvcmVhY3QtbGlmZWN5Y2xlcy1jb21wYXQuZXMuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRW9CIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9yZWFjdC1saWZlY3ljbGVzLWNvbXBhdC9yZWFjdC1saWZlY3ljbGVzLWNvbXBhdC5lcy5qcz81MzY5Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuZnVuY3Rpb24gY29tcG9uZW50V2lsbE1vdW50KCkge1xuICAvLyBDYWxsIHRoaXMuY29uc3RydWN0b3IuZ0RTRlAgdG8gc3VwcG9ydCBzdWItY2xhc3Nlcy5cbiAgdmFyIHN0YXRlID0gdGhpcy5jb25zdHJ1Y3Rvci5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHModGhpcy5wcm9wcywgdGhpcy5zdGF0ZSk7XG4gIGlmIChzdGF0ZSAhPT0gbnVsbCAmJiBzdGF0ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5zZXRTdGF0ZShzdGF0ZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMpIHtcbiAgLy8gQ2FsbCB0aGlzLmNvbnN0cnVjdG9yLmdEU0ZQIHRvIHN1cHBvcnQgc3ViLWNsYXNzZXMuXG4gIC8vIFVzZSB0aGUgc2V0U3RhdGUoKSB1cGRhdGVyIHRvIGVuc3VyZSBzdGF0ZSBpc24ndCBzdGFsZSBpbiBjZXJ0YWluIGVkZ2UgY2FzZXMuXG4gIGZ1bmN0aW9uIHVwZGF0ZXIocHJldlN0YXRlKSB7XG4gICAgdmFyIHN0YXRlID0gdGhpcy5jb25zdHJ1Y3Rvci5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMobmV4dFByb3BzLCBwcmV2U3RhdGUpO1xuICAgIHJldHVybiBzdGF0ZSAhPT0gbnVsbCAmJiBzdGF0ZSAhPT0gdW5kZWZpbmVkID8gc3RhdGUgOiBudWxsO1xuICB9XG4gIC8vIEJpbmRpbmcgXCJ0aGlzXCIgaXMgaW1wb3J0YW50IGZvciBzaGFsbG93IHJlbmRlcmVyIHN1cHBvcnQuXG4gIHRoaXMuc2V0U3RhdGUodXBkYXRlci5iaW5kKHRoaXMpKTtcbn1cblxuZnVuY3Rpb24gY29tcG9uZW50V2lsbFVwZGF0ZShuZXh0UHJvcHMsIG5leHRTdGF0ZSkge1xuICB0cnkge1xuICAgIHZhciBwcmV2UHJvcHMgPSB0aGlzLnByb3BzO1xuICAgIHZhciBwcmV2U3RhdGUgPSB0aGlzLnN0YXRlO1xuICAgIHRoaXMucHJvcHMgPSBuZXh0UHJvcHM7XG4gICAgdGhpcy5zdGF0ZSA9IG5leHRTdGF0ZTtcbiAgICB0aGlzLl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90RmxhZyA9IHRydWU7XG4gICAgdGhpcy5fX3JlYWN0SW50ZXJuYWxTbmFwc2hvdCA9IHRoaXMuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUoXG4gICAgICBwcmV2UHJvcHMsXG4gICAgICBwcmV2U3RhdGVcbiAgICApO1xuICB9IGZpbmFsbHkge1xuICAgIHRoaXMucHJvcHMgPSBwcmV2UHJvcHM7XG4gICAgdGhpcy5zdGF0ZSA9IHByZXZTdGF0ZTtcbiAgfVxufVxuXG4vLyBSZWFjdCBtYXkgd2FybiBhYm91dCBjV00vY1dSUC9jV1UgbWV0aG9kcyBiZWluZyBkZXByZWNhdGVkLlxuLy8gQWRkIGEgZmxhZyB0byBzdXBwcmVzcyB0aGVzZSB3YXJuaW5ncyBmb3IgdGhpcyBzcGVjaWFsIGNhc2UuXG5jb21wb25lbnRXaWxsTW91bnQuX19zdXBwcmVzc0RlcHJlY2F0aW9uV2FybmluZyA9IHRydWU7XG5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzLl9fc3VwcHJlc3NEZXByZWNhdGlvbldhcm5pbmcgPSB0cnVlO1xuY29tcG9uZW50V2lsbFVwZGF0ZS5fX3N1cHByZXNzRGVwcmVjYXRpb25XYXJuaW5nID0gdHJ1ZTtcblxuZnVuY3Rpb24gcG9seWZpbGwoQ29tcG9uZW50KSB7XG4gIHZhciBwcm90b3R5cGUgPSBDb21wb25lbnQucHJvdG90eXBlO1xuXG4gIGlmICghcHJvdG90eXBlIHx8ICFwcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudCkge1xuICAgIHRocm93IG5ldyBFcnJvcignQ2FuIG9ubHkgcG9seWZpbGwgY2xhc3MgY29tcG9uZW50cycpO1xuICB9XG5cbiAgaWYgKFxuICAgIHR5cGVvZiBDb21wb25lbnQuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzICE9PSAnZnVuY3Rpb24nICYmXG4gICAgdHlwZW9mIHByb3RvdHlwZS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSAhPT0gJ2Z1bmN0aW9uJ1xuICApIHtcbiAgICByZXR1cm4gQ29tcG9uZW50O1xuICB9XG5cbiAgLy8gSWYgbmV3IGNvbXBvbmVudCBBUElzIGFyZSBkZWZpbmVkLCBcInVuc2FmZVwiIGxpZmVjeWNsZXMgd29uJ3QgYmUgY2FsbGVkLlxuICAvLyBFcnJvciBpZiBhbnkgb2YgdGhlc2UgbGlmZWN5Y2xlcyBhcmUgcHJlc2VudCxcbiAgLy8gQmVjYXVzZSB0aGV5IHdvdWxkIHdvcmsgZGlmZmVyZW50bHkgYmV0d2VlbiBvbGRlciBhbmQgbmV3ZXIgKDE2LjMrKSB2ZXJzaW9ucyBvZiBSZWFjdC5cbiAgdmFyIGZvdW5kV2lsbE1vdW50TmFtZSA9IG51bGw7XG4gIHZhciBmb3VuZFdpbGxSZWNlaXZlUHJvcHNOYW1lID0gbnVsbDtcbiAgdmFyIGZvdW5kV2lsbFVwZGF0ZU5hbWUgPSBudWxsO1xuICBpZiAodHlwZW9mIHByb3RvdHlwZS5jb21wb25lbnRXaWxsTW91bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICBmb3VuZFdpbGxNb3VudE5hbWUgPSAnY29tcG9uZW50V2lsbE1vdW50JztcbiAgfSBlbHNlIGlmICh0eXBlb2YgcHJvdG90eXBlLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICBmb3VuZFdpbGxNb3VudE5hbWUgPSAnVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCc7XG4gIH1cbiAgaWYgKHR5cGVvZiBwcm90b3R5cGUuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGZvdW5kV2lsbFJlY2VpdmVQcm9wc05hbWUgPSAnY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyc7XG4gIH0gZWxzZSBpZiAodHlwZW9mIHByb3RvdHlwZS5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGZvdW5kV2lsbFJlY2VpdmVQcm9wc05hbWUgPSAnVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMnO1xuICB9XG4gIGlmICh0eXBlb2YgcHJvdG90eXBlLmNvbXBvbmVudFdpbGxVcGRhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICBmb3VuZFdpbGxVcGRhdGVOYW1lID0gJ2NvbXBvbmVudFdpbGxVcGRhdGUnO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBwcm90b3R5cGUuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICBmb3VuZFdpbGxVcGRhdGVOYW1lID0gJ1VOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlJztcbiAgfVxuICBpZiAoXG4gICAgZm91bmRXaWxsTW91bnROYW1lICE9PSBudWxsIHx8XG4gICAgZm91bmRXaWxsUmVjZWl2ZVByb3BzTmFtZSAhPT0gbnVsbCB8fFxuICAgIGZvdW5kV2lsbFVwZGF0ZU5hbWUgIT09IG51bGxcbiAgKSB7XG4gICAgdmFyIGNvbXBvbmVudE5hbWUgPSBDb21wb25lbnQuZGlzcGxheU5hbWUgfHwgQ29tcG9uZW50Lm5hbWU7XG4gICAgdmFyIG5ld0FwaU5hbWUgPVxuICAgICAgdHlwZW9mIENvbXBvbmVudC5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgPT09ICdmdW5jdGlvbidcbiAgICAgICAgPyAnZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKCknXG4gICAgICAgIDogJ2dldFNuYXBzaG90QmVmb3JlVXBkYXRlKCknO1xuXG4gICAgdGhyb3cgRXJyb3IoXG4gICAgICAnVW5zYWZlIGxlZ2FjeSBsaWZlY3ljbGVzIHdpbGwgbm90IGJlIGNhbGxlZCBmb3IgY29tcG9uZW50cyB1c2luZyBuZXcgY29tcG9uZW50IEFQSXMuXFxuXFxuJyArXG4gICAgICAgIGNvbXBvbmVudE5hbWUgK1xuICAgICAgICAnIHVzZXMgJyArXG4gICAgICAgIG5ld0FwaU5hbWUgK1xuICAgICAgICAnIGJ1dCBhbHNvIGNvbnRhaW5zIHRoZSBmb2xsb3dpbmcgbGVnYWN5IGxpZmVjeWNsZXM6JyArXG4gICAgICAgIChmb3VuZFdpbGxNb3VudE5hbWUgIT09IG51bGwgPyAnXFxuICAnICsgZm91bmRXaWxsTW91bnROYW1lIDogJycpICtcbiAgICAgICAgKGZvdW5kV2lsbFJlY2VpdmVQcm9wc05hbWUgIT09IG51bGxcbiAgICAgICAgICA/ICdcXG4gICcgKyBmb3VuZFdpbGxSZWNlaXZlUHJvcHNOYW1lXG4gICAgICAgICAgOiAnJykgK1xuICAgICAgICAoZm91bmRXaWxsVXBkYXRlTmFtZSAhPT0gbnVsbCA/ICdcXG4gICcgKyBmb3VuZFdpbGxVcGRhdGVOYW1lIDogJycpICtcbiAgICAgICAgJ1xcblxcblRoZSBhYm92ZSBsaWZlY3ljbGVzIHNob3VsZCBiZSByZW1vdmVkLiBMZWFybiBtb3JlIGFib3V0IHRoaXMgd2FybmluZyBoZXJlOlxcbicgK1xuICAgICAgICAnaHR0cHM6Ly9mYi5tZS9yZWFjdC1hc3luYy1jb21wb25lbnQtbGlmZWN5Y2xlLWhvb2tzJ1xuICAgICk7XG4gIH1cblxuICAvLyBSZWFjdCA8PSAxNi4yIGRvZXMgbm90IHN1cHBvcnQgc3RhdGljIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcy5cbiAgLy8gQXMgYSB3b3JrYXJvdW5kLCB1c2UgY1dNIGFuZCBjV1JQIHRvIGludm9rZSB0aGUgbmV3IHN0YXRpYyBsaWZlY3ljbGUuXG4gIC8vIE5ld2VyIHZlcnNpb25zIG9mIFJlYWN0IHdpbGwgaWdub3JlIHRoZXNlIGxpZmVjeWNsZXMgaWYgZ0RTRlAgZXhpc3RzLlxuICBpZiAodHlwZW9mIENvbXBvbmVudC5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICBwcm90b3R5cGUuY29tcG9uZW50V2lsbE1vdW50ID0gY29tcG9uZW50V2lsbE1vdW50O1xuICAgIHByb3RvdHlwZS5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzID0gY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcztcbiAgfVxuXG4gIC8vIFJlYWN0IDw9IDE2LjIgZG9lcyBub3Qgc3VwcG9ydCBnZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZS5cbiAgLy8gQXMgYSB3b3JrYXJvdW5kLCB1c2UgY1dVIHRvIGludm9rZSB0aGUgbmV3IGxpZmVjeWNsZS5cbiAgLy8gTmV3ZXIgdmVyc2lvbnMgb2YgUmVhY3Qgd2lsbCBpZ25vcmUgdGhhdCBsaWZlY3ljbGUgaWYgZ1NCVSBleGlzdHMuXG4gIGlmICh0eXBlb2YgcHJvdG90eXBlLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgaWYgKHR5cGVvZiBwcm90b3R5cGUuY29tcG9uZW50RGlkVXBkYXRlICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdDYW5ub3QgcG9seWZpbGwgZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUoKSBmb3IgY29tcG9uZW50cyB0aGF0IGRvIG5vdCBkZWZpbmUgY29tcG9uZW50RGlkVXBkYXRlKCkgb24gdGhlIHByb3RvdHlwZSdcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdG90eXBlLmNvbXBvbmVudFdpbGxVcGRhdGUgPSBjb21wb25lbnRXaWxsVXBkYXRlO1xuXG4gICAgdmFyIGNvbXBvbmVudERpZFVwZGF0ZSA9IHByb3RvdHlwZS5jb21wb25lbnREaWRVcGRhdGU7XG5cbiAgICBwcm90b3R5cGUuY29tcG9uZW50RGlkVXBkYXRlID0gZnVuY3Rpb24gY29tcG9uZW50RGlkVXBkYXRlUG9seWZpbGwoXG4gICAgICBwcmV2UHJvcHMsXG4gICAgICBwcmV2U3RhdGUsXG4gICAgICBtYXliZVNuYXBzaG90XG4gICAgKSB7XG4gICAgICAvLyAxNi4zKyB3aWxsIG5vdCBleGVjdXRlIG91ciB3aWxsLXVwZGF0ZSBtZXRob2Q7XG4gICAgICAvLyBJdCB3aWxsIHBhc3MgYSBzbmFwc2hvdCB2YWx1ZSB0byBkaWQtdXBkYXRlIHRob3VnaC5cbiAgICAgIC8vIE9sZGVyIHZlcnNpb25zIHdpbGwgcmVxdWlyZSBvdXIgcG9seWZpbGxlZCB3aWxsLXVwZGF0ZSB2YWx1ZS5cbiAgICAgIC8vIFdlIG5lZWQgdG8gaGFuZGxlIGJvdGggY2FzZXMsIGJ1dCBjYW4ndCBqdXN0IGNoZWNrIGZvciB0aGUgcHJlc2VuY2Ugb2YgXCJtYXliZVNuYXBzaG90XCIsXG4gICAgICAvLyBCZWNhdXNlIGZvciA8PSAxNS54IHZlcnNpb25zIHRoaXMgbWlnaHQgYmUgYSBcInByZXZDb250ZXh0XCIgb2JqZWN0LlxuICAgICAgLy8gV2UgYWxzbyBjYW4ndCBqdXN0IGNoZWNrIFwiX19yZWFjdEludGVybmFsU25hcHNob3RcIixcbiAgICAgIC8vIEJlY2F1c2UgZ2V0LXNuYXBzaG90IG1pZ2h0IHJldHVybiBhIGZhbHN5IHZhbHVlLlxuICAgICAgLy8gU28gY2hlY2sgZm9yIHRoZSBleHBsaWNpdCBfX3JlYWN0SW50ZXJuYWxTbmFwc2hvdEZsYWcgZmxhZyB0byBkZXRlcm1pbmUgYmVoYXZpb3IuXG4gICAgICB2YXIgc25hcHNob3QgPSB0aGlzLl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90RmxhZ1xuICAgICAgICA/IHRoaXMuX19yZWFjdEludGVybmFsU25hcHNob3RcbiAgICAgICAgOiBtYXliZVNuYXBzaG90O1xuXG4gICAgICBjb21wb25lbnREaWRVcGRhdGUuY2FsbCh0aGlzLCBwcmV2UHJvcHMsIHByZXZTdGF0ZSwgc25hcHNob3QpO1xuICAgIH07XG4gIH1cblxuICByZXR1cm4gQ29tcG9uZW50O1xufVxuXG5leHBvcnQgeyBwb2x5ZmlsbCB9O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js\n"); + +/***/ }), + +/***/ "./node_modules/react-modal-video/lib/index.js": +/*!*****************************************************!*\ + !*** ./node_modules/react-modal-video/lib/index.js ***! + \*****************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _CSSTransition = __webpack_require__(/*! react-transition-group/CSSTransition */ \"./node_modules/react-modal-video/node_modules/react-transition-group/CSSTransition.js\");\n\nvar _CSSTransition2 = _interopRequireDefault(_CSSTransition);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ModalVideo = function (_React$Component) {\n _inherits(ModalVideo, _React$Component);\n\n function ModalVideo(props) {\n _classCallCheck(this, ModalVideo);\n\n var _this = _possibleConstructorReturn(this, (ModalVideo.__proto__ || Object.getPrototypeOf(ModalVideo)).call(this, props));\n\n _this.state = {\n isOpen: false,\n modalVideoWidth: _this.getWidthFulfillAspectRatio(_this.props.ratio, window.innerHeight, window.innerWidth)\n };\n _this.closeModal = _this.closeModal.bind(_this);\n _this.updateFocus = _this.updateFocus.bind(_this);\n\n _this.timeout; // used for resizing video.\n return _this;\n }\n\n _createClass(ModalVideo, [{\n key: 'openModal',\n value: function openModal() {\n this.setState({ isOpen: true });\n }\n }, {\n key: 'closeModal',\n value: function closeModal() {\n this.setState({ isOpen: false });\n if (typeof this.props.onClose === 'function') {\n this.props.onClose();\n }\n }\n }, {\n key: 'keydownHandler',\n value: function keydownHandler(e) {\n if (e.keyCode === 27) {\n this.closeModal();\n }\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n document.addEventListener('keydown', this.keydownHandler.bind(this));\n window.addEventListener('resize', this.resizeModalVideoWhenHeightGreaterThanWindowHeight.bind(this));\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n document.removeEventListener('keydown', this.keydownHandler.bind(this));\n window.removeEventListener('resize', this.resizeModalVideoWhenHeightGreaterThanWindowHeight.bind(this));\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n if (this.state.isOpen && this.modal) {\n this.modal.focus();\n }\n }\n }, {\n key: 'updateFocus',\n value: function updateFocus(e) {\n if (e.keyCode === 9) {\n e.preventDefault();\n e.stopPropagation();\n if (this.modal === document.activeElement) {\n this.modalbtn.focus();\n } else {\n this.modal.focus();\n }\n }\n }\n\n /**\n * Resize modal-video-iframe-wrap when window size changed when the height of the video is greater than the height of the window.\n */\n\n }, {\n key: 'resizeModalVideoWhenHeightGreaterThanWindowHeight',\n value: function resizeModalVideoWhenHeightGreaterThanWindowHeight() {\n var _this2 = this;\n\n clearTimeout(this.timeout);\n\n this.timeout = setTimeout(function () {\n var width = _this2.getWidthFulfillAspectRatio(_this2.props.ratio, window.innerHeight, window.innerWidth);\n if (_this2.state.modalVideoWidth != width) {\n _this2.setState({\n modalVideoWidth: width\n });\n }\n }, 10);\n }\n }, {\n key: 'getQueryString',\n value: function getQueryString(obj) {\n var url = '';\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n if (obj[key] !== null) {\n url += key + '=' + obj[key] + '&';\n }\n }\n }\n return url.substr(0, url.length - 1);\n }\n }, {\n key: 'getYoutubeUrl',\n value: function getYoutubeUrl(youtube, videoId) {\n var query = this.getQueryString(youtube);\n return '//www.youtube.com/embed/' + videoId + '?' + query;\n }\n }, {\n key: 'getVimeoUrl',\n value: function getVimeoUrl(vimeo, videoId) {\n var query = this.getQueryString(vimeo);\n return '//player.vimeo.com/video/' + videoId + '?' + query;\n }\n }, {\n key: 'getYoukuUrl',\n value: function getYoukuUrl(youku, videoId) {\n var query = this.getQueryString(youku);\n return '//player.youku.com/embed/' + videoId + '?' + query;\n }\n }, {\n key: 'getVideoUrl',\n value: function getVideoUrl(opt, videoId) {\n if (opt.channel === 'youtube') {\n return this.getYoutubeUrl(opt.youtube, videoId);\n } else if (opt.channel === 'vimeo') {\n return this.getVimeoUrl(opt.vimeo, videoId);\n } else if (opt.channel === 'youku') {\n return this.getYoukuUrl(opt.youku, videoId);\n } else if (opt.channel === 'custom') {\n return opt.url;\n }\n }\n }, {\n key: 'getPadding',\n value: function getPadding(ratio) {\n var arr = ratio.split(':');\n var width = Number(arr[0]);\n var height = Number(arr[1]);\n var padding = height * 100 / width;\n return padding + '%';\n }\n\n /**\n * Calculate the width of the video fulfill aspect ratio.\n * When the height of the video is greater than the height of the window,\n * this function return the width that fulfill the aspect ratio for the height of the window.\n * In other cases, this function return '100%'(the height relative to the width is determined by css).\n * \n * @param string ratio\n * @param number maxWidth\n * @returns number | '100%'\n */\n\n }, {\n key: 'getWidthFulfillAspectRatio',\n value: function getWidthFulfillAspectRatio(ratio, maxHeight, maxWidth) {\n var arr = ratio.split(':');\n var width = Number(arr[0]);\n var height = Number(arr[1]);\n\n // Height that fulfill the aspect ratio for maxWidth.\n var videoHeight = maxWidth * (height / width);\n\n if (maxHeight < videoHeight) {\n // when the height of the video is greater than the height of the window.\n // calculate the width that fulfill the aspect ratio for the height of the window.\n\n // ex: 16:9 aspect ratio\n // 16:9 = width : height\n // → width = 16 / 9 * height\n return Math.floor(width / height * maxHeight);\n }\n\n return '100%';\n }\n }, {\n key: 'render',\n value: function render() {\n var _this3 = this;\n\n var modalVideoInnerStyle = {\n width: this.state.modalVideoWidth\n };\n\n var modalVideoIframeWrapStyle = {\n paddingBottom: this.getPadding(this.props.ratio)\n };\n\n return _react2.default.createElement(\n _CSSTransition2.default,\n {\n classNames: this.props.classNames.modalVideoEffect,\n timeout: this.props.animationSpeed\n },\n function () {\n if (!_this3.state.isOpen) {\n return null;\n }\n\n return _react2.default.createElement(\n 'div',\n { className: _this3.props.classNames.modalVideo, tabIndex: '-1', role: 'dialog',\n 'aria-label': _this3.props.aria.openMessage, onClick: _this3.closeModal, ref: function ref(node) {\n _this3.modal = node;\n }, onKeyDown: _this3.updateFocus },\n _react2.default.createElement(\n 'div',\n { className: _this3.props.classNames.modalVideoBody },\n _react2.default.createElement(\n 'div',\n { className: _this3.props.classNames.modalVideoInner, style: modalVideoInnerStyle },\n _react2.default.createElement(\n 'div',\n { className: _this3.props.classNames.modalVideoIframeWrap, style: modalVideoIframeWrapStyle },\n _react2.default.createElement('button', { className: _this3.props.classNames.modalVideoCloseBtn, 'aria-label': _this3.props.aria.dismissBtnMessage, ref: function ref(node) {\n _this3.modalbtn = node;\n }, onKeyDown: _this3.updateFocus }),\n _this3.props.children || _react2.default.createElement('iframe', { width: '460', height: '230', src: _this3.getVideoUrl(_this3.props, _this3.props.videoId), frameBorder: '0', allow: 'accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture', allowFullScreen: _this3.props.allowFullScreen, tabIndex: '-1' })\n )\n )\n )\n );\n }\n );\n }\n }], [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(props) {\n return { isOpen: props.isOpen };\n }\n }]);\n\n return ModalVideo;\n}(_react2.default.Component);\n\nexports[\"default\"] = ModalVideo;\n\n\nModalVideo.defaultProps = {\n channel: 'youtube',\n isOpen: false,\n youtube: {\n autoplay: 1,\n cc_load_policy: 1,\n color: null,\n controls: 1,\n disablekb: 0,\n enablejsapi: 0,\n end: null,\n fs: 1,\n h1: null,\n iv_load_policy: 1,\n list: null,\n listType: null,\n loop: 0,\n modestbranding: null,\n origin: null,\n playlist: null,\n playsinline: null,\n rel: 0,\n showinfo: 1,\n start: 0,\n wmode: 'transparent',\n theme: 'dark',\n mute: 0\n },\n ratio: '16:9',\n vimeo: {\n api: false,\n autopause: true,\n autoplay: true,\n byline: true,\n callback: null,\n color: null,\n height: null,\n loop: false,\n maxheight: null,\n maxwidth: null,\n player_id: null,\n portrait: true,\n title: true,\n width: null,\n xhtml: false\n },\n youku: {\n autoplay: 1,\n show_related: 0\n },\n allowFullScreen: true,\n animationSpeed: 300,\n classNames: {\n modalVideoEffect: 'modal-video-effect',\n modalVideo: 'modal-video',\n modalVideoClose: 'modal-video-close',\n modalVideoBody: 'modal-video-body',\n modalVideoInner: 'modal-video-inner',\n modalVideoIframeWrap: 'modal-video-movie-wrap',\n modalVideoCloseBtn: 'modal-video-close-btn'\n },\n aria: {\n openMessage: 'You just opened the modal video',\n dismissBtnMessage: 'Close the modal by clicking here'\n }\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtbW9kYWwtdmlkZW8vbGliL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQzs7QUFFRixpQ0FBaUMsMkNBQTJDLGdCQUFnQixrQkFBa0IsT0FBTywyQkFBMkIsd0RBQXdELGdDQUFnQyx1REFBdUQsK0RBQStELHlEQUF5RCxxRUFBcUUsNkRBQTZELHdCQUF3Qjs7QUFFampCLGFBQWEsbUJBQU8sQ0FBQyw0Q0FBTzs7QUFFNUI7O0FBRUEscUJBQXFCLG1CQUFPLENBQUMsbUlBQXNDOztBQUVuRTs7QUFFQSx1Q0FBdUMsdUNBQXVDOztBQUU5RSxrREFBa0QsMENBQTBDOztBQUU1RixrREFBa0QsYUFBYSx5RkFBeUY7O0FBRXhKLDJDQUEyQywrREFBK0QsdUdBQXVHLHlFQUF5RSxlQUFlLDBFQUEwRSxHQUFHOztBQUV0WDtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLG1CQUFtQjtBQUNuQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixjQUFjO0FBQ3BDO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxzQkFBc0IsZUFBZTtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0EsT0FBTztBQUNQO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBLFFBQVE7QUFDUjtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQSxlQUFlLGlDQUFpQztBQUNoRDtBQUNBO0FBQ0EsZ0JBQWdCLG1EQUFtRDtBQUNuRTtBQUNBO0FBQ0Esa0JBQWtCLGlGQUFpRjtBQUNuRztBQUNBO0FBQ0Esb0JBQW9CLDJGQUEyRjtBQUMvRyw0REFBNEQ7QUFDNUQ7QUFDQSxxQkFBcUIsaUNBQWlDO0FBQ3RELHFGQUFxRixtSUFBbUksVUFBVSxpQkFBaUIsV0FBVyxvRkFBb0Y7QUFDbFY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLGVBQWU7QUFDZjtBQUNBLEdBQUc7O0FBRUg7QUFDQSxDQUFDOztBQUVELGtCQUFlOzs7QUFHZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmVhY3QtbW9kYWwtdmlkZW8vbGliL2luZGV4LmpzP2M2OTAiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuXG52YXIgX2NyZWF0ZUNsYXNzID0gZnVuY3Rpb24gKCkgeyBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH0gcmV0dXJuIGZ1bmN0aW9uIChDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfTsgfSgpO1xuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfQ1NTVHJhbnNpdGlvbiA9IHJlcXVpcmUoJ3JlYWN0LXRyYW5zaXRpb24tZ3JvdXAvQ1NTVHJhbnNpdGlvbicpO1xuXG52YXIgX0NTU1RyYW5zaXRpb24yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQ1NTVHJhbnNpdGlvbik7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHNlbGYsIGNhbGwpIHsgaWYgKCFzZWxmKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gY2FsbCAmJiAodHlwZW9mIGNhbGwgPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGNhbGwgPT09IFwiZnVuY3Rpb25cIikgPyBjYWxsIDogc2VsZjsgfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCBcIiArIHR5cGVvZiBzdXBlckNsYXNzKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7IH1cblxudmFyIE1vZGFsVmlkZW8gPSBmdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoTW9kYWxWaWRlbywgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgZnVuY3Rpb24gTW9kYWxWaWRlbyhwcm9wcykge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBNb2RhbFZpZGVvKTtcblxuICAgIHZhciBfdGhpcyA9IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIChNb2RhbFZpZGVvLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2YoTW9kYWxWaWRlbykpLmNhbGwodGhpcywgcHJvcHMpKTtcblxuICAgIF90aGlzLnN0YXRlID0ge1xuICAgICAgaXNPcGVuOiBmYWxzZSxcbiAgICAgIG1vZGFsVmlkZW9XaWR0aDogX3RoaXMuZ2V0V2lkdGhGdWxmaWxsQXNwZWN0UmF0aW8oX3RoaXMucHJvcHMucmF0aW8sIHdpbmRvdy5pbm5lckhlaWdodCwgd2luZG93LmlubmVyV2lkdGgpXG4gICAgfTtcbiAgICBfdGhpcy5jbG9zZU1vZGFsID0gX3RoaXMuY2xvc2VNb2RhbC5iaW5kKF90aGlzKTtcbiAgICBfdGhpcy51cGRhdGVGb2N1cyA9IF90aGlzLnVwZGF0ZUZvY3VzLmJpbmQoX3RoaXMpO1xuXG4gICAgX3RoaXMudGltZW91dDsgLy8gdXNlZCBmb3IgcmVzaXppbmcgdmlkZW8uXG4gICAgcmV0dXJuIF90aGlzO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKE1vZGFsVmlkZW8sIFt7XG4gICAga2V5OiAnb3Blbk1vZGFsJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gb3Blbk1vZGFsKCkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGlzT3BlbjogdHJ1ZSB9KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdjbG9zZU1vZGFsJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gY2xvc2VNb2RhbCgpIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyBpc09wZW46IGZhbHNlIH0pO1xuICAgICAgaWYgKHR5cGVvZiB0aGlzLnByb3BzLm9uQ2xvc2UgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhpcy5wcm9wcy5vbkNsb3NlKCk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAna2V5ZG93bkhhbmRsZXInLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBrZXlkb3duSGFuZGxlcihlKSB7XG4gICAgICBpZiAoZS5rZXlDb2RlID09PSAyNykge1xuICAgICAgICB0aGlzLmNsb3NlTW9kYWwoKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdjb21wb25lbnREaWRNb3VudCcsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMua2V5ZG93bkhhbmRsZXIuYmluZCh0aGlzKSk7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5yZXNpemVNb2RhbFZpZGVvV2hlbkhlaWdodEdyZWF0ZXJUaGFuV2luZG93SGVpZ2h0LmJpbmQodGhpcykpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ2NvbXBvbmVudFdpbGxVbm1vdW50JyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5rZXlkb3duSGFuZGxlci5iaW5kKHRoaXMpKTtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLnJlc2l6ZU1vZGFsVmlkZW9XaGVuSGVpZ2h0R3JlYXRlclRoYW5XaW5kb3dIZWlnaHQuYmluZCh0aGlzKSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnY29tcG9uZW50RGlkVXBkYXRlJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkVXBkYXRlKCkge1xuICAgICAgaWYgKHRoaXMuc3RhdGUuaXNPcGVuICYmIHRoaXMubW9kYWwpIHtcbiAgICAgICAgdGhpcy5tb2RhbC5mb2N1cygpO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ3VwZGF0ZUZvY3VzJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gdXBkYXRlRm9jdXMoZSkge1xuICAgICAgaWYgKGUua2V5Q29kZSA9PT0gOSkge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGlmICh0aGlzLm1vZGFsID09PSBkb2N1bWVudC5hY3RpdmVFbGVtZW50KSB7XG4gICAgICAgICAgdGhpcy5tb2RhbGJ0bi5mb2N1cygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMubW9kYWwuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlc2l6ZSBtb2RhbC12aWRlby1pZnJhbWUtd3JhcCB3aGVuIHdpbmRvdyBzaXplIGNoYW5nZWQgd2hlbiB0aGUgaGVpZ2h0IG9mIHRoZSB2aWRlbyBpcyBncmVhdGVyIHRoYW4gdGhlIGhlaWdodCBvZiB0aGUgd2luZG93LlxuICAgICAqL1xuXG4gIH0sIHtcbiAgICBrZXk6ICdyZXNpemVNb2RhbFZpZGVvV2hlbkhlaWdodEdyZWF0ZXJUaGFuV2luZG93SGVpZ2h0JyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVzaXplTW9kYWxWaWRlb1doZW5IZWlnaHRHcmVhdGVyVGhhbldpbmRvd0hlaWdodCgpIHtcbiAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0KTtcblxuICAgICAgdGhpcy50aW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciB3aWR0aCA9IF90aGlzMi5nZXRXaWR0aEZ1bGZpbGxBc3BlY3RSYXRpbyhfdGhpczIucHJvcHMucmF0aW8sIHdpbmRvdy5pbm5lckhlaWdodCwgd2luZG93LmlubmVyV2lkdGgpO1xuICAgICAgICBpZiAoX3RoaXMyLnN0YXRlLm1vZGFsVmlkZW9XaWR0aCAhPSB3aWR0aCkge1xuICAgICAgICAgIF90aGlzMi5zZXRTdGF0ZSh7XG4gICAgICAgICAgICBtb2RhbFZpZGVvV2lkdGg6IHdpZHRoXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sIDEwKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdnZXRRdWVyeVN0cmluZycsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldFF1ZXJ5U3RyaW5nKG9iaikge1xuICAgICAgdmFyIHVybCA9ICcnO1xuICAgICAgZm9yICh2YXIga2V5IGluIG9iaikge1xuICAgICAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICBpZiAob2JqW2tleV0gIT09IG51bGwpIHtcbiAgICAgICAgICAgIHVybCArPSBrZXkgKyAnPScgKyBvYmpba2V5XSArICcmJztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB1cmwuc3Vic3RyKDAsIHVybC5sZW5ndGggLSAxKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdnZXRZb3V0dWJlVXJsJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0WW91dHViZVVybCh5b3V0dWJlLCB2aWRlb0lkKSB7XG4gICAgICB2YXIgcXVlcnkgPSB0aGlzLmdldFF1ZXJ5U3RyaW5nKHlvdXR1YmUpO1xuICAgICAgcmV0dXJuICcvL3d3dy55b3V0dWJlLmNvbS9lbWJlZC8nICsgdmlkZW9JZCArICc/JyArIHF1ZXJ5O1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ2dldFZpbWVvVXJsJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0VmltZW9VcmwodmltZW8sIHZpZGVvSWQpIHtcbiAgICAgIHZhciBxdWVyeSA9IHRoaXMuZ2V0UXVlcnlTdHJpbmcodmltZW8pO1xuICAgICAgcmV0dXJuICcvL3BsYXllci52aW1lby5jb20vdmlkZW8vJyArIHZpZGVvSWQgKyAnPycgKyBxdWVyeTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdnZXRZb3VrdVVybCcsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldFlvdWt1VXJsKHlvdWt1LCB2aWRlb0lkKSB7XG4gICAgICB2YXIgcXVlcnkgPSB0aGlzLmdldFF1ZXJ5U3RyaW5nKHlvdWt1KTtcbiAgICAgIHJldHVybiAnLy9wbGF5ZXIueW91a3UuY29tL2VtYmVkLycgKyB2aWRlb0lkICsgJz8nICsgcXVlcnk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnZ2V0VmlkZW9VcmwnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRWaWRlb1VybChvcHQsIHZpZGVvSWQpIHtcbiAgICAgIGlmIChvcHQuY2hhbm5lbCA9PT0gJ3lvdXR1YmUnKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFlvdXR1YmVVcmwob3B0LnlvdXR1YmUsIHZpZGVvSWQpO1xuICAgICAgfSBlbHNlIGlmIChvcHQuY2hhbm5lbCA9PT0gJ3ZpbWVvJykge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRWaW1lb1VybChvcHQudmltZW8sIHZpZGVvSWQpO1xuICAgICAgfSBlbHNlIGlmIChvcHQuY2hhbm5lbCA9PT0gJ3lvdWt1Jykge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRZb3VrdVVybChvcHQueW91a3UsIHZpZGVvSWQpO1xuICAgICAgfSBlbHNlIGlmIChvcHQuY2hhbm5lbCA9PT0gJ2N1c3RvbScpIHtcbiAgICAgICAgcmV0dXJuIG9wdC51cmw7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnZ2V0UGFkZGluZycsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldFBhZGRpbmcocmF0aW8pIHtcbiAgICAgIHZhciBhcnIgPSByYXRpby5zcGxpdCgnOicpO1xuICAgICAgdmFyIHdpZHRoID0gTnVtYmVyKGFyclswXSk7XG4gICAgICB2YXIgaGVpZ2h0ID0gTnVtYmVyKGFyclsxXSk7XG4gICAgICB2YXIgcGFkZGluZyA9IGhlaWdodCAqIDEwMCAvIHdpZHRoO1xuICAgICAgcmV0dXJuIHBhZGRpbmcgKyAnJSc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlIHRoZSB3aWR0aCBvZiB0aGUgdmlkZW8gZnVsZmlsbCBhc3BlY3QgcmF0aW8uXG4gICAgICogV2hlbiB0aGUgaGVpZ2h0IG9mIHRoZSB2aWRlbyBpcyBncmVhdGVyIHRoYW4gdGhlIGhlaWdodCBvZiB0aGUgd2luZG93LFxuICAgICAqIHRoaXMgZnVuY3Rpb24gcmV0dXJuIHRoZSB3aWR0aCB0aGF0IGZ1bGZpbGwgdGhlIGFzcGVjdCByYXRpbyBmb3IgdGhlIGhlaWdodCBvZiB0aGUgd2luZG93LlxuICAgICAqIEluIG90aGVyIGNhc2VzLCB0aGlzIGZ1bmN0aW9uIHJldHVybiAnMTAwJScodGhlIGhlaWdodCByZWxhdGl2ZSB0byB0aGUgd2lkdGggaXMgZGV0ZXJtaW5lZCBieSBjc3MpLlxuICAgICAqIFxuICAgICAqIEBwYXJhbSBzdHJpbmcgcmF0aW9cbiAgICAgKiBAcGFyYW0gbnVtYmVyIG1heFdpZHRoXG4gICAgICogQHJldHVybnMgbnVtYmVyIHwgJzEwMCUnXG4gICAgICovXG5cbiAgfSwge1xuICAgIGtleTogJ2dldFdpZHRoRnVsZmlsbEFzcGVjdFJhdGlvJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0V2lkdGhGdWxmaWxsQXNwZWN0UmF0aW8ocmF0aW8sIG1heEhlaWdodCwgbWF4V2lkdGgpIHtcbiAgICAgIHZhciBhcnIgPSByYXRpby5zcGxpdCgnOicpO1xuICAgICAgdmFyIHdpZHRoID0gTnVtYmVyKGFyclswXSk7XG4gICAgICB2YXIgaGVpZ2h0ID0gTnVtYmVyKGFyclsxXSk7XG5cbiAgICAgIC8vIEhlaWdodCB0aGF0IGZ1bGZpbGwgdGhlIGFzcGVjdCByYXRpbyBmb3IgbWF4V2lkdGguXG4gICAgICB2YXIgdmlkZW9IZWlnaHQgPSBtYXhXaWR0aCAqIChoZWlnaHQgLyB3aWR0aCk7XG5cbiAgICAgIGlmIChtYXhIZWlnaHQgPCB2aWRlb0hlaWdodCkge1xuICAgICAgICAvLyB3aGVuIHRoZSBoZWlnaHQgb2YgdGhlIHZpZGVvIGlzIGdyZWF0ZXIgdGhhbiB0aGUgaGVpZ2h0IG9mIHRoZSB3aW5kb3cuXG4gICAgICAgIC8vIGNhbGN1bGF0ZSB0aGUgd2lkdGggdGhhdCBmdWxmaWxsIHRoZSBhc3BlY3QgcmF0aW8gZm9yIHRoZSBoZWlnaHQgb2YgdGhlIHdpbmRvdy5cblxuICAgICAgICAvLyBleDogMTY6OSBhc3BlY3QgcmF0aW9cbiAgICAgICAgLy8gMTY6OSA9IHdpZHRoIDogaGVpZ2h0XG4gICAgICAgIC8vIOKGkiB3aWR0aCA9IDE2IC8gOSAqIGhlaWdodFxuICAgICAgICByZXR1cm4gTWF0aC5mbG9vcih3aWR0aCAvIGhlaWdodCAqIG1heEhlaWdodCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnMTAwJSc7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAncmVuZGVyJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgdmFyIF90aGlzMyA9IHRoaXM7XG5cbiAgICAgIHZhciBtb2RhbFZpZGVvSW5uZXJTdHlsZSA9IHtcbiAgICAgICAgd2lkdGg6IHRoaXMuc3RhdGUubW9kYWxWaWRlb1dpZHRoXG4gICAgICB9O1xuXG4gICAgICB2YXIgbW9kYWxWaWRlb0lmcmFtZVdyYXBTdHlsZSA9IHtcbiAgICAgICAgcGFkZGluZ0JvdHRvbTogdGhpcy5nZXRQYWRkaW5nKHRoaXMucHJvcHMucmF0aW8pXG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gX3JlYWN0Mi5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgIF9DU1NUcmFuc2l0aW9uMi5kZWZhdWx0LFxuICAgICAgICB7XG4gICAgICAgICAgY2xhc3NOYW1lczogdGhpcy5wcm9wcy5jbGFzc05hbWVzLm1vZGFsVmlkZW9FZmZlY3QsXG4gICAgICAgICAgdGltZW91dDogdGhpcy5wcm9wcy5hbmltYXRpb25TcGVlZFxuICAgICAgICB9LFxuICAgICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgaWYgKCFfdGhpczMuc3RhdGUuaXNPcGVuKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gX3JlYWN0Mi5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgIHsgY2xhc3NOYW1lOiBfdGhpczMucHJvcHMuY2xhc3NOYW1lcy5tb2RhbFZpZGVvLCB0YWJJbmRleDogJy0xJywgcm9sZTogJ2RpYWxvZycsXG4gICAgICAgICAgICAgICdhcmlhLWxhYmVsJzogX3RoaXMzLnByb3BzLmFyaWEub3Blbk1lc3NhZ2UsIG9uQ2xpY2s6IF90aGlzMy5jbG9zZU1vZGFsLCByZWY6IGZ1bmN0aW9uIHJlZihub2RlKSB7XG4gICAgICAgICAgICAgICAgX3RoaXMzLm1vZGFsID0gbm9kZTtcbiAgICAgICAgICAgICAgfSwgb25LZXlEb3duOiBfdGhpczMudXBkYXRlRm9jdXMgfSxcbiAgICAgICAgICAgIF9yZWFjdDIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgeyBjbGFzc05hbWU6IF90aGlzMy5wcm9wcy5jbGFzc05hbWVzLm1vZGFsVmlkZW9Cb2R5IH0sXG4gICAgICAgICAgICAgIF9yZWFjdDIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgIHsgY2xhc3NOYW1lOiBfdGhpczMucHJvcHMuY2xhc3NOYW1lcy5tb2RhbFZpZGVvSW5uZXIsIHN0eWxlOiBtb2RhbFZpZGVvSW5uZXJTdHlsZSB9LFxuICAgICAgICAgICAgICAgIF9yZWFjdDIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgICB7IGNsYXNzTmFtZTogX3RoaXMzLnByb3BzLmNsYXNzTmFtZXMubW9kYWxWaWRlb0lmcmFtZVdyYXAsIHN0eWxlOiBtb2RhbFZpZGVvSWZyYW1lV3JhcFN0eWxlIH0sXG4gICAgICAgICAgICAgICAgICBfcmVhY3QyLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJywgeyBjbGFzc05hbWU6IF90aGlzMy5wcm9wcy5jbGFzc05hbWVzLm1vZGFsVmlkZW9DbG9zZUJ0biwgJ2FyaWEtbGFiZWwnOiBfdGhpczMucHJvcHMuYXJpYS5kaXNtaXNzQnRuTWVzc2FnZSwgcmVmOiBmdW5jdGlvbiByZWYobm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgIF90aGlzMy5tb2RhbGJ0biA9IG5vZGU7XG4gICAgICAgICAgICAgICAgICAgIH0sIG9uS2V5RG93bjogX3RoaXMzLnVwZGF0ZUZvY3VzIH0pLFxuICAgICAgICAgICAgICAgICAgX3RoaXMzLnByb3BzLmNoaWxkcmVuIHx8IF9yZWFjdDIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnLCB7IHdpZHRoOiAnNDYwJywgaGVpZ2h0OiAnMjMwJywgc3JjOiBfdGhpczMuZ2V0VmlkZW9VcmwoX3RoaXMzLnByb3BzLCBfdGhpczMucHJvcHMudmlkZW9JZCksIGZyYW1lQm9yZGVyOiAnMCcsIGFsbG93OiAnYWNjZWxlcm9tZXRlcjsgYXV0b3BsYXk7IGVuY3J5cHRlZC1tZWRpYTsgZ3lyb3Njb3BlOyBwaWN0dXJlLWluLXBpY3R1cmUnLCBhbGxvd0Z1bGxTY3JlZW46IF90aGlzMy5wcm9wcy5hbGxvd0Z1bGxTY3JlZW4sIHRhYkluZGV4OiAnLTEnIH0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gIH1dLCBbe1xuICAgIGtleTogJ2dldERlcml2ZWRTdGF0ZUZyb21Qcm9wcycsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyhwcm9wcykge1xuICAgICAgcmV0dXJuIHsgaXNPcGVuOiBwcm9wcy5pc09wZW4gfTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gTW9kYWxWaWRlbztcbn0oX3JlYWN0Mi5kZWZhdWx0LkNvbXBvbmVudCk7XG5cbmV4cG9ydHMuZGVmYXVsdCA9IE1vZGFsVmlkZW87XG5cblxuTW9kYWxWaWRlby5kZWZhdWx0UHJvcHMgPSB7XG4gIGNoYW5uZWw6ICd5b3V0dWJlJyxcbiAgaXNPcGVuOiBmYWxzZSxcbiAgeW91dHViZToge1xuICAgIGF1dG9wbGF5OiAxLFxuICAgIGNjX2xvYWRfcG9saWN5OiAxLFxuICAgIGNvbG9yOiBudWxsLFxuICAgIGNvbnRyb2xzOiAxLFxuICAgIGRpc2FibGVrYjogMCxcbiAgICBlbmFibGVqc2FwaTogMCxcbiAgICBlbmQ6IG51bGwsXG4gICAgZnM6IDEsXG4gICAgaDE6IG51bGwsXG4gICAgaXZfbG9hZF9wb2xpY3k6IDEsXG4gICAgbGlzdDogbnVsbCxcbiAgICBsaXN0VHlwZTogbnVsbCxcbiAgICBsb29wOiAwLFxuICAgIG1vZGVzdGJyYW5kaW5nOiBudWxsLFxuICAgIG9yaWdpbjogbnVsbCxcbiAgICBwbGF5bGlzdDogbnVsbCxcbiAgICBwbGF5c2lubGluZTogbnVsbCxcbiAgICByZWw6IDAsXG4gICAgc2hvd2luZm86IDEsXG4gICAgc3RhcnQ6IDAsXG4gICAgd21vZGU6ICd0cmFuc3BhcmVudCcsXG4gICAgdGhlbWU6ICdkYXJrJyxcbiAgICBtdXRlOiAwXG4gIH0sXG4gIHJhdGlvOiAnMTY6OScsXG4gIHZpbWVvOiB7XG4gICAgYXBpOiBmYWxzZSxcbiAgICBhdXRvcGF1c2U6IHRydWUsXG4gICAgYXV0b3BsYXk6IHRydWUsXG4gICAgYnlsaW5lOiB0cnVlLFxuICAgIGNhbGxiYWNrOiBudWxsLFxuICAgIGNvbG9yOiBudWxsLFxuICAgIGhlaWdodDogbnVsbCxcbiAgICBsb29wOiBmYWxzZSxcbiAgICBtYXhoZWlnaHQ6IG51bGwsXG4gICAgbWF4d2lkdGg6IG51bGwsXG4gICAgcGxheWVyX2lkOiBudWxsLFxuICAgIHBvcnRyYWl0OiB0cnVlLFxuICAgIHRpdGxlOiB0cnVlLFxuICAgIHdpZHRoOiBudWxsLFxuICAgIHhodG1sOiBmYWxzZVxuICB9LFxuICB5b3VrdToge1xuICAgIGF1dG9wbGF5OiAxLFxuICAgIHNob3dfcmVsYXRlZDogMFxuICB9LFxuICBhbGxvd0Z1bGxTY3JlZW46IHRydWUsXG4gIGFuaW1hdGlvblNwZWVkOiAzMDAsXG4gIGNsYXNzTmFtZXM6IHtcbiAgICBtb2RhbFZpZGVvRWZmZWN0OiAnbW9kYWwtdmlkZW8tZWZmZWN0JyxcbiAgICBtb2RhbFZpZGVvOiAnbW9kYWwtdmlkZW8nLFxuICAgIG1vZGFsVmlkZW9DbG9zZTogJ21vZGFsLXZpZGVvLWNsb3NlJyxcbiAgICBtb2RhbFZpZGVvQm9keTogJ21vZGFsLXZpZGVvLWJvZHknLFxuICAgIG1vZGFsVmlkZW9Jbm5lcjogJ21vZGFsLXZpZGVvLWlubmVyJyxcbiAgICBtb2RhbFZpZGVvSWZyYW1lV3JhcDogJ21vZGFsLXZpZGVvLW1vdmllLXdyYXAnLFxuICAgIG1vZGFsVmlkZW9DbG9zZUJ0bjogJ21vZGFsLXZpZGVvLWNsb3NlLWJ0bidcbiAgfSxcbiAgYXJpYToge1xuICAgIG9wZW5NZXNzYWdlOiAnWW91IGp1c3Qgb3BlbmVkIHRoZSBtb2RhbCB2aWRlbycsXG4gICAgZGlzbWlzc0J0bk1lc3NhZ2U6ICdDbG9zZSB0aGUgbW9kYWwgYnkgY2xpY2tpbmcgaGVyZSdcbiAgfVxufTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-modal-video/lib/index.js\n"); + +/***/ }), + +/***/ "./node_modules/react-modal-video/node_modules/dom-helpers/class/addClass.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/react-modal-video/node_modules/dom-helpers/class/addClass.js ***! + \***********************************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nexports.__esModule = true;\nexports[\"default\"] = addClass;\n\nvar _hasClass = _interopRequireDefault(__webpack_require__(/*! ./hasClass */ \"./node_modules/react-modal-video/node_modules/dom-helpers/class/hasClass.js\"));\n\nfunction addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!(0, _hasClass.default)(element, className)) if (typeof element.className === 'string') element.className = element.className + ' ' + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + ' ' + className);\n}\n\nmodule.exports = exports[\"default\"];//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtbW9kYWwtdmlkZW8vbm9kZV9tb2R1bGVzL2RvbS1oZWxwZXJzL2NsYXNzL2FkZENsYXNzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDZCQUE2QixtQkFBTyxDQUFDLG9IQUE4Qzs7QUFFbkYsa0JBQWtCO0FBQ2xCLGtCQUFlOztBQUVmLHVDQUF1QyxtQkFBTyxDQUFDLCtGQUFZOztBQUUzRDtBQUNBLDBEQUEwRCx5SkFBeUo7QUFDbk47O0FBRUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LW1vZGFsLXZpZGVvL25vZGVfbW9kdWxlcy9kb20taGVscGVycy9jbGFzcy9hZGRDbGFzcy5qcz80ZTY3Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG52YXIgX2ludGVyb3BSZXF1aXJlRGVmYXVsdCA9IHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2ludGVyb3BSZXF1aXJlRGVmYXVsdFwiKTtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHMuZGVmYXVsdCA9IGFkZENsYXNzO1xuXG52YXIgX2hhc0NsYXNzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9oYXNDbGFzc1wiKSk7XG5cbmZ1bmN0aW9uIGFkZENsYXNzKGVsZW1lbnQsIGNsYXNzTmFtZSkge1xuICBpZiAoZWxlbWVudC5jbGFzc0xpc3QpIGVsZW1lbnQuY2xhc3NMaXN0LmFkZChjbGFzc05hbWUpO2Vsc2UgaWYgKCEoMCwgX2hhc0NsYXNzLmRlZmF1bHQpKGVsZW1lbnQsIGNsYXNzTmFtZSkpIGlmICh0eXBlb2YgZWxlbWVudC5jbGFzc05hbWUgPT09ICdzdHJpbmcnKSBlbGVtZW50LmNsYXNzTmFtZSA9IGVsZW1lbnQuY2xhc3NOYW1lICsgJyAnICsgY2xhc3NOYW1lO2Vsc2UgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgKGVsZW1lbnQuY2xhc3NOYW1lICYmIGVsZW1lbnQuY2xhc3NOYW1lLmJhc2VWYWwgfHwgJycpICsgJyAnICsgY2xhc3NOYW1lKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzW1wiZGVmYXVsdFwiXTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-modal-video/node_modules/dom-helpers/class/addClass.js\n"); + +/***/ }), + +/***/ "./node_modules/react-modal-video/node_modules/dom-helpers/class/hasClass.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/react-modal-video/node_modules/dom-helpers/class/hasClass.js ***! + \***********************************************************************************/ +/***/ (function(module, exports) { + +"use strict"; +eval("\n\nexports.__esModule = true;\nexports[\"default\"] = hasClass;\n\nfunction hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);else return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}\n\nmodule.exports = exports[\"default\"];//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtbW9kYWwtdmlkZW8vbm9kZV9tb2R1bGVzL2RvbS1oZWxwZXJzL2NsYXNzL2hhc0NsYXNzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLGtCQUFrQjtBQUNsQixrQkFBZTs7QUFFZjtBQUNBLHFGQUFxRjtBQUNyRjs7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmVhY3QtbW9kYWwtdmlkZW8vbm9kZV9tb2R1bGVzL2RvbS1oZWxwZXJzL2NsYXNzL2hhc0NsYXNzLmpzPzc1ZjgiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLmRlZmF1bHQgPSBoYXNDbGFzcztcblxuZnVuY3Rpb24gaGFzQ2xhc3MoZWxlbWVudCwgY2xhc3NOYW1lKSB7XG4gIGlmIChlbGVtZW50LmNsYXNzTGlzdCkgcmV0dXJuICEhY2xhc3NOYW1lICYmIGVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKGNsYXNzTmFtZSk7ZWxzZSByZXR1cm4gKFwiIFwiICsgKGVsZW1lbnQuY2xhc3NOYW1lLmJhc2VWYWwgfHwgZWxlbWVudC5jbGFzc05hbWUpICsgXCIgXCIpLmluZGV4T2YoXCIgXCIgKyBjbGFzc05hbWUgKyBcIiBcIikgIT09IC0xO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbXCJkZWZhdWx0XCJdOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-modal-video/node_modules/dom-helpers/class/hasClass.js\n"); + +/***/ }), + +/***/ "./node_modules/react-modal-video/node_modules/dom-helpers/class/removeClass.js": +/*!**************************************************************************************!*\ + !*** ./node_modules/react-modal-video/node_modules/dom-helpers/class/removeClass.js ***! + \**************************************************************************************/ +/***/ (function(module) { + +"use strict"; +eval("\n\nfunction replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp('(^|\\\\s)' + classToRemove + '(?:\\\\s|$)', 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n\nmodule.exports = function removeClass(element, className) {\n if (element.classList) element.classList.remove(className);else if (typeof element.className === 'string') element.className = replaceClassName(element.className, className);else element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtbW9kYWwtdmlkZW8vbm9kZV9tb2R1bGVzL2RvbS1oZWxwZXJzL2NsYXNzL3JlbW92ZUNsYXNzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDZEQUE2RCxtSEFBbUg7QUFDaEwiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LW1vZGFsLXZpZGVvL25vZGVfbW9kdWxlcy9kb20taGVscGVycy9jbGFzcy9yZW1vdmVDbGFzcy5qcz85YzIxIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuZnVuY3Rpb24gcmVwbGFjZUNsYXNzTmFtZShvcmlnQ2xhc3MsIGNsYXNzVG9SZW1vdmUpIHtcbiAgcmV0dXJuIG9yaWdDbGFzcy5yZXBsYWNlKG5ldyBSZWdFeHAoJyhefFxcXFxzKScgKyBjbGFzc1RvUmVtb3ZlICsgJyg/OlxcXFxzfCQpJywgJ2cnKSwgJyQxJykucmVwbGFjZSgvXFxzKy9nLCAnICcpLnJlcGxhY2UoL15cXHMqfFxccyokL2csICcnKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiByZW1vdmVDbGFzcyhlbGVtZW50LCBjbGFzc05hbWUpIHtcbiAgaWYgKGVsZW1lbnQuY2xhc3NMaXN0KSBlbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoY2xhc3NOYW1lKTtlbHNlIGlmICh0eXBlb2YgZWxlbWVudC5jbGFzc05hbWUgPT09ICdzdHJpbmcnKSBlbGVtZW50LmNsYXNzTmFtZSA9IHJlcGxhY2VDbGFzc05hbWUoZWxlbWVudC5jbGFzc05hbWUsIGNsYXNzTmFtZSk7ZWxzZSBlbGVtZW50LnNldEF0dHJpYnV0ZSgnY2xhc3MnLCByZXBsYWNlQ2xhc3NOYW1lKGVsZW1lbnQuY2xhc3NOYW1lICYmIGVsZW1lbnQuY2xhc3NOYW1lLmJhc2VWYWwgfHwgJycsIGNsYXNzTmFtZSkpO1xufTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-modal-video/node_modules/dom-helpers/class/removeClass.js\n"); + +/***/ }), + +/***/ "./node_modules/react-modal-video/node_modules/react-transition-group/CSSTransition.js": +/*!*********************************************************************************************!*\ + !*** ./node_modules/react-modal-video/node_modules/react-transition-group/CSSTransition.js ***! + \*********************************************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar PropTypes = _interopRequireWildcard(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\n\nvar _addClass = _interopRequireDefault(__webpack_require__(/*! dom-helpers/class/addClass */ \"./node_modules/react-modal-video/node_modules/dom-helpers/class/addClass.js\"));\n\nvar _removeClass = _interopRequireDefault(__webpack_require__(/*! dom-helpers/class/removeClass */ \"./node_modules/react-modal-video/node_modules/dom-helpers/class/removeClass.js\"));\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _Transition = _interopRequireDefault(__webpack_require__(/*! ./Transition */ \"./node_modules/react-modal-video/node_modules/react-transition-group/Transition.js\"));\n\nvar _PropTypes = __webpack_require__(/*! ./utils/PropTypes */ \"./node_modules/react-modal-video/node_modules/react-transition-group/utils/PropTypes.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return (0, _addClass.default)(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return (0, _removeClass.default)(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](http://www.nganimate.org/) library, you should use it if you're\n * using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n * <div>\n * <CSSTransition in={inProp} timeout={200} classNames=\"my-node\">\n * <div>\n * {\"I'll receive my-node-* classes\"}\n * </div>\n * </CSSTransition>\n * <button type=\"button\" onClick={() => setInProp(true)}>\n * Click to Enter\n * </button>\n * </div>\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity: 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**.\n */\n\n\nvar CSSTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.onEnter = function (node, appearing) {\n var _this$getClassNames = _this.getClassNames(appearing ? 'appear' : 'enter'),\n className = _this$getClassNames.className;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, className);\n\n if (_this.props.onEnter) {\n _this.props.onEnter(node, appearing);\n }\n };\n\n _this.onEntering = function (node, appearing) {\n var _this$getClassNames2 = _this.getClassNames(appearing ? 'appear' : 'enter'),\n activeClassName = _this$getClassNames2.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onEntering) {\n _this.props.onEntering(node, appearing);\n }\n };\n\n _this.onEntered = function (node, appearing) {\n var appearClassName = _this.getClassNames('appear').doneClassName;\n\n var enterClassName = _this.getClassNames('enter').doneClassName;\n\n var doneClassName = appearing ? appearClassName + \" \" + enterClassName : enterClassName;\n\n _this.removeClasses(node, appearing ? 'appear' : 'enter');\n\n addClass(node, doneClassName);\n\n if (_this.props.onEntered) {\n _this.props.onEntered(node, appearing);\n }\n };\n\n _this.onExit = function (node) {\n var _this$getClassNames3 = _this.getClassNames('exit'),\n className = _this$getClassNames3.className;\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n addClass(node, className);\n\n if (_this.props.onExit) {\n _this.props.onExit(node);\n }\n };\n\n _this.onExiting = function (node) {\n var _this$getClassNames4 = _this.getClassNames('exit'),\n activeClassName = _this$getClassNames4.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onExiting) {\n _this.props.onExiting(node);\n }\n };\n\n _this.onExited = function (node) {\n var _this$getClassNames5 = _this.getClassNames('exit'),\n doneClassName = _this$getClassNames5.doneClassName;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, doneClassName);\n\n if (_this.props.onExited) {\n _this.props.onExited(node);\n }\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + '-' : '';\n var className = isStringClassNames ? prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? className + '-active' : classNames[type + 'Active'];\n var doneClassName = isStringClassNames ? className + '-done' : classNames[type + 'Done'];\n return {\n className: className,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$getClassNames6 = this.getClassNames(type),\n className = _this$getClassNames6.className,\n activeClassName = _this$getClassNames6.activeClassName,\n doneClassName = _this$getClassNames6.doneClassName;\n\n className && removeClass(node, className);\n activeClassName && removeClass(node, activeClassName);\n doneClassName && removeClass(node, doneClassName);\n };\n\n _proto.reflowAndAddClass = function reflowAndAddClass(node, className) {\n // This is for to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n if (className) {\n /* eslint-disable no-unused-expressions */\n node && node.scrollTop;\n /* eslint-enable no-unused-expressions */\n\n addClass(node, className);\n }\n };\n\n _proto.render = function render() {\n var props = _extends({}, this.props);\n\n delete props.classNames;\n return _react.default.createElement(_Transition.default, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(_react.default.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = true ? _extends({}, _Transition.default.propTypes, {\n /**\n * The animation classNames applied to the component as it enters, exits or\n * has finished the transition. A single name can be provided and it will be\n * suffixed for each stage: e.g.\n *\n * `classNames=\"fade\"` applies `fade-enter`, `fade-enter-active`,\n * `fade-enter-done`, `fade-exit`, `fade-exit-active`, `fade-exit-done`,\n * `fade-appear`, `fade-appear-active`, and `fade-appear-done`.\n *\n * **Note**: `fade-appear-done` and `fade-enter-done` will _both_ be applied.\n * This allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply an\n * epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: _PropTypes.classNamesShape,\n\n /**\n * A `<Transition>` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'exit' class is\n * applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'exit-active' is applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : 0;\nvar _default = CSSTransition;\nexports[\"default\"] = _default;\nmodule.exports = exports[\"default\"];//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtbW9kYWwtdmlkZW8vbm9kZV9tb2R1bGVzL3JlYWN0LXRyYW5zaXRpb24tZ3JvdXAvQ1NTVHJhbnNpdGlvbi5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYixrQkFBa0I7QUFDbEIsa0JBQWU7O0FBRWYsd0NBQXdDLG1CQUFPLENBQUMsc0RBQVk7O0FBRTVELHVDQUF1QyxtQkFBTyxDQUFDLCtHQUE0Qjs7QUFFM0UsMENBQTBDLG1CQUFPLENBQUMscUhBQStCOztBQUVqRixvQ0FBb0MsbUJBQU8sQ0FBQyw0Q0FBTzs7QUFFbkQseUNBQXlDLG1CQUFPLENBQUMsd0dBQWM7O0FBRS9ELGlCQUFpQixtQkFBTyxDQUFDLGtIQUFtQjs7QUFFNUMsdUNBQXVDLHVDQUF1Qzs7QUFFOUUsd0NBQXdDLDZCQUE2QixjQUFjLE9BQU8saUJBQWlCLG1CQUFtQix1QkFBdUIsc0RBQXNELHNIQUFzSCw0QkFBNEIsNENBQTRDLE9BQU8sZ0NBQWdDLHNCQUFzQjs7QUFFdGMsc0JBQXNCLGdEQUFnRCxnQkFBZ0Isc0JBQXNCLE9BQU8sMkJBQTJCLDBCQUEwQix5REFBeUQsaUNBQWlDLGtCQUFrQjs7QUFFcFIsZ0RBQWdELDBEQUEwRCwyQ0FBMkM7O0FBRXJKO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIsUUFBUSxTQUFTLEtBQUs7QUFDbEQ7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBLHdDQUF3QyxzQkFBc0I7QUFDOUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBLHdFQUF3RSxhQUFhO0FBQ3JGO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSwyQkFBMkI7O0FBRTNCO0FBQ0Esd0VBQXdFO0FBQ3hFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLEtBQXFDLGNBQWM7QUFDN0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxJQUFJLENBQUU7QUFDUDtBQUNBLGtCQUFlO0FBQ2YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LW1vZGFsLXZpZGVvL25vZGVfbW9kdWxlcy9yZWFjdC10cmFuc2l0aW9uLWdyb3VwL0NTU1RyYW5zaXRpb24uanM/OTVhOSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHMuZGVmYXVsdCA9IHZvaWQgMDtcblxudmFyIFByb3BUeXBlcyA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJwcm9wLXR5cGVzXCIpKTtcblxudmFyIF9hZGRDbGFzcyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcImRvbS1oZWxwZXJzL2NsYXNzL2FkZENsYXNzXCIpKTtcblxudmFyIF9yZW1vdmVDbGFzcyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcImRvbS1oZWxwZXJzL2NsYXNzL3JlbW92ZUNsYXNzXCIpKTtcblxudmFyIF9yZWFjdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJlYWN0XCIpKTtcblxudmFyIF9UcmFuc2l0aW9uID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9UcmFuc2l0aW9uXCIpKTtcblxudmFyIF9Qcm9wVHlwZXMgPSByZXF1aXJlKFwiLi91dGlscy9Qcm9wVHlwZXNcIik7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKG9iaikgeyBpZiAob2JqICYmIG9iai5fX2VzTW9kdWxlKSB7IHJldHVybiBvYmo7IH0gZWxzZSB7IHZhciBuZXdPYmogPSB7fTsgaWYgKG9iaiAhPSBudWxsKSB7IGZvciAodmFyIGtleSBpbiBvYmopIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHsgdmFyIGRlc2MgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDoge307IGlmIChkZXNjLmdldCB8fCBkZXNjLnNldCkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpOyB9IGVsc2UgeyBuZXdPYmpba2V5XSA9IG9ialtrZXldOyB9IH0gfSB9IG5ld09iai5kZWZhdWx0ID0gb2JqOyByZXR1cm4gbmV3T2JqOyB9IH1cblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzTG9vc2Uoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzLnByb3RvdHlwZSk7IHN1YkNsYXNzLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IHN1YkNsYXNzOyBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBhZGRDbGFzcyA9IGZ1bmN0aW9uIGFkZENsYXNzKG5vZGUsIGNsYXNzZXMpIHtcbiAgcmV0dXJuIG5vZGUgJiYgY2xhc3NlcyAmJiBjbGFzc2VzLnNwbGl0KCcgJykuZm9yRWFjaChmdW5jdGlvbiAoYykge1xuICAgIHJldHVybiAoMCwgX2FkZENsYXNzLmRlZmF1bHQpKG5vZGUsIGMpO1xuICB9KTtcbn07XG5cbnZhciByZW1vdmVDbGFzcyA9IGZ1bmN0aW9uIHJlbW92ZUNsYXNzKG5vZGUsIGNsYXNzZXMpIHtcbiAgcmV0dXJuIG5vZGUgJiYgY2xhc3NlcyAmJiBjbGFzc2VzLnNwbGl0KCcgJykuZm9yRWFjaChmdW5jdGlvbiAoYykge1xuICAgIHJldHVybiAoMCwgX3JlbW92ZUNsYXNzLmRlZmF1bHQpKG5vZGUsIGMpO1xuICB9KTtcbn07XG4vKipcbiAqIEEgdHJhbnNpdGlvbiBjb21wb25lbnQgaW5zcGlyZWQgYnkgdGhlIGV4Y2VsbGVudFxuICogW25nLWFuaW1hdGVdKGh0dHA6Ly93d3cubmdhbmltYXRlLm9yZy8pIGxpYnJhcnksIHlvdSBzaG91bGQgdXNlIGl0IGlmIHlvdSdyZVxuICogdXNpbmcgQ1NTIHRyYW5zaXRpb25zIG9yIGFuaW1hdGlvbnMuIEl0J3MgYnVpbHQgdXBvbiB0aGVcbiAqIFtgVHJhbnNpdGlvbmBdKGh0dHBzOi8vcmVhY3Rjb21tdW5pdHkub3JnL3JlYWN0LXRyYW5zaXRpb24tZ3JvdXAvdHJhbnNpdGlvbilcbiAqIGNvbXBvbmVudCwgc28gaXQgaW5oZXJpdHMgYWxsIG9mIGl0cyBwcm9wcy5cbiAqXG4gKiBgQ1NTVHJhbnNpdGlvbmAgYXBwbGllcyBhIHBhaXIgb2YgY2xhc3MgbmFtZXMgZHVyaW5nIHRoZSBgYXBwZWFyYCwgYGVudGVyYCxcbiAqIGFuZCBgZXhpdGAgc3RhdGVzIG9mIHRoZSB0cmFuc2l0aW9uLiBUaGUgZmlyc3QgY2xhc3MgaXMgYXBwbGllZCBhbmQgdGhlbiBhXG4gKiBzZWNvbmQgYCotYWN0aXZlYCBjbGFzcyBpbiBvcmRlciB0byBhY3RpdmF0ZSB0aGUgQ1NTUyB0cmFuc2l0aW9uLiBBZnRlciB0aGVcbiAqIHRyYW5zaXRpb24sIG1hdGNoaW5nIGAqLWRvbmVgIGNsYXNzIG5hbWVzIGFyZSBhcHBsaWVkIHRvIHBlcnNpc3QgdGhlXG4gKiB0cmFuc2l0aW9uIHN0YXRlLlxuICpcbiAqIGBgYGpzeFxuICogZnVuY3Rpb24gQXBwKCkge1xuICogICBjb25zdCBbaW5Qcm9wLCBzZXRJblByb3BdID0gdXNlU3RhdGUoZmFsc2UpO1xuICogICByZXR1cm4gKFxuICogICAgIDxkaXY+XG4gKiAgICAgICA8Q1NTVHJhbnNpdGlvbiBpbj17aW5Qcm9wfSB0aW1lb3V0PXsyMDB9IGNsYXNzTmFtZXM9XCJteS1ub2RlXCI+XG4gKiAgICAgICAgIDxkaXY+XG4gKiAgICAgICAgICAge1wiSSdsbCByZWNlaXZlIG15LW5vZGUtKiBjbGFzc2VzXCJ9XG4gKiAgICAgICAgIDwvZGl2PlxuICogICAgICAgPC9DU1NUcmFuc2l0aW9uPlxuICogICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgb25DbGljaz17KCkgPT4gc2V0SW5Qcm9wKHRydWUpfT5cbiAqICAgICAgICAgQ2xpY2sgdG8gRW50ZXJcbiAqICAgICAgIDwvYnV0dG9uPlxuICogICAgIDwvZGl2PlxuICogICApO1xuICogfVxuICogYGBgXG4gKlxuICogV2hlbiB0aGUgYGluYCBwcm9wIGlzIHNldCB0byBgdHJ1ZWAsIHRoZSBjaGlsZCBjb21wb25lbnQgd2lsbCBmaXJzdCByZWNlaXZlXG4gKiB0aGUgY2xhc3MgYGV4YW1wbGUtZW50ZXJgLCB0aGVuIHRoZSBgZXhhbXBsZS1lbnRlci1hY3RpdmVgIHdpbGwgYmUgYWRkZWQgaW5cbiAqIHRoZSBuZXh0IHRpY2suIGBDU1NUcmFuc2l0aW9uYCBbZm9yY2VzIGFcbiAqIHJlZmxvd10oaHR0cHM6Ly9naXRodWIuY29tL3JlYWN0anMvcmVhY3QtdHJhbnNpdGlvbi1ncm91cC9ibG9iLzUwMDczMDNlNzI5YTc0YmU2NmEyMWMzZTIyMDVlNDkxNjgyMTUyNGIvc3JjL0NTU1RyYW5zaXRpb24uanMjTDIwOC1MMjE1KVxuICogYmV0d2VlbiBiZWZvcmUgYWRkaW5nIHRoZSBgZXhhbXBsZS1lbnRlci1hY3RpdmVgLiBUaGlzIGlzIGFuIGltcG9ydGFudCB0cmlja1xuICogYmVjYXVzZSBpdCBhbGxvd3MgdXMgdG8gdHJhbnNpdGlvbiBiZXR3ZWVuIGBleGFtcGxlLWVudGVyYCBhbmRcbiAqIGBleGFtcGxlLWVudGVyLWFjdGl2ZWAgZXZlbiB0aG91Z2ggdGhleSB3ZXJlIGFkZGVkIGltbWVkaWF0ZWx5IG9uZSBhZnRlclxuICogYW5vdGhlci4gTW9zdCBub3RhYmx5LCB0aGlzIGlzIHdoYXQgbWFrZXMgaXQgcG9zc2libGUgZm9yIHVzIHRvIGFuaW1hdGVcbiAqIF9hcHBlYXJhbmNlXy5cbiAqXG4gKiBgYGBjc3NcbiAqIC5teS1ub2RlLWVudGVyIHtcbiAqICAgb3BhY2l0eTogMDtcbiAqIH1cbiAqIC5teS1ub2RlLWVudGVyLWFjdGl2ZSB7XG4gKiAgIG9wYWNpdHk6IDE7XG4gKiAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXM7XG4gKiB9XG4gKiAubXktbm9kZS1leGl0IHtcbiAqICAgb3BhY2l0eTogMTtcbiAqIH1cbiAqIC5teS1ub2RlLWV4aXQtYWN0aXZlIHtcbiAqICAgb3BhY2l0eTogMDtcbiAqICAgdHJhbnNpdGlvbjogb3BhY2l0eTogMjAwbXM7XG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBgKi1hY3RpdmVgIGNsYXNzZXMgcmVwcmVzZW50IHdoaWNoIHN0eWxlcyB5b3Ugd2FudCB0byBhbmltYXRlICoqdG8qKi5cbiAqL1xuXG5cbnZhciBDU1NUcmFuc2l0aW9uID1cbi8qI19fUFVSRV9fKi9cbmZ1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0c0xvb3NlKENTU1RyYW5zaXRpb24sIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIGZ1bmN0aW9uIENTU1RyYW5zaXRpb24oKSB7XG4gICAgdmFyIF90aGlzO1xuXG4gICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICBhcmdzW19rZXldID0gYXJndW1lbnRzW19rZXldO1xuICAgIH1cblxuICAgIF90aGlzID0gX1JlYWN0JENvbXBvbmVudC5jYWxsLmFwcGx5KF9SZWFjdCRDb21wb25lbnQsIFt0aGlzXS5jb25jYXQoYXJncykpIHx8IHRoaXM7XG5cbiAgICBfdGhpcy5vbkVudGVyID0gZnVuY3Rpb24gKG5vZGUsIGFwcGVhcmluZykge1xuICAgICAgdmFyIF90aGlzJGdldENsYXNzTmFtZXMgPSBfdGhpcy5nZXRDbGFzc05hbWVzKGFwcGVhcmluZyA/ICdhcHBlYXInIDogJ2VudGVyJyksXG4gICAgICAgICAgY2xhc3NOYW1lID0gX3RoaXMkZ2V0Q2xhc3NOYW1lcy5jbGFzc05hbWU7XG5cbiAgICAgIF90aGlzLnJlbW92ZUNsYXNzZXMobm9kZSwgJ2V4aXQnKTtcblxuICAgICAgYWRkQ2xhc3Mobm9kZSwgY2xhc3NOYW1lKTtcblxuICAgICAgaWYgKF90aGlzLnByb3BzLm9uRW50ZXIpIHtcbiAgICAgICAgX3RoaXMucHJvcHMub25FbnRlcihub2RlLCBhcHBlYXJpbmcpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBfdGhpcy5vbkVudGVyaW5nID0gZnVuY3Rpb24gKG5vZGUsIGFwcGVhcmluZykge1xuICAgICAgdmFyIF90aGlzJGdldENsYXNzTmFtZXMyID0gX3RoaXMuZ2V0Q2xhc3NOYW1lcyhhcHBlYXJpbmcgPyAnYXBwZWFyJyA6ICdlbnRlcicpLFxuICAgICAgICAgIGFjdGl2ZUNsYXNzTmFtZSA9IF90aGlzJGdldENsYXNzTmFtZXMyLmFjdGl2ZUNsYXNzTmFtZTtcblxuICAgICAgX3RoaXMucmVmbG93QW5kQWRkQ2xhc3Mobm9kZSwgYWN0aXZlQ2xhc3NOYW1lKTtcblxuICAgICAgaWYgKF90aGlzLnByb3BzLm9uRW50ZXJpbmcpIHtcbiAgICAgICAgX3RoaXMucHJvcHMub25FbnRlcmluZyhub2RlLCBhcHBlYXJpbmcpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBfdGhpcy5vbkVudGVyZWQgPSBmdW5jdGlvbiAobm9kZSwgYXBwZWFyaW5nKSB7XG4gICAgICB2YXIgYXBwZWFyQ2xhc3NOYW1lID0gX3RoaXMuZ2V0Q2xhc3NOYW1lcygnYXBwZWFyJykuZG9uZUNsYXNzTmFtZTtcblxuICAgICAgdmFyIGVudGVyQ2xhc3NOYW1lID0gX3RoaXMuZ2V0Q2xhc3NOYW1lcygnZW50ZXInKS5kb25lQ2xhc3NOYW1lO1xuXG4gICAgICB2YXIgZG9uZUNsYXNzTmFtZSA9IGFwcGVhcmluZyA/IGFwcGVhckNsYXNzTmFtZSArIFwiIFwiICsgZW50ZXJDbGFzc05hbWUgOiBlbnRlckNsYXNzTmFtZTtcblxuICAgICAgX3RoaXMucmVtb3ZlQ2xhc3Nlcyhub2RlLCBhcHBlYXJpbmcgPyAnYXBwZWFyJyA6ICdlbnRlcicpO1xuXG4gICAgICBhZGRDbGFzcyhub2RlLCBkb25lQ2xhc3NOYW1lKTtcblxuICAgICAgaWYgKF90aGlzLnByb3BzLm9uRW50ZXJlZCkge1xuICAgICAgICBfdGhpcy5wcm9wcy5vbkVudGVyZWQobm9kZSwgYXBwZWFyaW5nKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX3RoaXMub25FeGl0ID0gZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgIHZhciBfdGhpcyRnZXRDbGFzc05hbWVzMyA9IF90aGlzLmdldENsYXNzTmFtZXMoJ2V4aXQnKSxcbiAgICAgICAgICBjbGFzc05hbWUgPSBfdGhpcyRnZXRDbGFzc05hbWVzMy5jbGFzc05hbWU7XG5cbiAgICAgIF90aGlzLnJlbW92ZUNsYXNzZXMobm9kZSwgJ2FwcGVhcicpO1xuXG4gICAgICBfdGhpcy5yZW1vdmVDbGFzc2VzKG5vZGUsICdlbnRlcicpO1xuXG4gICAgICBhZGRDbGFzcyhub2RlLCBjbGFzc05hbWUpO1xuXG4gICAgICBpZiAoX3RoaXMucHJvcHMub25FeGl0KSB7XG4gICAgICAgIF90aGlzLnByb3BzLm9uRXhpdChub2RlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX3RoaXMub25FeGl0aW5nID0gZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgIHZhciBfdGhpcyRnZXRDbGFzc05hbWVzNCA9IF90aGlzLmdldENsYXNzTmFtZXMoJ2V4aXQnKSxcbiAgICAgICAgICBhY3RpdmVDbGFzc05hbWUgPSBfdGhpcyRnZXRDbGFzc05hbWVzNC5hY3RpdmVDbGFzc05hbWU7XG5cbiAgICAgIF90aGlzLnJlZmxvd0FuZEFkZENsYXNzKG5vZGUsIGFjdGl2ZUNsYXNzTmFtZSk7XG5cbiAgICAgIGlmIChfdGhpcy5wcm9wcy5vbkV4aXRpbmcpIHtcbiAgICAgICAgX3RoaXMucHJvcHMub25FeGl0aW5nKG5vZGUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBfdGhpcy5vbkV4aXRlZCA9IGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICB2YXIgX3RoaXMkZ2V0Q2xhc3NOYW1lczUgPSBfdGhpcy5nZXRDbGFzc05hbWVzKCdleGl0JyksXG4gICAgICAgICAgZG9uZUNsYXNzTmFtZSA9IF90aGlzJGdldENsYXNzTmFtZXM1LmRvbmVDbGFzc05hbWU7XG5cbiAgICAgIF90aGlzLnJlbW92ZUNsYXNzZXMobm9kZSwgJ2V4aXQnKTtcblxuICAgICAgYWRkQ2xhc3Mobm9kZSwgZG9uZUNsYXNzTmFtZSk7XG5cbiAgICAgIGlmIChfdGhpcy5wcm9wcy5vbkV4aXRlZCkge1xuICAgICAgICBfdGhpcy5wcm9wcy5vbkV4aXRlZChub2RlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX3RoaXMuZ2V0Q2xhc3NOYW1lcyA9IGZ1bmN0aW9uICh0eXBlKSB7XG4gICAgICB2YXIgY2xhc3NOYW1lcyA9IF90aGlzLnByb3BzLmNsYXNzTmFtZXM7XG4gICAgICB2YXIgaXNTdHJpbmdDbGFzc05hbWVzID0gdHlwZW9mIGNsYXNzTmFtZXMgPT09ICdzdHJpbmcnO1xuICAgICAgdmFyIHByZWZpeCA9IGlzU3RyaW5nQ2xhc3NOYW1lcyAmJiBjbGFzc05hbWVzID8gY2xhc3NOYW1lcyArICctJyA6ICcnO1xuICAgICAgdmFyIGNsYXNzTmFtZSA9IGlzU3RyaW5nQ2xhc3NOYW1lcyA/IHByZWZpeCArIHR5cGUgOiBjbGFzc05hbWVzW3R5cGVdO1xuICAgICAgdmFyIGFjdGl2ZUNsYXNzTmFtZSA9IGlzU3RyaW5nQ2xhc3NOYW1lcyA/IGNsYXNzTmFtZSArICctYWN0aXZlJyA6IGNsYXNzTmFtZXNbdHlwZSArICdBY3RpdmUnXTtcbiAgICAgIHZhciBkb25lQ2xhc3NOYW1lID0gaXNTdHJpbmdDbGFzc05hbWVzID8gY2xhc3NOYW1lICsgJy1kb25lJyA6IGNsYXNzTmFtZXNbdHlwZSArICdEb25lJ107XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjbGFzc05hbWU6IGNsYXNzTmFtZSxcbiAgICAgICAgYWN0aXZlQ2xhc3NOYW1lOiBhY3RpdmVDbGFzc05hbWUsXG4gICAgICAgIGRvbmVDbGFzc05hbWU6IGRvbmVDbGFzc05hbWVcbiAgICAgIH07XG4gICAgfTtcblxuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIHZhciBfcHJvdG8gPSBDU1NUcmFuc2l0aW9uLnByb3RvdHlwZTtcblxuICBfcHJvdG8ucmVtb3ZlQ2xhc3NlcyA9IGZ1bmN0aW9uIHJlbW92ZUNsYXNzZXMobm9kZSwgdHlwZSkge1xuICAgIHZhciBfdGhpcyRnZXRDbGFzc05hbWVzNiA9IHRoaXMuZ2V0Q2xhc3NOYW1lcyh0eXBlKSxcbiAgICAgICAgY2xhc3NOYW1lID0gX3RoaXMkZ2V0Q2xhc3NOYW1lczYuY2xhc3NOYW1lLFxuICAgICAgICBhY3RpdmVDbGFzc05hbWUgPSBfdGhpcyRnZXRDbGFzc05hbWVzNi5hY3RpdmVDbGFzc05hbWUsXG4gICAgICAgIGRvbmVDbGFzc05hbWUgPSBfdGhpcyRnZXRDbGFzc05hbWVzNi5kb25lQ2xhc3NOYW1lO1xuXG4gICAgY2xhc3NOYW1lICYmIHJlbW92ZUNsYXNzKG5vZGUsIGNsYXNzTmFtZSk7XG4gICAgYWN0aXZlQ2xhc3NOYW1lICYmIHJlbW92ZUNsYXNzKG5vZGUsIGFjdGl2ZUNsYXNzTmFtZSk7XG4gICAgZG9uZUNsYXNzTmFtZSAmJiByZW1vdmVDbGFzcyhub2RlLCBkb25lQ2xhc3NOYW1lKTtcbiAgfTtcblxuICBfcHJvdG8ucmVmbG93QW5kQWRkQ2xhc3MgPSBmdW5jdGlvbiByZWZsb3dBbmRBZGRDbGFzcyhub2RlLCBjbGFzc05hbWUpIHtcbiAgICAvLyBUaGlzIGlzIGZvciB0byBmb3JjZSBhIHJlcGFpbnQsXG4gICAgLy8gd2hpY2ggaXMgbmVjZXNzYXJ5IGluIG9yZGVyIHRvIHRyYW5zaXRpb24gc3R5bGVzIHdoZW4gYWRkaW5nIGEgY2xhc3MgbmFtZS5cbiAgICBpZiAoY2xhc3NOYW1lKSB7XG4gICAgICAvKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtZXhwcmVzc2lvbnMgKi9cbiAgICAgIG5vZGUgJiYgbm9kZS5zY3JvbGxUb3A7XG4gICAgICAvKiBlc2xpbnQtZW5hYmxlIG5vLXVudXNlZC1leHByZXNzaW9ucyAqL1xuXG4gICAgICBhZGRDbGFzcyhub2RlLCBjbGFzc05hbWUpO1xuICAgIH1cbiAgfTtcblxuICBfcHJvdG8ucmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgIHZhciBwcm9wcyA9IF9leHRlbmRzKHt9LCB0aGlzLnByb3BzKTtcblxuICAgIGRlbGV0ZSBwcm9wcy5jbGFzc05hbWVzO1xuICAgIHJldHVybiBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KF9UcmFuc2l0aW9uLmRlZmF1bHQsIF9leHRlbmRzKHt9LCBwcm9wcywge1xuICAgICAgb25FbnRlcjogdGhpcy5vbkVudGVyLFxuICAgICAgb25FbnRlcmVkOiB0aGlzLm9uRW50ZXJlZCxcbiAgICAgIG9uRW50ZXJpbmc6IHRoaXMub25FbnRlcmluZyxcbiAgICAgIG9uRXhpdDogdGhpcy5vbkV4aXQsXG4gICAgICBvbkV4aXRpbmc6IHRoaXMub25FeGl0aW5nLFxuICAgICAgb25FeGl0ZWQ6IHRoaXMub25FeGl0ZWRcbiAgICB9KSk7XG4gIH07XG5cbiAgcmV0dXJuIENTU1RyYW5zaXRpb247XG59KF9yZWFjdC5kZWZhdWx0LkNvbXBvbmVudCk7XG5cbkNTU1RyYW5zaXRpb24uZGVmYXVsdFByb3BzID0ge1xuICBjbGFzc05hbWVzOiAnJ1xufTtcbkNTU1RyYW5zaXRpb24ucHJvcFR5cGVzID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gX2V4dGVuZHMoe30sIF9UcmFuc2l0aW9uLmRlZmF1bHQucHJvcFR5cGVzLCB7XG4gIC8qKlxuICAgKiBUaGUgYW5pbWF0aW9uIGNsYXNzTmFtZXMgYXBwbGllZCB0byB0aGUgY29tcG9uZW50IGFzIGl0IGVudGVycywgZXhpdHMgb3JcbiAgICogaGFzIGZpbmlzaGVkIHRoZSB0cmFuc2l0aW9uLiBBIHNpbmdsZSBuYW1lIGNhbiBiZSBwcm92aWRlZCBhbmQgaXQgd2lsbCBiZVxuICAgKiBzdWZmaXhlZCBmb3IgZWFjaCBzdGFnZTogZS5nLlxuICAgKlxuICAgKiBgY2xhc3NOYW1lcz1cImZhZGVcImAgYXBwbGllcyBgZmFkZS1lbnRlcmAsIGBmYWRlLWVudGVyLWFjdGl2ZWAsXG4gICAqIGBmYWRlLWVudGVyLWRvbmVgLCBgZmFkZS1leGl0YCwgYGZhZGUtZXhpdC1hY3RpdmVgLCBgZmFkZS1leGl0LWRvbmVgLFxuICAgKiBgZmFkZS1hcHBlYXJgLCBgZmFkZS1hcHBlYXItYWN0aXZlYCwgYW5kIGBmYWRlLWFwcGVhci1kb25lYC5cbiAgICpcbiAgICogKipOb3RlKio6IGBmYWRlLWFwcGVhci1kb25lYCBhbmQgYGZhZGUtZW50ZXItZG9uZWAgd2lsbCBfYm90aF8gYmUgYXBwbGllZC5cbiAgICogVGhpcyBhbGxvd3MgeW91IHRvIGRlZmluZSBkaWZmZXJlbnQgYmVoYXZpb3IgZm9yIHdoZW4gYXBwZWFyaW5nIGlzIGRvbmUgYW5kXG4gICAqIHdoZW4gcmVndWxhciBlbnRlcmluZyBpcyBkb25lLCB1c2luZyBzZWxlY3RvcnMgbGlrZVxuICAgKiBgLmZhZGUtZW50ZXItZG9uZTpub3QoLmZhZGUtYXBwZWFyLWRvbmUpYC4gRm9yIGV4YW1wbGUsIHlvdSBjb3VsZCBhcHBseSBhblxuICAgKiBlcGljIGVudHJhbmNlIGFuaW1hdGlvbiB3aGVuIGVsZW1lbnQgZmlyc3QgYXBwZWFycyBpbiB0aGUgRE9NIHVzaW5nXG4gICAqIFtBbmltYXRlLmNzc10oaHR0cHM6Ly9kYW5lZGVuLmdpdGh1Yi5pby9hbmltYXRlLmNzcy8pLiBPdGhlcndpc2UgeW91IGNhblxuICAgKiBzaW1wbHkgdXNlIGBmYWRlLWVudGVyLWRvbmVgIGZvciBkZWZpbmluZyBib3RoIGNhc2VzLlxuICAgKlxuICAgKiBFYWNoIGluZGl2aWR1YWwgY2xhc3NOYW1lcyBjYW4gYWxzbyBiZSBzcGVjaWZpZWQgaW5kZXBlbmRlbnRseSBsaWtlOlxuICAgKlxuICAgKiBgYGBqc1xuICAgKiBjbGFzc05hbWVzPXt7XG4gICAqICBhcHBlYXI6ICdteS1hcHBlYXInLFxuICAgKiAgYXBwZWFyQWN0aXZlOiAnbXktYWN0aXZlLWFwcGVhcicsXG4gICAqICBhcHBlYXJEb25lOiAnbXktZG9uZS1hcHBlYXInLFxuICAgKiAgZW50ZXI6ICdteS1lbnRlcicsXG4gICAqICBlbnRlckFjdGl2ZTogJ215LWFjdGl2ZS1lbnRlcicsXG4gICAqICBlbnRlckRvbmU6ICdteS1kb25lLWVudGVyJyxcbiAgICogIGV4aXQ6ICdteS1leGl0JyxcbiAgICogIGV4aXRBY3RpdmU6ICdteS1hY3RpdmUtZXhpdCcsXG4gICAqICBleGl0RG9uZTogJ215LWRvbmUtZXhpdCcsXG4gICAqIH19XG4gICAqIGBgYFxuICAgKlxuICAgKiBJZiB5b3Ugd2FudCB0byBzZXQgdGhlc2UgY2xhc3NlcyB1c2luZyBDU1MgTW9kdWxlczpcbiAgICpcbiAgICogYGBganNcbiAgICogaW1wb3J0IHN0eWxlcyBmcm9tICcuL3N0eWxlcy5jc3MnO1xuICAgKiBgYGBcbiAgICpcbiAgICogeW91IG1pZ2h0IHdhbnQgdG8gdXNlIGNhbWVsQ2FzZSBpbiB5b3VyIENTUyBmaWxlLCB0aGF0IHdheSBjb3VsZCBzaW1wbHlcbiAgICogc3ByZWFkIHRoZW0gaW5zdGVhZCBvZiBsaXN0aW5nIHRoZW0gb25lIGJ5IG9uZTpcbiAgICpcbiAgICogYGBganNcbiAgICogY2xhc3NOYW1lcz17eyAuLi5zdHlsZXMgfX1cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmcgfCB7XG4gICAqICBhcHBlYXI/OiBzdHJpbmcsXG4gICAqICBhcHBlYXJBY3RpdmU/OiBzdHJpbmcsXG4gICAqICBhcHBlYXJEb25lPzogc3RyaW5nLFxuICAgKiAgZW50ZXI/OiBzdHJpbmcsXG4gICAqICBlbnRlckFjdGl2ZT86IHN0cmluZyxcbiAgICogIGVudGVyRG9uZT86IHN0cmluZyxcbiAgICogIGV4aXQ/OiBzdHJpbmcsXG4gICAqICBleGl0QWN0aXZlPzogc3RyaW5nLFxuICAgKiAgZXhpdERvbmU/OiBzdHJpbmcsXG4gICAqIH19XG4gICAqL1xuICBjbGFzc05hbWVzOiBfUHJvcFR5cGVzLmNsYXNzTmFtZXNTaGFwZSxcblxuICAvKipcbiAgICogQSBgPFRyYW5zaXRpb24+YCBjYWxsYmFjayBmaXJlZCBpbW1lZGlhdGVseSBhZnRlciB0aGUgJ2VudGVyJyBvciAnYXBwZWFyJyBjbGFzcyBpc1xuICAgKiBhcHBsaWVkLlxuICAgKlxuICAgKiBAdHlwZSBGdW5jdGlvbihub2RlOiBIdG1sRWxlbWVudCwgaXNBcHBlYXJpbmc6IGJvb2wpXG4gICAqL1xuICBvbkVudGVyOiBQcm9wVHlwZXMuZnVuYyxcblxuICAvKipcbiAgICogQSBgPFRyYW5zaXRpb24+YCBjYWxsYmFjayBmaXJlZCBpbW1lZGlhdGVseSBhZnRlciB0aGUgJ2VudGVyLWFjdGl2ZScgb3JcbiAgICogJ2FwcGVhci1hY3RpdmUnIGNsYXNzIGlzIGFwcGxpZWQuXG4gICAqXG4gICAqIEB0eXBlIEZ1bmN0aW9uKG5vZGU6IEh0bWxFbGVtZW50LCBpc0FwcGVhcmluZzogYm9vbClcbiAgICovXG4gIG9uRW50ZXJpbmc6IFByb3BUeXBlcy5mdW5jLFxuXG4gIC8qKlxuICAgKiBBIGA8VHJhbnNpdGlvbj5gIGNhbGxiYWNrIGZpcmVkIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSAnZW50ZXInIG9yXG4gICAqICdhcHBlYXInIGNsYXNzZXMgYXJlICoqcmVtb3ZlZCoqIGFuZCB0aGUgYGRvbmVgIGNsYXNzIGlzIGFkZGVkIHRvIHRoZSBET00gbm9kZS5cbiAgICpcbiAgICogQHR5cGUgRnVuY3Rpb24obm9kZTogSHRtbEVsZW1lbnQsIGlzQXBwZWFyaW5nOiBib29sKVxuICAgKi9cbiAgb25FbnRlcmVkOiBQcm9wVHlwZXMuZnVuYyxcblxuICAvKipcbiAgICogQSBgPFRyYW5zaXRpb24+YCBjYWxsYmFjayBmaXJlZCBpbW1lZGlhdGVseSBhZnRlciB0aGUgJ2V4aXQnIGNsYXNzIGlzXG4gICAqIGFwcGxpZWQuXG4gICAqXG4gICAqIEB0eXBlIEZ1bmN0aW9uKG5vZGU6IEh0bWxFbGVtZW50KVxuICAgKi9cbiAgb25FeGl0OiBQcm9wVHlwZXMuZnVuYyxcblxuICAvKipcbiAgICogQSBgPFRyYW5zaXRpb24+YCBjYWxsYmFjayBmaXJlZCBpbW1lZGlhdGVseSBhZnRlciB0aGUgJ2V4aXQtYWN0aXZlJyBpcyBhcHBsaWVkLlxuICAgKlxuICAgKiBAdHlwZSBGdW5jdGlvbihub2RlOiBIdG1sRWxlbWVudClcbiAgICovXG4gIG9uRXhpdGluZzogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgLyoqXG4gICAqIEEgYDxUcmFuc2l0aW9uPmAgY2FsbGJhY2sgZmlyZWQgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlICdleGl0JyBjbGFzc2VzXG4gICAqIGFyZSAqKnJlbW92ZWQqKiBhbmQgdGhlIGBleGl0LWRvbmVgIGNsYXNzIGlzIGFkZGVkIHRvIHRoZSBET00gbm9kZS5cbiAgICpcbiAgICogQHR5cGUgRnVuY3Rpb24obm9kZTogSHRtbEVsZW1lbnQpXG4gICAqL1xuICBvbkV4aXRlZDogUHJvcFR5cGVzLmZ1bmNcbn0pIDoge307XG52YXIgX2RlZmF1bHQgPSBDU1NUcmFuc2l0aW9uO1xuZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbXCJkZWZhdWx0XCJdOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-modal-video/node_modules/react-transition-group/CSSTransition.js\n"); + +/***/ }), + +/***/ "./node_modules/react-modal-video/node_modules/react-transition-group/Transition.js": +/*!******************************************************************************************!*\ + !*** ./node_modules/react-modal-video/node_modules/react-transition-group/Transition.js ***! + \******************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nexports.__esModule = true;\nexports[\"default\"] = exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = void 0;\n\nvar PropTypes = _interopRequireWildcard(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _reactDom = _interopRequireDefault(__webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\"));\n\nvar _reactLifecyclesCompat = __webpack_require__(/*! react-lifecycles-compat */ \"./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js\");\n\nvar _PropTypes = __webpack_require__(/*! ./utils/PropTypes */ \"./node_modules/react-modal-video/node_modules/react-transition-group/utils/PropTypes.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar UNMOUNTED = 'unmounted';\nexports.UNMOUNTED = UNMOUNTED;\nvar EXITED = 'exited';\nexports.EXITED = EXITED;\nvar ENTERING = 'entering';\nexports.ENTERING = ENTERING;\nvar ENTERED = 'entered';\nexports.ENTERED = ENTERED;\nvar EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 0 },\n * entered: { opacity: 1 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * <Transition in={inProp} timeout={duration}>\n * {state => (\n * <div style={{\n * ...defaultStyle,\n * ...transitionStyles[state]\n * }}>\n * I'm a fade Transition!\n * </div>\n * )}\n * </Transition>\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n * <div>\n * <Transition in={inProp} timeout={500}>\n * {state => (\n * // ...\n * )}\n * </Transition>\n * <button onClick={() => setInProp(true)}>\n * Click to Enter\n * </button>\n * </div>\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nexports.EXITING = EXITING;\n\nvar Transition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context.transitionGroup; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n var _proto = Transition.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: null // allows for nested Transitions\n\n };\n };\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n }; // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n var node = _reactDom.default.findDOMNode(this);\n\n if (nextStatus === ENTERING) {\n this.performEnter(node, mounting);\n } else {\n this.performExit(node);\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(node, mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting;\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node);\n });\n return;\n }\n\n this.props.onEnter(node, appearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(node, appearing);\n\n _this2.onTransitionEnd(node, enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node, appearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit(node) {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED\n\n if (!exit) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n return;\n }\n\n this.props.onExit(node);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(node);\n\n _this3.onTransitionEnd(node, timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {\n this.setNextCallback(handler);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n this.props.addEndListener(node, this.nextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\"]); // filter props for Transtition\n\n\n delete childProps.in;\n delete childProps.mountOnEnter;\n delete childProps.unmountOnExit;\n delete childProps.appear;\n delete childProps.enter;\n delete childProps.exit;\n delete childProps.timeout;\n delete childProps.addEndListener;\n delete childProps.onEnter;\n delete childProps.onEntering;\n delete childProps.onEntered;\n delete childProps.onExit;\n delete childProps.onExiting;\n delete childProps.onExited;\n\n if (typeof children === 'function') {\n return children(status, childProps);\n }\n\n var child = _react.default.Children.only(children);\n\n return _react.default.cloneElement(child, childProps);\n };\n\n return Transition;\n}(_react.default.Component);\n\nTransition.contextTypes = {\n transitionGroup: PropTypes.object\n};\nTransition.childContextTypes = {\n transitionGroup: function transitionGroup() {}\n};\nTransition.propTypes = true ? {\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`, `'unmounted'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * <Transition in={this.state.in} timeout={150}>\n * {state => (\n * <MyComponent className={`fade fade-${state}`} />\n * )}\n * </Transition>\n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * Normally a component is not transitioned if it is shown when the `<Transition>` component mounts.\n * If you want to transition on the first mount set `appear` to `true`, and the\n * component will transition in as soon as the `<Transition>` mounts.\n *\n * > Note: there are no specific \"appear\" states. `appear` only adds an additional `enter` transition.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = _PropTypes.timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\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\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. **Note:** Timeouts are still used as a fallback if provided.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func // Name the function so it is clearer in the documentation\n\n} : 0;\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = 0;\nTransition.EXITED = 1;\nTransition.ENTERING = 2;\nTransition.ENTERED = 3;\nTransition.EXITING = 4;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(Transition);\n\nexports[\"default\"] = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtbW9kYWwtdmlkZW8vbm9kZV9tb2R1bGVzL3JlYWN0LXRyYW5zaXRpb24tZ3JvdXAvVHJhbnNpdGlvbi5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYixrQkFBa0I7QUFDbEIsa0JBQWUsR0FBRyxlQUFlLEdBQUcsZUFBZSxHQUFHLGdCQUFnQixHQUFHLGNBQWMsR0FBRyxpQkFBaUI7O0FBRTNHLHdDQUF3QyxtQkFBTyxDQUFDLHNEQUFZOztBQUU1RCxvQ0FBb0MsbUJBQU8sQ0FBQyw0Q0FBTzs7QUFFbkQsdUNBQXVDLG1CQUFPLENBQUMsb0RBQVc7O0FBRTFELDZCQUE2QixtQkFBTyxDQUFDLHFHQUF5Qjs7QUFFOUQsaUJBQWlCLG1CQUFPLENBQUMsa0hBQW1COztBQUU1Qyx1Q0FBdUMsdUNBQXVDOztBQUU5RSx3Q0FBd0MsNkJBQTZCLGNBQWMsT0FBTyxpQkFBaUIsbUJBQW1CLHVCQUF1QixzREFBc0Qsc0hBQXNILDRCQUE0Qiw0Q0FBNEMsT0FBTyxnQ0FBZ0Msc0JBQXNCOztBQUV0YywyREFBMkQsK0JBQStCLGlCQUFpQixzQ0FBc0MsWUFBWSxZQUFZLHVCQUF1QixPQUFPLHFCQUFxQiwwQ0FBMEMsNkJBQTZCOztBQUVuUyxnREFBZ0QsMERBQTBELDJDQUEyQzs7QUFFcko7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxjQUFjO0FBQ2Q7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQSxlQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxhQUFhO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLFNBQVM7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsWUFBWTtBQUM3QixpQkFBaUIsWUFBWTtBQUM3QjtBQUNBO0FBQ0EsbUJBQW1CLFlBQVk7QUFDL0IscUJBQXFCLFFBQVEsU0FBUyxTQUFTO0FBQy9DLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsUUFBUSxTQUFTLElBQUk7QUFDOUMsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQixzQkFBc0I7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxlQUFlOztBQUVmO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSwrQ0FBK0M7O0FBRS9DO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLGlCQUFpQixTQUFTO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7OztBQUdBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsNkJBQTZCOztBQUU3QjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHFFQUFxRTtBQUNyRTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSxPQUFPO0FBQ1A7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EsU0FBUztBQUNULE9BQU87QUFDUCxLQUFLO0FBQ0w7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLHVDQUF1Qzs7QUFFdkM7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EsT0FBTztBQUNQO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBLFNBQVM7QUFDVCxPQUFPO0FBQ1AsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLCtFQUErRTs7O0FBRy9FO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QixLQUFxQztBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQixlQUFlLFNBQVMsSUFBSTtBQUNqRCxRQUFRO0FBQ1IsaUNBQWlDLGFBQWEsTUFBTSxHQUFHO0FBQ3ZEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSx5QkFBeUI7QUFDekI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsS0FBSztBQUNyQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxXQUFXO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBOztBQUVBLDJGQUEyRixhQUFhO0FBQ3hHO0FBQ0E7O0FBRUE7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsRUFBRSxFQUFFLENBQUU7O0FBRU47O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUEsa0JBQWUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LW1vZGFsLXZpZGVvL25vZGVfbW9kdWxlcy9yZWFjdC10cmFuc2l0aW9uLWdyb3VwL1RyYW5zaXRpb24uanM/ODE3MSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHMuZGVmYXVsdCA9IGV4cG9ydHMuRVhJVElORyA9IGV4cG9ydHMuRU5URVJFRCA9IGV4cG9ydHMuRU5URVJJTkcgPSBleHBvcnRzLkVYSVRFRCA9IGV4cG9ydHMuVU5NT1VOVEVEID0gdm9pZCAwO1xuXG52YXIgUHJvcFR5cGVzID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInByb3AtdHlwZXNcIikpO1xuXG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX3JlYWN0RG9tID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3QtZG9tXCIpKTtcblxudmFyIF9yZWFjdExpZmVjeWNsZXNDb21wYXQgPSByZXF1aXJlKFwicmVhY3QtbGlmZWN5Y2xlcy1jb21wYXRcIik7XG5cbnZhciBfUHJvcFR5cGVzID0gcmVxdWlyZShcIi4vdXRpbHMvUHJvcFR5cGVzXCIpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHsgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkgeyByZXR1cm4gb2JqOyB9IGVsc2UgeyB2YXIgbmV3T2JqID0ge307IGlmIChvYmogIT0gbnVsbCkgeyBmb3IgKHZhciBrZXkgaW4gb2JqKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7IHZhciBkZXNjID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IHt9OyBpZiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTsgfSBlbHNlIHsgbmV3T2JqW2tleV0gPSBvYmpba2V5XTsgfSB9IH0gfSBuZXdPYmouZGVmYXVsdCA9IG9iajsgcmV0dXJuIG5ld09iajsgfSB9XG5cbmZ1bmN0aW9uIF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKHNvdXJjZSwgZXhjbHVkZWQpIHsgaWYgKHNvdXJjZSA9PSBudWxsKSByZXR1cm4ge307IHZhciB0YXJnZXQgPSB7fTsgdmFyIHNvdXJjZUtleXMgPSBPYmplY3Qua2V5cyhzb3VyY2UpOyB2YXIga2V5LCBpOyBmb3IgKGkgPSAwOyBpIDwgc291cmNlS2V5cy5sZW5ndGg7IGkrKykgeyBrZXkgPSBzb3VyY2VLZXlzW2ldOyBpZiAoZXhjbHVkZWQuaW5kZXhPZihrZXkpID49IDApIGNvbnRpbnVlOyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IHJldHVybiB0YXJnZXQ7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzTG9vc2Uoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzLnByb3RvdHlwZSk7IHN1YkNsYXNzLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IHN1YkNsYXNzOyBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBVTk1PVU5URUQgPSAndW5tb3VudGVkJztcbmV4cG9ydHMuVU5NT1VOVEVEID0gVU5NT1VOVEVEO1xudmFyIEVYSVRFRCA9ICdleGl0ZWQnO1xuZXhwb3J0cy5FWElURUQgPSBFWElURUQ7XG52YXIgRU5URVJJTkcgPSAnZW50ZXJpbmcnO1xuZXhwb3J0cy5FTlRFUklORyA9IEVOVEVSSU5HO1xudmFyIEVOVEVSRUQgPSAnZW50ZXJlZCc7XG5leHBvcnRzLkVOVEVSRUQgPSBFTlRFUkVEO1xudmFyIEVYSVRJTkcgPSAnZXhpdGluZyc7XG4vKipcbiAqIFRoZSBUcmFuc2l0aW9uIGNvbXBvbmVudCBsZXRzIHlvdSBkZXNjcmliZSBhIHRyYW5zaXRpb24gZnJvbSBvbmUgY29tcG9uZW50XG4gKiBzdGF0ZSB0byBhbm90aGVyIF9vdmVyIHRpbWVfIHdpdGggYSBzaW1wbGUgZGVjbGFyYXRpdmUgQVBJLiBNb3N0IGNvbW1vbmx5XG4gKiBpdCdzIHVzZWQgdG8gYW5pbWF0ZSB0aGUgbW91bnRpbmcgYW5kIHVubW91bnRpbmcgb2YgYSBjb21wb25lbnQsIGJ1dCBjYW4gYWxzb1xuICogYmUgdXNlZCB0byBkZXNjcmliZSBpbi1wbGFjZSB0cmFuc2l0aW9uIHN0YXRlcyBhcyB3ZWxsLlxuICpcbiAqIC0tLVxuICpcbiAqICoqTm90ZSoqOiBgVHJhbnNpdGlvbmAgaXMgYSBwbGF0Zm9ybS1hZ25vc3RpYyBiYXNlIGNvbXBvbmVudC4gSWYgeW91J3JlIHVzaW5nXG4gKiB0cmFuc2l0aW9ucyBpbiBDU1MsIHlvdSdsbCBwcm9iYWJseSB3YW50IHRvIHVzZVxuICogW2BDU1NUcmFuc2l0aW9uYF0oaHR0cHM6Ly9yZWFjdGNvbW11bml0eS5vcmcvcmVhY3QtdHJhbnNpdGlvbi1ncm91cC9jc3MtdHJhbnNpdGlvbilcbiAqIGluc3RlYWQuIEl0IGluaGVyaXRzIGFsbCB0aGUgZmVhdHVyZXMgb2YgYFRyYW5zaXRpb25gLCBidXQgY29udGFpbnNcbiAqIGFkZGl0aW9uYWwgZmVhdHVyZXMgbmVjZXNzYXJ5IHRvIHBsYXkgbmljZSB3aXRoIENTUyB0cmFuc2l0aW9ucyAoaGVuY2UgdGhlXG4gKiBuYW1lIG9mIHRoZSBjb21wb25lbnQpLlxuICpcbiAqIC0tLVxuICpcbiAqIEJ5IGRlZmF1bHQgdGhlIGBUcmFuc2l0aW9uYCBjb21wb25lbnQgZG9lcyBub3QgYWx0ZXIgdGhlIGJlaGF2aW9yIG9mIHRoZVxuICogY29tcG9uZW50IGl0IHJlbmRlcnMsIGl0IG9ubHkgdHJhY2tzIFwiZW50ZXJcIiBhbmQgXCJleGl0XCIgc3RhdGVzIGZvciB0aGVcbiAqIGNvbXBvbmVudHMuIEl0J3MgdXAgdG8geW91IHRvIGdpdmUgbWVhbmluZyBhbmQgZWZmZWN0IHRvIHRob3NlIHN0YXRlcy4gRm9yXG4gKiBleGFtcGxlIHdlIGNhbiBhZGQgc3R5bGVzIHRvIGEgY29tcG9uZW50IHdoZW4gaXQgZW50ZXJzIG9yIGV4aXRzOlxuICpcbiAqIGBgYGpzeFxuICogaW1wb3J0IHsgVHJhbnNpdGlvbiB9IGZyb20gJ3JlYWN0LXRyYW5zaXRpb24tZ3JvdXAnO1xuICpcbiAqIGNvbnN0IGR1cmF0aW9uID0gMzAwO1xuICpcbiAqIGNvbnN0IGRlZmF1bHRTdHlsZSA9IHtcbiAqICAgdHJhbnNpdGlvbjogYG9wYWNpdHkgJHtkdXJhdGlvbn1tcyBlYXNlLWluLW91dGAsXG4gKiAgIG9wYWNpdHk6IDAsXG4gKiB9XG4gKlxuICogY29uc3QgdHJhbnNpdGlvblN0eWxlcyA9IHtcbiAqICAgZW50ZXJpbmc6IHsgb3BhY2l0eTogMCB9LFxuICogICBlbnRlcmVkOiAgeyBvcGFjaXR5OiAxIH0sXG4gKiB9O1xuICpcbiAqIGNvbnN0IEZhZGUgPSAoeyBpbjogaW5Qcm9wIH0pID0+IChcbiAqICAgPFRyYW5zaXRpb24gaW49e2luUHJvcH0gdGltZW91dD17ZHVyYXRpb259PlxuICogICAgIHtzdGF0ZSA9PiAoXG4gKiAgICAgICA8ZGl2IHN0eWxlPXt7XG4gKiAgICAgICAgIC4uLmRlZmF1bHRTdHlsZSxcbiAqICAgICAgICAgLi4udHJhbnNpdGlvblN0eWxlc1tzdGF0ZV1cbiAqICAgICAgIH19PlxuICogICAgICAgICBJJ20gYSBmYWRlIFRyYW5zaXRpb24hXG4gKiAgICAgICA8L2Rpdj5cbiAqICAgICApfVxuICogICA8L1RyYW5zaXRpb24+XG4gKiApO1xuICogYGBgXG4gKlxuICogVGhlcmUgYXJlIDQgbWFpbiBzdGF0ZXMgYSBUcmFuc2l0aW9uIGNhbiBiZSBpbjpcbiAqICAtIGAnZW50ZXJpbmcnYFxuICogIC0gYCdlbnRlcmVkJ2BcbiAqICAtIGAnZXhpdGluZydgXG4gKiAgLSBgJ2V4aXRlZCdgXG4gKlxuICogVHJhbnNpdGlvbiBzdGF0ZSBpcyB0b2dnbGVkIHZpYSB0aGUgYGluYCBwcm9wLiBXaGVuIGB0cnVlYCB0aGUgY29tcG9uZW50XG4gKiBiZWdpbnMgdGhlIFwiRW50ZXJcIiBzdGFnZS4gRHVyaW5nIHRoaXMgc3RhZ2UsIHRoZSBjb21wb25lbnQgd2lsbCBzaGlmdCBmcm9tXG4gKiBpdHMgY3VycmVudCB0cmFuc2l0aW9uIHN0YXRlLCB0byBgJ2VudGVyaW5nJ2AgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGVcbiAqIHRyYW5zaXRpb24gYW5kIHRoZW4gdG8gdGhlIGAnZW50ZXJlZCdgIHN0YWdlIG9uY2UgaXQncyBjb21wbGV0ZS4gTGV0J3MgdGFrZVxuICogdGhlIGZvbGxvd2luZyBleGFtcGxlICh3ZSdsbCB1c2UgdGhlXG4gKiBbdXNlU3RhdGVdKGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9ob29rcy1yZWZlcmVuY2UuaHRtbCN1c2VzdGF0ZSkgaG9vayk6XG4gKlxuICogYGBganN4XG4gKiBmdW5jdGlvbiBBcHAoKSB7XG4gKiAgIGNvbnN0IFtpblByb3AsIHNldEluUHJvcF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gKiAgIHJldHVybiAoXG4gKiAgICAgPGRpdj5cbiAqICAgICAgIDxUcmFuc2l0aW9uIGluPXtpblByb3B9IHRpbWVvdXQ9ezUwMH0+XG4gKiAgICAgICAgIHtzdGF0ZSA9PiAoXG4gKiAgICAgICAgICAgLy8gLi4uXG4gKiAgICAgICAgICl9XG4gKiAgICAgICA8L1RyYW5zaXRpb24+XG4gKiAgICAgICA8YnV0dG9uIG9uQ2xpY2s9eygpID0+IHNldEluUHJvcCh0cnVlKX0+XG4gKiAgICAgICAgIENsaWNrIHRvIEVudGVyXG4gKiAgICAgICA8L2J1dHRvbj5cbiAqICAgICA8L2Rpdj5cbiAqICAgKTtcbiAqIH1cbiAqIGBgYFxuICpcbiAqIFdoZW4gdGhlIGJ1dHRvbiBpcyBjbGlja2VkIHRoZSBjb21wb25lbnQgd2lsbCBzaGlmdCB0byB0aGUgYCdlbnRlcmluZydgIHN0YXRlXG4gKiBhbmQgc3RheSB0aGVyZSBmb3IgNTAwbXMgKHRoZSB2YWx1ZSBvZiBgdGltZW91dGApIGJlZm9yZSBpdCBmaW5hbGx5IHN3aXRjaGVzXG4gKiB0byBgJ2VudGVyZWQnYC5cbiAqXG4gKiBXaGVuIGBpbmAgaXMgYGZhbHNlYCB0aGUgc2FtZSB0aGluZyBoYXBwZW5zIGV4Y2VwdCB0aGUgc3RhdGUgbW92ZXMgZnJvbVxuICogYCdleGl0aW5nJ2AgdG8gYCdleGl0ZWQnYC5cbiAqL1xuXG5leHBvcnRzLkVYSVRJTkcgPSBFWElUSU5HO1xuXG52YXIgVHJhbnNpdGlvbiA9XG4vKiNfX1BVUkVfXyovXG5mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHNMb29zZShUcmFuc2l0aW9uLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICBmdW5jdGlvbiBUcmFuc2l0aW9uKHByb3BzLCBjb250ZXh0KSB7XG4gICAgdmFyIF90aGlzO1xuXG4gICAgX3RoaXMgPSBfUmVhY3QkQ29tcG9uZW50LmNhbGwodGhpcywgcHJvcHMsIGNvbnRleHQpIHx8IHRoaXM7XG4gICAgdmFyIHBhcmVudEdyb3VwID0gY29udGV4dC50cmFuc2l0aW9uR3JvdXA7IC8vIEluIHRoZSBjb250ZXh0IG9mIGEgVHJhbnNpdGlvbkdyb3VwIGFsbCBlbnRlcnMgYXJlIHJlYWxseSBhcHBlYXJzXG5cbiAgICB2YXIgYXBwZWFyID0gcGFyZW50R3JvdXAgJiYgIXBhcmVudEdyb3VwLmlzTW91bnRpbmcgPyBwcm9wcy5lbnRlciA6IHByb3BzLmFwcGVhcjtcbiAgICB2YXIgaW5pdGlhbFN0YXR1cztcbiAgICBfdGhpcy5hcHBlYXJTdGF0dXMgPSBudWxsO1xuXG4gICAgaWYgKHByb3BzLmluKSB7XG4gICAgICBpZiAoYXBwZWFyKSB7XG4gICAgICAgIGluaXRpYWxTdGF0dXMgPSBFWElURUQ7XG4gICAgICAgIF90aGlzLmFwcGVhclN0YXR1cyA9IEVOVEVSSU5HO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaW5pdGlhbFN0YXR1cyA9IEVOVEVSRUQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChwcm9wcy51bm1vdW50T25FeGl0IHx8IHByb3BzLm1vdW50T25FbnRlcikge1xuICAgICAgICBpbml0aWFsU3RhdHVzID0gVU5NT1VOVEVEO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaW5pdGlhbFN0YXR1cyA9IEVYSVRFRDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBfdGhpcy5zdGF0ZSA9IHtcbiAgICAgIHN0YXR1czogaW5pdGlhbFN0YXR1c1xuICAgIH07XG4gICAgX3RoaXMubmV4dENhbGxiYWNrID0gbnVsbDtcbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICB2YXIgX3Byb3RvID0gVHJhbnNpdGlvbi5wcm90b3R5cGU7XG5cbiAgX3Byb3RvLmdldENoaWxkQ29udGV4dCA9IGZ1bmN0aW9uIGdldENoaWxkQ29udGV4dCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHJhbnNpdGlvbkdyb3VwOiBudWxsIC8vIGFsbG93cyBmb3IgbmVzdGVkIFRyYW5zaXRpb25zXG5cbiAgICB9O1xuICB9O1xuXG4gIFRyYW5zaXRpb24uZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzID0gZnVuY3Rpb24gZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKF9yZWYsIHByZXZTdGF0ZSkge1xuICAgIHZhciBuZXh0SW4gPSBfcmVmLmluO1xuXG4gICAgaWYgKG5leHRJbiAmJiBwcmV2U3RhdGUuc3RhdHVzID09PSBVTk1PVU5URUQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN0YXR1czogRVhJVEVEXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9OyAvLyBnZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgLy8gICBsZXQgbmV4dFN0YXR1cyA9IG51bGxcbiAgLy8gICBpZiAocHJldlByb3BzICE9PSB0aGlzLnByb3BzKSB7XG4gIC8vICAgICBjb25zdCB7IHN0YXR1cyB9ID0gdGhpcy5zdGF0ZVxuICAvLyAgICAgaWYgKHRoaXMucHJvcHMuaW4pIHtcbiAgLy8gICAgICAgaWYgKHN0YXR1cyAhPT0gRU5URVJJTkcgJiYgc3RhdHVzICE9PSBFTlRFUkVEKSB7XG4gIC8vICAgICAgICAgbmV4dFN0YXR1cyA9IEVOVEVSSU5HXG4gIC8vICAgICAgIH1cbiAgLy8gICAgIH0gZWxzZSB7XG4gIC8vICAgICAgIGlmIChzdGF0dXMgPT09IEVOVEVSSU5HIHx8IHN0YXR1cyA9PT0gRU5URVJFRCkge1xuICAvLyAgICAgICAgIG5leHRTdGF0dXMgPSBFWElUSU5HXG4gIC8vICAgICAgIH1cbiAgLy8gICAgIH1cbiAgLy8gICB9XG4gIC8vICAgcmV0dXJuIHsgbmV4dFN0YXR1cyB9XG4gIC8vIH1cblxuXG4gIF9wcm90by5jb21wb25lbnREaWRNb3VudCA9IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIHRoaXMudXBkYXRlU3RhdHVzKHRydWUsIHRoaXMuYXBwZWFyU3RhdHVzKTtcbiAgfTtcblxuICBfcHJvdG8uY29tcG9uZW50RGlkVXBkYXRlID0gZnVuY3Rpb24gY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcykge1xuICAgIHZhciBuZXh0U3RhdHVzID0gbnVsbDtcblxuICAgIGlmIChwcmV2UHJvcHMgIT09IHRoaXMucHJvcHMpIHtcbiAgICAgIHZhciBzdGF0dXMgPSB0aGlzLnN0YXRlLnN0YXR1cztcblxuICAgICAgaWYgKHRoaXMucHJvcHMuaW4pIHtcbiAgICAgICAgaWYgKHN0YXR1cyAhPT0gRU5URVJJTkcgJiYgc3RhdHVzICE9PSBFTlRFUkVEKSB7XG4gICAgICAgICAgbmV4dFN0YXR1cyA9IEVOVEVSSU5HO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoc3RhdHVzID09PSBFTlRFUklORyB8fCBzdGF0dXMgPT09IEVOVEVSRUQpIHtcbiAgICAgICAgICBuZXh0U3RhdHVzID0gRVhJVElORztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMudXBkYXRlU3RhdHVzKGZhbHNlLCBuZXh0U3RhdHVzKTtcbiAgfTtcblxuICBfcHJvdG8uY29tcG9uZW50V2lsbFVubW91bnQgPSBmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICB0aGlzLmNhbmNlbE5leHRDYWxsYmFjaygpO1xuICB9O1xuXG4gIF9wcm90by5nZXRUaW1lb3V0cyA9IGZ1bmN0aW9uIGdldFRpbWVvdXRzKCkge1xuICAgIHZhciB0aW1lb3V0ID0gdGhpcy5wcm9wcy50aW1lb3V0O1xuICAgIHZhciBleGl0LCBlbnRlciwgYXBwZWFyO1xuICAgIGV4aXQgPSBlbnRlciA9IGFwcGVhciA9IHRpbWVvdXQ7XG5cbiAgICBpZiAodGltZW91dCAhPSBudWxsICYmIHR5cGVvZiB0aW1lb3V0ICE9PSAnbnVtYmVyJykge1xuICAgICAgZXhpdCA9IHRpbWVvdXQuZXhpdDtcbiAgICAgIGVudGVyID0gdGltZW91dC5lbnRlcjsgLy8gVE9ETzogcmVtb3ZlIGZhbGxiYWNrIGZvciBuZXh0IG1ham9yXG5cbiAgICAgIGFwcGVhciA9IHRpbWVvdXQuYXBwZWFyICE9PSB1bmRlZmluZWQgPyB0aW1lb3V0LmFwcGVhciA6IGVudGVyO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBleGl0OiBleGl0LFxuICAgICAgZW50ZXI6IGVudGVyLFxuICAgICAgYXBwZWFyOiBhcHBlYXJcbiAgICB9O1xuICB9O1xuXG4gIF9wcm90by51cGRhdGVTdGF0dXMgPSBmdW5jdGlvbiB1cGRhdGVTdGF0dXMobW91bnRpbmcsIG5leHRTdGF0dXMpIHtcbiAgICBpZiAobW91bnRpbmcgPT09IHZvaWQgMCkge1xuICAgICAgbW91bnRpbmcgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAobmV4dFN0YXR1cyAhPT0gbnVsbCkge1xuICAgICAgLy8gbmV4dFN0YXR1cyB3aWxsIGFsd2F5cyBiZSBFTlRFUklORyBvciBFWElUSU5HLlxuICAgICAgdGhpcy5jYW5jZWxOZXh0Q2FsbGJhY2soKTtcblxuICAgICAgdmFyIG5vZGUgPSBfcmVhY3REb20uZGVmYXVsdC5maW5kRE9NTm9kZSh0aGlzKTtcblxuICAgICAgaWYgKG5leHRTdGF0dXMgPT09IEVOVEVSSU5HKSB7XG4gICAgICAgIHRoaXMucGVyZm9ybUVudGVyKG5vZGUsIG1vdW50aW5nKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucGVyZm9ybUV4aXQobm9kZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLnByb3BzLnVubW91bnRPbkV4aXQgJiYgdGhpcy5zdGF0ZS5zdGF0dXMgPT09IEVYSVRFRCkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIHN0YXR1czogVU5NT1VOVEVEXG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgX3Byb3RvLnBlcmZvcm1FbnRlciA9IGZ1bmN0aW9uIHBlcmZvcm1FbnRlcihub2RlLCBtb3VudGluZykge1xuICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgdmFyIGVudGVyID0gdGhpcy5wcm9wcy5lbnRlcjtcbiAgICB2YXIgYXBwZWFyaW5nID0gdGhpcy5jb250ZXh0LnRyYW5zaXRpb25Hcm91cCA/IHRoaXMuY29udGV4dC50cmFuc2l0aW9uR3JvdXAuaXNNb3VudGluZyA6IG1vdW50aW5nO1xuICAgIHZhciB0aW1lb3V0cyA9IHRoaXMuZ2V0VGltZW91dHMoKTtcbiAgICB2YXIgZW50ZXJUaW1lb3V0ID0gYXBwZWFyaW5nID8gdGltZW91dHMuYXBwZWFyIDogdGltZW91dHMuZW50ZXI7IC8vIG5vIGVudGVyIGFuaW1hdGlvbiBza2lwIHJpZ2h0IHRvIEVOVEVSRURcbiAgICAvLyBpZiB3ZSBhcmUgbW91bnRpbmcgYW5kIHJ1bm5pbmcgdGhpcyBpdCBtZWFucyBhcHBlYXIgX211c3RfIGJlIHNldFxuXG4gICAgaWYgKCFtb3VudGluZyAmJiAhZW50ZXIpIHtcbiAgICAgIHRoaXMuc2FmZVNldFN0YXRlKHtcbiAgICAgICAgc3RhdHVzOiBFTlRFUkVEXG4gICAgICB9LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIF90aGlzMi5wcm9wcy5vbkVudGVyZWQobm9kZSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnByb3BzLm9uRW50ZXIobm9kZSwgYXBwZWFyaW5nKTtcbiAgICB0aGlzLnNhZmVTZXRTdGF0ZSh7XG4gICAgICBzdGF0dXM6IEVOVEVSSU5HXG4gICAgfSwgZnVuY3Rpb24gKCkge1xuICAgICAgX3RoaXMyLnByb3BzLm9uRW50ZXJpbmcobm9kZSwgYXBwZWFyaW5nKTtcblxuICAgICAgX3RoaXMyLm9uVHJhbnNpdGlvbkVuZChub2RlLCBlbnRlclRpbWVvdXQsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgX3RoaXMyLnNhZmVTZXRTdGF0ZSh7XG4gICAgICAgICAgc3RhdHVzOiBFTlRFUkVEXG4gICAgICAgIH0sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBfdGhpczIucHJvcHMub25FbnRlcmVkKG5vZGUsIGFwcGVhcmluZyk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH07XG5cbiAgX3Byb3RvLnBlcmZvcm1FeGl0ID0gZnVuY3Rpb24gcGVyZm9ybUV4aXQobm9kZSkge1xuICAgIHZhciBfdGhpczMgPSB0aGlzO1xuXG4gICAgdmFyIGV4aXQgPSB0aGlzLnByb3BzLmV4aXQ7XG4gICAgdmFyIHRpbWVvdXRzID0gdGhpcy5nZXRUaW1lb3V0cygpOyAvLyBubyBleGl0IGFuaW1hdGlvbiBza2lwIHJpZ2h0IHRvIEVYSVRFRFxuXG4gICAgaWYgKCFleGl0KSB7XG4gICAgICB0aGlzLnNhZmVTZXRTdGF0ZSh7XG4gICAgICAgIHN0YXR1czogRVhJVEVEXG4gICAgICB9LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIF90aGlzMy5wcm9wcy5vbkV4aXRlZChub2RlKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucHJvcHMub25FeGl0KG5vZGUpO1xuICAgIHRoaXMuc2FmZVNldFN0YXRlKHtcbiAgICAgIHN0YXR1czogRVhJVElOR1xuICAgIH0sIGZ1bmN0aW9uICgpIHtcbiAgICAgIF90aGlzMy5wcm9wcy5vbkV4aXRpbmcobm9kZSk7XG5cbiAgICAgIF90aGlzMy5vblRyYW5zaXRpb25FbmQobm9kZSwgdGltZW91dHMuZXhpdCwgZnVuY3Rpb24gKCkge1xuICAgICAgICBfdGhpczMuc2FmZVNldFN0YXRlKHtcbiAgICAgICAgICBzdGF0dXM6IEVYSVRFRFxuICAgICAgICB9LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgX3RoaXMzLnByb3BzLm9uRXhpdGVkKG5vZGUpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9O1xuXG4gIF9wcm90by5jYW5jZWxOZXh0Q2FsbGJhY2sgPSBmdW5jdGlvbiBjYW5jZWxOZXh0Q2FsbGJhY2soKSB7XG4gICAgaWYgKHRoaXMubmV4dENhbGxiYWNrICE9PSBudWxsKSB7XG4gICAgICB0aGlzLm5leHRDYWxsYmFjay5jYW5jZWwoKTtcbiAgICAgIHRoaXMubmV4dENhbGxiYWNrID0gbnVsbDtcbiAgICB9XG4gIH07XG5cbiAgX3Byb3RvLnNhZmVTZXRTdGF0ZSA9IGZ1bmN0aW9uIHNhZmVTZXRTdGF0ZShuZXh0U3RhdGUsIGNhbGxiYWNrKSB7XG4gICAgLy8gVGhpcyBzaG91bGRuJ3QgYmUgbmVjZXNzYXJ5LCBidXQgdGhlcmUgYXJlIHdlaXJkIHJhY2UgY29uZGl0aW9ucyB3aXRoXG4gICAgLy8gc2V0U3RhdGUgY2FsbGJhY2tzIGFuZCB1bm1vdW50aW5nIGluIHRlc3RpbmcsIHNvIGFsd2F5cyBtYWtlIHN1cmUgdGhhdFxuICAgIC8vIHdlIGNhbiBjYW5jZWwgYW55IHBlbmRpbmcgc2V0U3RhdGUgY2FsbGJhY2tzIGFmdGVyIHdlIHVubW91bnQuXG4gICAgY2FsbGJhY2sgPSB0aGlzLnNldE5leHRDYWxsYmFjayhjYWxsYmFjayk7XG4gICAgdGhpcy5zZXRTdGF0ZShuZXh0U3RhdGUsIGNhbGxiYWNrKTtcbiAgfTtcblxuICBfcHJvdG8uc2V0TmV4dENhbGxiYWNrID0gZnVuY3Rpb24gc2V0TmV4dENhbGxiYWNrKGNhbGxiYWNrKSB7XG4gICAgdmFyIF90aGlzNCA9IHRoaXM7XG5cbiAgICB2YXIgYWN0aXZlID0gdHJ1ZTtcblxuICAgIHRoaXMubmV4dENhbGxiYWNrID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICBpZiAoYWN0aXZlKSB7XG4gICAgICAgIGFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICBfdGhpczQubmV4dENhbGxiYWNrID0gbnVsbDtcbiAgICAgICAgY2FsbGJhY2soZXZlbnQpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB0aGlzLm5leHRDYWxsYmFjay5jYW5jZWwgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBhY3RpdmUgPSBmYWxzZTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMubmV4dENhbGxiYWNrO1xuICB9O1xuXG4gIF9wcm90by5vblRyYW5zaXRpb25FbmQgPSBmdW5jdGlvbiBvblRyYW5zaXRpb25FbmQobm9kZSwgdGltZW91dCwgaGFuZGxlcikge1xuICAgIHRoaXMuc2V0TmV4dENhbGxiYWNrKGhhbmRsZXIpO1xuICAgIHZhciBkb2VzTm90SGF2ZVRpbWVvdXRPckxpc3RlbmVyID0gdGltZW91dCA9PSBudWxsICYmICF0aGlzLnByb3BzLmFkZEVuZExpc3RlbmVyO1xuXG4gICAgaWYgKCFub2RlIHx8IGRvZXNOb3RIYXZlVGltZW91dE9yTGlzdGVuZXIpIHtcbiAgICAgIHNldFRpbWVvdXQodGhpcy5uZXh0Q2FsbGJhY2ssIDApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByb3BzLmFkZEVuZExpc3RlbmVyKSB7XG4gICAgICB0aGlzLnByb3BzLmFkZEVuZExpc3RlbmVyKG5vZGUsIHRoaXMubmV4dENhbGxiYWNrKTtcbiAgICB9XG5cbiAgICBpZiAodGltZW91dCAhPSBudWxsKSB7XG4gICAgICBzZXRUaW1lb3V0KHRoaXMubmV4dENhbGxiYWNrLCB0aW1lb3V0KTtcbiAgICB9XG4gIH07XG5cbiAgX3Byb3RvLnJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICB2YXIgc3RhdHVzID0gdGhpcy5zdGF0ZS5zdGF0dXM7XG5cbiAgICBpZiAoc3RhdHVzID09PSBVTk1PVU5URUQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHZhciBfdGhpcyRwcm9wcyA9IHRoaXMucHJvcHMsXG4gICAgICAgIGNoaWxkcmVuID0gX3RoaXMkcHJvcHMuY2hpbGRyZW4sXG4gICAgICAgIGNoaWxkUHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShfdGhpcyRwcm9wcywgW1wiY2hpbGRyZW5cIl0pOyAvLyBmaWx0ZXIgcHJvcHMgZm9yIFRyYW5zdGl0aW9uXG5cblxuICAgIGRlbGV0ZSBjaGlsZFByb3BzLmluO1xuICAgIGRlbGV0ZSBjaGlsZFByb3BzLm1vdW50T25FbnRlcjtcbiAgICBkZWxldGUgY2hpbGRQcm9wcy51bm1vdW50T25FeGl0O1xuICAgIGRlbGV0ZSBjaGlsZFByb3BzLmFwcGVhcjtcbiAgICBkZWxldGUgY2hpbGRQcm9wcy5lbnRlcjtcbiAgICBkZWxldGUgY2hpbGRQcm9wcy5leGl0O1xuICAgIGRlbGV0ZSBjaGlsZFByb3BzLnRpbWVvdXQ7XG4gICAgZGVsZXRlIGNoaWxkUHJvcHMuYWRkRW5kTGlzdGVuZXI7XG4gICAgZGVsZXRlIGNoaWxkUHJvcHMub25FbnRlcjtcbiAgICBkZWxldGUgY2hpbGRQcm9wcy5vbkVudGVyaW5nO1xuICAgIGRlbGV0ZSBjaGlsZFByb3BzLm9uRW50ZXJlZDtcbiAgICBkZWxldGUgY2hpbGRQcm9wcy5vbkV4aXQ7XG4gICAgZGVsZXRlIGNoaWxkUHJvcHMub25FeGl0aW5nO1xuICAgIGRlbGV0ZSBjaGlsZFByb3BzLm9uRXhpdGVkO1xuXG4gICAgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIGNoaWxkcmVuKHN0YXR1cywgY2hpbGRQcm9wcyk7XG4gICAgfVxuXG4gICAgdmFyIGNoaWxkID0gX3JlYWN0LmRlZmF1bHQuQ2hpbGRyZW4ub25seShjaGlsZHJlbik7XG5cbiAgICByZXR1cm4gX3JlYWN0LmRlZmF1bHQuY2xvbmVFbGVtZW50KGNoaWxkLCBjaGlsZFByb3BzKTtcbiAgfTtcblxuICByZXR1cm4gVHJhbnNpdGlvbjtcbn0oX3JlYWN0LmRlZmF1bHQuQ29tcG9uZW50KTtcblxuVHJhbnNpdGlvbi5jb250ZXh0VHlwZXMgPSB7XG4gIHRyYW5zaXRpb25Hcm91cDogUHJvcFR5cGVzLm9iamVjdFxufTtcblRyYW5zaXRpb24uY2hpbGRDb250ZXh0VHlwZXMgPSB7XG4gIHRyYW5zaXRpb25Hcm91cDogZnVuY3Rpb24gdHJhbnNpdGlvbkdyb3VwKCkge31cbn07XG5UcmFuc2l0aW9uLnByb3BUeXBlcyA9IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IHtcbiAgLyoqXG4gICAqIEEgYGZ1bmN0aW9uYCBjaGlsZCBjYW4gYmUgdXNlZCBpbnN0ZWFkIG9mIGEgUmVhY3QgZWxlbWVudC4gVGhpcyBmdW5jdGlvbiBpc1xuICAgKiBjYWxsZWQgd2l0aCB0aGUgY3VycmVudCB0cmFuc2l0aW9uIHN0YXR1cyAoYCdlbnRlcmluZydgLCBgJ2VudGVyZWQnYCxcbiAgICogYCdleGl0aW5nJ2AsIGAnZXhpdGVkJ2AsIGAndW5tb3VudGVkJ2ApLCB3aGljaCBjYW4gYmUgdXNlZCB0byBhcHBseSBjb250ZXh0XG4gICAqIHNwZWNpZmljIHByb3BzIHRvIGEgY29tcG9uZW50LlxuICAgKlxuICAgKiBgYGBqc3hcbiAgICogPFRyYW5zaXRpb24gaW49e3RoaXMuc3RhdGUuaW59IHRpbWVvdXQ9ezE1MH0+XG4gICAqICAge3N0YXRlID0+IChcbiAgICogICAgIDxNeUNvbXBvbmVudCBjbGFzc05hbWU9e2BmYWRlIGZhZGUtJHtzdGF0ZX1gfSAvPlxuICAgKiAgICl9XG4gICAqIDwvVHJhbnNpdGlvbj5cbiAgICogYGBgXG4gICAqL1xuICBjaGlsZHJlbjogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCwgUHJvcFR5cGVzLmVsZW1lbnQuaXNSZXF1aXJlZF0pLmlzUmVxdWlyZWQsXG5cbiAgLyoqXG4gICAqIFNob3cgdGhlIGNvbXBvbmVudDsgdHJpZ2dlcnMgdGhlIGVudGVyIG9yIGV4aXQgc3RhdGVzXG4gICAqL1xuICBpbjogUHJvcFR5cGVzLmJvb2wsXG5cbiAgLyoqXG4gICAqIEJ5IGRlZmF1bHQgdGhlIGNoaWxkIGNvbXBvbmVudCBpcyBtb3VudGVkIGltbWVkaWF0ZWx5IGFsb25nIHdpdGhcbiAgICogdGhlIHBhcmVudCBgVHJhbnNpdGlvbmAgY29tcG9uZW50LiBJZiB5b3Ugd2FudCB0byBcImxhenkgbW91bnRcIiB0aGUgY29tcG9uZW50IG9uIHRoZVxuICAgKiBmaXJzdCBgaW49e3RydWV9YCB5b3UgY2FuIHNldCBgbW91bnRPbkVudGVyYC4gQWZ0ZXIgdGhlIGZpcnN0IGVudGVyIHRyYW5zaXRpb24gdGhlIGNvbXBvbmVudCB3aWxsIHN0YXlcbiAgICogbW91bnRlZCwgZXZlbiBvbiBcImV4aXRlZFwiLCB1bmxlc3MgeW91IGFsc28gc3BlY2lmeSBgdW5tb3VudE9uRXhpdGAuXG4gICAqL1xuICBtb3VudE9uRW50ZXI6IFByb3BUeXBlcy5ib29sLFxuXG4gIC8qKlxuICAgKiBCeSBkZWZhdWx0IHRoZSBjaGlsZCBjb21wb25lbnQgc3RheXMgbW91bnRlZCBhZnRlciBpdCByZWFjaGVzIHRoZSBgJ2V4aXRlZCdgIHN0YXRlLlxuICAgKiBTZXQgYHVubW91bnRPbkV4aXRgIGlmIHlvdSdkIHByZWZlciB0byB1bm1vdW50IHRoZSBjb21wb25lbnQgYWZ0ZXIgaXQgZmluaXNoZXMgZXhpdGluZy5cbiAgICovXG4gIHVubW91bnRPbkV4aXQ6IFByb3BUeXBlcy5ib29sLFxuXG4gIC8qKlxuICAgKiBOb3JtYWxseSBhIGNvbXBvbmVudCBpcyBub3QgdHJhbnNpdGlvbmVkIGlmIGl0IGlzIHNob3duIHdoZW4gdGhlIGA8VHJhbnNpdGlvbj5gIGNvbXBvbmVudCBtb3VudHMuXG4gICAqIElmIHlvdSB3YW50IHRvIHRyYW5zaXRpb24gb24gdGhlIGZpcnN0IG1vdW50IHNldCBgYXBwZWFyYCB0byBgdHJ1ZWAsIGFuZCB0aGVcbiAgICogY29tcG9uZW50IHdpbGwgdHJhbnNpdGlvbiBpbiBhcyBzb29uIGFzIHRoZSBgPFRyYW5zaXRpb24+YCBtb3VudHMuXG4gICAqXG4gICAqID4gTm90ZTogdGhlcmUgYXJlIG5vIHNwZWNpZmljIFwiYXBwZWFyXCIgc3RhdGVzLiBgYXBwZWFyYCBvbmx5IGFkZHMgYW4gYWRkaXRpb25hbCBgZW50ZXJgIHRyYW5zaXRpb24uXG4gICAqL1xuICBhcHBlYXI6IFByb3BUeXBlcy5ib29sLFxuXG4gIC8qKlxuICAgKiBFbmFibGUgb3IgZGlzYWJsZSBlbnRlciB0cmFuc2l0aW9ucy5cbiAgICovXG4gIGVudGVyOiBQcm9wVHlwZXMuYm9vbCxcblxuICAvKipcbiAgICogRW5hYmxlIG9yIGRpc2FibGUgZXhpdCB0cmFuc2l0aW9ucy5cbiAgICovXG4gIGV4aXQ6IFByb3BUeXBlcy5ib29sLFxuXG4gIC8qKlxuICAgKiBUaGUgZHVyYXRpb24gb2YgdGhlIHRyYW5zaXRpb24sIGluIG1pbGxpc2Vjb25kcy5cbiAgICogUmVxdWlyZWQgdW5sZXNzIGBhZGRFbmRMaXN0ZW5lcmAgaXMgcHJvdmlkZWQuXG4gICAqXG4gICAqIFlvdSBtYXkgc3BlY2lmeSBhIHNpbmdsZSB0aW1lb3V0IGZvciBhbGwgdHJhbnNpdGlvbnM6XG4gICAqXG4gICAqIGBgYGpzeFxuICAgKiB0aW1lb3V0PXs1MDB9XG4gICAqIGBgYFxuICAgKlxuICAgKiBvciBpbmRpdmlkdWFsbHk6XG4gICAqXG4gICAqIGBgYGpzeFxuICAgKiB0aW1lb3V0PXt7XG4gICAqICBhcHBlYXI6IDUwMCxcbiAgICogIGVudGVyOiAzMDAsXG4gICAqICBleGl0OiA1MDAsXG4gICAqIH19XG4gICAqIGBgYFxuICAgKlxuICAgKiAtIGBhcHBlYXJgIGRlZmF1bHRzIHRvIHRoZSB2YWx1ZSBvZiBgZW50ZXJgXG4gICAqIC0gYGVudGVyYCBkZWZhdWx0cyB0byBgMGBcbiAgICogLSBgZXhpdGAgZGVmYXVsdHMgdG8gYDBgXG4gICAqXG4gICAqIEB0eXBlIHtudW1iZXIgfCB7IGVudGVyPzogbnVtYmVyLCBleGl0PzogbnVtYmVyLCBhcHBlYXI/OiBudW1iZXIgfX1cbiAgICovXG4gIHRpbWVvdXQ6IGZ1bmN0aW9uIHRpbWVvdXQocHJvcHMpIHtcbiAgICB2YXIgcHQgPSBfUHJvcFR5cGVzLnRpbWVvdXRzU2hhcGU7XG4gICAgaWYgKCFwcm9wcy5hZGRFbmRMaXN0ZW5lcikgcHQgPSBwdC5pc1JlcXVpcmVkO1xuXG4gICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiA+IDEgPyBfbGVuIC0gMSA6IDApLCBfa2V5ID0gMTsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgICAgYXJnc1tfa2V5IC0gMV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgfVxuXG4gICAgcmV0dXJuIHB0LmFwcGx5KHZvaWQgMCwgW3Byb3BzXS5jb25jYXQoYXJncykpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBBZGQgYSBjdXN0b20gdHJhbnNpdGlvbiBlbmQgdHJpZ2dlci4gQ2FsbGVkIHdpdGggdGhlIHRyYW5zaXRpb25pbmdcbiAgICogRE9NIG5vZGUgYW5kIGEgYGRvbmVgIGNhbGxiYWNrLiBBbGxvd3MgZm9yIG1vcmUgZmluZSBncmFpbmVkIHRyYW5zaXRpb24gZW5kXG4gICAqIGxvZ2ljLiAqKk5vdGU6KiogVGltZW91dHMgYXJlIHN0aWxsIHVzZWQgYXMgYSBmYWxsYmFjayBpZiBwcm92aWRlZC5cbiAgICpcbiAgICogYGBganN4XG4gICAqIGFkZEVuZExpc3RlbmVyPXsobm9kZSwgZG9uZSkgPT4ge1xuICAgKiAgIC8vIHVzZSB0aGUgY3NzIHRyYW5zaXRpb25lbmQgZXZlbnQgdG8gbWFyayB0aGUgZmluaXNoIG9mIGEgdHJhbnNpdGlvblxuICAgKiAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcigndHJhbnNpdGlvbmVuZCcsIGRvbmUsIGZhbHNlKTtcbiAgICogfX1cbiAgICogYGBgXG4gICAqL1xuICBhZGRFbmRMaXN0ZW5lcjogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIGZpcmVkIGJlZm9yZSB0aGUgXCJlbnRlcmluZ1wiIHN0YXR1cyBpcyBhcHBsaWVkLiBBbiBleHRyYSBwYXJhbWV0ZXJcbiAgICogYGlzQXBwZWFyaW5nYCBpcyBzdXBwbGllZCB0byBpbmRpY2F0ZSBpZiB0aGUgZW50ZXIgc3RhZ2UgaXMgb2NjdXJyaW5nIG9uIHRoZSBpbml0aWFsIG1vdW50XG4gICAqXG4gICAqIEB0eXBlIEZ1bmN0aW9uKG5vZGU6IEh0bWxFbGVtZW50LCBpc0FwcGVhcmluZzogYm9vbCkgLT4gdm9pZFxuICAgKi9cbiAgb25FbnRlcjogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIGZpcmVkIGFmdGVyIHRoZSBcImVudGVyaW5nXCIgc3RhdHVzIGlzIGFwcGxpZWQuIEFuIGV4dHJhIHBhcmFtZXRlclxuICAgKiBgaXNBcHBlYXJpbmdgIGlzIHN1cHBsaWVkIHRvIGluZGljYXRlIGlmIHRoZSBlbnRlciBzdGFnZSBpcyBvY2N1cnJpbmcgb24gdGhlIGluaXRpYWwgbW91bnRcbiAgICpcbiAgICogQHR5cGUgRnVuY3Rpb24obm9kZTogSHRtbEVsZW1lbnQsIGlzQXBwZWFyaW5nOiBib29sKVxuICAgKi9cbiAgb25FbnRlcmluZzogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIGZpcmVkIGFmdGVyIHRoZSBcImVudGVyZWRcIiBzdGF0dXMgaXMgYXBwbGllZC4gQW4gZXh0cmEgcGFyYW1ldGVyXG4gICAqIGBpc0FwcGVhcmluZ2AgaXMgc3VwcGxpZWQgdG8gaW5kaWNhdGUgaWYgdGhlIGVudGVyIHN0YWdlIGlzIG9jY3VycmluZyBvbiB0aGUgaW5pdGlhbCBtb3VudFxuICAgKlxuICAgKiBAdHlwZSBGdW5jdGlvbihub2RlOiBIdG1sRWxlbWVudCwgaXNBcHBlYXJpbmc6IGJvb2wpIC0+IHZvaWRcbiAgICovXG4gIG9uRW50ZXJlZDogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIGZpcmVkIGJlZm9yZSB0aGUgXCJleGl0aW5nXCIgc3RhdHVzIGlzIGFwcGxpZWQuXG4gICAqXG4gICAqIEB0eXBlIEZ1bmN0aW9uKG5vZGU6IEh0bWxFbGVtZW50KSAtPiB2b2lkXG4gICAqL1xuICBvbkV4aXQ6IFByb3BUeXBlcy5mdW5jLFxuXG4gIC8qKlxuICAgKiBDYWxsYmFjayBmaXJlZCBhZnRlciB0aGUgXCJleGl0aW5nXCIgc3RhdHVzIGlzIGFwcGxpZWQuXG4gICAqXG4gICAqIEB0eXBlIEZ1bmN0aW9uKG5vZGU6IEh0bWxFbGVtZW50KSAtPiB2b2lkXG4gICAqL1xuICBvbkV4aXRpbmc6IFByb3BUeXBlcy5mdW5jLFxuXG4gIC8qKlxuICAgKiBDYWxsYmFjayBmaXJlZCBhZnRlciB0aGUgXCJleGl0ZWRcIiBzdGF0dXMgaXMgYXBwbGllZC5cbiAgICpcbiAgICogQHR5cGUgRnVuY3Rpb24obm9kZTogSHRtbEVsZW1lbnQpIC0+IHZvaWRcbiAgICovXG4gIG9uRXhpdGVkOiBQcm9wVHlwZXMuZnVuYyAvLyBOYW1lIHRoZSBmdW5jdGlvbiBzbyBpdCBpcyBjbGVhcmVyIGluIHRoZSBkb2N1bWVudGF0aW9uXG5cbn0gOiB7fTtcblxuZnVuY3Rpb24gbm9vcCgpIHt9XG5cblRyYW5zaXRpb24uZGVmYXVsdFByb3BzID0ge1xuICBpbjogZmFsc2UsXG4gIG1vdW50T25FbnRlcjogZmFsc2UsXG4gIHVubW91bnRPbkV4aXQ6IGZhbHNlLFxuICBhcHBlYXI6IGZhbHNlLFxuICBlbnRlcjogdHJ1ZSxcbiAgZXhpdDogdHJ1ZSxcbiAgb25FbnRlcjogbm9vcCxcbiAgb25FbnRlcmluZzogbm9vcCxcbiAgb25FbnRlcmVkOiBub29wLFxuICBvbkV4aXQ6IG5vb3AsXG4gIG9uRXhpdGluZzogbm9vcCxcbiAgb25FeGl0ZWQ6IG5vb3Bcbn07XG5UcmFuc2l0aW9uLlVOTU9VTlRFRCA9IDA7XG5UcmFuc2l0aW9uLkVYSVRFRCA9IDE7XG5UcmFuc2l0aW9uLkVOVEVSSU5HID0gMjtcblRyYW5zaXRpb24uRU5URVJFRCA9IDM7XG5UcmFuc2l0aW9uLkVYSVRJTkcgPSA0O1xuXG52YXIgX2RlZmF1bHQgPSAoMCwgX3JlYWN0TGlmZWN5Y2xlc0NvbXBhdC5wb2x5ZmlsbCkoVHJhbnNpdGlvbik7XG5cbmV4cG9ydHMuZGVmYXVsdCA9IF9kZWZhdWx0OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-modal-video/node_modules/react-transition-group/Transition.js\n"); + +/***/ }), + +/***/ "./node_modules/react-modal-video/node_modules/react-transition-group/utils/PropTypes.js": +/*!***********************************************************************************************!*\ + !*** ./node_modules/react-modal-video/node_modules/react-transition-group/utils/PropTypes.js ***! + \***********************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nexports.__esModule = true;\nexports.classNamesShape = exports.timeoutsShape = void 0;\n\nvar _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar timeoutsShape = true ? _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n enter: _propTypes.default.number,\n exit: _propTypes.default.number,\n appear: _propTypes.default.number\n}).isRequired]) : 0;\nexports.timeoutsShape = timeoutsShape;\nvar classNamesShape = true ? _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.shape({\n enter: _propTypes.default.string,\n exit: _propTypes.default.string,\n active: _propTypes.default.string\n}), _propTypes.default.shape({\n enter: _propTypes.default.string,\n enterDone: _propTypes.default.string,\n enterActive: _propTypes.default.string,\n exit: _propTypes.default.string,\n exitDone: _propTypes.default.string,\n exitActive: _propTypes.default.string\n})]) : 0;\nexports.classNamesShape = classNamesShape;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtbW9kYWwtdmlkZW8vbm9kZV9tb2R1bGVzL3JlYWN0LXRyYW5zaXRpb24tZ3JvdXAvdXRpbHMvUHJvcFR5cGVzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLGtCQUFrQjtBQUNsQix1QkFBdUIsR0FBRyxxQkFBcUI7O0FBRS9DLHdDQUF3QyxtQkFBTyxDQUFDLHNEQUFZOztBQUU1RCx1Q0FBdUMsdUNBQXVDOztBQUU5RSxvQkFBb0IsS0FBcUM7QUFDekQ7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxpQkFBaUIsQ0FBSTtBQUN0QixxQkFBcUI7QUFDckIsc0JBQXNCLEtBQXFDO0FBQzNEO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLE1BQU0sQ0FBSTtBQUNYLHVCQUF1QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmVhY3QtbW9kYWwtdmlkZW8vbm9kZV9tb2R1bGVzL3JlYWN0LXRyYW5zaXRpb24tZ3JvdXAvdXRpbHMvUHJvcFR5cGVzLmpzP2M5ZWIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLmNsYXNzTmFtZXNTaGFwZSA9IGV4cG9ydHMudGltZW91dHNTaGFwZSA9IHZvaWQgMDtcblxudmFyIF9wcm9wVHlwZXMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJwcm9wLXR5cGVzXCIpKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxudmFyIHRpbWVvdXRzU2hhcGUgPSBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gX3Byb3BUeXBlcy5kZWZhdWx0Lm9uZU9mVHlwZShbX3Byb3BUeXBlcy5kZWZhdWx0Lm51bWJlciwgX3Byb3BUeXBlcy5kZWZhdWx0LnNoYXBlKHtcbiAgZW50ZXI6IF9wcm9wVHlwZXMuZGVmYXVsdC5udW1iZXIsXG4gIGV4aXQ6IF9wcm9wVHlwZXMuZGVmYXVsdC5udW1iZXIsXG4gIGFwcGVhcjogX3Byb3BUeXBlcy5kZWZhdWx0Lm51bWJlclxufSkuaXNSZXF1aXJlZF0pIDogbnVsbDtcbmV4cG9ydHMudGltZW91dHNTaGFwZSA9IHRpbWVvdXRzU2hhcGU7XG52YXIgY2xhc3NOYW1lc1NoYXBlID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IF9wcm9wVHlwZXMuZGVmYXVsdC5vbmVPZlR5cGUoW19wcm9wVHlwZXMuZGVmYXVsdC5zdHJpbmcsIF9wcm9wVHlwZXMuZGVmYXVsdC5zaGFwZSh7XG4gIGVudGVyOiBfcHJvcFR5cGVzLmRlZmF1bHQuc3RyaW5nLFxuICBleGl0OiBfcHJvcFR5cGVzLmRlZmF1bHQuc3RyaW5nLFxuICBhY3RpdmU6IF9wcm9wVHlwZXMuZGVmYXVsdC5zdHJpbmdcbn0pLCBfcHJvcFR5cGVzLmRlZmF1bHQuc2hhcGUoe1xuICBlbnRlcjogX3Byb3BUeXBlcy5kZWZhdWx0LnN0cmluZyxcbiAgZW50ZXJEb25lOiBfcHJvcFR5cGVzLmRlZmF1bHQuc3RyaW5nLFxuICBlbnRlckFjdGl2ZTogX3Byb3BUeXBlcy5kZWZhdWx0LnN0cmluZyxcbiAgZXhpdDogX3Byb3BUeXBlcy5kZWZhdWx0LnN0cmluZyxcbiAgZXhpdERvbmU6IF9wcm9wVHlwZXMuZGVmYXVsdC5zdHJpbmcsXG4gIGV4aXRBY3RpdmU6IF9wcm9wVHlwZXMuZGVmYXVsdC5zdHJpbmdcbn0pXSkgOiBudWxsO1xuZXhwb3J0cy5jbGFzc05hbWVzU2hhcGUgPSBjbGFzc05hbWVzU2hhcGU7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/react-modal-video/node_modules/react-transition-group/utils/PropTypes.js\n"); + +/***/ }), + +/***/ "./node_modules/react-slick/lib/arrows.js": +/*!************************************************!*\ + !*** ./node_modules/react-slick/lib/arrows.js ***! + \************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.NextArrow = exports.PrevArrow = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _classnames = _interopRequireDefault(__webpack_require__(/*! classnames */ \"./node_modules/classnames/index.js\"));\n\nvar _innerSliderUtils = __webpack_require__(/*! ./utils/innerSliderUtils */ \"./node_modules/react-slick/lib/utils/innerSliderUtils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar PrevArrow = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(PrevArrow, _React$PureComponent);\n\n var _super = _createSuper(PrevArrow);\n\n function PrevArrow() {\n _classCallCheck(this, PrevArrow);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(PrevArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var prevClasses = {\n \"slick-arrow\": true,\n \"slick-prev\": true\n };\n var prevHandler = this.clickHandler.bind(this, {\n message: \"previous\"\n });\n\n if (!this.props.infinite && (this.props.currentSlide === 0 || this.props.slideCount <= this.props.slidesToShow)) {\n prevClasses[\"slick-disabled\"] = true;\n prevHandler = null;\n }\n\n var prevArrowProps = {\n key: \"0\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(prevClasses),\n style: {\n display: \"block\"\n },\n onClick: prevHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var prevArrow;\n\n if (this.props.prevArrow) {\n prevArrow = /*#__PURE__*/_react[\"default\"].cloneElement(this.props.prevArrow, _objectSpread(_objectSpread({}, prevArrowProps), customProps));\n } else {\n prevArrow = /*#__PURE__*/_react[\"default\"].createElement(\"button\", _extends({\n key: \"0\",\n type: \"button\"\n }, prevArrowProps), \" \", \"Previous\");\n }\n\n return prevArrow;\n }\n }]);\n\n return PrevArrow;\n}(_react[\"default\"].PureComponent);\n\nexports.PrevArrow = PrevArrow;\n\nvar NextArrow = /*#__PURE__*/function (_React$PureComponent2) {\n _inherits(NextArrow, _React$PureComponent2);\n\n var _super2 = _createSuper(NextArrow);\n\n function NextArrow() {\n _classCallCheck(this, NextArrow);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(NextArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var nextClasses = {\n \"slick-arrow\": true,\n \"slick-next\": true\n };\n var nextHandler = this.clickHandler.bind(this, {\n message: \"next\"\n });\n\n if (!(0, _innerSliderUtils.canGoNext)(this.props)) {\n nextClasses[\"slick-disabled\"] = true;\n nextHandler = null;\n }\n\n var nextArrowProps = {\n key: \"1\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(nextClasses),\n style: {\n display: \"block\"\n },\n onClick: nextHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var nextArrow;\n\n if (this.props.nextArrow) {\n nextArrow = /*#__PURE__*/_react[\"default\"].cloneElement(this.props.nextArrow, _objectSpread(_objectSpread({}, nextArrowProps), customProps));\n } else {\n nextArrow = /*#__PURE__*/_react[\"default\"].createElement(\"button\", _extends({\n key: \"1\",\n type: \"button\"\n }, nextArrowProps), \" \", \"Next\");\n }\n\n return nextArrow;\n }\n }]);\n\n return NextArrow;\n}(_react[\"default\"].PureComponent);\n\nexports.NextArrow = NextArrow;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2xpY2svbGliL2Fycm93cy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixpQkFBaUIsR0FBRyxpQkFBaUI7O0FBRXJDLG9DQUFvQyxtQkFBTyxDQUFDLDRDQUFPOztBQUVuRCx5Q0FBeUMsbUJBQU8sQ0FBQyxzREFBWTs7QUFFN0Qsd0JBQXdCLG1CQUFPLENBQUMsMEZBQTBCOztBQUUxRCx1Q0FBdUMsdUNBQXVDOztBQUU5RSx3QkFBd0IsMkJBQTJCLDJFQUEyRSxrQ0FBa0Msd0JBQXdCLE9BQU8sa0NBQWtDLG1JQUFtSTs7QUFFcFcsc0JBQXNCLGdEQUFnRCxnQkFBZ0Isc0JBQXNCLE9BQU8sMkJBQTJCLDBCQUEwQix5REFBeUQsaUNBQWlDLGtCQUFrQjs7QUFFcFIsMkNBQTJDLGdDQUFnQyxvQ0FBb0Msb0RBQW9ELDhEQUE4RCxpRUFBaUUsR0FBRyxrQ0FBa0M7O0FBRXZVLGlDQUFpQyxnQkFBZ0Isc0JBQXNCLE9BQU8sdURBQXVELGFBQWEsdURBQXVELDRDQUE0QyxLQUFLLDZDQUE2Qyw2RUFBNkUsT0FBTyxpREFBaUQsbUZBQW1GLE9BQU87O0FBRXRnQiw0Q0FBNEMsa0JBQWtCLGtDQUFrQyxvRUFBb0UsS0FBSyxPQUFPLG9CQUFvQjs7QUFFcE0sa0RBQWtELDBDQUEwQzs7QUFFNUYsNENBQTRDLGdCQUFnQixrQkFBa0IsT0FBTywyQkFBMkIsd0RBQXdELGdDQUFnQyx1REFBdUQ7O0FBRS9QLDhEQUE4RCxzRUFBc0UsOERBQThEOztBQUVsTSwyQ0FBMkMsK0RBQStELDZFQUE2RSx5RUFBeUUsZUFBZSx1REFBdUQsR0FBRzs7QUFFelUsaUNBQWlDLDRFQUE0RSxpQkFBaUIsYUFBYTs7QUFFM0ksaUNBQWlDLDZEQUE2RCx5Q0FBeUMsOENBQThDLGlDQUFpQyxtREFBbUQsMkRBQTJELE9BQU8seUNBQXlDOztBQUVwWCxrREFBa0QsMEVBQTBFLGVBQWU7O0FBRTNJLHdDQUF3Qyx1QkFBdUIseUZBQXlGOztBQUV4Six1Q0FBdUMsd0VBQXdFLDBDQUEwQyw4Q0FBOEMsTUFBTSx1RUFBdUUsSUFBSSxlQUFlLFlBQVk7O0FBRW5ULDhCQUE4QixnR0FBZ0csbURBQW1EOztBQUVqTDtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTzs7QUFFUDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxvSEFBb0g7QUFDcEgsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDs7QUFFQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBLENBQUM7O0FBRUQsaUJBQWlCOztBQUVqQjtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTzs7QUFFUDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxvSEFBb0g7QUFDcEgsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDs7QUFFQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBLENBQUM7O0FBRUQsaUJBQWlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zbGljay9saWIvYXJyb3dzLmpzPzY2ODciXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLk5leHRBcnJvdyA9IGV4cG9ydHMuUHJldkFycm93ID0gdm9pZCAwO1xuXG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX2NsYXNzbmFtZXMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJjbGFzc25hbWVzXCIpKTtcblxudmFyIF9pbm5lclNsaWRlclV0aWxzID0gcmVxdWlyZShcIi4vdXRpbHMvaW5uZXJTbGlkZXJVdGlsc1wiKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjsgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiKSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfTsgfSBlbHNlIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9OyB9IHJldHVybiBfdHlwZW9mKG9iaik7IH1cblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cblxuZnVuY3Rpb24gb3duS2V5cyhvYmplY3QsIGVudW1lcmFibGVPbmx5KSB7IHZhciBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KTsgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHsgdmFyIHN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG9iamVjdCk7IGlmIChlbnVtZXJhYmxlT25seSkgc3ltYm9scyA9IHN5bWJvbHMuZmlsdGVyKGZ1bmN0aW9uIChzeW0pIHsgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LCBzeW0pLmVudW1lcmFibGU7IH0pOyBrZXlzLnB1c2guYXBwbHkoa2V5cywgc3ltYm9scyk7IH0gcmV0dXJuIGtleXM7IH1cblxuZnVuY3Rpb24gX29iamVjdFNwcmVhZCh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXSAhPSBudWxsID8gYXJndW1lbnRzW2ldIDoge307IGlmIChpICUgMikgeyBvd25LZXlzKE9iamVjdChzb3VyY2UpLCB0cnVlKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsgX2RlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBzb3VyY2Vba2V5XSk7IH0pOyB9IGVsc2UgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoc291cmNlKSk7IH0gZWxzZSB7IG93bktleXMoT2JqZWN0KHNvdXJjZSkpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc291cmNlLCBrZXkpKTsgfSk7IH0gfSByZXR1cm4gdGFyZ2V0OyB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsgaWYgKGtleSBpbiBvYmopIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsgfSBlbHNlIHsgb2JqW2tleV0gPSB2YWx1ZTsgfSByZXR1cm4gb2JqOyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH1cblxuZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIF9zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcyk7IH1cblxuZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgX3NldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IG8uX19wcm90b19fID0gcDsgcmV0dXJuIG87IH07IHJldHVybiBfc2V0UHJvdG90eXBlT2YobywgcCk7IH1cblxuZnVuY3Rpb24gX2NyZWF0ZVN1cGVyKERlcml2ZWQpIHsgdmFyIGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCk7IHJldHVybiBmdW5jdGlvbiBfY3JlYXRlU3VwZXJJbnRlcm5hbCgpIHsgdmFyIFN1cGVyID0gX2dldFByb3RvdHlwZU9mKERlcml2ZWQpLCByZXN1bHQ7IGlmIChoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KSB7IHZhciBOZXdUYXJnZXQgPSBfZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3I7IHJlc3VsdCA9IFJlZmxlY3QuY29uc3RydWN0KFN1cGVyLCBhcmd1bWVudHMsIE5ld1RhcmdldCk7IH0gZWxzZSB7IHJlc3VsdCA9IFN1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH0gcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIHJlc3VsdCk7IH07IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoY2FsbCAmJiAoX3R5cGVvZihjYWxsKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkgeyByZXR1cm4gY2FsbDsgfSByZXR1cm4gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKTsgfVxuXG5mdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpIHsgaWYgKHNlbGYgPT09IHZvaWQgMCkgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIHNlbGY7IH1cblxuZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHsgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiIHx8ICFSZWZsZWN0LmNvbnN0cnVjdCkgcmV0dXJuIGZhbHNlOyBpZiAoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSkgcmV0dXJuIGZhbHNlOyBpZiAodHlwZW9mIFByb3h5ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB0cnVlOyB0cnkgeyBEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFJlZmxlY3QuY29uc3RydWN0KERhdGUsIFtdLCBmdW5jdGlvbiAoKSB7fSkpOyByZXR1cm4gdHJ1ZTsgfSBjYXRjaCAoZSkgeyByZXR1cm4gZmFsc2U7IH0gfVxuXG5mdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyByZXR1cm4gby5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pOyB9OyByZXR1cm4gX2dldFByb3RvdHlwZU9mKG8pOyB9XG5cbnZhciBQcmV2QXJyb3cgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9SZWFjdCRQdXJlQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhQcmV2QXJyb3csIF9SZWFjdCRQdXJlQ29tcG9uZW50KTtcblxuICB2YXIgX3N1cGVyID0gX2NyZWF0ZVN1cGVyKFByZXZBcnJvdyk7XG5cbiAgZnVuY3Rpb24gUHJldkFycm93KCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBQcmV2QXJyb3cpO1xuXG4gICAgcmV0dXJuIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKFByZXZBcnJvdywgW3tcbiAgICBrZXk6IFwiY2xpY2tIYW5kbGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNsaWNrSGFuZGxlcihvcHRpb25zLCBlKSB7XG4gICAgICBpZiAoZSkge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMucHJvcHMuY2xpY2tIYW5kbGVyKG9wdGlvbnMsIGUpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW5kZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgdmFyIHByZXZDbGFzc2VzID0ge1xuICAgICAgICBcInNsaWNrLWFycm93XCI6IHRydWUsXG4gICAgICAgIFwic2xpY2stcHJldlwiOiB0cnVlXG4gICAgICB9O1xuICAgICAgdmFyIHByZXZIYW5kbGVyID0gdGhpcy5jbGlja0hhbmRsZXIuYmluZCh0aGlzLCB7XG4gICAgICAgIG1lc3NhZ2U6IFwicHJldmlvdXNcIlxuICAgICAgfSk7XG5cbiAgICAgIGlmICghdGhpcy5wcm9wcy5pbmZpbml0ZSAmJiAodGhpcy5wcm9wcy5jdXJyZW50U2xpZGUgPT09IDAgfHwgdGhpcy5wcm9wcy5zbGlkZUNvdW50IDw9IHRoaXMucHJvcHMuc2xpZGVzVG9TaG93KSkge1xuICAgICAgICBwcmV2Q2xhc3Nlc1tcInNsaWNrLWRpc2FibGVkXCJdID0gdHJ1ZTtcbiAgICAgICAgcHJldkhhbmRsZXIgPSBudWxsO1xuICAgICAgfVxuXG4gICAgICB2YXIgcHJldkFycm93UHJvcHMgPSB7XG4gICAgICAgIGtleTogXCIwXCIsXG4gICAgICAgIFwiZGF0YS1yb2xlXCI6IFwibm9uZVwiLFxuICAgICAgICBjbGFzc05hbWU6ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKHByZXZDbGFzc2VzKSxcbiAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICBkaXNwbGF5OiBcImJsb2NrXCJcbiAgICAgICAgfSxcbiAgICAgICAgb25DbGljazogcHJldkhhbmRsZXJcbiAgICAgIH07XG4gICAgICB2YXIgY3VzdG9tUHJvcHMgPSB7XG4gICAgICAgIGN1cnJlbnRTbGlkZTogdGhpcy5wcm9wcy5jdXJyZW50U2xpZGUsXG4gICAgICAgIHNsaWRlQ291bnQ6IHRoaXMucHJvcHMuc2xpZGVDb3VudFxuICAgICAgfTtcbiAgICAgIHZhciBwcmV2QXJyb3c7XG5cbiAgICAgIGlmICh0aGlzLnByb3BzLnByZXZBcnJvdykge1xuICAgICAgICBwcmV2QXJyb3cgPSAvKiNfX1BVUkVfXyovX3JlYWN0W1wiZGVmYXVsdFwiXS5jbG9uZUVsZW1lbnQodGhpcy5wcm9wcy5wcmV2QXJyb3csIF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgcHJldkFycm93UHJvcHMpLCBjdXN0b21Qcm9wcykpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcHJldkFycm93ID0gLyojX19QVVJFX18qL19yZWFjdFtcImRlZmF1bHRcIl0uY3JlYXRlRWxlbWVudChcImJ1dHRvblwiLCBfZXh0ZW5kcyh7XG4gICAgICAgICAga2V5OiBcIjBcIixcbiAgICAgICAgICB0eXBlOiBcImJ1dHRvblwiXG4gICAgICAgIH0sIHByZXZBcnJvd1Byb3BzKSwgXCIgXCIsIFwiUHJldmlvdXNcIik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBwcmV2QXJyb3c7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIFByZXZBcnJvdztcbn0oX3JlYWN0W1wiZGVmYXVsdFwiXS5QdXJlQ29tcG9uZW50KTtcblxuZXhwb3J0cy5QcmV2QXJyb3cgPSBQcmV2QXJyb3c7XG5cbnZhciBOZXh0QXJyb3cgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9SZWFjdCRQdXJlQ29tcG9uZW50Mikge1xuICBfaW5oZXJpdHMoTmV4dEFycm93LCBfUmVhY3QkUHVyZUNvbXBvbmVudDIpO1xuXG4gIHZhciBfc3VwZXIyID0gX2NyZWF0ZVN1cGVyKE5leHRBcnJvdyk7XG5cbiAgZnVuY3Rpb24gTmV4dEFycm93KCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBOZXh0QXJyb3cpO1xuXG4gICAgcmV0dXJuIF9zdXBlcjIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhOZXh0QXJyb3csIFt7XG4gICAga2V5OiBcImNsaWNrSGFuZGxlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjbGlja0hhbmRsZXIob3B0aW9ucywgZSkge1xuICAgICAgaWYgKGUpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnByb3BzLmNsaWNrSGFuZGxlcihvcHRpb25zLCBlKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHZhciBuZXh0Q2xhc3NlcyA9IHtcbiAgICAgICAgXCJzbGljay1hcnJvd1wiOiB0cnVlLFxuICAgICAgICBcInNsaWNrLW5leHRcIjogdHJ1ZVxuICAgICAgfTtcbiAgICAgIHZhciBuZXh0SGFuZGxlciA9IHRoaXMuY2xpY2tIYW5kbGVyLmJpbmQodGhpcywge1xuICAgICAgICBtZXNzYWdlOiBcIm5leHRcIlxuICAgICAgfSk7XG5cbiAgICAgIGlmICghKDAsIF9pbm5lclNsaWRlclV0aWxzLmNhbkdvTmV4dCkodGhpcy5wcm9wcykpIHtcbiAgICAgICAgbmV4dENsYXNzZXNbXCJzbGljay1kaXNhYmxlZFwiXSA9IHRydWU7XG4gICAgICAgIG5leHRIYW5kbGVyID0gbnVsbDtcbiAgICAgIH1cblxuICAgICAgdmFyIG5leHRBcnJvd1Byb3BzID0ge1xuICAgICAgICBrZXk6IFwiMVwiLFxuICAgICAgICBcImRhdGEtcm9sZVwiOiBcIm5vbmVcIixcbiAgICAgICAgY2xhc3NOYW1lOiAoMCwgX2NsYXNzbmFtZXNbXCJkZWZhdWx0XCJdKShuZXh0Q2xhc3NlcyksXG4gICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgZGlzcGxheTogXCJibG9ja1wiXG4gICAgICAgIH0sXG4gICAgICAgIG9uQ2xpY2s6IG5leHRIYW5kbGVyXG4gICAgICB9O1xuICAgICAgdmFyIGN1c3RvbVByb3BzID0ge1xuICAgICAgICBjdXJyZW50U2xpZGU6IHRoaXMucHJvcHMuY3VycmVudFNsaWRlLFxuICAgICAgICBzbGlkZUNvdW50OiB0aGlzLnByb3BzLnNsaWRlQ291bnRcbiAgICAgIH07XG4gICAgICB2YXIgbmV4dEFycm93O1xuXG4gICAgICBpZiAodGhpcy5wcm9wcy5uZXh0QXJyb3cpIHtcbiAgICAgICAgbmV4dEFycm93ID0gLyojX19QVVJFX18qL19yZWFjdFtcImRlZmF1bHRcIl0uY2xvbmVFbGVtZW50KHRoaXMucHJvcHMubmV4dEFycm93LCBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIG5leHRBcnJvd1Byb3BzKSwgY3VzdG9tUHJvcHMpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5leHRBcnJvdyA9IC8qI19fUFVSRV9fKi9fcmVhY3RbXCJkZWZhdWx0XCJdLmNyZWF0ZUVsZW1lbnQoXCJidXR0b25cIiwgX2V4dGVuZHMoe1xuICAgICAgICAgIGtleTogXCIxXCIsXG4gICAgICAgICAgdHlwZTogXCJidXR0b25cIlxuICAgICAgICB9LCBuZXh0QXJyb3dQcm9wcyksIFwiIFwiLCBcIk5leHRcIik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBuZXh0QXJyb3c7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIE5leHRBcnJvdztcbn0oX3JlYWN0W1wiZGVmYXVsdFwiXS5QdXJlQ29tcG9uZW50KTtcblxuZXhwb3J0cy5OZXh0QXJyb3cgPSBOZXh0QXJyb3c7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/react-slick/lib/arrows.js\n"); + +/***/ }), + +/***/ "./node_modules/react-slick/lib/default-props.js": +/*!*******************************************************!*\ + !*** ./node_modules/react-slick/lib/default-props.js ***! + \*******************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar defaultProps = {\n accessibility: true,\n adaptiveHeight: false,\n afterChange: null,\n appendDots: function appendDots(dots) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"ul\", {\n style: {\n display: \"block\"\n }\n }, dots);\n },\n arrows: true,\n autoplay: false,\n autoplaySpeed: 3000,\n beforeChange: null,\n centerMode: false,\n centerPadding: \"50px\",\n className: \"\",\n cssEase: \"ease\",\n customPaging: function customPaging(i) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"button\", null, i + 1);\n },\n dots: false,\n dotsClass: \"slick-dots\",\n draggable: true,\n easing: \"linear\",\n edgeFriction: 0.35,\n fade: false,\n focusOnSelect: false,\n infinite: true,\n initialSlide: 0,\n lazyLoad: null,\n nextArrow: null,\n onEdge: null,\n onInit: null,\n onLazyLoadError: null,\n onReInit: null,\n pauseOnDotsHover: false,\n pauseOnFocus: false,\n pauseOnHover: true,\n prevArrow: null,\n responsive: null,\n rows: 1,\n rtl: false,\n slide: \"div\",\n slidesPerRow: 1,\n slidesToScroll: 1,\n slidesToShow: 1,\n speed: 500,\n swipe: true,\n swipeEvent: null,\n swipeToSlide: false,\n touchMove: true,\n touchThreshold: 5,\n useCSS: true,\n useTransform: true,\n variableWidth: false,\n vertical: false,\n waitForAnimate: true\n};\nvar _default = defaultProps;\nexports[\"default\"] = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2xpY2svbGliL2RlZmF1bHQtcHJvcHMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Ysa0JBQWtCOztBQUVsQixvQ0FBb0MsbUJBQU8sQ0FBQyw0Q0FBTzs7QUFFbkQsdUNBQXVDLHVDQUF1Qzs7QUFFOUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXNsaWNrL2xpYi9kZWZhdWx0LXByb3BzLmpzP2M5NTciXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcblxudmFyIF9yZWFjdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJlYWN0XCIpKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbnZhciBkZWZhdWx0UHJvcHMgPSB7XG4gIGFjY2Vzc2liaWxpdHk6IHRydWUsXG4gIGFkYXB0aXZlSGVpZ2h0OiBmYWxzZSxcbiAgYWZ0ZXJDaGFuZ2U6IG51bGwsXG4gIGFwcGVuZERvdHM6IGZ1bmN0aW9uIGFwcGVuZERvdHMoZG90cykge1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovX3JlYWN0W1wiZGVmYXVsdFwiXS5jcmVhdGVFbGVtZW50KFwidWxcIiwge1xuICAgICAgc3R5bGU6IHtcbiAgICAgICAgZGlzcGxheTogXCJibG9ja1wiXG4gICAgICB9XG4gICAgfSwgZG90cyk7XG4gIH0sXG4gIGFycm93czogdHJ1ZSxcbiAgYXV0b3BsYXk6IGZhbHNlLFxuICBhdXRvcGxheVNwZWVkOiAzMDAwLFxuICBiZWZvcmVDaGFuZ2U6IG51bGwsXG4gIGNlbnRlck1vZGU6IGZhbHNlLFxuICBjZW50ZXJQYWRkaW5nOiBcIjUwcHhcIixcbiAgY2xhc3NOYW1lOiBcIlwiLFxuICBjc3NFYXNlOiBcImVhc2VcIixcbiAgY3VzdG9tUGFnaW5nOiBmdW5jdGlvbiBjdXN0b21QYWdpbmcoaSkge1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovX3JlYWN0W1wiZGVmYXVsdFwiXS5jcmVhdGVFbGVtZW50KFwiYnV0dG9uXCIsIG51bGwsIGkgKyAxKTtcbiAgfSxcbiAgZG90czogZmFsc2UsXG4gIGRvdHNDbGFzczogXCJzbGljay1kb3RzXCIsXG4gIGRyYWdnYWJsZTogdHJ1ZSxcbiAgZWFzaW5nOiBcImxpbmVhclwiLFxuICBlZGdlRnJpY3Rpb246IDAuMzUsXG4gIGZhZGU6IGZhbHNlLFxuICBmb2N1c09uU2VsZWN0OiBmYWxzZSxcbiAgaW5maW5pdGU6IHRydWUsXG4gIGluaXRpYWxTbGlkZTogMCxcbiAgbGF6eUxvYWQ6IG51bGwsXG4gIG5leHRBcnJvdzogbnVsbCxcbiAgb25FZGdlOiBudWxsLFxuICBvbkluaXQ6IG51bGwsXG4gIG9uTGF6eUxvYWRFcnJvcjogbnVsbCxcbiAgb25SZUluaXQ6IG51bGwsXG4gIHBhdXNlT25Eb3RzSG92ZXI6IGZhbHNlLFxuICBwYXVzZU9uRm9jdXM6IGZhbHNlLFxuICBwYXVzZU9uSG92ZXI6IHRydWUsXG4gIHByZXZBcnJvdzogbnVsbCxcbiAgcmVzcG9uc2l2ZTogbnVsbCxcbiAgcm93czogMSxcbiAgcnRsOiBmYWxzZSxcbiAgc2xpZGU6IFwiZGl2XCIsXG4gIHNsaWRlc1BlclJvdzogMSxcbiAgc2xpZGVzVG9TY3JvbGw6IDEsXG4gIHNsaWRlc1RvU2hvdzogMSxcbiAgc3BlZWQ6IDUwMCxcbiAgc3dpcGU6IHRydWUsXG4gIHN3aXBlRXZlbnQ6IG51bGwsXG4gIHN3aXBlVG9TbGlkZTogZmFsc2UsXG4gIHRvdWNoTW92ZTogdHJ1ZSxcbiAgdG91Y2hUaHJlc2hvbGQ6IDUsXG4gIHVzZUNTUzogdHJ1ZSxcbiAgdXNlVHJhbnNmb3JtOiB0cnVlLFxuICB2YXJpYWJsZVdpZHRoOiBmYWxzZSxcbiAgdmVydGljYWw6IGZhbHNlLFxuICB3YWl0Rm9yQW5pbWF0ZTogdHJ1ZVxufTtcbnZhciBfZGVmYXVsdCA9IGRlZmF1bHRQcm9wcztcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gX2RlZmF1bHQ7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/react-slick/lib/default-props.js\n"); + +/***/ }), + +/***/ "./node_modules/react-slick/lib/dots.js": +/*!**********************************************!*\ + !*** ./node_modules/react-slick/lib/dots.js ***! + \**********************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.Dots = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _classnames = _interopRequireDefault(__webpack_require__(/*! classnames */ \"./node_modules/classnames/index.js\"));\n\nvar _innerSliderUtils = __webpack_require__(/*! ./utils/innerSliderUtils */ \"./node_modules/react-slick/lib/utils/innerSliderUtils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar getDotCount = function getDotCount(spec) {\n var dots;\n\n if (spec.infinite) {\n dots = Math.ceil(spec.slideCount / spec.slidesToScroll);\n } else {\n dots = Math.ceil((spec.slideCount - spec.slidesToShow) / spec.slidesToScroll) + 1;\n }\n\n return dots;\n};\n\nvar Dots = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Dots, _React$PureComponent);\n\n var _super = _createSuper(Dots);\n\n function Dots() {\n _classCallCheck(this, Dots);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Dots, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n // In Autoplay the focus stays on clicked button even after transition\n // to next slide. That only goes away by click somewhere outside\n e.preventDefault();\n this.props.clickHandler(options);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave,\n infinite = _this$props.infinite,\n slidesToScroll = _this$props.slidesToScroll,\n slidesToShow = _this$props.slidesToShow,\n slideCount = _this$props.slideCount,\n currentSlide = _this$props.currentSlide;\n var dotCount = getDotCount({\n slideCount: slideCount,\n slidesToScroll: slidesToScroll,\n slidesToShow: slidesToShow,\n infinite: infinite\n });\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n var dots = [];\n\n for (var i = 0; i < dotCount; i++) {\n var _rightBound = (i + 1) * slidesToScroll - 1;\n\n var rightBound = infinite ? _rightBound : (0, _innerSliderUtils.clamp)(_rightBound, 0, slideCount - 1);\n\n var _leftBound = rightBound - (slidesToScroll - 1);\n\n var leftBound = infinite ? _leftBound : (0, _innerSliderUtils.clamp)(_leftBound, 0, slideCount - 1);\n var className = (0, _classnames[\"default\"])({\n \"slick-active\": infinite ? currentSlide >= leftBound && currentSlide <= rightBound : currentSlide === leftBound\n });\n var dotOptions = {\n message: \"dots\",\n index: i,\n slidesToScroll: slidesToScroll,\n currentSlide: currentSlide\n };\n var onClick = this.clickHandler.bind(this, dotOptions);\n dots = dots.concat( /*#__PURE__*/_react[\"default\"].createElement(\"li\", {\n key: i,\n className: className\n }, /*#__PURE__*/_react[\"default\"].cloneElement(this.props.customPaging(i), {\n onClick: onClick\n })));\n }\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(this.props.appendDots(dots), _objectSpread({\n className: this.props.dotsClass\n }, mouseEvents));\n }\n }]);\n\n return Dots;\n}(_react[\"default\"].PureComponent);\n\nexports.Dots = Dots;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2xpY2svbGliL2RvdHMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsWUFBWTs7QUFFWixvQ0FBb0MsbUJBQU8sQ0FBQyw0Q0FBTzs7QUFFbkQseUNBQXlDLG1CQUFPLENBQUMsc0RBQVk7O0FBRTdELHdCQUF3QixtQkFBTyxDQUFDLDBGQUEwQjs7QUFFMUQsdUNBQXVDLHVDQUF1Qzs7QUFFOUUsd0JBQXdCLDJCQUEyQiwyRUFBMkUsa0NBQWtDLHdCQUF3QixPQUFPLGtDQUFrQyxtSUFBbUk7O0FBRXBXLDJDQUEyQyxnQ0FBZ0Msb0NBQW9DLG9EQUFvRCw4REFBOEQsaUVBQWlFLEdBQUcsa0NBQWtDOztBQUV2VSxpQ0FBaUMsZ0JBQWdCLHNCQUFzQixPQUFPLHVEQUF1RCxhQUFhLHVEQUF1RCw0Q0FBNEMsS0FBSyw2Q0FBNkMsNkVBQTZFLE9BQU8saURBQWlELG1GQUFtRixPQUFPOztBQUV0Z0IsNENBQTRDLGtCQUFrQixrQ0FBa0Msb0VBQW9FLEtBQUssT0FBTyxvQkFBb0I7O0FBRXBNLGtEQUFrRCwwQ0FBMEM7O0FBRTVGLDRDQUE0QyxnQkFBZ0Isa0JBQWtCLE9BQU8sMkJBQTJCLHdEQUF3RCxnQ0FBZ0MsdURBQXVEOztBQUUvUCw4REFBOEQsc0VBQXNFLDhEQUE4RDs7QUFFbE0sMkNBQTJDLCtEQUErRCw2RUFBNkUseUVBQXlFLGVBQWUsdURBQXVELEdBQUc7O0FBRXpVLGlDQUFpQyw0RUFBNEUsaUJBQWlCLGFBQWE7O0FBRTNJLGlDQUFpQyw2REFBNkQseUNBQXlDLDhDQUE4QyxpQ0FBaUMsbURBQW1ELDJEQUEyRCxPQUFPLHlDQUF5Qzs7QUFFcFgsa0RBQWtELDBFQUEwRSxlQUFlOztBQUUzSSx3Q0FBd0MsdUJBQXVCLHlGQUF5Rjs7QUFFeEosdUNBQXVDLHdFQUF3RSwwQ0FBMEMsOENBQThDLE1BQU0sdUVBQXVFLElBQUksZUFBZSxZQUFZOztBQUVuVCw4QkFBOEIsZ0dBQWdHLG1EQUFtRDs7QUFFakw7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxzQkFBc0IsY0FBYztBQUNwQzs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQSxTQUFTO0FBQ1Q7O0FBRUE7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLEdBQUc7O0FBRUg7QUFDQSxDQUFDOztBQUVELFlBQVkiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXNsaWNrL2xpYi9kb3RzLmpzP2VmYjMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLkRvdHMgPSB2b2lkIDA7XG5cbnZhciBfcmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbnZhciBfY2xhc3NuYW1lcyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcImNsYXNzbmFtZXNcIikpO1xuXG52YXIgX2lubmVyU2xpZGVyVXRpbHMgPSByZXF1aXJlKFwiLi91dGlscy9pbm5lclNsaWRlclV0aWxzXCIpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiOyBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiB0eXBlb2Ygb2JqOyB9OyB9IGVsc2UgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7IH07IH0gcmV0dXJuIF90eXBlb2Yob2JqKTsgfVxuXG5mdW5jdGlvbiBvd25LZXlzKG9iamVjdCwgZW51bWVyYWJsZU9ubHkpIHsgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhvYmplY3QpOyBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scykgeyB2YXIgc3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMob2JqZWN0KTsgaWYgKGVudW1lcmFibGVPbmx5KSBzeW1ib2xzID0gc3ltYm9scy5maWx0ZXIoZnVuY3Rpb24gKHN5bSkgeyByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmplY3QsIHN5bSkuZW51bWVyYWJsZTsgfSk7IGtleXMucHVzaC5hcHBseShrZXlzLCBzeW1ib2xzKTsgfSByZXR1cm4ga2V5czsgfVxuXG5mdW5jdGlvbiBfb2JqZWN0U3ByZWFkKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldICE9IG51bGwgPyBhcmd1bWVudHNbaV0gOiB7fTsgaWYgKGkgJSAyKSB7IG93bktleXMoT2JqZWN0KHNvdXJjZSksIHRydWUpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgeyBfZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHNvdXJjZVtrZXldKTsgfSk7IH0gZWxzZSBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMpIHsgT2JqZWN0LmRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhzb3VyY2UpKTsgfSBlbHNlIHsgb3duS2V5cyhPYmplY3Qoc291cmNlKSkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzb3VyY2UsIGtleSkpOyB9KTsgfSB9IHJldHVybiB0YXJnZXQ7IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KG9iaiwga2V5LCB2YWx1ZSkgeyBpZiAoa2V5IGluIG9iaikgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHsgdmFsdWU6IHZhbHVlLCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlIH0pOyB9IGVsc2UgeyBvYmpba2V5XSA9IHZhbHVlOyB9IHJldHVybiBvYmo7IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfVxuXG5mdW5jdGlvbiBfY3JlYXRlQ2xhc3MoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgX3NldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKTsgfVxuXG5mdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBfc2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgby5fX3Byb3RvX18gPSBwOyByZXR1cm4gbzsgfTsgcmV0dXJuIF9zZXRQcm90b3R5cGVPZihvLCBwKTsgfVxuXG5mdW5jdGlvbiBfY3JlYXRlU3VwZXIoRGVyaXZlZCkgeyB2YXIgaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCA9IF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKTsgcmV0dXJuIGZ1bmN0aW9uIF9jcmVhdGVTdXBlckludGVybmFsKCkgeyB2YXIgU3VwZXIgPSBfZ2V0UHJvdG90eXBlT2YoRGVyaXZlZCksIHJlc3VsdDsgaWYgKGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QpIHsgdmFyIE5ld1RhcmdldCA9IF9nZXRQcm90b3R5cGVPZih0aGlzKS5jb25zdHJ1Y3RvcjsgcmVzdWx0ID0gUmVmbGVjdC5jb25zdHJ1Y3QoU3VwZXIsIGFyZ3VtZW50cywgTmV3VGFyZ2V0KTsgfSBlbHNlIHsgcmVzdWx0ID0gU3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfSByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgcmVzdWx0KTsgfTsgfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmIChjYWxsICYmIChfdHlwZW9mKGNhbGwpID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpKSB7IHJldHVybiBjYWxsOyB9IHJldHVybiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpOyB9XG5cbmZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikgeyBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gc2VsZjsgfVxuXG5mdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkgeyBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwidW5kZWZpbmVkXCIgfHwgIVJlZmxlY3QuY29uc3RydWN0KSByZXR1cm4gZmFsc2U7IGlmIChSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKSByZXR1cm4gZmFsc2U7IGlmICh0eXBlb2YgUHJveHkgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHRydWU7IHRyeSB7IERhdGUucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoRGF0ZSwgW10sIGZ1bmN0aW9uICgpIHt9KSk7IHJldHVybiB0cnVlOyB9IGNhdGNoIChlKSB7IHJldHVybiBmYWxzZTsgfSB9XG5cbmZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IF9nZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5nZXRQcm90b3R5cGVPZiA6IGZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IHJldHVybiBvLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2Yobyk7IH07IHJldHVybiBfZ2V0UHJvdG90eXBlT2Yobyk7IH1cblxudmFyIGdldERvdENvdW50ID0gZnVuY3Rpb24gZ2V0RG90Q291bnQoc3BlYykge1xuICB2YXIgZG90cztcblxuICBpZiAoc3BlYy5pbmZpbml0ZSkge1xuICAgIGRvdHMgPSBNYXRoLmNlaWwoc3BlYy5zbGlkZUNvdW50IC8gc3BlYy5zbGlkZXNUb1Njcm9sbCk7XG4gIH0gZWxzZSB7XG4gICAgZG90cyA9IE1hdGguY2VpbCgoc3BlYy5zbGlkZUNvdW50IC0gc3BlYy5zbGlkZXNUb1Nob3cpIC8gc3BlYy5zbGlkZXNUb1Njcm9sbCkgKyAxO1xuICB9XG5cbiAgcmV0dXJuIGRvdHM7XG59O1xuXG52YXIgRG90cyA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX1JlYWN0JFB1cmVDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKERvdHMsIF9SZWFjdCRQdXJlQ29tcG9uZW50KTtcblxuICB2YXIgX3N1cGVyID0gX2NyZWF0ZVN1cGVyKERvdHMpO1xuXG4gIGZ1bmN0aW9uIERvdHMoKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIERvdHMpO1xuXG4gICAgcmV0dXJuIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKERvdHMsIFt7XG4gICAga2V5OiBcImNsaWNrSGFuZGxlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjbGlja0hhbmRsZXIob3B0aW9ucywgZSkge1xuICAgICAgLy8gSW4gQXV0b3BsYXkgdGhlIGZvY3VzIHN0YXlzIG9uIGNsaWNrZWQgYnV0dG9uIGV2ZW4gYWZ0ZXIgdHJhbnNpdGlvblxuICAgICAgLy8gdG8gbmV4dCBzbGlkZS4gVGhhdCBvbmx5IGdvZXMgYXdheSBieSBjbGljayBzb21ld2hlcmUgb3V0c2lkZVxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5wcm9wcy5jbGlja0hhbmRsZXIob3B0aW9ucyk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgX3RoaXMkcHJvcHMgPSB0aGlzLnByb3BzLFxuICAgICAgICAgIG9uTW91c2VFbnRlciA9IF90aGlzJHByb3BzLm9uTW91c2VFbnRlcixcbiAgICAgICAgICBvbk1vdXNlT3ZlciA9IF90aGlzJHByb3BzLm9uTW91c2VPdmVyLFxuICAgICAgICAgIG9uTW91c2VMZWF2ZSA9IF90aGlzJHByb3BzLm9uTW91c2VMZWF2ZSxcbiAgICAgICAgICBpbmZpbml0ZSA9IF90aGlzJHByb3BzLmluZmluaXRlLFxuICAgICAgICAgIHNsaWRlc1RvU2Nyb2xsID0gX3RoaXMkcHJvcHMuc2xpZGVzVG9TY3JvbGwsXG4gICAgICAgICAgc2xpZGVzVG9TaG93ID0gX3RoaXMkcHJvcHMuc2xpZGVzVG9TaG93LFxuICAgICAgICAgIHNsaWRlQ291bnQgPSBfdGhpcyRwcm9wcy5zbGlkZUNvdW50LFxuICAgICAgICAgIGN1cnJlbnRTbGlkZSA9IF90aGlzJHByb3BzLmN1cnJlbnRTbGlkZTtcbiAgICAgIHZhciBkb3RDb3VudCA9IGdldERvdENvdW50KHtcbiAgICAgICAgc2xpZGVDb3VudDogc2xpZGVDb3VudCxcbiAgICAgICAgc2xpZGVzVG9TY3JvbGw6IHNsaWRlc1RvU2Nyb2xsLFxuICAgICAgICBzbGlkZXNUb1Nob3c6IHNsaWRlc1RvU2hvdyxcbiAgICAgICAgaW5maW5pdGU6IGluZmluaXRlXG4gICAgICB9KTtcbiAgICAgIHZhciBtb3VzZUV2ZW50cyA9IHtcbiAgICAgICAgb25Nb3VzZUVudGVyOiBvbk1vdXNlRW50ZXIsXG4gICAgICAgIG9uTW91c2VPdmVyOiBvbk1vdXNlT3ZlcixcbiAgICAgICAgb25Nb3VzZUxlYXZlOiBvbk1vdXNlTGVhdmVcbiAgICAgIH07XG4gICAgICB2YXIgZG90cyA9IFtdO1xuXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRvdENvdW50OyBpKyspIHtcbiAgICAgICAgdmFyIF9yaWdodEJvdW5kID0gKGkgKyAxKSAqIHNsaWRlc1RvU2Nyb2xsIC0gMTtcblxuICAgICAgICB2YXIgcmlnaHRCb3VuZCA9IGluZmluaXRlID8gX3JpZ2h0Qm91bmQgOiAoMCwgX2lubmVyU2xpZGVyVXRpbHMuY2xhbXApKF9yaWdodEJvdW5kLCAwLCBzbGlkZUNvdW50IC0gMSk7XG5cbiAgICAgICAgdmFyIF9sZWZ0Qm91bmQgPSByaWdodEJvdW5kIC0gKHNsaWRlc1RvU2Nyb2xsIC0gMSk7XG5cbiAgICAgICAgdmFyIGxlZnRCb3VuZCA9IGluZmluaXRlID8gX2xlZnRCb3VuZCA6ICgwLCBfaW5uZXJTbGlkZXJVdGlscy5jbGFtcCkoX2xlZnRCb3VuZCwgMCwgc2xpZGVDb3VudCAtIDEpO1xuICAgICAgICB2YXIgY2xhc3NOYW1lID0gKDAsIF9jbGFzc25hbWVzW1wiZGVmYXVsdFwiXSkoe1xuICAgICAgICAgIFwic2xpY2stYWN0aXZlXCI6IGluZmluaXRlID8gY3VycmVudFNsaWRlID49IGxlZnRCb3VuZCAmJiBjdXJyZW50U2xpZGUgPD0gcmlnaHRCb3VuZCA6IGN1cnJlbnRTbGlkZSA9PT0gbGVmdEJvdW5kXG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgZG90T3B0aW9ucyA9IHtcbiAgICAgICAgICBtZXNzYWdlOiBcImRvdHNcIixcbiAgICAgICAgICBpbmRleDogaSxcbiAgICAgICAgICBzbGlkZXNUb1Njcm9sbDogc2xpZGVzVG9TY3JvbGwsXG4gICAgICAgICAgY3VycmVudFNsaWRlOiBjdXJyZW50U2xpZGVcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIG9uQ2xpY2sgPSB0aGlzLmNsaWNrSGFuZGxlci5iaW5kKHRoaXMsIGRvdE9wdGlvbnMpO1xuICAgICAgICBkb3RzID0gZG90cy5jb25jYXQoIC8qI19fUFVSRV9fKi9fcmVhY3RbXCJkZWZhdWx0XCJdLmNyZWF0ZUVsZW1lbnQoXCJsaVwiLCB7XG4gICAgICAgICAga2V5OiBpLFxuICAgICAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lXG4gICAgICAgIH0sIC8qI19fUFVSRV9fKi9fcmVhY3RbXCJkZWZhdWx0XCJdLmNsb25lRWxlbWVudCh0aGlzLnByb3BzLmN1c3RvbVBhZ2luZyhpKSwge1xuICAgICAgICAgIG9uQ2xpY2s6IG9uQ2xpY2tcbiAgICAgICAgfSkpKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9fcmVhY3RbXCJkZWZhdWx0XCJdLmNsb25lRWxlbWVudCh0aGlzLnByb3BzLmFwcGVuZERvdHMoZG90cyksIF9vYmplY3RTcHJlYWQoe1xuICAgICAgICBjbGFzc05hbWU6IHRoaXMucHJvcHMuZG90c0NsYXNzXG4gICAgICB9LCBtb3VzZUV2ZW50cykpO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBEb3RzO1xufShfcmVhY3RbXCJkZWZhdWx0XCJdLlB1cmVDb21wb25lbnQpO1xuXG5leHBvcnRzLkRvdHMgPSBEb3RzOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-slick/lib/dots.js\n"); + +/***/ }), + +/***/ "./node_modules/react-slick/lib/index.js": +/*!***********************************************!*\ + !*** ./node_modules/react-slick/lib/index.js ***! + \***********************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _slider = _interopRequireDefault(__webpack_require__(/*! ./slider */ \"./node_modules/react-slick/lib/slider.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _default = _slider[\"default\"];\nexports[\"default\"] = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2xpY2svbGliL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGtCQUFrQjs7QUFFbEIscUNBQXFDLG1CQUFPLENBQUMsMERBQVU7O0FBRXZELHVDQUF1Qyx1Q0FBdUM7O0FBRTlFO0FBQ0Esa0JBQWtCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zbGljay9saWIvaW5kZXguanM/YTA3NCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xuXG52YXIgX3NsaWRlciA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vc2xpZGVyXCIpKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbnZhciBfZGVmYXVsdCA9IF9zbGlkZXJbXCJkZWZhdWx0XCJdO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-slick/lib/index.js\n"); + +/***/ }), + +/***/ "./node_modules/react-slick/lib/initial-state.js": +/*!*******************************************************!*\ + !*** ./node_modules/react-slick/lib/initial-state.js ***! + \*******************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\nvar initialState = {\n animating: false,\n autoplaying: null,\n currentDirection: 0,\n currentLeft: null,\n currentSlide: 0,\n direction: 1,\n dragging: false,\n edgeDragged: false,\n initialized: false,\n lazyLoadedList: [],\n listHeight: null,\n listWidth: null,\n scrolling: false,\n slideCount: null,\n slideHeight: null,\n slideWidth: null,\n swipeLeft: null,\n swiped: false,\n // used by swipeEvent. differentites between touch and swipe.\n swiping: false,\n touchObject: {\n startX: 0,\n startY: 0,\n curX: 0,\n curY: 0\n },\n trackStyle: {},\n trackWidth: 0,\n targetSlide: 0\n};\nvar _default = initialState;\nexports[\"default\"] = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2xpY2svbGliL2luaXRpYWwtc3RhdGUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Ysa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0gsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zbGljay9saWIvaW5pdGlhbC1zdGF0ZS5qcz82MzU2Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG52YXIgaW5pdGlhbFN0YXRlID0ge1xuICBhbmltYXRpbmc6IGZhbHNlLFxuICBhdXRvcGxheWluZzogbnVsbCxcbiAgY3VycmVudERpcmVjdGlvbjogMCxcbiAgY3VycmVudExlZnQ6IG51bGwsXG4gIGN1cnJlbnRTbGlkZTogMCxcbiAgZGlyZWN0aW9uOiAxLFxuICBkcmFnZ2luZzogZmFsc2UsXG4gIGVkZ2VEcmFnZ2VkOiBmYWxzZSxcbiAgaW5pdGlhbGl6ZWQ6IGZhbHNlLFxuICBsYXp5TG9hZGVkTGlzdDogW10sXG4gIGxpc3RIZWlnaHQ6IG51bGwsXG4gIGxpc3RXaWR0aDogbnVsbCxcbiAgc2Nyb2xsaW5nOiBmYWxzZSxcbiAgc2xpZGVDb3VudDogbnVsbCxcbiAgc2xpZGVIZWlnaHQ6IG51bGwsXG4gIHNsaWRlV2lkdGg6IG51bGwsXG4gIHN3aXBlTGVmdDogbnVsbCxcbiAgc3dpcGVkOiBmYWxzZSxcbiAgLy8gdXNlZCBieSBzd2lwZUV2ZW50LiBkaWZmZXJlbnRpdGVzIGJldHdlZW4gdG91Y2ggYW5kIHN3aXBlLlxuICBzd2lwaW5nOiBmYWxzZSxcbiAgdG91Y2hPYmplY3Q6IHtcbiAgICBzdGFydFg6IDAsXG4gICAgc3RhcnRZOiAwLFxuICAgIGN1clg6IDAsXG4gICAgY3VyWTogMFxuICB9LFxuICB0cmFja1N0eWxlOiB7fSxcbiAgdHJhY2tXaWR0aDogMCxcbiAgdGFyZ2V0U2xpZGU6IDBcbn07XG52YXIgX2RlZmF1bHQgPSBpbml0aWFsU3RhdGU7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IF9kZWZhdWx0OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-slick/lib/initial-state.js\n"); + +/***/ }), + +/***/ "./node_modules/react-slick/lib/inner-slider.js": +/*!******************************************************!*\ + !*** ./node_modules/react-slick/lib/inner-slider.js ***! + \******************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.InnerSlider = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _initialState = _interopRequireDefault(__webpack_require__(/*! ./initial-state */ \"./node_modules/react-slick/lib/initial-state.js\"));\n\nvar _lodash = _interopRequireDefault(__webpack_require__(/*! lodash.debounce */ \"./node_modules/lodash.debounce/index.js\"));\n\nvar _classnames = _interopRequireDefault(__webpack_require__(/*! classnames */ \"./node_modules/classnames/index.js\"));\n\nvar _innerSliderUtils = __webpack_require__(/*! ./utils/innerSliderUtils */ \"./node_modules/react-slick/lib/utils/innerSliderUtils.js\");\n\nvar _track = __webpack_require__(/*! ./track */ \"./node_modules/react-slick/lib/track.js\");\n\nvar _dots = __webpack_require__(/*! ./dots */ \"./node_modules/react-slick/lib/dots.js\");\n\nvar _arrows = __webpack_require__(/*! ./arrows */ \"./node_modules/react-slick/lib/arrows.js\");\n\nvar _resizeObserverPolyfill = _interopRequireDefault(__webpack_require__(/*! resize-observer-polyfill */ \"./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar InnerSlider = /*#__PURE__*/function (_React$Component) {\n _inherits(InnerSlider, _React$Component);\n\n var _super = _createSuper(InnerSlider);\n\n function InnerSlider(props) {\n var _this;\n\n _classCallCheck(this, InnerSlider);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"listRefHandler\", function (ref) {\n return _this.list = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"trackRefHandler\", function (ref) {\n return _this.track = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"adaptHeight\", function () {\n if (_this.props.adaptiveHeight && _this.list) {\n var elem = _this.list.querySelector(\"[data-index=\\\"\".concat(_this.state.currentSlide, \"\\\"]\"));\n\n _this.list.style.height = (0, _innerSliderUtils.getHeight)(elem) + \"px\";\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentDidMount\", function () {\n _this.props.onInit && _this.props.onInit();\n\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n }\n\n var spec = _objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props);\n\n _this.updateState(spec, true, function () {\n _this.adaptHeight();\n\n _this.props.autoplay && _this.autoPlay(\"update\");\n });\n\n if (_this.props.lazyLoad === \"progressive\") {\n _this.lazyLoadTimer = setInterval(_this.progressiveLazyLoad, 1000);\n }\n\n _this.ro = new _resizeObserverPolyfill[\"default\"](function () {\n if (_this.state.animating) {\n _this.onWindowResized(false); // don't set trackStyle hence don't break animation\n\n\n _this.callbackTimers.push(setTimeout(function () {\n return _this.onWindowResized();\n }, _this.props.speed));\n } else {\n _this.onWindowResized();\n }\n });\n\n _this.ro.observe(_this.list);\n\n document.querySelectorAll && Array.prototype.forEach.call(document.querySelectorAll(\".slick-slide\"), function (slide) {\n slide.onfocus = _this.props.pauseOnFocus ? _this.onSlideFocus : null;\n slide.onblur = _this.props.pauseOnFocus ? _this.onSlideBlur : null;\n });\n\n if (window.addEventListener) {\n window.addEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.attachEvent(\"onresize\", _this.onWindowResized);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentWillUnmount\", function () {\n if (_this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n }\n\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n }\n\n if (_this.callbackTimers.length) {\n _this.callbackTimers.forEach(function (timer) {\n return clearTimeout(timer);\n });\n\n _this.callbackTimers = [];\n }\n\n if (window.addEventListener) {\n window.removeEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.detachEvent(\"onresize\", _this.onWindowResized);\n }\n\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n\n _this.ro.disconnect();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentDidUpdate\", function (prevProps) {\n _this.checkImagesLoad();\n\n _this.props.onReInit && _this.props.onReInit();\n\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n } // if (this.props.onLazyLoad) {\n // this.props.onLazyLoad([leftMostSlide])\n // }\n\n\n _this.adaptHeight();\n\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n\n var setTrackStyle = _this.didPropsChange(prevProps);\n\n setTrackStyle && _this.updateState(spec, setTrackStyle, function () {\n if (_this.state.currentSlide >= _react[\"default\"].Children.count(_this.props.children)) {\n _this.changeSlide({\n message: \"index\",\n index: _react[\"default\"].Children.count(_this.props.children) - _this.props.slidesToShow,\n currentSlide: _this.state.currentSlide\n });\n }\n\n if (_this.props.autoplay) {\n _this.autoPlay(\"update\");\n } else {\n _this.pause(\"paused\");\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onWindowResized\", function (setTrackStyle) {\n if (_this.debouncedResize) _this.debouncedResize.cancel();\n _this.debouncedResize = (0, _lodash[\"default\"])(function () {\n return _this.resizeWindow(setTrackStyle);\n }, 50);\n\n _this.debouncedResize();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"resizeWindow\", function () {\n var setTrackStyle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var isTrackMounted = Boolean(_this.track && _this.track.node); // prevent warning: setting state on unmounted component (server side rendering)\n\n if (!isTrackMounted) return;\n\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n\n _this.updateState(spec, setTrackStyle, function () {\n if (_this.props.autoplay) _this.autoPlay(\"update\");else _this.pause(\"paused\");\n }); // animating state should be cleared while resizing, otherwise autoplay stops working\n\n\n _this.setState({\n animating: false\n });\n\n clearTimeout(_this.animationEndCallback);\n delete _this.animationEndCallback;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updateState\", function (spec, setTrackStyle, callback) {\n var updatedState = (0, _innerSliderUtils.initializedState)(spec);\n spec = _objectSpread(_objectSpread(_objectSpread({}, spec), updatedState), {}, {\n slideIndex: updatedState.currentSlide\n });\n var targetLeft = (0, _innerSliderUtils.getTrackLeft)(spec);\n spec = _objectSpread(_objectSpread({}, spec), {}, {\n left: targetLeft\n });\n var trackStyle = (0, _innerSliderUtils.getTrackCSS)(spec);\n\n if (setTrackStyle || _react[\"default\"].Children.count(_this.props.children) !== _react[\"default\"].Children.count(spec.children)) {\n updatedState[\"trackStyle\"] = trackStyle;\n }\n\n _this.setState(updatedState, callback);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ssrInit\", function () {\n if (_this.props.variableWidth) {\n var _trackWidth = 0,\n _trackLeft = 0;\n var childrenWidths = [];\n var preClones = (0, _innerSliderUtils.getPreClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n var postClones = (0, _innerSliderUtils.getPostClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n\n _this.props.children.forEach(function (child) {\n childrenWidths.push(child.props.style.width);\n _trackWidth += child.props.style.width;\n });\n\n for (var i = 0; i < preClones; i++) {\n _trackLeft += childrenWidths[childrenWidths.length - 1 - i];\n _trackWidth += childrenWidths[childrenWidths.length - 1 - i];\n }\n\n for (var _i = 0; _i < postClones; _i++) {\n _trackWidth += childrenWidths[_i];\n }\n\n for (var _i2 = 0; _i2 < _this.state.currentSlide; _i2++) {\n _trackLeft += childrenWidths[_i2];\n }\n\n var _trackStyle = {\n width: _trackWidth + \"px\",\n left: -_trackLeft + \"px\"\n };\n\n if (_this.props.centerMode) {\n var currentWidth = \"\".concat(childrenWidths[_this.state.currentSlide], \"px\");\n _trackStyle.left = \"calc(\".concat(_trackStyle.left, \" + (100% - \").concat(currentWidth, \") / 2 ) \");\n }\n\n return {\n trackStyle: _trackStyle\n };\n }\n\n var childrenCount = _react[\"default\"].Children.count(_this.props.children);\n\n var spec = _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: childrenCount\n });\n\n var slideCount = (0, _innerSliderUtils.getPreClones)(spec) + (0, _innerSliderUtils.getPostClones)(spec) + childrenCount;\n var trackWidth = 100 / _this.props.slidesToShow * slideCount;\n var slideWidth = 100 / slideCount;\n var trackLeft = -slideWidth * ((0, _innerSliderUtils.getPreClones)(spec) + _this.state.currentSlide) * trackWidth / 100;\n\n if (_this.props.centerMode) {\n trackLeft += (100 - slideWidth * trackWidth / 100) / 2;\n }\n\n var trackStyle = {\n width: trackWidth + \"%\",\n left: trackLeft + \"%\"\n };\n return {\n slideWidth: slideWidth + \"%\",\n trackStyle: trackStyle\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), \"checkImagesLoad\", function () {\n var images = _this.list && _this.list.querySelectorAll && _this.list.querySelectorAll(\".slick-slide img\") || [];\n var imagesCount = images.length,\n loadedCount = 0;\n Array.prototype.forEach.call(images, function (image) {\n var handler = function handler() {\n return ++loadedCount && loadedCount >= imagesCount && _this.onWindowResized();\n };\n\n if (!image.onclick) {\n image.onclick = function () {\n return image.parentNode.focus();\n };\n } else {\n var prevClickHandler = image.onclick;\n\n image.onclick = function () {\n prevClickHandler();\n image.parentNode.focus();\n };\n }\n\n if (!image.onload) {\n if (_this.props.lazyLoad) {\n image.onload = function () {\n _this.adaptHeight();\n\n _this.callbackTimers.push(setTimeout(_this.onWindowResized, _this.props.speed));\n };\n } else {\n image.onload = handler;\n\n image.onerror = function () {\n handler();\n _this.props.onLazyLoadError && _this.props.onLazyLoadError();\n };\n }\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"progressiveLazyLoad\", function () {\n var slidesToLoad = [];\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n for (var index = _this.state.currentSlide; index < _this.state.slideCount + (0, _innerSliderUtils.getPostClones)(spec); index++) {\n if (_this.state.lazyLoadedList.indexOf(index) < 0) {\n slidesToLoad.push(index);\n break;\n }\n }\n\n for (var _index = _this.state.currentSlide - 1; _index >= -(0, _innerSliderUtils.getPreClones)(spec); _index--) {\n if (_this.state.lazyLoadedList.indexOf(_index) < 0) {\n slidesToLoad.push(_index);\n break;\n }\n }\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (state) {\n return {\n lazyLoadedList: state.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n } else {\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n delete _this.lazyLoadTimer;\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slideHandler\", function (index) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var _this$props = _this.props,\n asNavFor = _this$props.asNavFor,\n beforeChange = _this$props.beforeChange,\n onLazyLoad = _this$props.onLazyLoad,\n speed = _this$props.speed,\n afterChange = _this$props.afterChange; // capture currentslide before state is updated\n\n var currentSlide = _this.state.currentSlide;\n\n var _slideHandler = (0, _innerSliderUtils.slideHandler)(_objectSpread(_objectSpread(_objectSpread({\n index: index\n }, _this.props), _this.state), {}, {\n trackRef: _this.track,\n useCSS: _this.props.useCSS && !dontAnimate\n })),\n state = _slideHandler.state,\n nextState = _slideHandler.nextState;\n\n if (!state) return;\n beforeChange && beforeChange(currentSlide, state.currentSlide);\n var slidesToLoad = state.lazyLoadedList.filter(function (value) {\n return _this.state.lazyLoadedList.indexOf(value) < 0;\n });\n onLazyLoad && slidesToLoad.length > 0 && onLazyLoad(slidesToLoad);\n\n if (!_this.props.waitForAnimate && _this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n afterChange && afterChange(currentSlide);\n delete _this.animationEndCallback;\n }\n\n _this.setState(state, function () {\n // asNavForIndex check is to avoid recursive calls of slideHandler in waitForAnimate=false mode\n if (asNavFor && _this.asNavForIndex !== index) {\n _this.asNavForIndex = index;\n asNavFor.innerSlider.slideHandler(index);\n }\n\n if (!nextState) return;\n _this.animationEndCallback = setTimeout(function () {\n var animating = nextState.animating,\n firstBatch = _objectWithoutProperties(nextState, [\"animating\"]);\n\n _this.setState(firstBatch, function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.setState({\n animating: animating\n });\n }, 10));\n\n afterChange && afterChange(state.currentSlide);\n delete _this.animationEndCallback;\n });\n }, speed);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"changeSlide\", function (options) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n var targetSlide = (0, _innerSliderUtils.changeSlide)(spec, options);\n if (targetSlide !== 0 && !targetSlide) return;\n\n if (dontAnimate === true) {\n _this.slideHandler(targetSlide, dontAnimate);\n } else {\n _this.slideHandler(targetSlide);\n }\n\n _this.props.autoplay && _this.autoPlay(\"update\");\n\n if (_this.props.focusOnSelect) {\n var nodes = _this.list.querySelectorAll(\".slick-current\");\n\n nodes[0] && nodes[0].focus();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"clickHandler\", function (e) {\n if (_this.clickable === false) {\n e.stopPropagation();\n e.preventDefault();\n }\n\n _this.clickable = true;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"keyHandler\", function (e) {\n var dir = (0, _innerSliderUtils.keyHandler)(e, _this.props.accessibility, _this.props.rtl);\n dir !== \"\" && _this.changeSlide({\n message: dir\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"selectHandler\", function (options) {\n _this.changeSlide(options);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"disableBodyScroll\", function () {\n var preventDefault = function preventDefault(e) {\n e = e || window.event;\n if (e.preventDefault) e.preventDefault();\n e.returnValue = false;\n };\n\n window.ontouchmove = preventDefault;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"enableBodyScroll\", function () {\n window.ontouchmove = null;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeStart\", function (e) {\n if (_this.props.verticalSwiping) {\n _this.disableBodyScroll();\n }\n\n var state = (0, _innerSliderUtils.swipeStart)(e, _this.props.swipe, _this.props.draggable);\n state !== \"\" && _this.setState(state);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeMove\", function (e) {\n var state = (0, _innerSliderUtils.swipeMove)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n\n if (state[\"swiping\"]) {\n _this.clickable = false;\n }\n\n _this.setState(state);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeEnd\", function (e) {\n var state = (0, _innerSliderUtils.swipeEnd)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n var triggerSlideHandler = state[\"triggerSlideHandler\"];\n delete state[\"triggerSlideHandler\"];\n\n _this.setState(state);\n\n if (triggerSlideHandler === undefined) return;\n\n _this.slideHandler(triggerSlideHandler);\n\n if (_this.props.verticalSwiping) {\n _this.enableBodyScroll();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"touchEnd\", function (e) {\n _this.swipeEnd(e);\n\n _this.clickable = true;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n // this and fellow methods are wrapped in setTimeout\n // to make sure initialize setState has happened before\n // any of such methods are called\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"previous\"\n });\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"next\"\n });\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n slide = Number(slide);\n if (isNaN(slide)) return \"\";\n\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"index\",\n index: slide,\n currentSlide: _this.state.currentSlide\n }, dontAnimate);\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"play\", function () {\n var nextIndex;\n\n if (_this.props.rtl) {\n nextIndex = _this.state.currentSlide - _this.props.slidesToScroll;\n } else {\n if ((0, _innerSliderUtils.canGoNext)(_objectSpread(_objectSpread({}, _this.props), _this.state))) {\n nextIndex = _this.state.currentSlide + _this.props.slidesToScroll;\n } else {\n return false;\n }\n }\n\n _this.slideHandler(nextIndex);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"autoPlay\", function (playType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n\n var autoplaying = _this.state.autoplaying;\n\n if (playType === \"update\") {\n if (autoplaying === \"hovered\" || autoplaying === \"focused\" || autoplaying === \"paused\") {\n return;\n }\n } else if (playType === \"leave\") {\n if (autoplaying === \"paused\" || autoplaying === \"focused\") {\n return;\n }\n } else if (playType === \"blur\") {\n if (autoplaying === \"paused\" || autoplaying === \"hovered\") {\n return;\n }\n }\n\n _this.autoplayTimer = setInterval(_this.play, _this.props.autoplaySpeed + 50);\n\n _this.setState({\n autoplaying: \"playing\"\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"pause\", function (pauseType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n _this.autoplayTimer = null;\n }\n\n var autoplaying = _this.state.autoplaying;\n\n if (pauseType === \"paused\") {\n _this.setState({\n autoplaying: \"paused\"\n });\n } else if (pauseType === \"focused\") {\n if (autoplaying === \"hovered\" || autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"focused\"\n });\n }\n } else {\n // pauseType is 'hovered'\n if (autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"hovered\"\n });\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDotsOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDotsLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTrackOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTrackLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSlideFocus\", function () {\n return _this.props.autoplay && _this.pause(\"focused\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSlideBlur\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"focused\" && _this.autoPlay(\"blur\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"render\", function () {\n var className = (0, _classnames[\"default\"])(\"slick-slider\", _this.props.className, {\n \"slick-vertical\": _this.props.vertical,\n \"slick-initialized\": true\n });\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n var trackProps = (0, _innerSliderUtils.extractObject)(spec, [\"fade\", \"cssEase\", \"speed\", \"infinite\", \"centerMode\", \"focusOnSelect\", \"currentSlide\", \"lazyLoad\", \"lazyLoadedList\", \"rtl\", \"slideWidth\", \"slideHeight\", \"listHeight\", \"vertical\", \"slidesToShow\", \"slidesToScroll\", \"slideCount\", \"trackStyle\", \"variableWidth\", \"unslick\", \"centerPadding\", \"targetSlide\", \"useCSS\"]);\n var pauseOnHover = _this.props.pauseOnHover;\n trackProps = _objectSpread(_objectSpread({}, trackProps), {}, {\n onMouseEnter: pauseOnHover ? _this.onTrackOver : null,\n onMouseLeave: pauseOnHover ? _this.onTrackLeave : null,\n onMouseOver: pauseOnHover ? _this.onTrackOver : null,\n focusOnSelect: _this.props.focusOnSelect && _this.clickable ? _this.selectHandler : null\n });\n var dots;\n\n if (_this.props.dots === true && _this.state.slideCount >= _this.props.slidesToShow) {\n var dotProps = (0, _innerSliderUtils.extractObject)(spec, [\"dotsClass\", \"slideCount\", \"slidesToShow\", \"currentSlide\", \"slidesToScroll\", \"clickHandler\", \"children\", \"customPaging\", \"infinite\", \"appendDots\"]);\n var pauseOnDotsHover = _this.props.pauseOnDotsHover;\n dotProps = _objectSpread(_objectSpread({}, dotProps), {}, {\n clickHandler: _this.changeSlide,\n onMouseEnter: pauseOnDotsHover ? _this.onDotsLeave : null,\n onMouseOver: pauseOnDotsHover ? _this.onDotsOver : null,\n onMouseLeave: pauseOnDotsHover ? _this.onDotsLeave : null\n });\n dots = /*#__PURE__*/_react[\"default\"].createElement(_dots.Dots, dotProps);\n }\n\n var prevArrow, nextArrow;\n var arrowProps = (0, _innerSliderUtils.extractObject)(spec, [\"infinite\", \"centerMode\", \"currentSlide\", \"slideCount\", \"slidesToShow\", \"prevArrow\", \"nextArrow\"]);\n arrowProps.clickHandler = _this.changeSlide;\n\n if (_this.props.arrows) {\n prevArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.PrevArrow, arrowProps);\n nextArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.NextArrow, arrowProps);\n }\n\n var verticalHeightStyle = null;\n\n if (_this.props.vertical) {\n verticalHeightStyle = {\n height: _this.state.listHeight\n };\n }\n\n var centerPaddingStyle = null;\n\n if (_this.props.vertical === false) {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: \"0px \" + _this.props.centerPadding\n };\n }\n } else {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: _this.props.centerPadding + \" 0px\"\n };\n }\n }\n\n var listStyle = _objectSpread(_objectSpread({}, verticalHeightStyle), centerPaddingStyle);\n\n var touchMove = _this.props.touchMove;\n var listProps = {\n className: \"slick-list\",\n style: listStyle,\n onClick: _this.clickHandler,\n onMouseDown: touchMove ? _this.swipeStart : null,\n onMouseMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onMouseUp: touchMove ? _this.swipeEnd : null,\n onMouseLeave: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onTouchStart: touchMove ? _this.swipeStart : null,\n onTouchMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onTouchEnd: touchMove ? _this.touchEnd : null,\n onTouchCancel: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onKeyDown: _this.props.accessibility ? _this.keyHandler : null\n };\n var innerSliderProps = {\n className: className,\n dir: \"ltr\",\n style: _this.props.style\n };\n\n if (_this.props.unslick) {\n listProps = {\n className: \"slick-list\"\n };\n innerSliderProps = {\n className: className\n };\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", innerSliderProps, !_this.props.unslick ? prevArrow : \"\", /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: _this.listRefHandler\n }, listProps), /*#__PURE__*/_react[\"default\"].createElement(_track.Track, _extends({\n ref: _this.trackRefHandler\n }, trackProps), _this.props.children)), !_this.props.unslick ? nextArrow : \"\", !_this.props.unslick ? dots : \"\");\n });\n\n _this.list = null;\n _this.track = null;\n _this.state = _objectSpread(_objectSpread({}, _initialState[\"default\"]), {}, {\n currentSlide: _this.props.initialSlide,\n slideCount: _react[\"default\"].Children.count(_this.props.children)\n });\n _this.callbackTimers = [];\n _this.clickable = true;\n _this.debouncedResize = null;\n\n var ssrState = _this.ssrInit();\n\n _this.state = _objectSpread(_objectSpread({}, _this.state), ssrState);\n return _this;\n }\n\n _createClass(InnerSlider, [{\n key: \"didPropsChange\",\n value: function didPropsChange(prevProps) {\n var setTrackStyle = false;\n\n for (var _i3 = 0, _Object$keys = Object.keys(this.props); _i3 < _Object$keys.length; _i3++) {\n var key = _Object$keys[_i3];\n\n if (!prevProps.hasOwnProperty(key)) {\n setTrackStyle = true;\n break;\n }\n\n if (_typeof(prevProps[key]) === \"object\" || typeof prevProps[key] === \"function\") {\n continue;\n }\n\n if (prevProps[key] !== this.props[key]) {\n setTrackStyle = true;\n break;\n }\n }\n\n return setTrackStyle || _react[\"default\"].Children.count(this.props.children) !== _react[\"default\"].Children.count(prevProps.children);\n }\n }]);\n\n return InnerSlider;\n}(_react[\"default\"].Component);\n\nexports.InnerSlider = InnerSlider;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2xpY2svbGliL2lubmVyLXNsaWRlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixtQkFBbUI7O0FBRW5CLG9DQUFvQyxtQkFBTyxDQUFDLDRDQUFPOztBQUVuRCwyQ0FBMkMsbUJBQU8sQ0FBQyx3RUFBaUI7O0FBRXBFLHFDQUFxQyxtQkFBTyxDQUFDLGdFQUFpQjs7QUFFOUQseUNBQXlDLG1CQUFPLENBQUMsc0RBQVk7O0FBRTdELHdCQUF3QixtQkFBTyxDQUFDLDBGQUEwQjs7QUFFMUQsYUFBYSxtQkFBTyxDQUFDLHdEQUFTOztBQUU5QixZQUFZLG1CQUFPLENBQUMsc0RBQVE7O0FBRTVCLGNBQWMsbUJBQU8sQ0FBQywwREFBVTs7QUFFaEMscURBQXFELG1CQUFPLENBQUMsbUdBQTBCOztBQUV2Rix1Q0FBdUMsdUNBQXVDOztBQUU5RSx3QkFBd0IsMkJBQTJCLDJFQUEyRSxrQ0FBa0Msd0JBQXdCLE9BQU8sa0NBQWtDLG1JQUFtSTs7QUFFcFcsc0JBQXNCLGdEQUFnRCxnQkFBZ0Isc0JBQXNCLE9BQU8sMkJBQTJCLDBCQUEwQix5REFBeUQsaUNBQWlDLGtCQUFrQjs7QUFFcFIsc0RBQXNELCtCQUErQiw4REFBOEQsWUFBWSxvQ0FBb0MsNkRBQTZELFlBQVksNkJBQTZCLE9BQU8sMkJBQTJCLDBDQUEwQyx3RUFBd0UsK0JBQStCOztBQUU1ZCwyREFBMkQsK0JBQStCLGlCQUFpQixzQ0FBc0MsWUFBWSxZQUFZLHVCQUF1QixPQUFPLHFCQUFxQiwwQ0FBMEMsNkJBQTZCOztBQUVuUywyQ0FBMkMsZ0NBQWdDLG9DQUFvQyxvREFBb0QsOERBQThELGlFQUFpRSxHQUFHLGtDQUFrQzs7QUFFdlUsaUNBQWlDLGdCQUFnQixzQkFBc0IsT0FBTyx1REFBdUQsYUFBYSx1REFBdUQsNENBQTRDLEtBQUssNkNBQTZDLDZFQUE2RSxPQUFPLGlEQUFpRCxtRkFBbUYsT0FB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O0FBQ1AsS0FBSzs7QUFFTDtBQUNBO0FBQ0EsZ0RBQWdELCtCQUErQjtBQUMvRTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQSxnREFBZ0Q7QUFDaEQ7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxnRUFBZ0UsMkJBQTJCO0FBQzNGOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0EsQ0FBQzs7QUFFRCxtQkFBbUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXNsaWNrL2xpYi9pbm5lci1zbGlkZXIuanM/ZThhZCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuSW5uZXJTbGlkZXIgPSB2b2lkIDA7XG5cbnZhciBfcmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbnZhciBfaW5pdGlhbFN0YXRlID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9pbml0aWFsLXN0YXRlXCIpKTtcblxudmFyIF9sb2Rhc2ggPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJsb2Rhc2guZGVib3VuY2VcIikpO1xuXG52YXIgX2NsYXNzbmFtZXMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJjbGFzc25hbWVzXCIpKTtcblxudmFyIF9pbm5lclNsaWRlclV0aWxzID0gcmVxdWlyZShcIi4vdXRpbHMvaW5uZXJTbGlkZXJVdGlsc1wiKTtcblxudmFyIF90cmFjayA9IHJlcXVpcmUoXCIuL3RyYWNrXCIpO1xuXG52YXIgX2RvdHMgPSByZXF1aXJlKFwiLi9kb3RzXCIpO1xuXG52YXIgX2Fycm93cyA9IHJlcXVpcmUoXCIuL2Fycm93c1wiKTtcblxudmFyIF9yZXNpemVPYnNlcnZlclBvbHlmaWxsID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVzaXplLW9ic2VydmVyLXBvbHlmaWxsXCIpKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjsgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiKSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfTsgfSBlbHNlIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9OyB9IHJldHVybiBfdHlwZW9mKG9iaik7IH1cblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cblxuZnVuY3Rpb24gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKHNvdXJjZSwgZXhjbHVkZWQpIHsgaWYgKHNvdXJjZSA9PSBudWxsKSByZXR1cm4ge307IHZhciB0YXJnZXQgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShzb3VyY2UsIGV4Y2x1ZGVkKTsgdmFyIGtleSwgaTsgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHsgdmFyIHNvdXJjZVN5bWJvbEtleXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHNvdXJjZSk7IGZvciAoaSA9IDA7IGkgPCBzb3VyY2VTeW1ib2xLZXlzLmxlbmd0aDsgaSsrKSB7IGtleSA9IHNvdXJjZVN5bWJvbEtleXNbaV07IGlmIChleGNsdWRlZC5pbmRleE9mKGtleSkgPj0gMCkgY29udGludWU7IGlmICghT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHNvdXJjZSwga2V5KSkgY29udGludWU7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSByZXR1cm4gdGFyZ2V0OyB9XG5cbmZ1bmN0aW9uIF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKHNvdXJjZSwgZXhjbHVkZWQpIHsgaWYgKHNvdXJjZSA9PSBudWxsKSByZXR1cm4ge307IHZhciB0YXJnZXQgPSB7fTsgdmFyIHNvdXJjZUtleXMgPSBPYmplY3Qua2V5cyhzb3VyY2UpOyB2YXIga2V5LCBpOyBmb3IgKGkgPSAwOyBpIDwgc291cmNlS2V5cy5sZW5ndGg7IGkrKykgeyBrZXkgPSBzb3VyY2VLZXlzW2ldOyBpZiAoZXhjbHVkZWQuaW5kZXhPZihrZXkpID49IDApIGNvbnRpbnVlOyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IHJldHVybiB0YXJnZXQ7IH1cblxuZnVuY3Rpb24gb3duS2V5cyhvYmplY3QsIGVudW1lcmFibGVPbmx5KSB7IHZhciBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KTsgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHsgdmFyIHN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG9iamVjdCk7IGlmIChlbnVtZXJhYmxlT25seSkgc3ltYm9scyA9IHN5bWJvbHMuZmlsdGVyKGZ1bmN0aW9uIChzeW0pIHsgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LCBzeW0pLmVudW1lcmFibGU7IH0pOyBrZXlzLnB1c2guYXBwbHkoa2V5cywgc3ltYm9scyk7IH0gcmV0dXJuIGtleXM7IH1cblxuZnVuY3Rpb24gX29iamVjdFNwcmVhZCh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXSAhPSBudWxsID8gYXJndW1lbnRzW2ldIDoge307IGlmIChpICUgMikgeyBvd25LZXlzKE9iamVjdChzb3VyY2UpLCB0cnVlKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsgX2RlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBzb3VyY2Vba2V5XSk7IH0pOyB9IGVsc2UgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoc291cmNlKSk7IH0gZWxzZSB7IG93bktleXMoT2JqZWN0KHNvdXJjZSkpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc291cmNlLCBrZXkpKTsgfSk7IH0gfSByZXR1cm4gdGFyZ2V0OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH1cblxuZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIF9zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcyk7IH1cblxuZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgX3NldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IG8uX19wcm90b19fID0gcDsgcmV0dXJuIG87IH07IHJldHVybiBfc2V0UHJvdG90eXBlT2YobywgcCk7IH1cblxuZnVuY3Rpb24gX2NyZWF0ZVN1cGVyKERlcml2ZWQpIHsgdmFyIGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCk7IHJldHVybiBmdW5jdGlvbiBfY3JlYXRlU3VwZXJJbnRlcm5hbCgpIHsgdmFyIFN1cGVyID0gX2dldFByb3RvdHlwZU9mKERlcml2ZWQpLCByZXN1bHQ7IGlmIChoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KSB7IHZhciBOZXdUYXJnZXQgPSBfZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3I7IHJlc3VsdCA9IFJlZmxlY3QuY29uc3RydWN0KFN1cGVyLCBhcmd1bWVudHMsIE5ld1RhcmdldCk7IH0gZWxzZSB7IHJlc3VsdCA9IFN1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH0gcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIHJlc3VsdCk7IH07IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoY2FsbCAmJiAoX3R5cGVvZihjYWxsKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkgeyByZXR1cm4gY2FsbDsgfSByZXR1cm4gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKTsgfVxuXG5mdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpIHsgaWYgKHNlbGYgPT09IHZvaWQgMCkgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIHNlbGY7IH1cblxuZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHsgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiIHx8ICFSZWZsZWN0LmNvbnN0cnVjdCkgcmV0dXJuIGZhbHNlOyBpZiAoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSkgcmV0dXJuIGZhbHNlOyBpZiAodHlwZW9mIFByb3h5ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB0cnVlOyB0cnkgeyBEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFJlZmxlY3QuY29uc3RydWN0KERhdGUsIFtdLCBmdW5jdGlvbiAoKSB7fSkpOyByZXR1cm4gdHJ1ZTsgfSBjYXRjaCAoZSkgeyByZXR1cm4gZmFsc2U7IH0gfVxuXG5mdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyByZXR1cm4gby5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pOyB9OyByZXR1cm4gX2dldFByb3RvdHlwZU9mKG8pOyB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsgaWYgKGtleSBpbiBvYmopIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsgfSBlbHNlIHsgb2JqW2tleV0gPSB2YWx1ZTsgfSByZXR1cm4gb2JqOyB9XG5cbnZhciBJbm5lclNsaWRlciA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoSW5uZXJTbGlkZXIsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIHZhciBfc3VwZXIgPSBfY3JlYXRlU3VwZXIoSW5uZXJTbGlkZXIpO1xuXG4gIGZ1bmN0aW9uIElubmVyU2xpZGVyKHByb3BzKSB7XG4gICAgdmFyIF90aGlzO1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIElubmVyU2xpZGVyKTtcblxuICAgIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgcHJvcHMpO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcImxpc3RSZWZIYW5kbGVyXCIsIGZ1bmN0aW9uIChyZWYpIHtcbiAgICAgIHJldHVybiBfdGhpcy5saXN0ID0gcmVmO1xuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcInRyYWNrUmVmSGFuZGxlclwiLCBmdW5jdGlvbiAocmVmKSB7XG4gICAgICByZXR1cm4gX3RoaXMudHJhY2sgPSByZWY7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwiYWRhcHRIZWlnaHRcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKF90aGlzLnByb3BzLmFkYXB0aXZlSGVpZ2h0ICYmIF90aGlzLmxpc3QpIHtcbiAgICAgICAgdmFyIGVsZW0gPSBfdGhpcy5saXN0LnF1ZXJ5U2VsZWN0b3IoXCJbZGF0YS1pbmRleD1cXFwiXCIuY29uY2F0KF90aGlzLnN0YXRlLmN1cnJlbnRTbGlkZSwgXCJcXFwiXVwiKSk7XG5cbiAgICAgICAgX3RoaXMubGlzdC5zdHlsZS5oZWlnaHQgPSAoMCwgX2lubmVyU2xpZGVyVXRpbHMuZ2V0SGVpZ2h0KShlbGVtKSArIFwicHhcIjtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJjb21wb25lbnREaWRNb3VudFwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICBfdGhpcy5wcm9wcy5vbkluaXQgJiYgX3RoaXMucHJvcHMub25Jbml0KCk7XG5cbiAgICAgIGlmIChfdGhpcy5wcm9wcy5sYXp5TG9hZCkge1xuICAgICAgICB2YXIgc2xpZGVzVG9Mb2FkID0gKDAsIF9pbm5lclNsaWRlclV0aWxzLmdldE9uRGVtYW5kTGF6eVNsaWRlcykoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBfdGhpcy5wcm9wcyksIF90aGlzLnN0YXRlKSk7XG5cbiAgICAgICAgaWYgKHNsaWRlc1RvTG9hZC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgX3RoaXMuc2V0U3RhdGUoZnVuY3Rpb24gKHByZXZTdGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgbGF6eUxvYWRlZExpc3Q6IHByZXZTdGF0ZS5sYXp5TG9hZGVkTGlzdC5jb25jYXQoc2xpZGVzVG9Mb2FkKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGlmIChfdGhpcy5wcm9wcy5vbkxhenlMb2FkKSB7XG4gICAgICAgICAgICBfdGhpcy5wcm9wcy5vbkxhenlMb2FkKHNsaWRlc1RvTG9hZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHZhciBzcGVjID0gX29iamVjdFNwcmVhZCh7XG4gICAgICAgIGxpc3RSZWY6IF90aGlzLmxpc3QsXG4gICAgICAgIHRyYWNrUmVmOiBfdGhpcy50cmFja1xuICAgICAgfSwgX3RoaXMucHJvcHMpO1xuXG4gICAgICBfdGhpcy51cGRhdGVTdGF0ZShzcGVjLCB0cnVlLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIF90aGlzLmFkYXB0SGVpZ2h0KCk7XG5cbiAgICAgICAgX3RoaXMucHJvcHMuYXV0b3BsYXkgJiYgX3RoaXMuYXV0b1BsYXkoXCJ1cGRhdGVcIik7XG4gICAgICB9KTtcblxuICAgICAgaWYgKF90aGlzLnByb3BzLmxhenlMb2FkID09PSBcInByb2dyZXNzaXZlXCIpIHtcbiAgICAgICAgX3RoaXMubGF6eUxvYWRUaW1lciA9IHNldEludGVydmFsKF90aGlzLnByb2dyZXNzaXZlTGF6eUxvYWQsIDEwMDApO1xuICAgICAgfVxuXG4gICAgICBfdGhpcy5ybyA9IG5ldyBfcmVzaXplT2JzZXJ2ZXJQb2x5ZmlsbFtcImRlZmF1bHRcIl0oZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoX3RoaXMuc3RhdGUuYW5pbWF0aW5nKSB7XG4gICAgICAgICAgX3RoaXMub25XaW5kb3dSZXNpemVkKGZhbHNlKTsgLy8gZG9uJ3Qgc2V0IHRyYWNrU3R5bGUgaGVuY2UgZG9uJ3QgYnJlYWsgYW5pbWF0aW9uXG5cblxuICAgICAgICAgIF90aGlzLmNhbGxiYWNrVGltZXJzLnB1c2goc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gX3RoaXMub25XaW5kb3dSZXNpemVkKCk7XG4gICAgICAgICAgfSwgX3RoaXMucHJvcHMuc3BlZWQpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBfdGhpcy5vbldpbmRvd1Jlc2l6ZWQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIF90aGlzLnJvLm9ic2VydmUoX3RoaXMubGlzdCk7XG5cbiAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwgJiYgQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLnNsaWNrLXNsaWRlXCIpLCBmdW5jdGlvbiAoc2xpZGUpIHtcbiAgICAgICAgc2xpZGUub25mb2N1cyA9IF90aGlzLnByb3BzLnBhdXNlT25Gb2N1cyA/IF90aGlzLm9uU2xpZGVGb2N1cyA6IG51bGw7XG4gICAgICAgIHNsaWRlLm9uYmx1ciA9IF90aGlzLnByb3BzLnBhdXNlT25Gb2N1cyA/IF90aGlzLm9uU2xpZGVCbHVyIDogbnVsbDtcbiAgICAgIH0pO1xuXG4gICAgICBpZiAod2luZG93LmFkZEV2ZW50TGlzdGVuZXIpIHtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgX3RoaXMub25XaW5kb3dSZXNpemVkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHdpbmRvdy5hdHRhY2hFdmVudChcIm9ucmVzaXplXCIsIF90aGlzLm9uV2luZG93UmVzaXplZCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwiY29tcG9uZW50V2lsbFVubW91bnRcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKF90aGlzLmFuaW1hdGlvbkVuZENhbGxiYWNrKSB7XG4gICAgICAgIGNsZWFyVGltZW91dChfdGhpcy5hbmltYXRpb25FbmRDYWxsYmFjayk7XG4gICAgICB9XG5cbiAgICAgIGlmIChfdGhpcy5sYXp5TG9hZFRpbWVyKSB7XG4gICAgICAgIGNsZWFySW50ZXJ2YWwoX3RoaXMubGF6eUxvYWRUaW1lcik7XG4gICAgICB9XG5cbiAgICAgIGlmIChfdGhpcy5jYWxsYmFja1RpbWVycy5sZW5ndGgpIHtcbiAgICAgICAgX3RoaXMuY2FsbGJhY2tUaW1lcnMuZm9yRWFjaChmdW5jdGlvbiAodGltZXIpIHtcbiAgICAgICAgICByZXR1cm4gY2xlYXJUaW1lb3V0KHRpbWVyKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgX3RoaXMuY2FsbGJhY2tUaW1lcnMgPSBbXTtcbiAgICAgIH1cblxuICAgICAgaWYgKHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKSB7XG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIF90aGlzLm9uV2luZG93UmVzaXplZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB3aW5kb3cuZGV0YWNoRXZlbnQoXCJvbnJlc2l6ZVwiLCBfdGhpcy5vbldpbmRvd1Jlc2l6ZWQpO1xuICAgICAgfVxuXG4gICAgICBpZiAoX3RoaXMuYXV0b3BsYXlUaW1lcikge1xuICAgICAgICBjbGVhckludGVydmFsKF90aGlzLmF1dG9wbGF5VGltZXIpO1xuICAgICAgfVxuXG4gICAgICBfdGhpcy5yby5kaXNjb25uZWN0KCk7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwiY29tcG9uZW50RGlkVXBkYXRlXCIsIGZ1bmN0aW9uIChwcmV2UHJvcHMpIHtcbiAgICAgIF90aGlzLmNoZWNrSW1hZ2VzTG9hZCgpO1xuXG4gICAgICBfdGhpcy5wcm9wcy5vblJlSW5pdCAmJiBfdGhpcy5wcm9wcy5vblJlSW5pdCgpO1xuXG4gICAgICBpZiAoX3RoaXMucHJvcHMubGF6eUxvYWQpIHtcbiAgICAgICAgdmFyIHNsaWRlc1RvTG9hZCA9ICgwLCBfaW5uZXJTbGlkZXJVdGlscy5nZXRPbkRlbWFuZExhenlTbGlkZXMpKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgX3RoaXMucHJvcHMpLCBfdGhpcy5zdGF0ZSkpO1xuXG4gICAgICAgIGlmIChzbGlkZXNUb0xvYWQubGVuZ3RoID4gMCkge1xuICAgICAgICAgIF90aGlzLnNldFN0YXRlKGZ1bmN0aW9uIChwcmV2U3RhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGxhenlMb2FkZWRMaXN0OiBwcmV2U3RhdGUubGF6eUxvYWRlZExpc3QuY29uY2F0KHNsaWRlc1RvTG9hZClcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBpZiAoX3RoaXMucHJvcHMub25MYXp5TG9hZCkge1xuICAgICAgICAgICAgX3RoaXMucHJvcHMub25MYXp5TG9hZChzbGlkZXNUb0xvYWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSAvLyBpZiAodGhpcy5wcm9wcy5vbkxhenlMb2FkKSB7XG4gICAgICAvLyAgIHRoaXMucHJvcHMub25MYXp5TG9hZChbbGVmdE1vc3RTbGlkZV0pXG4gICAgICAvLyB9XG5cblxuICAgICAgX3RoaXMuYWRhcHRIZWlnaHQoKTtcblxuICAgICAgdmFyIHNwZWMgPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe1xuICAgICAgICBsaXN0UmVmOiBfdGhpcy5saXN0LFxuICAgICAgICB0cmFja1JlZjogX3RoaXMudHJhY2tcbiAgICAgIH0sIF90aGlzLnByb3BzKSwgX3RoaXMuc3RhdGUpO1xuXG4gICAgICB2YXIgc2V0VHJhY2tTdHlsZSA9IF90aGlzLmRpZFByb3BzQ2hhbmdlKHByZXZQcm9wcyk7XG5cbiAgICAgIHNldFRyYWNrU3R5bGUgJiYgX3RoaXMudXBkYXRlU3RhdGUoc3BlYywgc2V0VHJhY2tTdHlsZSwgZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoX3RoaXMuc3RhdGUuY3VycmVudFNsaWRlID49IF9yZWFjdFtcImRlZmF1bHRcIl0uQ2hpbGRyZW4uY291bnQoX3RoaXMucHJvcHMuY2hpbGRyZW4pKSB7XG4gICAgICAgICAgX3RoaXMuY2hhbmdlU2xpZGUoe1xuICAgICAgICAgICAgbWVzc2FnZTogXCJpbmRleFwiLFxuICAgICAgICAgICAgaW5kZXg6IF9yZWFjdFtcImRlZmF1bHRcIl0uQ2hpbGRyZW4uY291bnQoX3RoaXMucHJvcHMuY2hpbGRyZW4pIC0gX3RoaXMucHJvcHMuc2xpZGVzVG9TaG93LFxuICAgICAgICAgICAgY3VycmVudFNsaWRlOiBfdGhpcy5zdGF0ZS5jdXJyZW50U2xpZGVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChfdGhpcy5wcm9wcy5hdXRvcGxheSkge1xuICAgICAgICAgIF90aGlzLmF1dG9QbGF5KFwidXBkYXRlXCIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIF90aGlzLnBhdXNlKFwicGF1c2VkXCIpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJvbldpbmRvd1Jlc2l6ZWRcIiwgZnVuY3Rpb24gKHNldFRyYWNrU3R5bGUpIHtcbiAgICAgIGlmIChfdGhpcy5kZWJvdW5jZWRSZXNpemUpIF90aGlzLmRlYm91bmNlZFJlc2l6ZS5jYW5jZWwoKTtcbiAgICAgIF90aGlzLmRlYm91bmNlZFJlc2l6ZSA9ICgwLCBfbG9kYXNoW1wiZGVmYXVsdFwiXSkoZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gX3RoaXMucmVzaXplV2luZG93KHNldFRyYWNrU3R5bGUpO1xuICAgICAgfSwgNTApO1xuXG4gICAgICBfdGhpcy5kZWJvdW5jZWRSZXNpemUoKTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJyZXNpemVXaW5kb3dcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIHNldFRyYWNrU3R5bGUgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHRydWU7XG4gICAgICB2YXIgaXNUcmFja01vdW50ZWQgPSBCb29sZWFuKF90aGlzLnRyYWNrICYmIF90aGlzLnRyYWNrLm5vZGUpOyAvLyBwcmV2ZW50IHdhcm5pbmc6IHNldHRpbmcgc3RhdGUgb24gdW5tb3VudGVkIGNvbXBvbmVudCAoc2VydmVyIHNpZGUgcmVuZGVyaW5nKVxuXG4gICAgICBpZiAoIWlzVHJhY2tNb3VudGVkKSByZXR1cm47XG5cbiAgICAgIHZhciBzcGVjID0gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHtcbiAgICAgICAgbGlzdFJlZjogX3RoaXMubGlzdCxcbiAgICAgICAgdHJhY2tSZWY6IF90aGlzLnRyYWNrXG4gICAgICB9LCBfdGhpcy5wcm9wcyksIF90aGlzLnN0YXRlKTtcblxuICAgICAgX3RoaXMudXBkYXRlU3RhdGUoc3BlYywgc2V0VHJhY2tTdHlsZSwgZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoX3RoaXMucHJvcHMuYXV0b3BsYXkpIF90aGlzLmF1dG9QbGF5KFwidXBkYXRlXCIpO2Vsc2UgX3RoaXMucGF1c2UoXCJwYXVzZWRcIik7XG4gICAgICB9KTsgLy8gYW5pbWF0aW5nIHN0YXRlIHNob3VsZCBiZSBjbGVhcmVkIHdoaWxlIHJlc2l6aW5nLCBvdGhlcndpc2UgYXV0b3BsYXkgc3RvcHMgd29ya2luZ1xuXG5cbiAgICAgIF90aGlzLnNldFN0YXRlKHtcbiAgICAgICAgYW5pbWF0aW5nOiBmYWxzZVxuICAgICAgfSk7XG5cbiAgICAgIGNsZWFyVGltZW91dChfdGhpcy5hbmltYXRpb25FbmRDYWxsYmFjayk7XG4gICAgICBkZWxldGUgX3RoaXMuYW5pbWF0aW9uRW5kQ2FsbGJhY2s7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwidXBkYXRlU3RhdGVcIiwgZnVuY3Rpb24gKHNwZWMsIHNldFRyYWNrU3R5bGUsIGNhbGxiYWNrKSB7XG4gICAgICB2YXIgdXBkYXRlZFN0YXRlID0gKDAsIF9pbm5lclNsaWRlclV0aWxzLmluaXRpYWxpemVkU3RhdGUpKHNwZWMpO1xuICAgICAgc3BlYyA9IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzcGVjKSwgdXBkYXRlZFN0YXRlKSwge30sIHtcbiAgICAgICAgc2xpZGVJbmRleDogdXBkYXRlZFN0YXRlLmN1cnJlbnRTbGlkZVxuICAgICAgfSk7XG4gICAgICB2YXIgdGFyZ2V0TGVmdCA9ICgwLCBfaW5uZXJTbGlkZXJVdGlscy5nZXRUcmFja0xlZnQpKHNwZWMpO1xuICAgICAgc3BlYyA9IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgc3BlYyksIHt9LCB7XG4gICAgICAgIGxlZnQ6IHRhcmdldExlZnRcbiAgICAgIH0pO1xuICAgICAgdmFyIHRyYWNrU3R5bGUgPSAoMCwgX2lubmVyU2xpZGVyVXRpbHMuZ2V0VHJhY2tDU1MpKHNwZWMpO1xuXG4gICAgICBpZiAoc2V0VHJhY2tTdHlsZSB8fCBfcmVhY3RbXCJkZWZhdWx0XCJdLkNoaWxkcmVuLmNvdW50KF90aGlzLnByb3BzLmNoaWxkcmVuKSAhPT0gX3JlYWN0W1wiZGVmYXVsdFwiXS5DaGlsZHJlbi5jb3VudChzcGVjLmNoaWxkcmVuKSkge1xuICAgICAgICB1cGRhdGVkU3RhdGVbXCJ0cmFja1N0eWxlXCJdID0gdHJhY2tTdHlsZTtcbiAgICAgIH1cblxuICAgICAgX3RoaXMuc2V0U3RhdGUodXBkYXRlZFN0YXRlLCBjYWxsYmFjayk7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwic3NySW5pdFwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAoX3RoaXMucHJvcHMudmFyaWFibGVXaWR0aCkge1xuICAgICAgICB2YXIgX3RyYWNrV2lkdGggPSAwLFxuICAgICAgICAgICAgX3RyYWNrTGVmdCA9IDA7XG4gICAgICAgIHZhciBjaGlsZHJlbldpZHRocyA9IFtdO1xuICAgICAgICB2YXIgcHJlQ2xvbmVzID0gKDAsIF9pbm5lclNsaWRlclV0aWxzLmdldFByZUNsb25lcykoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIF90aGlzLnByb3BzKSwgX3RoaXMuc3RhdGUpLCB7fSwge1xuICAgICAgICAgIHNsaWRlQ291bnQ6IF90aGlzLnByb3BzLmNoaWxkcmVuLmxlbmd0aFxuICAgICAgICB9KSk7XG4gICAgICAgIHZhciBwb3N0Q2xvbmVzID0gKDAsIF9pbm5lclNsaWRlclV0aWxzLmdldFBvc3RDbG9uZXMpKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBfdGhpcy5wcm9wcyksIF90aGlzLnN0YXRlKSwge30sIHtcbiAgICAgICAgICBzbGlkZUNvdW50OiBfdGhpcy5wcm9wcy5jaGlsZHJlbi5sZW5ndGhcbiAgICAgICAgfSkpO1xuXG4gICAgICAgIF90aGlzLnByb3BzLmNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgICAgICAgY2hpbGRyZW5XaWR0aHMucHVzaChjaGlsZC5wcm9wcy5zdHlsZS53aWR0aCk7XG4gICAgICAgICAgX3RyYWNrV2lkdGggKz0gY2hpbGQucHJvcHMuc3R5bGUud2lkdGg7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJlQ2xvbmVzOyBpKyspIHtcbiAgICAgICAgICBfdHJhY2tMZWZ0ICs9IGNoaWxkcmVuV2lkdGhzW2NoaWxkcmVuV2lkdGhzLmxlbmd0aCAtIDEgLSBpXTtcbiAgICAgICAgICBfdHJhY2tXaWR0aCArPSBjaGlsZHJlbldpZHRoc1tjaGlsZHJlbldpZHRocy5sZW5ndGggLSAxIC0gaV07XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgcG9zdENsb25lczsgX2krKykge1xuICAgICAgICAgIF90cmFja1dpZHRoICs9IGNoaWxkcmVuV2lkdGhzW19pXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAodmFyIF9pMiA9IDA7IF9pMiA8IF90aGlzLnN0YXRlLmN1cnJlbnRTbGlkZTsgX2kyKyspIHtcbiAgICAgICAgICBfdHJhY2tMZWZ0ICs9IGNoaWxkcmVuV2lkdGhzW19pMl07XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgX3RyYWNrU3R5bGUgPSB7XG4gICAgICAgICAgd2lkdGg6IF90cmFja1dpZHRoICsgXCJweFwiLFxuICAgICAgICAgIGxlZnQ6IC1fdHJhY2tMZWZ0ICsgXCJweFwiXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKF90aGlzLnByb3BzLmNlbnRlck1vZGUpIHtcbiAgICAgICAgICB2YXIgY3VycmVudFdpZHRoID0gXCJcIi5jb25jYXQoY2hpbGRyZW5XaWR0aHNbX3RoaXMuc3RhdGUuY3VycmVudFNsaWRlXSwgXCJweFwiKTtcbiAgICAgICAgICBfdHJhY2tTdHlsZS5sZWZ0ID0gXCJjYWxjKFwiLmNvbmNhdChfdHJhY2tTdHlsZS5sZWZ0LCBcIiArICgxMDAlIC0gXCIpLmNvbmNhdChjdXJyZW50V2lkdGgsIFwiKSAvIDIgKSBcIik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHRyYWNrU3R5bGU6IF90cmFja1N0eWxlXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHZhciBjaGlsZHJlbkNvdW50ID0gX3JlYWN0W1wiZGVmYXVsdFwiXS5DaGlsZHJlbi5jb3VudChfdGhpcy5wcm9wcy5jaGlsZHJlbik7XG5cbiAgICAgIHZhciBzcGVjID0gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIF90aGlzLnByb3BzKSwgX3RoaXMuc3RhdGUpLCB7fSwge1xuICAgICAgICBzbGlkZUNvdW50OiBjaGlsZHJlbkNvdW50XG4gICAgICB9KTtcblxuICAgICAgdmFyIHNsaWRlQ291bnQgPSAoMCwgX2lubmVyU2xpZGVyVXRpbHMuZ2V0UHJlQ2xvbmVzKShzcGVjKSArICgwLCBfaW5uZXJTbGlkZXJVdGlscy5nZXRQb3N0Q2xvbmVzKShzcGVjKSArIGNoaWxkcmVuQ291bnQ7XG4gICAgICB2YXIgdHJhY2tXaWR0aCA9IDEwMCAvIF90aGlzLnByb3BzLnNsaWRlc1RvU2hvdyAqIHNsaWRlQ291bnQ7XG4gICAgICB2YXIgc2xpZGVXaWR0aCA9IDEwMCAvIHNsaWRlQ291bnQ7XG4gICAgICB2YXIgdHJhY2tMZWZ0ID0gLXNsaWRlV2lkdGggKiAoKDAsIF9pbm5lclNsaWRlclV0aWxzLmdldFByZUNsb25lcykoc3BlYykgKyBfdGhpcy5zdGF0ZS5jdXJyZW50U2xpZGUpICogdHJhY2tXaWR0aCAvIDEwMDtcblxuICAgICAgaWYgKF90aGlzLnByb3BzLmNlbnRlck1vZGUpIHtcbiAgICAgICAgdHJhY2tMZWZ0ICs9ICgxMDAgLSBzbGlkZVdpZHRoICogdHJhY2tXaWR0aCAvIDEwMCkgLyAyO1xuICAgICAgfVxuXG4gICAgICB2YXIgdHJhY2tTdHlsZSA9IHtcbiAgICAgICAgd2lkdGg6IHRyYWNrV2lkdGggKyBcIiVcIixcbiAgICAgICAgbGVmdDogdHJhY2tMZWZ0ICsgXCIlXCJcbiAgICAgIH07XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzbGlkZVdpZHRoOiBzbGlkZVdpZHRoICsgXCIlXCIsXG4gICAgICAgIHRyYWNrU3R5bGU6IHRyYWNrU3R5bGVcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwiY2hlY2tJbWFnZXNMb2FkXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBpbWFnZXMgPSBfdGhpcy5saXN0ICYmIF90aGlzLmxpc3QucXVlcnlTZWxlY3RvckFsbCAmJiBfdGhpcy5saXN0LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuc2xpY2stc2xpZGUgaW1nXCIpIHx8IFtdO1xuICAgICAgdmFyIGltYWdlc0NvdW50ID0gaW1hZ2VzLmxlbmd0aCxcbiAgICAgICAgICBsb2FkZWRDb3VudCA9IDA7XG4gICAgICBBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGltYWdlcywgZnVuY3Rpb24gKGltYWdlKSB7XG4gICAgICAgIHZhciBoYW5kbGVyID0gZnVuY3Rpb24gaGFuZGxlcigpIHtcbiAgICAgICAgICByZXR1cm4gKytsb2FkZWRDb3VudCAmJiBsb2FkZWRDb3VudCA+PSBpbWFnZXNDb3VudCAmJiBfdGhpcy5vbldpbmRvd1Jlc2l6ZWQoKTtcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoIWltYWdlLm9uY2xpY2spIHtcbiAgICAgICAgICBpbWFnZS5vbmNsaWNrID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIGltYWdlLnBhcmVudE5vZGUuZm9jdXMoKTtcbiAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhciBwcmV2Q2xpY2tIYW5kbGVyID0gaW1hZ2Uub25jbGljaztcblxuICAgICAgICAgIGltYWdlLm9uY2xpY2sgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBwcmV2Q2xpY2tIYW5kbGVyKCk7XG4gICAgICAgICAgICBpbWFnZS5wYXJlbnROb2RlLmZvY3VzKCk7XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaW1hZ2Uub25sb2FkKSB7XG4gICAgICAgICAgaWYgKF90aGlzLnByb3BzLmxhenlMb2FkKSB7XG4gICAgICAgICAgICBpbWFnZS5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIF90aGlzLmFkYXB0SGVpZ2h0KCk7XG5cbiAgICAgICAgICAgICAgX3RoaXMuY2FsbGJhY2tUaW1lcnMucHVzaChzZXRUaW1lb3V0KF90aGlzLm9uV2luZG93UmVzaXplZCwgX3RoaXMucHJvcHMuc3BlZWQpKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGltYWdlLm9ubG9hZCA9IGhhbmRsZXI7XG5cbiAgICAgICAgICAgIGltYWdlLm9uZXJyb3IgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIGhhbmRsZXIoKTtcbiAgICAgICAgICAgICAgX3RoaXMucHJvcHMub25MYXp5TG9hZEVycm9yICYmIF90aGlzLnByb3BzLm9uTGF6eUxvYWRFcnJvcigpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcInByb2dyZXNzaXZlTGF6eUxvYWRcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIHNsaWRlc1RvTG9hZCA9IFtdO1xuXG4gICAgICB2YXIgc3BlYyA9IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgX3RoaXMucHJvcHMpLCBfdGhpcy5zdGF0ZSk7XG5cbiAgICAgIGZvciAodmFyIGluZGV4ID0gX3RoaXMuc3RhdGUuY3VycmVudFNsaWRlOyBpbmRleCA8IF90aGlzLnN0YXRlLnNsaWRlQ291bnQgKyAoMCwgX2lubmVyU2xpZGVyVXRpbHMuZ2V0UG9zdENsb25lcykoc3BlYyk7IGluZGV4KyspIHtcbiAgICAgICAgaWYgKF90aGlzLnN0YXRlLmxhenlMb2FkZWRMaXN0LmluZGV4T2YoaW5kZXgpIDwgMCkge1xuICAgICAgICAgIHNsaWRlc1RvTG9hZC5wdXNoKGluZGV4KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBmb3IgKHZhciBfaW5kZXggPSBfdGhpcy5zdGF0ZS5jdXJyZW50U2xpZGUgLSAxOyBfaW5kZXggPj0gLSgwLCBfaW5uZXJTbGlkZXJVdGlscy5nZXRQcmVDbG9uZXMpKHNwZWMpOyBfaW5kZXgtLSkge1xuICAgICAgICBpZiAoX3RoaXMuc3RhdGUubGF6eUxvYWRlZExpc3QuaW5kZXhPZihfaW5kZXgpIDwgMCkge1xuICAgICAgICAgIHNsaWRlc1RvTG9hZC5wdXNoKF9pbmRleCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHNsaWRlc1RvTG9hZC5sZW5ndGggPiAwKSB7XG4gICAgICAgIF90aGlzLnNldFN0YXRlKGZ1bmN0aW9uIChzdGF0ZSkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBsYXp5TG9hZGVkTGlzdDogc3RhdGUubGF6eUxvYWRlZExpc3QuY29uY2F0KHNsaWRlc1RvTG9hZClcbiAgICAgICAgICB9O1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoX3RoaXMucHJvcHMub25MYXp5TG9hZCkge1xuICAgICAgICAgIF90aGlzLnByb3BzLm9uTGF6eUxvYWQoc2xpZGVzVG9Mb2FkKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKF90aGlzLmxhenlMb2FkVGltZXIpIHtcbiAgICAgICAgICBjbGVhckludGVydmFsKF90aGlzLmxhenlMb2FkVGltZXIpO1xuICAgICAgICAgIGRlbGV0ZSBfdGhpcy5sYXp5TG9hZFRpbWVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwic2xpZGVIYW5kbGVyXCIsIGZ1bmN0aW9uIChpbmRleCkge1xuICAgICAgdmFyIGRvbnRBbmltYXRlID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiBmYWxzZTtcbiAgICAgIHZhciBfdGhpcyRwcm9wcyA9IF90aGlzLnByb3BzLFxuICAgICAgICAgIGFzTmF2Rm9yID0gX3RoaXMkcHJvcHMuYXNOYXZGb3IsXG4gICAgICAgICAgYmVmb3JlQ2hhbmdlID0gX3RoaXMkcHJvcHMuYmVmb3JlQ2hhbmdlLFxuICAgICAgICAgIG9uTGF6eUxvYWQgPSBfdGhpcyRwcm9wcy5vbkxhenlMb2FkLFxuICAgICAgICAgIHNwZWVkID0gX3RoaXMkcHJvcHMuc3BlZWQsXG4gICAgICAgICAgYWZ0ZXJDaGFuZ2UgPSBfdGhpcyRwcm9wcy5hZnRlckNoYW5nZTsgLy8gY2FwdHVyZSBjdXJyZW50c2xpZGUgYmVmb3JlIHN0YXRlIGlzIHVwZGF0ZWRcblxuICAgICAgdmFyIGN1cnJlbnRTbGlkZSA9IF90aGlzLnN0YXRlLmN1cnJlbnRTbGlkZTtcblxuICAgICAgdmFyIF9zbGlkZUhhbmRsZXIgPSAoMCwgX2lubmVyU2xpZGVyVXRpbHMuc2xpZGVIYW5kbGVyKShfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7XG4gICAgICAgIGluZGV4OiBpbmRleFxuICAgICAgfSwgX3RoaXMucHJvcHMpLCBfdGhpcy5zdGF0ZSksIHt9LCB7XG4gICAgICAgIHRyYWNrUmVmOiBfdGhpcy50cmFjayxcbiAgICAgICAgdXNlQ1NTOiBfdGhpcy5wcm9wcy51c2VDU1MgJiYgIWRvbnRBbmltYXRlXG4gICAgICB9KSksXG4gICAgICAgICAgc3RhdGUgPSBfc2xpZGVIYW5kbGVyLnN0YXRlLFxuICAgICAgICAgIG5leHRTdGF0ZSA9IF9zbGlkZUhhbmRsZXIubmV4dFN0YXRlO1xuXG4gICAgICBpZiAoIXN0YXRlKSByZXR1cm47XG4gICAgICBiZWZvcmVDaGFuZ2UgJiYgYmVmb3JlQ2hhbmdlKGN1cnJlbnRTbGlkZSwgc3RhdGUuY3VycmVudFNsaWRlKTtcbiAgICAgIHZhciBzbGlkZXNUb0xvYWQgPSBzdGF0ZS5sYXp5TG9hZGVkTGlzdC5maWx0ZXIoZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBfdGhpcy5zdGF0ZS5sYXp5TG9hZGVkTGlzdC5pbmRleE9mKHZhbHVlKSA8IDA7XG4gICAgICB9KTtcbiAgICAgIG9uTGF6eUxvYWQgJiYgc2xpZGVzVG9Mb2FkLmxlbmd0aCA+IDAgJiYgb25MYXp5TG9hZChzbGlkZXNUb0xvYWQpO1xuXG4gICAgICBpZiAoIV90aGlzLnByb3BzLndhaXRGb3JBbmltYXRlICYmIF90aGlzLmFuaW1hdGlvbkVuZENhbGxiYWNrKSB7XG4gICAgICAgIGNsZWFyVGltZW91dChfdGhpcy5hbmltYXRpb25FbmRDYWxsYmFjayk7XG4gICAgICAgIGFmdGVyQ2hhbmdlICYmIGFmdGVyQ2hhbmdlKGN1cnJlbnRTbGlkZSk7XG4gICAgICAgIGRlbGV0ZSBfdGhpcy5hbmltYXRpb25FbmRDYWxsYmFjaztcbiAgICAgIH1cblxuICAgICAgX3RoaXMuc2V0U3RhdGUoc3RhdGUsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgLy8gYXNOYXZGb3JJbmRleCBjaGVjayBpcyB0byBhdm9pZCByZWN1cnNpdmUgY2FsbHMgb2Ygc2xpZGVIYW5kbGVyIGluIHdhaXRGb3JBbmltYXRlPWZhbHNlIG1vZGVcbiAgICAgICAgaWYgKGFzTmF2Rm9yICYmIF90aGlzLmFzTmF2Rm9ySW5kZXggIT09IGluZGV4KSB7XG4gICAgICAgICAgX3RoaXMuYXNOYXZGb3JJbmRleCA9IGluZGV4O1xuICAgICAgICAgIGFzTmF2Rm9yLmlubmVyU2xpZGVyLnNsaWRlSGFuZGxlcihpbmRleCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIW5leHRTdGF0ZSkgcmV0dXJuO1xuICAgICAgICBfdGhpcy5hbmltYXRpb25FbmRDYWxsYmFjayA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHZhciBhbmltYXRpbmcgPSBuZXh0U3RhdGUuYW5pbWF0aW5nLFxuICAgICAgICAgICAgICBmaXJzdEJhdGNoID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKG5leHRTdGF0ZSwgW1wiYW5pbWF0aW5nXCJdKTtcblxuICAgICAgICAgIF90aGlzLnNldFN0YXRlKGZpcnN0QmF0Y2gsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIF90aGlzLmNhbGxiYWNrVGltZXJzLnB1c2goc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIHJldHVybiBfdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW5nOiBhbmltYXRpbmdcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LCAxMCkpO1xuXG4gICAgICAgICAgICBhZnRlckNoYW5nZSAmJiBhZnRlckNoYW5nZShzdGF0ZS5jdXJyZW50U2xpZGUpO1xuICAgICAgICAgICAgZGVsZXRlIF90aGlzLmFuaW1hdGlvbkVuZENhbGxiYWNrO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9LCBzcGVlZCk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJjaGFuZ2VTbGlkZVwiLCBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgdmFyIGRvbnRBbmltYXRlID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiBmYWxzZTtcblxuICAgICAgdmFyIHNwZWMgPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIF90aGlzLnByb3BzKSwgX3RoaXMuc3RhdGUpO1xuXG4gICAgICB2YXIgdGFyZ2V0U2xpZGUgPSAoMCwgX2lubmVyU2xpZGVyVXRpbHMuY2hhbmdlU2xpZGUpKHNwZWMsIG9wdGlvbnMpO1xuICAgICAgaWYgKHRhcmdldFNsaWRlICE9PSAwICYmICF0YXJnZXRTbGlkZSkgcmV0dXJuO1xuXG4gICAgICBpZiAoZG9udEFuaW1hdGUgPT09IHRydWUpIHtcbiAgICAgICAgX3RoaXMuc2xpZGVIYW5kbGVyKHRhcmdldFNsaWRlLCBkb250QW5pbWF0ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBfdGhpcy5zbGlkZUhhbmRsZXIodGFyZ2V0U2xpZGUpO1xuICAgICAgfVxuXG4gICAgICBfdGhpcy5wcm9wcy5hdXRvcGxheSAmJiBfdGhpcy5hdXRvUGxheShcInVwZGF0ZVwiKTtcblxuICAgICAgaWYgKF90aGlzLnByb3BzLmZvY3VzT25TZWxlY3QpIHtcbiAgICAgICAgdmFyIG5vZGVzID0gX3RoaXMubGlzdC5xdWVyeVNlbGVjdG9yQWxsKFwiLnNsaWNrLWN1cnJlbnRcIik7XG5cbiAgICAgICAgbm9kZXNbMF0gJiYgbm9kZXNbMF0uZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJjbGlja0hhbmRsZXJcIiwgZnVuY3Rpb24gKGUpIHtcbiAgICAgIGlmIChfdGhpcy5jbGlja2FibGUgPT09IGZhbHNlKSB7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cblxuICAgICAgX3RoaXMuY2xpY2thYmxlID0gdHJ1ZTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJrZXlIYW5kbGVyXCIsIGZ1bmN0aW9uIChlKSB7XG4gICAgICB2YXIgZGlyID0gKDAsIF9pbm5lclNsaWRlclV0aWxzLmtleUhhbmRsZXIpKGUsIF90aGlzLnByb3BzLmFjY2Vzc2liaWxpdHksIF90aGlzLnByb3BzLnJ0bCk7XG4gICAgICBkaXIgIT09IFwiXCIgJiYgX3RoaXMuY2hhbmdlU2xpZGUoe1xuICAgICAgICBtZXNzYWdlOiBkaXJcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcInNlbGVjdEhhbmRsZXJcIiwgZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgIF90aGlzLmNoYW5nZVNsaWRlKG9wdGlvbnMpO1xuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcImRpc2FibGVCb2R5U2Nyb2xsXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBwcmV2ZW50RGVmYXVsdCA9IGZ1bmN0aW9uIHByZXZlbnREZWZhdWx0KGUpIHtcbiAgICAgICAgZSA9IGUgfHwgd2luZG93LmV2ZW50O1xuICAgICAgICBpZiAoZS5wcmV2ZW50RGVmYXVsdCkgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBlLnJldHVyblZhbHVlID0gZmFsc2U7XG4gICAgICB9O1xuXG4gICAgICB3aW5kb3cub250b3VjaG1vdmUgPSBwcmV2ZW50RGVmYXVsdDtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJlbmFibGVCb2R5U2Nyb2xsXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHdpbmRvdy5vbnRvdWNobW92ZSA9IG51bGw7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwic3dpcGVTdGFydFwiLCBmdW5jdGlvbiAoZSkge1xuICAgICAgaWYgKF90aGlzLnByb3BzLnZlcnRpY2FsU3dpcGluZykge1xuICAgICAgICBfdGhpcy5kaXNhYmxlQm9keVNjcm9sbCgpO1xuICAgICAgfVxuXG4gICAgICB2YXIgc3RhdGUgPSAoMCwgX2lubmVyU2xpZGVyVXRpbHMuc3dpcGVTdGFydCkoZSwgX3RoaXMucHJvcHMuc3dpcGUsIF90aGlzLnByb3BzLmRyYWdnYWJsZSk7XG4gICAgICBzdGF0ZSAhPT0gXCJcIiAmJiBfdGhpcy5zZXRTdGF0ZShzdGF0ZSk7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwic3dpcGVNb3ZlXCIsIGZ1bmN0aW9uIChlKSB7XG4gICAgICB2YXIgc3RhdGUgPSAoMCwgX2lubmVyU2xpZGVyVXRpbHMuc3dpcGVNb3ZlKShlLCBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgX3RoaXMucHJvcHMpLCBfdGhpcy5zdGF0ZSksIHt9LCB7XG4gICAgICAgIHRyYWNrUmVmOiBfdGhpcy50cmFjayxcbiAgICAgICAgbGlzdFJlZjogX3RoaXMubGlzdCxcbiAgICAgICAgc2xpZGVJbmRleDogX3RoaXMuc3RhdGUuY3VycmVudFNsaWRlXG4gICAgICB9KSk7XG4gICAgICBpZiAoIXN0YXRlKSByZXR1cm47XG5cbiAgICAgIGlmIChzdGF0ZVtcInN3aXBpbmdcIl0pIHtcbiAgICAgICAgX3RoaXMuY2xpY2thYmxlID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIF90aGlzLnNldFN0YXRlKHN0YXRlKTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJzd2lwZUVuZFwiLCBmdW5jdGlvbiAoZSkge1xuICAgICAgdmFyIHN0YXRlID0gKDAsIF9pbm5lclNsaWRlclV0aWxzLnN3aXBlRW5kKShlLCBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgX3RoaXMucHJvcHMpLCBfdGhpcy5zdGF0ZSksIHt9LCB7XG4gICAgICAgIHRyYWNrUmVmOiBfdGhpcy50cmFjayxcbiAgICAgICAgbGlzdFJlZjogX3RoaXMubGlzdCxcbiAgICAgICAgc2xpZGVJbmRleDogX3RoaXMuc3RhdGUuY3VycmVudFNsaWRlXG4gICAgICB9KSk7XG4gICAgICBpZiAoIXN0YXRlKSByZXR1cm47XG4gICAgICB2YXIgdHJpZ2dlclNsaWRlSGFuZGxlciA9IHN0YXRlW1widHJpZ2dlclNsaWRlSGFuZGxlclwiXTtcbiAgICAgIGRlbGV0ZSBzdGF0ZVtcInRyaWdnZXJTbGlkZUhhbmRsZXJcIl07XG5cbiAgICAgIF90aGlzLnNldFN0YXRlKHN0YXRlKTtcblxuICAgICAgaWYgKHRyaWdnZXJTbGlkZUhhbmRsZXIgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuXG4gICAgICBfdGhpcy5zbGlkZUhhbmRsZXIodHJpZ2dlclNsaWRlSGFuZGxlcik7XG5cbiAgICAgIGlmIChfdGhpcy5wcm9wcy52ZXJ0aWNhbFN3aXBpbmcpIHtcbiAgICAgICAgX3RoaXMuZW5hYmxlQm9keVNjcm9sbCgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcInRvdWNoRW5kXCIsIGZ1bmN0aW9uIChlKSB7XG4gICAgICBfdGhpcy5zd2lwZUVuZChlKTtcblxuICAgICAgX3RoaXMuY2xpY2thYmxlID0gdHJ1ZTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJzbGlja1ByZXZcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgLy8gdGhpcyBhbmQgZmVsbG93IG1ldGhvZHMgYXJlIHdyYXBwZWQgaW4gc2V0VGltZW91dFxuICAgICAgLy8gdG8gbWFrZSBzdXJlIGluaXRpYWxpemUgc2V0U3RhdGUgaGFzIGhhcHBlbmVkIGJlZm9yZVxuICAgICAgLy8gYW55IG9mIHN1Y2ggbWV0aG9kcyBhcmUgY2FsbGVkXG4gICAgICBfdGhpcy5jYWxsYmFja1RpbWVycy5wdXNoKHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gX3RoaXMuY2hhbmdlU2xpZGUoe1xuICAgICAgICAgIG1lc3NhZ2U6IFwicHJldmlvdXNcIlxuICAgICAgICB9KTtcbiAgICAgIH0sIDApKTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJzbGlja05leHRcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgX3RoaXMuY2FsbGJhY2tUaW1lcnMucHVzaChzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIF90aGlzLmNoYW5nZVNsaWRlKHtcbiAgICAgICAgICBtZXNzYWdlOiBcIm5leHRcIlxuICAgICAgICB9KTtcbiAgICAgIH0sIDApKTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJzbGlja0dvVG9cIiwgZnVuY3Rpb24gKHNsaWRlKSB7XG4gICAgICB2YXIgZG9udEFuaW1hdGUgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IGZhbHNlO1xuICAgICAgc2xpZGUgPSBOdW1iZXIoc2xpZGUpO1xuICAgICAgaWYgKGlzTmFOKHNsaWRlKSkgcmV0dXJuIFwiXCI7XG5cbiAgICAgIF90aGlzLmNhbGxiYWNrVGltZXJzLnB1c2goc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBfdGhpcy5jaGFuZ2VTbGlkZSh7XG4gICAgICAgICAgbWVzc2FnZTogXCJpbmRleFwiLFxuICAgICAgICAgIGluZGV4OiBzbGlkZSxcbiAgICAgICAgICBjdXJyZW50U2xpZGU6IF90aGlzLnN0YXRlLmN1cnJlbnRTbGlkZVxuICAgICAgICB9LCBkb250QW5pbWF0ZSk7XG4gICAgICB9LCAwKSk7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwicGxheVwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgbmV4dEluZGV4O1xuXG4gICAgICBpZiAoX3RoaXMucHJvcHMucnRsKSB7XG4gICAgICAgIG5leHRJbmRleCA9IF90aGlzLnN0YXRlLmN1cnJlbnRTbGlkZSAtIF90aGlzLnByb3BzLnNsaWRlc1RvU2Nyb2xsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCgwLCBfaW5uZXJTbGlkZXJVdGlscy5jYW5Hb05leHQpKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgX3RoaXMucHJvcHMpLCBfdGhpcy5zdGF0ZSkpKSB7XG4gICAgICAgICAgbmV4dEluZGV4ID0gX3RoaXMuc3RhdGUuY3VycmVudFNsaWRlICsgX3RoaXMucHJvcHMuc2xpZGVzVG9TY3JvbGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIF90aGlzLnNsaWRlSGFuZGxlcihuZXh0SW5kZXgpO1xuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcImF1dG9QbGF5XCIsIGZ1bmN0aW9uIChwbGF5VHlwZSkge1xuICAgICAgaWYgKF90aGlzLmF1dG9wbGF5VGltZXIpIHtcbiAgICAgICAgY2xlYXJJbnRlcnZhbChfdGhpcy5hdXRvcGxheVRpbWVyKTtcbiAgICAgIH1cblxuICAgICAgdmFyIGF1dG9wbGF5aW5nID0gX3RoaXMuc3RhdGUuYXV0b3BsYXlpbmc7XG5cbiAgICAgIGlmIChwbGF5VHlwZSA9PT0gXCJ1cGRhdGVcIikge1xuICAgICAgICBpZiAoYXV0b3BsYXlpbmcgPT09IFwiaG92ZXJlZFwiIHx8IGF1dG9wbGF5aW5nID09PSBcImZvY3VzZWRcIiB8fCBhdXRvcGxheWluZyA9PT0gXCJwYXVzZWRcIikge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChwbGF5VHlwZSA9PT0gXCJsZWF2ZVwiKSB7XG4gICAgICAgIGlmIChhdXRvcGxheWluZyA9PT0gXCJwYXVzZWRcIiB8fCBhdXRvcGxheWluZyA9PT0gXCJmb2N1c2VkXCIpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAocGxheVR5cGUgPT09IFwiYmx1clwiKSB7XG4gICAgICAgIGlmIChhdXRvcGxheWluZyA9PT0gXCJwYXVzZWRcIiB8fCBhdXRvcGxheWluZyA9PT0gXCJob3ZlcmVkXCIpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgX3RoaXMuYXV0b3BsYXlUaW1lciA9IHNldEludGVydmFsKF90aGlzLnBsYXksIF90aGlzLnByb3BzLmF1dG9wbGF5U3BlZWQgKyA1MCk7XG5cbiAgICAgIF90aGlzLnNldFN0YXRlKHtcbiAgICAgICAgYXV0b3BsYXlpbmc6IFwicGxheWluZ1wiXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJwYXVzZVwiLCBmdW5jdGlvbiAocGF1c2VUeXBlKSB7XG4gICAgICBpZiAoX3RoaXMuYXV0b3BsYXlUaW1lcikge1xuICAgICAgICBjbGVhckludGVydmFsKF90aGlzLmF1dG9wbGF5VGltZXIpO1xuICAgICAgICBfdGhpcy5hdXRvcGxheVRpbWVyID0gbnVsbDtcbiAgICAgIH1cblxuICAgICAgdmFyIGF1dG9wbGF5aW5nID0gX3RoaXMuc3RhdGUuYXV0b3BsYXlpbmc7XG5cbiAgICAgIGlmIChwYXVzZVR5cGUgPT09IFwicGF1c2VkXCIpIHtcbiAgICAgICAgX3RoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgIGF1dG9wbGF5aW5nOiBcInBhdXNlZFwiXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmIChwYXVzZVR5cGUgPT09IFwiZm9jdXNlZFwiKSB7XG4gICAgICAgIGlmIChhdXRvcGxheWluZyA9PT0gXCJob3ZlcmVkXCIgfHwgYXV0b3BsYXlpbmcgPT09IFwicGxheWluZ1wiKSB7XG4gICAgICAgICAgX3RoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgYXV0b3BsYXlpbmc6IFwiZm9jdXNlZFwiXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIHBhdXNlVHlwZSAgaXMgJ2hvdmVyZWQnXG4gICAgICAgIGlmIChhdXRvcGxheWluZyA9PT0gXCJwbGF5aW5nXCIpIHtcbiAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICBhdXRvcGxheWluZzogXCJob3ZlcmVkXCJcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcIm9uRG90c092ZXJcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIF90aGlzLnByb3BzLmF1dG9wbGF5ICYmIF90aGlzLnBhdXNlKFwiaG92ZXJlZFwiKTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJvbkRvdHNMZWF2ZVwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gX3RoaXMucHJvcHMuYXV0b3BsYXkgJiYgX3RoaXMuc3RhdGUuYXV0b3BsYXlpbmcgPT09IFwiaG92ZXJlZFwiICYmIF90aGlzLmF1dG9QbGF5KFwibGVhdmVcIik7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwib25UcmFja092ZXJcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIF90aGlzLnByb3BzLmF1dG9wbGF5ICYmIF90aGlzLnBhdXNlKFwiaG92ZXJlZFwiKTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJvblRyYWNrTGVhdmVcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIF90aGlzLnByb3BzLmF1dG9wbGF5ICYmIF90aGlzLnN0YXRlLmF1dG9wbGF5aW5nID09PSBcImhvdmVyZWRcIiAmJiBfdGhpcy5hdXRvUGxheShcImxlYXZlXCIpO1xuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcIm9uU2xpZGVGb2N1c1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gX3RoaXMucHJvcHMuYXV0b3BsYXkgJiYgX3RoaXMucGF1c2UoXCJmb2N1c2VkXCIpO1xuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcIm9uU2xpZGVCbHVyXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBfdGhpcy5wcm9wcy5hdXRvcGxheSAmJiBfdGhpcy5zdGF0ZS5hdXRvcGxheWluZyA9PT0gXCJmb2N1c2VkXCIgJiYgX3RoaXMuYXV0b1BsYXkoXCJibHVyXCIpO1xuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcInJlbmRlclwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgY2xhc3NOYW1lID0gKDAsIF9jbGFzc25hbWVzW1wiZGVmYXVsdFwiXSkoXCJzbGljay1zbGlkZXJcIiwgX3RoaXMucHJvcHMuY2xhc3NOYW1lLCB7XG4gICAgICAgIFwic2xpY2stdmVydGljYWxcIjogX3RoaXMucHJvcHMudmVydGljYWwsXG4gICAgICAgIFwic2xpY2staW5pdGlhbGl6ZWRcIjogdHJ1ZVxuICAgICAgfSk7XG5cbiAgICAgIHZhciBzcGVjID0gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBfdGhpcy5wcm9wcyksIF90aGlzLnN0YXRlKTtcblxuICAgICAgdmFyIHRyYWNrUHJvcHMgPSAoMCwgX2lubmVyU2xpZGVyVXRpbHMuZXh0cmFjdE9iamVjdCkoc3BlYywgW1wiZmFkZVwiLCBcImNzc0Vhc2VcIiwgXCJzcGVlZFwiLCBcImluZmluaXRlXCIsIFwiY2VudGVyTW9kZVwiLCBcImZvY3VzT25TZWxlY3RcIiwgXCJjdXJyZW50U2xpZGVcIiwgXCJsYXp5TG9hZFwiLCBcImxhenlMb2FkZWRMaXN0XCIsIFwicnRsXCIsIFwic2xpZGVXaWR0aFwiLCBcInNsaWRlSGVpZ2h0XCIsIFwibGlzdEhlaWdodFwiLCBcInZlcnRpY2FsXCIsIFwic2xpZGVzVG9TaG93XCIsIFwic2xpZGVzVG9TY3JvbGxcIiwgXCJzbGlkZUNvdW50XCIsIFwidHJhY2tTdHlsZVwiLCBcInZhcmlhYmxlV2lkdGhcIiwgXCJ1bnNsaWNrXCIsIFwiY2VudGVyUGFkZGluZ1wiLCBcInRhcmdldFNsaWRlXCIsIFwidXNlQ1NTXCJdKTtcbiAgICAgIHZhciBwYXVzZU9uSG92ZXIgPSBfdGhpcy5wcm9wcy5wYXVzZU9uSG92ZXI7XG4gICAgICB0cmFja1Byb3BzID0gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCB0cmFja1Byb3BzKSwge30sIHtcbiAgICAgICAgb25Nb3VzZUVudGVyOiBwYXVzZU9uSG92ZXIgPyBfdGhpcy5vblRyYWNrT3ZlciA6IG51bGwsXG4gICAgICAgIG9uTW91c2VMZWF2ZTogcGF1c2VPbkhvdmVyID8gX3RoaXMub25UcmFja0xlYXZlIDogbnVsbCxcbiAgICAgICAgb25Nb3VzZU92ZXI6IHBhdXNlT25Ib3ZlciA/IF90aGlzLm9uVHJhY2tPdmVyIDogbnVsbCxcbiAgICAgICAgZm9jdXNPblNlbGVjdDogX3RoaXMucHJvcHMuZm9jdXNPblNlbGVjdCAmJiBfdGhpcy5jbGlja2FibGUgPyBfdGhpcy5zZWxlY3RIYW5kbGVyIDogbnVsbFxuICAgICAgfSk7XG4gICAgICB2YXIgZG90cztcblxuICAgICAgaWYgKF90aGlzLnByb3BzLmRvdHMgPT09IHRydWUgJiYgX3RoaXMuc3RhdGUuc2xpZGVDb3VudCA+PSBfdGhpcy5wcm9wcy5zbGlkZXNUb1Nob3cpIHtcbiAgICAgICAgdmFyIGRvdFByb3BzID0gKDAsIF9pbm5lclNsaWRlclV0aWxzLmV4dHJhY3RPYmplY3QpKHNwZWMsIFtcImRvdHNDbGFzc1wiLCBcInNsaWRlQ291bnRcIiwgXCJzbGlkZXNUb1Nob3dcIiwgXCJjdXJyZW50U2xpZGVcIiwgXCJzbGlkZXNUb1Njcm9sbFwiLCBcImNsaWNrSGFuZGxlclwiLCBcImNoaWxkcmVuXCIsIFwiY3VzdG9tUGFnaW5nXCIsIFwiaW5maW5pdGVcIiwgXCJhcHBlbmREb3RzXCJdKTtcbiAgICAgICAgdmFyIHBhdXNlT25Eb3RzSG92ZXIgPSBfdGhpcy5wcm9wcy5wYXVzZU9uRG90c0hvdmVyO1xuICAgICAgICBkb3RQcm9wcyA9IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgZG90UHJvcHMpLCB7fSwge1xuICAgICAgICAgIGNsaWNrSGFuZGxlcjogX3RoaXMuY2hhbmdlU2xpZGUsXG4gICAgICAgICAgb25Nb3VzZUVudGVyOiBwYXVzZU9uRG90c0hvdmVyID8gX3RoaXMub25Eb3RzTGVhdmUgOiBudWxsLFxuICAgICAgICAgIG9uTW91c2VPdmVyOiBwYXVzZU9uRG90c0hvdmVyID8gX3RoaXMub25Eb3RzT3ZlciA6IG51bGwsXG4gICAgICAgICAgb25Nb3VzZUxlYXZlOiBwYXVzZU9uRG90c0hvdmVyID8gX3RoaXMub25Eb3RzTGVhdmUgOiBudWxsXG4gICAgICAgIH0pO1xuICAgICAgICBkb3RzID0gLyojX19QVVJFX18qL19yZWFjdFtcImRlZmF1bHRcIl0uY3JlYXRlRWxlbWVudChfZG90cy5Eb3RzLCBkb3RQcm9wcyk7XG4gICAgICB9XG5cbiAgICAgIHZhciBwcmV2QXJyb3csIG5leHRBcnJvdztcbiAgICAgIHZhciBhcnJvd1Byb3BzID0gKDAsIF9pbm5lclNsaWRlclV0aWxzLmV4dHJhY3RPYmplY3QpKHNwZWMsIFtcImluZmluaXRlXCIsIFwiY2VudGVyTW9kZVwiLCBcImN1cnJlbnRTbGlkZVwiLCBcInNsaWRlQ291bnRcIiwgXCJzbGlkZXNUb1Nob3dcIiwgXCJwcmV2QXJyb3dcIiwgXCJuZXh0QXJyb3dcIl0pO1xuICAgICAgYXJyb3dQcm9wcy5jbGlja0hhbmRsZXIgPSBfdGhpcy5jaGFuZ2VTbGlkZTtcblxuICAgICAgaWYgKF90aGlzLnByb3BzLmFycm93cykge1xuICAgICAgICBwcmV2QXJyb3cgPSAvKiNfX1BVUkVfXyovX3JlYWN0W1wiZGVmYXVsdFwiXS5jcmVhdGVFbGVtZW50KF9hcnJvd3MuUHJldkFycm93LCBhcnJvd1Byb3BzKTtcbiAgICAgICAgbmV4dEFycm93ID0gLyojX19QVVJFX18qL19yZWFjdFtcImRlZmF1bHRcIl0uY3JlYXRlRWxlbWVudChfYXJyb3dzLk5leHRBcnJvdywgYXJyb3dQcm9wcyk7XG4gICAgICB9XG5cbiAgICAgIHZhciB2ZXJ0aWNhbEhlaWdodFN0eWxlID0gbnVsbDtcblxuICAgICAgaWYgKF90aGlzLnByb3BzLnZlcnRpY2FsKSB7XG4gICAgICAgIHZlcnRpY2FsSGVpZ2h0U3R5bGUgPSB7XG4gICAgICAgICAgaGVpZ2h0OiBfdGhpcy5zdGF0ZS5saXN0SGVpZ2h0XG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHZhciBjZW50ZXJQYWRkaW5nU3R5bGUgPSBudWxsO1xuXG4gICAgICBpZiAoX3RoaXMucHJvcHMudmVydGljYWwgPT09IGZhbHNlKSB7XG4gICAgICAgIGlmIChfdGhpcy5wcm9wcy5jZW50ZXJNb2RlID09PSB0cnVlKSB7XG4gICAgICAgICAgY2VudGVyUGFkZGluZ1N0eWxlID0ge1xuICAgICAgICAgICAgcGFkZGluZzogXCIwcHggXCIgKyBfdGhpcy5wcm9wcy5jZW50ZXJQYWRkaW5nXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKF90aGlzLnByb3BzLmNlbnRlck1vZGUgPT09IHRydWUpIHtcbiAgICAgICAgICBjZW50ZXJQYWRkaW5nU3R5bGUgPSB7XG4gICAgICAgICAgICBwYWRkaW5nOiBfdGhpcy5wcm9wcy5jZW50ZXJQYWRkaW5nICsgXCIgMHB4XCJcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHZhciBsaXN0U3R5bGUgPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHZlcnRpY2FsSGVpZ2h0U3R5bGUpLCBjZW50ZXJQYWRkaW5nU3R5bGUpO1xuXG4gICAgICB2YXIgdG91Y2hNb3ZlID0gX3RoaXMucHJvcHMudG91Y2hNb3ZlO1xuICAgICAgdmFyIGxpc3RQcm9wcyA9IHtcbiAgICAgICAgY2xhc3NOYW1lOiBcInNsaWNrLWxpc3RcIixcbiAgICAgICAgc3R5bGU6IGxpc3RTdHlsZSxcbiAgICAgICAgb25DbGljazogX3RoaXMuY2xpY2tIYW5kbGVyLFxuICAgICAgICBvbk1vdXNlRG93bjogdG91Y2hNb3ZlID8gX3RoaXMuc3dpcGVTdGFydCA6IG51bGwsXG4gICAgICAgIG9uTW91c2VNb3ZlOiBfdGhpcy5zdGF0ZS5kcmFnZ2luZyAmJiB0b3VjaE1vdmUgPyBfdGhpcy5zd2lwZU1vdmUgOiBudWxsLFxuICAgICAgICBvbk1vdXNlVXA6IHRvdWNoTW92ZSA/IF90aGlzLnN3aXBlRW5kIDogbnVsbCxcbiAgICAgICAgb25Nb3VzZUxlYXZlOiBfdGhpcy5zdGF0ZS5kcmFnZ2luZyAmJiB0b3VjaE1vdmUgPyBfdGhpcy5zd2lwZUVuZCA6IG51bGwsXG4gICAgICAgIG9uVG91Y2hTdGFydDogdG91Y2hNb3ZlID8gX3RoaXMuc3dpcGVTdGFydCA6IG51bGwsXG4gICAgICAgIG9uVG91Y2hNb3ZlOiBfdGhpcy5zdGF0ZS5kcmFnZ2luZyAmJiB0b3VjaE1vdmUgPyBfdGhpcy5zd2lwZU1vdmUgOiBudWxsLFxuICAgICAgICBvblRvdWNoRW5kOiB0b3VjaE1vdmUgPyBfdGhpcy50b3VjaEVuZCA6IG51bGwsXG4gICAgICAgIG9uVG91Y2hDYW5jZWw6IF90aGlzLnN0YXRlLmRyYWdnaW5nICYmIHRvdWNoTW92ZSA/IF90aGlzLnN3aXBlRW5kIDogbnVsbCxcbiAgICAgICAgb25LZXlEb3duOiBfdGhpcy5wcm9wcy5hY2Nlc3NpYmlsaXR5ID8gX3RoaXMua2V5SGFuZGxlciA6IG51bGxcbiAgICAgIH07XG4gICAgICB2YXIgaW5uZXJTbGlkZXJQcm9wcyA9IHtcbiAgICAgICAgY2xhc3NOYW1lOiBjbGFzc05hbWUsXG4gICAgICAgIGRpcjogXCJsdHJcIixcbiAgICAgICAgc3R5bGU6IF90aGlzLnByb3BzLnN0eWxlXG4gICAgICB9O1xuXG4gICAgICBpZiAoX3RoaXMucHJvcHMudW5zbGljaykge1xuICAgICAgICBsaXN0UHJvcHMgPSB7XG4gICAgICAgICAgY2xhc3NOYW1lOiBcInNsaWNrLWxpc3RcIlxuICAgICAgICB9O1xuICAgICAgICBpbm5lclNsaWRlclByb3BzID0ge1xuICAgICAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovX3JlYWN0W1wiZGVmYXVsdFwiXS5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIGlubmVyU2xpZGVyUHJvcHMsICFfdGhpcy5wcm9wcy51bnNsaWNrID8gcHJldkFycm93IDogXCJcIiwgLyojX19QVVJFX18qL19yZWFjdFtcImRlZmF1bHRcIl0uY3JlYXRlRWxlbWVudChcImRpdlwiLCBfZXh0ZW5kcyh7XG4gICAgICAgIHJlZjogX3RoaXMubGlzdFJlZkhhbmRsZXJcbiAgICAgIH0sIGxpc3RQcm9wcyksIC8qI19fUFVSRV9fKi9fcmVhY3RbXCJkZWZhdWx0XCJdLmNyZWF0ZUVsZW1lbnQoX3RyYWNrLlRyYWNrLCBfZXh0ZW5kcyh7XG4gICAgICAgIHJlZjogX3RoaXMudHJhY2tSZWZIYW5kbGVyXG4gICAgICB9LCB0cmFja1Byb3BzKSwgX3RoaXMucHJvcHMuY2hpbGRyZW4pKSwgIV90aGlzLnByb3BzLnVuc2xpY2sgPyBuZXh0QXJyb3cgOiBcIlwiLCAhX3RoaXMucHJvcHMudW5zbGljayA/IGRvdHMgOiBcIlwiKTtcbiAgICB9KTtcblxuICAgIF90aGlzLmxpc3QgPSBudWxsO1xuICAgIF90aGlzLnRyYWNrID0gbnVsbDtcbiAgICBfdGhpcy5zdGF0ZSA9IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgX2luaXRpYWxTdGF0ZVtcImRlZmF1bHRcIl0pLCB7fSwge1xuICAgICAgY3VycmVudFNsaWRlOiBfdGhpcy5wcm9wcy5pbml0aWFsU2xpZGUsXG4gICAgICBzbGlkZUNvdW50OiBfcmVhY3RbXCJkZWZhdWx0XCJdLkNoaWxkcmVuLmNvdW50KF90aGlzLnByb3BzLmNoaWxkcmVuKVxuICAgIH0pO1xuICAgIF90aGlzLmNhbGxiYWNrVGltZXJzID0gW107XG4gICAgX3RoaXMuY2xpY2thYmxlID0gdHJ1ZTtcbiAgICBfdGhpcy5kZWJvdW5jZWRSZXNpemUgPSBudWxsO1xuXG4gICAgdmFyIHNzclN0YXRlID0gX3RoaXMuc3NySW5pdCgpO1xuXG4gICAgX3RoaXMuc3RhdGUgPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIF90aGlzLnN0YXRlKSwgc3NyU3RhdGUpO1xuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhJbm5lclNsaWRlciwgW3tcbiAgICBrZXk6IFwiZGlkUHJvcHNDaGFuZ2VcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZGlkUHJvcHNDaGFuZ2UocHJldlByb3BzKSB7XG4gICAgICB2YXIgc2V0VHJhY2tTdHlsZSA9IGZhbHNlO1xuXG4gICAgICBmb3IgKHZhciBfaTMgPSAwLCBfT2JqZWN0JGtleXMgPSBPYmplY3Qua2V5cyh0aGlzLnByb3BzKTsgX2kzIDwgX09iamVjdCRrZXlzLmxlbmd0aDsgX2kzKyspIHtcbiAgICAgICAgdmFyIGtleSA9IF9PYmplY3Qka2V5c1tfaTNdO1xuXG4gICAgICAgIGlmICghcHJldlByb3BzLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICBzZXRUcmFja1N0eWxlID0gdHJ1ZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChfdHlwZW9mKHByZXZQcm9wc1trZXldKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgcHJldlByb3BzW2tleV0gPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHByZXZQcm9wc1trZXldICE9PSB0aGlzLnByb3BzW2tleV0pIHtcbiAgICAgICAgICBzZXRUcmFja1N0eWxlID0gdHJ1ZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gc2V0VHJhY2tTdHlsZSB8fCBfcmVhY3RbXCJkZWZhdWx0XCJdLkNoaWxkcmVuLmNvdW50KHRoaXMucHJvcHMuY2hpbGRyZW4pICE9PSBfcmVhY3RbXCJkZWZhdWx0XCJdLkNoaWxkcmVuLmNvdW50KHByZXZQcm9wcy5jaGlsZHJlbik7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIElubmVyU2xpZGVyO1xufShfcmVhY3RbXCJkZWZhdWx0XCJdLkNvbXBvbmVudCk7XG5cbmV4cG9ydHMuSW5uZXJTbGlkZXIgPSBJbm5lclNsaWRlcjsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-slick/lib/inner-slider.js\n"); + +/***/ }), + +/***/ "./node_modules/react-slick/lib/slider.js": +/*!************************************************!*\ + !*** ./node_modules/react-slick/lib/slider.js ***! + \************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _innerSlider = __webpack_require__(/*! ./inner-slider */ \"./node_modules/react-slick/lib/inner-slider.js\");\n\nvar _json2mq = _interopRequireDefault(__webpack_require__(/*! json2mq */ \"./node_modules/json2mq/index.js\"));\n\nvar _defaultProps = _interopRequireDefault(__webpack_require__(/*! ./default-props */ \"./node_modules/react-slick/lib/default-props.js\"));\n\nvar _innerSliderUtils = __webpack_require__(/*! ./utils/innerSliderUtils */ \"./node_modules/react-slick/lib/utils/innerSliderUtils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar enquire = (0, _innerSliderUtils.canUseDOM)() && __webpack_require__(/*! enquire.js */ \"./node_modules/enquire.js/src/index.js\");\n\nvar Slider = /*#__PURE__*/function (_React$Component) {\n _inherits(Slider, _React$Component);\n\n var _super = _createSuper(Slider);\n\n function Slider(props) {\n var _this;\n\n _classCallCheck(this, Slider);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"innerSliderRefHandler\", function (ref) {\n return _this.innerSlider = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n return _this.innerSlider.slickPrev();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n return _this.innerSlider.slickNext();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return _this.innerSlider.slickGoTo(slide, dontAnimate);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPause\", function () {\n return _this.innerSlider.pause(\"paused\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPlay\", function () {\n return _this.innerSlider.autoPlay(\"play\");\n });\n\n _this.state = {\n breakpoint: null\n };\n _this._responsiveMediaHandlers = [];\n return _this;\n }\n\n _createClass(Slider, [{\n key: \"media\",\n value: function media(query, handler) {\n // javascript handler for css media query\n enquire.register(query, handler);\n\n this._responsiveMediaHandlers.push({\n query: query,\n handler: handler\n });\n } // handles responsive breakpoints\n\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n // performance monitoring\n //if (process.env.NODE_ENV !== 'production') {\n //const { whyDidYouUpdate } = require('why-did-you-update')\n //whyDidYouUpdate(React)\n //}\n if (this.props.responsive) {\n var breakpoints = this.props.responsive.map(function (breakpt) {\n return breakpt.breakpoint;\n }); // sort them in increasing order of their numerical value\n\n breakpoints.sort(function (x, y) {\n return x - y;\n });\n breakpoints.forEach(function (breakpoint, index) {\n // media query for each breakpoint\n var bQuery;\n\n if (index === 0) {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: 0,\n maxWidth: breakpoint\n });\n } else {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: breakpoints[index - 1] + 1,\n maxWidth: breakpoint\n });\n } // when not using server side rendering\n\n\n (0, _innerSliderUtils.canUseDOM)() && _this2.media(bQuery, function () {\n _this2.setState({\n breakpoint: breakpoint\n });\n });\n }); // Register media query for full screen. Need to support resize from small to large\n // convert javascript object to media query string\n\n var query = (0, _json2mq[\"default\"])({\n minWidth: breakpoints.slice(-1)[0]\n });\n (0, _innerSliderUtils.canUseDOM)() && this.media(query, function () {\n _this2.setState({\n breakpoint: null\n });\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._responsiveMediaHandlers.forEach(function (obj) {\n enquire.unregister(obj.query, obj.handler);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var settings;\n var newProps;\n\n if (this.state.breakpoint) {\n newProps = this.props.responsive.filter(function (resp) {\n return resp.breakpoint === _this3.state.breakpoint;\n });\n settings = newProps[0].settings === \"unslick\" ? \"unslick\" : _objectSpread(_objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props), newProps[0].settings);\n } else {\n settings = _objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props);\n } // force scrolling by one if centerMode is on\n\n\n if (settings.centerMode) {\n if (settings.slidesToScroll > 1 && \"development\" !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 in centerMode, you are using \".concat(settings.slidesToScroll));\n }\n\n settings.slidesToScroll = 1;\n } // force showing one slide and scrolling by one if the fade mode is on\n\n\n if (settings.fade) {\n if (settings.slidesToShow > 1 && \"development\" !== \"production\") {\n console.warn(\"slidesToShow should be equal to 1 when fade is true, you're using \".concat(settings.slidesToShow));\n }\n\n if (settings.slidesToScroll > 1 && \"development\" !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 when fade is true, you're using \".concat(settings.slidesToScroll));\n }\n\n settings.slidesToShow = 1;\n settings.slidesToScroll = 1;\n } // makes sure that children is an array, even when there is only 1 child\n\n\n var children = _react[\"default\"].Children.toArray(this.props.children); // Children may contain false or null, so we should filter them\n // children may also contain string filled with spaces (in certain cases where we use jsx strings)\n\n\n children = children.filter(function (child) {\n if (typeof child === \"string\") {\n return !!child.trim();\n }\n\n return !!child;\n }); // rows and slidesPerRow logic is handled here\n\n if (settings.variableWidth && (settings.rows > 1 || settings.slidesPerRow > 1)) {\n console.warn(\"variableWidth is not supported in case of rows > 1 or slidesPerRow > 1\");\n settings.variableWidth = false;\n }\n\n var newChildren = [];\n var currentWidth = null;\n\n for (var i = 0; i < children.length; i += settings.rows * settings.slidesPerRow) {\n var newSlide = [];\n\n for (var j = i; j < i + settings.rows * settings.slidesPerRow; j += settings.slidesPerRow) {\n var row = [];\n\n for (var k = j; k < j + settings.slidesPerRow; k += 1) {\n if (settings.variableWidth && children[k].props.style) {\n currentWidth = children[k].props.style.width;\n }\n\n if (k >= children.length) break;\n row.push( /*#__PURE__*/_react[\"default\"].cloneElement(children[k], {\n key: 100 * i + 10 * j + k,\n tabIndex: -1,\n style: {\n width: \"\".concat(100 / settings.slidesPerRow, \"%\"),\n display: \"inline-block\"\n }\n }));\n }\n\n newSlide.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: 10 * i + j\n }, row));\n }\n\n if (settings.variableWidth) {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i,\n style: {\n width: currentWidth\n }\n }, newSlide));\n } else {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i\n }, newSlide));\n }\n }\n\n if (settings === \"unslick\") {\n var className = \"regular slider \" + (this.props.className || \"\");\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: className\n }, children);\n } else if (newChildren.length <= settings.slidesToShow) {\n settings.unslick = true;\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(_innerSlider.InnerSlider, _extends({\n style: this.props.style,\n ref: this.innerSliderRefHandler\n }, settings), newChildren);\n }\n }]);\n\n return Slider;\n}(_react[\"default\"].Component);\n\nexports[\"default\"] = Slider;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2xpY2svbGliL3NsaWRlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixrQkFBa0I7O0FBRWxCLG9DQUFvQyxtQkFBTyxDQUFDLDRDQUFPOztBQUVuRCxtQkFBbUIsbUJBQU8sQ0FBQyxzRUFBZ0I7O0FBRTNDLHNDQUFzQyxtQkFBTyxDQUFDLGdEQUFTOztBQUV2RCwyQ0FBMkMsbUJBQU8sQ0FBQyx3RUFBaUI7O0FBRXBFLHdCQUF3QixtQkFBTyxDQUFDLDBGQUEwQjs7QUFFMUQsdUNBQXVDLHVDQUF1Qzs7QUFFOUUsd0JBQXdCLDJCQUEyQiwyRUFBMkUsa0NBQWtDLHdCQUF3QixPQUFPLGtDQUFrQyxtSUFBbUk7O0FBRXBXLHNCQUFzQixnREFBZ0QsZ0JBQWdCLHNCQUFzQixPQUFPLDJCQUEyQiwwQkFBMEIseURBQXlELGlDQUFpQyxrQkFBa0I7O0FBRXBSLDJDQUEyQyxnQ0FBZ0Msb0NBQW9DLG9EQUFvRCw4REFBOEQsaUVBQWlFLEdBQUcsa0NBQWtDOztBQUV2VSxpQ0FBaUMsZ0JBQWdCLHNCQUFzQixPQUFPLHVEQUF1RCxhQUFhLHVEQUF1RCw0Q0FBNEMsS0FBSyw2Q0FBNkMsNkVBQTZFLE9BQU8saURBQWlELG1GQUFtRixPQUFPOztBQUV0Z0Isa0RBQWtELDBDQUEwQzs7QUFFNUYsNENBQTRDLGdCQUFnQixrQkFBa0IsT0FBTywyQkFBMkIsd0RBQXdELGdDQUFnQyx1REFBdUQ7O0FBRS9QLDhEQUE4RCxzRUFBc0UsOERBQThEOztBQUVsTSwyQ0FBMkMsK0RBQStELDZFQUE2RSx5RUFBeUUsZUFBZSx1REFBdUQsR0FBRzs7QUFFelUsaUNBQWlDLDRFQUE0RSxpQkFBaUIsYUFBYTs7QUFFM0ksaUNBQWlDLDZEQUE2RCx5Q0FBeUMsOENBQThDLGlDQUFpQyxtREFBbUQsMkRBQTJELE9BQU8seUNBQXlDOztBQUVwWCxrREFBa0QsMEVBQTBFLGVBQWU7O0FBRTNJLHdDQUF3Qyx1QkFBdUIseUZBQXlGOztBQUV4Six1Q0FBdUMsd0VBQXdFLDBDQUEwQyw4Q0FBOEMsTUFBTSx1RUFBdUUsSUFBSSxlQUFlLFlBQVk7O0FBRW5ULDhCQUE4QixnR0FBZ0csbURBQW1EOztBQUVqTCw0Q0FBNEMsa0JBQWtCLGtDQUFrQyxvRUFBb0UsS0FBSyxPQUFPLG9CQUFvQjs7QUFFcE0sb0RBQW9ELG1CQUFPLENBQUMsMERBQVk7O0FBRXhFO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxNQUFNOztBQUVOLEdBQUc7QUFDSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGdCQUFnQixrQkFBa0I7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVMsR0FBRzs7QUFFWjtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYixZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiLFlBQVk7OztBQUdaO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYixXQUFXO0FBQ1gsU0FBUyxHQUFHO0FBQ1o7O0FBRUE7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1gsU0FBUztBQUNUO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULGdIQUFnSDtBQUNoSCxRQUFRO0FBQ1IsaURBQWlEO0FBQ2pELFFBQVE7OztBQUdSO0FBQ0EsMkNBQTJDLGFBQW9CO0FBQy9EO0FBQ0E7O0FBRUE7QUFDQSxRQUFROzs7QUFHUjtBQUNBLHlDQUF5QyxhQUFvQjtBQUM3RDtBQUNBOztBQUVBLDJDQUEyQyxhQUFvQjtBQUMvRDtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFROzs7QUFHUiw4RUFBOEU7QUFDOUU7OztBQUdBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsT0FBTyxHQUFHOztBQUVWO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEsc0JBQXNCLHFCQUFxQjtBQUMzQzs7QUFFQSx3QkFBd0IsK0NBQStDO0FBQ3ZFOztBQUVBLDBCQUEwQiwrQkFBK0I7QUFDekQ7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7O0FBRUE7QUFDQTtBQUNBLFdBQVc7QUFDWDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1gsVUFBVTtBQUNWO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxRQUFRO0FBQ1I7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSxHQUFHOztBQUVIO0FBQ0EsQ0FBQzs7QUFFRCxrQkFBa0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXNsaWNrL2xpYi9zbGlkZXIuanM/ZDRhYSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xuXG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX2lubmVyU2xpZGVyID0gcmVxdWlyZShcIi4vaW5uZXItc2xpZGVyXCIpO1xuXG52YXIgX2pzb24ybXEgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJqc29uMm1xXCIpKTtcblxudmFyIF9kZWZhdWx0UHJvcHMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL2RlZmF1bHQtcHJvcHNcIikpO1xuXG52YXIgX2lubmVyU2xpZGVyVXRpbHMgPSByZXF1aXJlKFwiLi91dGlscy9pbm5lclNsaWRlclV0aWxzXCIpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiOyBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiB0eXBlb2Ygb2JqOyB9OyB9IGVsc2UgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7IH07IH0gcmV0dXJuIF90eXBlb2Yob2JqKTsgfVxuXG5mdW5jdGlvbiBfZXh0ZW5kcygpIHsgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9OyByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfVxuXG5mdW5jdGlvbiBvd25LZXlzKG9iamVjdCwgZW51bWVyYWJsZU9ubHkpIHsgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhvYmplY3QpOyBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scykgeyB2YXIgc3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMob2JqZWN0KTsgaWYgKGVudW1lcmFibGVPbmx5KSBzeW1ib2xzID0gc3ltYm9scy5maWx0ZXIoZnVuY3Rpb24gKHN5bSkgeyByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmplY3QsIHN5bSkuZW51bWVyYWJsZTsgfSk7IGtleXMucHVzaC5hcHBseShrZXlzLCBzeW1ib2xzKTsgfSByZXR1cm4ga2V5czsgfVxuXG5mdW5jdGlvbiBfb2JqZWN0U3ByZWFkKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldICE9IG51bGwgPyBhcmd1bWVudHNbaV0gOiB7fTsgaWYgKGkgJSAyKSB7IG93bktleXMoT2JqZWN0KHNvdXJjZSksIHRydWUpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgeyBfZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHNvdXJjZVtrZXldKTsgfSk7IH0gZWxzZSBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMpIHsgT2JqZWN0LmRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhzb3VyY2UpKTsgfSBlbHNlIHsgb3duS2V5cyhPYmplY3Qoc291cmNlKSkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzb3VyY2UsIGtleSkpOyB9KTsgfSB9IHJldHVybiB0YXJnZXQ7IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfVxuXG5mdW5jdGlvbiBfY3JlYXRlQ2xhc3MoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgX3NldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKTsgfVxuXG5mdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBfc2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgby5fX3Byb3RvX18gPSBwOyByZXR1cm4gbzsgfTsgcmV0dXJuIF9zZXRQcm90b3R5cGVPZihvLCBwKTsgfVxuXG5mdW5jdGlvbiBfY3JlYXRlU3VwZXIoRGVyaXZlZCkgeyB2YXIgaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCA9IF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKTsgcmV0dXJuIGZ1bmN0aW9uIF9jcmVhdGVTdXBlckludGVybmFsKCkgeyB2YXIgU3VwZXIgPSBfZ2V0UHJvdG90eXBlT2YoRGVyaXZlZCksIHJlc3VsdDsgaWYgKGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QpIHsgdmFyIE5ld1RhcmdldCA9IF9nZXRQcm90b3R5cGVPZih0aGlzKS5jb25zdHJ1Y3RvcjsgcmVzdWx0ID0gUmVmbGVjdC5jb25zdHJ1Y3QoU3VwZXIsIGFyZ3VtZW50cywgTmV3VGFyZ2V0KTsgfSBlbHNlIHsgcmVzdWx0ID0gU3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfSByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgcmVzdWx0KTsgfTsgfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmIChjYWxsICYmIChfdHlwZW9mKGNhbGwpID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpKSB7IHJldHVybiBjYWxsOyB9IHJldHVybiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpOyB9XG5cbmZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikgeyBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gc2VsZjsgfVxuXG5mdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkgeyBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwidW5kZWZpbmVkXCIgfHwgIVJlZmxlY3QuY29uc3RydWN0KSByZXR1cm4gZmFsc2U7IGlmIChSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKSByZXR1cm4gZmFsc2U7IGlmICh0eXBlb2YgUHJveHkgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHRydWU7IHRyeSB7IERhdGUucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoRGF0ZSwgW10sIGZ1bmN0aW9uICgpIHt9KSk7IHJldHVybiB0cnVlOyB9IGNhdGNoIChlKSB7IHJldHVybiBmYWxzZTsgfSB9XG5cbmZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IF9nZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5nZXRQcm90b3R5cGVPZiA6IGZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IHJldHVybiBvLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2Yobyk7IH07IHJldHVybiBfZ2V0UHJvdG90eXBlT2Yobyk7IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KG9iaiwga2V5LCB2YWx1ZSkgeyBpZiAoa2V5IGluIG9iaikgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHsgdmFsdWU6IHZhbHVlLCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlIH0pOyB9IGVsc2UgeyBvYmpba2V5XSA9IHZhbHVlOyB9IHJldHVybiBvYmo7IH1cblxudmFyIGVucXVpcmUgPSAoMCwgX2lubmVyU2xpZGVyVXRpbHMuY2FuVXNlRE9NKSgpICYmIHJlcXVpcmUoXCJlbnF1aXJlLmpzXCIpO1xuXG52YXIgU2xpZGVyID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhTbGlkZXIsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIHZhciBfc3VwZXIgPSBfY3JlYXRlU3VwZXIoU2xpZGVyKTtcblxuICBmdW5jdGlvbiBTbGlkZXIocHJvcHMpIHtcbiAgICB2YXIgX3RoaXM7XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgU2xpZGVyKTtcblxuICAgIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgcHJvcHMpO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcImlubmVyU2xpZGVyUmVmSGFuZGxlclwiLCBmdW5jdGlvbiAocmVmKSB7XG4gICAgICByZXR1cm4gX3RoaXMuaW5uZXJTbGlkZXIgPSByZWY7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwic2xpY2tQcmV2XCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBfdGhpcy5pbm5lclNsaWRlci5zbGlja1ByZXYoKTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJzbGlja05leHRcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIF90aGlzLmlubmVyU2xpZGVyLnNsaWNrTmV4dCgpO1xuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcInNsaWNrR29Ub1wiLCBmdW5jdGlvbiAoc2xpZGUpIHtcbiAgICAgIHZhciBkb250QW5pbWF0ZSA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogZmFsc2U7XG4gICAgICByZXR1cm4gX3RoaXMuaW5uZXJTbGlkZXIuc2xpY2tHb1RvKHNsaWRlLCBkb250QW5pbWF0ZSk7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwic2xpY2tQYXVzZVwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gX3RoaXMuaW5uZXJTbGlkZXIucGF1c2UoXCJwYXVzZWRcIik7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwic2xpY2tQbGF5XCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBfdGhpcy5pbm5lclNsaWRlci5hdXRvUGxheShcInBsYXlcIik7XG4gICAgfSk7XG5cbiAgICBfdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGJyZWFrcG9pbnQ6IG51bGxcbiAgICB9O1xuICAgIF90aGlzLl9yZXNwb25zaXZlTWVkaWFIYW5kbGVycyA9IFtdO1xuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhTbGlkZXIsIFt7XG4gICAga2V5OiBcIm1lZGlhXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIG1lZGlhKHF1ZXJ5LCBoYW5kbGVyKSB7XG4gICAgICAvLyBqYXZhc2NyaXB0IGhhbmRsZXIgZm9yICBjc3MgbWVkaWEgcXVlcnlcbiAgICAgIGVucXVpcmUucmVnaXN0ZXIocXVlcnksIGhhbmRsZXIpO1xuXG4gICAgICB0aGlzLl9yZXNwb25zaXZlTWVkaWFIYW5kbGVycy5wdXNoKHtcbiAgICAgICAgcXVlcnk6IHF1ZXJ5LFxuICAgICAgICBoYW5kbGVyOiBoYW5kbGVyXG4gICAgICB9KTtcbiAgICB9IC8vIGhhbmRsZXMgcmVzcG9uc2l2ZSBicmVha3BvaW50c1xuXG4gIH0sIHtcbiAgICBrZXk6IFwiY29tcG9uZW50RGlkTW91bnRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgLy8gcGVyZm9ybWFuY2UgbW9uaXRvcmluZ1xuICAgICAgLy9pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgLy9jb25zdCB7IHdoeURpZFlvdVVwZGF0ZSB9ID0gcmVxdWlyZSgnd2h5LWRpZC15b3UtdXBkYXRlJylcbiAgICAgIC8vd2h5RGlkWW91VXBkYXRlKFJlYWN0KVxuICAgICAgLy99XG4gICAgICBpZiAodGhpcy5wcm9wcy5yZXNwb25zaXZlKSB7XG4gICAgICAgIHZhciBicmVha3BvaW50cyA9IHRoaXMucHJvcHMucmVzcG9uc2l2ZS5tYXAoZnVuY3Rpb24gKGJyZWFrcHQpIHtcbiAgICAgICAgICByZXR1cm4gYnJlYWtwdC5icmVha3BvaW50O1xuICAgICAgICB9KTsgLy8gc29ydCB0aGVtIGluIGluY3JlYXNpbmcgb3JkZXIgb2YgdGhlaXIgbnVtZXJpY2FsIHZhbHVlXG5cbiAgICAgICAgYnJlYWtwb2ludHMuc29ydChmdW5jdGlvbiAoeCwgeSkge1xuICAgICAgICAgIHJldHVybiB4IC0geTtcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrcG9pbnRzLmZvckVhY2goZnVuY3Rpb24gKGJyZWFrcG9pbnQsIGluZGV4KSB7XG4gICAgICAgICAgLy8gbWVkaWEgcXVlcnkgZm9yIGVhY2ggYnJlYWtwb2ludFxuICAgICAgICAgIHZhciBiUXVlcnk7XG5cbiAgICAgICAgICBpZiAoaW5kZXggPT09IDApIHtcbiAgICAgICAgICAgIGJRdWVyeSA9ICgwLCBfanNvbjJtcVtcImRlZmF1bHRcIl0pKHtcbiAgICAgICAgICAgICAgbWluV2lkdGg6IDAsXG4gICAgICAgICAgICAgIG1heFdpZHRoOiBicmVha3BvaW50XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYlF1ZXJ5ID0gKDAsIF9qc29uMm1xW1wiZGVmYXVsdFwiXSkoe1xuICAgICAgICAgICAgICBtaW5XaWR0aDogYnJlYWtwb2ludHNbaW5kZXggLSAxXSArIDEsXG4gICAgICAgICAgICAgIG1heFdpZHRoOiBicmVha3BvaW50XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IC8vIHdoZW4gbm90IHVzaW5nIHNlcnZlciBzaWRlIHJlbmRlcmluZ1xuXG5cbiAgICAgICAgICAoMCwgX2lubmVyU2xpZGVyVXRpbHMuY2FuVXNlRE9NKSgpICYmIF90aGlzMi5tZWRpYShiUXVlcnksIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIF90aGlzMi5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAgIGJyZWFrcG9pbnQ6IGJyZWFrcG9pbnRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTsgLy8gUmVnaXN0ZXIgbWVkaWEgcXVlcnkgZm9yIGZ1bGwgc2NyZWVuLiBOZWVkIHRvIHN1cHBvcnQgcmVzaXplIGZyb20gc21hbGwgdG8gbGFyZ2VcbiAgICAgICAgLy8gY29udmVydCBqYXZhc2NyaXB0IG9iamVjdCB0byBtZWRpYSBxdWVyeSBzdHJpbmdcblxuICAgICAgICB2YXIgcXVlcnkgPSAoMCwgX2pzb24ybXFbXCJkZWZhdWx0XCJdKSh7XG4gICAgICAgICAgbWluV2lkdGg6IGJyZWFrcG9pbnRzLnNsaWNlKC0xKVswXVxuICAgICAgICB9KTtcbiAgICAgICAgKDAsIF9pbm5lclNsaWRlclV0aWxzLmNhblVzZURPTSkoKSAmJiB0aGlzLm1lZGlhKHF1ZXJ5LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgX3RoaXMyLnNldFN0YXRlKHtcbiAgICAgICAgICAgIGJyZWFrcG9pbnQ6IG51bGxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImNvbXBvbmVudFdpbGxVbm1vdW50XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgdGhpcy5fcmVzcG9uc2l2ZU1lZGlhSGFuZGxlcnMuZm9yRWFjaChmdW5jdGlvbiAob2JqKSB7XG4gICAgICAgIGVucXVpcmUudW5yZWdpc3RlcihvYmoucXVlcnksIG9iai5oYW5kbGVyKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW5kZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgdmFyIF90aGlzMyA9IHRoaXM7XG5cbiAgICAgIHZhciBzZXR0aW5ncztcbiAgICAgIHZhciBuZXdQcm9wcztcblxuICAgICAgaWYgKHRoaXMuc3RhdGUuYnJlYWtwb2ludCkge1xuICAgICAgICBuZXdQcm9wcyA9IHRoaXMucHJvcHMucmVzcG9uc2l2ZS5maWx0ZXIoZnVuY3Rpb24gKHJlc3ApIHtcbiAgICAgICAgICByZXR1cm4gcmVzcC5icmVha3BvaW50ID09PSBfdGhpczMuc3RhdGUuYnJlYWtwb2ludDtcbiAgICAgICAgfSk7XG4gICAgICAgIHNldHRpbmdzID0gbmV3UHJvcHNbMF0uc2V0dGluZ3MgPT09IFwidW5zbGlja1wiID8gXCJ1bnNsaWNrXCIgOiBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgX2RlZmF1bHRQcm9wc1tcImRlZmF1bHRcIl0pLCB0aGlzLnByb3BzKSwgbmV3UHJvcHNbMF0uc2V0dGluZ3MpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0dGluZ3MgPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIF9kZWZhdWx0UHJvcHNbXCJkZWZhdWx0XCJdKSwgdGhpcy5wcm9wcyk7XG4gICAgICB9IC8vIGZvcmNlIHNjcm9sbGluZyBieSBvbmUgaWYgY2VudGVyTW9kZSBpcyBvblxuXG5cbiAgICAgIGlmIChzZXR0aW5ncy5jZW50ZXJNb2RlKSB7XG4gICAgICAgIGlmIChzZXR0aW5ncy5zbGlkZXNUb1Njcm9sbCA+IDEgJiYgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFwic2xpZGVzVG9TY3JvbGwgc2hvdWxkIGJlIGVxdWFsIHRvIDEgaW4gY2VudGVyTW9kZSwgeW91IGFyZSB1c2luZyBcIi5jb25jYXQoc2V0dGluZ3Muc2xpZGVzVG9TY3JvbGwpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldHRpbmdzLnNsaWRlc1RvU2Nyb2xsID0gMTtcbiAgICAgIH0gLy8gZm9yY2Ugc2hvd2luZyBvbmUgc2xpZGUgYW5kIHNjcm9sbGluZyBieSBvbmUgaWYgdGhlIGZhZGUgbW9kZSBpcyBvblxuXG5cbiAgICAgIGlmIChzZXR0aW5ncy5mYWRlKSB7XG4gICAgICAgIGlmIChzZXR0aW5ncy5zbGlkZXNUb1Nob3cgPiAxICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcInNsaWRlc1RvU2hvdyBzaG91bGQgYmUgZXF1YWwgdG8gMSB3aGVuIGZhZGUgaXMgdHJ1ZSwgeW91J3JlIHVzaW5nIFwiLmNvbmNhdChzZXR0aW5ncy5zbGlkZXNUb1Nob3cpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzZXR0aW5ncy5zbGlkZXNUb1Njcm9sbCA+IDEgJiYgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFwic2xpZGVzVG9TY3JvbGwgc2hvdWxkIGJlIGVxdWFsIHRvIDEgd2hlbiBmYWRlIGlzIHRydWUsIHlvdSdyZSB1c2luZyBcIi5jb25jYXQoc2V0dGluZ3Muc2xpZGVzVG9TY3JvbGwpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldHRpbmdzLnNsaWRlc1RvU2hvdyA9IDE7XG4gICAgICAgIHNldHRpbmdzLnNsaWRlc1RvU2Nyb2xsID0gMTtcbiAgICAgIH0gLy8gbWFrZXMgc3VyZSB0aGF0IGNoaWxkcmVuIGlzIGFuIGFycmF5LCBldmVuIHdoZW4gdGhlcmUgaXMgb25seSAxIGNoaWxkXG5cblxuICAgICAgdmFyIGNoaWxkcmVuID0gX3JlYWN0W1wiZGVmYXVsdFwiXS5DaGlsZHJlbi50b0FycmF5KHRoaXMucHJvcHMuY2hpbGRyZW4pOyAvLyBDaGlsZHJlbiBtYXkgY29udGFpbiBmYWxzZSBvciBudWxsLCBzbyB3ZSBzaG91bGQgZmlsdGVyIHRoZW1cbiAgICAgIC8vIGNoaWxkcmVuIG1heSBhbHNvIGNvbnRhaW4gc3RyaW5nIGZpbGxlZCB3aXRoIHNwYWNlcyAoaW4gY2VydGFpbiBjYXNlcyB3aGVyZSB3ZSB1c2UganN4IHN0cmluZ3MpXG5cblxuICAgICAgY2hpbGRyZW4gPSBjaGlsZHJlbi5maWx0ZXIoZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgICAgIGlmICh0eXBlb2YgY2hpbGQgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICByZXR1cm4gISFjaGlsZC50cmltKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gISFjaGlsZDtcbiAgICAgIH0pOyAvLyByb3dzIGFuZCBzbGlkZXNQZXJSb3cgbG9naWMgaXMgaGFuZGxlZCBoZXJlXG5cbiAgICAgIGlmIChzZXR0aW5ncy52YXJpYWJsZVdpZHRoICYmIChzZXR0aW5ncy5yb3dzID4gMSB8fCBzZXR0aW5ncy5zbGlkZXNQZXJSb3cgPiAxKSkge1xuICAgICAgICBjb25zb2xlLndhcm4oXCJ2YXJpYWJsZVdpZHRoIGlzIG5vdCBzdXBwb3J0ZWQgaW4gY2FzZSBvZiByb3dzID4gMSBvciBzbGlkZXNQZXJSb3cgPiAxXCIpO1xuICAgICAgICBzZXR0aW5ncy52YXJpYWJsZVdpZHRoID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIHZhciBuZXdDaGlsZHJlbiA9IFtdO1xuICAgICAgdmFyIGN1cnJlbnRXaWR0aCA9IG51bGw7XG5cbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpICs9IHNldHRpbmdzLnJvd3MgKiBzZXR0aW5ncy5zbGlkZXNQZXJSb3cpIHtcbiAgICAgICAgdmFyIG5ld1NsaWRlID0gW107XG5cbiAgICAgICAgZm9yICh2YXIgaiA9IGk7IGogPCBpICsgc2V0dGluZ3Mucm93cyAqIHNldHRpbmdzLnNsaWRlc1BlclJvdzsgaiArPSBzZXR0aW5ncy5zbGlkZXNQZXJSb3cpIHtcbiAgICAgICAgICB2YXIgcm93ID0gW107XG5cbiAgICAgICAgICBmb3IgKHZhciBrID0gajsgayA8IGogKyBzZXR0aW5ncy5zbGlkZXNQZXJSb3c7IGsgKz0gMSkge1xuICAgICAgICAgICAgaWYgKHNldHRpbmdzLnZhcmlhYmxlV2lkdGggJiYgY2hpbGRyZW5ba10ucHJvcHMuc3R5bGUpIHtcbiAgICAgICAgICAgICAgY3VycmVudFdpZHRoID0gY2hpbGRyZW5ba10ucHJvcHMuc3R5bGUud2lkdGg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChrID49IGNoaWxkcmVuLmxlbmd0aCkgYnJlYWs7XG4gICAgICAgICAgICByb3cucHVzaCggLyojX19QVVJFX18qL19yZWFjdFtcImRlZmF1bHRcIl0uY2xvbmVFbGVtZW50KGNoaWxkcmVuW2tdLCB7XG4gICAgICAgICAgICAgIGtleTogMTAwICogaSArIDEwICogaiArIGssXG4gICAgICAgICAgICAgIHRhYkluZGV4OiAtMSxcbiAgICAgICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogXCJcIi5jb25jYXQoMTAwIC8gc2V0dGluZ3Muc2xpZGVzUGVyUm93LCBcIiVcIiksXG4gICAgICAgICAgICAgICAgZGlzcGxheTogXCJpbmxpbmUtYmxvY2tcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbmV3U2xpZGUucHVzaCggLyojX19QVVJFX18qL19yZWFjdFtcImRlZmF1bHRcIl0uY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgICAgICBrZXk6IDEwICogaSArIGpcbiAgICAgICAgICB9LCByb3cpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzZXR0aW5ncy52YXJpYWJsZVdpZHRoKSB7XG4gICAgICAgICAgbmV3Q2hpbGRyZW4ucHVzaCggLyojX19QVVJFX18qL19yZWFjdFtcImRlZmF1bHRcIl0uY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgICAgICBrZXk6IGksXG4gICAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgICB3aWR0aDogY3VycmVudFdpZHRoXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSwgbmV3U2xpZGUpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBuZXdDaGlsZHJlbi5wdXNoKCAvKiNfX1BVUkVfXyovX3JlYWN0W1wiZGVmYXVsdFwiXS5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgICAgICAgIGtleTogaVxuICAgICAgICAgIH0sIG5ld1NsaWRlKSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHNldHRpbmdzID09PSBcInVuc2xpY2tcIikge1xuICAgICAgICB2YXIgY2xhc3NOYW1lID0gXCJyZWd1bGFyIHNsaWRlciBcIiArICh0aGlzLnByb3BzLmNsYXNzTmFtZSB8fCBcIlwiKTtcbiAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9fcmVhY3RbXCJkZWZhdWx0XCJdLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lXG4gICAgICAgIH0sIGNoaWxkcmVuKTtcbiAgICAgIH0gZWxzZSBpZiAobmV3Q2hpbGRyZW4ubGVuZ3RoIDw9IHNldHRpbmdzLnNsaWRlc1RvU2hvdykge1xuICAgICAgICBzZXR0aW5ncy51bnNsaWNrID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9fcmVhY3RbXCJkZWZhdWx0XCJdLmNyZWF0ZUVsZW1lbnQoX2lubmVyU2xpZGVyLklubmVyU2xpZGVyLCBfZXh0ZW5kcyh7XG4gICAgICAgIHN0eWxlOiB0aGlzLnByb3BzLnN0eWxlLFxuICAgICAgICByZWY6IHRoaXMuaW5uZXJTbGlkZXJSZWZIYW5kbGVyXG4gICAgICB9LCBzZXR0aW5ncyksIG5ld0NoaWxkcmVuKTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gU2xpZGVyO1xufShfcmVhY3RbXCJkZWZhdWx0XCJdLkNvbXBvbmVudCk7XG5cbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gU2xpZGVyOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-slick/lib/slider.js\n"); + +/***/ }), + +/***/ "./node_modules/react-slick/lib/track.js": +/*!***********************************************!*\ + !*** ./node_modules/react-slick/lib/track.js ***! + \***********************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.Track = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _classnames = _interopRequireDefault(__webpack_require__(/*! classnames */ \"./node_modules/classnames/index.js\"));\n\nvar _innerSliderUtils = __webpack_require__(/*! ./utils/innerSliderUtils */ \"./node_modules/react-slick/lib/utils/innerSliderUtils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// given specifications/props for a slide, fetch all the classes that need to be applied to the slide\nvar getSlideClasses = function getSlideClasses(spec) {\n var slickActive, slickCenter, slickCloned;\n var centerOffset, index;\n\n if (spec.rtl) {\n index = spec.slideCount - 1 - spec.index;\n } else {\n index = spec.index;\n }\n\n slickCloned = index < 0 || index >= spec.slideCount;\n\n if (spec.centerMode) {\n centerOffset = Math.floor(spec.slidesToShow / 2);\n slickCenter = (index - spec.currentSlide) % spec.slideCount === 0;\n\n if (index > spec.currentSlide - centerOffset - 1 && index <= spec.currentSlide + centerOffset) {\n slickActive = true;\n }\n } else {\n slickActive = spec.currentSlide <= index && index < spec.currentSlide + spec.slidesToShow;\n }\n\n var focusedSlide;\n\n if (spec.targetSlide < 0) {\n focusedSlide = spec.targetSlide + spec.slideCount;\n } else if (spec.targetSlide >= spec.slideCount) {\n focusedSlide = spec.targetSlide - spec.slideCount;\n } else {\n focusedSlide = spec.targetSlide;\n }\n\n var slickCurrent = index === focusedSlide;\n return {\n \"slick-slide\": true,\n \"slick-active\": slickActive,\n \"slick-center\": slickCenter,\n \"slick-cloned\": slickCloned,\n \"slick-current\": slickCurrent // dubious in case of RTL\n\n };\n};\n\nvar getSlideStyle = function getSlideStyle(spec) {\n var style = {};\n\n if (spec.variableWidth === undefined || spec.variableWidth === false) {\n style.width = spec.slideWidth;\n }\n\n if (spec.fade) {\n style.position = \"relative\";\n\n if (spec.vertical) {\n style.top = -spec.index * parseInt(spec.slideHeight);\n } else {\n style.left = -spec.index * parseInt(spec.slideWidth);\n }\n\n style.opacity = spec.currentSlide === spec.index ? 1 : 0;\n\n if (spec.useCSS) {\n style.transition = \"opacity \" + spec.speed + \"ms \" + spec.cssEase + \", \" + \"visibility \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n\n return style;\n};\n\nvar getKey = function getKey(child, fallbackKey) {\n return child.key || fallbackKey;\n};\n\nvar renderSlides = function renderSlides(spec) {\n var key;\n var slides = [];\n var preCloneSlides = [];\n var postCloneSlides = [];\n\n var childrenCount = _react[\"default\"].Children.count(spec.children);\n\n var startIndex = (0, _innerSliderUtils.lazyStartIndex)(spec);\n var endIndex = (0, _innerSliderUtils.lazyEndIndex)(spec);\n\n _react[\"default\"].Children.forEach(spec.children, function (elem, index) {\n var child;\n var childOnClickOptions = {\n message: \"children\",\n index: index,\n slidesToScroll: spec.slidesToScroll,\n currentSlide: spec.currentSlide\n }; // in case of lazyLoad, whether or not we want to fetch the slide\n\n if (!spec.lazyLoad || spec.lazyLoad && spec.lazyLoadedList.indexOf(index) >= 0) {\n child = elem;\n } else {\n child = /*#__PURE__*/_react[\"default\"].createElement(\"div\", null);\n }\n\n var childStyle = getSlideStyle(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n }));\n var slideClass = child.props.className || \"\";\n var slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n })); // push a cloned element of the desired slide\n\n slides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"original\" + getKey(child, index),\n \"data-index\": index,\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n tabIndex: \"-1\",\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({\n outline: \"none\"\n }, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n })); // if slide needs to be precloned or postcloned\n\n if (spec.infinite && spec.fade === false) {\n var preCloneNo = childrenCount - index;\n\n if (preCloneNo <= (0, _innerSliderUtils.getPreClones)(spec) && childrenCount !== spec.slidesToShow) {\n key = -preCloneNo;\n\n if (key >= startIndex) {\n child = elem;\n }\n\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n preCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"precloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n\n if (childrenCount !== spec.slidesToShow) {\n key = childrenCount + index;\n\n if (key < endIndex) {\n child = elem;\n }\n\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n postCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"postcloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n }\n });\n\n if (spec.rtl) {\n return preCloneSlides.concat(slides, postCloneSlides).reverse();\n } else {\n return preCloneSlides.concat(slides, postCloneSlides);\n }\n};\n\nvar Track = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Track, _React$PureComponent);\n\n var _super = _createSuper(Track);\n\n function Track() {\n var _this;\n\n _classCallCheck(this, Track);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"node\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"handleRef\", function (ref) {\n _this.node = ref;\n });\n\n return _this;\n }\n\n _createClass(Track, [{\n key: \"render\",\n value: function render() {\n var slides = renderSlides(this.props);\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave;\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: this.handleRef,\n className: \"slick-track\",\n style: this.props.trackStyle\n }, mouseEvents), slides);\n }\n }]);\n\n return Track;\n}(_react[\"default\"].PureComponent);\n\nexports.Track = Track;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2xpY2svbGliL3RyYWNrLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGFBQWE7O0FBRWIsb0NBQW9DLG1CQUFPLENBQUMsNENBQU87O0FBRW5ELHlDQUF5QyxtQkFBTyxDQUFDLHNEQUFZOztBQUU3RCx3QkFBd0IsbUJBQU8sQ0FBQywwRkFBMEI7O0FBRTFELHVDQUF1Qyx1Q0FBdUM7O0FBRTlFLHdCQUF3QiwyQkFBMkIsMkVBQTJFLGtDQUFrQyx3QkFBd0IsT0FBTyxrQ0FBa0MsbUlBQW1JOztBQUVwVyxzQkFBc0IsZ0RBQWdELGdCQUFnQixzQkFBc0IsT0FBTywyQkFBMkIsMEJBQTBCLHlEQUF5RCxpQ0FBaUMsa0JBQWtCOztBQUVwUixrREFBa0QsMENBQTBDOztBQUU1Riw0Q0FBNEMsZ0JBQWdCLGtCQUFrQixPQUFPLDJCQUEyQix3REFBd0QsZ0NBQWdDLHVEQUF1RDs7QUFFL1AsOERBQThELHNFQUFzRSw4REFBOEQ7O0FBRWxNLDJDQUEyQywrREFBK0QsNkVBQTZFLHlFQUF5RSxlQUFlLHVEQUF1RCxHQUFHOztBQUV6VSxpQ0FBaUMsNEVBQTRFLGlCQUFpQixhQUFhOztBQUUzSSxpQ0FBaUMsNkRBQTZELHlDQUF5Qyw4Q0FBOEMsaUNBQWlDLG1EQUFtRCwyREFBMkQsT0FBTyx5Q0FBeUM7O0FBRXBYLGtEQUFrRCwwRUFBMEUsZUFBZTs7QUFFM0ksd0NBQXdDLHVCQUF1Qix5RkFBeUY7O0FBRXhKLHVDQUF1Qyx3RUFBd0UsMENBQTBDLDhDQUE4QyxNQUFNLHVFQUF1RSxJQUFJLGVBQWUsWUFBWTs7QUFFblQsOEJBQThCLGdHQUFnRyxtREFBbUQ7O0FBRWpMLDJDQUEyQyxnQ0FBZ0Msb0NBQW9DLG9EQUFvRCw4REFBOEQsaUVBQWlFLEdBQUcsa0NBQWtDOztBQUV2VSxpQ0FBaUMsZ0JBQWdCLHNCQUFzQixPQUFPLHVEQUF1RCxhQUFhLHVEQUF1RCw0Q0FBNEMsS0FBSyw2Q0FBNkMsNkVBQTZFLE9BQU8saURBQWlELG1GQUFtRixPQUFPOztBQUV0Z0IsNENBQTRDLGtCQUFrQixrQ0FBa0Msb0VBQW9FLEtBQUssT0FBTyxvQkFBb0I7O0FBRXBNO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTzs7QUFFUDtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUEsaUVBQWlFLFdBQVc7QUFDNUU7QUFDQSxLQUFLO0FBQ0w7QUFDQSxxRUFBcUUsV0FBVztBQUNoRjtBQUNBLEtBQUssSUFBSTs7QUFFVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyx5QkFBeUI7QUFDaEM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUssSUFBSTs7QUFFVDtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLHFFQUFxRSxXQUFXO0FBQ2hGO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtDQUErQyx5QkFBeUI7QUFDeEU7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSxxRUFBcUUsV0FBVztBQUNoRjtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0MseUJBQXlCO0FBQ3hFO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBLHdFQUF3RSxhQUFhO0FBQ3JGO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EsR0FBRzs7QUFFSDtBQUNBLENBQUM7O0FBRUQsYUFBYSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2xpY2svbGliL3RyYWNrLmpzP2MwZmYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLlRyYWNrID0gdm9pZCAwO1xuXG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX2NsYXNzbmFtZXMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJjbGFzc25hbWVzXCIpKTtcblxudmFyIF9pbm5lclNsaWRlclV0aWxzID0gcmVxdWlyZShcIi4vdXRpbHMvaW5uZXJTbGlkZXJVdGlsc1wiKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjsgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiKSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfTsgfSBlbHNlIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9OyB9IHJldHVybiBfdHlwZW9mKG9iaik7IH1cblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfVxuXG5mdW5jdGlvbiBfY3JlYXRlQ2xhc3MoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgX3NldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKTsgfVxuXG5mdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBfc2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgby5fX3Byb3RvX18gPSBwOyByZXR1cm4gbzsgfTsgcmV0dXJuIF9zZXRQcm90b3R5cGVPZihvLCBwKTsgfVxuXG5mdW5jdGlvbiBfY3JlYXRlU3VwZXIoRGVyaXZlZCkgeyB2YXIgaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCA9IF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKTsgcmV0dXJuIGZ1bmN0aW9uIF9jcmVhdGVTdXBlckludGVybmFsKCkgeyB2YXIgU3VwZXIgPSBfZ2V0UHJvdG90eXBlT2YoRGVyaXZlZCksIHJlc3VsdDsgaWYgKGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QpIHsgdmFyIE5ld1RhcmdldCA9IF9nZXRQcm90b3R5cGVPZih0aGlzKS5jb25zdHJ1Y3RvcjsgcmVzdWx0ID0gUmVmbGVjdC5jb25zdHJ1Y3QoU3VwZXIsIGFyZ3VtZW50cywgTmV3VGFyZ2V0KTsgfSBlbHNlIHsgcmVzdWx0ID0gU3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfSByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgcmVzdWx0KTsgfTsgfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmIChjYWxsICYmIChfdHlwZW9mKGNhbGwpID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpKSB7IHJldHVybiBjYWxsOyB9IHJldHVybiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpOyB9XG5cbmZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikgeyBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gc2VsZjsgfVxuXG5mdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkgeyBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwidW5kZWZpbmVkXCIgfHwgIVJlZmxlY3QuY29uc3RydWN0KSByZXR1cm4gZmFsc2U7IGlmIChSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKSByZXR1cm4gZmFsc2U7IGlmICh0eXBlb2YgUHJveHkgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHRydWU7IHRyeSB7IERhdGUucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoRGF0ZSwgW10sIGZ1bmN0aW9uICgpIHt9KSk7IHJldHVybiB0cnVlOyB9IGNhdGNoIChlKSB7IHJldHVybiBmYWxzZTsgfSB9XG5cbmZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IF9nZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5nZXRQcm90b3R5cGVPZiA6IGZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IHJldHVybiBvLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2Yobyk7IH07IHJldHVybiBfZ2V0UHJvdG90eXBlT2Yobyk7IH1cblxuZnVuY3Rpb24gb3duS2V5cyhvYmplY3QsIGVudW1lcmFibGVPbmx5KSB7IHZhciBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KTsgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHsgdmFyIHN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG9iamVjdCk7IGlmIChlbnVtZXJhYmxlT25seSkgc3ltYm9scyA9IHN5bWJvbHMuZmlsdGVyKGZ1bmN0aW9uIChzeW0pIHsgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LCBzeW0pLmVudW1lcmFibGU7IH0pOyBrZXlzLnB1c2guYXBwbHkoa2V5cywgc3ltYm9scyk7IH0gcmV0dXJuIGtleXM7IH1cblxuZnVuY3Rpb24gX29iamVjdFNwcmVhZCh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXSAhPSBudWxsID8gYXJndW1lbnRzW2ldIDoge307IGlmIChpICUgMikgeyBvd25LZXlzKE9iamVjdChzb3VyY2UpLCB0cnVlKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsgX2RlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBzb3VyY2Vba2V5XSk7IH0pOyB9IGVsc2UgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoc291cmNlKSk7IH0gZWxzZSB7IG93bktleXMoT2JqZWN0KHNvdXJjZSkpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc291cmNlLCBrZXkpKTsgfSk7IH0gfSByZXR1cm4gdGFyZ2V0OyB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsgaWYgKGtleSBpbiBvYmopIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsgfSBlbHNlIHsgb2JqW2tleV0gPSB2YWx1ZTsgfSByZXR1cm4gb2JqOyB9XG5cbi8vIGdpdmVuIHNwZWNpZmljYXRpb25zL3Byb3BzIGZvciBhIHNsaWRlLCBmZXRjaCBhbGwgdGhlIGNsYXNzZXMgdGhhdCBuZWVkIHRvIGJlIGFwcGxpZWQgdG8gdGhlIHNsaWRlXG52YXIgZ2V0U2xpZGVDbGFzc2VzID0gZnVuY3Rpb24gZ2V0U2xpZGVDbGFzc2VzKHNwZWMpIHtcbiAgdmFyIHNsaWNrQWN0aXZlLCBzbGlja0NlbnRlciwgc2xpY2tDbG9uZWQ7XG4gIHZhciBjZW50ZXJPZmZzZXQsIGluZGV4O1xuXG4gIGlmIChzcGVjLnJ0bCkge1xuICAgIGluZGV4ID0gc3BlYy5zbGlkZUNvdW50IC0gMSAtIHNwZWMuaW5kZXg7XG4gIH0gZWxzZSB7XG4gICAgaW5kZXggPSBzcGVjLmluZGV4O1xuICB9XG5cbiAgc2xpY2tDbG9uZWQgPSBpbmRleCA8IDAgfHwgaW5kZXggPj0gc3BlYy5zbGlkZUNvdW50O1xuXG4gIGlmIChzcGVjLmNlbnRlck1vZGUpIHtcbiAgICBjZW50ZXJPZmZzZXQgPSBNYXRoLmZsb29yKHNwZWMuc2xpZGVzVG9TaG93IC8gMik7XG4gICAgc2xpY2tDZW50ZXIgPSAoaW5kZXggLSBzcGVjLmN1cnJlbnRTbGlkZSkgJSBzcGVjLnNsaWRlQ291bnQgPT09IDA7XG5cbiAgICBpZiAoaW5kZXggPiBzcGVjLmN1cnJlbnRTbGlkZSAtIGNlbnRlck9mZnNldCAtIDEgJiYgaW5kZXggPD0gc3BlYy5jdXJyZW50U2xpZGUgKyBjZW50ZXJPZmZzZXQpIHtcbiAgICAgIHNsaWNrQWN0aXZlID0gdHJ1ZTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgc2xpY2tBY3RpdmUgPSBzcGVjLmN1cnJlbnRTbGlkZSA8PSBpbmRleCAmJiBpbmRleCA8IHNwZWMuY3VycmVudFNsaWRlICsgc3BlYy5zbGlkZXNUb1Nob3c7XG4gIH1cblxuICB2YXIgZm9jdXNlZFNsaWRlO1xuXG4gIGlmIChzcGVjLnRhcmdldFNsaWRlIDwgMCkge1xuICAgIGZvY3VzZWRTbGlkZSA9IHNwZWMudGFyZ2V0U2xpZGUgKyBzcGVjLnNsaWRlQ291bnQ7XG4gIH0gZWxzZSBpZiAoc3BlYy50YXJnZXRTbGlkZSA+PSBzcGVjLnNsaWRlQ291bnQpIHtcbiAgICBmb2N1c2VkU2xpZGUgPSBzcGVjLnRhcmdldFNsaWRlIC0gc3BlYy5zbGlkZUNvdW50O1xuICB9IGVsc2Uge1xuICAgIGZvY3VzZWRTbGlkZSA9IHNwZWMudGFyZ2V0U2xpZGU7XG4gIH1cblxuICB2YXIgc2xpY2tDdXJyZW50ID0gaW5kZXggPT09IGZvY3VzZWRTbGlkZTtcbiAgcmV0dXJuIHtcbiAgICBcInNsaWNrLXNsaWRlXCI6IHRydWUsXG4gICAgXCJzbGljay1hY3RpdmVcIjogc2xpY2tBY3RpdmUsXG4gICAgXCJzbGljay1jZW50ZXJcIjogc2xpY2tDZW50ZXIsXG4gICAgXCJzbGljay1jbG9uZWRcIjogc2xpY2tDbG9uZWQsXG4gICAgXCJzbGljay1jdXJyZW50XCI6IHNsaWNrQ3VycmVudCAvLyBkdWJpb3VzIGluIGNhc2Ugb2YgUlRMXG5cbiAgfTtcbn07XG5cbnZhciBnZXRTbGlkZVN0eWxlID0gZnVuY3Rpb24gZ2V0U2xpZGVTdHlsZShzcGVjKSB7XG4gIHZhciBzdHlsZSA9IHt9O1xuXG4gIGlmIChzcGVjLnZhcmlhYmxlV2lkdGggPT09IHVuZGVmaW5lZCB8fCBzcGVjLnZhcmlhYmxlV2lkdGggPT09IGZhbHNlKSB7XG4gICAgc3R5bGUud2lkdGggPSBzcGVjLnNsaWRlV2lkdGg7XG4gIH1cblxuICBpZiAoc3BlYy5mYWRlKSB7XG4gICAgc3R5bGUucG9zaXRpb24gPSBcInJlbGF0aXZlXCI7XG5cbiAgICBpZiAoc3BlYy52ZXJ0aWNhbCkge1xuICAgICAgc3R5bGUudG9wID0gLXNwZWMuaW5kZXggKiBwYXJzZUludChzcGVjLnNsaWRlSGVpZ2h0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3R5bGUubGVmdCA9IC1zcGVjLmluZGV4ICogcGFyc2VJbnQoc3BlYy5zbGlkZVdpZHRoKTtcbiAgICB9XG5cbiAgICBzdHlsZS5vcGFjaXR5ID0gc3BlYy5jdXJyZW50U2xpZGUgPT09IHNwZWMuaW5kZXggPyAxIDogMDtcblxuICAgIGlmIChzcGVjLnVzZUNTUykge1xuICAgICAgc3R5bGUudHJhbnNpdGlvbiA9IFwib3BhY2l0eSBcIiArIHNwZWMuc3BlZWQgKyBcIm1zIFwiICsgc3BlYy5jc3NFYXNlICsgXCIsIFwiICsgXCJ2aXNpYmlsaXR5IFwiICsgc3BlYy5zcGVlZCArIFwibXMgXCIgKyBzcGVjLmNzc0Vhc2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0eWxlO1xufTtcblxudmFyIGdldEtleSA9IGZ1bmN0aW9uIGdldEtleShjaGlsZCwgZmFsbGJhY2tLZXkpIHtcbiAgcmV0dXJuIGNoaWxkLmtleSB8fCBmYWxsYmFja0tleTtcbn07XG5cbnZhciByZW5kZXJTbGlkZXMgPSBmdW5jdGlvbiByZW5kZXJTbGlkZXMoc3BlYykge1xuICB2YXIga2V5O1xuICB2YXIgc2xpZGVzID0gW107XG4gIHZhciBwcmVDbG9uZVNsaWRlcyA9IFtdO1xuICB2YXIgcG9zdENsb25lU2xpZGVzID0gW107XG5cbiAgdmFyIGNoaWxkcmVuQ291bnQgPSBfcmVhY3RbXCJkZWZhdWx0XCJdLkNoaWxkcmVuLmNvdW50KHNwZWMuY2hpbGRyZW4pO1xuXG4gIHZhciBzdGFydEluZGV4ID0gKDAsIF9pbm5lclNsaWRlclV0aWxzLmxhenlTdGFydEluZGV4KShzcGVjKTtcbiAgdmFyIGVuZEluZGV4ID0gKDAsIF9pbm5lclNsaWRlclV0aWxzLmxhenlFbmRJbmRleCkoc3BlYyk7XG5cbiAgX3JlYWN0W1wiZGVmYXVsdFwiXS5DaGlsZHJlbi5mb3JFYWNoKHNwZWMuY2hpbGRyZW4sIGZ1bmN0aW9uIChlbGVtLCBpbmRleCkge1xuICAgIHZhciBjaGlsZDtcbiAgICB2YXIgY2hpbGRPbkNsaWNrT3B0aW9ucyA9IHtcbiAgICAgIG1lc3NhZ2U6IFwiY2hpbGRyZW5cIixcbiAgICAgIGluZGV4OiBpbmRleCxcbiAgICAgIHNsaWRlc1RvU2Nyb2xsOiBzcGVjLnNsaWRlc1RvU2Nyb2xsLFxuICAgICAgY3VycmVudFNsaWRlOiBzcGVjLmN1cnJlbnRTbGlkZVxuICAgIH07IC8vIGluIGNhc2Ugb2YgbGF6eUxvYWQsIHdoZXRoZXIgb3Igbm90IHdlIHdhbnQgdG8gZmV0Y2ggdGhlIHNsaWRlXG5cbiAgICBpZiAoIXNwZWMubGF6eUxvYWQgfHwgc3BlYy5sYXp5TG9hZCAmJiBzcGVjLmxhenlMb2FkZWRMaXN0LmluZGV4T2YoaW5kZXgpID49IDApIHtcbiAgICAgIGNoaWxkID0gZWxlbTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2hpbGQgPSAvKiNfX1BVUkVfXyovX3JlYWN0W1wiZGVmYXVsdFwiXS5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIG51bGwpO1xuICAgIH1cblxuICAgIHZhciBjaGlsZFN0eWxlID0gZ2V0U2xpZGVTdHlsZShfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHNwZWMpLCB7fSwge1xuICAgICAgaW5kZXg6IGluZGV4XG4gICAgfSkpO1xuICAgIHZhciBzbGlkZUNsYXNzID0gY2hpbGQucHJvcHMuY2xhc3NOYW1lIHx8IFwiXCI7XG4gICAgdmFyIHNsaWRlQ2xhc3NlcyA9IGdldFNsaWRlQ2xhc3Nlcyhfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHNwZWMpLCB7fSwge1xuICAgICAgaW5kZXg6IGluZGV4XG4gICAgfSkpOyAvLyBwdXNoIGEgY2xvbmVkIGVsZW1lbnQgb2YgdGhlIGRlc2lyZWQgc2xpZGVcblxuICAgIHNsaWRlcy5wdXNoKCAvKiNfX1BVUkVfXyovX3JlYWN0W1wiZGVmYXVsdFwiXS5jbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgIGtleTogXCJvcmlnaW5hbFwiICsgZ2V0S2V5KGNoaWxkLCBpbmRleCksXG4gICAgICBcImRhdGEtaW5kZXhcIjogaW5kZXgsXG4gICAgICBjbGFzc05hbWU6ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKHNsaWRlQ2xhc3Nlcywgc2xpZGVDbGFzcyksXG4gICAgICB0YWJJbmRleDogXCItMVwiLFxuICAgICAgXCJhcmlhLWhpZGRlblwiOiAhc2xpZGVDbGFzc2VzW1wic2xpY2stYWN0aXZlXCJdLFxuICAgICAgc3R5bGU6IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7XG4gICAgICAgIG91dGxpbmU6IFwibm9uZVwiXG4gICAgICB9LCBjaGlsZC5wcm9wcy5zdHlsZSB8fCB7fSksIGNoaWxkU3R5bGUpLFxuICAgICAgb25DbGljazogZnVuY3Rpb24gb25DbGljayhlKSB7XG4gICAgICAgIGNoaWxkLnByb3BzICYmIGNoaWxkLnByb3BzLm9uQ2xpY2sgJiYgY2hpbGQucHJvcHMub25DbGljayhlKTtcblxuICAgICAgICBpZiAoc3BlYy5mb2N1c09uU2VsZWN0KSB7XG4gICAgICAgICAgc3BlYy5mb2N1c09uU2VsZWN0KGNoaWxkT25DbGlja09wdGlvbnMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSkpOyAvLyBpZiBzbGlkZSBuZWVkcyB0byBiZSBwcmVjbG9uZWQgb3IgcG9zdGNsb25lZFxuXG4gICAgaWYgKHNwZWMuaW5maW5pdGUgJiYgc3BlYy5mYWRlID09PSBmYWxzZSkge1xuICAgICAgdmFyIHByZUNsb25lTm8gPSBjaGlsZHJlbkNvdW50IC0gaW5kZXg7XG5cbiAgICAgIGlmIChwcmVDbG9uZU5vIDw9ICgwLCBfaW5uZXJTbGlkZXJVdGlscy5nZXRQcmVDbG9uZXMpKHNwZWMpICYmIGNoaWxkcmVuQ291bnQgIT09IHNwZWMuc2xpZGVzVG9TaG93KSB7XG4gICAgICAgIGtleSA9IC1wcmVDbG9uZU5vO1xuXG4gICAgICAgIGlmIChrZXkgPj0gc3RhcnRJbmRleCkge1xuICAgICAgICAgIGNoaWxkID0gZWxlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNsaWRlQ2xhc3NlcyA9IGdldFNsaWRlQ2xhc3Nlcyhfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHNwZWMpLCB7fSwge1xuICAgICAgICAgIGluZGV4OiBrZXlcbiAgICAgICAgfSkpO1xuICAgICAgICBwcmVDbG9uZVNsaWRlcy5wdXNoKCAvKiNfX1BVUkVfXyovX3JlYWN0W1wiZGVmYXVsdFwiXS5jbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICBrZXk6IFwicHJlY2xvbmVkXCIgKyBnZXRLZXkoY2hpbGQsIGtleSksXG4gICAgICAgICAgXCJkYXRhLWluZGV4XCI6IGtleSxcbiAgICAgICAgICB0YWJJbmRleDogXCItMVwiLFxuICAgICAgICAgIGNsYXNzTmFtZTogKDAsIF9jbGFzc25hbWVzW1wiZGVmYXVsdFwiXSkoc2xpZGVDbGFzc2VzLCBzbGlkZUNsYXNzKSxcbiAgICAgICAgICBcImFyaWEtaGlkZGVuXCI6ICFzbGlkZUNsYXNzZXNbXCJzbGljay1hY3RpdmVcIl0sXG4gICAgICAgICAgc3R5bGU6IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgY2hpbGQucHJvcHMuc3R5bGUgfHwge30pLCBjaGlsZFN0eWxlKSxcbiAgICAgICAgICBvbkNsaWNrOiBmdW5jdGlvbiBvbkNsaWNrKGUpIHtcbiAgICAgICAgICAgIGNoaWxkLnByb3BzICYmIGNoaWxkLnByb3BzLm9uQ2xpY2sgJiYgY2hpbGQucHJvcHMub25DbGljayhlKTtcblxuICAgICAgICAgICAgaWYgKHNwZWMuZm9jdXNPblNlbGVjdCkge1xuICAgICAgICAgICAgICBzcGVjLmZvY3VzT25TZWxlY3QoY2hpbGRPbkNsaWNrT3B0aW9ucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChjaGlsZHJlbkNvdW50ICE9PSBzcGVjLnNsaWRlc1RvU2hvdykge1xuICAgICAgICBrZXkgPSBjaGlsZHJlbkNvdW50ICsgaW5kZXg7XG5cbiAgICAgICAgaWYgKGtleSA8IGVuZEluZGV4KSB7XG4gICAgICAgICAgY2hpbGQgPSBlbGVtO1xuICAgICAgICB9XG5cbiAgICAgICAgc2xpZGVDbGFzc2VzID0gZ2V0U2xpZGVDbGFzc2VzKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgc3BlYyksIHt9LCB7XG4gICAgICAgICAgaW5kZXg6IGtleVxuICAgICAgICB9KSk7XG4gICAgICAgIHBvc3RDbG9uZVNsaWRlcy5wdXNoKCAvKiNfX1BVUkVfXyovX3JlYWN0W1wiZGVmYXVsdFwiXS5jbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICBrZXk6IFwicG9zdGNsb25lZFwiICsgZ2V0S2V5KGNoaWxkLCBrZXkpLFxuICAgICAgICAgIFwiZGF0YS1pbmRleFwiOiBrZXksXG4gICAgICAgICAgdGFiSW5kZXg6IFwiLTFcIixcbiAgICAgICAgICBjbGFzc05hbWU6ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKHNsaWRlQ2xhc3Nlcywgc2xpZGVDbGFzcyksXG4gICAgICAgICAgXCJhcmlhLWhpZGRlblwiOiAhc2xpZGVDbGFzc2VzW1wic2xpY2stYWN0aXZlXCJdLFxuICAgICAgICAgIHN0eWxlOiBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIGNoaWxkLnByb3BzLnN0eWxlIHx8IHt9KSwgY2hpbGRTdHlsZSksXG4gICAgICAgICAgb25DbGljazogZnVuY3Rpb24gb25DbGljayhlKSB7XG4gICAgICAgICAgICBjaGlsZC5wcm9wcyAmJiBjaGlsZC5wcm9wcy5vbkNsaWNrICYmIGNoaWxkLnByb3BzLm9uQ2xpY2soZSk7XG5cbiAgICAgICAgICAgIGlmIChzcGVjLmZvY3VzT25TZWxlY3QpIHtcbiAgICAgICAgICAgICAgc3BlYy5mb2N1c09uU2VsZWN0KGNoaWxkT25DbGlja09wdGlvbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSkpO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgaWYgKHNwZWMucnRsKSB7XG4gICAgcmV0dXJuIHByZUNsb25lU2xpZGVzLmNvbmNhdChzbGlkZXMsIHBvc3RDbG9uZVNsaWRlcykucmV2ZXJzZSgpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBwcmVDbG9uZVNsaWRlcy5jb25jYXQoc2xpZGVzLCBwb3N0Q2xvbmVTbGlkZXMpO1xuICB9XG59O1xuXG52YXIgVHJhY2sgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9SZWFjdCRQdXJlQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhUcmFjaywgX1JlYWN0JFB1cmVDb21wb25lbnQpO1xuXG4gIHZhciBfc3VwZXIgPSBfY3JlYXRlU3VwZXIoVHJhY2spO1xuXG4gIGZ1bmN0aW9uIFRyYWNrKCkge1xuICAgIHZhciBfdGhpcztcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBUcmFjayk7XG5cbiAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgIGFyZ3NbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgfVxuXG4gICAgX3RoaXMgPSBfc3VwZXIuY2FsbC5hcHBseShfc3VwZXIsIFt0aGlzXS5jb25jYXQoYXJncykpO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcIm5vZGVcIiwgbnVsbCk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwiaGFuZGxlUmVmXCIsIGZ1bmN0aW9uIChyZWYpIHtcbiAgICAgIF90aGlzLm5vZGUgPSByZWY7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoVHJhY2ssIFt7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgc2xpZGVzID0gcmVuZGVyU2xpZGVzKHRoaXMucHJvcHMpO1xuICAgICAgdmFyIF90aGlzJHByb3BzID0gdGhpcy5wcm9wcyxcbiAgICAgICAgICBvbk1vdXNlRW50ZXIgPSBfdGhpcyRwcm9wcy5vbk1vdXNlRW50ZXIsXG4gICAgICAgICAgb25Nb3VzZU92ZXIgPSBfdGhpcyRwcm9wcy5vbk1vdXNlT3ZlcixcbiAgICAgICAgICBvbk1vdXNlTGVhdmUgPSBfdGhpcyRwcm9wcy5vbk1vdXNlTGVhdmU7XG4gICAgICB2YXIgbW91c2VFdmVudHMgPSB7XG4gICAgICAgIG9uTW91c2VFbnRlcjogb25Nb3VzZUVudGVyLFxuICAgICAgICBvbk1vdXNlT3Zlcjogb25Nb3VzZU92ZXIsXG4gICAgICAgIG9uTW91c2VMZWF2ZTogb25Nb3VzZUxlYXZlXG4gICAgICB9O1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9fcmVhY3RbXCJkZWZhdWx0XCJdLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgX2V4dGVuZHMoe1xuICAgICAgICByZWY6IHRoaXMuaGFuZGxlUmVmLFxuICAgICAgICBjbGFzc05hbWU6IFwic2xpY2stdHJhY2tcIixcbiAgICAgICAgc3R5bGU6IHRoaXMucHJvcHMudHJhY2tTdHlsZVxuICAgICAgfSwgbW91c2VFdmVudHMpLCBzbGlkZXMpO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBUcmFjaztcbn0oX3JlYWN0W1wiZGVmYXVsdFwiXS5QdXJlQ29tcG9uZW50KTtcblxuZXhwb3J0cy5UcmFjayA9IFRyYWNrOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-slick/lib/track.js\n"); + +/***/ }), + +/***/ "./node_modules/react-slick/lib/utils/innerSliderUtils.js": +/*!****************************************************************!*\ + !*** ./node_modules/react-slick/lib/utils/innerSliderUtils.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.clamp = clamp;\nexports.canUseDOM = exports.slidesOnLeft = exports.slidesOnRight = exports.siblingDirection = exports.getTotalSlides = exports.getPostClones = exports.getPreClones = exports.getTrackLeft = exports.getTrackAnimateCSS = exports.getTrackCSS = exports.checkSpecKeys = exports.getSlideCount = exports.checkNavigable = exports.getNavigableIndexes = exports.swipeEnd = exports.swipeMove = exports.swipeStart = exports.keyHandler = exports.changeSlide = exports.slideHandler = exports.initializedState = exports.extractObject = exports.canGoNext = exports.getSwipeDirection = exports.getHeight = exports.getWidth = exports.lazySlidesOnRight = exports.lazySlidesOnLeft = exports.lazyEndIndex = exports.lazyStartIndex = exports.getRequiredLazySlides = exports.getOnDemandLazySlides = exports.safePreventDefault = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction clamp(number, lowerBound, upperBound) {\n return Math.max(lowerBound, Math.min(number, upperBound));\n}\n\nvar safePreventDefault = function safePreventDefault(event) {\n var passiveEvents = [\"onTouchStart\", \"onTouchMove\", \"onWheel\"];\n\n if (!passiveEvents.includes(event._reactName)) {\n event.preventDefault();\n }\n};\n\nexports.safePreventDefault = safePreventDefault;\n\nvar getOnDemandLazySlides = function getOnDemandLazySlides(spec) {\n var onDemandSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n if (spec.lazyLoadedList.indexOf(slideIndex) < 0) {\n onDemandSlides.push(slideIndex);\n }\n }\n\n return onDemandSlides;\n}; // return list of slides that need to be present\n\n\nexports.getOnDemandLazySlides = getOnDemandLazySlides;\n\nvar getRequiredLazySlides = function getRequiredLazySlides(spec) {\n var requiredSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n requiredSlides.push(slideIndex);\n }\n\n return requiredSlides;\n}; // startIndex that needs to be present\n\n\nexports.getRequiredLazySlides = getRequiredLazySlides;\n\nvar lazyStartIndex = function lazyStartIndex(spec) {\n return spec.currentSlide - lazySlidesOnLeft(spec);\n};\n\nexports.lazyStartIndex = lazyStartIndex;\n\nvar lazyEndIndex = function lazyEndIndex(spec) {\n return spec.currentSlide + lazySlidesOnRight(spec);\n};\n\nexports.lazyEndIndex = lazyEndIndex;\n\nvar lazySlidesOnLeft = function lazySlidesOnLeft(spec) {\n return spec.centerMode ? Math.floor(spec.slidesToShow / 2) + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : 0;\n};\n\nexports.lazySlidesOnLeft = lazySlidesOnLeft;\n\nvar lazySlidesOnRight = function lazySlidesOnRight(spec) {\n return spec.centerMode ? Math.floor((spec.slidesToShow - 1) / 2) + 1 + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : spec.slidesToShow;\n}; // get width of an element\n\n\nexports.lazySlidesOnRight = lazySlidesOnRight;\n\nvar getWidth = function getWidth(elem) {\n return elem && elem.offsetWidth || 0;\n};\n\nexports.getWidth = getWidth;\n\nvar getHeight = function getHeight(elem) {\n return elem && elem.offsetHeight || 0;\n};\n\nexports.getHeight = getHeight;\n\nvar getSwipeDirection = function getSwipeDirection(touchObject) {\n var verticalSwiping = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var xDist, yDist, r, swipeAngle;\n xDist = touchObject.startX - touchObject.curX;\n yDist = touchObject.startY - touchObject.curY;\n r = Math.atan2(yDist, xDist);\n swipeAngle = Math.round(r * 180 / Math.PI);\n\n if (swipeAngle < 0) {\n swipeAngle = 360 - Math.abs(swipeAngle);\n }\n\n if (swipeAngle <= 45 && swipeAngle >= 0 || swipeAngle <= 360 && swipeAngle >= 315) {\n return \"left\";\n }\n\n if (swipeAngle >= 135 && swipeAngle <= 225) {\n return \"right\";\n }\n\n if (verticalSwiping === true) {\n if (swipeAngle >= 35 && swipeAngle <= 135) {\n return \"up\";\n } else {\n return \"down\";\n }\n }\n\n return \"vertical\";\n}; // whether or not we can go next\n\n\nexports.getSwipeDirection = getSwipeDirection;\n\nvar canGoNext = function canGoNext(spec) {\n var canGo = true;\n\n if (!spec.infinite) {\n if (spec.centerMode && spec.currentSlide >= spec.slideCount - 1) {\n canGo = false;\n } else if (spec.slideCount <= spec.slidesToShow || spec.currentSlide >= spec.slideCount - spec.slidesToShow) {\n canGo = false;\n }\n }\n\n return canGo;\n}; // given an object and a list of keys, return new object with given keys\n\n\nexports.canGoNext = canGoNext;\n\nvar extractObject = function extractObject(spec, keys) {\n var newObject = {};\n keys.forEach(function (key) {\n return newObject[key] = spec[key];\n });\n return newObject;\n}; // get initialized state\n\n\nexports.extractObject = extractObject;\n\nvar initializedState = function initializedState(spec) {\n // spec also contains listRef, trackRef\n var slideCount = _react[\"default\"].Children.count(spec.children);\n\n var listNode = spec.listRef;\n var listWidth = Math.ceil(getWidth(listNode));\n var trackNode = spec.trackRef && spec.trackRef.node;\n var trackWidth = Math.ceil(getWidth(trackNode));\n var slideWidth;\n\n if (!spec.vertical) {\n var centerPaddingAdj = spec.centerMode && parseInt(spec.centerPadding) * 2;\n\n if (typeof spec.centerPadding === \"string\" && spec.centerPadding.slice(-1) === \"%\") {\n centerPaddingAdj *= listWidth / 100;\n }\n\n slideWidth = Math.ceil((listWidth - centerPaddingAdj) / spec.slidesToShow);\n } else {\n slideWidth = listWidth;\n }\n\n var slideHeight = listNode && getHeight(listNode.querySelector('[data-index=\"0\"]'));\n var listHeight = slideHeight * spec.slidesToShow;\n var currentSlide = spec.currentSlide === undefined ? spec.initialSlide : spec.currentSlide;\n\n if (spec.rtl && spec.currentSlide === undefined) {\n currentSlide = slideCount - 1 - spec.initialSlide;\n }\n\n var lazyLoadedList = spec.lazyLoadedList || [];\n var slidesToLoad = getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: currentSlide,\n lazyLoadedList: lazyLoadedList\n }));\n lazyLoadedList = lazyLoadedList.concat(slidesToLoad);\n var state = {\n slideCount: slideCount,\n slideWidth: slideWidth,\n listWidth: listWidth,\n trackWidth: trackWidth,\n currentSlide: currentSlide,\n slideHeight: slideHeight,\n listHeight: listHeight,\n lazyLoadedList: lazyLoadedList\n };\n\n if (spec.autoplaying === null && spec.autoplay) {\n state[\"autoplaying\"] = \"playing\";\n }\n\n return state;\n};\n\nexports.initializedState = initializedState;\n\nvar slideHandler = function slideHandler(spec) {\n var waitForAnimate = spec.waitForAnimate,\n animating = spec.animating,\n fade = spec.fade,\n infinite = spec.infinite,\n index = spec.index,\n slideCount = spec.slideCount,\n lazyLoad = spec.lazyLoad,\n currentSlide = spec.currentSlide,\n centerMode = spec.centerMode,\n slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n useCSS = spec.useCSS;\n var lazyLoadedList = spec.lazyLoadedList;\n if (waitForAnimate && animating) return {};\n var animationSlide = index,\n finalSlide,\n animationLeft,\n finalLeft;\n var state = {},\n nextState = {};\n var targetSlide = infinite ? index : clamp(index, 0, slideCount - 1);\n\n if (fade) {\n if (!infinite && (index < 0 || index >= slideCount)) return {};\n\n if (index < 0) {\n animationSlide = index + slideCount;\n } else if (index >= slideCount) {\n animationSlide = index - slideCount;\n }\n\n if (lazyLoad && lazyLoadedList.indexOf(animationSlide) < 0) {\n lazyLoadedList = lazyLoadedList.concat(animationSlide);\n }\n\n state = {\n animating: true,\n currentSlide: animationSlide,\n lazyLoadedList: lazyLoadedList,\n targetSlide: animationSlide\n };\n nextState = {\n animating: false,\n targetSlide: animationSlide\n };\n } else {\n finalSlide = animationSlide;\n\n if (animationSlide < 0) {\n finalSlide = animationSlide + slideCount;\n if (!infinite) finalSlide = 0;else if (slideCount % slidesToScroll !== 0) finalSlide = slideCount - slideCount % slidesToScroll;\n } else if (!canGoNext(spec) && animationSlide > currentSlide) {\n animationSlide = finalSlide = currentSlide;\n } else if (centerMode && animationSlide >= slideCount) {\n animationSlide = infinite ? slideCount : slideCount - 1;\n finalSlide = infinite ? 0 : slideCount - 1;\n } else if (animationSlide >= slideCount) {\n finalSlide = animationSlide - slideCount;\n if (!infinite) finalSlide = slideCount - slidesToShow;else if (slideCount % slidesToScroll !== 0) finalSlide = 0;\n }\n\n if (!infinite && animationSlide + slidesToShow >= slideCount) {\n finalSlide = slideCount - slidesToShow;\n }\n\n animationLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: animationSlide\n }));\n finalLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: finalSlide\n }));\n\n if (!infinite) {\n if (animationLeft === finalLeft) animationSlide = finalSlide;\n animationLeft = finalLeft;\n }\n\n if (lazyLoad) {\n lazyLoadedList = lazyLoadedList.concat(getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: animationSlide\n })));\n }\n\n if (!useCSS) {\n state = {\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n } else {\n state = {\n animating: true,\n currentSlide: finalSlide,\n trackStyle: getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: animationLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n nextState = {\n animating: false,\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n swipeLeft: null,\n targetSlide: targetSlide\n };\n }\n }\n\n return {\n state: state,\n nextState: nextState\n };\n};\n\nexports.slideHandler = slideHandler;\n\nvar changeSlide = function changeSlide(spec, options) {\n var indexOffset, previousInt, slideOffset, unevenOffset, targetSlide;\n var slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n slideCount = spec.slideCount,\n currentSlide = spec.currentSlide,\n previousTargetSlide = spec.targetSlide,\n lazyLoad = spec.lazyLoad,\n infinite = spec.infinite;\n unevenOffset = slideCount % slidesToScroll !== 0;\n indexOffset = unevenOffset ? 0 : (slideCount - currentSlide) % slidesToScroll;\n\n if (options.message === \"previous\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : slidesToShow - indexOffset;\n targetSlide = currentSlide - slideOffset;\n\n if (lazyLoad && !infinite) {\n previousInt = currentSlide - slideOffset;\n targetSlide = previousInt === -1 ? slideCount - 1 : previousInt;\n }\n\n if (!infinite) {\n targetSlide = previousTargetSlide - slidesToScroll;\n }\n } else if (options.message === \"next\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : indexOffset;\n targetSlide = currentSlide + slideOffset;\n\n if (lazyLoad && !infinite) {\n targetSlide = (currentSlide + slidesToScroll) % slideCount + indexOffset;\n }\n\n if (!infinite) {\n targetSlide = previousTargetSlide + slidesToScroll;\n }\n } else if (options.message === \"dots\") {\n // Click on dots\n targetSlide = options.index * options.slidesToScroll;\n } else if (options.message === \"children\") {\n // Click on the slides\n targetSlide = options.index;\n\n if (infinite) {\n var direction = siblingDirection(_objectSpread(_objectSpread({}, spec), {}, {\n targetSlide: targetSlide\n }));\n\n if (targetSlide > options.currentSlide && direction === \"left\") {\n targetSlide = targetSlide - slideCount;\n } else if (targetSlide < options.currentSlide && direction === \"right\") {\n targetSlide = targetSlide + slideCount;\n }\n }\n } else if (options.message === \"index\") {\n targetSlide = Number(options.index);\n }\n\n return targetSlide;\n};\n\nexports.changeSlide = changeSlide;\n\nvar keyHandler = function keyHandler(e, accessibility, rtl) {\n if (e.target.tagName.match(\"TEXTAREA|INPUT|SELECT\") || !accessibility) return \"\";\n if (e.keyCode === 37) return rtl ? \"next\" : \"previous\";\n if (e.keyCode === 39) return rtl ? \"previous\" : \"next\";\n return \"\";\n};\n\nexports.keyHandler = keyHandler;\n\nvar swipeStart = function swipeStart(e, swipe, draggable) {\n e.target.tagName === \"IMG\" && safePreventDefault(e);\n if (!swipe || !draggable && e.type.indexOf(\"mouse\") !== -1) return \"\";\n return {\n dragging: true,\n touchObject: {\n startX: e.touches ? e.touches[0].pageX : e.clientX,\n startY: e.touches ? e.touches[0].pageY : e.clientY,\n curX: e.touches ? e.touches[0].pageX : e.clientX,\n curY: e.touches ? e.touches[0].pageY : e.clientY\n }\n };\n};\n\nexports.swipeStart = swipeStart;\n\nvar swipeMove = function swipeMove(e, spec) {\n // spec also contains, trackRef and slideIndex\n var scrolling = spec.scrolling,\n animating = spec.animating,\n vertical = spec.vertical,\n swipeToSlide = spec.swipeToSlide,\n verticalSwiping = spec.verticalSwiping,\n rtl = spec.rtl,\n currentSlide = spec.currentSlide,\n edgeFriction = spec.edgeFriction,\n edgeDragged = spec.edgeDragged,\n onEdge = spec.onEdge,\n swiped = spec.swiped,\n swiping = spec.swiping,\n slideCount = spec.slideCount,\n slidesToScroll = spec.slidesToScroll,\n infinite = spec.infinite,\n touchObject = spec.touchObject,\n swipeEvent = spec.swipeEvent,\n listHeight = spec.listHeight,\n listWidth = spec.listWidth;\n if (scrolling) return;\n if (animating) return safePreventDefault(e);\n if (vertical && swipeToSlide && verticalSwiping) safePreventDefault(e);\n var swipeLeft,\n state = {};\n var curLeft = getTrackLeft(spec);\n touchObject.curX = e.touches ? e.touches[0].pageX : e.clientX;\n touchObject.curY = e.touches ? e.touches[0].pageY : e.clientY;\n touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curX - touchObject.startX, 2)));\n var verticalSwipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curY - touchObject.startY, 2)));\n\n if (!verticalSwiping && !swiping && verticalSwipeLength > 10) {\n return {\n scrolling: true\n };\n }\n\n if (verticalSwiping) touchObject.swipeLength = verticalSwipeLength;\n var positionOffset = (!rtl ? 1 : -1) * (touchObject.curX > touchObject.startX ? 1 : -1);\n if (verticalSwiping) positionOffset = touchObject.curY > touchObject.startY ? 1 : -1;\n var dotCount = Math.ceil(slideCount / slidesToScroll);\n var swipeDirection = getSwipeDirection(spec.touchObject, verticalSwiping);\n var touchSwipeLength = touchObject.swipeLength;\n\n if (!infinite) {\n if (currentSlide === 0 && (swipeDirection === \"right\" || swipeDirection === \"down\") || currentSlide + 1 >= dotCount && (swipeDirection === \"left\" || swipeDirection === \"up\") || !canGoNext(spec) && (swipeDirection === \"left\" || swipeDirection === \"up\")) {\n touchSwipeLength = touchObject.swipeLength * edgeFriction;\n\n if (edgeDragged === false && onEdge) {\n onEdge(swipeDirection);\n state[\"edgeDragged\"] = true;\n }\n }\n }\n\n if (!swiped && swipeEvent) {\n swipeEvent(swipeDirection);\n state[\"swiped\"] = true;\n }\n\n if (!vertical) {\n if (!rtl) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n } else {\n swipeLeft = curLeft - touchSwipeLength * positionOffset;\n }\n } else {\n swipeLeft = curLeft + touchSwipeLength * (listHeight / listWidth) * positionOffset;\n }\n\n if (verticalSwiping) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n }\n\n state = _objectSpread(_objectSpread({}, state), {}, {\n touchObject: touchObject,\n swipeLeft: swipeLeft,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: swipeLeft\n }))\n });\n\n if (Math.abs(touchObject.curX - touchObject.startX) < Math.abs(touchObject.curY - touchObject.startY) * 0.8) {\n return state;\n }\n\n if (touchObject.swipeLength > 10) {\n state[\"swiping\"] = true;\n safePreventDefault(e);\n }\n\n return state;\n};\n\nexports.swipeMove = swipeMove;\n\nvar swipeEnd = function swipeEnd(e, spec) {\n var dragging = spec.dragging,\n swipe = spec.swipe,\n touchObject = spec.touchObject,\n listWidth = spec.listWidth,\n touchThreshold = spec.touchThreshold,\n verticalSwiping = spec.verticalSwiping,\n listHeight = spec.listHeight,\n swipeToSlide = spec.swipeToSlide,\n scrolling = spec.scrolling,\n onSwipe = spec.onSwipe,\n targetSlide = spec.targetSlide,\n currentSlide = spec.currentSlide,\n infinite = spec.infinite;\n\n if (!dragging) {\n if (swipe) safePreventDefault(e);\n return {};\n }\n\n var minSwipe = verticalSwiping ? listHeight / touchThreshold : listWidth / touchThreshold;\n var swipeDirection = getSwipeDirection(touchObject, verticalSwiping); // reset the state of touch related state variables.\n\n var state = {\n dragging: false,\n edgeDragged: false,\n scrolling: false,\n swiping: false,\n swiped: false,\n swipeLeft: null,\n touchObject: {}\n };\n\n if (scrolling) {\n return state;\n }\n\n if (!touchObject.swipeLength) {\n return state;\n }\n\n if (touchObject.swipeLength > minSwipe) {\n safePreventDefault(e);\n\n if (onSwipe) {\n onSwipe(swipeDirection);\n }\n\n var slideCount, newSlide;\n var activeSlide = infinite ? currentSlide : targetSlide;\n\n switch (swipeDirection) {\n case \"left\":\n case \"up\":\n newSlide = activeSlide + getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 0;\n break;\n\n case \"right\":\n case \"down\":\n newSlide = activeSlide - getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 1;\n break;\n\n default:\n slideCount = activeSlide;\n }\n\n state[\"triggerSlideHandler\"] = slideCount;\n } else {\n // Adjust the track back to it's original position.\n var currentLeft = getTrackLeft(spec);\n state[\"trackStyle\"] = getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: currentLeft\n }));\n }\n\n return state;\n};\n\nexports.swipeEnd = swipeEnd;\n\nvar getNavigableIndexes = function getNavigableIndexes(spec) {\n var max = spec.infinite ? spec.slideCount * 2 : spec.slideCount;\n var breakpoint = spec.infinite ? spec.slidesToShow * -1 : 0;\n var counter = spec.infinite ? spec.slidesToShow * -1 : 0;\n var indexes = [];\n\n while (breakpoint < max) {\n indexes.push(breakpoint);\n breakpoint = counter + spec.slidesToScroll;\n counter += Math.min(spec.slidesToScroll, spec.slidesToShow);\n }\n\n return indexes;\n};\n\nexports.getNavigableIndexes = getNavigableIndexes;\n\nvar checkNavigable = function checkNavigable(spec, index) {\n var navigables = getNavigableIndexes(spec);\n var prevNavigable = 0;\n\n if (index > navigables[navigables.length - 1]) {\n index = navigables[navigables.length - 1];\n } else {\n for (var n in navigables) {\n if (index < navigables[n]) {\n index = prevNavigable;\n break;\n }\n\n prevNavigable = navigables[n];\n }\n }\n\n return index;\n};\n\nexports.checkNavigable = checkNavigable;\n\nvar getSlideCount = function getSlideCount(spec) {\n var centerOffset = spec.centerMode ? spec.slideWidth * Math.floor(spec.slidesToShow / 2) : 0;\n\n if (spec.swipeToSlide) {\n var swipedSlide;\n var slickList = spec.listRef;\n var slides = slickList.querySelectorAll && slickList.querySelectorAll(\".slick-slide\") || [];\n Array.from(slides).every(function (slide) {\n if (!spec.vertical) {\n if (slide.offsetLeft - centerOffset + getWidth(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n } else {\n if (slide.offsetTop + getHeight(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n }\n\n return true;\n });\n\n if (!swipedSlide) {\n return 0;\n }\n\n var currentIndex = spec.rtl === true ? spec.slideCount - spec.currentSlide : spec.currentSlide;\n var slidesTraversed = Math.abs(swipedSlide.dataset.index - currentIndex) || 1;\n return slidesTraversed;\n } else {\n return spec.slidesToScroll;\n }\n};\n\nexports.getSlideCount = getSlideCount;\n\nvar checkSpecKeys = function checkSpecKeys(spec, keysArray) {\n return keysArray.reduce(function (value, key) {\n return value && spec.hasOwnProperty(key);\n }, true) ? null : console.error(\"Keys Missing:\", spec);\n};\n\nexports.checkSpecKeys = checkSpecKeys;\n\nvar getTrackCSS = function getTrackCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\"]);\n var trackWidth, trackHeight;\n var trackChildren = spec.slideCount + 2 * spec.slidesToShow;\n\n if (!spec.vertical) {\n trackWidth = getTotalSlides(spec) * spec.slideWidth;\n } else {\n trackHeight = trackChildren * spec.slideHeight;\n }\n\n var style = {\n opacity: 1,\n transition: \"\",\n WebkitTransition: \"\"\n };\n\n if (spec.useTransform) {\n var WebkitTransform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var transform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var msTransform = !spec.vertical ? \"translateX(\" + spec.left + \"px)\" : \"translateY(\" + spec.left + \"px)\";\n style = _objectSpread(_objectSpread({}, style), {}, {\n WebkitTransform: WebkitTransform,\n transform: transform,\n msTransform: msTransform\n });\n } else {\n if (spec.vertical) {\n style[\"top\"] = spec.left;\n } else {\n style[\"left\"] = spec.left;\n }\n }\n\n if (spec.fade) style = {\n opacity: 1\n };\n if (trackWidth) style.width = trackWidth;\n if (trackHeight) style.height = trackHeight; // Fallback for IE8\n\n if (window && !window.addEventListener && window.attachEvent) {\n if (!spec.vertical) {\n style.marginLeft = spec.left + \"px\";\n } else {\n style.marginTop = spec.left + \"px\";\n }\n }\n\n return style;\n};\n\nexports.getTrackCSS = getTrackCSS;\n\nvar getTrackAnimateCSS = function getTrackAnimateCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\", \"speed\", \"cssEase\"]);\n var style = getTrackCSS(spec); // useCSS is true by default so it can be undefined\n\n if (spec.useTransform) {\n style.WebkitTransition = \"-webkit-transform \" + spec.speed + \"ms \" + spec.cssEase;\n style.transition = \"transform \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n if (spec.vertical) {\n style.transition = \"top \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n style.transition = \"left \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n\n return style;\n};\n\nexports.getTrackAnimateCSS = getTrackAnimateCSS;\n\nvar getTrackLeft = function getTrackLeft(spec) {\n if (spec.unslick) {\n return 0;\n }\n\n checkSpecKeys(spec, [\"slideIndex\", \"trackRef\", \"infinite\", \"centerMode\", \"slideCount\", \"slidesToShow\", \"slidesToScroll\", \"slideWidth\", \"listWidth\", \"variableWidth\", \"slideHeight\"]);\n var slideIndex = spec.slideIndex,\n trackRef = spec.trackRef,\n infinite = spec.infinite,\n centerMode = spec.centerMode,\n slideCount = spec.slideCount,\n slidesToShow = spec.slidesToShow,\n slidesToScroll = spec.slidesToScroll,\n slideWidth = spec.slideWidth,\n listWidth = spec.listWidth,\n variableWidth = spec.variableWidth,\n slideHeight = spec.slideHeight,\n fade = spec.fade,\n vertical = spec.vertical;\n var slideOffset = 0;\n var targetLeft;\n var targetSlide;\n var verticalOffset = 0;\n\n if (fade || spec.slideCount === 1) {\n return 0;\n }\n\n var slidesToOffset = 0;\n\n if (infinite) {\n slidesToOffset = -getPreClones(spec); // bring active slide to the beginning of visual area\n // if next scroll doesn't have enough children, just reach till the end of original slides instead of shifting slidesToScroll children\n\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = -(slideIndex > slideCount ? slidesToShow - (slideIndex - slideCount) : slideCount % slidesToScroll);\n } // shift current slide to center of the frame\n\n\n if (centerMode) {\n slidesToOffset += parseInt(slidesToShow / 2);\n }\n } else {\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = slidesToShow - slideCount % slidesToScroll;\n }\n\n if (centerMode) {\n slidesToOffset = parseInt(slidesToShow / 2);\n }\n }\n\n slideOffset = slidesToOffset * slideWidth;\n verticalOffset = slidesToOffset * slideHeight;\n\n if (!vertical) {\n targetLeft = slideIndex * slideWidth * -1 + slideOffset;\n } else {\n targetLeft = slideIndex * slideHeight * -1 + verticalOffset;\n }\n\n if (variableWidth === true) {\n var targetSlideIndex;\n var trackElem = trackRef && trackRef.node;\n targetSlideIndex = slideIndex + getPreClones(spec);\n targetSlide = trackElem && trackElem.childNodes[targetSlideIndex];\n targetLeft = targetSlide ? targetSlide.offsetLeft * -1 : 0;\n\n if (centerMode === true) {\n targetSlideIndex = infinite ? slideIndex + getPreClones(spec) : slideIndex;\n targetSlide = trackElem && trackElem.children[targetSlideIndex];\n targetLeft = 0;\n\n for (var slide = 0; slide < targetSlideIndex; slide++) {\n targetLeft -= trackElem && trackElem.children[slide] && trackElem.children[slide].offsetWidth;\n }\n\n targetLeft -= parseInt(spec.centerPadding);\n targetLeft += targetSlide && (listWidth - targetSlide.offsetWidth) / 2;\n }\n }\n\n return targetLeft;\n};\n\nexports.getTrackLeft = getTrackLeft;\n\nvar getPreClones = function getPreClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n\n if (spec.variableWidth) {\n return spec.slideCount;\n }\n\n return spec.slidesToShow + (spec.centerMode ? 1 : 0);\n};\n\nexports.getPreClones = getPreClones;\n\nvar getPostClones = function getPostClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n\n return spec.slideCount;\n};\n\nexports.getPostClones = getPostClones;\n\nvar getTotalSlides = function getTotalSlides(spec) {\n return spec.slideCount === 1 ? 1 : getPreClones(spec) + spec.slideCount + getPostClones(spec);\n};\n\nexports.getTotalSlides = getTotalSlides;\n\nvar siblingDirection = function siblingDirection(spec) {\n if (spec.targetSlide > spec.currentSlide) {\n if (spec.targetSlide > spec.currentSlide + slidesOnRight(spec)) {\n return \"left\";\n }\n\n return \"right\";\n } else {\n if (spec.targetSlide < spec.currentSlide - slidesOnLeft(spec)) {\n return \"right\";\n }\n\n return \"left\";\n }\n};\n\nexports.siblingDirection = siblingDirection;\n\nvar slidesOnRight = function slidesOnRight(_ref) {\n var slidesToShow = _ref.slidesToShow,\n centerMode = _ref.centerMode,\n rtl = _ref.rtl,\n centerPadding = _ref.centerPadding;\n\n // returns no of slides on the right of active slide\n if (centerMode) {\n var right = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) right += 1;\n if (rtl && slidesToShow % 2 === 0) right += 1;\n return right;\n }\n\n if (rtl) {\n return 0;\n }\n\n return slidesToShow - 1;\n};\n\nexports.slidesOnRight = slidesOnRight;\n\nvar slidesOnLeft = function slidesOnLeft(_ref2) {\n var slidesToShow = _ref2.slidesToShow,\n centerMode = _ref2.centerMode,\n rtl = _ref2.rtl,\n centerPadding = _ref2.centerPadding;\n\n // returns no of slides on the left of active slide\n if (centerMode) {\n var left = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) left += 1;\n if (!rtl && slidesToShow % 2 === 0) left += 1;\n return left;\n }\n\n if (rtl) {\n return slidesToShow - 1;\n }\n\n return 0;\n};\n\nexports.slidesOnLeft = slidesOnLeft;\n\nvar canUseDOM = function canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n};\n\nexports.canUseDOM = canUseDOM;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2xpY2svbGliL3V0aWxzL2lubmVyU2xpZGVyVXRpbHMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsYUFBYTtBQUNiLGlCQUFpQixHQUFHLG9CQUFvQixHQUFHLHFCQUFxQixHQUFHLHdCQUF3QixHQUFHLHNCQUFzQixHQUFHLHFCQUFxQixHQUFHLG9CQUFvQixHQUFHLG9CQUFvQixHQUFHLDBCQUEwQixHQUFHLG1CQUFtQixHQUFHLHFCQUFxQixHQUFHLHFCQUFxQixHQUFHLHNCQUFzQixHQUFHLDJCQUEyQixHQUFHLGdCQUFnQixHQUFHLGlCQUFpQixHQUFHLGtCQUFrQixHQUFHLGtCQUFrQixHQUFHLG1CQUFtQixHQUFHLG9CQUFvQixHQUFHLHdCQUF3QixHQUFHLHFCQUFxQixHQUFHLGlCQUFpQixHQUFHLHlCQUF5QixHQUFHLGlCQUFpQixHQUFHLGdCQUFnQixHQUFHLHlCQUF5QixHQUFHLHdCQUF3QixHQUFHLG9CQUFvQixHQUFHLHNCQUFzQixHQUFHLDZCQUE2QixHQUFHLDZCQUE2QixHQUFHLDBCQUEwQjs7QUFFaHlCLG9DQUFvQyxtQkFBTyxDQUFDLDRDQUFPOztBQUVuRCx1Q0FBdUMsdUNBQXVDOztBQUU5RSwyQ0FBMkMsZ0NBQWdDLG9DQUFvQyxvREFBb0QsOERBQThELGlFQUFpRSxHQUFHLGtDQUFrQzs7QUFFdlUsaUNBQWlDLGdCQUFnQixzQkFBc0IsT0FBTyx1REFBdUQsYUFBYSx1REFBdUQsNENBQTRDLEtBQUssNkNBQTZDLDZFQUE2RSxPQUFPLGlEQUFpRCxtRkFBbUYsT0FBTzs7QUFFdGdCLDRDQUE0QyxrQkFBa0Isa0NBQWtDLG9FQUFvRSxLQUFLLE9BQU8sb0JBQW9COztBQUVwTTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwwQkFBMEI7O0FBRTFCO0FBQ0E7QUFDQTtBQUNBOztBQUVBLG9D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QUVBLHFCQUFxQjs7QUFFckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSxvQkFBb0I7O0FBRXBCO0FBQ0E7QUFDQTs7QUFFQSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXNsaWNrL2xpYi91dGlscy9pbm5lclNsaWRlclV0aWxzLmpzP2E5OWEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmNsYW1wID0gY2xhbXA7XG5leHBvcnRzLmNhblVzZURPTSA9IGV4cG9ydHMuc2xpZGVzT25MZWZ0ID0gZXhwb3J0cy5zbGlkZXNPblJpZ2h0ID0gZXhwb3J0cy5zaWJsaW5nRGlyZWN0aW9uID0gZXhwb3J0cy5nZXRUb3RhbFNsaWRlcyA9IGV4cG9ydHMuZ2V0UG9zdENsb25lcyA9IGV4cG9ydHMuZ2V0UHJlQ2xvbmVzID0gZXhwb3J0cy5nZXRUcmFja0xlZnQgPSBleHBvcnRzLmdldFRyYWNrQW5pbWF0ZUNTUyA9IGV4cG9ydHMuZ2V0VHJhY2tDU1MgPSBleHBvcnRzLmNoZWNrU3BlY0tleXMgPSBleHBvcnRzLmdldFNsaWRlQ291bnQgPSBleHBvcnRzLmNoZWNrTmF2aWdhYmxlID0gZXhwb3J0cy5nZXROYXZpZ2FibGVJbmRleGVzID0gZXhwb3J0cy5zd2lwZUVuZCA9IGV4cG9ydHMuc3dpcGVNb3ZlID0gZXhwb3J0cy5zd2lwZVN0YXJ0ID0gZXhwb3J0cy5rZXlIYW5kbGVyID0gZXhwb3J0cy5jaGFuZ2VTbGlkZSA9IGV4cG9ydHMuc2xpZGVIYW5kbGVyID0gZXhwb3J0cy5pbml0aWFsaXplZFN0YXRlID0gZXhwb3J0cy5leHRyYWN0T2JqZWN0ID0gZXhwb3J0cy5jYW5Hb05leHQgPSBleHBvcnRzLmdldFN3aXBlRGlyZWN0aW9uID0gZXhwb3J0cy5nZXRIZWlnaHQgPSBleHBvcnRzLmdldFdpZHRoID0gZXhwb3J0cy5sYXp5U2xpZGVzT25SaWdodCA9IGV4cG9ydHMubGF6eVNsaWRlc09uTGVmdCA9IGV4cG9ydHMubGF6eUVuZEluZGV4ID0gZXhwb3J0cy5sYXp5U3RhcnRJbmRleCA9IGV4cG9ydHMuZ2V0UmVxdWlyZWRMYXp5U2xpZGVzID0gZXhwb3J0cy5nZXRPbkRlbWFuZExhenlTbGlkZXMgPSBleHBvcnRzLnNhZmVQcmV2ZW50RGVmYXVsdCA9IHZvaWQgMDtcblxudmFyIF9yZWFjdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJlYWN0XCIpKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIG93bktleXMob2JqZWN0LCBlbnVtZXJhYmxlT25seSkgeyB2YXIga2V5cyA9IE9iamVjdC5rZXlzKG9iamVjdCk7IGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7IHZhciBzeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhvYmplY3QpOyBpZiAoZW51bWVyYWJsZU9ubHkpIHN5bWJvbHMgPSBzeW1ib2xzLmZpbHRlcihmdW5jdGlvbiAoc3ltKSB7IHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iamVjdCwgc3ltKS5lbnVtZXJhYmxlOyB9KTsga2V5cy5wdXNoLmFwcGx5KGtleXMsIHN5bWJvbHMpOyB9IHJldHVybiBrZXlzOyB9XG5cbmZ1bmN0aW9uIF9vYmplY3RTcHJlYWQodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV0gIT0gbnVsbCA/IGFyZ3VtZW50c1tpXSA6IHt9OyBpZiAoaSAlIDIpIHsgb3duS2V5cyhPYmplY3Qoc291cmNlKSwgdHJ1ZSkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7IF9kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgc291cmNlW2tleV0pOyB9KTsgfSBlbHNlIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycykgeyBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHNvdXJjZSkpOyB9IGVsc2UgeyBvd25LZXlzKE9iamVjdChzb3VyY2UpKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNvdXJjZSwga2V5KSk7IH0pOyB9IH0gcmV0dXJuIHRhcmdldDsgfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHZhbHVlKSB7IGlmIChrZXkgaW4gb2JqKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgeyB2YWx1ZTogdmFsdWUsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUgfSk7IH0gZWxzZSB7IG9ialtrZXldID0gdmFsdWU7IH0gcmV0dXJuIG9iajsgfVxuXG5mdW5jdGlvbiBjbGFtcChudW1iZXIsIGxvd2VyQm91bmQsIHVwcGVyQm91bmQpIHtcbiAgcmV0dXJuIE1hdGgubWF4KGxvd2VyQm91bmQsIE1hdGgubWluKG51bWJlciwgdXBwZXJCb3VuZCkpO1xufVxuXG52YXIgc2FmZVByZXZlbnREZWZhdWx0ID0gZnVuY3Rpb24gc2FmZVByZXZlbnREZWZhdWx0KGV2ZW50KSB7XG4gIHZhciBwYXNzaXZlRXZlbnRzID0gW1wib25Ub3VjaFN0YXJ0XCIsIFwib25Ub3VjaE1vdmVcIiwgXCJvbldoZWVsXCJdO1xuXG4gIGlmICghcGFzc2l2ZUV2ZW50cy5pbmNsdWRlcyhldmVudC5fcmVhY3ROYW1lKSkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cbn07XG5cbmV4cG9ydHMuc2FmZVByZXZlbnREZWZhdWx0ID0gc2FmZVByZXZlbnREZWZhdWx0O1xuXG52YXIgZ2V0T25EZW1hbmRMYXp5U2xpZGVzID0gZnVuY3Rpb24gZ2V0T25EZW1hbmRMYXp5U2xpZGVzKHNwZWMpIHtcbiAgdmFyIG9uRGVtYW5kU2xpZGVzID0gW107XG4gIHZhciBzdGFydEluZGV4ID0gbGF6eVN0YXJ0SW5kZXgoc3BlYyk7XG4gIHZhciBlbmRJbmRleCA9IGxhenlFbmRJbmRleChzcGVjKTtcblxuICBmb3IgKHZhciBzbGlkZUluZGV4ID0gc3RhcnRJbmRleDsgc2xpZGVJbmRleCA8IGVuZEluZGV4OyBzbGlkZUluZGV4KyspIHtcbiAgICBpZiAoc3BlYy5sYXp5TG9hZGVkTGlzdC5pbmRleE9mKHNsaWRlSW5kZXgpIDwgMCkge1xuICAgICAgb25EZW1hbmRTbGlkZXMucHVzaChzbGlkZUluZGV4KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gb25EZW1hbmRTbGlkZXM7XG59OyAvLyByZXR1cm4gbGlzdCBvZiBzbGlkZXMgdGhhdCBuZWVkIHRvIGJlIHByZXNlbnRcblxuXG5leHBvcnRzLmdldE9uRGVtYW5kTGF6eVNsaWRlcyA9IGdldE9uRGVtYW5kTGF6eVNsaWRlcztcblxudmFyIGdldFJlcXVpcmVkTGF6eVNsaWRlcyA9IGZ1bmN0aW9uIGdldFJlcXVpcmVkTGF6eVNsaWRlcyhzcGVjKSB7XG4gIHZhciByZXF1aXJlZFNsaWRlcyA9IFtdO1xuICB2YXIgc3RhcnRJbmRleCA9IGxhenlTdGFydEluZGV4KHNwZWMpO1xuICB2YXIgZW5kSW5kZXggPSBsYXp5RW5kSW5kZXgoc3BlYyk7XG5cbiAgZm9yICh2YXIgc2xpZGVJbmRleCA9IHN0YXJ0SW5kZXg7IHNsaWRlSW5kZXggPCBlbmRJbmRleDsgc2xpZGVJbmRleCsrKSB7XG4gICAgcmVxdWlyZWRTbGlkZXMucHVzaChzbGlkZUluZGV4KTtcbiAgfVxuXG4gIHJldHVybiByZXF1aXJlZFNsaWRlcztcbn07IC8vIHN0YXJ0SW5kZXggdGhhdCBuZWVkcyB0byBiZSBwcmVzZW50XG5cblxuZXhwb3J0cy5nZXRSZXF1aXJlZExhenlTbGlkZXMgPSBnZXRSZXF1aXJlZExhenlTbGlkZXM7XG5cbnZhciBsYXp5U3RhcnRJbmRleCA9IGZ1bmN0aW9uIGxhenlTdGFydEluZGV4KHNwZWMpIHtcbiAgcmV0dXJuIHNwZWMuY3VycmVudFNsaWRlIC0gbGF6eVNsaWRlc09uTGVmdChzcGVjKTtcbn07XG5cbmV4cG9ydHMubGF6eVN0YXJ0SW5kZXggPSBsYXp5U3RhcnRJbmRleDtcblxudmFyIGxhenlFbmRJbmRleCA9IGZ1bmN0aW9uIGxhenlFbmRJbmRleChzcGVjKSB7XG4gIHJldHVybiBzcGVjLmN1cnJlbnRTbGlkZSArIGxhenlTbGlkZXNPblJpZ2h0KHNwZWMpO1xufTtcblxuZXhwb3J0cy5sYXp5RW5kSW5kZXggPSBsYXp5RW5kSW5kZXg7XG5cbnZhciBsYXp5U2xpZGVzT25MZWZ0ID0gZnVuY3Rpb24gbGF6eVNsaWRlc09uTGVmdChzcGVjKSB7XG4gIHJldHVybiBzcGVjLmNlbnRlck1vZGUgPyBNYXRoLmZsb29yKHNwZWMuc2xpZGVzVG9TaG93IC8gMikgKyAocGFyc2VJbnQoc3BlYy5jZW50ZXJQYWRkaW5nKSA+IDAgPyAxIDogMCkgOiAwO1xufTtcblxuZXhwb3J0cy5sYXp5U2xpZGVzT25MZWZ0ID0gbGF6eVNsaWRlc09uTGVmdDtcblxudmFyIGxhenlTbGlkZXNPblJpZ2h0ID0gZnVuY3Rpb24gbGF6eVNsaWRlc09uUmlnaHQoc3BlYykge1xuICByZXR1cm4gc3BlYy5jZW50ZXJNb2RlID8gTWF0aC5mbG9vcigoc3BlYy5zbGlkZXNUb1Nob3cgLSAxKSAvIDIpICsgMSArIChwYXJzZUludChzcGVjLmNlbnRlclBhZGRpbmcpID4gMCA/IDEgOiAwKSA6IHNwZWMuc2xpZGVzVG9TaG93O1xufTsgLy8gZ2V0IHdpZHRoIG9mIGFuIGVsZW1lbnRcblxuXG5leHBvcnRzLmxhenlTbGlkZXNPblJpZ2h0ID0gbGF6eVNsaWRlc09uUmlnaHQ7XG5cbnZhciBnZXRXaWR0aCA9IGZ1bmN0aW9uIGdldFdpZHRoKGVsZW0pIHtcbiAgcmV0dXJuIGVsZW0gJiYgZWxlbS5vZmZzZXRXaWR0aCB8fCAwO1xufTtcblxuZXhwb3J0cy5nZXRXaWR0aCA9IGdldFdpZHRoO1xuXG52YXIgZ2V0SGVpZ2h0ID0gZnVuY3Rpb24gZ2V0SGVpZ2h0KGVsZW0pIHtcbiAgcmV0dXJuIGVsZW0gJiYgZWxlbS5vZmZzZXRIZWlnaHQgfHwgMDtcbn07XG5cbmV4cG9ydHMuZ2V0SGVpZ2h0ID0gZ2V0SGVpZ2h0O1xuXG52YXIgZ2V0U3dpcGVEaXJlY3Rpb24gPSBmdW5jdGlvbiBnZXRTd2lwZURpcmVjdGlvbih0b3VjaE9iamVjdCkge1xuICB2YXIgdmVydGljYWxTd2lwaW5nID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiBmYWxzZTtcbiAgdmFyIHhEaXN0LCB5RGlzdCwgciwgc3dpcGVBbmdsZTtcbiAgeERpc3QgPSB0b3VjaE9iamVjdC5zdGFydFggLSB0b3VjaE9iamVjdC5jdXJYO1xuICB5RGlzdCA9IHRvdWNoT2JqZWN0LnN0YXJ0WSAtIHRvdWNoT2JqZWN0LmN1clk7XG4gIHIgPSBNYXRoLmF0YW4yKHlEaXN0LCB4RGlzdCk7XG4gIHN3aXBlQW5nbGUgPSBNYXRoLnJvdW5kKHIgKiAxODAgLyBNYXRoLlBJKTtcblxuICBpZiAoc3dpcGVBbmdsZSA8IDApIHtcbiAgICBzd2lwZUFuZ2xlID0gMzYwIC0gTWF0aC5hYnMoc3dpcGVBbmdsZSk7XG4gIH1cblxuICBpZiAoc3dpcGVBbmdsZSA8PSA0NSAmJiBzd2lwZUFuZ2xlID49IDAgfHwgc3dpcGVBbmdsZSA8PSAzNjAgJiYgc3dpcGVBbmdsZSA+PSAzMTUpIHtcbiAgICByZXR1cm4gXCJsZWZ0XCI7XG4gIH1cblxuICBpZiAoc3dpcGVBbmdsZSA+PSAxMzUgJiYgc3dpcGVBbmdsZSA8PSAyMjUpIHtcbiAgICByZXR1cm4gXCJyaWdodFwiO1xuICB9XG5cbiAgaWYgKHZlcnRpY2FsU3dpcGluZyA9PT0gdHJ1ZSkge1xuICAgIGlmIChzd2lwZUFuZ2xlID49IDM1ICYmIHN3aXBlQW5nbGUgPD0gMTM1KSB7XG4gICAgICByZXR1cm4gXCJ1cFwiO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gXCJkb3duXCI7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFwidmVydGljYWxcIjtcbn07IC8vIHdoZXRoZXIgb3Igbm90IHdlIGNhbiBnbyBuZXh0XG5cblxuZXhwb3J0cy5nZXRTd2lwZURpcmVjdGlvbiA9IGdldFN3aXBlRGlyZWN0aW9uO1xuXG52YXIgY2FuR29OZXh0ID0gZnVuY3Rpb24gY2FuR29OZXh0KHNwZWMpIHtcbiAgdmFyIGNhbkdvID0gdHJ1ZTtcblxuICBpZiAoIXNwZWMuaW5maW5pdGUpIHtcbiAgICBpZiAoc3BlYy5jZW50ZXJNb2RlICYmIHNwZWMuY3VycmVudFNsaWRlID49IHNwZWMuc2xpZGVDb3VudCAtIDEpIHtcbiAgICAgIGNhbkdvID0gZmFsc2U7XG4gICAgfSBlbHNlIGlmIChzcGVjLnNsaWRlQ291bnQgPD0gc3BlYy5zbGlkZXNUb1Nob3cgfHwgc3BlYy5jdXJyZW50U2xpZGUgPj0gc3BlYy5zbGlkZUNvdW50IC0gc3BlYy5zbGlkZXNUb1Nob3cpIHtcbiAgICAgIGNhbkdvID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNhbkdvO1xufTsgLy8gZ2l2ZW4gYW4gb2JqZWN0IGFuZCBhIGxpc3Qgb2Yga2V5cywgcmV0dXJuIG5ldyBvYmplY3Qgd2l0aCBnaXZlbiBrZXlzXG5cblxuZXhwb3J0cy5jYW5Hb05leHQgPSBjYW5Hb05leHQ7XG5cbnZhciBleHRyYWN0T2JqZWN0ID0gZnVuY3Rpb24gZXh0cmFjdE9iamVjdChzcGVjLCBrZXlzKSB7XG4gIHZhciBuZXdPYmplY3QgPSB7fTtcbiAga2V5cy5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICByZXR1cm4gbmV3T2JqZWN0W2tleV0gPSBzcGVjW2tleV07XG4gIH0pO1xuICByZXR1cm4gbmV3T2JqZWN0O1xufTsgLy8gZ2V0IGluaXRpYWxpemVkIHN0YXRlXG5cblxuZXhwb3J0cy5leHRyYWN0T2JqZWN0ID0gZXh0cmFjdE9iamVjdDtcblxudmFyIGluaXRpYWxpemVkU3RhdGUgPSBmdW5jdGlvbiBpbml0aWFsaXplZFN0YXRlKHNwZWMpIHtcbiAgLy8gc3BlYyBhbHNvIGNvbnRhaW5zIGxpc3RSZWYsIHRyYWNrUmVmXG4gIHZhciBzbGlkZUNvdW50ID0gX3JlYWN0W1wiZGVmYXVsdFwiXS5DaGlsZHJlbi5jb3VudChzcGVjLmNoaWxkcmVuKTtcblxuICB2YXIgbGlzdE5vZGUgPSBzcGVjLmxpc3RSZWY7XG4gIHZhciBsaXN0V2lkdGggPSBNYXRoLmNlaWwoZ2V0V2lkdGgobGlzdE5vZGUpKTtcbiAgdmFyIHRyYWNrTm9kZSA9IHNwZWMudHJhY2tSZWYgJiYgc3BlYy50cmFja1JlZi5ub2RlO1xuICB2YXIgdHJhY2tXaWR0aCA9IE1hdGguY2VpbChnZXRXaWR0aCh0cmFja05vZGUpKTtcbiAgdmFyIHNsaWRlV2lkdGg7XG5cbiAgaWYgKCFzcGVjLnZlcnRpY2FsKSB7XG4gICAgdmFyIGNlbnRlclBhZGRpbmdBZGogPSBzcGVjLmNlbnRlck1vZGUgJiYgcGFyc2VJbnQoc3BlYy5jZW50ZXJQYWRkaW5nKSAqIDI7XG5cbiAgICBpZiAodHlwZW9mIHNwZWMuY2VudGVyUGFkZGluZyA9PT0gXCJzdHJpbmdcIiAmJiBzcGVjLmNlbnRlclBhZGRpbmcuc2xpY2UoLTEpID09PSBcIiVcIikge1xuICAgICAgY2VudGVyUGFkZGluZ0FkaiAqPSBsaXN0V2lkdGggLyAxMDA7XG4gICAgfVxuXG4gICAgc2xpZGVXaWR0aCA9IE1hdGguY2VpbCgobGlzdFdpZHRoIC0gY2VudGVyUGFkZGluZ0FkaikgLyBzcGVjLnNsaWRlc1RvU2hvdyk7XG4gIH0gZWxzZSB7XG4gICAgc2xpZGVXaWR0aCA9IGxpc3RXaWR0aDtcbiAgfVxuXG4gIHZhciBzbGlkZUhlaWdodCA9IGxpc3ROb2RlICYmIGdldEhlaWdodChsaXN0Tm9kZS5xdWVyeVNlbGVjdG9yKCdbZGF0YS1pbmRleD1cIjBcIl0nKSk7XG4gIHZhciBsaXN0SGVpZ2h0ID0gc2xpZGVIZWlnaHQgKiBzcGVjLnNsaWRlc1RvU2hvdztcbiAgdmFyIGN1cnJlbnRTbGlkZSA9IHNwZWMuY3VycmVudFNsaWRlID09PSB1bmRlZmluZWQgPyBzcGVjLmluaXRpYWxTbGlkZSA6IHNwZWMuY3VycmVudFNsaWRlO1xuXG4gIGlmIChzcGVjLnJ0bCAmJiBzcGVjLmN1cnJlbnRTbGlkZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgY3VycmVudFNsaWRlID0gc2xpZGVDb3VudCAtIDEgLSBzcGVjLmluaXRpYWxTbGlkZTtcbiAgfVxuXG4gIHZhciBsYXp5TG9hZGVkTGlzdCA9IHNwZWMubGF6eUxvYWRlZExpc3QgfHwgW107XG4gIHZhciBzbGlkZXNUb0xvYWQgPSBnZXRPbkRlbWFuZExhenlTbGlkZXMoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzcGVjKSwge30sIHtcbiAgICBjdXJyZW50U2xpZGU6IGN1cnJlbnRTbGlkZSxcbiAgICBsYXp5TG9hZGVkTGlzdDogbGF6eUxvYWRlZExpc3RcbiAgfSkpO1xuICBsYXp5TG9hZGVkTGlzdCA9IGxhenlMb2FkZWRMaXN0LmNvbmNhdChzbGlkZXNUb0xvYWQpO1xuICB2YXIgc3RhdGUgPSB7XG4gICAgc2xpZGVDb3VudDogc2xpZGVDb3VudCxcbiAgICBzbGlkZVdpZHRoOiBzbGlkZVdpZHRoLFxuICAgIGxpc3RXaWR0aDogbGlzdFdpZHRoLFxuICAgIHRyYWNrV2lkdGg6IHRyYWNrV2lkdGgsXG4gICAgY3VycmVudFNsaWRlOiBjdXJyZW50U2xpZGUsXG4gICAgc2xpZGVIZWlnaHQ6IHNsaWRlSGVpZ2h0LFxuICAgIGxpc3RIZWlnaHQ6IGxpc3RIZWlnaHQsXG4gICAgbGF6eUxvYWRlZExpc3Q6IGxhenlMb2FkZWRMaXN0XG4gIH07XG5cbiAgaWYgKHNwZWMuYXV0b3BsYXlpbmcgPT09IG51bGwgJiYgc3BlYy5hdXRvcGxheSkge1xuICAgIHN0YXRlW1wiYXV0b3BsYXlpbmdcIl0gPSBcInBsYXlpbmdcIjtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZTtcbn07XG5cbmV4cG9ydHMuaW5pdGlhbGl6ZWRTdGF0ZSA9IGluaXRpYWxpemVkU3RhdGU7XG5cbnZhciBzbGlkZUhhbmRsZXIgPSBmdW5jdGlvbiBzbGlkZUhhbmRsZXIoc3BlYykge1xuICB2YXIgd2FpdEZvckFuaW1hdGUgPSBzcGVjLndhaXRGb3JBbmltYXRlLFxuICAgICAgYW5pbWF0aW5nID0gc3BlYy5hbmltYXRpbmcsXG4gICAgICBmYWRlID0gc3BlYy5mYWRlLFxuICAgICAgaW5maW5pdGUgPSBzcGVjLmluZmluaXRlLFxuICAgICAgaW5kZXggPSBzcGVjLmluZGV4LFxuICAgICAgc2xpZGVDb3VudCA9IHNwZWMuc2xpZGVDb3VudCxcbiAgICAgIGxhenlMb2FkID0gc3BlYy5sYXp5TG9hZCxcbiAgICAgIGN1cnJlbnRTbGlkZSA9IHNwZWMuY3VycmVudFNsaWRlLFxuICAgICAgY2VudGVyTW9kZSA9IHNwZWMuY2VudGVyTW9kZSxcbiAgICAgIHNsaWRlc1RvU2Nyb2xsID0gc3BlYy5zbGlkZXNUb1Njcm9sbCxcbiAgICAgIHNsaWRlc1RvU2hvdyA9IHNwZWMuc2xpZGVzVG9TaG93LFxuICAgICAgdXNlQ1NTID0gc3BlYy51c2VDU1M7XG4gIHZhciBsYXp5TG9hZGVkTGlzdCA9IHNwZWMubGF6eUxvYWRlZExpc3Q7XG4gIGlmICh3YWl0Rm9yQW5pbWF0ZSAmJiBhbmltYXRpbmcpIHJldHVybiB7fTtcbiAgdmFyIGFuaW1hdGlvblNsaWRlID0gaW5kZXgsXG4gICAgICBmaW5hbFNsaWRlLFxuICAgICAgYW5pbWF0aW9uTGVmdCxcbiAgICAgIGZpbmFsTGVmdDtcbiAgdmFyIHN0YXRlID0ge30sXG4gICAgICBuZXh0U3RhdGUgPSB7fTtcbiAgdmFyIHRhcmdldFNsaWRlID0gaW5maW5pdGUgPyBpbmRleCA6IGNsYW1wKGluZGV4LCAwLCBzbGlkZUNvdW50IC0gMSk7XG5cbiAgaWYgKGZhZGUpIHtcbiAgICBpZiAoIWluZmluaXRlICYmIChpbmRleCA8IDAgfHwgaW5kZXggPj0gc2xpZGVDb3VudCkpIHJldHVybiB7fTtcblxuICAgIGlmIChpbmRleCA8IDApIHtcbiAgICAgIGFuaW1hdGlvblNsaWRlID0gaW5kZXggKyBzbGlkZUNvdW50O1xuICAgIH0gZWxzZSBpZiAoaW5kZXggPj0gc2xpZGVDb3VudCkge1xuICAgICAgYW5pbWF0aW9uU2xpZGUgPSBpbmRleCAtIHNsaWRlQ291bnQ7XG4gICAgfVxuXG4gICAgaWYgKGxhenlMb2FkICYmIGxhenlMb2FkZWRMaXN0LmluZGV4T2YoYW5pbWF0aW9uU2xpZGUpIDwgMCkge1xuICAgICAgbGF6eUxvYWRlZExpc3QgPSBsYXp5TG9hZGVkTGlzdC5jb25jYXQoYW5pbWF0aW9uU2xpZGUpO1xuICAgIH1cblxuICAgIHN0YXRlID0ge1xuICAgICAgYW5pbWF0aW5nOiB0cnVlLFxuICAgICAgY3VycmVudFNsaWRlOiBhbmltYXRpb25TbGlkZSxcbiAgICAgIGxhenlMb2FkZWRMaXN0OiBsYXp5TG9hZGVkTGlzdCxcbiAgICAgIHRhcmdldFNsaWRlOiBhbmltYXRpb25TbGlkZVxuICAgIH07XG4gICAgbmV4dFN0YXRlID0ge1xuICAgICAgYW5pbWF0aW5nOiBmYWxzZSxcbiAgICAgIHRhcmdldFNsaWRlOiBhbmltYXRpb25TbGlkZVxuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgZmluYWxTbGlkZSA9IGFuaW1hdGlvblNsaWRlO1xuXG4gICAgaWYgKGFuaW1hdGlvblNsaWRlIDwgMCkge1xuICAgICAgZmluYWxTbGlkZSA9IGFuaW1hdGlvblNsaWRlICsgc2xpZGVDb3VudDtcbiAgICAgIGlmICghaW5maW5pdGUpIGZpbmFsU2xpZGUgPSAwO2Vsc2UgaWYgKHNsaWRlQ291bnQgJSBzbGlkZXNUb1Njcm9sbCAhPT0gMCkgZmluYWxTbGlkZSA9IHNsaWRlQ291bnQgLSBzbGlkZUNvdW50ICUgc2xpZGVzVG9TY3JvbGw7XG4gICAgfSBlbHNlIGlmICghY2FuR29OZXh0KHNwZWMpICYmIGFuaW1hdGlvblNsaWRlID4gY3VycmVudFNsaWRlKSB7XG4gICAgICBhbmltYXRpb25TbGlkZSA9IGZpbmFsU2xpZGUgPSBjdXJyZW50U2xpZGU7XG4gICAgfSBlbHNlIGlmIChjZW50ZXJNb2RlICYmIGFuaW1hdGlvblNsaWRlID49IHNsaWRlQ291bnQpIHtcbiAgICAgIGFuaW1hdGlvblNsaWRlID0gaW5maW5pdGUgPyBzbGlkZUNvdW50IDogc2xpZGVDb3VudCAtIDE7XG4gICAgICBmaW5hbFNsaWRlID0gaW5maW5pdGUgPyAwIDogc2xpZGVDb3VudCAtIDE7XG4gICAgfSBlbHNlIGlmIChhbmltYXRpb25TbGlkZSA+PSBzbGlkZUNvdW50KSB7XG4gICAgICBmaW5hbFNsaWRlID0gYW5pbWF0aW9uU2xpZGUgLSBzbGlkZUNvdW50O1xuICAgICAgaWYgKCFpbmZpbml0ZSkgZmluYWxTbGlkZSA9IHNsaWRlQ291bnQgLSBzbGlkZXNUb1Nob3c7ZWxzZSBpZiAoc2xpZGVDb3VudCAlIHNsaWRlc1RvU2Nyb2xsICE9PSAwKSBmaW5hbFNsaWRlID0gMDtcbiAgICB9XG5cbiAgICBpZiAoIWluZmluaXRlICYmIGFuaW1hdGlvblNsaWRlICsgc2xpZGVzVG9TaG93ID49IHNsaWRlQ291bnQpIHtcbiAgICAgIGZpbmFsU2xpZGUgPSBzbGlkZUNvdW50IC0gc2xpZGVzVG9TaG93O1xuICAgIH1cblxuICAgIGFuaW1hdGlvbkxlZnQgPSBnZXRUcmFja0xlZnQoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzcGVjKSwge30sIHtcbiAgICAgIHNsaWRlSW5kZXg6IGFuaW1hdGlvblNsaWRlXG4gICAgfSkpO1xuICAgIGZpbmFsTGVmdCA9IGdldFRyYWNrTGVmdChfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHNwZWMpLCB7fSwge1xuICAgICAgc2xpZGVJbmRleDogZmluYWxTbGlkZVxuICAgIH0pKTtcblxuICAgIGlmICghaW5maW5pdGUpIHtcbiAgICAgIGlmIChhbmltYXRpb25MZWZ0ID09PSBmaW5hbExlZnQpIGFuaW1hdGlvblNsaWRlID0gZmluYWxTbGlkZTtcbiAgICAgIGFuaW1hdGlvbkxlZnQgPSBmaW5hbExlZnQ7XG4gICAgfVxuXG4gICAgaWYgKGxhenlMb2FkKSB7XG4gICAgICBsYXp5TG9hZGVkTGlzdCA9IGxhenlMb2FkZWRMaXN0LmNvbmNhdChnZXRPbkRlbWFuZExhenlTbGlkZXMoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzcGVjKSwge30sIHtcbiAgICAgICAgY3VycmVudFNsaWRlOiBhbmltYXRpb25TbGlkZVxuICAgICAgfSkpKTtcbiAgICB9XG5cbiAgICBpZiAoIXVzZUNTUykge1xuICAgICAgc3RhdGUgPSB7XG4gICAgICAgIGN1cnJlbnRTbGlkZTogZmluYWxTbGlkZSxcbiAgICAgICAgdHJhY2tTdHlsZTogZ2V0VHJhY2tDU1MoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzcGVjKSwge30sIHtcbiAgICAgICAgICBsZWZ0OiBmaW5hbExlZnRcbiAgICAgICAgfSkpLFxuICAgICAgICBsYXp5TG9hZGVkTGlzdDogbGF6eUxvYWRlZExpc3QsXG4gICAgICAgIHRhcmdldFNsaWRlOiB0YXJnZXRTbGlkZVxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RhdGUgPSB7XG4gICAgICAgIGFuaW1hdGluZzogdHJ1ZSxcbiAgICAgICAgY3VycmVudFNsaWRlOiBmaW5hbFNsaWRlLFxuICAgICAgICB0cmFja1N0eWxlOiBnZXRUcmFja0FuaW1hdGVDU1MoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzcGVjKSwge30sIHtcbiAgICAgICAgICBsZWZ0OiBhbmltYXRpb25MZWZ0XG4gICAgICAgIH0pKSxcbiAgICAgICAgbGF6eUxvYWRlZExpc3Q6IGxhenlMb2FkZWRMaXN0LFxuICAgICAgICB0YXJnZXRTbGlkZTogdGFyZ2V0U2xpZGVcbiAgICAgIH07XG4gICAgICBuZXh0U3RhdGUgPSB7XG4gICAgICAgIGFuaW1hdGluZzogZmFsc2UsXG4gICAgICAgIGN1cnJlbnRTbGlkZTogZmluYWxTbGlkZSxcbiAgICAgICAgdHJhY2tTdHlsZTogZ2V0VHJhY2tDU1MoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzcGVjKSwge30sIHtcbiAgICAgICAgICBsZWZ0OiBmaW5hbExlZnRcbiAgICAgICAgfSkpLFxuICAgICAgICBzd2lwZUxlZnQ6IG51bGwsXG4gICAgICAgIHRhcmdldFNsaWRlOiB0YXJnZXRTbGlkZVxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHN0YXRlOiBzdGF0ZSxcbiAgICBuZXh0U3RhdGU6IG5leHRTdGF0ZVxuICB9O1xufTtcblxuZXhwb3J0cy5zbGlkZUhhbmRsZXIgPSBzbGlkZUhhbmRsZXI7XG5cbnZhciBjaGFuZ2VTbGlkZSA9IGZ1bmN0aW9uIGNoYW5nZVNsaWRlKHNwZWMsIG9wdGlvbnMpIHtcbiAgdmFyIGluZGV4T2Zmc2V0LCBwcmV2aW91c0ludCwgc2xpZGVPZmZzZXQsIHVuZXZlbk9mZnNldCwgdGFyZ2V0U2xpZGU7XG4gIHZhciBzbGlkZXNUb1Njcm9sbCA9IHNwZWMuc2xpZGVzVG9TY3JvbGwsXG4gICAgICBzbGlkZXNUb1Nob3cgPSBzcGVjLnNsaWRlc1RvU2hvdyxcbiAgICAgIHNsaWRlQ291bnQgPSBzcGVjLnNsaWRlQ291bnQsXG4gICAgICBjdXJyZW50U2xpZGUgPSBzcGVjLmN1cnJlbnRTbGlkZSxcbiAgICAgIHByZXZpb3VzVGFyZ2V0U2xpZGUgPSBzcGVjLnRhcmdldFNsaWRlLFxuICAgICAgbGF6eUxvYWQgPSBzcGVjLmxhenlMb2FkLFxuICAgICAgaW5maW5pdGUgPSBzcGVjLmluZmluaXRlO1xuICB1bmV2ZW5PZmZzZXQgPSBzbGlkZUNvdW50ICUgc2xpZGVzVG9TY3JvbGwgIT09IDA7XG4gIGluZGV4T2Zmc2V0ID0gdW5ldmVuT2Zmc2V0ID8gMCA6IChzbGlkZUNvdW50IC0gY3VycmVudFNsaWRlKSAlIHNsaWRlc1RvU2Nyb2xsO1xuXG4gIGlmIChvcHRpb25zLm1lc3NhZ2UgPT09IFwicHJldmlvdXNcIikge1xuICAgIHNsaWRlT2Zmc2V0ID0gaW5kZXhPZmZzZXQgPT09IDAgPyBzbGlkZXNUb1Njcm9sbCA6IHNsaWRlc1RvU2hvdyAtIGluZGV4T2Zmc2V0O1xuICAgIHRhcmdldFNsaWRlID0gY3VycmVudFNsaWRlIC0gc2xpZGVPZmZzZXQ7XG5cbiAgICBpZiAobGF6eUxvYWQgJiYgIWluZmluaXRlKSB7XG4gICAgICBwcmV2aW91c0ludCA9IGN1cnJlbnRTbGlkZSAtIHNsaWRlT2Zmc2V0O1xuICAgICAgdGFyZ2V0U2xpZGUgPSBwcmV2aW91c0ludCA9PT0gLTEgPyBzbGlkZUNvdW50IC0gMSA6IHByZXZpb3VzSW50O1xuICAgIH1cblxuICAgIGlmICghaW5maW5pdGUpIHtcbiAgICAgIHRhcmdldFNsaWRlID0gcHJldmlvdXNUYXJnZXRTbGlkZSAtIHNsaWRlc1RvU2Nyb2xsO1xuICAgIH1cbiAgfSBlbHNlIGlmIChvcHRpb25zLm1lc3NhZ2UgPT09IFwibmV4dFwiKSB7XG4gICAgc2xpZGVPZmZzZXQgPSBpbmRleE9mZnNldCA9PT0gMCA/IHNsaWRlc1RvU2Nyb2xsIDogaW5kZXhPZmZzZXQ7XG4gICAgdGFyZ2V0U2xpZGUgPSBjdXJyZW50U2xpZGUgKyBzbGlkZU9mZnNldDtcblxuICAgIGlmIChsYXp5TG9hZCAmJiAhaW5maW5pdGUpIHtcbiAgICAgIHRhcmdldFNsaWRlID0gKGN1cnJlbnRTbGlkZSArIHNsaWRlc1RvU2Nyb2xsKSAlIHNsaWRlQ291bnQgKyBpbmRleE9mZnNldDtcbiAgICB9XG5cbiAgICBpZiAoIWluZmluaXRlKSB7XG4gICAgICB0YXJnZXRTbGlkZSA9IHByZXZpb3VzVGFyZ2V0U2xpZGUgKyBzbGlkZXNUb1Njcm9sbDtcbiAgICB9XG4gIH0gZWxzZSBpZiAob3B0aW9ucy5tZXNzYWdlID09PSBcImRvdHNcIikge1xuICAgIC8vIENsaWNrIG9uIGRvdHNcbiAgICB0YXJnZXRTbGlkZSA9IG9wdGlvbnMuaW5kZXggKiBvcHRpb25zLnNsaWRlc1RvU2Nyb2xsO1xuICB9IGVsc2UgaWYgKG9wdGlvbnMubWVzc2FnZSA9PT0gXCJjaGlsZHJlblwiKSB7XG4gICAgLy8gQ2xpY2sgb24gdGhlIHNsaWRlc1xuICAgIHRhcmdldFNsaWRlID0gb3B0aW9ucy5pbmRleDtcblxuICAgIGlmIChpbmZpbml0ZSkge1xuICAgICAgdmFyIGRpcmVjdGlvbiA9IHNpYmxpbmdEaXJlY3Rpb24oX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzcGVjKSwge30sIHtcbiAgICAgICAgdGFyZ2V0U2xpZGU6IHRhcmdldFNsaWRlXG4gICAgICB9KSk7XG5cbiAgICAgIGlmICh0YXJnZXRTbGlkZSA+IG9wdGlvbnMuY3VycmVudFNsaWRlICYmIGRpcmVjdGlvbiA9PT0gXCJsZWZ0XCIpIHtcbiAgICAgICAgdGFyZ2V0U2xpZGUgPSB0YXJnZXRTbGlkZSAtIHNsaWRlQ291bnQ7XG4gICAgICB9IGVsc2UgaWYgKHRhcmdldFNsaWRlIDwgb3B0aW9ucy5jdXJyZW50U2xpZGUgJiYgZGlyZWN0aW9uID09PSBcInJpZ2h0XCIpIHtcbiAgICAgICAgdGFyZ2V0U2xpZGUgPSB0YXJnZXRTbGlkZSArIHNsaWRlQ291bnQ7XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2UgaWYgKG9wdGlvbnMubWVzc2FnZSA9PT0gXCJpbmRleFwiKSB7XG4gICAgdGFyZ2V0U2xpZGUgPSBOdW1iZXIob3B0aW9ucy5pbmRleCk7XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0U2xpZGU7XG59O1xuXG5leHBvcnRzLmNoYW5nZVNsaWRlID0gY2hhbmdlU2xpZGU7XG5cbnZhciBrZXlIYW5kbGVyID0gZnVuY3Rpb24ga2V5SGFuZGxlcihlLCBhY2Nlc3NpYmlsaXR5LCBydGwpIHtcbiAgaWYgKGUudGFyZ2V0LnRhZ05hbWUubWF0Y2goXCJURVhUQVJFQXxJTlBVVHxTRUxFQ1RcIikgfHwgIWFjY2Vzc2liaWxpdHkpIHJldHVybiBcIlwiO1xuICBpZiAoZS5rZXlDb2RlID09PSAzNykgcmV0dXJuIHJ0bCA/IFwibmV4dFwiIDogXCJwcmV2aW91c1wiO1xuICBpZiAoZS5rZXlDb2RlID09PSAzOSkgcmV0dXJuIHJ0bCA/IFwicHJldmlvdXNcIiA6IFwibmV4dFwiO1xuICByZXR1cm4gXCJcIjtcbn07XG5cbmV4cG9ydHMua2V5SGFuZGxlciA9IGtleUhhbmRsZXI7XG5cbnZhciBzd2lwZVN0YXJ0ID0gZnVuY3Rpb24gc3dpcGVTdGFydChlLCBzd2lwZSwgZHJhZ2dhYmxlKSB7XG4gIGUudGFyZ2V0LnRhZ05hbWUgPT09IFwiSU1HXCIgJiYgc2FmZVByZXZlbnREZWZhdWx0KGUpO1xuICBpZiAoIXN3aXBlIHx8ICFkcmFnZ2FibGUgJiYgZS50eXBlLmluZGV4T2YoXCJtb3VzZVwiKSAhPT0gLTEpIHJldHVybiBcIlwiO1xuICByZXR1cm4ge1xuICAgIGRyYWdnaW5nOiB0cnVlLFxuICAgIHRvdWNoT2JqZWN0OiB7XG4gICAgICBzdGFydFg6IGUudG91Y2hlcyA/IGUudG91Y2hlc1swXS5wYWdlWCA6IGUuY2xpZW50WCxcbiAgICAgIHN0YXJ0WTogZS50b3VjaGVzID8gZS50b3VjaGVzWzBdLnBhZ2VZIDogZS5jbGllbnRZLFxuICAgICAgY3VyWDogZS50b3VjaGVzID8gZS50b3VjaGVzWzBdLnBhZ2VYIDogZS5jbGllbnRYLFxuICAgICAgY3VyWTogZS50b3VjaGVzID8gZS50b3VjaGVzWzBdLnBhZ2VZIDogZS5jbGllbnRZXG4gICAgfVxuICB9O1xufTtcblxuZXhwb3J0cy5zd2lwZVN0YXJ0ID0gc3dpcGVTdGFydDtcblxudmFyIHN3aXBlTW92ZSA9IGZ1bmN0aW9uIHN3aXBlTW92ZShlLCBzcGVjKSB7XG4gIC8vIHNwZWMgYWxzbyBjb250YWlucywgdHJhY2tSZWYgYW5kIHNsaWRlSW5kZXhcbiAgdmFyIHNjcm9sbGluZyA9IHNwZWMuc2Nyb2xsaW5nLFxuICAgICAgYW5pbWF0aW5nID0gc3BlYy5hbmltYXRpbmcsXG4gICAgICB2ZXJ0aWNhbCA9IHNwZWMudmVydGljYWwsXG4gICAgICBzd2lwZVRvU2xpZGUgPSBzcGVjLnN3aXBlVG9TbGlkZSxcbiAgICAgIHZlcnRpY2FsU3dpcGluZyA9IHNwZWMudmVydGljYWxTd2lwaW5nLFxuICAgICAgcnRsID0gc3BlYy5ydGwsXG4gICAgICBjdXJyZW50U2xpZGUgPSBzcGVjLmN1cnJlbnRTbGlkZSxcbiAgICAgIGVkZ2VGcmljdGlvbiA9IHNwZWMuZWRnZUZyaWN0aW9uLFxuICAgICAgZWRnZURyYWdnZWQgPSBzcGVjLmVkZ2VEcmFnZ2VkLFxuICAgICAgb25FZGdlID0gc3BlYy5vbkVkZ2UsXG4gICAgICBzd2lwZWQgPSBzcGVjLnN3aXBlZCxcbiAgICAgIHN3aXBpbmcgPSBzcGVjLnN3aXBpbmcsXG4gICAgICBzbGlkZUNvdW50ID0gc3BlYy5zbGlkZUNvdW50LFxuICAgICAgc2xpZGVzVG9TY3JvbGwgPSBzcGVjLnNsaWRlc1RvU2Nyb2xsLFxuICAgICAgaW5maW5pdGUgPSBzcGVjLmluZmluaXRlLFxuICAgICAgdG91Y2hPYmplY3QgPSBzcGVjLnRvdWNoT2JqZWN0LFxuICAgICAgc3dpcGVFdmVudCA9IHNwZWMuc3dpcGVFdmVudCxcbiAgICAgIGxpc3RIZWlnaHQgPSBzcGVjLmxpc3RIZWlnaHQsXG4gICAgICBsaXN0V2lkdGggPSBzcGVjLmxpc3RXaWR0aDtcbiAgaWYgKHNjcm9sbGluZykgcmV0dXJuO1xuICBpZiAoYW5pbWF0aW5nKSByZXR1cm4gc2FmZVByZXZlbnREZWZhdWx0KGUpO1xuICBpZiAodmVydGljYWwgJiYgc3dpcGVUb1NsaWRlICYmIHZlcnRpY2FsU3dpcGluZykgc2FmZVByZXZlbnREZWZhdWx0KGUpO1xuICB2YXIgc3dpcGVMZWZ0LFxuICAgICAgc3RhdGUgPSB7fTtcbiAgdmFyIGN1ckxlZnQgPSBnZXRUcmFja0xlZnQoc3BlYyk7XG4gIHRvdWNoT2JqZWN0LmN1clggPSBlLnRvdWNoZXMgPyBlLnRvdWNoZXNbMF0ucGFnZVggOiBlLmNsaWVudFg7XG4gIHRvdWNoT2JqZWN0LmN1clkgPSBlLnRvdWNoZXMgPyBlLnRvdWNoZXNbMF0ucGFnZVkgOiBlLmNsaWVudFk7XG4gIHRvdWNoT2JqZWN0LnN3aXBlTGVuZ3RoID0gTWF0aC5yb3VuZChNYXRoLnNxcnQoTWF0aC5wb3codG91Y2hPYmplY3QuY3VyWCAtIHRvdWNoT2JqZWN0LnN0YXJ0WCwgMikpKTtcbiAgdmFyIHZlcnRpY2FsU3dpcGVMZW5ndGggPSBNYXRoLnJvdW5kKE1hdGguc3FydChNYXRoLnBvdyh0b3VjaE9iamVjdC5jdXJZIC0gdG91Y2hPYmplY3Quc3RhcnRZLCAyKSkpO1xuXG4gIGlmICghdmVydGljYWxTd2lwaW5nICYmICFzd2lwaW5nICYmIHZlcnRpY2FsU3dpcGVMZW5ndGggPiAxMCkge1xuICAgIHJldHVybiB7XG4gICAgICBzY3JvbGxpbmc6IHRydWVcbiAgICB9O1xuICB9XG5cbiAgaWYgKHZlcnRpY2FsU3dpcGluZykgdG91Y2hPYmplY3Quc3dpcGVMZW5ndGggPSB2ZXJ0aWNhbFN3aXBlTGVuZ3RoO1xuICB2YXIgcG9zaXRpb25PZmZzZXQgPSAoIXJ0bCA/IDEgOiAtMSkgKiAodG91Y2hPYmplY3QuY3VyWCA+IHRvdWNoT2JqZWN0LnN0YXJ0WCA/IDEgOiAtMSk7XG4gIGlmICh2ZXJ0aWNhbFN3aXBpbmcpIHBvc2l0aW9uT2Zmc2V0ID0gdG91Y2hPYmplY3QuY3VyWSA+IHRvdWNoT2JqZWN0LnN0YXJ0WSA/IDEgOiAtMTtcbiAgdmFyIGRvdENvdW50ID0gTWF0aC5jZWlsKHNsaWRlQ291bnQgLyBzbGlkZXNUb1Njcm9sbCk7XG4gIHZhciBzd2lwZURpcmVjdGlvbiA9IGdldFN3aXBlRGlyZWN0aW9uKHNwZWMudG91Y2hPYmplY3QsIHZlcnRpY2FsU3dpcGluZyk7XG4gIHZhciB0b3VjaFN3aXBlTGVuZ3RoID0gdG91Y2hPYmplY3Quc3dpcGVMZW5ndGg7XG5cbiAgaWYgKCFpbmZpbml0ZSkge1xuICAgIGlmIChjdXJyZW50U2xpZGUgPT09IDAgJiYgKHN3aXBlRGlyZWN0aW9uID09PSBcInJpZ2h0XCIgfHwgc3dpcGVEaXJlY3Rpb24gPT09IFwiZG93blwiKSB8fCBjdXJyZW50U2xpZGUgKyAxID49IGRvdENvdW50ICYmIChzd2lwZURpcmVjdGlvbiA9PT0gXCJsZWZ0XCIgfHwgc3dpcGVEaXJlY3Rpb24gPT09IFwidXBcIikgfHwgIWNhbkdvTmV4dChzcGVjKSAmJiAoc3dpcGVEaXJlY3Rpb24gPT09IFwibGVmdFwiIHx8IHN3aXBlRGlyZWN0aW9uID09PSBcInVwXCIpKSB7XG4gICAgICB0b3VjaFN3aXBlTGVuZ3RoID0gdG91Y2hPYmplY3Quc3dpcGVMZW5ndGggKiBlZGdlRnJpY3Rpb247XG5cbiAgICAgIGlmIChlZGdlRHJhZ2dlZCA9PT0gZmFsc2UgJiYgb25FZGdlKSB7XG4gICAgICAgIG9uRWRnZShzd2lwZURpcmVjdGlvbik7XG4gICAgICAgIHN0YXRlW1wiZWRnZURyYWdnZWRcIl0gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmICghc3dpcGVkICYmIHN3aXBlRXZlbnQpIHtcbiAgICBzd2lwZUV2ZW50KHN3aXBlRGlyZWN0aW9uKTtcbiAgICBzdGF0ZVtcInN3aXBlZFwiXSA9IHRydWU7XG4gIH1cblxuICBpZiAoIXZlcnRpY2FsKSB7XG4gICAgaWYgKCFydGwpIHtcbiAgICAgIHN3aXBlTGVmdCA9IGN1ckxlZnQgKyB0b3VjaFN3aXBlTGVuZ3RoICogcG9zaXRpb25PZmZzZXQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN3aXBlTGVmdCA9IGN1ckxlZnQgLSB0b3VjaFN3aXBlTGVuZ3RoICogcG9zaXRpb25PZmZzZXQ7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHN3aXBlTGVmdCA9IGN1ckxlZnQgKyB0b3VjaFN3aXBlTGVuZ3RoICogKGxpc3RIZWlnaHQgLyBsaXN0V2lkdGgpICogcG9zaXRpb25PZmZzZXQ7XG4gIH1cblxuICBpZiAodmVydGljYWxTd2lwaW5nKSB7XG4gICAgc3dpcGVMZWZ0ID0gY3VyTGVmdCArIHRvdWNoU3dpcGVMZW5ndGggKiBwb3NpdGlvbk9mZnNldDtcbiAgfVxuXG4gIHN0YXRlID0gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzdGF0ZSksIHt9LCB7XG4gICAgdG91Y2hPYmplY3Q6IHRvdWNoT2JqZWN0LFxuICAgIHN3aXBlTGVmdDogc3dpcGVMZWZ0LFxuICAgIHRyYWNrU3R5bGU6IGdldFRyYWNrQ1NTKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgc3BlYyksIHt9LCB7XG4gICAgICBsZWZ0OiBzd2lwZUxlZnRcbiAgICB9KSlcbiAgfSk7XG5cbiAgaWYgKE1hdGguYWJzKHRvdWNoT2JqZWN0LmN1clggLSB0b3VjaE9iamVjdC5zdGFydFgpIDwgTWF0aC5hYnModG91Y2hPYmplY3QuY3VyWSAtIHRvdWNoT2JqZWN0LnN0YXJ0WSkgKiAwLjgpIHtcbiAgICByZXR1cm4gc3RhdGU7XG4gIH1cblxuICBpZiAodG91Y2hPYmplY3Quc3dpcGVMZW5ndGggPiAxMCkge1xuICAgIHN0YXRlW1wic3dpcGluZ1wiXSA9IHRydWU7XG4gICAgc2FmZVByZXZlbnREZWZhdWx0KGUpO1xuICB9XG5cbiAgcmV0dXJuIHN0YXRlO1xufTtcblxuZXhwb3J0cy5zd2lwZU1vdmUgPSBzd2lwZU1vdmU7XG5cbnZhciBzd2lwZUVuZCA9IGZ1bmN0aW9uIHN3aXBlRW5kKGUsIHNwZWMpIHtcbiAgdmFyIGRyYWdnaW5nID0gc3BlYy5kcmFnZ2luZyxcbiAgICAgIHN3aXBlID0gc3BlYy5zd2lwZSxcbiAgICAgIHRvdWNoT2JqZWN0ID0gc3BlYy50b3VjaE9iamVjdCxcbiAgICAgIGxpc3RXaWR0aCA9IHNwZWMubGlzdFdpZHRoLFxuICAgICAgdG91Y2hUaHJlc2hvbGQgPSBzcGVjLnRvdWNoVGhyZXNob2xkLFxuICAgICAgdmVydGljYWxTd2lwaW5nID0gc3BlYy52ZXJ0aWNhbFN3aXBpbmcsXG4gICAgICBsaXN0SGVpZ2h0ID0gc3BlYy5saXN0SGVpZ2h0LFxuICAgICAgc3dpcGVUb1NsaWRlID0gc3BlYy5zd2lwZVRvU2xpZGUsXG4gICAgICBzY3JvbGxpbmcgPSBzcGVjLnNjcm9sbGluZyxcbiAgICAgIG9uU3dpcGUgPSBzcGVjLm9uU3dpcGUsXG4gICAgICB0YXJnZXRTbGlkZSA9IHNwZWMudGFyZ2V0U2xpZGUsXG4gICAgICBjdXJyZW50U2xpZGUgPSBzcGVjLmN1cnJlbnRTbGlkZSxcbiAgICAgIGluZmluaXRlID0gc3BlYy5pbmZpbml0ZTtcblxuICBpZiAoIWRyYWdnaW5nKSB7XG4gICAgaWYgKHN3aXBlKSBzYWZlUHJldmVudERlZmF1bHQoZSk7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgdmFyIG1pblN3aXBlID0gdmVydGljYWxTd2lwaW5nID8gbGlzdEhlaWdodCAvIHRvdWNoVGhyZXNob2xkIDogbGlzdFdpZHRoIC8gdG91Y2hUaHJlc2hvbGQ7XG4gIHZhciBzd2lwZURpcmVjdGlvbiA9IGdldFN3aXBlRGlyZWN0aW9uKHRvdWNoT2JqZWN0LCB2ZXJ0aWNhbFN3aXBpbmcpOyAvLyByZXNldCB0aGUgc3RhdGUgb2YgdG91Y2ggcmVsYXRlZCBzdGF0ZSB2YXJpYWJsZXMuXG5cbiAgdmFyIHN0YXRlID0ge1xuICAgIGRyYWdnaW5nOiBmYWxzZSxcbiAgICBlZGdlRHJhZ2dlZDogZmFsc2UsXG4gICAgc2Nyb2xsaW5nOiBmYWxzZSxcbiAgICBzd2lwaW5nOiBmYWxzZSxcbiAgICBzd2lwZWQ6IGZhbHNlLFxuICAgIHN3aXBlTGVmdDogbnVsbCxcbiAgICB0b3VjaE9iamVjdDoge31cbiAgfTtcblxuICBpZiAoc2Nyb2xsaW5nKSB7XG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG5cbiAgaWYgKCF0b3VjaE9iamVjdC5zd2lwZUxlbmd0aCkge1xuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuXG4gIGlmICh0b3VjaE9iamVjdC5zd2lwZUxlbmd0aCA+IG1pblN3aXBlKSB7XG4gICAgc2FmZVByZXZlbnREZWZhdWx0KGUpO1xuXG4gICAgaWYgKG9uU3dpcGUpIHtcbiAgICAgIG9uU3dpcGUoc3dpcGVEaXJlY3Rpb24pO1xuICAgIH1cblxuICAgIHZhciBzbGlkZUNvdW50LCBuZXdTbGlkZTtcbiAgICB2YXIgYWN0aXZlU2xpZGUgPSBpbmZpbml0ZSA/IGN1cnJlbnRTbGlkZSA6IHRhcmdldFNsaWRlO1xuXG4gICAgc3dpdGNoIChzd2lwZURpcmVjdGlvbikge1xuICAgICAgY2FzZSBcImxlZnRcIjpcbiAgICAgIGNhc2UgXCJ1cFwiOlxuICAgICAgICBuZXdTbGlkZSA9IGFjdGl2ZVNsaWRlICsgZ2V0U2xpZGVDb3VudChzcGVjKTtcbiAgICAgICAgc2xpZGVDb3VudCA9IHN3aXBlVG9TbGlkZSA/IGNoZWNrTmF2aWdhYmxlKHNwZWMsIG5ld1NsaWRlKSA6IG5ld1NsaWRlO1xuICAgICAgICBzdGF0ZVtcImN1cnJlbnREaXJlY3Rpb25cIl0gPSAwO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBcInJpZ2h0XCI6XG4gICAgICBjYXNlIFwiZG93blwiOlxuICAgICAgICBuZXdTbGlkZSA9IGFjdGl2ZVNsaWRlIC0gZ2V0U2xpZGVDb3VudChzcGVjKTtcbiAgICAgICAgc2xpZGVDb3VudCA9IHN3aXBlVG9TbGlkZSA/IGNoZWNrTmF2aWdhYmxlKHNwZWMsIG5ld1NsaWRlKSA6IG5ld1NsaWRlO1xuICAgICAgICBzdGF0ZVtcImN1cnJlbnREaXJlY3Rpb25cIl0gPSAxO1xuICAgICAgICBicmVhaztcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgc2xpZGVDb3VudCA9IGFjdGl2ZVNsaWRlO1xuICAgIH1cblxuICAgIHN0YXRlW1widHJpZ2dlclNsaWRlSGFuZGxlclwiXSA9IHNsaWRlQ291bnQ7XG4gIH0gZWxzZSB7XG4gICAgLy8gQWRqdXN0IHRoZSB0cmFjayBiYWNrIHRvIGl0J3Mgb3JpZ2luYWwgcG9zaXRpb24uXG4gICAgdmFyIGN1cnJlbnRMZWZ0ID0gZ2V0VHJhY2tMZWZ0KHNwZWMpO1xuICAgIHN0YXRlW1widHJhY2tTdHlsZVwiXSA9IGdldFRyYWNrQW5pbWF0ZUNTUyhfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHNwZWMpLCB7fSwge1xuICAgICAgbGVmdDogY3VycmVudExlZnRcbiAgICB9KSk7XG4gIH1cblxuICByZXR1cm4gc3RhdGU7XG59O1xuXG5leHBvcnRzLnN3aXBlRW5kID0gc3dpcGVFbmQ7XG5cbnZhciBnZXROYXZpZ2FibGVJbmRleGVzID0gZnVuY3Rpb24gZ2V0TmF2aWdhYmxlSW5kZXhlcyhzcGVjKSB7XG4gIHZhciBtYXggPSBzcGVjLmluZmluaXRlID8gc3BlYy5zbGlkZUNvdW50ICogMiA6IHNwZWMuc2xpZGVDb3VudDtcbiAgdmFyIGJyZWFrcG9pbnQgPSBzcGVjLmluZmluaXRlID8gc3BlYy5zbGlkZXNUb1Nob3cgKiAtMSA6IDA7XG4gIHZhciBjb3VudGVyID0gc3BlYy5pbmZpbml0ZSA/IHNwZWMuc2xpZGVzVG9TaG93ICogLTEgOiAwO1xuICB2YXIgaW5kZXhlcyA9IFtdO1xuXG4gIHdoaWxlIChicmVha3BvaW50IDwgbWF4KSB7XG4gICAgaW5kZXhlcy5wdXNoKGJyZWFrcG9pbnQpO1xuICAgIGJyZWFrcG9pbnQgPSBjb3VudGVyICsgc3BlYy5zbGlkZXNUb1Njcm9sbDtcbiAgICBjb3VudGVyICs9IE1hdGgubWluKHNwZWMuc2xpZGVzVG9TY3JvbGwsIHNwZWMuc2xpZGVzVG9TaG93KTtcbiAgfVxuXG4gIHJldHVybiBpbmRleGVzO1xufTtcblxuZXhwb3J0cy5nZXROYXZpZ2FibGVJbmRleGVzID0gZ2V0TmF2aWdhYmxlSW5kZXhlcztcblxudmFyIGNoZWNrTmF2aWdhYmxlID0gZnVuY3Rpb24gY2hlY2tOYXZpZ2FibGUoc3BlYywgaW5kZXgpIHtcbiAgdmFyIG5hdmlnYWJsZXMgPSBnZXROYXZpZ2FibGVJbmRleGVzKHNwZWMpO1xuICB2YXIgcHJldk5hdmlnYWJsZSA9IDA7XG5cbiAgaWYgKGluZGV4ID4gbmF2aWdhYmxlc1tuYXZpZ2FibGVzLmxlbmd0aCAtIDFdKSB7XG4gICAgaW5kZXggPSBuYXZpZ2FibGVzW25hdmlnYWJsZXMubGVuZ3RoIC0gMV07XG4gIH0gZWxzZSB7XG4gICAgZm9yICh2YXIgbiBpbiBuYXZpZ2FibGVzKSB7XG4gICAgICBpZiAoaW5kZXggPCBuYXZpZ2FibGVzW25dKSB7XG4gICAgICAgIGluZGV4ID0gcHJldk5hdmlnYWJsZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIHByZXZOYXZpZ2FibGUgPSBuYXZpZ2FibGVzW25dO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBpbmRleDtcbn07XG5cbmV4cG9ydHMuY2hlY2tOYXZpZ2FibGUgPSBjaGVja05hdmlnYWJsZTtcblxudmFyIGdldFNsaWRlQ291bnQgPSBmdW5jdGlvbiBnZXRTbGlkZUNvdW50KHNwZWMpIHtcbiAgdmFyIGNlbnRlck9mZnNldCA9IHNwZWMuY2VudGVyTW9kZSA/IHNwZWMuc2xpZGVXaWR0aCAqIE1hdGguZmxvb3Ioc3BlYy5zbGlkZXNUb1Nob3cgLyAyKSA6IDA7XG5cbiAgaWYgKHNwZWMuc3dpcGVUb1NsaWRlKSB7XG4gICAgdmFyIHN3aXBlZFNsaWRlO1xuICAgIHZhciBzbGlja0xpc3QgPSBzcGVjLmxpc3RSZWY7XG4gICAgdmFyIHNsaWRlcyA9IHNsaWNrTGlzdC5xdWVyeVNlbGVjdG9yQWxsICYmIHNsaWNrTGlzdC5xdWVyeVNlbGVjdG9yQWxsKFwiLnNsaWNrLXNsaWRlXCIpIHx8IFtdO1xuICAgIEFycmF5LmZyb20oc2xpZGVzKS5ldmVyeShmdW5jdGlvbiAoc2xpZGUpIHtcbiAgICAgIGlmICghc3BlYy52ZXJ0aWNhbCkge1xuICAgICAgICBpZiAoc2xpZGUub2Zmc2V0TGVmdCAtIGNlbnRlck9mZnNldCArIGdldFdpZHRoKHNsaWRlKSAvIDIgPiBzcGVjLnN3aXBlTGVmdCAqIC0xKSB7XG4gICAgICAgICAgc3dpcGVkU2xpZGUgPSBzbGlkZTtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChzbGlkZS5vZmZzZXRUb3AgKyBnZXRIZWlnaHQoc2xpZGUpIC8gMiA+IHNwZWMuc3dpcGVMZWZ0ICogLTEpIHtcbiAgICAgICAgICBzd2lwZWRTbGlkZSA9IHNsaWRlO1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9KTtcblxuICAgIGlmICghc3dpcGVkU2xpZGUpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIHZhciBjdXJyZW50SW5kZXggPSBzcGVjLnJ0bCA9PT0gdHJ1ZSA/IHNwZWMuc2xpZGVDb3VudCAtIHNwZWMuY3VycmVudFNsaWRlIDogc3BlYy5jdXJyZW50U2xpZGU7XG4gICAgdmFyIHNsaWRlc1RyYXZlcnNlZCA9IE1hdGguYWJzKHN3aXBlZFNsaWRlLmRhdGFzZXQuaW5kZXggLSBjdXJyZW50SW5kZXgpIHx8IDE7XG4gICAgcmV0dXJuIHNsaWRlc1RyYXZlcnNlZDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gc3BlYy5zbGlkZXNUb1Njcm9sbDtcbiAgfVxufTtcblxuZXhwb3J0cy5nZXRTbGlkZUNvdW50ID0gZ2V0U2xpZGVDb3VudDtcblxudmFyIGNoZWNrU3BlY0tleXMgPSBmdW5jdGlvbiBjaGVja1NwZWNLZXlzKHNwZWMsIGtleXNBcnJheSkge1xuICByZXR1cm4ga2V5c0FycmF5LnJlZHVjZShmdW5jdGlvbiAodmFsdWUsIGtleSkge1xuICAgIHJldHVybiB2YWx1ZSAmJiBzcGVjLmhhc093blByb3BlcnR5KGtleSk7XG4gIH0sIHRydWUpID8gbnVsbCA6IGNvbnNvbGUuZXJyb3IoXCJLZXlzIE1pc3Npbmc6XCIsIHNwZWMpO1xufTtcblxuZXhwb3J0cy5jaGVja1NwZWNLZXlzID0gY2hlY2tTcGVjS2V5cztcblxudmFyIGdldFRyYWNrQ1NTID0gZnVuY3Rpb24gZ2V0VHJhY2tDU1Moc3BlYykge1xuICBjaGVja1NwZWNLZXlzKHNwZWMsIFtcImxlZnRcIiwgXCJ2YXJpYWJsZVdpZHRoXCIsIFwic2xpZGVDb3VudFwiLCBcInNsaWRlc1RvU2hvd1wiLCBcInNsaWRlV2lkdGhcIl0pO1xuICB2YXIgdHJhY2tXaWR0aCwgdHJhY2tIZWlnaHQ7XG4gIHZhciB0cmFja0NoaWxkcmVuID0gc3BlYy5zbGlkZUNvdW50ICsgMiAqIHNwZWMuc2xpZGVzVG9TaG93O1xuXG4gIGlmICghc3BlYy52ZXJ0aWNhbCkge1xuICAgIHRyYWNrV2lkdGggPSBnZXRUb3RhbFNsaWRlcyhzcGVjKSAqIHNwZWMuc2xpZGVXaWR0aDtcbiAgfSBlbHNlIHtcbiAgICB0cmFja0hlaWdodCA9IHRyYWNrQ2hpbGRyZW4gKiBzcGVjLnNsaWRlSGVpZ2h0O1xuICB9XG5cbiAgdmFyIHN0eWxlID0ge1xuICAgIG9wYWNpdHk6IDEsXG4gICAgdHJhbnNpdGlvbjogXCJcIixcbiAgICBXZWJraXRUcmFuc2l0aW9uOiBcIlwiXG4gIH07XG5cbiAgaWYgKHNwZWMudXNlVHJhbnNmb3JtKSB7XG4gICAgdmFyIFdlYmtpdFRyYW5zZm9ybSA9ICFzcGVjLnZlcnRpY2FsID8gXCJ0cmFuc2xhdGUzZChcIiArIHNwZWMubGVmdCArIFwicHgsIDBweCwgMHB4KVwiIDogXCJ0cmFuc2xhdGUzZCgwcHgsIFwiICsgc3BlYy5sZWZ0ICsgXCJweCwgMHB4KVwiO1xuICAgIHZhciB0cmFuc2Zvcm0gPSAhc3BlYy52ZXJ0aWNhbCA/IFwidHJhbnNsYXRlM2QoXCIgKyBzcGVjLmxlZnQgKyBcInB4LCAwcHgsIDBweClcIiA6IFwidHJhbnNsYXRlM2QoMHB4LCBcIiArIHNwZWMubGVmdCArIFwicHgsIDBweClcIjtcbiAgICB2YXIgbXNUcmFuc2Zvcm0gPSAhc3BlYy52ZXJ0aWNhbCA/IFwidHJhbnNsYXRlWChcIiArIHNwZWMubGVmdCArIFwicHgpXCIgOiBcInRyYW5zbGF0ZVkoXCIgKyBzcGVjLmxlZnQgKyBcInB4KVwiO1xuICAgIHN0eWxlID0gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzdHlsZSksIHt9LCB7XG4gICAgICBXZWJraXRUcmFuc2Zvcm06IFdlYmtpdFRyYW5zZm9ybSxcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNmb3JtLFxuICAgICAgbXNUcmFuc2Zvcm06IG1zVHJhbnNmb3JtXG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgaWYgKHNwZWMudmVydGljYWwpIHtcbiAgICAgIHN0eWxlW1widG9wXCJdID0gc3BlYy5sZWZ0O1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHlsZVtcImxlZnRcIl0gPSBzcGVjLmxlZnQ7XG4gICAgfVxuICB9XG5cbiAgaWYgKHNwZWMuZmFkZSkgc3R5bGUgPSB7XG4gICAgb3BhY2l0eTogMVxuICB9O1xuICBpZiAodHJhY2tXaWR0aCkgc3R5bGUud2lkdGggPSB0cmFja1dpZHRoO1xuICBpZiAodHJhY2tIZWlnaHQpIHN0eWxlLmhlaWdodCA9IHRyYWNrSGVpZ2h0OyAvLyBGYWxsYmFjayBmb3IgSUU4XG5cbiAgaWYgKHdpbmRvdyAmJiAhd2luZG93LmFkZEV2ZW50TGlzdGVuZXIgJiYgd2luZG93LmF0dGFjaEV2ZW50KSB7XG4gICAgaWYgKCFzcGVjLnZlcnRpY2FsKSB7XG4gICAgICBzdHlsZS5tYXJnaW5MZWZ0ID0gc3BlYy5sZWZ0ICsgXCJweFwiO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHlsZS5tYXJnaW5Ub3AgPSBzcGVjLmxlZnQgKyBcInB4XCI7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0eWxlO1xufTtcblxuZXhwb3J0cy5nZXRUcmFja0NTUyA9IGdldFRyYWNrQ1NTO1xuXG52YXIgZ2V0VHJhY2tBbmltYXRlQ1NTID0gZnVuY3Rpb24gZ2V0VHJhY2tBbmltYXRlQ1NTKHNwZWMpIHtcbiAgY2hlY2tTcGVjS2V5cyhzcGVjLCBbXCJsZWZ0XCIsIFwidmFyaWFibGVXaWR0aFwiLCBcInNsaWRlQ291bnRcIiwgXCJzbGlkZXNUb1Nob3dcIiwgXCJzbGlkZVdpZHRoXCIsIFwic3BlZWRcIiwgXCJjc3NFYXNlXCJdKTtcbiAgdmFyIHN0eWxlID0gZ2V0VHJhY2tDU1Moc3BlYyk7IC8vIHVzZUNTUyBpcyB0cnVlIGJ5IGRlZmF1bHQgc28gaXQgY2FuIGJlIHVuZGVmaW5lZFxuXG4gIGlmIChzcGVjLnVzZVRyYW5zZm9ybSkge1xuICAgIHN0eWxlLldlYmtpdFRyYW5zaXRpb24gPSBcIi13ZWJraXQtdHJhbnNmb3JtIFwiICsgc3BlYy5zcGVlZCArIFwibXMgXCIgKyBzcGVjLmNzc0Vhc2U7XG4gICAgc3R5bGUudHJhbnNpdGlvbiA9IFwidHJhbnNmb3JtIFwiICsgc3BlYy5zcGVlZCArIFwibXMgXCIgKyBzcGVjLmNzc0Vhc2U7XG4gIH0gZWxzZSB7XG4gICAgaWYgKHNwZWMudmVydGljYWwpIHtcbiAgICAgIHN0eWxlLnRyYW5zaXRpb24gPSBcInRvcCBcIiArIHNwZWMuc3BlZWQgKyBcIm1zIFwiICsgc3BlYy5jc3NFYXNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHlsZS50cmFuc2l0aW9uID0gXCJsZWZ0IFwiICsgc3BlYy5zcGVlZCArIFwibXMgXCIgKyBzcGVjLmNzc0Vhc2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0eWxlO1xufTtcblxuZXhwb3J0cy5nZXRUcmFja0FuaW1hdGVDU1MgPSBnZXRUcmFja0FuaW1hdGVDU1M7XG5cbnZhciBnZXRUcmFja0xlZnQgPSBmdW5jdGlvbiBnZXRUcmFja0xlZnQoc3BlYykge1xuICBpZiAoc3BlYy51bnNsaWNrKSB7XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICBjaGVja1NwZWNLZXlzKHNwZWMsIFtcInNsaWRlSW5kZXhcIiwgXCJ0cmFja1JlZlwiLCBcImluZmluaXRlXCIsIFwiY2VudGVyTW9kZVwiLCBcInNsaWRlQ291bnRcIiwgXCJzbGlkZXNUb1Nob3dcIiwgXCJzbGlkZXNUb1Njcm9sbFwiLCBcInNsaWRlV2lkdGhcIiwgXCJsaXN0V2lkdGhcIiwgXCJ2YXJpYWJsZVdpZHRoXCIsIFwic2xpZGVIZWlnaHRcIl0pO1xuICB2YXIgc2xpZGVJbmRleCA9IHNwZWMuc2xpZGVJbmRleCxcbiAgICAgIHRyYWNrUmVmID0gc3BlYy50cmFja1JlZixcbiAgICAgIGluZmluaXRlID0gc3BlYy5pbmZpbml0ZSxcbiAgICAgIGNlbnRlck1vZGUgPSBzcGVjLmNlbnRlck1vZGUsXG4gICAgICBzbGlkZUNvdW50ID0gc3BlYy5zbGlkZUNvdW50LFxuICAgICAgc2xpZGVzVG9TaG93ID0gc3BlYy5zbGlkZXNUb1Nob3csXG4gICAgICBzbGlkZXNUb1Njcm9sbCA9IHNwZWMuc2xpZGVzVG9TY3JvbGwsXG4gICAgICBzbGlkZVdpZHRoID0gc3BlYy5zbGlkZVdpZHRoLFxuICAgICAgbGlzdFdpZHRoID0gc3BlYy5saXN0V2lkdGgsXG4gICAgICB2YXJpYWJsZVdpZHRoID0gc3BlYy52YXJpYWJsZVdpZHRoLFxuICAgICAgc2xpZGVIZWlnaHQgPSBzcGVjLnNsaWRlSGVpZ2h0LFxuICAgICAgZmFkZSA9IHNwZWMuZmFkZSxcbiAgICAgIHZlcnRpY2FsID0gc3BlYy52ZXJ0aWNhbDtcbiAgdmFyIHNsaWRlT2Zmc2V0ID0gMDtcbiAgdmFyIHRhcmdldExlZnQ7XG4gIHZhciB0YXJnZXRTbGlkZTtcbiAgdmFyIHZlcnRpY2FsT2Zmc2V0ID0gMDtcblxuICBpZiAoZmFkZSB8fCBzcGVjLnNsaWRlQ291bnQgPT09IDEpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHZhciBzbGlkZXNUb09mZnNldCA9IDA7XG5cbiAgaWYgKGluZmluaXRlKSB7XG4gICAgc2xpZGVzVG9PZmZzZXQgPSAtZ2V0UHJlQ2xvbmVzKHNwZWMpOyAvLyBicmluZyBhY3RpdmUgc2xpZGUgdG8gdGhlIGJlZ2lubmluZyBvZiB2aXN1YWwgYXJlYVxuICAgIC8vIGlmIG5leHQgc2Nyb2xsIGRvZXNuJ3QgaGF2ZSBlbm91Z2ggY2hpbGRyZW4sIGp1c3QgcmVhY2ggdGlsbCB0aGUgZW5kIG9mIG9yaWdpbmFsIHNsaWRlcyBpbnN0ZWFkIG9mIHNoaWZ0aW5nIHNsaWRlc1RvU2Nyb2xsIGNoaWxkcmVuXG5cbiAgICBpZiAoc2xpZGVDb3VudCAlIHNsaWRlc1RvU2Nyb2xsICE9PSAwICYmIHNsaWRlSW5kZXggKyBzbGlkZXNUb1Njcm9sbCA+IHNsaWRlQ291bnQpIHtcbiAgICAgIHNsaWRlc1RvT2Zmc2V0ID0gLShzbGlkZUluZGV4ID4gc2xpZGVDb3VudCA/IHNsaWRlc1RvU2hvdyAtIChzbGlkZUluZGV4IC0gc2xpZGVDb3VudCkgOiBzbGlkZUNvdW50ICUgc2xpZGVzVG9TY3JvbGwpO1xuICAgIH0gLy8gc2hpZnQgY3VycmVudCBzbGlkZSB0byBjZW50ZXIgb2YgdGhlIGZyYW1lXG5cblxuICAgIGlmIChjZW50ZXJNb2RlKSB7XG4gICAgICBzbGlkZXNUb09mZnNldCArPSBwYXJzZUludChzbGlkZXNUb1Nob3cgLyAyKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgaWYgKHNsaWRlQ291bnQgJSBzbGlkZXNUb1Njcm9sbCAhPT0gMCAmJiBzbGlkZUluZGV4ICsgc2xpZGVzVG9TY3JvbGwgPiBzbGlkZUNvdW50KSB7XG4gICAgICBzbGlkZXNUb09mZnNldCA9IHNsaWRlc1RvU2hvdyAtIHNsaWRlQ291bnQgJSBzbGlkZXNUb1Njcm9sbDtcbiAgICB9XG5cbiAgICBpZiAoY2VudGVyTW9kZSkge1xuICAgICAgc2xpZGVzVG9PZmZzZXQgPSBwYXJzZUludChzbGlkZXNUb1Nob3cgLyAyKTtcbiAgICB9XG4gIH1cblxuICBzbGlkZU9mZnNldCA9IHNsaWRlc1RvT2Zmc2V0ICogc2xpZGVXaWR0aDtcbiAgdmVydGljYWxPZmZzZXQgPSBzbGlkZXNUb09mZnNldCAqIHNsaWRlSGVpZ2h0O1xuXG4gIGlmICghdmVydGljYWwpIHtcbiAgICB0YXJnZXRMZWZ0ID0gc2xpZGVJbmRleCAqIHNsaWRlV2lkdGggKiAtMSArIHNsaWRlT2Zmc2V0O1xuICB9IGVsc2Uge1xuICAgIHRhcmdldExlZnQgPSBzbGlkZUluZGV4ICogc2xpZGVIZWlnaHQgKiAtMSArIHZlcnRpY2FsT2Zmc2V0O1xuICB9XG5cbiAgaWYgKHZhcmlhYmxlV2lkdGggPT09IHRydWUpIHtcbiAgICB2YXIgdGFyZ2V0U2xpZGVJbmRleDtcbiAgICB2YXIgdHJhY2tFbGVtID0gdHJhY2tSZWYgJiYgdHJhY2tSZWYubm9kZTtcbiAgICB0YXJnZXRTbGlkZUluZGV4ID0gc2xpZGVJbmRleCArIGdldFByZUNsb25lcyhzcGVjKTtcbiAgICB0YXJnZXRTbGlkZSA9IHRyYWNrRWxlbSAmJiB0cmFja0VsZW0uY2hpbGROb2Rlc1t0YXJnZXRTbGlkZUluZGV4XTtcbiAgICB0YXJnZXRMZWZ0ID0gdGFyZ2V0U2xpZGUgPyB0YXJnZXRTbGlkZS5vZmZzZXRMZWZ0ICogLTEgOiAwO1xuXG4gICAgaWYgKGNlbnRlck1vZGUgPT09IHRydWUpIHtcbiAgICAgIHRhcmdldFNsaWRlSW5kZXggPSBpbmZpbml0ZSA/IHNsaWRlSW5kZXggKyBnZXRQcmVDbG9uZXMoc3BlYykgOiBzbGlkZUluZGV4O1xuICAgICAgdGFyZ2V0U2xpZGUgPSB0cmFja0VsZW0gJiYgdHJhY2tFbGVtLmNoaWxkcmVuW3RhcmdldFNsaWRlSW5kZXhdO1xuICAgICAgdGFyZ2V0TGVmdCA9IDA7XG5cbiAgICAgIGZvciAodmFyIHNsaWRlID0gMDsgc2xpZGUgPCB0YXJnZXRTbGlkZUluZGV4OyBzbGlkZSsrKSB7XG4gICAgICAgIHRhcmdldExlZnQgLT0gdHJhY2tFbGVtICYmIHRyYWNrRWxlbS5jaGlsZHJlbltzbGlkZV0gJiYgdHJhY2tFbGVtLmNoaWxkcmVuW3NsaWRlXS5vZmZzZXRXaWR0aDtcbiAgICAgIH1cblxuICAgICAgdGFyZ2V0TGVmdCAtPSBwYXJzZUludChzcGVjLmNlbnRlclBhZGRpbmcpO1xuICAgICAgdGFyZ2V0TGVmdCArPSB0YXJnZXRTbGlkZSAmJiAobGlzdFdpZHRoIC0gdGFyZ2V0U2xpZGUub2Zmc2V0V2lkdGgpIC8gMjtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0TGVmdDtcbn07XG5cbmV4cG9ydHMuZ2V0VHJhY2tMZWZ0ID0gZ2V0VHJhY2tMZWZ0O1xuXG52YXIgZ2V0UHJlQ2xvbmVzID0gZnVuY3Rpb24gZ2V0UHJlQ2xvbmVzKHNwZWMpIHtcbiAgaWYgKHNwZWMudW5zbGljayB8fCAhc3BlYy5pbmZpbml0ZSkge1xuICAgIHJldHVybiAwO1xuICB9XG5cbiAgaWYgKHNwZWMudmFyaWFibGVXaWR0aCkge1xuICAgIHJldHVybiBzcGVjLnNsaWRlQ291bnQ7XG4gIH1cblxuICByZXR1cm4gc3BlYy5zbGlkZXNUb1Nob3cgKyAoc3BlYy5jZW50ZXJNb2RlID8gMSA6IDApO1xufTtcblxuZXhwb3J0cy5nZXRQcmVDbG9uZXMgPSBnZXRQcmVDbG9uZXM7XG5cbnZhciBnZXRQb3N0Q2xvbmVzID0gZnVuY3Rpb24gZ2V0UG9zdENsb25lcyhzcGVjKSB7XG4gIGlmIChzcGVjLnVuc2xpY2sgfHwgIXNwZWMuaW5maW5pdGUpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHJldHVybiBzcGVjLnNsaWRlQ291bnQ7XG59O1xuXG5leHBvcnRzLmdldFBvc3RDbG9uZXMgPSBnZXRQb3N0Q2xvbmVzO1xuXG52YXIgZ2V0VG90YWxTbGlkZXMgPSBmdW5jdGlvbiBnZXRUb3RhbFNsaWRlcyhzcGVjKSB7XG4gIHJldHVybiBzcGVjLnNsaWRlQ291bnQgPT09IDEgPyAxIDogZ2V0UHJlQ2xvbmVzKHNwZWMpICsgc3BlYy5zbGlkZUNvdW50ICsgZ2V0UG9zdENsb25lcyhzcGVjKTtcbn07XG5cbmV4cG9ydHMuZ2V0VG90YWxTbGlkZXMgPSBnZXRUb3RhbFNsaWRlcztcblxudmFyIHNpYmxpbmdEaXJlY3Rpb24gPSBmdW5jdGlvbiBzaWJsaW5nRGlyZWN0aW9uKHNwZWMpIHtcbiAgaWYgKHNwZWMudGFyZ2V0U2xpZGUgPiBzcGVjLmN1cnJlbnRTbGlkZSkge1xuICAgIGlmIChzcGVjLnRhcmdldFNsaWRlID4gc3BlYy5jdXJyZW50U2xpZGUgKyBzbGlkZXNPblJpZ2h0KHNwZWMpKSB7XG4gICAgICByZXR1cm4gXCJsZWZ0XCI7XG4gICAgfVxuXG4gICAgcmV0dXJuIFwicmlnaHRcIjtcbiAgfSBlbHNlIHtcbiAgICBpZiAoc3BlYy50YXJnZXRTbGlkZSA8IHNwZWMuY3VycmVudFNsaWRlIC0gc2xpZGVzT25MZWZ0KHNwZWMpKSB7XG4gICAgICByZXR1cm4gXCJyaWdodFwiO1xuICAgIH1cblxuICAgIHJldHVybiBcImxlZnRcIjtcbiAgfVxufTtcblxuZXhwb3J0cy5zaWJsaW5nRGlyZWN0aW9uID0gc2libGluZ0RpcmVjdGlvbjtcblxudmFyIHNsaWRlc09uUmlnaHQgPSBmdW5jdGlvbiBzbGlkZXNPblJpZ2h0KF9yZWYpIHtcbiAgdmFyIHNsaWRlc1RvU2hvdyA9IF9yZWYuc2xpZGVzVG9TaG93LFxuICAgICAgY2VudGVyTW9kZSA9IF9yZWYuY2VudGVyTW9kZSxcbiAgICAgIHJ0bCA9IF9yZWYucnRsLFxuICAgICAgY2VudGVyUGFkZGluZyA9IF9yZWYuY2VudGVyUGFkZGluZztcblxuICAvLyByZXR1cm5zIG5vIG9mIHNsaWRlcyBvbiB0aGUgcmlnaHQgb2YgYWN0aXZlIHNsaWRlXG4gIGlmIChjZW50ZXJNb2RlKSB7XG4gICAgdmFyIHJpZ2h0ID0gKHNsaWRlc1RvU2hvdyAtIDEpIC8gMiArIDE7XG4gICAgaWYgKHBhcnNlSW50KGNlbnRlclBhZGRpbmcpID4gMCkgcmlnaHQgKz0gMTtcbiAgICBpZiAocnRsICYmIHNsaWRlc1RvU2hvdyAlIDIgPT09IDApIHJpZ2h0ICs9IDE7XG4gICAgcmV0dXJuIHJpZ2h0O1xuICB9XG5cbiAgaWYgKHJ0bCkge1xuICAgIHJldHVybiAwO1xuICB9XG5cbiAgcmV0dXJuIHNsaWRlc1RvU2hvdyAtIDE7XG59O1xuXG5leHBvcnRzLnNsaWRlc09uUmlnaHQgPSBzbGlkZXNPblJpZ2h0O1xuXG52YXIgc2xpZGVzT25MZWZ0ID0gZnVuY3Rpb24gc2xpZGVzT25MZWZ0KF9yZWYyKSB7XG4gIHZhciBzbGlkZXNUb1Nob3cgPSBfcmVmMi5zbGlkZXNUb1Nob3csXG4gICAgICBjZW50ZXJNb2RlID0gX3JlZjIuY2VudGVyTW9kZSxcbiAgICAgIHJ0bCA9IF9yZWYyLnJ0bCxcbiAgICAgIGNlbnRlclBhZGRpbmcgPSBfcmVmMi5jZW50ZXJQYWRkaW5nO1xuXG4gIC8vIHJldHVybnMgbm8gb2Ygc2xpZGVzIG9uIHRoZSBsZWZ0IG9mIGFjdGl2ZSBzbGlkZVxuICBpZiAoY2VudGVyTW9kZSkge1xuICAgIHZhciBsZWZ0ID0gKHNsaWRlc1RvU2hvdyAtIDEpIC8gMiArIDE7XG4gICAgaWYgKHBhcnNlSW50KGNlbnRlclBhZGRpbmcpID4gMCkgbGVmdCArPSAxO1xuICAgIGlmICghcnRsICYmIHNsaWRlc1RvU2hvdyAlIDIgPT09IDApIGxlZnQgKz0gMTtcbiAgICByZXR1cm4gbGVmdDtcbiAgfVxuXG4gIGlmIChydGwpIHtcbiAgICByZXR1cm4gc2xpZGVzVG9TaG93IC0gMTtcbiAgfVxuXG4gIHJldHVybiAwO1xufTtcblxuZXhwb3J0cy5zbGlkZXNPbkxlZnQgPSBzbGlkZXNPbkxlZnQ7XG5cbnZhciBjYW5Vc2VET00gPSBmdW5jdGlvbiBjYW5Vc2VET00oKSB7XG4gIHJldHVybiAhISh0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiICYmIHdpbmRvdy5kb2N1bWVudCAmJiB3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCk7XG59O1xuXG5leHBvcnRzLmNhblVzZURPTSA9IGNhblVzZURPTTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-slick/lib/utils/innerSliderUtils.js\n"); + +/***/ }), + +/***/ "./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js": +/*!*************************************************************************!*\ + !*** ./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array<Array>} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof __webpack_require__.g !== 'undefined' && __webpack_require__.g.Math === Math) {\r\n return __webpack_require__.g;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array<ResizeObserverSPI>}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the <html> itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element (<html>).\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array<ResizeObservation>}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map<Element, ResizeObservation>}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (index);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVzaXplLW9ic2VydmVyLXBvbHlmaWxsL2Rpc3QvUmVzaXplT2JzZXJ2ZXIuZXMuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLGNBQWM7QUFDN0IsZUFBZSxHQUFHO0FBQ2xCLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBLG1CQUFtQixHQUFHO0FBQ3RCLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixHQUFHO0FBQ3RCLG1CQUFtQixHQUFHO0FBQ3RCLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLEdBQUc7QUFDdEIscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixHQUFHO0FBQ3RCLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUIsVUFBVTtBQUM3QixtQkFBbUIsR0FBRztBQUN0QixxQkFBcUI7QUFDckI7QUFDQTtBQUNBLGtDQUFrQztBQUNsQyxvREFBb0QsZ0JBQWdCO0FBQ3BFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsZUFBZSxxQkFB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QTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSx3QkFBd0I7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRCwrREFBZSxLQUFLLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3Jlc2l6ZS1vYnNlcnZlci1wb2x5ZmlsbC9kaXN0L1Jlc2l6ZU9ic2VydmVyLmVzLmpzP2YzNDciXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEEgY29sbGVjdGlvbiBvZiBzaGltcyB0aGF0IHByb3ZpZGUgbWluaW1hbCBmdW5jdGlvbmFsaXR5IG9mIHRoZSBFUzYgY29sbGVjdGlvbnMuXHJcbiAqXHJcbiAqIFRoZXNlIGltcGxlbWVudGF0aW9ucyBhcmUgbm90IG1lYW50IHRvIGJlIHVzZWQgb3V0c2lkZSBvZiB0aGUgUmVzaXplT2JzZXJ2ZXJcclxuICogbW9kdWxlcyBhcyB0aGV5IGNvdmVyIG9ubHkgYSBsaW1pdGVkIHJhbmdlIG9mIHVzZSBjYXNlcy5cclxuICovXHJcbi8qIGVzbGludC1kaXNhYmxlIHJlcXVpcmUtanNkb2MsIHZhbGlkLWpzZG9jICovXHJcbnZhciBNYXBTaGltID0gKGZ1bmN0aW9uICgpIHtcclxuICAgIGlmICh0eXBlb2YgTWFwICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgIHJldHVybiBNYXA7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgaW5kZXggaW4gcHJvdmlkZWQgYXJyYXkgdGhhdCBtYXRjaGVzIHRoZSBzcGVjaWZpZWQga2V5LlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7QXJyYXk8QXJyYXk+fSBhcnJcclxuICAgICAqIEBwYXJhbSB7Kn0ga2V5XHJcbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfVxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiBnZXRJbmRleChhcnIsIGtleSkge1xyXG4gICAgICAgIHZhciByZXN1bHQgPSAtMTtcclxuICAgICAgICBhcnIuc29tZShmdW5jdGlvbiAoZW50cnksIGluZGV4KSB7XHJcbiAgICAgICAgICAgIGlmIChlbnRyeVswXSA9PT0ga2V5KSB7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQgPSBpbmRleDtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBmdW5jdGlvbiBjbGFzc18xKCkge1xyXG4gICAgICAgICAgICB0aGlzLl9fZW50cmllc19fID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjbGFzc18xLnByb3RvdHlwZSwgXCJzaXplXCIsIHtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIEByZXR1cm5zIHtib29sZWFufVxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fX2VudHJpZXNfXy5sZW5ndGg7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXHJcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBwYXJhbSB7Kn0ga2V5XHJcbiAgICAgICAgICogQHJldHVybnMgeyp9XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgY2xhc3NfMS5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24gKGtleSkge1xyXG4gICAgICAgICAgICB2YXIgaW5kZXggPSBnZXRJbmRleCh0aGlzLl9fZW50cmllc19fLCBrZXkpO1xyXG4gICAgICAgICAgICB2YXIgZW50cnkgPSB0aGlzLl9fZW50cmllc19fW2luZGV4XTtcclxuICAgICAgICAgICAgcmV0dXJuIGVudHJ5ICYmIGVudHJ5WzFdO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQHBhcmFtIHsqfSBrZXlcclxuICAgICAgICAgKiBAcGFyYW0geyp9IHZhbHVlXHJcbiAgICAgICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgY2xhc3NfMS5wcm90b3R5cGUuc2V0ID0gZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcclxuICAgICAgICAgICAgdmFyIGluZGV4ID0gZ2V0SW5kZXgodGhpcy5fX2VudHJpZXNfXywga2V5KTtcclxuICAgICAgICAgICAgaWYgKH5pbmRleCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fX2VudHJpZXNfX1tpbmRleF1bMV0gPSB2YWx1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX19lbnRyaWVzX18ucHVzaChba2V5LCB2YWx1ZV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAcGFyYW0geyp9IGtleVxyXG4gICAgICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGNsYXNzXzEucHJvdG90eXBlLmRlbGV0ZSA9IGZ1bmN0aW9uIChrZXkpIHtcclxuICAgICAgICAgICAgdmFyIGVudHJpZXMgPSB0aGlzLl9fZW50cmllc19fO1xyXG4gICAgICAgICAgICB2YXIgaW5kZXggPSBnZXRJbmRleChlbnRyaWVzLCBrZXkpO1xyXG4gICAgICAgICAgICBpZiAofmluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICBlbnRyaWVzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBwYXJhbSB7Kn0ga2V5XHJcbiAgICAgICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgY2xhc3NfMS5wcm90b3R5cGUuaGFzID0gZnVuY3Rpb24gKGtleSkge1xyXG4gICAgICAgICAgICByZXR1cm4gISF+Z2V0SW5kZXgodGhpcy5fX2VudHJpZXNfXywga2V5KTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGNsYXNzXzEucHJvdG90eXBlLmNsZWFyID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICB0aGlzLl9fZW50cmllc19fLnNwbGljZSgwKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrXHJcbiAgICAgICAgICogQHBhcmFtIHsqfSBbY3R4PW51bGxdXHJcbiAgICAgICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgY2xhc3NfMS5wcm90b3R5cGUuZm9yRWFjaCA9IGZ1bmN0aW9uIChjYWxsYmFjaywgY3R4KSB7XHJcbiAgICAgICAgICAgIGlmIChjdHggPT09IHZvaWQgMCkgeyBjdHggPSBudWxsOyB9XHJcbiAgICAgICAgICAgIGZvciAodmFyIF9pID0gMCwgX2EgPSB0aGlzLl9fZW50cmllc19fOyBfaSA8IF9hLmxlbmd0aDsgX2krKykge1xyXG4gICAgICAgICAgICAgICAgdmFyIGVudHJ5ID0gX2FbX2ldO1xyXG4gICAgICAgICAgICAgICAgY2FsbGJhY2suY2FsbChjdHgsIGVudHJ5WzFdLCBlbnRyeVswXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiBjbGFzc18xO1xyXG4gICAgfSgpKTtcclxufSkoKTtcblxuLyoqXHJcbiAqIERldGVjdHMgd2hldGhlciB3aW5kb3cgYW5kIGRvY3VtZW50IG9iamVjdHMgYXJlIGF2YWlsYWJsZSBpbiBjdXJyZW50IGVudmlyb25tZW50LlxyXG4gKi9cclxudmFyIGlzQnJvd3NlciA9IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LmRvY3VtZW50ID09PSBkb2N1bWVudDtcblxuLy8gUmV0dXJucyBnbG9iYWwgb2JqZWN0IG9mIGEgY3VycmVudCBlbnZpcm9ubWVudC5cclxudmFyIGdsb2JhbCQxID0gKGZ1bmN0aW9uICgpIHtcclxuICAgIGlmICh0eXBlb2YgZ2xvYmFsICE9PSAndW5kZWZpbmVkJyAmJiBnbG9iYWwuTWF0aCA9PT0gTWF0aCkge1xyXG4gICAgICAgIHJldHVybiBnbG9iYWw7XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZW9mIHNlbGYgIT09ICd1bmRlZmluZWQnICYmIHNlbGYuTWF0aCA9PT0gTWF0aCkge1xyXG4gICAgICAgIHJldHVybiBzZWxmO1xyXG4gICAgfVxyXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5NYXRoID09PSBNYXRoKSB7XHJcbiAgICAgICAgcmV0dXJuIHdpbmRvdztcclxuICAgIH1cclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1uZXctZnVuY1xyXG4gICAgcmV0dXJuIEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XHJcbn0pKCk7XG5cbi8qKlxyXG4gKiBBIHNoaW0gZm9yIHRoZSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgd2hpY2ggZmFsbHMgYmFjayB0byB0aGUgc2V0VGltZW91dCBpZlxyXG4gKiBmaXJzdCBvbmUgaXMgbm90IHN1cHBvcnRlZC5cclxuICpcclxuICogQHJldHVybnMge251bWJlcn0gUmVxdWVzdHMnIGlkZW50aWZpZXIuXHJcbiAqL1xyXG52YXIgcmVxdWVzdEFuaW1hdGlvbkZyYW1lJDEgPSAoZnVuY3Rpb24gKCkge1xyXG4gICAgaWYgKHR5cGVvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAvLyBJdCdzIHJlcXVpcmVkIHRvIHVzZSBhIGJvdW5kZWQgZnVuY3Rpb24gYmVjYXVzZSBJRSBzb21ldGltZXMgdGhyb3dzXHJcbiAgICAgICAgLy8gYW4gXCJJbnZhbGlkIGNhbGxpbmcgb2JqZWN0XCIgZXJyb3IgaWYgckFGIGlzIGludm9rZWQgd2l0aG91dCB0aGUgZ2xvYmFsXHJcbiAgICAgICAgLy8gb2JqZWN0IG9uIHRoZSBsZWZ0IGhhbmQgc2lkZS5cclxuICAgICAgICByZXR1cm4gcmVxdWVzdEFuaW1hdGlvbkZyYW1lLmJpbmQoZ2xvYmFsJDEpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZ1bmN0aW9uIChjYWxsYmFjaykgeyByZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7IHJldHVybiBjYWxsYmFjayhEYXRlLm5vdygpKTsgfSwgMTAwMCAvIDYwKTsgfTtcclxufSkoKTtcblxuLy8gRGVmaW5lcyBtaW5pbXVtIHRpbWVvdXQgYmVmb3JlIGFkZGluZyBhIHRyYWlsaW5nIGNhbGwuXHJcbnZhciB0cmFpbGluZ1RpbWVvdXQgPSAyO1xyXG4vKipcclxuICogQ3JlYXRlcyBhIHdyYXBwZXIgZnVuY3Rpb24gd2hpY2ggZW5zdXJlcyB0aGF0IHByb3ZpZGVkIGNhbGxiYWNrIHdpbGwgYmVcclxuICogaW52b2tlZCBvbmx5IG9uY2UgZHVyaW5nIHRoZSBzcGVjaWZpZWQgZGVsYXkgcGVyaW9kLlxyXG4gKlxyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFjayAtIEZ1bmN0aW9uIHRvIGJlIGludm9rZWQgYWZ0ZXIgdGhlIGRlbGF5IHBlcmlvZC5cclxuICogQHBhcmFtIHtudW1iZXJ9IGRlbGF5IC0gRGVsYXkgYWZ0ZXIgd2hpY2ggdG8gaW52b2tlIGNhbGxiYWNrLlxyXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259XHJcbiAqL1xyXG5mdW5jdGlvbiB0aHJvdHRsZSAoY2FsbGJhY2ssIGRlbGF5KSB7XHJcbiAgICB2YXIgbGVhZGluZ0NhbGwgPSBmYWxzZSwgdHJhaWxpbmdDYWxsID0gZmFsc2UsIGxhc3RDYWxsVGltZSA9IDA7XHJcbiAgICAvKipcclxuICAgICAqIEludm9rZXMgdGhlIG9yaWdpbmFsIGNhbGxiYWNrIGZ1bmN0aW9uIGFuZCBzY2hlZHVsZXMgbmV3IGludm9jYXRpb24gaWZcclxuICAgICAqIHRoZSBcInByb3h5XCIgd2FzIGNhbGxlZCBkdXJpbmcgY3VycmVudCByZXF1ZXN0LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiByZXNvbHZlUGVuZGluZygpIHtcclxuICAgICAgICBpZiAobGVhZGluZ0NhbGwpIHtcclxuICAgICAgICAgICAgbGVhZGluZ0NhbGwgPSBmYWxzZTtcclxuICAgICAgICAgICAgY2FsbGJhY2soKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRyYWlsaW5nQ2FsbCkge1xyXG4gICAgICAgICAgICBwcm94eSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGJhY2sgaW52b2tlZCBhZnRlciB0aGUgc3BlY2lmaWVkIGRlbGF5LiBJdCB3aWxsIGZ1cnRoZXIgcG9zdHBvbmVcclxuICAgICAqIGludm9jYXRpb24gb2YgdGhlIG9yaWdpbmFsIGZ1bmN0aW9uIGRlbGVnYXRpbmcgaXQgdG8gdGhlXHJcbiAgICAgKiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgKi9cclxuICAgIGZ1bmN0aW9uIHRpbWVvdXRDYWxsYmFjaygpIHtcclxuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUkMShyZXNvbHZlUGVuZGluZyk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFNjaGVkdWxlcyBpbnZvY2F0aW9uIG9mIHRoZSBvcmlnaW5hbCBmdW5jdGlvbi5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgZnVuY3Rpb24gcHJveHkoKSB7XHJcbiAgICAgICAgdmFyIHRpbWVTdGFtcCA9IERhdGUubm93KCk7XHJcbiAgICAgICAgaWYgKGxlYWRpbmdDYWxsKSB7XHJcbiAgICAgICAgICAgIC8vIFJlamVjdCBpbW1lZGlhdGVseSBmb2xsb3dpbmcgY2FsbHMuXHJcbiAgICAgICAgICAgIGlmICh0aW1lU3RhbXAgLSBsYXN0Q2FsbFRpbWUgPCB0cmFpbGluZ1RpbWVvdXQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBTY2hlZHVsZSBuZXcgY2FsbCB0byBiZSBpbiBpbnZva2VkIHdoZW4gdGhlIHBlbmRpbmcgb25lIGlzIHJlc29sdmVkLlxyXG4gICAgICAgICAgICAvLyBUaGlzIGlzIGltcG9ydGFudCBmb3IgXCJ0cmFuc2l0aW9uc1wiIHdoaWNoIG5ldmVyIGFjdHVhbGx5IHN0YXJ0XHJcbiAgICAgICAgICAgIC8vIGltbWVkaWF0ZWx5IHNvIHRoZXJlIGlzIGEgY2hhbmNlIHRoYXQgd2UgbWlnaHQgbWlzcyBvbmUgaWYgY2hhbmdlXHJcbiAgICAgICAgICAgIC8vIGhhcHBlbnMgYW1pZHMgdGhlIHBlbmRpbmcgaW52b2NhdGlvbi5cclxuICAgICAgICAgICAgdHJhaWxpbmdDYWxsID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGxlYWRpbmdDYWxsID0gdHJ1ZTtcclxuICAgICAgICAgICAgdHJhaWxpbmdDYWxsID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQodGltZW91dENhbGxiYWNrLCBkZWxheSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxhc3RDYWxsVGltZSA9IHRpbWVTdGFtcDtcclxuICAgIH1cclxuICAgIHJldHVybiBwcm94eTtcclxufVxuXG4vLyBNaW5pbXVtIGRlbGF5IGJlZm9yZSBpbnZva2luZyB0aGUgdXBkYXRlIG9mIG9ic2VydmVycy5cclxudmFyIFJFRlJFU0hfREVMQVkgPSAyMDtcclxuLy8gQSBsaXN0IG9mIHN1YnN0cmluZ3Mgb2YgQ1NTIHByb3BlcnRpZXMgdXNlZCB0byBmaW5kIHRyYW5zaXRpb24gZXZlbnRzIHRoYXRcclxuLy8gbWlnaHQgYWZmZWN0IGRpbWVuc2lvbnMgb2Ygb2JzZXJ2ZWQgZWxlbWVudHMuXHJcbnZhciB0cmFuc2l0aW9uS2V5cyA9IFsndG9wJywgJ3JpZ2h0JywgJ2JvdHRvbScsICdsZWZ0JywgJ3dpZHRoJywgJ2hlaWdodCcsICdzaXplJywgJ3dlaWdodCddO1xyXG4vLyBDaGVjayBpZiBNdXRhdGlvbk9ic2VydmVyIGlzIGF2YWlsYWJsZS5cclxudmFyIG11dGF0aW9uT2JzZXJ2ZXJTdXBwb3J0ZWQgPSB0eXBlb2YgTXV0YXRpb25PYnNlcnZlciAhPT0gJ3VuZGVmaW5lZCc7XHJcbi8qKlxyXG4gKiBTaW5nbGV0b24gY29udHJvbGxlciBjbGFzcyB3aGljaCBoYW5kbGVzIHVwZGF0ZXMgb2YgUmVzaXplT2JzZXJ2ZXIgaW5zdGFuY2VzLlxyXG4gKi9cclxudmFyIFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlciA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiBSZXNpemVPYnNlcnZlckNvbnRyb2xsZXIuXHJcbiAgICAgKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgZnVuY3Rpb24gUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyKCkge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEluZGljYXRlcyB3aGV0aGVyIERPTSBsaXN0ZW5lcnMgaGF2ZSBiZWVuIGFkZGVkLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHByaXZhdGUge2Jvb2xlYW59XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5jb25uZWN0ZWRfID0gZmFsc2U7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGVsbHMgdGhhdCBjb250cm9sbGVyIGhhcyBzdWJzY3JpYmVkIGZvciBNdXRhdGlvbiBFdmVudHMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAcHJpdmF0ZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLm11dGF0aW9uRXZlbnRzQWRkZWRfID0gZmFsc2U7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogS2VlcHMgcmVmZXJlbmNlIHRvIHRoZSBpbnN0YW5jZSBvZiBNdXRhdGlvbk9ic2VydmVyLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHByaXZhdGUge011dGF0aW9uT2JzZXJ2ZXJ9XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5tdXRhdGlvbnNPYnNlcnZlcl8gPSBudWxsO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEEgbGlzdCBvZiBjb25uZWN0ZWQgb2JzZXJ2ZXJzLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHByaXZhdGUge0FycmF5PFJlc2l6ZU9ic2VydmVyU1BJPn1cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLm9ic2VydmVyc18gPSBbXTtcclxuICAgICAgICB0aGlzLm9uVHJhbnNpdGlvbkVuZF8gPSB0aGlzLm9uVHJhbnNpdGlvbkVuZF8uYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLnJlZnJlc2ggPSB0aHJvdHRsZSh0aGlzLnJlZnJlc2guYmluZCh0aGlzKSwgUkVGUkVTSF9ERUxBWSk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIEFkZHMgb2JzZXJ2ZXIgdG8gb2JzZXJ2ZXJzIGxpc3QuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtSZXNpemVPYnNlcnZlclNQSX0gb2JzZXJ2ZXIgLSBPYnNlcnZlciB0byBiZSBhZGRlZC5cclxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZlckNvbnRyb2xsZXIucHJvdG90eXBlLmFkZE9ic2VydmVyID0gZnVuY3Rpb24gKG9ic2VydmVyKSB7XHJcbiAgICAgICAgaWYgKCF+dGhpcy5vYnNlcnZlcnNfLmluZGV4T2Yob2JzZXJ2ZXIpKSB7XHJcbiAgICAgICAgICAgIHRoaXMub2JzZXJ2ZXJzXy5wdXNoKG9ic2VydmVyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gQWRkIGxpc3RlbmVycyBpZiB0aGV5IGhhdmVuJ3QgYmVlbiBhZGRlZCB5ZXQuXHJcbiAgICAgICAgaWYgKCF0aGlzLmNvbm5lY3RlZF8pIHtcclxuICAgICAgICAgICAgdGhpcy5jb25uZWN0XygpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIFJlbW92ZXMgb2JzZXJ2ZXIgZnJvbSBvYnNlcnZlcnMgbGlzdC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1Jlc2l6ZU9ic2VydmVyU1BJfSBvYnNlcnZlciAtIE9ic2VydmVyIHRvIGJlIHJlbW92ZWQuXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyLnByb3RvdHlwZS5yZW1vdmVPYnNlcnZlciA9IGZ1bmN0aW9uIChvYnNlcnZlcikge1xyXG4gICAgICAgIHZhciBvYnNlcnZlcnMgPSB0aGlzLm9ic2VydmVyc187XHJcbiAgICAgICAgdmFyIGluZGV4ID0gb2JzZXJ2ZXJzLmluZGV4T2Yob2JzZXJ2ZXIpO1xyXG4gICAgICAgIC8vIFJlbW92ZSBvYnNlcnZlciBpZiBpdCdzIHByZXNlbnQgaW4gcmVnaXN0cnkuXHJcbiAgICAgICAgaWYgKH5pbmRleCkge1xyXG4gICAgICAgICAgICBvYnNlcnZlcnMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gUmVtb3ZlIGxpc3RlbmVycyBpZiBjb250cm9sbGVyIGhhcyBubyBjb25uZWN0ZWQgb2JzZXJ2ZXJzLlxyXG4gICAgICAgIGlmICghb2JzZXJ2ZXJzLmxlbmd0aCAmJiB0aGlzLmNvbm5lY3RlZF8pIHtcclxuICAgICAgICAgICAgdGhpcy5kaXNjb25uZWN0XygpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIEludm9rZXMgdGhlIHVwZGF0ZSBvZiBvYnNlcnZlcnMuIEl0IHdpbGwgY29udGludWUgcnVubmluZyB1cGRhdGVzIGluc29mYXJcclxuICAgICAqIGl0IGRldGVjdHMgY2hhbmdlcy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyLnByb3RvdHlwZS5yZWZyZXNoID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHZhciBjaGFuZ2VzRGV0ZWN0ZWQgPSB0aGlzLnVwZGF0ZU9ic2VydmVyc18oKTtcclxuICAgICAgICAvLyBDb250aW51ZSBydW5uaW5nIHVwZGF0ZXMgaWYgY2hhbmdlcyBoYXZlIGJlZW4gZGV0ZWN0ZWQgYXMgdGhlcmUgbWlnaHRcclxuICAgICAgICAvLyBiZSBmdXR1cmUgb25lcyBjYXVzZWQgYnkgQ1NTIHRyYW5zaXRpb25zLlxyXG4gICAgICAgIGlmIChjaGFuZ2VzRGV0ZWN0ZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlcyBldmVyeSBvYnNlcnZlciBmcm9tIG9ic2VydmVycyBsaXN0IGFuZCBub3RpZmllcyB0aGVtIG9mIHF1ZXVlZFxyXG4gICAgICogZW50cmllcy5cclxuICAgICAqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgXCJ0cnVlXCIgaWYgYW55IG9ic2VydmVyIGhhcyBkZXRlY3RlZCBjaGFuZ2VzIGluXHJcbiAgICAgKiAgICAgIGRpbWVuc2lvbnMgb2YgaXQncyBlbGVtZW50cy5cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyLnByb3RvdHlwZS51cGRhdGVPYnNlcnZlcnNfID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIC8vIENvbGxlY3Qgb2JzZXJ2ZXJzIHRoYXQgaGF2ZSBhY3RpdmUgb2JzZXJ2YXRpb25zLlxyXG4gICAgICAgIHZhciBhY3RpdmVPYnNlcnZlcnMgPSB0aGlzLm9ic2VydmVyc18uZmlsdGVyKGZ1bmN0aW9uIChvYnNlcnZlcikge1xyXG4gICAgICAgICAgICByZXR1cm4gb2JzZXJ2ZXIuZ2F0aGVyQWN0aXZlKCksIG9ic2VydmVyLmhhc0FjdGl2ZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8vIERlbGl2ZXIgbm90aWZpY2F0aW9ucyBpbiBhIHNlcGFyYXRlIGN5Y2xlIGluIG9yZGVyIHRvIGF2b2lkIGFueVxyXG4gICAgICAgIC8vIGNvbGxpc2lvbnMgYmV0d2VlbiBvYnNlcnZlcnMsIGUuZy4gd2hlbiBtdWx0aXBsZSBpbnN0YW5jZXMgb2ZcclxuICAgICAgICAvLyBSZXNpemVPYnNlcnZlciBhcmUgdHJhY2tpbmcgdGhlIHNhbWUgZWxlbWVudCBhbmQgdGhlIGNhbGxiYWNrIG9mIG9uZVxyXG4gICAgICAgIC8vIG9mIHRoZW0gY2hhbmdlcyBjb250ZW50IGRpbWVuc2lvbnMgb2YgdGhlIG9ic2VydmVkIHRhcmdldC4gU29tZXRpbWVzXHJcbiAgICAgICAgLy8gdGhpcyBtYXkgcmVzdWx0IGluIG5vdGlmaWNhdGlvbnMgYmVpbmcgYmxvY2tlZCBmb3IgdGhlIHJlc3Qgb2Ygb2JzZXJ2ZXJzLlxyXG4gICAgICAgIGFjdGl2ZU9ic2VydmVycy5mb3JFYWNoKGZ1bmN0aW9uIChvYnNlcnZlcikgeyByZXR1cm4gb2JzZXJ2ZXIuYnJvYWRjYXN0QWN0aXZlKCk7IH0pO1xyXG4gICAgICAgIHJldHVybiBhY3RpdmVPYnNlcnZlcnMubGVuZ3RoID4gMDtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemVzIERPTSBsaXN0ZW5lcnMuXHJcbiAgICAgKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZlckNvbnRyb2xsZXIucHJvdG90eXBlLmNvbm5lY3RfID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIC8vIERvIG5vdGhpbmcgaWYgcnVubmluZyBpbiBhIG5vbi1icm93c2VyIGVudmlyb25tZW50IG9yIGlmIGxpc3RlbmVyc1xyXG4gICAgICAgIC8vIGhhdmUgYmVlbiBhbHJlYWR5IGFkZGVkLlxyXG4gICAgICAgIGlmICghaXNCcm93c2VyIHx8IHRoaXMuY29ubmVjdGVkXykge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFN1YnNjcmlwdGlvbiB0byB0aGUgXCJUcmFuc2l0aW9uZW5kXCIgZXZlbnQgaXMgdXNlZCBhcyBhIHdvcmthcm91bmQgZm9yXHJcbiAgICAgICAgLy8gZGVsYXllZCB0cmFuc2l0aW9ucy4gVGhpcyB3YXkgaXQncyBwb3NzaWJsZSB0byBjYXB0dXJlIGF0IGxlYXN0IHRoZVxyXG4gICAgICAgIC8vIGZpbmFsIHN0YXRlIG9mIGFuIGVsZW1lbnQuXHJcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndHJhbnNpdGlvbmVuZCcsIHRoaXMub25UcmFuc2l0aW9uRW5kXyk7XHJcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMucmVmcmVzaCk7XHJcbiAgICAgICAgaWYgKG11dGF0aW9uT2JzZXJ2ZXJTdXBwb3J0ZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5tdXRhdGlvbnNPYnNlcnZlcl8gPSBuZXcgTXV0YXRpb25PYnNlcnZlcih0aGlzLnJlZnJlc2gpO1xyXG4gICAgICAgICAgICB0aGlzLm11dGF0aW9uc09ic2VydmVyXy5vYnNlcnZlKGRvY3VtZW50LCB7XHJcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgY2hpbGRMaXN0OiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgY2hhcmFjdGVyRGF0YTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIHN1YnRyZWU6IHRydWVcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01TdWJ0cmVlTW9kaWZpZWQnLCB0aGlzLnJlZnJlc2gpO1xyXG4gICAgICAgICAgICB0aGlzLm11dGF0aW9uRXZlbnRzQWRkZWRfID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jb25uZWN0ZWRfID0gdHJ1ZTtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIFJlbW92ZXMgRE9NIGxpc3RlbmVycy5cclxuICAgICAqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgKi9cclxuICAgIFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlci5wcm90b3R5cGUuZGlzY29ubmVjdF8gPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgLy8gRG8gbm90aGluZyBpZiBydW5uaW5nIGluIGEgbm9uLWJyb3dzZXIgZW52aXJvbm1lbnQgb3IgaWYgbGlzdGVuZXJzXHJcbiAgICAgICAgLy8gaGF2ZSBiZWVuIGFscmVhZHkgcmVtb3ZlZC5cclxuICAgICAgICBpZiAoIWlzQnJvd3NlciB8fCAhdGhpcy5jb25uZWN0ZWRfKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndHJhbnNpdGlvbmVuZCcsIHRoaXMub25UcmFuc2l0aW9uRW5kXyk7XHJcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMucmVmcmVzaCk7XHJcbiAgICAgICAgaWYgKHRoaXMubXV0YXRpb25zT2JzZXJ2ZXJfKSB7XHJcbiAgICAgICAgICAgIHRoaXMubXV0YXRpb25zT2JzZXJ2ZXJfLmRpc2Nvbm5lY3QoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMubXV0YXRpb25FdmVudHNBZGRlZF8pIHtcclxuICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignRE9NU3VidHJlZU1vZGlmaWVkJywgdGhpcy5yZWZyZXNoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5tdXRhdGlvbnNPYnNlcnZlcl8gPSBudWxsO1xyXG4gICAgICAgIHRoaXMubXV0YXRpb25FdmVudHNBZGRlZF8gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmNvbm5lY3RlZF8gPSBmYWxzZTtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIFwiVHJhbnNpdGlvbmVuZFwiIGV2ZW50IGhhbmRsZXIuXHJcbiAgICAgKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEBwYXJhbSB7VHJhbnNpdGlvbkV2ZW50fSBldmVudFxyXG4gICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgKi9cclxuICAgIFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlci5wcm90b3R5cGUub25UcmFuc2l0aW9uRW5kXyA9IGZ1bmN0aW9uIChfYSkge1xyXG4gICAgICAgIHZhciBfYiA9IF9hLnByb3BlcnR5TmFtZSwgcHJvcGVydHlOYW1lID0gX2IgPT09IHZvaWQgMCA/ICcnIDogX2I7XHJcbiAgICAgICAgLy8gRGV0ZWN0IHdoZXRoZXIgdHJhbnNpdGlvbiBtYXkgYWZmZWN0IGRpbWVuc2lvbnMgb2YgYW4gZWxlbWVudC5cclxuICAgICAgICB2YXIgaXNSZWZsb3dQcm9wZXJ0eSA9IHRyYW5zaXRpb25LZXlzLnNvbWUoZnVuY3Rpb24gKGtleSkge1xyXG4gICAgICAgICAgICByZXR1cm4gISF+cHJvcGVydHlOYW1lLmluZGV4T2Yoa2V5KTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAoaXNSZWZsb3dQcm9wZXJ0eSkge1xyXG4gICAgICAgICAgICB0aGlzLnJlZnJlc2goKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIGluc3RhbmNlIG9mIHRoZSBSZXNpemVPYnNlcnZlckNvbnRyb2xsZXIuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMge1Jlc2l6ZU9ic2VydmVyQ29udHJvbGxlcn1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyLmdldEluc3RhbmNlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5pbnN0YW5jZV8pIHtcclxuICAgICAgICAgICAgdGhpcy5pbnN0YW5jZV8gPSBuZXcgUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmluc3RhbmNlXztcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIEhvbGRzIHJlZmVyZW5jZSB0byB0aGUgY29udHJvbGxlcidzIGluc3RhbmNlLlxyXG4gICAgICpcclxuICAgICAqIEBwcml2YXRlIHtSZXNpemVPYnNlcnZlckNvbnRyb2xsZXJ9XHJcbiAgICAgKi9cclxuICAgIFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlci5pbnN0YW5jZV8gPSBudWxsO1xyXG4gICAgcmV0dXJuIFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlcjtcclxufSgpKTtcblxuLyoqXHJcbiAqIERlZmluZXMgbm9uLXdyaXRhYmxlL2VudW1lcmFibGUgcHJvcGVydGllcyBvZiB0aGUgcHJvdmlkZWQgdGFyZ2V0IG9iamVjdC5cclxuICpcclxuICogQHBhcmFtIHtPYmplY3R9IHRhcmdldCAtIE9iamVjdCBmb3Igd2hpY2ggdG8gZGVmaW5lIHByb3BlcnRpZXMuXHJcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIFByb3BlcnRpZXMgdG8gYmUgZGVmaW5lZC5cclxuICogQHJldHVybnMge09iamVjdH0gVGFyZ2V0IG9iamVjdC5cclxuICovXHJcbnZhciBkZWZpbmVDb25maWd1cmFibGUgPSAoZnVuY3Rpb24gKHRhcmdldCwgcHJvcHMpIHtcclxuICAgIGZvciAodmFyIF9pID0gMCwgX2EgPSBPYmplY3Qua2V5cyhwcm9wcyk7IF9pIDwgX2EubGVuZ3RoOyBfaSsrKSB7XHJcbiAgICAgICAgdmFyIGtleSA9IF9hW19pXTtcclxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHtcclxuICAgICAgICAgICAgdmFsdWU6IHByb3BzW2tleV0sXHJcbiAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxyXG4gICAgICAgICAgICB3cml0YWJsZTogZmFsc2UsXHJcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRhcmdldDtcclxufSk7XG5cbi8qKlxyXG4gKiBSZXR1cm5zIHRoZSBnbG9iYWwgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCBwcm92aWRlZCBlbGVtZW50LlxyXG4gKlxyXG4gKiBAcGFyYW0ge09iamVjdH0gdGFyZ2V0XHJcbiAqIEByZXR1cm5zIHtPYmplY3R9XHJcbiAqL1xyXG52YXIgZ2V0V2luZG93T2YgPSAoZnVuY3Rpb24gKHRhcmdldCkge1xyXG4gICAgLy8gQXNzdW1lIHRoYXQgdGhlIGVsZW1lbnQgaXMgYW4gaW5zdGFuY2Ugb2YgTm9kZSwgd2hpY2ggbWVhbnMgdGhhdCBpdFxyXG4gICAgLy8gaGFzIHRoZSBcIm93bmVyRG9jdW1lbnRcIiBwcm9wZXJ0eSBmcm9tIHdoaWNoIHdlIGNhbiByZXRyaWV2ZSBhXHJcbiAgICAvLyBjb3JyZXNwb25kaW5nIGdsb2JhbCBvYmplY3QuXHJcbiAgICB2YXIgb3duZXJHbG9iYWwgPSB0YXJnZXQgJiYgdGFyZ2V0Lm93bmVyRG9jdW1lbnQgJiYgdGFyZ2V0Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc7XHJcbiAgICAvLyBSZXR1cm4gdGhlIGxvY2FsIGdsb2JhbCBvYmplY3QgaWYgaXQncyBub3QgcG9zc2libGUgZXh0cmFjdCBvbmUgZnJvbVxyXG4gICAgLy8gcHJvdmlkZWQgZWxlbWVudC5cclxuICAgIHJldHVybiBvd25lckdsb2JhbCB8fCBnbG9iYWwkMTtcclxufSk7XG5cbi8vIFBsYWNlaG9sZGVyIG9mIGFuIGVtcHR5IGNvbnRlbnQgcmVjdGFuZ2xlLlxyXG52YXIgZW1wdHlSZWN0ID0gY3JlYXRlUmVjdEluaXQoMCwgMCwgMCwgMCk7XHJcbi8qKlxyXG4gKiBDb252ZXJ0cyBwcm92aWRlZCBzdHJpbmcgdG8gYSBudW1iZXIuXHJcbiAqXHJcbiAqIEBwYXJhbSB7bnVtYmVyfHN0cmluZ30gdmFsdWVcclxuICogQHJldHVybnMge251bWJlcn1cclxuICovXHJcbmZ1bmN0aW9uIHRvRmxvYXQodmFsdWUpIHtcclxuICAgIHJldHVybiBwYXJzZUZsb2F0KHZhbHVlKSB8fCAwO1xyXG59XHJcbi8qKlxyXG4gKiBFeHRyYWN0cyBib3JkZXJzIHNpemUgZnJvbSBwcm92aWRlZCBzdHlsZXMuXHJcbiAqXHJcbiAqIEBwYXJhbSB7Q1NTU3R5bGVEZWNsYXJhdGlvbn0gc3R5bGVzXHJcbiAqIEBwYXJhbSB7Li4uc3RyaW5nfSBwb3NpdGlvbnMgLSBCb3JkZXJzIHBvc2l0aW9ucyAodG9wLCByaWdodCwgLi4uKVxyXG4gKiBAcmV0dXJucyB7bnVtYmVyfVxyXG4gKi9cclxuZnVuY3Rpb24gZ2V0Qm9yZGVyc1NpemUoc3R5bGVzKSB7XHJcbiAgICB2YXIgcG9zaXRpb25zID0gW107XHJcbiAgICBmb3IgKHZhciBfaSA9IDE7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykge1xyXG4gICAgICAgIHBvc2l0aW9uc1tfaSAtIDFdID0gYXJndW1lbnRzW19pXTtcclxuICAgIH1cclxuICAgIHJldHVybiBwb3NpdGlvbnMucmVkdWNlKGZ1bmN0aW9uIChzaXplLCBwb3NpdGlvbikge1xyXG4gICAgICAgIHZhciB2YWx1ZSA9IHN0eWxlc1snYm9yZGVyLScgKyBwb3NpdGlvbiArICctd2lkdGgnXTtcclxuICAgICAgICByZXR1cm4gc2l6ZSArIHRvRmxvYXQodmFsdWUpO1xyXG4gICAgfSwgMCk7XHJcbn1cclxuLyoqXHJcbiAqIEV4dHJhY3RzIHBhZGRpbmdzIHNpemVzIGZyb20gcHJvdmlkZWQgc3R5bGVzLlxyXG4gKlxyXG4gKiBAcGFyYW0ge0NTU1N0eWxlRGVjbGFyYXRpb259IHN0eWxlc1xyXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBQYWRkaW5ncyBib3guXHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRQYWRkaW5ncyhzdHlsZXMpIHtcclxuICAgIHZhciBwb3NpdGlvbnMgPSBbJ3RvcCcsICdyaWdodCcsICdib3R0b20nLCAnbGVmdCddO1xyXG4gICAgdmFyIHBhZGRpbmdzID0ge307XHJcbiAgICBmb3IgKHZhciBfaSA9IDAsIHBvc2l0aW9uc18xID0gcG9zaXRpb25zOyBfaSA8IHBvc2l0aW9uc18xLmxlbmd0aDsgX2krKykge1xyXG4gICAgICAgIHZhciBwb3NpdGlvbiA9IHBvc2l0aW9uc18xW19pXTtcclxuICAgICAgICB2YXIgdmFsdWUgPSBzdHlsZXNbJ3BhZGRpbmctJyArIHBvc2l0aW9uXTtcclxuICAgICAgICBwYWRkaW5nc1twb3NpdGlvbl0gPSB0b0Zsb2F0KHZhbHVlKTtcclxuICAgIH1cclxuICAgIHJldHVybiBwYWRkaW5ncztcclxufVxyXG4vKipcclxuICogQ2FsY3VsYXRlcyBjb250ZW50IHJlY3RhbmdsZSBvZiBwcm92aWRlZCBTVkcgZWxlbWVudC5cclxuICpcclxuICogQHBhcmFtIHtTVkdHcmFwaGljc0VsZW1lbnR9IHRhcmdldCAtIEVsZW1lbnQgY29udGVudCByZWN0YW5nbGUgb2Ygd2hpY2ggbmVlZHNcclxuICogICAgICB0byBiZSBjYWxjdWxhdGVkLlxyXG4gKiBAcmV0dXJucyB7RE9NUmVjdEluaXR9XHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRTVkdDb250ZW50UmVjdCh0YXJnZXQpIHtcclxuICAgIHZhciBiYm94ID0gdGFyZ2V0LmdldEJCb3goKTtcclxuICAgIHJldHVybiBjcmVhdGVSZWN0SW5pdCgwLCAwLCBiYm94LndpZHRoLCBiYm94LmhlaWdodCk7XHJcbn1cclxuLyoqXHJcbiAqIENhbGN1bGF0ZXMgY29udGVudCByZWN0YW5nbGUgb2YgcHJvdmlkZWQgSFRNTEVsZW1lbnQuXHJcbiAqXHJcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IHRhcmdldCAtIEVsZW1lbnQgZm9yIHdoaWNoIHRvIGNhbGN1bGF0ZSB0aGUgY29udGVudCByZWN0YW5nbGUuXHJcbiAqIEByZXR1cm5zIHtET01SZWN0SW5pdH1cclxuICovXHJcbmZ1bmN0aW9uIGdldEhUTUxFbGVtZW50Q29udGVudFJlY3QodGFyZ2V0KSB7XHJcbiAgICAvLyBDbGllbnQgd2lkdGggJiBoZWlnaHQgcHJvcGVydGllcyBjYW4ndCBiZVxyXG4gICAgLy8gdXNlZCBleGNsdXNpdmVseSBhcyB0aGV5IHByb3ZpZGUgcm91bmRlZCB2YWx1ZXMuXHJcbiAgICB2YXIgY2xpZW50V2lkdGggPSB0YXJnZXQuY2xpZW50V2lkdGgsIGNsaWVudEhlaWdodCA9IHRhcmdldC5jbGllbnRIZWlnaHQ7XHJcbiAgICAvLyBCeSB0aGlzIGNvbmRpdGlvbiB3ZSBjYW4gY2F0Y2ggYWxsIG5vbi1yZXBsYWNlZCBpbmxpbmUsIGhpZGRlbiBhbmRcclxuICAgIC8vIGRldGFjaGVkIGVsZW1lbnRzLiBUaG91Z2ggZWxlbWVudHMgd2l0aCB3aWR0aCAmIGhlaWdodCBwcm9wZXJ0aWVzIGxlc3NcclxuICAgIC8vIHRoYW4gMC41IHdpbGwgYmUgZGlzY2FyZGVkIGFzIHdlbGwuXHJcbiAgICAvL1xyXG4gICAgLy8gV2l0aG91dCBpdCB3ZSB3b3VsZCBuZWVkIHRvIGltcGxlbWVudCBzZXBhcmF0ZSBtZXRob2RzIGZvciBlYWNoIG9mXHJcbiAgICAvLyB0aG9zZSBjYXNlcyBhbmQgaXQncyBub3QgcG9zc2libGUgdG8gcGVyZm9ybSBhIHByZWNpc2UgYW5kIHBlcmZvcm1hbmNlXHJcbiAgICAvLyBlZmZlY3RpdmUgdGVzdCBmb3IgaGlkZGVuIGVsZW1lbnRzLiBFLmcuIGV2ZW4galF1ZXJ5J3MgJzp2aXNpYmxlJyBmaWx0ZXJcclxuICAgIC8vIGdpdmVzIHdyb25nIHJlc3VsdHMgZm9yIGVsZW1lbnRzIHdpdGggd2lkdGggJiBoZWlnaHQgbGVzcyB0aGFuIDAuNS5cclxuICAgIGlmICghY2xpZW50V2lkdGggJiYgIWNsaWVudEhlaWdodCkge1xyXG4gICAgICAgIHJldHVybiBlbXB0eVJlY3Q7XHJcbiAgICB9XHJcbiAgICB2YXIgc3R5bGVzID0gZ2V0V2luZG93T2YodGFyZ2V0KS5nZXRDb21wdXRlZFN0eWxlKHRhcmdldCk7XHJcbiAgICB2YXIgcGFkZGluZ3MgPSBnZXRQYWRkaW5ncyhzdHlsZXMpO1xyXG4gICAgdmFyIGhvcml6UGFkID0gcGFkZGluZ3MubGVmdCArIHBhZGRpbmdzLnJpZ2h0O1xyXG4gICAgdmFyIHZlcnRQYWQgPSBwYWRkaW5ncy50b3AgKyBwYWRkaW5ncy5ib3R0b207XHJcbiAgICAvLyBDb21wdXRlZCBzdHlsZXMgb2Ygd2lkdGggJiBoZWlnaHQgYXJlIGJlaW5nIHVzZWQgYmVjYXVzZSB0aGV5IGFyZSB0aGVcclxuICAgIC8vIG9ubHkgZGltZW5zaW9ucyBhdmFpbGFibGUgdG8gSlMgdGhhdCBjb250YWluIG5vbi1yb3VuZGVkIHZhbHVlcy4gSXQgY291bGRcclxuICAgIC8vIGJlIHBvc3NpYmxlIHRvIHV0aWxpemUgdGhlIGdldEJvdW5kaW5nQ2xpZW50UmVjdCBpZiBvbmx5IGl0J3MgZGF0YSB3YXNuJ3RcclxuICAgIC8vIGFmZmVjdGVkIGJ5IENTUyB0cmFuc2Zvcm1hdGlvbnMgbGV0IGFsb25lIHBhZGRpbmdzLCBib3JkZXJzIGFuZCBzY3JvbGwgYmFycy5cclxuICAgIHZhciB3aWR0aCA9IHRvRmxvYXQoc3R5bGVzLndpZHRoKSwgaGVpZ2h0ID0gdG9GbG9hdChzdHlsZXMuaGVpZ2h0KTtcclxuICAgIC8vIFdpZHRoICYgaGVpZ2h0IGluY2x1ZGUgcGFkZGluZ3MgYW5kIGJvcmRlcnMgd2hlbiB0aGUgJ2JvcmRlci1ib3gnIGJveFxyXG4gICAgLy8gbW9kZWwgaXMgYXBwbGllZCAoZXhjZXB0IGZvciBJRSkuXHJcbiAgICBpZiAoc3R5bGVzLmJveFNpemluZyA9PT0gJ2JvcmRlci1ib3gnKSB7XHJcbiAgICAgICAgLy8gRm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIHJlcXVpcmVkIHRvIGhhbmRsZSBJbnRlcm5ldCBFeHBsb3JlciB3aGljaFxyXG4gICAgICAgIC8vIGRvZXNuJ3QgaW5jbHVkZSBwYWRkaW5ncyBhbmQgYm9yZGVycyB0byBjb21wdXRlZCBDU1MgZGltZW5zaW9ucy5cclxuICAgICAgICAvL1xyXG4gICAgICAgIC8vIFdlIGNhbiBzYXkgdGhhdCBpZiBDU1MgZGltZW5zaW9ucyArIHBhZGRpbmdzIGFyZSBlcXVhbCB0byB0aGUgXCJjbGllbnRcIlxyXG4gICAgICAgIC8vIHByb3BlcnRpZXMgdGhlbiBpdCdzIGVpdGhlciBJRSwgYW5kIHRodXMgd2UgZG9uJ3QgbmVlZCB0byBzdWJ0cmFjdFxyXG4gICAgICAgIC8vIGFueXRoaW5nLCBvciBhbiBlbGVtZW50IG1lcmVseSBkb2Vzbid0IGhhdmUgcGFkZGluZ3MvYm9yZGVycyBzdHlsZXMuXHJcbiAgICAgICAgaWYgKE1hdGgucm91bmQod2lkdGggKyBob3JpelBhZCkgIT09IGNsaWVudFdpZHRoKSB7XHJcbiAgICAgICAgICAgIHdpZHRoIC09IGdldEJvcmRlcnNTaXplKHN0eWxlcywgJ2xlZnQnLCAncmlnaHQnKSArIGhvcml6UGFkO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoTWF0aC5yb3VuZChoZWlnaHQgKyB2ZXJ0UGFkKSAhPT0gY2xpZW50SGVpZ2h0KSB7XHJcbiAgICAgICAgICAgIGhlaWdodCAtPSBnZXRCb3JkZXJzU2l6ZShzdHlsZXMsICd0b3AnLCAnYm90dG9tJykgKyB2ZXJ0UGFkO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIEZvbGxvd2luZyBzdGVwcyBjYW4ndCBiZSBhcHBsaWVkIHRvIHRoZSBkb2N1bWVudCdzIHJvb3QgZWxlbWVudCBhcyBpdHNcclxuICAgIC8vIGNsaWVudFtXaWR0aC9IZWlnaHRdIHByb3BlcnRpZXMgcmVwcmVzZW50IHZpZXdwb3J0IGFyZWEgb2YgdGhlIHdpbmRvdy5cclxuICAgIC8vIEJlc2lkZXMsIGl0J3MgYXMgd2VsbCBub3QgbmVjZXNzYXJ5IGFzIHRoZSA8aHRtbD4gaXRzZWxmIG5laXRoZXIgaGFzXHJcbiAgICAvLyByZW5kZXJlZCBzY3JvbGwgYmFycyBub3IgaXQgY2FuIGJlIGNsaXBwZWQuXHJcbiAgICBpZiAoIWlzRG9jdW1lbnRFbGVtZW50KHRhcmdldCkpIHtcclxuICAgICAgICAvLyBJbiBzb21lIGJyb3dzZXJzIChvbmx5IGluIEZpcmVmb3gsIGFjdHVhbGx5KSBDU1Mgd2lkdGggJiBoZWlnaHRcclxuICAgICAgICAvLyBpbmNsdWRlIHNjcm9sbCBiYXJzIHNpemUgd2hpY2ggY2FuIGJlIHJlbW92ZWQgYXQgdGhpcyBzdGVwIGFzIHNjcm9sbFxyXG4gICAgICAgIC8vIGJhcnMgYXJlIHRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiByb3VuZGVkIGRpbWVuc2lvbnMgKyBwYWRkaW5nc1xyXG4gICAgICAgIC8vIGFuZCBcImNsaWVudFwiIHByb3BlcnRpZXMsIHRob3VnaCB0aGF0IGlzIG5vdCBhbHdheXMgdHJ1ZSBpbiBDaHJvbWUuXHJcbiAgICAgICAgdmFyIHZlcnRTY3JvbGxiYXIgPSBNYXRoLnJvdW5kKHdpZHRoICsgaG9yaXpQYWQpIC0gY2xpZW50V2lkdGg7XHJcbiAgICAgICAgdmFyIGhvcml6U2Nyb2xsYmFyID0gTWF0aC5yb3VuZChoZWlnaHQgKyB2ZXJ0UGFkKSAtIGNsaWVudEhlaWdodDtcclxuICAgICAgICAvLyBDaHJvbWUgaGFzIGEgcmF0aGVyIHdlaXJkIHJvdW5kaW5nIG9mIFwiY2xpZW50XCIgcHJvcGVydGllcy5cclxuICAgICAgICAvLyBFLmcuIGZvciBhbiBlbGVtZW50IHdpdGggY29udGVudCB3aWR0aCBvZiAzMTQuMnB4IGl0IHNvbWV0aW1lcyBnaXZlc1xyXG4gICAgICAgIC8vIHRoZSBjbGllbnQgd2lkdGggb2YgMzE1cHggYW5kIGZvciB0aGUgd2lkdGggb2YgMzE0LjdweCBpdCBtYXkgZ2l2ZVxyXG4gICAgICAgIC8vIDMxNHB4LiBBbmQgaXQgZG9lc24ndCBoYXBwZW4gYWxsIHRoZSB0aW1lLiBTbyBqdXN0IGlnbm9yZSB0aGlzIGRlbHRhXHJcbiAgICAgICAgLy8gYXMgYSBub24tcmVsZXZhbnQuXHJcbiAgICAgICAgaWYgKE1hdGguYWJzKHZlcnRTY3JvbGxiYXIpICE9PSAxKSB7XHJcbiAgICAgICAgICAgIHdpZHRoIC09IHZlcnRTY3JvbGxiYXI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChNYXRoLmFicyhob3JpelNjcm9sbGJhcikgIT09IDEpIHtcclxuICAgICAgICAgICAgaGVpZ2h0IC09IGhvcml6U2Nyb2xsYmFyO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBjcmVhdGVSZWN0SW5pdChwYWRkaW5ncy5sZWZ0LCBwYWRkaW5ncy50b3AsIHdpZHRoLCBoZWlnaHQpO1xyXG59XHJcbi8qKlxyXG4gKiBDaGVja3Mgd2hldGhlciBwcm92aWRlZCBlbGVtZW50IGlzIGFuIGluc3RhbmNlIG9mIHRoZSBTVkdHcmFwaGljc0VsZW1lbnQuXHJcbiAqXHJcbiAqIEBwYXJhbSB7RWxlbWVudH0gdGFyZ2V0IC0gRWxlbWVudCB0byBiZSBjaGVja2VkLlxyXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cclxuICovXHJcbnZhciBpc1NWR0dyYXBoaWNzRWxlbWVudCA9IChmdW5jdGlvbiAoKSB7XHJcbiAgICAvLyBTb21lIGJyb3dzZXJzLCBuYW1lbHkgSUUgYW5kIEVkZ2UsIGRvbid0IGhhdmUgdGhlIFNWR0dyYXBoaWNzRWxlbWVudFxyXG4gICAgLy8gaW50ZXJmYWNlLlxyXG4gICAgaWYgKHR5cGVvZiBTVkdHcmFwaGljc0VsZW1lbnQgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQpIHsgcmV0dXJuIHRhcmdldCBpbnN0YW5jZW9mIGdldFdpbmRvd09mKHRhcmdldCkuU1ZHR3JhcGhpY3NFbGVtZW50OyB9O1xyXG4gICAgfVxyXG4gICAgLy8gSWYgaXQncyBzbywgdGhlbiBjaGVjayB0aGF0IGVsZW1lbnQgaXMgYXQgbGVhc3QgYW4gaW5zdGFuY2Ugb2YgdGhlXHJcbiAgICAvLyBTVkdFbGVtZW50IGFuZCB0aGF0IGl0IGhhcyB0aGUgXCJnZXRCQm94XCIgbWV0aG9kLlxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWV4dHJhLXBhcmVuc1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQpIHsgcmV0dXJuICh0YXJnZXQgaW5zdGFuY2VvZiBnZXRXaW5kb3dPZih0YXJnZXQpLlNWR0VsZW1lbnQgJiZcclxuICAgICAgICB0eXBlb2YgdGFyZ2V0LmdldEJCb3ggPT09ICdmdW5jdGlvbicpOyB9O1xyXG59KSgpO1xyXG4vKipcclxuICogQ2hlY2tzIHdoZXRoZXIgcHJvdmlkZWQgZWxlbWVudCBpcyBhIGRvY3VtZW50IGVsZW1lbnQgKDxodG1sPikuXHJcbiAqXHJcbiAqIEBwYXJhbSB7RWxlbWVudH0gdGFyZ2V0IC0gRWxlbWVudCB0byBiZSBjaGVja2VkLlxyXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cclxuICovXHJcbmZ1bmN0aW9uIGlzRG9jdW1lbnRFbGVtZW50KHRhcmdldCkge1xyXG4gICAgcmV0dXJuIHRhcmdldCA9PT0gZ2V0V2luZG93T2YodGFyZ2V0KS5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XHJcbn1cclxuLyoqXHJcbiAqIENhbGN1bGF0ZXMgYW4gYXBwcm9wcmlhdGUgY29udGVudCByZWN0YW5nbGUgZm9yIHByb3ZpZGVkIGh0bWwgb3Igc3ZnIGVsZW1lbnQuXHJcbiAqXHJcbiAqIEBwYXJhbSB7RWxlbWVudH0gdGFyZ2V0IC0gRWxlbWVudCBjb250ZW50IHJlY3RhbmdsZSBvZiB3aGljaCBuZWVkcyB0byBiZSBjYWxjdWxhdGVkLlxyXG4gKiBAcmV0dXJucyB7RE9NUmVjdEluaXR9XHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRDb250ZW50UmVjdCh0YXJnZXQpIHtcclxuICAgIGlmICghaXNCcm93c2VyKSB7XHJcbiAgICAgICAgcmV0dXJuIGVtcHR5UmVjdDtcclxuICAgIH1cclxuICAgIGlmIChpc1NWR0dyYXBoaWNzRWxlbWVudCh0YXJnZXQpKSB7XHJcbiAgICAgICAgcmV0dXJuIGdldFNWR0NvbnRlbnRSZWN0KHRhcmdldCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZ2V0SFRNTEVsZW1lbnRDb250ZW50UmVjdCh0YXJnZXQpO1xyXG59XHJcbi8qKlxyXG4gKiBDcmVhdGVzIHJlY3RhbmdsZSB3aXRoIGFuIGludGVyZmFjZSBvZiB0aGUgRE9NUmVjdFJlYWRPbmx5LlxyXG4gKiBTcGVjOiBodHRwczovL2RyYWZ0cy5meHRmLm9yZy9nZW9tZXRyeS8jZG9tcmVjdHJlYWRvbmx5XHJcbiAqXHJcbiAqIEBwYXJhbSB7RE9NUmVjdEluaXR9IHJlY3RJbml0IC0gT2JqZWN0IHdpdGggcmVjdGFuZ2xlJ3MgeC95IGNvb3JkaW5hdGVzIGFuZCBkaW1lbnNpb25zLlxyXG4gKiBAcmV0dXJucyB7RE9NUmVjdFJlYWRPbmx5fVxyXG4gKi9cclxuZnVuY3Rpb24gY3JlYXRlUmVhZE9ubHlSZWN0KF9hKSB7XHJcbiAgICB2YXIgeCA9IF9hLngsIHkgPSBfYS55LCB3aWR0aCA9IF9hLndpZHRoLCBoZWlnaHQgPSBfYS5oZWlnaHQ7XHJcbiAgICAvLyBJZiBET01SZWN0UmVhZE9ubHkgaXMgYXZhaWxhYmxlIHVzZSBpdCBhcyBhIHByb3RvdHlwZSBmb3IgdGhlIHJlY3RhbmdsZS5cclxuICAgIHZhciBDb25zdHIgPSB0eXBlb2YgRE9NUmVjdFJlYWRPbmx5ICE9PSAndW5kZWZpbmVkJyA/IERPTVJlY3RSZWFkT25seSA6IE9iamVjdDtcclxuICAgIHZhciByZWN0ID0gT2JqZWN0LmNyZWF0ZShDb25zdHIucHJvdG90eXBlKTtcclxuICAgIC8vIFJlY3RhbmdsZSdzIHByb3BlcnRpZXMgYXJlIG5vdCB3cml0YWJsZSBhbmQgbm9uLWVudW1lcmFibGUuXHJcbiAgICBkZWZpbmVDb25maWd1cmFibGUocmVjdCwge1xyXG4gICAgICAgIHg6IHgsIHk6IHksIHdpZHRoOiB3aWR0aCwgaGVpZ2h0OiBoZWlnaHQsXHJcbiAgICAgICAgdG9wOiB5LFxyXG4gICAgICAgIHJpZ2h0OiB4ICsgd2lkdGgsXHJcbiAgICAgICAgYm90dG9tOiBoZWlnaHQgKyB5LFxyXG4gICAgICAgIGxlZnQ6IHhcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHJlY3Q7XHJcbn1cclxuLyoqXHJcbiAqIENyZWF0ZXMgRE9NUmVjdEluaXQgb2JqZWN0IGJhc2VkIG9uIHRoZSBwcm92aWRlZCBkaW1lbnNpb25zIGFuZCB0aGUgeC95IGNvb3JkaW5hdGVzLlxyXG4gKiBTcGVjOiBodHRwczovL2RyYWZ0cy5meHRmLm9yZy9nZW9tZXRyeS8jZGljdGRlZi1kb21yZWN0aW5pdFxyXG4gKlxyXG4gKiBAcGFyYW0ge251bWJlcn0geCAtIFggY29vcmRpbmF0ZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IHkgLSBZIGNvb3JkaW5hdGUuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSB3aWR0aCAtIFJlY3RhbmdsZSdzIHdpZHRoLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gaGVpZ2h0IC0gUmVjdGFuZ2xlJ3MgaGVpZ2h0LlxyXG4gKiBAcmV0dXJucyB7RE9NUmVjdEluaXR9XHJcbiAqL1xyXG5mdW5jdGlvbiBjcmVhdGVSZWN0SW5pdCh4LCB5LCB3aWR0aCwgaGVpZ2h0KSB7XHJcbiAgICByZXR1cm4geyB4OiB4LCB5OiB5LCB3aWR0aDogd2lkdGgsIGhlaWdodDogaGVpZ2h0IH07XHJcbn1cblxuLyoqXHJcbiAqIENsYXNzIHRoYXQgaXMgcmVzcG9uc2libGUgZm9yIGNvbXB1dGF0aW9ucyBvZiB0aGUgY29udGVudCByZWN0YW5nbGUgb2ZcclxuICogcHJvdmlkZWQgRE9NIGVsZW1lbnQgYW5kIGZvciBrZWVwaW5nIHRyYWNrIG9mIGl0J3MgY2hhbmdlcy5cclxuICovXHJcbnZhciBSZXNpemVPYnNlcnZhdGlvbiA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBSZXNpemVPYnNlcnZhdGlvbi5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge0VsZW1lbnR9IHRhcmdldCAtIEVsZW1lbnQgdG8gYmUgb2JzZXJ2ZWQuXHJcbiAgICAgKi9cclxuICAgIGZ1bmN0aW9uIFJlc2l6ZU9ic2VydmF0aW9uKHRhcmdldCkge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEJyb2FkY2FzdGVkIHdpZHRoIG9mIGNvbnRlbnQgcmVjdGFuZ2xlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmJyb2FkY2FzdFdpZHRoID0gMDtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBCcm9hZGNhc3RlZCBoZWlnaHQgb2YgY29udGVudCByZWN0YW5nbGUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuYnJvYWRjYXN0SGVpZ2h0ID0gMDtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBSZWZlcmVuY2UgdG8gdGhlIGxhc3Qgb2JzZXJ2ZWQgY29udGVudCByZWN0YW5nbGUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAcHJpdmF0ZSB7RE9NUmVjdEluaXR9XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5jb250ZW50UmVjdF8gPSBjcmVhdGVSZWN0SW5pdCgwLCAwLCAwLCAwKTtcclxuICAgICAgICB0aGlzLnRhcmdldCA9IHRhcmdldDtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlcyBjb250ZW50IHJlY3RhbmdsZSBhbmQgdGVsbHMgd2hldGhlciBpdCdzIHdpZHRoIG9yIGhlaWdodCBwcm9wZXJ0aWVzXHJcbiAgICAgKiBoYXZlIGNoYW5nZWQgc2luY2UgdGhlIGxhc3QgYnJvYWRjYXN0LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHtib29sZWFufVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZhdGlvbi5wcm90b3R5cGUuaXNBY3RpdmUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdmFyIHJlY3QgPSBnZXRDb250ZW50UmVjdCh0aGlzLnRhcmdldCk7XHJcbiAgICAgICAgdGhpcy5jb250ZW50UmVjdF8gPSByZWN0O1xyXG4gICAgICAgIHJldHVybiAocmVjdC53aWR0aCAhPT0gdGhpcy5icm9hZGNhc3RXaWR0aCB8fFxyXG4gICAgICAgICAgICByZWN0LmhlaWdodCAhPT0gdGhpcy5icm9hZGNhc3RIZWlnaHQpO1xyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlcyAnYnJvYWRjYXN0V2lkdGgnIGFuZCAnYnJvYWRjYXN0SGVpZ2h0JyBwcm9wZXJ0aWVzIHdpdGggYSBkYXRhXHJcbiAgICAgKiBmcm9tIHRoZSBjb3JyZXNwb25kaW5nIHByb3BlcnRpZXMgb2YgdGhlIGxhc3Qgb2JzZXJ2ZWQgY29udGVudCByZWN0YW5nbGUuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMge0RPTVJlY3RJbml0fSBMYXN0IG9ic2VydmVkIGNvbnRlbnQgcmVjdGFuZ2xlLlxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZhdGlvbi5wcm90b3R5cGUuYnJvYWRjYXN0UmVjdCA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB2YXIgcmVjdCA9IHRoaXMuY29udGVudFJlY3RfO1xyXG4gICAgICAgIHRoaXMuYnJvYWRjYXN0V2lkdGggPSByZWN0LndpZHRoO1xyXG4gICAgICAgIHRoaXMuYnJvYWRjYXN0SGVpZ2h0ID0gcmVjdC5oZWlnaHQ7XHJcbiAgICAgICAgcmV0dXJuIHJlY3Q7XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIFJlc2l6ZU9ic2VydmF0aW9uO1xyXG59KCkpO1xuXG52YXIgUmVzaXplT2JzZXJ2ZXJFbnRyeSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBSZXNpemVPYnNlcnZlckVudHJ5LlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7RWxlbWVudH0gdGFyZ2V0IC0gRWxlbWVudCB0aGF0IGlzIGJlaW5nIG9ic2VydmVkLlxyXG4gICAgICogQHBhcmFtIHtET01SZWN0SW5pdH0gcmVjdEluaXQgLSBEYXRhIG9mIHRoZSBlbGVtZW50J3MgY29udGVudCByZWN0YW5nbGUuXHJcbiAgICAgKi9cclxuICAgIGZ1bmN0aW9uIFJlc2l6ZU9ic2VydmVyRW50cnkodGFyZ2V0LCByZWN0SW5pdCkge1xyXG4gICAgICAgIHZhciBjb250ZW50UmVjdCA9IGNyZWF0ZVJlYWRPbmx5UmVjdChyZWN0SW5pdCk7XHJcbiAgICAgICAgLy8gQWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpY2F0aW9uIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBub3Qgd3JpdGFibGVcclxuICAgICAgICAvLyBhbmQgYXJlIGFsc28gbm90IGVudW1lcmFibGUgaW4gdGhlIG5hdGl2ZSBpbXBsZW1lbnRhdGlvbi5cclxuICAgICAgICAvL1xyXG4gICAgICAgIC8vIFByb3BlcnR5IGFjY2Vzc29ycyBhcmUgbm90IGJlaW5nIHVzZWQgYXMgdGhleSdkIHJlcXVpcmUgdG8gZGVmaW5lIGFcclxuICAgICAgICAvLyBwcml2YXRlIFdlYWtNYXAgc3RvcmFnZSB3aGljaCBtYXkgY2F1c2UgbWVtb3J5IGxlYWtzIGluIGJyb3dzZXJzIHRoYXRcclxuICAgICAgICAvLyBkb24ndCBzdXBwb3J0IHRoaXMgdHlwZSBvZiBjb2xsZWN0aW9ucy5cclxuICAgICAgICBkZWZpbmVDb25maWd1cmFibGUodGhpcywgeyB0YXJnZXQ6IHRhcmdldCwgY29udGVudFJlY3Q6IGNvbnRlbnRSZWN0IH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFJlc2l6ZU9ic2VydmVyRW50cnk7XHJcbn0oKSk7XG5cbnZhciBSZXNpemVPYnNlcnZlclNQSSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiBSZXNpemVPYnNlcnZlci5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1Jlc2l6ZU9ic2VydmVyQ2FsbGJhY2t9IGNhbGxiYWNrIC0gQ2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBpcyBpbnZva2VkXHJcbiAgICAgKiAgICAgIHdoZW4gb25lIG9mIHRoZSBvYnNlcnZlZCBlbGVtZW50cyBjaGFuZ2VzIGl0J3MgY29udGVudCBkaW1lbnNpb25zLlxyXG4gICAgICogQHBhcmFtIHtSZXNpemVPYnNlcnZlckNvbnRyb2xsZXJ9IGNvbnRyb2xsZXIgLSBDb250cm9sbGVyIGluc3RhbmNlIHdoaWNoXHJcbiAgICAgKiAgICAgIGlzIHJlc3BvbnNpYmxlIGZvciB0aGUgdXBkYXRlcyBvZiBvYnNlcnZlci5cclxuICAgICAqIEBwYXJhbSB7UmVzaXplT2JzZXJ2ZXJ9IGNhbGxiYWNrQ3R4IC0gUmVmZXJlbmNlIHRvIHRoZSBwdWJsaWNcclxuICAgICAqICAgICAgUmVzaXplT2JzZXJ2ZXIgaW5zdGFuY2Ugd2hpY2ggd2lsbCBiZSBwYXNzZWQgdG8gY2FsbGJhY2sgZnVuY3Rpb24uXHJcbiAgICAgKi9cclxuICAgIGZ1bmN0aW9uIFJlc2l6ZU9ic2VydmVyU1BJKGNhbGxiYWNrLCBjb250cm9sbGVyLCBjYWxsYmFja0N0eCkge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIENvbGxlY3Rpb24gb2YgcmVzaXplIG9ic2VydmF0aW9ucyB0aGF0IGhhdmUgZGV0ZWN0ZWQgY2hhbmdlcyBpbiBkaW1lbnNpb25zXHJcbiAgICAgICAgICogb2YgZWxlbWVudHMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAcHJpdmF0ZSB7QXJyYXk8UmVzaXplT2JzZXJ2YXRpb24+fVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuYWN0aXZlT2JzZXJ2YXRpb25zXyA9IFtdO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFJlZ2lzdHJ5IG9mIHRoZSBSZXNpemVPYnNlcnZhdGlvbiBpbnN0YW5jZXMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAcHJpdmF0ZSB7TWFwPEVsZW1lbnQsIFJlc2l6ZU9ic2VydmF0aW9uPn1cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLm9ic2VydmF0aW9uc18gPSBuZXcgTWFwU2hpbSgpO1xyXG4gICAgICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIGNhbGxiYWNrIHByb3ZpZGVkIGFzIHBhcmFtZXRlciAxIGlzIG5vdCBhIGZ1bmN0aW9uLicpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNhbGxiYWNrXyA9IGNhbGxiYWNrO1xyXG4gICAgICAgIHRoaXMuY29udHJvbGxlcl8gPSBjb250cm9sbGVyO1xyXG4gICAgICAgIHRoaXMuY2FsbGJhY2tDdHhfID0gY2FsbGJhY2tDdHg7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFN0YXJ0cyBvYnNlcnZpbmcgcHJvdmlkZWQgZWxlbWVudC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge0VsZW1lbnR9IHRhcmdldCAtIEVsZW1lbnQgdG8gYmUgb2JzZXJ2ZWQuXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJTUEkucHJvdG90eXBlLm9ic2VydmUgPSBmdW5jdGlvbiAodGFyZ2V0KSB7XHJcbiAgICAgICAgaWYgKCFhcmd1bWVudHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJzEgYXJndW1lbnQgcmVxdWlyZWQsIGJ1dCBvbmx5IDAgcHJlc2VudC4nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gRG8gbm90aGluZyBpZiBjdXJyZW50IGVudmlyb25tZW50IGRvZXNuJ3QgaGF2ZSB0aGUgRWxlbWVudCBpbnRlcmZhY2UuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBFbGVtZW50ID09PSAndW5kZWZpbmVkJyB8fCAhKEVsZW1lbnQgaW5zdGFuY2VvZiBPYmplY3QpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCEodGFyZ2V0IGluc3RhbmNlb2YgZ2V0V2luZG93T2YodGFyZ2V0KS5FbGVtZW50KSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdwYXJhbWV0ZXIgMSBpcyBub3Qgb2YgdHlwZSBcIkVsZW1lbnRcIi4nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIG9ic2VydmF0aW9ucyA9IHRoaXMub2JzZXJ2YXRpb25zXztcclxuICAgICAgICAvLyBEbyBub3RoaW5nIGlmIGVsZW1lbnQgaXMgYWxyZWFkeSBiZWluZyBvYnNlcnZlZC5cclxuICAgICAgICBpZiAob2JzZXJ2YXRpb25zLmhhcyh0YXJnZXQpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgb2JzZXJ2YXRpb25zLnNldCh0YXJnZXQsIG5ldyBSZXNpemVPYnNlcnZhdGlvbih0YXJnZXQpKTtcclxuICAgICAgICB0aGlzLmNvbnRyb2xsZXJfLmFkZE9ic2VydmVyKHRoaXMpO1xyXG4gICAgICAgIC8vIEZvcmNlIHRoZSB1cGRhdGUgb2Ygb2JzZXJ2YXRpb25zLlxyXG4gICAgICAgIHRoaXMuY29udHJvbGxlcl8ucmVmcmVzaCgpO1xyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogU3RvcHMgb2JzZXJ2aW5nIHByb3ZpZGVkIGVsZW1lbnQuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtFbGVtZW50fSB0YXJnZXQgLSBFbGVtZW50IHRvIHN0b3Agb2JzZXJ2aW5nLlxyXG4gICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgKi9cclxuICAgIFJlc2l6ZU9ic2VydmVyU1BJLnByb3RvdHlwZS51bm9ic2VydmUgPSBmdW5jdGlvbiAodGFyZ2V0KSB7XHJcbiAgICAgICAgaWYgKCFhcmd1bWVudHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJzEgYXJndW1lbnQgcmVxdWlyZWQsIGJ1dCBvbmx5IDAgcHJlc2VudC4nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gRG8gbm90aGluZyBpZiBjdXJyZW50IGVudmlyb25tZW50IGRvZXNuJ3QgaGF2ZSB0aGUgRWxlbWVudCBpbnRlcmZhY2UuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBFbGVtZW50ID09PSAndW5kZWZpbmVkJyB8fCAhKEVsZW1lbnQgaW5zdGFuY2VvZiBPYmplY3QpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCEodGFyZ2V0IGluc3RhbmNlb2YgZ2V0V2luZG93T2YodGFyZ2V0KS5FbGVtZW50KSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdwYXJhbWV0ZXIgMSBpcyBub3Qgb2YgdHlwZSBcIkVsZW1lbnRcIi4nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIG9ic2VydmF0aW9ucyA9IHRoaXMub2JzZXJ2YXRpb25zXztcclxuICAgICAgICAvLyBEbyBub3RoaW5nIGlmIGVsZW1lbnQgaXMgbm90IGJlaW5nIG9ic2VydmVkLlxyXG4gICAgICAgIGlmICghb2JzZXJ2YXRpb25zLmhhcyh0YXJnZXQpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgb2JzZXJ2YXRpb25zLmRlbGV0ZSh0YXJnZXQpO1xyXG4gICAgICAgIGlmICghb2JzZXJ2YXRpb25zLnNpemUpIHtcclxuICAgICAgICAgICAgdGhpcy5jb250cm9sbGVyXy5yZW1vdmVPYnNlcnZlcih0aGlzKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBTdG9wcyBvYnNlcnZpbmcgYWxsIGVsZW1lbnRzLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZlclNQSS5wcm90b3R5cGUuZGlzY29ubmVjdCA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB0aGlzLmNsZWFyQWN0aXZlKCk7XHJcbiAgICAgICAgdGhpcy5vYnNlcnZhdGlvbnNfLmNsZWFyKCk7XHJcbiAgICAgICAgdGhpcy5jb250cm9sbGVyXy5yZW1vdmVPYnNlcnZlcih0aGlzKTtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIENvbGxlY3RzIG9ic2VydmF0aW9uIGluc3RhbmNlcyB0aGUgYXNzb2NpYXRlZCBlbGVtZW50IG9mIHdoaWNoIGhhcyBjaGFuZ2VkXHJcbiAgICAgKiBpdCdzIGNvbnRlbnQgcmVjdGFuZ2xlLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZlclNQSS5wcm90b3R5cGUuZ2F0aGVyQWN0aXZlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XHJcbiAgICAgICAgdGhpcy5jbGVhckFjdGl2ZSgpO1xyXG4gICAgICAgIHRoaXMub2JzZXJ2YXRpb25zXy5mb3JFYWNoKGZ1bmN0aW9uIChvYnNlcnZhdGlvbikge1xyXG4gICAgICAgICAgICBpZiAob2JzZXJ2YXRpb24uaXNBY3RpdmUoKSkge1xyXG4gICAgICAgICAgICAgICAgX3RoaXMuYWN0aXZlT2JzZXJ2YXRpb25zXy5wdXNoKG9ic2VydmF0aW9uKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogSW52b2tlcyBpbml0aWFsIGNhbGxiYWNrIGZ1bmN0aW9uIHdpdGggYSBsaXN0IG9mIFJlc2l6ZU9ic2VydmVyRW50cnlcclxuICAgICAqIGluc3RhbmNlcyBjb2xsZWN0ZWQgZnJvbSBhY3RpdmUgcmVzaXplIG9ic2VydmF0aW9ucy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJTUEkucHJvdG90eXBlLmJyb2FkY2FzdEFjdGl2ZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAvLyBEbyBub3RoaW5nIGlmIG9ic2VydmVyIGRvZXNuJ3QgaGF2ZSBhY3RpdmUgb2JzZXJ2YXRpb25zLlxyXG4gICAgICAgIGlmICghdGhpcy5oYXNBY3RpdmUoKSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBjdHggPSB0aGlzLmNhbGxiYWNrQ3R4XztcclxuICAgICAgICAvLyBDcmVhdGUgUmVzaXplT2JzZXJ2ZXJFbnRyeSBpbnN0YW5jZSBmb3IgZXZlcnkgYWN0aXZlIG9ic2VydmF0aW9uLlxyXG4gICAgICAgIHZhciBlbnRyaWVzID0gdGhpcy5hY3RpdmVPYnNlcnZhdGlvbnNfLm1hcChmdW5jdGlvbiAob2JzZXJ2YXRpb24pIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBSZXNpemVPYnNlcnZlckVudHJ5KG9ic2VydmF0aW9uLnRhcmdldCwgb2JzZXJ2YXRpb24uYnJvYWRjYXN0UmVjdCgpKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmNhbGxiYWNrXy5jYWxsKGN0eCwgZW50cmllcywgY3R4KTtcclxuICAgICAgICB0aGlzLmNsZWFyQWN0aXZlKCk7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBDbGVhcnMgdGhlIGNvbGxlY3Rpb24gb2YgYWN0aXZlIG9ic2VydmF0aW9ucy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJTUEkucHJvdG90eXBlLmNsZWFyQWN0aXZlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHRoaXMuYWN0aXZlT2JzZXJ2YXRpb25zXy5zcGxpY2UoMCk7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBUZWxscyB3aGV0aGVyIG9ic2VydmVyIGhhcyBhY3RpdmUgb2JzZXJ2YXRpb25zLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHtib29sZWFufVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZlclNQSS5wcm90b3R5cGUuaGFzQWN0aXZlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFjdGl2ZU9ic2VydmF0aW9uc18ubGVuZ3RoID4gMDtcclxuICAgIH07XHJcbiAgICByZXR1cm4gUmVzaXplT2JzZXJ2ZXJTUEk7XHJcbn0oKSk7XG5cbi8vIFJlZ2lzdHJ5IG9mIGludGVybmFsIG9ic2VydmVycy4gSWYgV2Vha01hcCBpcyBub3QgYXZhaWxhYmxlIHVzZSBjdXJyZW50IHNoaW1cclxuLy8gZm9yIHRoZSBNYXAgY29sbGVjdGlvbiBhcyBpdCBoYXMgYWxsIHJlcXVpcmVkIG1ldGhvZHMgYW5kIGJlY2F1c2UgV2Vha01hcFxyXG4vLyBjYW4ndCBiZSBmdWxseSBwb2x5ZmlsbGVkIGFueXdheS5cclxudmFyIG9ic2VydmVycyA9IHR5cGVvZiBXZWFrTWFwICE9PSAndW5kZWZpbmVkJyA/IG5ldyBXZWFrTWFwKCkgOiBuZXcgTWFwU2hpbSgpO1xyXG4vKipcclxuICogUmVzaXplT2JzZXJ2ZXIgQVBJLiBFbmNhcHN1bGF0ZXMgdGhlIFJlc2l6ZU9ic2VydmVyIFNQSSBpbXBsZW1lbnRhdGlvblxyXG4gKiBleHBvc2luZyBvbmx5IHRob3NlIG1ldGhvZHMgYW5kIHByb3BlcnRpZXMgdGhhdCBhcmUgZGVmaW5lZCBpbiB0aGUgc3BlYy5cclxuICovXHJcbnZhciBSZXNpemVPYnNlcnZlciA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiBSZXNpemVPYnNlcnZlci5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1Jlc2l6ZU9ic2VydmVyQ2FsbGJhY2t9IGNhbGxiYWNrIC0gQ2FsbGJhY2sgdGhhdCBpcyBpbnZva2VkIHdoZW5cclxuICAgICAqICAgICAgZGltZW5zaW9ucyBvZiB0aGUgb2JzZXJ2ZWQgZWxlbWVudHMgY2hhbmdlLlxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiBSZXNpemVPYnNlcnZlcihjYWxsYmFjaykge1xyXG4gICAgICAgIGlmICghKHRoaXMgaW5zdGFuY2VvZiBSZXNpemVPYnNlcnZlcikpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uLicpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIWFyZ3VtZW50cy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignMSBhcmd1bWVudCByZXF1aXJlZCwgYnV0IG9ubHkgMCBwcmVzZW50LicpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgY29udHJvbGxlciA9IFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpO1xyXG4gICAgICAgIHZhciBvYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlclNQSShjYWxsYmFjaywgY29udHJvbGxlciwgdGhpcyk7XHJcbiAgICAgICAgb2JzZXJ2ZXJzLnNldCh0aGlzLCBvYnNlcnZlcik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gUmVzaXplT2JzZXJ2ZXI7XHJcbn0oKSk7XHJcbi8vIEV4cG9zZSBwdWJsaWMgbWV0aG9kcyBvZiBSZXNpemVPYnNlcnZlci5cclxuW1xyXG4gICAgJ29ic2VydmUnLFxyXG4gICAgJ3Vub2JzZXJ2ZScsXHJcbiAgICAnZGlzY29ubmVjdCdcclxuXS5mb3JFYWNoKGZ1bmN0aW9uIChtZXRob2QpIHtcclxuICAgIFJlc2l6ZU9ic2VydmVyLnByb3RvdHlwZVttZXRob2RdID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHZhciBfYTtcclxuICAgICAgICByZXR1cm4gKF9hID0gb2JzZXJ2ZXJzLmdldCh0aGlzKSlbbWV0aG9kXS5hcHBseShfYSwgYXJndW1lbnRzKTtcclxuICAgIH07XHJcbn0pO1xuXG52YXIgaW5kZXggPSAoZnVuY3Rpb24gKCkge1xyXG4gICAgLy8gRXhwb3J0IGV4aXN0aW5nIGltcGxlbWVudGF0aW9uIGlmIGF2YWlsYWJsZS5cclxuICAgIGlmICh0eXBlb2YgZ2xvYmFsJDEuUmVzaXplT2JzZXJ2ZXIgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgcmV0dXJuIGdsb2JhbCQxLlJlc2l6ZU9ic2VydmVyO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFJlc2l6ZU9ic2VydmVyO1xyXG59KSgpO1xuXG5leHBvcnQgZGVmYXVsdCBpbmRleDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js\n"); + +/***/ }), + +/***/ "./node_modules/string-convert/camel2hyphen.js": +/*!*****************************************************!*\ + !*** ./node_modules/string-convert/camel2hyphen.js ***! + \*****************************************************/ +/***/ (function(module) { + +eval("var camel2hyphen = function (str) {\n return str\n .replace(/[A-Z]/g, function (match) {\n return '-' + match.toLowerCase();\n })\n .toLowerCase();\n};\n\nmodule.exports = camel2hyphen;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3RyaW5nLWNvbnZlcnQvY2FtZWwyaHlwaGVuLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N0cmluZy1jb252ZXJ0L2NhbWVsMmh5cGhlbi5qcz82ZTgwIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBjYW1lbDJoeXBoZW4gPSBmdW5jdGlvbiAoc3RyKSB7XG4gIHJldHVybiBzdHJcbiAgICAgICAgICAucmVwbGFjZSgvW0EtWl0vZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICByZXR1cm4gJy0nICsgbWF0Y2gudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC50b0xvd2VyQ2FzZSgpO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBjYW1lbDJoeXBoZW47Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/string-convert/camel2hyphen.js\n"); + +/***/ }), + +/***/ "./node_modules/slick-carousel/slick/ajax-loader.gif": +/*!***********************************************************!*\ + !*** ./node_modules/slick-carousel/slick/ajax-loader.gif ***! + \***********************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +module.exports = __webpack_require__.p + "static/media/ajax-loader.0b80f665.gif"; + +/***/ }), + +/***/ "./node_modules/slick-carousel/slick/fonts/slick.eot": +/*!***********************************************************!*\ + !*** ./node_modules/slick-carousel/slick/fonts/slick.eot ***! + \***********************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +module.exports = __webpack_require__.p + "static/media/slick.25572f22.eot"; + +/***/ }), + +/***/ "./node_modules/slick-carousel/slick/fonts/slick.svg": +/*!***********************************************************!*\ + !*** ./node_modules/slick-carousel/slick/fonts/slick.svg ***! + \***********************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +module.exports = __webpack_require__.p + "static/media/slick.f895cfdf.svg"; + +/***/ }), + +/***/ "./node_modules/slick-carousel/slick/fonts/slick.ttf": +/*!***********************************************************!*\ + !*** ./node_modules/slick-carousel/slick/fonts/slick.ttf ***! + \***********************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +module.exports = __webpack_require__.p + "static/media/slick.6aa1ee46.ttf"; + +/***/ }), + +/***/ "./node_modules/slick-carousel/slick/fonts/slick.woff": +/*!************************************************************!*\ + !*** ./node_modules/slick-carousel/slick/fonts/slick.woff ***! + \************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +module.exports = __webpack_require__.p + "static/media/slick.653a4cbb.woff"; + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js ***! + \*********************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _arrayLikeToArray; }\n/* harmony export */ });\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXJyYXlMaWtlVG9BcnJheS5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQWU7QUFDZjs7QUFFQSx5Q0FBeUMsU0FBUztBQUNsRDtBQUNBOztBQUVBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2FycmF5TGlrZVRvQXJyYXkuanM/MTkxYiJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfYXJyYXlMaWtlVG9BcnJheShhcnIsIGxlbikge1xuICBpZiAobGVuID09IG51bGwgfHwgbGVuID4gYXJyLmxlbmd0aCkgbGVuID0gYXJyLmxlbmd0aDtcblxuICBmb3IgKHZhciBpID0gMCwgYXJyMiA9IG5ldyBBcnJheShsZW4pOyBpIDwgbGVuOyBpKyspIHtcbiAgICBhcnIyW2ldID0gYXJyW2ldO1xuICB9XG5cbiAgcmV0dXJuIGFycjI7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _arrayWithHoles; }\n/* harmony export */ });\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXJyYXlXaXRoSG9sZXMuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFlO0FBQ2Y7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXJyYXlXaXRoSG9sZXMuanM/M2VlMSJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfYXJyYXlXaXRoSG9sZXMoYXJyKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGFycikpIHJldHVybiBhcnI7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js": +/*!**************************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js ***! + \**************************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _assertThisInitialized; }\n/* harmony export */ });\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXNzZXJ0VGhpc0luaXRpYWxpemVkLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBZTtBQUNmO0FBQ0E7QUFDQTs7QUFFQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQuanM/ZWMyZCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpIHtcbiAgaWYgKHNlbGYgPT09IHZvaWQgMCkge1xuICAgIHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTtcbiAgfVxuXG4gIHJldHVybiBzZWxmO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _classCallCheck; }\n/* harmony export */ });\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY2xhc3NDYWxsQ2hlY2suanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2NsYXNzQ2FsbENoZWNrLmpzP2UyZDAiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3Rvcikge1xuICBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7XG4gIH1cbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/createClass.js": +/*!****************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/createClass.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _createClass; }\n/* harmony export */ });\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY3JlYXRlQ2xhc3MuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0Esa0JBQWtCLGtCQUFrQjtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFZTtBQUNmO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jcmVhdGVDbGFzcy5qcz8xNDgwIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07XG4gICAgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlO1xuICAgIGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTtcbiAgICBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfY3JlYXRlQ2xhc3MoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7XG4gIGlmIChwcm90b1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpO1xuICBpZiAoc3RhdGljUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7XG4gIHJldHVybiBDb25zdHJ1Y3Rvcjtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/createClass.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _getPrototypeOf; }\n/* harmony export */ });\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZ2V0UHJvdG90eXBlT2YuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZ2V0UHJvdG90eXBlT2YuanM/NjYyOCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2Yobykge1xuICBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2Yobykge1xuICAgIHJldHVybiBvLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2Yobyk7XG4gIH07XG4gIHJldHVybiBfZ2V0UHJvdG90eXBlT2Yobyk7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/inherits.js": +/*!*************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/inherits.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _inherits; }\n/* harmony export */ });\n/* harmony import */ var _setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setPrototypeOf.js */ \"./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) (0,_setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(subClass, superClass);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaW5oZXJpdHMuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBaUQ7QUFDbEM7QUFDZjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNILGtCQUFrQiw4REFBYztBQUNoQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaW5oZXJpdHMuanM/NmRmMyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc2V0UHJvdG90eXBlT2YgZnJvbSBcIi4vc2V0UHJvdG90eXBlT2YuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykge1xuICBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpO1xuICB9XG5cbiAgc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7XG4gICAgY29uc3RydWN0b3I6IHtcbiAgICAgIHZhbHVlOiBzdWJDbGFzcyxcbiAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfVxuICB9KTtcbiAgaWYgKHN1cGVyQ2xhc3MpIHNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/inherits.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js": +/*!*************************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _iterableToArrayLimit; }\n/* harmony export */ });\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaXRlcmFibGVUb0FycmF5TGltaXQuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFlO0FBQ2Y7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQSw0QkFBNEIsK0JBQStCO0FBQzNEOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTs7QUFFQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9pdGVyYWJsZVRvQXJyYXlMaW1pdC5qcz8yZjBlIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9pdGVyYWJsZVRvQXJyYXlMaW1pdChhcnIsIGkpIHtcbiAgdmFyIF9pID0gYXJyID09IG51bGwgPyBudWxsIDogdHlwZW9mIFN5bWJvbCAhPT0gXCJ1bmRlZmluZWRcIiAmJiBhcnJbU3ltYm9sLml0ZXJhdG9yXSB8fCBhcnJbXCJAQGl0ZXJhdG9yXCJdO1xuXG4gIGlmIChfaSA9PSBudWxsKSByZXR1cm47XG4gIHZhciBfYXJyID0gW107XG4gIHZhciBfbiA9IHRydWU7XG4gIHZhciBfZCA9IGZhbHNlO1xuXG4gIHZhciBfcywgX2U7XG5cbiAgdHJ5IHtcbiAgICBmb3IgKF9pID0gX2kuY2FsbChhcnIpOyAhKF9uID0gKF9zID0gX2kubmV4dCgpKS5kb25lKTsgX24gPSB0cnVlKSB7XG4gICAgICBfYXJyLnB1c2goX3MudmFsdWUpO1xuXG4gICAgICBpZiAoaSAmJiBfYXJyLmxlbmd0aCA9PT0gaSkgYnJlYWs7XG4gICAgfVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICBfZCA9IHRydWU7XG4gICAgX2UgPSBlcnI7XG4gIH0gZmluYWxseSB7XG4gICAgdHJ5IHtcbiAgICAgIGlmICghX24gJiYgX2lbXCJyZXR1cm5cIl0gIT0gbnVsbCkgX2lbXCJyZXR1cm5cIl0oKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgaWYgKF9kKSB0aHJvdyBfZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gX2Fycjtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js": +/*!********************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _nonIterableRest; }\n/* harmony export */ });\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vbm9uSXRlcmFibGVSZXN0LmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBZTtBQUNmO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL25vbkl0ZXJhYmxlUmVzdC5qcz8xODYyIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9ub25JdGVyYWJsZVJlc3QoKSB7XG4gIHRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIik7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js": +/*!******************************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js ***! + \******************************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _possibleConstructorReturn; }\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/typeof */ \"./node_modules/@babel/runtime/helpers/esm/typeof.js\");\n/* harmony import */ var _assertThisInitialized_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./assertThisInitialized.js */ \"./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js\");\n\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && ((0,_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return (0,_assertThisInitialized_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(self);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vcG9zc2libGVDb25zdHJ1Y3RvclJldHVybi5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBb0Q7QUFDVztBQUNoRDtBQUNmLGVBQWUseUVBQU87QUFDdEI7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQSxTQUFTLHFFQUFxQjtBQUM5QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vcG9zc2libGVDb25zdHJ1Y3RvclJldHVybi5qcz8zOWZkIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfdHlwZW9mIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL3R5cGVvZlwiO1xuaW1wb3J0IGFzc2VydFRoaXNJbml0aWFsaXplZCBmcm9tIFwiLi9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHNlbGYsIGNhbGwpIHtcbiAgaWYgKGNhbGwgJiYgKF90eXBlb2YoY2FsbCkgPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGNhbGwgPT09IFwiZnVuY3Rpb25cIikpIHtcbiAgICByZXR1cm4gY2FsbDtcbiAgfSBlbHNlIGlmIChjYWxsICE9PSB2b2lkIDApIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWRcIik7XG4gIH1cblxuICByZXR1cm4gYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _setPrototypeOf; }\n/* harmony export */ });\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vc2V0UHJvdG90eXBlT2YuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vc2V0UHJvdG90eXBlT2YuanM/MmM2OSJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkge1xuICBfc2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHtcbiAgICBvLl9fcHJvdG9fXyA9IHA7XG4gICAgcmV0dXJuIG87XG4gIH07XG5cbiAgcmV0dXJuIF9zZXRQcm90b3R5cGVPZihvLCBwKTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/slicedToArray.js": +/*!******************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js ***! + \******************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _slicedToArray; }\n/* harmony export */ });\n/* harmony import */ var _arrayWithHoles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayWithHoles.js */ \"./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\");\n/* harmony import */ var _iterableToArrayLimit_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iterableToArrayLimit.js */ \"./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\");\n/* harmony import */ var _unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./unsupportedIterableToArray.js */ \"./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\");\n/* harmony import */ var _nonIterableRest_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nonIterableRest.js */ \"./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\");\n\n\n\n\nfunction _slicedToArray(arr, i) {\n return (0,_arrayWithHoles_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(arr) || (0,_iterableToArrayLimit_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(arr, i) || (0,_unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(arr, i) || (0,_nonIterableRest_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])();\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vc2xpY2VkVG9BcnJheS5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFpRDtBQUNZO0FBQ1k7QUFDdEI7QUFDcEM7QUFDZixTQUFTLDhEQUFjLFNBQVMsb0VBQW9CLFlBQVksMEVBQTBCLFlBQVksK0RBQWU7QUFDckgiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3NsaWNlZFRvQXJyYXkuanM/Y2Y4OCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXJyYXlXaXRoSG9sZXMgZnJvbSBcIi4vYXJyYXlXaXRoSG9sZXMuanNcIjtcbmltcG9ydCBpdGVyYWJsZVRvQXJyYXlMaW1pdCBmcm9tIFwiLi9pdGVyYWJsZVRvQXJyYXlMaW1pdC5qc1wiO1xuaW1wb3J0IHVuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IGZyb20gXCIuL3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5LmpzXCI7XG5pbXBvcnQgbm9uSXRlcmFibGVSZXN0IGZyb20gXCIuL25vbkl0ZXJhYmxlUmVzdC5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX3NsaWNlZFRvQXJyYXkoYXJyLCBpKSB7XG4gIHJldHVybiBhcnJheVdpdGhIb2xlcyhhcnIpIHx8IGl0ZXJhYmxlVG9BcnJheUxpbWl0KGFyciwgaSkgfHwgdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkoYXJyLCBpKSB8fCBub25JdGVyYWJsZVJlc3QoKTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/typeof.js": +/*!***********************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/typeof.js ***! + \***********************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _typeof; }\n/* harmony export */ });\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdHlwZW9mLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBZTtBQUNmOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3R5cGVvZi5qcz9hZDE5Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7XG4gIFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjtcblxuICBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHtcbiAgICBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHtcbiAgICAgIHJldHVybiB0eXBlb2Ygb2JqO1xuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7XG4gICAgICByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIF90eXBlb2Yob2JqKTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/typeof.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js ***! + \*******************************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _unsupportedIterableToArray; }\n/* harmony export */ });\n/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ \"./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(o, minLen);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBcUQ7QUFDdEM7QUFDZjtBQUNBLG9DQUFvQyxnRUFBZ0I7QUFDcEQ7QUFDQTtBQUNBO0FBQ0Esc0ZBQXNGLGdFQUFnQjtBQUN0RyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkuanM/ODliMyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXJyYXlMaWtlVG9BcnJheSBmcm9tIFwiLi9hcnJheUxpa2VUb0FycmF5LmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkobywgbWluTGVuKSB7XG4gIGlmICghbykgcmV0dXJuO1xuICBpZiAodHlwZW9mIG8gPT09IFwic3RyaW5nXCIpIHJldHVybiBhcnJheUxpa2VUb0FycmF5KG8sIG1pbkxlbik7XG4gIHZhciBuID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pLnNsaWNlKDgsIC0xKTtcbiAgaWYgKG4gPT09IFwiT2JqZWN0XCIgJiYgby5jb25zdHJ1Y3RvcikgbiA9IG8uY29uc3RydWN0b3IubmFtZTtcbiAgaWYgKG4gPT09IFwiTWFwXCIgfHwgbiA9PT0gXCJTZXRcIikgcmV0dXJuIEFycmF5LmZyb20obyk7XG4gIGlmIChuID09PSBcIkFyZ3VtZW50c1wiIHx8IC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKSByZXR1cm4gYXJyYXlMaWtlVG9BcnJheShvLCBtaW5MZW4pO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\n"); + +/***/ }), + +/***/ "./src/data/sections/about-info1.json": +/*!********************************************!*\ + !*** ./src/data/sections/about-info1.json ***! + \********************************************/ +/***/ (function(module) { + +"use strict"; +module.exports = JSON.parse('{"id":1,"title":"Who We Are ?","paragraph1":"We provide business establishment services in the free zone with comprehensive solutions for entrepreneurs, which reduces the burdens and complexities associated with establishing a business in the Emirates. As a one-stop platform for entrepreneurs, we ensure a seamless experience by offering a range of business support services in a customer-centric environment making us the best choice for obtaining business licenses in the UAE.","paragraph2":"With over 2,000 business activities, our region offers a wide range of business licenses in various sectors, allowing entrepreneurs to explore countless business opportunities. Whether you work in the publishing field or are considering establishing a commercial, industrial or service company, we provide the necessary licenses and modern facilities to meet your project requirements"}'); + +/***/ }), + +/***/ "./src/data/sections/clients.json": +/*!****************************************!*\ + !*** ./src/data/sections/clients.json ***! + \****************************************/ +/***/ (function(module) { + +"use strict"; +module.exports = JSON.parse('[{"id":1,"lightImage":"/img/clients/brands/light/client1.webp","darkImage":"/img/clients/brands/dark/01.png","url":"www.Vie.com"},{"id":2,"lightImage":"/img/clients/brands/light/client2.webp","darkImage":"/img/clients/brands/dark/02.png","url":"www.Vie.com"},{"id":3,"lightImage":"/img/clients/brands/light/client3.webp","darkImage":"/img/clients/brands/dark/03.png","url":"www.Vie.com"},{"id":4,"lightImage":"/img/clients/brands/light/client4.webp","darkImage":"/img/clients/brands/dark/04.png","url":"www.Vie.com"},{"id":5,"lightImage":"/img/clients/brands/light/client5.webp","darkImage":"/img/clients/brands/dark/05.png","url":"www.Vie.com"},{"id":6,"lightImage":"/img/clients/brands/light/client6.webp","darkImage":"/img/clients/brands/dark/06.png","url":"www.Vie.com"},{"id":7,"lightImage":"/img/clients/brands/light/client7.webp","darkImage":"/img/clients/brands/dark/07.png","url":"www.Vie.com"},{"id":8,"lightImage":"/img/clients/brands/light/client8.webp","darkImage":"/img/clients/brands/dark/08.png","url":"www.Vie.com"}]'); + +/***/ }), + +/***/ "./src/data/sections/features.json": +/*!*****************************************!*\ + !*** ./src/data/sections/features.json ***! + \*****************************************/ +/***/ (function(module) { + +"use strict"; +module.exports = JSON.parse('[{"id":1,"icon":"pe-7s-paint-bucket","title":"Marketing services","content":"To achieve success in the local market, it requires effective marketing, whether through electronic or non-electronic media"},{"id":2,"icon":"pe-7s-phone","title":"Restructuring projects","content":"Business Hub offers restructuring projects in a way that serves the interest of business continuity by reducing expenses and reemploying the workforce correctly."},{"id":3,"icon":"pe-7s-display1","title":"Commercial brokerage","content":"Mediation in buying and selling operations: We mediate between sellers and buyers to ensure that deals are achieved in a profitable manner for both parties."},{"id":4,"icon":"pe-7s-diskette","title":"Commercial representation","content":"Business Hub provides commercial representation services to companies inside and outside the UAE, provided that our role is limited to representing other companies."}]'); + +/***/ }), + +/***/ "./src/data/sections/team.json": +/*!*************************************!*\ + !*** ./src/data/sections/team.json ***! + \*************************************/ +/***/ (function(module) { + +"use strict"; +module.exports = JSON.parse('{"teams":[{"id":1,"image":"/img/team/01.webp","title":"Stephanie Lawrence","sub":"CEO, Colabrio Media"},{"id":2,"image":"/img/team/02.webp","title":"Alex Regelman","sub":"CEO, Colabrio Media"},{"id":3,"image":"/img/team/03.webp","title":"Stacey Stamper","sub":"CEO, Colabrio Media"},{"id":4,"image":"/img/team/04.webp","title":"Stephanie Lawrence","sub":"CEO, Colabrio Media"},{"id":5,"image":"/img/team/05.webp","title":"Stephanie Lawrence","sub":"CEO, Colabrio Media"},{"id":6,"image":"/img/team/06.webp","title":"Alex Regelman","sub":"CEO, Colabrio Media"},{"id":7,"image":"/img/team/07.webp","title":"Stacey Stamper","sub":"CEO, Colabrio Media"},{"id":8,"image":"/img/team/08.webp","title":"Stephanie Lawrence","sub":"CEO, Colabrio Media"},{"id":9,"image":"/img/team/09.webp","title":"Stephanie Lawrence","sub":"CEO, Colabrio Media"},{"id":10,"image":"/img/team/10.webp","title":"Alex Regelman","sub":"CEO, Colabrio Media"},{"id":11,"image":"/img/team/11.webp","title":"Stacey Stamper","sub":"CEO, Colabrio Media"},{"id":12,"image":"/img/team/12.webp","title":"Stephanie Lawrence","sub":"CEO, Colabrio Media"}],"skills":[{"id":1,"text":"UI / UX Design","value":"90%"},{"id":2,"text":"Apps Development","value":"80%"}]}'); + +/***/ }) + +}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); } +/******/ __webpack_require__.O(0, ["pages/_app","main"], function() { return __webpack_exec__("./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2Fabout&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cabout%5Cindex.jsx!"); }); +/******/ var __webpack_exports__ = __webpack_require__.O(); +/******/ _N_E = __webpack_exports__; +/******/ } +]); \ No newline at end of file diff --git a/.next/static/chunks/pages/blog-details/blog-details-1.js b/.next/static/chunks/pages/blog-details/blog-details-1.js new file mode 100644 index 0000000..90bd6ed --- /dev/null +++ b/.next/static/chunks/pages/blog-details/blog-details-1.js @@ -0,0 +1,1807 @@ +/* + * 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/). + */ +(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["pages/blog-details/blog-details-1"],{ + +/***/ "./node_modules/next/dist/client/link.js": +/*!***********************************************!*\ + !*** ./node_modules/next/dist/client/link.js ***! + \***********************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _slicedToArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nvar _s = $RefreshSig$();\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _router = __webpack_require__(/*! ../shared/lib/router/router */ \"./node_modules/next/dist/shared/lib/router/router.js\");\n\nvar _router1 = __webpack_require__(/*! ./router */ \"./node_modules/next/dist/client/router.js\");\n\nvar _useIntersection = __webpack_require__(/*! ./use-intersection */ \"./node_modules/next/dist/client/use-intersection.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar prefetched = {};\n\nfunction prefetch(router, href, as, options) {\n if ( false || !router) return;\n if (!(0, _router).isLocalURL(href)) return; // Prefetch the JSON 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\n router.prefetch(href, as, options)[\"catch\"](function (err) {\n if (true) {\n // rethrow to show invalid URL errors\n throw err;\n }\n });\n var curLocale = options && typeof options.locale !== 'undefined' ? options.locale : router && router.locale; // Join on an invalid URI character\n\n prefetched[href + '%' + as + (curLocale ? '%' + curLocale : '')] = true;\n}\n\nfunction isModifiedEvent(event) {\n var target = event.currentTarget.target;\n return target && target !== '_self' || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey || event.nativeEvent && event.nativeEvent.which === 2;\n}\n\nfunction linkClicked(e, router, href, as, replace, shallow, scroll, locale) {\n var nodeName = e.currentTarget.nodeName;\n\n if (nodeName === 'A' && (isModifiedEvent(e) || !(0, _router).isLocalURL(href))) {\n // ignore click for browser’s default behavior\n return;\n }\n\n e.preventDefault(); // avoid scroll for urls with anchor refs\n\n if (scroll == null && as.indexOf('#') >= 0) {\n scroll = false;\n } // replace state instead of push if prop is present\n\n\n router[replace ? 'replace' : 'push'](href, as, {\n shallow: shallow,\n locale: locale,\n scroll: scroll\n });\n}\n\nfunction Link(props) {\n _s();\n\n if (true) {\n var createPropError = function createPropError(args) {\n return new Error(\"Failed prop type: The prop `\".concat(args.key, \"` expects a \").concat(args.expected, \" in `<Link>`, but got `\").concat(args.actual, \"` instead.\") + ( true ? \"\\nOpen your browser's console to view the Component stack trace.\" : 0));\n }; // TypeScript trick for type-guarding:\n\n\n var requiredPropsGuard = {\n href: true\n };\n var requiredProps = Object.keys(requiredPropsGuard);\n requiredProps.forEach(function (key) {\n if (key === 'href') {\n if (props[key] == null || typeof props[key] !== 'string' && typeof props[key] !== 'object') {\n throw createPropError({\n key: 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 var _ = key;\n }\n }); // TypeScript trick for type-guarding:\n\n var optionalPropsGuard = {\n as: true,\n replace: true,\n scroll: true,\n shallow: true,\n passHref: true,\n prefetch: true,\n locale: true\n };\n var optionalProps = Object.keys(optionalPropsGuard);\n optionalProps.forEach(function (key) {\n var valType = typeof props[key];\n\n if (key === 'as') {\n if (props[key] && valType !== 'string' && valType !== 'object') {\n throw createPropError({\n key: key,\n expected: '`string` or `object`',\n actual: valType\n });\n }\n } else if (key === 'locale') {\n if (props[key] && valType !== 'string') {\n throw createPropError({\n key: key,\n expected: '`string`',\n actual: valType\n });\n }\n } else if (key === 'replace' || key === 'scroll' || key === 'shallow' || key === 'passHref' || key === 'prefetch') {\n if (props[key] != null && valType !== 'boolean') {\n throw createPropError({\n key: key,\n expected: '`boolean`',\n actual: valType\n });\n }\n } else {\n // TypeScript trick for type-guarding:\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var _ = key;\n }\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\n var hasWarned = _react[\"default\"].useRef(false);\n\n if (props.prefetch && !hasWarned.current) {\n hasWarned.current = true;\n console.warn('Next.js auto-prefetches automatically based on viewport. The prefetch attribute is no longer needed. More: https://nextjs.org/docs/messages/prefetch-true-deprecated');\n }\n }\n\n var p = props.prefetch !== false;\n var router = (0, _router1).useRouter();\n\n var _react$default$useMem = _react[\"default\"].useMemo(function () {\n var _resolveHref = (0, _router).resolveHref(router, props.href, true),\n _resolveHref2 = _slicedToArray(_resolveHref, 2),\n resolvedHref = _resolveHref2[0],\n resolvedAs = _resolveHref2[1];\n\n return {\n href: resolvedHref,\n as: props.as ? (0, _router).resolveHref(router, props.as) : resolvedAs || resolvedHref\n };\n }, [router, props.href, props.as]),\n href = _react$default$useMem.href,\n as = _react$default$useMem.as;\n\n var children = props.children,\n replace = props.replace,\n shallow = props.shallow,\n scroll = props.scroll,\n locale = props.locale; // Deprecated. Warning shown by propType check. If the children provided is a string (<Link>example</Link>) we wrap it in an <a> tag\n\n if (typeof children === 'string') {\n children = /*#__PURE__*/_react[\"default\"].createElement(\"a\", null, children);\n } // This will return the first child, if multiple are provided it will throw an error\n\n\n var child;\n\n if (true) {\n try {\n child = _react[\"default\"].Children.only(children);\n } catch (err) {\n throw new Error(\"Multiple children were passed to <Link> with `href` of `\".concat(props.href, \"` but only one child is supported https://nextjs.org/docs/messages/link-multiple-children\") + ( true ? \" \\nOpen your browser's console to view the Component stack trace.\" : 0));\n }\n } else {}\n\n var childRef = child && typeof child === 'object' && child.ref;\n\n var _useIntersection2 = (0, _useIntersection).useIntersection({\n rootMargin: '200px'\n }),\n _useIntersection3 = _slicedToArray(_useIntersection2, 2),\n setIntersectionRef = _useIntersection3[0],\n isVisible = _useIntersection3[1];\n\n var setRef = _react[\"default\"].useCallback(function (el) {\n setIntersectionRef(el);\n\n if (childRef) {\n if (typeof childRef === 'function') childRef(el);else if (typeof childRef === 'object') {\n childRef.current = el;\n }\n }\n }, [childRef, setIntersectionRef]);\n\n _react[\"default\"].useEffect(function () {\n var shouldPrefetch = isVisible && p && (0, _router).isLocalURL(href);\n var curLocale = typeof locale !== 'undefined' ? locale : router && router.locale;\n var isPrefetched = prefetched[href + '%' + as + (curLocale ? '%' + curLocale : '')];\n\n if (shouldPrefetch && !isPrefetched) {\n prefetch(router, href, as, {\n locale: curLocale\n });\n }\n }, [as, href, isVisible, locale, p, router]);\n\n var childProps = {\n ref: setRef,\n onClick: function onClick(e) {\n if (child.props && typeof child.props.onClick === 'function') {\n child.props.onClick(e);\n }\n\n if (!e.defaultPrevented) {\n linkClicked(e, router, href, as, replace, shallow, scroll, locale);\n }\n }\n };\n\n childProps.onMouseEnter = function (e) {\n if (!(0, _router).isLocalURL(href)) return;\n\n if (child.props && typeof child.props.onMouseEnter === 'function') {\n child.props.onMouseEnter(e);\n }\n\n prefetch(router, href, as, {\n priority: true\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\n\n if (props.passHref || child.type === 'a' && !('href' in child.props)) {\n var curLocale = typeof locale !== 'undefined' ? locale : router && router.locale; // we only render domain locales if we are currently on a domain locale\n // so that locale links are still visitable in development/preview envs\n\n var localeDomain = router && router.isLocaleDomain && (0, _router).getDomainLocale(as, curLocale, router && router.locales, router && router.domainLocales);\n childProps.href = localeDomain || (0, _router).addBasePath((0, _router).addLocale(as, curLocale, router && router.defaultLocale));\n }\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(child, childProps);\n}\n\n_s(Link, \"PYHstBoZE4p1pf5wc1Vw4fTzvCU=\", true);\n\n_c = Link;\nvar _default = Link;\nexports[\"default\"] = _default;\n\nvar _c;\n\n$RefreshReg$(_c, \"Link\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9saW5rLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7Ozs7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELGtCQUFBLEdBQWtCLEtBQUssQ0FBdkI7O0FBQ0EsSUFBSUUsTUFBTSxHQUFHQyxzQkFBc0IsQ0FBQ0MsbUJBQU8sQ0FBQyw0Q0FBRCxDQUFSLENBQW5DOztBQUNBLElBQUlDLE9BQU8sR0FBR0QsbUJBQU8sQ0FBQyx5RkFBRCxDQUFyQjs7QUFDQSxJQUFJRSxRQUFRLEdBQUdGLG1CQUFPLENBQUMsMkRBQUQsQ0FBdEI7O0FBQ0EsSUFBSUcsZ0JBQWdCLEdBQUdILG1CQUFPLENBQUMsK0VBQUQsQ0FBOUI7O0FBQ0EsU0FBU0Qsc0JBQVQsQ0FBZ0NLLEdBQWhDLEVBQXFDO0FBQ2pDLFNBQU9BLEdBQUcsSUFBSUEsR0FBRyxDQUFDQyxVQUFYLEdBQXdCRCxHQUF4QixHQUE4QjtBQUNqQyxlQUFTQTtBQUR3QixHQUFyQztBQUdIOztBQUNELElBQU1FLFVBQVUsR0FBRyxFQUFuQjs7QUFFQSxTQUFTQyxRQUFULENBQWtCQyxNQUFsQixFQUEwQkMsSUFBMUIsRUFBZ0NDLEVBQWhDLEVBQW9DQyxPQUFwQyxFQUE2QztBQUN6QyxNQUFJLFVBQWlDLENBQUNILE1BQXRDLEVBQThDO0FBQzlDLE1BQUksQ0FBQyxDQUFDLEdBQUdQLE9BQUosRUFBYVcsVUFBYixDQUF3QkgsSUFBeEIsQ0FBTCxFQUFvQyxPQUZLLENBR3pDO0FBQ0E7QUFDQTtBQUNBOztBQUNBRCxFQUFBQSxNQUFNLENBQUNELFFBQVAsQ0FBZ0JFLElBQWhCLEVBQXNCQyxFQUF0QixFQUEwQkMsT0FBMUIsV0FBeUMsVUFBQ0UsR0FBRCxFQUFPO0FBQzVDLGNBQTJDO0FBQ3ZDO0FBQ0EsWUFBTUEsR0FBTjtBQUNIO0FBQ0osR0FMRDtBQU1BLE1BQU1DLFNBQVMsR0FBR0gsT0FBTyxJQUFJLE9BQU9B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Q2dGLE9BQTdELEVBQXNFaEYsTUFBTSxJQUFJQSxNQUFNLENBQUNpRixhQUF2RixDQUF4RDtBQUNBVixJQUFBQSxVQUFVLENBQUN0RSxJQUFYLEdBQWtCNEUsWUFBWSxJQUFJLENBQUMsR0FBR3BGLE9BQUosRUFBYXlGLFdBQWIsQ0FBeUIsQ0FBQyxHQUFHekYsT0FBSixFQUFhMEYsU0FBYixDQUF1QmpGLEVBQXZCLEVBQTJCSSxTQUEzQixFQUFzQ04sTUFBTSxJQUFJQSxNQUFNLENBQUNvRixhQUF2RCxDQUF6QixDQUFsQztBQUNIOztBQUNELFNBQU8sYUFBYzlGLE1BQU0sV0FBTixDQUFlK0YsWUFBZixDQUE0QjdCLEtBQTVCLEVBQW1DZSxVQUFuQyxDQUFyQjtBQUNIOztHQXhLUTdDOztLQUFBQTtBQXlLVCxJQUFJNEQsUUFBUSxHQUFHNUQsSUFBZjtBQUNBdEMsa0JBQUEsR0FBa0JrRyxRQUFsQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9saW5rLmpzP2U0ZjkiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7XG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xudmFyIF9yb3V0ZXIgPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9yb3V0ZXIvcm91dGVyXCIpO1xudmFyIF9yb3V0ZXIxID0gcmVxdWlyZShcIi4vcm91dGVyXCIpO1xudmFyIF91c2VJbnRlcnNlY3Rpb24gPSByZXF1aXJlKFwiLi91c2UtaW50ZXJzZWN0aW9uXCIpO1xuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuY29uc3QgcHJlZmV0Y2hlZCA9IHtcbn07XG5mdW5jdGlvbiBwcmVmZXRjaChyb3V0ZXIsIGhyZWYsIGFzLCBvcHRpb25zKSB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8ICFyb3V0ZXIpIHJldHVybjtcbiAgICBpZiAoISgwLCBfcm91dGVyKS5pc0xvY2FsVVJMKGhyZWYpKSByZXR1cm47XG4gICAgLy8gUHJlZmV0Y2ggdGhlIEpTT04gcGFnZSBpZiBhc2tlZCAob25seSBpbiB0aGUgY2xpZW50KVxuICAgIC8vIFdlIG5lZWQgdG8gaGFuZGxlIGEgcHJlZmV0Y2ggZXJyb3IgaGVyZSBzaW5jZSB3ZSBtYXkgYmVcbiAgICAvLyBsb2FkaW5nIHdpdGggcHJpb3JpdHkgd2hpY2ggY2FuIHJlamVjdCBidXQgd2UgZG9uJ3RcbiAgICAvLyB3YW50IHRvIGZvcmNlIG5hdmlnYXRpb24gc2luY2UgdGhpcyBpcyBvbmx5IGEgcHJlZmV0Y2hcbiAgICByb3V0ZXIucHJlZmV0Y2goaHJlZiwgYXMsIG9wdGlvbnMpLmNhdGNoKChlcnIpPT57XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICAvLyByZXRocm93IHRvIHNob3cgaW52YWxpZCBVUkwgZXJyb3JzXG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBjdXJMb2NhbGUgPSBvcHRpb25zICYmIHR5cGVvZiBvcHRpb25zLmxvY2FsZSAhPT0gJ3VuZGVmaW5lZCcgPyBvcHRpb25zLmxvY2FsZSA6IHJvdXRlciAmJiByb3V0ZXIubG9jYWxlO1xuICAgIC8vIEpvaW4gb24gYW4gaW52YWxpZCBVUkkgY2hhcmFjdGVyXG4gICAgcHJlZmV0Y2hlZFtocmVmICsgJyUnICsgYXMgKyAoY3VyTG9jYWxlID8gJyUnICsgY3VyTG9jYWxlIDogJycpXSA9IHRydWU7XG59XG5mdW5jdGlvbiBpc01vZGlmaWVkRXZlbnQoZXZlbnQpIHtcbiAgICBjb25zdCB7IHRhcmdldCAgfSA9IGV2ZW50LmN1cnJlbnRUYXJnZXQ7XG4gICAgcmV0dXJuIHRhcmdldCAmJiB0YXJnZXQgIT09ICdfc2VsZicgfHwgZXZlbnQubWV0YUtleSB8fCBldmVudC5jdHJsS2V5IHx8IGV2ZW50LnNoaWZ0S2V5IHx8IGV2ZW50LmFsdEtleSB8fCBldmVudC5uYXRpdmVFdmVudCAmJiBldmVudC5uYXRpdmVFdmVudC53aGljaCA9PT0gMjtcbn1cbmZ1bmN0aW9uIGxpbmtDbGlja2VkKGUsIHJvdXRlciwgaHJlZiwgYXMsIHJlcGxhY2UsIHNoYWxsb3csIHNjcm9sbCwgbG9jYWxlKSB7XG4gICAgY29uc3QgeyBub2RlTmFtZSAgfSA9IGUuY3VycmVudFRhcmdldDtcbiAgICBpZiAobm9kZU5hbWUgPT09ICdBJyAmJiAoaXNNb2RpZmllZEV2ZW50KGUpIHx8ICEoMCwgX3JvdXRlcikuaXNMb2NhbFVSTChocmVmKSkpIHtcbiAgICAgICAgLy8gaWdub3JlIGNsaWNrIGZvciBicm93c2Vy4oCZcyBkZWZhdWx0IGJlaGF2aW9yXG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIC8vICBhdm9pZCBzY3JvbGwgZm9yIHVybHMgd2l0aCBhbmNob3IgcmVmc1xuICAgIGlmIChzY3JvbGwgPT0gbnVsbCAmJiBhcy5pbmRleE9mKCcjJykgPj0gMCkge1xuICAgICAgICBzY3JvbGwgPSBmYWxzZTtcbiAgICB9XG4gICAgLy8gcmVwbGFjZSBzdGF0ZSBpbnN0ZWFkIG9mIHB1c2ggaWYgcHJvcCBpcyBwcmVzZW50XG4gICAgcm91dGVyW3JlcGxhY2UgPyAncmVwbGFjZScgOiAncHVzaCddKGhyZWYsIGFzLCB7XG4gICAgICAgIHNoYWxsb3csXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgc2Nyb2xsXG4gICAgfSk7XG59XG5mdW5jdGlvbiBMaW5rKHByb3BzKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgZnVuY3Rpb24gY3JlYXRlUHJvcEVycm9yKGFyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgRXJyb3IoYEZhaWxlZCBwcm9wIHR5cGU6IFRoZSBwcm9wIFxcYCR7YXJncy5rZXl9XFxgIGV4cGVjdHMgYSAke2FyZ3MuZXhwZWN0ZWR9IGluIFxcYDxMaW5rPlxcYCwgYnV0IGdvdCBcXGAke2FyZ3MuYWN0dWFsfVxcYCBpbnN0ZWFkLmAgKyAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgPyBcIlxcbk9wZW4geW91ciBicm93c2VyJ3MgY29uc29sZSB0byB2aWV3IHRoZSBDb21wb25lbnQgc3RhY2sgdHJhY2UuXCIgOiAnJykpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFR5cGVTY3JpcHQgdHJpY2sgZm9yIHR5cGUtZ3VhcmRpbmc6XG4gICAgICAgIGNvbnN0IHJlcXVpcmVkUHJvcHNHdWFyZCA9IHtcbiAgICAgICAgICAgIGhyZWY6IHRydWVcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgcmVxdWlyZWRQcm9wcyA9IE9iamVjdC5rZXlzKHJlcXVpcmVkUHJvcHNHdWFyZCk7XG4gICAgICAgIHJlcXVpcmVkUHJvcHMuZm9yRWFjaCgoa2V5KT0+e1xuICAgICAgICAgICAgaWYgKGtleSA9PT0gJ2hyZWYnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHByb3BzW2tleV0gPT0gbnVsbCB8fCB0eXBlb2YgcHJvcHNba2V5XSAhPT0gJ3N0cmluZycgJiYgdHlwZW9mIHByb3BzW2tleV0gIT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGNyZWF0ZVByb3BFcnJvcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZDogJ2BzdHJpbmdgIG9yIGBvYmplY3RgJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbDogcHJvcHNba2V5XSA9PT0gbnVsbCA/ICdudWxsJyA6IHR5cGVvZiBwcm9wc1trZXldXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gVHlwZVNjcmlwdCB0cmljayBmb3IgdHlwZS1ndWFyZGluZzpcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgICAgICAgICAgICAgY29uc3QgXyA9IGtleTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIC8vIFR5cGVTY3JpcHQgdHJpY2sgZm9yIHR5cGUtZ3VhcmRpbmc6XG4gICAgICAgIGNvbnN0IG9wdGlvbmFsUHJvcHNHdWFyZCA9IHtcbiAgICAgICAgICAgIGFzOiB0cnVlLFxuICAgICAgICAgICAgcmVwbGFjZTogdHJ1ZSxcbiAgICAgICAgICAgIHNjcm9sbDogdHJ1ZSxcbiAgICAgICAgICAgIHNoYWxsb3c6IHRydWUsXG4gICAgICAgICAgICBwYXNzSHJlZjogdHJ1ZSxcbiAgICAgICAgICAgIHByZWZldGNoOiB0cnVlLFxuICAgICAgICAgICAgbG9jYWxlOiB0cnVlXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IG9wdGlvbmFsUHJvcHMgPSBPYmplY3Qua2V5cyhvcHRpb25hbFByb3BzR3VhcmQpO1xuICAgICAgICBvcHRpb25hbFByb3BzLmZvckVhY2goKGtleSk9PntcbiAgICAgICAgICAgIGNvbnN0IHZhbFR5cGUgPSB0eXBlb2YgcHJvcHNba2V5XTtcbiAgICAgICAgICAgIGlmIChrZXkgPT09ICdhcycpIHtcbiAgICAgICAgICAgICAgICBpZiAocHJvcHNba2V5XSAmJiB2YWxUeXBlICE9PSAnc3RyaW5nJyAmJiB2YWxUeXBlICE9PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBjcmVhdGVQcm9wRXJyb3Ioe1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQ6ICdgc3RyaW5nYCBvciBgb2JqZWN0YCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWw6IHZhbFR5cGVcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdsb2NhbGUnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHByb3BzW2tleV0gJiYgdmFsVHlwZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgY3JlYXRlUHJvcEVycm9yKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkOiAnYHN0cmluZ2AnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFsOiB2YWxUeXBlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAncmVwbGFjZScgfHwga2V5ID09PSAnc2Nyb2xsJyB8fCBrZXkgPT09ICdzaGFsbG93JyB8fCBrZXkgPT09ICdwYXNzSHJlZicgfHwga2V5ID09PSAncHJlZmV0Y2gnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHByb3BzW2tleV0gIT0gbnVsbCAmJiB2YWxUeXBlICE9PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgY3JlYXRlUHJvcEVycm9yKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkOiAnYGJvb2xlYW5gJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbDogdmFsVHlwZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIFR5cGVTY3JpcHQgdHJpY2sgZm9yIHR5cGUtZ3VhcmRpbmc6XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICAgICAgICAgICAgIGNvbnN0IF8gPSBrZXk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBUaGlzIGhvb2sgaXMgaW4gYSBjb25kaXRpb25hbCBidXQgdGhhdCBpcyBvayBiZWNhdXNlIGBwcm9jZXNzLmVudi5OT0RFX0VOVmAgbmV2ZXIgY2hhbmdlc1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgICAgICAgY29uc3QgaGFzV2FybmVkID0gX3JlYWN0LmRlZmF1bHQudXNlUmVmKGZhbHNlKTtcbiAgICAgICAgaWYgKHByb3BzLnByZWZldGNoICYmICFoYXNXYXJuZWQuY3VycmVudCkge1xuICAgICAgICAgICAgaGFzV2FybmVkLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdOZXh0LmpzIGF1dG8tcHJlZmV0Y2hlcyBhdXRvbWF0aWNhbGx5IGJhc2VkIG9uIHZpZXdwb3J0LiBUaGUgcHJlZmV0Y2ggYXR0cmlidXRlIGlzIG5vIGxvbmdlciBuZWVkZWQuIE1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3ByZWZldGNoLXRydWUtZGVwcmVjYXRlZCcpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHAgPSBwcm9wcy5wcmVmZXRjaCAhPT0gZmFsc2U7XG4gICAgY29uc3Qgcm91dGVyID0gKDAsIF9yb3V0ZXIxKS51c2VSb3V0ZXIoKTtcbiAgICBjb25zdCB7IGhyZWYgLCBhcyAgfSA9IF9yZWFjdC5kZWZhdWx0LnVzZU1lbW8oKCk9PntcbiAgICAgICAgY29uc3QgW3Jlc29sdmVkSHJlZiwgcmVzb2x2ZWRBc10gPSAoMCwgX3JvdXRlcikucmVzb2x2ZUhyZWYocm91dGVyLCBwcm9wcy5ocmVmLCB0cnVlKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGhyZWY6IHJlc29sdmVkSHJlZixcbiAgICAgICAgICAgIGFzOiBwcm9wcy5hcyA/ICgwLCBfcm91dGVyKS5yZXNvbHZlSHJlZihyb3V0ZXIsIHByb3BzLmFzKSA6IHJlc29sdmVkQXMgfHwgcmVzb2x2ZWRIcmVmXG4gICAgICAgIH07XG4gICAgfSwgW1xuICAgICAgICByb3V0ZXIsXG4gICAgICAgIHByb3BzLmhyZWYsXG4gICAgICAgIHByb3BzLmFzXG4gICAgXSk7XG4gICAgbGV0IHsgY2hpbGRyZW4gLCByZXBsYWNlICwgc2hhbGxvdyAsIHNjcm9sbCAsIGxvY2FsZSAgfSA9IHByb3BzO1xuICAgIC8vIERlcHJlY2F0ZWQuIFdhcm5pbmcgc2hvd24gYnkgcHJvcFR5cGUgY2hlY2suIElmIHRoZSBjaGlsZHJlbiBwcm92aWRlZCBpcyBhIHN0cmluZyAoPExpbms+ZXhhbXBsZTwvTGluaz4pIHdlIHdyYXAgaXQgaW4gYW4gPGE+IHRhZ1xuICAgIGlmICh0eXBlb2YgY2hpbGRyZW4gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNoaWxkcmVuID0gLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiYVwiLCBudWxsLCBjaGlsZHJlbik7XG4gICAgfVxuICAgIC8vIFRoaXMgd2lsbCByZXR1cm4gdGhlIGZpcnN0IGNoaWxkLCBpZiBtdWx0aXBsZSBhcmUgcHJvdmlkZWQgaXQgd2lsbCB0aHJvdyBhbiBlcnJvclxuICAgIGxldCBjaGlsZDtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNoaWxkID0gX3JlYWN0LmRlZmF1bHQuQ2hpbGRyZW4ub25seShjaGlsZHJlbik7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBNdWx0aXBsZSBjaGlsZHJlbiB3ZXJlIHBhc3NlZCB0byA8TGluaz4gd2l0aCBcXGBocmVmXFxgIG9mIFxcYCR7cHJvcHMuaHJlZn1cXGAgYnV0IG9ubHkgb25lIGNoaWxkIGlzIHN1cHBvcnRlZCBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9saW5rLW11bHRpcGxlLWNoaWxkcmVuYCArICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyA/IFwiIFxcbk9wZW4geW91ciBicm93c2VyJ3MgY29uc29sZSB0byB2aWV3IHRoZSBDb21wb25lbnQgc3RhY2sgdHJhY2UuXCIgOiAnJykpO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY2hpbGQgPSBfcmVhY3QuZGVmYXVsdC5DaGlsZHJlbi5vbmx5KGNoaWxkcmVuKTtcbiAgICB9XG4gICAgY29uc3QgY2hpbGRSZWYgPSBjaGlsZCAmJiB0eXBlb2YgY2hpbGQgPT09ICdvYmplY3QnICYmIGNoaWxkLnJlZjtcbiAgICBjb25zdCBbc2V0SW50ZXJzZWN0aW9uUmVmLCBpc1Zpc2libGVdID0gKDAsIF91c2VJbnRlcnNlY3Rpb24pLnVzZUludGVyc2VjdGlvbih7XG4gICAgICAgIHJvb3RNYXJnaW46ICcyMDBweCdcbiAgICB9KTtcbiAgICBjb25zdCBzZXRSZWYgPSBfcmVhY3QuZGVmYXVsdC51c2VDYWxsYmFjaygoZWwpPT57XG4gICAgICAgIHNldEludGVyc2VjdGlvblJlZihlbCk7XG4gICAgICAgIGlmIChjaGlsZFJlZikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBjaGlsZFJlZiA9PT0gJ2Z1bmN0aW9uJykgY2hpbGRSZWYoZWwpO1xuICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIGNoaWxkUmVmID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgIGNoaWxkUmVmLmN1cnJlbnQgPSBlbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgY2hpbGRSZWYsXG4gICAgICAgIHNldEludGVyc2VjdGlvblJlZlxuICAgIF0pO1xuICAgIF9yZWFjdC5kZWZhdWx0LnVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBjb25zdCBzaG91bGRQcmVmZXRjaCA9IGlzVmlzaWJsZSAmJiBwICYmICgwLCBfcm91dGVyKS5pc0xvY2FsVVJMKGhyZWYpO1xuICAgICAgICBjb25zdCBjdXJMb2NhbGUgPSB0eXBlb2YgbG9jYWxlICE9PSAndW5kZWZpbmVkJyA/IGxvY2FsZSA6IHJvdXRlciAmJiByb3V0ZXIubG9jYWxlO1xuICAgICAgICBjb25zdCBpc1ByZWZldGNoZWQgPSBwcmVmZXRjaGVkW2hyZWYgKyAnJScgKyBhcyArIChjdXJMb2NhbGUgPyAnJScgKyBjdXJMb2NhbGUgOiAnJyldO1xuICAgICAgICBpZiAoc2hvdWxkUHJlZmV0Y2ggJiYgIWlzUHJlZmV0Y2hlZCkge1xuICAgICAgICAgICAgcHJlZmV0Y2gocm91dGVyLCBocmVmLCBhcywge1xuICAgICAgICAgICAgICAgIGxvY2FsZTogY3VyTG9jYWxlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgYXMsXG4gICAgICAgIGhyZWYsXG4gICAgICAgIGlzVmlzaWJsZSxcbiAgICAgICAgbG9jYWxlLFxuICAgICAgICBwLFxuICAgICAgICByb3V0ZXJcbiAgICBdKTtcbiAgICBjb25zdCBjaGlsZFByb3BzID0ge1xuICAgICAgICByZWY6IHNldFJlZixcbiAgICAgICAgb25DbGljazogKGUpPT57XG4gICAgICAgICAgICBpZiAoY2hpbGQucHJvcHMgJiYgdHlwZW9mIGNoaWxkLnByb3BzLm9uQ2xpY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICBjaGlsZC5wcm9wcy5vbkNsaWNrKGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFlLmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICAgICAgICBsaW5rQ2xpY2tlZChlLCByb3V0ZXIsIGhyZWYsIGFzLCByZXBsYWNlLCBzaGFsbG93LCBzY3JvbGwsIGxvY2FsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGNoaWxkUHJvcHMub25Nb3VzZUVudGVyID0gKGUpPT57XG4gICAgICAgIGlmICghKDAsIF9yb3V0ZXIpLmlzTG9jYWxVUkwoaHJlZikpIHJldHVybjtcbiAgICAgICAgaWYgKGNoaWxkLnByb3BzICYmIHR5cGVvZiBjaGlsZC5wcm9wcy5vbk1vdXNlRW50ZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGNoaWxkLnByb3BzLm9uTW91c2VFbnRlcihlKTtcbiAgICAgICAgfVxuICAgICAgICBwcmVmZXRjaChyb3V0ZXIsIGhyZWYsIGFzLCB7XG4gICAgICAgICAgICBwcmlvcml0eTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIC8vIElmIGNoaWxkIGlzIGFuIDxhPiB0YWcgYW5kIGRvZXNuJ3QgaGF2ZSBhIGhyZWYgYXR0cmlidXRlLCBvciBpZiB0aGUgJ3Bhc3NIcmVmJyBwcm9wZXJ0eSBpc1xuICAgIC8vIGRlZmluZWQsIHdlIHNwZWNpZnkgdGhlIGN1cnJlbnQgJ2hyZWYnLCBzbyB0aGF0IHJlcGV0aXRpb24gaXMgbm90IG5lZWRlZCBieSB0aGUgdXNlclxuICAgIGlmIChwcm9wcy5wYXNzSHJlZiB8fCBjaGlsZC50eXBlID09PSAnYScgJiYgISgnaHJlZicgaW4gY2hpbGQucHJvcHMpKSB7XG4gICAgICAgIGNvbnN0IGN1ckxvY2FsZSA9IHR5cGVvZiBsb2NhbGUgIT09ICd1bmRlZmluZWQnID8gbG9jYWxlIDogcm91dGVyICYmIHJvdXRlci5sb2NhbGU7XG4gICAgICAgIC8vIHdlIG9ubHkgcmVuZGVyIGRvbWFpbiBsb2NhbGVzIGlmIHdlIGFyZSBjdXJyZW50bHkgb24gYSBkb21haW4gbG9jYWxlXG4gICAgICAgIC8vIHNvIHRoYXQgbG9jYWxlIGxpbmtzIGFyZSBzdGlsbCB2aXNpdGFibGUgaW4gZGV2ZWxvcG1lbnQvcHJldmlldyBlbnZzXG4gICAgICAgIGNvbnN0IGxvY2FsZURvbWFpbiA9IHJvdXRlciAmJiByb3V0ZXIuaXNMb2NhbGVEb21haW4gJiYgKDAsIF9yb3V0ZXIpLmdldERvbWFpbkxvY2FsZShhcywgY3VyTG9jYWxlLCByb3V0ZXIgJiYgcm91dGVyLmxvY2FsZXMsIHJvdXRlciAmJiByb3V0ZXIuZG9tYWluTG9jYWxlcyk7XG4gICAgICAgIGNoaWxkUHJvcHMuaHJlZiA9IGxvY2FsZURvbWFpbiB8fCAoMCwgX3JvdXRlcikuYWRkQmFzZVBhdGgoKDAsIF9yb3V0ZXIpLmFkZExvY2FsZShhcywgY3VyTG9jYWxlLCByb3V0ZXIgJiYgcm91dGVyLmRlZmF1bHRMb2NhbGUpKTtcbiAgICB9XG4gICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY2xvbmVFbGVtZW50KGNoaWxkLCBjaGlsZFByb3BzKSk7XG59XG52YXIgX2RlZmF1bHQgPSBMaW5rO1xuZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWxpbmsuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcm91dGVyIiwiX3JvdXRlcjEiLCJfdXNlSW50ZXJzZWN0aW9uIiwib2JqIiwiX19lc01vZHVsZSIsInByZWZldGNoZWQiLCJwcmVmZXRjaCIsInJvdXRlciIsImhyZWYiLCJhcyIsIm9wdGlvbnMiLCJpc0xvY2FsVVJMIiwiZXJyIiwiY3VyTG9jYWxlIiwibG9jYWxlIiwiaXNNb2RpZmllZEV2ZW50IiwiZXZlbnQiLCJ0YXJnZXQiLCJjdXJyZW50VGFyZ2V0IiwibWV0YUtleSIsImN0cmxLZXkiLCJzaGlmdEtleSIsImFsdEtleSIsIm5hdGl2ZUV2ZW50Iiwid2hpY2giLCJsaW5rQ2xpY2tlZCIsImUiLCJyZXBsYWNlIiwic2hhbGxvdyIsInNjcm9sbCIsIm5vZGVOYW1lIiwicHJldmVudERlZmF1bHQiLCJpbmRleE9mIiwiTGluayIsInByb3BzIiwiY3JlYXRlUHJvcEVycm9yIiwiYXJncyIsIkVycm9yIiwia2V5IiwiZXhwZWN0ZWQiLCJhY3R1YWwiLCJyZXF1aXJlZFByb3BzR3VhcmQiLCJyZXF1aXJlZFByb3BzIiwia2V5cyIsImZvckVhY2giLCJfIiwib3B0aW9uYWxQcm9wc0d1YXJkIiwicGFzc0hyZWYiLCJvcHRpb25hbFByb3BzIiwidmFsVHlwZSIsImhhc1dhcm5lZCIsInVzZVJlZiIsImN1cnJlbnQiLCJjb25zb2xlIiwid2FybiIsInAiLCJ1c2VSb3V0ZXIiLCJ1c2VNZW1vIiwicmVzb2x2ZUhyZWYiLCJyZXNvbHZlZEhyZWYiLCJyZXNvbHZlZEFzIiwiY2hpbGRyZW4iLCJjcmVhdGVFbGVtZW50IiwiY2hpbGQiLCJDaGlsZHJlbiIsIm9ubHkiLCJjaGlsZFJlZiIsInJlZiIsInVzZUludGVyc2VjdGlvbiIsInJvb3RNYXJnaW4iLCJzZXRJbnRlcnNlY3Rpb25SZWYiLCJpc1Zpc2libGUiLCJzZXRSZWYiLCJ1c2VDYWxsYmFjayIsImVsIiwidXNlRWZmZWN0Iiwic2hvdWxkUHJlZmV0Y2giLCJpc1ByZWZldGNoZWQiLCJjaGlsZFByb3BzIiwib25DbGljayIsImRlZmF1bHRQcmV2ZW50ZWQiLCJvbk1vdXNlRW50ZXIiLCJwcmlvcml0eSIsInR5cGUiLCJsb2NhbGVEb21haW4iLCJpc0xvY2FsZURvbWFpbiIsImdldERvbWFpbkxvY2FsZSIsImxvY2FsZXMiLCJkb21haW5Mb2NhbGVzIiwiYWRkQmFzZVBhdGgiLCJhZGRMb2NhbGUiLCJkZWZhdWx0TG9jYWxlIiwiY2xvbmVFbGVtZW50IiwiX2RlZmF1bHQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/link.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/use-intersection.js": +/*!***********************************************************!*\ + !*** ./node_modules/next/dist/client/use-intersection.js ***! + \***********************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _slicedToArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nvar _s = $RefreshSig$();\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.useIntersection = useIntersection;\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nvar _requestIdleCallback = __webpack_require__(/*! ./request-idle-callback */ \"./node_modules/next/dist/client/request-idle-callback.js\");\n\nvar hasIntersectionObserver = typeof IntersectionObserver !== 'undefined';\n\nfunction useIntersection(_ref) {\n _s();\n\n var rootMargin = _ref.rootMargin,\n disabled = _ref.disabled;\n var isDisabled = disabled || !hasIntersectionObserver;\n var unobserve = (0, _react).useRef();\n\n var _useState = (0, _react).useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n visible = _useState2[0],\n setVisible = _useState2[1];\n\n var setRef = (0, _react).useCallback(function (el) {\n if (unobserve.current) {\n unobserve.current();\n unobserve.current = undefined;\n }\n\n if (isDisabled || visible) return;\n\n if (el && el.tagName) {\n unobserve.current = observe(el, function (isVisible) {\n return isVisible && setVisible(isVisible);\n }, {\n rootMargin: rootMargin\n });\n }\n }, [isDisabled, rootMargin, visible]);\n (0, _react).useEffect(function () {\n if (!hasIntersectionObserver) {\n if (!visible) {\n var idleCallback = (0, _requestIdleCallback).requestIdleCallback(function () {\n return setVisible(true);\n });\n return function () {\n return (0, _requestIdleCallback).cancelIdleCallback(idleCallback);\n };\n }\n }\n }, [visible]);\n return [setRef, visible];\n}\n\n_s(useIntersection, \"Z6jj7qx+KE6gD9CpC9WlQTha45o=\");\n\nfunction observe(element, callback, options) {\n var _createObserver = createObserver(options),\n id = _createObserver.id,\n observer = _createObserver.observer,\n elements = _createObserver.elements;\n\n elements.set(element, callback);\n observer.observe(element);\n return function unobserve() {\n elements[\"delete\"](element);\n observer.unobserve(element); // Destroy observer when there's nothing left to watch:\n\n if (elements.size === 0) {\n observer.disconnect();\n observers[\"delete\"](id);\n }\n };\n}\n\nvar observers = new Map();\n\nfunction createObserver(options) {\n var id = options.rootMargin || '';\n var instance = observers.get(id);\n\n if (instance) {\n return instance;\n }\n\n var elements = new Map();\n var observer = new IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n var callback = elements.get(entry.target);\n var isVisible = entry.isIntersecting || entry.intersectionRatio > 0;\n\n if (callback && isVisible) {\n callback(isVisible);\n }\n });\n }, options);\n observers.set(id, instance = {\n id: id,\n observer: observer,\n elements: elements\n });\n return instance;\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC91c2UtaW50ZXJzZWN0aW9uLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7Ozs7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELHVCQUFBLEdBQTBCRSxlQUExQjs7QUFDQSxJQUFJQyxNQUFNLEdBQUdDLG1CQUFPLENBQUMsNENBQUQsQ0FBcEI7O0FBQ0EsSUFBSUMsb0JBQW9CLEdBQUdELG1CQUFPLENBQUMseUZBQUQsQ0FBbEM7O0FBQ0EsSUFBTUUsdUJBQXVCLEdBQUcsT0FBT0Msb0JBQVAsS0FBZ0MsV0FBaEU7O0FBQ0EsU0FBU0wsZUFBVCxPQUFxRDtBQUFBOztBQUFBLE1BQTFCTSxVQUEwQixRQUExQkEsVUFBMEI7QUFBQSxNQUFiQyxRQUFhLFFBQWJBLFFBQWE7QUFDakQsTUFBTUMsVUFBVSxHQUFHRCxRQUFRLElBQUksQ0FBQ0gsdUJBQWhDO0FBQ0EsTUFBTUssU0FBUyxHQUFHLENBQUMsR0FBR1IsTUFBSixFQUFZUyxNQUFaLEVBQWxCOztBQUNBLGtCQUE4QixDQUFDLEdBQUdULE1BQUosRUFBWVUsUUFBWixDQUFxQixLQUFyQixDQUE5QjtBQUFBO0FBQUEsTUFBT0MsT0FBUDtBQUFBLE1BQWdCQyxVQUFoQjs7QUFDQSxNQUFNQyxNQUFNLEdBQUcsQ0FBQyxHQUFHYixNQUFKLEVBQVljLFdBQVosQ0FBd0IsVUFBQ0MsRUFBRCxFQUFNO0FBQ3pDLFFBQUlQLFNBQVMsQ0FBQ1EsT0FBZCxFQUF1QjtBQUNuQlIsTUFBQUEsU0FBUyxDQUFDUSxPQUFWO0FBQ0FSLE1BQUFBLFNBQVMsQ0FBQ1EsT0FBVixHQUFvQkMsU0FBcEI7QUFDSDs7QUFDRCxRQUFJVixVQUFVLElBQUlJLE9BQWxCLEVBQTJCOztBQUMzQixRQUFJSSxFQUFFLElBQUlBLEVBQUUsQ0FBQ0csT0FBYixFQUFzQjtBQUNsQlYsTUFBQUEsU0FBUyxDQUFDUSxPQUFWLEdBQW9CRyxPQUFPLENBQUNKLEVBQUQsRUFBSyxVQUFDSyxTQUFEO0FBQUEsZUFBYUEsU0FBUyxJQUFJUixVQUFVLENBQUNRLFNBQUQsQ0FBcEM7QUFBQSxPQUFMLEVBQ3pCO0FBQ0VmLFFBQUFBLFVBQVUsRUFBVkE7QUFERixPQUR5QixDQUEzQjtBQUlIO0FBQ0osR0FaYyxFQVlaLENBQ0NFLFVBREQsRUFFQ0YsVUFGRCxFQUdDTSxPQUhELENBWlksQ0FBZjtBQWlCQSxHQUFDLEdBQUdYLE1BQUosRUFBWXFCLFNBQVosQ0FBc0IsWUFBSTtBQUN0QixRQUFJLENBQUNsQix1QkFBTCxFQUE4QjtBQUMxQixVQUFJLENBQUNRLE9BQUwsRUFBYztBQUNWLFlBQU1XLFlBQVksR0FBRyxDQUFDLEdBQUdwQixvQkFBSixFQUEwQnFCLG1CQUExQixDQUE4QztBQUFBLGlCQUFJWCxVQUFVLENBQUMsSUFBRCxDQUFkO0FBQUEsU0FBOUMsQ0FBckI7QUFFQSxlQUFPO0FBQUEsaUJBQUksQ0FBQyxHQUFHVixvQkFBSixFQUEwQnNCLGtCQUExQixDQUE2Q0YsWUFBN0MsQ0FBSjtBQUFBLFNBQVA7QUFFSDtBQUNKO0FBQ0osR0FURCxFQVNHLENBQ0NYLE9BREQsQ0FUSDtBQVlBLFNBQU8sQ0FDSEUsTUFERyxFQUVIRixPQUZHLENBQVA7QUFJSDs7R0FyQ1FaOztBQXNDVCxTQUFTb0IsT0FBVCxDQUFpQk0sT0FBakIsRUFBMEJDLFFBQTFCLEVBQW9DQyxPQUFwQyxFQUE2QztBQUN6Qyx3QkFBc0NDLGNBQWMsQ0FBQ0QsT0FBRCxDQUFwRDtBQUFBLE1BQVFFLEVBQVIsbUJBQVFBLEVBQVI7QUFBQSxNQUFhQyxRQUFiLG1CQUFhQSxRQUFiO0FBQUEsTUFBd0JDLFFBQXhCLG1CQUF3QkEsUUFBeEI7O0FBQ0FBLEVBQUFBLFFBQVEsQ0FBQ0MsR0FBVCxDQUFhUCxPQUFiLEVBQXNCQyxRQUF0QjtBQUNBSSxFQUFBQSxRQUFRLENBQUNYLE9BQVQsQ0FBaUJNLE9BQWpCO0FBQ0EsU0FBTyxTQUFTakIsU0FBVCxHQUFxQjtBQUN4QnVCLElBQUFBLFFBQVEsVUFBUixDQUFnQk4sT0FBaEI7QUFDQUssSUFBQUEsUUFBUSxDQUFDdEIsU0FBVCxDQUFtQmlCLE9BQW5CLEVBRndCLENBR3hCOztBQUNBLFFBQUlNLFFBQVEsQ0FBQ0UsSUFBVCxLQUFrQixDQUF0QixFQUF5QjtBQUNyQkgsTUFBQUEsUUFBUSxDQUFDSSxVQUFUO0FBQ0FDLE1BQUFBLFNBQVMsVUFBVCxDQUFpQk4sRUFBakI7QUFDSDtBQUNKLEdBUkQ7QUFTSDs7QUFDRCxJQUFNTSxTQUFTLEdBQUcsSUFBSUMsR0FBSixFQUFsQjs7QUFDQSxTQUFTUixjQUFULENBQXdCRCxPQUF4QixFQUFpQztBQUM3QixNQUFNRSxFQUFFLEdBQUdGLE9BQU8sQ0FBQ3RCLFVBQVIsSUFBc0IsRUFBakM7QUFDQSxNQUFJZ0MsUUFBUSxHQUFHRixTQUFTLENBQUNHLEdBQVYsQ0FBY1QsRUFBZCxDQUFmOztBQUNBLE1BQUlRLFFBQUosRUFBYztBQUNWLFdBQU9BLFFBQVA7QUFDSDs7QUFDRCxNQUFNTixRQUFRLEdBQUcsSUFBSUssR0FBSixFQUFqQjtBQUNBLE1BQU1OLFFBQVEsR0FBRyxJQUFJMUIsb0JBQUosQ0FBeUIsVUFBQ21DLE9BQUQsRUFBVztBQUNqREEsSUFBQUEsT0FBTyxDQUFDQyxPQUFSLENBQWdCLFVBQUNDLEtBQUQsRUFBUztBQUNyQixVQUFNZixRQUFRLEdBQUdLLFFBQVEsQ0FBQ08sR0FBVCxDQUFhRyxLQUFLLENBQUNDLE1BQW5CLENBQWpCO0FBQ0EsVUFBTXRCLFNBQVMsR0FBR3FCLEtBQUssQ0FBQ0UsY0FBTixJQUF3QkYsS0FBSyxDQUFDRyxpQkFBTixHQUEwQixDQUFwRTs7QUFDQSxVQUFJbEIsUUFBUSxJQUFJTixTQUFoQixFQUEyQjtBQUN2Qk0sUUFBQUEsUUFBUSxDQUFDTixTQUFELENBQVI7QUFDSDtBQUNKLEtBTkQ7QUFPSCxHQVJnQixFQVFkTyxPQVJjLENBQWpCO0FBU0FRLEVBQUFBLFNBQVMsQ0FBQ0gsR0FBVixDQUFjSCxFQUFkLEVBQWtCUSxRQUFRLEdBQUc7QUFDekJSLElBQUFBLEVBQUUsRUFBRkEsRUFEeUI7QUFFekJDLElBQUFBLFFBQVEsRUFBUkEsUUFGeUI7QUFHekJDLElBQUFBLFFBQVEsRUFBUkE7QUFIeUIsR0FBN0I7QUFLQSxTQUFPTSxRQUFQO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvdXNlLWludGVyc2VjdGlvbi5qcz9mZDk0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy51c2VJbnRlcnNlY3Rpb24gPSB1c2VJbnRlcnNlY3Rpb247XG52YXIgX3JlYWN0ID0gcmVxdWlyZShcInJlYWN0XCIpO1xudmFyIF9yZXF1ZXN0SWRsZUNhbGxiYWNrID0gcmVxdWlyZShcIi4vcmVxdWVzdC1pZGxlLWNhbGxiYWNrXCIpO1xuY29uc3QgaGFzSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPSB0eXBlb2YgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgIT09ICd1bmRlZmluZWQnO1xuZnVuY3Rpb24gdXNlSW50ZXJzZWN0aW9uKHsgcm9vdE1hcmdpbiAsIGRpc2FibGVkICB9KSB7XG4gICAgY29uc3QgaXNEaXNhYmxlZCA9IGRpc2FibGVkIHx8ICFoYXNJbnRlcnNlY3Rpb25PYnNlcnZlcjtcbiAgICBjb25zdCB1bm9ic2VydmUgPSAoMCwgX3JlYWN0KS51c2VSZWYoKTtcbiAgICBjb25zdCBbdmlzaWJsZSwgc2V0VmlzaWJsZV0gPSAoMCwgX3JlYWN0KS51c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3Qgc2V0UmVmID0gKDAsIF9yZWFjdCkudXNlQ2FsbGJhY2soKGVsKT0+e1xuICAgICAgICBpZiAodW5vYnNlcnZlLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIHVub2JzZXJ2ZS5jdXJyZW50KCk7XG4gICAgICAgICAgICB1bm9ic2VydmUuY3VycmVudCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNEaXNhYmxlZCB8fCB2aXNpYmxlKSByZXR1cm47XG4gICAgICAgIGlmIChlbCAmJiBlbC50YWdOYW1lKSB7XG4gICAgICAgICAgICB1bm9ic2VydmUuY3VycmVudCA9IG9ic2VydmUoZWwsIChpc1Zpc2libGUpPT5pc1Zpc2libGUgJiYgc2V0VmlzaWJsZShpc1Zpc2libGUpXG4gICAgICAgICAgICAsIHtcbiAgICAgICAgICAgICAgICByb290TWFyZ2luXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgaXNEaXNhYmxlZCxcbiAgICAgICAgcm9vdE1hcmdpbixcbiAgICAgICAgdmlzaWJsZVxuICAgIF0pO1xuICAgICgwLCBfcmVhY3QpLnVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBpZiAoIWhhc0ludGVyc2VjdGlvbk9ic2VydmVyKSB7XG4gICAgICAgICAgICBpZiAoIXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpZGxlQ2FsbGJhY2sgPSAoMCwgX3JlcXVlc3RJZGxlQ2FsbGJhY2spLnJlcXVlc3RJZGxlQ2FsbGJhY2soKCk9PnNldFZpc2libGUodHJ1ZSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHJldHVybiAoKT0+KDAsIF9yZXF1ZXN0SWRsZUNhbGxiYWNrKS5jYW5jZWxJZGxlQ2FsbGJhY2soaWRsZUNhbGxiYWNrKVxuICAgICAgICAgICAgICAgIDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgdmlzaWJsZVxuICAgIF0pO1xuICAgIHJldHVybiBbXG4gICAgICAgIHNldFJlZixcbiAgICAgICAgdmlzaWJsZVxuICAgIF07XG59XG5mdW5jdGlvbiBvYnNlcnZlKGVsZW1lbnQsIGNhbGxiYWNrLCBvcHRpb25zKSB7XG4gICAgY29uc3QgeyBpZCAsIG9ic2VydmVyICwgZWxlbWVudHMgIH0gPSBjcmVhdGVPYnNlcnZlcihvcHRpb25zKTtcbiAgICBlbGVtZW50cy5zZXQoZWxlbWVudCwgY2FsbGJhY2spO1xuICAgIG9ic2VydmVyLm9ic2VydmUoZWxlbWVudCk7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIHVub2JzZXJ2ZSgpIHtcbiAgICAgICAgZWxlbWVudHMuZGVsZXRlKGVsZW1lbnQpO1xuICAgICAgICBvYnNlcnZlci51bm9ic2VydmUoZWxlbWVudCk7XG4gICAgICAgIC8vIERlc3Ryb3kgb2JzZXJ2ZXIgd2hlbiB0aGVyZSdzIG5vdGhpbmcgbGVmdCB0byB3YXRjaDpcbiAgICAgICAgaWYgKGVsZW1lbnRzLnNpemUgPT09IDApIHtcbiAgICAgICAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICAgIG9ic2VydmVycy5kZWxldGUoaWQpO1xuICAgICAgICB9XG4gICAgfTtcbn1cbmNvbnN0IG9ic2VydmVycyA9IG5ldyBNYXAoKTtcbmZ1bmN0aW9uIGNyZWF0ZU9ic2VydmVyKG9wdGlvbnMpIHtcbiAgICBjb25zdCBpZCA9IG9wdGlvbnMucm9vdE1hcmdpbiB8fCAnJztcbiAgICBsZXQgaW5zdGFuY2UgPSBvYnNlcnZlcnMuZ2V0KGlkKTtcbiAgICBpZiAoaW5zdGFuY2UpIHtcbiAgICAgICAgcmV0dXJuIGluc3RhbmNlO1xuICAgIH1cbiAgICBjb25zdCBlbGVtZW50cyA9IG5ldyBNYXAoKTtcbiAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZW50cmllcyk9PntcbiAgICAgICAgZW50cmllcy5mb3JFYWNoKChlbnRyeSk9PntcbiAgICAgICAgICAgIGNvbnN0IGNhbGxiYWNrID0gZWxlbWVudHMuZ2V0KGVudHJ5LnRhcmdldCk7XG4gICAgICAgICAgICBjb25zdCBpc1Zpc2libGUgPSBlbnRyeS5pc0ludGVyc2VjdGluZyB8fCBlbnRyeS5pbnRlcnNlY3Rpb25SYXRpbyA+IDA7XG4gICAgICAgICAgICBpZiAoY2FsbGJhY2sgJiYgaXNWaXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2soaXNWaXNpYmxlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSwgb3B0aW9ucyk7XG4gICAgb2JzZXJ2ZXJzLnNldChpZCwgaW5zdGFuY2UgPSB7XG4gICAgICAgIGlkLFxuICAgICAgICBvYnNlcnZlcixcbiAgICAgICAgZWxlbWVudHNcbiAgICB9KTtcbiAgICByZXR1cm4gaW5zdGFuY2U7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVzZS1pbnRlcnNlY3Rpb24uanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwidXNlSW50ZXJzZWN0aW9uIiwiX3JlYWN0IiwicmVxdWlyZSIsIl9yZXF1ZXN0SWRsZUNhbGxiYWNrIiwiaGFzSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiLCJJbnRlcnNlY3Rpb25PYnNlcnZlciIsInJvb3RNYXJnaW4iLCJkaXNhYmxlZCIsImlzRGlzYWJsZWQiLCJ1bm9ic2VydmUiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInZpc2libGUiLCJzZXRWaXNpYmxlIiwic2V0UmVmIiwidXNlQ2FsbGJhY2siLCJlbCIsImN1cnJlbnQiLCJ1bmRlZmluZWQiLCJ0YWdOYW1lIiwib2JzZXJ2ZSIsImlzVmlzaWJsZSIsInVzZUVmZmVjdCIsImlkbGVDYWxsYmFjayIsInJlcXVlc3RJZGxlQ2FsbGJhY2siLCJjYW5jZWxJZGxlQ2FsbGJhY2siLCJlbGVtZW50IiwiY2FsbGJhY2siLCJvcHRpb25zIiwiY3JlYXRlT2JzZXJ2ZXIiLCJpZCIsIm9ic2VydmVyIiwiZWxlbWVudHMiLCJzZXQiLCJzaXplIiwiZGlzY29ubmVjdCIsIm9ic2VydmVycyIsIk1hcCIsImluc3RhbmNlIiwiZ2V0IiwiZW50cmllcyIsImZvckVhY2giLCJlbnRyeSIsInRhcmdldCIsImlzSW50ZXJzZWN0aW5nIiwiaW50ZXJzZWN0aW9uUmF0aW8iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/use-intersection.js\n"); + +/***/ }), + +/***/ "./src/common/getSiblings.js": +/*!***********************************!*\ + !*** ./src/common/getSiblings.js ***! + \***********************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar getSiblings = function getSiblings(e) {\n var siblings = [];\n\n if (!e.parentNode) {\n return siblings;\n }\n\n var sibling = e.parentNode.firstChild;\n\n while (sibling) {\n if (sibling.nodeType === 1 && sibling !== e) {\n siblings.push(sibling);\n }\n\n sibling = sibling.nextSibling;\n }\n\n return siblings;\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (getSiblings);\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL2dldFNpYmxpbmdzLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQUEsSUFBTUEsV0FBVyxHQUFHLFNBQWRBLFdBQWMsQ0FBQ0MsQ0FBRCxFQUFPO0FBQ3pCLE1BQUlDLFFBQVEsR0FBRyxFQUFmOztBQUNBLE1BQUksQ0FBQ0QsQ0FBQyxDQUFDRSxVQUFQLEVBQW1CO0FBQ2pCLFdBQU9ELFFBQVA7QUFDRDs7QUFDRCxNQUFJRSxPQUFPLEdBQUdILENBQUMsQ0FBQ0UsVUFBRixDQUFhRSxVQUEzQjs7QUFDQSxTQUFPRCxPQUFQLEVBQWdCO0FBQ2QsUUFBSUEsT0FBTyxDQUFDRSxRQUFSLEtBQXFCLENBQXJCLElBQTBCRixPQUFPLEtBQUtILENBQTFDLEVBQTZDO0FBQzNDQyxNQUFBQSxRQUFRLENBQUNLLElBQVQsQ0FBY0gsT0FBZDtBQUNEOztBQUNEQSxJQUFBQSxPQUFPLEdBQUdBLE9BQU8sQ0FBQ0ksV0FBbEI7QUFDRDs7QUFDRCxTQUFPTixRQUFQO0FBQ0QsQ0FiRDs7QUFlQSwrREFBZUYsV0FBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tbW9uL2dldFNpYmxpbmdzLmpzPzhlNjUiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZ2V0U2libGluZ3MgPSAoZSkgPT4ge1xyXG4gIGxldCBzaWJsaW5ncyA9IFtdO1xyXG4gIGlmICghZS5wYXJlbnROb2RlKSB7XHJcbiAgICByZXR1cm4gc2libGluZ3M7XHJcbiAgfVxyXG4gIGxldCBzaWJsaW5nID0gZS5wYXJlbnROb2RlLmZpcnN0Q2hpbGQ7XHJcbiAgd2hpbGUgKHNpYmxpbmcpIHtcclxuICAgIGlmIChzaWJsaW5nLm5vZGVUeXBlID09PSAxICYmIHNpYmxpbmcgIT09IGUpIHtcclxuICAgICAgc2libGluZ3MucHVzaChzaWJsaW5nKTtcclxuICAgIH1cclxuICAgIHNpYmxpbmcgPSBzaWJsaW5nLm5leHRTaWJsaW5nO1xyXG4gIH1cclxuICByZXR1cm4gc2libGluZ3M7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBnZXRTaWJsaW5ncztcclxuIl0sIm5hbWVzIjpbImdldFNpYmxpbmdzIiwiZSIsInNpYmxpbmdzIiwicGFyZW50Tm9kZSIsInNpYmxpbmciLCJmaXJzdENoaWxkIiwibm9kZVR5cGUiLCJwdXNoIiwibmV4dFNpYmxpbmciXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/common/getSiblings.js\n"); + +/***/ }), + +/***/ "./src/common/navbar.js": +/*!******************************!*\ + !*** ./src/common/navbar.js ***! + \******************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"handleDropdown\": function() { return /* binding */ handleDropdown; },\n/* harmony export */ \"handleMobileDropdown\": function() { return /* binding */ handleMobileDropdown; }\n/* harmony export */ });\n/* harmony import */ var _getSiblings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getSiblings */ \"./src/common/getSiblings.js\");\n/* module decorator */ module = __webpack_require__.hmd(module);\n\nvar handleDropdown = function handleDropdown(e) {\n (0,_getSiblings__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(e.target.parentElement).filter(function (item) {\n return item.classList.contains(\"show\");\n }).map(function (item) {\n item.classList.remove(\"show\");\n\n if (item.childNodes[0]) {\n item.childNodes[0].setAttribute(\"aria-expanded\", false);\n }\n\n if (item.childNodes[1]) {\n item.childNodes[1].classList.remove(\"show\");\n }\n });\n e.target.parentElement.classList.toggle(\"show\");\n e.target.setAttribute(\"aria-expanded\", true);\n e.target.parentElement.childNodes[1].classList.toggle(\"show\");\n};\nvar handleMobileDropdown = function handleMobileDropdown(e) {\n document.getElementById(\"navbarSupportedContent\").classList.toggle(\"show-with-trans\");\n};\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL25hdmJhci5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7QUFFTyxJQUFNQyxjQUFjLEdBQUcsU0FBakJBLGNBQWlCLENBQUNDLENBQUQsRUFBTztBQUNuQ0YsRUFBQUEsd0RBQVcsQ0FBQ0UsQ0FBQyxDQUFDQyxNQUFGLENBQVNDLGFBQVYsQ0FBWCxDQUNHQyxNQURILENBQ1UsVUFBQ0MsSUFBRDtBQUFBLFdBQVVBLElBQUksQ0FBQ0MsU0FBTCxDQUFlQyxRQUFmLENBQXdCLE1BQXhCLENBQVY7QUFBQSxHQURWLEVBRUdDLEdBRkgsQ0FFTyxVQUFDSCxJQUFELEVBQVU7QUFDYkEsSUFBQUEsSUFBSSxDQUFDQyxTQUFMLENBQWVHLE1BQWYsQ0FBc0IsTUFBdEI7O0FBQ0EsUUFBSUosSUFBSSxDQUFDSyxVQUFMLENBQWdCLENBQWhCLENBQUosRUFBd0I7QUFDdEJMLE1BQUFBLElBQUksQ0FBQ0ssVUFBTCxDQUFnQixDQUFoQixFQUFtQkMsWUFBbkIsQ0FBZ0MsZUFBaEMsRUFBaUQsS0FBakQ7QUFDRDs7QUFDRCxRQUFJTixJQUFJLENBQUNLLFVBQUwsQ0FBZ0IsQ0FBaEIsQ0FBSixFQUF3QjtBQUN0QkwsTUFBQUEsSUFBSSxDQUFDSyxVQUFMLENBQWdCLENBQWhCLEVBQW1CSixTQUFuQixDQUE2QkcsTUFBN0IsQ0FBb0MsTUFBcEM7QUFDRDtBQUNGLEdBVkg7QUFXQVIsRUFBQUEsQ0FBQyxDQUFDQyxNQUFGLENBQVNDLGFBQVQsQ0FBdUJHLFNBQXZCLENBQWlDTSxNQUFqQyxDQUF3QyxNQUF4QztBQUNBWCxFQUFBQSxDQUFDLENBQUNDLE1BQUYsQ0FBU1MsWUFBVCxDQUFzQixlQUF0QixFQUF1QyxJQUF2QztBQUNBVixFQUFBQSxDQUFDLENBQUNDLE1BQUYsQ0FBU0MsYUFBVCxDQUF1Qk8sVUFBdkIsQ0FBa0MsQ0FBbEMsRUFBcUNKLFNBQXJDLENBQStDTSxNQUEvQyxDQUFzRCxNQUF0RDtBQUNELENBZk07QUFpQkEsSUFBTUMsb0JBQW9CLEdBQUcsU0FBdkJBLG9CQUF1QixDQUFDWixDQUFELEVBQU87QUFDekNhLEVBQUFBLFFBQVEsQ0FDTEMsY0FESCxDQUNrQix3QkFEbEIsRUFFR1QsU0FGSCxDQUVhTSxNQUZiLENBRW9CLGlCQUZwQjtBQUdELENBSk0iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbW1vbi9uYXZiYXIuanM/MWU3NiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0U2libGluZ3MgZnJvbSAnLi9nZXRTaWJsaW5ncydcclxuXHJcbmV4cG9ydCBjb25zdCBoYW5kbGVEcm9wZG93biA9IChlKSA9PiB7XHJcbiAgZ2V0U2libGluZ3MoZS50YXJnZXQucGFyZW50RWxlbWVudClcclxuICAgIC5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uY2xhc3NMaXN0LmNvbnRhaW5zKFwic2hvd1wiKSlcclxuICAgIC5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgaXRlbS5jbGFzc0xpc3QucmVtb3ZlKFwic2hvd1wiKTtcclxuICAgICAgaWYgKGl0ZW0uY2hpbGROb2Rlc1swXSkge1xyXG4gICAgICAgIGl0ZW0uY2hpbGROb2Rlc1swXS5zZXRBdHRyaWJ1dGUoXCJhcmlhLWV4cGFuZGVkXCIsIGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaXRlbS5jaGlsZE5vZGVzWzFdKSB7XHJcbiAgICAgICAgaXRlbS5jaGlsZE5vZGVzWzFdLmNsYXNzTGlzdC5yZW1vdmUoXCJzaG93XCIpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICBlLnRhcmdldC5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoXCJzaG93XCIpO1xyXG4gIGUudGFyZ2V0LnNldEF0dHJpYnV0ZShcImFyaWEtZXhwYW5kZWRcIiwgdHJ1ZSk7XHJcbiAgZS50YXJnZXQucGFyZW50RWxlbWVudC5jaGlsZE5vZGVzWzFdLmNsYXNzTGlzdC50b2dnbGUoXCJzaG93XCIpO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGhhbmRsZU1vYmlsZURyb3Bkb3duID0gKGUpID0+IHtcclxuICBkb2N1bWVudFxyXG4gICAgLmdldEVsZW1lbnRCeUlkKFwibmF2YmFyU3VwcG9ydGVkQ29udGVudFwiKVxyXG4gICAgLmNsYXNzTGlzdC50b2dnbGUoXCJzaG93LXdpdGgtdHJhbnNcIik7XHJcbn07Il0sIm5hbWVzIjpbImdldFNpYmxpbmdzIiwiaGFuZGxlRHJvcGRvd24iLCJlIiwidGFyZ2V0IiwicGFyZW50RWxlbWVudCIsImZpbHRlciIsIml0ZW0iLCJjbGFzc0xpc3QiLCJjb250YWlucyIsIm1hcCIsInJlbW92ZSIsImNoaWxkTm9kZXMiLCJzZXRBdHRyaWJ1dGUiLCJ0b2dnbGUiLCJoYW5kbGVNb2JpbGVEcm9wZG93biIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/common/navbar.js\n"); + +/***/ }), + +/***/ "./src/components/Blog-details/blog-details.jsx": +/*!******************************************************!*\ + !*** ./src/components/Blog-details/blog-details.jsx ***! + \******************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node_modules/@babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var formik__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! formik */ \"./node_modules/formik/dist/formik.esm.js\");\n/* harmony import */ var react_scroll__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-scroll */ \"./node_modules/react-scroll/modules/index.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__);\n/* module decorator */ module = __webpack_require__.hmd(module);\n\n\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Blog-details\\\\blog-details.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nvar BlogDetails = function BlogDetails(_ref) {\n _s();\n\n var theme = _ref.theme;\n var messageRef = react__WEBPACK_IMPORTED_MODULE_2___default().useRef(null);\n\n function validateEmail(value) {\n var error;\n\n if (!value) {\n error = \"Required\";\n } else if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i.test(value)) {\n error = \"Invalid email address\";\n }\n\n return error;\n }\n\n var sendMessage = function sendMessage(ms) {\n return new Promise(function (r) {\n return setTimeout(r, ms);\n });\n };\n\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"section\", {\n className: \"blog-pg single section-padding pt-0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"col-lg-11\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"post\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"img\", {\n src: \"/img/blog/single.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"content pt-60\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"col-lg-10\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"h4\", {\n className: \"extra-title\",\n children: \"Priorities that will pop up in any particular month.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"spacial\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"p\", {\n children: \"Never ever think of giving up. Winners never quit and quitters never win. Take all negative words out of your mental dictionary and focus on the solutions with utmost conviction and patience. The battle is never lost until you\\u2019ve abandon your vision.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"p\", {\n children: \"the main component of a healthy environment for self esteem is that it needs be nurturing. The main compont of a healthy environment for self esteem is that it needs be nurturing. The main component of a healthy env for self esteem The main compont be nurturing It should provide unconditional warmth. The main component of a healthy env for self esteem The main compont be nurturing It should provide unconditional\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"h6\", {\n children: \"- We all intend to plan ahead.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"p\", {\n children: \"We all intend to plan ahead, but too often let the day-to-day minutia get in the way of making a calendar for the year. Sure, you can\\u2019t know every detail to anticipate. Heck, you can\\u2019t know half the priorities that will pop up in any particular month. But you can plan for big picture seasonality, busy-times, and events.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"ul\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"span\", {\n children: \"01\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 27\n }, _this), \" Integer in volutpat libero.\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"span\", {\n children: \"02\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 27\n }, _this), \" Vivamus maximus ultricies pulvinar.\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"span\", {\n children: \"03\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 27\n }, _this), \" priorities that will pop up in any particular month.\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"span\", {\n children: \"04\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 27\n }, _this), \" We all intend to plan ahead.\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"span\", {\n children: \"05\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 27\n }, _this), \" The main component of a healthy env for self esteem.\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 82,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"quotes text-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"p\", {\n children: \"Never ever think of giving up. Winners never quit and quitters never win. Take all negative words out of your mental dictionary and focus on the solutions with utmost conviction and patience. The battle is never lost until you\\u2019ve abandon your vision.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"mb-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"img\", {\n src: \"/img/blog/2.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 100,\n columnNumber: 29\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 99,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 98,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"mb-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"img\", {\n src: \"/img/blog/3.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 105,\n columnNumber: 29\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 104,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 103,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"p\", {\n children: \"We all intend to plan ahead, but too often let the day-to-day minutia get in the way of making a calendar for the year. Sure, you can\\u2019t know every detail to anticipate. Heck, you can\\u2019t know half the priorities that will pop up in any particular month. But you can plan for big picture seasonality, busy-times, and events.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"share-info\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"social\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"i\", {\n className: \"fab fa-facebook-f\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 121,\n columnNumber: 29\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 27\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"i\", {\n className: \"fab fa-twitter\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 29\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 123,\n columnNumber: 27\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"i\", {\n className: \"fab fa-behance\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 29\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 27\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"tags\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: \"Web\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 27\n }, _this), \",\", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: \"Themeforest\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 48\n }, _this), \",\", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: \"ThemesCamp\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 27\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 23\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"author\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"author-img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"img\", {\n src: \"/img/blog/01.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 137,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"info\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"h6\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"span\", {\n children: \"author :\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 142,\n columnNumber: 27\n }, _this), \" Jorden Griffin\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 141,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"p\", {\n children: \"the main component of a healthy environment for self esteem is that it needs be nurturing. The main compont of a healthy environment.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 144,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"social\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"i\", {\n className: \"fab fa-facebook-f\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 151,\n columnNumber: 29\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 150,\n columnNumber: 27\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"i\", {\n className: \"fab fa-twitter\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 29\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 27\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"i\", {\n className: \"fab fa-behance\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 29\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 27\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 149,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 140,\n columnNumber: 23\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"pagination\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"span\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: \"Prev Post\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"span\", {\n className: \"icon\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_3___default()), {\n href: \"/blog/blog-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"a\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"i\", {\n className: \"fas fa-th-large\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 172,\n columnNumber: 21\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 171,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"span\", {\n className: \"text-right\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: \"Next Post\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"comments-area\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"h5\", {\n children: \"Comments :\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"comment-img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"img\", {\n src: \"/img/blog/01.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 21\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"info\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"h6\", {\n children: [\"Jorden Griffin - \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"span\", {\n children: \" 6 Aug 2022\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 40\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"span\", {\n className: \"replay\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(react_scroll__WEBPACK_IMPORTED_MODULE_5__.Link, {\n to: \"comment-form\",\n spy: true,\n smooth: true,\n offset: -150,\n duration: 500,\n children: [\"Replay \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"i\", {\n className: \"fas fa-reply\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 32\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"p\", {\n children: \"the main component of a healthy environment for self esteem is that it needs be nurturing. The main compont of a healthy environment.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"item relped\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"comment-img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"img\", {\n src: \"/img/blog/01.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 21\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"info\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"h6\", {\n children: [\"Jorden Griffin - \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"span\", {\n children: \" 6 Aug 2022\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 40\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"span\", {\n className: \"replay\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(react_scroll__WEBPACK_IMPORTED_MODULE_5__.Link, {\n to: \"comment-form\",\n spy: true,\n smooth: true,\n offset: -150,\n duration: 500,\n children: [\"Replay \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"i\", {\n className: \"fas fa-reply\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 32\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"p\", {\n children: \"the main component of a healthy environment for self esteem is that it needs be nurturing. The main compont of a healthy environment.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"comment-img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"img\", {\n src: \"/img/blog/01.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 21\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"info\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"h6\", {\n children: [\"Jorden Griffin - \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"span\", {\n children: \" 6 Aug 2022\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 242,\n columnNumber: 40\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 241,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"span\", {\n className: \"replay\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(react_scroll__WEBPACK_IMPORTED_MODULE_5__.Link, {\n to: \"comment-form\",\n spy: true,\n smooth: true,\n offset: -150,\n duration: 500,\n children: [\"Replay \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"i\", {\n className: \"fas fa-reply\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 32\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 244,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"p\", {\n children: \"the main component of a healthy environment for self esteem is that it needs be nurturing. The main compont of a healthy environment.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 255,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"comment-form\",\n id: \"comment-form\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"h5\", {\n children: \"Add Comment :\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 265,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"form\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(formik__WEBPACK_IMPORTED_MODULE_4__.Formik, {\n initialValues: {\n name: \"\",\n email: \"\",\n comment: \"\"\n },\n onSubmit: /*#__PURE__*/function () {\n var _ref2 = (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee(values) {\n return C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return sendMessage(500);\n\n case 2:\n alert(JSON.stringify(values, null, 2)); // Reset the values\n\n values.name = \"\";\n values.email = \"\";\n values.comment = \"\";\n\n case 6:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function (_x) {\n return _ref2.apply(this, arguments);\n };\n }(),\n children: function children(_ref3) {\n var errors = _ref3.errors,\n touched = _ref3.touched;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(formik__WEBPACK_IMPORTED_MODULE_4__.Form, {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"col-12\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"form-group\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(formik__WEBPACK_IMPORTED_MODULE_4__.Field, {\n as: \"textarea\",\n placeholder: \"Your Comment\",\n name: \"comment\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 287,\n columnNumber: 31\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 286,\n columnNumber: 29\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 285,\n columnNumber: 27\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"form-group\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(formik__WEBPACK_IMPORTED_MODULE_4__.Field, {\n type: \"text\",\n placeholder: \"Your Name\",\n name: \"name\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 296,\n columnNumber: 31\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 295,\n columnNumber: 29\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 294,\n columnNumber: 27\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"form-group\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(formik__WEBPACK_IMPORTED_MODULE_4__.Field, {\n type: \"email\",\n validate: validateEmail,\n placeholder: \"Your Email\",\n name: \"email\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 305,\n columnNumber: 31\n }, _this), errors.email && touched.email && /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n children: errors.email\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 312,\n columnNumber: 33\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 304,\n columnNumber: 29\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 303,\n columnNumber: 27\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"col-12\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"form-group text-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"button\", {\n type: \"submit\",\n className: \"nb butn \".concat(theme ? theme === \"light\" ? \"dark\" : \"\" : \"light\", \" curve full-width\"),\n children: \"Comment\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 318,\n columnNumber: 31\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 317,\n columnNumber: 29\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 316,\n columnNumber: 27\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 284,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 283,\n columnNumber: 23\n }, _this);\n }\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 266,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 264,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 5\n }, _this);\n};\n\n_s(BlogDetails, \"08wNPsqzPEHJlhuELMqsTELuLqk=\");\n\n_c = BlogDetails;\n/* harmony default export */ __webpack_exports__[\"default\"] = (BlogDetails);\n\nvar _c;\n\n$RefreshReg$(_c, \"BlogDetails\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9CbG9nLWRldGFpbHMvYmxvZy1kZXRhaWxzLmpzeC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFFQSxJQUFNTSxXQUFXLEdBQUcsU0FBZEEsV0FBYyxPQUFlO0FBQUE7O0FBQUEsTUFBWkMsS0FBWSxRQUFaQSxLQUFZO0FBQ2pDLE1BQU1DLFVBQVUsR0FBR1IsbURBQUEsQ0FBYSxJQUFiLENBQW5COztBQUNBLFdBQVNVLGFBQVQsQ0FBdUJDLEtBQXZCLEVBQThCO0FBQzVCLFFBQUlDLEtBQUo7O0FBQ0EsUUFBSSxDQUFDRCxLQUFMLEVBQVk7QUFDVkMsTUFBQUEsS0FBSyxHQUFHLFVBQVI7QUFDRCxLQUZELE1BRU8sSUFBSSxDQUFDLDRDQUE0Q0MsSUFBNUMsQ0FBaURGLEtBQWpELENBQUwsRUFBOEQ7QUFDbkVDLE1BQUFBLEtBQUssR0FBRyx1QkFBUjtBQUNEOztBQUNELFdBQU9BLEtBQVA7QUFDRDs7QUFDRCxNQUFNRSxXQUFXLEdBQUcsU0FBZEEsV0FBYyxDQUFDQyxFQUFEO0FBQUEsV0FBUSxJQUFJQyxPQUFKLENBQVksVUFBQ0MsQ0FBRDtBQUFBLGFBQU9DLFVBQVUsQ0FBQ0QsQ0FBRCxFQUFJRixFQUFKLENBQWpCO0FBQUEsS0FBWixDQUFSO0FBQUEsR0FBcEI7O0FBRUEsc0JBQ0U7QUFBUyxhQUFTLEVBQUMscUNBQW5CO0FBQUEsMkJBQ0U7QUFBSyxlQUFTLEVBQUMsV0FBZjtBQUFBLDZCQUNFO0FBQUssaUJBQVMsRUFBQyw0QkFBZjtBQUFBLCtCQUNFO0FBQUssbUJBQVMsRUFBQyxXQUFmO0FBQUEsaUNBQ0U7QUFBSyxxQkFBUyxFQUFDLE1BQWY7QUFBQSxvQ0FDRTtBQUFLLHVCQUFTLEVBQUMsS0FBZjtBQUFBLHFDQUNFO0FBQUssbUJBQUcsRUFBQyxzQkFBVDtBQUFnQyxtQkFBRyxFQUFDO0FBQXBDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtB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QUE7QUFBQTtBQUFBO0FBQUEsaUNBbkJGLGVBZ0NFO0FBQUssbUNBQVMsRUFBQyxRQUFmO0FBQUEsaURBQ0U7QUFBSyxxQ0FBUyxFQUFDLHdCQUFmO0FBQUEsbURBQ0U7QUFDRSxrQ0FBSSxFQUFDLFFBRFA7QUFFRSx1Q0FBUyxvQkFDUGIsS0FBSyxHQUNEQSxLQUFLLEtBQUssT0FBVixHQUNFLE1BREYsR0FFRSxFQUhELEdBSUQsT0FMRyxzQkFGWDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGlDQWhDRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLDZCQUREO0FBQUE7QUFmSDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFGRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBL09GO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsV0FERjtBQW9VRCxDQWpWRDs7R0FBTUQ7O0tBQUFBO0FBbVZOLCtEQUFlQSxXQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL0Jsb2ctZGV0YWlscy9ibG9nLWRldGFpbHMuanN4PzIxY2YiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcclxuaW1wb3J0IHsgRm9ybWlrLCBGb3JtLCBGaWVsZCB9IGZyb20gXCJmb3JtaWtcIjtcclxuaW1wb3J0IHsgTGluayBhcyBTY3JvbGxMaW5rIH0gZnJvbSBcInJlYWN0LXNjcm9sbFwiO1xyXG5cclxuY29uc3QgQmxvZ0RldGFpbHMgPSAoeyB0aGVtZSB9KSA9PiB7XHJcbiAgY29uc3QgbWVzc2FnZVJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcclxuICBmdW5jdGlvbiB2YWxpZGF0ZUVtYWlsKHZhbHVlKSB7XHJcbiAgICBsZXQgZXJyb3I7XHJcbiAgICBpZiAoIXZhbHVlKSB7XHJcbiAgICAgIGVycm9yID0gXCJSZXF1aXJlZFwiO1xyXG4gICAgfSBlbHNlIGlmICghL15bQS1aMC05Ll8lKy1dK0BbQS1aMC05Li1dK1xcLltBLVpdezIsNH0kL2kudGVzdCh2YWx1ZSkpIHtcclxuICAgICAgZXJyb3IgPSBcIkludmFsaWQgZW1haWwgYWRkcmVzc1wiO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGVycm9yO1xyXG4gIH1cclxuICBjb25zdCBzZW5kTWVzc2FnZSA9IChtcykgPT4gbmV3IFByb21pc2UoKHIpID0+IHNldFRpbWVvdXQociwgbXMpKTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cImJsb2ctcGcgc2luZ2xlIHNlY3Rpb24tcGFkZGluZyBwdC0wXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMTFcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwb3N0XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy9ibG9nL3NpbmdsZS5qcGdcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGVudCBwdC02MFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cImV4dHJhLXRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFByaW9yaXRpZXMgdGhhdCB3aWxsIHBvcCB1cCBpbiBhbnkgcGFydGljdWxhciBtb250aC5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvaDQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNwYWNpYWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgTmV2ZXIgZXZlciB0aGluayBvZiBnaXZpbmcgdXAuIFdpbm5lcnMgbmV2ZXIgcXVpdCBhbmRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBxdWl0dGVycyBuZXZlciB3aW4uIFRha2UgYWxsIG5lZ2F0aXZlIHdvcmRzIG91dCBvZlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHlvdXIgbWVudGFsIGRpY3Rpb25hcnkgYW5kIGZvY3VzIG9uIHRoZSBzb2x1dGlvbnMgd2l0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHV0bW9zdCBjb252aWN0aW9uIGFuZCBwYXRpZW5jZS4gVGhlIGJhdHRsZSBpcyBuZXZlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxvc3QgdW50aWwgeW914oCZdmUgYWJhbmRvbiB5b3VyIHZpc2lvbi5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhlIG1haW4gY29tcG9uZW50IG9mIGEgaGVhbHRoeSBlbnZpcm9ubWVudCBmb3Igc2VsZlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlc3RlZW0gaXMgdGhhdCBpdCBuZWVkcyBiZSBudXJ0dXJpbmcuIFRoZSBtYWluIGNvbXBvbnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgb2YgYSBoZWFsdGh5IGVudmlyb25tZW50IGZvciBzZWxmIGVzdGVlbSBpcyB0aGF0IGl0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRzIGJlIG51cnR1cmluZy4gVGhlIG1haW4gY29tcG9uZW50IG9mIGEgaGVhbHRoeSBlbnZcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHNlbGYgZXN0ZWVtIFRoZSBtYWluIGNvbXBvbnQgYmUgbnVydHVyaW5nIEl0IHNob3VsZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm92aWRlIHVuY29uZGl0aW9uYWwgd2FybXRoLiBUaGUgbWFpbiBjb21wb25lbnQgb2YgYVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFsdGh5IGVudiBmb3Igc2VsZiBlc3RlZW0gVGhlIG1haW4gY29tcG9udCBiZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBudXJ0dXJpbmcgSXQgc2hvdWxkIHByb3ZpZGUgdW5jb25kaXRpb25hbFxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgIDxoNj4tIFdlIGFsbCBpbnRlbmQgdG8gcGxhbiBhaGVhZC48L2g2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBXZSBhbGwgaW50ZW5kIHRvIHBsYW4gYWhlYWQsIGJ1dCB0b28gb2Z0ZW4gbGV0IHRoZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXktdG8tZGF5IG1pbnV0aWEgZ2V0IGluIHRoZSB3YXkgb2YgbWFraW5nIGEgY2FsZW5kYXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHRoZSB5ZWFyLiBTdXJlLCB5b3UgY2Fu4oCZdCBrbm93IGV2ZXJ5IGRldGFpbCB0b1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhbnRpY2lwYXRlLiBIZWNrLCB5b3UgY2Fu4oCZdCBrbm93IGhhbGYgdGhlIHByaW9yaXRpZXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdCB3aWxsIHBvcCB1cCBpbiBhbnkgcGFydGljdWxhciBtb250aC4gQnV0IHlvdSBjYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhbiBmb3IgYmlnIHBpY3R1cmUgc2Vhc29uYWxpdHksIGJ1c3ktdGltZXMsIGFuZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudHMuXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+MDE8L3NwYW4+IEludGVnZXIgaW4gdm9sdXRwYXQgbGliZXJvLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+MDI8L3NwYW4+IFZpdmFtdXMgbWF4aW11cyB1bHRyaWNpZXMgcHVsdmluYXIuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4wMzwvc3Bhbj4gcHJpb3JpdGllcyB0aGF0IHdpbGwgcG9wIHVwIGluIGFueVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnRpY3VsYXIgbW9udGguXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4wNDwvc3Bhbj4gV2UgYWxsIGludGVuZCB0byBwbGFuIGFoZWFkLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+MDU8L3NwYW4+IFRoZSBtYWluIGNvbXBvbmVudCBvZiBhIGhlYWx0aHkgZW52XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHNlbGYgZXN0ZWVtLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInF1b3RlcyB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBOZXZlciBldmVyIHRoaW5rIG9mIGdpdmluZyB1cC4gV2lubmVycyBuZXZlciBxdWl0IGFuZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHF1aXR0ZXJzIG5ldmVyIHdpbi4gVGFrZSBhbGwgbmVnYXRpdmUgd29yZHMgb3V0IG9mXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgeW91ciBtZW50YWwgZGljdGlvbmFyeSBhbmQgZm9jdXMgb24gdGhlIHNvbHV0aW9ucyB3aXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdXRtb3N0IGNvbnZpY3Rpb24gYW5kIHBhdGllbmNlLiBUaGUgYmF0dGxlIGlzIG5ldmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbG9zdCB1bnRpbCB5b3XigJl2ZSBhYmFuZG9uIHlvdXIgdmlzaW9uLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1iLTEwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvYmxvZy8yLmpwZ1wiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYi0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL2Jsb2cvMy5qcGdcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFdlIGFsbCBpbnRlbmQgdG8gcGxhbiBhaGVhZCwgYnV0IHRvbyBvZnRlbiBsZXQgdGhlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRheS10by1kYXkgbWludXRpYSBnZXQgaW4gdGhlIHdheSBvZiBtYWtpbmcgYSBjYWxlbmRhclxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgdGhlIHllYXIuIFN1cmUsIHlvdSBjYW7igJl0IGtub3cgZXZlcnkgZGV0YWlsIHRvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFudGljaXBhdGUuIEhlY2ssIHlvdSBjYW7igJl0IGtub3cgaGFsZiB0aGUgcHJpb3JpdGllc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0IHdpbGwgcG9wIHVwIGluIGFueSBwYXJ0aWN1bGFyIG1vbnRoLiBCdXQgeW91IGNhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFuIGZvciBiaWcgcGljdHVyZSBzZWFzb25hbGl0eSwgYnVzeS10aW1lcywgYW5kXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50cy5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2hhcmUtaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNvY2lhbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwiZmFiIGZhLWZhY2Vib29rLWZcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwiZmFiIGZhLXR3aXR0ZXJcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwiZmFiIGZhLWJlaGFuY2VcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0YWdzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiMwXCI+V2ViPC9hPiw8YSBocmVmPVwiIzBcIj5UaGVtZWZvcmVzdDwvYT4sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiMwXCI+VGhlbWVzQ2FtcDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImF1dGhvclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhdXRob3ItaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy9ibG9nLzAxLmpwZ1wiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+YXV0aG9yIDo8L3NwYW4+IEpvcmRlbiBHcmlmZmluXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBtYWluIGNvbXBvbmVudCBvZiBhIGhlYWx0aHkgZW52aXJvbm1lbnQgZm9yIHNlbGZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBlc3RlZW0gaXMgdGhhdCBpdCBuZWVkcyBiZSBudXJ0dXJpbmcuIFRoZSBtYWluIGNvbXBvbnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBvZiBhIGhlYWx0aHkgZW52aXJvbm1lbnQuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzb2NpYWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiIzBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhYiBmYS1mYWNlYm9vay1mXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiIzBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhYiBmYS10d2l0dGVyXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiIzBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhYiBmYS1iZWhhbmNlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwYWdpbmF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiMwXCI+UHJldiBQb3N0PC9hPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICA8TGluayBocmVmPXtgL2Jsb2cvYmxvZy1kYXJrYH0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGE+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYXMgZmEtdGgtbGFyZ2VcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjMFwiPk5leHQgUG9zdDwvYT5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb21tZW50cy1hcmVhXCI+XHJcbiAgICAgICAgICAgICAgICA8aDU+Q29tbWVudHMgOjwvaDU+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb21tZW50LWltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy9ibG9nLzAxLmpwZ1wiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICBKb3JkZW4gR3JpZmZpbiAtIDxzcGFuPiA2IEF1ZyAyMDIyPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwicmVwbGF5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8U2Nyb2xsTGlua1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0bz1cImNvbW1lbnQtZm9ybVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNweT17dHJ1ZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgc21vb3RoPXt0cnVlfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ9ey0xNTB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uPXs1MDB9XHJcbiAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlcGxheSA8aSBjbGFzc05hbWU9XCJmYXMgZmEtcmVwbHlcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L1Njcm9sbExpbms+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgdGhlIG1haW4gY29tcG9uZW50IG9mIGEgaGVhbHRoeSBlbnZpcm9ubWVudCBmb3Igc2VsZlxyXG4gICAgICAgICAgICAgICAgICAgICAgZXN0ZWVtIGlzIHRoYXQgaXQgbmVlZHMgYmUgbnVydHVyaW5nLiBUaGUgbWFpbiBjb21wb250IG9mXHJcbiAgICAgICAgICAgICAgICAgICAgICBhIGhlYWx0aHkgZW52aXJvbm1lbnQuXHJcbiAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIHJlbHBlZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbW1lbnQtaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL2Jsb2cvMDEuanBnXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoNj5cclxuICAgICAgICAgICAgICAgICAgICAgIEpvcmRlbiBHcmlmZmluIC0gPHNwYW4+IDYgQXVnIDIwMjI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJyZXBsYXlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxTY3JvbGxMaW5rXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvPVwiY29tbWVudC1mb3JtXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3B5PXt0cnVlfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzbW9vdGg9e3RydWV9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldD17LTE1MH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZHVyYXRpb249ezUwMH1cclxuICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgUmVwbGF5IDxpIGNsYXNzTmFtZT1cImZhcyBmYS1yZXBseVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvU2Nyb2xsTGluaz5cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGUgbWFpbiBjb21wb25lbnQgb2YgYSBoZWFsdGh5IGVudmlyb25tZW50IGZvciBzZWxmXHJcbiAgICAgICAgICAgICAgICAgICAgICBlc3RlZW0gaXMgdGhhdCBpdCBuZWVkcyBiZSBudXJ0dXJpbmcuIFRoZSBtYWluIGNvbXBvbnQgb2ZcclxuICAgICAgICAgICAgICAgICAgICAgIGEgaGVhbHRoeSBlbnZpcm9ubWVudC5cclxuICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb21tZW50LWltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy9ibG9nLzAxLmpwZ1wiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICBKb3JkZW4gR3JpZmZpbiAtIDxzcGFuPiA2IEF1ZyAyMDIyPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwicmVwbGF5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8U2Nyb2xsTGlua1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0bz1cImNvbW1lbnQtZm9ybVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNweT17dHJ1ZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgc21vb3RoPXt0cnVlfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ9ey0xNTB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uPXs1MDB9XHJcbiAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlcGxheSA8aSBjbGFzc05hbWU9XCJmYXMgZmEtcmVwbHlcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L1Njcm9sbExpbms+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgdGhlIG1haW4gY29tcG9uZW50IG9mIGEgaGVhbHRoeSBlbnZpcm9ubWVudCBmb3Igc2VsZlxyXG4gICAgICAgICAgICAgICAgICAgICAgZXN0ZWVtIGlzIHRoYXQgaXQgbmVlZHMgYmUgbnVydHVyaW5nLiBUaGUgbWFpbiBjb21wb250IG9mXHJcbiAgICAgICAgICAgICAgICAgICAgICBhIGhlYWx0aHkgZW52aXJvbm1lbnQuXHJcbiAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbW1lbnQtZm9ybVwiIGlkPVwiY29tbWVudC1mb3JtXCI+XHJcbiAgICAgICAgICAgICAgICA8aDU+QWRkIENvbW1lbnQgOjwvaDU+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZvcm1cIj5cclxuICAgICAgICAgICAgICAgICAgPEZvcm1pa1xyXG4gICAgICAgICAgICAgICAgICAgIGluaXRpYWxWYWx1ZXM9e3tcclxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICBlbWFpbDogXCJcIixcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbW1lbnQ6IFwiXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICBvblN1Ym1pdD17YXN5bmMgKHZhbHVlcykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgYXdhaXQgc2VuZE1lc3NhZ2UoNTAwKTtcclxuICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KEpTT04uc3RyaW5naWZ5KHZhbHVlcywgbnVsbCwgMikpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgLy8gUmVzZXQgdGhlIHZhbHVlc1xyXG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWVzLm5hbWUgPSBcIlwiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWVzLmVtYWlsID0gXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcy5jb21tZW50ID0gXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgeyh7IGVycm9ycywgdG91Y2hlZCB9KSA9PiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICA8Rm9ybT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGaWVsZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzPVwidGV4dGFyZWFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiWW91ciBDb21tZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiY29tbWVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZpZWxkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiWW91ciBOYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwibmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZpZWxkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImVtYWlsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0ZT17dmFsaWRhdGVFbWFpbH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIllvdXIgRW1haWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJlbWFpbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtlcnJvcnMuZW1haWwgJiYgdG91Y2hlZC5lbWFpbCAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj57ZXJyb3JzLmVtYWlsfTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtMTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9ybS1ncm91cCB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgbmIgYnV0biAke1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGVtZSA9PT0gXCJsaWdodFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBcImRhcmtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwibGlnaHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY3VydmUgZnVsbC13aWR0aGB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21tZW50XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9Gb3JtPlxyXG4gICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgIDwvRm9ybWlrPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBCbG9nRGV0YWlscztcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiTGluayIsIkZvcm1payIsIkZvcm0iLCJGaWVsZCIsIlNjcm9sbExpbmsiLCJCbG9nRGV0YWlscyIsInRoZW1lIiwibWVzc2FnZVJlZiIsInVzZVJlZiIsInZhbGlkYXRlRW1haWwiLCJ2YWx1ZSIsImVycm9yIiwidGVzdCIsInNlbmRNZXNzYWdlIiwibXMiLCJQcm9taXNlIiwiciIsInNldFRpbWVvdXQiLCJuYW1lIiwiZW1haWwiLCJjb21tZW50IiwidmFsdWVzIiwiYWxlcnQiLCJKU09OIiwic3RyaW5naWZ5IiwiZXJyb3JzIiwidG91Y2hlZCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Blog-details/blog-details.jsx\n"); + +/***/ }), + +/***/ "./src/components/Footer/footer.jsx": +/*!******************************************!*\ + !*** ./src/components/Footer/footer.jsx ***! + \******************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _data_app_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../data/app.json */ \"./src/data/app.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Footer\\\\footer.jsx\",\n _this = undefined;\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\nvar Footer = function Footer(_ref) {\n var hideBGCOLOR = _ref.hideBGCOLOR;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"footer\", {\n className: \"\".concat(!hideBGCOLOR ? \"sub-bg\" : \"\"),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item md-mb50\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"title\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h5\", {\n children: \"Contact Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"ul\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-map-marker\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Officeal Address\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"Baghdad Street, Al Dana area, Abu Dhabi, United Arab Emirates\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-mail\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Email Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"hello@businesshub.abudhabi\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-call\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Call Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"+971 26340404\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"logo\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.footerLogo,\n style: {\n width: \"150px\"\n },\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"social\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"https://www.facebook.com/profile.php?id=100057392223857 \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-facebook-f\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"https://www.linkedin.com/company/business-hub-international-investment\\r\\n\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-linkedin\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"https://www.instagram.com/businesshubi/?igsh=MTJ3ejZneWdmbTM3bQ%3D%3D \\r\\n\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-instagram\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"copy-right\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"\\xA9 2024, 2024 Business HUB international investment - All Rights Reserved.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 5\n }, _this);\n};\n\n_c = Footer;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Footer);\n\nvar _c;\n\n$RefreshReg$(_c, \"Footer\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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LG9CQUFJLEVBQUMsNEVBRFA7QUFBQSx1Q0FJRTtBQUFHLDJCQUFTLEVBQUM7QUFBYjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSkY7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFWRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBUkYsZUF5QkU7QUFBSyx1QkFBUyxFQUFDLFlBQWY7QUFBQSxxQ0FDRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBekJGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBbkNGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBREY7QUE0RUQsQ0E3RUQ7O0tBQU1IO0FBK0VOLCtEQUFlQSxNQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL0Zvb3Rlci9mb290ZXIuanN4P2YzOTQiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcclxuaW1wb3J0IGFwcERhdGEgZnJvbSBcIi4uLy4uL2RhdGEvYXBwLmpzb25cIjtcclxuXHJcbmNvbnN0IEZvb3RlciA9ICh7IGhpZGVCR0NPTE9SIH0pID0+IHtcclxuICByZXR1cm4gKFxyXG4gICAgPGZvb3RlciBjbGFzc05hbWU9e2AkeyFoaWRlQkdDT0xPUiA/IFwic3ViLWJnXCIgOiBcIlwifWB9PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy00XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgPGg1PkNvbnRhY3QgVXM8L2g1PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDx1bD5cclxuICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvbiBwZS03cy1tYXAtbWFya2VyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+T2ZmaWNlYWwgQWRkcmVzczwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICBCYWdoZGFkIFN0cmVldCwgQWwgRGFuYSBhcmVhLCBBYnUgRGhhYmksIFVuaXRlZCBBcmFiXHJcbiAgICAgICAgICAgICAgICAgICAgICBFbWlyYXRlc1xyXG4gICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJpY29uIHBlLTdzLW1haWxcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoNj5FbWFpbCBVczwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+aGVsbG9AYnVzaW5lc3NodWIuYWJ1ZGhhYmk8L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvbiBwZS03cy1jYWxsXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+Q2FsbCBVczwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+Kzk3MSAyNjM0MDQwNDwvcD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctNFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxvZ29cIj5cclxuICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgc3JjPXthcHBEYXRhLmZvb3RlckxvZ299XHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IHdpZHRoOiBcIjE1MHB4XCIgfX1cclxuICAgICAgICAgICAgICAgICAgYWx0PVwiXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzb2NpYWxcIj5cclxuICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJodHRwczovL3d3dy5mYWNlYm9vay5jb20vcHJvZmlsZS5waHA/aWQ9MTAwMDU3MzkyMjIzODU3IFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYWIgZmEtZmFjZWJvb2stZlwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL3d3dy5saW5rZWRpbi5jb20vY29tcGFueS9idXNpbmVzcy1odWItaW50ZXJuYXRpb25hbC1pbnZlc3RtZW50XHJcblwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhYiBmYS1saW5rZWRpblwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL3d3dy5pbnN0YWdyYW0uY29tL2J1c2luZXNzaHViaS8/aWdzaD1NVEozZWpabmVXZG1iVE0zYlElM0QlM0QgXHJcblwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhYiBmYS1pbnN0YWdyYW1cIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb3B5LXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgwqkgMjAyNCwgMjAyNCBCdXNpbmVzcyBIVUIgaW50ZXJuYXRpb25hbCBpbnZlc3RtZW50IC0gQWxsXHJcbiAgICAgICAgICAgICAgICAgIFJpZ2h0cyBSZXNlcnZlZC5cclxuICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Zvb3Rlcj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgRm9vdGVyO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJMaW5rIiwiYXBwRGF0YSIsIkZvb3RlciIsImhpZGVCR0NPTE9SIiwiZm9vdGVyTG9nbyIsIndpZHRoIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Footer/footer.jsx\n"); + +/***/ }), + +/***/ "./src/components/Navbar/navbar.jsx": +/*!******************************************!*\ + !*** ./src/components/Navbar/navbar.jsx ***! + \******************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _data_app_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../data/app.json */ \"./src/data/app.json\");\n/* harmony import */ var _common_navbar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/navbar */ \"./src/common/navbar.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Navbar\\\\navbar.jsx\",\n _this = undefined;\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nvar Navbar = function Navbar(_ref) {\n var lr = _ref.lr,\n nr = _ref.nr,\n theme = _ref.theme;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"nav\", {\n ref: nr,\n className: \"navbar navbar-expand-lg change \".concat(theme === \"themeL\" ? \"light\" : \"\"),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"a\", {\n className: \"logo\",\n children: theme ? theme === \"themeL\" ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n ref: lr,\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.darkLogo,\n alt: \"logo\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 17\n }, _this) : /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n ref: lr,\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.lightLogo,\n alt: \"logo\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 17\n }, _this) : /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n ref: lr,\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.lightLogo,\n alt: \"logo\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"button\", {\n className: \"navbar-toggler\",\n type: \"button\",\n onClick: _common_navbar__WEBPACK_IMPORTED_MODULE_3__.handleMobileDropdown,\n \"data-toggle\": \"collapse\",\n \"data-target\": \"#navbarSupportedContent\",\n \"aria-controls\": \"navbarSupportedContent\",\n \"aria-expanded\": \"false\",\n \"aria-label\": \"Toggle navigation\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"icon-bar\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"i\", {\n className: \"fas fa-bars\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"collapse navbar-collapse\",\n id: \"navbarSupportedContent\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"ul\", {\n className: \"navbar-nav ml-auto\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"nav-link \",\n children: \"Home\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/about\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"a\", {\n className: \"nav-link\",\n children: \"Who we are\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/services\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"nav-link\",\n children: \"Our Services\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 59,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/blog/blog-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"nav-link \",\n children: \"Blog\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/contact/contact-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"a\", {\n className: \"nav-link\",\n children: \"Contact\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 13\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, _this);\n};\n\n_c = Navbar;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Navbar);\n\nvar _c;\n\n$RefreshReg$(_c, \"Navbar\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9OYXZiYXIvbmF2YmFyLmpzeC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsSUFBTUssTUFBTSxHQUFHLFNBQVRBLE1BQVMsT0FBdUI7QUFBQSxNQUFwQkMsRUFBb0IsUUFBcEJBLEVBQW9CO0FBQUEsTUFBaEJDLEVBQWdCLFFBQWhCQSxFQUFnQjtBQUFBLE1BQVpDLEtBQVksUUFBWkEsS0FBWTtBQUNwQyxzQkFDRTtBQUNFLE9BQUcsRUFBRUQsRUFEUDtBQUVFLGFBQVMsMkNBQ1BDLEtBQUssS0FBSyxRQUFWLEdBQXFCLE9BQXJCLEdBQStCLEVBRHhCLENBRlg7QUFBQSwyQkFNRTtBQUFLLGVBQVMsRUFBQyxXQUFmO0FBQUEsOEJBQ0UsOERBQUMsa0RBQUQ7QUFBTSxZQUFJLEVBQUMsR0FBWDtBQUFBLCtCQUNFO0FBQUcsbUJBQVMsRUFBQyxNQUFiO0FBQUEsb0JBQ0dBLEtBQUssR0FDSkEsS0FBSyxLQUFLLFFBQVYsZ0JBQ0U7QUFBSyxlQUFHLEVBQUVGLEVBQVY7QUFBYyxlQUFHLEVBQUVKLG9EQUFuQjtBQUFxQyxlQUFHLEVBQUM7QUFBekM7QUFBQTtBQUFBO0FBQUE7QUFBQSxtQkFERixnQkFHRTtBQUFLLGVBQUcsRUFBRUksRUFBVjtBQUFjLGVBQUcsRUFBRUoscURBQW5CO0FBQXNDLGVBQUcsRUFBQztBQUExQztBQUFBO0FBQUE7QUFBQTtBQUFBLG1CQUpFLGdCQU9KO0FBQUssZUFBRyxFQUFFSSxFQUFWO0FBQWMsZUFBRyxFQUFFSixxREFBbkI7QUFBc0MsZUFBRyxFQUFDO0FBQTFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFSSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxlQURGLGVBZUU7QUFDRSxpQkFBUyxFQUFDLGdCQURaO0FBRUUsWUFBSSxFQUFDLFFBRlA7QUFHRSxlQUFPLEVBQUVFLGdFQUhYO0FBSUUsdUJBQVksVUFKZDtBQUtFLHVCQUFZLHlCQUxkO0FBTUUseUJBQWMsd0JBTmhCO0FBT0UseUJBQWMsT0FQaEI7QUFRRSxzQkFBVyxtQkFSYjtBQUFBLCtCQVVFO0FBQU0sbUJBQVMsRUFBQyxVQUFoQjtBQUFBLGlDQUNFO0FBQUcscUJBQVMsRUFBQztBQUFiO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBVkY7QUFBQTtBQUFBO0FBQUE7QUFBQSxlQWZGLGVBOEJFO0FBQUssaUJBQVMsRUFBQywwQkFBZjtBQUEwQyxVQUFFLEVBQUMsd0JBQTdDO0FBQUEsK0JBQ0U7QUFBSSxtQkFBUyxFQUFDLG9CQUFkO0FBQUEsa0NBQ0U7QUFBSSxxQkFBUyxFQUFDLFdBQWQ7QUFBQSxtQ0FDRSw4REFBQyxrREFBRDtBQUFNLGtCQUFJLEVBQUMsR0FBWDtBQUFBLHFDQUNFO0FBQU0seUJBQVMsRUFBQyxXQUFoQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLG1CQURGLGVBTUU7QUFBSSxxQkFBUyxFQUFDLFVBQWQ7QUFBQSxtQ0FDRSw4REFBQyxrREFBRDtBQUFNLGtCQUFJLFVBQVY7QUFBQSxxQ0FDRTtBQUFHLHlCQUFTLEVBQUMsVUFBYjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLG1CQU5GLGVBV0U7QUFBSSxxQkFBUyxFQUFDLFdBQWQ7QUFBQSxtQ0FDRSw4REFBQyxrREFBRDtBQUFNLGtCQUFJLGFBQVY7QUFBQSxxQ0FDRTtBQUFNLHlCQUFTLEVBQUMsVUFBaEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxtQkFYRixlQWdCRTtBQUFJLHFCQUFTLEVBQUMsV0FBZDtBQUFBLG1DQUNFLDhEQUFDLGtEQUFEO0FBQU0sa0JBQUksb0JBQVY7QUFBQSxxQ0FDRTtBQUFNLHlCQUFTLEVBQUMsV0FBaEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxtQkFoQkYsZUFxQkU7QUFBSSxxQkFBUyxFQUFDLFVBQWQ7QUFBQSxtQ0FDRSw4REFBQyxrREFBRDtBQUFNLGtCQUFJLDBCQUFWO0FBQUEscUNBQ0U7QUFBRyx5QkFBUyxFQUFDLFVBQWI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxtQkFyQkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxlQTlCRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFORjtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBREY7QUFxRUQsQ0F0RUQ7O0tBQU1DO0FBd0VOLCtEQUFlQSxNQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL05hdmJhci9uYXZiYXIuanN4PzdhZjAiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcclxuaW1wb3J0IGFwcERhdGEgZnJvbSBcIi4uLy4uL2RhdGEvYXBwLmpzb25cIjtcclxuaW1wb3J0IHsgaGFuZGxlRHJvcGRvd24sIGhhbmRsZU1vYmlsZURyb3Bkb3duIH0gZnJvbSBcIi4uLy4uL2NvbW1vbi9uYXZiYXJcIjtcclxuXHJcbmNvbnN0IE5hdmJhciA9ICh7IGxyLCBuciwgdGhlbWUgfSkgPT4ge1xyXG4gIHJldHVybiAoXHJcbiAgICA8bmF2XHJcbiAgICAgIHJlZj17bnJ9XHJcbiAgICAgIGNsYXNzTmFtZT17YG5hdmJhciBuYXZiYXItZXhwYW5kLWxnIGNoYW5nZSAke1xyXG4gICAgICAgIHRoZW1lID09PSBcInRoZW1lTFwiID8gXCJsaWdodFwiIDogXCJcIlxyXG4gICAgICB9YH1cclxuICAgID5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICA8TGluayBocmVmPVwiL1wiPlxyXG4gICAgICAgICAgPGEgY2xhc3NOYW1lPVwibG9nb1wiPlxyXG4gICAgICAgICAgICB7dGhlbWUgPyAoXHJcbiAgICAgICAgICAgICAgdGhlbWUgPT09IFwidGhlbWVMXCIgPyAoXHJcbiAgICAgICAgICAgICAgICA8aW1nIHJlZj17bHJ9IHNyYz17YXBwRGF0YS5kYXJrTG9nb30gYWx0PVwibG9nb1wiIC8+XHJcbiAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgIDxpbWcgcmVmPXtscn0gc3JjPXthcHBEYXRhLmxpZ2h0TG9nb30gYWx0PVwibG9nb1wiIC8+XHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgIDxpbWcgcmVmPXtscn0gc3JjPXthcHBEYXRhLmxpZ2h0TG9nb30gYWx0PVwibG9nb1wiIC8+XHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgPC9MaW5rPlxyXG5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICBjbGFzc05hbWU9XCJuYXZiYXItdG9nZ2xlclwiXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZU1vYmlsZURyb3Bkb3dufVxyXG4gICAgICAgICAgZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXHJcbiAgICAgICAgICBkYXRhLXRhcmdldD1cIiNuYXZiYXJTdXBwb3J0ZWRDb250ZW50XCJcclxuICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJuYXZiYXJTdXBwb3J0ZWRDb250ZW50XCJcclxuICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiXHJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiVG9nZ2xlIG5hdmlnYXRpb25cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24tYmFyXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhcyBmYS1iYXJzXCI+PC9pPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbGxhcHNlIG5hdmJhci1jb2xsYXBzZVwiIGlkPVwibmF2YmFyU3VwcG9ydGVkQ29udGVudFwiPlxyXG4gICAgICAgICAgPHVsIGNsYXNzTmFtZT1cIm5hdmJhci1uYXYgbWwtYXV0b1wiPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibmF2LWl0ZW0gXCI+XHJcbiAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9cIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm5hdi1saW5rIFwiPkhvbWU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibmF2LWl0ZW1cIj5cclxuICAgICAgICAgICAgICA8TGluayBocmVmPXtgL2Fib3V0YH0+XHJcbiAgICAgICAgICAgICAgICA8YSBjbGFzc05hbWU9XCJuYXYtbGlua1wiPldobyB3ZSBhcmU8L2E+XHJcbiAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibmF2LWl0ZW0gXCI+XHJcbiAgICAgICAgICAgICAgPExpbmsgaHJlZj17YC9zZXJ2aWNlc2B9PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibmF2LWxpbmtcIj5PdXIgU2VydmljZXM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibmF2LWl0ZW0gXCI+XHJcbiAgICAgICAgICAgICAgPExpbmsgaHJlZj17YC9ibG9nL2Jsb2ctbGlnaHRgfT5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm5hdi1saW5rIFwiPkJsb2c8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibmF2LWl0ZW1cIj5cclxuICAgICAgICAgICAgICA8TGluayBocmVmPXtgL2NvbnRhY3QvY29udGFjdC1saWdodGB9PlxyXG4gICAgICAgICAgICAgICAgPGEgY2xhc3NOYW1lPVwibmF2LWxpbmtcIj5Db250YWN0PC9hPlxyXG4gICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uYXY+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IE5hdmJhcjtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiTGluayIsImFwcERhdGEiLCJoYW5kbGVEcm9wZG93biIsImhhbmRsZU1vYmlsZURyb3Bkb3duIiwiTmF2YmFyIiwibHIiLCJuciIsInRoZW1lIiwiZGFya0xvZ28iLCJsaWdodExvZ28iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/components/Navbar/navbar.jsx\n"); + +/***/ }), + +/***/ "./src/components/Page-header/page-header.jsx": +/*!****************************************************!*\ + !*** ./src/components/Page-header/page-header.jsx ***! + \****************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Page-header\\\\page-header.jsx\",\n _this = undefined;\n\n\n\n\nvar PageHeader = function PageHeader(_ref) {\n var title = _ref.title,\n paragraph = _ref.paragraph,\n className = _ref.className;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"section\", {\n className: \"page-header \".concat(className && className),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"col-lg-7 col-md-9\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"cont text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"h1\", {\n className: \"mb-10 color-font\",\n children: title\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"p\", {\n children: paragraph\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 7,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 6,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 5,\n columnNumber: 7\n }, _this);\n};\n\n_c = PageHeader;\n/* harmony default export */ __webpack_exports__[\"default\"] = (PageHeader);\n\nvar _c;\n\n$RefreshReg$(_c, \"PageHeader\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9QYWdlLWhlYWRlci9wYWdlLWhlYWRlci5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7OztBQUVBLElBQU1DLFVBQVUsR0FBRyxTQUFiQSxVQUFhLE9BQW1DO0FBQUEsTUFBakNDLEtBQWlDLFFBQWpDQSxLQUFpQztBQUFBLE1BQTFCQyxTQUEwQixRQUExQkEsU0FBMEI7QUFBQSxNQUFmQyxTQUFlLFFBQWZBLFNBQWU7QUFDbEQsc0JBQ0U7QUFBUyxhQUFTLHdCQUFpQkEsU0FBUyxJQUFJQSxTQUE5QixDQUFsQjtBQUFBLDJCQUNFO0FBQUssZUFBUyxFQUFDLFdBQWY7QUFBQSw2QkFDRTtBQUFLLGlCQUFTLEVBQUMsNEJBQWY7QUFBQSwrQkFDRTtBQUFLLG1CQUFTLEVBQUMsbUJBQWY7QUFBQSxpQ0FDRTtBQUFLLHFCQUFTLEVBQUMsa0JBQWY7QUFBQSxvQ0FDRTtBQUFJLHVCQUFTLEVBQUMsa0JBQWQ7QUFBQSx3QkFBa0NGO0FBQWxDO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBREYsZUFFRTtBQUFBLHdCQUFJQztBQUFKO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBRkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxXQURGO0FBY0gsQ0FmRDs7S0FBTUY7QUFpQk4sK0RBQWVBLFVBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbXBvbmVudHMvUGFnZS1oZWFkZXIvcGFnZS1oZWFkZXIuanN4P2Q0NDMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xyXG5cclxuY29uc3QgUGFnZUhlYWRlciA9ICh7dGl0bGUsIHBhcmFncmFwaCwgY2xhc3NOYW1lfSkgPT4ge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPXtgcGFnZS1oZWFkZXIgJHtjbGFzc05hbWUgJiYgY2xhc3NOYW1lfWB9PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTcgY29sLW1kLTlcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnQgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxoMSBjbGFzc05hbWU9XCJtYi0xMCBjb2xvci1mb250XCI+e3RpdGxlfTwvaDE+XHJcbiAgICAgICAgICAgICAgICA8cD57cGFyYWdyYXBofTwvcD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9zZWN0aW9uPlxyXG4gICAgKTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgUGFnZUhlYWRlcjsiXSwibmFtZXMiOlsiUmVhY3QiLCJQYWdlSGVhZGVyIiwidGl0bGUiLCJwYXJhZ3JhcGgiLCJjbGFzc05hbWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/components/Page-header/page-header.jsx\n"); + +/***/ }), + +/***/ "./src/layouts/Light.jsx": +/*!*******************************!*\ + !*** ./src/layouts/Light.jsx ***! + \*******************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/head */ \"./node_modules/next/head.js\");\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_head__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\layouts\\\\Light.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n/* eslint-disable @next/next/no-css-tags */\n\n\n\n\n\nvar LightTheme = function LightTheme(_ref) {\n _s();\n\n var children = _ref.children,\n mobileappstyle = _ref.mobileappstyle;\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n window.theme = \"light\";\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)((next_head__WEBPACK_IMPORTED_MODULE_1___default()), {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"link\", {\n rel: \"stylesheet\",\n href: \"/css/light.css\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 9\n }, _this), mobileappstyle ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"link\", {\n href: \"/css/mobile-app-light.css\",\n rel: \"stylesheet\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 28\n }, _this) : null]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 7\n }, _this), children]\n }, void 0, true);\n};\n\n_s(LightTheme, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = LightTheme;\n/* harmony default export */ __webpack_exports__[\"default\"] = (LightTheme);\n\nvar _c;\n\n$RefreshReg$(_c, \"LightTheme\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvbGF5b3V0cy9MaWdodC5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBOzs7O0FBRUEsSUFBTUUsVUFBVSxHQUFHLFNBQWJBLFVBQWEsT0FBa0M7QUFBQTs7QUFBQSxNQUEvQkMsUUFBK0IsUUFBL0JBLFFBQStCO0FBQUEsTUFBckJDLGNBQXFCLFFBQXJCQSxjQUFxQjtBQUNuREosRUFBQUEsc0RBQUEsQ0FBZ0IsWUFBTTtBQUNwQk0sSUFBQUEsTUFBTSxDQUFDQyxLQUFQLEdBQWUsT0FBZjtBQUNELEdBRkQsRUFFRyxFQUZIO0FBR0Esc0JBQ0U7QUFBQSw0QkFDRSw4REFBQyxrREFBRDtBQUFBLDhCQUNFO0FBQU0sV0FBRyxFQUFDLFlBQVY7QUFBdUIsWUFBSSxFQUFDO0FBQTVCO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFERixFQUVHSCxjQUFjLGdCQUFJO0FBQU0sWUFBSSxFQUFDLDJCQUFYO0FBQXVDLFdBQUcsRUFBQztBQUEzQztBQUFBO0FBQUE7QUFBQTtBQUFBLGVBQUosR0FBbUUsSUFGcEY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBREYsRUFLR0QsUUFMSDtBQUFBLGtCQURGO0FBU0QsQ0FiRDs7R0FBTUQ7O0tBQUFBO0FBZU4sK0RBQWVBLFVBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2xheW91dHMvTGlnaHQuanN4PzM5YzIiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1jc3MtdGFncyAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBIZWFkIGZyb20gXCJuZXh0L2hlYWRcIjtcclxuXHJcbmNvbnN0IExpZ2h0VGhlbWUgPSAoeyBjaGlsZHJlbiwgbW9iaWxlYXBwc3R5bGUgfSkgPT4ge1xyXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICB3aW5kb3cudGhlbWUgPSBcImxpZ2h0XCI7XHJcbiAgfSwgW10pO1xyXG4gIHJldHVybiAoXHJcbiAgICA8PlxyXG4gICAgICA8SGVhZD5cclxuICAgICAgICA8bGluayByZWw9XCJzdHlsZXNoZWV0XCIgaHJlZj1cIi9jc3MvbGlnaHQuY3NzXCIgLz5cclxuICAgICAgICB7bW9iaWxlYXBwc3R5bGUgPyAoPGxpbmsgaHJlZj1cIi9jc3MvbW9iaWxlLWFwcC1saWdodC5jc3NcIiByZWw9XCJzdHlsZXNoZWV0XCIgLz4pIDogKG51bGwpfVxyXG4gICAgICA8L0hlYWQ+XHJcbiAgICAgIHtjaGlsZHJlbn1cclxuICAgIDwvPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBMaWdodFRoZW1lO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJIZWFkIiwiTGlnaHRUaGVtZSIsImNoaWxkcmVuIiwibW9iaWxlYXBwc3R5bGUiLCJ1c2VFZmZlY3QiLCJ3aW5kb3ciLCJ0aGVtZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/layouts/Light.jsx\n"); + +/***/ }), + +/***/ "./src/pages/blog-details/blog-details-1.jsx": +/*!***************************************************!*\ + !*** ./src/pages/blog-details/blog-details-1.jsx ***! + \***************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node_modules/@babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _data_blog3_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../data/blog3.json */ \"./src/data/blog3.json\");\n/* harmony import */ var _layouts_Light__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../layouts/Light */ \"./src/layouts/Light.jsx\");\n/* harmony import */ var _components_Navbar_navbar__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../components/Navbar/navbar */ \"./src/components/Navbar/navbar.jsx\");\n/* harmony import */ var _components_Blog_details_blog_details__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../components/Blog-details/blog-details */ \"./src/components/Blog-details/blog-details.jsx\");\n/* harmony import */ var _components_Page_header_page_header__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../components/Page-header/page-header */ \"./src/components/Page-header/page-header.jsx\");\n/* harmony import */ var _components_Footer_footer__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../components/Footer/footer */ \"./src/components/Footer/footer.jsx\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var formik__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! formik */ \"./node_modules/formik/dist/formik.esm.js\");\n/* harmony import */ var react_scroll__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! react-scroll */ \"./node_modules/react-scroll/modules/index.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__);\n/* module decorator */ module = __webpack_require__.hmd(module);\n\n\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\pages\\\\blog-details\\\\blog-details-1.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar BlogDetailsOne = function BlogDetailsOne() {\n _s();\n\n var navbarRef = react__WEBPACK_IMPORTED_MODULE_2___default().useRef(null);\n var logoRef = react__WEBPACK_IMPORTED_MODULE_2___default().useRef(null);\n react__WEBPACK_IMPORTED_MODULE_2___default().useEffect(function () {\n var navbar = navbarRef.current,\n logo = logoRef.current;\n\n if (window.pageYOffset > 300) {\n navbar.classList.add(\"nav-scroll\");\n } else {\n navbar.classList.remove(\"nav-scroll\");\n }\n\n window.addEventListener(\"scroll\", function () {\n if (window.pageYOffset > 300) {\n navbar.classList.add(\"nav-scroll\");\n } else {\n navbar.classList.remove(\"nav-scroll\");\n }\n });\n }, [navbarRef]);\n var messageRef = react__WEBPACK_IMPORTED_MODULE_2___default().useRef(null);\n\n function validateEmail(value) {\n var error;\n\n if (!value) {\n error = \"Required\";\n } else if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i.test(value)) {\n error = \"Invalid email address\";\n }\n\n return error;\n }\n\n var sendMessage = function sendMessage(ms) {\n return new Promise(function (r) {\n return setTimeout(r, ms);\n });\n };\n\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(_layouts_Light__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"circle-bg\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"circle-color fixed\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"gradient-circle\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"gradient-circle two\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(_components_Navbar_navbar__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n nr: navbarRef,\n lr: logoRef,\n theme: \"themeL\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(_components_Page_header_page_header__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n title: \"Blogs.\",\n paragraph: \"All the most current news and events of our creative team.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"section\", {\n className: \"blog-pg single section-padding pt-0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"col-lg-11\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"post\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"img\", {\n src: \"/img/blog/blog img1.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"content pt-60\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"col-lg-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"h4\", {\n className: \"extra-title\",\n children: \"Business Hub: Its role in supporting companies in the stages of establishment, development, and...\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"spacial\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"p\", {\n children: \"In a rapidly evolving and competitive business landscape, companies often need specialized support and guidance to meet challenges, exploit opportunities, and achieve sustainable growth. Here comes the role of Business Hub as an essential ally for companies, as it provides comprehensive services aimed at assisting companies in the stages of establishment, development, and management. In this article, we'll look at the role of Business Hub and how it empowers businesses throughout their journey.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"h6\", {\n children: \" Support in the establishment phase:\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 87,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"p\", {\n children: \"Business Hub provides valuable support to companies during the establishment phase. Whether it is legal organization, structuring a legal entity, or preparing key documents, Business Hub provides customized guidance to ensure a smooth and compliant onboarding process. Leveraging its expertise and network, Business Hub helps companies build a strong base for their operations.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"h6\", {\n children: \" Development Services:\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 99,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"p\", {\n children: \"After incorporation, Business Hub offers a range of development services aimed at promoting growth and innovation within companies. This includes market analysis, strategic planning, technology integration, and more. By identifying market trends, exploring opportunities, and implementing strategic initiatives, Business Hub helps companies improve their performance and fully exploit their potential.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 101,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"h6\", {\n children: \"Management solutions:\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"p\", {\n children: \"Business Hub is a strategic partner in managing various aspects of the company's operations. From finance and administrative management to human resources and marketing, Business Hub offers customized solutions to streamline operations, enhance efficiency, and achieve organizational success. Through its expertise in management and industry best practices, Business Hub enables companies to focus on their core missions while ensuring operational excellence.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"h6\", {\n children: \" Access to resources and networks:\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"p\", {\n children: \"One of the main advantages of partnering with Business Hub is access to a wide network of resources and relationships. Whether it's obtaining financing, forming strategic partnerships, or tapping into industry expertise, Business Hub provides companies with the resources they need to succeed in a competitive environment. By leveraging its extensive network, Business Hub helps companies overcome obstacles and exploit growth opportunities.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"h6\", {\n children: \" Continuous support and guidance:\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"p\", {\n children: [\" \", \"Business Hub provides ongoing support and guidance to companies at every stage of their journey. Whether it's adapting to changes in the market, expanding into new markets, or dealing with regulatory complexities, Business Hub provides ongoing support to ensure companies remain empowered and able to achieve long-term success. Through active monitoring and strategic advice, Business Hub helps companies excel and achieve long-term success.\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 137,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 21\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"comment-form\",\n id: \"comment-form\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"h5\", {\n children: \"Add Comment :\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"form\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(formik__WEBPACK_IMPORTED_MODULE_10__.Formik, {\n initialValues: {\n name: \"\",\n email: \"\",\n comment: \"\"\n },\n onSubmit: /*#__PURE__*/function () {\n var _ref = (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee(values) {\n return C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return sendMessage(500);\n\n case 2:\n alert(JSON.stringify(values, null, 2)); // Reset the values\n\n values.name = \"\";\n values.email = \"\";\n values.comment = \"\";\n\n case 6:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function (_x) {\n return _ref.apply(this, arguments);\n };\n }(),\n children: function children(_ref2) {\n var errors = _ref2.errors,\n touched = _ref2.touched;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(formik__WEBPACK_IMPORTED_MODULE_10__.Form, {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"col-12\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"form-group\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(formik__WEBPACK_IMPORTED_MODULE_10__.Field, {\n as: \"textarea\",\n placeholder: \"Your Comment\",\n name: \"comment\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 33\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 31\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 29\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"form-group\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(formik__WEBPACK_IMPORTED_MODULE_10__.Field, {\n type: \"text\",\n placeholder: \"Your Name\",\n name: \"name\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 33\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 31\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 29\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"form-group\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(formik__WEBPACK_IMPORTED_MODULE_10__.Field, {\n type: \"email\",\n validate: validateEmail,\n placeholder: \"Your Email\",\n name: \"email\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 33\n }, _this), errors.email && touched.email && /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n children: errors.email\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 35\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 31\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 208,\n columnNumber: 29\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"col-12\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"form-group text-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"button\", {\n type: \"submit\",\n className: \" butn bord curve full-width\",\n children: \"Comment\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 33\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 31\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 29\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 25\n }, _this);\n }\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 172,\n columnNumber: 21\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 171,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 61,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 60,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 59,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(_components_Footer_footer__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 242,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 5\n }, _this);\n};\n\n_s(BlogDetailsOne, \"poyMtQIxX4dahY62157f6pNEpNQ=\");\n\n_c = BlogDetailsOne;\n/* harmony default export */ __webpack_exports__[\"default\"] = (BlogDetailsOne);\n\nvar _c;\n\n$RefreshReg$(_c, \"BlogDetailsOne\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvcGFnZXMvYmxvZy1kZXRhaWxzL2Jsb2ctZGV0YWlscy0xLmpzeC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFFQSxJQUFNWSxjQUFjLEdBQUcsU0FBakJBLGNBQWlCLEdBQU07QUFBQTs7QUFDM0IsTUFBTUMsU0FBUyxHQUFHYixtREFBQSxDQUFhLElBQWIsQ0FBbEI7QUFDQSxNQUFNZSxPQUFPLEdBQUdmLG1EQUFBLENBQWEsSUFBYixDQUFoQjtBQUVBQSxFQUFBQSxzREFBQSxDQUFnQixZQUFNO0FBQ3BCLFFBQUlpQixNQUFNLEdBQUdKLFNBQVMsQ0FBQ0ssT0FBdkI7QUFBQSxRQUNFQyxJQUFJLEdBQUdKLE9BQU8sQ0FBQ0csT0FEakI7O0FBRUEsUUFBSUUsTUFBTSxDQUFDQyxXQUFQLEdBQXFCLEdBQXpCLEVBQThCO0FBQzVCSixNQUFBQSxNQUFNLENBQUNLLFNBQVAsQ0FBaUJDLEdBQWpCLENBQXFCLFlBQXJCO0FBQ0QsS0FGRCxNQUVPO0FBQ0xOLE1BQUFBLE1BQU0sQ0FBQ0ssU0FBUCxDQUFpQkUsTUFBakIsQ0FBd0IsWUFBeEI7QUFDRDs7QUFDREosSUFBQUEsTUFBTSxDQUFDSyxnQkFBUCxDQUF3QixRQUF4QixFQUFrQyxZQUFNO0FBQ3RDLFVBQUlMLE1BQU0sQ0FBQ0MsV0FBUCxHQUFxQixHQUF6QixFQUE4QjtBQUM1QkosUUFBQUEsTUFBTSxDQUFDSyxTQUFQLENBQWlCQyxHQUFqQixDQUFxQixZQUFyQjtBQUNELE9BRkQsTUFFTztBQUNMTixRQUFBQSxNQUFNLENBQUNLLFNBQVAsQ0FBaUJFLE1BQWpCLENBQXdCLFlBQXhCO0FBQ0Q7QUFDRixLQU5EO0FBT0QsR0FmRCxFQWVHLENBQUNYLFNBQUQsQ0FmSDtBQWdCQSxNQUFNYSxVQUFVLEdBQUcxQixtREFBQSxDQUFhLElBQWIsQ0FBbkI7O0FBQ0EsV0FBUzJC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Q0FBUyxFQUFDLDhCQUZaO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsbUNBaENGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsK0JBREQ7QUFBQTtBQWZIO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLHlCQUZGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkE1R0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxhQVpGLGVBcU1FLCtEQUFDLGlFQUFEO0FBQUE7QUFBQTtBQUFBO0FBQUEsYUFyTUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBREY7QUF5TUQsQ0F6T0Q7O0dBQU16Qjs7S0FBQUE7QUEyT04sK0RBQWVBLGNBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL3BhZ2VzL2Jsb2ctZGV0YWlscy9ibG9nLWRldGFpbHMtMS5qc3g/MjIwMiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBibG9nM0RhdGEgZnJvbSBcIi4uLy4uL2RhdGEvYmxvZzMuanNvblwiO1xyXG5pbXBvcnQgTGlnaHRUaGVtZSBmcm9tIFwiLi4vLi4vbGF5b3V0cy9MaWdodFwiO1xyXG5pbXBvcnQgTmF2YmFyIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL05hdmJhci9uYXZiYXJcIjtcclxuaW1wb3J0IEJsb2dEZXRhaWxzIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL0Jsb2ctZGV0YWlscy9ibG9nLWRldGFpbHNcIjtcclxuaW1wb3J0IFBhZ2VIZWFkZXIgZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvUGFnZS1oZWFkZXIvcGFnZS1oZWFkZXJcIjtcclxuaW1wb3J0IEZvb3RlciBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9Gb290ZXIvZm9vdGVyXCI7XHJcbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcclxuaW1wb3J0IHsgRm9ybWlrLCBGb3JtLCBGaWVsZCB9IGZyb20gXCJmb3JtaWtcIjtcclxuaW1wb3J0IHsgTGluayBhcyBTY3JvbGxMaW5rIH0gZnJvbSBcInJlYWN0LXNjcm9sbFwiO1xyXG5cclxuY29uc3QgQmxvZ0RldGFpbHNPbmUgPSAoKSA9PiB7XHJcbiAgY29uc3QgbmF2YmFyUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xyXG4gIGNvbnN0IGxvZ29SZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XHJcblxyXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICB2YXIgbmF2YmFyID0gbmF2YmFyUmVmLmN1cnJlbnQsXHJcbiAgICAgIGxvZ28gPSBsb2dvUmVmLmN1cnJlbnQ7XHJcbiAgICBpZiAod2luZG93LnBhZ2VZT2Zmc2V0ID4gMzAwKSB7XHJcbiAgICAgIG5hdmJhci5jbGFzc0xpc3QuYWRkKFwibmF2LXNjcm9sbFwiKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG5hdmJhci5jbGFzc0xpc3QucmVtb3ZlKFwibmF2LXNjcm9sbFwiKTtcclxuICAgIH1cclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsICgpID0+IHtcclxuICAgICAgaWYgKHdpbmRvdy5wYWdlWU9mZnNldCA+IDMwMCkge1xyXG4gICAgICAgIG5hdmJhci5jbGFzc0xpc3QuYWRkKFwibmF2LXNjcm9sbFwiKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBuYXZiYXIuY2xhc3NMaXN0LnJlbW92ZShcIm5hdi1zY3JvbGxcIik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH0sIFtuYXZiYXJSZWZdKTtcclxuICBjb25zdCBtZXNzYWdlUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xyXG4gIGZ1bmN0aW9uIHZhbGlkYXRlRW1haWwodmFsdWUpIHtcclxuICAgIGxldCBlcnJvcjtcclxuICAgIGlmICghdmFsdWUpIHtcclxuICAgICAgZXJyb3IgPSBcIlJlcXVpcmVkXCI7XHJcbiAgICB9IGVsc2UgaWYgKCEvXltBLVowLTkuXyUrLV0rQFtBLVowLTkuLV0rXFwuW0EtWl17Miw0fSQvaS50ZXN0KHZhbHVlKSkge1xyXG4gICAgICBlcnJvciA9IFwiSW52YWxpZCBlbWFpbCBhZGRyZXNzXCI7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZXJyb3I7XHJcbiAgfVxyXG4gIGNvbnN0IHNlbmRNZXNzYWdlID0gKG1zKSA9PiBuZXcgUHJvbWlzZSgocikgPT4gc2V0VGltZW91dChyLCBtcykpO1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPExpZ2h0VGhlbWU+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2lyY2xlLWJnXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjaXJjbGUtY29sb3IgZml4ZWRcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JhZGllbnQtY2lyY2xlXCI+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyYWRpZW50LWNpcmNsZSB0d29cIj48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxOYXZiYXIgbnI9e25hdmJhclJlZn0gbHI9e2xvZ29SZWZ9IHRoZW1lPVwidGhlbWVMXCIgLz5cclxuICAgICAgPFBhZ2VIZWFkZXJcclxuICAgICAgICB0aXRsZT1cIkJsb2dzLlwiXHJcbiAgICAgICAgcGFyYWdyYXBoPVwiQWxsIHRoZSBtb3N0IGN1cnJlbnQgbmV3cyBhbmQgZXZlbnRzIG9mIG91ciBjcmVhdGl2ZSB0ZWFtLlwiXHJcbiAgICAgIC8+XHJcbiAgICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cImJsb2ctcGcgc2luZ2xlIHNlY3Rpb24tcGFkZGluZyBwdC0wXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMTFcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInBvc3RcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy9ibG9nL2Jsb2cgaW1nMS53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250ZW50IHB0LTYwXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJleHRyYS10aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEJ1c2luZXNzIEh1YjogSXRzIHJvbGUgaW4gc3VwcG9ydGluZyBjb21wYW5pZXMgaW4gdGhlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhZ2VzIG9mIGVzdGFibGlzaG1lbnQsIGRldmVsb3BtZW50LCBhbmQuLi5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9oND5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzcGFjaWFsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbiBhIHJhcGlkbHkgZXZvbHZpbmcgYW5kIGNvbXBldGl0aXZlIGJ1c2luZXNzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYW5kc2NhcGUsIGNvbXBhbmllcyBvZnRlbiBuZWVkIHNwZWNpYWxpemVkIHN1cHBvcnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBndWlkYW5jZSB0byBtZWV0IGNoYWxsZW5nZXMsIGV4cGxvaXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wcG9ydHVuaXRpZXMsIGFuZCBhY2hpZXZlIHN1c3RhaW5hYmxlIGdyb3d0aC4gSGVyZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tZXMgdGhlIHJvbGUgb2YgQnVzaW5lc3MgSHViIGFzIGFuIGVzc2VudGlhbCBhbGx5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgY29tcGFuaWVzLCBhcyBpdCBwcm92aWRlcyBjb21wcmVoZW5zaXZlIHNlcnZpY2VzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhaW1lZCBhdCBhc3Npc3RpbmcgY29tcGFuaWVzIGluIHRoZSBzdGFnZXMgb2ZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVzdGFibGlzaG1lbnQsIGRldmVsb3BtZW50LCBhbmQgbWFuYWdlbWVudC4gSW4gdGhpc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJ0aWNsZSwgd2UnbGwgbG9vayBhdCB0aGUgcm9sZSBvZiBCdXNpbmVzcyBIdWIgYW5kXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBob3cgaXQgZW1wb3dlcnMgYnVzaW5lc3NlcyB0aHJvdWdob3V0IHRoZWlyIGpvdXJuZXkuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGg2PiBTdXBwb3J0IGluIHRoZSBlc3RhYmxpc2htZW50IHBoYXNlOjwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEJ1c2luZXNzIEh1YiBwcm92aWRlcyB2YWx1YWJsZSBzdXBwb3J0IHRvIGNvbXBhbmllc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGR1cmluZyB0aGUgZXN0YWJsaXNobWVudCBwaGFzZS4gV2hldGhlciBpdCBpcyBsZWdhbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9yZ2FuaXphdGlvbiwgc3RydWN0dXJpbmcgYSBsZWdhbCBlbnRpdHksIG9yIHByZXBhcmluZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGtleSBkb2N1bWVudHMsIEJ1c2luZXNzIEh1YiBwcm92aWRlcyBjdXN0b21pemVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpZGFuY2UgdG8gZW5zdXJlIGEgc21vb3RoIGFuZCBjb21wbGlhbnQgb25ib2FyZGluZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3MuIExldmVyYWdpbmcgaXRzIGV4cGVydGlzZSBhbmQgbmV0d29yayxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBCdXNpbmVzcyBIdWIgaGVscHMgY29tcGFuaWVzIGJ1aWxkIGEgc3Ryb25nIGJhc2UgZm9yXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlaXIgb3BlcmF0aW9ucy5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGg2PiBEZXZlbG9wbWVudCBTZXJ2aWNlczo8L2g2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQWZ0ZXIgaW5jb3Jwb3JhdGlvbiwgQnVzaW5lc3MgSHViIG9mZmVycyBhIHJhbmdlIG9mXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGV2ZWxvcG1lbnQgc2VydmljZXMgYWltZWQgYXQgcHJvbW90aW5nIGdyb3d0aCBhbmRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBpbm5vdmF0aW9uIHdpdGhpbiBjb21wYW5pZXMuIFRoaXMgaW5jbHVkZXMgbWFya2V0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYW5hbHlzaXMsIHN0cmF0ZWdpYyBwbGFubmluZywgdGVjaG5vbG9neSBpbnRlZ3JhdGlvbixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgbW9yZS4gQnkgaWRlbnRpZnlpbmcgbWFya2V0IHRyZW5kcywgZXhwbG9yaW5nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb3Bwb3J0dW5pdGllcywgYW5kIGltcGxlbWVudGluZyBzdHJhdGVnaWMgaW5pdGlhdGl2ZXMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQnVzaW5lc3MgSHViIGhlbHBzIGNvbXBhbmllcyBpbXByb3ZlIHRoZWlyIHBlcmZvcm1hbmNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGZ1bGx5IGV4cGxvaXQgdGhlaXIgcG90ZW50aWFsLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5NYW5hZ2VtZW50IHNvbHV0aW9uczo8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBCdXNpbmVzcyBIdWIgaXMgYSBzdHJhdGVnaWMgcGFydG5lciBpbiBtYW5hZ2luZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlvdXMgYXNwZWN0cyBvZiB0aGUgY29tcGFueSdzIG9wZXJhdGlvbnMuIEZyb21cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbmNlIGFuZCBhZG1pbmlzdHJhdGl2ZSBtYW5hZ2VtZW50IHRvIGh1bWFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2VzIGFuZCBtYXJrZXRpbmcsIEJ1c2luZXNzIEh1YiBvZmZlcnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21pemVkIHNvbHV0aW9ucyB0byBzdHJlYW1saW5lIG9wZXJhdGlvbnMsIGVuaGFuY2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBlZmZpY2llbmN5LCBhbmQgYWNoaWV2ZSBvcmdhbml6YXRpb25hbCBzdWNjZXNzLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFRocm91Z2ggaXRzIGV4cGVydGlzZSBpbiBtYW5hZ2VtZW50IGFuZCBpbmR1c3RyeSBiZXN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJhY3RpY2VzLCBCdXNpbmVzcyBIdWIgZW5hYmxlcyBjb21wYW5pZXMgdG8gZm9jdXMgb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVpciBjb3JlIG1pc3Npb25zIHdoaWxlIGVuc3VyaW5nIG9wZXJhdGlvbmFsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjZWxsZW5jZS5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDY+IEFjY2VzcyB0byByZXNvdXJjZXMgYW5kIG5ldHdvcmtzOjwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIE9uZSBvZiB0aGUgbWFpbiBhZHZhbnRhZ2VzIG9mIHBhcnRuZXJpbmcgd2l0aCBCdXNpbmVzc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEh1YiBpcyBhY2Nlc3MgdG8gYSB3aWRlIG5ldHdvcmsgb2YgcmVzb3VyY2VzIGFuZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uc2hpcHMuIFdoZXRoZXIgaXQncyBvYnRhaW5pbmcgZmluYW5jaW5nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1pbmcgc3RyYXRlZ2ljIHBhcnRuZXJzaGlwcywgb3IgdGFwcGluZyBpbnRvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kdXN0cnkgZXhwZXJ0aXNlLCBCdXNpbmVzcyBIdWIgcHJvdmlkZXMgY29tcGFuaWVzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCB0aGUgcmVzb3VyY2VzIHRoZXkgbmVlZCB0byBzdWNjZWVkIGluIGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wZXRpdGl2ZSBlbnZpcm9ubWVudC4gQnkgbGV2ZXJhZ2luZyBpdHMgZXh0ZW5zaXZlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0d29yaywgQnVzaW5lc3MgSHViIGhlbHBzIGNvbXBhbmllcyBvdmVyY29tZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9ic3RhY2xlcyBhbmQgZXhwbG9pdCBncm93dGggb3Bwb3J0dW5pdGllcy5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDY+IENvbnRpbnVvdXMgc3VwcG9ydCBhbmQgZ3VpZGFuY2U6PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAge1wiIFwifVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEJ1c2luZXNzIEh1YiBwcm92aWRlcyBvbmdvaW5nIHN1cHBvcnQgYW5kIGd1aWRhbmNlIHRvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcGFuaWVzIGF0IGV2ZXJ5IHN0YWdlIG9mIHRoZWlyIGpvdXJuZXkuIFdoZXRoZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBpdCdzIGFkYXB0aW5nIHRvIGNoYW5nZXMgaW4gdGhlIG1hcmtldCwgZXhwYW5kaW5nIGludG9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgbWFya2V0cywgb3IgZGVhbGluZyB3aXRoIHJlZ3VsYXRvcnkgY29tcGxleGl0aWVzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEJ1c2luZXNzIEh1YiBwcm92aWRlcyBvbmdvaW5nIHN1cHBvcnQgdG8gZW5zdXJlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcGFuaWVzIHJlbWFpbiBlbXBvd2VyZWQgYW5kIGFibGUgdG8gYWNoaWV2ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmctdGVybSBzdWNjZXNzLiBUaHJvdWdoIGFjdGl2ZSBtb25pdG9yaW5nIGFuZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmF0ZWdpYyBhZHZpY2UsIEJ1c2luZXNzIEh1YiBoZWxwcyBjb21wYW5pZXMgZXhjZWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgYWNoaWV2ZSBsb25nLXRlcm0gc3VjY2Vzcy5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwicGFnaW5hdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiIzBcIj5QcmV2IFBvc3Q8L2E+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9e2AvYmxvZy9ibG9nLWRhcmtgfT5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYXMgZmEtdGgtbGFyZ2VcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiIzBcIj5OZXh0IFBvc3Q8L2E+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29tbWVudC1mb3JtXCIgaWQ9XCJjb21tZW50LWZvcm1cIj5cclxuICAgICAgICAgICAgICAgICAgPGg1PkFkZCBDb21tZW50IDo8L2g1PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZvcm1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8Rm9ybWlrXHJcbiAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsVmFsdWVzPXt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVtYWlsOiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb21tZW50OiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgIG9uU3VibWl0PXthc3luYyAodmFsdWVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHNlbmRNZXNzYWdlKDUwMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KEpTT04uc3RyaW5naWZ5KHZhbHVlcywgbnVsbCwgMikpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBSZXNldCB0aGUgdmFsdWVzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcy5uYW1lID0gXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzLmVtYWlsID0gXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzLmNvbW1lbnQgPSBcIlwiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7KHsgZXJyb3JzLCB0b3VjaGVkIH0pID0+IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPEZvcm0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGaWVsZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXM9XCJ0ZXh0YXJlYVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIllvdXIgQ29tbWVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiY29tbWVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZpZWxkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIllvdXIgTmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwibmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZpZWxkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiZW1haWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGU9e3ZhbGlkYXRlRW1haWx9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIllvdXIgRW1haWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImVtYWlsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtlcnJvcnMuZW1haWwgJiYgdG91Y2hlZC5lbWFpbCAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PntlcnJvcnMuZW1haWx9PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9ybS1ncm91cCB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiIGJ1dG4gYm9yZCAgY3VydmUgZnVsbC13aWR0aFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29tbWVudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L0Zvcm0+XHJcbiAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvRm9ybWlrPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L3NlY3Rpb24+XHJcbiAgICAgIDxGb290ZXIgLz5cclxuICAgIDwvTGlnaHRUaGVtZT5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgQmxvZ0RldGFpbHNPbmU7XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsImJsb2czRGF0YSIsIkxpZ2h0VGhlbWUiLCJOYXZiYXIiLCJCbG9nRGV0YWlscyIsIlBhZ2VIZWFkZXIiLCJGb290ZXIiLCJMaW5rIiwiRm9ybWlrIiwiRm9ybSIsIkZpZWxkIiwiU2Nyb2xsTGluayIsIkJsb2dEZXRhaWxzT25lIiwibmF2YmFyUmVmIiwidXNlUmVmIiwibG9nb1JlZiIsInVzZUVmZmVjdCIsIm5hdmJhciIsImN1cnJlbnQiLCJsb2dvIiwid2luZG93IiwicGFnZVlPZmZzZXQiLCJjbGFzc0xpc3QiLCJhZGQiLCJyZW1vdmUiLCJhZGRFdmVudExpc3RlbmVyIiwibWVzc2FnZVJlZiIsInZhbGlkYXRlRW1haWwiLCJ2YWx1ZSIsImVycm9yIiwidGVzdCIsInNlbmRNZXNzYWdlIiwibXMiLCJQcm9taXNlIiwiciIsInNldFRpbWVvdXQiLCJuYW1lIiwiZW1haWwiLCJjb21tZW50IiwidmFsdWVzIiwiYWxlcnQiLCJKU09OIiwic3RyaW5naWZ5IiwiZXJyb3JzIiwidG91Y2hlZCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/pages/blog-details/blog-details-1.jsx\n"); + +/***/ }), + +/***/ "./node_modules/deepmerge/dist/es.js": +/*!*******************************************!*\ + !*** ./node_modules/deepmerge/dist/es.js ***! + \*******************************************/ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tObject.keys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tObject.keys(source).forEach(function(key) {\n\t\tif (!options.isMergeableObject(source[key]) || !target[key]) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = deepmerge(target[key], source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (deepmerge_1);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvZGVlcG1lcmdlL2Rpc3QvZXMuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsRUFBRSxJQUFJO0FBQ047O0FBRUE7O0FBRUEsK0RBQWUsV0FBVyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9kZWVwbWVyZ2UvZGlzdC9lcy5qcz9hNzM4Il0sInNvdXJjZXNDb250ZW50IjpbInZhciBpc01lcmdlYWJsZU9iamVjdCA9IGZ1bmN0aW9uIGlzTWVyZ2VhYmxlT2JqZWN0KHZhbHVlKSB7XG5cdHJldHVybiBpc05vbk51bGxPYmplY3QodmFsdWUpXG5cdFx0JiYgIWlzU3BlY2lhbCh2YWx1ZSlcbn07XG5cbmZ1bmN0aW9uIGlzTm9uTnVsbE9iamVjdCh2YWx1ZSkge1xuXHRyZXR1cm4gISF2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnXG59XG5cbmZ1bmN0aW9uIGlzU3BlY2lhbCh2YWx1ZSkge1xuXHR2YXIgc3RyaW5nVmFsdWUgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpO1xuXG5cdHJldHVybiBzdHJpbmdWYWx1ZSA9PT0gJ1tvYmplY3QgUmVnRXhwXSdcblx0XHR8fCBzdHJpbmdWYWx1ZSA9PT0gJ1tvYmplY3QgRGF0ZV0nXG5cdFx0fHwgaXNSZWFjdEVsZW1lbnQodmFsdWUpXG59XG5cbi8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvYmxvYi9iNWFjOTYzZmI3OTFkMTI5OGU3ZjM5NjIzNjM4M2JjOTU1ZjkxNmMxL3NyYy9pc29tb3JwaGljL2NsYXNzaWMvZWxlbWVudC9SZWFjdEVsZW1lbnQuanMjTDIxLUwyNVxudmFyIGNhblVzZVN5bWJvbCA9IHR5cGVvZiBTeW1ib2wgPT09ICdmdW5jdGlvbicgJiYgU3ltYm9sLmZvcjtcbnZhciBSRUFDVF9FTEVNRU5UX1RZUEUgPSBjYW5Vc2VTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5lbGVtZW50JykgOiAweGVhYzc7XG5cbmZ1bmN0aW9uIGlzUmVhY3RFbGVtZW50KHZhbHVlKSB7XG5cdHJldHVybiB2YWx1ZS4kJHR5cGVvZiA9PT0gUkVBQ1RfRUxFTUVOVF9UWVBFXG59XG5cbmZ1bmN0aW9uIGVtcHR5VGFyZ2V0KHZhbCkge1xuXHRyZXR1cm4gQXJyYXkuaXNBcnJheSh2YWwpID8gW10gOiB7fVxufVxuXG5mdW5jdGlvbiBjbG9uZVVubGVzc090aGVyd2lzZVNwZWNpZmllZCh2YWx1ZSwgb3B0aW9ucykge1xuXHRyZXR1cm4gKG9wdGlvbnMuY2xvbmUgIT09IGZhbHNlICYmIG9wdGlvbnMuaXNNZXJnZWFibGVPYmplY3QodmFsdWUpKVxuXHRcdD8gZGVlcG1lcmdlKGVtcHR5VGFyZ2V0KHZhbHVlKSwgdmFsdWUsIG9wdGlvbnMpXG5cdFx0OiB2YWx1ZVxufVxuXG5mdW5jdGlvbiBkZWZhdWx0QXJyYXlNZXJnZSh0YXJnZXQsIHNvdXJjZSwgb3B0aW9ucykge1xuXHRyZXR1cm4gdGFyZ2V0LmNvbmNhdChzb3VyY2UpLm1hcChmdW5jdGlvbihlbGVtZW50KSB7XG5cdFx0cmV0dXJuIGNsb25lVW5sZXNzT3RoZXJ3aXNlU3BlY2lmaWVkKGVsZW1lbnQsIG9wdGlvbnMpXG5cdH0pXG59XG5cbmZ1bmN0aW9uIG1lcmdlT2JqZWN0KHRhcmdldCwgc291cmNlLCBvcHRpb25zKSB7XG5cdHZhciBkZXN0aW5hdGlvbiA9IHt9O1xuXHRpZiAob3B0aW9ucy5pc01lcmdlYWJsZU9iamVjdCh0YXJnZXQpKSB7XG5cdFx0T2JqZWN0LmtleXModGFyZ2V0KS5mb3JFYWNoKGZ1bmN0aW9uKGtleSkge1xuXHRcdFx0ZGVzdGluYXRpb25ba2V5XSA9IGNsb25lVW5sZXNzT3RoZXJ3aXNlU3BlY2lmaWVkKHRhcmdldFtrZXldLCBvcHRpb25zKTtcblx0XHR9KTtcblx0fVxuXHRPYmplY3Qua2V5cyhzb3VyY2UpLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7XG5cdFx0aWYgKCFvcHRpb25zLmlzTWVyZ2VhYmxlT2JqZWN0KHNvdXJjZVtrZXldKSB8fCAhdGFyZ2V0W2tleV0pIHtcblx0XHRcdGRlc3RpbmF0aW9uW2tleV0gPSBjbG9uZVVubGVzc090aGVyd2lzZVNwZWNpZmllZChzb3VyY2Vba2V5XSwgb3B0aW9ucyk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGRlc3RpbmF0aW9uW2tleV0gPSBkZWVwbWVyZ2UodGFyZ2V0W2tleV0sIHNvdXJjZVtrZXldLCBvcHRpb25zKTtcblx0XHR9XG5cdH0pO1xuXHRyZXR1cm4gZGVzdGluYXRpb25cbn1cblxuZnVuY3Rpb24gZGVlcG1lcmdlKHRhcmdldCwgc291cmNlLCBvcHRpb25zKSB7XG5cdG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuXHRvcHRpb25zLmFycmF5TWVyZ2UgPSBvcHRpb25zLmFycmF5TWVyZ2UgfHwgZGVmYXVsdEFycmF5TWVyZ2U7XG5cdG9wdGlvbnMuaXNNZXJnZWFibGVPYmplY3QgPSBvcHRpb25zLmlzTWVyZ2VhYmxlT2JqZWN0IHx8IGlzTWVyZ2VhYmxlT2JqZWN0O1xuXG5cdHZhciBzb3VyY2VJc0FycmF5ID0gQXJyYXkuaXNBcnJheShzb3VyY2UpO1xuXHR2YXIgdGFyZ2V0SXNBcnJheSA9IEFycmF5LmlzQXJyYXkodGFyZ2V0KTtcblx0dmFyIHNvdXJjZUFuZFRhcmdldFR5cGVzTWF0Y2ggPSBzb3VyY2VJc0FycmF5ID09PSB0YXJnZXRJc0FycmF5O1xuXG5cdGlmICghc291cmNlQW5kVGFyZ2V0VHlwZXNNYXRjaCkge1xuXHRcdHJldHVybiBjbG9uZVVubGVzc090aGVyd2lzZVNwZWNpZmllZChzb3VyY2UsIG9wdGlvbnMpXG5cdH0gZWxzZSBpZiAoc291cmNlSXNBcnJheSkge1xuXHRcdHJldHVybiBvcHRpb25zLmFycmF5TWVyZ2UodGFyZ2V0LCBzb3VyY2UsIG9wdGlvbnMpXG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIG1lcmdlT2JqZWN0KHRhcmdldCwgc291cmNlLCBvcHRpb25zKVxuXHR9XG59XG5cbmRlZXBtZXJnZS5hbGwgPSBmdW5jdGlvbiBkZWVwbWVyZ2VBbGwoYXJyYXksIG9wdGlvbnMpIHtcblx0aWYgKCFBcnJheS5pc0FycmF5KGFycmF5KSkge1xuXHRcdHRocm93IG5ldyBFcnJvcignZmlyc3QgYXJndW1lbnQgc2hvdWxkIGJlIGFuIGFycmF5Jylcblx0fVxuXG5cdHJldHVybiBhcnJheS5yZWR1Y2UoZnVuY3Rpb24ocHJldiwgbmV4dCkge1xuXHRcdHJldHVybiBkZWVwbWVyZ2UocHJldiwgbmV4dCwgb3B0aW9ucylcblx0fSwge30pXG59O1xuXG52YXIgZGVlcG1lcmdlXzEgPSBkZWVwbWVyZ2U7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZXBtZXJnZV8xO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/deepmerge/dist/es.js\n"); + +/***/ }), + +/***/ "./node_modules/formik/dist/formik.esm.js": +/*!************************************************!*\ + !*** ./node_modules/formik/dist/formik.esm.js ***! + \************************************************/ +/***/ (function(__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 */ \"ErrorMessage\": function() { return /* binding */ ErrorMessage; },\n/* harmony export */ \"FastField\": function() { return /* binding */ FastField; },\n/* harmony export */ \"Field\": function() { return /* binding */ Field; },\n/* harmony export */ \"FieldArray\": function() { return /* binding */ FieldArray; },\n/* harmony export */ \"Form\": function() { return /* binding */ Form; },\n/* harmony export */ \"Formik\": function() { return /* binding */ Formik; },\n/* harmony export */ \"FormikConsumer\": function() { return /* binding */ FormikConsumer; },\n/* harmony export */ \"FormikContext\": function() { return /* binding */ FormikContext; },\n/* harmony export */ \"FormikProvider\": function() { return /* binding */ FormikProvider; },\n/* harmony export */ \"connect\": function() { return /* binding */ connect; },\n/* harmony export */ \"getActiveElement\": function() { return /* binding */ getActiveElement; },\n/* harmony export */ \"getIn\": function() { return /* binding */ getIn; },\n/* harmony export */ \"insert\": function() { return /* binding */ insert; },\n/* harmony export */ \"isEmptyArray\": function() { return /* binding */ isEmptyArray; },\n/* harmony export */ \"isEmptyChildren\": function() { return /* binding */ isEmptyChildren; },\n/* harmony export */ \"isFunction\": function() { return /* binding */ isFunction; },\n/* harmony export */ \"isInputEvent\": function() { return /* binding */ isInputEvent; },\n/* harmony export */ \"isInteger\": function() { return /* binding */ isInteger; },\n/* harmony export */ \"isNaN\": function() { return /* binding */ isNaN$1; },\n/* harmony export */ \"isObject\": function() { return /* binding */ isObject; },\n/* harmony export */ \"isPromise\": function() { return /* binding */ isPromise; },\n/* harmony export */ \"isString\": function() { return /* binding */ isString; },\n/* harmony export */ \"move\": function() { return /* binding */ move; },\n/* harmony export */ \"prepareDataForValidation\": function() { return /* binding */ prepareDataForValidation; },\n/* harmony export */ \"replace\": function() { return /* binding */ replace; },\n/* harmony export */ \"setIn\": function() { return /* binding */ setIn; },\n/* harmony export */ \"setNestedObjectValues\": function() { return /* binding */ setNestedObjectValues; },\n/* harmony export */ \"swap\": function() { return /* binding */ swap; },\n/* harmony export */ \"useField\": function() { return /* binding */ useField; },\n/* harmony export */ \"useFormik\": function() { return /* binding */ useFormik; },\n/* harmony export */ \"useFormikContext\": function() { return /* binding */ useFormikContext; },\n/* harmony export */ \"validateYupSchema\": function() { return /* binding */ validateYupSchema; },\n/* harmony export */ \"withFormik\": function() { return /* binding */ withFormik; },\n/* harmony export */ \"yupToFormErrors\": function() { return /* binding */ yupToFormErrors; }\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_fast_compare__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-fast-compare */ \"./node_modules/react-fast-compare/index.js\");\n/* harmony import */ var react_fast_compare__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_fast_compare__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var deepmerge__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! deepmerge */ \"./node_modules/deepmerge/dist/es.js\");\n/* harmony import */ var lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! lodash-es/isPlainObject */ \"./node_modules/lodash-es/isPlainObject.js\");\n/* harmony import */ var lodash_es_clone__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! lodash-es/clone */ \"./node_modules/lodash-es/clone.js\");\n/* harmony import */ var lodash_es_toPath__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! lodash-es/toPath */ \"./node_modules/lodash-es/toPath.js\");\n/* harmony import */ var tiny_warning__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! tiny-warning */ \"./node_modules/tiny-warning/dist/tiny-warning.esm.js\");\n/* harmony import */ var hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! hoist-non-react-statics */ \"./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js\");\n/* harmony import */ var hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var lodash_es_cloneDeep__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! lodash-es/cloneDeep */ \"./node_modules/lodash-es/cloneDeep.js\");\n\n\n\n\n\n\n\n\n\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\n/** @private is the value an empty array? */\n\nvar isEmptyArray = function isEmptyArray(value) {\n return Array.isArray(value) && value.length === 0;\n};\n/** @private is the given object a Function? */\n\nvar isFunction = function isFunction(obj) {\n return typeof obj === 'function';\n};\n/** @private is the given object an Object? */\n\nvar isObject = function isObject(obj) {\n return obj !== null && typeof obj === 'object';\n};\n/** @private is the given object an integer? */\n\nvar isInteger = function isInteger(obj) {\n return String(Math.floor(Number(obj))) === obj;\n};\n/** @private is the given object a string? */\n\nvar isString = function isString(obj) {\n return Object.prototype.toString.call(obj) === '[object String]';\n};\n/** @private is the given object a NaN? */\n// eslint-disable-next-line no-self-compare\n\nvar isNaN$1 = function isNaN(obj) {\n return obj !== obj;\n};\n/** @private Does a React component have exactly 0 children? */\n\nvar isEmptyChildren = function isEmptyChildren(children) {\n return react__WEBPACK_IMPORTED_MODULE_0__.Children.count(children) === 0;\n};\n/** @private is the given object/value a promise? */\n\nvar isPromise = function isPromise(value) {\n return isObject(value) && isFunction(value.then);\n};\n/** @private is the given object/value a type of synthetic event? */\n\nvar isInputEvent = function isInputEvent(value) {\n return value && isObject(value) && isObject(value.target);\n};\n/**\r\n * Same as document.activeElement but wraps in a try-catch block. In IE it is\r\n * not safe to call document.activeElement if there is nothing focused.\r\n *\r\n * The activeElement will be null only if the document or document body is not\r\n * yet defined.\r\n *\r\n * @param {?Document} doc Defaults to current document.\r\n * @return {Element | null}\r\n * @see https://github.com/facebook/fbjs/blob/master/packages/fbjs/src/core/dom/getActiveElement.js\r\n */\n\nfunction getActiveElement(doc) {\n doc = doc || (typeof document !== 'undefined' ? document : undefined);\n\n if (typeof doc === 'undefined') {\n return null;\n }\n\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\n/**\r\n * Deeply get a value from an object via its path.\r\n */\n\nfunction getIn(obj, key, def, p) {\n if (p === void 0) {\n p = 0;\n }\n\n var path = (0,lodash_es_toPath__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(key);\n\n while (obj && p < path.length) {\n obj = obj[path[p++]];\n }\n\n return obj === undefined ? def : obj;\n}\n/**\r\n * Deeply set a value from in object via it's path. If the value at `path`\r\n * has changed, return a shallow copy of obj with `value` set at `path`.\r\n * If `value` has not changed, return the original `obj`.\r\n *\r\n * Existing objects / arrays along `path` are also shallow copied. Sibling\r\n * objects along path retain the same internal js reference. Since new\r\n * objects / arrays are only created along `path`, we can test if anything\r\n * changed in a nested structure by comparing the object's reference in\r\n * the old and new object, similar to how russian doll cache invalidation\r\n * works.\r\n *\r\n * In earlier versions of this function, which used cloneDeep, there were\r\n * issues whereby settings a nested value would mutate the parent\r\n * instead of creating a new object. `clone` avoids that bug making a\r\n * shallow copy of the objects along the update path\r\n * so no object is mutated in place.\r\n *\r\n * Before changing this function, please read through the following\r\n * discussions.\r\n *\r\n * @see https://github.com/developit/linkstate\r\n * @see https://github.com/jaredpalmer/formik/pull/123\r\n */\n\nfunction setIn(obj, path, value) {\n var res = (0,lodash_es_clone__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(obj); // this keeps inheritance when obj is a class\n\n var resVal = res;\n var i = 0;\n var pathArray = (0,lodash_es_toPath__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(path);\n\n for (; i < pathArray.length - 1; i++) {\n var currentPath = pathArray[i];\n var currentObj = getIn(obj, pathArray.slice(0, i + 1));\n\n if (currentObj && (isObject(currentObj) || Array.isArray(currentObj))) {\n resVal = resVal[currentPath] = (0,lodash_es_clone__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(currentObj);\n } else {\n var nextPath = pathArray[i + 1];\n resVal = resVal[currentPath] = isInteger(nextPath) && Number(nextPath) >= 0 ? [] : {};\n }\n } // Return original object if new value is the same as current\n\n\n if ((i === 0 ? obj : resVal)[pathArray[i]] === value) {\n return obj;\n }\n\n if (value === undefined) {\n delete resVal[pathArray[i]];\n } else {\n resVal[pathArray[i]] = value;\n } // If the path array has a single element, the loop did not run.\n // Deleting on `resVal` had no effect in this scenario, so we delete on the result instead.\n\n\n if (i === 0 && value === undefined) {\n delete res[pathArray[i]];\n }\n\n return res;\n}\n/**\r\n * Recursively a set the same value for all keys and arrays nested object, cloning\r\n * @param object\r\n * @param value\r\n * @param visited\r\n * @param response\r\n */\n\nfunction setNestedObjectValues(object, value, visited, response) {\n if (visited === void 0) {\n visited = new WeakMap();\n }\n\n if (response === void 0) {\n response = {};\n }\n\n for (var _i = 0, _Object$keys = Object.keys(object); _i < _Object$keys.length; _i++) {\n var k = _Object$keys[_i];\n var val = object[k];\n\n if (isObject(val)) {\n if (!visited.get(val)) {\n visited.set(val, true); // In order to keep array values consistent for both dot path and\n // bracket syntax, we need to check if this is an array so that\n // this will output { friends: [true] } and not { friends: { \"0\": true } }\n\n response[k] = Array.isArray(val) ? [] : {};\n setNestedObjectValues(val, value, visited, response[k]);\n }\n } else {\n response[k] = value;\n }\n }\n\n return response;\n}\n\nvar FormikContext = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(undefined);\nFormikContext.displayName = 'FormikContext';\nvar FormikProvider = FormikContext.Provider;\nvar FormikConsumer = FormikContext.Consumer;\nfunction useFormikContext() {\n var formik = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(FormikContext);\n !!!formik ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, \"Formik context is undefined, please verify you are calling useFormikContext() as child of a <Formik> component.\") : 0 : void 0;\n return formik;\n}\n\nfunction formikReducer(state, msg) {\n switch (msg.type) {\n case 'SET_VALUES':\n return _extends({}, state, {\n values: msg.payload\n });\n\n case 'SET_TOUCHED':\n return _extends({}, state, {\n touched: msg.payload\n });\n\n case 'SET_ERRORS':\n if (react_fast_compare__WEBPACK_IMPORTED_MODULE_1___default()(state.errors, msg.payload)) {\n return state;\n }\n\n return _extends({}, state, {\n errors: msg.payload\n });\n\n case 'SET_STATUS':\n return _extends({}, state, {\n status: msg.payload\n });\n\n case 'SET_ISSUBMITTING':\n return _extends({}, state, {\n isSubmitting: msg.payload\n });\n\n case 'SET_ISVALIDATING':\n return _extends({}, state, {\n isValidating: msg.payload\n });\n\n case 'SET_FIELD_VALUE':\n return _extends({}, state, {\n values: setIn(state.values, msg.payload.field, msg.payload.value)\n });\n\n case 'SET_FIELD_TOUCHED':\n return _extends({}, state, {\n touched: setIn(state.touched, msg.payload.field, msg.payload.value)\n });\n\n case 'SET_FIELD_ERROR':\n return _extends({}, state, {\n errors: setIn(state.errors, msg.payload.field, msg.payload.value)\n });\n\n case 'RESET_FORM':\n return _extends({}, state, msg.payload);\n\n case 'SET_FORMIK_STATE':\n return msg.payload(state);\n\n case 'SUBMIT_ATTEMPT':\n return _extends({}, state, {\n touched: setNestedObjectValues(state.values, true),\n isSubmitting: true,\n submitCount: state.submitCount + 1\n });\n\n case 'SUBMIT_FAILURE':\n return _extends({}, state, {\n isSubmitting: false\n });\n\n case 'SUBMIT_SUCCESS':\n return _extends({}, state, {\n isSubmitting: false\n });\n\n default:\n return state;\n }\n} // Initial empty states // objects\n\n\nvar emptyErrors = {};\nvar emptyTouched = {};\nfunction useFormik(_ref) {\n var _ref$validateOnChange = _ref.validateOnChange,\n validateOnChange = _ref$validateOnChange === void 0 ? true : _ref$validateOnChange,\n _ref$validateOnBlur = _ref.validateOnBlur,\n validateOnBlur = _ref$validateOnBlur === void 0 ? true : _ref$validateOnBlur,\n _ref$validateOnMount = _ref.validateOnMount,\n validateOnMount = _ref$validateOnMount === void 0 ? false : _ref$validateOnMount,\n isInitialValid = _ref.isInitialValid,\n _ref$enableReinitiali = _ref.enableReinitialize,\n enableReinitialize = _ref$enableReinitiali === void 0 ? false : _ref$enableReinitiali,\n onSubmit = _ref.onSubmit,\n rest = _objectWithoutPropertiesLoose(_ref, [\"validateOnChange\", \"validateOnBlur\", \"validateOnMount\", \"isInitialValid\", \"enableReinitialize\", \"onSubmit\"]);\n\n var props = _extends({\n validateOnChange: validateOnChange,\n validateOnBlur: validateOnBlur,\n validateOnMount: validateOnMount,\n onSubmit: onSubmit\n }, rest);\n\n var initialValues = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(props.initialValues);\n var initialErrors = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(props.initialErrors || emptyErrors);\n var initialTouched = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(props.initialTouched || emptyTouched);\n var initialStatus = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(props.initialStatus);\n var isMounted = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(false);\n var fieldRegistry = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)({});\n\n if (true) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n !(typeof isInitialValid === 'undefined') ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, 'isInitialValid has been deprecated and will be removed in future versions of Formik. Please use initialErrors or validateOnMount instead.') : 0 : void 0; // eslint-disable-next-line\n }, []);\n }\n\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n isMounted.current = true;\n return function () {\n isMounted.current = false;\n };\n }, []);\n\n var _React$useReducer = (0,react__WEBPACK_IMPORTED_MODULE_0__.useReducer)(formikReducer, {\n values: props.initialValues,\n errors: props.initialErrors || emptyErrors,\n touched: props.initialTouched || emptyTouched,\n status: props.initialStatus,\n isSubmitting: false,\n isValidating: false,\n submitCount: 0\n }),\n state = _React$useReducer[0],\n dispatch = _React$useReducer[1];\n\n var runValidateHandler = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (values, field) {\n return new Promise(function (resolve, reject) {\n var maybePromisedErrors = props.validate(values, field);\n\n if (maybePromisedErrors == null) {\n // use loose null check here on purpose\n resolve(emptyErrors);\n } else if (isPromise(maybePromisedErrors)) {\n maybePromisedErrors.then(function (errors) {\n resolve(errors || emptyErrors);\n }, function (actualException) {\n if (true) {\n console.warn(\"Warning: An unhandled error was caught during validation in <Formik validate />\", actualException);\n }\n\n reject(actualException);\n });\n } else {\n resolve(maybePromisedErrors);\n }\n });\n }, [props.validate]);\n /**\r\n * Run validation against a Yup schema and optionally run a function if successful\r\n */\n\n var runValidationSchema = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (values, field) {\n var validationSchema = props.validationSchema;\n var schema = isFunction(validationSchema) ? validationSchema(field) : validationSchema;\n var promise = field && schema.validateAt ? schema.validateAt(field, values) : validateYupSchema(values, schema);\n return new Promise(function (resolve, reject) {\n promise.then(function () {\n resolve(emptyErrors);\n }, function (err) {\n // Yup will throw a validation error if validation fails. We catch those and\n // resolve them into Formik errors. We can sniff if something is a Yup error\n // by checking error.name.\n // @see https://github.com/jquense/yup#validationerrorerrors-string--arraystring-value-any-path-string\n if (err.name === 'ValidationError') {\n resolve(yupToFormErrors(err));\n } else {\n // We throw any other errors\n if (true) {\n console.warn(\"Warning: An unhandled error was caught during validation in <Formik validationSchema />\", err);\n }\n\n reject(err);\n }\n });\n });\n }, [props.validationSchema]);\n var runSingleFieldLevelValidation = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (field, value) {\n return new Promise(function (resolve) {\n return resolve(fieldRegistry.current[field].validate(value));\n });\n }, []);\n var runFieldLevelValidations = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (values) {\n var fieldKeysWithValidation = Object.keys(fieldRegistry.current).filter(function (f) {\n return isFunction(fieldRegistry.current[f].validate);\n }); // Construct an array with all of the field validation functions\n\n var fieldValidations = fieldKeysWithValidation.length > 0 ? fieldKeysWithValidation.map(function (f) {\n return runSingleFieldLevelValidation(f, getIn(values, f));\n }) : [Promise.resolve('DO_NOT_DELETE_YOU_WILL_BE_FIRED')]; // use special case ;)\n\n return Promise.all(fieldValidations).then(function (fieldErrorsList) {\n return fieldErrorsList.reduce(function (prev, curr, index) {\n if (curr === 'DO_NOT_DELETE_YOU_WILL_BE_FIRED') {\n return prev;\n }\n\n if (curr) {\n prev = setIn(prev, fieldKeysWithValidation[index], curr);\n }\n\n return prev;\n }, {});\n });\n }, [runSingleFieldLevelValidation]); // Run all validations and return the result\n\n var runAllValidations = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (values) {\n return Promise.all([runFieldLevelValidations(values), props.validationSchema ? runValidationSchema(values) : {}, props.validate ? runValidateHandler(values) : {}]).then(function (_ref2) {\n var fieldErrors = _ref2[0],\n schemaErrors = _ref2[1],\n validateErrors = _ref2[2];\n var combinedErrors = deepmerge__WEBPACK_IMPORTED_MODULE_2__[\"default\"].all([fieldErrors, schemaErrors, validateErrors], {\n arrayMerge: arrayMerge\n });\n return combinedErrors;\n });\n }, [props.validate, props.validationSchema, runFieldLevelValidations, runValidateHandler, runValidationSchema]); // Run all validations methods and update state accordingly\n\n var validateFormWithHighPriority = useEventCallback(function (values) {\n if (values === void 0) {\n values = state.values;\n }\n\n dispatch({\n type: 'SET_ISVALIDATING',\n payload: true\n });\n return runAllValidations(values).then(function (combinedErrors) {\n if (!!isMounted.current) {\n dispatch({\n type: 'SET_ISVALIDATING',\n payload: false\n });\n dispatch({\n type: 'SET_ERRORS',\n payload: combinedErrors\n });\n }\n\n return combinedErrors;\n });\n });\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n if (validateOnMount && isMounted.current === true && react_fast_compare__WEBPACK_IMPORTED_MODULE_1___default()(initialValues.current, props.initialValues)) {\n validateFormWithHighPriority(initialValues.current);\n }\n }, [validateOnMount, validateFormWithHighPriority]);\n var resetForm = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (nextState) {\n var values = nextState && nextState.values ? nextState.values : initialValues.current;\n var errors = nextState && nextState.errors ? nextState.errors : initialErrors.current ? initialErrors.current : props.initialErrors || {};\n var touched = nextState && nextState.touched ? nextState.touched : initialTouched.current ? initialTouched.current : props.initialTouched || {};\n var status = nextState && nextState.status ? nextState.status : initialStatus.current ? initialStatus.current : props.initialStatus;\n initialValues.current = values;\n initialErrors.current = errors;\n initialTouched.current = touched;\n initialStatus.current = status;\n\n var dispatchFn = function dispatchFn() {\n dispatch({\n type: 'RESET_FORM',\n payload: {\n isSubmitting: !!nextState && !!nextState.isSubmitting,\n errors: errors,\n touched: touched,\n status: status,\n values: values,\n isValidating: !!nextState && !!nextState.isValidating,\n submitCount: !!nextState && !!nextState.submitCount && typeof nextState.submitCount === 'number' ? nextState.submitCount : 0\n }\n });\n };\n\n if (props.onReset) {\n var maybePromisedOnReset = props.onReset(state.values, imperativeMethods);\n\n if (isPromise(maybePromisedOnReset)) {\n maybePromisedOnReset.then(dispatchFn);\n } else {\n dispatchFn();\n }\n } else {\n dispatchFn();\n }\n }, [props.initialErrors, props.initialStatus, props.initialTouched]);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n if (isMounted.current === true && !react_fast_compare__WEBPACK_IMPORTED_MODULE_1___default()(initialValues.current, props.initialValues)) {\n if (enableReinitialize) {\n initialValues.current = props.initialValues;\n resetForm();\n }\n\n if (validateOnMount) {\n validateFormWithHighPriority(initialValues.current);\n }\n }\n }, [enableReinitialize, props.initialValues, resetForm, validateOnMount, validateFormWithHighPriority]);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n if (enableReinitialize && isMounted.current === true && !react_fast_compare__WEBPACK_IMPORTED_MODULE_1___default()(initialErrors.current, props.initialErrors)) {\n initialErrors.current = props.initialErrors || emptyErrors;\n dispatch({\n type: 'SET_ERRORS',\n payload: props.initialErrors || emptyErrors\n });\n }\n }, [enableReinitialize, props.initialErrors]);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n if (enableReinitialize && isMounted.current === true && !react_fast_compare__WEBPACK_IMPORTED_MODULE_1___default()(initialTouched.current, props.initialTouched)) {\n initialTouched.current = props.initialTouched || emptyTouched;\n dispatch({\n type: 'SET_TOUCHED',\n payload: props.initialTouched || emptyTouched\n });\n }\n }, [enableReinitialize, props.initialTouched]);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n if (enableReinitialize && isMounted.current === true && !react_fast_compare__WEBPACK_IMPORTED_MODULE_1___default()(initialStatus.current, props.initialStatus)) {\n initialStatus.current = props.initialStatus;\n dispatch({\n type: 'SET_STATUS',\n payload: props.initialStatus\n });\n }\n }, [enableReinitialize, props.initialStatus, props.initialTouched]);\n var validateField = useEventCallback(function (name) {\n // This will efficiently validate a single field by avoiding state\n // changes if the validation function is synchronous. It's different from\n // what is called when using validateForm.\n if (fieldRegistry.current[name] && isFunction(fieldRegistry.current[name].validate)) {\n var value = getIn(state.values, name);\n var maybePromise = fieldRegistry.current[name].validate(value);\n\n if (isPromise(maybePromise)) {\n // Only flip isValidating if the function is async.\n dispatch({\n type: 'SET_ISVALIDATING',\n payload: true\n });\n return maybePromise.then(function (x) {\n return x;\n }).then(function (error) {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: {\n field: name,\n value: error\n }\n });\n dispatch({\n type: 'SET_ISVALIDATING',\n payload: false\n });\n });\n } else {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: {\n field: name,\n value: maybePromise\n }\n });\n return Promise.resolve(maybePromise);\n }\n } else if (props.validationSchema) {\n dispatch({\n type: 'SET_ISVALIDATING',\n payload: true\n });\n return runValidationSchema(state.values, name).then(function (x) {\n return x;\n }).then(function (error) {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: {\n field: name,\n value: error[name]\n }\n });\n dispatch({\n type: 'SET_ISVALIDATING',\n payload: false\n });\n });\n }\n\n return Promise.resolve();\n });\n var registerField = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (name, _ref3) {\n var validate = _ref3.validate;\n fieldRegistry.current[name] = {\n validate: validate\n };\n }, []);\n var unregisterField = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (name) {\n delete fieldRegistry.current[name];\n }, []);\n var setTouched = useEventCallback(function (touched, shouldValidate) {\n dispatch({\n type: 'SET_TOUCHED',\n payload: touched\n });\n var willValidate = shouldValidate === undefined ? validateOnBlur : shouldValidate;\n return willValidate ? validateFormWithHighPriority(state.values) : Promise.resolve();\n });\n var setErrors = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (errors) {\n dispatch({\n type: 'SET_ERRORS',\n payload: errors\n });\n }, []);\n var setValues = useEventCallback(function (values, shouldValidate) {\n var resolvedValues = isFunction(values) ? values(state.values) : values;\n dispatch({\n type: 'SET_VALUES',\n payload: resolvedValues\n });\n var willValidate = shouldValidate === undefined ? validateOnChange : shouldValidate;\n return willValidate ? validateFormWithHighPriority(resolvedValues) : Promise.resolve();\n });\n var setFieldError = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (field, value) {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: {\n field: field,\n value: value\n }\n });\n }, []);\n var setFieldValue = useEventCallback(function (field, value, shouldValidate) {\n dispatch({\n type: 'SET_FIELD_VALUE',\n payload: {\n field: field,\n value: value\n }\n });\n var willValidate = shouldValidate === undefined ? validateOnChange : shouldValidate;\n return willValidate ? validateFormWithHighPriority(setIn(state.values, field, value)) : Promise.resolve();\n });\n var executeChange = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (eventOrTextValue, maybePath) {\n // By default, assume that the first argument is a string. This allows us to use\n // handleChange with React Native and React Native Web's onChangeText prop which\n // provides just the value of the input.\n var field = maybePath;\n var val = eventOrTextValue;\n var parsed; // If the first argument is not a string though, it has to be a synthetic React Event (or a fake one),\n // so we handle like we would a normal HTML change event.\n\n if (!isString(eventOrTextValue)) {\n // If we can, persist the event\n // @see https://reactjs.org/docs/events.html#event-pooling\n if (eventOrTextValue.persist) {\n eventOrTextValue.persist();\n }\n\n var target = eventOrTextValue.target ? eventOrTextValue.target : eventOrTextValue.currentTarget;\n var type = target.type,\n name = target.name,\n id = target.id,\n value = target.value,\n checked = target.checked,\n outerHTML = target.outerHTML,\n options = target.options,\n multiple = target.multiple;\n field = maybePath ? maybePath : name ? name : id;\n\n if (!field && \"development\" !== \"production\") {\n warnAboutMissingIdentifier({\n htmlContent: outerHTML,\n documentationAnchorLink: 'handlechange-e-reactchangeeventany--void',\n handlerName: 'handleChange'\n });\n }\n\n val = /number|range/.test(type) ? (parsed = parseFloat(value), isNaN(parsed) ? '' : parsed) : /checkbox/.test(type) // checkboxes\n ? getValueForCheckbox(getIn(state.values, field), checked, value) : options && multiple // <select multiple>\n ? getSelectedValues(options) : value;\n }\n\n if (field) {\n // Set form fields by name\n setFieldValue(field, val);\n }\n }, [setFieldValue, state.values]);\n var handleChange = useEventCallback(function (eventOrPath) {\n if (isString(eventOrPath)) {\n return function (event) {\n return executeChange(event, eventOrPath);\n };\n } else {\n executeChange(eventOrPath);\n }\n });\n var setFieldTouched = useEventCallback(function (field, touched, shouldValidate) {\n if (touched === void 0) {\n touched = true;\n }\n\n dispatch({\n type: 'SET_FIELD_TOUCHED',\n payload: {\n field: field,\n value: touched\n }\n });\n var willValidate = shouldValidate === undefined ? validateOnBlur : shouldValidate;\n return willValidate ? validateFormWithHighPriority(state.values) : Promise.resolve();\n });\n var executeBlur = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (e, path) {\n if (e.persist) {\n e.persist();\n }\n\n var _e$target = e.target,\n name = _e$target.name,\n id = _e$target.id,\n outerHTML = _e$target.outerHTML;\n var field = path ? path : name ? name : id;\n\n if (!field && \"development\" !== \"production\") {\n warnAboutMissingIdentifier({\n htmlContent: outerHTML,\n documentationAnchorLink: 'handleblur-e-any--void',\n handlerName: 'handleBlur'\n });\n }\n\n setFieldTouched(field, true);\n }, [setFieldTouched]);\n var handleBlur = useEventCallback(function (eventOrString) {\n if (isString(eventOrString)) {\n return function (event) {\n return executeBlur(event, eventOrString);\n };\n } else {\n executeBlur(eventOrString);\n }\n });\n var setFormikState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (stateOrCb) {\n if (isFunction(stateOrCb)) {\n dispatch({\n type: 'SET_FORMIK_STATE',\n payload: stateOrCb\n });\n } else {\n dispatch({\n type: 'SET_FORMIK_STATE',\n payload: function payload() {\n return stateOrCb;\n }\n });\n }\n }, []);\n var setStatus = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (status) {\n dispatch({\n type: 'SET_STATUS',\n payload: status\n });\n }, []);\n var setSubmitting = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (isSubmitting) {\n dispatch({\n type: 'SET_ISSUBMITTING',\n payload: isSubmitting\n });\n }, []);\n var submitForm = useEventCallback(function () {\n dispatch({\n type: 'SUBMIT_ATTEMPT'\n });\n return validateFormWithHighPriority().then(function (combinedErrors) {\n // In case an error was thrown and passed to the resolved Promise,\n // `combinedErrors` can be an instance of an Error. We need to check\n // that and abort the submit.\n // If we don't do that, calling `Object.keys(new Error())` yields an\n // empty array, which causes the validation to pass and the form\n // to be submitted.\n var isInstanceOfError = combinedErrors instanceof Error;\n var isActuallyValid = !isInstanceOfError && Object.keys(combinedErrors).length === 0;\n\n if (isActuallyValid) {\n // Proceed with submit...\n //\n // To respect sync submit fns, we can't simply wrap executeSubmit in a promise and\n // _always_ dispatch SUBMIT_SUCCESS because isSubmitting would then always be false.\n // This would be fine in simple cases, but make it impossible to disable submit\n // buttons where people use callbacks or promises as side effects (which is basically\n // all of v1 Formik code). Instead, recall that we are inside of a promise chain already,\n // so we can try/catch executeSubmit(), if it returns undefined, then just bail.\n // If there are errors, throw em. Otherwise, wrap executeSubmit in a promise and handle\n // cleanup of isSubmitting on behalf of the consumer.\n var promiseOrUndefined;\n\n try {\n promiseOrUndefined = executeSubmit(); // Bail if it's sync, consumer is responsible for cleaning up\n // via setSubmitting(false)\n\n if (promiseOrUndefined === undefined) {\n return;\n }\n } catch (error) {\n throw error;\n }\n\n return Promise.resolve(promiseOrUndefined).then(function (result) {\n if (!!isMounted.current) {\n dispatch({\n type: 'SUBMIT_SUCCESS'\n });\n }\n\n return result;\n })[\"catch\"](function (_errors) {\n if (!!isMounted.current) {\n dispatch({\n type: 'SUBMIT_FAILURE'\n }); // This is a legit error rejected by the onSubmit fn\n // so we don't want to break the promise chain\n\n throw _errors;\n }\n });\n } else if (!!isMounted.current) {\n // ^^^ Make sure Formik is still mounted before updating state\n dispatch({\n type: 'SUBMIT_FAILURE'\n }); // throw combinedErrors;\n\n if (isInstanceOfError) {\n throw combinedErrors;\n }\n }\n\n return;\n });\n });\n var handleSubmit = useEventCallback(function (e) {\n if (e && e.preventDefault && isFunction(e.preventDefault)) {\n e.preventDefault();\n }\n\n if (e && e.stopPropagation && isFunction(e.stopPropagation)) {\n e.stopPropagation();\n } // Warn if form submission is triggered by a <button> without a\n // specified `type` attribute during development. This mitigates\n // a common gotcha in forms with both reset and submit buttons,\n // where the dev forgets to add type=\"button\" to the reset button.\n\n\n if ( true && typeof document !== 'undefined') {\n // Safely get the active element (works with IE)\n var activeElement = getActiveElement();\n\n if (activeElement !== null && activeElement instanceof HTMLButtonElement) {\n !(activeElement.attributes && activeElement.attributes.getNamedItem('type')) ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, 'You submitted a Formik form using a button with an unspecified `type` attribute. Most browsers default button elements to `type=\"submit\"`. If this is not a submit button, please add `type=\"button\"`.') : 0 : void 0;\n }\n }\n\n submitForm()[\"catch\"](function (reason) {\n console.warn(\"Warning: An unhandled error was caught from submitForm()\", reason);\n });\n });\n var imperativeMethods = {\n resetForm: resetForm,\n validateForm: validateFormWithHighPriority,\n validateField: validateField,\n setErrors: setErrors,\n setFieldError: setFieldError,\n setFieldTouched: setFieldTouched,\n setFieldValue: setFieldValue,\n setStatus: setStatus,\n setSubmitting: setSubmitting,\n setTouched: setTouched,\n setValues: setValues,\n setFormikState: setFormikState,\n submitForm: submitForm\n };\n var executeSubmit = useEventCallback(function () {\n return onSubmit(state.values, imperativeMethods);\n });\n var handleReset = useEventCallback(function (e) {\n if (e && e.preventDefault && isFunction(e.preventDefault)) {\n e.preventDefault();\n }\n\n if (e && e.stopPropagation && isFunction(e.stopPropagation)) {\n e.stopPropagation();\n }\n\n resetForm();\n });\n var getFieldMeta = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (name) {\n return {\n value: getIn(state.values, name),\n error: getIn(state.errors, name),\n touched: !!getIn(state.touched, name),\n initialValue: getIn(initialValues.current, name),\n initialTouched: !!getIn(initialTouched.current, name),\n initialError: getIn(initialErrors.current, name)\n };\n }, [state.errors, state.touched, state.values]);\n var getFieldHelpers = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (name) {\n return {\n setValue: function setValue(value, shouldValidate) {\n return setFieldValue(name, value, shouldValidate);\n },\n setTouched: function setTouched(value, shouldValidate) {\n return setFieldTouched(name, value, shouldValidate);\n },\n setError: function setError(value) {\n return setFieldError(name, value);\n }\n };\n }, [setFieldValue, setFieldTouched, setFieldError]);\n var getFieldProps = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (nameOrOptions) {\n var isAnObject = isObject(nameOrOptions);\n var name = isAnObject ? nameOrOptions.name : nameOrOptions;\n var valueState = getIn(state.values, name);\n var field = {\n name: name,\n value: valueState,\n onChange: handleChange,\n onBlur: handleBlur\n };\n\n if (isAnObject) {\n var type = nameOrOptions.type,\n valueProp = nameOrOptions.value,\n is = nameOrOptions.as,\n multiple = nameOrOptions.multiple;\n\n if (type === 'checkbox') {\n if (valueProp === undefined) {\n field.checked = !!valueState;\n } else {\n field.checked = !!(Array.isArray(valueState) && ~valueState.indexOf(valueProp));\n field.value = valueProp;\n }\n } else if (type === 'radio') {\n field.checked = valueState === valueProp;\n field.value = valueProp;\n } else if (is === 'select' && multiple) {\n field.value = field.value || [];\n field.multiple = true;\n }\n }\n\n return field;\n }, [handleBlur, handleChange, state.values]);\n var dirty = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function () {\n return !react_fast_compare__WEBPACK_IMPORTED_MODULE_1___default()(initialValues.current, state.values);\n }, [initialValues.current, state.values]);\n var isValid = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function () {\n return typeof isInitialValid !== 'undefined' ? dirty ? state.errors && Object.keys(state.errors).length === 0 : isInitialValid !== false && isFunction(isInitialValid) ? isInitialValid(props) : isInitialValid : state.errors && Object.keys(state.errors).length === 0;\n }, [isInitialValid, dirty, state.errors, props]);\n\n var ctx = _extends({}, state, {\n initialValues: initialValues.current,\n initialErrors: initialErrors.current,\n initialTouched: initialTouched.current,\n initialStatus: initialStatus.current,\n handleBlur: handleBlur,\n handleChange: handleChange,\n handleReset: handleReset,\n handleSubmit: handleSubmit,\n resetForm: resetForm,\n setErrors: setErrors,\n setFormikState: setFormikState,\n setFieldTouched: setFieldTouched,\n setFieldValue: setFieldValue,\n setFieldError: setFieldError,\n setStatus: setStatus,\n setSubmitting: setSubmitting,\n setTouched: setTouched,\n setValues: setValues,\n submitForm: submitForm,\n validateForm: validateFormWithHighPriority,\n validateField: validateField,\n isValid: isValid,\n dirty: dirty,\n unregisterField: unregisterField,\n registerField: registerField,\n getFieldProps: getFieldProps,\n getFieldMeta: getFieldMeta,\n getFieldHelpers: getFieldHelpers,\n validateOnBlur: validateOnBlur,\n validateOnChange: validateOnChange,\n validateOnMount: validateOnMount\n });\n\n return ctx;\n}\nfunction Formik(props) {\n var formikbag = useFormik(props);\n var component = props.component,\n children = props.children,\n render = props.render,\n innerRef = props.innerRef; // This allows folks to pass a ref to <Formik />\n\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useImperativeHandle)(innerRef, function () {\n return formikbag;\n });\n\n if (true) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n !!props.render ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, \"<Formik render> has been deprecated and will be removed in future versions of Formik. Please use a child callback function instead. To get rid of this warning, replace <Formik render={(props) => ...} /> with <Formik>{(props) => ...}</Formik>\") : 0 : void 0; // eslint-disable-next-line\n }, []);\n }\n\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(FormikProvider, {\n value: formikbag\n }, component ? (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(component, formikbag) : render ? render(formikbag) : children // children come last, always called\n ? isFunction(children) ? children(formikbag) : !isEmptyChildren(children) ? react__WEBPACK_IMPORTED_MODULE_0__.Children.only(children) : null : null);\n}\n\nfunction warnAboutMissingIdentifier(_ref4) {\n var htmlContent = _ref4.htmlContent,\n documentationAnchorLink = _ref4.documentationAnchorLink,\n handlerName = _ref4.handlerName;\n console.warn(\"Warning: Formik called `\" + handlerName + \"`, but you forgot to pass an `id` or `name` attribute to your input:\\n \" + htmlContent + \"\\n Formik cannot determine which value to update. For more info see https://formik.org/docs/api/formik#\" + documentationAnchorLink + \"\\n \");\n}\n/**\r\n * Transform Yup ValidationError to a more usable object\r\n */\n\n\nfunction yupToFormErrors(yupError) {\n var errors = {};\n\n if (yupError.inner) {\n if (yupError.inner.length === 0) {\n return setIn(errors, yupError.path, yupError.message);\n }\n\n for (var _iterator = yupError.inner, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref5;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref5 = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref5 = _i.value;\n }\n\n var err = _ref5;\n\n if (!getIn(errors, err.path)) {\n errors = setIn(errors, err.path, err.message);\n }\n }\n }\n\n return errors;\n}\n/**\r\n * Validate a yup schema.\r\n */\n\nfunction validateYupSchema(values, schema, sync, context) {\n if (sync === void 0) {\n sync = false;\n }\n\n if (context === void 0) {\n context = {};\n }\n\n var validateData = prepareDataForValidation(values);\n return schema[sync ? 'validateSync' : 'validate'](validateData, {\n abortEarly: false,\n context: context\n });\n}\n/**\r\n * Recursively prepare values.\r\n */\n\nfunction prepareDataForValidation(values) {\n var data = Array.isArray(values) ? [] : {};\n\n for (var k in values) {\n if (Object.prototype.hasOwnProperty.call(values, k)) {\n var key = String(k);\n\n if (Array.isArray(values[key]) === true) {\n data[key] = values[key].map(function (value) {\n if (Array.isArray(value) === true || (0,lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(value)) {\n return prepareDataForValidation(value);\n } else {\n return value !== '' ? value : undefined;\n }\n });\n } else if ((0,lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(values[key])) {\n data[key] = prepareDataForValidation(values[key]);\n } else {\n data[key] = values[key] !== '' ? values[key] : undefined;\n }\n }\n }\n\n return data;\n}\n/**\r\n * deepmerge array merging algorithm\r\n * https://github.com/KyleAMathews/deepmerge#combine-array\r\n */\n\nfunction arrayMerge(target, source, options) {\n var destination = target.slice();\n source.forEach(function merge(e, i) {\n if (typeof destination[i] === 'undefined') {\n var cloneRequested = options.clone !== false;\n var shouldClone = cloneRequested && options.isMergeableObject(e);\n destination[i] = shouldClone ? (0,deepmerge__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(Array.isArray(e) ? [] : {}, e, options) : e;\n } else if (options.isMergeableObject(e)) {\n destination[i] = (0,deepmerge__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(target[i], e, options);\n } else if (target.indexOf(e) === -1) {\n destination.push(e);\n }\n });\n return destination;\n}\n/** Return multi select values based on an array of options */\n\n\nfunction getSelectedValues(options) {\n return Array.from(options).filter(function (el) {\n return el.selected;\n }).map(function (el) {\n return el.value;\n });\n}\n/** Return the next value for a checkbox */\n\n\nfunction getValueForCheckbox(currentValue, checked, valueProp) {\n // If the current value was a boolean, return a boolean\n if (typeof currentValue === 'boolean') {\n return Boolean(checked);\n } // If the currentValue was not a boolean we want to return an array\n\n\n var currentArrayOfValues = [];\n var isValueInArray = false;\n var index = -1;\n\n if (!Array.isArray(currentValue)) {\n // eslint-disable-next-line eqeqeq\n if (!valueProp || valueProp == 'true' || valueProp == 'false') {\n return Boolean(checked);\n }\n } else {\n // If the current value is already an array, use it\n currentArrayOfValues = currentValue;\n index = currentValue.indexOf(valueProp);\n isValueInArray = index >= 0;\n } // If the checkbox was checked and the value is not already present in the aray we want to add the new value to the array of values\n\n\n if (checked && valueProp && !isValueInArray) {\n return currentArrayOfValues.concat(valueProp);\n } // If the checkbox was unchecked and the value is not in the array, simply return the already existing array of values\n\n\n if (!isValueInArray) {\n return currentArrayOfValues;\n } // If the checkbox was unchecked and the value is in the array, remove the value and return the array\n\n\n return currentArrayOfValues.slice(0, index).concat(currentArrayOfValues.slice(index + 1));\n} // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser.\n// @see https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\n\n\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect : react__WEBPACK_IMPORTED_MODULE_0__.useEffect;\n\nfunction useEventCallback(fn) {\n var ref = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(fn); // we copy a ref to the callback scoped to the current state/props on each render\n\n useIsomorphicLayoutEffect(function () {\n ref.current = fn;\n });\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return ref.current.apply(void 0, args);\n }, []);\n}\n\nfunction useField(propsOrFieldName) {\n var formik = useFormikContext();\n var getFieldProps = formik.getFieldProps,\n getFieldMeta = formik.getFieldMeta,\n getFieldHelpers = formik.getFieldHelpers,\n registerField = formik.registerField,\n unregisterField = formik.unregisterField;\n var isAnObject = isObject(propsOrFieldName); // Normalize propsOrFieldName to FieldHookConfig<Val>\n\n var props = isAnObject ? propsOrFieldName : {\n name: propsOrFieldName\n };\n var fieldName = props.name,\n validateFn = props.validate;\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n if (fieldName) {\n registerField(fieldName, {\n validate: validateFn\n });\n }\n\n return function () {\n if (fieldName) {\n unregisterField(fieldName);\n }\n };\n }, [registerField, unregisterField, fieldName, validateFn]);\n\n if (true) {\n !formik ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, 'useField() / <Field /> must be used underneath a <Formik> component or withFormik() higher order component') : 0 : void 0;\n }\n\n !fieldName ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, 'Invalid field name. Either pass `useField` a string or an object containing a `name` key.') : 0 : void 0;\n return [getFieldProps(props), getFieldMeta(fieldName), getFieldHelpers(fieldName)];\n}\nfunction Field(_ref) {\n var validate = _ref.validate,\n name = _ref.name,\n render = _ref.render,\n children = _ref.children,\n is = _ref.as,\n component = _ref.component,\n props = _objectWithoutPropertiesLoose(_ref, [\"validate\", \"name\", \"render\", \"children\", \"as\", \"component\"]);\n\n var _useFormikContext = useFormikContext(),\n formik = _objectWithoutPropertiesLoose(_useFormikContext, [\"validate\", \"validationSchema\"]);\n\n if (true) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n !!render ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, \"<Field render> has been deprecated and will be removed in future versions of Formik. Please use a child callback function instead. To get rid of this warning, replace <Field name=\\\"\" + name + \"\\\" render={({field, form}) => ...} /> with <Field name=\\\"\" + name + \"\\\">{({field, form, meta}) => ...}</Field>\") : 0 : void 0;\n !!(is && children && isFunction(children)) ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, 'You should not use <Field as> and <Field children> as a function in the same <Field> component; <Field as> will be ignored.') : 0 : void 0;\n !!(component && children && isFunction(children)) ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, 'You should not use <Field component> and <Field children> as a function in the same <Field> component; <Field component> will be ignored.') : 0 : void 0;\n !!(render && children && !isEmptyChildren(children)) ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, 'You should not use <Field render> and <Field children> in the same <Field> component; <Field children> will be ignored') : 0 : void 0; // eslint-disable-next-line\n }, []);\n } // Register field and field-level validation with parent <Formik>\n\n\n var registerField = formik.registerField,\n unregisterField = formik.unregisterField;\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n registerField(name, {\n validate: validate\n });\n return function () {\n unregisterField(name);\n };\n }, [registerField, unregisterField, name, validate]);\n var field = formik.getFieldProps(_extends({\n name: name\n }, props));\n var meta = formik.getFieldMeta(name);\n var legacyBag = {\n field: field,\n form: formik\n };\n\n if (render) {\n return render(_extends({}, legacyBag, {\n meta: meta\n }));\n }\n\n if (isFunction(children)) {\n return children(_extends({}, legacyBag, {\n meta: meta\n }));\n }\n\n if (component) {\n // This behavior is backwards compat with earlier Formik 0.9 to 1.x\n if (typeof component === 'string') {\n var innerRef = props.innerRef,\n rest = _objectWithoutPropertiesLoose(props, [\"innerRef\"]);\n\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(component, _extends({\n ref: innerRef\n }, field, rest), children);\n } // We don't pass `meta` for backwards compat\n\n\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(component, _extends({\n field: field,\n form: formik\n }, props), children);\n } // default to input here so we can check for both `as` and `children` above\n\n\n var asElement = is || 'input';\n\n if (typeof asElement === 'string') {\n var _innerRef = props.innerRef,\n _rest = _objectWithoutPropertiesLoose(props, [\"innerRef\"]);\n\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(asElement, _extends({\n ref: _innerRef\n }, field, _rest), children);\n }\n\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(asElement, _extends({}, field, props), children);\n}\n\nvar Form = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function (props, ref) {\n // iOS needs an \"action\" attribute for nice input: https://stackoverflow.com/a/39485162/406725\n // We default the action to \"#\" in case the preventDefault fails (just updates the URL hash)\n var action = props.action,\n rest = _objectWithoutPropertiesLoose(props, [\"action\"]);\n\n var _action = action != null ? action : '#';\n\n var _useFormikContext = useFormikContext(),\n handleReset = _useFormikContext.handleReset,\n handleSubmit = _useFormikContext.handleSubmit;\n\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"form\", Object.assign({\n onSubmit: handleSubmit,\n ref: ref,\n onReset: handleReset,\n action: _action\n }, rest));\n});\nForm.displayName = 'Form';\n\n/**\r\n * A public higher-order component to access the imperative API\r\n */\n\nfunction withFormik(_ref) {\n var _ref$mapPropsToValues = _ref.mapPropsToValues,\n mapPropsToValues = _ref$mapPropsToValues === void 0 ? function (vanillaProps) {\n var val = {};\n\n for (var k in vanillaProps) {\n if (vanillaProps.hasOwnProperty(k) && typeof vanillaProps[k] !== 'function') {\n // @todo TypeScript fix\n val[k] = vanillaProps[k];\n }\n }\n\n return val;\n } : _ref$mapPropsToValues,\n config = _objectWithoutPropertiesLoose(_ref, [\"mapPropsToValues\"]);\n\n return function createFormik(Component$1) {\n var componentDisplayName = Component$1.displayName || Component$1.name || Component$1.constructor && Component$1.constructor.name || 'Component';\n /**\r\n * We need to use closures here for to provide the wrapped component's props to\r\n * the respective withFormik config methods.\r\n */\n\n var C = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(C, _React$Component);\n\n function C() {\n var _this;\n\n _this = _React$Component.apply(this, arguments) || this;\n\n _this.validate = function (values) {\n return config.validate(values, _this.props);\n };\n\n _this.validationSchema = function () {\n return isFunction(config.validationSchema) ? config.validationSchema(_this.props) : config.validationSchema;\n };\n\n _this.handleSubmit = function (values, actions) {\n return config.handleSubmit(values, _extends({}, actions, {\n props: _this.props\n }));\n };\n /**\r\n * Just avoiding a render callback for perf here\r\n */\n\n\n _this.renderFormComponent = function (formikProps) {\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Component$1, Object.assign({}, _this.props, formikProps));\n };\n\n return _this;\n }\n\n var _proto = C.prototype;\n\n _proto.render = function render() {\n var _this$props = this.props,\n props = _objectWithoutPropertiesLoose(_this$props, [\"children\"]);\n\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Formik, Object.assign({}, props, config, {\n validate: config.validate && this.validate,\n validationSchema: config.validationSchema && this.validationSchema,\n initialValues: mapPropsToValues(this.props),\n initialStatus: config.mapPropsToStatus && config.mapPropsToStatus(this.props),\n initialErrors: config.mapPropsToErrors && config.mapPropsToErrors(this.props),\n initialTouched: config.mapPropsToTouched && config.mapPropsToTouched(this.props),\n onSubmit: this.handleSubmit,\n children: this.renderFormComponent\n }));\n };\n\n return C;\n }(react__WEBPACK_IMPORTED_MODULE_0__.Component);\n\n C.displayName = \"WithFormik(\" + componentDisplayName + \")\";\n return hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_3___default()(C, Component$1 // cast type to ComponentClass (even if SFC)\n );\n };\n}\n\n/**\r\n * Connect any component to Formik context, and inject as a prop called `formik`;\r\n * @param Comp React Component\r\n */\n\nfunction connect(Comp) {\n var C = function C(props) {\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(FormikConsumer, null, function (formik) {\n !!!formik ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, \"Formik context is undefined, please verify you are rendering <Form>, <Field>, <FastField>, <FieldArray>, or your custom context-using component as a child of a <Formik> component. Component name: \" + Comp.name) : 0 : void 0;\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Comp, Object.assign({}, props, {\n formik: formik\n }));\n });\n };\n\n var componentDisplayName = Comp.displayName || Comp.name || Comp.constructor && Comp.constructor.name || 'Component'; // Assign Comp to C.WrappedComponent so we can access the inner component in tests\n // For example, <Field.WrappedComponent /> gets us <FieldInner/>\n\n C.WrappedComponent = Comp;\n C.displayName = \"FormikConnect(\" + componentDisplayName + \")\";\n return hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_3___default()(C, Comp // cast type to ComponentClass (even if SFC)\n );\n}\n\n/**\r\n * Some array helpers!\r\n */\n\nvar move = function move(array, from, to) {\n var copy = copyArrayLike(array);\n var value = copy[from];\n copy.splice(from, 1);\n copy.splice(to, 0, value);\n return copy;\n};\nvar swap = function swap(arrayLike, indexA, indexB) {\n var copy = copyArrayLike(arrayLike);\n var a = copy[indexA];\n copy[indexA] = copy[indexB];\n copy[indexB] = a;\n return copy;\n};\nvar insert = function insert(arrayLike, index, value) {\n var copy = copyArrayLike(arrayLike);\n copy.splice(index, 0, value);\n return copy;\n};\nvar replace = function replace(arrayLike, index, value) {\n var copy = copyArrayLike(arrayLike);\n copy[index] = value;\n return copy;\n};\n\nvar copyArrayLike = function copyArrayLike(arrayLike) {\n if (!arrayLike) {\n return [];\n } else if (Array.isArray(arrayLike)) {\n return [].concat(arrayLike);\n } else {\n var maxIndex = Object.keys(arrayLike).map(function (key) {\n return parseInt(key);\n }).reduce(function (max, el) {\n return el > max ? el : max;\n }, 0);\n return Array.from(_extends({}, arrayLike, {\n length: maxIndex + 1\n }));\n }\n};\n\nvar FieldArrayInner = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(FieldArrayInner, _React$Component);\n\n function FieldArrayInner(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n\n _this.updateArrayField = function (fn, alterTouched, alterErrors) {\n var _this$props = _this.props,\n name = _this$props.name,\n setFormikState = _this$props.formik.setFormikState;\n setFormikState(function (prevState) {\n var updateErrors = typeof alterErrors === 'function' ? alterErrors : fn;\n var updateTouched = typeof alterTouched === 'function' ? alterTouched : fn; // values fn should be executed before updateErrors and updateTouched,\n // otherwise it causes an error with unshift.\n\n var values = setIn(prevState.values, name, fn(getIn(prevState.values, name)));\n var fieldError = alterErrors ? updateErrors(getIn(prevState.errors, name)) : undefined;\n var fieldTouched = alterTouched ? updateTouched(getIn(prevState.touched, name)) : undefined;\n\n if (isEmptyArray(fieldError)) {\n fieldError = undefined;\n }\n\n if (isEmptyArray(fieldTouched)) {\n fieldTouched = undefined;\n }\n\n return _extends({}, prevState, {\n values: values,\n errors: alterErrors ? setIn(prevState.errors, name, fieldError) : prevState.errors,\n touched: alterTouched ? setIn(prevState.touched, name, fieldTouched) : prevState.touched\n });\n });\n };\n\n _this.push = function (value) {\n return _this.updateArrayField(function (arrayLike) {\n return [].concat(copyArrayLike(arrayLike), [(0,lodash_es_cloneDeep__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(value)]);\n }, false, false);\n };\n\n _this.handlePush = function (value) {\n return function () {\n return _this.push(value);\n };\n };\n\n _this.swap = function (indexA, indexB) {\n return _this.updateArrayField(function (array) {\n return swap(array, indexA, indexB);\n }, true, true);\n };\n\n _this.handleSwap = function (indexA, indexB) {\n return function () {\n return _this.swap(indexA, indexB);\n };\n };\n\n _this.move = function (from, to) {\n return _this.updateArrayField(function (array) {\n return move(array, from, to);\n }, true, true);\n };\n\n _this.handleMove = function (from, to) {\n return function () {\n return _this.move(from, to);\n };\n };\n\n _this.insert = function (index, value) {\n return _this.updateArrayField(function (array) {\n return insert(array, index, value);\n }, function (array) {\n return insert(array, index, null);\n }, function (array) {\n return insert(array, index, null);\n });\n };\n\n _this.handleInsert = function (index, value) {\n return function () {\n return _this.insert(index, value);\n };\n };\n\n _this.replace = function (index, value) {\n return _this.updateArrayField(function (array) {\n return replace(array, index, value);\n }, false, false);\n };\n\n _this.handleReplace = function (index, value) {\n return function () {\n return _this.replace(index, value);\n };\n };\n\n _this.unshift = function (value) {\n var length = -1;\n\n _this.updateArrayField(function (array) {\n var arr = array ? [value].concat(array) : [value];\n\n if (length < 0) {\n length = arr.length;\n }\n\n return arr;\n }, function (array) {\n var arr = array ? [null].concat(array) : [null];\n\n if (length < 0) {\n length = arr.length;\n }\n\n return arr;\n }, function (array) {\n var arr = array ? [null].concat(array) : [null];\n\n if (length < 0) {\n length = arr.length;\n }\n\n return arr;\n });\n\n return length;\n };\n\n _this.handleUnshift = function (value) {\n return function () {\n return _this.unshift(value);\n };\n };\n\n _this.handleRemove = function (index) {\n return function () {\n return _this.remove(index);\n };\n };\n\n _this.handlePop = function () {\n return function () {\n return _this.pop();\n };\n }; // We need TypeScript generics on these, so we'll bind them in the constructor\n // @todo Fix TS 3.2.1\n\n\n _this.remove = _this.remove.bind(_assertThisInitialized(_this));\n _this.pop = _this.pop.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n var _proto = FieldArrayInner.prototype;\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (this.props.validateOnChange && this.props.formik.validateOnChange && !react_fast_compare__WEBPACK_IMPORTED_MODULE_1___default()(getIn(prevProps.formik.values, prevProps.name), getIn(this.props.formik.values, this.props.name))) {\n this.props.formik.validateForm(this.props.formik.values);\n }\n };\n\n _proto.remove = function remove(index) {\n // We need to make sure we also remove relevant pieces of `touched` and `errors`\n var result;\n this.updateArrayField( // so this gets call 3 times\n function (array) {\n var copy = array ? copyArrayLike(array) : [];\n\n if (!result) {\n result = copy[index];\n }\n\n if (isFunction(copy.splice)) {\n copy.splice(index, 1);\n }\n\n return copy;\n }, true, true);\n return result;\n };\n\n _proto.pop = function pop() {\n // Remove relevant pieces of `touched` and `errors` too!\n var result;\n this.updateArrayField( // so this gets call 3 times\n function (array) {\n var tmp = array;\n\n if (!result) {\n result = tmp && tmp.pop && tmp.pop();\n }\n\n return tmp;\n }, true, true);\n return result;\n };\n\n _proto.render = function render() {\n var arrayHelpers = {\n push: this.push,\n pop: this.pop,\n swap: this.swap,\n move: this.move,\n insert: this.insert,\n replace: this.replace,\n unshift: this.unshift,\n remove: this.remove,\n handlePush: this.handlePush,\n handlePop: this.handlePop,\n handleSwap: this.handleSwap,\n handleMove: this.handleMove,\n handleInsert: this.handleInsert,\n handleReplace: this.handleReplace,\n handleUnshift: this.handleUnshift,\n handleRemove: this.handleRemove\n };\n\n var _this$props2 = this.props,\n component = _this$props2.component,\n render = _this$props2.render,\n children = _this$props2.children,\n name = _this$props2.name,\n _this$props2$formik = _this$props2.formik,\n restOfFormik = _objectWithoutPropertiesLoose(_this$props2$formik, [\"validate\", \"validationSchema\"]);\n\n var props = _extends({}, arrayHelpers, {\n form: restOfFormik,\n name: name\n });\n\n return component ? (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(component, props) : render ? render(props) : children // children come last, always called\n ? typeof children === 'function' ? children(props) : !isEmptyChildren(children) ? react__WEBPACK_IMPORTED_MODULE_0__.Children.only(children) : null : null;\n };\n\n return FieldArrayInner;\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component);\n\nFieldArrayInner.defaultProps = {\n validateOnChange: true\n};\nvar FieldArray = /*#__PURE__*/connect(FieldArrayInner);\n\nvar ErrorMessageImpl = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(ErrorMessageImpl, _React$Component);\n\n function ErrorMessageImpl() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = ErrorMessageImpl.prototype;\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(props) {\n if (getIn(this.props.formik.errors, this.props.name) !== getIn(props.formik.errors, this.props.name) || getIn(this.props.formik.touched, this.props.name) !== getIn(props.formik.touched, this.props.name) || Object.keys(this.props).length !== Object.keys(props).length) {\n return true;\n } else {\n return false;\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n component = _this$props.component,\n formik = _this$props.formik,\n render = _this$props.render,\n children = _this$props.children,\n name = _this$props.name,\n rest = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"formik\", \"render\", \"children\", \"name\"]);\n\n var touch = getIn(formik.touched, name);\n var error = getIn(formik.errors, name);\n return !!touch && !!error ? render ? isFunction(render) ? render(error) : null : children ? isFunction(children) ? children(error) : null : component ? (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(component, rest, error) : error : null;\n };\n\n return ErrorMessageImpl;\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component);\n\nvar ErrorMessage = /*#__PURE__*/connect(ErrorMessageImpl);\n\n/**\r\n * Custom Field component for quickly hooking into Formik\r\n * context and wiring up forms.\r\n */\n\nvar FastFieldInner = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(FastFieldInner, _React$Component);\n\n function FastFieldInner(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n var render = props.render,\n children = props.children,\n component = props.component,\n is = props.as,\n name = props.name;\n !!render ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, \"<FastField render> has been deprecated. Please use a child callback function instead: <FastField name={\" + name + \"}>{props => ...}</FastField> instead.\") : 0 : void 0;\n !!(component && render) ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, 'You should not use <FastField component> and <FastField render> in the same <FastField> component; <FastField component> will be ignored') : 0 : void 0;\n !!(is && children && isFunction(children)) ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, 'You should not use <FastField as> and <FastField children> as a function in the same <FastField> component; <FastField as> will be ignored.') : 0 : void 0;\n !!(component && children && isFunction(children)) ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, 'You should not use <FastField component> and <FastField children> as a function in the same <FastField> component; <FastField component> will be ignored.') : 0 : void 0;\n !!(render && children && !isEmptyChildren(children)) ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, 'You should not use <FastField render> and <FastField children> in the same <FastField> component; <FastField children> will be ignored') : 0 : void 0;\n return _this;\n }\n\n var _proto = FastFieldInner.prototype;\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(props) {\n if (this.props.shouldUpdate) {\n return this.props.shouldUpdate(props, this.props);\n } else if (props.name !== this.props.name || getIn(props.formik.values, this.props.name) !== getIn(this.props.formik.values, this.props.name) || getIn(props.formik.errors, this.props.name) !== getIn(this.props.formik.errors, this.props.name) || getIn(props.formik.touched, this.props.name) !== getIn(this.props.formik.touched, this.props.name) || Object.keys(this.props).length !== Object.keys(props).length || props.formik.isSubmitting !== this.props.formik.isSubmitting) {\n return true;\n } else {\n return false;\n }\n };\n\n _proto.componentDidMount = function componentDidMount() {\n // Register the Field with the parent Formik. Parent will cycle through\n // registered Field's validate fns right prior to submit\n this.props.formik.registerField(this.props.name, {\n validate: this.props.validate\n });\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (this.props.name !== prevProps.name) {\n this.props.formik.unregisterField(prevProps.name);\n this.props.formik.registerField(this.props.name, {\n validate: this.props.validate\n });\n }\n\n if (this.props.validate !== prevProps.validate) {\n this.props.formik.registerField(this.props.name, {\n validate: this.props.validate\n });\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.props.formik.unregisterField(this.props.name);\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n name = _this$props.name,\n render = _this$props.render,\n is = _this$props.as,\n children = _this$props.children,\n component = _this$props.component,\n formik = _this$props.formik,\n props = _objectWithoutPropertiesLoose(_this$props, [\"validate\", \"name\", \"render\", \"as\", \"children\", \"component\", \"shouldUpdate\", \"formik\"]);\n\n var restOfFormik = _objectWithoutPropertiesLoose(formik, [\"validate\", \"validationSchema\"]);\n\n var field = formik.getFieldProps(_extends({\n name: name\n }, props));\n var meta = {\n value: getIn(formik.values, name),\n error: getIn(formik.errors, name),\n touched: !!getIn(formik.touched, name),\n initialValue: getIn(formik.initialValues, name),\n initialTouched: !!getIn(formik.initialTouched, name),\n initialError: getIn(formik.initialErrors, name)\n };\n var bag = {\n field: field,\n meta: meta,\n form: restOfFormik\n };\n\n if (render) {\n return render(bag);\n }\n\n if (isFunction(children)) {\n return children(bag);\n }\n\n if (component) {\n // This behavior is backwards compat with earlier Formik 0.9 to 1.x\n if (typeof component === 'string') {\n var innerRef = props.innerRef,\n rest = _objectWithoutPropertiesLoose(props, [\"innerRef\"]);\n\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(component, _extends({\n ref: innerRef\n }, field, rest), children);\n } // We don't pass `meta` for backwards compat\n\n\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(component, _extends({\n field: field,\n form: formik\n }, props), children);\n } // default to input here so we can check for both `as` and `children` above\n\n\n var asElement = is || 'input';\n\n if (typeof asElement === 'string') {\n var _innerRef = props.innerRef,\n _rest = _objectWithoutPropertiesLoose(props, [\"innerRef\"]);\n\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(asElement, _extends({\n ref: _innerRef\n }, field, _rest), children);\n }\n\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(asElement, _extends({}, field, props), children);\n };\n\n return FastFieldInner;\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component);\n\nvar FastField = /*#__PURE__*/connect(FastFieldInner);\n\n\n//# sourceMappingURL=formik.esm.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvZm9ybWlrL2Rpc3QvZm9ybWlrLmVzbS5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQTZMO0FBQ3BKO0FBQ1A7QUFDa0I7QUFDaEI7QUFDRTtBQUNEO0FBQ3NCO0FBQ2Y7O0FBRTVDO0FBQ0E7QUFDQSxvQkFBb0Isc0JBQXNCO0FBQzFDOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGNBQWMsdUJBQXVCO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsU0FBUyxpREFBYztBQUN2QjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxXQUFXO0FBQ3RCLFlBQVk7QUFDWjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGFBQWEsNERBQU07O0FBRW5CO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FB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QUFxSCxvQ0FBb0MsQ0FBZ0I7QUFDM1Esd0RBQXdELEtBQXFDLEdBQUcsd0RBQVMsNEhBQTRILDJDQUEyQyxDQUFnQjtBQUNoUywyREFBMkQsS0FBcUMsR0FBRyx3REFBUywyR0FBMkcseUNBQXlDLENBQWdCO0FBQ2hSO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxlQUFlLG9EQUFhO0FBQzVCO0FBQ0EsU0FBUztBQUNULFFBQVE7OztBQUdSLGFBQWEsb0RBQWE7QUFDMUI7QUFDQTtBQUNBLE9BQU87QUFDUCxNQUFNOzs7QUFHTjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsYUFBYSxvREFBYTtBQUMxQjtBQUNBLE9BQU87QUFDUDs7QUFFQSxXQUFXLG9EQUFhLHVCQUF1QjtBQUMvQzs7QUFFQTtBQUNBLENBQUMsQ0FBQyw0Q0FBUzs7QUFFWDs7QUFFc2I7QUFDdGIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2Zvcm1pay9kaXN0L2Zvcm1pay5lc20uanM/MzMwMCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGlsZHJlbiwgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCwgdXNlUmVmLCB1c2VFZmZlY3QsIHVzZVJlZHVjZXIsIHVzZUNhbGxiYWNrLCB1c2VNZW1vLCB1c2VJbXBlcmF0aXZlSGFuZGxlLCBjcmVhdGVFbGVtZW50LCB1c2VMYXlvdXRFZmZlY3QsIGZvcndhcmRSZWYsIENvbXBvbmVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBpc0VxdWFsIGZyb20gJ3JlYWN0LWZhc3QtY29tcGFyZSc7XG5pbXBvcnQgZGVlcG1lcmdlIGZyb20gJ2RlZXBtZXJnZSc7XG5pbXBvcnQgaXNQbGFpbk9iamVjdCBmcm9tICdsb2Rhc2gtZXMvaXNQbGFpbk9iamVjdCc7XG5pbXBvcnQgY2xvbmUgZnJvbSAnbG9kYXNoLWVzL2Nsb25lJztcbmltcG9ydCB0b1BhdGggZnJvbSAnbG9kYXNoLWVzL3RvUGF0aCc7XG5pbXBvcnQgaW52YXJpYW50IGZyb20gJ3Rpbnktd2FybmluZyc7XG5pbXBvcnQgaG9pc3ROb25SZWFjdFN0YXRpY3MgZnJvbSAnaG9pc3Qtbm9uLXJlYWN0LXN0YXRpY3MnO1xuaW1wb3J0IGNsb25lRGVlcCBmcm9tICdsb2Rhc2gtZXMvY2xvbmVEZWVwJztcblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7XG4gIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7XG4gICAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07XG5cbiAgICAgIGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHtcbiAgICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfTtcblxuICByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cblxuZnVuY3Rpb24gX2luaGVyaXRzTG9vc2Uoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHtcbiAgc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzLnByb3RvdHlwZSk7XG4gIHN1YkNsYXNzLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IHN1YkNsYXNzO1xuICBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzO1xufVxuXG5mdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShzb3VyY2UsIGV4Y2x1ZGVkKSB7XG4gIGlmIChzb3VyY2UgPT0gbnVsbCkgcmV0dXJuIHt9O1xuICB2YXIgdGFyZ2V0ID0ge307XG4gIHZhciBzb3VyY2VLZXlzID0gT2JqZWN0LmtleXMoc291cmNlKTtcbiAgdmFyIGtleSwgaTtcblxuICBmb3IgKGkgPSAwOyBpIDwgc291cmNlS2V5cy5sZW5ndGg7IGkrKykge1xuICAgIGtleSA9IHNvdXJjZUtleXNbaV07XG4gICAgaWYgKGV4Y2x1ZGVkLmluZGV4T2Yoa2V5KSA+PSAwKSBjb250aW51ZTtcbiAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldO1xuICB9XG5cbiAgcmV0dXJuIHRhcmdldDtcbn1cblxuZnVuY3Rpb24gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKSB7XG4gIGlmIChzZWxmID09PSB2b2lkIDApIHtcbiAgICB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7XG4gIH1cblxuICByZXR1cm4gc2VsZjtcbn1cblxuLyoqIEBwcml2YXRlIGlzIHRoZSB2YWx1ZSBhbiBlbXB0eSBhcnJheT8gKi9cblxudmFyIGlzRW1wdHlBcnJheSA9IGZ1bmN0aW9uIGlzRW1wdHlBcnJheSh2YWx1ZSkge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID09PSAwO1xufTtcbi8qKiBAcHJpdmF0ZSBpcyB0aGUgZ2l2ZW4gb2JqZWN0IGEgRnVuY3Rpb24/ICovXG5cbnZhciBpc0Z1bmN0aW9uID0gZnVuY3Rpb24gaXNGdW5jdGlvbihvYmopIHtcbiAgcmV0dXJuIHR5cGVvZiBvYmogPT09ICdmdW5jdGlvbic7XG59O1xuLyoqIEBwcml2YXRlIGlzIHRoZSBnaXZlbiBvYmplY3QgYW4gT2JqZWN0PyAqL1xuXG52YXIgaXNPYmplY3QgPSBmdW5jdGlvbiBpc09iamVjdChvYmopIHtcbiAgcmV0dXJuIG9iaiAhPT0gbnVsbCAmJiB0eXBlb2Ygb2JqID09PSAnb2JqZWN0Jztcbn07XG4vKiogQHByaXZhdGUgaXMgdGhlIGdpdmVuIG9iamVjdCBhbiBpbnRlZ2VyPyAqL1xuXG52YXIgaXNJbnRlZ2VyID0gZnVuY3Rpb24gaXNJbnRlZ2VyKG9iaikge1xuICByZXR1cm4gU3RyaW5nKE1hdGguZmxvb3IoTnVtYmVyKG9iaikpKSA9PT0gb2JqO1xufTtcbi8qKiBAcHJpdmF0ZSBpcyB0aGUgZ2l2ZW4gb2JqZWN0IGEgc3RyaW5nPyAqL1xuXG52YXIgaXNTdHJpbmcgPSBmdW5jdGlvbiBpc1N0cmluZyhvYmopIHtcbiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmopID09PSAnW29iamVjdCBTdHJpbmddJztcbn07XG4vKiogQHByaXZhdGUgaXMgdGhlIGdpdmVuIG9iamVjdCBhIE5hTj8gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZWxmLWNvbXBhcmVcblxudmFyIGlzTmFOJDEgPSBmdW5jdGlvbiBpc05hTihvYmopIHtcbiAgcmV0dXJuIG9iaiAhPT0gb2JqO1xufTtcbi8qKiBAcHJpdmF0ZSBEb2VzIGEgUmVhY3QgY29tcG9uZW50IGhhdmUgZXhhY3RseSAwIGNoaWxkcmVuPyAqL1xuXG52YXIgaXNFbXB0eUNoaWxkcmVuID0gZnVuY3Rpb24gaXNFbXB0eUNoaWxkcmVuKGNoaWxkcmVuKSB7XG4gIHJldHVybiBDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPT09IDA7XG59O1xuLyoqIEBwcml2YXRlIGlzIHRoZSBnaXZlbiBvYmplY3QvdmFsdWUgYSBwcm9taXNlPyAqL1xuXG52YXIgaXNQcm9taXNlID0gZnVuY3Rpb24gaXNQcm9taXNlKHZhbHVlKSB7XG4gIHJldHVybiBpc09iamVjdCh2YWx1ZSkgJiYgaXNGdW5jdGlvbih2YWx1ZS50aGVuKTtcbn07XG4vKiogQHByaXZhdGUgaXMgdGhlIGdpdmVuIG9iamVjdC92YWx1ZSBhIHR5cGUgb2Ygc3ludGhldGljIGV2ZW50PyAqL1xuXG52YXIgaXNJbnB1dEV2ZW50ID0gZnVuY3Rpb24gaXNJbnB1dEV2ZW50KHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSAmJiBpc09iamVjdCh2YWx1ZSkgJiYgaXNPYmplY3QodmFsdWUudGFyZ2V0KTtcbn07XG4vKipcclxuICogU2FtZSBhcyBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGJ1dCB3cmFwcyBpbiBhIHRyeS1jYXRjaCBibG9jay4gSW4gSUUgaXQgaXNcclxuICogbm90IHNhZmUgdG8gY2FsbCBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGlmIHRoZXJlIGlzIG5vdGhpbmcgZm9jdXNlZC5cclxuICpcclxuICogVGhlIGFjdGl2ZUVsZW1lbnQgd2lsbCBiZSBudWxsIG9ubHkgaWYgdGhlIGRvY3VtZW50IG9yIGRvY3VtZW50IGJvZHkgaXMgbm90XHJcbiAqIHlldCBkZWZpbmVkLlxyXG4gKlxyXG4gKiBAcGFyYW0gez9Eb2N1bWVudH0gZG9jIERlZmF1bHRzIHRvIGN1cnJlbnQgZG9jdW1lbnQuXHJcbiAqIEByZXR1cm4ge0VsZW1lbnQgfCBudWxsfVxyXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9mYmpzL2Jsb2IvbWFzdGVyL3BhY2thZ2VzL2ZianMvc3JjL2NvcmUvZG9tL2dldEFjdGl2ZUVsZW1lbnQuanNcclxuICovXG5cbmZ1bmN0aW9uIGdldEFjdGl2ZUVsZW1lbnQoZG9jKSB7XG4gIGRvYyA9IGRvYyB8fCAodHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJyA/IGRvY3VtZW50IDogdW5kZWZpbmVkKTtcblxuICBpZiAodHlwZW9mIGRvYyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHRyeSB7XG4gICAgcmV0dXJuIGRvYy5hY3RpdmVFbGVtZW50IHx8IGRvYy5ib2R5O1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGRvYy5ib2R5O1xuICB9XG59XG4vKipcclxuICogRGVlcGx5IGdldCBhIHZhbHVlIGZyb20gYW4gb2JqZWN0IHZpYSBpdHMgcGF0aC5cclxuICovXG5cbmZ1bmN0aW9uIGdldEluKG9iaiwga2V5LCBkZWYsIHApIHtcbiAgaWYgKHAgPT09IHZvaWQgMCkge1xuICAgIHAgPSAwO1xuICB9XG5cbiAgdmFyIHBhdGggPSB0b1BhdGgoa2V5KTtcblxuICB3aGlsZSAob2JqICYmIHAgPCBwYXRoLmxlbmd0aCkge1xuICAgIG9iaiA9IG9ialtwYXRoW3ArK11dO1xuICB9XG5cbiAgcmV0dXJuIG9iaiA9PT0gdW5kZWZpbmVkID8gZGVmIDogb2JqO1xufVxuLyoqXHJcbiAqIERlZXBseSBzZXQgYSB2YWx1ZSBmcm9tIGluIG9iamVjdCB2aWEgaXQncyBwYXRoLiBJZiB0aGUgdmFsdWUgYXQgYHBhdGhgXHJcbiAqIGhhcyBjaGFuZ2VkLCByZXR1cm4gYSBzaGFsbG93IGNvcHkgb2Ygb2JqIHdpdGggYHZhbHVlYCBzZXQgYXQgYHBhdGhgLlxyXG4gKiBJZiBgdmFsdWVgIGhhcyBub3QgY2hhbmdlZCwgcmV0dXJuIHRoZSBvcmlnaW5hbCBgb2JqYC5cclxuICpcclxuICogRXhpc3Rpbmcgb2JqZWN0cyAvIGFycmF5cyBhbG9uZyBgcGF0aGAgYXJlIGFsc28gc2hhbGxvdyBjb3BpZWQuIFNpYmxpbmdcclxuICogb2JqZWN0cyBhbG9uZyBwYXRoIHJldGFpbiB0aGUgc2FtZSBpbnRlcm5hbCBqcyByZWZlcmVuY2UuIFNpbmNlIG5ld1xyXG4gKiBvYmplY3RzIC8gYXJyYXlzIGFyZSBvbmx5IGNyZWF0ZWQgYWxvbmcgYHBhdGhgLCB3ZSBjYW4gdGVzdCBpZiBhbnl0aGluZ1xyXG4gKiBjaGFuZ2VkIGluIGEgbmVzdGVkIHN0cnVjdHVyZSBieSBjb21wYXJpbmcgdGhlIG9iamVjdCdzIHJlZmVyZW5jZSBpblxyXG4gKiB0aGUgb2xkIGFuZCBuZXcgb2JqZWN0LCBzaW1pbGFyIHRvIGhvdyBydXNzaWFuIGRvbGwgY2FjaGUgaW52YWxpZGF0aW9uXHJcbiAqIHdvcmtzLlxyXG4gKlxyXG4gKiBJbiBlYXJsaWVyIHZlcnNpb25zIG9mIHRoaXMgZnVuY3Rpb24sIHdoaWNoIHVzZWQgY2xvbmVEZWVwLCB0aGVyZSB3ZXJlXHJcbiAqIGlzc3VlcyB3aGVyZWJ5IHNldHRpbmdzIGEgbmVzdGVkIHZhbHVlIHdvdWxkIG11dGF0ZSB0aGUgcGFyZW50XHJcbiAqIGluc3RlYWQgb2YgY3JlYXRpbmcgYSBuZXcgb2JqZWN0LiBgY2xvbmVgIGF2b2lkcyB0aGF0IGJ1ZyBtYWtpbmcgYVxyXG4gKiBzaGFsbG93IGNvcHkgb2YgdGhlIG9iamVjdHMgYWxvbmcgdGhlIHVwZGF0ZSBwYXRoXHJcbiAqIHNvIG5vIG9iamVjdCBpcyBtdXRhdGVkIGluIHBsYWNlLlxyXG4gKlxyXG4gKiBCZWZvcmUgY2hhbmdpbmcgdGhpcyBmdW5jdGlvbiwgcGxlYXNlIHJlYWQgdGhyb3VnaCB0aGUgZm9sbG93aW5nXHJcbiAqIGRpc2N1c3Npb25zLlxyXG4gKlxyXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9kZXZlbG9waXQvbGlua3N0YXRlXHJcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2phcmVkcGFsbWVyL2Zvcm1pay9wdWxsLzEyM1xyXG4gKi9cblxuZnVuY3Rpb24gc2V0SW4ob2JqLCBwYXRoLCB2YWx1ZSkge1xuICB2YXIgcmVzID0gY2xvbmUob2JqKTsgLy8gdGhpcyBrZWVwcyBpbmhlcml0YW5jZSB3aGVuIG9iaiBpcyBhIGNsYXNzXG5cbiAgdmFyIHJlc1ZhbCA9IHJlcztcbiAgdmFyIGkgPSAwO1xuICB2YXIgcGF0aEFycmF5ID0gdG9QYXRoKHBhdGgpO1xuXG4gIGZvciAoOyBpIDwgcGF0aEFycmF5Lmxlbmd0aCAtIDE7IGkrKykge1xuICAgIHZhciBjdXJyZW50UGF0aCA9IHBhdGhBcnJheVtpXTtcbiAgICB2YXIgY3VycmVudE9iaiA9IGdldEluKG9iaiwgcGF0aEFycmF5LnNsaWNlKDAsIGkgKyAxKSk7XG5cbiAgICBpZiAoY3VycmVudE9iaiAmJiAoaXNPYmplY3QoY3VycmVudE9iaikgfHwgQXJyYXkuaXNBcnJheShjdXJyZW50T2JqKSkpIHtcbiAgICAgIHJlc1ZhbCA9IHJlc1ZhbFtjdXJyZW50UGF0aF0gPSBjbG9uZShjdXJyZW50T2JqKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIG5leHRQYXRoID0gcGF0aEFycmF5W2kgKyAxXTtcbiAgICAgIHJlc1ZhbCA9IHJlc1ZhbFtjdXJyZW50UGF0aF0gPSBpc0ludGVnZXIobmV4dFBhdGgpICYmIE51bWJlcihuZXh0UGF0aCkgPj0gMCA/IFtdIDoge307XG4gICAgfVxuICB9IC8vIFJldHVybiBvcmlnaW5hbCBvYmplY3QgaWYgbmV3IHZhbHVlIGlzIHRoZSBzYW1lIGFzIGN1cnJlbnRcblxuXG4gIGlmICgoaSA9PT0gMCA/IG9iaiA6IHJlc1ZhbClbcGF0aEFycmF5W2ldXSA9PT0gdmFsdWUpIHtcbiAgICByZXR1cm4gb2JqO1xuICB9XG5cbiAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICBkZWxldGUgcmVzVmFsW3BhdGhBcnJheVtpXV07XG4gIH0gZWxzZSB7XG4gICAgcmVzVmFsW3BhdGhBcnJheVtpXV0gPSB2YWx1ZTtcbiAgfSAvLyBJZiB0aGUgcGF0aCBhcnJheSBoYXMgYSBzaW5nbGUgZWxlbWVudCwgdGhlIGxvb3AgZGlkIG5vdCBydW4uXG4gIC8vIERlbGV0aW5nIG9uIGByZXNWYWxgIGhhZCBubyBlZmZlY3QgaW4gdGhpcyBzY2VuYXJpbywgc28gd2UgZGVsZXRlIG9uIHRoZSByZXN1bHQgaW5zdGVhZC5cblxuXG4gIGlmIChpID09PSAwICYmIHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICBkZWxldGUgcmVzW3BhdGhBcnJheVtpXV07XG4gIH1cblxuICByZXR1cm4gcmVzO1xufVxuLyoqXHJcbiAqIFJlY3Vyc2l2ZWx5IGEgc2V0IHRoZSBzYW1lIHZhbHVlIGZvciBhbGwga2V5cyBhbmQgYXJyYXlzIG5lc3RlZCBvYmplY3QsIGNsb25pbmdcclxuICogQHBhcmFtIG9iamVjdFxyXG4gKiBAcGFyYW0gdmFsdWVcclxuICogQHBhcmFtIHZpc2l0ZWRcclxuICogQHBhcmFtIHJlc3BvbnNlXHJcbiAqL1xuXG5mdW5jdGlvbiBzZXROZXN0ZWRPYmplY3RWYWx1ZXMob2JqZWN0LCB2YWx1ZSwgdmlzaXRlZCwgcmVzcG9uc2UpIHtcbiAgaWYgKHZpc2l0ZWQgPT09IHZvaWQgMCkge1xuICAgIHZpc2l0ZWQgPSBuZXcgV2Vha01hcCgpO1xuICB9XG5cbiAgaWYgKHJlc3BvbnNlID09PSB2b2lkIDApIHtcbiAgICByZXNwb25zZSA9IHt9O1xuICB9XG5cbiAgZm9yICh2YXIgX2kgPSAwLCBfT2JqZWN0JGtleXMgPSBPYmplY3Qua2V5cyhvYmplY3QpOyBfaSA8IF9PYmplY3Qka2V5cy5sZW5ndGg7IF9pKyspIHtcbiAgICB2YXIgayA9IF9PYmplY3Qka2V5c1tfaV07XG4gICAgdmFyIHZhbCA9IG9iamVjdFtrXTtcblxuICAgIGlmIChpc09iamVjdCh2YWwpKSB7XG4gICAgICBpZiAoIXZpc2l0ZWQuZ2V0KHZhbCkpIHtcbiAgICAgICAgdmlzaXRlZC5zZXQodmFsLCB0cnVlKTsgLy8gSW4gb3JkZXIgdG8ga2VlcCBhcnJheSB2YWx1ZXMgY29uc2lzdGVudCBmb3IgYm90aCBkb3QgcGF0aCAgYW5kXG4gICAgICAgIC8vIGJyYWNrZXQgc3ludGF4LCB3ZSBuZWVkIHRvIGNoZWNrIGlmIHRoaXMgaXMgYW4gYXJyYXkgc28gdGhhdFxuICAgICAgICAvLyB0aGlzIHdpbGwgb3V0cHV0ICB7IGZyaWVuZHM6IFt0cnVlXSB9IGFuZCBub3QgeyBmcmllbmRzOiB7IFwiMFwiOiB0cnVlIH0gfVxuXG4gICAgICAgIHJlc3BvbnNlW2tdID0gQXJyYXkuaXNBcnJheSh2YWwpID8gW10gOiB7fTtcbiAgICAgICAgc2V0TmVzdGVkT2JqZWN0VmFsdWVzKHZhbCwgdmFsdWUsIHZpc2l0ZWQsIHJlc3BvbnNlW2tdKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmVzcG9uc2Vba10gPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzcG9uc2U7XG59XG5cbnZhciBGb3JtaWtDb250ZXh0ID0gLyojX19QVVJFX18qL2NyZWF0ZUNvbnRleHQodW5kZWZpbmVkKTtcbkZvcm1pa0NvbnRleHQuZGlzcGxheU5hbWUgPSAnRm9ybWlrQ29udGV4dCc7XG52YXIgRm9ybWlrUHJvdmlkZXIgPSBGb3JtaWtDb250ZXh0LlByb3ZpZGVyO1xudmFyIEZvcm1pa0NvbnN1bWVyID0gRm9ybWlrQ29udGV4dC5Db25zdW1lcjtcbmZ1bmN0aW9uIHVzZUZvcm1pa0NvbnRleHQoKSB7XG4gIHZhciBmb3JtaWsgPSB1c2VDb250ZXh0KEZvcm1pa0NvbnRleHQpO1xuICAhISFmb3JtaWsgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyBpbnZhcmlhbnQoZmFsc2UsIFwiRm9ybWlrIGNvbnRleHQgaXMgdW5kZWZpbmVkLCBwbGVhc2UgdmVyaWZ5IHlvdSBhcmUgY2FsbGluZyB1c2VGb3JtaWtDb250ZXh0KCkgYXMgY2hpbGQgb2YgYSA8Rm9ybWlrPiBjb21wb25lbnQuXCIpIDogaW52YXJpYW50KGZhbHNlKSA6IHZvaWQgMDtcbiAgcmV0dXJuIGZvcm1paztcbn1cblxuZnVuY3Rpb24gZm9ybWlrUmVkdWNlcihzdGF0ZSwgbXNnKSB7XG4gIHN3aXRjaCAobXNnLnR5cGUpIHtcbiAgICBjYXNlICdTRVRfVkFMVUVTJzpcbiAgICAgIHJldHVybiBfZXh0ZW5kcyh7fSwgc3RhdGUsIHtcbiAgICAgICAgdmFsdWVzOiBtc2cucGF5bG9hZFxuICAgICAgfSk7XG5cbiAgICBjYXNlICdTRVRfVE9VQ0hFRCc6XG4gICAgICByZXR1cm4gX2V4dGVuZHMoe30sIHN0YXRlLCB7XG4gICAgICAgIHRvdWNoZWQ6IG1zZy5wYXlsb2FkXG4gICAgICB9KTtcblxuICAgIGNhc2UgJ1NFVF9FUlJPUlMnOlxuICAgICAgaWYgKGlzRXF1YWwoc3RhdGUuZXJyb3JzLCBtc2cucGF5bG9hZCkpIHtcbiAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gX2V4dGVuZHMoe30sIHN0YXRlLCB7XG4gICAgICAgIGVycm9yczogbXNnLnBheWxvYWRcbiAgICAgIH0pO1xuXG4gICAgY2FzZSAnU0VUX1NUQVRVUyc6XG4gICAgICByZXR1cm4gX2V4dGVuZHMoe30sIHN0YXRlLCB7XG4gICAgICAgIHN0YXR1czogbXNnLnBheWxvYWRcbiAgICAgIH0pO1xuXG4gICAgY2FzZSAnU0VUX0lTU1VCTUlUVElORyc6XG4gICAgICByZXR1cm4gX2V4dGVuZHMoe30sIHN0YXRlLCB7XG4gICAgICAgIGlzU3VibWl0dGluZzogbXNnLnBheWxvYWRcbiAgICAgIH0pO1xuXG4gICAgY2FzZSAnU0VUX0lTVkFMSURBVElORyc6XG4gICAgICByZXR1cm4gX2V4dGVuZHMoe30sIHN0YXRlLCB7XG4gICAgICAgIGlzVmFsaWRhdGluZzogbXNnLnBheWxvYWRcbiAgICAgIH0pO1xuXG4gICAgY2FzZSAnU0VUX0ZJRUxEX1ZBTFVFJzpcbiAgICAgIHJldHVybiBfZXh0ZW5kcyh7fSwgc3RhdGUsIHtcbiAgICAgICAgdmFsdWVzOiBzZXRJbihzdGF0ZS52YWx1ZXMsIG1zZy5wYXlsb2FkLmZpZWxkLCBtc2cucGF5bG9hZC52YWx1ZSlcbiAgICAgIH0pO1xuXG4gICAgY2FzZSAnU0VUX0ZJRUxEX1RPVUNIRUQnOlxuICAgICAgcmV0dXJuIF9leHRlbmRzKHt9LCBzdGF0ZSwge1xuICAgICAgICB0b3VjaGVkOiBzZXRJbihzdGF0ZS50b3VjaGVkLCBtc2cucGF5bG9hZC5maWVsZCwgbXNnLnBheWxvYWQudmFsdWUpXG4gICAgICB9KTtcblxuICAgIGNhc2UgJ1NFVF9GSUVMRF9FUlJPUic6XG4gICAgICByZXR1cm4gX2V4dGVuZHMoe30sIHN0YXRlLCB7XG4gICAgICAgIGVycm9yczogc2V0SW4oc3RhdGUuZXJyb3JzLCBtc2cucGF5bG9hZC5maWVsZCwgbXNnLnBheWxvYWQudmFsdWUpXG4gICAgICB9KTtcblxuICAgIGNhc2UgJ1JFU0VUX0ZPUk0nOlxuICAgICAgcmV0dXJuIF9leHRlbmRzKHt9LCBzdGF0ZSwgbXNnLnBheWxvYWQpO1xuXG4gICAgY2FzZSAnU0VUX0ZPUk1JS19TVEFURSc6XG4gICAgICByZXR1cm4gbXNnLnBheWxvYWQoc3RhdGUpO1xuXG4gICAgY2FzZSAnU1VCTUlUX0FUVEVNUFQnOlxuICAgICAgcmV0dXJuIF9leHRlbmRzKHt9LCBzdGF0ZSwge1xuICAgICAgICB0b3VjaGVkOiBzZXROZXN0ZWRPYmplY3RWYWx1ZXMoc3RhdGUudmFsdWVzLCB0cnVlKSxcbiAgICAgICAgaXNTdWJtaXR0aW5nOiB0cnVlLFxuICAgICAgICBzdWJtaXRDb3VudDogc3RhdGUuc3VibWl0Q291bnQgKyAxXG4gICAgICB9KTtcblxuICAgIGNhc2UgJ1NVQk1JVF9GQUlMVVJFJzpcbiAgICAgIHJldHVybiBfZXh0ZW5kcyh7fSwgc3RhdGUsIHtcbiAgICAgICAgaXNTdWJtaXR0aW5nOiBmYWxzZVxuICAgICAgfSk7XG5cbiAgICBjYXNlICdTVUJNSVRfU1VDQ0VTUyc6XG4gICAgICByZXR1cm4gX2V4dGVuZHMoe30sIHN0YXRlLCB7XG4gICAgICAgIGlzU3VibWl0dGluZzogZmFsc2VcbiAgICAgIH0pO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBzdGF0ZTtcbiAgfVxufSAvLyBJbml0aWFsIGVtcHR5IHN0YXRlcyAvLyBvYmplY3RzXG5cblxudmFyIGVtcHR5RXJyb3JzID0ge307XG52YXIgZW1wdHlUb3VjaGVkID0ge307XG5mdW5jdGlvbiB1c2VGb3JtaWsoX3JlZikge1xuICB2YXIgX3JlZiR2YWxpZGF0ZU9uQ2hhbmdlID0gX3JlZi52YWxpZGF0ZU9uQ2hhbmdlLFxuICAgICAgdmFsaWRhdGVPbkNoYW5nZSA9IF9yZWYkdmFsaWRhdGVPbkNoYW5nZSA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9yZWYkdmFsaWRhdGVPbkNoYW5nZSxcbiAgICAgIF9yZWYkdmFsaWRhdGVPbkJsdXIgPSBfcmVmLnZhbGlkYXRlT25CbHVyLFxuICAgICAgdmFsaWRhdGVPbkJsdXIgPSBfcmVmJHZhbGlkYXRlT25CbHVyID09PSB2b2lkIDAgPyB0cnVlIDogX3JlZiR2YWxpZGF0ZU9uQmx1cixcbiAgICAgIF9yZWYkdmFsaWRhdGVPbk1vdW50ID0gX3JlZi52YWxpZGF0ZU9uTW91bnQsXG4gICAgICB2YWxpZGF0ZU9uTW91bnQgPSBfcmVmJHZhbGlkYXRlT25Nb3VudCA9PT0gdm9pZCAwID8gZmFsc2UgOiBfcmVmJHZhbGlkYXRlT25Nb3VudCxcbiAgICAgIGlzSW5pdGlhbFZhbGlkID0gX3JlZi5pc0luaXRpYWxWYWxpZCxcbiAgICAgIF9yZWYkZW5hYmxlUmVpbml0aWFsaSA9IF9yZWYuZW5hYmxlUmVpbml0aWFsaXplLFxuICAgICAgZW5hYmxlUmVpbml0aWFsaXplID0gX3JlZiRlbmFibGVSZWluaXRpYWxpID09PSB2b2lkIDAgPyBmYWxzZSA6IF9yZWYkZW5hYmxlUmVpbml0aWFsaSxcbiAgICAgIG9uU3VibWl0ID0gX3JlZi5vblN1Ym1pdCxcbiAgICAgIHJlc3QgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShfcmVmLCBbXCJ2YWxpZGF0ZU9uQ2hhbmdlXCIsIFwidmFsaWRhdGVPbkJsdXJcIiwgXCJ2YWxpZGF0ZU9uTW91bnRcIiwgXCJpc0luaXRpYWxWYWxpZFwiLCBcImVuYWJsZVJlaW5pdGlhbGl6ZVwiLCBcIm9uU3VibWl0XCJdKTtcblxuICB2YXIgcHJvcHMgPSBfZXh0ZW5kcyh7XG4gICAgdmFsaWRhdGVPbkNoYW5nZTogdmFsaWRhdGVPbkNoYW5nZSxcbiAgICB2YWxpZGF0ZU9uQmx1cjogdmFsaWRhdGVPbkJsdXIsXG4gICAgdmFsaWRhdGVPbk1vdW50OiB2YWxpZGF0ZU9uTW91bnQsXG4gICAgb25TdWJtaXQ6IG9uU3VibWl0XG4gIH0sIHJlc3QpO1xuXG4gIHZhciBpbml0aWFsVmFsdWVzID0gdXNlUmVmKHByb3BzLmluaXRpYWxWYWx1ZXMpO1xuICB2YXIgaW5pdGlhbEVycm9ycyA9IHVzZVJlZihwcm9wcy5pbml0aWFsRXJyb3JzIHx8IGVtcHR5RXJyb3JzKTtcbiAgdmFyIGluaXRpYWxUb3VjaGVkID0gdXNlUmVmKHByb3BzLmluaXRpYWxUb3VjaGVkIHx8IGVtcHR5VG91Y2hlZCk7XG4gIHZhciBpbml0aWFsU3RhdHVzID0gdXNlUmVmKHByb3BzLmluaXRpYWxTdGF0dXMpO1xuICB2YXIgaXNNb3VudGVkID0gdXNlUmVmKGZhbHNlKTtcbiAgdmFyIGZpZWxkUmVnaXN0cnkgPSB1c2VSZWYoe30pO1xuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgISh0eXBlb2YgaXNJbml0aWFsVmFsaWQgPT09ICd1bmRlZmluZWQnKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IGludmFyaWFudChmYWxzZSwgJ2lzSW5pdGlhbFZhbGlkIGhhcyBiZWVuIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBmdXR1cmUgdmVyc2lvbnMgb2YgRm9ybWlrLiBQbGVhc2UgdXNlIGluaXRpYWxFcnJvcnMgb3IgdmFsaWRhdGVPbk1vdW50IGluc3RlYWQuJykgOiBpbnZhcmlhbnQoZmFsc2UpIDogdm9pZCAwOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICB9LCBbXSk7XG4gIH1cblxuICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIGlzTW91bnRlZC5jdXJyZW50ID0gdHJ1ZTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgaXNNb3VudGVkLmN1cnJlbnQgPSBmYWxzZTtcbiAgICB9O1xuICB9LCBbXSk7XG5cbiAgdmFyIF9SZWFjdCR1c2VSZWR1Y2VyID0gdXNlUmVkdWNlcihmb3JtaWtSZWR1Y2VyLCB7XG4gICAgdmFsdWVzOiBwcm9wcy5pbml0aWFsVmFsdWVzLFxuICAgIGVycm9yczogcHJvcHMuaW5pdGlhbEVycm9ycyB8fCBlbXB0eUVycm9ycyxcbiAgICB0b3VjaGVkOiBwcm9wcy5pbml0aWFsVG91Y2hlZCB8fCBlbXB0eVRvdWNoZWQsXG4gICAgc3RhdHVzOiBwcm9wcy5pbml0aWFsU3RhdHVzLFxuICAgIGlzU3VibWl0dGluZzogZmFsc2UsXG4gICAgaXNWYWxpZGF0aW5nOiBmYWxzZSxcbiAgICBzdWJtaXRDb3VudDogMFxuICB9KSxcbiAgICAgIHN0YXRlID0gX1JlYWN0JHVzZVJlZHVjZXJbMF0sXG4gICAgICBkaXNwYXRjaCA9IF9SZWFjdCR1c2VSZWR1Y2VyWzFdO1xuXG4gIHZhciBydW5WYWxpZGF0ZUhhbmRsZXIgPSB1c2VDYWxsYmFjayhmdW5jdGlvbiAodmFsdWVzLCBmaWVsZCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICB2YXIgbWF5YmVQcm9taXNlZEVycm9ycyA9IHByb3BzLnZhbGlkYXRlKHZhbHVlcywgZmllbGQpO1xuXG4gICAgICBpZiAobWF5YmVQcm9taXNlZEVycm9ycyA9PSBudWxsKSB7XG4gICAgICAgIC8vIHVzZSBsb29zZSBudWxsIGNoZWNrIGhlcmUgb24gcHVycG9zZVxuICAgICAgICByZXNvbHZlKGVtcHR5RXJyb3JzKTtcbiAgICAgIH0gZWxzZSBpZiAoaXNQcm9taXNlKG1heWJlUHJvbWlzZWRFcnJvcnMpKSB7XG4gICAgICAgIG1heWJlUHJvbWlzZWRFcnJvcnMudGhlbihmdW5jdGlvbiAoZXJyb3JzKSB7XG4gICAgICAgICAgcmVzb2x2ZShlcnJvcnMgfHwgZW1wdHlFcnJvcnMpO1xuICAgICAgICB9LCBmdW5jdGlvbiAoYWN0dWFsRXhjZXB0aW9uKSB7XG4gICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcIldhcm5pbmc6IEFuIHVuaGFuZGxlZCBlcnJvciB3YXMgY2F1Z2h0IGR1cmluZyB2YWxpZGF0aW9uIGluIDxGb3JtaWsgdmFsaWRhdGUgLz5cIiwgYWN0dWFsRXhjZXB0aW9uKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZWplY3QoYWN0dWFsRXhjZXB0aW9uKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNvbHZlKG1heWJlUHJvbWlzZWRFcnJvcnMpO1xuICAgICAgfVxuICAgIH0pO1xuICB9LCBbcHJvcHMudmFsaWRhdGVdKTtcbiAgLyoqXHJcbiAgICogUnVuIHZhbGlkYXRpb24gYWdhaW5zdCBhIFl1cCBzY2hlbWEgYW5kIG9wdGlvbmFsbHkgcnVuIGEgZnVuY3Rpb24gaWYgc3VjY2Vzc2Z1bFxyXG4gICAqL1xuXG4gIHZhciBydW5WYWxpZGF0aW9uU2NoZW1hID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKHZhbHVlcywgZmllbGQpIHtcbiAgICB2YXIgdmFsaWRhdGlvblNjaGVtYSA9IHByb3BzLnZhbGlkYXRpb25TY2hlbWE7XG4gICAgdmFyIHNjaGVtYSA9IGlzRnVuY3Rpb24odmFsaWRhdGlvblNjaGVtYSkgPyB2YWxpZGF0aW9uU2NoZW1hKGZpZWxkKSA6IHZhbGlkYXRpb25TY2hlbWE7XG4gICAgdmFyIHByb21pc2UgPSBmaWVsZCAmJiBzY2hlbWEudmFsaWRhdGVBdCA/IHNjaGVtYS52YWxpZGF0ZUF0KGZpZWxkLCB2YWx1ZXMpIDogdmFsaWRhdGVZdXBTY2hlbWEodmFsdWVzLCBzY2hlbWEpO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICBwcm9taXNlLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICByZXNvbHZlKGVtcHR5RXJyb3JzKTtcbiAgICAgIH0sIGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgLy8gWXVwIHdpbGwgdGhyb3cgYSB2YWxpZGF0aW9uIGVycm9yIGlmIHZhbGlkYXRpb24gZmFpbHMuIFdlIGNhdGNoIHRob3NlIGFuZFxuICAgICAgICAvLyByZXNvbHZlIHRoZW0gaW50byBGb3JtaWsgZXJyb3JzLiBXZSBjYW4gc25pZmYgaWYgc29tZXRoaW5nIGlzIGEgWXVwIGVycm9yXG4gICAgICAgIC8vIGJ5IGNoZWNraW5nIGVycm9yLm5hbWUuXG4gICAgICAgIC8vIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2pxdWVuc2UveXVwI3ZhbGlkYXRpb25lcnJvcmVycm9ycy1zdHJpbmctLWFycmF5c3RyaW5nLXZhbHVlLWFueS1wYXRoLXN0cmluZ1xuICAgICAgICBpZiAoZXJyLm5hbWUgPT09ICdWYWxpZGF0aW9uRXJyb3InKSB7XG4gICAgICAgICAgcmVzb2x2ZSh5dXBUb0Zvcm1FcnJvcnMoZXJyKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gV2UgdGhyb3cgYW55IG90aGVyIGVycm9yc1xuICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXCJXYXJuaW5nOiBBbiB1bmhhbmRsZWQgZXJyb3Igd2FzIGNhdWdodCBkdXJpbmcgdmFsaWRhdGlvbiBpbiA8Rm9ybWlrIHZhbGlkYXRpb25TY2hlbWEgLz5cIiwgZXJyKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH0sIFtwcm9wcy52YWxpZGF0aW9uU2NoZW1hXSk7XG4gIHZhciBydW5TaW5nbGVGaWVsZExldmVsVmFsaWRhdGlvbiA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChmaWVsZCwgdmFsdWUpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUpIHtcbiAgICAgIHJldHVybiByZXNvbHZlKGZpZWxkUmVnaXN0cnkuY3VycmVudFtmaWVsZF0udmFsaWRhdGUodmFsdWUpKTtcbiAgICB9KTtcbiAgfSwgW10pO1xuICB2YXIgcnVuRmllbGRMZXZlbFZhbGlkYXRpb25zID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKHZhbHVlcykge1xuICAgIHZhciBmaWVsZEtleXNXaXRoVmFsaWRhdGlvbiA9IE9iamVjdC5rZXlzKGZpZWxkUmVnaXN0cnkuY3VycmVudCkuZmlsdGVyKGZ1bmN0aW9uIChmKSB7XG4gICAgICByZXR1cm4gaXNGdW5jdGlvbihmaWVsZFJlZ2lzdHJ5LmN1cnJlbnRbZl0udmFsaWRhdGUpO1xuICAgIH0pOyAvLyBDb25zdHJ1Y3QgYW4gYXJyYXkgd2l0aCBhbGwgb2YgdGhlIGZpZWxkIHZhbGlkYXRpb24gZnVuY3Rpb25zXG5cbiAgICB2YXIgZmllbGRWYWxpZGF0aW9ucyA9IGZpZWxkS2V5c1dpdGhWYWxpZGF0aW9uLmxlbmd0aCA+IDAgPyBmaWVsZEtleXNXaXRoVmFsaWRhdGlvbi5tYXAoZnVuY3Rpb24gKGYpIHtcbiAgICAgIHJldHVybiBydW5TaW5nbGVGaWVsZExldmVsVmFsaWRhdGlvbihmLCBnZXRJbih2YWx1ZXMsIGYpKTtcbiAgICB9KSA6IFtQcm9taXNlLnJlc29sdmUoJ0RPX05PVF9ERUxFVEVfWU9VX1dJTExfQkVfRklSRUQnKV07IC8vIHVzZSBzcGVjaWFsIGNhc2UgOylcblxuICAgIHJldHVybiBQcm9taXNlLmFsbChmaWVsZFZhbGlkYXRpb25zKS50aGVuKGZ1bmN0aW9uIChmaWVsZEVycm9yc0xpc3QpIHtcbiAgICAgIHJldHVybiBmaWVsZEVycm9yc0xpc3QucmVkdWNlKGZ1bmN0aW9uIChwcmV2LCBjdXJyLCBpbmRleCkge1xuICAgICAgICBpZiAoY3VyciA9PT0gJ0RPX05PVF9ERUxFVEVfWU9VX1dJTExfQkVfRklSRUQnKSB7XG4gICAgICAgICAgcmV0dXJuIHByZXY7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY3Vycikge1xuICAgICAgICAgIHByZXYgPSBzZXRJbihwcmV2LCBmaWVsZEtleXNXaXRoVmFsaWRhdGlvbltpbmRleF0sIGN1cnIpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHByZXY7XG4gICAgICB9LCB7fSk7XG4gICAgfSk7XG4gIH0sIFtydW5TaW5nbGVGaWVsZExldmVsVmFsaWRhdGlvbl0pOyAvLyBSdW4gYWxsIHZhbGlkYXRpb25zIGFuZCByZXR1cm4gdGhlIHJlc3VsdFxuXG4gIHZhciBydW5BbGxWYWxpZGF0aW9ucyA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uICh2YWx1ZXMpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5hbGwoW3J1bkZpZWxkTGV2ZWxWYWxpZGF0aW9ucyh2YWx1ZXMpLCBwcm9wcy52YWxpZGF0aW9uU2NoZW1hID8gcnVuVmFsaWRhdGlvblNjaGVtYSh2YWx1ZXMpIDoge30sIHByb3BzLnZhbGlkYXRlID8gcnVuVmFsaWRhdGVIYW5kbGVyKHZhbHVlcykgOiB7fV0pLnRoZW4oZnVuY3Rpb24gKF9yZWYyKSB7XG4gICAgICB2YXIgZmllbGRFcnJvcnMgPSBfcmVmMlswXSxcbiAgICAgICAgICBzY2hlbWFFcnJvcnMgPSBfcmVmMlsxXSxcbiAgICAgICAgICB2YWxpZGF0ZUVycm9ycyA9IF9yZWYyWzJdO1xuICAgICAgdmFyIGNvbWJpbmVkRXJyb3JzID0gZGVlcG1lcmdlLmFsbChbZmllbGRFcnJvcnMsIHNjaGVtYUVycm9ycywgdmFsaWRhdGVFcnJvcnNdLCB7XG4gICAgICAgIGFycmF5TWVyZ2U6IGFycmF5TWVyZ2VcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGNvbWJpbmVkRXJyb3JzO1xuICAgIH0pO1xuICB9LCBbcHJvcHMudmFsaWRhdGUsIHByb3BzLnZhbGlkYXRpb25TY2hlbWEsIHJ1bkZpZWxkTGV2ZWxWYWxpZGF0aW9ucywgcnVuVmFsaWRhdGVIYW5kbGVyLCBydW5WYWxpZGF0aW9uU2NoZW1hXSk7IC8vIFJ1biBhbGwgdmFsaWRhdGlvbnMgbWV0aG9kcyBhbmQgdXBkYXRlIHN0YXRlIGFjY29yZGluZ2x5XG5cbiAgdmFyIHZhbGlkYXRlRm9ybVdpdGhIaWdoUHJpb3JpdHkgPSB1c2VFdmVudENhbGxiYWNrKGZ1bmN0aW9uICh2YWx1ZXMpIHtcbiAgICBpZiAodmFsdWVzID09PSB2b2lkIDApIHtcbiAgICAgIHZhbHVlcyA9IHN0YXRlLnZhbHVlcztcbiAgICB9XG5cbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiAnU0VUX0lTVkFMSURBVElORycsXG4gICAgICBwYXlsb2FkOiB0cnVlXG4gICAgfSk7XG4gICAgcmV0dXJuIHJ1bkFsbFZhbGlkYXRpb25zKHZhbHVlcykudGhlbihmdW5jdGlvbiAoY29tYmluZWRFcnJvcnMpIHtcbiAgICAgIGlmICghIWlzTW91bnRlZC5jdXJyZW50KSB7XG4gICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICB0eXBlOiAnU0VUX0lTVkFMSURBVElORycsXG4gICAgICAgICAgcGF5bG9hZDogZmFsc2VcbiAgICAgICAgfSk7XG4gICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICB0eXBlOiAnU0VUX0VSUk9SUycsXG4gICAgICAgICAgcGF5bG9hZDogY29tYmluZWRFcnJvcnNcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjb21iaW5lZEVycm9ycztcbiAgICB9KTtcbiAgfSk7XG4gIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHZhbGlkYXRlT25Nb3VudCAmJiBpc01vdW50ZWQuY3VycmVudCA9PT0gdHJ1ZSAmJiBpc0VxdWFsKGluaXRpYWxWYWx1ZXMuY3VycmVudCwgcHJvcHMuaW5pdGlhbFZhbHVlcykpIHtcbiAgICAgIHZhbGlkYXRlRm9ybVdpdGhIaWdoUHJpb3JpdHkoaW5pdGlhbFZhbHVlcy5jdXJyZW50KTtcbiAgICB9XG4gIH0sIFt2YWxpZGF0ZU9uTW91bnQsIHZhbGlkYXRlRm9ybVdpdGhIaWdoUHJpb3JpdHldKTtcbiAgdmFyIHJlc2V0Rm9ybSA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChuZXh0U3RhdGUpIHtcbiAgICB2YXIgdmFsdWVzID0gbmV4dFN0YXRlICYmIG5leHRTdGF0ZS52YWx1ZXMgPyBuZXh0U3RhdGUudmFsdWVzIDogaW5pdGlhbFZhbHVlcy5jdXJyZW50O1xuICAgIHZhciBlcnJvcnMgPSBuZXh0U3RhdGUgJiYgbmV4dFN0YXRlLmVycm9ycyA/IG5leHRTdGF0ZS5lcnJvcnMgOiBpbml0aWFsRXJyb3JzLmN1cnJlbnQgPyBpbml0aWFsRXJyb3JzLmN1cnJlbnQgOiBwcm9wcy5pbml0aWFsRXJyb3JzIHx8IHt9O1xuICAgIHZhciB0b3VjaGVkID0gbmV4dFN0YXRlICYmIG5leHRTdGF0ZS50b3VjaGVkID8gbmV4dFN0YXRlLnRvdWNoZWQgOiBpbml0aWFsVG91Y2hlZC5jdXJyZW50ID8gaW5pdGlhbFRvdWNoZWQuY3VycmVudCA6IHByb3BzLmluaXRpYWxUb3VjaGVkIHx8IHt9O1xuICAgIHZhciBzdGF0dXMgPSBuZXh0U3RhdGUgJiYgbmV4dFN0YXRlLnN0YXR1cyA/IG5leHRTdGF0ZS5zdGF0dXMgOiBpbml0aWFsU3RhdHVzLmN1cnJlbnQgPyBpbml0aWFsU3RhdHVzLmN1cnJlbnQgOiBwcm9wcy5pbml0aWFsU3RhdHVzO1xuICAgIGluaXRpYWxWYWx1ZXMuY3VycmVudCA9IHZhbHVlcztcbiAgICBpbml0aWFsRXJyb3JzLmN1cnJlbnQgPSBlcnJvcnM7XG4gICAgaW5pdGlhbFRvdWNoZWQuY3VycmVudCA9IHRvdWNoZWQ7XG4gICAgaW5pdGlhbFN0YXR1cy5jdXJyZW50ID0gc3RhdHVzO1xuXG4gICAgdmFyIGRpc3BhdGNoRm4gPSBmdW5jdGlvbiBkaXNwYXRjaEZuKCkge1xuICAgICAgZGlzcGF0Y2goe1xuICAgICAgICB0eXBlOiAnUkVTRVRfRk9STScsXG4gICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICBpc1N1Ym1pdHRpbmc6ICEhbmV4dFN0YXRlICYmICEhbmV4dFN0YXRlLmlzU3VibWl0dGluZyxcbiAgICAgICAgICBlcnJvcnM6IGVycm9ycyxcbiAgICAgICAgICB0b3VjaGVkOiB0b3VjaGVkLFxuICAgICAgICAgIHN0YXR1czogc3RhdHVzLFxuICAgICAgICAgIHZhbHVlczogdmFsdWVzLFxuICAgICAgICAgIGlzVmFsaWRhdGluZzogISFuZXh0U3RhdGUgJiYgISFuZXh0U3RhdGUuaXNWYWxpZGF0aW5nLFxuICAgICAgICAgIHN1Ym1pdENvdW50OiAhIW5leHRTdGF0ZSAmJiAhIW5leHRTdGF0ZS5zdWJtaXRDb3VudCAmJiB0eXBlb2YgbmV4dFN0YXRlLnN1Ym1pdENvdW50ID09PSAnbnVtYmVyJyA/IG5leHRTdGF0ZS5zdWJtaXRDb3VudCA6IDBcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIGlmIChwcm9wcy5vblJlc2V0KSB7XG4gICAgICB2YXIgbWF5YmVQcm9taXNlZE9uUmVzZXQgPSBwcm9wcy5vblJlc2V0KHN0YXRlLnZhbHVlcywgaW1wZXJhdGl2ZU1ldGhvZHMpO1xuXG4gICAgICBpZiAoaXNQcm9taXNlKG1heWJlUHJvbWlzZWRPblJlc2V0KSkge1xuICAgICAgICBtYXliZVByb21pc2VkT25SZXNldC50aGVuKGRpc3BhdGNoRm4pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGlzcGF0Y2hGbigpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBkaXNwYXRjaEZuKCk7XG4gICAgfVxuICB9LCBbcHJvcHMuaW5pdGlhbEVycm9ycywgcHJvcHMuaW5pdGlhbFN0YXR1cywgcHJvcHMuaW5pdGlhbFRvdWNoZWRdKTtcbiAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoaXNNb3VudGVkLmN1cnJlbnQgPT09IHRydWUgJiYgIWlzRXF1YWwoaW5pdGlhbFZhbHVlcy5jdXJyZW50LCBwcm9wcy5pbml0aWFsVmFsdWVzKSkge1xuICAgICAgaWYgKGVuYWJsZVJlaW5pdGlhbGl6ZSkge1xuICAgICAgICBpbml0aWFsVmFsdWVzLmN1cnJlbnQgPSBwcm9wcy5pbml0aWFsVmFsdWVzO1xuICAgICAgICByZXNldEZvcm0oKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHZhbGlkYXRlT25Nb3VudCkge1xuICAgICAgICB2YWxpZGF0ZUZvcm1XaXRoSGlnaFByaW9yaXR5KGluaXRpYWxWYWx1ZXMuY3VycmVudCk7XG4gICAgICB9XG4gICAgfVxuICB9LCBbZW5hYmxlUmVpbml0aWFsaXplLCBwcm9wcy5pbml0aWFsVmFsdWVzLCByZXNldEZvcm0sIHZhbGlkYXRlT25Nb3VudCwgdmFsaWRhdGVGb3JtV2l0aEhpZ2hQcmlvcml0eV0pO1xuICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIGlmIChlbmFibGVSZWluaXRpYWxpemUgJiYgaXNNb3VudGVkLmN1cnJlbnQgPT09IHRydWUgJiYgIWlzRXF1YWwoaW5pdGlhbEVycm9ycy5jdXJyZW50LCBwcm9wcy5pbml0aWFsRXJyb3JzKSkge1xuICAgICAgaW5pdGlhbEVycm9ycy5jdXJyZW50ID0gcHJvcHMuaW5pdGlhbEVycm9ycyB8fCBlbXB0eUVycm9ycztcbiAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgdHlwZTogJ1NFVF9FUlJPUlMnLFxuICAgICAgICBwYXlsb2FkOiBwcm9wcy5pbml0aWFsRXJyb3JzIHx8IGVtcHR5RXJyb3JzXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFtlbmFibGVSZWluaXRpYWxpemUsIHByb3BzLmluaXRpYWxFcnJvcnNdKTtcbiAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoZW5hYmxlUmVpbml0aWFsaXplICYmIGlzTW91bnRlZC5jdXJyZW50ID09PSB0cnVlICYmICFpc0VxdWFsKGluaXRpYWxUb3VjaGVkLmN1cnJlbnQsIHByb3BzLmluaXRpYWxUb3VjaGVkKSkge1xuICAgICAgaW5pdGlhbFRvdWNoZWQuY3VycmVudCA9IHByb3BzLmluaXRpYWxUb3VjaGVkIHx8IGVtcHR5VG91Y2hlZDtcbiAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgdHlwZTogJ1NFVF9UT1VDSEVEJyxcbiAgICAgICAgcGF5bG9hZDogcHJvcHMuaW5pdGlhbFRvdWNoZWQgfHwgZW1wdHlUb3VjaGVkXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFtlbmFibGVSZWluaXRpYWxpemUsIHByb3BzLmluaXRpYWxUb3VjaGVkXSk7XG4gIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKGVuYWJsZVJlaW5pdGlhbGl6ZSAmJiBpc01vdW50ZWQuY3VycmVudCA9PT0gdHJ1ZSAmJiAhaXNFcXVhbChpbml0aWFsU3RhdHVzLmN1cnJlbnQsIHByb3BzLmluaXRpYWxTdGF0dXMpKSB7XG4gICAgICBpbml0aWFsU3RhdHVzLmN1cnJlbnQgPSBwcm9wcy5pbml0aWFsU3RhdHVzO1xuICAgICAgZGlzcGF0Y2goe1xuICAgICAgICB0eXBlOiAnU0VUX1NUQVRVUycsXG4gICAgICAgIHBheWxvYWQ6IHByb3BzLmluaXRpYWxTdGF0dXNcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwgW2VuYWJsZVJlaW5pdGlhbGl6ZSwgcHJvcHMuaW5pdGlhbFN0YXR1cywgcHJvcHMuaW5pdGlhbFRvdWNoZWRdKTtcbiAgdmFyIHZhbGlkYXRlRmllbGQgPSB1c2VFdmVudENhbGxiYWNrKGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgLy8gVGhpcyB3aWxsIGVmZmljaWVudGx5IHZhbGlkYXRlIGEgc2luZ2xlIGZpZWxkIGJ5IGF2b2lkaW5nIHN0YXRlXG4gICAgLy8gY2hhbmdlcyBpZiB0aGUgdmFsaWRhdGlvbiBmdW5jdGlvbiBpcyBzeW5jaHJvbm91cy4gSXQncyBkaWZmZXJlbnQgZnJvbVxuICAgIC8vIHdoYXQgaXMgY2FsbGVkIHdoZW4gdXNpbmcgdmFsaWRhdGVGb3JtLlxuICAgIGlmIChmaWVsZFJlZ2lzdHJ5LmN1cnJlbnRbbmFtZV0gJiYgaXNGdW5jdGlvbihmaWVsZFJlZ2lzdHJ5LmN1cnJlbnRbbmFtZV0udmFsaWRhdGUpKSB7XG4gICAgICB2YXIgdmFsdWUgPSBnZXRJbihzdGF0ZS52YWx1ZXMsIG5hbWUpO1xuICAgICAgdmFyIG1heWJlUHJvbWlzZSA9IGZpZWxkUmVnaXN0cnkuY3VycmVudFtuYW1lXS52YWxpZGF0ZSh2YWx1ZSk7XG5cbiAgICAgIGlmIChpc1Byb21pc2UobWF5YmVQcm9taXNlKSkge1xuICAgICAgICAvLyBPbmx5IGZsaXAgaXNWYWxpZGF0aW5nIGlmIHRoZSBmdW5jdGlvbiBpcyBhc3luYy5cbiAgICAgICAgZGlzcGF0Y2goe1xuICAgICAgICAgIHR5cGU6ICdTRVRfSVNWQUxJREFUSU5HJyxcbiAgICAgICAgICBwYXlsb2FkOiB0cnVlXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbWF5YmVQcm9taXNlLnRoZW4oZnVuY3Rpb24gKHgpIHtcbiAgICAgICAgICByZXR1cm4geDtcbiAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgICB0eXBlOiAnU0VUX0ZJRUxEX0VSUk9SJyxcbiAgICAgICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgICAgZmllbGQ6IG5hbWUsXG4gICAgICAgICAgICAgIHZhbHVlOiBlcnJvclxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICAgIHR5cGU6ICdTRVRfSVNWQUxJREFUSU5HJyxcbiAgICAgICAgICAgIHBheWxvYWQ6IGZhbHNlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGlzcGF0Y2goe1xuICAgICAgICAgIHR5cGU6ICdTRVRfRklFTERfRVJST1InLFxuICAgICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgIGZpZWxkOiBuYW1lLFxuICAgICAgICAgICAgdmFsdWU6IG1heWJlUHJvbWlzZVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobWF5YmVQcm9taXNlKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHByb3BzLnZhbGlkYXRpb25TY2hlbWEpIHtcbiAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgdHlwZTogJ1NFVF9JU1ZBTElEQVRJTkcnLFxuICAgICAgICBwYXlsb2FkOiB0cnVlXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBydW5WYWxpZGF0aW9uU2NoZW1hKHN0YXRlLnZhbHVlcywgbmFtZSkudGhlbihmdW5jdGlvbiAoeCkge1xuICAgICAgICByZXR1cm4geDtcbiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICB0eXBlOiAnU0VUX0ZJRUxEX0VSUk9SJyxcbiAgICAgICAgICBwYXlsb2FkOiB7XG4gICAgICAgICAgICBmaWVsZDogbmFtZSxcbiAgICAgICAgICAgIHZhbHVlOiBlcnJvcltuYW1lXVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICB0eXBlOiAnU0VUX0lTVkFMSURBVElORycsXG4gICAgICAgICAgcGF5bG9hZDogZmFsc2VcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH0pO1xuICB2YXIgcmVnaXN0ZXJGaWVsZCA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChuYW1lLCBfcmVmMykge1xuICAgIHZhciB2YWxpZGF0ZSA9IF9yZWYzLnZhbGlkYXRlO1xuICAgIGZpZWxkUmVnaXN0cnkuY3VycmVudFtuYW1lXSA9IHtcbiAgICAgIHZhbGlkYXRlOiB2YWxpZGF0ZVxuICAgIH07XG4gIH0sIFtdKTtcbiAgdmFyIHVucmVnaXN0ZXJGaWVsZCA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgZGVsZXRlIGZpZWxkUmVnaXN0cnkuY3VycmVudFtuYW1lXTtcbiAgfSwgW10pO1xuICB2YXIgc2V0VG91Y2hlZCA9IHVzZUV2ZW50Q2FsbGJhY2soZnVuY3Rpb24gKHRvdWNoZWQsIHNob3VsZFZhbGlkYXRlKSB7XG4gICAgZGlzcGF0Y2goe1xuICAgICAgdHlwZTogJ1NFVF9UT1VDSEVEJyxcbiAgICAgIHBheWxvYWQ6IHRvdWNoZWRcbiAgICB9KTtcbiAgICB2YXIgd2lsbFZhbGlkYXRlID0gc2hvdWxkVmFsaWRhdGUgPT09IHVuZGVmaW5lZCA/IHZhbGlkYXRlT25CbHVyIDogc2hvdWxkVmFsaWRhdGU7XG4gICAgcmV0dXJuIHdpbGxWYWxpZGF0ZSA/IHZhbGlkYXRlRm9ybVdpdGhIaWdoUHJpb3JpdHkoc3RhdGUudmFsdWVzKSA6IFByb21pc2UucmVzb2x2ZSgpO1xuICB9KTtcbiAgdmFyIHNldEVycm9ycyA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChlcnJvcnMpIHtcbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiAnU0VUX0VSUk9SUycsXG4gICAgICBwYXlsb2FkOiBlcnJvcnNcbiAgICB9KTtcbiAgfSwgW10pO1xuICB2YXIgc2V0VmFsdWVzID0gdXNlRXZlbnRDYWxsYmFjayhmdW5jdGlvbiAodmFsdWVzLCBzaG91bGRWYWxpZGF0ZSkge1xuICAgIHZhciByZXNvbHZlZFZhbHVlcyA9IGlzRnVuY3Rpb24odmFsdWVzKSA/IHZhbHVlcyhzdGF0ZS52YWx1ZXMpIDogdmFsdWVzO1xuICAgIGRpc3BhdGNoKHtcbiAgICAgIHR5cGU6ICdTRVRfVkFMVUVTJyxcbiAgICAgIHBheWxvYWQ6IHJlc29sdmVkVmFsdWVzXG4gICAgfSk7XG4gICAgdmFyIHdpbGxWYWxpZGF0ZSA9IHNob3VsZFZhbGlkYXRlID09PSB1bmRlZmluZWQgPyB2YWxpZGF0ZU9uQ2hhbmdlIDogc2hvdWxkVmFsaWRhdGU7XG4gICAgcmV0dXJuIHdpbGxWYWxpZGF0ZSA/IHZhbGlkYXRlRm9ybVdpdGhIaWdoUHJpb3JpdHkocmVzb2x2ZWRWYWx1ZXMpIDogUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH0pO1xuICB2YXIgc2V0RmllbGRFcnJvciA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChmaWVsZCwgdmFsdWUpIHtcbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiAnU0VUX0ZJRUxEX0VSUk9SJyxcbiAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgZmllbGQ6IGZpZWxkLFxuICAgICAgICB2YWx1ZTogdmFsdWVcbiAgICAgIH1cbiAgICB9KTtcbiAgfSwgW10pO1xuICB2YXIgc2V0RmllbGRWYWx1ZSA9IHVzZUV2ZW50Q2FsbGJhY2soZnVuY3Rpb24gKGZpZWxkLCB2YWx1ZSwgc2hvdWxkVmFsaWRhdGUpIHtcbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiAnU0VUX0ZJRUxEX1ZBTFVFJyxcbiAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgZmllbGQ6IGZpZWxkLFxuICAgICAgICB2YWx1ZTogdmFsdWVcbiAgICAgIH1cbiAgICB9KTtcbiAgICB2YXIgd2lsbFZhbGlkYXRlID0gc2hvdWxkVmFsaWRhdGUgPT09IHVuZGVmaW5lZCA/IHZhbGlkYXRlT25DaGFuZ2UgOiBzaG91bGRWYWxpZGF0ZTtcbiAgICByZXR1cm4gd2lsbFZhbGlkYXRlID8gdmFsaWRhdGVGb3JtV2l0aEhpZ2hQcmlvcml0eShzZXRJbihzdGF0ZS52YWx1ZXMsIGZpZWxkLCB2YWx1ZSkpIDogUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH0pO1xuICB2YXIgZXhlY3V0ZUNoYW5nZSA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChldmVudE9yVGV4dFZhbHVlLCBtYXliZVBhdGgpIHtcbiAgICAvLyBCeSBkZWZhdWx0LCBhc3N1bWUgdGhhdCB0aGUgZmlyc3QgYXJndW1lbnQgaXMgYSBzdHJpbmcuIFRoaXMgYWxsb3dzIHVzIHRvIHVzZVxuICAgIC8vIGhhbmRsZUNoYW5nZSB3aXRoIFJlYWN0IE5hdGl2ZSBhbmQgUmVhY3QgTmF0aXZlIFdlYidzIG9uQ2hhbmdlVGV4dCBwcm9wIHdoaWNoXG4gICAgLy8gcHJvdmlkZXMganVzdCB0aGUgdmFsdWUgb2YgdGhlIGlucHV0LlxuICAgIHZhciBmaWVsZCA9IG1heWJlUGF0aDtcbiAgICB2YXIgdmFsID0gZXZlbnRPclRleHRWYWx1ZTtcbiAgICB2YXIgcGFyc2VkOyAvLyBJZiB0aGUgZmlyc3QgYXJndW1lbnQgaXMgbm90IGEgc3RyaW5nIHRob3VnaCwgaXQgaGFzIHRvIGJlIGEgc3ludGhldGljIFJlYWN0IEV2ZW50IChvciBhIGZha2Ugb25lKSxcbiAgICAvLyBzbyB3ZSBoYW5kbGUgbGlrZSB3ZSB3b3VsZCBhIG5vcm1hbCBIVE1MIGNoYW5nZSBldmVudC5cblxuICAgIGlmICghaXNTdHJpbmcoZXZlbnRPclRleHRWYWx1ZSkpIHtcbiAgICAgIC8vIElmIHdlIGNhbiwgcGVyc2lzdCB0aGUgZXZlbnRcbiAgICAgIC8vIEBzZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL2V2ZW50cy5odG1sI2V2ZW50LXBvb2xpbmdcbiAgICAgIGlmIChldmVudE9yVGV4dFZhbHVlLnBlcnNpc3QpIHtcbiAgICAgICAgZXZlbnRPclRleHRWYWx1ZS5wZXJzaXN0KCk7XG4gICAgICB9XG5cbiAgICAgIHZhciB0YXJnZXQgPSBldmVudE9yVGV4dFZhbHVlLnRhcmdldCA/IGV2ZW50T3JUZXh0VmFsdWUudGFyZ2V0IDogZXZlbnRPclRleHRWYWx1ZS5jdXJyZW50VGFyZ2V0O1xuICAgICAgdmFyIHR5cGUgPSB0YXJnZXQudHlwZSxcbiAgICAgICAgICBuYW1lID0gdGFyZ2V0Lm5hbWUsXG4gICAgICAgICAgaWQgPSB0YXJnZXQuaWQsXG4gICAgICAgICAgdmFsdWUgPSB0YXJnZXQudmFsdWUsXG4gICAgICAgICAgY2hlY2tlZCA9IHRhcmdldC5jaGVja2VkLFxuICAgICAgICAgIG91dGVySFRNTCA9IHRhcmdldC5vdXRlckhUTUwsXG4gICAgICAgICAgb3B0aW9ucyA9IHRhcmdldC5vcHRpb25zLFxuICAgICAgICAgIG11bHRpcGxlID0gdGFyZ2V0Lm11bHRpcGxlO1xuICAgICAgZmllbGQgPSBtYXliZVBhdGggPyBtYXliZVBhdGggOiBuYW1lID8gbmFtZSA6IGlkO1xuXG4gICAgICBpZiAoIWZpZWxkICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgICB3YXJuQWJvdXRNaXNzaW5nSWRlbnRpZmllcih7XG4gICAgICAgICAgaHRtbENvbnRlbnQ6IG91dGVySFRNTCxcbiAgICAgICAgICBkb2N1bWVudGF0aW9uQW5jaG9yTGluazogJ2hhbmRsZWNoYW5nZS1lLXJlYWN0Y2hhbmdlZXZlbnRhbnktLXZvaWQnLFxuICAgICAgICAgIGhhbmRsZXJOYW1lOiAnaGFuZGxlQ2hhbmdlJ1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgdmFsID0gL251bWJlcnxyYW5nZS8udGVzdCh0eXBlKSA/IChwYXJzZWQgPSBwYXJzZUZsb2F0KHZhbHVlKSwgaXNOYU4ocGFyc2VkKSA/ICcnIDogcGFyc2VkKSA6IC9jaGVja2JveC8udGVzdCh0eXBlKSAvLyBjaGVja2JveGVzXG4gICAgICA/IGdldFZhbHVlRm9yQ2hlY2tib3goZ2V0SW4oc3RhdGUudmFsdWVzLCBmaWVsZCksIGNoZWNrZWQsIHZhbHVlKSA6IG9wdGlvbnMgJiYgbXVsdGlwbGUgLy8gPHNlbGVjdCBtdWx0aXBsZT5cbiAgICAgID8gZ2V0U2VsZWN0ZWRWYWx1ZXMob3B0aW9ucykgOiB2YWx1ZTtcbiAgICB9XG5cbiAgICBpZiAoZmllbGQpIHtcbiAgICAgIC8vIFNldCBmb3JtIGZpZWxkcyBieSBuYW1lXG4gICAgICBzZXRGaWVsZFZhbHVlKGZpZWxkLCB2YWwpO1xuICAgIH1cbiAgfSwgW3NldEZpZWxkVmFsdWUsIHN0YXRlLnZhbHVlc10pO1xuICB2YXIgaGFuZGxlQ2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjayhmdW5jdGlvbiAoZXZlbnRPclBhdGgpIHtcbiAgICBpZiAoaXNTdHJpbmcoZXZlbnRPclBhdGgpKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgIHJldHVybiBleGVjdXRlQ2hhbmdlKGV2ZW50LCBldmVudE9yUGF0aCk7XG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBleGVjdXRlQ2hhbmdlKGV2ZW50T3JQYXRoKTtcbiAgICB9XG4gIH0pO1xuICB2YXIgc2V0RmllbGRUb3VjaGVkID0gdXNlRXZlbnRDYWxsYmFjayhmdW5jdGlvbiAoZmllbGQsIHRvdWNoZWQsIHNob3VsZFZhbGlkYXRlKSB7XG4gICAgaWYgKHRvdWNoZWQgPT09IHZvaWQgMCkge1xuICAgICAgdG91Y2hlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgZGlzcGF0Y2goe1xuICAgICAgdHlwZTogJ1NFVF9GSUVMRF9UT1VDSEVEJyxcbiAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgZmllbGQ6IGZpZWxkLFxuICAgICAgICB2YWx1ZTogdG91Y2hlZFxuICAgICAgfVxuICAgIH0pO1xuICAgIHZhciB3aWxsVmFsaWRhdGUgPSBzaG91bGRWYWxpZGF0ZSA9PT0gdW5kZWZpbmVkID8gdmFsaWRhdGVPbkJsdXIgOiBzaG91bGRWYWxpZGF0ZTtcbiAgICByZXR1cm4gd2lsbFZhbGlkYXRlID8gdmFsaWRhdGVGb3JtV2l0aEhpZ2hQcmlvcml0eShzdGF0ZS52YWx1ZXMpIDogUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH0pO1xuICB2YXIgZXhlY3V0ZUJsdXIgPSB1c2VDYWxsYmFjayhmdW5jdGlvbiAoZSwgcGF0aCkge1xuICAgIGlmIChlLnBlcnNpc3QpIHtcbiAgICAgIGUucGVyc2lzdCgpO1xuICAgIH1cblxuICAgIHZhciBfZSR0YXJnZXQgPSBlLnRhcmdldCxcbiAgICAgICAgbmFtZSA9IF9lJHRhcmdldC5uYW1lLFxuICAgICAgICBpZCA9IF9lJHRhcmdldC5pZCxcbiAgICAgICAgb3V0ZXJIVE1MID0gX2UkdGFyZ2V0Lm91dGVySFRNTDtcbiAgICB2YXIgZmllbGQgPSBwYXRoID8gcGF0aCA6IG5hbWUgPyBuYW1lIDogaWQ7XG5cbiAgICBpZiAoIWZpZWxkICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgd2FybkFib3V0TWlzc2luZ0lkZW50aWZpZXIoe1xuICAgICAgICBodG1sQ29udGVudDogb3V0ZXJIVE1MLFxuICAgICAgICBkb2N1bWVudGF0aW9uQW5jaG9yTGluazogJ2hhbmRsZWJsdXItZS1hbnktLXZvaWQnLFxuICAgICAgICBoYW5kbGVyTmFtZTogJ2hhbmRsZUJsdXInXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBzZXRGaWVsZFRvdWNoZWQoZmllbGQsIHRydWUpO1xuICB9LCBbc2V0RmllbGRUb3VjaGVkXSk7XG4gIHZhciBoYW5kbGVCbHVyID0gdXNlRXZlbnRDYWxsYmFjayhmdW5jdGlvbiAoZXZlbnRPclN0cmluZykge1xuICAgIGlmIChpc1N0cmluZyhldmVudE9yU3RyaW5nKSkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICByZXR1cm4gZXhlY3V0ZUJsdXIoZXZlbnQsIGV2ZW50T3JTdHJpbmcpO1xuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgZXhlY3V0ZUJsdXIoZXZlbnRPclN0cmluZyk7XG4gICAgfVxuICB9KTtcbiAgdmFyIHNldEZvcm1pa1N0YXRlID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKHN0YXRlT3JDYikge1xuICAgIGlmIChpc0Z1bmN0aW9uKHN0YXRlT3JDYikpIHtcbiAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgdHlwZTogJ1NFVF9GT1JNSUtfU1RBVEUnLFxuICAgICAgICBwYXlsb2FkOiBzdGF0ZU9yQ2JcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBkaXNwYXRjaCh7XG4gICAgICAgIHR5cGU6ICdTRVRfRk9STUlLX1NUQVRFJyxcbiAgICAgICAgcGF5bG9hZDogZnVuY3Rpb24gcGF5bG9hZCgpIHtcbiAgICAgICAgICByZXR1cm4gc3RhdGVPckNiO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFtdKTtcbiAgdmFyIHNldFN0YXR1cyA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChzdGF0dXMpIHtcbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiAnU0VUX1NUQVRVUycsXG4gICAgICBwYXlsb2FkOiBzdGF0dXNcbiAgICB9KTtcbiAgfSwgW10pO1xuICB2YXIgc2V0U3VibWl0dGluZyA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChpc1N1Ym1pdHRpbmcpIHtcbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiAnU0VUX0lTU1VCTUlUVElORycsXG4gICAgICBwYXlsb2FkOiBpc1N1Ym1pdHRpbmdcbiAgICB9KTtcbiAgfSwgW10pO1xuICB2YXIgc3VibWl0Rm9ybSA9IHVzZUV2ZW50Q2FsbGJhY2soZnVuY3Rpb24gKCkge1xuICAgIGRpc3BhdGNoKHtcbiAgICAgIHR5cGU6ICdTVUJNSVRfQVRURU1QVCdcbiAgICB9KTtcbiAgICByZXR1cm4gdmFsaWRhdGVGb3JtV2l0aEhpZ2hQcmlvcml0eSgpLnRoZW4oZnVuY3Rpb24gKGNvbWJpbmVkRXJyb3JzKSB7XG4gICAgICAvLyBJbiBjYXNlIGFuIGVycm9yIHdhcyB0aHJvd24gYW5kIHBhc3NlZCB0byB0aGUgcmVzb2x2ZWQgUHJvbWlzZSxcbiAgICAgIC8vIGBjb21iaW5lZEVycm9yc2AgY2FuIGJlIGFuIGluc3RhbmNlIG9mIGFuIEVycm9yLiBXZSBuZWVkIHRvIGNoZWNrXG4gICAgICAvLyB0aGF0IGFuZCBhYm9ydCB0aGUgc3VibWl0LlxuICAgICAgLy8gSWYgd2UgZG9uJ3QgZG8gdGhhdCwgY2FsbGluZyBgT2JqZWN0LmtleXMobmV3IEVycm9yKCkpYCB5aWVsZHMgYW5cbiAgICAgIC8vIGVtcHR5IGFycmF5LCB3aGljaCBjYXVzZXMgdGhlIHZhbGlkYXRpb24gdG8gcGFzcyBhbmQgdGhlIGZvcm1cbiAgICAgIC8vIHRvIGJlIHN1Ym1pdHRlZC5cbiAgICAgIHZhciBpc0luc3RhbmNlT2ZFcnJvciA9IGNvbWJpbmVkRXJyb3JzIGluc3RhbmNlb2YgRXJyb3I7XG4gICAgICB2YXIgaXNBY3R1YWxseVZhbGlkID0gIWlzSW5zdGFuY2VPZkVycm9yICYmIE9iamVjdC5rZXlzKGNvbWJpbmVkRXJyb3JzKS5sZW5ndGggPT09IDA7XG5cbiAgICAgIGlmIChpc0FjdHVhbGx5VmFsaWQpIHtcbiAgICAgICAgLy8gUHJvY2VlZCB3aXRoIHN1Ym1pdC4uLlxuICAgICAgICAvL1xuICAgICAgICAvLyBUbyByZXNwZWN0IHN5bmMgc3VibWl0IGZucywgd2UgY2FuJ3Qgc2ltcGx5IHdyYXAgZXhlY3V0ZVN1Ym1pdCBpbiBhIHByb21pc2UgYW5kXG4gICAgICAgIC8vIF9hbHdheXNfIGRpc3BhdGNoIFNVQk1JVF9TVUNDRVNTIGJlY2F1c2UgaXNTdWJtaXR0aW5nIHdvdWxkIHRoZW4gYWx3YXlzIGJlIGZhbHNlLlxuICAgICAgICAvLyBUaGlzIHdvdWxkIGJlIGZpbmUgaW4gc2ltcGxlIGNhc2VzLCBidXQgbWFrZSBpdCBpbXBvc3NpYmxlIHRvIGRpc2FibGUgc3VibWl0XG4gICAgICAgIC8vIGJ1dHRvbnMgd2hlcmUgcGVvcGxlIHVzZSBjYWxsYmFja3Mgb3IgcHJvbWlzZXMgYXMgc2lkZSBlZmZlY3RzICh3aGljaCBpcyBiYXNpY2FsbHlcbiAgICAgICAgLy8gYWxsIG9mIHYxIEZvcm1payBjb2RlKS4gSW5zdGVhZCwgcmVjYWxsIHRoYXQgd2UgYXJlIGluc2lkZSBvZiBhIHByb21pc2UgY2hhaW4gYWxyZWFkeSxcbiAgICAgICAgLy8gIHNvIHdlIGNhbiB0cnkvY2F0Y2ggZXhlY3V0ZVN1Ym1pdCgpLCBpZiBpdCByZXR1cm5zIHVuZGVmaW5lZCwgdGhlbiBqdXN0IGJhaWwuXG4gICAgICAgIC8vIElmIHRoZXJlIGFyZSBlcnJvcnMsIHRocm93IGVtLiBPdGhlcndpc2UsIHdyYXAgZXhlY3V0ZVN1Ym1pdCBpbiBhIHByb21pc2UgYW5kIGhhbmRsZVxuICAgICAgICAvLyBjbGVhbnVwIG9mIGlzU3VibWl0dGluZyBvbiBiZWhhbGYgb2YgdGhlIGNvbnN1bWVyLlxuICAgICAgICB2YXIgcHJvbWlzZU9yVW5kZWZpbmVkO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcHJvbWlzZU9yVW5kZWZpbmVkID0gZXhlY3V0ZVN1Ym1pdCgpOyAvLyBCYWlsIGlmIGl0J3Mgc3luYywgY29uc3VtZXIgaXMgcmVzcG9uc2libGUgZm9yIGNsZWFuaW5nIHVwXG4gICAgICAgICAgLy8gdmlhIHNldFN1Ym1pdHRpbmcoZmFsc2UpXG5cbiAgICAgICAgICBpZiAocHJvbWlzZU9yVW5kZWZpbmVkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHByb21pc2VPclVuZGVmaW5lZCkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7XG4gICAgICAgICAgaWYgKCEhaXNNb3VudGVkLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICAgICAgdHlwZTogJ1NVQk1JVF9TVUNDRVNTJ1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSlbXCJjYXRjaFwiXShmdW5jdGlvbiAoX2Vycm9ycykge1xuICAgICAgICAgIGlmICghIWlzTW91bnRlZC5jdXJyZW50KSB7XG4gICAgICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgICAgIHR5cGU6ICdTVUJNSVRfRkFJTFVSRSdcbiAgICAgICAgICAgIH0pOyAvLyBUaGlzIGlzIGEgbGVnaXQgZXJyb3IgcmVqZWN0ZWQgYnkgdGhlIG9uU3VibWl0IGZuXG4gICAgICAgICAgICAvLyBzbyB3ZSBkb24ndCB3YW50IHRvIGJyZWFrIHRoZSBwcm9taXNlIGNoYWluXG5cbiAgICAgICAgICAgIHRocm93IF9lcnJvcnM7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAoISFpc01vdW50ZWQuY3VycmVudCkge1xuICAgICAgICAvLyBeXl4gTWFrZSBzdXJlIEZvcm1payBpcyBzdGlsbCBtb3VudGVkIGJlZm9yZSB1cGRhdGluZyBzdGF0ZVxuICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgdHlwZTogJ1NVQk1JVF9GQUlMVVJFJ1xuICAgICAgICB9KTsgLy8gdGhyb3cgY29tYmluZWRFcnJvcnM7XG5cbiAgICAgICAgaWYgKGlzSW5zdGFuY2VPZkVycm9yKSB7XG4gICAgICAgICAgdGhyb3cgY29tYmluZWRFcnJvcnM7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuO1xuICAgIH0pO1xuICB9KTtcbiAgdmFyIGhhbmRsZVN1Ym1pdCA9IHVzZUV2ZW50Q2FsbGJhY2soZnVuY3Rpb24gKGUpIHtcbiAgICBpZiAoZSAmJiBlLnByZXZlbnREZWZhdWx0ICYmIGlzRnVuY3Rpb24oZS5wcmV2ZW50RGVmYXVsdCkpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBpZiAoZSAmJiBlLnN0b3BQcm9wYWdhdGlvbiAmJiBpc0Z1bmN0aW9uKGUuc3RvcFByb3BhZ2F0aW9uKSkge1xuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9IC8vIFdhcm4gaWYgZm9ybSBzdWJtaXNzaW9uIGlzIHRyaWdnZXJlZCBieSBhIDxidXR0b24+IHdpdGhvdXQgYVxuICAgIC8vIHNwZWNpZmllZCBgdHlwZWAgYXR0cmlidXRlIGR1cmluZyBkZXZlbG9wbWVudC4gVGhpcyBtaXRpZ2F0ZXNcbiAgICAvLyBhIGNvbW1vbiBnb3RjaGEgaW4gZm9ybXMgd2l0aCBib3RoIHJlc2V0IGFuZCBzdWJtaXQgYnV0dG9ucyxcbiAgICAvLyB3aGVyZSB0aGUgZGV2IGZvcmdldHMgdG8gYWRkIHR5cGU9XCJidXR0b25cIiB0byB0aGUgcmVzZXQgYnV0dG9uLlxuXG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiICYmIHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIC8vIFNhZmVseSBnZXQgdGhlIGFjdGl2ZSBlbGVtZW50ICh3b3JrcyB3aXRoIElFKVxuICAgICAgdmFyIGFjdGl2ZUVsZW1lbnQgPSBnZXRBY3RpdmVFbGVtZW50KCk7XG5cbiAgICAgIGlmIChhY3RpdmVFbGVtZW50ICE9PSBudWxsICYmIGFjdGl2ZUVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MQnV0dG9uRWxlbWVudCkge1xuICAgICAgICAhKGFjdGl2ZUVsZW1lbnQuYXR0cmlidXRlcyAmJiBhY3RpdmVFbGVtZW50LmF0dHJpYnV0ZXMuZ2V0TmFtZWRJdGVtKCd0eXBlJykpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gaW52YXJpYW50KGZhbHNlLCAnWW91IHN1Ym1pdHRlZCBhIEZvcm1payBmb3JtIHVzaW5nIGEgYnV0dG9uIHdpdGggYW4gdW5zcGVjaWZpZWQgYHR5cGVgIGF0dHJpYnV0ZS4gIE1vc3QgYnJvd3NlcnMgZGVmYXVsdCBidXR0b24gZWxlbWVudHMgdG8gYHR5cGU9XCJzdWJtaXRcImAuIElmIHRoaXMgaXMgbm90IGEgc3VibWl0IGJ1dHRvbiwgcGxlYXNlIGFkZCBgdHlwZT1cImJ1dHRvblwiYC4nKSA6IGludmFyaWFudChmYWxzZSkgOiB2b2lkIDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc3VibWl0Rm9ybSgpW1wiY2F0Y2hcIl0oZnVuY3Rpb24gKHJlYXNvbikge1xuICAgICAgY29uc29sZS53YXJuKFwiV2FybmluZzogQW4gdW5oYW5kbGVkIGVycm9yIHdhcyBjYXVnaHQgZnJvbSBzdWJtaXRGb3JtKClcIiwgcmVhc29uKTtcbiAgICB9KTtcbiAgfSk7XG4gIHZhciBpbXBlcmF0aXZlTWV0aG9kcyA9IHtcbiAgICByZXNldEZvcm06IHJlc2V0Rm9ybSxcbiAgICB2YWxpZGF0ZUZvcm06IHZhbGlkYXRlRm9ybVdpdGhIaWdoUHJpb3JpdHksXG4gICAgdmFsaWRhdGVGaWVsZDogdmFsaWRhdGVGaWVsZCxcbiAgICBzZXRFcnJvcnM6IHNldEVycm9ycyxcbiAgICBzZXRGaWVsZEVycm9yOiBzZXRGaWVsZEVycm9yLFxuICAgIHNldEZpZWxkVG91Y2hlZDogc2V0RmllbGRUb3VjaGVkLFxuICAgIHNldEZpZWxkVmFsdWU6IHNldEZpZWxkVmFsdWUsXG4gICAgc2V0U3RhdHVzOiBzZXRTdGF0dXMsXG4gICAgc2V0U3VibWl0dGluZzogc2V0U3VibWl0dGluZyxcbiAgICBzZXRUb3VjaGVkOiBzZXRUb3VjaGVkLFxuICAgIHNldFZhbHVlczogc2V0VmFsdWVzLFxuICAgIHNldEZvcm1pa1N0YXRlOiBzZXRGb3JtaWtTdGF0ZSxcbiAgICBzdWJtaXRGb3JtOiBzdWJtaXRGb3JtXG4gIH07XG4gIHZhciBleGVjdXRlU3VibWl0ID0gdXNlRXZlbnRDYWxsYmFjayhmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIG9uU3VibWl0KHN0YXRlLnZhbHVlcywgaW1wZXJhdGl2ZU1ldGhvZHMpO1xuICB9KTtcbiAgdmFyIGhhbmRsZVJlc2V0ID0gdXNlRXZlbnRDYWxsYmFjayhmdW5jdGlvbiAoZSkge1xuICAgIGlmIChlICYmIGUucHJldmVudERlZmF1bHQgJiYgaXNGdW5jdGlvbihlLnByZXZlbnREZWZhdWx0KSkge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIGlmIChlICYmIGUuc3RvcFByb3BhZ2F0aW9uICYmIGlzRnVuY3Rpb24oZS5zdG9wUHJvcGFnYXRpb24pKSB7XG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIHJlc2V0Rm9ybSgpO1xuICB9KTtcbiAgdmFyIGdldEZpZWxkTWV0YSA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHZhbHVlOiBnZXRJbihzdGF0ZS52YWx1ZXMsIG5hbWUpLFxuICAgICAgZXJyb3I6IGdldEluKHN0YXRlLmVycm9ycywgbmFtZSksXG4gICAgICB0b3VjaGVkOiAhIWdldEluKHN0YXRlLnRvdWNoZWQsIG5hbWUpLFxuICAgICAgaW5pdGlhbFZhbHVlOiBnZXRJbihpbml0aWFsVmFsdWVzLmN1cnJlbnQsIG5hbWUpLFxuICAgICAgaW5pdGlhbFRvdWNoZWQ6ICEhZ2V0SW4oaW5pdGlhbFRvdWNoZWQuY3VycmVudCwgbmFtZSksXG4gICAgICBpbml0aWFsRXJyb3I6IGdldEluKGluaXRpYWxFcnJvcnMuY3VycmVudCwgbmFtZSlcbiAgICB9O1xuICB9LCBbc3RhdGUuZXJyb3JzLCBzdGF0ZS50b3VjaGVkLCBzdGF0ZS52YWx1ZXNdKTtcbiAgdmFyIGdldEZpZWxkSGVscGVycyA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNldFZhbHVlOiBmdW5jdGlvbiBzZXRWYWx1ZSh2YWx1ZSwgc2hvdWxkVmFsaWRhdGUpIHtcbiAgICAgICAgcmV0dXJuIHNldEZpZWxkVmFsdWUobmFtZSwgdmFsdWUsIHNob3VsZFZhbGlkYXRlKTtcbiAgICAgIH0sXG4gICAgICBzZXRUb3VjaGVkOiBmdW5jdGlvbiBzZXRUb3VjaGVkKHZhbHVlLCBzaG91bGRWYWxpZGF0ZSkge1xuICAgICAgICByZXR1cm4gc2V0RmllbGRUb3VjaGVkKG5hbWUsIHZhbHVlLCBzaG91bGRWYWxpZGF0ZSk7XG4gICAgICB9LFxuICAgICAgc2V0RXJyb3I6IGZ1bmN0aW9uIHNldEVycm9yKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBzZXRGaWVsZEVycm9yKG5hbWUsIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9O1xuICB9LCBbc2V0RmllbGRWYWx1ZSwgc2V0RmllbGRUb3VjaGVkLCBzZXRGaWVsZEVycm9yXSk7XG4gIHZhciBnZXRGaWVsZFByb3BzID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKG5hbWVPck9wdGlvbnMpIHtcbiAgICB2YXIgaXNBbk9iamVjdCA9IGlzT2JqZWN0KG5hbWVPck9wdGlvbnMpO1xuICAgIHZhciBuYW1lID0gaXNBbk9iamVjdCA/IG5hbWVPck9wdGlvbnMubmFtZSA6IG5hbWVPck9wdGlvbnM7XG4gICAgdmFyIHZhbHVlU3RhdGUgPSBnZXRJbihzdGF0ZS52YWx1ZXMsIG5hbWUpO1xuICAgIHZhciBmaWVsZCA9IHtcbiAgICAgIG5hbWU6IG5hbWUsXG4gICAgICB2YWx1ZTogdmFsdWVTdGF0ZSxcbiAgICAgIG9uQ2hhbmdlOiBoYW5kbGVDaGFuZ2UsXG4gICAgICBvbkJsdXI6IGhhbmRsZUJsdXJcbiAgICB9O1xuXG4gICAgaWYgKGlzQW5PYmplY3QpIHtcbiAgICAgIHZhciB0eXBlID0gbmFtZU9yT3B0aW9ucy50eXBlLFxuICAgICAgICAgIHZhbHVlUHJvcCA9IG5hbWVPck9wdGlvbnMudmFsdWUsXG4gICAgICAgICAgaXMgPSBuYW1lT3JPcHRpb25zLmFzLFxuICAgICAgICAgIG11bHRpcGxlID0gbmFtZU9yT3B0aW9ucy5tdWx0aXBsZTtcblxuICAgICAgaWYgKHR5cGUgPT09ICdjaGVja2JveCcpIHtcbiAgICAgICAgaWYgKHZhbHVlUHJvcCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgZmllbGQuY2hlY2tlZCA9ICEhdmFsdWVTdGF0ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmaWVsZC5jaGVja2VkID0gISEoQXJyYXkuaXNBcnJheSh2YWx1ZVN0YXRlKSAmJiB+dmFsdWVTdGF0ZS5pbmRleE9mKHZhbHVlUHJvcCkpO1xuICAgICAgICAgIGZpZWxkLnZhbHVlID0gdmFsdWVQcm9wO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdyYWRpbycpIHtcbiAgICAgICAgZmllbGQuY2hlY2tlZCA9IHZhbHVlU3RhdGUgPT09IHZhbHVlUHJvcDtcbiAgICAgICAgZmllbGQudmFsdWUgPSB2YWx1ZVByb3A7XG4gICAgICB9IGVsc2UgaWYgKGlzID09PSAnc2VsZWN0JyAmJiBtdWx0aXBsZSkge1xuICAgICAgICBmaWVsZC52YWx1ZSA9IGZpZWxkLnZhbHVlIHx8IFtdO1xuICAgICAgICBmaWVsZC5tdWx0aXBsZSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpZWxkO1xuICB9LCBbaGFuZGxlQmx1ciwgaGFuZGxlQ2hhbmdlLCBzdGF0ZS52YWx1ZXNdKTtcbiAgdmFyIGRpcnR5ID0gdXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuICFpc0VxdWFsKGluaXRpYWxWYWx1ZXMuY3VycmVudCwgc3RhdGUudmFsdWVzKTtcbiAgfSwgW2luaXRpYWxWYWx1ZXMuY3VycmVudCwgc3RhdGUudmFsdWVzXSk7XG4gIHZhciBpc1ZhbGlkID0gdXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBpc0luaXRpYWxWYWxpZCAhPT0gJ3VuZGVmaW5lZCcgPyBkaXJ0eSA/IHN0YXRlLmVycm9ycyAmJiBPYmplY3Qua2V5cyhzdGF0ZS5lcnJvcnMpLmxlbmd0aCA9PT0gMCA6IGlzSW5pdGlhbFZhbGlkICE9PSBmYWxzZSAmJiBpc0Z1bmN0aW9uKGlzSW5pdGlhbFZhbGlkKSA/IGlzSW5pdGlhbFZhbGlkKHByb3BzKSA6IGlzSW5pdGlhbFZhbGlkIDogc3RhdGUuZXJyb3JzICYmIE9iamVjdC5rZXlzKHN0YXRlLmVycm9ycykubGVuZ3RoID09PSAwO1xuICB9LCBbaXNJbml0aWFsVmFsaWQsIGRpcnR5LCBzdGF0ZS5lcnJvcnMsIHByb3BzXSk7XG5cbiAgdmFyIGN0eCA9IF9leHRlbmRzKHt9LCBzdGF0ZSwge1xuICAgIGluaXRpYWxWYWx1ZXM6IGluaXRpYWxWYWx1ZXMuY3VycmVudCxcbiAgICBpbml0aWFsRXJyb3JzOiBpbml0aWFsRXJyb3JzLmN1cnJlbnQsXG4gICAgaW5pdGlhbFRvdWNoZWQ6IGluaXRpYWxUb3VjaGVkLmN1cnJlbnQsXG4gICAgaW5pdGlhbFN0YXR1czogaW5pdGlhbFN0YXR1cy5jdXJyZW50LFxuICAgIGhhbmRsZUJsdXI6IGhhbmRsZUJsdXIsXG4gICAgaGFuZGxlQ2hhbmdlOiBoYW5kbGVDaGFuZ2UsXG4gICAgaGFuZGxlUmVzZXQ6IGhhbmRsZVJlc2V0LFxuICAgIGhhbmRsZVN1Ym1pdDogaGFuZGxlU3VibWl0LFxuICAgIHJlc2V0Rm9ybTogcmVzZXRGb3JtLFxuICAgIHNldEVycm9yczogc2V0RXJyb3JzLFxuICAgIHNldEZvcm1pa1N0YXRlOiBzZXRGb3JtaWtTdGF0ZSxcbiAgICBzZXRGaWVsZFRvdWNoZWQ6IHNldEZpZWxkVG91Y2hlZCxcbiAgICBzZXRGaWVsZFZhbHVlOiBzZXRGaWVsZFZhbHVlLFxuICAgIHNldEZpZWxkRXJyb3I6IHNldEZpZWxkRXJyb3IsXG4gICAgc2V0U3RhdHVzOiBzZXRTdGF0dXMsXG4gICAgc2V0U3VibWl0dGluZzogc2V0U3VibWl0dGluZyxcbiAgICBzZXRUb3VjaGVkOiBzZXRUb3VjaGVkLFxuICAgIHNldFZhbHVlczogc2V0VmFsdWVzLFxuICAgIHN1Ym1pdEZvcm06IHN1Ym1pdEZvcm0sXG4gICAgdmFsaWRhdGVGb3JtOiB2YWxpZGF0ZUZvcm1XaXRoSGlnaFByaW9yaXR5LFxuICAgIHZhbGlkYXRlRmllbGQ6IHZhbGlkYXRlRmllbGQsXG4gICAgaXNWYWxpZDogaXNWYWxpZCxcbiAgICBkaXJ0eTogZGlydHksXG4gICAgdW5yZWdpc3RlckZpZWxkOiB1bnJlZ2lzdGVyRmllbGQsXG4gICAgcmVnaXN0ZXJGaWVsZDogcmVnaXN0ZXJGaWVsZCxcbiAgICBnZXRGaWVsZFByb3BzOiBnZXRGaWVsZFByb3BzLFxuICAgIGdldEZpZWxkTWV0YTogZ2V0RmllbGRNZXRhLFxuICAgIGdldEZpZWxkSGVscGVyczogZ2V0RmllbGRIZWxwZXJzLFxuICAgIHZhbGlkYXRlT25CbHVyOiB2YWxpZGF0ZU9uQmx1cixcbiAgICB2YWxpZGF0ZU9uQ2hhbmdlOiB2YWxpZGF0ZU9uQ2hhbmdlLFxuICAgIHZhbGlkYXRlT25Nb3VudDogdmFsaWRhdGVPbk1vdW50XG4gIH0pO1xuXG4gIHJldHVybiBjdHg7XG59XG5mdW5jdGlvbiBGb3JtaWsocHJvcHMpIHtcbiAgdmFyIGZvcm1pa2JhZyA9IHVzZUZvcm1payhwcm9wcyk7XG4gIHZhciBjb21wb25lbnQgPSBwcm9wcy5jb21wb25lbnQsXG4gICAgICBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLFxuICAgICAgcmVuZGVyID0gcHJvcHMucmVuZGVyLFxuICAgICAgaW5uZXJSZWYgPSBwcm9wcy5pbm5lclJlZjsgLy8gVGhpcyBhbGxvd3MgZm9sa3MgdG8gcGFzcyBhIHJlZiB0byA8Rm9ybWlrIC8+XG5cbiAgdXNlSW1wZXJhdGl2ZUhhbmRsZShpbm5lclJlZiwgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBmb3JtaWtiYWc7XG4gIH0pO1xuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgISFwcm9wcy5yZW5kZXIgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyBpbnZhcmlhbnQoZmFsc2UsIFwiPEZvcm1payByZW5kZXI+IGhhcyBiZWVuIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBmdXR1cmUgdmVyc2lvbnMgb2YgRm9ybWlrLiBQbGVhc2UgdXNlIGEgY2hpbGQgY2FsbGJhY2sgZnVuY3Rpb24gaW5zdGVhZC4gVG8gZ2V0IHJpZCBvZiB0aGlzIHdhcm5pbmcsIHJlcGxhY2UgPEZvcm1payByZW5kZXI9eyhwcm9wcykgPT4gLi4ufSAvPiB3aXRoIDxGb3JtaWs+eyhwcm9wcykgPT4gLi4ufTwvRm9ybWlrPlwiKSA6IGludmFyaWFudChmYWxzZSkgOiB2b2lkIDA7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIH0sIFtdKTtcbiAgfVxuXG4gIHJldHVybiBjcmVhdGVFbGVtZW50KEZvcm1pa1Byb3ZpZGVyLCB7XG4gICAgdmFsdWU6IGZvcm1pa2JhZ1xuICB9LCBjb21wb25lbnQgPyBjcmVhdGVFbGVtZW50KGNvbXBvbmVudCwgZm9ybWlrYmFnKSA6IHJlbmRlciA/IHJlbmRlcihmb3JtaWtiYWcpIDogY2hpbGRyZW4gLy8gY2hpbGRyZW4gY29tZSBsYXN0LCBhbHdheXMgY2FsbGVkXG4gID8gaXNGdW5jdGlvbihjaGlsZHJlbikgPyBjaGlsZHJlbihmb3JtaWtiYWcpIDogIWlzRW1wdHlDaGlsZHJlbihjaGlsZHJlbikgPyBDaGlsZHJlbi5vbmx5KGNoaWxkcmVuKSA6IG51bGwgOiBudWxsKTtcbn1cblxuZnVuY3Rpb24gd2FybkFib3V0TWlzc2luZ0lkZW50aWZpZXIoX3JlZjQpIHtcbiAgdmFyIGh0bWxDb250ZW50ID0gX3JlZjQuaHRtbENvbnRlbnQsXG4gICAgICBkb2N1bWVudGF0aW9uQW5jaG9yTGluayA9IF9yZWY0LmRvY3VtZW50YXRpb25BbmNob3JMaW5rLFxuICAgICAgaGFuZGxlck5hbWUgPSBfcmVmNC5oYW5kbGVyTmFtZTtcbiAgY29uc29sZS53YXJuKFwiV2FybmluZzogRm9ybWlrIGNhbGxlZCBgXCIgKyBoYW5kbGVyTmFtZSArIFwiYCwgYnV0IHlvdSBmb3Jnb3QgdG8gcGFzcyBhbiBgaWRgIG9yIGBuYW1lYCBhdHRyaWJ1dGUgdG8geW91ciBpbnB1dDpcXG4gICAgXCIgKyBodG1sQ29udGVudCArIFwiXFxuICAgIEZvcm1payBjYW5ub3QgZGV0ZXJtaW5lIHdoaWNoIHZhbHVlIHRvIHVwZGF0ZS4gRm9yIG1vcmUgaW5mbyBzZWUgaHR0cHM6Ly9mb3JtaWsub3JnL2RvY3MvYXBpL2Zvcm1payNcIiArIGRvY3VtZW50YXRpb25BbmNob3JMaW5rICsgXCJcXG4gIFwiKTtcbn1cbi8qKlxyXG4gKiBUcmFuc2Zvcm0gWXVwIFZhbGlkYXRpb25FcnJvciB0byBhIG1vcmUgdXNhYmxlIG9iamVjdFxyXG4gKi9cblxuXG5mdW5jdGlvbiB5dXBUb0Zvcm1FcnJvcnMoeXVwRXJyb3IpIHtcbiAgdmFyIGVycm9ycyA9IHt9O1xuXG4gIGlmICh5dXBFcnJvci5pbm5lcikge1xuICAgIGlmICh5dXBFcnJvci5pbm5lci5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBzZXRJbihlcnJvcnMsIHl1cEVycm9yLnBhdGgsIHl1cEVycm9yLm1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGZvciAodmFyIF9pdGVyYXRvciA9IHl1cEVycm9yLmlubmVyLCBfaXNBcnJheSA9IEFycmF5LmlzQXJyYXkoX2l0ZXJhdG9yKSwgX2kgPSAwLCBfaXRlcmF0b3IgPSBfaXNBcnJheSA/IF9pdGVyYXRvciA6IF9pdGVyYXRvcltTeW1ib2wuaXRlcmF0b3JdKCk7Oykge1xuICAgICAgdmFyIF9yZWY1O1xuXG4gICAgICBpZiAoX2lzQXJyYXkpIHtcbiAgICAgICAgaWYgKF9pID49IF9pdGVyYXRvci5sZW5ndGgpIGJyZWFrO1xuICAgICAgICBfcmVmNSA9IF9pdGVyYXRvcltfaSsrXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIF9pID0gX2l0ZXJhdG9yLm5leHQoKTtcbiAgICAgICAgaWYgKF9pLmRvbmUpIGJyZWFrO1xuICAgICAgICBfcmVmNSA9IF9pLnZhbHVlO1xuICAgICAgfVxuXG4gICAgICB2YXIgZXJyID0gX3JlZjU7XG5cbiAgICAgIGlmICghZ2V0SW4oZXJyb3JzLCBlcnIucGF0aCkpIHtcbiAgICAgICAgZXJyb3JzID0gc2V0SW4oZXJyb3JzLCBlcnIucGF0aCwgZXJyLm1lc3NhZ2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBlcnJvcnM7XG59XG4vKipcclxuICogVmFsaWRhdGUgYSB5dXAgc2NoZW1hLlxyXG4gKi9cblxuZnVuY3Rpb24gdmFsaWRhdGVZdXBTY2hlbWEodmFsdWVzLCBzY2hlbWEsIHN5bmMsIGNvbnRleHQpIHtcbiAgaWYgKHN5bmMgPT09IHZvaWQgMCkge1xuICAgIHN5bmMgPSBmYWxzZTtcbiAgfVxuXG4gIGlmIChjb250ZXh0ID09PSB2b2lkIDApIHtcbiAgICBjb250ZXh0ID0ge307XG4gIH1cblxuICB2YXIgdmFsaWRhdGVEYXRhID0gcHJlcGFyZURhdGFGb3JWYWxpZGF0aW9uKHZhbHVlcyk7XG4gIHJldHVybiBzY2hlbWFbc3luYyA/ICd2YWxpZGF0ZVN5bmMnIDogJ3ZhbGlkYXRlJ10odmFsaWRhdGVEYXRhLCB7XG4gICAgYWJvcnRFYXJseTogZmFsc2UsXG4gICAgY29udGV4dDogY29udGV4dFxuICB9KTtcbn1cbi8qKlxyXG4gKiBSZWN1cnNpdmVseSBwcmVwYXJlIHZhbHVlcy5cclxuICovXG5cbmZ1bmN0aW9uIHByZXBhcmVEYXRhRm9yVmFsaWRhdGlvbih2YWx1ZXMpIHtcbiAgdmFyIGRhdGEgPSBBcnJheS5pc0FycmF5KHZhbHVlcykgPyBbXSA6IHt9O1xuXG4gIGZvciAodmFyIGsgaW4gdmFsdWVzKSB7XG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZXMsIGspKSB7XG4gICAgICB2YXIga2V5ID0gU3RyaW5nKGspO1xuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZXNba2V5XSkgPT09IHRydWUpIHtcbiAgICAgICAgZGF0YVtrZXldID0gdmFsdWVzW2tleV0ubWFwKGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSA9PT0gdHJ1ZSB8fCBpc1BsYWluT2JqZWN0KHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHByZXBhcmVEYXRhRm9yVmFsaWRhdGlvbih2YWx1ZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZSAhPT0gJycgPyB2YWx1ZSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmIChpc1BsYWluT2JqZWN0KHZhbHVlc1trZXldKSkge1xuICAgICAgICBkYXRhW2tleV0gPSBwcmVwYXJlRGF0YUZvclZhbGlkYXRpb24odmFsdWVzW2tleV0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGF0YVtrZXldID0gdmFsdWVzW2tleV0gIT09ICcnID8gdmFsdWVzW2tleV0gOiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRhdGE7XG59XG4vKipcclxuICogZGVlcG1lcmdlIGFycmF5IG1lcmdpbmcgYWxnb3JpdGhtXHJcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9LeWxlQU1hdGhld3MvZGVlcG1lcmdlI2NvbWJpbmUtYXJyYXlcclxuICovXG5cbmZ1bmN0aW9uIGFycmF5TWVyZ2UodGFyZ2V0LCBzb3VyY2UsIG9wdGlvbnMpIHtcbiAgdmFyIGRlc3RpbmF0aW9uID0gdGFyZ2V0LnNsaWNlKCk7XG4gIHNvdXJjZS5mb3JFYWNoKGZ1bmN0aW9uIG1lcmdlKGUsIGkpIHtcbiAgICBpZiAodHlwZW9mIGRlc3RpbmF0aW9uW2ldID09PSAndW5kZWZpbmVkJykge1xuICAgICAgdmFyIGNsb25lUmVxdWVzdGVkID0gb3B0aW9ucy5jbG9uZSAhPT0gZmFsc2U7XG4gICAgICB2YXIgc2hvdWxkQ2xvbmUgPSBjbG9uZVJlcXVlc3RlZCAmJiBvcHRpb25zLmlzTWVyZ2VhYmxlT2JqZWN0KGUpO1xuICAgICAgZGVzdGluYXRpb25baV0gPSBzaG91bGRDbG9uZSA/IGRlZXBtZXJnZShBcnJheS5pc0FycmF5KGUpID8gW10gOiB7fSwgZSwgb3B0aW9ucykgOiBlO1xuICAgIH0gZWxzZSBpZiAob3B0aW9ucy5pc01lcmdlYWJsZU9iamVjdChlKSkge1xuICAgICAgZGVzdGluYXRpb25baV0gPSBkZWVwbWVyZ2UodGFyZ2V0W2ldLCBlLCBvcHRpb25zKTtcbiAgICB9IGVsc2UgaWYgKHRhcmdldC5pbmRleE9mKGUpID09PSAtMSkge1xuICAgICAgZGVzdGluYXRpb24ucHVzaChlKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gZGVzdGluYXRpb247XG59XG4vKiogUmV0dXJuIG11bHRpIHNlbGVjdCB2YWx1ZXMgYmFzZWQgb24gYW4gYXJyYXkgb2Ygb3B0aW9ucyAqL1xuXG5cbmZ1bmN0aW9uIGdldFNlbGVjdGVkVmFsdWVzKG9wdGlvbnMpIHtcbiAgcmV0dXJuIEFycmF5LmZyb20ob3B0aW9ucykuZmlsdGVyKGZ1bmN0aW9uIChlbCkge1xuICAgIHJldHVybiBlbC5zZWxlY3RlZDtcbiAgfSkubWFwKGZ1bmN0aW9uIChlbCkge1xuICAgIHJldHVybiBlbC52YWx1ZTtcbiAgfSk7XG59XG4vKiogUmV0dXJuIHRoZSBuZXh0IHZhbHVlIGZvciBhIGNoZWNrYm94ICovXG5cblxuZnVuY3Rpb24gZ2V0VmFsdWVGb3JDaGVja2JveChjdXJyZW50VmFsdWUsIGNoZWNrZWQsIHZhbHVlUHJvcCkge1xuICAvLyBJZiB0aGUgY3VycmVudCB2YWx1ZSB3YXMgYSBib29sZWFuLCByZXR1cm4gYSBib29sZWFuXG4gIGlmICh0eXBlb2YgY3VycmVudFZhbHVlID09PSAnYm9vbGVhbicpIHtcbiAgICByZXR1cm4gQm9vbGVhbihjaGVja2VkKTtcbiAgfSAvLyBJZiB0aGUgY3VycmVudFZhbHVlIHdhcyBub3QgYSBib29sZWFuIHdlIHdhbnQgdG8gcmV0dXJuIGFuIGFycmF5XG5cblxuICB2YXIgY3VycmVudEFycmF5T2ZWYWx1ZXMgPSBbXTtcbiAgdmFyIGlzVmFsdWVJbkFycmF5ID0gZmFsc2U7XG4gIHZhciBpbmRleCA9IC0xO1xuXG4gIGlmICghQXJyYXkuaXNBcnJheShjdXJyZW50VmFsdWUpKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuICAgIGlmICghdmFsdWVQcm9wIHx8IHZhbHVlUHJvcCA9PSAndHJ1ZScgfHwgdmFsdWVQcm9wID09ICdmYWxzZScpIHtcbiAgICAgIHJldHVybiBCb29sZWFuKGNoZWNrZWQpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBJZiB0aGUgY3VycmVudCB2YWx1ZSBpcyBhbHJlYWR5IGFuIGFycmF5LCB1c2UgaXRcbiAgICBjdXJyZW50QXJyYXlPZlZhbHVlcyA9IGN1cnJlbnRWYWx1ZTtcbiAgICBpbmRleCA9IGN1cnJlbnRWYWx1ZS5pbmRleE9mKHZhbHVlUHJvcCk7XG4gICAgaXNWYWx1ZUluQXJyYXkgPSBpbmRleCA+PSAwO1xuICB9IC8vIElmIHRoZSBjaGVja2JveCB3YXMgY2hlY2tlZCBhbmQgdGhlIHZhbHVlIGlzIG5vdCBhbHJlYWR5IHByZXNlbnQgaW4gdGhlIGFyYXkgd2Ugd2FudCB0byBhZGQgdGhlIG5ldyB2YWx1ZSB0byB0aGUgYXJyYXkgb2YgdmFsdWVzXG5cblxuICBpZiAoY2hlY2tlZCAmJiB2YWx1ZVByb3AgJiYgIWlzVmFsdWVJbkFycmF5KSB7XG4gICAgcmV0dXJuIGN1cnJlbnRBcnJheU9mVmFsdWVzLmNvbmNhdCh2YWx1ZVByb3ApO1xuICB9IC8vIElmIHRoZSBjaGVja2JveCB3YXMgdW5jaGVja2VkIGFuZCB0aGUgdmFsdWUgaXMgbm90IGluIHRoZSBhcnJheSwgc2ltcGx5IHJldHVybiB0aGUgYWxyZWFkeSBleGlzdGluZyBhcnJheSBvZiB2YWx1ZXNcblxuXG4gIGlmICghaXNWYWx1ZUluQXJyYXkpIHtcbiAgICByZXR1cm4gY3VycmVudEFycmF5T2ZWYWx1ZXM7XG4gIH0gLy8gSWYgdGhlIGNoZWNrYm94IHdhcyB1bmNoZWNrZWQgYW5kIHRoZSB2YWx1ZSBpcyBpbiB0aGUgYXJyYXksIHJlbW92ZSB0aGUgdmFsdWUgYW5kIHJldHVybiB0aGUgYXJyYXlcblxuXG4gIHJldHVybiBjdXJyZW50QXJyYXlPZlZhbHVlcy5zbGljZSgwLCBpbmRleCkuY29uY2F0KGN1cnJlbnRBcnJheU9mVmFsdWVzLnNsaWNlKGluZGV4ICsgMSkpO1xufSAvLyBSZWFjdCBjdXJyZW50bHkgdGhyb3dzIGEgd2FybmluZyB3aGVuIHVzaW5nIHVzZUxheW91dEVmZmVjdCBvbiB0aGUgc2VydmVyLlxuLy8gVG8gZ2V0IGFyb3VuZCBpdCwgd2UgY2FuIGNvbmRpdGlvbmFsbHkgdXNlRWZmZWN0IG9uIHRoZSBzZXJ2ZXIgKG5vLW9wKSBhbmRcbi8vIHVzZUxheW91dEVmZmVjdCBpbiB0aGUgYnJvd3Nlci5cbi8vIEBzZWUgaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vZ2FlYXJvbi9lN2Q5N2NkZjM4YTI5MDc5MjRlYTEyZTRlYmRmM2M4NVxuXG5cbnZhciB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0ID0gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIHdpbmRvdy5kb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIHdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50ICE9PSAndW5kZWZpbmVkJyA/IHVzZUxheW91dEVmZmVjdCA6IHVzZUVmZmVjdDtcblxuZnVuY3Rpb24gdXNlRXZlbnRDYWxsYmFjayhmbikge1xuICB2YXIgcmVmID0gdXNlUmVmKGZuKTsgLy8gd2UgY29weSBhIHJlZiB0byB0aGUgY2FsbGJhY2sgc2NvcGVkIHRvIHRoZSBjdXJyZW50IHN0YXRlL3Byb3BzIG9uIGVhY2ggcmVuZGVyXG5cbiAgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgcmVmLmN1cnJlbnQgPSBmbjtcbiAgfSk7XG4gIHJldHVybiB1c2VDYWxsYmFjayhmdW5jdGlvbiAoKSB7XG4gICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICBhcmdzW19rZXldID0gYXJndW1lbnRzW19rZXldO1xuICAgIH1cblxuICAgIHJldHVybiByZWYuY3VycmVudC5hcHBseSh2b2lkIDAsIGFyZ3MpO1xuICB9LCBbXSk7XG59XG5cbmZ1bmN0aW9uIHVzZUZpZWxkKHByb3BzT3JGaWVsZE5hbWUpIHtcbiAgdmFyIGZvcm1payA9IHVzZUZvcm1pa0NvbnRleHQoKTtcbiAgdmFyIGdldEZpZWxkUHJvcHMgPSBmb3JtaWsuZ2V0RmllbGRQcm9wcyxcbiAgICAgIGdldEZpZWxkTWV0YSA9IGZvcm1pay5nZXRGaWVsZE1ldGEsXG4gICAgICBnZXRGaWVsZEhlbHBlcnMgPSBmb3JtaWsuZ2V0RmllbGRIZWxwZXJzLFxuICAgICAgcmVnaXN0ZXJGaWVsZCA9IGZvcm1pay5yZWdpc3RlckZpZWxkLFxuICAgICAgdW5yZWdpc3RlckZpZWxkID0gZm9ybWlrLnVucmVnaXN0ZXJGaWVsZDtcbiAgdmFyIGlzQW5PYmplY3QgPSBpc09iamVjdChwcm9wc09yRmllbGROYW1lKTsgLy8gTm9ybWFsaXplIHByb3BzT3JGaWVsZE5hbWUgdG8gRmllbGRIb29rQ29uZmlnPFZhbD5cblxuICB2YXIgcHJvcHMgPSBpc0FuT2JqZWN0ID8gcHJvcHNPckZpZWxkTmFtZSA6IHtcbiAgICBuYW1lOiBwcm9wc09yRmllbGROYW1lXG4gIH07XG4gIHZhciBmaWVsZE5hbWUgPSBwcm9wcy5uYW1lLFxuICAgICAgdmFsaWRhdGVGbiA9IHByb3BzLnZhbGlkYXRlO1xuICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIGlmIChmaWVsZE5hbWUpIHtcbiAgICAgIHJlZ2lzdGVyRmllbGQoZmllbGROYW1lLCB7XG4gICAgICAgIHZhbGlkYXRlOiB2YWxpZGF0ZUZuXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKGZpZWxkTmFtZSkge1xuICAgICAgICB1bnJlZ2lzdGVyRmllbGQoZmllbGROYW1lKTtcbiAgICAgIH1cbiAgICB9O1xuICB9LCBbcmVnaXN0ZXJGaWVsZCwgdW5yZWdpc3RlckZpZWxkLCBmaWVsZE5hbWUsIHZhbGlkYXRlRm5dKTtcblxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgIWZvcm1payA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IGludmFyaWFudChmYWxzZSwgJ3VzZUZpZWxkKCkgLyA8RmllbGQgLz4gbXVzdCBiZSB1c2VkIHVuZGVybmVhdGggYSA8Rm9ybWlrPiBjb21wb25lbnQgb3Igd2l0aEZvcm1paygpIGhpZ2hlciBvcmRlciBjb21wb25lbnQnKSA6IGludmFyaWFudChmYWxzZSkgOiB2b2lkIDA7XG4gIH1cblxuICAhZmllbGROYW1lID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gaW52YXJpYW50KGZhbHNlLCAnSW52YWxpZCBmaWVsZCBuYW1lLiBFaXRoZXIgcGFzcyBgdXNlRmllbGRgIGEgc3RyaW5nIG9yIGFuIG9iamVjdCBjb250YWluaW5nIGEgYG5hbWVgIGtleS4nKSA6IGludmFyaWFudChmYWxzZSkgOiB2b2lkIDA7XG4gIHJldHVybiBbZ2V0RmllbGRQcm9wcyhwcm9wcyksIGdldEZpZWxkTWV0YShmaWVsZE5hbWUpLCBnZXRGaWVsZEhlbHBlcnMoZmllbGROYW1lKV07XG59XG5mdW5jdGlvbiBGaWVsZChfcmVmKSB7XG4gIHZhciB2YWxpZGF0ZSA9IF9yZWYudmFsaWRhdGUsXG4gICAgICBuYW1lID0gX3JlZi5uYW1lLFxuICAgICAgcmVuZGVyID0gX3JlZi5yZW5kZXIsXG4gICAgICBjaGlsZHJlbiA9IF9yZWYuY2hpbGRyZW4sXG4gICAgICBpcyA9IF9yZWYuYXMsXG4gICAgICBjb21wb25lbnQgPSBfcmVmLmNvbXBvbmVudCxcbiAgICAgIHByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UoX3JlZiwgW1widmFsaWRhdGVcIiwgXCJuYW1lXCIsIFwicmVuZGVyXCIsIFwiY2hpbGRyZW5cIiwgXCJhc1wiLCBcImNvbXBvbmVudFwiXSk7XG5cbiAgdmFyIF91c2VGb3JtaWtDb250ZXh0ID0gdXNlRm9ybWlrQ29udGV4dCgpLFxuICAgICAgZm9ybWlrID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UoX3VzZUZvcm1pa0NvbnRleHQsIFtcInZhbGlkYXRlXCIsIFwidmFsaWRhdGlvblNjaGVtYVwiXSk7XG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9ydWxlcy1vZi1ob29rc1xuICAgIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICAhIXJlbmRlciA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IGludmFyaWFudChmYWxzZSwgXCI8RmllbGQgcmVuZGVyPiBoYXMgYmVlbiBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gZnV0dXJlIHZlcnNpb25zIG9mIEZvcm1pay4gUGxlYXNlIHVzZSBhIGNoaWxkIGNhbGxiYWNrIGZ1bmN0aW9uIGluc3RlYWQuIFRvIGdldCByaWQgb2YgdGhpcyB3YXJuaW5nLCByZXBsYWNlIDxGaWVsZCBuYW1lPVxcXCJcIiArIG5hbWUgKyBcIlxcXCIgcmVuZGVyPXsoe2ZpZWxkLCBmb3JtfSkgPT4gLi4ufSAvPiB3aXRoIDxGaWVsZCBuYW1lPVxcXCJcIiArIG5hbWUgKyBcIlxcXCI+eyh7ZmllbGQsIGZvcm0sIG1ldGF9KSA9PiAuLi59PC9GaWVsZD5cIikgOiBpbnZhcmlhbnQoZmFsc2UpIDogdm9pZCAwO1xuICAgICAgISEoaXMgJiYgY2hpbGRyZW4gJiYgaXNGdW5jdGlvbihjaGlsZHJlbikpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gaW52YXJpYW50KGZhbHNlLCAnWW91IHNob3VsZCBub3QgdXNlIDxGaWVsZCBhcz4gYW5kIDxGaWVsZCBjaGlsZHJlbj4gYXMgYSBmdW5jdGlvbiBpbiB0aGUgc2FtZSA8RmllbGQ+IGNvbXBvbmVudDsgPEZpZWxkIGFzPiB3aWxsIGJlIGlnbm9yZWQuJykgOiBpbnZhcmlhbnQoZmFsc2UpIDogdm9pZCAwO1xuICAgICAgISEoY29tcG9uZW50ICYmIGNoaWxkcmVuICYmIGlzRnVuY3Rpb24oY2hpbGRyZW4pKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IGludmFyaWFudChmYWxzZSwgJ1lvdSBzaG91bGQgbm90IHVzZSA8RmllbGQgY29tcG9uZW50PiBhbmQgPEZpZWxkIGNoaWxkcmVuPiBhcyBhIGZ1bmN0aW9uIGluIHRoZSBzYW1lIDxGaWVsZD4gY29tcG9uZW50OyA8RmllbGQgY29tcG9uZW50PiB3aWxsIGJlIGlnbm9yZWQuJykgOiBpbnZhcmlhbnQoZmFsc2UpIDogdm9pZCAwO1xuICAgICAgISEocmVuZGVyICYmIGNoaWxkcmVuICYmICFpc0VtcHR5Q2hpbGRyZW4oY2hpbGRyZW4pKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IGludmFyaWFudChmYWxzZSwgJ1lvdSBzaG91bGQgbm90IHVzZSA8RmllbGQgcmVuZGVyPiBhbmQgPEZpZWxkIGNoaWxkcmVuPiBpbiB0aGUgc2FtZSA8RmllbGQ+IGNvbXBvbmVudDsgPEZpZWxkIGNoaWxkcmVuPiB3aWxsIGJlIGlnbm9yZWQnKSA6IGludmFyaWFudChmYWxzZSkgOiB2b2lkIDA7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIH0sIFtdKTtcbiAgfSAvLyBSZWdpc3RlciBmaWVsZCBhbmQgZmllbGQtbGV2ZWwgdmFsaWRhdGlvbiB3aXRoIHBhcmVudCA8Rm9ybWlrPlxuXG5cbiAgdmFyIHJlZ2lzdGVyRmllbGQgPSBmb3JtaWsucmVnaXN0ZXJGaWVsZCxcbiAgICAgIHVucmVnaXN0ZXJGaWVsZCA9IGZvcm1pay51bnJlZ2lzdGVyRmllbGQ7XG4gIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgcmVnaXN0ZXJGaWVsZChuYW1lLCB7XG4gICAgICB2YWxpZGF0ZTogdmFsaWRhdGVcbiAgICB9KTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgdW5yZWdpc3RlckZpZWxkKG5hbWUpO1xuICAgIH07XG4gIH0sIFtyZWdpc3RlckZpZWxkLCB1bnJlZ2lzdGVyRmllbGQsIG5hbWUsIHZhbGlkYXRlXSk7XG4gIHZhciBmaWVsZCA9IGZvcm1pay5nZXRGaWVsZFByb3BzKF9leHRlbmRzKHtcbiAgICBuYW1lOiBuYW1lXG4gIH0sIHByb3BzKSk7XG4gIHZhciBtZXRhID0gZm9ybWlrLmdldEZpZWxkTWV0YShuYW1lKTtcbiAgdmFyIGxlZ2FjeUJhZyA9IHtcbiAgICBmaWVsZDogZmllbGQsXG4gICAgZm9ybTogZm9ybWlrXG4gIH07XG5cbiAgaWYgKHJlbmRlcikge1xuICAgIHJldHVybiByZW5kZXIoX2V4dGVuZHMoe30sIGxlZ2FjeUJhZywge1xuICAgICAgbWV0YTogbWV0YVxuICAgIH0pKTtcbiAgfVxuXG4gIGlmIChpc0Z1bmN0aW9uKGNoaWxkcmVuKSkge1xuICAgIHJldHVybiBjaGlsZHJlbihfZXh0ZW5kcyh7fSwgbGVnYWN5QmFnLCB7XG4gICAgICBtZXRhOiBtZXRhXG4gICAgfSkpO1xuICB9XG5cbiAgaWYgKGNvbXBvbmVudCkge1xuICAgIC8vIFRoaXMgYmVoYXZpb3IgaXMgYmFja3dhcmRzIGNvbXBhdCB3aXRoIGVhcmxpZXIgRm9ybWlrIDAuOSB0byAxLnhcbiAgICBpZiAodHlwZW9mIGNvbXBvbmVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHZhciBpbm5lclJlZiA9IHByb3BzLmlubmVyUmVmLFxuICAgICAgICAgIHJlc3QgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShwcm9wcywgW1wiaW5uZXJSZWZcIl0pO1xuXG4gICAgICByZXR1cm4gY3JlYXRlRWxlbWVudChjb21wb25lbnQsIF9leHRlbmRzKHtcbiAgICAgICAgcmVmOiBpbm5lclJlZlxuICAgICAgfSwgZmllbGQsIHJlc3QpLCBjaGlsZHJlbik7XG4gICAgfSAvLyBXZSBkb24ndCBwYXNzIGBtZXRhYCBmb3IgYmFja3dhcmRzIGNvbXBhdFxuXG5cbiAgICByZXR1cm4gY3JlYXRlRWxlbWVudChjb21wb25lbnQsIF9leHRlbmRzKHtcbiAgICAgIGZpZWxkOiBmaWVsZCxcbiAgICAgIGZvcm06IGZvcm1pa1xuICAgIH0sIHByb3BzKSwgY2hpbGRyZW4pO1xuICB9IC8vIGRlZmF1bHQgdG8gaW5wdXQgaGVyZSBzbyB3ZSBjYW4gY2hlY2sgZm9yIGJvdGggYGFzYCBhbmQgYGNoaWxkcmVuYCBhYm92ZVxuXG5cbiAgdmFyIGFzRWxlbWVudCA9IGlzIHx8ICdpbnB1dCc7XG5cbiAgaWYgKHR5cGVvZiBhc0VsZW1lbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgdmFyIF9pbm5lclJlZiA9IHByb3BzLmlubmVyUmVmLFxuICAgICAgICBfcmVzdCA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKHByb3BzLCBbXCJpbm5lclJlZlwiXSk7XG5cbiAgICByZXR1cm4gY3JlYXRlRWxlbWVudChhc0VsZW1lbnQsIF9leHRlbmRzKHtcbiAgICAgIHJlZjogX2lubmVyUmVmXG4gICAgfSwgZmllbGQsIF9yZXN0KSwgY2hpbGRyZW4pO1xuICB9XG5cbiAgcmV0dXJuIGNyZWF0ZUVsZW1lbnQoYXNFbGVtZW50LCBfZXh0ZW5kcyh7fSwgZmllbGQsIHByb3BzKSwgY2hpbGRyZW4pO1xufVxuXG52YXIgRm9ybSA9IC8qI19fUFVSRV9fKi9mb3J3YXJkUmVmKGZ1bmN0aW9uIChwcm9wcywgcmVmKSB7XG4gIC8vIGlPUyBuZWVkcyBhbiBcImFjdGlvblwiIGF0dHJpYnV0ZSBmb3IgbmljZSBpbnB1dDogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzM5NDg1MTYyLzQwNjcyNVxuICAvLyBXZSBkZWZhdWx0IHRoZSBhY3Rpb24gdG8gXCIjXCIgaW4gY2FzZSB0aGUgcHJldmVudERlZmF1bHQgZmFpbHMgKGp1c3QgdXBkYXRlcyB0aGUgVVJMIGhhc2gpXG4gIHZhciBhY3Rpb24gPSBwcm9wcy5hY3Rpb24sXG4gICAgICByZXN0ID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UocHJvcHMsIFtcImFjdGlvblwiXSk7XG5cbiAgdmFyIF9hY3Rpb24gPSBhY3Rpb24gIT0gbnVsbCA/IGFjdGlvbiA6ICcjJztcblxuICB2YXIgX3VzZUZvcm1pa0NvbnRleHQgPSB1c2VGb3JtaWtDb250ZXh0KCksXG4gICAgICBoYW5kbGVSZXNldCA9IF91c2VGb3JtaWtDb250ZXh0LmhhbmRsZVJlc2V0LFxuICAgICAgaGFuZGxlU3VibWl0ID0gX3VzZUZvcm1pa0NvbnRleHQuaGFuZGxlU3VibWl0O1xuXG4gIHJldHVybiBjcmVhdGVFbGVtZW50KFwiZm9ybVwiLCBPYmplY3QuYXNzaWduKHtcbiAgICBvblN1Ym1pdDogaGFuZGxlU3VibWl0LFxuICAgIHJlZjogcmVmLFxuICAgIG9uUmVzZXQ6IGhhbmRsZVJlc2V0LFxuICAgIGFjdGlvbjogX2FjdGlvblxuICB9LCByZXN0KSk7XG59KTtcbkZvcm0uZGlzcGxheU5hbWUgPSAnRm9ybSc7XG5cbi8qKlxyXG4gKiBBIHB1YmxpYyBoaWdoZXItb3JkZXIgY29tcG9uZW50IHRvIGFjY2VzcyB0aGUgaW1wZXJhdGl2ZSBBUElcclxuICovXG5cbmZ1bmN0aW9uIHdpdGhGb3JtaWsoX3JlZikge1xuICB2YXIgX3JlZiRtYXBQcm9wc1RvVmFsdWVzID0gX3JlZi5tYXBQcm9wc1RvVmFsdWVzLFxuICAgICAgbWFwUHJvcHNUb1ZhbHVlcyA9IF9yZWYkbWFwUHJvcHNUb1ZhbHVlcyA9PT0gdm9pZCAwID8gZnVuY3Rpb24gKHZhbmlsbGFQcm9wcykge1xuICAgIHZhciB2YWwgPSB7fTtcblxuICAgIGZvciAodmFyIGsgaW4gdmFuaWxsYVByb3BzKSB7XG4gICAgICBpZiAodmFuaWxsYVByb3BzLmhhc093blByb3BlcnR5KGspICYmIHR5cGVvZiB2YW5pbGxhUHJvcHNba10gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgLy8gQHRvZG8gVHlwZVNjcmlwdCBmaXhcbiAgICAgICAgdmFsW2tdID0gdmFuaWxsYVByb3BzW2tdO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB2YWw7XG4gIH0gOiBfcmVmJG1hcFByb3BzVG9WYWx1ZXMsXG4gICAgICBjb25maWcgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShfcmVmLCBbXCJtYXBQcm9wc1RvVmFsdWVzXCJdKTtcblxuICByZXR1cm4gZnVuY3Rpb24gY3JlYXRlRm9ybWlrKENvbXBvbmVudCQxKSB7XG4gICAgdmFyIGNvbXBvbmVudERpc3BsYXlOYW1lID0gQ29tcG9uZW50JDEuZGlzcGxheU5hbWUgfHwgQ29tcG9uZW50JDEubmFtZSB8fCBDb21wb25lbnQkMS5jb25zdHJ1Y3RvciAmJiBDb21wb25lbnQkMS5jb25zdHJ1Y3Rvci5uYW1lIHx8ICdDb21wb25lbnQnO1xuICAgIC8qKlxyXG4gICAgICogV2UgbmVlZCB0byB1c2UgY2xvc3VyZXMgaGVyZSBmb3IgdG8gcHJvdmlkZSB0aGUgd3JhcHBlZCBjb21wb25lbnQncyBwcm9wcyB0b1xyXG4gICAgICogdGhlIHJlc3BlY3RpdmUgd2l0aEZvcm1payBjb25maWcgbWV0aG9kcy5cclxuICAgICAqL1xuXG4gICAgdmFyIEMgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgICAgIF9pbmhlcml0c0xvb3NlKEMsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gICAgICBmdW5jdGlvbiBDKCkge1xuICAgICAgICB2YXIgX3RoaXM7XG5cbiAgICAgICAgX3RoaXMgPSBfUmVhY3QkQ29tcG9uZW50LmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpcztcblxuICAgICAgICBfdGhpcy52YWxpZGF0ZSA9IGZ1bmN0aW9uICh2YWx1ZXMpIHtcbiAgICAgICAgICByZXR1cm4gY29uZmlnLnZhbGlkYXRlKHZhbHVlcywgX3RoaXMucHJvcHMpO1xuICAgICAgICB9O1xuXG4gICAgICAgIF90aGlzLnZhbGlkYXRpb25TY2hlbWEgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIGlzRnVuY3Rpb24oY29uZmlnLnZhbGlkYXRpb25TY2hlbWEpID8gY29uZmlnLnZhbGlkYXRpb25TY2hlbWEoX3RoaXMucHJvcHMpIDogY29uZmlnLnZhbGlkYXRpb25TY2hlbWE7XG4gICAgICAgIH07XG5cbiAgICAgICAgX3RoaXMuaGFuZGxlU3VibWl0ID0gZnVuY3Rpb24gKHZhbHVlcywgYWN0aW9ucykge1xuICAgICAgICAgIHJldHVybiBjb25maWcuaGFuZGxlU3VibWl0KHZhbHVlcywgX2V4dGVuZHMoe30sIGFjdGlvbnMsIHtcbiAgICAgICAgICAgIHByb3BzOiBfdGhpcy5wcm9wc1xuICAgICAgICAgIH0pKTtcbiAgICAgICAgfTtcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSnVzdCBhdm9pZGluZyBhIHJlbmRlciBjYWxsYmFjayBmb3IgcGVyZiBoZXJlXHJcbiAgICAgICAgICovXG5cblxuICAgICAgICBfdGhpcy5yZW5kZXJGb3JtQ29tcG9uZW50ID0gZnVuY3Rpb24gKGZvcm1pa1Byb3BzKSB7XG4gICAgICAgICAgcmV0dXJuIGNyZWF0ZUVsZW1lbnQoQ29tcG9uZW50JDEsIE9iamVjdC5hc3NpZ24oe30sIF90aGlzLnByb3BzLCBmb3JtaWtQcm9wcykpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICAgIH1cblxuICAgICAgdmFyIF9wcm90byA9IEMucHJvdG90eXBlO1xuXG4gICAgICBfcHJvdG8ucmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICB2YXIgX3RoaXMkcHJvcHMgPSB0aGlzLnByb3BzLFxuICAgICAgICAgICAgcHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShfdGhpcyRwcm9wcywgW1wiY2hpbGRyZW5cIl0pO1xuXG4gICAgICAgIHJldHVybiBjcmVhdGVFbGVtZW50KEZvcm1paywgT2JqZWN0LmFzc2lnbih7fSwgcHJvcHMsIGNvbmZpZywge1xuICAgICAgICAgIHZhbGlkYXRlOiBjb25maWcudmFsaWRhdGUgJiYgdGhpcy52YWxpZGF0ZSxcbiAgICAgICAgICB2YWxpZGF0aW9uU2NoZW1hOiBjb25maWcudmFsaWRhdGlvblNjaGVtYSAmJiB0aGlzLnZhbGlkYXRpb25TY2hlbWEsXG4gICAgICAgICAgaW5pdGlhbFZhbHVlczogbWFwUHJvcHNUb1ZhbHVlcyh0aGlzLnByb3BzKSxcbiAgICAgICAgICBpbml0aWFsU3RhdHVzOiBjb25maWcubWFwUHJvcHNUb1N0YXR1cyAmJiBjb25maWcubWFwUHJvcHNUb1N0YXR1cyh0aGlzLnByb3BzKSxcbiAgICAgICAgICBpbml0aWFsRXJyb3JzOiBjb25maWcubWFwUHJvcHNUb0Vycm9ycyAmJiBjb25maWcubWFwUHJvcHNUb0Vycm9ycyh0aGlzLnByb3BzKSxcbiAgICAgICAgICBpbml0aWFsVG91Y2hlZDogY29uZmlnLm1hcFByb3BzVG9Ub3VjaGVkICYmIGNvbmZpZy5tYXBQcm9wc1RvVG91Y2hlZCh0aGlzLnByb3BzKSxcbiAgICAgICAgICBvblN1Ym1pdDogdGhpcy5oYW5kbGVTdWJtaXQsXG4gICAgICAgICAgY2hpbGRyZW46IHRoaXMucmVuZGVyRm9ybUNvbXBvbmVudFxuICAgICAgICB9KSk7XG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gQztcbiAgICB9KENvbXBvbmVudCk7XG5cbiAgICBDLmRpc3BsYXlOYW1lID0gXCJXaXRoRm9ybWlrKFwiICsgY29tcG9uZW50RGlzcGxheU5hbWUgKyBcIilcIjtcbiAgICByZXR1cm4gaG9pc3ROb25SZWFjdFN0YXRpY3MoQywgQ29tcG9uZW50JDEgLy8gY2FzdCB0eXBlIHRvIENvbXBvbmVudENsYXNzIChldmVuIGlmIFNGQylcbiAgICApO1xuICB9O1xufVxuXG4vKipcclxuICogQ29ubmVjdCBhbnkgY29tcG9uZW50IHRvIEZvcm1payBjb250ZXh0LCBhbmQgaW5qZWN0IGFzIGEgcHJvcCBjYWxsZWQgYGZvcm1pa2A7XHJcbiAqIEBwYXJhbSBDb21wIFJlYWN0IENvbXBvbmVudFxyXG4gKi9cblxuZnVuY3Rpb24gY29ubmVjdChDb21wKSB7XG4gIHZhciBDID0gZnVuY3Rpb24gQyhwcm9wcykge1xuICAgIHJldHVybiBjcmVhdGVFbGVtZW50KEZvcm1pa0NvbnN1bWVyLCBudWxsLCBmdW5jdGlvbiAoZm9ybWlrKSB7XG4gICAgICAhISFmb3JtaWsgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyBpbnZhcmlhbnQoZmFsc2UsIFwiRm9ybWlrIGNvbnRleHQgaXMgdW5kZWZpbmVkLCBwbGVhc2UgdmVyaWZ5IHlvdSBhcmUgcmVuZGVyaW5nIDxGb3JtPiwgPEZpZWxkPiwgPEZhc3RGaWVsZD4sIDxGaWVsZEFycmF5Piwgb3IgeW91ciBjdXN0b20gY29udGV4dC11c2luZyBjb21wb25lbnQgYXMgYSBjaGlsZCBvZiBhIDxGb3JtaWs+IGNvbXBvbmVudC4gQ29tcG9uZW50IG5hbWU6IFwiICsgQ29tcC5uYW1lKSA6IGludmFyaWFudChmYWxzZSkgOiB2b2lkIDA7XG4gICAgICByZXR1cm4gY3JlYXRlRWxlbWVudChDb21wLCBPYmplY3QuYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICBmb3JtaWs6IGZvcm1pa1xuICAgICAgfSkpO1xuICAgIH0pO1xuICB9O1xuXG4gIHZhciBjb21wb25lbnREaXNwbGF5TmFtZSA9IENvbXAuZGlzcGxheU5hbWUgfHwgQ29tcC5uYW1lIHx8IENvbXAuY29uc3RydWN0b3IgJiYgQ29tcC5jb25zdHJ1Y3Rvci5uYW1lIHx8ICdDb21wb25lbnQnOyAvLyBBc3NpZ24gQ29tcCB0byBDLldyYXBwZWRDb21wb25lbnQgc28gd2UgY2FuIGFjY2VzcyB0aGUgaW5uZXIgY29tcG9uZW50IGluIHRlc3RzXG4gIC8vIEZvciBleGFtcGxlLCA8RmllbGQuV3JhcHBlZENvbXBvbmVudCAvPiBnZXRzIHVzIDxGaWVsZElubmVyLz5cblxuICBDLldyYXBwZWRDb21wb25lbnQgPSBDb21wO1xuICBDLmRpc3BsYXlOYW1lID0gXCJGb3JtaWtDb25uZWN0KFwiICsgY29tcG9uZW50RGlzcGxheU5hbWUgKyBcIilcIjtcbiAgcmV0dXJuIGhvaXN0Tm9uUmVhY3RTdGF0aWNzKEMsIENvbXAgLy8gY2FzdCB0eXBlIHRvIENvbXBvbmVudENsYXNzIChldmVuIGlmIFNGQylcbiAgKTtcbn1cblxuLyoqXHJcbiAqIFNvbWUgYXJyYXkgaGVscGVycyFcclxuICovXG5cbnZhciBtb3ZlID0gZnVuY3Rpb24gbW92ZShhcnJheSwgZnJvbSwgdG8pIHtcbiAgdmFyIGNvcHkgPSBjb3B5QXJyYXlMaWtlKGFycmF5KTtcbiAgdmFyIHZhbHVlID0gY29weVtmcm9tXTtcbiAgY29weS5zcGxpY2UoZnJvbSwgMSk7XG4gIGNvcHkuc3BsaWNlKHRvLCAwLCB2YWx1ZSk7XG4gIHJldHVybiBjb3B5O1xufTtcbnZhciBzd2FwID0gZnVuY3Rpb24gc3dhcChhcnJheUxpa2UsIGluZGV4QSwgaW5kZXhCKSB7XG4gIHZhciBjb3B5ID0gY29weUFycmF5TGlrZShhcnJheUxpa2UpO1xuICB2YXIgYSA9IGNvcHlbaW5kZXhBXTtcbiAgY29weVtpbmRleEFdID0gY29weVtpbmRleEJdO1xuICBjb3B5W2luZGV4Ql0gPSBhO1xuICByZXR1cm4gY29weTtcbn07XG52YXIgaW5zZXJ0ID0gZnVuY3Rpb24gaW5zZXJ0KGFycmF5TGlrZSwgaW5kZXgsIHZhbHVlKSB7XG4gIHZhciBjb3B5ID0gY29weUFycmF5TGlrZShhcnJheUxpa2UpO1xuICBjb3B5LnNwbGljZShpbmRleCwgMCwgdmFsdWUpO1xuICByZXR1cm4gY29weTtcbn07XG52YXIgcmVwbGFjZSA9IGZ1bmN0aW9uIHJlcGxhY2UoYXJyYXlMaWtlLCBpbmRleCwgdmFsdWUpIHtcbiAgdmFyIGNvcHkgPSBjb3B5QXJyYXlMaWtlKGFycmF5TGlrZSk7XG4gIGNvcHlbaW5kZXhdID0gdmFsdWU7XG4gIHJldHVybiBjb3B5O1xufTtcblxudmFyIGNvcHlBcnJheUxpa2UgPSBmdW5jdGlvbiBjb3B5QXJyYXlMaWtlKGFycmF5TGlrZSkge1xuICBpZiAoIWFycmF5TGlrZSkge1xuICAgIHJldHVybiBbXTtcbiAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGFycmF5TGlrZSkpIHtcbiAgICByZXR1cm4gW10uY29uY2F0KGFycmF5TGlrZSk7XG4gIH0gZWxzZSB7XG4gICAgdmFyIG1heEluZGV4ID0gT2JqZWN0LmtleXMoYXJyYXlMaWtlKS5tYXAoZnVuY3Rpb24gKGtleSkge1xuICAgICAgcmV0dXJuIHBhcnNlSW50KGtleSk7XG4gICAgfSkucmVkdWNlKGZ1bmN0aW9uIChtYXgsIGVsKSB7XG4gICAgICByZXR1cm4gZWwgPiBtYXggPyBlbCA6IG1heDtcbiAgICB9LCAwKTtcbiAgICByZXR1cm4gQXJyYXkuZnJvbShfZXh0ZW5kcyh7fSwgYXJyYXlMaWtlLCB7XG4gICAgICBsZW5ndGg6IG1heEluZGV4ICsgMVxuICAgIH0pKTtcbiAgfVxufTtcblxudmFyIEZpZWxkQXJyYXlJbm5lciA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHNMb29zZShGaWVsZEFycmF5SW5uZXIsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIGZ1bmN0aW9uIEZpZWxkQXJyYXlJbm5lcihwcm9wcykge1xuICAgIHZhciBfdGhpcztcblxuICAgIF90aGlzID0gX1JlYWN0JENvbXBvbmVudC5jYWxsKHRoaXMsIHByb3BzKSB8fCB0aGlzO1xuXG4gICAgX3RoaXMudXBkYXRlQXJyYXlGaWVsZCA9IGZ1bmN0aW9uIChmbiwgYWx0ZXJUb3VjaGVkLCBhbHRlckVycm9ycykge1xuICAgICAgdmFyIF90aGlzJHByb3BzID0gX3RoaXMucHJvcHMsXG4gICAgICAgICAgbmFtZSA9IF90aGlzJHByb3BzLm5hbWUsXG4gICAgICAgICAgc2V0Rm9ybWlrU3RhdGUgPSBfdGhpcyRwcm9wcy5mb3JtaWsuc2V0Rm9ybWlrU3RhdGU7XG4gICAgICBzZXRGb3JtaWtTdGF0ZShmdW5jdGlvbiAocHJldlN0YXRlKSB7XG4gICAgICAgIHZhciB1cGRhdGVFcnJvcnMgPSB0eXBlb2YgYWx0ZXJFcnJvcnMgPT09ICdmdW5jdGlvbicgPyBhbHRlckVycm9ycyA6IGZuO1xuICAgICAgICB2YXIgdXBkYXRlVG91Y2hlZCA9IHR5cGVvZiBhbHRlclRvdWNoZWQgPT09ICdmdW5jdGlvbicgPyBhbHRlclRvdWNoZWQgOiBmbjsgLy8gdmFsdWVzIGZuIHNob3VsZCBiZSBleGVjdXRlZCBiZWZvcmUgdXBkYXRlRXJyb3JzIGFuZCB1cGRhdGVUb3VjaGVkLFxuICAgICAgICAvLyBvdGhlcndpc2UgaXQgY2F1c2VzIGFuIGVycm9yIHdpdGggdW5zaGlmdC5cblxuICAgICAgICB2YXIgdmFsdWVzID0gc2V0SW4ocHJldlN0YXRlLnZhbHVlcywgbmFtZSwgZm4oZ2V0SW4ocHJldlN0YXRlLnZhbHVlcywgbmFtZSkpKTtcbiAgICAgICAgdmFyIGZpZWxkRXJyb3IgPSBhbHRlckVycm9ycyA/IHVwZGF0ZUVycm9ycyhnZXRJbihwcmV2U3RhdGUuZXJyb3JzLCBuYW1lKSkgOiB1bmRlZmluZWQ7XG4gICAgICAgIHZhciBmaWVsZFRvdWNoZWQgPSBhbHRlclRvdWNoZWQgPyB1cGRhdGVUb3VjaGVkKGdldEluKHByZXZTdGF0ZS50b3VjaGVkLCBuYW1lKSkgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgaWYgKGlzRW1wdHlBcnJheShmaWVsZEVycm9yKSkge1xuICAgICAgICAgIGZpZWxkRXJyb3IgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNFbXB0eUFycmF5KGZpZWxkVG91Y2hlZCkpIHtcbiAgICAgICAgICBmaWVsZFRvdWNoZWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gX2V4dGVuZHMoe30sIHByZXZTdGF0ZSwge1xuICAgICAgICAgIHZhbHVlczogdmFsdWVzLFxuICAgICAgICAgIGVycm9yczogYWx0ZXJFcnJvcnMgPyBzZXRJbihwcmV2U3RhdGUuZXJyb3JzLCBuYW1lLCBmaWVsZEVycm9yKSA6IHByZXZTdGF0ZS5lcnJvcnMsXG4gICAgICAgICAgdG91Y2hlZDogYWx0ZXJUb3VjaGVkID8gc2V0SW4ocHJldlN0YXRlLnRvdWNoZWQsIG5hbWUsIGZpZWxkVG91Y2hlZCkgOiBwcmV2U3RhdGUudG91Y2hlZFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBfdGhpcy5wdXNoID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICByZXR1cm4gX3RoaXMudXBkYXRlQXJyYXlGaWVsZChmdW5jdGlvbiAoYXJyYXlMaWtlKSB7XG4gICAgICAgIHJldHVybiBbXS5jb25jYXQoY29weUFycmF5TGlrZShhcnJheUxpa2UpLCBbY2xvbmVEZWVwKHZhbHVlKV0pO1xuICAgICAgfSwgZmFsc2UsIGZhbHNlKTtcbiAgICB9O1xuXG4gICAgX3RoaXMuaGFuZGxlUHVzaCA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIF90aGlzLnB1c2godmFsdWUpO1xuICAgICAgfTtcbiAgICB9O1xuXG4gICAgX3RoaXMuc3dhcCA9IGZ1bmN0aW9uIChpbmRleEEsIGluZGV4Qikge1xuICAgICAgcmV0dXJuIF90aGlzLnVwZGF0ZUFycmF5RmllbGQoZnVuY3Rpb24gKGFycmF5KSB7XG4gICAgICAgIHJldHVybiBzd2FwKGFycmF5LCBpbmRleEEsIGluZGV4Qik7XG4gICAgICB9LCB0cnVlLCB0cnVlKTtcbiAgICB9O1xuXG4gICAgX3RoaXMuaGFuZGxlU3dhcCA9IGZ1bmN0aW9uIChpbmRleEEsIGluZGV4Qikge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIF90aGlzLnN3YXAoaW5kZXhBLCBpbmRleEIpO1xuICAgICAgfTtcbiAgICB9O1xuXG4gICAgX3RoaXMubW92ZSA9IGZ1bmN0aW9uIChmcm9tLCB0bykge1xuICAgICAgcmV0dXJuIF90aGlzLnVwZGF0ZUFycmF5RmllbGQoZnVuY3Rpb24gKGFycmF5KSB7XG4gICAgICAgIHJldHVybiBtb3ZlKGFycmF5LCBmcm9tLCB0byk7XG4gICAgICB9LCB0cnVlLCB0cnVlKTtcbiAgICB9O1xuXG4gICAgX3RoaXMuaGFuZGxlTW92ZSA9IGZ1bmN0aW9uIChmcm9tLCB0bykge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIF90aGlzLm1vdmUoZnJvbSwgdG8pO1xuICAgICAgfTtcbiAgICB9O1xuXG4gICAgX3RoaXMuaW5zZXJ0ID0gZnVuY3Rpb24gKGluZGV4LCB2YWx1ZSkge1xuICAgICAgcmV0dXJuIF90aGlzLnVwZGF0ZUFycmF5RmllbGQoZnVuY3Rpb24gKGFycmF5KSB7XG4gICAgICAgIHJldHVybiBpbnNlcnQoYXJyYXksIGluZGV4LCB2YWx1ZSk7XG4gICAgICB9LCBmdW5jdGlvbiAoYXJyYXkpIHtcbiAgICAgICAgcmV0dXJuIGluc2VydChhcnJheSwgaW5kZXgsIG51bGwpO1xuICAgICAgfSwgZnVuY3Rpb24gKGFycmF5KSB7XG4gICAgICAgIHJldHVybiBpbnNlcnQoYXJyYXksIGluZGV4LCBudWxsKTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBfdGhpcy5oYW5kbGVJbnNlcnQgPSBmdW5jdGlvbiAoaW5kZXgsIHZhbHVlKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gX3RoaXMuaW5zZXJ0KGluZGV4LCB2YWx1ZSk7XG4gICAgICB9O1xuICAgIH07XG5cbiAgICBfdGhpcy5yZXBsYWNlID0gZnVuY3Rpb24gKGluZGV4LCB2YWx1ZSkge1xuICAgICAgcmV0dXJuIF90aGlzLnVwZGF0ZUFycmF5RmllbGQoZnVuY3Rpb24gKGFycmF5KSB7XG4gICAgICAgIHJldHVybiByZXBsYWNlKGFycmF5LCBpbmRleCwgdmFsdWUpO1xuICAgICAgfSwgZmFsc2UsIGZhbHNlKTtcbiAgICB9O1xuXG4gICAgX3RoaXMuaGFuZGxlUmVwbGFjZSA9IGZ1bmN0aW9uIChpbmRleCwgdmFsdWUpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBfdGhpcy5yZXBsYWNlKGluZGV4LCB2YWx1ZSk7XG4gICAgICB9O1xuICAgIH07XG5cbiAgICBfdGhpcy51bnNoaWZ0ID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gLTE7XG5cbiAgICAgIF90aGlzLnVwZGF0ZUFycmF5RmllbGQoZnVuY3Rpb24gKGFycmF5KSB7XG4gICAgICAgIHZhciBhcnIgPSBhcnJheSA/IFt2YWx1ZV0uY29uY2F0KGFycmF5KSA6IFt2YWx1ZV07XG5cbiAgICAgICAgaWYgKGxlbmd0aCA8IDApIHtcbiAgICAgICAgICBsZW5ndGggPSBhcnIubGVuZ3RoO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFycjtcbiAgICAgIH0sIGZ1bmN0aW9uIChhcnJheSkge1xuICAgICAgICB2YXIgYXJyID0gYXJyYXkgPyBbbnVsbF0uY29uY2F0KGFycmF5KSA6IFtudWxsXTtcblxuICAgICAgICBpZiAobGVuZ3RoIDwgMCkge1xuICAgICAgICAgIGxlbmd0aCA9IGFyci5sZW5ndGg7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYXJyO1xuICAgICAgfSwgZnVuY3Rpb24gKGFycmF5KSB7XG4gICAgICAgIHZhciBhcnIgPSBhcnJheSA/IFtudWxsXS5jb25jYXQoYXJyYXkpIDogW251bGxdO1xuXG4gICAgICAgIGlmIChsZW5ndGggPCAwKSB7XG4gICAgICAgICAgbGVuZ3RoID0gYXJyLmxlbmd0aDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBhcnI7XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIGxlbmd0aDtcbiAgICB9O1xuXG4gICAgX3RoaXMuaGFuZGxlVW5zaGlmdCA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIF90aGlzLnVuc2hpZnQodmFsdWUpO1xuICAgICAgfTtcbiAgICB9O1xuXG4gICAgX3RoaXMuaGFuZGxlUmVtb3ZlID0gZnVuY3Rpb24gKGluZGV4KSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gX3RoaXMucmVtb3ZlKGluZGV4KTtcbiAgICAgIH07XG4gICAgfTtcblxuICAgIF90aGlzLmhhbmRsZVBvcCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBfdGhpcy5wb3AoKTtcbiAgICAgIH07XG4gICAgfTsgLy8gV2UgbmVlZCBUeXBlU2NyaXB0IGdlbmVyaWNzIG9uIHRoZXNlLCBzbyB3ZSdsbCBiaW5kIHRoZW0gaW4gdGhlIGNvbnN0cnVjdG9yXG4gICAgLy8gQHRvZG8gRml4IFRTIDMuMi4xXG5cblxuICAgIF90aGlzLnJlbW92ZSA9IF90aGlzLnJlbW92ZS5iaW5kKF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpKTtcbiAgICBfdGhpcy5wb3AgPSBfdGhpcy5wb3AuYmluZChfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSk7XG4gICAgcmV0dXJuIF90aGlzO1xuICB9XG5cbiAgdmFyIF9wcm90byA9IEZpZWxkQXJyYXlJbm5lci5wcm90b3R5cGU7XG5cbiAgX3Byb3RvLmNvbXBvbmVudERpZFVwZGF0ZSA9IGZ1bmN0aW9uIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBpZiAodGhpcy5wcm9wcy52YWxpZGF0ZU9uQ2hhbmdlICYmIHRoaXMucHJvcHMuZm9ybWlrLnZhbGlkYXRlT25DaGFuZ2UgJiYgIWlzRXF1YWwoZ2V0SW4ocHJldlByb3BzLmZvcm1pay52YWx1ZXMsIHByZXZQcm9wcy5uYW1lKSwgZ2V0SW4odGhpcy5wcm9wcy5mb3JtaWsudmFsdWVzLCB0aGlzLnByb3BzLm5hbWUpKSkge1xuICAgICAgdGhpcy5wcm9wcy5mb3JtaWsudmFsaWRhdGVGb3JtKHRoaXMucHJvcHMuZm9ybWlrLnZhbHVlcyk7XG4gICAgfVxuICB9O1xuXG4gIF9wcm90by5yZW1vdmUgPSBmdW5jdGlvbiByZW1vdmUoaW5kZXgpIHtcbiAgICAvLyBXZSBuZWVkIHRvIG1ha2Ugc3VyZSB3ZSBhbHNvIHJlbW92ZSByZWxldmFudCBwaWVjZXMgb2YgYHRvdWNoZWRgIGFuZCBgZXJyb3JzYFxuICAgIHZhciByZXN1bHQ7XG4gICAgdGhpcy51cGRhdGVBcnJheUZpZWxkKCAvLyBzbyB0aGlzIGdldHMgY2FsbCAzIHRpbWVzXG4gICAgZnVuY3Rpb24gKGFycmF5KSB7XG4gICAgICB2YXIgY29weSA9IGFycmF5ID8gY29weUFycmF5TGlrZShhcnJheSkgOiBbXTtcblxuICAgICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgICAgcmVzdWx0ID0gY29weVtpbmRleF07XG4gICAgICB9XG5cbiAgICAgIGlmIChpc0Z1bmN0aW9uKGNvcHkuc3BsaWNlKSkge1xuICAgICAgICBjb3B5LnNwbGljZShpbmRleCwgMSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjb3B5O1xuICAgIH0sIHRydWUsIHRydWUpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH07XG5cbiAgX3Byb3RvLnBvcCA9IGZ1bmN0aW9uIHBvcCgpIHtcbiAgICAvLyBSZW1vdmUgcmVsZXZhbnQgcGllY2VzIG9mIGB0b3VjaGVkYCBhbmQgYGVycm9yc2AgdG9vIVxuICAgIHZhciByZXN1bHQ7XG4gICAgdGhpcy51cGRhdGVBcnJheUZpZWxkKCAvLyBzbyB0aGlzIGdldHMgY2FsbCAzIHRpbWVzXG4gICAgZnVuY3Rpb24gKGFycmF5KSB7XG4gICAgICB2YXIgdG1wID0gYXJyYXk7XG5cbiAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgIHJlc3VsdCA9IHRtcCAmJiB0bXAucG9wICYmIHRtcC5wb3AoKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRtcDtcbiAgICB9LCB0cnVlLCB0cnVlKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9O1xuXG4gIF9wcm90by5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgdmFyIGFycmF5SGVscGVycyA9IHtcbiAgICAgIHB1c2g6IHRoaXMucHVzaCxcbiAgICAgIHBvcDogdGhpcy5wb3AsXG4gICAgICBzd2FwOiB0aGlzLnN3YXAsXG4gICAgICBtb3ZlOiB0aGlzLm1vdmUsXG4gICAgICBpbnNlcnQ6IHRoaXMuaW5zZXJ0LFxuICAgICAgcmVwbGFjZTogdGhpcy5yZXBsYWNlLFxuICAgICAgdW5zaGlmdDogdGhpcy51bnNoaWZ0LFxuICAgICAgcmVtb3ZlOiB0aGlzLnJlbW92ZSxcbiAgICAgIGhhbmRsZVB1c2g6IHRoaXMuaGFuZGxlUHVzaCxcbiAgICAgIGhhbmRsZVBvcDogdGhpcy5oYW5kbGVQb3AsXG4gICAgICBoYW5kbGVTd2FwOiB0aGlzLmhhbmRsZVN3YXAsXG4gICAgICBoYW5kbGVNb3ZlOiB0aGlzLmhhbmRsZU1vdmUsXG4gICAgICBoYW5kbGVJbnNlcnQ6IHRoaXMuaGFuZGxlSW5zZXJ0LFxuICAgICAgaGFuZGxlUmVwbGFjZTogdGhpcy5oYW5kbGVSZXBsYWNlLFxuICAgICAgaGFuZGxlVW5zaGlmdDogdGhpcy5oYW5kbGVVbnNoaWZ0LFxuICAgICAgaGFuZGxlUmVtb3ZlOiB0aGlzLmhhbmRsZVJlbW92ZVxuICAgIH07XG5cbiAgICB2YXIgX3RoaXMkcHJvcHMyID0gdGhpcy5wcm9wcyxcbiAgICAgICAgY29tcG9uZW50ID0gX3RoaXMkcHJvcHMyLmNvbXBvbmVudCxcbiAgICAgICAgcmVuZGVyID0gX3RoaXMkcHJvcHMyLnJlbmRlcixcbiAgICAgICAgY2hpbGRyZW4gPSBfdGhpcyRwcm9wczIuY2hpbGRyZW4sXG4gICAgICAgIG5hbWUgPSBfdGhpcyRwcm9wczIubmFtZSxcbiAgICAgICAgX3RoaXMkcHJvcHMyJGZvcm1payA9IF90aGlzJHByb3BzMi5mb3JtaWssXG4gICAgICAgIHJlc3RPZkZvcm1payA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKF90aGlzJHByb3BzMiRmb3JtaWssIFtcInZhbGlkYXRlXCIsIFwidmFsaWRhdGlvblNjaGVtYVwiXSk7XG5cbiAgICB2YXIgcHJvcHMgPSBfZXh0ZW5kcyh7fSwgYXJyYXlIZWxwZXJzLCB7XG4gICAgICBmb3JtOiByZXN0T2ZGb3JtaWssXG4gICAgICBuYW1lOiBuYW1lXG4gICAgfSk7XG5cbiAgICByZXR1cm4gY29tcG9uZW50ID8gY3JlYXRlRWxlbWVudChjb21wb25lbnQsIHByb3BzKSA6IHJlbmRlciA/IHJlbmRlcihwcm9wcykgOiBjaGlsZHJlbiAvLyBjaGlsZHJlbiBjb21lIGxhc3QsIGFsd2F5cyBjYWxsZWRcbiAgICA/IHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJyA/IGNoaWxkcmVuKHByb3BzKSA6ICFpc0VtcHR5Q2hpbGRyZW4oY2hpbGRyZW4pID8gQ2hpbGRyZW4ub25seShjaGlsZHJlbikgOiBudWxsIDogbnVsbDtcbiAgfTtcblxuICByZXR1cm4gRmllbGRBcnJheUlubmVyO1xufShDb21wb25lbnQpO1xuXG5GaWVsZEFycmF5SW5uZXIuZGVmYXVsdFByb3BzID0ge1xuICB2YWxpZGF0ZU9uQ2hhbmdlOiB0cnVlXG59O1xudmFyIEZpZWxkQXJyYXkgPSAvKiNfX1BVUkVfXyovY29ubmVjdChGaWVsZEFycmF5SW5uZXIpO1xuXG52YXIgRXJyb3JNZXNzYWdlSW1wbCA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHNMb29zZShFcnJvck1lc3NhZ2VJbXBsLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICBmdW5jdGlvbiBFcnJvck1lc3NhZ2VJbXBsKCkge1xuICAgIHJldHVybiBfUmVhY3QkQ29tcG9uZW50LmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpcztcbiAgfVxuXG4gIHZhciBfcHJvdG8gPSBFcnJvck1lc3NhZ2VJbXBsLnByb3RvdHlwZTtcblxuICBfcHJvdG8uc2hvdWxkQ29tcG9uZW50VXBkYXRlID0gZnVuY3Rpb24gc2hvdWxkQ29tcG9uZW50VXBkYXRlKHByb3BzKSB7XG4gICAgaWYgKGdldEluKHRoaXMucHJvcHMuZm9ybWlrLmVycm9ycywgdGhpcy5wcm9wcy5uYW1lKSAhPT0gZ2V0SW4ocHJvcHMuZm9ybWlrLmVycm9ycywgdGhpcy5wcm9wcy5uYW1lKSB8fCBnZXRJbih0aGlzLnByb3BzLmZvcm1pay50b3VjaGVkLCB0aGlzLnByb3BzLm5hbWUpICE9PSBnZXRJbihwcm9wcy5mb3JtaWsudG91Y2hlZCwgdGhpcy5wcm9wcy5uYW1lKSB8fCBPYmplY3Qua2V5cyh0aGlzLnByb3BzKS5sZW5ndGggIT09IE9iamVjdC5rZXlzKHByb3BzKS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9O1xuXG4gIF9wcm90by5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgdmFyIF90aGlzJHByb3BzID0gdGhpcy5wcm9wcyxcbiAgICAgICAgY29tcG9uZW50ID0gX3RoaXMkcHJvcHMuY29tcG9uZW50LFxuICAgICAgICBmb3JtaWsgPSBfdGhpcyRwcm9wcy5mb3JtaWssXG4gICAgICAgIHJlbmRlciA9IF90aGlzJHByb3BzLnJlbmRlcixcbiAgICAgICAgY2hpbGRyZW4gPSBfdGhpcyRwcm9wcy5jaGlsZHJlbixcbiAgICAgICAgbmFtZSA9IF90aGlzJHByb3BzLm5hbWUsXG4gICAgICAgIHJlc3QgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShfdGhpcyRwcm9wcywgW1wiY29tcG9uZW50XCIsIFwiZm9ybWlrXCIsIFwicmVuZGVyXCIsIFwiY2hpbGRyZW5cIiwgXCJuYW1lXCJdKTtcblxuICAgIHZhciB0b3VjaCA9IGdldEluKGZvcm1pay50b3VjaGVkLCBuYW1lKTtcbiAgICB2YXIgZXJyb3IgPSBnZXRJbihmb3JtaWsuZXJyb3JzLCBuYW1lKTtcbiAgICByZXR1cm4gISF0b3VjaCAmJiAhIWVycm9yID8gcmVuZGVyID8gaXNGdW5jdGlvbihyZW5kZXIpID8gcmVuZGVyKGVycm9yKSA6IG51bGwgOiBjaGlsZHJlbiA/IGlzRnVuY3Rpb24oY2hpbGRyZW4pID8gY2hpbGRyZW4oZXJyb3IpIDogbnVsbCA6IGNvbXBvbmVudCA/IGNyZWF0ZUVsZW1lbnQoY29tcG9uZW50LCByZXN0LCBlcnJvcikgOiBlcnJvciA6IG51bGw7XG4gIH07XG5cbiAgcmV0dXJuIEVycm9yTWVzc2FnZUltcGw7XG59KENvbXBvbmVudCk7XG5cbnZhciBFcnJvck1lc3NhZ2UgPSAvKiNfX1BVUkVfXyovY29ubmVjdChFcnJvck1lc3NhZ2VJbXBsKTtcblxuLyoqXHJcbiAqIEN1c3RvbSBGaWVsZCBjb21wb25lbnQgZm9yIHF1aWNrbHkgaG9va2luZyBpbnRvIEZvcm1pa1xyXG4gKiBjb250ZXh0IGFuZCB3aXJpbmcgdXAgZm9ybXMuXHJcbiAqL1xuXG52YXIgRmFzdEZpZWxkSW5uZXIgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzTG9vc2UoRmFzdEZpZWxkSW5uZXIsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIGZ1bmN0aW9uIEZhc3RGaWVsZElubmVyKHByb3BzKSB7XG4gICAgdmFyIF90aGlzO1xuXG4gICAgX3RoaXMgPSBfUmVhY3QkQ29tcG9uZW50LmNhbGwodGhpcywgcHJvcHMpIHx8IHRoaXM7XG4gICAgdmFyIHJlbmRlciA9IHByb3BzLnJlbmRlcixcbiAgICAgICAgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbixcbiAgICAgICAgY29tcG9uZW50ID0gcHJvcHMuY29tcG9uZW50LFxuICAgICAgICBpcyA9IHByb3BzLmFzLFxuICAgICAgICBuYW1lID0gcHJvcHMubmFtZTtcbiAgICAhIXJlbmRlciA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IGludmFyaWFudChmYWxzZSwgXCI8RmFzdEZpZWxkIHJlbmRlcj4gaGFzIGJlZW4gZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBhIGNoaWxkIGNhbGxiYWNrIGZ1bmN0aW9uIGluc3RlYWQ6IDxGYXN0RmllbGQgbmFtZT17XCIgKyBuYW1lICsgXCJ9Pntwcm9wcyA9PiAuLi59PC9GYXN0RmllbGQ+IGluc3RlYWQuXCIpIDogaW52YXJpYW50KGZhbHNlKSA6IHZvaWQgMDtcbiAgICAhIShjb21wb25lbnQgJiYgcmVuZGVyKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IGludmFyaWFudChmYWxzZSwgJ1lvdSBzaG91bGQgbm90IHVzZSA8RmFzdEZpZWxkIGNvbXBvbmVudD4gYW5kIDxGYXN0RmllbGQgcmVuZGVyPiBpbiB0aGUgc2FtZSA8RmFzdEZpZWxkPiBjb21wb25lbnQ7IDxGYXN0RmllbGQgY29tcG9uZW50PiB3aWxsIGJlIGlnbm9yZWQnKSA6IGludmFyaWFudChmYWxzZSkgOiB2b2lkIDA7XG4gICAgISEoaXMgJiYgY2hpbGRyZW4gJiYgaXNGdW5jdGlvbihjaGlsZHJlbikpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gaW52YXJpYW50KGZhbHNlLCAnWW91IHNob3VsZCBub3QgdXNlIDxGYXN0RmllbGQgYXM+IGFuZCA8RmFzdEZpZWxkIGNoaWxkcmVuPiBhcyBhIGZ1bmN0aW9uIGluIHRoZSBzYW1lIDxGYXN0RmllbGQ+IGNvbXBvbmVudDsgPEZhc3RGaWVsZCBhcz4gd2lsbCBiZSBpZ25vcmVkLicpIDogaW52YXJpYW50KGZhbHNlKSA6IHZvaWQgMDtcbiAgICAhIShjb21wb25lbnQgJiYgY2hpbGRyZW4gJiYgaXNGdW5jdGlvbihjaGlsZHJlbikpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gaW52YXJpYW50KGZhbHNlLCAnWW91IHNob3VsZCBub3QgdXNlIDxGYXN0RmllbGQgY29tcG9uZW50PiBhbmQgPEZhc3RGaWVsZCBjaGlsZHJlbj4gYXMgYSBmdW5jdGlvbiBpbiB0aGUgc2FtZSA8RmFzdEZpZWxkPiBjb21wb25lbnQ7IDxGYXN0RmllbGQgY29tcG9uZW50PiB3aWxsIGJlIGlnbm9yZWQuJykgOiBpbnZhcmlhbnQoZmFsc2UpIDogdm9pZCAwO1xuICAgICEhKHJlbmRlciAmJiBjaGlsZHJlbiAmJiAhaXNFbXB0eUNoaWxkcmVuKGNoaWxkcmVuKSkgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyBpbnZhcmlhbnQoZmFsc2UsICdZb3Ugc2hvdWxkIG5vdCB1c2UgPEZhc3RGaWVsZCByZW5kZXI+IGFuZCA8RmFzdEZpZWxkIGNoaWxkcmVuPiBpbiB0aGUgc2FtZSA8RmFzdEZpZWxkPiBjb21wb25lbnQ7IDxGYXN0RmllbGQgY2hpbGRyZW4+IHdpbGwgYmUgaWdub3JlZCcpIDogaW52YXJpYW50KGZhbHNlKSA6IHZvaWQgMDtcbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICB2YXIgX3Byb3RvID0gRmFzdEZpZWxkSW5uZXIucHJvdG90eXBlO1xuXG4gIF9wcm90by5zaG91bGRDb21wb25lbnRVcGRhdGUgPSBmdW5jdGlvbiBzaG91bGRDb21wb25lbnRVcGRhdGUocHJvcHMpIHtcbiAgICBpZiAodGhpcy5wcm9wcy5zaG91bGRVcGRhdGUpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLnNob3VsZFVwZGF0ZShwcm9wcywgdGhpcy5wcm9wcyk7XG4gICAgfSBlbHNlIGlmIChwcm9wcy5uYW1lICE9PSB0aGlzLnByb3BzLm5hbWUgfHwgZ2V0SW4ocHJvcHMuZm9ybWlrLnZhbHVlcywgdGhpcy5wcm9wcy5uYW1lKSAhPT0gZ2V0SW4odGhpcy5wcm9wcy5mb3JtaWsudmFsdWVzLCB0aGlzLnByb3BzLm5hbWUpIHx8IGdldEluKHByb3BzLmZvcm1pay5lcnJvcnMsIHRoaXMucHJvcHMubmFtZSkgIT09IGdldEluKHRoaXMucHJvcHMuZm9ybWlrLmVycm9ycywgdGhpcy5wcm9wcy5uYW1lKSB8fCBnZXRJbihwcm9wcy5mb3JtaWsudG91Y2hlZCwgdGhpcy5wcm9wcy5uYW1lKSAhPT0gZ2V0SW4odGhpcy5wcm9wcy5mb3JtaWsudG91Y2hlZCwgdGhpcy5wcm9wcy5uYW1lKSB8fCBPYmplY3Qua2V5cyh0aGlzLnByb3BzKS5sZW5ndGggIT09IE9iamVjdC5rZXlzKHByb3BzKS5sZW5ndGggfHwgcHJvcHMuZm9ybWlrLmlzU3VibWl0dGluZyAhPT0gdGhpcy5wcm9wcy5mb3JtaWsuaXNTdWJtaXR0aW5nKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfTtcblxuICBfcHJvdG8uY29tcG9uZW50RGlkTW91bnQgPSBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAvLyBSZWdpc3RlciB0aGUgRmllbGQgd2l0aCB0aGUgcGFyZW50IEZvcm1pay4gUGFyZW50IHdpbGwgY3ljbGUgdGhyb3VnaFxuICAgIC8vIHJlZ2lzdGVyZWQgRmllbGQncyB2YWxpZGF0ZSBmbnMgcmlnaHQgcHJpb3IgdG8gc3VibWl0XG4gICAgdGhpcy5wcm9wcy5mb3JtaWsucmVnaXN0ZXJGaWVsZCh0aGlzLnByb3BzLm5hbWUsIHtcbiAgICAgIHZhbGlkYXRlOiB0aGlzLnByb3BzLnZhbGlkYXRlXG4gICAgfSk7XG4gIH07XG5cbiAgX3Byb3RvLmNvbXBvbmVudERpZFVwZGF0ZSA9IGZ1bmN0aW9uIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBpZiAodGhpcy5wcm9wcy5uYW1lICE9PSBwcmV2UHJvcHMubmFtZSkge1xuICAgICAgdGhpcy5wcm9wcy5mb3JtaWsudW5yZWdpc3RlckZpZWxkKHByZXZQcm9wcy5uYW1lKTtcbiAgICAgIHRoaXMucHJvcHMuZm9ybWlrLnJlZ2lzdGVyRmllbGQodGhpcy5wcm9wcy5uYW1lLCB7XG4gICAgICAgIHZhbGlkYXRlOiB0aGlzLnByb3BzLnZhbGlkYXRlXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wcm9wcy52YWxpZGF0ZSAhPT0gcHJldlByb3BzLnZhbGlkYXRlKSB7XG4gICAgICB0aGlzLnByb3BzLmZvcm1pay5yZWdpc3RlckZpZWxkKHRoaXMucHJvcHMubmFtZSwge1xuICAgICAgICB2YWxpZGF0ZTogdGhpcy5wcm9wcy52YWxpZGF0ZVxuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIF9wcm90by5jb21wb25lbnRXaWxsVW5tb3VudCA9IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgIHRoaXMucHJvcHMuZm9ybWlrLnVucmVnaXN0ZXJGaWVsZCh0aGlzLnByb3BzLm5hbWUpO1xuICB9O1xuXG4gIF9wcm90by5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgdmFyIF90aGlzJHByb3BzID0gdGhpcy5wcm9wcyxcbiAgICAgICAgbmFtZSA9IF90aGlzJHByb3BzLm5hbWUsXG4gICAgICAgIHJlbmRlciA9IF90aGlzJHByb3BzLnJlbmRlcixcbiAgICAgICAgaXMgPSBfdGhpcyRwcm9wcy5hcyxcbiAgICAgICAgY2hpbGRyZW4gPSBfdGhpcyRwcm9wcy5jaGlsZHJlbixcbiAgICAgICAgY29tcG9uZW50ID0gX3RoaXMkcHJvcHMuY29tcG9uZW50LFxuICAgICAgICBmb3JtaWsgPSBfdGhpcyRwcm9wcy5mb3JtaWssXG4gICAgICAgIHByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UoX3RoaXMkcHJvcHMsIFtcInZhbGlkYXRlXCIsIFwibmFtZVwiLCBcInJlbmRlclwiLCBcImFzXCIsIFwiY2hpbGRyZW5cIiwgXCJjb21wb25lbnRcIiwgXCJzaG91bGRVcGRhdGVcIiwgXCJmb3JtaWtcIl0pO1xuXG4gICAgdmFyIHJlc3RPZkZvcm1payA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKGZvcm1paywgW1widmFsaWRhdGVcIiwgXCJ2YWxpZGF0aW9uU2NoZW1hXCJdKTtcblxuICAgIHZhciBmaWVsZCA9IGZvcm1pay5nZXRGaWVsZFByb3BzKF9leHRlbmRzKHtcbiAgICAgIG5hbWU6IG5hbWVcbiAgICB9LCBwcm9wcykpO1xuICAgIHZhciBtZXRhID0ge1xuICAgICAgdmFsdWU6IGdldEluKGZvcm1pay52YWx1ZXMsIG5hbWUpLFxuICAgICAgZXJyb3I6IGdldEluKGZvcm1pay5lcnJvcnMsIG5hbWUpLFxuICAgICAgdG91Y2hlZDogISFnZXRJbihmb3JtaWsudG91Y2hlZCwgbmFtZSksXG4gICAgICBpbml0aWFsVmFsdWU6IGdldEluKGZvcm1pay5pbml0aWFsVmFsdWVzLCBuYW1lKSxcbiAgICAgIGluaXRpYWxUb3VjaGVkOiAhIWdldEluKGZvcm1pay5pbml0aWFsVG91Y2hlZCwgbmFtZSksXG4gICAgICBpbml0aWFsRXJyb3I6IGdldEluKGZvcm1pay5pbml0aWFsRXJyb3JzLCBuYW1lKVxuICAgIH07XG4gICAgdmFyIGJhZyA9IHtcbiAgICAgIGZpZWxkOiBmaWVsZCxcbiAgICAgIG1ldGE6IG1ldGEsXG4gICAgICBmb3JtOiByZXN0T2ZGb3JtaWtcbiAgICB9O1xuXG4gICAgaWYgKHJlbmRlcikge1xuICAgICAgcmV0dXJuIHJlbmRlcihiYWcpO1xuICAgIH1cblxuICAgIGlmIChpc0Z1bmN0aW9uKGNoaWxkcmVuKSkge1xuICAgICAgcmV0dXJuIGNoaWxkcmVuKGJhZyk7XG4gICAgfVxuXG4gICAgaWYgKGNvbXBvbmVudCkge1xuICAgICAgLy8gVGhpcyBiZWhhdmlvciBpcyBiYWNrd2FyZHMgY29tcGF0IHdpdGggZWFybGllciBGb3JtaWsgMC45IHRvIDEueFxuICAgICAgaWYgKHR5cGVvZiBjb21wb25lbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHZhciBpbm5lclJlZiA9IHByb3BzLmlubmVyUmVmLFxuICAgICAgICAgICAgcmVzdCA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKHByb3BzLCBbXCJpbm5lclJlZlwiXSk7XG5cbiAgICAgICAgcmV0dXJuIGNyZWF0ZUVsZW1lbnQoY29tcG9uZW50LCBfZXh0ZW5kcyh7XG4gICAgICAgICAgcmVmOiBpbm5lclJlZlxuICAgICAgICB9LCBmaWVsZCwgcmVzdCksIGNoaWxkcmVuKTtcbiAgICAgIH0gLy8gV2UgZG9uJ3QgcGFzcyBgbWV0YWAgZm9yIGJhY2t3YXJkcyBjb21wYXRcblxuXG4gICAgICByZXR1cm4gY3JlYXRlRWxlbWVudChjb21wb25lbnQsIF9leHRlbmRzKHtcbiAgICAgICAgZmllbGQ6IGZpZWxkLFxuICAgICAgICBmb3JtOiBmb3JtaWtcbiAgICAgIH0sIHByb3BzKSwgY2hpbGRyZW4pO1xuICAgIH0gLy8gZGVmYXVsdCB0byBpbnB1dCBoZXJlIHNvIHdlIGNhbiBjaGVjayBmb3IgYm90aCBgYXNgIGFuZCBgY2hpbGRyZW5gIGFib3ZlXG5cblxuICAgIHZhciBhc0VsZW1lbnQgPSBpcyB8fCAnaW5wdXQnO1xuXG4gICAgaWYgKHR5cGVvZiBhc0VsZW1lbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICB2YXIgX2lubmVyUmVmID0gcHJvcHMuaW5uZXJSZWYsXG4gICAgICAgICAgX3Jlc3QgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShwcm9wcywgW1wiaW5uZXJSZWZcIl0pO1xuXG4gICAgICByZXR1cm4gY3JlYXRlRWxlbWVudChhc0VsZW1lbnQsIF9leHRlbmRzKHtcbiAgICAgICAgcmVmOiBfaW5uZXJSZWZcbiAgICAgIH0sIGZpZWxkLCBfcmVzdCksIGNoaWxkcmVuKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY3JlYXRlRWxlbWVudChhc0VsZW1lbnQsIF9leHRlbmRzKHt9LCBmaWVsZCwgcHJvcHMpLCBjaGlsZHJlbik7XG4gIH07XG5cbiAgcmV0dXJuIEZhc3RGaWVsZElubmVyO1xufShDb21wb25lbnQpO1xuXG52YXIgRmFzdEZpZWxkID0gLyojX19QVVJFX18qL2Nvbm5lY3QoRmFzdEZpZWxkSW5uZXIpO1xuXG5leHBvcnQgeyBFcnJvck1lc3NhZ2UsIEZhc3RGaWVsZCwgRmllbGQsIEZpZWxkQXJyYXksIEZvcm0sIEZvcm1paywgRm9ybWlrQ29uc3VtZXIsIEZvcm1pa0NvbnRleHQsIEZvcm1pa1Byb3ZpZGVyLCBjb25uZWN0LCBnZXRBY3RpdmVFbGVtZW50LCBnZXRJbiwgaW5zZXJ0LCBpc0VtcHR5QXJyYXksIGlzRW1wdHlDaGlsZHJlbiwgaXNGdW5jdGlvbiwgaXNJbnB1dEV2ZW50LCBpc0ludGVnZXIsIGlzTmFOJDEgYXMgaXNOYU4sIGlzT2JqZWN0LCBpc1Byb21pc2UsIGlzU3RyaW5nLCBtb3ZlLCBwcmVwYXJlRGF0YUZvclZhbGlkYXRpb24sIHJlcGxhY2UsIHNldEluLCBzZXROZXN0ZWRPYmplY3RWYWx1ZXMsIHN3YXAsIHVzZUZpZWxkLCB1c2VGb3JtaWssIHVzZUZvcm1pa0NvbnRleHQsIHZhbGlkYXRlWXVwU2NoZW1hLCB3aXRoRm9ybWlrLCB5dXBUb0Zvcm1FcnJvcnMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWZvcm1pay5lc20uanMubWFwXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/formik/dist/formik.esm.js\n"); + +/***/ }), + +/***/ "./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js ***! + \**********************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar reactIs = __webpack_require__(/*! react-is */ \"./node_modules/hoist-non-react-statics/node_modules/react-is/index.js\");\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvaG9pc3Qtbm9uLXJlYWN0LXN0YXRpY3MvZGlzdC9ob2lzdC1ub24tcmVhY3Qtc3RhdGljcy5janMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsY0FBYyxtQkFBTyxDQUFDLHVGQUFVOztBQUVoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBLG9CQUFvQixpQkFBaUI7QUFDckM7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2hvaXN0LW5vbi1yZWFjdC1zdGF0aWNzL2Rpc3QvaG9pc3Qtbm9uLXJlYWN0LXN0YXRpY3MuY2pzLmpzPzkxZGIiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG52YXIgcmVhY3RJcyA9IHJlcXVpcmUoJ3JlYWN0LWlzJyk7XG5cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUsIFlhaG9vISBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBOZXcgQlNEIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbnZhciBSRUFDVF9TVEFUSUNTID0ge1xuICBjaGlsZENvbnRleHRUeXBlczogdHJ1ZSxcbiAgY29udGV4dFR5cGU6IHRydWUsXG4gIGNvbnRleHRUeXBlczogdHJ1ZSxcbiAgZGVmYXVsdFByb3BzOiB0cnVlLFxuICBkaXNwbGF5TmFtZTogdHJ1ZSxcbiAgZ2V0RGVmYXVsdFByb3BzOiB0cnVlLFxuICBnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3I6IHRydWUsXG4gIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wczogdHJ1ZSxcbiAgbWl4aW5zOiB0cnVlLFxuICBwcm9wVHlwZXM6IHRydWUsXG4gIHR5cGU6IHRydWVcbn07XG52YXIgS05PV05fU1RBVElDUyA9IHtcbiAgbmFtZTogdHJ1ZSxcbiAgbGVuZ3RoOiB0cnVlLFxuICBwcm90b3R5cGU6IHRydWUsXG4gIGNhbGxlcjogdHJ1ZSxcbiAgY2FsbGVlOiB0cnVlLFxuICBhcmd1bWVudHM6IHRydWUsXG4gIGFyaXR5OiB0cnVlXG59O1xudmFyIEZPUldBUkRfUkVGX1NUQVRJQ1MgPSB7XG4gICckJHR5cGVvZic6IHRydWUsXG4gIHJlbmRlcjogdHJ1ZSxcbiAgZGVmYXVsdFByb3BzOiB0cnVlLFxuICBkaXNwbGF5TmFtZTogdHJ1ZSxcbiAgcHJvcFR5cGVzOiB0cnVlXG59O1xudmFyIE1FTU9fU1RBVElDUyA9IHtcbiAgJyQkdHlwZW9mJzogdHJ1ZSxcbiAgY29tcGFyZTogdHJ1ZSxcbiAgZGVmYXVsdFByb3BzOiB0cnVlLFxuICBkaXNwbGF5TmFtZTogdHJ1ZSxcbiAgcHJvcFR5cGVzOiB0cnVlLFxuICB0eXBlOiB0cnVlXG59O1xudmFyIFRZUEVfU1RBVElDUyA9IHt9O1xuVFlQRV9TVEFUSUNTW3JlYWN0SXMuRm9yd2FyZFJlZl0gPSBGT1JXQVJEX1JFRl9TVEFUSUNTO1xuVFlQRV9TVEFUSUNTW3JlYWN0SXMuTWVtb10gPSBNRU1PX1NUQVRJQ1M7XG5cbmZ1bmN0aW9uIGdldFN0YXRpY3MoY29tcG9uZW50KSB7XG4gIC8vIFJlYWN0IHYxNi4xMSBhbmQgYmVsb3dcbiAgaWYgKHJlYWN0SXMuaXNNZW1vKGNvbXBvbmVudCkpIHtcbiAgICByZXR1cm4gTUVNT19TVEFUSUNTO1xuICB9IC8vIFJlYWN0IHYxNi4xMiBhbmQgYWJvdmVcblxuXG4gIHJldHVybiBUWVBFX1NUQVRJQ1NbY29tcG9uZW50WyckJHR5cGVvZiddXSB8fCBSRUFDVF9TVEFUSUNTO1xufVxuXG52YXIgZGVmaW5lUHJvcGVydHkgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG52YXIgZ2V0T3duUHJvcGVydHlOYW1lcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzO1xudmFyIGdldE93blByb3BlcnR5U3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7XG52YXIgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcbnZhciBnZXRQcm90b3R5cGVPZiA9IE9iamVjdC5nZXRQcm90b3R5cGVPZjtcbnZhciBvYmplY3RQcm90b3R5cGUgPSBPYmplY3QucHJvdG90eXBlO1xuZnVuY3Rpb24gaG9pc3ROb25SZWFjdFN0YXRpY3ModGFyZ2V0Q29tcG9uZW50LCBzb3VyY2VDb21wb25lbnQsIGJsYWNrbGlzdCkge1xuICBpZiAodHlwZW9mIHNvdXJjZUNvbXBvbmVudCAhPT0gJ3N0cmluZycpIHtcbiAgICAvLyBkb24ndCBob2lzdCBvdmVyIHN0cmluZyAoaHRtbCkgY29tcG9uZW50c1xuICAgIGlmIChvYmplY3RQcm90b3R5cGUpIHtcbiAgICAgIHZhciBpbmhlcml0ZWRDb21wb25lbnQgPSBnZXRQcm90b3R5cGVPZihzb3VyY2VDb21wb25lbnQpO1xuXG4gICAgICBpZiAoaW5oZXJpdGVkQ29tcG9uZW50ICYmIGluaGVyaXRlZENvbXBvbmVudCAhPT0gb2JqZWN0UHJvdG90eXBlKSB7XG4gICAgICAgIGhvaXN0Tm9uUmVhY3RTdGF0aWNzKHRhcmdldENvbXBvbmVudCwgaW5oZXJpdGVkQ29tcG9uZW50LCBibGFja2xpc3QpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBrZXlzID0gZ2V0T3duUHJvcGVydHlOYW1lcyhzb3VyY2VDb21wb25lbnQpO1xuXG4gICAgaWYgKGdldE93blByb3BlcnR5U3ltYm9scykge1xuICAgICAga2V5cyA9IGtleXMuY29uY2F0KGdldE93blByb3BlcnR5U3ltYm9scyhzb3VyY2VDb21wb25lbnQpKTtcbiAgICB9XG5cbiAgICB2YXIgdGFyZ2V0U3RhdGljcyA9IGdldFN0YXRpY3ModGFyZ2V0Q29tcG9uZW50KTtcbiAgICB2YXIgc291cmNlU3RhdGljcyA9IGdldFN0YXRpY3Moc291cmNlQ29tcG9uZW50KTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7ICsraSkge1xuICAgICAgdmFyIGtleSA9IGtleXNbaV07XG5cbiAgICAgIGlmICghS05PV05fU1RBVElDU1trZXldICYmICEoYmxhY2tsaXN0ICYmIGJsYWNrbGlzdFtrZXldKSAmJiAhKHNvdXJjZVN0YXRpY3MgJiYgc291cmNlU3RhdGljc1trZXldKSAmJiAhKHRhcmdldFN0YXRpY3MgJiYgdGFyZ2V0U3RhdGljc1trZXldKSkge1xuICAgICAgICB2YXIgZGVzY3JpcHRvciA9IGdldE93blByb3BlcnR5RGVzY3JpcHRvcihzb3VyY2VDb21wb25lbnQsIGtleSk7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAvLyBBdm9pZCBmYWlsdXJlcyBmcm9tIHJlYWQtb25seSBwcm9wZXJ0aWVzXG4gICAgICAgICAgZGVmaW5lUHJvcGVydHkodGFyZ2V0Q29tcG9uZW50LCBrZXksIGRlc2NyaXB0b3IpO1xuICAgICAgICB9IGNhdGNoIChlKSB7fVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0YXJnZXRDb21wb25lbnQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaG9pc3ROb25SZWFjdFN0YXRpY3M7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js\n"); + +/***/ }), + +/***/ "./node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.development.js": +/*!************************************************************************************************!*\ + !*** ./node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.development.js ***! + \************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its 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\n\n\n\n\nif (true) {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvaG9pc3Qtbm9uLXJlYWN0LXN0YXRpY3Mvbm9kZV9tb2R1bGVzL3JlYWN0LWlzL2Nqcy9yZWFjdC1pcy5kZXZlbG9wbWVudC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVhOzs7O0FBSWIsSUFBSSxJQUFxQztBQUN6QztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJFQUEyRTtBQUMzRTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpREFBaUQ7O0FBRWpEO0FBQ0E7QUFDQTtBQUNBLGtEQUFrRDs7QUFFbEQ7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsaUJBQWlCO0FBQ2pCLHNCQUFzQjtBQUN0Qix1QkFBdUI7QUFDdkIsdUJBQXVCO0FBQ3ZCLGVBQWU7QUFDZixrQkFBa0I7QUFDbEIsZ0JBQWdCO0FBQ2hCLFlBQVk7QUFDWixZQUFZO0FBQ1osY0FBYztBQUNkLGdCQUFnQjtBQUNoQixrQkFBa0I7QUFDbEIsZ0JBQWdCO0FBQ2hCLG1CQUFtQjtBQUNuQix3QkFBd0I7QUFDeEIseUJBQXlCO0FBQ3pCLHlCQUF5QjtBQUN6QixpQkFBaUI7QUFDakIsb0JBQW9CO0FBQ3BCLGtCQUFrQjtBQUNsQixjQUFjO0FBQ2QsY0FBYztBQUNkLGdCQUFnQjtBQUNoQixrQkFBa0I7QUFDbEIsb0JBQW9CO0FBQ3BCLGtCQUFrQjtBQUNsQiwwQkFBMEI7QUFDMUIsY0FBYztBQUNkLEdBQUc7QUFDSCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvaG9pc3Qtbm9uLXJlYWN0LXN0YXRpY3Mvbm9kZV9tb2R1bGVzL3JlYWN0LWlzL2Nqcy9yZWFjdC1pcy5kZXZlbG9wbWVudC5qcz9jODdmIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBAbGljZW5zZSBSZWFjdCB2MTYuMTMuMVxuICogcmVhY3QtaXMuZGV2ZWxvcG1lbnQuanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIEZhY2Vib29rLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cblxuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gIChmdW5jdGlvbigpIHtcbid1c2Ugc3RyaWN0JztcblxuLy8gVGhlIFN5bWJvbCB1c2VkIHRvIHRhZyB0aGUgUmVhY3RFbGVtZW50LWxpa2UgdHlwZXMuIElmIHRoZXJlIGlzIG5vIG5hdGl2ZSBTeW1ib2xcbi8vIG5vciBwb2x5ZmlsbCwgdGhlbiBhIHBsYWluIG51bWJlciBpcyB1c2VkIGZvciBwZXJmb3JtYW5jZS5cbnZhciBoYXNTeW1ib2wgPSB0eXBlb2YgU3ltYm9sID09PSAnZnVuY3Rpb24nICYmIFN5bWJvbC5mb3I7XG52YXIgUkVBQ1RfRUxFTUVOVF9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3QuZWxlbWVudCcpIDogMHhlYWM3O1xudmFyIFJFQUNUX1BPUlRBTF9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3QucG9ydGFsJykgOiAweGVhY2E7XG52YXIgUkVBQ1RfRlJBR01FTlRfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmZyYWdtZW50JykgOiAweGVhY2I7XG52YXIgUkVBQ1RfU1RSSUNUX01PREVfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LnN0cmljdF9tb2RlJykgOiAweGVhY2M7XG52YXIgUkVBQ1RfUFJPRklMRVJfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LnByb2ZpbGVyJykgOiAweGVhZDI7XG52YXIgUkVBQ1RfUFJPVklERVJfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LnByb3ZpZGVyJykgOiAweGVhY2Q7XG52YXIgUkVBQ1RfQ09OVEVYVF9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3QuY29udGV4dCcpIDogMHhlYWNlOyAvLyBUT0RPOiBXZSBkb24ndCB1c2UgQXN5bmNNb2RlIG9yIENvbmN1cnJlbnRNb2RlIGFueW1vcmUuIFRoZXkgd2VyZSB0ZW1wb3Jhcnlcbi8vICh1bnN0YWJsZSkgQVBJcyB0aGF0IGhhdmUgYmVlbiByZW1vdmVkLiBDYW4gd2UgcmVtb3ZlIHRoZSBzeW1ib2xzP1xuXG52YXIgUkVBQ1RfQVNZTkNfTU9ERV9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3QuYXN5bmNfbW9kZScpIDogMHhlYWNmO1xudmFyIFJFQUNUX0NPTkNVUlJFTlRfTU9ERV9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3QuY29uY3VycmVudF9tb2RlJykgOiAweGVhY2Y7XG52YXIgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmZvcndhcmRfcmVmJykgOiAweGVhZDA7XG52YXIgUkVBQ1RfU1VTUEVOU0VfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LnN1c3BlbnNlJykgOiAweGVhZDE7XG52YXIgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3Quc3VzcGVuc2VfbGlzdCcpIDogMHhlYWQ4O1xudmFyIFJFQUNUX01FTU9fVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0Lm1lbW8nKSA6IDB4ZWFkMztcbnZhciBSRUFDVF9MQVpZX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5sYXp5JykgOiAweGVhZDQ7XG52YXIgUkVBQ1RfQkxPQ0tfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmJsb2NrJykgOiAweGVhZDk7XG52YXIgUkVBQ1RfRlVOREFNRU5UQUxfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmZ1bmRhbWVudGFsJykgOiAweGVhZDU7XG52YXIgUkVBQ1RfUkVTUE9OREVSX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5yZXNwb25kZXInKSA6IDB4ZWFkNjtcbnZhciBSRUFDVF9TQ09QRV9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3Quc2NvcGUnKSA6IDB4ZWFkNztcblxuZnVuY3Rpb24gaXNWYWxpZEVsZW1lbnRUeXBlKHR5cGUpIHtcbiAgcmV0dXJuIHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJyB8fCAvLyBOb3RlOiBpdHMgdHlwZW9mIG1pZ2h0IGJlIG90aGVyIHRoYW4gJ3N5bWJvbCcgb3IgJ251bWJlcicgaWYgaXQncyBhIHBvbHlmaWxsLlxuICB0eXBlID09PSBSRUFDVF9GUkFHTUVOVF9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX0NPTkNVUlJFTlRfTU9ERV9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX1BST0ZJTEVSX1RZUEUgfHwgdHlwZSA9PT0gUkVBQ1RfU1RSSUNUX01PREVfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9TVVNQRU5TRV9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSB8fCB0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcgJiYgdHlwZSAhPT0gbnVsbCAmJiAodHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTEFaWV9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX01FTU9fVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9QUk9WSURFUl9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0NPTlRFWFRfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0ZVTkRBTUVOVEFMX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfUkVTUE9OREVSX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfU0NPUEVfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9CTE9DS19UWVBFKTtcbn1cblxuZnVuY3Rpb24gdHlwZU9mKG9iamVjdCkge1xuICBpZiAodHlwZW9mIG9iamVjdCA9PT0gJ29iamVjdCcgJiYgb2JqZWN0ICE9PSBudWxsKSB7XG4gICAgdmFyICQkdHlwZW9mID0gb2JqZWN0LiQkdHlwZW9mO1xuXG4gICAgc3dpdGNoICgkJHR5cGVvZikge1xuICAgICAgY2FzZSBSRUFDVF9FTEVNRU5UX1RZUEU6XG4gICAgICAgIHZhciB0eXBlID0gb2JqZWN0LnR5cGU7XG5cbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgY2FzZSBSRUFDVF9BU1lOQ19NT0RFX1RZUEU6XG4gICAgICAgICAgY2FzZSBSRUFDVF9DT05DVVJSRU5UX01PREVfVFlQRTpcbiAgICAgICAgICBjYXNlIFJFQUNUX0ZSQUdNRU5UX1RZUEU6XG4gICAgICAgICAgY2FzZSBSRUFDVF9QUk9GSUxFUl9UWVBFOlxuICAgICAgICAgIGNhc2UgUkVBQ1RfU1RSSUNUX01PREVfVFlQRTpcbiAgICAgICAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX1RZUEU6XG4gICAgICAgICAgICByZXR1cm4gdHlwZTtcblxuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB2YXIgJCR0eXBlb2ZUeXBlID0gdHlwZSAmJiB0eXBlLiQkdHlwZW9mO1xuXG4gICAgICAgICAgICBzd2l0Y2ggKCQkdHlwZW9mVHlwZSkge1xuICAgICAgICAgICAgICBjYXNlIFJFQUNUX0NPTlRFWFRfVFlQRTpcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFOlxuICAgICAgICAgICAgICBjYXNlIFJFQUNUX0xBWllfVFlQRTpcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9NRU1PX1RZUEU6XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfUFJPVklERVJfVFlQRTpcbiAgICAgICAgICAgICAgICByZXR1cm4gJCR0eXBlb2ZUeXBlO1xuXG4gICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuICQkdHlwZW9mO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgY2FzZSBSRUFDVF9QT1JUQUxfVFlQRTpcbiAgICAgICAgcmV0dXJuICQkdHlwZW9mO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59IC8vIEFzeW5jTW9kZSBpcyBkZXByZWNhdGVkIGFsb25nIHdpdGggaXNBc3luY01vZGVcblxudmFyIEFzeW5jTW9kZSA9IFJFQUNUX0FTWU5DX01PREVfVFlQRTtcbnZhciBDb25jdXJyZW50TW9kZSA9IFJFQUNUX0NPTkNVUlJFTlRfTU9ERV9UWVBFO1xudmFyIENvbnRleHRDb25zdW1lciA9IFJFQUNUX0NPTlRFWFRfVFlQRTtcbnZhciBDb250ZXh0UHJvdmlkZXIgPSBSRUFDVF9QUk9WSURFUl9UWVBFO1xudmFyIEVsZW1lbnQgPSBSRUFDVF9FTEVNRU5UX1RZUEU7XG52YXIgRm9yd2FyZFJlZiA9IFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU7XG52YXIgRnJhZ21lbnQgPSBSRUFDVF9GUkFHTUVOVF9UWVBFO1xudmFyIExhenkgPSBSRUFDVF9MQVpZX1RZUEU7XG52YXIgTWVtbyA9IFJFQUNUX01FTU9fVFlQRTtcbnZhciBQb3J0YWwgPSBSRUFDVF9QT1JUQUxfVFlQRTtcbnZhciBQcm9maWxlciA9IFJFQUNUX1BST0ZJTEVSX1RZUEU7XG52YXIgU3RyaWN0TW9kZSA9IFJFQUNUX1NUUklDVF9NT0RFX1RZUEU7XG52YXIgU3VzcGVuc2UgPSBSRUFDVF9TVVNQRU5TRV9UWVBFO1xudmFyIGhhc1dhcm5lZEFib3V0RGVwcmVjYXRlZElzQXN5bmNNb2RlID0gZmFsc2U7IC8vIEFzeW5jTW9kZSBzaG91bGQgYmUgZGVwcmVjYXRlZFxuXG5mdW5jdGlvbiBpc0FzeW5jTW9kZShvYmplY3QpIHtcbiAge1xuICAgIGlmICghaGFzV2FybmVkQWJvdXREZXByZWNhdGVkSXNBc3luY01vZGUpIHtcbiAgICAgIGhhc1dhcm5lZEFib3V0RGVwcmVjYXRlZElzQXN5bmNNb2RlID0gdHJ1ZTsgLy8gVXNpbmcgY29uc29sZVsnd2FybiddIHRvIGV2YWRlIEJhYmVsIGFuZCBFU0xpbnRcblxuICAgICAgY29uc29sZVsnd2FybiddKCdUaGUgUmVhY3RJcy5pc0FzeW5jTW9kZSgpIGFsaWFzIGhhcyBiZWVuIGRlcHJlY2F0ZWQsICcgKyAnYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBSZWFjdCAxNysuIFVwZGF0ZSB5b3VyIGNvZGUgdG8gdXNlICcgKyAnUmVhY3RJcy5pc0NvbmN1cnJlbnRNb2RlKCkgaW5zdGVhZC4gSXQgaGFzIHRoZSBleGFjdCBzYW1lIEFQSS4nKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gaXNDb25jdXJyZW50TW9kZShvYmplY3QpIHx8IHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9BU1lOQ19NT0RFX1RZUEU7XG59XG5mdW5jdGlvbiBpc0NvbmN1cnJlbnRNb2RlKG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX0NPTkNVUlJFTlRfTU9ERV9UWVBFO1xufVxuZnVuY3Rpb24gaXNDb250ZXh0Q29uc3VtZXIob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfQ09OVEVYVF9UWVBFO1xufVxuZnVuY3Rpb24gaXNDb250ZXh0UHJvdmlkZXIob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfUFJPVklERVJfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzRWxlbWVudChvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVvZiBvYmplY3QgPT09ICdvYmplY3QnICYmIG9iamVjdCAhPT0gbnVsbCAmJiBvYmplY3QuJCR0eXBlb2YgPT09IFJFQUNUX0VMRU1FTlRfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzRm9yd2FyZFJlZihvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFO1xufVxuZnVuY3Rpb24gaXNGcmFnbWVudChvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9GUkFHTUVOVF9UWVBFO1xufVxuZnVuY3Rpb24gaXNMYXp5KG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX0xBWllfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzTWVtbyhvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9NRU1PX1RZUEU7XG59XG5mdW5jdGlvbiBpc1BvcnRhbChvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9QT1JUQUxfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzUHJvZmlsZXIob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfUFJPRklMRVJfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzU3RyaWN0TW9kZShvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFO1xufVxuZnVuY3Rpb24gaXNTdXNwZW5zZShvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9TVVNQRU5TRV9UWVBFO1xufVxuXG5leHBvcnRzLkFzeW5jTW9kZSA9IEFzeW5jTW9kZTtcbmV4cG9ydHMuQ29uY3VycmVudE1vZGUgPSBDb25jdXJyZW50TW9kZTtcbmV4cG9ydHMuQ29udGV4dENvbnN1bWVyID0gQ29udGV4dENvbnN1bWVyO1xuZXhwb3J0cy5Db250ZXh0UHJvdmlkZXIgPSBDb250ZXh0UHJvdmlkZXI7XG5leHBvcnRzLkVsZW1lbnQgPSBFbGVtZW50O1xuZXhwb3J0cy5Gb3J3YXJkUmVmID0gRm9yd2FyZFJlZjtcbmV4cG9ydHMuRnJhZ21lbnQgPSBGcmFnbWVudDtcbmV4cG9ydHMuTGF6eSA9IExhenk7XG5leHBvcnRzLk1lbW8gPSBNZW1vO1xuZXhwb3J0cy5Qb3J0YWwgPSBQb3J0YWw7XG5leHBvcnRzLlByb2ZpbGVyID0gUHJvZmlsZXI7XG5leHBvcnRzLlN0cmljdE1vZGUgPSBTdHJpY3RNb2RlO1xuZXhwb3J0cy5TdXNwZW5zZSA9IFN1c3BlbnNlO1xuZXhwb3J0cy5pc0FzeW5jTW9kZSA9IGlzQXN5bmNNb2RlO1xuZXhwb3J0cy5pc0NvbmN1cnJlbnRNb2RlID0gaXNDb25jdXJyZW50TW9kZTtcbmV4cG9ydHMuaXNDb250ZXh0Q29uc3VtZXIgPSBpc0NvbnRleHRDb25zdW1lcjtcbmV4cG9ydHMuaXNDb250ZXh0UHJvdmlkZXIgPSBpc0NvbnRleHRQcm92aWRlcjtcbmV4cG9ydHMuaXNFbGVtZW50ID0gaXNFbGVtZW50O1xuZXhwb3J0cy5pc0ZvcndhcmRSZWYgPSBpc0ZvcndhcmRSZWY7XG5leHBvcnRzLmlzRnJhZ21lbnQgPSBpc0ZyYWdtZW50O1xuZXhwb3J0cy5pc0xhenkgPSBpc0xhenk7XG5leHBvcnRzLmlzTWVtbyA9IGlzTWVtbztcbmV4cG9ydHMuaXNQb3J0YWwgPSBpc1BvcnRhbDtcbmV4cG9ydHMuaXNQcm9maWxlciA9IGlzUHJvZmlsZXI7XG5leHBvcnRzLmlzU3RyaWN0TW9kZSA9IGlzU3RyaWN0TW9kZTtcbmV4cG9ydHMuaXNTdXNwZW5zZSA9IGlzU3VzcGVuc2U7XG5leHBvcnRzLmlzVmFsaWRFbGVtZW50VHlwZSA9IGlzVmFsaWRFbGVtZW50VHlwZTtcbmV4cG9ydHMudHlwZU9mID0gdHlwZU9mO1xuICB9KSgpO1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.development.js\n"); + +/***/ }), + +/***/ "./node_modules/hoist-non-react-statics/node_modules/react-is/index.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/hoist-non-react-statics/node_modules/react-is/index.js ***! + \*****************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ \"./node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvaG9pc3Qtbm9uLXJlYWN0LXN0YXRpY3Mvbm9kZV9tb2R1bGVzL3JlYWN0LWlzL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLElBQUksS0FBcUMsRUFBRSxFQUUxQyxDQUFDO0FBQ0YsRUFBRSxxS0FBeUQ7QUFDM0QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2hvaXN0LW5vbi1yZWFjdC1zdGF0aWNzL25vZGVfbW9kdWxlcy9yZWFjdC1pcy9pbmRleC5qcz9jNmNmIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1pcy5wcm9kdWN0aW9uLm1pbi5qcycpO1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1pcy5kZXZlbG9wbWVudC5qcycpO1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/hoist-non-react-statics/node_modules/react-is/index.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash.throttle/index.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash.throttle/index.js ***! + \***********************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof __webpack_require__.g == 'object' && __webpack_require__.g && __webpack_require__.g.Object === Object && __webpack_require__.g;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = throttle;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLnRocm90dGxlL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0Esd0JBQXdCLHFCQUFNLGdCQUFnQixxQkFBTSxJQUFJLHFCQUFNLHNCQUFzQixxQkFBTTs7QUFFMUY7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFVBQVU7QUFDckIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUSxXQUFXO0FBQzlCLFdBQVcsU0FBUztBQUNwQjtBQUNBLFdBQVcsUUFBUTtBQUNuQjtBQUNBLFdBQVcsU0FBUztBQUNwQjtBQUNBLGFBQWEsVUFBVTtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLCtDQUErQyxpQkFBaUI7QUFDaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFVBQVU7QUFDckIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUSxXQUFXO0FBQzlCLFdBQVcsU0FBUztBQUNwQjtBQUNBLFdBQVcsU0FBUztBQUNwQjtBQUNBLGFBQWEsVUFBVTtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvREFBb0QsbUJBQW1CO0FBQ3ZFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2QsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gudGhyb3R0bGUvaW5kZXguanM/ZDFmMSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGxvZGFzaCAoQ3VzdG9tIEJ1aWxkKSA8aHR0cHM6Ly9sb2Rhc2guY29tLz5cbiAqIEJ1aWxkOiBgbG9kYXNoIG1vZHVsYXJpemUgZXhwb3J0cz1cIm5wbVwiIC1vIC4vYFxuICogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMgPGh0dHBzOi8vanF1ZXJ5Lm9yZy8+XG4gKiBSZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZSA8aHR0cHM6Ly9sb2Rhc2guY29tL2xpY2Vuc2U+XG4gKiBCYXNlZCBvbiBVbmRlcnNjb3JlLmpzIDEuOC4zIDxodHRwOi8vdW5kZXJzY29yZWpzLm9yZy9MSUNFTlNFPlxuICogQ29weXJpZ2h0IEplcmVteSBBc2hrZW5hcywgRG9jdW1lbnRDbG91ZCBhbmQgSW52ZXN0aWdhdGl2ZSBSZXBvcnRlcnMgJiBFZGl0b3JzXG4gKi9cblxuLyoqIFVzZWQgYXMgdGhlIGBUeXBlRXJyb3JgIG1lc3NhZ2UgZm9yIFwiRnVuY3Rpb25zXCIgbWV0aG9kcy4gKi9cbnZhciBGVU5DX0VSUk9SX1RFWFQgPSAnRXhwZWN0ZWQgYSBmdW5jdGlvbic7XG5cbi8qKiBVc2VkIGFzIHJlZmVyZW5jZXMgZm9yIHZhcmlvdXMgYE51bWJlcmAgY29uc3RhbnRzLiAqL1xudmFyIE5BTiA9IDAgLyAwO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgc3ltYm9sVGFnID0gJ1tvYmplY3QgU3ltYm9sXSc7XG5cbi8qKiBVc2VkIHRvIG1hdGNoIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2UuICovXG52YXIgcmVUcmltID0gL15cXHMrfFxccyskL2c7XG5cbi8qKiBVc2VkIHRvIGRldGVjdCBiYWQgc2lnbmVkIGhleGFkZWNpbWFsIHN0cmluZyB2YWx1ZXMuICovXG52YXIgcmVJc0JhZEhleCA9IC9eWy0rXTB4WzAtOWEtZl0rJC9pO1xuXG4vKiogVXNlZCB0byBkZXRlY3QgYmluYXJ5IHN0cmluZyB2YWx1ZXMuICovXG52YXIgcmVJc0JpbmFyeSA9IC9eMGJbMDFdKyQvaTtcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IG9jdGFsIHN0cmluZyB2YWx1ZXMuICovXG52YXIgcmVJc09jdGFsID0gL14wb1swLTddKyQvaTtcblxuLyoqIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIHdpdGhvdXQgYSBkZXBlbmRlbmN5IG9uIGByb290YC4gKi9cbnZhciBmcmVlUGFyc2VJbnQgPSBwYXJzZUludDtcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBnbG9iYWxgIGZyb20gTm9kZS5qcy4gKi9cbnZhciBmcmVlR2xvYmFsID0gdHlwZW9mIGdsb2JhbCA9PSAnb2JqZWN0JyAmJiBnbG9iYWwgJiYgZ2xvYmFsLk9iamVjdCA9PT0gT2JqZWN0ICYmIGdsb2JhbDtcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBzZWxmYC4gKi9cbnZhciBmcmVlU2VsZiA9IHR5cGVvZiBzZWxmID09ICdvYmplY3QnICYmIHNlbGYgJiYgc2VsZi5PYmplY3QgPT09IE9iamVjdCAmJiBzZWxmO1xuXG4vKiogVXNlZCBhcyBhIHJlZmVyZW5jZSB0byB0aGUgZ2xvYmFsIG9iamVjdC4gKi9cbnZhciByb290ID0gZnJlZUdsb2JhbCB8fCBmcmVlU2VsZiB8fCBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKipcbiAqIFVzZWQgdG8gcmVzb2x2ZSB0aGVcbiAqIFtgdG9TdHJpbmdUYWdgXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1vYmplY3QucHJvdG90eXBlLnRvc3RyaW5nKVxuICogb2YgdmFsdWVzLlxuICovXG52YXIgb2JqZWN0VG9TdHJpbmcgPSBvYmplY3RQcm90by50b1N0cmluZztcblxuLyogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xudmFyIG5hdGl2ZU1heCA9IE1hdGgubWF4LFxuICAgIG5hdGl2ZU1pbiA9IE1hdGgubWluO1xuXG4vKipcbiAqIEdldHMgdGhlIHRpbWVzdGFtcCBvZiB0aGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0aGF0IGhhdmUgZWxhcHNlZCBzaW5jZVxuICogdGhlIFVuaXggZXBvY2ggKDEgSmFudWFyeSAxOTcwIDAwOjAwOjAwIFVUQykuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAyLjQuMFxuICogQGNhdGVnb3J5IERhdGVcbiAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHRpbWVzdGFtcC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5kZWZlcihmdW5jdGlvbihzdGFtcCkge1xuICogICBjb25zb2xlLmxvZyhfLm5vdygpIC0gc3RhbXApO1xuICogfSwgXy5ub3coKSk7XG4gKiAvLyA9PiBMb2dzIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGl0IHRvb2sgZm9yIHRoZSBkZWZlcnJlZCBpbnZvY2F0aW9uLlxuICovXG52YXIgbm93ID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiByb290LkRhdGUubm93KCk7XG59O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBkZWJvdW5jZWQgZnVuY3Rpb24gdGhhdCBkZWxheXMgaW52b2tpbmcgYGZ1bmNgIHVudGlsIGFmdGVyIGB3YWl0YFxuICogbWlsbGlzZWNvbmRzIGhhdmUgZWxhcHNlZCBzaW5jZSB0aGUgbGFzdCB0aW1lIHRoZSBkZWJvdW5jZWQgZnVuY3Rpb24gd2FzXG4gKiBpbnZva2VkLiBUaGUgZGVib3VuY2VkIGZ1bmN0aW9uIGNvbWVzIHdpdGggYSBgY2FuY2VsYCBtZXRob2QgdG8gY2FuY2VsXG4gKiBkZWxheWVkIGBmdW5jYCBpbnZvY2F0aW9ucyBhbmQgYSBgZmx1c2hgIG1ldGhvZCB0byBpbW1lZGlhdGVseSBpbnZva2UgdGhlbS5cbiAqIFByb3ZpZGUgYG9wdGlvbnNgIHRvIGluZGljYXRlIHdoZXRoZXIgYGZ1bmNgIHNob3VsZCBiZSBpbnZva2VkIG9uIHRoZVxuICogbGVhZGluZyBhbmQvb3IgdHJhaWxpbmcgZWRnZSBvZiB0aGUgYHdhaXRgIHRpbWVvdXQuIFRoZSBgZnVuY2AgaXMgaW52b2tlZFxuICogd2l0aCB0aGUgbGFzdCBhcmd1bWVudHMgcHJvdmlkZWQgdG8gdGhlIGRlYm91bmNlZCBmdW5jdGlvbi4gU3Vic2VxdWVudFxuICogY2FsbHMgdG8gdGhlIGRlYm91bmNlZCBmdW5jdGlvbiByZXR1cm4gdGhlIHJlc3VsdCBvZiB0aGUgbGFzdCBgZnVuY2BcbiAqIGludm9jYXRpb24uXG4gKlxuICogKipOb3RlOioqIElmIGBsZWFkaW5nYCBhbmQgYHRyYWlsaW5nYCBvcHRpb25zIGFyZSBgdHJ1ZWAsIGBmdW5jYCBpc1xuICogaW52b2tlZCBvbiB0aGUgdHJhaWxpbmcgZWRnZSBvZiB0aGUgdGltZW91dCBvbmx5IGlmIHRoZSBkZWJvdW5jZWQgZnVuY3Rpb25cbiAqIGlzIGludm9rZWQgbW9yZSB0aGFuIG9uY2UgZHVyaW5nIHRoZSBgd2FpdGAgdGltZW91dC5cbiAqXG4gKiBJZiBgd2FpdGAgaXMgYDBgIGFuZCBgbGVhZGluZ2AgaXMgYGZhbHNlYCwgYGZ1bmNgIGludm9jYXRpb24gaXMgZGVmZXJyZWRcbiAqIHVudGlsIHRvIHRoZSBuZXh0IHRpY2ssIHNpbWlsYXIgdG8gYHNldFRpbWVvdXRgIHdpdGggYSB0aW1lb3V0IG9mIGAwYC5cbiAqXG4gKiBTZWUgW0RhdmlkIENvcmJhY2hvJ3MgYXJ0aWNsZV0oaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS9kZWJvdW5jaW5nLXRocm90dGxpbmctZXhwbGFpbmVkLWV4YW1wbGVzLylcbiAqIGZvciBkZXRhaWxzIG92ZXIgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gYF8uZGVib3VuY2VgIGFuZCBgXy50aHJvdHRsZWAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBkZWJvdW5jZS5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbd2FpdD0wXSBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byBkZWxheS5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9ucz17fV0gVGhlIG9wdGlvbnMgb2JqZWN0LlxuICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWFkaW5nPWZhbHNlXVxuICogIFNwZWNpZnkgaW52b2tpbmcgb24gdGhlIGxlYWRpbmcgZWRnZSBvZiB0aGUgdGltZW91dC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5tYXhXYWl0XVxuICogIFRoZSBtYXhpbXVtIHRpbWUgYGZ1bmNgIGlzIGFsbG93ZWQgdG8gYmUgZGVsYXllZCBiZWZvcmUgaXQncyBpbnZva2VkLlxuICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy50cmFpbGluZz10cnVlXVxuICogIFNwZWNpZnkgaW52b2tpbmcgb24gdGhlIHRyYWlsaW5nIGVkZ2Ugb2YgdGhlIHRpbWVvdXQuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBkZWJvdW5jZWQgZnVuY3Rpb24uXG4gKiBAZXhhbXBsZVxuICpcbiAqIC8vIEF2b2lkIGNvc3RseSBjYWxjdWxhdGlvbnMgd2hpbGUgdGhlIHdpbmRvdyBzaXplIGlzIGluIGZsdXguXG4gKiBqUXVlcnkod2luZG93KS5vbigncmVzaXplJywgXy5kZWJvdW5jZShjYWxjdWxhdGVMYXlvdXQsIDE1MCkpO1xuICpcbiAqIC8vIEludm9rZSBgc2VuZE1haWxgIHdoZW4gY2xpY2tlZCwgZGVib3VuY2luZyBzdWJzZXF1ZW50IGNhbGxzLlxuICogalF1ZXJ5KGVsZW1lbnQpLm9uKCdjbGljaycsIF8uZGVib3VuY2Uoc2VuZE1haWwsIDMwMCwge1xuICogICAnbGVhZGluZyc6IHRydWUsXG4gKiAgICd0cmFpbGluZyc6IGZhbHNlXG4gKiB9KSk7XG4gKlxuICogLy8gRW5zdXJlIGBiYXRjaExvZ2AgaXMgaW52b2tlZCBvbmNlIGFmdGVyIDEgc2Vjb25kIG9mIGRlYm91bmNlZCBjYWxscy5cbiAqIHZhciBkZWJvdW5jZWQgPSBfLmRlYm91bmNlKGJhdGNoTG9nLCAyNTAsIHsgJ21heFdhaXQnOiAxMDAwIH0pO1xuICogdmFyIHNvdXJjZSA9IG5ldyBFdmVudFNvdXJjZSgnL3N0cmVhbScpO1xuICogalF1ZXJ5KHNvdXJjZSkub24oJ21lc3NhZ2UnLCBkZWJvdW5jZWQpO1xuICpcbiAqIC8vIENhbmNlbCB0aGUgdHJhaWxpbmcgZGVib3VuY2VkIGludm9jYXRpb24uXG4gKiBqUXVlcnkod2luZG93KS5vbigncG9wc3RhdGUnLCBkZWJvdW5jZWQuY2FuY2VsKTtcbiAqL1xuZnVuY3Rpb24gZGVib3VuY2UoZnVuYywgd2FpdCwgb3B0aW9ucykge1xuICB2YXIgbGFzdEFyZ3MsXG4gICAgICBsYXN0VGhpcyxcbiAgICAgIG1heFdhaXQsXG4gICAgICByZXN1bHQsXG4gICAgICB0aW1lcklkLFxuICAgICAgbGFzdENhbGxUaW1lLFxuICAgICAgbGFzdEludm9rZVRpbWUgPSAwLFxuICAgICAgbGVhZGluZyA9IGZhbHNlLFxuICAgICAgbWF4aW5nID0gZmFsc2UsXG4gICAgICB0cmFpbGluZyA9IHRydWU7XG5cbiAgaWYgKHR5cGVvZiBmdW5jICE9ICdmdW5jdGlvbicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEZVTkNfRVJST1JfVEVYVCk7XG4gIH1cbiAgd2FpdCA9IHRvTnVtYmVyKHdhaXQpIHx8IDA7XG4gIGlmIChpc09iamVjdChvcHRpb25zKSkge1xuICAgIGxlYWRpbmcgPSAhIW9wdGlvbnMubGVhZGluZztcbiAgICBtYXhpbmcgPSAnbWF4V2FpdCcgaW4gb3B0aW9ucztcbiAgICBtYXhXYWl0ID0gbWF4aW5nID8gbmF0aXZlTWF4KHRvTnVtYmVyKG9wdGlvbnMubWF4V2FpdCkgfHwgMCwgd2FpdCkgOiBtYXhXYWl0O1xuICAgIHRyYWlsaW5nID0gJ3RyYWlsaW5nJyBpbiBvcHRpb25zID8gISFvcHRpb25zLnRyYWlsaW5nIDogdHJhaWxpbmc7XG4gIH1cblxuICBmdW5jdGlvbiBpbnZva2VGdW5jKHRpbWUpIHtcbiAgICB2YXIgYXJncyA9IGxhc3RBcmdzLFxuICAgICAgICB0aGlzQXJnID0gbGFzdFRoaXM7XG5cbiAgICBsYXN0QXJncyA9IGxhc3RUaGlzID0gdW5kZWZpbmVkO1xuICAgIGxhc3RJbnZva2VUaW1lID0gdGltZTtcbiAgICByZXN1bHQgPSBmdW5jLmFwcGx5KHRoaXNBcmcsIGFyZ3MpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBmdW5jdGlvbiBsZWFkaW5nRWRnZSh0aW1lKSB7XG4gICAgLy8gUmVzZXQgYW55IGBtYXhXYWl0YCB0aW1lci5cbiAgICBsYXN0SW52b2tlVGltZSA9IHRpbWU7XG4gICAgLy8gU3RhcnQgdGhlIHRpbWVyIGZvciB0aGUgdHJhaWxpbmcgZWRnZS5cbiAgICB0aW1lcklkID0gc2V0VGltZW91dCh0aW1lckV4cGlyZWQsIHdhaXQpO1xuICAgIC8vIEludm9rZSB0aGUgbGVhZGluZyBlZGdlLlxuICAgIHJldHVybiBsZWFkaW5nID8gaW52b2tlRnVuYyh0aW1lKSA6IHJlc3VsdDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlbWFpbmluZ1dhaXQodGltZSkge1xuICAgIHZhciB0aW1lU2luY2VMYXN0Q2FsbCA9IHRpbWUgLSBsYXN0Q2FsbFRpbWUsXG4gICAgICAgIHRpbWVTaW5jZUxhc3RJbnZva2UgPSB0aW1lIC0gbGFzdEludm9rZVRpbWUsXG4gICAgICAgIHJlc3VsdCA9IHdhaXQgLSB0aW1lU2luY2VMYXN0Q2FsbDtcblxuICAgIHJldHVybiBtYXhpbmcgPyBuYXRpdmVNaW4ocmVzdWx0LCBtYXhXYWl0IC0gdGltZVNpbmNlTGFzdEludm9rZSkgOiByZXN1bHQ7XG4gIH1cblxuICBmdW5jdGlvbiBzaG91bGRJbnZva2UodGltZSkge1xuICAgIHZhciB0aW1lU2luY2VMYXN0Q2FsbCA9IHRpbWUgLSBsYXN0Q2FsbFRpbWUsXG4gICAgICAgIHRpbWVTaW5jZUxhc3RJbnZva2UgPSB0aW1lIC0gbGFzdEludm9rZVRpbWU7XG5cbiAgICAvLyBFaXRoZXIgdGhpcyBpcyB0aGUgZmlyc3QgY2FsbCwgYWN0aXZpdHkgaGFzIHN0b3BwZWQgYW5kIHdlJ3JlIGF0IHRoZVxuICAgIC8vIHRyYWlsaW5nIGVkZ2UsIHRoZSBzeXN0ZW0gdGltZSBoYXMgZ29uZSBiYWNrd2FyZHMgYW5kIHdlJ3JlIHRyZWF0aW5nXG4gICAgLy8gaXQgYXMgdGhlIHRyYWlsaW5nIGVkZ2UsIG9yIHdlJ3ZlIGhpdCB0aGUgYG1heFdhaXRgIGxpbWl0LlxuICAgIHJldHVybiAobGFzdENhbGxUaW1lID09PSB1bmRlZmluZWQgfHwgKHRpbWVTaW5jZUxhc3RDYWxsID49IHdhaXQpIHx8XG4gICAgICAodGltZVNpbmNlTGFzdENhbGwgPCAwKSB8fCAobWF4aW5nICYmIHRpbWVTaW5jZUxhc3RJbnZva2UgPj0gbWF4V2FpdCkpO1xuICB9XG5cbiAgZnVuY3Rpb24gdGltZXJFeHBpcmVkKCkge1xuICAgIHZhciB0aW1lID0gbm93KCk7XG4gICAgaWYgKHNob3VsZEludm9rZSh0aW1lKSkge1xuICAgICAgcmV0dXJuIHRyYWlsaW5nRWRnZSh0aW1lKTtcbiAgICB9XG4gICAgLy8gUmVzdGFydCB0aGUgdGltZXIuXG4gICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCByZW1haW5pbmdXYWl0KHRpbWUpKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHRyYWlsaW5nRWRnZSh0aW1lKSB7XG4gICAgdGltZXJJZCA9IHVuZGVmaW5lZDtcblxuICAgIC8vIE9ubHkgaW52b2tlIGlmIHdlIGhhdmUgYGxhc3RBcmdzYCB3aGljaCBtZWFucyBgZnVuY2AgaGFzIGJlZW5cbiAgICAvLyBkZWJvdW5jZWQgYXQgbGVhc3Qgb25jZS5cbiAgICBpZiAodHJhaWxpbmcgJiYgbGFzdEFyZ3MpIHtcbiAgICAgIHJldHVybiBpbnZva2VGdW5jKHRpbWUpO1xuICAgIH1cbiAgICBsYXN0QXJncyA9IGxhc3RUaGlzID0gdW5kZWZpbmVkO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBmdW5jdGlvbiBjYW5jZWwoKSB7XG4gICAgaWYgKHRpbWVySWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRpbWVySWQpO1xuICAgIH1cbiAgICBsYXN0SW52b2tlVGltZSA9IDA7XG4gICAgbGFzdEFyZ3MgPSBsYXN0Q2FsbFRpbWUgPSBsYXN0VGhpcyA9IHRpbWVySWQgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBmdW5jdGlvbiBmbHVzaCgpIHtcbiAgICByZXR1cm4gdGltZXJJZCA9PT0gdW5kZWZpbmVkID8gcmVzdWx0IDogdHJhaWxpbmdFZGdlKG5vdygpKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGRlYm91bmNlZCgpIHtcbiAgICB2YXIgdGltZSA9IG5vdygpLFxuICAgICAgICBpc0ludm9raW5nID0gc2hvdWxkSW52b2tlKHRpbWUpO1xuXG4gICAgbGFzdEFyZ3MgPSBhcmd1bWVudHM7XG4gICAgbGFzdFRoaXMgPSB0aGlzO1xuICAgIGxhc3RDYWxsVGltZSA9IHRpbWU7XG5cbiAgICBpZiAoaXNJbnZva2luZykge1xuICAgICAgaWYgKHRpbWVySWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gbGVhZGluZ0VkZ2UobGFzdENhbGxUaW1lKTtcbiAgICAgIH1cbiAgICAgIGlmIChtYXhpbmcpIHtcbiAgICAgICAgLy8gSGFuZGxlIGludm9jYXRpb25zIGluIGEgdGlnaHQgbG9vcC5cbiAgICAgICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCB3YWl0KTtcbiAgICAgICAgcmV0dXJuIGludm9rZUZ1bmMobGFzdENhbGxUaW1lKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRpbWVySWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCB3YWl0KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICBkZWJvdW5jZWQuY2FuY2VsID0gY2FuY2VsO1xuICBkZWJvdW5jZWQuZmx1c2ggPSBmbHVzaDtcbiAgcmV0dXJuIGRlYm91bmNlZDtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgdGhyb3R0bGVkIGZ1bmN0aW9uIHRoYXQgb25seSBpbnZva2VzIGBmdW5jYCBhdCBtb3N0IG9uY2UgcGVyXG4gKiBldmVyeSBgd2FpdGAgbWlsbGlzZWNvbmRzLiBUaGUgdGhyb3R0bGVkIGZ1bmN0aW9uIGNvbWVzIHdpdGggYSBgY2FuY2VsYFxuICogbWV0aG9kIHRvIGNhbmNlbCBkZWxheWVkIGBmdW5jYCBpbnZvY2F0aW9ucyBhbmQgYSBgZmx1c2hgIG1ldGhvZCB0b1xuICogaW1tZWRpYXRlbHkgaW52b2tlIHRoZW0uIFByb3ZpZGUgYG9wdGlvbnNgIHRvIGluZGljYXRlIHdoZXRoZXIgYGZ1bmNgXG4gKiBzaG91bGQgYmUgaW52b2tlZCBvbiB0aGUgbGVhZGluZyBhbmQvb3IgdHJhaWxpbmcgZWRnZSBvZiB0aGUgYHdhaXRgXG4gKiB0aW1lb3V0LiBUaGUgYGZ1bmNgIGlzIGludm9rZWQgd2l0aCB0aGUgbGFzdCBhcmd1bWVudHMgcHJvdmlkZWQgdG8gdGhlXG4gKiB0aHJvdHRsZWQgZnVuY3Rpb24uIFN1YnNlcXVlbnQgY2FsbHMgdG8gdGhlIHRocm90dGxlZCBmdW5jdGlvbiByZXR1cm4gdGhlXG4gKiByZXN1bHQgb2YgdGhlIGxhc3QgYGZ1bmNgIGludm9jYXRpb24uXG4gKlxuICogKipOb3RlOioqIElmIGBsZWFkaW5nYCBhbmQgYHRyYWlsaW5nYCBvcHRpb25zIGFyZSBgdHJ1ZWAsIGBmdW5jYCBpc1xuICogaW52b2tlZCBvbiB0aGUgdHJhaWxpbmcgZWRnZSBvZiB0aGUgdGltZW91dCBvbmx5IGlmIHRoZSB0aHJvdHRsZWQgZnVuY3Rpb25cbiAqIGlzIGludm9rZWQgbW9yZSB0aGFuIG9uY2UgZHVyaW5nIHRoZSBgd2FpdGAgdGltZW91dC5cbiAqXG4gKiBJZiBgd2FpdGAgaXMgYDBgIGFuZCBgbGVhZGluZ2AgaXMgYGZhbHNlYCwgYGZ1bmNgIGludm9jYXRpb24gaXMgZGVmZXJyZWRcbiAqIHVudGlsIHRvIHRoZSBuZXh0IHRpY2ssIHNpbWlsYXIgdG8gYHNldFRpbWVvdXRgIHdpdGggYSB0aW1lb3V0IG9mIGAwYC5cbiAqXG4gKiBTZWUgW0RhdmlkIENvcmJhY2hvJ3MgYXJ0aWNsZV0oaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS9kZWJvdW5jaW5nLXRocm90dGxpbmctZXhwbGFpbmVkLWV4YW1wbGVzLylcbiAqIGZvciBkZXRhaWxzIG92ZXIgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gYF8udGhyb3R0bGVgIGFuZCBgXy5kZWJvdW5jZWAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byB0aHJvdHRsZS5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbd2FpdD0wXSBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byB0aHJvdHRsZSBpbnZvY2F0aW9ucyB0by5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9ucz17fV0gVGhlIG9wdGlvbnMgb2JqZWN0LlxuICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWFkaW5nPXRydWVdXG4gKiAgU3BlY2lmeSBpbnZva2luZyBvbiB0aGUgbGVhZGluZyBlZGdlIG9mIHRoZSB0aW1lb3V0LlxuICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy50cmFpbGluZz10cnVlXVxuICogIFNwZWNpZnkgaW52b2tpbmcgb24gdGhlIHRyYWlsaW5nIGVkZ2Ugb2YgdGhlIHRpbWVvdXQuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyB0aHJvdHRsZWQgZnVuY3Rpb24uXG4gKiBAZXhhbXBsZVxuICpcbiAqIC8vIEF2b2lkIGV4Y2Vzc2l2ZWx5IHVwZGF0aW5nIHRoZSBwb3NpdGlvbiB3aGlsZSBzY3JvbGxpbmcuXG4gKiBqUXVlcnkod2luZG93KS5vbignc2Nyb2xsJywgXy50aHJvdHRsZSh1cGRhdGVQb3NpdGlvbiwgMTAwKSk7XG4gKlxuICogLy8gSW52b2tlIGByZW5ld1Rva2VuYCB3aGVuIHRoZSBjbGljayBldmVudCBpcyBmaXJlZCwgYnV0IG5vdCBtb3JlIHRoYW4gb25jZSBldmVyeSA1IG1pbnV0ZXMuXG4gKiB2YXIgdGhyb3R0bGVkID0gXy50aHJvdHRsZShyZW5ld1Rva2VuLCAzMDAwMDAsIHsgJ3RyYWlsaW5nJzogZmFsc2UgfSk7XG4gKiBqUXVlcnkoZWxlbWVudCkub24oJ2NsaWNrJywgdGhyb3R0bGVkKTtcbiAqXG4gKiAvLyBDYW5jZWwgdGhlIHRyYWlsaW5nIHRocm90dGxlZCBpbnZvY2F0aW9uLlxuICogalF1ZXJ5KHdpbmRvdykub24oJ3BvcHN0YXRlJywgdGhyb3R0bGVkLmNhbmNlbCk7XG4gKi9cbmZ1bmN0aW9uIHRocm90dGxlKGZ1bmMsIHdhaXQsIG9wdGlvbnMpIHtcbiAgdmFyIGxlYWRpbmcgPSB0cnVlLFxuICAgICAgdHJhaWxpbmcgPSB0cnVlO1xuXG4gIGlmICh0eXBlb2YgZnVuYyAhPSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihGVU5DX0VSUk9SX1RFWFQpO1xuICB9XG4gIGlmIChpc09iamVjdChvcHRpb25zKSkge1xuICAgIGxlYWRpbmcgPSAnbGVhZGluZycgaW4gb3B0aW9ucyA/ICEhb3B0aW9ucy5sZWFkaW5nIDogbGVhZGluZztcbiAgICB0cmFpbGluZyA9ICd0cmFpbGluZycgaW4gb3B0aW9ucyA/ICEhb3B0aW9ucy50cmFpbGluZyA6IHRyYWlsaW5nO1xuICB9XG4gIHJldHVybiBkZWJvdW5jZShmdW5jLCB3YWl0LCB7XG4gICAgJ2xlYWRpbmcnOiBsZWFkaW5nLFxuICAgICdtYXhXYWl0Jzogd2FpdCxcbiAgICAndHJhaWxpbmcnOiB0cmFpbGluZ1xuICB9KTtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyB0aGVcbiAqIFtsYW5ndWFnZSB0eXBlXShodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtZWNtYXNjcmlwdC1sYW5ndWFnZS10eXBlcylcbiAqIG9mIGBPYmplY3RgLiAoZS5nLiBhcnJheXMsIGZ1bmN0aW9ucywgb2JqZWN0cywgcmVnZXhlcywgYG5ldyBOdW1iZXIoMClgLCBhbmQgYG5ldyBTdHJpbmcoJycpYClcbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc09iamVjdCh7fSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdChbMSwgMiwgM10pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3QoXy5ub29wKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0KG51bGwpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNPYmplY3QodmFsdWUpIHtcbiAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gIHJldHVybiAhIXZhbHVlICYmICh0eXBlID09ICdvYmplY3QnIHx8IHR5cGUgPT0gJ2Z1bmN0aW9uJyk7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgb2JqZWN0LWxpa2UuIEEgdmFsdWUgaXMgb2JqZWN0LWxpa2UgaWYgaXQncyBub3QgYG51bGxgXG4gKiBhbmQgaGFzIGEgYHR5cGVvZmAgcmVzdWx0IG9mIFwib2JqZWN0XCIuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgb2JqZWN0LWxpa2UsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc09iamVjdExpa2Uoe30pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3RMaWtlKFsxLCAyLCAzXSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdExpa2UoXy5ub29wKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc09iamVjdExpa2UobnVsbCk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc09iamVjdExpa2UodmFsdWUpIHtcbiAgcmV0dXJuICEhdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09ICdvYmplY3QnO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgU3ltYm9sYCBwcmltaXRpdmUgb3Igb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgc3ltYm9sLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNTeW1ib2woU3ltYm9sLml0ZXJhdG9yKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzU3ltYm9sKCdhYmMnKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzU3ltYm9sKHZhbHVlKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gJ3N5bWJvbCcgfHxcbiAgICAoaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBvYmplY3RUb1N0cmluZy5jYWxsKHZhbHVlKSA9PSBzeW1ib2xUYWcpO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBudW1iZXIuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHByb2Nlc3MuXG4gKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBudW1iZXIuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8udG9OdW1iZXIoMy4yKTtcbiAqIC8vID0+IDMuMlxuICpcbiAqIF8udG9OdW1iZXIoTnVtYmVyLk1JTl9WQUxVRSk7XG4gKiAvLyA9PiA1ZS0zMjRcbiAqXG4gKiBfLnRvTnVtYmVyKEluZmluaXR5KTtcbiAqIC8vID0+IEluZmluaXR5XG4gKlxuICogXy50b051bWJlcignMy4yJyk7XG4gKiAvLyA9PiAzLjJcbiAqL1xuZnVuY3Rpb24gdG9OdW1iZXIodmFsdWUpIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnbnVtYmVyJykge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICBpZiAoaXNTeW1ib2wodmFsdWUpKSB7XG4gICAgcmV0dXJuIE5BTjtcbiAgfVxuICBpZiAoaXNPYmplY3QodmFsdWUpKSB7XG4gICAgdmFyIG90aGVyID0gdHlwZW9mIHZhbHVlLnZhbHVlT2YgPT0gJ2Z1bmN0aW9uJyA/IHZhbHVlLnZhbHVlT2YoKSA6IHZhbHVlO1xuICAgIHZhbHVlID0gaXNPYmplY3Qob3RoZXIpID8gKG90aGVyICsgJycpIDogb3RoZXI7XG4gIH1cbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPSAnc3RyaW5nJykge1xuICAgIHJldHVybiB2YWx1ZSA9PT0gMCA/IHZhbHVlIDogK3ZhbHVlO1xuICB9XG4gIHZhbHVlID0gdmFsdWUucmVwbGFjZShyZVRyaW0sICcnKTtcbiAgdmFyIGlzQmluYXJ5ID0gcmVJc0JpbmFyeS50ZXN0KHZhbHVlKTtcbiAgcmV0dXJuIChpc0JpbmFyeSB8fCByZUlzT2N0YWwudGVzdCh2YWx1ZSkpXG4gICAgPyBmcmVlUGFyc2VJbnQodmFsdWUuc2xpY2UoMiksIGlzQmluYXJ5ID8gMiA6IDgpXG4gICAgOiAocmVJc0JhZEhleC50ZXN0KHZhbHVlKSA/IE5BTiA6ICt2YWx1ZSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdGhyb3R0bGU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash.throttle/index.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2Fblog-details%2Fblog-details-1&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cblog-details%5Cblog-details-1.jsx!": +/*!***************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2Fblog-details%2Fblog-details-1&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cblog-details%5Cblog-details-1.jsx! ***! + \***************************************************************************************************************************************************************************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/blog-details/blog-details-1\",\n function () {\n return __webpack_require__(/*! ./src/pages/blog-details/blog-details-1.jsx */ \"./src/pages/blog-details/blog-details-1.jsx\");\n }\n ]);\n if(true) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/blog-details/blog-details-1\"])\n });\n }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWNsaWVudC1wYWdlcy1sb2FkZXIuanM/cGFnZT0lMkZibG9nLWRldGFpbHMlMkZibG9nLWRldGFpbHMtMSZhYnNvbHV0ZVBhZ2VQYXRoPUMlM0ElNUNVc2VycyU1Q2hwJTVDRGVza3RvcCU1Q2J1c2luZXNzLWh1YiU1Q3NyYyU1Q3BhZ2VzJTVDYmxvZy1kZXRhaWxzJTVDYmxvZy1kZXRhaWxzLTEuanN4IS5qcyIsIm1hcHBpbmdzIjoiO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxtQkFBTyxDQUFDLGdHQUE2QztBQUNwRTtBQUNBO0FBQ0EsT0FBTyxJQUFVO0FBQ2pCLE1BQU0sVUFBVTtBQUNoQjtBQUNBLE9BQU87QUFDUDtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8/OTRjOSJdLCJzb3VyY2VzQ29udGVudCI6WyJcbiAgICAod2luZG93Ll9fTkVYVF9QID0gd2luZG93Ll9fTkVYVF9QIHx8IFtdKS5wdXNoKFtcbiAgICAgIFwiL2Jsb2ctZGV0YWlscy9ibG9nLWRldGFpbHMtMVwiLFxuICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gcmVxdWlyZShcIi4vc3JjL3BhZ2VzL2Jsb2ctZGV0YWlscy9ibG9nLWRldGFpbHMtMS5qc3hcIik7XG4gICAgICB9XG4gICAgXSk7XG4gICAgaWYobW9kdWxlLmhvdCkge1xuICAgICAgbW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgd2luZG93Ll9fTkVYVF9QLnB1c2goW1wiL2Jsb2ctZGV0YWlscy9ibG9nLWRldGFpbHMtMVwiXSlcbiAgICAgIH0pO1xuICAgIH1cbiAgIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2Fblog-details%2Fblog-details-1&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cblog-details%5Cblog-details-1.jsx!\n"); + +/***/ }), + +/***/ "./node_modules/next/link.js": +/*!***********************************!*\ + !*** ./node_modules/next/link.js ***! + \***********************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("module.exports = __webpack_require__(/*! ./dist/client/link */ \"./node_modules/next/dist/client/link.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9saW5rLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBLHlHQUE4QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9saW5rLmpzPzc1YjMiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Rpc3QvY2xpZW50L2xpbmsnKVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/link.js\n"); + +/***/ }), + +/***/ "./node_modules/prop-types/checkPropTypes.js": +/*!***************************************************!*\ + !*** ./node_modules/prop-types/checkPropTypes.js ***! + \***************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\n\n\nvar printWarning = function() {};\n\nif (true) {\n var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ \"./node_modules/prop-types/lib/ReactPropTypesSecret.js\");\n var loggedTypeFailures = {};\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (true) {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (true) {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9jaGVja1Byb3BUeXBlcy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWE7O0FBRWI7O0FBRUEsSUFBSSxJQUFxQztBQUN6Qyw2QkFBNkIsbUJBQU8sQ0FBQyx5RkFBNEI7QUFDakU7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsV0FBVztBQUN0QjtBQUNBO0FBQ0E7QUFDQSxNQUFNLElBQXFDO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2R0FBNkc7QUFDN0c7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0REFBNEQ7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLElBQXFDO0FBQzNDO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9jaGVja1Byb3BUeXBlcy5qcz8yNjI2Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgcHJpbnRXYXJuaW5nID0gZnVuY3Rpb24oKSB7fTtcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgdmFyIFJlYWN0UHJvcFR5cGVzU2VjcmV0ID0gcmVxdWlyZSgnLi9saWIvUmVhY3RQcm9wVHlwZXNTZWNyZXQnKTtcbiAgdmFyIGxvZ2dlZFR5cGVGYWlsdXJlcyA9IHt9O1xuICB2YXIgaGFzID0gRnVuY3Rpb24uY2FsbC5iaW5kKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkpO1xuXG4gIHByaW50V2FybmluZyA9IGZ1bmN0aW9uKHRleHQpIHtcbiAgICB2YXIgbWVzc2FnZSA9ICdXYXJuaW5nOiAnICsgdGV4dDtcbiAgICBpZiAodHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBjb25zb2xlLmVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgLy8gLS0tIFdlbGNvbWUgdG8gZGVidWdnaW5nIFJlYWN0IC0tLVxuICAgICAgLy8gVGhpcyBlcnJvciB3YXMgdGhyb3duIGFzIGEgY29udmVuaWVuY2Ugc28gdGhhdCB5b3UgY2FuIHVzZSB0aGlzIHN0YWNrXG4gICAgICAvLyB0byBmaW5kIHRoZSBjYWxsc2l0ZSB0aGF0IGNhdXNlZCB0aGlzIHdhcm5pbmcgdG8gZmlyZS5cbiAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgICB9IGNhdGNoICh4KSB7fVxuICB9O1xufVxuXG4vKipcbiAqIEFzc2VydCB0aGF0IHRoZSB2YWx1ZXMgbWF0Y2ggd2l0aCB0aGUgdHlwZSBzcGVjcy5cbiAqIEVycm9yIG1lc3NhZ2VzIGFyZSBtZW1vcml6ZWQgYW5kIHdpbGwgb25seSBiZSBzaG93biBvbmNlLlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSB0eXBlU3BlY3MgTWFwIG9mIG5hbWUgdG8gYSBSZWFjdFByb3BUeXBlXG4gKiBAcGFyYW0ge29iamVjdH0gdmFsdWVzIFJ1bnRpbWUgdmFsdWVzIHRoYXQgbmVlZCB0byBiZSB0eXBlLWNoZWNrZWRcbiAqIEBwYXJhbSB7c3RyaW5nfSBsb2NhdGlvbiBlLmcuIFwicHJvcFwiLCBcImNvbnRleHRcIiwgXCJjaGlsZCBjb250ZXh0XCJcbiAqIEBwYXJhbSB7c3RyaW5nfSBjb21wb25lbnROYW1lIE5hbWUgb2YgdGhlIGNvbXBvbmVudCBmb3IgZXJyb3IgbWVzc2FnZXMuXG4gKiBAcGFyYW0gez9GdW5jdGlvbn0gZ2V0U3RhY2sgUmV0dXJucyB0aGUgY29tcG9uZW50IHN0YWNrLlxuICogQHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gY2hlY2tQcm9wVHlwZXModHlwZVNwZWNzLCB2YWx1ZXMsIGxvY2F0aW9uLCBjb21wb25lbnROYW1lLCBnZXRTdGFjaykge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGZvciAodmFyIHR5cGVTcGVjTmFtZSBpbiB0eXBlU3BlY3MpIHtcbiAgICAgIGlmIChoYXModHlwZVNwZWNzLCB0eXBlU3BlY05hbWUpKSB7XG4gICAgICAgIHZhciBlcnJvcjtcbiAgICAgICAgLy8gUHJvcCB0eXBlIHZhbGlkYXRpb24gbWF5IHRocm93LiBJbiBjYXNlIHRoZXkgZG8sIHdlIGRvbid0IHdhbnQgdG9cbiAgICAgICAgLy8gZmFpbCB0aGUgcmVuZGVyIHBoYXNlIHdoZXJlIGl0IGRpZG4ndCBmYWlsIGJlZm9yZS4gU28gd2UgbG9nIGl0LlxuICAgICAgICAvLyBBZnRlciB0aGVzZSBoYXZlIGJlZW4gY2xlYW5lZCB1cCwgd2UnbGwgbGV0IHRoZW0gdGhyb3cuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgLy8gVGhpcyBpcyBpbnRlbnRpb25hbGx5IGFuIGludmFyaWFudCB0aGF0IGdldHMgY2F1Z2h0LiBJdCdzIHRoZSBzYW1lXG4gICAgICAgICAgLy8gYmVoYXZpb3IgYXMgd2l0aG91dCB0aGlzIHN0YXRlbWVudCBleGNlcHQgd2l0aCBhIGJldHRlciBtZXNzYWdlLlxuICAgICAgICAgIGlmICh0eXBlb2YgdHlwZVNwZWNzW3R5cGVTcGVjTmFtZV0gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHZhciBlcnIgPSBFcnJvcihcbiAgICAgICAgICAgICAgKGNvbXBvbmVudE5hbWUgfHwgJ1JlYWN0IGNsYXNzJykgKyAnOiAnICsgbG9jYXRpb24gKyAnIHR5cGUgYCcgKyB0eXBlU3BlY05hbWUgKyAnYCBpcyBpbnZhbGlkOyAnICtcbiAgICAgICAgICAgICAgJ2l0IG11c3QgYmUgYSBmdW5jdGlvbiwgdXN1YWxseSBmcm9tIHRoZSBgcHJvcC10eXBlc2AgcGFja2FnZSwgYnV0IHJlY2VpdmVkIGAnICsgdHlwZW9mIHR5cGVTcGVjc1t0eXBlU3BlY05hbWVdICsgJ2AuJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGVyci5uYW1lID0gJ0ludmFyaWFudCBWaW9sYXRpb24nO1xuICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlcnJvciA9IHR5cGVTcGVjc1t0eXBlU3BlY05hbWVdKHZhbHVlcywgdHlwZVNwZWNOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgbnVsbCwgUmVhY3RQcm9wVHlwZXNTZWNyZXQpO1xuICAgICAgICB9IGNhdGNoIChleCkge1xuICAgICAgICAgIGVycm9yID0gZXg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVycm9yICYmICEoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikpIHtcbiAgICAgICAgICBwcmludFdhcm5pbmcoXG4gICAgICAgICAgICAoY29tcG9uZW50TmFtZSB8fCAnUmVhY3QgY2xhc3MnKSArICc6IHR5cGUgc3BlY2lmaWNhdGlvbiBvZiAnICtcbiAgICAgICAgICAgIGxvY2F0aW9uICsgJyBgJyArIHR5cGVTcGVjTmFtZSArICdgIGlzIGludmFsaWQ7IHRoZSB0eXBlIGNoZWNrZXIgJyArXG4gICAgICAgICAgICAnZnVuY3Rpb24gbXVzdCByZXR1cm4gYG51bGxgIG9yIGFuIGBFcnJvcmAgYnV0IHJldHVybmVkIGEgJyArIHR5cGVvZiBlcnJvciArICcuICcgK1xuICAgICAgICAgICAgJ1lvdSBtYXkgaGF2ZSBmb3Jnb3R0ZW4gdG8gcGFzcyBhbiBhcmd1bWVudCB0byB0aGUgdHlwZSBjaGVja2VyICcgK1xuICAgICAgICAgICAgJ2NyZWF0b3IgKGFycmF5T2YsIGluc3RhbmNlT2YsIG9iamVjdE9mLCBvbmVPZiwgb25lT2ZUeXBlLCBhbmQgJyArXG4gICAgICAgICAgICAnc2hhcGUgYWxsIHJlcXVpcmUgYW4gYXJndW1lbnQpLidcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yICYmICEoZXJyb3IubWVzc2FnZSBpbiBsb2dnZWRUeXBlRmFpbHVyZXMpKSB7XG4gICAgICAgICAgLy8gT25seSBtb25pdG9yIHRoaXMgZmFpbHVyZSBvbmNlIGJlY2F1c2UgdGhlcmUgdGVuZHMgdG8gYmUgYSBsb3Qgb2YgdGhlXG4gICAgICAgICAgLy8gc2FtZSBlcnJvci5cbiAgICAgICAgICBsb2dnZWRUeXBlRmFpbHVyZXNbZXJyb3IubWVzc2FnZV0gPSB0cnVlO1xuXG4gICAgICAgICAgdmFyIHN0YWNrID0gZ2V0U3RhY2sgPyBnZXRTdGFjaygpIDogJyc7XG5cbiAgICAgICAgICBwcmludFdhcm5pbmcoXG4gICAgICAgICAgICAnRmFpbGVkICcgKyBsb2NhdGlvbiArICcgdHlwZTogJyArIGVycm9yLm1lc3NhZ2UgKyAoc3RhY2sgIT0gbnVsbCA/IHN0YWNrIDogJycpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFJlc2V0cyB3YXJuaW5nIGNhY2hlIHdoZW4gdGVzdGluZy5cbiAqXG4gKiBAcHJpdmF0ZVxuICovXG5jaGVja1Byb3BUeXBlcy5yZXNldFdhcm5pbmdDYWNoZSA9IGZ1bmN0aW9uKCkge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGxvZ2dlZFR5cGVGYWlsdXJlcyA9IHt9O1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY2hlY2tQcm9wVHlwZXM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/prop-types/checkPropTypes.js\n"); + +/***/ }), + +/***/ "./node_modules/prop-types/factoryWithTypeCheckers.js": +/*!************************************************************!*\ + !*** ./node_modules/prop-types/factoryWithTypeCheckers.js ***! + \************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\n\n\nvar ReactIs = __webpack_require__(/*! react-is */ \"./node_modules/prop-types/node_modules/react-is/index.js\");\nvar assign = __webpack_require__(/*! object-assign */ \"./node_modules/next/dist/build/polyfills/object-assign.js\");\n\nvar ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ \"./node_modules/prop-types/lib/ReactPropTypesSecret.js\");\nvar checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ \"./node_modules/prop-types/checkPropTypes.js\");\n\nvar has = Function.call.bind(Object.prototype.hasOwnProperty);\nvar printWarning = function() {};\n\nif (true) {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (true) {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if ( true && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (true) {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n true ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9mYWN0b3J5V2l0aFR5cGVDaGVja2Vycy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWE7O0FBRWIsY0FBYyxtQkFBTyxDQUFDLDBFQUFVO0FBQ2hDLGFBQWEsbUJBQU8sQ0FBQyxnRkFBZTs7QUFFcEMsMkJBQTJCLG1CQUFPLENBQUMseUZBQTRCO0FBQy9ELHFCQUFxQixtQkFBTyxDQUFDLHFFQUFrQjs7QUFFL0M7QUFDQTs7QUFFQSxJQUFJLElBQXFDO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQzs7QUFFM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsU0FBUztBQUN0QixjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWLDhCQUE4QjtBQUM5QixRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQkFBK0IsS0FBSztBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULDRCQUE0QjtBQUM1QixPQUFPO0FBQ1A7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxRQUFRLElBQXFDO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVUsU0FBUyxLQUFxQztBQUN4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixzQkFBc0I7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxVQUFVLElBQXFDO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0Esc0JBQXNCLDJCQUEyQjtBQUNqRDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU0sS0FBcUMsNEZBQTRGLENBQU07QUFDN0k7QUFDQTs7QUFFQSxvQkFBb0IsZ0NBQWdDO0FBQ3BEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHNCQUFzQixnQ0FBZ0M7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QjtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9mYWN0b3J5V2l0aFR5cGVDaGVja2Vycy5qcz9iNzZiIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUmVhY3RJcyA9IHJlcXVpcmUoJ3JlYWN0LWlzJyk7XG52YXIgYXNzaWduID0gcmVxdWlyZSgnb2JqZWN0LWFzc2lnbicpO1xuXG52YXIgUmVhY3RQcm9wVHlwZXNTZWNyZXQgPSByZXF1aXJlKCcuL2xpYi9SZWFjdFByb3BUeXBlc1NlY3JldCcpO1xudmFyIGNoZWNrUHJvcFR5cGVzID0gcmVxdWlyZSgnLi9jaGVja1Byb3BUeXBlcycpO1xuXG52YXIgaGFzID0gRnVuY3Rpb24uY2FsbC5iaW5kKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkpO1xudmFyIHByaW50V2FybmluZyA9IGZ1bmN0aW9uKCkge307XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIHByaW50V2FybmluZyA9IGZ1bmN0aW9uKHRleHQpIHtcbiAgICB2YXIgbWVzc2FnZSA9ICdXYXJuaW5nOiAnICsgdGV4dDtcbiAgICBpZiAodHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBjb25zb2xlLmVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgLy8gLS0tIFdlbGNvbWUgdG8gZGVidWdnaW5nIFJlYWN0IC0tLVxuICAgICAgLy8gVGhpcyBlcnJvciB3YXMgdGhyb3duIGFzIGEgY29udmVuaWVuY2Ugc28gdGhhdCB5b3UgY2FuIHVzZSB0aGlzIHN0YWNrXG4gICAgICAvLyB0byBmaW5kIHRoZSBjYWxsc2l0ZSB0aGF0IGNhdXNlZCB0aGlzIHdhcm5pbmcgdG8gZmlyZS5cbiAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgICB9IGNhdGNoICh4KSB7fVxuICB9O1xufVxuXG5mdW5jdGlvbiBlbXB0eUZ1bmN0aW9uVGhhdFJldHVybnNOdWxsKCkge1xuICByZXR1cm4gbnVsbDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihpc1ZhbGlkRWxlbWVudCwgdGhyb3dPbkRpcmVjdEFjY2Vzcykge1xuICAvKiBnbG9iYWwgU3ltYm9sICovXG4gIHZhciBJVEVSQVRPUl9TWU1CT0wgPSB0eXBlb2YgU3ltYm9sID09PSAnZnVuY3Rpb24nICYmIFN5bWJvbC5pdGVyYXRvcjtcbiAgdmFyIEZBVVhfSVRFUkFUT1JfU1lNQk9MID0gJ0BAaXRlcmF0b3InOyAvLyBCZWZvcmUgU3ltYm9sIHNwZWMuXG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGl0ZXJhdG9yIG1ldGhvZCBmdW5jdGlvbiBjb250YWluZWQgb24gdGhlIGl0ZXJhYmxlIG9iamVjdC5cbiAgICpcbiAgICogQmUgc3VyZSB0byBpbnZva2UgdGhlIGZ1bmN0aW9uIHdpdGggdGhlIGl0ZXJhYmxlIGFzIGNvbnRleHQ6XG4gICAqXG4gICAqICAgICB2YXIgaXRlcmF0b3JGbiA9IGdldEl0ZXJhdG9yRm4obXlJdGVyYWJsZSk7XG4gICAqICAgICBpZiAoaXRlcmF0b3JGbikge1xuICAgKiAgICAgICB2YXIgaXRlcmF0b3IgPSBpdGVyYXRvckZuLmNhbGwobXlJdGVyYWJsZSk7XG4gICAqICAgICAgIC4uLlxuICAgKiAgICAgfVxuICAgKlxuICAgKiBAcGFyYW0gez9vYmplY3R9IG1heWJlSXRlcmFibGVcbiAgICogQHJldHVybiB7P2Z1bmN0aW9ufVxuICAgKi9cbiAgZnVuY3Rpb24gZ2V0SXRlcmF0b3JGbihtYXliZUl0ZXJhYmxlKSB7XG4gICAgdmFyIGl0ZXJhdG9yRm4gPSBtYXliZUl0ZXJhYmxlICYmIChJVEVSQVRPUl9TWU1CT0wgJiYgbWF5YmVJdGVyYWJsZVtJVEVSQVRPUl9TWU1CT0xdIHx8IG1heWJlSXRlcmFibGVbRkFVWF9JVEVSQVRPUl9TWU1CT0xdKTtcbiAgICBpZiAodHlwZW9mIGl0ZXJhdG9yRm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiBpdGVyYXRvckZuO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDb2xsZWN0aW9uIG9mIG1ldGhvZHMgdGhhdCBhbGxvdyBkZWNsYXJhdGlvbiBhbmQgdmFsaWRhdGlvbiBvZiBwcm9wcyB0aGF0IGFyZVxuICAgKiBzdXBwbGllZCB0byBSZWFjdCBjb21wb25lbnRzLiBFeGFtcGxlIHVzYWdlOlxuICAgKlxuICAgKiAgIHZhciBQcm9wcyA9IHJlcXVpcmUoJ1JlYWN0UHJvcFR5cGVzJyk7XG4gICAqICAgdmFyIE15QXJ0aWNsZSA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtcbiAgICogICAgIHByb3BUeXBlczoge1xuICAgKiAgICAgICAvLyBBbiBvcHRpb25hbCBzdHJpbmcgcHJvcCBuYW1lZCBcImRlc2NyaXB0aW9uXCIuXG4gICAqICAgICAgIGRlc2NyaXB0aW9uOiBQcm9wcy5zdHJpbmcsXG4gICAqXG4gICAqICAgICAgIC8vIEEgcmVxdWlyZWQgZW51bSBwcm9wIG5hbWVkIFwiY2F0ZWdvcnlcIi5cbiAgICogICAgICAgY2F0ZWdvcnk6IFByb3BzLm9uZU9mKFsnTmV3cycsJ1Bob3RvcyddKS5pc1JlcXVpcmVkLFxuICAgKlxuICAgKiAgICAgICAvLyBBIHByb3AgbmFtZWQgXCJkaWFsb2dcIiB0aGF0IHJlcXVpcmVzIGFuIGluc3RhbmNlIG9mIERpYWxvZy5cbiAgICogICAgICAgZGlhbG9nOiBQcm9wcy5pbnN0YW5jZU9mKERpYWxvZykuaXNSZXF1aXJlZFxuICAgKiAgICAgfSxcbiAgICogICAgIHJlbmRlcjogZnVuY3Rpb24oKSB7IC4uLiB9XG4gICAqICAgfSk7XG4gICAqXG4gICAqIEEgbW9yZSBmb3JtYWwgc3BlY2lmaWNhdGlvbiBvZiBob3cgdGhlc2UgbWV0aG9kcyBhcmUgdXNlZDpcbiAgICpcbiAgICogICB0eXBlIDo9IGFycmF5fGJvb2x8ZnVuY3xvYmplY3R8bnVtYmVyfHN0cmluZ3xvbmVPZihbLi4uXSl8aW5zdGFuY2VPZiguLi4pXG4gICAqICAgZGVjbCA6PSBSZWFjdFByb3BUeXBlcy57dHlwZX0oLmlzUmVxdWlyZWQpP1xuICAgKlxuICAgKiBFYWNoIGFuZCBldmVyeSBkZWNsYXJhdGlvbiBwcm9kdWNlcyBhIGZ1bmN0aW9uIHdpdGggdGhlIHNhbWUgc2lnbmF0dXJlLiBUaGlzXG4gICAqIGFsbG93cyB0aGUgY3JlYXRpb24gb2YgY3VzdG9tIHZhbGlkYXRpb24gZnVuY3Rpb25zLiBGb3IgZXhhbXBsZTpcbiAgICpcbiAgICogIHZhciBNeUxpbmsgPSBSZWFjdC5jcmVhdGVDbGFzcyh7XG4gICAqICAgIHByb3BUeXBlczoge1xuICAgKiAgICAgIC8vIEFuIG9wdGlvbmFsIHN0cmluZyBvciBVUkkgcHJvcCBuYW1lZCBcImhyZWZcIi5cbiAgICogICAgICBocmVmOiBmdW5jdGlvbihwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUpIHtcbiAgICogICAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wTmFtZV07XG4gICAqICAgICAgICBpZiAocHJvcFZhbHVlICE9IG51bGwgJiYgdHlwZW9mIHByb3BWYWx1ZSAhPT0gJ3N0cmluZycgJiZcbiAgICogICAgICAgICAgICAhKHByb3BWYWx1ZSBpbnN0YW5jZW9mIFVSSSkpIHtcbiAgICogICAgICAgICAgcmV0dXJuIG5ldyBFcnJvcihcbiAgICogICAgICAgICAgICAnRXhwZWN0ZWQgYSBzdHJpbmcgb3IgYW4gVVJJIGZvciAnICsgcHJvcE5hbWUgKyAnIGluICcgK1xuICAgKiAgICAgICAgICAgIGNvbXBvbmVudE5hbWVcbiAgICogICAgICAgICAgKTtcbiAgICogICAgICAgIH1cbiAgICogICAgICB9XG4gICAqICAgIH0sXG4gICAqICAgIHJlbmRlcjogZnVuY3Rpb24oKSB7Li4ufVxuICAgKiAgfSk7XG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cblxuICB2YXIgQU5PTllNT1VTID0gJzw8YW5vbnltb3VzPj4nO1xuXG4gIC8vIEltcG9ydGFudCFcbiAgLy8gS2VlcCB0aGlzIGxpc3QgaW4gc3luYyB3aXRoIHByb2R1Y3Rpb24gdmVyc2lvbiBpbiBgLi9mYWN0b3J5V2l0aFRocm93aW5nU2hpbXMuanNgLlxuICB2YXIgUmVhY3RQcm9wVHlwZXMgPSB7XG4gICAgYXJyYXk6IGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyKCdhcnJheScpLFxuICAgIGJvb2w6IGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyKCdib29sZWFuJyksXG4gICAgZnVuYzogY3JlYXRlUHJpbWl0aXZlVHlwZUNoZWNrZXIoJ2Z1bmN0aW9uJyksXG4gICAgbnVtYmVyOiBjcmVhdGVQcmltaXRpdmVUeXBlQ2hlY2tlcignbnVtYmVyJyksXG4gICAgb2JqZWN0OiBjcmVhdGVQcmltaXRpdmVUeXBlQ2hlY2tlcignb2JqZWN0JyksXG4gICAgc3RyaW5nOiBjcmVhdGVQcmltaXRpdmVUeXBlQ2hlY2tlcignc3RyaW5nJyksXG4gICAgc3ltYm9sOiBjcmVhdGVQcmltaXRpdmVUeXBlQ2hlY2tlcignc3ltYm9sJyksXG5cbiAgICBhbnk6IGNyZWF0ZUFueVR5cGVDaGVja2VyKCksXG4gICAgYXJyYXlPZjogY3JlYXRlQXJyYXlPZlR5cGVDaGVja2VyLFxuICAgIGVsZW1lbnQ6IGNyZWF0ZUVsZW1lbnRUeXBlQ2hlY2tlcigpLFxuICAgIGVsZW1lbnRUeXBlOiBjcmVhdGVFbGVtZW50VHlwZVR5cGVDaGVja2VyKCksXG4gICAgaW5zdGFuY2VPZjogY3JlYXRlSW5zdGFuY2VUeXBlQ2hlY2tlcixcbiAgICBub2RlOiBjcmVhdGVOb2RlQ2hlY2tlcigpLFxuICAgIG9iamVjdE9mOiBjcmVhdGVPYmplY3RPZlR5cGVDaGVja2VyLFxuICAgIG9uZU9mOiBjcmVhdGVFbnVtVHlwZUNoZWNrZXIsXG4gICAgb25lT2ZUeXBlOiBjcmVhdGVVbmlvblR5cGVDaGVja2VyLFxuICAgIHNoYXBlOiBjcmVhdGVTaGFwZVR5cGVDaGVja2VyLFxuICAgIGV4YWN0OiBjcmVhdGVTdHJpY3RTaGFwZVR5cGVDaGVja2VyLFxuICB9O1xuXG4gIC8qKlxuICAgKiBpbmxpbmVkIE9iamVjdC5pcyBwb2x5ZmlsbCB0byBhdm9pZCByZXF1aXJpbmcgY29uc3VtZXJzIHNoaXAgdGhlaXIgb3duXG4gICAqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL09iamVjdC9pc1xuICAgKi9cbiAgLyplc2xpbnQtZGlzYWJsZSBuby1zZWxmLWNvbXBhcmUqL1xuICBmdW5jdGlvbiBpcyh4LCB5KSB7XG4gICAgLy8gU2FtZVZhbHVlIGFsZ29yaXRobVxuICAgIGlmICh4ID09PSB5KSB7XG4gICAgICAvLyBTdGVwcyAxLTUsIDctMTBcbiAgICAgIC8vIFN0ZXBzIDYuYi02LmU6ICswICE9IC0wXG4gICAgICByZXR1cm4geCAhPT0gMCB8fCAxIC8geCA9PT0gMSAvIHk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFN0ZXAgNi5hOiBOYU4gPT0gTmFOXG4gICAgICByZXR1cm4geCAhPT0geCAmJiB5ICE9PSB5O1xuICAgIH1cbiAgfVxuICAvKmVzbGludC1lbmFibGUgbm8tc2VsZi1jb21wYXJlKi9cblxuICAvKipcbiAgICogV2UgdXNlIGFuIEVycm9yLWxpa2Ugb2JqZWN0IGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGFzIHBlb3BsZSBtYXkgY2FsbFxuICAgKiBQcm9wVHlwZXMgZGlyZWN0bHkgYW5kIGluc3BlY3QgdGhlaXIgb3V0cHV0LiBIb3dldmVyLCB3ZSBkb24ndCB1c2UgcmVhbFxuICAgKiBFcnJvcnMgYW55bW9yZS4gV2UgZG9uJ3QgaW5zcGVjdCB0aGVpciBzdGFjayBhbnl3YXksIGFuZCBjcmVhdGluZyB0aGVtXG4gICAqIGlzIHByb2hpYml0aXZlbHkgZXhwZW5zaXZlIGlmIHRoZXkgYXJlIGNyZWF0ZWQgdG9vIG9mdGVuLCBzdWNoIGFzIHdoYXRcbiAgICogaGFwcGVucyBpbiBvbmVPZlR5cGUoKSBmb3IgYW55IHR5cGUgYmVmb3JlIHRoZSBvbmUgdGhhdCBtYXRjaGVkLlxuICAgKi9cbiAgZnVuY3Rpb24gUHJvcFR5cGVFcnJvcihtZXNzYWdlKSB7XG4gICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZTtcbiAgICB0aGlzLnN0YWNrID0gJyc7XG4gIH1cbiAgLy8gTWFrZSBgaW5zdGFuY2VvZiBFcnJvcmAgc3RpbGwgd29yayBmb3IgcmV0dXJuZWQgZXJyb3JzLlxuICBQcm9wVHlwZUVycm9yLnByb3RvdHlwZSA9IEVycm9yLnByb3RvdHlwZTtcblxuICBmdW5jdGlvbiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSkge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICB2YXIgbWFudWFsUHJvcFR5cGVDYWxsQ2FjaGUgPSB7fTtcbiAgICAgIHZhciBtYW51YWxQcm9wVHlwZVdhcm5pbmdDb3VudCA9IDA7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNoZWNrVHlwZShpc1JlcXVpcmVkLCBwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUsIHNlY3JldCkge1xuICAgICAgY29tcG9uZW50TmFtZSA9IGNvbXBvbmVudE5hbWUgfHwgQU5PTllNT1VTO1xuICAgICAgcHJvcEZ1bGxOYW1lID0gcHJvcEZ1bGxOYW1lIHx8IHByb3BOYW1lO1xuXG4gICAgICBpZiAoc2VjcmV0ICE9PSBSZWFjdFByb3BUeXBlc1NlY3JldCkge1xuICAgICAgICBpZiAodGhyb3dPbkRpcmVjdEFjY2Vzcykge1xuICAgICAgICAgIC8vIE5ldyBiZWhhdmlvciBvbmx5IGZvciB1c2VycyBvZiBgcHJvcC10eXBlc2AgcGFja2FnZVxuICAgICAgICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoXG4gICAgICAgICAgICAnQ2FsbGluZyBQcm9wVHlwZXMgdmFsaWRhdG9ycyBkaXJlY3RseSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBgcHJvcC10eXBlc2AgcGFja2FnZS4gJyArXG4gICAgICAgICAgICAnVXNlIGBQcm9wVHlwZXMuY2hlY2tQcm9wVHlwZXMoKWAgdG8gY2FsbCB0aGVtLiAnICtcbiAgICAgICAgICAgICdSZWFkIG1vcmUgYXQgaHR0cDovL2ZiLm1lL3VzZS1jaGVjay1wcm9wLXR5cGVzJ1xuICAgICAgICAgICk7XG4gICAgICAgICAgZXJyLm5hbWUgPSAnSW52YXJpYW50IFZpb2xhdGlvbic7XG4gICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICB9IGVsc2UgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgdHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgLy8gT2xkIGJlaGF2aW9yIGZvciBwZW9wbGUgdXNpbmcgUmVhY3QuUHJvcFR5cGVzXG4gICAgICAgICAgdmFyIGNhY2hlS2V5ID0gY29tcG9uZW50TmFtZSArICc6JyArIHByb3BOYW1lO1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICFtYW51YWxQcm9wVHlwZUNhbGxDYWNoZVtjYWNoZUtleV0gJiZcbiAgICAgICAgICAgIC8vIEF2b2lkIHNwYW1taW5nIHRoZSBjb25zb2xlIGJlY2F1c2UgdGhleSBhcmUgb2Z0ZW4gbm90IGFjdGlvbmFibGUgZXhjZXB0IGZvciBsaWIgYXV0aG9yc1xuICAgICAgICAgICAgbWFudWFsUHJvcFR5cGVXYXJuaW5nQ291bnQgPCAzXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBwcmludFdhcm5pbmcoXG4gICAgICAgICAgICAgICdZb3UgYXJlIG1hbnVhbGx5IGNhbGxpbmcgYSBSZWFjdC5Qcm9wVHlwZXMgdmFsaWRhdGlvbiAnICtcbiAgICAgICAgICAgICAgJ2Z1bmN0aW9uIGZvciB0aGUgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBwcm9wIG9uIGAnICsgY29tcG9uZW50TmFtZSAgKyAnYC4gVGhpcyBpcyBkZXByZWNhdGVkICcgK1xuICAgICAgICAgICAgICAnYW5kIHdpbGwgdGhyb3cgaW4gdGhlIHN0YW5kYWxvbmUgYHByb3AtdHlwZXNgIHBhY2thZ2UuICcgK1xuICAgICAgICAgICAgICAnWW91IG1heSBiZSBzZWVpbmcgdGhpcyB3YXJuaW5nIGR1ZSB0byBhIHRoaXJkLXBhcnR5IFByb3BUeXBlcyAnICtcbiAgICAgICAgICAgICAgJ2xpYnJhcnkuIFNlZSBodHRwczovL2ZiLm1lL3JlYWN0LXdhcm5pbmctZG9udC1jYWxsLXByb3B0eXBlcyAnICsgJ2ZvciBkZXRhaWxzLidcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBtYW51YWxQcm9wVHlwZUNhbGxDYWNoZVtjYWNoZUtleV0gPSB0cnVlO1xuICAgICAgICAgICAgbWFudWFsUHJvcFR5cGVXYXJuaW5nQ291bnQrKztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChwcm9wc1twcm9wTmFtZV0gPT0gbnVsbCkge1xuICAgICAgICBpZiAoaXNSZXF1aXJlZCkge1xuICAgICAgICAgIGlmIChwcm9wc1twcm9wTmFtZV0gPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignVGhlICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBpcyBtYXJrZWQgYXMgcmVxdWlyZWQgJyArICgnaW4gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGJ1dCBpdHMgdmFsdWUgaXMgYG51bGxgLicpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdUaGUgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIGlzIG1hcmtlZCBhcyByZXF1aXJlZCBpbiAnICsgKCdgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgYnV0IGl0cyB2YWx1ZSBpcyBgdW5kZWZpbmVkYC4nKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdmFsaWRhdGUocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgY2hhaW5lZENoZWNrVHlwZSA9IGNoZWNrVHlwZS5iaW5kKG51bGwsIGZhbHNlKTtcbiAgICBjaGFpbmVkQ2hlY2tUeXBlLmlzUmVxdWlyZWQgPSBjaGVja1R5cGUuYmluZChudWxsLCB0cnVlKTtcblxuICAgIHJldHVybiBjaGFpbmVkQ2hlY2tUeXBlO1xuICB9XG5cbiAgZnVuY3Rpb24gY3JlYXRlUHJpbWl0aXZlVHlwZUNoZWNrZXIoZXhwZWN0ZWRUeXBlKSB7XG4gICAgZnVuY3Rpb24gdmFsaWRhdGUocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lLCBzZWNyZXQpIHtcbiAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wTmFtZV07XG4gICAgICB2YXIgcHJvcFR5cGUgPSBnZXRQcm9wVHlwZShwcm9wVmFsdWUpO1xuICAgICAgaWYgKHByb3BUeXBlICE9PSBleHBlY3RlZFR5cGUpIHtcbiAgICAgICAgLy8gYHByb3BWYWx1ZWAgYmVpbmcgaW5zdGFuY2Ugb2YsIHNheSwgZGF0ZS9yZWdleHAsIHBhc3MgdGhlICdvYmplY3QnXG4gICAgICAgIC8vIGNoZWNrLCBidXQgd2UgY2FuIG9mZmVyIGEgbW9yZSBwcmVjaXNlIGVycm9yIG1lc3NhZ2UgaGVyZSByYXRoZXIgdGhhblxuICAgICAgICAvLyAnb2YgdHlwZSBgb2JqZWN0YCcuXG4gICAgICAgIHZhciBwcmVjaXNlVHlwZSA9IGdldFByZWNpc2VUeXBlKHByb3BWYWx1ZSk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB0eXBlICcgKyAoJ2AnICsgcHJlY2lzZVR5cGUgKyAnYCBzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgJykgKyAoJ2AnICsgZXhwZWN0ZWRUeXBlICsgJ2AuJykpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVBbnlUeXBlQ2hlY2tlcigpIHtcbiAgICByZXR1cm4gY3JlYXRlQ2hhaW5hYmxlVHlwZUNoZWNrZXIoZW1wdHlGdW5jdGlvblRoYXRSZXR1cm5zTnVsbCk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVBcnJheU9mVHlwZUNoZWNrZXIodHlwZUNoZWNrZXIpIHtcbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIGlmICh0eXBlb2YgdHlwZUNoZWNrZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdQcm9wZXJ0eSBgJyArIHByb3BGdWxsTmFtZSArICdgIG9mIGNvbXBvbmVudCBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCBoYXMgaW52YWxpZCBQcm9wVHlwZSBub3RhdGlvbiBpbnNpZGUgYXJyYXlPZi4nKTtcbiAgICAgIH1cbiAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wTmFtZV07XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkocHJvcFZhbHVlKSkge1xuICAgICAgICB2YXIgcHJvcFR5cGUgPSBnZXRQcm9wVHlwZShwcm9wVmFsdWUpO1xuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIG9mIHR5cGUgJyArICgnYCcgKyBwcm9wVHlwZSArICdgIHN1cHBsaWVkIHRvIGAnICsgY29tcG9uZW50TmFtZSArICdgLCBleHBlY3RlZCBhbiBhcnJheS4nKSk7XG4gICAgICB9XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BWYWx1ZS5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgZXJyb3IgPSB0eXBlQ2hlY2tlcihwcm9wVmFsdWUsIGksIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUgKyAnWycgKyBpICsgJ10nLCBSZWFjdFByb3BUeXBlc1NlY3JldCk7XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnRUeXBlQ2hlY2tlcigpIHtcbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wTmFtZV07XG4gICAgICBpZiAoIWlzVmFsaWRFbGVtZW50KHByb3BWYWx1ZSkpIHtcbiAgICAgICAgdmFyIHByb3BUeXBlID0gZ2V0UHJvcFR5cGUocHJvcFZhbHVlKTtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB0eXBlICcgKyAoJ2AnICsgcHJvcFR5cGUgKyAnYCBzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgYSBzaW5nbGUgUmVhY3RFbGVtZW50LicpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gY3JlYXRlQ2hhaW5hYmxlVHlwZUNoZWNrZXIodmFsaWRhdGUpO1xuICB9XG5cbiAgZnVuY3Rpb24gY3JlYXRlRWxlbWVudFR5cGVUeXBlQ2hlY2tlcigpIHtcbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wTmFtZV07XG4gICAgICBpZiAoIVJlYWN0SXMuaXNWYWxpZEVsZW1lbnRUeXBlKHByb3BWYWx1ZSkpIHtcbiAgICAgICAgdmFyIHByb3BUeXBlID0gZ2V0UHJvcFR5cGUocHJvcFZhbHVlKTtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB0eXBlICcgKyAoJ2AnICsgcHJvcFR5cGUgKyAnYCBzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgYSBzaW5nbGUgUmVhY3RFbGVtZW50IHR5cGUuJykpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVJbnN0YW5jZVR5cGVDaGVja2VyKGV4cGVjdGVkQ2xhc3MpIHtcbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIGlmICghKHByb3BzW3Byb3BOYW1lXSBpbnN0YW5jZW9mIGV4cGVjdGVkQ2xhc3MpKSB7XG4gICAgICAgIHZhciBleHBlY3RlZENsYXNzTmFtZSA9IGV4cGVjdGVkQ2xhc3MubmFtZSB8fCBBTk9OWU1PVVM7XG4gICAgICAgIHZhciBhY3R1YWxDbGFzc05hbWUgPSBnZXRDbGFzc05hbWUocHJvcHNbcHJvcE5hbWVdKTtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB0eXBlICcgKyAoJ2AnICsgYWN0dWFsQ2xhc3NOYW1lICsgJ2Agc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkICcpICsgKCdpbnN0YW5jZSBvZiBgJyArIGV4cGVjdGVkQ2xhc3NOYW1lICsgJ2AuJykpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVFbnVtVHlwZUNoZWNrZXIoZXhwZWN0ZWRWYWx1ZXMpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoZXhwZWN0ZWRWYWx1ZXMpKSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICBwcmludFdhcm5pbmcoXG4gICAgICAgICAgICAnSW52YWxpZCBhcmd1bWVudHMgc3VwcGxpZWQgdG8gb25lT2YsIGV4cGVjdGVkIGFuIGFycmF5LCBnb3QgJyArIGFyZ3VtZW50cy5sZW5ndGggKyAnIGFyZ3VtZW50cy4gJyArXG4gICAgICAgICAgICAnQSBjb21tb24gbWlzdGFrZSBpcyB0byB3cml0ZSBvbmVPZih4LCB5LCB6KSBpbnN0ZWFkIG9mIG9uZU9mKFt4LCB5LCB6XSkuJ1xuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcHJpbnRXYXJuaW5nKCdJbnZhbGlkIGFyZ3VtZW50IHN1cHBsaWVkIHRvIG9uZU9mLCBleHBlY3RlZCBhbiBhcnJheS4nKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGVtcHR5RnVuY3Rpb25UaGF0UmV0dXJuc051bGw7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdmFsaWRhdGUocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lKSB7XG4gICAgICB2YXIgcHJvcFZhbHVlID0gcHJvcHNbcHJvcE5hbWVdO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBleHBlY3RlZFZhbHVlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoaXMocHJvcFZhbHVlLCBleHBlY3RlZFZhbHVlc1tpXSkpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB2YXIgdmFsdWVzU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoZXhwZWN0ZWRWYWx1ZXMsIGZ1bmN0aW9uIHJlcGxhY2VyKGtleSwgdmFsdWUpIHtcbiAgICAgICAgdmFyIHR5cGUgPSBnZXRQcmVjaXNlVHlwZSh2YWx1ZSk7XG4gICAgICAgIGlmICh0eXBlID09PSAnc3ltYm9sJykge1xuICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB2YWx1ZSBgJyArIFN0cmluZyhwcm9wVmFsdWUpICsgJ2AgJyArICgnc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkIG9uZSBvZiAnICsgdmFsdWVzU3RyaW5nICsgJy4nKSk7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVPYmplY3RPZlR5cGVDaGVja2VyKHR5cGVDaGVja2VyKSB7XG4gICAgZnVuY3Rpb24gdmFsaWRhdGUocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lKSB7XG4gICAgICBpZiAodHlwZW9mIHR5cGVDaGVja2VyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignUHJvcGVydHkgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiBjb21wb25lbnQgYCcgKyBjb21wb25lbnROYW1lICsgJ2AgaGFzIGludmFsaWQgUHJvcFR5cGUgbm90YXRpb24gaW5zaWRlIG9iamVjdE9mLicpO1xuICAgICAgfVxuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICAgIHZhciBwcm9wVHlwZSA9IGdldFByb3BUeXBlKHByb3BWYWx1ZSk7XG4gICAgICBpZiAocHJvcFR5cGUgIT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignSW52YWxpZCAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Agb2YgdHlwZSAnICsgKCdgJyArIHByb3BUeXBlICsgJ2Agc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkIGFuIG9iamVjdC4nKSk7XG4gICAgICB9XG4gICAgICBmb3IgKHZhciBrZXkgaW4gcHJvcFZhbHVlKSB7XG4gICAgICAgIGlmIChoYXMocHJvcFZhbHVlLCBrZXkpKSB7XG4gICAgICAgICAgdmFyIGVycm9yID0gdHlwZUNoZWNrZXIocHJvcFZhbHVlLCBrZXksIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUgKyAnLicgKyBrZXksIFJlYWN0UHJvcFR5cGVzU2VjcmV0KTtcbiAgICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVVbmlvblR5cGVDaGVja2VyKGFycmF5T2ZUeXBlQ2hlY2tlcnMpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoYXJyYXlPZlR5cGVDaGVja2VycykpIHtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBwcmludFdhcm5pbmcoJ0ludmFsaWQgYXJndW1lbnQgc3VwcGxpZWQgdG8gb25lT2ZUeXBlLCBleHBlY3RlZCBhbiBpbnN0YW5jZSBvZiBhcnJheS4nKSA6IHZvaWQgMDtcbiAgICAgIHJldHVybiBlbXB0eUZ1bmN0aW9uVGhhdFJldHVybnNOdWxsO1xuICAgIH1cblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXlPZlR5cGVDaGVja2Vycy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGNoZWNrZXIgPSBhcnJheU9mVHlwZUNoZWNrZXJzW2ldO1xuICAgICAgaWYgKHR5cGVvZiBjaGVja2VyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHByaW50V2FybmluZyhcbiAgICAgICAgICAnSW52YWxpZCBhcmd1bWVudCBzdXBwbGllZCB0byBvbmVPZlR5cGUuIEV4cGVjdGVkIGFuIGFycmF5IG9mIGNoZWNrIGZ1bmN0aW9ucywgYnV0ICcgK1xuICAgICAgICAgICdyZWNlaXZlZCAnICsgZ2V0UG9zdGZpeEZvclR5cGVXYXJuaW5nKGNoZWNrZXIpICsgJyBhdCBpbmRleCAnICsgaSArICcuJ1xuICAgICAgICApO1xuICAgICAgICByZXR1cm4gZW1wdHlGdW5jdGlvblRoYXRSZXR1cm5zTnVsbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXlPZlR5cGVDaGVja2Vycy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgY2hlY2tlciA9IGFycmF5T2ZUeXBlQ2hlY2tlcnNbaV07XG4gICAgICAgIGlmIChjaGVja2VyKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSwgUmVhY3RQcm9wVHlwZXNTZWNyZXQpID09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIHN1cHBsaWVkIHRvICcgKyAoJ2AnICsgY29tcG9uZW50TmFtZSArICdgLicpKTtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZU5vZGVDaGVja2VyKCkge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgaWYgKCFpc05vZGUocHJvcHNbcHJvcE5hbWVdKSkge1xuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIHN1cHBsaWVkIHRvICcgKyAoJ2AnICsgY29tcG9uZW50TmFtZSArICdgLCBleHBlY3RlZCBhIFJlYWN0Tm9kZS4nKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZVNoYXBlVHlwZUNoZWNrZXIoc2hhcGVUeXBlcykge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICAgIHZhciBwcm9wVHlwZSA9IGdldFByb3BUeXBlKHByb3BWYWx1ZSk7XG4gICAgICBpZiAocHJvcFR5cGUgIT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignSW52YWxpZCAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Agb2YgdHlwZSBgJyArIHByb3BUeXBlICsgJ2AgJyArICgnc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkIGBvYmplY3RgLicpKTtcbiAgICAgIH1cbiAgICAgIGZvciAodmFyIGtleSBpbiBzaGFwZVR5cGVzKSB7XG4gICAgICAgIHZhciBjaGVja2VyID0gc2hhcGVUeXBlc1trZXldO1xuICAgICAgICBpZiAoIWNoZWNrZXIpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZXJyb3IgPSBjaGVja2VyKHByb3BWYWx1ZSwga2V5LCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lICsgJy4nICsga2V5LCBSZWFjdFByb3BUeXBlc1NlY3JldCk7XG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgIHJldHVybiBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVTdHJpY3RTaGFwZVR5cGVDaGVja2VyKHNoYXBlVHlwZXMpIHtcbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wTmFtZV07XG4gICAgICB2YXIgcHJvcFR5cGUgPSBnZXRQcm9wVHlwZShwcm9wVmFsdWUpO1xuICAgICAgaWYgKHByb3BUeXBlICE9PSAnb2JqZWN0Jykge1xuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIG9mIHR5cGUgYCcgKyBwcm9wVHlwZSArICdgICcgKyAoJ3N1cHBsaWVkIHRvIGAnICsgY29tcG9uZW50TmFtZSArICdgLCBleHBlY3RlZCBgb2JqZWN0YC4nKSk7XG4gICAgICB9XG4gICAgICAvLyBXZSBuZWVkIHRvIGNoZWNrIGFsbCBrZXlzIGluIGNhc2Ugc29tZSBhcmUgcmVxdWlyZWQgYnV0IG1pc3NpbmcgZnJvbVxuICAgICAgLy8gcHJvcHMuXG4gICAgICB2YXIgYWxsS2V5cyA9IGFzc2lnbih7fSwgcHJvcHNbcHJvcE5hbWVdLCBzaGFwZVR5cGVzKTtcbiAgICAgIGZvciAodmFyIGtleSBpbiBhbGxLZXlzKSB7XG4gICAgICAgIHZhciBjaGVja2VyID0gc2hhcGVUeXBlc1trZXldO1xuICAgICAgICBpZiAoIWNoZWNrZXIpIHtcbiAgICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoXG4gICAgICAgICAgICAnSW52YWxpZCAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Aga2V5IGAnICsga2V5ICsgJ2Agc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AuJyArXG4gICAgICAgICAgICAnXFxuQmFkIG9iamVjdDogJyArIEpTT04uc3RyaW5naWZ5KHByb3BzW3Byb3BOYW1lXSwgbnVsbCwgJyAgJykgK1xuICAgICAgICAgICAgJ1xcblZhbGlkIGtleXM6ICcgKyAgSlNPTi5zdHJpbmdpZnkoT2JqZWN0LmtleXMoc2hhcGVUeXBlcyksIG51bGwsICcgICcpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZXJyb3IgPSBjaGVja2VyKHByb3BWYWx1ZSwga2V5LCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lICsgJy4nICsga2V5LCBSZWFjdFByb3BUeXBlc1NlY3JldCk7XG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgIHJldHVybiBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGlzTm9kZShwcm9wVmFsdWUpIHtcbiAgICBzd2l0Y2ggKHR5cGVvZiBwcm9wVmFsdWUpIHtcbiAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgY2FzZSAndW5kZWZpbmVkJzpcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICBjYXNlICdib29sZWFuJzpcbiAgICAgICAgcmV0dXJuICFwcm9wVmFsdWU7XG4gICAgICBjYXNlICdvYmplY3QnOlxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShwcm9wVmFsdWUpKSB7XG4gICAgICAgICAgcmV0dXJuIHByb3BWYWx1ZS5ldmVyeShpc05vZGUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwcm9wVmFsdWUgPT09IG51bGwgfHwgaXNWYWxpZEVsZW1lbnQocHJvcFZhbHVlKSkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGl0ZXJhdG9yRm4gPSBnZXRJdGVyYXRvckZuKHByb3BWYWx1ZSk7XG4gICAgICAgIGlmIChpdGVyYXRvckZuKSB7XG4gICAgICAgICAgdmFyIGl0ZXJhdG9yID0gaXRlcmF0b3JGbi5jYWxsKHByb3BWYWx1ZSk7XG4gICAgICAgICAgdmFyIHN0ZXA7XG4gICAgICAgICAgaWYgKGl0ZXJhdG9yRm4gIT09IHByb3BWYWx1ZS5lbnRyaWVzKSB7XG4gICAgICAgICAgICB3aGlsZSAoIShzdGVwID0gaXRlcmF0b3IubmV4dCgpKS5kb25lKSB7XG4gICAgICAgICAgICAgIGlmICghaXNOb2RlKHN0ZXAudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEl0ZXJhdG9yIHdpbGwgcHJvdmlkZSBlbnRyeSBbayx2XSB0dXBsZXMgcmF0aGVyIHRoYW4gdmFsdWVzLlxuICAgICAgICAgICAgd2hpbGUgKCEoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSkuZG9uZSkge1xuICAgICAgICAgICAgICB2YXIgZW50cnkgPSBzdGVwLnZhbHVlO1xuICAgICAgICAgICAgICBpZiAoZW50cnkpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWlzTm9kZShlbnRyeVsxXSkpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gaXNTeW1ib2wocHJvcFR5cGUsIHByb3BWYWx1ZSkge1xuICAgIC8vIE5hdGl2ZSBTeW1ib2wuXG4gICAgaWYgKHByb3BUeXBlID09PSAnc3ltYm9sJykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gZmFsc3kgdmFsdWUgY2FuJ3QgYmUgYSBTeW1ib2xcbiAgICBpZiAoIXByb3BWYWx1ZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIDE5LjQuMy41IFN5bWJvbC5wcm90b3R5cGVbQEB0b1N0cmluZ1RhZ10gPT09ICdTeW1ib2wnXG4gICAgaWYgKHByb3BWYWx1ZVsnQEB0b1N0cmluZ1RhZyddID09PSAnU3ltYm9sJykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gRmFsbGJhY2sgZm9yIG5vbi1zcGVjIGNvbXBsaWFudCBTeW1ib2xzIHdoaWNoIGFyZSBwb2x5ZmlsbGVkLlxuICAgIGlmICh0eXBlb2YgU3ltYm9sID09PSAnZnVuY3Rpb24nICYmIHByb3BWYWx1ZSBpbnN0YW5jZW9mIFN5bWJvbCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gRXF1aXZhbGVudCBvZiBgdHlwZW9mYCBidXQgd2l0aCBzcGVjaWFsIGhhbmRsaW5nIGZvciBhcnJheSBhbmQgcmVnZXhwLlxuICBmdW5jdGlvbiBnZXRQcm9wVHlwZShwcm9wVmFsdWUpIHtcbiAgICB2YXIgcHJvcFR5cGUgPSB0eXBlb2YgcHJvcFZhbHVlO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHByb3BWYWx1ZSkpIHtcbiAgICAgIHJldHVybiAnYXJyYXknO1xuICAgIH1cbiAgICBpZiAocHJvcFZhbHVlIGluc3RhbmNlb2YgUmVnRXhwKSB7XG4gICAgICAvLyBPbGQgd2Via2l0cyAoYXQgbGVhc3QgdW50aWwgQW5kcm9pZCA0LjApIHJldHVybiAnZnVuY3Rpb24nIHJhdGhlciB0aGFuXG4gICAgICAvLyAnb2JqZWN0JyBmb3IgdHlwZW9mIGEgUmVnRXhwLiBXZSdsbCBub3JtYWxpemUgdGhpcyBoZXJlIHNvIHRoYXQgL2JsYS9cbiAgICAgIC8vIHBhc3NlcyBQcm9wVHlwZXMub2JqZWN0LlxuICAgICAgcmV0dXJuICdvYmplY3QnO1xuICAgIH1cbiAgICBpZiAoaXNTeW1ib2wocHJvcFR5cGUsIHByb3BWYWx1ZSkpIHtcbiAgICAgIHJldHVybiAnc3ltYm9sJztcbiAgICB9XG4gICAgcmV0dXJuIHByb3BUeXBlO1xuICB9XG5cbiAgLy8gVGhpcyBoYW5kbGVzIG1vcmUgdHlwZXMgdGhhbiBgZ2V0UHJvcFR5cGVgLiBPbmx5IHVzZWQgZm9yIGVycm9yIG1lc3NhZ2VzLlxuICAvLyBTZWUgYGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyYC5cbiAgZnVuY3Rpb24gZ2V0UHJlY2lzZVR5cGUocHJvcFZhbHVlKSB7XG4gICAgaWYgKHR5cGVvZiBwcm9wVmFsdWUgPT09ICd1bmRlZmluZWQnIHx8IHByb3BWYWx1ZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuICcnICsgcHJvcFZhbHVlO1xuICAgIH1cbiAgICB2YXIgcHJvcFR5cGUgPSBnZXRQcm9wVHlwZShwcm9wVmFsdWUpO1xuICAgIGlmIChwcm9wVHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGlmIChwcm9wVmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgIHJldHVybiAnZGF0ZSc7XG4gICAgICB9IGVsc2UgaWYgKHByb3BWYWx1ZSBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgICByZXR1cm4gJ3JlZ2V4cCc7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwcm9wVHlwZTtcbiAgfVxuXG4gIC8vIFJldHVybnMgYSBzdHJpbmcgdGhhdCBpcyBwb3N0Zml4ZWQgdG8gYSB3YXJuaW5nIGFib3V0IGFuIGludmFsaWQgdHlwZS5cbiAgLy8gRm9yIGV4YW1wbGUsIFwidW5kZWZpbmVkXCIgb3IgXCJvZiB0eXBlIGFycmF5XCJcbiAgZnVuY3Rpb24gZ2V0UG9zdGZpeEZvclR5cGVXYXJuaW5nKHZhbHVlKSB7XG4gICAgdmFyIHR5cGUgPSBnZXRQcmVjaXNlVHlwZSh2YWx1ZSk7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdhcnJheSc6XG4gICAgICBjYXNlICdvYmplY3QnOlxuICAgICAgICByZXR1cm4gJ2FuICcgKyB0eXBlO1xuICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICBjYXNlICdkYXRlJzpcbiAgICAgIGNhc2UgJ3JlZ2V4cCc6XG4gICAgICAgIHJldHVybiAnYSAnICsgdHlwZTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB0eXBlO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJldHVybnMgY2xhc3MgbmFtZSBvZiB0aGUgb2JqZWN0LCBpZiBhbnkuXG4gIGZ1bmN0aW9uIGdldENsYXNzTmFtZShwcm9wVmFsdWUpIHtcbiAgICBpZiAoIXByb3BWYWx1ZS5jb25zdHJ1Y3RvciB8fCAhcHJvcFZhbHVlLmNvbnN0cnVjdG9yLm5hbWUpIHtcbiAgICAgIHJldHVybiBBTk9OWU1PVVM7XG4gICAgfVxuICAgIHJldHVybiBwcm9wVmFsdWUuY29uc3RydWN0b3IubmFtZTtcbiAgfVxuXG4gIFJlYWN0UHJvcFR5cGVzLmNoZWNrUHJvcFR5cGVzID0gY2hlY2tQcm9wVHlwZXM7XG4gIFJlYWN0UHJvcFR5cGVzLnJlc2V0V2FybmluZ0NhY2hlID0gY2hlY2tQcm9wVHlwZXMucmVzZXRXYXJuaW5nQ2FjaGU7XG4gIFJlYWN0UHJvcFR5cGVzLlByb3BUeXBlcyA9IFJlYWN0UHJvcFR5cGVzO1xuXG4gIHJldHVybiBSZWFjdFByb3BUeXBlcztcbn07XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/prop-types/factoryWithTypeCheckers.js\n"); + +/***/ }), + +/***/ "./node_modules/prop-types/index.js": +/*!******************************************!*\ + !*** ./node_modules/prop-types/index.js ***! + \******************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\nif (true) {\n var ReactIs = __webpack_require__(/*! react-is */ \"./node_modules/prop-types/node_modules/react-is/index.js\");\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = __webpack_require__(/*! ./factoryWithTypeCheckers */ \"./node_modules/prop-types/factoryWithTypeCheckers.js\")(ReactIs.isElement, throwOnDirectAccess);\n} else {}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsSUFBSSxJQUFxQztBQUN6QyxnQkFBZ0IsbUJBQU8sQ0FBQywwRUFBVTs7QUFFbEM7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLG1CQUFPLENBQUMsdUZBQTJCO0FBQ3RELEVBQUUsS0FBSyxFQUlOIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2luZGV4LmpzP2JkZTEiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICB2YXIgUmVhY3RJcyA9IHJlcXVpcmUoJ3JlYWN0LWlzJyk7XG5cbiAgLy8gQnkgZXhwbGljaXRseSB1c2luZyBgcHJvcC10eXBlc2AgeW91IGFyZSBvcHRpbmcgaW50byBuZXcgZGV2ZWxvcG1lbnQgYmVoYXZpb3IuXG4gIC8vIGh0dHA6Ly9mYi5tZS9wcm9wLXR5cGVzLWluLXByb2RcbiAgdmFyIHRocm93T25EaXJlY3RBY2Nlc3MgPSB0cnVlO1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vZmFjdG9yeVdpdGhUeXBlQ2hlY2tlcnMnKShSZWFjdElzLmlzRWxlbWVudCwgdGhyb3dPbkRpcmVjdEFjY2Vzcyk7XG59IGVsc2Uge1xuICAvLyBCeSBleHBsaWNpdGx5IHVzaW5nIGBwcm9wLXR5cGVzYCB5b3UgYXJlIG9wdGluZyBpbnRvIG5ldyBwcm9kdWN0aW9uIGJlaGF2aW9yLlxuICAvLyBodHRwOi8vZmIubWUvcHJvcC10eXBlcy1pbi1wcm9kXG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9mYWN0b3J5V2l0aFRocm93aW5nU2hpbXMnKSgpO1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/prop-types/index.js\n"); + +/***/ }), + +/***/ "./node_modules/prop-types/lib/ReactPropTypesSecret.js": +/*!*************************************************************!*\ + !*** ./node_modules/prop-types/lib/ReactPropTypesSecret.js ***! + \*************************************************************/ +/***/ (function(module) { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\n\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9saWIvUmVhY3RQcm9wVHlwZXNTZWNyZXQuanMuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVhOztBQUViOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2xpYi9SZWFjdFByb3BUeXBlc1NlY3JldC5qcz9lMDk4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUmVhY3RQcm9wVHlwZXNTZWNyZXQgPSAnU0VDUkVUX0RPX05PVF9QQVNTX1RISVNfT1JfWU9VX1dJTExfQkVfRklSRUQnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0UHJvcFR5cGVzU2VjcmV0O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/prop-types/lib/ReactPropTypesSecret.js\n"); + +/***/ }), + +/***/ "./node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js ***! + \***********************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its 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\n\n\n\n\nif (true) {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9ub2RlX21vZHVsZXMvcmVhY3QtaXMvY2pzL3JlYWN0LWlzLmRldmVsb3BtZW50LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWE7Ozs7QUFJYixJQUFJLElBQXFDO0FBQ3pDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkVBQTJFO0FBQzNFOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlEQUFpRDs7QUFFakQ7QUFDQTtBQUNBO0FBQ0Esa0RBQWtEOztBQUVsRDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxpQkFBaUI7QUFDakIsc0JBQXNCO0FBQ3RCLHVCQUF1QjtBQUN2Qix1QkFBdUI7QUFDdkIsZUFBZTtBQUNmLGtCQUFrQjtBQUNsQixnQkFBZ0I7QUFDaEIsWUFBWTtBQUNaLFlBQVk7QUFDWixjQUFjO0FBQ2QsZ0JBQWdCO0FBQ2hCLGtCQUFrQjtBQUNsQixnQkFBZ0I7QUFDaEIsbUJBQW1CO0FBQ25CLHdCQUF3QjtBQUN4Qix5QkFBeUI7QUFDekIseUJBQXlCO0FBQ3pCLGlCQUFpQjtBQUNqQixvQkFBb0I7QUFDcEIsa0JBQWtCO0FBQ2xCLGNBQWM7QUFDZCxjQUFjO0FBQ2QsZ0JBQWdCO0FBQ2hCLGtCQUFrQjtBQUNsQixvQkFBb0I7QUFDcEIsa0JBQWtCO0FBQ2xCLDBCQUEwQjtBQUMxQixjQUFjO0FBQ2QsR0FBRztBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL25vZGVfbW9kdWxlcy9yZWFjdC1pcy9janMvcmVhY3QtaXMuZGV2ZWxvcG1lbnQuanM/Yzk1NyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQGxpY2Vuc2UgUmVhY3QgdjE2LjEzLjFcbiAqIHJlYWN0LWlzLmRldmVsb3BtZW50LmpzXG4gKlxuICogQ29weXJpZ2h0IChjKSBGYWNlYm9vaywgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5cblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAoZnVuY3Rpb24oKSB7XG4ndXNlIHN0cmljdCc7XG5cbi8vIFRoZSBTeW1ib2wgdXNlZCB0byB0YWcgdGhlIFJlYWN0RWxlbWVudC1saWtlIHR5cGVzLiBJZiB0aGVyZSBpcyBubyBuYXRpdmUgU3ltYm9sXG4vLyBub3IgcG9seWZpbGwsIHRoZW4gYSBwbGFpbiBudW1iZXIgaXMgdXNlZCBmb3IgcGVyZm9ybWFuY2UuXG52YXIgaGFzU3ltYm9sID0gdHlwZW9mIFN5bWJvbCA9PT0gJ2Z1bmN0aW9uJyAmJiBTeW1ib2wuZm9yO1xudmFyIFJFQUNUX0VMRU1FTlRfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmVsZW1lbnQnKSA6IDB4ZWFjNztcbnZhciBSRUFDVF9QT1JUQUxfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LnBvcnRhbCcpIDogMHhlYWNhO1xudmFyIFJFQUNUX0ZSQUdNRU5UX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5mcmFnbWVudCcpIDogMHhlYWNiO1xudmFyIFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5zdHJpY3RfbW9kZScpIDogMHhlYWNjO1xudmFyIFJFQUNUX1BST0ZJTEVSX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5wcm9maWxlcicpIDogMHhlYWQyO1xudmFyIFJFQUNUX1BST1ZJREVSX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5wcm92aWRlcicpIDogMHhlYWNkO1xudmFyIFJFQUNUX0NPTlRFWFRfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmNvbnRleHQnKSA6IDB4ZWFjZTsgLy8gVE9ETzogV2UgZG9uJ3QgdXNlIEFzeW5jTW9kZSBvciBDb25jdXJyZW50TW9kZSBhbnltb3JlLiBUaGV5IHdlcmUgdGVtcG9yYXJ5XG4vLyAodW5zdGFibGUpIEFQSXMgdGhhdCBoYXZlIGJlZW4gcmVtb3ZlZC4gQ2FuIHdlIHJlbW92ZSB0aGUgc3ltYm9scz9cblxudmFyIFJFQUNUX0FTWU5DX01PREVfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmFzeW5jX21vZGUnKSA6IDB4ZWFjZjtcbnZhciBSRUFDVF9DT05DVVJSRU5UX01PREVfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmNvbmN1cnJlbnRfbW9kZScpIDogMHhlYWNmO1xudmFyIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5mb3J3YXJkX3JlZicpIDogMHhlYWQwO1xudmFyIFJFQUNUX1NVU1BFTlNFX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5zdXNwZW5zZScpIDogMHhlYWQxO1xudmFyIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LnN1c3BlbnNlX2xpc3QnKSA6IDB4ZWFkODtcbnZhciBSRUFDVF9NRU1PX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5tZW1vJykgOiAweGVhZDM7XG52YXIgUkVBQ1RfTEFaWV9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3QubGF6eScpIDogMHhlYWQ0O1xudmFyIFJFQUNUX0JMT0NLX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5ibG9jaycpIDogMHhlYWQ5O1xudmFyIFJFQUNUX0ZVTkRBTUVOVEFMX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5mdW5kYW1lbnRhbCcpIDogMHhlYWQ1O1xudmFyIFJFQUNUX1JFU1BPTkRFUl9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3QucmVzcG9uZGVyJykgOiAweGVhZDY7XG52YXIgUkVBQ1RfU0NPUEVfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LnNjb3BlJykgOiAweGVhZDc7XG5cbmZ1bmN0aW9uIGlzVmFsaWRFbGVtZW50VHlwZSh0eXBlKSB7XG4gIHJldHVybiB0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicgfHwgLy8gTm90ZTogaXRzIHR5cGVvZiBtaWdodCBiZSBvdGhlciB0aGFuICdzeW1ib2wnIG9yICdudW1iZXInIGlmIGl0J3MgYSBwb2x5ZmlsbC5cbiAgdHlwZSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9DT05DVVJSRU5UX01PREVfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9QUk9GSUxFUl9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgfHwgdHlwZSA9PT0gUkVBQ1RfU1VTUEVOU0VfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUgfHwgdHlwZW9mIHR5cGUgPT09ICdvYmplY3QnICYmIHR5cGUgIT09IG51bGwgJiYgKHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0xBWllfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9NRU1PX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfUFJPVklERVJfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9DT05URVhUX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9GVU5EQU1FTlRBTF9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX1JFU1BPTkRFUl9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX1NDT1BFX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQkxPQ0tfVFlQRSk7XG59XG5cbmZ1bmN0aW9uIHR5cGVPZihvYmplY3QpIHtcbiAgaWYgKHR5cGVvZiBvYmplY3QgPT09ICdvYmplY3QnICYmIG9iamVjdCAhPT0gbnVsbCkge1xuICAgIHZhciAkJHR5cGVvZiA9IG9iamVjdC4kJHR5cGVvZjtcblxuICAgIHN3aXRjaCAoJCR0eXBlb2YpIHtcbiAgICAgIGNhc2UgUkVBQ1RfRUxFTUVOVF9UWVBFOlxuICAgICAgICB2YXIgdHlwZSA9IG9iamVjdC50eXBlO1xuXG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgIGNhc2UgUkVBQ1RfQVNZTkNfTU9ERV9UWVBFOlxuICAgICAgICAgIGNhc2UgUkVBQ1RfQ09OQ1VSUkVOVF9NT0RFX1RZUEU6XG4gICAgICAgICAgY2FzZSBSRUFDVF9GUkFHTUVOVF9UWVBFOlxuICAgICAgICAgIGNhc2UgUkVBQ1RfUFJPRklMRVJfVFlQRTpcbiAgICAgICAgICBjYXNlIFJFQUNUX1NUUklDVF9NT0RFX1RZUEU6XG4gICAgICAgICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9UWVBFOlxuICAgICAgICAgICAgcmV0dXJuIHR5cGU7XG5cbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdmFyICQkdHlwZW9mVHlwZSA9IHR5cGUgJiYgdHlwZS4kJHR5cGVvZjtcblxuICAgICAgICAgICAgc3dpdGNoICgkJHR5cGVvZlR5cGUpIHtcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9DT05URVhUX1RZUEU6XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTpcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOlxuICAgICAgICAgICAgICBjYXNlIFJFQUNUX1BST1ZJREVSX1RZUEU6XG4gICAgICAgICAgICAgICAgcmV0dXJuICQkdHlwZW9mVHlwZTtcblxuICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiAkJHR5cGVvZjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgIGNhc2UgUkVBQ1RfUE9SVEFMX1RZUEU6XG4gICAgICAgIHJldHVybiAkJHR5cGVvZjtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufSAvLyBBc3luY01vZGUgaXMgZGVwcmVjYXRlZCBhbG9uZyB3aXRoIGlzQXN5bmNNb2RlXG5cbnZhciBBc3luY01vZGUgPSBSRUFDVF9BU1lOQ19NT0RFX1RZUEU7XG52YXIgQ29uY3VycmVudE1vZGUgPSBSRUFDVF9DT05DVVJSRU5UX01PREVfVFlQRTtcbnZhciBDb250ZXh0Q29uc3VtZXIgPSBSRUFDVF9DT05URVhUX1RZUEU7XG52YXIgQ29udGV4dFByb3ZpZGVyID0gUkVBQ1RfUFJPVklERVJfVFlQRTtcbnZhciBFbGVtZW50ID0gUkVBQ1RfRUxFTUVOVF9UWVBFO1xudmFyIEZvcndhcmRSZWYgPSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFO1xudmFyIEZyYWdtZW50ID0gUkVBQ1RfRlJBR01FTlRfVFlQRTtcbnZhciBMYXp5ID0gUkVBQ1RfTEFaWV9UWVBFO1xudmFyIE1lbW8gPSBSRUFDVF9NRU1PX1RZUEU7XG52YXIgUG9ydGFsID0gUkVBQ1RfUE9SVEFMX1RZUEU7XG52YXIgUHJvZmlsZXIgPSBSRUFDVF9QUk9GSUxFUl9UWVBFO1xudmFyIFN0cmljdE1vZGUgPSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFO1xudmFyIFN1c3BlbnNlID0gUkVBQ1RfU1VTUEVOU0VfVFlQRTtcbnZhciBoYXNXYXJuZWRBYm91dERlcHJlY2F0ZWRJc0FzeW5jTW9kZSA9IGZhbHNlOyAvLyBBc3luY01vZGUgc2hvdWxkIGJlIGRlcHJlY2F0ZWRcblxuZnVuY3Rpb24gaXNBc3luY01vZGUob2JqZWN0KSB7XG4gIHtcbiAgICBpZiAoIWhhc1dhcm5lZEFib3V0RGVwcmVjYXRlZElzQXN5bmNNb2RlKSB7XG4gICAgICBoYXNXYXJuZWRBYm91dERlcHJlY2F0ZWRJc0FzeW5jTW9kZSA9IHRydWU7IC8vIFVzaW5nIGNvbnNvbGVbJ3dhcm4nXSB0byBldmFkZSBCYWJlbCBhbmQgRVNMaW50XG5cbiAgICAgIGNvbnNvbGVbJ3dhcm4nXSgnVGhlIFJlYWN0SXMuaXNBc3luY01vZGUoKSBhbGlhcyBoYXMgYmVlbiBkZXByZWNhdGVkLCAnICsgJ2FuZCB3aWxsIGJlIHJlbW92ZWQgaW4gUmVhY3QgMTcrLiBVcGRhdGUgeW91ciBjb2RlIHRvIHVzZSAnICsgJ1JlYWN0SXMuaXNDb25jdXJyZW50TW9kZSgpIGluc3RlYWQuIEl0IGhhcyB0aGUgZXhhY3Qgc2FtZSBBUEkuJyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGlzQ29uY3VycmVudE1vZGUob2JqZWN0KSB8fCB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfQVNZTkNfTU9ERV9UWVBFO1xufVxuZnVuY3Rpb24gaXNDb25jdXJyZW50TW9kZShvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9DT05DVVJSRU5UX01PREVfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzQ29udGV4dENvbnN1bWVyKG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX0NPTlRFWFRfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzQ29udGV4dFByb3ZpZGVyKG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX1BST1ZJREVSX1RZUEU7XG59XG5mdW5jdGlvbiBpc0VsZW1lbnQob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlb2Ygb2JqZWN0ID09PSAnb2JqZWN0JyAmJiBvYmplY3QgIT09IG51bGwgJiYgb2JqZWN0LiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEU7XG59XG5mdW5jdGlvbiBpc0ZvcndhcmRSZWYob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzRnJhZ21lbnQob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzTGF6eShvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9MQVpZX1RZUEU7XG59XG5mdW5jdGlvbiBpc01lbW8ob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfTUVNT19UWVBFO1xufVxuZnVuY3Rpb24gaXNQb3J0YWwob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfUE9SVEFMX1RZUEU7XG59XG5mdW5jdGlvbiBpc1Byb2ZpbGVyKG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX1BST0ZJTEVSX1RZUEU7XG59XG5mdW5jdGlvbiBpc1N0cmljdE1vZGUob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfU1RSSUNUX01PREVfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzU3VzcGVuc2Uob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfU1VTUEVOU0VfVFlQRTtcbn1cblxuZXhwb3J0cy5Bc3luY01vZGUgPSBBc3luY01vZGU7XG5leHBvcnRzLkNvbmN1cnJlbnRNb2RlID0gQ29uY3VycmVudE1vZGU7XG5leHBvcnRzLkNvbnRleHRDb25zdW1lciA9IENvbnRleHRDb25zdW1lcjtcbmV4cG9ydHMuQ29udGV4dFByb3ZpZGVyID0gQ29udGV4dFByb3ZpZGVyO1xuZXhwb3J0cy5FbGVtZW50ID0gRWxlbWVudDtcbmV4cG9ydHMuRm9yd2FyZFJlZiA9IEZvcndhcmRSZWY7XG5leHBvcnRzLkZyYWdtZW50ID0gRnJhZ21lbnQ7XG5leHBvcnRzLkxhenkgPSBMYXp5O1xuZXhwb3J0cy5NZW1vID0gTWVtbztcbmV4cG9ydHMuUG9ydGFsID0gUG9ydGFsO1xuZXhwb3J0cy5Qcm9maWxlciA9IFByb2ZpbGVyO1xuZXhwb3J0cy5TdHJpY3RNb2RlID0gU3RyaWN0TW9kZTtcbmV4cG9ydHMuU3VzcGVuc2UgPSBTdXNwZW5zZTtcbmV4cG9ydHMuaXNBc3luY01vZGUgPSBpc0FzeW5jTW9kZTtcbmV4cG9ydHMuaXNDb25jdXJyZW50TW9kZSA9IGlzQ29uY3VycmVudE1vZGU7XG5leHBvcnRzLmlzQ29udGV4dENvbnN1bWVyID0gaXNDb250ZXh0Q29uc3VtZXI7XG5leHBvcnRzLmlzQ29udGV4dFByb3ZpZGVyID0gaXNDb250ZXh0UHJvdmlkZXI7XG5leHBvcnRzLmlzRWxlbWVudCA9IGlzRWxlbWVudDtcbmV4cG9ydHMuaXNGb3J3YXJkUmVmID0gaXNGb3J3YXJkUmVmO1xuZXhwb3J0cy5pc0ZyYWdtZW50ID0gaXNGcmFnbWVudDtcbmV4cG9ydHMuaXNMYXp5ID0gaXNMYXp5O1xuZXhwb3J0cy5pc01lbW8gPSBpc01lbW87XG5leHBvcnRzLmlzUG9ydGFsID0gaXNQb3J0YWw7XG5leHBvcnRzLmlzUHJvZmlsZXIgPSBpc1Byb2ZpbGVyO1xuZXhwb3J0cy5pc1N0cmljdE1vZGUgPSBpc1N0cmljdE1vZGU7XG5leHBvcnRzLmlzU3VzcGVuc2UgPSBpc1N1c3BlbnNlO1xuZXhwb3J0cy5pc1ZhbGlkRWxlbWVudFR5cGUgPSBpc1ZhbGlkRWxlbWVudFR5cGU7XG5leHBvcnRzLnR5cGVPZiA9IHR5cGVPZjtcbiAgfSkoKTtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js\n"); + +/***/ }), + +/***/ "./node_modules/prop-types/node_modules/react-is/index.js": +/*!****************************************************************!*\ + !*** ./node_modules/prop-types/node_modules/react-is/index.js ***! + \****************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ \"./node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9ub2RlX21vZHVsZXMvcmVhY3QtaXMvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsSUFBSSxLQUFxQyxFQUFFLEVBRTFDLENBQUM7QUFDRixFQUFFLHdKQUF5RDtBQUMzRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9ub2RlX21vZHVsZXMvcmVhY3QtaXMvaW5kZXguanM/NWQ1MCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtaXMucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtaXMuZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/prop-types/node_modules/react-is/index.js\n"); + +/***/ }), + +/***/ "./node_modules/react-fast-compare/index.js": +/*!**************************************************!*\ + !*** ./node_modules/react-fast-compare/index.js ***! + \**************************************************/ +/***/ (function(module) { + +"use strict"; +eval("\n\nvar isArray = Array.isArray;\nvar keyList = Object.keys;\nvar hasProp = Object.prototype.hasOwnProperty;\nvar hasElementType = typeof Element !== 'undefined';\n\nfunction equal(a, b) {\n // fast-deep-equal index.js 2.0.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n var arrA = isArray(a)\n , arrB = isArray(b)\n , i\n , length\n , key;\n\n if (arrA && arrB) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n if (arrA != arrB) return false;\n\n var dateA = a instanceof Date\n , dateB = b instanceof Date;\n if (dateA != dateB) return false;\n if (dateA && dateB) return a.getTime() == b.getTime();\n\n var regexpA = a instanceof RegExp\n , regexpB = b instanceof RegExp;\n if (regexpA != regexpB) return false;\n if (regexpA && regexpB) return a.toString() == b.toString();\n\n var keys = keyList(a);\n length = keys.length;\n\n if (length !== keyList(b).length)\n return false;\n\n for (i = length; i-- !== 0;)\n if (!hasProp.call(b, keys[i])) return false;\n // end fast-deep-equal\n\n // start react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element && b instanceof Element)\n return a === b;\n\n // custom handling for React\n for (i = length; i-- !== 0;) {\n key = keys[i];\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of a react element\n continue;\n } else {\n // all other properties should be traversed as usual\n if (!equal(a[key], b[key])) return false;\n }\n }\n // end react-fast-compare\n\n // fast-deep-equal index.js 2.0.1\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function exportedEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if ((error.message && error.message.match(/stack|recursion/i)) || (error.number === -2146828260)) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('Warning: react-fast-compare does not handle circular references.', error.name, error.message);\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtZmFzdC1jb21wYXJlL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLFVBQVU7QUFDakM7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSxxQkFBcUIsVUFBVTtBQUMvQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EscUJBQXFCLFVBQVU7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmVhY3QtZmFzdC1jb21wYXJlL2luZGV4LmpzPzRmNDkiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG52YXIgaXNBcnJheSA9IEFycmF5LmlzQXJyYXk7XG52YXIga2V5TGlzdCA9IE9iamVjdC5rZXlzO1xudmFyIGhhc1Byb3AgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xudmFyIGhhc0VsZW1lbnRUeXBlID0gdHlwZW9mIEVsZW1lbnQgIT09ICd1bmRlZmluZWQnO1xuXG5mdW5jdGlvbiBlcXVhbChhLCBiKSB7XG4gIC8vIGZhc3QtZGVlcC1lcXVhbCBpbmRleC5qcyAyLjAuMVxuICBpZiAoYSA9PT0gYikgcmV0dXJuIHRydWU7XG5cbiAgaWYgKGEgJiYgYiAmJiB0eXBlb2YgYSA9PSAnb2JqZWN0JyAmJiB0eXBlb2YgYiA9PSAnb2JqZWN0Jykge1xuICAgIHZhciBhcnJBID0gaXNBcnJheShhKVxuICAgICAgLCBhcnJCID0gaXNBcnJheShiKVxuICAgICAgLCBpXG4gICAgICAsIGxlbmd0aFxuICAgICAgLCBrZXk7XG5cbiAgICBpZiAoYXJyQSAmJiBhcnJCKSB7XG4gICAgICBsZW5ndGggPSBhLmxlbmd0aDtcbiAgICAgIGlmIChsZW5ndGggIT0gYi5sZW5ndGgpIHJldHVybiBmYWxzZTtcbiAgICAgIGZvciAoaSA9IGxlbmd0aDsgaS0tICE9PSAwOylcbiAgICAgICAgaWYgKCFlcXVhbChhW2ldLCBiW2ldKSkgcmV0dXJuIGZhbHNlO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKGFyckEgIT0gYXJyQikgcmV0dXJuIGZhbHNlO1xuXG4gICAgdmFyIGRhdGVBID0gYSBpbnN0YW5jZW9mIERhdGVcbiAgICAgICwgZGF0ZUIgPSBiIGluc3RhbmNlb2YgRGF0ZTtcbiAgICBpZiAoZGF0ZUEgIT0gZGF0ZUIpIHJldHVybiBmYWxzZTtcbiAgICBpZiAoZGF0ZUEgJiYgZGF0ZUIpIHJldHVybiBhLmdldFRpbWUoKSA9PSBiLmdldFRpbWUoKTtcblxuICAgIHZhciByZWdleHBBID0gYSBpbnN0YW5jZW9mIFJlZ0V4cFxuICAgICAgLCByZWdleHBCID0gYiBpbnN0YW5jZW9mIFJlZ0V4cDtcbiAgICBpZiAocmVnZXhwQSAhPSByZWdleHBCKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKHJlZ2V4cEEgJiYgcmVnZXhwQikgcmV0dXJuIGEudG9TdHJpbmcoKSA9PSBiLnRvU3RyaW5nKCk7XG5cbiAgICB2YXIga2V5cyA9IGtleUxpc3QoYSk7XG4gICAgbGVuZ3RoID0ga2V5cy5sZW5ndGg7XG5cbiAgICBpZiAobGVuZ3RoICE9PSBrZXlMaXN0KGIpLmxlbmd0aClcbiAgICAgIHJldHVybiBmYWxzZTtcblxuICAgIGZvciAoaSA9IGxlbmd0aDsgaS0tICE9PSAwOylcbiAgICAgIGlmICghaGFzUHJvcC5jYWxsKGIsIGtleXNbaV0pKSByZXR1cm4gZmFsc2U7XG4gICAgLy8gZW5kIGZhc3QtZGVlcC1lcXVhbFxuXG4gICAgLy8gc3RhcnQgcmVhY3QtZmFzdC1jb21wYXJlXG4gICAgLy8gY3VzdG9tIGhhbmRsaW5nIGZvciBET00gZWxlbWVudHNcbiAgICBpZiAoaGFzRWxlbWVudFR5cGUgJiYgYSBpbnN0YW5jZW9mIEVsZW1lbnQgJiYgYiBpbnN0YW5jZW9mIEVsZW1lbnQpXG4gICAgICByZXR1cm4gYSA9PT0gYjtcblxuICAgIC8vIGN1c3RvbSBoYW5kbGluZyBmb3IgUmVhY3RcbiAgICBmb3IgKGkgPSBsZW5ndGg7IGktLSAhPT0gMDspIHtcbiAgICAgIGtleSA9IGtleXNbaV07XG4gICAgICBpZiAoa2V5ID09PSAnX293bmVyJyAmJiBhLiQkdHlwZW9mKSB7XG4gICAgICAgIC8vIFJlYWN0LXNwZWNpZmljOiBhdm9pZCB0cmF2ZXJzaW5nIFJlYWN0IGVsZW1lbnRzJyBfb3duZXIuXG4gICAgICAgIC8vICBfb3duZXIgY29udGFpbnMgY2lyY3VsYXIgcmVmZXJlbmNlc1xuICAgICAgICAvLyBhbmQgaXMgbm90IG5lZWRlZCB3aGVuIGNvbXBhcmluZyB0aGUgYWN0dWFsIGVsZW1lbnRzIChhbmQgbm90IHRoZWlyIG93bmVycylcbiAgICAgICAgLy8gLiQkdHlwZW9mIGFuZCAuX3N0b3JlIG9uIGp1c3QgcmVhc29uYWJsZSBtYXJrZXJzIG9mIGEgcmVhY3QgZWxlbWVudFxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGFsbCBvdGhlciBwcm9wZXJ0aWVzIHNob3VsZCBiZSB0cmF2ZXJzZWQgYXMgdXN1YWxcbiAgICAgICAgaWYgKCFlcXVhbChhW2tleV0sIGJba2V5XSkpIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gZW5kIHJlYWN0LWZhc3QtY29tcGFyZVxuXG4gICAgLy8gZmFzdC1kZWVwLWVxdWFsIGluZGV4LmpzIDIuMC4xXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXR1cm4gYSAhPT0gYSAmJiBiICE9PSBiO1xufVxuLy8gZW5kIGZhc3QtZGVlcC1lcXVhbFxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGV4cG9ydGVkRXF1YWwoYSwgYikge1xuICB0cnkge1xuICAgIHJldHVybiBlcXVhbChhLCBiKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBpZiAoKGVycm9yLm1lc3NhZ2UgJiYgZXJyb3IubWVzc2FnZS5tYXRjaCgvc3RhY2t8cmVjdXJzaW9uL2kpKSB8fCAoZXJyb3IubnVtYmVyID09PSAtMjE0NjgyODI2MCkpIHtcbiAgICAgIC8vIHdhcm4gb24gY2lyY3VsYXIgcmVmZXJlbmNlcywgZG9uJ3QgY3Jhc2hcbiAgICAgIC8vIGJyb3dzZXJzIGdpdmUgdGhpcyBkaWZmZXJlbnQgZXJyb3JzIG5hbWUgYW5kIG1lc3NhZ2VzOlxuICAgICAgLy8gY2hyb21lL3NhZmFyaTogXCJSYW5nZUVycm9yXCIsIFwiTWF4aW11bSBjYWxsIHN0YWNrIHNpemUgZXhjZWVkZWRcIlxuICAgICAgLy8gZmlyZWZveDogXCJJbnRlcm5hbEVycm9yXCIsIHRvbyBtdWNoIHJlY3Vyc2lvblwiXG4gICAgICAvLyBlZGdlOiBcIkVycm9yXCIsIFwiT3V0IG9mIHN0YWNrIHNwYWNlXCJcbiAgICAgIGNvbnNvbGUud2FybignV2FybmluZzogcmVhY3QtZmFzdC1jb21wYXJlIGRvZXMgbm90IGhhbmRsZSBjaXJjdWxhciByZWZlcmVuY2VzLicsIGVycm9yLm5hbWUsIGVycm9yLm1lc3NhZ2UpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvLyBzb21lIG90aGVyIGVycm9yLiB3ZSBzaG91bGQgZGVmaW5pdGVseSBrbm93IGFib3V0IHRoZXNlXG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn07XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-fast-compare/index.js\n"); + +/***/ }), + +/***/ "./node_modules/react-scroll/modules/components/Button.js": +/*!****************************************************************!*\ + !*** ./node_modules/react-scroll/modules/components/Button.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollLink = __webpack_require__(/*! ../mixins/scroll-link */ \"./node_modules/react-scroll/modules/mixins/scroll-link.js\");\n\nvar _scrollLink2 = _interopRequireDefault(_scrollLink);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ButtonElement = function (_React$Component) {\n _inherits(ButtonElement, _React$Component);\n\n function ButtonElement() {\n _classCallCheck(this, ButtonElement);\n\n return _possibleConstructorReturn(this, (ButtonElement.__proto__ || Object.getPrototypeOf(ButtonElement)).apply(this, arguments));\n }\n\n _createClass(ButtonElement, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n 'input',\n this.props,\n this.props.children\n );\n }\n }]);\n\n return ButtonElement;\n}(_react2.default.Component);\n\n;\n\nexports[\"default\"] = (0, _scrollLink2.default)(ButtonElement);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2Nyb2xsL21vZHVsZXMvY29tcG9uZW50cy9CdXR0b24uanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDOztBQUVGLGlDQUFpQywyQ0FBMkMsZ0JBQWdCLGtCQUFrQixPQUFPLDJCQUEyQix3REFBd0QsZ0NBQWdDLHVEQUF1RCwrREFBK0QseURBQXlELHFFQUFxRSw2REFBNkQsd0JBQXdCOztBQUVqakIsYUFBYSxtQkFBTyxDQUFDLDRDQUFPOztBQUU1Qjs7QUFFQSxrQkFBa0IsbUJBQU8sQ0FBQyx3RkFBdUI7O0FBRWpEOztBQUVBLHVDQUF1Qyx1Q0FBdUM7O0FBRTlFLGtEQUFrRCwwQ0FBMEM7O0FBRTVGLGtEQUFrRCxhQUFhLHlGQUF5Rjs7QUFFeEosMkNBQTJDLCtEQUErRCx1R0FBdUcseUVBQXlFLGVBQWUsMEVBQTBFLEdBQUc7O0FBRXRYO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQSxDQUFDOztBQUVEOztBQUVBLGtCQUFlIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zY3JvbGwvbW9kdWxlcy9jb21wb25lbnRzL0J1dHRvbi5qcz84ZmEwIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuXG52YXIgX2NyZWF0ZUNsYXNzID0gZnVuY3Rpb24gKCkgeyBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH0gcmV0dXJuIGZ1bmN0aW9uIChDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfTsgfSgpO1xuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfc2Nyb2xsTGluayA9IHJlcXVpcmUoJy4uL21peGlucy9zY3JvbGwtbGluaycpO1xuXG52YXIgX3Njcm9sbExpbmsyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfc2Nyb2xsTGluayk7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHNlbGYsIGNhbGwpIHsgaWYgKCFzZWxmKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gY2FsbCAmJiAodHlwZW9mIGNhbGwgPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGNhbGwgPT09IFwiZnVuY3Rpb25cIikgPyBjYWxsIDogc2VsZjsgfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCBcIiArIHR5cGVvZiBzdXBlckNsYXNzKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7IH1cblxudmFyIEJ1dHRvbkVsZW1lbnQgPSBmdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoQnV0dG9uRWxlbWVudCwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgZnVuY3Rpb24gQnV0dG9uRWxlbWVudCgpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQnV0dG9uRWxlbWVudCk7XG5cbiAgICByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgKEJ1dHRvbkVsZW1lbnQuX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihCdXR0b25FbGVtZW50KSkuYXBwbHkodGhpcywgYXJndW1lbnRzKSk7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoQnV0dG9uRWxlbWVudCwgW3tcbiAgICBrZXk6ICdyZW5kZXInLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICByZXR1cm4gX3JlYWN0Mi5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICdpbnB1dCcsXG4gICAgICAgIHRoaXMucHJvcHMsXG4gICAgICAgIHRoaXMucHJvcHMuY2hpbGRyZW5cbiAgICAgICk7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIEJ1dHRvbkVsZW1lbnQ7XG59KF9yZWFjdDIuZGVmYXVsdC5Db21wb25lbnQpO1xuXG47XG5cbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCBfc2Nyb2xsTGluazIuZGVmYXVsdCkoQnV0dG9uRWxlbWVudCk7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/react-scroll/modules/components/Button.js\n"); + +/***/ }), + +/***/ "./node_modules/react-scroll/modules/components/Element.js": +/*!*****************************************************************!*\ + !*** ./node_modules/react-scroll/modules/components/Element.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollElement = __webpack_require__(/*! ../mixins/scroll-element */ \"./node_modules/react-scroll/modules/mixins/scroll-element.js\");\n\nvar _scrollElement2 = _interopRequireDefault(_scrollElement);\n\nvar _propTypes = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ElementWrapper = function (_React$Component) {\n _inherits(ElementWrapper, _React$Component);\n\n function ElementWrapper() {\n _classCallCheck(this, ElementWrapper);\n\n return _possibleConstructorReturn(this, (ElementWrapper.__proto__ || Object.getPrototypeOf(ElementWrapper)).apply(this, arguments));\n }\n\n _createClass(ElementWrapper, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n // Remove `parentBindings` from props\n var newProps = _extends({}, this.props);\n if (newProps.parentBindings) {\n delete newProps.parentBindings;\n }\n\n return _react2.default.createElement(\n 'div',\n _extends({}, newProps, { ref: function ref(el) {\n _this2.props.parentBindings.domNode = el;\n } }),\n this.props.children\n );\n }\n }]);\n\n return ElementWrapper;\n}(_react2.default.Component);\n\n;\n\nElementWrapper.propTypes = {\n name: _propTypes2.default.string,\n id: _propTypes2.default.string\n};\n\nexports[\"default\"] = (0, _scrollElement2.default)(ElementWrapper);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2Nyb2xsL21vZHVsZXMvY29tcG9uZW50cy9FbGVtZW50LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQzs7QUFFRixvREFBb0QsZ0JBQWdCLHNCQUFzQixPQUFPLDJCQUEyQiwwQkFBMEIseURBQXlELGlDQUFpQzs7QUFFaFAsaUNBQWlDLDJDQUEyQyxnQkFBZ0Isa0JBQWtCLE9BQU8sMkJBQTJCLHdEQUF3RCxnQ0FBZ0MsdURBQXVELCtEQUErRCx5REFBeUQscUVBQXFFLDZEQUE2RCx3QkFBd0I7O0FBRWpqQixhQUFhLG1CQUFPLENBQUMsNENBQU87O0FBRTVCOztBQUVBLHFCQUFxQixtQkFBTyxDQUFDLDhGQUEwQjs7QUFFdkQ7O0FBRUEsaUJBQWlCLG1CQUFPLENBQUMsc0RBQVk7O0FBRXJDOztBQUVBLHVDQUF1Qyx1Q0FBdUM7O0FBRTlFLGtEQUFrRCwwQ0FBMEM7O0FBRTVGLGtEQUFrRCxhQUFhLHlGQUF5Rjs7QUFFeEosMkNBQTJDLCtEQUErRCx1R0FBdUcseUVBQXlFLGVBQWUsMEVBQTBFLEdBQUc7O0FBRXRYO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsZ0NBQWdDO0FBQ2hDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsbUJBQW1CLGNBQWM7QUFDakM7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBLENBQUM7O0FBRUQ7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsa0JBQWUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXNjcm9sbC9tb2R1bGVzL2NvbXBvbmVudHMvRWxlbWVudC5qcz9hMDE0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuXG52YXIgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9O1xuXG52YXIgX2NyZWF0ZUNsYXNzID0gZnVuY3Rpb24gKCkgeyBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH0gcmV0dXJuIGZ1bmN0aW9uIChDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfTsgfSgpO1xuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfc2Nyb2xsRWxlbWVudCA9IHJlcXVpcmUoJy4uL21peGlucy9zY3JvbGwtZWxlbWVudCcpO1xuXG52YXIgX3Njcm9sbEVsZW1lbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfc2Nyb2xsRWxlbWVudCk7XG5cbnZhciBfcHJvcFR5cGVzID0gcmVxdWlyZSgncHJvcC10eXBlcycpO1xuXG52YXIgX3Byb3BUeXBlczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9wcm9wVHlwZXMpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmICghc2VsZikgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIGNhbGwgJiYgKHR5cGVvZiBjYWxsID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpID8gY2FsbCA6IHNlbGY7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgXCIgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBFbGVtZW50V3JhcHBlciA9IGZ1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhFbGVtZW50V3JhcHBlciwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgZnVuY3Rpb24gRWxlbWVudFdyYXBwZXIoKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEVsZW1lbnRXcmFwcGVyKTtcblxuICAgIHJldHVybiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCAoRWxlbWVudFdyYXBwZXIuX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihFbGVtZW50V3JhcHBlcikpLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKEVsZW1lbnRXcmFwcGVyLCBbe1xuICAgIGtleTogJ3JlbmRlcicsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICAvLyBSZW1vdmUgYHBhcmVudEJpbmRpbmdzYCBmcm9tIHByb3BzXG4gICAgICB2YXIgbmV3UHJvcHMgPSBfZXh0ZW5kcyh7fSwgdGhpcy5wcm9wcyk7XG4gICAgICBpZiAobmV3UHJvcHMucGFyZW50QmluZGluZ3MpIHtcbiAgICAgICAgZGVsZXRlIG5ld1Byb3BzLnBhcmVudEJpbmRpbmdzO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gX3JlYWN0Mi5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICdkaXYnLFxuICAgICAgICBfZXh0ZW5kcyh7fSwgbmV3UHJvcHMsIHsgcmVmOiBmdW5jdGlvbiByZWYoZWwpIHtcbiAgICAgICAgICAgIF90aGlzMi5wcm9wcy5wYXJlbnRCaW5kaW5ncy5kb21Ob2RlID0gZWw7XG4gICAgICAgICAgfSB9KSxcbiAgICAgICAgdGhpcy5wcm9wcy5jaGlsZHJlblxuICAgICAgKTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gRWxlbWVudFdyYXBwZXI7XG59KF9yZWFjdDIuZGVmYXVsdC5Db21wb25lbnQpO1xuXG47XG5cbkVsZW1lbnRXcmFwcGVyLnByb3BUeXBlcyA9IHtcbiAgbmFtZTogX3Byb3BUeXBlczIuZGVmYXVsdC5zdHJpbmcsXG4gIGlkOiBfcHJvcFR5cGVzMi5kZWZhdWx0LnN0cmluZ1xufTtcblxuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIF9zY3JvbGxFbGVtZW50Mi5kZWZhdWx0KShFbGVtZW50V3JhcHBlcik7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/react-scroll/modules/components/Element.js\n"); + +/***/ }), + +/***/ "./node_modules/react-scroll/modules/components/Link.js": +/*!**************************************************************!*\ + !*** ./node_modules/react-scroll/modules/components/Link.js ***! + \**************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollLink = __webpack_require__(/*! ../mixins/scroll-link */ \"./node_modules/react-scroll/modules/mixins/scroll-link.js\");\n\nvar _scrollLink2 = _interopRequireDefault(_scrollLink);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar LinkElement = function (_React$Component) {\n _inherits(LinkElement, _React$Component);\n\n function LinkElement() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, LinkElement);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = LinkElement.__proto__ || Object.getPrototypeOf(LinkElement)).call.apply(_ref, [this].concat(args))), _this), _this.render = function () {\n return _react2.default.createElement(\n 'a',\n _this.props,\n _this.props.children\n );\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n return LinkElement;\n}(_react2.default.Component);\n\n;\n\nexports[\"default\"] = (0, _scrollLink2.default)(LinkElement);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2Nyb2xsL21vZHVsZXMvY29tcG9uZW50cy9MaW5rLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQzs7QUFFRixhQUFhLG1CQUFPLENBQUMsNENBQU87O0FBRTVCOztBQUVBLGtCQUFrQixtQkFBTyxDQUFDLHdGQUF1Qjs7QUFFakQ7O0FBRUEsdUNBQXVDLHVDQUF1Qzs7QUFFOUUsa0RBQWtELDBDQUEwQzs7QUFFNUYsa0RBQWtELGFBQWEseUZBQXlGOztBQUV4SiwyQ0FBMkMsK0RBQStELHVHQUF1Ryx5RUFBeUUsZUFBZSwwRUFBMEUsR0FBRzs7QUFFdFg7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBOztBQUVBLG9FQUFvRSxhQUFhO0FBQ2pGO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0EsQ0FBQzs7QUFFRDs7QUFFQSxrQkFBZSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2Nyb2xsL21vZHVsZXMvY29tcG9uZW50cy9MaW5rLmpzPzRkMjQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX3JlYWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0KTtcblxudmFyIF9zY3JvbGxMaW5rID0gcmVxdWlyZSgnLi4vbWl4aW5zL3Njcm9sbC1saW5rJyk7XG5cbnZhciBfc2Nyb2xsTGluazIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9zY3JvbGxMaW5rKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoIXNlbGYpIHsgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpOyB9IHJldHVybiBjYWxsICYmICh0eXBlb2YgY2FsbCA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSA/IGNhbGwgOiBzZWxmOyB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90IFwiICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgTGlua0VsZW1lbnQgPSBmdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoTGlua0VsZW1lbnQsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIGZ1bmN0aW9uIExpbmtFbGVtZW50KCkge1xuICAgIHZhciBfcmVmO1xuXG4gICAgdmFyIF90ZW1wLCBfdGhpcywgX3JldDtcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBMaW5rRWxlbWVudCk7XG5cbiAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgICAgYXJnc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICB9XG5cbiAgICByZXR1cm4gX3JldCA9IChfdGVtcCA9IChfdGhpcyA9IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIChfcmVmID0gTGlua0VsZW1lbnQuX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihMaW5rRWxlbWVudCkpLmNhbGwuYXBwbHkoX3JlZiwgW3RoaXNdLmNvbmNhdChhcmdzKSkpLCBfdGhpcyksIF90aGlzLnJlbmRlciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBfcmVhY3QyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcbiAgICAgICAgJ2EnLFxuICAgICAgICBfdGhpcy5wcm9wcyxcbiAgICAgICAgX3RoaXMucHJvcHMuY2hpbGRyZW5cbiAgICAgICk7XG4gICAgfSwgX3RlbXApLCBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihfdGhpcywgX3JldCk7XG4gIH1cblxuICByZXR1cm4gTGlua0VsZW1lbnQ7XG59KF9yZWFjdDIuZGVmYXVsdC5Db21wb25lbnQpO1xuXG47XG5cbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCBfc2Nyb2xsTGluazIuZGVmYXVsdCkoTGlua0VsZW1lbnQpOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-scroll/modules/components/Link.js\n"); + +/***/ }), + +/***/ "./node_modules/react-scroll/modules/index.js": +/*!****************************************************!*\ + !*** ./node_modules/react-scroll/modules/index.js ***! + \****************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.Helpers = exports.ScrollElement = exports.ScrollLink = exports.animateScroll = exports.scrollSpy = exports.Events = exports.scroller = exports.Element = exports.Button = exports.Link = undefined;\n\nvar _Link = __webpack_require__(/*! ./components/Link.js */ \"./node_modules/react-scroll/modules/components/Link.js\");\n\nvar _Link2 = _interopRequireDefault(_Link);\n\nvar _Button = __webpack_require__(/*! ./components/Button.js */ \"./node_modules/react-scroll/modules/components/Button.js\");\n\nvar _Button2 = _interopRequireDefault(_Button);\n\nvar _Element = __webpack_require__(/*! ./components/Element.js */ \"./node_modules/react-scroll/modules/components/Element.js\");\n\nvar _Element2 = _interopRequireDefault(_Element);\n\nvar _scroller = __webpack_require__(/*! ./mixins/scroller.js */ \"./node_modules/react-scroll/modules/mixins/scroller.js\");\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nvar _scrollEvents = __webpack_require__(/*! ./mixins/scroll-events.js */ \"./node_modules/react-scroll/modules/mixins/scroll-events.js\");\n\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\n\nvar _scrollSpy = __webpack_require__(/*! ./mixins/scroll-spy.js */ \"./node_modules/react-scroll/modules/mixins/scroll-spy.js\");\n\nvar _scrollSpy2 = _interopRequireDefault(_scrollSpy);\n\nvar _animateScroll = __webpack_require__(/*! ./mixins/animate-scroll.js */ \"./node_modules/react-scroll/modules/mixins/animate-scroll.js\");\n\nvar _animateScroll2 = _interopRequireDefault(_animateScroll);\n\nvar _scrollLink = __webpack_require__(/*! ./mixins/scroll-link.js */ \"./node_modules/react-scroll/modules/mixins/scroll-link.js\");\n\nvar _scrollLink2 = _interopRequireDefault(_scrollLink);\n\nvar _scrollElement = __webpack_require__(/*! ./mixins/scroll-element.js */ \"./node_modules/react-scroll/modules/mixins/scroll-element.js\");\n\nvar _scrollElement2 = _interopRequireDefault(_scrollElement);\n\nvar _Helpers = __webpack_require__(/*! ./mixins/Helpers.js */ \"./node_modules/react-scroll/modules/mixins/Helpers.js\");\n\nvar _Helpers2 = _interopRequireDefault(_Helpers);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.Link = _Link2.default;\nexports.Button = _Button2.default;\nexports.Element = _Element2.default;\nexports.scroller = _scroller2.default;\nexports.Events = _scrollEvents2.default;\nexports.scrollSpy = _scrollSpy2.default;\nexports.animateScroll = _animateScroll2.default;\nexports.ScrollLink = _scrollLink2.default;\nexports.ScrollElement = _scrollElement2.default;\nexports.Helpers = _Helpers2.default;\nexports[\"default\"] = { Link: _Link2.default, Button: _Button2.default, Element: _Element2.default, scroller: _scroller2.default, Events: _scrollEvents2.default, scrollSpy: _scrollSpy2.default, animateScroll: _animateScroll2.default, ScrollLink: _scrollLink2.default, ScrollElement: _scrollElement2.default, Helpers: _Helpers2.default };//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2Nyb2xsL21vZHVsZXMvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsZUFBZSxHQUFHLHFCQUFxQixHQUFHLGtCQUFrQixHQUFHLHFCQUFxQixHQUFHLGlCQUFpQixHQUFHLGNBQWMsR0FBRyxnQkFBZ0IsR0FBRyxlQUFlLEdBQUcsY0FBYyxHQUFHLFlBQVk7O0FBRTlMLFlBQVksbUJBQU8sQ0FBQyxvRkFBc0I7O0FBRTFDOztBQUVBLGNBQWMsbUJBQU8sQ0FBQyx3RkFBd0I7O0FBRTlDOztBQUVBLGVBQWUsbUJBQU8sQ0FBQywwRkFBeUI7O0FBRWhEOztBQUVBLGdCQUFnQixtQkFBTyxDQUFDLG9GQUFzQjs7QUFFOUM7O0FBRUEsb0JBQW9CLG1CQUFPLENBQUMsOEZBQTJCOztBQUV2RDs7QUFFQSxpQkFBaUIsbUJBQU8sQ0FBQyx3RkFBd0I7O0FBRWpEOztBQUVBLHFCQUFxQixtQkFBTyxDQUFDLGdHQUE0Qjs7QUFFekQ7O0FBRUEsa0JBQWtCLG1CQUFPLENBQUMsMEZBQXlCOztBQUVuRDs7QUFFQSxxQkFBcUIsbUJBQU8sQ0FBQyxnR0FBNEI7O0FBRXpEOztBQUVBLGVBQWUsbUJBQU8sQ0FBQyxrRkFBcUI7O0FBRTVDOztBQUVBLHVDQUF1Qyx1Q0FBdUM7O0FBRTlFLFlBQVk7QUFDWixjQUFjO0FBQ2QsZUFBZTtBQUNmLGdCQUFnQjtBQUNoQixjQUFjO0FBQ2QsaUJBQWlCO0FBQ2pCLHFCQUFxQjtBQUNyQixrQkFBa0I7QUFDbEIscUJBQXFCO0FBQ3JCLGVBQWU7QUFDZixrQkFBZSxLQUFLIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zY3JvbGwvbW9kdWxlcy9pbmRleC5qcz9hMjRkIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuSGVscGVycyA9IGV4cG9ydHMuU2Nyb2xsRWxlbWVudCA9IGV4cG9ydHMuU2Nyb2xsTGluayA9IGV4cG9ydHMuYW5pbWF0ZVNjcm9sbCA9IGV4cG9ydHMuc2Nyb2xsU3B5ID0gZXhwb3J0cy5FdmVudHMgPSBleHBvcnRzLnNjcm9sbGVyID0gZXhwb3J0cy5FbGVtZW50ID0gZXhwb3J0cy5CdXR0b24gPSBleHBvcnRzLkxpbmsgPSB1bmRlZmluZWQ7XG5cbnZhciBfTGluayA9IHJlcXVpcmUoJy4vY29tcG9uZW50cy9MaW5rLmpzJyk7XG5cbnZhciBfTGluazIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9MaW5rKTtcblxudmFyIF9CdXR0b24gPSByZXF1aXJlKCcuL2NvbXBvbmVudHMvQnV0dG9uLmpzJyk7XG5cbnZhciBfQnV0dG9uMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0J1dHRvbik7XG5cbnZhciBfRWxlbWVudCA9IHJlcXVpcmUoJy4vY29tcG9uZW50cy9FbGVtZW50LmpzJyk7XG5cbnZhciBfRWxlbWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9FbGVtZW50KTtcblxudmFyIF9zY3JvbGxlciA9IHJlcXVpcmUoJy4vbWl4aW5zL3Njcm9sbGVyLmpzJyk7XG5cbnZhciBfc2Nyb2xsZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfc2Nyb2xsZXIpO1xuXG52YXIgX3Njcm9sbEV2ZW50cyA9IHJlcXVpcmUoJy4vbWl4aW5zL3Njcm9sbC1ldmVudHMuanMnKTtcblxudmFyIF9zY3JvbGxFdmVudHMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfc2Nyb2xsRXZlbnRzKTtcblxudmFyIF9zY3JvbGxTcHkgPSByZXF1aXJlKCcuL21peGlucy9zY3JvbGwtc3B5LmpzJyk7XG5cbnZhciBfc2Nyb2xsU3B5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3Njcm9sbFNweSk7XG5cbnZhciBfYW5pbWF0ZVNjcm9sbCA9IHJlcXVpcmUoJy4vbWl4aW5zL2FuaW1hdGUtc2Nyb2xsLmpzJyk7XG5cbnZhciBfYW5pbWF0ZVNjcm9sbDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9hbmltYXRlU2Nyb2xsKTtcblxudmFyIF9zY3JvbGxMaW5rID0gcmVxdWlyZSgnLi9taXhpbnMvc2Nyb2xsLWxpbmsuanMnKTtcblxudmFyIF9zY3JvbGxMaW5rMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3Njcm9sbExpbmspO1xuXG52YXIgX3Njcm9sbEVsZW1lbnQgPSByZXF1aXJlKCcuL21peGlucy9zY3JvbGwtZWxlbWVudC5qcycpO1xuXG52YXIgX3Njcm9sbEVsZW1lbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfc2Nyb2xsRWxlbWVudCk7XG5cbnZhciBfSGVscGVycyA9IHJlcXVpcmUoJy4vbWl4aW5zL0hlbHBlcnMuanMnKTtcblxudmFyIF9IZWxwZXJzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0hlbHBlcnMpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG5leHBvcnRzLkxpbmsgPSBfTGluazIuZGVmYXVsdDtcbmV4cG9ydHMuQnV0dG9uID0gX0J1dHRvbjIuZGVmYXVsdDtcbmV4cG9ydHMuRWxlbWVudCA9IF9FbGVtZW50Mi5kZWZhdWx0O1xuZXhwb3J0cy5zY3JvbGxlciA9IF9zY3JvbGxlcjIuZGVmYXVsdDtcbmV4cG9ydHMuRXZlbnRzID0gX3Njcm9sbEV2ZW50czIuZGVmYXVsdDtcbmV4cG9ydHMuc2Nyb2xsU3B5ID0gX3Njcm9sbFNweTIuZGVmYXVsdDtcbmV4cG9ydHMuYW5pbWF0ZVNjcm9sbCA9IF9hbmltYXRlU2Nyb2xsMi5kZWZhdWx0O1xuZXhwb3J0cy5TY3JvbGxMaW5rID0gX3Njcm9sbExpbmsyLmRlZmF1bHQ7XG5leHBvcnRzLlNjcm9sbEVsZW1lbnQgPSBfc2Nyb2xsRWxlbWVudDIuZGVmYXVsdDtcbmV4cG9ydHMuSGVscGVycyA9IF9IZWxwZXJzMi5kZWZhdWx0O1xuZXhwb3J0cy5kZWZhdWx0ID0geyBMaW5rOiBfTGluazIuZGVmYXVsdCwgQnV0dG9uOiBfQnV0dG9uMi5kZWZhdWx0LCBFbGVtZW50OiBfRWxlbWVudDIuZGVmYXVsdCwgc2Nyb2xsZXI6IF9zY3JvbGxlcjIuZGVmYXVsdCwgRXZlbnRzOiBfc2Nyb2xsRXZlbnRzMi5kZWZhdWx0LCBzY3JvbGxTcHk6IF9zY3JvbGxTcHkyLmRlZmF1bHQsIGFuaW1hdGVTY3JvbGw6IF9hbmltYXRlU2Nyb2xsMi5kZWZhdWx0LCBTY3JvbGxMaW5rOiBfc2Nyb2xsTGluazIuZGVmYXVsdCwgU2Nyb2xsRWxlbWVudDogX3Njcm9sbEVsZW1lbnQyLmRlZmF1bHQsIEhlbHBlcnM6IF9IZWxwZXJzMi5kZWZhdWx0IH07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/react-scroll/modules/index.js\n"); + +/***/ }), + +/***/ "./node_modules/react-scroll/modules/mixins/Helpers.js": +/*!*************************************************************!*\ + !*** ./node_modules/react-scroll/modules/mixins/Helpers.js ***! + \*************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("\n\n/* DEPRECATED */\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar React = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\nvar ReactDOM = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n\nvar utils = __webpack_require__(/*! ./utils */ \"./node_modules/react-scroll/modules/mixins/utils.js\");\nvar scrollSpy = __webpack_require__(/*! ./scroll-spy */ \"./node_modules/react-scroll/modules/mixins/scroll-spy.js\");\nvar defaultScroller = __webpack_require__(/*! ./scroller */ \"./node_modules/react-scroll/modules/mixins/scroller.js\");\nvar PropTypes = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\nvar scrollHash = __webpack_require__(/*! ./scroll-hash */ \"./node_modules/react-scroll/modules/mixins/scroll-hash.js\");\n\nvar protoTypes = {\n to: PropTypes.string.isRequired,\n containerId: PropTypes.string,\n container: PropTypes.object,\n activeClass: PropTypes.string,\n spy: PropTypes.bool,\n smooth: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n offset: PropTypes.number,\n delay: PropTypes.number,\n isDynamic: PropTypes.bool,\n onClick: PropTypes.func,\n duration: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),\n absolute: PropTypes.bool,\n onSetActive: PropTypes.func,\n onSetInactive: PropTypes.func,\n ignoreCancelEvents: PropTypes.bool,\n hashSpy: PropTypes.bool,\n spyThrottle: PropTypes.number\n};\n\nvar Helpers = {\n Scroll: function Scroll(Component, customScroller) {\n\n console.warn(\"Helpers.Scroll is deprecated since v1.7.0\");\n\n var scroller = customScroller || defaultScroller;\n\n var Scroll = function (_React$Component) {\n _inherits(Scroll, _React$Component);\n\n function Scroll(props) {\n _classCallCheck(this, Scroll);\n\n var _this = _possibleConstructorReturn(this, (Scroll.__proto__ || Object.getPrototypeOf(Scroll)).call(this, props));\n\n _initialiseProps.call(_this);\n\n _this.state = {\n active: false\n };\n return _this;\n }\n\n _createClass(Scroll, [{\n key: 'getScrollSpyContainer',\n value: function getScrollSpyContainer() {\n var containerId = this.props.containerId;\n var container = this.props.container;\n\n if (containerId) {\n return document.getElementById(containerId);\n }\n\n if (container && container.nodeType) {\n return container;\n }\n\n return document;\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.props.spy || this.props.hashSpy) {\n var scrollSpyContainer = this.getScrollSpyContainer();\n\n if (!scrollSpy.isMounted(scrollSpyContainer)) {\n scrollSpy.mount(scrollSpyContainer, this.props.spyThrottle);\n }\n\n if (this.props.hashSpy) {\n if (!scrollHash.isMounted()) {\n scrollHash.mount(scroller);\n }\n scrollHash.mapContainer(this.props.to, scrollSpyContainer);\n }\n\n if (this.props.spy) {\n scrollSpy.addStateHandler(this.stateHandler);\n }\n\n scrollSpy.addSpyHandler(this.spyHandler, scrollSpyContainer);\n\n this.setState({\n container: scrollSpyContainer\n });\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n scrollSpy.unmount(this.stateHandler, this.spyHandler);\n }\n }, {\n key: 'render',\n value: function render() {\n var className = \"\";\n\n if (this.state && this.state.active) {\n className = ((this.props.className || \"\") + \" \" + (this.props.activeClass || \"active\")).trim();\n } else {\n className = this.props.className;\n }\n\n var props = _extends({}, this.props);\n\n for (var prop in protoTypes) {\n if (props.hasOwnProperty(prop)) {\n delete props[prop];\n }\n }\n\n props.className = className;\n props.onClick = this.handleClick;\n\n return React.createElement(Component, props);\n }\n }]);\n\n return Scroll;\n }(React.Component);\n\n var _initialiseProps = function _initialiseProps() {\n var _this2 = this;\n\n this.scrollTo = function (to, props) {\n scroller.scrollTo(to, _extends({}, _this2.state, props));\n };\n\n this.handleClick = function (event) {\n\n /*\r\n * give the posibility to override onClick\r\n */\n\n if (_this2.props.onClick) {\n _this2.props.onClick(event);\n }\n\n /*\r\n * dont bubble the navigation\r\n */\n\n if (event.stopPropagation) event.stopPropagation();\n if (event.preventDefault) event.preventDefault();\n\n /*\r\n * do the magic!\r\n */\n _this2.scrollTo(_this2.props.to, _this2.props);\n };\n\n this.stateHandler = function () {\n if (scroller.getActiveLink() !== _this2.props.to) {\n if (_this2.state !== null && _this2.state.active && _this2.props.onSetInactive) {\n _this2.props.onSetInactive();\n }\n _this2.setState({ active: false });\n }\n };\n\n this.spyHandler = function (y) {\n\n var scrollSpyContainer = _this2.getScrollSpyContainer();\n\n if (scrollHash.isMounted() && !scrollHash.isInitialized()) {\n return;\n }\n\n var to = _this2.props.to;\n var element = null;\n var elemTopBound = 0;\n var elemBottomBound = 0;\n var containerTop = 0;\n\n if (scrollSpyContainer.getBoundingClientRect) {\n var containerCords = scrollSpyContainer.getBoundingClientRect();\n containerTop = containerCords.top;\n }\n\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n if (!element) {\n return;\n }\n\n var cords = element.getBoundingClientRect();\n elemTopBound = cords.top - containerTop + y;\n elemBottomBound = elemTopBound + cords.height;\n }\n\n var offsetY = y - _this2.props.offset;\n var isInside = offsetY >= Math.floor(elemTopBound) && offsetY < Math.floor(elemBottomBound);\n var isOutside = offsetY < Math.floor(elemTopBound) || offsetY >= Math.floor(elemBottomBound);\n var activeLink = scroller.getActiveLink();\n\n if (isOutside) {\n if (to === activeLink) {\n scroller.setActiveLink(void 0);\n }\n\n if (_this2.props.hashSpy && scrollHash.getHash() === to) {\n scrollHash.changeHash();\n }\n\n if (_this2.props.spy && _this2.state.active) {\n _this2.setState({ active: false });\n _this2.props.onSetInactive && _this2.props.onSetInactive();\n }\n\n return scrollSpy.updateStates();\n }\n\n if (isInside && activeLink !== to) {\n scroller.setActiveLink(to);\n\n _this2.props.hashSpy && scrollHash.changeHash(to);\n\n if (_this2.props.spy) {\n _this2.setState({ active: true });\n _this2.props.onSetActive && _this2.props.onSetActive(to);\n }\n return scrollSpy.updateStates();\n }\n };\n };\n\n ;\n\n Scroll.propTypes = protoTypes;\n\n Scroll.defaultProps = { offset: 0 };\n\n return Scroll;\n },\n Element: function Element(Component) {\n\n console.warn(\"Helpers.Element is deprecated since v1.7.0\");\n\n var Element = function (_React$Component2) {\n _inherits(Element, _React$Component2);\n\n function Element(props) {\n _classCallCheck(this, Element);\n\n var _this3 = _possibleConstructorReturn(this, (Element.__proto__ || Object.getPrototypeOf(Element)).call(this, props));\n\n _this3.childBindings = {\n domNode: null\n };\n return _this3;\n }\n\n _createClass(Element, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (typeof window === 'undefined') {\n return false;\n }\n this.registerElems(this.props.name);\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n if (this.props.name !== prevProps.name) {\n this.registerElems(this.props.name);\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (typeof window === 'undefined') {\n return false;\n }\n defaultScroller.unregister(this.props.name);\n }\n }, {\n key: 'registerElems',\n value: function registerElems(name) {\n defaultScroller.register(name, this.childBindings.domNode);\n }\n }, {\n key: 'render',\n value: function render() {\n return React.createElement(Component, _extends({}, this.props, { parentBindings: this.childBindings }));\n }\n }]);\n\n return Element;\n }(React.Component);\n\n ;\n\n Element.propTypes = {\n name: PropTypes.string,\n id: PropTypes.string\n };\n\n return Element;\n }\n};\n\nmodule.exports = Helpers;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2Nyb2xsL21vZHVsZXMvbWl4aW5zL0hlbHBlcnMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWI7O0FBRUEsb0RBQW9ELGdCQUFnQixzQkFBc0IsT0FBTywyQkFBMkIsMEJBQTBCLHlEQUF5RCxpQ0FBaUM7O0FBRWhQLGlDQUFpQywyQ0FBMkMsZ0JBQWdCLGtCQUFrQixPQUFPLDJCQUEyQix3REFBd0QsZ0NBQWdDLHVEQUF1RCwrREFBK0QseURBQXlELHFFQUFxRSw2REFBNkQsd0JBQXdCOztBQUVqakIsa0RBQWtELDBDQUEwQzs7QUFFNUYsa0RBQWtELGFBQWEseUZBQXlGOztBQUV4SiwyQ0FBMkMsK0RBQStELHVHQUF1Ryx5RUFBeUUsZUFBZSwwRUFBMEUsR0FBRzs7QUFFdFgsWUFBWSxtQkFBTyxDQUFDLDRDQUFPO0FBQzNCLGVBQWUsbUJBQU8sQ0FBQyxvREFBVzs7QUFFbEMsWUFBWSxtQkFBTyxDQUFDLG9FQUFTO0FBQzdCLGdCQUFnQixtQkFBTyxDQUFDLDhFQUFjO0FBQ3RDLHNCQUFzQixtQkFBTyxDQUFDLDBFQUFZO0FBQzFDLGdCQUFnQixtQkFBTyxDQUFDLHNEQUFZO0FBQ3BDLGlCQUFpQixtQkFBTyxDQUFDLGdGQUFlOztBQUV4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBOztBQUVBLGlDQUFpQzs7QUFFakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxPQUFPOztBQUVQO0FBQ0EsS0FBSzs7QUFFTDtBQUNBOztBQUVBO0FBQ0EseUNBQXlDO0FBQ3pDOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLGVBQWU7QUFDM0M7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDhCQUE4QixlQUFlO0FBQzdDO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0EsOEJBQThCLGNBQWM7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBLDRCQUE0Qjs7QUFFNUI7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBLDJEQUEyRCxnQkFBZ0Isb0NBQW9DO0FBQy9HO0FBQ0EsT0FBTzs7QUFFUDtBQUNBLEtBQUs7O0FBRUw7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zY3JvbGwvbW9kdWxlcy9taXhpbnMvSGVscGVycy5qcz8zYjk0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG4vKiBERVBSRUNBVEVEICovXG5cbnZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbnZhciBfY3JlYXRlQ2xhc3MgPSBmdW5jdGlvbiAoKSB7IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfSByZXR1cm4gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9OyB9KCk7XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHNlbGYsIGNhbGwpIHsgaWYgKCFzZWxmKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gY2FsbCAmJiAodHlwZW9mIGNhbGwgPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGNhbGwgPT09IFwiZnVuY3Rpb25cIikgPyBjYWxsIDogc2VsZjsgfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCBcIiArIHR5cGVvZiBzdXBlckNsYXNzKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7IH1cblxudmFyIFJlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcbnZhciBSZWFjdERPTSA9IHJlcXVpcmUoJ3JlYWN0LWRvbScpO1xuXG52YXIgdXRpbHMgPSByZXF1aXJlKCcuL3V0aWxzJyk7XG52YXIgc2Nyb2xsU3B5ID0gcmVxdWlyZSgnLi9zY3JvbGwtc3B5Jyk7XG52YXIgZGVmYXVsdFNjcm9sbGVyID0gcmVxdWlyZSgnLi9zY3JvbGxlcicpO1xudmFyIFByb3BUeXBlcyA9IHJlcXVpcmUoJ3Byb3AtdHlwZXMnKTtcbnZhciBzY3JvbGxIYXNoID0gcmVxdWlyZSgnLi9zY3JvbGwtaGFzaCcpO1xuXG52YXIgcHJvdG9UeXBlcyA9IHtcbiAgdG86IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgY29udGFpbmVySWQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGNvbnRhaW5lcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgYWN0aXZlQ2xhc3M6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHNweTogUHJvcFR5cGVzLmJvb2wsXG4gIHNtb290aDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmJvb2wsIFByb3BUeXBlcy5zdHJpbmddKSxcbiAgb2Zmc2V0OiBQcm9wVHlwZXMubnVtYmVyLFxuICBkZWxheTogUHJvcFR5cGVzLm51bWJlcixcbiAgaXNEeW5hbWljOiBQcm9wVHlwZXMuYm9vbCxcbiAgb25DbGljazogUHJvcFR5cGVzLmZ1bmMsXG4gIGR1cmF0aW9uOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMubnVtYmVyLCBQcm9wVHlwZXMuZnVuY10pLFxuICBhYnNvbHV0ZTogUHJvcFR5cGVzLmJvb2wsXG4gIG9uU2V0QWN0aXZlOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25TZXRJbmFjdGl2ZTogUHJvcFR5cGVzLmZ1bmMsXG4gIGlnbm9yZUNhbmNlbEV2ZW50czogUHJvcFR5cGVzLmJvb2wsXG4gIGhhc2hTcHk6IFByb3BUeXBlcy5ib29sLFxuICBzcHlUaHJvdHRsZTogUHJvcFR5cGVzLm51bWJlclxufTtcblxudmFyIEhlbHBlcnMgPSB7XG4gIFNjcm9sbDogZnVuY3Rpb24gU2Nyb2xsKENvbXBvbmVudCwgY3VzdG9tU2Nyb2xsZXIpIHtcblxuICAgIGNvbnNvbGUud2FybihcIkhlbHBlcnMuU2Nyb2xsIGlzIGRlcHJlY2F0ZWQgc2luY2UgdjEuNy4wXCIpO1xuXG4gICAgdmFyIHNjcm9sbGVyID0gY3VzdG9tU2Nyb2xsZXIgfHwgZGVmYXVsdFNjcm9sbGVyO1xuXG4gICAgdmFyIFNjcm9sbCA9IGZ1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gICAgICBfaW5oZXJpdHMoU2Nyb2xsLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICAgICAgZnVuY3Rpb24gU2Nyb2xsKHByb3BzKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBTY3JvbGwpO1xuXG4gICAgICAgIHZhciBfdGhpcyA9IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIChTY3JvbGwuX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihTY3JvbGwpKS5jYWxsKHRoaXMsIHByb3BzKSk7XG5cbiAgICAgICAgX2luaXRpYWxpc2VQcm9wcy5jYWxsKF90aGlzKTtcblxuICAgICAgICBfdGhpcy5zdGF0ZSA9IHtcbiAgICAgICAgICBhY3RpdmU6IGZhbHNlXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICAgIH1cblxuICAgICAgX2NyZWF0ZUNsYXNzKFNjcm9sbCwgW3tcbiAgICAgICAga2V5OiAnZ2V0U2Nyb2xsU3B5Q29udGFpbmVyJyxcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIGdldFNjcm9sbFNweUNvbnRhaW5lcigpIHtcbiAgICAgICAgICB2YXIgY29udGFpbmVySWQgPSB0aGlzLnByb3BzLmNvbnRhaW5lcklkO1xuICAgICAgICAgIHZhciBjb250YWluZXIgPSB0aGlzLnByb3BzLmNvbnRhaW5lcjtcblxuICAgICAgICAgIGlmIChjb250YWluZXJJZCkge1xuICAgICAgICAgICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGNvbnRhaW5lcklkKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoY29udGFpbmVyICYmIGNvbnRhaW5lci5ub2RlVHlwZSkge1xuICAgICAgICAgICAgcmV0dXJuIGNvbnRhaW5lcjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gZG9jdW1lbnQ7XG4gICAgICAgIH1cbiAgICAgIH0sIHtcbiAgICAgICAga2V5OiAnY29tcG9uZW50RGlkTW91bnQnLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICAgICAgaWYgKHRoaXMucHJvcHMuc3B5IHx8IHRoaXMucHJvcHMuaGFzaFNweSkge1xuICAgICAgICAgICAgdmFyIHNjcm9sbFNweUNvbnRhaW5lciA9IHRoaXMuZ2V0U2Nyb2xsU3B5Q29udGFpbmVyKCk7XG5cbiAgICAgICAgICAgIGlmICghc2Nyb2xsU3B5LmlzTW91bnRlZChzY3JvbGxTcHlDb250YWluZXIpKSB7XG4gICAgICAgICAgICAgIHNjcm9sbFNweS5tb3VudChzY3JvbGxTcHlDb250YWluZXIsIHRoaXMucHJvcHMuc3B5VGhyb3R0bGUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5oYXNoU3B5KSB7XG4gICAgICAgICAgICAgIGlmICghc2Nyb2xsSGFzaC5pc01vdW50ZWQoKSkge1xuICAgICAgICAgICAgICAgIHNjcm9sbEhhc2gubW91bnQoc2Nyb2xsZXIpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHNjcm9sbEhhc2gubWFwQ29udGFpbmVyKHRoaXMucHJvcHMudG8sIHNjcm9sbFNweUNvbnRhaW5lcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLnNweSkge1xuICAgICAgICAgICAgICBzY3JvbGxTcHkuYWRkU3RhdGVIYW5kbGVyKHRoaXMuc3RhdGVIYW5kbGVyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc2Nyb2xsU3B5LmFkZFNweUhhbmRsZXIodGhpcy5zcHlIYW5kbGVyLCBzY3JvbGxTcHlDb250YWluZXIpO1xuXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgICAgY29udGFpbmVyOiBzY3JvbGxTcHlDb250YWluZXJcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSwge1xuICAgICAgICBrZXk6ICdjb21wb25lbnRXaWxsVW5tb3VudCcsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgICAgICBzY3JvbGxTcHkudW5tb3VudCh0aGlzLnN0YXRlSGFuZGxlciwgdGhpcy5zcHlIYW5kbGVyKTtcbiAgICAgICAgfVxuICAgICAgfSwge1xuICAgICAgICBrZXk6ICdyZW5kZXInLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICAgIHZhciBjbGFzc05hbWUgPSBcIlwiO1xuXG4gICAgICAgICAgaWYgKHRoaXMuc3RhdGUgJiYgdGhpcy5zdGF0ZS5hY3RpdmUpIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZSA9ICgodGhpcy5wcm9wcy5jbGFzc05hbWUgfHwgXCJcIikgKyBcIiBcIiArICh0aGlzLnByb3BzLmFjdGl2ZUNsYXNzIHx8IFwiYWN0aXZlXCIpKS50cmltKCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZSA9IHRoaXMucHJvcHMuY2xhc3NOYW1lO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHZhciBwcm9wcyA9IF9leHRlbmRzKHt9LCB0aGlzLnByb3BzKTtcblxuICAgICAgICAgIGZvciAodmFyIHByb3AgaW4gcHJvdG9UeXBlcykge1xuICAgICAgICAgICAgaWYgKHByb3BzLmhhc093blByb3BlcnR5KHByb3ApKSB7XG4gICAgICAgICAgICAgIGRlbGV0ZSBwcm9wc1twcm9wXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBwcm9wcy5jbGFzc05hbWUgPSBjbGFzc05hbWU7XG4gICAgICAgICAgcHJvcHMub25DbGljayA9IHRoaXMuaGFuZGxlQ2xpY2s7XG5cbiAgICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChDb21wb25lbnQsIHByb3BzKTtcbiAgICAgICAgfVxuICAgICAgfV0pO1xuXG4gICAgICByZXR1cm4gU2Nyb2xsO1xuICAgIH0oUmVhY3QuQ29tcG9uZW50KTtcblxuICAgIHZhciBfaW5pdGlhbGlzZVByb3BzID0gZnVuY3Rpb24gX2luaXRpYWxpc2VQcm9wcygpIHtcbiAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICB0aGlzLnNjcm9sbFRvID0gZnVuY3Rpb24gKHRvLCBwcm9wcykge1xuICAgICAgICBzY3JvbGxlci5zY3JvbGxUbyh0bywgX2V4dGVuZHMoe30sIF90aGlzMi5zdGF0ZSwgcHJvcHMpKTtcbiAgICAgIH07XG5cbiAgICAgIHRoaXMuaGFuZGxlQ2xpY2sgPSBmdW5jdGlvbiAoZXZlbnQpIHtcblxuICAgICAgICAvKlxyXG4gICAgICAgICAqIGdpdmUgdGhlIHBvc2liaWxpdHkgdG8gb3ZlcnJpZGUgb25DbGlja1xyXG4gICAgICAgICAqL1xuXG4gICAgICAgIGlmIChfdGhpczIucHJvcHMub25DbGljaykge1xuICAgICAgICAgIF90aGlzMi5wcm9wcy5vbkNsaWNrKGV2ZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qXHJcbiAgICAgICAgICogZG9udCBidWJibGUgdGhlIG5hdmlnYXRpb25cclxuICAgICAgICAgKi9cblxuICAgICAgICBpZiAoZXZlbnQuc3RvcFByb3BhZ2F0aW9uKSBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgaWYgKGV2ZW50LnByZXZlbnREZWZhdWx0KSBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgIC8qXHJcbiAgICAgICAgICogZG8gdGhlIG1hZ2ljIVxyXG4gICAgICAgICAqL1xuICAgICAgICBfdGhpczIuc2Nyb2xsVG8oX3RoaXMyLnByb3BzLnRvLCBfdGhpczIucHJvcHMpO1xuICAgICAgfTtcblxuICAgICAgdGhpcy5zdGF0ZUhhbmRsZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmIChzY3JvbGxlci5nZXRBY3RpdmVMaW5rKCkgIT09IF90aGlzMi5wcm9wcy50bykge1xuICAgICAgICAgIGlmIChfdGhpczIuc3RhdGUgIT09IG51bGwgJiYgX3RoaXMyLnN0YXRlLmFjdGl2ZSAmJiBfdGhpczIucHJvcHMub25TZXRJbmFjdGl2ZSkge1xuICAgICAgICAgICAgX3RoaXMyLnByb3BzLm9uU2V0SW5hY3RpdmUoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgX3RoaXMyLnNldFN0YXRlKHsgYWN0aXZlOiBmYWxzZSB9KTtcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgdGhpcy5zcHlIYW5kbGVyID0gZnVuY3Rpb24gKHkpIHtcblxuICAgICAgICB2YXIgc2Nyb2xsU3B5Q29udGFpbmVyID0gX3RoaXMyLmdldFNjcm9sbFNweUNvbnRhaW5lcigpO1xuXG4gICAgICAgIGlmIChzY3JvbGxIYXNoLmlzTW91bnRlZCgpICYmICFzY3JvbGxIYXNoLmlzSW5pdGlhbGl6ZWQoKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciB0byA9IF90aGlzMi5wcm9wcy50bztcbiAgICAgICAgdmFyIGVsZW1lbnQgPSBudWxsO1xuICAgICAgICB2YXIgZWxlbVRvcEJvdW5kID0gMDtcbiAgICAgICAgdmFyIGVsZW1Cb3R0b21Cb3VuZCA9IDA7XG4gICAgICAgIHZhciBjb250YWluZXJUb3AgPSAwO1xuXG4gICAgICAgIGlmIChzY3JvbGxTcHlDb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KSB7XG4gICAgICAgICAgdmFyIGNvbnRhaW5lckNvcmRzID0gc2Nyb2xsU3B5Q29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgIGNvbnRhaW5lclRvcCA9IGNvbnRhaW5lckNvcmRzLnRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghZWxlbWVudCB8fCBfdGhpczIucHJvcHMuaXNEeW5hbWljKSB7XG4gICAgICAgICAgZWxlbWVudCA9IHNjcm9sbGVyLmdldCh0byk7XG4gICAgICAgICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdmFyIGNvcmRzID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICBlbGVtVG9wQm91bmQgPSBjb3Jkcy50b3AgLSBjb250YWluZXJUb3AgKyB5O1xuICAgICAgICAgIGVsZW1Cb3R0b21Cb3VuZCA9IGVsZW1Ub3BCb3VuZCArIGNvcmRzLmhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBvZmZzZXRZID0geSAtIF90aGlzMi5wcm9wcy5vZmZzZXQ7XG4gICAgICAgIHZhciBpc0luc2lkZSA9IG9mZnNldFkgPj0gTWF0aC5mbG9vcihlbGVtVG9wQm91bmQpICYmIG9mZnNldFkgPCBNYXRoLmZsb29yKGVsZW1Cb3R0b21Cb3VuZCk7XG4gICAgICAgIHZhciBpc091dHNpZGUgPSBvZmZzZXRZIDwgTWF0aC5mbG9vcihlbGVtVG9wQm91bmQpIHx8IG9mZnNldFkgPj0gTWF0aC5mbG9vcihlbGVtQm90dG9tQm91bmQpO1xuICAgICAgICB2YXIgYWN0aXZlTGluayA9IHNjcm9sbGVyLmdldEFjdGl2ZUxpbmsoKTtcblxuICAgICAgICBpZiAoaXNPdXRzaWRlKSB7XG4gICAgICAgICAgaWYgKHRvID09PSBhY3RpdmVMaW5rKSB7XG4gICAgICAgICAgICBzY3JvbGxlci5zZXRBY3RpdmVMaW5rKHZvaWQgMCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKF90aGlzMi5wcm9wcy5oYXNoU3B5ICYmIHNjcm9sbEhhc2guZ2V0SGFzaCgpID09PSB0bykge1xuICAgICAgICAgICAgc2Nyb2xsSGFzaC5jaGFuZ2VIYXNoKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKF90aGlzMi5wcm9wcy5zcHkgJiYgX3RoaXMyLnN0YXRlLmFjdGl2ZSkge1xuICAgICAgICAgICAgX3RoaXMyLnNldFN0YXRlKHsgYWN0aXZlOiBmYWxzZSB9KTtcbiAgICAgICAgICAgIF90aGlzMi5wcm9wcy5vblNldEluYWN0aXZlICYmIF90aGlzMi5wcm9wcy5vblNldEluYWN0aXZlKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHNjcm9sbFNweS51cGRhdGVTdGF0ZXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc0luc2lkZSAmJiBhY3RpdmVMaW5rICE9PSB0bykge1xuICAgICAgICAgIHNjcm9sbGVyLnNldEFjdGl2ZUxpbmsodG8pO1xuXG4gICAgICAgICAgX3RoaXMyLnByb3BzLmhhc2hTcHkgJiYgc2Nyb2xsSGFzaC5jaGFuZ2VIYXNoKHRvKTtcblxuICAgICAgICAgIGlmIChfdGhpczIucHJvcHMuc3B5KSB7XG4gICAgICAgICAgICBfdGhpczIuc2V0U3RhdGUoeyBhY3RpdmU6IHRydWUgfSk7XG4gICAgICAgICAgICBfdGhpczIucHJvcHMub25TZXRBY3RpdmUgJiYgX3RoaXMyLnByb3BzLm9uU2V0QWN0aXZlKHRvKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHNjcm9sbFNweS51cGRhdGVTdGF0ZXMoKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9O1xuXG4gICAgO1xuXG4gICAgU2Nyb2xsLnByb3BUeXBlcyA9IHByb3RvVHlwZXM7XG5cbiAgICBTY3JvbGwuZGVmYXVsdFByb3BzID0geyBvZmZzZXQ6IDAgfTtcblxuICAgIHJldHVybiBTY3JvbGw7XG4gIH0sXG4gIEVsZW1lbnQ6IGZ1bmN0aW9uIEVsZW1lbnQoQ29tcG9uZW50KSB7XG5cbiAgICBjb25zb2xlLndhcm4oXCJIZWxwZXJzLkVsZW1lbnQgaXMgZGVwcmVjYXRlZCBzaW5jZSB2MS43LjBcIik7XG5cbiAgICB2YXIgRWxlbWVudCA9IGZ1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50Mikge1xuICAgICAgX2luaGVyaXRzKEVsZW1lbnQsIF9SZWFjdCRDb21wb25lbnQyKTtcblxuICAgICAgZnVuY3Rpb24gRWxlbWVudChwcm9wcykge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgRWxlbWVudCk7XG5cbiAgICAgICAgdmFyIF90aGlzMyA9IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIChFbGVtZW50Ll9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2YoRWxlbWVudCkpLmNhbGwodGhpcywgcHJvcHMpKTtcblxuICAgICAgICBfdGhpczMuY2hpbGRCaW5kaW5ncyA9IHtcbiAgICAgICAgICBkb21Ob2RlOiBudWxsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBfdGhpczM7XG4gICAgICB9XG5cbiAgICAgIF9jcmVhdGVDbGFzcyhFbGVtZW50LCBbe1xuICAgICAgICBrZXk6ICdjb21wb25lbnREaWRNb3VudCcsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5yZWdpc3RlckVsZW1zKHRoaXMucHJvcHMubmFtZSk7XG4gICAgICAgIH1cbiAgICAgIH0sIHtcbiAgICAgICAga2V5OiAnY29tcG9uZW50RGlkVXBkYXRlJyxcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICAgICAgICBpZiAodGhpcy5wcm9wcy5uYW1lICE9PSBwcmV2UHJvcHMubmFtZSkge1xuICAgICAgICAgICAgdGhpcy5yZWdpc3RlckVsZW1zKHRoaXMucHJvcHMubmFtZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LCB7XG4gICAgICAgIGtleTogJ2NvbXBvbmVudFdpbGxVbm1vdW50JyxcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBkZWZhdWx0U2Nyb2xsZXIudW5yZWdpc3Rlcih0aGlzLnByb3BzLm5hbWUpO1xuICAgICAgICB9XG4gICAgICB9LCB7XG4gICAgICAgIGtleTogJ3JlZ2lzdGVyRWxlbXMnLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gcmVnaXN0ZXJFbGVtcyhuYW1lKSB7XG4gICAgICAgICAgZGVmYXVsdFNjcm9sbGVyLnJlZ2lzdGVyKG5hbWUsIHRoaXMuY2hpbGRCaW5kaW5ncy5kb21Ob2RlKTtcbiAgICAgICAgfVxuICAgICAgfSwge1xuICAgICAgICBrZXk6ICdyZW5kZXInLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KENvbXBvbmVudCwgX2V4dGVuZHMoe30sIHRoaXMucHJvcHMsIHsgcGFyZW50QmluZGluZ3M6IHRoaXMuY2hpbGRCaW5kaW5ncyB9KSk7XG4gICAgICAgIH1cbiAgICAgIH1dKTtcblxuICAgICAgcmV0dXJuIEVsZW1lbnQ7XG4gICAgfShSZWFjdC5Db21wb25lbnQpO1xuXG4gICAgO1xuXG4gICAgRWxlbWVudC5wcm9wVHlwZXMgPSB7XG4gICAgICBuYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgaWQ6IFByb3BUeXBlcy5zdHJpbmdcbiAgICB9O1xuXG4gICAgcmV0dXJuIEVsZW1lbnQ7XG4gIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gSGVscGVyczsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-scroll/modules/mixins/Helpers.js\n"); + +/***/ }), + +/***/ "./node_modules/react-scroll/modules/mixins/animate-scroll.js": +/*!********************************************************************!*\ + !*** ./node_modules/react-scroll/modules/mixins/animate-scroll.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/react-scroll/modules/mixins/utils.js\");\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nvar _smooth = __webpack_require__(/*! ./smooth */ \"./node_modules/react-scroll/modules/mixins/smooth.js\");\n\nvar _smooth2 = _interopRequireDefault(_smooth);\n\nvar _cancelEvents = __webpack_require__(/*! ./cancel-events */ \"./node_modules/react-scroll/modules/mixins/cancel-events.js\");\n\nvar _cancelEvents2 = _interopRequireDefault(_cancelEvents);\n\nvar _scrollEvents = __webpack_require__(/*! ./scroll-events */ \"./node_modules/react-scroll/modules/mixins/scroll-events.js\");\n\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*\r\n * Gets the easing type from the smooth prop within options.\r\n */\nvar getAnimationType = function getAnimationType(options) {\n return _smooth2.default[options.smooth] || _smooth2.default.defaultEasing;\n};\n/*\r\n * Function helper\r\n */\nvar functionWrapper = function functionWrapper(value) {\n return typeof value === 'function' ? value : function () {\n return value;\n };\n};\n/*\r\n * Wraps window properties to allow server side rendering\r\n */\nvar currentWindowProperties = function currentWindowProperties() {\n if (typeof window !== 'undefined') {\n return window.requestAnimationFrame || window.webkitRequestAnimationFrame;\n }\n};\n\n/*\r\n * Helper function to never extend 60fps on the webpage.\r\n */\nvar requestAnimationFrameHelper = function () {\n return currentWindowProperties() || function (callback, element, delay) {\n window.setTimeout(callback, delay || 1000 / 60, new Date().getTime());\n };\n}();\n\nvar makeData = function makeData() {\n return {\n currentPosition: 0,\n startPosition: 0,\n targetPosition: 0,\n progress: 0,\n duration: 0,\n cancel: false,\n\n target: null,\n containerElement: null,\n to: null,\n start: null,\n delta: null,\n percent: null,\n delayTimeout: null\n };\n};\n\nvar currentPositionX = function currentPositionX(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollLeft;\n } else {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageXOffset : isCSS1Compat ? document.documentElement.scrollLeft : document.body.scrollLeft;\n }\n};\n\nvar currentPositionY = function currentPositionY(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollTop;\n } else {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop;\n }\n};\n\nvar scrollContainerWidth = function scrollContainerWidth(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollWidth - containerElement.offsetWidth;\n } else {\n var body = document.body;\n var html = document.documentElement;\n\n return Math.max(body.scrollWidth, body.offsetWidth, html.clientWidth, html.scrollWidth, html.offsetWidth);\n }\n};\n\nvar scrollContainerHeight = function scrollContainerHeight(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollHeight - containerElement.offsetHeight;\n } else {\n var body = document.body;\n var html = document.documentElement;\n\n return Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight);\n }\n};\n\nvar animateScroll = function animateScroll(easing, options, timestamp) {\n var data = options.data;\n\n // Cancel on specific events\n if (!options.ignoreCancelEvents && data.cancel) {\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](data.to, data.target, data.currentPositionY);\n }\n return;\n };\n\n data.delta = Math.round(data.targetPosition - data.startPosition);\n\n if (data.start === null) {\n data.start = timestamp;\n }\n\n data.progress = timestamp - data.start;\n\n data.percent = data.progress >= data.duration ? 1 : easing(data.progress / data.duration);\n\n data.currentPosition = data.startPosition + Math.ceil(data.delta * data.percent);\n\n if (data.containerElement && data.containerElement !== document && data.containerElement !== document.body) {\n if (options.horizontal) {\n data.containerElement.scrollLeft = data.currentPosition;\n } else {\n data.containerElement.scrollTop = data.currentPosition;\n }\n } else {\n if (options.horizontal) {\n window.scrollTo(data.currentPosition, 0);\n } else {\n window.scrollTo(0, data.currentPosition);\n }\n }\n\n if (data.percent < 1) {\n var easedAnimate = animateScroll.bind(null, easing, options);\n requestAnimationFrameHelper.call(window, easedAnimate);\n return;\n }\n\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](data.to, data.target, data.currentPosition);\n }\n};\n\nvar setContainer = function setContainer(options) {\n options.data.containerElement = !options ? null : options.containerId ? document.getElementById(options.containerId) : options.container && options.container.nodeType ? options.container : document;\n};\n\nvar animateTopScroll = function animateTopScroll(scrollOffset, options, to, target) {\n options.data = options.data || makeData();\n\n window.clearTimeout(options.data.delayTimeout);\n\n _cancelEvents2.default.subscribe(function () {\n options.data.cancel = true;\n });\n\n setContainer(options);\n\n options.data.start = null;\n options.data.cancel = false;\n options.data.startPosition = options.horizontal ? currentPositionX(options) : currentPositionY(options);\n options.data.targetPosition = options.absolute ? scrollOffset : scrollOffset + options.data.startPosition;\n\n if (options.data.startPosition === options.data.targetPosition) {\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](options.data.to, options.data.target, options.data.currentPosition);\n }\n return;\n }\n\n options.data.delta = Math.round(options.data.targetPosition - options.data.startPosition);\n\n options.data.duration = functionWrapper(options.duration)(options.data.delta);\n options.data.duration = isNaN(parseFloat(options.data.duration)) ? 1000 : parseFloat(options.data.duration);\n options.data.to = to;\n options.data.target = target;\n\n var easing = getAnimationType(options);\n var easedAnimate = animateScroll.bind(null, easing, options);\n\n if (options && options.delay > 0) {\n options.data.delayTimeout = window.setTimeout(function () {\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](options.data.to, options.data.target);\n }\n requestAnimationFrameHelper.call(window, easedAnimate);\n }, options.delay);\n return;\n }\n\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](options.data.to, options.data.target);\n }\n requestAnimationFrameHelper.call(window, easedAnimate);\n};\n\nvar proceedOptions = function proceedOptions(options) {\n options = _extends({}, options);\n options.data = options.data || makeData();\n options.absolute = true;\n return options;\n};\n\nvar scrollToTop = function scrollToTop(options) {\n animateTopScroll(0, proceedOptions(options));\n};\n\nvar scrollTo = function scrollTo(toPosition, options) {\n animateTopScroll(toPosition, proceedOptions(options));\n};\n\nvar scrollToBottom = function scrollToBottom(options) {\n options = proceedOptions(options);\n setContainer(options);\n animateTopScroll(options.horizontal ? scrollContainerWidth(options) : scrollContainerHeight(options), options);\n};\n\nvar scrollMore = function scrollMore(toPosition, options) {\n options = proceedOptions(options);\n setContainer(options);\n var currentPosition = options.horizontal ? currentPositionX(options) : currentPositionY(options);\n animateTopScroll(toPosition + currentPosition, options);\n};\n\nexports[\"default\"] = {\n animateTopScroll: animateTopScroll,\n getAnimationType: getAnimationType,\n scrollToTop: scrollToTop,\n scrollToBottom: scrollToBottom,\n scrollTo: scrollTo,\n scrollMore: scrollMore\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2Nyb2xsL21vZHVsZXMvbWl4aW5zL2FuaW1hdGUtc2Nyb2xsLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQzs7QUFFRixvREFBb0QsZ0JBQWdCLHNCQUFzQixPQUFPLDJCQUEyQiwwQkFBMEIseURBQXlELGlDQUFpQzs7QUFFaFAsYUFBYSxtQkFBTyxDQUFDLG9FQUFTOztBQUU5Qjs7QUFFQSxjQUFjLG1CQUFPLENBQUMsc0VBQVU7O0FBRWhDOztBQUVBLG9CQUFvQixtQkFBTyxDQUFDLG9GQUFpQjs7QUFFN0M7O0FBRUEsb0JBQW9CLG1CQUFPLENBQUMsb0ZBQWlCOztBQUU3Qzs7QUFFQSx1Q0FBdUMsdUNBQXVDOztBQUU5RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLEdBQUc7O0FBRUg7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGtCQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXNjcm9sbC9tb2R1bGVzL21peGlucy9hbmltYXRlLXNjcm9sbC5qcz9iZjUzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcblxudmFyIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTtcblxudmFyIF91dGlscyA9IHJlcXVpcmUoJy4vdXRpbHMnKTtcblxudmFyIF91dGlsczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF91dGlscyk7XG5cbnZhciBfc21vb3RoID0gcmVxdWlyZSgnLi9zbW9vdGgnKTtcblxudmFyIF9zbW9vdGgyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfc21vb3RoKTtcblxudmFyIF9jYW5jZWxFdmVudHMgPSByZXF1aXJlKCcuL2NhbmNlbC1ldmVudHMnKTtcblxudmFyIF9jYW5jZWxFdmVudHMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfY2FuY2VsRXZlbnRzKTtcblxudmFyIF9zY3JvbGxFdmVudHMgPSByZXF1aXJlKCcuL3Njcm9sbC1ldmVudHMnKTtcblxudmFyIF9zY3JvbGxFdmVudHMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfc2Nyb2xsRXZlbnRzKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuLypcclxuICogR2V0cyB0aGUgZWFzaW5nIHR5cGUgZnJvbSB0aGUgc21vb3RoIHByb3Agd2l0aGluIG9wdGlvbnMuXHJcbiAqL1xudmFyIGdldEFuaW1hdGlvblR5cGUgPSBmdW5jdGlvbiBnZXRBbmltYXRpb25UeXBlKG9wdGlvbnMpIHtcbiAgcmV0dXJuIF9zbW9vdGgyLmRlZmF1bHRbb3B0aW9ucy5zbW9vdGhdIHx8IF9zbW9vdGgyLmRlZmF1bHQuZGVmYXVsdEVhc2luZztcbn07XG4vKlxyXG4gKiBGdW5jdGlvbiBoZWxwZXJcclxuICovXG52YXIgZnVuY3Rpb25XcmFwcGVyID0gZnVuY3Rpb24gZnVuY3Rpb25XcmFwcGVyKHZhbHVlKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicgPyB2YWx1ZSA6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH07XG59O1xuLypcclxuICogV3JhcHMgd2luZG93IHByb3BlcnRpZXMgdG8gYWxsb3cgc2VydmVyIHNpZGUgcmVuZGVyaW5nXHJcbiAqL1xudmFyIGN1cnJlbnRXaW5kb3dQcm9wZXJ0aWVzID0gZnVuY3Rpb24gY3VycmVudFdpbmRvd1Byb3BlcnRpZXMoKSB7XG4gIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lIHx8IHdpbmRvdy53ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWU7XG4gIH1cbn07XG5cbi8qXHJcbiAqIEhlbHBlciBmdW5jdGlvbiB0byBuZXZlciBleHRlbmQgNjBmcHMgb24gdGhlIHdlYnBhZ2UuXHJcbiAqL1xudmFyIHJlcXVlc3RBbmltYXRpb25GcmFtZUhlbHBlciA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIGN1cnJlbnRXaW5kb3dQcm9wZXJ0aWVzKCkgfHwgZnVuY3Rpb24gKGNhbGxiYWNrLCBlbGVtZW50LCBkZWxheSkge1xuICAgIHdpbmRvdy5zZXRUaW1lb3V0KGNhbGxiYWNrLCBkZWxheSB8fCAxMDAwIC8gNjAsIG5ldyBEYXRlKCkuZ2V0VGltZSgpKTtcbiAgfTtcbn0oKTtcblxudmFyIG1ha2VEYXRhID0gZnVuY3Rpb24gbWFrZURhdGEoKSB7XG4gIHJldHVybiB7XG4gICAgY3VycmVudFBvc2l0aW9uOiAwLFxuICAgIHN0YXJ0UG9zaXRpb246IDAsXG4gICAgdGFyZ2V0UG9zaXRpb246IDAsXG4gICAgcHJvZ3Jlc3M6IDAsXG4gICAgZHVyYXRpb246IDAsXG4gICAgY2FuY2VsOiBmYWxzZSxcblxuICAgIHRhcmdldDogbnVsbCxcbiAgICBjb250YWluZXJFbGVtZW50OiBudWxsLFxuICAgIHRvOiBudWxsLFxuICAgIHN0YXJ0OiBudWxsLFxuICAgIGRlbHRhOiBudWxsLFxuICAgIHBlcmNlbnQ6IG51bGwsXG4gICAgZGVsYXlUaW1lb3V0OiBudWxsXG4gIH07XG59O1xuXG52YXIgY3VycmVudFBvc2l0aW9uWCA9IGZ1bmN0aW9uIGN1cnJlbnRQb3NpdGlvblgob3B0aW9ucykge1xuICB2YXIgY29udGFpbmVyRWxlbWVudCA9IG9wdGlvbnMuZGF0YS5jb250YWluZXJFbGVtZW50O1xuICBpZiAoY29udGFpbmVyRWxlbWVudCAmJiBjb250YWluZXJFbGVtZW50ICE9PSBkb2N1bWVudCAmJiBjb250YWluZXJFbGVtZW50ICE9PSBkb2N1bWVudC5ib2R5KSB7XG4gICAgcmV0dXJuIGNvbnRhaW5lckVsZW1lbnQuc2Nyb2xsTGVmdDtcbiAgfSBlbHNlIHtcbiAgICB2YXIgc3VwcG9ydFBhZ2VPZmZzZXQgPSB3aW5kb3cucGFnZVhPZmZzZXQgIT09IHVuZGVmaW5lZDtcbiAgICB2YXIgaXNDU1MxQ29tcGF0ID0gKGRvY3VtZW50LmNvbXBhdE1vZGUgfHwgXCJcIikgPT09IFwiQ1NTMUNvbXBhdFwiO1xuICAgIHJldHVybiBzdXBwb3J0UGFnZU9mZnNldCA/IHdpbmRvdy5wYWdlWE9mZnNldCA6IGlzQ1NTMUNvbXBhdCA/IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0IDogZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0O1xuICB9XG59O1xuXG52YXIgY3VycmVudFBvc2l0aW9uWSA9IGZ1bmN0aW9uIGN1cnJlbnRQb3NpdGlvblkob3B0aW9ucykge1xuICB2YXIgY29udGFpbmVyRWxlbWVudCA9IG9wdGlvbnMuZGF0YS5jb250YWluZXJFbGVtZW50O1xuICBpZiAoY29udGFpbmVyRWxlbWVudCAmJiBjb250YWluZXJFbGVtZW50ICE9PSBkb2N1bWVudCAmJiBjb250YWluZXJFbGVtZW50ICE9PSBkb2N1bWVudC5ib2R5KSB7XG4gICAgcmV0dXJuIGNvbnRhaW5lckVsZW1lbnQuc2Nyb2xsVG9wO1xuICB9IGVsc2Uge1xuICAgIHZhciBzdXBwb3J0UGFnZU9mZnNldCA9IHdpbmRvdy5wYWdlWE9mZnNldCAhPT0gdW5kZWZpbmVkO1xuICAgIHZhciBpc0NTUzFDb21wYXQgPSAoZG9jdW1lbnQuY29tcGF0TW9kZSB8fCBcIlwiKSA9PT0gXCJDU1MxQ29tcGF0XCI7XG4gICAgcmV0dXJuIHN1cHBvcnRQYWdlT2Zmc2V0ID8gd2luZG93LnBhZ2VZT2Zmc2V0IDogaXNDU1MxQ29tcGF0ID8gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCA6IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wO1xuICB9XG59O1xuXG52YXIgc2Nyb2xsQ29udGFpbmVyV2lkdGggPSBmdW5jdGlvbiBzY3JvbGxDb250YWluZXJXaWR0aChvcHRpb25zKSB7XG4gIHZhciBjb250YWluZXJFbGVtZW50ID0gb3B0aW9ucy5kYXRhLmNvbnRhaW5lckVsZW1lbnQ7XG4gIGlmIChjb250YWluZXJFbGVtZW50ICYmIGNvbnRhaW5lckVsZW1lbnQgIT09IGRvY3VtZW50ICYmIGNvbnRhaW5lckVsZW1lbnQgIT09IGRvY3VtZW50LmJvZHkpIHtcbiAgICByZXR1cm4gY29udGFpbmVyRWxlbWVudC5zY3JvbGxXaWR0aCAtIGNvbnRhaW5lckVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gIH0gZWxzZSB7XG4gICAgdmFyIGJvZHkgPSBkb2N1bWVudC5ib2R5O1xuICAgIHZhciBodG1sID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuXG4gICAgcmV0dXJuIE1hdGgubWF4KGJvZHkuc2Nyb2xsV2lkdGgsIGJvZHkub2Zmc2V0V2lkdGgsIGh0bWwuY2xpZW50V2lkdGgsIGh0bWwuc2Nyb2xsV2lkdGgsIGh0bWwub2Zmc2V0V2lkdGgpO1xuICB9XG59O1xuXG52YXIgc2Nyb2xsQ29udGFpbmVySGVpZ2h0ID0gZnVuY3Rpb24gc2Nyb2xsQ29udGFpbmVySGVpZ2h0KG9wdGlvbnMpIHtcbiAgdmFyIGNvbnRhaW5lckVsZW1lbnQgPSBvcHRpb25zLmRhdGEuY29udGFpbmVyRWxlbWVudDtcbiAgaWYgKGNvbnRhaW5lckVsZW1lbnQgJiYgY29udGFpbmVyRWxlbWVudCAhPT0gZG9jdW1lbnQgJiYgY29udGFpbmVyRWxlbWVudCAhPT0gZG9jdW1lbnQuYm9keSkge1xuICAgIHJldHVybiBjb250YWluZXJFbGVtZW50LnNjcm9sbEhlaWdodCAtIGNvbnRhaW5lckVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuICB9IGVsc2Uge1xuICAgIHZhciBib2R5ID0gZG9jdW1lbnQuYm9keTtcbiAgICB2YXIgaHRtbCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcblxuICAgIHJldHVybiBNYXRoLm1heChib2R5LnNjcm9sbEhlaWdodCwgYm9keS5vZmZzZXRIZWlnaHQsIGh0bWwuY2xpZW50SGVpZ2h0LCBodG1sLnNjcm9sbEhlaWdodCwgaHRtbC5vZmZzZXRIZWlnaHQpO1xuICB9XG59O1xuXG52YXIgYW5pbWF0ZVNjcm9sbCA9IGZ1bmN0aW9uIGFuaW1hdGVTY3JvbGwoZWFzaW5nLCBvcHRpb25zLCB0aW1lc3RhbXApIHtcbiAgdmFyIGRhdGEgPSBvcHRpb25zLmRhdGE7XG5cbiAgLy8gQ2FuY2VsIG9uIHNwZWNpZmljIGV2ZW50c1xuICBpZiAoIW9wdGlvbnMuaWdub3JlQ2FuY2VsRXZlbnRzICYmIGRhdGEuY2FuY2VsKSB7XG4gICAgaWYgKF9zY3JvbGxFdmVudHMyLmRlZmF1bHQucmVnaXN0ZXJlZFsnZW5kJ10pIHtcbiAgICAgIF9zY3JvbGxFdmVudHMyLmRlZmF1bHQucmVnaXN0ZXJlZFsnZW5kJ10oZGF0YS50bywgZGF0YS50YXJnZXQsIGRhdGEuY3VycmVudFBvc2l0aW9uWSk7XG4gICAgfVxuICAgIHJldHVybjtcbiAgfTtcblxuICBkYXRhLmRlbHRhID0gTWF0aC5yb3VuZChkYXRhLnRhcmdldFBvc2l0aW9uIC0gZGF0YS5zdGFydFBvc2l0aW9uKTtcblxuICBpZiAoZGF0YS5zdGFydCA9PT0gbnVsbCkge1xuICAgIGRhdGEuc3RhcnQgPSB0aW1lc3RhbXA7XG4gIH1cblxuICBkYXRhLnByb2dyZXNzID0gdGltZXN0YW1wIC0gZGF0YS5zdGFydDtcblxuICBkYXRhLnBlcmNlbnQgPSBkYXRhLnByb2dyZXNzID49IGRhdGEuZHVyYXRpb24gPyAxIDogZWFzaW5nKGRhdGEucHJvZ3Jlc3MgLyBkYXRhLmR1cmF0aW9uKTtcblxuICBkYXRhLmN1cnJlbnRQb3NpdGlvbiA9IGRhdGEuc3RhcnRQb3NpdGlvbiArIE1hdGguY2VpbChkYXRhLmRlbHRhICogZGF0YS5wZXJjZW50KTtcblxuICBpZiAoZGF0YS5jb250YWluZXJFbGVtZW50ICYmIGRhdGEuY29udGFpbmVyRWxlbWVudCAhPT0gZG9jdW1lbnQgJiYgZGF0YS5jb250YWluZXJFbGVtZW50ICE9PSBkb2N1bWVudC5ib2R5KSB7XG4gICAgaWYgKG9wdGlvbnMuaG9yaXpvbnRhbCkge1xuICAgICAgZGF0YS5jb250YWluZXJFbGVtZW50LnNjcm9sbExlZnQgPSBkYXRhLmN1cnJlbnRQb3NpdGlvbjtcbiAgICB9IGVsc2Uge1xuICAgICAgZGF0YS5jb250YWluZXJFbGVtZW50LnNjcm9sbFRvcCA9IGRhdGEuY3VycmVudFBvc2l0aW9uO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpZiAob3B0aW9ucy5ob3Jpem9udGFsKSB7XG4gICAgICB3aW5kb3cuc2Nyb2xsVG8oZGF0YS5jdXJyZW50UG9zaXRpb24sIDApO1xuICAgIH0gZWxzZSB7XG4gICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgZGF0YS5jdXJyZW50UG9zaXRpb24pO1xuICAgIH1cbiAgfVxuXG4gIGlmIChkYXRhLnBlcmNlbnQgPCAxKSB7XG4gICAgdmFyIGVhc2VkQW5pbWF0ZSA9IGFuaW1hdGVTY3JvbGwuYmluZChudWxsLCBlYXNpbmcsIG9wdGlvbnMpO1xuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZUhlbHBlci5jYWxsKHdpbmRvdywgZWFzZWRBbmltYXRlKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoX3Njcm9sbEV2ZW50czIuZGVmYXVsdC5yZWdpc3RlcmVkWydlbmQnXSkge1xuICAgIF9zY3JvbGxFdmVudHMyLmRlZmF1bHQucmVnaXN0ZXJlZFsnZW5kJ10oZGF0YS50bywgZGF0YS50YXJnZXQsIGRhdGEuY3VycmVudFBvc2l0aW9uKTtcbiAgfVxufTtcblxudmFyIHNldENvbnRhaW5lciA9IGZ1bmN0aW9uIHNldENvbnRhaW5lcihvcHRpb25zKSB7XG4gIG9wdGlvbnMuZGF0YS5jb250YWluZXJFbGVtZW50ID0gIW9wdGlvbnMgPyBudWxsIDogb3B0aW9ucy5jb250YWluZXJJZCA/IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG9wdGlvbnMuY29udGFpbmVySWQpIDogb3B0aW9ucy5jb250YWluZXIgJiYgb3B0aW9ucy5jb250YWluZXIubm9kZVR5cGUgPyBvcHRpb25zLmNvbnRhaW5lciA6IGRvY3VtZW50O1xufTtcblxudmFyIGFuaW1hdGVUb3BTY3JvbGwgPSBmdW5jdGlvbiBhbmltYXRlVG9wU2Nyb2xsKHNjcm9sbE9mZnNldCwgb3B0aW9ucywgdG8sIHRhcmdldCkge1xuICBvcHRpb25zLmRhdGEgPSBvcHRpb25zLmRhdGEgfHwgbWFrZURhdGEoKTtcblxuICB3aW5kb3cuY2xlYXJUaW1lb3V0KG9wdGlvbnMuZGF0YS5kZWxheVRpbWVvdXQpO1xuXG4gIF9jYW5jZWxFdmVudHMyLmRlZmF1bHQuc3Vic2NyaWJlKGZ1bmN0aW9uICgpIHtcbiAgICBvcHRpb25zLmRhdGEuY2FuY2VsID0gdHJ1ZTtcbiAgfSk7XG5cbiAgc2V0Q29udGFpbmVyKG9wdGlvbnMpO1xuXG4gIG9wdGlvbnMuZGF0YS5zdGFydCA9IG51bGw7XG4gIG9wdGlvbnMuZGF0YS5jYW5jZWwgPSBmYWxzZTtcbiAgb3B0aW9ucy5kYXRhLnN0YXJ0UG9zaXRpb24gPSBvcHRpb25zLmhvcml6b250YWwgPyBjdXJyZW50UG9zaXRpb25YKG9wdGlvbnMpIDogY3VycmVudFBvc2l0aW9uWShvcHRpb25zKTtcbiAgb3B0aW9ucy5kYXRhLnRhcmdldFBvc2l0aW9uID0gb3B0aW9ucy5hYnNvbHV0ZSA/IHNjcm9sbE9mZnNldCA6IHNjcm9sbE9mZnNldCArIG9wdGlvbnMuZGF0YS5zdGFydFBvc2l0aW9uO1xuXG4gIGlmIChvcHRpb25zLmRhdGEuc3RhcnRQb3NpdGlvbiA9PT0gb3B0aW9ucy5kYXRhLnRhcmdldFBvc2l0aW9uKSB7XG4gICAgaWYgKF9zY3JvbGxFdmVudHMyLmRlZmF1bHQucmVnaXN0ZXJlZFsnZW5kJ10pIHtcbiAgICAgIF9zY3JvbGxFdmVudHMyLmRlZmF1bHQucmVnaXN0ZXJlZFsnZW5kJ10ob3B0aW9ucy5kYXRhLnRvLCBvcHRpb25zLmRhdGEudGFyZ2V0LCBvcHRpb25zLmRhdGEuY3VycmVudFBvc2l0aW9uKTtcbiAgICB9XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgb3B0aW9ucy5kYXRhLmRlbHRhID0gTWF0aC5yb3VuZChvcHRpb25zLmRhdGEudGFyZ2V0UG9zaXRpb24gLSBvcHRpb25zLmRhdGEuc3RhcnRQb3NpdGlvbik7XG5cbiAgb3B0aW9ucy5kYXRhLmR1cmF0aW9uID0gZnVuY3Rpb25XcmFwcGVyKG9wdGlvbnMuZHVyYXRpb24pKG9wdGlvbnMuZGF0YS5kZWx0YSk7XG4gIG9wdGlvbnMuZGF0YS5kdXJhdGlvbiA9IGlzTmFOKHBhcnNlRmxvYXQob3B0aW9ucy5kYXRhLmR1cmF0aW9uKSkgPyAxMDAwIDogcGFyc2VGbG9hdChvcHRpb25zLmRhdGEuZHVyYXRpb24pO1xuICBvcHRpb25zLmRhdGEudG8gPSB0bztcbiAgb3B0aW9ucy5kYXRhLnRhcmdldCA9IHRhcmdldDtcblxuICB2YXIgZWFzaW5nID0gZ2V0QW5pbWF0aW9uVHlwZShvcHRpb25zKTtcbiAgdmFyIGVhc2VkQW5pbWF0ZSA9IGFuaW1hdGVTY3JvbGwuYmluZChudWxsLCBlYXNpbmcsIG9wdGlvbnMpO1xuXG4gIGlmIChvcHRpb25zICYmIG9wdGlvbnMuZGVsYXkgPiAwKSB7XG4gICAgb3B0aW9ucy5kYXRhLmRlbGF5VGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmIChfc2Nyb2xsRXZlbnRzMi5kZWZhdWx0LnJlZ2lzdGVyZWRbJ2JlZ2luJ10pIHtcbiAgICAgICAgX3Njcm9sbEV2ZW50czIuZGVmYXVsdC5yZWdpc3RlcmVkWydiZWdpbiddKG9wdGlvbnMuZGF0YS50bywgb3B0aW9ucy5kYXRhLnRhcmdldCk7XG4gICAgICB9XG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWVIZWxwZXIuY2FsbCh3aW5kb3csIGVhc2VkQW5pbWF0ZSk7XG4gICAgfSwgb3B0aW9ucy5kZWxheSk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKF9zY3JvbGxFdmVudHMyLmRlZmF1bHQucmVnaXN0ZXJlZFsnYmVnaW4nXSkge1xuICAgIF9zY3JvbGxFdmVudHMyLmRlZmF1bHQucmVnaXN0ZXJlZFsnYmVnaW4nXShvcHRpb25zLmRhdGEudG8sIG9wdGlvbnMuZGF0YS50YXJnZXQpO1xuICB9XG4gIHJlcXVlc3RBbmltYXRpb25GcmFtZUhlbHBlci5jYWxsKHdpbmRvdywgZWFzZWRBbmltYXRlKTtcbn07XG5cbnZhciBwcm9jZWVkT3B0aW9ucyA9IGZ1bmN0aW9uIHByb2NlZWRPcHRpb25zKG9wdGlvbnMpIHtcbiAgb3B0aW9ucyA9IF9leHRlbmRzKHt9LCBvcHRpb25zKTtcbiAgb3B0aW9ucy5kYXRhID0gb3B0aW9ucy5kYXRhIHx8IG1ha2VEYXRhKCk7XG4gIG9wdGlvbnMuYWJzb2x1dGUgPSB0cnVlO1xuICByZXR1cm4gb3B0aW9ucztcbn07XG5cbnZhciBzY3JvbGxUb1RvcCA9IGZ1bmN0aW9uIHNjcm9sbFRvVG9wKG9wdGlvbnMpIHtcbiAgYW5pbWF0ZVRvcFNjcm9sbCgwLCBwcm9jZWVkT3B0aW9ucyhvcHRpb25zKSk7XG59O1xuXG52YXIgc2Nyb2xsVG8gPSBmdW5jdGlvbiBzY3JvbGxUbyh0b1Bvc2l0aW9uLCBvcHRpb25zKSB7XG4gIGFuaW1hdGVUb3BTY3JvbGwodG9Qb3NpdGlvbiwgcHJvY2VlZE9wdGlvbnMob3B0aW9ucykpO1xufTtcblxudmFyIHNjcm9sbFRvQm90dG9tID0gZnVuY3Rpb24gc2Nyb2xsVG9Cb3R0b20ob3B0aW9ucykge1xuICBvcHRpb25zID0gcHJvY2VlZE9wdGlvbnMob3B0aW9ucyk7XG4gIHNldENvbnRhaW5lcihvcHRpb25zKTtcbiAgYW5pbWF0ZVRvcFNjcm9sbChvcHRpb25zLmhvcml6b250YWwgPyBzY3JvbGxDb250YWluZXJXaWR0aChvcHRpb25zKSA6IHNjcm9sbENvbnRhaW5lckhlaWdodChvcHRpb25zKSwgb3B0aW9ucyk7XG59O1xuXG52YXIgc2Nyb2xsTW9yZSA9IGZ1bmN0aW9uIHNjcm9sbE1vcmUodG9Qb3NpdGlvbiwgb3B0aW9ucykge1xuICBvcHRpb25zID0gcHJvY2VlZE9wdGlvbnMob3B0aW9ucyk7XG4gIHNldENvbnRhaW5lcihvcHRpb25zKTtcbiAgdmFyIGN1cnJlbnRQb3NpdGlvbiA9IG9wdGlvbnMuaG9yaXpvbnRhbCA/IGN1cnJlbnRQb3NpdGlvblgob3B0aW9ucykgOiBjdXJyZW50UG9zaXRpb25ZKG9wdGlvbnMpO1xuICBhbmltYXRlVG9wU2Nyb2xsKHRvUG9zaXRpb24gKyBjdXJyZW50UG9zaXRpb24sIG9wdGlvbnMpO1xufTtcblxuZXhwb3J0cy5kZWZhdWx0ID0ge1xuICBhbmltYXRlVG9wU2Nyb2xsOiBhbmltYXRlVG9wU2Nyb2xsLFxuICBnZXRBbmltYXRpb25UeXBlOiBnZXRBbmltYXRpb25UeXBlLFxuICBzY3JvbGxUb1RvcDogc2Nyb2xsVG9Ub3AsXG4gIHNjcm9sbFRvQm90dG9tOiBzY3JvbGxUb0JvdHRvbSxcbiAgc2Nyb2xsVG86IHNjcm9sbFRvLFxuICBzY3JvbGxNb3JlOiBzY3JvbGxNb3JlXG59OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-scroll/modules/mixins/animate-scroll.js\n"); + +/***/ }), + +/***/ "./node_modules/react-scroll/modules/mixins/cancel-events.js": +/*!*******************************************************************!*\ + !*** ./node_modules/react-scroll/modules/mixins/cancel-events.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar _passiveEventListeners = __webpack_require__(/*! ./passive-event-listeners */ \"./node_modules/react-scroll/modules/mixins/passive-event-listeners.js\");\n\nvar events = ['mousedown', 'mousewheel', 'touchmove', 'keydown'];\n\nexports[\"default\"] = {\n subscribe: function subscribe(cancelEvent) {\n return typeof document !== 'undefined' && events.forEach(function (event) {\n return (0, _passiveEventListeners.addPassiveEventListener)(document, event, cancelEvent);\n });\n }\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2Nyb2xsL21vZHVsZXMvbWl4aW5zL2NhbmNlbC1ldmVudHMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDOztBQUVGLDZCQUE2QixtQkFBTyxDQUFDLHdHQUEyQjs7QUFFaEU7O0FBRUEsa0JBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2Nyb2xsL21vZHVsZXMvbWl4aW5zL2NhbmNlbC1ldmVudHMuanM/YzhkMyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5cbnZhciBfcGFzc2l2ZUV2ZW50TGlzdGVuZXJzID0gcmVxdWlyZSgnLi9wYXNzaXZlLWV2ZW50LWxpc3RlbmVycycpO1xuXG52YXIgZXZlbnRzID0gWydtb3VzZWRvd24nLCAnbW91c2V3aGVlbCcsICd0b3VjaG1vdmUnLCAna2V5ZG93biddO1xuXG5leHBvcnRzLmRlZmF1bHQgPSB7XG4gIHN1YnNjcmliZTogZnVuY3Rpb24gc3Vic2NyaWJlKGNhbmNlbEV2ZW50KSB7XG4gICAgcmV0dXJuIHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcgJiYgZXZlbnRzLmZvckVhY2goZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICByZXR1cm4gKDAsIF9wYXNzaXZlRXZlbnRMaXN0ZW5lcnMuYWRkUGFzc2l2ZUV2ZW50TGlzdGVuZXIpKGRvY3VtZW50LCBldmVudCwgY2FuY2VsRXZlbnQpO1xuICAgIH0pO1xuICB9XG59OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-scroll/modules/mixins/cancel-events.js\n"); + +/***/ }), + +/***/ "./node_modules/react-scroll/modules/mixins/passive-event-listeners.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/react-scroll/modules/mixins/passive-event-listeners.js ***! + \*****************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n/*\r\n * Tell the browser that the event listener won't prevent a scroll.\r\n * Allowing the browser to continue scrolling without having to\r\n * to wait for the listener to return.\r\n */\nvar addPassiveEventListener = exports.addPassiveEventListener = function addPassiveEventListener(target, eventName, listener) {\n var supportsPassiveOption = function () {\n var supportsPassiveOption = false;\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n supportsPassiveOption = true;\n }\n });\n window.addEventListener('test', null, opts);\n } catch (e) {}\n return supportsPassiveOption;\n }();\n target.addEventListener(eventName, listener, supportsPassiveOption ? { passive: true } : false);\n};\n\nvar removePassiveEventListener = exports.removePassiveEventListener = function removePassiveEventListener(target, eventName, listener) {\n target.removeEventListener(eventName, listener);\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2Nyb2xsL21vZHVsZXMvbWl4aW5zL3Bhc3NpdmUtZXZlbnQtbGlzdGVuZXJzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4QkFBOEIsK0JBQStCO0FBQzdEO0FBQ0E7QUFDQTtBQUNBLHlDQUF5QztBQUN6QztBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSxNQUFNO0FBQ047QUFDQSxHQUFHO0FBQ0gseUVBQXlFLGdCQUFnQjtBQUN6Rjs7QUFFQSxpQ0FBaUMsa0NBQWtDO0FBQ25FO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXNjcm9sbC9tb2R1bGVzL21peGlucy9wYXNzaXZlLWV2ZW50LWxpc3RlbmVycy5qcz9iOWQxIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbi8qXHJcbiAqIFRlbGwgdGhlIGJyb3dzZXIgdGhhdCB0aGUgZXZlbnQgbGlzdGVuZXIgd29uJ3QgcHJldmVudCBhIHNjcm9sbC5cclxuICogQWxsb3dpbmcgdGhlIGJyb3dzZXIgdG8gY29udGludWUgc2Nyb2xsaW5nIHdpdGhvdXQgaGF2aW5nIHRvXHJcbiAqIHRvIHdhaXQgZm9yIHRoZSBsaXN0ZW5lciB0byByZXR1cm4uXHJcbiAqL1xudmFyIGFkZFBhc3NpdmVFdmVudExpc3RlbmVyID0gZXhwb3J0cy5hZGRQYXNzaXZlRXZlbnRMaXN0ZW5lciA9IGZ1bmN0aW9uIGFkZFBhc3NpdmVFdmVudExpc3RlbmVyKHRhcmdldCwgZXZlbnROYW1lLCBsaXN0ZW5lcikge1xuICB2YXIgc3VwcG9ydHNQYXNzaXZlT3B0aW9uID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciBzdXBwb3J0c1Bhc3NpdmVPcHRpb24gPSBmYWxzZTtcbiAgICB0cnkge1xuICAgICAgdmFyIG9wdHMgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdwYXNzaXZlJywge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICAgICAgICBzdXBwb3J0c1Bhc3NpdmVPcHRpb24gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd0ZXN0JywgbnVsbCwgb3B0cyk7XG4gICAgfSBjYXRjaCAoZSkge31cbiAgICByZXR1cm4gc3VwcG9ydHNQYXNzaXZlT3B0aW9uO1xuICB9KCk7XG4gIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgbGlzdGVuZXIsIHN1cHBvcnRzUGFzc2l2ZU9wdGlvbiA/IHsgcGFzc2l2ZTogdHJ1ZSB9IDogZmFsc2UpO1xufTtcblxudmFyIHJlbW92ZVBhc3NpdmVFdmVudExpc3RlbmVyID0gZXhwb3J0cy5yZW1vdmVQYXNzaXZlRXZlbnRMaXN0ZW5lciA9IGZ1bmN0aW9uIHJlbW92ZVBhc3NpdmVFdmVudExpc3RlbmVyKHRhcmdldCwgZXZlbnROYW1lLCBsaXN0ZW5lcikge1xuICB0YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIGxpc3RlbmVyKTtcbn07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/react-scroll/modules/mixins/passive-event-listeners.js\n"); + +/***/ }), + +/***/ "./node_modules/react-scroll/modules/mixins/scroll-element.js": +/*!********************************************************************!*\ + !*** ./node_modules/react-scroll/modules/mixins/scroll-element.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _scroller = __webpack_require__(/*! ./scroller */ \"./node_modules/react-scroll/modules/mixins/scroller.js\");\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nvar _propTypes = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nexports[\"default\"] = function (Component) {\n var Element = function (_React$Component) {\n _inherits(Element, _React$Component);\n\n function Element(props) {\n _classCallCheck(this, Element);\n\n var _this = _possibleConstructorReturn(this, (Element.__proto__ || Object.getPrototypeOf(Element)).call(this, props));\n\n _this.childBindings = {\n domNode: null\n };\n return _this;\n }\n\n _createClass(Element, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (typeof window === 'undefined') {\n return false;\n }\n this.registerElems(this.props.name);\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n if (this.props.name !== prevProps.name) {\n this.registerElems(this.props.name);\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (typeof window === 'undefined') {\n return false;\n }\n _scroller2.default.unregister(this.props.name);\n }\n }, {\n key: 'registerElems',\n value: function registerElems(name) {\n _scroller2.default.register(name, this.childBindings.domNode);\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2.default.createElement(Component, _extends({}, this.props, { parentBindings: this.childBindings }));\n }\n }]);\n\n return Element;\n }(_react2.default.Component);\n\n ;\n\n Element.propTypes = {\n name: _propTypes2.default.string,\n id: _propTypes2.default.string\n };\n\n return Element;\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2Nyb2xsL21vZHVsZXMvbWl4aW5zL3Njcm9sbC1lbGVtZW50LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQzs7QUFFRixvREFBb0QsZ0JBQWdCLHNCQUFzQixPQUFPLDJCQUEyQiwwQkFBMEIseURBQXlELGlDQUFpQzs7QUFFaFAsaUNBQWlDLDJDQUEyQyxnQkFBZ0Isa0JBQWtCLE9BQU8sMkJBQTJCLHdEQUF3RCxnQ0FBZ0MsdURBQXVELCtEQUErRCx5REFBeUQscUVBQXFFLDZEQUE2RCx3QkFBd0I7O0FBRWpqQixhQUFhLG1CQUFPLENBQUMsNENBQU87O0FBRTVCOztBQUVBLGdCQUFnQixtQkFBTyxDQUFDLG9EQUFXOztBQUVuQzs7QUFFQSxnQkFBZ0IsbUJBQU8sQ0FBQywwRUFBWTs7QUFFcEM7O0FBRUEsaUJBQWlCLG1CQUFPLENBQUMsc0RBQVk7O0FBRXJDOztBQUVBLHVDQUF1Qyx1Q0FBdUM7O0FBRTlFLGtEQUFrRCwwQ0FBMEM7O0FBRTVGLGtEQUFrRCxhQUFhLHlGQUF5Rjs7QUFFeEosMkNBQTJDLCtEQUErRCx1R0FBdUcseUVBQXlFLGVBQWUsMEVBQTBFLEdBQUc7O0FBRXRYLGtCQUFlO0FBQ2Y7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLG1FQUFtRSxnQkFBZ0Isb0NBQW9DO0FBQ3ZIO0FBQ0EsS0FBSzs7QUFFTDtBQUNBLEdBQUc7O0FBRUg7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2Nyb2xsL21vZHVsZXMvbWl4aW5zL3Njcm9sbC1lbGVtZW50LmpzPzcyM2EiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuXG52YXIgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9O1xuXG52YXIgX2NyZWF0ZUNsYXNzID0gZnVuY3Rpb24gKCkgeyBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH0gcmV0dXJuIGZ1bmN0aW9uIChDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfTsgfSgpO1xuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfcmVhY3REb20gPSByZXF1aXJlKCdyZWFjdC1kb20nKTtcblxudmFyIF9yZWFjdERvbTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdERvbSk7XG5cbnZhciBfc2Nyb2xsZXIgPSByZXF1aXJlKCcuL3Njcm9sbGVyJyk7XG5cbnZhciBfc2Nyb2xsZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfc2Nyb2xsZXIpO1xuXG52YXIgX3Byb3BUeXBlcyA9IHJlcXVpcmUoJ3Byb3AtdHlwZXMnKTtcblxudmFyIF9wcm9wVHlwZXMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcHJvcFR5cGVzKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoIXNlbGYpIHsgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpOyB9IHJldHVybiBjYWxsICYmICh0eXBlb2YgY2FsbCA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSA/IGNhbGwgOiBzZWxmOyB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90IFwiICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG5leHBvcnRzLmRlZmF1bHQgPSBmdW5jdGlvbiAoQ29tcG9uZW50KSB7XG4gIHZhciBFbGVtZW50ID0gZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgICBfaW5oZXJpdHMoRWxlbWVudCwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgICBmdW5jdGlvbiBFbGVtZW50KHByb3BzKSB7XG4gICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgRWxlbWVudCk7XG5cbiAgICAgIHZhciBfdGhpcyA9IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIChFbGVtZW50Ll9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2YoRWxlbWVudCkpLmNhbGwodGhpcywgcHJvcHMpKTtcblxuICAgICAgX3RoaXMuY2hpbGRCaW5kaW5ncyA9IHtcbiAgICAgICAgZG9tTm9kZTogbnVsbFxuICAgICAgfTtcbiAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG5cbiAgICBfY3JlYXRlQ2xhc3MoRWxlbWVudCwgW3tcbiAgICAgIGtleTogJ2NvbXBvbmVudERpZE1vdW50JyxcbiAgICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVnaXN0ZXJFbGVtcyh0aGlzLnByb3BzLm5hbWUpO1xuICAgICAgfVxuICAgIH0sIHtcbiAgICAgIGtleTogJ2NvbXBvbmVudERpZFVwZGF0ZScsXG4gICAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcykge1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5uYW1lICE9PSBwcmV2UHJvcHMubmFtZSkge1xuICAgICAgICAgIHRoaXMucmVnaXN0ZXJFbGVtcyh0aGlzLnByb3BzLm5hbWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwge1xuICAgICAga2V5OiAnY29tcG9uZW50V2lsbFVubW91bnQnLFxuICAgICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgX3Njcm9sbGVyMi5kZWZhdWx0LnVucmVnaXN0ZXIodGhpcy5wcm9wcy5uYW1lKTtcbiAgICAgIH1cbiAgICB9LCB7XG4gICAgICBrZXk6ICdyZWdpc3RlckVsZW1zJyxcbiAgICAgIHZhbHVlOiBmdW5jdGlvbiByZWdpc3RlckVsZW1zKG5hbWUpIHtcbiAgICAgICAgX3Njcm9sbGVyMi5kZWZhdWx0LnJlZ2lzdGVyKG5hbWUsIHRoaXMuY2hpbGRCaW5kaW5ncy5kb21Ob2RlKTtcbiAgICAgIH1cbiAgICB9LCB7XG4gICAgICBrZXk6ICdyZW5kZXInLFxuICAgICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgcmV0dXJuIF9yZWFjdDIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KENvbXBvbmVudCwgX2V4dGVuZHMoe30sIHRoaXMucHJvcHMsIHsgcGFyZW50QmluZGluZ3M6IHRoaXMuY2hpbGRCaW5kaW5ncyB9KSk7XG4gICAgICB9XG4gICAgfV0pO1xuXG4gICAgcmV0dXJuIEVsZW1lbnQ7XG4gIH0oX3JlYWN0Mi5kZWZhdWx0LkNvbXBvbmVudCk7XG5cbiAgO1xuXG4gIEVsZW1lbnQucHJvcFR5cGVzID0ge1xuICAgIG5hbWU6IF9wcm9wVHlwZXMyLmRlZmF1bHQuc3RyaW5nLFxuICAgIGlkOiBfcHJvcFR5cGVzMi5kZWZhdWx0LnN0cmluZ1xuICB9O1xuXG4gIHJldHVybiBFbGVtZW50O1xufTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-scroll/modules/mixins/scroll-element.js\n"); + +/***/ }), + +/***/ "./node_modules/react-scroll/modules/mixins/scroll-events.js": +/*!*******************************************************************!*\ + !*** ./node_modules/react-scroll/modules/mixins/scroll-events.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n\tvalue: true\n}));\n\nvar Events = {\n\tregistered: {},\n\tscrollEvent: {\n\t\tregister: function register(evtName, callback) {\n\t\t\tEvents.registered[evtName] = callback;\n\t\t},\n\t\tremove: function remove(evtName) {\n\t\t\tEvents.registered[evtName] = null;\n\t\t}\n\t}\n};\n\nexports[\"default\"] = Events;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2Nyb2xsL21vZHVsZXMvbWl4aW5zL3Njcm9sbC1ldmVudHMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDOztBQUVGO0FBQ0EsZUFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGtCQUFlIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zY3JvbGwvbW9kdWxlcy9taXhpbnMvc2Nyb2xsLWV2ZW50cy5qcz9mNjZlIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcblx0dmFsdWU6IHRydWVcbn0pO1xuXG52YXIgRXZlbnRzID0ge1xuXHRyZWdpc3RlcmVkOiB7fSxcblx0c2Nyb2xsRXZlbnQ6IHtcblx0XHRyZWdpc3RlcjogZnVuY3Rpb24gcmVnaXN0ZXIoZXZ0TmFtZSwgY2FsbGJhY2spIHtcblx0XHRcdEV2ZW50cy5yZWdpc3RlcmVkW2V2dE5hbWVdID0gY2FsbGJhY2s7XG5cdFx0fSxcblx0XHRyZW1vdmU6IGZ1bmN0aW9uIHJlbW92ZShldnROYW1lKSB7XG5cdFx0XHRFdmVudHMucmVnaXN0ZXJlZFtldnROYW1lXSA9IG51bGw7XG5cdFx0fVxuXHR9XG59O1xuXG5leHBvcnRzLmRlZmF1bHQgPSBFdmVudHM7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/react-scroll/modules/mixins/scroll-events.js\n"); + +/***/ }), + +/***/ "./node_modules/react-scroll/modules/mixins/scroll-hash.js": +/*!*****************************************************************!*\ + !*** ./node_modules/react-scroll/modules/mixins/scroll-hash.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar _passiveEventListeners = __webpack_require__(/*! ./passive-event-listeners */ \"./node_modules/react-scroll/modules/mixins/passive-event-listeners.js\");\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/react-scroll/modules/mixins/utils.js\");\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar scrollHash = {\n mountFlag: false,\n initialized: false,\n scroller: null,\n containers: {},\n\n mount: function mount(scroller) {\n this.scroller = scroller;\n\n this.handleHashChange = this.handleHashChange.bind(this);\n window.addEventListener('hashchange', this.handleHashChange);\n\n this.initStateFromHash();\n this.mountFlag = true;\n },\n mapContainer: function mapContainer(to, container) {\n this.containers[to] = container;\n },\n isMounted: function isMounted() {\n return this.mountFlag;\n },\n isInitialized: function isInitialized() {\n return this.initialized;\n },\n initStateFromHash: function initStateFromHash() {\n var _this = this;\n\n var hash = this.getHash();\n if (hash) {\n window.setTimeout(function () {\n _this.scrollTo(hash, true);\n _this.initialized = true;\n }, 10);\n } else {\n this.initialized = true;\n }\n },\n scrollTo: function scrollTo(to, isInit) {\n var scroller = this.scroller;\n var element = scroller.get(to);\n if (element && (isInit || to !== scroller.getActiveLink())) {\n var container = this.containers[to] || document;\n scroller.scrollTo(to, { container: container });\n }\n },\n getHash: function getHash() {\n return _utils2.default.getHash();\n },\n changeHash: function changeHash(to, saveHashHistory) {\n if (this.isInitialized() && _utils2.default.getHash() !== to) {\n _utils2.default.updateHash(to, saveHashHistory);\n }\n },\n handleHashChange: function handleHashChange() {\n this.scrollTo(this.getHash());\n },\n unmount: function unmount() {\n this.scroller = null;\n this.containers = null;\n window.removeEventListener('hashchange', this.handleHashChange);\n }\n};\n\nexports[\"default\"] = scrollHash;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2Nyb2xsL21vZHVsZXMvbWl4aW5zL3Njcm9sbC1oYXNoLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQzs7QUFFRiw2QkFBNkIsbUJBQU8sQ0FBQyx3R0FBMkI7O0FBRWhFLGFBQWEsbUJBQU8sQ0FBQyxvRUFBUzs7QUFFOUI7O0FBRUEsdUNBQXVDLHVDQUF1Qzs7QUFFOUU7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7O0FBRWhCO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxNQUFNO0FBQ047QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCLHNCQUFzQjtBQUNwRDtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGtCQUFlIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zY3JvbGwvbW9kdWxlcy9taXhpbnMvc2Nyb2xsLWhhc2guanM/Y2E0MSJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5cbnZhciBfcGFzc2l2ZUV2ZW50TGlzdGVuZXJzID0gcmVxdWlyZSgnLi9wYXNzaXZlLWV2ZW50LWxpc3RlbmVycycpO1xuXG52YXIgX3V0aWxzID0gcmVxdWlyZSgnLi91dGlscycpO1xuXG52YXIgX3V0aWxzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3V0aWxzKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxudmFyIHNjcm9sbEhhc2ggPSB7XG4gIG1vdW50RmxhZzogZmFsc2UsXG4gIGluaXRpYWxpemVkOiBmYWxzZSxcbiAgc2Nyb2xsZXI6IG51bGwsXG4gIGNvbnRhaW5lcnM6IHt9LFxuXG4gIG1vdW50OiBmdW5jdGlvbiBtb3VudChzY3JvbGxlcikge1xuICAgIHRoaXMuc2Nyb2xsZXIgPSBzY3JvbGxlcjtcblxuICAgIHRoaXMuaGFuZGxlSGFzaENoYW5nZSA9IHRoaXMuaGFuZGxlSGFzaENoYW5nZS5iaW5kKHRoaXMpO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdoYXNoY2hhbmdlJywgdGhpcy5oYW5kbGVIYXNoQ2hhbmdlKTtcblxuICAgIHRoaXMuaW5pdFN0YXRlRnJvbUhhc2goKTtcbiAgICB0aGlzLm1vdW50RmxhZyA9IHRydWU7XG4gIH0sXG4gIG1hcENvbnRhaW5lcjogZnVuY3Rpb24gbWFwQ29udGFpbmVyKHRvLCBjb250YWluZXIpIHtcbiAgICB0aGlzLmNvbnRhaW5lcnNbdG9dID0gY29udGFpbmVyO1xuICB9LFxuICBpc01vdW50ZWQ6IGZ1bmN0aW9uIGlzTW91bnRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5tb3VudEZsYWc7XG4gIH0sXG4gIGlzSW5pdGlhbGl6ZWQ6IGZ1bmN0aW9uIGlzSW5pdGlhbGl6ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaW5pdGlhbGl6ZWQ7XG4gIH0sXG4gIGluaXRTdGF0ZUZyb21IYXNoOiBmdW5jdGlvbiBpbml0U3RhdGVGcm9tSGFzaCgpIHtcbiAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgdmFyIGhhc2ggPSB0aGlzLmdldEhhc2goKTtcbiAgICBpZiAoaGFzaCkge1xuICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICBfdGhpcy5zY3JvbGxUbyhoYXNoLCB0cnVlKTtcbiAgICAgICAgX3RoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgfSwgMTApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB9XG4gIH0sXG4gIHNjcm9sbFRvOiBmdW5jdGlvbiBzY3JvbGxUbyh0bywgaXNJbml0KSB7XG4gICAgdmFyIHNjcm9sbGVyID0gdGhpcy5zY3JvbGxlcjtcbiAgICB2YXIgZWxlbWVudCA9IHNjcm9sbGVyLmdldCh0byk7XG4gICAgaWYgKGVsZW1lbnQgJiYgKGlzSW5pdCB8fCB0byAhPT0gc2Nyb2xsZXIuZ2V0QWN0aXZlTGluaygpKSkge1xuICAgICAgdmFyIGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyc1t0b10gfHwgZG9jdW1lbnQ7XG4gICAgICBzY3JvbGxlci5zY3JvbGxUbyh0bywgeyBjb250YWluZXI6IGNvbnRhaW5lciB9KTtcbiAgICB9XG4gIH0sXG4gIGdldEhhc2g6IGZ1bmN0aW9uIGdldEhhc2goKSB7XG4gICAgcmV0dXJuIF91dGlsczIuZGVmYXVsdC5nZXRIYXNoKCk7XG4gIH0sXG4gIGNoYW5nZUhhc2g6IGZ1bmN0aW9uIGNoYW5nZUhhc2godG8sIHNhdmVIYXNoSGlzdG9yeSkge1xuICAgIGlmICh0aGlzLmlzSW5pdGlhbGl6ZWQoKSAmJiBfdXRpbHMyLmRlZmF1bHQuZ2V0SGFzaCgpICE9PSB0bykge1xuICAgICAgX3V0aWxzMi5kZWZhdWx0LnVwZGF0ZUhhc2godG8sIHNhdmVIYXNoSGlzdG9yeSk7XG4gICAgfVxuICB9LFxuICBoYW5kbGVIYXNoQ2hhbmdlOiBmdW5jdGlvbiBoYW5kbGVIYXNoQ2hhbmdlKCkge1xuICAgIHRoaXMuc2Nyb2xsVG8odGhpcy5nZXRIYXNoKCkpO1xuICB9LFxuICB1bm1vdW50OiBmdW5jdGlvbiB1bm1vdW50KCkge1xuICAgIHRoaXMuc2Nyb2xsZXIgPSBudWxsO1xuICAgIHRoaXMuY29udGFpbmVycyA9IG51bGw7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2hhc2hjaGFuZ2UnLCB0aGlzLmhhbmRsZUhhc2hDaGFuZ2UpO1xuICB9XG59O1xuXG5leHBvcnRzLmRlZmF1bHQgPSBzY3JvbGxIYXNoOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-scroll/modules/mixins/scroll-hash.js\n"); + +/***/ }), + +/***/ "./node_modules/react-scroll/modules/mixins/scroll-link.js": +/*!*****************************************************************!*\ + !*** ./node_modules/react-scroll/modules/mixins/scroll-link.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollSpy = __webpack_require__(/*! ./scroll-spy */ \"./node_modules/react-scroll/modules/mixins/scroll-spy.js\");\n\nvar _scrollSpy2 = _interopRequireDefault(_scrollSpy);\n\nvar _scroller = __webpack_require__(/*! ./scroller */ \"./node_modules/react-scroll/modules/mixins/scroller.js\");\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nvar _propTypes = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _scrollHash = __webpack_require__(/*! ./scroll-hash */ \"./node_modules/react-scroll/modules/mixins/scroll-hash.js\");\n\nvar _scrollHash2 = _interopRequireDefault(_scrollHash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar protoTypes = {\n to: _propTypes2.default.string.isRequired,\n containerId: _propTypes2.default.string,\n container: _propTypes2.default.object,\n activeClass: _propTypes2.default.string,\n spy: _propTypes2.default.bool,\n horizontal: _propTypes2.default.bool,\n smooth: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]),\n offset: _propTypes2.default.number,\n delay: _propTypes2.default.number,\n isDynamic: _propTypes2.default.bool,\n onClick: _propTypes2.default.func,\n duration: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n absolute: _propTypes2.default.bool,\n onSetActive: _propTypes2.default.func,\n onSetInactive: _propTypes2.default.func,\n ignoreCancelEvents: _propTypes2.default.bool,\n hashSpy: _propTypes2.default.bool,\n saveHashHistory: _propTypes2.default.bool,\n spyThrottle: _propTypes2.default.number\n};\n\nexports[\"default\"] = function (Component, customScroller) {\n\n var scroller = customScroller || _scroller2.default;\n\n var Link = function (_React$PureComponent) {\n _inherits(Link, _React$PureComponent);\n\n function Link(props) {\n _classCallCheck(this, Link);\n\n var _this = _possibleConstructorReturn(this, (Link.__proto__ || Object.getPrototypeOf(Link)).call(this, props));\n\n _initialiseProps.call(_this);\n\n _this.state = {\n active: false\n };\n return _this;\n }\n\n _createClass(Link, [{\n key: 'getScrollSpyContainer',\n value: function getScrollSpyContainer() {\n var containerId = this.props.containerId;\n var container = this.props.container;\n\n if (containerId && !container) {\n return document.getElementById(containerId);\n }\n\n if (container && container.nodeType) {\n return container;\n }\n\n return document;\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.props.spy || this.props.hashSpy) {\n var scrollSpyContainer = this.getScrollSpyContainer();\n\n if (!_scrollSpy2.default.isMounted(scrollSpyContainer)) {\n _scrollSpy2.default.mount(scrollSpyContainer, this.props.spyThrottle);\n }\n\n if (this.props.hashSpy) {\n if (!_scrollHash2.default.isMounted()) {\n _scrollHash2.default.mount(scroller);\n }\n _scrollHash2.default.mapContainer(this.props.to, scrollSpyContainer);\n }\n\n _scrollSpy2.default.addSpyHandler(this.spyHandler, scrollSpyContainer);\n\n this.setState({\n container: scrollSpyContainer\n });\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n _scrollSpy2.default.unmount(this.stateHandler, this.spyHandler);\n }\n }, {\n key: 'render',\n value: function render() {\n var className = \"\";\n\n if (this.state && this.state.active) {\n className = ((this.props.className || \"\") + \" \" + (this.props.activeClass || \"active\")).trim();\n } else {\n className = this.props.className;\n }\n\n var props = _extends({}, this.props);\n\n for (var prop in protoTypes) {\n if (props.hasOwnProperty(prop)) {\n delete props[prop];\n }\n }\n\n props.className = className;\n props.onClick = this.handleClick;\n\n return _react2.default.createElement(Component, props);\n }\n }]);\n\n return Link;\n }(_react2.default.PureComponent);\n\n var _initialiseProps = function _initialiseProps() {\n var _this2 = this;\n\n this.scrollTo = function (to, props) {\n scroller.scrollTo(to, _extends({}, _this2.state, props));\n };\n\n this.handleClick = function (event) {\n\n /*\r\n * give the posibility to override onClick\r\n */\n\n if (_this2.props.onClick) {\n _this2.props.onClick(event);\n }\n\n /*\r\n * dont bubble the navigation\r\n */\n\n if (event.stopPropagation) event.stopPropagation();\n if (event.preventDefault) event.preventDefault();\n\n /*\r\n * do the magic!\r\n */\n _this2.scrollTo(_this2.props.to, _this2.props);\n };\n\n this.spyHandler = function (x, y) {\n var scrollSpyContainer = _this2.getScrollSpyContainer();\n\n if (_scrollHash2.default.isMounted() && !_scrollHash2.default.isInitialized()) {\n return;\n }\n\n var horizontal = _this2.props.horizontal;\n\n var to = _this2.props.to;\n var element = null;\n var isInside = void 0;\n var isOutside = void 0;\n\n if (horizontal) {\n var elemLeftBound = 0;\n var elemRightBound = 0;\n var containerLeft = 0;\n\n if (scrollSpyContainer.getBoundingClientRect) {\n var containerCords = scrollSpyContainer.getBoundingClientRect();\n containerLeft = containerCords.left;\n }\n\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n if (!element) {\n return;\n }\n\n var cords = element.getBoundingClientRect();\n elemLeftBound = cords.left - containerLeft + x;\n elemRightBound = elemLeftBound + cords.width;\n }\n\n var offsetX = x - _this2.props.offset;\n isInside = offsetX >= Math.floor(elemLeftBound) && offsetX < Math.floor(elemRightBound);\n isOutside = offsetX < Math.floor(elemLeftBound) || offsetX >= Math.floor(elemRightBound);\n } else {\n var elemTopBound = 0;\n var elemBottomBound = 0;\n var containerTop = 0;\n\n if (scrollSpyContainer.getBoundingClientRect) {\n var _containerCords = scrollSpyContainer.getBoundingClientRect();\n containerTop = _containerCords.top;\n }\n\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n if (!element) {\n return;\n }\n\n var _cords = element.getBoundingClientRect();\n elemTopBound = _cords.top - containerTop + y;\n elemBottomBound = elemTopBound + _cords.height;\n }\n\n var offsetY = y - _this2.props.offset;\n isInside = offsetY >= Math.floor(elemTopBound) && offsetY < Math.floor(elemBottomBound);\n isOutside = offsetY < Math.floor(elemTopBound) || offsetY >= Math.floor(elemBottomBound);\n }\n\n var activeLink = scroller.getActiveLink();\n\n if (isOutside) {\n if (to === activeLink) {\n scroller.setActiveLink(void 0);\n }\n\n if (_this2.props.hashSpy && _scrollHash2.default.getHash() === to) {\n var _props$saveHashHistor = _this2.props.saveHashHistory,\n saveHashHistory = _props$saveHashHistor === undefined ? false : _props$saveHashHistor;\n\n _scrollHash2.default.changeHash(\"\", saveHashHistory);\n }\n\n if (_this2.props.spy && _this2.state.active) {\n _this2.setState({ active: false });\n _this2.props.onSetInactive && _this2.props.onSetInactive(to, element);\n }\n }\n\n if (isInside && (activeLink !== to || _this2.state.active === false)) {\n scroller.setActiveLink(to);\n\n var _props$saveHashHistor2 = _this2.props.saveHashHistory,\n _saveHashHistory = _props$saveHashHistor2 === undefined ? false : _props$saveHashHistor2;\n\n _this2.props.hashSpy && _scrollHash2.default.changeHash(to, _saveHashHistory);\n\n if (_this2.props.spy) {\n _this2.setState({ active: true });\n _this2.props.onSetActive && _this2.props.onSetActive(to, element);\n }\n }\n };\n };\n\n ;\n\n Link.propTypes = protoTypes;\n\n Link.defaultProps = { offset: 0 };\n\n return Link;\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2Nyb2xsL21vZHVsZXMvbWl4aW5zL3Njcm9sbC1saW5rLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQzs7QUFFRixvREFBb0QsZ0JBQWdCLHNCQUFzQixPQUFPLDJCQUEyQiwwQkFBMEIseURBQXlELGlDQUFpQzs7QUFFaFAsaUNBQWlDLDJDQUEyQyxnQkFBZ0Isa0JBQWtCLE9BQU8sMkJBQTJCLHdEQUF3RCxnQ0FBZ0MsdURBQXVELCtEQUErRCx5REFBeUQscUVBQXFFLDZEQUE2RCx3QkFBd0I7O0FBRWpqQixhQUFhLG1CQUFPLENBQUMsNENBQU87O0FBRTVCOztBQUVBLGlCQUFpQixtQkFBTyxDQUFDLDhFQUFjOztBQUV2Qzs7QUFFQSxnQkFBZ0IsbUJBQU8sQ0FBQywwRUFBWTs7QUFFcEM7O0FBRUEsaUJBQWlCLG1CQUFPLENBQUMsc0RBQVk7O0FBRXJDOztBQUVBLGtCQUFrQixtQkFBTyxDQUFDLGdGQUFlOztBQUV6Qzs7QUFFQSx1Q0FBdUMsdUNBQXVDOztBQUU5RSxrREFBa0QsMENBQTBDOztBQUU1RixrREFBa0QsYUFBYSx5RkFBeUY7O0FBRXhKLDJDQUEyQywrREFBK0QsdUdBQXVHLHlFQUF5RSxlQUFlLDBFQUEwRSxHQUFHOztBQUV0WDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsa0JBQWU7O0FBRWY7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTs7QUFFQSwrQkFBK0I7O0FBRS9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBLEdBQUc7O0FBRUg7QUFDQTs7QUFFQTtBQUNBLHVDQUF1QztBQUN2Qzs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSw0QkFBNEIsZUFBZTtBQUMzQztBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0EsNEJBQTRCLGNBQWM7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQSx3QkFBd0I7O0FBRXhCO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXNjcm9sbC9tb2R1bGVzL21peGlucy9zY3JvbGwtbGluay5qcz9hZWE4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcblxudmFyIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTtcblxudmFyIF9jcmVhdGVDbGFzcyA9IGZ1bmN0aW9uICgpIHsgZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9IHJldHVybiBmdW5jdGlvbiAoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH07IH0oKTtcblxudmFyIF9yZWFjdCA9IHJlcXVpcmUoJ3JlYWN0Jyk7XG5cbnZhciBfcmVhY3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcmVhY3QpO1xuXG52YXIgX3Njcm9sbFNweSA9IHJlcXVpcmUoJy4vc2Nyb2xsLXNweScpO1xuXG52YXIgX3Njcm9sbFNweTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9zY3JvbGxTcHkpO1xuXG52YXIgX3Njcm9sbGVyID0gcmVxdWlyZSgnLi9zY3JvbGxlcicpO1xuXG52YXIgX3Njcm9sbGVyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3Njcm9sbGVyKTtcblxudmFyIF9wcm9wVHlwZXMgPSByZXF1aXJlKCdwcm9wLXR5cGVzJyk7XG5cbnZhciBfcHJvcFR5cGVzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3Byb3BUeXBlcyk7XG5cbnZhciBfc2Nyb2xsSGFzaCA9IHJlcXVpcmUoJy4vc2Nyb2xsLWhhc2gnKTtcblxudmFyIF9zY3JvbGxIYXNoMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3Njcm9sbEhhc2gpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmICghc2VsZikgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIGNhbGwgJiYgKHR5cGVvZiBjYWxsID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpID8gY2FsbCA6IHNlbGY7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgXCIgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBwcm90b1R5cGVzID0ge1xuICB0bzogX3Byb3BUeXBlczIuZGVmYXVsdC5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgY29udGFpbmVySWQ6IF9wcm9wVHlwZXMyLmRlZmF1bHQuc3RyaW5nLFxuICBjb250YWluZXI6IF9wcm9wVHlwZXMyLmRlZmF1bHQub2JqZWN0LFxuICBhY3RpdmVDbGFzczogX3Byb3BUeXBlczIuZGVmYXVsdC5zdHJpbmcsXG4gIHNweTogX3Byb3BUeXBlczIuZGVmYXVsdC5ib29sLFxuICBob3Jpem9udGFsOiBfcHJvcFR5cGVzMi5kZWZhdWx0LmJvb2wsXG4gIHNtb290aDogX3Byb3BUeXBlczIuZGVmYXVsdC5vbmVPZlR5cGUoW19wcm9wVHlwZXMyLmRlZmF1bHQuYm9vbCwgX3Byb3BUeXBlczIuZGVmYXVsdC5zdHJpbmddKSxcbiAgb2Zmc2V0OiBfcHJvcFR5cGVzMi5kZWZhdWx0Lm51bWJlcixcbiAgZGVsYXk6IF9wcm9wVHlwZXMyLmRlZmF1bHQubnVtYmVyLFxuICBpc0R5bmFtaWM6IF9wcm9wVHlwZXMyLmRlZmF1bHQuYm9vbCxcbiAgb25DbGljazogX3Byb3BUeXBlczIuZGVmYXVsdC5mdW5jLFxuICBkdXJhdGlvbjogX3Byb3BUeXBlczIuZGVmYXVsdC5vbmVPZlR5cGUoW19wcm9wVHlwZXMyLmRlZmF1bHQubnVtYmVyLCBfcHJvcFR5cGVzMi5kZWZhdWx0LmZ1bmNdKSxcbiAgYWJzb2x1dGU6IF9wcm9wVHlwZXMyLmRlZmF1bHQuYm9vbCxcbiAgb25TZXRBY3RpdmU6IF9wcm9wVHlwZXMyLmRlZmF1bHQuZnVuYyxcbiAgb25TZXRJbmFjdGl2ZTogX3Byb3BUeXBlczIuZGVmYXVsdC5mdW5jLFxuICBpZ25vcmVDYW5jZWxFdmVudHM6IF9wcm9wVHlwZXMyLmRlZmF1bHQuYm9vbCxcbiAgaGFzaFNweTogX3Byb3BUeXBlczIuZGVmYXVsdC5ib29sLFxuICBzYXZlSGFzaEhpc3Rvcnk6IF9wcm9wVHlwZXMyLmRlZmF1bHQuYm9vbCxcbiAgc3B5VGhyb3R0bGU6IF9wcm9wVHlwZXMyLmRlZmF1bHQubnVtYmVyXG59O1xuXG5leHBvcnRzLmRlZmF1bHQgPSBmdW5jdGlvbiAoQ29tcG9uZW50LCBjdXN0b21TY3JvbGxlcikge1xuXG4gIHZhciBzY3JvbGxlciA9IGN1c3RvbVNjcm9sbGVyIHx8IF9zY3JvbGxlcjIuZGVmYXVsdDtcblxuICB2YXIgTGluayA9IGZ1bmN0aW9uIChfUmVhY3QkUHVyZUNvbXBvbmVudCkge1xuICAgIF9pbmhlcml0cyhMaW5rLCBfUmVhY3QkUHVyZUNvbXBvbmVudCk7XG5cbiAgICBmdW5jdGlvbiBMaW5rKHByb3BzKSB7XG4gICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgTGluayk7XG5cbiAgICAgIHZhciBfdGhpcyA9IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIChMaW5rLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2YoTGluaykpLmNhbGwodGhpcywgcHJvcHMpKTtcblxuICAgICAgX2luaXRpYWxpc2VQcm9wcy5jYWxsKF90aGlzKTtcblxuICAgICAgX3RoaXMuc3RhdGUgPSB7XG4gICAgICAgIGFjdGl2ZTogZmFsc2VcbiAgICAgIH07XG4gICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuXG4gICAgX2NyZWF0ZUNsYXNzKExpbmssIFt7XG4gICAgICBrZXk6ICdnZXRTY3JvbGxTcHlDb250YWluZXInLFxuICAgICAgdmFsdWU6IGZ1bmN0aW9uIGdldFNjcm9sbFNweUNvbnRhaW5lcigpIHtcbiAgICAgICAgdmFyIGNvbnRhaW5lcklkID0gdGhpcy5wcm9wcy5jb250YWluZXJJZDtcbiAgICAgICAgdmFyIGNvbnRhaW5lciA9IHRoaXMucHJvcHMuY29udGFpbmVyO1xuXG4gICAgICAgIGlmIChjb250YWluZXJJZCAmJiAhY29udGFpbmVyKSB7XG4gICAgICAgICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGNvbnRhaW5lcklkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb250YWluZXIgJiYgY29udGFpbmVyLm5vZGVUeXBlKSB7XG4gICAgICAgICAgcmV0dXJuIGNvbnRhaW5lcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBkb2N1bWVudDtcbiAgICAgIH1cbiAgICB9LCB7XG4gICAgICBrZXk6ICdjb21wb25lbnREaWRNb3VudCcsXG4gICAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLnNweSB8fCB0aGlzLnByb3BzLmhhc2hTcHkpIHtcbiAgICAgICAgICB2YXIgc2Nyb2xsU3B5Q29udGFpbmVyID0gdGhpcy5nZXRTY3JvbGxTcHlDb250YWluZXIoKTtcblxuICAgICAgICAgIGlmICghX3Njcm9sbFNweTIuZGVmYXVsdC5pc01vdW50ZWQoc2Nyb2xsU3B5Q29udGFpbmVyKSkge1xuICAgICAgICAgICAgX3Njcm9sbFNweTIuZGVmYXVsdC5tb3VudChzY3JvbGxTcHlDb250YWluZXIsIHRoaXMucHJvcHMuc3B5VGhyb3R0bGUpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0aGlzLnByb3BzLmhhc2hTcHkpIHtcbiAgICAgICAgICAgIGlmICghX3Njcm9sbEhhc2gyLmRlZmF1bHQuaXNNb3VudGVkKCkpIHtcbiAgICAgICAgICAgICAgX3Njcm9sbEhhc2gyLmRlZmF1bHQubW91bnQoc2Nyb2xsZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgX3Njcm9sbEhhc2gyLmRlZmF1bHQubWFwQ29udGFpbmVyKHRoaXMucHJvcHMudG8sIHNjcm9sbFNweUNvbnRhaW5lcik7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgX3Njcm9sbFNweTIuZGVmYXVsdC5hZGRTcHlIYW5kbGVyKHRoaXMuc3B5SGFuZGxlciwgc2Nyb2xsU3B5Q29udGFpbmVyKTtcblxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgY29udGFpbmVyOiBzY3JvbGxTcHlDb250YWluZXJcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sIHtcbiAgICAgIGtleTogJ2NvbXBvbmVudFdpbGxVbm1vdW50JyxcbiAgICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgICAgX3Njcm9sbFNweTIuZGVmYXVsdC51bm1vdW50KHRoaXMuc3RhdGVIYW5kbGVyLCB0aGlzLnNweUhhbmRsZXIpO1xuICAgICAgfVxuICAgIH0sIHtcbiAgICAgIGtleTogJ3JlbmRlcicsXG4gICAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICB2YXIgY2xhc3NOYW1lID0gXCJcIjtcblxuICAgICAgICBpZiAodGhpcy5zdGF0ZSAmJiB0aGlzLnN0YXRlLmFjdGl2ZSkge1xuICAgICAgICAgIGNsYXNzTmFtZSA9ICgodGhpcy5wcm9wcy5jbGFzc05hbWUgfHwgXCJcIikgKyBcIiBcIiArICh0aGlzLnByb3BzLmFjdGl2ZUNsYXNzIHx8IFwiYWN0aXZlXCIpKS50cmltKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY2xhc3NOYW1lID0gdGhpcy5wcm9wcy5jbGFzc05hbWU7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgcHJvcHMgPSBfZXh0ZW5kcyh7fSwgdGhpcy5wcm9wcyk7XG5cbiAgICAgICAgZm9yICh2YXIgcHJvcCBpbiBwcm90b1R5cGVzKSB7XG4gICAgICAgICAgaWYgKHByb3BzLmhhc093blByb3BlcnR5KHByb3ApKSB7XG4gICAgICAgICAgICBkZWxldGUgcHJvcHNbcHJvcF07XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcHJvcHMuY2xhc3NOYW1lID0gY2xhc3NOYW1lO1xuICAgICAgICBwcm9wcy5vbkNsaWNrID0gdGhpcy5oYW5kbGVDbGljaztcblxuICAgICAgICByZXR1cm4gX3JlYWN0Mi5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoQ29tcG9uZW50LCBwcm9wcyk7XG4gICAgICB9XG4gICAgfV0pO1xuXG4gICAgcmV0dXJuIExpbms7XG4gIH0oX3JlYWN0Mi5kZWZhdWx0LlB1cmVDb21wb25lbnQpO1xuXG4gIHZhciBfaW5pdGlhbGlzZVByb3BzID0gZnVuY3Rpb24gX2luaXRpYWxpc2VQcm9wcygpIHtcbiAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgIHRoaXMuc2Nyb2xsVG8gPSBmdW5jdGlvbiAodG8sIHByb3BzKSB7XG4gICAgICBzY3JvbGxlci5zY3JvbGxUbyh0bywgX2V4dGVuZHMoe30sIF90aGlzMi5zdGF0ZSwgcHJvcHMpKTtcbiAgICB9O1xuXG4gICAgdGhpcy5oYW5kbGVDbGljayA9IGZ1bmN0aW9uIChldmVudCkge1xuXG4gICAgICAvKlxyXG4gICAgICAgKiBnaXZlIHRoZSBwb3NpYmlsaXR5IHRvIG92ZXJyaWRlIG9uQ2xpY2tcclxuICAgICAgICovXG5cbiAgICAgIGlmIChfdGhpczIucHJvcHMub25DbGljaykge1xuICAgICAgICBfdGhpczIucHJvcHMub25DbGljayhldmVudCk7XG4gICAgICB9XG5cbiAgICAgIC8qXHJcbiAgICAgICAqIGRvbnQgYnViYmxlIHRoZSBuYXZpZ2F0aW9uXHJcbiAgICAgICAqL1xuXG4gICAgICBpZiAoZXZlbnQuc3RvcFByb3BhZ2F0aW9uKSBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIGlmIChldmVudC5wcmV2ZW50RGVmYXVsdCkgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgLypcclxuICAgICAgICogZG8gdGhlIG1hZ2ljIVxyXG4gICAgICAgKi9cbiAgICAgIF90aGlzMi5zY3JvbGxUbyhfdGhpczIucHJvcHMudG8sIF90aGlzMi5wcm9wcyk7XG4gICAgfTtcblxuICAgIHRoaXMuc3B5SGFuZGxlciA9IGZ1bmN0aW9uICh4LCB5KSB7XG4gICAgICB2YXIgc2Nyb2xsU3B5Q29udGFpbmVyID0gX3RoaXMyLmdldFNjcm9sbFNweUNvbnRhaW5lcigpO1xuXG4gICAgICBpZiAoX3Njcm9sbEhhc2gyLmRlZmF1bHQuaXNNb3VudGVkKCkgJiYgIV9zY3JvbGxIYXNoMi5kZWZhdWx0LmlzSW5pdGlhbGl6ZWQoKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHZhciBob3Jpem9udGFsID0gX3RoaXMyLnByb3BzLmhvcml6b250YWw7XG5cbiAgICAgIHZhciB0byA9IF90aGlzMi5wcm9wcy50bztcbiAgICAgIHZhciBlbGVtZW50ID0gbnVsbDtcbiAgICAgIHZhciBpc0luc2lkZSA9IHZvaWQgMDtcbiAgICAgIHZhciBpc091dHNpZGUgPSB2b2lkIDA7XG5cbiAgICAgIGlmIChob3Jpem9udGFsKSB7XG4gICAgICAgIHZhciBlbGVtTGVmdEJvdW5kID0gMDtcbiAgICAgICAgdmFyIGVsZW1SaWdodEJvdW5kID0gMDtcbiAgICAgICAgdmFyIGNvbnRhaW5lckxlZnQgPSAwO1xuXG4gICAgICAgIGlmIChzY3JvbGxTcHlDb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KSB7XG4gICAgICAgICAgdmFyIGNvbnRhaW5lckNvcmRzID0gc2Nyb2xsU3B5Q29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgIGNvbnRhaW5lckxlZnQgPSBjb250YWluZXJDb3Jkcy5sZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFlbGVtZW50IHx8IF90aGlzMi5wcm9wcy5pc0R5bmFtaWMpIHtcbiAgICAgICAgICBlbGVtZW50ID0gc2Nyb2xsZXIuZ2V0KHRvKTtcbiAgICAgICAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB2YXIgY29yZHMgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgIGVsZW1MZWZ0Qm91bmQgPSBjb3Jkcy5sZWZ0IC0gY29udGFpbmVyTGVmdCArIHg7XG4gICAgICAgICAgZWxlbVJpZ2h0Qm91bmQgPSBlbGVtTGVmdEJvdW5kICsgY29yZHMud2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgb2Zmc2V0WCA9IHggLSBfdGhpczIucHJvcHMub2Zmc2V0O1xuICAgICAgICBpc0luc2lkZSA9IG9mZnNldFggPj0gTWF0aC5mbG9vcihlbGVtTGVmdEJvdW5kKSAmJiBvZmZzZXRYIDwgTWF0aC5mbG9vcihlbGVtUmlnaHRCb3VuZCk7XG4gICAgICAgIGlzT3V0c2lkZSA9IG9mZnNldFggPCBNYXRoLmZsb29yKGVsZW1MZWZ0Qm91bmQpIHx8IG9mZnNldFggPj0gTWF0aC5mbG9vcihlbGVtUmlnaHRCb3VuZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgZWxlbVRvcEJvdW5kID0gMDtcbiAgICAgICAgdmFyIGVsZW1Cb3R0b21Cb3VuZCA9IDA7XG4gICAgICAgIHZhciBjb250YWluZXJUb3AgPSAwO1xuXG4gICAgICAgIGlmIChzY3JvbGxTcHlDb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KSB7XG4gICAgICAgICAgdmFyIF9jb250YWluZXJDb3JkcyA9IHNjcm9sbFNweUNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICBjb250YWluZXJUb3AgPSBfY29udGFpbmVyQ29yZHMudG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFlbGVtZW50IHx8IF90aGlzMi5wcm9wcy5pc0R5bmFtaWMpIHtcbiAgICAgICAgICBlbGVtZW50ID0gc2Nyb2xsZXIuZ2V0KHRvKTtcbiAgICAgICAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB2YXIgX2NvcmRzID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICBlbGVtVG9wQm91bmQgPSBfY29yZHMudG9wIC0gY29udGFpbmVyVG9wICsgeTtcbiAgICAgICAgICBlbGVtQm90dG9tQm91bmQgPSBlbGVtVG9wQm91bmQgKyBfY29yZHMuaGVpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIG9mZnNldFkgPSB5IC0gX3RoaXMyLnByb3BzLm9mZnNldDtcbiAgICAgICAgaXNJbnNpZGUgPSBvZmZzZXRZID49IE1hdGguZmxvb3IoZWxlbVRvcEJvdW5kKSAmJiBvZmZzZXRZIDwgTWF0aC5mbG9vcihlbGVtQm90dG9tQm91bmQpO1xuICAgICAgICBpc091dHNpZGUgPSBvZmZzZXRZIDwgTWF0aC5mbG9vcihlbGVtVG9wQm91bmQpIHx8IG9mZnNldFkgPj0gTWF0aC5mbG9vcihlbGVtQm90dG9tQm91bmQpO1xuICAgICAgfVxuXG4gICAgICB2YXIgYWN0aXZlTGluayA9IHNjcm9sbGVyLmdldEFjdGl2ZUxpbmsoKTtcblxuICAgICAgaWYgKGlzT3V0c2lkZSkge1xuICAgICAgICBpZiAodG8gPT09IGFjdGl2ZUxpbmspIHtcbiAgICAgICAgICBzY3JvbGxlci5zZXRBY3RpdmVMaW5rKHZvaWQgMCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoX3RoaXMyLnByb3BzLmhhc2hTcHkgJiYgX3Njcm9sbEhhc2gyLmRlZmF1bHQuZ2V0SGFzaCgpID09PSB0bykge1xuICAgICAgICAgIHZhciBfcHJvcHMkc2F2ZUhhc2hIaXN0b3IgPSBfdGhpczIucHJvcHMuc2F2ZUhhc2hIaXN0b3J5LFxuICAgICAgICAgICAgICBzYXZlSGFzaEhpc3RvcnkgPSBfcHJvcHMkc2F2ZUhhc2hIaXN0b3IgPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogX3Byb3BzJHNhdmVIYXNoSGlzdG9yO1xuXG4gICAgICAgICAgX3Njcm9sbEhhc2gyLmRlZmF1bHQuY2hhbmdlSGFzaChcIlwiLCBzYXZlSGFzaEhpc3RvcnkpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKF90aGlzMi5wcm9wcy5zcHkgJiYgX3RoaXMyLnN0YXRlLmFjdGl2ZSkge1xuICAgICAgICAgIF90aGlzMi5zZXRTdGF0ZSh7IGFjdGl2ZTogZmFsc2UgfSk7XG4gICAgICAgICAgX3RoaXMyLnByb3BzLm9uU2V0SW5hY3RpdmUgJiYgX3RoaXMyLnByb3BzLm9uU2V0SW5hY3RpdmUodG8sIGVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChpc0luc2lkZSAmJiAoYWN0aXZlTGluayAhPT0gdG8gfHwgX3RoaXMyLnN0YXRlLmFjdGl2ZSA9PT0gZmFsc2UpKSB7XG4gICAgICAgIHNjcm9sbGVyLnNldEFjdGl2ZUxpbmsodG8pO1xuXG4gICAgICAgIHZhciBfcHJvcHMkc2F2ZUhhc2hIaXN0b3IyID0gX3RoaXMyLnByb3BzLnNhdmVIYXNoSGlzdG9yeSxcbiAgICAgICAgICAgIF9zYXZlSGFzaEhpc3RvcnkgPSBfcHJvcHMkc2F2ZUhhc2hIaXN0b3IyID09PSB1bmRlZmluZWQgPyBmYWxzZSA6IF9wcm9wcyRzYXZlSGFzaEhpc3RvcjI7XG5cbiAgICAgICAgX3RoaXMyLnByb3BzLmhhc2hTcHkgJiYgX3Njcm9sbEhhc2gyLmRlZmF1bHQuY2hhbmdlSGFzaCh0bywgX3NhdmVIYXNoSGlzdG9yeSk7XG5cbiAgICAgICAgaWYgKF90aGlzMi5wcm9wcy5zcHkpIHtcbiAgICAgICAgICBfdGhpczIuc2V0U3RhdGUoeyBhY3RpdmU6IHRydWUgfSk7XG4gICAgICAgICAgX3RoaXMyLnByb3BzLm9uU2V0QWN0aXZlICYmIF90aGlzMi5wcm9wcy5vblNldEFjdGl2ZSh0bywgZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9O1xuXG4gIDtcblxuICBMaW5rLnByb3BUeXBlcyA9IHByb3RvVHlwZXM7XG5cbiAgTGluay5kZWZhdWx0UHJvcHMgPSB7IG9mZnNldDogMCB9O1xuXG4gIHJldHVybiBMaW5rO1xufTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-scroll/modules/mixins/scroll-link.js\n"); + +/***/ }), + +/***/ "./node_modules/react-scroll/modules/mixins/scroll-spy.js": +/*!****************************************************************!*\ + !*** ./node_modules/react-scroll/modules/mixins/scroll-spy.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar _lodash = __webpack_require__(/*! lodash.throttle */ \"./node_modules/lodash.throttle/index.js\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _passiveEventListeners = __webpack_require__(/*! ./passive-event-listeners */ \"./node_modules/react-scroll/modules/mixins/passive-event-listeners.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// The eventHandler will execute at a rate of 15fps by default\nvar eventThrottler = function eventThrottler(eventHandler) {\n var throttleAmount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 66;\n return (0, _lodash2.default)(eventHandler, throttleAmount);\n};\n\nvar scrollSpy = {\n\n spyCallbacks: [],\n spySetState: [],\n scrollSpyContainers: [],\n\n mount: function mount(scrollSpyContainer, throttle) {\n if (scrollSpyContainer) {\n var eventHandler = eventThrottler(function (event) {\n scrollSpy.scrollHandler(scrollSpyContainer);\n }, throttle);\n scrollSpy.scrollSpyContainers.push(scrollSpyContainer);\n (0, _passiveEventListeners.addPassiveEventListener)(scrollSpyContainer, 'scroll', eventHandler);\n }\n },\n isMounted: function isMounted(scrollSpyContainer) {\n return scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer) !== -1;\n },\n currentPositionX: function currentPositionX(scrollSpyContainer) {\n if (scrollSpyContainer === document) {\n var supportPageOffset = window.pageYOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageXOffset : isCSS1Compat ? document.documentElement.scrollLeft : document.body.scrollLeft;\n } else {\n return scrollSpyContainer.scrollLeft;\n }\n },\n currentPositionY: function currentPositionY(scrollSpyContainer) {\n if (scrollSpyContainer === document) {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop;\n } else {\n return scrollSpyContainer.scrollTop;\n }\n },\n scrollHandler: function scrollHandler(scrollSpyContainer) {\n var callbacks = scrollSpy.scrollSpyContainers[scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer)].spyCallbacks || [];\n callbacks.forEach(function (c) {\n return c(scrollSpy.currentPositionX(scrollSpyContainer), scrollSpy.currentPositionY(scrollSpyContainer));\n });\n },\n addStateHandler: function addStateHandler(handler) {\n scrollSpy.spySetState.push(handler);\n },\n addSpyHandler: function addSpyHandler(handler, scrollSpyContainer) {\n var container = scrollSpy.scrollSpyContainers[scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer)];\n\n if (!container.spyCallbacks) {\n container.spyCallbacks = [];\n }\n\n container.spyCallbacks.push(handler);\n\n handler(scrollSpy.currentPositionX(scrollSpyContainer), scrollSpy.currentPositionY(scrollSpyContainer));\n },\n updateStates: function updateStates() {\n scrollSpy.spySetState.forEach(function (s) {\n return s();\n });\n },\n unmount: function unmount(stateHandler, spyHandler) {\n scrollSpy.scrollSpyContainers.forEach(function (c) {\n return c.spyCallbacks && c.spyCallbacks.length && c.spyCallbacks.splice(c.spyCallbacks.indexOf(spyHandler), 1);\n });\n\n if (scrollSpy.spySetState && scrollSpy.spySetState.length) {\n scrollSpy.spySetState.splice(scrollSpy.spySetState.indexOf(stateHandler), 1);\n }\n\n document.removeEventListener('scroll', scrollSpy.scrollHandler);\n },\n\n\n update: function update() {\n return scrollSpy.scrollSpyContainers.forEach(function (c) {\n return scrollSpy.scrollHandler(c);\n });\n }\n};\n\nexports[\"default\"] = scrollSpy;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2Nyb2xsL21vZHVsZXMvbWl4aW5zL3Njcm9sbC1zcHkuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDOztBQUVGLGNBQWMsbUJBQU8sQ0FBQyxnRUFBaUI7O0FBRXZDOztBQUVBLDZCQUE2QixtQkFBTyxDQUFDLHdHQUEyQjs7QUFFaEUsdUNBQXVDLHVDQUF1Qzs7QUFFOUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHO0FBQ0g7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBOztBQUVBO0FBQ0EsR0FBRzs7O0FBR0g7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUEsa0JBQWUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXNjcm9sbC9tb2R1bGVzL21peGlucy9zY3JvbGwtc3B5LmpzP2QzODAiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuXG52YXIgX2xvZGFzaCA9IHJlcXVpcmUoJ2xvZGFzaC50aHJvdHRsZScpO1xuXG52YXIgX2xvZGFzaDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9sb2Rhc2gpO1xuXG52YXIgX3Bhc3NpdmVFdmVudExpc3RlbmVycyA9IHJlcXVpcmUoJy4vcGFzc2l2ZS1ldmVudC1saXN0ZW5lcnMnKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuLy8gVGhlIGV2ZW50SGFuZGxlciB3aWxsIGV4ZWN1dGUgYXQgYSByYXRlIG9mIDE1ZnBzIGJ5IGRlZmF1bHRcbnZhciBldmVudFRocm90dGxlciA9IGZ1bmN0aW9uIGV2ZW50VGhyb3R0bGVyKGV2ZW50SGFuZGxlcikge1xuICB2YXIgdGhyb3R0bGVBbW91bnQgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IDY2O1xuICByZXR1cm4gKDAsIF9sb2Rhc2gyLmRlZmF1bHQpKGV2ZW50SGFuZGxlciwgdGhyb3R0bGVBbW91bnQpO1xufTtcblxudmFyIHNjcm9sbFNweSA9IHtcblxuICBzcHlDYWxsYmFja3M6IFtdLFxuICBzcHlTZXRTdGF0ZTogW10sXG4gIHNjcm9sbFNweUNvbnRhaW5lcnM6IFtdLFxuXG4gIG1vdW50OiBmdW5jdGlvbiBtb3VudChzY3JvbGxTcHlDb250YWluZXIsIHRocm90dGxlKSB7XG4gICAgaWYgKHNjcm9sbFNweUNvbnRhaW5lcikge1xuICAgICAgdmFyIGV2ZW50SGFuZGxlciA9IGV2ZW50VGhyb3R0bGVyKGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICBzY3JvbGxTcHkuc2Nyb2xsSGFuZGxlcihzY3JvbGxTcHlDb250YWluZXIpO1xuICAgICAgfSwgdGhyb3R0bGUpO1xuICAgICAgc2Nyb2xsU3B5LnNjcm9sbFNweUNvbnRhaW5lcnMucHVzaChzY3JvbGxTcHlDb250YWluZXIpO1xuICAgICAgKDAsIF9wYXNzaXZlRXZlbnRMaXN0ZW5lcnMuYWRkUGFzc2l2ZUV2ZW50TGlzdGVuZXIpKHNjcm9sbFNweUNvbnRhaW5lciwgJ3Njcm9sbCcsIGV2ZW50SGFuZGxlcik7XG4gICAgfVxuICB9LFxuICBpc01vdW50ZWQ6IGZ1bmN0aW9uIGlzTW91bnRlZChzY3JvbGxTcHlDb250YWluZXIpIHtcbiAgICByZXR1cm4gc2Nyb2xsU3B5LnNjcm9sbFNweUNvbnRhaW5lcnMuaW5kZXhPZihzY3JvbGxTcHlDb250YWluZXIpICE9PSAtMTtcbiAgfSxcbiAgY3VycmVudFBvc2l0aW9uWDogZnVuY3Rpb24gY3VycmVudFBvc2l0aW9uWChzY3JvbGxTcHlDb250YWluZXIpIHtcbiAgICBpZiAoc2Nyb2xsU3B5Q29udGFpbmVyID09PSBkb2N1bWVudCkge1xuICAgICAgdmFyIHN1cHBvcnRQYWdlT2Zmc2V0ID0gd2luZG93LnBhZ2VZT2Zmc2V0ICE9PSB1bmRlZmluZWQ7XG4gICAgICB2YXIgaXNDU1MxQ29tcGF0ID0gKGRvY3VtZW50LmNvbXBhdE1vZGUgfHwgXCJcIikgPT09IFwiQ1NTMUNvbXBhdFwiO1xuICAgICAgcmV0dXJuIHN1cHBvcnRQYWdlT2Zmc2V0ID8gd2luZG93LnBhZ2VYT2Zmc2V0IDogaXNDU1MxQ29tcGF0ID8gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnQgOiBkb2N1bWVudC5ib2R5LnNjcm9sbExlZnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBzY3JvbGxTcHlDb250YWluZXIuc2Nyb2xsTGVmdDtcbiAgICB9XG4gIH0sXG4gIGN1cnJlbnRQb3NpdGlvblk6IGZ1bmN0aW9uIGN1cnJlbnRQb3NpdGlvblkoc2Nyb2xsU3B5Q29udGFpbmVyKSB7XG4gICAgaWYgKHNjcm9sbFNweUNvbnRhaW5lciA9PT0gZG9jdW1lbnQpIHtcbiAgICAgIHZhciBzdXBwb3J0UGFnZU9mZnNldCA9IHdpbmRvdy5wYWdlWE9mZnNldCAhPT0gdW5kZWZpbmVkO1xuICAgICAgdmFyIGlzQ1NTMUNvbXBhdCA9IChkb2N1bWVudC5jb21wYXRNb2RlIHx8IFwiXCIpID09PSBcIkNTUzFDb21wYXRcIjtcbiAgICAgIHJldHVybiBzdXBwb3J0UGFnZU9mZnNldCA/IHdpbmRvdy5wYWdlWU9mZnNldCA6IGlzQ1NTMUNvbXBhdCA/IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgOiBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHNjcm9sbFNweUNvbnRhaW5lci5zY3JvbGxUb3A7XG4gICAgfVxuICB9LFxuICBzY3JvbGxIYW5kbGVyOiBmdW5jdGlvbiBzY3JvbGxIYW5kbGVyKHNjcm9sbFNweUNvbnRhaW5lcikge1xuICAgIHZhciBjYWxsYmFja3MgPSBzY3JvbGxTcHkuc2Nyb2xsU3B5Q29udGFpbmVyc1tzY3JvbGxTcHkuc2Nyb2xsU3B5Q29udGFpbmVycy5pbmRleE9mKHNjcm9sbFNweUNvbnRhaW5lcildLnNweUNhbGxiYWNrcyB8fCBbXTtcbiAgICBjYWxsYmFja3MuZm9yRWFjaChmdW5jdGlvbiAoYykge1xuICAgICAgcmV0dXJuIGMoc2Nyb2xsU3B5LmN1cnJlbnRQb3NpdGlvblgoc2Nyb2xsU3B5Q29udGFpbmVyKSwgc2Nyb2xsU3B5LmN1cnJlbnRQb3NpdGlvblkoc2Nyb2xsU3B5Q29udGFpbmVyKSk7XG4gICAgfSk7XG4gIH0sXG4gIGFkZFN0YXRlSGFuZGxlcjogZnVuY3Rpb24gYWRkU3RhdGVIYW5kbGVyKGhhbmRsZXIpIHtcbiAgICBzY3JvbGxTcHkuc3B5U2V0U3RhdGUucHVzaChoYW5kbGVyKTtcbiAgfSxcbiAgYWRkU3B5SGFuZGxlcjogZnVuY3Rpb24gYWRkU3B5SGFuZGxlcihoYW5kbGVyLCBzY3JvbGxTcHlDb250YWluZXIpIHtcbiAgICB2YXIgY29udGFpbmVyID0gc2Nyb2xsU3B5LnNjcm9sbFNweUNvbnRhaW5lcnNbc2Nyb2xsU3B5LnNjcm9sbFNweUNvbnRhaW5lcnMuaW5kZXhPZihzY3JvbGxTcHlDb250YWluZXIpXTtcblxuICAgIGlmICghY29udGFpbmVyLnNweUNhbGxiYWNrcykge1xuICAgICAgY29udGFpbmVyLnNweUNhbGxiYWNrcyA9IFtdO1xuICAgIH1cblxuICAgIGNvbnRhaW5lci5zcHlDYWxsYmFja3MucHVzaChoYW5kbGVyKTtcblxuICAgIGhhbmRsZXIoc2Nyb2xsU3B5LmN1cnJlbnRQb3NpdGlvblgoc2Nyb2xsU3B5Q29udGFpbmVyKSwgc2Nyb2xsU3B5LmN1cnJlbnRQb3NpdGlvblkoc2Nyb2xsU3B5Q29udGFpbmVyKSk7XG4gIH0sXG4gIHVwZGF0ZVN0YXRlczogZnVuY3Rpb24gdXBkYXRlU3RhdGVzKCkge1xuICAgIHNjcm9sbFNweS5zcHlTZXRTdGF0ZS5mb3JFYWNoKGZ1bmN0aW9uIChzKSB7XG4gICAgICByZXR1cm4gcygpO1xuICAgIH0pO1xuICB9LFxuICB1bm1vdW50OiBmdW5jdGlvbiB1bm1vdW50KHN0YXRlSGFuZGxlciwgc3B5SGFuZGxlcikge1xuICAgIHNjcm9sbFNweS5zY3JvbGxTcHlDb250YWluZXJzLmZvckVhY2goZnVuY3Rpb24gKGMpIHtcbiAgICAgIHJldHVybiBjLnNweUNhbGxiYWNrcyAmJiBjLnNweUNhbGxiYWNrcy5sZW5ndGggJiYgYy5zcHlDYWxsYmFja3Muc3BsaWNlKGMuc3B5Q2FsbGJhY2tzLmluZGV4T2Yoc3B5SGFuZGxlciksIDEpO1xuICAgIH0pO1xuXG4gICAgaWYgKHNjcm9sbFNweS5zcHlTZXRTdGF0ZSAmJiBzY3JvbGxTcHkuc3B5U2V0U3RhdGUubGVuZ3RoKSB7XG4gICAgICBzY3JvbGxTcHkuc3B5U2V0U3RhdGUuc3BsaWNlKHNjcm9sbFNweS5zcHlTZXRTdGF0ZS5pbmRleE9mKHN0YXRlSGFuZGxlciksIDEpO1xuICAgIH1cblxuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHNjcm9sbFNweS5zY3JvbGxIYW5kbGVyKTtcbiAgfSxcblxuXG4gIHVwZGF0ZTogZnVuY3Rpb24gdXBkYXRlKCkge1xuICAgIHJldHVybiBzY3JvbGxTcHkuc2Nyb2xsU3B5Q29udGFpbmVycy5mb3JFYWNoKGZ1bmN0aW9uIChjKSB7XG4gICAgICByZXR1cm4gc2Nyb2xsU3B5LnNjcm9sbEhhbmRsZXIoYyk7XG4gICAgfSk7XG4gIH1cbn07XG5cbmV4cG9ydHMuZGVmYXVsdCA9IHNjcm9sbFNweTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-scroll/modules/mixins/scroll-spy.js\n"); + +/***/ }), + +/***/ "./node_modules/react-scroll/modules/mixins/scroller.js": +/*!**************************************************************!*\ + !*** ./node_modules/react-scroll/modules/mixins/scroller.js ***! + \**************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/react-scroll/modules/mixins/utils.js\");\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nvar _animateScroll = __webpack_require__(/*! ./animate-scroll */ \"./node_modules/react-scroll/modules/mixins/animate-scroll.js\");\n\nvar _animateScroll2 = _interopRequireDefault(_animateScroll);\n\nvar _scrollEvents = __webpack_require__(/*! ./scroll-events */ \"./node_modules/react-scroll/modules/mixins/scroll-events.js\");\n\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar __mapped = {};\nvar __activeLink = void 0;\n\nexports[\"default\"] = {\n\n unmount: function unmount() {\n __mapped = {};\n },\n\n register: function register(name, element) {\n __mapped[name] = element;\n },\n\n unregister: function unregister(name) {\n delete __mapped[name];\n },\n\n get: function get(name) {\n return __mapped[name] || document.getElementById(name) || document.getElementsByName(name)[0] || document.getElementsByClassName(name)[0];\n },\n\n setActiveLink: function setActiveLink(link) {\n return __activeLink = link;\n },\n\n getActiveLink: function getActiveLink() {\n return __activeLink;\n },\n\n scrollTo: function scrollTo(to, props) {\n\n var target = this.get(to);\n\n if (!target) {\n console.warn(\"target Element not found\");\n return;\n }\n\n props = _extends({}, props, { absolute: false });\n\n var containerId = props.containerId;\n var container = props.container;\n\n var containerElement = void 0;\n if (containerId) {\n containerElement = document.getElementById(containerId);\n } else if (container && container.nodeType) {\n containerElement = container;\n } else {\n containerElement = document;\n }\n\n props.absolute = true;\n\n var horizontal = props.horizontal;\n var scrollOffset = _utils2.default.scrollOffset(containerElement, target, horizontal) + (props.offset || 0);\n\n /*\r\n * if animate is not provided just scroll into the view\r\n */\n if (!props.smooth) {\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](to, target);\n }\n\n if (containerElement === document) {\n if (props.horizontal) {\n window.scrollTo(scrollOffset, 0);\n } else {\n window.scrollTo(0, scrollOffset);\n }\n } else {\n containerElement.scrollTop = scrollOffset;\n }\n\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](to, target);\n }\n\n return;\n }\n\n /*\r\n * Animate scrolling\r\n */\n\n _animateScroll2.default.animateTopScroll(scrollOffset, props, to, target);\n }\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2Nyb2xsL21vZHVsZXMvbWl4aW5zL3Njcm9sbGVyLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQzs7QUFFRixvREFBb0QsZ0JBQWdCLHNCQUFzQixPQUFPLDJCQUEyQiwwQkFBMEIseURBQXlELGlDQUFpQzs7QUFFaFAsYUFBYSxtQkFBTyxDQUFDLG9FQUFTOztBQUU5Qjs7QUFFQSxxQkFBcUIsbUJBQU8sQ0FBQyxzRkFBa0I7O0FBRS9DOztBQUVBLG9CQUFvQixtQkFBTyxDQUFDLG9GQUFpQjs7QUFFN0M7O0FBRUEsdUNBQXVDLHVDQUF1Qzs7QUFFOUU7QUFDQTs7QUFFQSxrQkFBZTs7QUFFZjtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0EsR0FBRzs7QUFFSDs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSx1QkFBdUIsV0FBVyxpQkFBaUI7O0FBRW5EO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXNjcm9sbC9tb2R1bGVzL21peGlucy9zY3JvbGxlci5qcz9hMzc3Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcblxudmFyIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTtcblxudmFyIF91dGlscyA9IHJlcXVpcmUoJy4vdXRpbHMnKTtcblxudmFyIF91dGlsczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF91dGlscyk7XG5cbnZhciBfYW5pbWF0ZVNjcm9sbCA9IHJlcXVpcmUoJy4vYW5pbWF0ZS1zY3JvbGwnKTtcblxudmFyIF9hbmltYXRlU2Nyb2xsMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2FuaW1hdGVTY3JvbGwpO1xuXG52YXIgX3Njcm9sbEV2ZW50cyA9IHJlcXVpcmUoJy4vc2Nyb2xsLWV2ZW50cycpO1xuXG52YXIgX3Njcm9sbEV2ZW50czIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9zY3JvbGxFdmVudHMpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG52YXIgX19tYXBwZWQgPSB7fTtcbnZhciBfX2FjdGl2ZUxpbmsgPSB2b2lkIDA7XG5cbmV4cG9ydHMuZGVmYXVsdCA9IHtcblxuICB1bm1vdW50OiBmdW5jdGlvbiB1bm1vdW50KCkge1xuICAgIF9fbWFwcGVkID0ge307XG4gIH0sXG5cbiAgcmVnaXN0ZXI6IGZ1bmN0aW9uIHJlZ2lzdGVyKG5hbWUsIGVsZW1lbnQpIHtcbiAgICBfX21hcHBlZFtuYW1lXSA9IGVsZW1lbnQ7XG4gIH0sXG5cbiAgdW5yZWdpc3RlcjogZnVuY3Rpb24gdW5yZWdpc3RlcihuYW1lKSB7XG4gICAgZGVsZXRlIF9fbWFwcGVkW25hbWVdO1xuICB9LFxuXG4gIGdldDogZnVuY3Rpb24gZ2V0KG5hbWUpIHtcbiAgICByZXR1cm4gX19tYXBwZWRbbmFtZV0gfHwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobmFtZSkgfHwgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUobmFtZSlbMF0gfHwgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShuYW1lKVswXTtcbiAgfSxcblxuICBzZXRBY3RpdmVMaW5rOiBmdW5jdGlvbiBzZXRBY3RpdmVMaW5rKGxpbmspIHtcbiAgICByZXR1cm4gX19hY3RpdmVMaW5rID0gbGluaztcbiAgfSxcblxuICBnZXRBY3RpdmVMaW5rOiBmdW5jdGlvbiBnZXRBY3RpdmVMaW5rKCkge1xuICAgIHJldHVybiBfX2FjdGl2ZUxpbms7XG4gIH0sXG5cbiAgc2Nyb2xsVG86IGZ1bmN0aW9uIHNjcm9sbFRvKHRvLCBwcm9wcykge1xuXG4gICAgdmFyIHRhcmdldCA9IHRoaXMuZ2V0KHRvKTtcblxuICAgIGlmICghdGFyZ2V0KSB7XG4gICAgICBjb25zb2xlLndhcm4oXCJ0YXJnZXQgRWxlbWVudCBub3QgZm91bmRcIik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcHJvcHMgPSBfZXh0ZW5kcyh7fSwgcHJvcHMsIHsgYWJzb2x1dGU6IGZhbHNlIH0pO1xuXG4gICAgdmFyIGNvbnRhaW5lcklkID0gcHJvcHMuY29udGFpbmVySWQ7XG4gICAgdmFyIGNvbnRhaW5lciA9IHByb3BzLmNvbnRhaW5lcjtcblxuICAgIHZhciBjb250YWluZXJFbGVtZW50ID0gdm9pZCAwO1xuICAgIGlmIChjb250YWluZXJJZCkge1xuICAgICAgY29udGFpbmVyRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGNvbnRhaW5lcklkKTtcbiAgICB9IGVsc2UgaWYgKGNvbnRhaW5lciAmJiBjb250YWluZXIubm9kZVR5cGUpIHtcbiAgICAgIGNvbnRhaW5lckVsZW1lbnQgPSBjb250YWluZXI7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRhaW5lckVsZW1lbnQgPSBkb2N1bWVudDtcbiAgICB9XG5cbiAgICBwcm9wcy5hYnNvbHV0ZSA9IHRydWU7XG5cbiAgICB2YXIgaG9yaXpvbnRhbCA9IHByb3BzLmhvcml6b250YWw7XG4gICAgdmFyIHNjcm9sbE9mZnNldCA9IF91dGlsczIuZGVmYXVsdC5zY3JvbGxPZmZzZXQoY29udGFpbmVyRWxlbWVudCwgdGFyZ2V0LCBob3Jpem9udGFsKSArIChwcm9wcy5vZmZzZXQgfHwgMCk7XG5cbiAgICAvKlxyXG4gICAgICogaWYgYW5pbWF0ZSBpcyBub3QgcHJvdmlkZWQganVzdCBzY3JvbGwgaW50byB0aGUgdmlld1xyXG4gICAgICovXG4gICAgaWYgKCFwcm9wcy5zbW9vdGgpIHtcbiAgICAgIGlmIChfc2Nyb2xsRXZlbnRzMi5kZWZhdWx0LnJlZ2lzdGVyZWRbJ2JlZ2luJ10pIHtcbiAgICAgICAgX3Njcm9sbEV2ZW50czIuZGVmYXVsdC5yZWdpc3RlcmVkWydiZWdpbiddKHRvLCB0YXJnZXQpO1xuICAgICAgfVxuXG4gICAgICBpZiAoY29udGFpbmVyRWxlbWVudCA9PT0gZG9jdW1lbnQpIHtcbiAgICAgICAgaWYgKHByb3BzLmhvcml6b250YWwpIHtcbiAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oc2Nyb2xsT2Zmc2V0LCAwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgc2Nyb2xsT2Zmc2V0KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29udGFpbmVyRWxlbWVudC5zY3JvbGxUb3AgPSBzY3JvbGxPZmZzZXQ7XG4gICAgICB9XG5cbiAgICAgIGlmIChfc2Nyb2xsRXZlbnRzMi5kZWZhdWx0LnJlZ2lzdGVyZWRbJ2VuZCddKSB7XG4gICAgICAgIF9zY3JvbGxFdmVudHMyLmRlZmF1bHQucmVnaXN0ZXJlZFsnZW5kJ10odG8sIHRhcmdldCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvKlxyXG4gICAgICogQW5pbWF0ZSBzY3JvbGxpbmdcclxuICAgICAqL1xuXG4gICAgX2FuaW1hdGVTY3JvbGwyLmRlZmF1bHQuYW5pbWF0ZVRvcFNjcm9sbChzY3JvbGxPZmZzZXQsIHByb3BzLCB0bywgdGFyZ2V0KTtcbiAgfVxufTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-scroll/modules/mixins/scroller.js\n"); + +/***/ }), + +/***/ "./node_modules/react-scroll/modules/mixins/smooth.js": +/*!************************************************************!*\ + !*** ./node_modules/react-scroll/modules/mixins/smooth.js ***! + \************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = {\n /*\r\n * https://github.com/oblador/angular-scroll (duScrollDefaultEasing)\r\n */\n defaultEasing: function defaultEasing(x) {\n if (x < 0.5) {\n return Math.pow(x * 2, 2) / 2;\n }\n return 1 - Math.pow((1 - x) * 2, 2) / 2;\n },\n /*\r\n * https://gist.github.com/gre/1650294\r\n */\n // no easing, no acceleration\n linear: function linear(x) {\n return x;\n },\n // accelerating from zero velocity\n easeInQuad: function easeInQuad(x) {\n return x * x;\n },\n // decelerating to zero velocity\n easeOutQuad: function easeOutQuad(x) {\n return x * (2 - x);\n },\n // acceleration until halfway, then deceleration\n easeInOutQuad: function easeInOutQuad(x) {\n return x < .5 ? 2 * x * x : -1 + (4 - 2 * x) * x;\n },\n // accelerating from zero velocity \n easeInCubic: function easeInCubic(x) {\n return x * x * x;\n },\n // decelerating to zero velocity π\n easeOutCubic: function easeOutCubic(x) {\n return --x * x * x + 1;\n },\n // acceleration until halfway, then deceleration \n easeInOutCubic: function easeInOutCubic(x) {\n return x < .5 ? 4 * x * x * x : (x - 1) * (2 * x - 2) * (2 * x - 2) + 1;\n },\n // accelerating from zero velocity \n easeInQuart: function easeInQuart(x) {\n return x * x * x * x;\n },\n // decelerating to zero velocity \n easeOutQuart: function easeOutQuart(x) {\n return 1 - --x * x * x * x;\n },\n // acceleration until halfway, then deceleration\n easeInOutQuart: function easeInOutQuart(x) {\n return x < .5 ? 8 * x * x * x * x : 1 - 8 * --x * x * x * x;\n },\n // accelerating from zero velocity\n easeInQuint: function easeInQuint(x) {\n return x * x * x * x * x;\n },\n // decelerating to zero velocity\n easeOutQuint: function easeOutQuint(x) {\n return 1 + --x * x * x * x * x;\n },\n // acceleration until halfway, then deceleration \n easeInOutQuint: function easeInOutQuint(x) {\n return x < .5 ? 16 * x * x * x * x * x : 1 + 16 * --x * x * x * x * x;\n }\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2Nyb2xsL21vZHVsZXMvbWl4aW5zL3Ntb290aC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixrQkFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2Nyb2xsL21vZHVsZXMvbWl4aW5zL3Ntb290aC5qcz82NzUyIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0ge1xuICAvKlxyXG4gICAqIGh0dHBzOi8vZ2l0aHViLmNvbS9vYmxhZG9yL2FuZ3VsYXItc2Nyb2xsIChkdVNjcm9sbERlZmF1bHRFYXNpbmcpXHJcbiAgICovXG4gIGRlZmF1bHRFYXNpbmc6IGZ1bmN0aW9uIGRlZmF1bHRFYXNpbmcoeCkge1xuICAgIGlmICh4IDwgMC41KSB7XG4gICAgICByZXR1cm4gTWF0aC5wb3coeCAqIDIsIDIpIC8gMjtcbiAgICB9XG4gICAgcmV0dXJuIDEgLSBNYXRoLnBvdygoMSAtIHgpICogMiwgMikgLyAyO1xuICB9LFxuICAvKlxyXG4gICAqIGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2dyZS8xNjUwMjk0XHJcbiAgICovXG4gIC8vIG5vIGVhc2luZywgbm8gYWNjZWxlcmF0aW9uXG4gIGxpbmVhcjogZnVuY3Rpb24gbGluZWFyKHgpIHtcbiAgICByZXR1cm4geDtcbiAgfSxcbiAgLy8gYWNjZWxlcmF0aW5nIGZyb20gemVybyB2ZWxvY2l0eVxuICBlYXNlSW5RdWFkOiBmdW5jdGlvbiBlYXNlSW5RdWFkKHgpIHtcbiAgICByZXR1cm4geCAqIHg7XG4gIH0sXG4gIC8vIGRlY2VsZXJhdGluZyB0byB6ZXJvIHZlbG9jaXR5XG4gIGVhc2VPdXRRdWFkOiBmdW5jdGlvbiBlYXNlT3V0UXVhZCh4KSB7XG4gICAgcmV0dXJuIHggKiAoMiAtIHgpO1xuICB9LFxuICAvLyBhY2NlbGVyYXRpb24gdW50aWwgaGFsZndheSwgdGhlbiBkZWNlbGVyYXRpb25cbiAgZWFzZUluT3V0UXVhZDogZnVuY3Rpb24gZWFzZUluT3V0UXVhZCh4KSB7XG4gICAgcmV0dXJuIHggPCAuNSA/IDIgKiB4ICogeCA6IC0xICsgKDQgLSAyICogeCkgKiB4O1xuICB9LFxuICAvLyBhY2NlbGVyYXRpbmcgZnJvbSB6ZXJvIHZlbG9jaXR5IFxuICBlYXNlSW5DdWJpYzogZnVuY3Rpb24gZWFzZUluQ3ViaWMoeCkge1xuICAgIHJldHVybiB4ICogeCAqIHg7XG4gIH0sXG4gIC8vIGRlY2VsZXJhdGluZyB0byB6ZXJvIHZlbG9jaXR5IM+AXG4gIGVhc2VPdXRDdWJpYzogZnVuY3Rpb24gZWFzZU91dEN1YmljKHgpIHtcbiAgICByZXR1cm4gLS14ICogeCAqIHggKyAxO1xuICB9LFxuICAvLyBhY2NlbGVyYXRpb24gdW50aWwgaGFsZndheSwgdGhlbiBkZWNlbGVyYXRpb24gXG4gIGVhc2VJbk91dEN1YmljOiBmdW5jdGlvbiBlYXNlSW5PdXRDdWJpYyh4KSB7XG4gICAgcmV0dXJuIHggPCAuNSA/IDQgKiB4ICogeCAqIHggOiAoeCAtIDEpICogKDIgKiB4IC0gMikgKiAoMiAqIHggLSAyKSArIDE7XG4gIH0sXG4gIC8vIGFjY2VsZXJhdGluZyBmcm9tIHplcm8gdmVsb2NpdHkgXG4gIGVhc2VJblF1YXJ0OiBmdW5jdGlvbiBlYXNlSW5RdWFydCh4KSB7XG4gICAgcmV0dXJuIHggKiB4ICogeCAqIHg7XG4gIH0sXG4gIC8vIGRlY2VsZXJhdGluZyB0byB6ZXJvIHZlbG9jaXR5IFxuICBlYXNlT3V0UXVhcnQ6IGZ1bmN0aW9uIGVhc2VPdXRRdWFydCh4KSB7XG4gICAgcmV0dXJuIDEgLSAtLXggKiB4ICogeCAqIHg7XG4gIH0sXG4gIC8vIGFjY2VsZXJhdGlvbiB1bnRpbCBoYWxmd2F5LCB0aGVuIGRlY2VsZXJhdGlvblxuICBlYXNlSW5PdXRRdWFydDogZnVuY3Rpb24gZWFzZUluT3V0UXVhcnQoeCkge1xuICAgIHJldHVybiB4IDwgLjUgPyA4ICogeCAqIHggKiB4ICogeCA6IDEgLSA4ICogLS14ICogeCAqIHggKiB4O1xuICB9LFxuICAvLyBhY2NlbGVyYXRpbmcgZnJvbSB6ZXJvIHZlbG9jaXR5XG4gIGVhc2VJblF1aW50OiBmdW5jdGlvbiBlYXNlSW5RdWludCh4KSB7XG4gICAgcmV0dXJuIHggKiB4ICogeCAqIHggKiB4O1xuICB9LFxuICAvLyBkZWNlbGVyYXRpbmcgdG8gemVybyB2ZWxvY2l0eVxuICBlYXNlT3V0UXVpbnQ6IGZ1bmN0aW9uIGVhc2VPdXRRdWludCh4KSB7XG4gICAgcmV0dXJuIDEgKyAtLXggKiB4ICogeCAqIHggKiB4O1xuICB9LFxuICAvLyBhY2NlbGVyYXRpb24gdW50aWwgaGFsZndheSwgdGhlbiBkZWNlbGVyYXRpb24gXG4gIGVhc2VJbk91dFF1aW50OiBmdW5jdGlvbiBlYXNlSW5PdXRRdWludCh4KSB7XG4gICAgcmV0dXJuIHggPCAuNSA/IDE2ICogeCAqIHggKiB4ICogeCAqIHggOiAxICsgMTYgKiAtLXggKiB4ICogeCAqIHggKiB4O1xuICB9XG59OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-scroll/modules/mixins/smooth.js\n"); + +/***/ }), + +/***/ "./node_modules/react-scroll/modules/mixins/utils.js": +/*!***********************************************************!*\ + !*** ./node_modules/react-scroll/modules/mixins/utils.js ***! + \***********************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nvar updateHash = function updateHash(hash, historyUpdate) {\n var hashVal = hash.indexOf(\"#\") === 0 ? hash.substring(1) : hash;\n var hashToUpdate = hashVal ? \"#\" + hashVal : \"\";\n var curLoc = window && window.location;\n var urlToPush = hashToUpdate ? curLoc.pathname + curLoc.search + hashToUpdate : curLoc.pathname + curLoc.search;\n historyUpdate ? history.pushState(null, \"\", urlToPush) : history.replaceState(null, \"\", urlToPush);\n};\n\nvar getHash = function getHash() {\n return window.location.hash.replace(/^#/, \"\");\n};\n\nvar filterElementInContainer = function filterElementInContainer(container) {\n return function (element) {\n return container.contains ? container != element && container.contains(element) : !!(container.compareDocumentPosition(element) & 16);\n };\n};\n\nvar isPositioned = function isPositioned(element) {\n return getComputedStyle(element).position !== \"static\";\n};\n\nvar getElementOffsetInfoUntil = function getElementOffsetInfoUntil(element, predicate) {\n var offsetTop = element.offsetTop;\n var currentOffsetParent = element.offsetParent;\n\n while (currentOffsetParent && !predicate(currentOffsetParent)) {\n offsetTop += currentOffsetParent.offsetTop;\n currentOffsetParent = currentOffsetParent.offsetParent;\n }\n\n return { offsetTop: offsetTop, offsetParent: currentOffsetParent };\n};\n\nvar scrollOffset = function scrollOffset(c, t, horizontal) {\n if (horizontal) {\n return c === document ? t.getBoundingClientRect().left + (window.scrollX || window.pageXOffset) : getComputedStyle(c).position !== \"static\" ? t.offsetLeft : t.offsetLeft - c.offsetLeft;\n } else {\n if (c === document) {\n return t.getBoundingClientRect().top + (window.scrollY || window.pageYOffset);\n }\n\n // The offsetParent of an element, according to MDN, is its nearest positioned\n // (an element whose position is anything other than static) ancestor. The offsetTop\n // of an element is taken with respect to its offsetParent which may not neccessarily\n // be its parentElement except the parent itself is positioned.\n\n // So if containerElement is positioned, then it must be an offsetParent somewhere\n // If it happens that targetElement is a descendant of the containerElement, and there\n // is not intermediate positioned element between the two of them, i.e.\n // targetElement\"s offsetParent is the same as the containerElement, then the\n // distance between the two will be the offsetTop of the targetElement.\n // If, on the other hand, there are intermediate positioned elements between the\n // two entities, the distance between the targetElement and the containerElement\n // will be the accumulation of the offsetTop of the element and that of its\n // subsequent offsetParent until the containerElement is reached, since it\n // will also be an offsetParent at some point due to the fact that it is positioned.\n\n // If the containerElement is not positioned, then it can\"t be an offsetParent,\n // which means that the offsetTop of the targetElement would not be with respect to it.\n // However, if the two of them happen to have the same offsetParent, then\n // the distance between them will be the difference between their offsetTop\n // since they are both taken with respect to the same entity.\n // The last resort would be to accumulate their offsetTop until a common\n // offsetParent is reached (usually the document) and taking the difference\n // between the accumulated offsetTops\n\n if (isPositioned(c)) {\n if (t.offsetParent !== c) {\n var isContainerElementOrDocument = function isContainerElementOrDocument(e) {\n return e === c || e === document;\n };\n\n var _getElementOffsetInfo = getElementOffsetInfoUntil(t, isContainerElementOrDocument),\n offsetTop = _getElementOffsetInfo.offsetTop,\n offsetParent = _getElementOffsetInfo.offsetParent;\n\n if (offsetParent !== c) {\n throw new Error(\"Seems containerElement is not an ancestor of the Element\");\n }\n\n return offsetTop;\n }\n\n return t.offsetTop;\n }\n\n if (t.offsetParent === c.offsetParent) {\n return t.offsetTop - c.offsetTop;\n }\n\n var isDocument = function isDocument(e) {\n return e === document;\n };\n return getElementOffsetInfoUntil(t, isDocument).offsetTop - getElementOffsetInfoUntil(c, isDocument).offsetTop;\n }\n};\n\nexports[\"default\"] = {\n updateHash: updateHash,\n getHash: getHash,\n filterElementInContainer: filterElementInContainer,\n scrollOffset: scrollOffset\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2Nyb2xsL21vZHVsZXMvbWl4aW5zL3V0aWxzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsV0FBVztBQUNYOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsa0JBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zY3JvbGwvbW9kdWxlcy9taXhpbnMvdXRpbHMuanM/ZjY3MyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbnZhciB1cGRhdGVIYXNoID0gZnVuY3Rpb24gdXBkYXRlSGFzaChoYXNoLCBoaXN0b3J5VXBkYXRlKSB7XG4gIHZhciBoYXNoVmFsID0gaGFzaC5pbmRleE9mKFwiI1wiKSA9PT0gMCA/IGhhc2guc3Vic3RyaW5nKDEpIDogaGFzaDtcbiAgdmFyIGhhc2hUb1VwZGF0ZSA9IGhhc2hWYWwgPyBcIiNcIiArIGhhc2hWYWwgOiBcIlwiO1xuICB2YXIgY3VyTG9jID0gd2luZG93ICYmIHdpbmRvdy5sb2NhdGlvbjtcbiAgdmFyIHVybFRvUHVzaCA9IGhhc2hUb1VwZGF0ZSA/IGN1ckxvYy5wYXRobmFtZSArIGN1ckxvYy5zZWFyY2ggKyBoYXNoVG9VcGRhdGUgOiBjdXJMb2MucGF0aG5hbWUgKyBjdXJMb2Muc2VhcmNoO1xuICBoaXN0b3J5VXBkYXRlID8gaGlzdG9yeS5wdXNoU3RhdGUobnVsbCwgXCJcIiwgdXJsVG9QdXNoKSA6IGhpc3RvcnkucmVwbGFjZVN0YXRlKG51bGwsIFwiXCIsIHVybFRvUHVzaCk7XG59O1xuXG52YXIgZ2V0SGFzaCA9IGZ1bmN0aW9uIGdldEhhc2goKSB7XG4gIHJldHVybiB3aW5kb3cubG9jYXRpb24uaGFzaC5yZXBsYWNlKC9eIy8sIFwiXCIpO1xufTtcblxudmFyIGZpbHRlckVsZW1lbnRJbkNvbnRhaW5lciA9IGZ1bmN0aW9uIGZpbHRlckVsZW1lbnRJbkNvbnRhaW5lcihjb250YWluZXIpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gICAgcmV0dXJuIGNvbnRhaW5lci5jb250YWlucyA/IGNvbnRhaW5lciAhPSBlbGVtZW50ICYmIGNvbnRhaW5lci5jb250YWlucyhlbGVtZW50KSA6ICEhKGNvbnRhaW5lci5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihlbGVtZW50KSAmIDE2KTtcbiAgfTtcbn07XG5cbnZhciBpc1Bvc2l0aW9uZWQgPSBmdW5jdGlvbiBpc1Bvc2l0aW9uZWQoZWxlbWVudCkge1xuICByZXR1cm4gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5wb3NpdGlvbiAhPT0gXCJzdGF0aWNcIjtcbn07XG5cbnZhciBnZXRFbGVtZW50T2Zmc2V0SW5mb1VudGlsID0gZnVuY3Rpb24gZ2V0RWxlbWVudE9mZnNldEluZm9VbnRpbChlbGVtZW50LCBwcmVkaWNhdGUpIHtcbiAgdmFyIG9mZnNldFRvcCA9IGVsZW1lbnQub2Zmc2V0VG9wO1xuICB2YXIgY3VycmVudE9mZnNldFBhcmVudCA9IGVsZW1lbnQub2Zmc2V0UGFyZW50O1xuXG4gIHdoaWxlIChjdXJyZW50T2Zmc2V0UGFyZW50ICYmICFwcmVkaWNhdGUoY3VycmVudE9mZnNldFBhcmVudCkpIHtcbiAgICBvZmZzZXRUb3AgKz0gY3VycmVudE9mZnNldFBhcmVudC5vZmZzZXRUb3A7XG4gICAgY3VycmVudE9mZnNldFBhcmVudCA9IGN1cnJlbnRPZmZzZXRQYXJlbnQub2Zmc2V0UGFyZW50O1xuICB9XG5cbiAgcmV0dXJuIHsgb2Zmc2V0VG9wOiBvZmZzZXRUb3AsIG9mZnNldFBhcmVudDogY3VycmVudE9mZnNldFBhcmVudCB9O1xufTtcblxudmFyIHNjcm9sbE9mZnNldCA9IGZ1bmN0aW9uIHNjcm9sbE9mZnNldChjLCB0LCBob3Jpem9udGFsKSB7XG4gIGlmIChob3Jpem9udGFsKSB7XG4gICAgcmV0dXJuIGMgPT09IGRvY3VtZW50ID8gdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0ICsgKHdpbmRvdy5zY3JvbGxYIHx8IHdpbmRvdy5wYWdlWE9mZnNldCkgOiBnZXRDb21wdXRlZFN0eWxlKGMpLnBvc2l0aW9uICE9PSBcInN0YXRpY1wiID8gdC5vZmZzZXRMZWZ0IDogdC5vZmZzZXRMZWZ0IC0gYy5vZmZzZXRMZWZ0O1xuICB9IGVsc2Uge1xuICAgIGlmIChjID09PSBkb2N1bWVudCkge1xuICAgICAgcmV0dXJuIHQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wICsgKHdpbmRvdy5zY3JvbGxZIHx8IHdpbmRvdy5wYWdlWU9mZnNldCk7XG4gICAgfVxuXG4gICAgLy8gVGhlIG9mZnNldFBhcmVudCBvZiBhbiBlbGVtZW50LCBhY2NvcmRpbmcgdG8gTUROLCBpcyBpdHMgbmVhcmVzdCBwb3NpdGlvbmVkXG4gICAgLy8gKGFuIGVsZW1lbnQgd2hvc2UgcG9zaXRpb24gaXMgYW55dGhpbmcgb3RoZXIgdGhhbiBzdGF0aWMpIGFuY2VzdG9yLiBUaGUgb2Zmc2V0VG9wXG4gICAgLy8gb2YgYW4gZWxlbWVudCBpcyB0YWtlbiB3aXRoIHJlc3BlY3QgdG8gaXRzIG9mZnNldFBhcmVudCB3aGljaCBtYXkgbm90IG5lY2Nlc3NhcmlseVxuICAgIC8vIGJlIGl0cyBwYXJlbnRFbGVtZW50IGV4Y2VwdCB0aGUgcGFyZW50IGl0c2VsZiBpcyBwb3NpdGlvbmVkLlxuXG4gICAgLy8gU28gaWYgY29udGFpbmVyRWxlbWVudCBpcyBwb3NpdGlvbmVkLCB0aGVuIGl0IG11c3QgYmUgYW4gb2Zmc2V0UGFyZW50IHNvbWV3aGVyZVxuICAgIC8vIElmIGl0IGhhcHBlbnMgdGhhdCB0YXJnZXRFbGVtZW50IGlzIGEgZGVzY2VuZGFudCBvZiB0aGUgY29udGFpbmVyRWxlbWVudCwgYW5kIHRoZXJlXG4gICAgLy8gaXMgbm90IGludGVybWVkaWF0ZSBwb3NpdGlvbmVkIGVsZW1lbnQgYmV0d2VlbiB0aGUgdHdvIG9mIHRoZW0sIGkuZS5cbiAgICAvLyB0YXJnZXRFbGVtZW50XCJzIG9mZnNldFBhcmVudCBpcyB0aGUgc2FtZSBhcyB0aGUgY29udGFpbmVyRWxlbWVudCwgdGhlbiB0aGVcbiAgICAvLyBkaXN0YW5jZSBiZXR3ZWVuIHRoZSB0d28gd2lsbCBiZSB0aGUgb2Zmc2V0VG9wIG9mIHRoZSB0YXJnZXRFbGVtZW50LlxuICAgIC8vIElmLCBvbiB0aGUgb3RoZXIgaGFuZCwgdGhlcmUgYXJlIGludGVybWVkaWF0ZSBwb3NpdGlvbmVkIGVsZW1lbnRzIGJldHdlZW4gdGhlXG4gICAgLy8gdHdvIGVudGl0aWVzLCB0aGUgZGlzdGFuY2UgYmV0d2VlbiB0aGUgdGFyZ2V0RWxlbWVudCBhbmQgdGhlIGNvbnRhaW5lckVsZW1lbnRcbiAgICAvLyB3aWxsIGJlIHRoZSBhY2N1bXVsYXRpb24gb2YgdGhlIG9mZnNldFRvcCBvZiB0aGUgZWxlbWVudCBhbmQgdGhhdCBvZiBpdHNcbiAgICAvLyBzdWJzZXF1ZW50IG9mZnNldFBhcmVudCB1bnRpbCB0aGUgY29udGFpbmVyRWxlbWVudCBpcyByZWFjaGVkLCBzaW5jZSBpdFxuICAgIC8vIHdpbGwgYWxzbyBiZSBhbiBvZmZzZXRQYXJlbnQgYXQgc29tZSBwb2ludCBkdWUgdG8gdGhlIGZhY3QgdGhhdCBpdCBpcyBwb3NpdGlvbmVkLlxuXG4gICAgLy8gSWYgdGhlIGNvbnRhaW5lckVsZW1lbnQgaXMgbm90IHBvc2l0aW9uZWQsIHRoZW4gaXQgY2FuXCJ0IGJlIGFuIG9mZnNldFBhcmVudCxcbiAgICAvLyB3aGljaCBtZWFucyB0aGF0IHRoZSBvZmZzZXRUb3Agb2YgdGhlIHRhcmdldEVsZW1lbnQgd291bGQgbm90IGJlIHdpdGggcmVzcGVjdCB0byBpdC5cbiAgICAvLyBIb3dldmVyLCBpZiB0aGUgdHdvIG9mIHRoZW0gaGFwcGVuIHRvIGhhdmUgdGhlIHNhbWUgb2Zmc2V0UGFyZW50LCB0aGVuXG4gICAgLy8gdGhlIGRpc3RhbmNlIGJldHdlZW4gdGhlbSB3aWxsIGJlIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlaXIgb2Zmc2V0VG9wXG4gICAgLy8gc2luY2UgdGhleSBhcmUgYm90aCB0YWtlbiB3aXRoIHJlc3BlY3QgdG8gdGhlIHNhbWUgZW50aXR5LlxuICAgIC8vIFRoZSBsYXN0IHJlc29ydCB3b3VsZCBiZSB0byBhY2N1bXVsYXRlIHRoZWlyIG9mZnNldFRvcCB1bnRpbCBhIGNvbW1vblxuICAgIC8vIG9mZnNldFBhcmVudCBpcyByZWFjaGVkICh1c3VhbGx5IHRoZSBkb2N1bWVudCkgYW5kIHRha2luZyB0aGUgZGlmZmVyZW5jZVxuICAgIC8vIGJldHdlZW4gdGhlIGFjY3VtdWxhdGVkIG9mZnNldFRvcHNcblxuICAgIGlmIChpc1Bvc2l0aW9uZWQoYykpIHtcbiAgICAgIGlmICh0Lm9mZnNldFBhcmVudCAhPT0gYykge1xuICAgICAgICB2YXIgaXNDb250YWluZXJFbGVtZW50T3JEb2N1bWVudCA9IGZ1bmN0aW9uIGlzQ29udGFpbmVyRWxlbWVudE9yRG9jdW1lbnQoZSkge1xuICAgICAgICAgIHJldHVybiBlID09PSBjIHx8IGUgPT09IGRvY3VtZW50O1xuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBfZ2V0RWxlbWVudE9mZnNldEluZm8gPSBnZXRFbGVtZW50T2Zmc2V0SW5mb1VudGlsKHQsIGlzQ29udGFpbmVyRWxlbWVudE9yRG9jdW1lbnQpLFxuICAgICAgICAgICAgb2Zmc2V0VG9wID0gX2dldEVsZW1lbnRPZmZzZXRJbmZvLm9mZnNldFRvcCxcbiAgICAgICAgICAgIG9mZnNldFBhcmVudCA9IF9nZXRFbGVtZW50T2Zmc2V0SW5mby5vZmZzZXRQYXJlbnQ7XG5cbiAgICAgICAgaWYgKG9mZnNldFBhcmVudCAhPT0gYykge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlNlZW1zIGNvbnRhaW5lckVsZW1lbnQgaXMgbm90IGFuIGFuY2VzdG9yIG9mIHRoZSBFbGVtZW50XCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG9mZnNldFRvcDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHQub2Zmc2V0VG9wO1xuICAgIH1cblxuICAgIGlmICh0Lm9mZnNldFBhcmVudCA9PT0gYy5vZmZzZXRQYXJlbnQpIHtcbiAgICAgIHJldHVybiB0Lm9mZnNldFRvcCAtIGMub2Zmc2V0VG9wO1xuICAgIH1cblxuICAgIHZhciBpc0RvY3VtZW50ID0gZnVuY3Rpb24gaXNEb2N1bWVudChlKSB7XG4gICAgICByZXR1cm4gZSA9PT0gZG9jdW1lbnQ7XG4gICAgfTtcbiAgICByZXR1cm4gZ2V0RWxlbWVudE9mZnNldEluZm9VbnRpbCh0LCBpc0RvY3VtZW50KS5vZmZzZXRUb3AgLSBnZXRFbGVtZW50T2Zmc2V0SW5mb1VudGlsKGMsIGlzRG9jdW1lbnQpLm9mZnNldFRvcDtcbiAgfVxufTtcblxuZXhwb3J0cy5kZWZhdWx0ID0ge1xuICB1cGRhdGVIYXNoOiB1cGRhdGVIYXNoLFxuICBnZXRIYXNoOiBnZXRIYXNoLFxuICBmaWx0ZXJFbGVtZW50SW5Db250YWluZXI6IGZpbHRlckVsZW1lbnRJbkNvbnRhaW5lcixcbiAgc2Nyb2xsT2Zmc2V0OiBzY3JvbGxPZmZzZXRcbn07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/react-scroll/modules/mixins/utils.js\n"); + +/***/ }), + +/***/ "./node_modules/tiny-warning/dist/tiny-warning.esm.js": +/*!************************************************************!*\ + !*** ./node_modules/tiny-warning/dist/tiny-warning.esm.js ***! + \************************************************************/ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\nvar isProduction = \"development\" === 'production';\nfunction warning(condition, message) {\n if (!isProduction) {\n if (condition) {\n return;\n }\n\n var text = \"Warning: \" + message;\n\n if (typeof console !== 'undefined') {\n console.warn(text);\n }\n\n try {\n throw Error(text);\n } catch (x) {}\n }\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (warning);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdGlueS13YXJuaW5nL2Rpc3QvdGlueS13YXJuaW5nLmVzbS5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUEsbUJBQW1CLGFBQW9CO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7QUFFQSwrREFBZSxPQUFPLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3Rpbnktd2FybmluZy9kaXN0L3Rpbnktd2FybmluZy5lc20uanM/NGU0MiJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgaXNQcm9kdWN0aW9uID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJztcbmZ1bmN0aW9uIHdhcm5pbmcoY29uZGl0aW9uLCBtZXNzYWdlKSB7XG4gIGlmICghaXNQcm9kdWN0aW9uKSB7XG4gICAgaWYgKGNvbmRpdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciB0ZXh0ID0gXCJXYXJuaW5nOiBcIiArIG1lc3NhZ2U7XG5cbiAgICBpZiAodHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBjb25zb2xlLndhcm4odGV4dCk7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHRocm93IEVycm9yKHRleHQpO1xuICAgIH0gY2F0Y2ggKHgpIHt9XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgd2FybmluZztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tiny-warning/dist/tiny-warning.esm.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js ***! + \*********************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _asyncToGenerator; }\n/* harmony export */ });\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXN5bmNUb0dlbmVyYXRvci5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsS0FBSztBQUNMO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2FzeW5jVG9HZW5lcmF0b3IuanM/NTc2ZiJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBhc3luY0dlbmVyYXRvclN0ZXAoZ2VuLCByZXNvbHZlLCByZWplY3QsIF9uZXh0LCBfdGhyb3csIGtleSwgYXJnKSB7XG4gIHRyeSB7XG4gICAgdmFyIGluZm8gPSBnZW5ba2V5XShhcmcpO1xuICAgIHZhciB2YWx1ZSA9IGluZm8udmFsdWU7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmVqZWN0KGVycm9yKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoaW5mby5kb25lKSB7XG4gICAgcmVzb2x2ZSh2YWx1ZSk7XG4gIH0gZWxzZSB7XG4gICAgUHJvbWlzZS5yZXNvbHZlKHZhbHVlKS50aGVuKF9uZXh0LCBfdGhyb3cpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9hc3luY1RvR2VuZXJhdG9yKGZuKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzLFxuICAgICAgICBhcmdzID0gYXJndW1lbnRzO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICB2YXIgZ2VuID0gZm4uYXBwbHkoc2VsZiwgYXJncyk7XG5cbiAgICAgIGZ1bmN0aW9uIF9uZXh0KHZhbHVlKSB7XG4gICAgICAgIGFzeW5jR2VuZXJhdG9yU3RlcChnZW4sIHJlc29sdmUsIHJlamVjdCwgX25leHQsIF90aHJvdywgXCJuZXh0XCIsIHZhbHVlKTtcbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gX3Rocm93KGVycikge1xuICAgICAgICBhc3luY0dlbmVyYXRvclN0ZXAoZ2VuLCByZXNvbHZlLCByZWplY3QsIF9uZXh0LCBfdGhyb3csIFwidGhyb3dcIiwgZXJyKTtcbiAgICAgIH1cblxuICAgICAgX25leHQodW5kZWZpbmVkKTtcbiAgICB9KTtcbiAgfTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_DataView.js": +/*!*********************************************!*\ + !*** ./node_modules/lodash-es/_DataView.js ***! + \*********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getNative_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getNative.js */ \"./node_modules/lodash-es/_getNative.js\");\n/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_root.js */ \"./node_modules/lodash-es/_root.js\");\n\n\n\n/* Built-in method references that are verified to be native. */\nvar DataView = (0,_getNative_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_root_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], 'DataView');\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (DataView);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19EYXRhVmlldy5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7QUFBd0M7QUFDVjs7QUFFOUI7QUFDQSxlQUFlLHlEQUFTLENBQUMsZ0RBQUk7O0FBRTdCLCtEQUFlLFFBQVEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19EYXRhVmlldy5qcz9lZTcxIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBnZXROYXRpdmUgZnJvbSAnLi9fZ2V0TmF0aXZlLmpzJztcbmltcG9ydCByb290IGZyb20gJy4vX3Jvb3QuanMnO1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyB0aGF0IGFyZSB2ZXJpZmllZCB0byBiZSBuYXRpdmUuICovXG52YXIgRGF0YVZpZXcgPSBnZXROYXRpdmUocm9vdCwgJ0RhdGFWaWV3Jyk7XG5cbmV4cG9ydCBkZWZhdWx0IERhdGFWaWV3O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_DataView.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_Hash.js": +/*!*****************************************!*\ + !*** ./node_modules/lodash-es/_Hash.js ***! + \*****************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _hashClear_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_hashClear.js */ \"./node_modules/lodash-es/_hashClear.js\");\n/* harmony import */ var _hashDelete_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_hashDelete.js */ \"./node_modules/lodash-es/_hashDelete.js\");\n/* harmony import */ var _hashGet_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_hashGet.js */ \"./node_modules/lodash-es/_hashGet.js\");\n/* harmony import */ var _hashHas_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_hashHas.js */ \"./node_modules/lodash-es/_hashHas.js\");\n/* harmony import */ var _hashSet_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_hashSet.js */ \"./node_modules/lodash-es/_hashSet.js\");\n\n\n\n\n\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = _hashClear_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\nHash.prototype['delete'] = _hashDelete_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\nHash.prototype.get = _hashGet_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\nHash.prototype.has = _hashHas_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"];\nHash.prototype.set = _hashSet_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"];\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Hash);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19IYXNoLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUF3QztBQUNFO0FBQ047QUFDQTtBQUNBOztBQUVwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHVCQUF1QixxREFBUztBQUNoQywyQkFBMkIsc0RBQVU7QUFDckMscUJBQXFCLG1EQUFPO0FBQzVCLHFCQUFxQixtREFBTztBQUM1QixxQkFBcUIsbURBQU87O0FBRTVCLCtEQUFlLElBQUksRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19IYXNoLmpzP2JmZDciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGhhc2hDbGVhciBmcm9tICcuL19oYXNoQ2xlYXIuanMnO1xuaW1wb3J0IGhhc2hEZWxldGUgZnJvbSAnLi9faGFzaERlbGV0ZS5qcyc7XG5pbXBvcnQgaGFzaEdldCBmcm9tICcuL19oYXNoR2V0LmpzJztcbmltcG9ydCBoYXNoSGFzIGZyb20gJy4vX2hhc2hIYXMuanMnO1xuaW1wb3J0IGhhc2hTZXQgZnJvbSAnLi9faGFzaFNldC5qcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGhhc2ggb2JqZWN0LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAY29uc3RydWN0b3JcbiAqIEBwYXJhbSB7QXJyYXl9IFtlbnRyaWVzXSBUaGUga2V5LXZhbHVlIHBhaXJzIHRvIGNhY2hlLlxuICovXG5mdW5jdGlvbiBIYXNoKGVudHJpZXMpIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBlbnRyaWVzID09IG51bGwgPyAwIDogZW50cmllcy5sZW5ndGg7XG5cbiAgdGhpcy5jbGVhcigpO1xuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHZhciBlbnRyeSA9IGVudHJpZXNbaW5kZXhdO1xuICAgIHRoaXMuc2V0KGVudHJ5WzBdLCBlbnRyeVsxXSk7XG4gIH1cbn1cblxuLy8gQWRkIG1ldGhvZHMgdG8gYEhhc2hgLlxuSGFzaC5wcm90b3R5cGUuY2xlYXIgPSBoYXNoQ2xlYXI7XG5IYXNoLnByb3RvdHlwZVsnZGVsZXRlJ10gPSBoYXNoRGVsZXRlO1xuSGFzaC5wcm90b3R5cGUuZ2V0ID0gaGFzaEdldDtcbkhhc2gucHJvdG90eXBlLmhhcyA9IGhhc2hIYXM7XG5IYXNoLnByb3RvdHlwZS5zZXQgPSBoYXNoU2V0O1xuXG5leHBvcnQgZGVmYXVsdCBIYXNoO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_Hash.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_ListCache.js": +/*!**********************************************!*\ + !*** ./node_modules/lodash-es/_ListCache.js ***! + \**********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _listCacheClear_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_listCacheClear.js */ \"./node_modules/lodash-es/_listCacheClear.js\");\n/* harmony import */ var _listCacheDelete_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_listCacheDelete.js */ \"./node_modules/lodash-es/_listCacheDelete.js\");\n/* harmony import */ var _listCacheGet_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_listCacheGet.js */ \"./node_modules/lodash-es/_listCacheGet.js\");\n/* harmony import */ var _listCacheHas_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_listCacheHas.js */ \"./node_modules/lodash-es/_listCacheHas.js\");\n/* harmony import */ var _listCacheSet_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_listCacheSet.js */ \"./node_modules/lodash-es/_listCacheSet.js\");\n\n\n\n\n\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = _listCacheClear_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\nListCache.prototype['delete'] = _listCacheDelete_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\nListCache.prototype.get = _listCacheGet_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\nListCache.prototype.has = _listCacheHas_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"];\nListCache.prototype.set = _listCacheSet_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"];\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (ListCache);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19MaXN0Q2FjaGUuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQWtEO0FBQ0U7QUFDTjtBQUNBO0FBQ0E7O0FBRTlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsNEJBQTRCLDBEQUFjO0FBQzFDLGdDQUFnQywyREFBZTtBQUMvQywwQkFBMEIsd0RBQVk7QUFDdEMsMEJBQTBCLHdEQUFZO0FBQ3RDLDBCQUEwQix3REFBWTs7QUFFdEMsK0RBQWUsU0FBUyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX0xpc3RDYWNoZS5qcz8wOTFmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBsaXN0Q2FjaGVDbGVhciBmcm9tICcuL19saXN0Q2FjaGVDbGVhci5qcyc7XG5pbXBvcnQgbGlzdENhY2hlRGVsZXRlIGZyb20gJy4vX2xpc3RDYWNoZURlbGV0ZS5qcyc7XG5pbXBvcnQgbGlzdENhY2hlR2V0IGZyb20gJy4vX2xpc3RDYWNoZUdldC5qcyc7XG5pbXBvcnQgbGlzdENhY2hlSGFzIGZyb20gJy4vX2xpc3RDYWNoZUhhcy5qcyc7XG5pbXBvcnQgbGlzdENhY2hlU2V0IGZyb20gJy4vX2xpc3RDYWNoZVNldC5qcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBsaXN0IGNhY2hlIG9iamVjdC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQGNvbnN0cnVjdG9yXG4gKiBAcGFyYW0ge0FycmF5fSBbZW50cmllc10gVGhlIGtleS12YWx1ZSBwYWlycyB0byBjYWNoZS5cbiAqL1xuZnVuY3Rpb24gTGlzdENhY2hlKGVudHJpZXMpIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBlbnRyaWVzID09IG51bGwgPyAwIDogZW50cmllcy5sZW5ndGg7XG5cbiAgdGhpcy5jbGVhcigpO1xuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHZhciBlbnRyeSA9IGVudHJpZXNbaW5kZXhdO1xuICAgIHRoaXMuc2V0KGVudHJ5WzBdLCBlbnRyeVsxXSk7XG4gIH1cbn1cblxuLy8gQWRkIG1ldGhvZHMgdG8gYExpc3RDYWNoZWAuXG5MaXN0Q2FjaGUucHJvdG90eXBlLmNsZWFyID0gbGlzdENhY2hlQ2xlYXI7XG5MaXN0Q2FjaGUucHJvdG90eXBlWydkZWxldGUnXSA9IGxpc3RDYWNoZURlbGV0ZTtcbkxpc3RDYWNoZS5wcm90b3R5cGUuZ2V0ID0gbGlzdENhY2hlR2V0O1xuTGlzdENhY2hlLnByb3RvdHlwZS5oYXMgPSBsaXN0Q2FjaGVIYXM7XG5MaXN0Q2FjaGUucHJvdG90eXBlLnNldCA9IGxpc3RDYWNoZVNldDtcblxuZXhwb3J0IGRlZmF1bHQgTGlzdENhY2hlO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_ListCache.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_Map.js": +/*!****************************************!*\ + !*** ./node_modules/lodash-es/_Map.js ***! + \****************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getNative_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getNative.js */ \"./node_modules/lodash-es/_getNative.js\");\n/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_root.js */ \"./node_modules/lodash-es/_root.js\");\n\n\n\n/* Built-in method references that are verified to be native. */\nvar Map = (0,_getNative_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_root_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], 'Map');\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Map);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19NYXAuanMuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQXdDO0FBQ1Y7O0FBRTlCO0FBQ0EsVUFBVSx5REFBUyxDQUFDLGdEQUFJOztBQUV4QiwrREFBZSxHQUFHLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fTWFwLmpzP2Y3YjEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldE5hdGl2ZSBmcm9tICcuL19nZXROYXRpdmUuanMnO1xuaW1wb3J0IHJvb3QgZnJvbSAnLi9fcm9vdC5qcyc7XG5cbi8qIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIHRoYXQgYXJlIHZlcmlmaWVkIHRvIGJlIG5hdGl2ZS4gKi9cbnZhciBNYXAgPSBnZXROYXRpdmUocm9vdCwgJ01hcCcpO1xuXG5leHBvcnQgZGVmYXVsdCBNYXA7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_Map.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_MapCache.js": +/*!*********************************************!*\ + !*** ./node_modules/lodash-es/_MapCache.js ***! + \*********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _mapCacheClear_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_mapCacheClear.js */ \"./node_modules/lodash-es/_mapCacheClear.js\");\n/* harmony import */ var _mapCacheDelete_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_mapCacheDelete.js */ \"./node_modules/lodash-es/_mapCacheDelete.js\");\n/* harmony import */ var _mapCacheGet_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_mapCacheGet.js */ \"./node_modules/lodash-es/_mapCacheGet.js\");\n/* harmony import */ var _mapCacheHas_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_mapCacheHas.js */ \"./node_modules/lodash-es/_mapCacheHas.js\");\n/* harmony import */ var _mapCacheSet_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_mapCacheSet.js */ \"./node_modules/lodash-es/_mapCacheSet.js\");\n\n\n\n\n\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = _mapCacheClear_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\nMapCache.prototype['delete'] = _mapCacheDelete_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\nMapCache.prototype.get = _mapCacheGet_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\nMapCache.prototype.has = _mapCacheHas_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"];\nMapCache.prototype.set = _mapCacheSet_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"];\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (MapCache);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19NYXBDYWNoZS5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBZ0Q7QUFDRTtBQUNOO0FBQ0E7QUFDQTs7QUFFNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSwyQkFBMkIseURBQWE7QUFDeEMsK0JBQStCLDBEQUFjO0FBQzdDLHlCQUF5Qix1REFBVztBQUNwQyx5QkFBeUIsdURBQVc7QUFDcEMseUJBQXlCLHVEQUFXOztBQUVwQywrREFBZSxRQUFRLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fTWFwQ2FjaGUuanM/NWZiZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbWFwQ2FjaGVDbGVhciBmcm9tICcuL19tYXBDYWNoZUNsZWFyLmpzJztcbmltcG9ydCBtYXBDYWNoZURlbGV0ZSBmcm9tICcuL19tYXBDYWNoZURlbGV0ZS5qcyc7XG5pbXBvcnQgbWFwQ2FjaGVHZXQgZnJvbSAnLi9fbWFwQ2FjaGVHZXQuanMnO1xuaW1wb3J0IG1hcENhY2hlSGFzIGZyb20gJy4vX21hcENhY2hlSGFzLmpzJztcbmltcG9ydCBtYXBDYWNoZVNldCBmcm9tICcuL19tYXBDYWNoZVNldC5qcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhIG1hcCBjYWNoZSBvYmplY3QgdG8gc3RvcmUga2V5LXZhbHVlIHBhaXJzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAY29uc3RydWN0b3JcbiAqIEBwYXJhbSB7QXJyYXl9IFtlbnRyaWVzXSBUaGUga2V5LXZhbHVlIHBhaXJzIHRvIGNhY2hlLlxuICovXG5mdW5jdGlvbiBNYXBDYWNoZShlbnRyaWVzKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gZW50cmllcyA9PSBudWxsID8gMCA6IGVudHJpZXMubGVuZ3RoO1xuXG4gIHRoaXMuY2xlYXIoKTtcbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICB2YXIgZW50cnkgPSBlbnRyaWVzW2luZGV4XTtcbiAgICB0aGlzLnNldChlbnRyeVswXSwgZW50cnlbMV0pO1xuICB9XG59XG5cbi8vIEFkZCBtZXRob2RzIHRvIGBNYXBDYWNoZWAuXG5NYXBDYWNoZS5wcm90b3R5cGUuY2xlYXIgPSBtYXBDYWNoZUNsZWFyO1xuTWFwQ2FjaGUucHJvdG90eXBlWydkZWxldGUnXSA9IG1hcENhY2hlRGVsZXRlO1xuTWFwQ2FjaGUucHJvdG90eXBlLmdldCA9IG1hcENhY2hlR2V0O1xuTWFwQ2FjaGUucHJvdG90eXBlLmhhcyA9IG1hcENhY2hlSGFzO1xuTWFwQ2FjaGUucHJvdG90eXBlLnNldCA9IG1hcENhY2hlU2V0O1xuXG5leHBvcnQgZGVmYXVsdCBNYXBDYWNoZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_MapCache.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_Promise.js": +/*!********************************************!*\ + !*** ./node_modules/lodash-es/_Promise.js ***! + \********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getNative_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getNative.js */ \"./node_modules/lodash-es/_getNative.js\");\n/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_root.js */ \"./node_modules/lodash-es/_root.js\");\n\n\n\n/* Built-in method references that are verified to be native. */\nvar Promise = (0,_getNative_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_root_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], 'Promise');\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Promise);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19Qcm9taXNlLmpzLmpzIiwibWFwcGluZ3MiOiI7OztBQUF3QztBQUNWOztBQUU5QjtBQUNBLGNBQWMseURBQVMsQ0FBQyxnREFBSTs7QUFFNUIsK0RBQWUsT0FBTyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX1Byb21pc2UuanM/MWNmNCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0TmF0aXZlIGZyb20gJy4vX2dldE5hdGl2ZS5qcyc7XG5pbXBvcnQgcm9vdCBmcm9tICcuL19yb290LmpzJztcblxuLyogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgdGhhdCBhcmUgdmVyaWZpZWQgdG8gYmUgbmF0aXZlLiAqL1xudmFyIFByb21pc2UgPSBnZXROYXRpdmUocm9vdCwgJ1Byb21pc2UnKTtcblxuZXhwb3J0IGRlZmF1bHQgUHJvbWlzZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_Promise.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_Set.js": +/*!****************************************!*\ + !*** ./node_modules/lodash-es/_Set.js ***! + \****************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getNative_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getNative.js */ \"./node_modules/lodash-es/_getNative.js\");\n/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_root.js */ \"./node_modules/lodash-es/_root.js\");\n\n\n\n/* Built-in method references that are verified to be native. */\nvar Set = (0,_getNative_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_root_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], 'Set');\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Set);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19TZXQuanMuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQXdDO0FBQ1Y7O0FBRTlCO0FBQ0EsVUFBVSx5REFBUyxDQUFDLGdEQUFJOztBQUV4QiwrREFBZSxHQUFHLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fU2V0LmpzP2E0YzEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldE5hdGl2ZSBmcm9tICcuL19nZXROYXRpdmUuanMnO1xuaW1wb3J0IHJvb3QgZnJvbSAnLi9fcm9vdC5qcyc7XG5cbi8qIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIHRoYXQgYXJlIHZlcmlmaWVkIHRvIGJlIG5hdGl2ZS4gKi9cbnZhciBTZXQgPSBnZXROYXRpdmUocm9vdCwgJ1NldCcpO1xuXG5leHBvcnQgZGVmYXVsdCBTZXQ7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_Set.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_Stack.js": +/*!******************************************!*\ + !*** ./node_modules/lodash-es/_Stack.js ***! + \******************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ListCache_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ListCache.js */ \"./node_modules/lodash-es/_ListCache.js\");\n/* harmony import */ var _stackClear_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_stackClear.js */ \"./node_modules/lodash-es/_stackClear.js\");\n/* harmony import */ var _stackDelete_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_stackDelete.js */ \"./node_modules/lodash-es/_stackDelete.js\");\n/* harmony import */ var _stackGet_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_stackGet.js */ \"./node_modules/lodash-es/_stackGet.js\");\n/* harmony import */ var _stackHas_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_stackHas.js */ \"./node_modules/lodash-es/_stackHas.js\");\n/* harmony import */ var _stackSet_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./_stackSet.js */ \"./node_modules/lodash-es/_stackSet.js\");\n\n\n\n\n\n\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new _ListCache_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"](entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = _stackClear_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\nStack.prototype['delete'] = _stackDelete_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\nStack.prototype.get = _stackGet_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"];\nStack.prototype.has = _stackHas_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"];\nStack.prototype.set = _stackSet_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"];\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Stack);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19TdGFjay5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQXdDO0FBQ0U7QUFDRTtBQUNOO0FBQ0E7QUFDQTs7QUFFdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQjtBQUNBO0FBQ0EsaUNBQWlDLHFEQUFTO0FBQzFDO0FBQ0E7O0FBRUE7QUFDQSx3QkFBd0Isc0RBQVU7QUFDbEMsNEJBQTRCLHVEQUFXO0FBQ3ZDLHNCQUFzQixvREFBUTtBQUM5QixzQkFBc0Isb0RBQVE7QUFDOUIsc0JBQXNCLG9EQUFROztBQUU5QiwrREFBZSxLQUFLLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fU3RhY2suanM/NTRhYiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTGlzdENhY2hlIGZyb20gJy4vX0xpc3RDYWNoZS5qcyc7XG5pbXBvcnQgc3RhY2tDbGVhciBmcm9tICcuL19zdGFja0NsZWFyLmpzJztcbmltcG9ydCBzdGFja0RlbGV0ZSBmcm9tICcuL19zdGFja0RlbGV0ZS5qcyc7XG5pbXBvcnQgc3RhY2tHZXQgZnJvbSAnLi9fc3RhY2tHZXQuanMnO1xuaW1wb3J0IHN0YWNrSGFzIGZyb20gJy4vX3N0YWNrSGFzLmpzJztcbmltcG9ydCBzdGFja1NldCBmcm9tICcuL19zdGFja1NldC5qcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhIHN0YWNrIGNhY2hlIG9iamVjdCB0byBzdG9yZSBrZXktdmFsdWUgcGFpcnMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBjb25zdHJ1Y3RvclxuICogQHBhcmFtIHtBcnJheX0gW2VudHJpZXNdIFRoZSBrZXktdmFsdWUgcGFpcnMgdG8gY2FjaGUuXG4gKi9cbmZ1bmN0aW9uIFN0YWNrKGVudHJpZXMpIHtcbiAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fID0gbmV3IExpc3RDYWNoZShlbnRyaWVzKTtcbiAgdGhpcy5zaXplID0gZGF0YS5zaXplO1xufVxuXG4vLyBBZGQgbWV0aG9kcyB0byBgU3RhY2tgLlxuU3RhY2sucHJvdG90eXBlLmNsZWFyID0gc3RhY2tDbGVhcjtcblN0YWNrLnByb3RvdHlwZVsnZGVsZXRlJ10gPSBzdGFja0RlbGV0ZTtcblN0YWNrLnByb3RvdHlwZS5nZXQgPSBzdGFja0dldDtcblN0YWNrLnByb3RvdHlwZS5oYXMgPSBzdGFja0hhcztcblN0YWNrLnByb3RvdHlwZS5zZXQgPSBzdGFja1NldDtcblxuZXhwb3J0IGRlZmF1bHQgU3RhY2s7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_Stack.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_Symbol.js": +/*!*******************************************!*\ + !*** ./node_modules/lodash-es/_Symbol.js ***! + \*******************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_root.js */ \"./node_modules/lodash-es/_root.js\");\n\n\n/** Built-in value references. */\nvar Symbol = _root_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Symbol;\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Symbol);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19TeW1ib2wuanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBOEI7O0FBRTlCO0FBQ0EsYUFBYSx1REFBVzs7QUFFeEIsK0RBQWUsTUFBTSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX1N5bWJvbC5qcz8yYWUzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCByb290IGZyb20gJy4vX3Jvb3QuanMnO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBTeW1ib2wgPSByb290LlN5bWJvbDtcblxuZXhwb3J0IGRlZmF1bHQgU3ltYm9sO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_Symbol.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_Uint8Array.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/_Uint8Array.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_root.js */ \"./node_modules/lodash-es/_root.js\");\n\n\n/** Built-in value references. */\nvar Uint8Array = _root_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Uint8Array;\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Uint8Array);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19VaW50OEFycmF5LmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQThCOztBQUU5QjtBQUNBLGlCQUFpQiwyREFBZTs7QUFFaEMsK0RBQWUsVUFBVSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX1VpbnQ4QXJyYXkuanM/MWVhMiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcm9vdCBmcm9tICcuL19yb290LmpzJztcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgVWludDhBcnJheSA9IHJvb3QuVWludDhBcnJheTtcblxuZXhwb3J0IGRlZmF1bHQgVWludDhBcnJheTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_Uint8Array.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_WeakMap.js": +/*!********************************************!*\ + !*** ./node_modules/lodash-es/_WeakMap.js ***! + \********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getNative_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getNative.js */ \"./node_modules/lodash-es/_getNative.js\");\n/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_root.js */ \"./node_modules/lodash-es/_root.js\");\n\n\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = (0,_getNative_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_root_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], 'WeakMap');\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (WeakMap);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19XZWFrTWFwLmpzLmpzIiwibWFwcGluZ3MiOiI7OztBQUF3QztBQUNWOztBQUU5QjtBQUNBLGNBQWMseURBQVMsQ0FBQyxnREFBSTs7QUFFNUIsK0RBQWUsT0FBTyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX1dlYWtNYXAuanM/NzRiMSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0TmF0aXZlIGZyb20gJy4vX2dldE5hdGl2ZS5qcyc7XG5pbXBvcnQgcm9vdCBmcm9tICcuL19yb290LmpzJztcblxuLyogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgdGhhdCBhcmUgdmVyaWZpZWQgdG8gYmUgbmF0aXZlLiAqL1xudmFyIFdlYWtNYXAgPSBnZXROYXRpdmUocm9vdCwgJ1dlYWtNYXAnKTtcblxuZXhwb3J0IGRlZmF1bHQgV2Vha01hcDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_WeakMap.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_arrayEach.js": +/*!**********************************************!*\ + !*** ./node_modules/lodash-es/_arrayEach.js ***! + \**********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (arrayEach);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hcnJheUVhY2guanMuanMiLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEIsV0FBVyxVQUFVO0FBQ3JCLGFBQWEsT0FBTztBQUNwQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxTQUFTLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYXJyYXlFYWNoLmpzPzYyYTMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8uZm9yRWFjaGAgZm9yIGFycmF5cyB3aXRob3V0IHN1cHBvcnQgZm9yXG4gKiBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBbYXJyYXldIFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBhcnJheWAuXG4gKi9cbmZ1bmN0aW9uIGFycmF5RWFjaChhcnJheSwgaXRlcmF0ZWUpIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIGlmIChpdGVyYXRlZShhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSkgPT09IGZhbHNlKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGFycmF5O1xufVxuXG5leHBvcnQgZGVmYXVsdCBhcnJheUVhY2g7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_arrayEach.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_arrayFilter.js": +/*!************************************************!*\ + !*** ./node_modules/lodash-es/_arrayFilter.js ***! + \************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (arrayFilter);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hcnJheUZpbHRlci5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixXQUFXLFVBQVU7QUFDckIsYUFBYSxPQUFPO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLCtEQUFlLFdBQVcsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hcnJheUZpbHRlci5qcz81Y2M4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLmZpbHRlcmAgZm9yIGFycmF5cyB3aXRob3V0IHN1cHBvcnQgZm9yXG4gKiBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBbYXJyYXldIFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcmVkaWNhdGUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGZpbHRlcmVkIGFycmF5LlxuICovXG5mdW5jdGlvbiBhcnJheUZpbHRlcihhcnJheSwgcHJlZGljYXRlKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGgsXG4gICAgICByZXNJbmRleCA9IDAsXG4gICAgICByZXN1bHQgPSBbXTtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHZhciB2YWx1ZSA9IGFycmF5W2luZGV4XTtcbiAgICBpZiAocHJlZGljYXRlKHZhbHVlLCBpbmRleCwgYXJyYXkpKSB7XG4gICAgICByZXN1bHRbcmVzSW5kZXgrK10gPSB2YWx1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYXJyYXlGaWx0ZXI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_arrayFilter.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_arrayLikeKeys.js": +/*!**************************************************!*\ + !*** ./node_modules/lodash-es/_arrayLikeKeys.js ***! + \**************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseTimes_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_baseTimes.js */ \"./node_modules/lodash-es/_baseTimes.js\");\n/* harmony import */ var _isArguments_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isArguments.js */ \"./node_modules/lodash-es/isArguments.js\");\n/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isArray.js */ \"./node_modules/lodash-es/isArray.js\");\n/* harmony import */ var _isBuffer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isBuffer.js */ \"./node_modules/lodash-es/isBuffer.js\");\n/* harmony import */ var _isIndex_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./_isIndex.js */ \"./node_modules/lodash-es/_isIndex.js\");\n/* harmony import */ var _isTypedArray_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./isTypedArray.js */ \"./node_modules/lodash-es/isTypedArray.js\");\n\n\n\n\n\n\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = (0,_isArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value),\n isArg = !isArr && (0,_isArguments_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value),\n isBuff = !isArr && !isArg && (0,_isBuffer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(value),\n isType = !isArr && !isArg && !isBuff && (0,_isTypedArray_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? (0,_baseTimes_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n (0,_isIndex_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (arrayLikeKeys);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hcnJheUxpa2VLZXlzLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBd0M7QUFDRztBQUNSO0FBQ0U7QUFDRDtBQUNTOztBQUU3QztBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxXQUFXLFNBQVM7QUFDcEIsYUFBYSxPQUFPO0FBQ3BCO0FBQ0E7QUFDQSxjQUFjLHVEQUFPO0FBQ3JCLHdCQUF3QiwyREFBVztBQUNuQyxtQ0FBbUMsd0RBQVE7QUFDM0MsOENBQThDLDREQUFZO0FBQzFEO0FBQ0EsNkJBQTZCLHlEQUFTO0FBQ3RDOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyx1REFBTztBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsYUFBYSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2FycmF5TGlrZUtleXMuanM/ZjEwZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYmFzZVRpbWVzIGZyb20gJy4vX2Jhc2VUaW1lcy5qcyc7XG5pbXBvcnQgaXNBcmd1bWVudHMgZnJvbSAnLi9pc0FyZ3VtZW50cy5qcyc7XG5pbXBvcnQgaXNBcnJheSBmcm9tICcuL2lzQXJyYXkuanMnO1xuaW1wb3J0IGlzQnVmZmVyIGZyb20gJy4vaXNCdWZmZXIuanMnO1xuaW1wb3J0IGlzSW5kZXggZnJvbSAnLi9faXNJbmRleC5qcyc7XG5pbXBvcnQgaXNUeXBlZEFycmF5IGZyb20gJy4vaXNUeXBlZEFycmF5LmpzJztcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IG9mIHRoZSBlbnVtZXJhYmxlIHByb3BlcnR5IG5hbWVzIG9mIHRoZSBhcnJheS1saWtlIGB2YWx1ZWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHF1ZXJ5LlxuICogQHBhcmFtIHtib29sZWFufSBpbmhlcml0ZWQgU3BlY2lmeSByZXR1cm5pbmcgaW5oZXJpdGVkIHByb3BlcnR5IG5hbWVzLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcy5cbiAqL1xuZnVuY3Rpb24gYXJyYXlMaWtlS2V5cyh2YWx1ZSwgaW5oZXJpdGVkKSB7XG4gIHZhciBpc0FyciA9IGlzQXJyYXkodmFsdWUpLFxuICAgICAgaXNBcmcgPSAhaXNBcnIgJiYgaXNBcmd1bWVudHModmFsdWUpLFxuICAgICAgaXNCdWZmID0gIWlzQXJyICYmICFpc0FyZyAmJiBpc0J1ZmZlcih2YWx1ZSksXG4gICAgICBpc1R5cGUgPSAhaXNBcnIgJiYgIWlzQXJnICYmICFpc0J1ZmYgJiYgaXNUeXBlZEFycmF5KHZhbHVlKSxcbiAgICAgIHNraXBJbmRleGVzID0gaXNBcnIgfHwgaXNBcmcgfHwgaXNCdWZmIHx8IGlzVHlwZSxcbiAgICAgIHJlc3VsdCA9IHNraXBJbmRleGVzID8gYmFzZVRpbWVzKHZhbHVlLmxlbmd0aCwgU3RyaW5nKSA6IFtdLFxuICAgICAgbGVuZ3RoID0gcmVzdWx0Lmxlbmd0aDtcblxuICBmb3IgKHZhciBrZXkgaW4gdmFsdWUpIHtcbiAgICBpZiAoKGluaGVyaXRlZCB8fCBoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCBrZXkpKSAmJlxuICAgICAgICAhKHNraXBJbmRleGVzICYmIChcbiAgICAgICAgICAgLy8gU2FmYXJpIDkgaGFzIGVudW1lcmFibGUgYGFyZ3VtZW50cy5sZW5ndGhgIGluIHN0cmljdCBtb2RlLlxuICAgICAgICAgICBrZXkgPT0gJ2xlbmd0aCcgfHxcbiAgICAgICAgICAgLy8gTm9kZS5qcyAwLjEwIGhhcyBlbnVtZXJhYmxlIG5vbi1pbmRleCBwcm9wZXJ0aWVzIG9uIGJ1ZmZlcnMuXG4gICAgICAgICAgIChpc0J1ZmYgJiYgKGtleSA9PSAnb2Zmc2V0JyB8fCBrZXkgPT0gJ3BhcmVudCcpKSB8fFxuICAgICAgICAgICAvLyBQaGFudG9tSlMgMiBoYXMgZW51bWVyYWJsZSBub24taW5kZXggcHJvcGVydGllcyBvbiB0eXBlZCBhcnJheXMuXG4gICAgICAgICAgIChpc1R5cGUgJiYgKGtleSA9PSAnYnVmZmVyJyB8fCBrZXkgPT0gJ2J5dGVMZW5ndGgnIHx8IGtleSA9PSAnYnl0ZU9mZnNldCcpKSB8fFxuICAgICAgICAgICAvLyBTa2lwIGluZGV4IHByb3BlcnRpZXMuXG4gICAgICAgICAgIGlzSW5kZXgoa2V5LCBsZW5ndGgpXG4gICAgICAgICkpKSB7XG4gICAgICByZXN1bHQucHVzaChrZXkpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBhcnJheUxpa2VLZXlzO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_arrayLikeKeys.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_arrayMap.js": +/*!*********************************************!*\ + !*** ./node_modules/lodash-es/_arrayMap.js ***! + \*********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (arrayMap);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hcnJheU1hcC5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixXQUFXLFVBQVU7QUFDckIsYUFBYSxPQUFPO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxRQUFRLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYXJyYXlNYXAuanM/MzEzNiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5tYXBgIGZvciBhcnJheXMgd2l0aG91dCBzdXBwb3J0IGZvciBpdGVyYXRlZVxuICogc2hvcnRoYW5kcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gW2FycmF5XSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IG1hcHBlZCBhcnJheS5cbiAqL1xuZnVuY3Rpb24gYXJyYXlNYXAoYXJyYXksIGl0ZXJhdGVlKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGgsXG4gICAgICByZXN1bHQgPSBBcnJheShsZW5ndGgpO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgcmVzdWx0W2luZGV4XSA9IGl0ZXJhdGVlKGFycmF5W2luZGV4XSwgaW5kZXgsIGFycmF5KTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBhcnJheU1hcDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_arrayMap.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_arrayPush.js": +/*!**********************************************!*\ + !*** ./node_modules/lodash-es/_arrayPush.js ***! + \**********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (arrayPush);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hcnJheVB1c2guanMuanMiLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLFdBQVcsT0FBTztBQUNsQixhQUFhLE9BQU87QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLCtEQUFlLFNBQVMsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hcnJheVB1c2guanM/MGMyNyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEFwcGVuZHMgdGhlIGVsZW1lbnRzIG9mIGB2YWx1ZXNgIHRvIGBhcnJheWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBtb2RpZnkuXG4gKiBAcGFyYW0ge0FycmF5fSB2YWx1ZXMgVGhlIHZhbHVlcyB0byBhcHBlbmQuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cbiAqL1xuZnVuY3Rpb24gYXJyYXlQdXNoKGFycmF5LCB2YWx1ZXMpIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSB2YWx1ZXMubGVuZ3RoLFxuICAgICAgb2Zmc2V0ID0gYXJyYXkubGVuZ3RoO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgYXJyYXlbb2Zmc2V0ICsgaW5kZXhdID0gdmFsdWVzW2luZGV4XTtcbiAgfVxuICByZXR1cm4gYXJyYXk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGFycmF5UHVzaDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_arrayPush.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_assignValue.js": +/*!************************************************!*\ + !*** ./node_modules/lodash-es/_assignValue.js ***! + \************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseAssignValue_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_baseAssignValue.js */ \"./node_modules/lodash-es/_baseAssignValue.js\");\n/* harmony import */ var _eq_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./eq.js */ \"./node_modules/lodash-es/eq.js\");\n\n\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && (0,_eq_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(objValue, value)) ||\n (value === undefined && !(key in object))) {\n (0,_baseAssignValue_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(object, key, value);\n }\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (assignValue);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hc3NpZ25WYWx1ZS5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7QUFBb0Q7QUFDM0I7O0FBRXpCO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsR0FBRztBQUNkO0FBQ0E7QUFDQTtBQUNBLDRDQUE0QyxrREFBRTtBQUM5QztBQUNBLElBQUksK0RBQWU7QUFDbkI7QUFDQTs7QUFFQSwrREFBZSxXQUFXLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYXNzaWduVmFsdWUuanM/OTQ4OCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYmFzZUFzc2lnblZhbHVlIGZyb20gJy4vX2Jhc2VBc3NpZ25WYWx1ZS5qcyc7XG5pbXBvcnQgZXEgZnJvbSAnLi9lcS5qcyc7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogQXNzaWducyBgdmFsdWVgIHRvIGBrZXlgIG9mIGBvYmplY3RgIGlmIHRoZSBleGlzdGluZyB2YWx1ZSBpcyBub3QgZXF1aXZhbGVudFxuICogdXNpbmcgW2BTYW1lVmFsdWVaZXJvYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtc2FtZXZhbHVlemVybylcbiAqIGZvciBlcXVhbGl0eSBjb21wYXJpc29ucy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIG1vZGlmeS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgcHJvcGVydHkgdG8gYXNzaWduLlxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gYXNzaWduLlxuICovXG5mdW5jdGlvbiBhc3NpZ25WYWx1ZShvYmplY3QsIGtleSwgdmFsdWUpIHtcbiAgdmFyIG9ialZhbHVlID0gb2JqZWN0W2tleV07XG4gIGlmICghKGhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpICYmIGVxKG9ialZhbHVlLCB2YWx1ZSkpIHx8XG4gICAgICAodmFsdWUgPT09IHVuZGVmaW5lZCAmJiAhKGtleSBpbiBvYmplY3QpKSkge1xuICAgIGJhc2VBc3NpZ25WYWx1ZShvYmplY3QsIGtleSwgdmFsdWUpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGFzc2lnblZhbHVlO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_assignValue.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_assocIndexOf.js": +/*!*************************************************!*\ + !*** ./node_modules/lodash-es/_assocIndexOf.js ***! + \*************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _eq_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./eq.js */ \"./node_modules/lodash-es/eq.js\");\n\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if ((0,_eq_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (assocIndexOf);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hc3NvY0luZGV4T2YuanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBeUI7O0FBRXpCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLFdBQVcsR0FBRztBQUNkLGFBQWEsUUFBUTtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsa0RBQUU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLCtEQUFlLFlBQVksRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hc3NvY0luZGV4T2YuanM/NWMzMCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZXEgZnJvbSAnLi9lcS5qcyc7XG5cbi8qKlxuICogR2V0cyB0aGUgaW5kZXggYXQgd2hpY2ggdGhlIGBrZXlgIGlzIGZvdW5kIGluIGBhcnJheWAgb2Yga2V5LXZhbHVlIHBhaXJzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAqIEBwYXJhbSB7Kn0ga2V5IFRoZSBrZXkgdG8gc2VhcmNoIGZvci5cbiAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBtYXRjaGVkIHZhbHVlLCBlbHNlIGAtMWAuXG4gKi9cbmZ1bmN0aW9uIGFzc29jSW5kZXhPZihhcnJheSwga2V5KSB7XG4gIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG4gIHdoaWxlIChsZW5ndGgtLSkge1xuICAgIGlmIChlcShhcnJheVtsZW5ndGhdWzBdLCBrZXkpKSB7XG4gICAgICByZXR1cm4gbGVuZ3RoO1xuICAgIH1cbiAgfVxuICByZXR1cm4gLTE7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGFzc29jSW5kZXhPZjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_assocIndexOf.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseAssign.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/_baseAssign.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _copyObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_copyObject.js */ \"./node_modules/lodash-es/_copyObject.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keys.js */ \"./node_modules/lodash-es/keys.js\");\n\n\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && (0,_copyObject_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(source, (0,_keys_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(source), object);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseAssign);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlQXNzaWduLmpzLmpzIiwibWFwcGluZ3MiOiI7OztBQUEwQztBQUNiOztBQUU3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBLG1CQUFtQiwwREFBVSxTQUFTLG9EQUFJO0FBQzFDOztBQUVBLCtEQUFlLFVBQVUsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlQXNzaWduLmpzPzI1MGUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvcHlPYmplY3QgZnJvbSAnLi9fY29weU9iamVjdC5qcyc7XG5pbXBvcnQga2V5cyBmcm9tICcuL2tleXMuanMnO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmFzc2lnbmAgd2l0aG91dCBzdXBwb3J0IGZvciBtdWx0aXBsZSBzb3VyY2VzXG4gKiBvciBgY3VzdG9taXplcmAgZnVuY3Rpb25zLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXG4gKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBzb3VyY2Ugb2JqZWN0LlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAqL1xuZnVuY3Rpb24gYmFzZUFzc2lnbihvYmplY3QsIHNvdXJjZSkge1xuICByZXR1cm4gb2JqZWN0ICYmIGNvcHlPYmplY3Qoc291cmNlLCBrZXlzKHNvdXJjZSksIG9iamVjdCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VBc3NpZ247XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseAssign.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseAssignIn.js": +/*!*************************************************!*\ + !*** ./node_modules/lodash-es/_baseAssignIn.js ***! + \*************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _copyObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_copyObject.js */ \"./node_modules/lodash-es/_copyObject.js\");\n/* harmony import */ var _keysIn_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keysIn.js */ \"./node_modules/lodash-es/keysIn.js\");\n\n\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && (0,_copyObject_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(source, (0,_keysIn_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(source), object);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseAssignIn);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlQXNzaWduSW4uanMuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQTBDO0FBQ1Q7O0FBRWpDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLGFBQWEsUUFBUTtBQUNyQjtBQUNBO0FBQ0EsbUJBQW1CLDBEQUFVLFNBQVMsc0RBQU07QUFDNUM7O0FBRUEsK0RBQWUsWUFBWSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VBc3NpZ25Jbi5qcz9jNDRlIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjb3B5T2JqZWN0IGZyb20gJy4vX2NvcHlPYmplY3QuanMnO1xuaW1wb3J0IGtleXNJbiBmcm9tICcuL2tleXNJbi5qcyc7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uYXNzaWduSW5gIHdpdGhvdXQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgc291cmNlc1xuICogb3IgYGN1c3RvbWl6ZXJgIGZ1bmN0aW9ucy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgZGVzdGluYXRpb24gb2JqZWN0LlxuICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgc291cmNlIG9iamVjdC5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VBc3NpZ25JbihvYmplY3QsIHNvdXJjZSkge1xuICByZXR1cm4gb2JqZWN0ICYmIGNvcHlPYmplY3Qoc291cmNlLCBrZXlzSW4oc291cmNlKSwgb2JqZWN0KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZUFzc2lnbkluO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseAssignIn.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseAssignValue.js": +/*!****************************************************!*\ + !*** ./node_modules/lodash-es/_baseAssignValue.js ***! + \****************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _defineProperty_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_defineProperty.js */ \"./node_modules/lodash-es/_defineProperty.js\");\n\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && _defineProperty_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]) {\n (0,_defineProperty_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseAssignValue);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlQXNzaWduVmFsdWUuanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBa0Q7O0FBRWxEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsR0FBRztBQUNkO0FBQ0E7QUFDQSw0QkFBNEIsMERBQWM7QUFDMUMsSUFBSSw4REFBYztBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBLCtEQUFlLGVBQWUsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlQXNzaWduVmFsdWUuanM/ZmFmNCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZGVmaW5lUHJvcGVydHkgZnJvbSAnLi9fZGVmaW5lUHJvcGVydHkuanMnO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBhc3NpZ25WYWx1ZWAgYW5kIGBhc3NpZ25NZXJnZVZhbHVlYCB3aXRob3V0XG4gKiB2YWx1ZSBjaGVja3MuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBtb2RpZnkuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IHRvIGFzc2lnbi5cbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGFzc2lnbi5cbiAqL1xuZnVuY3Rpb24gYmFzZUFzc2lnblZhbHVlKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICBpZiAoa2V5ID09ICdfX3Byb3RvX18nICYmIGRlZmluZVByb3BlcnR5KSB7XG4gICAgZGVmaW5lUHJvcGVydHkob2JqZWN0LCBrZXksIHtcbiAgICAgICdjb25maWd1cmFibGUnOiB0cnVlLFxuICAgICAgJ2VudW1lcmFibGUnOiB0cnVlLFxuICAgICAgJ3ZhbHVlJzogdmFsdWUsXG4gICAgICAnd3JpdGFibGUnOiB0cnVlXG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0W2tleV0gPSB2YWx1ZTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlQXNzaWduVmFsdWU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseAssignValue.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseClone.js": +/*!**********************************************!*\ + !*** ./node_modules/lodash-es/_baseClone.js ***! + \**********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Stack_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./_Stack.js */ \"./node_modules/lodash-es/_Stack.js\");\n/* harmony import */ var _arrayEach_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./_arrayEach.js */ \"./node_modules/lodash-es/_arrayEach.js\");\n/* harmony import */ var _assignValue_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./_assignValue.js */ \"./node_modules/lodash-es/_assignValue.js\");\n/* harmony import */ var _baseAssign_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./_baseAssign.js */ \"./node_modules/lodash-es/_baseAssign.js\");\n/* harmony import */ var _baseAssignIn_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./_baseAssignIn.js */ \"./node_modules/lodash-es/_baseAssignIn.js\");\n/* harmony import */ var _cloneBuffer_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./_cloneBuffer.js */ \"./node_modules/lodash-es/_cloneBuffer.js\");\n/* harmony import */ var _copyArray_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_copyArray.js */ \"./node_modules/lodash-es/_copyArray.js\");\n/* harmony import */ var _copySymbols_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./_copySymbols.js */ \"./node_modules/lodash-es/_copySymbols.js\");\n/* harmony import */ var _copySymbolsIn_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./_copySymbolsIn.js */ \"./node_modules/lodash-es/_copySymbolsIn.js\");\n/* harmony import */ var _getAllKeys_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./_getAllKeys.js */ \"./node_modules/lodash-es/_getAllKeys.js\");\n/* harmony import */ var _getAllKeysIn_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./_getAllKeysIn.js */ \"./node_modules/lodash-es/_getAllKeysIn.js\");\n/* harmony import */ var _getTag_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_getTag.js */ \"./node_modules/lodash-es/_getTag.js\");\n/* harmony import */ var _initCloneArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_initCloneArray.js */ \"./node_modules/lodash-es/_initCloneArray.js\");\n/* harmony import */ var _initCloneByTag_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./_initCloneByTag.js */ \"./node_modules/lodash-es/_initCloneByTag.js\");\n/* harmony import */ var _initCloneObject_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./_initCloneObject.js */ \"./node_modules/lodash-es/_initCloneObject.js\");\n/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isArray.js */ \"./node_modules/lodash-es/isArray.js\");\n/* harmony import */ var _isBuffer_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./isBuffer.js */ \"./node_modules/lodash-es/isBuffer.js\");\n/* harmony import */ var _isMap_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./isMap.js */ \"./node_modules/lodash-es/isMap.js\");\n/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isObject.js */ \"./node_modules/lodash-es/isObject.js\");\n/* harmony import */ var _isSet_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./isSet.js */ \"./node_modules/lodash-es/isSet.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./keys.js */ \"./node_modules/lodash-es/keys.js\");\n/* harmony import */ var _keysIn_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./keysIn.js */ \"./node_modules/lodash-es/keysIn.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!(0,_isObject_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value)) {\n return value;\n }\n var isArr = (0,_isArray_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value);\n if (isArr) {\n result = (0,_initCloneArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(value);\n if (!isDeep) {\n return (0,_copyArray_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(value, result);\n }\n } else {\n var tag = (0,_getTag_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if ((0,_isBuffer_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(value)) {\n return (0,_cloneBuffer_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : (0,_initCloneObject_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(value);\n if (!isDeep) {\n return isFlat\n ? (0,_copySymbolsIn_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(value, (0,_baseAssignIn_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(result, value))\n : (0,_copySymbols_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(value, (0,_baseAssign_js__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = (0,_initCloneByTag_js__WEBPACK_IMPORTED_MODULE_12__[\"default\"])(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new _Stack_js__WEBPACK_IMPORTED_MODULE_13__[\"default\"]);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if ((0,_isSet_js__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if ((0,_isMap_js__WEBPACK_IMPORTED_MODULE_15__[\"default\"])(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? _getAllKeysIn_js__WEBPACK_IMPORTED_MODULE_16__[\"default\"] : _getAllKeys_js__WEBPACK_IMPORTED_MODULE_17__[\"default\"])\n : (isFlat ? _keysIn_js__WEBPACK_IMPORTED_MODULE_18__[\"default\"] : _keys_js__WEBPACK_IMPORTED_MODULE_19__[\"default\"]);\n\n var props = isArr ? undefined : keysFunc(value);\n (0,_arrayEach_js__WEBPACK_IMPORTED_MODULE_20__[\"default\"])(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n (0,_assignValue_js__WEBPACK_IMPORTED_MODULE_21__[\"default\"])(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseClone);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlQ2xvbmUuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBZ0M7QUFDUTtBQUNJO0FBQ0Y7QUFDSTtBQUNGO0FBQ0o7QUFDSTtBQUNJO0FBQ047QUFDSTtBQUNaO0FBQ2dCO0FBQ0E7QUFDRTtBQUNqQjtBQUNFO0FBQ047QUFDTTtBQUNOO0FBQ0Y7QUFDSTs7QUFFakM7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLFdBQVcsU0FBUztBQUNwQjtBQUNBO0FBQ0E7QUFDQSxXQUFXLFVBQVU7QUFDckIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkIsYUFBYSxHQUFHO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLHdEQUFRO0FBQ2Y7QUFDQTtBQUNBLGNBQWMsdURBQU87QUFDckI7QUFDQSxhQUFhLDhEQUFjO0FBQzNCO0FBQ0EsYUFBYSx5REFBUztBQUN0QjtBQUNBLElBQUk7QUFDSixjQUFjLHNEQUFNO0FBQ3BCOztBQUVBLFFBQVEsd0RBQVE7QUFDaEIsYUFBYSwyREFBVztBQUN4QjtBQUNBO0FBQ0EsdUNBQXVDLEVBQUUsK0RBQWU7QUFDeEQ7QUFDQTtBQUNBLFlBQVksNkRBQWEsUUFBUSw0REFBWTtBQUM3QyxZQUFZLDREQUFXLFFBQVEsMkRBQVU7QUFDekM7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsZUFBZSwrREFBYztBQUM3QjtBQUNBO0FBQ0E7QUFDQSx3QkFBd0Isa0RBQUs7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxNQUFNLHNEQUFLO0FBQ1g7QUFDQTtBQUNBLEtBQUs7QUFDTCxJQUFJLFNBQVMsc0RBQUs7QUFDbEI7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBLGdCQUFnQix5REFBWSxHQUFHLHVEQUFVO0FBQ3pDLGdCQUFnQixtREFBTSxHQUFHLGlEQUFJOztBQUU3QjtBQUNBLEVBQUUsMERBQVM7QUFDWDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSw0REFBVztBQUNmLEdBQUc7QUFDSDtBQUNBOztBQUVBLCtEQUFlLFNBQVMsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlQ2xvbmUuanM/YjEzMSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgU3RhY2sgZnJvbSAnLi9fU3RhY2suanMnO1xuaW1wb3J0IGFycmF5RWFjaCBmcm9tICcuL19hcnJheUVhY2guanMnO1xuaW1wb3J0IGFzc2lnblZhbHVlIGZyb20gJy4vX2Fzc2lnblZhbHVlLmpzJztcbmltcG9ydCBiYXNlQXNzaWduIGZyb20gJy4vX2Jhc2VBc3NpZ24uanMnO1xuaW1wb3J0IGJhc2VBc3NpZ25JbiBmcm9tICcuL19iYXNlQXNzaWduSW4uanMnO1xuaW1wb3J0IGNsb25lQnVmZmVyIGZyb20gJy4vX2Nsb25lQnVmZmVyLmpzJztcbmltcG9ydCBjb3B5QXJyYXkgZnJvbSAnLi9fY29weUFycmF5LmpzJztcbmltcG9ydCBjb3B5U3ltYm9scyBmcm9tICcuL19jb3B5U3ltYm9scy5qcyc7XG5pbXBvcnQgY29weVN5bWJvbHNJbiBmcm9tICcuL19jb3B5U3ltYm9sc0luLmpzJztcbmltcG9ydCBnZXRBbGxLZXlzIGZyb20gJy4vX2dldEFsbEtleXMuanMnO1xuaW1wb3J0IGdldEFsbEtleXNJbiBmcm9tICcuL19nZXRBbGxLZXlzSW4uanMnO1xuaW1wb3J0IGdldFRhZyBmcm9tICcuL19nZXRUYWcuanMnO1xuaW1wb3J0IGluaXRDbG9uZUFycmF5IGZyb20gJy4vX2luaXRDbG9uZUFycmF5LmpzJztcbmltcG9ydCBpbml0Q2xvbmVCeVRhZyBmcm9tICcuL19pbml0Q2xvbmVCeVRhZy5qcyc7XG5pbXBvcnQgaW5pdENsb25lT2JqZWN0IGZyb20gJy4vX2luaXRDbG9uZU9iamVjdC5qcyc7XG5pbXBvcnQgaXNBcnJheSBmcm9tICcuL2lzQXJyYXkuanMnO1xuaW1wb3J0IGlzQnVmZmVyIGZyb20gJy4vaXNCdWZmZXIuanMnO1xuaW1wb3J0IGlzTWFwIGZyb20gJy4vaXNNYXAuanMnO1xuaW1wb3J0IGlzT2JqZWN0IGZyb20gJy4vaXNPYmplY3QuanMnO1xuaW1wb3J0IGlzU2V0IGZyb20gJy4vaXNTZXQuanMnO1xuaW1wb3J0IGtleXMgZnJvbSAnLi9rZXlzLmpzJztcbmltcG9ydCBrZXlzSW4gZnJvbSAnLi9rZXlzSW4uanMnO1xuXG4vKiogVXNlZCB0byBjb21wb3NlIGJpdG1hc2tzIGZvciBjbG9uaW5nLiAqL1xudmFyIENMT05FX0RFRVBfRkxBRyA9IDEsXG4gICAgQ0xPTkVfRkxBVF9GTEFHID0gMixcbiAgICBDTE9ORV9TWU1CT0xTX0ZMQUcgPSA0O1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgYXJnc1RhZyA9ICdbb2JqZWN0IEFyZ3VtZW50c10nLFxuICAgIGFycmF5VGFnID0gJ1tvYmplY3QgQXJyYXldJyxcbiAgICBib29sVGFnID0gJ1tvYmplY3QgQm9vbGVhbl0nLFxuICAgIGRhdGVUYWcgPSAnW29iamVjdCBEYXRlXScsXG4gICAgZXJyb3JUYWcgPSAnW29iamVjdCBFcnJvcl0nLFxuICAgIGZ1bmNUYWcgPSAnW29iamVjdCBGdW5jdGlvbl0nLFxuICAgIGdlblRhZyA9ICdbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXScsXG4gICAgbWFwVGFnID0gJ1tvYmplY3QgTWFwXScsXG4gICAgbnVtYmVyVGFnID0gJ1tvYmplY3QgTnVtYmVyXScsXG4gICAgb2JqZWN0VGFnID0gJ1tvYmplY3QgT2JqZWN0XScsXG4gICAgcmVnZXhwVGFnID0gJ1tvYmplY3QgUmVnRXhwXScsXG4gICAgc2V0VGFnID0gJ1tvYmplY3QgU2V0XScsXG4gICAgc3RyaW5nVGFnID0gJ1tvYmplY3QgU3RyaW5nXScsXG4gICAgc3ltYm9sVGFnID0gJ1tvYmplY3QgU3ltYm9sXScsXG4gICAgd2Vha01hcFRhZyA9ICdbb2JqZWN0IFdlYWtNYXBdJztcblxudmFyIGFycmF5QnVmZmVyVGFnID0gJ1tvYmplY3QgQXJyYXlCdWZmZXJdJyxcbiAgICBkYXRhVmlld1RhZyA9ICdbb2JqZWN0IERhdGFWaWV3XScsXG4gICAgZmxvYXQzMlRhZyA9ICdbb2JqZWN0IEZsb2F0MzJBcnJheV0nLFxuICAgIGZsb2F0NjRUYWcgPSAnW29iamVjdCBGbG9hdDY0QXJyYXldJyxcbiAgICBpbnQ4VGFnID0gJ1tvYmplY3QgSW50OEFycmF5XScsXG4gICAgaW50MTZUYWcgPSAnW29iamVjdCBJbnQxNkFycmF5XScsXG4gICAgaW50MzJUYWcgPSAnW29iamVjdCBJbnQzMkFycmF5XScsXG4gICAgdWludDhUYWcgPSAnW29iamVjdCBVaW50OEFycmF5XScsXG4gICAgdWludDhDbGFtcGVkVGFnID0gJ1tvYmplY3QgVWludDhDbGFtcGVkQXJyYXldJyxcbiAgICB1aW50MTZUYWcgPSAnW29iamVjdCBVaW50MTZBcnJheV0nLFxuICAgIHVpbnQzMlRhZyA9ICdbb2JqZWN0IFVpbnQzMkFycmF5XSc7XG5cbi8qKiBVc2VkIHRvIGlkZW50aWZ5IGB0b1N0cmluZ1RhZ2AgdmFsdWVzIHN1cHBvcnRlZCBieSBgXy5jbG9uZWAuICovXG52YXIgY2xvbmVhYmxlVGFncyA9IHt9O1xuY2xvbmVhYmxlVGFnc1thcmdzVGFnXSA9IGNsb25lYWJsZVRhZ3NbYXJyYXlUYWddID1cbmNsb25lYWJsZVRhZ3NbYXJyYXlCdWZmZXJUYWddID0gY2xvbmVhYmxlVGFnc1tkYXRhVmlld1RhZ10gPVxuY2xvbmVhYmxlVGFnc1tib29sVGFnXSA9IGNsb25lYWJsZVRhZ3NbZGF0ZVRhZ10gPVxuY2xvbmVhYmxlVGFnc1tmbG9hdDMyVGFnXSA9IGNsb25lYWJsZVRhZ3NbZmxvYXQ2NFRhZ10gPVxuY2xvbmVhYmxlVGFnc1tpbnQ4VGFnXSA9IGNsb25lYWJsZVRhZ3NbaW50MTZUYWddID1cbmNsb25lYWJsZVRhZ3NbaW50MzJUYWddID0gY2xvbmVhYmxlVGFnc1ttYXBUYWddID1cbmNsb25lYWJsZVRhZ3NbbnVtYmVyVGFnXSA9IGNsb25lYWJsZVRhZ3Nbb2JqZWN0VGFnXSA9XG5jbG9uZWFibGVUYWdzW3JlZ2V4cFRhZ10gPSBjbG9uZWFibGVUYWdzW3NldFRhZ10gPVxuY2xvbmVhYmxlVGFnc1tzdHJpbmdUYWddID0gY2xvbmVhYmxlVGFnc1tzeW1ib2xUYWddID1cbmNsb25lYWJsZVRhZ3NbdWludDhUYWddID0gY2xvbmVhYmxlVGFnc1t1aW50OENsYW1wZWRUYWddID1cbmNsb25lYWJsZVRhZ3NbdWludDE2VGFnXSA9IGNsb25lYWJsZVRhZ3NbdWludDMyVGFnXSA9IHRydWU7XG5jbG9uZWFibGVUYWdzW2Vycm9yVGFnXSA9IGNsb25lYWJsZVRhZ3NbZnVuY1RhZ10gPVxuY2xvbmVhYmxlVGFnc1t3ZWFrTWFwVGFnXSA9IGZhbHNlO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmNsb25lYCBhbmQgYF8uY2xvbmVEZWVwYCB3aGljaCB0cmFja3NcbiAqIHRyYXZlcnNlZCBvYmplY3RzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjbG9uZS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gYml0bWFzayBUaGUgYml0bWFzayBmbGFncy5cbiAqICAxIC0gRGVlcCBjbG9uZVxuICogIDIgLSBGbGF0dGVuIGluaGVyaXRlZCBwcm9wZXJ0aWVzXG4gKiAgNCAtIENsb25lIHN5bWJvbHNcbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNsb25pbmcuXG4gKiBAcGFyYW0ge3N0cmluZ30gW2tleV0gVGhlIGtleSBvZiBgdmFsdWVgLlxuICogQHBhcmFtIHtPYmplY3R9IFtvYmplY3RdIFRoZSBwYXJlbnQgb2JqZWN0IG9mIGB2YWx1ZWAuXG4gKiBAcGFyYW0ge09iamVjdH0gW3N0YWNrXSBUcmFja3MgdHJhdmVyc2VkIG9iamVjdHMgYW5kIHRoZWlyIGNsb25lIGNvdW50ZXJwYXJ0cy5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBjbG9uZWQgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIGJhc2VDbG9uZSh2YWx1ZSwgYml0bWFzaywgY3VzdG9taXplciwga2V5LCBvYmplY3QsIHN0YWNrKSB7XG4gIHZhciByZXN1bHQsXG4gICAgICBpc0RlZXAgPSBiaXRtYXNrICYgQ0xPTkVfREVFUF9GTEFHLFxuICAgICAgaXNGbGF0ID0gYml0bWFzayAmIENMT05FX0ZMQVRfRkxBRyxcbiAgICAgIGlzRnVsbCA9IGJpdG1hc2sgJiBDTE9ORV9TWU1CT0xTX0ZMQUc7XG5cbiAgaWYgKGN1c3RvbWl6ZXIpIHtcbiAgICByZXN1bHQgPSBvYmplY3QgPyBjdXN0b21pemVyKHZhbHVlLCBrZXksIG9iamVjdCwgc3RhY2spIDogY3VzdG9taXplcih2YWx1ZSk7XG4gIH1cbiAgaWYgKHJlc3VsdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICBpZiAoIWlzT2JqZWN0KHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICB2YXIgaXNBcnIgPSBpc0FycmF5KHZhbHVlKTtcbiAgaWYgKGlzQXJyKSB7XG4gICAgcmVzdWx0ID0gaW5pdENsb25lQXJyYXkodmFsdWUpO1xuICAgIGlmICghaXNEZWVwKSB7XG4gICAgICByZXR1cm4gY29weUFycmF5KHZhbHVlLCByZXN1bHQpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB2YXIgdGFnID0gZ2V0VGFnKHZhbHVlKSxcbiAgICAgICAgaXNGdW5jID0gdGFnID09IGZ1bmNUYWcgfHwgdGFnID09IGdlblRhZztcblxuICAgIGlmIChpc0J1ZmZlcih2YWx1ZSkpIHtcbiAgICAgIHJldHVybiBjbG9uZUJ1ZmZlcih2YWx1ZSwgaXNEZWVwKTtcbiAgICB9XG4gICAgaWYgKHRhZyA9PSBvYmplY3RUYWcgfHwgdGFnID09IGFyZ3NUYWcgfHwgKGlzRnVuYyAmJiAhb2JqZWN0KSkge1xuICAgICAgcmVzdWx0ID0gKGlzRmxhdCB8fCBpc0Z1bmMpID8ge30gOiBpbml0Q2xvbmVPYmplY3QodmFsdWUpO1xuICAgICAgaWYgKCFpc0RlZXApIHtcbiAgICAgICAgcmV0dXJuIGlzRmxhdFxuICAgICAgICAgID8gY29weVN5bWJvbHNJbih2YWx1ZSwgYmFzZUFzc2lnbkluKHJlc3VsdCwgdmFsdWUpKVxuICAgICAgICAgIDogY29weVN5bWJvbHModmFsdWUsIGJhc2VBc3NpZ24ocmVzdWx0LCB2YWx1ZSkpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIWNsb25lYWJsZVRhZ3NbdGFnXSkge1xuICAgICAgICByZXR1cm4gb2JqZWN0ID8gdmFsdWUgOiB7fTtcbiAgICAgIH1cbiAgICAgIHJlc3VsdCA9IGluaXRDbG9uZUJ5VGFnKHZhbHVlLCB0YWcsIGlzRGVlcCk7XG4gICAgfVxuICB9XG4gIC8vIENoZWNrIGZvciBjaXJjdWxhciByZWZlcmVuY2VzIGFuZCByZXR1cm4gaXRzIGNvcnJlc3BvbmRpbmcgY2xvbmUuXG4gIHN0YWNrIHx8IChzdGFjayA9IG5ldyBTdGFjayk7XG4gIHZhciBzdGFja2VkID0gc3RhY2suZ2V0KHZhbHVlKTtcbiAgaWYgKHN0YWNrZWQpIHtcbiAgICByZXR1cm4gc3RhY2tlZDtcbiAgfVxuICBzdGFjay5zZXQodmFsdWUsIHJlc3VsdCk7XG5cbiAgaWYgKGlzU2V0KHZhbHVlKSkge1xuICAgIHZhbHVlLmZvckVhY2goZnVuY3Rpb24oc3ViVmFsdWUpIHtcbiAgICAgIHJlc3VsdC5hZGQoYmFzZUNsb25lKHN1YlZhbHVlLCBiaXRtYXNrLCBjdXN0b21pemVyLCBzdWJWYWx1ZSwgdmFsdWUsIHN0YWNrKSk7XG4gICAgfSk7XG4gIH0gZWxzZSBpZiAoaXNNYXAodmFsdWUpKSB7XG4gICAgdmFsdWUuZm9yRWFjaChmdW5jdGlvbihzdWJWYWx1ZSwga2V5KSB7XG4gICAgICByZXN1bHQuc2V0KGtleSwgYmFzZUNsb25lKHN1YlZhbHVlLCBiaXRtYXNrLCBjdXN0b21pemVyLCBrZXksIHZhbHVlLCBzdGFjaykpO1xuICAgIH0pO1xuICB9XG5cbiAgdmFyIGtleXNGdW5jID0gaXNGdWxsXG4gICAgPyAoaXNGbGF0ID8gZ2V0QWxsS2V5c0luIDogZ2V0QWxsS2V5cylcbiAgICA6IChpc0ZsYXQgPyBrZXlzSW4gOiBrZXlzKTtcblxuICB2YXIgcHJvcHMgPSBpc0FyciA/IHVuZGVmaW5lZCA6IGtleXNGdW5jKHZhbHVlKTtcbiAgYXJyYXlFYWNoKHByb3BzIHx8IHZhbHVlLCBmdW5jdGlvbihzdWJWYWx1ZSwga2V5KSB7XG4gICAgaWYgKHByb3BzKSB7XG4gICAgICBrZXkgPSBzdWJWYWx1ZTtcbiAgICAgIHN1YlZhbHVlID0gdmFsdWVba2V5XTtcbiAgICB9XG4gICAgLy8gUmVjdXJzaXZlbHkgcG9wdWxhdGUgY2xvbmUgKHN1c2NlcHRpYmxlIHRvIGNhbGwgc3RhY2sgbGltaXRzKS5cbiAgICBhc3NpZ25WYWx1ZShyZXN1bHQsIGtleSwgYmFzZUNsb25lKHN1YlZhbHVlLCBiaXRtYXNrLCBjdXN0b21pemVyLCBrZXksIHZhbHVlLCBzdGFjaykpO1xuICB9KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZUNsb25lO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseClone.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseCreate.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/_baseCreate.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isObject.js */ \"./node_modules/lodash-es/isObject.js\");\n\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!(0,_isObject_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseCreate);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlQ3JlYXRlLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQXFDOztBQUVyQztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUyx3REFBUTtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQsK0RBQWUsVUFBVSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VDcmVhdGUuanM/YjJhZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgaXNPYmplY3QgZnJvbSAnLi9pc09iamVjdC5qcyc7XG5cbi8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdENyZWF0ZSA9IE9iamVjdC5jcmVhdGU7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uY3JlYXRlYCB3aXRob3V0IHN1cHBvcnQgZm9yIGFzc2lnbmluZ1xuICogcHJvcGVydGllcyB0byB0aGUgY3JlYXRlZCBvYmplY3QuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm90byBUaGUgb2JqZWN0IHRvIGluaGVyaXQgZnJvbS5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBvYmplY3QuXG4gKi9cbnZhciBiYXNlQ3JlYXRlID0gKGZ1bmN0aW9uKCkge1xuICBmdW5jdGlvbiBvYmplY3QoKSB7fVxuICByZXR1cm4gZnVuY3Rpb24ocHJvdG8pIHtcbiAgICBpZiAoIWlzT2JqZWN0KHByb3RvKSkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgICBpZiAob2JqZWN0Q3JlYXRlKSB7XG4gICAgICByZXR1cm4gb2JqZWN0Q3JlYXRlKHByb3RvKTtcbiAgICB9XG4gICAgb2JqZWN0LnByb3RvdHlwZSA9IHByb3RvO1xuICAgIHZhciByZXN1bHQgPSBuZXcgb2JqZWN0O1xuICAgIG9iamVjdC5wcm90b3R5cGUgPSB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcbn0oKSk7XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VDcmVhdGU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseCreate.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseGetAllKeys.js": +/*!***************************************************!*\ + !*** ./node_modules/lodash-es/_baseGetAllKeys.js ***! + \***************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _arrayPush_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_arrayPush.js */ \"./node_modules/lodash-es/_arrayPush.js\");\n/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isArray.js */ \"./node_modules/lodash-es/isArray.js\");\n\n\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return (0,_isArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object) ? result : (0,_arrayPush_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(result, symbolsFunc(object));\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseGetAllKeys);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlR2V0QWxsS2V5cy5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7QUFBd0M7QUFDTDs7QUFFbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsVUFBVTtBQUNyQixXQUFXLFVBQVU7QUFDckIsYUFBYSxPQUFPO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBLFNBQVMsdURBQU8sb0JBQW9CLHlEQUFTO0FBQzdDOztBQUVBLCtEQUFlLGNBQWMsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlR2V0QWxsS2V5cy5qcz8zZTg1Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhcnJheVB1c2ggZnJvbSAnLi9fYXJyYXlQdXNoLmpzJztcbmltcG9ydCBpc0FycmF5IGZyb20gJy4vaXNBcnJheS5qcyc7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYGdldEFsbEtleXNgIGFuZCBgZ2V0QWxsS2V5c0luYCB3aGljaCB1c2VzXG4gKiBga2V5c0Z1bmNgIGFuZCBgc3ltYm9sc0Z1bmNgIHRvIGdldCB0aGUgZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBhbmRcbiAqIHN5bWJvbHMgb2YgYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGtleXNGdW5jIFRoZSBmdW5jdGlvbiB0byBnZXQgdGhlIGtleXMgb2YgYG9iamVjdGAuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBzeW1ib2xzRnVuYyBUaGUgZnVuY3Rpb24gdG8gZ2V0IHRoZSBzeW1ib2xzIG9mIGBvYmplY3RgLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcyBhbmQgc3ltYm9scy5cbiAqL1xuZnVuY3Rpb24gYmFzZUdldEFsbEtleXMob2JqZWN0LCBrZXlzRnVuYywgc3ltYm9sc0Z1bmMpIHtcbiAgdmFyIHJlc3VsdCA9IGtleXNGdW5jKG9iamVjdCk7XG4gIHJldHVybiBpc0FycmF5KG9iamVjdCkgPyByZXN1bHQgOiBhcnJheVB1c2gocmVzdWx0LCBzeW1ib2xzRnVuYyhvYmplY3QpKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZUdldEFsbEtleXM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseGetAllKeys.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseGetTag.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/_baseGetTag.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Symbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_Symbol.js */ \"./node_modules/lodash-es/_Symbol.js\");\n/* harmony import */ var _getRawTag_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_getRawTag.js */ \"./node_modules/lodash-es/_getRawTag.js\");\n/* harmony import */ var _objectToString_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_objectToString.js */ \"./node_modules/lodash-es/_objectToString.js\");\n\n\n\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = _Symbol_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] ? _Symbol_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? (0,_getRawTag_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value)\n : (0,_objectToString_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(value);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseGetTag);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlR2V0VGFnLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBa0M7QUFDTTtBQUNVOztBQUVsRDtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxxQkFBcUIsa0RBQU0sR0FBRyw4REFBa0I7O0FBRWhEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2QsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0seURBQVM7QUFDZixNQUFNLDhEQUFjO0FBQ3BCOztBQUVBLCtEQUFlLFVBQVUsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlR2V0VGFnLmpzPzVlZWIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFN5bWJvbCBmcm9tICcuL19TeW1ib2wuanMnO1xuaW1wb3J0IGdldFJhd1RhZyBmcm9tICcuL19nZXRSYXdUYWcuanMnO1xuaW1wb3J0IG9iamVjdFRvU3RyaW5nIGZyb20gJy4vX29iamVjdFRvU3RyaW5nLmpzJztcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIG51bGxUYWcgPSAnW29iamVjdCBOdWxsXScsXG4gICAgdW5kZWZpbmVkVGFnID0gJ1tvYmplY3QgVW5kZWZpbmVkXSc7XG5cbi8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqL1xudmFyIHN5bVRvU3RyaW5nVGFnID0gU3ltYm9sID8gU3ltYm9sLnRvU3RyaW5nVGFnIDogdW5kZWZpbmVkO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBnZXRUYWdgIHdpdGhvdXQgZmFsbGJhY2tzIGZvciBidWdneSBlbnZpcm9ubWVudHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHF1ZXJ5LlxuICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgYHRvU3RyaW5nVGFnYC5cbiAqL1xuZnVuY3Rpb24gYmFzZUdldFRhZyh2YWx1ZSkge1xuICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgIHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkVGFnIDogbnVsbFRhZztcbiAgfVxuICByZXR1cm4gKHN5bVRvU3RyaW5nVGFnICYmIHN5bVRvU3RyaW5nVGFnIGluIE9iamVjdCh2YWx1ZSkpXG4gICAgPyBnZXRSYXdUYWcodmFsdWUpXG4gICAgOiBvYmplY3RUb1N0cmluZyh2YWx1ZSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VHZXRUYWc7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseGetTag.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseIsArguments.js": +/*!****************************************************!*\ + !*** ./node_modules/lodash-es/_baseIsArguments.js ***! + \****************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseGetTag_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_baseGetTag.js */ \"./node_modules/lodash-es/_baseGetTag.js\");\n/* harmony import */ var _isObjectLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isObjectLike.js */ \"./node_modules/lodash-es/isObjectLike.js\");\n\n\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return (0,_isObjectLike_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value) && (0,_baseGetTag_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value) == argsTag;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseIsArguments);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlSXNBcmd1bWVudHMuanMuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQTBDO0FBQ0c7O0FBRTdDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBLFNBQVMsNERBQVksV0FBVywwREFBVTtBQUMxQzs7QUFFQSwrREFBZSxlQUFlLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUlzQXJndW1lbnRzLmpzPzFmMTciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGJhc2VHZXRUYWcgZnJvbSAnLi9fYmFzZUdldFRhZy5qcyc7XG5pbXBvcnQgaXNPYmplY3RMaWtlIGZyb20gJy4vaXNPYmplY3RMaWtlLmpzJztcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIGFyZ3NUYWcgPSAnW29iamVjdCBBcmd1bWVudHNdJztcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc0FyZ3VtZW50c2AuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gYGFyZ3VtZW50c2Agb2JqZWN0LFxuICovXG5mdW5jdGlvbiBiYXNlSXNBcmd1bWVudHModmFsdWUpIHtcbiAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT0gYXJnc1RhZztcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZUlzQXJndW1lbnRzO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseIsArguments.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseIsMap.js": +/*!**********************************************!*\ + !*** ./node_modules/lodash-es/_baseIsMap.js ***! + \**********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getTag_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_getTag.js */ \"./node_modules/lodash-es/_getTag.js\");\n/* harmony import */ var _isObjectLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isObjectLike.js */ \"./node_modules/lodash-es/isObjectLike.js\");\n\n\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return (0,_isObjectLike_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value) && (0,_getTag_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value) == mapTag;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseIsMap);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlSXNNYXAuanMuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQWtDO0FBQ1c7O0FBRTdDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBLFNBQVMsNERBQVksV0FBVyxzREFBTTtBQUN0Qzs7QUFFQSwrREFBZSxTQUFTLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUlzTWFwLmpzPzcyMGIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldFRhZyBmcm9tICcuL19nZXRUYWcuanMnO1xuaW1wb3J0IGlzT2JqZWN0TGlrZSBmcm9tICcuL2lzT2JqZWN0TGlrZS5qcyc7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBtYXBUYWcgPSAnW29iamVjdCBNYXBdJztcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc01hcGAgd2l0aG91dCBOb2RlLmpzIG9wdGltaXphdGlvbnMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBtYXAsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gYmFzZUlzTWFwKHZhbHVlKSB7XG4gIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGdldFRhZyh2YWx1ZSkgPT0gbWFwVGFnO1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlSXNNYXA7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseIsMap.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseIsNative.js": +/*!*************************************************!*\ + !*** ./node_modules/lodash-es/_baseIsNative.js ***! + \*************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isFunction.js */ \"./node_modules/lodash-es/isFunction.js\");\n/* harmony import */ var _isMasked_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_isMasked.js */ \"./node_modules/lodash-es/_isMasked.js\");\n/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isObject.js */ \"./node_modules/lodash-es/isObject.js\");\n/* harmony import */ var _toSource_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_toSource.js */ \"./node_modules/lodash-es/_toSource.js\");\n\n\n\n\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!(0,_isObject_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value) || (0,_isMasked_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value)) {\n return false;\n }\n var pattern = (0,_isFunction_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(value) ? reIsNative : reIsHostCtor;\n return pattern.test((0,_toSource_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(value));\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseIsNative);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlSXNOYXRpdmUuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBeUM7QUFDSDtBQUNEO0FBQ0M7O0FBRXRDO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DOztBQUVwQztBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQSxPQUFPLHdEQUFRLFdBQVcsd0RBQVE7QUFDbEM7QUFDQTtBQUNBLGdCQUFnQiwwREFBVTtBQUMxQixzQkFBc0Isd0RBQVE7QUFDOUI7O0FBRUEsK0RBQWUsWUFBWSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VJc05hdGl2ZS5qcz85MjUwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBpc0Z1bmN0aW9uIGZyb20gJy4vaXNGdW5jdGlvbi5qcyc7XG5pbXBvcnQgaXNNYXNrZWQgZnJvbSAnLi9faXNNYXNrZWQuanMnO1xuaW1wb3J0IGlzT2JqZWN0IGZyb20gJy4vaXNPYmplY3QuanMnO1xuaW1wb3J0IHRvU291cmNlIGZyb20gJy4vX3RvU291cmNlLmpzJztcblxuLyoqXG4gKiBVc2VkIHRvIG1hdGNoIGBSZWdFeHBgXG4gKiBbc3ludGF4IGNoYXJhY3RlcnNdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXBhdHRlcm5zKS5cbiAqL1xudmFyIHJlUmVnRXhwQ2hhciA9IC9bXFxcXF4kLiorPygpW1xcXXt9fF0vZztcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IGhvc3QgY29uc3RydWN0b3JzIChTYWZhcmkpLiAqL1xudmFyIHJlSXNIb3N0Q3RvciA9IC9eXFxbb2JqZWN0IC4rP0NvbnN0cnVjdG9yXFxdJC87XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBmdW5jUHJvdG8gPSBGdW5jdGlvbi5wcm90b3R5cGUsXG4gICAgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byByZXNvbHZlIHRoZSBkZWNvbXBpbGVkIHNvdXJjZSBvZiBmdW5jdGlvbnMuICovXG52YXIgZnVuY1RvU3RyaW5nID0gZnVuY1Byb3RvLnRvU3RyaW5nO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKiogVXNlZCB0byBkZXRlY3QgaWYgYSBtZXRob2QgaXMgbmF0aXZlLiAqL1xudmFyIHJlSXNOYXRpdmUgPSBSZWdFeHAoJ14nICtcbiAgZnVuY1RvU3RyaW5nLmNhbGwoaGFzT3duUHJvcGVydHkpLnJlcGxhY2UocmVSZWdFeHBDaGFyLCAnXFxcXCQmJylcbiAgLnJlcGxhY2UoL2hhc093blByb3BlcnR5fChmdW5jdGlvbikuKj8oPz1cXFxcXFwoKXwgZm9yIC4rPyg/PVxcXFxcXF0pL2csICckMS4qPycpICsgJyQnXG4pO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzTmF0aXZlYCB3aXRob3V0IGJhZCBzaGltIGNoZWNrcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIG5hdGl2ZSBmdW5jdGlvbixcbiAqICBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VJc05hdGl2ZSh2YWx1ZSkge1xuICBpZiAoIWlzT2JqZWN0KHZhbHVlKSB8fCBpc01hc2tlZCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdmFyIHBhdHRlcm4gPSBpc0Z1bmN0aW9uKHZhbHVlKSA/IHJlSXNOYXRpdmUgOiByZUlzSG9zdEN0b3I7XG4gIHJldHVybiBwYXR0ZXJuLnRlc3QodG9Tb3VyY2UodmFsdWUpKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZUlzTmF0aXZlO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseIsNative.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseIsSet.js": +/*!**********************************************!*\ + !*** ./node_modules/lodash-es/_baseIsSet.js ***! + \**********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getTag_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_getTag.js */ \"./node_modules/lodash-es/_getTag.js\");\n/* harmony import */ var _isObjectLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isObjectLike.js */ \"./node_modules/lodash-es/isObjectLike.js\");\n\n\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return (0,_isObjectLike_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value) && (0,_getTag_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value) == setTag;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseIsSet);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlSXNTZXQuanMuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQWtDO0FBQ1c7O0FBRTdDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBLFNBQVMsNERBQVksV0FBVyxzREFBTTtBQUN0Qzs7QUFFQSwrREFBZSxTQUFTLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUlzU2V0LmpzP2E2MzciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldFRhZyBmcm9tICcuL19nZXRUYWcuanMnO1xuaW1wb3J0IGlzT2JqZWN0TGlrZSBmcm9tICcuL2lzT2JqZWN0TGlrZS5qcyc7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBzZXRUYWcgPSAnW29iamVjdCBTZXRdJztcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc1NldGAgd2l0aG91dCBOb2RlLmpzIG9wdGltaXphdGlvbnMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBzZXQsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gYmFzZUlzU2V0KHZhbHVlKSB7XG4gIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGdldFRhZyh2YWx1ZSkgPT0gc2V0VGFnO1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlSXNTZXQ7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseIsSet.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseIsTypedArray.js": +/*!*****************************************************!*\ + !*** ./node_modules/lodash-es/_baseIsTypedArray.js ***! + \*****************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseGetTag_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_baseGetTag.js */ \"./node_modules/lodash-es/_baseGetTag.js\");\n/* harmony import */ var _isLength_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isLength.js */ \"./node_modules/lodash-es/isLength.js\");\n/* harmony import */ var _isObjectLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isObjectLike.js */ \"./node_modules/lodash-es/isObjectLike.js\");\n\n\n\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return (0,_isObjectLike_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value) &&\n (0,_isLength_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value.length) && !!typedArrayTags[(0,_baseGetTag_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(value)];\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseIsTypedArray);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlSXNUeXBlZEFycmF5LmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBMEM7QUFDTDtBQUNROztBQUU3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2QsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQSxTQUFTLDREQUFZO0FBQ3JCLElBQUksd0RBQVEsbUNBQW1DLDBEQUFVO0FBQ3pEOztBQUVBLCtEQUFlLGdCQUFnQixFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VJc1R5cGVkQXJyYXkuanM/OWUzZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYmFzZUdldFRhZyBmcm9tICcuL19iYXNlR2V0VGFnLmpzJztcbmltcG9ydCBpc0xlbmd0aCBmcm9tICcuL2lzTGVuZ3RoLmpzJztcbmltcG9ydCBpc09iamVjdExpa2UgZnJvbSAnLi9pc09iamVjdExpa2UuanMnO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgYXJnc1RhZyA9ICdbb2JqZWN0IEFyZ3VtZW50c10nLFxuICAgIGFycmF5VGFnID0gJ1tvYmplY3QgQXJyYXldJyxcbiAgICBib29sVGFnID0gJ1tvYmplY3QgQm9vbGVhbl0nLFxuICAgIGRhdGVUYWcgPSAnW29iamVjdCBEYXRlXScsXG4gICAgZXJyb3JUYWcgPSAnW29iamVjdCBFcnJvcl0nLFxuICAgIGZ1bmNUYWcgPSAnW29iamVjdCBGdW5jdGlvbl0nLFxuICAgIG1hcFRhZyA9ICdbb2JqZWN0IE1hcF0nLFxuICAgIG51bWJlclRhZyA9ICdbb2JqZWN0IE51bWJlcl0nLFxuICAgIG9iamVjdFRhZyA9ICdbb2JqZWN0IE9iamVjdF0nLFxuICAgIHJlZ2V4cFRhZyA9ICdbb2JqZWN0IFJlZ0V4cF0nLFxuICAgIHNldFRhZyA9ICdbb2JqZWN0IFNldF0nLFxuICAgIHN0cmluZ1RhZyA9ICdbb2JqZWN0IFN0cmluZ10nLFxuICAgIHdlYWtNYXBUYWcgPSAnW29iamVjdCBXZWFrTWFwXSc7XG5cbnZhciBhcnJheUJ1ZmZlclRhZyA9ICdbb2JqZWN0IEFycmF5QnVmZmVyXScsXG4gICAgZGF0YVZpZXdUYWcgPSAnW29iamVjdCBEYXRhVmlld10nLFxuICAgIGZsb2F0MzJUYWcgPSAnW29iamVjdCBGbG9hdDMyQXJyYXldJyxcbiAgICBmbG9hdDY0VGFnID0gJ1tvYmplY3QgRmxvYXQ2NEFycmF5XScsXG4gICAgaW50OFRhZyA9ICdbb2JqZWN0IEludDhBcnJheV0nLFxuICAgIGludDE2VGFnID0gJ1tvYmplY3QgSW50MTZBcnJheV0nLFxuICAgIGludDMyVGFnID0gJ1tvYmplY3QgSW50MzJBcnJheV0nLFxuICAgIHVpbnQ4VGFnID0gJ1tvYmplY3QgVWludDhBcnJheV0nLFxuICAgIHVpbnQ4Q2xhbXBlZFRhZyA9ICdbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XScsXG4gICAgdWludDE2VGFnID0gJ1tvYmplY3QgVWludDE2QXJyYXldJyxcbiAgICB1aW50MzJUYWcgPSAnW29iamVjdCBVaW50MzJBcnJheV0nO1xuXG4vKiogVXNlZCB0byBpZGVudGlmeSBgdG9TdHJpbmdUYWdgIHZhbHVlcyBvZiB0eXBlZCBhcnJheXMuICovXG52YXIgdHlwZWRBcnJheVRhZ3MgPSB7fTtcbnR5cGVkQXJyYXlUYWdzW2Zsb2F0MzJUYWddID0gdHlwZWRBcnJheVRhZ3NbZmxvYXQ2NFRhZ10gPVxudHlwZWRBcnJheVRhZ3NbaW50OFRhZ10gPSB0eXBlZEFycmF5VGFnc1tpbnQxNlRhZ10gPVxudHlwZWRBcnJheVRhZ3NbaW50MzJUYWddID0gdHlwZWRBcnJheVRhZ3NbdWludDhUYWddID1cbnR5cGVkQXJyYXlUYWdzW3VpbnQ4Q2xhbXBlZFRhZ10gPSB0eXBlZEFycmF5VGFnc1t1aW50MTZUYWddID1cbnR5cGVkQXJyYXlUYWdzW3VpbnQzMlRhZ10gPSB0cnVlO1xudHlwZWRBcnJheVRhZ3NbYXJnc1RhZ10gPSB0eXBlZEFycmF5VGFnc1thcnJheVRhZ10gPVxudHlwZWRBcnJheVRhZ3NbYXJyYXlCdWZmZXJUYWddID0gdHlwZWRBcnJheVRhZ3NbYm9vbFRhZ10gPVxudHlwZWRBcnJheVRhZ3NbZGF0YVZpZXdUYWddID0gdHlwZWRBcnJheVRhZ3NbZGF0ZVRhZ10gPVxudHlwZWRBcnJheVRhZ3NbZXJyb3JUYWddID0gdHlwZWRBcnJheVRhZ3NbZnVuY1RhZ10gPVxudHlwZWRBcnJheVRhZ3NbbWFwVGFnXSA9IHR5cGVkQXJyYXlUYWdzW251bWJlclRhZ10gPVxudHlwZWRBcnJheVRhZ3Nbb2JqZWN0VGFnXSA9IHR5cGVkQXJyYXlUYWdzW3JlZ2V4cFRhZ10gPVxudHlwZWRBcnJheVRhZ3Nbc2V0VGFnXSA9IHR5cGVkQXJyYXlUYWdzW3N0cmluZ1RhZ10gPVxudHlwZWRBcnJheVRhZ3Nbd2Vha01hcFRhZ10gPSBmYWxzZTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc1R5cGVkQXJyYXlgIHdpdGhvdXQgTm9kZS5qcyBvcHRpbWl6YXRpb25zLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgdHlwZWQgYXJyYXksIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gYmFzZUlzVHlwZWRBcnJheSh2YWx1ZSkge1xuICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJlxuICAgIGlzTGVuZ3RoKHZhbHVlLmxlbmd0aCkgJiYgISF0eXBlZEFycmF5VGFnc1tiYXNlR2V0VGFnKHZhbHVlKV07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VJc1R5cGVkQXJyYXk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseIsTypedArray.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseKeys.js": +/*!*********************************************!*\ + !*** ./node_modules/lodash-es/_baseKeys.js ***! + \*********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _isPrototype_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isPrototype.js */ \"./node_modules/lodash-es/_isPrototype.js\");\n/* harmony import */ var _nativeKeys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_nativeKeys.js */ \"./node_modules/lodash-es/_nativeKeys.js\");\n\n\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!(0,_isPrototype_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object)) {\n return (0,_nativeKeys_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseKeys);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlS2V5cy5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7QUFBNEM7QUFDRjs7QUFFMUM7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsT0FBTztBQUNwQjtBQUNBO0FBQ0EsT0FBTywyREFBVztBQUNsQixXQUFXLDBEQUFVO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxRQUFRLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUtleXMuanM/OTY5OSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgaXNQcm90b3R5cGUgZnJvbSAnLi9faXNQcm90b3R5cGUuanMnO1xuaW1wb3J0IG5hdGl2ZUtleXMgZnJvbSAnLi9fbmF0aXZlS2V5cy5qcyc7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ua2V5c2Agd2hpY2ggZG9lc24ndCB0cmVhdCBzcGFyc2UgYXJyYXlzIGFzIGRlbnNlLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICovXG5mdW5jdGlvbiBiYXNlS2V5cyhvYmplY3QpIHtcbiAgaWYgKCFpc1Byb3RvdHlwZShvYmplY3QpKSB7XG4gICAgcmV0dXJuIG5hdGl2ZUtleXMob2JqZWN0KTtcbiAgfVxuICB2YXIgcmVzdWx0ID0gW107XG4gIGZvciAodmFyIGtleSBpbiBPYmplY3Qob2JqZWN0KSkge1xuICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwga2V5KSAmJiBrZXkgIT0gJ2NvbnN0cnVjdG9yJykge1xuICAgICAgcmVzdWx0LnB1c2goa2V5KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZUtleXM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseKeys.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseKeysIn.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/_baseKeysIn.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isObject.js */ \"./node_modules/lodash-es/isObject.js\");\n/* harmony import */ var _isPrototype_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_isPrototype.js */ \"./node_modules/lodash-es/_isPrototype.js\");\n/* harmony import */ var _nativeKeysIn_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_nativeKeysIn.js */ \"./node_modules/lodash-es/_nativeKeysIn.js\");\n\n\n\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!(0,_isObject_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object)) {\n return (0,_nativeKeysIn_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(object);\n }\n var isProto = (0,_isPrototype_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseKeysIn);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlS2V5c0luLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBcUM7QUFDTztBQUNFOztBQUU5QztBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsYUFBYSxPQUFPO0FBQ3BCO0FBQ0E7QUFDQSxPQUFPLHdEQUFRO0FBQ2YsV0FBVyw0REFBWTtBQUN2QjtBQUNBLGdCQUFnQiwyREFBVztBQUMzQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxVQUFVLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUtleXNJbi5qcz80ODg1Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBpc09iamVjdCBmcm9tICcuL2lzT2JqZWN0LmpzJztcbmltcG9ydCBpc1Byb3RvdHlwZSBmcm9tICcuL19pc1Byb3RvdHlwZS5qcyc7XG5pbXBvcnQgbmF0aXZlS2V5c0luIGZyb20gJy4vX25hdGl2ZUtleXNJbi5qcyc7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ua2V5c0luYCB3aGljaCBkb2Vzbid0IHRyZWF0IHNwYXJzZSBhcnJheXMgYXMgZGVuc2UuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMuXG4gKi9cbmZ1bmN0aW9uIGJhc2VLZXlzSW4ob2JqZWN0KSB7XG4gIGlmICghaXNPYmplY3Qob2JqZWN0KSkge1xuICAgIHJldHVybiBuYXRpdmVLZXlzSW4ob2JqZWN0KTtcbiAgfVxuICB2YXIgaXNQcm90byA9IGlzUHJvdG90eXBlKG9iamVjdCksXG4gICAgICByZXN1bHQgPSBbXTtcblxuICBmb3IgKHZhciBrZXkgaW4gb2JqZWN0KSB7XG4gICAgaWYgKCEoa2V5ID09ICdjb25zdHJ1Y3RvcicgJiYgKGlzUHJvdG8gfHwgIWhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpKSkpIHtcbiAgICAgIHJlc3VsdC5wdXNoKGtleSk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VLZXlzSW47XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseKeysIn.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseTimes.js": +/*!**********************************************!*\ + !*** ./node_modules/lodash-es/_baseTimes.js ***! + \**********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseTimes);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlVGltZXMuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxVQUFVO0FBQ3JCLGFBQWEsT0FBTztBQUNwQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLCtEQUFlLFNBQVMsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlVGltZXMuanM/ZTYwOSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnRpbWVzYCB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlIHNob3J0aGFuZHNcbiAqIG9yIG1heCBhcnJheSBsZW5ndGggY2hlY2tzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge251bWJlcn0gbiBUaGUgbnVtYmVyIG9mIHRpbWVzIHRvIGludm9rZSBgaXRlcmF0ZWVgLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcmVzdWx0cy5cbiAqL1xuZnVuY3Rpb24gYmFzZVRpbWVzKG4sIGl0ZXJhdGVlKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgcmVzdWx0ID0gQXJyYXkobik7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBuKSB7XG4gICAgcmVzdWx0W2luZGV4XSA9IGl0ZXJhdGVlKGluZGV4KTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlVGltZXM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseTimes.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseToString.js": +/*!*************************************************!*\ + !*** ./node_modules/lodash-es/_baseToString.js ***! + \*************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Symbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_Symbol.js */ \"./node_modules/lodash-es/_Symbol.js\");\n/* harmony import */ var _arrayMap_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_arrayMap.js */ \"./node_modules/lodash-es/_arrayMap.js\");\n/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isArray.js */ \"./node_modules/lodash-es/isArray.js\");\n/* harmony import */ var _isSymbol_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./isSymbol.js */ \"./node_modules/lodash-es/isSymbol.js\");\n\n\n\n\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = _Symbol_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] ? _Symbol_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if ((0,_isArray_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return (0,_arrayMap_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(value, baseToString) + '';\n }\n if ((0,_isSymbol_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseToString);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlVG9TdHJpbmcuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBa0M7QUFDSTtBQUNIO0FBQ0U7O0FBRXJDO0FBQ0E7O0FBRUE7QUFDQSxrQkFBa0Isa0RBQU0sR0FBRyw0REFBZ0I7QUFDM0M7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLGFBQWEsUUFBUTtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLHVEQUFPO0FBQ2I7QUFDQSxXQUFXLHdEQUFRO0FBQ25CO0FBQ0EsTUFBTSx3REFBUTtBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsWUFBWSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VUb1N0cmluZy5qcz84OWU4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBTeW1ib2wgZnJvbSAnLi9fU3ltYm9sLmpzJztcbmltcG9ydCBhcnJheU1hcCBmcm9tICcuL19hcnJheU1hcC5qcyc7XG5pbXBvcnQgaXNBcnJheSBmcm9tICcuL2lzQXJyYXkuanMnO1xuaW1wb3J0IGlzU3ltYm9sIGZyb20gJy4vaXNTeW1ib2wuanMnO1xuXG4vKiogVXNlZCBhcyByZWZlcmVuY2VzIGZvciB2YXJpb3VzIGBOdW1iZXJgIGNvbnN0YW50cy4gKi9cbnZhciBJTkZJTklUWSA9IDEgLyAwO1xuXG4vKiogVXNlZCB0byBjb252ZXJ0IHN5bWJvbHMgdG8gcHJpbWl0aXZlcyBhbmQgc3RyaW5ncy4gKi9cbnZhciBzeW1ib2xQcm90byA9IFN5bWJvbCA/IFN5bWJvbC5wcm90b3R5cGUgOiB1bmRlZmluZWQsXG4gICAgc3ltYm9sVG9TdHJpbmcgPSBzeW1ib2xQcm90byA/IHN5bWJvbFByb3RvLnRvU3RyaW5nIDogdW5kZWZpbmVkO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnRvU3RyaW5nYCB3aGljaCBkb2Vzbid0IGNvbnZlcnQgbnVsbGlzaFxuICogdmFsdWVzIHRvIGVtcHR5IHN0cmluZ3MuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHByb2Nlc3MuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBzdHJpbmcuXG4gKi9cbmZ1bmN0aW9uIGJhc2VUb1N0cmluZyh2YWx1ZSkge1xuICAvLyBFeGl0IGVhcmx5IGZvciBzdHJpbmdzIHRvIGF2b2lkIGEgcGVyZm9ybWFuY2UgaGl0IGluIHNvbWUgZW52aXJvbm1lbnRzLlxuICBpZiAodHlwZW9mIHZhbHVlID09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIGlmIChpc0FycmF5KHZhbHVlKSkge1xuICAgIC8vIFJlY3Vyc2l2ZWx5IGNvbnZlcnQgdmFsdWVzIChzdXNjZXB0aWJsZSB0byBjYWxsIHN0YWNrIGxpbWl0cykuXG4gICAgcmV0dXJuIGFycmF5TWFwKHZhbHVlLCBiYXNlVG9TdHJpbmcpICsgJyc7XG4gIH1cbiAgaWYgKGlzU3ltYm9sKHZhbHVlKSkge1xuICAgIHJldHVybiBzeW1ib2xUb1N0cmluZyA/IHN5bWJvbFRvU3RyaW5nLmNhbGwodmFsdWUpIDogJyc7XG4gIH1cbiAgdmFyIHJlc3VsdCA9ICh2YWx1ZSArICcnKTtcbiAgcmV0dXJuIChyZXN1bHQgPT0gJzAnICYmICgxIC8gdmFsdWUpID09IC1JTkZJTklUWSkgPyAnLTAnIDogcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlVG9TdHJpbmc7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseToString.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseUnary.js": +/*!**********************************************!*\ + !*** ./node_modules/lodash-es/_baseUnary.js ***! + \**********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseUnary);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlVW5hcnkuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxVQUFVO0FBQ3JCLGFBQWEsVUFBVTtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsU0FBUyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VVbmFyeS5qcz82MzQwIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8udW5hcnlgIHdpdGhvdXQgc3VwcG9ydCBmb3Igc3RvcmluZyBtZXRhZGF0YS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gY2FwIGFyZ3VtZW50cyBmb3IuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBjYXBwZWQgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGJhc2VVbmFyeShmdW5jKSB7XG4gIHJldHVybiBmdW5jdGlvbih2YWx1ZSkge1xuICAgIHJldHVybiBmdW5jKHZhbHVlKTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZVVuYXJ5O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseUnary.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_cloneArrayBuffer.js": +/*!*****************************************************!*\ + !*** ./node_modules/lodash-es/_cloneArrayBuffer.js ***! + \*****************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Uint8Array_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_Uint8Array.js */ \"./node_modules/lodash-es/_Uint8Array.js\");\n\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new _Uint8Array_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"](result).set(new _Uint8Array_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"](arrayBuffer));\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (cloneArrayBuffer);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jbG9uZUFycmF5QnVmZmVyLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQTBDOztBQUUxQztBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsYUFBYTtBQUN4QixhQUFhLGFBQWE7QUFDMUI7QUFDQTtBQUNBO0FBQ0EsTUFBTSxzREFBVSxpQkFBaUIsc0RBQVU7QUFDM0M7QUFDQTs7QUFFQSwrREFBZSxnQkFBZ0IsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jbG9uZUFycmF5QnVmZmVyLmpzPzY0ZjQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFVpbnQ4QXJyYXkgZnJvbSAnLi9fVWludDhBcnJheS5qcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGNsb25lIG9mIGBhcnJheUJ1ZmZlcmAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXlCdWZmZXJ9IGFycmF5QnVmZmVyIFRoZSBhcnJheSBidWZmZXIgdG8gY2xvbmUuXG4gKiBAcmV0dXJucyB7QXJyYXlCdWZmZXJ9IFJldHVybnMgdGhlIGNsb25lZCBhcnJheSBidWZmZXIuXG4gKi9cbmZ1bmN0aW9uIGNsb25lQXJyYXlCdWZmZXIoYXJyYXlCdWZmZXIpIHtcbiAgdmFyIHJlc3VsdCA9IG5ldyBhcnJheUJ1ZmZlci5jb25zdHJ1Y3RvcihhcnJheUJ1ZmZlci5ieXRlTGVuZ3RoKTtcbiAgbmV3IFVpbnQ4QXJyYXkocmVzdWx0KS5zZXQobmV3IFVpbnQ4QXJyYXkoYXJyYXlCdWZmZXIpKTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xvbmVBcnJheUJ1ZmZlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_cloneArrayBuffer.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_cloneBuffer.js": +/*!************************************************!*\ + !*** ./node_modules/lodash-es/_cloneBuffer.js ***! + \************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_root.js */ \"./node_modules/lodash-es/_root.js\");\n\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? _root_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (cloneBuffer);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jbG9uZUJ1ZmZlci5qcy5qcyIsIm1hcHBpbmdzIjoiOztBQUE4Qjs7QUFFOUI7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSw2QkFBNkIsdURBQVc7QUFDeEM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxTQUFTO0FBQ3BCLGFBQWEsUUFBUTtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsV0FBVyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Nsb25lQnVmZmVyLmpzP2QyOTIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJvb3QgZnJvbSAnLi9fcm9vdC5qcyc7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgZXhwb3J0c2AuICovXG52YXIgZnJlZUV4cG9ydHMgPSB0eXBlb2YgZXhwb3J0cyA9PSAnb2JqZWN0JyAmJiBleHBvcnRzICYmICFleHBvcnRzLm5vZGVUeXBlICYmIGV4cG9ydHM7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgbW9kdWxlYC4gKi9cbnZhciBmcmVlTW9kdWxlID0gZnJlZUV4cG9ydHMgJiYgdHlwZW9mIG1vZHVsZSA9PSAnb2JqZWN0JyAmJiBtb2R1bGUgJiYgIW1vZHVsZS5ub2RlVHlwZSAmJiBtb2R1bGU7XG5cbi8qKiBEZXRlY3QgdGhlIHBvcHVsYXIgQ29tbW9uSlMgZXh0ZW5zaW9uIGBtb2R1bGUuZXhwb3J0c2AuICovXG52YXIgbW9kdWxlRXhwb3J0cyA9IGZyZWVNb2R1bGUgJiYgZnJlZU1vZHVsZS5leHBvcnRzID09PSBmcmVlRXhwb3J0cztcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgQnVmZmVyID0gbW9kdWxlRXhwb3J0cyA/IHJvb3QuQnVmZmVyIDogdW5kZWZpbmVkLFxuICAgIGFsbG9jVW5zYWZlID0gQnVmZmVyID8gQnVmZmVyLmFsbG9jVW5zYWZlIDogdW5kZWZpbmVkO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBjbG9uZSBvZiAgYGJ1ZmZlcmAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QnVmZmVyfSBidWZmZXIgVGhlIGJ1ZmZlciB0byBjbG9uZS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzRGVlcF0gU3BlY2lmeSBhIGRlZXAgY2xvbmUuXG4gKiBAcmV0dXJucyB7QnVmZmVyfSBSZXR1cm5zIHRoZSBjbG9uZWQgYnVmZmVyLlxuICovXG5mdW5jdGlvbiBjbG9uZUJ1ZmZlcihidWZmZXIsIGlzRGVlcCkge1xuICBpZiAoaXNEZWVwKSB7XG4gICAgcmV0dXJuIGJ1ZmZlci5zbGljZSgpO1xuICB9XG4gIHZhciBsZW5ndGggPSBidWZmZXIubGVuZ3RoLFxuICAgICAgcmVzdWx0ID0gYWxsb2NVbnNhZmUgPyBhbGxvY1Vuc2FmZShsZW5ndGgpIDogbmV3IGJ1ZmZlci5jb25zdHJ1Y3RvcihsZW5ndGgpO1xuXG4gIGJ1ZmZlci5jb3B5KHJlc3VsdCk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsb25lQnVmZmVyO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_cloneBuffer.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_cloneDataView.js": +/*!**************************************************!*\ + !*** ./node_modules/lodash-es/_cloneDataView.js ***! + \**************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _cloneArrayBuffer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_cloneArrayBuffer.js */ \"./node_modules/lodash-es/_cloneArrayBuffer.js\");\n\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? (0,_cloneArrayBuffer_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (cloneDataView);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jbG9uZURhdGFWaWV3LmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQXNEOztBQUV0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLFNBQVM7QUFDcEIsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQSx3QkFBd0IsZ0VBQWdCO0FBQ3hDO0FBQ0E7O0FBRUEsK0RBQWUsYUFBYSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Nsb25lRGF0YVZpZXcuanM/ZGM1MiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY2xvbmVBcnJheUJ1ZmZlciBmcm9tICcuL19jbG9uZUFycmF5QnVmZmVyLmpzJztcblxuLyoqXG4gKiBDcmVhdGVzIGEgY2xvbmUgb2YgYGRhdGFWaWV3YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IGRhdGFWaWV3IFRoZSBkYXRhIHZpZXcgdG8gY2xvbmUuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0RlZXBdIFNwZWNpZnkgYSBkZWVwIGNsb25lLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgY2xvbmVkIGRhdGEgdmlldy5cbiAqL1xuZnVuY3Rpb24gY2xvbmVEYXRhVmlldyhkYXRhVmlldywgaXNEZWVwKSB7XG4gIHZhciBidWZmZXIgPSBpc0RlZXAgPyBjbG9uZUFycmF5QnVmZmVyKGRhdGFWaWV3LmJ1ZmZlcikgOiBkYXRhVmlldy5idWZmZXI7XG4gIHJldHVybiBuZXcgZGF0YVZpZXcuY29uc3RydWN0b3IoYnVmZmVyLCBkYXRhVmlldy5ieXRlT2Zmc2V0LCBkYXRhVmlldy5ieXRlTGVuZ3RoKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xvbmVEYXRhVmlldztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_cloneDataView.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_cloneRegExp.js": +/*!************************************************!*\ + !*** ./node_modules/lodash-es/_cloneRegExp.js ***! + \************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (cloneRegExp);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jbG9uZVJlZ0V4cC5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLCtEQUFlLFdBQVcsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jbG9uZVJlZ0V4cC5qcz81NzhhIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBVc2VkIHRvIG1hdGNoIGBSZWdFeHBgIGZsYWdzIGZyb20gdGhlaXIgY29lcmNlZCBzdHJpbmcgdmFsdWVzLiAqL1xudmFyIHJlRmxhZ3MgPSAvXFx3KiQvO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBjbG9uZSBvZiBgcmVnZXhwYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IHJlZ2V4cCBUaGUgcmVnZXhwIHRvIGNsb25lLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgY2xvbmVkIHJlZ2V4cC5cbiAqL1xuZnVuY3Rpb24gY2xvbmVSZWdFeHAocmVnZXhwKSB7XG4gIHZhciByZXN1bHQgPSBuZXcgcmVnZXhwLmNvbnN0cnVjdG9yKHJlZ2V4cC5zb3VyY2UsIHJlRmxhZ3MuZXhlYyhyZWdleHApKTtcbiAgcmVzdWx0Lmxhc3RJbmRleCA9IHJlZ2V4cC5sYXN0SW5kZXg7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsb25lUmVnRXhwO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_cloneRegExp.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_cloneSymbol.js": +/*!************************************************!*\ + !*** ./node_modules/lodash-es/_cloneSymbol.js ***! + \************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Symbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_Symbol.js */ \"./node_modules/lodash-es/_Symbol.js\");\n\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = _Symbol_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] ? _Symbol_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (cloneSymbol);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jbG9uZVN5bWJvbC5qcy5qcyIsIm1hcHBpbmdzIjoiOztBQUFrQzs7QUFFbEM7QUFDQSxrQkFBa0Isa0RBQU0sR0FBRyw0REFBZ0I7QUFDM0M7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBOztBQUVBLCtEQUFlLFdBQVcsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jbG9uZVN5bWJvbC5qcz9kNzIwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBTeW1ib2wgZnJvbSAnLi9fU3ltYm9sLmpzJztcblxuLyoqIFVzZWQgdG8gY29udmVydCBzeW1ib2xzIHRvIHByaW1pdGl2ZXMgYW5kIHN0cmluZ3MuICovXG52YXIgc3ltYm9sUHJvdG8gPSBTeW1ib2wgPyBTeW1ib2wucHJvdG90eXBlIDogdW5kZWZpbmVkLFxuICAgIHN5bWJvbFZhbHVlT2YgPSBzeW1ib2xQcm90byA/IHN5bWJvbFByb3RvLnZhbHVlT2YgOiB1bmRlZmluZWQ7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGNsb25lIG9mIHRoZSBgc3ltYm9sYCBvYmplY3QuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBzeW1ib2wgVGhlIHN5bWJvbCBvYmplY3QgdG8gY2xvbmUuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBjbG9uZWQgc3ltYm9sIG9iamVjdC5cbiAqL1xuZnVuY3Rpb24gY2xvbmVTeW1ib2woc3ltYm9sKSB7XG4gIHJldHVybiBzeW1ib2xWYWx1ZU9mID8gT2JqZWN0KHN5bWJvbFZhbHVlT2YuY2FsbChzeW1ib2wpKSA6IHt9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbG9uZVN5bWJvbDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_cloneSymbol.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_cloneTypedArray.js": +/*!****************************************************!*\ + !*** ./node_modules/lodash-es/_cloneTypedArray.js ***! + \****************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _cloneArrayBuffer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_cloneArrayBuffer.js */ \"./node_modules/lodash-es/_cloneArrayBuffer.js\");\n\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? (0,_cloneArrayBuffer_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (cloneTypedArray);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jbG9uZVR5cGVkQXJyYXkuanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBc0Q7O0FBRXREO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsU0FBUztBQUNwQixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBLHdCQUF3QixnRUFBZ0I7QUFDeEM7QUFDQTs7QUFFQSwrREFBZSxlQUFlLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fY2xvbmVUeXBlZEFycmF5LmpzPzQ1OTkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNsb25lQXJyYXlCdWZmZXIgZnJvbSAnLi9fY2xvbmVBcnJheUJ1ZmZlci5qcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGNsb25lIG9mIGB0eXBlZEFycmF5YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IHR5cGVkQXJyYXkgVGhlIHR5cGVkIGFycmF5IHRvIGNsb25lLlxuICogQHBhcmFtIHtib29sZWFufSBbaXNEZWVwXSBTcGVjaWZ5IGEgZGVlcCBjbG9uZS5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGNsb25lZCB0eXBlZCBhcnJheS5cbiAqL1xuZnVuY3Rpb24gY2xvbmVUeXBlZEFycmF5KHR5cGVkQXJyYXksIGlzRGVlcCkge1xuICB2YXIgYnVmZmVyID0gaXNEZWVwID8gY2xvbmVBcnJheUJ1ZmZlcih0eXBlZEFycmF5LmJ1ZmZlcikgOiB0eXBlZEFycmF5LmJ1ZmZlcjtcbiAgcmV0dXJuIG5ldyB0eXBlZEFycmF5LmNvbnN0cnVjdG9yKGJ1ZmZlciwgdHlwZWRBcnJheS5ieXRlT2Zmc2V0LCB0eXBlZEFycmF5Lmxlbmd0aCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsb25lVHlwZWRBcnJheTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_cloneTypedArray.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_copyArray.js": +/*!**********************************************!*\ + !*** ./node_modules/lodash-es/_copyArray.js ***! + \**********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (copyArray);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jb3B5QXJyYXkuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLFdBQVcsT0FBTztBQUNsQixhQUFhLE9BQU87QUFDcEI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLCtEQUFlLFNBQVMsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jb3B5QXJyYXkuanM/ZDM4ZiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcGllcyB0aGUgdmFsdWVzIG9mIGBzb3VyY2VgIHRvIGBhcnJheWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IHNvdXJjZSBUaGUgYXJyYXkgdG8gY29weSB2YWx1ZXMgZnJvbS5cbiAqIEBwYXJhbSB7QXJyYXl9IFthcnJheT1bXV0gVGhlIGFycmF5IHRvIGNvcHkgdmFsdWVzIHRvLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBhcnJheWAuXG4gKi9cbmZ1bmN0aW9uIGNvcHlBcnJheShzb3VyY2UsIGFycmF5KSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gc291cmNlLmxlbmd0aDtcblxuICBhcnJheSB8fCAoYXJyYXkgPSBBcnJheShsZW5ndGgpKTtcbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICBhcnJheVtpbmRleF0gPSBzb3VyY2VbaW5kZXhdO1xuICB9XG4gIHJldHVybiBhcnJheTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY29weUFycmF5O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_copyArray.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_copyObject.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/_copyObject.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _assignValue_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_assignValue.js */ \"./node_modules/lodash-es/_assignValue.js\");\n/* harmony import */ var _baseAssignValue_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseAssignValue.js */ \"./node_modules/lodash-es/_baseAssignValue.js\");\n\n\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n (0,_baseAssignValue_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object, key, newValue);\n } else {\n (0,_assignValue_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(object, key, newValue);\n }\n }\n return object;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (copyObject);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jb3B5T2JqZWN0LmpzLmpzIiwibWFwcGluZ3MiOiI7OztBQUE0QztBQUNROztBQUVwRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLE9BQU87QUFDbEIsV0FBVyxRQUFRLFVBQVU7QUFDN0IsV0FBVyxVQUFVO0FBQ3JCLGFBQWEsUUFBUTtBQUNyQjtBQUNBO0FBQ0E7QUFDQSx3QkFBd0I7O0FBRXhCO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLCtEQUFlO0FBQ3JCLE1BQU07QUFDTixNQUFNLDJEQUFXO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBOztBQUVBLCtEQUFlLFVBQVUsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jb3B5T2JqZWN0LmpzPzc1YWUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2lnblZhbHVlIGZyb20gJy4vX2Fzc2lnblZhbHVlLmpzJztcbmltcG9ydCBiYXNlQXNzaWduVmFsdWUgZnJvbSAnLi9fYmFzZUFzc2lnblZhbHVlLmpzJztcblxuLyoqXG4gKiBDb3BpZXMgcHJvcGVydGllcyBvZiBgc291cmNlYCB0byBgb2JqZWN0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IHRvIGNvcHkgcHJvcGVydGllcyBmcm9tLlxuICogQHBhcmFtIHtBcnJheX0gcHJvcHMgVGhlIHByb3BlcnR5IGlkZW50aWZpZXJzIHRvIGNvcHkuXG4gKiBAcGFyYW0ge09iamVjdH0gW29iamVjdD17fV0gVGhlIG9iamVjdCB0byBjb3B5IHByb3BlcnRpZXMgdG8uXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjb3BpZWQgdmFsdWVzLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAqL1xuZnVuY3Rpb24gY29weU9iamVjdChzb3VyY2UsIHByb3BzLCBvYmplY3QsIGN1c3RvbWl6ZXIpIHtcbiAgdmFyIGlzTmV3ID0gIW9iamVjdDtcbiAgb2JqZWN0IHx8IChvYmplY3QgPSB7fSk7XG5cbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBwcm9wcy5sZW5ndGg7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICB2YXIga2V5ID0gcHJvcHNbaW5kZXhdO1xuXG4gICAgdmFyIG5ld1ZhbHVlID0gY3VzdG9taXplclxuICAgICAgPyBjdXN0b21pemVyKG9iamVjdFtrZXldLCBzb3VyY2Vba2V5XSwga2V5LCBvYmplY3QsIHNvdXJjZSlcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgaWYgKG5ld1ZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIG5ld1ZhbHVlID0gc291cmNlW2tleV07XG4gICAgfVxuICAgIGlmIChpc05ldykge1xuICAgICAgYmFzZUFzc2lnblZhbHVlKG9iamVjdCwga2V5LCBuZXdWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFzc2lnblZhbHVlKG9iamVjdCwga2V5LCBuZXdWYWx1ZSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBvYmplY3Q7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNvcHlPYmplY3Q7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_copyObject.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_copySymbols.js": +/*!************************************************!*\ + !*** ./node_modules/lodash-es/_copySymbols.js ***! + \************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _copyObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_copyObject.js */ \"./node_modules/lodash-es/_copyObject.js\");\n/* harmony import */ var _getSymbols_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_getSymbols.js */ \"./node_modules/lodash-es/_getSymbols.js\");\n\n\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return (0,_copyObject_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(source, (0,_getSymbols_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(source), object);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (copySymbols);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jb3B5U3ltYm9scy5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7QUFBMEM7QUFDQTs7QUFFMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRLFVBQVU7QUFDN0IsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQSxTQUFTLDBEQUFVLFNBQVMsMERBQVU7QUFDdEM7O0FBRUEsK0RBQWUsV0FBVyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2NvcHlTeW1ib2xzLmpzPzc5YjYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvcHlPYmplY3QgZnJvbSAnLi9fY29weU9iamVjdC5qcyc7XG5pbXBvcnQgZ2V0U3ltYm9scyBmcm9tICcuL19nZXRTeW1ib2xzLmpzJztcblxuLyoqXG4gKiBDb3BpZXMgb3duIHN5bWJvbHMgb2YgYHNvdXJjZWAgdG8gYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIG9iamVjdCB0byBjb3B5IHN5bWJvbHMgZnJvbS5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0PXt9XSBUaGUgb2JqZWN0IHRvIGNvcHkgc3ltYm9scyB0by5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gKi9cbmZ1bmN0aW9uIGNvcHlTeW1ib2xzKHNvdXJjZSwgb2JqZWN0KSB7XG4gIHJldHVybiBjb3B5T2JqZWN0KHNvdXJjZSwgZ2V0U3ltYm9scyhzb3VyY2UpLCBvYmplY3QpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjb3B5U3ltYm9scztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_copySymbols.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_copySymbolsIn.js": +/*!**************************************************!*\ + !*** ./node_modules/lodash-es/_copySymbolsIn.js ***! + \**************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _copyObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_copyObject.js */ \"./node_modules/lodash-es/_copyObject.js\");\n/* harmony import */ var _getSymbolsIn_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_getSymbolsIn.js */ \"./node_modules/lodash-es/_getSymbolsIn.js\");\n\n\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return (0,_copyObject_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(source, (0,_getSymbolsIn_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(source), object);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (copySymbolsIn);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jb3B5U3ltYm9sc0luLmpzLmpzIiwibWFwcGluZ3MiOiI7OztBQUEwQztBQUNJOztBQUU5QztBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVEsVUFBVTtBQUM3QixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBLFNBQVMsMERBQVUsU0FBUyw0REFBWTtBQUN4Qzs7QUFFQSwrREFBZSxhQUFhLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fY29weVN5bWJvbHNJbi5qcz8wOWNmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjb3B5T2JqZWN0IGZyb20gJy4vX2NvcHlPYmplY3QuanMnO1xuaW1wb3J0IGdldFN5bWJvbHNJbiBmcm9tICcuL19nZXRTeW1ib2xzSW4uanMnO1xuXG4vKipcbiAqIENvcGllcyBvd24gYW5kIGluaGVyaXRlZCBzeW1ib2xzIG9mIGBzb3VyY2VgIHRvIGBvYmplY3RgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBvYmplY3QgdG8gY29weSBzeW1ib2xzIGZyb20uXG4gKiBAcGFyYW0ge09iamVjdH0gW29iamVjdD17fV0gVGhlIG9iamVjdCB0byBjb3B5IHN5bWJvbHMgdG8uXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICovXG5mdW5jdGlvbiBjb3B5U3ltYm9sc0luKHNvdXJjZSwgb2JqZWN0KSB7XG4gIHJldHVybiBjb3B5T2JqZWN0KHNvdXJjZSwgZ2V0U3ltYm9sc0luKHNvdXJjZSksIG9iamVjdCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNvcHlTeW1ib2xzSW47XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_copySymbolsIn.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_coreJsData.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/_coreJsData.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_root.js */ \"./node_modules/lodash-es/_root.js\");\n\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = _root_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"][\"__core-js_shared__\"];\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (coreJsData);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jb3JlSnNEYXRhLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQThCOztBQUU5QjtBQUNBLGlCQUFpQixzRUFBMEI7O0FBRTNDLCtEQUFlLFVBQVUsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jb3JlSnNEYXRhLmpzPzU5OTYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJvb3QgZnJvbSAnLi9fcm9vdC5qcyc7XG5cbi8qKiBVc2VkIHRvIGRldGVjdCBvdmVycmVhY2hpbmcgY29yZS1qcyBzaGltcy4gKi9cbnZhciBjb3JlSnNEYXRhID0gcm9vdFsnX19jb3JlLWpzX3NoYXJlZF9fJ107XG5cbmV4cG9ydCBkZWZhdWx0IGNvcmVKc0RhdGE7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_coreJsData.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_defineProperty.js": +/*!***************************************************!*\ + !*** ./node_modules/lodash-es/_defineProperty.js ***! + \***************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getNative_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getNative.js */ \"./node_modules/lodash-es/_getNative.js\");\n\n\nvar defineProperty = (function() {\n try {\n var func = (0,_getNative_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (defineProperty);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19kZWZpbmVQcm9wZXJ0eS5qcy5qcyIsIm1hcHBpbmdzIjoiOztBQUF3Qzs7QUFFeEM7QUFDQTtBQUNBLGVBQWUseURBQVM7QUFDeEIsV0FBVyxRQUFRO0FBQ25CO0FBQ0EsSUFBSTtBQUNKLENBQUM7O0FBRUQsK0RBQWUsY0FBYyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2RlZmluZVByb3BlcnR5LmpzPzRjM2QiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldE5hdGl2ZSBmcm9tICcuL19nZXROYXRpdmUuanMnO1xuXG52YXIgZGVmaW5lUHJvcGVydHkgPSAoZnVuY3Rpb24oKSB7XG4gIHRyeSB7XG4gICAgdmFyIGZ1bmMgPSBnZXROYXRpdmUoT2JqZWN0LCAnZGVmaW5lUHJvcGVydHknKTtcbiAgICBmdW5jKHt9LCAnJywge30pO1xuICAgIHJldHVybiBmdW5jO1xuICB9IGNhdGNoIChlKSB7fVxufSgpKTtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lUHJvcGVydHk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_defineProperty.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_freeGlobal.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/_freeGlobal.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (freeGlobal);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19mcmVlR2xvYmFsLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBQTtBQUNBOztBQUVBLCtEQUFlLFVBQVUsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19mcmVlR2xvYmFsLmpzPzliMDUiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBnbG9iYWxgIGZyb20gTm9kZS5qcy4gKi9cbnZhciBmcmVlR2xvYmFsID0gdHlwZW9mIGdsb2JhbCA9PSAnb2JqZWN0JyAmJiBnbG9iYWwgJiYgZ2xvYmFsLk9iamVjdCA9PT0gT2JqZWN0ICYmIGdsb2JhbDtcblxuZXhwb3J0IGRlZmF1bHQgZnJlZUdsb2JhbDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_freeGlobal.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_getAllKeys.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/_getAllKeys.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseGetAllKeys_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseGetAllKeys.js */ \"./node_modules/lodash-es/_baseGetAllKeys.js\");\n/* harmony import */ var _getSymbols_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_getSymbols.js */ \"./node_modules/lodash-es/_getSymbols.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keys.js */ \"./node_modules/lodash-es/keys.js\");\n\n\n\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return (0,_baseGetAllKeys_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object, _keys_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], _getSymbols_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (getAllKeys);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRBbGxLZXlzLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBa0Q7QUFDUjtBQUNiOztBQUU3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixhQUFhLE9BQU87QUFDcEI7QUFDQTtBQUNBLFNBQVMsOERBQWMsU0FBUyxnREFBSSxFQUFFLHNEQUFVO0FBQ2hEOztBQUVBLCtEQUFlLFVBQVUsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRBbGxLZXlzLmpzP2JlZjMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGJhc2VHZXRBbGxLZXlzIGZyb20gJy4vX2Jhc2VHZXRBbGxLZXlzLmpzJztcbmltcG9ydCBnZXRTeW1ib2xzIGZyb20gJy4vX2dldFN5bWJvbHMuanMnO1xuaW1wb3J0IGtleXMgZnJvbSAnLi9rZXlzLmpzJztcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IG9mIG93biBlbnVtZXJhYmxlIHByb3BlcnR5IG5hbWVzIGFuZCBzeW1ib2xzIG9mIGBvYmplY3RgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzIGFuZCBzeW1ib2xzLlxuICovXG5mdW5jdGlvbiBnZXRBbGxLZXlzKG9iamVjdCkge1xuICByZXR1cm4gYmFzZUdldEFsbEtleXMob2JqZWN0LCBrZXlzLCBnZXRTeW1ib2xzKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZ2V0QWxsS2V5cztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_getAllKeys.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_getAllKeysIn.js": +/*!*************************************************!*\ + !*** ./node_modules/lodash-es/_getAllKeysIn.js ***! + \*************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseGetAllKeys_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseGetAllKeys.js */ \"./node_modules/lodash-es/_baseGetAllKeys.js\");\n/* harmony import */ var _getSymbolsIn_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_getSymbolsIn.js */ \"./node_modules/lodash-es/_getSymbolsIn.js\");\n/* harmony import */ var _keysIn_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keysIn.js */ \"./node_modules/lodash-es/keysIn.js\");\n\n\n\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return (0,_baseGetAllKeys_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object, _keysIn_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], _getSymbolsIn_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (getAllKeysIn);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRBbGxLZXlzSW4uanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFrRDtBQUNKO0FBQ2I7O0FBRWpDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsYUFBYSxPQUFPO0FBQ3BCO0FBQ0E7QUFDQSxTQUFTLDhEQUFjLFNBQVMsa0RBQU0sRUFBRSx3REFBWTtBQUNwRDs7QUFFQSwrREFBZSxZQUFZLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZ2V0QWxsS2V5c0luLmpzPzYzZDAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGJhc2VHZXRBbGxLZXlzIGZyb20gJy4vX2Jhc2VHZXRBbGxLZXlzLmpzJztcbmltcG9ydCBnZXRTeW1ib2xzSW4gZnJvbSAnLi9fZ2V0U3ltYm9sc0luLmpzJztcbmltcG9ydCBrZXlzSW4gZnJvbSAnLi9rZXlzSW4uanMnO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gYXJyYXkgb2Ygb3duIGFuZCBpbmhlcml0ZWQgZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBhbmRcbiAqIHN5bWJvbHMgb2YgYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMgYW5kIHN5bWJvbHMuXG4gKi9cbmZ1bmN0aW9uIGdldEFsbEtleXNJbihvYmplY3QpIHtcbiAgcmV0dXJuIGJhc2VHZXRBbGxLZXlzKG9iamVjdCwga2V5c0luLCBnZXRTeW1ib2xzSW4pO1xufVxuXG5leHBvcnQgZGVmYXVsdCBnZXRBbGxLZXlzSW47XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_getAllKeysIn.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_getMapData.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/_getMapData.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _isKeyable_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isKeyable.js */ \"./node_modules/lodash-es/_isKeyable.js\");\n\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return (0,_isKeyable_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (getMapData);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRNYXBEYXRhLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQXdDOztBQUV4QztBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkIsYUFBYSxHQUFHO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBLFNBQVMseURBQVM7QUFDbEI7QUFDQTtBQUNBOztBQUVBLCtEQUFlLFVBQVUsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRNYXBEYXRhLmpzP2IzNGIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGlzS2V5YWJsZSBmcm9tICcuL19pc0tleWFibGUuanMnO1xuXG4vKipcbiAqIEdldHMgdGhlIGRhdGEgZm9yIGBtYXBgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gbWFwIFRoZSBtYXAgdG8gcXVlcnkuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSByZWZlcmVuY2Uga2V5LlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIG1hcCBkYXRhLlxuICovXG5mdW5jdGlvbiBnZXRNYXBEYXRhKG1hcCwga2V5KSB7XG4gIHZhciBkYXRhID0gbWFwLl9fZGF0YV9fO1xuICByZXR1cm4gaXNLZXlhYmxlKGtleSlcbiAgICA/IGRhdGFbdHlwZW9mIGtleSA9PSAnc3RyaW5nJyA/ICdzdHJpbmcnIDogJ2hhc2gnXVxuICAgIDogZGF0YS5tYXA7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGdldE1hcERhdGE7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_getMapData.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_getNative.js": +/*!**********************************************!*\ + !*** ./node_modules/lodash-es/_getNative.js ***! + \**********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseIsNative_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_baseIsNative.js */ \"./node_modules/lodash-es/_baseIsNative.js\");\n/* harmony import */ var _getValue_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getValue.js */ \"./node_modules/lodash-es/_getValue.js\");\n\n\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = (0,_getValue_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object, key);\n return (0,_baseIsNative_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value) ? value : undefined;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (getNative);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXROYXRpdmUuanMuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQThDO0FBQ1I7O0FBRXRDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixhQUFhLEdBQUc7QUFDaEI7QUFDQTtBQUNBLGNBQWMsd0RBQVE7QUFDdEIsU0FBUyw0REFBWTtBQUNyQjs7QUFFQSwrREFBZSxTQUFTLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZ2V0TmF0aXZlLmpzPzAzMTAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGJhc2VJc05hdGl2ZSBmcm9tICcuL19iYXNlSXNOYXRpdmUuanMnO1xuaW1wb3J0IGdldFZhbHVlIGZyb20gJy4vX2dldFZhbHVlLmpzJztcblxuLyoqXG4gKiBHZXRzIHRoZSBuYXRpdmUgZnVuY3Rpb24gYXQgYGtleWAgb2YgYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgbWV0aG9kIHRvIGdldC5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBmdW5jdGlvbiBpZiBpdCdzIG5hdGl2ZSwgZWxzZSBgdW5kZWZpbmVkYC5cbiAqL1xuZnVuY3Rpb24gZ2V0TmF0aXZlKG9iamVjdCwga2V5KSB7XG4gIHZhciB2YWx1ZSA9IGdldFZhbHVlKG9iamVjdCwga2V5KTtcbiAgcmV0dXJuIGJhc2VJc05hdGl2ZSh2YWx1ZSkgPyB2YWx1ZSA6IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZ2V0TmF0aXZlO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_getNative.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_getPrototype.js": +/*!*************************************************!*\ + !*** ./node_modules/lodash-es/_getPrototype.js ***! + \*************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _overArg_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_overArg.js */ \"./node_modules/lodash-es/_overArg.js\");\n\n\n/** Built-in value references. */\nvar getPrototype = (0,_overArg_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Object.getPrototypeOf, Object);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (getPrototype);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRQcm90b3R5cGUuanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBb0M7O0FBRXBDO0FBQ0EsbUJBQW1CLHVEQUFPOztBQUUxQiwrREFBZSxZQUFZLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZ2V0UHJvdG90eXBlLmpzPzJiNTMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG92ZXJBcmcgZnJvbSAnLi9fb3ZlckFyZy5qcyc7XG5cbi8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqL1xudmFyIGdldFByb3RvdHlwZSA9IG92ZXJBcmcoT2JqZWN0LmdldFByb3RvdHlwZU9mLCBPYmplY3QpO1xuXG5leHBvcnQgZGVmYXVsdCBnZXRQcm90b3R5cGU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_getPrototype.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_getRawTag.js": +/*!**********************************************!*\ + !*** ./node_modules/lodash-es/_getRawTag.js ***! + \**********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Symbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_Symbol.js */ \"./node_modules/lodash-es/_Symbol.js\");\n\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = _Symbol_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] ? _Symbol_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (getRawTag);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRSYXdUYWcuanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBa0M7O0FBRWxDO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxxQkFBcUIsa0RBQU0sR0FBRyw4REFBa0I7O0FBRWhEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2QsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7O0FBRUo7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxTQUFTLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZ2V0UmF3VGFnLmpzPzIzNGYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFN5bWJvbCBmcm9tICcuL19TeW1ib2wuanMnO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIFVzZWQgdG8gcmVzb2x2ZSB0aGVcbiAqIFtgdG9TdHJpbmdUYWdgXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1vYmplY3QucHJvdG90eXBlLnRvc3RyaW5nKVxuICogb2YgdmFsdWVzLlxuICovXG52YXIgbmF0aXZlT2JqZWN0VG9TdHJpbmcgPSBvYmplY3RQcm90by50b1N0cmluZztcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgc3ltVG9TdHJpbmdUYWcgPSBTeW1ib2wgPyBTeW1ib2wudG9TdHJpbmdUYWcgOiB1bmRlZmluZWQ7XG5cbi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlR2V0VGFnYCB3aGljaCBpZ25vcmVzIGBTeW1ib2wudG9TdHJpbmdUYWdgIHZhbHVlcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSByYXcgYHRvU3RyaW5nVGFnYC5cbiAqL1xuZnVuY3Rpb24gZ2V0UmF3VGFnKHZhbHVlKSB7XG4gIHZhciBpc093biA9IGhhc093blByb3BlcnR5LmNhbGwodmFsdWUsIHN5bVRvU3RyaW5nVGFnKSxcbiAgICAgIHRhZyA9IHZhbHVlW3N5bVRvU3RyaW5nVGFnXTtcblxuICB0cnkge1xuICAgIHZhbHVlW3N5bVRvU3RyaW5nVGFnXSA9IHVuZGVmaW5lZDtcbiAgICB2YXIgdW5tYXNrZWQgPSB0cnVlO1xuICB9IGNhdGNoIChlKSB7fVxuXG4gIHZhciByZXN1bHQgPSBuYXRpdmVPYmplY3RUb1N0cmluZy5jYWxsKHZhbHVlKTtcbiAgaWYgKHVubWFza2VkKSB7XG4gICAgaWYgKGlzT3duKSB7XG4gICAgICB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ10gPSB0YWc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlbGV0ZSB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ107XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGdldFJhd1RhZztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_getRawTag.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_getSymbols.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/_getSymbols.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _arrayFilter_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_arrayFilter.js */ \"./node_modules/lodash-es/_arrayFilter.js\");\n/* harmony import */ var _stubArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./stubArray.js */ \"./node_modules/lodash-es/stubArray.js\");\n\n\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? _stubArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return (0,_arrayFilter_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (getSymbols);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRTeW1ib2xzLmpzLmpzIiwibWFwcGluZ3MiOiI7OztBQUE0QztBQUNMOztBQUV2QztBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixhQUFhLE9BQU87QUFDcEI7QUFDQSxxQ0FBcUMscURBQVM7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTLDJEQUFXO0FBQ3BCO0FBQ0EsR0FBRztBQUNIOztBQUVBLCtEQUFlLFVBQVUsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRTeW1ib2xzLmpzP2I2ZjAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFycmF5RmlsdGVyIGZyb20gJy4vX2FycmF5RmlsdGVyLmpzJztcbmltcG9ydCBzdHViQXJyYXkgZnJvbSAnLi9zdHViQXJyYXkuanMnO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBwcm9wZXJ0eUlzRW51bWVyYWJsZSA9IG9iamVjdFByb3RvLnByb3BlcnR5SXNFbnVtZXJhYmxlO1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlR2V0U3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhcnJheSBvZiB0aGUgb3duIGVudW1lcmFibGUgc3ltYm9scyBvZiBgb2JqZWN0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBzeW1ib2xzLlxuICovXG52YXIgZ2V0U3ltYm9scyA9ICFuYXRpdmVHZXRTeW1ib2xzID8gc3R1YkFycmF5IDogZnVuY3Rpb24ob2JqZWN0KSB7XG4gIGlmIChvYmplY3QgPT0gbnVsbCkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICBvYmplY3QgPSBPYmplY3Qob2JqZWN0KTtcbiAgcmV0dXJuIGFycmF5RmlsdGVyKG5hdGl2ZUdldFN5bWJvbHMob2JqZWN0KSwgZnVuY3Rpb24oc3ltYm9sKSB7XG4gICAgcmV0dXJuIHByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwob2JqZWN0LCBzeW1ib2wpO1xuICB9KTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGdldFN5bWJvbHM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_getSymbols.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_getSymbolsIn.js": +/*!*************************************************!*\ + !*** ./node_modules/lodash-es/_getSymbolsIn.js ***! + \*************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _arrayPush_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_arrayPush.js */ \"./node_modules/lodash-es/_arrayPush.js\");\n/* harmony import */ var _getPrototype_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_getPrototype.js */ \"./node_modules/lodash-es/_getPrototype.js\");\n/* harmony import */ var _getSymbols_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_getSymbols.js */ \"./node_modules/lodash-es/_getSymbols.js\");\n/* harmony import */ var _stubArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./stubArray.js */ \"./node_modules/lodash-es/stubArray.js\");\n\n\n\n\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? _stubArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] : function(object) {\n var result = [];\n while (object) {\n (0,_arrayPush_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(result, (0,_getSymbols_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(object));\n object = (0,_getPrototype_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(object);\n }\n return result;\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (getSymbolsIn);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRTeW1ib2xzSW4uanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBd0M7QUFDTTtBQUNKO0FBQ0g7O0FBRXZDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsYUFBYSxPQUFPO0FBQ3BCO0FBQ0EsdUNBQXVDLHFEQUFTO0FBQ2hEO0FBQ0E7QUFDQSxJQUFJLHlEQUFTLFNBQVMsMERBQVU7QUFDaEMsYUFBYSw0REFBWTtBQUN6QjtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsWUFBWSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2dldFN5bWJvbHNJbi5qcz84ZjM3Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhcnJheVB1c2ggZnJvbSAnLi9fYXJyYXlQdXNoLmpzJztcbmltcG9ydCBnZXRQcm90b3R5cGUgZnJvbSAnLi9fZ2V0UHJvdG90eXBlLmpzJztcbmltcG9ydCBnZXRTeW1ib2xzIGZyb20gJy4vX2dldFN5bWJvbHMuanMnO1xuaW1wb3J0IHN0dWJBcnJheSBmcm9tICcuL3N0dWJBcnJheS5qcyc7XG5cbi8qIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIGZvciB0aG9zZSB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgb3RoZXIgYGxvZGFzaGAgbWV0aG9kcy4gKi9cbnZhciBuYXRpdmVHZXRTeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IG9mIHRoZSBvd24gYW5kIGluaGVyaXRlZCBlbnVtZXJhYmxlIHN5bWJvbHMgb2YgYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2Ygc3ltYm9scy5cbiAqL1xudmFyIGdldFN5bWJvbHNJbiA9ICFuYXRpdmVHZXRTeW1ib2xzID8gc3R1YkFycmF5IDogZnVuY3Rpb24ob2JqZWN0KSB7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgd2hpbGUgKG9iamVjdCkge1xuICAgIGFycmF5UHVzaChyZXN1bHQsIGdldFN5bWJvbHMob2JqZWN0KSk7XG4gICAgb2JqZWN0ID0gZ2V0UHJvdG90eXBlKG9iamVjdCk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGdldFN5bWJvbHNJbjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_getSymbolsIn.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_getTag.js": +/*!*******************************************!*\ + !*** ./node_modules/lodash-es/_getTag.js ***! + \*******************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _DataView_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_DataView.js */ \"./node_modules/lodash-es/_DataView.js\");\n/* harmony import */ var _Map_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_Map.js */ \"./node_modules/lodash-es/_Map.js\");\n/* harmony import */ var _Promise_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_Promise.js */ \"./node_modules/lodash-es/_Promise.js\");\n/* harmony import */ var _Set_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_Set.js */ \"./node_modules/lodash-es/_Set.js\");\n/* harmony import */ var _WeakMap_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./_WeakMap.js */ \"./node_modules/lodash-es/_WeakMap.js\");\n/* harmony import */ var _baseGetTag_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./_baseGetTag.js */ \"./node_modules/lodash-es/_baseGetTag.js\");\n/* harmony import */ var _toSource_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_toSource.js */ \"./node_modules/lodash-es/_toSource.js\");\n\n\n\n\n\n\n\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = (0,_toSource_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_DataView_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]),\n mapCtorString = (0,_toSource_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_Map_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]),\n promiseCtorString = (0,_toSource_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_Promise_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]),\n setCtorString = (0,_toSource_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_Set_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]),\n weakMapCtorString = (0,_toSource_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_WeakMap_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = _baseGetTag_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"];\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((_DataView_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"] && getTag(new _DataView_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"](new ArrayBuffer(1))) != dataViewTag) ||\n (_Map_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"] && getTag(new _Map_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]) != mapTag) ||\n (_Promise_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"] && getTag(_Promise_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].resolve()) != promiseTag) ||\n (_Set_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"] && getTag(new _Set_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]) != setTag) ||\n (_WeakMap_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"] && getTag(new _WeakMap_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]) != weakMapTag)) {\n getTag = function(value) {\n var result = (0,_baseGetTag_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? (0,_toSource_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (getTag);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRUYWcuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBc0M7QUFDVjtBQUNRO0FBQ1I7QUFDUTtBQUNNO0FBQ0o7O0FBRXRDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBLHlCQUF5Qix3REFBUSxDQUFDLG9EQUFRO0FBQzFDLG9CQUFvQix3REFBUSxDQUFDLCtDQUFHO0FBQ2hDLHdCQUF3Qix3REFBUSxDQUFDLG1EQUFPO0FBQ3hDLG9CQUFvQix3REFBUSxDQUFDLCtDQUFHO0FBQ2hDLHdCQUF3Qix3REFBUSxDQUFDLG1EQUFPOztBQUV4QztBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLGFBQWEsUUFBUTtBQUNyQjtBQUNBLGFBQWEsc0RBQVU7O0FBRXZCO0FBQ0EsS0FBSyxvREFBUSxlQUFlLG9EQUFRO0FBQ3BDLEtBQUssK0NBQUcsZUFBZSwrQ0FBRztBQUMxQixLQUFLLG1EQUFPLFdBQVcsMkRBQWU7QUFDdEMsS0FBSywrQ0FBRyxlQUFlLCtDQUFHO0FBQzFCLEtBQUssbURBQU8sZUFBZSxtREFBTztBQUNsQztBQUNBLGlCQUFpQiwwREFBVTtBQUMzQjtBQUNBLDRCQUE0Qix3REFBUTs7QUFFcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLCtEQUFlLE1BQU0sRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRUYWcuanM/ZTMxOSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRGF0YVZpZXcgZnJvbSAnLi9fRGF0YVZpZXcuanMnO1xuaW1wb3J0IE1hcCBmcm9tICcuL19NYXAuanMnO1xuaW1wb3J0IFByb21pc2UgZnJvbSAnLi9fUHJvbWlzZS5qcyc7XG5pbXBvcnQgU2V0IGZyb20gJy4vX1NldC5qcyc7XG5pbXBvcnQgV2Vha01hcCBmcm9tICcuL19XZWFrTWFwLmpzJztcbmltcG9ydCBiYXNlR2V0VGFnIGZyb20gJy4vX2Jhc2VHZXRUYWcuanMnO1xuaW1wb3J0IHRvU291cmNlIGZyb20gJy4vX3RvU291cmNlLmpzJztcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIG1hcFRhZyA9ICdbb2JqZWN0IE1hcF0nLFxuICAgIG9iamVjdFRhZyA9ICdbb2JqZWN0IE9iamVjdF0nLFxuICAgIHByb21pc2VUYWcgPSAnW29iamVjdCBQcm9taXNlXScsXG4gICAgc2V0VGFnID0gJ1tvYmplY3QgU2V0XScsXG4gICAgd2Vha01hcFRhZyA9ICdbb2JqZWN0IFdlYWtNYXBdJztcblxudmFyIGRhdGFWaWV3VGFnID0gJ1tvYmplY3QgRGF0YVZpZXddJztcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IG1hcHMsIHNldHMsIGFuZCB3ZWFrbWFwcy4gKi9cbnZhciBkYXRhVmlld0N0b3JTdHJpbmcgPSB0b1NvdXJjZShEYXRhVmlldyksXG4gICAgbWFwQ3RvclN0cmluZyA9IHRvU291cmNlKE1hcCksXG4gICAgcHJvbWlzZUN0b3JTdHJpbmcgPSB0b1NvdXJjZShQcm9taXNlKSxcbiAgICBzZXRDdG9yU3RyaW5nID0gdG9Tb3VyY2UoU2V0KSxcbiAgICB3ZWFrTWFwQ3RvclN0cmluZyA9IHRvU291cmNlKFdlYWtNYXApO1xuXG4vKipcbiAqIEdldHMgdGhlIGB0b1N0cmluZ1RhZ2Agb2YgYHZhbHVlYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBgdG9TdHJpbmdUYWdgLlxuICovXG52YXIgZ2V0VGFnID0gYmFzZUdldFRhZztcblxuLy8gRmFsbGJhY2sgZm9yIGRhdGEgdmlld3MsIG1hcHMsIHNldHMsIGFuZCB3ZWFrIG1hcHMgaW4gSUUgMTEgYW5kIHByb21pc2VzIGluIE5vZGUuanMgPCA2LlxuaWYgKChEYXRhVmlldyAmJiBnZXRUYWcobmV3IERhdGFWaWV3KG5ldyBBcnJheUJ1ZmZlcigxKSkpICE9IGRhdGFWaWV3VGFnKSB8fFxuICAgIChNYXAgJiYgZ2V0VGFnKG5ldyBNYXApICE9IG1hcFRhZykgfHxcbiAgICAoUHJvbWlzZSAmJiBnZXRUYWcoUHJvbWlzZS5yZXNvbHZlKCkpICE9IHByb21pc2VUYWcpIHx8XG4gICAgKFNldCAmJiBnZXRUYWcobmV3IFNldCkgIT0gc2V0VGFnKSB8fFxuICAgIChXZWFrTWFwICYmIGdldFRhZyhuZXcgV2Vha01hcCkgIT0gd2Vha01hcFRhZykpIHtcbiAgZ2V0VGFnID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgICB2YXIgcmVzdWx0ID0gYmFzZUdldFRhZyh2YWx1ZSksXG4gICAgICAgIEN0b3IgPSByZXN1bHQgPT0gb2JqZWN0VGFnID8gdmFsdWUuY29uc3RydWN0b3IgOiB1bmRlZmluZWQsXG4gICAgICAgIGN0b3JTdHJpbmcgPSBDdG9yID8gdG9Tb3VyY2UoQ3RvcikgOiAnJztcblxuICAgIGlmIChjdG9yU3RyaW5nKSB7XG4gICAgICBzd2l0Y2ggKGN0b3JTdHJpbmcpIHtcbiAgICAgICAgY2FzZSBkYXRhVmlld0N0b3JTdHJpbmc6IHJldHVybiBkYXRhVmlld1RhZztcbiAgICAgICAgY2FzZSBtYXBDdG9yU3RyaW5nOiByZXR1cm4gbWFwVGFnO1xuICAgICAgICBjYXNlIHByb21pc2VDdG9yU3RyaW5nOiByZXR1cm4gcHJvbWlzZVRhZztcbiAgICAgICAgY2FzZSBzZXRDdG9yU3RyaW5nOiByZXR1cm4gc2V0VGFnO1xuICAgICAgICBjYXNlIHdlYWtNYXBDdG9yU3RyaW5nOiByZXR1cm4gd2Vha01hcFRhZztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZ2V0VGFnO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_getTag.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_getValue.js": +/*!*********************************************!*\ + !*** ./node_modules/lodash-es/_getValue.js ***! + \*********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (getValue);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRWYWx1ZS5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLGFBQWEsR0FBRztBQUNoQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxRQUFRLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZ2V0VmFsdWUuanM/NjE1OSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdldHMgdGhlIHZhbHVlIGF0IGBrZXlgIG9mIGBvYmplY3RgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gW29iamVjdF0gVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgcHJvcGVydHkgdG8gZ2V0LlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHByb3BlcnR5IHZhbHVlLlxuICovXG5mdW5jdGlvbiBnZXRWYWx1ZShvYmplY3QsIGtleSkge1xuICByZXR1cm4gb2JqZWN0ID09IG51bGwgPyB1bmRlZmluZWQgOiBvYmplY3Rba2V5XTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZ2V0VmFsdWU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_getValue.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_hashClear.js": +/*!**********************************************!*\ + !*** ./node_modules/lodash-es/_hashClear.js ***! + \**********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nativeCreate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_nativeCreate.js */ \"./node_modules/lodash-es/_nativeCreate.js\");\n\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = _nativeCreate_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] ? (0,_nativeCreate_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(null) : {};\n this.size = 0;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (hashClear);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19oYXNoQ2xlYXIuanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBOEM7O0FBRTlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0Isd0RBQVksR0FBRyw0REFBWTtBQUM3QztBQUNBOztBQUVBLCtEQUFlLFNBQVMsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19oYXNoQ2xlYXIuanM/MGQ4ZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbmF0aXZlQ3JlYXRlIGZyb20gJy4vX25hdGl2ZUNyZWF0ZS5qcyc7XG5cbi8qKlxuICogUmVtb3ZlcyBhbGwga2V5LXZhbHVlIGVudHJpZXMgZnJvbSB0aGUgaGFzaC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgY2xlYXJcbiAqIEBtZW1iZXJPZiBIYXNoXG4gKi9cbmZ1bmN0aW9uIGhhc2hDbGVhcigpIHtcbiAgdGhpcy5fX2RhdGFfXyA9IG5hdGl2ZUNyZWF0ZSA/IG5hdGl2ZUNyZWF0ZShudWxsKSA6IHt9O1xuICB0aGlzLnNpemUgPSAwO1xufVxuXG5leHBvcnQgZGVmYXVsdCBoYXNoQ2xlYXI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_hashClear.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_hashDelete.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/_hashDelete.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (hashDelete);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19oYXNoRGVsZXRlLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsVUFBVSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2hhc2hEZWxldGUuanM/NzNmOCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlbW92ZXMgYGtleWAgYW5kIGl0cyB2YWx1ZSBmcm9tIHRoZSBoYXNoLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBkZWxldGVcbiAqIEBtZW1iZXJPZiBIYXNoXG4gKiBAcGFyYW0ge09iamVjdH0gaGFzaCBUaGUgaGFzaCB0byBtb2RpZnkuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHJlbW92ZS5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgZW50cnkgd2FzIHJlbW92ZWQsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaGFzaERlbGV0ZShrZXkpIHtcbiAgdmFyIHJlc3VsdCA9IHRoaXMuaGFzKGtleSkgJiYgZGVsZXRlIHRoaXMuX19kYXRhX19ba2V5XTtcbiAgdGhpcy5zaXplIC09IHJlc3VsdCA/IDEgOiAwO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBoYXNoRGVsZXRlO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_hashDelete.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_hashGet.js": +/*!********************************************!*\ + !*** ./node_modules/lodash-es/_hashGet.js ***! + \********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nativeCreate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_nativeCreate.js */ \"./node_modules/lodash-es/_nativeCreate.js\");\n\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (_nativeCreate_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (hashGet);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19oYXNoR2V0LmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQThDOztBQUU5QztBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsYUFBYSxHQUFHO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBLE1BQU0sd0RBQVk7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxPQUFPLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9faGFzaEdldC5qcz84OTMzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBuYXRpdmVDcmVhdGUgZnJvbSAnLi9fbmF0aXZlQ3JlYXRlLmpzJztcblxuLyoqIFVzZWQgdG8gc3RhbmQtaW4gZm9yIGB1bmRlZmluZWRgIGhhc2ggdmFsdWVzLiAqL1xudmFyIEhBU0hfVU5ERUZJTkVEID0gJ19fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18nO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIEdldHMgdGhlIGhhc2ggdmFsdWUgZm9yIGBrZXlgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBnZXRcbiAqIEBtZW1iZXJPZiBIYXNoXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIGdldC5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBlbnRyeSB2YWx1ZS5cbiAqL1xuZnVuY3Rpb24gaGFzaEdldChrZXkpIHtcbiAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fO1xuICBpZiAobmF0aXZlQ3JlYXRlKSB7XG4gICAgdmFyIHJlc3VsdCA9IGRhdGFba2V5XTtcbiAgICByZXR1cm4gcmVzdWx0ID09PSBIQVNIX1VOREVGSU5FRCA/IHVuZGVmaW5lZCA6IHJlc3VsdDtcbiAgfVxuICByZXR1cm4gaGFzT3duUHJvcGVydHkuY2FsbChkYXRhLCBrZXkpID8gZGF0YVtrZXldIDogdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZGVmYXVsdCBoYXNoR2V0O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_hashGet.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_hashHas.js": +/*!********************************************!*\ + !*** ./node_modules/lodash-es/_hashHas.js ***! + \********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nativeCreate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_nativeCreate.js */ \"./node_modules/lodash-es/_nativeCreate.js\");\n\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return _nativeCreate_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (hashHas);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19oYXNoSGFzLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQThDOztBQUU5QztBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQSxTQUFTLHdEQUFZO0FBQ3JCOztBQUVBLCtEQUFlLE9BQU8sRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19oYXNoSGFzLmpzPzliMDMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG5hdGl2ZUNyZWF0ZSBmcm9tICcuL19uYXRpdmVDcmVhdGUuanMnO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIENoZWNrcyBpZiBhIGhhc2ggdmFsdWUgZm9yIGBrZXlgIGV4aXN0cy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgaGFzXG4gKiBAbWVtYmVyT2YgSGFzaFxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBlbnRyeSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbiBlbnRyeSBmb3IgYGtleWAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGhhc2hIYXMoa2V5KSB7XG4gIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXztcbiAgcmV0dXJuIG5hdGl2ZUNyZWF0ZSA/IChkYXRhW2tleV0gIT09IHVuZGVmaW5lZCkgOiBoYXNPd25Qcm9wZXJ0eS5jYWxsKGRhdGEsIGtleSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGhhc2hIYXM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_hashHas.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_hashSet.js": +/*!********************************************!*\ + !*** ./node_modules/lodash-es/_hashSet.js ***! + \********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nativeCreate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_nativeCreate.js */ \"./node_modules/lodash-es/_nativeCreate.js\");\n\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (_nativeCreate_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (hashSet);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19oYXNoU2V0LmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQThDOztBQUU5QztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLEdBQUc7QUFDZCxhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLHdEQUFZO0FBQzNCO0FBQ0E7O0FBRUEsK0RBQWUsT0FBTyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2hhc2hTZXQuanM/MDg5ZiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbmF0aXZlQ3JlYXRlIGZyb20gJy4vX25hdGl2ZUNyZWF0ZS5qcyc7XG5cbi8qKiBVc2VkIHRvIHN0YW5kLWluIGZvciBgdW5kZWZpbmVkYCBoYXNoIHZhbHVlcy4gKi9cbnZhciBIQVNIX1VOREVGSU5FRCA9ICdfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fJztcblxuLyoqXG4gKiBTZXRzIHRoZSBoYXNoIGBrZXlgIHRvIGB2YWx1ZWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIHNldFxuICogQG1lbWJlck9mIEhhc2hcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gc2V0LlxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2V0LlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgaGFzaCBpbnN0YW5jZS5cbiAqL1xuZnVuY3Rpb24gaGFzaFNldChrZXksIHZhbHVlKSB7XG4gIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXztcbiAgdGhpcy5zaXplICs9IHRoaXMuaGFzKGtleSkgPyAwIDogMTtcbiAgZGF0YVtrZXldID0gKG5hdGl2ZUNyZWF0ZSAmJiB2YWx1ZSA9PT0gdW5kZWZpbmVkKSA/IEhBU0hfVU5ERUZJTkVEIDogdmFsdWU7XG4gIHJldHVybiB0aGlzO1xufVxuXG5leHBvcnQgZGVmYXVsdCBoYXNoU2V0O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_hashSet.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_initCloneArray.js": +/*!***************************************************!*\ + !*** ./node_modules/lodash-es/_initCloneArray.js ***! + \***************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (initCloneArray);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pbml0Q2xvbmVBcnJheS5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLGFBQWEsT0FBTztBQUNwQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxjQUFjLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9faW5pdENsb25lQXJyYXkuanM/YjAzMCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIEluaXRpYWxpemVzIGFuIGFycmF5IGNsb25lLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gY2xvbmUuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGluaXRpYWxpemVkIGNsb25lLlxuICovXG5mdW5jdGlvbiBpbml0Q2xvbmVBcnJheShhcnJheSkge1xuICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgcmVzdWx0ID0gbmV3IGFycmF5LmNvbnN0cnVjdG9yKGxlbmd0aCk7XG5cbiAgLy8gQWRkIHByb3BlcnRpZXMgYXNzaWduZWQgYnkgYFJlZ0V4cCNleGVjYC5cbiAgaWYgKGxlbmd0aCAmJiB0eXBlb2YgYXJyYXlbMF0gPT0gJ3N0cmluZycgJiYgaGFzT3duUHJvcGVydHkuY2FsbChhcnJheSwgJ2luZGV4JykpIHtcbiAgICByZXN1bHQuaW5kZXggPSBhcnJheS5pbmRleDtcbiAgICByZXN1bHQuaW5wdXQgPSBhcnJheS5pbnB1dDtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBpbml0Q2xvbmVBcnJheTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_initCloneArray.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_initCloneByTag.js": +/*!***************************************************!*\ + !*** ./node_modules/lodash-es/_initCloneByTag.js ***! + \***************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _cloneArrayBuffer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_cloneArrayBuffer.js */ \"./node_modules/lodash-es/_cloneArrayBuffer.js\");\n/* harmony import */ var _cloneDataView_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_cloneDataView.js */ \"./node_modules/lodash-es/_cloneDataView.js\");\n/* harmony import */ var _cloneRegExp_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_cloneRegExp.js */ \"./node_modules/lodash-es/_cloneRegExp.js\");\n/* harmony import */ var _cloneSymbol_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_cloneSymbol.js */ \"./node_modules/lodash-es/_cloneSymbol.js\");\n/* harmony import */ var _cloneTypedArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_cloneTypedArray.js */ \"./node_modules/lodash-es/_cloneTypedArray.js\");\n\n\n\n\n\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return (0,_cloneArrayBuffer_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return (0,_cloneDataView_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return (0,_cloneTypedArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return (0,_cloneRegExp_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return (0,_cloneSymbol_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(object);\n }\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (initCloneByTag);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pbml0Q2xvbmVCeVRhZy5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBc0Q7QUFDTjtBQUNKO0FBQ0E7QUFDUTs7QUFFcEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsU0FBUztBQUNwQixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsZ0VBQWdCOztBQUU3QjtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxhQUFhLDZEQUFhOztBQUUxQjtBQUNBO0FBQ0E7QUFDQSxhQUFhLCtEQUFlOztBQUU1QjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGFBQWEsMkRBQVc7O0FBRXhCO0FBQ0E7O0FBRUE7QUFDQSxhQUFhLDJEQUFXO0FBQ3hCO0FBQ0E7O0FBRUEsK0RBQWUsY0FBYyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2luaXRDbG9uZUJ5VGFnLmpzPzA3OGMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNsb25lQXJyYXlCdWZmZXIgZnJvbSAnLi9fY2xvbmVBcnJheUJ1ZmZlci5qcyc7XG5pbXBvcnQgY2xvbmVEYXRhVmlldyBmcm9tICcuL19jbG9uZURhdGFWaWV3LmpzJztcbmltcG9ydCBjbG9uZVJlZ0V4cCBmcm9tICcuL19jbG9uZVJlZ0V4cC5qcyc7XG5pbXBvcnQgY2xvbmVTeW1ib2wgZnJvbSAnLi9fY2xvbmVTeW1ib2wuanMnO1xuaW1wb3J0IGNsb25lVHlwZWRBcnJheSBmcm9tICcuL19jbG9uZVR5cGVkQXJyYXkuanMnO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgYm9vbFRhZyA9ICdbb2JqZWN0IEJvb2xlYW5dJyxcbiAgICBkYXRlVGFnID0gJ1tvYmplY3QgRGF0ZV0nLFxuICAgIG1hcFRhZyA9ICdbb2JqZWN0IE1hcF0nLFxuICAgIG51bWJlclRhZyA9ICdbb2JqZWN0IE51bWJlcl0nLFxuICAgIHJlZ2V4cFRhZyA9ICdbb2JqZWN0IFJlZ0V4cF0nLFxuICAgIHNldFRhZyA9ICdbb2JqZWN0IFNldF0nLFxuICAgIHN0cmluZ1RhZyA9ICdbb2JqZWN0IFN0cmluZ10nLFxuICAgIHN5bWJvbFRhZyA9ICdbb2JqZWN0IFN5bWJvbF0nO1xuXG52YXIgYXJyYXlCdWZmZXJUYWcgPSAnW29iamVjdCBBcnJheUJ1ZmZlcl0nLFxuICAgIGRhdGFWaWV3VGFnID0gJ1tvYmplY3QgRGF0YVZpZXddJyxcbiAgICBmbG9hdDMyVGFnID0gJ1tvYmplY3QgRmxvYXQzMkFycmF5XScsXG4gICAgZmxvYXQ2NFRhZyA9ICdbb2JqZWN0IEZsb2F0NjRBcnJheV0nLFxuICAgIGludDhUYWcgPSAnW29iamVjdCBJbnQ4QXJyYXldJyxcbiAgICBpbnQxNlRhZyA9ICdbb2JqZWN0IEludDE2QXJyYXldJyxcbiAgICBpbnQzMlRhZyA9ICdbb2JqZWN0IEludDMyQXJyYXldJyxcbiAgICB1aW50OFRhZyA9ICdbb2JqZWN0IFVpbnQ4QXJyYXldJyxcbiAgICB1aW50OENsYW1wZWRUYWcgPSAnW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0nLFxuICAgIHVpbnQxNlRhZyA9ICdbb2JqZWN0IFVpbnQxNkFycmF5XScsXG4gICAgdWludDMyVGFnID0gJ1tvYmplY3QgVWludDMyQXJyYXldJztcblxuLyoqXG4gKiBJbml0aWFsaXplcyBhbiBvYmplY3QgY2xvbmUgYmFzZWQgb24gaXRzIGB0b1N0cmluZ1RhZ2AuXG4gKlxuICogKipOb3RlOioqIFRoaXMgZnVuY3Rpb24gb25seSBzdXBwb3J0cyBjbG9uaW5nIHZhbHVlcyB3aXRoIHRhZ3Mgb2ZcbiAqIGBCb29sZWFuYCwgYERhdGVgLCBgRXJyb3JgLCBgTWFwYCwgYE51bWJlcmAsIGBSZWdFeHBgLCBgU2V0YCwgb3IgYFN0cmluZ2AuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBjbG9uZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSB0YWcgVGhlIGB0b1N0cmluZ1RhZ2Agb2YgdGhlIG9iamVjdCB0byBjbG9uZS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzRGVlcF0gU3BlY2lmeSBhIGRlZXAgY2xvbmUuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBpbml0aWFsaXplZCBjbG9uZS5cbiAqL1xuZnVuY3Rpb24gaW5pdENsb25lQnlUYWcob2JqZWN0LCB0YWcsIGlzRGVlcCkge1xuICB2YXIgQ3RvciA9IG9iamVjdC5jb25zdHJ1Y3RvcjtcbiAgc3dpdGNoICh0YWcpIHtcbiAgICBjYXNlIGFycmF5QnVmZmVyVGFnOlxuICAgICAgcmV0dXJuIGNsb25lQXJyYXlCdWZmZXIob2JqZWN0KTtcblxuICAgIGNhc2UgYm9vbFRhZzpcbiAgICBjYXNlIGRhdGVUYWc6XG4gICAgICByZXR1cm4gbmV3IEN0b3IoK29iamVjdCk7XG5cbiAgICBjYXNlIGRhdGFWaWV3VGFnOlxuICAgICAgcmV0dXJuIGNsb25lRGF0YVZpZXcob2JqZWN0LCBpc0RlZXApO1xuXG4gICAgY2FzZSBmbG9hdDMyVGFnOiBjYXNlIGZsb2F0NjRUYWc6XG4gICAgY2FzZSBpbnQ4VGFnOiBjYXNlIGludDE2VGFnOiBjYXNlIGludDMyVGFnOlxuICAgIGNhc2UgdWludDhUYWc6IGNhc2UgdWludDhDbGFtcGVkVGFnOiBjYXNlIHVpbnQxNlRhZzogY2FzZSB1aW50MzJUYWc6XG4gICAgICByZXR1cm4gY2xvbmVUeXBlZEFycmF5KG9iamVjdCwgaXNEZWVwKTtcblxuICAgIGNhc2UgbWFwVGFnOlxuICAgICAgcmV0dXJuIG5ldyBDdG9yO1xuXG4gICAgY2FzZSBudW1iZXJUYWc6XG4gICAgY2FzZSBzdHJpbmdUYWc6XG4gICAgICByZXR1cm4gbmV3IEN0b3Iob2JqZWN0KTtcblxuICAgIGNhc2UgcmVnZXhwVGFnOlxuICAgICAgcmV0dXJuIGNsb25lUmVnRXhwKG9iamVjdCk7XG5cbiAgICBjYXNlIHNldFRhZzpcbiAgICAgIHJldHVybiBuZXcgQ3RvcjtcblxuICAgIGNhc2Ugc3ltYm9sVGFnOlxuICAgICAgcmV0dXJuIGNsb25lU3ltYm9sKG9iamVjdCk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgaW5pdENsb25lQnlUYWc7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_initCloneByTag.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_initCloneObject.js": +/*!****************************************************!*\ + !*** ./node_modules/lodash-es/_initCloneObject.js ***! + \****************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseCreate_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_baseCreate.js */ \"./node_modules/lodash-es/_baseCreate.js\");\n/* harmony import */ var _getPrototype_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_getPrototype.js */ \"./node_modules/lodash-es/_getPrototype.js\");\n/* harmony import */ var _isPrototype_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isPrototype.js */ \"./node_modules/lodash-es/_isPrototype.js\");\n\n\n\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !(0,_isPrototype_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object))\n ? (0,_baseCreate_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])((0,_getPrototype_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(object))\n : {};\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (initCloneObject);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pbml0Q2xvbmVPYmplY3QuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUEwQztBQUNJO0FBQ0Y7O0FBRTVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsUUFBUTtBQUNyQjtBQUNBO0FBQ0Esc0RBQXNELDJEQUFXO0FBQ2pFLE1BQU0sMERBQVUsQ0FBQyw0REFBWTtBQUM3QjtBQUNBOztBQUVBLCtEQUFlLGVBQWUsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pbml0Q2xvbmVPYmplY3QuanM/NGNjMyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYmFzZUNyZWF0ZSBmcm9tICcuL19iYXNlQ3JlYXRlLmpzJztcbmltcG9ydCBnZXRQcm90b3R5cGUgZnJvbSAnLi9fZ2V0UHJvdG90eXBlLmpzJztcbmltcG9ydCBpc1Byb3RvdHlwZSBmcm9tICcuL19pc1Byb3RvdHlwZS5qcyc7XG5cbi8qKlxuICogSW5pdGlhbGl6ZXMgYW4gb2JqZWN0IGNsb25lLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gY2xvbmUuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBpbml0aWFsaXplZCBjbG9uZS5cbiAqL1xuZnVuY3Rpb24gaW5pdENsb25lT2JqZWN0KG9iamVjdCkge1xuICByZXR1cm4gKHR5cGVvZiBvYmplY3QuY29uc3RydWN0b3IgPT0gJ2Z1bmN0aW9uJyAmJiAhaXNQcm90b3R5cGUob2JqZWN0KSlcbiAgICA/IGJhc2VDcmVhdGUoZ2V0UHJvdG90eXBlKG9iamVjdCkpXG4gICAgOiB7fTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgaW5pdENsb25lT2JqZWN0O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_initCloneObject.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_isIndex.js": +/*!********************************************!*\ + !*** ./node_modules/lodash-es/_isIndex.js ***! + \********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isIndex);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pc0luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxXQUFXLFFBQVE7QUFDbkIsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsT0FBTyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2lzSW5kZXguanM/NmM4ZSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogVXNlZCBhcyByZWZlcmVuY2VzIGZvciB2YXJpb3VzIGBOdW1iZXJgIGNvbnN0YW50cy4gKi9cbnZhciBNQVhfU0FGRV9JTlRFR0VSID0gOTAwNzE5OTI1NDc0MDk5MTtcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IHVuc2lnbmVkIGludGVnZXIgdmFsdWVzLiAqL1xudmFyIHJlSXNVaW50ID0gL14oPzowfFsxLTldXFxkKikkLztcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIHZhbGlkIGFycmF5LWxpa2UgaW5kZXguXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHBhcmFtIHtudW1iZXJ9IFtsZW5ndGg9TUFYX1NBRkVfSU5URUdFUl0gVGhlIHVwcGVyIGJvdW5kcyBvZiBhIHZhbGlkIGluZGV4LlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSB2YWxpZCBpbmRleCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc0luZGV4KHZhbHVlLCBsZW5ndGgpIHtcbiAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gIGxlbmd0aCA9IGxlbmd0aCA9PSBudWxsID8gTUFYX1NBRkVfSU5URUdFUiA6IGxlbmd0aDtcblxuICByZXR1cm4gISFsZW5ndGggJiZcbiAgICAodHlwZSA9PSAnbnVtYmVyJyB8fFxuICAgICAgKHR5cGUgIT0gJ3N5bWJvbCcgJiYgcmVJc1VpbnQudGVzdCh2YWx1ZSkpKSAmJlxuICAgICAgICAodmFsdWUgPiAtMSAmJiB2YWx1ZSAlIDEgPT0gMCAmJiB2YWx1ZSA8IGxlbmd0aCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzSW5kZXg7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_isIndex.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_isKeyable.js": +/*!**********************************************!*\ + !*** ./node_modules/lodash-es/_isKeyable.js ***! + \**********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isKeyable);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pc0tleWFibGUuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2QsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLCtEQUFlLFNBQVMsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pc0tleWFibGUuanM/ZjVkNiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIHN1aXRhYmxlIGZvciB1c2UgYXMgdW5pcXVlIG9iamVjdCBrZXkuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgc3VpdGFibGUsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaXNLZXlhYmxlKHZhbHVlKSB7XG4gIHZhciB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICByZXR1cm4gKHR5cGUgPT0gJ3N0cmluZycgfHwgdHlwZSA9PSAnbnVtYmVyJyB8fCB0eXBlID09ICdzeW1ib2wnIHx8IHR5cGUgPT0gJ2Jvb2xlYW4nKVxuICAgID8gKHZhbHVlICE9PSAnX19wcm90b19fJylcbiAgICA6ICh2YWx1ZSA9PT0gbnVsbCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzS2V5YWJsZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_isKeyable.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_isMasked.js": +/*!*********************************************!*\ + !*** ./node_modules/lodash-es/_isMasked.js ***! + \*********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _coreJsData_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_coreJsData.js */ \"./node_modules/lodash-es/_coreJsData.js\");\n\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(_coreJsData_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] && _coreJsData_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].keys && _coreJsData_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isMasked);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pc01hc2tlZC5qcy5qcyIsIm1hcHBpbmdzIjoiOztBQUEwQzs7QUFFMUM7QUFDQTtBQUNBLDBCQUEwQixzREFBVSxJQUFJLDJEQUFlLElBQUksb0VBQXdCO0FBQ25GO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsVUFBVTtBQUNyQixhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsUUFBUSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2lzTWFza2VkLmpzPzc2YWQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvcmVKc0RhdGEgZnJvbSAnLi9fY29yZUpzRGF0YS5qcyc7XG5cbi8qKiBVc2VkIHRvIGRldGVjdCBtZXRob2RzIG1hc3F1ZXJhZGluZyBhcyBuYXRpdmUuICovXG52YXIgbWFza1NyY0tleSA9IChmdW5jdGlvbigpIHtcbiAgdmFyIHVpZCA9IC9bXi5dKyQvLmV4ZWMoY29yZUpzRGF0YSAmJiBjb3JlSnNEYXRhLmtleXMgJiYgY29yZUpzRGF0YS5rZXlzLklFX1BST1RPIHx8ICcnKTtcbiAgcmV0dXJuIHVpZCA/ICgnU3ltYm9sKHNyYylfMS4nICsgdWlkKSA6ICcnO1xufSgpKTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYGZ1bmNgIGhhcyBpdHMgc291cmNlIG1hc2tlZC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYGZ1bmNgIGlzIG1hc2tlZCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc01hc2tlZChmdW5jKSB7XG4gIHJldHVybiAhIW1hc2tTcmNLZXkgJiYgKG1hc2tTcmNLZXkgaW4gZnVuYyk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzTWFza2VkO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_isMasked.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_isPrototype.js": +/*!************************************************!*\ + !*** ./node_modules/lodash-es/_isPrototype.js ***! + \************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isPrototype);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pc1Byb3RvdHlwZS5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBLCtEQUFlLFdBQVcsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pc1Byb3RvdHlwZS5qcz82NDdmIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgbGlrZWx5IGEgcHJvdG90eXBlIG9iamVjdC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHByb3RvdHlwZSwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc1Byb3RvdHlwZSh2YWx1ZSkge1xuICB2YXIgQ3RvciA9IHZhbHVlICYmIHZhbHVlLmNvbnN0cnVjdG9yLFxuICAgICAgcHJvdG8gPSAodHlwZW9mIEN0b3IgPT0gJ2Z1bmN0aW9uJyAmJiBDdG9yLnByb3RvdHlwZSkgfHwgb2JqZWN0UHJvdG87XG5cbiAgcmV0dXJuIHZhbHVlID09PSBwcm90bztcbn1cblxuZXhwb3J0IGRlZmF1bHQgaXNQcm90b3R5cGU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_isPrototype.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_listCacheClear.js": +/*!***************************************************!*\ + !*** ./node_modules/lodash-es/_listCacheClear.js ***! + \***************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (listCacheClear);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19saXN0Q2FjaGVDbGVhci5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxjQUFjLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fbGlzdENhY2hlQ2xlYXIuanM/YTQ5OCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlbW92ZXMgYWxsIGtleS12YWx1ZSBlbnRyaWVzIGZyb20gdGhlIGxpc3QgY2FjaGUuXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGNsZWFyXG4gKiBAbWVtYmVyT2YgTGlzdENhY2hlXG4gKi9cbmZ1bmN0aW9uIGxpc3RDYWNoZUNsZWFyKCkge1xuICB0aGlzLl9fZGF0YV9fID0gW107XG4gIHRoaXMuc2l6ZSA9IDA7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGxpc3RDYWNoZUNsZWFyO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_listCacheClear.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_listCacheDelete.js": +/*!****************************************************!*\ + !*** ./node_modules/lodash-es/_listCacheDelete.js ***! + \****************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _assocIndexOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_assocIndexOf.js */ \"./node_modules/lodash-es/_assocIndexOf.js\");\n\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = (0,_assocIndexOf_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (listCacheDelete);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19saXN0Q2FjaGVEZWxldGUuanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBOEM7O0FBRTlDO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBLGNBQWMsNERBQVk7O0FBRTFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLCtEQUFlLGVBQWUsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19saXN0Q2FjaGVEZWxldGUuanM/NzVhZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzb2NJbmRleE9mIGZyb20gJy4vX2Fzc29jSW5kZXhPZi5qcyc7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBhcnJheVByb3RvID0gQXJyYXkucHJvdG90eXBlO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBzcGxpY2UgPSBhcnJheVByb3RvLnNwbGljZTtcblxuLyoqXG4gKiBSZW1vdmVzIGBrZXlgIGFuZCBpdHMgdmFsdWUgZnJvbSB0aGUgbGlzdCBjYWNoZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgZGVsZXRlXG4gKiBAbWVtYmVyT2YgTGlzdENhY2hlXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHJlbW92ZS5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgZW50cnkgd2FzIHJlbW92ZWQsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gbGlzdENhY2hlRGVsZXRlKGtleSkge1xuICB2YXIgZGF0YSA9IHRoaXMuX19kYXRhX18sXG4gICAgICBpbmRleCA9IGFzc29jSW5kZXhPZihkYXRhLCBrZXkpO1xuXG4gIGlmIChpbmRleCA8IDApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdmFyIGxhc3RJbmRleCA9IGRhdGEubGVuZ3RoIC0gMTtcbiAgaWYgKGluZGV4ID09IGxhc3RJbmRleCkge1xuICAgIGRhdGEucG9wKCk7XG4gIH0gZWxzZSB7XG4gICAgc3BsaWNlLmNhbGwoZGF0YSwgaW5kZXgsIDEpO1xuICB9XG4gIC0tdGhpcy5zaXplO1xuICByZXR1cm4gdHJ1ZTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgbGlzdENhY2hlRGVsZXRlO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_listCacheDelete.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_listCacheGet.js": +/*!*************************************************!*\ + !*** ./node_modules/lodash-es/_listCacheGet.js ***! + \*************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _assocIndexOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_assocIndexOf.js */ \"./node_modules/lodash-es/_assocIndexOf.js\");\n\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = (0,_assocIndexOf_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (listCacheGet);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19saXN0Q2FjaGVHZXQuanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBOEM7O0FBRTlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixhQUFhLEdBQUc7QUFDaEI7QUFDQTtBQUNBO0FBQ0EsY0FBYyw0REFBWTs7QUFFMUI7QUFDQTs7QUFFQSwrREFBZSxZQUFZLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fbGlzdENhY2hlR2V0LmpzPzg0ZjQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc29jSW5kZXhPZiBmcm9tICcuL19hc3NvY0luZGV4T2YuanMnO1xuXG4vKipcbiAqIEdldHMgdGhlIGxpc3QgY2FjaGUgdmFsdWUgZm9yIGBrZXlgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBnZXRcbiAqIEBtZW1iZXJPZiBMaXN0Q2FjaGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gZ2V0LlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGVudHJ5IHZhbHVlLlxuICovXG5mdW5jdGlvbiBsaXN0Q2FjaGVHZXQoa2V5KSB7XG4gIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXyxcbiAgICAgIGluZGV4ID0gYXNzb2NJbmRleE9mKGRhdGEsIGtleSk7XG5cbiAgcmV0dXJuIGluZGV4IDwgMCA/IHVuZGVmaW5lZCA6IGRhdGFbaW5kZXhdWzFdO1xufVxuXG5leHBvcnQgZGVmYXVsdCBsaXN0Q2FjaGVHZXQ7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_listCacheGet.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_listCacheHas.js": +/*!*************************************************!*\ + !*** ./node_modules/lodash-es/_listCacheHas.js ***! + \*************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _assocIndexOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_assocIndexOf.js */ \"./node_modules/lodash-es/_assocIndexOf.js\");\n\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return (0,_assocIndexOf_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this.__data__, key) > -1;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (listCacheHas);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19saXN0Q2FjaGVIYXMuanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBOEM7O0FBRTlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBLFNBQVMsNERBQVk7QUFDckI7O0FBRUEsK0RBQWUsWUFBWSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2xpc3RDYWNoZUhhcy5qcz8yYjMxIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NvY0luZGV4T2YgZnJvbSAnLi9fYXNzb2NJbmRleE9mLmpzJztcblxuLyoqXG4gKiBDaGVja3MgaWYgYSBsaXN0IGNhY2hlIHZhbHVlIGZvciBga2V5YCBleGlzdHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGhhc1xuICogQG1lbWJlck9mIExpc3RDYWNoZVxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBlbnRyeSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbiBlbnRyeSBmb3IgYGtleWAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGxpc3RDYWNoZUhhcyhrZXkpIHtcbiAgcmV0dXJuIGFzc29jSW5kZXhPZih0aGlzLl9fZGF0YV9fLCBrZXkpID4gLTE7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGxpc3RDYWNoZUhhcztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_listCacheHas.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_listCacheSet.js": +/*!*************************************************!*\ + !*** ./node_modules/lodash-es/_listCacheSet.js ***! + \*************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _assocIndexOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_assocIndexOf.js */ \"./node_modules/lodash-es/_assocIndexOf.js\");\n\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = (0,_assocIndexOf_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (listCacheSet);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19saXN0Q2FjaGVTZXQuanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBOEM7O0FBRTlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLEdBQUc7QUFDZCxhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0EsY0FBYyw0REFBWTs7QUFFMUI7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBOztBQUVBLCtEQUFlLFlBQVksRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19saXN0Q2FjaGVTZXQuanM/MzM0OCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzb2NJbmRleE9mIGZyb20gJy4vX2Fzc29jSW5kZXhPZi5qcyc7XG5cbi8qKlxuICogU2V0cyB0aGUgbGlzdCBjYWNoZSBga2V5YCB0byBgdmFsdWVgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBzZXRcbiAqIEBtZW1iZXJPZiBMaXN0Q2FjaGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gc2V0LlxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2V0LlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbGlzdCBjYWNoZSBpbnN0YW5jZS5cbiAqL1xuZnVuY3Rpb24gbGlzdENhY2hlU2V0KGtleSwgdmFsdWUpIHtcbiAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fLFxuICAgICAgaW5kZXggPSBhc3NvY0luZGV4T2YoZGF0YSwga2V5KTtcblxuICBpZiAoaW5kZXggPCAwKSB7XG4gICAgKyt0aGlzLnNpemU7XG4gICAgZGF0YS5wdXNoKFtrZXksIHZhbHVlXSk7XG4gIH0gZWxzZSB7XG4gICAgZGF0YVtpbmRleF1bMV0gPSB2YWx1ZTtcbiAgfVxuICByZXR1cm4gdGhpcztcbn1cblxuZXhwb3J0IGRlZmF1bHQgbGlzdENhY2hlU2V0O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_listCacheSet.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_mapCacheClear.js": +/*!**************************************************!*\ + !*** ./node_modules/lodash-es/_mapCacheClear.js ***! + \**************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Hash_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_Hash.js */ \"./node_modules/lodash-es/_Hash.js\");\n/* harmony import */ var _ListCache_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_ListCache.js */ \"./node_modules/lodash-es/_ListCache.js\");\n/* harmony import */ var _Map_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_Map.js */ \"./node_modules/lodash-es/_Map.js\");\n\n\n\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new _Hash_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n 'map': new (_Map_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"] || _ListCache_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]),\n 'string': new _Hash_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mapCacheClear);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19tYXBDYWNoZUNsZWFyLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBOEI7QUFDVTtBQUNaOztBQUU1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixnREFBSTtBQUNwQixnQkFBZ0IsK0NBQUcsSUFBSSxxREFBUztBQUNoQyxrQkFBa0IsZ0RBQUk7QUFDdEI7QUFDQTs7QUFFQSwrREFBZSxhQUFhLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fbWFwQ2FjaGVDbGVhci5qcz84NWEzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBIYXNoIGZyb20gJy4vX0hhc2guanMnO1xuaW1wb3J0IExpc3RDYWNoZSBmcm9tICcuL19MaXN0Q2FjaGUuanMnO1xuaW1wb3J0IE1hcCBmcm9tICcuL19NYXAuanMnO1xuXG4vKipcbiAqIFJlbW92ZXMgYWxsIGtleS12YWx1ZSBlbnRyaWVzIGZyb20gdGhlIG1hcC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgY2xlYXJcbiAqIEBtZW1iZXJPZiBNYXBDYWNoZVxuICovXG5mdW5jdGlvbiBtYXBDYWNoZUNsZWFyKCkge1xuICB0aGlzLnNpemUgPSAwO1xuICB0aGlzLl9fZGF0YV9fID0ge1xuICAgICdoYXNoJzogbmV3IEhhc2gsXG4gICAgJ21hcCc6IG5ldyAoTWFwIHx8IExpc3RDYWNoZSksXG4gICAgJ3N0cmluZyc6IG5ldyBIYXNoXG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IG1hcENhY2hlQ2xlYXI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_mapCacheClear.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_mapCacheDelete.js": +/*!***************************************************!*\ + !*** ./node_modules/lodash-es/_mapCacheDelete.js ***! + \***************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getMapData_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getMapData.js */ \"./node_modules/lodash-es/_getMapData.js\");\n\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = (0,_getMapData_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mapCacheDelete);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19tYXBDYWNoZURlbGV0ZS5qcy5qcyIsIm1hcHBpbmdzIjoiOztBQUEwQzs7QUFFMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0EsZUFBZSwwREFBVTtBQUN6QjtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsY0FBYyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX21hcENhY2hlRGVsZXRlLmpzPzAxMjkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldE1hcERhdGEgZnJvbSAnLi9fZ2V0TWFwRGF0YS5qcyc7XG5cbi8qKlxuICogUmVtb3ZlcyBga2V5YCBhbmQgaXRzIHZhbHVlIGZyb20gdGhlIG1hcC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgZGVsZXRlXG4gKiBAbWVtYmVyT2YgTWFwQ2FjaGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gcmVtb3ZlLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBlbnRyeSB3YXMgcmVtb3ZlZCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBtYXBDYWNoZURlbGV0ZShrZXkpIHtcbiAgdmFyIHJlc3VsdCA9IGdldE1hcERhdGEodGhpcywga2V5KVsnZGVsZXRlJ10oa2V5KTtcbiAgdGhpcy5zaXplIC09IHJlc3VsdCA/IDEgOiAwO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBtYXBDYWNoZURlbGV0ZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_mapCacheDelete.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_mapCacheGet.js": +/*!************************************************!*\ + !*** ./node_modules/lodash-es/_mapCacheGet.js ***! + \************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getMapData_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getMapData.js */ \"./node_modules/lodash-es/_getMapData.js\");\n\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return (0,_getMapData_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, key).get(key);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mapCacheGet);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19tYXBDYWNoZUdldC5qcy5qcyIsIm1hcHBpbmdzIjoiOztBQUEwQzs7QUFFMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsR0FBRztBQUNoQjtBQUNBO0FBQ0EsU0FBUywwREFBVTtBQUNuQjs7QUFFQSwrREFBZSxXQUFXLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fbWFwQ2FjaGVHZXQuanM/ZDg1NiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0TWFwRGF0YSBmcm9tICcuL19nZXRNYXBEYXRhLmpzJztcblxuLyoqXG4gKiBHZXRzIHRoZSBtYXAgdmFsdWUgZm9yIGBrZXlgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBnZXRcbiAqIEBtZW1iZXJPZiBNYXBDYWNoZVxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBnZXQuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgZW50cnkgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIG1hcENhY2hlR2V0KGtleSkge1xuICByZXR1cm4gZ2V0TWFwRGF0YSh0aGlzLCBrZXkpLmdldChrZXkpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBtYXBDYWNoZUdldDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_mapCacheGet.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_mapCacheHas.js": +/*!************************************************!*\ + !*** ./node_modules/lodash-es/_mapCacheHas.js ***! + \************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getMapData_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getMapData.js */ \"./node_modules/lodash-es/_getMapData.js\");\n\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return (0,_getMapData_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, key).has(key);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mapCacheHas);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19tYXBDYWNoZUhhcy5qcy5qcyIsIm1hcHBpbmdzIjoiOztBQUEwQzs7QUFFMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0EsU0FBUywwREFBVTtBQUNuQjs7QUFFQSwrREFBZSxXQUFXLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fbWFwQ2FjaGVIYXMuanM/MDdiMiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0TWFwRGF0YSBmcm9tICcuL19nZXRNYXBEYXRhLmpzJztcblxuLyoqXG4gKiBDaGVja3MgaWYgYSBtYXAgdmFsdWUgZm9yIGBrZXlgIGV4aXN0cy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgaGFzXG4gKiBAbWVtYmVyT2YgTWFwQ2FjaGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgZW50cnkgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYW4gZW50cnkgZm9yIGBrZXlgIGV4aXN0cywgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBtYXBDYWNoZUhhcyhrZXkpIHtcbiAgcmV0dXJuIGdldE1hcERhdGEodGhpcywga2V5KS5oYXMoa2V5KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgbWFwQ2FjaGVIYXM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_mapCacheHas.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_mapCacheSet.js": +/*!************************************************!*\ + !*** ./node_modules/lodash-es/_mapCacheSet.js ***! + \************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getMapData_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getMapData.js */ \"./node_modules/lodash-es/_getMapData.js\");\n\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = (0,_getMapData_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mapCacheSet);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19tYXBDYWNoZVNldC5qcy5qcyIsIm1hcHBpbmdzIjoiOztBQUEwQzs7QUFFMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsR0FBRztBQUNkLGFBQWEsUUFBUTtBQUNyQjtBQUNBO0FBQ0EsYUFBYSwwREFBVTtBQUN2Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxXQUFXLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fbWFwQ2FjaGVTZXQuanM/MGM0OSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0TWFwRGF0YSBmcm9tICcuL19nZXRNYXBEYXRhLmpzJztcblxuLyoqXG4gKiBTZXRzIHRoZSBtYXAgYGtleWAgdG8gYHZhbHVlYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgc2V0XG4gKiBAbWVtYmVyT2YgTWFwQ2FjaGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gc2V0LlxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2V0LlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbWFwIGNhY2hlIGluc3RhbmNlLlxuICovXG5mdW5jdGlvbiBtYXBDYWNoZVNldChrZXksIHZhbHVlKSB7XG4gIHZhciBkYXRhID0gZ2V0TWFwRGF0YSh0aGlzLCBrZXkpLFxuICAgICAgc2l6ZSA9IGRhdGEuc2l6ZTtcblxuICBkYXRhLnNldChrZXksIHZhbHVlKTtcbiAgdGhpcy5zaXplICs9IGRhdGEuc2l6ZSA9PSBzaXplID8gMCA6IDE7XG4gIHJldHVybiB0aGlzO1xufVxuXG5leHBvcnQgZGVmYXVsdCBtYXBDYWNoZVNldDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_mapCacheSet.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_memoizeCapped.js": +/*!**************************************************!*\ + !*** ./node_modules/lodash-es/_memoizeCapped.js ***! + \**************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _memoize_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./memoize.js */ \"./node_modules/lodash-es/memoize.js\");\n\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = (0,_memoize_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (memoizeCapped);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19tZW1vaXplQ2FwcGVkLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQW1DOztBQUVuQztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFVBQVU7QUFDckIsYUFBYSxVQUFVO0FBQ3ZCO0FBQ0E7QUFDQSxlQUFlLHVEQUFPO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsYUFBYSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX21lbW9pemVDYXBwZWQuanM/YzQyMyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbWVtb2l6ZSBmcm9tICcuL21lbW9pemUuanMnO1xuXG4vKiogVXNlZCBhcyB0aGUgbWF4aW11bSBtZW1vaXplIGNhY2hlIHNpemUuICovXG52YXIgTUFYX01FTU9JWkVfU0laRSA9IDUwMDtcblxuLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8ubWVtb2l6ZWAgd2hpY2ggY2xlYXJzIHRoZSBtZW1vaXplZCBmdW5jdGlvbidzXG4gKiBjYWNoZSB3aGVuIGl0IGV4Y2VlZHMgYE1BWF9NRU1PSVpFX1NJWkVgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBoYXZlIGl0cyBvdXRwdXQgbWVtb2l6ZWQuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBtZW1vaXplZCBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gbWVtb2l6ZUNhcHBlZChmdW5jKSB7XG4gIHZhciByZXN1bHQgPSBtZW1vaXplKGZ1bmMsIGZ1bmN0aW9uKGtleSkge1xuICAgIGlmIChjYWNoZS5zaXplID09PSBNQVhfTUVNT0laRV9TSVpFKSB7XG4gICAgICBjYWNoZS5jbGVhcigpO1xuICAgIH1cbiAgICByZXR1cm4ga2V5O1xuICB9KTtcblxuICB2YXIgY2FjaGUgPSByZXN1bHQuY2FjaGU7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IG1lbW9pemVDYXBwZWQ7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_memoizeCapped.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_nativeCreate.js": +/*!*************************************************!*\ + !*** ./node_modules/lodash-es/_nativeCreate.js ***! + \*************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getNative_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getNative.js */ \"./node_modules/lodash-es/_getNative.js\");\n\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = (0,_getNative_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Object, 'create');\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (nativeCreate);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19uYXRpdmVDcmVhdGUuanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBd0M7O0FBRXhDO0FBQ0EsbUJBQW1CLHlEQUFTOztBQUU1QiwrREFBZSxZQUFZLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fbmF0aXZlQ3JlYXRlLmpzPzNkYWMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldE5hdGl2ZSBmcm9tICcuL19nZXROYXRpdmUuanMnO1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyB0aGF0IGFyZSB2ZXJpZmllZCB0byBiZSBuYXRpdmUuICovXG52YXIgbmF0aXZlQ3JlYXRlID0gZ2V0TmF0aXZlKE9iamVjdCwgJ2NyZWF0ZScpO1xuXG5leHBvcnQgZGVmYXVsdCBuYXRpdmVDcmVhdGU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_nativeCreate.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_nativeKeys.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/_nativeKeys.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _overArg_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_overArg.js */ \"./node_modules/lodash-es/_overArg.js\");\n\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = (0,_overArg_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Object.keys, Object);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (nativeKeys);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19uYXRpdmVLZXlzLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQW9DOztBQUVwQztBQUNBLGlCQUFpQix1REFBTzs7QUFFeEIsK0RBQWUsVUFBVSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX25hdGl2ZUtleXMuanM/MWU5MiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgb3ZlckFyZyBmcm9tICcuL19vdmVyQXJnLmpzJztcblxuLyogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xudmFyIG5hdGl2ZUtleXMgPSBvdmVyQXJnKE9iamVjdC5rZXlzLCBPYmplY3QpO1xuXG5leHBvcnQgZGVmYXVsdCBuYXRpdmVLZXlzO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_nativeKeys.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_nativeKeysIn.js": +/*!*************************************************!*\ + !*** ./node_modules/lodash-es/_nativeKeysIn.js ***! + \*************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (nativeKeysIn);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19uYXRpdmVLZXlzSW4uanMuanMiLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixhQUFhLE9BQU87QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsWUFBWSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX25hdGl2ZUtleXNJbi5qcz83ZjU5Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhpcyBmdW5jdGlvbiBpcyBsaWtlXG4gKiBbYE9iamVjdC5rZXlzYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtb2JqZWN0LmtleXMpXG4gKiBleGNlcHQgdGhhdCBpdCBpbmNsdWRlcyBpbmhlcml0ZWQgZW51bWVyYWJsZSBwcm9wZXJ0aWVzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICovXG5mdW5jdGlvbiBuYXRpdmVLZXlzSW4ob2JqZWN0KSB7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgaWYgKG9iamVjdCAhPSBudWxsKSB7XG4gICAgZm9yICh2YXIga2V5IGluIE9iamVjdChvYmplY3QpKSB7XG4gICAgICByZXN1bHQucHVzaChrZXkpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBuYXRpdmVLZXlzSW47XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_nativeKeysIn.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_nodeUtil.js": +/*!*********************************************!*\ + !*** ./node_modules/lodash-es/_nodeUtil.js ***! + \*********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _freeGlobal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_freeGlobal.js */ \"./node_modules/lodash-es/_freeGlobal.js\");\n\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && _freeGlobal_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (nodeUtil);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19ub2RlVXRpbC5qcy5qcyIsIm1hcHBpbmdzIjoiOztBQUEwQzs7QUFFMUM7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxtQ0FBbUMsOERBQWtCOztBQUVyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKLENBQUM7O0FBRUQsK0RBQWUsUUFBUSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX25vZGVVdGlsLmpzP2M0MTkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZyZWVHbG9iYWwgZnJvbSAnLi9fZnJlZUdsb2JhbC5qcyc7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgZXhwb3J0c2AuICovXG52YXIgZnJlZUV4cG9ydHMgPSB0eXBlb2YgZXhwb3J0cyA9PSAnb2JqZWN0JyAmJiBleHBvcnRzICYmICFleHBvcnRzLm5vZGVUeXBlICYmIGV4cG9ydHM7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgbW9kdWxlYC4gKi9cbnZhciBmcmVlTW9kdWxlID0gZnJlZUV4cG9ydHMgJiYgdHlwZW9mIG1vZHVsZSA9PSAnb2JqZWN0JyAmJiBtb2R1bGUgJiYgIW1vZHVsZS5ub2RlVHlwZSAmJiBtb2R1bGU7XG5cbi8qKiBEZXRlY3QgdGhlIHBvcHVsYXIgQ29tbW9uSlMgZXh0ZW5zaW9uIGBtb2R1bGUuZXhwb3J0c2AuICovXG52YXIgbW9kdWxlRXhwb3J0cyA9IGZyZWVNb2R1bGUgJiYgZnJlZU1vZHVsZS5leHBvcnRzID09PSBmcmVlRXhwb3J0cztcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBwcm9jZXNzYCBmcm9tIE5vZGUuanMuICovXG52YXIgZnJlZVByb2Nlc3MgPSBtb2R1bGVFeHBvcnRzICYmIGZyZWVHbG9iYWwucHJvY2VzcztcblxuLyoqIFVzZWQgdG8gYWNjZXNzIGZhc3RlciBOb2RlLmpzIGhlbHBlcnMuICovXG52YXIgbm9kZVV0aWwgPSAoZnVuY3Rpb24oKSB7XG4gIHRyeSB7XG4gICAgLy8gVXNlIGB1dGlsLnR5cGVzYCBmb3IgTm9kZS5qcyAxMCsuXG4gICAgdmFyIHR5cGVzID0gZnJlZU1vZHVsZSAmJiBmcmVlTW9kdWxlLnJlcXVpcmUgJiYgZnJlZU1vZHVsZS5yZXF1aXJlKCd1dGlsJykudHlwZXM7XG5cbiAgICBpZiAodHlwZXMpIHtcbiAgICAgIHJldHVybiB0eXBlcztcbiAgICB9XG5cbiAgICAvLyBMZWdhY3kgYHByb2Nlc3MuYmluZGluZygndXRpbCcpYCBmb3IgTm9kZS5qcyA8IDEwLlxuICAgIHJldHVybiBmcmVlUHJvY2VzcyAmJiBmcmVlUHJvY2Vzcy5iaW5kaW5nICYmIGZyZWVQcm9jZXNzLmJpbmRpbmcoJ3V0aWwnKTtcbiAgfSBjYXRjaCAoZSkge31cbn0oKSk7XG5cbmV4cG9ydCBkZWZhdWx0IG5vZGVVdGlsO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_nodeUtil.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_objectToString.js": +/*!***************************************************!*\ + !*** ./node_modules/lodash-es/_objectToString.js ***! + \***************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (objectToString);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19vYmplY3RUb1N0cmluZy5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsY0FBYyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX29iamVjdFRvU3RyaW5nLmpzP2QxOTUiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqXG4gKiBVc2VkIHRvIHJlc29sdmUgdGhlXG4gKiBbYHRvU3RyaW5nVGFnYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtb2JqZWN0LnByb3RvdHlwZS50b3N0cmluZylcbiAqIG9mIHZhbHVlcy5cbiAqL1xudmFyIG5hdGl2ZU9iamVjdFRvU3RyaW5nID0gb2JqZWN0UHJvdG8udG9TdHJpbmc7XG5cbi8qKlxuICogQ29udmVydHMgYHZhbHVlYCB0byBhIHN0cmluZyB1c2luZyBgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZ2AuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgc3RyaW5nLlxuICovXG5mdW5jdGlvbiBvYmplY3RUb1N0cmluZyh2YWx1ZSkge1xuICByZXR1cm4gbmF0aXZlT2JqZWN0VG9TdHJpbmcuY2FsbCh2YWx1ZSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IG9iamVjdFRvU3RyaW5nO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_objectToString.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_overArg.js": +/*!********************************************!*\ + !*** ./node_modules/lodash-es/_overArg.js ***! + \********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (overArg);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19vdmVyQXJnLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsVUFBVTtBQUNyQixXQUFXLFVBQVU7QUFDckIsYUFBYSxVQUFVO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxPQUFPLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fb3ZlckFyZy5qcz8wYmQ3Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ3JlYXRlcyBhIHVuYXJ5IGZ1bmN0aW9uIHRoYXQgaW52b2tlcyBgZnVuY2Agd2l0aCBpdHMgYXJndW1lbnQgdHJhbnNmb3JtZWQuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIHdyYXAuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSB0cmFuc2Zvcm0gVGhlIGFyZ3VtZW50IHRyYW5zZm9ybS5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBvdmVyQXJnKGZ1bmMsIHRyYW5zZm9ybSkge1xuICByZXR1cm4gZnVuY3Rpb24oYXJnKSB7XG4gICAgcmV0dXJuIGZ1bmModHJhbnNmb3JtKGFyZykpO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBvdmVyQXJnO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_overArg.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_root.js": +/*!*****************************************!*\ + !*** ./node_modules/lodash-es/_root.js ***! + \*****************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _freeGlobal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_freeGlobal.js */ \"./node_modules/lodash-es/_freeGlobal.js\");\n\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = _freeGlobal_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] || freeSelf || Function('return this')();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (root);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19yb290LmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQTBDOztBQUUxQztBQUNBOztBQUVBO0FBQ0EsV0FBVyxzREFBVTs7QUFFckIsK0RBQWUsSUFBSSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3Jvb3QuanM/NGZjMSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZnJlZUdsb2JhbCBmcm9tICcuL19mcmVlR2xvYmFsLmpzJztcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBzZWxmYC4gKi9cbnZhciBmcmVlU2VsZiA9IHR5cGVvZiBzZWxmID09ICdvYmplY3QnICYmIHNlbGYgJiYgc2VsZi5PYmplY3QgPT09IE9iamVjdCAmJiBzZWxmO1xuXG4vKiogVXNlZCBhcyBhIHJlZmVyZW5jZSB0byB0aGUgZ2xvYmFsIG9iamVjdC4gKi9cbnZhciByb290ID0gZnJlZUdsb2JhbCB8fCBmcmVlU2VsZiB8fCBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuXG5leHBvcnQgZGVmYXVsdCByb290O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_root.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_stackClear.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/_stackClear.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ListCache_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ListCache.js */ \"./node_modules/lodash-es/_ListCache.js\");\n\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new _ListCache_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\n this.size = 0;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (stackClear);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19zdGFja0NsZWFyLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQXdDOztBQUV4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLHFEQUFTO0FBQy9CO0FBQ0E7O0FBRUEsK0RBQWUsVUFBVSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3N0YWNrQ2xlYXIuanM/MTAxMCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTGlzdENhY2hlIGZyb20gJy4vX0xpc3RDYWNoZS5qcyc7XG5cbi8qKlxuICogUmVtb3ZlcyBhbGwga2V5LXZhbHVlIGVudHJpZXMgZnJvbSB0aGUgc3RhY2suXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGNsZWFyXG4gKiBAbWVtYmVyT2YgU3RhY2tcbiAqL1xuZnVuY3Rpb24gc3RhY2tDbGVhcigpIHtcbiAgdGhpcy5fX2RhdGFfXyA9IG5ldyBMaXN0Q2FjaGU7XG4gIHRoaXMuc2l6ZSA9IDA7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHN0YWNrQ2xlYXI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_stackClear.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_stackDelete.js": +/*!************************************************!*\ + !*** ./node_modules/lodash-es/_stackDelete.js ***! + \************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (stackDelete);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19zdGFja0RlbGV0ZS5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsV0FBVyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3N0YWNrRGVsZXRlLmpzPzI5ZmMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZW1vdmVzIGBrZXlgIGFuZCBpdHMgdmFsdWUgZnJvbSB0aGUgc3RhY2suXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGRlbGV0ZVxuICogQG1lbWJlck9mIFN0YWNrXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHJlbW92ZS5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgZW50cnkgd2FzIHJlbW92ZWQsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gc3RhY2tEZWxldGUoa2V5KSB7XG4gIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXyxcbiAgICAgIHJlc3VsdCA9IGRhdGFbJ2RlbGV0ZSddKGtleSk7XG5cbiAgdGhpcy5zaXplID0gZGF0YS5zaXplO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBzdGFja0RlbGV0ZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_stackDelete.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_stackGet.js": +/*!*********************************************!*\ + !*** ./node_modules/lodash-es/_stackGet.js ***! + \*********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (stackGet);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19zdGFja0dldC5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsR0FBRztBQUNoQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxRQUFRLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fc3RhY2tHZXQuanM/MmRiNiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdldHMgdGhlIHN0YWNrIHZhbHVlIGZvciBga2V5YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgZ2V0XG4gKiBAbWVtYmVyT2YgU3RhY2tcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gZ2V0LlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGVudHJ5IHZhbHVlLlxuICovXG5mdW5jdGlvbiBzdGFja0dldChrZXkpIHtcbiAgcmV0dXJuIHRoaXMuX19kYXRhX18uZ2V0KGtleSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHN0YWNrR2V0O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_stackGet.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_stackHas.js": +/*!*********************************************!*\ + !*** ./node_modules/lodash-es/_stackHas.js ***! + \*********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (stackHas);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19zdGFja0hhcy5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxRQUFRLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fc3RhY2tIYXMuanM/ODg3MSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENoZWNrcyBpZiBhIHN0YWNrIHZhbHVlIGZvciBga2V5YCBleGlzdHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGhhc1xuICogQG1lbWJlck9mIFN0YWNrXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIGVudHJ5IHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGFuIGVudHJ5IGZvciBga2V5YCBleGlzdHMsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gc3RhY2tIYXMoa2V5KSB7XG4gIHJldHVybiB0aGlzLl9fZGF0YV9fLmhhcyhrZXkpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBzdGFja0hhcztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_stackHas.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_stackSet.js": +/*!*********************************************!*\ + !*** ./node_modules/lodash-es/_stackSet.js ***! + \*********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ListCache_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ListCache.js */ \"./node_modules/lodash-es/_ListCache.js\");\n/* harmony import */ var _Map_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_Map.js */ \"./node_modules/lodash-es/_Map.js\");\n/* harmony import */ var _MapCache_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_MapCache.js */ \"./node_modules/lodash-es/_MapCache.js\");\n\n\n\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof _ListCache_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]) {\n var pairs = data.__data__;\n if (!_Map_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"] || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new _MapCache_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"](pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (stackSet);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19zdGFja1NldC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQXdDO0FBQ1o7QUFDVTs7QUFFdEM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxHQUFHO0FBQ2QsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixxREFBUztBQUMvQjtBQUNBLFNBQVMsK0NBQUc7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtCQUErQixvREFBUTtBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLCtEQUFlLFFBQVEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19zdGFja1NldC5qcz9jN2VhIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMaXN0Q2FjaGUgZnJvbSAnLi9fTGlzdENhY2hlLmpzJztcbmltcG9ydCBNYXAgZnJvbSAnLi9fTWFwLmpzJztcbmltcG9ydCBNYXBDYWNoZSBmcm9tICcuL19NYXBDYWNoZS5qcyc7XG5cbi8qKiBVc2VkIGFzIHRoZSBzaXplIHRvIGVuYWJsZSBsYXJnZSBhcnJheSBvcHRpbWl6YXRpb25zLiAqL1xudmFyIExBUkdFX0FSUkFZX1NJWkUgPSAyMDA7XG5cbi8qKlxuICogU2V0cyB0aGUgc3RhY2sgYGtleWAgdG8gYHZhbHVlYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgc2V0XG4gKiBAbWVtYmVyT2YgU3RhY2tcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gc2V0LlxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2V0LlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgc3RhY2sgY2FjaGUgaW5zdGFuY2UuXG4gKi9cbmZ1bmN0aW9uIHN0YWNrU2V0KGtleSwgdmFsdWUpIHtcbiAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fO1xuICBpZiAoZGF0YSBpbnN0YW5jZW9mIExpc3RDYWNoZSkge1xuICAgIHZhciBwYWlycyA9IGRhdGEuX19kYXRhX187XG4gICAgaWYgKCFNYXAgfHwgKHBhaXJzLmxlbmd0aCA8IExBUkdFX0FSUkFZX1NJWkUgLSAxKSkge1xuICAgICAgcGFpcnMucHVzaChba2V5LCB2YWx1ZV0pO1xuICAgICAgdGhpcy5zaXplID0gKytkYXRhLnNpemU7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgZGF0YSA9IHRoaXMuX19kYXRhX18gPSBuZXcgTWFwQ2FjaGUocGFpcnMpO1xuICB9XG4gIGRhdGEuc2V0KGtleSwgdmFsdWUpO1xuICB0aGlzLnNpemUgPSBkYXRhLnNpemU7XG4gIHJldHVybiB0aGlzO1xufVxuXG5leHBvcnQgZGVmYXVsdCBzdGFja1NldDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_stackSet.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_stringToPath.js": +/*!*************************************************!*\ + !*** ./node_modules/lodash-es/_stringToPath.js ***! + \*************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _memoizeCapped_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_memoizeCapped.js */ \"./node_modules/lodash-es/_memoizeCapped.js\");\n\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = (0,_memoizeCapped_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (stringToPath);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19zdHJpbmdUb1BhdGguanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBZ0Q7O0FBRWhEO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixhQUFhLE9BQU87QUFDcEI7QUFDQSxtQkFBbUIsNkRBQWE7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsQ0FBQzs7QUFFRCwrREFBZSxZQUFZLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fc3RyaW5nVG9QYXRoLmpzP2VjN2QiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG1lbW9pemVDYXBwZWQgZnJvbSAnLi9fbWVtb2l6ZUNhcHBlZC5qcyc7XG5cbi8qKiBVc2VkIHRvIG1hdGNoIHByb3BlcnR5IG5hbWVzIHdpdGhpbiBwcm9wZXJ0eSBwYXRocy4gKi9cbnZhciByZVByb3BOYW1lID0gL1teLltcXF1dK3xcXFsoPzooLT9cXGQrKD86XFwuXFxkKyk/KXwoW1wiJ10pKCg/Oig/IVxcMilbXlxcXFxdfFxcXFwuKSo/KVxcMilcXF18KD89KD86XFwufFxcW1xcXSkoPzpcXC58XFxbXFxdfCQpKS9nO1xuXG4vKiogVXNlZCB0byBtYXRjaCBiYWNrc2xhc2hlcyBpbiBwcm9wZXJ0eSBwYXRocy4gKi9cbnZhciByZUVzY2FwZUNoYXIgPSAvXFxcXChcXFxcKT8vZztcblxuLyoqXG4gKiBDb252ZXJ0cyBgc3RyaW5nYCB0byBhIHByb3BlcnR5IHBhdGggYXJyYXkuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmcgVGhlIHN0cmluZyB0byBjb252ZXJ0LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBwcm9wZXJ0eSBwYXRoIGFycmF5LlxuICovXG52YXIgc3RyaW5nVG9QYXRoID0gbWVtb2l6ZUNhcHBlZChmdW5jdGlvbihzdHJpbmcpIHtcbiAgdmFyIHJlc3VsdCA9IFtdO1xuICBpZiAoc3RyaW5nLmNoYXJDb2RlQXQoMCkgPT09IDQ2IC8qIC4gKi8pIHtcbiAgICByZXN1bHQucHVzaCgnJyk7XG4gIH1cbiAgc3RyaW5nLnJlcGxhY2UocmVQcm9wTmFtZSwgZnVuY3Rpb24obWF0Y2gsIG51bWJlciwgcXVvdGUsIHN1YlN0cmluZykge1xuICAgIHJlc3VsdC5wdXNoKHF1b3RlID8gc3ViU3RyaW5nLnJlcGxhY2UocmVFc2NhcGVDaGFyLCAnJDEnKSA6IChudW1iZXIgfHwgbWF0Y2gpKTtcbiAgfSk7XG4gIHJldHVybiByZXN1bHQ7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgc3RyaW5nVG9QYXRoO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_stringToPath.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_toKey.js": +/*!******************************************!*\ + !*** ./node_modules/lodash-es/_toKey.js ***! + \******************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _isSymbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isSymbol.js */ \"./node_modules/lodash-es/isSymbol.js\");\n\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || (0,_isSymbol_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (toKey);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL190b0tleS5qcy5qcyIsIm1hcHBpbmdzIjoiOztBQUFxQzs7QUFFckM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLGFBQWEsZUFBZTtBQUM1QjtBQUNBO0FBQ0Esa0NBQWtDLHdEQUFRO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsS0FBSyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3RvS2V5LmpzPzg3MjQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGlzU3ltYm9sIGZyb20gJy4vaXNTeW1ib2wuanMnO1xuXG4vKiogVXNlZCBhcyByZWZlcmVuY2VzIGZvciB2YXJpb3VzIGBOdW1iZXJgIGNvbnN0YW50cy4gKi9cbnZhciBJTkZJTklUWSA9IDEgLyAwO1xuXG4vKipcbiAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBzdHJpbmcga2V5IGlmIGl0J3Mgbm90IGEgc3RyaW5nIG9yIHN5bWJvbC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIHtzdHJpbmd8c3ltYm9sfSBSZXR1cm5zIHRoZSBrZXkuXG4gKi9cbmZ1bmN0aW9uIHRvS2V5KHZhbHVlKSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT0gJ3N0cmluZycgfHwgaXNTeW1ib2wodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIHZhciByZXN1bHQgPSAodmFsdWUgKyAnJyk7XG4gIHJldHVybiAocmVzdWx0ID09ICcwJyAmJiAoMSAvIHZhbHVlKSA9PSAtSU5GSU5JVFkpID8gJy0wJyA6IHJlc3VsdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgdG9LZXk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_toKey.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_toSource.js": +/*!*********************************************!*\ + !*** ./node_modules/lodash-es/_toSource.js ***! + \*********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (toSource);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL190b1NvdXJjZS5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxVQUFVO0FBQ3JCLGFBQWEsUUFBUTtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBLCtEQUFlLFFBQVEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL190b1NvdXJjZS5qcz85MjU5Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBmdW5jUHJvdG8gPSBGdW5jdGlvbi5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIHJlc29sdmUgdGhlIGRlY29tcGlsZWQgc291cmNlIG9mIGZ1bmN0aW9ucy4gKi9cbnZhciBmdW5jVG9TdHJpbmcgPSBmdW5jUHJvdG8udG9TdHJpbmc7XG5cbi8qKlxuICogQ29udmVydHMgYGZ1bmNgIHRvIGl0cyBzb3VyY2UgY29kZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gY29udmVydC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHNvdXJjZSBjb2RlLlxuICovXG5mdW5jdGlvbiB0b1NvdXJjZShmdW5jKSB7XG4gIGlmIChmdW5jICE9IG51bGwpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGZ1bmNUb1N0cmluZy5jYWxsKGZ1bmMpO1xuICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiAoZnVuYyArICcnKTtcbiAgICB9IGNhdGNoIChlKSB7fVxuICB9XG4gIHJldHVybiAnJztcbn1cblxuZXhwb3J0IGRlZmF1bHQgdG9Tb3VyY2U7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_toSource.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/clone.js": +/*!*****************************************!*\ + !*** ./node_modules/lodash-es/clone.js ***! + \*****************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseClone_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseClone.js */ \"./node_modules/lodash-es/_baseClone.js\");\n\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\nfunction clone(value) {\n return (0,_baseClone_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value, CLONE_SYMBOLS_FLAG);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (clone);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2Nsb25lLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQXdDOztBQUV4QztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLGFBQWEsR0FBRztBQUNoQjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsUUFBUSxJQUFJLFFBQVE7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUyx5REFBUztBQUNsQjs7QUFFQSwrREFBZSxLQUFLLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9jbG9uZS5qcz9iZmNmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBiYXNlQ2xvbmUgZnJvbSAnLi9fYmFzZUNsb25lLmpzJztcblxuLyoqIFVzZWQgdG8gY29tcG9zZSBiaXRtYXNrcyBmb3IgY2xvbmluZy4gKi9cbnZhciBDTE9ORV9TWU1CT0xTX0ZMQUcgPSA0O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBzaGFsbG93IGNsb25lIG9mIGB2YWx1ZWAuXG4gKlxuICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGlzIGxvb3NlbHkgYmFzZWQgb24gdGhlXG4gKiBbc3RydWN0dXJlZCBjbG9uZSBhbGdvcml0aG1dKGh0dHBzOi8vbWRuLmlvL1N0cnVjdHVyZWRfY2xvbmVfYWxnb3JpdGhtKVxuICogYW5kIHN1cHBvcnRzIGNsb25pbmcgYXJyYXlzLCBhcnJheSBidWZmZXJzLCBib29sZWFucywgZGF0ZSBvYmplY3RzLCBtYXBzLFxuICogbnVtYmVycywgYE9iamVjdGAgb2JqZWN0cywgcmVnZXhlcywgc2V0cywgc3RyaW5ncywgc3ltYm9scywgYW5kIHR5cGVkXG4gKiBhcnJheXMuIFRoZSBvd24gZW51bWVyYWJsZSBwcm9wZXJ0aWVzIG9mIGBhcmd1bWVudHNgIG9iamVjdHMgYXJlIGNsb25lZFxuICogYXMgcGxhaW4gb2JqZWN0cy4gQW4gZW1wdHkgb2JqZWN0IGlzIHJldHVybmVkIGZvciB1bmNsb25lYWJsZSB2YWx1ZXMgc3VjaFxuICogYXMgZXJyb3Igb2JqZWN0cywgZnVuY3Rpb25zLCBET00gbm9kZXMsIGFuZCBXZWFrTWFwcy5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2xvbmUuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgY2xvbmVkIHZhbHVlLlxuICogQHNlZSBfLmNsb25lRGVlcFxuICogQGV4YW1wbGVcbiAqXG4gKiB2YXIgb2JqZWN0cyA9IFt7ICdhJzogMSB9LCB7ICdiJzogMiB9XTtcbiAqXG4gKiB2YXIgc2hhbGxvdyA9IF8uY2xvbmUob2JqZWN0cyk7XG4gKiBjb25zb2xlLmxvZyhzaGFsbG93WzBdID09PSBvYmplY3RzWzBdKTtcbiAqIC8vID0+IHRydWVcbiAqL1xuZnVuY3Rpb24gY2xvbmUodmFsdWUpIHtcbiAgcmV0dXJuIGJhc2VDbG9uZSh2YWx1ZSwgQ0xPTkVfU1lNQk9MU19GTEFHKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xvbmU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/clone.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/cloneDeep.js": +/*!*********************************************!*\ + !*** ./node_modules/lodash-es/cloneDeep.js ***! + \*********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseClone_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseClone.js */ \"./node_modules/lodash-es/_baseClone.js\");\n\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return (0,_baseClone_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (cloneDeep);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2Nsb25lRGVlcC5qcy5qcyIsIm1hcHBpbmdzIjoiOztBQUF3Qzs7QUFFeEM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2QsYUFBYSxHQUFHO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixRQUFRLElBQUksUUFBUTtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTLHlEQUFTO0FBQ2xCOztBQUVBLCtEQUFlLFNBQVMsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2Nsb25lRGVlcC5qcz83YzhkIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBiYXNlQ2xvbmUgZnJvbSAnLi9fYmFzZUNsb25lLmpzJztcblxuLyoqIFVzZWQgdG8gY29tcG9zZSBiaXRtYXNrcyBmb3IgY2xvbmluZy4gKi9cbnZhciBDTE9ORV9ERUVQX0ZMQUcgPSAxLFxuICAgIENMT05FX1NZTUJPTFNfRkxBRyA9IDQ7XG5cbi8qKlxuICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5jbG9uZWAgZXhjZXB0IHRoYXQgaXQgcmVjdXJzaXZlbHkgY2xvbmVzIGB2YWx1ZWAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHJlY3Vyc2l2ZWx5IGNsb25lLlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGRlZXAgY2xvbmVkIHZhbHVlLlxuICogQHNlZSBfLmNsb25lXG4gKiBAZXhhbXBsZVxuICpcbiAqIHZhciBvYmplY3RzID0gW3sgJ2EnOiAxIH0sIHsgJ2InOiAyIH1dO1xuICpcbiAqIHZhciBkZWVwID0gXy5jbG9uZURlZXAob2JqZWN0cyk7XG4gKiBjb25zb2xlLmxvZyhkZWVwWzBdID09PSBvYmplY3RzWzBdKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGNsb25lRGVlcCh2YWx1ZSkge1xuICByZXR1cm4gYmFzZUNsb25lKHZhbHVlLCBDTE9ORV9ERUVQX0ZMQUcgfCBDTE9ORV9TWU1CT0xTX0ZMQUcpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbG9uZURlZXA7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/cloneDeep.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/eq.js": +/*!**************************************!*\ + !*** ./node_modules/lodash-es/eq.js ***! + \**************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (eq);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2VxLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxXQUFXLEdBQUc7QUFDZCxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQixpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsRUFBRSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvZXEuanM/YjVhOSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFBlcmZvcm1zIGFcbiAqIFtgU2FtZVZhbHVlWmVyb2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXNhbWV2YWx1ZXplcm8pXG4gKiBjb21wYXJpc29uIGJldHdlZW4gdHdvIHZhbHVlcyB0byBkZXRlcm1pbmUgaWYgdGhleSBhcmUgZXF1aXZhbGVudC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29tcGFyZS5cbiAqIEBwYXJhbSB7Kn0gb3RoZXIgVGhlIG90aGVyIHZhbHVlIHRvIGNvbXBhcmUuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHZhbHVlcyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiB2YXIgb2JqZWN0ID0geyAnYSc6IDEgfTtcbiAqIHZhciBvdGhlciA9IHsgJ2EnOiAxIH07XG4gKlxuICogXy5lcShvYmplY3QsIG9iamVjdCk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5lcShvYmplY3QsIG90aGVyKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5lcSgnYScsICdhJyk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5lcSgnYScsIE9iamVjdCgnYScpKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5lcShOYU4sIE5hTik7XG4gKiAvLyA9PiB0cnVlXG4gKi9cbmZ1bmN0aW9uIGVxKHZhbHVlLCBvdGhlcikge1xuICByZXR1cm4gdmFsdWUgPT09IG90aGVyIHx8ICh2YWx1ZSAhPT0gdmFsdWUgJiYgb3RoZXIgIT09IG90aGVyKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZXE7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/eq.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/isArguments.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/isArguments.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseIsArguments_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseIsArguments.js */ \"./node_modules/lodash-es/_baseIsArguments.js\");\n/* harmony import */ var _isObjectLike_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isObjectLike.js */ \"./node_modules/lodash-es/isObjectLike.js\");\n\n\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = (0,_baseIsArguments_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function() { return arguments; }()) ? _baseIsArguments_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] : function(value) {\n return (0,_isObjectLike_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isArguments);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzQXJndW1lbnRzLmpzLmpzIiwibWFwcGluZ3MiOiI7OztBQUFvRDtBQUNQOztBQUU3QztBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQSw4QkFBOEIsbUJBQW1CO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IsK0RBQWUsY0FBYyxtQkFBbUIsTUFBTSwyREFBZTtBQUN2RixTQUFTLDREQUFZO0FBQ3JCO0FBQ0E7O0FBRUEsK0RBQWUsV0FBVyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNBcmd1bWVudHMuanM/ZTJkMCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYmFzZUlzQXJndW1lbnRzIGZyb20gJy4vX2Jhc2VJc0FyZ3VtZW50cy5qcyc7XG5pbXBvcnQgaXNPYmplY3RMaWtlIGZyb20gJy4vaXNPYmplY3RMaWtlLmpzJztcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgcHJvcGVydHlJc0VudW1lcmFibGUgPSBvYmplY3RQcm90by5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBsaWtlbHkgYW4gYGFyZ3VtZW50c2Agb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIGBhcmd1bWVudHNgIG9iamVjdCxcbiAqICBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNBcmd1bWVudHMoZnVuY3Rpb24oKSB7IHJldHVybiBhcmd1bWVudHM7IH0oKSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0FyZ3VtZW50cyhbMSwgMiwgM10pO1xuICogLy8gPT4gZmFsc2VcbiAqL1xudmFyIGlzQXJndW1lbnRzID0gYmFzZUlzQXJndW1lbnRzKGZ1bmN0aW9uKCkgeyByZXR1cm4gYXJndW1lbnRzOyB9KCkpID8gYmFzZUlzQXJndW1lbnRzIDogZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwgJ2NhbGxlZScpICYmXG4gICAgIXByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodmFsdWUsICdjYWxsZWUnKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGlzQXJndW1lbnRzO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/isArguments.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/isArray.js": +/*!*******************************************!*\ + !*** ./node_modules/lodash-es/isArray.js ***! + \*******************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isArray);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzQXJyYXkuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2QsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxPQUFPLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc0FycmF5LmpzPzg2MjIiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGFuIGBBcnJheWAgb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIGFycmF5LCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNBcnJheShbMSwgMiwgM10pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNBcnJheShkb2N1bWVudC5ib2R5LmNoaWxkcmVuKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc0FycmF5KCdhYmMnKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc0FycmF5KF8ubm9vcCk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG52YXIgaXNBcnJheSA9IEFycmF5LmlzQXJyYXk7XG5cbmV4cG9ydCBkZWZhdWx0IGlzQXJyYXk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/isArray.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/isArrayLike.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/isArrayLike.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isFunction.js */ \"./node_modules/lodash-es/isFunction.js\");\n/* harmony import */ var _isLength_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isLength.js */ \"./node_modules/lodash-es/isLength.js\");\n\n\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && (0,_isLength_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value.length) && !(0,_isFunction_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isArrayLike);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzQXJyYXlMaWtlLmpzLmpzIiwibWFwcGluZ3MiOiI7OztBQUF5QztBQUNKOztBQUVyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLHdEQUFRLG1CQUFtQiwwREFBVTtBQUMvRDs7QUFFQSwrREFBZSxXQUFXLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc0FycmF5TGlrZS5qcz82Y2QzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBpc0Z1bmN0aW9uIGZyb20gJy4vaXNGdW5jdGlvbi5qcyc7XG5pbXBvcnQgaXNMZW5ndGggZnJvbSAnLi9pc0xlbmd0aC5qcyc7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYXJyYXktbGlrZS4gQSB2YWx1ZSBpcyBjb25zaWRlcmVkIGFycmF5LWxpa2UgaWYgaXQnc1xuICogbm90IGEgZnVuY3Rpb24gYW5kIGhhcyBhIGB2YWx1ZS5sZW5ndGhgIHRoYXQncyBhbiBpbnRlZ2VyIGdyZWF0ZXIgdGhhbiBvclxuICogZXF1YWwgdG8gYDBgIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gYE51bWJlci5NQVhfU0FGRV9JTlRFR0VSYC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhcnJheS1saWtlLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNBcnJheUxpa2UoWzEsIDIsIDNdKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzQXJyYXlMaWtlKGRvY3VtZW50LmJvZHkuY2hpbGRyZW4pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNBcnJheUxpa2UoJ2FiYycpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNBcnJheUxpa2UoXy5ub29wKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzQXJyYXlMaWtlKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSAhPSBudWxsICYmIGlzTGVuZ3RoKHZhbHVlLmxlbmd0aCkgJiYgIWlzRnVuY3Rpb24odmFsdWUpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBpc0FycmF5TGlrZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/isArrayLike.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/isBuffer.js": +/*!********************************************!*\ + !*** ./node_modules/lodash-es/isBuffer.js ***! + \********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_root.js */ \"./node_modules/lodash-es/_root.js\");\n/* harmony import */ var _stubFalse_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./stubFalse.js */ \"./node_modules/lodash-es/stubFalse.js\");\n\n\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? _root_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || _stubFalse_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isBuffer);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzQnVmZmVyLmpzLmpzIiwibWFwcGluZ3MiOiI7OztBQUE4QjtBQUNTOztBQUV2QztBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLDZCQUE2Qix1REFBVzs7QUFFeEM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDLHFEQUFTOztBQUUxQywrREFBZSxRQUFRLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc0J1ZmZlci5qcz8yMDQwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCByb290IGZyb20gJy4vX3Jvb3QuanMnO1xuaW1wb3J0IHN0dWJGYWxzZSBmcm9tICcuL3N0dWJGYWxzZS5qcyc7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgZXhwb3J0c2AuICovXG52YXIgZnJlZUV4cG9ydHMgPSB0eXBlb2YgZXhwb3J0cyA9PSAnb2JqZWN0JyAmJiBleHBvcnRzICYmICFleHBvcnRzLm5vZGVUeXBlICYmIGV4cG9ydHM7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgbW9kdWxlYC4gKi9cbnZhciBmcmVlTW9kdWxlID0gZnJlZUV4cG9ydHMgJiYgdHlwZW9mIG1vZHVsZSA9PSAnb2JqZWN0JyAmJiBtb2R1bGUgJiYgIW1vZHVsZS5ub2RlVHlwZSAmJiBtb2R1bGU7XG5cbi8qKiBEZXRlY3QgdGhlIHBvcHVsYXIgQ29tbW9uSlMgZXh0ZW5zaW9uIGBtb2R1bGUuZXhwb3J0c2AuICovXG52YXIgbW9kdWxlRXhwb3J0cyA9IGZyZWVNb2R1bGUgJiYgZnJlZU1vZHVsZS5leHBvcnRzID09PSBmcmVlRXhwb3J0cztcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgQnVmZmVyID0gbW9kdWxlRXhwb3J0cyA/IHJvb3QuQnVmZmVyIDogdW5kZWZpbmVkO1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlSXNCdWZmZXIgPSBCdWZmZXIgPyBCdWZmZXIuaXNCdWZmZXIgOiB1bmRlZmluZWQ7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSBidWZmZXIuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjMuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBidWZmZXIsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0J1ZmZlcihuZXcgQnVmZmVyKDIpKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzQnVmZmVyKG5ldyBVaW50OEFycmF5KDIpKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbnZhciBpc0J1ZmZlciA9IG5hdGl2ZUlzQnVmZmVyIHx8IHN0dWJGYWxzZTtcblxuZXhwb3J0IGRlZmF1bHQgaXNCdWZmZXI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/isBuffer.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/isFunction.js": +/*!**********************************************!*\ + !*** ./node_modules/lodash-es/isFunction.js ***! + \**********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseGetTag_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_baseGetTag.js */ \"./node_modules/lodash-es/_baseGetTag.js\");\n/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isObject.js */ \"./node_modules/lodash-es/isObject.js\");\n\n\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!(0,_isObject_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = (0,_baseGetTag_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isFunction);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzRnVuY3Rpb24uanMuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQTBDO0FBQ0w7O0FBRXJDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyx3REFBUTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSwwREFBVTtBQUN0QjtBQUNBOztBQUVBLCtEQUFlLFVBQVUsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzRnVuY3Rpb24uanM/ODAyYiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYmFzZUdldFRhZyBmcm9tICcuL19iYXNlR2V0VGFnLmpzJztcbmltcG9ydCBpc09iamVjdCBmcm9tICcuL2lzT2JqZWN0LmpzJztcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIGFzeW5jVGFnID0gJ1tvYmplY3QgQXN5bmNGdW5jdGlvbl0nLFxuICAgIGZ1bmNUYWcgPSAnW29iamVjdCBGdW5jdGlvbl0nLFxuICAgIGdlblRhZyA9ICdbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXScsXG4gICAgcHJveHlUYWcgPSAnW29iamVjdCBQcm94eV0nO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgRnVuY3Rpb25gIG9iamVjdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIGZ1bmN0aW9uLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNGdW5jdGlvbihfKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzRnVuY3Rpb24oL2FiYy8pO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNGdW5jdGlvbih2YWx1ZSkge1xuICBpZiAoIWlzT2JqZWN0KHZhbHVlKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICAvLyBUaGUgdXNlIG9mIGBPYmplY3QjdG9TdHJpbmdgIGF2b2lkcyBpc3N1ZXMgd2l0aCB0aGUgYHR5cGVvZmAgb3BlcmF0b3JcbiAgLy8gaW4gU2FmYXJpIDkgd2hpY2ggcmV0dXJucyAnb2JqZWN0JyBmb3IgdHlwZWQgYXJyYXlzIGFuZCBvdGhlciBjb25zdHJ1Y3RvcnMuXG4gIHZhciB0YWcgPSBiYXNlR2V0VGFnKHZhbHVlKTtcbiAgcmV0dXJuIHRhZyA9PSBmdW5jVGFnIHx8IHRhZyA9PSBnZW5UYWcgfHwgdGFnID09IGFzeW5jVGFnIHx8IHRhZyA9PSBwcm94eVRhZztcbn1cblxuZXhwb3J0IGRlZmF1bHQgaXNGdW5jdGlvbjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/isFunction.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/isLength.js": +/*!********************************************!*\ + !*** ./node_modules/lodash-es/isLength.js ***! + \********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isLength);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzTGVuZ3RoLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2QsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxRQUFRLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc0xlbmd0aC5qcz9iZTk2Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBVc2VkIGFzIHJlZmVyZW5jZXMgZm9yIHZhcmlvdXMgYE51bWJlcmAgY29uc3RhbnRzLiAqL1xudmFyIE1BWF9TQUZFX0lOVEVHRVIgPSA5MDA3MTk5MjU0NzQwOTkxO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGEgdmFsaWQgYXJyYXktbGlrZSBsZW5ndGguXG4gKlxuICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGlzIGxvb3NlbHkgYmFzZWQgb25cbiAqIFtgVG9MZW5ndGhgXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy10b2xlbmd0aCkuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSB2YWxpZCBsZW5ndGgsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0xlbmd0aCgzKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzTGVuZ3RoKE51bWJlci5NSU5fVkFMVUUpO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmlzTGVuZ3RoKEluZmluaXR5KTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc0xlbmd0aCgnMycpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNMZW5ndGgodmFsdWUpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSAnbnVtYmVyJyAmJlxuICAgIHZhbHVlID4gLTEgJiYgdmFsdWUgJSAxID09IDAgJiYgdmFsdWUgPD0gTUFYX1NBRkVfSU5URUdFUjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgaXNMZW5ndGg7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/isLength.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/isMap.js": +/*!*****************************************!*\ + !*** ./node_modules/lodash-es/isMap.js ***! + \*****************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseIsMap_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_baseIsMap.js */ \"./node_modules/lodash-es/_baseIsMap.js\");\n/* harmony import */ var _baseUnary_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_baseUnary.js */ \"./node_modules/lodash-es/_baseUnary.js\");\n/* harmony import */ var _nodeUtil_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_nodeUtil.js */ \"./node_modules/lodash-es/_nodeUtil.js\");\n\n\n\n\n/* Node.js helper references. */\nvar nodeIsMap = _nodeUtil_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] && _nodeUtil_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? (0,_baseUnary_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(nodeIsMap) : _baseIsMap_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isMap);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzTWFwLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBd0M7QUFDQTtBQUNGOztBQUV0QztBQUNBLGdCQUFnQixvREFBUSxJQUFJLDBEQUFjOztBQUUxQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLHlEQUFTLGNBQWMscURBQVM7O0FBRXhELCtEQUFlLEtBQUssRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzTWFwLmpzP2NiZjYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGJhc2VJc01hcCBmcm9tICcuL19iYXNlSXNNYXAuanMnO1xuaW1wb3J0IGJhc2VVbmFyeSBmcm9tICcuL19iYXNlVW5hcnkuanMnO1xuaW1wb3J0IG5vZGVVdGlsIGZyb20gJy4vX25vZGVVdGlsLmpzJztcblxuLyogTm9kZS5qcyBoZWxwZXIgcmVmZXJlbmNlcy4gKi9cbnZhciBub2RlSXNNYXAgPSBub2RlVXRpbCAmJiBub2RlVXRpbC5pc01hcDtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgYE1hcGAgb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4zLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgbWFwLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNNYXAobmV3IE1hcCk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc01hcChuZXcgV2Vha01hcCk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG52YXIgaXNNYXAgPSBub2RlSXNNYXAgPyBiYXNlVW5hcnkobm9kZUlzTWFwKSA6IGJhc2VJc01hcDtcblxuZXhwb3J0IGRlZmF1bHQgaXNNYXA7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/isMap.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/isObject.js": +/*!********************************************!*\ + !*** ./node_modules/lodash-es/isObject.js ***! + \********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isObject);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzT2JqZWN0LmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsUUFBUSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNPYmplY3QuanM/YWJlYSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIHRoZVxuICogW2xhbmd1YWdlIHR5cGVdKGh0dHA6Ly93d3cuZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1lY21hc2NyaXB0LWxhbmd1YWdlLXR5cGVzKVxuICogb2YgYE9iamVjdGAuIChlLmcuIGFycmF5cywgZnVuY3Rpb25zLCBvYmplY3RzLCByZWdleGVzLCBgbmV3IE51bWJlcigwKWAsIGFuZCBgbmV3IFN0cmluZygnJylgKVxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIG9iamVjdCwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzT2JqZWN0KHt9KTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0KFsxLCAyLCAzXSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdChfLm5vb3ApO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3QobnVsbCk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc09iamVjdCh2YWx1ZSkge1xuICB2YXIgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcbiAgcmV0dXJuIHZhbHVlICE9IG51bGwgJiYgKHR5cGUgPT0gJ29iamVjdCcgfHwgdHlwZSA9PSAnZnVuY3Rpb24nKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgaXNPYmplY3Q7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/isObject.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/isObjectLike.js": +/*!************************************************!*\ + !*** ./node_modules/lodash-es/isObjectLike.js ***! + \************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isObjectLike);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzT2JqZWN0TGlrZS5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsWUFBWSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNPYmplY3RMaWtlLmpzP2NhY2EiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBvYmplY3QtbGlrZS4gQSB2YWx1ZSBpcyBvYmplY3QtbGlrZSBpZiBpdCdzIG5vdCBgbnVsbGBcbiAqIGFuZCBoYXMgYSBgdHlwZW9mYCByZXN1bHQgb2YgXCJvYmplY3RcIi5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBvYmplY3QtbGlrZSwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZSh7fSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdExpa2UoWzEsIDIsIDNdKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZShfLm5vb3ApO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZShudWxsKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzT2JqZWN0TGlrZSh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgIT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT0gJ29iamVjdCc7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzT2JqZWN0TGlrZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/isObjectLike.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/isPlainObject.js": +/*!*************************************************!*\ + !*** ./node_modules/lodash-es/isPlainObject.js ***! + \*************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseGetTag_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_baseGetTag.js */ \"./node_modules/lodash-es/_baseGetTag.js\");\n/* harmony import */ var _getPrototype_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_getPrototype.js */ \"./node_modules/lodash-es/_getPrototype.js\");\n/* harmony import */ var _isObjectLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isObjectLike.js */ \"./node_modules/lodash-es/isObjectLike.js\");\n\n\n\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!(0,_isObjectLike_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value) || (0,_baseGetTag_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value) != objectTag) {\n return false;\n }\n var proto = (0,_getPrototype_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isPlainObject);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzUGxhaW5PYmplY3QuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUEwQztBQUNJO0FBQ0Q7O0FBRTdDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLGdCQUFnQjtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLDREQUFZLFdBQVcsMERBQVU7QUFDeEM7QUFDQTtBQUNBLGNBQWMsNERBQVk7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsYUFBYSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNQbGFpbk9iamVjdC5qcz9mNTg5Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBiYXNlR2V0VGFnIGZyb20gJy4vX2Jhc2VHZXRUYWcuanMnO1xuaW1wb3J0IGdldFByb3RvdHlwZSBmcm9tICcuL19nZXRQcm90b3R5cGUuanMnO1xuaW1wb3J0IGlzT2JqZWN0TGlrZSBmcm9tICcuL2lzT2JqZWN0TGlrZS5qcyc7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RUYWcgPSAnW29iamVjdCBPYmplY3RdJztcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIGZ1bmNQcm90byA9IEZ1bmN0aW9uLnByb3RvdHlwZSxcbiAgICBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIHJlc29sdmUgdGhlIGRlY29tcGlsZWQgc291cmNlIG9mIGZ1bmN0aW9ucy4gKi9cbnZhciBmdW5jVG9TdHJpbmcgPSBmdW5jUHJvdG8udG9TdHJpbmc7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKiBVc2VkIHRvIGluZmVyIHRoZSBgT2JqZWN0YCBjb25zdHJ1Y3Rvci4gKi9cbnZhciBvYmplY3RDdG9yU3RyaW5nID0gZnVuY1RvU3RyaW5nLmNhbGwoT2JqZWN0KTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIHBsYWluIG9iamVjdCwgdGhhdCBpcywgYW4gb2JqZWN0IGNyZWF0ZWQgYnkgdGhlXG4gKiBgT2JqZWN0YCBjb25zdHJ1Y3RvciBvciBvbmUgd2l0aCBhIGBbW1Byb3RvdHlwZV1dYCBvZiBgbnVsbGAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjguMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBwbGFpbiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogZnVuY3Rpb24gRm9vKCkge1xuICogICB0aGlzLmEgPSAxO1xuICogfVxuICpcbiAqIF8uaXNQbGFpbk9iamVjdChuZXcgRm9vKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc1BsYWluT2JqZWN0KFsxLCAyLCAzXSk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNQbGFpbk9iamVjdCh7ICd4JzogMCwgJ3knOiAwIH0pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNQbGFpbk9iamVjdChPYmplY3QuY3JlYXRlKG51bGwpKTtcbiAqIC8vID0+IHRydWVcbiAqL1xuZnVuY3Rpb24gaXNQbGFpbk9iamVjdCh2YWx1ZSkge1xuICBpZiAoIWlzT2JqZWN0TGlrZSh2YWx1ZSkgfHwgYmFzZUdldFRhZyh2YWx1ZSkgIT0gb2JqZWN0VGFnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHZhciBwcm90byA9IGdldFByb3RvdHlwZSh2YWx1ZSk7XG4gIGlmIChwcm90byA9PT0gbnVsbCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHZhciBDdG9yID0gaGFzT3duUHJvcGVydHkuY2FsbChwcm90bywgJ2NvbnN0cnVjdG9yJykgJiYgcHJvdG8uY29uc3RydWN0b3I7XG4gIHJldHVybiB0eXBlb2YgQ3RvciA9PSAnZnVuY3Rpb24nICYmIEN0b3IgaW5zdGFuY2VvZiBDdG9yICYmXG4gICAgZnVuY1RvU3RyaW5nLmNhbGwoQ3RvcikgPT0gb2JqZWN0Q3RvclN0cmluZztcbn1cblxuZXhwb3J0IGRlZmF1bHQgaXNQbGFpbk9iamVjdDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/isPlainObject.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/isSet.js": +/*!*****************************************!*\ + !*** ./node_modules/lodash-es/isSet.js ***! + \*****************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseIsSet_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_baseIsSet.js */ \"./node_modules/lodash-es/_baseIsSet.js\");\n/* harmony import */ var _baseUnary_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_baseUnary.js */ \"./node_modules/lodash-es/_baseUnary.js\");\n/* harmony import */ var _nodeUtil_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_nodeUtil.js */ \"./node_modules/lodash-es/_nodeUtil.js\");\n\n\n\n\n/* Node.js helper references. */\nvar nodeIsSet = _nodeUtil_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] && _nodeUtil_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? (0,_baseUnary_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(nodeIsSet) : _baseIsSet_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isSet);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzU2V0LmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBd0M7QUFDQTtBQUNGOztBQUV0QztBQUNBLGdCQUFnQixvREFBUSxJQUFJLDBEQUFjOztBQUUxQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLHlEQUFTLGNBQWMscURBQVM7O0FBRXhELCtEQUFlLEtBQUssRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzU2V0LmpzPzAyZWQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGJhc2VJc1NldCBmcm9tICcuL19iYXNlSXNTZXQuanMnO1xuaW1wb3J0IGJhc2VVbmFyeSBmcm9tICcuL19iYXNlVW5hcnkuanMnO1xuaW1wb3J0IG5vZGVVdGlsIGZyb20gJy4vX25vZGVVdGlsLmpzJztcblxuLyogTm9kZS5qcyBoZWxwZXIgcmVmZXJlbmNlcy4gKi9cbnZhciBub2RlSXNTZXQgPSBub2RlVXRpbCAmJiBub2RlVXRpbC5pc1NldDtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgYFNldGAgb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4zLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgc2V0LCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNTZXQobmV3IFNldCk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc1NldChuZXcgV2Vha1NldCk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG52YXIgaXNTZXQgPSBub2RlSXNTZXQgPyBiYXNlVW5hcnkobm9kZUlzU2V0KSA6IGJhc2VJc1NldDtcblxuZXhwb3J0IGRlZmF1bHQgaXNTZXQ7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/isSet.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/isSymbol.js": +/*!********************************************!*\ + !*** ./node_modules/lodash-es/isSymbol.js ***! + \********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseGetTag_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_baseGetTag.js */ \"./node_modules/lodash-es/_baseGetTag.js\");\n/* harmony import */ var _isObjectLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isObjectLike.js */ \"./node_modules/lodash-es/isObjectLike.js\");\n\n\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n ((0,_isObjectLike_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value) && (0,_baseGetTag_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value) == symbolTag);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isSymbol);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzU3ltYm9sLmpzLmpzIiwibWFwcGluZ3MiOiI7OztBQUEwQztBQUNHOztBQUU3QztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2QsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSyw0REFBWSxXQUFXLDBEQUFVO0FBQ3RDOztBQUVBLCtEQUFlLFFBQVEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzU3ltYm9sLmpzP2E0OTkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGJhc2VHZXRUYWcgZnJvbSAnLi9fYmFzZUdldFRhZy5qcyc7XG5pbXBvcnQgaXNPYmplY3RMaWtlIGZyb20gJy4vaXNPYmplY3RMaWtlLmpzJztcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIHN5bWJvbFRhZyA9ICdbb2JqZWN0IFN5bWJvbF0nO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgU3ltYm9sYCBwcmltaXRpdmUgb3Igb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgc3ltYm9sLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNTeW1ib2woU3ltYm9sLml0ZXJhdG9yKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzU3ltYm9sKCdhYmMnKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzU3ltYm9sKHZhbHVlKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gJ3N5bWJvbCcgfHxcbiAgICAoaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBiYXNlR2V0VGFnKHZhbHVlKSA9PSBzeW1ib2xUYWcpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBpc1N5bWJvbDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/isSymbol.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/isTypedArray.js": +/*!************************************************!*\ + !*** ./node_modules/lodash-es/isTypedArray.js ***! + \************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseIsTypedArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_baseIsTypedArray.js */ \"./node_modules/lodash-es/_baseIsTypedArray.js\");\n/* harmony import */ var _baseUnary_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_baseUnary.js */ \"./node_modules/lodash-es/_baseUnary.js\");\n/* harmony import */ var _nodeUtil_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_nodeUtil.js */ \"./node_modules/lodash-es/_nodeUtil.js\");\n\n\n\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = _nodeUtil_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] && _nodeUtil_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? (0,_baseUnary_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(nodeIsTypedArray) : _baseIsTypedArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isTypedArray);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzVHlwZWRBcnJheS5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQXNEO0FBQ2Q7QUFDRjs7QUFFdEM7QUFDQSx1QkFBdUIsb0RBQVEsSUFBSSxpRUFBcUI7O0FBRXhEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2QsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQ0FBc0MseURBQVMscUJBQXFCLDREQUFnQjs7QUFFcEYsK0RBQWUsWUFBWSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNUeXBlZEFycmF5LmpzPzZmZTMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGJhc2VJc1R5cGVkQXJyYXkgZnJvbSAnLi9fYmFzZUlzVHlwZWRBcnJheS5qcyc7XG5pbXBvcnQgYmFzZVVuYXJ5IGZyb20gJy4vX2Jhc2VVbmFyeS5qcyc7XG5pbXBvcnQgbm9kZVV0aWwgZnJvbSAnLi9fbm9kZVV0aWwuanMnO1xuXG4vKiBOb2RlLmpzIGhlbHBlciByZWZlcmVuY2VzLiAqL1xudmFyIG5vZGVJc1R5cGVkQXJyYXkgPSBub2RlVXRpbCAmJiBub2RlVXRpbC5pc1R5cGVkQXJyYXk7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIHR5cGVkIGFycmF5LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMy4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgdHlwZWQgYXJyYXksIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc1R5cGVkQXJyYXkobmV3IFVpbnQ4QXJyYXkpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNUeXBlZEFycmF5KFtdKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbnZhciBpc1R5cGVkQXJyYXkgPSBub2RlSXNUeXBlZEFycmF5ID8gYmFzZVVuYXJ5KG5vZGVJc1R5cGVkQXJyYXkpIDogYmFzZUlzVHlwZWRBcnJheTtcblxuZXhwb3J0IGRlZmF1bHQgaXNUeXBlZEFycmF5O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/isTypedArray.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/keys.js": +/*!****************************************!*\ + !*** ./node_modules/lodash-es/keys.js ***! + \****************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _arrayLikeKeys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_arrayLikeKeys.js */ \"./node_modules/lodash-es/_arrayLikeKeys.js\");\n/* harmony import */ var _baseKeys_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_baseKeys.js */ \"./node_modules/lodash-es/_baseKeys.js\");\n/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isArrayLike.js */ \"./node_modules/lodash-es/isArrayLike.js\");\n\n\n\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return (0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object) ? (0,_arrayLikeKeys_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(object) : (0,_baseKeys_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(object);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (keys);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2tleXMuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFnRDtBQUNWO0FBQ0s7O0FBRTNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsYUFBYSxPQUFPO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUywyREFBVyxXQUFXLDZEQUFhLFdBQVcsd0RBQVE7QUFDL0Q7O0FBRUEsK0RBQWUsSUFBSSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMva2V5cy5qcz8yNmMwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhcnJheUxpa2VLZXlzIGZyb20gJy4vX2FycmF5TGlrZUtleXMuanMnO1xuaW1wb3J0IGJhc2VLZXlzIGZyb20gJy4vX2Jhc2VLZXlzLmpzJztcbmltcG9ydCBpc0FycmF5TGlrZSBmcm9tICcuL2lzQXJyYXlMaWtlLmpzJztcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IG9mIHRoZSBvd24gZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBvZiBgb2JqZWN0YC5cbiAqXG4gKiAqKk5vdGU6KiogTm9uLW9iamVjdCB2YWx1ZXMgYXJlIGNvZXJjZWQgdG8gb2JqZWN0cy4gU2VlIHRoZVxuICogW0VTIHNwZWNdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLW9iamVjdC5rZXlzKVxuICogZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBAc3RhdGljXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgT2JqZWN0XG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICogQGV4YW1wbGVcbiAqXG4gKiBmdW5jdGlvbiBGb28oKSB7XG4gKiAgIHRoaXMuYSA9IDE7XG4gKiAgIHRoaXMuYiA9IDI7XG4gKiB9XG4gKlxuICogRm9vLnByb3RvdHlwZS5jID0gMztcbiAqXG4gKiBfLmtleXMobmV3IEZvbyk7XG4gKiAvLyA9PiBbJ2EnLCAnYiddIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gKlxuICogXy5rZXlzKCdoaScpO1xuICogLy8gPT4gWycwJywgJzEnXVxuICovXG5mdW5jdGlvbiBrZXlzKG9iamVjdCkge1xuICByZXR1cm4gaXNBcnJheUxpa2Uob2JqZWN0KSA/IGFycmF5TGlrZUtleXMob2JqZWN0KSA6IGJhc2VLZXlzKG9iamVjdCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGtleXM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/keys.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/keysIn.js": +/*!******************************************!*\ + !*** ./node_modules/lodash-es/keysIn.js ***! + \******************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _arrayLikeKeys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_arrayLikeKeys.js */ \"./node_modules/lodash-es/_arrayLikeKeys.js\");\n/* harmony import */ var _baseKeysIn_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_baseKeysIn.js */ \"./node_modules/lodash-es/_baseKeysIn.js\");\n/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isArrayLike.js */ \"./node_modules/lodash-es/isArrayLike.js\");\n\n\n\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return (0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object) ? (0,_arrayLikeKeys_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(object, true) : (0,_baseKeysIn_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(object);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (keysIn);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2tleXNJbi5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQWdEO0FBQ047QUFDQzs7QUFFM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsT0FBTztBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVMsMkRBQVcsV0FBVyw2REFBYSxpQkFBaUIsMERBQVU7QUFDdkU7O0FBRUEsK0RBQWUsTUFBTSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMva2V5c0luLmpzPzFmYjgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFycmF5TGlrZUtleXMgZnJvbSAnLi9fYXJyYXlMaWtlS2V5cy5qcyc7XG5pbXBvcnQgYmFzZUtleXNJbiBmcm9tICcuL19iYXNlS2V5c0luLmpzJztcbmltcG9ydCBpc0FycmF5TGlrZSBmcm9tICcuL2lzQXJyYXlMaWtlLmpzJztcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IG9mIHRoZSBvd24gYW5kIGluaGVyaXRlZCBlbnVtZXJhYmxlIHByb3BlcnR5IG5hbWVzIG9mIGBvYmplY3RgLlxuICpcbiAqICoqTm90ZToqKiBOb24tb2JqZWN0IHZhbHVlcyBhcmUgY29lcmNlZCB0byBvYmplY3RzLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMy4wLjBcbiAqIEBjYXRlZ29yeSBPYmplY3RcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMuXG4gKiBAZXhhbXBsZVxuICpcbiAqIGZ1bmN0aW9uIEZvbygpIHtcbiAqICAgdGhpcy5hID0gMTtcbiAqICAgdGhpcy5iID0gMjtcbiAqIH1cbiAqXG4gKiBGb28ucHJvdG90eXBlLmMgPSAzO1xuICpcbiAqIF8ua2V5c0luKG5ldyBGb28pO1xuICogLy8gPT4gWydhJywgJ2InLCAnYyddIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gKi9cbmZ1bmN0aW9uIGtleXNJbihvYmplY3QpIHtcbiAgcmV0dXJuIGlzQXJyYXlMaWtlKG9iamVjdCkgPyBhcnJheUxpa2VLZXlzKG9iamVjdCwgdHJ1ZSkgOiBiYXNlS2V5c0luKG9iamVjdCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGtleXNJbjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/keysIn.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/memoize.js": +/*!*******************************************!*\ + !*** ./node_modules/lodash-es/memoize.js ***! + \*******************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _MapCache_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_MapCache.js */ \"./node_modules/lodash-es/_MapCache.js\");\n\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || _MapCache_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = _MapCache_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (memoize);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL21lbW9pemUuanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBc0M7O0FBRXRDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsVUFBVTtBQUNyQixXQUFXLFVBQVU7QUFDckIsYUFBYSxVQUFVO0FBQ3ZCO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEIsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUNBQXlDLG9EQUFRO0FBQ2pEO0FBQ0E7O0FBRUE7QUFDQSxnQkFBZ0Isb0RBQVE7O0FBRXhCLCtEQUFlLE9BQU8sRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL21lbW9pemUuanM/ODIwNSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTWFwQ2FjaGUgZnJvbSAnLi9fTWFwQ2FjaGUuanMnO1xuXG4vKiogRXJyb3IgbWVzc2FnZSBjb25zdGFudHMuICovXG52YXIgRlVOQ19FUlJPUl9URVhUID0gJ0V4cGVjdGVkIGEgZnVuY3Rpb24nO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IG1lbW9pemVzIHRoZSByZXN1bHQgb2YgYGZ1bmNgLiBJZiBgcmVzb2x2ZXJgIGlzXG4gKiBwcm92aWRlZCwgaXQgZGV0ZXJtaW5lcyB0aGUgY2FjaGUga2V5IGZvciBzdG9yaW5nIHRoZSByZXN1bHQgYmFzZWQgb24gdGhlXG4gKiBhcmd1bWVudHMgcHJvdmlkZWQgdG8gdGhlIG1lbW9pemVkIGZ1bmN0aW9uLiBCeSBkZWZhdWx0LCB0aGUgZmlyc3QgYXJndW1lbnRcbiAqIHByb3ZpZGVkIHRvIHRoZSBtZW1vaXplZCBmdW5jdGlvbiBpcyB1c2VkIGFzIHRoZSBtYXAgY2FjaGUga2V5LiBUaGUgYGZ1bmNgXG4gKiBpcyBpbnZva2VkIHdpdGggdGhlIGB0aGlzYCBiaW5kaW5nIG9mIHRoZSBtZW1vaXplZCBmdW5jdGlvbi5cbiAqXG4gKiAqKk5vdGU6KiogVGhlIGNhY2hlIGlzIGV4cG9zZWQgYXMgdGhlIGBjYWNoZWAgcHJvcGVydHkgb24gdGhlIG1lbW9pemVkXG4gKiBmdW5jdGlvbi4gSXRzIGNyZWF0aW9uIG1heSBiZSBjdXN0b21pemVkIGJ5IHJlcGxhY2luZyB0aGUgYF8ubWVtb2l6ZS5DYWNoZWBcbiAqIGNvbnN0cnVjdG9yIHdpdGggb25lIHdob3NlIGluc3RhbmNlcyBpbXBsZW1lbnQgdGhlXG4gKiBbYE1hcGBdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXByb3BlcnRpZXMtb2YtdGhlLW1hcC1wcm90b3R5cGUtb2JqZWN0KVxuICogbWV0aG9kIGludGVyZmFjZSBvZiBgY2xlYXJgLCBgZGVsZXRlYCwgYGdldGAsIGBoYXNgLCBhbmQgYHNldGAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBoYXZlIGl0cyBvdXRwdXQgbWVtb2l6ZWQuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbcmVzb2x2ZXJdIFRoZSBmdW5jdGlvbiB0byByZXNvbHZlIHRoZSBjYWNoZSBrZXkuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBtZW1vaXplZCBmdW5jdGlvbi5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdCA9IHsgJ2EnOiAxLCAnYic6IDIgfTtcbiAqIHZhciBvdGhlciA9IHsgJ2MnOiAzLCAnZCc6IDQgfTtcbiAqXG4gKiB2YXIgdmFsdWVzID0gXy5tZW1vaXplKF8udmFsdWVzKTtcbiAqIHZhbHVlcyhvYmplY3QpO1xuICogLy8gPT4gWzEsIDJdXG4gKlxuICogdmFsdWVzKG90aGVyKTtcbiAqIC8vID0+IFszLCA0XVxuICpcbiAqIG9iamVjdC5hID0gMjtcbiAqIHZhbHVlcyhvYmplY3QpO1xuICogLy8gPT4gWzEsIDJdXG4gKlxuICogLy8gTW9kaWZ5IHRoZSByZXN1bHQgY2FjaGUuXG4gKiB2YWx1ZXMuY2FjaGUuc2V0KG9iamVjdCwgWydhJywgJ2InXSk7XG4gKiB2YWx1ZXMob2JqZWN0KTtcbiAqIC8vID0+IFsnYScsICdiJ11cbiAqXG4gKiAvLyBSZXBsYWNlIGBfLm1lbW9pemUuQ2FjaGVgLlxuICogXy5tZW1vaXplLkNhY2hlID0gV2Vha01hcDtcbiAqL1xuZnVuY3Rpb24gbWVtb2l6ZShmdW5jLCByZXNvbHZlcikge1xuICBpZiAodHlwZW9mIGZ1bmMgIT0gJ2Z1bmN0aW9uJyB8fCAocmVzb2x2ZXIgIT0gbnVsbCAmJiB0eXBlb2YgcmVzb2x2ZXIgIT0gJ2Z1bmN0aW9uJykpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEZVTkNfRVJST1JfVEVYVCk7XG4gIH1cbiAgdmFyIG1lbW9pemVkID0gZnVuY3Rpb24oKSB7XG4gICAgdmFyIGFyZ3MgPSBhcmd1bWVudHMsXG4gICAgICAgIGtleSA9IHJlc29sdmVyID8gcmVzb2x2ZXIuYXBwbHkodGhpcywgYXJncykgOiBhcmdzWzBdLFxuICAgICAgICBjYWNoZSA9IG1lbW9pemVkLmNhY2hlO1xuXG4gICAgaWYgKGNhY2hlLmhhcyhrZXkpKSB7XG4gICAgICByZXR1cm4gY2FjaGUuZ2V0KGtleSk7XG4gICAgfVxuICAgIHZhciByZXN1bHQgPSBmdW5jLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgIG1lbW9pemVkLmNhY2hlID0gY2FjaGUuc2V0KGtleSwgcmVzdWx0KSB8fCBjYWNoZTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9O1xuICBtZW1vaXplZC5jYWNoZSA9IG5ldyAobWVtb2l6ZS5DYWNoZSB8fCBNYXBDYWNoZSk7XG4gIHJldHVybiBtZW1vaXplZDtcbn1cblxuLy8gRXhwb3NlIGBNYXBDYWNoZWAuXG5tZW1vaXplLkNhY2hlID0gTWFwQ2FjaGU7XG5cbmV4cG9ydCBkZWZhdWx0IG1lbW9pemU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/memoize.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/stubArray.js": +/*!*********************************************!*\ + !*** ./node_modules/lodash-es/stubArray.js ***! + \*********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (stubArray);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3N0dWJBcnJheS5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLE9BQU87QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsU0FBUyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvc3R1YkFycmF5LmpzP2VlYTEiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlzIG1ldGhvZCByZXR1cm5zIGEgbmV3IGVtcHR5IGFycmF5LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4xMy4wXG4gKiBAY2F0ZWdvcnkgVXRpbFxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZW1wdHkgYXJyYXkuXG4gKiBAZXhhbXBsZVxuICpcbiAqIHZhciBhcnJheXMgPSBfLnRpbWVzKDIsIF8uc3R1YkFycmF5KTtcbiAqXG4gKiBjb25zb2xlLmxvZyhhcnJheXMpO1xuICogLy8gPT4gW1tdLCBbXV1cbiAqXG4gKiBjb25zb2xlLmxvZyhhcnJheXNbMF0gPT09IGFycmF5c1sxXSk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBzdHViQXJyYXkoKSB7XG4gIHJldHVybiBbXTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgc3R1YkFycmF5O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/stubArray.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/stubFalse.js": +/*!*********************************************!*\ + !*** ./node_modules/lodash-es/stubFalse.js ***! + \*********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (stubFalse);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3N0dWJGYWxzZS5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxTQUFTLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9zdHViRmFsc2UuanM/MGU3ZiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoaXMgbWV0aG9kIHJldHVybnMgYGZhbHNlYC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMTMuMFxuICogQGNhdGVnb3J5IFV0aWxcbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8udGltZXMoMiwgXy5zdHViRmFsc2UpO1xuICogLy8gPT4gW2ZhbHNlLCBmYWxzZV1cbiAqL1xuZnVuY3Rpb24gc3R1YkZhbHNlKCkge1xuICByZXR1cm4gZmFsc2U7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHN0dWJGYWxzZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/stubFalse.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/toPath.js": +/*!******************************************!*\ + !*** ./node_modules/lodash-es/toPath.js ***! + \******************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _arrayMap_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_arrayMap.js */ \"./node_modules/lodash-es/_arrayMap.js\");\n/* harmony import */ var _copyArray_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_copyArray.js */ \"./node_modules/lodash-es/_copyArray.js\");\n/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isArray.js */ \"./node_modules/lodash-es/isArray.js\");\n/* harmony import */ var _isSymbol_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./isSymbol.js */ \"./node_modules/lodash-es/isSymbol.js\");\n/* harmony import */ var _stringToPath_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./_stringToPath.js */ \"./node_modules/lodash-es/_stringToPath.js\");\n/* harmony import */ var _toKey_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_toKey.js */ \"./node_modules/lodash-es/_toKey.js\");\n/* harmony import */ var _toString_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./toString.js */ \"./node_modules/lodash-es/toString.js\");\n\n\n\n\n\n\n\n\n/**\n * Converts `value` to a property path array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {*} value The value to convert.\n * @returns {Array} Returns the new property path array.\n * @example\n *\n * _.toPath('a.b.c');\n * // => ['a', 'b', 'c']\n *\n * _.toPath('a[0].b.c');\n * // => ['a', '0', 'b', 'c']\n */\nfunction toPath(value) {\n if ((0,_isArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value)) {\n return (0,_arrayMap_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value, _toKey_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n }\n return (0,_isSymbol_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(value) ? [value] : (0,_copyArray_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])((0,_stringToPath_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])((0,_toString_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(value)));\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (toPath);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3RvUGF0aC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFzQztBQUNFO0FBQ0w7QUFDRTtBQUNTO0FBQ2Q7QUFDSzs7QUFFckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxhQUFhLE9BQU87QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSx1REFBTztBQUNiLFdBQVcsd0RBQVEsUUFBUSxpREFBSztBQUNoQztBQUNBLFNBQVMsd0RBQVEsb0JBQW9CLHlEQUFTLENBQUMsNERBQVksQ0FBQyx3REFBUTtBQUNwRTs7QUFFQSwrREFBZSxNQUFNLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy90b1BhdGguanM/YjAyZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXJyYXlNYXAgZnJvbSAnLi9fYXJyYXlNYXAuanMnO1xuaW1wb3J0IGNvcHlBcnJheSBmcm9tICcuL19jb3B5QXJyYXkuanMnO1xuaW1wb3J0IGlzQXJyYXkgZnJvbSAnLi9pc0FycmF5LmpzJztcbmltcG9ydCBpc1N5bWJvbCBmcm9tICcuL2lzU3ltYm9sLmpzJztcbmltcG9ydCBzdHJpbmdUb1BhdGggZnJvbSAnLi9fc3RyaW5nVG9QYXRoLmpzJztcbmltcG9ydCB0b0tleSBmcm9tICcuL190b0tleS5qcyc7XG5pbXBvcnQgdG9TdHJpbmcgZnJvbSAnLi90b1N0cmluZy5qcyc7XG5cbi8qKlxuICogQ29udmVydHMgYHZhbHVlYCB0byBhIHByb3BlcnR5IHBhdGggYXJyYXkuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IFV0aWxcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBwcm9wZXJ0eSBwYXRoIGFycmF5LlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLnRvUGF0aCgnYS5iLmMnKTtcbiAqIC8vID0+IFsnYScsICdiJywgJ2MnXVxuICpcbiAqIF8udG9QYXRoKCdhWzBdLmIuYycpO1xuICogLy8gPT4gWydhJywgJzAnLCAnYicsICdjJ11cbiAqL1xuZnVuY3Rpb24gdG9QYXRoKHZhbHVlKSB7XG4gIGlmIChpc0FycmF5KHZhbHVlKSkge1xuICAgIHJldHVybiBhcnJheU1hcCh2YWx1ZSwgdG9LZXkpO1xuICB9XG4gIHJldHVybiBpc1N5bWJvbCh2YWx1ZSkgPyBbdmFsdWVdIDogY29weUFycmF5KHN0cmluZ1RvUGF0aCh0b1N0cmluZyh2YWx1ZSkpKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgdG9QYXRoO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/toPath.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/toString.js": +/*!********************************************!*\ + !*** ./node_modules/lodash-es/toString.js ***! + \********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseToString_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseToString.js */ \"./node_modules/lodash-es/_baseToString.js\");\n\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : (0,_baseToString_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (toString);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3RvU3RyaW5nLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQThDOztBQUU5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2QsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4Qiw0REFBWTtBQUMxQzs7QUFFQSwrREFBZSxRQUFRLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy90b1N0cmluZy5qcz81OTEzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBiYXNlVG9TdHJpbmcgZnJvbSAnLi9fYmFzZVRvU3RyaW5nLmpzJztcblxuLyoqXG4gKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGEgc3RyaW5nLiBBbiBlbXB0eSBzdHJpbmcgaXMgcmV0dXJuZWQgZm9yIGBudWxsYFxuICogYW5kIGB1bmRlZmluZWRgIHZhbHVlcy4gVGhlIHNpZ24gb2YgYC0wYCBpcyBwcmVzZXJ2ZWQuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgc3RyaW5nLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLnRvU3RyaW5nKG51bGwpO1xuICogLy8gPT4gJydcbiAqXG4gKiBfLnRvU3RyaW5nKC0wKTtcbiAqIC8vID0+ICctMCdcbiAqXG4gKiBfLnRvU3RyaW5nKFsxLCAyLCAzXSk7XG4gKiAvLyA9PiAnMSwyLDMnXG4gKi9cbmZ1bmN0aW9uIHRvU3RyaW5nKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSA9PSBudWxsID8gJycgOiBiYXNlVG9TdHJpbmcodmFsdWUpO1xufVxuXG5leHBvcnQgZGVmYXVsdCB0b1N0cmluZztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/toString.js\n"); + +/***/ }), + +/***/ "./src/data/blog3.json": +/*!*****************************!*\ + !*** ./src/data/blog3.json ***! + \*****************************/ +/***/ (function(module) { + +"use strict"; +module.exports = JSON.parse('[{"id":1,"title":"How to use solid color combine with simple furnitures.","image":"/img/blog/b1.jpg","tags":["WordPress","Themeforest","Vie"],"date":{"day":"07","month":"August"}},{"id":2,"title":"How to use solid color combine with simple furnitures.","image":"/img/blog/b2.jpg","tags":["WordPress"],"date":{"day":"07","month":"August"}},{"id":3,"title":"How to use solid color combine with simple furnitures.","image":"/img/blog/b3.jpg","tags":["WordPress","Themeforest","Vie"],"date":{"day":"07","month":"August"}},{"id":4,"title":"How to use solid color combine with simple furnitures.","image":"/img/blog/b4.jpg","tags":["WordPress","Themeforest","Vie"],"date":{"day":"07","month":"August"}},{"id":5,"title":"How to use solid color combine with simple furnitures.","image":"/img/blog/b2.jpg","tags":["WordPress"],"date":{"day":"07","month":"August"}},{"id":6,"title":"How to use solid color combine with simple furnitures.","image":"/img/blog/b3.jpg","tags":["WordPress","Themeforest","Vie"],"date":{"day":"07","month":"August"}}]'); + +/***/ }) + +}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); } +/******/ __webpack_require__.O(0, ["pages/_app","main"], function() { return __webpack_exec__("./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2Fblog-details%2Fblog-details-1&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cblog-details%5Cblog-details-1.jsx!"); }); +/******/ var __webpack_exports__ = __webpack_require__.O(); +/******/ _N_E = __webpack_exports__; +/******/ } +]); \ No newline at end of file diff --git a/.next/static/chunks/pages/blog-details/blog-details-4.js b/.next/static/chunks/pages/blog-details/blog-details-4.js new file mode 100644 index 0000000..0d405e7 --- /dev/null +++ b/.next/static/chunks/pages/blog-details/blog-details-4.js @@ -0,0 +1,1807 @@ +/* + * 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/). + */ +(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["pages/blog-details/blog-details-4"],{ + +/***/ "./node_modules/next/dist/client/link.js": +/*!***********************************************!*\ + !*** ./node_modules/next/dist/client/link.js ***! + \***********************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _slicedToArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nvar _s = $RefreshSig$();\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _router = __webpack_require__(/*! ../shared/lib/router/router */ \"./node_modules/next/dist/shared/lib/router/router.js\");\n\nvar _router1 = __webpack_require__(/*! ./router */ \"./node_modules/next/dist/client/router.js\");\n\nvar _useIntersection = __webpack_require__(/*! ./use-intersection */ \"./node_modules/next/dist/client/use-intersection.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar prefetched = {};\n\nfunction prefetch(router, href, as, options) {\n if ( false || !router) return;\n if (!(0, _router).isLocalURL(href)) return; // Prefetch the JSON 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\n router.prefetch(href, as, options)[\"catch\"](function (err) {\n if (true) {\n // rethrow to show invalid URL errors\n throw err;\n }\n });\n var curLocale = options && typeof options.locale !== 'undefined' ? options.locale : router && router.locale; // Join on an invalid URI character\n\n prefetched[href + '%' + as + (curLocale ? '%' + curLocale : '')] = true;\n}\n\nfunction isModifiedEvent(event) {\n var target = event.currentTarget.target;\n return target && target !== '_self' || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey || event.nativeEvent && event.nativeEvent.which === 2;\n}\n\nfunction linkClicked(e, router, href, as, replace, shallow, scroll, locale) {\n var nodeName = e.currentTarget.nodeName;\n\n if (nodeName === 'A' && (isModifiedEvent(e) || !(0, _router).isLocalURL(href))) {\n // ignore click for browser’s default behavior\n return;\n }\n\n e.preventDefault(); // avoid scroll for urls with anchor refs\n\n if (scroll == null && as.indexOf('#') >= 0) {\n scroll = false;\n } // replace state instead of push if prop is present\n\n\n router[replace ? 'replace' : 'push'](href, as, {\n shallow: shallow,\n locale: locale,\n scroll: scroll\n });\n}\n\nfunction Link(props) {\n _s();\n\n if (true) {\n var createPropError = function createPropError(args) {\n return new Error(\"Failed prop type: The prop `\".concat(args.key, \"` expects a \").concat(args.expected, \" in `<Link>`, but got `\").concat(args.actual, \"` instead.\") + ( true ? \"\\nOpen your browser's console to view the Component stack trace.\" : 0));\n }; // TypeScript trick for type-guarding:\n\n\n var requiredPropsGuard = {\n href: true\n };\n var requiredProps = Object.keys(requiredPropsGuard);\n requiredProps.forEach(function (key) {\n if (key === 'href') {\n if (props[key] == null || typeof props[key] !== 'string' && typeof props[key] !== 'object') {\n throw createPropError({\n key: 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 var _ = key;\n }\n }); // TypeScript trick for type-guarding:\n\n var optionalPropsGuard = {\n as: true,\n replace: true,\n scroll: true,\n shallow: true,\n passHref: true,\n prefetch: true,\n locale: true\n };\n var optionalProps = Object.keys(optionalPropsGuard);\n optionalProps.forEach(function (key) {\n var valType = typeof props[key];\n\n if (key === 'as') {\n if (props[key] && valType !== 'string' && valType !== 'object') {\n throw createPropError({\n key: key,\n expected: '`string` or `object`',\n actual: valType\n });\n }\n } else if (key === 'locale') {\n if (props[key] && valType !== 'string') {\n throw createPropError({\n key: key,\n expected: '`string`',\n actual: valType\n });\n }\n } else if (key === 'replace' || key === 'scroll' || key === 'shallow' || key === 'passHref' || key === 'prefetch') {\n if (props[key] != null && valType !== 'boolean') {\n throw createPropError({\n key: key,\n expected: '`boolean`',\n actual: valType\n });\n }\n } else {\n // TypeScript trick for type-guarding:\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var _ = key;\n }\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\n var hasWarned = _react[\"default\"].useRef(false);\n\n if (props.prefetch && !hasWarned.current) {\n hasWarned.current = true;\n console.warn('Next.js auto-prefetches automatically based on viewport. The prefetch attribute is no longer needed. More: https://nextjs.org/docs/messages/prefetch-true-deprecated');\n }\n }\n\n var p = props.prefetch !== false;\n var router = (0, _router1).useRouter();\n\n var _react$default$useMem = _react[\"default\"].useMemo(function () {\n var _resolveHref = (0, _router).resolveHref(router, props.href, true),\n _resolveHref2 = _slicedToArray(_resolveHref, 2),\n resolvedHref = _resolveHref2[0],\n resolvedAs = _resolveHref2[1];\n\n return {\n href: resolvedHref,\n as: props.as ? (0, _router).resolveHref(router, props.as) : resolvedAs || resolvedHref\n };\n }, [router, props.href, props.as]),\n href = _react$default$useMem.href,\n as = _react$default$useMem.as;\n\n var children = props.children,\n replace = props.replace,\n shallow = props.shallow,\n scroll = props.scroll,\n locale = props.locale; // Deprecated. Warning shown by propType check. If the children provided is a string (<Link>example</Link>) we wrap it in an <a> tag\n\n if (typeof children === 'string') {\n children = /*#__PURE__*/_react[\"default\"].createElement(\"a\", null, children);\n } // This will return the first child, if multiple are provided it will throw an error\n\n\n var child;\n\n if (true) {\n try {\n child = _react[\"default\"].Children.only(children);\n } catch (err) {\n throw new Error(\"Multiple children were passed to <Link> with `href` of `\".concat(props.href, \"` but only one child is supported https://nextjs.org/docs/messages/link-multiple-children\") + ( true ? \" \\nOpen your browser's console to view the Component stack trace.\" : 0));\n }\n } else {}\n\n var childRef = child && typeof child === 'object' && child.ref;\n\n var _useIntersection2 = (0, _useIntersection).useIntersection({\n rootMargin: '200px'\n }),\n _useIntersection3 = _slicedToArray(_useIntersection2, 2),\n setIntersectionRef = _useIntersection3[0],\n isVisible = _useIntersection3[1];\n\n var setRef = _react[\"default\"].useCallback(function (el) {\n setIntersectionRef(el);\n\n if (childRef) {\n if (typeof childRef === 'function') childRef(el);else if (typeof childRef === 'object') {\n childRef.current = el;\n }\n }\n }, [childRef, setIntersectionRef]);\n\n _react[\"default\"].useEffect(function () {\n var shouldPrefetch = isVisible && p && (0, _router).isLocalURL(href);\n var curLocale = typeof locale !== 'undefined' ? locale : router && router.locale;\n var isPrefetched = prefetched[href + '%' + as + (curLocale ? '%' + curLocale : '')];\n\n if (shouldPrefetch && !isPrefetched) {\n prefetch(router, href, as, {\n locale: curLocale\n });\n }\n }, [as, href, isVisible, locale, p, router]);\n\n var childProps = {\n ref: setRef,\n onClick: function onClick(e) {\n if (child.props && typeof child.props.onClick === 'function') {\n child.props.onClick(e);\n }\n\n if (!e.defaultPrevented) {\n linkClicked(e, router, href, as, replace, shallow, scroll, locale);\n }\n }\n };\n\n childProps.onMouseEnter = function (e) {\n if (!(0, _router).isLocalURL(href)) return;\n\n if (child.props && typeof child.props.onMouseEnter === 'function') {\n child.props.onMouseEnter(e);\n }\n\n prefetch(router, href, as, {\n priority: true\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\n\n if (props.passHref || child.type === 'a' && !('href' in child.props)) {\n var curLocale = typeof locale !== 'undefined' ? locale : router && router.locale; // we only render domain locales if we are currently on a domain locale\n // so that locale links are still visitable in development/preview envs\n\n var localeDomain = router && router.isLocaleDomain && (0, _router).getDomainLocale(as, curLocale, router && router.locales, router && router.domainLocales);\n childProps.href = localeDomain || (0, _router).addBasePath((0, _router).addLocale(as, curLocale, router && router.defaultLocale));\n }\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(child, childProps);\n}\n\n_s(Link, \"PYHstBoZE4p1pf5wc1Vw4fTzvCU=\", true);\n\n_c = Link;\nvar _default = Link;\nexports[\"default\"] = _default;\n\nvar _c;\n\n$RefreshReg$(_c, \"Link\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9saW5rLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7Ozs7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELGtCQUFBLEdBQWtCLEtBQUssQ0FBdkI7O0FBQ0EsSUFBSUUsTUFBTSxHQUFHQyxzQkFBc0IsQ0FBQ0MsbUJBQU8sQ0FBQyw0Q0FBRCxDQUFSLENBQW5DOztBQUNBLElBQUlDLE9BQU8sR0FBR0QsbUJBQU8sQ0FBQyx5RkFBRCxDQUFyQjs7QUFDQSxJQUFJRSxRQUFRLEdBQUdGLG1CQUFPLENBQUMsMkRBQUQsQ0FBdEI7O0FBQ0EsSUFBSUcsZ0JBQWdCLEdBQUdILG1CQUFPLENBQUMsK0VBQUQsQ0FBOUI7O0FBQ0EsU0FBU0Qsc0JBQVQsQ0FBZ0NLLEdBQWhDLEVBQXFDO0FBQ2pDLFNBQU9BLEdBQUcsSUFBSUEsR0FBRyxDQUFDQyxVQUFYLEdBQXdCRCxHQUF4QixHQUE4QjtBQUNqQyxlQUFTQTtBQUR3QixHQUFyQztBQUdIOztBQUNELElBQU1FLFVBQVUsR0FBRyxFQUFuQjs7QUFFQSxTQUFTQyxRQUFULENBQWtCQyxNQUFsQixFQUEwQkMsSUFBMUIsRUFBZ0NDLEVBQWhDLEVBQW9DQyxPQUFwQyxFQUE2QztBQUN6QyxNQUFJLFVBQWlDLENBQUNILE1BQXRDLEVBQThDO0FBQzlDLE1BQUksQ0FBQyxDQUFDLEdBQUdQLE9BQUosRUFBYVcsVUFBYixDQUF3QkgsSUFBeEIsQ0FBTCxFQUFvQyxPQUZLLENBR3pDO0FBQ0E7QUFDQTtBQUNBOztBQUNBRCxFQUFBQSxNQUFNLENBQUNELFFBQVAsQ0FBZ0JFLElBQWhCLEVBQXNCQyxFQUF0QixFQUEwQkMsT0FBMUIsV0FBeUMsVUFBQ0UsR0FBRCxFQUFPO0FBQzVDLGNBQTJDO0FBQ3ZDO0FBQ0EsWUFBTUEsR0FBTjtBQUNIO0FBQ0osR0FMRDtBQU1BLE1BQU1DLFNBQVMsR0FBR0gsT0FBTyxJQUFJLE9BQU9BLE9BQU8sQ0FBQ0ksTUFBZixLQUEwQixXQUFyQyxHQUFtREosT0FBTyxDQUFDSSxNQUEzRCxHQUFvRVAsTUFBTSxJQUFJQSxNQUFNLENBQUNPLE1BQXZHLENBYnlDLENBY3pDOztBQUNBVCxFQUFBQSxVQUFVLENBQUNHLElBQUksR0FBRyxHQUFQLEdBQWFDLEVBQWIsSUFBbUJJLFNBQVMsR0FBRyxNQUFNQSxTQUFULEdBQXFCLEVBQWpELENBQUQsQ0FBVixHQUFtRSxJQUFuRTtBQUNIOztBQUNELFNBQVNFLGVBQVQsQ0FBeUJDLEtBQXpCLEVBQWdDO0FBQzVCLE1BQVFDLE1BQVIsR0FBb0JELEtBQUssQ0FBQ0UsYUFBMUIsQ0FBUUQsTUFBUjtBQUNBLFNBQU9BLE1BQU0sSUFBSUEsTUFBTSxLQUFLLE9BQXJCLElBQWdDRCxLQUFLLENBQUNHLE9BQXRDLElBQWlESCxLQUFLLENBQUNJLE9BQXZELElBQWtFSixLQUFLLENBQUNLLFFBQXhFLElBQW9GTCxLQUFLLENBQUNNLE1BQTFGLElBQW9HTixLQUFLLENBQUNPLFdBQU4sSUFBcUJQLEtBQUssQ0FBQ08sV0FBTixDQUFrQkMsS0FBbEIsS0FBNEIsQ0FBNUo7QUFDSDs7QUFDRCxTQUFTQyxXQUFULENBQXFCQyxDQUFyQixFQUF3Qm5CLE1BQXhCLEVBQWdDQyxJQUFoQyxFQUFzQ0MsRUFBdEMsRUFBMENrQixPQUExQyxFQUFtREMsT0FBbkQsRUFBNERDLE1BQTVELEVBQW9FZixNQUFwRSxFQUE0RTtBQUN4RSxNQUFRZ0IsUUFBUixHQUFzQkosQ0FBQyxDQUFDUixhQUF4QixDQUFRWSxRQUFSOztBQUNBLE1BQUlBLFFBQVEsS0FBSyxHQUFiLEtBQXFCZixlQUFlLENBQUNXLENBQUQsQ0FBZixJQUFzQixDQUFDLENBQUMsR0FBRzFCLE9BQUosRUFBYVcsVUFBYixDQUF3QkgsSUFBeEIsQ0FBNUMsQ0FBSixFQUFnRjtBQUM1RTtBQUNBO0FBQ0g7O0FBQ0RrQixFQUFBQSxDQUFDLENBQUNLLGNBQUYsR0FOd0UsQ0FPeEU7O0FBQ0EsTUFBSUYsTUFBTSxJQUFJLElBQVYsSUFBa0JwQixFQUFFLENBQUN1QixPQUFILENBQVcsR0FBWCxLQUFtQixDQUF6QyxFQUE0QztBQUN4Q0gsSUFBQUEsTUFBTSxHQUFHLEtBQVQ7QUFDSCxHQVZ1RSxDQVd4RTs7O0FBQ0F0QixFQUFBQSxNQUFNLENBQUNvQixPQUFPLEdBQUcsU0FBSCxHQUFlLE1BQXZCLENBQU4sQ0FBcUNuQixJQUFyQyxFQUEyQ0MsRUFBM0MsRUFBK0M7QUFDM0NtQixJQUFBQSxPQUFPLEVBQVBBLE9BRDJDO0FBRTNDZCxJQUFBQSxNQUFNLEVBQU5BLE1BRjJDO0FBRzNDZSxJQUFBQSxNQUFNLEVBQU5BO0FBSDJDLEdBQS9DO0FBS0g7O0FBQ0QsU0FBU0ksSUFBVCxDQUFjQyxLQUFkLEVBQXFCO0FBQUE7O0FBQ2pCLFlBQTJDO0FBQUEsUUFDOUJDLGVBRDhCLEdBQ3ZDLFNBQVNBLGVBQVQsQ0FBeUJDLElBQXpCLEVBQStCO0FBQzNCLGFBQU8sSUFBSUMsS0FBSixDQUFVLHNDQUFnQ0QsSUFBSSxDQUFDRSxHQUFyQyx5QkFBd0RGLElBQUksQ0FBQ0csUUFBN0Qsb0NBQWtHSCxJQUFJLENBQUNJLE1BQXZHLG1CQUE4SCxRQUFnQyxrRUFBaEMsR0FBcUcsQ0FBbk8sQ0FBVixDQUFQO0FBQ0gsS0FIc0MsRUFJdkM7OztBQUNBLFFBQU1DLGtCQUFrQixHQUFHO0FBQ3ZCakMsTUFBQUEsSUFBSSxFQUFFO0FBRGlCLEtBQTNCO0FBR0EsUUFBTWtDLGFBQWEsR0FBR2pELE1BQU0sQ0FBQ2tELElBQVAsQ0FBWUYsa0JBQVosQ0FBdEI7QUFDQUMsSUFBQUEsYUFBYSxDQUFDRSxPQUFkLENBQXNCLFVBQUNOLEdBQUQsRUFBTztBQUN6QixVQUFJQSxHQUFHLEtBQUssTUFBWixFQUFvQjtBQUNoQixZQUFJSixLQUFLLENBQUNJLEdBQUQsQ0FBTCxJQUFjLElBQWQsSUFBc0IsT0FBT0osS0FBSyxDQUFDSSxHQUFELENBQVosS0FBc0IsUUFBdEIsSUFBa0MsT0FBT0osS0FBSyxDQUFDSSxHQUFELENBQVosS0FBc0IsUUFBbEYsRUFBNEY7QUFDeEYsZ0JBQU1ILGVBQWUsQ0FBQztBQUNsQkcsWUFBQUEsR0FBRyxFQUFIQSxHQURrQjtBQUVsQkMsWUFBQUEsUUFBUSxFQUFFLHNCQUZRO0FBR2xCQyxZQUFBQSxNQUFNLEVBQUVOLEtBQUssQ0FBQ0ksR0FBRCxDQUFMLEtBQWUsSUFBZixHQUFzQixNQUF0QixHQUErQixPQUFPSixLQUFLLENBQUNJLEdBQUQ7QUFIakMsV0FBRCxDQUFyQjtBQUtIO0FBQ0osT0FSRCxNQVFPO0FBQ0g7QUFDQTtBQUNBLFlBQU1PLENBQUMsR0FBR1AsR0FBVjtBQUNIO0FBQ0osS0FkRCxFQVR1QyxDQXdCdkM7O0FBQ0EsUUFBTVEsa0JBQWtCLEdBQUc7QUFDdkJyQyxNQUFBQSxFQUFFLEVBQUUsSUFEbUI7QUFFdkJrQixNQUFBQSxPQUFPLEVBQUUsSUFGYztBQUd2QkUsTUFBQUEsTUFBTSxFQUFFLElBSGU7QUFJdkJELE1BQUFBLE9BQU8sRUFBRSxJQUpjO0FBS3ZCbUIsTUFBQUEsUUFBUSxFQUFFLElBTGE7QUFNdkJ6QyxNQUFBQSxRQUFRLEVBQUUsSUFOYTtBQU92QlEsTUFBQUEsTUFBTSxFQUFFO0FBUGUsS0FBM0I7QUFTQSxRQUFNa0MsYUFBYSxHQUFHdkQsTUFBTSxDQUFDa0QsSUFBUCxDQUFZRyxrQkFBWixDQUF0QjtBQUNBRSxJQUFBQSxhQUFhLENBQUNKLE9BQWQsQ0FBc0IsVUFBQ04sR0FBRCxFQUFPO0FBQ3pCLFVBQU1XLE9BQU8sR0FBRyxPQUFPZixLQUFLLENBQUNJLEdBQUQsQ0FBNUI7O0FBQ0EsVUFBSUEsR0FBRyxLQUFLLElBQVosRUFBa0I7QUFDZCxZQUFJSixLQUFLLENBQUNJLEdBQUQsQ0FBTCxJQUFjVyxPQUFPLEtBQUssUUFBMUIsSUFBc0NBLE9BQU8sS0FBSyxRQUF0RCxFQUFnRTtBQUM1RCxnQkFBTWQsZUFBZSxDQUFDO0FBQ2xCRyxZQUFBQSxHQUFHLEVBQUhBLEdBRGtCO0FBRWxCQyxZQUFBQSxRQUFRLEVBQUUsc0JBRlE7QUFHbEJDLFlBQUFBLE1BQU0sRUFBRVM7QUFIVSxXQUFELENBQXJCO0FBS0g7QUFDSixPQVJELE1BUU8sSUFBSVgsR0FBRyxLQUFLLFFBQVosRUFBc0I7QUFDekIsWUFBSUosS0FBSyxDQUFDSSxHQUFELENBQUwsSUFBY1csT0FBTyxLQUFLLFFBQTlCLEVBQXdDO0FBQ3BDLGdCQUFNZCxlQUFlLENBQUM7QUFDbEJHLFlBQUFBLEdBQUcsRUFBSEEsR0FEa0I7QUFFbEJDLFlBQUFBLFFBQVEsRUFBRSxVQUZRO0FBR2xCQyxZQUFBQSxNQUFNLEVBQUVTO0FBSFUsV0FBRCxDQUFyQjtBQUtIO0FBQ0osT0FSTSxNQVFBLElBQUlYLEdBQUcsS0FBSyxTQUFSLElBQXFCQSxHQUFHLEtBQUssUUFBN0IsSUFBeUNBLEdBQUcsS0FBSyxTQUFqRCxJQUE4REEsR0FBRyxLQUFLLFVBQXRFLElBQW9GQSxHQUFHLEtBQUssVUFBaEcsRUFBNEc7QUFDL0csWUFBSUosS0FBSyxDQUFDSSxHQUFELENBQUwsSUFBYyxJQUFkLElBQXNCVyxPQUFPLEtBQUssU0FBdEMsRUFBaUQ7QUFDN0MsZ0JBQU1kLGVBQWUsQ0FBQztBQUNsQkcsWUFBQUEsR0FBRyxFQUFIQSxHQURrQjtBQUVsQkMsWUFBQUEsUUFBUSxFQUFFLFdBRlE7QUFHbEJDLFlBQUFBLE1BQU0sRUFBRVM7QUFIVSxXQUFELENBQXJCO0FBS0g7QUFDSixPQVJNLE1BUUE7QUFDSDtBQUNBO0FBQ0EsWUFBTUosQ0FBQyxHQUFHUCxHQUFWO0FBQ0g7QUFDSixLQS9CRCxFQW5DdUMsQ0FtRXZDO0FBQ0E7O0FBQ0EsUUFBTVksU0FBUyxHQUFHckQsTUFBTSxXQUFOLENBQWVzRCxNQUFmLENBQXNCLEtBQXRCLENBQWxCOztBQUNBLFFBQUlqQixLQUFLLENBQUM1QixRQUFOLElBQWtCLENBQUM0QyxTQUFTLENBQUNFLE9BQWpDLEVBQTBDO0FBQ3RDRixNQUFBQSxTQUFTLENBQUNFLE9BQVYsR0FBb0IsSUFBcEI7QUFDQUMsTUFBQUEsT0FBTyxDQUFDQyxJQUFSLENBQWEsc0tBQWI7QUFDSDtBQUNKOztBQUNELE1BQU1DLENBQUMsR0FBR3JCLEtBQUssQ0FBQzVCLFFBQU4sS0FBbUIsS0FBN0I7QUFDQSxNQUFNQyxNQUFNLEdBQUcsQ0FBQyxHQUFHTixRQUFKLEVBQWN1RCxTQUFkLEVBQWY7O0FBQ0EsOEJBQXVCM0QsTUFBTSxXQUFOLENBQWU0RCxPQUFmLENBQXVCLFlBQUk7QUFDOUMsdUJBQW1DLENBQUMsR0FBR3pELE9BQUosRUFBYTBELFdBQWIsQ0FBeUJuRCxNQUF6QixFQUFpQzJCLEtBQUssQ0FBQzFCLElBQXZDLEVBQTZDLElBQTdDLENBQW5DO0FBQUE7QUFBQSxRQUFPbUQsWUFBUDtBQUFBLFFBQXFCQyxVQUFyQjs7QUFDQSxXQUFPO0FBQ0hwRCxNQUFBQSxJQUFJLEVBQUVtRCxZQURIO0FBRUhsRCxNQUFBQSxFQUFFLEVBQUV5QixLQUFLLENBQUN6QixFQUFOLEdBQVcsQ0FBQyxHQUFHVCxPQUFKLEVBQWEwRCxXQUFiLENBQXlCbkQsTUFBekIsRUFBaUMyQixLQUFLLENBQUN6QixFQUF2QyxDQUFYLEdBQXdEbUQsVUFBVSxJQUFJRDtBQUZ2RSxLQUFQO0FBSUgsR0FOc0IsRUFNcEIsQ0FDQ3BELE1BREQsRUFFQzJCLEtBQUssQ0FBQzFCLElBRlAsRUFHQzBCLEtBQUssQ0FBQ3pCLEVBSFAsQ0FOb0IsQ0FBdkI7QUFBQSxNQUFRRCxJQUFSLHlCQUFRQSxJQUFSO0FBQUEsTUFBZUMsRUFBZix5QkFBZUEsRUFBZjs7QUFXQSxNQUFNb0QsUUFBTixHQUEwRDNCLEtBQTFELENBQU0yQixRQUFOO0FBQUEsTUFBaUJsQyxPQUFqQixHQUEwRE8sS0FBMUQsQ0FBaUJQLE9BQWpCO0FBQUEsTUFBMkJDLE9BQTNCLEdBQTBETSxLQUExRCxDQUEyQk4sT0FBM0I7QUFBQSxNQUFxQ0MsTUFBckMsR0FBMERLLEtBQTFELENBQXFDTCxNQUFyQztBQUFBLE1BQThDZixNQUE5QyxHQUEwRG9CLEtBQTFELENBQThDcEIsTUFBOUMsQ0F6RmlCLENBMEZqQjs7QUFDQSxNQUFJLE9BQU8rQyxRQUFQLEtBQW9CLFFBQXhCLEVBQWtDO0FBQzlCQSxJQUFBQSxRQUFRLEdBQUcsYUFBY2hFLE1BQU0sV0FBTixDQUFlaUUsYUFBZixDQUE2QixHQUE3QixFQUFrQyxJQUFsQyxFQUF3Q0QsUUFBeEMsQ0FBekI7QUFDSCxHQTdGZ0IsQ0E4RmpCOzs7QUFDQSxNQUFJRSxLQUFKOztBQUNBLFlBQTRDO0FBQ3hDLFFBQUk7QUFDQUEsTUFBQUEsS0FBSyxHQUFHbEUsTUFBTSxXQUFOLENBQWVtRSxRQUFmLENBQXdCQyxJQUF4QixDQUE2QkosUUFBN0IsQ0FBUjtBQUNILEtBRkQsQ0FFRSxPQUFPakQsR0FBUCxFQUFZO0FBQ1YsWUFBTSxJQUFJeUIsS0FBSixDQUFVLGtFQUE4REgsS0FBSyxDQUFDMUIsSUFBcEUsa0dBQXdLLFFBQWdDLG1FQUFoQyxHQUFzRyxDQUE5USxDQUFWLENBQU47QUFDSDtBQUNKLEdBTkQsTUFNTyxFQUVOOztBQUNELE1BQU0wRCxRQUFRLEdBQUdILEtBQUssSUFBSSxPQUFPQSxLQUFQLEtBQWlCLFFBQTFCLElBQXNDQSxLQUFLLENBQUNJLEdBQTdEOztBQUNBLDBCQUF3QyxDQUFDLEdBQUdqRSxnQkFBSixFQUFzQmtFLGVBQXRCLENBQXNDO0FBQzFFQyxJQUFBQSxVQUFVLEVBQUU7QUFEOEQsR0FBdEMsQ0FBeEM7QUFBQTtBQUFBLE1BQU9DLGtCQUFQO0FBQUEsTUFBMkJDLFNBQTNCOztBQUdBLE1BQU1DLE1BQU0sR0FBRzNFLE1BQU0sV0FBTixDQUFlNEUsV0FBZixDQUEyQixVQUFDQyxFQUFELEVBQU07QUFDNUNKLElBQUFBLGtCQUFrQixDQUFDSSxFQUFELENBQWxCOztBQUNBLFFBQUlSLFFBQUosRUFBYztBQUNWLFVBQUksT0FBT0EsUUFBUCxLQUFvQixVQUF4QixFQUFvQ0EsUUFBUSxDQUFDUSxFQUFELENBQVIsQ0FBcEMsS0FDSyxJQUFJLE9BQU9SLFFBQVAsS0FBb0IsUUFBeEIsRUFBa0M7QUFDbkNBLFFBQUFBLFFBQVEsQ0FBQ2QsT0FBVCxHQUFtQnNCLEVBQW5CO0FBQ0g7QUFDSjtBQUNKLEdBUmMsRUFRWixDQUNDUixRQURELEVBRUNJLGtCQUZELENBUlksQ0FBZjs7QUFZQXpFLEVBQUFBLE1BQU0sV0FBTixDQUFlOEUsU0FBZixDQUF5QixZQUFJO0FBQ3pCLFFBQU1DLGNBQWMsR0FBR0wsU0FBUyxJQUFJaEIsQ0FBYixJQUFrQixDQUFDLEdBQUd2RCxPQUFKLEVBQWFXLFVBQWIsQ0FBd0JILElBQXhCLENBQXpDO0FBQ0EsUUFBTUssU0FBUyxHQUFHLE9BQU9DLE1BQVAsS0FBa0IsV0FBbEIsR0FBZ0NBLE1BQWhDLEdBQXlDUCxNQUFNLElBQUlBLE1BQU0sQ0FBQ08sTUFBNUU7QUFDQSxRQUFNK0QsWUFBWSxHQUFHeEUsVUFBVSxDQUFDRyxJQUFJLEdBQUcsR0FBUCxHQUFhQyxFQUFiLElBQW1CSSxTQUFTLEdBQUcsTUFBTUEsU0FBVCxHQUFxQixFQUFqRCxDQUFELENBQS9COztBQUNBLFFBQUkrRCxjQUFjLElBQUksQ0FBQ0MsWUFBdkIsRUFBcUM7QUFDakN2RSxNQUFBQSxRQUFRLENBQUNDLE1BQUQsRUFBU0MsSUFBVCxFQUFlQyxFQUFmLEVBQW1CO0FBQ3ZCSyxRQUFBQSxNQUFNLEVBQUVEO0FBRGUsT0FBbkIsQ0FBUjtBQUdIO0FBQ0osR0FURCxFQVNHLENBQ0NKLEVBREQsRUFFQ0QsSUFGRCxFQUdDK0QsU0FIRCxFQUlDekQsTUFKRCxFQUtDeUMsQ0FMRCxFQU1DaEQsTUFORCxDQVRIOztBQWlCQSxNQUFNdUUsVUFBVSxHQUFHO0FBQ2ZYLElBQUFBLEdBQUcsRUFBRUssTUFEVTtBQUVmTyxJQUFBQSxPQUFPLEVBQUUsaUJBQUNyRCxDQUFELEVBQUs7QUFDVixVQUFJcUMsS0FBSyxDQUFDN0IsS0FBTixJQUFlLE9BQU82QixLQUFLLENBQUM3QixLQUFOLENBQVk2QyxPQUFuQixLQUErQixVQUFsRCxFQUE4RDtBQUMxRGhCLFFBQUFBLEtBQUssQ0FBQzdCLEtBQU4sQ0FBWTZDLE9BQVosQ0FBb0JyRCxDQUFwQjtBQUNIOztBQUNELFVBQUksQ0FBQ0EsQ0FBQyxDQUFDc0QsZ0JBQVAsRUFBeUI7QUFDckJ2RCxRQUFBQSxXQUFXLENBQUNDLENBQUQsRUFBSW5CLE1BQUosRUFBWUMsSUFBWixFQUFrQkMsRUFBbEIsRUFBc0JrQixPQUF0QixFQUErQkMsT0FBL0IsRUFBd0NDLE1BQXhDLEVBQWdEZixNQUFoRCxDQUFYO0FBQ0g7QUFDSjtBQVRjLEdBQW5COztBQVdBZ0UsRUFBQUEsVUFBVSxDQUFDRyxZQUFYLEdBQTBCLFVBQUN2RCxDQUFELEVBQUs7QUFDM0IsUUFBSSxDQUFDLENBQUMsR0FBRzFCLE9BQUosRUFBYVcsVUFBYixDQUF3QkgsSUFBeEIsQ0FBTCxFQUFvQzs7QUFDcEMsUUFBSXVELEtBQUssQ0FBQzdCLEtBQU4sSUFBZSxPQUFPNkIsS0FBSyxDQUFDN0IsS0FBTixDQUFZK0MsWUFBbkIsS0FBb0MsVUFBdkQsRUFBbUU7QUFDL0RsQixNQUFBQSxLQUFLLENBQUM3QixLQUFOLENBQVkrQyxZQUFaLENBQXlCdkQsQ0FBekI7QUFDSDs7QUFDRHBCLElBQUFBLFFBQVEsQ0FBQ0MsTUFBRCxFQUFTQyxJQUFULEVBQWVDLEVBQWYsRUFBbUI7QUFDdkJ5RSxNQUFBQSxRQUFRLEVBQUU7QUFEYSxLQUFuQixDQUFSO0FBR0gsR0FSRCxDQXJKaUIsQ0E4SmpCO0FBQ0E7OztBQUNBLE1BQUloRCxLQUFLLENBQUNhLFFBQU4sSUFBa0JnQixLQUFLLENBQUNvQixJQUFOLEtBQWUsR0FBZixJQUFzQixFQUFFLFVBQVVwQixLQUFLLENBQUM3QixLQUFsQixDQUE1QyxFQUFzRTtBQUNsRSxRQUFNckIsU0FBUyxHQUFHLE9BQU9DLE1BQVAsS0FBa0IsV0FBbEIsR0FBZ0NBLE1BQWhDLEdBQXlDUCxNQUFNLElBQUlBLE1BQU0sQ0FBQ08sTUFBNUUsQ0FEa0UsQ0FFbEU7QUFDQTs7QUFDQSxRQUFNc0UsWUFBWSxHQUFHN0UsTUFBTSxJQUFJQSxNQUFNLENBQUM4RSxjQUFqQixJQUFtQyxDQUFDLEdBQUdyRixPQUFKLEVBQWFzRixlQUFiLENBQTZCN0UsRUFBN0IsRUFBaUNJLFNBQWpDLEVBQTRDTixNQUFNLElBQUlBLE1BQU0sQ0FBQ2dGLE9BQTdELEVBQXNFaEYsTUFBTSxJQUFJQSxNQUFNLENBQUNpRixhQUF2RixDQUF4RDtBQUNBVixJQUFBQSxVQUFVLENBQUN0RSxJQUFYLEdBQWtCNEUsWUFBWSxJQUFJLENBQUMsR0FBR3BGLE9BQUosRUFBYXlGLFdBQWIsQ0FBeUIsQ0FBQyxHQUFHekYsT0FBSixFQUFhMEYsU0FBYixDQUF1QmpGLEVBQXZCLEVBQTJCSSxTQUEzQixFQUFzQ04sTUFBTSxJQUFJQSxNQUFNLENBQUNvRixhQUF2RCxDQUF6QixDQUFsQztBQUNIOztBQUNELFNBQU8sYUFBYzlGLE1BQU0sV0FBTixDQUFlK0YsWUFBZixDQUE0QjdCLEtBQTVCLEVBQW1DZSxVQUFuQyxDQUFyQjtBQUNIOztHQXhLUTdDOztLQUFBQTtBQXlLVCxJQUFJNEQsUUFBUSxHQUFHNUQsSUFBZjtBQUNBdEMsa0JBQUEsR0FBa0JrRyxRQUFsQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9saW5rLmpzP2U0ZjkiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7XG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xudmFyIF9yb3V0ZXIgPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9yb3V0ZXIvcm91dGVyXCIpO1xudmFyIF9yb3V0ZXIxID0gcmVxdWlyZShcIi4vcm91dGVyXCIpO1xudmFyIF91c2VJbnRlcnNlY3Rpb24gPSByZXF1aXJlKFwiLi91c2UtaW50ZXJzZWN0aW9uXCIpO1xuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuY29uc3QgcHJlZmV0Y2hlZCA9IHtcbn07XG5mdW5jdGlvbiBwcmVmZXRjaChyb3V0ZXIsIGhyZWYsIGFzLCBvcHRpb25zKSB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8ICFyb3V0ZXIpIHJldHVybjtcbiAgICBpZiAoISgwLCBfcm91dGVyKS5pc0xvY2FsVVJMKGhyZWYpKSByZXR1cm47XG4gICAgLy8gUHJlZmV0Y2ggdGhlIEpTT04gcGFnZSBpZiBhc2tlZCAob25seSBpbiB0aGUgY2xpZW50KVxuICAgIC8vIFdlIG5lZWQgdG8gaGFuZGxlIGEgcHJlZmV0Y2ggZXJyb3IgaGVyZSBzaW5jZSB3ZSBtYXkgYmVcbiAgICAvLyBsb2FkaW5nIHdpdGggcHJpb3JpdHkgd2hpY2ggY2FuIHJlamVjdCBidXQgd2UgZG9uJ3RcbiAgICAvLyB3YW50IHRvIGZvcmNlIG5hdmlnYXRpb24gc2luY2UgdGhpcyBpcyBvbmx5IGEgcHJlZmV0Y2hcbiAgICByb3V0ZXIucHJlZmV0Y2goaHJlZiwgYXMsIG9wdGlvbnMpLmNhdGNoKChlcnIpPT57XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICAvLyByZXRocm93IHRvIHNob3cgaW52YWxpZCBVUkwgZXJyb3JzXG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBjdXJMb2NhbGUgPSBvcHRpb25zICYmIHR5cGVvZiBvcHRpb25zLmxvY2FsZSAhPT0gJ3VuZGVmaW5lZCcgPyBvcHRpb25zLmxvY2FsZSA6IHJvdXRlciAmJiByb3V0ZXIubG9jYWxlO1xuICAgIC8vIEpvaW4gb24gYW4gaW52YWxpZCBVUkkgY2hhcmFjdGVyXG4gICAgcHJlZmV0Y2hlZFtocmVmICsgJyUnICsgYXMgKyAoY3VyTG9jYWxlID8gJyUnICsgY3VyTG9jYWxlIDogJycpXSA9IHRydWU7XG59XG5mdW5jdGlvbiBpc01vZGlmaWVkRXZlbnQoZXZlbnQpIHtcbiAgICBjb25zdCB7IHRhcmdldCAgfSA9IGV2ZW50LmN1cnJlbnRUYXJnZXQ7XG4gICAgcmV0dXJuIHRhcmdldCAmJiB0YXJnZXQgIT09ICdfc2VsZicgfHwgZXZlbnQubWV0YUtleSB8fCBldmVudC5jdHJsS2V5IHx8IGV2ZW50LnNoaWZ0S2V5IHx8IGV2ZW50LmFsdEtleSB8fCBldmVudC5uYXRpdmVFdmVudCAmJiBldmVudC5uYXRpdmVFdmVudC53aGljaCA9PT0gMjtcbn1cbmZ1bmN0aW9uIGxpbmtDbGlja2VkKGUsIHJvdXRlciwgaHJlZiwgYXMsIHJlcGxhY2UsIHNoYWxsb3csIHNjcm9sbCwgbG9jYWxlKSB7XG4gICAgY29uc3QgeyBub2RlTmFtZSAgfSA9IGUuY3VycmVudFRhcmdldDtcbiAgICBpZiAobm9kZU5hbWUgPT09ICdBJyAmJiAoaXNNb2RpZmllZEV2ZW50KGUpIHx8ICEoMCwgX3JvdXRlcikuaXNMb2NhbFVSTChocmVmKSkpIHtcbiAgICAgICAgLy8gaWdub3JlIGNsaWNrIGZvciBicm93c2Vy4oCZcyBkZWZhdWx0IGJlaGF2aW9yXG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIC8vICBhdm9pZCBzY3JvbGwgZm9yIHVybHMgd2l0aCBhbmNob3IgcmVmc1xuICAgIGlmIChzY3JvbGwgPT0gbnVsbCAmJiBhcy5pbmRleE9mKCcjJykgPj0gMCkge1xuICAgICAgICBzY3JvbGwgPSBmYWxzZTtcbiAgICB9XG4gICAgLy8gcmVwbGFjZSBzdGF0ZSBpbnN0ZWFkIG9mIHB1c2ggaWYgcHJvcCBpcyBwcmVzZW50XG4gICAgcm91dGVyW3JlcGxhY2UgPyAncmVwbGFjZScgOiAncHVzaCddKGhyZWYsIGFzLCB7XG4gICAgICAgIHNoYWxsb3csXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgc2Nyb2xsXG4gICAgfSk7XG59XG5mdW5jdGlvbiBMaW5rKHByb3BzKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgZnVuY3Rpb24gY3JlYXRlUHJvcEVycm9yKGFyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgRXJyb3IoYEZhaWxlZCBwcm9wIHR5cGU6IFRoZSBwcm9wIFxcYCR7YXJncy5rZXl9XFxgIGV4cGVjdHMgYSAke2FyZ3MuZXhwZWN0ZWR9IGluIFxcYDxMaW5rPlxcYCwgYnV0IGdvdCBcXGAke2FyZ3MuYWN0dWFsfVxcYCBpbnN0ZWFkLmAgKyAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgPyBcIlxcbk9wZW4geW91ciBicm93c2VyJ3MgY29uc29sZSB0byB2aWV3IHRoZSBDb21wb25lbnQgc3RhY2sgdHJhY2UuXCIgOiAnJykpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFR5cGVTY3JpcHQgdHJpY2sgZm9yIHR5cGUtZ3VhcmRpbmc6XG4gICAgICAgIGNvbnN0IHJlcXVpcmVkUHJvcHNHdWFyZCA9IHtcbiAgICAgICAgICAgIGhyZWY6IHRydWVcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgcmVxdWlyZWRQcm9wcyA9IE9iamVjdC5rZXlzKHJlcXVpcmVkUHJvcHNHdWFyZCk7XG4gICAgICAgIHJlcXVpcmVkUHJvcHMuZm9yRWFjaCgoa2V5KT0+e1xuICAgICAgICAgICAgaWYgKGtleSA9PT0gJ2hyZWYnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHByb3BzW2tleV0gPT0gbnVsbCB8fCB0eXBlb2YgcHJvcHNba2V5XSAhPT0gJ3N0cmluZycgJiYgdHlwZW9mIHByb3BzW2tleV0gIT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGNyZWF0ZVByb3BFcnJvcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZDogJ2BzdHJpbmdgIG9yIGBvYmplY3RgJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbDogcHJvcHNba2V5XSA9PT0gbnVsbCA/ICdudWxsJyA6IHR5cGVvZiBwcm9wc1trZXldXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gVHlwZVNjcmlwdCB0cmljayBmb3IgdHlwZS1ndWFyZGluZzpcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgICAgICAgICAgICAgY29uc3QgXyA9IGtleTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIC8vIFR5cGVTY3JpcHQgdHJpY2sgZm9yIHR5cGUtZ3VhcmRpbmc6XG4gICAgICAgIGNvbnN0IG9wdGlvbmFsUHJvcHNHdWFyZCA9IHtcbiAgICAgICAgICAgIGFzOiB0cnVlLFxuICAgICAgICAgICAgcmVwbGFjZTogdHJ1ZSxcbiAgICAgICAgICAgIHNjcm9sbDogdHJ1ZSxcbiAgICAgICAgICAgIHNoYWxsb3c6IHRydWUsXG4gICAgICAgICAgICBwYXNzSHJlZjogdHJ1ZSxcbiAgICAgICAgICAgIHByZWZldGNoOiB0cnVlLFxuICAgICAgICAgICAgbG9jYWxlOiB0cnVlXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IG9wdGlvbmFsUHJvcHMgPSBPYmplY3Qua2V5cyhvcHRpb25hbFByb3BzR3VhcmQpO1xuICAgICAgICBvcHRpb25hbFByb3BzLmZvckVhY2goKGtleSk9PntcbiAgICAgICAgICAgIGNvbnN0IHZhbFR5cGUgPSB0eXBlb2YgcHJvcHNba2V5XTtcbiAgICAgICAgICAgIGlmIChrZXkgPT09ICdhcycpIHtcbiAgICAgICAgICAgICAgICBpZiAocHJvcHNba2V5XSAmJiB2YWxUeXBlICE9PSAnc3RyaW5nJyAmJiB2YWxUeXBlICE9PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBjcmVhdGVQcm9wRXJyb3Ioe1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQ6ICdgc3RyaW5nYCBvciBgb2JqZWN0YCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWw6IHZhbFR5cGVcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdsb2NhbGUnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHByb3BzW2tleV0gJiYgdmFsVHlwZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgY3JlYXRlUHJvcEVycm9yKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkOiAnYHN0cmluZ2AnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFsOiB2YWxUeXBlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAncmVwbGFjZScgfHwga2V5ID09PSAnc2Nyb2xsJyB8fCBrZXkgPT09ICdzaGFsbG93JyB8fCBrZXkgPT09ICdwYXNzSHJlZicgfHwga2V5ID09PSAncHJlZmV0Y2gnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHByb3BzW2tleV0gIT0gbnVsbCAmJiB2YWxUeXBlICE9PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgY3JlYXRlUHJvcEVycm9yKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkOiAnYGJvb2xlYW5gJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbDogdmFsVHlwZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIFR5cGVTY3JpcHQgdHJpY2sgZm9yIHR5cGUtZ3VhcmRpbmc6XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICAgICAgICAgICAgIGNvbnN0IF8gPSBrZXk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBUaGlzIGhvb2sgaXMgaW4gYSBjb25kaXRpb25hbCBidXQgdGhhdCBpcyBvayBiZWNhdXNlIGBwcm9jZXNzLmVudi5OT0RFX0VOVmAgbmV2ZXIgY2hhbmdlc1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgICAgICAgY29uc3QgaGFzV2FybmVkID0gX3JlYWN0LmRlZmF1bHQudXNlUmVmKGZhbHNlKTtcbiAgICAgICAgaWYgKHByb3BzLnByZWZldGNoICYmICFoYXNXYXJuZWQuY3VycmVudCkge1xuICAgICAgICAgICAgaGFzV2FybmVkLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdOZXh0LmpzIGF1dG8tcHJlZmV0Y2hlcyBhdXRvbWF0aWNhbGx5IGJhc2VkIG9uIHZpZXdwb3J0LiBUaGUgcHJlZmV0Y2ggYXR0cmlidXRlIGlzIG5vIGxvbmdlciBuZWVkZWQuIE1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3ByZWZldGNoLXRydWUtZGVwcmVjYXRlZCcpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHAgPSBwcm9wcy5wcmVmZXRjaCAhPT0gZmFsc2U7XG4gICAgY29uc3Qgcm91dGVyID0gKDAsIF9yb3V0ZXIxKS51c2VSb3V0ZXIoKTtcbiAgICBjb25zdCB7IGhyZWYgLCBhcyAgfSA9IF9yZWFjdC5kZWZhdWx0LnVzZU1lbW8oKCk9PntcbiAgICAgICAgY29uc3QgW3Jlc29sdmVkSHJlZiwgcmVzb2x2ZWRBc10gPSAoMCwgX3JvdXRlcikucmVzb2x2ZUhyZWYocm91dGVyLCBwcm9wcy5ocmVmLCB0cnVlKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGhyZWY6IHJlc29sdmVkSHJlZixcbiAgICAgICAgICAgIGFzOiBwcm9wcy5hcyA/ICgwLCBfcm91dGVyKS5yZXNvbHZlSHJlZihyb3V0ZXIsIHByb3BzLmFzKSA6IHJlc29sdmVkQXMgfHwgcmVzb2x2ZWRIcmVmXG4gICAgICAgIH07XG4gICAgfSwgW1xuICAgICAgICByb3V0ZXIsXG4gICAgICAgIHByb3BzLmhyZWYsXG4gICAgICAgIHByb3BzLmFzXG4gICAgXSk7XG4gICAgbGV0IHsgY2hpbGRyZW4gLCByZXBsYWNlICwgc2hhbGxvdyAsIHNjcm9sbCAsIGxvY2FsZSAgfSA9IHByb3BzO1xuICAgIC8vIERlcHJlY2F0ZWQuIFdhcm5pbmcgc2hvd24gYnkgcHJvcFR5cGUgY2hlY2suIElmIHRoZSBjaGlsZHJlbiBwcm92aWRlZCBpcyBhIHN0cmluZyAoPExpbms+ZXhhbXBsZTwvTGluaz4pIHdlIHdyYXAgaXQgaW4gYW4gPGE+IHRhZ1xuICAgIGlmICh0eXBlb2YgY2hpbGRyZW4gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNoaWxkcmVuID0gLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiYVwiLCBudWxsLCBjaGlsZHJlbik7XG4gICAgfVxuICAgIC8vIFRoaXMgd2lsbCByZXR1cm4gdGhlIGZpcnN0IGNoaWxkLCBpZiBtdWx0aXBsZSBhcmUgcHJvdmlkZWQgaXQgd2lsbCB0aHJvdyBhbiBlcnJvclxuICAgIGxldCBjaGlsZDtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNoaWxkID0gX3JlYWN0LmRlZmF1bHQuQ2hpbGRyZW4ub25seShjaGlsZHJlbik7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBNdWx0aXBsZSBjaGlsZHJlbiB3ZXJlIHBhc3NlZCB0byA8TGluaz4gd2l0aCBcXGBocmVmXFxgIG9mIFxcYCR7cHJvcHMuaHJlZn1cXGAgYnV0IG9ubHkgb25lIGNoaWxkIGlzIHN1cHBvcnRlZCBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9saW5rLW11bHRpcGxlLWNoaWxkcmVuYCArICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyA/IFwiIFxcbk9wZW4geW91ciBicm93c2VyJ3MgY29uc29sZSB0byB2aWV3IHRoZSBDb21wb25lbnQgc3RhY2sgdHJhY2UuXCIgOiAnJykpO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY2hpbGQgPSBfcmVhY3QuZGVmYXVsdC5DaGlsZHJlbi5vbmx5KGNoaWxkcmVuKTtcbiAgICB9XG4gICAgY29uc3QgY2hpbGRSZWYgPSBjaGlsZCAmJiB0eXBlb2YgY2hpbGQgPT09ICdvYmplY3QnICYmIGNoaWxkLnJlZjtcbiAgICBjb25zdCBbc2V0SW50ZXJzZWN0aW9uUmVmLCBpc1Zpc2libGVdID0gKDAsIF91c2VJbnRlcnNlY3Rpb24pLnVzZUludGVyc2VjdGlvbih7XG4gICAgICAgIHJvb3RNYXJnaW46ICcyMDBweCdcbiAgICB9KTtcbiAgICBjb25zdCBzZXRSZWYgPSBfcmVhY3QuZGVmYXVsdC51c2VDYWxsYmFjaygoZWwpPT57XG4gICAgICAgIHNldEludGVyc2VjdGlvblJlZihlbCk7XG4gICAgICAgIGlmIChjaGlsZFJlZikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBjaGlsZFJlZiA9PT0gJ2Z1bmN0aW9uJykgY2hpbGRSZWYoZWwpO1xuICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIGNoaWxkUmVmID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgIGNoaWxkUmVmLmN1cnJlbnQgPSBlbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgY2hpbGRSZWYsXG4gICAgICAgIHNldEludGVyc2VjdGlvblJlZlxuICAgIF0pO1xuICAgIF9yZWFjdC5kZWZhdWx0LnVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBjb25zdCBzaG91bGRQcmVmZXRjaCA9IGlzVmlzaWJsZSAmJiBwICYmICgwLCBfcm91dGVyKS5pc0xvY2FsVVJMKGhyZWYpO1xuICAgICAgICBjb25zdCBjdXJMb2NhbGUgPSB0eXBlb2YgbG9jYWxlICE9PSAndW5kZWZpbmVkJyA/IGxvY2FsZSA6IHJvdXRlciAmJiByb3V0ZXIubG9jYWxlO1xuICAgICAgICBjb25zdCBpc1ByZWZldGNoZWQgPSBwcmVmZXRjaGVkW2hyZWYgKyAnJScgKyBhcyArIChjdXJMb2NhbGUgPyAnJScgKyBjdXJMb2NhbGUgOiAnJyldO1xuICAgICAgICBpZiAoc2hvdWxkUHJlZmV0Y2ggJiYgIWlzUHJlZmV0Y2hlZCkge1xuICAgICAgICAgICAgcHJlZmV0Y2gocm91dGVyLCBocmVmLCBhcywge1xuICAgICAgICAgICAgICAgIGxvY2FsZTogY3VyTG9jYWxlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgYXMsXG4gICAgICAgIGhyZWYsXG4gICAgICAgIGlzVmlzaWJsZSxcbiAgICAgICAgbG9jYWxlLFxuICAgICAgICBwLFxuICAgICAgICByb3V0ZXJcbiAgICBdKTtcbiAgICBjb25zdCBjaGlsZFByb3BzID0ge1xuICAgICAgICByZWY6IHNldFJlZixcbiAgICAgICAgb25DbGljazogKGUpPT57XG4gICAgICAgICAgICBpZiAoY2hpbGQucHJvcHMgJiYgdHlwZW9mIGNoaWxkLnByb3BzLm9uQ2xpY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICBjaGlsZC5wcm9wcy5vbkNsaWNrKGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFlLmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICAgICAgICBsaW5rQ2xpY2tlZChlLCByb3V0ZXIsIGhyZWYsIGFzLCByZXBsYWNlLCBzaGFsbG93LCBzY3JvbGwsIGxvY2FsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGNoaWxkUHJvcHMub25Nb3VzZUVudGVyID0gKGUpPT57XG4gICAgICAgIGlmICghKDAsIF9yb3V0ZXIpLmlzTG9jYWxVUkwoaHJlZikpIHJldHVybjtcbiAgICAgICAgaWYgKGNoaWxkLnByb3BzICYmIHR5cGVvZiBjaGlsZC5wcm9wcy5vbk1vdXNlRW50ZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGNoaWxkLnByb3BzLm9uTW91c2VFbnRlcihlKTtcbiAgICAgICAgfVxuICAgICAgICBwcmVmZXRjaChyb3V0ZXIsIGhyZWYsIGFzLCB7XG4gICAgICAgICAgICBwcmlvcml0eTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIC8vIElmIGNoaWxkIGlzIGFuIDxhPiB0YWcgYW5kIGRvZXNuJ3QgaGF2ZSBhIGhyZWYgYXR0cmlidXRlLCBvciBpZiB0aGUgJ3Bhc3NIcmVmJyBwcm9wZXJ0eSBpc1xuICAgIC8vIGRlZmluZWQsIHdlIHNwZWNpZnkgdGhlIGN1cnJlbnQgJ2hyZWYnLCBzbyB0aGF0IHJlcGV0aXRpb24gaXMgbm90IG5lZWRlZCBieSB0aGUgdXNlclxuICAgIGlmIChwcm9wcy5wYXNzSHJlZiB8fCBjaGlsZC50eXBlID09PSAnYScgJiYgISgnaHJlZicgaW4gY2hpbGQucHJvcHMpKSB7XG4gICAgICAgIGNvbnN0IGN1ckxvY2FsZSA9IHR5cGVvZiBsb2NhbGUgIT09ICd1bmRlZmluZWQnID8gbG9jYWxlIDogcm91dGVyICYmIHJvdXRlci5sb2NhbGU7XG4gICAgICAgIC8vIHdlIG9ubHkgcmVuZGVyIGRvbWFpbiBsb2NhbGVzIGlmIHdlIGFyZSBjdXJyZW50bHkgb24gYSBkb21haW4gbG9jYWxlXG4gICAgICAgIC8vIHNvIHRoYXQgbG9jYWxlIGxpbmtzIGFyZSBzdGlsbCB2aXNpdGFibGUgaW4gZGV2ZWxvcG1lbnQvcHJldmlldyBlbnZzXG4gICAgICAgIGNvbnN0IGxvY2FsZURvbWFpbiA9IHJvdXRlciAmJiByb3V0ZXIuaXNMb2NhbGVEb21haW4gJiYgKDAsIF9yb3V0ZXIpLmdldERvbWFpbkxvY2FsZShhcywgY3VyTG9jYWxlLCByb3V0ZXIgJiYgcm91dGVyLmxvY2FsZXMsIHJvdXRlciAmJiByb3V0ZXIuZG9tYWluTG9jYWxlcyk7XG4gICAgICAgIGNoaWxkUHJvcHMuaHJlZiA9IGxvY2FsZURvbWFpbiB8fCAoMCwgX3JvdXRlcikuYWRkQmFzZVBhdGgoKDAsIF9yb3V0ZXIpLmFkZExvY2FsZShhcywgY3VyTG9jYWxlLCByb3V0ZXIgJiYgcm91dGVyLmRlZmF1bHRMb2NhbGUpKTtcbiAgICB9XG4gICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY2xvbmVFbGVtZW50KGNoaWxkLCBjaGlsZFByb3BzKSk7XG59XG52YXIgX2RlZmF1bHQgPSBMaW5rO1xuZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWxpbmsuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcm91dGVyIiwiX3JvdXRlcjEiLCJfdXNlSW50ZXJzZWN0aW9uIiwib2JqIiwiX19lc01vZHVsZSIsInByZWZldGNoZWQiLCJwcmVmZXRjaCIsInJvdXRlciIsImhyZWYiLCJhcyIsIm9wdGlvbnMiLCJpc0xvY2FsVVJMIiwiZXJyIiwiY3VyTG9jYWxlIiwibG9jYWxlIiwiaXNNb2RpZmllZEV2ZW50IiwiZXZlbnQiLCJ0YXJnZXQiLCJjdXJyZW50VGFyZ2V0IiwibWV0YUtleSIsImN0cmxLZXkiLCJzaGlmdEtleSIsImFsdEtleSIsIm5hdGl2ZUV2ZW50Iiwid2hpY2giLCJsaW5rQ2xpY2tlZCIsImUiLCJyZXBsYWNlIiwic2hhbGxvdyIsInNjcm9sbCIsIm5vZGVOYW1lIiwicHJldmVudERlZmF1bHQiLCJpbmRleE9mIiwiTGluayIsInByb3BzIiwiY3JlYXRlUHJvcEVycm9yIiwiYXJncyIsIkVycm9yIiwia2V5IiwiZXhwZWN0ZWQiLCJhY3R1YWwiLCJyZXF1aXJlZFByb3BzR3VhcmQiLCJyZXF1aXJlZFByb3BzIiwia2V5cyIsImZvckVhY2giLCJfIiwib3B0aW9uYWxQcm9wc0d1YXJkIiwicGFzc0hyZWYiLCJvcHRpb25hbFByb3BzIiwidmFsVHlwZSIsImhhc1dhcm5lZCIsInVzZVJlZiIsImN1cnJlbnQiLCJjb25zb2xlIiwid2FybiIsInAiLCJ1c2VSb3V0ZXIiLCJ1c2VNZW1vIiwicmVzb2x2ZUhyZWYiLCJyZXNvbHZlZEhyZWYiLCJyZXNvbHZlZEFzIiwiY2hpbGRyZW4iLCJjcmVhdGVFbGVtZW50IiwiY2hpbGQiLCJDaGlsZHJlbiIsIm9ubHkiLCJjaGlsZFJlZiIsInJlZiIsInVzZUludGVyc2VjdGlvbiIsInJvb3RNYXJnaW4iLCJzZXRJbnRlcnNlY3Rpb25SZWYiLCJpc1Zpc2libGUiLCJzZXRSZWYiLCJ1c2VDYWxsYmFjayIsImVsIiwidXNlRWZmZWN0Iiwic2hvdWxkUHJlZmV0Y2giLCJpc1ByZWZldGNoZWQiLCJjaGlsZFByb3BzIiwib25DbGljayIsImRlZmF1bHRQcmV2ZW50ZWQiLCJvbk1vdXNlRW50ZXIiLCJwcmlvcml0eSIsInR5cGUiLCJsb2NhbGVEb21haW4iLCJpc0xvY2FsZURvbWFpbiIsImdldERvbWFpbkxvY2FsZSIsImxvY2FsZXMiLCJkb21haW5Mb2NhbGVzIiwiYWRkQmFzZVBhdGgiLCJhZGRMb2NhbGUiLCJkZWZhdWx0TG9jYWxlIiwiY2xvbmVFbGVtZW50IiwiX2RlZmF1bHQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/link.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/use-intersection.js": +/*!***********************************************************!*\ + !*** ./node_modules/next/dist/client/use-intersection.js ***! + \***********************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _slicedToArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nvar _s = $RefreshSig$();\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.useIntersection = useIntersection;\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nvar _requestIdleCallback = __webpack_require__(/*! ./request-idle-callback */ \"./node_modules/next/dist/client/request-idle-callback.js\");\n\nvar hasIntersectionObserver = typeof IntersectionObserver !== 'undefined';\n\nfunction useIntersection(_ref) {\n _s();\n\n var rootMargin = _ref.rootMargin,\n disabled = _ref.disabled;\n var isDisabled = disabled || !hasIntersectionObserver;\n var unobserve = (0, _react).useRef();\n\n var _useState = (0, _react).useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n visible = _useState2[0],\n setVisible = _useState2[1];\n\n var setRef = (0, _react).useCallback(function (el) {\n if (unobserve.current) {\n unobserve.current();\n unobserve.current = undefined;\n }\n\n if (isDisabled || visible) return;\n\n if (el && el.tagName) {\n unobserve.current = observe(el, function (isVisible) {\n return isVisible && setVisible(isVisible);\n }, {\n rootMargin: rootMargin\n });\n }\n }, [isDisabled, rootMargin, visible]);\n (0, _react).useEffect(function () {\n if (!hasIntersectionObserver) {\n if (!visible) {\n var idleCallback = (0, _requestIdleCallback).requestIdleCallback(function () {\n return setVisible(true);\n });\n return function () {\n return (0, _requestIdleCallback).cancelIdleCallback(idleCallback);\n };\n }\n }\n }, [visible]);\n return [setRef, visible];\n}\n\n_s(useIntersection, \"Z6jj7qx+KE6gD9CpC9WlQTha45o=\");\n\nfunction observe(element, callback, options) {\n var _createObserver = createObserver(options),\n id = _createObserver.id,\n observer = _createObserver.observer,\n elements = _createObserver.elements;\n\n elements.set(element, callback);\n observer.observe(element);\n return function unobserve() {\n elements[\"delete\"](element);\n observer.unobserve(element); // Destroy observer when there's nothing left to watch:\n\n if (elements.size === 0) {\n observer.disconnect();\n observers[\"delete\"](id);\n }\n };\n}\n\nvar observers = new Map();\n\nfunction createObserver(options) {\n var id = options.rootMargin || '';\n var instance = observers.get(id);\n\n if (instance) {\n return instance;\n }\n\n var elements = new Map();\n var observer = new IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n var callback = elements.get(entry.target);\n var isVisible = entry.isIntersecting || entry.intersectionRatio > 0;\n\n if (callback && isVisible) {\n callback(isVisible);\n }\n });\n }, options);\n observers.set(id, instance = {\n id: id,\n observer: observer,\n elements: elements\n });\n return instance;\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC91c2UtaW50ZXJzZWN0aW9uLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7Ozs7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELHVCQUFBLEdBQTBCRSxlQUExQjs7QUFDQSxJQUFJQyxNQUFNLEdBQUdDLG1CQUFPLENBQUMsNENBQUQsQ0FBcEI7O0FBQ0EsSUFBSUMsb0JBQW9CLEdBQUdELG1CQUFPLENBQUMseUZBQUQsQ0FBbEM7O0FBQ0EsSUFBTUUsdUJBQXVCLEdBQUcsT0FBT0Msb0JBQVAsS0FBZ0MsV0FBaEU7O0FBQ0EsU0FBU0wsZUFBVCxPQUFxRDtBQUFBOztBQUFBLE1BQTFCTSxVQUEwQixRQUExQkEsVUFBMEI7QUFBQSxNQUFiQyxRQUFhLFFBQWJBLFFBQWE7QUFDakQsTUFBTUMsVUFBVSxHQUFHRCxRQUFRLElBQUksQ0FBQ0gsdUJBQWhDO0FBQ0EsTUFBTUssU0FBUyxHQUFHLENBQUMsR0FBR1IsTUFBSixFQUFZUyxNQUFaLEVBQWxCOztBQUNBLGtCQUE4QixDQUFDLEdBQUdULE1BQUosRUFBWVUsUUFBWixDQUFxQixLQUFyQixDQUE5QjtBQUFBO0FBQUEsTUFBT0MsT0FBUDtBQUFBLE1BQWdCQyxVQUFoQjs7QUFDQSxNQUFNQyxNQUFNLEdBQUcsQ0FBQyxHQUFHYixNQUFKLEVBQVljLFdBQVosQ0FBd0IsVUFBQ0MsRUFBRCxFQUFNO0FBQ3pDLFFBQUlQLFNBQVMsQ0FBQ1EsT0FBZCxFQUF1QjtBQUNuQlIsTUFBQUEsU0FBUyxDQUFDUSxPQUFWO0FBQ0FSLE1BQUFBLFNBQVMsQ0FBQ1EsT0FBVixHQUFvQkMsU0FBcEI7QUFDSDs7QUFDRCxRQUFJVixVQUFVLElBQUlJLE9BQWxCLEVBQTJCOztBQUMzQixRQUFJSSxFQUFFLElBQUlBLEVBQUUsQ0FBQ0csT0FBYixFQUFzQjtBQUNsQlYsTUFBQUEsU0FBUyxDQUFDUSxPQUFWLEdBQW9CRyxPQUFP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QUFBLEVBQUUsRUFBRkEsRUFEeUI7QUFFekJDLElBQUFBLFFBQVEsRUFBUkEsUUFGeUI7QUFHekJDLElBQUFBLFFBQVEsRUFBUkE7QUFIeUIsR0FBN0I7QUFLQSxTQUFPTSxRQUFQO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvdXNlLWludGVyc2VjdGlvbi5qcz9mZDk0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy51c2VJbnRlcnNlY3Rpb24gPSB1c2VJbnRlcnNlY3Rpb247XG52YXIgX3JlYWN0ID0gcmVxdWlyZShcInJlYWN0XCIpO1xudmFyIF9yZXF1ZXN0SWRsZUNhbGxiYWNrID0gcmVxdWlyZShcIi4vcmVxdWVzdC1pZGxlLWNhbGxiYWNrXCIpO1xuY29uc3QgaGFzSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPSB0eXBlb2YgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgIT09ICd1bmRlZmluZWQnO1xuZnVuY3Rpb24gdXNlSW50ZXJzZWN0aW9uKHsgcm9vdE1hcmdpbiAsIGRpc2FibGVkICB9KSB7XG4gICAgY29uc3QgaXNEaXNhYmxlZCA9IGRpc2FibGVkIHx8ICFoYXNJbnRlcnNlY3Rpb25PYnNlcnZlcjtcbiAgICBjb25zdCB1bm9ic2VydmUgPSAoMCwgX3JlYWN0KS51c2VSZWYoKTtcbiAgICBjb25zdCBbdmlzaWJsZSwgc2V0VmlzaWJsZV0gPSAoMCwgX3JlYWN0KS51c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3Qgc2V0UmVmID0gKDAsIF9yZWFjdCkudXNlQ2FsbGJhY2soKGVsKT0+e1xuICAgICAgICBpZiAodW5vYnNlcnZlLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIHVub2JzZXJ2ZS5jdXJyZW50KCk7XG4gICAgICAgICAgICB1bm9ic2VydmUuY3VycmVudCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNEaXNhYmxlZCB8fCB2aXNpYmxlKSByZXR1cm47XG4gICAgICAgIGlmIChlbCAmJiBlbC50YWdOYW1lKSB7XG4gICAgICAgICAgICB1bm9ic2VydmUuY3VycmVudCA9IG9ic2VydmUoZWwsIChpc1Zpc2libGUpPT5pc1Zpc2libGUgJiYgc2V0VmlzaWJsZShpc1Zpc2libGUpXG4gICAgICAgICAgICAsIHtcbiAgICAgICAgICAgICAgICByb290TWFyZ2luXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgaXNEaXNhYmxlZCxcbiAgICAgICAgcm9vdE1hcmdpbixcbiAgICAgICAgdmlzaWJsZVxuICAgIF0pO1xuICAgICgwLCBfcmVhY3QpLnVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBpZiAoIWhhc0ludGVyc2VjdGlvbk9ic2VydmVyKSB7XG4gICAgICAgICAgICBpZiAoIXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpZGxlQ2FsbGJhY2sgPSAoMCwgX3JlcXVlc3RJZGxlQ2FsbGJhY2spLnJlcXVlc3RJZGxlQ2FsbGJhY2soKCk9PnNldFZpc2libGUodHJ1ZSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHJldHVybiAoKT0+KDAsIF9yZXF1ZXN0SWRsZUNhbGxiYWNrKS5jYW5jZWxJZGxlQ2FsbGJhY2soaWRsZUNhbGxiYWNrKVxuICAgICAgICAgICAgICAgIDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgdmlzaWJsZVxuICAgIF0pO1xuICAgIHJldHVybiBbXG4gICAgICAgIHNldFJlZixcbiAgICAgICAgdmlzaWJsZVxuICAgIF07XG59XG5mdW5jdGlvbiBvYnNlcnZlKGVsZW1lbnQsIGNhbGxiYWNrLCBvcHRpb25zKSB7XG4gICAgY29uc3QgeyBpZCAsIG9ic2VydmVyICwgZWxlbWVudHMgIH0gPSBjcmVhdGVPYnNlcnZlcihvcHRpb25zKTtcbiAgICBlbGVtZW50cy5zZXQoZWxlbWVudCwgY2FsbGJhY2spO1xuICAgIG9ic2VydmVyLm9ic2VydmUoZWxlbWVudCk7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIHVub2JzZXJ2ZSgpIHtcbiAgICAgICAgZWxlbWVudHMuZGVsZXRlKGVsZW1lbnQpO1xuICAgICAgICBvYnNlcnZlci51bm9ic2VydmUoZWxlbWVudCk7XG4gICAgICAgIC8vIERlc3Ryb3kgb2JzZXJ2ZXIgd2hlbiB0aGVyZSdzIG5vdGhpbmcgbGVmdCB0byB3YXRjaDpcbiAgICAgICAgaWYgKGVsZW1lbnRzLnNpemUgPT09IDApIHtcbiAgICAgICAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICAgIG9ic2VydmVycy5kZWxldGUoaWQpO1xuICAgICAgICB9XG4gICAgfTtcbn1cbmNvbnN0IG9ic2VydmVycyA9IG5ldyBNYXAoKTtcbmZ1bmN0aW9uIGNyZWF0ZU9ic2VydmVyKG9wdGlvbnMpIHtcbiAgICBjb25zdCBpZCA9IG9wdGlvbnMucm9vdE1hcmdpbiB8fCAnJztcbiAgICBsZXQgaW5zdGFuY2UgPSBvYnNlcnZlcnMuZ2V0KGlkKTtcbiAgICBpZiAoaW5zdGFuY2UpIHtcbiAgICAgICAgcmV0dXJuIGluc3RhbmNlO1xuICAgIH1cbiAgICBjb25zdCBlbGVtZW50cyA9IG5ldyBNYXAoKTtcbiAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZW50cmllcyk9PntcbiAgICAgICAgZW50cmllcy5mb3JFYWNoKChlbnRyeSk9PntcbiAgICAgICAgICAgIGNvbnN0IGNhbGxiYWNrID0gZWxlbWVudHMuZ2V0KGVudHJ5LnRhcmdldCk7XG4gICAgICAgICAgICBjb25zdCBpc1Zpc2libGUgPSBlbnRyeS5pc0ludGVyc2VjdGluZyB8fCBlbnRyeS5pbnRlcnNlY3Rpb25SYXRpbyA+IDA7XG4gICAgICAgICAgICBpZiAoY2FsbGJhY2sgJiYgaXNWaXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2soaXNWaXNpYmxlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSwgb3B0aW9ucyk7XG4gICAgb2JzZXJ2ZXJzLnNldChpZCwgaW5zdGFuY2UgPSB7XG4gICAgICAgIGlkLFxuICAgICAgICBvYnNlcnZlcixcbiAgICAgICAgZWxlbWVudHNcbiAgICB9KTtcbiAgICByZXR1cm4gaW5zdGFuY2U7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVzZS1pbnRlcnNlY3Rpb24uanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwidXNlSW50ZXJzZWN0aW9uIiwiX3JlYWN0IiwicmVxdWlyZSIsIl9yZXF1ZXN0SWRsZUNhbGxiYWNrIiwiaGFzSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiLCJJbnRlcnNlY3Rpb25PYnNlcnZlciIsInJvb3RNYXJnaW4iLCJkaXNhYmxlZCIsImlzRGlzYWJsZWQiLCJ1bm9ic2VydmUiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInZpc2libGUiLCJzZXRWaXNpYmxlIiwic2V0UmVmIiwidXNlQ2FsbGJhY2siLCJlbCIsImN1cnJlbnQiLCJ1bmRlZmluZWQiLCJ0YWdOYW1lIiwib2JzZXJ2ZSIsImlzVmlzaWJsZSIsInVzZUVmZmVjdCIsImlkbGVDYWxsYmFjayIsInJlcXVlc3RJZGxlQ2FsbGJhY2siLCJjYW5jZWxJZGxlQ2FsbGJhY2siLCJlbGVtZW50IiwiY2FsbGJhY2siLCJvcHRpb25zIiwiY3JlYXRlT2JzZXJ2ZXIiLCJpZCIsIm9ic2VydmVyIiwiZWxlbWVudHMiLCJzZXQiLCJzaXplIiwiZGlzY29ubmVjdCIsIm9ic2VydmVycyIsIk1hcCIsImluc3RhbmNlIiwiZ2V0IiwiZW50cmllcyIsImZvckVhY2giLCJlbnRyeSIsInRhcmdldCIsImlzSW50ZXJzZWN0aW5nIiwiaW50ZXJzZWN0aW9uUmF0aW8iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/use-intersection.js\n"); + +/***/ }), + +/***/ "./src/common/getSiblings.js": +/*!***********************************!*\ + !*** ./src/common/getSiblings.js ***! + \***********************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar getSiblings = function getSiblings(e) {\n var siblings = [];\n\n if (!e.parentNode) {\n return siblings;\n }\n\n var sibling = e.parentNode.firstChild;\n\n while (sibling) {\n if (sibling.nodeType === 1 && sibling !== e) {\n siblings.push(sibling);\n }\n\n sibling = sibling.nextSibling;\n }\n\n return siblings;\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (getSiblings);\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL2dldFNpYmxpbmdzLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQUEsSUFBTUEsV0FBVyxHQUFHLFNBQWRBLFdBQWMsQ0FBQ0MsQ0FBRCxFQUFPO0FBQ3pCLE1BQUlDLFFBQVEsR0FBRyxFQUFmOztBQUNBLE1BQUksQ0FBQ0QsQ0FBQyxDQUFDRSxVQUFQLEVBQW1CO0FBQ2pCLFdBQU9ELFFBQVA7QUFDRDs7QUFDRCxNQUFJRSxPQUFPLEdBQUdILENBQUMsQ0FBQ0UsVUFBRixDQUFhRSxVQUEzQjs7QUFDQSxTQUFPRCxPQUFQLEVBQWdCO0FBQ2QsUUFBSUEsT0FBTyxDQUFDRSxRQUFSLEtBQXFCLENBQXJCLElBQTBCRixPQUFPLEtBQUtILENBQTFDLEVBQTZDO0FBQzNDQyxNQUFBQSxRQUFRLENBQUNLLElBQVQsQ0FBY0gsT0FBZDtBQUNEOztBQUNEQSxJQUFBQSxPQUFPLEdBQUdBLE9BQU8sQ0FBQ0ksV0FBbEI7QUFDRDs7QUFDRCxTQUFPTixRQUFQO0FBQ0QsQ0FiRDs7QUFlQSwrREFBZUYsV0FBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tbW9uL2dldFNpYmxpbmdzLmpzPzhlNjUiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZ2V0U2libGluZ3MgPSAoZSkgPT4ge1xyXG4gIGxldCBzaWJsaW5ncyA9IFtdO1xyXG4gIGlmICghZS5wYXJlbnROb2RlKSB7XHJcbiAgICByZXR1cm4gc2libGluZ3M7XHJcbiAgfVxyXG4gIGxldCBzaWJsaW5nID0gZS5wYXJlbnROb2RlLmZpcnN0Q2hpbGQ7XHJcbiAgd2hpbGUgKHNpYmxpbmcpIHtcclxuICAgIGlmIChzaWJsaW5nLm5vZGVUeXBlID09PSAxICYmIHNpYmxpbmcgIT09IGUpIHtcclxuICAgICAgc2libGluZ3MucHVzaChzaWJsaW5nKTtcclxuICAgIH1cclxuICAgIHNpYmxpbmcgPSBzaWJsaW5nLm5leHRTaWJsaW5nO1xyXG4gIH1cclxuICByZXR1cm4gc2libGluZ3M7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBnZXRTaWJsaW5ncztcclxuIl0sIm5hbWVzIjpbImdldFNpYmxpbmdzIiwiZSIsInNpYmxpbmdzIiwicGFyZW50Tm9kZSIsInNpYmxpbmciLCJmaXJzdENoaWxkIiwibm9kZVR5cGUiLCJwdXNoIiwibmV4dFNpYmxpbmciXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/common/getSiblings.js\n"); + +/***/ }), + +/***/ "./src/common/navbar.js": +/*!******************************!*\ + !*** ./src/common/navbar.js ***! + \******************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"handleDropdown\": function() { return /* binding */ handleDropdown; },\n/* harmony export */ \"handleMobileDropdown\": function() { return /* binding */ handleMobileDropdown; }\n/* harmony export */ });\n/* harmony import */ var _getSiblings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getSiblings */ \"./src/common/getSiblings.js\");\n/* module decorator */ module = __webpack_require__.hmd(module);\n\nvar handleDropdown = function handleDropdown(e) {\n (0,_getSiblings__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(e.target.parentElement).filter(function (item) {\n return item.classList.contains(\"show\");\n }).map(function (item) {\n item.classList.remove(\"show\");\n\n if (item.childNodes[0]) {\n item.childNodes[0].setAttribute(\"aria-expanded\", false);\n }\n\n if (item.childNodes[1]) {\n item.childNodes[1].classList.remove(\"show\");\n }\n });\n e.target.parentElement.classList.toggle(\"show\");\n e.target.setAttribute(\"aria-expanded\", true);\n e.target.parentElement.childNodes[1].classList.toggle(\"show\");\n};\nvar handleMobileDropdown = function handleMobileDropdown(e) {\n document.getElementById(\"navbarSupportedContent\").classList.toggle(\"show-with-trans\");\n};\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL25hdmJhci5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7QUFFTyxJQUFNQyxjQUFjLEdBQUcsU0FBakJBLGNBQWlCLENBQUNDLENBQUQsRUFBTztBQUNuQ0YsRUFBQUEsd0RBQVcsQ0FBQ0UsQ0FBQyxDQUFDQyxNQUFGLENBQVNDLGFBQVYsQ0FBWCxDQUNHQyxNQURILENBQ1UsVUFBQ0MsSUFBRDtBQUFBLFdBQVVBLElBQUksQ0FBQ0MsU0FBTCxDQUFlQyxRQUFmLENBQXdCLE1BQXhCLENBQVY7QUFBQSxHQURWLEVBRUdDLEdBRkgsQ0FFTyxVQUFDSCxJQUFELEVBQVU7QUFDYkEsSUFBQUEsSUFBSSxDQUFDQyxTQUFMLENBQWVHLE1BQWYsQ0FBc0IsTUFBdEI7O0FBQ0EsUUFBSUosSUFBSSxDQUFDSyxVQUFMLENBQWdCLENBQWhCLENBQUosRUFBd0I7QUFDdEJMLE1BQUFBLElBQUksQ0FBQ0ssVUFBTCxDQUFnQixDQUFoQixFQUFtQkMsWUFBbkIsQ0FBZ0MsZUFBaEMsRUFBaUQsS0FBakQ7QUFDRDs7QUFDRCxRQUFJTixJQUFJLENBQUNLLFVBQUwsQ0FBZ0IsQ0FBaEIsQ0FBSixFQUF3QjtBQUN0QkwsTUFBQUEsSUFBSSxDQUFDSyxVQUFMLENBQWdCLENBQWhCLEVBQW1CSixTQUFuQixDQUE2QkcsTUFBN0IsQ0FBb0MsTUFBcEM7QUFDRDtBQUNGLEdBVkg7QUFXQVIsRUFBQUEsQ0FBQyxDQUFDQyxNQUFGLENBQVNDLGFBQVQsQ0FBdUJHLFNBQXZCLENBQWlDTSxNQUFqQyxDQUF3QyxNQUF4QztBQUNBWCxFQUFBQSxDQUFDLENBQUNDLE1BQUYsQ0FBU1MsWUFBVCxDQUFzQixlQUF0QixFQUF1QyxJQUF2QztBQUNBVixFQUFBQSxDQUFDLENBQUNDLE1BQUYsQ0FBU0MsYUFBVCxDQUF1Qk8sVUFBdkIsQ0FBa0MsQ0FBbEMsRUFBcUNKLFNBQXJDLENBQStDTSxNQUEvQyxDQUFzRCxNQUF0RDtBQUNELENBZk07QUFpQkEsSUFBTUMsb0JBQW9CLEdBQUcsU0FBdkJBLG9CQUF1QixDQUFDWixDQUFELEVBQU87QUFDekNhLEVBQUFBLFFBQVEsQ0FDTEMsY0FESCxDQUNrQix3QkFEbEIsRUFFR1QsU0FGSCxDQUVhTSxNQUZiLENBRW9CLGlCQUZwQjtBQUdELENBSk0iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbW1vbi9uYXZiYXIuanM/MWU3NiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0U2libGluZ3MgZnJvbSAnLi9nZXRTaWJsaW5ncydcclxuXHJcbmV4cG9ydCBjb25zdCBoYW5kbGVEcm9wZG93biA9IChlKSA9PiB7XHJcbiAgZ2V0U2libGluZ3MoZS50YXJnZXQucGFyZW50RWxlbWVudClcclxuICAgIC5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uY2xhc3NMaXN0LmNvbnRhaW5zKFwic2hvd1wiKSlcclxuICAgIC5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgaXRlbS5jbGFzc0xpc3QucmVtb3ZlKFwic2hvd1wiKTtcclxuICAgICAgaWYgKGl0ZW0uY2hpbGROb2Rlc1swXSkge1xyXG4gICAgICAgIGl0ZW0uY2hpbGROb2Rlc1swXS5zZXRBdHRyaWJ1dGUoXCJhcmlhLWV4cGFuZGVkXCIsIGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaXRlbS5jaGlsZE5vZGVzWzFdKSB7XHJcbiAgICAgICAgaXRlbS5jaGlsZE5vZGVzWzFdLmNsYXNzTGlzdC5yZW1vdmUoXCJzaG93XCIpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICBlLnRhcmdldC5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoXCJzaG93XCIpO1xyXG4gIGUudGFyZ2V0LnNldEF0dHJpYnV0ZShcImFyaWEtZXhwYW5kZWRcIiwgdHJ1ZSk7XHJcbiAgZS50YXJnZXQucGFyZW50RWxlbWVudC5jaGlsZE5vZGVzWzFdLmNsYXNzTGlzdC50b2dnbGUoXCJzaG93XCIpO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGhhbmRsZU1vYmlsZURyb3Bkb3duID0gKGUpID0+IHtcclxuICBkb2N1bWVudFxyXG4gICAgLmdldEVsZW1lbnRCeUlkKFwibmF2YmFyU3VwcG9ydGVkQ29udGVudFwiKVxyXG4gICAgLmNsYXNzTGlzdC50b2dnbGUoXCJzaG93LXdpdGgtdHJhbnNcIik7XHJcbn07Il0sIm5hbWVzIjpbImdldFNpYmxpbmdzIiwiaGFuZGxlRHJvcGRvd24iLCJlIiwidGFyZ2V0IiwicGFyZW50RWxlbWVudCIsImZpbHRlciIsIml0ZW0iLCJjbGFzc0xpc3QiLCJjb250YWlucyIsIm1hcCIsInJlbW92ZSIsImNoaWxkTm9kZXMiLCJzZXRBdHRyaWJ1dGUiLCJ0b2dnbGUiLCJoYW5kbGVNb2JpbGVEcm9wZG93biIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/common/navbar.js\n"); + +/***/ }), + +/***/ "./src/components/Blog-details/blog-details.jsx": +/*!******************************************************!*\ + !*** ./src/components/Blog-details/blog-details.jsx ***! + \******************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node_modules/@babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var formik__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! formik */ \"./node_modules/formik/dist/formik.esm.js\");\n/* harmony import */ var react_scroll__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-scroll */ \"./node_modules/react-scroll/modules/index.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__);\n/* module decorator */ module = __webpack_require__.hmd(module);\n\n\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Blog-details\\\\blog-details.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nvar BlogDetails = function BlogDetails(_ref) {\n _s();\n\n var theme = _ref.theme;\n var messageRef = react__WEBPACK_IMPORTED_MODULE_2___default().useRef(null);\n\n function validateEmail(value) {\n var error;\n\n if (!value) {\n error = \"Required\";\n } else if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i.test(value)) {\n error = \"Invalid email address\";\n }\n\n return error;\n }\n\n var sendMessage = function sendMessage(ms) {\n return new Promise(function (r) {\n return setTimeout(r, ms);\n });\n };\n\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"section\", {\n className: \"blog-pg single section-padding pt-0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"col-lg-11\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"post\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"img\", {\n src: \"/img/blog/single.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"content pt-60\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"col-lg-10\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"h4\", {\n className: \"extra-title\",\n children: \"Priorities that will pop up in any particular month.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"spacial\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"p\", {\n children: \"Never ever think of giving up. Winners never quit and quitters never win. Take all negative words out of your mental dictionary and focus on the solutions with utmost conviction and patience. The battle is never lost until you\\u2019ve abandon your vision.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"p\", {\n children: \"the main component of a healthy environment for self esteem is that it needs be nurturing. The main compont of a healthy environment for self esteem is that it needs be nurturing. The main component of a healthy env for self esteem The main compont be nurturing It should provide unconditional warmth. The main component of a healthy env for self esteem The main compont be nurturing It should provide unconditional\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"h6\", {\n children: \"- We all intend to plan ahead.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"p\", {\n children: \"We all intend to plan ahead, but too often let the day-to-day minutia get in the way of making a calendar for the year. Sure, you can\\u2019t know every detail to anticipate. Heck, you can\\u2019t know half the priorities that will pop up in any particular month. But you can plan for big picture seasonality, busy-times, and events.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"ul\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"span\", {\n children: \"01\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 27\n }, _this), \" Integer in volutpat libero.\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"span\", {\n children: \"02\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 27\n }, _this), \" Vivamus maximus ultricies pulvinar.\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"span\", {\n children: \"03\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 27\n }, _this), \" priorities that will pop up in any particular month.\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"span\", {\n children: \"04\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 27\n }, _this), \" We all intend to plan ahead.\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"span\", {\n children: \"05\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 27\n }, _this), \" The main component of a healthy env for self esteem.\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 82,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"quotes text-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"p\", {\n children: \"Never ever think of giving up. Winners never quit and quitters never win. Take all negative words out of your mental dictionary and focus on the solutions with utmost conviction and patience. The battle is never lost until you\\u2019ve abandon your vision.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"mb-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"img\", {\n src: \"/img/blog/2.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 100,\n columnNumber: 29\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 99,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 98,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"mb-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"img\", {\n src: \"/img/blog/3.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 105,\n columnNumber: 29\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 104,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 103,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"p\", {\n children: \"We all intend to plan ahead, but too often let the day-to-day minutia get in the way of making a calendar for the year. Sure, you can\\u2019t know every detail to anticipate. Heck, you can\\u2019t know half the priorities that will pop up in any particular month. But you can plan for big picture seasonality, busy-times, and events.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"share-info\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"social\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"i\", {\n className: \"fab fa-facebook-f\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 121,\n columnNumber: 29\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 27\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"i\", {\n className: \"fab fa-twitter\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 29\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 123,\n columnNumber: 27\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"i\", {\n className: \"fab fa-behance\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 29\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 27\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"tags\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: \"Web\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 27\n }, _this), \",\", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: \"Themeforest\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 48\n }, _this), \",\", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: \"ThemesCamp\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 27\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 23\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"author\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"author-img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"img\", {\n src: \"/img/blog/01.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 137,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"info\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"h6\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"span\", {\n children: \"author :\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 142,\n columnNumber: 27\n }, _this), \" Jorden Griffin\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 141,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"p\", {\n children: \"the main component of a healthy environment for self esteem is that it needs be nurturing. The main compont of a healthy environment.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 144,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"social\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"i\", {\n className: \"fab fa-facebook-f\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 151,\n columnNumber: 29\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 150,\n columnNumber: 27\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"i\", {\n className: \"fab fa-twitter\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 29\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 27\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"i\", {\n className: \"fab fa-behance\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 29\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 27\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 149,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 140,\n columnNumber: 23\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"pagination\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"span\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: \"Prev Post\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"span\", {\n className: \"icon\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_3___default()), {\n href: \"/blog/blog-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"a\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"i\", {\n className: \"fas fa-th-large\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 172,\n columnNumber: 21\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 171,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"span\", {\n className: \"text-right\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: \"Next Post\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"comments-area\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"h5\", {\n children: \"Comments :\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"comment-img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"img\", {\n src: \"/img/blog/01.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 21\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"info\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"h6\", {\n children: [\"Jorden Griffin - \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"span\", {\n children: \" 6 Aug 2022\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 40\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"span\", {\n className: \"replay\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(react_scroll__WEBPACK_IMPORTED_MODULE_5__.Link, {\n to: \"comment-form\",\n spy: true,\n smooth: true,\n offset: -150,\n duration: 500,\n children: [\"Replay \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"i\", {\n className: \"fas fa-reply\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 32\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"p\", {\n children: \"the main component of a healthy environment for self esteem is that it needs be nurturing. The main compont of a healthy environment.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"item relped\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"comment-img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"img\", {\n src: \"/img/blog/01.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 21\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"info\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"h6\", {\n children: [\"Jorden Griffin - \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"span\", {\n children: \" 6 Aug 2022\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 40\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"span\", {\n className: \"replay\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(react_scroll__WEBPACK_IMPORTED_MODULE_5__.Link, {\n to: \"comment-form\",\n spy: true,\n smooth: true,\n offset: -150,\n duration: 500,\n children: [\"Replay \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"i\", {\n className: \"fas fa-reply\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 32\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"p\", {\n children: \"the main component of a healthy environment for self esteem is that it needs be nurturing. The main compont of a healthy environment.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"comment-img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"img\", {\n src: \"/img/blog/01.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 21\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"info\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"h6\", {\n children: [\"Jorden Griffin - \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"span\", {\n children: \" 6 Aug 2022\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 242,\n columnNumber: 40\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 241,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"span\", {\n className: \"replay\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(react_scroll__WEBPACK_IMPORTED_MODULE_5__.Link, {\n to: \"comment-form\",\n spy: true,\n smooth: true,\n offset: -150,\n duration: 500,\n children: [\"Replay \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"i\", {\n className: \"fas fa-reply\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 32\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 244,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"p\", {\n children: \"the main component of a healthy environment for self esteem is that it needs be nurturing. The main compont of a healthy environment.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 255,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"comment-form\",\n id: \"comment-form\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"h5\", {\n children: \"Add Comment :\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 265,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"form\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(formik__WEBPACK_IMPORTED_MODULE_4__.Formik, {\n initialValues: {\n name: \"\",\n email: \"\",\n comment: \"\"\n },\n onSubmit: /*#__PURE__*/function () {\n var _ref2 = (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee(values) {\n return C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return sendMessage(500);\n\n case 2:\n alert(JSON.stringify(values, null, 2)); // Reset the values\n\n values.name = \"\";\n values.email = \"\";\n values.comment = \"\";\n\n case 6:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function (_x) {\n return _ref2.apply(this, arguments);\n };\n }(),\n children: function children(_ref3) {\n var errors = _ref3.errors,\n touched = _ref3.touched;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(formik__WEBPACK_IMPORTED_MODULE_4__.Form, {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"col-12\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"form-group\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(formik__WEBPACK_IMPORTED_MODULE_4__.Field, {\n as: \"textarea\",\n placeholder: \"Your Comment\",\n name: \"comment\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 287,\n columnNumber: 31\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 286,\n columnNumber: 29\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 285,\n columnNumber: 27\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"form-group\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(formik__WEBPACK_IMPORTED_MODULE_4__.Field, {\n type: \"text\",\n placeholder: \"Your Name\",\n name: \"name\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 296,\n columnNumber: 31\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 295,\n columnNumber: 29\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 294,\n columnNumber: 27\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"form-group\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(formik__WEBPACK_IMPORTED_MODULE_4__.Field, {\n type: \"email\",\n validate: validateEmail,\n placeholder: \"Your Email\",\n name: \"email\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 305,\n columnNumber: 31\n }, _this), errors.email && touched.email && /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n children: errors.email\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 312,\n columnNumber: 33\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 304,\n columnNumber: 29\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 303,\n columnNumber: 27\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"col-12\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"form-group text-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"button\", {\n type: \"submit\",\n className: \"nb butn \".concat(theme ? theme === \"light\" ? \"dark\" : \"\" : \"light\", \" curve full-width\"),\n children: \"Comment\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 318,\n columnNumber: 31\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 317,\n columnNumber: 29\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 316,\n columnNumber: 27\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 284,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 283,\n columnNumber: 23\n }, _this);\n }\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 266,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 264,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 5\n }, _this);\n};\n\n_s(BlogDetails, \"08wNPsqzPEHJlhuELMqsTELuLqk=\");\n\n_c = BlogDetails;\n/* harmony default export */ __webpack_exports__[\"default\"] = (BlogDetails);\n\nvar _c;\n\n$RefreshReg$(_c, \"BlogDetails\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9CbG9nLWRldGFpbHMvYmxvZy1kZXRhaWxzLmpzeC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFFQSxJQUFNTSxXQUFXLEdBQUcsU0FBZEEsV0FBYyxPQUFlO0FBQUE7O0FBQUEsTUFBWkMsS0FBWSxRQUFaQSxLQUFZO0FBQ2pDLE1BQU1DLFVBQVUsR0FBR1IsbURBQUEsQ0FBYSxJQUFiLENBQW5COztBQUNBLFdBQVNVLGFBQVQsQ0FBdUJDLEtBQXZCLEVBQThCO0FBQzVCLFFBQUlDLEtBQUo7O0FBQ0EsUUFBSSxDQUFDRCxLQUFMLEVBQVk7QUFDVkMsTUFBQUEsS0FBSyxHQUFHLFVBQVI7QUFDRCxLQUZELE1BRU8sSUFBSSxDQUFDLDRDQUE0Q0MsSUFBNUMsQ0FBaURGLEtBQWpELENBQUwsRUFBOEQ7QUFDbkVDLE1BQUFBLEtBQUssR0FBRyx1QkFBUjtBQUNEOztBQUNELFdBQU9BLEtBQVA7QUFDRDs7QUFDRCxNQUFNRSxXQUFXLEdBQUcsU0FBZEEsV0FBYyxDQUFDQyxFQUFEO0FBQUEsV0FBUSxJQUFJQyxPQUFKLENBQVksVUFBQ0MsQ0FBRDtBQUFBLGFBQU9DLFVBQVUsQ0FBQ0QsQ0FBRCxFQUFJRixFQUFKLENBQWpCO0FBQUEsS0FBWixDQUFSO0FBQUEsR0FBcEI7O0FBRUEsc0JBQ0U7QUFBUyxhQUFTLEVBQUMscUNBQW5CO0FBQUEsMkJBQ0U7QUFBSyxlQUFTLEVBQUMsV0FBZjtBQUFBLDZCQUNFO0FBQUssaUJBQVMsRUFBQyw0QkFBZjtBQUFBLCtCQUNFO0FBQUssbUJBQVMsRUFBQyxXQUFmO0FBQUEsaUNBQ0U7QUFBSyxxQkFBUyxFQUFDLE1BQWY7QUFBQSxvQ0FDRTtBQUFLLHVCQUFTLEVBQUMsS0FBZjtBQUFBLHFDQUNFO0FBQUssbUJBQUcsRUFBQyxzQkFBVDtBQUFnQyxtQkFBRyxFQUFDO0FBQXBDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtB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QUE7QUFBQTtBQUFBO0FBQUEsaUNBbkJGLGVBZ0NFO0FBQUssbUNBQVMsRUFBQyxRQUFmO0FBQUEsaURBQ0U7QUFBSyxxQ0FBUyxFQUFDLHdCQUFmO0FBQUEsbURBQ0U7QUFDRSxrQ0FBSSxFQUFDLFFBRFA7QUFFRSx1Q0FBUyxvQkFDUGIsS0FBSyxHQUNEQSxLQUFLLEtBQUssT0FBVixHQUNFLE1BREYsR0FFRSxFQUhELEdBSUQsT0FMRyxzQkFGWDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGlDQWhDRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLDZCQUREO0FBQUE7QUFmSDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFGRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBL09GO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsV0FERjtBQW9VRCxDQWpWRDs7R0FBTUQ7O0tBQUFBO0FBbVZOLCtEQUFlQSxXQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL0Jsb2ctZGV0YWlscy9ibG9nLWRldGFpbHMuanN4PzIxY2YiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcclxuaW1wb3J0IHsgRm9ybWlrLCBGb3JtLCBGaWVsZCB9IGZyb20gXCJmb3JtaWtcIjtcclxuaW1wb3J0IHsgTGluayBhcyBTY3JvbGxMaW5rIH0gZnJvbSBcInJlYWN0LXNjcm9sbFwiO1xyXG5cclxuY29uc3QgQmxvZ0RldGFpbHMgPSAoeyB0aGVtZSB9KSA9PiB7XHJcbiAgY29uc3QgbWVzc2FnZVJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcclxuICBmdW5jdGlvbiB2YWxpZGF0ZUVtYWlsKHZhbHVlKSB7XHJcbiAgICBsZXQgZXJyb3I7XHJcbiAgICBpZiAoIXZhbHVlKSB7XHJcbiAgICAgIGVycm9yID0gXCJSZXF1aXJlZFwiO1xyXG4gICAgfSBlbHNlIGlmICghL15bQS1aMC05Ll8lKy1dK0BbQS1aMC05Li1dK1xcLltBLVpdezIsNH0kL2kudGVzdCh2YWx1ZSkpIHtcclxuICAgICAgZXJyb3IgPSBcIkludmFsaWQgZW1haWwgYWRkcmVzc1wiO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGVycm9yO1xyXG4gIH1cclxuICBjb25zdCBzZW5kTWVzc2FnZSA9IChtcykgPT4gbmV3IFByb21pc2UoKHIpID0+IHNldFRpbWVvdXQociwgbXMpKTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cImJsb2ctcGcgc2luZ2xlIHNlY3Rpb24tcGFkZGluZyBwdC0wXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMTFcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwb3N0XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy9ibG9nL3NpbmdsZS5qcGdcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGVudCBwdC02MFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cImV4dHJhLXRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFByaW9yaXRpZXMgdGhhdCB3aWxsIHBvcCB1cCBpbiBhbnkgcGFydGljdWxhciBtb250aC5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvaDQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNwYWNpYWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgTmV2ZXIgZXZlciB0aGluayBvZiBnaXZpbmcgdXAuIFdpbm5lcnMgbmV2ZXIgcXVpdCBhbmRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBxdWl0dGVycyBuZXZlciB3aW4uIFRha2UgYWxsIG5lZ2F0aXZlIHdvcmRzIG91dCBvZlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHlvdXIgbWVudGFsIGRpY3Rpb25hcnkgYW5kIGZvY3VzIG9uIHRoZSBzb2x1dGlvbnMgd2l0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHV0bW9zdCBjb252aWN0aW9uIGFuZCBwYXRpZW5jZS4gVGhlIGJhdHRsZSBpcyBuZXZlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxvc3QgdW50aWwgeW914oCZdmUgYWJhbmRvbiB5b3VyIHZpc2lvbi5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhlIG1haW4gY29tcG9uZW50IG9mIGEgaGVhbHRoeSBlbnZpcm9ubWVudCBmb3Igc2VsZlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlc3RlZW0gaXMgdGhhdCBpdCBuZWVkcyBiZSBudXJ0dXJpbmcuIFRoZSBtYWluIGNvbXBvbnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgb2YgYSBoZWFsdGh5IGVudmlyb25tZW50IGZvciBzZWxmIGVzdGVlbSBpcyB0aGF0IGl0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRzIGJlIG51cnR1cmluZy4gVGhlIG1haW4gY29tcG9uZW50IG9mIGEgaGVhbHRoeSBlbnZcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHNlbGYgZXN0ZWVtIFRoZSBtYWluIGNvbXBvbnQgYmUgbnVydHVyaW5nIEl0IHNob3VsZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm92aWRlIHVuY29uZGl0aW9uYWwgd2FybXRoLiBUaGUgbWFpbiBjb21wb25lbnQgb2YgYVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFsdGh5IGVudiBmb3Igc2VsZiBlc3RlZW0gVGhlIG1haW4gY29tcG9udCBiZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBudXJ0dXJpbmcgSXQgc2hvdWxkIHByb3ZpZGUgdW5jb25kaXRpb25hbFxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgIDxoNj4tIFdlIGFsbCBpbnRlbmQgdG8gcGxhbiBhaGVhZC48L2g2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBXZSBhbGwgaW50ZW5kIHRvIHBsYW4gYWhlYWQsIGJ1dCB0b28gb2Z0ZW4gbGV0IHRoZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXktdG8tZGF5IG1pbnV0aWEgZ2V0IGluIHRoZSB3YXkgb2YgbWFraW5nIGEgY2FsZW5kYXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHRoZSB5ZWFyLiBTdXJlLCB5b3UgY2Fu4oCZdCBrbm93IGV2ZXJ5IGRldGFpbCB0b1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhbnRpY2lwYXRlLiBIZWNrLCB5b3UgY2Fu4oCZdCBrbm93IGhhbGYgdGhlIHByaW9yaXRpZXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdCB3aWxsIHBvcCB1cCBpbiBhbnkgcGFydGljdWxhciBtb250aC4gQnV0IHlvdSBjYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhbiBmb3IgYmlnIHBpY3R1cmUgc2Vhc29uYWxpdHksIGJ1c3ktdGltZXMsIGFuZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudHMuXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+MDE8L3NwYW4+IEludGVnZXIgaW4gdm9sdXRwYXQgbGliZXJvLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+MDI8L3NwYW4+IFZpdmFtdXMgbWF4aW11cyB1bHRyaWNpZXMgcHVsdmluYXIuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4wMzwvc3Bhbj4gcHJpb3JpdGllcyB0aGF0IHdpbGwgcG9wIHVwIGluIGFueVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnRpY3VsYXIgbW9udGguXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4wNDwvc3Bhbj4gV2UgYWxsIGludGVuZCB0byBwbGFuIGFoZWFkLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+MDU8L3NwYW4+IFRoZSBtYWluIGNvbXBvbmVudCBvZiBhIGhlYWx0aHkgZW52XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHNlbGYgZXN0ZWVtLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInF1b3RlcyB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBOZXZlciBldmVyIHRoaW5rIG9mIGdpdmluZyB1cC4gV2lubmVycyBuZXZlciBxdWl0IGFuZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHF1aXR0ZXJzIG5ldmVyIHdpbi4gVGFrZSBhbGwgbmVnYXRpdmUgd29yZHMgb3V0IG9mXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgeW91ciBtZW50YWwgZGljdGlvbmFyeSBhbmQgZm9jdXMgb24gdGhlIHNvbHV0aW9ucyB3aXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdXRtb3N0IGNvbnZpY3Rpb24gYW5kIHBhdGllbmNlLiBUaGUgYmF0dGxlIGlzIG5ldmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbG9zdCB1bnRpbCB5b3XigJl2ZSBhYmFuZG9uIHlvdXIgdmlzaW9uLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1iLTEwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvYmxvZy8yLmpwZ1wiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYi0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL2Jsb2cvMy5qcGdcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFdlIGFsbCBpbnRlbmQgdG8gcGxhbiBhaGVhZCwgYnV0IHRvbyBvZnRlbiBsZXQgdGhlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRheS10by1kYXkgbWludXRpYSBnZXQgaW4gdGhlIHdheSBvZiBtYWtpbmcgYSBjYWxlbmRhclxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgdGhlIHllYXIuIFN1cmUsIHlvdSBjYW7igJl0IGtub3cgZXZlcnkgZGV0YWlsIHRvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFudGljaXBhdGUuIEhlY2ssIHlvdSBjYW7igJl0IGtub3cgaGFsZiB0aGUgcHJpb3JpdGllc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0IHdpbGwgcG9wIHVwIGluIGFueSBwYXJ0aWN1bGFyIG1vbnRoLiBCdXQgeW91IGNhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFuIGZvciBiaWcgcGljdHVyZSBzZWFzb25hbGl0eSwgYnVzeS10aW1lcywgYW5kXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50cy5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2hhcmUtaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNvY2lhbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwiZmFiIGZhLWZhY2Vib29rLWZcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwiZmFiIGZhLXR3aXR0ZXJcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwiZmFiIGZhLWJlaGFuY2VcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0YWdzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiMwXCI+V2ViPC9hPiw8YSBocmVmPVwiIzBcIj5UaGVtZWZvcmVzdDwvYT4sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiMwXCI+VGhlbWVzQ2FtcDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImF1dGhvclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhdXRob3ItaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy9ibG9nLzAxLmpwZ1wiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+YXV0aG9yIDo8L3NwYW4+IEpvcmRlbiBHcmlmZmluXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBtYWluIGNvbXBvbmVudCBvZiBhIGhlYWx0aHkgZW52aXJvbm1lbnQgZm9yIHNlbGZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBlc3RlZW0gaXMgdGhhdCBpdCBuZWVkcyBiZSBudXJ0dXJpbmcuIFRoZSBtYWluIGNvbXBvbnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBvZiBhIGhlYWx0aHkgZW52aXJvbm1lbnQuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzb2NpYWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiIzBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhYiBmYS1mYWNlYm9vay1mXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiIzBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhYiBmYS10d2l0dGVyXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiIzBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhYiBmYS1iZWhhbmNlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwYWdpbmF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiMwXCI+UHJldiBQb3N0PC9hPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICA8TGluayBocmVmPXtgL2Jsb2cvYmxvZy1kYXJrYH0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGE+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYXMgZmEtdGgtbGFyZ2VcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjMFwiPk5leHQgUG9zdDwvYT5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb21tZW50cy1hcmVhXCI+XHJcbiAgICAgICAgICAgICAgICA8aDU+Q29tbWVudHMgOjwvaDU+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb21tZW50LWltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy9ibG9nLzAxLmpwZ1wiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICBKb3JkZW4gR3JpZmZpbiAtIDxzcGFuPiA2IEF1ZyAyMDIyPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwicmVwbGF5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8U2Nyb2xsTGlua1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0bz1cImNvbW1lbnQtZm9ybVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNweT17dHJ1ZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgc21vb3RoPXt0cnVlfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ9ey0xNTB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uPXs1MDB9XHJcbiAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlcGxheSA8aSBjbGFzc05hbWU9XCJmYXMgZmEtcmVwbHlcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L1Njcm9sbExpbms+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgdGhlIG1haW4gY29tcG9uZW50IG9mIGEgaGVhbHRoeSBlbnZpcm9ubWVudCBmb3Igc2VsZlxyXG4gICAgICAgICAgICAgICAgICAgICAgZXN0ZWVtIGlzIHRoYXQgaXQgbmVlZHMgYmUgbnVydHVyaW5nLiBUaGUgbWFpbiBjb21wb250IG9mXHJcbiAgICAgICAgICAgICAgICAgICAgICBhIGhlYWx0aHkgZW52aXJvbm1lbnQuXHJcbiAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIHJlbHBlZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbW1lbnQtaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL2Jsb2cvMDEuanBnXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoNj5cclxuICAgICAgICAgICAgICAgICAgICAgIEpvcmRlbiBHcmlmZmluIC0gPHNwYW4+IDYgQXVnIDIwMjI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJyZXBsYXlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxTY3JvbGxMaW5rXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvPVwiY29tbWVudC1mb3JtXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3B5PXt0cnVlfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzbW9vdGg9e3RydWV9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldD17LTE1MH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZHVyYXRpb249ezUwMH1cclxuICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgUmVwbGF5IDxpIGNsYXNzTmFtZT1cImZhcyBmYS1yZXBseVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvU2Nyb2xsTGluaz5cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGUgbWFpbiBjb21wb25lbnQgb2YgYSBoZWFsdGh5IGVudmlyb25tZW50IGZvciBzZWxmXHJcbiAgICAgICAgICAgICAgICAgICAgICBlc3RlZW0gaXMgdGhhdCBpdCBuZWVkcyBiZSBudXJ0dXJpbmcuIFRoZSBtYWluIGNvbXBvbnQgb2ZcclxuICAgICAgICAgICAgICAgICAgICAgIGEgaGVhbHRoeSBlbnZpcm9ubWVudC5cclxuICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb21tZW50LWltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy9ibG9nLzAxLmpwZ1wiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICBKb3JkZW4gR3JpZmZpbiAtIDxzcGFuPiA2IEF1ZyAyMDIyPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwicmVwbGF5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8U2Nyb2xsTGlua1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0bz1cImNvbW1lbnQtZm9ybVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNweT17dHJ1ZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgc21vb3RoPXt0cnVlfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ9ey0xNTB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uPXs1MDB9XHJcbiAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlcGxheSA8aSBjbGFzc05hbWU9XCJmYXMgZmEtcmVwbHlcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L1Njcm9sbExpbms+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgdGhlIG1haW4gY29tcG9uZW50IG9mIGEgaGVhbHRoeSBlbnZpcm9ubWVudCBmb3Igc2VsZlxyXG4gICAgICAgICAgICAgICAgICAgICAgZXN0ZWVtIGlzIHRoYXQgaXQgbmVlZHMgYmUgbnVydHVyaW5nLiBUaGUgbWFpbiBjb21wb250IG9mXHJcbiAgICAgICAgICAgICAgICAgICAgICBhIGhlYWx0aHkgZW52aXJvbm1lbnQuXHJcbiAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbW1lbnQtZm9ybVwiIGlkPVwiY29tbWVudC1mb3JtXCI+XHJcbiAgICAgICAgICAgICAgICA8aDU+QWRkIENvbW1lbnQgOjwvaDU+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZvcm1cIj5cclxuICAgICAgICAgICAgICAgICAgPEZvcm1pa1xyXG4gICAgICAgICAgICAgICAgICAgIGluaXRpYWxWYWx1ZXM9e3tcclxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICBlbWFpbDogXCJcIixcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbW1lbnQ6IFwiXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICBvblN1Ym1pdD17YXN5bmMgKHZhbHVlcykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgYXdhaXQgc2VuZE1lc3NhZ2UoNTAwKTtcclxuICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KEpTT04uc3RyaW5naWZ5KHZhbHVlcywgbnVsbCwgMikpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgLy8gUmVzZXQgdGhlIHZhbHVlc1xyXG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWVzLm5hbWUgPSBcIlwiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWVzLmVtYWlsID0gXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcy5jb21tZW50ID0gXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgeyh7IGVycm9ycywgdG91Y2hlZCB9KSA9PiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICA8Rm9ybT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGaWVsZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzPVwidGV4dGFyZWFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiWW91ciBDb21tZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiY29tbWVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZpZWxkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiWW91ciBOYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwibmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZpZWxkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImVtYWlsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0ZT17dmFsaWRhdGVFbWFpbH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIllvdXIgRW1haWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJlbWFpbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtlcnJvcnMuZW1haWwgJiYgdG91Y2hlZC5lbWFpbCAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj57ZXJyb3JzLmVtYWlsfTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtMTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9ybS1ncm91cCB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgbmIgYnV0biAke1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGVtZSA9PT0gXCJsaWdodFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBcImRhcmtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwibGlnaHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY3VydmUgZnVsbC13aWR0aGB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21tZW50XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9Gb3JtPlxyXG4gICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgIDwvRm9ybWlrPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBCbG9nRGV0YWlscztcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiTGluayIsIkZvcm1payIsIkZvcm0iLCJGaWVsZCIsIlNjcm9sbExpbmsiLCJCbG9nRGV0YWlscyIsInRoZW1lIiwibWVzc2FnZVJlZiIsInVzZVJlZiIsInZhbGlkYXRlRW1haWwiLCJ2YWx1ZSIsImVycm9yIiwidGVzdCIsInNlbmRNZXNzYWdlIiwibXMiLCJQcm9taXNlIiwiciIsInNldFRpbWVvdXQiLCJuYW1lIiwiZW1haWwiLCJjb21tZW50IiwidmFsdWVzIiwiYWxlcnQiLCJKU09OIiwic3RyaW5naWZ5IiwiZXJyb3JzIiwidG91Y2hlZCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Blog-details/blog-details.jsx\n"); + +/***/ }), + +/***/ "./src/components/Footer/footer.jsx": +/*!******************************************!*\ + !*** ./src/components/Footer/footer.jsx ***! + \******************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _data_app_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../data/app.json */ \"./src/data/app.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Footer\\\\footer.jsx\",\n _this = undefined;\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\nvar Footer = function Footer(_ref) {\n var hideBGCOLOR = _ref.hideBGCOLOR;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"footer\", {\n className: \"\".concat(!hideBGCOLOR ? \"sub-bg\" : \"\"),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item md-mb50\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"title\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h5\", {\n children: \"Contact Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"ul\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-map-marker\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Officeal Address\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"Baghdad Street, Al Dana area, Abu Dhabi, United Arab Emirates\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-mail\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Email Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"hello@businesshub.abudhabi\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-call\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Call Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"+971 26340404\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"logo\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.lightLogo,\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"social\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-facebook-f\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 51,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-twitter\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-instagram\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-youtube\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 61,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 60,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"copy-right\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"\\xA9 2024, 2024 Business HUB international investment - All Rights Reserved.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 5\n }, _this);\n};\n\n_c = Footer;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Footer);\n\nvar _c;\n\n$RefreshReg$(_c, \"Footer\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFQRixlQVVFO0FBQUcsb0JBQUksRUFBQyxJQUFSO0FBQUEsdUNBQ0U7QUFBRywyQkFBUyxFQUFDO0FBQWI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBVkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQUpGLGVBa0JFO0FBQUssdUJBQVMsRUFBQyxZQUFmO0FBQUEscUNBQ0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQWxCRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQW5DRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxXQURGO0FBcUVELENBdEVEOztLQUFNQztBQXdFTiwrREFBZUEsTUFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tcG9uZW50cy9Gb290ZXIvZm9vdGVyLmpzeD9mMzk0Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBuZXh0L25leHQvbm8taW1nLWVsZW1lbnQgKi9cclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgTGluayBmcm9tIFwibmV4dC9saW5rXCI7XHJcbmltcG9ydCBhcHBEYXRhIGZyb20gXCIuLi8uLi9kYXRhL2FwcC5qc29uXCI7XHJcblxyXG5jb25zdCBGb290ZXIgPSAoeyBoaWRlQkdDT0xPUiB9KSA9PiB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxmb290ZXIgY2xhc3NOYW1lPXtgJHshaGlkZUJHQ09MT1IgPyBcInN1Yi1iZ1wiIDogXCJcIn1gfT5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctNFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGl0bGVcIj5cclxuICAgICAgICAgICAgICAgIDxoNT5Db250YWN0IFVzPC9oNT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24gcGUtN3MtbWFwLW1hcmtlclwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg2Pk9mZmljZWFsIEFkZHJlc3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgQmFnaGRhZCBTdHJlZXQsIEFsIERhbmEgYXJlYSwgQWJ1IERoYWJpLCBVbml0ZWQgQXJhYlxyXG4gICAgICAgICAgICAgICAgICAgICAgRW1pcmF0ZXNcclxuICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvbiBwZS03cy1tYWlsXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+RW1haWwgVXM8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPmhlbGxvQGJ1c2luZXNzaHViLmFidWRoYWJpPC9wPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24gcGUtN3MtY2FsbFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg2PkNhbGwgVXM8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPis5NzEgMjYzNDA0MDQ8L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsb2dvXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz17YXBwRGF0YS5saWdodExvZ299IGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzb2NpYWxcIj5cclxuICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYWIgZmEtZmFjZWJvb2stZlwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYWIgZmEtdHdpdHRlclwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYWIgZmEtaW5zdGFncmFtXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgPGEgaHJlZj1cIiMwXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhYiBmYS15b3V0dWJlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29weS1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgIMKpIDIwMjQsIDIwMjQgQnVzaW5lc3MgSFVCIGludGVybmF0aW9uYWwgaW52ZXN0bWVudCAtIEFsbFxyXG4gICAgICAgICAgICAgICAgICBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9mb290ZXI+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IEZvb3RlcjtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiTGluayIsImFwcERhdGEiLCJGb290ZXIiLCJoaWRlQkdDT0xPUiIsImxpZ2h0TG9nbyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Footer/footer.jsx\n"); + +/***/ }), + +/***/ "./src/components/Navbar/navbar.jsx": +/*!******************************************!*\ + !*** ./src/components/Navbar/navbar.jsx ***! + \******************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _data_app_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../data/app.json */ \"./src/data/app.json\");\n/* harmony import */ var _common_navbar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/navbar */ \"./src/common/navbar.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Navbar\\\\navbar.jsx\",\n _this = undefined;\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nvar Navbar = function Navbar(_ref) {\n var lr = _ref.lr,\n nr = _ref.nr,\n theme = _ref.theme;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"nav\", {\n ref: nr,\n className: \"navbar navbar-expand-lg change \".concat(theme === \"themeL\" ? \"light\" : \"\"),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"a\", {\n className: \"logo\",\n children: theme ? theme === \"themeL\" ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n ref: lr,\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.darkLogo,\n alt: \"logo\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 17\n }, _this) : /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n ref: lr,\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.lightLogo,\n alt: \"logo\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 17\n }, _this) : /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n ref: lr,\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.lightLogo,\n alt: \"logo\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"button\", {\n className: \"navbar-toggler\",\n type: \"button\",\n onClick: _common_navbar__WEBPACK_IMPORTED_MODULE_3__.handleMobileDropdown,\n \"data-toggle\": \"collapse\",\n \"data-target\": \"#navbarSupportedContent\",\n \"aria-controls\": \"navbarSupportedContent\",\n \"aria-expanded\": \"false\",\n \"aria-label\": \"Toggle navigation\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"icon-bar\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"i\", {\n className: \"fas fa-bars\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"collapse navbar-collapse\",\n id: \"navbarSupportedContent\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"ul\", {\n className: \"navbar-nav ml-auto\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"nav-link \",\n children: \"Home\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/about\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"a\", {\n className: \"nav-link\",\n children: \"Who we are\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/services\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"nav-link\",\n children: \"Our Services\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 59,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/blog/blog-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"nav-link \",\n children: \"Blog\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/contact/contact-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"a\", {\n className: \"nav-link\",\n children: \"Contact\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 13\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, _this);\n};\n\n_c = Navbar;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Navbar);\n\nvar _c;\n\n$RefreshReg$(_c, \"Navbar\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFDLGtEQUFEO0FBQU0sa0JBQUksb0JBQVY7QUFBQSxxQ0FDRTtBQUFNLHlCQUFTLEVBQUMsV0FBaEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxtQkFoQkYsZUFxQkU7QUFBSSxxQkFBUyxFQUFDLFVBQWQ7QUFBQSxtQ0FDRSw4REFBQyxrREFBRDtBQUFNLGtCQUFJLDBCQUFWO0FBQUEscUNBQ0U7QUFBRyx5QkFBUyxFQUFDLFVBQWI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxtQkFyQkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxlQTlCRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFORjtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBREY7QUFxRUQsQ0F0RUQ7O0tBQU1DO0FBd0VOLCtEQUFlQSxNQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL05hdmJhci9uYXZiYXIuanN4PzdhZjAiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcclxuaW1wb3J0IGFwcERhdGEgZnJvbSBcIi4uLy4uL2RhdGEvYXBwLmpzb25cIjtcclxuaW1wb3J0IHsgaGFuZGxlRHJvcGRvd24sIGhhbmRsZU1vYmlsZURyb3Bkb3duIH0gZnJvbSBcIi4uLy4uL2NvbW1vbi9uYXZiYXJcIjtcclxuXHJcbmNvbnN0IE5hdmJhciA9ICh7IGxyLCBuciwgdGhlbWUgfSkgPT4ge1xyXG4gIHJldHVybiAoXHJcbiAgICA8bmF2XHJcbiAgICAgIHJlZj17bnJ9XHJcbiAgICAgIGNsYXNzTmFtZT17YG5hdmJhciBuYXZiYXItZXhwYW5kLWxnIGNoYW5nZSAke1xyXG4gICAgICAgIHRoZW1lID09PSBcInRoZW1lTFwiID8gXCJsaWdodFwiIDogXCJcIlxyXG4gICAgICB9YH1cclxuICAgID5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICA8TGluayBocmVmPVwiL1wiPlxyXG4gICAgICAgICAgPGEgY2xhc3NOYW1lPVwibG9nb1wiPlxyXG4gICAgICAgICAgICB7dGhlbWUgPyAoXHJcbiAgICAgICAgICAgICAgdGhlbWUgPT09IFwidGhlbWVMXCIgPyAoXHJcbiAgICAgICAgICAgICAgICA8aW1nIHJlZj17bHJ9IHNyYz17YXBwRGF0YS5kYXJrTG9nb30gYWx0PVwibG9nb1wiIC8+XHJcbiAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgIDxpbWcgcmVmPXtscn0gc3JjPXthcHBEYXRhLmxpZ2h0TG9nb30gYWx0PVwibG9nb1wiIC8+XHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgIDxpbWcgcmVmPXtscn0gc3JjPXthcHBEYXRhLmxpZ2h0TG9nb30gYWx0PVwibG9nb1wiIC8+XHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgPC9MaW5rPlxyXG5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICBjbGFzc05hbWU9XCJuYXZiYXItdG9nZ2xlclwiXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZU1vYmlsZURyb3Bkb3dufVxyXG4gICAgICAgICAgZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXHJcbiAgICAgICAgICBkYXRhLXRhcmdldD1cIiNuYXZiYXJTdXBwb3J0ZWRDb250ZW50XCJcclxuICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJuYXZiYXJTdXBwb3J0ZWRDb250ZW50XCJcclxuICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiXHJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiVG9nZ2xlIG5hdmlnYXRpb25cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24tYmFyXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhcyBmYS1iYXJzXCI+PC9pPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbGxhcHNlIG5hdmJhci1jb2xsYXBzZVwiIGlkPVwibmF2YmFyU3VwcG9ydGVkQ29udGVudFwiPlxyXG4gICAgICAgICAgPHVsIGNsYXNzTmFtZT1cIm5hdmJhci1uYXYgbWwtYXV0b1wiPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibmF2LWl0ZW0gXCI+XHJcbiAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9cIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm5hdi1saW5rIFwiPkhvbWU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibmF2LWl0ZW1cIj5cclxuICAgICAgICAgICAgICA8TGluayBocmVmPXtgL2Fib3V0YH0+XHJcbiAgICAgICAgICAgICAgICA8YSBjbGFzc05hbWU9XCJuYXYtbGlua1wiPldobyB3ZSBhcmU8L2E+XHJcbiAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibmF2LWl0ZW0gXCI+XHJcbiAgICAgICAgICAgICAgPExpbmsgaHJlZj17YC9zZXJ2aWNlc2B9PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibmF2LWxpbmtcIj5PdXIgU2VydmljZXM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibmF2LWl0ZW0gXCI+XHJcbiAgICAgICAgICAgICAgPExpbmsgaHJlZj17YC9ibG9nL2Jsb2ctbGlnaHRgfT5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm5hdi1saW5rIFwiPkJsb2c8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibmF2LWl0ZW1cIj5cclxuICAgICAgICAgICAgICA8TGluayBocmVmPXtgL2NvbnRhY3QvY29udGFjdC1saWdodGB9PlxyXG4gICAgICAgICAgICAgICAgPGEgY2xhc3NOYW1lPVwibmF2LWxpbmtcIj5Db250YWN0PC9hPlxyXG4gICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uYXY+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IE5hdmJhcjtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiTGluayIsImFwcERhdGEiLCJoYW5kbGVEcm9wZG93biIsImhhbmRsZU1vYmlsZURyb3Bkb3duIiwiTmF2YmFyIiwibHIiLCJuciIsInRoZW1lIiwiZGFya0xvZ28iLCJsaWdodExvZ28iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/components/Navbar/navbar.jsx\n"); + +/***/ }), + +/***/ "./src/components/Page-header/page-header.jsx": +/*!****************************************************!*\ + !*** ./src/components/Page-header/page-header.jsx ***! + \****************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Page-header\\\\page-header.jsx\",\n _this = undefined;\n\n\n\n\nvar PageHeader = function PageHeader(_ref) {\n var title = _ref.title,\n paragraph = _ref.paragraph,\n className = _ref.className;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"section\", {\n className: \"page-header \".concat(className && className),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"col-lg-7 col-md-9\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"cont text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"h1\", {\n className: \"mb-10 color-font\",\n children: title\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"p\", {\n children: paragraph\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 7,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 6,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 5,\n columnNumber: 7\n }, _this);\n};\n\n_c = PageHeader;\n/* harmony default export */ __webpack_exports__[\"default\"] = (PageHeader);\n\nvar _c;\n\n$RefreshReg$(_c, \"PageHeader\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9QYWdlLWhlYWRlci9wYWdlLWhlYWRlci5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7OztBQUVBLElBQU1DLFVBQVUsR0FBRyxTQUFiQSxVQUFhLE9BQW1DO0FBQUEsTUFBakNDLEtBQWlDLFFBQWpDQSxLQUFpQztBQUFBLE1BQTFCQyxTQUEwQixRQUExQkEsU0FBMEI7QUFBQSxNQUFmQyxTQUFlLFFBQWZBLFNBQWU7QUFDbEQsc0JBQ0U7QUFBUyxhQUFTLHdCQUFpQkEsU0FBUyxJQUFJQSxTQUE5QixDQUFsQjtBQUFBLDJCQUNFO0FBQUssZUFBUyxFQUFDLFdBQWY7QUFBQSw2QkFDRTtBQUFLLGlCQUFTLEVBQUMsNEJBQWY7QUFBQSwrQkFDRTtBQUFLLG1CQUFTLEVBQUMsbUJBQWY7QUFBQSxpQ0FDRTtBQUFLLHFCQUFTLEVBQUMsa0JBQWY7QUFBQSxvQ0FDRTtBQUFJLHVCQUFTLEVBQUMsa0JBQWQ7QUFBQSx3QkFBa0NGO0FBQWxDO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBREYsZUFFRTtBQUFBLHdCQUFJQztBQUFKO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBRkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxXQURGO0FBY0gsQ0FmRDs7S0FBTUY7QUFpQk4sK0RBQWVBLFVBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbXBvbmVudHMvUGFnZS1oZWFkZXIvcGFnZS1oZWFkZXIuanN4P2Q0NDMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xyXG5cclxuY29uc3QgUGFnZUhlYWRlciA9ICh7dGl0bGUsIHBhcmFncmFwaCwgY2xhc3NOYW1lfSkgPT4ge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPXtgcGFnZS1oZWFkZXIgJHtjbGFzc05hbWUgJiYgY2xhc3NOYW1lfWB9PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTcgY29sLW1kLTlcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnQgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxoMSBjbGFzc05hbWU9XCJtYi0xMCBjb2xvci1mb250XCI+e3RpdGxlfTwvaDE+XHJcbiAgICAgICAgICAgICAgICA8cD57cGFyYWdyYXBofTwvcD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9zZWN0aW9uPlxyXG4gICAgKTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgUGFnZUhlYWRlcjsiXSwibmFtZXMiOlsiUmVhY3QiLCJQYWdlSGVhZGVyIiwidGl0bGUiLCJwYXJhZ3JhcGgiLCJjbGFzc05hbWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/components/Page-header/page-header.jsx\n"); + +/***/ }), + +/***/ "./src/layouts/Light.jsx": +/*!*******************************!*\ + !*** ./src/layouts/Light.jsx ***! + \*******************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/head */ \"./node_modules/next/head.js\");\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_head__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\layouts\\\\Light.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n/* eslint-disable @next/next/no-css-tags */\n\n\n\n\n\nvar LightTheme = function LightTheme(_ref) {\n _s();\n\n var children = _ref.children,\n mobileappstyle = _ref.mobileappstyle;\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n window.theme = \"light\";\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)((next_head__WEBPACK_IMPORTED_MODULE_1___default()), {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"link\", {\n rel: \"stylesheet\",\n href: \"/css/light.css\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 9\n }, _this), mobileappstyle ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"link\", {\n href: \"/css/mobile-app-light.css\",\n rel: \"stylesheet\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 28\n }, _this) : null]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 7\n }, _this), children]\n }, void 0, true);\n};\n\n_s(LightTheme, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = LightTheme;\n/* harmony default export */ __webpack_exports__[\"default\"] = (LightTheme);\n\nvar _c;\n\n$RefreshReg$(_c, \"LightTheme\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvbGF5b3V0cy9MaWdodC5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBOzs7O0FBRUEsSUFBTUUsVUFBVSxHQUFHLFNBQWJBLFVBQWEsT0FBa0M7QUFBQTs7QUFBQSxNQUEvQkMsUUFBK0IsUUFBL0JBLFFBQStCO0FBQUEsTUFBckJDLGNBQXFCLFFBQXJCQSxjQUFxQjtBQUNuREosRUFBQUEsc0RBQUEsQ0FBZ0IsWUFBTTtBQUNwQk0sSUFBQUEsTUFBTSxDQUFDQyxLQUFQLEdBQWUsT0FBZjtBQUNELEdBRkQsRUFFRyxFQUZIO0FBR0Esc0JBQ0U7QUFBQSw0QkFDRSw4REFBQyxrREFBRDtBQUFBLDhCQUNFO0FBQU0sV0FBRyxFQUFDLFlBQVY7QUFBdUIsWUFBSSxFQUFDO0FBQTVCO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFERixFQUVHSCxjQUFjLGdCQUFJO0FBQU0sWUFBSSxFQUFDLDJCQUFYO0FBQXVDLFdBQUcsRUFBQztBQUEzQztBQUFBO0FBQUE7QUFBQTtBQUFBLGVBQUosR0FBbUUsSUFGcEY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBREYsRUFLR0QsUUFMSDtBQUFBLGtCQURGO0FBU0QsQ0FiRDs7R0FBTUQ7O0tBQUFBO0FBZU4sK0RBQWVBLFVBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2xheW91dHMvTGlnaHQuanN4PzM5YzIiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1jc3MtdGFncyAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBIZWFkIGZyb20gXCJuZXh0L2hlYWRcIjtcclxuXHJcbmNvbnN0IExpZ2h0VGhlbWUgPSAoeyBjaGlsZHJlbiwgbW9iaWxlYXBwc3R5bGUgfSkgPT4ge1xyXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICB3aW5kb3cudGhlbWUgPSBcImxpZ2h0XCI7XHJcbiAgfSwgW10pO1xyXG4gIHJldHVybiAoXHJcbiAgICA8PlxyXG4gICAgICA8SGVhZD5cclxuICAgICAgICA8bGluayByZWw9XCJzdHlsZXNoZWV0XCIgaHJlZj1cIi9jc3MvbGlnaHQuY3NzXCIgLz5cclxuICAgICAgICB7bW9iaWxlYXBwc3R5bGUgPyAoPGxpbmsgaHJlZj1cIi9jc3MvbW9iaWxlLWFwcC1saWdodC5jc3NcIiByZWw9XCJzdHlsZXNoZWV0XCIgLz4pIDogKG51bGwpfVxyXG4gICAgICA8L0hlYWQ+XHJcbiAgICAgIHtjaGlsZHJlbn1cclxuICAgIDwvPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBMaWdodFRoZW1lO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJIZWFkIiwiTGlnaHRUaGVtZSIsImNoaWxkcmVuIiwibW9iaWxlYXBwc3R5bGUiLCJ1c2VFZmZlY3QiLCJ3aW5kb3ciLCJ0aGVtZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/layouts/Light.jsx\n"); + +/***/ }), + +/***/ "./src/pages/blog-details/blog-details-4.jsx": +/*!***************************************************!*\ + !*** ./src/pages/blog-details/blog-details-4.jsx ***! + \***************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node_modules/@babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _data_blog3_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../data/blog3.json */ \"./src/data/blog3.json\");\n/* harmony import */ var _layouts_Light__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../layouts/Light */ \"./src/layouts/Light.jsx\");\n/* harmony import */ var _components_Navbar_navbar__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../components/Navbar/navbar */ \"./src/components/Navbar/navbar.jsx\");\n/* harmony import */ var _components_Blog_details_blog_details__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../components/Blog-details/blog-details */ \"./src/components/Blog-details/blog-details.jsx\");\n/* harmony import */ var _components_Page_header_page_header__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../components/Page-header/page-header */ \"./src/components/Page-header/page-header.jsx\");\n/* harmony import */ var _components_Footer_footer__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../components/Footer/footer */ \"./src/components/Footer/footer.jsx\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var formik__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! formik */ \"./node_modules/formik/dist/formik.esm.js\");\n/* harmony import */ var react_scroll__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! react-scroll */ \"./node_modules/react-scroll/modules/index.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__);\n/* module decorator */ module = __webpack_require__.hmd(module);\n\n\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\pages\\\\blog-details\\\\blog-details-4.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar BlogDetailsFour = function BlogDetailsFour() {\n _s();\n\n var navbarRef = react__WEBPACK_IMPORTED_MODULE_2___default().useRef(null);\n var logoRef = react__WEBPACK_IMPORTED_MODULE_2___default().useRef(null);\n react__WEBPACK_IMPORTED_MODULE_2___default().useEffect(function () {\n var navbar = navbarRef.current,\n logo = logoRef.current;\n\n if (window.pageYOffset > 300) {\n navbar.classList.add(\"nav-scroll\");\n } else {\n navbar.classList.remove(\"nav-scroll\");\n }\n\n window.addEventListener(\"scroll\", function () {\n if (window.pageYOffset > 300) {\n navbar.classList.add(\"nav-scroll\");\n } else {\n navbar.classList.remove(\"nav-scroll\");\n }\n });\n }, [navbarRef]);\n var messageRef = react__WEBPACK_IMPORTED_MODULE_2___default().useRef(null);\n\n function validateEmail(value) {\n var error;\n\n if (!value) {\n error = \"Required\";\n } else if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i.test(value)) {\n error = \"Invalid email address\";\n }\n\n return error;\n }\n\n var sendMessage = function sendMessage(ms) {\n return new Promise(function (r) {\n return setTimeout(r, ms);\n });\n };\n\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(_layouts_Light__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"circle-bg\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"circle-color fixed\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"gradient-circle\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"gradient-circle two\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(_components_Navbar_navbar__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n nr: navbarRef,\n lr: logoRef,\n theme: \"themeL\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(_components_Page_header_page_header__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n title: \"Blogs.\",\n paragraph: \"All the most current news and events of our creative team.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"section\", {\n className: \"blog-pg single section-padding pt-0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"col-lg-11\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"post\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"content pt-60\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"col-lg-10\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"h4\", {\n className: \"extra-title\",\n children: \"The importance of consulting in practical success\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"spacial\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"p\", {\n children: \"When we talk about the business world, consulting plays a crucial role in the success and continuity of companies. Here are some points that highlight the importance of consultations in this context:\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"h6\", {\n children: \" 1. Strategic expertise :\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"p\", {\n children: \"Consulting provides companies with the possibility of benefiting from external strategic expertise. Through experienced consultants, companies can access strategic insights and guidance that help them better achieve their goals.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 78,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"h6\", {\n children: \"2. Multiple specializations :\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"p\", {\n children: \"Consulting firms can provide a wide range of services and specializations, including management consulting, marketing, technology, and others. This allows companies to benefit from multiple expertise to meet their different needs.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 86,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"h6\", {\n children: \"3. Reduce costs and increase efficiency : \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"p\", {\n children: \"Instead of hiring in-house staff to provide specific services, companies can hire the services of consultants as needed. This reduces fixed costs and allows for greater efficiency in the use of resources.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"h6\", {\n children: \"4. New insights and exchange of ideas :\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 100,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"p\", {\n children: \"Consultants can provide new insights and different perspectives to companies, helping them solve problems and achieve success. Interaction with consultants can also contribute to exchanging ideas and stimulating the creativity process within the company.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 101,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"h6\", {\n children: \"5. Technical modernization and innovation :\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 108,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"p\", {\n children: \"In the era of rapidly developing technology, companies can benefit from the expertise of consultants in adopting new technology and applying the latest innovations in their field of work.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"h6\", {\n children: \"6. Dealing with challenges and changes : \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"p\", {\n children: \"The business world lives in a time full of challenges and rapid changes. Consulting provides companies with the ability to adapt to these challenges and make the right decisions under changing circumstances.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"h6\", {\n children: \"7. Developing skills and abilities :\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 122,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"p\", {\n children: [\" \", \"By collaborating with professional consultants, employees within the company can develop their skills and abilities, which helps them grow personally and professionally.\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 123,\n columnNumber: 25\n }, _this), \" \"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"p\", {\n children: \"In short, it can be said that consulting represents an integral part of a successful business strategy, as it contributes to providing the expertise and insights necessary to meet challenges and achieve success in the rapidly changing business environment.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 23\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 21\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"comment-form\",\n id: \"comment-form\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"h5\", {\n children: \"Add Comment :\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"form\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(formik__WEBPACK_IMPORTED_MODULE_10__.Formik, {\n initialValues: {\n name: \"\",\n email: \"\",\n comment: \"\"\n },\n onSubmit: /*#__PURE__*/function () {\n var _ref = (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee(values) {\n return C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return sendMessage(500);\n\n case 2:\n alert(JSON.stringify(values, null, 2)); // Reset the values\n\n values.name = \"\";\n values.email = \"\";\n values.comment = \"\";\n\n case 6:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function (_x) {\n return _ref.apply(this, arguments);\n };\n }(),\n children: function children(_ref2) {\n var errors = _ref2.errors,\n touched = _ref2.touched;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(formik__WEBPACK_IMPORTED_MODULE_10__.Form, {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"col-12\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"form-group\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(formik__WEBPACK_IMPORTED_MODULE_10__.Field, {\n as: \"textarea\",\n placeholder: \"Your Comment\",\n name: \"comment\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 33\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 31\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 29\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"form-group\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(formik__WEBPACK_IMPORTED_MODULE_10__.Field, {\n type: \"text\",\n placeholder: \"Your Name\",\n name: \"name\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 33\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 31\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 29\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"form-group\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(formik__WEBPACK_IMPORTED_MODULE_10__.Field, {\n type: \"email\",\n validate: validateEmail,\n placeholder: \"Your Email\",\n name: \"email\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 33\n }, _this), errors.email && touched.email && /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n children: errors.email\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 35\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 31\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 29\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"col-12\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"div\", {\n className: \"form-group text-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(\"button\", {\n type: \"submit\",\n className: \" butn butns curve full-width\",\n children: \"Comment\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 33\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 31\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 29\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 25\n }, _this);\n }\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 160,\n columnNumber: 21\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 159,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 61,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 60,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 59,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(_components_Footer_footer__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 230,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 5\n }, _this);\n};\n\n_s(BlogDetailsFour, \"poyMtQIxX4dahY62157f6pNEpNQ=\");\n\n_c = BlogDetailsFour;\n/* harmony default export */ __webpack_exports__[\"default\"] = (BlogDetailsFour);\n\nvar _c;\n\n$RefreshReg$(_c, \"BlogDetailsFour\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvcGFnZXMvYmxvZy1kZXRhaWxzL2Jsb2ctZGV0YWlscy00LmpzeC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFFQSxJQUFNWSxlQUFlLEdBQUcsU0FBbEJBLGVBQWtCLEdBQU07QUFBQTs7QUFDNUIsTUFBTUMsU0FBUyxHQUFHYixtREFBQSxDQUFhLElBQWIsQ0FBbEI7QUFDQSxNQUFNZSxPQUFPLEdBQUdmLG1EQUFBLENBQWEsSUFBYixDQUFoQjtBQUVBQSxFQUFBQSxzREFBQSxDQUFnQixZQUFNO0FBQ3BCLFFBQUlpQixNQUFNLEdBQUdKLFNBQVMsQ0FBQ0ssT0FBdkI7QUFBQSxRQUNFQyxJQUFJLEdBQUdKLE9BQU8sQ0FBQ0csT0FEakI7O0FBRUEsUUFBSUUsTUFBTSxDQUFDQyxXQUFQLEdBQXFCLEdBQXpCLEVBQThCO0FBQzVCSixNQUFBQSxNQUFNLENBQUNLLFNBQVAsQ0FBaUJDLEdBQWpCLENBQXFCLFlBQXJCO0FBQ0QsS0FGRCxNQUVPO0FBQ0xOLE1BQUFBLE1BQU0sQ0FBQ0ssU0FBUCxDQUFpQkUsTUFBakIsQ0FBd0IsWUFBeEI7QUFDRDs7QUFDREosSUFBQUEsTUFBTSxDQUFDSyxnQkFBUCxDQUF3QixRQUF4QixFQUFrQyxZQUFNO0FBQ3RDLFVBQUlMLE1BQU0sQ0FBQ0MsV0FBUCxHQUFxQixHQUF6QixFQUE4QjtBQUM1QkosUUFBQUEsTUFBTSxDQUFDSyxTQUFQLENBQWlCQyxHQUFqQixDQUFxQixZQUFyQjtBQUNELE9BRkQsTUFFTztBQUNMTixRQUFBQSxNQUFNLENBQUNLLFNBQVAsQ0FBaUJFLE1BQWpCLENBQXdCLFlBQXhCO0FBQ0Q7QUFDRixLQU5EO0FBT0QsR0FmRCxFQWVHLENBQUNYLFNBQUQsQ0FmSDtBQWdCQSxNQUFNYSxVQUFVLEdBQUcxQixtREFBQSxDQUFhLElBQWIsQ0FBbkI7O0FBQ0EsV0FBUzJC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Z0NFO0FBQUsscUNBQVMsRUFBQyxRQUFmO0FBQUEsbURBQ0U7QUFBSyx1Q0FBUyxFQUFDLHdCQUFmO0FBQUEscURBQ0U7QUFDRSxvQ0FBSSxFQUFDLFFBRFA7QUFFRSx5Q0FBUyxFQUFDLCtCQUZaO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsbUNBaENGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsK0JBREQ7QUFBQTtBQWZIO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLHlCQUZGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFoR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxhQVpGLGVBeUxFLCtEQUFDLGlFQUFEO0FBQUE7QUFBQTtBQUFBO0FBQUEsYUF6TEY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBREY7QUE2TEQsQ0E3TkQ7O0dBQU16Qjs7S0FBQUE7QUErTk4sK0RBQWVBLGVBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL3BhZ2VzL2Jsb2ctZGV0YWlscy9ibG9nLWRldGFpbHMtNC5qc3g/YTA1MiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBibG9nM0RhdGEgZnJvbSBcIi4uLy4uL2RhdGEvYmxvZzMuanNvblwiO1xyXG5pbXBvcnQgTGlnaHRUaGVtZSBmcm9tIFwiLi4vLi4vbGF5b3V0cy9MaWdodFwiO1xyXG5pbXBvcnQgTmF2YmFyIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL05hdmJhci9uYXZiYXJcIjtcclxuaW1wb3J0IEJsb2dEZXRhaWxzIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL0Jsb2ctZGV0YWlscy9ibG9nLWRldGFpbHNcIjtcclxuaW1wb3J0IFBhZ2VIZWFkZXIgZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvUGFnZS1oZWFkZXIvcGFnZS1oZWFkZXJcIjtcclxuaW1wb3J0IEZvb3RlciBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9Gb290ZXIvZm9vdGVyXCI7XHJcbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcclxuaW1wb3J0IHsgRm9ybWlrLCBGb3JtLCBGaWVsZCB9IGZyb20gXCJmb3JtaWtcIjtcclxuaW1wb3J0IHsgTGluayBhcyBTY3JvbGxMaW5rIH0gZnJvbSBcInJlYWN0LXNjcm9sbFwiO1xyXG5cclxuY29uc3QgQmxvZ0RldGFpbHNGb3VyID0gKCkgPT4ge1xyXG4gIGNvbnN0IG5hdmJhclJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcclxuICBjb25zdCBsb2dvUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xyXG5cclxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgdmFyIG5hdmJhciA9IG5hdmJhclJlZi5jdXJyZW50LFxyXG4gICAgICBsb2dvID0gbG9nb1JlZi5jdXJyZW50O1xyXG4gICAgaWYgKHdpbmRvdy5wYWdlWU9mZnNldCA+IDMwMCkge1xyXG4gICAgICBuYXZiYXIuY2xhc3NMaXN0LmFkZChcIm5hdi1zY3JvbGxcIik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBuYXZiYXIuY2xhc3NMaXN0LnJlbW92ZShcIm5hdi1zY3JvbGxcIik7XHJcbiAgICB9XHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCAoKSA9PiB7XHJcbiAgICAgIGlmICh3aW5kb3cucGFnZVlPZmZzZXQgPiAzMDApIHtcclxuICAgICAgICBuYXZiYXIuY2xhc3NMaXN0LmFkZChcIm5hdi1zY3JvbGxcIik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbmF2YmFyLmNsYXNzTGlzdC5yZW1vdmUoXCJuYXYtc2Nyb2xsXCIpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9LCBbbmF2YmFyUmVmXSk7XHJcbiAgY29uc3QgbWVzc2FnZVJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcclxuICBmdW5jdGlvbiB2YWxpZGF0ZUVtYWlsKHZhbHVlKSB7XHJcbiAgICBsZXQgZXJyb3I7XHJcbiAgICBpZiAoIXZhbHVlKSB7XHJcbiAgICAgIGVycm9yID0gXCJSZXF1aXJlZFwiO1xyXG4gICAgfSBlbHNlIGlmICghL15bQS1aMC05Ll8lKy1dK0BbQS1aMC05Li1dK1xcLltBLVpdezIsNH0kL2kudGVzdCh2YWx1ZSkpIHtcclxuICAgICAgZXJyb3IgPSBcIkludmFsaWQgZW1haWwgYWRkcmVzc1wiO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGVycm9yO1xyXG4gIH1cclxuICBjb25zdCBzZW5kTWVzc2FnZSA9IChtcykgPT4gbmV3IFByb21pc2UoKHIpID0+IHNldFRpbWVvdXQociwgbXMpKTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxMaWdodFRoZW1lPlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNpcmNsZS1iZ1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2lyY2xlLWNvbG9yIGZpeGVkXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyYWRpZW50LWNpcmNsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmFkaWVudC1jaXJjbGUgdHdvXCI+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8TmF2YmFyIG5yPXtuYXZiYXJSZWZ9IGxyPXtsb2dvUmVmfSB0aGVtZT1cInRoZW1lTFwiIC8+XHJcbiAgICAgIDxQYWdlSGVhZGVyXHJcbiAgICAgICAgdGl0bGU9XCJCbG9ncy5cIlxyXG4gICAgICAgIHBhcmFncmFwaD1cIkFsbCB0aGUgbW9zdCBjdXJyZW50IG5ld3MgYW5kIGV2ZW50cyBvZiBvdXIgY3JlYXRpdmUgdGVhbS5cIlxyXG4gICAgICAvPlxyXG4gICAgICA8c2VjdGlvbiBjbGFzc05hbWU9XCJibG9nLXBnIHNpbmdsZSBzZWN0aW9uLXBhZGRpbmcgcHQtMFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTExXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwb3N0XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRlbnQgcHQtNjBcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTEwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cImV4dHJhLXRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIGltcG9ydGFuY2Ugb2YgY29uc3VsdGluZyBpbiBwcmFjdGljYWwgc3VjY2Vzc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2g0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNwYWNpYWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdoZW4gd2UgdGFsayBhYm91dCB0aGUgYnVzaW5lc3Mgd29ybGQsIGNvbnN1bHRpbmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXlzIGEgY3J1Y2lhbCByb2xlIGluIHRoZSBzdWNjZXNzIGFuZCBjb250aW51aXR5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZiBjb21wYW5pZXMuIEhlcmUgYXJlIHNvbWUgcG9pbnRzIHRoYXQgaGlnaGxpZ2h0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgaW1wb3J0YW5jZSBvZiBjb25zdWx0YXRpb25zIGluIHRoaXMgY29udGV4dDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDY+IDEuIFN0cmF0ZWdpYyBleHBlcnRpc2UgOjwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIENvbnN1bHRpbmcgcHJvdmlkZXMgY29tcGFuaWVzIHdpdGggdGhlIHBvc3NpYmlsaXR5IG9mXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYmVuZWZpdGluZyBmcm9tIGV4dGVybmFsIHN0cmF0ZWdpYyBleHBlcnRpc2UuIFRocm91Z2hcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlcmllbmNlZCBjb25zdWx0YW50cywgY29tcGFuaWVzIGNhbiBhY2Nlc3NcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJhdGVnaWMgaW5zaWdodHMgYW5kIGd1aWRhbmNlIHRoYXQgaGVscCB0aGVtIGJldHRlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFjaGlldmUgdGhlaXIgZ29hbHMuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGg2PjIuIE11bHRpcGxlIHNwZWNpYWxpemF0aW9ucyA6PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uc3VsdGluZyBmaXJtcyBjYW4gcHJvdmlkZSBhIHdpZGUgcmFuZ2Ugb2Ygc2VydmljZXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgc3BlY2lhbGl6YXRpb25zLCBpbmNsdWRpbmcgbWFuYWdlbWVudCBjb25zdWx0aW5nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtldGluZywgdGVjaG5vbG9neSwgYW5kIG90aGVycy4gVGhpcyBhbGxvd3NcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wYW5pZXMgdG8gYmVuZWZpdCBmcm9tIG11bHRpcGxlIGV4cGVydGlzZSB0byBtZWV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlaXIgZGlmZmVyZW50IG5lZWRzLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoNj4zLiBSZWR1Y2UgY29zdHMgYW5kIGluY3JlYXNlIGVmZmljaWVuY3kgOiA8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBJbnN0ZWFkIG9mIGhpcmluZyBpbi1ob3VzZSBzdGFmZiB0byBwcm92aWRlIHNwZWNpZmljXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmljZXMsIGNvbXBhbmllcyBjYW4gaGlyZSB0aGUgc2VydmljZXMgb2ZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdWx0YW50cyBhcyBuZWVkZWQuIFRoaXMgcmVkdWNlcyBmaXhlZCBjb3N0cyBhbmRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvd3MgZm9yIGdyZWF0ZXIgZWZmaWNpZW5jeSBpbiB0aGUgdXNlIG9mIHJlc291cmNlcy5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDY+NC4gTmV3IGluc2lnaHRzIGFuZCBleGNoYW5nZSBvZiBpZGVhcyA6PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uc3VsdGFudHMgY2FuIHByb3ZpZGUgbmV3IGluc2lnaHRzIGFuZCBkaWZmZXJlbnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJzcGVjdGl2ZXMgdG8gY29tcGFuaWVzLCBoZWxwaW5nIHRoZW0gc29sdmUgcHJvYmxlbXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgYWNoaWV2ZSBzdWNjZXNzLiBJbnRlcmFjdGlvbiB3aXRoIGNvbnN1bHRhbnRzIGNhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFsc28gY29udHJpYnV0ZSB0byBleGNoYW5naW5nIGlkZWFzIGFuZCBzdGltdWxhdGluZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBjcmVhdGl2aXR5IHByb2Nlc3Mgd2l0aGluIHRoZSBjb21wYW55LlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoNj41LiBUZWNobmljYWwgbW9kZXJuaXphdGlvbiBhbmQgaW5ub3ZhdGlvbiA6PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgSW4gdGhlIGVyYSBvZiByYXBpZGx5IGRldmVsb3BpbmcgdGVjaG5vbG9neSwgY29tcGFuaWVzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2FuIGJlbmVmaXQgZnJvbSB0aGUgZXhwZXJ0aXNlIG9mIGNvbnN1bHRhbnRzIGluXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYWRvcHRpbmcgbmV3IHRlY2hub2xvZ3kgYW5kIGFwcGx5aW5nIHRoZSBsYXRlc3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBpbm5vdmF0aW9ucyBpbiB0aGVpciBmaWVsZCBvZiB3b3JrLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoNj42LiBEZWFsaW5nIHdpdGggY2hhbGxlbmdlcyBhbmQgY2hhbmdlcyA6IDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBidXNpbmVzcyB3b3JsZCBsaXZlcyBpbiBhIHRpbWUgZnVsbCBvZiBjaGFsbGVuZ2VzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIHJhcGlkIGNoYW5nZXMuIENvbnN1bHRpbmcgcHJvdmlkZXMgY29tcGFuaWVzIHdpdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgYWJpbGl0eSB0byBhZGFwdCB0byB0aGVzZSBjaGFsbGVuZ2VzIGFuZCBtYWtlIHRoZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0IGRlY2lzaW9ucyB1bmRlciBjaGFuZ2luZyBjaXJjdW1zdGFuY2VzLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoNj43LiBEZXZlbG9waW5nIHNraWxscyBhbmQgYWJpbGl0aWVzIDo8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB7XCIgXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQnkgY29sbGFib3JhdGluZyB3aXRoIHByb2Zlc3Npb25hbCBjb25zdWx0YW50cyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBlbXBsb3llZXMgd2l0aGluIHRoZSBjb21wYW55IGNhbiBkZXZlbG9wIHRoZWlyIHNraWxsc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBhYmlsaXRpZXMsIHdoaWNoIGhlbHBzIHRoZW0gZ3JvdyBwZXJzb25hbGx5IGFuZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Zlc3Npb25hbGx5LlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+e1wiIFwifVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgSW4gc2hvcnQsIGl0IGNhbiBiZSBzYWlkIHRoYXQgY29uc3VsdGluZyByZXByZXNlbnRzIGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGludGVncmFsIHBhcnQgb2YgYSBzdWNjZXNzZnVsIGJ1c2luZXNzIHN0cmF0ZWd5LCBhcyBpdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cmlidXRlcyB0byBwcm92aWRpbmcgdGhlIGV4cGVydGlzZSBhbmQgaW5zaWdodHNcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmVjZXNzYXJ5IHRvIG1lZXQgY2hhbGxlbmdlcyBhbmQgYWNoaWV2ZSBzdWNjZXNzIGluIHRoZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICByYXBpZGx5IGNoYW5naW5nIGJ1c2luZXNzIGVudmlyb25tZW50LlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cInBhZ2luYXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiMwXCI+UHJldiBQb3N0PC9hPlxyXG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPXtgL2Jsb2cvYmxvZy1kYXJrYH0+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwiZmFzIGZhLXRoLWxhcmdlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiMwXCI+TmV4dCBQb3N0PC9hPlxyXG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbW1lbnQtZm9ybVwiIGlkPVwiY29tbWVudC1mb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxoNT5BZGQgQ29tbWVudCA6PC9oNT5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPEZvcm1pa1xyXG4gICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbFZhbHVlcz17e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbWFpbDogXCJcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29tbWVudDogXCJcIixcclxuICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICBvblN1Ym1pdD17YXN5bmMgKHZhbHVlcykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBzZW5kTWVzc2FnZSg1MDApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGVydChKU09OLnN0cmluZ2lmeSh2YWx1ZXMsIG51bGwsIDIpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVzZXQgdGhlIHZhbHVlc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXMubmFtZSA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcy5lbWFpbCA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcy5jb21tZW50ID0gXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgeyh7IGVycm9ycywgdG91Y2hlZCB9KSA9PiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxGb3JtPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RmllbGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzPVwidGV4dGFyZWFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJZb3VyIENvbW1lbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImNvbW1lbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGaWVsZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJZb3VyIE5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cIm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGaWVsZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImVtYWlsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRlPXt2YWxpZGF0ZUVtYWlsfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJZb3VyIEVtYWlsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJlbWFpbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZXJyb3JzLmVtYWlsICYmIHRvdWNoZWQuZW1haWwgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj57ZXJyb3JzLmVtYWlsfTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZvcm0tZ3JvdXAgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIiBidXRuIGJ1dG5zICBjdXJ2ZSBmdWxsLXdpZHRoXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21tZW50XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvRm9ybT5cclxuICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9Gb3JtaWs+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgPEZvb3RlciAvPlxyXG4gICAgPC9MaWdodFRoZW1lPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBCbG9nRGV0YWlsc0ZvdXI7XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsImJsb2czRGF0YSIsIkxpZ2h0VGhlbWUiLCJOYXZiYXIiLCJCbG9nRGV0YWlscyIsIlBhZ2VIZWFkZXIiLCJGb290ZXIiLCJMaW5rIiwiRm9ybWlrIiwiRm9ybSIsIkZpZWxkIiwiU2Nyb2xsTGluayIsIkJsb2dEZXRhaWxzRm91ciIsIm5hdmJhclJlZiIsInVzZVJlZiIsImxvZ29SZWYiLCJ1c2VFZmZlY3QiLCJuYXZiYXIiLCJjdXJyZW50IiwibG9nbyIsIndpbmRvdyIsInBhZ2VZT2Zmc2V0IiwiY2xhc3NMaXN0IiwiYWRkIiwicmVtb3ZlIiwiYWRkRXZlbnRMaXN0ZW5lciIsIm1lc3NhZ2VSZWYiLCJ2YWxpZGF0ZUVtYWlsIiwidmFsdWUiLCJlcnJvciIsInRlc3QiLCJzZW5kTWVzc2FnZSIsIm1zIiwiUHJvbWlzZSIsInIiLCJzZXRUaW1lb3V0IiwibmFtZSIsImVtYWlsIiwiY29tbWVudCIsInZhbHVlcyIsImFsZXJ0IiwiSlNPTiIsInN0cmluZ2lmeSIsImVycm9ycyIsInRvdWNoZWQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/pages/blog-details/blog-details-4.jsx\n"); + +/***/ }), + +/***/ "./node_modules/deepmerge/dist/es.js": +/*!*******************************************!*\ + !*** ./node_modules/deepmerge/dist/es.js ***! + \*******************************************/ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tObject.keys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tObject.keys(source).forEach(function(key) {\n\t\tif (!options.isMergeableObject(source[key]) || !target[key]) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = deepmerge(target[key], source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (deepmerge_1);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvZGVlcG1lcmdlL2Rpc3QvZXMuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsRUFBRSxJQUFJO0FBQ047O0FBRUE7O0FBRUEsK0RBQWUsV0FBVyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9kZWVwbWVyZ2UvZGlzdC9lcy5qcz9hNzM4Il0sInNvdXJjZXNDb250ZW50IjpbInZhciBpc01lcmdlYWJsZU9iamVjdCA9IGZ1bmN0aW9uIGlzTWVyZ2VhYmxlT2JqZWN0KHZhbHVlKSB7XG5cdHJldHVybiBpc05vbk51bGxPYmplY3QodmFsdWUpXG5cdFx0JiYgIWlzU3BlY2lhbCh2YWx1ZSlcbn07XG5cbmZ1bmN0aW9uIGlzTm9uTnVsbE9iamVjdCh2YWx1ZSkge1xuXHRyZXR1cm4gISF2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnXG59XG5cbmZ1bmN0aW9uIGlzU3BlY2lhbCh2YWx1ZSkge1xuXHR2YXIgc3RyaW5nVmFsdWUgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpO1xuXG5cdHJldHVybiBzdHJpbmdWYWx1ZSA9PT0gJ1tvYmplY3QgUmVnRXhwXSdcblx0XHR8fCBzdHJpbmdWYWx1ZSA9PT0gJ1tvYmplY3QgRGF0ZV0nXG5cdFx0fHwgaXNSZWFjdEVsZW1lbnQodmFsdWUpXG59XG5cbi8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvYmxvYi9iNWFjOTYzZmI3OTFkMTI5OGU3ZjM5NjIzNjM4M2JjOTU1ZjkxNmMxL3NyYy9pc29tb3JwaGljL2NsYXNzaWMvZWxlbWVudC9SZWFjdEVsZW1lbnQuanMjTDIxLUwyNVxudmFyIGNhblVzZVN5bWJvbCA9IHR5cGVvZiBTeW1ib2wgPT09ICdmdW5jdGlvbicgJiYgU3ltYm9sLmZvcjtcbnZhciBSRUFDVF9FTEVNRU5UX1RZUEUgPSBjYW5Vc2VTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5lbGVtZW50JykgOiAweGVhYzc7XG5cbmZ1bmN0aW9uIGlzUmVhY3RFbGVtZW50KHZhbHVlKSB7XG5cdHJldHVybiB2YWx1ZS4kJHR5cGVvZiA9PT0gUkVBQ1RfRUxFTUVOVF9UWVBFXG59XG5cbmZ1bmN0aW9uIGVtcHR5VGFyZ2V0KHZhbCkge1xuXHRyZXR1cm4gQXJyYXkuaXNBcnJheSh2YWwpID8gW10gOiB7fVxufVxuXG5mdW5jdGlvbiBjbG9uZVVubGVzc090aGVyd2lzZVNwZWNpZmllZCh2YWx1ZSwgb3B0aW9ucykge1xuXHRyZXR1cm4gKG9wdGlvbnMuY2xvbmUgIT09IGZhbHNlICYmIG9wdGlvbnMuaXNNZXJnZWFibGVPYmplY3QodmFsdWUpKVxuXHRcdD8gZGVlcG1lcmdlKGVtcHR5VGFyZ2V0KHZhbHVlKSwgdmFsdWUsIG9wdGlvbnMpXG5cdFx0OiB2YWx1ZVxufVxuXG5mdW5jdGlvbiBkZWZhdWx0QXJyYXlNZXJnZSh0YXJnZXQsIHNvdXJjZSwgb3B0aW9ucykge1xuXHRyZXR1cm4gdGFyZ2V0LmNvbmNhdChzb3VyY2UpLm1hcChmdW5jdGlvbihlbGVtZW50KSB7XG5cdFx0cmV0dXJuIGNsb25lVW5sZXNzT3RoZXJ3aXNlU3BlY2lmaWVkKGVsZW1lbnQsIG9wdGlvbnMpXG5cdH0pXG59XG5cbmZ1bmN0aW9uIG1lcmdlT2JqZWN0KHRhcmdldCwgc291cmNlLCBvcHRpb25zKSB7XG5cdHZhciBkZXN0aW5hdGlvbiA9IHt9O1xuXHRpZiAob3B0aW9ucy5pc01lcmdlYWJsZU9iamVjdCh0YXJnZXQpKSB7XG5cdFx0T2JqZWN0LmtleXModGFyZ2V0KS5mb3JFYWNoKGZ1bmN0aW9uKGtleSkge1xuXHRcdFx0ZGVzdGluYXRpb25ba2V5XSA9IGNsb25lVW5sZXNzT3RoZXJ3aXNlU3BlY2lmaWVkKHRhcmdldFtrZXldLCBvcHRpb25zKTtcblx0XHR9KTtcblx0fVxuXHRPYmplY3Qua2V5cyhzb3VyY2UpLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7XG5cdFx0aWYgKCFvcHRpb25zLmlzTWVyZ2VhYmxlT2JqZWN0KHNvdXJjZVtrZXldKSB8fCAhdGFyZ2V0W2tleV0pIHtcblx0XHRcdGRlc3RpbmF0aW9uW2tleV0gPSBjbG9uZVVubGVzc090aGVyd2lzZVNwZWNpZmllZChzb3VyY2Vba2V5XSwgb3B0aW9ucyk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGRlc3RpbmF0aW9uW2tleV0gPSBkZWVwbWVyZ2UodGFyZ2V0W2tleV0sIHNvdXJjZVtrZXldLCBvcHRpb25zKTtcblx0XHR9XG5cdH0pO1xuXHRyZXR1cm4gZGVzdGluYXRpb25cbn1cblxuZnVuY3Rpb24gZGVlcG1lcmdlKHRhcmdldCwgc291cmNlLCBvcHRpb25zKSB7XG5cdG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuXHRvcHRpb25zLmFycmF5TWVyZ2UgPSBvcHRpb25zLmFycmF5TWVyZ2UgfHwgZGVmYXVsdEFycmF5TWVyZ2U7XG5cdG9wdGlvbnMuaXNNZXJnZWFibGVPYmplY3QgPSBvcHRpb25zLmlzTWVyZ2VhYmxlT2JqZWN0IHx8IGlzTWVyZ2VhYmxlT2JqZWN0O1xuXG5cdHZhciBzb3VyY2VJc0FycmF5ID0gQXJyYXkuaXNBcnJheShzb3VyY2UpO1xuXHR2YXIgdGFyZ2V0SXNBcnJheSA9IEFycmF5LmlzQXJyYXkodGFyZ2V0KTtcblx0dmFyIHNvdXJjZUFuZFRhcmdldFR5cGVzTWF0Y2ggPSBzb3VyY2VJc0FycmF5ID09PSB0YXJnZXRJc0FycmF5O1xuXG5cdGlmICghc291cmNlQW5kVGFyZ2V0VHlwZXNNYXRjaCkge1xuXHRcdHJldHVybiBjbG9uZVVubGVzc090aGVyd2lzZVNwZWNpZmllZChzb3VyY2UsIG9wdGlvbnMpXG5cdH0gZWxzZSBpZiAoc291cmNlSXNBcnJheSkge1xuXHRcdHJldHVybiBvcHRpb25zLmFycmF5TWVyZ2UodGFyZ2V0LCBzb3VyY2UsIG9wdGlvbnMpXG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIG1lcmdlT2JqZWN0KHRhcmdldCwgc291cmNlLCBvcHRpb25zKVxuXHR9XG59XG5cbmRlZXBtZXJnZS5hbGwgPSBmdW5jdGlvbiBkZWVwbWVyZ2VBbGwoYXJyYXksIG9wdGlvbnMpIHtcblx0aWYgKCFBcnJheS5pc0FycmF5KGFycmF5KSkge1xuXHRcdHRocm93IG5ldyBFcnJvcignZmlyc3QgYXJndW1lbnQgc2hvdWxkIGJlIGFuIGFycmF5Jylcblx0fVxuXG5cdHJldHVybiBhcnJheS5yZWR1Y2UoZnVuY3Rpb24ocHJldiwgbmV4dCkge1xuXHRcdHJldHVybiBkZWVwbWVyZ2UocHJldiwgbmV4dCwgb3B0aW9ucylcblx0fSwge30pXG59O1xuXG52YXIgZGVlcG1lcmdlXzEgPSBkZWVwbWVyZ2U7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZXBtZXJnZV8xO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/deepmerge/dist/es.js\n"); + +/***/ }), + +/***/ "./node_modules/formik/dist/formik.esm.js": +/*!************************************************!*\ + !*** ./node_modules/formik/dist/formik.esm.js ***! + \************************************************/ +/***/ (function(__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 */ \"ErrorMessage\": function() { return /* binding */ ErrorMessage; },\n/* harmony export */ \"FastField\": function() { return /* binding */ FastField; },\n/* harmony export */ \"Field\": function() { return /* binding */ Field; },\n/* harmony export */ \"FieldArray\": function() { return /* binding */ FieldArray; },\n/* harmony export */ \"Form\": function() { return /* binding */ Form; },\n/* harmony export */ \"Formik\": function() { return /* binding */ Formik; },\n/* harmony export */ \"FormikConsumer\": function() { return /* binding */ FormikConsumer; },\n/* harmony export */ \"FormikContext\": function() { return /* binding */ FormikContext; },\n/* harmony export */ \"FormikProvider\": function() { return /* binding */ FormikProvider; },\n/* harmony export */ \"connect\": function() { return /* binding */ connect; },\n/* harmony export */ \"getActiveElement\": function() { return /* binding */ getActiveElement; },\n/* harmony export */ \"getIn\": function() { return /* binding */ getIn; },\n/* harmony export */ \"insert\": function() { return /* binding */ insert; },\n/* harmony export */ \"isEmptyArray\": function() { return /* binding */ isEmptyArray; },\n/* harmony export */ \"isEmptyChildren\": function() { return /* binding */ isEmptyChildren; },\n/* harmony export */ \"isFunction\": function() { return /* binding */ isFunction; },\n/* harmony export */ \"isInputEvent\": function() { return /* binding */ isInputEvent; },\n/* harmony export */ \"isInteger\": function() { return /* binding */ isInteger; },\n/* harmony export */ \"isNaN\": function() { return /* binding */ isNaN$1; },\n/* harmony export */ \"isObject\": function() { return /* binding */ isObject; },\n/* harmony export */ \"isPromise\": function() { return /* binding */ isPromise; },\n/* harmony export */ \"isString\": function() { return /* binding */ isString; },\n/* harmony export */ \"move\": function() { return /* binding */ move; },\n/* harmony export */ \"prepareDataForValidation\": function() { return /* binding */ prepareDataForValidation; },\n/* harmony export */ \"replace\": function() { return /* binding */ replace; },\n/* harmony export */ \"setIn\": function() { return /* binding */ setIn; },\n/* harmony export */ \"setNestedObjectValues\": function() { return /* binding */ setNestedObjectValues; },\n/* harmony export */ \"swap\": function() { return /* binding */ swap; },\n/* harmony export */ \"useField\": function() { return /* binding */ useField; },\n/* harmony export */ \"useFormik\": function() { return /* binding */ useFormik; },\n/* harmony export */ \"useFormikContext\": function() { return /* binding */ useFormikContext; },\n/* harmony export */ \"validateYupSchema\": function() { return /* binding */ validateYupSchema; },\n/* harmony export */ \"withFormik\": function() { return /* binding */ withFormik; },\n/* harmony export */ \"yupToFormErrors\": function() { return /* binding */ yupToFormErrors; }\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_fast_compare__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-fast-compare */ \"./node_modules/react-fast-compare/index.js\");\n/* harmony import */ var react_fast_compare__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_fast_compare__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var deepmerge__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! deepmerge */ \"./node_modules/deepmerge/dist/es.js\");\n/* harmony import */ var lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! lodash-es/isPlainObject */ \"./node_modules/lodash-es/isPlainObject.js\");\n/* harmony import */ var lodash_es_clone__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! lodash-es/clone */ \"./node_modules/lodash-es/clone.js\");\n/* harmony import */ var lodash_es_toPath__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! lodash-es/toPath */ \"./node_modules/lodash-es/toPath.js\");\n/* harmony import */ var tiny_warning__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! tiny-warning */ \"./node_modules/tiny-warning/dist/tiny-warning.esm.js\");\n/* harmony import */ var hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! hoist-non-react-statics */ \"./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js\");\n/* harmony import */ var hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var lodash_es_cloneDeep__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! lodash-es/cloneDeep */ \"./node_modules/lodash-es/cloneDeep.js\");\n\n\n\n\n\n\n\n\n\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\n/** @private is the value an empty array? */\n\nvar isEmptyArray = function isEmptyArray(value) {\n return Array.isArray(value) && value.length === 0;\n};\n/** @private is the given object a Function? */\n\nvar isFunction = function isFunction(obj) {\n return typeof obj === 'function';\n};\n/** @private is the given object an Object? */\n\nvar isObject = function isObject(obj) {\n return obj !== null && typeof obj === 'object';\n};\n/** @private is the given object an integer? */\n\nvar isInteger = function isInteger(obj) {\n return String(Math.floor(Number(obj))) === obj;\n};\n/** @private is the given object a string? */\n\nvar isString = function isString(obj) {\n return Object.prototype.toString.call(obj) === '[object String]';\n};\n/** @private is the given object a NaN? */\n// eslint-disable-next-line no-self-compare\n\nvar isNaN$1 = function isNaN(obj) {\n return obj !== obj;\n};\n/** @private Does a React component have exactly 0 children? */\n\nvar isEmptyChildren = function isEmptyChildren(children) {\n return react__WEBPACK_IMPORTED_MODULE_0__.Children.count(children) === 0;\n};\n/** @private is the given object/value a promise? */\n\nvar isPromise = function isPromise(value) {\n return isObject(value) && isFunction(value.then);\n};\n/** @private is the given object/value a type of synthetic event? */\n\nvar isInputEvent = function isInputEvent(value) {\n return value && isObject(value) && isObject(value.target);\n};\n/**\r\n * Same as document.activeElement but wraps in a try-catch block. In IE it is\r\n * not safe to call document.activeElement if there is nothing focused.\r\n *\r\n * The activeElement will be null only if the document or document body is not\r\n * yet defined.\r\n *\r\n * @param {?Document} doc Defaults to current document.\r\n * @return {Element | null}\r\n * @see https://github.com/facebook/fbjs/blob/master/packages/fbjs/src/core/dom/getActiveElement.js\r\n */\n\nfunction getActiveElement(doc) {\n doc = doc || (typeof document !== 'undefined' ? document : undefined);\n\n if (typeof doc === 'undefined') {\n return null;\n }\n\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\n/**\r\n * Deeply get a value from an object via its path.\r\n */\n\nfunction getIn(obj, key, def, p) {\n if (p === void 0) {\n p = 0;\n }\n\n var path = (0,lodash_es_toPath__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(key);\n\n while (obj && p < path.length) {\n obj = obj[path[p++]];\n }\n\n return obj === undefined ? def : obj;\n}\n/**\r\n * Deeply set a value from in object via it's path. If the value at `path`\r\n * has changed, return a shallow copy of obj with `value` set at `path`.\r\n * If `value` has not changed, return the original `obj`.\r\n *\r\n * Existing objects / arrays along `path` are also shallow copied. Sibling\r\n * objects along path retain the same internal js reference. Since new\r\n * objects / arrays are only created along `path`, we can test if anything\r\n * changed in a nested structure by comparing the object's reference in\r\n * the old and new object, similar to how russian doll cache invalidation\r\n * works.\r\n *\r\n * In earlier versions of this function, which used cloneDeep, there were\r\n * issues whereby settings a nested value would mutate the parent\r\n * instead of creating a new object. `clone` avoids that bug making a\r\n * shallow copy of the objects along the update path\r\n * so no object is mutated in place.\r\n *\r\n * Before changing this function, please read through the following\r\n * discussions.\r\n *\r\n * @see https://github.com/developit/linkstate\r\n * @see https://github.com/jaredpalmer/formik/pull/123\r\n */\n\nfunction setIn(obj, path, value) {\n var res = (0,lodash_es_clone__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(obj); // this keeps inheritance when obj is a class\n\n var resVal = res;\n var i = 0;\n var pathArray = (0,lodash_es_toPath__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(path);\n\n for (; i < pathArray.length - 1; i++) {\n var currentPath = pathArray[i];\n var currentObj = getIn(obj, pathArray.slice(0, i + 1));\n\n if (currentObj && (isObject(currentObj) || Array.isArray(currentObj))) {\n resVal = resVal[currentPath] = (0,lodash_es_clone__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(currentObj);\n } else {\n var nextPath = pathArray[i + 1];\n resVal = resVal[currentPath] = isInteger(nextPath) && Number(nextPath) >= 0 ? [] : {};\n }\n } // Return original object if new value is the same as current\n\n\n if ((i === 0 ? obj : resVal)[pathArray[i]] === value) {\n return obj;\n }\n\n if (value === undefined) {\n delete resVal[pathArray[i]];\n } else {\n resVal[pathArray[i]] = value;\n } // If the path array has a single element, the loop did not run.\n // Deleting on `resVal` had no effect in this scenario, so we delete on the result instead.\n\n\n if (i === 0 && value === undefined) {\n delete res[pathArray[i]];\n }\n\n return res;\n}\n/**\r\n * Recursively a set the same value for all keys and arrays nested object, cloning\r\n * @param object\r\n * @param value\r\n * @param visited\r\n * @param response\r\n */\n\nfunction setNestedObjectValues(object, value, visited, response) {\n if (visited === void 0) {\n visited = new WeakMap();\n }\n\n if (response === void 0) {\n response = {};\n }\n\n for (var _i = 0, _Object$keys = Object.keys(object); _i < _Object$keys.length; _i++) {\n var k = _Object$keys[_i];\n var val = object[k];\n\n if (isObject(val)) {\n if (!visited.get(val)) {\n visited.set(val, true); // In order to keep array values consistent for both dot path and\n // bracket syntax, we need to check if this is an array so that\n // this will output { friends: [true] } and not { friends: { \"0\": true } }\n\n response[k] = Array.isArray(val) ? [] : {};\n setNestedObjectValues(val, value, visited, response[k]);\n }\n } else {\n response[k] = value;\n }\n }\n\n return response;\n}\n\nvar FormikContext = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(undefined);\nFormikContext.displayName = 'FormikContext';\nvar FormikProvider = FormikContext.Provider;\nvar FormikConsumer = FormikContext.Consumer;\nfunction useFormikContext() {\n var formik = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(FormikContext);\n !!!formik ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, \"Formik context is undefined, please verify you are calling useFormikContext() as child of a <Formik> component.\") : 0 : void 0;\n return formik;\n}\n\nfunction formikReducer(state, msg) {\n switch (msg.type) {\n case 'SET_VALUES':\n return _extends({}, state, {\n values: msg.payload\n });\n\n case 'SET_TOUCHED':\n return _extends({}, state, {\n touched: msg.payload\n });\n\n case 'SET_ERRORS':\n if (react_fast_compare__WEBPACK_IMPORTED_MODULE_1___default()(state.errors, msg.payload)) {\n return state;\n }\n\n return _extends({}, state, {\n errors: msg.payload\n });\n\n case 'SET_STATUS':\n return _extends({}, state, {\n status: msg.payload\n });\n\n case 'SET_ISSUBMITTING':\n return _extends({}, state, {\n isSubmitting: msg.payload\n });\n\n case 'SET_ISVALIDATING':\n return _extends({}, state, {\n isValidating: msg.payload\n });\n\n case 'SET_FIELD_VALUE':\n return _extends({}, state, {\n values: setIn(state.values, msg.payload.field, msg.payload.value)\n });\n\n case 'SET_FIELD_TOUCHED':\n return _extends({}, state, {\n touched: setIn(state.touched, msg.payload.field, msg.payload.value)\n });\n\n case 'SET_FIELD_ERROR':\n return _extends({}, state, {\n errors: setIn(state.errors, msg.payload.field, msg.payload.value)\n });\n\n case 'RESET_FORM':\n return _extends({}, state, msg.payload);\n\n case 'SET_FORMIK_STATE':\n return msg.payload(state);\n\n case 'SUBMIT_ATTEMPT':\n return _extends({}, state, {\n touched: setNestedObjectValues(state.values, true),\n isSubmitting: true,\n submitCount: state.submitCount + 1\n });\n\n case 'SUBMIT_FAILURE':\n return _extends({}, state, {\n isSubmitting: false\n });\n\n case 'SUBMIT_SUCCESS':\n return _extends({}, state, {\n isSubmitting: false\n });\n\n default:\n return state;\n }\n} // Initial empty states // objects\n\n\nvar emptyErrors = {};\nvar emptyTouched = {};\nfunction useFormik(_ref) {\n var _ref$validateOnChange = _ref.validateOnChange,\n validateOnChange = _ref$validateOnChange === void 0 ? true : _ref$validateOnChange,\n _ref$validateOnBlur = _ref.validateOnBlur,\n validateOnBlur = _ref$validateOnBlur === void 0 ? true : _ref$validateOnBlur,\n _ref$validateOnMount = _ref.validateOnMount,\n validateOnMount = _ref$validateOnMount === void 0 ? false : _ref$validateOnMount,\n isInitialValid = _ref.isInitialValid,\n _ref$enableReinitiali = _ref.enableReinitialize,\n enableReinitialize = _ref$enableReinitiali === void 0 ? false : _ref$enableReinitiali,\n onSubmit = _ref.onSubmit,\n rest = _objectWithoutPropertiesLoose(_ref, [\"validateOnChange\", \"validateOnBlur\", \"validateOnMount\", \"isInitialValid\", \"enableReinitialize\", \"onSubmit\"]);\n\n var props = _extends({\n validateOnChange: validateOnChange,\n validateOnBlur: validateOnBlur,\n validateOnMount: validateOnMount,\n onSubmit: onSubmit\n }, rest);\n\n var initialValues = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(props.initialValues);\n var initialErrors = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(props.initialErrors || emptyErrors);\n var initialTouched = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(props.initialTouched || emptyTouched);\n var initialStatus = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(props.initialStatus);\n var isMounted = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(false);\n var fieldRegistry = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)({});\n\n if (true) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n !(typeof isInitialValid === 'undefined') ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, 'isInitialValid has been deprecated and will be removed in future versions of Formik. Please use initialErrors or validateOnMount instead.') : 0 : void 0; // eslint-disable-next-line\n }, []);\n }\n\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n isMounted.current = true;\n return function () {\n isMounted.current = false;\n };\n }, []);\n\n var _React$useReducer = (0,react__WEBPACK_IMPORTED_MODULE_0__.useReducer)(formikReducer, {\n values: props.initialValues,\n errors: props.initialErrors || emptyErrors,\n touched: props.initialTouched || emptyTouched,\n status: props.initialStatus,\n isSubmitting: false,\n isValidating: false,\n submitCount: 0\n }),\n state = _React$useReducer[0],\n dispatch = _React$useReducer[1];\n\n var runValidateHandler = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (values, field) {\n return new Promise(function (resolve, reject) {\n var maybePromisedErrors = props.validate(values, field);\n\n if (maybePromisedErrors == null) {\n // use loose null check here on purpose\n resolve(emptyErrors);\n } else if (isPromise(maybePromisedErrors)) {\n maybePromisedErrors.then(function (errors) {\n resolve(errors || emptyErrors);\n }, function (actualException) {\n if (true) {\n console.warn(\"Warning: An unhandled error was caught during validation in <Formik validate />\", actualException);\n }\n\n reject(actualException);\n });\n } else {\n resolve(maybePromisedErrors);\n }\n });\n }, [props.validate]);\n /**\r\n * Run validation against a Yup schema and optionally run a function if successful\r\n */\n\n var runValidationSchema = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (values, field) {\n var validationSchema = props.validationSchema;\n var schema = isFunction(validationSchema) ? validationSchema(field) : validationSchema;\n var promise = field && schema.validateAt ? schema.validateAt(field, values) : validateYupSchema(values, schema);\n return new Promise(function (resolve, reject) {\n promise.then(function () {\n resolve(emptyErrors);\n }, function (err) {\n // Yup will throw a validation error if validation fails. We catch those and\n // resolve them into Formik errors. We can sniff if something is a Yup error\n // by checking error.name.\n // @see https://github.com/jquense/yup#validationerrorerrors-string--arraystring-value-any-path-string\n if (err.name === 'ValidationError') {\n resolve(yupToFormErrors(err));\n } else {\n // We throw any other errors\n if (true) {\n console.warn(\"Warning: An unhandled error was caught during validation in <Formik validationSchema />\", err);\n }\n\n reject(err);\n }\n });\n });\n }, [props.validationSchema]);\n var runSingleFieldLevelValidation = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (field, value) {\n return new Promise(function (resolve) {\n return resolve(fieldRegistry.current[field].validate(value));\n });\n }, []);\n var runFieldLevelValidations = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (values) {\n var fieldKeysWithValidation = Object.keys(fieldRegistry.current).filter(function (f) {\n return isFunction(fieldRegistry.current[f].validate);\n }); // Construct an array with all of the field validation functions\n\n var fieldValidations = fieldKeysWithValidation.length > 0 ? fieldKeysWithValidation.map(function (f) {\n return runSingleFieldLevelValidation(f, getIn(values, f));\n }) : [Promise.resolve('DO_NOT_DELETE_YOU_WILL_BE_FIRED')]; // use special case ;)\n\n return Promise.all(fieldValidations).then(function (fieldErrorsList) {\n return fieldErrorsList.reduce(function (prev, curr, index) {\n if (curr === 'DO_NOT_DELETE_YOU_WILL_BE_FIRED') {\n return prev;\n }\n\n if (curr) {\n prev = setIn(prev, fieldKeysWithValidation[index], curr);\n }\n\n return prev;\n }, {});\n });\n }, [runSingleFieldLevelValidation]); // Run all validations and return the result\n\n var runAllValidations = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (values) {\n return Promise.all([runFieldLevelValidations(values), props.validationSchema ? runValidationSchema(values) : {}, props.validate ? runValidateHandler(values) : {}]).then(function (_ref2) {\n var fieldErrors = _ref2[0],\n schemaErrors = _ref2[1],\n validateErrors = _ref2[2];\n var combinedErrors = deepmerge__WEBPACK_IMPORTED_MODULE_2__[\"default\"].all([fieldErrors, schemaErrors, validateErrors], {\n arrayMerge: arrayMerge\n });\n return combinedErrors;\n });\n }, [props.validate, props.validationSchema, runFieldLevelValidations, runValidateHandler, runValidationSchema]); // Run all validations methods and update state accordingly\n\n var validateFormWithHighPriority = useEventCallback(function (values) {\n if (values === void 0) {\n values = state.values;\n }\n\n dispatch({\n type: 'SET_ISVALIDATING',\n payload: true\n });\n return runAllValidations(values).then(function (combinedErrors) {\n if (!!isMounted.current) {\n dispatch({\n type: 'SET_ISVALIDATING',\n payload: false\n });\n dispatch({\n type: 'SET_ERRORS',\n payload: combinedErrors\n });\n }\n\n return combinedErrors;\n });\n });\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n if (validateOnMount && isMounted.current === true && react_fast_compare__WEBPACK_IMPORTED_MODULE_1___default()(initialValues.current, props.initialValues)) {\n validateFormWithHighPriority(initialValues.current);\n }\n }, [validateOnMount, validateFormWithHighPriority]);\n var resetForm = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (nextState) {\n var values = nextState && nextState.values ? nextState.values : initialValues.current;\n var errors = nextState && nextState.errors ? nextState.errors : initialErrors.current ? initialErrors.current : props.initialErrors || {};\n var touched = nextState && nextState.touched ? nextState.touched : initialTouched.current ? initialTouched.current : props.initialTouched || {};\n var status = nextState && nextState.status ? nextState.status : initialStatus.current ? initialStatus.current : props.initialStatus;\n initialValues.current = values;\n initialErrors.current = errors;\n initialTouched.current = touched;\n initialStatus.current = status;\n\n var dispatchFn = function dispatchFn() {\n dispatch({\n type: 'RESET_FORM',\n payload: {\n isSubmitting: !!nextState && !!nextState.isSubmitting,\n errors: errors,\n touched: touched,\n status: status,\n values: values,\n isValidating: !!nextState && !!nextState.isValidating,\n submitCount: !!nextState && !!nextState.submitCount && typeof nextState.submitCount === 'number' ? nextState.submitCount : 0\n }\n });\n };\n\n if (props.onReset) {\n var maybePromisedOnReset = props.onReset(state.values, imperativeMethods);\n\n if (isPromise(maybePromisedOnReset)) {\n maybePromisedOnReset.then(dispatchFn);\n } else {\n dispatchFn();\n }\n } else {\n dispatchFn();\n }\n }, [props.initialErrors, props.initialStatus, props.initialTouched]);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n if (isMounted.current === true && !react_fast_compare__WEBPACK_IMPORTED_MODULE_1___default()(initialValues.current, props.initialValues)) {\n if (enableReinitialize) {\n initialValues.current = props.initialValues;\n resetForm();\n }\n\n if (validateOnMount) {\n validateFormWithHighPriority(initialValues.current);\n }\n }\n }, [enableReinitialize, props.initialValues, resetForm, validateOnMount, validateFormWithHighPriority]);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n if (enableReinitialize && isMounted.current === true && !react_fast_compare__WEBPACK_IMPORTED_MODULE_1___default()(initialErrors.current, props.initialErrors)) {\n initialErrors.current = props.initialErrors || emptyErrors;\n dispatch({\n type: 'SET_ERRORS',\n payload: props.initialErrors || emptyErrors\n });\n }\n }, [enableReinitialize, props.initialErrors]);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n if (enableReinitialize && isMounted.current === true && !react_fast_compare__WEBPACK_IMPORTED_MODULE_1___default()(initialTouched.current, props.initialTouched)) {\n initialTouched.current = props.initialTouched || emptyTouched;\n dispatch({\n type: 'SET_TOUCHED',\n payload: props.initialTouched || emptyTouched\n });\n }\n }, [enableReinitialize, props.initialTouched]);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n if (enableReinitialize && isMounted.current === true && !react_fast_compare__WEBPACK_IMPORTED_MODULE_1___default()(initialStatus.current, props.initialStatus)) {\n initialStatus.current = props.initialStatus;\n dispatch({\n type: 'SET_STATUS',\n payload: props.initialStatus\n });\n }\n }, [enableReinitialize, props.initialStatus, props.initialTouched]);\n var validateField = useEventCallback(function (name) {\n // This will efficiently validate a single field by avoiding state\n // changes if the validation function is synchronous. It's different from\n // what is called when using validateForm.\n if (fieldRegistry.current[name] && isFunction(fieldRegistry.current[name].validate)) {\n var value = getIn(state.values, name);\n var maybePromise = fieldRegistry.current[name].validate(value);\n\n if (isPromise(maybePromise)) {\n // Only flip isValidating if the function is async.\n dispatch({\n type: 'SET_ISVALIDATING',\n payload: true\n });\n return maybePromise.then(function (x) {\n return x;\n }).then(function (error) {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: {\n field: name,\n value: error\n }\n });\n dispatch({\n type: 'SET_ISVALIDATING',\n payload: false\n });\n });\n } else {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: {\n field: name,\n value: maybePromise\n }\n });\n return Promise.resolve(maybePromise);\n }\n } else if (props.validationSchema) {\n dispatch({\n type: 'SET_ISVALIDATING',\n payload: true\n });\n return runValidationSchema(state.values, name).then(function (x) {\n return x;\n }).then(function (error) {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: {\n field: name,\n value: error[name]\n }\n });\n dispatch({\n type: 'SET_ISVALIDATING',\n payload: false\n });\n });\n }\n\n return Promise.resolve();\n });\n var registerField = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (name, _ref3) {\n var validate = _ref3.validate;\n fieldRegistry.current[name] = {\n validate: validate\n };\n }, []);\n var unregisterField = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (name) {\n delete fieldRegistry.current[name];\n }, []);\n var setTouched = useEventCallback(function (touched, shouldValidate) {\n dispatch({\n type: 'SET_TOUCHED',\n payload: touched\n });\n var willValidate = shouldValidate === undefined ? validateOnBlur : shouldValidate;\n return willValidate ? validateFormWithHighPriority(state.values) : Promise.resolve();\n });\n var setErrors = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (errors) {\n dispatch({\n type: 'SET_ERRORS',\n payload: errors\n });\n }, []);\n var setValues = useEventCallback(function (values, shouldValidate) {\n var resolvedValues = isFunction(values) ? values(state.values) : values;\n dispatch({\n type: 'SET_VALUES',\n payload: resolvedValues\n });\n var willValidate = shouldValidate === undefined ? validateOnChange : shouldValidate;\n return willValidate ? validateFormWithHighPriority(resolvedValues) : Promise.resolve();\n });\n var setFieldError = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (field, value) {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: {\n field: field,\n value: value\n }\n });\n }, []);\n var setFieldValue = useEventCallback(function (field, value, shouldValidate) {\n dispatch({\n type: 'SET_FIELD_VALUE',\n payload: {\n field: field,\n value: value\n }\n });\n var willValidate = shouldValidate === undefined ? validateOnChange : shouldValidate;\n return willValidate ? validateFormWithHighPriority(setIn(state.values, field, value)) : Promise.resolve();\n });\n var executeChange = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (eventOrTextValue, maybePath) {\n // By default, assume that the first argument is a string. This allows us to use\n // handleChange with React Native and React Native Web's onChangeText prop which\n // provides just the value of the input.\n var field = maybePath;\n var val = eventOrTextValue;\n var parsed; // If the first argument is not a string though, it has to be a synthetic React Event (or a fake one),\n // so we handle like we would a normal HTML change event.\n\n if (!isString(eventOrTextValue)) {\n // If we can, persist the event\n // @see https://reactjs.org/docs/events.html#event-pooling\n if (eventOrTextValue.persist) {\n eventOrTextValue.persist();\n }\n\n var target = eventOrTextValue.target ? eventOrTextValue.target : eventOrTextValue.currentTarget;\n var type = target.type,\n name = target.name,\n id = target.id,\n value = target.value,\n checked = target.checked,\n outerHTML = target.outerHTML,\n options = target.options,\n multiple = target.multiple;\n field = maybePath ? maybePath : name ? name : id;\n\n if (!field && \"development\" !== \"production\") {\n warnAboutMissingIdentifier({\n htmlContent: outerHTML,\n documentationAnchorLink: 'handlechange-e-reactchangeeventany--void',\n handlerName: 'handleChange'\n });\n }\n\n val = /number|range/.test(type) ? (parsed = parseFloat(value), isNaN(parsed) ? '' : parsed) : /checkbox/.test(type) // checkboxes\n ? getValueForCheckbox(getIn(state.values, field), checked, value) : options && multiple // <select multiple>\n ? getSelectedValues(options) : value;\n }\n\n if (field) {\n // Set form fields by name\n setFieldValue(field, val);\n }\n }, [setFieldValue, state.values]);\n var handleChange = useEventCallback(function (eventOrPath) {\n if (isString(eventOrPath)) {\n return function (event) {\n return executeChange(event, eventOrPath);\n };\n } else {\n executeChange(eventOrPath);\n }\n });\n var setFieldTouched = useEventCallback(function (field, touched, shouldValidate) {\n if (touched === void 0) {\n touched = true;\n }\n\n dispatch({\n type: 'SET_FIELD_TOUCHED',\n payload: {\n field: field,\n value: touched\n }\n });\n var willValidate = shouldValidate === undefined ? validateOnBlur : shouldValidate;\n return willValidate ? validateFormWithHighPriority(state.values) : Promise.resolve();\n });\n var executeBlur = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (e, path) {\n if (e.persist) {\n e.persist();\n }\n\n var _e$target = e.target,\n name = _e$target.name,\n id = _e$target.id,\n outerHTML = _e$target.outerHTML;\n var field = path ? path : name ? name : id;\n\n if (!field && \"development\" !== \"production\") {\n warnAboutMissingIdentifier({\n htmlContent: outerHTML,\n documentationAnchorLink: 'handleblur-e-any--void',\n handlerName: 'handleBlur'\n });\n }\n\n setFieldTouched(field, true);\n }, [setFieldTouched]);\n var handleBlur = useEventCallback(function (eventOrString) {\n if (isString(eventOrString)) {\n return function (event) {\n return executeBlur(event, eventOrString);\n };\n } else {\n executeBlur(eventOrString);\n }\n });\n var setFormikState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (stateOrCb) {\n if (isFunction(stateOrCb)) {\n dispatch({\n type: 'SET_FORMIK_STATE',\n payload: stateOrCb\n });\n } else {\n dispatch({\n type: 'SET_FORMIK_STATE',\n payload: function payload() {\n return stateOrCb;\n }\n });\n }\n }, []);\n var setStatus = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (status) {\n dispatch({\n type: 'SET_STATUS',\n payload: status\n });\n }, []);\n var setSubmitting = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (isSubmitting) {\n dispatch({\n type: 'SET_ISSUBMITTING',\n payload: isSubmitting\n });\n }, []);\n var submitForm = useEventCallback(function () {\n dispatch({\n type: 'SUBMIT_ATTEMPT'\n });\n return validateFormWithHighPriority().then(function (combinedErrors) {\n // In case an error was thrown and passed to the resolved Promise,\n // `combinedErrors` can be an instance of an Error. We need to check\n // that and abort the submit.\n // If we don't do that, calling `Object.keys(new Error())` yields an\n // empty array, which causes the validation to pass and the form\n // to be submitted.\n var isInstanceOfError = combinedErrors instanceof Error;\n var isActuallyValid = !isInstanceOfError && Object.keys(combinedErrors).length === 0;\n\n if (isActuallyValid) {\n // Proceed with submit...\n //\n // To respect sync submit fns, we can't simply wrap executeSubmit in a promise and\n // _always_ dispatch SUBMIT_SUCCESS because isSubmitting would then always be false.\n // This would be fine in simple cases, but make it impossible to disable submit\n // buttons where people use callbacks or promises as side effects (which is basically\n // all of v1 Formik code). Instead, recall that we are inside of a promise chain already,\n // so we can try/catch executeSubmit(), if it returns undefined, then just bail.\n // If there are errors, throw em. Otherwise, wrap executeSubmit in a promise and handle\n // cleanup of isSubmitting on behalf of the consumer.\n var promiseOrUndefined;\n\n try {\n promiseOrUndefined = executeSubmit(); // Bail if it's sync, consumer is responsible for cleaning up\n // via setSubmitting(false)\n\n if (promiseOrUndefined === undefined) {\n return;\n }\n } catch (error) {\n throw error;\n }\n\n return Promise.resolve(promiseOrUndefined).then(function (result) {\n if (!!isMounted.current) {\n dispatch({\n type: 'SUBMIT_SUCCESS'\n });\n }\n\n return result;\n })[\"catch\"](function (_errors) {\n if (!!isMounted.current) {\n dispatch({\n type: 'SUBMIT_FAILURE'\n }); // This is a legit error rejected by the onSubmit fn\n // so we don't want to break the promise chain\n\n throw _errors;\n }\n });\n } else if (!!isMounted.current) {\n // ^^^ Make sure Formik is still mounted before updating state\n dispatch({\n type: 'SUBMIT_FAILURE'\n }); // throw combinedErrors;\n\n if (isInstanceOfError) {\n throw combinedErrors;\n }\n }\n\n return;\n });\n });\n var handleSubmit = useEventCallback(function (e) {\n if (e && e.preventDefault && isFunction(e.preventDefault)) {\n e.preventDefault();\n }\n\n if (e && e.stopPropagation && isFunction(e.stopPropagation)) {\n e.stopPropagation();\n } // Warn if form submission is triggered by a <button> without a\n // specified `type` attribute during development. This mitigates\n // a common gotcha in forms with both reset and submit buttons,\n // where the dev forgets to add type=\"button\" to the reset button.\n\n\n if ( true && typeof document !== 'undefined') {\n // Safely get the active element (works with IE)\n var activeElement = getActiveElement();\n\n if (activeElement !== null && activeElement instanceof HTMLButtonElement) {\n !(activeElement.attributes && activeElement.attributes.getNamedItem('type')) ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, 'You submitted a Formik form using a button with an unspecified `type` attribute. Most browsers default button elements to `type=\"submit\"`. If this is not a submit button, please add `type=\"button\"`.') : 0 : void 0;\n }\n }\n\n submitForm()[\"catch\"](function (reason) {\n console.warn(\"Warning: An unhandled error was caught from submitForm()\", reason);\n });\n });\n var imperativeMethods = {\n resetForm: resetForm,\n validateForm: validateFormWithHighPriority,\n validateField: validateField,\n setErrors: setErrors,\n setFieldError: setFieldError,\n setFieldTouched: setFieldTouched,\n setFieldValue: setFieldValue,\n setStatus: setStatus,\n setSubmitting: setSubmitting,\n setTouched: setTouched,\n setValues: setValues,\n setFormikState: setFormikState,\n submitForm: submitForm\n };\n var executeSubmit = useEventCallback(function () {\n return onSubmit(state.values, imperativeMethods);\n });\n var handleReset = useEventCallback(function (e) {\n if (e && e.preventDefault && isFunction(e.preventDefault)) {\n e.preventDefault();\n }\n\n if (e && e.stopPropagation && isFunction(e.stopPropagation)) {\n e.stopPropagation();\n }\n\n resetForm();\n });\n var getFieldMeta = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (name) {\n return {\n value: getIn(state.values, name),\n error: getIn(state.errors, name),\n touched: !!getIn(state.touched, name),\n initialValue: getIn(initialValues.current, name),\n initialTouched: !!getIn(initialTouched.current, name),\n initialError: getIn(initialErrors.current, name)\n };\n }, [state.errors, state.touched, state.values]);\n var getFieldHelpers = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (name) {\n return {\n setValue: function setValue(value, shouldValidate) {\n return setFieldValue(name, value, shouldValidate);\n },\n setTouched: function setTouched(value, shouldValidate) {\n return setFieldTouched(name, value, shouldValidate);\n },\n setError: function setError(value) {\n return setFieldError(name, value);\n }\n };\n }, [setFieldValue, setFieldTouched, setFieldError]);\n var getFieldProps = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (nameOrOptions) {\n var isAnObject = isObject(nameOrOptions);\n var name = isAnObject ? nameOrOptions.name : nameOrOptions;\n var valueState = getIn(state.values, name);\n var field = {\n name: name,\n value: valueState,\n onChange: handleChange,\n onBlur: handleBlur\n };\n\n if (isAnObject) {\n var type = nameOrOptions.type,\n valueProp = nameOrOptions.value,\n is = nameOrOptions.as,\n multiple = nameOrOptions.multiple;\n\n if (type === 'checkbox') {\n if (valueProp === undefined) {\n field.checked = !!valueState;\n } else {\n field.checked = !!(Array.isArray(valueState) && ~valueState.indexOf(valueProp));\n field.value = valueProp;\n }\n } else if (type === 'radio') {\n field.checked = valueState === valueProp;\n field.value = valueProp;\n } else if (is === 'select' && multiple) {\n field.value = field.value || [];\n field.multiple = true;\n }\n }\n\n return field;\n }, [handleBlur, handleChange, state.values]);\n var dirty = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function () {\n return !react_fast_compare__WEBPACK_IMPORTED_MODULE_1___default()(initialValues.current, state.values);\n }, [initialValues.current, state.values]);\n var isValid = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function () {\n return typeof isInitialValid !== 'undefined' ? dirty ? state.errors && Object.keys(state.errors).length === 0 : isInitialValid !== false && isFunction(isInitialValid) ? isInitialValid(props) : isInitialValid : state.errors && Object.keys(state.errors).length === 0;\n }, [isInitialValid, dirty, state.errors, props]);\n\n var ctx = _extends({}, state, {\n initialValues: initialValues.current,\n initialErrors: initialErrors.current,\n initialTouched: initialTouched.current,\n initialStatus: initialStatus.current,\n handleBlur: handleBlur,\n handleChange: handleChange,\n handleReset: handleReset,\n handleSubmit: handleSubmit,\n resetForm: resetForm,\n setErrors: setErrors,\n setFormikState: setFormikState,\n setFieldTouched: setFieldTouched,\n setFieldValue: setFieldValue,\n setFieldError: setFieldError,\n setStatus: setStatus,\n setSubmitting: setSubmitting,\n setTouched: setTouched,\n setValues: setValues,\n submitForm: submitForm,\n validateForm: validateFormWithHighPriority,\n validateField: validateField,\n isValid: isValid,\n dirty: dirty,\n unregisterField: unregisterField,\n registerField: registerField,\n getFieldProps: getFieldProps,\n getFieldMeta: getFieldMeta,\n getFieldHelpers: getFieldHelpers,\n validateOnBlur: validateOnBlur,\n validateOnChange: validateOnChange,\n validateOnMount: validateOnMount\n });\n\n return ctx;\n}\nfunction Formik(props) {\n var formikbag = useFormik(props);\n var component = props.component,\n children = props.children,\n render = props.render,\n innerRef = props.innerRef; // This allows folks to pass a ref to <Formik />\n\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useImperativeHandle)(innerRef, function () {\n return formikbag;\n });\n\n if (true) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n !!props.render ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, \"<Formik render> has been deprecated and will be removed in future versions of Formik. Please use a child callback function instead. To get rid of this warning, replace <Formik render={(props) => ...} /> with <Formik>{(props) => ...}</Formik>\") : 0 : void 0; // eslint-disable-next-line\n }, []);\n }\n\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(FormikProvider, {\n value: formikbag\n }, component ? (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(component, formikbag) : render ? render(formikbag) : children // children come last, always called\n ? isFunction(children) ? children(formikbag) : !isEmptyChildren(children) ? react__WEBPACK_IMPORTED_MODULE_0__.Children.only(children) : null : null);\n}\n\nfunction warnAboutMissingIdentifier(_ref4) {\n var htmlContent = _ref4.htmlContent,\n documentationAnchorLink = _ref4.documentationAnchorLink,\n handlerName = _ref4.handlerName;\n console.warn(\"Warning: Formik called `\" + handlerName + \"`, but you forgot to pass an `id` or `name` attribute to your input:\\n \" + htmlContent + \"\\n Formik cannot determine which value to update. For more info see https://formik.org/docs/api/formik#\" + documentationAnchorLink + \"\\n \");\n}\n/**\r\n * Transform Yup ValidationError to a more usable object\r\n */\n\n\nfunction yupToFormErrors(yupError) {\n var errors = {};\n\n if (yupError.inner) {\n if (yupError.inner.length === 0) {\n return setIn(errors, yupError.path, yupError.message);\n }\n\n for (var _iterator = yupError.inner, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref5;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref5 = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref5 = _i.value;\n }\n\n var err = _ref5;\n\n if (!getIn(errors, err.path)) {\n errors = setIn(errors, err.path, err.message);\n }\n }\n }\n\n return errors;\n}\n/**\r\n * Validate a yup schema.\r\n */\n\nfunction validateYupSchema(values, schema, sync, context) {\n if (sync === void 0) {\n sync = false;\n }\n\n if (context === void 0) {\n context = {};\n }\n\n var validateData = prepareDataForValidation(values);\n return schema[sync ? 'validateSync' : 'validate'](validateData, {\n abortEarly: false,\n context: context\n });\n}\n/**\r\n * Recursively prepare values.\r\n */\n\nfunction prepareDataForValidation(values) {\n var data = Array.isArray(values) ? [] : {};\n\n for (var k in values) {\n if (Object.prototype.hasOwnProperty.call(values, k)) {\n var key = String(k);\n\n if (Array.isArray(values[key]) === true) {\n data[key] = values[key].map(function (value) {\n if (Array.isArray(value) === true || (0,lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(value)) {\n return prepareDataForValidation(value);\n } else {\n return value !== '' ? value : undefined;\n }\n });\n } else if ((0,lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(values[key])) {\n data[key] = prepareDataForValidation(values[key]);\n } else {\n data[key] = values[key] !== '' ? values[key] : undefined;\n }\n }\n }\n\n return data;\n}\n/**\r\n * deepmerge array merging algorithm\r\n * https://github.com/KyleAMathews/deepmerge#combine-array\r\n */\n\nfunction arrayMerge(target, source, options) {\n var destination = target.slice();\n source.forEach(function merge(e, i) {\n if (typeof destination[i] === 'undefined') {\n var cloneRequested = options.clone !== false;\n var shouldClone = cloneRequested && options.isMergeableObject(e);\n destination[i] = shouldClone ? (0,deepmerge__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(Array.isArray(e) ? [] : {}, e, options) : e;\n } else if (options.isMergeableObject(e)) {\n destination[i] = (0,deepmerge__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(target[i], e, options);\n } else if (target.indexOf(e) === -1) {\n destination.push(e);\n }\n });\n return destination;\n}\n/** Return multi select values based on an array of options */\n\n\nfunction getSelectedValues(options) {\n return Array.from(options).filter(function (el) {\n return el.selected;\n }).map(function (el) {\n return el.value;\n });\n}\n/** Return the next value for a checkbox */\n\n\nfunction getValueForCheckbox(currentValue, checked, valueProp) {\n // If the current value was a boolean, return a boolean\n if (typeof currentValue === 'boolean') {\n return Boolean(checked);\n } // If the currentValue was not a boolean we want to return an array\n\n\n var currentArrayOfValues = [];\n var isValueInArray = false;\n var index = -1;\n\n if (!Array.isArray(currentValue)) {\n // eslint-disable-next-line eqeqeq\n if (!valueProp || valueProp == 'true' || valueProp == 'false') {\n return Boolean(checked);\n }\n } else {\n // If the current value is already an array, use it\n currentArrayOfValues = currentValue;\n index = currentValue.indexOf(valueProp);\n isValueInArray = index >= 0;\n } // If the checkbox was checked and the value is not already present in the aray we want to add the new value to the array of values\n\n\n if (checked && valueProp && !isValueInArray) {\n return currentArrayOfValues.concat(valueProp);\n } // If the checkbox was unchecked and the value is not in the array, simply return the already existing array of values\n\n\n if (!isValueInArray) {\n return currentArrayOfValues;\n } // If the checkbox was unchecked and the value is in the array, remove the value and return the array\n\n\n return currentArrayOfValues.slice(0, index).concat(currentArrayOfValues.slice(index + 1));\n} // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser.\n// @see https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\n\n\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect : react__WEBPACK_IMPORTED_MODULE_0__.useEffect;\n\nfunction useEventCallback(fn) {\n var ref = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(fn); // we copy a ref to the callback scoped to the current state/props on each render\n\n useIsomorphicLayoutEffect(function () {\n ref.current = fn;\n });\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return ref.current.apply(void 0, args);\n }, []);\n}\n\nfunction useField(propsOrFieldName) {\n var formik = useFormikContext();\n var getFieldProps = formik.getFieldProps,\n getFieldMeta = formik.getFieldMeta,\n getFieldHelpers = formik.getFieldHelpers,\n registerField = formik.registerField,\n unregisterField = formik.unregisterField;\n var isAnObject = isObject(propsOrFieldName); // Normalize propsOrFieldName to FieldHookConfig<Val>\n\n var props = isAnObject ? propsOrFieldName : {\n name: propsOrFieldName\n };\n var fieldName = props.name,\n validateFn = props.validate;\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n if (fieldName) {\n registerField(fieldName, {\n validate: validateFn\n });\n }\n\n return function () {\n if (fieldName) {\n unregisterField(fieldName);\n }\n };\n }, [registerField, unregisterField, fieldName, validateFn]);\n\n if (true) {\n !formik ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, 'useField() / <Field /> must be used underneath a <Formik> component or withFormik() higher order component') : 0 : void 0;\n }\n\n !fieldName ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, 'Invalid field name. Either pass `useField` a string or an object containing a `name` key.') : 0 : void 0;\n return [getFieldProps(props), getFieldMeta(fieldName), getFieldHelpers(fieldName)];\n}\nfunction Field(_ref) {\n var validate = _ref.validate,\n name = _ref.name,\n render = _ref.render,\n children = _ref.children,\n is = _ref.as,\n component = _ref.component,\n props = _objectWithoutPropertiesLoose(_ref, [\"validate\", \"name\", \"render\", \"children\", \"as\", \"component\"]);\n\n var _useFormikContext = useFormikContext(),\n formik = _objectWithoutPropertiesLoose(_useFormikContext, [\"validate\", \"validationSchema\"]);\n\n if (true) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n !!render ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, \"<Field render> has been deprecated and will be removed in future versions of Formik. Please use a child callback function instead. To get rid of this warning, replace <Field name=\\\"\" + name + \"\\\" render={({field, form}) => ...} /> with <Field name=\\\"\" + name + \"\\\">{({field, form, meta}) => ...}</Field>\") : 0 : void 0;\n !!(is && children && isFunction(children)) ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, 'You should not use <Field as> and <Field children> as a function in the same <Field> component; <Field as> will be ignored.') : 0 : void 0;\n !!(component && children && isFunction(children)) ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, 'You should not use <Field component> and <Field children> as a function in the same <Field> component; <Field component> will be ignored.') : 0 : void 0;\n !!(render && children && !isEmptyChildren(children)) ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, 'You should not use <Field render> and <Field children> in the same <Field> component; <Field children> will be ignored') : 0 : void 0; // eslint-disable-next-line\n }, []);\n } // Register field and field-level validation with parent <Formik>\n\n\n var registerField = formik.registerField,\n unregisterField = formik.unregisterField;\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n registerField(name, {\n validate: validate\n });\n return function () {\n unregisterField(name);\n };\n }, [registerField, unregisterField, name, validate]);\n var field = formik.getFieldProps(_extends({\n name: name\n }, props));\n var meta = formik.getFieldMeta(name);\n var legacyBag = {\n field: field,\n form: formik\n };\n\n if (render) {\n return render(_extends({}, legacyBag, {\n meta: meta\n }));\n }\n\n if (isFunction(children)) {\n return children(_extends({}, legacyBag, {\n meta: meta\n }));\n }\n\n if (component) {\n // This behavior is backwards compat with earlier Formik 0.9 to 1.x\n if (typeof component === 'string') {\n var innerRef = props.innerRef,\n rest = _objectWithoutPropertiesLoose(props, [\"innerRef\"]);\n\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(component, _extends({\n ref: innerRef\n }, field, rest), children);\n } // We don't pass `meta` for backwards compat\n\n\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(component, _extends({\n field: field,\n form: formik\n }, props), children);\n } // default to input here so we can check for both `as` and `children` above\n\n\n var asElement = is || 'input';\n\n if (typeof asElement === 'string') {\n var _innerRef = props.innerRef,\n _rest = _objectWithoutPropertiesLoose(props, [\"innerRef\"]);\n\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(asElement, _extends({\n ref: _innerRef\n }, field, _rest), children);\n }\n\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(asElement, _extends({}, field, props), children);\n}\n\nvar Form = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function (props, ref) {\n // iOS needs an \"action\" attribute for nice input: https://stackoverflow.com/a/39485162/406725\n // We default the action to \"#\" in case the preventDefault fails (just updates the URL hash)\n var action = props.action,\n rest = _objectWithoutPropertiesLoose(props, [\"action\"]);\n\n var _action = action != null ? action : '#';\n\n var _useFormikContext = useFormikContext(),\n handleReset = _useFormikContext.handleReset,\n handleSubmit = _useFormikContext.handleSubmit;\n\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"form\", Object.assign({\n onSubmit: handleSubmit,\n ref: ref,\n onReset: handleReset,\n action: _action\n }, rest));\n});\nForm.displayName = 'Form';\n\n/**\r\n * A public higher-order component to access the imperative API\r\n */\n\nfunction withFormik(_ref) {\n var _ref$mapPropsToValues = _ref.mapPropsToValues,\n mapPropsToValues = _ref$mapPropsToValues === void 0 ? function (vanillaProps) {\n var val = {};\n\n for (var k in vanillaProps) {\n if (vanillaProps.hasOwnProperty(k) && typeof vanillaProps[k] !== 'function') {\n // @todo TypeScript fix\n val[k] = vanillaProps[k];\n }\n }\n\n return val;\n } : _ref$mapPropsToValues,\n config = _objectWithoutPropertiesLoose(_ref, [\"mapPropsToValues\"]);\n\n return function createFormik(Component$1) {\n var componentDisplayName = Component$1.displayName || Component$1.name || Component$1.constructor && Component$1.constructor.name || 'Component';\n /**\r\n * We need to use closures here for to provide the wrapped component's props to\r\n * the respective withFormik config methods.\r\n */\n\n var C = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(C, _React$Component);\n\n function C() {\n var _this;\n\n _this = _React$Component.apply(this, arguments) || this;\n\n _this.validate = function (values) {\n return config.validate(values, _this.props);\n };\n\n _this.validationSchema = function () {\n return isFunction(config.validationSchema) ? config.validationSchema(_this.props) : config.validationSchema;\n };\n\n _this.handleSubmit = function (values, actions) {\n return config.handleSubmit(values, _extends({}, actions, {\n props: _this.props\n }));\n };\n /**\r\n * Just avoiding a render callback for perf here\r\n */\n\n\n _this.renderFormComponent = function (formikProps) {\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Component$1, Object.assign({}, _this.props, formikProps));\n };\n\n return _this;\n }\n\n var _proto = C.prototype;\n\n _proto.render = function render() {\n var _this$props = this.props,\n props = _objectWithoutPropertiesLoose(_this$props, [\"children\"]);\n\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Formik, Object.assign({}, props, config, {\n validate: config.validate && this.validate,\n validationSchema: config.validationSchema && this.validationSchema,\n initialValues: mapPropsToValues(this.props),\n initialStatus: config.mapPropsToStatus && config.mapPropsToStatus(this.props),\n initialErrors: config.mapPropsToErrors && config.mapPropsToErrors(this.props),\n initialTouched: config.mapPropsToTouched && config.mapPropsToTouched(this.props),\n onSubmit: this.handleSubmit,\n children: this.renderFormComponent\n }));\n };\n\n return C;\n }(react__WEBPACK_IMPORTED_MODULE_0__.Component);\n\n C.displayName = \"WithFormik(\" + componentDisplayName + \")\";\n return hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_3___default()(C, Component$1 // cast type to ComponentClass (even if SFC)\n );\n };\n}\n\n/**\r\n * Connect any component to Formik context, and inject as a prop called `formik`;\r\n * @param Comp React Component\r\n */\n\nfunction connect(Comp) {\n var C = function C(props) {\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(FormikConsumer, null, function (formik) {\n !!!formik ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, \"Formik context is undefined, please verify you are rendering <Form>, <Field>, <FastField>, <FieldArray>, or your custom context-using component as a child of a <Formik> component. Component name: \" + Comp.name) : 0 : void 0;\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Comp, Object.assign({}, props, {\n formik: formik\n }));\n });\n };\n\n var componentDisplayName = Comp.displayName || Comp.name || Comp.constructor && Comp.constructor.name || 'Component'; // Assign Comp to C.WrappedComponent so we can access the inner component in tests\n // For example, <Field.WrappedComponent /> gets us <FieldInner/>\n\n C.WrappedComponent = Comp;\n C.displayName = \"FormikConnect(\" + componentDisplayName + \")\";\n return hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_3___default()(C, Comp // cast type to ComponentClass (even if SFC)\n );\n}\n\n/**\r\n * Some array helpers!\r\n */\n\nvar move = function move(array, from, to) {\n var copy = copyArrayLike(array);\n var value = copy[from];\n copy.splice(from, 1);\n copy.splice(to, 0, value);\n return copy;\n};\nvar swap = function swap(arrayLike, indexA, indexB) {\n var copy = copyArrayLike(arrayLike);\n var a = copy[indexA];\n copy[indexA] = copy[indexB];\n copy[indexB] = a;\n return copy;\n};\nvar insert = function insert(arrayLike, index, value) {\n var copy = copyArrayLike(arrayLike);\n copy.splice(index, 0, value);\n return copy;\n};\nvar replace = function replace(arrayLike, index, value) {\n var copy = copyArrayLike(arrayLike);\n copy[index] = value;\n return copy;\n};\n\nvar copyArrayLike = function copyArrayLike(arrayLike) {\n if (!arrayLike) {\n return [];\n } else if (Array.isArray(arrayLike)) {\n return [].concat(arrayLike);\n } else {\n var maxIndex = Object.keys(arrayLike).map(function (key) {\n return parseInt(key);\n }).reduce(function (max, el) {\n return el > max ? el : max;\n }, 0);\n return Array.from(_extends({}, arrayLike, {\n length: maxIndex + 1\n }));\n }\n};\n\nvar FieldArrayInner = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(FieldArrayInner, _React$Component);\n\n function FieldArrayInner(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n\n _this.updateArrayField = function (fn, alterTouched, alterErrors) {\n var _this$props = _this.props,\n name = _this$props.name,\n setFormikState = _this$props.formik.setFormikState;\n setFormikState(function (prevState) {\n var updateErrors = typeof alterErrors === 'function' ? alterErrors : fn;\n var updateTouched = typeof alterTouched === 'function' ? alterTouched : fn; // values fn should be executed before updateErrors and updateTouched,\n // otherwise it causes an error with unshift.\n\n var values = setIn(prevState.values, name, fn(getIn(prevState.values, name)));\n var fieldError = alterErrors ? updateErrors(getIn(prevState.errors, name)) : undefined;\n var fieldTouched = alterTouched ? updateTouched(getIn(prevState.touched, name)) : undefined;\n\n if (isEmptyArray(fieldError)) {\n fieldError = undefined;\n }\n\n if (isEmptyArray(fieldTouched)) {\n fieldTouched = undefined;\n }\n\n return _extends({}, prevState, {\n values: values,\n errors: alterErrors ? setIn(prevState.errors, name, fieldError) : prevState.errors,\n touched: alterTouched ? setIn(prevState.touched, name, fieldTouched) : prevState.touched\n });\n });\n };\n\n _this.push = function (value) {\n return _this.updateArrayField(function (arrayLike) {\n return [].concat(copyArrayLike(arrayLike), [(0,lodash_es_cloneDeep__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(value)]);\n }, false, false);\n };\n\n _this.handlePush = function (value) {\n return function () {\n return _this.push(value);\n };\n };\n\n _this.swap = function (indexA, indexB) {\n return _this.updateArrayField(function (array) {\n return swap(array, indexA, indexB);\n }, true, true);\n };\n\n _this.handleSwap = function (indexA, indexB) {\n return function () {\n return _this.swap(indexA, indexB);\n };\n };\n\n _this.move = function (from, to) {\n return _this.updateArrayField(function (array) {\n return move(array, from, to);\n }, true, true);\n };\n\n _this.handleMove = function (from, to) {\n return function () {\n return _this.move(from, to);\n };\n };\n\n _this.insert = function (index, value) {\n return _this.updateArrayField(function (array) {\n return insert(array, index, value);\n }, function (array) {\n return insert(array, index, null);\n }, function (array) {\n return insert(array, index, null);\n });\n };\n\n _this.handleInsert = function (index, value) {\n return function () {\n return _this.insert(index, value);\n };\n };\n\n _this.replace = function (index, value) {\n return _this.updateArrayField(function (array) {\n return replace(array, index, value);\n }, false, false);\n };\n\n _this.handleReplace = function (index, value) {\n return function () {\n return _this.replace(index, value);\n };\n };\n\n _this.unshift = function (value) {\n var length = -1;\n\n _this.updateArrayField(function (array) {\n var arr = array ? [value].concat(array) : [value];\n\n if (length < 0) {\n length = arr.length;\n }\n\n return arr;\n }, function (array) {\n var arr = array ? [null].concat(array) : [null];\n\n if (length < 0) {\n length = arr.length;\n }\n\n return arr;\n }, function (array) {\n var arr = array ? [null].concat(array) : [null];\n\n if (length < 0) {\n length = arr.length;\n }\n\n return arr;\n });\n\n return length;\n };\n\n _this.handleUnshift = function (value) {\n return function () {\n return _this.unshift(value);\n };\n };\n\n _this.handleRemove = function (index) {\n return function () {\n return _this.remove(index);\n };\n };\n\n _this.handlePop = function () {\n return function () {\n return _this.pop();\n };\n }; // We need TypeScript generics on these, so we'll bind them in the constructor\n // @todo Fix TS 3.2.1\n\n\n _this.remove = _this.remove.bind(_assertThisInitialized(_this));\n _this.pop = _this.pop.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n var _proto = FieldArrayInner.prototype;\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (this.props.validateOnChange && this.props.formik.validateOnChange && !react_fast_compare__WEBPACK_IMPORTED_MODULE_1___default()(getIn(prevProps.formik.values, prevProps.name), getIn(this.props.formik.values, this.props.name))) {\n this.props.formik.validateForm(this.props.formik.values);\n }\n };\n\n _proto.remove = function remove(index) {\n // We need to make sure we also remove relevant pieces of `touched` and `errors`\n var result;\n this.updateArrayField( // so this gets call 3 times\n function (array) {\n var copy = array ? copyArrayLike(array) : [];\n\n if (!result) {\n result = copy[index];\n }\n\n if (isFunction(copy.splice)) {\n copy.splice(index, 1);\n }\n\n return copy;\n }, true, true);\n return result;\n };\n\n _proto.pop = function pop() {\n // Remove relevant pieces of `touched` and `errors` too!\n var result;\n this.updateArrayField( // so this gets call 3 times\n function (array) {\n var tmp = array;\n\n if (!result) {\n result = tmp && tmp.pop && tmp.pop();\n }\n\n return tmp;\n }, true, true);\n return result;\n };\n\n _proto.render = function render() {\n var arrayHelpers = {\n push: this.push,\n pop: this.pop,\n swap: this.swap,\n move: this.move,\n insert: this.insert,\n replace: this.replace,\n unshift: this.unshift,\n remove: this.remove,\n handlePush: this.handlePush,\n handlePop: this.handlePop,\n handleSwap: this.handleSwap,\n handleMove: this.handleMove,\n handleInsert: this.handleInsert,\n handleReplace: this.handleReplace,\n handleUnshift: this.handleUnshift,\n handleRemove: this.handleRemove\n };\n\n var _this$props2 = this.props,\n component = _this$props2.component,\n render = _this$props2.render,\n children = _this$props2.children,\n name = _this$props2.name,\n _this$props2$formik = _this$props2.formik,\n restOfFormik = _objectWithoutPropertiesLoose(_this$props2$formik, [\"validate\", \"validationSchema\"]);\n\n var props = _extends({}, arrayHelpers, {\n form: restOfFormik,\n name: name\n });\n\n return component ? (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(component, props) : render ? render(props) : children // children come last, always called\n ? typeof children === 'function' ? children(props) : !isEmptyChildren(children) ? react__WEBPACK_IMPORTED_MODULE_0__.Children.only(children) : null : null;\n };\n\n return FieldArrayInner;\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component);\n\nFieldArrayInner.defaultProps = {\n validateOnChange: true\n};\nvar FieldArray = /*#__PURE__*/connect(FieldArrayInner);\n\nvar ErrorMessageImpl = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(ErrorMessageImpl, _React$Component);\n\n function ErrorMessageImpl() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = ErrorMessageImpl.prototype;\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(props) {\n if (getIn(this.props.formik.errors, this.props.name) !== getIn(props.formik.errors, this.props.name) || getIn(this.props.formik.touched, this.props.name) !== getIn(props.formik.touched, this.props.name) || Object.keys(this.props).length !== Object.keys(props).length) {\n return true;\n } else {\n return false;\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n component = _this$props.component,\n formik = _this$props.formik,\n render = _this$props.render,\n children = _this$props.children,\n name = _this$props.name,\n rest = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"formik\", \"render\", \"children\", \"name\"]);\n\n var touch = getIn(formik.touched, name);\n var error = getIn(formik.errors, name);\n return !!touch && !!error ? render ? isFunction(render) ? render(error) : null : children ? isFunction(children) ? children(error) : null : component ? (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(component, rest, error) : error : null;\n };\n\n return ErrorMessageImpl;\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component);\n\nvar ErrorMessage = /*#__PURE__*/connect(ErrorMessageImpl);\n\n/**\r\n * Custom Field component for quickly hooking into Formik\r\n * context and wiring up forms.\r\n */\n\nvar FastFieldInner = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(FastFieldInner, _React$Component);\n\n function FastFieldInner(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n var render = props.render,\n children = props.children,\n component = props.component,\n is = props.as,\n name = props.name;\n !!render ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, \"<FastField render> has been deprecated. Please use a child callback function instead: <FastField name={\" + name + \"}>{props => ...}</FastField> instead.\") : 0 : void 0;\n !!(component && render) ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, 'You should not use <FastField component> and <FastField render> in the same <FastField> component; <FastField component> will be ignored') : 0 : void 0;\n !!(is && children && isFunction(children)) ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, 'You should not use <FastField as> and <FastField children> as a function in the same <FastField> component; <FastField as> will be ignored.') : 0 : void 0;\n !!(component && children && isFunction(children)) ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, 'You should not use <FastField component> and <FastField children> as a function in the same <FastField> component; <FastField component> will be ignored.') : 0 : void 0;\n !!(render && children && !isEmptyChildren(children)) ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, 'You should not use <FastField render> and <FastField children> in the same <FastField> component; <FastField children> will be ignored') : 0 : void 0;\n return _this;\n }\n\n var _proto = FastFieldInner.prototype;\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(props) {\n if (this.props.shouldUpdate) {\n return this.props.shouldUpdate(props, this.props);\n } else if (props.name !== this.props.name || getIn(props.formik.values, this.props.name) !== getIn(this.props.formik.values, this.props.name) || getIn(props.formik.errors, this.props.name) !== getIn(this.props.formik.errors, this.props.name) || getIn(props.formik.touched, this.props.name) !== getIn(this.props.formik.touched, this.props.name) || Object.keys(this.props).length !== Object.keys(props).length || props.formik.isSubmitting !== this.props.formik.isSubmitting) {\n return true;\n } else {\n return false;\n }\n };\n\n _proto.componentDidMount = function componentDidMount() {\n // Register the Field with the parent Formik. Parent will cycle through\n // registered Field's validate fns right prior to submit\n this.props.formik.registerField(this.props.name, {\n validate: this.props.validate\n });\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (this.props.name !== prevProps.name) {\n this.props.formik.unregisterField(prevProps.name);\n this.props.formik.registerField(this.props.name, {\n validate: this.props.validate\n });\n }\n\n if (this.props.validate !== prevProps.validate) {\n this.props.formik.registerField(this.props.name, {\n validate: this.props.validate\n });\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.props.formik.unregisterField(this.props.name);\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n name = _this$props.name,\n render = _this$props.render,\n is = _this$props.as,\n children = _this$props.children,\n component = _this$props.component,\n formik = _this$props.formik,\n props = _objectWithoutPropertiesLoose(_this$props, [\"validate\", \"name\", \"render\", \"as\", \"children\", \"component\", \"shouldUpdate\", \"formik\"]);\n\n var restOfFormik = _objectWithoutPropertiesLoose(formik, [\"validate\", \"validationSchema\"]);\n\n var field = formik.getFieldProps(_extends({\n name: name\n }, props));\n var meta = {\n value: getIn(formik.values, name),\n error: getIn(formik.errors, name),\n touched: !!getIn(formik.touched, name),\n initialValue: getIn(formik.initialValues, name),\n initialTouched: !!getIn(formik.initialTouched, name),\n initialError: getIn(formik.initialErrors, name)\n };\n var bag = {\n field: field,\n meta: meta,\n form: restOfFormik\n };\n\n if (render) {\n return render(bag);\n }\n\n if (isFunction(children)) {\n return children(bag);\n }\n\n if (component) {\n // This behavior is backwards compat with earlier Formik 0.9 to 1.x\n if (typeof component === 'string') {\n var innerRef = props.innerRef,\n rest = _objectWithoutPropertiesLoose(props, [\"innerRef\"]);\n\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(component, _extends({\n ref: innerRef\n }, field, rest), children);\n } // We don't pass `meta` for backwards compat\n\n\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(component, _extends({\n field: field,\n form: formik\n }, props), children);\n } // default to input here so we can check for both `as` and `children` above\n\n\n var asElement = is || 'input';\n\n if (typeof asElement === 'string') {\n var _innerRef = props.innerRef,\n _rest = _objectWithoutPropertiesLoose(props, [\"innerRef\"]);\n\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(asElement, _extends({\n ref: _innerRef\n }, field, _rest), children);\n }\n\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(asElement, _extends({}, field, props), children);\n };\n\n return FastFieldInner;\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component);\n\nvar FastField = /*#__PURE__*/connect(FastFieldInner);\n\n\n//# sourceMappingURL=formik.esm.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvZm9ybWlrL2Rpc3QvZm9ybWlrLmVzbS5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQTZMO0FBQ3BKO0FBQ1A7QUFDa0I7QUFDaEI7QUFDRTtBQUNEO0FBQ3NCO0FBQ2Y7O0FBRTVDO0FBQ0E7QUFDQSxvQkFBb0Isc0JBQXNCO0FBQzFDOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGNBQWMsdUJBQXVCO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsU0FBUyxpREFBYztBQUN2QjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxXQUFXO0FBQ3RCLFlBQVk7QUFDWjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGFBQWEsNERBQU07O0FBRW5CO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FB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QUFxSCxvQ0FBb0MsQ0FBZ0I7QUFDM1Esd0RBQXdELEtBQXFDLEdBQUcsd0RBQVMsNEhBQTRILDJDQUEyQyxDQUFnQjtBQUNoUywyREFBMkQsS0FBcUMsR0FBRyx3REFBUywyR0FBMkcseUNBQXlDLENBQWdCO0FBQ2hSO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxlQUFlLG9EQUFhO0FBQzVCO0FBQ0EsU0FBUztBQUNULFFBQVE7OztBQUdSLGFBQWEsb0RBQWE7QUFDMUI7QUFDQTtBQUNBLE9BQU87QUFDUCxNQUFNOzs7QUFHTjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsYUFBYSxvREFBYTtBQUMxQjtBQUNBLE9BQU87QUFDUDs7QUFFQSxXQUFXLG9EQUFhLHVCQUF1QjtBQUMvQzs7QUFFQTtBQUNBLENBQUMsQ0FBQyw0Q0FBUzs7QUFFWDs7QUFFc2I7QUFDdGIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2Zvcm1pay9kaXN0L2Zvcm1pay5lc20uanM/MzMwMCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGlsZHJlbiwgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCwgdXNlUmVmLCB1c2VFZmZlY3QsIHVzZVJlZHVjZXIsIHVzZUNhbGxiYWNrLCB1c2VNZW1vLCB1c2VJbXBlcmF0aXZlSGFuZGxlLCBjcmVhdGVFbGVtZW50LCB1c2VMYXlvdXRFZmZlY3QsIGZvcndhcmRSZWYsIENvbXBvbmVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBpc0VxdWFsIGZyb20gJ3JlYWN0LWZhc3QtY29tcGFyZSc7XG5pbXBvcnQgZGVlcG1lcmdlIGZyb20gJ2RlZXBtZXJnZSc7XG5pbXBvcnQgaXNQbGFpbk9iamVjdCBmcm9tICdsb2Rhc2gtZXMvaXNQbGFpbk9iamVjdCc7XG5pbXBvcnQgY2xvbmUgZnJvbSAnbG9kYXNoLWVzL2Nsb25lJztcbmltcG9ydCB0b1BhdGggZnJvbSAnbG9kYXNoLWVzL3RvUGF0aCc7XG5pbXBvcnQgaW52YXJpYW50IGZyb20gJ3Rpbnktd2FybmluZyc7XG5pbXBvcnQgaG9pc3ROb25SZWFjdFN0YXRpY3MgZnJvbSAnaG9pc3Qtbm9uLXJlYWN0LXN0YXRpY3MnO1xuaW1wb3J0IGNsb25lRGVlcCBmcm9tICdsb2Rhc2gtZXMvY2xvbmVEZWVwJztcblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7XG4gIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7XG4gICAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07XG5cbiAgICAgIGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHtcbiAgICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfTtcblxuICByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cblxuZnVuY3Rpb24gX2luaGVyaXRzTG9vc2Uoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHtcbiAgc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzLnByb3RvdHlwZSk7XG4gIHN1YkNsYXNzLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IHN1YkNsYXNzO1xuICBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzO1xufVxuXG5mdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShzb3VyY2UsIGV4Y2x1ZGVkKSB7XG4gIGlmIChzb3VyY2UgPT0gbnVsbCkgcmV0dXJuIHt9O1xuICB2YXIgdGFyZ2V0ID0ge307XG4gIHZhciBzb3VyY2VLZXlzID0gT2JqZWN0LmtleXMoc291cmNlKTtcbiAgdmFyIGtleSwgaTtcblxuICBmb3IgKGkgPSAwOyBpIDwgc291cmNlS2V5cy5sZW5ndGg7IGkrKykge1xuICAgIGtleSA9IHNvdXJjZUtleXNbaV07XG4gICAgaWYgKGV4Y2x1ZGVkLmluZGV4T2Yoa2V5KSA+PSAwKSBjb250aW51ZTtcbiAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldO1xuICB9XG5cbiAgcmV0dXJuIHRhcmdldDtcbn1cblxuZnVuY3Rpb24gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKSB7XG4gIGlmIChzZWxmID09PSB2b2lkIDApIHtcbiAgICB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7XG4gIH1cblxuICByZXR1cm4gc2VsZjtcbn1cblxuLyoqIEBwcml2YXRlIGlzIHRoZSB2YWx1ZSBhbiBlbXB0eSBhcnJheT8gKi9cblxudmFyIGlzRW1wdHlBcnJheSA9IGZ1bmN0aW9uIGlzRW1wdHlBcnJheSh2YWx1ZSkge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID09PSAwO1xufTtcbi8qKiBAcHJpdmF0ZSBpcyB0aGUgZ2l2ZW4gb2JqZWN0IGEgRnVuY3Rpb24/ICovXG5cbnZhciBpc0Z1bmN0aW9uID0gZnVuY3Rpb24gaXNGdW5jdGlvbihvYmopIHtcbiAgcmV0dXJuIHR5cGVvZiBvYmogPT09ICdmdW5jdGlvbic7XG59O1xuLyoqIEBwcml2YXRlIGlzIHRoZSBnaXZlbiBvYmplY3QgYW4gT2JqZWN0PyAqL1xuXG52YXIgaXNPYmplY3QgPSBmdW5jdGlvbiBpc09iamVjdChvYmopIHtcbiAgcmV0dXJuIG9iaiAhPT0gbnVsbCAmJiB0eXBlb2Ygb2JqID09PSAnb2JqZWN0Jztcbn07XG4vKiogQHByaXZhdGUgaXMgdGhlIGdpdmVuIG9iamVjdCBhbiBpbnRlZ2VyPyAqL1xuXG52YXIgaXNJbnRlZ2VyID0gZnVuY3Rpb24gaXNJbnRlZ2VyKG9iaikge1xuICByZXR1cm4gU3RyaW5nKE1hdGguZmxvb3IoTnVtYmVyKG9iaikpKSA9PT0gb2JqO1xufTtcbi8qKiBAcHJpdmF0ZSBpcyB0aGUgZ2l2ZW4gb2JqZWN0IGEgc3RyaW5nPyAqL1xuXG52YXIgaXNTdHJpbmcgPSBmdW5jdGlvbiBpc1N0cmluZyhvYmopIHtcbiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmopID09PSAnW29iamVjdCBTdHJpbmddJztcbn07XG4vKiogQHByaXZhdGUgaXMgdGhlIGdpdmVuIG9iamVjdCBhIE5hTj8gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZWxmLWNvbXBhcmVcblxudmFyIGlzTmFOJDEgPSBmdW5jdGlvbiBpc05hTihvYmopIHtcbiAgcmV0dXJuIG9iaiAhPT0gb2JqO1xufTtcbi8qKiBAcHJpdmF0ZSBEb2VzIGEgUmVhY3QgY29tcG9uZW50IGhhdmUgZXhhY3RseSAwIGNoaWxkcmVuPyAqL1xuXG52YXIgaXNFbXB0eUNoaWxkcmVuID0gZnVuY3Rpb24gaXNFbXB0eUNoaWxkcmVuKGNoaWxkcmVuKSB7XG4gIHJldHVybiBDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPT09IDA7XG59O1xuLyoqIEBwcml2YXRlIGlzIHRoZSBnaXZlbiBvYmplY3QvdmFsdWUgYSBwcm9taXNlPyAqL1xuXG52YXIgaXNQcm9taXNlID0gZnVuY3Rpb24gaXNQcm9taXNlKHZhbHVlKSB7XG4gIHJldHVybiBpc09iamVjdCh2YWx1ZSkgJiYgaXNGdW5jdGlvbih2YWx1ZS50aGVuKTtcbn07XG4vKiogQHByaXZhdGUgaXMgdGhlIGdpdmVuIG9iamVjdC92YWx1ZSBhIHR5cGUgb2Ygc3ludGhldGljIGV2ZW50PyAqL1xuXG52YXIgaXNJbnB1dEV2ZW50ID0gZnVuY3Rpb24gaXNJbnB1dEV2ZW50KHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSAmJiBpc09iamVjdCh2YWx1ZSkgJiYgaXNPYmplY3QodmFsdWUudGFyZ2V0KTtcbn07XG4vKipcclxuICogU2FtZSBhcyBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGJ1dCB3cmFwcyBpbiBhIHRyeS1jYXRjaCBibG9jay4gSW4gSUUgaXQgaXNcclxuICogbm90IHNhZmUgdG8gY2FsbCBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGlmIHRoZXJlIGlzIG5vdGhpbmcgZm9jdXNlZC5cclxuICpcclxuICogVGhlIGFjdGl2ZUVsZW1lbnQgd2lsbCBiZSBudWxsIG9ubHkgaWYgdGhlIGRvY3VtZW50IG9yIGRvY3VtZW50IGJvZHkgaXMgbm90XHJcbiAqIHlldCBkZWZpbmVkLlxyXG4gKlxyXG4gKiBAcGFyYW0gez9Eb2N1bWVudH0gZG9jIERlZmF1bHRzIHRvIGN1cnJlbnQgZG9jdW1lbnQuXHJcbiAqIEByZXR1cm4ge0VsZW1lbnQgfCBudWxsfVxyXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9mYmpzL2Jsb2IvbWFzdGVyL3BhY2thZ2VzL2ZianMvc3JjL2NvcmUvZG9tL2dldEFjdGl2ZUVsZW1lbnQuanNcclxuICovXG5cbmZ1bmN0aW9uIGdldEFjdGl2ZUVsZW1lbnQoZG9jKSB7XG4gIGRvYyA9IGRvYyB8fCAodHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJyA/IGRvY3VtZW50IDogdW5kZWZpbmVkKTtcblxuICBpZiAodHlwZW9mIGRvYyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHRyeSB7XG4gICAgcmV0dXJuIGRvYy5hY3RpdmVFbGVtZW50IHx8IGRvYy5ib2R5O1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGRvYy5ib2R5O1xuICB9XG59XG4vKipcclxuICogRGVlcGx5IGdldCBhIHZhbHVlIGZyb20gYW4gb2JqZWN0IHZpYSBpdHMgcGF0aC5cclxuICovXG5cbmZ1bmN0aW9uIGdldEluKG9iaiwga2V5LCBkZWYsIHApIHtcbiAgaWYgKHAgPT09IHZvaWQgMCkge1xuICAgIHAgPSAwO1xuICB9XG5cbiAgdmFyIHBhdGggPSB0b1BhdGgoa2V5KTtcblxuICB3aGlsZSAob2JqICYmIHAgPCBwYXRoLmxlbmd0aCkge1xuICAgIG9iaiA9IG9ialtwYXRoW3ArK11dO1xuICB9XG5cbiAgcmV0dXJuIG9iaiA9PT0gdW5kZWZpbmVkID8gZGVmIDogb2JqO1xufVxuLyoqXHJcbiAqIERlZXBseSBzZXQgYSB2YWx1ZSBmcm9tIGluIG9iamVjdCB2aWEgaXQncyBwYXRoLiBJZiB0aGUgdmFsdWUgYXQgYHBhdGhgXHJcbiAqIGhhcyBjaGFuZ2VkLCByZXR1cm4gYSBzaGFsbG93IGNvcHkgb2Ygb2JqIHdpdGggYHZhbHVlYCBzZXQgYXQgYHBhdGhgLlxyXG4gKiBJZiBgdmFsdWVgIGhhcyBub3QgY2hhbmdlZCwgcmV0dXJuIHRoZSBvcmlnaW5hbCBgb2JqYC5cclxuICpcclxuICogRXhpc3Rpbmcgb2JqZWN0cyAvIGFycmF5cyBhbG9uZyBgcGF0aGAgYXJlIGFsc28gc2hhbGxvdyBjb3BpZWQuIFNpYmxpbmdcclxuICogb2JqZWN0cyBhbG9uZyBwYXRoIHJldGFpbiB0aGUgc2FtZSBpbnRlcm5hbCBqcyByZWZlcmVuY2UuIFNpbmNlIG5ld1xyXG4gKiBvYmplY3RzIC8gYXJyYXlzIGFyZSBvbmx5IGNyZWF0ZWQgYWxvbmcgYHBhdGhgLCB3ZSBjYW4gdGVzdCBpZiBhbnl0aGluZ1xyXG4gKiBjaGFuZ2VkIGluIGEgbmVzdGVkIHN0cnVjdHVyZSBieSBjb21wYXJpbmcgdGhlIG9iamVjdCdzIHJlZmVyZW5jZSBpblxyXG4gKiB0aGUgb2xkIGFuZCBuZXcgb2JqZWN0LCBzaW1pbGFyIHRvIGhvdyBydXNzaWFuIGRvbGwgY2FjaGUgaW52YWxpZGF0aW9uXHJcbiAqIHdvcmtzLlxyXG4gKlxyXG4gKiBJbiBlYXJsaWVyIHZlcnNpb25zIG9mIHRoaXMgZnVuY3Rpb24sIHdoaWNoIHVzZWQgY2xvbmVEZWVwLCB0aGVyZSB3ZXJlXHJcbiAqIGlzc3VlcyB3aGVyZWJ5IHNldHRpbmdzIGEgbmVzdGVkIHZhbHVlIHdvdWxkIG11dGF0ZSB0aGUgcGFyZW50XHJcbiAqIGluc3RlYWQgb2YgY3JlYXRpbmcgYSBuZXcgb2JqZWN0LiBgY2xvbmVgIGF2b2lkcyB0aGF0IGJ1ZyBtYWtpbmcgYVxyXG4gKiBzaGFsbG93IGNvcHkgb2YgdGhlIG9iamVjdHMgYWxvbmcgdGhlIHVwZGF0ZSBwYXRoXHJcbiAqIHNvIG5vIG9iamVjdCBpcyBtdXRhdGVkIGluIHBsYWNlLlxyXG4gKlxyXG4gKiBCZWZvcmUgY2hhbmdpbmcgdGhpcyBmdW5jdGlvbiwgcGxlYXNlIHJlYWQgdGhyb3VnaCB0aGUgZm9sbG93aW5nXHJcbiAqIGRpc2N1c3Npb25zLlxyXG4gKlxyXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9kZXZlbG9waXQvbGlua3N0YXRlXHJcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2phcmVkcGFsbWVyL2Zvcm1pay9wdWxsLzEyM1xyXG4gKi9cblxuZnVuY3Rpb24gc2V0SW4ob2JqLCBwYXRoLCB2YWx1ZSkge1xuICB2YXIgcmVzID0gY2xvbmUob2JqKTsgLy8gdGhpcyBrZWVwcyBpbmhlcml0YW5jZSB3aGVuIG9iaiBpcyBhIGNsYXNzXG5cbiAgdmFyIHJlc1ZhbCA9IHJlcztcbiAgdmFyIGkgPSAwO1xuICB2YXIgcGF0aEFycmF5ID0gdG9QYXRoKHBhdGgpO1xuXG4gIGZvciAoOyBpIDwgcGF0aEFycmF5Lmxlbmd0aCAtIDE7IGkrKykge1xuICAgIHZhciBjdXJyZW50UGF0aCA9IHBhdGhBcnJheVtpXTtcbiAgICB2YXIgY3VycmVudE9iaiA9IGdldEluKG9iaiwgcGF0aEFycmF5LnNsaWNlKDAsIGkgKyAxKSk7XG5cbiAgICBpZiAoY3VycmVudE9iaiAmJiAoaXNPYmplY3QoY3VycmVudE9iaikgfHwgQXJyYXkuaXNBcnJheShjdXJyZW50T2JqKSkpIHtcbiAgICAgIHJlc1ZhbCA9IHJlc1ZhbFtjdXJyZW50UGF0aF0gPSBjbG9uZShjdXJyZW50T2JqKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIG5leHRQYXRoID0gcGF0aEFycmF5W2kgKyAxXTtcbiAgICAgIHJlc1ZhbCA9IHJlc1ZhbFtjdXJyZW50UGF0aF0gPSBpc0ludGVnZXIobmV4dFBhdGgpICYmIE51bWJlcihuZXh0UGF0aCkgPj0gMCA/IFtdIDoge307XG4gICAgfVxuICB9IC8vIFJldHVybiBvcmlnaW5hbCBvYmplY3QgaWYgbmV3IHZhbHVlIGlzIHRoZSBzYW1lIGFzIGN1cnJlbnRcblxuXG4gIGlmICgoaSA9PT0gMCA/IG9iaiA6IHJlc1ZhbClbcGF0aEFycmF5W2ldXSA9PT0gdmFsdWUpIHtcbiAgICByZXR1cm4gb2JqO1xuICB9XG5cbiAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICBkZWxldGUgcmVzVmFsW3BhdGhBcnJheVtpXV07XG4gIH0gZWxzZSB7XG4gICAgcmVzVmFsW3BhdGhBcnJheVtpXV0gPSB2YWx1ZTtcbiAgfSAvLyBJZiB0aGUgcGF0aCBhcnJheSBoYXMgYSBzaW5nbGUgZWxlbWVudCwgdGhlIGxvb3AgZGlkIG5vdCBydW4uXG4gIC8vIERlbGV0aW5nIG9uIGByZXNWYWxgIGhhZCBubyBlZmZlY3QgaW4gdGhpcyBzY2VuYXJpbywgc28gd2UgZGVsZXRlIG9uIHRoZSByZXN1bHQgaW5zdGVhZC5cblxuXG4gIGlmIChpID09PSAwICYmIHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICBkZWxldGUgcmVzW3BhdGhBcnJheVtpXV07XG4gIH1cblxuICByZXR1cm4gcmVzO1xufVxuLyoqXHJcbiAqIFJlY3Vyc2l2ZWx5IGEgc2V0IHRoZSBzYW1lIHZhbHVlIGZvciBhbGwga2V5cyBhbmQgYXJyYXlzIG5lc3RlZCBvYmplY3QsIGNsb25pbmdcclxuICogQHBhcmFtIG9iamVjdFxyXG4gKiBAcGFyYW0gdmFsdWVcclxuICogQHBhcmFtIHZpc2l0ZWRcclxuICogQHBhcmFtIHJlc3BvbnNlXHJcbiAqL1xuXG5mdW5jdGlvbiBzZXROZXN0ZWRPYmplY3RWYWx1ZXMob2JqZWN0LCB2YWx1ZSwgdmlzaXRlZCwgcmVzcG9uc2UpIHtcbiAgaWYgKHZpc2l0ZWQgPT09IHZvaWQgMCkge1xuICAgIHZpc2l0ZWQgPSBuZXcgV2Vha01hcCgpO1xuICB9XG5cbiAgaWYgKHJlc3BvbnNlID09PSB2b2lkIDApIHtcbiAgICByZXNwb25zZSA9IHt9O1xuICB9XG5cbiAgZm9yICh2YXIgX2kgPSAwLCBfT2JqZWN0JGtleXMgPSBPYmplY3Qua2V5cyhvYmplY3QpOyBfaSA8IF9PYmplY3Qka2V5cy5sZW5ndGg7IF9pKyspIHtcbiAgICB2YXIgayA9IF9PYmplY3Qka2V5c1tfaV07XG4gICAgdmFyIHZhbCA9IG9iamVjdFtrXTtcblxuICAgIGlmIChpc09iamVjdCh2YWwpKSB7XG4gICAgICBpZiAoIXZpc2l0ZWQuZ2V0KHZhbCkpIHtcbiAgICAgICAgdmlzaXRlZC5zZXQodmFsLCB0cnVlKTsgLy8gSW4gb3JkZXIgdG8ga2VlcCBhcnJheSB2YWx1ZXMgY29uc2lzdGVudCBmb3IgYm90aCBkb3QgcGF0aCAgYW5kXG4gICAgICAgIC8vIGJyYWNrZXQgc3ludGF4LCB3ZSBuZWVkIHRvIGNoZWNrIGlmIHRoaXMgaXMgYW4gYXJyYXkgc28gdGhhdFxuICAgICAgICAvLyB0aGlzIHdpbGwgb3V0cHV0ICB7IGZyaWVuZHM6IFt0cnVlXSB9IGFuZCBub3QgeyBmcmllbmRzOiB7IFwiMFwiOiB0cnVlIH0gfVxuXG4gICAgICAgIHJlc3BvbnNlW2tdID0gQXJyYXkuaXNBcnJheSh2YWwpID8gW10gOiB7fTtcbiAgICAgICAgc2V0TmVzdGVkT2JqZWN0VmFsdWVzKHZhbCwgdmFsdWUsIHZpc2l0ZWQsIHJlc3BvbnNlW2tdKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmVzcG9uc2Vba10gPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzcG9uc2U7XG59XG5cbnZhciBGb3JtaWtDb250ZXh0ID0gLyojX19QVVJFX18qL2NyZWF0ZUNvbnRleHQodW5kZWZpbmVkKTtcbkZvcm1pa0NvbnRleHQuZGlzcGxheU5hbWUgPSAnRm9ybWlrQ29udGV4dCc7XG52YXIgRm9ybWlrUHJvdmlkZXIgPSBGb3JtaWtDb250ZXh0LlByb3ZpZGVyO1xudmFyIEZvcm1pa0NvbnN1bWVyID0gRm9ybWlrQ29udGV4dC5Db25zdW1lcjtcbmZ1bmN0aW9uIHVzZUZvcm1pa0NvbnRleHQoKSB7XG4gIHZhciBmb3JtaWsgPSB1c2VDb250ZXh0KEZvcm1pa0NvbnRleHQpO1xuICAhISFmb3JtaWsgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyBpbnZhcmlhbnQoZmFsc2UsIFwiRm9ybWlrIGNvbnRleHQgaXMgdW5kZWZpbmVkLCBwbGVhc2UgdmVyaWZ5IHlvdSBhcmUgY2FsbGluZyB1c2VGb3JtaWtDb250ZXh0KCkgYXMgY2hpbGQgb2YgYSA8Rm9ybWlrPiBjb21wb25lbnQuXCIpIDogaW52YXJpYW50KGZhbHNlKSA6IHZvaWQgMDtcbiAgcmV0dXJuIGZvcm1paztcbn1cblxuZnVuY3Rpb24gZm9ybWlrUmVkdWNlcihzdGF0ZSwgbXNnKSB7XG4gIHN3aXRjaCAobXNnLnR5cGUpIHtcbiAgICBjYXNlICdTRVRfVkFMVUVTJzpcbiAgICAgIHJldHVybiBfZXh0ZW5kcyh7fSwgc3RhdGUsIHtcbiAgICAgICAgdmFsdWVzOiBtc2cucGF5bG9hZFxuICAgICAgfSk7XG5cbiAgICBjYXNlICdTRVRfVE9VQ0hFRCc6XG4gICAgICByZXR1cm4gX2V4dGVuZHMoe30sIHN0YXRlLCB7XG4gICAgICAgIHRvdWNoZWQ6IG1zZy5wYXlsb2FkXG4gICAgICB9KTtcblxuICAgIGNhc2UgJ1NFVF9FUlJPUlMnOlxuICAgICAgaWYgKGlzRXF1YWwoc3RhdGUuZXJyb3JzLCBtc2cucGF5bG9hZCkpIHtcbiAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gX2V4dGVuZHMoe30sIHN0YXRlLCB7XG4gICAgICAgIGVycm9yczogbXNnLnBheWxvYWRcbiAgICAgIH0pO1xuXG4gICAgY2FzZSAnU0VUX1NUQVRVUyc6XG4gICAgICByZXR1cm4gX2V4dGVuZHMoe30sIHN0YXRlLCB7XG4gICAgICAgIHN0YXR1czogbXNnLnBheWxvYWRcbiAgICAgIH0pO1xuXG4gICAgY2FzZSAnU0VUX0lTU1VCTUlUVElORyc6XG4gICAgICByZXR1cm4gX2V4dGVuZHMoe30sIHN0YXRlLCB7XG4gICAgICAgIGlzU3VibWl0dGluZzogbXNnLnBheWxvYWRcbiAgICAgIH0pO1xuXG4gICAgY2FzZSAnU0VUX0lTVkFMSURBVElORyc6XG4gICAgICByZXR1cm4gX2V4dGVuZHMoe30sIHN0YXRlLCB7XG4gICAgICAgIGlzVmFsaWRhdGluZzogbXNnLnBheWxvYWRcbiAgICAgIH0pO1xuXG4gICAgY2FzZSAnU0VUX0ZJRUxEX1ZBTFVFJzpcbiAgICAgIHJldHVybiBfZXh0ZW5kcyh7fSwgc3RhdGUsIHtcbiAgICAgICAgdmFsdWVzOiBzZXRJbihzdGF0ZS52YWx1ZXMsIG1zZy5wYXlsb2FkLmZpZWxkLCBtc2cucGF5bG9hZC52YWx1ZSlcbiAgICAgIH0pO1xuXG4gICAgY2FzZSAnU0VUX0ZJRUxEX1RPVUNIRUQnOlxuICAgICAgcmV0dXJuIF9leHRlbmRzKHt9LCBzdGF0ZSwge1xuICAgICAgICB0b3VjaGVkOiBzZXRJbihzdGF0ZS50b3VjaGVkLCBtc2cucGF5bG9hZC5maWVsZCwgbXNnLnBheWxvYWQudmFsdWUpXG4gICAgICB9KTtcblxuICAgIGNhc2UgJ1NFVF9GSUVMRF9FUlJPUic6XG4gICAgICByZXR1cm4gX2V4dGVuZHMoe30sIHN0YXRlLCB7XG4gICAgICAgIGVycm9yczogc2V0SW4oc3RhdGUuZXJyb3JzLCBtc2cucGF5bG9hZC5maWVsZCwgbXNnLnBheWxvYWQudmFsdWUpXG4gICAgICB9KTtcblxuICAgIGNhc2UgJ1JFU0VUX0ZPUk0nOlxuICAgICAgcmV0dXJuIF9leHRlbmRzKHt9LCBzdGF0ZSwgbXNnLnBheWxvYWQpO1xuXG4gICAgY2FzZSAnU0VUX0ZPUk1JS19TVEFURSc6XG4gICAgICByZXR1cm4gbXNnLnBheWxvYWQoc3RhdGUpO1xuXG4gICAgY2FzZSAnU1VCTUlUX0FUVEVNUFQnOlxuICAgICAgcmV0dXJuIF9leHRlbmRzKHt9LCBzdGF0ZSwge1xuICAgICAgICB0b3VjaGVkOiBzZXROZXN0ZWRPYmplY3RWYWx1ZXMoc3RhdGUudmFsdWVzLCB0cnVlKSxcbiAgICAgICAgaXNTdWJtaXR0aW5nOiB0cnVlLFxuICAgICAgICBzdWJtaXRDb3VudDogc3RhdGUuc3VibWl0Q291bnQgKyAxXG4gICAgICB9KTtcblxuICAgIGNhc2UgJ1NVQk1JVF9GQUlMVVJFJzpcbiAgICAgIHJldHVybiBfZXh0ZW5kcyh7fSwgc3RhdGUsIHtcbiAgICAgICAgaXNTdWJtaXR0aW5nOiBmYWxzZVxuICAgICAgfSk7XG5cbiAgICBjYXNlICdTVUJNSVRfU1VDQ0VTUyc6XG4gICAgICByZXR1cm4gX2V4dGVuZHMoe30sIHN0YXRlLCB7XG4gICAgICAgIGlzU3VibWl0dGluZzogZmFsc2VcbiAgICAgIH0pO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBzdGF0ZTtcbiAgfVxufSAvLyBJbml0aWFsIGVtcHR5IHN0YXRlcyAvLyBvYmplY3RzXG5cblxudmFyIGVtcHR5RXJyb3JzID0ge307XG52YXIgZW1wdHlUb3VjaGVkID0ge307XG5mdW5jdGlvbiB1c2VGb3JtaWsoX3JlZikge1xuICB2YXIgX3JlZiR2YWxpZGF0ZU9uQ2hhbmdlID0gX3JlZi52YWxpZGF0ZU9uQ2hhbmdlLFxuICAgICAgdmFsaWRhdGVPbkNoYW5nZSA9IF9yZWYkdmFsaWRhdGVPbkNoYW5nZSA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9yZWYkdmFsaWRhdGVPbkNoYW5nZSxcbiAgICAgIF9yZWYkdmFsaWRhdGVPbkJsdXIgPSBfcmVmLnZhbGlkYXRlT25CbHVyLFxuICAgICAgdmFsaWRhdGVPbkJsdXIgPSBfcmVmJHZhbGlkYXRlT25CbHVyID09PSB2b2lkIDAgPyB0cnVlIDogX3JlZiR2YWxpZGF0ZU9uQmx1cixcbiAgICAgIF9yZWYkdmFsaWRhdGVPbk1vdW50ID0gX3JlZi52YWxpZGF0ZU9uTW91bnQsXG4gICAgICB2YWxpZGF0ZU9uTW91bnQgPSBfcmVmJHZhbGlkYXRlT25Nb3VudCA9PT0gdm9pZCAwID8gZmFsc2UgOiBfcmVmJHZhbGlkYXRlT25Nb3VudCxcbiAgICAgIGlzSW5pdGlhbFZhbGlkID0gX3JlZi5pc0luaXRpYWxWYWxpZCxcbiAgICAgIF9yZWYkZW5hYmxlUmVpbml0aWFsaSA9IF9yZWYuZW5hYmxlUmVpbml0aWFsaXplLFxuICAgICAgZW5hYmxlUmVpbml0aWFsaXplID0gX3JlZiRlbmFibGVSZWluaXRpYWxpID09PSB2b2lkIDAgPyBmYWxzZSA6IF9yZWYkZW5hYmxlUmVpbml0aWFsaSxcbiAgICAgIG9uU3VibWl0ID0gX3JlZi5vblN1Ym1pdCxcbiAgICAgIHJlc3QgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShfcmVmLCBbXCJ2YWxpZGF0ZU9uQ2hhbmdlXCIsIFwidmFsaWRhdGVPbkJsdXJcIiwgXCJ2YWxpZGF0ZU9uTW91bnRcIiwgXCJpc0luaXRpYWxWYWxpZFwiLCBcImVuYWJsZVJlaW5pdGlhbGl6ZVwiLCBcIm9uU3VibWl0XCJdKTtcblxuICB2YXIgcHJvcHMgPSBfZXh0ZW5kcyh7XG4gICAgdmFsaWRhdGVPbkNoYW5nZTogdmFsaWRhdGVPbkNoYW5nZSxcbiAgICB2YWxpZGF0ZU9uQmx1cjogdmFsaWRhdGVPbkJsdXIsXG4gICAgdmFsaWRhdGVPbk1vdW50OiB2YWxpZGF0ZU9uTW91bnQsXG4gICAgb25TdWJtaXQ6IG9uU3VibWl0XG4gIH0sIHJlc3QpO1xuXG4gIHZhciBpbml0aWFsVmFsdWVzID0gdXNlUmVmKHByb3BzLmluaXRpYWxWYWx1ZXMpO1xuICB2YXIgaW5pdGlhbEVycm9ycyA9IHVzZVJlZihwcm9wcy5pbml0aWFsRXJyb3JzIHx8IGVtcHR5RXJyb3JzKTtcbiAgdmFyIGluaXRpYWxUb3VjaGVkID0gdXNlUmVmKHByb3BzLmluaXRpYWxUb3VjaGVkIHx8IGVtcHR5VG91Y2hlZCk7XG4gIHZhciBpbml0aWFsU3RhdHVzID0gdXNlUmVmKHByb3BzLmluaXRpYWxTdGF0dXMpO1xuICB2YXIgaXNNb3VudGVkID0gdXNlUmVmKGZhbHNlKTtcbiAgdmFyIGZpZWxkUmVnaXN0cnkgPSB1c2VSZWYoe30pO1xuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgISh0eXBlb2YgaXNJbml0aWFsVmFsaWQgPT09ICd1bmRlZmluZWQnKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IGludmFyaWFudChmYWxzZSwgJ2lzSW5pdGlhbFZhbGlkIGhhcyBiZWVuIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBmdXR1cmUgdmVyc2lvbnMgb2YgRm9ybWlrLiBQbGVhc2UgdXNlIGluaXRpYWxFcnJvcnMgb3IgdmFsaWRhdGVPbk1vdW50IGluc3RlYWQuJykgOiBpbnZhcmlhbnQoZmFsc2UpIDogdm9pZCAwOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICB9LCBbXSk7XG4gIH1cblxuICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIGlzTW91bnRlZC5jdXJyZW50ID0gdHJ1ZTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgaXNNb3VudGVkLmN1cnJlbnQgPSBmYWxzZTtcbiAgICB9O1xuICB9LCBbXSk7XG5cbiAgdmFyIF9SZWFjdCR1c2VSZWR1Y2VyID0gdXNlUmVkdWNlcihmb3JtaWtSZWR1Y2VyLCB7XG4gICAgdmFsdWVzOiBwcm9wcy5pbml0aWFsVmFsdWVzLFxuICAgIGVycm9yczogcHJvcHMuaW5pdGlhbEVycm9ycyB8fCBlbXB0eUVycm9ycyxcbiAgICB0b3VjaGVkOiBwcm9wcy5pbml0aWFsVG91Y2hlZCB8fCBlbXB0eVRvdWNoZWQsXG4gICAgc3RhdHVzOiBwcm9wcy5pbml0aWFsU3RhdHVzLFxuICAgIGlzU3VibWl0dGluZzogZmFsc2UsXG4gICAgaXNWYWxpZGF0aW5nOiBmYWxzZSxcbiAgICBzdWJtaXRDb3VudDogMFxuICB9KSxcbiAgICAgIHN0YXRlID0gX1JlYWN0JHVzZVJlZHVjZXJbMF0sXG4gICAgICBkaXNwYXRjaCA9IF9SZWFjdCR1c2VSZWR1Y2VyWzFdO1xuXG4gIHZhciBydW5WYWxpZGF0ZUhhbmRsZXIgPSB1c2VDYWxsYmFjayhmdW5jdGlvbiAodmFsdWVzLCBmaWVsZCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICB2YXIgbWF5YmVQcm9taXNlZEVycm9ycyA9IHByb3BzLnZhbGlkYXRlKHZhbHVlcywgZmllbGQpO1xuXG4gICAgICBpZiAobWF5YmVQcm9taXNlZEVycm9ycyA9PSBudWxsKSB7XG4gICAgICAgIC8vIHVzZSBsb29zZSBudWxsIGNoZWNrIGhlcmUgb24gcHVycG9zZVxuICAgICAgICByZXNvbHZlKGVtcHR5RXJyb3JzKTtcbiAgICAgIH0gZWxzZSBpZiAoaXNQcm9taXNlKG1heWJlUHJvbWlzZWRFcnJvcnMpKSB7XG4gICAgICAgIG1heWJlUHJvbWlzZWRFcnJvcnMudGhlbihmdW5jdGlvbiAoZXJyb3JzKSB7XG4gICAgICAgICAgcmVzb2x2ZShlcnJvcnMgfHwgZW1wdHlFcnJvcnMpO1xuICAgICAgICB9LCBmdW5jdGlvbiAoYWN0dWFsRXhjZXB0aW9uKSB7XG4gICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcIldhcm5pbmc6IEFuIHVuaGFuZGxlZCBlcnJvciB3YXMgY2F1Z2h0IGR1cmluZyB2YWxpZGF0aW9uIGluIDxGb3JtaWsgdmFsaWRhdGUgLz5cIiwgYWN0dWFsRXhjZXB0aW9uKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZWplY3QoYWN0dWFsRXhjZXB0aW9uKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNvbHZlKG1heWJlUHJvbWlzZWRFcnJvcnMpO1xuICAgICAgfVxuICAgIH0pO1xuICB9LCBbcHJvcHMudmFsaWRhdGVdKTtcbiAgLyoqXHJcbiAgICogUnVuIHZhbGlkYXRpb24gYWdhaW5zdCBhIFl1cCBzY2hlbWEgYW5kIG9wdGlvbmFsbHkgcnVuIGEgZnVuY3Rpb24gaWYgc3VjY2Vzc2Z1bFxyXG4gICAqL1xuXG4gIHZhciBydW5WYWxpZGF0aW9uU2NoZW1hID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKHZhbHVlcywgZmllbGQpIHtcbiAgICB2YXIgdmFsaWRhdGlvblNjaGVtYSA9IHByb3BzLnZhbGlkYXRpb25TY2hlbWE7XG4gICAgdmFyIHNjaGVtYSA9IGlzRnVuY3Rpb24odmFsaWRhdGlvblNjaGVtYSkgPyB2YWxpZGF0aW9uU2NoZW1hKGZpZWxkKSA6IHZhbGlkYXRpb25TY2hlbWE7XG4gICAgdmFyIHByb21pc2UgPSBmaWVsZCAmJiBzY2hlbWEudmFsaWRhdGVBdCA/IHNjaGVtYS52YWxpZGF0ZUF0KGZpZWxkLCB2YWx1ZXMpIDogdmFsaWRhdGVZdXBTY2hlbWEodmFsdWVzLCBzY2hlbWEpO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICBwcm9taXNlLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICByZXNvbHZlKGVtcHR5RXJyb3JzKTtcbiAgICAgIH0sIGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgLy8gWXVwIHdpbGwgdGhyb3cgYSB2YWxpZGF0aW9uIGVycm9yIGlmIHZhbGlkYXRpb24gZmFpbHMuIFdlIGNhdGNoIHRob3NlIGFuZFxuICAgICAgICAvLyByZXNvbHZlIHRoZW0gaW50byBGb3JtaWsgZXJyb3JzLiBXZSBjYW4gc25pZmYgaWYgc29tZXRoaW5nIGlzIGEgWXVwIGVycm9yXG4gICAgICAgIC8vIGJ5IGNoZWNraW5nIGVycm9yLm5hbWUuXG4gICAgICAgIC8vIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2pxdWVuc2UveXVwI3ZhbGlkYXRpb25lcnJvcmVycm9ycy1zdHJpbmctLWFycmF5c3RyaW5nLXZhbHVlLWFueS1wYXRoLXN0cmluZ1xuICAgICAgICBpZiAoZXJyLm5hbWUgPT09ICdWYWxpZGF0aW9uRXJyb3InKSB7XG4gICAgICAgICAgcmVzb2x2ZSh5dXBUb0Zvcm1FcnJvcnMoZXJyKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gV2UgdGhyb3cgYW55IG90aGVyIGVycm9yc1xuICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXCJXYXJuaW5nOiBBbiB1bmhhbmRsZWQgZXJyb3Igd2FzIGNhdWdodCBkdXJpbmcgdmFsaWRhdGlvbiBpbiA8Rm9ybWlrIHZhbGlkYXRpb25TY2hlbWEgLz5cIiwgZXJyKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH0sIFtwcm9wcy52YWxpZGF0aW9uU2NoZW1hXSk7XG4gIHZhciBydW5TaW5nbGVGaWVsZExldmVsVmFsaWRhdGlvbiA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChmaWVsZCwgdmFsdWUpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUpIHtcbiAgICAgIHJldHVybiByZXNvbHZlKGZpZWxkUmVnaXN0cnkuY3VycmVudFtmaWVsZF0udmFsaWRhdGUodmFsdWUpKTtcbiAgICB9KTtcbiAgfSwgW10pO1xuICB2YXIgcnVuRmllbGRMZXZlbFZhbGlkYXRpb25zID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKHZhbHVlcykge1xuICAgIHZhciBmaWVsZEtleXNXaXRoVmFsaWRhdGlvbiA9IE9iamVjdC5rZXlzKGZpZWxkUmVnaXN0cnkuY3VycmVudCkuZmlsdGVyKGZ1bmN0aW9uIChmKSB7XG4gICAgICByZXR1cm4gaXNGdW5jdGlvbihmaWVsZFJlZ2lzdHJ5LmN1cnJlbnRbZl0udmFsaWRhdGUpO1xuICAgIH0pOyAvLyBDb25zdHJ1Y3QgYW4gYXJyYXkgd2l0aCBhbGwgb2YgdGhlIGZpZWxkIHZhbGlkYXRpb24gZnVuY3Rpb25zXG5cbiAgICB2YXIgZmllbGRWYWxpZGF0aW9ucyA9IGZpZWxkS2V5c1dpdGhWYWxpZGF0aW9uLmxlbmd0aCA+IDAgPyBmaWVsZEtleXNXaXRoVmFsaWRhdGlvbi5tYXAoZnVuY3Rpb24gKGYpIHtcbiAgICAgIHJldHVybiBydW5TaW5nbGVGaWVsZExldmVsVmFsaWRhdGlvbihmLCBnZXRJbih2YWx1ZXMsIGYpKTtcbiAgICB9KSA6IFtQcm9taXNlLnJlc29sdmUoJ0RPX05PVF9ERUxFVEVfWU9VX1dJTExfQkVfRklSRUQnKV07IC8vIHVzZSBzcGVjaWFsIGNhc2UgOylcblxuICAgIHJldHVybiBQcm9taXNlLmFsbChmaWVsZFZhbGlkYXRpb25zKS50aGVuKGZ1bmN0aW9uIChmaWVsZEVycm9yc0xpc3QpIHtcbiAgICAgIHJldHVybiBmaWVsZEVycm9yc0xpc3QucmVkdWNlKGZ1bmN0aW9uIChwcmV2LCBjdXJyLCBpbmRleCkge1xuICAgICAgICBpZiAoY3VyciA9PT0gJ0RPX05PVF9ERUxFVEVfWU9VX1dJTExfQkVfRklSRUQnKSB7XG4gICAgICAgICAgcmV0dXJuIHByZXY7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY3Vycikge1xuICAgICAgICAgIHByZXYgPSBzZXRJbihwcmV2LCBmaWVsZEtleXNXaXRoVmFsaWRhdGlvbltpbmRleF0sIGN1cnIpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHByZXY7XG4gICAgICB9LCB7fSk7XG4gICAgfSk7XG4gIH0sIFtydW5TaW5nbGVGaWVsZExldmVsVmFsaWRhdGlvbl0pOyAvLyBSdW4gYWxsIHZhbGlkYXRpb25zIGFuZCByZXR1cm4gdGhlIHJlc3VsdFxuXG4gIHZhciBydW5BbGxWYWxpZGF0aW9ucyA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uICh2YWx1ZXMpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5hbGwoW3J1bkZpZWxkTGV2ZWxWYWxpZGF0aW9ucyh2YWx1ZXMpLCBwcm9wcy52YWxpZGF0aW9uU2NoZW1hID8gcnVuVmFsaWRhdGlvblNjaGVtYSh2YWx1ZXMpIDoge30sIHByb3BzLnZhbGlkYXRlID8gcnVuVmFsaWRhdGVIYW5kbGVyKHZhbHVlcykgOiB7fV0pLnRoZW4oZnVuY3Rpb24gKF9yZWYyKSB7XG4gICAgICB2YXIgZmllbGRFcnJvcnMgPSBfcmVmMlswXSxcbiAgICAgICAgICBzY2hlbWFFcnJvcnMgPSBfcmVmMlsxXSxcbiAgICAgICAgICB2YWxpZGF0ZUVycm9ycyA9IF9yZWYyWzJdO1xuICAgICAgdmFyIGNvbWJpbmVkRXJyb3JzID0gZGVlcG1lcmdlLmFsbChbZmllbGRFcnJvcnMsIHNjaGVtYUVycm9ycywgdmFsaWRhdGVFcnJvcnNdLCB7XG4gICAgICAgIGFycmF5TWVyZ2U6IGFycmF5TWVyZ2VcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGNvbWJpbmVkRXJyb3JzO1xuICAgIH0pO1xuICB9LCBbcHJvcHMudmFsaWRhdGUsIHByb3BzLnZhbGlkYXRpb25TY2hlbWEsIHJ1bkZpZWxkTGV2ZWxWYWxpZGF0aW9ucywgcnVuVmFsaWRhdGVIYW5kbGVyLCBydW5WYWxpZGF0aW9uU2NoZW1hXSk7IC8vIFJ1biBhbGwgdmFsaWRhdGlvbnMgbWV0aG9kcyBhbmQgdXBkYXRlIHN0YXRlIGFjY29yZGluZ2x5XG5cbiAgdmFyIHZhbGlkYXRlRm9ybVdpdGhIaWdoUHJpb3JpdHkgPSB1c2VFdmVudENhbGxiYWNrKGZ1bmN0aW9uICh2YWx1ZXMpIHtcbiAgICBpZiAodmFsdWVzID09PSB2b2lkIDApIHtcbiAgICAgIHZhbHVlcyA9IHN0YXRlLnZhbHVlcztcbiAgICB9XG5cbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiAnU0VUX0lTVkFMSURBVElORycsXG4gICAgICBwYXlsb2FkOiB0cnVlXG4gICAgfSk7XG4gICAgcmV0dXJuIHJ1bkFsbFZhbGlkYXRpb25zKHZhbHVlcykudGhlbihmdW5jdGlvbiAoY29tYmluZWRFcnJvcnMpIHtcbiAgICAgIGlmICghIWlzTW91bnRlZC5jdXJyZW50KSB7XG4gICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICB0eXBlOiAnU0VUX0lTVkFMSURBVElORycsXG4gICAgICAgICAgcGF5bG9hZDogZmFsc2VcbiAgICAgICAgfSk7XG4gICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICB0eXBlOiAnU0VUX0VSUk9SUycsXG4gICAgICAgICAgcGF5bG9hZDogY29tYmluZWRFcnJvcnNcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjb21iaW5lZEVycm9ycztcbiAgICB9KTtcbiAgfSk7XG4gIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHZhbGlkYXRlT25Nb3VudCAmJiBpc01vdW50ZWQuY3VycmVudCA9PT0gdHJ1ZSAmJiBpc0VxdWFsKGluaXRpYWxWYWx1ZXMuY3VycmVudCwgcHJvcHMuaW5pdGlhbFZhbHVlcykpIHtcbiAgICAgIHZhbGlkYXRlRm9ybVdpdGhIaWdoUHJpb3JpdHkoaW5pdGlhbFZhbHVlcy5jdXJyZW50KTtcbiAgICB9XG4gIH0sIFt2YWxpZGF0ZU9uTW91bnQsIHZhbGlkYXRlRm9ybVdpdGhIaWdoUHJpb3JpdHldKTtcbiAgdmFyIHJlc2V0Rm9ybSA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChuZXh0U3RhdGUpIHtcbiAgICB2YXIgdmFsdWVzID0gbmV4dFN0YXRlICYmIG5leHRTdGF0ZS52YWx1ZXMgPyBuZXh0U3RhdGUudmFsdWVzIDogaW5pdGlhbFZhbHVlcy5jdXJyZW50O1xuICAgIHZhciBlcnJvcnMgPSBuZXh0U3RhdGUgJiYgbmV4dFN0YXRlLmVycm9ycyA/IG5leHRTdGF0ZS5lcnJvcnMgOiBpbml0aWFsRXJyb3JzLmN1cnJlbnQgPyBpbml0aWFsRXJyb3JzLmN1cnJlbnQgOiBwcm9wcy5pbml0aWFsRXJyb3JzIHx8IHt9O1xuICAgIHZhciB0b3VjaGVkID0gbmV4dFN0YXRlICYmIG5leHRTdGF0ZS50b3VjaGVkID8gbmV4dFN0YXRlLnRvdWNoZWQgOiBpbml0aWFsVG91Y2hlZC5jdXJyZW50ID8gaW5pdGlhbFRvdWNoZWQuY3VycmVudCA6IHByb3BzLmluaXRpYWxUb3VjaGVkIHx8IHt9O1xuICAgIHZhciBzdGF0dXMgPSBuZXh0U3RhdGUgJiYgbmV4dFN0YXRlLnN0YXR1cyA/IG5leHRTdGF0ZS5zdGF0dXMgOiBpbml0aWFsU3RhdHVzLmN1cnJlbnQgPyBpbml0aWFsU3RhdHVzLmN1cnJlbnQgOiBwcm9wcy5pbml0aWFsU3RhdHVzO1xuICAgIGluaXRpYWxWYWx1ZXMuY3VycmVudCA9IHZhbHVlcztcbiAgICBpbml0aWFsRXJyb3JzLmN1cnJlbnQgPSBlcnJvcnM7XG4gICAgaW5pdGlhbFRvdWNoZWQuY3VycmVudCA9IHRvdWNoZWQ7XG4gICAgaW5pdGlhbFN0YXR1cy5jdXJyZW50ID0gc3RhdHVzO1xuXG4gICAgdmFyIGRpc3BhdGNoRm4gPSBmdW5jdGlvbiBkaXNwYXRjaEZuKCkge1xuICAgICAgZGlzcGF0Y2goe1xuICAgICAgICB0eXBlOiAnUkVTRVRfRk9STScsXG4gICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICBpc1N1Ym1pdHRpbmc6ICEhbmV4dFN0YXRlICYmICEhbmV4dFN0YXRlLmlzU3VibWl0dGluZyxcbiAgICAgICAgICBlcnJvcnM6IGVycm9ycyxcbiAgICAgICAgICB0b3VjaGVkOiB0b3VjaGVkLFxuICAgICAgICAgIHN0YXR1czogc3RhdHVzLFxuICAgICAgICAgIHZhbHVlczogdmFsdWVzLFxuICAgICAgICAgIGlzVmFsaWRhdGluZzogISFuZXh0U3RhdGUgJiYgISFuZXh0U3RhdGUuaXNWYWxpZGF0aW5nLFxuICAgICAgICAgIHN1Ym1pdENvdW50OiAhIW5leHRTdGF0ZSAmJiAhIW5leHRTdGF0ZS5zdWJtaXRDb3VudCAmJiB0eXBlb2YgbmV4dFN0YXRlLnN1Ym1pdENvdW50ID09PSAnbnVtYmVyJyA/IG5leHRTdGF0ZS5zdWJtaXRDb3VudCA6IDBcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIGlmIChwcm9wcy5vblJlc2V0KSB7XG4gICAgICB2YXIgbWF5YmVQcm9taXNlZE9uUmVzZXQgPSBwcm9wcy5vblJlc2V0KHN0YXRlLnZhbHVlcywgaW1wZXJhdGl2ZU1ldGhvZHMpO1xuXG4gICAgICBpZiAoaXNQcm9taXNlKG1heWJlUHJvbWlzZWRPblJlc2V0KSkge1xuICAgICAgICBtYXliZVByb21pc2VkT25SZXNldC50aGVuKGRpc3BhdGNoRm4pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGlzcGF0Y2hGbigpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBkaXNwYXRjaEZuKCk7XG4gICAgfVxuICB9LCBbcHJvcHMuaW5pdGlhbEVycm9ycywgcHJvcHMuaW5pdGlhbFN0YXR1cywgcHJvcHMuaW5pdGlhbFRvdWNoZWRdKTtcbiAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoaXNNb3VudGVkLmN1cnJlbnQgPT09IHRydWUgJiYgIWlzRXF1YWwoaW5pdGlhbFZhbHVlcy5jdXJyZW50LCBwcm9wcy5pbml0aWFsVmFsdWVzKSkge1xuICAgICAgaWYgKGVuYWJsZVJlaW5pdGlhbGl6ZSkge1xuICAgICAgICBpbml0aWFsVmFsdWVzLmN1cnJlbnQgPSBwcm9wcy5pbml0aWFsVmFsdWVzO1xuICAgICAgICByZXNldEZvcm0oKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHZhbGlkYXRlT25Nb3VudCkge1xuICAgICAgICB2YWxpZGF0ZUZvcm1XaXRoSGlnaFByaW9yaXR5KGluaXRpYWxWYWx1ZXMuY3VycmVudCk7XG4gICAgICB9XG4gICAgfVxuICB9LCBbZW5hYmxlUmVpbml0aWFsaXplLCBwcm9wcy5pbml0aWFsVmFsdWVzLCByZXNldEZvcm0sIHZhbGlkYXRlT25Nb3VudCwgdmFsaWRhdGVGb3JtV2l0aEhpZ2hQcmlvcml0eV0pO1xuICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIGlmIChlbmFibGVSZWluaXRpYWxpemUgJiYgaXNNb3VudGVkLmN1cnJlbnQgPT09IHRydWUgJiYgIWlzRXF1YWwoaW5pdGlhbEVycm9ycy5jdXJyZW50LCBwcm9wcy5pbml0aWFsRXJyb3JzKSkge1xuICAgICAgaW5pdGlhbEVycm9ycy5jdXJyZW50ID0gcHJvcHMuaW5pdGlhbEVycm9ycyB8fCBlbXB0eUVycm9ycztcbiAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgdHlwZTogJ1NFVF9FUlJPUlMnLFxuICAgICAgICBwYXlsb2FkOiBwcm9wcy5pbml0aWFsRXJyb3JzIHx8IGVtcHR5RXJyb3JzXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFtlbmFibGVSZWluaXRpYWxpemUsIHByb3BzLmluaXRpYWxFcnJvcnNdKTtcbiAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoZW5hYmxlUmVpbml0aWFsaXplICYmIGlzTW91bnRlZC5jdXJyZW50ID09PSB0cnVlICYmICFpc0VxdWFsKGluaXRpYWxUb3VjaGVkLmN1cnJlbnQsIHByb3BzLmluaXRpYWxUb3VjaGVkKSkge1xuICAgICAgaW5pdGlhbFRvdWNoZWQuY3VycmVudCA9IHByb3BzLmluaXRpYWxUb3VjaGVkIHx8IGVtcHR5VG91Y2hlZDtcbiAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgdHlwZTogJ1NFVF9UT1VDSEVEJyxcbiAgICAgICAgcGF5bG9hZDogcHJvcHMuaW5pdGlhbFRvdWNoZWQgfHwgZW1wdHlUb3VjaGVkXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFtlbmFibGVSZWluaXRpYWxpemUsIHByb3BzLmluaXRpYWxUb3VjaGVkXSk7XG4gIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKGVuYWJsZVJlaW5pdGlhbGl6ZSAmJiBpc01vdW50ZWQuY3VycmVudCA9PT0gdHJ1ZSAmJiAhaXNFcXVhbChpbml0aWFsU3RhdHVzLmN1cnJlbnQsIHByb3BzLmluaXRpYWxTdGF0dXMpKSB7XG4gICAgICBpbml0aWFsU3RhdHVzLmN1cnJlbnQgPSBwcm9wcy5pbml0aWFsU3RhdHVzO1xuICAgICAgZGlzcGF0Y2goe1xuICAgICAgICB0eXBlOiAnU0VUX1NUQVRVUycsXG4gICAgICAgIHBheWxvYWQ6IHByb3BzLmluaXRpYWxTdGF0dXNcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwgW2VuYWJsZVJlaW5pdGlhbGl6ZSwgcHJvcHMuaW5pdGlhbFN0YXR1cywgcHJvcHMuaW5pdGlhbFRvdWNoZWRdKTtcbiAgdmFyIHZhbGlkYXRlRmllbGQgPSB1c2VFdmVudENhbGxiYWNrKGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgLy8gVGhpcyB3aWxsIGVmZmljaWVudGx5IHZhbGlkYXRlIGEgc2luZ2xlIGZpZWxkIGJ5IGF2b2lkaW5nIHN0YXRlXG4gICAgLy8gY2hhbmdlcyBpZiB0aGUgdmFsaWRhdGlvbiBmdW5jdGlvbiBpcyBzeW5jaHJvbm91cy4gSXQncyBkaWZmZXJlbnQgZnJvbVxuICAgIC8vIHdoYXQgaXMgY2FsbGVkIHdoZW4gdXNpbmcgdmFsaWRhdGVGb3JtLlxuICAgIGlmIChmaWVsZFJlZ2lzdHJ5LmN1cnJlbnRbbmFtZV0gJiYgaXNGdW5jdGlvbihmaWVsZFJlZ2lzdHJ5LmN1cnJlbnRbbmFtZV0udmFsaWRhdGUpKSB7XG4gICAgICB2YXIgdmFsdWUgPSBnZXRJbihzdGF0ZS52YWx1ZXMsIG5hbWUpO1xuICAgICAgdmFyIG1heWJlUHJvbWlzZSA9IGZpZWxkUmVnaXN0cnkuY3VycmVudFtuYW1lXS52YWxpZGF0ZSh2YWx1ZSk7XG5cbiAgICAgIGlmIChpc1Byb21pc2UobWF5YmVQcm9taXNlKSkge1xuICAgICAgICAvLyBPbmx5IGZsaXAgaXNWYWxpZGF0aW5nIGlmIHRoZSBmdW5jdGlvbiBpcyBhc3luYy5cbiAgICAgICAgZGlzcGF0Y2goe1xuICAgICAgICAgIHR5cGU6ICdTRVRfSVNWQUxJREFUSU5HJyxcbiAgICAgICAgICBwYXlsb2FkOiB0cnVlXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbWF5YmVQcm9taXNlLnRoZW4oZnVuY3Rpb24gKHgpIHtcbiAgICAgICAgICByZXR1cm4geDtcbiAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgICB0eXBlOiAnU0VUX0ZJRUxEX0VSUk9SJyxcbiAgICAgICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgICAgZmllbGQ6IG5hbWUsXG4gICAgICAgICAgICAgIHZhbHVlOiBlcnJvclxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICAgIHR5cGU6ICdTRVRfSVNWQUxJREFUSU5HJyxcbiAgICAgICAgICAgIHBheWxvYWQ6IGZhbHNlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGlzcGF0Y2goe1xuICAgICAgICAgIHR5cGU6ICdTRVRfRklFTERfRVJST1InLFxuICAgICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgIGZpZWxkOiBuYW1lLFxuICAgICAgICAgICAgdmFsdWU6IG1heWJlUHJvbWlzZVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobWF5YmVQcm9taXNlKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHByb3BzLnZhbGlkYXRpb25TY2hlbWEpIHtcbiAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgdHlwZTogJ1NFVF9JU1ZBTElEQVRJTkcnLFxuICAgICAgICBwYXlsb2FkOiB0cnVlXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBydW5WYWxpZGF0aW9uU2NoZW1hKHN0YXRlLnZhbHVlcywgbmFtZSkudGhlbihmdW5jdGlvbiAoeCkge1xuICAgICAgICByZXR1cm4geDtcbiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICB0eXBlOiAnU0VUX0ZJRUxEX0VSUk9SJyxcbiAgICAgICAgICBwYXlsb2FkOiB7XG4gICAgICAgICAgICBmaWVsZDogbmFtZSxcbiAgICAgICAgICAgIHZhbHVlOiBlcnJvcltuYW1lXVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICB0eXBlOiAnU0VUX0lTVkFMSURBVElORycsXG4gICAgICAgICAgcGF5bG9hZDogZmFsc2VcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH0pO1xuICB2YXIgcmVnaXN0ZXJGaWVsZCA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChuYW1lLCBfcmVmMykge1xuICAgIHZhciB2YWxpZGF0ZSA9IF9yZWYzLnZhbGlkYXRlO1xuICAgIGZpZWxkUmVnaXN0cnkuY3VycmVudFtuYW1lXSA9IHtcbiAgICAgIHZhbGlkYXRlOiB2YWxpZGF0ZVxuICAgIH07XG4gIH0sIFtdKTtcbiAgdmFyIHVucmVnaXN0ZXJGaWVsZCA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgZGVsZXRlIGZpZWxkUmVnaXN0cnkuY3VycmVudFtuYW1lXTtcbiAgfSwgW10pO1xuICB2YXIgc2V0VG91Y2hlZCA9IHVzZUV2ZW50Q2FsbGJhY2soZnVuY3Rpb24gKHRvdWNoZWQsIHNob3VsZFZhbGlkYXRlKSB7XG4gICAgZGlzcGF0Y2goe1xuICAgICAgdHlwZTogJ1NFVF9UT1VDSEVEJyxcbiAgICAgIHBheWxvYWQ6IHRvdWNoZWRcbiAgICB9KTtcbiAgICB2YXIgd2lsbFZhbGlkYXRlID0gc2hvdWxkVmFsaWRhdGUgPT09IHVuZGVmaW5lZCA/IHZhbGlkYXRlT25CbHVyIDogc2hvdWxkVmFsaWRhdGU7XG4gICAgcmV0dXJuIHdpbGxWYWxpZGF0ZSA/IHZhbGlkYXRlRm9ybVdpdGhIaWdoUHJpb3JpdHkoc3RhdGUudmFsdWVzKSA6IFByb21pc2UucmVzb2x2ZSgpO1xuICB9KTtcbiAgdmFyIHNldEVycm9ycyA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChlcnJvcnMpIHtcbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiAnU0VUX0VSUk9SUycsXG4gICAgICBwYXlsb2FkOiBlcnJvcnNcbiAgICB9KTtcbiAgfSwgW10pO1xuICB2YXIgc2V0VmFsdWVzID0gdXNlRXZlbnRDYWxsYmFjayhmdW5jdGlvbiAodmFsdWVzLCBzaG91bGRWYWxpZGF0ZSkge1xuICAgIHZhciByZXNvbHZlZFZhbHVlcyA9IGlzRnVuY3Rpb24odmFsdWVzKSA/IHZhbHVlcyhzdGF0ZS52YWx1ZXMpIDogdmFsdWVzO1xuICAgIGRpc3BhdGNoKHtcbiAgICAgIHR5cGU6ICdTRVRfVkFMVUVTJyxcbiAgICAgIHBheWxvYWQ6IHJlc29sdmVkVmFsdWVzXG4gICAgfSk7XG4gICAgdmFyIHdpbGxWYWxpZGF0ZSA9IHNob3VsZFZhbGlkYXRlID09PSB1bmRlZmluZWQgPyB2YWxpZGF0ZU9uQ2hhbmdlIDogc2hvdWxkVmFsaWRhdGU7XG4gICAgcmV0dXJuIHdpbGxWYWxpZGF0ZSA/IHZhbGlkYXRlRm9ybVdpdGhIaWdoUHJpb3JpdHkocmVzb2x2ZWRWYWx1ZXMpIDogUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH0pO1xuICB2YXIgc2V0RmllbGRFcnJvciA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChmaWVsZCwgdmFsdWUpIHtcbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiAnU0VUX0ZJRUxEX0VSUk9SJyxcbiAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgZmllbGQ6IGZpZWxkLFxuICAgICAgICB2YWx1ZTogdmFsdWVcbiAgICAgIH1cbiAgICB9KTtcbiAgfSwgW10pO1xuICB2YXIgc2V0RmllbGRWYWx1ZSA9IHVzZUV2ZW50Q2FsbGJhY2soZnVuY3Rpb24gKGZpZWxkLCB2YWx1ZSwgc2hvdWxkVmFsaWRhdGUpIHtcbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiAnU0VUX0ZJRUxEX1ZBTFVFJyxcbiAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgZmllbGQ6IGZpZWxkLFxuICAgICAgICB2YWx1ZTogdmFsdWVcbiAgICAgIH1cbiAgICB9KTtcbiAgICB2YXIgd2lsbFZhbGlkYXRlID0gc2hvdWxkVmFsaWRhdGUgPT09IHVuZGVmaW5lZCA/IHZhbGlkYXRlT25DaGFuZ2UgOiBzaG91bGRWYWxpZGF0ZTtcbiAgICByZXR1cm4gd2lsbFZhbGlkYXRlID8gdmFsaWRhdGVGb3JtV2l0aEhpZ2hQcmlvcml0eShzZXRJbihzdGF0ZS52YWx1ZXMsIGZpZWxkLCB2YWx1ZSkpIDogUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH0pO1xuICB2YXIgZXhlY3V0ZUNoYW5nZSA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChldmVudE9yVGV4dFZhbHVlLCBtYXliZVBhdGgpIHtcbiAgICAvLyBCeSBkZWZhdWx0LCBhc3N1bWUgdGhhdCB0aGUgZmlyc3QgYXJndW1lbnQgaXMgYSBzdHJpbmcuIFRoaXMgYWxsb3dzIHVzIHRvIHVzZVxuICAgIC8vIGhhbmRsZUNoYW5nZSB3aXRoIFJlYWN0IE5hdGl2ZSBhbmQgUmVhY3QgTmF0aXZlIFdlYidzIG9uQ2hhbmdlVGV4dCBwcm9wIHdoaWNoXG4gICAgLy8gcHJvdmlkZXMganVzdCB0aGUgdmFsdWUgb2YgdGhlIGlucHV0LlxuICAgIHZhciBmaWVsZCA9IG1heWJlUGF0aDtcbiAgICB2YXIgdmFsID0gZXZlbnRPclRleHRWYWx1ZTtcbiAgICB2YXIgcGFyc2VkOyAvLyBJZiB0aGUgZmlyc3QgYXJndW1lbnQgaXMgbm90IGEgc3RyaW5nIHRob3VnaCwgaXQgaGFzIHRvIGJlIGEgc3ludGhldGljIFJlYWN0IEV2ZW50IChvciBhIGZha2Ugb25lKSxcbiAgICAvLyBzbyB3ZSBoYW5kbGUgbGlrZSB3ZSB3b3VsZCBhIG5vcm1hbCBIVE1MIGNoYW5nZSBldmVudC5cblxuICAgIGlmICghaXNTdHJpbmcoZXZlbnRPclRleHRWYWx1ZSkpIHtcbiAgICAgIC8vIElmIHdlIGNhbiwgcGVyc2lzdCB0aGUgZXZlbnRcbiAgICAgIC8vIEBzZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL2V2ZW50cy5odG1sI2V2ZW50LXBvb2xpbmdcbiAgICAgIGlmIChldmVudE9yVGV4dFZhbHVlLnBlcnNpc3QpIHtcbiAgICAgICAgZXZlbnRPclRleHRWYWx1ZS5wZXJzaXN0KCk7XG4gICAgICB9XG5cbiAgICAgIHZhciB0YXJnZXQgPSBldmVudE9yVGV4dFZhbHVlLnRhcmdldCA/IGV2ZW50T3JUZXh0VmFsdWUudGFyZ2V0IDogZXZlbnRPclRleHRWYWx1ZS5jdXJyZW50VGFyZ2V0O1xuICAgICAgdmFyIHR5cGUgPSB0YXJnZXQudHlwZSxcbiAgICAgICAgICBuYW1lID0gdGFyZ2V0Lm5hbWUsXG4gICAgICAgICAgaWQgPSB0YXJnZXQuaWQsXG4gICAgICAgICAgdmFsdWUgPSB0YXJnZXQudmFsdWUsXG4gICAgICAgICAgY2hlY2tlZCA9IHRhcmdldC5jaGVja2VkLFxuICAgICAgICAgIG91dGVySFRNTCA9IHRhcmdldC5vdXRlckhUTUwsXG4gICAgICAgICAgb3B0aW9ucyA9IHRhcmdldC5vcHRpb25zLFxuICAgICAgICAgIG11bHRpcGxlID0gdGFyZ2V0Lm11bHRpcGxlO1xuICAgICAgZmllbGQgPSBtYXliZVBhdGggPyBtYXliZVBhdGggOiBuYW1lID8gbmFtZSA6IGlkO1xuXG4gICAgICBpZiAoIWZpZWxkICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgICB3YXJuQWJvdXRNaXNzaW5nSWRlbnRpZmllcih7XG4gICAgICAgICAgaHRtbENvbnRlbnQ6IG91dGVySFRNTCxcbiAgICAgICAgICBkb2N1bWVudGF0aW9uQW5jaG9yTGluazogJ2hhbmRsZWNoYW5nZS1lLXJlYWN0Y2hhbmdlZXZlbnRhbnktLXZvaWQnLFxuICAgICAgICAgIGhhbmRsZXJOYW1lOiAnaGFuZGxlQ2hhbmdlJ1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgdmFsID0gL251bWJlcnxyYW5nZS8udGVzdCh0eXBlKSA/IChwYXJzZWQgPSBwYXJzZUZsb2F0KHZhbHVlKSwgaXNOYU4ocGFyc2VkKSA/ICcnIDogcGFyc2VkKSA6IC9jaGVja2JveC8udGVzdCh0eXBlKSAvLyBjaGVja2JveGVzXG4gICAgICA/IGdldFZhbHVlRm9yQ2hlY2tib3goZ2V0SW4oc3RhdGUudmFsdWVzLCBmaWVsZCksIGNoZWNrZWQsIHZhbHVlKSA6IG9wdGlvbnMgJiYgbXVsdGlwbGUgLy8gPHNlbGVjdCBtdWx0aXBsZT5cbiAgICAgID8gZ2V0U2VsZWN0ZWRWYWx1ZXMob3B0aW9ucykgOiB2YWx1ZTtcbiAgICB9XG5cbiAgICBpZiAoZmllbGQpIHtcbiAgICAgIC8vIFNldCBmb3JtIGZpZWxkcyBieSBuYW1lXG4gICAgICBzZXRGaWVsZFZhbHVlKGZpZWxkLCB2YWwpO1xuICAgIH1cbiAgfSwgW3NldEZpZWxkVmFsdWUsIHN0YXRlLnZhbHVlc10pO1xuICB2YXIgaGFuZGxlQ2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjayhmdW5jdGlvbiAoZXZlbnRPclBhdGgpIHtcbiAgICBpZiAoaXNTdHJpbmcoZXZlbnRPclBhdGgpKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgIHJldHVybiBleGVjdXRlQ2hhbmdlKGV2ZW50LCBldmVudE9yUGF0aCk7XG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBleGVjdXRlQ2hhbmdlKGV2ZW50T3JQYXRoKTtcbiAgICB9XG4gIH0pO1xuICB2YXIgc2V0RmllbGRUb3VjaGVkID0gdXNlRXZlbnRDYWxsYmFjayhmdW5jdGlvbiAoZmllbGQsIHRvdWNoZWQsIHNob3VsZFZhbGlkYXRlKSB7XG4gICAgaWYgKHRvdWNoZWQgPT09IHZvaWQgMCkge1xuICAgICAgdG91Y2hlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgZGlzcGF0Y2goe1xuICAgICAgdHlwZTogJ1NFVF9GSUVMRF9UT1VDSEVEJyxcbiAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgZmllbGQ6IGZpZWxkLFxuICAgICAgICB2YWx1ZTogdG91Y2hlZFxuICAgICAgfVxuICAgIH0pO1xuICAgIHZhciB3aWxsVmFsaWRhdGUgPSBzaG91bGRWYWxpZGF0ZSA9PT0gdW5kZWZpbmVkID8gdmFsaWRhdGVPbkJsdXIgOiBzaG91bGRWYWxpZGF0ZTtcbiAgICByZXR1cm4gd2lsbFZhbGlkYXRlID8gdmFsaWRhdGVGb3JtV2l0aEhpZ2hQcmlvcml0eShzdGF0ZS52YWx1ZXMpIDogUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH0pO1xuICB2YXIgZXhlY3V0ZUJsdXIgPSB1c2VDYWxsYmFjayhmdW5jdGlvbiAoZSwgcGF0aCkge1xuICAgIGlmIChlLnBlcnNpc3QpIHtcbiAgICAgIGUucGVyc2lzdCgpO1xuICAgIH1cblxuICAgIHZhciBfZSR0YXJnZXQgPSBlLnRhcmdldCxcbiAgICAgICAgbmFtZSA9IF9lJHRhcmdldC5uYW1lLFxuICAgICAgICBpZCA9IF9lJHRhcmdldC5pZCxcbiAgICAgICAgb3V0ZXJIVE1MID0gX2UkdGFyZ2V0Lm91dGVySFRNTDtcbiAgICB2YXIgZmllbGQgPSBwYXRoID8gcGF0aCA6IG5hbWUgPyBuYW1lIDogaWQ7XG5cbiAgICBpZiAoIWZpZWxkICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgd2FybkFib3V0TWlzc2luZ0lkZW50aWZpZXIoe1xuICAgICAgICBodG1sQ29udGVudDogb3V0ZXJIVE1MLFxuICAgICAgICBkb2N1bWVudGF0aW9uQW5jaG9yTGluazogJ2hhbmRsZWJsdXItZS1hbnktLXZvaWQnLFxuICAgICAgICBoYW5kbGVyTmFtZTogJ2hhbmRsZUJsdXInXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBzZXRGaWVsZFRvdWNoZWQoZmllbGQsIHRydWUpO1xuICB9LCBbc2V0RmllbGRUb3VjaGVkXSk7XG4gIHZhciBoYW5kbGVCbHVyID0gdXNlRXZlbnRDYWxsYmFjayhmdW5jdGlvbiAoZXZlbnRPclN0cmluZykge1xuICAgIGlmIChpc1N0cmluZyhldmVudE9yU3RyaW5nKSkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICByZXR1cm4gZXhlY3V0ZUJsdXIoZXZlbnQsIGV2ZW50T3JTdHJpbmcpO1xuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgZXhlY3V0ZUJsdXIoZXZlbnRPclN0cmluZyk7XG4gICAgfVxuICB9KTtcbiAgdmFyIHNldEZvcm1pa1N0YXRlID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKHN0YXRlT3JDYikge1xuICAgIGlmIChpc0Z1bmN0aW9uKHN0YXRlT3JDYikpIHtcbiAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgdHlwZTogJ1NFVF9GT1JNSUtfU1RBVEUnLFxuICAgICAgICBwYXlsb2FkOiBzdGF0ZU9yQ2JcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBkaXNwYXRjaCh7XG4gICAgICAgIHR5cGU6ICdTRVRfRk9STUlLX1NUQVRFJyxcbiAgICAgICAgcGF5bG9hZDogZnVuY3Rpb24gcGF5bG9hZCgpIHtcbiAgICAgICAgICByZXR1cm4gc3RhdGVPckNiO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFtdKTtcbiAgdmFyIHNldFN0YXR1cyA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChzdGF0dXMpIHtcbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiAnU0VUX1NUQVRVUycsXG4gICAgICBwYXlsb2FkOiBzdGF0dXNcbiAgICB9KTtcbiAgfSwgW10pO1xuICB2YXIgc2V0U3VibWl0dGluZyA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChpc1N1Ym1pdHRpbmcpIHtcbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiAnU0VUX0lTU1VCTUlUVElORycsXG4gICAgICBwYXlsb2FkOiBpc1N1Ym1pdHRpbmdcbiAgICB9KTtcbiAgfSwgW10pO1xuICB2YXIgc3VibWl0Rm9ybSA9IHVzZUV2ZW50Q2FsbGJhY2soZnVuY3Rpb24gKCkge1xuICAgIGRpc3BhdGNoKHtcbiAgICAgIHR5cGU6ICdTVUJNSVRfQVRURU1QVCdcbiAgICB9KTtcbiAgICByZXR1cm4gdmFsaWRhdGVGb3JtV2l0aEhpZ2hQcmlvcml0eSgpLnRoZW4oZnVuY3Rpb24gKGNvbWJpbmVkRXJyb3JzKSB7XG4gICAgICAvLyBJbiBjYXNlIGFuIGVycm9yIHdhcyB0aHJvd24gYW5kIHBhc3NlZCB0byB0aGUgcmVzb2x2ZWQgUHJvbWlzZSxcbiAgICAgIC8vIGBjb21iaW5lZEVycm9yc2AgY2FuIGJlIGFuIGluc3RhbmNlIG9mIGFuIEVycm9yLiBXZSBuZWVkIHRvIGNoZWNrXG4gICAgICAvLyB0aGF0IGFuZCBhYm9ydCB0aGUgc3VibWl0LlxuICAgICAgLy8gSWYgd2UgZG9uJ3QgZG8gdGhhdCwgY2FsbGluZyBgT2JqZWN0LmtleXMobmV3IEVycm9yKCkpYCB5aWVsZHMgYW5cbiAgICAgIC8vIGVtcHR5IGFycmF5LCB3aGljaCBjYXVzZXMgdGhlIHZhbGlkYXRpb24gdG8gcGFzcyBhbmQgdGhlIGZvcm1cbiAgICAgIC8vIHRvIGJlIHN1Ym1pdHRlZC5cbiAgICAgIHZhciBpc0luc3RhbmNlT2ZFcnJvciA9IGNvbWJpbmVkRXJyb3JzIGluc3RhbmNlb2YgRXJyb3I7XG4gICAgICB2YXIgaXNBY3R1YWxseVZhbGlkID0gIWlzSW5zdGFuY2VPZkVycm9yICYmIE9iamVjdC5rZXlzKGNvbWJpbmVkRXJyb3JzKS5sZW5ndGggPT09IDA7XG5cbiAgICAgIGlmIChpc0FjdHVhbGx5VmFsaWQpIHtcbiAgICAgICAgLy8gUHJvY2VlZCB3aXRoIHN1Ym1pdC4uLlxuICAgICAgICAvL1xuICAgICAgICAvLyBUbyByZXNwZWN0IHN5bmMgc3VibWl0IGZucywgd2UgY2FuJ3Qgc2ltcGx5IHdyYXAgZXhlY3V0ZVN1Ym1pdCBpbiBhIHByb21pc2UgYW5kXG4gICAgICAgIC8vIF9hbHdheXNfIGRpc3BhdGNoIFNVQk1JVF9TVUNDRVNTIGJlY2F1c2UgaXNTdWJtaXR0aW5nIHdvdWxkIHRoZW4gYWx3YXlzIGJlIGZhbHNlLlxuICAgICAgICAvLyBUaGlzIHdvdWxkIGJlIGZpbmUgaW4gc2ltcGxlIGNhc2VzLCBidXQgbWFrZSBpdCBpbXBvc3NpYmxlIHRvIGRpc2FibGUgc3VibWl0XG4gICAgICAgIC8vIGJ1dHRvbnMgd2hlcmUgcGVvcGxlIHVzZSBjYWxsYmFja3Mgb3IgcHJvbWlzZXMgYXMgc2lkZSBlZmZlY3RzICh3aGljaCBpcyBiYXNpY2FsbHlcbiAgICAgICAgLy8gYWxsIG9mIHYxIEZvcm1payBjb2RlKS4gSW5zdGVhZCwgcmVjYWxsIHRoYXQgd2UgYXJlIGluc2lkZSBvZiBhIHByb21pc2UgY2hhaW4gYWxyZWFkeSxcbiAgICAgICAgLy8gIHNvIHdlIGNhbiB0cnkvY2F0Y2ggZXhlY3V0ZVN1Ym1pdCgpLCBpZiBpdCByZXR1cm5zIHVuZGVmaW5lZCwgdGhlbiBqdXN0IGJhaWwuXG4gICAgICAgIC8vIElmIHRoZXJlIGFyZSBlcnJvcnMsIHRocm93IGVtLiBPdGhlcndpc2UsIHdyYXAgZXhlY3V0ZVN1Ym1pdCBpbiBhIHByb21pc2UgYW5kIGhhbmRsZVxuICAgICAgICAvLyBjbGVhbnVwIG9mIGlzU3VibWl0dGluZyBvbiBiZWhhbGYgb2YgdGhlIGNvbnN1bWVyLlxuICAgICAgICB2YXIgcHJvbWlzZU9yVW5kZWZpbmVkO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcHJvbWlzZU9yVW5kZWZpbmVkID0gZXhlY3V0ZVN1Ym1pdCgpOyAvLyBCYWlsIGlmIGl0J3Mgc3luYywgY29uc3VtZXIgaXMgcmVzcG9uc2libGUgZm9yIGNsZWFuaW5nIHVwXG4gICAgICAgICAgLy8gdmlhIHNldFN1Ym1pdHRpbmcoZmFsc2UpXG5cbiAgICAgICAgICBpZiAocHJvbWlzZU9yVW5kZWZpbmVkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHByb21pc2VPclVuZGVmaW5lZCkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7XG4gICAgICAgICAgaWYgKCEhaXNNb3VudGVkLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICAgICAgdHlwZTogJ1NVQk1JVF9TVUNDRVNTJ1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSlbXCJjYXRjaFwiXShmdW5jdGlvbiAoX2Vycm9ycykge1xuICAgICAgICAgIGlmICghIWlzTW91bnRlZC5jdXJyZW50KSB7XG4gICAgICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgICAgIHR5cGU6ICdTVUJNSVRfRkFJTFVSRSdcbiAgICAgICAgICAgIH0pOyAvLyBUaGlzIGlzIGEgbGVnaXQgZXJyb3IgcmVqZWN0ZWQgYnkgdGhlIG9uU3VibWl0IGZuXG4gICAgICAgICAgICAvLyBzbyB3ZSBkb24ndCB3YW50IHRvIGJyZWFrIHRoZSBwcm9taXNlIGNoYWluXG5cbiAgICAgICAgICAgIHRocm93IF9lcnJvcnM7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAoISFpc01vdW50ZWQuY3VycmVudCkge1xuICAgICAgICAvLyBeXl4gTWFrZSBzdXJlIEZvcm1payBpcyBzdGlsbCBtb3VudGVkIGJlZm9yZSB1cGRhdGluZyBzdGF0ZVxuICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgdHlwZTogJ1NVQk1JVF9GQUlMVVJFJ1xuICAgICAgICB9KTsgLy8gdGhyb3cgY29tYmluZWRFcnJvcnM7XG5cbiAgICAgICAgaWYgKGlzSW5zdGFuY2VPZkVycm9yKSB7XG4gICAgICAgICAgdGhyb3cgY29tYmluZWRFcnJvcnM7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuO1xuICAgIH0pO1xuICB9KTtcbiAgdmFyIGhhbmRsZVN1Ym1pdCA9IHVzZUV2ZW50Q2FsbGJhY2soZnVuY3Rpb24gKGUpIHtcbiAgICBpZiAoZSAmJiBlLnByZXZlbnREZWZhdWx0ICYmIGlzRnVuY3Rpb24oZS5wcmV2ZW50RGVmYXVsdCkpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBpZiAoZSAmJiBlLnN0b3BQcm9wYWdhdGlvbiAmJiBpc0Z1bmN0aW9uKGUuc3RvcFByb3BhZ2F0aW9uKSkge1xuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9IC8vIFdhcm4gaWYgZm9ybSBzdWJtaXNzaW9uIGlzIHRyaWdnZXJlZCBieSBhIDxidXR0b24+IHdpdGhvdXQgYVxuICAgIC8vIHNwZWNpZmllZCBgdHlwZWAgYXR0cmlidXRlIGR1cmluZyBkZXZlbG9wbWVudC4gVGhpcyBtaXRpZ2F0ZXNcbiAgICAvLyBhIGNvbW1vbiBnb3RjaGEgaW4gZm9ybXMgd2l0aCBib3RoIHJlc2V0IGFuZCBzdWJtaXQgYnV0dG9ucyxcbiAgICAvLyB3aGVyZSB0aGUgZGV2IGZvcmdldHMgdG8gYWRkIHR5cGU9XCJidXR0b25cIiB0byB0aGUgcmVzZXQgYnV0dG9uLlxuXG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiICYmIHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIC8vIFNhZmVseSBnZXQgdGhlIGFjdGl2ZSBlbGVtZW50ICh3b3JrcyB3aXRoIElFKVxuICAgICAgdmFyIGFjdGl2ZUVsZW1lbnQgPSBnZXRBY3RpdmVFbGVtZW50KCk7XG5cbiAgICAgIGlmIChhY3RpdmVFbGVtZW50ICE9PSBudWxsICYmIGFjdGl2ZUVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MQnV0dG9uRWxlbWVudCkge1xuICAgICAgICAhKGFjdGl2ZUVsZW1lbnQuYXR0cmlidXRlcyAmJiBhY3RpdmVFbGVtZW50LmF0dHJpYnV0ZXMuZ2V0TmFtZWRJdGVtKCd0eXBlJykpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gaW52YXJpYW50KGZhbHNlLCAnWW91IHN1Ym1pdHRlZCBhIEZvcm1payBmb3JtIHVzaW5nIGEgYnV0dG9uIHdpdGggYW4gdW5zcGVjaWZpZWQgYHR5cGVgIGF0dHJpYnV0ZS4gIE1vc3QgYnJvd3NlcnMgZGVmYXVsdCBidXR0b24gZWxlbWVudHMgdG8gYHR5cGU9XCJzdWJtaXRcImAuIElmIHRoaXMgaXMgbm90IGEgc3VibWl0IGJ1dHRvbiwgcGxlYXNlIGFkZCBgdHlwZT1cImJ1dHRvblwiYC4nKSA6IGludmFyaWFudChmYWxzZSkgOiB2b2lkIDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc3VibWl0Rm9ybSgpW1wiY2F0Y2hcIl0oZnVuY3Rpb24gKHJlYXNvbikge1xuICAgICAgY29uc29sZS53YXJuKFwiV2FybmluZzogQW4gdW5oYW5kbGVkIGVycm9yIHdhcyBjYXVnaHQgZnJvbSBzdWJtaXRGb3JtKClcIiwgcmVhc29uKTtcbiAgICB9KTtcbiAgfSk7XG4gIHZhciBpbXBlcmF0aXZlTWV0aG9kcyA9IHtcbiAgICByZXNldEZvcm06IHJlc2V0Rm9ybSxcbiAgICB2YWxpZGF0ZUZvcm06IHZhbGlkYXRlRm9ybVdpdGhIaWdoUHJpb3JpdHksXG4gICAgdmFsaWRhdGVGaWVsZDogdmFsaWRhdGVGaWVsZCxcbiAgICBzZXRFcnJvcnM6IHNldEVycm9ycyxcbiAgICBzZXRGaWVsZEVycm9yOiBzZXRGaWVsZEVycm9yLFxuICAgIHNldEZpZWxkVG91Y2hlZDogc2V0RmllbGRUb3VjaGVkLFxuICAgIHNldEZpZWxkVmFsdWU6IHNldEZpZWxkVmFsdWUsXG4gICAgc2V0U3RhdHVzOiBzZXRTdGF0dXMsXG4gICAgc2V0U3VibWl0dGluZzogc2V0U3VibWl0dGluZyxcbiAgICBzZXRUb3VjaGVkOiBzZXRUb3VjaGVkLFxuICAgIHNldFZhbHVlczogc2V0VmFsdWVzLFxuICAgIHNldEZvcm1pa1N0YXRlOiBzZXRGb3JtaWtTdGF0ZSxcbiAgICBzdWJtaXRGb3JtOiBzdWJtaXRGb3JtXG4gIH07XG4gIHZhciBleGVjdXRlU3VibWl0ID0gdXNlRXZlbnRDYWxsYmFjayhmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIG9uU3VibWl0KHN0YXRlLnZhbHVlcywgaW1wZXJhdGl2ZU1ldGhvZHMpO1xuICB9KTtcbiAgdmFyIGhhbmRsZVJlc2V0ID0gdXNlRXZlbnRDYWxsYmFjayhmdW5jdGlvbiAoZSkge1xuICAgIGlmIChlICYmIGUucHJldmVudERlZmF1bHQgJiYgaXNGdW5jdGlvbihlLnByZXZlbnREZWZhdWx0KSkge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIGlmIChlICYmIGUuc3RvcFByb3BhZ2F0aW9uICYmIGlzRnVuY3Rpb24oZS5zdG9wUHJvcGFnYXRpb24pKSB7XG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIHJlc2V0Rm9ybSgpO1xuICB9KTtcbiAgdmFyIGdldEZpZWxkTWV0YSA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHZhbHVlOiBnZXRJbihzdGF0ZS52YWx1ZXMsIG5hbWUpLFxuICAgICAgZXJyb3I6IGdldEluKHN0YXRlLmVycm9ycywgbmFtZSksXG4gICAgICB0b3VjaGVkOiAhIWdldEluKHN0YXRlLnRvdWNoZWQsIG5hbWUpLFxuICAgICAgaW5pdGlhbFZhbHVlOiBnZXRJbihpbml0aWFsVmFsdWVzLmN1cnJlbnQsIG5hbWUpLFxuICAgICAgaW5pdGlhbFRvdWNoZWQ6ICEhZ2V0SW4oaW5pdGlhbFRvdWNoZWQuY3VycmVudCwgbmFtZSksXG4gICAgICBpbml0aWFsRXJyb3I6IGdldEluKGluaXRpYWxFcnJvcnMuY3VycmVudCwgbmFtZSlcbiAgICB9O1xuICB9LCBbc3RhdGUuZXJyb3JzLCBzdGF0ZS50b3VjaGVkLCBzdGF0ZS52YWx1ZXNdKTtcbiAgdmFyIGdldEZpZWxkSGVscGVycyA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNldFZhbHVlOiBmdW5jdGlvbiBzZXRWYWx1ZSh2YWx1ZSwgc2hvdWxkVmFsaWRhdGUpIHtcbiAgICAgICAgcmV0dXJuIHNldEZpZWxkVmFsdWUobmFtZSwgdmFsdWUsIHNob3VsZFZhbGlkYXRlKTtcbiAgICAgIH0sXG4gICAgICBzZXRUb3VjaGVkOiBmdW5jdGlvbiBzZXRUb3VjaGVkKHZhbHVlLCBzaG91bGRWYWxpZGF0ZSkge1xuICAgICAgICByZXR1cm4gc2V0RmllbGRUb3VjaGVkKG5hbWUsIHZhbHVlLCBzaG91bGRWYWxpZGF0ZSk7XG4gICAgICB9LFxuICAgICAgc2V0RXJyb3I6IGZ1bmN0aW9uIHNldEVycm9yKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBzZXRGaWVsZEVycm9yKG5hbWUsIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9O1xuICB9LCBbc2V0RmllbGRWYWx1ZSwgc2V0RmllbGRUb3VjaGVkLCBzZXRGaWVsZEVycm9yXSk7XG4gIHZhciBnZXRGaWVsZFByb3BzID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKG5hbWVPck9wdGlvbnMpIHtcbiAgICB2YXIgaXNBbk9iamVjdCA9IGlzT2JqZWN0KG5hbWVPck9wdGlvbnMpO1xuICAgIHZhciBuYW1lID0gaXNBbk9iamVjdCA/IG5hbWVPck9wdGlvbnMubmFtZSA6IG5hbWVPck9wdGlvbnM7XG4gICAgdmFyIHZhbHVlU3RhdGUgPSBnZXRJbihzdGF0ZS52YWx1ZXMsIG5hbWUpO1xuICAgIHZhciBmaWVsZCA9IHtcbiAgICAgIG5hbWU6IG5hbWUsXG4gICAgICB2YWx1ZTogdmFsdWVTdGF0ZSxcbiAgICAgIG9uQ2hhbmdlOiBoYW5kbGVDaGFuZ2UsXG4gICAgICBvbkJsdXI6IGhhbmRsZUJsdXJcbiAgICB9O1xuXG4gICAgaWYgKGlzQW5PYmplY3QpIHtcbiAgICAgIHZhciB0eXBlID0gbmFtZU9yT3B0aW9ucy50eXBlLFxuICAgICAgICAgIHZhbHVlUHJvcCA9IG5hbWVPck9wdGlvbnMudmFsdWUsXG4gICAgICAgICAgaXMgPSBuYW1lT3JPcHRpb25zLmFzLFxuICAgICAgICAgIG11bHRpcGxlID0gbmFtZU9yT3B0aW9ucy5tdWx0aXBsZTtcblxuICAgICAgaWYgKHR5cGUgPT09ICdjaGVja2JveCcpIHtcbiAgICAgICAgaWYgKHZhbHVlUHJvcCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgZmllbGQuY2hlY2tlZCA9ICEhdmFsdWVTdGF0ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmaWVsZC5jaGVja2VkID0gISEoQXJyYXkuaXNBcnJheSh2YWx1ZVN0YXRlKSAmJiB+dmFsdWVTdGF0ZS5pbmRleE9mKHZhbHVlUHJvcCkpO1xuICAgICAgICAgIGZpZWxkLnZhbHVlID0gdmFsdWVQcm9wO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdyYWRpbycpIHtcbiAgICAgICAgZmllbGQuY2hlY2tlZCA9IHZhbHVlU3RhdGUgPT09IHZhbHVlUHJvcDtcbiAgICAgICAgZmllbGQudmFsdWUgPSB2YWx1ZVByb3A7XG4gICAgICB9IGVsc2UgaWYgKGlzID09PSAnc2VsZWN0JyAmJiBtdWx0aXBsZSkge1xuICAgICAgICBmaWVsZC52YWx1ZSA9IGZpZWxkLnZhbHVlIHx8IFtdO1xuICAgICAgICBmaWVsZC5tdWx0aXBsZSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpZWxkO1xuICB9LCBbaGFuZGxlQmx1ciwgaGFuZGxlQ2hhbmdlLCBzdGF0ZS52YWx1ZXNdKTtcbiAgdmFyIGRpcnR5ID0gdXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuICFpc0VxdWFsKGluaXRpYWxWYWx1ZXMuY3VycmVudCwgc3RhdGUudmFsdWVzKTtcbiAgfSwgW2luaXRpYWxWYWx1ZXMuY3VycmVudCwgc3RhdGUudmFsdWVzXSk7XG4gIHZhciBpc1ZhbGlkID0gdXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBpc0luaXRpYWxWYWxpZCAhPT0gJ3VuZGVmaW5lZCcgPyBkaXJ0eSA/IHN0YXRlLmVycm9ycyAmJiBPYmplY3Qua2V5cyhzdGF0ZS5lcnJvcnMpLmxlbmd0aCA9PT0gMCA6IGlzSW5pdGlhbFZhbGlkICE9PSBmYWxzZSAmJiBpc0Z1bmN0aW9uKGlzSW5pdGlhbFZhbGlkKSA/IGlzSW5pdGlhbFZhbGlkKHByb3BzKSA6IGlzSW5pdGlhbFZhbGlkIDogc3RhdGUuZXJyb3JzICYmIE9iamVjdC5rZXlzKHN0YXRlLmVycm9ycykubGVuZ3RoID09PSAwO1xuICB9LCBbaXNJbml0aWFsVmFsaWQsIGRpcnR5LCBzdGF0ZS5lcnJvcnMsIHByb3BzXSk7XG5cbiAgdmFyIGN0eCA9IF9leHRlbmRzKHt9LCBzdGF0ZSwge1xuICAgIGluaXRpYWxWYWx1ZXM6IGluaXRpYWxWYWx1ZXMuY3VycmVudCxcbiAgICBpbml0aWFsRXJyb3JzOiBpbml0aWFsRXJyb3JzLmN1cnJlbnQsXG4gICAgaW5pdGlhbFRvdWNoZWQ6IGluaXRpYWxUb3VjaGVkLmN1cnJlbnQsXG4gICAgaW5pdGlhbFN0YXR1czogaW5pdGlhbFN0YXR1cy5jdXJyZW50LFxuICAgIGhhbmRsZUJsdXI6IGhhbmRsZUJsdXIsXG4gICAgaGFuZGxlQ2hhbmdlOiBoYW5kbGVDaGFuZ2UsXG4gICAgaGFuZGxlUmVzZXQ6IGhhbmRsZVJlc2V0LFxuICAgIGhhbmRsZVN1Ym1pdDogaGFuZGxlU3VibWl0LFxuICAgIHJlc2V0Rm9ybTogcmVzZXRGb3JtLFxuICAgIHNldEVycm9yczogc2V0RXJyb3JzLFxuICAgIHNldEZvcm1pa1N0YXRlOiBzZXRGb3JtaWtTdGF0ZSxcbiAgICBzZXRGaWVsZFRvdWNoZWQ6IHNldEZpZWxkVG91Y2hlZCxcbiAgICBzZXRGaWVsZFZhbHVlOiBzZXRGaWVsZFZhbHVlLFxuICAgIHNldEZpZWxkRXJyb3I6IHNldEZpZWxkRXJyb3IsXG4gICAgc2V0U3RhdHVzOiBzZXRTdGF0dXMsXG4gICAgc2V0U3VibWl0dGluZzogc2V0U3VibWl0dGluZyxcbiAgICBzZXRUb3VjaGVkOiBzZXRUb3VjaGVkLFxuICAgIHNldFZhbHVlczogc2V0VmFsdWVzLFxuICAgIHN1Ym1pdEZvcm06IHN1Ym1pdEZvcm0sXG4gICAgdmFsaWRhdGVGb3JtOiB2YWxpZGF0ZUZvcm1XaXRoSGlnaFByaW9yaXR5LFxuICAgIHZhbGlkYXRlRmllbGQ6IHZhbGlkYXRlRmllbGQsXG4gICAgaXNWYWxpZDogaXNWYWxpZCxcbiAgICBkaXJ0eTogZGlydHksXG4gICAgdW5yZWdpc3RlckZpZWxkOiB1bnJlZ2lzdGVyRmllbGQsXG4gICAgcmVnaXN0ZXJGaWVsZDogcmVnaXN0ZXJGaWVsZCxcbiAgICBnZXRGaWVsZFByb3BzOiBnZXRGaWVsZFByb3BzLFxuICAgIGdldEZpZWxkTWV0YTogZ2V0RmllbGRNZXRhLFxuICAgIGdldEZpZWxkSGVscGVyczogZ2V0RmllbGRIZWxwZXJzLFxuICAgIHZhbGlkYXRlT25CbHVyOiB2YWxpZGF0ZU9uQmx1cixcbiAgICB2YWxpZGF0ZU9uQ2hhbmdlOiB2YWxpZGF0ZU9uQ2hhbmdlLFxuICAgIHZhbGlkYXRlT25Nb3VudDogdmFsaWRhdGVPbk1vdW50XG4gIH0pO1xuXG4gIHJldHVybiBjdHg7XG59XG5mdW5jdGlvbiBGb3JtaWsocHJvcHMpIHtcbiAgdmFyIGZvcm1pa2JhZyA9IHVzZUZvcm1payhwcm9wcyk7XG4gIHZhciBjb21wb25lbnQgPSBwcm9wcy5jb21wb25lbnQsXG4gICAgICBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLFxuICAgICAgcmVuZGVyID0gcHJvcHMucmVuZGVyLFxuICAgICAgaW5uZXJSZWYgPSBwcm9wcy5pbm5lclJlZjsgLy8gVGhpcyBhbGxvd3MgZm9sa3MgdG8gcGFzcyBhIHJlZiB0byA8Rm9ybWlrIC8+XG5cbiAgdXNlSW1wZXJhdGl2ZUhhbmRsZShpbm5lclJlZiwgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBmb3JtaWtiYWc7XG4gIH0pO1xuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgISFwcm9wcy5yZW5kZXIgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyBpbnZhcmlhbnQoZmFsc2UsIFwiPEZvcm1payByZW5kZXI+IGhhcyBiZWVuIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBmdXR1cmUgdmVyc2lvbnMgb2YgRm9ybWlrLiBQbGVhc2UgdXNlIGEgY2hpbGQgY2FsbGJhY2sgZnVuY3Rpb24gaW5zdGVhZC4gVG8gZ2V0IHJpZCBvZiB0aGlzIHdhcm5pbmcsIHJlcGxhY2UgPEZvcm1payByZW5kZXI9eyhwcm9wcykgPT4gLi4ufSAvPiB3aXRoIDxGb3JtaWs+eyhwcm9wcykgPT4gLi4ufTwvRm9ybWlrPlwiKSA6IGludmFyaWFudChmYWxzZSkgOiB2b2lkIDA7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIH0sIFtdKTtcbiAgfVxuXG4gIHJldHVybiBjcmVhdGVFbGVtZW50KEZvcm1pa1Byb3ZpZGVyLCB7XG4gICAgdmFsdWU6IGZvcm1pa2JhZ1xuICB9LCBjb21wb25lbnQgPyBjcmVhdGVFbGVtZW50KGNvbXBvbmVudCwgZm9ybWlrYmFnKSA6IHJlbmRlciA/IHJlbmRlcihmb3JtaWtiYWcpIDogY2hpbGRyZW4gLy8gY2hpbGRyZW4gY29tZSBsYXN0LCBhbHdheXMgY2FsbGVkXG4gID8gaXNGdW5jdGlvbihjaGlsZHJlbikgPyBjaGlsZHJlbihmb3JtaWtiYWcpIDogIWlzRW1wdHlDaGlsZHJlbihjaGlsZHJlbikgPyBDaGlsZHJlbi5vbmx5KGNoaWxkcmVuKSA6IG51bGwgOiBudWxsKTtcbn1cblxuZnVuY3Rpb24gd2FybkFib3V0TWlzc2luZ0lkZW50aWZpZXIoX3JlZjQpIHtcbiAgdmFyIGh0bWxDb250ZW50ID0gX3JlZjQuaHRtbENvbnRlbnQsXG4gICAgICBkb2N1bWVudGF0aW9uQW5jaG9yTGluayA9IF9yZWY0LmRvY3VtZW50YXRpb25BbmNob3JMaW5rLFxuICAgICAgaGFuZGxlck5hbWUgPSBfcmVmNC5oYW5kbGVyTmFtZTtcbiAgY29uc29sZS53YXJuKFwiV2FybmluZzogRm9ybWlrIGNhbGxlZCBgXCIgKyBoYW5kbGVyTmFtZSArIFwiYCwgYnV0IHlvdSBmb3Jnb3QgdG8gcGFzcyBhbiBgaWRgIG9yIGBuYW1lYCBhdHRyaWJ1dGUgdG8geW91ciBpbnB1dDpcXG4gICAgXCIgKyBodG1sQ29udGVudCArIFwiXFxuICAgIEZvcm1payBjYW5ub3QgZGV0ZXJtaW5lIHdoaWNoIHZhbHVlIHRvIHVwZGF0ZS4gRm9yIG1vcmUgaW5mbyBzZWUgaHR0cHM6Ly9mb3JtaWsub3JnL2RvY3MvYXBpL2Zvcm1payNcIiArIGRvY3VtZW50YXRpb25BbmNob3JMaW5rICsgXCJcXG4gIFwiKTtcbn1cbi8qKlxyXG4gKiBUcmFuc2Zvcm0gWXVwIFZhbGlkYXRpb25FcnJvciB0byBhIG1vcmUgdXNhYmxlIG9iamVjdFxyXG4gKi9cblxuXG5mdW5jdGlvbiB5dXBUb0Zvcm1FcnJvcnMoeXVwRXJyb3IpIHtcbiAgdmFyIGVycm9ycyA9IHt9O1xuXG4gIGlmICh5dXBFcnJvci5pbm5lcikge1xuICAgIGlmICh5dXBFcnJvci5pbm5lci5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBzZXRJbihlcnJvcnMsIHl1cEVycm9yLnBhdGgsIHl1cEVycm9yLm1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGZvciAodmFyIF9pdGVyYXRvciA9IHl1cEVycm9yLmlubmVyLCBfaXNBcnJheSA9IEFycmF5LmlzQXJyYXkoX2l0ZXJhdG9yKSwgX2kgPSAwLCBfaXRlcmF0b3IgPSBfaXNBcnJheSA/IF9pdGVyYXRvciA6IF9pdGVyYXRvcltTeW1ib2wuaXRlcmF0b3JdKCk7Oykge1xuICAgICAgdmFyIF9yZWY1O1xuXG4gICAgICBpZiAoX2lzQXJyYXkpIHtcbiAgICAgICAgaWYgKF9pID49IF9pdGVyYXRvci5sZW5ndGgpIGJyZWFrO1xuICAgICAgICBfcmVmNSA9IF9pdGVyYXRvcltfaSsrXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIF9pID0gX2l0ZXJhdG9yLm5leHQoKTtcbiAgICAgICAgaWYgKF9pLmRvbmUpIGJyZWFrO1xuICAgICAgICBfcmVmNSA9IF9pLnZhbHVlO1xuICAgICAgfVxuXG4gICAgICB2YXIgZXJyID0gX3JlZjU7XG5cbiAgICAgIGlmICghZ2V0SW4oZXJyb3JzLCBlcnIucGF0aCkpIHtcbiAgICAgICAgZXJyb3JzID0gc2V0SW4oZXJyb3JzLCBlcnIucGF0aCwgZXJyLm1lc3NhZ2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBlcnJvcnM7XG59XG4vKipcclxuICogVmFsaWRhdGUgYSB5dXAgc2NoZW1hLlxyXG4gKi9cblxuZnVuY3Rpb24gdmFsaWRhdGVZdXBTY2hlbWEodmFsdWVzLCBzY2hlbWEsIHN5bmMsIGNvbnRleHQpIHtcbiAgaWYgKHN5bmMgPT09IHZvaWQgMCkge1xuICAgIHN5bmMgPSBmYWxzZTtcbiAgfVxuXG4gIGlmIChjb250ZXh0ID09PSB2b2lkIDApIHtcbiAgICBjb250ZXh0ID0ge307XG4gIH1cblxuICB2YXIgdmFsaWRhdGVEYXRhID0gcHJlcGFyZURhdGFGb3JWYWxpZGF0aW9uKHZhbHVlcyk7XG4gIHJldHVybiBzY2hlbWFbc3luYyA/ICd2YWxpZGF0ZVN5bmMnIDogJ3ZhbGlkYXRlJ10odmFsaWRhdGVEYXRhLCB7XG4gICAgYWJvcnRFYXJseTogZmFsc2UsXG4gICAgY29udGV4dDogY29udGV4dFxuICB9KTtcbn1cbi8qKlxyXG4gKiBSZWN1cnNpdmVseSBwcmVwYXJlIHZhbHVlcy5cclxuICovXG5cbmZ1bmN0aW9uIHByZXBhcmVEYXRhRm9yVmFsaWRhdGlvbih2YWx1ZXMpIHtcbiAgdmFyIGRhdGEgPSBBcnJheS5pc0FycmF5KHZhbHVlcykgPyBbXSA6IHt9O1xuXG4gIGZvciAodmFyIGsgaW4gdmFsdWVzKSB7XG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZXMsIGspKSB7XG4gICAgICB2YXIga2V5ID0gU3RyaW5nKGspO1xuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZXNba2V5XSkgPT09IHRydWUpIHtcbiAgICAgICAgZGF0YVtrZXldID0gdmFsdWVzW2tleV0ubWFwKGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSA9PT0gdHJ1ZSB8fCBpc1BsYWluT2JqZWN0KHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHByZXBhcmVEYXRhRm9yVmFsaWRhdGlvbih2YWx1ZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZSAhPT0gJycgPyB2YWx1ZSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmIChpc1BsYWluT2JqZWN0KHZhbHVlc1trZXldKSkge1xuICAgICAgICBkYXRhW2tleV0gPSBwcmVwYXJlRGF0YUZvclZhbGlkYXRpb24odmFsdWVzW2tleV0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGF0YVtrZXldID0gdmFsdWVzW2tleV0gIT09ICcnID8gdmFsdWVzW2tleV0gOiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRhdGE7XG59XG4vKipcclxuICogZGVlcG1lcmdlIGFycmF5IG1lcmdpbmcgYWxnb3JpdGhtXHJcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9LeWxlQU1hdGhld3MvZGVlcG1lcmdlI2NvbWJpbmUtYXJyYXlcclxuICovXG5cbmZ1bmN0aW9uIGFycmF5TWVyZ2UodGFyZ2V0LCBzb3VyY2UsIG9wdGlvbnMpIHtcbiAgdmFyIGRlc3RpbmF0aW9uID0gdGFyZ2V0LnNsaWNlKCk7XG4gIHNvdXJjZS5mb3JFYWNoKGZ1bmN0aW9uIG1lcmdlKGUsIGkpIHtcbiAgICBpZiAodHlwZW9mIGRlc3RpbmF0aW9uW2ldID09PSAndW5kZWZpbmVkJykge1xuICAgICAgdmFyIGNsb25lUmVxdWVzdGVkID0gb3B0aW9ucy5jbG9uZSAhPT0gZmFsc2U7XG4gICAgICB2YXIgc2hvdWxkQ2xvbmUgPSBjbG9uZVJlcXVlc3RlZCAmJiBvcHRpb25zLmlzTWVyZ2VhYmxlT2JqZWN0KGUpO1xuICAgICAgZGVzdGluYXRpb25baV0gPSBzaG91bGRDbG9uZSA/IGRlZXBtZXJnZShBcnJheS5pc0FycmF5KGUpID8gW10gOiB7fSwgZSwgb3B0aW9ucykgOiBlO1xuICAgIH0gZWxzZSBpZiAob3B0aW9ucy5pc01lcmdlYWJsZU9iamVjdChlKSkge1xuICAgICAgZGVzdGluYXRpb25baV0gPSBkZWVwbWVyZ2UodGFyZ2V0W2ldLCBlLCBvcHRpb25zKTtcbiAgICB9IGVsc2UgaWYgKHRhcmdldC5pbmRleE9mKGUpID09PSAtMSkge1xuICAgICAgZGVzdGluYXRpb24ucHVzaChlKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gZGVzdGluYXRpb247XG59XG4vKiogUmV0dXJuIG11bHRpIHNlbGVjdCB2YWx1ZXMgYmFzZWQgb24gYW4gYXJyYXkgb2Ygb3B0aW9ucyAqL1xuXG5cbmZ1bmN0aW9uIGdldFNlbGVjdGVkVmFsdWVzKG9wdGlvbnMpIHtcbiAgcmV0dXJuIEFycmF5LmZyb20ob3B0aW9ucykuZmlsdGVyKGZ1bmN0aW9uIChlbCkge1xuICAgIHJldHVybiBlbC5zZWxlY3RlZDtcbiAgfSkubWFwKGZ1bmN0aW9uIChlbCkge1xuICAgIHJldHVybiBlbC52YWx1ZTtcbiAgfSk7XG59XG4vKiogUmV0dXJuIHRoZSBuZXh0IHZhbHVlIGZvciBhIGNoZWNrYm94ICovXG5cblxuZnVuY3Rpb24gZ2V0VmFsdWVGb3JDaGVja2JveChjdXJyZW50VmFsdWUsIGNoZWNrZWQsIHZhbHVlUHJvcCkge1xuICAvLyBJZiB0aGUgY3VycmVudCB2YWx1ZSB3YXMgYSBib29sZWFuLCByZXR1cm4gYSBib29sZWFuXG4gIGlmICh0eXBlb2YgY3VycmVudFZhbHVlID09PSAnYm9vbGVhbicpIHtcbiAgICByZXR1cm4gQm9vbGVhbihjaGVja2VkKTtcbiAgfSAvLyBJZiB0aGUgY3VycmVudFZhbHVlIHdhcyBub3QgYSBib29sZWFuIHdlIHdhbnQgdG8gcmV0dXJuIGFuIGFycmF5XG5cblxuICB2YXIgY3VycmVudEFycmF5T2ZWYWx1ZXMgPSBbXTtcbiAgdmFyIGlzVmFsdWVJbkFycmF5ID0gZmFsc2U7XG4gIHZhciBpbmRleCA9IC0xO1xuXG4gIGlmICghQXJyYXkuaXNBcnJheShjdXJyZW50VmFsdWUpKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuICAgIGlmICghdmFsdWVQcm9wIHx8IHZhbHVlUHJvcCA9PSAndHJ1ZScgfHwgdmFsdWVQcm9wID09ICdmYWxzZScpIHtcbiAgICAgIHJldHVybiBCb29sZWFuKGNoZWNrZWQpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBJZiB0aGUgY3VycmVudCB2YWx1ZSBpcyBhbHJlYWR5IGFuIGFycmF5LCB1c2UgaXRcbiAgICBjdXJyZW50QXJyYXlPZlZhbHVlcyA9IGN1cnJlbnRWYWx1ZTtcbiAgICBpbmRleCA9IGN1cnJlbnRWYWx1ZS5pbmRleE9mKHZhbHVlUHJvcCk7XG4gICAgaXNWYWx1ZUluQXJyYXkgPSBpbmRleCA+PSAwO1xuICB9IC8vIElmIHRoZSBjaGVja2JveCB3YXMgY2hlY2tlZCBhbmQgdGhlIHZhbHVlIGlzIG5vdCBhbHJlYWR5IHByZXNlbnQgaW4gdGhlIGFyYXkgd2Ugd2FudCB0byBhZGQgdGhlIG5ldyB2YWx1ZSB0byB0aGUgYXJyYXkgb2YgdmFsdWVzXG5cblxuICBpZiAoY2hlY2tlZCAmJiB2YWx1ZVByb3AgJiYgIWlzVmFsdWVJbkFycmF5KSB7XG4gICAgcmV0dXJuIGN1cnJlbnRBcnJheU9mVmFsdWVzLmNvbmNhdCh2YWx1ZVByb3ApO1xuICB9IC8vIElmIHRoZSBjaGVja2JveCB3YXMgdW5jaGVja2VkIGFuZCB0aGUgdmFsdWUgaXMgbm90IGluIHRoZSBhcnJheSwgc2ltcGx5IHJldHVybiB0aGUgYWxyZWFkeSBleGlzdGluZyBhcnJheSBvZiB2YWx1ZXNcblxuXG4gIGlmICghaXNWYWx1ZUluQXJyYXkpIHtcbiAgICByZXR1cm4gY3VycmVudEFycmF5T2ZWYWx1ZXM7XG4gIH0gLy8gSWYgdGhlIGNoZWNrYm94IHdhcyB1bmNoZWNrZWQgYW5kIHRoZSB2YWx1ZSBpcyBpbiB0aGUgYXJyYXksIHJlbW92ZSB0aGUgdmFsdWUgYW5kIHJldHVybiB0aGUgYXJyYXlcblxuXG4gIHJldHVybiBjdXJyZW50QXJyYXlPZlZhbHVlcy5zbGljZSgwLCBpbmRleCkuY29uY2F0KGN1cnJlbnRBcnJheU9mVmFsdWVzLnNsaWNlKGluZGV4ICsgMSkpO1xufSAvLyBSZWFjdCBjdXJyZW50bHkgdGhyb3dzIGEgd2FybmluZyB3aGVuIHVzaW5nIHVzZUxheW91dEVmZmVjdCBvbiB0aGUgc2VydmVyLlxuLy8gVG8gZ2V0IGFyb3VuZCBpdCwgd2UgY2FuIGNvbmRpdGlvbmFsbHkgdXNlRWZmZWN0IG9uIHRoZSBzZXJ2ZXIgKG5vLW9wKSBhbmRcbi8vIHVzZUxheW91dEVmZmVjdCBpbiB0aGUgYnJvd3Nlci5cbi8vIEBzZWUgaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vZ2FlYXJvbi9lN2Q5N2NkZjM4YTI5MDc5MjRlYTEyZTRlYmRmM2M4NVxuXG5cbnZhciB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0ID0gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIHdpbmRvdy5kb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIHdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50ICE9PSAndW5kZWZpbmVkJyA/IHVzZUxheW91dEVmZmVjdCA6IHVzZUVmZmVjdDtcblxuZnVuY3Rpb24gdXNlRXZlbnRDYWxsYmFjayhmbikge1xuICB2YXIgcmVmID0gdXNlUmVmKGZuKTsgLy8gd2UgY29weSBhIHJlZiB0byB0aGUgY2FsbGJhY2sgc2NvcGVkIHRvIHRoZSBjdXJyZW50IHN0YXRlL3Byb3BzIG9uIGVhY2ggcmVuZGVyXG5cbiAgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgcmVmLmN1cnJlbnQgPSBmbjtcbiAgfSk7XG4gIHJldHVybiB1c2VDYWxsYmFjayhmdW5jdGlvbiAoKSB7XG4gICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICBhcmdzW19rZXldID0gYXJndW1lbnRzW19rZXldO1xuICAgIH1cblxuICAgIHJldHVybiByZWYuY3VycmVudC5hcHBseSh2b2lkIDAsIGFyZ3MpO1xuICB9LCBbXSk7XG59XG5cbmZ1bmN0aW9uIHVzZUZpZWxkKHByb3BzT3JGaWVsZE5hbWUpIHtcbiAgdmFyIGZvcm1payA9IHVzZUZvcm1pa0NvbnRleHQoKTtcbiAgdmFyIGdldEZpZWxkUHJvcHMgPSBmb3JtaWsuZ2V0RmllbGRQcm9wcyxcbiAgICAgIGdldEZpZWxkTWV0YSA9IGZvcm1pay5nZXRGaWVsZE1ldGEsXG4gICAgICBnZXRGaWVsZEhlbHBlcnMgPSBmb3JtaWsuZ2V0RmllbGRIZWxwZXJzLFxuICAgICAgcmVnaXN0ZXJGaWVsZCA9IGZvcm1pay5yZWdpc3RlckZpZWxkLFxuICAgICAgdW5yZWdpc3RlckZpZWxkID0gZm9ybWlrLnVucmVnaXN0ZXJGaWVsZDtcbiAgdmFyIGlzQW5PYmplY3QgPSBpc09iamVjdChwcm9wc09yRmllbGROYW1lKTsgLy8gTm9ybWFsaXplIHByb3BzT3JGaWVsZE5hbWUgdG8gRmllbGRIb29rQ29uZmlnPFZhbD5cblxuICB2YXIgcHJvcHMgPSBpc0FuT2JqZWN0ID8gcHJvcHNPckZpZWxkTmFtZSA6IHtcbiAgICBuYW1lOiBwcm9wc09yRmllbGROYW1lXG4gIH07XG4gIHZhciBmaWVsZE5hbWUgPSBwcm9wcy5uYW1lLFxuICAgICAgdmFsaWRhdGVGbiA9IHByb3BzLnZhbGlkYXRlO1xuICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIGlmIChmaWVsZE5hbWUpIHtcbiAgICAgIHJlZ2lzdGVyRmllbGQoZmllbGROYW1lLCB7XG4gICAgICAgIHZhbGlkYXRlOiB2YWxpZGF0ZUZuXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKGZpZWxkTmFtZSkge1xuICAgICAgICB1bnJlZ2lzdGVyRmllbGQoZmllbGROYW1lKTtcbiAgICAgIH1cbiAgICB9O1xuICB9LCBbcmVnaXN0ZXJGaWVsZCwgdW5yZWdpc3RlckZpZWxkLCBmaWVsZE5hbWUsIHZhbGlkYXRlRm5dKTtcblxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgIWZvcm1payA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IGludmFyaWFudChmYWxzZSwgJ3VzZUZpZWxkKCkgLyA8RmllbGQgLz4gbXVzdCBiZSB1c2VkIHVuZGVybmVhdGggYSA8Rm9ybWlrPiBjb21wb25lbnQgb3Igd2l0aEZvcm1paygpIGhpZ2hlciBvcmRlciBjb21wb25lbnQnKSA6IGludmFyaWFudChmYWxzZSkgOiB2b2lkIDA7XG4gIH1cblxuICAhZmllbGROYW1lID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gaW52YXJpYW50KGZhbHNlLCAnSW52YWxpZCBmaWVsZCBuYW1lLiBFaXRoZXIgcGFzcyBgdXNlRmllbGRgIGEgc3RyaW5nIG9yIGFuIG9iamVjdCBjb250YWluaW5nIGEgYG5hbWVgIGtleS4nKSA6IGludmFyaWFudChmYWxzZSkgOiB2b2lkIDA7XG4gIHJldHVybiBbZ2V0RmllbGRQcm9wcyhwcm9wcyksIGdldEZpZWxkTWV0YShmaWVsZE5hbWUpLCBnZXRGaWVsZEhlbHBlcnMoZmllbGROYW1lKV07XG59XG5mdW5jdGlvbiBGaWVsZChfcmVmKSB7XG4gIHZhciB2YWxpZGF0ZSA9IF9yZWYudmFsaWRhdGUsXG4gICAgICBuYW1lID0gX3JlZi5uYW1lLFxuICAgICAgcmVuZGVyID0gX3JlZi5yZW5kZXIsXG4gICAgICBjaGlsZHJlbiA9IF9yZWYuY2hpbGRyZW4sXG4gICAgICBpcyA9IF9yZWYuYXMsXG4gICAgICBjb21wb25lbnQgPSBfcmVmLmNvbXBvbmVudCxcbiAgICAgIHByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UoX3JlZiwgW1widmFsaWRhdGVcIiwgXCJuYW1lXCIsIFwicmVuZGVyXCIsIFwiY2hpbGRyZW5cIiwgXCJhc1wiLCBcImNvbXBvbmVudFwiXSk7XG5cbiAgdmFyIF91c2VGb3JtaWtDb250ZXh0ID0gdXNlRm9ybWlrQ29udGV4dCgpLFxuICAgICAgZm9ybWlrID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UoX3VzZUZvcm1pa0NvbnRleHQsIFtcInZhbGlkYXRlXCIsIFwidmFsaWRhdGlvblNjaGVtYVwiXSk7XG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9ydWxlcy1vZi1ob29rc1xuICAgIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICAhIXJlbmRlciA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IGludmFyaWFudChmYWxzZSwgXCI8RmllbGQgcmVuZGVyPiBoYXMgYmVlbiBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gZnV0dXJlIHZlcnNpb25zIG9mIEZvcm1pay4gUGxlYXNlIHVzZSBhIGNoaWxkIGNhbGxiYWNrIGZ1bmN0aW9uIGluc3RlYWQuIFRvIGdldCByaWQgb2YgdGhpcyB3YXJuaW5nLCByZXBsYWNlIDxGaWVsZCBuYW1lPVxcXCJcIiArIG5hbWUgKyBcIlxcXCIgcmVuZGVyPXsoe2ZpZWxkLCBmb3JtfSkgPT4gLi4ufSAvPiB3aXRoIDxGaWVsZCBuYW1lPVxcXCJcIiArIG5hbWUgKyBcIlxcXCI+eyh7ZmllbGQsIGZvcm0sIG1ldGF9KSA9PiAuLi59PC9GaWVsZD5cIikgOiBpbnZhcmlhbnQoZmFsc2UpIDogdm9pZCAwO1xuICAgICAgISEoaXMgJiYgY2hpbGRyZW4gJiYgaXNGdW5jdGlvbihjaGlsZHJlbikpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gaW52YXJpYW50KGZhbHNlLCAnWW91IHNob3VsZCBub3QgdXNlIDxGaWVsZCBhcz4gYW5kIDxGaWVsZCBjaGlsZHJlbj4gYXMgYSBmdW5jdGlvbiBpbiB0aGUgc2FtZSA8RmllbGQ+IGNvbXBvbmVudDsgPEZpZWxkIGFzPiB3aWxsIGJlIGlnbm9yZWQuJykgOiBpbnZhcmlhbnQoZmFsc2UpIDogdm9pZCAwO1xuICAgICAgISEoY29tcG9uZW50ICYmIGNoaWxkcmVuICYmIGlzRnVuY3Rpb24oY2hpbGRyZW4pKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IGludmFyaWFudChmYWxzZSwgJ1lvdSBzaG91bGQgbm90IHVzZSA8RmllbGQgY29tcG9uZW50PiBhbmQgPEZpZWxkIGNoaWxkcmVuPiBhcyBhIGZ1bmN0aW9uIGluIHRoZSBzYW1lIDxGaWVsZD4gY29tcG9uZW50OyA8RmllbGQgY29tcG9uZW50PiB3aWxsIGJlIGlnbm9yZWQuJykgOiBpbnZhcmlhbnQoZmFsc2UpIDogdm9pZCAwO1xuICAgICAgISEocmVuZGVyICYmIGNoaWxkcmVuICYmICFpc0VtcHR5Q2hpbGRyZW4oY2hpbGRyZW4pKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IGludmFyaWFudChmYWxzZSwgJ1lvdSBzaG91bGQgbm90IHVzZSA8RmllbGQgcmVuZGVyPiBhbmQgPEZpZWxkIGNoaWxkcmVuPiBpbiB0aGUgc2FtZSA8RmllbGQ+IGNvbXBvbmVudDsgPEZpZWxkIGNoaWxkcmVuPiB3aWxsIGJlIGlnbm9yZWQnKSA6IGludmFyaWFudChmYWxzZSkgOiB2b2lkIDA7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIH0sIFtdKTtcbiAgfSAvLyBSZWdpc3RlciBmaWVsZCBhbmQgZmllbGQtbGV2ZWwgdmFsaWRhdGlvbiB3aXRoIHBhcmVudCA8Rm9ybWlrPlxuXG5cbiAgdmFyIHJlZ2lzdGVyRmllbGQgPSBmb3JtaWsucmVnaXN0ZXJGaWVsZCxcbiAgICAgIHVucmVnaXN0ZXJGaWVsZCA9IGZvcm1pay51bnJlZ2lzdGVyRmllbGQ7XG4gIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgcmVnaXN0ZXJGaWVsZChuYW1lLCB7XG4gICAgICB2YWxpZGF0ZTogdmFsaWRhdGVcbiAgICB9KTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgdW5yZWdpc3RlckZpZWxkKG5hbWUpO1xuICAgIH07XG4gIH0sIFtyZWdpc3RlckZpZWxkLCB1bnJlZ2lzdGVyRmllbGQsIG5hbWUsIHZhbGlkYXRlXSk7XG4gIHZhciBmaWVsZCA9IGZvcm1pay5nZXRGaWVsZFByb3BzKF9leHRlbmRzKHtcbiAgICBuYW1lOiBuYW1lXG4gIH0sIHByb3BzKSk7XG4gIHZhciBtZXRhID0gZm9ybWlrLmdldEZpZWxkTWV0YShuYW1lKTtcbiAgdmFyIGxlZ2FjeUJhZyA9IHtcbiAgICBmaWVsZDogZmllbGQsXG4gICAgZm9ybTogZm9ybWlrXG4gIH07XG5cbiAgaWYgKHJlbmRlcikge1xuICAgIHJldHVybiByZW5kZXIoX2V4dGVuZHMoe30sIGxlZ2FjeUJhZywge1xuICAgICAgbWV0YTogbWV0YVxuICAgIH0pKTtcbiAgfVxuXG4gIGlmIChpc0Z1bmN0aW9uKGNoaWxkcmVuKSkge1xuICAgIHJldHVybiBjaGlsZHJlbihfZXh0ZW5kcyh7fSwgbGVnYWN5QmFnLCB7XG4gICAgICBtZXRhOiBtZXRhXG4gICAgfSkpO1xuICB9XG5cbiAgaWYgKGNvbXBvbmVudCkge1xuICAgIC8vIFRoaXMgYmVoYXZpb3IgaXMgYmFja3dhcmRzIGNvbXBhdCB3aXRoIGVhcmxpZXIgRm9ybWlrIDAuOSB0byAxLnhcbiAgICBpZiAodHlwZW9mIGNvbXBvbmVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHZhciBpbm5lclJlZiA9IHByb3BzLmlubmVyUmVmLFxuICAgICAgICAgIHJlc3QgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShwcm9wcywgW1wiaW5uZXJSZWZcIl0pO1xuXG4gICAgICByZXR1cm4gY3JlYXRlRWxlbWVudChjb21wb25lbnQsIF9leHRlbmRzKHtcbiAgICAgICAgcmVmOiBpbm5lclJlZlxuICAgICAgfSwgZmllbGQsIHJlc3QpLCBjaGlsZHJlbik7XG4gICAgfSAvLyBXZSBkb24ndCBwYXNzIGBtZXRhYCBmb3IgYmFja3dhcmRzIGNvbXBhdFxuXG5cbiAgICByZXR1cm4gY3JlYXRlRWxlbWVudChjb21wb25lbnQsIF9leHRlbmRzKHtcbiAgICAgIGZpZWxkOiBmaWVsZCxcbiAgICAgIGZvcm06IGZvcm1pa1xuICAgIH0sIHByb3BzKSwgY2hpbGRyZW4pO1xuICB9IC8vIGRlZmF1bHQgdG8gaW5wdXQgaGVyZSBzbyB3ZSBjYW4gY2hlY2sgZm9yIGJvdGggYGFzYCBhbmQgYGNoaWxkcmVuYCBhYm92ZVxuXG5cbiAgdmFyIGFzRWxlbWVudCA9IGlzIHx8ICdpbnB1dCc7XG5cbiAgaWYgKHR5cGVvZiBhc0VsZW1lbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgdmFyIF9pbm5lclJlZiA9IHByb3BzLmlubmVyUmVmLFxuICAgICAgICBfcmVzdCA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKHByb3BzLCBbXCJpbm5lclJlZlwiXSk7XG5cbiAgICByZXR1cm4gY3JlYXRlRWxlbWVudChhc0VsZW1lbnQsIF9leHRlbmRzKHtcbiAgICAgIHJlZjogX2lubmVyUmVmXG4gICAgfSwgZmllbGQsIF9yZXN0KSwgY2hpbGRyZW4pO1xuICB9XG5cbiAgcmV0dXJuIGNyZWF0ZUVsZW1lbnQoYXNFbGVtZW50LCBfZXh0ZW5kcyh7fSwgZmllbGQsIHByb3BzKSwgY2hpbGRyZW4pO1xufVxuXG52YXIgRm9ybSA9IC8qI19fUFVSRV9fKi9mb3J3YXJkUmVmKGZ1bmN0aW9uIChwcm9wcywgcmVmKSB7XG4gIC8vIGlPUyBuZWVkcyBhbiBcImFjdGlvblwiIGF0dHJpYnV0ZSBmb3IgbmljZSBpbnB1dDogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzM5NDg1MTYyLzQwNjcyNVxuICAvLyBXZSBkZWZhdWx0IHRoZSBhY3Rpb24gdG8gXCIjXCIgaW4gY2FzZSB0aGUgcHJldmVudERlZmF1bHQgZmFpbHMgKGp1c3QgdXBkYXRlcyB0aGUgVVJMIGhhc2gpXG4gIHZhciBhY3Rpb24gPSBwcm9wcy5hY3Rpb24sXG4gICAgICByZXN0ID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UocHJvcHMsIFtcImFjdGlvblwiXSk7XG5cbiAgdmFyIF9hY3Rpb24gPSBhY3Rpb24gIT0gbnVsbCA/IGFjdGlvbiA6ICcjJztcblxuICB2YXIgX3VzZUZvcm1pa0NvbnRleHQgPSB1c2VGb3JtaWtDb250ZXh0KCksXG4gICAgICBoYW5kbGVSZXNldCA9IF91c2VGb3JtaWtDb250ZXh0LmhhbmRsZVJlc2V0LFxuICAgICAgaGFuZGxlU3VibWl0ID0gX3VzZUZvcm1pa0NvbnRleHQuaGFuZGxlU3VibWl0O1xuXG4gIHJldHVybiBjcmVhdGVFbGVtZW50KFwiZm9ybVwiLCBPYmplY3QuYXNzaWduKHtcbiAgICBvblN1Ym1pdDogaGFuZGxlU3VibWl0LFxuICAgIHJlZjogcmVmLFxuICAgIG9uUmVzZXQ6IGhhbmRsZVJlc2V0LFxuICAgIGFjdGlvbjogX2FjdGlvblxuICB9LCByZXN0KSk7XG59KTtcbkZvcm0uZGlzcGxheU5hbWUgPSAnRm9ybSc7XG5cbi8qKlxyXG4gKiBBIHB1YmxpYyBoaWdoZXItb3JkZXIgY29tcG9uZW50IHRvIGFjY2VzcyB0aGUgaW1wZXJhdGl2ZSBBUElcclxuICovXG5cbmZ1bmN0aW9uIHdpdGhGb3JtaWsoX3JlZikge1xuICB2YXIgX3JlZiRtYXBQcm9wc1RvVmFsdWVzID0gX3JlZi5tYXBQcm9wc1RvVmFsdWVzLFxuICAgICAgbWFwUHJvcHNUb1ZhbHVlcyA9IF9yZWYkbWFwUHJvcHNUb1ZhbHVlcyA9PT0gdm9pZCAwID8gZnVuY3Rpb24gKHZhbmlsbGFQcm9wcykge1xuICAgIHZhciB2YWwgPSB7fTtcblxuICAgIGZvciAodmFyIGsgaW4gdmFuaWxsYVByb3BzKSB7XG4gICAgICBpZiAodmFuaWxsYVByb3BzLmhhc093blByb3BlcnR5KGspICYmIHR5cGVvZiB2YW5pbGxhUHJvcHNba10gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgLy8gQHRvZG8gVHlwZVNjcmlwdCBmaXhcbiAgICAgICAgdmFsW2tdID0gdmFuaWxsYVByb3BzW2tdO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB2YWw7XG4gIH0gOiBfcmVmJG1hcFByb3BzVG9WYWx1ZXMsXG4gICAgICBjb25maWcgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShfcmVmLCBbXCJtYXBQcm9wc1RvVmFsdWVzXCJdKTtcblxuICByZXR1cm4gZnVuY3Rpb24gY3JlYXRlRm9ybWlrKENvbXBvbmVudCQxKSB7XG4gICAgdmFyIGNvbXBvbmVudERpc3BsYXlOYW1lID0gQ29tcG9uZW50JDEuZGlzcGxheU5hbWUgfHwgQ29tcG9uZW50JDEubmFtZSB8fCBDb21wb25lbnQkMS5jb25zdHJ1Y3RvciAmJiBDb21wb25lbnQkMS5jb25zdHJ1Y3Rvci5uYW1lIHx8ICdDb21wb25lbnQnO1xuICAgIC8qKlxyXG4gICAgICogV2UgbmVlZCB0byB1c2UgY2xvc3VyZXMgaGVyZSBmb3IgdG8gcHJvdmlkZSB0aGUgd3JhcHBlZCBjb21wb25lbnQncyBwcm9wcyB0b1xyXG4gICAgICogdGhlIHJlc3BlY3RpdmUgd2l0aEZvcm1payBjb25maWcgbWV0aG9kcy5cclxuICAgICAqL1xuXG4gICAgdmFyIEMgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgICAgIF9pbmhlcml0c0xvb3NlKEMsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gICAgICBmdW5jdGlvbiBDKCkge1xuICAgICAgICB2YXIgX3RoaXM7XG5cbiAgICAgICAgX3RoaXMgPSBfUmVhY3QkQ29tcG9uZW50LmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpcztcblxuICAgICAgICBfdGhpcy52YWxpZGF0ZSA9IGZ1bmN0aW9uICh2YWx1ZXMpIHtcbiAgICAgICAgICByZXR1cm4gY29uZmlnLnZhbGlkYXRlKHZhbHVlcywgX3RoaXMucHJvcHMpO1xuICAgICAgICB9O1xuXG4gICAgICAgIF90aGlzLnZhbGlkYXRpb25TY2hlbWEgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIGlzRnVuY3Rpb24oY29uZmlnLnZhbGlkYXRpb25TY2hlbWEpID8gY29uZmlnLnZhbGlkYXRpb25TY2hlbWEoX3RoaXMucHJvcHMpIDogY29uZmlnLnZhbGlkYXRpb25TY2hlbWE7XG4gICAgICAgIH07XG5cbiAgICAgICAgX3RoaXMuaGFuZGxlU3VibWl0ID0gZnVuY3Rpb24gKHZhbHVlcywgYWN0aW9ucykge1xuICAgICAgICAgIHJldHVybiBjb25maWcuaGFuZGxlU3VibWl0KHZhbHVlcywgX2V4dGVuZHMoe30sIGFjdGlvbnMsIHtcbiAgICAgICAgICAgIHByb3BzOiBfdGhpcy5wcm9wc1xuICAgICAgICAgIH0pKTtcbiAgICAgICAgfTtcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSnVzdCBhdm9pZGluZyBhIHJlbmRlciBjYWxsYmFjayBmb3IgcGVyZiBoZXJlXHJcbiAgICAgICAgICovXG5cblxuICAgICAgICBfdGhpcy5yZW5kZXJGb3JtQ29tcG9uZW50ID0gZnVuY3Rpb24gKGZvcm1pa1Byb3BzKSB7XG4gICAgICAgICAgcmV0dXJuIGNyZWF0ZUVsZW1lbnQoQ29tcG9uZW50JDEsIE9iamVjdC5hc3NpZ24oe30sIF90aGlzLnByb3BzLCBmb3JtaWtQcm9wcykpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICAgIH1cblxuICAgICAgdmFyIF9wcm90byA9IEMucHJvdG90eXBlO1xuXG4gICAgICBfcHJvdG8ucmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICB2YXIgX3RoaXMkcHJvcHMgPSB0aGlzLnByb3BzLFxuICAgICAgICAgICAgcHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShfdGhpcyRwcm9wcywgW1wiY2hpbGRyZW5cIl0pO1xuXG4gICAgICAgIHJldHVybiBjcmVhdGVFbGVtZW50KEZvcm1paywgT2JqZWN0LmFzc2lnbih7fSwgcHJvcHMsIGNvbmZpZywge1xuICAgICAgICAgIHZhbGlkYXRlOiBjb25maWcudmFsaWRhdGUgJiYgdGhpcy52YWxpZGF0ZSxcbiAgICAgICAgICB2YWxpZGF0aW9uU2NoZW1hOiBjb25maWcudmFsaWRhdGlvblNjaGVtYSAmJiB0aGlzLnZhbGlkYXRpb25TY2hlbWEsXG4gICAgICAgICAgaW5pdGlhbFZhbHVlczogbWFwUHJvcHNUb1ZhbHVlcyh0aGlzLnByb3BzKSxcbiAgICAgICAgICBpbml0aWFsU3RhdHVzOiBjb25maWcubWFwUHJvcHNUb1N0YXR1cyAmJiBjb25maWcubWFwUHJvcHNUb1N0YXR1cyh0aGlzLnByb3BzKSxcbiAgICAgICAgICBpbml0aWFsRXJyb3JzOiBjb25maWcubWFwUHJvcHNUb0Vycm9ycyAmJiBjb25maWcubWFwUHJvcHNUb0Vycm9ycyh0aGlzLnByb3BzKSxcbiAgICAgICAgICBpbml0aWFsVG91Y2hlZDogY29uZmlnLm1hcFByb3BzVG9Ub3VjaGVkICYmIGNvbmZpZy5tYXBQcm9wc1RvVG91Y2hlZCh0aGlzLnByb3BzKSxcbiAgICAgICAgICBvblN1Ym1pdDogdGhpcy5oYW5kbGVTdWJtaXQsXG4gICAgICAgICAgY2hpbGRyZW46IHRoaXMucmVuZGVyRm9ybUNvbXBvbmVudFxuICAgICAgICB9KSk7XG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gQztcbiAgICB9KENvbXBvbmVudCk7XG5cbiAgICBDLmRpc3BsYXlOYW1lID0gXCJXaXRoRm9ybWlrKFwiICsgY29tcG9uZW50RGlzcGxheU5hbWUgKyBcIilcIjtcbiAgICByZXR1cm4gaG9pc3ROb25SZWFjdFN0YXRpY3MoQywgQ29tcG9uZW50JDEgLy8gY2FzdCB0eXBlIHRvIENvbXBvbmVudENsYXNzIChldmVuIGlmIFNGQylcbiAgICApO1xuICB9O1xufVxuXG4vKipcclxuICogQ29ubmVjdCBhbnkgY29tcG9uZW50IHRvIEZvcm1payBjb250ZXh0LCBhbmQgaW5qZWN0IGFzIGEgcHJvcCBjYWxsZWQgYGZvcm1pa2A7XHJcbiAqIEBwYXJhbSBDb21wIFJlYWN0IENvbXBvbmVudFxyXG4gKi9cblxuZnVuY3Rpb24gY29ubmVjdChDb21wKSB7XG4gIHZhciBDID0gZnVuY3Rpb24gQyhwcm9wcykge1xuICAgIHJldHVybiBjcmVhdGVFbGVtZW50KEZvcm1pa0NvbnN1bWVyLCBudWxsLCBmdW5jdGlvbiAoZm9ybWlrKSB7XG4gICAgICAhISFmb3JtaWsgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyBpbnZhcmlhbnQoZmFsc2UsIFwiRm9ybWlrIGNvbnRleHQgaXMgdW5kZWZpbmVkLCBwbGVhc2UgdmVyaWZ5IHlvdSBhcmUgcmVuZGVyaW5nIDxGb3JtPiwgPEZpZWxkPiwgPEZhc3RGaWVsZD4sIDxGaWVsZEFycmF5Piwgb3IgeW91ciBjdXN0b20gY29udGV4dC11c2luZyBjb21wb25lbnQgYXMgYSBjaGlsZCBvZiBhIDxGb3JtaWs+IGNvbXBvbmVudC4gQ29tcG9uZW50IG5hbWU6IFwiICsgQ29tcC5uYW1lKSA6IGludmFyaWFudChmYWxzZSkgOiB2b2lkIDA7XG4gICAgICByZXR1cm4gY3JlYXRlRWxlbWVudChDb21wLCBPYmplY3QuYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICBmb3JtaWs6IGZvcm1pa1xuICAgICAgfSkpO1xuICAgIH0pO1xuICB9O1xuXG4gIHZhciBjb21wb25lbnREaXNwbGF5TmFtZSA9IENvbXAuZGlzcGxheU5hbWUgfHwgQ29tcC5uYW1lIHx8IENvbXAuY29uc3RydWN0b3IgJiYgQ29tcC5jb25zdHJ1Y3Rvci5uYW1lIHx8ICdDb21wb25lbnQnOyAvLyBBc3NpZ24gQ29tcCB0byBDLldyYXBwZWRDb21wb25lbnQgc28gd2UgY2FuIGFjY2VzcyB0aGUgaW5uZXIgY29tcG9uZW50IGluIHRlc3RzXG4gIC8vIEZvciBleGFtcGxlLCA8RmllbGQuV3JhcHBlZENvbXBvbmVudCAvPiBnZXRzIHVzIDxGaWVsZElubmVyLz5cblxuICBDLldyYXBwZWRDb21wb25lbnQgPSBDb21wO1xuICBDLmRpc3BsYXlOYW1lID0gXCJGb3JtaWtDb25uZWN0KFwiICsgY29tcG9uZW50RGlzcGxheU5hbWUgKyBcIilcIjtcbiAgcmV0dXJuIGhvaXN0Tm9uUmVhY3RTdGF0aWNzKEMsIENvbXAgLy8gY2FzdCB0eXBlIHRvIENvbXBvbmVudENsYXNzIChldmVuIGlmIFNGQylcbiAgKTtcbn1cblxuLyoqXHJcbiAqIFNvbWUgYXJyYXkgaGVscGVycyFcclxuICovXG5cbnZhciBtb3ZlID0gZnVuY3Rpb24gbW92ZShhcnJheSwgZnJvbSwgdG8pIHtcbiAgdmFyIGNvcHkgPSBjb3B5QXJyYXlMaWtlKGFycmF5KTtcbiAgdmFyIHZhbHVlID0gY29weVtmcm9tXTtcbiAgY29weS5zcGxpY2UoZnJvbSwgMSk7XG4gIGNvcHkuc3BsaWNlKHRvLCAwLCB2YWx1ZSk7XG4gIHJldHVybiBjb3B5O1xufTtcbnZhciBzd2FwID0gZnVuY3Rpb24gc3dhcChhcnJheUxpa2UsIGluZGV4QSwgaW5kZXhCKSB7XG4gIHZhciBjb3B5ID0gY29weUFycmF5TGlrZShhcnJheUxpa2UpO1xuICB2YXIgYSA9IGNvcHlbaW5kZXhBXTtcbiAgY29weVtpbmRleEFdID0gY29weVtpbmRleEJdO1xuICBjb3B5W2luZGV4Ql0gPSBhO1xuICByZXR1cm4gY29weTtcbn07XG52YXIgaW5zZXJ0ID0gZnVuY3Rpb24gaW5zZXJ0KGFycmF5TGlrZSwgaW5kZXgsIHZhbHVlKSB7XG4gIHZhciBjb3B5ID0gY29weUFycmF5TGlrZShhcnJheUxpa2UpO1xuICBjb3B5LnNwbGljZShpbmRleCwgMCwgdmFsdWUpO1xuICByZXR1cm4gY29weTtcbn07XG52YXIgcmVwbGFjZSA9IGZ1bmN0aW9uIHJlcGxhY2UoYXJyYXlMaWtlLCBpbmRleCwgdmFsdWUpIHtcbiAgdmFyIGNvcHkgPSBjb3B5QXJyYXlMaWtlKGFycmF5TGlrZSk7XG4gIGNvcHlbaW5kZXhdID0gdmFsdWU7XG4gIHJldHVybiBjb3B5O1xufTtcblxudmFyIGNvcHlBcnJheUxpa2UgPSBmdW5jdGlvbiBjb3B5QXJyYXlMaWtlKGFycmF5TGlrZSkge1xuICBpZiAoIWFycmF5TGlrZSkge1xuICAgIHJldHVybiBbXTtcbiAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGFycmF5TGlrZSkpIHtcbiAgICByZXR1cm4gW10uY29uY2F0KGFycmF5TGlrZSk7XG4gIH0gZWxzZSB7XG4gICAgdmFyIG1heEluZGV4ID0gT2JqZWN0LmtleXMoYXJyYXlMaWtlKS5tYXAoZnVuY3Rpb24gKGtleSkge1xuICAgICAgcmV0dXJuIHBhcnNlSW50KGtleSk7XG4gICAgfSkucmVkdWNlKGZ1bmN0aW9uIChtYXgsIGVsKSB7XG4gICAgICByZXR1cm4gZWwgPiBtYXggPyBlbCA6IG1heDtcbiAgICB9LCAwKTtcbiAgICByZXR1cm4gQXJyYXkuZnJvbShfZXh0ZW5kcyh7fSwgYXJyYXlMaWtlLCB7XG4gICAgICBsZW5ndGg6IG1heEluZGV4ICsgMVxuICAgIH0pKTtcbiAgfVxufTtcblxudmFyIEZpZWxkQXJyYXlJbm5lciA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHNMb29zZShGaWVsZEFycmF5SW5uZXIsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIGZ1bmN0aW9uIEZpZWxkQXJyYXlJbm5lcihwcm9wcykge1xuICAgIHZhciBfdGhpcztcblxuICAgIF90aGlzID0gX1JlYWN0JENvbXBvbmVudC5jYWxsKHRoaXMsIHByb3BzKSB8fCB0aGlzO1xuXG4gICAgX3RoaXMudXBkYXRlQXJyYXlGaWVsZCA9IGZ1bmN0aW9uIChmbiwgYWx0ZXJUb3VjaGVkLCBhbHRlckVycm9ycykge1xuICAgICAgdmFyIF90aGlzJHByb3BzID0gX3RoaXMucHJvcHMsXG4gICAgICAgICAgbmFtZSA9IF90aGlzJHByb3BzLm5hbWUsXG4gICAgICAgICAgc2V0Rm9ybWlrU3RhdGUgPSBfdGhpcyRwcm9wcy5mb3JtaWsuc2V0Rm9ybWlrU3RhdGU7XG4gICAgICBzZXRGb3JtaWtTdGF0ZShmdW5jdGlvbiAocHJldlN0YXRlKSB7XG4gICAgICAgIHZhciB1cGRhdGVFcnJvcnMgPSB0eXBlb2YgYWx0ZXJFcnJvcnMgPT09ICdmdW5jdGlvbicgPyBhbHRlckVycm9ycyA6IGZuO1xuICAgICAgICB2YXIgdXBkYXRlVG91Y2hlZCA9IHR5cGVvZiBhbHRlclRvdWNoZWQgPT09ICdmdW5jdGlvbicgPyBhbHRlclRvdWNoZWQgOiBmbjsgLy8gdmFsdWVzIGZuIHNob3VsZCBiZSBleGVjdXRlZCBiZWZvcmUgdXBkYXRlRXJyb3JzIGFuZCB1cGRhdGVUb3VjaGVkLFxuICAgICAgICAvLyBvdGhlcndpc2UgaXQgY2F1c2VzIGFuIGVycm9yIHdpdGggdW5zaGlmdC5cblxuICAgICAgICB2YXIgdmFsdWVzID0gc2V0SW4ocHJldlN0YXRlLnZhbHVlcywgbmFtZSwgZm4oZ2V0SW4ocHJldlN0YXRlLnZhbHVlcywgbmFtZSkpKTtcbiAgICAgICAgdmFyIGZpZWxkRXJyb3IgPSBhbHRlckVycm9ycyA/IHVwZGF0ZUVycm9ycyhnZXRJbihwcmV2U3RhdGUuZXJyb3JzLCBuYW1lKSkgOiB1bmRlZmluZWQ7XG4gICAgICAgIHZhciBmaWVsZFRvdWNoZWQgPSBhbHRlclRvdWNoZWQgPyB1cGRhdGVUb3VjaGVkKGdldEluKHByZXZTdGF0ZS50b3VjaGVkLCBuYW1lKSkgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgaWYgKGlzRW1wdHlBcnJheShmaWVsZEVycm9yKSkge1xuICAgICAgICAgIGZpZWxkRXJyb3IgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNFbXB0eUFycmF5KGZpZWxkVG91Y2hlZCkpIHtcbiAgICAgICAgICBmaWVsZFRvdWNoZWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gX2V4dGVuZHMoe30sIHByZXZTdGF0ZSwge1xuICAgICAgICAgIHZhbHVlczogdmFsdWVzLFxuICAgICAgICAgIGVycm9yczogYWx0ZXJFcnJvcnMgPyBzZXRJbihwcmV2U3RhdGUuZXJyb3JzLCBuYW1lLCBmaWVsZEVycm9yKSA6IHByZXZTdGF0ZS5lcnJvcnMsXG4gICAgICAgICAgdG91Y2hlZDogYWx0ZXJUb3VjaGVkID8gc2V0SW4ocHJldlN0YXRlLnRvdWNoZWQsIG5hbWUsIGZpZWxkVG91Y2hlZCkgOiBwcmV2U3RhdGUudG91Y2hlZFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBfdGhpcy5wdXNoID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICByZXR1cm4gX3RoaXMudXBkYXRlQXJyYXlGaWVsZChmdW5jdGlvbiAoYXJyYXlMaWtlKSB7XG4gICAgICAgIHJldHVybiBbXS5jb25jYXQoY29weUFycmF5TGlrZShhcnJheUxpa2UpLCBbY2xvbmVEZWVwKHZhbHVlKV0pO1xuICAgICAgfSwgZmFsc2UsIGZhbHNlKTtcbiAgICB9O1xuXG4gICAgX3RoaXMuaGFuZGxlUHVzaCA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIF90aGlzLnB1c2godmFsdWUpO1xuICAgICAgfTtcbiAgICB9O1xuXG4gICAgX3RoaXMuc3dhcCA9IGZ1bmN0aW9uIChpbmRleEEsIGluZGV4Qikge1xuICAgICAgcmV0dXJuIF90aGlzLnVwZGF0ZUFycmF5RmllbGQoZnVuY3Rpb24gKGFycmF5KSB7XG4gICAgICAgIHJldHVybiBzd2FwKGFycmF5LCBpbmRleEEsIGluZGV4Qik7XG4gICAgICB9LCB0cnVlLCB0cnVlKTtcbiAgICB9O1xuXG4gICAgX3RoaXMuaGFuZGxlU3dhcCA9IGZ1bmN0aW9uIChpbmRleEEsIGluZGV4Qikge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIF90aGlzLnN3YXAoaW5kZXhBLCBpbmRleEIpO1xuICAgICAgfTtcbiAgICB9O1xuXG4gICAgX3RoaXMubW92ZSA9IGZ1bmN0aW9uIChmcm9tLCB0bykge1xuICAgICAgcmV0dXJuIF90aGlzLnVwZGF0ZUFycmF5RmllbGQoZnVuY3Rpb24gKGFycmF5KSB7XG4gICAgICAgIHJldHVybiBtb3ZlKGFycmF5LCBmcm9tLCB0byk7XG4gICAgICB9LCB0cnVlLCB0cnVlKTtcbiAgICB9O1xuXG4gICAgX3RoaXMuaGFuZGxlTW92ZSA9IGZ1bmN0aW9uIChmcm9tLCB0bykge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIF90aGlzLm1vdmUoZnJvbSwgdG8pO1xuICAgICAgfTtcbiAgICB9O1xuXG4gICAgX3RoaXMuaW5zZXJ0ID0gZnVuY3Rpb24gKGluZGV4LCB2YWx1ZSkge1xuICAgICAgcmV0dXJuIF90aGlzLnVwZGF0ZUFycmF5RmllbGQoZnVuY3Rpb24gKGFycmF5KSB7XG4gICAgICAgIHJldHVybiBpbnNlcnQoYXJyYXksIGluZGV4LCB2YWx1ZSk7XG4gICAgICB9LCBmdW5jdGlvbiAoYXJyYXkpIHtcbiAgICAgICAgcmV0dXJuIGluc2VydChhcnJheSwgaW5kZXgsIG51bGwpO1xuICAgICAgfSwgZnVuY3Rpb24gKGFycmF5KSB7XG4gICAgICAgIHJldHVybiBpbnNlcnQoYXJyYXksIGluZGV4LCBudWxsKTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBfdGhpcy5oYW5kbGVJbnNlcnQgPSBmdW5jdGlvbiAoaW5kZXgsIHZhbHVlKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gX3RoaXMuaW5zZXJ0KGluZGV4LCB2YWx1ZSk7XG4gICAgICB9O1xuICAgIH07XG5cbiAgICBfdGhpcy5yZXBsYWNlID0gZnVuY3Rpb24gKGluZGV4LCB2YWx1ZSkge1xuICAgICAgcmV0dXJuIF90aGlzLnVwZGF0ZUFycmF5RmllbGQoZnVuY3Rpb24gKGFycmF5KSB7XG4gICAgICAgIHJldHVybiByZXBsYWNlKGFycmF5LCBpbmRleCwgdmFsdWUpO1xuICAgICAgfSwgZmFsc2UsIGZhbHNlKTtcbiAgICB9O1xuXG4gICAgX3RoaXMuaGFuZGxlUmVwbGFjZSA9IGZ1bmN0aW9uIChpbmRleCwgdmFsdWUpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBfdGhpcy5yZXBsYWNlKGluZGV4LCB2YWx1ZSk7XG4gICAgICB9O1xuICAgIH07XG5cbiAgICBfdGhpcy51bnNoaWZ0ID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gLTE7XG5cbiAgICAgIF90aGlzLnVwZGF0ZUFycmF5RmllbGQoZnVuY3Rpb24gKGFycmF5KSB7XG4gICAgICAgIHZhciBhcnIgPSBhcnJheSA/IFt2YWx1ZV0uY29uY2F0KGFycmF5KSA6IFt2YWx1ZV07XG5cbiAgICAgICAgaWYgKGxlbmd0aCA8IDApIHtcbiAgICAgICAgICBsZW5ndGggPSBhcnIubGVuZ3RoO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFycjtcbiAgICAgIH0sIGZ1bmN0aW9uIChhcnJheSkge1xuICAgICAgICB2YXIgYXJyID0gYXJyYXkgPyBbbnVsbF0uY29uY2F0KGFycmF5KSA6IFtudWxsXTtcblxuICAgICAgICBpZiAobGVuZ3RoIDwgMCkge1xuICAgICAgICAgIGxlbmd0aCA9IGFyci5sZW5ndGg7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYXJyO1xuICAgICAgfSwgZnVuY3Rpb24gKGFycmF5KSB7XG4gICAgICAgIHZhciBhcnIgPSBhcnJheSA/IFtudWxsXS5jb25jYXQoYXJyYXkpIDogW251bGxdO1xuXG4gICAgICAgIGlmIChsZW5ndGggPCAwKSB7XG4gICAgICAgICAgbGVuZ3RoID0gYXJyLmxlbmd0aDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBhcnI7XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIGxlbmd0aDtcbiAgICB9O1xuXG4gICAgX3RoaXMuaGFuZGxlVW5zaGlmdCA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIF90aGlzLnVuc2hpZnQodmFsdWUpO1xuICAgICAgfTtcbiAgICB9O1xuXG4gICAgX3RoaXMuaGFuZGxlUmVtb3ZlID0gZnVuY3Rpb24gKGluZGV4KSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gX3RoaXMucmVtb3ZlKGluZGV4KTtcbiAgICAgIH07XG4gICAgfTtcblxuICAgIF90aGlzLmhhbmRsZVBvcCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBfdGhpcy5wb3AoKTtcbiAgICAgIH07XG4gICAgfTsgLy8gV2UgbmVlZCBUeXBlU2NyaXB0IGdlbmVyaWNzIG9uIHRoZXNlLCBzbyB3ZSdsbCBiaW5kIHRoZW0gaW4gdGhlIGNvbnN0cnVjdG9yXG4gICAgLy8gQHRvZG8gRml4IFRTIDMuMi4xXG5cblxuICAgIF90aGlzLnJlbW92ZSA9IF90aGlzLnJlbW92ZS5iaW5kKF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpKTtcbiAgICBfdGhpcy5wb3AgPSBfdGhpcy5wb3AuYmluZChfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSk7XG4gICAgcmV0dXJuIF90aGlzO1xuICB9XG5cbiAgdmFyIF9wcm90byA9IEZpZWxkQXJyYXlJbm5lci5wcm90b3R5cGU7XG5cbiAgX3Byb3RvLmNvbXBvbmVudERpZFVwZGF0ZSA9IGZ1bmN0aW9uIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBpZiAodGhpcy5wcm9wcy52YWxpZGF0ZU9uQ2hhbmdlICYmIHRoaXMucHJvcHMuZm9ybWlrLnZhbGlkYXRlT25DaGFuZ2UgJiYgIWlzRXF1YWwoZ2V0SW4ocHJldlByb3BzLmZvcm1pay52YWx1ZXMsIHByZXZQcm9wcy5uYW1lKSwgZ2V0SW4odGhpcy5wcm9wcy5mb3JtaWsudmFsdWVzLCB0aGlzLnByb3BzLm5hbWUpKSkge1xuICAgICAgdGhpcy5wcm9wcy5mb3JtaWsudmFsaWRhdGVGb3JtKHRoaXMucHJvcHMuZm9ybWlrLnZhbHVlcyk7XG4gICAgfVxuICB9O1xuXG4gIF9wcm90by5yZW1vdmUgPSBmdW5jdGlvbiByZW1vdmUoaW5kZXgpIHtcbiAgICAvLyBXZSBuZWVkIHRvIG1ha2Ugc3VyZSB3ZSBhbHNvIHJlbW92ZSByZWxldmFudCBwaWVjZXMgb2YgYHRvdWNoZWRgIGFuZCBgZXJyb3JzYFxuICAgIHZhciByZXN1bHQ7XG4gICAgdGhpcy51cGRhdGVBcnJheUZpZWxkKCAvLyBzbyB0aGlzIGdldHMgY2FsbCAzIHRpbWVzXG4gICAgZnVuY3Rpb24gKGFycmF5KSB7XG4gICAgICB2YXIgY29weSA9IGFycmF5ID8gY29weUFycmF5TGlrZShhcnJheSkgOiBbXTtcblxuICAgICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgICAgcmVzdWx0ID0gY29weVtpbmRleF07XG4gICAgICB9XG5cbiAgICAgIGlmIChpc0Z1bmN0aW9uKGNvcHkuc3BsaWNlKSkge1xuICAgICAgICBjb3B5LnNwbGljZShpbmRleCwgMSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjb3B5O1xuICAgIH0sIHRydWUsIHRydWUpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH07XG5cbiAgX3Byb3RvLnBvcCA9IGZ1bmN0aW9uIHBvcCgpIHtcbiAgICAvLyBSZW1vdmUgcmVsZXZhbnQgcGllY2VzIG9mIGB0b3VjaGVkYCBhbmQgYGVycm9yc2AgdG9vIVxuICAgIHZhciByZXN1bHQ7XG4gICAgdGhpcy51cGRhdGVBcnJheUZpZWxkKCAvLyBzbyB0aGlzIGdldHMgY2FsbCAzIHRpbWVzXG4gICAgZnVuY3Rpb24gKGFycmF5KSB7XG4gICAgICB2YXIgdG1wID0gYXJyYXk7XG5cbiAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgIHJlc3VsdCA9IHRtcCAmJiB0bXAucG9wICYmIHRtcC5wb3AoKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRtcDtcbiAgICB9LCB0cnVlLCB0cnVlKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9O1xuXG4gIF9wcm90by5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgdmFyIGFycmF5SGVscGVycyA9IHtcbiAgICAgIHB1c2g6IHRoaXMucHVzaCxcbiAgICAgIHBvcDogdGhpcy5wb3AsXG4gICAgICBzd2FwOiB0aGlzLnN3YXAsXG4gICAgICBtb3ZlOiB0aGlzLm1vdmUsXG4gICAgICBpbnNlcnQ6IHRoaXMuaW5zZXJ0LFxuICAgICAgcmVwbGFjZTogdGhpcy5yZXBsYWNlLFxuICAgICAgdW5zaGlmdDogdGhpcy51bnNoaWZ0LFxuICAgICAgcmVtb3ZlOiB0aGlzLnJlbW92ZSxcbiAgICAgIGhhbmRsZVB1c2g6IHRoaXMuaGFuZGxlUHVzaCxcbiAgICAgIGhhbmRsZVBvcDogdGhpcy5oYW5kbGVQb3AsXG4gICAgICBoYW5kbGVTd2FwOiB0aGlzLmhhbmRsZVN3YXAsXG4gICAgICBoYW5kbGVNb3ZlOiB0aGlzLmhhbmRsZU1vdmUsXG4gICAgICBoYW5kbGVJbnNlcnQ6IHRoaXMuaGFuZGxlSW5zZXJ0LFxuICAgICAgaGFuZGxlUmVwbGFjZTogdGhpcy5oYW5kbGVSZXBsYWNlLFxuICAgICAgaGFuZGxlVW5zaGlmdDogdGhpcy5oYW5kbGVVbnNoaWZ0LFxuICAgICAgaGFuZGxlUmVtb3ZlOiB0aGlzLmhhbmRsZVJlbW92ZVxuICAgIH07XG5cbiAgICB2YXIgX3RoaXMkcHJvcHMyID0gdGhpcy5wcm9wcyxcbiAgICAgICAgY29tcG9uZW50ID0gX3RoaXMkcHJvcHMyLmNvbXBvbmVudCxcbiAgICAgICAgcmVuZGVyID0gX3RoaXMkcHJvcHMyLnJlbmRlcixcbiAgICAgICAgY2hpbGRyZW4gPSBfdGhpcyRwcm9wczIuY2hpbGRyZW4sXG4gICAgICAgIG5hbWUgPSBfdGhpcyRwcm9wczIubmFtZSxcbiAgICAgICAgX3RoaXMkcHJvcHMyJGZvcm1payA9IF90aGlzJHByb3BzMi5mb3JtaWssXG4gICAgICAgIHJlc3RPZkZvcm1payA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKF90aGlzJHByb3BzMiRmb3JtaWssIFtcInZhbGlkYXRlXCIsIFwidmFsaWRhdGlvblNjaGVtYVwiXSk7XG5cbiAgICB2YXIgcHJvcHMgPSBfZXh0ZW5kcyh7fSwgYXJyYXlIZWxwZXJzLCB7XG4gICAgICBmb3JtOiByZXN0T2ZGb3JtaWssXG4gICAgICBuYW1lOiBuYW1lXG4gICAgfSk7XG5cbiAgICByZXR1cm4gY29tcG9uZW50ID8gY3JlYXRlRWxlbWVudChjb21wb25lbnQsIHByb3BzKSA6IHJlbmRlciA/IHJlbmRlcihwcm9wcykgOiBjaGlsZHJlbiAvLyBjaGlsZHJlbiBjb21lIGxhc3QsIGFsd2F5cyBjYWxsZWRcbiAgICA/IHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJyA/IGNoaWxkcmVuKHByb3BzKSA6ICFpc0VtcHR5Q2hpbGRyZW4oY2hpbGRyZW4pID8gQ2hpbGRyZW4ub25seShjaGlsZHJlbikgOiBudWxsIDogbnVsbDtcbiAgfTtcblxuICByZXR1cm4gRmllbGRBcnJheUlubmVyO1xufShDb21wb25lbnQpO1xuXG5GaWVsZEFycmF5SW5uZXIuZGVmYXVsdFByb3BzID0ge1xuICB2YWxpZGF0ZU9uQ2hhbmdlOiB0cnVlXG59O1xudmFyIEZpZWxkQXJyYXkgPSAvKiNfX1BVUkVfXyovY29ubmVjdChGaWVsZEFycmF5SW5uZXIpO1xuXG52YXIgRXJyb3JNZXNzYWdlSW1wbCA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHNMb29zZShFcnJvck1lc3NhZ2VJbXBsLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICBmdW5jdGlvbiBFcnJvck1lc3NhZ2VJbXBsKCkge1xuICAgIHJldHVybiBfUmVhY3QkQ29tcG9uZW50LmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpcztcbiAgfVxuXG4gIHZhciBfcHJvdG8gPSBFcnJvck1lc3NhZ2VJbXBsLnByb3RvdHlwZTtcblxuICBfcHJvdG8uc2hvdWxkQ29tcG9uZW50VXBkYXRlID0gZnVuY3Rpb24gc2hvdWxkQ29tcG9uZW50VXBkYXRlKHByb3BzKSB7XG4gICAgaWYgKGdldEluKHRoaXMucHJvcHMuZm9ybWlrLmVycm9ycywgdGhpcy5wcm9wcy5uYW1lKSAhPT0gZ2V0SW4ocHJvcHMuZm9ybWlrLmVycm9ycywgdGhpcy5wcm9wcy5uYW1lKSB8fCBnZXRJbih0aGlzLnByb3BzLmZvcm1pay50b3VjaGVkLCB0aGlzLnByb3BzLm5hbWUpICE9PSBnZXRJbihwcm9wcy5mb3JtaWsudG91Y2hlZCwgdGhpcy5wcm9wcy5uYW1lKSB8fCBPYmplY3Qua2V5cyh0aGlzLnByb3BzKS5sZW5ndGggIT09IE9iamVjdC5rZXlzKHByb3BzKS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9O1xuXG4gIF9wcm90by5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgdmFyIF90aGlzJHByb3BzID0gdGhpcy5wcm9wcyxcbiAgICAgICAgY29tcG9uZW50ID0gX3RoaXMkcHJvcHMuY29tcG9uZW50LFxuICAgICAgICBmb3JtaWsgPSBfdGhpcyRwcm9wcy5mb3JtaWssXG4gICAgICAgIHJlbmRlciA9IF90aGlzJHByb3BzLnJlbmRlcixcbiAgICAgICAgY2hpbGRyZW4gPSBfdGhpcyRwcm9wcy5jaGlsZHJlbixcbiAgICAgICAgbmFtZSA9IF90aGlzJHByb3BzLm5hbWUsXG4gICAgICAgIHJlc3QgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShfdGhpcyRwcm9wcywgW1wiY29tcG9uZW50XCIsIFwiZm9ybWlrXCIsIFwicmVuZGVyXCIsIFwiY2hpbGRyZW5cIiwgXCJuYW1lXCJdKTtcblxuICAgIHZhciB0b3VjaCA9IGdldEluKGZvcm1pay50b3VjaGVkLCBuYW1lKTtcbiAgICB2YXIgZXJyb3IgPSBnZXRJbihmb3JtaWsuZXJyb3JzLCBuYW1lKTtcbiAgICByZXR1cm4gISF0b3VjaCAmJiAhIWVycm9yID8gcmVuZGVyID8gaXNGdW5jdGlvbihyZW5kZXIpID8gcmVuZGVyKGVycm9yKSA6IG51bGwgOiBjaGlsZHJlbiA/IGlzRnVuY3Rpb24oY2hpbGRyZW4pID8gY2hpbGRyZW4oZXJyb3IpIDogbnVsbCA6IGNvbXBvbmVudCA/IGNyZWF0ZUVsZW1lbnQoY29tcG9uZW50LCByZXN0LCBlcnJvcikgOiBlcnJvciA6IG51bGw7XG4gIH07XG5cbiAgcmV0dXJuIEVycm9yTWVzc2FnZUltcGw7XG59KENvbXBvbmVudCk7XG5cbnZhciBFcnJvck1lc3NhZ2UgPSAvKiNfX1BVUkVfXyovY29ubmVjdChFcnJvck1lc3NhZ2VJbXBsKTtcblxuLyoqXHJcbiAqIEN1c3RvbSBGaWVsZCBjb21wb25lbnQgZm9yIHF1aWNrbHkgaG9va2luZyBpbnRvIEZvcm1pa1xyXG4gKiBjb250ZXh0IGFuZCB3aXJpbmcgdXAgZm9ybXMuXHJcbiAqL1xuXG52YXIgRmFzdEZpZWxkSW5uZXIgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzTG9vc2UoRmFzdEZpZWxkSW5uZXIsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIGZ1bmN0aW9uIEZhc3RGaWVsZElubmVyKHByb3BzKSB7XG4gICAgdmFyIF90aGlzO1xuXG4gICAgX3RoaXMgPSBfUmVhY3QkQ29tcG9uZW50LmNhbGwodGhpcywgcHJvcHMpIHx8IHRoaXM7XG4gICAgdmFyIHJlbmRlciA9IHByb3BzLnJlbmRlcixcbiAgICAgICAgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbixcbiAgICAgICAgY29tcG9uZW50ID0gcHJvcHMuY29tcG9uZW50LFxuICAgICAgICBpcyA9IHByb3BzLmFzLFxuICAgICAgICBuYW1lID0gcHJvcHMubmFtZTtcbiAgICAhIXJlbmRlciA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IGludmFyaWFudChmYWxzZSwgXCI8RmFzdEZpZWxkIHJlbmRlcj4gaGFzIGJlZW4gZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBhIGNoaWxkIGNhbGxiYWNrIGZ1bmN0aW9uIGluc3RlYWQ6IDxGYXN0RmllbGQgbmFtZT17XCIgKyBuYW1lICsgXCJ9Pntwcm9wcyA9PiAuLi59PC9GYXN0RmllbGQ+IGluc3RlYWQuXCIpIDogaW52YXJpYW50KGZhbHNlKSA6IHZvaWQgMDtcbiAgICAhIShjb21wb25lbnQgJiYgcmVuZGVyKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IGludmFyaWFudChmYWxzZSwgJ1lvdSBzaG91bGQgbm90IHVzZSA8RmFzdEZpZWxkIGNvbXBvbmVudD4gYW5kIDxGYXN0RmllbGQgcmVuZGVyPiBpbiB0aGUgc2FtZSA8RmFzdEZpZWxkPiBjb21wb25lbnQ7IDxGYXN0RmllbGQgY29tcG9uZW50PiB3aWxsIGJlIGlnbm9yZWQnKSA6IGludmFyaWFudChmYWxzZSkgOiB2b2lkIDA7XG4gICAgISEoaXMgJiYgY2hpbGRyZW4gJiYgaXNGdW5jdGlvbihjaGlsZHJlbikpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gaW52YXJpYW50KGZhbHNlLCAnWW91IHNob3VsZCBub3QgdXNlIDxGYXN0RmllbGQgYXM+IGFuZCA8RmFzdEZpZWxkIGNoaWxkcmVuPiBhcyBhIGZ1bmN0aW9uIGluIHRoZSBzYW1lIDxGYXN0RmllbGQ+IGNvbXBvbmVudDsgPEZhc3RGaWVsZCBhcz4gd2lsbCBiZSBpZ25vcmVkLicpIDogaW52YXJpYW50KGZhbHNlKSA6IHZvaWQgMDtcbiAgICAhIShjb21wb25lbnQgJiYgY2hpbGRyZW4gJiYgaXNGdW5jdGlvbihjaGlsZHJlbikpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gaW52YXJpYW50KGZhbHNlLCAnWW91IHNob3VsZCBub3QgdXNlIDxGYXN0RmllbGQgY29tcG9uZW50PiBhbmQgPEZhc3RGaWVsZCBjaGlsZHJlbj4gYXMgYSBmdW5jdGlvbiBpbiB0aGUgc2FtZSA8RmFzdEZpZWxkPiBjb21wb25lbnQ7IDxGYXN0RmllbGQgY29tcG9uZW50PiB3aWxsIGJlIGlnbm9yZWQuJykgOiBpbnZhcmlhbnQoZmFsc2UpIDogdm9pZCAwO1xuICAgICEhKHJlbmRlciAmJiBjaGlsZHJlbiAmJiAhaXNFbXB0eUNoaWxkcmVuKGNoaWxkcmVuKSkgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyBpbnZhcmlhbnQoZmFsc2UsICdZb3Ugc2hvdWxkIG5vdCB1c2UgPEZhc3RGaWVsZCByZW5kZXI+IGFuZCA8RmFzdEZpZWxkIGNoaWxkcmVuPiBpbiB0aGUgc2FtZSA8RmFzdEZpZWxkPiBjb21wb25lbnQ7IDxGYXN0RmllbGQgY2hpbGRyZW4+IHdpbGwgYmUgaWdub3JlZCcpIDogaW52YXJpYW50KGZhbHNlKSA6IHZvaWQgMDtcbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICB2YXIgX3Byb3RvID0gRmFzdEZpZWxkSW5uZXIucHJvdG90eXBlO1xuXG4gIF9wcm90by5zaG91bGRDb21wb25lbnRVcGRhdGUgPSBmdW5jdGlvbiBzaG91bGRDb21wb25lbnRVcGRhdGUocHJvcHMpIHtcbiAgICBpZiAodGhpcy5wcm9wcy5zaG91bGRVcGRhdGUpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLnNob3VsZFVwZGF0ZShwcm9wcywgdGhpcy5wcm9wcyk7XG4gICAgfSBlbHNlIGlmIChwcm9wcy5uYW1lICE9PSB0aGlzLnByb3BzLm5hbWUgfHwgZ2V0SW4ocHJvcHMuZm9ybWlrLnZhbHVlcywgdGhpcy5wcm9wcy5uYW1lKSAhPT0gZ2V0SW4odGhpcy5wcm9wcy5mb3JtaWsudmFsdWVzLCB0aGlzLnByb3BzLm5hbWUpIHx8IGdldEluKHByb3BzLmZvcm1pay5lcnJvcnMsIHRoaXMucHJvcHMubmFtZSkgIT09IGdldEluKHRoaXMucHJvcHMuZm9ybWlrLmVycm9ycywgdGhpcy5wcm9wcy5uYW1lKSB8fCBnZXRJbihwcm9wcy5mb3JtaWsudG91Y2hlZCwgdGhpcy5wcm9wcy5uYW1lKSAhPT0gZ2V0SW4odGhpcy5wcm9wcy5mb3JtaWsudG91Y2hlZCwgdGhpcy5wcm9wcy5uYW1lKSB8fCBPYmplY3Qua2V5cyh0aGlzLnByb3BzKS5sZW5ndGggIT09IE9iamVjdC5rZXlzKHByb3BzKS5sZW5ndGggfHwgcHJvcHMuZm9ybWlrLmlzU3VibWl0dGluZyAhPT0gdGhpcy5wcm9wcy5mb3JtaWsuaXNTdWJtaXR0aW5nKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfTtcblxuICBfcHJvdG8uY29tcG9uZW50RGlkTW91bnQgPSBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAvLyBSZWdpc3RlciB0aGUgRmllbGQgd2l0aCB0aGUgcGFyZW50IEZvcm1pay4gUGFyZW50IHdpbGwgY3ljbGUgdGhyb3VnaFxuICAgIC8vIHJlZ2lzdGVyZWQgRmllbGQncyB2YWxpZGF0ZSBmbnMgcmlnaHQgcHJpb3IgdG8gc3VibWl0XG4gICAgdGhpcy5wcm9wcy5mb3JtaWsucmVnaXN0ZXJGaWVsZCh0aGlzLnByb3BzLm5hbWUsIHtcbiAgICAgIHZhbGlkYXRlOiB0aGlzLnByb3BzLnZhbGlkYXRlXG4gICAgfSk7XG4gIH07XG5cbiAgX3Byb3RvLmNvbXBvbmVudERpZFVwZGF0ZSA9IGZ1bmN0aW9uIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBpZiAodGhpcy5wcm9wcy5uYW1lICE9PSBwcmV2UHJvcHMubmFtZSkge1xuICAgICAgdGhpcy5wcm9wcy5mb3JtaWsudW5yZWdpc3RlckZpZWxkKHByZXZQcm9wcy5uYW1lKTtcbiAgICAgIHRoaXMucHJvcHMuZm9ybWlrLnJlZ2lzdGVyRmllbGQodGhpcy5wcm9wcy5uYW1lLCB7XG4gICAgICAgIHZhbGlkYXRlOiB0aGlzLnByb3BzLnZhbGlkYXRlXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wcm9wcy52YWxpZGF0ZSAhPT0gcHJldlByb3BzLnZhbGlkYXRlKSB7XG4gICAgICB0aGlzLnByb3BzLmZvcm1pay5yZWdpc3RlckZpZWxkKHRoaXMucHJvcHMubmFtZSwge1xuICAgICAgICB2YWxpZGF0ZTogdGhpcy5wcm9wcy52YWxpZGF0ZVxuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIF9wcm90by5jb21wb25lbnRXaWxsVW5tb3VudCA9IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgIHRoaXMucHJvcHMuZm9ybWlrLnVucmVnaXN0ZXJGaWVsZCh0aGlzLnByb3BzLm5hbWUpO1xuICB9O1xuXG4gIF9wcm90by5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgdmFyIF90aGlzJHByb3BzID0gdGhpcy5wcm9wcyxcbiAgICAgICAgbmFtZSA9IF90aGlzJHByb3BzLm5hbWUsXG4gICAgICAgIHJlbmRlciA9IF90aGlzJHByb3BzLnJlbmRlcixcbiAgICAgICAgaXMgPSBfdGhpcyRwcm9wcy5hcyxcbiAgICAgICAgY2hpbGRyZW4gPSBfdGhpcyRwcm9wcy5jaGlsZHJlbixcbiAgICAgICAgY29tcG9uZW50ID0gX3RoaXMkcHJvcHMuY29tcG9uZW50LFxuICAgICAgICBmb3JtaWsgPSBfdGhpcyRwcm9wcy5mb3JtaWssXG4gICAgICAgIHByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UoX3RoaXMkcHJvcHMsIFtcInZhbGlkYXRlXCIsIFwibmFtZVwiLCBcInJlbmRlclwiLCBcImFzXCIsIFwiY2hpbGRyZW5cIiwgXCJjb21wb25lbnRcIiwgXCJzaG91bGRVcGRhdGVcIiwgXCJmb3JtaWtcIl0pO1xuXG4gICAgdmFyIHJlc3RPZkZvcm1payA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKGZvcm1paywgW1widmFsaWRhdGVcIiwgXCJ2YWxpZGF0aW9uU2NoZW1hXCJdKTtcblxuICAgIHZhciBmaWVsZCA9IGZvcm1pay5nZXRGaWVsZFByb3BzKF9leHRlbmRzKHtcbiAgICAgIG5hbWU6IG5hbWVcbiAgICB9LCBwcm9wcykpO1xuICAgIHZhciBtZXRhID0ge1xuICAgICAgdmFsdWU6IGdldEluKGZvcm1pay52YWx1ZXMsIG5hbWUpLFxuICAgICAgZXJyb3I6IGdldEluKGZvcm1pay5lcnJvcnMsIG5hbWUpLFxuICAgICAgdG91Y2hlZDogISFnZXRJbihmb3JtaWsudG91Y2hlZCwgbmFtZSksXG4gICAgICBpbml0aWFsVmFsdWU6IGdldEluKGZvcm1pay5pbml0aWFsVmFsdWVzLCBuYW1lKSxcbiAgICAgIGluaXRpYWxUb3VjaGVkOiAhIWdldEluKGZvcm1pay5pbml0aWFsVG91Y2hlZCwgbmFtZSksXG4gICAgICBpbml0aWFsRXJyb3I6IGdldEluKGZvcm1pay5pbml0aWFsRXJyb3JzLCBuYW1lKVxuICAgIH07XG4gICAgdmFyIGJhZyA9IHtcbiAgICAgIGZpZWxkOiBmaWVsZCxcbiAgICAgIG1ldGE6IG1ldGEsXG4gICAgICBmb3JtOiByZXN0T2ZGb3JtaWtcbiAgICB9O1xuXG4gICAgaWYgKHJlbmRlcikge1xuICAgICAgcmV0dXJuIHJlbmRlcihiYWcpO1xuICAgIH1cblxuICAgIGlmIChpc0Z1bmN0aW9uKGNoaWxkcmVuKSkge1xuICAgICAgcmV0dXJuIGNoaWxkcmVuKGJhZyk7XG4gICAgfVxuXG4gICAgaWYgKGNvbXBvbmVudCkge1xuICAgICAgLy8gVGhpcyBiZWhhdmlvciBpcyBiYWNrd2FyZHMgY29tcGF0IHdpdGggZWFybGllciBGb3JtaWsgMC45IHRvIDEueFxuICAgICAgaWYgKHR5cGVvZiBjb21wb25lbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHZhciBpbm5lclJlZiA9IHByb3BzLmlubmVyUmVmLFxuICAgICAgICAgICAgcmVzdCA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKHByb3BzLCBbXCJpbm5lclJlZlwiXSk7XG5cbiAgICAgICAgcmV0dXJuIGNyZWF0ZUVsZW1lbnQoY29tcG9uZW50LCBfZXh0ZW5kcyh7XG4gICAgICAgICAgcmVmOiBpbm5lclJlZlxuICAgICAgICB9LCBmaWVsZCwgcmVzdCksIGNoaWxkcmVuKTtcbiAgICAgIH0gLy8gV2UgZG9uJ3QgcGFzcyBgbWV0YWAgZm9yIGJhY2t3YXJkcyBjb21wYXRcblxuXG4gICAgICByZXR1cm4gY3JlYXRlRWxlbWVudChjb21wb25lbnQsIF9leHRlbmRzKHtcbiAgICAgICAgZmllbGQ6IGZpZWxkLFxuICAgICAgICBmb3JtOiBmb3JtaWtcbiAgICAgIH0sIHByb3BzKSwgY2hpbGRyZW4pO1xuICAgIH0gLy8gZGVmYXVsdCB0byBpbnB1dCBoZXJlIHNvIHdlIGNhbiBjaGVjayBmb3IgYm90aCBgYXNgIGFuZCBgY2hpbGRyZW5gIGFib3ZlXG5cblxuICAgIHZhciBhc0VsZW1lbnQgPSBpcyB8fCAnaW5wdXQnO1xuXG4gICAgaWYgKHR5cGVvZiBhc0VsZW1lbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICB2YXIgX2lubmVyUmVmID0gcHJvcHMuaW5uZXJSZWYsXG4gICAgICAgICAgX3Jlc3QgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShwcm9wcywgW1wiaW5uZXJSZWZcIl0pO1xuXG4gICAgICByZXR1cm4gY3JlYXRlRWxlbWVudChhc0VsZW1lbnQsIF9leHRlbmRzKHtcbiAgICAgICAgcmVmOiBfaW5uZXJSZWZcbiAgICAgIH0sIGZpZWxkLCBfcmVzdCksIGNoaWxkcmVuKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY3JlYXRlRWxlbWVudChhc0VsZW1lbnQsIF9leHRlbmRzKHt9LCBmaWVsZCwgcHJvcHMpLCBjaGlsZHJlbik7XG4gIH07XG5cbiAgcmV0dXJuIEZhc3RGaWVsZElubmVyO1xufShDb21wb25lbnQpO1xuXG52YXIgRmFzdEZpZWxkID0gLyojX19QVVJFX18qL2Nvbm5lY3QoRmFzdEZpZWxkSW5uZXIpO1xuXG5leHBvcnQgeyBFcnJvck1lc3NhZ2UsIEZhc3RGaWVsZCwgRmllbGQsIEZpZWxkQXJyYXksIEZvcm0sIEZvcm1paywgRm9ybWlrQ29uc3VtZXIsIEZvcm1pa0NvbnRleHQsIEZvcm1pa1Byb3ZpZGVyLCBjb25uZWN0LCBnZXRBY3RpdmVFbGVtZW50LCBnZXRJbiwgaW5zZXJ0LCBpc0VtcHR5QXJyYXksIGlzRW1wdHlDaGlsZHJlbiwgaXNGdW5jdGlvbiwgaXNJbnB1dEV2ZW50LCBpc0ludGVnZXIsIGlzTmFOJDEgYXMgaXNOYU4sIGlzT2JqZWN0LCBpc1Byb21pc2UsIGlzU3RyaW5nLCBtb3ZlLCBwcmVwYXJlRGF0YUZvclZhbGlkYXRpb24sIHJlcGxhY2UsIHNldEluLCBzZXROZXN0ZWRPYmplY3RWYWx1ZXMsIHN3YXAsIHVzZUZpZWxkLCB1c2VGb3JtaWssIHVzZUZvcm1pa0NvbnRleHQsIHZhbGlkYXRlWXVwU2NoZW1hLCB3aXRoRm9ybWlrLCB5dXBUb0Zvcm1FcnJvcnMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWZvcm1pay5lc20uanMubWFwXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/formik/dist/formik.esm.js\n"); + +/***/ }), + +/***/ "./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js ***! + \**********************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar reactIs = __webpack_require__(/*! react-is */ \"./node_modules/hoist-non-react-statics/node_modules/react-is/index.js\");\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvaG9pc3Qtbm9uLXJlYWN0LXN0YXRpY3MvZGlzdC9ob2lzdC1ub24tcmVhY3Qtc3RhdGljcy5janMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsY0FBYyxtQkFBTyxDQUFDLHVGQUFVOztBQUVoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBLG9CQUFvQixpQkFBaUI7QUFDckM7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2hvaXN0LW5vbi1yZWFjdC1zdGF0aWNzL2Rpc3QvaG9pc3Qtbm9uLXJlYWN0LXN0YXRpY3MuY2pzLmpzPzkxZGIiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG52YXIgcmVhY3RJcyA9IHJlcXVpcmUoJ3JlYWN0LWlzJyk7XG5cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUsIFlhaG9vISBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBOZXcgQlNEIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbnZhciBSRUFDVF9TVEFUSUNTID0ge1xuICBjaGlsZENvbnRleHRUeXBlczogdHJ1ZSxcbiAgY29udGV4dFR5cGU6IHRydWUsXG4gIGNvbnRleHRUeXBlczogdHJ1ZSxcbiAgZGVmYXVsdFByb3BzOiB0cnVlLFxuICBkaXNwbGF5TmFtZTogdHJ1ZSxcbiAgZ2V0RGVmYXVsdFByb3BzOiB0cnVlLFxuICBnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3I6IHRydWUsXG4gIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wczogdHJ1ZSxcbiAgbWl4aW5zOiB0cnVlLFxuICBwcm9wVHlwZXM6IHRydWUsXG4gIHR5cGU6IHRydWVcbn07XG52YXIgS05PV05fU1RBVElDUyA9IHtcbiAgbmFtZTogdHJ1ZSxcbiAgbGVuZ3RoOiB0cnVlLFxuICBwcm90b3R5cGU6IHRydWUsXG4gIGNhbGxlcjogdHJ1ZSxcbiAgY2FsbGVlOiB0cnVlLFxuICBhcmd1bWVudHM6IHRydWUsXG4gIGFyaXR5OiB0cnVlXG59O1xudmFyIEZPUldBUkRfUkVGX1NUQVRJQ1MgPSB7XG4gICckJHR5cGVvZic6IHRydWUsXG4gIHJlbmRlcjogdHJ1ZSxcbiAgZGVmYXVsdFByb3BzOiB0cnVlLFxuICBkaXNwbGF5TmFtZTogdHJ1ZSxcbiAgcHJvcFR5cGVzOiB0cnVlXG59O1xudmFyIE1FTU9fU1RBVElDUyA9IHtcbiAgJyQkdHlwZW9mJzogdHJ1ZSxcbiAgY29tcGFyZTogdHJ1ZSxcbiAgZGVmYXVsdFByb3BzOiB0cnVlLFxuICBkaXNwbGF5TmFtZTogdHJ1ZSxcbiAgcHJvcFR5cGVzOiB0cnVlLFxuICB0eXBlOiB0cnVlXG59O1xudmFyIFRZUEVfU1RBVElDUyA9IHt9O1xuVFlQRV9TVEFUSUNTW3JlYWN0SXMuRm9yd2FyZFJlZl0gPSBGT1JXQVJEX1JFRl9TVEFUSUNTO1xuVFlQRV9TVEFUSUNTW3JlYWN0SXMuTWVtb10gPSBNRU1PX1NUQVRJQ1M7XG5cbmZ1bmN0aW9uIGdldFN0YXRpY3MoY29tcG9uZW50KSB7XG4gIC8vIFJlYWN0IHYxNi4xMSBhbmQgYmVsb3dcbiAgaWYgKHJlYWN0SXMuaXNNZW1vKGNvbXBvbmVudCkpIHtcbiAgICByZXR1cm4gTUVNT19TVEFUSUNTO1xuICB9IC8vIFJlYWN0IHYxNi4xMiBhbmQgYWJvdmVcblxuXG4gIHJldHVybiBUWVBFX1NUQVRJQ1NbY29tcG9uZW50WyckJHR5cGVvZiddXSB8fCBSRUFDVF9TVEFUSUNTO1xufVxuXG52YXIgZGVmaW5lUHJvcGVydHkgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG52YXIgZ2V0T3duUHJvcGVydHlOYW1lcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzO1xudmFyIGdldE93blByb3BlcnR5U3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7XG52YXIgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcbnZhciBnZXRQcm90b3R5cGVPZiA9IE9iamVjdC5nZXRQcm90b3R5cGVPZjtcbnZhciBvYmplY3RQcm90b3R5cGUgPSBPYmplY3QucHJvdG90eXBlO1xuZnVuY3Rpb24gaG9pc3ROb25SZWFjdFN0YXRpY3ModGFyZ2V0Q29tcG9uZW50LCBzb3VyY2VDb21wb25lbnQsIGJsYWNrbGlzdCkge1xuICBpZiAodHlwZW9mIHNvdXJjZUNvbXBvbmVudCAhPT0gJ3N0cmluZycpIHtcbiAgICAvLyBkb24ndCBob2lzdCBvdmVyIHN0cmluZyAoaHRtbCkgY29tcG9uZW50c1xuICAgIGlmIChvYmplY3RQcm90b3R5cGUpIHtcbiAgICAgIHZhciBpbmhlcml0ZWRDb21wb25lbnQgPSBnZXRQcm90b3R5cGVPZihzb3VyY2VDb21wb25lbnQpO1xuXG4gICAgICBpZiAoaW5oZXJpdGVkQ29tcG9uZW50ICYmIGluaGVyaXRlZENvbXBvbmVudCAhPT0gb2JqZWN0UHJvdG90eXBlKSB7XG4gICAgICAgIGhvaXN0Tm9uUmVhY3RTdGF0aWNzKHRhcmdldENvbXBvbmVudCwgaW5oZXJpdGVkQ29tcG9uZW50LCBibGFja2xpc3QpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBrZXlzID0gZ2V0T3duUHJvcGVydHlOYW1lcyhzb3VyY2VDb21wb25lbnQpO1xuXG4gICAgaWYgKGdldE93blByb3BlcnR5U3ltYm9scykge1xuICAgICAga2V5cyA9IGtleXMuY29uY2F0KGdldE93blByb3BlcnR5U3ltYm9scyhzb3VyY2VDb21wb25lbnQpKTtcbiAgICB9XG5cbiAgICB2YXIgdGFyZ2V0U3RhdGljcyA9IGdldFN0YXRpY3ModGFyZ2V0Q29tcG9uZW50KTtcbiAgICB2YXIgc291cmNlU3RhdGljcyA9IGdldFN0YXRpY3Moc291cmNlQ29tcG9uZW50KTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7ICsraSkge1xuICAgICAgdmFyIGtleSA9IGtleXNbaV07XG5cbiAgICAgIGlmICghS05PV05fU1RBVElDU1trZXldICYmICEoYmxhY2tsaXN0ICYmIGJsYWNrbGlzdFtrZXldKSAmJiAhKHNvdXJjZVN0YXRpY3MgJiYgc291cmNlU3RhdGljc1trZXldKSAmJiAhKHRhcmdldFN0YXRpY3MgJiYgdGFyZ2V0U3RhdGljc1trZXldKSkge1xuICAgICAgICB2YXIgZGVzY3JpcHRvciA9IGdldE93blByb3BlcnR5RGVzY3JpcHRvcihzb3VyY2VDb21wb25lbnQsIGtleSk7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAvLyBBdm9pZCBmYWlsdXJlcyBmcm9tIHJlYWQtb25seSBwcm9wZXJ0aWVzXG4gICAgICAgICAgZGVmaW5lUHJvcGVydHkodGFyZ2V0Q29tcG9uZW50LCBrZXksIGRlc2NyaXB0b3IpO1xuICAgICAgICB9IGNhdGNoIChlKSB7fVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0YXJnZXRDb21wb25lbnQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaG9pc3ROb25SZWFjdFN0YXRpY3M7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js\n"); + +/***/ }), + +/***/ "./node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.development.js": +/*!************************************************************************************************!*\ + !*** ./node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.development.js ***! + \************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its 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\n\n\n\n\nif (true) {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvaG9pc3Qtbm9uLXJlYWN0LXN0YXRpY3Mvbm9kZV9tb2R1bGVzL3JlYWN0LWlzL2Nqcy9yZWFjdC1pcy5kZXZlbG9wbWVudC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVhOzs7O0FBSWIsSUFBSSxJQUFxQztBQUN6QztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJFQUEyRTtBQUMzRTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpREFBaUQ7O0FBRWpEO0FBQ0E7QUFDQTtBQUNBLGtEQUFrRDs7QUFFbEQ7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsaUJBQWlCO0FBQ2pCLHNCQUFzQjtBQUN0Qix1QkFBdUI7QUFDdkIsdUJBQXVCO0FBQ3ZCLGVBQWU7QUFDZixrQkFBa0I7QUFDbEIsZ0JBQWdCO0FBQ2hCLFlBQVk7QUFDWixZQUFZO0FBQ1osY0FBYztBQUNkLGdCQUFnQjtBQUNoQixrQkFBa0I7QUFDbEIsZ0JBQWdCO0FBQ2hCLG1CQUFtQjtBQUNuQix3QkFBd0I7QUFDeEIseUJBQXlCO0FBQ3pCLHlCQUF5QjtBQUN6QixpQkFBaUI7QUFDakIsb0JBQW9CO0FBQ3BCLGtCQUFrQjtBQUNsQixjQUFjO0FBQ2QsY0FBYztBQUNkLGdCQUFnQjtBQUNoQixrQkFBa0I7QUFDbEIsb0JBQW9CO0FBQ3BCLGtCQUFrQjtBQUNsQiwwQkFBMEI7QUFDMUIsY0FBYztBQUNkLEdBQUc7QUFDSCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvaG9pc3Qtbm9uLXJlYWN0LXN0YXRpY3Mvbm9kZV9tb2R1bGVzL3JlYWN0LWlzL2Nqcy9yZWFjdC1pcy5kZXZlbG9wbWVudC5qcz9jODdmIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBAbGljZW5zZSBSZWFjdCB2MTYuMTMuMVxuICogcmVhY3QtaXMuZGV2ZWxvcG1lbnQuanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIEZhY2Vib29rLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cblxuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gIChmdW5jdGlvbigpIHtcbid1c2Ugc3RyaWN0JztcblxuLy8gVGhlIFN5bWJvbCB1c2VkIHRvIHRhZyB0aGUgUmVhY3RFbGVtZW50LWxpa2UgdHlwZXMuIElmIHRoZXJlIGlzIG5vIG5hdGl2ZSBTeW1ib2xcbi8vIG5vciBwb2x5ZmlsbCwgdGhlbiBhIHBsYWluIG51bWJlciBpcyB1c2VkIGZvciBwZXJmb3JtYW5jZS5cbnZhciBoYXNTeW1ib2wgPSB0eXBlb2YgU3ltYm9sID09PSAnZnVuY3Rpb24nICYmIFN5bWJvbC5mb3I7XG52YXIgUkVBQ1RfRUxFTUVOVF9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3QuZWxlbWVudCcpIDogMHhlYWM3O1xudmFyIFJFQUNUX1BPUlRBTF9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3QucG9ydGFsJykgOiAweGVhY2E7XG52YXIgUkVBQ1RfRlJBR01FTlRfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmZyYWdtZW50JykgOiAweGVhY2I7XG52YXIgUkVBQ1RfU1RSSUNUX01PREVfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LnN0cmljdF9tb2RlJykgOiAweGVhY2M7XG52YXIgUkVBQ1RfUFJPRklMRVJfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LnByb2ZpbGVyJykgOiAweGVhZDI7XG52YXIgUkVBQ1RfUFJPVklERVJfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LnByb3ZpZGVyJykgOiAweGVhY2Q7XG52YXIgUkVBQ1RfQ09OVEVYVF9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3QuY29udGV4dCcpIDogMHhlYWNlOyAvLyBUT0RPOiBXZSBkb24ndCB1c2UgQXN5bmNNb2RlIG9yIENvbmN1cnJlbnRNb2RlIGFueW1vcmUuIFRoZXkgd2VyZSB0ZW1wb3Jhcnlcbi8vICh1bnN0YWJsZSkgQVBJcyB0aGF0IGhhdmUgYmVlbiByZW1vdmVkLiBDYW4gd2UgcmVtb3ZlIHRoZSBzeW1ib2xzP1xuXG52YXIgUkVBQ1RfQVNZTkNfTU9ERV9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3QuYXN5bmNfbW9kZScpIDogMHhlYWNmO1xudmFyIFJFQUNUX0NPTkNVUlJFTlRfTU9ERV9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3QuY29uY3VycmVudF9tb2RlJykgOiAweGVhY2Y7XG52YXIgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmZvcndhcmRfcmVmJykgOiAweGVhZDA7XG52YXIgUkVBQ1RfU1VTUEVOU0VfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LnN1c3BlbnNlJykgOiAweGVhZDE7XG52YXIgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3Quc3VzcGVuc2VfbGlzdCcpIDogMHhlYWQ4O1xudmFyIFJFQUNUX01FTU9fVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0Lm1lbW8nKSA6IDB4ZWFkMztcbnZhciBSRUFDVF9MQVpZX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5sYXp5JykgOiAweGVhZDQ7XG52YXIgUkVBQ1RfQkxPQ0tfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmJsb2NrJykgOiAweGVhZDk7XG52YXIgUkVBQ1RfRlVOREFNRU5UQUxfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmZ1bmRhbWVudGFsJykgOiAweGVhZDU7XG52YXIgUkVBQ1RfUkVTUE9OREVSX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5yZXNwb25kZXInKSA6IDB4ZWFkNjtcbnZhciBSRUFDVF9TQ09QRV9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3Quc2NvcGUnKSA6IDB4ZWFkNztcblxuZnVuY3Rpb24gaXNWYWxpZEVsZW1lbnRUeXBlKHR5cGUpIHtcbiAgcmV0dXJuIHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJyB8fCAvLyBOb3RlOiBpdHMgdHlwZW9mIG1pZ2h0IGJlIG90aGVyIHRoYW4gJ3N5bWJvbCcgb3IgJ251bWJlcicgaWYgaXQncyBhIHBvbHlmaWxsLlxuICB0eXBlID09PSBSRUFDVF9GUkFHTUVOVF9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX0NPTkNVUlJFTlRfTU9ERV9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX1BST0ZJTEVSX1RZUEUgfHwgdHlwZSA9PT0gUkVBQ1RfU1RSSUNUX01PREVfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9TVVNQRU5TRV9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSB8fCB0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcgJiYgdHlwZSAhPT0gbnVsbCAmJiAodHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTEFaWV9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX01FTU9fVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9QUk9WSURFUl9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0NPTlRFWFRfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0ZVTkRBTUVOVEFMX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfUkVTUE9OREVSX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfU0NPUEVfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9CTE9DS19UWVBFKTtcbn1cblxuZnVuY3Rpb24gdHlwZU9mKG9iamVjdCkge1xuICBpZiAodHlwZW9mIG9iamVjdCA9PT0gJ29iamVjdCcgJiYgb2JqZWN0ICE9PSBudWxsKSB7XG4gICAgdmFyICQkdHlwZW9mID0gb2JqZWN0LiQkdHlwZW9mO1xuXG4gICAgc3dpdGNoICgkJHR5cGVvZikge1xuICAgICAgY2FzZSBSRUFDVF9FTEVNRU5UX1RZUEU6XG4gICAgICAgIHZhciB0eXBlID0gb2JqZWN0LnR5cGU7XG5cbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgY2FzZSBSRUFDVF9BU1lOQ19NT0RFX1RZUEU6XG4gICAgICAgICAgY2FzZSBSRUFDVF9DT05DVVJSRU5UX01PREVfVFlQRTpcbiAgICAgICAgICBjYXNlIFJFQUNUX0ZSQUdNRU5UX1RZUEU6XG4gICAgICAgICAgY2FzZSBSRUFDVF9QUk9GSUxFUl9UWVBFOlxuICAgICAgICAgIGNhc2UgUkVBQ1RfU1RSSUNUX01PREVfVFlQRTpcbiAgICAgICAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX1RZUEU6XG4gICAgICAgICAgICByZXR1cm4gdHlwZTtcblxuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB2YXIgJCR0eXBlb2ZUeXBlID0gdHlwZSAmJiB0eXBlLiQkdHlwZW9mO1xuXG4gICAgICAgICAgICBzd2l0Y2ggKCQkdHlwZW9mVHlwZSkge1xuICAgICAgICAgICAgICBjYXNlIFJFQUNUX0NPTlRFWFRfVFlQRTpcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFOlxuICAgICAgICAgICAgICBjYXNlIFJFQUNUX0xBWllfVFlQRTpcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9NRU1PX1RZUEU6XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfUFJPVklERVJfVFlQRTpcbiAgICAgICAgICAgICAgICByZXR1cm4gJCR0eXBlb2ZUeXBlO1xuXG4gICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuICQkdHlwZW9mO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgY2FzZSBSRUFDVF9QT1JUQUxfVFlQRTpcbiAgICAgICAgcmV0dXJuICQkdHlwZW9mO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59IC8vIEFzeW5jTW9kZSBpcyBkZXByZWNhdGVkIGFsb25nIHdpdGggaXNBc3luY01vZGVcblxudmFyIEFzeW5jTW9kZSA9IFJFQUNUX0FTWU5DX01PREVfVFlQRTtcbnZhciBDb25jdXJyZW50TW9kZSA9IFJFQUNUX0NPTkNVUlJFTlRfTU9ERV9UWVBFO1xudmFyIENvbnRleHRDb25zdW1lciA9IFJFQUNUX0NPTlRFWFRfVFlQRTtcbnZhciBDb250ZXh0UHJvdmlkZXIgPSBSRUFDVF9QUk9WSURFUl9UWVBFO1xudmFyIEVsZW1lbnQgPSBSRUFDVF9FTEVNRU5UX1RZUEU7XG52YXIgRm9yd2FyZFJlZiA9IFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU7XG52YXIgRnJhZ21lbnQgPSBSRUFDVF9GUkFHTUVOVF9UWVBFO1xudmFyIExhenkgPSBSRUFDVF9MQVpZX1RZUEU7XG52YXIgTWVtbyA9IFJFQUNUX01FTU9fVFlQRTtcbnZhciBQb3J0YWwgPSBSRUFDVF9QT1JUQUxfVFlQRTtcbnZhciBQcm9maWxlciA9IFJFQUNUX1BST0ZJTEVSX1RZUEU7XG52YXIgU3RyaWN0TW9kZSA9IFJFQUNUX1NUUklDVF9NT0RFX1RZUEU7XG52YXIgU3VzcGVuc2UgPSBSRUFDVF9TVVNQRU5TRV9UWVBFO1xudmFyIGhhc1dhcm5lZEFib3V0RGVwcmVjYXRlZElzQXN5bmNNb2RlID0gZmFsc2U7IC8vIEFzeW5jTW9kZSBzaG91bGQgYmUgZGVwcmVjYXRlZFxuXG5mdW5jdGlvbiBpc0FzeW5jTW9kZShvYmplY3QpIHtcbiAge1xuICAgIGlmICghaGFzV2FybmVkQWJvdXREZXByZWNhdGVkSXNBc3luY01vZGUpIHtcbiAgICAgIGhhc1dhcm5lZEFib3V0RGVwcmVjYXRlZElzQXN5bmNNb2RlID0gdHJ1ZTsgLy8gVXNpbmcgY29uc29sZVsnd2FybiddIHRvIGV2YWRlIEJhYmVsIGFuZCBFU0xpbnRcblxuICAgICAgY29uc29sZVsnd2FybiddKCdUaGUgUmVhY3RJcy5pc0FzeW5jTW9kZSgpIGFsaWFzIGhhcyBiZWVuIGRlcHJlY2F0ZWQsICcgKyAnYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBSZWFjdCAxNysuIFVwZGF0ZSB5b3VyIGNvZGUgdG8gdXNlICcgKyAnUmVhY3RJcy5pc0NvbmN1cnJlbnRNb2RlKCkgaW5zdGVhZC4gSXQgaGFzIHRoZSBleGFjdCBzYW1lIEFQSS4nKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gaXNDb25jdXJyZW50TW9kZShvYmplY3QpIHx8IHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9BU1lOQ19NT0RFX1RZUEU7XG59XG5mdW5jdGlvbiBpc0NvbmN1cnJlbnRNb2RlKG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX0NPTkNVUlJFTlRfTU9ERV9UWVBFO1xufVxuZnVuY3Rpb24gaXNDb250ZXh0Q29uc3VtZXIob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfQ09OVEVYVF9UWVBFO1xufVxuZnVuY3Rpb24gaXNDb250ZXh0UHJvdmlkZXIob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfUFJPVklERVJfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzRWxlbWVudChvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVvZiBvYmplY3QgPT09ICdvYmplY3QnICYmIG9iamVjdCAhPT0gbnVsbCAmJiBvYmplY3QuJCR0eXBlb2YgPT09IFJFQUNUX0VMRU1FTlRfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzRm9yd2FyZFJlZihvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFO1xufVxuZnVuY3Rpb24gaXNGcmFnbWVudChvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9GUkFHTUVOVF9UWVBFO1xufVxuZnVuY3Rpb24gaXNMYXp5KG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX0xBWllfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzTWVtbyhvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9NRU1PX1RZUEU7XG59XG5mdW5jdGlvbiBpc1BvcnRhbChvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9QT1JUQUxfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzUHJvZmlsZXIob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfUFJPRklMRVJfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzU3RyaWN0TW9kZShvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFO1xufVxuZnVuY3Rpb24gaXNTdXNwZW5zZShvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9TVVNQRU5TRV9UWVBFO1xufVxuXG5leHBvcnRzLkFzeW5jTW9kZSA9IEFzeW5jTW9kZTtcbmV4cG9ydHMuQ29uY3VycmVudE1vZGUgPSBDb25jdXJyZW50TW9kZTtcbmV4cG9ydHMuQ29udGV4dENvbnN1bWVyID0gQ29udGV4dENvbnN1bWVyO1xuZXhwb3J0cy5Db250ZXh0UHJvdmlkZXIgPSBDb250ZXh0UHJvdmlkZXI7XG5leHBvcnRzLkVsZW1lbnQgPSBFbGVtZW50O1xuZXhwb3J0cy5Gb3J3YXJkUmVmID0gRm9yd2FyZFJlZjtcbmV4cG9ydHMuRnJhZ21lbnQgPSBGcmFnbWVudDtcbmV4cG9ydHMuTGF6eSA9IExhenk7XG5leHBvcnRzLk1lbW8gPSBNZW1vO1xuZXhwb3J0cy5Qb3J0YWwgPSBQb3J0YWw7XG5leHBvcnRzLlByb2ZpbGVyID0gUHJvZmlsZXI7XG5leHBvcnRzLlN0cmljdE1vZGUgPSBTdHJpY3RNb2RlO1xuZXhwb3J0cy5TdXNwZW5zZSA9IFN1c3BlbnNlO1xuZXhwb3J0cy5pc0FzeW5jTW9kZSA9IGlzQXN5bmNNb2RlO1xuZXhwb3J0cy5pc0NvbmN1cnJlbnRNb2RlID0gaXNDb25jdXJyZW50TW9kZTtcbmV4cG9ydHMuaXNDb250ZXh0Q29uc3VtZXIgPSBpc0NvbnRleHRDb25zdW1lcjtcbmV4cG9ydHMuaXNDb250ZXh0UHJvdmlkZXIgPSBpc0NvbnRleHRQcm92aWRlcjtcbmV4cG9ydHMuaXNFbGVtZW50ID0gaXNFbGVtZW50O1xuZXhwb3J0cy5pc0ZvcndhcmRSZWYgPSBpc0ZvcndhcmRSZWY7XG5leHBvcnRzLmlzRnJhZ21lbnQgPSBpc0ZyYWdtZW50O1xuZXhwb3J0cy5pc0xhenkgPSBpc0xhenk7XG5leHBvcnRzLmlzTWVtbyA9IGlzTWVtbztcbmV4cG9ydHMuaXNQb3J0YWwgPSBpc1BvcnRhbDtcbmV4cG9ydHMuaXNQcm9maWxlciA9IGlzUHJvZmlsZXI7XG5leHBvcnRzLmlzU3RyaWN0TW9kZSA9IGlzU3RyaWN0TW9kZTtcbmV4cG9ydHMuaXNTdXNwZW5zZSA9IGlzU3VzcGVuc2U7XG5leHBvcnRzLmlzVmFsaWRFbGVtZW50VHlwZSA9IGlzVmFsaWRFbGVtZW50VHlwZTtcbmV4cG9ydHMudHlwZU9mID0gdHlwZU9mO1xuICB9KSgpO1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.development.js\n"); + +/***/ }), + +/***/ "./node_modules/hoist-non-react-statics/node_modules/react-is/index.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/hoist-non-react-statics/node_modules/react-is/index.js ***! + \*****************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ \"./node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvaG9pc3Qtbm9uLXJlYWN0LXN0YXRpY3Mvbm9kZV9tb2R1bGVzL3JlYWN0LWlzL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLElBQUksS0FBcUMsRUFBRSxFQUUxQyxDQUFDO0FBQ0YsRUFBRSxxS0FBeUQ7QUFDM0QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2hvaXN0LW5vbi1yZWFjdC1zdGF0aWNzL25vZGVfbW9kdWxlcy9yZWFjdC1pcy9pbmRleC5qcz9jNmNmIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1pcy5wcm9kdWN0aW9uLm1pbi5qcycpO1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1pcy5kZXZlbG9wbWVudC5qcycpO1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/hoist-non-react-statics/node_modules/react-is/index.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash.throttle/index.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash.throttle/index.js ***! + \***********************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof __webpack_require__.g == 'object' && __webpack_require__.g && __webpack_require__.g.Object === Object && __webpack_require__.g;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = throttle;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLnRocm90dGxlL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0Esd0JBQXdCLHFCQUFNLGdCQUFnQixxQkFBTSxJQUFJLHFCQUFNLHNCQUFzQixxQkFBTTs7QUFFMUY7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFVBQVU7QUFDckIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUSxXQUFXO0FBQzlCLFdBQVcsU0FBUztBQUNwQjtBQUNBLFdBQVcsUUFBUTtBQUNuQjtBQUNBLFdBQVcsU0FBUztBQUNwQjtBQUNBLGFBQWEsVUFBVTtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLCtDQUErQyxpQkFBaUI7QUFDaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFVBQVU7QUFDckIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUSxXQUFXO0FBQzlCLFdBQVcsU0FBUztBQUNwQjtBQUNBLFdBQVcsU0FBUztBQUNwQjtBQUNBLGFBQWEsVUFBVTtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvREFBb0QsbUJBQW1CO0FBQ3ZFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2QsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gudGhyb3R0bGUvaW5kZXguanM/ZDFmMSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGxvZGFzaCAoQ3VzdG9tIEJ1aWxkKSA8aHR0cHM6Ly9sb2Rhc2guY29tLz5cbiAqIEJ1aWxkOiBgbG9kYXNoIG1vZHVsYXJpemUgZXhwb3J0cz1cIm5wbVwiIC1vIC4vYFxuICogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMgPGh0dHBzOi8vanF1ZXJ5Lm9yZy8+XG4gKiBSZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZSA8aHR0cHM6Ly9sb2Rhc2guY29tL2xpY2Vuc2U+XG4gKiBCYXNlZCBvbiBVbmRlcnNjb3JlLmpzIDEuOC4zIDxodHRwOi8vdW5kZXJzY29yZWpzLm9yZy9MSUNFTlNFPlxuICogQ29weXJpZ2h0IEplcmVteSBBc2hrZW5hcywgRG9jdW1lbnRDbG91ZCBhbmQgSW52ZXN0aWdhdGl2ZSBSZXBvcnRlcnMgJiBFZGl0b3JzXG4gKi9cblxuLyoqIFVzZWQgYXMgdGhlIGBUeXBlRXJyb3JgIG1lc3NhZ2UgZm9yIFwiRnVuY3Rpb25zXCIgbWV0aG9kcy4gKi9cbnZhciBGVU5DX0VSUk9SX1RFWFQgPSAnRXhwZWN0ZWQgYSBmdW5jdGlvbic7XG5cbi8qKiBVc2VkIGFzIHJlZmVyZW5jZXMgZm9yIHZhcmlvdXMgYE51bWJlcmAgY29uc3RhbnRzLiAqL1xudmFyIE5BTiA9IDAgLyAwO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgc3ltYm9sVGFnID0gJ1tvYmplY3QgU3ltYm9sXSc7XG5cbi8qKiBVc2VkIHRvIG1hdGNoIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2UuICovXG52YXIgcmVUcmltID0gL15cXHMrfFxccyskL2c7XG5cbi8qKiBVc2VkIHRvIGRldGVjdCBiYWQgc2lnbmVkIGhleGFkZWNpbWFsIHN0cmluZyB2YWx1ZXMuICovXG52YXIgcmVJc0JhZEhleCA9IC9eWy0rXTB4WzAtOWEtZl0rJC9pO1xuXG4vKiogVXNlZCB0byBkZXRlY3QgYmluYXJ5IHN0cmluZyB2YWx1ZXMuICovXG52YXIgcmVJc0JpbmFyeSA9IC9eMGJbMDFdKyQvaTtcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IG9jdGFsIHN0cmluZyB2YWx1ZXMuICovXG52YXIgcmVJc09jdGFsID0gL14wb1swLTddKyQvaTtcblxuLyoqIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIHdpdGhvdXQgYSBkZXBlbmRlbmN5IG9uIGByb290YC4gKi9cbnZhciBmcmVlUGFyc2VJbnQgPSBwYXJzZUludDtcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBnbG9iYWxgIGZyb20gTm9kZS5qcy4gKi9cbnZhciBmcmVlR2xvYmFsID0gdHlwZW9mIGdsb2JhbCA9PSAnb2JqZWN0JyAmJiBnbG9iYWwgJiYgZ2xvYmFsLk9iamVjdCA9PT0gT2JqZWN0ICYmIGdsb2JhbDtcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBzZWxmYC4gKi9cbnZhciBmcmVlU2VsZiA9IHR5cGVvZiBzZWxmID09ICdvYmplY3QnICYmIHNlbGYgJiYgc2VsZi5PYmplY3QgPT09IE9iamVjdCAmJiBzZWxmO1xuXG4vKiogVXNlZCBhcyBhIHJlZmVyZW5jZSB0byB0aGUgZ2xvYmFsIG9iamVjdC4gKi9cbnZhciByb290ID0gZnJlZUdsb2JhbCB8fCBmcmVlU2VsZiB8fCBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKipcbiAqIFVzZWQgdG8gcmVzb2x2ZSB0aGVcbiAqIFtgdG9TdHJpbmdUYWdgXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1vYmplY3QucHJvdG90eXBlLnRvc3RyaW5nKVxuICogb2YgdmFsdWVzLlxuICovXG52YXIgb2JqZWN0VG9TdHJpbmcgPSBvYmplY3RQcm90by50b1N0cmluZztcblxuLyogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xudmFyIG5hdGl2ZU1heCA9IE1hdGgubWF4LFxuICAgIG5hdGl2ZU1pbiA9IE1hdGgubWluO1xuXG4vKipcbiAqIEdldHMgdGhlIHRpbWVzdGFtcCBvZiB0aGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0aGF0IGhhdmUgZWxhcHNlZCBzaW5jZVxuICogdGhlIFVuaXggZXBvY2ggKDEgSmFudWFyeSAxOTcwIDAwOjAwOjAwIFVUQykuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAyLjQuMFxuICogQGNhdGVnb3J5IERhdGVcbiAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHRpbWVzdGFtcC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5kZWZlcihmdW5jdGlvbihzdGFtcCkge1xuICogICBjb25zb2xlLmxvZyhfLm5vdygpIC0gc3RhbXApO1xuICogfSwgXy5ub3coKSk7XG4gKiAvLyA9PiBMb2dzIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGl0IHRvb2sgZm9yIHRoZSBkZWZlcnJlZCBpbnZvY2F0aW9uLlxuICovXG52YXIgbm93ID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiByb290LkRhdGUubm93KCk7XG59O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBkZWJvdW5jZWQgZnVuY3Rpb24gdGhhdCBkZWxheXMgaW52b2tpbmcgYGZ1bmNgIHVudGlsIGFmdGVyIGB3YWl0YFxuICogbWlsbGlzZWNvbmRzIGhhdmUgZWxhcHNlZCBzaW5jZSB0aGUgbGFzdCB0aW1lIHRoZSBkZWJvdW5jZWQgZnVuY3Rpb24gd2FzXG4gKiBpbnZva2VkLiBUaGUgZGVib3VuY2VkIGZ1bmN0aW9uIGNvbWVzIHdpdGggYSBgY2FuY2VsYCBtZXRob2QgdG8gY2FuY2VsXG4gKiBkZWxheWVkIGBmdW5jYCBpbnZvY2F0aW9ucyBhbmQgYSBgZmx1c2hgIG1ldGhvZCB0byBpbW1lZGlhdGVseSBpbnZva2UgdGhlbS5cbiAqIFByb3ZpZGUgYG9wdGlvbnNgIHRvIGluZGljYXRlIHdoZXRoZXIgYGZ1bmNgIHNob3VsZCBiZSBpbnZva2VkIG9uIHRoZVxuICogbGVhZGluZyBhbmQvb3IgdHJhaWxpbmcgZWRnZSBvZiB0aGUgYHdhaXRgIHRpbWVvdXQuIFRoZSBgZnVuY2AgaXMgaW52b2tlZFxuICogd2l0aCB0aGUgbGFzdCBhcmd1bWVudHMgcHJvdmlkZWQgdG8gdGhlIGRlYm91bmNlZCBmdW5jdGlvbi4gU3Vic2VxdWVudFxuICogY2FsbHMgdG8gdGhlIGRlYm91bmNlZCBmdW5jdGlvbiByZXR1cm4gdGhlIHJlc3VsdCBvZiB0aGUgbGFzdCBgZnVuY2BcbiAqIGludm9jYXRpb24uXG4gKlxuICogKipOb3RlOioqIElmIGBsZWFkaW5nYCBhbmQgYHRyYWlsaW5nYCBvcHRpb25zIGFyZSBgdHJ1ZWAsIGBmdW5jYCBpc1xuICogaW52b2tlZCBvbiB0aGUgdHJhaWxpbmcgZWRnZSBvZiB0aGUgdGltZW91dCBvbmx5IGlmIHRoZSBkZWJvdW5jZWQgZnVuY3Rpb25cbiAqIGlzIGludm9rZWQgbW9yZSB0aGFuIG9uY2UgZHVyaW5nIHRoZSBgd2FpdGAgdGltZW91dC5cbiAqXG4gKiBJZiBgd2FpdGAgaXMgYDBgIGFuZCBgbGVhZGluZ2AgaXMgYGZhbHNlYCwgYGZ1bmNgIGludm9jYXRpb24gaXMgZGVmZXJyZWRcbiAqIHVudGlsIHRvIHRoZSBuZXh0IHRpY2ssIHNpbWlsYXIgdG8gYHNldFRpbWVvdXRgIHdpdGggYSB0aW1lb3V0IG9mIGAwYC5cbiAqXG4gKiBTZWUgW0RhdmlkIENvcmJhY2hvJ3MgYXJ0aWNsZV0oaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS9kZWJvdW5jaW5nLXRocm90dGxpbmctZXhwbGFpbmVkLWV4YW1wbGVzLylcbiAqIGZvciBkZXRhaWxzIG92ZXIgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gYF8uZGVib3VuY2VgIGFuZCBgXy50aHJvdHRsZWAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBkZWJvdW5jZS5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbd2FpdD0wXSBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byBkZWxheS5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9ucz17fV0gVGhlIG9wdGlvbnMgb2JqZWN0LlxuICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWFkaW5nPWZhbHNlXVxuICogIFNwZWNpZnkgaW52b2tpbmcgb24gdGhlIGxlYWRpbmcgZWRnZSBvZiB0aGUgdGltZW91dC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5tYXhXYWl0XVxuICogIFRoZSBtYXhpbXVtIHRpbWUgYGZ1bmNgIGlzIGFsbG93ZWQgdG8gYmUgZGVsYXllZCBiZWZvcmUgaXQncyBpbnZva2VkLlxuICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy50cmFpbGluZz10cnVlXVxuICogIFNwZWNpZnkgaW52b2tpbmcgb24gdGhlIHRyYWlsaW5nIGVkZ2Ugb2YgdGhlIHRpbWVvdXQuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBkZWJvdW5jZWQgZnVuY3Rpb24uXG4gKiBAZXhhbXBsZVxuICpcbiAqIC8vIEF2b2lkIGNvc3RseSBjYWxjdWxhdGlvbnMgd2hpbGUgdGhlIHdpbmRvdyBzaXplIGlzIGluIGZsdXguXG4gKiBqUXVlcnkod2luZG93KS5vbigncmVzaXplJywgXy5kZWJvdW5jZShjYWxjdWxhdGVMYXlvdXQsIDE1MCkpO1xuICpcbiAqIC8vIEludm9rZSBgc2VuZE1haWxgIHdoZW4gY2xpY2tlZCwgZGVib3VuY2luZyBzdWJzZXF1ZW50IGNhbGxzLlxuICogalF1ZXJ5KGVsZW1lbnQpLm9uKCdjbGljaycsIF8uZGVib3VuY2Uoc2VuZE1haWwsIDMwMCwge1xuICogICAnbGVhZGluZyc6IHRydWUsXG4gKiAgICd0cmFpbGluZyc6IGZhbHNlXG4gKiB9KSk7XG4gKlxuICogLy8gRW5zdXJlIGBiYXRjaExvZ2AgaXMgaW52b2tlZCBvbmNlIGFmdGVyIDEgc2Vjb25kIG9mIGRlYm91bmNlZCBjYWxscy5cbiAqIHZhciBkZWJvdW5jZWQgPSBfLmRlYm91bmNlKGJhdGNoTG9nLCAyNTAsIHsgJ21heFdhaXQnOiAxMDAwIH0pO1xuICogdmFyIHNvdXJjZSA9IG5ldyBFdmVudFNvdXJjZSgnL3N0cmVhbScpO1xuICogalF1ZXJ5KHNvdXJjZSkub24oJ21lc3NhZ2UnLCBkZWJvdW5jZWQpO1xuICpcbiAqIC8vIENhbmNlbCB0aGUgdHJhaWxpbmcgZGVib3VuY2VkIGludm9jYXRpb24uXG4gKiBqUXVlcnkod2luZG93KS5vbigncG9wc3RhdGUnLCBkZWJvdW5jZWQuY2FuY2VsKTtcbiAqL1xuZnVuY3Rpb24gZGVib3VuY2UoZnVuYywgd2FpdCwgb3B0aW9ucykge1xuICB2YXIgbGFzdEFyZ3MsXG4gICAgICBsYXN0VGhpcyxcbiAgICAgIG1heFdhaXQsXG4gICAgICByZXN1bHQsXG4gICAgICB0aW1lcklkLFxuICAgICAgbGFzdENhbGxUaW1lLFxuICAgICAgbGFzdEludm9rZVRpbWUgPSAwLFxuICAgICAgbGVhZGluZyA9IGZhbHNlLFxuICAgICAgbWF4aW5nID0gZmFsc2UsXG4gICAgICB0cmFpbGluZyA9IHRydWU7XG5cbiAgaWYgKHR5cGVvZiBmdW5jICE9ICdmdW5jdGlvbicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEZVTkNfRVJST1JfVEVYVCk7XG4gIH1cbiAgd2FpdCA9IHRvTnVtYmVyKHdhaXQpIHx8IDA7XG4gIGlmIChpc09iamVjdChvcHRpb25zKSkge1xuICAgIGxlYWRpbmcgPSAhIW9wdGlvbnMubGVhZGluZztcbiAgICBtYXhpbmcgPSAnbWF4V2FpdCcgaW4gb3B0aW9ucztcbiAgICBtYXhXYWl0ID0gbWF4aW5nID8gbmF0aXZlTWF4KHRvTnVtYmVyKG9wdGlvbnMubWF4V2FpdCkgfHwgMCwgd2FpdCkgOiBtYXhXYWl0O1xuICAgIHRyYWlsaW5nID0gJ3RyYWlsaW5nJyBpbiBvcHRpb25zID8gISFvcHRpb25zLnRyYWlsaW5nIDogdHJhaWxpbmc7XG4gIH1cblxuICBmdW5jdGlvbiBpbnZva2VGdW5jKHRpbWUpIHtcbiAgICB2YXIgYXJncyA9IGxhc3RBcmdzLFxuICAgICAgICB0aGlzQXJnID0gbGFzdFRoaXM7XG5cbiAgICBsYXN0QXJncyA9IGxhc3RUaGlzID0gdW5kZWZpbmVkO1xuICAgIGxhc3RJbnZva2VUaW1lID0gdGltZTtcbiAgICByZXN1bHQgPSBmdW5jLmFwcGx5KHRoaXNBcmcsIGFyZ3MpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBmdW5jdGlvbiBsZWFkaW5nRWRnZSh0aW1lKSB7XG4gICAgLy8gUmVzZXQgYW55IGBtYXhXYWl0YCB0aW1lci5cbiAgICBsYXN0SW52b2tlVGltZSA9IHRpbWU7XG4gICAgLy8gU3RhcnQgdGhlIHRpbWVyIGZvciB0aGUgdHJhaWxpbmcgZWRnZS5cbiAgICB0aW1lcklkID0gc2V0VGltZW91dCh0aW1lckV4cGlyZWQsIHdhaXQpO1xuICAgIC8vIEludm9rZSB0aGUgbGVhZGluZyBlZGdlLlxuICAgIHJldHVybiBsZWFkaW5nID8gaW52b2tlRnVuYyh0aW1lKSA6IHJlc3VsdDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlbWFpbmluZ1dhaXQodGltZSkge1xuICAgIHZhciB0aW1lU2luY2VMYXN0Q2FsbCA9IHRpbWUgLSBsYXN0Q2FsbFRpbWUsXG4gICAgICAgIHRpbWVTaW5jZUxhc3RJbnZva2UgPSB0aW1lIC0gbGFzdEludm9rZVRpbWUsXG4gICAgICAgIHJlc3VsdCA9IHdhaXQgLSB0aW1lU2luY2VMYXN0Q2FsbDtcblxuICAgIHJldHVybiBtYXhpbmcgPyBuYXRpdmVNaW4ocmVzdWx0LCBtYXhXYWl0IC0gdGltZVNpbmNlTGFzdEludm9rZSkgOiByZXN1bHQ7XG4gIH1cblxuICBmdW5jdGlvbiBzaG91bGRJbnZva2UodGltZSkge1xuICAgIHZhciB0aW1lU2luY2VMYXN0Q2FsbCA9IHRpbWUgLSBsYXN0Q2FsbFRpbWUsXG4gICAgICAgIHRpbWVTaW5jZUxhc3RJbnZva2UgPSB0aW1lIC0gbGFzdEludm9rZVRpbWU7XG5cbiAgICAvLyBFaXRoZXIgdGhpcyBpcyB0aGUgZmlyc3QgY2FsbCwgYWN0aXZpdHkgaGFzIHN0b3BwZWQgYW5kIHdlJ3JlIGF0IHRoZVxuICAgIC8vIHRyYWlsaW5nIGVkZ2UsIHRoZSBzeXN0ZW0gdGltZSBoYXMgZ29uZSBiYWNrd2FyZHMgYW5kIHdlJ3JlIHRyZWF0aW5nXG4gICAgLy8gaXQgYXMgdGhlIHRyYWlsaW5nIGVkZ2UsIG9yIHdlJ3ZlIGhpdCB0aGUgYG1heFdhaXRgIGxpbWl0LlxuICAgIHJldHVybiAobGFzdENhbGxUaW1lID09PSB1bmRlZmluZWQgfHwgKHRpbWVTaW5jZUxhc3RDYWxsID49IHdhaXQpIHx8XG4gICAgICAodGltZVNpbmNlTGFzdENhbGwgPCAwKSB8fCAobWF4aW5nICYmIHRpbWVTaW5jZUxhc3RJbnZva2UgPj0gbWF4V2FpdCkpO1xuICB9XG5cbiAgZnVuY3Rpb24gdGltZXJFeHBpcmVkKCkge1xuICAgIHZhciB0aW1lID0gbm93KCk7XG4gICAgaWYgKHNob3VsZEludm9rZSh0aW1lKSkge1xuICAgICAgcmV0dXJuIHRyYWlsaW5nRWRnZSh0aW1lKTtcbiAgICB9XG4gICAgLy8gUmVzdGFydCB0aGUgdGltZXIuXG4gICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCByZW1haW5pbmdXYWl0KHRpbWUpKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHRyYWlsaW5nRWRnZSh0aW1lKSB7XG4gICAgdGltZXJJZCA9IHVuZGVmaW5lZDtcblxuICAgIC8vIE9ubHkgaW52b2tlIGlmIHdlIGhhdmUgYGxhc3RBcmdzYCB3aGljaCBtZWFucyBgZnVuY2AgaGFzIGJlZW5cbiAgICAvLyBkZWJvdW5jZWQgYXQgbGVhc3Qgb25jZS5cbiAgICBpZiAodHJhaWxpbmcgJiYgbGFzdEFyZ3MpIHtcbiAgICAgIHJldHVybiBpbnZva2VGdW5jKHRpbWUpO1xuICAgIH1cbiAgICBsYXN0QXJncyA9IGxhc3RUaGlzID0gdW5kZWZpbmVkO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBmdW5jdGlvbiBjYW5jZWwoKSB7XG4gICAgaWYgKHRpbWVySWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRpbWVySWQpO1xuICAgIH1cbiAgICBsYXN0SW52b2tlVGltZSA9IDA7XG4gICAgbGFzdEFyZ3MgPSBsYXN0Q2FsbFRpbWUgPSBsYXN0VGhpcyA9IHRpbWVySWQgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBmdW5jdGlvbiBmbHVzaCgpIHtcbiAgICByZXR1cm4gdGltZXJJZCA9PT0gdW5kZWZpbmVkID8gcmVzdWx0IDogdHJhaWxpbmdFZGdlKG5vdygpKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGRlYm91bmNlZCgpIHtcbiAgICB2YXIgdGltZSA9IG5vdygpLFxuICAgICAgICBpc0ludm9raW5nID0gc2hvdWxkSW52b2tlKHRpbWUpO1xuXG4gICAgbGFzdEFyZ3MgPSBhcmd1bWVudHM7XG4gICAgbGFzdFRoaXMgPSB0aGlzO1xuICAgIGxhc3RDYWxsVGltZSA9IHRpbWU7XG5cbiAgICBpZiAoaXNJbnZva2luZykge1xuICAgICAgaWYgKHRpbWVySWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gbGVhZGluZ0VkZ2UobGFzdENhbGxUaW1lKTtcbiAgICAgIH1cbiAgICAgIGlmIChtYXhpbmcpIHtcbiAgICAgICAgLy8gSGFuZGxlIGludm9jYXRpb25zIGluIGEgdGlnaHQgbG9vcC5cbiAgICAgICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCB3YWl0KTtcbiAgICAgICAgcmV0dXJuIGludm9rZUZ1bmMobGFzdENhbGxUaW1lKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRpbWVySWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCB3YWl0KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICBkZWJvdW5jZWQuY2FuY2VsID0gY2FuY2VsO1xuICBkZWJvdW5jZWQuZmx1c2ggPSBmbHVzaDtcbiAgcmV0dXJuIGRlYm91bmNlZDtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgdGhyb3R0bGVkIGZ1bmN0aW9uIHRoYXQgb25seSBpbnZva2VzIGBmdW5jYCBhdCBtb3N0IG9uY2UgcGVyXG4gKiBldmVyeSBgd2FpdGAgbWlsbGlzZWNvbmRzLiBUaGUgdGhyb3R0bGVkIGZ1bmN0aW9uIGNvbWVzIHdpdGggYSBgY2FuY2VsYFxuICogbWV0aG9kIHRvIGNhbmNlbCBkZWxheWVkIGBmdW5jYCBpbnZvY2F0aW9ucyBhbmQgYSBgZmx1c2hgIG1ldGhvZCB0b1xuICogaW1tZWRpYXRlbHkgaW52b2tlIHRoZW0uIFByb3ZpZGUgYG9wdGlvbnNgIHRvIGluZGljYXRlIHdoZXRoZXIgYGZ1bmNgXG4gKiBzaG91bGQgYmUgaW52b2tlZCBvbiB0aGUgbGVhZGluZyBhbmQvb3IgdHJhaWxpbmcgZWRnZSBvZiB0aGUgYHdhaXRgXG4gKiB0aW1lb3V0LiBUaGUgYGZ1bmNgIGlzIGludm9rZWQgd2l0aCB0aGUgbGFzdCBhcmd1bWVudHMgcHJvdmlkZWQgdG8gdGhlXG4gKiB0aHJvdHRsZWQgZnVuY3Rpb24uIFN1YnNlcXVlbnQgY2FsbHMgdG8gdGhlIHRocm90dGxlZCBmdW5jdGlvbiByZXR1cm4gdGhlXG4gKiByZXN1bHQgb2YgdGhlIGxhc3QgYGZ1bmNgIGludm9jYXRpb24uXG4gKlxuICogKipOb3RlOioqIElmIGBsZWFkaW5nYCBhbmQgYHRyYWlsaW5nYCBvcHRpb25zIGFyZSBgdHJ1ZWAsIGBmdW5jYCBpc1xuICogaW52b2tlZCBvbiB0aGUgdHJhaWxpbmcgZWRnZSBvZiB0aGUgdGltZW91dCBvbmx5IGlmIHRoZSB0aHJvdHRsZWQgZnVuY3Rpb25cbiAqIGlzIGludm9rZWQgbW9yZSB0aGFuIG9uY2UgZHVyaW5nIHRoZSBgd2FpdGAgdGltZW91dC5cbiAqXG4gKiBJZiBgd2FpdGAgaXMgYDBgIGFuZCBgbGVhZGluZ2AgaXMgYGZhbHNlYCwgYGZ1bmNgIGludm9jYXRpb24gaXMgZGVmZXJyZWRcbiAqIHVudGlsIHRvIHRoZSBuZXh0IHRpY2ssIHNpbWlsYXIgdG8gYHNldFRpbWVvdXRgIHdpdGggYSB0aW1lb3V0IG9mIGAwYC5cbiAqXG4gKiBTZWUgW0RhdmlkIENvcmJhY2hvJ3MgYXJ0aWNsZV0oaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS9kZWJvdW5jaW5nLXRocm90dGxpbmctZXhwbGFpbmVkLWV4YW1wbGVzLylcbiAqIGZvciBkZXRhaWxzIG92ZXIgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gYF8udGhyb3R0bGVgIGFuZCBgXy5kZWJvdW5jZWAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byB0aHJvdHRsZS5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbd2FpdD0wXSBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byB0aHJvdHRsZSBpbnZvY2F0aW9ucyB0by5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9ucz17fV0gVGhlIG9wdGlvbnMgb2JqZWN0LlxuICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWFkaW5nPXRydWVdXG4gKiAgU3BlY2lmeSBpbnZva2luZyBvbiB0aGUgbGVhZGluZyBlZGdlIG9mIHRoZSB0aW1lb3V0LlxuICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy50cmFpbGluZz10cnVlXVxuICogIFNwZWNpZnkgaW52b2tpbmcgb24gdGhlIHRyYWlsaW5nIGVkZ2Ugb2YgdGhlIHRpbWVvdXQuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyB0aHJvdHRsZWQgZnVuY3Rpb24uXG4gKiBAZXhhbXBsZVxuICpcbiAqIC8vIEF2b2lkIGV4Y2Vzc2l2ZWx5IHVwZGF0aW5nIHRoZSBwb3NpdGlvbiB3aGlsZSBzY3JvbGxpbmcuXG4gKiBqUXVlcnkod2luZG93KS5vbignc2Nyb2xsJywgXy50aHJvdHRsZSh1cGRhdGVQb3NpdGlvbiwgMTAwKSk7XG4gKlxuICogLy8gSW52b2tlIGByZW5ld1Rva2VuYCB3aGVuIHRoZSBjbGljayBldmVudCBpcyBmaXJlZCwgYnV0IG5vdCBtb3JlIHRoYW4gb25jZSBldmVyeSA1IG1pbnV0ZXMuXG4gKiB2YXIgdGhyb3R0bGVkID0gXy50aHJvdHRsZShyZW5ld1Rva2VuLCAzMDAwMDAsIHsgJ3RyYWlsaW5nJzogZmFsc2UgfSk7XG4gKiBqUXVlcnkoZWxlbWVudCkub24oJ2NsaWNrJywgdGhyb3R0bGVkKTtcbiAqXG4gKiAvLyBDYW5jZWwgdGhlIHRyYWlsaW5nIHRocm90dGxlZCBpbnZvY2F0aW9uLlxuICogalF1ZXJ5KHdpbmRvdykub24oJ3BvcHN0YXRlJywgdGhyb3R0bGVkLmNhbmNlbCk7XG4gKi9cbmZ1bmN0aW9uIHRocm90dGxlKGZ1bmMsIHdhaXQsIG9wdGlvbnMpIHtcbiAgdmFyIGxlYWRpbmcgPSB0cnVlLFxuICAgICAgdHJhaWxpbmcgPSB0cnVlO1xuXG4gIGlmICh0eXBlb2YgZnVuYyAhPSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihGVU5DX0VSUk9SX1RFWFQpO1xuICB9XG4gIGlmIChpc09iamVjdChvcHRpb25zKSkge1xuICAgIGxlYWRpbmcgPSAnbGVhZGluZycgaW4gb3B0aW9ucyA/ICEhb3B0aW9ucy5sZWFkaW5nIDogbGVhZGluZztcbiAgICB0cmFpbGluZyA9ICd0cmFpbGluZycgaW4gb3B0aW9ucyA/ICEhb3B0aW9ucy50cmFpbGluZyA6IHRyYWlsaW5nO1xuICB9XG4gIHJldHVybiBkZWJvdW5jZShmdW5jLCB3YWl0LCB7XG4gICAgJ2xlYWRpbmcnOiBsZWFkaW5nLFxuICAgICdtYXhXYWl0Jzogd2FpdCxcbiAgICAndHJhaWxpbmcnOiB0cmFpbGluZ1xuICB9KTtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyB0aGVcbiAqIFtsYW5ndWFnZSB0eXBlXShodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtZWNtYXNjcmlwdC1sYW5ndWFnZS10eXBlcylcbiAqIG9mIGBPYmplY3RgLiAoZS5nLiBhcnJheXMsIGZ1bmN0aW9ucywgb2JqZWN0cywgcmVnZXhlcywgYG5ldyBOdW1iZXIoMClgLCBhbmQgYG5ldyBTdHJpbmcoJycpYClcbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc09iamVjdCh7fSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdChbMSwgMiwgM10pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3QoXy5ub29wKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0KG51bGwpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNPYmplY3QodmFsdWUpIHtcbiAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gIHJldHVybiAhIXZhbHVlICYmICh0eXBlID09ICdvYmplY3QnIHx8IHR5cGUgPT0gJ2Z1bmN0aW9uJyk7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgb2JqZWN0LWxpa2UuIEEgdmFsdWUgaXMgb2JqZWN0LWxpa2UgaWYgaXQncyBub3QgYG51bGxgXG4gKiBhbmQgaGFzIGEgYHR5cGVvZmAgcmVzdWx0IG9mIFwib2JqZWN0XCIuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgb2JqZWN0LWxpa2UsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc09iamVjdExpa2Uoe30pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3RMaWtlKFsxLCAyLCAzXSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdExpa2UoXy5ub29wKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc09iamVjdExpa2UobnVsbCk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc09iamVjdExpa2UodmFsdWUpIHtcbiAgcmV0dXJuICEhdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09ICdvYmplY3QnO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgU3ltYm9sYCBwcmltaXRpdmUgb3Igb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgc3ltYm9sLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNTeW1ib2woU3ltYm9sLml0ZXJhdG9yKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzU3ltYm9sKCdhYmMnKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzU3ltYm9sKHZhbHVlKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gJ3N5bWJvbCcgfHxcbiAgICAoaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBvYmplY3RUb1N0cmluZy5jYWxsKHZhbHVlKSA9PSBzeW1ib2xUYWcpO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBudW1iZXIuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHByb2Nlc3MuXG4gKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBudW1iZXIuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8udG9OdW1iZXIoMy4yKTtcbiAqIC8vID0+IDMuMlxuICpcbiAqIF8udG9OdW1iZXIoTnVtYmVyLk1JTl9WQUxVRSk7XG4gKiAvLyA9PiA1ZS0zMjRcbiAqXG4gKiBfLnRvTnVtYmVyKEluZmluaXR5KTtcbiAqIC8vID0+IEluZmluaXR5XG4gKlxuICogXy50b051bWJlcignMy4yJyk7XG4gKiAvLyA9PiAzLjJcbiAqL1xuZnVuY3Rpb24gdG9OdW1iZXIodmFsdWUpIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnbnVtYmVyJykge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICBpZiAoaXNTeW1ib2wodmFsdWUpKSB7XG4gICAgcmV0dXJuIE5BTjtcbiAgfVxuICBpZiAoaXNPYmplY3QodmFsdWUpKSB7XG4gICAgdmFyIG90aGVyID0gdHlwZW9mIHZhbHVlLnZhbHVlT2YgPT0gJ2Z1bmN0aW9uJyA/IHZhbHVlLnZhbHVlT2YoKSA6IHZhbHVlO1xuICAgIHZhbHVlID0gaXNPYmplY3Qob3RoZXIpID8gKG90aGVyICsgJycpIDogb3RoZXI7XG4gIH1cbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPSAnc3RyaW5nJykge1xuICAgIHJldHVybiB2YWx1ZSA9PT0gMCA/IHZhbHVlIDogK3ZhbHVlO1xuICB9XG4gIHZhbHVlID0gdmFsdWUucmVwbGFjZShyZVRyaW0sICcnKTtcbiAgdmFyIGlzQmluYXJ5ID0gcmVJc0JpbmFyeS50ZXN0KHZhbHVlKTtcbiAgcmV0dXJuIChpc0JpbmFyeSB8fCByZUlzT2N0YWwudGVzdCh2YWx1ZSkpXG4gICAgPyBmcmVlUGFyc2VJbnQodmFsdWUuc2xpY2UoMiksIGlzQmluYXJ5ID8gMiA6IDgpXG4gICAgOiAocmVJc0JhZEhleC50ZXN0KHZhbHVlKSA/IE5BTiA6ICt2YWx1ZSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdGhyb3R0bGU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash.throttle/index.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2Fblog-details%2Fblog-details-4&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cblog-details%5Cblog-details-4.jsx!": +/*!***************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2Fblog-details%2Fblog-details-4&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cblog-details%5Cblog-details-4.jsx! ***! + \***************************************************************************************************************************************************************************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/blog-details/blog-details-4\",\n function () {\n return __webpack_require__(/*! ./src/pages/blog-details/blog-details-4.jsx */ \"./src/pages/blog-details/blog-details-4.jsx\");\n }\n ]);\n if(true) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/blog-details/blog-details-4\"])\n });\n }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWNsaWVudC1wYWdlcy1sb2FkZXIuanM/cGFnZT0lMkZibG9nLWRldGFpbHMlMkZibG9nLWRldGFpbHMtNCZhYnNvbHV0ZVBhZ2VQYXRoPUMlM0ElNUNVc2VycyU1Q2hwJTVDRGVza3RvcCU1Q2J1c2luZXNzLWh1YiU1Q3NyYyU1Q3BhZ2VzJTVDYmxvZy1kZXRhaWxzJTVDYmxvZy1kZXRhaWxzLTQuanN4IS5qcyIsIm1hcHBpbmdzIjoiO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxtQkFBTyxDQUFDLGdHQUE2QztBQUNwRTtBQUNBO0FBQ0EsT0FBTyxJQUFVO0FBQ2pCLE1BQU0sVUFBVTtBQUNoQjtBQUNBLE9BQU87QUFDUDtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8/NzYwNSJdLCJzb3VyY2VzQ29udGVudCI6WyJcbiAgICAod2luZG93Ll9fTkVYVF9QID0gd2luZG93Ll9fTkVYVF9QIHx8IFtdKS5wdXNoKFtcbiAgICAgIFwiL2Jsb2ctZGV0YWlscy9ibG9nLWRldGFpbHMtNFwiLFxuICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gcmVxdWlyZShcIi4vc3JjL3BhZ2VzL2Jsb2ctZGV0YWlscy9ibG9nLWRldGFpbHMtNC5qc3hcIik7XG4gICAgICB9XG4gICAgXSk7XG4gICAgaWYobW9kdWxlLmhvdCkge1xuICAgICAgbW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgd2luZG93Ll9fTkVYVF9QLnB1c2goW1wiL2Jsb2ctZGV0YWlscy9ibG9nLWRldGFpbHMtNFwiXSlcbiAgICAgIH0pO1xuICAgIH1cbiAgIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2Fblog-details%2Fblog-details-4&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cblog-details%5Cblog-details-4.jsx!\n"); + +/***/ }), + +/***/ "./node_modules/next/link.js": +/*!***********************************!*\ + !*** ./node_modules/next/link.js ***! + \***********************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("module.exports = __webpack_require__(/*! ./dist/client/link */ \"./node_modules/next/dist/client/link.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9saW5rLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBLHlHQUE4QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9saW5rLmpzPzc1YjMiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Rpc3QvY2xpZW50L2xpbmsnKVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/link.js\n"); + +/***/ }), + +/***/ "./node_modules/prop-types/checkPropTypes.js": +/*!***************************************************!*\ + !*** ./node_modules/prop-types/checkPropTypes.js ***! + \***************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\n\n\nvar printWarning = function() {};\n\nif (true) {\n var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ \"./node_modules/prop-types/lib/ReactPropTypesSecret.js\");\n var loggedTypeFailures = {};\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (true) {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (true) {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9jaGVja1Byb3BUeXBlcy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWE7O0FBRWI7O0FBRUEsSUFBSSxJQUFxQztBQUN6Qyw2QkFBNkIsbUJBQU8sQ0FBQyx5RkFBNEI7QUFDakU7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsV0FBVztBQUN0QjtBQUNBO0FBQ0E7QUFDQSxNQUFNLElBQXFDO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2R0FBNkc7QUFDN0c7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0REFBNEQ7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLElBQXFDO0FBQzNDO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9jaGVja1Byb3BUeXBlcy5qcz8yNjI2Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgcHJpbnRXYXJuaW5nID0gZnVuY3Rpb24oKSB7fTtcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgdmFyIFJlYWN0UHJvcFR5cGVzU2VjcmV0ID0gcmVxdWlyZSgnLi9saWIvUmVhY3RQcm9wVHlwZXNTZWNyZXQnKTtcbiAgdmFyIGxvZ2dlZFR5cGVGYWlsdXJlcyA9IHt9O1xuICB2YXIgaGFzID0gRnVuY3Rpb24uY2FsbC5iaW5kKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkpO1xuXG4gIHByaW50V2FybmluZyA9IGZ1bmN0aW9uKHRleHQpIHtcbiAgICB2YXIgbWVzc2FnZSA9ICdXYXJuaW5nOiAnICsgdGV4dDtcbiAgICBpZiAodHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBjb25zb2xlLmVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgLy8gLS0tIFdlbGNvbWUgdG8gZGVidWdnaW5nIFJlYWN0IC0tLVxuICAgICAgLy8gVGhpcyBlcnJvciB3YXMgdGhyb3duIGFzIGEgY29udmVuaWVuY2Ugc28gdGhhdCB5b3UgY2FuIHVzZSB0aGlzIHN0YWNrXG4gICAgICAvLyB0byBmaW5kIHRoZSBjYWxsc2l0ZSB0aGF0IGNhdXNlZCB0aGlzIHdhcm5pbmcgdG8gZmlyZS5cbiAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgICB9IGNhdGNoICh4KSB7fVxuICB9O1xufVxuXG4vKipcbiAqIEFzc2VydCB0aGF0IHRoZSB2YWx1ZXMgbWF0Y2ggd2l0aCB0aGUgdHlwZSBzcGVjcy5cbiAqIEVycm9yIG1lc3NhZ2VzIGFyZSBtZW1vcml6ZWQgYW5kIHdpbGwgb25seSBiZSBzaG93biBvbmNlLlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSB0eXBlU3BlY3MgTWFwIG9mIG5hbWUgdG8gYSBSZWFjdFByb3BUeXBlXG4gKiBAcGFyYW0ge29iamVjdH0gdmFsdWVzIFJ1bnRpbWUgdmFsdWVzIHRoYXQgbmVlZCB0byBiZSB0eXBlLWNoZWNrZWRcbiAqIEBwYXJhbSB7c3RyaW5nfSBsb2NhdGlvbiBlLmcuIFwicHJvcFwiLCBcImNvbnRleHRcIiwgXCJjaGlsZCBjb250ZXh0XCJcbiAqIEBwYXJhbSB7c3RyaW5nfSBjb21wb25lbnROYW1lIE5hbWUgb2YgdGhlIGNvbXBvbmVudCBmb3IgZXJyb3IgbWVzc2FnZXMuXG4gKiBAcGFyYW0gez9GdW5jdGlvbn0gZ2V0U3RhY2sgUmV0dXJucyB0aGUgY29tcG9uZW50IHN0YWNrLlxuICogQHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gY2hlY2tQcm9wVHlwZXModHlwZVNwZWNzLCB2YWx1ZXMsIGxvY2F0aW9uLCBjb21wb25lbnROYW1lLCBnZXRTdGFjaykge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGZvciAodmFyIHR5cGVTcGVjTmFtZSBpbiB0eXBlU3BlY3MpIHtcbiAgICAgIGlmIChoYXModHlwZVNwZWNzLCB0eXBlU3BlY05hbWUpKSB7XG4gICAgICAgIHZhciBlcnJvcjtcbiAgICAgICAgLy8gUHJvcCB0eXBlIHZhbGlkYXRpb24gbWF5IHRocm93LiBJbiBjYXNlIHRoZXkgZG8sIHdlIGRvbid0IHdhbnQgdG9cbiAgICAgICAgLy8gZmFpbCB0aGUgcmVuZGVyIHBoYXNlIHdoZXJlIGl0IGRpZG4ndCBmYWlsIGJlZm9yZS4gU28gd2UgbG9nIGl0LlxuICAgICAgICAvLyBBZnRlciB0aGVzZSBoYXZlIGJlZW4gY2xlYW5lZCB1cCwgd2UnbGwgbGV0IHRoZW0gdGhyb3cuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgLy8gVGhpcyBpcyBpbnRlbnRpb25hbGx5IGFuIGludmFyaWFudCB0aGF0IGdldHMgY2F1Z2h0LiBJdCdzIHRoZSBzYW1lXG4gICAgICAgICAgLy8gYmVoYXZpb3IgYXMgd2l0aG91dCB0aGlzIHN0YXRlbWVudCBleGNlcHQgd2l0aCBhIGJldHRlciBtZXNzYWdlLlxuICAgICAgICAgIGlmICh0eXBlb2YgdHlwZVNwZWNzW3R5cGVTcGVjTmFtZV0gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHZhciBlcnIgPSBFcnJvcihcbiAgICAgICAgICAgICAgKGNvbXBvbmVudE5hbWUgfHwgJ1JlYWN0IGNsYXNzJykgKyAnOiAnICsgbG9jYXRpb24gKyAnIHR5cGUgYCcgKyB0eXBlU3BlY05hbWUgKyAnYCBpcyBpbnZhbGlkOyAnICtcbiAgICAgICAgICAgICAgJ2l0IG11c3QgYmUgYSBmdW5jdGlvbiwgdXN1YWxseSBmcm9tIHRoZSBgcHJvcC10eXBlc2AgcGFja2FnZSwgYnV0IHJlY2VpdmVkIGAnICsgdHlwZW9mIHR5cGVTcGVjc1t0eXBlU3BlY05hbWVdICsgJ2AuJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGVyci5uYW1lID0gJ0ludmFyaWFudCBWaW9sYXRpb24nO1xuICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlcnJvciA9IHR5cGVTcGVjc1t0eXBlU3BlY05hbWVdKHZhbHVlcywgdHlwZVNwZWNOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgbnVsbCwgUmVhY3RQcm9wVHlwZXNTZWNyZXQpO1xuICAgICAgICB9IGNhdGNoIChleCkge1xuICAgICAgICAgIGVycm9yID0gZXg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVycm9yICYmICEoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikpIHtcbiAgICAgICAgICBwcmludFdhcm5pbmcoXG4gICAgICAgICAgICAoY29tcG9uZW50TmFtZSB8fCAnUmVhY3QgY2xhc3MnKSArICc6IHR5cGUgc3BlY2lmaWNhdGlvbiBvZiAnICtcbiAgICAgICAgICAgIGxvY2F0aW9uICsgJyBgJyArIHR5cGVTcGVjTmFtZSArICdgIGlzIGludmFsaWQ7IHRoZSB0eXBlIGNoZWNrZXIgJyArXG4gICAgICAgICAgICAnZnVuY3Rpb24gbXVzdCByZXR1cm4gYG51bGxgIG9yIGFuIGBFcnJvcmAgYnV0IHJldHVybmVkIGEgJyArIHR5cGVvZiBlcnJvciArICcuICcgK1xuICAgICAgICAgICAgJ1lvdSBtYXkgaGF2ZSBmb3Jnb3R0ZW4gdG8gcGFzcyBhbiBhcmd1bWVudCB0byB0aGUgdHlwZSBjaGVja2VyICcgK1xuICAgICAgICAgICAgJ2NyZWF0b3IgKGFycmF5T2YsIGluc3RhbmNlT2YsIG9iamVjdE9mLCBvbmVPZiwgb25lT2ZUeXBlLCBhbmQgJyArXG4gICAgICAgICAgICAnc2hhcGUgYWxsIHJlcXVpcmUgYW4gYXJndW1lbnQpLidcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yICYmICEoZXJyb3IubWVzc2FnZSBpbiBsb2dnZWRUeXBlRmFpbHVyZXMpKSB7XG4gICAgICAgICAgLy8gT25seSBtb25pdG9yIHRoaXMgZmFpbHVyZSBvbmNlIGJlY2F1c2UgdGhlcmUgdGVuZHMgdG8gYmUgYSBsb3Qgb2YgdGhlXG4gICAgICAgICAgLy8gc2FtZSBlcnJvci5cbiAgICAgICAgICBsb2dnZWRUeXBlRmFpbHVyZXNbZXJyb3IubWVzc2FnZV0gPSB0cnVlO1xuXG4gICAgICAgICAgdmFyIHN0YWNrID0gZ2V0U3RhY2sgPyBnZXRTdGFjaygpIDogJyc7XG5cbiAgICAgICAgICBwcmludFdhcm5pbmcoXG4gICAgICAgICAgICAnRmFpbGVkICcgKyBsb2NhdGlvbiArICcgdHlwZTogJyArIGVycm9yLm1lc3NhZ2UgKyAoc3RhY2sgIT0gbnVsbCA/IHN0YWNrIDogJycpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFJlc2V0cyB3YXJuaW5nIGNhY2hlIHdoZW4gdGVzdGluZy5cbiAqXG4gKiBAcHJpdmF0ZVxuICovXG5jaGVja1Byb3BUeXBlcy5yZXNldFdhcm5pbmdDYWNoZSA9IGZ1bmN0aW9uKCkge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGxvZ2dlZFR5cGVGYWlsdXJlcyA9IHt9O1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY2hlY2tQcm9wVHlwZXM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/prop-types/checkPropTypes.js\n"); + +/***/ }), + +/***/ "./node_modules/prop-types/factoryWithTypeCheckers.js": +/*!************************************************************!*\ + !*** ./node_modules/prop-types/factoryWithTypeCheckers.js ***! + \************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\n\n\nvar ReactIs = __webpack_require__(/*! react-is */ \"./node_modules/prop-types/node_modules/react-is/index.js\");\nvar assign = __webpack_require__(/*! object-assign */ \"./node_modules/next/dist/build/polyfills/object-assign.js\");\n\nvar ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ \"./node_modules/prop-types/lib/ReactPropTypesSecret.js\");\nvar checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ \"./node_modules/prop-types/checkPropTypes.js\");\n\nvar has = Function.call.bind(Object.prototype.hasOwnProperty);\nvar printWarning = function() {};\n\nif (true) {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (true) {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if ( true && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (true) {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n true ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9mYWN0b3J5V2l0aFR5cGVDaGVja2Vycy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWE7O0FBRWIsY0FBYyxtQkFBTyxDQUFDLDBFQUFVO0FBQ2hDLGFBQWEsbUJBQU8sQ0FBQyxnRkFBZTs7QUFFcEMsMkJBQTJCLG1CQUFPLENBQUMseUZBQTRCO0FBQy9ELHFCQUFxQixtQkFBTyxDQUFDLHFFQUFrQjs7QUFFL0M7QUFDQTs7QUFFQSxJQUFJLElBQXFDO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQzs7QUFFM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsU0FBUztBQUN0QixjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWLDhCQUE4QjtBQUM5QixRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQkFBK0IsS0FBSztBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULDRCQUE0QjtBQUM1QixPQUFPO0FBQ1A7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxRQUFRLElBQXFDO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVUsU0FBUyxLQUFxQztBQUN4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixzQkFBc0I7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxVQUFVLElBQXFDO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0Esc0JBQXNCLDJCQUEyQjtBQUNqRDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU0sS0FBcUMsNEZBQTRGLENBQU07QUFDN0k7QUFDQTs7QUFFQSxvQkFBb0IsZ0NBQWdDO0FBQ3BEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHNCQUFzQixnQ0FBZ0M7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QjtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9mYWN0b3J5V2l0aFR5cGVDaGVja2Vycy5qcz9iNzZiIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUmVhY3RJcyA9IHJlcXVpcmUoJ3JlYWN0LWlzJyk7XG52YXIgYXNzaWduID0gcmVxdWlyZSgnb2JqZWN0LWFzc2lnbicpO1xuXG52YXIgUmVhY3RQcm9wVHlwZXNTZWNyZXQgPSByZXF1aXJlKCcuL2xpYi9SZWFjdFByb3BUeXBlc1NlY3JldCcpO1xudmFyIGNoZWNrUHJvcFR5cGVzID0gcmVxdWlyZSgnLi9jaGVja1Byb3BUeXBlcycpO1xuXG52YXIgaGFzID0gRnVuY3Rpb24uY2FsbC5iaW5kKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkpO1xudmFyIHByaW50V2FybmluZyA9IGZ1bmN0aW9uKCkge307XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIHByaW50V2FybmluZyA9IGZ1bmN0aW9uKHRleHQpIHtcbiAgICB2YXIgbWVzc2FnZSA9ICdXYXJuaW5nOiAnICsgdGV4dDtcbiAgICBpZiAodHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBjb25zb2xlLmVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgLy8gLS0tIFdlbGNvbWUgdG8gZGVidWdnaW5nIFJlYWN0IC0tLVxuICAgICAgLy8gVGhpcyBlcnJvciB3YXMgdGhyb3duIGFzIGEgY29udmVuaWVuY2Ugc28gdGhhdCB5b3UgY2FuIHVzZSB0aGlzIHN0YWNrXG4gICAgICAvLyB0byBmaW5kIHRoZSBjYWxsc2l0ZSB0aGF0IGNhdXNlZCB0aGlzIHdhcm5pbmcgdG8gZmlyZS5cbiAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgICB9IGNhdGNoICh4KSB7fVxuICB9O1xufVxuXG5mdW5jdGlvbiBlbXB0eUZ1bmN0aW9uVGhhdFJldHVybnNOdWxsKCkge1xuICByZXR1cm4gbnVsbDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihpc1ZhbGlkRWxlbWVudCwgdGhyb3dPbkRpcmVjdEFjY2Vzcykge1xuICAvKiBnbG9iYWwgU3ltYm9sICovXG4gIHZhciBJVEVSQVRPUl9TWU1CT0wgPSB0eXBlb2YgU3ltYm9sID09PSAnZnVuY3Rpb24nICYmIFN5bWJvbC5pdGVyYXRvcjtcbiAgdmFyIEZBVVhfSVRFUkFUT1JfU1lNQk9MID0gJ0BAaXRlcmF0b3InOyAvLyBCZWZvcmUgU3ltYm9sIHNwZWMuXG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGl0ZXJhdG9yIG1ldGhvZCBmdW5jdGlvbiBjb250YWluZWQgb24gdGhlIGl0ZXJhYmxlIG9iamVjdC5cbiAgICpcbiAgICogQmUgc3VyZSB0byBpbnZva2UgdGhlIGZ1bmN0aW9uIHdpdGggdGhlIGl0ZXJhYmxlIGFzIGNvbnRleHQ6XG4gICAqXG4gICAqICAgICB2YXIgaXRlcmF0b3JGbiA9IGdldEl0ZXJhdG9yRm4obXlJdGVyYWJsZSk7XG4gICAqICAgICBpZiAoaXRlcmF0b3JGbikge1xuICAgKiAgICAgICB2YXIgaXRlcmF0b3IgPSBpdGVyYXRvckZuLmNhbGwobXlJdGVyYWJsZSk7XG4gICAqICAgICAgIC4uLlxuICAgKiAgICAgfVxuICAgKlxuICAgKiBAcGFyYW0gez9vYmplY3R9IG1heWJlSXRlcmFibGVcbiAgICogQHJldHVybiB7P2Z1bmN0aW9ufVxuICAgKi9cbiAgZnVuY3Rpb24gZ2V0SXRlcmF0b3JGbihtYXliZUl0ZXJhYmxlKSB7XG4gICAgdmFyIGl0ZXJhdG9yRm4gPSBtYXliZUl0ZXJhYmxlICYmIChJVEVSQVRPUl9TWU1CT0wgJiYgbWF5YmVJdGVyYWJsZVtJVEVSQVRPUl9TWU1CT0xdIHx8IG1heWJlSXRlcmFibGVbRkFVWF9JVEVSQVRPUl9TWU1CT0xdKTtcbiAgICBpZiAodHlwZW9mIGl0ZXJhdG9yRm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiBpdGVyYXRvckZuO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDb2xsZWN0aW9uIG9mIG1ldGhvZHMgdGhhdCBhbGxvdyBkZWNsYXJhdGlvbiBhbmQgdmFsaWRhdGlvbiBvZiBwcm9wcyB0aGF0IGFyZVxuICAgKiBzdXBwbGllZCB0byBSZWFjdCBjb21wb25lbnRzLiBFeGFtcGxlIHVzYWdlOlxuICAgKlxuICAgKiAgIHZhciBQcm9wcyA9IHJlcXVpcmUoJ1JlYWN0UHJvcFR5cGVzJyk7XG4gICAqICAgdmFyIE15QXJ0aWNsZSA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtcbiAgICogICAgIHByb3BUeXBlczoge1xuICAgKiAgICAgICAvLyBBbiBvcHRpb25hbCBzdHJpbmcgcHJvcCBuYW1lZCBcImRlc2NyaXB0aW9uXCIuXG4gICAqICAgICAgIGRlc2NyaXB0aW9uOiBQcm9wcy5zdHJpbmcsXG4gICAqXG4gICAqICAgICAgIC8vIEEgcmVxdWlyZWQgZW51bSBwcm9wIG5hbWVkIFwiY2F0ZWdvcnlcIi5cbiAgICogICAgICAgY2F0ZWdvcnk6IFByb3BzLm9uZU9mKFsnTmV3cycsJ1Bob3RvcyddKS5pc1JlcXVpcmVkLFxuICAgKlxuICAgKiAgICAgICAvLyBBIHByb3AgbmFtZWQgXCJkaWFsb2dcIiB0aGF0IHJlcXVpcmVzIGFuIGluc3RhbmNlIG9mIERpYWxvZy5cbiAgICogICAgICAgZGlhbG9nOiBQcm9wcy5pbnN0YW5jZU9mKERpYWxvZykuaXNSZXF1aXJlZFxuICAgKiAgICAgfSxcbiAgICogICAgIHJlbmRlcjogZnVuY3Rpb24oKSB7IC4uLiB9XG4gICAqICAgfSk7XG4gICAqXG4gICAqIEEgbW9yZSBmb3JtYWwgc3BlY2lmaWNhdGlvbiBvZiBob3cgdGhlc2UgbWV0aG9kcyBhcmUgdXNlZDpcbiAgICpcbiAgICogICB0eXBlIDo9IGFycmF5fGJvb2x8ZnVuY3xvYmplY3R8bnVtYmVyfHN0cmluZ3xvbmVPZihbLi4uXSl8aW5zdGFuY2VPZiguLi4pXG4gICAqICAgZGVjbCA6PSBSZWFjdFByb3BUeXBlcy57dHlwZX0oLmlzUmVxdWlyZWQpP1xuICAgKlxuICAgKiBFYWNoIGFuZCBldmVyeSBkZWNsYXJhdGlvbiBwcm9kdWNlcyBhIGZ1bmN0aW9uIHdpdGggdGhlIHNhbWUgc2lnbmF0dXJlLiBUaGlzXG4gICAqIGFsbG93cyB0aGUgY3JlYXRpb24gb2YgY3VzdG9tIHZhbGlkYXRpb24gZnVuY3Rpb25zLiBGb3IgZXhhbXBsZTpcbiAgICpcbiAgICogIHZhciBNeUxpbmsgPSBSZWFjdC5jcmVhdGVDbGFzcyh7XG4gICAqICAgIHByb3BUeXBlczoge1xuICAgKiAgICAgIC8vIEFuIG9wdGlvbmFsIHN0cmluZyBvciBVUkkgcHJvcCBuYW1lZCBcImhyZWZcIi5cbiAgICogICAgICBocmVmOiBmdW5jdGlvbihwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUpIHtcbiAgICogICAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wTmFtZV07XG4gICAqICAgICAgICBpZiAocHJvcFZhbHVlICE9IG51bGwgJiYgdHlwZW9mIHByb3BWYWx1ZSAhPT0gJ3N0cmluZycgJiZcbiAgICogICAgICAgICAgICAhKHByb3BWYWx1ZSBpbnN0YW5jZW9mIFVSSSkpIHtcbiAgICogICAgICAgICAgcmV0dXJuIG5ldyBFcnJvcihcbiAgICogICAgICAgICAgICAnRXhwZWN0ZWQgYSBzdHJpbmcgb3IgYW4gVVJJIGZvciAnICsgcHJvcE5hbWUgKyAnIGluICcgK1xuICAgKiAgICAgICAgICAgIGNvbXBvbmVudE5hbWVcbiAgICogICAgICAgICAgKTtcbiAgICogICAgICAgIH1cbiAgICogICAgICB9XG4gICAqICAgIH0sXG4gICAqICAgIHJlbmRlcjogZnVuY3Rpb24oKSB7Li4ufVxuICAgKiAgfSk7XG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cblxuICB2YXIgQU5PTllNT1VTID0gJzw8YW5vbnltb3VzPj4nO1xuXG4gIC8vIEltcG9ydGFudCFcbiAgLy8gS2VlcCB0aGlzIGxpc3QgaW4gc3luYyB3aXRoIHByb2R1Y3Rpb24gdmVyc2lvbiBpbiBgLi9mYWN0b3J5V2l0aFRocm93aW5nU2hpbXMuanNgLlxuICB2YXIgUmVhY3RQcm9wVHlwZXMgPSB7XG4gICAgYXJyYXk6IGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyKCdhcnJheScpLFxuICAgIGJvb2w6IGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyKCdib29sZWFuJyksXG4gICAgZnVuYzogY3JlYXRlUHJpbWl0aXZlVHlwZUNoZWNrZXIoJ2Z1bmN0aW9uJyksXG4gICAgbnVtYmVyOiBjcmVhdGVQcmltaXRpdmVUeXBlQ2hlY2tlcignbnVtYmVyJyksXG4gICAgb2JqZWN0OiBjcmVhdGVQcmltaXRpdmVUeXBlQ2hlY2tlcignb2JqZWN0JyksXG4gICAgc3RyaW5nOiBjcmVhdGVQcmltaXRpdmVUeXBlQ2hlY2tlcignc3RyaW5nJyksXG4gICAgc3ltYm9sOiBjcmVhdGVQcmltaXRpdmVUeXBlQ2hlY2tlcignc3ltYm9sJyksXG5cbiAgICBhbnk6IGNyZWF0ZUFueVR5cGVDaGVja2VyKCksXG4gICAgYXJyYXlPZjogY3JlYXRlQXJyYXlPZlR5cGVDaGVja2VyLFxuICAgIGVsZW1lbnQ6IGNyZWF0ZUVsZW1lbnRUeXBlQ2hlY2tlcigpLFxuICAgIGVsZW1lbnRUeXBlOiBjcmVhdGVFbGVtZW50VHlwZVR5cGVDaGVja2VyKCksXG4gICAgaW5zdGFuY2VPZjogY3JlYXRlSW5zdGFuY2VUeXBlQ2hlY2tlcixcbiAgICBub2RlOiBjcmVhdGVOb2RlQ2hlY2tlcigpLFxuICAgIG9iamVjdE9mOiBjcmVhdGVPYmplY3RPZlR5cGVDaGVja2VyLFxuICAgIG9uZU9mOiBjcmVhdGVFbnVtVHlwZUNoZWNrZXIsXG4gICAgb25lT2ZUeXBlOiBjcmVhdGVVbmlvblR5cGVDaGVja2VyLFxuICAgIHNoYXBlOiBjcmVhdGVTaGFwZVR5cGVDaGVja2VyLFxuICAgIGV4YWN0OiBjcmVhdGVTdHJpY3RTaGFwZVR5cGVDaGVja2VyLFxuICB9O1xuXG4gIC8qKlxuICAgKiBpbmxpbmVkIE9iamVjdC5pcyBwb2x5ZmlsbCB0byBhdm9pZCByZXF1aXJpbmcgY29uc3VtZXJzIHNoaXAgdGhlaXIgb3duXG4gICAqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL09iamVjdC9pc1xuICAgKi9cbiAgLyplc2xpbnQtZGlzYWJsZSBuby1zZWxmLWNvbXBhcmUqL1xuICBmdW5jdGlvbiBpcyh4LCB5KSB7XG4gICAgLy8gU2FtZVZhbHVlIGFsZ29yaXRobVxuICAgIGlmICh4ID09PSB5KSB7XG4gICAgICAvLyBTdGVwcyAxLTUsIDctMTBcbiAgICAgIC8vIFN0ZXBzIDYuYi02LmU6ICswICE9IC0wXG4gICAgICByZXR1cm4geCAhPT0gMCB8fCAxIC8geCA9PT0gMSAvIHk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFN0ZXAgNi5hOiBOYU4gPT0gTmFOXG4gICAgICByZXR1cm4geCAhPT0geCAmJiB5ICE9PSB5O1xuICAgIH1cbiAgfVxuICAvKmVzbGludC1lbmFibGUgbm8tc2VsZi1jb21wYXJlKi9cblxuICAvKipcbiAgICogV2UgdXNlIGFuIEVycm9yLWxpa2Ugb2JqZWN0IGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGFzIHBlb3BsZSBtYXkgY2FsbFxuICAgKiBQcm9wVHlwZXMgZGlyZWN0bHkgYW5kIGluc3BlY3QgdGhlaXIgb3V0cHV0LiBIb3dldmVyLCB3ZSBkb24ndCB1c2UgcmVhbFxuICAgKiBFcnJvcnMgYW55bW9yZS4gV2UgZG9uJ3QgaW5zcGVjdCB0aGVpciBzdGFjayBhbnl3YXksIGFuZCBjcmVhdGluZyB0aGVtXG4gICAqIGlzIHByb2hpYml0aXZlbHkgZXhwZW5zaXZlIGlmIHRoZXkgYXJlIGNyZWF0ZWQgdG9vIG9mdGVuLCBzdWNoIGFzIHdoYXRcbiAgICogaGFwcGVucyBpbiBvbmVPZlR5cGUoKSBmb3IgYW55IHR5cGUgYmVmb3JlIHRoZSBvbmUgdGhhdCBtYXRjaGVkLlxuICAgKi9cbiAgZnVuY3Rpb24gUHJvcFR5cGVFcnJvcihtZXNzYWdlKSB7XG4gICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZTtcbiAgICB0aGlzLnN0YWNrID0gJyc7XG4gIH1cbiAgLy8gTWFrZSBgaW5zdGFuY2VvZiBFcnJvcmAgc3RpbGwgd29yayBmb3IgcmV0dXJuZWQgZXJyb3JzLlxuICBQcm9wVHlwZUVycm9yLnByb3RvdHlwZSA9IEVycm9yLnByb3RvdHlwZTtcblxuICBmdW5jdGlvbiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSkge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICB2YXIgbWFudWFsUHJvcFR5cGVDYWxsQ2FjaGUgPSB7fTtcbiAgICAgIHZhciBtYW51YWxQcm9wVHlwZVdhcm5pbmdDb3VudCA9IDA7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNoZWNrVHlwZShpc1JlcXVpcmVkLCBwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUsIHNlY3JldCkge1xuICAgICAgY29tcG9uZW50TmFtZSA9IGNvbXBvbmVudE5hbWUgfHwgQU5PTllNT1VTO1xuICAgICAgcHJvcEZ1bGxOYW1lID0gcHJvcEZ1bGxOYW1lIHx8IHByb3BOYW1lO1xuXG4gICAgICBpZiAoc2VjcmV0ICE9PSBSZWFjdFByb3BUeXBlc1NlY3JldCkge1xuICAgICAgICBpZiAodGhyb3dPbkRpcmVjdEFjY2Vzcykge1xuICAgICAgICAgIC8vIE5ldyBiZWhhdmlvciBvbmx5IGZvciB1c2VycyBvZiBgcHJvcC10eXBlc2AgcGFja2FnZVxuICAgICAgICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoXG4gICAgICAgICAgICAnQ2FsbGluZyBQcm9wVHlwZXMgdmFsaWRhdG9ycyBkaXJlY3RseSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBgcHJvcC10eXBlc2AgcGFja2FnZS4gJyArXG4gICAgICAgICAgICAnVXNlIGBQcm9wVHlwZXMuY2hlY2tQcm9wVHlwZXMoKWAgdG8gY2FsbCB0aGVtLiAnICtcbiAgICAgICAgICAgICdSZWFkIG1vcmUgYXQgaHR0cDovL2ZiLm1lL3VzZS1jaGVjay1wcm9wLXR5cGVzJ1xuICAgICAgICAgICk7XG4gICAgICAgICAgZXJyLm5hbWUgPSAnSW52YXJpYW50IFZpb2xhdGlvbic7XG4gICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICB9IGVsc2UgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgdHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgLy8gT2xkIGJlaGF2aW9yIGZvciBwZW9wbGUgdXNpbmcgUmVhY3QuUHJvcFR5cGVzXG4gICAgICAgICAgdmFyIGNhY2hlS2V5ID0gY29tcG9uZW50TmFtZSArICc6JyArIHByb3BOYW1lO1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICFtYW51YWxQcm9wVHlwZUNhbGxDYWNoZVtjYWNoZUtleV0gJiZcbiAgICAgICAgICAgIC8vIEF2b2lkIHNwYW1taW5nIHRoZSBjb25zb2xlIGJlY2F1c2UgdGhleSBhcmUgb2Z0ZW4gbm90IGFjdGlvbmFibGUgZXhjZXB0IGZvciBsaWIgYXV0aG9yc1xuICAgICAgICAgICAgbWFudWFsUHJvcFR5cGVXYXJuaW5nQ291bnQgPCAzXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBwcmludFdhcm5pbmcoXG4gICAgICAgICAgICAgICdZb3UgYXJlIG1hbnVhbGx5IGNhbGxpbmcgYSBSZWFjdC5Qcm9wVHlwZXMgdmFsaWRhdGlvbiAnICtcbiAgICAgICAgICAgICAgJ2Z1bmN0aW9uIGZvciB0aGUgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBwcm9wIG9uIGAnICsgY29tcG9uZW50TmFtZSAgKyAnYC4gVGhpcyBpcyBkZXByZWNhdGVkICcgK1xuICAgICAgICAgICAgICAnYW5kIHdpbGwgdGhyb3cgaW4gdGhlIHN0YW5kYWxvbmUgYHByb3AtdHlwZXNgIHBhY2thZ2UuICcgK1xuICAgICAgICAgICAgICAnWW91IG1heSBiZSBzZWVpbmcgdGhpcyB3YXJuaW5nIGR1ZSB0byBhIHRoaXJkLXBhcnR5IFByb3BUeXBlcyAnICtcbiAgICAgICAgICAgICAgJ2xpYnJhcnkuIFNlZSBodHRwczovL2ZiLm1lL3JlYWN0LXdhcm5pbmctZG9udC1jYWxsLXByb3B0eXBlcyAnICsgJ2ZvciBkZXRhaWxzLidcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBtYW51YWxQcm9wVHlwZUNhbGxDYWNoZVtjYWNoZUtleV0gPSB0cnVlO1xuICAgICAgICAgICAgbWFudWFsUHJvcFR5cGVXYXJuaW5nQ291bnQrKztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChwcm9wc1twcm9wTmFtZV0gPT0gbnVsbCkge1xuICAgICAgICBpZiAoaXNSZXF1aXJlZCkge1xuICAgICAgICAgIGlmIChwcm9wc1twcm9wTmFtZV0gPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignVGhlICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBpcyBtYXJrZWQgYXMgcmVxdWlyZWQgJyArICgnaW4gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGJ1dCBpdHMgdmFsdWUgaXMgYG51bGxgLicpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdUaGUgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIGlzIG1hcmtlZCBhcyByZXF1aXJlZCBpbiAnICsgKCdgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgYnV0IGl0cyB2YWx1ZSBpcyBgdW5kZWZpbmVkYC4nKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdmFsaWRhdGUocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgY2hhaW5lZENoZWNrVHlwZSA9IGNoZWNrVHlwZS5iaW5kKG51bGwsIGZhbHNlKTtcbiAgICBjaGFpbmVkQ2hlY2tUeXBlLmlzUmVxdWlyZWQgPSBjaGVja1R5cGUuYmluZChudWxsLCB0cnVlKTtcblxuICAgIHJldHVybiBjaGFpbmVkQ2hlY2tUeXBlO1xuICB9XG5cbiAgZnVuY3Rpb24gY3JlYXRlUHJpbWl0aXZlVHlwZUNoZWNrZXIoZXhwZWN0ZWRUeXBlKSB7XG4gICAgZnVuY3Rpb24gdmFsaWRhdGUocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lLCBzZWNyZXQpIHtcbiAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wTmFtZV07XG4gICAgICB2YXIgcHJvcFR5cGUgPSBnZXRQcm9wVHlwZShwcm9wVmFsdWUpO1xuICAgICAgaWYgKHByb3BUeXBlICE9PSBleHBlY3RlZFR5cGUpIHtcbiAgICAgICAgLy8gYHByb3BWYWx1ZWAgYmVpbmcgaW5zdGFuY2Ugb2YsIHNheSwgZGF0ZS9yZWdleHAsIHBhc3MgdGhlICdvYmplY3QnXG4gICAgICAgIC8vIGNoZWNrLCBidXQgd2UgY2FuIG9mZmVyIGEgbW9yZSBwcmVjaXNlIGVycm9yIG1lc3NhZ2UgaGVyZSByYXRoZXIgdGhhblxuICAgICAgICAvLyAnb2YgdHlwZSBgb2JqZWN0YCcuXG4gICAgICAgIHZhciBwcmVjaXNlVHlwZSA9IGdldFByZWNpc2VUeXBlKHByb3BWYWx1ZSk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB0eXBlICcgKyAoJ2AnICsgcHJlY2lzZVR5cGUgKyAnYCBzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgJykgKyAoJ2AnICsgZXhwZWN0ZWRUeXBlICsgJ2AuJykpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVBbnlUeXBlQ2hlY2tlcigpIHtcbiAgICByZXR1cm4gY3JlYXRlQ2hhaW5hYmxlVHlwZUNoZWNrZXIoZW1wdHlGdW5jdGlvblRoYXRSZXR1cm5zTnVsbCk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVBcnJheU9mVHlwZUNoZWNrZXIodHlwZUNoZWNrZXIpIHtcbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIGlmICh0eXBlb2YgdHlwZUNoZWNrZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdQcm9wZXJ0eSBgJyArIHByb3BGdWxsTmFtZSArICdgIG9mIGNvbXBvbmVudCBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCBoYXMgaW52YWxpZCBQcm9wVHlwZSBub3RhdGlvbiBpbnNpZGUgYXJyYXlPZi4nKTtcbiAgICAgIH1cbiAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wTmFtZV07XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkocHJvcFZhbHVlKSkge1xuICAgICAgICB2YXIgcHJvcFR5cGUgPSBnZXRQcm9wVHlwZShwcm9wVmFsdWUpO1xuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIG9mIHR5cGUgJyArICgnYCcgKyBwcm9wVHlwZSArICdgIHN1cHBsaWVkIHRvIGAnICsgY29tcG9uZW50TmFtZSArICdgLCBleHBlY3RlZCBhbiBhcnJheS4nKSk7XG4gICAgICB9XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BWYWx1ZS5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgZXJyb3IgPSB0eXBlQ2hlY2tlcihwcm9wVmFsdWUsIGksIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUgKyAnWycgKyBpICsgJ10nLCBSZWFjdFByb3BUeXBlc1NlY3JldCk7XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnRUeXBlQ2hlY2tlcigpIHtcbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wTmFtZV07XG4gICAgICBpZiAoIWlzVmFsaWRFbGVtZW50KHByb3BWYWx1ZSkpIHtcbiAgICAgICAgdmFyIHByb3BUeXBlID0gZ2V0UHJvcFR5cGUocHJvcFZhbHVlKTtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB0eXBlICcgKyAoJ2AnICsgcHJvcFR5cGUgKyAnYCBzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgYSBzaW5nbGUgUmVhY3RFbGVtZW50LicpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gY3JlYXRlQ2hhaW5hYmxlVHlwZUNoZWNrZXIodmFsaWRhdGUpO1xuICB9XG5cbiAgZnVuY3Rpb24gY3JlYXRlRWxlbWVudFR5cGVUeXBlQ2hlY2tlcigpIHtcbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wTmFtZV07XG4gICAgICBpZiAoIVJlYWN0SXMuaXNWYWxpZEVsZW1lbnRUeXBlKHByb3BWYWx1ZSkpIHtcbiAgICAgICAgdmFyIHByb3BUeXBlID0gZ2V0UHJvcFR5cGUocHJvcFZhbHVlKTtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB0eXBlICcgKyAoJ2AnICsgcHJvcFR5cGUgKyAnYCBzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgYSBzaW5nbGUgUmVhY3RFbGVtZW50IHR5cGUuJykpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVJbnN0YW5jZVR5cGVDaGVja2VyKGV4cGVjdGVkQ2xhc3MpIHtcbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIGlmICghKHByb3BzW3Byb3BOYW1lXSBpbnN0YW5jZW9mIGV4cGVjdGVkQ2xhc3MpKSB7XG4gICAgICAgIHZhciBleHBlY3RlZENsYXNzTmFtZSA9IGV4cGVjdGVkQ2xhc3MubmFtZSB8fCBBTk9OWU1PVVM7XG4gICAgICAgIHZhciBhY3R1YWxDbGFzc05hbWUgPSBnZXRDbGFzc05hbWUocHJvcHNbcHJvcE5hbWVdKTtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB0eXBlICcgKyAoJ2AnICsgYWN0dWFsQ2xhc3NOYW1lICsgJ2Agc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkICcpICsgKCdpbnN0YW5jZSBvZiBgJyArIGV4cGVjdGVkQ2xhc3NOYW1lICsgJ2AuJykpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVFbnVtVHlwZUNoZWNrZXIoZXhwZWN0ZWRWYWx1ZXMpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoZXhwZWN0ZWRWYWx1ZXMpKSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICBwcmludFdhcm5pbmcoXG4gICAgICAgICAgICAnSW52YWxpZCBhcmd1bWVudHMgc3VwcGxpZWQgdG8gb25lT2YsIGV4cGVjdGVkIGFuIGFycmF5LCBnb3QgJyArIGFyZ3VtZW50cy5sZW5ndGggKyAnIGFyZ3VtZW50cy4gJyArXG4gICAgICAgICAgICAnQSBjb21tb24gbWlzdGFrZSBpcyB0byB3cml0ZSBvbmVPZih4LCB5LCB6KSBpbnN0ZWFkIG9mIG9uZU9mKFt4LCB5LCB6XSkuJ1xuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcHJpbnRXYXJuaW5nKCdJbnZhbGlkIGFyZ3VtZW50IHN1cHBsaWVkIHRvIG9uZU9mLCBleHBlY3RlZCBhbiBhcnJheS4nKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGVtcHR5RnVuY3Rpb25UaGF0UmV0dXJuc051bGw7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdmFsaWRhdGUocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lKSB7XG4gICAgICB2YXIgcHJvcFZhbHVlID0gcHJvcHNbcHJvcE5hbWVdO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBleHBlY3RlZFZhbHVlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoaXMocHJvcFZhbHVlLCBleHBlY3RlZFZhbHVlc1tpXSkpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB2YXIgdmFsdWVzU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoZXhwZWN0ZWRWYWx1ZXMsIGZ1bmN0aW9uIHJlcGxhY2VyKGtleSwgdmFsdWUpIHtcbiAgICAgICAgdmFyIHR5cGUgPSBnZXRQcmVjaXNlVHlwZSh2YWx1ZSk7XG4gICAgICAgIGlmICh0eXBlID09PSAnc3ltYm9sJykge1xuICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB2YWx1ZSBgJyArIFN0cmluZyhwcm9wVmFsdWUpICsgJ2AgJyArICgnc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkIG9uZSBvZiAnICsgdmFsdWVzU3RyaW5nICsgJy4nKSk7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVPYmplY3RPZlR5cGVDaGVja2VyKHR5cGVDaGVja2VyKSB7XG4gICAgZnVuY3Rpb24gdmFsaWRhdGUocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lKSB7XG4gICAgICBpZiAodHlwZW9mIHR5cGVDaGVja2VyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignUHJvcGVydHkgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiBjb21wb25lbnQgYCcgKyBjb21wb25lbnROYW1lICsgJ2AgaGFzIGludmFsaWQgUHJvcFR5cGUgbm90YXRpb24gaW5zaWRlIG9iamVjdE9mLicpO1xuICAgICAgfVxuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICAgIHZhciBwcm9wVHlwZSA9IGdldFByb3BUeXBlKHByb3BWYWx1ZSk7XG4gICAgICBpZiAocHJvcFR5cGUgIT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignSW52YWxpZCAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Agb2YgdHlwZSAnICsgKCdgJyArIHByb3BUeXBlICsgJ2Agc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkIGFuIG9iamVjdC4nKSk7XG4gICAgICB9XG4gICAgICBmb3IgKHZhciBrZXkgaW4gcHJvcFZhbHVlKSB7XG4gICAgICAgIGlmIChoYXMocHJvcFZhbHVlLCBrZXkpKSB7XG4gICAgICAgICAgdmFyIGVycm9yID0gdHlwZUNoZWNrZXIocHJvcFZhbHVlLCBrZXksIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUgKyAnLicgKyBrZXksIFJlYWN0UHJvcFR5cGVzU2VjcmV0KTtcbiAgICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVVbmlvblR5cGVDaGVja2VyKGFycmF5T2ZUeXBlQ2hlY2tlcnMpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoYXJyYXlPZlR5cGVDaGVja2VycykpIHtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBwcmludFdhcm5pbmcoJ0ludmFsaWQgYXJndW1lbnQgc3VwcGxpZWQgdG8gb25lT2ZUeXBlLCBleHBlY3RlZCBhbiBpbnN0YW5jZSBvZiBhcnJheS4nKSA6IHZvaWQgMDtcbiAgICAgIHJldHVybiBlbXB0eUZ1bmN0aW9uVGhhdFJldHVybnNOdWxsO1xuICAgIH1cblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXlPZlR5cGVDaGVja2Vycy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGNoZWNrZXIgPSBhcnJheU9mVHlwZUNoZWNrZXJzW2ldO1xuICAgICAgaWYgKHR5cGVvZiBjaGVja2VyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHByaW50V2FybmluZyhcbiAgICAgICAgICAnSW52YWxpZCBhcmd1bWVudCBzdXBwbGllZCB0byBvbmVPZlR5cGUuIEV4cGVjdGVkIGFuIGFycmF5IG9mIGNoZWNrIGZ1bmN0aW9ucywgYnV0ICcgK1xuICAgICAgICAgICdyZWNlaXZlZCAnICsgZ2V0UG9zdGZpeEZvclR5cGVXYXJuaW5nKGNoZWNrZXIpICsgJyBhdCBpbmRleCAnICsgaSArICcuJ1xuICAgICAgICApO1xuICAgICAgICByZXR1cm4gZW1wdHlGdW5jdGlvblRoYXRSZXR1cm5zTnVsbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXlPZlR5cGVDaGVja2Vycy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgY2hlY2tlciA9IGFycmF5T2ZUeXBlQ2hlY2tlcnNbaV07XG4gICAgICAgIGlmIChjaGVja2VyKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSwgUmVhY3RQcm9wVHlwZXNTZWNyZXQpID09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIHN1cHBsaWVkIHRvICcgKyAoJ2AnICsgY29tcG9uZW50TmFtZSArICdgLicpKTtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZU5vZGVDaGVja2VyKCkge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgaWYgKCFpc05vZGUocHJvcHNbcHJvcE5hbWVdKSkge1xuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIHN1cHBsaWVkIHRvICcgKyAoJ2AnICsgY29tcG9uZW50TmFtZSArICdgLCBleHBlY3RlZCBhIFJlYWN0Tm9kZS4nKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZVNoYXBlVHlwZUNoZWNrZXIoc2hhcGVUeXBlcykge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICAgIHZhciBwcm9wVHlwZSA9IGdldFByb3BUeXBlKHByb3BWYWx1ZSk7XG4gICAgICBpZiAocHJvcFR5cGUgIT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignSW52YWxpZCAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Agb2YgdHlwZSBgJyArIHByb3BUeXBlICsgJ2AgJyArICgnc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkIGBvYmplY3RgLicpKTtcbiAgICAgIH1cbiAgICAgIGZvciAodmFyIGtleSBpbiBzaGFwZVR5cGVzKSB7XG4gICAgICAgIHZhciBjaGVja2VyID0gc2hhcGVUeXBlc1trZXldO1xuICAgICAgICBpZiAoIWNoZWNrZXIpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZXJyb3IgPSBjaGVja2VyKHByb3BWYWx1ZSwga2V5LCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lICsgJy4nICsga2V5LCBSZWFjdFByb3BUeXBlc1NlY3JldCk7XG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgIHJldHVybiBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVTdHJpY3RTaGFwZVR5cGVDaGVja2VyKHNoYXBlVHlwZXMpIHtcbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wTmFtZV07XG4gICAgICB2YXIgcHJvcFR5cGUgPSBnZXRQcm9wVHlwZShwcm9wVmFsdWUpO1xuICAgICAgaWYgKHByb3BUeXBlICE9PSAnb2JqZWN0Jykge1xuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIG9mIHR5cGUgYCcgKyBwcm9wVHlwZSArICdgICcgKyAoJ3N1cHBsaWVkIHRvIGAnICsgY29tcG9uZW50TmFtZSArICdgLCBleHBlY3RlZCBgb2JqZWN0YC4nKSk7XG4gICAgICB9XG4gICAgICAvLyBXZSBuZWVkIHRvIGNoZWNrIGFsbCBrZXlzIGluIGNhc2Ugc29tZSBhcmUgcmVxdWlyZWQgYnV0IG1pc3NpbmcgZnJvbVxuICAgICAgLy8gcHJvcHMuXG4gICAgICB2YXIgYWxsS2V5cyA9IGFzc2lnbih7fSwgcHJvcHNbcHJvcE5hbWVdLCBzaGFwZVR5cGVzKTtcbiAgICAgIGZvciAodmFyIGtleSBpbiBhbGxLZXlzKSB7XG4gICAgICAgIHZhciBjaGVja2VyID0gc2hhcGVUeXBlc1trZXldO1xuICAgICAgICBpZiAoIWNoZWNrZXIpIHtcbiAgICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoXG4gICAgICAgICAgICAnSW52YWxpZCAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Aga2V5IGAnICsga2V5ICsgJ2Agc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AuJyArXG4gICAgICAgICAgICAnXFxuQmFkIG9iamVjdDogJyArIEpTT04uc3RyaW5naWZ5KHByb3BzW3Byb3BOYW1lXSwgbnVsbCwgJyAgJykgK1xuICAgICAgICAgICAgJ1xcblZhbGlkIGtleXM6ICcgKyAgSlNPTi5zdHJpbmdpZnkoT2JqZWN0LmtleXMoc2hhcGVUeXBlcyksIG51bGwsICcgICcpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZXJyb3IgPSBjaGVja2VyKHByb3BWYWx1ZSwga2V5LCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lICsgJy4nICsga2V5LCBSZWFjdFByb3BUeXBlc1NlY3JldCk7XG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgIHJldHVybiBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGlzTm9kZShwcm9wVmFsdWUpIHtcbiAgICBzd2l0Y2ggKHR5cGVvZiBwcm9wVmFsdWUpIHtcbiAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgY2FzZSAndW5kZWZpbmVkJzpcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICBjYXNlICdib29sZWFuJzpcbiAgICAgICAgcmV0dXJuICFwcm9wVmFsdWU7XG4gICAgICBjYXNlICdvYmplY3QnOlxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShwcm9wVmFsdWUpKSB7XG4gICAgICAgICAgcmV0dXJuIHByb3BWYWx1ZS5ldmVyeShpc05vZGUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwcm9wVmFsdWUgPT09IG51bGwgfHwgaXNWYWxpZEVsZW1lbnQocHJvcFZhbHVlKSkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGl0ZXJhdG9yRm4gPSBnZXRJdGVyYXRvckZuKHByb3BWYWx1ZSk7XG4gICAgICAgIGlmIChpdGVyYXRvckZuKSB7XG4gICAgICAgICAgdmFyIGl0ZXJhdG9yID0gaXRlcmF0b3JGbi5jYWxsKHByb3BWYWx1ZSk7XG4gICAgICAgICAgdmFyIHN0ZXA7XG4gICAgICAgICAgaWYgKGl0ZXJhdG9yRm4gIT09IHByb3BWYWx1ZS5lbnRyaWVzKSB7XG4gICAgICAgICAgICB3aGlsZSAoIShzdGVwID0gaXRlcmF0b3IubmV4dCgpKS5kb25lKSB7XG4gICAgICAgICAgICAgIGlmICghaXNOb2RlKHN0ZXAudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEl0ZXJhdG9yIHdpbGwgcHJvdmlkZSBlbnRyeSBbayx2XSB0dXBsZXMgcmF0aGVyIHRoYW4gdmFsdWVzLlxuICAgICAgICAgICAgd2hpbGUgKCEoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSkuZG9uZSkge1xuICAgICAgICAgICAgICB2YXIgZW50cnkgPSBzdGVwLnZhbHVlO1xuICAgICAgICAgICAgICBpZiAoZW50cnkpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWlzTm9kZShlbnRyeVsxXSkpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gaXNTeW1ib2wocHJvcFR5cGUsIHByb3BWYWx1ZSkge1xuICAgIC8vIE5hdGl2ZSBTeW1ib2wuXG4gICAgaWYgKHByb3BUeXBlID09PSAnc3ltYm9sJykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gZmFsc3kgdmFsdWUgY2FuJ3QgYmUgYSBTeW1ib2xcbiAgICBpZiAoIXByb3BWYWx1ZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIDE5LjQuMy41IFN5bWJvbC5wcm90b3R5cGVbQEB0b1N0cmluZ1RhZ10gPT09ICdTeW1ib2wnXG4gICAgaWYgKHByb3BWYWx1ZVsnQEB0b1N0cmluZ1RhZyddID09PSAnU3ltYm9sJykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gRmFsbGJhY2sgZm9yIG5vbi1zcGVjIGNvbXBsaWFudCBTeW1ib2xzIHdoaWNoIGFyZSBwb2x5ZmlsbGVkLlxuICAgIGlmICh0eXBlb2YgU3ltYm9sID09PSAnZnVuY3Rpb24nICYmIHByb3BWYWx1ZSBpbnN0YW5jZW9mIFN5bWJvbCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gRXF1aXZhbGVudCBvZiBgdHlwZW9mYCBidXQgd2l0aCBzcGVjaWFsIGhhbmRsaW5nIGZvciBhcnJheSBhbmQgcmVnZXhwLlxuICBmdW5jdGlvbiBnZXRQcm9wVHlwZShwcm9wVmFsdWUpIHtcbiAgICB2YXIgcHJvcFR5cGUgPSB0eXBlb2YgcHJvcFZhbHVlO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHByb3BWYWx1ZSkpIHtcbiAgICAgIHJldHVybiAnYXJyYXknO1xuICAgIH1cbiAgICBpZiAocHJvcFZhbHVlIGluc3RhbmNlb2YgUmVnRXhwKSB7XG4gICAgICAvLyBPbGQgd2Via2l0cyAoYXQgbGVhc3QgdW50aWwgQW5kcm9pZCA0LjApIHJldHVybiAnZnVuY3Rpb24nIHJhdGhlciB0aGFuXG4gICAgICAvLyAnb2JqZWN0JyBmb3IgdHlwZW9mIGEgUmVnRXhwLiBXZSdsbCBub3JtYWxpemUgdGhpcyBoZXJlIHNvIHRoYXQgL2JsYS9cbiAgICAgIC8vIHBhc3NlcyBQcm9wVHlwZXMub2JqZWN0LlxuICAgICAgcmV0dXJuICdvYmplY3QnO1xuICAgIH1cbiAgICBpZiAoaXNTeW1ib2wocHJvcFR5cGUsIHByb3BWYWx1ZSkpIHtcbiAgICAgIHJldHVybiAnc3ltYm9sJztcbiAgICB9XG4gICAgcmV0dXJuIHByb3BUeXBlO1xuICB9XG5cbiAgLy8gVGhpcyBoYW5kbGVzIG1vcmUgdHlwZXMgdGhhbiBgZ2V0UHJvcFR5cGVgLiBPbmx5IHVzZWQgZm9yIGVycm9yIG1lc3NhZ2VzLlxuICAvLyBTZWUgYGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyYC5cbiAgZnVuY3Rpb24gZ2V0UHJlY2lzZVR5cGUocHJvcFZhbHVlKSB7XG4gICAgaWYgKHR5cGVvZiBwcm9wVmFsdWUgPT09ICd1bmRlZmluZWQnIHx8IHByb3BWYWx1ZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuICcnICsgcHJvcFZhbHVlO1xuICAgIH1cbiAgICB2YXIgcHJvcFR5cGUgPSBnZXRQcm9wVHlwZShwcm9wVmFsdWUpO1xuICAgIGlmIChwcm9wVHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGlmIChwcm9wVmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgIHJldHVybiAnZGF0ZSc7XG4gICAgICB9IGVsc2UgaWYgKHByb3BWYWx1ZSBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgICByZXR1cm4gJ3JlZ2V4cCc7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwcm9wVHlwZTtcbiAgfVxuXG4gIC8vIFJldHVybnMgYSBzdHJpbmcgdGhhdCBpcyBwb3N0Zml4ZWQgdG8gYSB3YXJuaW5nIGFib3V0IGFuIGludmFsaWQgdHlwZS5cbiAgLy8gRm9yIGV4YW1wbGUsIFwidW5kZWZpbmVkXCIgb3IgXCJvZiB0eXBlIGFycmF5XCJcbiAgZnVuY3Rpb24gZ2V0UG9zdGZpeEZvclR5cGVXYXJuaW5nKHZhbHVlKSB7XG4gICAgdmFyIHR5cGUgPSBnZXRQcmVjaXNlVHlwZSh2YWx1ZSk7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdhcnJheSc6XG4gICAgICBjYXNlICdvYmplY3QnOlxuICAgICAgICByZXR1cm4gJ2FuICcgKyB0eXBlO1xuICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICBjYXNlICdkYXRlJzpcbiAgICAgIGNhc2UgJ3JlZ2V4cCc6XG4gICAgICAgIHJldHVybiAnYSAnICsgdHlwZTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB0eXBlO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJldHVybnMgY2xhc3MgbmFtZSBvZiB0aGUgb2JqZWN0LCBpZiBhbnkuXG4gIGZ1bmN0aW9uIGdldENsYXNzTmFtZShwcm9wVmFsdWUpIHtcbiAgICBpZiAoIXByb3BWYWx1ZS5jb25zdHJ1Y3RvciB8fCAhcHJvcFZhbHVlLmNvbnN0cnVjdG9yLm5hbWUpIHtcbiAgICAgIHJldHVybiBBTk9OWU1PVVM7XG4gICAgfVxuICAgIHJldHVybiBwcm9wVmFsdWUuY29uc3RydWN0b3IubmFtZTtcbiAgfVxuXG4gIFJlYWN0UHJvcFR5cGVzLmNoZWNrUHJvcFR5cGVzID0gY2hlY2tQcm9wVHlwZXM7XG4gIFJlYWN0UHJvcFR5cGVzLnJlc2V0V2FybmluZ0NhY2hlID0gY2hlY2tQcm9wVHlwZXMucmVzZXRXYXJuaW5nQ2FjaGU7XG4gIFJlYWN0UHJvcFR5cGVzLlByb3BUeXBlcyA9IFJlYWN0UHJvcFR5cGVzO1xuXG4gIHJldHVybiBSZWFjdFByb3BUeXBlcztcbn07XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/prop-types/factoryWithTypeCheckers.js\n"); + +/***/ }), + +/***/ "./node_modules/prop-types/index.js": +/*!******************************************!*\ + !*** ./node_modules/prop-types/index.js ***! + \******************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\nif (true) {\n var ReactIs = __webpack_require__(/*! react-is */ \"./node_modules/prop-types/node_modules/react-is/index.js\");\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = __webpack_require__(/*! ./factoryWithTypeCheckers */ \"./node_modules/prop-types/factoryWithTypeCheckers.js\")(ReactIs.isElement, throwOnDirectAccess);\n} else {}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsSUFBSSxJQUFxQztBQUN6QyxnQkFBZ0IsbUJBQU8sQ0FBQywwRUFBVTs7QUFFbEM7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLG1CQUFPLENBQUMsdUZBQTJCO0FBQ3RELEVBQUUsS0FBSyxFQUlOIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2luZGV4LmpzP2JkZTEiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICB2YXIgUmVhY3RJcyA9IHJlcXVpcmUoJ3JlYWN0LWlzJyk7XG5cbiAgLy8gQnkgZXhwbGljaXRseSB1c2luZyBgcHJvcC10eXBlc2AgeW91IGFyZSBvcHRpbmcgaW50byBuZXcgZGV2ZWxvcG1lbnQgYmVoYXZpb3IuXG4gIC8vIGh0dHA6Ly9mYi5tZS9wcm9wLXR5cGVzLWluLXByb2RcbiAgdmFyIHRocm93T25EaXJlY3RBY2Nlc3MgPSB0cnVlO1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vZmFjdG9yeVdpdGhUeXBlQ2hlY2tlcnMnKShSZWFjdElzLmlzRWxlbWVudCwgdGhyb3dPbkRpcmVjdEFjY2Vzcyk7XG59IGVsc2Uge1xuICAvLyBCeSBleHBsaWNpdGx5IHVzaW5nIGBwcm9wLXR5cGVzYCB5b3UgYXJlIG9wdGluZyBpbnRvIG5ldyBwcm9kdWN0aW9uIGJlaGF2aW9yLlxuICAvLyBodHRwOi8vZmIubWUvcHJvcC10eXBlcy1pbi1wcm9kXG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9mYWN0b3J5V2l0aFRocm93aW5nU2hpbXMnKSgpO1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/prop-types/index.js\n"); + +/***/ }), + +/***/ "./node_modules/prop-types/lib/ReactPropTypesSecret.js": +/*!*************************************************************!*\ + !*** ./node_modules/prop-types/lib/ReactPropTypesSecret.js ***! + \*************************************************************/ +/***/ (function(module) { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\n\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9saWIvUmVhY3RQcm9wVHlwZXNTZWNyZXQuanMuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVhOztBQUViOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2xpYi9SZWFjdFByb3BUeXBlc1NlY3JldC5qcz9lMDk4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUmVhY3RQcm9wVHlwZXNTZWNyZXQgPSAnU0VDUkVUX0RPX05PVF9QQVNTX1RISVNfT1JfWU9VX1dJTExfQkVfRklSRUQnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0UHJvcFR5cGVzU2VjcmV0O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/prop-types/lib/ReactPropTypesSecret.js\n"); + +/***/ }), + +/***/ "./node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js ***! + \***********************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its 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\n\n\n\n\nif (true) {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9ub2RlX21vZHVsZXMvcmVhY3QtaXMvY2pzL3JlYWN0LWlzLmRldmVsb3BtZW50LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWE7Ozs7QUFJYixJQUFJLElBQXFDO0FBQ3pDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkVBQTJFO0FBQzNFOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlEQUFpRDs7QUFFakQ7QUFDQTtBQUNBO0FBQ0Esa0RBQWtEOztBQUVsRDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxpQkFBaUI7QUFDakIsc0JBQXNCO0FBQ3RCLHVCQUF1QjtBQUN2Qix1QkFBdUI7QUFDdkIsZUFBZTtBQUNmLGtCQUFrQjtBQUNsQixnQkFBZ0I7QUFDaEIsWUFBWTtBQUNaLFlBQVk7QUFDWixjQUFjO0FBQ2QsZ0JBQWdCO0FBQ2hCLGtCQUFrQjtBQUNsQixnQkFBZ0I7QUFDaEIsbUJBQW1CO0FBQ25CLHdCQUF3QjtBQUN4Qix5QkFBeUI7QUFDekIseUJBQXlCO0FBQ3pCLGlCQUFpQjtBQUNqQixvQkFBb0I7QUFDcEIsa0JBQWtCO0FBQ2xCLGNBQWM7QUFDZCxjQUFjO0FBQ2QsZ0JBQWdCO0FBQ2hCLGtCQUFrQjtBQUNsQixvQkFBb0I7QUFDcEIsa0JBQWtCO0FBQ2xCLDBCQUEwQjtBQUMxQixjQUFjO0FBQ2QsR0FBRztBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL25vZGVfbW9kdWxlcy9yZWFjdC1pcy9janMvcmVhY3QtaXMuZGV2ZWxvcG1lbnQuanM/Yzk1NyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQGxpY2Vuc2UgUmVhY3QgdjE2LjEzLjFcbiAqIHJlYWN0LWlzLmRldmVsb3BtZW50LmpzXG4gKlxuICogQ29weXJpZ2h0IChjKSBGYWNlYm9vaywgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5cblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAoZnVuY3Rpb24oKSB7XG4ndXNlIHN0cmljdCc7XG5cbi8vIFRoZSBTeW1ib2wgdXNlZCB0byB0YWcgdGhlIFJlYWN0RWxlbWVudC1saWtlIHR5cGVzLiBJZiB0aGVyZSBpcyBubyBuYXRpdmUgU3ltYm9sXG4vLyBub3IgcG9seWZpbGwsIHRoZW4gYSBwbGFpbiBudW1iZXIgaXMgdXNlZCBmb3IgcGVyZm9ybWFuY2UuXG52YXIgaGFzU3ltYm9sID0gdHlwZW9mIFN5bWJvbCA9PT0gJ2Z1bmN0aW9uJyAmJiBTeW1ib2wuZm9yO1xudmFyIFJFQUNUX0VMRU1FTlRfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmVsZW1lbnQnKSA6IDB4ZWFjNztcbnZhciBSRUFDVF9QT1JUQUxfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LnBvcnRhbCcpIDogMHhlYWNhO1xudmFyIFJFQUNUX0ZSQUdNRU5UX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5mcmFnbWVudCcpIDogMHhlYWNiO1xudmFyIFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5zdHJpY3RfbW9kZScpIDogMHhlYWNjO1xudmFyIFJFQUNUX1BST0ZJTEVSX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5wcm9maWxlcicpIDogMHhlYWQyO1xudmFyIFJFQUNUX1BST1ZJREVSX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5wcm92aWRlcicpIDogMHhlYWNkO1xudmFyIFJFQUNUX0NPTlRFWFRfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmNvbnRleHQnKSA6IDB4ZWFjZTsgLy8gVE9ETzogV2UgZG9uJ3QgdXNlIEFzeW5jTW9kZSBvciBDb25jdXJyZW50TW9kZSBhbnltb3JlLiBUaGV5IHdlcmUgdGVtcG9yYXJ5XG4vLyAodW5zdGFibGUpIEFQSXMgdGhhdCBoYXZlIGJlZW4gcmVtb3ZlZC4gQ2FuIHdlIHJlbW92ZSB0aGUgc3ltYm9scz9cblxudmFyIFJFQUNUX0FTWU5DX01PREVfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmFzeW5jX21vZGUnKSA6IDB4ZWFjZjtcbnZhciBSRUFDVF9DT05DVVJSRU5UX01PREVfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmNvbmN1cnJlbnRfbW9kZScpIDogMHhlYWNmO1xudmFyIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5mb3J3YXJkX3JlZicpIDogMHhlYWQwO1xudmFyIFJFQUNUX1NVU1BFTlNFX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5zdXNwZW5zZScpIDogMHhlYWQxO1xudmFyIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LnN1c3BlbnNlX2xpc3QnKSA6IDB4ZWFkODtcbnZhciBSRUFDVF9NRU1PX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5tZW1vJykgOiAweGVhZDM7XG52YXIgUkVBQ1RfTEFaWV9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3QubGF6eScpIDogMHhlYWQ0O1xudmFyIFJFQUNUX0JMT0NLX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5ibG9jaycpIDogMHhlYWQ5O1xudmFyIFJFQUNUX0ZVTkRBTUVOVEFMX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5mdW5kYW1lbnRhbCcpIDogMHhlYWQ1O1xudmFyIFJFQUNUX1JFU1BPTkRFUl9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3QucmVzcG9uZGVyJykgOiAweGVhZDY7XG52YXIgUkVBQ1RfU0NPUEVfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LnNjb3BlJykgOiAweGVhZDc7XG5cbmZ1bmN0aW9uIGlzVmFsaWRFbGVtZW50VHlwZSh0eXBlKSB7XG4gIHJldHVybiB0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicgfHwgLy8gTm90ZTogaXRzIHR5cGVvZiBtaWdodCBiZSBvdGhlciB0aGFuICdzeW1ib2wnIG9yICdudW1iZXInIGlmIGl0J3MgYSBwb2x5ZmlsbC5cbiAgdHlwZSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9DT05DVVJSRU5UX01PREVfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9QUk9GSUxFUl9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgfHwgdHlwZSA9PT0gUkVBQ1RfU1VTUEVOU0VfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUgfHwgdHlwZW9mIHR5cGUgPT09ICdvYmplY3QnICYmIHR5cGUgIT09IG51bGwgJiYgKHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0xBWllfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9NRU1PX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfUFJPVklERVJfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9DT05URVhUX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9GVU5EQU1FTlRBTF9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX1JFU1BPTkRFUl9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX1NDT1BFX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQkxPQ0tfVFlQRSk7XG59XG5cbmZ1bmN0aW9uIHR5cGVPZihvYmplY3QpIHtcbiAgaWYgKHR5cGVvZiBvYmplY3QgPT09ICdvYmplY3QnICYmIG9iamVjdCAhPT0gbnVsbCkge1xuICAgIHZhciAkJHR5cGVvZiA9IG9iamVjdC4kJHR5cGVvZjtcblxuICAgIHN3aXRjaCAoJCR0eXBlb2YpIHtcbiAgICAgIGNhc2UgUkVBQ1RfRUxFTUVOVF9UWVBFOlxuICAgICAgICB2YXIgdHlwZSA9IG9iamVjdC50eXBlO1xuXG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgIGNhc2UgUkVBQ1RfQVNZTkNfTU9ERV9UWVBFOlxuICAgICAgICAgIGNhc2UgUkVBQ1RfQ09OQ1VSUkVOVF9NT0RFX1RZUEU6XG4gICAgICAgICAgY2FzZSBSRUFDVF9GUkFHTUVOVF9UWVBFOlxuICAgICAgICAgIGNhc2UgUkVBQ1RfUFJPRklMRVJfVFlQRTpcbiAgICAgICAgICBjYXNlIFJFQUNUX1NUUklDVF9NT0RFX1RZUEU6XG4gICAgICAgICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9UWVBFOlxuICAgICAgICAgICAgcmV0dXJuIHR5cGU7XG5cbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdmFyICQkdHlwZW9mVHlwZSA9IHR5cGUgJiYgdHlwZS4kJHR5cGVvZjtcblxuICAgICAgICAgICAgc3dpdGNoICgkJHR5cGVvZlR5cGUpIHtcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9DT05URVhUX1RZUEU6XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTpcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOlxuICAgICAgICAgICAgICBjYXNlIFJFQUNUX1BST1ZJREVSX1RZUEU6XG4gICAgICAgICAgICAgICAgcmV0dXJuICQkdHlwZW9mVHlwZTtcblxuICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiAkJHR5cGVvZjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgIGNhc2UgUkVBQ1RfUE9SVEFMX1RZUEU6XG4gICAgICAgIHJldHVybiAkJHR5cGVvZjtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufSAvLyBBc3luY01vZGUgaXMgZGVwcmVjYXRlZCBhbG9uZyB3aXRoIGlzQXN5bmNNb2RlXG5cbnZhciBBc3luY01vZGUgPSBSRUFDVF9BU1lOQ19NT0RFX1RZUEU7XG52YXIgQ29uY3VycmVudE1vZGUgPSBSRUFDVF9DT05DVVJSRU5UX01PREVfVFlQRTtcbnZhciBDb250ZXh0Q29uc3VtZXIgPSBSRUFDVF9DT05URVhUX1RZUEU7XG52YXIgQ29udGV4dFByb3ZpZGVyID0gUkVBQ1RfUFJPVklERVJfVFlQRTtcbnZhciBFbGVtZW50ID0gUkVBQ1RfRUxFTUVOVF9UWVBFO1xudmFyIEZvcndhcmRSZWYgPSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFO1xudmFyIEZyYWdtZW50ID0gUkVBQ1RfRlJBR01FTlRfVFlQRTtcbnZhciBMYXp5ID0gUkVBQ1RfTEFaWV9UWVBFO1xudmFyIE1lbW8gPSBSRUFDVF9NRU1PX1RZUEU7XG52YXIgUG9ydGFsID0gUkVBQ1RfUE9SVEFMX1RZUEU7XG52YXIgUHJvZmlsZXIgPSBSRUFDVF9QUk9GSUxFUl9UWVBFO1xudmFyIFN0cmljdE1vZGUgPSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFO1xudmFyIFN1c3BlbnNlID0gUkVBQ1RfU1VTUEVOU0VfVFlQRTtcbnZhciBoYXNXYXJuZWRBYm91dERlcHJlY2F0ZWRJc0FzeW5jTW9kZSA9IGZhbHNlOyAvLyBBc3luY01vZGUgc2hvdWxkIGJlIGRlcHJlY2F0ZWRcblxuZnVuY3Rpb24gaXNBc3luY01vZGUob2JqZWN0KSB7XG4gIHtcbiAgICBpZiAoIWhhc1dhcm5lZEFib3V0RGVwcmVjYXRlZElzQXN5bmNNb2RlKSB7XG4gICAgICBoYXNXYXJuZWRBYm91dERlcHJlY2F0ZWRJc0FzeW5jTW9kZSA9IHRydWU7IC8vIFVzaW5nIGNvbnNvbGVbJ3dhcm4nXSB0byBldmFkZSBCYWJlbCBhbmQgRVNMaW50XG5cbiAgICAgIGNvbnNvbGVbJ3dhcm4nXSgnVGhlIFJlYWN0SXMuaXNBc3luY01vZGUoKSBhbGlhcyBoYXMgYmVlbiBkZXByZWNhdGVkLCAnICsgJ2FuZCB3aWxsIGJlIHJlbW92ZWQgaW4gUmVhY3QgMTcrLiBVcGRhdGUgeW91ciBjb2RlIHRvIHVzZSAnICsgJ1JlYWN0SXMuaXNDb25jdXJyZW50TW9kZSgpIGluc3RlYWQuIEl0IGhhcyB0aGUgZXhhY3Qgc2FtZSBBUEkuJyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGlzQ29uY3VycmVudE1vZGUob2JqZWN0KSB8fCB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfQVNZTkNfTU9ERV9UWVBFO1xufVxuZnVuY3Rpb24gaXNDb25jdXJyZW50TW9kZShvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9DT05DVVJSRU5UX01PREVfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzQ29udGV4dENvbnN1bWVyKG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX0NPTlRFWFRfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzQ29udGV4dFByb3ZpZGVyKG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX1BST1ZJREVSX1RZUEU7XG59XG5mdW5jdGlvbiBpc0VsZW1lbnQob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlb2Ygb2JqZWN0ID09PSAnb2JqZWN0JyAmJiBvYmplY3QgIT09IG51bGwgJiYgb2JqZWN0LiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEU7XG59XG5mdW5jdGlvbiBpc0ZvcndhcmRSZWYob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzRnJhZ21lbnQob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzTGF6eShvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9MQVpZX1RZUEU7XG59XG5mdW5jdGlvbiBpc01lbW8ob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfTUVNT19UWVBFO1xufVxuZnVuY3Rpb24gaXNQb3J0YWwob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfUE9SVEFMX1RZUEU7XG59XG5mdW5jdGlvbiBpc1Byb2ZpbGVyKG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX1BST0ZJTEVSX1RZUEU7XG59XG5mdW5jdGlvbiBpc1N0cmljdE1vZGUob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfU1RSSUNUX01PREVfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzU3VzcGVuc2Uob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfU1VTUEVOU0VfVFlQRTtcbn1cblxuZXhwb3J0cy5Bc3luY01vZGUgPSBBc3luY01vZGU7XG5leHBvcnRzLkNvbmN1cnJlbnRNb2RlID0gQ29uY3VycmVudE1vZGU7XG5leHBvcnRzLkNvbnRleHRDb25zdW1lciA9IENvbnRleHRDb25zdW1lcjtcbmV4cG9ydHMuQ29udGV4dFByb3ZpZGVyID0gQ29udGV4dFByb3ZpZGVyO1xuZXhwb3J0cy5FbGVtZW50ID0gRWxlbWVudDtcbmV4cG9ydHMuRm9yd2FyZFJlZiA9IEZvcndhcmRSZWY7XG5leHBvcnRzLkZyYWdtZW50ID0gRnJhZ21lbnQ7XG5leHBvcnRzLkxhenkgPSBMYXp5O1xuZXhwb3J0cy5NZW1vID0gTWVtbztcbmV4cG9ydHMuUG9ydGFsID0gUG9ydGFsO1xuZXhwb3J0cy5Qcm9maWxlciA9IFByb2ZpbGVyO1xuZXhwb3J0cy5TdHJpY3RNb2RlID0gU3RyaWN0TW9kZTtcbmV4cG9ydHMuU3VzcGVuc2UgPSBTdXNwZW5zZTtcbmV4cG9ydHMuaXNBc3luY01vZGUgPSBpc0FzeW5jTW9kZTtcbmV4cG9ydHMuaXNDb25jdXJyZW50TW9kZSA9IGlzQ29uY3VycmVudE1vZGU7XG5leHBvcnRzLmlzQ29udGV4dENvbnN1bWVyID0gaXNDb250ZXh0Q29uc3VtZXI7XG5leHBvcnRzLmlzQ29udGV4dFByb3ZpZGVyID0gaXNDb250ZXh0UHJvdmlkZXI7XG5leHBvcnRzLmlzRWxlbWVudCA9IGlzRWxlbWVudDtcbmV4cG9ydHMuaXNGb3J3YXJkUmVmID0gaXNGb3J3YXJkUmVmO1xuZXhwb3J0cy5pc0ZyYWdtZW50ID0gaXNGcmFnbWVudDtcbmV4cG9ydHMuaXNMYXp5ID0gaXNMYXp5O1xuZXhwb3J0cy5pc01lbW8gPSBpc01lbW87XG5leHBvcnRzLmlzUG9ydGFsID0gaXNQb3J0YWw7XG5leHBvcnRzLmlzUHJvZmlsZXIgPSBpc1Byb2ZpbGVyO1xuZXhwb3J0cy5pc1N0cmljdE1vZGUgPSBpc1N0cmljdE1vZGU7XG5leHBvcnRzLmlzU3VzcGVuc2UgPSBpc1N1c3BlbnNlO1xuZXhwb3J0cy5pc1ZhbGlkRWxlbWVudFR5cGUgPSBpc1ZhbGlkRWxlbWVudFR5cGU7XG5leHBvcnRzLnR5cGVPZiA9IHR5cGVPZjtcbiAgfSkoKTtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js\n"); + +/***/ }), + +/***/ "./node_modules/prop-types/node_modules/react-is/index.js": +/*!****************************************************************!*\ + !*** ./node_modules/prop-types/node_modules/react-is/index.js ***! + \****************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ \"./node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9ub2RlX21vZHVsZXMvcmVhY3QtaXMvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsSUFBSSxLQUFxQyxFQUFFLEVBRTFDLENBQUM7QUFDRixFQUFFLHdKQUF5RDtBQUMzRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9ub2RlX21vZHVsZXMvcmVhY3QtaXMvaW5kZXguanM/NWQ1MCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtaXMucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtaXMuZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/prop-types/node_modules/react-is/index.js\n"); + +/***/ }), + +/***/ "./node_modules/react-fast-compare/index.js": +/*!**************************************************!*\ + !*** ./node_modules/react-fast-compare/index.js ***! + \**************************************************/ +/***/ (function(module) { + +"use strict"; +eval("\n\nvar isArray = Array.isArray;\nvar keyList = Object.keys;\nvar hasProp = Object.prototype.hasOwnProperty;\nvar hasElementType = typeof Element !== 'undefined';\n\nfunction equal(a, b) {\n // fast-deep-equal index.js 2.0.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n var arrA = isArray(a)\n , arrB = isArray(b)\n , i\n , length\n , key;\n\n if (arrA && arrB) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n if (arrA != arrB) return false;\n\n var dateA = a instanceof Date\n , dateB = b instanceof Date;\n if (dateA != dateB) return false;\n if (dateA && dateB) return a.getTime() == b.getTime();\n\n var regexpA = a instanceof RegExp\n , regexpB = b instanceof RegExp;\n if (regexpA != regexpB) return false;\n if (regexpA && regexpB) return a.toString() == b.toString();\n\n var keys = keyList(a);\n length = keys.length;\n\n if (length !== keyList(b).length)\n return false;\n\n for (i = length; i-- !== 0;)\n if (!hasProp.call(b, keys[i])) return false;\n // end fast-deep-equal\n\n // start react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element && b instanceof Element)\n return a === b;\n\n // custom handling for React\n for (i = length; i-- !== 0;) {\n key = keys[i];\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of a react element\n continue;\n } else {\n // all other properties should be traversed as usual\n if (!equal(a[key], b[key])) return false;\n }\n }\n // end react-fast-compare\n\n // fast-deep-equal index.js 2.0.1\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function exportedEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if ((error.message && error.message.match(/stack|recursion/i)) || (error.number === -2146828260)) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('Warning: react-fast-compare does not handle circular references.', error.name, error.message);\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtZmFzdC1jb21wYXJlL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLFVBQVU7QUFDakM7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSxxQkFBcUIsVUFBVTtBQUMvQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EscUJBQXFCLFVBQVU7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmVhY3QtZmFzdC1jb21wYXJlL2luZGV4LmpzPzRmNDkiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG52YXIgaXNBcnJheSA9IEFycmF5LmlzQXJyYXk7XG52YXIga2V5TGlzdCA9IE9iamVjdC5rZXlzO1xudmFyIGhhc1Byb3AgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xudmFyIGhhc0VsZW1lbnRUeXBlID0gdHlwZW9mIEVsZW1lbnQgIT09ICd1bmRlZmluZWQnO1xuXG5mdW5jdGlvbiBlcXVhbChhLCBiKSB7XG4gIC8vIGZhc3QtZGVlcC1lcXVhbCBpbmRleC5qcyAyLjAuMVxuICBpZiAoYSA9PT0gYikgcmV0dXJuIHRydWU7XG5cbiAgaWYgKGEgJiYgYiAmJiB0eXBlb2YgYSA9PSAnb2JqZWN0JyAmJiB0eXBlb2YgYiA9PSAnb2JqZWN0Jykge1xuICAgIHZhciBhcnJBID0gaXNBcnJheShhKVxuICAgICAgLCBhcnJCID0gaXNBcnJheShiKVxuICAgICAgLCBpXG4gICAgICAsIGxlbmd0aFxuICAgICAgLCBrZXk7XG5cbiAgICBpZiAoYXJyQSAmJiBhcnJCKSB7XG4gICAgICBsZW5ndGggPSBhLmxlbmd0aDtcbiAgICAgIGlmIChsZW5ndGggIT0gYi5sZW5ndGgpIHJldHVybiBmYWxzZTtcbiAgICAgIGZvciAoaSA9IGxlbmd0aDsgaS0tICE9PSAwOylcbiAgICAgICAgaWYgKCFlcXVhbChhW2ldLCBiW2ldKSkgcmV0dXJuIGZhbHNlO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKGFyckEgIT0gYXJyQikgcmV0dXJuIGZhbHNlO1xuXG4gICAgdmFyIGRhdGVBID0gYSBpbnN0YW5jZW9mIERhdGVcbiAgICAgICwgZGF0ZUIgPSBiIGluc3RhbmNlb2YgRGF0ZTtcbiAgICBpZiAoZGF0ZUEgIT0gZGF0ZUIpIHJldHVybiBmYWxzZTtcbiAgICBpZiAoZGF0ZUEgJiYgZGF0ZUIpIHJldHVybiBhLmdldFRpbWUoKSA9PSBiLmdldFRpbWUoKTtcblxuICAgIHZhciByZWdleHBBID0gYSBpbnN0YW5jZW9mIFJlZ0V4cFxuICAgICAgLCByZWdleHBCID0gYiBpbnN0YW5jZW9mIFJlZ0V4cDtcbiAgICBpZiAocmVnZXhwQSAhPSByZWdleHBCKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKHJlZ2V4cEEgJiYgcmVnZXhwQikgcmV0dXJuIGEudG9TdHJpbmcoKSA9PSBiLnRvU3RyaW5nKCk7XG5cbiAgICB2YXIga2V5cyA9IGtleUxpc3QoYSk7XG4gICAgbGVuZ3RoID0ga2V5cy5sZW5ndGg7XG5cbiAgICBpZiAobGVuZ3RoICE9PSBrZXlMaXN0KGIpLmxlbmd0aClcbiAgICAgIHJldHVybiBmYWxzZTtcblxuICAgIGZvciAoaSA9IGxlbmd0aDsgaS0tICE9PSAwOylcbiAgICAgIGlmICghaGFzUHJvcC5jYWxsKGIsIGtleXNbaV0pKSByZXR1cm4gZmFsc2U7XG4gICAgLy8gZW5kIGZhc3QtZGVlcC1lcXVhbFxuXG4gICAgLy8gc3RhcnQgcmVhY3QtZmFzdC1jb21wYXJlXG4gICAgLy8gY3VzdG9tIGhhbmRsaW5nIGZvciBET00gZWxlbWVudHNcbiAgICBpZiAoaGFzRWxlbWVudFR5cGUgJiYgYSBpbnN0YW5jZW9mIEVsZW1lbnQgJiYgYiBpbnN0YW5jZW9mIEVsZW1lbnQpXG4gICAgICByZXR1cm4gYSA9PT0gYjtcblxuICAgIC8vIGN1c3RvbSBoYW5kbGluZyBmb3IgUmVhY3RcbiAgICBmb3IgKGkgPSBsZW5ndGg7IGktLSAhPT0gMDspIHtcbiAgICAgIGtleSA9IGtleXNbaV07XG4gICAgICBpZiAoa2V5ID09PSAnX293bmVyJyAmJiBhLiQkdHlwZW9mKSB7XG4gICAgICAgIC8vIFJlYWN0LXNwZWNpZmljOiBhdm9pZCB0cmF2ZXJzaW5nIFJlYWN0IGVsZW1lbnRzJyBfb3duZXIuXG4gICAgICAgIC8vICBfb3duZXIgY29udGFpbnMgY2lyY3VsYXIgcmVmZXJlbmNlc1xuICAgICAgICAvLyBhbmQgaXMgbm90IG5lZWRlZCB3aGVuIGNvbXBhcmluZyB0aGUgYWN0dWFsIGVsZW1lbnRzIChhbmQgbm90IHRoZWlyIG93bmVycylcbiAgICAgICAgLy8gLiQkdHlwZW9mIGFuZCAuX3N0b3JlIG9uIGp1c3QgcmVhc29uYWJsZSBtYXJrZXJzIG9mIGEgcmVhY3QgZWxlbWVudFxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGFsbCBvdGhlciBwcm9wZXJ0aWVzIHNob3VsZCBiZSB0cmF2ZXJzZWQgYXMgdXN1YWxcbiAgICAgICAgaWYgKCFlcXVhbChhW2tleV0sIGJba2V5XSkpIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gZW5kIHJlYWN0LWZhc3QtY29tcGFyZVxuXG4gICAgLy8gZmFzdC1kZWVwLWVxdWFsIGluZGV4LmpzIDIuMC4xXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXR1cm4gYSAhPT0gYSAmJiBiICE9PSBiO1xufVxuLy8gZW5kIGZhc3QtZGVlcC1lcXVhbFxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGV4cG9ydGVkRXF1YWwoYSwgYikge1xuICB0cnkge1xuICAgIHJldHVybiBlcXVhbChhLCBiKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBpZiAoKGVycm9yLm1lc3NhZ2UgJiYgZXJyb3IubWVzc2FnZS5tYXRjaCgvc3RhY2t8cmVjdXJzaW9uL2kpKSB8fCAoZXJyb3IubnVtYmVyID09PSAtMjE0NjgyODI2MCkpIHtcbiAgICAgIC8vIHdhcm4gb24gY2lyY3VsYXIgcmVmZXJlbmNlcywgZG9uJ3QgY3Jhc2hcbiAgICAgIC8vIGJyb3dzZXJzIGdpdmUgdGhpcyBkaWZmZXJlbnQgZXJyb3JzIG5hbWUgYW5kIG1lc3NhZ2VzOlxuICAgICAgLy8gY2hyb21lL3NhZmFyaTogXCJSYW5nZUVycm9yXCIsIFwiTWF4aW11bSBjYWxsIHN0YWNrIHNpemUgZXhjZWVkZWRcIlxuICAgICAgLy8gZmlyZWZveDogXCJJbnRlcm5hbEVycm9yXCIsIHRvbyBtdWNoIHJlY3Vyc2lvblwiXG4gICAgICAvLyBlZGdlOiBcIkVycm9yXCIsIFwiT3V0IG9mIHN0YWNrIHNwYWNlXCJcbiAgICAgIGNvbnNvbGUud2FybignV2FybmluZzogcmVhY3QtZmFzdC1jb21wYXJlIGRvZXMgbm90IGhhbmRsZSBjaXJjdWxhciByZWZlcmVuY2VzLicsIGVycm9yLm5hbWUsIGVycm9yLm1lc3NhZ2UpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvLyBzb21lIG90aGVyIGVycm9yLiB3ZSBzaG91bGQgZGVmaW5pdGVseSBrbm93IGFib3V0IHRoZXNlXG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn07XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-fast-compare/index.js\n"); + +/***/ }), + +/***/ "./node_modules/react-scroll/modules/components/Button.js": +/*!****************************************************************!*\ + !*** ./node_modules/react-scroll/modules/components/Button.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollLink = __webpack_require__(/*! ../mixins/scroll-link */ \"./node_modules/react-scroll/modules/mixins/scroll-link.js\");\n\nvar _scrollLink2 = _interopRequireDefault(_scrollLink);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ButtonElement = function (_React$Component) {\n _inherits(ButtonElement, _React$Component);\n\n function ButtonElement() {\n _classCallCheck(this, ButtonElement);\n\n return _possibleConstructorReturn(this, (ButtonElement.__proto__ || Object.getPrototypeOf(ButtonElement)).apply(this, arguments));\n }\n\n _createClass(ButtonElement, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n 'input',\n this.props,\n this.props.children\n );\n }\n }]);\n\n return ButtonElement;\n}(_react2.default.Component);\n\n;\n\nexports[\"default\"] = (0, _scrollLink2.default)(ButtonElement);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2Nyb2xsL21vZHVsZXMvY29tcG9uZW50cy9CdXR0b24uanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDOztBQUVGLGlDQUFpQywyQ0FBMkMsZ0JBQWdCLGtCQUFrQixPQUFPLDJCQUEyQix3REFBd0QsZ0NBQWdDLHVEQUF1RCwrREFBK0QseURBQXlELHFFQUFxRSw2REFBNkQsd0JBQXdCOztBQUVqakIsYUFBYSxtQkFBTyxDQUFDLDRDQUFPOztBQUU1Qjs7QUFFQSxrQkFBa0IsbUJBQU8sQ0FBQyx3RkFBdUI7O0FBRWpEOztBQUVBLHVDQUF1Qyx1Q0FBdUM7O0FBRTlFLGtEQUFrRCwwQ0FBMEM7O0FBRTVGLGtEQUFrRCxhQUFhLHlGQUF5Rjs7QUFFeEosMkNBQTJDLCtEQUErRCx1R0FBdUcseUVBQXlFLGVBQWUsMEVBQTBFLEdBQUc7O0FBRXRYO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQSxDQUFDOztBQUVEOztBQUVBLGtCQUFlIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zY3JvbGwvbW9kdWxlcy9jb21wb25lbnRzL0J1dHRvbi5qcz84ZmEwIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuXG52YXIgX2NyZWF0ZUNsYXNzID0gZnVuY3Rpb24gKCkgeyBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH0gcmV0dXJuIGZ1bmN0aW9uIChDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfTsgfSgpO1xuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfc2Nyb2xsTGluayA9IHJlcXVpcmUoJy4uL21peGlucy9zY3JvbGwtbGluaycpO1xuXG52YXIgX3Njcm9sbExpbmsyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfc2Nyb2xsTGluayk7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHNlbGYsIGNhbGwpIHsgaWYgKCFzZWxmKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gY2FsbCAmJiAodHlwZW9mIGNhbGwgPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGNhbGwgPT09IFwiZnVuY3Rpb25cIikgPyBjYWxsIDogc2VsZjsgfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCBcIiArIHR5cGVvZiBzdXBlckNsYXNzKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7IH1cblxudmFyIEJ1dHRvbkVsZW1lbnQgPSBmdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoQnV0dG9uRWxlbWVudCwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgZnVuY3Rpb24gQnV0dG9uRWxlbWVudCgpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQnV0dG9uRWxlbWVudCk7XG5cbiAgICByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgKEJ1dHRvbkVsZW1lbnQuX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihCdXR0b25FbGVtZW50KSkuYXBwbHkodGhpcywgYXJndW1lbnRzKSk7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoQnV0dG9uRWxlbWVudCwgW3tcbiAgICBrZXk6ICdyZW5kZXInLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICByZXR1cm4gX3JlYWN0Mi5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICdpbnB1dCcsXG4gICAgICAgIHRoaXMucHJvcHMsXG4gICAgICAgIHRoaXMucHJvcHMuY2hpbGRyZW5cbiAgICAgICk7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIEJ1dHRvbkVsZW1lbnQ7XG59KF9yZWFjdDIuZGVmYXVsdC5Db21wb25lbnQpO1xuXG47XG5cbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCBfc2Nyb2xsTGluazIuZGVmYXVsdCkoQnV0dG9uRWxlbWVudCk7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/react-scroll/modules/components/Button.js\n"); + +/***/ }), + +/***/ "./node_modules/react-scroll/modules/components/Element.js": +/*!*****************************************************************!*\ + !*** ./node_modules/react-scroll/modules/components/Element.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollElement = __webpack_require__(/*! ../mixins/scroll-element */ \"./node_modules/react-scroll/modules/mixins/scroll-element.js\");\n\nvar _scrollElement2 = _interopRequireDefault(_scrollElement);\n\nvar _propTypes = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ElementWrapper = function (_React$Component) {\n _inherits(ElementWrapper, _React$Component);\n\n function ElementWrapper() {\n _classCallCheck(this, ElementWrapper);\n\n return _possibleConstructorReturn(this, (ElementWrapper.__proto__ || Object.getPrototypeOf(ElementWrapper)).apply(this, arguments));\n }\n\n _createClass(ElementWrapper, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n // Remove `parentBindings` from props\n var newProps = _extends({}, this.props);\n if (newProps.parentBindings) {\n delete newProps.parentBindings;\n }\n\n return _react2.default.createElement(\n 'div',\n _extends({}, newProps, { ref: function ref(el) {\n _this2.props.parentBindings.domNode = el;\n } }),\n this.props.children\n );\n }\n }]);\n\n return ElementWrapper;\n}(_react2.default.Component);\n\n;\n\nElementWrapper.propTypes = {\n name: _propTypes2.default.string,\n id: _propTypes2.default.string\n};\n\nexports[\"default\"] = (0, _scrollElement2.default)(ElementWrapper);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2Nyb2xsL21vZHVsZXMvY29tcG9uZW50cy9FbGVtZW50LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQzs7QUFFRixvREFBb0QsZ0JBQWdCLHNCQUFzQixPQUFPLDJCQUEyQiwwQkFBMEIseURBQXlELGlDQUFpQzs7QUFFaFAsaUNBQWlDLDJDQUEyQyxnQkFBZ0Isa0JBQWtCLE9BQU8sMkJBQTJCLHdEQUF3RCxnQ0FBZ0MsdURBQXVELCtEQUErRCx5REFBeUQscUVBQXFFLDZEQUE2RCx3QkFBd0I7O0FBRWpqQixhQUFhLG1CQUFPLENBQUMsNENBQU87O0FBRTVCOztBQUVBLHFCQUFxQixtQkFBTyxDQUFDLDhGQUEwQjs7QUFFdkQ7O0FBRUEsaUJBQWlCLG1CQUFPLENBQUMsc0RBQVk7O0FBRXJDOztBQUVBLHVDQUF1Qyx1Q0FBdUM7O0FBRTlFLGtEQUFrRCwwQ0FBMEM7O0FBRTVGLGtEQUFrRCxhQUFhLHlGQUF5Rjs7QUFFeEosMkNBQTJDLCtEQUErRCx1R0FBdUcseUVBQXlFLGVBQWUsMEVBQTBFLEdBQUc7O0FBRXRYO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsZ0NBQWdDO0FBQ2hDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsbUJBQW1CLGNBQWM7QUFDakM7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBLENBQUM7O0FBRUQ7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsa0JBQWUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXNjcm9sbC9tb2R1bGVzL2NvbXBvbmVudHMvRWxlbWVudC5qcz9hMDE0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuXG52YXIgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9O1xuXG52YXIgX2NyZWF0ZUNsYXNzID0gZnVuY3Rpb24gKCkgeyBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH0gcmV0dXJuIGZ1bmN0aW9uIChDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfTsgfSgpO1xuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfc2Nyb2xsRWxlbWVudCA9IHJlcXVpcmUoJy4uL21peGlucy9zY3JvbGwtZWxlbWVudCcpO1xuXG52YXIgX3Njcm9sbEVsZW1lbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfc2Nyb2xsRWxlbWVudCk7XG5cbnZhciBfcHJvcFR5cGVzID0gcmVxdWlyZSgncHJvcC10eXBlcycpO1xuXG52YXIgX3Byb3BUeXBlczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9wcm9wVHlwZXMpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmICghc2VsZikgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIGNhbGwgJiYgKHR5cGVvZiBjYWxsID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpID8gY2FsbCA6IHNlbGY7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgXCIgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBFbGVtZW50V3JhcHBlciA9IGZ1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhFbGVtZW50V3JhcHBlciwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgZnVuY3Rpb24gRWxlbWVudFdyYXBwZXIoKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEVsZW1lbnRXcmFwcGVyKTtcblxuICAgIHJldHVybiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCAoRWxlbWVudFdyYXBwZXIuX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihFbGVtZW50V3JhcHBlcikpLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKEVsZW1lbnRXcmFwcGVyLCBbe1xuICAgIGtleTogJ3JlbmRlcicsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICAvLyBSZW1vdmUgYHBhcmVudEJpbmRpbmdzYCBmcm9tIHByb3BzXG4gICAgICB2YXIgbmV3UHJvcHMgPSBfZXh0ZW5kcyh7fSwgdGhpcy5wcm9wcyk7XG4gICAgICBpZiAobmV3UHJvcHMucGFyZW50QmluZGluZ3MpIHtcbiAgICAgICAgZGVsZXRlIG5ld1Byb3BzLnBhcmVudEJpbmRpbmdzO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gX3JlYWN0Mi5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICdkaXYnLFxuICAgICAgICBfZXh0ZW5kcyh7fSwgbmV3UHJvcHMsIHsgcmVmOiBmdW5jdGlvbiByZWYoZWwpIHtcbiAgICAgICAgICAgIF90aGlzMi5wcm9wcy5wYXJlbnRCaW5kaW5ncy5kb21Ob2RlID0gZWw7XG4gICAgICAgICAgfSB9KSxcbiAgICAgICAgdGhpcy5wcm9wcy5jaGlsZHJlblxuICAgICAgKTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gRWxlbWVudFdyYXBwZXI7XG59KF9yZWFjdDIuZGVmYXVsdC5Db21wb25lbnQpO1xuXG47XG5cbkVsZW1lbnRXcmFwcGVyLnByb3BUeXBlcyA9IHtcbiAgbmFtZTogX3Byb3BUeXBlczIuZGVmYXVsdC5zdHJpbmcsXG4gIGlkOiBfcHJvcFR5cGVzMi5kZWZhdWx0LnN0cmluZ1xufTtcblxuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIF9zY3JvbGxFbGVtZW50Mi5kZWZhdWx0KShFbGVtZW50V3JhcHBlcik7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/react-scroll/modules/components/Element.js\n"); + +/***/ }), + +/***/ "./node_modules/react-scroll/modules/components/Link.js": +/*!**************************************************************!*\ + !*** ./node_modules/react-scroll/modules/components/Link.js ***! + \**************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollLink = __webpack_require__(/*! ../mixins/scroll-link */ \"./node_modules/react-scroll/modules/mixins/scroll-link.js\");\n\nvar _scrollLink2 = _interopRequireDefault(_scrollLink);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar LinkElement = function (_React$Component) {\n _inherits(LinkElement, _React$Component);\n\n function LinkElement() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, LinkElement);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = LinkElement.__proto__ || Object.getPrototypeOf(LinkElement)).call.apply(_ref, [this].concat(args))), _this), _this.render = function () {\n return _react2.default.createElement(\n 'a',\n _this.props,\n _this.props.children\n );\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n return LinkElement;\n}(_react2.default.Component);\n\n;\n\nexports[\"default\"] = (0, _scrollLink2.default)(LinkElement);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2Nyb2xsL21vZHVsZXMvY29tcG9uZW50cy9MaW5rLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQzs7QUFFRixhQUFhLG1CQUFPLENBQUMsNENBQU87O0FBRTVCOztBQUVBLGtCQUFrQixtQkFBTyxDQUFDLHdGQUF1Qjs7QUFFakQ7O0FBRUEsdUNBQXVDLHVDQUF1Qzs7QUFFOUUsa0RBQWtELDBDQUEwQzs7QUFFNUYsa0RBQWtELGFBQWEseUZBQXlGOztBQUV4SiwyQ0FBMkMsK0RBQStELHVHQUF1Ryx5RUFBeUUsZUFBZSwwRUFBMEUsR0FBRzs7QUFFdFg7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBOztBQUVBLG9FQUFvRSxhQUFhO0FBQ2pGO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0EsQ0FBQzs7QUFFRDs7QUFFQSxrQkFBZSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2Nyb2xsL21vZHVsZXMvY29tcG9uZW50cy9MaW5rLmpzPzRkMjQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX3JlYWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0KTtcblxudmFyIF9zY3JvbGxMaW5rID0gcmVxdWlyZSgnLi4vbWl4aW5zL3Njcm9sbC1saW5rJyk7XG5cbnZhciBfc2Nyb2xsTGluazIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9zY3JvbGxMaW5rKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoIXNlbGYpIHsgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpOyB9IHJldHVybiBjYWxsICYmICh0eXBlb2YgY2FsbCA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSA/IGNhbGwgOiBzZWxmOyB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90IFwiICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgTGlua0VsZW1lbnQgPSBmdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoTGlua0VsZW1lbnQsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIGZ1bmN0aW9uIExpbmtFbGVtZW50KCkge1xuICAgIHZhciBfcmVmO1xuXG4gICAgdmFyIF90ZW1wLCBfdGhpcywgX3JldDtcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBMaW5rRWxlbWVudCk7XG5cbiAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgICAgYXJnc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICB9XG5cbiAgICByZXR1cm4gX3JldCA9IChfdGVtcCA9IChfdGhpcyA9IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIChfcmVmID0gTGlua0VsZW1lbnQuX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihMaW5rRWxlbWVudCkpLmNhbGwuYXBwbHkoX3JlZiwgW3RoaXNdLmNvbmNhdChhcmdzKSkpLCBfdGhpcyksIF90aGlzLnJlbmRlciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBfcmVhY3QyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcbiAgICAgICAgJ2EnLFxuICAgICAgICBfdGhpcy5wcm9wcyxcbiAgICAgICAgX3RoaXMucHJvcHMuY2hpbGRyZW5cbiAgICAgICk7XG4gICAgfSwgX3RlbXApLCBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihfdGhpcywgX3JldCk7XG4gIH1cblxuICByZXR1cm4gTGlua0VsZW1lbnQ7XG59KF9yZWFjdDIuZGVmYXVsdC5Db21wb25lbnQpO1xuXG47XG5cbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCBfc2Nyb2xsTGluazIuZGVmYXVsdCkoTGlua0VsZW1lbnQpOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-scroll/modules/components/Link.js\n"); + +/***/ }), + +/***/ "./node_modules/react-scroll/modules/index.js": +/*!****************************************************!*\ + !*** ./node_modules/react-scroll/modules/index.js ***! + \****************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.Helpers = exports.ScrollElement = exports.ScrollLink = exports.animateScroll = exports.scrollSpy = exports.Events = exports.scroller = exports.Element = exports.Button = exports.Link = undefined;\n\nvar _Link = __webpack_require__(/*! ./components/Link.js */ \"./node_modules/react-scroll/modules/components/Link.js\");\n\nvar _Link2 = _interopRequireDefault(_Link);\n\nvar _Button = __webpack_require__(/*! ./components/Button.js */ \"./node_modules/react-scroll/modules/components/Button.js\");\n\nvar _Button2 = _interopRequireDefault(_Button);\n\nvar _Element = __webpack_require__(/*! ./components/Element.js */ \"./node_modules/react-scroll/modules/components/Element.js\");\n\nvar _Element2 = _interopRequireDefault(_Element);\n\nvar _scroller = __webpack_require__(/*! ./mixins/scroller.js */ \"./node_modules/react-scroll/modules/mixins/scroller.js\");\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nvar _scrollEvents = __webpack_require__(/*! ./mixins/scroll-events.js */ \"./node_modules/react-scroll/modules/mixins/scroll-events.js\");\n\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\n\nvar _scrollSpy = __webpack_require__(/*! ./mixins/scroll-spy.js */ \"./node_modules/react-scroll/modules/mixins/scroll-spy.js\");\n\nvar _scrollSpy2 = _interopRequireDefault(_scrollSpy);\n\nvar _animateScroll = __webpack_require__(/*! ./mixins/animate-scroll.js */ \"./node_modules/react-scroll/modules/mixins/animate-scroll.js\");\n\nvar _animateScroll2 = _interopRequireDefault(_animateScroll);\n\nvar _scrollLink = __webpack_require__(/*! ./mixins/scroll-link.js */ \"./node_modules/react-scroll/modules/mixins/scroll-link.js\");\n\nvar _scrollLink2 = _interopRequireDefault(_scrollLink);\n\nvar _scrollElement = __webpack_require__(/*! ./mixins/scroll-element.js */ \"./node_modules/react-scroll/modules/mixins/scroll-element.js\");\n\nvar _scrollElement2 = _interopRequireDefault(_scrollElement);\n\nvar _Helpers = __webpack_require__(/*! ./mixins/Helpers.js */ \"./node_modules/react-scroll/modules/mixins/Helpers.js\");\n\nvar _Helpers2 = _interopRequireDefault(_Helpers);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.Link = _Link2.default;\nexports.Button = _Button2.default;\nexports.Element = _Element2.default;\nexports.scroller = _scroller2.default;\nexports.Events = _scrollEvents2.default;\nexports.scrollSpy = _scrollSpy2.default;\nexports.animateScroll = _animateScroll2.default;\nexports.ScrollLink = _scrollLink2.default;\nexports.ScrollElement = _scrollElement2.default;\nexports.Helpers = _Helpers2.default;\nexports[\"default\"] = { Link: _Link2.default, Button: _Button2.default, Element: _Element2.default, scroller: _scroller2.default, Events: _scrollEvents2.default, scrollSpy: _scrollSpy2.default, animateScroll: _animateScroll2.default, ScrollLink: _scrollLink2.default, ScrollElement: _scrollElement2.default, Helpers: _Helpers2.default };//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2Nyb2xsL21vZHVsZXMvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsZUFBZSxHQUFHLHFCQUFxQixHQUFHLGtCQUFrQixHQUFHLHFCQUFxQixHQUFHLGlCQUFpQixHQUFHLGNBQWMsR0FBRyxnQkFBZ0IsR0FBRyxlQUFlLEdBQUcsY0FBYyxHQUFHLFlBQVk7O0FBRTlMLFlBQVksbUJBQU8sQ0FBQyxvRkFBc0I7O0FBRTFDOztBQUVBLGNBQWMsbUJBQU8sQ0FBQyx3RkFBd0I7O0FBRTlDOztBQUVBLGVBQWUsbUJBQU8sQ0FBQywwRkFBeUI7O0FBRWhEOztBQUVBLGdCQUFnQixtQkFBTyxDQUFDLG9GQUFzQjs7QUFFOUM7O0FBRUEsb0JBQW9CLG1CQUFPLENBQUMsOEZBQTJCOztBQUV2RDs7QUFFQSxpQkFBaUIsbUJBQU8sQ0FBQyx3RkFBd0I7O0FBRWpEOztBQUVBLHFCQUFxQixtQkFBTyxDQUFDLGdHQUE0Qjs7QUFFekQ7O0FBRUEsa0JBQWtCLG1CQUFPLENBQUMsMEZBQXlCOztBQUVuRDs7QUFFQSxxQkFBcUIsbUJBQU8sQ0FBQyxnR0FBNEI7O0FBRXpEOztBQUVBLGVBQWUsbUJBQU8sQ0FBQyxrRkFBcUI7O0FBRTVDOztBQUVBLHVDQUF1Qyx1Q0FBdUM7O0FBRTlFLFlBQVk7QUFDWixjQUFjO0FBQ2QsZUFBZTtBQUNmLGdCQUFnQjtBQUNoQixjQUFjO0FBQ2QsaUJBQWlCO0FBQ2pCLHFCQUFxQjtBQUNyQixrQkFBa0I7QUFDbEIscUJBQXFCO0FBQ3JCLGVBQWU7QUFDZixrQkFBZSxLQUFLIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zY3JvbGwvbW9kdWxlcy9pbmRleC5qcz9hMjRkIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuSGVscGVycyA9IGV4cG9ydHMuU2Nyb2xsRWxlbWVudCA9IGV4cG9ydHMuU2Nyb2xsTGluayA9IGV4cG9ydHMuYW5pbWF0ZVNjcm9sbCA9IGV4cG9ydHMuc2Nyb2xsU3B5ID0gZXhwb3J0cy5FdmVudHMgPSBleHBvcnRzLnNjcm9sbGVyID0gZXhwb3J0cy5FbGVtZW50ID0gZXhwb3J0cy5CdXR0b24gPSBleHBvcnRzLkxpbmsgPSB1bmRlZmluZWQ7XG5cbnZhciBfTGluayA9IHJlcXVpcmUoJy4vY29tcG9uZW50cy9MaW5rLmpzJyk7XG5cbnZhciBfTGluazIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9MaW5rKTtcblxudmFyIF9CdXR0b24gPSByZXF1aXJlKCcuL2NvbXBvbmVudHMvQnV0dG9uLmpzJyk7XG5cbnZhciBfQnV0dG9uMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0J1dHRvbik7XG5cbnZhciBfRWxlbWVudCA9IHJlcXVpcmUoJy4vY29tcG9uZW50cy9FbGVtZW50LmpzJyk7XG5cbnZhciBfRWxlbWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9FbGVtZW50KTtcblxudmFyIF9zY3JvbGxlciA9IHJlcXVpcmUoJy4vbWl4aW5zL3Njcm9sbGVyLmpzJyk7XG5cbnZhciBfc2Nyb2xsZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfc2Nyb2xsZXIpO1xuXG52YXIgX3Njcm9sbEV2ZW50cyA9IHJlcXVpcmUoJy4vbWl4aW5zL3Njcm9sbC1ldmVudHMuanMnKTtcblxudmFyIF9zY3JvbGxFdmVudHMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfc2Nyb2xsRXZlbnRzKTtcblxudmFyIF9zY3JvbGxTcHkgPSByZXF1aXJlKCcuL21peGlucy9zY3JvbGwtc3B5LmpzJyk7XG5cbnZhciBfc2Nyb2xsU3B5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3Njcm9sbFNweSk7XG5cbnZhciBfYW5pbWF0ZVNjcm9sbCA9IHJlcXVpcmUoJy4vbWl4aW5zL2FuaW1hdGUtc2Nyb2xsLmpzJyk7XG5cbnZhciBfYW5pbWF0ZVNjcm9sbDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9hbmltYXRlU2Nyb2xsKTtcblxudmFyIF9zY3JvbGxMaW5rID0gcmVxdWlyZSgnLi9taXhpbnMvc2Nyb2xsLWxpbmsuanMnKTtcblxudmFyIF9zY3JvbGxMaW5rMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3Njcm9sbExpbmspO1xuXG52YXIgX3Njcm9sbEVsZW1lbnQgPSByZXF1aXJlKCcuL21peGlucy9zY3JvbGwtZWxlbWVudC5qcycpO1xuXG52YXIgX3Njcm9sbEVsZW1lbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfc2Nyb2xsRWxlbWVudCk7XG5cbnZhciBfSGVscGVycyA9IHJlcXVpcmUoJy4vbWl4aW5zL0hlbHBlcnMuanMnKTtcblxudmFyIF9IZWxwZXJzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0hlbHBlcnMpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG5leHBvcnRzLkxpbmsgPSBfTGluazIuZGVmYXVsdDtcbmV4cG9ydHMuQnV0dG9uID0gX0J1dHRvbjIuZGVmYXVsdDtcbmV4cG9ydHMuRWxlbWVudCA9IF9FbGVtZW50Mi5kZWZhdWx0O1xuZXhwb3J0cy5zY3JvbGxlciA9IF9zY3JvbGxlcjIuZGVmYXVsdDtcbmV4cG9ydHMuRXZlbnRzID0gX3Njcm9sbEV2ZW50czIuZGVmYXVsdDtcbmV4cG9ydHMuc2Nyb2xsU3B5ID0gX3Njcm9sbFNweTIuZGVmYXVsdDtcbmV4cG9ydHMuYW5pbWF0ZVNjcm9sbCA9IF9hbmltYXRlU2Nyb2xsMi5kZWZhdWx0O1xuZXhwb3J0cy5TY3JvbGxMaW5rID0gX3Njcm9sbExpbmsyLmRlZmF1bHQ7XG5leHBvcnRzLlNjcm9sbEVsZW1lbnQgPSBfc2Nyb2xsRWxlbWVudDIuZGVmYXVsdDtcbmV4cG9ydHMuSGVscGVycyA9IF9IZWxwZXJzMi5kZWZhdWx0O1xuZXhwb3J0cy5kZWZhdWx0ID0geyBMaW5rOiBfTGluazIuZGVmYXVsdCwgQnV0dG9uOiBfQnV0dG9uMi5kZWZhdWx0LCBFbGVtZW50OiBfRWxlbWVudDIuZGVmYXVsdCwgc2Nyb2xsZXI6IF9zY3JvbGxlcjIuZGVmYXVsdCwgRXZlbnRzOiBfc2Nyb2xsRXZlbnRzMi5kZWZhdWx0LCBzY3JvbGxTcHk6IF9zY3JvbGxTcHkyLmRlZmF1bHQsIGFuaW1hdGVTY3JvbGw6IF9hbmltYXRlU2Nyb2xsMi5kZWZhdWx0LCBTY3JvbGxMaW5rOiBfc2Nyb2xsTGluazIuZGVmYXVsdCwgU2Nyb2xsRWxlbWVudDogX3Njcm9sbEVsZW1lbnQyLmRlZmF1bHQsIEhlbHBlcnM6IF9IZWxwZXJzMi5kZWZhdWx0IH07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/react-scroll/modules/index.js\n"); + +/***/ }), + +/***/ "./node_modules/react-scroll/modules/mixins/Helpers.js": +/*!*************************************************************!*\ + !*** ./node_modules/react-scroll/modules/mixins/Helpers.js ***! + \*************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("\n\n/* DEPRECATED */\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar React = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\nvar ReactDOM = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n\nvar utils = __webpack_require__(/*! ./utils */ \"./node_modules/react-scroll/modules/mixins/utils.js\");\nvar scrollSpy = __webpack_require__(/*! ./scroll-spy */ \"./node_modules/react-scroll/modules/mixins/scroll-spy.js\");\nvar defaultScroller = __webpack_require__(/*! ./scroller */ \"./node_modules/react-scroll/modules/mixins/scroller.js\");\nvar PropTypes = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\nvar scrollHash = __webpack_require__(/*! ./scroll-hash */ \"./node_modules/react-scroll/modules/mixins/scroll-hash.js\");\n\nvar protoTypes = {\n to: PropTypes.string.isRequired,\n containerId: PropTypes.string,\n container: PropTypes.object,\n activeClass: PropTypes.string,\n spy: PropTypes.bool,\n smooth: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n offset: PropTypes.number,\n delay: PropTypes.number,\n isDynamic: PropTypes.bool,\n onClick: PropTypes.func,\n duration: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),\n absolute: PropTypes.bool,\n onSetActive: PropTypes.func,\n onSetInactive: PropTypes.func,\n ignoreCancelEvents: PropTypes.bool,\n hashSpy: PropTypes.bool,\n spyThrottle: PropTypes.number\n};\n\nvar Helpers = {\n Scroll: function Scroll(Component, customScroller) {\n\n console.warn(\"Helpers.Scroll is deprecated since v1.7.0\");\n\n var scroller = customScroller || defaultScroller;\n\n var Scroll = function (_React$Component) {\n _inherits(Scroll, _React$Component);\n\n function Scroll(props) {\n _classCallCheck(this, Scroll);\n\n var _this = _possibleConstructorReturn(this, (Scroll.__proto__ || Object.getPrototypeOf(Scroll)).call(this, props));\n\n _initialiseProps.call(_this);\n\n _this.state = {\n active: false\n };\n return _this;\n }\n\n _createClass(Scroll, [{\n key: 'getScrollSpyContainer',\n value: function getScrollSpyContainer() {\n var containerId = this.props.containerId;\n var container = this.props.container;\n\n if (containerId) {\n return document.getElementById(containerId);\n }\n\n if (container && container.nodeType) {\n return container;\n }\n\n return document;\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.props.spy || this.props.hashSpy) {\n var scrollSpyContainer = this.getScrollSpyContainer();\n\n if (!scrollSpy.isMounted(scrollSpyContainer)) {\n scrollSpy.mount(scrollSpyContainer, this.props.spyThrottle);\n }\n\n if (this.props.hashSpy) {\n if (!scrollHash.isMounted()) {\n scrollHash.mount(scroller);\n }\n scrollHash.mapContainer(this.props.to, scrollSpyContainer);\n }\n\n if (this.props.spy) {\n scrollSpy.addStateHandler(this.stateHandler);\n }\n\n scrollSpy.addSpyHandler(this.spyHandler, scrollSpyContainer);\n\n this.setState({\n container: scrollSpyContainer\n });\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n scrollSpy.unmount(this.stateHandler, this.spyHandler);\n }\n }, {\n key: 'render',\n value: function render() {\n var className = \"\";\n\n if (this.state && this.state.active) {\n className = ((this.props.className || \"\") + \" \" + (this.props.activeClass || \"active\")).trim();\n } else {\n className = this.props.className;\n }\n\n var props = _extends({}, this.props);\n\n for (var prop in protoTypes) {\n if (props.hasOwnProperty(prop)) {\n delete props[prop];\n }\n }\n\n props.className = className;\n props.onClick = this.handleClick;\n\n return React.createElement(Component, props);\n }\n }]);\n\n return Scroll;\n }(React.Component);\n\n var _initialiseProps = function _initialiseProps() {\n var _this2 = this;\n\n this.scrollTo = function (to, props) {\n scroller.scrollTo(to, _extends({}, _this2.state, props));\n };\n\n this.handleClick = function (event) {\n\n /*\r\n * give the posibility to override onClick\r\n */\n\n if (_this2.props.onClick) {\n _this2.props.onClick(event);\n }\n\n /*\r\n * dont bubble the navigation\r\n */\n\n if (event.stopPropagation) event.stopPropagation();\n if (event.preventDefault) event.preventDefault();\n\n /*\r\n * do the magic!\r\n */\n _this2.scrollTo(_this2.props.to, _this2.props);\n };\n\n this.stateHandler = function () {\n if (scroller.getActiveLink() !== _this2.props.to) {\n if (_this2.state !== null && _this2.state.active && _this2.props.onSetInactive) {\n _this2.props.onSetInactive();\n }\n _this2.setState({ active: false });\n }\n };\n\n this.spyHandler = function (y) {\n\n var scrollSpyContainer = _this2.getScrollSpyContainer();\n\n if (scrollHash.isMounted() && !scrollHash.isInitialized()) {\n return;\n }\n\n var to = _this2.props.to;\n var element = null;\n var elemTopBound = 0;\n var elemBottomBound = 0;\n var containerTop = 0;\n\n if (scrollSpyContainer.getBoundingClientRect) {\n var containerCords = scrollSpyContainer.getBoundingClientRect();\n containerTop = containerCords.top;\n }\n\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n if (!element) {\n return;\n }\n\n var cords = element.getBoundingClientRect();\n elemTopBound = cords.top - containerTop + y;\n elemBottomBound = elemTopBound + cords.height;\n }\n\n var offsetY = y - _this2.props.offset;\n var isInside = offsetY >= Math.floor(elemTopBound) && offsetY < Math.floor(elemBottomBound);\n var isOutside = offsetY < Math.floor(elemTopBound) || offsetY >= Math.floor(elemBottomBound);\n var activeLink = scroller.getActiveLink();\n\n if (isOutside) {\n if (to === activeLink) {\n scroller.setActiveLink(void 0);\n }\n\n if (_this2.props.hashSpy && scrollHash.getHash() === to) {\n scrollHash.changeHash();\n }\n\n if (_this2.props.spy && _this2.state.active) {\n _this2.setState({ active: false });\n _this2.props.onSetInactive && _this2.props.onSetInactive();\n }\n\n return scrollSpy.updateStates();\n }\n\n if (isInside && activeLink !== to) {\n scroller.setActiveLink(to);\n\n _this2.props.hashSpy && scrollHash.changeHash(to);\n\n if (_this2.props.spy) {\n _this2.setState({ active: true });\n _this2.props.onSetActive && _this2.props.onSetActive(to);\n }\n return scrollSpy.updateStates();\n }\n };\n };\n\n ;\n\n Scroll.propTypes = protoTypes;\n\n Scroll.defaultProps = { offset: 0 };\n\n return Scroll;\n },\n Element: function Element(Component) {\n\n console.warn(\"Helpers.Element is deprecated since v1.7.0\");\n\n var Element = function (_React$Component2) {\n _inherits(Element, _React$Component2);\n\n function Element(props) {\n _classCallCheck(this, Element);\n\n var _this3 = _possibleConstructorReturn(this, (Element.__proto__ || Object.getPrototypeOf(Element)).call(this, props));\n\n _this3.childBindings = {\n domNode: null\n };\n return _this3;\n }\n\n _createClass(Element, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (typeof window === 'undefined') {\n return false;\n }\n this.registerElems(this.props.name);\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n if (this.props.name !== prevProps.name) {\n this.registerElems(this.props.name);\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (typeof window === 'undefined') {\n return false;\n }\n defaultScroller.unregister(this.props.name);\n }\n }, {\n key: 'registerElems',\n value: function registerElems(name) {\n defaultScroller.register(name, this.childBindings.domNode);\n }\n }, {\n key: 'render',\n value: function render() {\n return React.createElement(Component, _extends({}, this.props, { parentBindings: this.childBindings }));\n }\n }]);\n\n return Element;\n }(React.Component);\n\n ;\n\n Element.propTypes = {\n name: PropTypes.string,\n id: PropTypes.string\n };\n\n return Element;\n }\n};\n\nmodule.exports = Helpers;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2Nyb2xsL21vZHVsZXMvbWl4aW5zL0hlbHBlcnMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWI7O0FBRUEsb0RBQW9ELGdCQUFnQixzQkFBc0IsT0FBTywyQkFBMkIsMEJBQTBCLHlEQUF5RCxpQ0FBaUM7O0FBRWhQLGlDQUFpQywyQ0FBMkMsZ0JBQWdCLGtCQUFrQixPQUFPLDJCQUEyQix3REFBd0QsZ0NBQWdDLHVEQUF1RCwrREFBK0QseURBQXlELHFFQUFxRSw2REFBNkQsd0JBQXdCOztBQUVqakIsa0RBQWtELDBDQUEwQzs7QUFFNUYsa0RBQWtELGFBQWEseUZBQXlGOztBQUV4SiwyQ0FBMkMsK0RBQStELHVHQUF1Ryx5RUFBeUUsZUFBZSwwRUFBMEUsR0FBRzs7QUFFdFgsWUFBWSxtQkFBTyxDQUFDLDRDQUFPO0FBQzNCLGVBQWUsbUJBQU8sQ0FBQyxvREFBVzs7QUFFbEMsWUFBWSxtQkFBTyxDQUFDLG9FQUFTO0FBQzdCLGdCQUFnQixtQkFBTyxDQUFDLDhFQUFjO0FBQ3RDLHNCQUFzQixtQkFBTyxDQUFDLDBFQUFZO0FBQzFDLGdCQUFnQixtQkFBTyxDQUFDLHNEQUFZO0FBQ3BDLGlCQUFpQixtQkFBTyxDQUFDLGdGQUFlOztBQUV4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBOztBQUVBLGlDQUFpQzs7QUFFakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxPQUFPOztBQUVQO0FBQ0EsS0FBSzs7QUFFTDtBQUNBOztBQUVBO0FBQ0EseUNBQXlDO0FBQ3pDOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLGVBQWU7QUFDM0M7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDhCQUE4QixlQUFlO0FBQzdDO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0EsOEJBQThCLGNBQWM7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBLDRCQUE0Qjs7QUFFNUI7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBLDJEQUEyRCxnQkFBZ0Isb0NBQW9DO0FBQy9HO0FBQ0EsT0FBTzs7QUFFUDtBQUNBLEtBQUs7O0FBRUw7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zY3JvbGwvbW9kdWxlcy9taXhpbnMvSGVscGVycy5qcz8zYjk0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG4vKiBERVBSRUNBVEVEICovXG5cbnZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbnZhciBfY3JlYXRlQ2xhc3MgPSBmdW5jdGlvbiAoKSB7IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfSByZXR1cm4gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9OyB9KCk7XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHNlbGYsIGNhbGwpIHsgaWYgKCFzZWxmKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gY2FsbCAmJiAodHlwZW9mIGNhbGwgPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGNhbGwgPT09IFwiZnVuY3Rpb25cIikgPyBjYWxsIDogc2VsZjsgfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCBcIiArIHR5cGVvZiBzdXBlckNsYXNzKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7IH1cblxudmFyIFJlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcbnZhciBSZWFjdERPTSA9IHJlcXVpcmUoJ3JlYWN0LWRvbScpO1xuXG52YXIgdXRpbHMgPSByZXF1aXJlKCcuL3V0aWxzJyk7XG52YXIgc2Nyb2xsU3B5ID0gcmVxdWlyZSgnLi9zY3JvbGwtc3B5Jyk7XG52YXIgZGVmYXVsdFNjcm9sbGVyID0gcmVxdWlyZSgnLi9zY3JvbGxlcicpO1xudmFyIFByb3BUeXBlcyA9IHJlcXVpcmUoJ3Byb3AtdHlwZXMnKTtcbnZhciBzY3JvbGxIYXNoID0gcmVxdWlyZSgnLi9zY3JvbGwtaGFzaCcpO1xuXG52YXIgcHJvdG9UeXBlcyA9IHtcbiAgdG86IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgY29udGFpbmVySWQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGNvbnRhaW5lcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgYWN0aXZlQ2xhc3M6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHNweTogUHJvcFR5cGVzLmJvb2wsXG4gIHNtb290aDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmJvb2wsIFByb3BUeXBlcy5zdHJpbmddKSxcbiAgb2Zmc2V0OiBQcm9wVHlwZXMubnVtYmVyLFxuICBkZWxheTogUHJvcFR5cGVzLm51bWJlcixcbiAgaXNEeW5hbWljOiBQcm9wVHlwZXMuYm9vbCxcbiAgb25DbGljazogUHJvcFR5cGVzLmZ1bmMsXG4gIGR1cmF0aW9uOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMubnVtYmVyLCBQcm9wVHlwZXMuZnVuY10pLFxuICBhYnNvbHV0ZTogUHJvcFR5cGVzLmJvb2wsXG4gIG9uU2V0QWN0aXZlOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25TZXRJbmFjdGl2ZTogUHJvcFR5cGVzLmZ1bmMsXG4gIGlnbm9yZUNhbmNlbEV2ZW50czogUHJvcFR5cGVzLmJvb2wsXG4gIGhhc2hTcHk6IFByb3BUeXBlcy5ib29sLFxuICBzcHlUaHJvdHRsZTogUHJvcFR5cGVzLm51bWJlclxufTtcblxudmFyIEhlbHBlcnMgPSB7XG4gIFNjcm9sbDogZnVuY3Rpb24gU2Nyb2xsKENvbXBvbmVudCwgY3VzdG9tU2Nyb2xsZXIpIHtcblxuICAgIGNvbnNvbGUud2FybihcIkhlbHBlcnMuU2Nyb2xsIGlzIGRlcHJlY2F0ZWQgc2luY2UgdjEuNy4wXCIpO1xuXG4gICAgdmFyIHNjcm9sbGVyID0gY3VzdG9tU2Nyb2xsZXIgfHwgZGVmYXVsdFNjcm9sbGVyO1xuXG4gICAgdmFyIFNjcm9sbCA9IGZ1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gICAgICBfaW5oZXJpdHMoU2Nyb2xsLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICAgICAgZnVuY3Rpb24gU2Nyb2xsKHByb3BzKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBTY3JvbGwpO1xuXG4gICAgICAgIHZhciBfdGhpcyA9IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIChTY3JvbGwuX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihTY3JvbGwpKS5jYWxsKHRoaXMsIHByb3BzKSk7XG5cbiAgICAgICAgX2luaXRpYWxpc2VQcm9wcy5jYWxsKF90aGlzKTtcblxuICAgICAgICBfdGhpcy5zdGF0ZSA9IHtcbiAgICAgICAgICBhY3RpdmU6IGZhbHNlXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICAgIH1cblxuICAgICAgX2NyZWF0ZUNsYXNzKFNjcm9sbCwgW3tcbiAgICAgICAga2V5OiAnZ2V0U2Nyb2xsU3B5Q29udGFpbmVyJyxcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIGdldFNjcm9sbFNweUNvbnRhaW5lcigpIHtcbiAgICAgICAgICB2YXIgY29udGFpbmVySWQgPSB0aGlzLnByb3BzLmNvbnRhaW5lcklkO1xuICAgICAgICAgIHZhciBjb250YWluZXIgPSB0aGlzLnByb3BzLmNvbnRhaW5lcjtcblxuICAgICAgICAgIGlmIChjb250YWluZXJJZCkge1xuICAgICAgICAgICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGNvbnRhaW5lcklkKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoY29udGFpbmVyICYmIGNvbnRhaW5lci5ub2RlVHlwZSkge1xuICAgICAgICAgICAgcmV0dXJuIGNvbnRhaW5lcjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gZG9jdW1lbnQ7XG4gICAgICAgIH1cbiAgICAgIH0sIHtcbiAgICAgICAga2V5OiAnY29tcG9uZW50RGlkTW91bnQnLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICAgICAgaWYgKHRoaXMucHJvcHMuc3B5IHx8IHRoaXMucHJvcHMuaGFzaFNweSkge1xuICAgICAgICAgICAgdmFyIHNjcm9sbFNweUNvbnRhaW5lciA9IHRoaXMuZ2V0U2Nyb2xsU3B5Q29udGFpbmVyKCk7XG5cbiAgICAgICAgICAgIGlmICghc2Nyb2xsU3B5LmlzTW91bnRlZChzY3JvbGxTcHlDb250YWluZXIpKSB7XG4gICAgICAgICAgICAgIHNjcm9sbFNweS5tb3VudChzY3JvbGxTcHlDb250YWluZXIsIHRoaXMucHJvcHMuc3B5VGhyb3R0bGUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5oYXNoU3B5KSB7XG4gICAgICAgICAgICAgIGlmICghc2Nyb2xsSGFzaC5pc01vdW50ZWQoKSkge1xuICAgICAgICAgICAgICAgIHNjcm9sbEhhc2gubW91bnQoc2Nyb2xsZXIpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHNjcm9sbEhhc2gubWFwQ29udGFpbmVyKHRoaXMucHJvcHMudG8sIHNjcm9sbFNweUNvbnRhaW5lcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLnNweSkge1xuICAgICAgICAgICAgICBzY3JvbGxTcHkuYWRkU3RhdGVIYW5kbGVyKHRoaXMuc3RhdGVIYW5kbGVyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc2Nyb2xsU3B5LmFkZFNweUhhbmRsZXIodGhpcy5zcHlIYW5kbGVyLCBzY3JvbGxTcHlDb250YWluZXIpO1xuXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgICAgY29udGFpbmVyOiBzY3JvbGxTcHlDb250YWluZXJcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSwge1xuICAgICAgICBrZXk6ICdjb21wb25lbnRXaWxsVW5tb3VudCcsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgICAgICBzY3JvbGxTcHkudW5tb3VudCh0aGlzLnN0YXRlSGFuZGxlciwgdGhpcy5zcHlIYW5kbGVyKTtcbiAgICAgICAgfVxuICAgICAgfSwge1xuICAgICAgICBrZXk6ICdyZW5kZXInLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICAgIHZhciBjbGFzc05hbWUgPSBcIlwiO1xuXG4gICAgICAgICAgaWYgKHRoaXMuc3RhdGUgJiYgdGhpcy5zdGF0ZS5hY3RpdmUpIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZSA9ICgodGhpcy5wcm9wcy5jbGFzc05hbWUgfHwgXCJcIikgKyBcIiBcIiArICh0aGlzLnByb3BzLmFjdGl2ZUNsYXNzIHx8IFwiYWN0aXZlXCIpKS50cmltKCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZSA9IHRoaXMucHJvcHMuY2xhc3NOYW1lO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHZhciBwcm9wcyA9IF9leHRlbmRzKHt9LCB0aGlzLnByb3BzKTtcblxuICAgICAgICAgIGZvciAodmFyIHByb3AgaW4gcHJvdG9UeXBlcykge1xuICAgICAgICAgICAgaWYgKHByb3BzLmhhc093blByb3BlcnR5KHByb3ApKSB7XG4gICAgICAgICAgICAgIGRlbGV0ZSBwcm9wc1twcm9wXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBwcm9wcy5jbGFzc05hbWUgPSBjbGFzc05hbWU7XG4gICAgICAgICAgcHJvcHMub25DbGljayA9IHRoaXMuaGFuZGxlQ2xpY2s7XG5cbiAgICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChDb21wb25lbnQsIHByb3BzKTtcbiAgICAgICAgfVxuICAgICAgfV0pO1xuXG4gICAgICByZXR1cm4gU2Nyb2xsO1xuICAgIH0oUmVhY3QuQ29tcG9uZW50KTtcblxuICAgIHZhciBfaW5pdGlhbGlzZVByb3BzID0gZnVuY3Rpb24gX2luaXRpYWxpc2VQcm9wcygpIHtcbiAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICB0aGlzLnNjcm9sbFRvID0gZnVuY3Rpb24gKHRvLCBwcm9wcykge1xuICAgICAgICBzY3JvbGxlci5zY3JvbGxUbyh0bywgX2V4dGVuZHMoe30sIF90aGlzMi5zdGF0ZSwgcHJvcHMpKTtcbiAgICAgIH07XG5cbiAgICAgIHRoaXMuaGFuZGxlQ2xpY2sgPSBmdW5jdGlvbiAoZXZlbnQpIHtcblxuICAgICAgICAvKlxyXG4gICAgICAgICAqIGdpdmUgdGhlIHBvc2liaWxpdHkgdG8gb3ZlcnJpZGUgb25DbGlja1xyXG4gICAgICAgICAqL1xuXG4gICAgICAgIGlmIChfdGhpczIucHJvcHMub25DbGljaykge1xuICAgICAgICAgIF90aGlzMi5wcm9wcy5vbkNsaWNrKGV2ZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qXHJcbiAgICAgICAgICogZG9udCBidWJibGUgdGhlIG5hdmlnYXRpb25cclxuICAgICAgICAgKi9cblxuICAgICAgICBpZiAoZXZlbnQuc3RvcFByb3BhZ2F0aW9uKSBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgaWYgKGV2ZW50LnByZXZlbnREZWZhdWx0KSBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgIC8qXHJcbiAgICAgICAgICogZG8gdGhlIG1hZ2ljIVxyXG4gICAgICAgICAqL1xuICAgICAgICBfdGhpczIuc2Nyb2xsVG8oX3RoaXMyLnByb3BzLnRvLCBfdGhpczIucHJvcHMpO1xuICAgICAgfTtcblxuICAgICAgdGhpcy5zdGF0ZUhhbmRsZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmIChzY3JvbGxlci5nZXRBY3RpdmVMaW5rKCkgIT09IF90aGlzMi5wcm9wcy50bykge1xuICAgICAgICAgIGlmIChfdGhpczIuc3RhdGUgIT09IG51bGwgJiYgX3RoaXMyLnN0YXRlLmFjdGl2ZSAmJiBfdGhpczIucHJvcHMub25TZXRJbmFjdGl2ZSkge1xuICAgICAgICAgICAgX3RoaXMyLnByb3BzLm9uU2V0SW5hY3RpdmUoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgX3RoaXMyLnNldFN0YXRlKHsgYWN0aXZlOiBmYWxzZSB9KTtcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgdGhpcy5zcHlIYW5kbGVyID0gZnVuY3Rpb24gKHkpIHtcblxuICAgICAgICB2YXIgc2Nyb2xsU3B5Q29udGFpbmVyID0gX3RoaXMyLmdldFNjcm9sbFNweUNvbnRhaW5lcigpO1xuXG4gICAgICAgIGlmIChzY3JvbGxIYXNoLmlzTW91bnRlZCgpICYmICFzY3JvbGxIYXNoLmlzSW5pdGlhbGl6ZWQoKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciB0byA9IF90aGlzMi5wcm9wcy50bztcbiAgICAgICAgdmFyIGVsZW1lbnQgPSBudWxsO1xuICAgICAgICB2YXIgZWxlbVRvcEJvdW5kID0gMDtcbiAgICAgICAgdmFyIGVsZW1Cb3R0b21Cb3VuZCA9IDA7XG4gICAgICAgIHZhciBjb250YWluZXJUb3AgPSAwO1xuXG4gICAgICAgIGlmIChzY3JvbGxTcHlDb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KSB7XG4gICAgICAgICAgdmFyIGNvbnRhaW5lckNvcmRzID0gc2Nyb2xsU3B5Q29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgIGNvbnRhaW5lclRvcCA9IGNvbnRhaW5lckNvcmRzLnRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghZWxlbWVudCB8fCBfdGhpczIucHJvcHMuaXNEeW5hbWljKSB7XG4gICAgICAgICAgZWxlbWVudCA9IHNjcm9sbGVyLmdldCh0byk7XG4gICAgICAgICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdmFyIGNvcmRzID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICBlbGVtVG9wQm91bmQgPSBjb3Jkcy50b3AgLSBjb250YWluZXJUb3AgKyB5O1xuICAgICAgICAgIGVsZW1Cb3R0b21Cb3VuZCA9IGVsZW1Ub3BCb3VuZCArIGNvcmRzLmhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBvZmZzZXRZID0geSAtIF90aGlzMi5wcm9wcy5vZmZzZXQ7XG4gICAgICAgIHZhciBpc0luc2lkZSA9IG9mZnNldFkgPj0gTWF0aC5mbG9vcihlbGVtVG9wQm91bmQpICYmIG9mZnNldFkgPCBNYXRoLmZsb29yKGVsZW1Cb3R0b21Cb3VuZCk7XG4gICAgICAgIHZhciBpc091dHNpZGUgPSBvZmZzZXRZIDwgTWF0aC5mbG9vcihlbGVtVG9wQm91bmQpIHx8IG9mZnNldFkgPj0gTWF0aC5mbG9vcihlbGVtQm90dG9tQm91bmQpO1xuICAgICAgICB2YXIgYWN0aXZlTGluayA9IHNjcm9sbGVyLmdldEFjdGl2ZUxpbmsoKTtcblxuICAgICAgICBpZiAoaXNPdXRzaWRlKSB7XG4gICAgICAgICAgaWYgKHRvID09PSBhY3RpdmVMaW5rKSB7XG4gICAgICAgICAgICBzY3JvbGxlci5zZXRBY3RpdmVMaW5rKHZvaWQgMCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKF90aGlzMi5wcm9wcy5oYXNoU3B5ICYmIHNjcm9sbEhhc2guZ2V0SGFzaCgpID09PSB0bykge1xuICAgICAgICAgICAgc2Nyb2xsSGFzaC5jaGFuZ2VIYXNoKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKF90aGlzMi5wcm9wcy5zcHkgJiYgX3RoaXMyLnN0YXRlLmFjdGl2ZSkge1xuICAgICAgICAgICAgX3RoaXMyLnNldFN0YXRlKHsgYWN0aXZlOiBmYWxzZSB9KTtcbiAgICAgICAgICAgIF90aGlzMi5wcm9wcy5vblNldEluYWN0aXZlICYmIF90aGlzMi5wcm9wcy5vblNldEluYWN0aXZlKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHNjcm9sbFNweS51cGRhdGVTdGF0ZXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc0luc2lkZSAmJiBhY3RpdmVMaW5rICE9PSB0bykge1xuICAgICAgICAgIHNjcm9sbGVyLnNldEFjdGl2ZUxpbmsodG8pO1xuXG4gICAgICAgICAgX3RoaXMyLnByb3BzLmhhc2hTcHkgJiYgc2Nyb2xsSGFzaC5jaGFuZ2VIYXNoKHRvKTtcblxuICAgICAgICAgIGlmIChfdGhpczIucHJvcHMuc3B5KSB7XG4gICAgICAgICAgICBfdGhpczIuc2V0U3RhdGUoeyBhY3RpdmU6IHRydWUgfSk7XG4gICAgICAgICAgICBfdGhpczIucHJvcHMub25TZXRBY3RpdmUgJiYgX3RoaXMyLnByb3BzLm9uU2V0QWN0aXZlKHRvKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHNjcm9sbFNweS51cGRhdGVTdGF0ZXMoKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9O1xuXG4gICAgO1xuXG4gICAgU2Nyb2xsLnByb3BUeXBlcyA9IHByb3RvVHlwZXM7XG5cbiAgICBTY3JvbGwuZGVmYXVsdFByb3BzID0geyBvZmZzZXQ6IDAgfTtcblxuICAgIHJldHVybiBTY3JvbGw7XG4gIH0sXG4gIEVsZW1lbnQ6IGZ1bmN0aW9uIEVsZW1lbnQoQ29tcG9uZW50KSB7XG5cbiAgICBjb25zb2xlLndhcm4oXCJIZWxwZXJzLkVsZW1lbnQgaXMgZGVwcmVjYXRlZCBzaW5jZSB2MS43LjBcIik7XG5cbiAgICB2YXIgRWxlbWVudCA9IGZ1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50Mikge1xuICAgICAgX2luaGVyaXRzKEVsZW1lbnQsIF9SZWFjdCRDb21wb25lbnQyKTtcblxuICAgICAgZnVuY3Rpb24gRWxlbWVudChwcm9wcykge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgRWxlbWVudCk7XG5cbiAgICAgICAgdmFyIF90aGlzMyA9IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIChFbGVtZW50Ll9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2YoRWxlbWVudCkpLmNhbGwodGhpcywgcHJvcHMpKTtcblxuICAgICAgICBfdGhpczMuY2hpbGRCaW5kaW5ncyA9IHtcbiAgICAgICAgICBkb21Ob2RlOiBudWxsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBfdGhpczM7XG4gICAgICB9XG5cbiAgICAgIF9jcmVhdGVDbGFzcyhFbGVtZW50LCBbe1xuICAgICAgICBrZXk6ICdjb21wb25lbnREaWRNb3VudCcsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5yZWdpc3RlckVsZW1zKHRoaXMucHJvcHMubmFtZSk7XG4gICAgICAgIH1cbiAgICAgIH0sIHtcbiAgICAgICAga2V5OiAnY29tcG9uZW50RGlkVXBkYXRlJyxcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICAgICAgICBpZiAodGhpcy5wcm9wcy5uYW1lICE9PSBwcmV2UHJvcHMubmFtZSkge1xuICAgICAgICAgICAgdGhpcy5yZWdpc3RlckVsZW1zKHRoaXMucHJvcHMubmFtZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LCB7XG4gICAgICAgIGtleTogJ2NvbXBvbmVudFdpbGxVbm1vdW50JyxcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBkZWZhdWx0U2Nyb2xsZXIudW5yZWdpc3Rlcih0aGlzLnByb3BzLm5hbWUpO1xuICAgICAgICB9XG4gICAgICB9LCB7XG4gICAgICAgIGtleTogJ3JlZ2lzdGVyRWxlbXMnLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gcmVnaXN0ZXJFbGVtcyhuYW1lKSB7XG4gICAgICAgICAgZGVmYXVsdFNjcm9sbGVyLnJlZ2lzdGVyKG5hbWUsIHRoaXMuY2hpbGRCaW5kaW5ncy5kb21Ob2RlKTtcbiAgICAgICAgfVxuICAgICAgfSwge1xuICAgICAgICBrZXk6ICdyZW5kZXInLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KENvbXBvbmVudCwgX2V4dGVuZHMoe30sIHRoaXMucHJvcHMsIHsgcGFyZW50QmluZGluZ3M6IHRoaXMuY2hpbGRCaW5kaW5ncyB9KSk7XG4gICAgICAgIH1cbiAgICAgIH1dKTtcblxuICAgICAgcmV0dXJuIEVsZW1lbnQ7XG4gICAgfShSZWFjdC5Db21wb25lbnQpO1xuXG4gICAgO1xuXG4gICAgRWxlbWVudC5wcm9wVHlwZXMgPSB7XG4gICAgICBuYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgaWQ6IFByb3BUeXBlcy5zdHJpbmdcbiAgICB9O1xuXG4gICAgcmV0dXJuIEVsZW1lbnQ7XG4gIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gSGVscGVyczsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-scroll/modules/mixins/Helpers.js\n"); + +/***/ }), + +/***/ "./node_modules/react-scroll/modules/mixins/animate-scroll.js": +/*!********************************************************************!*\ + !*** ./node_modules/react-scroll/modules/mixins/animate-scroll.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/react-scroll/modules/mixins/utils.js\");\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nvar _smooth = __webpack_require__(/*! ./smooth */ \"./node_modules/react-scroll/modules/mixins/smooth.js\");\n\nvar _smooth2 = _interopRequireDefault(_smooth);\n\nvar _cancelEvents = __webpack_require__(/*! ./cancel-events */ \"./node_modules/react-scroll/modules/mixins/cancel-events.js\");\n\nvar _cancelEvents2 = _interopRequireDefault(_cancelEvents);\n\nvar _scrollEvents = __webpack_require__(/*! ./scroll-events */ \"./node_modules/react-scroll/modules/mixins/scroll-events.js\");\n\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*\r\n * Gets the easing type from the smooth prop within options.\r\n */\nvar getAnimationType = function getAnimationType(options) {\n return _smooth2.default[options.smooth] || _smooth2.default.defaultEasing;\n};\n/*\r\n * Function helper\r\n */\nvar functionWrapper = function functionWrapper(value) {\n return typeof value === 'function' ? value : function () {\n return value;\n };\n};\n/*\r\n * Wraps window properties to allow server side rendering\r\n */\nvar currentWindowProperties = function currentWindowProperties() {\n if (typeof window !== 'undefined') {\n return window.requestAnimationFrame || window.webkitRequestAnimationFrame;\n }\n};\n\n/*\r\n * Helper function to never extend 60fps on the webpage.\r\n */\nvar requestAnimationFrameHelper = function () {\n return currentWindowProperties() || function (callback, element, delay) {\n window.setTimeout(callback, delay || 1000 / 60, new Date().getTime());\n };\n}();\n\nvar makeData = function makeData() {\n return {\n currentPosition: 0,\n startPosition: 0,\n targetPosition: 0,\n progress: 0,\n duration: 0,\n cancel: false,\n\n target: null,\n containerElement: null,\n to: null,\n start: null,\n delta: null,\n percent: null,\n delayTimeout: null\n };\n};\n\nvar currentPositionX = function currentPositionX(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollLeft;\n } else {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageXOffset : isCSS1Compat ? document.documentElement.scrollLeft : document.body.scrollLeft;\n }\n};\n\nvar currentPositionY = function currentPositionY(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollTop;\n } else {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop;\n }\n};\n\nvar scrollContainerWidth = function scrollContainerWidth(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollWidth - containerElement.offsetWidth;\n } else {\n var body = document.body;\n var html = document.documentElement;\n\n return Math.max(body.scrollWidth, body.offsetWidth, html.clientWidth, html.scrollWidth, html.offsetWidth);\n }\n};\n\nvar scrollContainerHeight = function scrollContainerHeight(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollHeight - containerElement.offsetHeight;\n } else {\n var body = document.body;\n var html = document.documentElement;\n\n return Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight);\n }\n};\n\nvar animateScroll = function animateScroll(easing, options, timestamp) {\n var data = options.data;\n\n // Cancel on specific events\n if (!options.ignoreCancelEvents && data.cancel) {\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](data.to, data.target, data.currentPositionY);\n }\n return;\n };\n\n data.delta = Math.round(data.targetPosition - data.startPosition);\n\n if (data.start === null) {\n data.start = timestamp;\n }\n\n data.progress = timestamp - data.start;\n\n data.percent = data.progress >= data.duration ? 1 : easing(data.progress / data.duration);\n\n data.currentPosition = data.startPosition + Math.ceil(data.delta * data.percent);\n\n if (data.containerElement && data.containerElement !== document && data.containerElement !== document.body) {\n if (options.horizontal) {\n data.containerElement.scrollLeft = data.currentPosition;\n } else {\n data.containerElement.scrollTop = data.currentPosition;\n }\n } else {\n if (options.horizontal) {\n window.scrollTo(data.currentPosition, 0);\n } else {\n window.scrollTo(0, data.currentPosition);\n }\n }\n\n if (data.percent < 1) {\n var easedAnimate = animateScroll.bind(null, easing, options);\n requestAnimationFrameHelper.call(window, easedAnimate);\n return;\n }\n\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](data.to, data.target, data.currentPosition);\n }\n};\n\nvar setContainer = function setContainer(options) {\n options.data.containerElement = !options ? null : options.containerId ? document.getElementById(options.containerId) : options.container && options.container.nodeType ? options.container : document;\n};\n\nvar animateTopScroll = function animateTopScroll(scrollOffset, options, to, target) {\n options.data = options.data || makeData();\n\n window.clearTimeout(options.data.delayTimeout);\n\n _cancelEvents2.default.subscribe(function () {\n options.data.cancel = true;\n });\n\n setContainer(options);\n\n options.data.start = null;\n options.data.cancel = false;\n options.data.startPosition = options.horizontal ? currentPositionX(options) : currentPositionY(options);\n options.data.targetPosition = options.absolute ? scrollOffset : scrollOffset + options.data.startPosition;\n\n if (options.data.startPosition === options.data.targetPosition) {\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](options.data.to, options.data.target, options.data.currentPosition);\n }\n return;\n }\n\n options.data.delta = Math.round(options.data.targetPosition - options.data.startPosition);\n\n options.data.duration = functionWrapper(options.duration)(options.data.delta);\n options.data.duration = isNaN(parseFloat(options.data.duration)) ? 1000 : parseFloat(options.data.duration);\n options.data.to = to;\n options.data.target = target;\n\n var easing = getAnimationType(options);\n var easedAnimate = animateScroll.bind(null, easing, options);\n\n if (options && options.delay > 0) {\n options.data.delayTimeout = window.setTimeout(function () {\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](options.data.to, options.data.target);\n }\n requestAnimationFrameHelper.call(window, easedAnimate);\n }, options.delay);\n return;\n }\n\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](options.data.to, options.data.target);\n }\n requestAnimationFrameHelper.call(window, easedAnimate);\n};\n\nvar proceedOptions = function proceedOptions(options) {\n options = _extends({}, options);\n options.data = options.data || makeData();\n options.absolute = true;\n return options;\n};\n\nvar scrollToTop = function scrollToTop(options) {\n animateTopScroll(0, proceedOptions(options));\n};\n\nvar scrollTo = function scrollTo(toPosition, options) {\n animateTopScroll(toPosition, proceedOptions(options));\n};\n\nvar scrollToBottom = function scrollToBottom(options) {\n options = proceedOptions(options);\n setContainer(options);\n animateTopScroll(options.horizontal ? scrollContainerWidth(options) : scrollContainerHeight(options), options);\n};\n\nvar scrollMore = function scrollMore(toPosition, options) {\n options = proceedOptions(options);\n setContainer(options);\n var currentPosition = options.horizontal ? currentPositionX(options) : currentPositionY(options);\n animateTopScroll(toPosition + currentPosition, options);\n};\n\nexports[\"default\"] = {\n animateTopScroll: animateTopScroll,\n getAnimationType: getAnimationType,\n scrollToTop: scrollToTop,\n scrollToBottom: scrollToBottom,\n scrollTo: scrollTo,\n scrollMore: scrollMore\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2Nyb2xsL21vZHVsZXMvbWl4aW5zL2FuaW1hdGUtc2Nyb2xsLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQzs7QUFFRixvREFBb0QsZ0JBQWdCLHNCQUFzQixPQUFPLDJCQUEyQiwwQkFBMEIseURBQXlELGlDQUFpQzs7QUFFaFAsYUFBYSxtQkFBTyxDQUFDLG9FQUFTOztBQUU5Qjs7QUFFQSxjQUFjLG1CQUFPLENBQUMsc0VBQVU7O0FBRWhDOztBQUVBLG9CQUFvQixtQkFBTyxDQUFDLG9GQUFpQjs7QUFFN0M7O0FBRUEsb0JBQW9CLG1CQUFPLENBQUMsb0ZBQWlCOztBQUU3Qzs7QUFFQSx1Q0FBdUMsdUNBQXVDOztBQUU5RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLEdBQUc7O0FBRUg7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGtCQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXNjcm9sbC9tb2R1bGVzL21peGlucy9hbmltYXRlLXNjcm9sbC5qcz9iZjUzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcblxudmFyIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTtcblxudmFyIF91dGlscyA9IHJlcXVpcmUoJy4vdXRpbHMnKTtcblxudmFyIF91dGlsczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF91dGlscyk7XG5cbnZhciBfc21vb3RoID0gcmVxdWlyZSgnLi9zbW9vdGgnKTtcblxudmFyIF9zbW9vdGgyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfc21vb3RoKTtcblxudmFyIF9jYW5jZWxFdmVudHMgPSByZXF1aXJlKCcuL2NhbmNlbC1ldmVudHMnKTtcblxudmFyIF9jYW5jZWxFdmVudHMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfY2FuY2VsRXZlbnRzKTtcblxudmFyIF9zY3JvbGxFdmVudHMgPSByZXF1aXJlKCcuL3Njcm9sbC1ldmVudHMnKTtcblxudmFyIF9zY3JvbGxFdmVudHMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfc2Nyb2xsRXZlbnRzKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuLypcclxuICogR2V0cyB0aGUgZWFzaW5nIHR5cGUgZnJvbSB0aGUgc21vb3RoIHByb3Agd2l0aGluIG9wdGlvbnMuXHJcbiAqL1xudmFyIGdldEFuaW1hdGlvblR5cGUgPSBmdW5jdGlvbiBnZXRBbmltYXRpb25UeXBlKG9wdGlvbnMpIHtcbiAgcmV0dXJuIF9zbW9vdGgyLmRlZmF1bHRbb3B0aW9ucy5zbW9vdGhdIHx8IF9zbW9vdGgyLmRlZmF1bHQuZGVmYXVsdEVhc2luZztcbn07XG4vKlxyXG4gKiBGdW5jdGlvbiBoZWxwZXJcclxuICovXG52YXIgZnVuY3Rpb25XcmFwcGVyID0gZnVuY3Rpb24gZnVuY3Rpb25XcmFwcGVyKHZhbHVlKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicgPyB2YWx1ZSA6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH07XG59O1xuLypcclxuICogV3JhcHMgd2luZG93IHByb3BlcnRpZXMgdG8gYWxsb3cgc2VydmVyIHNpZGUgcmVuZGVyaW5nXHJcbiAqL1xudmFyIGN1cnJlbnRXaW5kb3dQcm9wZXJ0aWVzID0gZnVuY3Rpb24gY3VycmVudFdpbmRvd1Byb3BlcnRpZXMoKSB7XG4gIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lIHx8IHdpbmRvdy53ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWU7XG4gIH1cbn07XG5cbi8qXHJcbiAqIEhlbHBlciBmdW5jdGlvbiB0byBuZXZlciBleHRlbmQgNjBmcHMgb24gdGhlIHdlYnBhZ2UuXHJcbiAqL1xudmFyIHJlcXVlc3RBbmltYXRpb25GcmFtZUhlbHBlciA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIGN1cnJlbnRXaW5kb3dQcm9wZXJ0aWVzKCkgfHwgZnVuY3Rpb24gKGNhbGxiYWNrLCBlbGVtZW50LCBkZWxheSkge1xuICAgIHdpbmRvdy5zZXRUaW1lb3V0KGNhbGxiYWNrLCBkZWxheSB8fCAxMDAwIC8gNjAsIG5ldyBEYXRlKCkuZ2V0VGltZSgpKTtcbiAgfTtcbn0oKTtcblxudmFyIG1ha2VEYXRhID0gZnVuY3Rpb24gbWFrZURhdGEoKSB7XG4gIHJldHVybiB7XG4gICAgY3VycmVudFBvc2l0aW9uOiAwLFxuICAgIHN0YXJ0UG9zaXRpb246IDAsXG4gICAgdGFyZ2V0UG9zaXRpb246IDAsXG4gICAgcHJvZ3Jlc3M6IDAsXG4gICAgZHVyYXRpb246IDAsXG4gICAgY2FuY2VsOiBmYWxzZSxcblxuICAgIHRhcmdldDogbnVsbCxcbiAgICBjb250YWluZXJFbGVtZW50OiBudWxsLFxuICAgIHRvOiBudWxsLFxuICAgIHN0YXJ0OiBudWxsLFxuICAgIGRlbHRhOiBudWxsLFxuICAgIHBlcmNlbnQ6IG51bGwsXG4gICAgZGVsYXlUaW1lb3V0OiBudWxsXG4gIH07XG59O1xuXG52YXIgY3VycmVudFBvc2l0aW9uWCA9IGZ1bmN0aW9uIGN1cnJlbnRQb3NpdGlvblgob3B0aW9ucykge1xuICB2YXIgY29udGFpbmVyRWxlbWVudCA9IG9wdGlvbnMuZGF0YS5jb250YWluZXJFbGVtZW50O1xuICBpZiAoY29udGFpbmVyRWxlbWVudCAmJiBjb250YWluZXJFbGVtZW50ICE9PSBkb2N1bWVudCAmJiBjb250YWluZXJFbGVtZW50ICE9PSBkb2N1bWVudC5ib2R5KSB7XG4gICAgcmV0dXJuIGNvbnRhaW5lckVsZW1lbnQuc2Nyb2xsTGVmdDtcbiAgfSBlbHNlIHtcbiAgICB2YXIgc3VwcG9ydFBhZ2VPZmZzZXQgPSB3aW5kb3cucGFnZVhPZmZzZXQgIT09IHVuZGVmaW5lZDtcbiAgICB2YXIgaXNDU1MxQ29tcGF0ID0gKGRvY3VtZW50LmNvbXBhdE1vZGUgfHwgXCJcIikgPT09IFwiQ1NTMUNvbXBhdFwiO1xuICAgIHJldHVybiBzdXBwb3J0UGFnZU9mZnNldCA/IHdpbmRvdy5wYWdlWE9mZnNldCA6IGlzQ1NTMUNvbXBhdCA/IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0IDogZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0O1xuICB9XG59O1xuXG52YXIgY3VycmVudFBvc2l0aW9uWSA9IGZ1bmN0aW9uIGN1cnJlbnRQb3NpdGlvblkob3B0aW9ucykge1xuICB2YXIgY29udGFpbmVyRWxlbWVudCA9IG9wdGlvbnMuZGF0YS5jb250YWluZXJFbGVtZW50O1xuICBpZiAoY29udGFpbmVyRWxlbWVudCAmJiBjb250YWluZXJFbGVtZW50ICE9PSBkb2N1bWVudCAmJiBjb250YWluZXJFbGVtZW50ICE9PSBkb2N1bWVudC5ib2R5KSB7XG4gICAgcmV0dXJuIGNvbnRhaW5lckVsZW1lbnQuc2Nyb2xsVG9wO1xuICB9IGVsc2Uge1xuICAgIHZhciBzdXBwb3J0UGFnZU9mZnNldCA9IHdpbmRvdy5wYWdlWE9mZnNldCAhPT0gdW5kZWZpbmVkO1xuICAgIHZhciBpc0NTUzFDb21wYXQgPSAoZG9jdW1lbnQuY29tcGF0TW9kZSB8fCBcIlwiKSA9PT0gXCJDU1MxQ29tcGF0XCI7XG4gICAgcmV0dXJuIHN1cHBvcnRQYWdlT2Zmc2V0ID8gd2luZG93LnBhZ2VZT2Zmc2V0IDogaXNDU1MxQ29tcGF0ID8gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCA6IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wO1xuICB9XG59O1xuXG52YXIgc2Nyb2xsQ29udGFpbmVyV2lkdGggPSBmdW5jdGlvbiBzY3JvbGxDb250YWluZXJXaWR0aChvcHRpb25zKSB7XG4gIHZhciBjb250YWluZXJFbGVtZW50ID0gb3B0aW9ucy5kYXRhLmNvbnRhaW5lckVsZW1lbnQ7XG4gIGlmIChjb250YWluZXJFbGVtZW50ICYmIGNvbnRhaW5lckVsZW1lbnQgIT09IGRvY3VtZW50ICYmIGNvbnRhaW5lckVsZW1lbnQgIT09IGRvY3VtZW50LmJvZHkpIHtcbiAgICByZXR1cm4gY29udGFpbmVyRWxlbWVudC5zY3JvbGxXaWR0aCAtIGNvbnRhaW5lckVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gIH0gZWxzZSB7XG4gICAgdmFyIGJvZHkgPSBkb2N1bWVudC5ib2R5O1xuICAgIHZhciBodG1sID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuXG4gICAgcmV0dXJuIE1hdGgubWF4KGJvZHkuc2Nyb2xsV2lkdGgsIGJvZHkub2Zmc2V0V2lkdGgsIGh0bWwuY2xpZW50V2lkdGgsIGh0bWwuc2Nyb2xsV2lkdGgsIGh0bWwub2Zmc2V0V2lkdGgpO1xuICB9XG59O1xuXG52YXIgc2Nyb2xsQ29udGFpbmVySGVpZ2h0ID0gZnVuY3Rpb24gc2Nyb2xsQ29udGFpbmVySGVpZ2h0KG9wdGlvbnMpIHtcbiAgdmFyIGNvbnRhaW5lckVsZW1lbnQgPSBvcHRpb25zLmRhdGEuY29udGFpbmVyRWxlbWVudDtcbiAgaWYgKGNvbnRhaW5lckVsZW1lbnQgJiYgY29udGFpbmVyRWxlbWVudCAhPT0gZG9jdW1lbnQgJiYgY29udGFpbmVyRWxlbWVudCAhPT0gZG9jdW1lbnQuYm9keSkge1xuICAgIHJldHVybiBjb250YWluZXJFbGVtZW50LnNjcm9sbEhlaWdodCAtIGNvbnRhaW5lckVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuICB9IGVsc2Uge1xuICAgIHZhciBib2R5ID0gZG9jdW1lbnQuYm9keTtcbiAgICB2YXIgaHRtbCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcblxuICAgIHJldHVybiBNYXRoLm1heChib2R5LnNjcm9sbEhlaWdodCwgYm9keS5vZmZzZXRIZWlnaHQsIGh0bWwuY2xpZW50SGVpZ2h0LCBodG1sLnNjcm9sbEhlaWdodCwgaHRtbC5vZmZzZXRIZWlnaHQpO1xuICB9XG59O1xuXG52YXIgYW5pbWF0ZVNjcm9sbCA9IGZ1bmN0aW9uIGFuaW1hdGVTY3JvbGwoZWFzaW5nLCBvcHRpb25zLCB0aW1lc3RhbXApIHtcbiAgdmFyIGRhdGEgPSBvcHRpb25zLmRhdGE7XG5cbiAgLy8gQ2FuY2VsIG9uIHNwZWNpZmljIGV2ZW50c1xuICBpZiAoIW9wdGlvbnMuaWdub3JlQ2FuY2VsRXZlbnRzICYmIGRhdGEuY2FuY2VsKSB7XG4gICAgaWYgKF9zY3JvbGxFdmVudHMyLmRlZmF1bHQucmVnaXN0ZXJlZFsnZW5kJ10pIHtcbiAgICAgIF9zY3JvbGxFdmVudHMyLmRlZmF1bHQucmVnaXN0ZXJlZFsnZW5kJ10oZGF0YS50bywgZGF0YS50YXJnZXQsIGRhdGEuY3VycmVudFBvc2l0aW9uWSk7XG4gICAgfVxuICAgIHJldHVybjtcbiAgfTtcblxuICBkYXRhLmRlbHRhID0gTWF0aC5yb3VuZChkYXRhLnRhcmdldFBvc2l0aW9uIC0gZGF0YS5zdGFydFBvc2l0aW9uKTtcblxuICBpZiAoZGF0YS5zdGFydCA9PT0gbnVsbCkge1xuICAgIGRhdGEuc3RhcnQgPSB0aW1lc3RhbXA7XG4gIH1cblxuICBkYXRhLnByb2dyZXNzID0gdGltZXN0YW1wIC0gZGF0YS5zdGFydDtcblxuICBkYXRhLnBlcmNlbnQgPSBkYXRhLnByb2dyZXNzID49IGRhdGEuZHVyYXRpb24gPyAxIDogZWFzaW5nKGRhdGEucHJvZ3Jlc3MgLyBkYXRhLmR1cmF0aW9uKTtcblxuICBkYXRhLmN1cnJlbnRQb3NpdGlvbiA9IGRhdGEuc3RhcnRQb3NpdGlvbiArIE1hdGguY2VpbChkYXRhLmRlbHRhICogZGF0YS5wZXJjZW50KTtcblxuICBpZiAoZGF0YS5jb250YWluZXJFbGVtZW50ICYmIGRhdGEuY29udGFpbmVyRWxlbWVudCAhPT0gZG9jdW1lbnQgJiYgZGF0YS5jb250YWluZXJFbGVtZW50ICE9PSBkb2N1bWVudC5ib2R5KSB7XG4gICAgaWYgKG9wdGlvbnMuaG9yaXpvbnRhbCkge1xuICAgICAgZGF0YS5jb250YWluZXJFbGVtZW50LnNjcm9sbExlZnQgPSBkYXRhLmN1cnJlbnRQb3NpdGlvbjtcbiAgICB9IGVsc2Uge1xuICAgICAgZGF0YS5jb250YWluZXJFbGVtZW50LnNjcm9sbFRvcCA9IGRhdGEuY3VycmVudFBvc2l0aW9uO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpZiAob3B0aW9ucy5ob3Jpem9udGFsKSB7XG4gICAgICB3aW5kb3cuc2Nyb2xsVG8oZGF0YS5jdXJyZW50UG9zaXRpb24sIDApO1xuICAgIH0gZWxzZSB7XG4gICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgZGF0YS5jdXJyZW50UG9zaXRpb24pO1xuICAgIH1cbiAgfVxuXG4gIGlmIChkYXRhLnBlcmNlbnQgPCAxKSB7XG4gICAgdmFyIGVhc2VkQW5pbWF0ZSA9IGFuaW1hdGVTY3JvbGwuYmluZChudWxsLCBlYXNpbmcsIG9wdGlvbnMpO1xuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZUhlbHBlci5jYWxsKHdpbmRvdywgZWFzZWRBbmltYXRlKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoX3Njcm9sbEV2ZW50czIuZGVmYXVsdC5yZWdpc3RlcmVkWydlbmQnXSkge1xuICAgIF9zY3JvbGxFdmVudHMyLmRlZmF1bHQucmVnaXN0ZXJlZFsnZW5kJ10oZGF0YS50bywgZGF0YS50YXJnZXQsIGRhdGEuY3VycmVudFBvc2l0aW9uKTtcbiAgfVxufTtcblxudmFyIHNldENvbnRhaW5lciA9IGZ1bmN0aW9uIHNldENvbnRhaW5lcihvcHRpb25zKSB7XG4gIG9wdGlvbnMuZGF0YS5jb250YWluZXJFbGVtZW50ID0gIW9wdGlvbnMgPyBudWxsIDogb3B0aW9ucy5jb250YWluZXJJZCA/IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG9wdGlvbnMuY29udGFpbmVySWQpIDogb3B0aW9ucy5jb250YWluZXIgJiYgb3B0aW9ucy5jb250YWluZXIubm9kZVR5cGUgPyBvcHRpb25zLmNvbnRhaW5lciA6IGRvY3VtZW50O1xufTtcblxudmFyIGFuaW1hdGVUb3BTY3JvbGwgPSBmdW5jdGlvbiBhbmltYXRlVG9wU2Nyb2xsKHNjcm9sbE9mZnNldCwgb3B0aW9ucywgdG8sIHRhcmdldCkge1xuICBvcHRpb25zLmRhdGEgPSBvcHRpb25zLmRhdGEgfHwgbWFrZURhdGEoKTtcblxuICB3aW5kb3cuY2xlYXJUaW1lb3V0KG9wdGlvbnMuZGF0YS5kZWxheVRpbWVvdXQpO1xuXG4gIF9jYW5jZWxFdmVudHMyLmRlZmF1bHQuc3Vic2NyaWJlKGZ1bmN0aW9uICgpIHtcbiAgICBvcHRpb25zLmRhdGEuY2FuY2VsID0gdHJ1ZTtcbiAgfSk7XG5cbiAgc2V0Q29udGFpbmVyKG9wdGlvbnMpO1xuXG4gIG9wdGlvbnMuZGF0YS5zdGFydCA9IG51bGw7XG4gIG9wdGlvbnMuZGF0YS5jYW5jZWwgPSBmYWxzZTtcbiAgb3B0aW9ucy5kYXRhLnN0YXJ0UG9zaXRpb24gPSBvcHRpb25zLmhvcml6b250YWwgPyBjdXJyZW50UG9zaXRpb25YKG9wdGlvbnMpIDogY3VycmVudFBvc2l0aW9uWShvcHRpb25zKTtcbiAgb3B0aW9ucy5kYXRhLnRhcmdldFBvc2l0aW9uID0gb3B0aW9ucy5hYnNvbHV0ZSA/IHNjcm9sbE9mZnNldCA6IHNjcm9sbE9mZnNldCArIG9wdGlvbnMuZGF0YS5zdGFydFBvc2l0aW9uO1xuXG4gIGlmIChvcHRpb25zLmRhdGEuc3RhcnRQb3NpdGlvbiA9PT0gb3B0aW9ucy5kYXRhLnRhcmdldFBvc2l0aW9uKSB7XG4gICAgaWYgKF9zY3JvbGxFdmVudHMyLmRlZmF1bHQucmVnaXN0ZXJlZFsnZW5kJ10pIHtcbiAgICAgIF9zY3JvbGxFdmVudHMyLmRlZmF1bHQucmVnaXN0ZXJlZFsnZW5kJ10ob3B0aW9ucy5kYXRhLnRvLCBvcHRpb25zLmRhdGEudGFyZ2V0LCBvcHRpb25zLmRhdGEuY3VycmVudFBvc2l0aW9uKTtcbiAgICB9XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgb3B0aW9ucy5kYXRhLmRlbHRhID0gTWF0aC5yb3VuZChvcHRpb25zLmRhdGEudGFyZ2V0UG9zaXRpb24gLSBvcHRpb25zLmRhdGEuc3RhcnRQb3NpdGlvbik7XG5cbiAgb3B0aW9ucy5kYXRhLmR1cmF0aW9uID0gZnVuY3Rpb25XcmFwcGVyKG9wdGlvbnMuZHVyYXRpb24pKG9wdGlvbnMuZGF0YS5kZWx0YSk7XG4gIG9wdGlvbnMuZGF0YS5kdXJhdGlvbiA9IGlzTmFOKHBhcnNlRmxvYXQob3B0aW9ucy5kYXRhLmR1cmF0aW9uKSkgPyAxMDAwIDogcGFyc2VGbG9hdChvcHRpb25zLmRhdGEuZHVyYXRpb24pO1xuICBvcHRpb25zLmRhdGEudG8gPSB0bztcbiAgb3B0aW9ucy5kYXRhLnRhcmdldCA9IHRhcmdldDtcblxuICB2YXIgZWFzaW5nID0gZ2V0QW5pbWF0aW9uVHlwZShvcHRpb25zKTtcbiAgdmFyIGVhc2VkQW5pbWF0ZSA9IGFuaW1hdGVTY3JvbGwuYmluZChudWxsLCBlYXNpbmcsIG9wdGlvbnMpO1xuXG4gIGlmIChvcHRpb25zICYmIG9wdGlvbnMuZGVsYXkgPiAwKSB7XG4gICAgb3B0aW9ucy5kYXRhLmRlbGF5VGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmIChfc2Nyb2xsRXZlbnRzMi5kZWZhdWx0LnJlZ2lzdGVyZWRbJ2JlZ2luJ10pIHtcbiAgICAgICAgX3Njcm9sbEV2ZW50czIuZGVmYXVsdC5yZWdpc3RlcmVkWydiZWdpbiddKG9wdGlvbnMuZGF0YS50bywgb3B0aW9ucy5kYXRhLnRhcmdldCk7XG4gICAgICB9XG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWVIZWxwZXIuY2FsbCh3aW5kb3csIGVhc2VkQW5pbWF0ZSk7XG4gICAgfSwgb3B0aW9ucy5kZWxheSk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKF9zY3JvbGxFdmVudHMyLmRlZmF1bHQucmVnaXN0ZXJlZFsnYmVnaW4nXSkge1xuICAgIF9zY3JvbGxFdmVudHMyLmRlZmF1bHQucmVnaXN0ZXJlZFsnYmVnaW4nXShvcHRpb25zLmRhdGEudG8sIG9wdGlvbnMuZGF0YS50YXJnZXQpO1xuICB9XG4gIHJlcXVlc3RBbmltYXRpb25GcmFtZUhlbHBlci5jYWxsKHdpbmRvdywgZWFzZWRBbmltYXRlKTtcbn07XG5cbnZhciBwcm9jZWVkT3B0aW9ucyA9IGZ1bmN0aW9uIHByb2NlZWRPcHRpb25zKG9wdGlvbnMpIHtcbiAgb3B0aW9ucyA9IF9leHRlbmRzKHt9LCBvcHRpb25zKTtcbiAgb3B0aW9ucy5kYXRhID0gb3B0aW9ucy5kYXRhIHx8IG1ha2VEYXRhKCk7XG4gIG9wdGlvbnMuYWJzb2x1dGUgPSB0cnVlO1xuICByZXR1cm4gb3B0aW9ucztcbn07XG5cbnZhciBzY3JvbGxUb1RvcCA9IGZ1bmN0aW9uIHNjcm9sbFRvVG9wKG9wdGlvbnMpIHtcbiAgYW5pbWF0ZVRvcFNjcm9sbCgwLCBwcm9jZWVkT3B0aW9ucyhvcHRpb25zKSk7XG59O1xuXG52YXIgc2Nyb2xsVG8gPSBmdW5jdGlvbiBzY3JvbGxUbyh0b1Bvc2l0aW9uLCBvcHRpb25zKSB7XG4gIGFuaW1hdGVUb3BTY3JvbGwodG9Qb3NpdGlvbiwgcHJvY2VlZE9wdGlvbnMob3B0aW9ucykpO1xufTtcblxudmFyIHNjcm9sbFRvQm90dG9tID0gZnVuY3Rpb24gc2Nyb2xsVG9Cb3R0b20ob3B0aW9ucykge1xuICBvcHRpb25zID0gcHJvY2VlZE9wdGlvbnMob3B0aW9ucyk7XG4gIHNldENvbnRhaW5lcihvcHRpb25zKTtcbiAgYW5pbWF0ZVRvcFNjcm9sbChvcHRpb25zLmhvcml6b250YWwgPyBzY3JvbGxDb250YWluZXJXaWR0aChvcHRpb25zKSA6IHNjcm9sbENvbnRhaW5lckhlaWdodChvcHRpb25zKSwgb3B0aW9ucyk7XG59O1xuXG52YXIgc2Nyb2xsTW9yZSA9IGZ1bmN0aW9uIHNjcm9sbE1vcmUodG9Qb3NpdGlvbiwgb3B0aW9ucykge1xuICBvcHRpb25zID0gcHJvY2VlZE9wdGlvbnMob3B0aW9ucyk7XG4gIHNldENvbnRhaW5lcihvcHRpb25zKTtcbiAgdmFyIGN1cnJlbnRQb3NpdGlvbiA9IG9wdGlvbnMuaG9yaXpvbnRhbCA/IGN1cnJlbnRQb3NpdGlvblgob3B0aW9ucykgOiBjdXJyZW50UG9zaXRpb25ZKG9wdGlvbnMpO1xuICBhbmltYXRlVG9wU2Nyb2xsKHRvUG9zaXRpb24gKyBjdXJyZW50UG9zaXRpb24sIG9wdGlvbnMpO1xufTtcblxuZXhwb3J0cy5kZWZhdWx0ID0ge1xuICBhbmltYXRlVG9wU2Nyb2xsOiBhbmltYXRlVG9wU2Nyb2xsLFxuICBnZXRBbmltYXRpb25UeXBlOiBnZXRBbmltYXRpb25UeXBlLFxuICBzY3JvbGxUb1RvcDogc2Nyb2xsVG9Ub3AsXG4gIHNjcm9sbFRvQm90dG9tOiBzY3JvbGxUb0JvdHRvbSxcbiAgc2Nyb2xsVG86IHNjcm9sbFRvLFxuICBzY3JvbGxNb3JlOiBzY3JvbGxNb3JlXG59OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-scroll/modules/mixins/animate-scroll.js\n"); + +/***/ }), + +/***/ "./node_modules/react-scroll/modules/mixins/cancel-events.js": +/*!*******************************************************************!*\ + !*** ./node_modules/react-scroll/modules/mixins/cancel-events.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar _passiveEventListeners = __webpack_require__(/*! ./passive-event-listeners */ \"./node_modules/react-scroll/modules/mixins/passive-event-listeners.js\");\n\nvar events = ['mousedown', 'mousewheel', 'touchmove', 'keydown'];\n\nexports[\"default\"] = {\n subscribe: function subscribe(cancelEvent) {\n return typeof document !== 'undefined' && events.forEach(function (event) {\n return (0, _passiveEventListeners.addPassiveEventListener)(document, event, cancelEvent);\n });\n }\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2Nyb2xsL21vZHVsZXMvbWl4aW5zL2NhbmNlbC1ldmVudHMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDOztBQUVGLDZCQUE2QixtQkFBTyxDQUFDLHdHQUEyQjs7QUFFaEU7O0FBRUEsa0JBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2Nyb2xsL21vZHVsZXMvbWl4aW5zL2NhbmNlbC1ldmVudHMuanM/YzhkMyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5cbnZhciBfcGFzc2l2ZUV2ZW50TGlzdGVuZXJzID0gcmVxdWlyZSgnLi9wYXNzaXZlLWV2ZW50LWxpc3RlbmVycycpO1xuXG52YXIgZXZlbnRzID0gWydtb3VzZWRvd24nLCAnbW91c2V3aGVlbCcsICd0b3VjaG1vdmUnLCAna2V5ZG93biddO1xuXG5leHBvcnRzLmRlZmF1bHQgPSB7XG4gIHN1YnNjcmliZTogZnVuY3Rpb24gc3Vic2NyaWJlKGNhbmNlbEV2ZW50KSB7XG4gICAgcmV0dXJuIHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcgJiYgZXZlbnRzLmZvckVhY2goZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICByZXR1cm4gKDAsIF9wYXNzaXZlRXZlbnRMaXN0ZW5lcnMuYWRkUGFzc2l2ZUV2ZW50TGlzdGVuZXIpKGRvY3VtZW50LCBldmVudCwgY2FuY2VsRXZlbnQpO1xuICAgIH0pO1xuICB9XG59OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-scroll/modules/mixins/cancel-events.js\n"); + +/***/ }), + +/***/ "./node_modules/react-scroll/modules/mixins/passive-event-listeners.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/react-scroll/modules/mixins/passive-event-listeners.js ***! + \*****************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n/*\r\n * Tell the browser that the event listener won't prevent a scroll.\r\n * Allowing the browser to continue scrolling without having to\r\n * to wait for the listener to return.\r\n */\nvar addPassiveEventListener = exports.addPassiveEventListener = function addPassiveEventListener(target, eventName, listener) {\n var supportsPassiveOption = function () {\n var supportsPassiveOption = false;\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n supportsPassiveOption = true;\n }\n });\n window.addEventListener('test', null, opts);\n } catch (e) {}\n return supportsPassiveOption;\n }();\n target.addEventListener(eventName, listener, supportsPassiveOption ? { passive: true } : false);\n};\n\nvar removePassiveEventListener = exports.removePassiveEventListener = function removePassiveEventListener(target, eventName, listener) {\n target.removeEventListener(eventName, listener);\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2Nyb2xsL21vZHVsZXMvbWl4aW5zL3Bhc3NpdmUtZXZlbnQtbGlzdGVuZXJzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4QkFBOEIsK0JBQStCO0FBQzdEO0FBQ0E7QUFDQTtBQUNBLHlDQUF5QztBQUN6QztBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSxNQUFNO0FBQ047QUFDQSxHQUFHO0FBQ0gseUVBQXlFLGdCQUFnQjtBQUN6Rjs7QUFFQSxpQ0FBaUMsa0NBQWtDO0FBQ25FO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXNjcm9sbC9tb2R1bGVzL21peGlucy9wYXNzaXZlLWV2ZW50LWxpc3RlbmVycy5qcz9iOWQxIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbi8qXHJcbiAqIFRlbGwgdGhlIGJyb3dzZXIgdGhhdCB0aGUgZXZlbnQgbGlzdGVuZXIgd29uJ3QgcHJldmVudCBhIHNjcm9sbC5cclxuICogQWxsb3dpbmcgdGhlIGJyb3dzZXIgdG8gY29udGludWUgc2Nyb2xsaW5nIHdpdGhvdXQgaGF2aW5nIHRvXHJcbiAqIHRvIHdhaXQgZm9yIHRoZSBsaXN0ZW5lciB0byByZXR1cm4uXHJcbiAqL1xudmFyIGFkZFBhc3NpdmVFdmVudExpc3RlbmVyID0gZXhwb3J0cy5hZGRQYXNzaXZlRXZlbnRMaXN0ZW5lciA9IGZ1bmN0aW9uIGFkZFBhc3NpdmVFdmVudExpc3RlbmVyKHRhcmdldCwgZXZlbnROYW1lLCBsaXN0ZW5lcikge1xuICB2YXIgc3VwcG9ydHNQYXNzaXZlT3B0aW9uID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciBzdXBwb3J0c1Bhc3NpdmVPcHRpb24gPSBmYWxzZTtcbiAgICB0cnkge1xuICAgICAgdmFyIG9wdHMgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdwYXNzaXZlJywge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICAgICAgICBzdXBwb3J0c1Bhc3NpdmVPcHRpb24gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd0ZXN0JywgbnVsbCwgb3B0cyk7XG4gICAgfSBjYXRjaCAoZSkge31cbiAgICByZXR1cm4gc3VwcG9ydHNQYXNzaXZlT3B0aW9uO1xuICB9KCk7XG4gIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgbGlzdGVuZXIsIHN1cHBvcnRzUGFzc2l2ZU9wdGlvbiA/IHsgcGFzc2l2ZTogdHJ1ZSB9IDogZmFsc2UpO1xufTtcblxudmFyIHJlbW92ZVBhc3NpdmVFdmVudExpc3RlbmVyID0gZXhwb3J0cy5yZW1vdmVQYXNzaXZlRXZlbnRMaXN0ZW5lciA9IGZ1bmN0aW9uIHJlbW92ZVBhc3NpdmVFdmVudExpc3RlbmVyKHRhcmdldCwgZXZlbnROYW1lLCBsaXN0ZW5lcikge1xuICB0YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIGxpc3RlbmVyKTtcbn07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/react-scroll/modules/mixins/passive-event-listeners.js\n"); + +/***/ }), + +/***/ "./node_modules/react-scroll/modules/mixins/scroll-element.js": +/*!********************************************************************!*\ + !*** ./node_modules/react-scroll/modules/mixins/scroll-element.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _scroller = __webpack_require__(/*! ./scroller */ \"./node_modules/react-scroll/modules/mixins/scroller.js\");\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nvar _propTypes = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nexports[\"default\"] = function (Component) {\n var Element = function (_React$Component) {\n _inherits(Element, _React$Component);\n\n function Element(props) {\n _classCallCheck(this, Element);\n\n var _this = _possibleConstructorReturn(this, (Element.__proto__ || Object.getPrototypeOf(Element)).call(this, props));\n\n _this.childBindings = {\n domNode: null\n };\n return _this;\n }\n\n _createClass(Element, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (typeof window === 'undefined') {\n return false;\n }\n this.registerElems(this.props.name);\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n if (this.props.name !== prevProps.name) {\n this.registerElems(this.props.name);\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (typeof window === 'undefined') {\n return false;\n }\n _scroller2.default.unregister(this.props.name);\n }\n }, {\n key: 'registerElems',\n value: function registerElems(name) {\n _scroller2.default.register(name, this.childBindings.domNode);\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2.default.createElement(Component, _extends({}, this.props, { parentBindings: this.childBindings }));\n }\n }]);\n\n return Element;\n }(_react2.default.Component);\n\n ;\n\n Element.propTypes = {\n name: _propTypes2.default.string,\n id: _propTypes2.default.string\n };\n\n return Element;\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2Nyb2xsL21vZHVsZXMvbWl4aW5zL3Njcm9sbC1lbGVtZW50LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQzs7QUFFRixvREFBb0QsZ0JBQWdCLHNCQUFzQixPQUFPLDJCQUEyQiwwQkFBMEIseURBQXlELGlDQUFpQzs7QUFFaFAsaUNBQWlDLDJDQUEyQyxnQkFBZ0Isa0JBQWtCLE9BQU8sMkJBQTJCLHdEQUF3RCxnQ0FBZ0MsdURBQXVELCtEQUErRCx5REFBeUQscUVBQXFFLDZEQUE2RCx3QkFBd0I7O0FBRWpqQixhQUFhLG1CQUFPLENBQUMsNENBQU87O0FBRTVCOztBQUVBLGdCQUFnQixtQkFBTyxDQUFDLG9EQUFXOztBQUVuQzs7QUFFQSxnQkFBZ0IsbUJBQU8sQ0FBQywwRUFBWTs7QUFFcEM7O0FBRUEsaUJBQWlCLG1CQUFPLENBQUMsc0RBQVk7O0FBRXJDOztBQUVBLHVDQUF1Qyx1Q0FBdUM7O0FBRTlFLGtEQUFrRCwwQ0FBMEM7O0FBRTVGLGtEQUFrRCxhQUFhLHlGQUF5Rjs7QUFFeEosMkNBQTJDLCtEQUErRCx1R0FBdUcseUVBQXlFLGVBQWUsMEVBQTBFLEdBQUc7O0FBRXRYLGtCQUFlO0FBQ2Y7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLG1FQUFtRSxnQkFBZ0Isb0NBQW9DO0FBQ3ZIO0FBQ0EsS0FBSzs7QUFFTDtBQUNBLEdBQUc7O0FBRUg7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2Nyb2xsL21vZHVsZXMvbWl4aW5zL3Njcm9sbC1lbGVtZW50LmpzPzcyM2EiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuXG52YXIgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9O1xuXG52YXIgX2NyZWF0ZUNsYXNzID0gZnVuY3Rpb24gKCkgeyBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH0gcmV0dXJuIGZ1bmN0aW9uIChDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfTsgfSgpO1xuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfcmVhY3REb20gPSByZXF1aXJlKCdyZWFjdC1kb20nKTtcblxudmFyIF9yZWFjdERvbTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdERvbSk7XG5cbnZhciBfc2Nyb2xsZXIgPSByZXF1aXJlKCcuL3Njcm9sbGVyJyk7XG5cbnZhciBfc2Nyb2xsZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfc2Nyb2xsZXIpO1xuXG52YXIgX3Byb3BUeXBlcyA9IHJlcXVpcmUoJ3Byb3AtdHlwZXMnKTtcblxudmFyIF9wcm9wVHlwZXMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcHJvcFR5cGVzKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoIXNlbGYpIHsgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpOyB9IHJldHVybiBjYWxsICYmICh0eXBlb2YgY2FsbCA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSA/IGNhbGwgOiBzZWxmOyB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90IFwiICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG5leHBvcnRzLmRlZmF1bHQgPSBmdW5jdGlvbiAoQ29tcG9uZW50KSB7XG4gIHZhciBFbGVtZW50ID0gZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgICBfaW5oZXJpdHMoRWxlbWVudCwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgICBmdW5jdGlvbiBFbGVtZW50KHByb3BzKSB7XG4gICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgRWxlbWVudCk7XG5cbiAgICAgIHZhciBfdGhpcyA9IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIChFbGVtZW50Ll9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2YoRWxlbWVudCkpLmNhbGwodGhpcywgcHJvcHMpKTtcblxuICAgICAgX3RoaXMuY2hpbGRCaW5kaW5ncyA9IHtcbiAgICAgICAgZG9tTm9kZTogbnVsbFxuICAgICAgfTtcbiAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG5cbiAgICBfY3JlYXRlQ2xhc3MoRWxlbWVudCwgW3tcbiAgICAgIGtleTogJ2NvbXBvbmVudERpZE1vdW50JyxcbiAgICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVnaXN0ZXJFbGVtcyh0aGlzLnByb3BzLm5hbWUpO1xuICAgICAgfVxuICAgIH0sIHtcbiAgICAgIGtleTogJ2NvbXBvbmVudERpZFVwZGF0ZScsXG4gICAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcykge1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5uYW1lICE9PSBwcmV2UHJvcHMubmFtZSkge1xuICAgICAgICAgIHRoaXMucmVnaXN0ZXJFbGVtcyh0aGlzLnByb3BzLm5hbWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwge1xuICAgICAga2V5OiAnY29tcG9uZW50V2lsbFVubW91bnQnLFxuICAgICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgX3Njcm9sbGVyMi5kZWZhdWx0LnVucmVnaXN0ZXIodGhpcy5wcm9wcy5uYW1lKTtcbiAgICAgIH1cbiAgICB9LCB7XG4gICAgICBrZXk6ICdyZWdpc3RlckVsZW1zJyxcbiAgICAgIHZhbHVlOiBmdW5jdGlvbiByZWdpc3RlckVsZW1zKG5hbWUpIHtcbiAgICAgICAgX3Njcm9sbGVyMi5kZWZhdWx0LnJlZ2lzdGVyKG5hbWUsIHRoaXMuY2hpbGRCaW5kaW5ncy5kb21Ob2RlKTtcbiAgICAgIH1cbiAgICB9LCB7XG4gICAgICBrZXk6ICdyZW5kZXInLFxuICAgICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgcmV0dXJuIF9yZWFjdDIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KENvbXBvbmVudCwgX2V4dGVuZHMoe30sIHRoaXMucHJvcHMsIHsgcGFyZW50QmluZGluZ3M6IHRoaXMuY2hpbGRCaW5kaW5ncyB9KSk7XG4gICAgICB9XG4gICAgfV0pO1xuXG4gICAgcmV0dXJuIEVsZW1lbnQ7XG4gIH0oX3JlYWN0Mi5kZWZhdWx0LkNvbXBvbmVudCk7XG5cbiAgO1xuXG4gIEVsZW1lbnQucHJvcFR5cGVzID0ge1xuICAgIG5hbWU6IF9wcm9wVHlwZXMyLmRlZmF1bHQuc3RyaW5nLFxuICAgIGlkOiBfcHJvcFR5cGVzMi5kZWZhdWx0LnN0cmluZ1xuICB9O1xuXG4gIHJldHVybiBFbGVtZW50O1xufTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-scroll/modules/mixins/scroll-element.js\n"); + +/***/ }), + +/***/ "./node_modules/react-scroll/modules/mixins/scroll-events.js": +/*!*******************************************************************!*\ + !*** ./node_modules/react-scroll/modules/mixins/scroll-events.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n\tvalue: true\n}));\n\nvar Events = {\n\tregistered: {},\n\tscrollEvent: {\n\t\tregister: function register(evtName, callback) {\n\t\t\tEvents.registered[evtName] = callback;\n\t\t},\n\t\tremove: function remove(evtName) {\n\t\t\tEvents.registered[evtName] = null;\n\t\t}\n\t}\n};\n\nexports[\"default\"] = Events;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2Nyb2xsL21vZHVsZXMvbWl4aW5zL3Njcm9sbC1ldmVudHMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDOztBQUVGO0FBQ0EsZUFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGtCQUFlIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zY3JvbGwvbW9kdWxlcy9taXhpbnMvc2Nyb2xsLWV2ZW50cy5qcz9mNjZlIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcblx0dmFsdWU6IHRydWVcbn0pO1xuXG52YXIgRXZlbnRzID0ge1xuXHRyZWdpc3RlcmVkOiB7fSxcblx0c2Nyb2xsRXZlbnQ6IHtcblx0XHRyZWdpc3RlcjogZnVuY3Rpb24gcmVnaXN0ZXIoZXZ0TmFtZSwgY2FsbGJhY2spIHtcblx0XHRcdEV2ZW50cy5yZWdpc3RlcmVkW2V2dE5hbWVdID0gY2FsbGJhY2s7XG5cdFx0fSxcblx0XHRyZW1vdmU6IGZ1bmN0aW9uIHJlbW92ZShldnROYW1lKSB7XG5cdFx0XHRFdmVudHMucmVnaXN0ZXJlZFtldnROYW1lXSA9IG51bGw7XG5cdFx0fVxuXHR9XG59O1xuXG5leHBvcnRzLmRlZmF1bHQgPSBFdmVudHM7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/react-scroll/modules/mixins/scroll-events.js\n"); + +/***/ }), + +/***/ "./node_modules/react-scroll/modules/mixins/scroll-hash.js": +/*!*****************************************************************!*\ + !*** ./node_modules/react-scroll/modules/mixins/scroll-hash.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar _passiveEventListeners = __webpack_require__(/*! ./passive-event-listeners */ \"./node_modules/react-scroll/modules/mixins/passive-event-listeners.js\");\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/react-scroll/modules/mixins/utils.js\");\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar scrollHash = {\n mountFlag: false,\n initialized: false,\n scroller: null,\n containers: {},\n\n mount: function mount(scroller) {\n this.scroller = scroller;\n\n this.handleHashChange = this.handleHashChange.bind(this);\n window.addEventListener('hashchange', this.handleHashChange);\n\n this.initStateFromHash();\n this.mountFlag = true;\n },\n mapContainer: function mapContainer(to, container) {\n this.containers[to] = container;\n },\n isMounted: function isMounted() {\n return this.mountFlag;\n },\n isInitialized: function isInitialized() {\n return this.initialized;\n },\n initStateFromHash: function initStateFromHash() {\n var _this = this;\n\n var hash = this.getHash();\n if (hash) {\n window.setTimeout(function () {\n _this.scrollTo(hash, true);\n _this.initialized = true;\n }, 10);\n } else {\n this.initialized = true;\n }\n },\n scrollTo: function scrollTo(to, isInit) {\n var scroller = this.scroller;\n var element = scroller.get(to);\n if (element && (isInit || to !== scroller.getActiveLink())) {\n var container = this.containers[to] || document;\n scroller.scrollTo(to, { container: container });\n }\n },\n getHash: function getHash() {\n return _utils2.default.getHash();\n },\n changeHash: function changeHash(to, saveHashHistory) {\n if (this.isInitialized() && _utils2.default.getHash() !== to) {\n _utils2.default.updateHash(to, saveHashHistory);\n }\n },\n handleHashChange: function handleHashChange() {\n this.scrollTo(this.getHash());\n },\n unmount: function unmount() {\n this.scroller = null;\n this.containers = null;\n window.removeEventListener('hashchange', this.handleHashChange);\n }\n};\n\nexports[\"default\"] = scrollHash;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2Nyb2xsL21vZHVsZXMvbWl4aW5zL3Njcm9sbC1oYXNoLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQzs7QUFFRiw2QkFBNkIsbUJBQU8sQ0FBQyx3R0FBMkI7O0FBRWhFLGFBQWEsbUJBQU8sQ0FBQyxvRUFBUzs7QUFFOUI7O0FBRUEsdUNBQXVDLHVDQUF1Qzs7QUFFOUU7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7O0FBRWhCO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxNQUFNO0FBQ047QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCLHNCQUFzQjtBQUNwRDtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGtCQUFlIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zY3JvbGwvbW9kdWxlcy9taXhpbnMvc2Nyb2xsLWhhc2guanM/Y2E0MSJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5cbnZhciBfcGFzc2l2ZUV2ZW50TGlzdGVuZXJzID0gcmVxdWlyZSgnLi9wYXNzaXZlLWV2ZW50LWxpc3RlbmVycycpO1xuXG52YXIgX3V0aWxzID0gcmVxdWlyZSgnLi91dGlscycpO1xuXG52YXIgX3V0aWxzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3V0aWxzKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxudmFyIHNjcm9sbEhhc2ggPSB7XG4gIG1vdW50RmxhZzogZmFsc2UsXG4gIGluaXRpYWxpemVkOiBmYWxzZSxcbiAgc2Nyb2xsZXI6IG51bGwsXG4gIGNvbnRhaW5lcnM6IHt9LFxuXG4gIG1vdW50OiBmdW5jdGlvbiBtb3VudChzY3JvbGxlcikge1xuICAgIHRoaXMuc2Nyb2xsZXIgPSBzY3JvbGxlcjtcblxuICAgIHRoaXMuaGFuZGxlSGFzaENoYW5nZSA9IHRoaXMuaGFuZGxlSGFzaENoYW5nZS5iaW5kKHRoaXMpO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdoYXNoY2hhbmdlJywgdGhpcy5oYW5kbGVIYXNoQ2hhbmdlKTtcblxuICAgIHRoaXMuaW5pdFN0YXRlRnJvbUhhc2goKTtcbiAgICB0aGlzLm1vdW50RmxhZyA9IHRydWU7XG4gIH0sXG4gIG1hcENvbnRhaW5lcjogZnVuY3Rpb24gbWFwQ29udGFpbmVyKHRvLCBjb250YWluZXIpIHtcbiAgICB0aGlzLmNvbnRhaW5lcnNbdG9dID0gY29udGFpbmVyO1xuICB9LFxuICBpc01vdW50ZWQ6IGZ1bmN0aW9uIGlzTW91bnRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5tb3VudEZsYWc7XG4gIH0sXG4gIGlzSW5pdGlhbGl6ZWQ6IGZ1bmN0aW9uIGlzSW5pdGlhbGl6ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaW5pdGlhbGl6ZWQ7XG4gIH0sXG4gIGluaXRTdGF0ZUZyb21IYXNoOiBmdW5jdGlvbiBpbml0U3RhdGVGcm9tSGFzaCgpIHtcbiAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgdmFyIGhhc2ggPSB0aGlzLmdldEhhc2goKTtcbiAgICBpZiAoaGFzaCkge1xuICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICBfdGhpcy5zY3JvbGxUbyhoYXNoLCB0cnVlKTtcbiAgICAgICAgX3RoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgfSwgMTApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB9XG4gIH0sXG4gIHNjcm9sbFRvOiBmdW5jdGlvbiBzY3JvbGxUbyh0bywgaXNJbml0KSB7XG4gICAgdmFyIHNjcm9sbGVyID0gdGhpcy5zY3JvbGxlcjtcbiAgICB2YXIgZWxlbWVudCA9IHNjcm9sbGVyLmdldCh0byk7XG4gICAgaWYgKGVsZW1lbnQgJiYgKGlzSW5pdCB8fCB0byAhPT0gc2Nyb2xsZXIuZ2V0QWN0aXZlTGluaygpKSkge1xuICAgICAgdmFyIGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyc1t0b10gfHwgZG9jdW1lbnQ7XG4gICAgICBzY3JvbGxlci5zY3JvbGxUbyh0bywgeyBjb250YWluZXI6IGNvbnRhaW5lciB9KTtcbiAgICB9XG4gIH0sXG4gIGdldEhhc2g6IGZ1bmN0aW9uIGdldEhhc2goKSB7XG4gICAgcmV0dXJuIF91dGlsczIuZGVmYXVsdC5nZXRIYXNoKCk7XG4gIH0sXG4gIGNoYW5nZUhhc2g6IGZ1bmN0aW9uIGNoYW5nZUhhc2godG8sIHNhdmVIYXNoSGlzdG9yeSkge1xuICAgIGlmICh0aGlzLmlzSW5pdGlhbGl6ZWQoKSAmJiBfdXRpbHMyLmRlZmF1bHQuZ2V0SGFzaCgpICE9PSB0bykge1xuICAgICAgX3V0aWxzMi5kZWZhdWx0LnVwZGF0ZUhhc2godG8sIHNhdmVIYXNoSGlzdG9yeSk7XG4gICAgfVxuICB9LFxuICBoYW5kbGVIYXNoQ2hhbmdlOiBmdW5jdGlvbiBoYW5kbGVIYXNoQ2hhbmdlKCkge1xuICAgIHRoaXMuc2Nyb2xsVG8odGhpcy5nZXRIYXNoKCkpO1xuICB9LFxuICB1bm1vdW50OiBmdW5jdGlvbiB1bm1vdW50KCkge1xuICAgIHRoaXMuc2Nyb2xsZXIgPSBudWxsO1xuICAgIHRoaXMuY29udGFpbmVycyA9IG51bGw7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2hhc2hjaGFuZ2UnLCB0aGlzLmhhbmRsZUhhc2hDaGFuZ2UpO1xuICB9XG59O1xuXG5leHBvcnRzLmRlZmF1bHQgPSBzY3JvbGxIYXNoOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-scroll/modules/mixins/scroll-hash.js\n"); + +/***/ }), + +/***/ "./node_modules/react-scroll/modules/mixins/scroll-link.js": +/*!*****************************************************************!*\ + !*** ./node_modules/react-scroll/modules/mixins/scroll-link.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollSpy = __webpack_require__(/*! ./scroll-spy */ \"./node_modules/react-scroll/modules/mixins/scroll-spy.js\");\n\nvar _scrollSpy2 = _interopRequireDefault(_scrollSpy);\n\nvar _scroller = __webpack_require__(/*! ./scroller */ \"./node_modules/react-scroll/modules/mixins/scroller.js\");\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nvar _propTypes = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _scrollHash = __webpack_require__(/*! ./scroll-hash */ \"./node_modules/react-scroll/modules/mixins/scroll-hash.js\");\n\nvar _scrollHash2 = _interopRequireDefault(_scrollHash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar protoTypes = {\n to: _propTypes2.default.string.isRequired,\n containerId: _propTypes2.default.string,\n container: _propTypes2.default.object,\n activeClass: _propTypes2.default.string,\n spy: _propTypes2.default.bool,\n horizontal: _propTypes2.default.bool,\n smooth: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]),\n offset: _propTypes2.default.number,\n delay: _propTypes2.default.number,\n isDynamic: _propTypes2.default.bool,\n onClick: _propTypes2.default.func,\n duration: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n absolute: _propTypes2.default.bool,\n onSetActive: _propTypes2.default.func,\n onSetInactive: _propTypes2.default.func,\n ignoreCancelEvents: _propTypes2.default.bool,\n hashSpy: _propTypes2.default.bool,\n saveHashHistory: _propTypes2.default.bool,\n spyThrottle: _propTypes2.default.number\n};\n\nexports[\"default\"] = function (Component, customScroller) {\n\n var scroller = customScroller || _scroller2.default;\n\n var Link = function (_React$PureComponent) {\n _inherits(Link, _React$PureComponent);\n\n function Link(props) {\n _classCallCheck(this, Link);\n\n var _this = _possibleConstructorReturn(this, (Link.__proto__ || Object.getPrototypeOf(Link)).call(this, props));\n\n _initialiseProps.call(_this);\n\n _this.state = {\n active: false\n };\n return _this;\n }\n\n _createClass(Link, [{\n key: 'getScrollSpyContainer',\n value: function getScrollSpyContainer() {\n var containerId = this.props.containerId;\n var container = this.props.container;\n\n if (containerId && !container) {\n return document.getElementById(containerId);\n }\n\n if (container && container.nodeType) {\n return container;\n }\n\n return document;\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.props.spy || this.props.hashSpy) {\n var scrollSpyContainer = this.getScrollSpyContainer();\n\n if (!_scrollSpy2.default.isMounted(scrollSpyContainer)) {\n _scrollSpy2.default.mount(scrollSpyContainer, this.props.spyThrottle);\n }\n\n if (this.props.hashSpy) {\n if (!_scrollHash2.default.isMounted()) {\n _scrollHash2.default.mount(scroller);\n }\n _scrollHash2.default.mapContainer(this.props.to, scrollSpyContainer);\n }\n\n _scrollSpy2.default.addSpyHandler(this.spyHandler, scrollSpyContainer);\n\n this.setState({\n container: scrollSpyContainer\n });\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n _scrollSpy2.default.unmount(this.stateHandler, this.spyHandler);\n }\n }, {\n key: 'render',\n value: function render() {\n var className = \"\";\n\n if (this.state && this.state.active) {\n className = ((this.props.className || \"\") + \" \" + (this.props.activeClass || \"active\")).trim();\n } else {\n className = this.props.className;\n }\n\n var props = _extends({}, this.props);\n\n for (var prop in protoTypes) {\n if (props.hasOwnProperty(prop)) {\n delete props[prop];\n }\n }\n\n props.className = className;\n props.onClick = this.handleClick;\n\n return _react2.default.createElement(Component, props);\n }\n }]);\n\n return Link;\n }(_react2.default.PureComponent);\n\n var _initialiseProps = function _initialiseProps() {\n var _this2 = this;\n\n this.scrollTo = function (to, props) {\n scroller.scrollTo(to, _extends({}, _this2.state, props));\n };\n\n this.handleClick = function (event) {\n\n /*\r\n * give the posibility to override onClick\r\n */\n\n if (_this2.props.onClick) {\n _this2.props.onClick(event);\n }\n\n /*\r\n * dont bubble the navigation\r\n */\n\n if (event.stopPropagation) event.stopPropagation();\n if (event.preventDefault) event.preventDefault();\n\n /*\r\n * do the magic!\r\n */\n _this2.scrollTo(_this2.props.to, _this2.props);\n };\n\n this.spyHandler = function (x, y) {\n var scrollSpyContainer = _this2.getScrollSpyContainer();\n\n if (_scrollHash2.default.isMounted() && !_scrollHash2.default.isInitialized()) {\n return;\n }\n\n var horizontal = _this2.props.horizontal;\n\n var to = _this2.props.to;\n var element = null;\n var isInside = void 0;\n var isOutside = void 0;\n\n if (horizontal) {\n var elemLeftBound = 0;\n var elemRightBound = 0;\n var containerLeft = 0;\n\n if (scrollSpyContainer.getBoundingClientRect) {\n var containerCords = scrollSpyContainer.getBoundingClientRect();\n containerLeft = containerCords.left;\n }\n\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n if (!element) {\n return;\n }\n\n var cords = element.getBoundingClientRect();\n elemLeftBound = cords.left - containerLeft + x;\n elemRightBound = elemLeftBound + cords.width;\n }\n\n var offsetX = x - _this2.props.offset;\n isInside = offsetX >= Math.floor(elemLeftBound) && offsetX < Math.floor(elemRightBound);\n isOutside = offsetX < Math.floor(elemLeftBound) || offsetX >= Math.floor(elemRightBound);\n } else {\n var elemTopBound = 0;\n var elemBottomBound = 0;\n var containerTop = 0;\n\n if (scrollSpyContainer.getBoundingClientRect) {\n var _containerCords = scrollSpyContainer.getBoundingClientRect();\n containerTop = _containerCords.top;\n }\n\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n if (!element) {\n return;\n }\n\n var _cords = element.getBoundingClientRect();\n elemTopBound = _cords.top - containerTop + y;\n elemBottomBound = elemTopBound + _cords.height;\n }\n\n var offsetY = y - _this2.props.offset;\n isInside = offsetY >= Math.floor(elemTopBound) && offsetY < Math.floor(elemBottomBound);\n isOutside = offsetY < Math.floor(elemTopBound) || offsetY >= Math.floor(elemBottomBound);\n }\n\n var activeLink = scroller.getActiveLink();\n\n if (isOutside) {\n if (to === activeLink) {\n scroller.setActiveLink(void 0);\n }\n\n if (_this2.props.hashSpy && _scrollHash2.default.getHash() === to) {\n var _props$saveHashHistor = _this2.props.saveHashHistory,\n saveHashHistory = _props$saveHashHistor === undefined ? false : _props$saveHashHistor;\n\n _scrollHash2.default.changeHash(\"\", saveHashHistory);\n }\n\n if (_this2.props.spy && _this2.state.active) {\n _this2.setState({ active: false });\n _this2.props.onSetInactive && _this2.props.onSetInactive(to, element);\n }\n }\n\n if (isInside && (activeLink !== to || _this2.state.active === false)) {\n scroller.setActiveLink(to);\n\n var _props$saveHashHistor2 = _this2.props.saveHashHistory,\n _saveHashHistory = _props$saveHashHistor2 === undefined ? false : _props$saveHashHistor2;\n\n _this2.props.hashSpy && _scrollHash2.default.changeHash(to, _saveHashHistory);\n\n if (_this2.props.spy) {\n _this2.setState({ active: true });\n _this2.props.onSetActive && _this2.props.onSetActive(to, element);\n }\n }\n };\n };\n\n ;\n\n Link.propTypes = protoTypes;\n\n Link.defaultProps = { offset: 0 };\n\n return Link;\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2Nyb2xsL21vZHVsZXMvbWl4aW5zL3Njcm9sbC1saW5rLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQzs7QUFFRixvREFBb0QsZ0JBQWdCLHNCQUFzQixPQUFPLDJCQUEyQiwwQkFBMEIseURBQXlELGlDQUFpQzs7QUFFaFAsaUNBQWlDLDJDQUEyQyxnQkFBZ0Isa0JBQWtCLE9BQU8sMkJBQTJCLHdEQUF3RCxnQ0FBZ0MsdURBQXVELCtEQUErRCx5REFBeUQscUVBQXFFLDZEQUE2RCx3QkFBd0I7O0FBRWpqQixhQUFhLG1CQUFPLENBQUMsNENBQU87O0FBRTVCOztBQUVBLGlCQUFpQixtQkFBTyxDQUFDLDhFQUFjOztBQUV2Qzs7QUFFQSxnQkFBZ0IsbUJBQU8sQ0FBQywwRUFBWTs7QUFFcEM7O0FBRUEsaUJBQWlCLG1CQUFPLENBQUMsc0RBQVk7O0FBRXJDOztBQUVBLGtCQUFrQixtQkFBTyxDQUFDLGdGQUFlOztBQUV6Qzs7QUFFQSx1Q0FBdUMsdUNBQXVDOztBQUU5RSxrREFBa0QsMENBQTBDOztBQUU1RixrREFBa0QsYUFBYSx5RkFBeUY7O0FBRXhKLDJDQUEyQywrREFBK0QsdUdBQXVHLHlFQUF5RSxlQUFlLDBFQUEwRSxHQUFHOztBQUV0WDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsa0JBQWU7O0FBRWY7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTs7QUFFQSwrQkFBK0I7O0FBRS9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBLEdBQUc7O0FBRUg7QUFDQTs7QUFFQTtBQUNBLHVDQUF1QztBQUN2Qzs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSw0QkFBNEIsZUFBZTtBQUMzQztBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0EsNEJBQTRCLGNBQWM7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQSx3QkFBd0I7O0FBRXhCO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXNjcm9sbC9tb2R1bGVzL21peGlucy9zY3JvbGwtbGluay5qcz9hZWE4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcblxudmFyIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTtcblxudmFyIF9jcmVhdGVDbGFzcyA9IGZ1bmN0aW9uICgpIHsgZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9IHJldHVybiBmdW5jdGlvbiAoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH07IH0oKTtcblxudmFyIF9yZWFjdCA9IHJlcXVpcmUoJ3JlYWN0Jyk7XG5cbnZhciBfcmVhY3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcmVhY3QpO1xuXG52YXIgX3Njcm9sbFNweSA9IHJlcXVpcmUoJy4vc2Nyb2xsLXNweScpO1xuXG52YXIgX3Njcm9sbFNweTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9zY3JvbGxTcHkpO1xuXG52YXIgX3Njcm9sbGVyID0gcmVxdWlyZSgnLi9zY3JvbGxlcicpO1xuXG52YXIgX3Njcm9sbGVyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3Njcm9sbGVyKTtcblxudmFyIF9wcm9wVHlwZXMgPSByZXF1aXJlKCdwcm9wLXR5cGVzJyk7XG5cbnZhciBfcHJvcFR5cGVzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3Byb3BUeXBlcyk7XG5cbnZhciBfc2Nyb2xsSGFzaCA9IHJlcXVpcmUoJy4vc2Nyb2xsLWhhc2gnKTtcblxudmFyIF9zY3JvbGxIYXNoMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3Njcm9sbEhhc2gpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmICghc2VsZikgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIGNhbGwgJiYgKHR5cGVvZiBjYWxsID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpID8gY2FsbCA6IHNlbGY7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgXCIgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBwcm90b1R5cGVzID0ge1xuICB0bzogX3Byb3BUeXBlczIuZGVmYXVsdC5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgY29udGFpbmVySWQ6IF9wcm9wVHlwZXMyLmRlZmF1bHQuc3RyaW5nLFxuICBjb250YWluZXI6IF9wcm9wVHlwZXMyLmRlZmF1bHQub2JqZWN0LFxuICBhY3RpdmVDbGFzczogX3Byb3BUeXBlczIuZGVmYXVsdC5zdHJpbmcsXG4gIHNweTogX3Byb3BUeXBlczIuZGVmYXVsdC5ib29sLFxuICBob3Jpem9udGFsOiBfcHJvcFR5cGVzMi5kZWZhdWx0LmJvb2wsXG4gIHNtb290aDogX3Byb3BUeXBlczIuZGVmYXVsdC5vbmVPZlR5cGUoW19wcm9wVHlwZXMyLmRlZmF1bHQuYm9vbCwgX3Byb3BUeXBlczIuZGVmYXVsdC5zdHJpbmddKSxcbiAgb2Zmc2V0OiBfcHJvcFR5cGVzMi5kZWZhdWx0Lm51bWJlcixcbiAgZGVsYXk6IF9wcm9wVHlwZXMyLmRlZmF1bHQubnVtYmVyLFxuICBpc0R5bmFtaWM6IF9wcm9wVHlwZXMyLmRlZmF1bHQuYm9vbCxcbiAgb25DbGljazogX3Byb3BUeXBlczIuZGVmYXVsdC5mdW5jLFxuICBkdXJhdGlvbjogX3Byb3BUeXBlczIuZGVmYXVsdC5vbmVPZlR5cGUoW19wcm9wVHlwZXMyLmRlZmF1bHQubnVtYmVyLCBfcHJvcFR5cGVzMi5kZWZhdWx0LmZ1bmNdKSxcbiAgYWJzb2x1dGU6IF9wcm9wVHlwZXMyLmRlZmF1bHQuYm9vbCxcbiAgb25TZXRBY3RpdmU6IF9wcm9wVHlwZXMyLmRlZmF1bHQuZnVuYyxcbiAgb25TZXRJbmFjdGl2ZTogX3Byb3BUeXBlczIuZGVmYXVsdC5mdW5jLFxuICBpZ25vcmVDYW5jZWxFdmVudHM6IF9wcm9wVHlwZXMyLmRlZmF1bHQuYm9vbCxcbiAgaGFzaFNweTogX3Byb3BUeXBlczIuZGVmYXVsdC5ib29sLFxuICBzYXZlSGFzaEhpc3Rvcnk6IF9wcm9wVHlwZXMyLmRlZmF1bHQuYm9vbCxcbiAgc3B5VGhyb3R0bGU6IF9wcm9wVHlwZXMyLmRlZmF1bHQubnVtYmVyXG59O1xuXG5leHBvcnRzLmRlZmF1bHQgPSBmdW5jdGlvbiAoQ29tcG9uZW50LCBjdXN0b21TY3JvbGxlcikge1xuXG4gIHZhciBzY3JvbGxlciA9IGN1c3RvbVNjcm9sbGVyIHx8IF9zY3JvbGxlcjIuZGVmYXVsdDtcblxuICB2YXIgTGluayA9IGZ1bmN0aW9uIChfUmVhY3QkUHVyZUNvbXBvbmVudCkge1xuICAgIF9pbmhlcml0cyhMaW5rLCBfUmVhY3QkUHVyZUNvbXBvbmVudCk7XG5cbiAgICBmdW5jdGlvbiBMaW5rKHByb3BzKSB7XG4gICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgTGluayk7XG5cbiAgICAgIHZhciBfdGhpcyA9IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIChMaW5rLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2YoTGluaykpLmNhbGwodGhpcywgcHJvcHMpKTtcblxuICAgICAgX2luaXRpYWxpc2VQcm9wcy5jYWxsKF90aGlzKTtcblxuICAgICAgX3RoaXMuc3RhdGUgPSB7XG4gICAgICAgIGFjdGl2ZTogZmFsc2VcbiAgICAgIH07XG4gICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuXG4gICAgX2NyZWF0ZUNsYXNzKExpbmssIFt7XG4gICAgICBrZXk6ICdnZXRTY3JvbGxTcHlDb250YWluZXInLFxuICAgICAgdmFsdWU6IGZ1bmN0aW9uIGdldFNjcm9sbFNweUNvbnRhaW5lcigpIHtcbiAgICAgICAgdmFyIGNvbnRhaW5lcklkID0gdGhpcy5wcm9wcy5jb250YWluZXJJZDtcbiAgICAgICAgdmFyIGNvbnRhaW5lciA9IHRoaXMucHJvcHMuY29udGFpbmVyO1xuXG4gICAgICAgIGlmIChjb250YWluZXJJZCAmJiAhY29udGFpbmVyKSB7XG4gICAgICAgICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGNvbnRhaW5lcklkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb250YWluZXIgJiYgY29udGFpbmVyLm5vZGVUeXBlKSB7XG4gICAgICAgICAgcmV0dXJuIGNvbnRhaW5lcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBkb2N1bWVudDtcbiAgICAgIH1cbiAgICB9LCB7XG4gICAgICBrZXk6ICdjb21wb25lbnREaWRNb3VudCcsXG4gICAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLnNweSB8fCB0aGlzLnByb3BzLmhhc2hTcHkpIHtcbiAgICAgICAgICB2YXIgc2Nyb2xsU3B5Q29udGFpbmVyID0gdGhpcy5nZXRTY3JvbGxTcHlDb250YWluZXIoKTtcblxuICAgICAgICAgIGlmICghX3Njcm9sbFNweTIuZGVmYXVsdC5pc01vdW50ZWQoc2Nyb2xsU3B5Q29udGFpbmVyKSkge1xuICAgICAgICAgICAgX3Njcm9sbFNweTIuZGVmYXVsdC5tb3VudChzY3JvbGxTcHlDb250YWluZXIsIHRoaXMucHJvcHMuc3B5VGhyb3R0bGUpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0aGlzLnByb3BzLmhhc2hTcHkpIHtcbiAgICAgICAgICAgIGlmICghX3Njcm9sbEhhc2gyLmRlZmF1bHQuaXNNb3VudGVkKCkpIHtcbiAgICAgICAgICAgICAgX3Njcm9sbEhhc2gyLmRlZmF1bHQubW91bnQoc2Nyb2xsZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgX3Njcm9sbEhhc2gyLmRlZmF1bHQubWFwQ29udGFpbmVyKHRoaXMucHJvcHMudG8sIHNjcm9sbFNweUNvbnRhaW5lcik7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgX3Njcm9sbFNweTIuZGVmYXVsdC5hZGRTcHlIYW5kbGVyKHRoaXMuc3B5SGFuZGxlciwgc2Nyb2xsU3B5Q29udGFpbmVyKTtcblxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgY29udGFpbmVyOiBzY3JvbGxTcHlDb250YWluZXJcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sIHtcbiAgICAgIGtleTogJ2NvbXBvbmVudFdpbGxVbm1vdW50JyxcbiAgICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgICAgX3Njcm9sbFNweTIuZGVmYXVsdC51bm1vdW50KHRoaXMuc3RhdGVIYW5kbGVyLCB0aGlzLnNweUhhbmRsZXIpO1xuICAgICAgfVxuICAgIH0sIHtcbiAgICAgIGtleTogJ3JlbmRlcicsXG4gICAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICB2YXIgY2xhc3NOYW1lID0gXCJcIjtcblxuICAgICAgICBpZiAodGhpcy5zdGF0ZSAmJiB0aGlzLnN0YXRlLmFjdGl2ZSkge1xuICAgICAgICAgIGNsYXNzTmFtZSA9ICgodGhpcy5wcm9wcy5jbGFzc05hbWUgfHwgXCJcIikgKyBcIiBcIiArICh0aGlzLnByb3BzLmFjdGl2ZUNsYXNzIHx8IFwiYWN0aXZlXCIpKS50cmltKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY2xhc3NOYW1lID0gdGhpcy5wcm9wcy5jbGFzc05hbWU7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgcHJvcHMgPSBfZXh0ZW5kcyh7fSwgdGhpcy5wcm9wcyk7XG5cbiAgICAgICAgZm9yICh2YXIgcHJvcCBpbiBwcm90b1R5cGVzKSB7XG4gICAgICAgICAgaWYgKHByb3BzLmhhc093blByb3BlcnR5KHByb3ApKSB7XG4gICAgICAgICAgICBkZWxldGUgcHJvcHNbcHJvcF07XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcHJvcHMuY2xhc3NOYW1lID0gY2xhc3NOYW1lO1xuICAgICAgICBwcm9wcy5vbkNsaWNrID0gdGhpcy5oYW5kbGVDbGljaztcblxuICAgICAgICByZXR1cm4gX3JlYWN0Mi5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoQ29tcG9uZW50LCBwcm9wcyk7XG4gICAgICB9XG4gICAgfV0pO1xuXG4gICAgcmV0dXJuIExpbms7XG4gIH0oX3JlYWN0Mi5kZWZhdWx0LlB1cmVDb21wb25lbnQpO1xuXG4gIHZhciBfaW5pdGlhbGlzZVByb3BzID0gZnVuY3Rpb24gX2luaXRpYWxpc2VQcm9wcygpIHtcbiAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgIHRoaXMuc2Nyb2xsVG8gPSBmdW5jdGlvbiAodG8sIHByb3BzKSB7XG4gICAgICBzY3JvbGxlci5zY3JvbGxUbyh0bywgX2V4dGVuZHMoe30sIF90aGlzMi5zdGF0ZSwgcHJvcHMpKTtcbiAgICB9O1xuXG4gICAgdGhpcy5oYW5kbGVDbGljayA9IGZ1bmN0aW9uIChldmVudCkge1xuXG4gICAgICAvKlxyXG4gICAgICAgKiBnaXZlIHRoZSBwb3NpYmlsaXR5IHRvIG92ZXJyaWRlIG9uQ2xpY2tcclxuICAgICAgICovXG5cbiAgICAgIGlmIChfdGhpczIucHJvcHMub25DbGljaykge1xuICAgICAgICBfdGhpczIucHJvcHMub25DbGljayhldmVudCk7XG4gICAgICB9XG5cbiAgICAgIC8qXHJcbiAgICAgICAqIGRvbnQgYnViYmxlIHRoZSBuYXZpZ2F0aW9uXHJcbiAgICAgICAqL1xuXG4gICAgICBpZiAoZXZlbnQuc3RvcFByb3BhZ2F0aW9uKSBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIGlmIChldmVudC5wcmV2ZW50RGVmYXVsdCkgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgLypcclxuICAgICAgICogZG8gdGhlIG1hZ2ljIVxyXG4gICAgICAgKi9cbiAgICAgIF90aGlzMi5zY3JvbGxUbyhfdGhpczIucHJvcHMudG8sIF90aGlzMi5wcm9wcyk7XG4gICAgfTtcblxuICAgIHRoaXMuc3B5SGFuZGxlciA9IGZ1bmN0aW9uICh4LCB5KSB7XG4gICAgICB2YXIgc2Nyb2xsU3B5Q29udGFpbmVyID0gX3RoaXMyLmdldFNjcm9sbFNweUNvbnRhaW5lcigpO1xuXG4gICAgICBpZiAoX3Njcm9sbEhhc2gyLmRlZmF1bHQuaXNNb3VudGVkKCkgJiYgIV9zY3JvbGxIYXNoMi5kZWZhdWx0LmlzSW5pdGlhbGl6ZWQoKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHZhciBob3Jpem9udGFsID0gX3RoaXMyLnByb3BzLmhvcml6b250YWw7XG5cbiAgICAgIHZhciB0byA9IF90aGlzMi5wcm9wcy50bztcbiAgICAgIHZhciBlbGVtZW50ID0gbnVsbDtcbiAgICAgIHZhciBpc0luc2lkZSA9IHZvaWQgMDtcbiAgICAgIHZhciBpc091dHNpZGUgPSB2b2lkIDA7XG5cbiAgICAgIGlmIChob3Jpem9udGFsKSB7XG4gICAgICAgIHZhciBlbGVtTGVmdEJvdW5kID0gMDtcbiAgICAgICAgdmFyIGVsZW1SaWdodEJvdW5kID0gMDtcbiAgICAgICAgdmFyIGNvbnRhaW5lckxlZnQgPSAwO1xuXG4gICAgICAgIGlmIChzY3JvbGxTcHlDb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KSB7XG4gICAgICAgICAgdmFyIGNvbnRhaW5lckNvcmRzID0gc2Nyb2xsU3B5Q29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgIGNvbnRhaW5lckxlZnQgPSBjb250YWluZXJDb3Jkcy5sZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFlbGVtZW50IHx8IF90aGlzMi5wcm9wcy5pc0R5bmFtaWMpIHtcbiAgICAgICAgICBlbGVtZW50ID0gc2Nyb2xsZXIuZ2V0KHRvKTtcbiAgICAgICAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB2YXIgY29yZHMgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgIGVsZW1MZWZ0Qm91bmQgPSBjb3Jkcy5sZWZ0IC0gY29udGFpbmVyTGVmdCArIHg7XG4gICAgICAgICAgZWxlbVJpZ2h0Qm91bmQgPSBlbGVtTGVmdEJvdW5kICsgY29yZHMud2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgb2Zmc2V0WCA9IHggLSBfdGhpczIucHJvcHMub2Zmc2V0O1xuICAgICAgICBpc0luc2lkZSA9IG9mZnNldFggPj0gTWF0aC5mbG9vcihlbGVtTGVmdEJvdW5kKSAmJiBvZmZzZXRYIDwgTWF0aC5mbG9vcihlbGVtUmlnaHRCb3VuZCk7XG4gICAgICAgIGlzT3V0c2lkZSA9IG9mZnNldFggPCBNYXRoLmZsb29yKGVsZW1MZWZ0Qm91bmQpIHx8IG9mZnNldFggPj0gTWF0aC5mbG9vcihlbGVtUmlnaHRCb3VuZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgZWxlbVRvcEJvdW5kID0gMDtcbiAgICAgICAgdmFyIGVsZW1Cb3R0b21Cb3VuZCA9IDA7XG4gICAgICAgIHZhciBjb250YWluZXJUb3AgPSAwO1xuXG4gICAgICAgIGlmIChzY3JvbGxTcHlDb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KSB7XG4gICAgICAgICAgdmFyIF9jb250YWluZXJDb3JkcyA9IHNjcm9sbFNweUNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICBjb250YWluZXJUb3AgPSBfY29udGFpbmVyQ29yZHMudG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFlbGVtZW50IHx8IF90aGlzMi5wcm9wcy5pc0R5bmFtaWMpIHtcbiAgICAgICAgICBlbGVtZW50ID0gc2Nyb2xsZXIuZ2V0KHRvKTtcbiAgICAgICAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB2YXIgX2NvcmRzID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICBlbGVtVG9wQm91bmQgPSBfY29yZHMudG9wIC0gY29udGFpbmVyVG9wICsgeTtcbiAgICAgICAgICBlbGVtQm90dG9tQm91bmQgPSBlbGVtVG9wQm91bmQgKyBfY29yZHMuaGVpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIG9mZnNldFkgPSB5IC0gX3RoaXMyLnByb3BzLm9mZnNldDtcbiAgICAgICAgaXNJbnNpZGUgPSBvZmZzZXRZID49IE1hdGguZmxvb3IoZWxlbVRvcEJvdW5kKSAmJiBvZmZzZXRZIDwgTWF0aC5mbG9vcihlbGVtQm90dG9tQm91bmQpO1xuICAgICAgICBpc091dHNpZGUgPSBvZmZzZXRZIDwgTWF0aC5mbG9vcihlbGVtVG9wQm91bmQpIHx8IG9mZnNldFkgPj0gTWF0aC5mbG9vcihlbGVtQm90dG9tQm91bmQpO1xuICAgICAgfVxuXG4gICAgICB2YXIgYWN0aXZlTGluayA9IHNjcm9sbGVyLmdldEFjdGl2ZUxpbmsoKTtcblxuICAgICAgaWYgKGlzT3V0c2lkZSkge1xuICAgICAgICBpZiAodG8gPT09IGFjdGl2ZUxpbmspIHtcbiAgICAgICAgICBzY3JvbGxlci5zZXRBY3RpdmVMaW5rKHZvaWQgMCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoX3RoaXMyLnByb3BzLmhhc2hTcHkgJiYgX3Njcm9sbEhhc2gyLmRlZmF1bHQuZ2V0SGFzaCgpID09PSB0bykge1xuICAgICAgICAgIHZhciBfcHJvcHMkc2F2ZUhhc2hIaXN0b3IgPSBfdGhpczIucHJvcHMuc2F2ZUhhc2hIaXN0b3J5LFxuICAgICAgICAgICAgICBzYXZlSGFzaEhpc3RvcnkgPSBfcHJvcHMkc2F2ZUhhc2hIaXN0b3IgPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogX3Byb3BzJHNhdmVIYXNoSGlzdG9yO1xuXG4gICAgICAgICAgX3Njcm9sbEhhc2gyLmRlZmF1bHQuY2hhbmdlSGFzaChcIlwiLCBzYXZlSGFzaEhpc3RvcnkpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKF90aGlzMi5wcm9wcy5zcHkgJiYgX3RoaXMyLnN0YXRlLmFjdGl2ZSkge1xuICAgICAgICAgIF90aGlzMi5zZXRTdGF0ZSh7IGFjdGl2ZTogZmFsc2UgfSk7XG4gICAgICAgICAgX3RoaXMyLnByb3BzLm9uU2V0SW5hY3RpdmUgJiYgX3RoaXMyLnByb3BzLm9uU2V0SW5hY3RpdmUodG8sIGVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChpc0luc2lkZSAmJiAoYWN0aXZlTGluayAhPT0gdG8gfHwgX3RoaXMyLnN0YXRlLmFjdGl2ZSA9PT0gZmFsc2UpKSB7XG4gICAgICAgIHNjcm9sbGVyLnNldEFjdGl2ZUxpbmsodG8pO1xuXG4gICAgICAgIHZhciBfcHJvcHMkc2F2ZUhhc2hIaXN0b3IyID0gX3RoaXMyLnByb3BzLnNhdmVIYXNoSGlzdG9yeSxcbiAgICAgICAgICAgIF9zYXZlSGFzaEhpc3RvcnkgPSBfcHJvcHMkc2F2ZUhhc2hIaXN0b3IyID09PSB1bmRlZmluZWQgPyBmYWxzZSA6IF9wcm9wcyRzYXZlSGFzaEhpc3RvcjI7XG5cbiAgICAgICAgX3RoaXMyLnByb3BzLmhhc2hTcHkgJiYgX3Njcm9sbEhhc2gyLmRlZmF1bHQuY2hhbmdlSGFzaCh0bywgX3NhdmVIYXNoSGlzdG9yeSk7XG5cbiAgICAgICAgaWYgKF90aGlzMi5wcm9wcy5zcHkpIHtcbiAgICAgICAgICBfdGhpczIuc2V0U3RhdGUoeyBhY3RpdmU6IHRydWUgfSk7XG4gICAgICAgICAgX3RoaXMyLnByb3BzLm9uU2V0QWN0aXZlICYmIF90aGlzMi5wcm9wcy5vblNldEFjdGl2ZSh0bywgZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9O1xuXG4gIDtcblxuICBMaW5rLnByb3BUeXBlcyA9IHByb3RvVHlwZXM7XG5cbiAgTGluay5kZWZhdWx0UHJvcHMgPSB7IG9mZnNldDogMCB9O1xuXG4gIHJldHVybiBMaW5rO1xufTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-scroll/modules/mixins/scroll-link.js\n"); + +/***/ }), + +/***/ "./node_modules/react-scroll/modules/mixins/scroll-spy.js": +/*!****************************************************************!*\ + !*** ./node_modules/react-scroll/modules/mixins/scroll-spy.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar _lodash = __webpack_require__(/*! lodash.throttle */ \"./node_modules/lodash.throttle/index.js\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _passiveEventListeners = __webpack_require__(/*! ./passive-event-listeners */ \"./node_modules/react-scroll/modules/mixins/passive-event-listeners.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// The eventHandler will execute at a rate of 15fps by default\nvar eventThrottler = function eventThrottler(eventHandler) {\n var throttleAmount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 66;\n return (0, _lodash2.default)(eventHandler, throttleAmount);\n};\n\nvar scrollSpy = {\n\n spyCallbacks: [],\n spySetState: [],\n scrollSpyContainers: [],\n\n mount: function mount(scrollSpyContainer, throttle) {\n if (scrollSpyContainer) {\n var eventHandler = eventThrottler(function (event) {\n scrollSpy.scrollHandler(scrollSpyContainer);\n }, throttle);\n scrollSpy.scrollSpyContainers.push(scrollSpyContainer);\n (0, _passiveEventListeners.addPassiveEventListener)(scrollSpyContainer, 'scroll', eventHandler);\n }\n },\n isMounted: function isMounted(scrollSpyContainer) {\n return scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer) !== -1;\n },\n currentPositionX: function currentPositionX(scrollSpyContainer) {\n if (scrollSpyContainer === document) {\n var supportPageOffset = window.pageYOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageXOffset : isCSS1Compat ? document.documentElement.scrollLeft : document.body.scrollLeft;\n } else {\n return scrollSpyContainer.scrollLeft;\n }\n },\n currentPositionY: function currentPositionY(scrollSpyContainer) {\n if (scrollSpyContainer === document) {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop;\n } else {\n return scrollSpyContainer.scrollTop;\n }\n },\n scrollHandler: function scrollHandler(scrollSpyContainer) {\n var callbacks = scrollSpy.scrollSpyContainers[scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer)].spyCallbacks || [];\n callbacks.forEach(function (c) {\n return c(scrollSpy.currentPositionX(scrollSpyContainer), scrollSpy.currentPositionY(scrollSpyContainer));\n });\n },\n addStateHandler: function addStateHandler(handler) {\n scrollSpy.spySetState.push(handler);\n },\n addSpyHandler: function addSpyHandler(handler, scrollSpyContainer) {\n var container = scrollSpy.scrollSpyContainers[scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer)];\n\n if (!container.spyCallbacks) {\n container.spyCallbacks = [];\n }\n\n container.spyCallbacks.push(handler);\n\n handler(scrollSpy.currentPositionX(scrollSpyContainer), scrollSpy.currentPositionY(scrollSpyContainer));\n },\n updateStates: function updateStates() {\n scrollSpy.spySetState.forEach(function (s) {\n return s();\n });\n },\n unmount: function unmount(stateHandler, spyHandler) {\n scrollSpy.scrollSpyContainers.forEach(function (c) {\n return c.spyCallbacks && c.spyCallbacks.length && c.spyCallbacks.splice(c.spyCallbacks.indexOf(spyHandler), 1);\n });\n\n if (scrollSpy.spySetState && scrollSpy.spySetState.length) {\n scrollSpy.spySetState.splice(scrollSpy.spySetState.indexOf(stateHandler), 1);\n }\n\n document.removeEventListener('scroll', scrollSpy.scrollHandler);\n },\n\n\n update: function update() {\n return scrollSpy.scrollSpyContainers.forEach(function (c) {\n return scrollSpy.scrollHandler(c);\n });\n }\n};\n\nexports[\"default\"] = scrollSpy;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2Nyb2xsL21vZHVsZXMvbWl4aW5zL3Njcm9sbC1zcHkuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDOztBQUVGLGNBQWMsbUJBQU8sQ0FBQyxnRUFBaUI7O0FBRXZDOztBQUVBLDZCQUE2QixtQkFBTyxDQUFDLHdHQUEyQjs7QUFFaEUsdUNBQXVDLHVDQUF1Qzs7QUFFOUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHO0FBQ0g7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBOztBQUVBO0FBQ0EsR0FBRzs7O0FBR0g7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUEsa0JBQWUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXNjcm9sbC9tb2R1bGVzL21peGlucy9zY3JvbGwtc3B5LmpzP2QzODAiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuXG52YXIgX2xvZGFzaCA9IHJlcXVpcmUoJ2xvZGFzaC50aHJvdHRsZScpO1xuXG52YXIgX2xvZGFzaDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9sb2Rhc2gpO1xuXG52YXIgX3Bhc3NpdmVFdmVudExpc3RlbmVycyA9IHJlcXVpcmUoJy4vcGFzc2l2ZS1ldmVudC1saXN0ZW5lcnMnKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuLy8gVGhlIGV2ZW50SGFuZGxlciB3aWxsIGV4ZWN1dGUgYXQgYSByYXRlIG9mIDE1ZnBzIGJ5IGRlZmF1bHRcbnZhciBldmVudFRocm90dGxlciA9IGZ1bmN0aW9uIGV2ZW50VGhyb3R0bGVyKGV2ZW50SGFuZGxlcikge1xuICB2YXIgdGhyb3R0bGVBbW91bnQgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IDY2O1xuICByZXR1cm4gKDAsIF9sb2Rhc2gyLmRlZmF1bHQpKGV2ZW50SGFuZGxlciwgdGhyb3R0bGVBbW91bnQpO1xufTtcblxudmFyIHNjcm9sbFNweSA9IHtcblxuICBzcHlDYWxsYmFja3M6IFtdLFxuICBzcHlTZXRTdGF0ZTogW10sXG4gIHNjcm9sbFNweUNvbnRhaW5lcnM6IFtdLFxuXG4gIG1vdW50OiBmdW5jdGlvbiBtb3VudChzY3JvbGxTcHlDb250YWluZXIsIHRocm90dGxlKSB7XG4gICAgaWYgKHNjcm9sbFNweUNvbnRhaW5lcikge1xuICAgICAgdmFyIGV2ZW50SGFuZGxlciA9IGV2ZW50VGhyb3R0bGVyKGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICBzY3JvbGxTcHkuc2Nyb2xsSGFuZGxlcihzY3JvbGxTcHlDb250YWluZXIpO1xuICAgICAgfSwgdGhyb3R0bGUpO1xuICAgICAgc2Nyb2xsU3B5LnNjcm9sbFNweUNvbnRhaW5lcnMucHVzaChzY3JvbGxTcHlDb250YWluZXIpO1xuICAgICAgKDAsIF9wYXNzaXZlRXZlbnRMaXN0ZW5lcnMuYWRkUGFzc2l2ZUV2ZW50TGlzdGVuZXIpKHNjcm9sbFNweUNvbnRhaW5lciwgJ3Njcm9sbCcsIGV2ZW50SGFuZGxlcik7XG4gICAgfVxuICB9LFxuICBpc01vdW50ZWQ6IGZ1bmN0aW9uIGlzTW91bnRlZChzY3JvbGxTcHlDb250YWluZXIpIHtcbiAgICByZXR1cm4gc2Nyb2xsU3B5LnNjcm9sbFNweUNvbnRhaW5lcnMuaW5kZXhPZihzY3JvbGxTcHlDb250YWluZXIpICE9PSAtMTtcbiAgfSxcbiAgY3VycmVudFBvc2l0aW9uWDogZnVuY3Rpb24gY3VycmVudFBvc2l0aW9uWChzY3JvbGxTcHlDb250YWluZXIpIHtcbiAgICBpZiAoc2Nyb2xsU3B5Q29udGFpbmVyID09PSBkb2N1bWVudCkge1xuICAgICAgdmFyIHN1cHBvcnRQYWdlT2Zmc2V0ID0gd2luZG93LnBhZ2VZT2Zmc2V0ICE9PSB1bmRlZmluZWQ7XG4gICAgICB2YXIgaXNDU1MxQ29tcGF0ID0gKGRvY3VtZW50LmNvbXBhdE1vZGUgfHwgXCJcIikgPT09IFwiQ1NTMUNvbXBhdFwiO1xuICAgICAgcmV0dXJuIHN1cHBvcnRQYWdlT2Zmc2V0ID8gd2luZG93LnBhZ2VYT2Zmc2V0IDogaXNDU1MxQ29tcGF0ID8gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnQgOiBkb2N1bWVudC5ib2R5LnNjcm9sbExlZnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBzY3JvbGxTcHlDb250YWluZXIuc2Nyb2xsTGVmdDtcbiAgICB9XG4gIH0sXG4gIGN1cnJlbnRQb3NpdGlvblk6IGZ1bmN0aW9uIGN1cnJlbnRQb3NpdGlvblkoc2Nyb2xsU3B5Q29udGFpbmVyKSB7XG4gICAgaWYgKHNjcm9sbFNweUNvbnRhaW5lciA9PT0gZG9jdW1lbnQpIHtcbiAgICAgIHZhciBzdXBwb3J0UGFnZU9mZnNldCA9IHdpbmRvdy5wYWdlWE9mZnNldCAhPT0gdW5kZWZpbmVkO1xuICAgICAgdmFyIGlzQ1NTMUNvbXBhdCA9IChkb2N1bWVudC5jb21wYXRNb2RlIHx8IFwiXCIpID09PSBcIkNTUzFDb21wYXRcIjtcbiAgICAgIHJldHVybiBzdXBwb3J0UGFnZU9mZnNldCA/IHdpbmRvdy5wYWdlWU9mZnNldCA6IGlzQ1NTMUNvbXBhdCA/IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgOiBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHNjcm9sbFNweUNvbnRhaW5lci5zY3JvbGxUb3A7XG4gICAgfVxuICB9LFxuICBzY3JvbGxIYW5kbGVyOiBmdW5jdGlvbiBzY3JvbGxIYW5kbGVyKHNjcm9sbFNweUNvbnRhaW5lcikge1xuICAgIHZhciBjYWxsYmFja3MgPSBzY3JvbGxTcHkuc2Nyb2xsU3B5Q29udGFpbmVyc1tzY3JvbGxTcHkuc2Nyb2xsU3B5Q29udGFpbmVycy5pbmRleE9mKHNjcm9sbFNweUNvbnRhaW5lcildLnNweUNhbGxiYWNrcyB8fCBbXTtcbiAgICBjYWxsYmFja3MuZm9yRWFjaChmdW5jdGlvbiAoYykge1xuICAgICAgcmV0dXJuIGMoc2Nyb2xsU3B5LmN1cnJlbnRQb3NpdGlvblgoc2Nyb2xsU3B5Q29udGFpbmVyKSwgc2Nyb2xsU3B5LmN1cnJlbnRQb3NpdGlvblkoc2Nyb2xsU3B5Q29udGFpbmVyKSk7XG4gICAgfSk7XG4gIH0sXG4gIGFkZFN0YXRlSGFuZGxlcjogZnVuY3Rpb24gYWRkU3RhdGVIYW5kbGVyKGhhbmRsZXIpIHtcbiAgICBzY3JvbGxTcHkuc3B5U2V0U3RhdGUucHVzaChoYW5kbGVyKTtcbiAgfSxcbiAgYWRkU3B5SGFuZGxlcjogZnVuY3Rpb24gYWRkU3B5SGFuZGxlcihoYW5kbGVyLCBzY3JvbGxTcHlDb250YWluZXIpIHtcbiAgICB2YXIgY29udGFpbmVyID0gc2Nyb2xsU3B5LnNjcm9sbFNweUNvbnRhaW5lcnNbc2Nyb2xsU3B5LnNjcm9sbFNweUNvbnRhaW5lcnMuaW5kZXhPZihzY3JvbGxTcHlDb250YWluZXIpXTtcblxuICAgIGlmICghY29udGFpbmVyLnNweUNhbGxiYWNrcykge1xuICAgICAgY29udGFpbmVyLnNweUNhbGxiYWNrcyA9IFtdO1xuICAgIH1cblxuICAgIGNvbnRhaW5lci5zcHlDYWxsYmFja3MucHVzaChoYW5kbGVyKTtcblxuICAgIGhhbmRsZXIoc2Nyb2xsU3B5LmN1cnJlbnRQb3NpdGlvblgoc2Nyb2xsU3B5Q29udGFpbmVyKSwgc2Nyb2xsU3B5LmN1cnJlbnRQb3NpdGlvblkoc2Nyb2xsU3B5Q29udGFpbmVyKSk7XG4gIH0sXG4gIHVwZGF0ZVN0YXRlczogZnVuY3Rpb24gdXBkYXRlU3RhdGVzKCkge1xuICAgIHNjcm9sbFNweS5zcHlTZXRTdGF0ZS5mb3JFYWNoKGZ1bmN0aW9uIChzKSB7XG4gICAgICByZXR1cm4gcygpO1xuICAgIH0pO1xuICB9LFxuICB1bm1vdW50OiBmdW5jdGlvbiB1bm1vdW50KHN0YXRlSGFuZGxlciwgc3B5SGFuZGxlcikge1xuICAgIHNjcm9sbFNweS5zY3JvbGxTcHlDb250YWluZXJzLmZvckVhY2goZnVuY3Rpb24gKGMpIHtcbiAgICAgIHJldHVybiBjLnNweUNhbGxiYWNrcyAmJiBjLnNweUNhbGxiYWNrcy5sZW5ndGggJiYgYy5zcHlDYWxsYmFja3Muc3BsaWNlKGMuc3B5Q2FsbGJhY2tzLmluZGV4T2Yoc3B5SGFuZGxlciksIDEpO1xuICAgIH0pO1xuXG4gICAgaWYgKHNjcm9sbFNweS5zcHlTZXRTdGF0ZSAmJiBzY3JvbGxTcHkuc3B5U2V0U3RhdGUubGVuZ3RoKSB7XG4gICAgICBzY3JvbGxTcHkuc3B5U2V0U3RhdGUuc3BsaWNlKHNjcm9sbFNweS5zcHlTZXRTdGF0ZS5pbmRleE9mKHN0YXRlSGFuZGxlciksIDEpO1xuICAgIH1cblxuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHNjcm9sbFNweS5zY3JvbGxIYW5kbGVyKTtcbiAgfSxcblxuXG4gIHVwZGF0ZTogZnVuY3Rpb24gdXBkYXRlKCkge1xuICAgIHJldHVybiBzY3JvbGxTcHkuc2Nyb2xsU3B5Q29udGFpbmVycy5mb3JFYWNoKGZ1bmN0aW9uIChjKSB7XG4gICAgICByZXR1cm4gc2Nyb2xsU3B5LnNjcm9sbEhhbmRsZXIoYyk7XG4gICAgfSk7XG4gIH1cbn07XG5cbmV4cG9ydHMuZGVmYXVsdCA9IHNjcm9sbFNweTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-scroll/modules/mixins/scroll-spy.js\n"); + +/***/ }), + +/***/ "./node_modules/react-scroll/modules/mixins/scroller.js": +/*!**************************************************************!*\ + !*** ./node_modules/react-scroll/modules/mixins/scroller.js ***! + \**************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/react-scroll/modules/mixins/utils.js\");\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nvar _animateScroll = __webpack_require__(/*! ./animate-scroll */ \"./node_modules/react-scroll/modules/mixins/animate-scroll.js\");\n\nvar _animateScroll2 = _interopRequireDefault(_animateScroll);\n\nvar _scrollEvents = __webpack_require__(/*! ./scroll-events */ \"./node_modules/react-scroll/modules/mixins/scroll-events.js\");\n\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar __mapped = {};\nvar __activeLink = void 0;\n\nexports[\"default\"] = {\n\n unmount: function unmount() {\n __mapped = {};\n },\n\n register: function register(name, element) {\n __mapped[name] = element;\n },\n\n unregister: function unregister(name) {\n delete __mapped[name];\n },\n\n get: function get(name) {\n return __mapped[name] || document.getElementById(name) || document.getElementsByName(name)[0] || document.getElementsByClassName(name)[0];\n },\n\n setActiveLink: function setActiveLink(link) {\n return __activeLink = link;\n },\n\n getActiveLink: function getActiveLink() {\n return __activeLink;\n },\n\n scrollTo: function scrollTo(to, props) {\n\n var target = this.get(to);\n\n if (!target) {\n console.warn(\"target Element not found\");\n return;\n }\n\n props = _extends({}, props, { absolute: false });\n\n var containerId = props.containerId;\n var container = props.container;\n\n var containerElement = void 0;\n if (containerId) {\n containerElement = document.getElementById(containerId);\n } else if (container && container.nodeType) {\n containerElement = container;\n } else {\n containerElement = document;\n }\n\n props.absolute = true;\n\n var horizontal = props.horizontal;\n var scrollOffset = _utils2.default.scrollOffset(containerElement, target, horizontal) + (props.offset || 0);\n\n /*\r\n * if animate is not provided just scroll into the view\r\n */\n if (!props.smooth) {\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](to, target);\n }\n\n if (containerElement === document) {\n if (props.horizontal) {\n window.scrollTo(scrollOffset, 0);\n } else {\n window.scrollTo(0, scrollOffset);\n }\n } else {\n containerElement.scrollTop = scrollOffset;\n }\n\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](to, target);\n }\n\n return;\n }\n\n /*\r\n * Animate scrolling\r\n */\n\n _animateScroll2.default.animateTopScroll(scrollOffset, props, to, target);\n }\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2Nyb2xsL21vZHVsZXMvbWl4aW5zL3Njcm9sbGVyLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQzs7QUFFRixvREFBb0QsZ0JBQWdCLHNCQUFzQixPQUFPLDJCQUEyQiwwQkFBMEIseURBQXlELGlDQUFpQzs7QUFFaFAsYUFBYSxtQkFBTyxDQUFDLG9FQUFTOztBQUU5Qjs7QUFFQSxxQkFBcUIsbUJBQU8sQ0FBQyxzRkFBa0I7O0FBRS9DOztBQUVBLG9CQUFvQixtQkFBTyxDQUFDLG9GQUFpQjs7QUFFN0M7O0FBRUEsdUNBQXVDLHVDQUF1Qzs7QUFFOUU7QUFDQTs7QUFFQSxrQkFBZTs7QUFFZjtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0EsR0FBRzs7QUFFSDs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSx1QkFBdUIsV0FBVyxpQkFBaUI7O0FBRW5EO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXNjcm9sbC9tb2R1bGVzL21peGlucy9zY3JvbGxlci5qcz9hMzc3Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcblxudmFyIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTtcblxudmFyIF91dGlscyA9IHJlcXVpcmUoJy4vdXRpbHMnKTtcblxudmFyIF91dGlsczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF91dGlscyk7XG5cbnZhciBfYW5pbWF0ZVNjcm9sbCA9IHJlcXVpcmUoJy4vYW5pbWF0ZS1zY3JvbGwnKTtcblxudmFyIF9hbmltYXRlU2Nyb2xsMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2FuaW1hdGVTY3JvbGwpO1xuXG52YXIgX3Njcm9sbEV2ZW50cyA9IHJlcXVpcmUoJy4vc2Nyb2xsLWV2ZW50cycpO1xuXG52YXIgX3Njcm9sbEV2ZW50czIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9zY3JvbGxFdmVudHMpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG52YXIgX19tYXBwZWQgPSB7fTtcbnZhciBfX2FjdGl2ZUxpbmsgPSB2b2lkIDA7XG5cbmV4cG9ydHMuZGVmYXVsdCA9IHtcblxuICB1bm1vdW50OiBmdW5jdGlvbiB1bm1vdW50KCkge1xuICAgIF9fbWFwcGVkID0ge307XG4gIH0sXG5cbiAgcmVnaXN0ZXI6IGZ1bmN0aW9uIHJlZ2lzdGVyKG5hbWUsIGVsZW1lbnQpIHtcbiAgICBfX21hcHBlZFtuYW1lXSA9IGVsZW1lbnQ7XG4gIH0sXG5cbiAgdW5yZWdpc3RlcjogZnVuY3Rpb24gdW5yZWdpc3RlcihuYW1lKSB7XG4gICAgZGVsZXRlIF9fbWFwcGVkW25hbWVdO1xuICB9LFxuXG4gIGdldDogZnVuY3Rpb24gZ2V0KG5hbWUpIHtcbiAgICByZXR1cm4gX19tYXBwZWRbbmFtZV0gfHwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobmFtZSkgfHwgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUobmFtZSlbMF0gfHwgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShuYW1lKVswXTtcbiAgfSxcblxuICBzZXRBY3RpdmVMaW5rOiBmdW5jdGlvbiBzZXRBY3RpdmVMaW5rKGxpbmspIHtcbiAgICByZXR1cm4gX19hY3RpdmVMaW5rID0gbGluaztcbiAgfSxcblxuICBnZXRBY3RpdmVMaW5rOiBmdW5jdGlvbiBnZXRBY3RpdmVMaW5rKCkge1xuICAgIHJldHVybiBfX2FjdGl2ZUxpbms7XG4gIH0sXG5cbiAgc2Nyb2xsVG86IGZ1bmN0aW9uIHNjcm9sbFRvKHRvLCBwcm9wcykge1xuXG4gICAgdmFyIHRhcmdldCA9IHRoaXMuZ2V0KHRvKTtcblxuICAgIGlmICghdGFyZ2V0KSB7XG4gICAgICBjb25zb2xlLndhcm4oXCJ0YXJnZXQgRWxlbWVudCBub3QgZm91bmRcIik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcHJvcHMgPSBfZXh0ZW5kcyh7fSwgcHJvcHMsIHsgYWJzb2x1dGU6IGZhbHNlIH0pO1xuXG4gICAgdmFyIGNvbnRhaW5lcklkID0gcHJvcHMuY29udGFpbmVySWQ7XG4gICAgdmFyIGNvbnRhaW5lciA9IHByb3BzLmNvbnRhaW5lcjtcblxuICAgIHZhciBjb250YWluZXJFbGVtZW50ID0gdm9pZCAwO1xuICAgIGlmIChjb250YWluZXJJZCkge1xuICAgICAgY29udGFpbmVyRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGNvbnRhaW5lcklkKTtcbiAgICB9IGVsc2UgaWYgKGNvbnRhaW5lciAmJiBjb250YWluZXIubm9kZVR5cGUpIHtcbiAgICAgIGNvbnRhaW5lckVsZW1lbnQgPSBjb250YWluZXI7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRhaW5lckVsZW1lbnQgPSBkb2N1bWVudDtcbiAgICB9XG5cbiAgICBwcm9wcy5hYnNvbHV0ZSA9IHRydWU7XG5cbiAgICB2YXIgaG9yaXpvbnRhbCA9IHByb3BzLmhvcml6b250YWw7XG4gICAgdmFyIHNjcm9sbE9mZnNldCA9IF91dGlsczIuZGVmYXVsdC5zY3JvbGxPZmZzZXQoY29udGFpbmVyRWxlbWVudCwgdGFyZ2V0LCBob3Jpem9udGFsKSArIChwcm9wcy5vZmZzZXQgfHwgMCk7XG5cbiAgICAvKlxyXG4gICAgICogaWYgYW5pbWF0ZSBpcyBub3QgcHJvdmlkZWQganVzdCBzY3JvbGwgaW50byB0aGUgdmlld1xyXG4gICAgICovXG4gICAgaWYgKCFwcm9wcy5zbW9vdGgpIHtcbiAgICAgIGlmIChfc2Nyb2xsRXZlbnRzMi5kZWZhdWx0LnJlZ2lzdGVyZWRbJ2JlZ2luJ10pIHtcbiAgICAgICAgX3Njcm9sbEV2ZW50czIuZGVmYXVsdC5yZWdpc3RlcmVkWydiZWdpbiddKHRvLCB0YXJnZXQpO1xuICAgICAgfVxuXG4gICAgICBpZiAoY29udGFpbmVyRWxlbWVudCA9PT0gZG9jdW1lbnQpIHtcbiAgICAgICAgaWYgKHByb3BzLmhvcml6b250YWwpIHtcbiAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oc2Nyb2xsT2Zmc2V0LCAwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgc2Nyb2xsT2Zmc2V0KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29udGFpbmVyRWxlbWVudC5zY3JvbGxUb3AgPSBzY3JvbGxPZmZzZXQ7XG4gICAgICB9XG5cbiAgICAgIGlmIChfc2Nyb2xsRXZlbnRzMi5kZWZhdWx0LnJlZ2lzdGVyZWRbJ2VuZCddKSB7XG4gICAgICAgIF9zY3JvbGxFdmVudHMyLmRlZmF1bHQucmVnaXN0ZXJlZFsnZW5kJ10odG8sIHRhcmdldCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvKlxyXG4gICAgICogQW5pbWF0ZSBzY3JvbGxpbmdcclxuICAgICAqL1xuXG4gICAgX2FuaW1hdGVTY3JvbGwyLmRlZmF1bHQuYW5pbWF0ZVRvcFNjcm9sbChzY3JvbGxPZmZzZXQsIHByb3BzLCB0bywgdGFyZ2V0KTtcbiAgfVxufTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-scroll/modules/mixins/scroller.js\n"); + +/***/ }), + +/***/ "./node_modules/react-scroll/modules/mixins/smooth.js": +/*!************************************************************!*\ + !*** ./node_modules/react-scroll/modules/mixins/smooth.js ***! + \************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = {\n /*\r\n * https://github.com/oblador/angular-scroll (duScrollDefaultEasing)\r\n */\n defaultEasing: function defaultEasing(x) {\n if (x < 0.5) {\n return Math.pow(x * 2, 2) / 2;\n }\n return 1 - Math.pow((1 - x) * 2, 2) / 2;\n },\n /*\r\n * https://gist.github.com/gre/1650294\r\n */\n // no easing, no acceleration\n linear: function linear(x) {\n return x;\n },\n // accelerating from zero velocity\n easeInQuad: function easeInQuad(x) {\n return x * x;\n },\n // decelerating to zero velocity\n easeOutQuad: function easeOutQuad(x) {\n return x * (2 - x);\n },\n // acceleration until halfway, then deceleration\n easeInOutQuad: function easeInOutQuad(x) {\n return x < .5 ? 2 * x * x : -1 + (4 - 2 * x) * x;\n },\n // accelerating from zero velocity \n easeInCubic: function easeInCubic(x) {\n return x * x * x;\n },\n // decelerating to zero velocity π\n easeOutCubic: function easeOutCubic(x) {\n return --x * x * x + 1;\n },\n // acceleration until halfway, then deceleration \n easeInOutCubic: function easeInOutCubic(x) {\n return x < .5 ? 4 * x * x * x : (x - 1) * (2 * x - 2) * (2 * x - 2) + 1;\n },\n // accelerating from zero velocity \n easeInQuart: function easeInQuart(x) {\n return x * x * x * x;\n },\n // decelerating to zero velocity \n easeOutQuart: function easeOutQuart(x) {\n return 1 - --x * x * x * x;\n },\n // acceleration until halfway, then deceleration\n easeInOutQuart: function easeInOutQuart(x) {\n return x < .5 ? 8 * x * x * x * x : 1 - 8 * --x * x * x * x;\n },\n // accelerating from zero velocity\n easeInQuint: function easeInQuint(x) {\n return x * x * x * x * x;\n },\n // decelerating to zero velocity\n easeOutQuint: function easeOutQuint(x) {\n return 1 + --x * x * x * x * x;\n },\n // acceleration until halfway, then deceleration \n easeInOutQuint: function easeInOutQuint(x) {\n return x < .5 ? 16 * x * x * x * x * x : 1 + 16 * --x * x * x * x * x;\n }\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2Nyb2xsL21vZHVsZXMvbWl4aW5zL3Ntb290aC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixrQkFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2Nyb2xsL21vZHVsZXMvbWl4aW5zL3Ntb290aC5qcz82NzUyIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0ge1xuICAvKlxyXG4gICAqIGh0dHBzOi8vZ2l0aHViLmNvbS9vYmxhZG9yL2FuZ3VsYXItc2Nyb2xsIChkdVNjcm9sbERlZmF1bHRFYXNpbmcpXHJcbiAgICovXG4gIGRlZmF1bHRFYXNpbmc6IGZ1bmN0aW9uIGRlZmF1bHRFYXNpbmcoeCkge1xuICAgIGlmICh4IDwgMC41KSB7XG4gICAgICByZXR1cm4gTWF0aC5wb3coeCAqIDIsIDIpIC8gMjtcbiAgICB9XG4gICAgcmV0dXJuIDEgLSBNYXRoLnBvdygoMSAtIHgpICogMiwgMikgLyAyO1xuICB9LFxuICAvKlxyXG4gICAqIGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2dyZS8xNjUwMjk0XHJcbiAgICovXG4gIC8vIG5vIGVhc2luZywgbm8gYWNjZWxlcmF0aW9uXG4gIGxpbmVhcjogZnVuY3Rpb24gbGluZWFyKHgpIHtcbiAgICByZXR1cm4geDtcbiAgfSxcbiAgLy8gYWNjZWxlcmF0aW5nIGZyb20gemVybyB2ZWxvY2l0eVxuICBlYXNlSW5RdWFkOiBmdW5jdGlvbiBlYXNlSW5RdWFkKHgpIHtcbiAgICByZXR1cm4geCAqIHg7XG4gIH0sXG4gIC8vIGRlY2VsZXJhdGluZyB0byB6ZXJvIHZlbG9jaXR5XG4gIGVhc2VPdXRRdWFkOiBmdW5jdGlvbiBlYXNlT3V0UXVhZCh4KSB7XG4gICAgcmV0dXJuIHggKiAoMiAtIHgpO1xuICB9LFxuICAvLyBhY2NlbGVyYXRpb24gdW50aWwgaGFsZndheSwgdGhlbiBkZWNlbGVyYXRpb25cbiAgZWFzZUluT3V0UXVhZDogZnVuY3Rpb24gZWFzZUluT3V0UXVhZCh4KSB7XG4gICAgcmV0dXJuIHggPCAuNSA/IDIgKiB4ICogeCA6IC0xICsgKDQgLSAyICogeCkgKiB4O1xuICB9LFxuICAvLyBhY2NlbGVyYXRpbmcgZnJvbSB6ZXJvIHZlbG9jaXR5IFxuICBlYXNlSW5DdWJpYzogZnVuY3Rpb24gZWFzZUluQ3ViaWMoeCkge1xuICAgIHJldHVybiB4ICogeCAqIHg7XG4gIH0sXG4gIC8vIGRlY2VsZXJhdGluZyB0byB6ZXJvIHZlbG9jaXR5IM+AXG4gIGVhc2VPdXRDdWJpYzogZnVuY3Rpb24gZWFzZU91dEN1YmljKHgpIHtcbiAgICByZXR1cm4gLS14ICogeCAqIHggKyAxO1xuICB9LFxuICAvLyBhY2NlbGVyYXRpb24gdW50aWwgaGFsZndheSwgdGhlbiBkZWNlbGVyYXRpb24gXG4gIGVhc2VJbk91dEN1YmljOiBmdW5jdGlvbiBlYXNlSW5PdXRDdWJpYyh4KSB7XG4gICAgcmV0dXJuIHggPCAuNSA/IDQgKiB4ICogeCAqIHggOiAoeCAtIDEpICogKDIgKiB4IC0gMikgKiAoMiAqIHggLSAyKSArIDE7XG4gIH0sXG4gIC8vIGFjY2VsZXJhdGluZyBmcm9tIHplcm8gdmVsb2NpdHkgXG4gIGVhc2VJblF1YXJ0OiBmdW5jdGlvbiBlYXNlSW5RdWFydCh4KSB7XG4gICAgcmV0dXJuIHggKiB4ICogeCAqIHg7XG4gIH0sXG4gIC8vIGRlY2VsZXJhdGluZyB0byB6ZXJvIHZlbG9jaXR5IFxuICBlYXNlT3V0UXVhcnQ6IGZ1bmN0aW9uIGVhc2VPdXRRdWFydCh4KSB7XG4gICAgcmV0dXJuIDEgLSAtLXggKiB4ICogeCAqIHg7XG4gIH0sXG4gIC8vIGFjY2VsZXJhdGlvbiB1bnRpbCBoYWxmd2F5LCB0aGVuIGRlY2VsZXJhdGlvblxuICBlYXNlSW5PdXRRdWFydDogZnVuY3Rpb24gZWFzZUluT3V0UXVhcnQoeCkge1xuICAgIHJldHVybiB4IDwgLjUgPyA4ICogeCAqIHggKiB4ICogeCA6IDEgLSA4ICogLS14ICogeCAqIHggKiB4O1xuICB9LFxuICAvLyBhY2NlbGVyYXRpbmcgZnJvbSB6ZXJvIHZlbG9jaXR5XG4gIGVhc2VJblF1aW50OiBmdW5jdGlvbiBlYXNlSW5RdWludCh4KSB7XG4gICAgcmV0dXJuIHggKiB4ICogeCAqIHggKiB4O1xuICB9LFxuICAvLyBkZWNlbGVyYXRpbmcgdG8gemVybyB2ZWxvY2l0eVxuICBlYXNlT3V0UXVpbnQ6IGZ1bmN0aW9uIGVhc2VPdXRRdWludCh4KSB7XG4gICAgcmV0dXJuIDEgKyAtLXggKiB4ICogeCAqIHggKiB4O1xuICB9LFxuICAvLyBhY2NlbGVyYXRpb24gdW50aWwgaGFsZndheSwgdGhlbiBkZWNlbGVyYXRpb24gXG4gIGVhc2VJbk91dFF1aW50OiBmdW5jdGlvbiBlYXNlSW5PdXRRdWludCh4KSB7XG4gICAgcmV0dXJuIHggPCAuNSA/IDE2ICogeCAqIHggKiB4ICogeCAqIHggOiAxICsgMTYgKiAtLXggKiB4ICogeCAqIHggKiB4O1xuICB9XG59OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-scroll/modules/mixins/smooth.js\n"); + +/***/ }), + +/***/ "./node_modules/react-scroll/modules/mixins/utils.js": +/*!***********************************************************!*\ + !*** ./node_modules/react-scroll/modules/mixins/utils.js ***! + \***********************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nvar updateHash = function updateHash(hash, historyUpdate) {\n var hashVal = hash.indexOf(\"#\") === 0 ? hash.substring(1) : hash;\n var hashToUpdate = hashVal ? \"#\" + hashVal : \"\";\n var curLoc = window && window.location;\n var urlToPush = hashToUpdate ? curLoc.pathname + curLoc.search + hashToUpdate : curLoc.pathname + curLoc.search;\n historyUpdate ? history.pushState(null, \"\", urlToPush) : history.replaceState(null, \"\", urlToPush);\n};\n\nvar getHash = function getHash() {\n return window.location.hash.replace(/^#/, \"\");\n};\n\nvar filterElementInContainer = function filterElementInContainer(container) {\n return function (element) {\n return container.contains ? container != element && container.contains(element) : !!(container.compareDocumentPosition(element) & 16);\n };\n};\n\nvar isPositioned = function isPositioned(element) {\n return getComputedStyle(element).position !== \"static\";\n};\n\nvar getElementOffsetInfoUntil = function getElementOffsetInfoUntil(element, predicate) {\n var offsetTop = element.offsetTop;\n var currentOffsetParent = element.offsetParent;\n\n while (currentOffsetParent && !predicate(currentOffsetParent)) {\n offsetTop += currentOffsetParent.offsetTop;\n currentOffsetParent = currentOffsetParent.offsetParent;\n }\n\n return { offsetTop: offsetTop, offsetParent: currentOffsetParent };\n};\n\nvar scrollOffset = function scrollOffset(c, t, horizontal) {\n if (horizontal) {\n return c === document ? t.getBoundingClientRect().left + (window.scrollX || window.pageXOffset) : getComputedStyle(c).position !== \"static\" ? t.offsetLeft : t.offsetLeft - c.offsetLeft;\n } else {\n if (c === document) {\n return t.getBoundingClientRect().top + (window.scrollY || window.pageYOffset);\n }\n\n // The offsetParent of an element, according to MDN, is its nearest positioned\n // (an element whose position is anything other than static) ancestor. The offsetTop\n // of an element is taken with respect to its offsetParent which may not neccessarily\n // be its parentElement except the parent itself is positioned.\n\n // So if containerElement is positioned, then it must be an offsetParent somewhere\n // If it happens that targetElement is a descendant of the containerElement, and there\n // is not intermediate positioned element between the two of them, i.e.\n // targetElement\"s offsetParent is the same as the containerElement, then the\n // distance between the two will be the offsetTop of the targetElement.\n // If, on the other hand, there are intermediate positioned elements between the\n // two entities, the distance between the targetElement and the containerElement\n // will be the accumulation of the offsetTop of the element and that of its\n // subsequent offsetParent until the containerElement is reached, since it\n // will also be an offsetParent at some point due to the fact that it is positioned.\n\n // If the containerElement is not positioned, then it can\"t be an offsetParent,\n // which means that the offsetTop of the targetElement would not be with respect to it.\n // However, if the two of them happen to have the same offsetParent, then\n // the distance between them will be the difference between their offsetTop\n // since they are both taken with respect to the same entity.\n // The last resort would be to accumulate their offsetTop until a common\n // offsetParent is reached (usually the document) and taking the difference\n // between the accumulated offsetTops\n\n if (isPositioned(c)) {\n if (t.offsetParent !== c) {\n var isContainerElementOrDocument = function isContainerElementOrDocument(e) {\n return e === c || e === document;\n };\n\n var _getElementOffsetInfo = getElementOffsetInfoUntil(t, isContainerElementOrDocument),\n offsetTop = _getElementOffsetInfo.offsetTop,\n offsetParent = _getElementOffsetInfo.offsetParent;\n\n if (offsetParent !== c) {\n throw new Error(\"Seems containerElement is not an ancestor of the Element\");\n }\n\n return offsetTop;\n }\n\n return t.offsetTop;\n }\n\n if (t.offsetParent === c.offsetParent) {\n return t.offsetTop - c.offsetTop;\n }\n\n var isDocument = function isDocument(e) {\n return e === document;\n };\n return getElementOffsetInfoUntil(t, isDocument).offsetTop - getElementOffsetInfoUntil(c, isDocument).offsetTop;\n }\n};\n\nexports[\"default\"] = {\n updateHash: updateHash,\n getHash: getHash,\n filterElementInContainer: filterElementInContainer,\n scrollOffset: scrollOffset\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2Nyb2xsL21vZHVsZXMvbWl4aW5zL3V0aWxzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsV0FBVztBQUNYOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsa0JBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zY3JvbGwvbW9kdWxlcy9taXhpbnMvdXRpbHMuanM/ZjY3MyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbnZhciB1cGRhdGVIYXNoID0gZnVuY3Rpb24gdXBkYXRlSGFzaChoYXNoLCBoaXN0b3J5VXBkYXRlKSB7XG4gIHZhciBoYXNoVmFsID0gaGFzaC5pbmRleE9mKFwiI1wiKSA9PT0gMCA/IGhhc2guc3Vic3RyaW5nKDEpIDogaGFzaDtcbiAgdmFyIGhhc2hUb1VwZGF0ZSA9IGhhc2hWYWwgPyBcIiNcIiArIGhhc2hWYWwgOiBcIlwiO1xuICB2YXIgY3VyTG9jID0gd2luZG93ICYmIHdpbmRvdy5sb2NhdGlvbjtcbiAgdmFyIHVybFRvUHVzaCA9IGhhc2hUb1VwZGF0ZSA/IGN1ckxvYy5wYXRobmFtZSArIGN1ckxvYy5zZWFyY2ggKyBoYXNoVG9VcGRhdGUgOiBjdXJMb2MucGF0aG5hbWUgKyBjdXJMb2Muc2VhcmNoO1xuICBoaXN0b3J5VXBkYXRlID8gaGlzdG9yeS5wdXNoU3RhdGUobnVsbCwgXCJcIiwgdXJsVG9QdXNoKSA6IGhpc3RvcnkucmVwbGFjZVN0YXRlKG51bGwsIFwiXCIsIHVybFRvUHVzaCk7XG59O1xuXG52YXIgZ2V0SGFzaCA9IGZ1bmN0aW9uIGdldEhhc2goKSB7XG4gIHJldHVybiB3aW5kb3cubG9jYXRpb24uaGFzaC5yZXBsYWNlKC9eIy8sIFwiXCIpO1xufTtcblxudmFyIGZpbHRlckVsZW1lbnRJbkNvbnRhaW5lciA9IGZ1bmN0aW9uIGZpbHRlckVsZW1lbnRJbkNvbnRhaW5lcihjb250YWluZXIpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gICAgcmV0dXJuIGNvbnRhaW5lci5jb250YWlucyA/IGNvbnRhaW5lciAhPSBlbGVtZW50ICYmIGNvbnRhaW5lci5jb250YWlucyhlbGVtZW50KSA6ICEhKGNvbnRhaW5lci5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihlbGVtZW50KSAmIDE2KTtcbiAgfTtcbn07XG5cbnZhciBpc1Bvc2l0aW9uZWQgPSBmdW5jdGlvbiBpc1Bvc2l0aW9uZWQoZWxlbWVudCkge1xuICByZXR1cm4gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5wb3NpdGlvbiAhPT0gXCJzdGF0aWNcIjtcbn07XG5cbnZhciBnZXRFbGVtZW50T2Zmc2V0SW5mb1VudGlsID0gZnVuY3Rpb24gZ2V0RWxlbWVudE9mZnNldEluZm9VbnRpbChlbGVtZW50LCBwcmVkaWNhdGUpIHtcbiAgdmFyIG9mZnNldFRvcCA9IGVsZW1lbnQub2Zmc2V0VG9wO1xuICB2YXIgY3VycmVudE9mZnNldFBhcmVudCA9IGVsZW1lbnQub2Zmc2V0UGFyZW50O1xuXG4gIHdoaWxlIChjdXJyZW50T2Zmc2V0UGFyZW50ICYmICFwcmVkaWNhdGUoY3VycmVudE9mZnNldFBhcmVudCkpIHtcbiAgICBvZmZzZXRUb3AgKz0gY3VycmVudE9mZnNldFBhcmVudC5vZmZzZXRUb3A7XG4gICAgY3VycmVudE9mZnNldFBhcmVudCA9IGN1cnJlbnRPZmZzZXRQYXJlbnQub2Zmc2V0UGFyZW50O1xuICB9XG5cbiAgcmV0dXJuIHsgb2Zmc2V0VG9wOiBvZmZzZXRUb3AsIG9mZnNldFBhcmVudDogY3VycmVudE9mZnNldFBhcmVudCB9O1xufTtcblxudmFyIHNjcm9sbE9mZnNldCA9IGZ1bmN0aW9uIHNjcm9sbE9mZnNldChjLCB0LCBob3Jpem9udGFsKSB7XG4gIGlmIChob3Jpem9udGFsKSB7XG4gICAgcmV0dXJuIGMgPT09IGRvY3VtZW50ID8gdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0ICsgKHdpbmRvdy5zY3JvbGxYIHx8IHdpbmRvdy5wYWdlWE9mZnNldCkgOiBnZXRDb21wdXRlZFN0eWxlKGMpLnBvc2l0aW9uICE9PSBcInN0YXRpY1wiID8gdC5vZmZzZXRMZWZ0IDogdC5vZmZzZXRMZWZ0IC0gYy5vZmZzZXRMZWZ0O1xuICB9IGVsc2Uge1xuICAgIGlmIChjID09PSBkb2N1bWVudCkge1xuICAgICAgcmV0dXJuIHQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wICsgKHdpbmRvdy5zY3JvbGxZIHx8IHdpbmRvdy5wYWdlWU9mZnNldCk7XG4gICAgfVxuXG4gICAgLy8gVGhlIG9mZnNldFBhcmVudCBvZiBhbiBlbGVtZW50LCBhY2NvcmRpbmcgdG8gTUROLCBpcyBpdHMgbmVhcmVzdCBwb3NpdGlvbmVkXG4gICAgLy8gKGFuIGVsZW1lbnQgd2hvc2UgcG9zaXRpb24gaXMgYW55dGhpbmcgb3RoZXIgdGhhbiBzdGF0aWMpIGFuY2VzdG9yLiBUaGUgb2Zmc2V0VG9wXG4gICAgLy8gb2YgYW4gZWxlbWVudCBpcyB0YWtlbiB3aXRoIHJlc3BlY3QgdG8gaXRzIG9mZnNldFBhcmVudCB3aGljaCBtYXkgbm90IG5lY2Nlc3NhcmlseVxuICAgIC8vIGJlIGl0cyBwYXJlbnRFbGVtZW50IGV4Y2VwdCB0aGUgcGFyZW50IGl0c2VsZiBpcyBwb3NpdGlvbmVkLlxuXG4gICAgLy8gU28gaWYgY29udGFpbmVyRWxlbWVudCBpcyBwb3NpdGlvbmVkLCB0aGVuIGl0IG11c3QgYmUgYW4gb2Zmc2V0UGFyZW50IHNvbWV3aGVyZVxuICAgIC8vIElmIGl0IGhhcHBlbnMgdGhhdCB0YXJnZXRFbGVtZW50IGlzIGEgZGVzY2VuZGFudCBvZiB0aGUgY29udGFpbmVyRWxlbWVudCwgYW5kIHRoZXJlXG4gICAgLy8gaXMgbm90IGludGVybWVkaWF0ZSBwb3NpdGlvbmVkIGVsZW1lbnQgYmV0d2VlbiB0aGUgdHdvIG9mIHRoZW0sIGkuZS5cbiAgICAvLyB0YXJnZXRFbGVtZW50XCJzIG9mZnNldFBhcmVudCBpcyB0aGUgc2FtZSBhcyB0aGUgY29udGFpbmVyRWxlbWVudCwgdGhlbiB0aGVcbiAgICAvLyBkaXN0YW5jZSBiZXR3ZWVuIHRoZSB0d28gd2lsbCBiZSB0aGUgb2Zmc2V0VG9wIG9mIHRoZSB0YXJnZXRFbGVtZW50LlxuICAgIC8vIElmLCBvbiB0aGUgb3RoZXIgaGFuZCwgdGhlcmUgYXJlIGludGVybWVkaWF0ZSBwb3NpdGlvbmVkIGVsZW1lbnRzIGJldHdlZW4gdGhlXG4gICAgLy8gdHdvIGVudGl0aWVzLCB0aGUgZGlzdGFuY2UgYmV0d2VlbiB0aGUgdGFyZ2V0RWxlbWVudCBhbmQgdGhlIGNvbnRhaW5lckVsZW1lbnRcbiAgICAvLyB3aWxsIGJlIHRoZSBhY2N1bXVsYXRpb24gb2YgdGhlIG9mZnNldFRvcCBvZiB0aGUgZWxlbWVudCBhbmQgdGhhdCBvZiBpdHNcbiAgICAvLyBzdWJzZXF1ZW50IG9mZnNldFBhcmVudCB1bnRpbCB0aGUgY29udGFpbmVyRWxlbWVudCBpcyByZWFjaGVkLCBzaW5jZSBpdFxuICAgIC8vIHdpbGwgYWxzbyBiZSBhbiBvZmZzZXRQYXJlbnQgYXQgc29tZSBwb2ludCBkdWUgdG8gdGhlIGZhY3QgdGhhdCBpdCBpcyBwb3NpdGlvbmVkLlxuXG4gICAgLy8gSWYgdGhlIGNvbnRhaW5lckVsZW1lbnQgaXMgbm90IHBvc2l0aW9uZWQsIHRoZW4gaXQgY2FuXCJ0IGJlIGFuIG9mZnNldFBhcmVudCxcbiAgICAvLyB3aGljaCBtZWFucyB0aGF0IHRoZSBvZmZzZXRUb3Agb2YgdGhlIHRhcmdldEVsZW1lbnQgd291bGQgbm90IGJlIHdpdGggcmVzcGVjdCB0byBpdC5cbiAgICAvLyBIb3dldmVyLCBpZiB0aGUgdHdvIG9mIHRoZW0gaGFwcGVuIHRvIGhhdmUgdGhlIHNhbWUgb2Zmc2V0UGFyZW50LCB0aGVuXG4gICAgLy8gdGhlIGRpc3RhbmNlIGJldHdlZW4gdGhlbSB3aWxsIGJlIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlaXIgb2Zmc2V0VG9wXG4gICAgLy8gc2luY2UgdGhleSBhcmUgYm90aCB0YWtlbiB3aXRoIHJlc3BlY3QgdG8gdGhlIHNhbWUgZW50aXR5LlxuICAgIC8vIFRoZSBsYXN0IHJlc29ydCB3b3VsZCBiZSB0byBhY2N1bXVsYXRlIHRoZWlyIG9mZnNldFRvcCB1bnRpbCBhIGNvbW1vblxuICAgIC8vIG9mZnNldFBhcmVudCBpcyByZWFjaGVkICh1c3VhbGx5IHRoZSBkb2N1bWVudCkgYW5kIHRha2luZyB0aGUgZGlmZmVyZW5jZVxuICAgIC8vIGJldHdlZW4gdGhlIGFjY3VtdWxhdGVkIG9mZnNldFRvcHNcblxuICAgIGlmIChpc1Bvc2l0aW9uZWQoYykpIHtcbiAgICAgIGlmICh0Lm9mZnNldFBhcmVudCAhPT0gYykge1xuICAgICAgICB2YXIgaXNDb250YWluZXJFbGVtZW50T3JEb2N1bWVudCA9IGZ1bmN0aW9uIGlzQ29udGFpbmVyRWxlbWVudE9yRG9jdW1lbnQoZSkge1xuICAgICAgICAgIHJldHVybiBlID09PSBjIHx8IGUgPT09IGRvY3VtZW50O1xuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBfZ2V0RWxlbWVudE9mZnNldEluZm8gPSBnZXRFbGVtZW50T2Zmc2V0SW5mb1VudGlsKHQsIGlzQ29udGFpbmVyRWxlbWVudE9yRG9jdW1lbnQpLFxuICAgICAgICAgICAgb2Zmc2V0VG9wID0gX2dldEVsZW1lbnRPZmZzZXRJbmZvLm9mZnNldFRvcCxcbiAgICAgICAgICAgIG9mZnNldFBhcmVudCA9IF9nZXRFbGVtZW50T2Zmc2V0SW5mby5vZmZzZXRQYXJlbnQ7XG5cbiAgICAgICAgaWYgKG9mZnNldFBhcmVudCAhPT0gYykge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlNlZW1zIGNvbnRhaW5lckVsZW1lbnQgaXMgbm90IGFuIGFuY2VzdG9yIG9mIHRoZSBFbGVtZW50XCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG9mZnNldFRvcDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHQub2Zmc2V0VG9wO1xuICAgIH1cblxuICAgIGlmICh0Lm9mZnNldFBhcmVudCA9PT0gYy5vZmZzZXRQYXJlbnQpIHtcbiAgICAgIHJldHVybiB0Lm9mZnNldFRvcCAtIGMub2Zmc2V0VG9wO1xuICAgIH1cblxuICAgIHZhciBpc0RvY3VtZW50ID0gZnVuY3Rpb24gaXNEb2N1bWVudChlKSB7XG4gICAgICByZXR1cm4gZSA9PT0gZG9jdW1lbnQ7XG4gICAgfTtcbiAgICByZXR1cm4gZ2V0RWxlbWVudE9mZnNldEluZm9VbnRpbCh0LCBpc0RvY3VtZW50KS5vZmZzZXRUb3AgLSBnZXRFbGVtZW50T2Zmc2V0SW5mb1VudGlsKGMsIGlzRG9jdW1lbnQpLm9mZnNldFRvcDtcbiAgfVxufTtcblxuZXhwb3J0cy5kZWZhdWx0ID0ge1xuICB1cGRhdGVIYXNoOiB1cGRhdGVIYXNoLFxuICBnZXRIYXNoOiBnZXRIYXNoLFxuICBmaWx0ZXJFbGVtZW50SW5Db250YWluZXI6IGZpbHRlckVsZW1lbnRJbkNvbnRhaW5lcixcbiAgc2Nyb2xsT2Zmc2V0OiBzY3JvbGxPZmZzZXRcbn07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/react-scroll/modules/mixins/utils.js\n"); + +/***/ }), + +/***/ "./node_modules/tiny-warning/dist/tiny-warning.esm.js": +/*!************************************************************!*\ + !*** ./node_modules/tiny-warning/dist/tiny-warning.esm.js ***! + \************************************************************/ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\nvar isProduction = \"development\" === 'production';\nfunction warning(condition, message) {\n if (!isProduction) {\n if (condition) {\n return;\n }\n\n var text = \"Warning: \" + message;\n\n if (typeof console !== 'undefined') {\n console.warn(text);\n }\n\n try {\n throw Error(text);\n } catch (x) {}\n }\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (warning);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdGlueS13YXJuaW5nL2Rpc3QvdGlueS13YXJuaW5nLmVzbS5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUEsbUJBQW1CLGFBQW9CO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7QUFFQSwrREFBZSxPQUFPLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3Rpbnktd2FybmluZy9kaXN0L3Rpbnktd2FybmluZy5lc20uanM/NGU0MiJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgaXNQcm9kdWN0aW9uID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJztcbmZ1bmN0aW9uIHdhcm5pbmcoY29uZGl0aW9uLCBtZXNzYWdlKSB7XG4gIGlmICghaXNQcm9kdWN0aW9uKSB7XG4gICAgaWYgKGNvbmRpdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciB0ZXh0ID0gXCJXYXJuaW5nOiBcIiArIG1lc3NhZ2U7XG5cbiAgICBpZiAodHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBjb25zb2xlLndhcm4odGV4dCk7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHRocm93IEVycm9yKHRleHQpO1xuICAgIH0gY2F0Y2ggKHgpIHt9XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgd2FybmluZztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tiny-warning/dist/tiny-warning.esm.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js ***! + \*********************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _asyncToGenerator; }\n/* harmony export */ });\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXN5bmNUb0dlbmVyYXRvci5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsS0FBSztBQUNMO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2FzeW5jVG9HZW5lcmF0b3IuanM/NTc2ZiJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBhc3luY0dlbmVyYXRvclN0ZXAoZ2VuLCByZXNvbHZlLCByZWplY3QsIF9uZXh0LCBfdGhyb3csIGtleSwgYXJnKSB7XG4gIHRyeSB7XG4gICAgdmFyIGluZm8gPSBnZW5ba2V5XShhcmcpO1xuICAgIHZhciB2YWx1ZSA9IGluZm8udmFsdWU7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmVqZWN0KGVycm9yKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoaW5mby5kb25lKSB7XG4gICAgcmVzb2x2ZSh2YWx1ZSk7XG4gIH0gZWxzZSB7XG4gICAgUHJvbWlzZS5yZXNvbHZlKHZhbHVlKS50aGVuKF9uZXh0LCBfdGhyb3cpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9hc3luY1RvR2VuZXJhdG9yKGZuKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzLFxuICAgICAgICBhcmdzID0gYXJndW1lbnRzO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICB2YXIgZ2VuID0gZm4uYXBwbHkoc2VsZiwgYXJncyk7XG5cbiAgICAgIGZ1bmN0aW9uIF9uZXh0KHZhbHVlKSB7XG4gICAgICAgIGFzeW5jR2VuZXJhdG9yU3RlcChnZW4sIHJlc29sdmUsIHJlamVjdCwgX25leHQsIF90aHJvdywgXCJuZXh0XCIsIHZhbHVlKTtcbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gX3Rocm93KGVycikge1xuICAgICAgICBhc3luY0dlbmVyYXRvclN0ZXAoZ2VuLCByZXNvbHZlLCByZWplY3QsIF9uZXh0LCBfdGhyb3csIFwidGhyb3dcIiwgZXJyKTtcbiAgICAgIH1cblxuICAgICAgX25leHQodW5kZWZpbmVkKTtcbiAgICB9KTtcbiAgfTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_DataView.js": +/*!*********************************************!*\ + !*** ./node_modules/lodash-es/_DataView.js ***! + \*********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getNative_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getNative.js */ \"./node_modules/lodash-es/_getNative.js\");\n/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_root.js */ \"./node_modules/lodash-es/_root.js\");\n\n\n\n/* Built-in method references that are verified to be native. */\nvar DataView = (0,_getNative_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_root_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], 'DataView');\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (DataView);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19EYXRhVmlldy5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7QUFBd0M7QUFDVjs7QUFFOUI7QUFDQSxlQUFlLHlEQUFTLENBQUMsZ0RBQUk7O0FBRTdCLCtEQUFlLFFBQVEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19EYXRhVmlldy5qcz9lZTcxIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBnZXROYXRpdmUgZnJvbSAnLi9fZ2V0TmF0aXZlLmpzJztcbmltcG9ydCByb290IGZyb20gJy4vX3Jvb3QuanMnO1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyB0aGF0IGFyZSB2ZXJpZmllZCB0byBiZSBuYXRpdmUuICovXG52YXIgRGF0YVZpZXcgPSBnZXROYXRpdmUocm9vdCwgJ0RhdGFWaWV3Jyk7XG5cbmV4cG9ydCBkZWZhdWx0IERhdGFWaWV3O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_DataView.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_Hash.js": +/*!*****************************************!*\ + !*** ./node_modules/lodash-es/_Hash.js ***! + \*****************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _hashClear_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_hashClear.js */ \"./node_modules/lodash-es/_hashClear.js\");\n/* harmony import */ var _hashDelete_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_hashDelete.js */ \"./node_modules/lodash-es/_hashDelete.js\");\n/* harmony import */ var _hashGet_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_hashGet.js */ \"./node_modules/lodash-es/_hashGet.js\");\n/* harmony import */ var _hashHas_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_hashHas.js */ \"./node_modules/lodash-es/_hashHas.js\");\n/* harmony import */ var _hashSet_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_hashSet.js */ \"./node_modules/lodash-es/_hashSet.js\");\n\n\n\n\n\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = _hashClear_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\nHash.prototype['delete'] = _hashDelete_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\nHash.prototype.get = _hashGet_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\nHash.prototype.has = _hashHas_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"];\nHash.prototype.set = _hashSet_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"];\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Hash);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19IYXNoLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUF3QztBQUNFO0FBQ047QUFDQTtBQUNBOztBQUVwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHVCQUF1QixxREFBUztBQUNoQywyQkFBMkIsc0RBQVU7QUFDckMscUJBQXFCLG1EQUFPO0FBQzVCLHFCQUFxQixtREFBTztBQUM1QixxQkFBcUIsbURBQU87O0FBRTVCLCtEQUFlLElBQUksRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19IYXNoLmpzP2JmZDciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGhhc2hDbGVhciBmcm9tICcuL19oYXNoQ2xlYXIuanMnO1xuaW1wb3J0IGhhc2hEZWxldGUgZnJvbSAnLi9faGFzaERlbGV0ZS5qcyc7XG5pbXBvcnQgaGFzaEdldCBmcm9tICcuL19oYXNoR2V0LmpzJztcbmltcG9ydCBoYXNoSGFzIGZyb20gJy4vX2hhc2hIYXMuanMnO1xuaW1wb3J0IGhhc2hTZXQgZnJvbSAnLi9faGFzaFNldC5qcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGhhc2ggb2JqZWN0LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAY29uc3RydWN0b3JcbiAqIEBwYXJhbSB7QXJyYXl9IFtlbnRyaWVzXSBUaGUga2V5LXZhbHVlIHBhaXJzIHRvIGNhY2hlLlxuICovXG5mdW5jdGlvbiBIYXNoKGVudHJpZXMpIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBlbnRyaWVzID09IG51bGwgPyAwIDogZW50cmllcy5sZW5ndGg7XG5cbiAgdGhpcy5jbGVhcigpO1xuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHZhciBlbnRyeSA9IGVudHJpZXNbaW5kZXhdO1xuICAgIHRoaXMuc2V0KGVudHJ5WzBdLCBlbnRyeVsxXSk7XG4gIH1cbn1cblxuLy8gQWRkIG1ldGhvZHMgdG8gYEhhc2hgLlxuSGFzaC5wcm90b3R5cGUuY2xlYXIgPSBoYXNoQ2xlYXI7XG5IYXNoLnByb3RvdHlwZVsnZGVsZXRlJ10gPSBoYXNoRGVsZXRlO1xuSGFzaC5wcm90b3R5cGUuZ2V0ID0gaGFzaEdldDtcbkhhc2gucHJvdG90eXBlLmhhcyA9IGhhc2hIYXM7XG5IYXNoLnByb3RvdHlwZS5zZXQgPSBoYXNoU2V0O1xuXG5leHBvcnQgZGVmYXVsdCBIYXNoO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_Hash.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_ListCache.js": +/*!**********************************************!*\ + !*** ./node_modules/lodash-es/_ListCache.js ***! + \**********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _listCacheClear_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_listCacheClear.js */ \"./node_modules/lodash-es/_listCacheClear.js\");\n/* harmony import */ var _listCacheDelete_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_listCacheDelete.js */ \"./node_modules/lodash-es/_listCacheDelete.js\");\n/* harmony import */ var _listCacheGet_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_listCacheGet.js */ \"./node_modules/lodash-es/_listCacheGet.js\");\n/* harmony import */ var _listCacheHas_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_listCacheHas.js */ \"./node_modules/lodash-es/_listCacheHas.js\");\n/* harmony import */ var _listCacheSet_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_listCacheSet.js */ \"./node_modules/lodash-es/_listCacheSet.js\");\n\n\n\n\n\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = _listCacheClear_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\nListCache.prototype['delete'] = _listCacheDelete_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\nListCache.prototype.get = _listCacheGet_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\nListCache.prototype.has = _listCacheHas_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"];\nListCache.prototype.set = _listCacheSet_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"];\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (ListCache);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19MaXN0Q2FjaGUuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQWtEO0FBQ0U7QUFDTjtBQUNBO0FBQ0E7O0FBRTlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsNEJBQTRCLDBEQUFjO0FBQzFDLGdDQUFnQywyREFBZTtBQUMvQywwQkFBMEIsd0RBQVk7QUFDdEMsMEJBQTBCLHdEQUFZO0FBQ3RDLDBCQUEwQix3REFBWTs7QUFFdEMsK0RBQWUsU0FBUyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX0xpc3RDYWNoZS5qcz8wOTFmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBsaXN0Q2FjaGVDbGVhciBmcm9tICcuL19saXN0Q2FjaGVDbGVhci5qcyc7XG5pbXBvcnQgbGlzdENhY2hlRGVsZXRlIGZyb20gJy4vX2xpc3RDYWNoZURlbGV0ZS5qcyc7XG5pbXBvcnQgbGlzdENhY2hlR2V0IGZyb20gJy4vX2xpc3RDYWNoZUdldC5qcyc7XG5pbXBvcnQgbGlzdENhY2hlSGFzIGZyb20gJy4vX2xpc3RDYWNoZUhhcy5qcyc7XG5pbXBvcnQgbGlzdENhY2hlU2V0IGZyb20gJy4vX2xpc3RDYWNoZVNldC5qcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBsaXN0IGNhY2hlIG9iamVjdC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQGNvbnN0cnVjdG9yXG4gKiBAcGFyYW0ge0FycmF5fSBbZW50cmllc10gVGhlIGtleS12YWx1ZSBwYWlycyB0byBjYWNoZS5cbiAqL1xuZnVuY3Rpb24gTGlzdENhY2hlKGVudHJpZXMpIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBlbnRyaWVzID09IG51bGwgPyAwIDogZW50cmllcy5sZW5ndGg7XG5cbiAgdGhpcy5jbGVhcigpO1xuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHZhciBlbnRyeSA9IGVudHJpZXNbaW5kZXhdO1xuICAgIHRoaXMuc2V0KGVudHJ5WzBdLCBlbnRyeVsxXSk7XG4gIH1cbn1cblxuLy8gQWRkIG1ldGhvZHMgdG8gYExpc3RDYWNoZWAuXG5MaXN0Q2FjaGUucHJvdG90eXBlLmNsZWFyID0gbGlzdENhY2hlQ2xlYXI7XG5MaXN0Q2FjaGUucHJvdG90eXBlWydkZWxldGUnXSA9IGxpc3RDYWNoZURlbGV0ZTtcbkxpc3RDYWNoZS5wcm90b3R5cGUuZ2V0ID0gbGlzdENhY2hlR2V0O1xuTGlzdENhY2hlLnByb3RvdHlwZS5oYXMgPSBsaXN0Q2FjaGVIYXM7XG5MaXN0Q2FjaGUucHJvdG90eXBlLnNldCA9IGxpc3RDYWNoZVNldDtcblxuZXhwb3J0IGRlZmF1bHQgTGlzdENhY2hlO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_ListCache.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_Map.js": +/*!****************************************!*\ + !*** ./node_modules/lodash-es/_Map.js ***! + \****************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getNative_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getNative.js */ \"./node_modules/lodash-es/_getNative.js\");\n/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_root.js */ \"./node_modules/lodash-es/_root.js\");\n\n\n\n/* Built-in method references that are verified to be native. */\nvar Map = (0,_getNative_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_root_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], 'Map');\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Map);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19NYXAuanMuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQXdDO0FBQ1Y7O0FBRTlCO0FBQ0EsVUFBVSx5REFBUyxDQUFDLGdEQUFJOztBQUV4QiwrREFBZSxHQUFHLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fTWFwLmpzP2Y3YjEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldE5hdGl2ZSBmcm9tICcuL19nZXROYXRpdmUuanMnO1xuaW1wb3J0IHJvb3QgZnJvbSAnLi9fcm9vdC5qcyc7XG5cbi8qIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIHRoYXQgYXJlIHZlcmlmaWVkIHRvIGJlIG5hdGl2ZS4gKi9cbnZhciBNYXAgPSBnZXROYXRpdmUocm9vdCwgJ01hcCcpO1xuXG5leHBvcnQgZGVmYXVsdCBNYXA7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_Map.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_MapCache.js": +/*!*********************************************!*\ + !*** ./node_modules/lodash-es/_MapCache.js ***! + \*********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _mapCacheClear_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_mapCacheClear.js */ \"./node_modules/lodash-es/_mapCacheClear.js\");\n/* harmony import */ var _mapCacheDelete_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_mapCacheDelete.js */ \"./node_modules/lodash-es/_mapCacheDelete.js\");\n/* harmony import */ var _mapCacheGet_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_mapCacheGet.js */ \"./node_modules/lodash-es/_mapCacheGet.js\");\n/* harmony import */ var _mapCacheHas_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_mapCacheHas.js */ \"./node_modules/lodash-es/_mapCacheHas.js\");\n/* harmony import */ var _mapCacheSet_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_mapCacheSet.js */ \"./node_modules/lodash-es/_mapCacheSet.js\");\n\n\n\n\n\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = _mapCacheClear_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\nMapCache.prototype['delete'] = _mapCacheDelete_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\nMapCache.prototype.get = _mapCacheGet_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\nMapCache.prototype.has = _mapCacheHas_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"];\nMapCache.prototype.set = _mapCacheSet_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"];\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (MapCache);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19NYXBDYWNoZS5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBZ0Q7QUFDRTtBQUNOO0FBQ0E7QUFDQTs7QUFFNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSwyQkFBMkIseURBQWE7QUFDeEMsK0JBQStCLDBEQUFjO0FBQzdDLHlCQUF5Qix1REFBVztBQUNwQyx5QkFBeUIsdURBQVc7QUFDcEMseUJBQXlCLHVEQUFXOztBQUVwQywrREFBZSxRQUFRLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fTWFwQ2FjaGUuanM/NWZiZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbWFwQ2FjaGVDbGVhciBmcm9tICcuL19tYXBDYWNoZUNsZWFyLmpzJztcbmltcG9ydCBtYXBDYWNoZURlbGV0ZSBmcm9tICcuL19tYXBDYWNoZURlbGV0ZS5qcyc7XG5pbXBvcnQgbWFwQ2FjaGVHZXQgZnJvbSAnLi9fbWFwQ2FjaGVHZXQuanMnO1xuaW1wb3J0IG1hcENhY2hlSGFzIGZyb20gJy4vX21hcENhY2hlSGFzLmpzJztcbmltcG9ydCBtYXBDYWNoZVNldCBmcm9tICcuL19tYXBDYWNoZVNldC5qcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhIG1hcCBjYWNoZSBvYmplY3QgdG8gc3RvcmUga2V5LXZhbHVlIHBhaXJzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAY29uc3RydWN0b3JcbiAqIEBwYXJhbSB7QXJyYXl9IFtlbnRyaWVzXSBUaGUga2V5LXZhbHVlIHBhaXJzIHRvIGNhY2hlLlxuICovXG5mdW5jdGlvbiBNYXBDYWNoZShlbnRyaWVzKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gZW50cmllcyA9PSBudWxsID8gMCA6IGVudHJpZXMubGVuZ3RoO1xuXG4gIHRoaXMuY2xlYXIoKTtcbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICB2YXIgZW50cnkgPSBlbnRyaWVzW2luZGV4XTtcbiAgICB0aGlzLnNldChlbnRyeVswXSwgZW50cnlbMV0pO1xuICB9XG59XG5cbi8vIEFkZCBtZXRob2RzIHRvIGBNYXBDYWNoZWAuXG5NYXBDYWNoZS5wcm90b3R5cGUuY2xlYXIgPSBtYXBDYWNoZUNsZWFyO1xuTWFwQ2FjaGUucHJvdG90eXBlWydkZWxldGUnXSA9IG1hcENhY2hlRGVsZXRlO1xuTWFwQ2FjaGUucHJvdG90eXBlLmdldCA9IG1hcENhY2hlR2V0O1xuTWFwQ2FjaGUucHJvdG90eXBlLmhhcyA9IG1hcENhY2hlSGFzO1xuTWFwQ2FjaGUucHJvdG90eXBlLnNldCA9IG1hcENhY2hlU2V0O1xuXG5leHBvcnQgZGVmYXVsdCBNYXBDYWNoZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_MapCache.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_Promise.js": +/*!********************************************!*\ + !*** ./node_modules/lodash-es/_Promise.js ***! + \********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getNative_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getNative.js */ \"./node_modules/lodash-es/_getNative.js\");\n/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_root.js */ \"./node_modules/lodash-es/_root.js\");\n\n\n\n/* Built-in method references that are verified to be native. */\nvar Promise = (0,_getNative_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_root_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], 'Promise');\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Promise);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19Qcm9taXNlLmpzLmpzIiwibWFwcGluZ3MiOiI7OztBQUF3QztBQUNWOztBQUU5QjtBQUNBLGNBQWMseURBQVMsQ0FBQyxnREFBSTs7QUFFNUIsK0RBQWUsT0FBTyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX1Byb21pc2UuanM/MWNmNCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0TmF0aXZlIGZyb20gJy4vX2dldE5hdGl2ZS5qcyc7XG5pbXBvcnQgcm9vdCBmcm9tICcuL19yb290LmpzJztcblxuLyogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgdGhhdCBhcmUgdmVyaWZpZWQgdG8gYmUgbmF0aXZlLiAqL1xudmFyIFByb21pc2UgPSBnZXROYXRpdmUocm9vdCwgJ1Byb21pc2UnKTtcblxuZXhwb3J0IGRlZmF1bHQgUHJvbWlzZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_Promise.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_Set.js": +/*!****************************************!*\ + !*** ./node_modules/lodash-es/_Set.js ***! + \****************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getNative_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getNative.js */ \"./node_modules/lodash-es/_getNative.js\");\n/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_root.js */ \"./node_modules/lodash-es/_root.js\");\n\n\n\n/* Built-in method references that are verified to be native. */\nvar Set = (0,_getNative_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_root_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], 'Set');\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Set);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19TZXQuanMuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQXdDO0FBQ1Y7O0FBRTlCO0FBQ0EsVUFBVSx5REFBUyxDQUFDLGdEQUFJOztBQUV4QiwrREFBZSxHQUFHLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fU2V0LmpzP2E0YzEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldE5hdGl2ZSBmcm9tICcuL19nZXROYXRpdmUuanMnO1xuaW1wb3J0IHJvb3QgZnJvbSAnLi9fcm9vdC5qcyc7XG5cbi8qIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIHRoYXQgYXJlIHZlcmlmaWVkIHRvIGJlIG5hdGl2ZS4gKi9cbnZhciBTZXQgPSBnZXROYXRpdmUocm9vdCwgJ1NldCcpO1xuXG5leHBvcnQgZGVmYXVsdCBTZXQ7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_Set.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_Stack.js": +/*!******************************************!*\ + !*** ./node_modules/lodash-es/_Stack.js ***! + \******************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ListCache_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ListCache.js */ \"./node_modules/lodash-es/_ListCache.js\");\n/* harmony import */ var _stackClear_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_stackClear.js */ \"./node_modules/lodash-es/_stackClear.js\");\n/* harmony import */ var _stackDelete_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_stackDelete.js */ \"./node_modules/lodash-es/_stackDelete.js\");\n/* harmony import */ var _stackGet_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_stackGet.js */ \"./node_modules/lodash-es/_stackGet.js\");\n/* harmony import */ var _stackHas_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_stackHas.js */ \"./node_modules/lodash-es/_stackHas.js\");\n/* harmony import */ var _stackSet_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./_stackSet.js */ \"./node_modules/lodash-es/_stackSet.js\");\n\n\n\n\n\n\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new _ListCache_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"](entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = _stackClear_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\nStack.prototype['delete'] = _stackDelete_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\nStack.prototype.get = _stackGet_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"];\nStack.prototype.has = _stackHas_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"];\nStack.prototype.set = _stackSet_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"];\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Stack);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19TdGFjay5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQXdDO0FBQ0U7QUFDRTtBQUNOO0FBQ0E7QUFDQTs7QUFFdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQjtBQUNBO0FBQ0EsaUNBQWlDLHFEQUFTO0FBQzFDO0FBQ0E7O0FBRUE7QUFDQSx3QkFBd0Isc0RBQVU7QUFDbEMsNEJBQTRCLHVEQUFXO0FBQ3ZDLHNCQUFzQixvREFBUTtBQUM5QixzQkFBc0Isb0RBQVE7QUFDOUIsc0JBQXNCLG9EQUFROztBQUU5QiwrREFBZSxLQUFLLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fU3RhY2suanM/NTRhYiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTGlzdENhY2hlIGZyb20gJy4vX0xpc3RDYWNoZS5qcyc7XG5pbXBvcnQgc3RhY2tDbGVhciBmcm9tICcuL19zdGFja0NsZWFyLmpzJztcbmltcG9ydCBzdGFja0RlbGV0ZSBmcm9tICcuL19zdGFja0RlbGV0ZS5qcyc7XG5pbXBvcnQgc3RhY2tHZXQgZnJvbSAnLi9fc3RhY2tHZXQuanMnO1xuaW1wb3J0IHN0YWNrSGFzIGZyb20gJy4vX3N0YWNrSGFzLmpzJztcbmltcG9ydCBzdGFja1NldCBmcm9tICcuL19zdGFja1NldC5qcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhIHN0YWNrIGNhY2hlIG9iamVjdCB0byBzdG9yZSBrZXktdmFsdWUgcGFpcnMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBjb25zdHJ1Y3RvclxuICogQHBhcmFtIHtBcnJheX0gW2VudHJpZXNdIFRoZSBrZXktdmFsdWUgcGFpcnMgdG8gY2FjaGUuXG4gKi9cbmZ1bmN0aW9uIFN0YWNrKGVudHJpZXMpIHtcbiAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fID0gbmV3IExpc3RDYWNoZShlbnRyaWVzKTtcbiAgdGhpcy5zaXplID0gZGF0YS5zaXplO1xufVxuXG4vLyBBZGQgbWV0aG9kcyB0byBgU3RhY2tgLlxuU3RhY2sucHJvdG90eXBlLmNsZWFyID0gc3RhY2tDbGVhcjtcblN0YWNrLnByb3RvdHlwZVsnZGVsZXRlJ10gPSBzdGFja0RlbGV0ZTtcblN0YWNrLnByb3RvdHlwZS5nZXQgPSBzdGFja0dldDtcblN0YWNrLnByb3RvdHlwZS5oYXMgPSBzdGFja0hhcztcblN0YWNrLnByb3RvdHlwZS5zZXQgPSBzdGFja1NldDtcblxuZXhwb3J0IGRlZmF1bHQgU3RhY2s7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_Stack.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_Symbol.js": +/*!*******************************************!*\ + !*** ./node_modules/lodash-es/_Symbol.js ***! + \*******************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_root.js */ \"./node_modules/lodash-es/_root.js\");\n\n\n/** Built-in value references. */\nvar Symbol = _root_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Symbol;\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Symbol);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19TeW1ib2wuanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBOEI7O0FBRTlCO0FBQ0EsYUFBYSx1REFBVzs7QUFFeEIsK0RBQWUsTUFBTSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX1N5bWJvbC5qcz8yYWUzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCByb290IGZyb20gJy4vX3Jvb3QuanMnO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBTeW1ib2wgPSByb290LlN5bWJvbDtcblxuZXhwb3J0IGRlZmF1bHQgU3ltYm9sO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_Symbol.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_Uint8Array.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/_Uint8Array.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_root.js */ \"./node_modules/lodash-es/_root.js\");\n\n\n/** Built-in value references. */\nvar Uint8Array = _root_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Uint8Array;\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Uint8Array);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19VaW50OEFycmF5LmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQThCOztBQUU5QjtBQUNBLGlCQUFpQiwyREFBZTs7QUFFaEMsK0RBQWUsVUFBVSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX1VpbnQ4QXJyYXkuanM/MWVhMiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcm9vdCBmcm9tICcuL19yb290LmpzJztcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgVWludDhBcnJheSA9IHJvb3QuVWludDhBcnJheTtcblxuZXhwb3J0IGRlZmF1bHQgVWludDhBcnJheTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_Uint8Array.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_WeakMap.js": +/*!********************************************!*\ + !*** ./node_modules/lodash-es/_WeakMap.js ***! + \********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getNative_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getNative.js */ \"./node_modules/lodash-es/_getNative.js\");\n/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_root.js */ \"./node_modules/lodash-es/_root.js\");\n\n\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = (0,_getNative_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_root_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], 'WeakMap');\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (WeakMap);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19XZWFrTWFwLmpzLmpzIiwibWFwcGluZ3MiOiI7OztBQUF3QztBQUNWOztBQUU5QjtBQUNBLGNBQWMseURBQVMsQ0FBQyxnREFBSTs7QUFFNUIsK0RBQWUsT0FBTyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX1dlYWtNYXAuanM/NzRiMSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0TmF0aXZlIGZyb20gJy4vX2dldE5hdGl2ZS5qcyc7XG5pbXBvcnQgcm9vdCBmcm9tICcuL19yb290LmpzJztcblxuLyogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgdGhhdCBhcmUgdmVyaWZpZWQgdG8gYmUgbmF0aXZlLiAqL1xudmFyIFdlYWtNYXAgPSBnZXROYXRpdmUocm9vdCwgJ1dlYWtNYXAnKTtcblxuZXhwb3J0IGRlZmF1bHQgV2Vha01hcDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_WeakMap.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_arrayEach.js": +/*!**********************************************!*\ + !*** ./node_modules/lodash-es/_arrayEach.js ***! + \**********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (arrayEach);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hcnJheUVhY2guanMuanMiLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEIsV0FBVyxVQUFVO0FBQ3JCLGFBQWEsT0FBTztBQUNwQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxTQUFTLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYXJyYXlFYWNoLmpzPzYyYTMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8uZm9yRWFjaGAgZm9yIGFycmF5cyB3aXRob3V0IHN1cHBvcnQgZm9yXG4gKiBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBbYXJyYXldIFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBhcnJheWAuXG4gKi9cbmZ1bmN0aW9uIGFycmF5RWFjaChhcnJheSwgaXRlcmF0ZWUpIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIGlmIChpdGVyYXRlZShhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSkgPT09IGZhbHNlKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGFycmF5O1xufVxuXG5leHBvcnQgZGVmYXVsdCBhcnJheUVhY2g7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_arrayEach.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_arrayFilter.js": +/*!************************************************!*\ + !*** ./node_modules/lodash-es/_arrayFilter.js ***! + \************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (arrayFilter);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hcnJheUZpbHRlci5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixXQUFXLFVBQVU7QUFDckIsYUFBYSxPQUFPO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLCtEQUFlLFdBQVcsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hcnJheUZpbHRlci5qcz81Y2M4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLmZpbHRlcmAgZm9yIGFycmF5cyB3aXRob3V0IHN1cHBvcnQgZm9yXG4gKiBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBbYXJyYXldIFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcmVkaWNhdGUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGZpbHRlcmVkIGFycmF5LlxuICovXG5mdW5jdGlvbiBhcnJheUZpbHRlcihhcnJheSwgcHJlZGljYXRlKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGgsXG4gICAgICByZXNJbmRleCA9IDAsXG4gICAgICByZXN1bHQgPSBbXTtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHZhciB2YWx1ZSA9IGFycmF5W2luZGV4XTtcbiAgICBpZiAocHJlZGljYXRlKHZhbHVlLCBpbmRleCwgYXJyYXkpKSB7XG4gICAgICByZXN1bHRbcmVzSW5kZXgrK10gPSB2YWx1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYXJyYXlGaWx0ZXI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_arrayFilter.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_arrayLikeKeys.js": +/*!**************************************************!*\ + !*** ./node_modules/lodash-es/_arrayLikeKeys.js ***! + \**************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseTimes_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_baseTimes.js */ \"./node_modules/lodash-es/_baseTimes.js\");\n/* harmony import */ var _isArguments_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isArguments.js */ \"./node_modules/lodash-es/isArguments.js\");\n/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isArray.js */ \"./node_modules/lodash-es/isArray.js\");\n/* harmony import */ var _isBuffer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isBuffer.js */ \"./node_modules/lodash-es/isBuffer.js\");\n/* harmony import */ var _isIndex_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./_isIndex.js */ \"./node_modules/lodash-es/_isIndex.js\");\n/* harmony import */ var _isTypedArray_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./isTypedArray.js */ \"./node_modules/lodash-es/isTypedArray.js\");\n\n\n\n\n\n\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = (0,_isArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value),\n isArg = !isArr && (0,_isArguments_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value),\n isBuff = !isArr && !isArg && (0,_isBuffer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(value),\n isType = !isArr && !isArg && !isBuff && (0,_isTypedArray_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? (0,_baseTimes_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n (0,_isIndex_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (arrayLikeKeys);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hcnJheUxpa2VLZXlzLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBd0M7QUFDRztBQUNSO0FBQ0U7QUFDRDtBQUNTOztBQUU3QztBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxXQUFXLFNBQVM7QUFDcEIsYUFBYSxPQUFPO0FBQ3BCO0FBQ0E7QUFDQSxjQUFjLHVEQUFPO0FBQ3JCLHdCQUF3QiwyREFBVztBQUNuQyxtQ0FBbUMsd0RBQVE7QUFDM0MsOENBQThDLDREQUFZO0FBQzFEO0FBQ0EsNkJBQTZCLHlEQUFTO0FBQ3RDOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyx1REFBTztBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsYUFBYSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2FycmF5TGlrZUtleXMuanM/ZjEwZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYmFzZVRpbWVzIGZyb20gJy4vX2Jhc2VUaW1lcy5qcyc7XG5pbXBvcnQgaXNBcmd1bWVudHMgZnJvbSAnLi9pc0FyZ3VtZW50cy5qcyc7XG5pbXBvcnQgaXNBcnJheSBmcm9tICcuL2lzQXJyYXkuanMnO1xuaW1wb3J0IGlzQnVmZmVyIGZyb20gJy4vaXNCdWZmZXIuanMnO1xuaW1wb3J0IGlzSW5kZXggZnJvbSAnLi9faXNJbmRleC5qcyc7XG5pbXBvcnQgaXNUeXBlZEFycmF5IGZyb20gJy4vaXNUeXBlZEFycmF5LmpzJztcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IG9mIHRoZSBlbnVtZXJhYmxlIHByb3BlcnR5IG5hbWVzIG9mIHRoZSBhcnJheS1saWtlIGB2YWx1ZWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHF1ZXJ5LlxuICogQHBhcmFtIHtib29sZWFufSBpbmhlcml0ZWQgU3BlY2lmeSByZXR1cm5pbmcgaW5oZXJpdGVkIHByb3BlcnR5IG5hbWVzLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcy5cbiAqL1xuZnVuY3Rpb24gYXJyYXlMaWtlS2V5cyh2YWx1ZSwgaW5oZXJpdGVkKSB7XG4gIHZhciBpc0FyciA9IGlzQXJyYXkodmFsdWUpLFxuICAgICAgaXNBcmcgPSAhaXNBcnIgJiYgaXNBcmd1bWVudHModmFsdWUpLFxuICAgICAgaXNCdWZmID0gIWlzQXJyICYmICFpc0FyZyAmJiBpc0J1ZmZlcih2YWx1ZSksXG4gICAgICBpc1R5cGUgPSAhaXNBcnIgJiYgIWlzQXJnICYmICFpc0J1ZmYgJiYgaXNUeXBlZEFycmF5KHZhbHVlKSxcbiAgICAgIHNraXBJbmRleGVzID0gaXNBcnIgfHwgaXNBcmcgfHwgaXNCdWZmIHx8IGlzVHlwZSxcbiAgICAgIHJlc3VsdCA9IHNraXBJbmRleGVzID8gYmFzZVRpbWVzKHZhbHVlLmxlbmd0aCwgU3RyaW5nKSA6IFtdLFxuICAgICAgbGVuZ3RoID0gcmVzdWx0Lmxlbmd0aDtcblxuICBmb3IgKHZhciBrZXkgaW4gdmFsdWUpIHtcbiAgICBpZiAoKGluaGVyaXRlZCB8fCBoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCBrZXkpKSAmJlxuICAgICAgICAhKHNraXBJbmRleGVzICYmIChcbiAgICAgICAgICAgLy8gU2FmYXJpIDkgaGFzIGVudW1lcmFibGUgYGFyZ3VtZW50cy5sZW5ndGhgIGluIHN0cmljdCBtb2RlLlxuICAgICAgICAgICBrZXkgPT0gJ2xlbmd0aCcgfHxcbiAgICAgICAgICAgLy8gTm9kZS5qcyAwLjEwIGhhcyBlbnVtZXJhYmxlIG5vbi1pbmRleCBwcm9wZXJ0aWVzIG9uIGJ1ZmZlcnMuXG4gICAgICAgICAgIChpc0J1ZmYgJiYgKGtleSA9PSAnb2Zmc2V0JyB8fCBrZXkgPT0gJ3BhcmVudCcpKSB8fFxuICAgICAgICAgICAvLyBQaGFudG9tSlMgMiBoYXMgZW51bWVyYWJsZSBub24taW5kZXggcHJvcGVydGllcyBvbiB0eXBlZCBhcnJheXMuXG4gICAgICAgICAgIChpc1R5cGUgJiYgKGtleSA9PSAnYnVmZmVyJyB8fCBrZXkgPT0gJ2J5dGVMZW5ndGgnIHx8IGtleSA9PSAnYnl0ZU9mZnNldCcpKSB8fFxuICAgICAgICAgICAvLyBTa2lwIGluZGV4IHByb3BlcnRpZXMuXG4gICAgICAgICAgIGlzSW5kZXgoa2V5LCBsZW5ndGgpXG4gICAgICAgICkpKSB7XG4gICAgICByZXN1bHQucHVzaChrZXkpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBhcnJheUxpa2VLZXlzO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_arrayLikeKeys.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_arrayMap.js": +/*!*********************************************!*\ + !*** ./node_modules/lodash-es/_arrayMap.js ***! + \*********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (arrayMap);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hcnJheU1hcC5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixXQUFXLFVBQVU7QUFDckIsYUFBYSxPQUFPO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxRQUFRLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYXJyYXlNYXAuanM/MzEzNiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5tYXBgIGZvciBhcnJheXMgd2l0aG91dCBzdXBwb3J0IGZvciBpdGVyYXRlZVxuICogc2hvcnRoYW5kcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gW2FycmF5XSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IG1hcHBlZCBhcnJheS5cbiAqL1xuZnVuY3Rpb24gYXJyYXlNYXAoYXJyYXksIGl0ZXJhdGVlKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGgsXG4gICAgICByZXN1bHQgPSBBcnJheShsZW5ndGgpO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgcmVzdWx0W2luZGV4XSA9IGl0ZXJhdGVlKGFycmF5W2luZGV4XSwgaW5kZXgsIGFycmF5KTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBhcnJheU1hcDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_arrayMap.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_arrayPush.js": +/*!**********************************************!*\ + !*** ./node_modules/lodash-es/_arrayPush.js ***! + \**********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (arrayPush);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hcnJheVB1c2guanMuanMiLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLFdBQVcsT0FBTztBQUNsQixhQUFhLE9BQU87QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLCtEQUFlLFNBQVMsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hcnJheVB1c2guanM/MGMyNyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEFwcGVuZHMgdGhlIGVsZW1lbnRzIG9mIGB2YWx1ZXNgIHRvIGBhcnJheWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBtb2RpZnkuXG4gKiBAcGFyYW0ge0FycmF5fSB2YWx1ZXMgVGhlIHZhbHVlcyB0byBhcHBlbmQuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cbiAqL1xuZnVuY3Rpb24gYXJyYXlQdXNoKGFycmF5LCB2YWx1ZXMpIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSB2YWx1ZXMubGVuZ3RoLFxuICAgICAgb2Zmc2V0ID0gYXJyYXkubGVuZ3RoO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgYXJyYXlbb2Zmc2V0ICsgaW5kZXhdID0gdmFsdWVzW2luZGV4XTtcbiAgfVxuICByZXR1cm4gYXJyYXk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGFycmF5UHVzaDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_arrayPush.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_assignValue.js": +/*!************************************************!*\ + !*** ./node_modules/lodash-es/_assignValue.js ***! + \************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseAssignValue_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_baseAssignValue.js */ \"./node_modules/lodash-es/_baseAssignValue.js\");\n/* harmony import */ var _eq_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./eq.js */ \"./node_modules/lodash-es/eq.js\");\n\n\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && (0,_eq_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(objValue, value)) ||\n (value === undefined && !(key in object))) {\n (0,_baseAssignValue_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(object, key, value);\n }\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (assignValue);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hc3NpZ25WYWx1ZS5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7QUFBb0Q7QUFDM0I7O0FBRXpCO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsR0FBRztBQUNkO0FBQ0E7QUFDQTtBQUNBLDRDQUE0QyxrREFBRTtBQUM5QztBQUNBLElBQUksK0RBQWU7QUFDbkI7QUFDQTs7QUFFQSwrREFBZSxXQUFXLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYXNzaWduVmFsdWUuanM/OTQ4OCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYmFzZUFzc2lnblZhbHVlIGZyb20gJy4vX2Jhc2VBc3NpZ25WYWx1ZS5qcyc7XG5pbXBvcnQgZXEgZnJvbSAnLi9lcS5qcyc7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogQXNzaWducyBgdmFsdWVgIHRvIGBrZXlgIG9mIGBvYmplY3RgIGlmIHRoZSBleGlzdGluZyB2YWx1ZSBpcyBub3QgZXF1aXZhbGVudFxuICogdXNpbmcgW2BTYW1lVmFsdWVaZXJvYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtc2FtZXZhbHVlemVybylcbiAqIGZvciBlcXVhbGl0eSBjb21wYXJpc29ucy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIG1vZGlmeS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgcHJvcGVydHkgdG8gYXNzaWduLlxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gYXNzaWduLlxuICovXG5mdW5jdGlvbiBhc3NpZ25WYWx1ZShvYmplY3QsIGtleSwgdmFsdWUpIHtcbiAgdmFyIG9ialZhbHVlID0gb2JqZWN0W2tleV07XG4gIGlmICghKGhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpICYmIGVxKG9ialZhbHVlLCB2YWx1ZSkpIHx8XG4gICAgICAodmFsdWUgPT09IHVuZGVmaW5lZCAmJiAhKGtleSBpbiBvYmplY3QpKSkge1xuICAgIGJhc2VBc3NpZ25WYWx1ZShvYmplY3QsIGtleSwgdmFsdWUpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGFzc2lnblZhbHVlO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_assignValue.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_assocIndexOf.js": +/*!*************************************************!*\ + !*** ./node_modules/lodash-es/_assocIndexOf.js ***! + \*************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _eq_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./eq.js */ \"./node_modules/lodash-es/eq.js\");\n\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if ((0,_eq_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (assocIndexOf);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hc3NvY0luZGV4T2YuanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBeUI7O0FBRXpCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLFdBQVcsR0FBRztBQUNkLGFBQWEsUUFBUTtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsa0RBQUU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLCtEQUFlLFlBQVksRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hc3NvY0luZGV4T2YuanM/NWMzMCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZXEgZnJvbSAnLi9lcS5qcyc7XG5cbi8qKlxuICogR2V0cyB0aGUgaW5kZXggYXQgd2hpY2ggdGhlIGBrZXlgIGlzIGZvdW5kIGluIGBhcnJheWAgb2Yga2V5LXZhbHVlIHBhaXJzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAqIEBwYXJhbSB7Kn0ga2V5IFRoZSBrZXkgdG8gc2VhcmNoIGZvci5cbiAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBtYXRjaGVkIHZhbHVlLCBlbHNlIGAtMWAuXG4gKi9cbmZ1bmN0aW9uIGFzc29jSW5kZXhPZihhcnJheSwga2V5KSB7XG4gIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG4gIHdoaWxlIChsZW5ndGgtLSkge1xuICAgIGlmIChlcShhcnJheVtsZW5ndGhdWzBdLCBrZXkpKSB7XG4gICAgICByZXR1cm4gbGVuZ3RoO1xuICAgIH1cbiAgfVxuICByZXR1cm4gLTE7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGFzc29jSW5kZXhPZjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_assocIndexOf.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseAssign.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/_baseAssign.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _copyObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_copyObject.js */ \"./node_modules/lodash-es/_copyObject.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keys.js */ \"./node_modules/lodash-es/keys.js\");\n\n\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && (0,_copyObject_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(source, (0,_keys_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(source), object);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseAssign);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlQXNzaWduLmpzLmpzIiwibWFwcGluZ3MiOiI7OztBQUEwQztBQUNiOztBQUU3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBLG1CQUFtQiwwREFBVSxTQUFTLG9EQUFJO0FBQzFDOztBQUVBLCtEQUFlLFVBQVUsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlQXNzaWduLmpzPzI1MGUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvcHlPYmplY3QgZnJvbSAnLi9fY29weU9iamVjdC5qcyc7XG5pbXBvcnQga2V5cyBmcm9tICcuL2tleXMuanMnO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmFzc2lnbmAgd2l0aG91dCBzdXBwb3J0IGZvciBtdWx0aXBsZSBzb3VyY2VzXG4gKiBvciBgY3VzdG9taXplcmAgZnVuY3Rpb25zLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXG4gKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBzb3VyY2Ugb2JqZWN0LlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAqL1xuZnVuY3Rpb24gYmFzZUFzc2lnbihvYmplY3QsIHNvdXJjZSkge1xuICByZXR1cm4gb2JqZWN0ICYmIGNvcHlPYmplY3Qoc291cmNlLCBrZXlzKHNvdXJjZSksIG9iamVjdCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VBc3NpZ247XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseAssign.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseAssignIn.js": +/*!*************************************************!*\ + !*** ./node_modules/lodash-es/_baseAssignIn.js ***! + \*************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _copyObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_copyObject.js */ \"./node_modules/lodash-es/_copyObject.js\");\n/* harmony import */ var _keysIn_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keysIn.js */ \"./node_modules/lodash-es/keysIn.js\");\n\n\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && (0,_copyObject_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(source, (0,_keysIn_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(source), object);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseAssignIn);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlQXNzaWduSW4uanMuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQTBDO0FBQ1Q7O0FBRWpDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLGFBQWEsUUFBUTtBQUNyQjtBQUNBO0FBQ0EsbUJBQW1CLDBEQUFVLFNBQVMsc0RBQU07QUFDNUM7O0FBRUEsK0RBQWUsWUFBWSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VBc3NpZ25Jbi5qcz9jNDRlIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjb3B5T2JqZWN0IGZyb20gJy4vX2NvcHlPYmplY3QuanMnO1xuaW1wb3J0IGtleXNJbiBmcm9tICcuL2tleXNJbi5qcyc7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uYXNzaWduSW5gIHdpdGhvdXQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgc291cmNlc1xuICogb3IgYGN1c3RvbWl6ZXJgIGZ1bmN0aW9ucy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgZGVzdGluYXRpb24gb2JqZWN0LlxuICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgc291cmNlIG9iamVjdC5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VBc3NpZ25JbihvYmplY3QsIHNvdXJjZSkge1xuICByZXR1cm4gb2JqZWN0ICYmIGNvcHlPYmplY3Qoc291cmNlLCBrZXlzSW4oc291cmNlKSwgb2JqZWN0KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZUFzc2lnbkluO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseAssignIn.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseAssignValue.js": +/*!****************************************************!*\ + !*** ./node_modules/lodash-es/_baseAssignValue.js ***! + \****************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _defineProperty_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_defineProperty.js */ \"./node_modules/lodash-es/_defineProperty.js\");\n\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && _defineProperty_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]) {\n (0,_defineProperty_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseAssignValue);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlQXNzaWduVmFsdWUuanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBa0Q7O0FBRWxEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsR0FBRztBQUNkO0FBQ0E7QUFDQSw0QkFBNEIsMERBQWM7QUFDMUMsSUFBSSw4REFBYztBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBLCtEQUFlLGVBQWUsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlQXNzaWduVmFsdWUuanM/ZmFmNCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZGVmaW5lUHJvcGVydHkgZnJvbSAnLi9fZGVmaW5lUHJvcGVydHkuanMnO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBhc3NpZ25WYWx1ZWAgYW5kIGBhc3NpZ25NZXJnZVZhbHVlYCB3aXRob3V0XG4gKiB2YWx1ZSBjaGVja3MuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBtb2RpZnkuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IHRvIGFzc2lnbi5cbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGFzc2lnbi5cbiAqL1xuZnVuY3Rpb24gYmFzZUFzc2lnblZhbHVlKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICBpZiAoa2V5ID09ICdfX3Byb3RvX18nICYmIGRlZmluZVByb3BlcnR5KSB7XG4gICAgZGVmaW5lUHJvcGVydHkob2JqZWN0LCBrZXksIHtcbiAgICAgICdjb25maWd1cmFibGUnOiB0cnVlLFxuICAgICAgJ2VudW1lcmFibGUnOiB0cnVlLFxuICAgICAgJ3ZhbHVlJzogdmFsdWUsXG4gICAgICAnd3JpdGFibGUnOiB0cnVlXG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0W2tleV0gPSB2YWx1ZTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlQXNzaWduVmFsdWU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseAssignValue.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseClone.js": +/*!**********************************************!*\ + !*** ./node_modules/lodash-es/_baseClone.js ***! + \**********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Stack_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./_Stack.js */ \"./node_modules/lodash-es/_Stack.js\");\n/* harmony import */ var _arrayEach_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./_arrayEach.js */ \"./node_modules/lodash-es/_arrayEach.js\");\n/* harmony import */ var _assignValue_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./_assignValue.js */ \"./node_modules/lodash-es/_assignValue.js\");\n/* harmony import */ var _baseAssign_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./_baseAssign.js */ \"./node_modules/lodash-es/_baseAssign.js\");\n/* harmony import */ var _baseAssignIn_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./_baseAssignIn.js */ \"./node_modules/lodash-es/_baseAssignIn.js\");\n/* harmony import */ var _cloneBuffer_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./_cloneBuffer.js */ \"./node_modules/lodash-es/_cloneBuffer.js\");\n/* harmony import */ var _copyArray_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_copyArray.js */ \"./node_modules/lodash-es/_copyArray.js\");\n/* harmony import */ var _copySymbols_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./_copySymbols.js */ \"./node_modules/lodash-es/_copySymbols.js\");\n/* harmony import */ var _copySymbolsIn_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./_copySymbolsIn.js */ \"./node_modules/lodash-es/_copySymbolsIn.js\");\n/* harmony import */ var _getAllKeys_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./_getAllKeys.js */ \"./node_modules/lodash-es/_getAllKeys.js\");\n/* harmony import */ var _getAllKeysIn_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./_getAllKeysIn.js */ \"./node_modules/lodash-es/_getAllKeysIn.js\");\n/* harmony import */ var _getTag_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_getTag.js */ \"./node_modules/lodash-es/_getTag.js\");\n/* harmony import */ var _initCloneArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_initCloneArray.js */ \"./node_modules/lodash-es/_initCloneArray.js\");\n/* harmony import */ var _initCloneByTag_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./_initCloneByTag.js */ \"./node_modules/lodash-es/_initCloneByTag.js\");\n/* harmony import */ var _initCloneObject_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./_initCloneObject.js */ \"./node_modules/lodash-es/_initCloneObject.js\");\n/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isArray.js */ \"./node_modules/lodash-es/isArray.js\");\n/* harmony import */ var _isBuffer_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./isBuffer.js */ \"./node_modules/lodash-es/isBuffer.js\");\n/* harmony import */ var _isMap_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./isMap.js */ \"./node_modules/lodash-es/isMap.js\");\n/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isObject.js */ \"./node_modules/lodash-es/isObject.js\");\n/* harmony import */ var _isSet_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./isSet.js */ \"./node_modules/lodash-es/isSet.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./keys.js */ \"./node_modules/lodash-es/keys.js\");\n/* harmony import */ var _keysIn_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./keysIn.js */ \"./node_modules/lodash-es/keysIn.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!(0,_isObject_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value)) {\n return value;\n }\n var isArr = (0,_isArray_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value);\n if (isArr) {\n result = (0,_initCloneArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(value);\n if (!isDeep) {\n return (0,_copyArray_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(value, result);\n }\n } else {\n var tag = (0,_getTag_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if ((0,_isBuffer_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(value)) {\n return (0,_cloneBuffer_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : (0,_initCloneObject_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(value);\n if (!isDeep) {\n return isFlat\n ? (0,_copySymbolsIn_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(value, (0,_baseAssignIn_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(result, value))\n : (0,_copySymbols_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(value, (0,_baseAssign_js__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = (0,_initCloneByTag_js__WEBPACK_IMPORTED_MODULE_12__[\"default\"])(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new _Stack_js__WEBPACK_IMPORTED_MODULE_13__[\"default\"]);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if ((0,_isSet_js__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if ((0,_isMap_js__WEBPACK_IMPORTED_MODULE_15__[\"default\"])(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? _getAllKeysIn_js__WEBPACK_IMPORTED_MODULE_16__[\"default\"] : _getAllKeys_js__WEBPACK_IMPORTED_MODULE_17__[\"default\"])\n : (isFlat ? _keysIn_js__WEBPACK_IMPORTED_MODULE_18__[\"default\"] : _keys_js__WEBPACK_IMPORTED_MODULE_19__[\"default\"]);\n\n var props = isArr ? undefined : keysFunc(value);\n (0,_arrayEach_js__WEBPACK_IMPORTED_MODULE_20__[\"default\"])(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n (0,_assignValue_js__WEBPACK_IMPORTED_MODULE_21__[\"default\"])(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseClone);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlQ2xvbmUuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBZ0M7QUFDUTtBQUNJO0FBQ0Y7QUFDSTtBQUNGO0FBQ0o7QUFDSTtBQUNJO0FBQ047QUFDSTtBQUNaO0FBQ2dCO0FBQ0E7QUFDRTtBQUNqQjtBQUNFO0FBQ047QUFDTTtBQUNOO0FBQ0Y7QUFDSTs7QUFFakM7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLFdBQVcsU0FBUztBQUNwQjtBQUNBO0FBQ0E7QUFDQSxXQUFXLFVBQVU7QUFDckIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkIsYUFBYSxHQUFHO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLHdEQUFRO0FBQ2Y7QUFDQTtBQUNBLGNBQWMsdURBQU87QUFDckI7QUFDQSxhQUFhLDhEQUFjO0FBQzNCO0FBQ0EsYUFBYSx5REFBUztBQUN0QjtBQUNBLElBQUk7QUFDSixjQUFjLHNEQUFNO0FBQ3BCOztBQUVBLFFBQVEsd0RBQVE7QUFDaEIsYUFBYSwyREFBVztBQUN4QjtBQUNBO0FBQ0EsdUNBQXVDLEVBQUUsK0RBQWU7QUFDeEQ7QUFDQTtBQUNBLFlBQVksNkRBQWEsUUFBUSw0REFBWTtBQUM3QyxZQUFZLDREQUFXLFFBQVEsMkRBQVU7QUFDekM7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsZUFBZSwrREFBYztBQUM3QjtBQUNBO0FBQ0E7QUFDQSx3QkFBd0Isa0RBQUs7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxNQUFNLHNEQUFLO0FBQ1g7QUFDQTtBQUNBLEtBQUs7QUFDTCxJQUFJLFNBQVMsc0RBQUs7QUFDbEI7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBLGdCQUFnQix5REFBWSxHQUFHLHVEQUFVO0FBQ3pDLGdCQUFnQixtREFBTSxHQUFHLGlEQUFJOztBQUU3QjtBQUNBLEVBQUUsMERBQVM7QUFDWDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSw0REFBVztBQUNmLEdBQUc7QUFDSDtBQUNBOztBQUVBLCtEQUFlLFNBQVMsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlQ2xvbmUuanM/YjEzMSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgU3RhY2sgZnJvbSAnLi9fU3RhY2suanMnO1xuaW1wb3J0IGFycmF5RWFjaCBmcm9tICcuL19hcnJheUVhY2guanMnO1xuaW1wb3J0IGFzc2lnblZhbHVlIGZyb20gJy4vX2Fzc2lnblZhbHVlLmpzJztcbmltcG9ydCBiYXNlQXNzaWduIGZyb20gJy4vX2Jhc2VBc3NpZ24uanMnO1xuaW1wb3J0IGJhc2VBc3NpZ25JbiBmcm9tICcuL19iYXNlQXNzaWduSW4uanMnO1xuaW1wb3J0IGNsb25lQnVmZmVyIGZyb20gJy4vX2Nsb25lQnVmZmVyLmpzJztcbmltcG9ydCBjb3B5QXJyYXkgZnJvbSAnLi9fY29weUFycmF5LmpzJztcbmltcG9ydCBjb3B5U3ltYm9scyBmcm9tICcuL19jb3B5U3ltYm9scy5qcyc7XG5pbXBvcnQgY29weVN5bWJvbHNJbiBmcm9tICcuL19jb3B5U3ltYm9sc0luLmpzJztcbmltcG9ydCBnZXRBbGxLZXlzIGZyb20gJy4vX2dldEFsbEtleXMuanMnO1xuaW1wb3J0IGdldEFsbEtleXNJbiBmcm9tICcuL19nZXRBbGxLZXlzSW4uanMnO1xuaW1wb3J0IGdldFRhZyBmcm9tICcuL19nZXRUYWcuanMnO1xuaW1wb3J0IGluaXRDbG9uZUFycmF5IGZyb20gJy4vX2luaXRDbG9uZUFycmF5LmpzJztcbmltcG9ydCBpbml0Q2xvbmVCeVRhZyBmcm9tICcuL19pbml0Q2xvbmVCeVRhZy5qcyc7XG5pbXBvcnQgaW5pdENsb25lT2JqZWN0IGZyb20gJy4vX2luaXRDbG9uZU9iamVjdC5qcyc7XG5pbXBvcnQgaXNBcnJheSBmcm9tICcuL2lzQXJyYXkuanMnO1xuaW1wb3J0IGlzQnVmZmVyIGZyb20gJy4vaXNCdWZmZXIuanMnO1xuaW1wb3J0IGlzTWFwIGZyb20gJy4vaXNNYXAuanMnO1xuaW1wb3J0IGlzT2JqZWN0IGZyb20gJy4vaXNPYmplY3QuanMnO1xuaW1wb3J0IGlzU2V0IGZyb20gJy4vaXNTZXQuanMnO1xuaW1wb3J0IGtleXMgZnJvbSAnLi9rZXlzLmpzJztcbmltcG9ydCBrZXlzSW4gZnJvbSAnLi9rZXlzSW4uanMnO1xuXG4vKiogVXNlZCB0byBjb21wb3NlIGJpdG1hc2tzIGZvciBjbG9uaW5nLiAqL1xudmFyIENMT05FX0RFRVBfRkxBRyA9IDEsXG4gICAgQ0xPTkVfRkxBVF9GTEFHID0gMixcbiAgICBDTE9ORV9TWU1CT0xTX0ZMQUcgPSA0O1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgYXJnc1RhZyA9ICdbb2JqZWN0IEFyZ3VtZW50c10nLFxuICAgIGFycmF5VGFnID0gJ1tvYmplY3QgQXJyYXldJyxcbiAgICBib29sVGFnID0gJ1tvYmplY3QgQm9vbGVhbl0nLFxuICAgIGRhdGVUYWcgPSAnW29iamVjdCBEYXRlXScsXG4gICAgZXJyb3JUYWcgPSAnW29iamVjdCBFcnJvcl0nLFxuICAgIGZ1bmNUYWcgPSAnW29iamVjdCBGdW5jdGlvbl0nLFxuICAgIGdlblRhZyA9ICdbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXScsXG4gICAgbWFwVGFnID0gJ1tvYmplY3QgTWFwXScsXG4gICAgbnVtYmVyVGFnID0gJ1tvYmplY3QgTnVtYmVyXScsXG4gICAgb2JqZWN0VGFnID0gJ1tvYmplY3QgT2JqZWN0XScsXG4gICAgcmVnZXhwVGFnID0gJ1tvYmplY3QgUmVnRXhwXScsXG4gICAgc2V0VGFnID0gJ1tvYmplY3QgU2V0XScsXG4gICAgc3RyaW5nVGFnID0gJ1tvYmplY3QgU3RyaW5nXScsXG4gICAgc3ltYm9sVGFnID0gJ1tvYmplY3QgU3ltYm9sXScsXG4gICAgd2Vha01hcFRhZyA9ICdbb2JqZWN0IFdlYWtNYXBdJztcblxudmFyIGFycmF5QnVmZmVyVGFnID0gJ1tvYmplY3QgQXJyYXlCdWZmZXJdJyxcbiAgICBkYXRhVmlld1RhZyA9ICdbb2JqZWN0IERhdGFWaWV3XScsXG4gICAgZmxvYXQzMlRhZyA9ICdbb2JqZWN0IEZsb2F0MzJBcnJheV0nLFxuICAgIGZsb2F0NjRUYWcgPSAnW29iamVjdCBGbG9hdDY0QXJyYXldJyxcbiAgICBpbnQ4VGFnID0gJ1tvYmplY3QgSW50OEFycmF5XScsXG4gICAgaW50MTZUYWcgPSAnW29iamVjdCBJbnQxNkFycmF5XScsXG4gICAgaW50MzJUYWcgPSAnW29iamVjdCBJbnQzMkFycmF5XScsXG4gICAgdWludDhUYWcgPSAnW29iamVjdCBVaW50OEFycmF5XScsXG4gICAgdWludDhDbGFtcGVkVGFnID0gJ1tvYmplY3QgVWludDhDbGFtcGVkQXJyYXldJyxcbiAgICB1aW50MTZUYWcgPSAnW29iamVjdCBVaW50MTZBcnJheV0nLFxuICAgIHVpbnQzMlRhZyA9ICdbb2JqZWN0IFVpbnQzMkFycmF5XSc7XG5cbi8qKiBVc2VkIHRvIGlkZW50aWZ5IGB0b1N0cmluZ1RhZ2AgdmFsdWVzIHN1cHBvcnRlZCBieSBgXy5jbG9uZWAuICovXG52YXIgY2xvbmVhYmxlVGFncyA9IHt9O1xuY2xvbmVhYmxlVGFnc1thcmdzVGFnXSA9IGNsb25lYWJsZVRhZ3NbYXJyYXlUYWddID1cbmNsb25lYWJsZVRhZ3NbYXJyYXlCdWZmZXJUYWddID0gY2xvbmVhYmxlVGFnc1tkYXRhVmlld1RhZ10gPVxuY2xvbmVhYmxlVGFnc1tib29sVGFnXSA9IGNsb25lYWJsZVRhZ3NbZGF0ZVRhZ10gPVxuY2xvbmVhYmxlVGFnc1tmbG9hdDMyVGFnXSA9IGNsb25lYWJsZVRhZ3NbZmxvYXQ2NFRhZ10gPVxuY2xvbmVhYmxlVGFnc1tpbnQ4VGFnXSA9IGNsb25lYWJsZVRhZ3NbaW50MTZUYWddID1cbmNsb25lYWJsZVRhZ3NbaW50MzJUYWddID0gY2xvbmVhYmxlVGFnc1ttYXBUYWddID1cbmNsb25lYWJsZVRhZ3NbbnVtYmVyVGFnXSA9IGNsb25lYWJsZVRhZ3Nbb2JqZWN0VGFnXSA9XG5jbG9uZWFibGVUYWdzW3JlZ2V4cFRhZ10gPSBjbG9uZWFibGVUYWdzW3NldFRhZ10gPVxuY2xvbmVhYmxlVGFnc1tzdHJpbmdUYWddID0gY2xvbmVhYmxlVGFnc1tzeW1ib2xUYWddID1cbmNsb25lYWJsZVRhZ3NbdWludDhUYWddID0gY2xvbmVhYmxlVGFnc1t1aW50OENsYW1wZWRUYWddID1cbmNsb25lYWJsZVRhZ3NbdWludDE2VGFnXSA9IGNsb25lYWJsZVRhZ3NbdWludDMyVGFnXSA9IHRydWU7XG5jbG9uZWFibGVUYWdzW2Vycm9yVGFnXSA9IGNsb25lYWJsZVRhZ3NbZnVuY1RhZ10gPVxuY2xvbmVhYmxlVGFnc1t3ZWFrTWFwVGFnXSA9IGZhbHNlO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmNsb25lYCBhbmQgYF8uY2xvbmVEZWVwYCB3aGljaCB0cmFja3NcbiAqIHRyYXZlcnNlZCBvYmplY3RzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjbG9uZS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gYml0bWFzayBUaGUgYml0bWFzayBmbGFncy5cbiAqICAxIC0gRGVlcCBjbG9uZVxuICogIDIgLSBGbGF0dGVuIGluaGVyaXRlZCBwcm9wZXJ0aWVzXG4gKiAgNCAtIENsb25lIHN5bWJvbHNcbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNsb25pbmcuXG4gKiBAcGFyYW0ge3N0cmluZ30gW2tleV0gVGhlIGtleSBvZiBgdmFsdWVgLlxuICogQHBhcmFtIHtPYmplY3R9IFtvYmplY3RdIFRoZSBwYXJlbnQgb2JqZWN0IG9mIGB2YWx1ZWAuXG4gKiBAcGFyYW0ge09iamVjdH0gW3N0YWNrXSBUcmFja3MgdHJhdmVyc2VkIG9iamVjdHMgYW5kIHRoZWlyIGNsb25lIGNvdW50ZXJwYXJ0cy5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBjbG9uZWQgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIGJhc2VDbG9uZSh2YWx1ZSwgYml0bWFzaywgY3VzdG9taXplciwga2V5LCBvYmplY3QsIHN0YWNrKSB7XG4gIHZhciByZXN1bHQsXG4gICAgICBpc0RlZXAgPSBiaXRtYXNrICYgQ0xPTkVfREVFUF9GTEFHLFxuICAgICAgaXNGbGF0ID0gYml0bWFzayAmIENMT05FX0ZMQVRfRkxBRyxcbiAgICAgIGlzRnVsbCA9IGJpdG1hc2sgJiBDTE9ORV9TWU1CT0xTX0ZMQUc7XG5cbiAgaWYgKGN1c3RvbWl6ZXIpIHtcbiAgICByZXN1bHQgPSBvYmplY3QgPyBjdXN0b21pemVyKHZhbHVlLCBrZXksIG9iamVjdCwgc3RhY2spIDogY3VzdG9taXplcih2YWx1ZSk7XG4gIH1cbiAgaWYgKHJlc3VsdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICBpZiAoIWlzT2JqZWN0KHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICB2YXIgaXNBcnIgPSBpc0FycmF5KHZhbHVlKTtcbiAgaWYgKGlzQXJyKSB7XG4gICAgcmVzdWx0ID0gaW5pdENsb25lQXJyYXkodmFsdWUpO1xuICAgIGlmICghaXNEZWVwKSB7XG4gICAgICByZXR1cm4gY29weUFycmF5KHZhbHVlLCByZXN1bHQpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB2YXIgdGFnID0gZ2V0VGFnKHZhbHVlKSxcbiAgICAgICAgaXNGdW5jID0gdGFnID09IGZ1bmNUYWcgfHwgdGFnID09IGdlblRhZztcblxuICAgIGlmIChpc0J1ZmZlcih2YWx1ZSkpIHtcbiAgICAgIHJldHVybiBjbG9uZUJ1ZmZlcih2YWx1ZSwgaXNEZWVwKTtcbiAgICB9XG4gICAgaWYgKHRhZyA9PSBvYmplY3RUYWcgfHwgdGFnID09IGFyZ3NUYWcgfHwgKGlzRnVuYyAmJiAhb2JqZWN0KSkge1xuICAgICAgcmVzdWx0ID0gKGlzRmxhdCB8fCBpc0Z1bmMpID8ge30gOiBpbml0Q2xvbmVPYmplY3QodmFsdWUpO1xuICAgICAgaWYgKCFpc0RlZXApIHtcbiAgICAgICAgcmV0dXJuIGlzRmxhdFxuICAgICAgICAgID8gY29weVN5bWJvbHNJbih2YWx1ZSwgYmFzZUFzc2lnbkluKHJlc3VsdCwgdmFsdWUpKVxuICAgICAgICAgIDogY29weVN5bWJvbHModmFsdWUsIGJhc2VBc3NpZ24ocmVzdWx0LCB2YWx1ZSkpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIWNsb25lYWJsZVRhZ3NbdGFnXSkge1xuICAgICAgICByZXR1cm4gb2JqZWN0ID8gdmFsdWUgOiB7fTtcbiAgICAgIH1cbiAgICAgIHJlc3VsdCA9IGluaXRDbG9uZUJ5VGFnKHZhbHVlLCB0YWcsIGlzRGVlcCk7XG4gICAgfVxuICB9XG4gIC8vIENoZWNrIGZvciBjaXJjdWxhciByZWZlcmVuY2VzIGFuZCByZXR1cm4gaXRzIGNvcnJlc3BvbmRpbmcgY2xvbmUuXG4gIHN0YWNrIHx8IChzdGFjayA9IG5ldyBTdGFjayk7XG4gIHZhciBzdGFja2VkID0gc3RhY2suZ2V0KHZhbHVlKTtcbiAgaWYgKHN0YWNrZWQpIHtcbiAgICByZXR1cm4gc3RhY2tlZDtcbiAgfVxuICBzdGFjay5zZXQodmFsdWUsIHJlc3VsdCk7XG5cbiAgaWYgKGlzU2V0KHZhbHVlKSkge1xuICAgIHZhbHVlLmZvckVhY2goZnVuY3Rpb24oc3ViVmFsdWUpIHtcbiAgICAgIHJlc3VsdC5hZGQoYmFzZUNsb25lKHN1YlZhbHVlLCBiaXRtYXNrLCBjdXN0b21pemVyLCBzdWJWYWx1ZSwgdmFsdWUsIHN0YWNrKSk7XG4gICAgfSk7XG4gIH0gZWxzZSBpZiAoaXNNYXAodmFsdWUpKSB7XG4gICAgdmFsdWUuZm9yRWFjaChmdW5jdGlvbihzdWJWYWx1ZSwga2V5KSB7XG4gICAgICByZXN1bHQuc2V0KGtleSwgYmFzZUNsb25lKHN1YlZhbHVlLCBiaXRtYXNrLCBjdXN0b21pemVyLCBrZXksIHZhbHVlLCBzdGFjaykpO1xuICAgIH0pO1xuICB9XG5cbiAgdmFyIGtleXNGdW5jID0gaXNGdWxsXG4gICAgPyAoaXNGbGF0ID8gZ2V0QWxsS2V5c0luIDogZ2V0QWxsS2V5cylcbiAgICA6IChpc0ZsYXQgPyBrZXlzSW4gOiBrZXlzKTtcblxuICB2YXIgcHJvcHMgPSBpc0FyciA/IHVuZGVmaW5lZCA6IGtleXNGdW5jKHZhbHVlKTtcbiAgYXJyYXlFYWNoKHByb3BzIHx8IHZhbHVlLCBmdW5jdGlvbihzdWJWYWx1ZSwga2V5KSB7XG4gICAgaWYgKHByb3BzKSB7XG4gICAgICBrZXkgPSBzdWJWYWx1ZTtcbiAgICAgIHN1YlZhbHVlID0gdmFsdWVba2V5XTtcbiAgICB9XG4gICAgLy8gUmVjdXJzaXZlbHkgcG9wdWxhdGUgY2xvbmUgKHN1c2NlcHRpYmxlIHRvIGNhbGwgc3RhY2sgbGltaXRzKS5cbiAgICBhc3NpZ25WYWx1ZShyZXN1bHQsIGtleSwgYmFzZUNsb25lKHN1YlZhbHVlLCBiaXRtYXNrLCBjdXN0b21pemVyLCBrZXksIHZhbHVlLCBzdGFjaykpO1xuICB9KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZUNsb25lO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseClone.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseCreate.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/_baseCreate.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isObject.js */ \"./node_modules/lodash-es/isObject.js\");\n\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!(0,_isObject_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseCreate);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlQ3JlYXRlLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQXFDOztBQUVyQztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUyx3REFBUTtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQsK0RBQWUsVUFBVSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VDcmVhdGUuanM/YjJhZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgaXNPYmplY3QgZnJvbSAnLi9pc09iamVjdC5qcyc7XG5cbi8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdENyZWF0ZSA9IE9iamVjdC5jcmVhdGU7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uY3JlYXRlYCB3aXRob3V0IHN1cHBvcnQgZm9yIGFzc2lnbmluZ1xuICogcHJvcGVydGllcyB0byB0aGUgY3JlYXRlZCBvYmplY3QuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm90byBUaGUgb2JqZWN0IHRvIGluaGVyaXQgZnJvbS5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBvYmplY3QuXG4gKi9cbnZhciBiYXNlQ3JlYXRlID0gKGZ1bmN0aW9uKCkge1xuICBmdW5jdGlvbiBvYmplY3QoKSB7fVxuICByZXR1cm4gZnVuY3Rpb24ocHJvdG8pIHtcbiAgICBpZiAoIWlzT2JqZWN0KHByb3RvKSkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgICBpZiAob2JqZWN0Q3JlYXRlKSB7XG4gICAgICByZXR1cm4gb2JqZWN0Q3JlYXRlKHByb3RvKTtcbiAgICB9XG4gICAgb2JqZWN0LnByb3RvdHlwZSA9IHByb3RvO1xuICAgIHZhciByZXN1bHQgPSBuZXcgb2JqZWN0O1xuICAgIG9iamVjdC5wcm90b3R5cGUgPSB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcbn0oKSk7XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VDcmVhdGU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseCreate.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseGetAllKeys.js": +/*!***************************************************!*\ + !*** ./node_modules/lodash-es/_baseGetAllKeys.js ***! + \***************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _arrayPush_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_arrayPush.js */ \"./node_modules/lodash-es/_arrayPush.js\");\n/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isArray.js */ \"./node_modules/lodash-es/isArray.js\");\n\n\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return (0,_isArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object) ? result : (0,_arrayPush_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(result, symbolsFunc(object));\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseGetAllKeys);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlR2V0QWxsS2V5cy5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7QUFBd0M7QUFDTDs7QUFFbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsVUFBVTtBQUNyQixXQUFXLFVBQVU7QUFDckIsYUFBYSxPQUFPO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBLFNBQVMsdURBQU8sb0JBQW9CLHlEQUFTO0FBQzdDOztBQUVBLCtEQUFlLGNBQWMsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlR2V0QWxsS2V5cy5qcz8zZTg1Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhcnJheVB1c2ggZnJvbSAnLi9fYXJyYXlQdXNoLmpzJztcbmltcG9ydCBpc0FycmF5IGZyb20gJy4vaXNBcnJheS5qcyc7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYGdldEFsbEtleXNgIGFuZCBgZ2V0QWxsS2V5c0luYCB3aGljaCB1c2VzXG4gKiBga2V5c0Z1bmNgIGFuZCBgc3ltYm9sc0Z1bmNgIHRvIGdldCB0aGUgZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBhbmRcbiAqIHN5bWJvbHMgb2YgYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGtleXNGdW5jIFRoZSBmdW5jdGlvbiB0byBnZXQgdGhlIGtleXMgb2YgYG9iamVjdGAuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBzeW1ib2xzRnVuYyBUaGUgZnVuY3Rpb24gdG8gZ2V0IHRoZSBzeW1ib2xzIG9mIGBvYmplY3RgLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcyBhbmQgc3ltYm9scy5cbiAqL1xuZnVuY3Rpb24gYmFzZUdldEFsbEtleXMob2JqZWN0LCBrZXlzRnVuYywgc3ltYm9sc0Z1bmMpIHtcbiAgdmFyIHJlc3VsdCA9IGtleXNGdW5jKG9iamVjdCk7XG4gIHJldHVybiBpc0FycmF5KG9iamVjdCkgPyByZXN1bHQgOiBhcnJheVB1c2gocmVzdWx0LCBzeW1ib2xzRnVuYyhvYmplY3QpKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZUdldEFsbEtleXM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseGetAllKeys.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseGetTag.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/_baseGetTag.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Symbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_Symbol.js */ \"./node_modules/lodash-es/_Symbol.js\");\n/* harmony import */ var _getRawTag_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_getRawTag.js */ \"./node_modules/lodash-es/_getRawTag.js\");\n/* harmony import */ var _objectToString_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_objectToString.js */ \"./node_modules/lodash-es/_objectToString.js\");\n\n\n\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = _Symbol_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] ? _Symbol_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? (0,_getRawTag_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value)\n : (0,_objectToString_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(value);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseGetTag);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlR2V0VGFnLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBa0M7QUFDTTtBQUNVOztBQUVsRDtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxxQkFBcUIsa0RBQU0sR0FBRyw4REFBa0I7O0FBRWhEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2QsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0seURBQVM7QUFDZixNQUFNLDhEQUFjO0FBQ3BCOztBQUVBLCtEQUFlLFVBQVUsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlR2V0VGFnLmpzPzVlZWIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFN5bWJvbCBmcm9tICcuL19TeW1ib2wuanMnO1xuaW1wb3J0IGdldFJhd1RhZyBmcm9tICcuL19nZXRSYXdUYWcuanMnO1xuaW1wb3J0IG9iamVjdFRvU3RyaW5nIGZyb20gJy4vX29iamVjdFRvU3RyaW5nLmpzJztcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIG51bGxUYWcgPSAnW29iamVjdCBOdWxsXScsXG4gICAgdW5kZWZpbmVkVGFnID0gJ1tvYmplY3QgVW5kZWZpbmVkXSc7XG5cbi8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqL1xudmFyIHN5bVRvU3RyaW5nVGFnID0gU3ltYm9sID8gU3ltYm9sLnRvU3RyaW5nVGFnIDogdW5kZWZpbmVkO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBnZXRUYWdgIHdpdGhvdXQgZmFsbGJhY2tzIGZvciBidWdneSBlbnZpcm9ubWVudHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHF1ZXJ5LlxuICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgYHRvU3RyaW5nVGFnYC5cbiAqL1xuZnVuY3Rpb24gYmFzZUdldFRhZyh2YWx1ZSkge1xuICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgIHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkVGFnIDogbnVsbFRhZztcbiAgfVxuICByZXR1cm4gKHN5bVRvU3RyaW5nVGFnICYmIHN5bVRvU3RyaW5nVGFnIGluIE9iamVjdCh2YWx1ZSkpXG4gICAgPyBnZXRSYXdUYWcodmFsdWUpXG4gICAgOiBvYmplY3RUb1N0cmluZyh2YWx1ZSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VHZXRUYWc7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseGetTag.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseIsArguments.js": +/*!****************************************************!*\ + !*** ./node_modules/lodash-es/_baseIsArguments.js ***! + \****************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseGetTag_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_baseGetTag.js */ \"./node_modules/lodash-es/_baseGetTag.js\");\n/* harmony import */ var _isObjectLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isObjectLike.js */ \"./node_modules/lodash-es/isObjectLike.js\");\n\n\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return (0,_isObjectLike_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value) && (0,_baseGetTag_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value) == argsTag;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseIsArguments);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlSXNBcmd1bWVudHMuanMuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQTBDO0FBQ0c7O0FBRTdDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBLFNBQVMsNERBQVksV0FBVywwREFBVTtBQUMxQzs7QUFFQSwrREFBZSxlQUFlLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUlzQXJndW1lbnRzLmpzPzFmMTciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGJhc2VHZXRUYWcgZnJvbSAnLi9fYmFzZUdldFRhZy5qcyc7XG5pbXBvcnQgaXNPYmplY3RMaWtlIGZyb20gJy4vaXNPYmplY3RMaWtlLmpzJztcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIGFyZ3NUYWcgPSAnW29iamVjdCBBcmd1bWVudHNdJztcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc0FyZ3VtZW50c2AuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gYGFyZ3VtZW50c2Agb2JqZWN0LFxuICovXG5mdW5jdGlvbiBiYXNlSXNBcmd1bWVudHModmFsdWUpIHtcbiAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT0gYXJnc1RhZztcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZUlzQXJndW1lbnRzO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseIsArguments.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseIsMap.js": +/*!**********************************************!*\ + !*** ./node_modules/lodash-es/_baseIsMap.js ***! + \**********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getTag_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_getTag.js */ \"./node_modules/lodash-es/_getTag.js\");\n/* harmony import */ var _isObjectLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isObjectLike.js */ \"./node_modules/lodash-es/isObjectLike.js\");\n\n\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return (0,_isObjectLike_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value) && (0,_getTag_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value) == mapTag;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseIsMap);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlSXNNYXAuanMuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQWtDO0FBQ1c7O0FBRTdDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBLFNBQVMsNERBQVksV0FBVyxzREFBTTtBQUN0Qzs7QUFFQSwrREFBZSxTQUFTLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUlzTWFwLmpzPzcyMGIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldFRhZyBmcm9tICcuL19nZXRUYWcuanMnO1xuaW1wb3J0IGlzT2JqZWN0TGlrZSBmcm9tICcuL2lzT2JqZWN0TGlrZS5qcyc7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBtYXBUYWcgPSAnW29iamVjdCBNYXBdJztcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc01hcGAgd2l0aG91dCBOb2RlLmpzIG9wdGltaXphdGlvbnMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBtYXAsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gYmFzZUlzTWFwKHZhbHVlKSB7XG4gIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGdldFRhZyh2YWx1ZSkgPT0gbWFwVGFnO1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlSXNNYXA7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseIsMap.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseIsNative.js": +/*!*************************************************!*\ + !*** ./node_modules/lodash-es/_baseIsNative.js ***! + \*************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isFunction.js */ \"./node_modules/lodash-es/isFunction.js\");\n/* harmony import */ var _isMasked_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_isMasked.js */ \"./node_modules/lodash-es/_isMasked.js\");\n/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isObject.js */ \"./node_modules/lodash-es/isObject.js\");\n/* harmony import */ var _toSource_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_toSource.js */ \"./node_modules/lodash-es/_toSource.js\");\n\n\n\n\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!(0,_isObject_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value) || (0,_isMasked_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value)) {\n return false;\n }\n var pattern = (0,_isFunction_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(value) ? reIsNative : reIsHostCtor;\n return pattern.test((0,_toSource_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(value));\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseIsNative);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlSXNOYXRpdmUuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBeUM7QUFDSDtBQUNEO0FBQ0M7O0FBRXRDO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DOztBQUVwQztBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQSxPQUFPLHdEQUFRLFdBQVcsd0RBQVE7QUFDbEM7QUFDQTtBQUNBLGdCQUFnQiwwREFBVTtBQUMxQixzQkFBc0Isd0RBQVE7QUFDOUI7O0FBRUEsK0RBQWUsWUFBWSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VJc05hdGl2ZS5qcz85MjUwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBpc0Z1bmN0aW9uIGZyb20gJy4vaXNGdW5jdGlvbi5qcyc7XG5pbXBvcnQgaXNNYXNrZWQgZnJvbSAnLi9faXNNYXNrZWQuanMnO1xuaW1wb3J0IGlzT2JqZWN0IGZyb20gJy4vaXNPYmplY3QuanMnO1xuaW1wb3J0IHRvU291cmNlIGZyb20gJy4vX3RvU291cmNlLmpzJztcblxuLyoqXG4gKiBVc2VkIHRvIG1hdGNoIGBSZWdFeHBgXG4gKiBbc3ludGF4IGNoYXJhY3RlcnNdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXBhdHRlcm5zKS5cbiAqL1xudmFyIHJlUmVnRXhwQ2hhciA9IC9bXFxcXF4kLiorPygpW1xcXXt9fF0vZztcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IGhvc3QgY29uc3RydWN0b3JzIChTYWZhcmkpLiAqL1xudmFyIHJlSXNIb3N0Q3RvciA9IC9eXFxbb2JqZWN0IC4rP0NvbnN0cnVjdG9yXFxdJC87XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBmdW5jUHJvdG8gPSBGdW5jdGlvbi5wcm90b3R5cGUsXG4gICAgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byByZXNvbHZlIHRoZSBkZWNvbXBpbGVkIHNvdXJjZSBvZiBmdW5jdGlvbnMuICovXG52YXIgZnVuY1RvU3RyaW5nID0gZnVuY1Byb3RvLnRvU3RyaW5nO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKiogVXNlZCB0byBkZXRlY3QgaWYgYSBtZXRob2QgaXMgbmF0aXZlLiAqL1xudmFyIHJlSXNOYXRpdmUgPSBSZWdFeHAoJ14nICtcbiAgZnVuY1RvU3RyaW5nLmNhbGwoaGFzT3duUHJvcGVydHkpLnJlcGxhY2UocmVSZWdFeHBDaGFyLCAnXFxcXCQmJylcbiAgLnJlcGxhY2UoL2hhc093blByb3BlcnR5fChmdW5jdGlvbikuKj8oPz1cXFxcXFwoKXwgZm9yIC4rPyg/PVxcXFxcXF0pL2csICckMS4qPycpICsgJyQnXG4pO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzTmF0aXZlYCB3aXRob3V0IGJhZCBzaGltIGNoZWNrcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIG5hdGl2ZSBmdW5jdGlvbixcbiAqICBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VJc05hdGl2ZSh2YWx1ZSkge1xuICBpZiAoIWlzT2JqZWN0KHZhbHVlKSB8fCBpc01hc2tlZCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdmFyIHBhdHRlcm4gPSBpc0Z1bmN0aW9uKHZhbHVlKSA/IHJlSXNOYXRpdmUgOiByZUlzSG9zdEN0b3I7XG4gIHJldHVybiBwYXR0ZXJuLnRlc3QodG9Tb3VyY2UodmFsdWUpKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZUlzTmF0aXZlO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseIsNative.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseIsSet.js": +/*!**********************************************!*\ + !*** ./node_modules/lodash-es/_baseIsSet.js ***! + \**********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getTag_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_getTag.js */ \"./node_modules/lodash-es/_getTag.js\");\n/* harmony import */ var _isObjectLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isObjectLike.js */ \"./node_modules/lodash-es/isObjectLike.js\");\n\n\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return (0,_isObjectLike_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value) && (0,_getTag_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value) == setTag;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseIsSet);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlSXNTZXQuanMuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQWtDO0FBQ1c7O0FBRTdDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBLFNBQVMsNERBQVksV0FBVyxzREFBTTtBQUN0Qzs7QUFFQSwrREFBZSxTQUFTLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUlzU2V0LmpzP2E2MzciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldFRhZyBmcm9tICcuL19nZXRUYWcuanMnO1xuaW1wb3J0IGlzT2JqZWN0TGlrZSBmcm9tICcuL2lzT2JqZWN0TGlrZS5qcyc7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBzZXRUYWcgPSAnW29iamVjdCBTZXRdJztcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc1NldGAgd2l0aG91dCBOb2RlLmpzIG9wdGltaXphdGlvbnMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBzZXQsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gYmFzZUlzU2V0KHZhbHVlKSB7XG4gIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGdldFRhZyh2YWx1ZSkgPT0gc2V0VGFnO1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlSXNTZXQ7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseIsSet.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseIsTypedArray.js": +/*!*****************************************************!*\ + !*** ./node_modules/lodash-es/_baseIsTypedArray.js ***! + \*****************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseGetTag_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_baseGetTag.js */ \"./node_modules/lodash-es/_baseGetTag.js\");\n/* harmony import */ var _isLength_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isLength.js */ \"./node_modules/lodash-es/isLength.js\");\n/* harmony import */ var _isObjectLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isObjectLike.js */ \"./node_modules/lodash-es/isObjectLike.js\");\n\n\n\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return (0,_isObjectLike_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value) &&\n (0,_isLength_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value.length) && !!typedArrayTags[(0,_baseGetTag_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(value)];\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseIsTypedArray);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlSXNUeXBlZEFycmF5LmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBMEM7QUFDTDtBQUNROztBQUU3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2QsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQSxTQUFTLDREQUFZO0FBQ3JCLElBQUksd0RBQVEsbUNBQW1DLDBEQUFVO0FBQ3pEOztBQUVBLCtEQUFlLGdCQUFnQixFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VJc1R5cGVkQXJyYXkuanM/OWUzZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYmFzZUdldFRhZyBmcm9tICcuL19iYXNlR2V0VGFnLmpzJztcbmltcG9ydCBpc0xlbmd0aCBmcm9tICcuL2lzTGVuZ3RoLmpzJztcbmltcG9ydCBpc09iamVjdExpa2UgZnJvbSAnLi9pc09iamVjdExpa2UuanMnO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgYXJnc1RhZyA9ICdbb2JqZWN0IEFyZ3VtZW50c10nLFxuICAgIGFycmF5VGFnID0gJ1tvYmplY3QgQXJyYXldJyxcbiAgICBib29sVGFnID0gJ1tvYmplY3QgQm9vbGVhbl0nLFxuICAgIGRhdGVUYWcgPSAnW29iamVjdCBEYXRlXScsXG4gICAgZXJyb3JUYWcgPSAnW29iamVjdCBFcnJvcl0nLFxuICAgIGZ1bmNUYWcgPSAnW29iamVjdCBGdW5jdGlvbl0nLFxuICAgIG1hcFRhZyA9ICdbb2JqZWN0IE1hcF0nLFxuICAgIG51bWJlclRhZyA9ICdbb2JqZWN0IE51bWJlcl0nLFxuICAgIG9iamVjdFRhZyA9ICdbb2JqZWN0IE9iamVjdF0nLFxuICAgIHJlZ2V4cFRhZyA9ICdbb2JqZWN0IFJlZ0V4cF0nLFxuICAgIHNldFRhZyA9ICdbb2JqZWN0IFNldF0nLFxuICAgIHN0cmluZ1RhZyA9ICdbb2JqZWN0IFN0cmluZ10nLFxuICAgIHdlYWtNYXBUYWcgPSAnW29iamVjdCBXZWFrTWFwXSc7XG5cbnZhciBhcnJheUJ1ZmZlclRhZyA9ICdbb2JqZWN0IEFycmF5QnVmZmVyXScsXG4gICAgZGF0YVZpZXdUYWcgPSAnW29iamVjdCBEYXRhVmlld10nLFxuICAgIGZsb2F0MzJUYWcgPSAnW29iamVjdCBGbG9hdDMyQXJyYXldJyxcbiAgICBmbG9hdDY0VGFnID0gJ1tvYmplY3QgRmxvYXQ2NEFycmF5XScsXG4gICAgaW50OFRhZyA9ICdbb2JqZWN0IEludDhBcnJheV0nLFxuICAgIGludDE2VGFnID0gJ1tvYmplY3QgSW50MTZBcnJheV0nLFxuICAgIGludDMyVGFnID0gJ1tvYmplY3QgSW50MzJBcnJheV0nLFxuICAgIHVpbnQ4VGFnID0gJ1tvYmplY3QgVWludDhBcnJheV0nLFxuICAgIHVpbnQ4Q2xhbXBlZFRhZyA9ICdbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XScsXG4gICAgdWludDE2VGFnID0gJ1tvYmplY3QgVWludDE2QXJyYXldJyxcbiAgICB1aW50MzJUYWcgPSAnW29iamVjdCBVaW50MzJBcnJheV0nO1xuXG4vKiogVXNlZCB0byBpZGVudGlmeSBgdG9TdHJpbmdUYWdgIHZhbHVlcyBvZiB0eXBlZCBhcnJheXMuICovXG52YXIgdHlwZWRBcnJheVRhZ3MgPSB7fTtcbnR5cGVkQXJyYXlUYWdzW2Zsb2F0MzJUYWddID0gdHlwZWRBcnJheVRhZ3NbZmxvYXQ2NFRhZ10gPVxudHlwZWRBcnJheVRhZ3NbaW50OFRhZ10gPSB0eXBlZEFycmF5VGFnc1tpbnQxNlRhZ10gPVxudHlwZWRBcnJheVRhZ3NbaW50MzJUYWddID0gdHlwZWRBcnJheVRhZ3NbdWludDhUYWddID1cbnR5cGVkQXJyYXlUYWdzW3VpbnQ4Q2xhbXBlZFRhZ10gPSB0eXBlZEFycmF5VGFnc1t1aW50MTZUYWddID1cbnR5cGVkQXJyYXlUYWdzW3VpbnQzMlRhZ10gPSB0cnVlO1xudHlwZWRBcnJheVRhZ3NbYXJnc1RhZ10gPSB0eXBlZEFycmF5VGFnc1thcnJheVRhZ10gPVxudHlwZWRBcnJheVRhZ3NbYXJyYXlCdWZmZXJUYWddID0gdHlwZWRBcnJheVRhZ3NbYm9vbFRhZ10gPVxudHlwZWRBcnJheVRhZ3NbZGF0YVZpZXdUYWddID0gdHlwZWRBcnJheVRhZ3NbZGF0ZVRhZ10gPVxudHlwZWRBcnJheVRhZ3NbZXJyb3JUYWddID0gdHlwZWRBcnJheVRhZ3NbZnVuY1RhZ10gPVxudHlwZWRBcnJheVRhZ3NbbWFwVGFnXSA9IHR5cGVkQXJyYXlUYWdzW251bWJlclRhZ10gPVxudHlwZWRBcnJheVRhZ3Nbb2JqZWN0VGFnXSA9IHR5cGVkQXJyYXlUYWdzW3JlZ2V4cFRhZ10gPVxudHlwZWRBcnJheVRhZ3Nbc2V0VGFnXSA9IHR5cGVkQXJyYXlUYWdzW3N0cmluZ1RhZ10gPVxudHlwZWRBcnJheVRhZ3Nbd2Vha01hcFRhZ10gPSBmYWxzZTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc1R5cGVkQXJyYXlgIHdpdGhvdXQgTm9kZS5qcyBvcHRpbWl6YXRpb25zLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgdHlwZWQgYXJyYXksIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gYmFzZUlzVHlwZWRBcnJheSh2YWx1ZSkge1xuICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJlxuICAgIGlzTGVuZ3RoKHZhbHVlLmxlbmd0aCkgJiYgISF0eXBlZEFycmF5VGFnc1tiYXNlR2V0VGFnKHZhbHVlKV07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VJc1R5cGVkQXJyYXk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseIsTypedArray.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseKeys.js": +/*!*********************************************!*\ + !*** ./node_modules/lodash-es/_baseKeys.js ***! + \*********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _isPrototype_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isPrototype.js */ \"./node_modules/lodash-es/_isPrototype.js\");\n/* harmony import */ var _nativeKeys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_nativeKeys.js */ \"./node_modules/lodash-es/_nativeKeys.js\");\n\n\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!(0,_isPrototype_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object)) {\n return (0,_nativeKeys_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseKeys);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlS2V5cy5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7QUFBNEM7QUFDRjs7QUFFMUM7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsT0FBTztBQUNwQjtBQUNBO0FBQ0EsT0FBTywyREFBVztBQUNsQixXQUFXLDBEQUFVO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxRQUFRLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUtleXMuanM/OTY5OSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgaXNQcm90b3R5cGUgZnJvbSAnLi9faXNQcm90b3R5cGUuanMnO1xuaW1wb3J0IG5hdGl2ZUtleXMgZnJvbSAnLi9fbmF0aXZlS2V5cy5qcyc7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ua2V5c2Agd2hpY2ggZG9lc24ndCB0cmVhdCBzcGFyc2UgYXJyYXlzIGFzIGRlbnNlLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICovXG5mdW5jdGlvbiBiYXNlS2V5cyhvYmplY3QpIHtcbiAgaWYgKCFpc1Byb3RvdHlwZShvYmplY3QpKSB7XG4gICAgcmV0dXJuIG5hdGl2ZUtleXMob2JqZWN0KTtcbiAgfVxuICB2YXIgcmVzdWx0ID0gW107XG4gIGZvciAodmFyIGtleSBpbiBPYmplY3Qob2JqZWN0KSkge1xuICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwga2V5KSAmJiBrZXkgIT0gJ2NvbnN0cnVjdG9yJykge1xuICAgICAgcmVzdWx0LnB1c2goa2V5KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZUtleXM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseKeys.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseKeysIn.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/_baseKeysIn.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isObject.js */ \"./node_modules/lodash-es/isObject.js\");\n/* harmony import */ var _isPrototype_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_isPrototype.js */ \"./node_modules/lodash-es/_isPrototype.js\");\n/* harmony import */ var _nativeKeysIn_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_nativeKeysIn.js */ \"./node_modules/lodash-es/_nativeKeysIn.js\");\n\n\n\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!(0,_isObject_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object)) {\n return (0,_nativeKeysIn_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(object);\n }\n var isProto = (0,_isPrototype_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseKeysIn);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlS2V5c0luLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBcUM7QUFDTztBQUNFOztBQUU5QztBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsYUFBYSxPQUFPO0FBQ3BCO0FBQ0E7QUFDQSxPQUFPLHdEQUFRO0FBQ2YsV0FBVyw0REFBWTtBQUN2QjtBQUNBLGdCQUFnQiwyREFBVztBQUMzQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxVQUFVLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUtleXNJbi5qcz80ODg1Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBpc09iamVjdCBmcm9tICcuL2lzT2JqZWN0LmpzJztcbmltcG9ydCBpc1Byb3RvdHlwZSBmcm9tICcuL19pc1Byb3RvdHlwZS5qcyc7XG5pbXBvcnQgbmF0aXZlS2V5c0luIGZyb20gJy4vX25hdGl2ZUtleXNJbi5qcyc7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ua2V5c0luYCB3aGljaCBkb2Vzbid0IHRyZWF0IHNwYXJzZSBhcnJheXMgYXMgZGVuc2UuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMuXG4gKi9cbmZ1bmN0aW9uIGJhc2VLZXlzSW4ob2JqZWN0KSB7XG4gIGlmICghaXNPYmplY3Qob2JqZWN0KSkge1xuICAgIHJldHVybiBuYXRpdmVLZXlzSW4ob2JqZWN0KTtcbiAgfVxuICB2YXIgaXNQcm90byA9IGlzUHJvdG90eXBlKG9iamVjdCksXG4gICAgICByZXN1bHQgPSBbXTtcblxuICBmb3IgKHZhciBrZXkgaW4gb2JqZWN0KSB7XG4gICAgaWYgKCEoa2V5ID09ICdjb25zdHJ1Y3RvcicgJiYgKGlzUHJvdG8gfHwgIWhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpKSkpIHtcbiAgICAgIHJlc3VsdC5wdXNoKGtleSk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VLZXlzSW47XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseKeysIn.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseTimes.js": +/*!**********************************************!*\ + !*** ./node_modules/lodash-es/_baseTimes.js ***! + \**********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseTimes);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlVGltZXMuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxVQUFVO0FBQ3JCLGFBQWEsT0FBTztBQUNwQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLCtEQUFlLFNBQVMsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlVGltZXMuanM/ZTYwOSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnRpbWVzYCB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlIHNob3J0aGFuZHNcbiAqIG9yIG1heCBhcnJheSBsZW5ndGggY2hlY2tzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge251bWJlcn0gbiBUaGUgbnVtYmVyIG9mIHRpbWVzIHRvIGludm9rZSBgaXRlcmF0ZWVgLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcmVzdWx0cy5cbiAqL1xuZnVuY3Rpb24gYmFzZVRpbWVzKG4sIGl0ZXJhdGVlKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgcmVzdWx0ID0gQXJyYXkobik7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBuKSB7XG4gICAgcmVzdWx0W2luZGV4XSA9IGl0ZXJhdGVlKGluZGV4KTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlVGltZXM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseTimes.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseToString.js": +/*!*************************************************!*\ + !*** ./node_modules/lodash-es/_baseToString.js ***! + \*************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Symbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_Symbol.js */ \"./node_modules/lodash-es/_Symbol.js\");\n/* harmony import */ var _arrayMap_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_arrayMap.js */ \"./node_modules/lodash-es/_arrayMap.js\");\n/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isArray.js */ \"./node_modules/lodash-es/isArray.js\");\n/* harmony import */ var _isSymbol_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./isSymbol.js */ \"./node_modules/lodash-es/isSymbol.js\");\n\n\n\n\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = _Symbol_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] ? _Symbol_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if ((0,_isArray_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return (0,_arrayMap_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(value, baseToString) + '';\n }\n if ((0,_isSymbol_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseToString);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlVG9TdHJpbmcuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBa0M7QUFDSTtBQUNIO0FBQ0U7O0FBRXJDO0FBQ0E7O0FBRUE7QUFDQSxrQkFBa0Isa0RBQU0sR0FBRyw0REFBZ0I7QUFDM0M7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLGFBQWEsUUFBUTtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLHVEQUFPO0FBQ2I7QUFDQSxXQUFXLHdEQUFRO0FBQ25CO0FBQ0EsTUFBTSx3REFBUTtBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsWUFBWSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VUb1N0cmluZy5qcz84OWU4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBTeW1ib2wgZnJvbSAnLi9fU3ltYm9sLmpzJztcbmltcG9ydCBhcnJheU1hcCBmcm9tICcuL19hcnJheU1hcC5qcyc7XG5pbXBvcnQgaXNBcnJheSBmcm9tICcuL2lzQXJyYXkuanMnO1xuaW1wb3J0IGlzU3ltYm9sIGZyb20gJy4vaXNTeW1ib2wuanMnO1xuXG4vKiogVXNlZCBhcyByZWZlcmVuY2VzIGZvciB2YXJpb3VzIGBOdW1iZXJgIGNvbnN0YW50cy4gKi9cbnZhciBJTkZJTklUWSA9IDEgLyAwO1xuXG4vKiogVXNlZCB0byBjb252ZXJ0IHN5bWJvbHMgdG8gcHJpbWl0aXZlcyBhbmQgc3RyaW5ncy4gKi9cbnZhciBzeW1ib2xQcm90byA9IFN5bWJvbCA/IFN5bWJvbC5wcm90b3R5cGUgOiB1bmRlZmluZWQsXG4gICAgc3ltYm9sVG9TdHJpbmcgPSBzeW1ib2xQcm90byA/IHN5bWJvbFByb3RvLnRvU3RyaW5nIDogdW5kZWZpbmVkO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnRvU3RyaW5nYCB3aGljaCBkb2Vzbid0IGNvbnZlcnQgbnVsbGlzaFxuICogdmFsdWVzIHRvIGVtcHR5IHN0cmluZ3MuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHByb2Nlc3MuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBzdHJpbmcuXG4gKi9cbmZ1bmN0aW9uIGJhc2VUb1N0cmluZyh2YWx1ZSkge1xuICAvLyBFeGl0IGVhcmx5IGZvciBzdHJpbmdzIHRvIGF2b2lkIGEgcGVyZm9ybWFuY2UgaGl0IGluIHNvbWUgZW52aXJvbm1lbnRzLlxuICBpZiAodHlwZW9mIHZhbHVlID09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIGlmIChpc0FycmF5KHZhbHVlKSkge1xuICAgIC8vIFJlY3Vyc2l2ZWx5IGNvbnZlcnQgdmFsdWVzIChzdXNjZXB0aWJsZSB0byBjYWxsIHN0YWNrIGxpbWl0cykuXG4gICAgcmV0dXJuIGFycmF5TWFwKHZhbHVlLCBiYXNlVG9TdHJpbmcpICsgJyc7XG4gIH1cbiAgaWYgKGlzU3ltYm9sKHZhbHVlKSkge1xuICAgIHJldHVybiBzeW1ib2xUb1N0cmluZyA/IHN5bWJvbFRvU3RyaW5nLmNhbGwodmFsdWUpIDogJyc7XG4gIH1cbiAgdmFyIHJlc3VsdCA9ICh2YWx1ZSArICcnKTtcbiAgcmV0dXJuIChyZXN1bHQgPT0gJzAnICYmICgxIC8gdmFsdWUpID09IC1JTkZJTklUWSkgPyAnLTAnIDogcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlVG9TdHJpbmc7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseToString.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseUnary.js": +/*!**********************************************!*\ + !*** ./node_modules/lodash-es/_baseUnary.js ***! + \**********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseUnary);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlVW5hcnkuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxVQUFVO0FBQ3JCLGFBQWEsVUFBVTtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsU0FBUyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VVbmFyeS5qcz82MzQwIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8udW5hcnlgIHdpdGhvdXQgc3VwcG9ydCBmb3Igc3RvcmluZyBtZXRhZGF0YS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gY2FwIGFyZ3VtZW50cyBmb3IuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBjYXBwZWQgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGJhc2VVbmFyeShmdW5jKSB7XG4gIHJldHVybiBmdW5jdGlvbih2YWx1ZSkge1xuICAgIHJldHVybiBmdW5jKHZhbHVlKTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZVVuYXJ5O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseUnary.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_cloneArrayBuffer.js": +/*!*****************************************************!*\ + !*** ./node_modules/lodash-es/_cloneArrayBuffer.js ***! + \*****************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Uint8Array_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_Uint8Array.js */ \"./node_modules/lodash-es/_Uint8Array.js\");\n\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new _Uint8Array_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"](result).set(new _Uint8Array_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"](arrayBuffer));\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (cloneArrayBuffer);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jbG9uZUFycmF5QnVmZmVyLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQTBDOztBQUUxQztBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsYUFBYTtBQUN4QixhQUFhLGFBQWE7QUFDMUI7QUFDQTtBQUNBO0FBQ0EsTUFBTSxzREFBVSxpQkFBaUIsc0RBQVU7QUFDM0M7QUFDQTs7QUFFQSwrREFBZSxnQkFBZ0IsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jbG9uZUFycmF5QnVmZmVyLmpzPzY0ZjQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFVpbnQ4QXJyYXkgZnJvbSAnLi9fVWludDhBcnJheS5qcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGNsb25lIG9mIGBhcnJheUJ1ZmZlcmAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXlCdWZmZXJ9IGFycmF5QnVmZmVyIFRoZSBhcnJheSBidWZmZXIgdG8gY2xvbmUuXG4gKiBAcmV0dXJucyB7QXJyYXlCdWZmZXJ9IFJldHVybnMgdGhlIGNsb25lZCBhcnJheSBidWZmZXIuXG4gKi9cbmZ1bmN0aW9uIGNsb25lQXJyYXlCdWZmZXIoYXJyYXlCdWZmZXIpIHtcbiAgdmFyIHJlc3VsdCA9IG5ldyBhcnJheUJ1ZmZlci5jb25zdHJ1Y3RvcihhcnJheUJ1ZmZlci5ieXRlTGVuZ3RoKTtcbiAgbmV3IFVpbnQ4QXJyYXkocmVzdWx0KS5zZXQobmV3IFVpbnQ4QXJyYXkoYXJyYXlCdWZmZXIpKTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xvbmVBcnJheUJ1ZmZlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_cloneArrayBuffer.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_cloneBuffer.js": +/*!************************************************!*\ + !*** ./node_modules/lodash-es/_cloneBuffer.js ***! + \************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_root.js */ \"./node_modules/lodash-es/_root.js\");\n\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? _root_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (cloneBuffer);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jbG9uZUJ1ZmZlci5qcy5qcyIsIm1hcHBpbmdzIjoiOztBQUE4Qjs7QUFFOUI7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSw2QkFBNkIsdURBQVc7QUFDeEM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxTQUFTO0FBQ3BCLGFBQWEsUUFBUTtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsV0FBVyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Nsb25lQnVmZmVyLmpzP2QyOTIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJvb3QgZnJvbSAnLi9fcm9vdC5qcyc7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgZXhwb3J0c2AuICovXG52YXIgZnJlZUV4cG9ydHMgPSB0eXBlb2YgZXhwb3J0cyA9PSAnb2JqZWN0JyAmJiBleHBvcnRzICYmICFleHBvcnRzLm5vZGVUeXBlICYmIGV4cG9ydHM7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgbW9kdWxlYC4gKi9cbnZhciBmcmVlTW9kdWxlID0gZnJlZUV4cG9ydHMgJiYgdHlwZW9mIG1vZHVsZSA9PSAnb2JqZWN0JyAmJiBtb2R1bGUgJiYgIW1vZHVsZS5ub2RlVHlwZSAmJiBtb2R1bGU7XG5cbi8qKiBEZXRlY3QgdGhlIHBvcHVsYXIgQ29tbW9uSlMgZXh0ZW5zaW9uIGBtb2R1bGUuZXhwb3J0c2AuICovXG52YXIgbW9kdWxlRXhwb3J0cyA9IGZyZWVNb2R1bGUgJiYgZnJlZU1vZHVsZS5leHBvcnRzID09PSBmcmVlRXhwb3J0cztcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgQnVmZmVyID0gbW9kdWxlRXhwb3J0cyA/IHJvb3QuQnVmZmVyIDogdW5kZWZpbmVkLFxuICAgIGFsbG9jVW5zYWZlID0gQnVmZmVyID8gQnVmZmVyLmFsbG9jVW5zYWZlIDogdW5kZWZpbmVkO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBjbG9uZSBvZiAgYGJ1ZmZlcmAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QnVmZmVyfSBidWZmZXIgVGhlIGJ1ZmZlciB0byBjbG9uZS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzRGVlcF0gU3BlY2lmeSBhIGRlZXAgY2xvbmUuXG4gKiBAcmV0dXJucyB7QnVmZmVyfSBSZXR1cm5zIHRoZSBjbG9uZWQgYnVmZmVyLlxuICovXG5mdW5jdGlvbiBjbG9uZUJ1ZmZlcihidWZmZXIsIGlzRGVlcCkge1xuICBpZiAoaXNEZWVwKSB7XG4gICAgcmV0dXJuIGJ1ZmZlci5zbGljZSgpO1xuICB9XG4gIHZhciBsZW5ndGggPSBidWZmZXIubGVuZ3RoLFxuICAgICAgcmVzdWx0ID0gYWxsb2NVbnNhZmUgPyBhbGxvY1Vuc2FmZShsZW5ndGgpIDogbmV3IGJ1ZmZlci5jb25zdHJ1Y3RvcihsZW5ndGgpO1xuXG4gIGJ1ZmZlci5jb3B5KHJlc3VsdCk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsb25lQnVmZmVyO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_cloneBuffer.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_cloneDataView.js": +/*!**************************************************!*\ + !*** ./node_modules/lodash-es/_cloneDataView.js ***! + \**************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _cloneArrayBuffer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_cloneArrayBuffer.js */ \"./node_modules/lodash-es/_cloneArrayBuffer.js\");\n\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? (0,_cloneArrayBuffer_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (cloneDataView);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jbG9uZURhdGFWaWV3LmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQXNEOztBQUV0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLFNBQVM7QUFDcEIsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQSx3QkFBd0IsZ0VBQWdCO0FBQ3hDO0FBQ0E7O0FBRUEsK0RBQWUsYUFBYSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Nsb25lRGF0YVZpZXcuanM/ZGM1MiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY2xvbmVBcnJheUJ1ZmZlciBmcm9tICcuL19jbG9uZUFycmF5QnVmZmVyLmpzJztcblxuLyoqXG4gKiBDcmVhdGVzIGEgY2xvbmUgb2YgYGRhdGFWaWV3YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IGRhdGFWaWV3IFRoZSBkYXRhIHZpZXcgdG8gY2xvbmUuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0RlZXBdIFNwZWNpZnkgYSBkZWVwIGNsb25lLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgY2xvbmVkIGRhdGEgdmlldy5cbiAqL1xuZnVuY3Rpb24gY2xvbmVEYXRhVmlldyhkYXRhVmlldywgaXNEZWVwKSB7XG4gIHZhciBidWZmZXIgPSBpc0RlZXAgPyBjbG9uZUFycmF5QnVmZmVyKGRhdGFWaWV3LmJ1ZmZlcikgOiBkYXRhVmlldy5idWZmZXI7XG4gIHJldHVybiBuZXcgZGF0YVZpZXcuY29uc3RydWN0b3IoYnVmZmVyLCBkYXRhVmlldy5ieXRlT2Zmc2V0LCBkYXRhVmlldy5ieXRlTGVuZ3RoKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xvbmVEYXRhVmlldztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_cloneDataView.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_cloneRegExp.js": +/*!************************************************!*\ + !*** ./node_modules/lodash-es/_cloneRegExp.js ***! + \************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (cloneRegExp);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jbG9uZVJlZ0V4cC5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLCtEQUFlLFdBQVcsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jbG9uZVJlZ0V4cC5qcz81NzhhIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBVc2VkIHRvIG1hdGNoIGBSZWdFeHBgIGZsYWdzIGZyb20gdGhlaXIgY29lcmNlZCBzdHJpbmcgdmFsdWVzLiAqL1xudmFyIHJlRmxhZ3MgPSAvXFx3KiQvO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBjbG9uZSBvZiBgcmVnZXhwYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IHJlZ2V4cCBUaGUgcmVnZXhwIHRvIGNsb25lLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgY2xvbmVkIHJlZ2V4cC5cbiAqL1xuZnVuY3Rpb24gY2xvbmVSZWdFeHAocmVnZXhwKSB7XG4gIHZhciByZXN1bHQgPSBuZXcgcmVnZXhwLmNvbnN0cnVjdG9yKHJlZ2V4cC5zb3VyY2UsIHJlRmxhZ3MuZXhlYyhyZWdleHApKTtcbiAgcmVzdWx0Lmxhc3RJbmRleCA9IHJlZ2V4cC5sYXN0SW5kZXg7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsb25lUmVnRXhwO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_cloneRegExp.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_cloneSymbol.js": +/*!************************************************!*\ + !*** ./node_modules/lodash-es/_cloneSymbol.js ***! + \************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Symbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_Symbol.js */ \"./node_modules/lodash-es/_Symbol.js\");\n\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = _Symbol_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] ? _Symbol_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (cloneSymbol);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jbG9uZVN5bWJvbC5qcy5qcyIsIm1hcHBpbmdzIjoiOztBQUFrQzs7QUFFbEM7QUFDQSxrQkFBa0Isa0RBQU0sR0FBRyw0REFBZ0I7QUFDM0M7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBOztBQUVBLCtEQUFlLFdBQVcsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jbG9uZVN5bWJvbC5qcz9kNzIwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBTeW1ib2wgZnJvbSAnLi9fU3ltYm9sLmpzJztcblxuLyoqIFVzZWQgdG8gY29udmVydCBzeW1ib2xzIHRvIHByaW1pdGl2ZXMgYW5kIHN0cmluZ3MuICovXG52YXIgc3ltYm9sUHJvdG8gPSBTeW1ib2wgPyBTeW1ib2wucHJvdG90eXBlIDogdW5kZWZpbmVkLFxuICAgIHN5bWJvbFZhbHVlT2YgPSBzeW1ib2xQcm90byA/IHN5bWJvbFByb3RvLnZhbHVlT2YgOiB1bmRlZmluZWQ7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGNsb25lIG9mIHRoZSBgc3ltYm9sYCBvYmplY3QuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBzeW1ib2wgVGhlIHN5bWJvbCBvYmplY3QgdG8gY2xvbmUuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBjbG9uZWQgc3ltYm9sIG9iamVjdC5cbiAqL1xuZnVuY3Rpb24gY2xvbmVTeW1ib2woc3ltYm9sKSB7XG4gIHJldHVybiBzeW1ib2xWYWx1ZU9mID8gT2JqZWN0KHN5bWJvbFZhbHVlT2YuY2FsbChzeW1ib2wpKSA6IHt9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbG9uZVN5bWJvbDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_cloneSymbol.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_cloneTypedArray.js": +/*!****************************************************!*\ + !*** ./node_modules/lodash-es/_cloneTypedArray.js ***! + \****************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _cloneArrayBuffer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_cloneArrayBuffer.js */ \"./node_modules/lodash-es/_cloneArrayBuffer.js\");\n\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? (0,_cloneArrayBuffer_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (cloneTypedArray);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jbG9uZVR5cGVkQXJyYXkuanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBc0Q7O0FBRXREO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsU0FBUztBQUNwQixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBLHdCQUF3QixnRUFBZ0I7QUFDeEM7QUFDQTs7QUFFQSwrREFBZSxlQUFlLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fY2xvbmVUeXBlZEFycmF5LmpzPzQ1OTkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNsb25lQXJyYXlCdWZmZXIgZnJvbSAnLi9fY2xvbmVBcnJheUJ1ZmZlci5qcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGNsb25lIG9mIGB0eXBlZEFycmF5YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IHR5cGVkQXJyYXkgVGhlIHR5cGVkIGFycmF5IHRvIGNsb25lLlxuICogQHBhcmFtIHtib29sZWFufSBbaXNEZWVwXSBTcGVjaWZ5IGEgZGVlcCBjbG9uZS5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGNsb25lZCB0eXBlZCBhcnJheS5cbiAqL1xuZnVuY3Rpb24gY2xvbmVUeXBlZEFycmF5KHR5cGVkQXJyYXksIGlzRGVlcCkge1xuICB2YXIgYnVmZmVyID0gaXNEZWVwID8gY2xvbmVBcnJheUJ1ZmZlcih0eXBlZEFycmF5LmJ1ZmZlcikgOiB0eXBlZEFycmF5LmJ1ZmZlcjtcbiAgcmV0dXJuIG5ldyB0eXBlZEFycmF5LmNvbnN0cnVjdG9yKGJ1ZmZlciwgdHlwZWRBcnJheS5ieXRlT2Zmc2V0LCB0eXBlZEFycmF5Lmxlbmd0aCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsb25lVHlwZWRBcnJheTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_cloneTypedArray.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_copyArray.js": +/*!**********************************************!*\ + !*** ./node_modules/lodash-es/_copyArray.js ***! + \**********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (copyArray);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jb3B5QXJyYXkuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLFdBQVcsT0FBTztBQUNsQixhQUFhLE9BQU87QUFDcEI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLCtEQUFlLFNBQVMsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jb3B5QXJyYXkuanM/ZDM4ZiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcGllcyB0aGUgdmFsdWVzIG9mIGBzb3VyY2VgIHRvIGBhcnJheWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IHNvdXJjZSBUaGUgYXJyYXkgdG8gY29weSB2YWx1ZXMgZnJvbS5cbiAqIEBwYXJhbSB7QXJyYXl9IFthcnJheT1bXV0gVGhlIGFycmF5IHRvIGNvcHkgdmFsdWVzIHRvLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBhcnJheWAuXG4gKi9cbmZ1bmN0aW9uIGNvcHlBcnJheShzb3VyY2UsIGFycmF5KSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gc291cmNlLmxlbmd0aDtcblxuICBhcnJheSB8fCAoYXJyYXkgPSBBcnJheShsZW5ndGgpKTtcbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICBhcnJheVtpbmRleF0gPSBzb3VyY2VbaW5kZXhdO1xuICB9XG4gIHJldHVybiBhcnJheTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY29weUFycmF5O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_copyArray.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_copyObject.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/_copyObject.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _assignValue_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_assignValue.js */ \"./node_modules/lodash-es/_assignValue.js\");\n/* harmony import */ var _baseAssignValue_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseAssignValue.js */ \"./node_modules/lodash-es/_baseAssignValue.js\");\n\n\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n (0,_baseAssignValue_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object, key, newValue);\n } else {\n (0,_assignValue_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(object, key, newValue);\n }\n }\n return object;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (copyObject);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jb3B5T2JqZWN0LmpzLmpzIiwibWFwcGluZ3MiOiI7OztBQUE0QztBQUNROztBQUVwRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLE9BQU87QUFDbEIsV0FBVyxRQUFRLFVBQVU7QUFDN0IsV0FBVyxVQUFVO0FBQ3JCLGFBQWEsUUFBUTtBQUNyQjtBQUNBO0FBQ0E7QUFDQSx3QkFBd0I7O0FBRXhCO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLCtEQUFlO0FBQ3JCLE1BQU07QUFDTixNQUFNLDJEQUFXO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBOztBQUVBLCtEQUFlLFVBQVUsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jb3B5T2JqZWN0LmpzPzc1YWUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2lnblZhbHVlIGZyb20gJy4vX2Fzc2lnblZhbHVlLmpzJztcbmltcG9ydCBiYXNlQXNzaWduVmFsdWUgZnJvbSAnLi9fYmFzZUFzc2lnblZhbHVlLmpzJztcblxuLyoqXG4gKiBDb3BpZXMgcHJvcGVydGllcyBvZiBgc291cmNlYCB0byBgb2JqZWN0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IHRvIGNvcHkgcHJvcGVydGllcyBmcm9tLlxuICogQHBhcmFtIHtBcnJheX0gcHJvcHMgVGhlIHByb3BlcnR5IGlkZW50aWZpZXJzIHRvIGNvcHkuXG4gKiBAcGFyYW0ge09iamVjdH0gW29iamVjdD17fV0gVGhlIG9iamVjdCB0byBjb3B5IHByb3BlcnRpZXMgdG8uXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjb3BpZWQgdmFsdWVzLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAqL1xuZnVuY3Rpb24gY29weU9iamVjdChzb3VyY2UsIHByb3BzLCBvYmplY3QsIGN1c3RvbWl6ZXIpIHtcbiAgdmFyIGlzTmV3ID0gIW9iamVjdDtcbiAgb2JqZWN0IHx8IChvYmplY3QgPSB7fSk7XG5cbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBwcm9wcy5sZW5ndGg7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICB2YXIga2V5ID0gcHJvcHNbaW5kZXhdO1xuXG4gICAgdmFyIG5ld1ZhbHVlID0gY3VzdG9taXplclxuICAgICAgPyBjdXN0b21pemVyKG9iamVjdFtrZXldLCBzb3VyY2Vba2V5XSwga2V5LCBvYmplY3QsIHNvdXJjZSlcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgaWYgKG5ld1ZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIG5ld1ZhbHVlID0gc291cmNlW2tleV07XG4gICAgfVxuICAgIGlmIChpc05ldykge1xuICAgICAgYmFzZUFzc2lnblZhbHVlKG9iamVjdCwga2V5LCBuZXdWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFzc2lnblZhbHVlKG9iamVjdCwga2V5LCBuZXdWYWx1ZSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBvYmplY3Q7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNvcHlPYmplY3Q7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_copyObject.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_copySymbols.js": +/*!************************************************!*\ + !*** ./node_modules/lodash-es/_copySymbols.js ***! + \************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _copyObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_copyObject.js */ \"./node_modules/lodash-es/_copyObject.js\");\n/* harmony import */ var _getSymbols_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_getSymbols.js */ \"./node_modules/lodash-es/_getSymbols.js\");\n\n\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return (0,_copyObject_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(source, (0,_getSymbols_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(source), object);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (copySymbols);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jb3B5U3ltYm9scy5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7QUFBMEM7QUFDQTs7QUFFMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRLFVBQVU7QUFDN0IsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQSxTQUFTLDBEQUFVLFNBQVMsMERBQVU7QUFDdEM7O0FBRUEsK0RBQWUsV0FBVyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2NvcHlTeW1ib2xzLmpzPzc5YjYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvcHlPYmplY3QgZnJvbSAnLi9fY29weU9iamVjdC5qcyc7XG5pbXBvcnQgZ2V0U3ltYm9scyBmcm9tICcuL19nZXRTeW1ib2xzLmpzJztcblxuLyoqXG4gKiBDb3BpZXMgb3duIHN5bWJvbHMgb2YgYHNvdXJjZWAgdG8gYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIG9iamVjdCB0byBjb3B5IHN5bWJvbHMgZnJvbS5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0PXt9XSBUaGUgb2JqZWN0IHRvIGNvcHkgc3ltYm9scyB0by5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gKi9cbmZ1bmN0aW9uIGNvcHlTeW1ib2xzKHNvdXJjZSwgb2JqZWN0KSB7XG4gIHJldHVybiBjb3B5T2JqZWN0KHNvdXJjZSwgZ2V0U3ltYm9scyhzb3VyY2UpLCBvYmplY3QpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjb3B5U3ltYm9scztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_copySymbols.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_copySymbolsIn.js": +/*!**************************************************!*\ + !*** ./node_modules/lodash-es/_copySymbolsIn.js ***! + \**************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _copyObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_copyObject.js */ \"./node_modules/lodash-es/_copyObject.js\");\n/* harmony import */ var _getSymbolsIn_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_getSymbolsIn.js */ \"./node_modules/lodash-es/_getSymbolsIn.js\");\n\n\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return (0,_copyObject_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(source, (0,_getSymbolsIn_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(source), object);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (copySymbolsIn);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jb3B5U3ltYm9sc0luLmpzLmpzIiwibWFwcGluZ3MiOiI7OztBQUEwQztBQUNJOztBQUU5QztBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVEsVUFBVTtBQUM3QixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBLFNBQVMsMERBQVUsU0FBUyw0REFBWTtBQUN4Qzs7QUFFQSwrREFBZSxhQUFhLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fY29weVN5bWJvbHNJbi5qcz8wOWNmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjb3B5T2JqZWN0IGZyb20gJy4vX2NvcHlPYmplY3QuanMnO1xuaW1wb3J0IGdldFN5bWJvbHNJbiBmcm9tICcuL19nZXRTeW1ib2xzSW4uanMnO1xuXG4vKipcbiAqIENvcGllcyBvd24gYW5kIGluaGVyaXRlZCBzeW1ib2xzIG9mIGBzb3VyY2VgIHRvIGBvYmplY3RgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBvYmplY3QgdG8gY29weSBzeW1ib2xzIGZyb20uXG4gKiBAcGFyYW0ge09iamVjdH0gW29iamVjdD17fV0gVGhlIG9iamVjdCB0byBjb3B5IHN5bWJvbHMgdG8uXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICovXG5mdW5jdGlvbiBjb3B5U3ltYm9sc0luKHNvdXJjZSwgb2JqZWN0KSB7XG4gIHJldHVybiBjb3B5T2JqZWN0KHNvdXJjZSwgZ2V0U3ltYm9sc0luKHNvdXJjZSksIG9iamVjdCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNvcHlTeW1ib2xzSW47XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_copySymbolsIn.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_coreJsData.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/_coreJsData.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_root.js */ \"./node_modules/lodash-es/_root.js\");\n\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = _root_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"][\"__core-js_shared__\"];\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (coreJsData);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jb3JlSnNEYXRhLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQThCOztBQUU5QjtBQUNBLGlCQUFpQixzRUFBMEI7O0FBRTNDLCtEQUFlLFVBQVUsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jb3JlSnNEYXRhLmpzPzU5OTYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJvb3QgZnJvbSAnLi9fcm9vdC5qcyc7XG5cbi8qKiBVc2VkIHRvIGRldGVjdCBvdmVycmVhY2hpbmcgY29yZS1qcyBzaGltcy4gKi9cbnZhciBjb3JlSnNEYXRhID0gcm9vdFsnX19jb3JlLWpzX3NoYXJlZF9fJ107XG5cbmV4cG9ydCBkZWZhdWx0IGNvcmVKc0RhdGE7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_coreJsData.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_defineProperty.js": +/*!***************************************************!*\ + !*** ./node_modules/lodash-es/_defineProperty.js ***! + \***************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getNative_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getNative.js */ \"./node_modules/lodash-es/_getNative.js\");\n\n\nvar defineProperty = (function() {\n try {\n var func = (0,_getNative_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (defineProperty);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19kZWZpbmVQcm9wZXJ0eS5qcy5qcyIsIm1hcHBpbmdzIjoiOztBQUF3Qzs7QUFFeEM7QUFDQTtBQUNBLGVBQWUseURBQVM7QUFDeEIsV0FBVyxRQUFRO0FBQ25CO0FBQ0EsSUFBSTtBQUNKLENBQUM7O0FBRUQsK0RBQWUsY0FBYyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2RlZmluZVByb3BlcnR5LmpzPzRjM2QiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldE5hdGl2ZSBmcm9tICcuL19nZXROYXRpdmUuanMnO1xuXG52YXIgZGVmaW5lUHJvcGVydHkgPSAoZnVuY3Rpb24oKSB7XG4gIHRyeSB7XG4gICAgdmFyIGZ1bmMgPSBnZXROYXRpdmUoT2JqZWN0LCAnZGVmaW5lUHJvcGVydHknKTtcbiAgICBmdW5jKHt9LCAnJywge30pO1xuICAgIHJldHVybiBmdW5jO1xuICB9IGNhdGNoIChlKSB7fVxufSgpKTtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lUHJvcGVydHk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_defineProperty.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_freeGlobal.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/_freeGlobal.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (freeGlobal);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19mcmVlR2xvYmFsLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBQTtBQUNBOztBQUVBLCtEQUFlLFVBQVUsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19mcmVlR2xvYmFsLmpzPzliMDUiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBnbG9iYWxgIGZyb20gTm9kZS5qcy4gKi9cbnZhciBmcmVlR2xvYmFsID0gdHlwZW9mIGdsb2JhbCA9PSAnb2JqZWN0JyAmJiBnbG9iYWwgJiYgZ2xvYmFsLk9iamVjdCA9PT0gT2JqZWN0ICYmIGdsb2JhbDtcblxuZXhwb3J0IGRlZmF1bHQgZnJlZUdsb2JhbDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_freeGlobal.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_getAllKeys.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/_getAllKeys.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseGetAllKeys_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseGetAllKeys.js */ \"./node_modules/lodash-es/_baseGetAllKeys.js\");\n/* harmony import */ var _getSymbols_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_getSymbols.js */ \"./node_modules/lodash-es/_getSymbols.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keys.js */ \"./node_modules/lodash-es/keys.js\");\n\n\n\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return (0,_baseGetAllKeys_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object, _keys_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], _getSymbols_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (getAllKeys);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRBbGxLZXlzLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBa0Q7QUFDUjtBQUNiOztBQUU3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixhQUFhLE9BQU87QUFDcEI7QUFDQTtBQUNBLFNBQVMsOERBQWMsU0FBUyxnREFBSSxFQUFFLHNEQUFVO0FBQ2hEOztBQUVBLCtEQUFlLFVBQVUsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRBbGxLZXlzLmpzP2JlZjMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGJhc2VHZXRBbGxLZXlzIGZyb20gJy4vX2Jhc2VHZXRBbGxLZXlzLmpzJztcbmltcG9ydCBnZXRTeW1ib2xzIGZyb20gJy4vX2dldFN5bWJvbHMuanMnO1xuaW1wb3J0IGtleXMgZnJvbSAnLi9rZXlzLmpzJztcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IG9mIG93biBlbnVtZXJhYmxlIHByb3BlcnR5IG5hbWVzIGFuZCBzeW1ib2xzIG9mIGBvYmplY3RgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzIGFuZCBzeW1ib2xzLlxuICovXG5mdW5jdGlvbiBnZXRBbGxLZXlzKG9iamVjdCkge1xuICByZXR1cm4gYmFzZUdldEFsbEtleXMob2JqZWN0LCBrZXlzLCBnZXRTeW1ib2xzKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZ2V0QWxsS2V5cztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_getAllKeys.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_getAllKeysIn.js": +/*!*************************************************!*\ + !*** ./node_modules/lodash-es/_getAllKeysIn.js ***! + \*************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseGetAllKeys_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseGetAllKeys.js */ \"./node_modules/lodash-es/_baseGetAllKeys.js\");\n/* harmony import */ var _getSymbolsIn_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_getSymbolsIn.js */ \"./node_modules/lodash-es/_getSymbolsIn.js\");\n/* harmony import */ var _keysIn_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keysIn.js */ \"./node_modules/lodash-es/keysIn.js\");\n\n\n\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return (0,_baseGetAllKeys_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object, _keysIn_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], _getSymbolsIn_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (getAllKeysIn);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRBbGxLZXlzSW4uanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFrRDtBQUNKO0FBQ2I7O0FBRWpDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsYUFBYSxPQUFPO0FBQ3BCO0FBQ0E7QUFDQSxTQUFTLDhEQUFjLFNBQVMsa0RBQU0sRUFBRSx3REFBWTtBQUNwRDs7QUFFQSwrREFBZSxZQUFZLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZ2V0QWxsS2V5c0luLmpzPzYzZDAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGJhc2VHZXRBbGxLZXlzIGZyb20gJy4vX2Jhc2VHZXRBbGxLZXlzLmpzJztcbmltcG9ydCBnZXRTeW1ib2xzSW4gZnJvbSAnLi9fZ2V0U3ltYm9sc0luLmpzJztcbmltcG9ydCBrZXlzSW4gZnJvbSAnLi9rZXlzSW4uanMnO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gYXJyYXkgb2Ygb3duIGFuZCBpbmhlcml0ZWQgZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBhbmRcbiAqIHN5bWJvbHMgb2YgYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMgYW5kIHN5bWJvbHMuXG4gKi9cbmZ1bmN0aW9uIGdldEFsbEtleXNJbihvYmplY3QpIHtcbiAgcmV0dXJuIGJhc2VHZXRBbGxLZXlzKG9iamVjdCwga2V5c0luLCBnZXRTeW1ib2xzSW4pO1xufVxuXG5leHBvcnQgZGVmYXVsdCBnZXRBbGxLZXlzSW47XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_getAllKeysIn.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_getMapData.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/_getMapData.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _isKeyable_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isKeyable.js */ \"./node_modules/lodash-es/_isKeyable.js\");\n\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return (0,_isKeyable_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (getMapData);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRNYXBEYXRhLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQXdDOztBQUV4QztBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkIsYUFBYSxHQUFHO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBLFNBQVMseURBQVM7QUFDbEI7QUFDQTtBQUNBOztBQUVBLCtEQUFlLFVBQVUsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRNYXBEYXRhLmpzP2IzNGIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGlzS2V5YWJsZSBmcm9tICcuL19pc0tleWFibGUuanMnO1xuXG4vKipcbiAqIEdldHMgdGhlIGRhdGEgZm9yIGBtYXBgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gbWFwIFRoZSBtYXAgdG8gcXVlcnkuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSByZWZlcmVuY2Uga2V5LlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIG1hcCBkYXRhLlxuICovXG5mdW5jdGlvbiBnZXRNYXBEYXRhKG1hcCwga2V5KSB7XG4gIHZhciBkYXRhID0gbWFwLl9fZGF0YV9fO1xuICByZXR1cm4gaXNLZXlhYmxlKGtleSlcbiAgICA/IGRhdGFbdHlwZW9mIGtleSA9PSAnc3RyaW5nJyA/ICdzdHJpbmcnIDogJ2hhc2gnXVxuICAgIDogZGF0YS5tYXA7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGdldE1hcERhdGE7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_getMapData.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_getNative.js": +/*!**********************************************!*\ + !*** ./node_modules/lodash-es/_getNative.js ***! + \**********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseIsNative_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_baseIsNative.js */ \"./node_modules/lodash-es/_baseIsNative.js\");\n/* harmony import */ var _getValue_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getValue.js */ \"./node_modules/lodash-es/_getValue.js\");\n\n\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = (0,_getValue_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object, key);\n return (0,_baseIsNative_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value) ? value : undefined;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (getNative);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXROYXRpdmUuanMuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQThDO0FBQ1I7O0FBRXRDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixhQUFhLEdBQUc7QUFDaEI7QUFDQTtBQUNBLGNBQWMsd0RBQVE7QUFDdEIsU0FBUyw0REFBWTtBQUNyQjs7QUFFQSwrREFBZSxTQUFTLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZ2V0TmF0aXZlLmpzPzAzMTAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGJhc2VJc05hdGl2ZSBmcm9tICcuL19iYXNlSXNOYXRpdmUuanMnO1xuaW1wb3J0IGdldFZhbHVlIGZyb20gJy4vX2dldFZhbHVlLmpzJztcblxuLyoqXG4gKiBHZXRzIHRoZSBuYXRpdmUgZnVuY3Rpb24gYXQgYGtleWAgb2YgYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgbWV0aG9kIHRvIGdldC5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBmdW5jdGlvbiBpZiBpdCdzIG5hdGl2ZSwgZWxzZSBgdW5kZWZpbmVkYC5cbiAqL1xuZnVuY3Rpb24gZ2V0TmF0aXZlKG9iamVjdCwga2V5KSB7XG4gIHZhciB2YWx1ZSA9IGdldFZhbHVlKG9iamVjdCwga2V5KTtcbiAgcmV0dXJuIGJhc2VJc05hdGl2ZSh2YWx1ZSkgPyB2YWx1ZSA6IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZ2V0TmF0aXZlO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_getNative.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_getPrototype.js": +/*!*************************************************!*\ + !*** ./node_modules/lodash-es/_getPrototype.js ***! + \*************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _overArg_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_overArg.js */ \"./node_modules/lodash-es/_overArg.js\");\n\n\n/** Built-in value references. */\nvar getPrototype = (0,_overArg_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Object.getPrototypeOf, Object);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (getPrototype);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRQcm90b3R5cGUuanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBb0M7O0FBRXBDO0FBQ0EsbUJBQW1CLHVEQUFPOztBQUUxQiwrREFBZSxZQUFZLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZ2V0UHJvdG90eXBlLmpzPzJiNTMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG92ZXJBcmcgZnJvbSAnLi9fb3ZlckFyZy5qcyc7XG5cbi8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqL1xudmFyIGdldFByb3RvdHlwZSA9IG92ZXJBcmcoT2JqZWN0LmdldFByb3RvdHlwZU9mLCBPYmplY3QpO1xuXG5leHBvcnQgZGVmYXVsdCBnZXRQcm90b3R5cGU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_getPrototype.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_getRawTag.js": +/*!**********************************************!*\ + !*** ./node_modules/lodash-es/_getRawTag.js ***! + \**********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Symbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_Symbol.js */ \"./node_modules/lodash-es/_Symbol.js\");\n\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = _Symbol_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] ? _Symbol_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (getRawTag);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRSYXdUYWcuanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBa0M7O0FBRWxDO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxxQkFBcUIsa0RBQU0sR0FBRyw4REFBa0I7O0FBRWhEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2QsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7O0FBRUo7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxTQUFTLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZ2V0UmF3VGFnLmpzPzIzNGYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFN5bWJvbCBmcm9tICcuL19TeW1ib2wuanMnO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIFVzZWQgdG8gcmVzb2x2ZSB0aGVcbiAqIFtgdG9TdHJpbmdUYWdgXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1vYmplY3QucHJvdG90eXBlLnRvc3RyaW5nKVxuICogb2YgdmFsdWVzLlxuICovXG52YXIgbmF0aXZlT2JqZWN0VG9TdHJpbmcgPSBvYmplY3RQcm90by50b1N0cmluZztcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgc3ltVG9TdHJpbmdUYWcgPSBTeW1ib2wgPyBTeW1ib2wudG9TdHJpbmdUYWcgOiB1bmRlZmluZWQ7XG5cbi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlR2V0VGFnYCB3aGljaCBpZ25vcmVzIGBTeW1ib2wudG9TdHJpbmdUYWdgIHZhbHVlcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSByYXcgYHRvU3RyaW5nVGFnYC5cbiAqL1xuZnVuY3Rpb24gZ2V0UmF3VGFnKHZhbHVlKSB7XG4gIHZhciBpc093biA9IGhhc093blByb3BlcnR5LmNhbGwodmFsdWUsIHN5bVRvU3RyaW5nVGFnKSxcbiAgICAgIHRhZyA9IHZhbHVlW3N5bVRvU3RyaW5nVGFnXTtcblxuICB0cnkge1xuICAgIHZhbHVlW3N5bVRvU3RyaW5nVGFnXSA9IHVuZGVmaW5lZDtcbiAgICB2YXIgdW5tYXNrZWQgPSB0cnVlO1xuICB9IGNhdGNoIChlKSB7fVxuXG4gIHZhciByZXN1bHQgPSBuYXRpdmVPYmplY3RUb1N0cmluZy5jYWxsKHZhbHVlKTtcbiAgaWYgKHVubWFza2VkKSB7XG4gICAgaWYgKGlzT3duKSB7XG4gICAgICB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ10gPSB0YWc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlbGV0ZSB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ107XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGdldFJhd1RhZztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_getRawTag.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_getSymbols.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/_getSymbols.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _arrayFilter_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_arrayFilter.js */ \"./node_modules/lodash-es/_arrayFilter.js\");\n/* harmony import */ var _stubArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./stubArray.js */ \"./node_modules/lodash-es/stubArray.js\");\n\n\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? _stubArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return (0,_arrayFilter_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (getSymbols);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRTeW1ib2xzLmpzLmpzIiwibWFwcGluZ3MiOiI7OztBQUE0QztBQUNMOztBQUV2QztBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixhQUFhLE9BQU87QUFDcEI7QUFDQSxxQ0FBcUMscURBQVM7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTLDJEQUFXO0FBQ3BCO0FBQ0EsR0FBRztBQUNIOztBQUVBLCtEQUFlLFVBQVUsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRTeW1ib2xzLmpzP2I2ZjAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFycmF5RmlsdGVyIGZyb20gJy4vX2FycmF5RmlsdGVyLmpzJztcbmltcG9ydCBzdHViQXJyYXkgZnJvbSAnLi9zdHViQXJyYXkuanMnO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBwcm9wZXJ0eUlzRW51bWVyYWJsZSA9IG9iamVjdFByb3RvLnByb3BlcnR5SXNFbnVtZXJhYmxlO1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlR2V0U3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhcnJheSBvZiB0aGUgb3duIGVudW1lcmFibGUgc3ltYm9scyBvZiBgb2JqZWN0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBzeW1ib2xzLlxuICovXG52YXIgZ2V0U3ltYm9scyA9ICFuYXRpdmVHZXRTeW1ib2xzID8gc3R1YkFycmF5IDogZnVuY3Rpb24ob2JqZWN0KSB7XG4gIGlmIChvYmplY3QgPT0gbnVsbCkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICBvYmplY3QgPSBPYmplY3Qob2JqZWN0KTtcbiAgcmV0dXJuIGFycmF5RmlsdGVyKG5hdGl2ZUdldFN5bWJvbHMob2JqZWN0KSwgZnVuY3Rpb24oc3ltYm9sKSB7XG4gICAgcmV0dXJuIHByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwob2JqZWN0LCBzeW1ib2wpO1xuICB9KTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGdldFN5bWJvbHM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_getSymbols.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_getSymbolsIn.js": +/*!*************************************************!*\ + !*** ./node_modules/lodash-es/_getSymbolsIn.js ***! + \*************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _arrayPush_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_arrayPush.js */ \"./node_modules/lodash-es/_arrayPush.js\");\n/* harmony import */ var _getPrototype_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_getPrototype.js */ \"./node_modules/lodash-es/_getPrototype.js\");\n/* harmony import */ var _getSymbols_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_getSymbols.js */ \"./node_modules/lodash-es/_getSymbols.js\");\n/* harmony import */ var _stubArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./stubArray.js */ \"./node_modules/lodash-es/stubArray.js\");\n\n\n\n\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? _stubArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] : function(object) {\n var result = [];\n while (object) {\n (0,_arrayPush_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(result, (0,_getSymbols_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(object));\n object = (0,_getPrototype_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(object);\n }\n return result;\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (getSymbolsIn);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRTeW1ib2xzSW4uanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBd0M7QUFDTTtBQUNKO0FBQ0g7O0FBRXZDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsYUFBYSxPQUFPO0FBQ3BCO0FBQ0EsdUNBQXVDLHFEQUFTO0FBQ2hEO0FBQ0E7QUFDQSxJQUFJLHlEQUFTLFNBQVMsMERBQVU7QUFDaEMsYUFBYSw0REFBWTtBQUN6QjtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsWUFBWSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2dldFN5bWJvbHNJbi5qcz84ZjM3Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhcnJheVB1c2ggZnJvbSAnLi9fYXJyYXlQdXNoLmpzJztcbmltcG9ydCBnZXRQcm90b3R5cGUgZnJvbSAnLi9fZ2V0UHJvdG90eXBlLmpzJztcbmltcG9ydCBnZXRTeW1ib2xzIGZyb20gJy4vX2dldFN5bWJvbHMuanMnO1xuaW1wb3J0IHN0dWJBcnJheSBmcm9tICcuL3N0dWJBcnJheS5qcyc7XG5cbi8qIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIGZvciB0aG9zZSB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgb3RoZXIgYGxvZGFzaGAgbWV0aG9kcy4gKi9cbnZhciBuYXRpdmVHZXRTeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IG9mIHRoZSBvd24gYW5kIGluaGVyaXRlZCBlbnVtZXJhYmxlIHN5bWJvbHMgb2YgYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2Ygc3ltYm9scy5cbiAqL1xudmFyIGdldFN5bWJvbHNJbiA9ICFuYXRpdmVHZXRTeW1ib2xzID8gc3R1YkFycmF5IDogZnVuY3Rpb24ob2JqZWN0KSB7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgd2hpbGUgKG9iamVjdCkge1xuICAgIGFycmF5UHVzaChyZXN1bHQsIGdldFN5bWJvbHMob2JqZWN0KSk7XG4gICAgb2JqZWN0ID0gZ2V0UHJvdG90eXBlKG9iamVjdCk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGdldFN5bWJvbHNJbjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_getSymbolsIn.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_getTag.js": +/*!*******************************************!*\ + !*** ./node_modules/lodash-es/_getTag.js ***! + \*******************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _DataView_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_DataView.js */ \"./node_modules/lodash-es/_DataView.js\");\n/* harmony import */ var _Map_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_Map.js */ \"./node_modules/lodash-es/_Map.js\");\n/* harmony import */ var _Promise_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_Promise.js */ \"./node_modules/lodash-es/_Promise.js\");\n/* harmony import */ var _Set_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_Set.js */ \"./node_modules/lodash-es/_Set.js\");\n/* harmony import */ var _WeakMap_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./_WeakMap.js */ \"./node_modules/lodash-es/_WeakMap.js\");\n/* harmony import */ var _baseGetTag_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./_baseGetTag.js */ \"./node_modules/lodash-es/_baseGetTag.js\");\n/* harmony import */ var _toSource_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_toSource.js */ \"./node_modules/lodash-es/_toSource.js\");\n\n\n\n\n\n\n\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = (0,_toSource_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_DataView_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]),\n mapCtorString = (0,_toSource_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_Map_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]),\n promiseCtorString = (0,_toSource_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_Promise_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]),\n setCtorString = (0,_toSource_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_Set_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]),\n weakMapCtorString = (0,_toSource_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_WeakMap_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = _baseGetTag_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"];\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((_DataView_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"] && getTag(new _DataView_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"](new ArrayBuffer(1))) != dataViewTag) ||\n (_Map_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"] && getTag(new _Map_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]) != mapTag) ||\n (_Promise_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"] && getTag(_Promise_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].resolve()) != promiseTag) ||\n (_Set_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"] && getTag(new _Set_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]) != setTag) ||\n (_WeakMap_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"] && getTag(new _WeakMap_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]) != weakMapTag)) {\n getTag = function(value) {\n var result = (0,_baseGetTag_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? (0,_toSource_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (getTag);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRUYWcuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBc0M7QUFDVjtBQUNRO0FBQ1I7QUFDUTtBQUNNO0FBQ0o7O0FBRXRDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBLHlCQUF5Qix3REFBUSxDQUFDLG9EQUFRO0FBQzFDLG9CQUFvQix3REFBUSxDQUFDLCtDQUFHO0FBQ2hDLHdCQUF3Qix3REFBUSxDQUFDLG1EQUFPO0FBQ3hDLG9CQUFvQix3REFBUSxDQUFDLCtDQUFHO0FBQ2hDLHdCQUF3Qix3REFBUSxDQUFDLG1EQUFPOztBQUV4QztBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLGFBQWEsUUFBUTtBQUNyQjtBQUNBLGFBQWEsc0RBQVU7O0FBRXZCO0FBQ0EsS0FBSyxvREFBUSxlQUFlLG9EQUFRO0FBQ3BDLEtBQUssK0NBQUcsZUFBZSwrQ0FBRztBQUMxQixLQUFLLG1EQUFPLFdBQVcsMkRBQWU7QUFDdEMsS0FBSywrQ0FBRyxlQUFlLCtDQUFHO0FBQzFCLEtBQUssbURBQU8sZUFBZSxtREFBTztBQUNsQztBQUNBLGlCQUFpQiwwREFBVTtBQUMzQjtBQUNBLDRCQUE0Qix3REFBUTs7QUFFcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLCtEQUFlLE1BQU0sRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRUYWcuanM/ZTMxOSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRGF0YVZpZXcgZnJvbSAnLi9fRGF0YVZpZXcuanMnO1xuaW1wb3J0IE1hcCBmcm9tICcuL19NYXAuanMnO1xuaW1wb3J0IFByb21pc2UgZnJvbSAnLi9fUHJvbWlzZS5qcyc7XG5pbXBvcnQgU2V0IGZyb20gJy4vX1NldC5qcyc7XG5pbXBvcnQgV2Vha01hcCBmcm9tICcuL19XZWFrTWFwLmpzJztcbmltcG9ydCBiYXNlR2V0VGFnIGZyb20gJy4vX2Jhc2VHZXRUYWcuanMnO1xuaW1wb3J0IHRvU291cmNlIGZyb20gJy4vX3RvU291cmNlLmpzJztcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIG1hcFRhZyA9ICdbb2JqZWN0IE1hcF0nLFxuICAgIG9iamVjdFRhZyA9ICdbb2JqZWN0IE9iamVjdF0nLFxuICAgIHByb21pc2VUYWcgPSAnW29iamVjdCBQcm9taXNlXScsXG4gICAgc2V0VGFnID0gJ1tvYmplY3QgU2V0XScsXG4gICAgd2Vha01hcFRhZyA9ICdbb2JqZWN0IFdlYWtNYXBdJztcblxudmFyIGRhdGFWaWV3VGFnID0gJ1tvYmplY3QgRGF0YVZpZXddJztcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IG1hcHMsIHNldHMsIGFuZCB3ZWFrbWFwcy4gKi9cbnZhciBkYXRhVmlld0N0b3JTdHJpbmcgPSB0b1NvdXJjZShEYXRhVmlldyksXG4gICAgbWFwQ3RvclN0cmluZyA9IHRvU291cmNlKE1hcCksXG4gICAgcHJvbWlzZUN0b3JTdHJpbmcgPSB0b1NvdXJjZShQcm9taXNlKSxcbiAgICBzZXRDdG9yU3RyaW5nID0gdG9Tb3VyY2UoU2V0KSxcbiAgICB3ZWFrTWFwQ3RvclN0cmluZyA9IHRvU291cmNlKFdlYWtNYXApO1xuXG4vKipcbiAqIEdldHMgdGhlIGB0b1N0cmluZ1RhZ2Agb2YgYHZhbHVlYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBgdG9TdHJpbmdUYWdgLlxuICovXG52YXIgZ2V0VGFnID0gYmFzZUdldFRhZztcblxuLy8gRmFsbGJhY2sgZm9yIGRhdGEgdmlld3MsIG1hcHMsIHNldHMsIGFuZCB3ZWFrIG1hcHMgaW4gSUUgMTEgYW5kIHByb21pc2VzIGluIE5vZGUuanMgPCA2LlxuaWYgKChEYXRhVmlldyAmJiBnZXRUYWcobmV3IERhdGFWaWV3KG5ldyBBcnJheUJ1ZmZlcigxKSkpICE9IGRhdGFWaWV3VGFnKSB8fFxuICAgIChNYXAgJiYgZ2V0VGFnKG5ldyBNYXApICE9IG1hcFRhZykgfHxcbiAgICAoUHJvbWlzZSAmJiBnZXRUYWcoUHJvbWlzZS5yZXNvbHZlKCkpICE9IHByb21pc2VUYWcpIHx8XG4gICAgKFNldCAmJiBnZXRUYWcobmV3IFNldCkgIT0gc2V0VGFnKSB8fFxuICAgIChXZWFrTWFwICYmIGdldFRhZyhuZXcgV2Vha01hcCkgIT0gd2Vha01hcFRhZykpIHtcbiAgZ2V0VGFnID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgICB2YXIgcmVzdWx0ID0gYmFzZUdldFRhZyh2YWx1ZSksXG4gICAgICAgIEN0b3IgPSByZXN1bHQgPT0gb2JqZWN0VGFnID8gdmFsdWUuY29uc3RydWN0b3IgOiB1bmRlZmluZWQsXG4gICAgICAgIGN0b3JTdHJpbmcgPSBDdG9yID8gdG9Tb3VyY2UoQ3RvcikgOiAnJztcblxuICAgIGlmIChjdG9yU3RyaW5nKSB7XG4gICAgICBzd2l0Y2ggKGN0b3JTdHJpbmcpIHtcbiAgICAgICAgY2FzZSBkYXRhVmlld0N0b3JTdHJpbmc6IHJldHVybiBkYXRhVmlld1RhZztcbiAgICAgICAgY2FzZSBtYXBDdG9yU3RyaW5nOiByZXR1cm4gbWFwVGFnO1xuICAgICAgICBjYXNlIHByb21pc2VDdG9yU3RyaW5nOiByZXR1cm4gcHJvbWlzZVRhZztcbiAgICAgICAgY2FzZSBzZXRDdG9yU3RyaW5nOiByZXR1cm4gc2V0VGFnO1xuICAgICAgICBjYXNlIHdlYWtNYXBDdG9yU3RyaW5nOiByZXR1cm4gd2Vha01hcFRhZztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZ2V0VGFnO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_getTag.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_getValue.js": +/*!*********************************************!*\ + !*** ./node_modules/lodash-es/_getValue.js ***! + \*********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (getValue);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRWYWx1ZS5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLGFBQWEsR0FBRztBQUNoQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxRQUFRLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZ2V0VmFsdWUuanM/NjE1OSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdldHMgdGhlIHZhbHVlIGF0IGBrZXlgIG9mIGBvYmplY3RgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gW29iamVjdF0gVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgcHJvcGVydHkgdG8gZ2V0LlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHByb3BlcnR5IHZhbHVlLlxuICovXG5mdW5jdGlvbiBnZXRWYWx1ZShvYmplY3QsIGtleSkge1xuICByZXR1cm4gb2JqZWN0ID09IG51bGwgPyB1bmRlZmluZWQgOiBvYmplY3Rba2V5XTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZ2V0VmFsdWU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_getValue.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_hashClear.js": +/*!**********************************************!*\ + !*** ./node_modules/lodash-es/_hashClear.js ***! + \**********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nativeCreate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_nativeCreate.js */ \"./node_modules/lodash-es/_nativeCreate.js\");\n\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = _nativeCreate_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] ? (0,_nativeCreate_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(null) : {};\n this.size = 0;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (hashClear);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19oYXNoQ2xlYXIuanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBOEM7O0FBRTlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0Isd0RBQVksR0FBRyw0REFBWTtBQUM3QztBQUNBOztBQUVBLCtEQUFlLFNBQVMsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19oYXNoQ2xlYXIuanM/MGQ4ZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbmF0aXZlQ3JlYXRlIGZyb20gJy4vX25hdGl2ZUNyZWF0ZS5qcyc7XG5cbi8qKlxuICogUmVtb3ZlcyBhbGwga2V5LXZhbHVlIGVudHJpZXMgZnJvbSB0aGUgaGFzaC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgY2xlYXJcbiAqIEBtZW1iZXJPZiBIYXNoXG4gKi9cbmZ1bmN0aW9uIGhhc2hDbGVhcigpIHtcbiAgdGhpcy5fX2RhdGFfXyA9IG5hdGl2ZUNyZWF0ZSA/IG5hdGl2ZUNyZWF0ZShudWxsKSA6IHt9O1xuICB0aGlzLnNpemUgPSAwO1xufVxuXG5leHBvcnQgZGVmYXVsdCBoYXNoQ2xlYXI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_hashClear.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_hashDelete.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/_hashDelete.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (hashDelete);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19oYXNoRGVsZXRlLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsVUFBVSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2hhc2hEZWxldGUuanM/NzNmOCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlbW92ZXMgYGtleWAgYW5kIGl0cyB2YWx1ZSBmcm9tIHRoZSBoYXNoLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBkZWxldGVcbiAqIEBtZW1iZXJPZiBIYXNoXG4gKiBAcGFyYW0ge09iamVjdH0gaGFzaCBUaGUgaGFzaCB0byBtb2RpZnkuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHJlbW92ZS5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgZW50cnkgd2FzIHJlbW92ZWQsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaGFzaERlbGV0ZShrZXkpIHtcbiAgdmFyIHJlc3VsdCA9IHRoaXMuaGFzKGtleSkgJiYgZGVsZXRlIHRoaXMuX19kYXRhX19ba2V5XTtcbiAgdGhpcy5zaXplIC09IHJlc3VsdCA/IDEgOiAwO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBoYXNoRGVsZXRlO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_hashDelete.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_hashGet.js": +/*!********************************************!*\ + !*** ./node_modules/lodash-es/_hashGet.js ***! + \********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nativeCreate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_nativeCreate.js */ \"./node_modules/lodash-es/_nativeCreate.js\");\n\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (_nativeCreate_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (hashGet);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19oYXNoR2V0LmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQThDOztBQUU5QztBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsYUFBYSxHQUFHO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBLE1BQU0sd0RBQVk7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxPQUFPLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9faGFzaEdldC5qcz84OTMzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBuYXRpdmVDcmVhdGUgZnJvbSAnLi9fbmF0aXZlQ3JlYXRlLmpzJztcblxuLyoqIFVzZWQgdG8gc3RhbmQtaW4gZm9yIGB1bmRlZmluZWRgIGhhc2ggdmFsdWVzLiAqL1xudmFyIEhBU0hfVU5ERUZJTkVEID0gJ19fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18nO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIEdldHMgdGhlIGhhc2ggdmFsdWUgZm9yIGBrZXlgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBnZXRcbiAqIEBtZW1iZXJPZiBIYXNoXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIGdldC5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBlbnRyeSB2YWx1ZS5cbiAqL1xuZnVuY3Rpb24gaGFzaEdldChrZXkpIHtcbiAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fO1xuICBpZiAobmF0aXZlQ3JlYXRlKSB7XG4gICAgdmFyIHJlc3VsdCA9IGRhdGFba2V5XTtcbiAgICByZXR1cm4gcmVzdWx0ID09PSBIQVNIX1VOREVGSU5FRCA/IHVuZGVmaW5lZCA6IHJlc3VsdDtcbiAgfVxuICByZXR1cm4gaGFzT3duUHJvcGVydHkuY2FsbChkYXRhLCBrZXkpID8gZGF0YVtrZXldIDogdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZGVmYXVsdCBoYXNoR2V0O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_hashGet.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_hashHas.js": +/*!********************************************!*\ + !*** ./node_modules/lodash-es/_hashHas.js ***! + \********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nativeCreate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_nativeCreate.js */ \"./node_modules/lodash-es/_nativeCreate.js\");\n\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return _nativeCreate_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (hashHas);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19oYXNoSGFzLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQThDOztBQUU5QztBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQSxTQUFTLHdEQUFZO0FBQ3JCOztBQUVBLCtEQUFlLE9BQU8sRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19oYXNoSGFzLmpzPzliMDMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG5hdGl2ZUNyZWF0ZSBmcm9tICcuL19uYXRpdmVDcmVhdGUuanMnO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIENoZWNrcyBpZiBhIGhhc2ggdmFsdWUgZm9yIGBrZXlgIGV4aXN0cy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgaGFzXG4gKiBAbWVtYmVyT2YgSGFzaFxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBlbnRyeSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbiBlbnRyeSBmb3IgYGtleWAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGhhc2hIYXMoa2V5KSB7XG4gIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXztcbiAgcmV0dXJuIG5hdGl2ZUNyZWF0ZSA/IChkYXRhW2tleV0gIT09IHVuZGVmaW5lZCkgOiBoYXNPd25Qcm9wZXJ0eS5jYWxsKGRhdGEsIGtleSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGhhc2hIYXM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_hashHas.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_hashSet.js": +/*!********************************************!*\ + !*** ./node_modules/lodash-es/_hashSet.js ***! + \********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nativeCreate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_nativeCreate.js */ \"./node_modules/lodash-es/_nativeCreate.js\");\n\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (_nativeCreate_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (hashSet);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19oYXNoU2V0LmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQThDOztBQUU5QztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLEdBQUc7QUFDZCxhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLHdEQUFZO0FBQzNCO0FBQ0E7O0FBRUEsK0RBQWUsT0FBTyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2hhc2hTZXQuanM/MDg5ZiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbmF0aXZlQ3JlYXRlIGZyb20gJy4vX25hdGl2ZUNyZWF0ZS5qcyc7XG5cbi8qKiBVc2VkIHRvIHN0YW5kLWluIGZvciBgdW5kZWZpbmVkYCBoYXNoIHZhbHVlcy4gKi9cbnZhciBIQVNIX1VOREVGSU5FRCA9ICdfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fJztcblxuLyoqXG4gKiBTZXRzIHRoZSBoYXNoIGBrZXlgIHRvIGB2YWx1ZWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIHNldFxuICogQG1lbWJlck9mIEhhc2hcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gc2V0LlxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2V0LlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgaGFzaCBpbnN0YW5jZS5cbiAqL1xuZnVuY3Rpb24gaGFzaFNldChrZXksIHZhbHVlKSB7XG4gIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXztcbiAgdGhpcy5zaXplICs9IHRoaXMuaGFzKGtleSkgPyAwIDogMTtcbiAgZGF0YVtrZXldID0gKG5hdGl2ZUNyZWF0ZSAmJiB2YWx1ZSA9PT0gdW5kZWZpbmVkKSA/IEhBU0hfVU5ERUZJTkVEIDogdmFsdWU7XG4gIHJldHVybiB0aGlzO1xufVxuXG5leHBvcnQgZGVmYXVsdCBoYXNoU2V0O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_hashSet.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_initCloneArray.js": +/*!***************************************************!*\ + !*** ./node_modules/lodash-es/_initCloneArray.js ***! + \***************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (initCloneArray);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pbml0Q2xvbmVBcnJheS5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLGFBQWEsT0FBTztBQUNwQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxjQUFjLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9faW5pdENsb25lQXJyYXkuanM/YjAzMCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIEluaXRpYWxpemVzIGFuIGFycmF5IGNsb25lLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gY2xvbmUuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGluaXRpYWxpemVkIGNsb25lLlxuICovXG5mdW5jdGlvbiBpbml0Q2xvbmVBcnJheShhcnJheSkge1xuICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgcmVzdWx0ID0gbmV3IGFycmF5LmNvbnN0cnVjdG9yKGxlbmd0aCk7XG5cbiAgLy8gQWRkIHByb3BlcnRpZXMgYXNzaWduZWQgYnkgYFJlZ0V4cCNleGVjYC5cbiAgaWYgKGxlbmd0aCAmJiB0eXBlb2YgYXJyYXlbMF0gPT0gJ3N0cmluZycgJiYgaGFzT3duUHJvcGVydHkuY2FsbChhcnJheSwgJ2luZGV4JykpIHtcbiAgICByZXN1bHQuaW5kZXggPSBhcnJheS5pbmRleDtcbiAgICByZXN1bHQuaW5wdXQgPSBhcnJheS5pbnB1dDtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBpbml0Q2xvbmVBcnJheTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_initCloneArray.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_initCloneByTag.js": +/*!***************************************************!*\ + !*** ./node_modules/lodash-es/_initCloneByTag.js ***! + \***************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _cloneArrayBuffer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_cloneArrayBuffer.js */ \"./node_modules/lodash-es/_cloneArrayBuffer.js\");\n/* harmony import */ var _cloneDataView_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_cloneDataView.js */ \"./node_modules/lodash-es/_cloneDataView.js\");\n/* harmony import */ var _cloneRegExp_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_cloneRegExp.js */ \"./node_modules/lodash-es/_cloneRegExp.js\");\n/* harmony import */ var _cloneSymbol_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_cloneSymbol.js */ \"./node_modules/lodash-es/_cloneSymbol.js\");\n/* harmony import */ var _cloneTypedArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_cloneTypedArray.js */ \"./node_modules/lodash-es/_cloneTypedArray.js\");\n\n\n\n\n\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return (0,_cloneArrayBuffer_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return (0,_cloneDataView_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return (0,_cloneTypedArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return (0,_cloneRegExp_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return (0,_cloneSymbol_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(object);\n }\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (initCloneByTag);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pbml0Q2xvbmVCeVRhZy5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBc0Q7QUFDTjtBQUNKO0FBQ0E7QUFDUTs7QUFFcEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsU0FBUztBQUNwQixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsZ0VBQWdCOztBQUU3QjtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxhQUFhLDZEQUFhOztBQUUxQjtBQUNBO0FBQ0E7QUFDQSxhQUFhLCtEQUFlOztBQUU1QjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGFBQWEsMkRBQVc7O0FBRXhCO0FBQ0E7O0FBRUE7QUFDQSxhQUFhLDJEQUFXO0FBQ3hCO0FBQ0E7O0FBRUEsK0RBQWUsY0FBYyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2luaXRDbG9uZUJ5VGFnLmpzPzA3OGMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNsb25lQXJyYXlCdWZmZXIgZnJvbSAnLi9fY2xvbmVBcnJheUJ1ZmZlci5qcyc7XG5pbXBvcnQgY2xvbmVEYXRhVmlldyBmcm9tICcuL19jbG9uZURhdGFWaWV3LmpzJztcbmltcG9ydCBjbG9uZVJlZ0V4cCBmcm9tICcuL19jbG9uZVJlZ0V4cC5qcyc7XG5pbXBvcnQgY2xvbmVTeW1ib2wgZnJvbSAnLi9fY2xvbmVTeW1ib2wuanMnO1xuaW1wb3J0IGNsb25lVHlwZWRBcnJheSBmcm9tICcuL19jbG9uZVR5cGVkQXJyYXkuanMnO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgYm9vbFRhZyA9ICdbb2JqZWN0IEJvb2xlYW5dJyxcbiAgICBkYXRlVGFnID0gJ1tvYmplY3QgRGF0ZV0nLFxuICAgIG1hcFRhZyA9ICdbb2JqZWN0IE1hcF0nLFxuICAgIG51bWJlclRhZyA9ICdbb2JqZWN0IE51bWJlcl0nLFxuICAgIHJlZ2V4cFRhZyA9ICdbb2JqZWN0IFJlZ0V4cF0nLFxuICAgIHNldFRhZyA9ICdbb2JqZWN0IFNldF0nLFxuICAgIHN0cmluZ1RhZyA9ICdbb2JqZWN0IFN0cmluZ10nLFxuICAgIHN5bWJvbFRhZyA9ICdbb2JqZWN0IFN5bWJvbF0nO1xuXG52YXIgYXJyYXlCdWZmZXJUYWcgPSAnW29iamVjdCBBcnJheUJ1ZmZlcl0nLFxuICAgIGRhdGFWaWV3VGFnID0gJ1tvYmplY3QgRGF0YVZpZXddJyxcbiAgICBmbG9hdDMyVGFnID0gJ1tvYmplY3QgRmxvYXQzMkFycmF5XScsXG4gICAgZmxvYXQ2NFRhZyA9ICdbb2JqZWN0IEZsb2F0NjRBcnJheV0nLFxuICAgIGludDhUYWcgPSAnW29iamVjdCBJbnQ4QXJyYXldJyxcbiAgICBpbnQxNlRhZyA9ICdbb2JqZWN0IEludDE2QXJyYXldJyxcbiAgICBpbnQzMlRhZyA9ICdbb2JqZWN0IEludDMyQXJyYXldJyxcbiAgICB1aW50OFRhZyA9ICdbb2JqZWN0IFVpbnQ4QXJyYXldJyxcbiAgICB1aW50OENsYW1wZWRUYWcgPSAnW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0nLFxuICAgIHVpbnQxNlRhZyA9ICdbb2JqZWN0IFVpbnQxNkFycmF5XScsXG4gICAgdWludDMyVGFnID0gJ1tvYmplY3QgVWludDMyQXJyYXldJztcblxuLyoqXG4gKiBJbml0aWFsaXplcyBhbiBvYmplY3QgY2xvbmUgYmFzZWQgb24gaXRzIGB0b1N0cmluZ1RhZ2AuXG4gKlxuICogKipOb3RlOioqIFRoaXMgZnVuY3Rpb24gb25seSBzdXBwb3J0cyBjbG9uaW5nIHZhbHVlcyB3aXRoIHRhZ3Mgb2ZcbiAqIGBCb29sZWFuYCwgYERhdGVgLCBgRXJyb3JgLCBgTWFwYCwgYE51bWJlcmAsIGBSZWdFeHBgLCBgU2V0YCwgb3IgYFN0cmluZ2AuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBjbG9uZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSB0YWcgVGhlIGB0b1N0cmluZ1RhZ2Agb2YgdGhlIG9iamVjdCB0byBjbG9uZS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzRGVlcF0gU3BlY2lmeSBhIGRlZXAgY2xvbmUuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBpbml0aWFsaXplZCBjbG9uZS5cbiAqL1xuZnVuY3Rpb24gaW5pdENsb25lQnlUYWcob2JqZWN0LCB0YWcsIGlzRGVlcCkge1xuICB2YXIgQ3RvciA9IG9iamVjdC5jb25zdHJ1Y3RvcjtcbiAgc3dpdGNoICh0YWcpIHtcbiAgICBjYXNlIGFycmF5QnVmZmVyVGFnOlxuICAgICAgcmV0dXJuIGNsb25lQXJyYXlCdWZmZXIob2JqZWN0KTtcblxuICAgIGNhc2UgYm9vbFRhZzpcbiAgICBjYXNlIGRhdGVUYWc6XG4gICAgICByZXR1cm4gbmV3IEN0b3IoK29iamVjdCk7XG5cbiAgICBjYXNlIGRhdGFWaWV3VGFnOlxuICAgICAgcmV0dXJuIGNsb25lRGF0YVZpZXcob2JqZWN0LCBpc0RlZXApO1xuXG4gICAgY2FzZSBmbG9hdDMyVGFnOiBjYXNlIGZsb2F0NjRUYWc6XG4gICAgY2FzZSBpbnQ4VGFnOiBjYXNlIGludDE2VGFnOiBjYXNlIGludDMyVGFnOlxuICAgIGNhc2UgdWludDhUYWc6IGNhc2UgdWludDhDbGFtcGVkVGFnOiBjYXNlIHVpbnQxNlRhZzogY2FzZSB1aW50MzJUYWc6XG4gICAgICByZXR1cm4gY2xvbmVUeXBlZEFycmF5KG9iamVjdCwgaXNEZWVwKTtcblxuICAgIGNhc2UgbWFwVGFnOlxuICAgICAgcmV0dXJuIG5ldyBDdG9yO1xuXG4gICAgY2FzZSBudW1iZXJUYWc6XG4gICAgY2FzZSBzdHJpbmdUYWc6XG4gICAgICByZXR1cm4gbmV3IEN0b3Iob2JqZWN0KTtcblxuICAgIGNhc2UgcmVnZXhwVGFnOlxuICAgICAgcmV0dXJuIGNsb25lUmVnRXhwKG9iamVjdCk7XG5cbiAgICBjYXNlIHNldFRhZzpcbiAgICAgIHJldHVybiBuZXcgQ3RvcjtcblxuICAgIGNhc2Ugc3ltYm9sVGFnOlxuICAgICAgcmV0dXJuIGNsb25lU3ltYm9sKG9iamVjdCk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgaW5pdENsb25lQnlUYWc7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_initCloneByTag.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_initCloneObject.js": +/*!****************************************************!*\ + !*** ./node_modules/lodash-es/_initCloneObject.js ***! + \****************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseCreate_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_baseCreate.js */ \"./node_modules/lodash-es/_baseCreate.js\");\n/* harmony import */ var _getPrototype_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_getPrototype.js */ \"./node_modules/lodash-es/_getPrototype.js\");\n/* harmony import */ var _isPrototype_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isPrototype.js */ \"./node_modules/lodash-es/_isPrototype.js\");\n\n\n\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !(0,_isPrototype_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object))\n ? (0,_baseCreate_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])((0,_getPrototype_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(object))\n : {};\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (initCloneObject);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pbml0Q2xvbmVPYmplY3QuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUEwQztBQUNJO0FBQ0Y7O0FBRTVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsUUFBUTtBQUNyQjtBQUNBO0FBQ0Esc0RBQXNELDJEQUFXO0FBQ2pFLE1BQU0sMERBQVUsQ0FBQyw0REFBWTtBQUM3QjtBQUNBOztBQUVBLCtEQUFlLGVBQWUsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pbml0Q2xvbmVPYmplY3QuanM/NGNjMyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYmFzZUNyZWF0ZSBmcm9tICcuL19iYXNlQ3JlYXRlLmpzJztcbmltcG9ydCBnZXRQcm90b3R5cGUgZnJvbSAnLi9fZ2V0UHJvdG90eXBlLmpzJztcbmltcG9ydCBpc1Byb3RvdHlwZSBmcm9tICcuL19pc1Byb3RvdHlwZS5qcyc7XG5cbi8qKlxuICogSW5pdGlhbGl6ZXMgYW4gb2JqZWN0IGNsb25lLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gY2xvbmUuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBpbml0aWFsaXplZCBjbG9uZS5cbiAqL1xuZnVuY3Rpb24gaW5pdENsb25lT2JqZWN0KG9iamVjdCkge1xuICByZXR1cm4gKHR5cGVvZiBvYmplY3QuY29uc3RydWN0b3IgPT0gJ2Z1bmN0aW9uJyAmJiAhaXNQcm90b3R5cGUob2JqZWN0KSlcbiAgICA/IGJhc2VDcmVhdGUoZ2V0UHJvdG90eXBlKG9iamVjdCkpXG4gICAgOiB7fTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgaW5pdENsb25lT2JqZWN0O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_initCloneObject.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_isIndex.js": +/*!********************************************!*\ + !*** ./node_modules/lodash-es/_isIndex.js ***! + \********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isIndex);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pc0luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxXQUFXLFFBQVE7QUFDbkIsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsT0FBTyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2lzSW5kZXguanM/NmM4ZSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogVXNlZCBhcyByZWZlcmVuY2VzIGZvciB2YXJpb3VzIGBOdW1iZXJgIGNvbnN0YW50cy4gKi9cbnZhciBNQVhfU0FGRV9JTlRFR0VSID0gOTAwNzE5OTI1NDc0MDk5MTtcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IHVuc2lnbmVkIGludGVnZXIgdmFsdWVzLiAqL1xudmFyIHJlSXNVaW50ID0gL14oPzowfFsxLTldXFxkKikkLztcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIHZhbGlkIGFycmF5LWxpa2UgaW5kZXguXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHBhcmFtIHtudW1iZXJ9IFtsZW5ndGg9TUFYX1NBRkVfSU5URUdFUl0gVGhlIHVwcGVyIGJvdW5kcyBvZiBhIHZhbGlkIGluZGV4LlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSB2YWxpZCBpbmRleCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc0luZGV4KHZhbHVlLCBsZW5ndGgpIHtcbiAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gIGxlbmd0aCA9IGxlbmd0aCA9PSBudWxsID8gTUFYX1NBRkVfSU5URUdFUiA6IGxlbmd0aDtcblxuICByZXR1cm4gISFsZW5ndGggJiZcbiAgICAodHlwZSA9PSAnbnVtYmVyJyB8fFxuICAgICAgKHR5cGUgIT0gJ3N5bWJvbCcgJiYgcmVJc1VpbnQudGVzdCh2YWx1ZSkpKSAmJlxuICAgICAgICAodmFsdWUgPiAtMSAmJiB2YWx1ZSAlIDEgPT0gMCAmJiB2YWx1ZSA8IGxlbmd0aCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzSW5kZXg7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_isIndex.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_isKeyable.js": +/*!**********************************************!*\ + !*** ./node_modules/lodash-es/_isKeyable.js ***! + \**********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isKeyable);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pc0tleWFibGUuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2QsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLCtEQUFlLFNBQVMsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pc0tleWFibGUuanM/ZjVkNiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIHN1aXRhYmxlIGZvciB1c2UgYXMgdW5pcXVlIG9iamVjdCBrZXkuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgc3VpdGFibGUsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaXNLZXlhYmxlKHZhbHVlKSB7XG4gIHZhciB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICByZXR1cm4gKHR5cGUgPT0gJ3N0cmluZycgfHwgdHlwZSA9PSAnbnVtYmVyJyB8fCB0eXBlID09ICdzeW1ib2wnIHx8IHR5cGUgPT0gJ2Jvb2xlYW4nKVxuICAgID8gKHZhbHVlICE9PSAnX19wcm90b19fJylcbiAgICA6ICh2YWx1ZSA9PT0gbnVsbCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzS2V5YWJsZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_isKeyable.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_isMasked.js": +/*!*********************************************!*\ + !*** ./node_modules/lodash-es/_isMasked.js ***! + \*********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _coreJsData_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_coreJsData.js */ \"./node_modules/lodash-es/_coreJsData.js\");\n\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(_coreJsData_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] && _coreJsData_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].keys && _coreJsData_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isMasked);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pc01hc2tlZC5qcy5qcyIsIm1hcHBpbmdzIjoiOztBQUEwQzs7QUFFMUM7QUFDQTtBQUNBLDBCQUEwQixzREFBVSxJQUFJLDJEQUFlLElBQUksb0VBQXdCO0FBQ25GO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsVUFBVTtBQUNyQixhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsUUFBUSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2lzTWFza2VkLmpzPzc2YWQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvcmVKc0RhdGEgZnJvbSAnLi9fY29yZUpzRGF0YS5qcyc7XG5cbi8qKiBVc2VkIHRvIGRldGVjdCBtZXRob2RzIG1hc3F1ZXJhZGluZyBhcyBuYXRpdmUuICovXG52YXIgbWFza1NyY0tleSA9IChmdW5jdGlvbigpIHtcbiAgdmFyIHVpZCA9IC9bXi5dKyQvLmV4ZWMoY29yZUpzRGF0YSAmJiBjb3JlSnNEYXRhLmtleXMgJiYgY29yZUpzRGF0YS5rZXlzLklFX1BST1RPIHx8ICcnKTtcbiAgcmV0dXJuIHVpZCA/ICgnU3ltYm9sKHNyYylfMS4nICsgdWlkKSA6ICcnO1xufSgpKTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYGZ1bmNgIGhhcyBpdHMgc291cmNlIG1hc2tlZC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYGZ1bmNgIGlzIG1hc2tlZCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc01hc2tlZChmdW5jKSB7XG4gIHJldHVybiAhIW1hc2tTcmNLZXkgJiYgKG1hc2tTcmNLZXkgaW4gZnVuYyk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzTWFza2VkO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_isMasked.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_isPrototype.js": +/*!************************************************!*\ + !*** ./node_modules/lodash-es/_isPrototype.js ***! + \************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isPrototype);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pc1Byb3RvdHlwZS5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBLCtEQUFlLFdBQVcsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pc1Byb3RvdHlwZS5qcz82NDdmIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgbGlrZWx5IGEgcHJvdG90eXBlIG9iamVjdC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHByb3RvdHlwZSwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc1Byb3RvdHlwZSh2YWx1ZSkge1xuICB2YXIgQ3RvciA9IHZhbHVlICYmIHZhbHVlLmNvbnN0cnVjdG9yLFxuICAgICAgcHJvdG8gPSAodHlwZW9mIEN0b3IgPT0gJ2Z1bmN0aW9uJyAmJiBDdG9yLnByb3RvdHlwZSkgfHwgb2JqZWN0UHJvdG87XG5cbiAgcmV0dXJuIHZhbHVlID09PSBwcm90bztcbn1cblxuZXhwb3J0IGRlZmF1bHQgaXNQcm90b3R5cGU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_isPrototype.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_listCacheClear.js": +/*!***************************************************!*\ + !*** ./node_modules/lodash-es/_listCacheClear.js ***! + \***************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (listCacheClear);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19saXN0Q2FjaGVDbGVhci5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxjQUFjLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fbGlzdENhY2hlQ2xlYXIuanM/YTQ5OCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlbW92ZXMgYWxsIGtleS12YWx1ZSBlbnRyaWVzIGZyb20gdGhlIGxpc3QgY2FjaGUuXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGNsZWFyXG4gKiBAbWVtYmVyT2YgTGlzdENhY2hlXG4gKi9cbmZ1bmN0aW9uIGxpc3RDYWNoZUNsZWFyKCkge1xuICB0aGlzLl9fZGF0YV9fID0gW107XG4gIHRoaXMuc2l6ZSA9IDA7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGxpc3RDYWNoZUNsZWFyO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_listCacheClear.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_listCacheDelete.js": +/*!****************************************************!*\ + !*** ./node_modules/lodash-es/_listCacheDelete.js ***! + \****************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _assocIndexOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_assocIndexOf.js */ \"./node_modules/lodash-es/_assocIndexOf.js\");\n\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = (0,_assocIndexOf_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (listCacheDelete);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19saXN0Q2FjaGVEZWxldGUuanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBOEM7O0FBRTlDO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBLGNBQWMsNERBQVk7O0FBRTFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLCtEQUFlLGVBQWUsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19saXN0Q2FjaGVEZWxldGUuanM/NzVhZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzb2NJbmRleE9mIGZyb20gJy4vX2Fzc29jSW5kZXhPZi5qcyc7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBhcnJheVByb3RvID0gQXJyYXkucHJvdG90eXBlO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBzcGxpY2UgPSBhcnJheVByb3RvLnNwbGljZTtcblxuLyoqXG4gKiBSZW1vdmVzIGBrZXlgIGFuZCBpdHMgdmFsdWUgZnJvbSB0aGUgbGlzdCBjYWNoZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgZGVsZXRlXG4gKiBAbWVtYmVyT2YgTGlzdENhY2hlXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHJlbW92ZS5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgZW50cnkgd2FzIHJlbW92ZWQsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gbGlzdENhY2hlRGVsZXRlKGtleSkge1xuICB2YXIgZGF0YSA9IHRoaXMuX19kYXRhX18sXG4gICAgICBpbmRleCA9IGFzc29jSW5kZXhPZihkYXRhLCBrZXkpO1xuXG4gIGlmIChpbmRleCA8IDApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdmFyIGxhc3RJbmRleCA9IGRhdGEubGVuZ3RoIC0gMTtcbiAgaWYgKGluZGV4ID09IGxhc3RJbmRleCkge1xuICAgIGRhdGEucG9wKCk7XG4gIH0gZWxzZSB7XG4gICAgc3BsaWNlLmNhbGwoZGF0YSwgaW5kZXgsIDEpO1xuICB9XG4gIC0tdGhpcy5zaXplO1xuICByZXR1cm4gdHJ1ZTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgbGlzdENhY2hlRGVsZXRlO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_listCacheDelete.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_listCacheGet.js": +/*!*************************************************!*\ + !*** ./node_modules/lodash-es/_listCacheGet.js ***! + \*************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _assocIndexOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_assocIndexOf.js */ \"./node_modules/lodash-es/_assocIndexOf.js\");\n\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = (0,_assocIndexOf_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (listCacheGet);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19saXN0Q2FjaGVHZXQuanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBOEM7O0FBRTlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixhQUFhLEdBQUc7QUFDaEI7QUFDQTtBQUNBO0FBQ0EsY0FBYyw0REFBWTs7QUFFMUI7QUFDQTs7QUFFQSwrREFBZSxZQUFZLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fbGlzdENhY2hlR2V0LmpzPzg0ZjQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc29jSW5kZXhPZiBmcm9tICcuL19hc3NvY0luZGV4T2YuanMnO1xuXG4vKipcbiAqIEdldHMgdGhlIGxpc3QgY2FjaGUgdmFsdWUgZm9yIGBrZXlgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBnZXRcbiAqIEBtZW1iZXJPZiBMaXN0Q2FjaGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gZ2V0LlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGVudHJ5IHZhbHVlLlxuICovXG5mdW5jdGlvbiBsaXN0Q2FjaGVHZXQoa2V5KSB7XG4gIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXyxcbiAgICAgIGluZGV4ID0gYXNzb2NJbmRleE9mKGRhdGEsIGtleSk7XG5cbiAgcmV0dXJuIGluZGV4IDwgMCA/IHVuZGVmaW5lZCA6IGRhdGFbaW5kZXhdWzFdO1xufVxuXG5leHBvcnQgZGVmYXVsdCBsaXN0Q2FjaGVHZXQ7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_listCacheGet.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_listCacheHas.js": +/*!*************************************************!*\ + !*** ./node_modules/lodash-es/_listCacheHas.js ***! + \*************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _assocIndexOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_assocIndexOf.js */ \"./node_modules/lodash-es/_assocIndexOf.js\");\n\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return (0,_assocIndexOf_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this.__data__, key) > -1;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (listCacheHas);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19saXN0Q2FjaGVIYXMuanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBOEM7O0FBRTlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBLFNBQVMsNERBQVk7QUFDckI7O0FBRUEsK0RBQWUsWUFBWSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2xpc3RDYWNoZUhhcy5qcz8yYjMxIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NvY0luZGV4T2YgZnJvbSAnLi9fYXNzb2NJbmRleE9mLmpzJztcblxuLyoqXG4gKiBDaGVja3MgaWYgYSBsaXN0IGNhY2hlIHZhbHVlIGZvciBga2V5YCBleGlzdHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGhhc1xuICogQG1lbWJlck9mIExpc3RDYWNoZVxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBlbnRyeSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbiBlbnRyeSBmb3IgYGtleWAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGxpc3RDYWNoZUhhcyhrZXkpIHtcbiAgcmV0dXJuIGFzc29jSW5kZXhPZih0aGlzLl9fZGF0YV9fLCBrZXkpID4gLTE7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGxpc3RDYWNoZUhhcztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_listCacheHas.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_listCacheSet.js": +/*!*************************************************!*\ + !*** ./node_modules/lodash-es/_listCacheSet.js ***! + \*************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _assocIndexOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_assocIndexOf.js */ \"./node_modules/lodash-es/_assocIndexOf.js\");\n\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = (0,_assocIndexOf_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (listCacheSet);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19saXN0Q2FjaGVTZXQuanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBOEM7O0FBRTlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLEdBQUc7QUFDZCxhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0EsY0FBYyw0REFBWTs7QUFFMUI7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBOztBQUVBLCtEQUFlLFlBQVksRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19saXN0Q2FjaGVTZXQuanM/MzM0OCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzb2NJbmRleE9mIGZyb20gJy4vX2Fzc29jSW5kZXhPZi5qcyc7XG5cbi8qKlxuICogU2V0cyB0aGUgbGlzdCBjYWNoZSBga2V5YCB0byBgdmFsdWVgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBzZXRcbiAqIEBtZW1iZXJPZiBMaXN0Q2FjaGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gc2V0LlxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2V0LlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbGlzdCBjYWNoZSBpbnN0YW5jZS5cbiAqL1xuZnVuY3Rpb24gbGlzdENhY2hlU2V0KGtleSwgdmFsdWUpIHtcbiAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fLFxuICAgICAgaW5kZXggPSBhc3NvY0luZGV4T2YoZGF0YSwga2V5KTtcblxuICBpZiAoaW5kZXggPCAwKSB7XG4gICAgKyt0aGlzLnNpemU7XG4gICAgZGF0YS5wdXNoKFtrZXksIHZhbHVlXSk7XG4gIH0gZWxzZSB7XG4gICAgZGF0YVtpbmRleF1bMV0gPSB2YWx1ZTtcbiAgfVxuICByZXR1cm4gdGhpcztcbn1cblxuZXhwb3J0IGRlZmF1bHQgbGlzdENhY2hlU2V0O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_listCacheSet.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_mapCacheClear.js": +/*!**************************************************!*\ + !*** ./node_modules/lodash-es/_mapCacheClear.js ***! + \**************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Hash_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_Hash.js */ \"./node_modules/lodash-es/_Hash.js\");\n/* harmony import */ var _ListCache_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_ListCache.js */ \"./node_modules/lodash-es/_ListCache.js\");\n/* harmony import */ var _Map_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_Map.js */ \"./node_modules/lodash-es/_Map.js\");\n\n\n\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new _Hash_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n 'map': new (_Map_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"] || _ListCache_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]),\n 'string': new _Hash_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mapCacheClear);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19tYXBDYWNoZUNsZWFyLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBOEI7QUFDVTtBQUNaOztBQUU1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixnREFBSTtBQUNwQixnQkFBZ0IsK0NBQUcsSUFBSSxxREFBUztBQUNoQyxrQkFBa0IsZ0RBQUk7QUFDdEI7QUFDQTs7QUFFQSwrREFBZSxhQUFhLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fbWFwQ2FjaGVDbGVhci5qcz84NWEzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBIYXNoIGZyb20gJy4vX0hhc2guanMnO1xuaW1wb3J0IExpc3RDYWNoZSBmcm9tICcuL19MaXN0Q2FjaGUuanMnO1xuaW1wb3J0IE1hcCBmcm9tICcuL19NYXAuanMnO1xuXG4vKipcbiAqIFJlbW92ZXMgYWxsIGtleS12YWx1ZSBlbnRyaWVzIGZyb20gdGhlIG1hcC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgY2xlYXJcbiAqIEBtZW1iZXJPZiBNYXBDYWNoZVxuICovXG5mdW5jdGlvbiBtYXBDYWNoZUNsZWFyKCkge1xuICB0aGlzLnNpemUgPSAwO1xuICB0aGlzLl9fZGF0YV9fID0ge1xuICAgICdoYXNoJzogbmV3IEhhc2gsXG4gICAgJ21hcCc6IG5ldyAoTWFwIHx8IExpc3RDYWNoZSksXG4gICAgJ3N0cmluZyc6IG5ldyBIYXNoXG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IG1hcENhY2hlQ2xlYXI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_mapCacheClear.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_mapCacheDelete.js": +/*!***************************************************!*\ + !*** ./node_modules/lodash-es/_mapCacheDelete.js ***! + \***************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getMapData_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getMapData.js */ \"./node_modules/lodash-es/_getMapData.js\");\n\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = (0,_getMapData_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mapCacheDelete);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19tYXBDYWNoZURlbGV0ZS5qcy5qcyIsIm1hcHBpbmdzIjoiOztBQUEwQzs7QUFFMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0EsZUFBZSwwREFBVTtBQUN6QjtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsY0FBYyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX21hcENhY2hlRGVsZXRlLmpzPzAxMjkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldE1hcERhdGEgZnJvbSAnLi9fZ2V0TWFwRGF0YS5qcyc7XG5cbi8qKlxuICogUmVtb3ZlcyBga2V5YCBhbmQgaXRzIHZhbHVlIGZyb20gdGhlIG1hcC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgZGVsZXRlXG4gKiBAbWVtYmVyT2YgTWFwQ2FjaGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gcmVtb3ZlLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBlbnRyeSB3YXMgcmVtb3ZlZCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBtYXBDYWNoZURlbGV0ZShrZXkpIHtcbiAgdmFyIHJlc3VsdCA9IGdldE1hcERhdGEodGhpcywga2V5KVsnZGVsZXRlJ10oa2V5KTtcbiAgdGhpcy5zaXplIC09IHJlc3VsdCA/IDEgOiAwO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBtYXBDYWNoZURlbGV0ZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_mapCacheDelete.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_mapCacheGet.js": +/*!************************************************!*\ + !*** ./node_modules/lodash-es/_mapCacheGet.js ***! + \************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getMapData_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getMapData.js */ \"./node_modules/lodash-es/_getMapData.js\");\n\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return (0,_getMapData_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, key).get(key);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mapCacheGet);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19tYXBDYWNoZUdldC5qcy5qcyIsIm1hcHBpbmdzIjoiOztBQUEwQzs7QUFFMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsR0FBRztBQUNoQjtBQUNBO0FBQ0EsU0FBUywwREFBVTtBQUNuQjs7QUFFQSwrREFBZSxXQUFXLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fbWFwQ2FjaGVHZXQuanM/ZDg1NiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0TWFwRGF0YSBmcm9tICcuL19nZXRNYXBEYXRhLmpzJztcblxuLyoqXG4gKiBHZXRzIHRoZSBtYXAgdmFsdWUgZm9yIGBrZXlgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBnZXRcbiAqIEBtZW1iZXJPZiBNYXBDYWNoZVxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBnZXQuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgZW50cnkgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIG1hcENhY2hlR2V0KGtleSkge1xuICByZXR1cm4gZ2V0TWFwRGF0YSh0aGlzLCBrZXkpLmdldChrZXkpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBtYXBDYWNoZUdldDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_mapCacheGet.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_mapCacheHas.js": +/*!************************************************!*\ + !*** ./node_modules/lodash-es/_mapCacheHas.js ***! + \************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getMapData_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getMapData.js */ \"./node_modules/lodash-es/_getMapData.js\");\n\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return (0,_getMapData_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, key).has(key);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mapCacheHas);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19tYXBDYWNoZUhhcy5qcy5qcyIsIm1hcHBpbmdzIjoiOztBQUEwQzs7QUFFMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0EsU0FBUywwREFBVTtBQUNuQjs7QUFFQSwrREFBZSxXQUFXLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fbWFwQ2FjaGVIYXMuanM/MDdiMiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0TWFwRGF0YSBmcm9tICcuL19nZXRNYXBEYXRhLmpzJztcblxuLyoqXG4gKiBDaGVja3MgaWYgYSBtYXAgdmFsdWUgZm9yIGBrZXlgIGV4aXN0cy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgaGFzXG4gKiBAbWVtYmVyT2YgTWFwQ2FjaGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgZW50cnkgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYW4gZW50cnkgZm9yIGBrZXlgIGV4aXN0cywgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBtYXBDYWNoZUhhcyhrZXkpIHtcbiAgcmV0dXJuIGdldE1hcERhdGEodGhpcywga2V5KS5oYXMoa2V5KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgbWFwQ2FjaGVIYXM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_mapCacheHas.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_mapCacheSet.js": +/*!************************************************!*\ + !*** ./node_modules/lodash-es/_mapCacheSet.js ***! + \************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getMapData_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getMapData.js */ \"./node_modules/lodash-es/_getMapData.js\");\n\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = (0,_getMapData_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mapCacheSet);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19tYXBDYWNoZVNldC5qcy5qcyIsIm1hcHBpbmdzIjoiOztBQUEwQzs7QUFFMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsR0FBRztBQUNkLGFBQWEsUUFBUTtBQUNyQjtBQUNBO0FBQ0EsYUFBYSwwREFBVTtBQUN2Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxXQUFXLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fbWFwQ2FjaGVTZXQuanM/MGM0OSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0TWFwRGF0YSBmcm9tICcuL19nZXRNYXBEYXRhLmpzJztcblxuLyoqXG4gKiBTZXRzIHRoZSBtYXAgYGtleWAgdG8gYHZhbHVlYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgc2V0XG4gKiBAbWVtYmVyT2YgTWFwQ2FjaGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gc2V0LlxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2V0LlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbWFwIGNhY2hlIGluc3RhbmNlLlxuICovXG5mdW5jdGlvbiBtYXBDYWNoZVNldChrZXksIHZhbHVlKSB7XG4gIHZhciBkYXRhID0gZ2V0TWFwRGF0YSh0aGlzLCBrZXkpLFxuICAgICAgc2l6ZSA9IGRhdGEuc2l6ZTtcblxuICBkYXRhLnNldChrZXksIHZhbHVlKTtcbiAgdGhpcy5zaXplICs9IGRhdGEuc2l6ZSA9PSBzaXplID8gMCA6IDE7XG4gIHJldHVybiB0aGlzO1xufVxuXG5leHBvcnQgZGVmYXVsdCBtYXBDYWNoZVNldDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_mapCacheSet.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_memoizeCapped.js": +/*!**************************************************!*\ + !*** ./node_modules/lodash-es/_memoizeCapped.js ***! + \**************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _memoize_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./memoize.js */ \"./node_modules/lodash-es/memoize.js\");\n\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = (0,_memoize_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (memoizeCapped);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19tZW1vaXplQ2FwcGVkLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQW1DOztBQUVuQztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFVBQVU7QUFDckIsYUFBYSxVQUFVO0FBQ3ZCO0FBQ0E7QUFDQSxlQUFlLHVEQUFPO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsYUFBYSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX21lbW9pemVDYXBwZWQuanM/YzQyMyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbWVtb2l6ZSBmcm9tICcuL21lbW9pemUuanMnO1xuXG4vKiogVXNlZCBhcyB0aGUgbWF4aW11bSBtZW1vaXplIGNhY2hlIHNpemUuICovXG52YXIgTUFYX01FTU9JWkVfU0laRSA9IDUwMDtcblxuLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8ubWVtb2l6ZWAgd2hpY2ggY2xlYXJzIHRoZSBtZW1vaXplZCBmdW5jdGlvbidzXG4gKiBjYWNoZSB3aGVuIGl0IGV4Y2VlZHMgYE1BWF9NRU1PSVpFX1NJWkVgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBoYXZlIGl0cyBvdXRwdXQgbWVtb2l6ZWQuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBtZW1vaXplZCBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gbWVtb2l6ZUNhcHBlZChmdW5jKSB7XG4gIHZhciByZXN1bHQgPSBtZW1vaXplKGZ1bmMsIGZ1bmN0aW9uKGtleSkge1xuICAgIGlmIChjYWNoZS5zaXplID09PSBNQVhfTUVNT0laRV9TSVpFKSB7XG4gICAgICBjYWNoZS5jbGVhcigpO1xuICAgIH1cbiAgICByZXR1cm4ga2V5O1xuICB9KTtcblxuICB2YXIgY2FjaGUgPSByZXN1bHQuY2FjaGU7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IG1lbW9pemVDYXBwZWQ7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_memoizeCapped.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_nativeCreate.js": +/*!*************************************************!*\ + !*** ./node_modules/lodash-es/_nativeCreate.js ***! + \*************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getNative_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getNative.js */ \"./node_modules/lodash-es/_getNative.js\");\n\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = (0,_getNative_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Object, 'create');\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (nativeCreate);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19uYXRpdmVDcmVhdGUuanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBd0M7O0FBRXhDO0FBQ0EsbUJBQW1CLHlEQUFTOztBQUU1QiwrREFBZSxZQUFZLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fbmF0aXZlQ3JlYXRlLmpzPzNkYWMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldE5hdGl2ZSBmcm9tICcuL19nZXROYXRpdmUuanMnO1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyB0aGF0IGFyZSB2ZXJpZmllZCB0byBiZSBuYXRpdmUuICovXG52YXIgbmF0aXZlQ3JlYXRlID0gZ2V0TmF0aXZlKE9iamVjdCwgJ2NyZWF0ZScpO1xuXG5leHBvcnQgZGVmYXVsdCBuYXRpdmVDcmVhdGU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_nativeCreate.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_nativeKeys.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/_nativeKeys.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _overArg_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_overArg.js */ \"./node_modules/lodash-es/_overArg.js\");\n\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = (0,_overArg_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Object.keys, Object);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (nativeKeys);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19uYXRpdmVLZXlzLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQW9DOztBQUVwQztBQUNBLGlCQUFpQix1REFBTzs7QUFFeEIsK0RBQWUsVUFBVSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX25hdGl2ZUtleXMuanM/MWU5MiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgb3ZlckFyZyBmcm9tICcuL19vdmVyQXJnLmpzJztcblxuLyogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xudmFyIG5hdGl2ZUtleXMgPSBvdmVyQXJnKE9iamVjdC5rZXlzLCBPYmplY3QpO1xuXG5leHBvcnQgZGVmYXVsdCBuYXRpdmVLZXlzO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_nativeKeys.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_nativeKeysIn.js": +/*!*************************************************!*\ + !*** ./node_modules/lodash-es/_nativeKeysIn.js ***! + \*************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (nativeKeysIn);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19uYXRpdmVLZXlzSW4uanMuanMiLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixhQUFhLE9BQU87QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsWUFBWSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX25hdGl2ZUtleXNJbi5qcz83ZjU5Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhpcyBmdW5jdGlvbiBpcyBsaWtlXG4gKiBbYE9iamVjdC5rZXlzYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtb2JqZWN0LmtleXMpXG4gKiBleGNlcHQgdGhhdCBpdCBpbmNsdWRlcyBpbmhlcml0ZWQgZW51bWVyYWJsZSBwcm9wZXJ0aWVzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICovXG5mdW5jdGlvbiBuYXRpdmVLZXlzSW4ob2JqZWN0KSB7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgaWYgKG9iamVjdCAhPSBudWxsKSB7XG4gICAgZm9yICh2YXIga2V5IGluIE9iamVjdChvYmplY3QpKSB7XG4gICAgICByZXN1bHQucHVzaChrZXkpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBuYXRpdmVLZXlzSW47XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_nativeKeysIn.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_nodeUtil.js": +/*!*********************************************!*\ + !*** ./node_modules/lodash-es/_nodeUtil.js ***! + \*********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _freeGlobal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_freeGlobal.js */ \"./node_modules/lodash-es/_freeGlobal.js\");\n\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && _freeGlobal_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (nodeUtil);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19ub2RlVXRpbC5qcy5qcyIsIm1hcHBpbmdzIjoiOztBQUEwQzs7QUFFMUM7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxtQ0FBbUMsOERBQWtCOztBQUVyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKLENBQUM7O0FBRUQsK0RBQWUsUUFBUSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX25vZGVVdGlsLmpzP2M0MTkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZyZWVHbG9iYWwgZnJvbSAnLi9fZnJlZUdsb2JhbC5qcyc7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgZXhwb3J0c2AuICovXG52YXIgZnJlZUV4cG9ydHMgPSB0eXBlb2YgZXhwb3J0cyA9PSAnb2JqZWN0JyAmJiBleHBvcnRzICYmICFleHBvcnRzLm5vZGVUeXBlICYmIGV4cG9ydHM7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgbW9kdWxlYC4gKi9cbnZhciBmcmVlTW9kdWxlID0gZnJlZUV4cG9ydHMgJiYgdHlwZW9mIG1vZHVsZSA9PSAnb2JqZWN0JyAmJiBtb2R1bGUgJiYgIW1vZHVsZS5ub2RlVHlwZSAmJiBtb2R1bGU7XG5cbi8qKiBEZXRlY3QgdGhlIHBvcHVsYXIgQ29tbW9uSlMgZXh0ZW5zaW9uIGBtb2R1bGUuZXhwb3J0c2AuICovXG52YXIgbW9kdWxlRXhwb3J0cyA9IGZyZWVNb2R1bGUgJiYgZnJlZU1vZHVsZS5leHBvcnRzID09PSBmcmVlRXhwb3J0cztcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBwcm9jZXNzYCBmcm9tIE5vZGUuanMuICovXG52YXIgZnJlZVByb2Nlc3MgPSBtb2R1bGVFeHBvcnRzICYmIGZyZWVHbG9iYWwucHJvY2VzcztcblxuLyoqIFVzZWQgdG8gYWNjZXNzIGZhc3RlciBOb2RlLmpzIGhlbHBlcnMuICovXG52YXIgbm9kZVV0aWwgPSAoZnVuY3Rpb24oKSB7XG4gIHRyeSB7XG4gICAgLy8gVXNlIGB1dGlsLnR5cGVzYCBmb3IgTm9kZS5qcyAxMCsuXG4gICAgdmFyIHR5cGVzID0gZnJlZU1vZHVsZSAmJiBmcmVlTW9kdWxlLnJlcXVpcmUgJiYgZnJlZU1vZHVsZS5yZXF1aXJlKCd1dGlsJykudHlwZXM7XG5cbiAgICBpZiAodHlwZXMpIHtcbiAgICAgIHJldHVybiB0eXBlcztcbiAgICB9XG5cbiAgICAvLyBMZWdhY3kgYHByb2Nlc3MuYmluZGluZygndXRpbCcpYCBmb3IgTm9kZS5qcyA8IDEwLlxuICAgIHJldHVybiBmcmVlUHJvY2VzcyAmJiBmcmVlUHJvY2Vzcy5iaW5kaW5nICYmIGZyZWVQcm9jZXNzLmJpbmRpbmcoJ3V0aWwnKTtcbiAgfSBjYXRjaCAoZSkge31cbn0oKSk7XG5cbmV4cG9ydCBkZWZhdWx0IG5vZGVVdGlsO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_nodeUtil.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_objectToString.js": +/*!***************************************************!*\ + !*** ./node_modules/lodash-es/_objectToString.js ***! + \***************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (objectToString);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19vYmplY3RUb1N0cmluZy5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsY0FBYyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX29iamVjdFRvU3RyaW5nLmpzP2QxOTUiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqXG4gKiBVc2VkIHRvIHJlc29sdmUgdGhlXG4gKiBbYHRvU3RyaW5nVGFnYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtb2JqZWN0LnByb3RvdHlwZS50b3N0cmluZylcbiAqIG9mIHZhbHVlcy5cbiAqL1xudmFyIG5hdGl2ZU9iamVjdFRvU3RyaW5nID0gb2JqZWN0UHJvdG8udG9TdHJpbmc7XG5cbi8qKlxuICogQ29udmVydHMgYHZhbHVlYCB0byBhIHN0cmluZyB1c2luZyBgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZ2AuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgc3RyaW5nLlxuICovXG5mdW5jdGlvbiBvYmplY3RUb1N0cmluZyh2YWx1ZSkge1xuICByZXR1cm4gbmF0aXZlT2JqZWN0VG9TdHJpbmcuY2FsbCh2YWx1ZSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IG9iamVjdFRvU3RyaW5nO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_objectToString.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_overArg.js": +/*!********************************************!*\ + !*** ./node_modules/lodash-es/_overArg.js ***! + \********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (overArg);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19vdmVyQXJnLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsVUFBVTtBQUNyQixXQUFXLFVBQVU7QUFDckIsYUFBYSxVQUFVO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxPQUFPLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fb3ZlckFyZy5qcz8wYmQ3Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ3JlYXRlcyBhIHVuYXJ5IGZ1bmN0aW9uIHRoYXQgaW52b2tlcyBgZnVuY2Agd2l0aCBpdHMgYXJndW1lbnQgdHJhbnNmb3JtZWQuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIHdyYXAuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSB0cmFuc2Zvcm0gVGhlIGFyZ3VtZW50IHRyYW5zZm9ybS5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBvdmVyQXJnKGZ1bmMsIHRyYW5zZm9ybSkge1xuICByZXR1cm4gZnVuY3Rpb24oYXJnKSB7XG4gICAgcmV0dXJuIGZ1bmModHJhbnNmb3JtKGFyZykpO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBvdmVyQXJnO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_overArg.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_root.js": +/*!*****************************************!*\ + !*** ./node_modules/lodash-es/_root.js ***! + \*****************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _freeGlobal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_freeGlobal.js */ \"./node_modules/lodash-es/_freeGlobal.js\");\n\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = _freeGlobal_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] || freeSelf || Function('return this')();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (root);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19yb290LmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQTBDOztBQUUxQztBQUNBOztBQUVBO0FBQ0EsV0FBVyxzREFBVTs7QUFFckIsK0RBQWUsSUFBSSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3Jvb3QuanM/NGZjMSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZnJlZUdsb2JhbCBmcm9tICcuL19mcmVlR2xvYmFsLmpzJztcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBzZWxmYC4gKi9cbnZhciBmcmVlU2VsZiA9IHR5cGVvZiBzZWxmID09ICdvYmplY3QnICYmIHNlbGYgJiYgc2VsZi5PYmplY3QgPT09IE9iamVjdCAmJiBzZWxmO1xuXG4vKiogVXNlZCBhcyBhIHJlZmVyZW5jZSB0byB0aGUgZ2xvYmFsIG9iamVjdC4gKi9cbnZhciByb290ID0gZnJlZUdsb2JhbCB8fCBmcmVlU2VsZiB8fCBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuXG5leHBvcnQgZGVmYXVsdCByb290O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_root.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_stackClear.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/_stackClear.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ListCache_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ListCache.js */ \"./node_modules/lodash-es/_ListCache.js\");\n\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new _ListCache_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\n this.size = 0;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (stackClear);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19zdGFja0NsZWFyLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQXdDOztBQUV4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLHFEQUFTO0FBQy9CO0FBQ0E7O0FBRUEsK0RBQWUsVUFBVSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3N0YWNrQ2xlYXIuanM/MTAxMCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTGlzdENhY2hlIGZyb20gJy4vX0xpc3RDYWNoZS5qcyc7XG5cbi8qKlxuICogUmVtb3ZlcyBhbGwga2V5LXZhbHVlIGVudHJpZXMgZnJvbSB0aGUgc3RhY2suXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGNsZWFyXG4gKiBAbWVtYmVyT2YgU3RhY2tcbiAqL1xuZnVuY3Rpb24gc3RhY2tDbGVhcigpIHtcbiAgdGhpcy5fX2RhdGFfXyA9IG5ldyBMaXN0Q2FjaGU7XG4gIHRoaXMuc2l6ZSA9IDA7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHN0YWNrQ2xlYXI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_stackClear.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_stackDelete.js": +/*!************************************************!*\ + !*** ./node_modules/lodash-es/_stackDelete.js ***! + \************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (stackDelete);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19zdGFja0RlbGV0ZS5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsV0FBVyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3N0YWNrRGVsZXRlLmpzPzI5ZmMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZW1vdmVzIGBrZXlgIGFuZCBpdHMgdmFsdWUgZnJvbSB0aGUgc3RhY2suXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGRlbGV0ZVxuICogQG1lbWJlck9mIFN0YWNrXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHJlbW92ZS5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgZW50cnkgd2FzIHJlbW92ZWQsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gc3RhY2tEZWxldGUoa2V5KSB7XG4gIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXyxcbiAgICAgIHJlc3VsdCA9IGRhdGFbJ2RlbGV0ZSddKGtleSk7XG5cbiAgdGhpcy5zaXplID0gZGF0YS5zaXplO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBzdGFja0RlbGV0ZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_stackDelete.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_stackGet.js": +/*!*********************************************!*\ + !*** ./node_modules/lodash-es/_stackGet.js ***! + \*********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (stackGet);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19zdGFja0dldC5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsR0FBRztBQUNoQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxRQUFRLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fc3RhY2tHZXQuanM/MmRiNiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdldHMgdGhlIHN0YWNrIHZhbHVlIGZvciBga2V5YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgZ2V0XG4gKiBAbWVtYmVyT2YgU3RhY2tcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gZ2V0LlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGVudHJ5IHZhbHVlLlxuICovXG5mdW5jdGlvbiBzdGFja0dldChrZXkpIHtcbiAgcmV0dXJuIHRoaXMuX19kYXRhX18uZ2V0KGtleSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHN0YWNrR2V0O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_stackGet.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_stackHas.js": +/*!*********************************************!*\ + !*** ./node_modules/lodash-es/_stackHas.js ***! + \*********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (stackHas);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19zdGFja0hhcy5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxRQUFRLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fc3RhY2tIYXMuanM/ODg3MSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENoZWNrcyBpZiBhIHN0YWNrIHZhbHVlIGZvciBga2V5YCBleGlzdHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGhhc1xuICogQG1lbWJlck9mIFN0YWNrXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIGVudHJ5IHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGFuIGVudHJ5IGZvciBga2V5YCBleGlzdHMsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gc3RhY2tIYXMoa2V5KSB7XG4gIHJldHVybiB0aGlzLl9fZGF0YV9fLmhhcyhrZXkpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBzdGFja0hhcztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_stackHas.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_stackSet.js": +/*!*********************************************!*\ + !*** ./node_modules/lodash-es/_stackSet.js ***! + \*********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ListCache_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ListCache.js */ \"./node_modules/lodash-es/_ListCache.js\");\n/* harmony import */ var _Map_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_Map.js */ \"./node_modules/lodash-es/_Map.js\");\n/* harmony import */ var _MapCache_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_MapCache.js */ \"./node_modules/lodash-es/_MapCache.js\");\n\n\n\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof _ListCache_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]) {\n var pairs = data.__data__;\n if (!_Map_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"] || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new _MapCache_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"](pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (stackSet);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19zdGFja1NldC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQXdDO0FBQ1o7QUFDVTs7QUFFdEM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxHQUFHO0FBQ2QsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixxREFBUztBQUMvQjtBQUNBLFNBQVMsK0NBQUc7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtCQUErQixvREFBUTtBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLCtEQUFlLFFBQVEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19zdGFja1NldC5qcz9jN2VhIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMaXN0Q2FjaGUgZnJvbSAnLi9fTGlzdENhY2hlLmpzJztcbmltcG9ydCBNYXAgZnJvbSAnLi9fTWFwLmpzJztcbmltcG9ydCBNYXBDYWNoZSBmcm9tICcuL19NYXBDYWNoZS5qcyc7XG5cbi8qKiBVc2VkIGFzIHRoZSBzaXplIHRvIGVuYWJsZSBsYXJnZSBhcnJheSBvcHRpbWl6YXRpb25zLiAqL1xudmFyIExBUkdFX0FSUkFZX1NJWkUgPSAyMDA7XG5cbi8qKlxuICogU2V0cyB0aGUgc3RhY2sgYGtleWAgdG8gYHZhbHVlYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgc2V0XG4gKiBAbWVtYmVyT2YgU3RhY2tcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gc2V0LlxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2V0LlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgc3RhY2sgY2FjaGUgaW5zdGFuY2UuXG4gKi9cbmZ1bmN0aW9uIHN0YWNrU2V0KGtleSwgdmFsdWUpIHtcbiAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fO1xuICBpZiAoZGF0YSBpbnN0YW5jZW9mIExpc3RDYWNoZSkge1xuICAgIHZhciBwYWlycyA9IGRhdGEuX19kYXRhX187XG4gICAgaWYgKCFNYXAgfHwgKHBhaXJzLmxlbmd0aCA8IExBUkdFX0FSUkFZX1NJWkUgLSAxKSkge1xuICAgICAgcGFpcnMucHVzaChba2V5LCB2YWx1ZV0pO1xuICAgICAgdGhpcy5zaXplID0gKytkYXRhLnNpemU7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgZGF0YSA9IHRoaXMuX19kYXRhX18gPSBuZXcgTWFwQ2FjaGUocGFpcnMpO1xuICB9XG4gIGRhdGEuc2V0KGtleSwgdmFsdWUpO1xuICB0aGlzLnNpemUgPSBkYXRhLnNpemU7XG4gIHJldHVybiB0aGlzO1xufVxuXG5leHBvcnQgZGVmYXVsdCBzdGFja1NldDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_stackSet.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_stringToPath.js": +/*!*************************************************!*\ + !*** ./node_modules/lodash-es/_stringToPath.js ***! + \*************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _memoizeCapped_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_memoizeCapped.js */ \"./node_modules/lodash-es/_memoizeCapped.js\");\n\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = (0,_memoizeCapped_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (stringToPath);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19zdHJpbmdUb1BhdGguanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBZ0Q7O0FBRWhEO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixhQUFhLE9BQU87QUFDcEI7QUFDQSxtQkFBbUIsNkRBQWE7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsQ0FBQzs7QUFFRCwrREFBZSxZQUFZLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fc3RyaW5nVG9QYXRoLmpzP2VjN2QiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG1lbW9pemVDYXBwZWQgZnJvbSAnLi9fbWVtb2l6ZUNhcHBlZC5qcyc7XG5cbi8qKiBVc2VkIHRvIG1hdGNoIHByb3BlcnR5IG5hbWVzIHdpdGhpbiBwcm9wZXJ0eSBwYXRocy4gKi9cbnZhciByZVByb3BOYW1lID0gL1teLltcXF1dK3xcXFsoPzooLT9cXGQrKD86XFwuXFxkKyk/KXwoW1wiJ10pKCg/Oig/IVxcMilbXlxcXFxdfFxcXFwuKSo/KVxcMilcXF18KD89KD86XFwufFxcW1xcXSkoPzpcXC58XFxbXFxdfCQpKS9nO1xuXG4vKiogVXNlZCB0byBtYXRjaCBiYWNrc2xhc2hlcyBpbiBwcm9wZXJ0eSBwYXRocy4gKi9cbnZhciByZUVzY2FwZUNoYXIgPSAvXFxcXChcXFxcKT8vZztcblxuLyoqXG4gKiBDb252ZXJ0cyBgc3RyaW5nYCB0byBhIHByb3BlcnR5IHBhdGggYXJyYXkuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmcgVGhlIHN0cmluZyB0byBjb252ZXJ0LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBwcm9wZXJ0eSBwYXRoIGFycmF5LlxuICovXG52YXIgc3RyaW5nVG9QYXRoID0gbWVtb2l6ZUNhcHBlZChmdW5jdGlvbihzdHJpbmcpIHtcbiAgdmFyIHJlc3VsdCA9IFtdO1xuICBpZiAoc3RyaW5nLmNoYXJDb2RlQXQoMCkgPT09IDQ2IC8qIC4gKi8pIHtcbiAgICByZXN1bHQucHVzaCgnJyk7XG4gIH1cbiAgc3RyaW5nLnJlcGxhY2UocmVQcm9wTmFtZSwgZnVuY3Rpb24obWF0Y2gsIG51bWJlciwgcXVvdGUsIHN1YlN0cmluZykge1xuICAgIHJlc3VsdC5wdXNoKHF1b3RlID8gc3ViU3RyaW5nLnJlcGxhY2UocmVFc2NhcGVDaGFyLCAnJDEnKSA6IChudW1iZXIgfHwgbWF0Y2gpKTtcbiAgfSk7XG4gIHJldHVybiByZXN1bHQ7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgc3RyaW5nVG9QYXRoO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_stringToPath.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_toKey.js": +/*!******************************************!*\ + !*** ./node_modules/lodash-es/_toKey.js ***! + \******************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _isSymbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isSymbol.js */ \"./node_modules/lodash-es/isSymbol.js\");\n\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || (0,_isSymbol_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (toKey);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL190b0tleS5qcy5qcyIsIm1hcHBpbmdzIjoiOztBQUFxQzs7QUFFckM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLGFBQWEsZUFBZTtBQUM1QjtBQUNBO0FBQ0Esa0NBQWtDLHdEQUFRO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsS0FBSyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3RvS2V5LmpzPzg3MjQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGlzU3ltYm9sIGZyb20gJy4vaXNTeW1ib2wuanMnO1xuXG4vKiogVXNlZCBhcyByZWZlcmVuY2VzIGZvciB2YXJpb3VzIGBOdW1iZXJgIGNvbnN0YW50cy4gKi9cbnZhciBJTkZJTklUWSA9IDEgLyAwO1xuXG4vKipcbiAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBzdHJpbmcga2V5IGlmIGl0J3Mgbm90IGEgc3RyaW5nIG9yIHN5bWJvbC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIHtzdHJpbmd8c3ltYm9sfSBSZXR1cm5zIHRoZSBrZXkuXG4gKi9cbmZ1bmN0aW9uIHRvS2V5KHZhbHVlKSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT0gJ3N0cmluZycgfHwgaXNTeW1ib2wodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIHZhciByZXN1bHQgPSAodmFsdWUgKyAnJyk7XG4gIHJldHVybiAocmVzdWx0ID09ICcwJyAmJiAoMSAvIHZhbHVlKSA9PSAtSU5GSU5JVFkpID8gJy0wJyA6IHJlc3VsdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgdG9LZXk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_toKey.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_toSource.js": +/*!*********************************************!*\ + !*** ./node_modules/lodash-es/_toSource.js ***! + \*********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (toSource);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL190b1NvdXJjZS5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxVQUFVO0FBQ3JCLGFBQWEsUUFBUTtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBLCtEQUFlLFFBQVEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL190b1NvdXJjZS5qcz85MjU5Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBmdW5jUHJvdG8gPSBGdW5jdGlvbi5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIHJlc29sdmUgdGhlIGRlY29tcGlsZWQgc291cmNlIG9mIGZ1bmN0aW9ucy4gKi9cbnZhciBmdW5jVG9TdHJpbmcgPSBmdW5jUHJvdG8udG9TdHJpbmc7XG5cbi8qKlxuICogQ29udmVydHMgYGZ1bmNgIHRvIGl0cyBzb3VyY2UgY29kZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gY29udmVydC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHNvdXJjZSBjb2RlLlxuICovXG5mdW5jdGlvbiB0b1NvdXJjZShmdW5jKSB7XG4gIGlmIChmdW5jICE9IG51bGwpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGZ1bmNUb1N0cmluZy5jYWxsKGZ1bmMpO1xuICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiAoZnVuYyArICcnKTtcbiAgICB9IGNhdGNoIChlKSB7fVxuICB9XG4gIHJldHVybiAnJztcbn1cblxuZXhwb3J0IGRlZmF1bHQgdG9Tb3VyY2U7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_toSource.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/clone.js": +/*!*****************************************!*\ + !*** ./node_modules/lodash-es/clone.js ***! + \*****************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseClone_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseClone.js */ \"./node_modules/lodash-es/_baseClone.js\");\n\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\nfunction clone(value) {\n return (0,_baseClone_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value, CLONE_SYMBOLS_FLAG);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (clone);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2Nsb25lLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQXdDOztBQUV4QztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLGFBQWEsR0FBRztBQUNoQjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsUUFBUSxJQUFJLFFBQVE7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUyx5REFBUztBQUNsQjs7QUFFQSwrREFBZSxLQUFLLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9jbG9uZS5qcz9iZmNmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBiYXNlQ2xvbmUgZnJvbSAnLi9fYmFzZUNsb25lLmpzJztcblxuLyoqIFVzZWQgdG8gY29tcG9zZSBiaXRtYXNrcyBmb3IgY2xvbmluZy4gKi9cbnZhciBDTE9ORV9TWU1CT0xTX0ZMQUcgPSA0O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBzaGFsbG93IGNsb25lIG9mIGB2YWx1ZWAuXG4gKlxuICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGlzIGxvb3NlbHkgYmFzZWQgb24gdGhlXG4gKiBbc3RydWN0dXJlZCBjbG9uZSBhbGdvcml0aG1dKGh0dHBzOi8vbWRuLmlvL1N0cnVjdHVyZWRfY2xvbmVfYWxnb3JpdGhtKVxuICogYW5kIHN1cHBvcnRzIGNsb25pbmcgYXJyYXlzLCBhcnJheSBidWZmZXJzLCBib29sZWFucywgZGF0ZSBvYmplY3RzLCBtYXBzLFxuICogbnVtYmVycywgYE9iamVjdGAgb2JqZWN0cywgcmVnZXhlcywgc2V0cywgc3RyaW5ncywgc3ltYm9scywgYW5kIHR5cGVkXG4gKiBhcnJheXMuIFRoZSBvd24gZW51bWVyYWJsZSBwcm9wZXJ0aWVzIG9mIGBhcmd1bWVudHNgIG9iamVjdHMgYXJlIGNsb25lZFxuICogYXMgcGxhaW4gb2JqZWN0cy4gQW4gZW1wdHkgb2JqZWN0IGlzIHJldHVybmVkIGZvciB1bmNsb25lYWJsZSB2YWx1ZXMgc3VjaFxuICogYXMgZXJyb3Igb2JqZWN0cywgZnVuY3Rpb25zLCBET00gbm9kZXMsIGFuZCBXZWFrTWFwcy5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2xvbmUuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgY2xvbmVkIHZhbHVlLlxuICogQHNlZSBfLmNsb25lRGVlcFxuICogQGV4YW1wbGVcbiAqXG4gKiB2YXIgb2JqZWN0cyA9IFt7ICdhJzogMSB9LCB7ICdiJzogMiB9XTtcbiAqXG4gKiB2YXIgc2hhbGxvdyA9IF8uY2xvbmUob2JqZWN0cyk7XG4gKiBjb25zb2xlLmxvZyhzaGFsbG93WzBdID09PSBvYmplY3RzWzBdKTtcbiAqIC8vID0+IHRydWVcbiAqL1xuZnVuY3Rpb24gY2xvbmUodmFsdWUpIHtcbiAgcmV0dXJuIGJhc2VDbG9uZSh2YWx1ZSwgQ0xPTkVfU1lNQk9MU19GTEFHKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xvbmU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/clone.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/cloneDeep.js": +/*!*********************************************!*\ + !*** ./node_modules/lodash-es/cloneDeep.js ***! + \*********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseClone_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseClone.js */ \"./node_modules/lodash-es/_baseClone.js\");\n\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return (0,_baseClone_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (cloneDeep);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2Nsb25lRGVlcC5qcy5qcyIsIm1hcHBpbmdzIjoiOztBQUF3Qzs7QUFFeEM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2QsYUFBYSxHQUFHO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixRQUFRLElBQUksUUFBUTtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTLHlEQUFTO0FBQ2xCOztBQUVBLCtEQUFlLFNBQVMsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2Nsb25lRGVlcC5qcz83YzhkIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBiYXNlQ2xvbmUgZnJvbSAnLi9fYmFzZUNsb25lLmpzJztcblxuLyoqIFVzZWQgdG8gY29tcG9zZSBiaXRtYXNrcyBmb3IgY2xvbmluZy4gKi9cbnZhciBDTE9ORV9ERUVQX0ZMQUcgPSAxLFxuICAgIENMT05FX1NZTUJPTFNfRkxBRyA9IDQ7XG5cbi8qKlxuICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5jbG9uZWAgZXhjZXB0IHRoYXQgaXQgcmVjdXJzaXZlbHkgY2xvbmVzIGB2YWx1ZWAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHJlY3Vyc2l2ZWx5IGNsb25lLlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGRlZXAgY2xvbmVkIHZhbHVlLlxuICogQHNlZSBfLmNsb25lXG4gKiBAZXhhbXBsZVxuICpcbiAqIHZhciBvYmplY3RzID0gW3sgJ2EnOiAxIH0sIHsgJ2InOiAyIH1dO1xuICpcbiAqIHZhciBkZWVwID0gXy5jbG9uZURlZXAob2JqZWN0cyk7XG4gKiBjb25zb2xlLmxvZyhkZWVwWzBdID09PSBvYmplY3RzWzBdKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGNsb25lRGVlcCh2YWx1ZSkge1xuICByZXR1cm4gYmFzZUNsb25lKHZhbHVlLCBDTE9ORV9ERUVQX0ZMQUcgfCBDTE9ORV9TWU1CT0xTX0ZMQUcpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbG9uZURlZXA7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/cloneDeep.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/eq.js": +/*!**************************************!*\ + !*** ./node_modules/lodash-es/eq.js ***! + \**************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (eq);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2VxLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxXQUFXLEdBQUc7QUFDZCxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQixpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsRUFBRSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvZXEuanM/YjVhOSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFBlcmZvcm1zIGFcbiAqIFtgU2FtZVZhbHVlWmVyb2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXNhbWV2YWx1ZXplcm8pXG4gKiBjb21wYXJpc29uIGJldHdlZW4gdHdvIHZhbHVlcyB0byBkZXRlcm1pbmUgaWYgdGhleSBhcmUgZXF1aXZhbGVudC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29tcGFyZS5cbiAqIEBwYXJhbSB7Kn0gb3RoZXIgVGhlIG90aGVyIHZhbHVlIHRvIGNvbXBhcmUuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHZhbHVlcyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiB2YXIgb2JqZWN0ID0geyAnYSc6IDEgfTtcbiAqIHZhciBvdGhlciA9IHsgJ2EnOiAxIH07XG4gKlxuICogXy5lcShvYmplY3QsIG9iamVjdCk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5lcShvYmplY3QsIG90aGVyKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5lcSgnYScsICdhJyk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5lcSgnYScsIE9iamVjdCgnYScpKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5lcShOYU4sIE5hTik7XG4gKiAvLyA9PiB0cnVlXG4gKi9cbmZ1bmN0aW9uIGVxKHZhbHVlLCBvdGhlcikge1xuICByZXR1cm4gdmFsdWUgPT09IG90aGVyIHx8ICh2YWx1ZSAhPT0gdmFsdWUgJiYgb3RoZXIgIT09IG90aGVyKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZXE7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/eq.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/isArguments.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/isArguments.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseIsArguments_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseIsArguments.js */ \"./node_modules/lodash-es/_baseIsArguments.js\");\n/* harmony import */ var _isObjectLike_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isObjectLike.js */ \"./node_modules/lodash-es/isObjectLike.js\");\n\n\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = (0,_baseIsArguments_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function() { return arguments; }()) ? _baseIsArguments_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] : function(value) {\n return (0,_isObjectLike_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isArguments);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzQXJndW1lbnRzLmpzLmpzIiwibWFwcGluZ3MiOiI7OztBQUFvRDtBQUNQOztBQUU3QztBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQSw4QkFBOEIsbUJBQW1CO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IsK0RBQWUsY0FBYyxtQkFBbUIsTUFBTSwyREFBZTtBQUN2RixTQUFTLDREQUFZO0FBQ3JCO0FBQ0E7O0FBRUEsK0RBQWUsV0FBVyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNBcmd1bWVudHMuanM/ZTJkMCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYmFzZUlzQXJndW1lbnRzIGZyb20gJy4vX2Jhc2VJc0FyZ3VtZW50cy5qcyc7XG5pbXBvcnQgaXNPYmplY3RMaWtlIGZyb20gJy4vaXNPYmplY3RMaWtlLmpzJztcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgcHJvcGVydHlJc0VudW1lcmFibGUgPSBvYmplY3RQcm90by5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBsaWtlbHkgYW4gYGFyZ3VtZW50c2Agb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIGBhcmd1bWVudHNgIG9iamVjdCxcbiAqICBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNBcmd1bWVudHMoZnVuY3Rpb24oKSB7IHJldHVybiBhcmd1bWVudHM7IH0oKSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0FyZ3VtZW50cyhbMSwgMiwgM10pO1xuICogLy8gPT4gZmFsc2VcbiAqL1xudmFyIGlzQXJndW1lbnRzID0gYmFzZUlzQXJndW1lbnRzKGZ1bmN0aW9uKCkgeyByZXR1cm4gYXJndW1lbnRzOyB9KCkpID8gYmFzZUlzQXJndW1lbnRzIDogZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwgJ2NhbGxlZScpICYmXG4gICAgIXByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodmFsdWUsICdjYWxsZWUnKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGlzQXJndW1lbnRzO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/isArguments.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/isArray.js": +/*!*******************************************!*\ + !*** ./node_modules/lodash-es/isArray.js ***! + \*******************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isArray);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzQXJyYXkuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2QsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxPQUFPLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc0FycmF5LmpzPzg2MjIiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGFuIGBBcnJheWAgb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIGFycmF5LCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNBcnJheShbMSwgMiwgM10pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNBcnJheShkb2N1bWVudC5ib2R5LmNoaWxkcmVuKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc0FycmF5KCdhYmMnKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc0FycmF5KF8ubm9vcCk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG52YXIgaXNBcnJheSA9IEFycmF5LmlzQXJyYXk7XG5cbmV4cG9ydCBkZWZhdWx0IGlzQXJyYXk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/isArray.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/isArrayLike.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/isArrayLike.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isFunction.js */ \"./node_modules/lodash-es/isFunction.js\");\n/* harmony import */ var _isLength_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isLength.js */ \"./node_modules/lodash-es/isLength.js\");\n\n\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && (0,_isLength_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value.length) && !(0,_isFunction_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isArrayLike);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzQXJyYXlMaWtlLmpzLmpzIiwibWFwcGluZ3MiOiI7OztBQUF5QztBQUNKOztBQUVyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLHdEQUFRLG1CQUFtQiwwREFBVTtBQUMvRDs7QUFFQSwrREFBZSxXQUFXLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc0FycmF5TGlrZS5qcz82Y2QzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBpc0Z1bmN0aW9uIGZyb20gJy4vaXNGdW5jdGlvbi5qcyc7XG5pbXBvcnQgaXNMZW5ndGggZnJvbSAnLi9pc0xlbmd0aC5qcyc7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYXJyYXktbGlrZS4gQSB2YWx1ZSBpcyBjb25zaWRlcmVkIGFycmF5LWxpa2UgaWYgaXQnc1xuICogbm90IGEgZnVuY3Rpb24gYW5kIGhhcyBhIGB2YWx1ZS5sZW5ndGhgIHRoYXQncyBhbiBpbnRlZ2VyIGdyZWF0ZXIgdGhhbiBvclxuICogZXF1YWwgdG8gYDBgIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gYE51bWJlci5NQVhfU0FGRV9JTlRFR0VSYC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhcnJheS1saWtlLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNBcnJheUxpa2UoWzEsIDIsIDNdKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzQXJyYXlMaWtlKGRvY3VtZW50LmJvZHkuY2hpbGRyZW4pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNBcnJheUxpa2UoJ2FiYycpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNBcnJheUxpa2UoXy5ub29wKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzQXJyYXlMaWtlKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSAhPSBudWxsICYmIGlzTGVuZ3RoKHZhbHVlLmxlbmd0aCkgJiYgIWlzRnVuY3Rpb24odmFsdWUpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBpc0FycmF5TGlrZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/isArrayLike.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/isBuffer.js": +/*!********************************************!*\ + !*** ./node_modules/lodash-es/isBuffer.js ***! + \********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_root.js */ \"./node_modules/lodash-es/_root.js\");\n/* harmony import */ var _stubFalse_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./stubFalse.js */ \"./node_modules/lodash-es/stubFalse.js\");\n\n\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? _root_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || _stubFalse_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isBuffer);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzQnVmZmVyLmpzLmpzIiwibWFwcGluZ3MiOiI7OztBQUE4QjtBQUNTOztBQUV2QztBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLDZCQUE2Qix1REFBVzs7QUFFeEM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDLHFEQUFTOztBQUUxQywrREFBZSxRQUFRLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc0J1ZmZlci5qcz8yMDQwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCByb290IGZyb20gJy4vX3Jvb3QuanMnO1xuaW1wb3J0IHN0dWJGYWxzZSBmcm9tICcuL3N0dWJGYWxzZS5qcyc7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgZXhwb3J0c2AuICovXG52YXIgZnJlZUV4cG9ydHMgPSB0eXBlb2YgZXhwb3J0cyA9PSAnb2JqZWN0JyAmJiBleHBvcnRzICYmICFleHBvcnRzLm5vZGVUeXBlICYmIGV4cG9ydHM7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgbW9kdWxlYC4gKi9cbnZhciBmcmVlTW9kdWxlID0gZnJlZUV4cG9ydHMgJiYgdHlwZW9mIG1vZHVsZSA9PSAnb2JqZWN0JyAmJiBtb2R1bGUgJiYgIW1vZHVsZS5ub2RlVHlwZSAmJiBtb2R1bGU7XG5cbi8qKiBEZXRlY3QgdGhlIHBvcHVsYXIgQ29tbW9uSlMgZXh0ZW5zaW9uIGBtb2R1bGUuZXhwb3J0c2AuICovXG52YXIgbW9kdWxlRXhwb3J0cyA9IGZyZWVNb2R1bGUgJiYgZnJlZU1vZHVsZS5leHBvcnRzID09PSBmcmVlRXhwb3J0cztcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgQnVmZmVyID0gbW9kdWxlRXhwb3J0cyA/IHJvb3QuQnVmZmVyIDogdW5kZWZpbmVkO1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlSXNCdWZmZXIgPSBCdWZmZXIgPyBCdWZmZXIuaXNCdWZmZXIgOiB1bmRlZmluZWQ7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSBidWZmZXIuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjMuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBidWZmZXIsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0J1ZmZlcihuZXcgQnVmZmVyKDIpKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzQnVmZmVyKG5ldyBVaW50OEFycmF5KDIpKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbnZhciBpc0J1ZmZlciA9IG5hdGl2ZUlzQnVmZmVyIHx8IHN0dWJGYWxzZTtcblxuZXhwb3J0IGRlZmF1bHQgaXNCdWZmZXI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/isBuffer.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/isFunction.js": +/*!**********************************************!*\ + !*** ./node_modules/lodash-es/isFunction.js ***! + \**********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseGetTag_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_baseGetTag.js */ \"./node_modules/lodash-es/_baseGetTag.js\");\n/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isObject.js */ \"./node_modules/lodash-es/isObject.js\");\n\n\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!(0,_isObject_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = (0,_baseGetTag_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isFunction);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzRnVuY3Rpb24uanMuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQTBDO0FBQ0w7O0FBRXJDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyx3REFBUTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSwwREFBVTtBQUN0QjtBQUNBOztBQUVBLCtEQUFlLFVBQVUsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzRnVuY3Rpb24uanM/ODAyYiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYmFzZUdldFRhZyBmcm9tICcuL19iYXNlR2V0VGFnLmpzJztcbmltcG9ydCBpc09iamVjdCBmcm9tICcuL2lzT2JqZWN0LmpzJztcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIGFzeW5jVGFnID0gJ1tvYmplY3QgQXN5bmNGdW5jdGlvbl0nLFxuICAgIGZ1bmNUYWcgPSAnW29iamVjdCBGdW5jdGlvbl0nLFxuICAgIGdlblRhZyA9ICdbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXScsXG4gICAgcHJveHlUYWcgPSAnW29iamVjdCBQcm94eV0nO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgRnVuY3Rpb25gIG9iamVjdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIGZ1bmN0aW9uLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNGdW5jdGlvbihfKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzRnVuY3Rpb24oL2FiYy8pO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNGdW5jdGlvbih2YWx1ZSkge1xuICBpZiAoIWlzT2JqZWN0KHZhbHVlKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICAvLyBUaGUgdXNlIG9mIGBPYmplY3QjdG9TdHJpbmdgIGF2b2lkcyBpc3N1ZXMgd2l0aCB0aGUgYHR5cGVvZmAgb3BlcmF0b3JcbiAgLy8gaW4gU2FmYXJpIDkgd2hpY2ggcmV0dXJucyAnb2JqZWN0JyBmb3IgdHlwZWQgYXJyYXlzIGFuZCBvdGhlciBjb25zdHJ1Y3RvcnMuXG4gIHZhciB0YWcgPSBiYXNlR2V0VGFnKHZhbHVlKTtcbiAgcmV0dXJuIHRhZyA9PSBmdW5jVGFnIHx8IHRhZyA9PSBnZW5UYWcgfHwgdGFnID09IGFzeW5jVGFnIHx8IHRhZyA9PSBwcm94eVRhZztcbn1cblxuZXhwb3J0IGRlZmF1bHQgaXNGdW5jdGlvbjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/isFunction.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/isLength.js": +/*!********************************************!*\ + !*** ./node_modules/lodash-es/isLength.js ***! + \********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isLength);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzTGVuZ3RoLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2QsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxRQUFRLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc0xlbmd0aC5qcz9iZTk2Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBVc2VkIGFzIHJlZmVyZW5jZXMgZm9yIHZhcmlvdXMgYE51bWJlcmAgY29uc3RhbnRzLiAqL1xudmFyIE1BWF9TQUZFX0lOVEVHRVIgPSA5MDA3MTk5MjU0NzQwOTkxO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGEgdmFsaWQgYXJyYXktbGlrZSBsZW5ndGguXG4gKlxuICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGlzIGxvb3NlbHkgYmFzZWQgb25cbiAqIFtgVG9MZW5ndGhgXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy10b2xlbmd0aCkuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSB2YWxpZCBsZW5ndGgsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0xlbmd0aCgzKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzTGVuZ3RoKE51bWJlci5NSU5fVkFMVUUpO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmlzTGVuZ3RoKEluZmluaXR5KTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc0xlbmd0aCgnMycpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNMZW5ndGgodmFsdWUpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSAnbnVtYmVyJyAmJlxuICAgIHZhbHVlID4gLTEgJiYgdmFsdWUgJSAxID09IDAgJiYgdmFsdWUgPD0gTUFYX1NBRkVfSU5URUdFUjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgaXNMZW5ndGg7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/isLength.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/isMap.js": +/*!*****************************************!*\ + !*** ./node_modules/lodash-es/isMap.js ***! + \*****************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseIsMap_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_baseIsMap.js */ \"./node_modules/lodash-es/_baseIsMap.js\");\n/* harmony import */ var _baseUnary_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_baseUnary.js */ \"./node_modules/lodash-es/_baseUnary.js\");\n/* harmony import */ var _nodeUtil_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_nodeUtil.js */ \"./node_modules/lodash-es/_nodeUtil.js\");\n\n\n\n\n/* Node.js helper references. */\nvar nodeIsMap = _nodeUtil_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] && _nodeUtil_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? (0,_baseUnary_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(nodeIsMap) : _baseIsMap_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isMap);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzTWFwLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBd0M7QUFDQTtBQUNGOztBQUV0QztBQUNBLGdCQUFnQixvREFBUSxJQUFJLDBEQUFjOztBQUUxQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLHlEQUFTLGNBQWMscURBQVM7O0FBRXhELCtEQUFlLEtBQUssRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzTWFwLmpzP2NiZjYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGJhc2VJc01hcCBmcm9tICcuL19iYXNlSXNNYXAuanMnO1xuaW1wb3J0IGJhc2VVbmFyeSBmcm9tICcuL19iYXNlVW5hcnkuanMnO1xuaW1wb3J0IG5vZGVVdGlsIGZyb20gJy4vX25vZGVVdGlsLmpzJztcblxuLyogTm9kZS5qcyBoZWxwZXIgcmVmZXJlbmNlcy4gKi9cbnZhciBub2RlSXNNYXAgPSBub2RlVXRpbCAmJiBub2RlVXRpbC5pc01hcDtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgYE1hcGAgb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4zLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgbWFwLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNNYXAobmV3IE1hcCk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc01hcChuZXcgV2Vha01hcCk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG52YXIgaXNNYXAgPSBub2RlSXNNYXAgPyBiYXNlVW5hcnkobm9kZUlzTWFwKSA6IGJhc2VJc01hcDtcblxuZXhwb3J0IGRlZmF1bHQgaXNNYXA7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/isMap.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/isObject.js": +/*!********************************************!*\ + !*** ./node_modules/lodash-es/isObject.js ***! + \********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isObject);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzT2JqZWN0LmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsUUFBUSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNPYmplY3QuanM/YWJlYSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIHRoZVxuICogW2xhbmd1YWdlIHR5cGVdKGh0dHA6Ly93d3cuZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1lY21hc2NyaXB0LWxhbmd1YWdlLXR5cGVzKVxuICogb2YgYE9iamVjdGAuIChlLmcuIGFycmF5cywgZnVuY3Rpb25zLCBvYmplY3RzLCByZWdleGVzLCBgbmV3IE51bWJlcigwKWAsIGFuZCBgbmV3IFN0cmluZygnJylgKVxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIG9iamVjdCwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzT2JqZWN0KHt9KTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0KFsxLCAyLCAzXSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdChfLm5vb3ApO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3QobnVsbCk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc09iamVjdCh2YWx1ZSkge1xuICB2YXIgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcbiAgcmV0dXJuIHZhbHVlICE9IG51bGwgJiYgKHR5cGUgPT0gJ29iamVjdCcgfHwgdHlwZSA9PSAnZnVuY3Rpb24nKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgaXNPYmplY3Q7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/isObject.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/isObjectLike.js": +/*!************************************************!*\ + !*** ./node_modules/lodash-es/isObjectLike.js ***! + \************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isObjectLike);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzT2JqZWN0TGlrZS5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsWUFBWSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNPYmplY3RMaWtlLmpzP2NhY2EiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBvYmplY3QtbGlrZS4gQSB2YWx1ZSBpcyBvYmplY3QtbGlrZSBpZiBpdCdzIG5vdCBgbnVsbGBcbiAqIGFuZCBoYXMgYSBgdHlwZW9mYCByZXN1bHQgb2YgXCJvYmplY3RcIi5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBvYmplY3QtbGlrZSwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZSh7fSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdExpa2UoWzEsIDIsIDNdKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZShfLm5vb3ApO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZShudWxsKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzT2JqZWN0TGlrZSh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgIT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT0gJ29iamVjdCc7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzT2JqZWN0TGlrZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/isObjectLike.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/isPlainObject.js": +/*!*************************************************!*\ + !*** ./node_modules/lodash-es/isPlainObject.js ***! + \*************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseGetTag_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_baseGetTag.js */ \"./node_modules/lodash-es/_baseGetTag.js\");\n/* harmony import */ var _getPrototype_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_getPrototype.js */ \"./node_modules/lodash-es/_getPrototype.js\");\n/* harmony import */ var _isObjectLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isObjectLike.js */ \"./node_modules/lodash-es/isObjectLike.js\");\n\n\n\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!(0,_isObjectLike_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value) || (0,_baseGetTag_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value) != objectTag) {\n return false;\n }\n var proto = (0,_getPrototype_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isPlainObject);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzUGxhaW5PYmplY3QuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUEwQztBQUNJO0FBQ0Q7O0FBRTdDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLGdCQUFnQjtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLDREQUFZLFdBQVcsMERBQVU7QUFDeEM7QUFDQTtBQUNBLGNBQWMsNERBQVk7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsYUFBYSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNQbGFpbk9iamVjdC5qcz9mNTg5Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBiYXNlR2V0VGFnIGZyb20gJy4vX2Jhc2VHZXRUYWcuanMnO1xuaW1wb3J0IGdldFByb3RvdHlwZSBmcm9tICcuL19nZXRQcm90b3R5cGUuanMnO1xuaW1wb3J0IGlzT2JqZWN0TGlrZSBmcm9tICcuL2lzT2JqZWN0TGlrZS5qcyc7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RUYWcgPSAnW29iamVjdCBPYmplY3RdJztcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIGZ1bmNQcm90byA9IEZ1bmN0aW9uLnByb3RvdHlwZSxcbiAgICBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIHJlc29sdmUgdGhlIGRlY29tcGlsZWQgc291cmNlIG9mIGZ1bmN0aW9ucy4gKi9cbnZhciBmdW5jVG9TdHJpbmcgPSBmdW5jUHJvdG8udG9TdHJpbmc7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKiBVc2VkIHRvIGluZmVyIHRoZSBgT2JqZWN0YCBjb25zdHJ1Y3Rvci4gKi9cbnZhciBvYmplY3RDdG9yU3RyaW5nID0gZnVuY1RvU3RyaW5nLmNhbGwoT2JqZWN0KTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIHBsYWluIG9iamVjdCwgdGhhdCBpcywgYW4gb2JqZWN0IGNyZWF0ZWQgYnkgdGhlXG4gKiBgT2JqZWN0YCBjb25zdHJ1Y3RvciBvciBvbmUgd2l0aCBhIGBbW1Byb3RvdHlwZV1dYCBvZiBgbnVsbGAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjguMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBwbGFpbiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogZnVuY3Rpb24gRm9vKCkge1xuICogICB0aGlzLmEgPSAxO1xuICogfVxuICpcbiAqIF8uaXNQbGFpbk9iamVjdChuZXcgRm9vKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc1BsYWluT2JqZWN0KFsxLCAyLCAzXSk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNQbGFpbk9iamVjdCh7ICd4JzogMCwgJ3knOiAwIH0pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNQbGFpbk9iamVjdChPYmplY3QuY3JlYXRlKG51bGwpKTtcbiAqIC8vID0+IHRydWVcbiAqL1xuZnVuY3Rpb24gaXNQbGFpbk9iamVjdCh2YWx1ZSkge1xuICBpZiAoIWlzT2JqZWN0TGlrZSh2YWx1ZSkgfHwgYmFzZUdldFRhZyh2YWx1ZSkgIT0gb2JqZWN0VGFnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHZhciBwcm90byA9IGdldFByb3RvdHlwZSh2YWx1ZSk7XG4gIGlmIChwcm90byA9PT0gbnVsbCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHZhciBDdG9yID0gaGFzT3duUHJvcGVydHkuY2FsbChwcm90bywgJ2NvbnN0cnVjdG9yJykgJiYgcHJvdG8uY29uc3RydWN0b3I7XG4gIHJldHVybiB0eXBlb2YgQ3RvciA9PSAnZnVuY3Rpb24nICYmIEN0b3IgaW5zdGFuY2VvZiBDdG9yICYmXG4gICAgZnVuY1RvU3RyaW5nLmNhbGwoQ3RvcikgPT0gb2JqZWN0Q3RvclN0cmluZztcbn1cblxuZXhwb3J0IGRlZmF1bHQgaXNQbGFpbk9iamVjdDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/isPlainObject.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/isSet.js": +/*!*****************************************!*\ + !*** ./node_modules/lodash-es/isSet.js ***! + \*****************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseIsSet_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_baseIsSet.js */ \"./node_modules/lodash-es/_baseIsSet.js\");\n/* harmony import */ var _baseUnary_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_baseUnary.js */ \"./node_modules/lodash-es/_baseUnary.js\");\n/* harmony import */ var _nodeUtil_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_nodeUtil.js */ \"./node_modules/lodash-es/_nodeUtil.js\");\n\n\n\n\n/* Node.js helper references. */\nvar nodeIsSet = _nodeUtil_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] && _nodeUtil_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? (0,_baseUnary_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(nodeIsSet) : _baseIsSet_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isSet);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzU2V0LmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBd0M7QUFDQTtBQUNGOztBQUV0QztBQUNBLGdCQUFnQixvREFBUSxJQUFJLDBEQUFjOztBQUUxQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLHlEQUFTLGNBQWMscURBQVM7O0FBRXhELCtEQUFlLEtBQUssRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzU2V0LmpzPzAyZWQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGJhc2VJc1NldCBmcm9tICcuL19iYXNlSXNTZXQuanMnO1xuaW1wb3J0IGJhc2VVbmFyeSBmcm9tICcuL19iYXNlVW5hcnkuanMnO1xuaW1wb3J0IG5vZGVVdGlsIGZyb20gJy4vX25vZGVVdGlsLmpzJztcblxuLyogTm9kZS5qcyBoZWxwZXIgcmVmZXJlbmNlcy4gKi9cbnZhciBub2RlSXNTZXQgPSBub2RlVXRpbCAmJiBub2RlVXRpbC5pc1NldDtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgYFNldGAgb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4zLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgc2V0LCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNTZXQobmV3IFNldCk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc1NldChuZXcgV2Vha1NldCk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG52YXIgaXNTZXQgPSBub2RlSXNTZXQgPyBiYXNlVW5hcnkobm9kZUlzU2V0KSA6IGJhc2VJc1NldDtcblxuZXhwb3J0IGRlZmF1bHQgaXNTZXQ7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/isSet.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/isSymbol.js": +/*!********************************************!*\ + !*** ./node_modules/lodash-es/isSymbol.js ***! + \********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseGetTag_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_baseGetTag.js */ \"./node_modules/lodash-es/_baseGetTag.js\");\n/* harmony import */ var _isObjectLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isObjectLike.js */ \"./node_modules/lodash-es/isObjectLike.js\");\n\n\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n ((0,_isObjectLike_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value) && (0,_baseGetTag_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value) == symbolTag);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isSymbol);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzU3ltYm9sLmpzLmpzIiwibWFwcGluZ3MiOiI7OztBQUEwQztBQUNHOztBQUU3QztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2QsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSyw0REFBWSxXQUFXLDBEQUFVO0FBQ3RDOztBQUVBLCtEQUFlLFFBQVEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzU3ltYm9sLmpzP2E0OTkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGJhc2VHZXRUYWcgZnJvbSAnLi9fYmFzZUdldFRhZy5qcyc7XG5pbXBvcnQgaXNPYmplY3RMaWtlIGZyb20gJy4vaXNPYmplY3RMaWtlLmpzJztcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIHN5bWJvbFRhZyA9ICdbb2JqZWN0IFN5bWJvbF0nO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgU3ltYm9sYCBwcmltaXRpdmUgb3Igb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgc3ltYm9sLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNTeW1ib2woU3ltYm9sLml0ZXJhdG9yKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzU3ltYm9sKCdhYmMnKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzU3ltYm9sKHZhbHVlKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gJ3N5bWJvbCcgfHxcbiAgICAoaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBiYXNlR2V0VGFnKHZhbHVlKSA9PSBzeW1ib2xUYWcpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBpc1N5bWJvbDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/isSymbol.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/isTypedArray.js": +/*!************************************************!*\ + !*** ./node_modules/lodash-es/isTypedArray.js ***! + \************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseIsTypedArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_baseIsTypedArray.js */ \"./node_modules/lodash-es/_baseIsTypedArray.js\");\n/* harmony import */ var _baseUnary_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_baseUnary.js */ \"./node_modules/lodash-es/_baseUnary.js\");\n/* harmony import */ var _nodeUtil_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_nodeUtil.js */ \"./node_modules/lodash-es/_nodeUtil.js\");\n\n\n\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = _nodeUtil_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] && _nodeUtil_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? (0,_baseUnary_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(nodeIsTypedArray) : _baseIsTypedArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isTypedArray);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzVHlwZWRBcnJheS5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQXNEO0FBQ2Q7QUFDRjs7QUFFdEM7QUFDQSx1QkFBdUIsb0RBQVEsSUFBSSxpRUFBcUI7O0FBRXhEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2QsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQ0FBc0MseURBQVMscUJBQXFCLDREQUFnQjs7QUFFcEYsK0RBQWUsWUFBWSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNUeXBlZEFycmF5LmpzPzZmZTMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGJhc2VJc1R5cGVkQXJyYXkgZnJvbSAnLi9fYmFzZUlzVHlwZWRBcnJheS5qcyc7XG5pbXBvcnQgYmFzZVVuYXJ5IGZyb20gJy4vX2Jhc2VVbmFyeS5qcyc7XG5pbXBvcnQgbm9kZVV0aWwgZnJvbSAnLi9fbm9kZVV0aWwuanMnO1xuXG4vKiBOb2RlLmpzIGhlbHBlciByZWZlcmVuY2VzLiAqL1xudmFyIG5vZGVJc1R5cGVkQXJyYXkgPSBub2RlVXRpbCAmJiBub2RlVXRpbC5pc1R5cGVkQXJyYXk7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIHR5cGVkIGFycmF5LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMy4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgdHlwZWQgYXJyYXksIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc1R5cGVkQXJyYXkobmV3IFVpbnQ4QXJyYXkpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNUeXBlZEFycmF5KFtdKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbnZhciBpc1R5cGVkQXJyYXkgPSBub2RlSXNUeXBlZEFycmF5ID8gYmFzZVVuYXJ5KG5vZGVJc1R5cGVkQXJyYXkpIDogYmFzZUlzVHlwZWRBcnJheTtcblxuZXhwb3J0IGRlZmF1bHQgaXNUeXBlZEFycmF5O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/isTypedArray.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/keys.js": +/*!****************************************!*\ + !*** ./node_modules/lodash-es/keys.js ***! + \****************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _arrayLikeKeys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_arrayLikeKeys.js */ \"./node_modules/lodash-es/_arrayLikeKeys.js\");\n/* harmony import */ var _baseKeys_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_baseKeys.js */ \"./node_modules/lodash-es/_baseKeys.js\");\n/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isArrayLike.js */ \"./node_modules/lodash-es/isArrayLike.js\");\n\n\n\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return (0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object) ? (0,_arrayLikeKeys_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(object) : (0,_baseKeys_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(object);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (keys);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2tleXMuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFnRDtBQUNWO0FBQ0s7O0FBRTNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsYUFBYSxPQUFPO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUywyREFBVyxXQUFXLDZEQUFhLFdBQVcsd0RBQVE7QUFDL0Q7O0FBRUEsK0RBQWUsSUFBSSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMva2V5cy5qcz8yNmMwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhcnJheUxpa2VLZXlzIGZyb20gJy4vX2FycmF5TGlrZUtleXMuanMnO1xuaW1wb3J0IGJhc2VLZXlzIGZyb20gJy4vX2Jhc2VLZXlzLmpzJztcbmltcG9ydCBpc0FycmF5TGlrZSBmcm9tICcuL2lzQXJyYXlMaWtlLmpzJztcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IG9mIHRoZSBvd24gZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBvZiBgb2JqZWN0YC5cbiAqXG4gKiAqKk5vdGU6KiogTm9uLW9iamVjdCB2YWx1ZXMgYXJlIGNvZXJjZWQgdG8gb2JqZWN0cy4gU2VlIHRoZVxuICogW0VTIHNwZWNdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLW9iamVjdC5rZXlzKVxuICogZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBAc3RhdGljXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgT2JqZWN0XG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICogQGV4YW1wbGVcbiAqXG4gKiBmdW5jdGlvbiBGb28oKSB7XG4gKiAgIHRoaXMuYSA9IDE7XG4gKiAgIHRoaXMuYiA9IDI7XG4gKiB9XG4gKlxuICogRm9vLnByb3RvdHlwZS5jID0gMztcbiAqXG4gKiBfLmtleXMobmV3IEZvbyk7XG4gKiAvLyA9PiBbJ2EnLCAnYiddIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gKlxuICogXy5rZXlzKCdoaScpO1xuICogLy8gPT4gWycwJywgJzEnXVxuICovXG5mdW5jdGlvbiBrZXlzKG9iamVjdCkge1xuICByZXR1cm4gaXNBcnJheUxpa2Uob2JqZWN0KSA/IGFycmF5TGlrZUtleXMob2JqZWN0KSA6IGJhc2VLZXlzKG9iamVjdCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGtleXM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/keys.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/keysIn.js": +/*!******************************************!*\ + !*** ./node_modules/lodash-es/keysIn.js ***! + \******************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _arrayLikeKeys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_arrayLikeKeys.js */ \"./node_modules/lodash-es/_arrayLikeKeys.js\");\n/* harmony import */ var _baseKeysIn_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_baseKeysIn.js */ \"./node_modules/lodash-es/_baseKeysIn.js\");\n/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isArrayLike.js */ \"./node_modules/lodash-es/isArrayLike.js\");\n\n\n\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return (0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object) ? (0,_arrayLikeKeys_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(object, true) : (0,_baseKeysIn_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(object);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (keysIn);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2tleXNJbi5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQWdEO0FBQ047QUFDQzs7QUFFM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsT0FBTztBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVMsMkRBQVcsV0FBVyw2REFBYSxpQkFBaUIsMERBQVU7QUFDdkU7O0FBRUEsK0RBQWUsTUFBTSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMva2V5c0luLmpzPzFmYjgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFycmF5TGlrZUtleXMgZnJvbSAnLi9fYXJyYXlMaWtlS2V5cy5qcyc7XG5pbXBvcnQgYmFzZUtleXNJbiBmcm9tICcuL19iYXNlS2V5c0luLmpzJztcbmltcG9ydCBpc0FycmF5TGlrZSBmcm9tICcuL2lzQXJyYXlMaWtlLmpzJztcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IG9mIHRoZSBvd24gYW5kIGluaGVyaXRlZCBlbnVtZXJhYmxlIHByb3BlcnR5IG5hbWVzIG9mIGBvYmplY3RgLlxuICpcbiAqICoqTm90ZToqKiBOb24tb2JqZWN0IHZhbHVlcyBhcmUgY29lcmNlZCB0byBvYmplY3RzLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMy4wLjBcbiAqIEBjYXRlZ29yeSBPYmplY3RcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMuXG4gKiBAZXhhbXBsZVxuICpcbiAqIGZ1bmN0aW9uIEZvbygpIHtcbiAqICAgdGhpcy5hID0gMTtcbiAqICAgdGhpcy5iID0gMjtcbiAqIH1cbiAqXG4gKiBGb28ucHJvdG90eXBlLmMgPSAzO1xuICpcbiAqIF8ua2V5c0luKG5ldyBGb28pO1xuICogLy8gPT4gWydhJywgJ2InLCAnYyddIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gKi9cbmZ1bmN0aW9uIGtleXNJbihvYmplY3QpIHtcbiAgcmV0dXJuIGlzQXJyYXlMaWtlKG9iamVjdCkgPyBhcnJheUxpa2VLZXlzKG9iamVjdCwgdHJ1ZSkgOiBiYXNlS2V5c0luKG9iamVjdCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGtleXNJbjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/keysIn.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/memoize.js": +/*!*******************************************!*\ + !*** ./node_modules/lodash-es/memoize.js ***! + \*******************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _MapCache_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_MapCache.js */ \"./node_modules/lodash-es/_MapCache.js\");\n\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || _MapCache_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = _MapCache_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (memoize);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL21lbW9pemUuanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBc0M7O0FBRXRDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsVUFBVTtBQUNyQixXQUFXLFVBQVU7QUFDckIsYUFBYSxVQUFVO0FBQ3ZCO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEIsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUNBQXlDLG9EQUFRO0FBQ2pEO0FBQ0E7O0FBRUE7QUFDQSxnQkFBZ0Isb0RBQVE7O0FBRXhCLCtEQUFlLE9BQU8sRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL21lbW9pemUuanM/ODIwNSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTWFwQ2FjaGUgZnJvbSAnLi9fTWFwQ2FjaGUuanMnO1xuXG4vKiogRXJyb3IgbWVzc2FnZSBjb25zdGFudHMuICovXG52YXIgRlVOQ19FUlJPUl9URVhUID0gJ0V4cGVjdGVkIGEgZnVuY3Rpb24nO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IG1lbW9pemVzIHRoZSByZXN1bHQgb2YgYGZ1bmNgLiBJZiBgcmVzb2x2ZXJgIGlzXG4gKiBwcm92aWRlZCwgaXQgZGV0ZXJtaW5lcyB0aGUgY2FjaGUga2V5IGZvciBzdG9yaW5nIHRoZSByZXN1bHQgYmFzZWQgb24gdGhlXG4gKiBhcmd1bWVudHMgcHJvdmlkZWQgdG8gdGhlIG1lbW9pemVkIGZ1bmN0aW9uLiBCeSBkZWZhdWx0LCB0aGUgZmlyc3QgYXJndW1lbnRcbiAqIHByb3ZpZGVkIHRvIHRoZSBtZW1vaXplZCBmdW5jdGlvbiBpcyB1c2VkIGFzIHRoZSBtYXAgY2FjaGUga2V5LiBUaGUgYGZ1bmNgXG4gKiBpcyBpbnZva2VkIHdpdGggdGhlIGB0aGlzYCBiaW5kaW5nIG9mIHRoZSBtZW1vaXplZCBmdW5jdGlvbi5cbiAqXG4gKiAqKk5vdGU6KiogVGhlIGNhY2hlIGlzIGV4cG9zZWQgYXMgdGhlIGBjYWNoZWAgcHJvcGVydHkgb24gdGhlIG1lbW9pemVkXG4gKiBmdW5jdGlvbi4gSXRzIGNyZWF0aW9uIG1heSBiZSBjdXN0b21pemVkIGJ5IHJlcGxhY2luZyB0aGUgYF8ubWVtb2l6ZS5DYWNoZWBcbiAqIGNvbnN0cnVjdG9yIHdpdGggb25lIHdob3NlIGluc3RhbmNlcyBpbXBsZW1lbnQgdGhlXG4gKiBbYE1hcGBdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXByb3BlcnRpZXMtb2YtdGhlLW1hcC1wcm90b3R5cGUtb2JqZWN0KVxuICogbWV0aG9kIGludGVyZmFjZSBvZiBgY2xlYXJgLCBgZGVsZXRlYCwgYGdldGAsIGBoYXNgLCBhbmQgYHNldGAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBoYXZlIGl0cyBvdXRwdXQgbWVtb2l6ZWQuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbcmVzb2x2ZXJdIFRoZSBmdW5jdGlvbiB0byByZXNvbHZlIHRoZSBjYWNoZSBrZXkuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBtZW1vaXplZCBmdW5jdGlvbi5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdCA9IHsgJ2EnOiAxLCAnYic6IDIgfTtcbiAqIHZhciBvdGhlciA9IHsgJ2MnOiAzLCAnZCc6IDQgfTtcbiAqXG4gKiB2YXIgdmFsdWVzID0gXy5tZW1vaXplKF8udmFsdWVzKTtcbiAqIHZhbHVlcyhvYmplY3QpO1xuICogLy8gPT4gWzEsIDJdXG4gKlxuICogdmFsdWVzKG90aGVyKTtcbiAqIC8vID0+IFszLCA0XVxuICpcbiAqIG9iamVjdC5hID0gMjtcbiAqIHZhbHVlcyhvYmplY3QpO1xuICogLy8gPT4gWzEsIDJdXG4gKlxuICogLy8gTW9kaWZ5IHRoZSByZXN1bHQgY2FjaGUuXG4gKiB2YWx1ZXMuY2FjaGUuc2V0KG9iamVjdCwgWydhJywgJ2InXSk7XG4gKiB2YWx1ZXMob2JqZWN0KTtcbiAqIC8vID0+IFsnYScsICdiJ11cbiAqXG4gKiAvLyBSZXBsYWNlIGBfLm1lbW9pemUuQ2FjaGVgLlxuICogXy5tZW1vaXplLkNhY2hlID0gV2Vha01hcDtcbiAqL1xuZnVuY3Rpb24gbWVtb2l6ZShmdW5jLCByZXNvbHZlcikge1xuICBpZiAodHlwZW9mIGZ1bmMgIT0gJ2Z1bmN0aW9uJyB8fCAocmVzb2x2ZXIgIT0gbnVsbCAmJiB0eXBlb2YgcmVzb2x2ZXIgIT0gJ2Z1bmN0aW9uJykpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEZVTkNfRVJST1JfVEVYVCk7XG4gIH1cbiAgdmFyIG1lbW9pemVkID0gZnVuY3Rpb24oKSB7XG4gICAgdmFyIGFyZ3MgPSBhcmd1bWVudHMsXG4gICAgICAgIGtleSA9IHJlc29sdmVyID8gcmVzb2x2ZXIuYXBwbHkodGhpcywgYXJncykgOiBhcmdzWzBdLFxuICAgICAgICBjYWNoZSA9IG1lbW9pemVkLmNhY2hlO1xuXG4gICAgaWYgKGNhY2hlLmhhcyhrZXkpKSB7XG4gICAgICByZXR1cm4gY2FjaGUuZ2V0KGtleSk7XG4gICAgfVxuICAgIHZhciByZXN1bHQgPSBmdW5jLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgIG1lbW9pemVkLmNhY2hlID0gY2FjaGUuc2V0KGtleSwgcmVzdWx0KSB8fCBjYWNoZTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9O1xuICBtZW1vaXplZC5jYWNoZSA9IG5ldyAobWVtb2l6ZS5DYWNoZSB8fCBNYXBDYWNoZSk7XG4gIHJldHVybiBtZW1vaXplZDtcbn1cblxuLy8gRXhwb3NlIGBNYXBDYWNoZWAuXG5tZW1vaXplLkNhY2hlID0gTWFwQ2FjaGU7XG5cbmV4cG9ydCBkZWZhdWx0IG1lbW9pemU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/memoize.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/stubArray.js": +/*!*********************************************!*\ + !*** ./node_modules/lodash-es/stubArray.js ***! + \*********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (stubArray);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3N0dWJBcnJheS5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLE9BQU87QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsU0FBUyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvc3R1YkFycmF5LmpzP2VlYTEiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlzIG1ldGhvZCByZXR1cm5zIGEgbmV3IGVtcHR5IGFycmF5LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4xMy4wXG4gKiBAY2F0ZWdvcnkgVXRpbFxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZW1wdHkgYXJyYXkuXG4gKiBAZXhhbXBsZVxuICpcbiAqIHZhciBhcnJheXMgPSBfLnRpbWVzKDIsIF8uc3R1YkFycmF5KTtcbiAqXG4gKiBjb25zb2xlLmxvZyhhcnJheXMpO1xuICogLy8gPT4gW1tdLCBbXV1cbiAqXG4gKiBjb25zb2xlLmxvZyhhcnJheXNbMF0gPT09IGFycmF5c1sxXSk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBzdHViQXJyYXkoKSB7XG4gIHJldHVybiBbXTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgc3R1YkFycmF5O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/stubArray.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/stubFalse.js": +/*!*********************************************!*\ + !*** ./node_modules/lodash-es/stubFalse.js ***! + \*********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (stubFalse);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3N0dWJGYWxzZS5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxTQUFTLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9zdHViRmFsc2UuanM/MGU3ZiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoaXMgbWV0aG9kIHJldHVybnMgYGZhbHNlYC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMTMuMFxuICogQGNhdGVnb3J5IFV0aWxcbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8udGltZXMoMiwgXy5zdHViRmFsc2UpO1xuICogLy8gPT4gW2ZhbHNlLCBmYWxzZV1cbiAqL1xuZnVuY3Rpb24gc3R1YkZhbHNlKCkge1xuICByZXR1cm4gZmFsc2U7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHN0dWJGYWxzZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/stubFalse.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/toPath.js": +/*!******************************************!*\ + !*** ./node_modules/lodash-es/toPath.js ***! + \******************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _arrayMap_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_arrayMap.js */ \"./node_modules/lodash-es/_arrayMap.js\");\n/* harmony import */ var _copyArray_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_copyArray.js */ \"./node_modules/lodash-es/_copyArray.js\");\n/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isArray.js */ \"./node_modules/lodash-es/isArray.js\");\n/* harmony import */ var _isSymbol_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./isSymbol.js */ \"./node_modules/lodash-es/isSymbol.js\");\n/* harmony import */ var _stringToPath_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./_stringToPath.js */ \"./node_modules/lodash-es/_stringToPath.js\");\n/* harmony import */ var _toKey_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_toKey.js */ \"./node_modules/lodash-es/_toKey.js\");\n/* harmony import */ var _toString_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./toString.js */ \"./node_modules/lodash-es/toString.js\");\n\n\n\n\n\n\n\n\n/**\n * Converts `value` to a property path array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {*} value The value to convert.\n * @returns {Array} Returns the new property path array.\n * @example\n *\n * _.toPath('a.b.c');\n * // => ['a', 'b', 'c']\n *\n * _.toPath('a[0].b.c');\n * // => ['a', '0', 'b', 'c']\n */\nfunction toPath(value) {\n if ((0,_isArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value)) {\n return (0,_arrayMap_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value, _toKey_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n }\n return (0,_isSymbol_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(value) ? [value] : (0,_copyArray_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])((0,_stringToPath_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])((0,_toString_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(value)));\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (toPath);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3RvUGF0aC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFzQztBQUNFO0FBQ0w7QUFDRTtBQUNTO0FBQ2Q7QUFDSzs7QUFFckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxhQUFhLE9BQU87QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSx1REFBTztBQUNiLFdBQVcsd0RBQVEsUUFBUSxpREFBSztBQUNoQztBQUNBLFNBQVMsd0RBQVEsb0JBQW9CLHlEQUFTLENBQUMsNERBQVksQ0FBQyx3REFBUTtBQUNwRTs7QUFFQSwrREFBZSxNQUFNLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy90b1BhdGguanM/YjAyZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXJyYXlNYXAgZnJvbSAnLi9fYXJyYXlNYXAuanMnO1xuaW1wb3J0IGNvcHlBcnJheSBmcm9tICcuL19jb3B5QXJyYXkuanMnO1xuaW1wb3J0IGlzQXJyYXkgZnJvbSAnLi9pc0FycmF5LmpzJztcbmltcG9ydCBpc1N5bWJvbCBmcm9tICcuL2lzU3ltYm9sLmpzJztcbmltcG9ydCBzdHJpbmdUb1BhdGggZnJvbSAnLi9fc3RyaW5nVG9QYXRoLmpzJztcbmltcG9ydCB0b0tleSBmcm9tICcuL190b0tleS5qcyc7XG5pbXBvcnQgdG9TdHJpbmcgZnJvbSAnLi90b1N0cmluZy5qcyc7XG5cbi8qKlxuICogQ29udmVydHMgYHZhbHVlYCB0byBhIHByb3BlcnR5IHBhdGggYXJyYXkuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IFV0aWxcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBwcm9wZXJ0eSBwYXRoIGFycmF5LlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLnRvUGF0aCgnYS5iLmMnKTtcbiAqIC8vID0+IFsnYScsICdiJywgJ2MnXVxuICpcbiAqIF8udG9QYXRoKCdhWzBdLmIuYycpO1xuICogLy8gPT4gWydhJywgJzAnLCAnYicsICdjJ11cbiAqL1xuZnVuY3Rpb24gdG9QYXRoKHZhbHVlKSB7XG4gIGlmIChpc0FycmF5KHZhbHVlKSkge1xuICAgIHJldHVybiBhcnJheU1hcCh2YWx1ZSwgdG9LZXkpO1xuICB9XG4gIHJldHVybiBpc1N5bWJvbCh2YWx1ZSkgPyBbdmFsdWVdIDogY29weUFycmF5KHN0cmluZ1RvUGF0aCh0b1N0cmluZyh2YWx1ZSkpKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgdG9QYXRoO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/toPath.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/toString.js": +/*!********************************************!*\ + !*** ./node_modules/lodash-es/toString.js ***! + \********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseToString_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseToString.js */ \"./node_modules/lodash-es/_baseToString.js\");\n\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : (0,_baseToString_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (toString);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3RvU3RyaW5nLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQThDOztBQUU5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2QsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4Qiw0REFBWTtBQUMxQzs7QUFFQSwrREFBZSxRQUFRLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy90b1N0cmluZy5qcz81OTEzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBiYXNlVG9TdHJpbmcgZnJvbSAnLi9fYmFzZVRvU3RyaW5nLmpzJztcblxuLyoqXG4gKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGEgc3RyaW5nLiBBbiBlbXB0eSBzdHJpbmcgaXMgcmV0dXJuZWQgZm9yIGBudWxsYFxuICogYW5kIGB1bmRlZmluZWRgIHZhbHVlcy4gVGhlIHNpZ24gb2YgYC0wYCBpcyBwcmVzZXJ2ZWQuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgc3RyaW5nLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLnRvU3RyaW5nKG51bGwpO1xuICogLy8gPT4gJydcbiAqXG4gKiBfLnRvU3RyaW5nKC0wKTtcbiAqIC8vID0+ICctMCdcbiAqXG4gKiBfLnRvU3RyaW5nKFsxLCAyLCAzXSk7XG4gKiAvLyA9PiAnMSwyLDMnXG4gKi9cbmZ1bmN0aW9uIHRvU3RyaW5nKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSA9PSBudWxsID8gJycgOiBiYXNlVG9TdHJpbmcodmFsdWUpO1xufVxuXG5leHBvcnQgZGVmYXVsdCB0b1N0cmluZztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/toString.js\n"); + +/***/ }), + +/***/ "./src/data/blog3.json": +/*!*****************************!*\ + !*** ./src/data/blog3.json ***! + \*****************************/ +/***/ (function(module) { + +"use strict"; +module.exports = JSON.parse('[{"id":1,"title":"How to use solid color combine with simple furnitures.","image":"/img/blog/b1.jpg","tags":["WordPress","Themeforest","Vie"],"date":{"day":"07","month":"August"}},{"id":2,"title":"How to use solid color combine with simple furnitures.","image":"/img/blog/b2.jpg","tags":["WordPress"],"date":{"day":"07","month":"August"}},{"id":3,"title":"How to use solid color combine with simple furnitures.","image":"/img/blog/b3.jpg","tags":["WordPress","Themeforest","Vie"],"date":{"day":"07","month":"August"}},{"id":4,"title":"How to use solid color combine with simple furnitures.","image":"/img/blog/b4.jpg","tags":["WordPress","Themeforest","Vie"],"date":{"day":"07","month":"August"}},{"id":5,"title":"How to use solid color combine with simple furnitures.","image":"/img/blog/b2.jpg","tags":["WordPress"],"date":{"day":"07","month":"August"}},{"id":6,"title":"How to use solid color combine with simple furnitures.","image":"/img/blog/b3.jpg","tags":["WordPress","Themeforest","Vie"],"date":{"day":"07","month":"August"}}]'); + +/***/ }) + +}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); } +/******/ __webpack_require__.O(0, ["pages/_app","main"], function() { return __webpack_exec__("./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2Fblog-details%2Fblog-details-4&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cblog-details%5Cblog-details-4.jsx!"); }); +/******/ var __webpack_exports__ = __webpack_require__.O(); +/******/ _N_E = __webpack_exports__; +/******/ } +]); \ No newline at end of file diff --git a/.next/static/chunks/pages/blog/blog-light.js b/.next/static/chunks/pages/blog/blog-light.js new file mode 100644 index 0000000..d691b4c --- /dev/null +++ b/.next/static/chunks/pages/blog/blog-light.js @@ -0,0 +1,159 @@ +/* + * 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/). + */ +(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["pages/blog/blog-light"],{ + +/***/ "./node_modules/next/dist/client/link.js": +/*!***********************************************!*\ + !*** ./node_modules/next/dist/client/link.js ***! + \***********************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _slicedToArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nvar _s = $RefreshSig$();\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _router = __webpack_require__(/*! ../shared/lib/router/router */ \"./node_modules/next/dist/shared/lib/router/router.js\");\n\nvar _router1 = __webpack_require__(/*! ./router */ \"./node_modules/next/dist/client/router.js\");\n\nvar _useIntersection = __webpack_require__(/*! ./use-intersection */ \"./node_modules/next/dist/client/use-intersection.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar prefetched = {};\n\nfunction prefetch(router, href, as, options) {\n if ( false || !router) return;\n if (!(0, _router).isLocalURL(href)) return; // Prefetch the JSON 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\n router.prefetch(href, as, options)[\"catch\"](function (err) {\n if (true) {\n // rethrow to show invalid URL errors\n throw err;\n }\n });\n var curLocale = options && typeof options.locale !== 'undefined' ? options.locale : router && router.locale; // Join on an invalid URI character\n\n prefetched[href + '%' + as + (curLocale ? '%' + curLocale : '')] = true;\n}\n\nfunction isModifiedEvent(event) {\n var target = event.currentTarget.target;\n return target && target !== '_self' || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey || event.nativeEvent && event.nativeEvent.which === 2;\n}\n\nfunction linkClicked(e, router, href, as, replace, shallow, scroll, locale) {\n var nodeName = e.currentTarget.nodeName;\n\n if (nodeName === 'A' && (isModifiedEvent(e) || !(0, _router).isLocalURL(href))) {\n // ignore click for browser’s default behavior\n return;\n }\n\n e.preventDefault(); // avoid scroll for urls with anchor refs\n\n if (scroll == null && as.indexOf('#') >= 0) {\n scroll = false;\n } // replace state instead of push if prop is present\n\n\n router[replace ? 'replace' : 'push'](href, as, {\n shallow: shallow,\n locale: locale,\n scroll: scroll\n });\n}\n\nfunction Link(props) {\n _s();\n\n if (true) {\n var createPropError = function createPropError(args) {\n return new Error(\"Failed prop type: The prop `\".concat(args.key, \"` expects a \").concat(args.expected, \" in `<Link>`, but got `\").concat(args.actual, \"` instead.\") + ( true ? \"\\nOpen your browser's console to view the Component stack trace.\" : 0));\n }; // TypeScript trick for type-guarding:\n\n\n var requiredPropsGuard = {\n href: true\n };\n var requiredProps = Object.keys(requiredPropsGuard);\n requiredProps.forEach(function (key) {\n if (key === 'href') {\n if (props[key] == null || typeof props[key] !== 'string' && typeof props[key] !== 'object') {\n throw createPropError({\n key: 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 var _ = key;\n }\n }); // TypeScript trick for type-guarding:\n\n var optionalPropsGuard = {\n as: true,\n replace: true,\n scroll: true,\n shallow: true,\n passHref: true,\n prefetch: true,\n locale: true\n };\n var optionalProps = Object.keys(optionalPropsGuard);\n optionalProps.forEach(function (key) {\n var valType = typeof props[key];\n\n if (key === 'as') {\n if (props[key] && valType !== 'string' && valType !== 'object') {\n throw createPropError({\n key: key,\n expected: '`string` or `object`',\n actual: valType\n });\n }\n } else if (key === 'locale') {\n if (props[key] && valType !== 'string') {\n throw createPropError({\n key: key,\n expected: '`string`',\n actual: valType\n });\n }\n } else if (key === 'replace' || key === 'scroll' || key === 'shallow' || key === 'passHref' || key === 'prefetch') {\n if (props[key] != null && valType !== 'boolean') {\n throw createPropError({\n key: key,\n expected: '`boolean`',\n actual: valType\n });\n }\n } else {\n // TypeScript trick for type-guarding:\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var _ = key;\n }\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\n var hasWarned = _react[\"default\"].useRef(false);\n\n if (props.prefetch && !hasWarned.current) {\n hasWarned.current = true;\n console.warn('Next.js auto-prefetches automatically based on viewport. The prefetch attribute is no longer needed. More: https://nextjs.org/docs/messages/prefetch-true-deprecated');\n }\n }\n\n var p = props.prefetch !== false;\n var router = (0, _router1).useRouter();\n\n var _react$default$useMem = _react[\"default\"].useMemo(function () {\n var _resolveHref = (0, _router).resolveHref(router, props.href, true),\n _resolveHref2 = _slicedToArray(_resolveHref, 2),\n resolvedHref = _resolveHref2[0],\n resolvedAs = _resolveHref2[1];\n\n return {\n href: resolvedHref,\n as: props.as ? (0, _router).resolveHref(router, props.as) : resolvedAs || resolvedHref\n };\n }, [router, props.href, props.as]),\n href = _react$default$useMem.href,\n as = _react$default$useMem.as;\n\n var children = props.children,\n replace = props.replace,\n shallow = props.shallow,\n scroll = props.scroll,\n locale = props.locale; // Deprecated. Warning shown by propType check. If the children provided is a string (<Link>example</Link>) we wrap it in an <a> tag\n\n if (typeof children === 'string') {\n children = /*#__PURE__*/_react[\"default\"].createElement(\"a\", null, children);\n } // This will return the first child, if multiple are provided it will throw an error\n\n\n var child;\n\n if (true) {\n try {\n child = _react[\"default\"].Children.only(children);\n } catch (err) {\n throw new Error(\"Multiple children were passed to <Link> with `href` of `\".concat(props.href, \"` but only one child is supported https://nextjs.org/docs/messages/link-multiple-children\") + ( true ? \" \\nOpen your browser's console to view the Component stack trace.\" : 0));\n }\n } else {}\n\n var childRef = child && typeof child === 'object' && child.ref;\n\n var _useIntersection2 = (0, _useIntersection).useIntersection({\n rootMargin: '200px'\n }),\n _useIntersection3 = _slicedToArray(_useIntersection2, 2),\n setIntersectionRef = _useIntersection3[0],\n isVisible = _useIntersection3[1];\n\n var setRef = _react[\"default\"].useCallback(function (el) {\n setIntersectionRef(el);\n\n if (childRef) {\n if (typeof childRef === 'function') childRef(el);else if (typeof childRef === 'object') {\n childRef.current = el;\n }\n }\n }, [childRef, setIntersectionRef]);\n\n _react[\"default\"].useEffect(function () {\n var shouldPrefetch = isVisible && p && (0, _router).isLocalURL(href);\n var curLocale = typeof locale !== 'undefined' ? locale : router && router.locale;\n var isPrefetched = prefetched[href + '%' + as + (curLocale ? '%' + curLocale : '')];\n\n if (shouldPrefetch && !isPrefetched) {\n prefetch(router, href, as, {\n locale: curLocale\n });\n }\n }, [as, href, isVisible, locale, p, router]);\n\n var childProps = {\n ref: setRef,\n onClick: function onClick(e) {\n if (child.props && typeof child.props.onClick === 'function') {\n child.props.onClick(e);\n }\n\n if (!e.defaultPrevented) {\n linkClicked(e, router, href, as, replace, shallow, scroll, locale);\n }\n }\n };\n\n childProps.onMouseEnter = function (e) {\n if (!(0, _router).isLocalURL(href)) return;\n\n if (child.props && typeof child.props.onMouseEnter === 'function') {\n child.props.onMouseEnter(e);\n }\n\n prefetch(router, href, as, {\n priority: true\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\n\n if (props.passHref || child.type === 'a' && !('href' in child.props)) {\n var curLocale = typeof locale !== 'undefined' ? locale : router && router.locale; // we only render domain locales if we are currently on a domain locale\n // so that locale links are still visitable in development/preview envs\n\n var localeDomain = router && router.isLocaleDomain && (0, _router).getDomainLocale(as, curLocale, router && router.locales, router && router.domainLocales);\n childProps.href = localeDomain || (0, _router).addBasePath((0, _router).addLocale(as, curLocale, router && router.defaultLocale));\n }\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(child, childProps);\n}\n\n_s(Link, \"PYHstBoZE4p1pf5wc1Vw4fTzvCU=\", true);\n\n_c = Link;\nvar _default = Link;\nexports[\"default\"] = _default;\n\nvar _c;\n\n$RefreshReg$(_c, \"Link\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9saW5rLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7Ozs7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELGtCQUFBLEdBQWtCLEtBQUssQ0FBdkI7O0FBQ0EsSUFBSUUsTUFBTSxHQUFHQyxzQkFBc0IsQ0FBQ0MsbUJBQU8sQ0FBQyw0Q0FBRCxDQUFSLENBQW5DOztBQUNBLElBQUlDLE9BQU8sR0FBR0QsbUJBQU8sQ0FBQyx5RkFBRCxDQUFyQjs7QUFDQSxJQUFJRSxRQUFRLEdBQUdGLG1CQUFPLENBQUMsMkRBQUQsQ0FBdEI7O0FBQ0EsSUFBSUcsZ0JBQWdCLEdBQUdILG1CQUFPLENBQUMsK0VBQUQsQ0FBOUI7O0FBQ0EsU0FBU0Qsc0JBQVQsQ0FBZ0NLLEdBQWhDLEVBQXFDO0FBQ2pDLFNBQU9BLEdBQUcsSUFBSUEsR0FBRyxDQUFDQyxVQUFYLEdBQXdCRCxHQUF4QixHQUE4QjtBQUNqQyxlQUFTQTtBQUR3QixHQUFyQztBQUdIOztBQUNELElBQU1FLFVBQVUsR0FBRyxFQUFuQjs7QUFFQSxTQUFTQyxRQUFULENBQWtCQyxNQUFsQixFQUEwQkMsSUFBMUIsRUFBZ0NDLEVBQWhDLEVBQW9DQyxPQUFwQyxFQUE2QztBQUN6QyxNQUFJLFVBQWlDLENBQUNILE1BQXRDLEVBQThDO0FBQzlDLE1BQUksQ0FBQyxDQUFDLEdBQUdQLE9BQUosRUFBYVcsVUFBYixDQUF3QkgsSUFBeEIsQ0FBTCxFQUFvQyxPQUZLLENBR3pDO0FBQ0E7QUFDQTtBQUNBOztBQUNBRCxFQUFBQSxNQUFNLENBQUNELFFBQVAsQ0FBZ0JFLElBQWhCLEVBQXNCQyxFQUF0QixFQUEwQkMsT0FBMUIsV0FBeUMsVUFBQ0UsR0FBRCxFQUFPO0FBQzVDLGNBQTJDO0FBQ3ZDO0FBQ0EsWUFBTUEsR0FBTjtBQUNIO0FBQ0osR0FMRDtBQU1BLE1BQU1DLFNBQVMsR0FBR0gsT0FBTyxJQUFJLE9BQU9B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Q2dGLE9BQTdELEVBQXNFaEYsTUFBTSxJQUFJQSxNQUFNLENBQUNpRixhQUF2RixDQUF4RDtBQUNBVixJQUFBQSxVQUFVLENBQUN0RSxJQUFYLEdBQWtCNEUsWUFBWSxJQUFJLENBQUMsR0FBR3BGLE9BQUosRUFBYXlGLFdBQWIsQ0FBeUIsQ0FBQyxHQUFHekYsT0FBSixFQUFhMEYsU0FBYixDQUF1QmpGLEVBQXZCLEVBQTJCSSxTQUEzQixFQUFzQ04sTUFBTSxJQUFJQSxNQUFNLENBQUNvRixhQUF2RCxDQUF6QixDQUFsQztBQUNIOztBQUNELFNBQU8sYUFBYzlGLE1BQU0sV0FBTixDQUFlK0YsWUFBZixDQUE0QjdCLEtBQTVCLEVBQW1DZSxVQUFuQyxDQUFyQjtBQUNIOztHQXhLUTdDOztLQUFBQTtBQXlLVCxJQUFJNEQsUUFBUSxHQUFHNUQsSUFBZjtBQUNBdEMsa0JBQUEsR0FBa0JrRyxRQUFsQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9saW5rLmpzP2U0ZjkiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7XG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xudmFyIF9yb3V0ZXIgPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9yb3V0ZXIvcm91dGVyXCIpO1xudmFyIF9yb3V0ZXIxID0gcmVxdWlyZShcIi4vcm91dGVyXCIpO1xudmFyIF91c2VJbnRlcnNlY3Rpb24gPSByZXF1aXJlKFwiLi91c2UtaW50ZXJzZWN0aW9uXCIpO1xuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuY29uc3QgcHJlZmV0Y2hlZCA9IHtcbn07XG5mdW5jdGlvbiBwcmVmZXRjaChyb3V0ZXIsIGhyZWYsIGFzLCBvcHRpb25zKSB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8ICFyb3V0ZXIpIHJldHVybjtcbiAgICBpZiAoISgwLCBfcm91dGVyKS5pc0xvY2FsVVJMKGhyZWYpKSByZXR1cm47XG4gICAgLy8gUHJlZmV0Y2ggdGhlIEpTT04gcGFnZSBpZiBhc2tlZCAob25seSBpbiB0aGUgY2xpZW50KVxuICAgIC8vIFdlIG5lZWQgdG8gaGFuZGxlIGEgcHJlZmV0Y2ggZXJyb3IgaGVyZSBzaW5jZSB3ZSBtYXkgYmVcbiAgICAvLyBsb2FkaW5nIHdpdGggcHJpb3JpdHkgd2hpY2ggY2FuIHJlamVjdCBidXQgd2UgZG9uJ3RcbiAgICAvLyB3YW50IHRvIGZvcmNlIG5hdmlnYXRpb24gc2luY2UgdGhpcyBpcyBvbmx5IGEgcHJlZmV0Y2hcbiAgICByb3V0ZXIucHJlZmV0Y2goaHJlZiwgYXMsIG9wdGlvbnMpLmNhdGNoKChlcnIpPT57XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICAvLyByZXRocm93IHRvIHNob3cgaW52YWxpZCBVUkwgZXJyb3JzXG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBjdXJMb2NhbGUgPSBvcHRpb25zICYmIHR5cGVvZiBvcHRpb25zLmxvY2FsZSAhPT0gJ3VuZGVmaW5lZCcgPyBvcHRpb25zLmxvY2FsZSA6IHJvdXRlciAmJiByb3V0ZXIubG9jYWxlO1xuICAgIC8vIEpvaW4gb24gYW4gaW52YWxpZCBVUkkgY2hhcmFjdGVyXG4gICAgcHJlZmV0Y2hlZFtocmVmICsgJyUnICsgYXMgKyAoY3VyTG9jYWxlID8gJyUnICsgY3VyTG9jYWxlIDogJycpXSA9IHRydWU7XG59XG5mdW5jdGlvbiBpc01vZGlmaWVkRXZlbnQoZXZlbnQpIHtcbiAgICBjb25zdCB7IHRhcmdldCAgfSA9IGV2ZW50LmN1cnJlbnRUYXJnZXQ7XG4gICAgcmV0dXJuIHRhcmdldCAmJiB0YXJnZXQgIT09ICdfc2VsZicgfHwgZXZlbnQubWV0YUtleSB8fCBldmVudC5jdHJsS2V5IHx8IGV2ZW50LnNoaWZ0S2V5IHx8IGV2ZW50LmFsdEtleSB8fCBldmVudC5uYXRpdmVFdmVudCAmJiBldmVudC5uYXRpdmVFdmVudC53aGljaCA9PT0gMjtcbn1cbmZ1bmN0aW9uIGxpbmtDbGlja2VkKGUsIHJvdXRlciwgaHJlZiwgYXMsIHJlcGxhY2UsIHNoYWxsb3csIHNjcm9sbCwgbG9jYWxlKSB7XG4gICAgY29uc3QgeyBub2RlTmFtZSAgfSA9IGUuY3VycmVudFRhcmdldDtcbiAgICBpZiAobm9kZU5hbWUgPT09ICdBJyAmJiAoaXNNb2RpZmllZEV2ZW50KGUpIHx8ICEoMCwgX3JvdXRlcikuaXNMb2NhbFVSTChocmVmKSkpIHtcbiAgICAgICAgLy8gaWdub3JlIGNsaWNrIGZvciBicm93c2Vy4oCZcyBkZWZhdWx0IGJlaGF2aW9yXG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIC8vICBhdm9pZCBzY3JvbGwgZm9yIHVybHMgd2l0aCBhbmNob3IgcmVmc1xuICAgIGlmIChzY3JvbGwgPT0gbnVsbCAmJiBhcy5pbmRleE9mKCcjJykgPj0gMCkge1xuICAgICAgICBzY3JvbGwgPSBmYWxzZTtcbiAgICB9XG4gICAgLy8gcmVwbGFjZSBzdGF0ZSBpbnN0ZWFkIG9mIHB1c2ggaWYgcHJvcCBpcyBwcmVzZW50XG4gICAgcm91dGVyW3JlcGxhY2UgPyAncmVwbGFjZScgOiAncHVzaCddKGhyZWYsIGFzLCB7XG4gICAgICAgIHNoYWxsb3csXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgc2Nyb2xsXG4gICAgfSk7XG59XG5mdW5jdGlvbiBMaW5rKHByb3BzKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgZnVuY3Rpb24gY3JlYXRlUHJvcEVycm9yKGFyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgRXJyb3IoYEZhaWxlZCBwcm9wIHR5cGU6IFRoZSBwcm9wIFxcYCR7YXJncy5rZXl9XFxgIGV4cGVjdHMgYSAke2FyZ3MuZXhwZWN0ZWR9IGluIFxcYDxMaW5rPlxcYCwgYnV0IGdvdCBcXGAke2FyZ3MuYWN0dWFsfVxcYCBpbnN0ZWFkLmAgKyAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgPyBcIlxcbk9wZW4geW91ciBicm93c2VyJ3MgY29uc29sZSB0byB2aWV3IHRoZSBDb21wb25lbnQgc3RhY2sgdHJhY2UuXCIgOiAnJykpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFR5cGVTY3JpcHQgdHJpY2sgZm9yIHR5cGUtZ3VhcmRpbmc6XG4gICAgICAgIGNvbnN0IHJlcXVpcmVkUHJvcHNHdWFyZCA9IHtcbiAgICAgICAgICAgIGhyZWY6IHRydWVcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgcmVxdWlyZWRQcm9wcyA9IE9iamVjdC5rZXlzKHJlcXVpcmVkUHJvcHNHdWFyZCk7XG4gICAgICAgIHJlcXVpcmVkUHJvcHMuZm9yRWFjaCgoa2V5KT0+e1xuICAgICAgICAgICAgaWYgKGtleSA9PT0gJ2hyZWYnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHByb3BzW2tleV0gPT0gbnVsbCB8fCB0eXBlb2YgcHJvcHNba2V5XSAhPT0gJ3N0cmluZycgJiYgdHlwZW9mIHByb3BzW2tleV0gIT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGNyZWF0ZVByb3BFcnJvcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZDogJ2BzdHJpbmdgIG9yIGBvYmplY3RgJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbDogcHJvcHNba2V5XSA9PT0gbnVsbCA/ICdudWxsJyA6IHR5cGVvZiBwcm9wc1trZXldXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gVHlwZVNjcmlwdCB0cmljayBmb3IgdHlwZS1ndWFyZGluZzpcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgICAgICAgICAgICAgY29uc3QgXyA9IGtleTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIC8vIFR5cGVTY3JpcHQgdHJpY2sgZm9yIHR5cGUtZ3VhcmRpbmc6XG4gICAgICAgIGNvbnN0IG9wdGlvbmFsUHJvcHNHdWFyZCA9IHtcbiAgICAgICAgICAgIGFzOiB0cnVlLFxuICAgICAgICAgICAgcmVwbGFjZTogdHJ1ZSxcbiAgICAgICAgICAgIHNjcm9sbDogdHJ1ZSxcbiAgICAgICAgICAgIHNoYWxsb3c6IHRydWUsXG4gICAgICAgICAgICBwYXNzSHJlZjogdHJ1ZSxcbiAgICAgICAgICAgIHByZWZldGNoOiB0cnVlLFxuICAgICAgICAgICAgbG9jYWxlOiB0cnVlXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IG9wdGlvbmFsUHJvcHMgPSBPYmplY3Qua2V5cyhvcHRpb25hbFByb3BzR3VhcmQpO1xuICAgICAgICBvcHRpb25hbFByb3BzLmZvckVhY2goKGtleSk9PntcbiAgICAgICAgICAgIGNvbnN0IHZhbFR5cGUgPSB0eXBlb2YgcHJvcHNba2V5XTtcbiAgICAgICAgICAgIGlmIChrZXkgPT09ICdhcycpIHtcbiAgICAgICAgICAgICAgICBpZiAocHJvcHNba2V5XSAmJiB2YWxUeXBlICE9PSAnc3RyaW5nJyAmJiB2YWxUeXBlICE9PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBjcmVhdGVQcm9wRXJyb3Ioe1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQ6ICdgc3RyaW5nYCBvciBgb2JqZWN0YCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWw6IHZhbFR5cGVcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdsb2NhbGUnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHByb3BzW2tleV0gJiYgdmFsVHlwZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgY3JlYXRlUHJvcEVycm9yKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkOiAnYHN0cmluZ2AnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFsOiB2YWxUeXBlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAncmVwbGFjZScgfHwga2V5ID09PSAnc2Nyb2xsJyB8fCBrZXkgPT09ICdzaGFsbG93JyB8fCBrZXkgPT09ICdwYXNzSHJlZicgfHwga2V5ID09PSAncHJlZmV0Y2gnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHByb3BzW2tleV0gIT0gbnVsbCAmJiB2YWxUeXBlICE9PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgY3JlYXRlUHJvcEVycm9yKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkOiAnYGJvb2xlYW5gJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbDogdmFsVHlwZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIFR5cGVTY3JpcHQgdHJpY2sgZm9yIHR5cGUtZ3VhcmRpbmc6XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICAgICAgICAgICAgIGNvbnN0IF8gPSBrZXk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBUaGlzIGhvb2sgaXMgaW4gYSBjb25kaXRpb25hbCBidXQgdGhhdCBpcyBvayBiZWNhdXNlIGBwcm9jZXNzLmVudi5OT0RFX0VOVmAgbmV2ZXIgY2hhbmdlc1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgICAgICAgY29uc3QgaGFzV2FybmVkID0gX3JlYWN0LmRlZmF1bHQudXNlUmVmKGZhbHNlKTtcbiAgICAgICAgaWYgKHByb3BzLnByZWZldGNoICYmICFoYXNXYXJuZWQuY3VycmVudCkge1xuICAgICAgICAgICAgaGFzV2FybmVkLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdOZXh0LmpzIGF1dG8tcHJlZmV0Y2hlcyBhdXRvbWF0aWNhbGx5IGJhc2VkIG9uIHZpZXdwb3J0LiBUaGUgcHJlZmV0Y2ggYXR0cmlidXRlIGlzIG5vIGxvbmdlciBuZWVkZWQuIE1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3ByZWZldGNoLXRydWUtZGVwcmVjYXRlZCcpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHAgPSBwcm9wcy5wcmVmZXRjaCAhPT0gZmFsc2U7XG4gICAgY29uc3Qgcm91dGVyID0gKDAsIF9yb3V0ZXIxKS51c2VSb3V0ZXIoKTtcbiAgICBjb25zdCB7IGhyZWYgLCBhcyAgfSA9IF9yZWFjdC5kZWZhdWx0LnVzZU1lbW8oKCk9PntcbiAgICAgICAgY29uc3QgW3Jlc29sdmVkSHJlZiwgcmVzb2x2ZWRBc10gPSAoMCwgX3JvdXRlcikucmVzb2x2ZUhyZWYocm91dGVyLCBwcm9wcy5ocmVmLCB0cnVlKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGhyZWY6IHJlc29sdmVkSHJlZixcbiAgICAgICAgICAgIGFzOiBwcm9wcy5hcyA/ICgwLCBfcm91dGVyKS5yZXNvbHZlSHJlZihyb3V0ZXIsIHByb3BzLmFzKSA6IHJlc29sdmVkQXMgfHwgcmVzb2x2ZWRIcmVmXG4gICAgICAgIH07XG4gICAgfSwgW1xuICAgICAgICByb3V0ZXIsXG4gICAgICAgIHByb3BzLmhyZWYsXG4gICAgICAgIHByb3BzLmFzXG4gICAgXSk7XG4gICAgbGV0IHsgY2hpbGRyZW4gLCByZXBsYWNlICwgc2hhbGxvdyAsIHNjcm9sbCAsIGxvY2FsZSAgfSA9IHByb3BzO1xuICAgIC8vIERlcHJlY2F0ZWQuIFdhcm5pbmcgc2hvd24gYnkgcHJvcFR5cGUgY2hlY2suIElmIHRoZSBjaGlsZHJlbiBwcm92aWRlZCBpcyBhIHN0cmluZyAoPExpbms+ZXhhbXBsZTwvTGluaz4pIHdlIHdyYXAgaXQgaW4gYW4gPGE+IHRhZ1xuICAgIGlmICh0eXBlb2YgY2hpbGRyZW4gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNoaWxkcmVuID0gLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiYVwiLCBudWxsLCBjaGlsZHJlbik7XG4gICAgfVxuICAgIC8vIFRoaXMgd2lsbCByZXR1cm4gdGhlIGZpcnN0IGNoaWxkLCBpZiBtdWx0aXBsZSBhcmUgcHJvdmlkZWQgaXQgd2lsbCB0aHJvdyBhbiBlcnJvclxuICAgIGxldCBjaGlsZDtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNoaWxkID0gX3JlYWN0LmRlZmF1bHQuQ2hpbGRyZW4ub25seShjaGlsZHJlbik7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBNdWx0aXBsZSBjaGlsZHJlbiB3ZXJlIHBhc3NlZCB0byA8TGluaz4gd2l0aCBcXGBocmVmXFxgIG9mIFxcYCR7cHJvcHMuaHJlZn1cXGAgYnV0IG9ubHkgb25lIGNoaWxkIGlzIHN1cHBvcnRlZCBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9saW5rLW11bHRpcGxlLWNoaWxkcmVuYCArICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyA/IFwiIFxcbk9wZW4geW91ciBicm93c2VyJ3MgY29uc29sZSB0byB2aWV3IHRoZSBDb21wb25lbnQgc3RhY2sgdHJhY2UuXCIgOiAnJykpO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY2hpbGQgPSBfcmVhY3QuZGVmYXVsdC5DaGlsZHJlbi5vbmx5KGNoaWxkcmVuKTtcbiAgICB9XG4gICAgY29uc3QgY2hpbGRSZWYgPSBjaGlsZCAmJiB0eXBlb2YgY2hpbGQgPT09ICdvYmplY3QnICYmIGNoaWxkLnJlZjtcbiAgICBjb25zdCBbc2V0SW50ZXJzZWN0aW9uUmVmLCBpc1Zpc2libGVdID0gKDAsIF91c2VJbnRlcnNlY3Rpb24pLnVzZUludGVyc2VjdGlvbih7XG4gICAgICAgIHJvb3RNYXJnaW46ICcyMDBweCdcbiAgICB9KTtcbiAgICBjb25zdCBzZXRSZWYgPSBfcmVhY3QuZGVmYXVsdC51c2VDYWxsYmFjaygoZWwpPT57XG4gICAgICAgIHNldEludGVyc2VjdGlvblJlZihlbCk7XG4gICAgICAgIGlmIChjaGlsZFJlZikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBjaGlsZFJlZiA9PT0gJ2Z1bmN0aW9uJykgY2hpbGRSZWYoZWwpO1xuICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIGNoaWxkUmVmID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgIGNoaWxkUmVmLmN1cnJlbnQgPSBlbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgY2hpbGRSZWYsXG4gICAgICAgIHNldEludGVyc2VjdGlvblJlZlxuICAgIF0pO1xuICAgIF9yZWFjdC5kZWZhdWx0LnVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBjb25zdCBzaG91bGRQcmVmZXRjaCA9IGlzVmlzaWJsZSAmJiBwICYmICgwLCBfcm91dGVyKS5pc0xvY2FsVVJMKGhyZWYpO1xuICAgICAgICBjb25zdCBjdXJMb2NhbGUgPSB0eXBlb2YgbG9jYWxlICE9PSAndW5kZWZpbmVkJyA/IGxvY2FsZSA6IHJvdXRlciAmJiByb3V0ZXIubG9jYWxlO1xuICAgICAgICBjb25zdCBpc1ByZWZldGNoZWQgPSBwcmVmZXRjaGVkW2hyZWYgKyAnJScgKyBhcyArIChjdXJMb2NhbGUgPyAnJScgKyBjdXJMb2NhbGUgOiAnJyldO1xuICAgICAgICBpZiAoc2hvdWxkUHJlZmV0Y2ggJiYgIWlzUHJlZmV0Y2hlZCkge1xuICAgICAgICAgICAgcHJlZmV0Y2gocm91dGVyLCBocmVmLCBhcywge1xuICAgICAgICAgICAgICAgIGxvY2FsZTogY3VyTG9jYWxlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgYXMsXG4gICAgICAgIGhyZWYsXG4gICAgICAgIGlzVmlzaWJsZSxcbiAgICAgICAgbG9jYWxlLFxuICAgICAgICBwLFxuICAgICAgICByb3V0ZXJcbiAgICBdKTtcbiAgICBjb25zdCBjaGlsZFByb3BzID0ge1xuICAgICAgICByZWY6IHNldFJlZixcbiAgICAgICAgb25DbGljazogKGUpPT57XG4gICAgICAgICAgICBpZiAoY2hpbGQucHJvcHMgJiYgdHlwZW9mIGNoaWxkLnByb3BzLm9uQ2xpY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICBjaGlsZC5wcm9wcy5vbkNsaWNrKGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFlLmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICAgICAgICBsaW5rQ2xpY2tlZChlLCByb3V0ZXIsIGhyZWYsIGFzLCByZXBsYWNlLCBzaGFsbG93LCBzY3JvbGwsIGxvY2FsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGNoaWxkUHJvcHMub25Nb3VzZUVudGVyID0gKGUpPT57XG4gICAgICAgIGlmICghKDAsIF9yb3V0ZXIpLmlzTG9jYWxVUkwoaHJlZikpIHJldHVybjtcbiAgICAgICAgaWYgKGNoaWxkLnByb3BzICYmIHR5cGVvZiBjaGlsZC5wcm9wcy5vbk1vdXNlRW50ZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGNoaWxkLnByb3BzLm9uTW91c2VFbnRlcihlKTtcbiAgICAgICAgfVxuICAgICAgICBwcmVmZXRjaChyb3V0ZXIsIGhyZWYsIGFzLCB7XG4gICAgICAgICAgICBwcmlvcml0eTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIC8vIElmIGNoaWxkIGlzIGFuIDxhPiB0YWcgYW5kIGRvZXNuJ3QgaGF2ZSBhIGhyZWYgYXR0cmlidXRlLCBvciBpZiB0aGUgJ3Bhc3NIcmVmJyBwcm9wZXJ0eSBpc1xuICAgIC8vIGRlZmluZWQsIHdlIHNwZWNpZnkgdGhlIGN1cnJlbnQgJ2hyZWYnLCBzbyB0aGF0IHJlcGV0aXRpb24gaXMgbm90IG5lZWRlZCBieSB0aGUgdXNlclxuICAgIGlmIChwcm9wcy5wYXNzSHJlZiB8fCBjaGlsZC50eXBlID09PSAnYScgJiYgISgnaHJlZicgaW4gY2hpbGQucHJvcHMpKSB7XG4gICAgICAgIGNvbnN0IGN1ckxvY2FsZSA9IHR5cGVvZiBsb2NhbGUgIT09ICd1bmRlZmluZWQnID8gbG9jYWxlIDogcm91dGVyICYmIHJvdXRlci5sb2NhbGU7XG4gICAgICAgIC8vIHdlIG9ubHkgcmVuZGVyIGRvbWFpbiBsb2NhbGVzIGlmIHdlIGFyZSBjdXJyZW50bHkgb24gYSBkb21haW4gbG9jYWxlXG4gICAgICAgIC8vIHNvIHRoYXQgbG9jYWxlIGxpbmtzIGFyZSBzdGlsbCB2aXNpdGFibGUgaW4gZGV2ZWxvcG1lbnQvcHJldmlldyBlbnZzXG4gICAgICAgIGNvbnN0IGxvY2FsZURvbWFpbiA9IHJvdXRlciAmJiByb3V0ZXIuaXNMb2NhbGVEb21haW4gJiYgKDAsIF9yb3V0ZXIpLmdldERvbWFpbkxvY2FsZShhcywgY3VyTG9jYWxlLCByb3V0ZXIgJiYgcm91dGVyLmxvY2FsZXMsIHJvdXRlciAmJiByb3V0ZXIuZG9tYWluTG9jYWxlcyk7XG4gICAgICAgIGNoaWxkUHJvcHMuaHJlZiA9IGxvY2FsZURvbWFpbiB8fCAoMCwgX3JvdXRlcikuYWRkQmFzZVBhdGgoKDAsIF9yb3V0ZXIpLmFkZExvY2FsZShhcywgY3VyTG9jYWxlLCByb3V0ZXIgJiYgcm91dGVyLmRlZmF1bHRMb2NhbGUpKTtcbiAgICB9XG4gICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY2xvbmVFbGVtZW50KGNoaWxkLCBjaGlsZFByb3BzKSk7XG59XG52YXIgX2RlZmF1bHQgPSBMaW5rO1xuZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWxpbmsuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcm91dGVyIiwiX3JvdXRlcjEiLCJfdXNlSW50ZXJzZWN0aW9uIiwib2JqIiwiX19lc01vZHVsZSIsInByZWZldGNoZWQiLCJwcmVmZXRjaCIsInJvdXRlciIsImhyZWYiLCJhcyIsIm9wdGlvbnMiLCJpc0xvY2FsVVJMIiwiZXJyIiwiY3VyTG9jYWxlIiwibG9jYWxlIiwiaXNNb2RpZmllZEV2ZW50IiwiZXZlbnQiLCJ0YXJnZXQiLCJjdXJyZW50VGFyZ2V0IiwibWV0YUtleSIsImN0cmxLZXkiLCJzaGlmdEtleSIsImFsdEtleSIsIm5hdGl2ZUV2ZW50Iiwid2hpY2giLCJsaW5rQ2xpY2tlZCIsImUiLCJyZXBsYWNlIiwic2hhbGxvdyIsInNjcm9sbCIsIm5vZGVOYW1lIiwicHJldmVudERlZmF1bHQiLCJpbmRleE9mIiwiTGluayIsInByb3BzIiwiY3JlYXRlUHJvcEVycm9yIiwiYXJncyIsIkVycm9yIiwia2V5IiwiZXhwZWN0ZWQiLCJhY3R1YWwiLCJyZXF1aXJlZFByb3BzR3VhcmQiLCJyZXF1aXJlZFByb3BzIiwia2V5cyIsImZvckVhY2giLCJfIiwib3B0aW9uYWxQcm9wc0d1YXJkIiwicGFzc0hyZWYiLCJvcHRpb25hbFByb3BzIiwidmFsVHlwZSIsImhhc1dhcm5lZCIsInVzZVJlZiIsImN1cnJlbnQiLCJjb25zb2xlIiwid2FybiIsInAiLCJ1c2VSb3V0ZXIiLCJ1c2VNZW1vIiwicmVzb2x2ZUhyZWYiLCJyZXNvbHZlZEhyZWYiLCJyZXNvbHZlZEFzIiwiY2hpbGRyZW4iLCJjcmVhdGVFbGVtZW50IiwiY2hpbGQiLCJDaGlsZHJlbiIsIm9ubHkiLCJjaGlsZFJlZiIsInJlZiIsInVzZUludGVyc2VjdGlvbiIsInJvb3RNYXJnaW4iLCJzZXRJbnRlcnNlY3Rpb25SZWYiLCJpc1Zpc2libGUiLCJzZXRSZWYiLCJ1c2VDYWxsYmFjayIsImVsIiwidXNlRWZmZWN0Iiwic2hvdWxkUHJlZmV0Y2giLCJpc1ByZWZldGNoZWQiLCJjaGlsZFByb3BzIiwib25DbGljayIsImRlZmF1bHRQcmV2ZW50ZWQiLCJvbk1vdXNlRW50ZXIiLCJwcmlvcml0eSIsInR5cGUiLCJsb2NhbGVEb21haW4iLCJpc0xvY2FsZURvbWFpbiIsImdldERvbWFpbkxvY2FsZSIsImxvY2FsZXMiLCJkb21haW5Mb2NhbGVzIiwiYWRkQmFzZVBhdGgiLCJhZGRMb2NhbGUiLCJkZWZhdWx0TG9jYWxlIiwiY2xvbmVFbGVtZW50IiwiX2RlZmF1bHQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/link.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/use-intersection.js": +/*!***********************************************************!*\ + !*** ./node_modules/next/dist/client/use-intersection.js ***! + \***********************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _slicedToArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nvar _s = $RefreshSig$();\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.useIntersection = useIntersection;\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nvar _requestIdleCallback = __webpack_require__(/*! ./request-idle-callback */ \"./node_modules/next/dist/client/request-idle-callback.js\");\n\nvar hasIntersectionObserver = typeof IntersectionObserver !== 'undefined';\n\nfunction useIntersection(_ref) {\n _s();\n\n var rootMargin = _ref.rootMargin,\n disabled = _ref.disabled;\n var isDisabled = disabled || !hasIntersectionObserver;\n var unobserve = (0, _react).useRef();\n\n var _useState = (0, _react).useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n visible = _useState2[0],\n setVisible = _useState2[1];\n\n var setRef = (0, _react).useCallback(function (el) {\n if (unobserve.current) {\n unobserve.current();\n unobserve.current = undefined;\n }\n\n if (isDisabled || visible) return;\n\n if (el && el.tagName) {\n unobserve.current = observe(el, function (isVisible) {\n return isVisible && setVisible(isVisible);\n }, {\n rootMargin: rootMargin\n });\n }\n }, [isDisabled, rootMargin, visible]);\n (0, _react).useEffect(function () {\n if (!hasIntersectionObserver) {\n if (!visible) {\n var idleCallback = (0, _requestIdleCallback).requestIdleCallback(function () {\n return setVisible(true);\n });\n return function () {\n return (0, _requestIdleCallback).cancelIdleCallback(idleCallback);\n };\n }\n }\n }, [visible]);\n return [setRef, visible];\n}\n\n_s(useIntersection, \"Z6jj7qx+KE6gD9CpC9WlQTha45o=\");\n\nfunction observe(element, callback, options) {\n var _createObserver = createObserver(options),\n id = _createObserver.id,\n observer = _createObserver.observer,\n elements = _createObserver.elements;\n\n elements.set(element, callback);\n observer.observe(element);\n return function unobserve() {\n elements[\"delete\"](element);\n observer.unobserve(element); // Destroy observer when there's nothing left to watch:\n\n if (elements.size === 0) {\n observer.disconnect();\n observers[\"delete\"](id);\n }\n };\n}\n\nvar observers = new Map();\n\nfunction createObserver(options) {\n var id = options.rootMargin || '';\n var instance = observers.get(id);\n\n if (instance) {\n return instance;\n }\n\n var elements = new Map();\n var observer = new IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n var callback = elements.get(entry.target);\n var isVisible = entry.isIntersecting || entry.intersectionRatio > 0;\n\n if (callback && isVisible) {\n callback(isVisible);\n }\n });\n }, options);\n observers.set(id, instance = {\n id: id,\n observer: observer,\n elements: elements\n });\n return instance;\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC91c2UtaW50ZXJzZWN0aW9uLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7Ozs7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELHVCQUFBLEdBQTBCRSxlQUExQjs7QUFDQSxJQUFJQyxNQUFNLEdBQUdDLG1CQUFPLENBQUMsNENBQUQsQ0FBcEI7O0FBQ0EsSUFBSUMsb0JBQW9CLEdBQUdELG1CQUFPLENBQUMseUZBQUQsQ0FBbEM7O0FBQ0EsSUFBTUUsdUJBQXVCLEdBQUcsT0FBT0Msb0JBQVAsS0FBZ0MsV0FBaEU7O0FBQ0EsU0FBU0wsZUFBVCxPQUFxRDtBQUFBOztBQUFBLE1BQTFCTSxVQUEwQixRQUExQkEsVUFBMEI7QUFBQSxNQUFiQyxRQUFhLFFBQWJBLFFBQWE7QUFDakQsTUFBTUMsVUFBVSxHQUFHRCxRQUFRLElBQUksQ0FBQ0gsdUJBQWhDO0FBQ0EsTUFBTUssU0FBUyxHQUFHLENBQUMsR0FBR1IsTUFBSixFQUFZUyxNQUFaLEVBQWxCOztBQUNBLGtCQUE4QixDQUFDLEdBQUdULE1BQUosRUFBWVUsUUFBWixDQUFxQixLQUFyQixDQUE5QjtBQUFBO0FBQUEsTUFBT0MsT0FBUDtBQUFBLE1BQWdCQyxVQUFoQjs7QUFDQSxNQUFNQyxNQUFNLEdBQUcsQ0FBQyxHQUFHYixNQUFKLEVBQVljLFdBQVosQ0FBd0IsVUFBQ0MsRUFBRCxFQUFNO0FBQ3pDLFFBQUlQLFNBQVMsQ0FBQ1EsT0FBZCxFQUF1QjtBQUNuQlIsTUFBQUEsU0FBUyxDQUFDUSxPQUFWO0FBQ0FSLE1BQUFBLFNBQVMsQ0FBQ1EsT0FBVixHQUFvQkMsU0FBcEI7QUFDSDs7QUFDRCxRQUFJVixVQUFVLElBQUlJLE9BQWxCLEVBQTJCOztBQUMzQixRQUFJSSxFQUFFLElBQUlBLEVBQUUsQ0FBQ0csT0FBYixFQUFzQjtBQUNsQlYsTUFBQUEsU0FBUyxDQUFDUSxPQUFWLEdBQW9CRyxPQUFP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QUFBLEVBQUUsRUFBRkEsRUFEeUI7QUFFekJDLElBQUFBLFFBQVEsRUFBUkEsUUFGeUI7QUFHekJDLElBQUFBLFFBQVEsRUFBUkE7QUFIeUIsR0FBN0I7QUFLQSxTQUFPTSxRQUFQO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvdXNlLWludGVyc2VjdGlvbi5qcz9mZDk0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy51c2VJbnRlcnNlY3Rpb24gPSB1c2VJbnRlcnNlY3Rpb247XG52YXIgX3JlYWN0ID0gcmVxdWlyZShcInJlYWN0XCIpO1xudmFyIF9yZXF1ZXN0SWRsZUNhbGxiYWNrID0gcmVxdWlyZShcIi4vcmVxdWVzdC1pZGxlLWNhbGxiYWNrXCIpO1xuY29uc3QgaGFzSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPSB0eXBlb2YgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgIT09ICd1bmRlZmluZWQnO1xuZnVuY3Rpb24gdXNlSW50ZXJzZWN0aW9uKHsgcm9vdE1hcmdpbiAsIGRpc2FibGVkICB9KSB7XG4gICAgY29uc3QgaXNEaXNhYmxlZCA9IGRpc2FibGVkIHx8ICFoYXNJbnRlcnNlY3Rpb25PYnNlcnZlcjtcbiAgICBjb25zdCB1bm9ic2VydmUgPSAoMCwgX3JlYWN0KS51c2VSZWYoKTtcbiAgICBjb25zdCBbdmlzaWJsZSwgc2V0VmlzaWJsZV0gPSAoMCwgX3JlYWN0KS51c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3Qgc2V0UmVmID0gKDAsIF9yZWFjdCkudXNlQ2FsbGJhY2soKGVsKT0+e1xuICAgICAgICBpZiAodW5vYnNlcnZlLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIHVub2JzZXJ2ZS5jdXJyZW50KCk7XG4gICAgICAgICAgICB1bm9ic2VydmUuY3VycmVudCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNEaXNhYmxlZCB8fCB2aXNpYmxlKSByZXR1cm47XG4gICAgICAgIGlmIChlbCAmJiBlbC50YWdOYW1lKSB7XG4gICAgICAgICAgICB1bm9ic2VydmUuY3VycmVudCA9IG9ic2VydmUoZWwsIChpc1Zpc2libGUpPT5pc1Zpc2libGUgJiYgc2V0VmlzaWJsZShpc1Zpc2libGUpXG4gICAgICAgICAgICAsIHtcbiAgICAgICAgICAgICAgICByb290TWFyZ2luXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgaXNEaXNhYmxlZCxcbiAgICAgICAgcm9vdE1hcmdpbixcbiAgICAgICAgdmlzaWJsZVxuICAgIF0pO1xuICAgICgwLCBfcmVhY3QpLnVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBpZiAoIWhhc0ludGVyc2VjdGlvbk9ic2VydmVyKSB7XG4gICAgICAgICAgICBpZiAoIXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpZGxlQ2FsbGJhY2sgPSAoMCwgX3JlcXVlc3RJZGxlQ2FsbGJhY2spLnJlcXVlc3RJZGxlQ2FsbGJhY2soKCk9PnNldFZpc2libGUodHJ1ZSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHJldHVybiAoKT0+KDAsIF9yZXF1ZXN0SWRsZUNhbGxiYWNrKS5jYW5jZWxJZGxlQ2FsbGJhY2soaWRsZUNhbGxiYWNrKVxuICAgICAgICAgICAgICAgIDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgdmlzaWJsZVxuICAgIF0pO1xuICAgIHJldHVybiBbXG4gICAgICAgIHNldFJlZixcbiAgICAgICAgdmlzaWJsZVxuICAgIF07XG59XG5mdW5jdGlvbiBvYnNlcnZlKGVsZW1lbnQsIGNhbGxiYWNrLCBvcHRpb25zKSB7XG4gICAgY29uc3QgeyBpZCAsIG9ic2VydmVyICwgZWxlbWVudHMgIH0gPSBjcmVhdGVPYnNlcnZlcihvcHRpb25zKTtcbiAgICBlbGVtZW50cy5zZXQoZWxlbWVudCwgY2FsbGJhY2spO1xuICAgIG9ic2VydmVyLm9ic2VydmUoZWxlbWVudCk7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIHVub2JzZXJ2ZSgpIHtcbiAgICAgICAgZWxlbWVudHMuZGVsZXRlKGVsZW1lbnQpO1xuICAgICAgICBvYnNlcnZlci51bm9ic2VydmUoZWxlbWVudCk7XG4gICAgICAgIC8vIERlc3Ryb3kgb2JzZXJ2ZXIgd2hlbiB0aGVyZSdzIG5vdGhpbmcgbGVmdCB0byB3YXRjaDpcbiAgICAgICAgaWYgKGVsZW1lbnRzLnNpemUgPT09IDApIHtcbiAgICAgICAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICAgIG9ic2VydmVycy5kZWxldGUoaWQpO1xuICAgICAgICB9XG4gICAgfTtcbn1cbmNvbnN0IG9ic2VydmVycyA9IG5ldyBNYXAoKTtcbmZ1bmN0aW9uIGNyZWF0ZU9ic2VydmVyKG9wdGlvbnMpIHtcbiAgICBjb25zdCBpZCA9IG9wdGlvbnMucm9vdE1hcmdpbiB8fCAnJztcbiAgICBsZXQgaW5zdGFuY2UgPSBvYnNlcnZlcnMuZ2V0KGlkKTtcbiAgICBpZiAoaW5zdGFuY2UpIHtcbiAgICAgICAgcmV0dXJuIGluc3RhbmNlO1xuICAgIH1cbiAgICBjb25zdCBlbGVtZW50cyA9IG5ldyBNYXAoKTtcbiAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZW50cmllcyk9PntcbiAgICAgICAgZW50cmllcy5mb3JFYWNoKChlbnRyeSk9PntcbiAgICAgICAgICAgIGNvbnN0IGNhbGxiYWNrID0gZWxlbWVudHMuZ2V0KGVudHJ5LnRhcmdldCk7XG4gICAgICAgICAgICBjb25zdCBpc1Zpc2libGUgPSBlbnRyeS5pc0ludGVyc2VjdGluZyB8fCBlbnRyeS5pbnRlcnNlY3Rpb25SYXRpbyA+IDA7XG4gICAgICAgICAgICBpZiAoY2FsbGJhY2sgJiYgaXNWaXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2soaXNWaXNpYmxlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSwgb3B0aW9ucyk7XG4gICAgb2JzZXJ2ZXJzLnNldChpZCwgaW5zdGFuY2UgPSB7XG4gICAgICAgIGlkLFxuICAgICAgICBvYnNlcnZlcixcbiAgICAgICAgZWxlbWVudHNcbiAgICB9KTtcbiAgICByZXR1cm4gaW5zdGFuY2U7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVzZS1pbnRlcnNlY3Rpb24uanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwidXNlSW50ZXJzZWN0aW9uIiwiX3JlYWN0IiwicmVxdWlyZSIsIl9yZXF1ZXN0SWRsZUNhbGxiYWNrIiwiaGFzSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiLCJJbnRlcnNlY3Rpb25PYnNlcnZlciIsInJvb3RNYXJnaW4iLCJkaXNhYmxlZCIsImlzRGlzYWJsZWQiLCJ1bm9ic2VydmUiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInZpc2libGUiLCJzZXRWaXNpYmxlIiwic2V0UmVmIiwidXNlQ2FsbGJhY2siLCJlbCIsImN1cnJlbnQiLCJ1bmRlZmluZWQiLCJ0YWdOYW1lIiwib2JzZXJ2ZSIsImlzVmlzaWJsZSIsInVzZUVmZmVjdCIsImlkbGVDYWxsYmFjayIsInJlcXVlc3RJZGxlQ2FsbGJhY2siLCJjYW5jZWxJZGxlQ2FsbGJhY2siLCJlbGVtZW50IiwiY2FsbGJhY2siLCJvcHRpb25zIiwiY3JlYXRlT2JzZXJ2ZXIiLCJpZCIsIm9ic2VydmVyIiwiZWxlbWVudHMiLCJzZXQiLCJzaXplIiwiZGlzY29ubmVjdCIsIm9ic2VydmVycyIsIk1hcCIsImluc3RhbmNlIiwiZ2V0IiwiZW50cmllcyIsImZvckVhY2giLCJlbnRyeSIsInRhcmdldCIsImlzSW50ZXJzZWN0aW5nIiwiaW50ZXJzZWN0aW9uUmF0aW8iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/use-intersection.js\n"); + +/***/ }), + +/***/ "./src/common/getSiblings.js": +/*!***********************************!*\ + !*** ./src/common/getSiblings.js ***! + \***********************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar getSiblings = function getSiblings(e) {\n var siblings = [];\n\n if (!e.parentNode) {\n return siblings;\n }\n\n var sibling = e.parentNode.firstChild;\n\n while (sibling) {\n if (sibling.nodeType === 1 && sibling !== e) {\n siblings.push(sibling);\n }\n\n sibling = sibling.nextSibling;\n }\n\n return siblings;\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (getSiblings);\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL2dldFNpYmxpbmdzLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQUEsSUFBTUEsV0FBVyxHQUFHLFNBQWRBLFdBQWMsQ0FBQ0MsQ0FBRCxFQUFPO0FBQ3pCLE1BQUlDLFFBQVEsR0FBRyxFQUFmOztBQUNBLE1BQUksQ0FBQ0QsQ0FBQyxDQUFDRSxVQUFQLEVBQW1CO0FBQ2pCLFdBQU9ELFFBQVA7QUFDRDs7QUFDRCxNQUFJRSxPQUFPLEdBQUdILENBQUMsQ0FBQ0UsVUFBRixDQUFhRSxVQUEzQjs7QUFDQSxTQUFPRCxPQUFQLEVBQWdCO0FBQ2QsUUFBSUEsT0FBTyxDQUFDRSxRQUFSLEtBQXFCLENBQXJCLElBQTBCRixPQUFPLEtBQUtILENBQTFDLEVBQTZDO0FBQzNDQyxNQUFBQSxRQUFRLENBQUNLLElBQVQsQ0FBY0gsT0FBZDtBQUNEOztBQUNEQSxJQUFBQSxPQUFPLEdBQUdBLE9BQU8sQ0FBQ0ksV0FBbEI7QUFDRDs7QUFDRCxTQUFPTixRQUFQO0FBQ0QsQ0FiRDs7QUFlQSwrREFBZUYsV0FBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tbW9uL2dldFNpYmxpbmdzLmpzPzhlNjUiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZ2V0U2libGluZ3MgPSAoZSkgPT4ge1xyXG4gIGxldCBzaWJsaW5ncyA9IFtdO1xyXG4gIGlmICghZS5wYXJlbnROb2RlKSB7XHJcbiAgICByZXR1cm4gc2libGluZ3M7XHJcbiAgfVxyXG4gIGxldCBzaWJsaW5nID0gZS5wYXJlbnROb2RlLmZpcnN0Q2hpbGQ7XHJcbiAgd2hpbGUgKHNpYmxpbmcpIHtcclxuICAgIGlmIChzaWJsaW5nLm5vZGVUeXBlID09PSAxICYmIHNpYmxpbmcgIT09IGUpIHtcclxuICAgICAgc2libGluZ3MucHVzaChzaWJsaW5nKTtcclxuICAgIH1cclxuICAgIHNpYmxpbmcgPSBzaWJsaW5nLm5leHRTaWJsaW5nO1xyXG4gIH1cclxuICByZXR1cm4gc2libGluZ3M7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBnZXRTaWJsaW5ncztcclxuIl0sIm5hbWVzIjpbImdldFNpYmxpbmdzIiwiZSIsInNpYmxpbmdzIiwicGFyZW50Tm9kZSIsInNpYmxpbmciLCJmaXJzdENoaWxkIiwibm9kZVR5cGUiLCJwdXNoIiwibmV4dFNpYmxpbmciXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/common/getSiblings.js\n"); + +/***/ }), + +/***/ "./src/common/navbar.js": +/*!******************************!*\ + !*** ./src/common/navbar.js ***! + \******************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"handleDropdown\": function() { return /* binding */ handleDropdown; },\n/* harmony export */ \"handleMobileDropdown\": function() { return /* binding */ handleMobileDropdown; }\n/* harmony export */ });\n/* harmony import */ var _getSiblings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getSiblings */ \"./src/common/getSiblings.js\");\n/* module decorator */ module = __webpack_require__.hmd(module);\n\nvar handleDropdown = function handleDropdown(e) {\n (0,_getSiblings__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(e.target.parentElement).filter(function (item) {\n return item.classList.contains(\"show\");\n }).map(function (item) {\n item.classList.remove(\"show\");\n\n if (item.childNodes[0]) {\n item.childNodes[0].setAttribute(\"aria-expanded\", false);\n }\n\n if (item.childNodes[1]) {\n item.childNodes[1].classList.remove(\"show\");\n }\n });\n e.target.parentElement.classList.toggle(\"show\");\n e.target.setAttribute(\"aria-expanded\", true);\n e.target.parentElement.childNodes[1].classList.toggle(\"show\");\n};\nvar handleMobileDropdown = function handleMobileDropdown(e) {\n document.getElementById(\"navbarSupportedContent\").classList.toggle(\"show-with-trans\");\n};\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL25hdmJhci5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7QUFFTyxJQUFNQyxjQUFjLEdBQUcsU0FBakJBLGNBQWlCLENBQUNDLENBQUQsRUFBTztBQUNuQ0YsRUFBQUEsd0RBQVcsQ0FBQ0UsQ0FBQyxDQUFDQyxNQUFGLENBQVNDLGFBQVYsQ0FBWCxDQUNHQyxNQURILENBQ1UsVUFBQ0MsSUFBRDtBQUFBLFdBQVVBLElBQUksQ0FBQ0MsU0FBTCxDQUFlQyxRQUFmLENBQXdCLE1BQXhCLENBQVY7QUFBQSxHQURWLEVBRUdDLEdBRkgsQ0FFTyxVQUFDSCxJQUFELEVBQVU7QUFDYkEsSUFBQUEsSUFBSSxDQUFDQyxTQUFMLENBQWVHLE1BQWYsQ0FBc0IsTUFBdEI7O0FBQ0EsUUFBSUosSUFBSSxDQUFDSyxVQUFMLENBQWdCLENBQWhCLENBQUosRUFBd0I7QUFDdEJMLE1BQUFBLElBQUksQ0FBQ0ssVUFBTCxDQUFnQixDQUFoQixFQUFtQkMsWUFBbkIsQ0FBZ0MsZUFBaEMsRUFBaUQsS0FBakQ7QUFDRDs7QUFDRCxRQUFJTixJQUFJLENBQUNLLFVBQUwsQ0FBZ0IsQ0FBaEIsQ0FBSixFQUF3QjtBQUN0QkwsTUFBQUEsSUFBSSxDQUFDSyxVQUFMLENBQWdCLENBQWhCLEVBQW1CSixTQUFuQixDQUE2QkcsTUFBN0IsQ0FBb0MsTUFBcEM7QUFDRDtBQUNGLEdBVkg7QUFXQVIsRUFBQUEsQ0FBQyxDQUFDQyxNQUFGLENBQVNDLGFBQVQsQ0FBdUJHLFNBQXZCLENBQWlDTSxNQUFqQyxDQUF3QyxNQUF4QztBQUNBWCxFQUFBQSxDQUFDLENBQUNDLE1BQUYsQ0FBU1MsWUFBVCxDQUFzQixlQUF0QixFQUF1QyxJQUF2QztBQUNBVixFQUFBQSxDQUFDLENBQUNDLE1BQUYsQ0FBU0MsYUFBVCxDQUF1Qk8sVUFBdkIsQ0FBa0MsQ0FBbEMsRUFBcUNKLFNBQXJDLENBQStDTSxNQUEvQyxDQUFzRCxNQUF0RDtBQUNELENBZk07QUFpQkEsSUFBTUMsb0JBQW9CLEdBQUcsU0FBdkJBLG9CQUF1QixDQUFDWixDQUFELEVBQU87QUFDekNhLEVBQUFBLFFBQVEsQ0FDTEMsY0FESCxDQUNrQix3QkFEbEIsRUFFR1QsU0FGSCxDQUVhTSxNQUZiLENBRW9CLGlCQUZwQjtBQUdELENBSk0iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbW1vbi9uYXZiYXIuanM/MWU3NiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0U2libGluZ3MgZnJvbSAnLi9nZXRTaWJsaW5ncydcclxuXHJcbmV4cG9ydCBjb25zdCBoYW5kbGVEcm9wZG93biA9IChlKSA9PiB7XHJcbiAgZ2V0U2libGluZ3MoZS50YXJnZXQucGFyZW50RWxlbWVudClcclxuICAgIC5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uY2xhc3NMaXN0LmNvbnRhaW5zKFwic2hvd1wiKSlcclxuICAgIC5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgaXRlbS5jbGFzc0xpc3QucmVtb3ZlKFwic2hvd1wiKTtcclxuICAgICAgaWYgKGl0ZW0uY2hpbGROb2Rlc1swXSkge1xyXG4gICAgICAgIGl0ZW0uY2hpbGROb2Rlc1swXS5zZXRBdHRyaWJ1dGUoXCJhcmlhLWV4cGFuZGVkXCIsIGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaXRlbS5jaGlsZE5vZGVzWzFdKSB7XHJcbiAgICAgICAgaXRlbS5jaGlsZE5vZGVzWzFdLmNsYXNzTGlzdC5yZW1vdmUoXCJzaG93XCIpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICBlLnRhcmdldC5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoXCJzaG93XCIpO1xyXG4gIGUudGFyZ2V0LnNldEF0dHJpYnV0ZShcImFyaWEtZXhwYW5kZWRcIiwgdHJ1ZSk7XHJcbiAgZS50YXJnZXQucGFyZW50RWxlbWVudC5jaGlsZE5vZGVzWzFdLmNsYXNzTGlzdC50b2dnbGUoXCJzaG93XCIpO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGhhbmRsZU1vYmlsZURyb3Bkb3duID0gKGUpID0+IHtcclxuICBkb2N1bWVudFxyXG4gICAgLmdldEVsZW1lbnRCeUlkKFwibmF2YmFyU3VwcG9ydGVkQ29udGVudFwiKVxyXG4gICAgLmNsYXNzTGlzdC50b2dnbGUoXCJzaG93LXdpdGgtdHJhbnNcIik7XHJcbn07Il0sIm5hbWVzIjpbImdldFNpYmxpbmdzIiwiaGFuZGxlRHJvcGRvd24iLCJlIiwidGFyZ2V0IiwicGFyZW50RWxlbWVudCIsImZpbHRlciIsIml0ZW0iLCJjbGFzc0xpc3QiLCJjb250YWlucyIsIm1hcCIsInJlbW92ZSIsImNoaWxkTm9kZXMiLCJzZXRBdHRyaWJ1dGUiLCJ0b2dnbGUiLCJoYW5kbGVNb2JpbGVEcm9wZG93biIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/common/navbar.js\n"); + +/***/ }), + +/***/ "./src/components/Blog-standerd/blog-standerd.jsx": +/*!********************************************************!*\ + !*** ./src/components/Blog-standerd/blog-standerd.jsx ***! + \********************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Blog-standerd\\\\blog-standerd.jsx\",\n _this = undefined;\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\nvar BlogStanderd = function BlogStanderd(_ref) {\n var blogs = _ref.blogs;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"section\", {\n className: \"blog-pg section-padding pt-0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"col-lg-11\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"posts\",\n children: blogs.map(function (blogItem, index) {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"item \".concat(index === blogs.length - 1 ? \"\" : \"mb-80\"),\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/blog-details/blog-details-\".concat(blogItem.id),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"a\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"img\", {\n src: blogItem.image,\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 21\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"content\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"col-10\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/blog-details/blog-details-\".concat(blogItem.id),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"a\", {\n className: \"date\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"span\", {\n className: \"num\",\n children: blogItem.date.day\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 29\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"span\", {\n children: blogItem.date.month\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 29\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"h4\", {\n className: \"title\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/blog-details/blog-details-\".concat(blogItem.id),\n children: blogItem.title\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 44,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"p\", {\n children: blogItem.content\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 51,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/blog-details/blog-details-\".concat(blogItem.id),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"a\", {\n className: \"butn bord curve mt-30\",\n children: \"Read More\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 21\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 19\n }, _this)]\n }, blogItem.id, true, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 17\n }, _this);\n })\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 7,\n columnNumber: 5\n }, _this);\n};\n\n_c = BlogStanderd;\n/* harmony default export */ __webpack_exports__[\"default\"] = (BlogStanderd);\n\nvar _c;\n\n$RefreshReg$(_c, \"BlogStanderd\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9CbG9nLXN0YW5kZXJkL2Jsb2ctc3RhbmRlcmQuanN4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBOzs7QUFFQSxJQUFNRSxZQUFZLEdBQUcsU0FBZkEsWUFBZSxPQUFlO0FBQUEsTUFBWkMsS0FBWSxRQUFaQSxLQUFZO0FBQ2xDLHNCQUNFO0FBQVMsYUFBUyxFQUFDLDhCQUFuQjtBQUFBLDJCQUNFO0FBQUssZUFBUyxFQUFDLFdBQWY7QUFBQSw2QkFDRTtBQUFLLGlCQUFTLEVBQUMsNEJBQWY7QUFBQSwrQkFDRTtBQUFLLG1CQUFTLEVBQUMsV0FBZjtBQUFBLGlDQUNFO0FBQUsscUJBQVMsRUFBQyxPQUFmO0FBQUEsc0JBQ0dBLEtBQUssQ0FBQ0MsR0FBTixDQUFVLFVBQUNDLFFBQUQsRUFBV0MsS0FBWDtBQUFBLGtDQUNUO0FBQ0UseUJBQVMsaUJBQ1BBLEtBQUssS0FBS0gsS0FBSyxDQUFDSSxNQUFOLEdBQWUsQ0FBekIsR0FBNkIsRUFBN0IsR0FBa0MsT0FEM0IsQ0FEWDtBQUFBLHdDQU1FO0FBQUssMkJBQVMsRUFBQyxLQUFmO0FBQUEseUNBQ0UsOERBQUMsa0RBQUQ7QUFBTSx3QkFBSSx1Q0FBZ0NGLFFBQVEsQ0FBQ0csRUFBekMsQ0FBVjtBQUFBLDJDQUNFO0FBQUEsNkNBQ0U7QUFBSywyQkFBRyxFQUFFSCxRQUFRLENBQUNJLEtBQW5CO0FBQTBCLDJCQUFHLEVBQUM7QUFBOUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSx5QkFORixlQWFFO0FBQUssMkJBQVMsRUFBQyxTQUFmO0FBQUEseUNBQ0U7QUFBSyw2QkFBUyxFQUFDLDRCQUFmO0FBQUEsMkNBQ0U7QUFBSywrQkFBUyxFQUFDLFFBQWY7QUFBQSw4Q0FDRSw4REFBQyxrREFBRDtBQUNFLDRCQUFJLHVDQUFnQ0osUUFBUSxDQUFDRyxFQUF6QyxDQUROO0FBQUEsK0NBR0U7QUFBRyxtQ0FBUyxFQUFDLE1BQWI7QUFBQSxrREFDRTtBQUFNLHFDQUFTLEVBQUMsS0FBaEI7QUFBQSxzQ0FBdUJILFFBQVEsQ0FBQ0ssSUFBVCxDQUFjQztBQUFyQztBQUFBO0FBQUE7QUFBQTtBQUFBLG1DQURGLGVBRUU7QUFBQSxzQ0FBT04sUUFBUSxDQUFDSyxJQUFULENBQWNFO0FBQXJCO0FBQUE7QUFBQTtBQUFBO0FBQUEsbUNBRkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSEY7QUFBQTtBQUFBO0FBQUE7QUFBQSwrQkFERixlQWdCRTtBQUFJLGlDQUFTLEVBQUMsT0FBZDtBQUFBLCtDQUNFLDhEQUFDLGtEQUFEO0FBQ0UsOEJBQUksdUNBQWdDUCxRQUFRLENBQUNHLEVBQXpDLENBRE47QUFBQSxvQ0FHR0gsUUFBUSxDQUFDUTtBQUhaO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLCtCQWhCRixlQXVCRTtBQUFBLGtDQUFJUixRQUFRLENBQUNTO0FBQWI7QUFBQTtBQUFBO0FBQUE7QUFBQSwrQkF2QkYsZUF3QkUsOERBQUMsa0RBQUQ7QUFDRSw0QkFBSSx1Q0FBZ0NULFFBQVEsQ0FBQ0csRUFBekMsQ0FETjtBQUFBLCtDQUdFO0FBQUcsbUNBQVMsRUFBQyx1QkFBYjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUhGO0FBQUE7QUFBQTtBQUFBO0FBQUEsK0JBeEJGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLHlCQWJGO0FBQUEsaUJBSU9ILFFBQVEsQ0FBQ0csRUFKaEI7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFEUztBQUFBLGFBQVY7QUFESDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxXQURGO0FBNkVELENBOUVEOztLQUFNTjtBQWdGTiwrREFBZUEsWUFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tcG9uZW50cy9CbG9nLXN0YW5kZXJkL2Jsb2ctc3RhbmRlcmQuanN4PzkyOWIiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcclxuXHJcbmNvbnN0IEJsb2dTdGFuZGVyZCA9ICh7IGJsb2dzIH0pID0+IHtcclxuICByZXR1cm4gKFxyXG4gICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwiYmxvZy1wZyBzZWN0aW9uLXBhZGRpbmcgcHQtMFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTExXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicG9zdHNcIj5cclxuICAgICAgICAgICAgICB7YmxvZ3MubWFwKChibG9nSXRlbSwgaW5kZXgpID0+IChcclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgaXRlbSAke1xyXG4gICAgICAgICAgICAgICAgICAgIGluZGV4ID09PSBibG9ncy5sZW5ndGggLSAxID8gXCJcIiA6IFwibWItODBcIlxyXG4gICAgICAgICAgICAgICAgICB9YH1cclxuICAgICAgICAgICAgICAgICAga2V5PXtibG9nSXRlbS5pZH1cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPXtgL2Jsb2ctZGV0YWlscy9ibG9nLWRldGFpbHMtJHtibG9nSXRlbS5pZH1gfT5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz17YmxvZ0l0ZW0uaW1hZ2V9IGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPExpbmtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPXtgL2Jsb2ctZGV0YWlscy9ibG9nLWRldGFpbHMtJHtibG9nSXRlbS5pZH1gfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3NOYW1lPVwiZGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibnVtXCI+e2Jsb2dJdGVtLmRhdGUuZGF5fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPntibG9nSXRlbS5kYXRlLm1vbnRofTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwidGFnc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtibG9nSXRlbS50YWdzLm1hcCgodGFnLCBpbmRleCkgPT4gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPExpbmsga2V5PXtpbmRleH0gaHJlZj1cIi9ibG9nL2Jsb2ctbGlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3RhZ31cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwidGl0bGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8TGlua1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj17YC9ibG9nLWRldGFpbHMvYmxvZy1kZXRhaWxzLSR7YmxvZ0l0ZW0uaWR9YH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7YmxvZ0l0ZW0udGl0bGV9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2g0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cD57YmxvZ0l0ZW0uY29udGVudH08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxMaW5rXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj17YC9ibG9nLWRldGFpbHMvYmxvZy1kZXRhaWxzLSR7YmxvZ0l0ZW0uaWR9YH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzTmFtZT1cImJ1dG4gYm9yZCBjdXJ2ZSBtdC0zMFwiPlJlYWQgTW9yZTwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgKSl9XHJcbiAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwicGFnaW5hdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiYWN0aXZlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9e2AvYmxvZy9ibG9nLWxpZ2h0YH0+MTwvTGluaz5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8TGluayBocmVmPXtgL2Jsb2cvYmxvZy1saWdodGB9PjI8L0xpbms+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj17YC9ibG9nL2Jsb2ctbGlnaHRgfT5cclxuICAgICAgICAgICAgICAgICAgICA8YT5cclxuICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhcyBmYS1hbmdsZS1yaWdodFwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBCbG9nU3RhbmRlcmQ7XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIkxpbmsiLCJCbG9nU3RhbmRlcmQiLCJibG9ncyIsIm1hcCIsImJsb2dJdGVtIiwiaW5kZXgiLCJsZW5ndGgiLCJpZCIsImltYWdlIiwiZGF0ZSIsImRheSIsIm1vbnRoIiwidGl0bGUiLCJjb250ZW50Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Blog-standerd/blog-standerd.jsx\n"); + +/***/ }), + +/***/ "./src/components/Footer/footer.jsx": +/*!******************************************!*\ + !*** ./src/components/Footer/footer.jsx ***! + \******************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _data_app_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../data/app.json */ \"./src/data/app.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Footer\\\\footer.jsx\",\n _this = undefined;\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\nvar Footer = function Footer(_ref) {\n var hideBGCOLOR = _ref.hideBGCOLOR;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"footer\", {\n className: \"\".concat(!hideBGCOLOR ? \"sub-bg\" : \"\"),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item md-mb50\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"title\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h5\", {\n children: \"Contact Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"ul\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-map-marker\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Officeal Address\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"Baghdad Street, Al Dana area, Abu Dhabi, United Arab Emirates\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-mail\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Email Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"hello@businesshub.abudhabi\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-call\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Call Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"+971 26340404\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"logo\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.footerLogo,\n style: {\n width: \"150px\"\n },\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"social\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"https://www.facebook.com/profile.php?id=100057392223857 \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-facebook-f\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"https://www.linkedin.com/company/business-hub-international-investment\\r\\n\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-linkedin\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"https://www.instagram.com/businesshubi/?igsh=MTJ3ejZneWdmbTM3bQ%3D%3D \\r\\n\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-instagram\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"copy-right\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"\\xA9 2024, 2024 Business HUB international investment - All Rights Reserved.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 5\n }, _this);\n};\n\n_c = Footer;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Footer);\n\nvar _c;\n\n$RefreshReg$(_c, \"Footer\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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LG9CQUFJLEVBQUMsNEVBRFA7QUFBQSx1Q0FJRTtBQUFHLDJCQUFTLEVBQUM7QUFBYjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSkY7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFWRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBUkYsZUF5QkU7QUFBSyx1QkFBUyxFQUFDLFlBQWY7QUFBQSxxQ0FDRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBekJGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBbkNGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBREY7QUE0RUQsQ0E3RUQ7O0tBQU1IO0FBK0VOLCtEQUFlQSxNQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL0Zvb3Rlci9mb290ZXIuanN4P2YzOTQiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcclxuaW1wb3J0IGFwcERhdGEgZnJvbSBcIi4uLy4uL2RhdGEvYXBwLmpzb25cIjtcclxuXHJcbmNvbnN0IEZvb3RlciA9ICh7IGhpZGVCR0NPTE9SIH0pID0+IHtcclxuICByZXR1cm4gKFxyXG4gICAgPGZvb3RlciBjbGFzc05hbWU9e2AkeyFoaWRlQkdDT0xPUiA/IFwic3ViLWJnXCIgOiBcIlwifWB9PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy00XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgPGg1PkNvbnRhY3QgVXM8L2g1PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDx1bD5cclxuICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvbiBwZS03cy1tYXAtbWFya2VyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+T2ZmaWNlYWwgQWRkcmVzczwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICBCYWdoZGFkIFN0cmVldCwgQWwgRGFuYSBhcmVhLCBBYnUgRGhhYmksIFVuaXRlZCBBcmFiXHJcbiAgICAgICAgICAgICAgICAgICAgICBFbWlyYXRlc1xyXG4gICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJpY29uIHBlLTdzLW1haWxcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoNj5FbWFpbCBVczwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+aGVsbG9AYnVzaW5lc3NodWIuYWJ1ZGhhYmk8L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvbiBwZS03cy1jYWxsXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+Q2FsbCBVczwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+Kzk3MSAyNjM0MDQwNDwvcD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctNFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxvZ29cIj5cclxuICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgc3JjPXthcHBEYXRhLmZvb3RlckxvZ299XHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IHdpZHRoOiBcIjE1MHB4XCIgfX1cclxuICAgICAgICAgICAgICAgICAgYWx0PVwiXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzb2NpYWxcIj5cclxuICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJodHRwczovL3d3dy5mYWNlYm9vay5jb20vcHJvZmlsZS5waHA/aWQ9MTAwMDU3MzkyMjIzODU3IFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYWIgZmEtZmFjZWJvb2stZlwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL3d3dy5saW5rZWRpbi5jb20vY29tcGFueS9idXNpbmVzcy1odWItaW50ZXJuYXRpb25hbC1pbnZlc3RtZW50XHJcblwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhYiBmYS1saW5rZWRpblwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL3d3dy5pbnN0YWdyYW0uY29tL2J1c2luZXNzaHViaS8/aWdzaD1NVEozZWpabmVXZG1iVE0zYlElM0QlM0QgXHJcblwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhYiBmYS1pbnN0YWdyYW1cIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb3B5LXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgwqkgMjAyNCwgMjAyNCBCdXNpbmVzcyBIVUIgaW50ZXJuYXRpb25hbCBpbnZlc3RtZW50IC0gQWxsXHJcbiAgICAgICAgICAgICAgICAgIFJpZ2h0cyBSZXNlcnZlZC5cclxuICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Zvb3Rlcj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgRm9vdGVyO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJMaW5rIiwiYXBwRGF0YSIsIkZvb3RlciIsImhpZGVCR0NPTE9SIiwiZm9vdGVyTG9nbyIsIndpZHRoIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Footer/footer.jsx\n"); + +/***/ }), + +/***/ "./src/components/Navbar/navbar.jsx": +/*!******************************************!*\ + !*** ./src/components/Navbar/navbar.jsx ***! + \******************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _data_app_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../data/app.json */ \"./src/data/app.json\");\n/* harmony import */ var _common_navbar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/navbar */ \"./src/common/navbar.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Navbar\\\\navbar.jsx\",\n _this = undefined;\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nvar Navbar = function Navbar(_ref) {\n var lr = _ref.lr,\n nr = _ref.nr,\n theme = _ref.theme;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"nav\", {\n ref: nr,\n className: \"navbar navbar-expand-lg change \".concat(theme === \"themeL\" ? \"light\" : \"\"),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"a\", {\n className: \"logo\",\n children: theme ? theme === \"themeL\" ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n ref: lr,\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.darkLogo,\n alt: \"logo\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 17\n }, _this) : /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n ref: lr,\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.lightLogo,\n alt: \"logo\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 17\n }, _this) : /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n ref: lr,\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.lightLogo,\n alt: \"logo\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"button\", {\n className: \"navbar-toggler\",\n type: \"button\",\n onClick: _common_navbar__WEBPACK_IMPORTED_MODULE_3__.handleMobileDropdown,\n \"data-toggle\": \"collapse\",\n \"data-target\": \"#navbarSupportedContent\",\n \"aria-controls\": \"navbarSupportedContent\",\n \"aria-expanded\": \"false\",\n \"aria-label\": \"Toggle navigation\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"icon-bar\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"i\", {\n className: \"fas fa-bars\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"collapse navbar-collapse\",\n id: \"navbarSupportedContent\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"ul\", {\n className: \"navbar-nav ml-auto\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"nav-link \",\n children: \"Home\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/about\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"a\", {\n className: \"nav-link\",\n children: \"Who we are\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/services\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"nav-link\",\n children: \"Our Services\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 59,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/blog/blog-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"nav-link \",\n children: \"Blog\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/contact/contact-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"a\", {\n className: \"nav-link\",\n children: \"Contact\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 13\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, _this);\n};\n\n_c = Navbar;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Navbar);\n\nvar _c;\n\n$RefreshReg$(_c, \"Navbar\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFDLGtEQUFEO0FBQU0sa0JBQUksb0JBQVY7QUFBQSxxQ0FDRTtBQUFNLHlCQUFTLEVBQUMsV0FBaEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxtQkFoQkYsZUFxQkU7QUFBSSxxQkFBUyxFQUFDLFVBQWQ7QUFBQSxtQ0FDRSw4REFBQyxrREFBRDtBQUFNLGtCQUFJLDBCQUFWO0FBQUEscUNBQ0U7QUFBRyx5QkFBUyxFQUFDLFVBQWI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxtQkFyQkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxlQTlCRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFORjtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBREY7QUFxRUQsQ0F0RUQ7O0tBQU1DO0FBd0VOLCtEQUFlQSxNQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL05hdmJhci9uYXZiYXIuanN4PzdhZjAiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcclxuaW1wb3J0IGFwcERhdGEgZnJvbSBcIi4uLy4uL2RhdGEvYXBwLmpzb25cIjtcclxuaW1wb3J0IHsgaGFuZGxlRHJvcGRvd24sIGhhbmRsZU1vYmlsZURyb3Bkb3duIH0gZnJvbSBcIi4uLy4uL2NvbW1vbi9uYXZiYXJcIjtcclxuXHJcbmNvbnN0IE5hdmJhciA9ICh7IGxyLCBuciwgdGhlbWUgfSkgPT4ge1xyXG4gIHJldHVybiAoXHJcbiAgICA8bmF2XHJcbiAgICAgIHJlZj17bnJ9XHJcbiAgICAgIGNsYXNzTmFtZT17YG5hdmJhciBuYXZiYXItZXhwYW5kLWxnIGNoYW5nZSAke1xyXG4gICAgICAgIHRoZW1lID09PSBcInRoZW1lTFwiID8gXCJsaWdodFwiIDogXCJcIlxyXG4gICAgICB9YH1cclxuICAgID5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICA8TGluayBocmVmPVwiL1wiPlxyXG4gICAgICAgICAgPGEgY2xhc3NOYW1lPVwibG9nb1wiPlxyXG4gICAgICAgICAgICB7dGhlbWUgPyAoXHJcbiAgICAgICAgICAgICAgdGhlbWUgPT09IFwidGhlbWVMXCIgPyAoXHJcbiAgICAgICAgICAgICAgICA8aW1nIHJlZj17bHJ9IHNyYz17YXBwRGF0YS5kYXJrTG9nb30gYWx0PVwibG9nb1wiIC8+XHJcbiAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgIDxpbWcgcmVmPXtscn0gc3JjPXthcHBEYXRhLmxpZ2h0TG9nb30gYWx0PVwibG9nb1wiIC8+XHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgIDxpbWcgcmVmPXtscn0gc3JjPXthcHBEYXRhLmxpZ2h0TG9nb30gYWx0PVwibG9nb1wiIC8+XHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgPC9MaW5rPlxyXG5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICBjbGFzc05hbWU9XCJuYXZiYXItdG9nZ2xlclwiXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZU1vYmlsZURyb3Bkb3dufVxyXG4gICAgICAgICAgZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXHJcbiAgICAgICAgICBkYXRhLXRhcmdldD1cIiNuYXZiYXJTdXBwb3J0ZWRDb250ZW50XCJcclxuICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJuYXZiYXJTdXBwb3J0ZWRDb250ZW50XCJcclxuICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiXHJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiVG9nZ2xlIG5hdmlnYXRpb25cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24tYmFyXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhcyBmYS1iYXJzXCI+PC9pPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbGxhcHNlIG5hdmJhci1jb2xsYXBzZVwiIGlkPVwibmF2YmFyU3VwcG9ydGVkQ29udGVudFwiPlxyXG4gICAgICAgICAgPHVsIGNsYXNzTmFtZT1cIm5hdmJhci1uYXYgbWwtYXV0b1wiPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibmF2LWl0ZW0gXCI+XHJcbiAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9cIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm5hdi1saW5rIFwiPkhvbWU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibmF2LWl0ZW1cIj5cclxuICAgICAgICAgICAgICA8TGluayBocmVmPXtgL2Fib3V0YH0+XHJcbiAgICAgICAgICAgICAgICA8YSBjbGFzc05hbWU9XCJuYXYtbGlua1wiPldobyB3ZSBhcmU8L2E+XHJcbiAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibmF2LWl0ZW0gXCI+XHJcbiAgICAgICAgICAgICAgPExpbmsgaHJlZj17YC9zZXJ2aWNlc2B9PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibmF2LWxpbmtcIj5PdXIgU2VydmljZXM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibmF2LWl0ZW0gXCI+XHJcbiAgICAgICAgICAgICAgPExpbmsgaHJlZj17YC9ibG9nL2Jsb2ctbGlnaHRgfT5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm5hdi1saW5rIFwiPkJsb2c8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibmF2LWl0ZW1cIj5cclxuICAgICAgICAgICAgICA8TGluayBocmVmPXtgL2NvbnRhY3QvY29udGFjdC1saWdodGB9PlxyXG4gICAgICAgICAgICAgICAgPGEgY2xhc3NOYW1lPVwibmF2LWxpbmtcIj5Db250YWN0PC9hPlxyXG4gICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uYXY+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IE5hdmJhcjtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiTGluayIsImFwcERhdGEiLCJoYW5kbGVEcm9wZG93biIsImhhbmRsZU1vYmlsZURyb3Bkb3duIiwiTmF2YmFyIiwibHIiLCJuciIsInRoZW1lIiwiZGFya0xvZ28iLCJsaWdodExvZ28iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/components/Navbar/navbar.jsx\n"); + +/***/ }), + +/***/ "./src/components/Page-header/page-header.jsx": +/*!****************************************************!*\ + !*** ./src/components/Page-header/page-header.jsx ***! + \****************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Page-header\\\\page-header.jsx\",\n _this = undefined;\n\n\n\n\nvar PageHeader = function PageHeader(_ref) {\n var title = _ref.title,\n paragraph = _ref.paragraph,\n className = _ref.className;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"section\", {\n className: \"page-header \".concat(className && className),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"col-lg-7 col-md-9\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"cont text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"h1\", {\n className: \"mb-10 color-font\",\n children: title\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"p\", {\n children: paragraph\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 7,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 6,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 5,\n columnNumber: 7\n }, _this);\n};\n\n_c = PageHeader;\n/* harmony default export */ __webpack_exports__[\"default\"] = (PageHeader);\n\nvar _c;\n\n$RefreshReg$(_c, \"PageHeader\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9QYWdlLWhlYWRlci9wYWdlLWhlYWRlci5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7OztBQUVBLElBQU1DLFVBQVUsR0FBRyxTQUFiQSxVQUFhLE9BQW1DO0FBQUEsTUFBakNDLEtBQWlDLFFBQWpDQSxLQUFpQztBQUFBLE1BQTFCQyxTQUEwQixRQUExQkEsU0FBMEI7QUFBQSxNQUFmQyxTQUFlLFFBQWZBLFNBQWU7QUFDbEQsc0JBQ0U7QUFBUyxhQUFTLHdCQUFpQkEsU0FBUyxJQUFJQSxTQUE5QixDQUFsQjtBQUFBLDJCQUNFO0FBQUssZUFBUyxFQUFDLFdBQWY7QUFBQSw2QkFDRTtBQUFLLGlCQUFTLEVBQUMsNEJBQWY7QUFBQSwrQkFDRTtBQUFLLG1CQUFTLEVBQUMsbUJBQWY7QUFBQSxpQ0FDRTtBQUFLLHFCQUFTLEVBQUMsa0JBQWY7QUFBQSxvQ0FDRTtBQUFJLHVCQUFTLEVBQUMsa0JBQWQ7QUFBQSx3QkFBa0NGO0FBQWxDO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBREYsZUFFRTtBQUFBLHdCQUFJQztBQUFKO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBRkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxXQURGO0FBY0gsQ0FmRDs7S0FBTUY7QUFpQk4sK0RBQWVBLFVBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbXBvbmVudHMvUGFnZS1oZWFkZXIvcGFnZS1oZWFkZXIuanN4P2Q0NDMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xyXG5cclxuY29uc3QgUGFnZUhlYWRlciA9ICh7dGl0bGUsIHBhcmFncmFwaCwgY2xhc3NOYW1lfSkgPT4ge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPXtgcGFnZS1oZWFkZXIgJHtjbGFzc05hbWUgJiYgY2xhc3NOYW1lfWB9PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTcgY29sLW1kLTlcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnQgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxoMSBjbGFzc05hbWU9XCJtYi0xMCBjb2xvci1mb250XCI+e3RpdGxlfTwvaDE+XHJcbiAgICAgICAgICAgICAgICA8cD57cGFyYWdyYXBofTwvcD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9zZWN0aW9uPlxyXG4gICAgKTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgUGFnZUhlYWRlcjsiXSwibmFtZXMiOlsiUmVhY3QiLCJQYWdlSGVhZGVyIiwidGl0bGUiLCJwYXJhZ3JhcGgiLCJjbGFzc05hbWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/components/Page-header/page-header.jsx\n"); + +/***/ }), + +/***/ "./src/layouts/Light.jsx": +/*!*******************************!*\ + !*** ./src/layouts/Light.jsx ***! + \*******************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/head */ \"./node_modules/next/head.js\");\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_head__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\layouts\\\\Light.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n/* eslint-disable @next/next/no-css-tags */\n\n\n\n\n\nvar LightTheme = function LightTheme(_ref) {\n _s();\n\n var children = _ref.children,\n mobileappstyle = _ref.mobileappstyle;\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n window.theme = \"light\";\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)((next_head__WEBPACK_IMPORTED_MODULE_1___default()), {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"link\", {\n rel: \"stylesheet\",\n href: \"/css/light.css\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 9\n }, _this), mobileappstyle ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"link\", {\n href: \"/css/mobile-app-light.css\",\n rel: \"stylesheet\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 28\n }, _this) : null]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 7\n }, _this), children]\n }, void 0, true);\n};\n\n_s(LightTheme, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = LightTheme;\n/* harmony default export */ __webpack_exports__[\"default\"] = (LightTheme);\n\nvar _c;\n\n$RefreshReg$(_c, \"LightTheme\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvbGF5b3V0cy9MaWdodC5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBOzs7O0FBRUEsSUFBTUUsVUFBVSxHQUFHLFNBQWJBLFVBQWEsT0FBa0M7QUFBQTs7QUFBQSxNQUEvQkMsUUFBK0IsUUFBL0JBLFFBQStCO0FBQUEsTUFBckJDLGNBQXFCLFFBQXJCQSxjQUFxQjtBQUNuREosRUFBQUEsc0RBQUEsQ0FBZ0IsWUFBTTtBQUNwQk0sSUFBQUEsTUFBTSxDQUFDQyxLQUFQLEdBQWUsT0FBZjtBQUNELEdBRkQsRUFFRyxFQUZIO0FBR0Esc0JBQ0U7QUFBQSw0QkFDRSw4REFBQyxrREFBRDtBQUFBLDhCQUNFO0FBQU0sV0FBRyxFQUFDLFlBQVY7QUFBdUIsWUFBSSxFQUFDO0FBQTVCO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFERixFQUVHSCxjQUFjLGdCQUFJO0FBQU0sWUFBSSxFQUFDLDJCQUFYO0FBQXVDLFdBQUcsRUFBQztBQUEzQztBQUFBO0FBQUE7QUFBQTtBQUFBLGVBQUosR0FBbUUsSUFGcEY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBREYsRUFLR0QsUUFMSDtBQUFBLGtCQURGO0FBU0QsQ0FiRDs7R0FBTUQ7O0tBQUFBO0FBZU4sK0RBQWVBLFVBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2xheW91dHMvTGlnaHQuanN4PzM5YzIiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1jc3MtdGFncyAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBIZWFkIGZyb20gXCJuZXh0L2hlYWRcIjtcclxuXHJcbmNvbnN0IExpZ2h0VGhlbWUgPSAoeyBjaGlsZHJlbiwgbW9iaWxlYXBwc3R5bGUgfSkgPT4ge1xyXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICB3aW5kb3cudGhlbWUgPSBcImxpZ2h0XCI7XHJcbiAgfSwgW10pO1xyXG4gIHJldHVybiAoXHJcbiAgICA8PlxyXG4gICAgICA8SGVhZD5cclxuICAgICAgICA8bGluayByZWw9XCJzdHlsZXNoZWV0XCIgaHJlZj1cIi9jc3MvbGlnaHQuY3NzXCIgLz5cclxuICAgICAgICB7bW9iaWxlYXBwc3R5bGUgPyAoPGxpbmsgaHJlZj1cIi9jc3MvbW9iaWxlLWFwcC1saWdodC5jc3NcIiByZWw9XCJzdHlsZXNoZWV0XCIgLz4pIDogKG51bGwpfVxyXG4gICAgICA8L0hlYWQ+XHJcbiAgICAgIHtjaGlsZHJlbn1cclxuICAgIDwvPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBMaWdodFRoZW1lO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJIZWFkIiwiTGlnaHRUaGVtZSIsImNoaWxkcmVuIiwibW9iaWxlYXBwc3R5bGUiLCJ1c2VFZmZlY3QiLCJ3aW5kb3ciLCJ0aGVtZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/layouts/Light.jsx\n"); + +/***/ }), + +/***/ "./src/pages/blog/blog-light.jsx": +/*!***************************************!*\ + !*** ./src/pages/blog/blog-light.jsx ***! + \***************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _data_blog1_json__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../data/blog1.json */ \"./src/data/blog1.json\");\n/* harmony import */ var _layouts_Light__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../layouts/Light */ \"./src/layouts/Light.jsx\");\n/* harmony import */ var _components_Navbar_navbar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../components/Navbar/navbar */ \"./src/components/Navbar/navbar.jsx\");\n/* harmony import */ var _components_Blog_standerd_blog_standerd__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../components/Blog-standerd/blog-standerd */ \"./src/components/Blog-standerd/blog-standerd.jsx\");\n/* harmony import */ var _components_Page_header_page_header__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../components/Page-header/page-header */ \"./src/components/Page-header/page-header.jsx\");\n/* harmony import */ var _components_Footer_footer__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../components/Footer/footer */ \"./src/components/Footer/footer.jsx\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_7__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\pages\\\\blog\\\\blog-light.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n\n\n\n\n\n\n\n\n\nvar BlogLight = function BlogLight() {\n _s();\n\n var navbarRef = react__WEBPACK_IMPORTED_MODULE_0___default().useRef(null);\n var logoRef = react__WEBPACK_IMPORTED_MODULE_0___default().useRef(null);\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n var navbar = navbarRef.current,\n logo = logoRef.current;\n\n if (window.pageYOffset > 300) {\n navbar.classList.add(\"nav-scroll\");\n } else {\n navbar.classList.remove(\"nav-scroll\");\n }\n\n window.addEventListener(\"scroll\", function () {\n if (window.pageYOffset > 300) {\n navbar.classList.add(\"nav-scroll\");\n } else {\n navbar.classList.remove(\"nav-scroll\");\n }\n });\n }, [navbarRef]);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxDEV)(_layouts_Light__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxDEV)(\"div\", {\n className: \"circle-bg\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxDEV)(\"div\", {\n className: \"circle-color fixed\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxDEV)(\"div\", {\n className: \"gradient-circle\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxDEV)(\"div\", {\n className: \"gradient-circle two\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxDEV)(_components_Navbar_navbar__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n nr: navbarRef,\n lr: logoRef,\n theme: \"themeL\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxDEV)(_components_Page_header_page_header__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n title: \"Our News.\",\n paragraph: \"All the most current news and events of our creative team.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxDEV)(_components_Blog_standerd_blog_standerd__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n blogs: _data_blog1_json__WEBPACK_IMPORTED_MODULE_1__\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxDEV)(_components_Footer_footer__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 5\n }, _this);\n};\n\n_s(BlogLight, \"NJv/rvX5fPwWhnPtkwq0tuwt7xI=\");\n\n_c = BlogLight;\n/* harmony default export */ __webpack_exports__[\"default\"] = (BlogLight);\n\nvar _c;\n\n$RefreshReg$(_c, \"BlogLight\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvcGFnZXMvYmxvZy9ibG9nLWxpZ2h0LmpzeC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUVBLElBQU1PLFNBQVMsR0FBRyxTQUFaQSxTQUFZLEdBQU07QUFBQTs7QUFDcEIsTUFBTUMsU0FBUyxHQUFHUixtREFBQSxDQUFhLElBQWIsQ0FBbEI7QUFDQSxNQUFNVSxPQUFPLEdBQUdWLG1EQUFBLENBQWEsSUFBYixDQUFoQjtBQUVBQSxFQUFBQSxzREFBQSxDQUFnQixZQUFNO0FBQ3BCLFFBQUlZLE1BQU0sR0FBR0osU0FBUyxDQUFDSyxPQUF2QjtBQUFBLFFBQ0VDLElBQUksR0FBR0osT0FBTyxDQUFDRyxPQURqQjs7QUFFQSxRQUFJRSxNQUFNLENBQUNDLFdBQVAsR0FBcUIsR0FBekIsRUFBOEI7QUFDNUJKLE1BQUFBLE1BQU0sQ0FBQ0ssU0FBUCxDQUFpQkMsR0FBakIsQ0FBcUIsWUFBckI7QUFDRCxLQUZELE1BRU87QUFDTE4sTUFBQUEsTUFBTSxDQUFDSyxTQUFQLENBQWlCRSxNQUFqQixDQUF3QixZQUF4QjtBQUNEOztBQUNESixJQUFBQSxNQUFNLENBQUNLLGdCQUFQLENBQXdCLFFBQXhCLEVBQWtDLFlBQU07QUFDdEMsVUFBSUwsTUFBTSxDQUFDQyxXQUFQLEdBQXFCLEdBQXpCLEVBQThCO0FBQzVCSixRQUFBQSxNQUFNLENBQUNLLFNBQVAsQ0FBaUJDLEdBQWpCLENBQXFCLFlBQXJCO0FBQ0QsT0FGRCxNQUVPO0FBQ0xOLFFBQUFBLE1BQU0sQ0FBQ0ssU0FBUCxDQUFpQkUsTUFBakIsQ0FBd0IsWUFBeEI7QUFDRDtBQUNGLEtBTkQ7QUFPRCxHQWZELEVBZUcsQ0FBQ1gsU0FBRCxDQWZIO0FBZ0JGLHNCQUNFLDhEQUFDLHNEQUFEO0FBQUEsNEJBQ0U7QUFBSyxlQUFTLEVBQUMsV0FBZjtBQUFBLDZCQUNFO0FBQUssaUJBQVMsRUFBQyxvQkFBZjtBQUFBLGdDQUNFO0FBQUssbUJBQVMsRUFBQztBQUFmO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBREYsZUFFRTtBQUFLLG1CQUFTLEVBQUM7QUFBZjtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQUZGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsYUFERixlQU9FLDhEQUFDLGlFQUFEO0FBQVEsUUFBRSxFQUFFQSxTQUFaO0FBQXVCLFFBQUUsRUFBRUUsT0FBM0I7QUFBb0MsV0FBSyxFQUFDO0FBQTFDO0FBQUE7QUFBQTtBQUFBO0FBQUEsYUFQRixlQVFFLDhEQUFDLDJFQUFEO0FBQ0UsV0FBSyxFQUFDLFdBRFI7QUFFRSxlQUFTLEVBQUM7QUFGWjtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBUkYsZUFZRSw4REFBQywrRUFBRDtBQUFjLFdBQUssRUFBRVQsNkNBQVNBO0FBQTlCO0FBQUE7QUFBQTtBQUFBO0FBQUEsYUFaRixlQWFFLDhEQUFDLGlFQUFEO0FBQUE7QUFBQTtBQUFBO0FBQUEsYUFiRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsV0FERjtBQWlCRCxDQXJDRDs7R0FBTU07O0tBQUFBO0FBdUNOLCtEQUFlQSxTQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9wYWdlcy9ibG9nL2Jsb2ctbGlnaHQuanN4P2U2Y2EiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgYmxvZzFEYXRhIGZyb20gXCIuLi8uLi9kYXRhL2Jsb2cxLmpzb25cIjtcclxuaW1wb3J0IExpZ2h0VGhlbWUgZnJvbSBcIi4uLy4uL2xheW91dHMvTGlnaHRcIjtcclxuaW1wb3J0IE5hdmJhciBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9OYXZiYXIvbmF2YmFyXCI7XHJcbmltcG9ydCBCbG9nU3RhbmRlcmQgZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvQmxvZy1zdGFuZGVyZC9ibG9nLXN0YW5kZXJkXCI7XHJcbmltcG9ydCBQYWdlSGVhZGVyIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL1BhZ2UtaGVhZGVyL3BhZ2UtaGVhZGVyXCI7XHJcbmltcG9ydCBGb290ZXIgZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvRm9vdGVyL2Zvb3RlclwiO1xyXG5cclxuY29uc3QgQmxvZ0xpZ2h0ID0gKCkgPT4ge1xyXG4gICAgY29uc3QgbmF2YmFyUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xyXG4gICAgY29uc3QgbG9nb1JlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcclxuXHJcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICB2YXIgbmF2YmFyID0gbmF2YmFyUmVmLmN1cnJlbnQsXHJcbiAgICAgICAgbG9nbyA9IGxvZ29SZWYuY3VycmVudDtcclxuICAgICAgaWYgKHdpbmRvdy5wYWdlWU9mZnNldCA+IDMwMCkge1xyXG4gICAgICAgIG5hdmJhci5jbGFzc0xpc3QuYWRkKFwibmF2LXNjcm9sbFwiKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBuYXZiYXIuY2xhc3NMaXN0LnJlbW92ZShcIm5hdi1zY3JvbGxcIik7XHJcbiAgICAgIH1cclxuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgKCkgPT4ge1xyXG4gICAgICAgIGlmICh3aW5kb3cucGFnZVlPZmZzZXQgPiAzMDApIHtcclxuICAgICAgICAgIG5hdmJhci5jbGFzc0xpc3QuYWRkKFwibmF2LXNjcm9sbFwiKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbmF2YmFyLmNsYXNzTGlzdC5yZW1vdmUoXCJuYXYtc2Nyb2xsXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9LCBbbmF2YmFyUmVmXSk7XHJcbiAgcmV0dXJuIChcclxuICAgIDxMaWdodFRoZW1lPlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNpcmNsZS1iZ1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2lyY2xlLWNvbG9yIGZpeGVkXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyYWRpZW50LWNpcmNsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmFkaWVudC1jaXJjbGUgdHdvXCI+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8TmF2YmFyIG5yPXtuYXZiYXJSZWZ9IGxyPXtsb2dvUmVmfSB0aGVtZT1cInRoZW1lTFwiIC8+XHJcbiAgICAgIDxQYWdlSGVhZGVyXHJcbiAgICAgICAgdGl0bGU9XCJPdXIgTmV3cy5cIlxyXG4gICAgICAgIHBhcmFncmFwaD1cIkFsbCB0aGUgbW9zdCBjdXJyZW50IG5ld3MgYW5kIGV2ZW50cyBvZiBvdXIgY3JlYXRpdmUgdGVhbS5cIlxyXG4gICAgICAvPlxyXG4gICAgICA8QmxvZ1N0YW5kZXJkIGJsb2dzPXtibG9nMURhdGF9IC8+XHJcbiAgICAgIDxGb290ZXIgLz5cclxuICAgIDwvTGlnaHRUaGVtZT5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgQmxvZ0xpZ2h0O1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJibG9nMURhdGEiLCJMaWdodFRoZW1lIiwiTmF2YmFyIiwiQmxvZ1N0YW5kZXJkIiwiUGFnZUhlYWRlciIsIkZvb3RlciIsIkJsb2dMaWdodCIsIm5hdmJhclJlZiIsInVzZVJlZiIsImxvZ29SZWYiLCJ1c2VFZmZlY3QiLCJuYXZiYXIiLCJjdXJyZW50IiwibG9nbyIsIndpbmRvdyIsInBhZ2VZT2Zmc2V0IiwiY2xhc3NMaXN0IiwiYWRkIiwicmVtb3ZlIiwiYWRkRXZlbnRMaXN0ZW5lciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/pages/blog/blog-light.jsx\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2Fblog%2Fblog-light&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cblog%5Cblog-light.jsx!": +/*!***************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2Fblog%2Fblog-light&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cblog%5Cblog-light.jsx! ***! + \***************************************************************************************************************************************************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/blog/blog-light\",\n function () {\n return __webpack_require__(/*! ./src/pages/blog/blog-light.jsx */ \"./src/pages/blog/blog-light.jsx\");\n }\n ]);\n if(true) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/blog/blog-light\"])\n });\n }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWNsaWVudC1wYWdlcy1sb2FkZXIuanM/cGFnZT0lMkZibG9nJTJGYmxvZy1saWdodCZhYnNvbHV0ZVBhZ2VQYXRoPUMlM0ElNUNVc2VycyU1Q2hwJTVDRGVza3RvcCU1Q2J1c2luZXNzLWh1YiU1Q3NyYyU1Q3BhZ2VzJTVDYmxvZyU1Q2Jsb2ctbGlnaHQuanN4IS5qcyIsIm1hcHBpbmdzIjoiO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxtQkFBTyxDQUFDLHdFQUFpQztBQUN4RDtBQUNBO0FBQ0EsT0FBTyxJQUFVO0FBQ2pCLE1BQU0sVUFBVTtBQUNoQjtBQUNBLE9BQU87QUFDUDtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8/YmViNSJdLCJzb3VyY2VzQ29udGVudCI6WyJcbiAgICAod2luZG93Ll9fTkVYVF9QID0gd2luZG93Ll9fTkVYVF9QIHx8IFtdKS5wdXNoKFtcbiAgICAgIFwiL2Jsb2cvYmxvZy1saWdodFwiLFxuICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gcmVxdWlyZShcIi4vc3JjL3BhZ2VzL2Jsb2cvYmxvZy1saWdodC5qc3hcIik7XG4gICAgICB9XG4gICAgXSk7XG4gICAgaWYobW9kdWxlLmhvdCkge1xuICAgICAgbW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgd2luZG93Ll9fTkVYVF9QLnB1c2goW1wiL2Jsb2cvYmxvZy1saWdodFwiXSlcbiAgICAgIH0pO1xuICAgIH1cbiAgIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2Fblog%2Fblog-light&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cblog%5Cblog-light.jsx!\n"); + +/***/ }), + +/***/ "./node_modules/next/link.js": +/*!***********************************!*\ + !*** ./node_modules/next/link.js ***! + \***********************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("module.exports = __webpack_require__(/*! ./dist/client/link */ \"./node_modules/next/dist/client/link.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9saW5rLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBLHlHQUE4QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9saW5rLmpzPzc1YjMiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Rpc3QvY2xpZW50L2xpbmsnKVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/link.js\n"); + +/***/ }), + +/***/ "./src/data/blog1.json": +/*!*****************************!*\ + !*** ./src/data/blog1.json ***! + \*****************************/ +/***/ (function(module) { + +"use strict"; +module.exports = JSON.parse('[{"id":1,"title":"Business Hub: Its role in supporting companies in the stages of establishment, development, and...","content":"In a rapidly evolving and competitive business landscape, companies often need specialized support and guidance to meet challenges, exploit opportunities, and achieve sustainable growth. Here comes the role of Business Hub as an essential ally for companies, as it provides comprehensive services aimed at assisting companies in the stages of establishment, development, and management.","image":"/img/blog/blog img1.webp","tags":["WordPress","Themeforest","Vie"],"date":{"day":"01","month":"April"}},{"id":2,"title":"Business Hub: Empowering Companies through Establishment","content":" In the fast-paced and competitive business landscape, companies often require specialized support and guidance to navigate challenges, capitalize on opportunities, and achieve sustainable growth. ","image":"/img/blog/blog img2.webp","tags":["WordPress","Themeforest","Vie"],"date":{"day":"01","month":"April"}},{"id":3,"title":"The Importance of Consulting:","content":"In today\'s fast-paced and competitive business world, seeking advice and guidance from consultants has become increasingly crucial for companies aiming to thrive and succeed.","image":"/img/blog/blog img3.webp","tags":["WordPress","Themeforest","Vie"],"date":{"day":"01","month":"April"}},{"id":4,"title":"The importance of consulting in practical success","content":" When we talk about the business world, consulting plays a crucial role in the success and continuity of companies. Here are some points that highlight the importance of consultations in this context","image":"/img/blog/b4.jpg","tags":["WordPress","Themeforest","Vie"],"date":{"day":"28","month":"March"}}]'); + +/***/ }) + +}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); } +/******/ __webpack_require__.O(0, ["pages/_app","main"], function() { return __webpack_exec__("./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2Fblog%2Fblog-light&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cblog%5Cblog-light.jsx!"); }); +/******/ var __webpack_exports__ = __webpack_require__.O(); +/******/ _N_E = __webpack_exports__; +/******/ } +]); \ No newline at end of file diff --git a/.next/static/chunks/pages/contact/contact-light.js b/.next/static/chunks/pages/contact/contact-light.js new file mode 100644 index 0000000..76ed90e --- /dev/null +++ b/.next/static/chunks/pages/contact/contact-light.js @@ -0,0 +1,4832 @@ +/* + * 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/). + */ +(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["pages/contact/contact-light"],{ + +/***/ "./node_modules/next/dist/client/link.js": +/*!***********************************************!*\ + !*** ./node_modules/next/dist/client/link.js ***! + \***********************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _slicedToArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nvar _s = $RefreshSig$();\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _router = __webpack_require__(/*! ../shared/lib/router/router */ \"./node_modules/next/dist/shared/lib/router/router.js\");\n\nvar _router1 = __webpack_require__(/*! ./router */ \"./node_modules/next/dist/client/router.js\");\n\nvar _useIntersection = __webpack_require__(/*! ./use-intersection */ \"./node_modules/next/dist/client/use-intersection.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar prefetched = {};\n\nfunction prefetch(router, href, as, options) {\n if ( false || !router) return;\n if (!(0, _router).isLocalURL(href)) return; // Prefetch the JSON 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\n router.prefetch(href, as, options)[\"catch\"](function (err) {\n if (true) {\n // rethrow to show invalid URL errors\n throw err;\n }\n });\n var curLocale = options && typeof options.locale !== 'undefined' ? options.locale : router && router.locale; // Join on an invalid URI character\n\n prefetched[href + '%' + as + (curLocale ? '%' + curLocale : '')] = true;\n}\n\nfunction isModifiedEvent(event) {\n var target = event.currentTarget.target;\n return target && target !== '_self' || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey || event.nativeEvent && event.nativeEvent.which === 2;\n}\n\nfunction linkClicked(e, router, href, as, replace, shallow, scroll, locale) {\n var nodeName = e.currentTarget.nodeName;\n\n if (nodeName === 'A' && (isModifiedEvent(e) || !(0, _router).isLocalURL(href))) {\n // ignore click for browser’s default behavior\n return;\n }\n\n e.preventDefault(); // avoid scroll for urls with anchor refs\n\n if (scroll == null && as.indexOf('#') >= 0) {\n scroll = false;\n } // replace state instead of push if prop is present\n\n\n router[replace ? 'replace' : 'push'](href, as, {\n shallow: shallow,\n locale: locale,\n scroll: scroll\n });\n}\n\nfunction Link(props) {\n _s();\n\n if (true) {\n var createPropError = function createPropError(args) {\n return new Error(\"Failed prop type: The prop `\".concat(args.key, \"` expects a \").concat(args.expected, \" in `<Link>`, but got `\").concat(args.actual, \"` instead.\") + ( true ? \"\\nOpen your browser's console to view the Component stack trace.\" : 0));\n }; // TypeScript trick for type-guarding:\n\n\n var requiredPropsGuard = {\n href: true\n };\n var requiredProps = Object.keys(requiredPropsGuard);\n requiredProps.forEach(function (key) {\n if (key === 'href') {\n if (props[key] == null || typeof props[key] !== 'string' && typeof props[key] !== 'object') {\n throw createPropError({\n key: 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 var _ = key;\n }\n }); // TypeScript trick for type-guarding:\n\n var optionalPropsGuard = {\n as: true,\n replace: true,\n scroll: true,\n shallow: true,\n passHref: true,\n prefetch: true,\n locale: true\n };\n var optionalProps = Object.keys(optionalPropsGuard);\n optionalProps.forEach(function (key) {\n var valType = typeof props[key];\n\n if (key === 'as') {\n if (props[key] && valType !== 'string' && valType !== 'object') {\n throw createPropError({\n key: key,\n expected: '`string` or `object`',\n actual: valType\n });\n }\n } else if (key === 'locale') {\n if (props[key] && valType !== 'string') {\n throw createPropError({\n key: key,\n expected: '`string`',\n actual: valType\n });\n }\n } else if (key === 'replace' || key === 'scroll' || key === 'shallow' || key === 'passHref' || key === 'prefetch') {\n if (props[key] != null && valType !== 'boolean') {\n throw createPropError({\n key: key,\n expected: '`boolean`',\n actual: valType\n });\n }\n } else {\n // TypeScript trick for type-guarding:\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var _ = key;\n }\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\n var hasWarned = _react[\"default\"].useRef(false);\n\n if (props.prefetch && !hasWarned.current) {\n hasWarned.current = true;\n console.warn('Next.js auto-prefetches automatically based on viewport. The prefetch attribute is no longer needed. More: https://nextjs.org/docs/messages/prefetch-true-deprecated');\n }\n }\n\n var p = props.prefetch !== false;\n var router = (0, _router1).useRouter();\n\n var _react$default$useMem = _react[\"default\"].useMemo(function () {\n var _resolveHref = (0, _router).resolveHref(router, props.href, true),\n _resolveHref2 = _slicedToArray(_resolveHref, 2),\n resolvedHref = _resolveHref2[0],\n resolvedAs = _resolveHref2[1];\n\n return {\n href: resolvedHref,\n as: props.as ? (0, _router).resolveHref(router, props.as) : resolvedAs || resolvedHref\n };\n }, [router, props.href, props.as]),\n href = _react$default$useMem.href,\n as = _react$default$useMem.as;\n\n var children = props.children,\n replace = props.replace,\n shallow = props.shallow,\n scroll = props.scroll,\n locale = props.locale; // Deprecated. Warning shown by propType check. If the children provided is a string (<Link>example</Link>) we wrap it in an <a> tag\n\n if (typeof children === 'string') {\n children = /*#__PURE__*/_react[\"default\"].createElement(\"a\", null, children);\n } // This will return the first child, if multiple are provided it will throw an error\n\n\n var child;\n\n if (true) {\n try {\n child = _react[\"default\"].Children.only(children);\n } catch (err) {\n throw new Error(\"Multiple children were passed to <Link> with `href` of `\".concat(props.href, \"` but only one child is supported https://nextjs.org/docs/messages/link-multiple-children\") + ( true ? \" \\nOpen your browser's console to view the Component stack trace.\" : 0));\n }\n } else {}\n\n var childRef = child && typeof child === 'object' && child.ref;\n\n var _useIntersection2 = (0, _useIntersection).useIntersection({\n rootMargin: '200px'\n }),\n _useIntersection3 = _slicedToArray(_useIntersection2, 2),\n setIntersectionRef = _useIntersection3[0],\n isVisible = _useIntersection3[1];\n\n var setRef = _react[\"default\"].useCallback(function (el) {\n setIntersectionRef(el);\n\n if (childRef) {\n if (typeof childRef === 'function') childRef(el);else if (typeof childRef === 'object') {\n childRef.current = el;\n }\n }\n }, [childRef, setIntersectionRef]);\n\n _react[\"default\"].useEffect(function () {\n var shouldPrefetch = isVisible && p && (0, _router).isLocalURL(href);\n var curLocale = typeof locale !== 'undefined' ? locale : router && router.locale;\n var isPrefetched = prefetched[href + '%' + as + (curLocale ? '%' + curLocale : '')];\n\n if (shouldPrefetch && !isPrefetched) {\n prefetch(router, href, as, {\n locale: curLocale\n });\n }\n }, [as, href, isVisible, locale, p, router]);\n\n var childProps = {\n ref: setRef,\n onClick: function onClick(e) {\n if (child.props && typeof child.props.onClick === 'function') {\n child.props.onClick(e);\n }\n\n if (!e.defaultPrevented) {\n linkClicked(e, router, href, as, replace, shallow, scroll, locale);\n }\n }\n };\n\n childProps.onMouseEnter = function (e) {\n if (!(0, _router).isLocalURL(href)) return;\n\n if (child.props && typeof child.props.onMouseEnter === 'function') {\n child.props.onMouseEnter(e);\n }\n\n prefetch(router, href, as, {\n priority: true\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\n\n if (props.passHref || child.type === 'a' && !('href' in child.props)) {\n var curLocale = typeof locale !== 'undefined' ? locale : router && router.locale; // we only render domain locales if we are currently on a domain locale\n // so that locale links are still visitable in development/preview envs\n\n var localeDomain = router && router.isLocaleDomain && (0, _router).getDomainLocale(as, curLocale, router && router.locales, router && router.domainLocales);\n childProps.href = localeDomain || (0, _router).addBasePath((0, _router).addLocale(as, curLocale, router && router.defaultLocale));\n }\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(child, childProps);\n}\n\n_s(Link, \"PYHstBoZE4p1pf5wc1Vw4fTzvCU=\", true);\n\n_c = Link;\nvar _default = Link;\nexports[\"default\"] = _default;\n\nvar _c;\n\n$RefreshReg$(_c, \"Link\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9saW5rLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7Ozs7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELGtCQUFBLEdBQWtCLEtBQUssQ0FBdkI7O0FBQ0EsSUFBSUUsTUFBTSxHQUFHQyxzQkFBc0IsQ0FBQ0MsbUJBQU8sQ0FBQyw0Q0FBRCxDQUFSLENBQW5DOztBQUNBLElBQUlDLE9BQU8sR0FBR0QsbUJBQU8sQ0FBQyx5RkFBRCxDQUFyQjs7QUFDQSxJQUFJRSxRQUFRLEdBQUdGLG1CQUFPLENBQUMsMkRBQUQsQ0FBdEI7O0FBQ0EsSUFBSUcsZ0JBQWdCLEdBQUdILG1CQUFPLENBQUMsK0VBQUQsQ0FBOUI7O0FBQ0EsU0FBU0Qsc0JBQVQsQ0FBZ0NLLEdBQWhDLEVBQXFDO0FBQ2pDLFNBQU9BLEdBQUcsSUFBSUEsR0FBRyxDQUFDQyxVQUFYLEdBQXdCRCxHQUF4QixHQUE4QjtBQUNqQyxlQUFTQTtBQUR3QixHQUFyQztBQUdIOztBQUNELElBQU1FLFVBQVUsR0FBRyxFQUFuQjs7QUFFQSxTQUFTQyxRQUFULENBQWtCQyxNQUFsQixFQUEwQkMsSUFBMUIsRUFBZ0NDLEVBQWhDLEVBQW9DQyxPQUFwQyxFQUE2QztBQUN6QyxNQUFJLFVBQWlDLENBQUNILE1BQXRDLEVBQThDO0FBQzlDLE1BQUksQ0FBQyxDQUFDLEdBQUdQLE9BQUosRUFBYVcsVUFBYixDQUF3QkgsSUFBeEIsQ0FBTCxFQUFvQyxPQUZLLENBR3pDO0FBQ0E7QUFDQTtBQUNBOztBQUNBRCxFQUFBQSxNQUFNLENBQUNELFFBQVAsQ0FBZ0JFLElBQWhCLEVBQXNCQyxFQUF0QixFQUEwQkMsT0FBMUIsV0FBeUMsVUFBQ0UsR0FBRCxFQUFPO0FBQzVDLGNBQTJDO0FBQ3ZDO0FBQ0EsWUFBTUEsR0FBTjtBQUNIO0FBQ0osR0FMRDtBQU1BLE1BQU1DLFNBQVMsR0FBR0gsT0FBTyxJQUFJLE9BQU9BLE9BQU8sQ0FBQ0ksTUFBZixLQUEwQixXQUFyQyxHQUFtREosT0FBTyxDQUFDSSxNQUEzRCxHQUFvRVAsTUFBTSxJQUFJQSxNQUFNLENBQUNPLE1BQXZHLENBYnlDLENBY3pDOztBQUNBVCxFQUFBQSxVQUFVLENBQUNHLElBQUksR0FBRyxHQUFQLEdBQWFDLEVBQWIsSUFBbUJJLFNBQVMsR0FBRyxNQUFNQSxTQUFULEdBQXFCLEVBQWpELENBQUQsQ0FBVixHQUFtRSxJQUFuRTtBQUNIOztBQUNELFNBQVNFLGVBQVQsQ0FBeUJDLEtBQXpCLEVBQWdDO0FBQzVCLE1BQVFDLE1BQVIsR0FBb0JELEtBQUssQ0FBQ0UsYUFBMUIsQ0FBUUQsTUFBUjtBQUNBLFNBQU9BLE1BQU0sSUFBSUEsTUFBTSxLQUFLLE9BQXJCLElBQWdDRCxLQUFLLENBQUNHLE9BQXRDLElBQWlESCxLQUFLLENBQUNJLE9BQXZELElBQWtFSixLQUFLLENBQUNLLFFBQXhFLElBQW9GTCxLQUFLLENBQUNNLE1BQTFGLElBQW9HTixLQUFLLENBQUNPLFdBQU4sSUFBcUJQLEtBQUssQ0FBQ08sV0FBTixDQUFrQkMsS0FBbEIsS0FBNEIsQ0FBNUo7QUFDSDs7QUFDRCxTQUFTQyxXQUFULENBQXFCQyxDQUFyQixFQUF3Qm5CLE1BQXhCLEVBQWdDQyxJQUFoQyxFQUFzQ0MsRUFBdEMsRUFBMENrQixPQUExQyxFQUFtREMsT0FBbkQsRUFBNERDLE1BQTVELEVBQW9FZixNQUFwRSxFQUE0RTtBQUN4RSxNQUFRZ0IsUUFBUixHQUFzQkosQ0FBQyxDQUFDUixhQUF4QixDQUFRWSxRQUFSOztBQUNBLE1BQUlBLFFBQVEsS0FBSyxHQUFiLEtBQXFCZixlQUFlLENBQUNXLENBQUQsQ0FBZixJQUFzQixDQUFDLENBQUMsR0FBRzFCLE9BQUosRUFBYVcsVUFBYixDQUF3QkgsSUFBeEIsQ0FBNUMsQ0FBSixFQUFnRjtBQUM1RTtBQUNBO0FBQ0g7O0FBQ0RrQixFQUFBQSxDQUFDLENBQUNLLGNBQUYsR0FOd0UsQ0FPeEU7O0FBQ0EsTUFBSUYsTUFBTSxJQUFJLElBQVYsSUFBa0JwQixFQUFFLENBQUN1QixPQUFILENBQVcsR0FBWCxLQUFtQixDQUF6QyxFQUE0QztBQUN4Q0gsSUFBQUEsTUFBTSxHQUFHLEtBQVQ7QUFDSCxHQVZ1RSxDQVd4RTs7O0FBQ0F0QixFQUFBQSxNQUFNLENBQUNvQixPQUFPLEdBQUcsU0FBSCxHQUFlLE1BQXZCLENBQU4sQ0FBcUNuQixJQUFyQyxFQUEyQ0MsRUFBM0MsRUFBK0M7QUFDM0NtQixJQUFBQSxPQUFPLEVBQVBBLE9BRDJDO0FBRTNDZCxJQUFBQSxNQUFNLEVBQU5BLE1BRjJDO0FBRzNDZSxJQUFBQSxNQUFNLEVBQU5BO0FBSDJDLEdBQS9DO0FBS0g7O0FBQ0QsU0FBU0ksSUFBVCxDQUFjQyxLQUFkLEVBQXFCO0FBQUE7O0FBQ2pCLFlBQTJDO0FBQUEsUUFDOUJDLGVBRDhCLEdBQ3ZDLFNBQVNBLGVBQVQsQ0FBeUJDLElBQXpCLEVBQStCO0FBQzNCLGFBQU8sSUFBSUMsS0FBSixDQUFVLHNDQUFnQ0QsSUFBSSxDQUFDRSxHQUFyQyx5QkFBd0RGLElBQUksQ0FBQ0csUUFBN0Qsb0NBQWtHSCxJQUFJLENBQUNJLE1BQXZHLG1CQUE4SCxRQUFnQyxrRUFBaEMsR0FBcUcsQ0FBbk8sQ0FBVixDQUFQO0FBQ0gsS0FIc0MsRUFJdkM7OztBQUNBLFFBQU1DLGtCQUFrQixHQUFHO0FBQ3ZCakMsTUFBQUEsSUFBSSxFQUFFO0FBRGlCLEtBQTNCO0FBR0EsUUFBTWtDLGFBQWEsR0FBR2pELE1BQU0sQ0FBQ2tELElBQVAsQ0FBWUYsa0JBQVosQ0FBdEI7QUFDQUMsSUFBQUEsYUFBYSxDQUFDRSxPQUFkLENBQXNCLFVBQUNOLEdBQUQsRUFBTztBQUN6QixVQUFJQSxHQUFHLEtBQUssTUFBWixFQUFvQjtBQUNoQixZQUFJSixLQUFLLENBQUNJLEdBQUQsQ0FBTCxJQUFjLElBQWQsSUFBc0IsT0FBT0osS0FBSyxDQUFDSSxHQUFELENBQVosS0FBc0IsUUFBdEIsSUFBa0MsT0FBT0osS0FBSyxDQUFDSSxHQUFELENBQVosS0FBc0IsUUFBbEYsRUFBNEY7QUFDeEYsZ0JBQU1ILGVBQWUsQ0FBQztBQUNsQkcsWUFBQUEsR0FBRyxFQUFIQSxHQURrQjtBQUVsQkMsWUFBQUEsUUFBUSxFQUFFLHNCQUZRO0FBR2xCQyxZQUFBQSxNQUFNLEVBQUVOLEtBQUssQ0FBQ0ksR0FBRCxDQUFMLEtBQWUsSUFBZixHQUFzQixNQUF0QixHQUErQixPQUFPSixLQUFLLENBQUNJLEdBQUQ7QUFIakMsV0FBRCxDQUFyQjtBQUtIO0FBQ0osT0FSRCxNQVFPO0FBQ0g7QUFDQTtBQUNBLFlBQU1PLENBQUMsR0FBR1AsR0FBVjtBQUNIO0FBQ0osS0FkRCxFQVR1QyxDQXdCdkM7O0FBQ0EsUUFBTVEsa0JBQWtCLEdBQUc7QUFDdkJyQyxNQUFBQSxFQUFFLEVBQUUsSUFEbUI7QUFFdkJrQixNQUFBQSxPQUFPLEVBQUUsSUFGYztBQUd2QkUsTUFBQUEsTUFBTSxFQUFFLElBSGU7QUFJdkJELE1BQUFBLE9BQU8sRUFBRSxJQUpjO0FBS3ZCbUIsTUFBQUEsUUFBUSxFQUFFLElBTGE7QUFNdkJ6QyxNQUFBQSxRQUFRLEVBQUUsSUFOYTtBQU92QlEsTUFBQUEsTUFBTSxFQUFFO0FBUGUsS0FBM0I7QUFTQSxRQUFNa0MsYUFBYSxHQUFHdkQsTUFBTSxDQUFDa0QsSUFBUCxDQUFZRyxrQkFBWixDQUF0QjtBQUNBRSxJQUFBQSxhQUFhLENBQUNKLE9BQWQsQ0FBc0IsVUFBQ04sR0FBRCxFQUFPO0FBQ3pCLFVBQU1XLE9BQU8sR0FBRyxPQUFPZixLQUFLLENBQUNJLEdBQUQsQ0FBNUI7O0FBQ0EsVUFBSUEsR0FBRyxLQUFLLElBQVosRUFBa0I7QUFDZCxZQUFJSixLQUFLLENBQUNJLEdBQUQsQ0FBTCxJQUFjVyxPQUFPLEtBQUssUUFBMUIsSUFBc0NBLE9BQU8sS0FBSyxRQUF0RCxFQUFnRTtBQUM1RCxnQkFBTWQsZUFBZSxDQUFDO0FBQ2xCRyxZQUFBQSxHQUFHLEVBQUhBLEdBRGtCO0FBRWxCQyxZQUFBQSxRQUFRLEVBQUUsc0JBRlE7QUFHbEJDLFlBQUFBLE1BQU0sRUFBRVM7QUFIVSxXQUFELENBQXJCO0FBS0g7QUFDSixPQVJELE1BUU8sSUFBSVgsR0FBRyxLQUFLLFFBQVosRUFBc0I7QUFDekIsWUFBSUosS0FBSyxDQUFDSSxHQUFELENBQUwsSUFBY1csT0FBTyxLQUFLLFFBQTlCLEVBQXdDO0FBQ3BDLGdCQUFNZCxlQUFlLENBQUM7QUFDbEJHLFlBQUFBLEdBQUcsRUFBSEEsR0FEa0I7QUFFbEJDLFlBQUFBLFFBQVEsRUFBRSxVQUZRO0FBR2xCQyxZQUFBQSxNQUFNLEVBQUVTO0FBSFUsV0FBRCxDQUFyQjtBQUtIO0FBQ0osT0FSTSxNQVFBLElBQUlYLEdBQUcsS0FBSyxTQUFSLElBQXFCQSxHQUFHLEtBQUssUUFBN0IsSUFBeUNBLEdBQUcsS0FBSyxTQUFqRCxJQUE4REEsR0FBRyxLQUFLLFVBQXRFLElBQW9GQSxHQUFHLEtBQUssVUFBaEcsRUFBNEc7QUFDL0csWUFBSUosS0FBSyxDQUFDSSxHQUFELENBQUwsSUFBYyxJQUFkLElBQXNCVyxPQUFPLEtBQUssU0FBdEMsRUFBaUQ7QUFDN0MsZ0JBQU1kLGVBQWUsQ0FBQztBQUNsQkcsWUFBQUEsR0FBRyxFQUFIQSxHQURrQjtBQUVsQkMsWUFBQUEsUUFBUSxFQUFFLFdBRlE7QUFHbEJDLFlBQUFBLE1BQU0sRUFBRVM7QUFIVSxXQUFELENBQXJCO0FBS0g7QUFDSixPQVJNLE1BUUE7QUFDSDtBQUNBO0FBQ0EsWUFBTUosQ0FBQyxHQUFHUCxHQUFWO0FBQ0g7QUFDSixLQS9CRCxFQW5DdUMsQ0FtRXZDO0FBQ0E7O0FBQ0EsUUFBTVksU0FBUyxHQUFHckQsTUFBTSxXQUFOLENBQWVzRCxNQUFmLENBQXNCLEtBQXRCLENBQWxCOztBQUNBLFFBQUlqQixLQUFLLENBQUM1QixRQUFOLElBQWtCLENBQUM0QyxTQUFTLENBQUNFLE9BQWpDLEVBQTBDO0FBQ3RDRixNQUFBQSxTQUFTLENBQUNFLE9BQVYsR0FBb0IsSUFBcEI7QUFDQUMsTUFBQUEsT0FBTyxDQUFDQyxJQUFSLENBQWEsc0tBQWI7QUFDSDtBQUNKOztBQUNELE1BQU1DLENBQUMsR0FBR3JCLEtBQUssQ0FBQzVCLFFBQU4sS0FBbUIsS0FBN0I7QUFDQSxNQUFNQyxNQUFNLEdBQUcsQ0FBQyxHQUFHTixRQUFKLEVBQWN1RCxTQUFkLEVBQWY7O0FBQ0EsOEJBQXVCM0QsTUFBTSxXQUFOLENBQWU0RCxPQUFmLENBQXVCLFlBQUk7QUFDOUMsdUJBQW1DLENBQUMsR0FBR3pELE9BQUosRUFBYTBELFdBQWIsQ0FBeUJuRCxNQUF6QixFQUFpQzJCLEtBQUssQ0FBQzFCLElBQXZDLEVBQTZDLElBQTdDLENBQW5DO0FBQUE7QUFBQSxRQUFPbUQsWUFBUDtBQUFBLFFBQXFCQyxVQUFyQjs7QUFDQSxXQUFPO0FBQ0hwRCxNQUFBQSxJQUFJLEVBQUVtRCxZQURIO0FBRUhsRCxNQUFBQSxFQUFFLEVBQUV5QixLQUFLLENBQUN6QixFQUFOLEdBQVcsQ0FBQyxHQUFHVCxPQUFKLEVBQWEwRCxXQUFiLENBQXlCbkQsTUFBekIsRUFBaUMyQixLQUFLLENBQUN6QixFQUF2QyxDQUFYLEdBQXdEbUQsVUFBVSxJQUFJRDtBQUZ2RSxLQUFQO0FBSUgsR0FOc0IsRUFNcEIsQ0FDQ3BELE1BREQsRUFFQzJCLEtBQUssQ0FBQzFCLElBRlAsRUFHQzBCLEtBQUssQ0FBQ3pCLEVBSFAsQ0FOb0IsQ0FBdkI7QUFBQSxNQUFRRCxJQUFSLHlCQUFRQSxJQUFSO0FBQUEsTUFBZUMsRUFBZix5QkFBZUEsRUFBZjs7QUFXQSxNQUFNb0QsUUFBTixHQUEwRDNCLEtBQTFELENBQU0yQixRQUFOO0FBQUEsTUFBaUJsQyxPQUFqQixHQUEwRE8sS0FBMUQsQ0FBaUJQLE9BQWpCO0FBQUEsTUFBMkJDLE9BQTNCLEdBQTBETSxLQUExRCxDQUEyQk4sT0FBM0I7QUFBQSxNQUFxQ0MsTUFBckMsR0FBMERLLEtBQTFELENBQXFDTCxNQUFyQztBQUFBLE1BQThDZixNQUE5QyxHQUEwRG9CLEtBQTFELENBQThDcEIsTUFBOUMsQ0F6RmlCLENBMEZqQjs7QUFDQSxNQUFJLE9BQU8rQyxRQUFQLEtBQW9CLFFBQXhCLEVBQWtDO0FBQzlCQSxJQUFBQSxRQUFRLEdBQUcsYUFBY2hFLE1BQU0sV0FBTixDQUFlaUUsYUFBZixDQUE2QixHQUE3QixFQUFrQyxJQUFsQyxFQUF3Q0QsUUFBeEMsQ0FBekI7QUFDSCxHQTdGZ0IsQ0E4RmpCOzs7QUFDQSxNQUFJRSxLQUFKOztBQUNBLFlBQTRDO0FBQ3hDLFFBQUk7QUFDQUEsTUFBQUEsS0FBSyxHQUFHbEUsTUFBTSxXQUFOLENBQWVtRSxRQUFmLENBQXdCQyxJQUF4QixDQUE2QkosUUFBN0IsQ0FBUjtBQUNILEtBRkQsQ0FFRSxPQUFPakQsR0FBUCxFQUFZO0FBQ1YsWUFBTSxJQUFJeUIsS0FBSixDQUFVLGtFQUE4REgsS0FBSyxDQUFDMUIsSUFBcEUsa0dBQXdLLFFBQWdDLG1FQUFoQyxHQUFzRyxDQUE5USxDQUFWLENBQU47QUFDSDtBQUNKLEdBTkQsTUFNTyxFQUVOOztBQUNELE1BQU0wRCxRQUFRLEdBQUdILEtBQUssSUFBSSxPQUFPQSxLQUFQLEtBQWlCLFFBQTFCLElBQXNDQSxLQUFLLENBQUNJLEdBQTdEOztBQUNBLDBCQUF3QyxDQUFDLEdBQUdqRSxnQkFBSixFQUFzQmtFLGVBQXRCLENBQXNDO0FBQzFFQyxJQUFBQSxVQUFVLEVBQUU7QUFEOEQsR0FBdEMsQ0FBeEM7QUFBQTtBQUFBLE1BQU9DLGtCQUFQO0FBQUEsTUFBMkJDLFNBQTNCOztBQUdBLE1BQU1DLE1BQU0sR0FBRzNFLE1BQU0sV0FBTixDQUFlNEUsV0FBZixDQUEyQixVQUFDQyxFQUFELEVBQU07QUFDNUNKLElBQUFBLGtCQUFrQixDQUFDSSxFQUFELENBQWxCOztBQUNBLFFBQUlSLFFBQUosRUFBYztBQUNWLFVBQUksT0FBT0EsUUFBUCxLQUFvQixVQUF4QixFQUFvQ0EsUUFBUSxDQUFDUSxFQUFELENBQVIsQ0FBcEMsS0FDSyxJQUFJLE9BQU9SLFFBQVAsS0FBb0IsUUFBeEIsRUFBa0M7QUFDbkNBLFFBQUFBLFFBQVEsQ0FBQ2QsT0FBVCxHQUFtQnNCLEVBQW5CO0FBQ0g7QUFDSjtBQUNKLEdBUmMsRUFRWixDQUNDUixRQURELEVBRUNJLGtCQUZELENBUlksQ0FBZjs7QUFZQXpFLEVBQUFBLE1BQU0sV0FBTixDQUFlOEUsU0FBZixDQUF5QixZQUFJO0FBQ3pCLFFBQU1DLGNBQWMsR0FBR0wsU0FBUyxJQUFJaEIsQ0FBYixJQUFrQixDQUFDLEdBQUd2RCxPQUFKLEVBQWFXLFVBQWIsQ0FBd0JILElBQXhCLENBQXpDO0FBQ0EsUUFBTUssU0FBUyxHQUFHLE9BQU9DLE1BQVAsS0FBa0IsV0FBbEIsR0FBZ0NBLE1BQWhDLEdBQXlDUCxNQUFNLElBQUlBLE1BQU0sQ0FBQ08sTUFBNUU7QUFDQSxRQUFNK0QsWUFBWSxHQUFHeEUsVUFBVSxDQUFDRyxJQUFJLEdBQUcsR0FBUCxHQUFhQyxFQUFiLElBQW1CSSxTQUFTLEdBQUcsTUFBTUEsU0FBVCxHQUFxQixFQUFqRCxDQUFELENBQS9COztBQUNBLFFBQUkrRCxjQUFjLElBQUksQ0FBQ0MsWUFBdkIsRUFBcUM7QUFDakN2RSxNQUFBQSxRQUFRLENBQUNDLE1BQUQsRUFBU0MsSUFBVCxFQUFlQyxFQUFmLEVBQW1CO0FBQ3ZCSyxRQUFBQSxNQUFNLEVBQUVEO0FBRGUsT0FBbkIsQ0FBUjtBQUdIO0FBQ0osR0FURCxFQVNHLENBQ0NKLEVBREQsRUFFQ0QsSUFGRCxFQUdDK0QsU0FIRCxFQUlDekQsTUFKRCxFQUtDeUMsQ0FMRCxFQU1DaEQsTUFORCxDQVRIOztBQWlCQSxNQUFNdUUsVUFBVSxHQUFHO0FBQ2ZYLElBQUFBLEdBQUcsRUFBRUssTUFEVTtBQUVmTyxJQUFBQSxPQUFPLEVBQUUsaUJBQUNyRCxDQUFELEVBQUs7QUFDVixVQUFJcUMsS0FBSyxDQUFDN0IsS0FBTixJQUFlLE9BQU82QixLQUFLLENBQUM3QixLQUFOLENBQVk2QyxPQUFuQixLQUErQixVQUFsRCxFQUE4RDtBQUMxRGhCLFFBQUFBLEtBQUssQ0FBQzdCLEtBQU4sQ0FBWTZDLE9BQVosQ0FBb0JyRCxDQUFwQjtBQUNIOztBQUNELFVBQUksQ0FBQ0EsQ0FBQyxDQUFDc0QsZ0JBQVAsRUFBeUI7QUFDckJ2RCxRQUFBQSxXQUFXLENBQUNDLENBQUQsRUFBSW5CLE1BQUosRUFBWUMsSUFBWixFQUFrQkMsRUFBbEIsRUFBc0JrQixPQUF0QixFQUErQkMsT0FBL0IsRUFBd0NDLE1BQXhDLEVBQWdEZixNQUFoRCxDQUFYO0FBQ0g7QUFDSjtBQVRjLEdBQW5COztBQVdBZ0UsRUFBQUEsVUFBVSxDQUFDRyxZQUFYLEdBQTBCLFVBQUN2RCxDQUFELEVBQUs7QUFDM0IsUUFBSSxDQUFDLENBQUMsR0FBRzFCLE9BQUosRUFBYVcsVUFBYixDQUF3QkgsSUFBeEIsQ0FBTCxFQUFvQzs7QUFDcEMsUUFBSXVELEtBQUssQ0FBQzdCLEtBQU4sSUFBZSxPQUFPNkIsS0FBSyxDQUFDN0IsS0FBTixDQUFZK0MsWUFBbkIsS0FBb0MsVUFBdkQsRUFBbUU7QUFDL0RsQixNQUFBQSxLQUFLLENBQUM3QixLQUFOLENBQVkrQyxZQUFaLENBQXlCdkQsQ0FBekI7QUFDSDs7QUFDRHBCLElBQUFBLFFBQVEsQ0FBQ0MsTUFBRCxFQUFTQyxJQUFULEVBQWVDLEVBQWYsRUFBbUI7QUFDdkJ5RSxNQUFBQSxRQUFRLEVBQUU7QUFEYSxLQUFuQixDQUFSO0FBR0gsR0FSRCxDQXJKaUIsQ0E4SmpCO0FBQ0E7OztBQUNBLE1BQUloRCxLQUFLLENBQUNhLFFBQU4sSUFBa0JnQixLQUFLLENBQUNvQixJQUFOLEtBQWUsR0FBZixJQUFzQixFQUFFLFVBQVVwQixLQUFLLENBQUM3QixLQUFsQixDQUE1QyxFQUFzRTtBQUNsRSxRQUFNckIsU0FBUyxHQUFHLE9BQU9DLE1BQVAsS0FBa0IsV0FBbEIsR0FBZ0NBLE1BQWhDLEdBQXlDUCxNQUFNLElBQUlBLE1BQU0sQ0FBQ08sTUFBNUUsQ0FEa0UsQ0FFbEU7QUFDQTs7QUFDQSxRQUFNc0UsWUFBWSxHQUFHN0UsTUFBTSxJQUFJQSxNQUFNLENBQUM4RSxjQUFqQixJQUFtQyxDQUFDLEdBQUdyRixPQUFKLEVBQWFzRixlQUFiLENBQTZCN0UsRUFBN0IsRUFBaUNJLFNBQWpDLEVBQTRDTixNQUFNLElBQUlBLE1BQU0sQ0FBQ2dGLE9BQTdELEVBQXNFaEYsTUFBTSxJQUFJQSxNQUFNLENBQUNpRixhQUF2RixDQUF4RDtBQUNBVixJQUFBQSxVQUFVLENBQUN0RSxJQUFYLEdBQWtCNEUsWUFBWSxJQUFJLENBQUMsR0FBR3BGLE9BQUosRUFBYXlGLFdBQWIsQ0FBeUIsQ0FBQyxHQUFHekYsT0FBSixFQUFhMEYsU0FBYixDQUF1QmpGLEVBQXZCLEVBQTJCSSxTQUEzQixFQUFzQ04sTUFBTSxJQUFJQSxNQUFNLENBQUNvRixhQUF2RCxDQUF6QixDQUFsQztBQUNIOztBQUNELFNBQU8sYUFBYzlGLE1BQU0sV0FBTixDQUFlK0YsWUFBZixDQUE0QjdCLEtBQTVCLEVBQW1DZSxVQUFuQyxDQUFyQjtBQUNIOztHQXhLUTdDOztLQUFBQTtBQXlLVCxJQUFJNEQsUUFBUSxHQUFHNUQsSUFBZjtBQUNBdEMsa0JBQUEsR0FBa0JrRyxRQUFsQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9saW5rLmpzP2U0ZjkiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7XG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xudmFyIF9yb3V0ZXIgPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9yb3V0ZXIvcm91dGVyXCIpO1xudmFyIF9yb3V0ZXIxID0gcmVxdWlyZShcIi4vcm91dGVyXCIpO1xudmFyIF91c2VJbnRlcnNlY3Rpb24gPSByZXF1aXJlKFwiLi91c2UtaW50ZXJzZWN0aW9uXCIpO1xuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuY29uc3QgcHJlZmV0Y2hlZCA9IHtcbn07XG5mdW5jdGlvbiBwcmVmZXRjaChyb3V0ZXIsIGhyZWYsIGFzLCBvcHRpb25zKSB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8ICFyb3V0ZXIpIHJldHVybjtcbiAgICBpZiAoISgwLCBfcm91dGVyKS5pc0xvY2FsVVJMKGhyZWYpKSByZXR1cm47XG4gICAgLy8gUHJlZmV0Y2ggdGhlIEpTT04gcGFnZSBpZiBhc2tlZCAob25seSBpbiB0aGUgY2xpZW50KVxuICAgIC8vIFdlIG5lZWQgdG8gaGFuZGxlIGEgcHJlZmV0Y2ggZXJyb3IgaGVyZSBzaW5jZSB3ZSBtYXkgYmVcbiAgICAvLyBsb2FkaW5nIHdpdGggcHJpb3JpdHkgd2hpY2ggY2FuIHJlamVjdCBidXQgd2UgZG9uJ3RcbiAgICAvLyB3YW50IHRvIGZvcmNlIG5hdmlnYXRpb24gc2luY2UgdGhpcyBpcyBvbmx5IGEgcHJlZmV0Y2hcbiAgICByb3V0ZXIucHJlZmV0Y2goaHJlZiwgYXMsIG9wdGlvbnMpLmNhdGNoKChlcnIpPT57XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICAvLyByZXRocm93IHRvIHNob3cgaW52YWxpZCBVUkwgZXJyb3JzXG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBjdXJMb2NhbGUgPSBvcHRpb25zICYmIHR5cGVvZiBvcHRpb25zLmxvY2FsZSAhPT0gJ3VuZGVmaW5lZCcgPyBvcHRpb25zLmxvY2FsZSA6IHJvdXRlciAmJiByb3V0ZXIubG9jYWxlO1xuICAgIC8vIEpvaW4gb24gYW4gaW52YWxpZCBVUkkgY2hhcmFjdGVyXG4gICAgcHJlZmV0Y2hlZFtocmVmICsgJyUnICsgYXMgKyAoY3VyTG9jYWxlID8gJyUnICsgY3VyTG9jYWxlIDogJycpXSA9IHRydWU7XG59XG5mdW5jdGlvbiBpc01vZGlmaWVkRXZlbnQoZXZlbnQpIHtcbiAgICBjb25zdCB7IHRhcmdldCAgfSA9IGV2ZW50LmN1cnJlbnRUYXJnZXQ7XG4gICAgcmV0dXJuIHRhcmdldCAmJiB0YXJnZXQgIT09ICdfc2VsZicgfHwgZXZlbnQubWV0YUtleSB8fCBldmVudC5jdHJsS2V5IHx8IGV2ZW50LnNoaWZ0S2V5IHx8IGV2ZW50LmFsdEtleSB8fCBldmVudC5uYXRpdmVFdmVudCAmJiBldmVudC5uYXRpdmVFdmVudC53aGljaCA9PT0gMjtcbn1cbmZ1bmN0aW9uIGxpbmtDbGlja2VkKGUsIHJvdXRlciwgaHJlZiwgYXMsIHJlcGxhY2UsIHNoYWxsb3csIHNjcm9sbCwgbG9jYWxlKSB7XG4gICAgY29uc3QgeyBub2RlTmFtZSAgfSA9IGUuY3VycmVudFRhcmdldDtcbiAgICBpZiAobm9kZU5hbWUgPT09ICdBJyAmJiAoaXNNb2RpZmllZEV2ZW50KGUpIHx8ICEoMCwgX3JvdXRlcikuaXNMb2NhbFVSTChocmVmKSkpIHtcbiAgICAgICAgLy8gaWdub3JlIGNsaWNrIGZvciBicm93c2Vy4oCZcyBkZWZhdWx0IGJlaGF2aW9yXG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIC8vICBhdm9pZCBzY3JvbGwgZm9yIHVybHMgd2l0aCBhbmNob3IgcmVmc1xuICAgIGlmIChzY3JvbGwgPT0gbnVsbCAmJiBhcy5pbmRleE9mKCcjJykgPj0gMCkge1xuICAgICAgICBzY3JvbGwgPSBmYWxzZTtcbiAgICB9XG4gICAgLy8gcmVwbGFjZSBzdGF0ZSBpbnN0ZWFkIG9mIHB1c2ggaWYgcHJvcCBpcyBwcmVzZW50XG4gICAgcm91dGVyW3JlcGxhY2UgPyAncmVwbGFjZScgOiAncHVzaCddKGhyZWYsIGFzLCB7XG4gICAgICAgIHNoYWxsb3csXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgc2Nyb2xsXG4gICAgfSk7XG59XG5mdW5jdGlvbiBMaW5rKHByb3BzKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgZnVuY3Rpb24gY3JlYXRlUHJvcEVycm9yKGFyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgRXJyb3IoYEZhaWxlZCBwcm9wIHR5cGU6IFRoZSBwcm9wIFxcYCR7YXJncy5rZXl9XFxgIGV4cGVjdHMgYSAke2FyZ3MuZXhwZWN0ZWR9IGluIFxcYDxMaW5rPlxcYCwgYnV0IGdvdCBcXGAke2FyZ3MuYWN0dWFsfVxcYCBpbnN0ZWFkLmAgKyAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgPyBcIlxcbk9wZW4geW91ciBicm93c2VyJ3MgY29uc29sZSB0byB2aWV3IHRoZSBDb21wb25lbnQgc3RhY2sgdHJhY2UuXCIgOiAnJykpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFR5cGVTY3JpcHQgdHJpY2sgZm9yIHR5cGUtZ3VhcmRpbmc6XG4gICAgICAgIGNvbnN0IHJlcXVpcmVkUHJvcHNHdWFyZCA9IHtcbiAgICAgICAgICAgIGhyZWY6IHRydWVcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgcmVxdWlyZWRQcm9wcyA9IE9iamVjdC5rZXlzKHJlcXVpcmVkUHJvcHNHdWFyZCk7XG4gICAgICAgIHJlcXVpcmVkUHJvcHMuZm9yRWFjaCgoa2V5KT0+e1xuICAgICAgICAgICAgaWYgKGtleSA9PT0gJ2hyZWYnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHByb3BzW2tleV0gPT0gbnVsbCB8fCB0eXBlb2YgcHJvcHNba2V5XSAhPT0gJ3N0cmluZycgJiYgdHlwZW9mIHByb3BzW2tleV0gIT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGNyZWF0ZVByb3BFcnJvcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZDogJ2BzdHJpbmdgIG9yIGBvYmplY3RgJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbDogcHJvcHNba2V5XSA9PT0gbnVsbCA/ICdudWxsJyA6IHR5cGVvZiBwcm9wc1trZXldXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gVHlwZVNjcmlwdCB0cmljayBmb3IgdHlwZS1ndWFyZGluZzpcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgICAgICAgICAgICAgY29uc3QgXyA9IGtleTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIC8vIFR5cGVTY3JpcHQgdHJpY2sgZm9yIHR5cGUtZ3VhcmRpbmc6XG4gICAgICAgIGNvbnN0IG9wdGlvbmFsUHJvcHNHdWFyZCA9IHtcbiAgICAgICAgICAgIGFzOiB0cnVlLFxuICAgICAgICAgICAgcmVwbGFjZTogdHJ1ZSxcbiAgICAgICAgICAgIHNjcm9sbDogdHJ1ZSxcbiAgICAgICAgICAgIHNoYWxsb3c6IHRydWUsXG4gICAgICAgICAgICBwYXNzSHJlZjogdHJ1ZSxcbiAgICAgICAgICAgIHByZWZldGNoOiB0cnVlLFxuICAgICAgICAgICAgbG9jYWxlOiB0cnVlXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IG9wdGlvbmFsUHJvcHMgPSBPYmplY3Qua2V5cyhvcHRpb25hbFByb3BzR3VhcmQpO1xuICAgICAgICBvcHRpb25hbFByb3BzLmZvckVhY2goKGtleSk9PntcbiAgICAgICAgICAgIGNvbnN0IHZhbFR5cGUgPSB0eXBlb2YgcHJvcHNba2V5XTtcbiAgICAgICAgICAgIGlmIChrZXkgPT09ICdhcycpIHtcbiAgICAgICAgICAgICAgICBpZiAocHJvcHNba2V5XSAmJiB2YWxUeXBlICE9PSAnc3RyaW5nJyAmJiB2YWxUeXBlICE9PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBjcmVhdGVQcm9wRXJyb3Ioe1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQ6ICdgc3RyaW5nYCBvciBgb2JqZWN0YCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWw6IHZhbFR5cGVcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdsb2NhbGUnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHByb3BzW2tleV0gJiYgdmFsVHlwZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgY3JlYXRlUHJvcEVycm9yKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkOiAnYHN0cmluZ2AnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFsOiB2YWxUeXBlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAncmVwbGFjZScgfHwga2V5ID09PSAnc2Nyb2xsJyB8fCBrZXkgPT09ICdzaGFsbG93JyB8fCBrZXkgPT09ICdwYXNzSHJlZicgfHwga2V5ID09PSAncHJlZmV0Y2gnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHByb3BzW2tleV0gIT0gbnVsbCAmJiB2YWxUeXBlICE9PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgY3JlYXRlUHJvcEVycm9yKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkOiAnYGJvb2xlYW5gJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbDogdmFsVHlwZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIFR5cGVTY3JpcHQgdHJpY2sgZm9yIHR5cGUtZ3VhcmRpbmc6XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICAgICAgICAgICAgIGNvbnN0IF8gPSBrZXk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBUaGlzIGhvb2sgaXMgaW4gYSBjb25kaXRpb25hbCBidXQgdGhhdCBpcyBvayBiZWNhdXNlIGBwcm9jZXNzLmVudi5OT0RFX0VOVmAgbmV2ZXIgY2hhbmdlc1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgICAgICAgY29uc3QgaGFzV2FybmVkID0gX3JlYWN0LmRlZmF1bHQudXNlUmVmKGZhbHNlKTtcbiAgICAgICAgaWYgKHByb3BzLnByZWZldGNoICYmICFoYXNXYXJuZWQuY3VycmVudCkge1xuICAgICAgICAgICAgaGFzV2FybmVkLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdOZXh0LmpzIGF1dG8tcHJlZmV0Y2hlcyBhdXRvbWF0aWNhbGx5IGJhc2VkIG9uIHZpZXdwb3J0LiBUaGUgcHJlZmV0Y2ggYXR0cmlidXRlIGlzIG5vIGxvbmdlciBuZWVkZWQuIE1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3ByZWZldGNoLXRydWUtZGVwcmVjYXRlZCcpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHAgPSBwcm9wcy5wcmVmZXRjaCAhPT0gZmFsc2U7XG4gICAgY29uc3Qgcm91dGVyID0gKDAsIF9yb3V0ZXIxKS51c2VSb3V0ZXIoKTtcbiAgICBjb25zdCB7IGhyZWYgLCBhcyAgfSA9IF9yZWFjdC5kZWZhdWx0LnVzZU1lbW8oKCk9PntcbiAgICAgICAgY29uc3QgW3Jlc29sdmVkSHJlZiwgcmVzb2x2ZWRBc10gPSAoMCwgX3JvdXRlcikucmVzb2x2ZUhyZWYocm91dGVyLCBwcm9wcy5ocmVmLCB0cnVlKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGhyZWY6IHJlc29sdmVkSHJlZixcbiAgICAgICAgICAgIGFzOiBwcm9wcy5hcyA/ICgwLCBfcm91dGVyKS5yZXNvbHZlSHJlZihyb3V0ZXIsIHByb3BzLmFzKSA6IHJlc29sdmVkQXMgfHwgcmVzb2x2ZWRIcmVmXG4gICAgICAgIH07XG4gICAgfSwgW1xuICAgICAgICByb3V0ZXIsXG4gICAgICAgIHByb3BzLmhyZWYsXG4gICAgICAgIHByb3BzLmFzXG4gICAgXSk7XG4gICAgbGV0IHsgY2hpbGRyZW4gLCByZXBsYWNlICwgc2hhbGxvdyAsIHNjcm9sbCAsIGxvY2FsZSAgfSA9IHByb3BzO1xuICAgIC8vIERlcHJlY2F0ZWQuIFdhcm5pbmcgc2hvd24gYnkgcHJvcFR5cGUgY2hlY2suIElmIHRoZSBjaGlsZHJlbiBwcm92aWRlZCBpcyBhIHN0cmluZyAoPExpbms+ZXhhbXBsZTwvTGluaz4pIHdlIHdyYXAgaXQgaW4gYW4gPGE+IHRhZ1xuICAgIGlmICh0eXBlb2YgY2hpbGRyZW4gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNoaWxkcmVuID0gLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiYVwiLCBudWxsLCBjaGlsZHJlbik7XG4gICAgfVxuICAgIC8vIFRoaXMgd2lsbCByZXR1cm4gdGhlIGZpcnN0IGNoaWxkLCBpZiBtdWx0aXBsZSBhcmUgcHJvdmlkZWQgaXQgd2lsbCB0aHJvdyBhbiBlcnJvclxuICAgIGxldCBjaGlsZDtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNoaWxkID0gX3JlYWN0LmRlZmF1bHQuQ2hpbGRyZW4ub25seShjaGlsZHJlbik7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBNdWx0aXBsZSBjaGlsZHJlbiB3ZXJlIHBhc3NlZCB0byA8TGluaz4gd2l0aCBcXGBocmVmXFxgIG9mIFxcYCR7cHJvcHMuaHJlZn1cXGAgYnV0IG9ubHkgb25lIGNoaWxkIGlzIHN1cHBvcnRlZCBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9saW5rLW11bHRpcGxlLWNoaWxkcmVuYCArICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyA/IFwiIFxcbk9wZW4geW91ciBicm93c2VyJ3MgY29uc29sZSB0byB2aWV3IHRoZSBDb21wb25lbnQgc3RhY2sgdHJhY2UuXCIgOiAnJykpO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY2hpbGQgPSBfcmVhY3QuZGVmYXVsdC5DaGlsZHJlbi5vbmx5KGNoaWxkcmVuKTtcbiAgICB9XG4gICAgY29uc3QgY2hpbGRSZWYgPSBjaGlsZCAmJiB0eXBlb2YgY2hpbGQgPT09ICdvYmplY3QnICYmIGNoaWxkLnJlZjtcbiAgICBjb25zdCBbc2V0SW50ZXJzZWN0aW9uUmVmLCBpc1Zpc2libGVdID0gKDAsIF91c2VJbnRlcnNlY3Rpb24pLnVzZUludGVyc2VjdGlvbih7XG4gICAgICAgIHJvb3RNYXJnaW46ICcyMDBweCdcbiAgICB9KTtcbiAgICBjb25zdCBzZXRSZWYgPSBfcmVhY3QuZGVmYXVsdC51c2VDYWxsYmFjaygoZWwpPT57XG4gICAgICAgIHNldEludGVyc2VjdGlvblJlZihlbCk7XG4gICAgICAgIGlmIChjaGlsZFJlZikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBjaGlsZFJlZiA9PT0gJ2Z1bmN0aW9uJykgY2hpbGRSZWYoZWwpO1xuICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIGNoaWxkUmVmID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgIGNoaWxkUmVmLmN1cnJlbnQgPSBlbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgY2hpbGRSZWYsXG4gICAgICAgIHNldEludGVyc2VjdGlvblJlZlxuICAgIF0pO1xuICAgIF9yZWFjdC5kZWZhdWx0LnVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBjb25zdCBzaG91bGRQcmVmZXRjaCA9IGlzVmlzaWJsZSAmJiBwICYmICgwLCBfcm91dGVyKS5pc0xvY2FsVVJMKGhyZWYpO1xuICAgICAgICBjb25zdCBjdXJMb2NhbGUgPSB0eXBlb2YgbG9jYWxlICE9PSAndW5kZWZpbmVkJyA/IGxvY2FsZSA6IHJvdXRlciAmJiByb3V0ZXIubG9jYWxlO1xuICAgICAgICBjb25zdCBpc1ByZWZldGNoZWQgPSBwcmVmZXRjaGVkW2hyZWYgKyAnJScgKyBhcyArIChjdXJMb2NhbGUgPyAnJScgKyBjdXJMb2NhbGUgOiAnJyldO1xuICAgICAgICBpZiAoc2hvdWxkUHJlZmV0Y2ggJiYgIWlzUHJlZmV0Y2hlZCkge1xuICAgICAgICAgICAgcHJlZmV0Y2gocm91dGVyLCBocmVmLCBhcywge1xuICAgICAgICAgICAgICAgIGxvY2FsZTogY3VyTG9jYWxlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgYXMsXG4gICAgICAgIGhyZWYsXG4gICAgICAgIGlzVmlzaWJsZSxcbiAgICAgICAgbG9jYWxlLFxuICAgICAgICBwLFxuICAgICAgICByb3V0ZXJcbiAgICBdKTtcbiAgICBjb25zdCBjaGlsZFByb3BzID0ge1xuICAgICAgICByZWY6IHNldFJlZixcbiAgICAgICAgb25DbGljazogKGUpPT57XG4gICAgICAgICAgICBpZiAoY2hpbGQucHJvcHMgJiYgdHlwZW9mIGNoaWxkLnByb3BzLm9uQ2xpY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICBjaGlsZC5wcm9wcy5vbkNsaWNrKGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFlLmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICAgICAgICBsaW5rQ2xpY2tlZChlLCByb3V0ZXIsIGhyZWYsIGFzLCByZXBsYWNlLCBzaGFsbG93LCBzY3JvbGwsIGxvY2FsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGNoaWxkUHJvcHMub25Nb3VzZUVudGVyID0gKGUpPT57XG4gICAgICAgIGlmICghKDAsIF9yb3V0ZXIpLmlzTG9jYWxVUkwoaHJlZikpIHJldHVybjtcbiAgICAgICAgaWYgKGNoaWxkLnByb3BzICYmIHR5cGVvZiBjaGlsZC5wcm9wcy5vbk1vdXNlRW50ZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGNoaWxkLnByb3BzLm9uTW91c2VFbnRlcihlKTtcbiAgICAgICAgfVxuICAgICAgICBwcmVmZXRjaChyb3V0ZXIsIGhyZWYsIGFzLCB7XG4gICAgICAgICAgICBwcmlvcml0eTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIC8vIElmIGNoaWxkIGlzIGFuIDxhPiB0YWcgYW5kIGRvZXNuJ3QgaGF2ZSBhIGhyZWYgYXR0cmlidXRlLCBvciBpZiB0aGUgJ3Bhc3NIcmVmJyBwcm9wZXJ0eSBpc1xuICAgIC8vIGRlZmluZWQsIHdlIHNwZWNpZnkgdGhlIGN1cnJlbnQgJ2hyZWYnLCBzbyB0aGF0IHJlcGV0aXRpb24gaXMgbm90IG5lZWRlZCBieSB0aGUgdXNlclxuICAgIGlmIChwcm9wcy5wYXNzSHJlZiB8fCBjaGlsZC50eXBlID09PSAnYScgJiYgISgnaHJlZicgaW4gY2hpbGQucHJvcHMpKSB7XG4gICAgICAgIGNvbnN0IGN1ckxvY2FsZSA9IHR5cGVvZiBsb2NhbGUgIT09ICd1bmRlZmluZWQnID8gbG9jYWxlIDogcm91dGVyICYmIHJvdXRlci5sb2NhbGU7XG4gICAgICAgIC8vIHdlIG9ubHkgcmVuZGVyIGRvbWFpbiBsb2NhbGVzIGlmIHdlIGFyZSBjdXJyZW50bHkgb24gYSBkb21haW4gbG9jYWxlXG4gICAgICAgIC8vIHNvIHRoYXQgbG9jYWxlIGxpbmtzIGFyZSBzdGlsbCB2aXNpdGFibGUgaW4gZGV2ZWxvcG1lbnQvcHJldmlldyBlbnZzXG4gICAgICAgIGNvbnN0IGxvY2FsZURvbWFpbiA9IHJvdXRlciAmJiByb3V0ZXIuaXNMb2NhbGVEb21haW4gJiYgKDAsIF9yb3V0ZXIpLmdldERvbWFpbkxvY2FsZShhcywgY3VyTG9jYWxlLCByb3V0ZXIgJiYgcm91dGVyLmxvY2FsZXMsIHJvdXRlciAmJiByb3V0ZXIuZG9tYWluTG9jYWxlcyk7XG4gICAgICAgIGNoaWxkUHJvcHMuaHJlZiA9IGxvY2FsZURvbWFpbiB8fCAoMCwgX3JvdXRlcikuYWRkQmFzZVBhdGgoKDAsIF9yb3V0ZXIpLmFkZExvY2FsZShhcywgY3VyTG9jYWxlLCByb3V0ZXIgJiYgcm91dGVyLmRlZmF1bHRMb2NhbGUpKTtcbiAgICB9XG4gICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY2xvbmVFbGVtZW50KGNoaWxkLCBjaGlsZFByb3BzKSk7XG59XG52YXIgX2RlZmF1bHQgPSBMaW5rO1xuZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWxpbmsuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcm91dGVyIiwiX3JvdXRlcjEiLCJfdXNlSW50ZXJzZWN0aW9uIiwib2JqIiwiX19lc01vZHVsZSIsInByZWZldGNoZWQiLCJwcmVmZXRjaCIsInJvdXRlciIsImhyZWYiLCJhcyIsIm9wdGlvbnMiLCJpc0xvY2FsVVJMIiwiZXJyIiwiY3VyTG9jYWxlIiwibG9jYWxlIiwiaXNNb2RpZmllZEV2ZW50IiwiZXZlbnQiLCJ0YXJnZXQiLCJjdXJyZW50VGFyZ2V0IiwibWV0YUtleSIsImN0cmxLZXkiLCJzaGlmdEtleSIsImFsdEtleSIsIm5hdGl2ZUV2ZW50Iiwid2hpY2giLCJsaW5rQ2xpY2tlZCIsImUiLCJyZXBsYWNlIiwic2hhbGxvdyIsInNjcm9sbCIsIm5vZGVOYW1lIiwicHJldmVudERlZmF1bHQiLCJpbmRleE9mIiwiTGluayIsInByb3BzIiwiY3JlYXRlUHJvcEVycm9yIiwiYXJncyIsIkVycm9yIiwia2V5IiwiZXhwZWN0ZWQiLCJhY3R1YWwiLCJyZXF1aXJlZFByb3BzR3VhcmQiLCJyZXF1aXJlZFByb3BzIiwia2V5cyIsImZvckVhY2giLCJfIiwib3B0aW9uYWxQcm9wc0d1YXJkIiwicGFzc0hyZWYiLCJvcHRpb25hbFByb3BzIiwidmFsVHlwZSIsImhhc1dhcm5lZCIsInVzZVJlZiIsImN1cnJlbnQiLCJjb25zb2xlIiwid2FybiIsInAiLCJ1c2VSb3V0ZXIiLCJ1c2VNZW1vIiwicmVzb2x2ZUhyZWYiLCJyZXNvbHZlZEhyZWYiLCJyZXNvbHZlZEFzIiwiY2hpbGRyZW4iLCJjcmVhdGVFbGVtZW50IiwiY2hpbGQiLCJDaGlsZHJlbiIsIm9ubHkiLCJjaGlsZFJlZiIsInJlZiIsInVzZUludGVyc2VjdGlvbiIsInJvb3RNYXJnaW4iLCJzZXRJbnRlcnNlY3Rpb25SZWYiLCJpc1Zpc2libGUiLCJzZXRSZWYiLCJ1c2VDYWxsYmFjayIsImVsIiwidXNlRWZmZWN0Iiwic2hvdWxkUHJlZmV0Y2giLCJpc1ByZWZldGNoZWQiLCJjaGlsZFByb3BzIiwib25DbGljayIsImRlZmF1bHRQcmV2ZW50ZWQiLCJvbk1vdXNlRW50ZXIiLCJwcmlvcml0eSIsInR5cGUiLCJsb2NhbGVEb21haW4iLCJpc0xvY2FsZURvbWFpbiIsImdldERvbWFpbkxvY2FsZSIsImxvY2FsZXMiLCJkb21haW5Mb2NhbGVzIiwiYWRkQmFzZVBhdGgiLCJhZGRMb2NhbGUiLCJkZWZhdWx0TG9jYWxlIiwiY2xvbmVFbGVtZW50IiwiX2RlZmF1bHQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/link.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/use-intersection.js": +/*!***********************************************************!*\ + !*** ./node_modules/next/dist/client/use-intersection.js ***! + \***********************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _slicedToArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nvar _s = $RefreshSig$();\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.useIntersection = useIntersection;\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nvar _requestIdleCallback = __webpack_require__(/*! ./request-idle-callback */ \"./node_modules/next/dist/client/request-idle-callback.js\");\n\nvar hasIntersectionObserver = typeof IntersectionObserver !== 'undefined';\n\nfunction useIntersection(_ref) {\n _s();\n\n var rootMargin = _ref.rootMargin,\n disabled = _ref.disabled;\n var isDisabled = disabled || !hasIntersectionObserver;\n var unobserve = (0, _react).useRef();\n\n var _useState = (0, _react).useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n visible = _useState2[0],\n setVisible = _useState2[1];\n\n var setRef = (0, _react).useCallback(function (el) {\n if (unobserve.current) {\n unobserve.current();\n unobserve.current = undefined;\n }\n\n if (isDisabled || visible) return;\n\n if (el && el.tagName) {\n unobserve.current = observe(el, function (isVisible) {\n return isVisible && setVisible(isVisible);\n }, {\n rootMargin: rootMargin\n });\n }\n }, [isDisabled, rootMargin, visible]);\n (0, _react).useEffect(function () {\n if (!hasIntersectionObserver) {\n if (!visible) {\n var idleCallback = (0, _requestIdleCallback).requestIdleCallback(function () {\n return setVisible(true);\n });\n return function () {\n return (0, _requestIdleCallback).cancelIdleCallback(idleCallback);\n };\n }\n }\n }, [visible]);\n return [setRef, visible];\n}\n\n_s(useIntersection, \"Z6jj7qx+KE6gD9CpC9WlQTha45o=\");\n\nfunction observe(element, callback, options) {\n var _createObserver = createObserver(options),\n id = _createObserver.id,\n observer = _createObserver.observer,\n elements = _createObserver.elements;\n\n elements.set(element, callback);\n observer.observe(element);\n return function unobserve() {\n elements[\"delete\"](element);\n observer.unobserve(element); // Destroy observer when there's nothing left to watch:\n\n if (elements.size === 0) {\n observer.disconnect();\n observers[\"delete\"](id);\n }\n };\n}\n\nvar observers = new Map();\n\nfunction createObserver(options) {\n var id = options.rootMargin || '';\n var instance = observers.get(id);\n\n if (instance) {\n return instance;\n }\n\n var elements = new Map();\n var observer = new IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n var callback = elements.get(entry.target);\n var isVisible = entry.isIntersecting || entry.intersectionRatio > 0;\n\n if (callback && isVisible) {\n callback(isVisible);\n }\n });\n }, options);\n observers.set(id, instance = {\n id: id,\n observer: observer,\n elements: elements\n });\n return instance;\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC91c2UtaW50ZXJzZWN0aW9uLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7Ozs7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELHVCQUFBLEdBQTBCRSxlQUExQjs7QUFDQSxJQUFJQyxNQUFNLEdBQUdDLG1CQUFPLENBQUMsNENBQUQsQ0FBcEI7O0FBQ0EsSUFBSUMsb0JBQW9CLEdBQUdELG1CQUFPLENBQUMseUZBQUQsQ0FBbEM7O0FBQ0EsSUFBTUUsdUJBQXVCLEdBQUcsT0FBT0Msb0JBQVAsS0FBZ0MsV0FBaEU7O0FBQ0EsU0FBU0wsZUFBVCxPQUFxRDtBQUFBOztBQUFBLE1BQTFCTSxVQUEwQixRQUExQkEsVUFBMEI7QUFBQSxNQUFiQyxRQUFhLFFBQWJBLFFBQWE7QUFDakQsTUFBTUMsVUFBVSxHQUFHRCxRQUFRLElBQUksQ0FBQ0gsdUJBQWhDO0FBQ0EsTUFBTUssU0FBUyxHQUFHLENBQUMsR0FBR1IsTUFBSixFQUFZUyxNQUFaLEVBQWxCOztBQUNBLGtCQUE4QixDQUFDLEdBQUdULE1BQUosRUFBWVUsUUFBWixDQUFxQixLQUFyQixDQUE5QjtBQUFBO0FBQUEsTUFBT0MsT0FBUDtBQUFBLE1BQWdCQyxVQUFoQjs7QUFDQSxNQUFNQyxNQUFNLEdBQUcsQ0FBQyxHQUFHYixNQUFKLEVBQVljLFdBQVosQ0FBd0IsVUFBQ0MsRUFBRCxFQUFNO0FBQ3pDLFFBQUlQLFNBQVMsQ0FBQ1EsT0FBZCxFQUF1QjtBQUNuQlIsTUFBQUEsU0FBUyxDQUFDUSxPQUFWO0FBQ0FSLE1BQUFBLFNBQVMsQ0FBQ1EsT0FBVixHQUFvQkMsU0FBcEI7QUFDSDs7QUFDRCxRQUFJVixVQUFVLElBQUlJLE9BQWxCLEVBQTJCOztBQUMzQixRQUFJSSxFQUFFLElBQUlBLEVBQUUsQ0FBQ0csT0FBYixFQUFzQjtBQUNsQlYsTUFBQUEsU0FBUyxDQUFDUSxPQUFWLEdBQW9CRyxPQUFP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QUFBLEVBQUUsRUFBRkEsRUFEeUI7QUFFekJDLElBQUFBLFFBQVEsRUFBUkEsUUFGeUI7QUFHekJDLElBQUFBLFFBQVEsRUFBUkE7QUFIeUIsR0FBN0I7QUFLQSxTQUFPTSxRQUFQO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvdXNlLWludGVyc2VjdGlvbi5qcz9mZDk0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy51c2VJbnRlcnNlY3Rpb24gPSB1c2VJbnRlcnNlY3Rpb247XG52YXIgX3JlYWN0ID0gcmVxdWlyZShcInJlYWN0XCIpO1xudmFyIF9yZXF1ZXN0SWRsZUNhbGxiYWNrID0gcmVxdWlyZShcIi4vcmVxdWVzdC1pZGxlLWNhbGxiYWNrXCIpO1xuY29uc3QgaGFzSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPSB0eXBlb2YgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgIT09ICd1bmRlZmluZWQnO1xuZnVuY3Rpb24gdXNlSW50ZXJzZWN0aW9uKHsgcm9vdE1hcmdpbiAsIGRpc2FibGVkICB9KSB7XG4gICAgY29uc3QgaXNEaXNhYmxlZCA9IGRpc2FibGVkIHx8ICFoYXNJbnRlcnNlY3Rpb25PYnNlcnZlcjtcbiAgICBjb25zdCB1bm9ic2VydmUgPSAoMCwgX3JlYWN0KS51c2VSZWYoKTtcbiAgICBjb25zdCBbdmlzaWJsZSwgc2V0VmlzaWJsZV0gPSAoMCwgX3JlYWN0KS51c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3Qgc2V0UmVmID0gKDAsIF9yZWFjdCkudXNlQ2FsbGJhY2soKGVsKT0+e1xuICAgICAgICBpZiAodW5vYnNlcnZlLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIHVub2JzZXJ2ZS5jdXJyZW50KCk7XG4gICAgICAgICAgICB1bm9ic2VydmUuY3VycmVudCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNEaXNhYmxlZCB8fCB2aXNpYmxlKSByZXR1cm47XG4gICAgICAgIGlmIChlbCAmJiBlbC50YWdOYW1lKSB7XG4gICAgICAgICAgICB1bm9ic2VydmUuY3VycmVudCA9IG9ic2VydmUoZWwsIChpc1Zpc2libGUpPT5pc1Zpc2libGUgJiYgc2V0VmlzaWJsZShpc1Zpc2libGUpXG4gICAgICAgICAgICAsIHtcbiAgICAgICAgICAgICAgICByb290TWFyZ2luXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgaXNEaXNhYmxlZCxcbiAgICAgICAgcm9vdE1hcmdpbixcbiAgICAgICAgdmlzaWJsZVxuICAgIF0pO1xuICAgICgwLCBfcmVhY3QpLnVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBpZiAoIWhhc0ludGVyc2VjdGlvbk9ic2VydmVyKSB7XG4gICAgICAgICAgICBpZiAoIXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpZGxlQ2FsbGJhY2sgPSAoMCwgX3JlcXVlc3RJZGxlQ2FsbGJhY2spLnJlcXVlc3RJZGxlQ2FsbGJhY2soKCk9PnNldFZpc2libGUodHJ1ZSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHJldHVybiAoKT0+KDAsIF9yZXF1ZXN0SWRsZUNhbGxiYWNrKS5jYW5jZWxJZGxlQ2FsbGJhY2soaWRsZUNhbGxiYWNrKVxuICAgICAgICAgICAgICAgIDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgdmlzaWJsZVxuICAgIF0pO1xuICAgIHJldHVybiBbXG4gICAgICAgIHNldFJlZixcbiAgICAgICAgdmlzaWJsZVxuICAgIF07XG59XG5mdW5jdGlvbiBvYnNlcnZlKGVsZW1lbnQsIGNhbGxiYWNrLCBvcHRpb25zKSB7XG4gICAgY29uc3QgeyBpZCAsIG9ic2VydmVyICwgZWxlbWVudHMgIH0gPSBjcmVhdGVPYnNlcnZlcihvcHRpb25zKTtcbiAgICBlbGVtZW50cy5zZXQoZWxlbWVudCwgY2FsbGJhY2spO1xuICAgIG9ic2VydmVyLm9ic2VydmUoZWxlbWVudCk7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIHVub2JzZXJ2ZSgpIHtcbiAgICAgICAgZWxlbWVudHMuZGVsZXRlKGVsZW1lbnQpO1xuICAgICAgICBvYnNlcnZlci51bm9ic2VydmUoZWxlbWVudCk7XG4gICAgICAgIC8vIERlc3Ryb3kgb2JzZXJ2ZXIgd2hlbiB0aGVyZSdzIG5vdGhpbmcgbGVmdCB0byB3YXRjaDpcbiAgICAgICAgaWYgKGVsZW1lbnRzLnNpemUgPT09IDApIHtcbiAgICAgICAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICAgIG9ic2VydmVycy5kZWxldGUoaWQpO1xuICAgICAgICB9XG4gICAgfTtcbn1cbmNvbnN0IG9ic2VydmVycyA9IG5ldyBNYXAoKTtcbmZ1bmN0aW9uIGNyZWF0ZU9ic2VydmVyKG9wdGlvbnMpIHtcbiAgICBjb25zdCBpZCA9IG9wdGlvbnMucm9vdE1hcmdpbiB8fCAnJztcbiAgICBsZXQgaW5zdGFuY2UgPSBvYnNlcnZlcnMuZ2V0KGlkKTtcbiAgICBpZiAoaW5zdGFuY2UpIHtcbiAgICAgICAgcmV0dXJuIGluc3RhbmNlO1xuICAgIH1cbiAgICBjb25zdCBlbGVtZW50cyA9IG5ldyBNYXAoKTtcbiAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZW50cmllcyk9PntcbiAgICAgICAgZW50cmllcy5mb3JFYWNoKChlbnRyeSk9PntcbiAgICAgICAgICAgIGNvbnN0IGNhbGxiYWNrID0gZWxlbWVudHMuZ2V0KGVudHJ5LnRhcmdldCk7XG4gICAgICAgICAgICBjb25zdCBpc1Zpc2libGUgPSBlbnRyeS5pc0ludGVyc2VjdGluZyB8fCBlbnRyeS5pbnRlcnNlY3Rpb25SYXRpbyA+IDA7XG4gICAgICAgICAgICBpZiAoY2FsbGJhY2sgJiYgaXNWaXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2soaXNWaXNpYmxlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSwgb3B0aW9ucyk7XG4gICAgb2JzZXJ2ZXJzLnNldChpZCwgaW5zdGFuY2UgPSB7XG4gICAgICAgIGlkLFxuICAgICAgICBvYnNlcnZlcixcbiAgICAgICAgZWxlbWVudHNcbiAgICB9KTtcbiAgICByZXR1cm4gaW5zdGFuY2U7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVzZS1pbnRlcnNlY3Rpb24uanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwidXNlSW50ZXJzZWN0aW9uIiwiX3JlYWN0IiwicmVxdWlyZSIsIl9yZXF1ZXN0SWRsZUNhbGxiYWNrIiwiaGFzSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiLCJJbnRlcnNlY3Rpb25PYnNlcnZlciIsInJvb3RNYXJnaW4iLCJkaXNhYmxlZCIsImlzRGlzYWJsZWQiLCJ1bm9ic2VydmUiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInZpc2libGUiLCJzZXRWaXNpYmxlIiwic2V0UmVmIiwidXNlQ2FsbGJhY2siLCJlbCIsImN1cnJlbnQiLCJ1bmRlZmluZWQiLCJ0YWdOYW1lIiwib2JzZXJ2ZSIsImlzVmlzaWJsZSIsInVzZUVmZmVjdCIsImlkbGVDYWxsYmFjayIsInJlcXVlc3RJZGxlQ2FsbGJhY2siLCJjYW5jZWxJZGxlQ2FsbGJhY2siLCJlbGVtZW50IiwiY2FsbGJhY2siLCJvcHRpb25zIiwiY3JlYXRlT2JzZXJ2ZXIiLCJpZCIsIm9ic2VydmVyIiwiZWxlbWVudHMiLCJzZXQiLCJzaXplIiwiZGlzY29ubmVjdCIsIm9ic2VydmVycyIsIk1hcCIsImluc3RhbmNlIiwiZ2V0IiwiZW50cmllcyIsImZvckVhY2giLCJlbnRyeSIsInRhcmdldCIsImlzSW50ZXJzZWN0aW5nIiwiaW50ZXJzZWN0aW9uUmF0aW8iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/use-intersection.js\n"); + +/***/ }), + +/***/ "./src/common/getSiblings.js": +/*!***********************************!*\ + !*** ./src/common/getSiblings.js ***! + \***********************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar getSiblings = function getSiblings(e) {\n var siblings = [];\n\n if (!e.parentNode) {\n return siblings;\n }\n\n var sibling = e.parentNode.firstChild;\n\n while (sibling) {\n if (sibling.nodeType === 1 && sibling !== e) {\n siblings.push(sibling);\n }\n\n sibling = sibling.nextSibling;\n }\n\n return siblings;\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (getSiblings);\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL2dldFNpYmxpbmdzLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQUEsSUFBTUEsV0FBVyxHQUFHLFNBQWRBLFdBQWMsQ0FBQ0MsQ0FBRCxFQUFPO0FBQ3pCLE1BQUlDLFFBQVEsR0FBRyxFQUFmOztBQUNBLE1BQUksQ0FBQ0QsQ0FBQyxDQUFDRSxVQUFQLEVBQW1CO0FBQ2pCLFdBQU9ELFFBQVA7QUFDRDs7QUFDRCxNQUFJRSxPQUFPLEdBQUdILENBQUMsQ0FBQ0UsVUFBRixDQUFhRSxVQUEzQjs7QUFDQSxTQUFPRCxPQUFQLEVBQWdCO0FBQ2QsUUFBSUEsT0FBTyxDQUFDRSxRQUFSLEtBQXFCLENBQXJCLElBQTBCRixPQUFPLEtBQUtILENBQTFDLEVBQTZDO0FBQzNDQyxNQUFBQSxRQUFRLENBQUNLLElBQVQsQ0FBY0gsT0FBZDtBQUNEOztBQUNEQSxJQUFBQSxPQUFPLEdBQUdBLE9BQU8sQ0FBQ0ksV0FBbEI7QUFDRDs7QUFDRCxTQUFPTixRQUFQO0FBQ0QsQ0FiRDs7QUFlQSwrREFBZUYsV0FBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tbW9uL2dldFNpYmxpbmdzLmpzPzhlNjUiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZ2V0U2libGluZ3MgPSAoZSkgPT4ge1xyXG4gIGxldCBzaWJsaW5ncyA9IFtdO1xyXG4gIGlmICghZS5wYXJlbnROb2RlKSB7XHJcbiAgICByZXR1cm4gc2libGluZ3M7XHJcbiAgfVxyXG4gIGxldCBzaWJsaW5nID0gZS5wYXJlbnROb2RlLmZpcnN0Q2hpbGQ7XHJcbiAgd2hpbGUgKHNpYmxpbmcpIHtcclxuICAgIGlmIChzaWJsaW5nLm5vZGVUeXBlID09PSAxICYmIHNpYmxpbmcgIT09IGUpIHtcclxuICAgICAgc2libGluZ3MucHVzaChzaWJsaW5nKTtcclxuICAgIH1cclxuICAgIHNpYmxpbmcgPSBzaWJsaW5nLm5leHRTaWJsaW5nO1xyXG4gIH1cclxuICByZXR1cm4gc2libGluZ3M7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBnZXRTaWJsaW5ncztcclxuIl0sIm5hbWVzIjpbImdldFNpYmxpbmdzIiwiZSIsInNpYmxpbmdzIiwicGFyZW50Tm9kZSIsInNpYmxpbmciLCJmaXJzdENoaWxkIiwibm9kZVR5cGUiLCJwdXNoIiwibmV4dFNpYmxpbmciXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/common/getSiblings.js\n"); + +/***/ }), + +/***/ "./src/common/navbar.js": +/*!******************************!*\ + !*** ./src/common/navbar.js ***! + \******************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"handleDropdown\": function() { return /* binding */ handleDropdown; },\n/* harmony export */ \"handleMobileDropdown\": function() { return /* binding */ handleMobileDropdown; }\n/* harmony export */ });\n/* harmony import */ var _getSiblings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getSiblings */ \"./src/common/getSiblings.js\");\n/* module decorator */ module = __webpack_require__.hmd(module);\n\nvar handleDropdown = function handleDropdown(e) {\n (0,_getSiblings__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(e.target.parentElement).filter(function (item) {\n return item.classList.contains(\"show\");\n }).map(function (item) {\n item.classList.remove(\"show\");\n\n if (item.childNodes[0]) {\n item.childNodes[0].setAttribute(\"aria-expanded\", false);\n }\n\n if (item.childNodes[1]) {\n item.childNodes[1].classList.remove(\"show\");\n }\n });\n e.target.parentElement.classList.toggle(\"show\");\n e.target.setAttribute(\"aria-expanded\", true);\n e.target.parentElement.childNodes[1].classList.toggle(\"show\");\n};\nvar handleMobileDropdown = function handleMobileDropdown(e) {\n document.getElementById(\"navbarSupportedContent\").classList.toggle(\"show-with-trans\");\n};\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL25hdmJhci5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7QUFFTyxJQUFNQyxjQUFjLEdBQUcsU0FBakJBLGNBQWlCLENBQUNDLENBQUQsRUFBTztBQUNuQ0YsRUFBQUEsd0RBQVcsQ0FBQ0UsQ0FBQyxDQUFDQyxNQUFGLENBQVNDLGFBQVYsQ0FBWCxDQUNHQyxNQURILENBQ1UsVUFBQ0MsSUFBRDtBQUFBLFdBQVVBLElBQUksQ0FBQ0MsU0FBTCxDQUFlQyxRQUFmLENBQXdCLE1BQXhCLENBQVY7QUFBQSxHQURWLEVBRUdDLEdBRkgsQ0FFTyxVQUFDSCxJQUFELEVBQVU7QUFDYkEsSUFBQUEsSUFBSSxDQUFDQyxTQUFMLENBQWVHLE1BQWYsQ0FBc0IsTUFBdEI7O0FBQ0EsUUFBSUosSUFBSSxDQUFDSyxVQUFMLENBQWdCLENBQWhCLENBQUosRUFBd0I7QUFDdEJMLE1BQUFBLElBQUksQ0FBQ0ssVUFBTCxDQUFnQixDQUFoQixFQUFtQkMsWUFBbkIsQ0FBZ0MsZUFBaEMsRUFBaUQsS0FBakQ7QUFDRDs7QUFDRCxRQUFJTixJQUFJLENBQUNLLFVBQUwsQ0FBZ0IsQ0FBaEIsQ0FBSixFQUF3QjtBQUN0QkwsTUFBQUEsSUFBSSxDQUFDSyxVQUFMLENBQWdCLENBQWhCLEVBQW1CSixTQUFuQixDQUE2QkcsTUFBN0IsQ0FBb0MsTUFBcEM7QUFDRDtBQUNGLEdBVkg7QUFXQVIsRUFBQUEsQ0FBQyxDQUFDQyxNQUFGLENBQVNDLGFBQVQsQ0FBdUJHLFNBQXZCLENBQWlDTSxNQUFqQyxDQUF3QyxNQUF4QztBQUNBWCxFQUFBQSxDQUFDLENBQUNDLE1BQUYsQ0FBU1MsWUFBVCxDQUFzQixlQUF0QixFQUF1QyxJQUF2QztBQUNBVixFQUFBQSxDQUFDLENBQUNDLE1BQUYsQ0FBU0MsYUFBVCxDQUF1Qk8sVUFBdkIsQ0FBa0MsQ0FBbEMsRUFBcUNKLFNBQXJDLENBQStDTSxNQUEvQyxDQUFzRCxNQUF0RDtBQUNELENBZk07QUFpQkEsSUFBTUMsb0JBQW9CLEdBQUcsU0FBdkJBLG9CQUF1QixDQUFDWixDQUFELEVBQU87QUFDekNhLEVBQUFBLFFBQVEsQ0FDTEMsY0FESCxDQUNrQix3QkFEbEIsRUFFR1QsU0FGSCxDQUVhTSxNQUZiLENBRW9CLGlCQUZwQjtBQUdELENBSk0iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbW1vbi9uYXZiYXIuanM/MWU3NiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0U2libGluZ3MgZnJvbSAnLi9nZXRTaWJsaW5ncydcclxuXHJcbmV4cG9ydCBjb25zdCBoYW5kbGVEcm9wZG93biA9IChlKSA9PiB7XHJcbiAgZ2V0U2libGluZ3MoZS50YXJnZXQucGFyZW50RWxlbWVudClcclxuICAgIC5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uY2xhc3NMaXN0LmNvbnRhaW5zKFwic2hvd1wiKSlcclxuICAgIC5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgaXRlbS5jbGFzc0xpc3QucmVtb3ZlKFwic2hvd1wiKTtcclxuICAgICAgaWYgKGl0ZW0uY2hpbGROb2Rlc1swXSkge1xyXG4gICAgICAgIGl0ZW0uY2hpbGROb2Rlc1swXS5zZXRBdHRyaWJ1dGUoXCJhcmlhLWV4cGFuZGVkXCIsIGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaXRlbS5jaGlsZE5vZGVzWzFdKSB7XHJcbiAgICAgICAgaXRlbS5jaGlsZE5vZGVzWzFdLmNsYXNzTGlzdC5yZW1vdmUoXCJzaG93XCIpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICBlLnRhcmdldC5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoXCJzaG93XCIpO1xyXG4gIGUudGFyZ2V0LnNldEF0dHJpYnV0ZShcImFyaWEtZXhwYW5kZWRcIiwgdHJ1ZSk7XHJcbiAgZS50YXJnZXQucGFyZW50RWxlbWVudC5jaGlsZE5vZGVzWzFdLmNsYXNzTGlzdC50b2dnbGUoXCJzaG93XCIpO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGhhbmRsZU1vYmlsZURyb3Bkb3duID0gKGUpID0+IHtcclxuICBkb2N1bWVudFxyXG4gICAgLmdldEVsZW1lbnRCeUlkKFwibmF2YmFyU3VwcG9ydGVkQ29udGVudFwiKVxyXG4gICAgLmNsYXNzTGlzdC50b2dnbGUoXCJzaG93LXdpdGgtdHJhbnNcIik7XHJcbn07Il0sIm5hbWVzIjpbImdldFNpYmxpbmdzIiwiaGFuZGxlRHJvcGRvd24iLCJlIiwidGFyZ2V0IiwicGFyZW50RWxlbWVudCIsImZpbHRlciIsIml0ZW0iLCJjbGFzc0xpc3QiLCJjb250YWlucyIsIm1hcCIsInJlbW92ZSIsImNoaWxkTm9kZXMiLCJzZXRBdHRyaWJ1dGUiLCJ0b2dnbGUiLCJoYW5kbGVNb2JpbGVEcm9wZG93biIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/common/navbar.js\n"); + +/***/ }), + +/***/ "./src/components/Contact-form/contact-form.jsx": +/*!******************************************************!*\ + !*** ./src/components/Contact-form/contact-form.jsx ***! + \******************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node_modules/@babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _data_sections_form_info_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../data/sections/form-info.json */ \"./src/data/sections/form-info.json\");\n/* harmony import */ var formik__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! formik */ \"./node_modules/formik/dist/formik.esm.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__);\n/* module decorator */ module = __webpack_require__.hmd(module);\n\n\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Contact-form\\\\contact-form.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n\n\n\n\n\n\nvar ContactForm = function ContactForm() {\n _s();\n\n var messageRef = react__WEBPACK_IMPORTED_MODULE_2___default().useRef(null);\n\n function validateEmail(value) {\n var error;\n\n if (!value) {\n error = \"Required\";\n } else if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i.test(value)) {\n error = \"Invalid email address\";\n }\n\n return error;\n }\n\n var sendMessage = function sendMessage(ms) {\n return new Promise(function (r) {\n return setTimeout(r, ms);\n });\n };\n\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"section\", {\n className: \"contact section-padding\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"col-lg-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"form md-mb50\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"h4\", {\n className: \"fw-700 color-font mb-50\",\n children: \"Get In Touch.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(formik__WEBPACK_IMPORTED_MODULE_4__.Formik, {\n initialValues: {\n name: \"\",\n email: \"\",\n message: \"\"\n },\n onSubmit: /*#__PURE__*/function () {\n var _ref = (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee(values) {\n return C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return sendMessage(500);\n\n case 2:\n alert(JSON.stringify(values, null, 2)); // show message\n\n messageRef.current.innerText = \"Your Message has been successfully sent. I will contact you soon.\"; // Reset the values\n\n values.name = \"\";\n values.email = \"\";\n values.message = \"\"; // clear message\n\n setTimeout(function () {\n messageRef.current.innerText = \"\";\n }, 2000);\n\n case 8:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function (_x) {\n return _ref.apply(this, arguments);\n };\n }(),\n children: function children(_ref2) {\n var errors = _ref2.errors,\n touched = _ref2.touched;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(formik__WEBPACK_IMPORTED_MODULE_4__.Form, {\n id: \"contact-form\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"messages\",\n ref: messageRef\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"controls\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"form-group\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(formik__WEBPACK_IMPORTED_MODULE_4__.Field, {\n id: \"form_name\",\n type: \"text\",\n name: \"name\",\n placeholder: \"Name\",\n required: \"required\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 51,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"form-group\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(formik__WEBPACK_IMPORTED_MODULE_4__.Field, {\n validate: validateEmail,\n id: \"form_email\",\n type: \"email\",\n name: \"email\",\n placeholder: \"Email\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 61,\n columnNumber: 25\n }, _this), errors.email && touched.email && /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n children: errors.email\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 27\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 60,\n columnNumber: 23\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"form-group\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(formik__WEBPACK_IMPORTED_MODULE_4__.Field, {\n as: \"textarea\",\n id: \"form_message\",\n name: \"message\",\n placeholder: \"Message\",\n rows: \"4\",\n required: \"required\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"button\", {\n type: \"submit\",\n className: \"butn bord\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"span\", {\n children: \"Send Message\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 84,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 19\n }, _this);\n }\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"col-lg-5 offset-lg-1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"cont-info\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"h4\", {\n className: \"fw-700 color-font mb-50\",\n children: \"Contact Info.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"h3\", {\n className: \"wow\",\n \"data-splitting\": true,\n children: _data_sections_form_info_json__WEBPACK_IMPORTED_MODULE_3__.title\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"item mb-40\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"h5\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: _data_sections_form_info_json__WEBPACK_IMPORTED_MODULE_3__.email\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 100,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 99,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"h5\", {\n children: _data_sections_form_info_json__WEBPACK_IMPORTED_MODULE_3__.phone\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 102,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 98,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"h3\", {\n className: \"wow\",\n \"data-splitting\": true,\n children: \"Visit Us.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 104,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"item\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"h6\", {\n children: [_data_sections_form_info_json__WEBPACK_IMPORTED_MODULE_3__.location.first, /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"br\", {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 19\n }, _this), _data_sections_form_info_json__WEBPACK_IMPORTED_MODULE_3__.location.second]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 108,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 107,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"social mt-50\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"a\", {\n href: \"https://www.facebook.com/profile.php?id=100057392223857 \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"i\", {\n className: \"fab fa-facebook-f\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"a\", {\n href: \"https://www.linkedin.com/company/business-hub-international-investment\\r\\n\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"i\", {\n className: \"fab fa-linkedin\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 122,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"a\", {\n href: \"https://www.instagram.com/businesshubi/?igsh=MTJ3ejZneWdmbTM3bQ%3D%3D \\r\\n\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"i\", {\n className: \"fab fa-instagram\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 5\n }, _this);\n};\n\n_s(ContactForm, \"08wNPsqzPEHJlhuELMqsTELuLqk=\");\n\n_c = ContactForm;\n/* harmony default export */ __webpack_exports__[\"default\"] = (ContactForm);\n\nvar _c;\n\n$RefreshReg$(_c, \"ContactForm\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9Db250YWN0LWZvcm0vY29udGFjdC1mb3JtLmpzeC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7OztBQUVBLElBQU1LLFdBQVcsR0FBRyxTQUFkQSxXQUFjLEdBQU07QUFBQTs7QUFDeEIsTUFBTUMsVUFBVSxHQUFHTixtREFBQSxDQUFhLElBQWIsQ0FBbkI7O0FBQ0EsV0FBU1EsYUFBVCxDQUF1QkMsS0FBdkIsRUFBOEI7QUFDNUIsUUFBSUMsS0FBSjs7QUFDQSxRQUFJLENBQUNELEtBQUwsRUFBWTtBQUNWQyxNQUFBQSxLQUFLLEdBQUcsVUFBUjtBQUNELEtBRkQsTUFFTyxJQUFJLENBQUMsNENBQTRDQyxJQUE1QyxDQUFpREYsS0FBakQsQ0FBTCxFQUE4RDtBQUNuRUMsTUFBQUEsS0FBSyxHQUFHLHVCQUFSO0FBQ0Q7O0FBQ0QsV0FBT0EsS0FBUDtBQUNEOztBQUNELE1BQU1FLFdBQVcsR0FBRyxTQUFkQSxXQUFjLENBQUNDLEVBQUQ7QUFBQSxXQUFRLElBQUlDLE9BQUosQ0FBWSxVQUFDQyxDQUFEO0FBQUEsYUFBT0MsVUFBVSxDQUFDRCxDQUFELEVBQUlGLEVBQUosQ0FBakI7QUFBQSxLQUFaLENBQVI7QUFBQSxHQUFwQjs7QUFDQSxzQkFDRTtBQUFTLGFBQVMsRUFBQyx5QkFBbkI7QUFBQSwyQkFDRTtBQUFLLGVBQVMsRUFBQyxXQUFmO0FBQUEsNkJBQ0U7QUFBSyxpQkFBUyxFQUFDLEtBQWY7QUFBQSxnQ0FDRTtBQUFLLG1CQUFTLEVBQUMsVUFBZjtBQUFBLGlDQUNFO0FBQUsscUJBQVMsRUFBQyxjQUFmO0FBQUEsb0NBQ0U7QUFBSSx1QkFBUyxFQUFDLHlCQUFkO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQURGLGVBRUUsOERBQUMsMENBQUQ7QUFDRSwyQkFBYSxFQUFFO0FBQ2JJLGdCQUFBQSxJQUFJLEVBQUUsRUFETztBQUViQyxnQkFBQUEsS0FBSyxFQUFFLEVBRk07QUFHYkMsZ0JBQUFBLE9BQU8sRUFBRTtBQUhJLGVBRGpCO0FBTUUsc0JBQVE7QUFBQSxnU0FBRSxpQkFBT0MsTUFBUDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQ0FDRlIsV0FBVyxDQUFDLEdBQUQsQ0FEVDs7QUFBQTtBQUVSUywwQkFBQUEsS0FBSyxDQUFDQyxJQUFJLENBQUNDLFNBQUwsQ0FBZUgsTUFBZixFQUF1QixJQUF2QixFQUE2QixDQUE3QixDQUFELENBQUwsQ0FGUSxDQUdSOztBQUVBZCwwQkFBQUEsVUFBVSxDQUFDa0IsT0FBWCxDQUFtQkMsU0FBbkIsR0FDRSxtRUFERixDQUxRLENBT1I7O0FBQ0FMLDBCQUFBQSxNQUFNLENBQUNILElBQVAsR0FBYyxFQUFkO0FBQ0FHLDBCQUFBQSxNQUFNLENBQUNGLEtBQVAsR0FBZSxFQUFmO0FBQ0FFLDBCQUFBQSxNQUFNLENBQUNELE9BQVAsR0FBaUIsRUFBakIsQ0FWUSxDQVdSOztBQUNBSCwwQkFBQUEsVUFBVSxDQUFDLFlBQU07QUFDZlYsNEJBQUFBLFVBQVUsQ0FBQ2tCLE9BQVgsQ0FBbUJDLFNBQW5CLEdBQStCLEVBQS9CO0FBQ0QsMkJBRlMsRUFFUCxJQUZPLENBQVY7O0FBWlE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBQUY7O0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBTlY7QUFBQSx3QkF1Qkc7QUFBQSxvQkFBR0MsTUFBSCxTQUFHQSxNQUFIO0FBQUEsb0JBQVdDLE9BQVgsU0FBV0EsT0FBWDtBQUFBLG9DQUNDLDhEQUFDLHdDQUFEO0FBQU0sb0JBQUUsRUFBQyxjQUFUO0FBQUEsMENBQ0U7QUFBSyw2QkFBUyxFQUFDLFVBQWY7QUFBMEIsdUJBQUcsRUFBRXJCO0FBQS9CO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBREYsZUFFRTtBQUFLLDZCQUFTLEVBQUMsVUFBZjtBQUFBLDRDQUNFO0FBQUssK0JBQVMsRUFBQyxZQUFmO0FBQUEsNkNBQ0UsOERBQUMseUNBQUQ7QUFDRSwwQkFBRSxFQUFDLFdBREw7QUFFRSw0QkFBSSxFQUFDLE1BRlA7QUFHRSw0QkFBSSxFQUFDLE1BSFA7QUFJRSxtQ0FBVyxFQUFDLE1BSmQ7QUFLRSxnQ0FBUSxFQUFDO0FBTFg7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsNkJBREYsZUFVRTtBQUFLLCtCQUFTLEVBQUMsWUFBZjtBQUFBLDhDQUNFLDhEQUFDLHlDQUFEO0FBQ0UsZ0NBQVEsRUFBRUUsYUFEWjtBQUVFLDBCQUFFLEVBQUMsWUFGTDtBQUdFLDRCQUFJLEVBQUMsT0FIUDtBQUlFLDRCQUFJLEVBQUMsT0FKUDtBQUtFLG1DQUFXLEVBQUM7QUFMZDtBQUFBO0FBQUE7QUFBQTtBQUFBLCtCQURGLEVBUUdrQixNQUFNLENBQUNSLEtBQVAsSUFBZ0JTLE9BQU8sQ0FBQ1QsS0FBeEIsaUJBQ0M7QUFBQSxrQ0FBTVEsTUFBTSxDQUFDUjtBQUFiO0FBQUE7QUFBQTtBQUFBO0FBQUEsK0JBVEo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLDZCQVZGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSwyQkFGRixlQXlCRTtBQUFLLDZCQUFTLEVBQUMsWUFBZjtBQUFBLDJDQUNFLDhEQUFDLHlDQUFEO0FBQ0Usd0JBQUUsRUFBQyxVQURMO0FBRUUsd0JBQUUsRUFBQyxjQUZMO0FBR0UsMEJBQUksRUFBQyxTQUhQO0FBSUUsaUNBQVcsRUFBQyxTQUpkO0FBS0UsMEJBQUksRUFBQyxHQUxQO0FBTUUsOEJBQVEsRUFBQztBQU5YO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLDJCQXpCRixlQW9DRTtBQUFRLHdCQUFJLEVBQUMsUUFBYjtBQUFzQiw2QkFBUyxFQUFDLFdBQWhDO0FBQUEsMkNBQ0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLDJCQXBDRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEseUJBREQ7QUFBQTtBQXZCSDtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQUZGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBREYsZUF3RUU7QUFBSyxtQkFBUyxFQUFDLHNCQUFmO0FBQUEsaUNBQ0U7QUFBSyxxQkFBUyxFQUFDLFdBQWY7QUFBQSxvQ0FDRTtBQUFJLHVCQUFTLEVBQUMseUJBQWQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBREYsZUFFRTtBQUFJLHVCQUFTLEVBQUMsS0FBZDtBQUFvQixvQ0FBcEI7QUFBQSx3QkFDR2pCLGdFQUFxQjJCO0FBRHhCO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBRkYsZUFLRTtBQUFLLHVCQUFTLEVBQUMsWUFBZjtBQUFBLHNDQUNFO0FBQUEsdUNBQ0U7QUFBRyxzQkFBSSxFQUFDLElBQVI7QUFBQSw0QkFBYzNCLGdFQUFxQmlCO0FBQW5DO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQURGLGVBSUU7QUFBQSwwQkFBS2pCLGdFQUFxQjRCO0FBQTFCO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBSkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQUxGLGVBV0U7QUFBSSx1QkFBUyxFQUFDLEtBQWQ7QUFBb0Isb0NBQXBCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQVhGLGVBY0U7QUFBSyx1QkFBUyxFQUFDLE1BQWY7QUFBQSxxQ0FDRTtBQUFBLDJCQUNHNUIseUVBREgsZUFFRTtBQUFBO0FBQUE7QUFBQTtBQUFBLHlCQUZGLEVBR0dBLDBFQUhIO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBZEYsZUFxQkU7QUFBSyx1QkFBUyxFQUFDLGNBQWY7QUFBQSxzQ0FDRTtBQUFHLG9CQUFJLEVBQUMsMERBQVI7QUFBQSx1Q0FDRTtBQUFHLDJCQUFTLEVBQUM7QUFBYjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFERixlQUlFO0FBQ0Usb0JBQUksRUFBQyw0RUFEUDtBQUFBLHVDQUlFO0FBQUcsMkJBQVMsRUFBQztBQUFiO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFKRjtBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQUpGLGVBVUU7QUFDRSxvQkFBSSxFQUFDLDRFQURQO0FBQUEsdUNBSUU7QUFBRywyQkFBUyxFQUFDO0FBQWI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUpGO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBVkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQXJCRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQXhFRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxXQURGO0FBd0hELENBcElEOztHQUFNSTs7S0FBQUE7QUFzSU4sK0RBQWVBLFdBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbXBvbmVudHMvQ29udGFjdC1mb3JtL2NvbnRhY3QtZm9ybS5qc3g/NGViOSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBDb250YWN0RnJvbURhdGUgZnJvbSBcIi4uLy4uL2RhdGEvc2VjdGlvbnMvZm9ybS1pbmZvLmpzb25cIjtcclxuaW1wb3J0IHsgRm9ybWlrLCBGb3JtLCBGaWVsZCB9IGZyb20gXCJmb3JtaWtcIjtcclxuXHJcbmNvbnN0IENvbnRhY3RGb3JtID0gKCkgPT4ge1xyXG4gIGNvbnN0IG1lc3NhZ2VSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XHJcbiAgZnVuY3Rpb24gdmFsaWRhdGVFbWFpbCh2YWx1ZSkge1xyXG4gICAgbGV0IGVycm9yO1xyXG4gICAgaWYgKCF2YWx1ZSkge1xyXG4gICAgICBlcnJvciA9IFwiUmVxdWlyZWRcIjtcclxuICAgIH0gZWxzZSBpZiAoIS9eW0EtWjAtOS5fJSstXStAW0EtWjAtOS4tXStcXC5bQS1aXXsyLDR9JC9pLnRlc3QodmFsdWUpKSB7XHJcbiAgICAgIGVycm9yID0gXCJJbnZhbGlkIGVtYWlsIGFkZHJlc3NcIjtcclxuICAgIH1cclxuICAgIHJldHVybiBlcnJvcjtcclxuICB9XHJcbiAgY29uc3Qgc2VuZE1lc3NhZ2UgPSAobXMpID0+IG5ldyBQcm9taXNlKChyKSA9PiBzZXRUaW1lb3V0KHIsIG1zKSk7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cImNvbnRhY3Qgc2VjdGlvbi1wYWRkaW5nXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb3JtIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwiZnctNzAwIGNvbG9yLWZvbnQgbWItNTBcIj5HZXQgSW4gVG91Y2guPC9oND5cclxuICAgICAgICAgICAgICA8Rm9ybWlrXHJcbiAgICAgICAgICAgICAgICBpbml0aWFsVmFsdWVzPXt7XHJcbiAgICAgICAgICAgICAgICAgIG5hbWU6IFwiXCIsXHJcbiAgICAgICAgICAgICAgICAgIGVtYWlsOiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIG9uU3VibWl0PXthc3luYyAodmFsdWVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGF3YWl0IHNlbmRNZXNzYWdlKDUwMCk7XHJcbiAgICAgICAgICAgICAgICAgIGFsZXJ0KEpTT04uc3RyaW5naWZ5KHZhbHVlcywgbnVsbCwgMikpO1xyXG4gICAgICAgICAgICAgICAgICAvLyBzaG93IG1lc3NhZ2VcclxuXHJcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2VSZWYuY3VycmVudC5pbm5lclRleHQgPVxyXG4gICAgICAgICAgICAgICAgICAgIFwiWW91ciBNZXNzYWdlIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSBzZW50LiBJIHdpbGwgY29udGFjdCB5b3Ugc29vbi5cIjtcclxuICAgICAgICAgICAgICAgICAgLy8gUmVzZXQgdGhlIHZhbHVlc1xyXG4gICAgICAgICAgICAgICAgICB2YWx1ZXMubmFtZSA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgICAgIHZhbHVlcy5lbWFpbCA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgICAgIHZhbHVlcy5tZXNzYWdlID0gXCJcIjtcclxuICAgICAgICAgICAgICAgICAgLy8gY2xlYXIgbWVzc2FnZVxyXG4gICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlUmVmLmN1cnJlbnQuaW5uZXJUZXh0ID0gXCJcIjtcclxuICAgICAgICAgICAgICAgICAgfSwgMjAwMCk7XHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIHsoeyBlcnJvcnMsIHRvdWNoZWQgfSkgPT4gKFxyXG4gICAgICAgICAgICAgICAgICA8Rm9ybSBpZD1cImNvbnRhY3QtZm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWVzc2FnZXNcIiByZWY9e21lc3NhZ2VSZWZ9PjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udHJvbHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8RmllbGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImZvcm1fbmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJuYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIk5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPVwicmVxdWlyZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPEZpZWxkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGU9e3ZhbGlkYXRlRW1haWx9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJmb3JtX2VtYWlsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiZW1haWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJlbWFpbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFbWFpbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtlcnJvcnMuZW1haWwgJiYgdG91Y2hlZC5lbWFpbCAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj57ZXJyb3JzLmVtYWlsfTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8RmllbGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXM9XCJ0ZXh0YXJlYVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiZm9ybV9tZXNzYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cIm1lc3NhZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIk1lc3NhZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByb3dzPVwiNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPVwicmVxdWlyZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3NOYW1lPVwiYnV0biBib3JkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5TZW5kIE1lc3NhZ2U8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDwvRm9ybT5cclxuICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgPC9Gb3JtaWs+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy01IG9mZnNldC1sZy0xXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udC1pbmZvXCI+XHJcbiAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cImZ3LTcwMCBjb2xvci1mb250IG1iLTUwXCI+Q29udGFjdCBJbmZvLjwvaDQ+XHJcbiAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cIndvd1wiIGRhdGEtc3BsaXR0aW5nPlxyXG4gICAgICAgICAgICAgICAge0NvbnRhY3RGcm9tRGF0ZS50aXRsZX1cclxuICAgICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBtYi00MFwiPlxyXG4gICAgICAgICAgICAgICAgPGg1PlxyXG4gICAgICAgICAgICAgICAgICA8YSBocmVmPVwiIzBcIj57Q29udGFjdEZyb21EYXRlLmVtYWlsfTwvYT5cclxuICAgICAgICAgICAgICAgIDwvaDU+XHJcbiAgICAgICAgICAgICAgICA8aDU+e0NvbnRhY3RGcm9tRGF0ZS5waG9uZX08L2g1PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJ3b3dcIiBkYXRhLXNwbGl0dGluZz5cclxuICAgICAgICAgICAgICAgIFZpc2l0IFVzLlxyXG4gICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+XHJcbiAgICAgICAgICAgICAgICAgIHtDb250YWN0RnJvbURhdGUubG9jYXRpb24uZmlyc3R9XHJcbiAgICAgICAgICAgICAgICAgIDxiciAvPlxyXG4gICAgICAgICAgICAgICAgICB7Q29udGFjdEZyb21EYXRlLmxvY2F0aW9uLnNlY29uZH1cclxuICAgICAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzb2NpYWwgbXQtNTBcIj5cclxuICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJodHRwczovL3d3dy5mYWNlYm9vay5jb20vcHJvZmlsZS5waHA/aWQ9MTAwMDU3MzkyMjIzODU3IFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYWIgZmEtZmFjZWJvb2stZlwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL3d3dy5saW5rZWRpbi5jb20vY29tcGFueS9idXNpbmVzcy1odWItaW50ZXJuYXRpb25hbC1pbnZlc3RtZW50XHJcblwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhYiBmYS1saW5rZWRpblwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL3d3dy5pbnN0YWdyYW0uY29tL2J1c2luZXNzaHViaS8/aWdzaD1NVEozZWpabmVXZG1iVE0zYlElM0QlM0QgXHJcblwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhYiBmYS1pbnN0YWdyYW1cIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBDb250YWN0Rm9ybTtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiQ29udGFjdEZyb21EYXRlIiwiRm9ybWlrIiwiRm9ybSIsIkZpZWxkIiwiQ29udGFjdEZvcm0iLCJtZXNzYWdlUmVmIiwidXNlUmVmIiwidmFsaWRhdGVFbWFpbCIsInZhbHVlIiwiZXJyb3IiLCJ0ZXN0Iiwic2VuZE1lc3NhZ2UiLCJtcyIsIlByb21pc2UiLCJyIiwic2V0VGltZW91dCIsIm5hbWUiLCJlbWFpbCIsIm1lc3NhZ2UiLCJ2YWx1ZXMiLCJhbGVydCIsIkpTT04iLCJzdHJpbmdpZnkiLCJjdXJyZW50IiwiaW5uZXJUZXh0IiwiZXJyb3JzIiwidG91Y2hlZCIsInRpdGxlIiwicGhvbmUiLCJsb2NhdGlvbiIsImZpcnN0Iiwic2Vjb25kIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Contact-form/contact-form.jsx\n"); + +/***/ }), + +/***/ "./src/components/Contact-header/contact-header.jsx": +/*!**********************************************************!*\ + !*** ./src/components/Contact-header/contact-header.jsx ***! + \**********************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _config_particle_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../config/particle-config */ \"./src/config/particle-config.js\");\n/* harmony import */ var _config_pr_s_black__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../config/pr-s-black */ \"./src/config/pr-s-black.js\");\n/* harmony import */ var react_tsparticles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-tsparticles */ \"./node_modules/react-tsparticles/index.js\");\n/* harmony import */ var react_tsparticles__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_tsparticles__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _data_sections_contact_header_json__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../data/sections/contact-header.json */ \"./src/data/sections/contact-header.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Contact-header\\\\contact-header.jsx\",\n _this = undefined;\n\n\n\n\n\n\n\n\nvar ContactHeader = function ContactHeader(_ref) {\n var sliderRef = _ref.sliderRef,\n blackStar = _ref.blackStar;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"header\", {\n ref: sliderRef,\n className: \"pages-header circle-bg valign position-re\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"col-lg-9 col-md-11\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"capt\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"h1\", {\n className: \"color-font mb-10 fw-700\",\n children: [_data_sections_contact_header_json__WEBPACK_IMPORTED_MODULE_4__.title.first, \" \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"br\", {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 51\n }, _this), _data_sections_contact_header_json__WEBPACK_IMPORTED_MODULE_4__.title.second]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"p\", {\n children: _data_sections_contact_header_json__WEBPACK_IMPORTED_MODULE_4__.content\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)((react_tsparticles__WEBPACK_IMPORTED_MODULE_3___default()), {\n id: \"particles-js\",\n options: blackStar ? _config_pr_s_black__WEBPACK_IMPORTED_MODULE_2__[\"default\"] : _config_particle_config__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"circle-color\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"gradient-circle\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"gradient-circle two\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 9\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, _this);\n};\n\n_c = ContactHeader;\n/* harmony default export */ __webpack_exports__[\"default\"] = (ContactHeader);\n\nvar _c;\n\n$RefreshReg$(_c, \"ContactHeader\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9Db250YWN0LWhlYWRlci9jb250YWN0LWhlYWRlci5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFFQSxJQUFNSyxhQUFhLEdBQUcsU0FBaEJBLGFBQWdCLE9BQThCO0FBQUEsTUFBM0JDLFNBQTJCLFFBQTNCQSxTQUEyQjtBQUFBLE1BQWhCQyxTQUFnQixRQUFoQkEsU0FBZ0I7QUFDbEQsc0JBQ0U7QUFDRSxPQUFHLEVBQUVELFNBRFA7QUFFRSxhQUFTLEVBQUMsMkNBRlo7QUFBQSw0QkFJRTtBQUFLLGVBQVMsRUFBQyxXQUFmO0FBQUEsNkJBQ0U7QUFBSyxpQkFBUyxFQUFDLDRCQUFmO0FBQUEsK0JBQ0U7QUFBSyxtQkFBUyxFQUFDLG9CQUFmO0FBQUEsaUNBQ0U7QUFBSyxxQkFBUyxFQUFDLE1BQWY7QUFBQSxtQ0FDRTtBQUFLLHVCQUFTLEVBQUMsYUFBZjtBQUFBLHNDQUNFO0FBQUkseUJBQVMsRUFBQyx5QkFBZDtBQUFBLDJCQUNHRiwyRUFESCxvQkFDa0M7QUFBQTtBQUFBO0FBQUE7QUFBQSx5QkFEbEMsRUFFR0EsNEVBRkg7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQURGLGVBS0U7QUFBQSwwQkFBSUEsdUVBQXlCTztBQUE3QjtBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQUxGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsYUFKRixlQW1CRSw4REFBQywwREFBRDtBQUNFLFFBQUUsRUFBQyxjQURMO0FBRUUsYUFBTyxFQUFFSixTQUFTLEdBQUdMLDBEQUFILEdBQTBCRCwrREFBZUE7QUFGN0Q7QUFBQTtBQUFBO0FBQUE7QUFBQSxhQW5CRixlQXdCRTtBQUFLLGVBQVMsRUFBQyxjQUFmO0FBQUEsOEJBQ0U7QUFBSyxpQkFBUyxFQUFDO0FBQWY7QUFBQTtBQUFBO0FBQUE7QUFBQSxlQURGLGVBRUU7QUFBSyxpQkFBUyxFQUFDO0FBQWY7QUFBQTtBQUFBO0FBQUE7QUFBQSxlQUZGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxhQXhCRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsV0FERjtBQStCRCxDQWhDRDs7S0FBTUk7QUFrQ04sK0RBQWVBLGFBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbXBvbmVudHMvQ29udGFjdC1oZWFkZXIvY29udGFjdC1oZWFkZXIuanN4P2VhNjMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgcGFydGljbGVzQ29uZmlnIGZyb20gXCIuLi8uLi9jb25maWcvcGFydGljbGUtY29uZmlnXCI7XHJcbmltcG9ydCBwYXJ0aWNsZXNCbGFja0NvbmZpZyBmcm9tIFwiLi4vLi4vY29uZmlnL3ByLXMtYmxhY2tcIjtcclxuaW1wb3J0IFBhcnRpY2xlcyBmcm9tIFwicmVhY3QtdHNwYXJ0aWNsZXNcIjtcclxuaW1wb3J0IENvbnRlbnRIZWFkZXJEYXRlIGZyb20gXCIuLi8uLi9kYXRhL3NlY3Rpb25zL2NvbnRhY3QtaGVhZGVyLmpzb25cIjtcclxuXHJcbmNvbnN0IENvbnRhY3RIZWFkZXIgPSAoeyBzbGlkZXJSZWYsIGJsYWNrU3RhciB9KSA9PiB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxoZWFkZXJcclxuICAgICAgcmVmPXtzbGlkZXJSZWZ9XHJcbiAgICAgIGNsYXNzTmFtZT1cInBhZ2VzLWhlYWRlciBjaXJjbGUtYmcgdmFsaWduIHBvc2l0aW9uLXJlXCJcclxuICAgID5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy05IGNvbC1tZC0xMVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNhcHRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8aDEgY2xhc3NOYW1lPVwiY29sb3ItZm9udCBtYi0xMCBmdy03MDBcIj5cclxuICAgICAgICAgICAgICAgICAge0NvbnRlbnRIZWFkZXJEYXRlLnRpdGxlLmZpcnN0fSA8YnIgLz5cclxuICAgICAgICAgICAgICAgICAge0NvbnRlbnRIZWFkZXJEYXRlLnRpdGxlLnNlY29uZH1cclxuICAgICAgICAgICAgICAgIDwvaDE+XHJcbiAgICAgICAgICAgICAgICA8cD57Q29udGVudEhlYWRlckRhdGUuY29udGVudH08L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8UGFydGljbGVzXHJcbiAgICAgICAgaWQ9XCJwYXJ0aWNsZXMtanNcIlxyXG4gICAgICAgIG9wdGlvbnM9e2JsYWNrU3RhciA/IHBhcnRpY2xlc0JsYWNrQ29uZmlnIDogcGFydGljbGVzQ29uZmlnfVxyXG4gICAgICAvPlxyXG5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjaXJjbGUtY29sb3JcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyYWRpZW50LWNpcmNsZVwiPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JhZGllbnQtY2lyY2xlIHR3b1wiPjwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvaGVhZGVyPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBDb250YWN0SGVhZGVyO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJwYXJ0aWNsZXNDb25maWciLCJwYXJ0aWNsZXNCbGFja0NvbmZpZyIsIlBhcnRpY2xlcyIsIkNvbnRlbnRIZWFkZXJEYXRlIiwiQ29udGFjdEhlYWRlciIsInNsaWRlclJlZiIsImJsYWNrU3RhciIsInRpdGxlIiwiZmlyc3QiLCJzZWNvbmQiLCJjb250ZW50Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Contact-header/contact-header.jsx\n"); + +/***/ }), + +/***/ "./src/components/Footer/footer.jsx": +/*!******************************************!*\ + !*** ./src/components/Footer/footer.jsx ***! + \******************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _data_app_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../data/app.json */ \"./src/data/app.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Footer\\\\footer.jsx\",\n _this = undefined;\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\nvar Footer = function Footer(_ref) {\n var hideBGCOLOR = _ref.hideBGCOLOR;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"footer\", {\n className: \"\".concat(!hideBGCOLOR ? \"sub-bg\" : \"\"),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item md-mb50\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"title\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h5\", {\n children: \"Contact Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"ul\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-map-marker\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Officeal Address\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"Baghdad Street, Al Dana area, Abu Dhabi, United Arab Emirates\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-mail\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Email Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"hello@businesshub.abudhabi\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-call\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Call Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"+971 26340404\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"logo\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.footerLogo,\n style: {\n width: \"150px\"\n },\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"social\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"https://www.facebook.com/profile.php?id=100057392223857 \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-facebook-f\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"https://www.linkedin.com/company/business-hub-international-investment\\r\\n\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-linkedin\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"https://www.instagram.com/businesshubi/?igsh=MTJ3ejZneWdmbTM3bQ%3D%3D \\r\\n\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-instagram\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"copy-right\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"\\xA9 2024, 2024 Business HUB international investment - All Rights Reserved.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 5\n }, _this);\n};\n\n_c = Footer;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Footer);\n\nvar _c;\n\n$RefreshReg$(_c, \"Footer\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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LG9CQUFJLEVBQUMsNEVBRFA7QUFBQSx1Q0FJRTtBQUFHLDJCQUFTLEVBQUM7QUFBYjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSkY7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFWRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBUkYsZUF5QkU7QUFBSyx1QkFBUyxFQUFDLFlBQWY7QUFBQSxxQ0FDRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBekJGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBbkNGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBREY7QUE0RUQsQ0E3RUQ7O0tBQU1IO0FBK0VOLCtEQUFlQSxNQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL0Zvb3Rlci9mb290ZXIuanN4P2YzOTQiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcclxuaW1wb3J0IGFwcERhdGEgZnJvbSBcIi4uLy4uL2RhdGEvYXBwLmpzb25cIjtcclxuXHJcbmNvbnN0IEZvb3RlciA9ICh7IGhpZGVCR0NPTE9SIH0pID0+IHtcclxuICByZXR1cm4gKFxyXG4gICAgPGZvb3RlciBjbGFzc05hbWU9e2AkeyFoaWRlQkdDT0xPUiA/IFwic3ViLWJnXCIgOiBcIlwifWB9PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy00XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgPGg1PkNvbnRhY3QgVXM8L2g1PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDx1bD5cclxuICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvbiBwZS03cy1tYXAtbWFya2VyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+T2ZmaWNlYWwgQWRkcmVzczwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICBCYWdoZGFkIFN0cmVldCwgQWwgRGFuYSBhcmVhLCBBYnUgRGhhYmksIFVuaXRlZCBBcmFiXHJcbiAgICAgICAgICAgICAgICAgICAgICBFbWlyYXRlc1xyXG4gICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJpY29uIHBlLTdzLW1haWxcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoNj5FbWFpbCBVczwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+aGVsbG9AYnVzaW5lc3NodWIuYWJ1ZGhhYmk8L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvbiBwZS03cy1jYWxsXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+Q2FsbCBVczwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+Kzk3MSAyNjM0MDQwNDwvcD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctNFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxvZ29cIj5cclxuICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgc3JjPXthcHBEYXRhLmZvb3RlckxvZ299XHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IHdpZHRoOiBcIjE1MHB4XCIgfX1cclxuICAgICAgICAgICAgICAgICAgYWx0PVwiXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzb2NpYWxcIj5cclxuICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJodHRwczovL3d3dy5mYWNlYm9vay5jb20vcHJvZmlsZS5waHA/aWQ9MTAwMDU3MzkyMjIzODU3IFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYWIgZmEtZmFjZWJvb2stZlwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL3d3dy5saW5rZWRpbi5jb20vY29tcGFueS9idXNpbmVzcy1odWItaW50ZXJuYXRpb25hbC1pbnZlc3RtZW50XHJcblwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhYiBmYS1saW5rZWRpblwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL3d3dy5pbnN0YWdyYW0uY29tL2J1c2luZXNzaHViaS8/aWdzaD1NVEozZWpabmVXZG1iVE0zYlElM0QlM0QgXHJcblwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhYiBmYS1pbnN0YWdyYW1cIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb3B5LXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgwqkgMjAyNCwgMjAyNCBCdXNpbmVzcyBIVUIgaW50ZXJuYXRpb25hbCBpbnZlc3RtZW50IC0gQWxsXHJcbiAgICAgICAgICAgICAgICAgIFJpZ2h0cyBSZXNlcnZlZC5cclxuICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Zvb3Rlcj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgRm9vdGVyO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJMaW5rIiwiYXBwRGF0YSIsIkZvb3RlciIsImhpZGVCR0NPTE9SIiwiZm9vdGVyTG9nbyIsIndpZHRoIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Footer/footer.jsx\n"); + +/***/ }), + +/***/ "./src/components/Navbar/navbar.jsx": +/*!******************************************!*\ + !*** ./src/components/Navbar/navbar.jsx ***! + \******************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _data_app_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../data/app.json */ \"./src/data/app.json\");\n/* harmony import */ var _common_navbar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/navbar */ \"./src/common/navbar.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Navbar\\\\navbar.jsx\",\n _this = undefined;\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nvar Navbar = function Navbar(_ref) {\n var lr = _ref.lr,\n nr = _ref.nr,\n theme = _ref.theme;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"nav\", {\n ref: nr,\n className: \"navbar navbar-expand-lg change \".concat(theme === \"themeL\" ? \"light\" : \"\"),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"a\", {\n className: \"logo\",\n children: theme ? theme === \"themeL\" ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n ref: lr,\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.darkLogo,\n alt: \"logo\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 17\n }, _this) : /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n ref: lr,\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.lightLogo,\n alt: \"logo\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 17\n }, _this) : /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n ref: lr,\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.lightLogo,\n alt: \"logo\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"button\", {\n className: \"navbar-toggler\",\n type: \"button\",\n onClick: _common_navbar__WEBPACK_IMPORTED_MODULE_3__.handleMobileDropdown,\n \"data-toggle\": \"collapse\",\n \"data-target\": \"#navbarSupportedContent\",\n \"aria-controls\": \"navbarSupportedContent\",\n \"aria-expanded\": \"false\",\n \"aria-label\": \"Toggle navigation\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"icon-bar\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"i\", {\n className: \"fas fa-bars\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"collapse navbar-collapse\",\n id: \"navbarSupportedContent\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"ul\", {\n className: \"navbar-nav ml-auto\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"nav-link \",\n children: \"Home\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/about\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"a\", {\n className: \"nav-link\",\n children: \"Who we are\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/services\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"nav-link\",\n children: \"Our Services\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 59,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/blog/blog-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"nav-link \",\n children: \"Blog\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/contact/contact-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"a\", {\n className: \"nav-link\",\n children: \"Contact\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 13\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, _this);\n};\n\n_c = Navbar;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Navbar);\n\nvar _c;\n\n$RefreshReg$(_c, \"Navbar\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFDLGtEQUFEO0FBQU0sa0JBQUksb0JBQVY7QUFBQSxxQ0FDRTtBQUFNLHlCQUFTLEVBQUMsV0FBaEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxtQkFoQkYsZUFxQkU7QUFBSSxxQkFBUyxFQUFDLFVBQWQ7QUFBQSxtQ0FDRSw4REFBQyxrREFBRDtBQUFNLGtCQUFJLDBCQUFWO0FBQUEscUNBQ0U7QUFBRyx5QkFBUyxFQUFDLFVBQWI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxtQkFyQkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxlQTlCRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFORjtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBREY7QUFxRUQsQ0F0RUQ7O0tBQU1DO0FBd0VOLCtEQUFlQSxNQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL05hdmJhci9uYXZiYXIuanN4PzdhZjAiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcclxuaW1wb3J0IGFwcERhdGEgZnJvbSBcIi4uLy4uL2RhdGEvYXBwLmpzb25cIjtcclxuaW1wb3J0IHsgaGFuZGxlRHJvcGRvd24sIGhhbmRsZU1vYmlsZURyb3Bkb3duIH0gZnJvbSBcIi4uLy4uL2NvbW1vbi9uYXZiYXJcIjtcclxuXHJcbmNvbnN0IE5hdmJhciA9ICh7IGxyLCBuciwgdGhlbWUgfSkgPT4ge1xyXG4gIHJldHVybiAoXHJcbiAgICA8bmF2XHJcbiAgICAgIHJlZj17bnJ9XHJcbiAgICAgIGNsYXNzTmFtZT17YG5hdmJhciBuYXZiYXItZXhwYW5kLWxnIGNoYW5nZSAke1xyXG4gICAgICAgIHRoZW1lID09PSBcInRoZW1lTFwiID8gXCJsaWdodFwiIDogXCJcIlxyXG4gICAgICB9YH1cclxuICAgID5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICA8TGluayBocmVmPVwiL1wiPlxyXG4gICAgICAgICAgPGEgY2xhc3NOYW1lPVwibG9nb1wiPlxyXG4gICAgICAgICAgICB7dGhlbWUgPyAoXHJcbiAgICAgICAgICAgICAgdGhlbWUgPT09IFwidGhlbWVMXCIgPyAoXHJcbiAgICAgICAgICAgICAgICA8aW1nIHJlZj17bHJ9IHNyYz17YXBwRGF0YS5kYXJrTG9nb30gYWx0PVwibG9nb1wiIC8+XHJcbiAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgIDxpbWcgcmVmPXtscn0gc3JjPXthcHBEYXRhLmxpZ2h0TG9nb30gYWx0PVwibG9nb1wiIC8+XHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgIDxpbWcgcmVmPXtscn0gc3JjPXthcHBEYXRhLmxpZ2h0TG9nb30gYWx0PVwibG9nb1wiIC8+XHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgPC9MaW5rPlxyXG5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICBjbGFzc05hbWU9XCJuYXZiYXItdG9nZ2xlclwiXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZU1vYmlsZURyb3Bkb3dufVxyXG4gICAgICAgICAgZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXHJcbiAgICAgICAgICBkYXRhLXRhcmdldD1cIiNuYXZiYXJTdXBwb3J0ZWRDb250ZW50XCJcclxuICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJuYXZiYXJTdXBwb3J0ZWRDb250ZW50XCJcclxuICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiXHJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiVG9nZ2xlIG5hdmlnYXRpb25cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24tYmFyXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhcyBmYS1iYXJzXCI+PC9pPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbGxhcHNlIG5hdmJhci1jb2xsYXBzZVwiIGlkPVwibmF2YmFyU3VwcG9ydGVkQ29udGVudFwiPlxyXG4gICAgICAgICAgPHVsIGNsYXNzTmFtZT1cIm5hdmJhci1uYXYgbWwtYXV0b1wiPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibmF2LWl0ZW0gXCI+XHJcbiAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9cIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm5hdi1saW5rIFwiPkhvbWU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibmF2LWl0ZW1cIj5cclxuICAgICAgICAgICAgICA8TGluayBocmVmPXtgL2Fib3V0YH0+XHJcbiAgICAgICAgICAgICAgICA8YSBjbGFzc05hbWU9XCJuYXYtbGlua1wiPldobyB3ZSBhcmU8L2E+XHJcbiAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibmF2LWl0ZW0gXCI+XHJcbiAgICAgICAgICAgICAgPExpbmsgaHJlZj17YC9zZXJ2aWNlc2B9PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibmF2LWxpbmtcIj5PdXIgU2VydmljZXM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibmF2LWl0ZW0gXCI+XHJcbiAgICAgICAgICAgICAgPExpbmsgaHJlZj17YC9ibG9nL2Jsb2ctbGlnaHRgfT5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm5hdi1saW5rIFwiPkJsb2c8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibmF2LWl0ZW1cIj5cclxuICAgICAgICAgICAgICA8TGluayBocmVmPXtgL2NvbnRhY3QvY29udGFjdC1saWdodGB9PlxyXG4gICAgICAgICAgICAgICAgPGEgY2xhc3NOYW1lPVwibmF2LWxpbmtcIj5Db250YWN0PC9hPlxyXG4gICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uYXY+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IE5hdmJhcjtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiTGluayIsImFwcERhdGEiLCJoYW5kbGVEcm9wZG93biIsImhhbmRsZU1vYmlsZURyb3Bkb3duIiwiTmF2YmFyIiwibHIiLCJuciIsInRoZW1lIiwiZGFya0xvZ28iLCJsaWdodExvZ28iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/components/Navbar/navbar.jsx\n"); + +/***/ }), + +/***/ "./src/config/particle-config.js": +/*!***************************************!*\ + !*** ./src/config/particle-config.js ***! + \***************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar particlesConfig = {\n particles: {\n number: {\n value: 130,\n density: {\n enable: true,\n value_area: 900\n }\n },\n color: {\n value: \"#ffffff\"\n },\n shape: {\n type: \"circle\",\n stroke: {\n width: 0,\n color: \"#000000\"\n },\n polygon: {\n nb_sides: 5\n },\n image: {\n src: \"/img/github.svg\",\n width: 100,\n height: 100\n }\n },\n opacity: {\n value: 0.2,\n random: true,\n anim: {\n enable: true,\n speed: 1,\n opacity_min: 0.3,\n sync: false\n }\n },\n size: {\n value: 1.8,\n random: true,\n anim: {\n enable: false,\n speed: 4,\n size_min: 0.4,\n sync: false\n }\n },\n line_linked: {\n enable: false,\n distance: 150,\n color: \"#ffffff\",\n opacity: 0.4,\n width: 1\n },\n move: {\n enable: true,\n speed: 1,\n direction: \"none\",\n random: true,\n straight: false,\n out_mode: \"out\",\n bounce: false,\n attract: {\n enable: false,\n rotateX: 600,\n rotateY: 600\n }\n }\n },\n interactivity: {\n detect_on: \"canvas\",\n events: {\n onhover: {\n enable: true,\n mode: \"bubble\"\n },\n onclick: {\n enable: true,\n mode: \"repulse\"\n },\n resize: true\n },\n modes: {\n grab: {\n distance: 400,\n line_linked: {\n opacity: 1\n }\n },\n bubble: {\n distance: 250,\n size: 0,\n duration: 2,\n opacity: 0,\n speed: 3\n },\n repulse: {\n distance: 400,\n duration: 0.4\n },\n push: {\n particles_nb: 4\n },\n remove: {\n particles_nb: 2\n }\n }\n },\n retina_detect: true\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (particlesConfig);\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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RTtBQVRGLEtBRks7QUFhYkMsSUFBQUEsS0FBSyxFQUFFO0FBQ0xDLE1BQUFBLElBQUksRUFBRTtBQUNKakIsUUFBQUEsUUFBUSxFQUFFLEdBRE47QUFFSkQsUUFBQUEsV0FBVyxFQUFFO0FBQ1hSLFVBQUFBLE9BQU8sRUFBRTtBQURFO0FBRlQsT0FERDtBQU9MMkIsTUFBQUEsTUFBTSxFQUFFO0FBQ05sQixRQUFBQSxRQUFRLEVBQUUsR0FESjtBQUVOSCxRQUFBQSxJQUFJLEVBQUUsQ0FGQTtBQUdOc0IsUUFBQUEsUUFBUSxFQUFFLENBSEo7QUFJTjVCLFFBQUFBLE9BQU8sRUFBRSxDQUpIO0FBS05HLFFBQUFBLEtBQUssRUFBRTtBQUxELE9BUEg7QUFjTDBCLE1BQUFBLE9BQU8sRUFBRTtBQUNQcEIsUUFBQUEsUUFBUSxFQUFFLEdBREg7QUFFUG1CLFFBQUFBLFFBQVEsRUFBRTtBQUZILE9BZEo7QUFrQkxFLE1BQUFBLElBQUksRUFBRTtBQUNKQyxRQUFBQSxZQUFZLEVBQUU7QUFEVixPQWxCRDtBQXFCTEMsTUFBQUEsTUFBTSxFQUFFO0FBQ05ELFFBQUFBLFlBQVksRUFBRTtBQURSO0FBckJIO0FBYk0sR0FyRU87QUE0R3RCRSxFQUFBQSxhQUFhLEVBQUU7QUE1R08sQ0FBeEI7QUErR0EsK0RBQWVsRCxlQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb25maWcvcGFydGljbGUtY29uZmlnLmpzPzA3OWQiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgcGFydGljbGVzQ29uZmlnID0ge1xyXG4gIHBhcnRpY2xlczoge1xyXG4gICAgbnVtYmVyOiB7XHJcbiAgICAgIHZhbHVlOiAxMzAsXHJcbiAgICAgIGRlbnNpdHk6IHtcclxuICAgICAgICBlbmFibGU6IHRydWUsXHJcbiAgICAgICAgdmFsdWVfYXJlYTogOTAwLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIGNvbG9yOiB7XHJcbiAgICAgIHZhbHVlOiBcIiNmZmZmZmZcIixcclxuICAgIH0sXHJcbiAgICBzaGFwZToge1xyXG4gICAgICB0eXBlOiBcImNpcmNsZVwiLFxyXG4gICAgICBzdHJva2U6IHtcclxuICAgICAgICB3aWR0aDogMCxcclxuICAgICAgICBjb2xvcjogXCIjMDAwMDAwXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIHBvbHlnb246IHtcclxuICAgICAgICBuYl9zaWRlczogNSxcclxuICAgICAgfSxcclxuICAgICAgaW1hZ2U6IHtcclxuICAgICAgICBzcmM6IFwiL2ltZy9naXRodWIuc3ZnXCIsXHJcbiAgICAgICAgd2lkdGg6IDEwMCxcclxuICAgICAgICBoZWlnaHQ6IDEwMCxcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICBvcGFjaXR5OiB7XHJcbiAgICAgIHZhbHVlOiAwLjIsXHJcbiAgICAgIHJhbmRvbTogdHJ1ZSxcclxuICAgICAgYW5pbToge1xyXG4gICAgICAgIGVuYWJsZTogdHJ1ZSxcclxuICAgICAgICBzcGVlZDogMSxcclxuICAgICAgICBvcGFjaXR5X21pbjogMC4zLFxyXG4gICAgICAgIHN5bmM6IGZhbHNlLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIHNpemU6IHtcclxuICAgICAgdmFsdWU6IDEuOCxcclxuICAgICAgcmFuZG9tOiB0cnVlLFxyXG4gICAgICBhbmltOiB7XHJcbiAgICAgICAgZW5hYmxlOiBmYWxzZSxcclxuICAgICAgICBzcGVlZDogNCxcclxuICAgICAgICBzaXplX21pbjogMC40LFxyXG4gICAgICAgIHN5bmM6IGZhbHNlLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIGxpbmVfbGlua2VkOiB7XHJcbiAgICAgIGVuYWJsZTogZmFsc2UsXHJcbiAgICAgIGRpc3RhbmNlOiAxNTAsXHJcbiAgICAgIGNvbG9yOiBcIiNmZmZmZmZcIixcclxuICAgICAgb3BhY2l0eTogMC40LFxyXG4gICAgICB3aWR0aDogMSxcclxuICAgIH0sXHJcbiAgICBtb3ZlOiB7XHJcbiAgICAgIGVuYWJsZTogdHJ1ZSxcclxuICAgICAgc3BlZWQ6IDEsXHJcbiAgICAgIGRpcmVjdGlvbjogXCJub25lXCIsXHJcbiAgICAgIHJhbmRvbTogdHJ1ZSxcclxuICAgICAgc3RyYWlnaHQ6IGZhbHNlLFxyXG4gICAgICBvdXRfbW9kZTogXCJvdXRcIixcclxuICAgICAgYm91bmNlOiBmYWxzZSxcclxuICAgICAgYXR0cmFjdDoge1xyXG4gICAgICAgIGVuYWJsZTogZmFsc2UsXHJcbiAgICAgICAgcm90YXRlWDogNjAwLFxyXG4gICAgICAgIHJvdGF0ZVk6IDYwMCxcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgfSxcclxuICBpbnRlcmFjdGl2aXR5OiB7XHJcbiAgICBkZXRlY3Rfb246IFwiY2FudmFzXCIsXHJcbiAgICBldmVudHM6IHtcclxuICAgICAgb25ob3Zlcjoge1xyXG4gICAgICAgIGVuYWJsZTogdHJ1ZSxcclxuICAgICAgICBtb2RlOiBcImJ1YmJsZVwiLFxyXG4gICAgICB9LFxyXG4gICAgICBvbmNsaWNrOiB7XHJcbiAgICAgICAgZW5hYmxlOiB0cnVlLFxyXG4gICAgICAgIG1vZGU6IFwicmVwdWxzZVwiLFxyXG4gICAgICB9LFxyXG4gICAgICByZXNpemU6IHRydWUsXHJcbiAgICB9LFxyXG4gICAgbW9kZXM6IHtcclxuICAgICAgZ3JhYjoge1xyXG4gICAgICAgIGRpc3RhbmNlOiA0MDAsXHJcbiAgICAgICAgbGluZV9saW5rZWQ6IHtcclxuICAgICAgICAgIG9wYWNpdHk6IDEsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgYnViYmxlOiB7XHJcbiAgICAgICAgZGlzdGFuY2U6IDI1MCxcclxuICAgICAgICBzaXplOiAwLFxyXG4gICAgICAgIGR1cmF0aW9uOiAyLFxyXG4gICAgICAgIG9wYWNpdHk6IDAsXHJcbiAgICAgICAgc3BlZWQ6IDMsXHJcbiAgICAgIH0sXHJcbiAgICAgIHJlcHVsc2U6IHtcclxuICAgICAgICBkaXN0YW5jZTogNDAwLFxyXG4gICAgICAgIGR1cmF0aW9uOiAwLjQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHB1c2g6IHtcclxuICAgICAgICBwYXJ0aWNsZXNfbmI6IDQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHJlbW92ZToge1xyXG4gICAgICAgIHBhcnRpY2xlc19uYjogMixcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgfSxcclxuICByZXRpbmFfZGV0ZWN0OiB0cnVlLFxyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgcGFydGljbGVzQ29uZmlnO1xyXG4iXSwibmFtZXMiOlsicGFydGljbGVzQ29uZmlnIiwicGFydGljbGVzIiwibnVtYmVyIiwidmFsdWUiLCJkZW5zaXR5IiwiZW5hYmxlIiwidmFsdWVfYXJlYSIsImNvbG9yIiwic2hhcGUiLCJ0eXBlIiwic3Ryb2tlIiwid2lkdGgiLCJwb2x5Z29uIiwibmJfc2lkZXMiLCJpbWFnZSIsInNyYyIsImhlaWdodCIsIm9wYWNpdHkiLCJyYW5kb20iLCJhbmltIiwic3BlZWQiLCJvcGFjaXR5X21pbiIsInN5bmMiLCJzaXplIiwic2l6ZV9taW4iLCJsaW5lX2xpbmtlZCIsImRpc3RhbmNlIiwibW92ZSIsImRpcmVjdGlvbiIsInN0cmFpZ2h0Iiwib3V0X21vZGUiLCJib3VuY2UiLCJhdHRyYWN0Iiwicm90YXRlWCIsInJvdGF0ZVkiLCJpbnRlcmFjdGl2aXR5IiwiZGV0ZWN0X29uIiwiZXZlbnRzIiwib25ob3ZlciIsIm1vZGUiLCJvbmNsaWNrIiwicmVzaXplIiwibW9kZXMiLCJncmFiIiwiYnViYmxlIiwiZHVyYXRpb24iLCJyZXB1bHNlIiwicHVzaCIsInBhcnRpY2xlc19uYiIsInJlbW92ZSIsInJldGluYV9kZXRlY3QiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/config/particle-config.js\n"); + +/***/ }), + +/***/ "./src/config/pr-s-black.js": +/*!**********************************!*\ + !*** ./src/config/pr-s-black.js ***! + \**********************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar particlesBlackConfig = {\n particles: {\n number: {\n value: 130,\n density: {\n enable: true,\n value_area: 900\n }\n },\n color: {\n value: \"#000000\"\n },\n shape: {\n type: \"circle\",\n stroke: {\n width: 0,\n color: \"#000000\"\n },\n polygon: {\n nb_sides: 5\n },\n image: {\n src: \"/img/github.svg\",\n width: 100,\n height: 100\n }\n },\n opacity: {\n value: 0.2,\n random: true,\n anim: {\n enable: true,\n speed: 1,\n opacity_min: 0.3,\n sync: false\n }\n },\n size: {\n value: 1.8,\n random: true,\n anim: {\n enable: false,\n speed: 4,\n size_min: 0.4,\n sync: false\n }\n },\n line_linked: {\n enable: false,\n distance: 150,\n color: \"#ffffff\",\n opacity: 0.4,\n width: 1\n },\n move: {\n enable: true,\n speed: 1,\n direction: \"none\",\n random: true,\n straight: false,\n out_mode: \"out\",\n bounce: false,\n attract: {\n enable: false,\n rotateX: 600,\n rotateY: 600\n }\n }\n },\n interactivity: {\n detect_on: \"canvas\",\n events: {\n onhover: {\n enable: true,\n mode: \"bubble\"\n },\n onclick: {\n enable: true,\n mode: \"repulse\"\n },\n resize: true\n },\n modes: {\n grab: {\n distance: 400,\n line_linked: {\n opacity: 1\n }\n },\n bubble: {\n distance: 250,\n size: 0,\n duration: 2,\n opacity: 0,\n speed: 3\n },\n repulse: {\n distance: 400,\n duration: 0.4\n },\n push: {\n particles_nb: 4\n },\n remove: {\n particles_nb: 2\n }\n }\n },\n retina_detect: true\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (particlesBlackConfig);\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFURixLQUZLO0FBYWJDLElBQUFBLEtBQUssRUFBRTtBQUNMQyxNQUFBQSxJQUFJLEVBQUU7QUFDSmpCLFFBQUFBLFFBQVEsRUFBRSxHQUROO0FBRUpELFFBQUFBLFdBQVcsRUFBRTtBQUNYUixVQUFBQSxPQUFPLEVBQUU7QUFERTtBQUZULE9BREQ7QUFPTDJCLE1BQUFBLE1BQU0sRUFBRTtBQUNObEIsUUFBQUEsUUFBUSxFQUFFLEdBREo7QUFFTkgsUUFBQUEsSUFBSSxFQUFFLENBRkE7QUFHTnNCLFFBQUFBLFFBQVEsRUFBRSxDQUhKO0FBSU41QixRQUFBQSxPQUFPLEVBQUUsQ0FKSDtBQUtORyxRQUFBQSxLQUFLLEVBQUU7QUFMRCxPQVBIO0FBY0wwQixNQUFBQSxPQUFPLEVBQUU7QUFDUHBCLFFBQUFBLFFBQVEsRUFBRSxHQURIO0FBRVBtQixRQUFBQSxRQUFRLEVBQUU7QUFGSCxPQWRKO0FBa0JMRSxNQUFBQSxJQUFJLEVBQUU7QUFDSkMsUUFBQUEsWUFBWSxFQUFFO0FBRFYsT0FsQkQ7QUFxQkxDLE1BQUFBLE1BQU0sRUFBRTtBQUNORCxRQUFBQSxZQUFZLEVBQUU7QUFEUjtBQXJCSDtBQWJNLEdBckVZO0FBNEczQkUsRUFBQUEsYUFBYSxFQUFFO0FBNUdZLENBQTdCO0FBK0dBLCtEQUFlbEQsb0JBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbmZpZy9wci1zLWJsYWNrLmpzP2MyMDgiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgcGFydGljbGVzQmxhY2tDb25maWcgPSB7XHJcbiAgcGFydGljbGVzOiB7XHJcbiAgICBudW1iZXI6IHtcclxuICAgICAgdmFsdWU6IDEzMCxcclxuICAgICAgZGVuc2l0eToge1xyXG4gICAgICAgIGVuYWJsZTogdHJ1ZSxcclxuICAgICAgICB2YWx1ZV9hcmVhOiA5MDAsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgY29sb3I6IHtcclxuICAgICAgdmFsdWU6IFwiIzAwMDAwMFwiLFxyXG4gICAgfSxcclxuICAgIHNoYXBlOiB7XHJcbiAgICAgIHR5cGU6IFwiY2lyY2xlXCIsXHJcbiAgICAgIHN0cm9rZToge1xyXG4gICAgICAgIHdpZHRoOiAwLFxyXG4gICAgICAgIGNvbG9yOiBcIiMwMDAwMDBcIixcclxuICAgICAgfSxcclxuICAgICAgcG9seWdvbjoge1xyXG4gICAgICAgIG5iX3NpZGVzOiA1LFxyXG4gICAgICB9LFxyXG4gICAgICBpbWFnZToge1xyXG4gICAgICAgIHNyYzogXCIvaW1nL2dpdGh1Yi5zdmdcIixcclxuICAgICAgICB3aWR0aDogMTAwLFxyXG4gICAgICAgIGhlaWdodDogMTAwLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIG9wYWNpdHk6IHtcclxuICAgICAgdmFsdWU6IDAuMixcclxuICAgICAgcmFuZG9tOiB0cnVlLFxyXG4gICAgICBhbmltOiB7XHJcbiAgICAgICAgZW5hYmxlOiB0cnVlLFxyXG4gICAgICAgIHNwZWVkOiAxLFxyXG4gICAgICAgIG9wYWNpdHlfbWluOiAwLjMsXHJcbiAgICAgICAgc3luYzogZmFsc2UsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgc2l6ZToge1xyXG4gICAgICB2YWx1ZTogMS44LFxyXG4gICAgICByYW5kb206IHRydWUsXHJcbiAgICAgIGFuaW06IHtcclxuICAgICAgICBlbmFibGU6IGZhbHNlLFxyXG4gICAgICAgIHNwZWVkOiA0LFxyXG4gICAgICAgIHNpemVfbWluOiAwLjQsXHJcbiAgICAgICAgc3luYzogZmFsc2UsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgbGluZV9saW5rZWQ6IHtcclxuICAgICAgZW5hYmxlOiBmYWxzZSxcclxuICAgICAgZGlzdGFuY2U6IDE1MCxcclxuICAgICAgY29sb3I6IFwiI2ZmZmZmZlwiLFxyXG4gICAgICBvcGFjaXR5OiAwLjQsXHJcbiAgICAgIHdpZHRoOiAxLFxyXG4gICAgfSxcclxuICAgIG1vdmU6IHtcclxuICAgICAgZW5hYmxlOiB0cnVlLFxyXG4gICAgICBzcGVlZDogMSxcclxuICAgICAgZGlyZWN0aW9uOiBcIm5vbmVcIixcclxuICAgICAgcmFuZG9tOiB0cnVlLFxyXG4gICAgICBzdHJhaWdodDogZmFsc2UsXHJcbiAgICAgIG91dF9tb2RlOiBcIm91dFwiLFxyXG4gICAgICBib3VuY2U6IGZhbHNlLFxyXG4gICAgICBhdHRyYWN0OiB7XHJcbiAgICAgICAgZW5hYmxlOiBmYWxzZSxcclxuICAgICAgICByb3RhdGVYOiA2MDAsXHJcbiAgICAgICAgcm90YXRlWTogNjAwLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICB9LFxyXG4gIGludGVyYWN0aXZpdHk6IHtcclxuICAgIGRldGVjdF9vbjogXCJjYW52YXNcIixcclxuICAgIGV2ZW50czoge1xyXG4gICAgICBvbmhvdmVyOiB7XHJcbiAgICAgICAgZW5hYmxlOiB0cnVlLFxyXG4gICAgICAgIG1vZGU6IFwiYnViYmxlXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIG9uY2xpY2s6IHtcclxuICAgICAgICBlbmFibGU6IHRydWUsXHJcbiAgICAgICAgbW9kZTogXCJyZXB1bHNlXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIHJlc2l6ZTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBtb2Rlczoge1xyXG4gICAgICBncmFiOiB7XHJcbiAgICAgICAgZGlzdGFuY2U6IDQwMCxcclxuICAgICAgICBsaW5lX2xpbmtlZDoge1xyXG4gICAgICAgICAgb3BhY2l0eTogMSxcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBidWJibGU6IHtcclxuICAgICAgICBkaXN0YW5jZTogMjUwLFxyXG4gICAgICAgIHNpemU6IDAsXHJcbiAgICAgICAgZHVyYXRpb246IDIsXHJcbiAgICAgICAgb3BhY2l0eTogMCxcclxuICAgICAgICBzcGVlZDogMyxcclxuICAgICAgfSxcclxuICAgICAgcmVwdWxzZToge1xyXG4gICAgICAgIGRpc3RhbmNlOiA0MDAsXHJcbiAgICAgICAgZHVyYXRpb246IDAuNCxcclxuICAgICAgfSxcclxuICAgICAgcHVzaDoge1xyXG4gICAgICAgIHBhcnRpY2xlc19uYjogNCxcclxuICAgICAgfSxcclxuICAgICAgcmVtb3ZlOiB7XHJcbiAgICAgICAgcGFydGljbGVzX25iOiAyLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICB9LFxyXG4gIHJldGluYV9kZXRlY3Q6IHRydWUsXHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBwYXJ0aWNsZXNCbGFja0NvbmZpZyJdLCJuYW1lcyI6WyJwYXJ0aWNsZXNCbGFja0NvbmZpZyIsInBhcnRpY2xlcyIsIm51bWJlciIsInZhbHVlIiwiZGVuc2l0eSIsImVuYWJsZSIsInZhbHVlX2FyZWEiLCJjb2xvciIsInNoYXBlIiwidHlwZSIsInN0cm9rZSIsIndpZHRoIiwicG9seWdvbiIsIm5iX3NpZGVzIiwiaW1hZ2UiLCJzcmMiLCJoZWlnaHQiLCJvcGFjaXR5IiwicmFuZG9tIiwiYW5pbSIsInNwZWVkIiwib3BhY2l0eV9taW4iLCJzeW5jIiwic2l6ZSIsInNpemVfbWluIiwibGluZV9saW5rZWQiLCJkaXN0YW5jZSIsIm1vdmUiLCJkaXJlY3Rpb24iLCJzdHJhaWdodCIsIm91dF9tb2RlIiwiYm91bmNlIiwiYXR0cmFjdCIsInJvdGF0ZVgiLCJyb3RhdGVZIiwiaW50ZXJhY3Rpdml0eSIsImRldGVjdF9vbiIsImV2ZW50cyIsIm9uaG92ZXIiLCJtb2RlIiwib25jbGljayIsInJlc2l6ZSIsIm1vZGVzIiwiZ3JhYiIsImJ1YmJsZSIsImR1cmF0aW9uIiwicmVwdWxzZSIsInB1c2giLCJwYXJ0aWNsZXNfbmIiLCJyZW1vdmUiLCJyZXRpbmFfZGV0ZWN0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/config/pr-s-black.js\n"); + +/***/ }), + +/***/ "./src/layouts/Light.jsx": +/*!*******************************!*\ + !*** ./src/layouts/Light.jsx ***! + \*******************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/head */ \"./node_modules/next/head.js\");\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_head__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\layouts\\\\Light.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n/* eslint-disable @next/next/no-css-tags */\n\n\n\n\n\nvar LightTheme = function LightTheme(_ref) {\n _s();\n\n var children = _ref.children,\n mobileappstyle = _ref.mobileappstyle;\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n window.theme = \"light\";\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)((next_head__WEBPACK_IMPORTED_MODULE_1___default()), {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"link\", {\n rel: \"stylesheet\",\n href: \"/css/light.css\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 9\n }, _this), mobileappstyle ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"link\", {\n href: \"/css/mobile-app-light.css\",\n rel: \"stylesheet\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 28\n }, _this) : null]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 7\n }, _this), children]\n }, void 0, true);\n};\n\n_s(LightTheme, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = LightTheme;\n/* harmony default export */ __webpack_exports__[\"default\"] = (LightTheme);\n\nvar _c;\n\n$RefreshReg$(_c, \"LightTheme\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvbGF5b3V0cy9MaWdodC5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBOzs7O0FBRUEsSUFBTUUsVUFBVSxHQUFHLFNBQWJBLFVBQWEsT0FBa0M7QUFBQTs7QUFBQSxNQUEvQkMsUUFBK0IsUUFBL0JBLFFBQStCO0FBQUEsTUFBckJDLGNBQXFCLFFBQXJCQSxjQUFxQjtBQUNuREosRUFBQUEsc0RBQUEsQ0FBZ0IsWUFBTTtBQUNwQk0sSUFBQUEsTUFBTSxDQUFDQyxLQUFQLEdBQWUsT0FBZjtBQUNELEdBRkQsRUFFRyxFQUZIO0FBR0Esc0JBQ0U7QUFBQSw0QkFDRSw4REFBQyxrREFBRDtBQUFBLDhCQUNFO0FBQU0sV0FBRyxFQUFDLFlBQVY7QUFBdUIsWUFBSSxFQUFDO0FBQTVCO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFERixFQUVHSCxjQUFjLGdCQUFJO0FBQU0sWUFBSSxFQUFDLDJCQUFYO0FBQXVDLFdBQUcsRUFBQztBQUEzQztBQUFBO0FBQUE7QUFBQTtBQUFBLGVBQUosR0FBbUUsSUFGcEY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBREYsRUFLR0QsUUFMSDtBQUFBLGtCQURGO0FBU0QsQ0FiRDs7R0FBTUQ7O0tBQUFBO0FBZU4sK0RBQWVBLFVBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2xheW91dHMvTGlnaHQuanN4PzM5YzIiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1jc3MtdGFncyAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBIZWFkIGZyb20gXCJuZXh0L2hlYWRcIjtcclxuXHJcbmNvbnN0IExpZ2h0VGhlbWUgPSAoeyBjaGlsZHJlbiwgbW9iaWxlYXBwc3R5bGUgfSkgPT4ge1xyXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICB3aW5kb3cudGhlbWUgPSBcImxpZ2h0XCI7XHJcbiAgfSwgW10pO1xyXG4gIHJldHVybiAoXHJcbiAgICA8PlxyXG4gICAgICA8SGVhZD5cclxuICAgICAgICA8bGluayByZWw9XCJzdHlsZXNoZWV0XCIgaHJlZj1cIi9jc3MvbGlnaHQuY3NzXCIgLz5cclxuICAgICAgICB7bW9iaWxlYXBwc3R5bGUgPyAoPGxpbmsgaHJlZj1cIi9jc3MvbW9iaWxlLWFwcC1saWdodC5jc3NcIiByZWw9XCJzdHlsZXNoZWV0XCIgLz4pIDogKG51bGwpfVxyXG4gICAgICA8L0hlYWQ+XHJcbiAgICAgIHtjaGlsZHJlbn1cclxuICAgIDwvPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBMaWdodFRoZW1lO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJIZWFkIiwiTGlnaHRUaGVtZSIsImNoaWxkcmVuIiwibW9iaWxlYXBwc3R5bGUiLCJ1c2VFZmZlY3QiLCJ3aW5kb3ciLCJ0aGVtZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/layouts/Light.jsx\n"); + +/***/ }), + +/***/ "./src/pages/contact/contact-light.jsx": +/*!*********************************************!*\ + !*** ./src/pages/contact/contact-light.jsx ***! + \*********************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _components_Navbar_navbar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../components/Navbar/navbar */ \"./src/components/Navbar/navbar.jsx\");\n/* harmony import */ var _components_Footer_footer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../components/Footer/footer */ \"./src/components/Footer/footer.jsx\");\n/* harmony import */ var _layouts_Light__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../layouts/Light */ \"./src/layouts/Light.jsx\");\n/* harmony import */ var _components_Contact_header_contact_header__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../components/Contact-header/contact-header */ \"./src/components/Contact-header/contact-header.jsx\");\n/* harmony import */ var _components_Contact_form_contact_form__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../components/Contact-form/contact-form */ \"./src/components/Contact-form/contact-form.jsx\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\pages\\\\contact\\\\contact-light.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n/* eslint-disable @next/next/no-sync-scripts */\n\n\n\n\n\n\n\n\nvar Contact = function Contact() {\n _s();\n\n var navbarRef = react__WEBPACK_IMPORTED_MODULE_0___default().useRef(null);\n var logoRef = react__WEBPACK_IMPORTED_MODULE_0___default().useRef(null);\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n document.querySelector(\"body\").classList.add(\"contact-page\");\n var navbar = navbarRef.current,\n logo = logoRef.current;\n\n if (window.pageYOffset > 300) {\n navbar.classList.add(\"nav-scroll\");\n } else {\n navbar.classList.remove(\"nav-scroll\");\n }\n\n window.addEventListener(\"scroll\", function () {\n if (window.pageYOffset > 300) {\n navbar.classList.add(\"nav-scroll\");\n } else {\n navbar.classList.remove(\"nav-scroll\");\n }\n });\n return function () {\n document.querySelector(\"body\").classList.remove(\"contact-page\");\n };\n }, [navbarRef]);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(_layouts_Light__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(_components_Navbar_navbar__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n nr: navbarRef,\n lr: logoRef,\n theme: \"themeL\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(_components_Contact_header_contact_header__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n blackStar: true\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"main-content\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(_components_Contact_form_contact_form__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(_components_Footer_footer__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n hideBGCOLOR: true\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 9\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 5\n }, _this);\n};\n\n_s(Contact, \"NJv/rvX5fPwWhnPtkwq0tuwt7xI=\");\n\n_c = Contact;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Contact);\n\nvar _c;\n\n$RefreshReg$(_c, \"Contact\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvcGFnZXMvY29udGFjdC9jb250YWN0LWxpZ2h0LmpzeC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsSUFBTU0sT0FBTyxHQUFHLFNBQVZBLE9BQVUsR0FBTTtBQUFBOztBQUNwQixNQUFNQyxTQUFTLEdBQUdQLG1EQUFBLENBQWEsSUFBYixDQUFsQjtBQUNBLE1BQU1TLE9BQU8sR0FBR1QsbURBQUEsQ0FBYSxJQUFiLENBQWhCO0FBRUFBLEVBQUFBLHNEQUFBLENBQWdCLFlBQU07QUFDcEJXLElBQUFBLFFBQVEsQ0FBQ0MsYUFBVCxDQUF1QixNQUF2QixFQUErQkMsU0FBL0IsQ0FBeUNDLEdBQXpDLENBQTZDLGNBQTdDO0FBQ0EsUUFBSUMsTUFBTSxHQUFHUixTQUFTLENBQUNTLE9BQXZCO0FBQUEsUUFDRUMsSUFBSSxHQUFHUixPQUFPLENBQUNPLE9BRGpCOztBQUVBLFFBQUlFLE1BQU0sQ0FBQ0MsV0FBUCxHQUFxQixHQUF6QixFQUE4QjtBQUM1QkosTUFBQUEsTUFBTSxDQUFDRixTQUFQLENBQWlCQyxHQUFqQixDQUFxQixZQUFyQjtBQUNELEtBRkQsTUFFTztBQUNMQyxNQUFBQSxNQUFNLENBQUNGLFNBQVAsQ0FBaUJPLE1BQWpCLENBQXdCLFlBQXhCO0FBQ0Q7O0FBQ0RGLElBQUFBLE1BQU0sQ0FBQ0csZ0JBQVAsQ0FBd0IsUUFBeEIsRUFBa0MsWUFBTTtBQUN0QyxVQUFJSCxNQUFNLENBQUNDLFdBQVAsR0FBcUIsR0FBekIsRUFBOEI7QUFDNUJKLFFBQUFBLE1BQU0sQ0FBQ0YsU0FBUCxDQUFpQkMsR0FBakIsQ0FBcUIsWUFBckI7QUFDRCxPQUZELE1BRU87QUFDTEMsUUFBQUEsTUFBTSxDQUFDRixTQUFQLENBQWlCTyxNQUFqQixDQUF3QixZQUF4QjtBQUNEO0FBQ0YsS0FORDtBQU9BLFdBQU8sWUFBTTtBQUNYVCxNQUFBQSxRQUFRLENBQUNDLGFBQVQsQ0FBdUIsTUFBdkIsRUFBK0JDLFNBQS9CLENBQXlDTyxNQUF6QyxDQUFnRCxjQUFoRDtBQUNELEtBRkQ7QUFHRCxHQW5CRCxFQW1CRyxDQUFDYixTQUFELENBbkJIO0FBcUJBLHNCQUNFLDhEQUFDLHNEQUFEO0FBQUEsNEJBQ0UsOERBQUMsaUVBQUQ7QUFBUSxRQUFFLEVBQUVBLFNBQVo7QUFBdUIsUUFBRSxFQUFFRSxPQUEzQjtBQUFvQyxXQUFLLEVBQUM7QUFBMUM7QUFBQTtBQUFBO0FBQUE7QUFBQSxhQURGLGVBRUUsOERBQUMsaUZBQUQ7QUFBZSxlQUFTO0FBQXhCO0FBQUE7QUFBQTtBQUFBO0FBQUEsYUFGRixlQUdFO0FBQUssZUFBUyxFQUFDLGNBQWY7QUFBQSw4QkFDRSw4REFBQyw2RUFBRDtBQUFBO0FBQUE7QUFBQTtBQUFBLGVBREYsZUFRRSw4REFBQyxpRUFBRDtBQUFRLG1CQUFXO0FBQW5CO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFSRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsYUFIRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsV0FERjtBQWdCRCxDQXpDRDs7R0FBTUg7O0tBQUFBO0FBMkNOLCtEQUFlQSxPQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9wYWdlcy9jb250YWN0L2NvbnRhY3QtbGlnaHQuanN4Pzk1MmIiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1zeW5jLXNjcmlwdHMgKi9cclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgTmF2YmFyIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL05hdmJhci9uYXZiYXJcIjtcclxuaW1wb3J0IEZvb3RlciBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9Gb290ZXIvZm9vdGVyXCI7XHJcbmltcG9ydCBMaWdodFRoZW1lIGZyb20gXCIuLi8uLi9sYXlvdXRzL0xpZ2h0XCI7XHJcbmltcG9ydCBDb250YWN0SGVhZGVyIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL0NvbnRhY3QtaGVhZGVyL2NvbnRhY3QtaGVhZGVyXCI7XHJcbmltcG9ydCBDb250YWN0Rm9ybSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9Db250YWN0LWZvcm0vY29udGFjdC1mb3JtXCI7XHJcblxyXG5jb25zdCBDb250YWN0ID0gKCkgPT4ge1xyXG4gIGNvbnN0IG5hdmJhclJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcclxuICBjb25zdCBsb2dvUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xyXG5cclxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcImJvZHlcIikuY2xhc3NMaXN0LmFkZChcImNvbnRhY3QtcGFnZVwiKTtcclxuICAgIHZhciBuYXZiYXIgPSBuYXZiYXJSZWYuY3VycmVudCxcclxuICAgICAgbG9nbyA9IGxvZ29SZWYuY3VycmVudDtcclxuICAgIGlmICh3aW5kb3cucGFnZVlPZmZzZXQgPiAzMDApIHtcclxuICAgICAgbmF2YmFyLmNsYXNzTGlzdC5hZGQoXCJuYXYtc2Nyb2xsXCIpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbmF2YmFyLmNsYXNzTGlzdC5yZW1vdmUoXCJuYXYtc2Nyb2xsXCIpO1xyXG4gICAgfVxyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgKCkgPT4ge1xyXG4gICAgICBpZiAod2luZG93LnBhZ2VZT2Zmc2V0ID4gMzAwKSB7XHJcbiAgICAgICAgbmF2YmFyLmNsYXNzTGlzdC5hZGQoXCJuYXYtc2Nyb2xsXCIpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG5hdmJhci5jbGFzc0xpc3QucmVtb3ZlKFwibmF2LXNjcm9sbFwiKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiYm9keVwiKS5jbGFzc0xpc3QucmVtb3ZlKFwiY29udGFjdC1wYWdlXCIpO1xyXG4gICAgfTtcclxuICB9LCBbbmF2YmFyUmVmXSk7XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8TGlnaHRUaGVtZT5cclxuICAgICAgPE5hdmJhciBucj17bmF2YmFyUmVmfSBscj17bG9nb1JlZn0gdGhlbWU9XCJ0aGVtZUxcIiAvPlxyXG4gICAgICA8Q29udGFjdEhlYWRlciBibGFja1N0YXIgLz5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYWluLWNvbnRlbnRcIj5cclxuICAgICAgICA8Q29udGFjdEZvcm0gLz5cclxuICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJtYXBcIiBpZD1cImllYXRtYXBzXCI+XHJcbiAgICAgICAgICA8aWZyYW1lXHJcbiAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vbWFwcy5hcHAuZ29vLmdsL2c2OUo5RFRLUmZqS0U5VkM5XCJcclxuICAgICAgICAgICAgbG9hZGluZz1cImxhenlcIlxyXG4gICAgICAgICAgPjwvaWZyYW1lPlxyXG4gICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICA8Rm9vdGVyIGhpZGVCR0NPTE9SIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9MaWdodFRoZW1lPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBDb250YWN0O1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJOYXZiYXIiLCJGb290ZXIiLCJMaWdodFRoZW1lIiwiQ29udGFjdEhlYWRlciIsIkNvbnRhY3RGb3JtIiwiQ29udGFjdCIsIm5hdmJhclJlZiIsInVzZVJlZiIsImxvZ29SZWYiLCJ1c2VFZmZlY3QiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJjbGFzc0xpc3QiLCJhZGQiLCJuYXZiYXIiLCJjdXJyZW50IiwibG9nbyIsIndpbmRvdyIsInBhZ2VZT2Zmc2V0IiwicmVtb3ZlIiwiYWRkRXZlbnRMaXN0ZW5lciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/pages/contact/contact-light.jsx\n"); + +/***/ }), + +/***/ "./node_modules/deepmerge/dist/es.js": +/*!*******************************************!*\ + !*** ./node_modules/deepmerge/dist/es.js ***! + \*******************************************/ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tObject.keys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tObject.keys(source).forEach(function(key) {\n\t\tif (!options.isMergeableObject(source[key]) || !target[key]) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = deepmerge(target[key], source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (deepmerge_1);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvZGVlcG1lcmdlL2Rpc3QvZXMuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsRUFBRSxJQUFJO0FBQ047O0FBRUE7O0FBRUEsK0RBQWUsV0FBVyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9kZWVwbWVyZ2UvZGlzdC9lcy5qcz9hNzM4Il0sInNvdXJjZXNDb250ZW50IjpbInZhciBpc01lcmdlYWJsZU9iamVjdCA9IGZ1bmN0aW9uIGlzTWVyZ2VhYmxlT2JqZWN0KHZhbHVlKSB7XG5cdHJldHVybiBpc05vbk51bGxPYmplY3QodmFsdWUpXG5cdFx0JiYgIWlzU3BlY2lhbCh2YWx1ZSlcbn07XG5cbmZ1bmN0aW9uIGlzTm9uTnVsbE9iamVjdCh2YWx1ZSkge1xuXHRyZXR1cm4gISF2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnXG59XG5cbmZ1bmN0aW9uIGlzU3BlY2lhbCh2YWx1ZSkge1xuXHR2YXIgc3RyaW5nVmFsdWUgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpO1xuXG5cdHJldHVybiBzdHJpbmdWYWx1ZSA9PT0gJ1tvYmplY3QgUmVnRXhwXSdcblx0XHR8fCBzdHJpbmdWYWx1ZSA9PT0gJ1tvYmplY3QgRGF0ZV0nXG5cdFx0fHwgaXNSZWFjdEVsZW1lbnQodmFsdWUpXG59XG5cbi8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvYmxvYi9iNWFjOTYzZmI3OTFkMTI5OGU3ZjM5NjIzNjM4M2JjOTU1ZjkxNmMxL3NyYy9pc29tb3JwaGljL2NsYXNzaWMvZWxlbWVudC9SZWFjdEVsZW1lbnQuanMjTDIxLUwyNVxudmFyIGNhblVzZVN5bWJvbCA9IHR5cGVvZiBTeW1ib2wgPT09ICdmdW5jdGlvbicgJiYgU3ltYm9sLmZvcjtcbnZhciBSRUFDVF9FTEVNRU5UX1RZUEUgPSBjYW5Vc2VTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5lbGVtZW50JykgOiAweGVhYzc7XG5cbmZ1bmN0aW9uIGlzUmVhY3RFbGVtZW50KHZhbHVlKSB7XG5cdHJldHVybiB2YWx1ZS4kJHR5cGVvZiA9PT0gUkVBQ1RfRUxFTUVOVF9UWVBFXG59XG5cbmZ1bmN0aW9uIGVtcHR5VGFyZ2V0KHZhbCkge1xuXHRyZXR1cm4gQXJyYXkuaXNBcnJheSh2YWwpID8gW10gOiB7fVxufVxuXG5mdW5jdGlvbiBjbG9uZVVubGVzc090aGVyd2lzZVNwZWNpZmllZCh2YWx1ZSwgb3B0aW9ucykge1xuXHRyZXR1cm4gKG9wdGlvbnMuY2xvbmUgIT09IGZhbHNlICYmIG9wdGlvbnMuaXNNZXJnZWFibGVPYmplY3QodmFsdWUpKVxuXHRcdD8gZGVlcG1lcmdlKGVtcHR5VGFyZ2V0KHZhbHVlKSwgdmFsdWUsIG9wdGlvbnMpXG5cdFx0OiB2YWx1ZVxufVxuXG5mdW5jdGlvbiBkZWZhdWx0QXJyYXlNZXJnZSh0YXJnZXQsIHNvdXJjZSwgb3B0aW9ucykge1xuXHRyZXR1cm4gdGFyZ2V0LmNvbmNhdChzb3VyY2UpLm1hcChmdW5jdGlvbihlbGVtZW50KSB7XG5cdFx0cmV0dXJuIGNsb25lVW5sZXNzT3RoZXJ3aXNlU3BlY2lmaWVkKGVsZW1lbnQsIG9wdGlvbnMpXG5cdH0pXG59XG5cbmZ1bmN0aW9uIG1lcmdlT2JqZWN0KHRhcmdldCwgc291cmNlLCBvcHRpb25zKSB7XG5cdHZhciBkZXN0aW5hdGlvbiA9IHt9O1xuXHRpZiAob3B0aW9ucy5pc01lcmdlYWJsZU9iamVjdCh0YXJnZXQpKSB7XG5cdFx0T2JqZWN0LmtleXModGFyZ2V0KS5mb3JFYWNoKGZ1bmN0aW9uKGtleSkge1xuXHRcdFx0ZGVzdGluYXRpb25ba2V5XSA9IGNsb25lVW5sZXNzT3RoZXJ3aXNlU3BlY2lmaWVkKHRhcmdldFtrZXldLCBvcHRpb25zKTtcblx0XHR9KTtcblx0fVxuXHRPYmplY3Qua2V5cyhzb3VyY2UpLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7XG5cdFx0aWYgKCFvcHRpb25zLmlzTWVyZ2VhYmxlT2JqZWN0KHNvdXJjZVtrZXldKSB8fCAhdGFyZ2V0W2tleV0pIHtcblx0XHRcdGRlc3RpbmF0aW9uW2tleV0gPSBjbG9uZVVubGVzc090aGVyd2lzZVNwZWNpZmllZChzb3VyY2Vba2V5XSwgb3B0aW9ucyk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGRlc3RpbmF0aW9uW2tleV0gPSBkZWVwbWVyZ2UodGFyZ2V0W2tleV0sIHNvdXJjZVtrZXldLCBvcHRpb25zKTtcblx0XHR9XG5cdH0pO1xuXHRyZXR1cm4gZGVzdGluYXRpb25cbn1cblxuZnVuY3Rpb24gZGVlcG1lcmdlKHRhcmdldCwgc291cmNlLCBvcHRpb25zKSB7XG5cdG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuXHRvcHRpb25zLmFycmF5TWVyZ2UgPSBvcHRpb25zLmFycmF5TWVyZ2UgfHwgZGVmYXVsdEFycmF5TWVyZ2U7XG5cdG9wdGlvbnMuaXNNZXJnZWFibGVPYmplY3QgPSBvcHRpb25zLmlzTWVyZ2VhYmxlT2JqZWN0IHx8IGlzTWVyZ2VhYmxlT2JqZWN0O1xuXG5cdHZhciBzb3VyY2VJc0FycmF5ID0gQXJyYXkuaXNBcnJheShzb3VyY2UpO1xuXHR2YXIgdGFyZ2V0SXNBcnJheSA9IEFycmF5LmlzQXJyYXkodGFyZ2V0KTtcblx0dmFyIHNvdXJjZUFuZFRhcmdldFR5cGVzTWF0Y2ggPSBzb3VyY2VJc0FycmF5ID09PSB0YXJnZXRJc0FycmF5O1xuXG5cdGlmICghc291cmNlQW5kVGFyZ2V0VHlwZXNNYXRjaCkge1xuXHRcdHJldHVybiBjbG9uZVVubGVzc090aGVyd2lzZVNwZWNpZmllZChzb3VyY2UsIG9wdGlvbnMpXG5cdH0gZWxzZSBpZiAoc291cmNlSXNBcnJheSkge1xuXHRcdHJldHVybiBvcHRpb25zLmFycmF5TWVyZ2UodGFyZ2V0LCBzb3VyY2UsIG9wdGlvbnMpXG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIG1lcmdlT2JqZWN0KHRhcmdldCwgc291cmNlLCBvcHRpb25zKVxuXHR9XG59XG5cbmRlZXBtZXJnZS5hbGwgPSBmdW5jdGlvbiBkZWVwbWVyZ2VBbGwoYXJyYXksIG9wdGlvbnMpIHtcblx0aWYgKCFBcnJheS5pc0FycmF5KGFycmF5KSkge1xuXHRcdHRocm93IG5ldyBFcnJvcignZmlyc3QgYXJndW1lbnQgc2hvdWxkIGJlIGFuIGFycmF5Jylcblx0fVxuXG5cdHJldHVybiBhcnJheS5yZWR1Y2UoZnVuY3Rpb24ocHJldiwgbmV4dCkge1xuXHRcdHJldHVybiBkZWVwbWVyZ2UocHJldiwgbmV4dCwgb3B0aW9ucylcblx0fSwge30pXG59O1xuXG52YXIgZGVlcG1lcmdlXzEgPSBkZWVwbWVyZ2U7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZXBtZXJnZV8xO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/deepmerge/dist/es.js\n"); + +/***/ }), + +/***/ "./node_modules/fast-deep-equal/react.js": +/*!***********************************************!*\ + !*** ./node_modules/fast-deep-equal/react.js ***! + \***********************************************/ +/***/ (function(module) { + +"use strict"; +eval("\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n continue;\n }\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvZmFzdC1kZWVwLWVxdWFsL3JlYWN0LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViOzs7O0FBSUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLFVBQVU7QUFDakM7QUFDQTtBQUNBOzs7O0FBSUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSxxQkFBcUIsVUFBVTtBQUMvQjs7QUFFQSxxQkFBcUIsVUFBVTtBQUMvQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZmFzdC1kZWVwLWVxdWFsL3JlYWN0LmpzP2JiNDgiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG4vLyBkbyBub3QgZWRpdCAuanMgZmlsZXMgZGlyZWN0bHkgLSBlZGl0IHNyYy9pbmRleC5qc3RcblxuXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gZXF1YWwoYSwgYikge1xuICBpZiAoYSA9PT0gYikgcmV0dXJuIHRydWU7XG5cbiAgaWYgKGEgJiYgYiAmJiB0eXBlb2YgYSA9PSAnb2JqZWN0JyAmJiB0eXBlb2YgYiA9PSAnb2JqZWN0Jykge1xuICAgIGlmIChhLmNvbnN0cnVjdG9yICE9PSBiLmNvbnN0cnVjdG9yKSByZXR1cm4gZmFsc2U7XG5cbiAgICB2YXIgbGVuZ3RoLCBpLCBrZXlzO1xuICAgIGlmIChBcnJheS5pc0FycmF5KGEpKSB7XG4gICAgICBsZW5ndGggPSBhLmxlbmd0aDtcbiAgICAgIGlmIChsZW5ndGggIT0gYi5sZW5ndGgpIHJldHVybiBmYWxzZTtcbiAgICAgIGZvciAoaSA9IGxlbmd0aDsgaS0tICE9PSAwOylcbiAgICAgICAgaWYgKCFlcXVhbChhW2ldLCBiW2ldKSkgcmV0dXJuIGZhbHNlO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG5cblxuICAgIGlmIChhLmNvbnN0cnVjdG9yID09PSBSZWdFeHApIHJldHVybiBhLnNvdXJjZSA9PT0gYi5zb3VyY2UgJiYgYS5mbGFncyA9PT0gYi5mbGFncztcbiAgICBpZiAoYS52YWx1ZU9mICE9PSBPYmplY3QucHJvdG90eXBlLnZhbHVlT2YpIHJldHVybiBhLnZhbHVlT2YoKSA9PT0gYi52YWx1ZU9mKCk7XG4gICAgaWYgKGEudG9TdHJpbmcgIT09IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcpIHJldHVybiBhLnRvU3RyaW5nKCkgPT09IGIudG9TdHJpbmcoKTtcblxuICAgIGtleXMgPSBPYmplY3Qua2V5cyhhKTtcbiAgICBsZW5ndGggPSBrZXlzLmxlbmd0aDtcbiAgICBpZiAobGVuZ3RoICE9PSBPYmplY3Qua2V5cyhiKS5sZW5ndGgpIHJldHVybiBmYWxzZTtcblxuICAgIGZvciAoaSA9IGxlbmd0aDsgaS0tICE9PSAwOylcbiAgICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIsIGtleXNbaV0pKSByZXR1cm4gZmFsc2U7XG5cbiAgICBmb3IgKGkgPSBsZW5ndGg7IGktLSAhPT0gMDspIHtcbiAgICAgIHZhciBrZXkgPSBrZXlzW2ldO1xuXG4gICAgICBpZiAoa2V5ID09PSAnX293bmVyJyAmJiBhLiQkdHlwZW9mKSB7XG4gICAgICAgIC8vIFJlYWN0LXNwZWNpZmljOiBhdm9pZCB0cmF2ZXJzaW5nIFJlYWN0IGVsZW1lbnRzJyBfb3duZXIuXG4gICAgICAgIC8vICBfb3duZXIgY29udGFpbnMgY2lyY3VsYXIgcmVmZXJlbmNlc1xuICAgICAgICAvLyBhbmQgaXMgbm90IG5lZWRlZCB3aGVuIGNvbXBhcmluZyB0aGUgYWN0dWFsIGVsZW1lbnRzIChhbmQgbm90IHRoZWlyIG93bmVycylcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmICghZXF1YWwoYVtrZXldLCBiW2tleV0pKSByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvLyB0cnVlIGlmIGJvdGggTmFOLCBmYWxzZSBvdGhlcndpc2VcbiAgcmV0dXJuIGEhPT1hICYmIGIhPT1iO1xufTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/fast-deep-equal/react.js\n"); + +/***/ }), + +/***/ "./node_modules/formik/dist/formik.esm.js": +/*!************************************************!*\ + !*** ./node_modules/formik/dist/formik.esm.js ***! + \************************************************/ +/***/ (function(__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 */ \"ErrorMessage\": function() { return /* binding */ ErrorMessage; },\n/* harmony export */ \"FastField\": function() { return /* binding */ FastField; },\n/* harmony export */ \"Field\": function() { return /* binding */ Field; },\n/* harmony export */ \"FieldArray\": function() { return /* binding */ FieldArray; },\n/* harmony export */ \"Form\": function() { return /* binding */ Form; },\n/* harmony export */ \"Formik\": function() { return /* binding */ Formik; },\n/* harmony export */ \"FormikConsumer\": function() { return /* binding */ FormikConsumer; },\n/* harmony export */ \"FormikContext\": function() { return /* binding */ FormikContext; },\n/* harmony export */ \"FormikProvider\": function() { return /* binding */ FormikProvider; },\n/* harmony export */ \"connect\": function() { return /* binding */ connect; },\n/* harmony export */ \"getActiveElement\": function() { return /* binding */ getActiveElement; },\n/* harmony export */ \"getIn\": function() { return /* binding */ getIn; },\n/* harmony export */ \"insert\": function() { return /* binding */ insert; },\n/* harmony export */ \"isEmptyArray\": function() { return /* binding */ isEmptyArray; },\n/* harmony export */ \"isEmptyChildren\": function() { return /* binding */ isEmptyChildren; },\n/* harmony export */ \"isFunction\": function() { return /* binding */ isFunction; },\n/* harmony export */ \"isInputEvent\": function() { return /* binding */ isInputEvent; },\n/* harmony export */ \"isInteger\": function() { return /* binding */ isInteger; },\n/* harmony export */ \"isNaN\": function() { return /* binding */ isNaN$1; },\n/* harmony export */ \"isObject\": function() { return /* binding */ isObject; },\n/* harmony export */ \"isPromise\": function() { return /* binding */ isPromise; },\n/* harmony export */ \"isString\": function() { return /* binding */ isString; },\n/* harmony export */ \"move\": function() { return /* binding */ move; },\n/* harmony export */ \"prepareDataForValidation\": function() { return /* binding */ prepareDataForValidation; },\n/* harmony export */ \"replace\": function() { return /* binding */ replace; },\n/* harmony export */ \"setIn\": function() { return /* binding */ setIn; },\n/* harmony export */ \"setNestedObjectValues\": function() { return /* binding */ setNestedObjectValues; },\n/* harmony export */ \"swap\": function() { return /* binding */ swap; },\n/* harmony export */ \"useField\": function() { return /* binding */ useField; },\n/* harmony export */ \"useFormik\": function() { return /* binding */ useFormik; },\n/* harmony export */ \"useFormikContext\": function() { return /* binding */ useFormikContext; },\n/* harmony export */ \"validateYupSchema\": function() { return /* binding */ validateYupSchema; },\n/* harmony export */ \"withFormik\": function() { return /* binding */ withFormik; },\n/* harmony export */ \"yupToFormErrors\": function() { return /* binding */ yupToFormErrors; }\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_fast_compare__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-fast-compare */ \"./node_modules/react-fast-compare/index.js\");\n/* harmony import */ var react_fast_compare__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_fast_compare__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var deepmerge__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! deepmerge */ \"./node_modules/deepmerge/dist/es.js\");\n/* harmony import */ var lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! lodash-es/isPlainObject */ \"./node_modules/lodash-es/isPlainObject.js\");\n/* harmony import */ var lodash_es_clone__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! lodash-es/clone */ \"./node_modules/lodash-es/clone.js\");\n/* harmony import */ var lodash_es_toPath__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! lodash-es/toPath */ \"./node_modules/lodash-es/toPath.js\");\n/* harmony import */ var tiny_warning__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! tiny-warning */ \"./node_modules/tiny-warning/dist/tiny-warning.esm.js\");\n/* harmony import */ var hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! hoist-non-react-statics */ \"./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js\");\n/* harmony import */ var hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var lodash_es_cloneDeep__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! lodash-es/cloneDeep */ \"./node_modules/lodash-es/cloneDeep.js\");\n\n\n\n\n\n\n\n\n\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\n/** @private is the value an empty array? */\n\nvar isEmptyArray = function isEmptyArray(value) {\n return Array.isArray(value) && value.length === 0;\n};\n/** @private is the given object a Function? */\n\nvar isFunction = function isFunction(obj) {\n return typeof obj === 'function';\n};\n/** @private is the given object an Object? */\n\nvar isObject = function isObject(obj) {\n return obj !== null && typeof obj === 'object';\n};\n/** @private is the given object an integer? */\n\nvar isInteger = function isInteger(obj) {\n return String(Math.floor(Number(obj))) === obj;\n};\n/** @private is the given object a string? */\n\nvar isString = function isString(obj) {\n return Object.prototype.toString.call(obj) === '[object String]';\n};\n/** @private is the given object a NaN? */\n// eslint-disable-next-line no-self-compare\n\nvar isNaN$1 = function isNaN(obj) {\n return obj !== obj;\n};\n/** @private Does a React component have exactly 0 children? */\n\nvar isEmptyChildren = function isEmptyChildren(children) {\n return react__WEBPACK_IMPORTED_MODULE_0__.Children.count(children) === 0;\n};\n/** @private is the given object/value a promise? */\n\nvar isPromise = function isPromise(value) {\n return isObject(value) && isFunction(value.then);\n};\n/** @private is the given object/value a type of synthetic event? */\n\nvar isInputEvent = function isInputEvent(value) {\n return value && isObject(value) && isObject(value.target);\n};\n/**\r\n * Same as document.activeElement but wraps in a try-catch block. In IE it is\r\n * not safe to call document.activeElement if there is nothing focused.\r\n *\r\n * The activeElement will be null only if the document or document body is not\r\n * yet defined.\r\n *\r\n * @param {?Document} doc Defaults to current document.\r\n * @return {Element | null}\r\n * @see https://github.com/facebook/fbjs/blob/master/packages/fbjs/src/core/dom/getActiveElement.js\r\n */\n\nfunction getActiveElement(doc) {\n doc = doc || (typeof document !== 'undefined' ? document : undefined);\n\n if (typeof doc === 'undefined') {\n return null;\n }\n\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\n/**\r\n * Deeply get a value from an object via its path.\r\n */\n\nfunction getIn(obj, key, def, p) {\n if (p === void 0) {\n p = 0;\n }\n\n var path = (0,lodash_es_toPath__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(key);\n\n while (obj && p < path.length) {\n obj = obj[path[p++]];\n }\n\n return obj === undefined ? def : obj;\n}\n/**\r\n * Deeply set a value from in object via it's path. If the value at `path`\r\n * has changed, return a shallow copy of obj with `value` set at `path`.\r\n * If `value` has not changed, return the original `obj`.\r\n *\r\n * Existing objects / arrays along `path` are also shallow copied. Sibling\r\n * objects along path retain the same internal js reference. Since new\r\n * objects / arrays are only created along `path`, we can test if anything\r\n * changed in a nested structure by comparing the object's reference in\r\n * the old and new object, similar to how russian doll cache invalidation\r\n * works.\r\n *\r\n * In earlier versions of this function, which used cloneDeep, there were\r\n * issues whereby settings a nested value would mutate the parent\r\n * instead of creating a new object. `clone` avoids that bug making a\r\n * shallow copy of the objects along the update path\r\n * so no object is mutated in place.\r\n *\r\n * Before changing this function, please read through the following\r\n * discussions.\r\n *\r\n * @see https://github.com/developit/linkstate\r\n * @see https://github.com/jaredpalmer/formik/pull/123\r\n */\n\nfunction setIn(obj, path, value) {\n var res = (0,lodash_es_clone__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(obj); // this keeps inheritance when obj is a class\n\n var resVal = res;\n var i = 0;\n var pathArray = (0,lodash_es_toPath__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(path);\n\n for (; i < pathArray.length - 1; i++) {\n var currentPath = pathArray[i];\n var currentObj = getIn(obj, pathArray.slice(0, i + 1));\n\n if (currentObj && (isObject(currentObj) || Array.isArray(currentObj))) {\n resVal = resVal[currentPath] = (0,lodash_es_clone__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(currentObj);\n } else {\n var nextPath = pathArray[i + 1];\n resVal = resVal[currentPath] = isInteger(nextPath) && Number(nextPath) >= 0 ? [] : {};\n }\n } // Return original object if new value is the same as current\n\n\n if ((i === 0 ? obj : resVal)[pathArray[i]] === value) {\n return obj;\n }\n\n if (value === undefined) {\n delete resVal[pathArray[i]];\n } else {\n resVal[pathArray[i]] = value;\n } // If the path array has a single element, the loop did not run.\n // Deleting on `resVal` had no effect in this scenario, so we delete on the result instead.\n\n\n if (i === 0 && value === undefined) {\n delete res[pathArray[i]];\n }\n\n return res;\n}\n/**\r\n * Recursively a set the same value for all keys and arrays nested object, cloning\r\n * @param object\r\n * @param value\r\n * @param visited\r\n * @param response\r\n */\n\nfunction setNestedObjectValues(object, value, visited, response) {\n if (visited === void 0) {\n visited = new WeakMap();\n }\n\n if (response === void 0) {\n response = {};\n }\n\n for (var _i = 0, _Object$keys = Object.keys(object); _i < _Object$keys.length; _i++) {\n var k = _Object$keys[_i];\n var val = object[k];\n\n if (isObject(val)) {\n if (!visited.get(val)) {\n visited.set(val, true); // In order to keep array values consistent for both dot path and\n // bracket syntax, we need to check if this is an array so that\n // this will output { friends: [true] } and not { friends: { \"0\": true } }\n\n response[k] = Array.isArray(val) ? [] : {};\n setNestedObjectValues(val, value, visited, response[k]);\n }\n } else {\n response[k] = value;\n }\n }\n\n return response;\n}\n\nvar FormikContext = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(undefined);\nFormikContext.displayName = 'FormikContext';\nvar FormikProvider = FormikContext.Provider;\nvar FormikConsumer = FormikContext.Consumer;\nfunction useFormikContext() {\n var formik = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(FormikContext);\n !!!formik ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, \"Formik context is undefined, please verify you are calling useFormikContext() as child of a <Formik> component.\") : 0 : void 0;\n return formik;\n}\n\nfunction formikReducer(state, msg) {\n switch (msg.type) {\n case 'SET_VALUES':\n return _extends({}, state, {\n values: msg.payload\n });\n\n case 'SET_TOUCHED':\n return _extends({}, state, {\n touched: msg.payload\n });\n\n case 'SET_ERRORS':\n if (react_fast_compare__WEBPACK_IMPORTED_MODULE_1___default()(state.errors, msg.payload)) {\n return state;\n }\n\n return _extends({}, state, {\n errors: msg.payload\n });\n\n case 'SET_STATUS':\n return _extends({}, state, {\n status: msg.payload\n });\n\n case 'SET_ISSUBMITTING':\n return _extends({}, state, {\n isSubmitting: msg.payload\n });\n\n case 'SET_ISVALIDATING':\n return _extends({}, state, {\n isValidating: msg.payload\n });\n\n case 'SET_FIELD_VALUE':\n return _extends({}, state, {\n values: setIn(state.values, msg.payload.field, msg.payload.value)\n });\n\n case 'SET_FIELD_TOUCHED':\n return _extends({}, state, {\n touched: setIn(state.touched, msg.payload.field, msg.payload.value)\n });\n\n case 'SET_FIELD_ERROR':\n return _extends({}, state, {\n errors: setIn(state.errors, msg.payload.field, msg.payload.value)\n });\n\n case 'RESET_FORM':\n return _extends({}, state, msg.payload);\n\n case 'SET_FORMIK_STATE':\n return msg.payload(state);\n\n case 'SUBMIT_ATTEMPT':\n return _extends({}, state, {\n touched: setNestedObjectValues(state.values, true),\n isSubmitting: true,\n submitCount: state.submitCount + 1\n });\n\n case 'SUBMIT_FAILURE':\n return _extends({}, state, {\n isSubmitting: false\n });\n\n case 'SUBMIT_SUCCESS':\n return _extends({}, state, {\n isSubmitting: false\n });\n\n default:\n return state;\n }\n} // Initial empty states // objects\n\n\nvar emptyErrors = {};\nvar emptyTouched = {};\nfunction useFormik(_ref) {\n var _ref$validateOnChange = _ref.validateOnChange,\n validateOnChange = _ref$validateOnChange === void 0 ? true : _ref$validateOnChange,\n _ref$validateOnBlur = _ref.validateOnBlur,\n validateOnBlur = _ref$validateOnBlur === void 0 ? true : _ref$validateOnBlur,\n _ref$validateOnMount = _ref.validateOnMount,\n validateOnMount = _ref$validateOnMount === void 0 ? false : _ref$validateOnMount,\n isInitialValid = _ref.isInitialValid,\n _ref$enableReinitiali = _ref.enableReinitialize,\n enableReinitialize = _ref$enableReinitiali === void 0 ? false : _ref$enableReinitiali,\n onSubmit = _ref.onSubmit,\n rest = _objectWithoutPropertiesLoose(_ref, [\"validateOnChange\", \"validateOnBlur\", \"validateOnMount\", \"isInitialValid\", \"enableReinitialize\", \"onSubmit\"]);\n\n var props = _extends({\n validateOnChange: validateOnChange,\n validateOnBlur: validateOnBlur,\n validateOnMount: validateOnMount,\n onSubmit: onSubmit\n }, rest);\n\n var initialValues = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(props.initialValues);\n var initialErrors = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(props.initialErrors || emptyErrors);\n var initialTouched = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(props.initialTouched || emptyTouched);\n var initialStatus = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(props.initialStatus);\n var isMounted = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(false);\n var fieldRegistry = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)({});\n\n if (true) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n !(typeof isInitialValid === 'undefined') ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, 'isInitialValid has been deprecated and will be removed in future versions of Formik. Please use initialErrors or validateOnMount instead.') : 0 : void 0; // eslint-disable-next-line\n }, []);\n }\n\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n isMounted.current = true;\n return function () {\n isMounted.current = false;\n };\n }, []);\n\n var _React$useReducer = (0,react__WEBPACK_IMPORTED_MODULE_0__.useReducer)(formikReducer, {\n values: props.initialValues,\n errors: props.initialErrors || emptyErrors,\n touched: props.initialTouched || emptyTouched,\n status: props.initialStatus,\n isSubmitting: false,\n isValidating: false,\n submitCount: 0\n }),\n state = _React$useReducer[0],\n dispatch = _React$useReducer[1];\n\n var runValidateHandler = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (values, field) {\n return new Promise(function (resolve, reject) {\n var maybePromisedErrors = props.validate(values, field);\n\n if (maybePromisedErrors == null) {\n // use loose null check here on purpose\n resolve(emptyErrors);\n } else if (isPromise(maybePromisedErrors)) {\n maybePromisedErrors.then(function (errors) {\n resolve(errors || emptyErrors);\n }, function (actualException) {\n if (true) {\n console.warn(\"Warning: An unhandled error was caught during validation in <Formik validate />\", actualException);\n }\n\n reject(actualException);\n });\n } else {\n resolve(maybePromisedErrors);\n }\n });\n }, [props.validate]);\n /**\r\n * Run validation against a Yup schema and optionally run a function if successful\r\n */\n\n var runValidationSchema = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (values, field) {\n var validationSchema = props.validationSchema;\n var schema = isFunction(validationSchema) ? validationSchema(field) : validationSchema;\n var promise = field && schema.validateAt ? schema.validateAt(field, values) : validateYupSchema(values, schema);\n return new Promise(function (resolve, reject) {\n promise.then(function () {\n resolve(emptyErrors);\n }, function (err) {\n // Yup will throw a validation error if validation fails. We catch those and\n // resolve them into Formik errors. We can sniff if something is a Yup error\n // by checking error.name.\n // @see https://github.com/jquense/yup#validationerrorerrors-string--arraystring-value-any-path-string\n if (err.name === 'ValidationError') {\n resolve(yupToFormErrors(err));\n } else {\n // We throw any other errors\n if (true) {\n console.warn(\"Warning: An unhandled error was caught during validation in <Formik validationSchema />\", err);\n }\n\n reject(err);\n }\n });\n });\n }, [props.validationSchema]);\n var runSingleFieldLevelValidation = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (field, value) {\n return new Promise(function (resolve) {\n return resolve(fieldRegistry.current[field].validate(value));\n });\n }, []);\n var runFieldLevelValidations = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (values) {\n var fieldKeysWithValidation = Object.keys(fieldRegistry.current).filter(function (f) {\n return isFunction(fieldRegistry.current[f].validate);\n }); // Construct an array with all of the field validation functions\n\n var fieldValidations = fieldKeysWithValidation.length > 0 ? fieldKeysWithValidation.map(function (f) {\n return runSingleFieldLevelValidation(f, getIn(values, f));\n }) : [Promise.resolve('DO_NOT_DELETE_YOU_WILL_BE_FIRED')]; // use special case ;)\n\n return Promise.all(fieldValidations).then(function (fieldErrorsList) {\n return fieldErrorsList.reduce(function (prev, curr, index) {\n if (curr === 'DO_NOT_DELETE_YOU_WILL_BE_FIRED') {\n return prev;\n }\n\n if (curr) {\n prev = setIn(prev, fieldKeysWithValidation[index], curr);\n }\n\n return prev;\n }, {});\n });\n }, [runSingleFieldLevelValidation]); // Run all validations and return the result\n\n var runAllValidations = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (values) {\n return Promise.all([runFieldLevelValidations(values), props.validationSchema ? runValidationSchema(values) : {}, props.validate ? runValidateHandler(values) : {}]).then(function (_ref2) {\n var fieldErrors = _ref2[0],\n schemaErrors = _ref2[1],\n validateErrors = _ref2[2];\n var combinedErrors = deepmerge__WEBPACK_IMPORTED_MODULE_2__[\"default\"].all([fieldErrors, schemaErrors, validateErrors], {\n arrayMerge: arrayMerge\n });\n return combinedErrors;\n });\n }, [props.validate, props.validationSchema, runFieldLevelValidations, runValidateHandler, runValidationSchema]); // Run all validations methods and update state accordingly\n\n var validateFormWithHighPriority = useEventCallback(function (values) {\n if (values === void 0) {\n values = state.values;\n }\n\n dispatch({\n type: 'SET_ISVALIDATING',\n payload: true\n });\n return runAllValidations(values).then(function (combinedErrors) {\n if (!!isMounted.current) {\n dispatch({\n type: 'SET_ISVALIDATING',\n payload: false\n });\n dispatch({\n type: 'SET_ERRORS',\n payload: combinedErrors\n });\n }\n\n return combinedErrors;\n });\n });\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n if (validateOnMount && isMounted.current === true && react_fast_compare__WEBPACK_IMPORTED_MODULE_1___default()(initialValues.current, props.initialValues)) {\n validateFormWithHighPriority(initialValues.current);\n }\n }, [validateOnMount, validateFormWithHighPriority]);\n var resetForm = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (nextState) {\n var values = nextState && nextState.values ? nextState.values : initialValues.current;\n var errors = nextState && nextState.errors ? nextState.errors : initialErrors.current ? initialErrors.current : props.initialErrors || {};\n var touched = nextState && nextState.touched ? nextState.touched : initialTouched.current ? initialTouched.current : props.initialTouched || {};\n var status = nextState && nextState.status ? nextState.status : initialStatus.current ? initialStatus.current : props.initialStatus;\n initialValues.current = values;\n initialErrors.current = errors;\n initialTouched.current = touched;\n initialStatus.current = status;\n\n var dispatchFn = function dispatchFn() {\n dispatch({\n type: 'RESET_FORM',\n payload: {\n isSubmitting: !!nextState && !!nextState.isSubmitting,\n errors: errors,\n touched: touched,\n status: status,\n values: values,\n isValidating: !!nextState && !!nextState.isValidating,\n submitCount: !!nextState && !!nextState.submitCount && typeof nextState.submitCount === 'number' ? nextState.submitCount : 0\n }\n });\n };\n\n if (props.onReset) {\n var maybePromisedOnReset = props.onReset(state.values, imperativeMethods);\n\n if (isPromise(maybePromisedOnReset)) {\n maybePromisedOnReset.then(dispatchFn);\n } else {\n dispatchFn();\n }\n } else {\n dispatchFn();\n }\n }, [props.initialErrors, props.initialStatus, props.initialTouched]);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n if (isMounted.current === true && !react_fast_compare__WEBPACK_IMPORTED_MODULE_1___default()(initialValues.current, props.initialValues)) {\n if (enableReinitialize) {\n initialValues.current = props.initialValues;\n resetForm();\n }\n\n if (validateOnMount) {\n validateFormWithHighPriority(initialValues.current);\n }\n }\n }, [enableReinitialize, props.initialValues, resetForm, validateOnMount, validateFormWithHighPriority]);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n if (enableReinitialize && isMounted.current === true && !react_fast_compare__WEBPACK_IMPORTED_MODULE_1___default()(initialErrors.current, props.initialErrors)) {\n initialErrors.current = props.initialErrors || emptyErrors;\n dispatch({\n type: 'SET_ERRORS',\n payload: props.initialErrors || emptyErrors\n });\n }\n }, [enableReinitialize, props.initialErrors]);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n if (enableReinitialize && isMounted.current === true && !react_fast_compare__WEBPACK_IMPORTED_MODULE_1___default()(initialTouched.current, props.initialTouched)) {\n initialTouched.current = props.initialTouched || emptyTouched;\n dispatch({\n type: 'SET_TOUCHED',\n payload: props.initialTouched || emptyTouched\n });\n }\n }, [enableReinitialize, props.initialTouched]);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n if (enableReinitialize && isMounted.current === true && !react_fast_compare__WEBPACK_IMPORTED_MODULE_1___default()(initialStatus.current, props.initialStatus)) {\n initialStatus.current = props.initialStatus;\n dispatch({\n type: 'SET_STATUS',\n payload: props.initialStatus\n });\n }\n }, [enableReinitialize, props.initialStatus, props.initialTouched]);\n var validateField = useEventCallback(function (name) {\n // This will efficiently validate a single field by avoiding state\n // changes if the validation function is synchronous. It's different from\n // what is called when using validateForm.\n if (fieldRegistry.current[name] && isFunction(fieldRegistry.current[name].validate)) {\n var value = getIn(state.values, name);\n var maybePromise = fieldRegistry.current[name].validate(value);\n\n if (isPromise(maybePromise)) {\n // Only flip isValidating if the function is async.\n dispatch({\n type: 'SET_ISVALIDATING',\n payload: true\n });\n return maybePromise.then(function (x) {\n return x;\n }).then(function (error) {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: {\n field: name,\n value: error\n }\n });\n dispatch({\n type: 'SET_ISVALIDATING',\n payload: false\n });\n });\n } else {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: {\n field: name,\n value: maybePromise\n }\n });\n return Promise.resolve(maybePromise);\n }\n } else if (props.validationSchema) {\n dispatch({\n type: 'SET_ISVALIDATING',\n payload: true\n });\n return runValidationSchema(state.values, name).then(function (x) {\n return x;\n }).then(function (error) {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: {\n field: name,\n value: error[name]\n }\n });\n dispatch({\n type: 'SET_ISVALIDATING',\n payload: false\n });\n });\n }\n\n return Promise.resolve();\n });\n var registerField = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (name, _ref3) {\n var validate = _ref3.validate;\n fieldRegistry.current[name] = {\n validate: validate\n };\n }, []);\n var unregisterField = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (name) {\n delete fieldRegistry.current[name];\n }, []);\n var setTouched = useEventCallback(function (touched, shouldValidate) {\n dispatch({\n type: 'SET_TOUCHED',\n payload: touched\n });\n var willValidate = shouldValidate === undefined ? validateOnBlur : shouldValidate;\n return willValidate ? validateFormWithHighPriority(state.values) : Promise.resolve();\n });\n var setErrors = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (errors) {\n dispatch({\n type: 'SET_ERRORS',\n payload: errors\n });\n }, []);\n var setValues = useEventCallback(function (values, shouldValidate) {\n var resolvedValues = isFunction(values) ? values(state.values) : values;\n dispatch({\n type: 'SET_VALUES',\n payload: resolvedValues\n });\n var willValidate = shouldValidate === undefined ? validateOnChange : shouldValidate;\n return willValidate ? validateFormWithHighPriority(resolvedValues) : Promise.resolve();\n });\n var setFieldError = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (field, value) {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: {\n field: field,\n value: value\n }\n });\n }, []);\n var setFieldValue = useEventCallback(function (field, value, shouldValidate) {\n dispatch({\n type: 'SET_FIELD_VALUE',\n payload: {\n field: field,\n value: value\n }\n });\n var willValidate = shouldValidate === undefined ? validateOnChange : shouldValidate;\n return willValidate ? validateFormWithHighPriority(setIn(state.values, field, value)) : Promise.resolve();\n });\n var executeChange = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (eventOrTextValue, maybePath) {\n // By default, assume that the first argument is a string. This allows us to use\n // handleChange with React Native and React Native Web's onChangeText prop which\n // provides just the value of the input.\n var field = maybePath;\n var val = eventOrTextValue;\n var parsed; // If the first argument is not a string though, it has to be a synthetic React Event (or a fake one),\n // so we handle like we would a normal HTML change event.\n\n if (!isString(eventOrTextValue)) {\n // If we can, persist the event\n // @see https://reactjs.org/docs/events.html#event-pooling\n if (eventOrTextValue.persist) {\n eventOrTextValue.persist();\n }\n\n var target = eventOrTextValue.target ? eventOrTextValue.target : eventOrTextValue.currentTarget;\n var type = target.type,\n name = target.name,\n id = target.id,\n value = target.value,\n checked = target.checked,\n outerHTML = target.outerHTML,\n options = target.options,\n multiple = target.multiple;\n field = maybePath ? maybePath : name ? name : id;\n\n if (!field && \"development\" !== \"production\") {\n warnAboutMissingIdentifier({\n htmlContent: outerHTML,\n documentationAnchorLink: 'handlechange-e-reactchangeeventany--void',\n handlerName: 'handleChange'\n });\n }\n\n val = /number|range/.test(type) ? (parsed = parseFloat(value), isNaN(parsed) ? '' : parsed) : /checkbox/.test(type) // checkboxes\n ? getValueForCheckbox(getIn(state.values, field), checked, value) : options && multiple // <select multiple>\n ? getSelectedValues(options) : value;\n }\n\n if (field) {\n // Set form fields by name\n setFieldValue(field, val);\n }\n }, [setFieldValue, state.values]);\n var handleChange = useEventCallback(function (eventOrPath) {\n if (isString(eventOrPath)) {\n return function (event) {\n return executeChange(event, eventOrPath);\n };\n } else {\n executeChange(eventOrPath);\n }\n });\n var setFieldTouched = useEventCallback(function (field, touched, shouldValidate) {\n if (touched === void 0) {\n touched = true;\n }\n\n dispatch({\n type: 'SET_FIELD_TOUCHED',\n payload: {\n field: field,\n value: touched\n }\n });\n var willValidate = shouldValidate === undefined ? validateOnBlur : shouldValidate;\n return willValidate ? validateFormWithHighPriority(state.values) : Promise.resolve();\n });\n var executeBlur = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (e, path) {\n if (e.persist) {\n e.persist();\n }\n\n var _e$target = e.target,\n name = _e$target.name,\n id = _e$target.id,\n outerHTML = _e$target.outerHTML;\n var field = path ? path : name ? name : id;\n\n if (!field && \"development\" !== \"production\") {\n warnAboutMissingIdentifier({\n htmlContent: outerHTML,\n documentationAnchorLink: 'handleblur-e-any--void',\n handlerName: 'handleBlur'\n });\n }\n\n setFieldTouched(field, true);\n }, [setFieldTouched]);\n var handleBlur = useEventCallback(function (eventOrString) {\n if (isString(eventOrString)) {\n return function (event) {\n return executeBlur(event, eventOrString);\n };\n } else {\n executeBlur(eventOrString);\n }\n });\n var setFormikState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (stateOrCb) {\n if (isFunction(stateOrCb)) {\n dispatch({\n type: 'SET_FORMIK_STATE',\n payload: stateOrCb\n });\n } else {\n dispatch({\n type: 'SET_FORMIK_STATE',\n payload: function payload() {\n return stateOrCb;\n }\n });\n }\n }, []);\n var setStatus = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (status) {\n dispatch({\n type: 'SET_STATUS',\n payload: status\n });\n }, []);\n var setSubmitting = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (isSubmitting) {\n dispatch({\n type: 'SET_ISSUBMITTING',\n payload: isSubmitting\n });\n }, []);\n var submitForm = useEventCallback(function () {\n dispatch({\n type: 'SUBMIT_ATTEMPT'\n });\n return validateFormWithHighPriority().then(function (combinedErrors) {\n // In case an error was thrown and passed to the resolved Promise,\n // `combinedErrors` can be an instance of an Error. We need to check\n // that and abort the submit.\n // If we don't do that, calling `Object.keys(new Error())` yields an\n // empty array, which causes the validation to pass and the form\n // to be submitted.\n var isInstanceOfError = combinedErrors instanceof Error;\n var isActuallyValid = !isInstanceOfError && Object.keys(combinedErrors).length === 0;\n\n if (isActuallyValid) {\n // Proceed with submit...\n //\n // To respect sync submit fns, we can't simply wrap executeSubmit in a promise and\n // _always_ dispatch SUBMIT_SUCCESS because isSubmitting would then always be false.\n // This would be fine in simple cases, but make it impossible to disable submit\n // buttons where people use callbacks or promises as side effects (which is basically\n // all of v1 Formik code). Instead, recall that we are inside of a promise chain already,\n // so we can try/catch executeSubmit(), if it returns undefined, then just bail.\n // If there are errors, throw em. Otherwise, wrap executeSubmit in a promise and handle\n // cleanup of isSubmitting on behalf of the consumer.\n var promiseOrUndefined;\n\n try {\n promiseOrUndefined = executeSubmit(); // Bail if it's sync, consumer is responsible for cleaning up\n // via setSubmitting(false)\n\n if (promiseOrUndefined === undefined) {\n return;\n }\n } catch (error) {\n throw error;\n }\n\n return Promise.resolve(promiseOrUndefined).then(function (result) {\n if (!!isMounted.current) {\n dispatch({\n type: 'SUBMIT_SUCCESS'\n });\n }\n\n return result;\n })[\"catch\"](function (_errors) {\n if (!!isMounted.current) {\n dispatch({\n type: 'SUBMIT_FAILURE'\n }); // This is a legit error rejected by the onSubmit fn\n // so we don't want to break the promise chain\n\n throw _errors;\n }\n });\n } else if (!!isMounted.current) {\n // ^^^ Make sure Formik is still mounted before updating state\n dispatch({\n type: 'SUBMIT_FAILURE'\n }); // throw combinedErrors;\n\n if (isInstanceOfError) {\n throw combinedErrors;\n }\n }\n\n return;\n });\n });\n var handleSubmit = useEventCallback(function (e) {\n if (e && e.preventDefault && isFunction(e.preventDefault)) {\n e.preventDefault();\n }\n\n if (e && e.stopPropagation && isFunction(e.stopPropagation)) {\n e.stopPropagation();\n } // Warn if form submission is triggered by a <button> without a\n // specified `type` attribute during development. This mitigates\n // a common gotcha in forms with both reset and submit buttons,\n // where the dev forgets to add type=\"button\" to the reset button.\n\n\n if ( true && typeof document !== 'undefined') {\n // Safely get the active element (works with IE)\n var activeElement = getActiveElement();\n\n if (activeElement !== null && activeElement instanceof HTMLButtonElement) {\n !(activeElement.attributes && activeElement.attributes.getNamedItem('type')) ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, 'You submitted a Formik form using a button with an unspecified `type` attribute. Most browsers default button elements to `type=\"submit\"`. If this is not a submit button, please add `type=\"button\"`.') : 0 : void 0;\n }\n }\n\n submitForm()[\"catch\"](function (reason) {\n console.warn(\"Warning: An unhandled error was caught from submitForm()\", reason);\n });\n });\n var imperativeMethods = {\n resetForm: resetForm,\n validateForm: validateFormWithHighPriority,\n validateField: validateField,\n setErrors: setErrors,\n setFieldError: setFieldError,\n setFieldTouched: setFieldTouched,\n setFieldValue: setFieldValue,\n setStatus: setStatus,\n setSubmitting: setSubmitting,\n setTouched: setTouched,\n setValues: setValues,\n setFormikState: setFormikState,\n submitForm: submitForm\n };\n var executeSubmit = useEventCallback(function () {\n return onSubmit(state.values, imperativeMethods);\n });\n var handleReset = useEventCallback(function (e) {\n if (e && e.preventDefault && isFunction(e.preventDefault)) {\n e.preventDefault();\n }\n\n if (e && e.stopPropagation && isFunction(e.stopPropagation)) {\n e.stopPropagation();\n }\n\n resetForm();\n });\n var getFieldMeta = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (name) {\n return {\n value: getIn(state.values, name),\n error: getIn(state.errors, name),\n touched: !!getIn(state.touched, name),\n initialValue: getIn(initialValues.current, name),\n initialTouched: !!getIn(initialTouched.current, name),\n initialError: getIn(initialErrors.current, name)\n };\n }, [state.errors, state.touched, state.values]);\n var getFieldHelpers = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (name) {\n return {\n setValue: function setValue(value, shouldValidate) {\n return setFieldValue(name, value, shouldValidate);\n },\n setTouched: function setTouched(value, shouldValidate) {\n return setFieldTouched(name, value, shouldValidate);\n },\n setError: function setError(value) {\n return setFieldError(name, value);\n }\n };\n }, [setFieldValue, setFieldTouched, setFieldError]);\n var getFieldProps = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (nameOrOptions) {\n var isAnObject = isObject(nameOrOptions);\n var name = isAnObject ? nameOrOptions.name : nameOrOptions;\n var valueState = getIn(state.values, name);\n var field = {\n name: name,\n value: valueState,\n onChange: handleChange,\n onBlur: handleBlur\n };\n\n if (isAnObject) {\n var type = nameOrOptions.type,\n valueProp = nameOrOptions.value,\n is = nameOrOptions.as,\n multiple = nameOrOptions.multiple;\n\n if (type === 'checkbox') {\n if (valueProp === undefined) {\n field.checked = !!valueState;\n } else {\n field.checked = !!(Array.isArray(valueState) && ~valueState.indexOf(valueProp));\n field.value = valueProp;\n }\n } else if (type === 'radio') {\n field.checked = valueState === valueProp;\n field.value = valueProp;\n } else if (is === 'select' && multiple) {\n field.value = field.value || [];\n field.multiple = true;\n }\n }\n\n return field;\n }, [handleBlur, handleChange, state.values]);\n var dirty = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function () {\n return !react_fast_compare__WEBPACK_IMPORTED_MODULE_1___default()(initialValues.current, state.values);\n }, [initialValues.current, state.values]);\n var isValid = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function () {\n return typeof isInitialValid !== 'undefined' ? dirty ? state.errors && Object.keys(state.errors).length === 0 : isInitialValid !== false && isFunction(isInitialValid) ? isInitialValid(props) : isInitialValid : state.errors && Object.keys(state.errors).length === 0;\n }, [isInitialValid, dirty, state.errors, props]);\n\n var ctx = _extends({}, state, {\n initialValues: initialValues.current,\n initialErrors: initialErrors.current,\n initialTouched: initialTouched.current,\n initialStatus: initialStatus.current,\n handleBlur: handleBlur,\n handleChange: handleChange,\n handleReset: handleReset,\n handleSubmit: handleSubmit,\n resetForm: resetForm,\n setErrors: setErrors,\n setFormikState: setFormikState,\n setFieldTouched: setFieldTouched,\n setFieldValue: setFieldValue,\n setFieldError: setFieldError,\n setStatus: setStatus,\n setSubmitting: setSubmitting,\n setTouched: setTouched,\n setValues: setValues,\n submitForm: submitForm,\n validateForm: validateFormWithHighPriority,\n validateField: validateField,\n isValid: isValid,\n dirty: dirty,\n unregisterField: unregisterField,\n registerField: registerField,\n getFieldProps: getFieldProps,\n getFieldMeta: getFieldMeta,\n getFieldHelpers: getFieldHelpers,\n validateOnBlur: validateOnBlur,\n validateOnChange: validateOnChange,\n validateOnMount: validateOnMount\n });\n\n return ctx;\n}\nfunction Formik(props) {\n var formikbag = useFormik(props);\n var component = props.component,\n children = props.children,\n render = props.render,\n innerRef = props.innerRef; // This allows folks to pass a ref to <Formik />\n\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useImperativeHandle)(innerRef, function () {\n return formikbag;\n });\n\n if (true) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n !!props.render ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, \"<Formik render> has been deprecated and will be removed in future versions of Formik. Please use a child callback function instead. To get rid of this warning, replace <Formik render={(props) => ...} /> with <Formik>{(props) => ...}</Formik>\") : 0 : void 0; // eslint-disable-next-line\n }, []);\n }\n\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(FormikProvider, {\n value: formikbag\n }, component ? (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(component, formikbag) : render ? render(formikbag) : children // children come last, always called\n ? isFunction(children) ? children(formikbag) : !isEmptyChildren(children) ? react__WEBPACK_IMPORTED_MODULE_0__.Children.only(children) : null : null);\n}\n\nfunction warnAboutMissingIdentifier(_ref4) {\n var htmlContent = _ref4.htmlContent,\n documentationAnchorLink = _ref4.documentationAnchorLink,\n handlerName = _ref4.handlerName;\n console.warn(\"Warning: Formik called `\" + handlerName + \"`, but you forgot to pass an `id` or `name` attribute to your input:\\n \" + htmlContent + \"\\n Formik cannot determine which value to update. For more info see https://formik.org/docs/api/formik#\" + documentationAnchorLink + \"\\n \");\n}\n/**\r\n * Transform Yup ValidationError to a more usable object\r\n */\n\n\nfunction yupToFormErrors(yupError) {\n var errors = {};\n\n if (yupError.inner) {\n if (yupError.inner.length === 0) {\n return setIn(errors, yupError.path, yupError.message);\n }\n\n for (var _iterator = yupError.inner, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref5;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref5 = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref5 = _i.value;\n }\n\n var err = _ref5;\n\n if (!getIn(errors, err.path)) {\n errors = setIn(errors, err.path, err.message);\n }\n }\n }\n\n return errors;\n}\n/**\r\n * Validate a yup schema.\r\n */\n\nfunction validateYupSchema(values, schema, sync, context) {\n if (sync === void 0) {\n sync = false;\n }\n\n if (context === void 0) {\n context = {};\n }\n\n var validateData = prepareDataForValidation(values);\n return schema[sync ? 'validateSync' : 'validate'](validateData, {\n abortEarly: false,\n context: context\n });\n}\n/**\r\n * Recursively prepare values.\r\n */\n\nfunction prepareDataForValidation(values) {\n var data = Array.isArray(values) ? [] : {};\n\n for (var k in values) {\n if (Object.prototype.hasOwnProperty.call(values, k)) {\n var key = String(k);\n\n if (Array.isArray(values[key]) === true) {\n data[key] = values[key].map(function (value) {\n if (Array.isArray(value) === true || (0,lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(value)) {\n return prepareDataForValidation(value);\n } else {\n return value !== '' ? value : undefined;\n }\n });\n } else if ((0,lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(values[key])) {\n data[key] = prepareDataForValidation(values[key]);\n } else {\n data[key] = values[key] !== '' ? values[key] : undefined;\n }\n }\n }\n\n return data;\n}\n/**\r\n * deepmerge array merging algorithm\r\n * https://github.com/KyleAMathews/deepmerge#combine-array\r\n */\n\nfunction arrayMerge(target, source, options) {\n var destination = target.slice();\n source.forEach(function merge(e, i) {\n if (typeof destination[i] === 'undefined') {\n var cloneRequested = options.clone !== false;\n var shouldClone = cloneRequested && options.isMergeableObject(e);\n destination[i] = shouldClone ? (0,deepmerge__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(Array.isArray(e) ? [] : {}, e, options) : e;\n } else if (options.isMergeableObject(e)) {\n destination[i] = (0,deepmerge__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(target[i], e, options);\n } else if (target.indexOf(e) === -1) {\n destination.push(e);\n }\n });\n return destination;\n}\n/** Return multi select values based on an array of options */\n\n\nfunction getSelectedValues(options) {\n return Array.from(options).filter(function (el) {\n return el.selected;\n }).map(function (el) {\n return el.value;\n });\n}\n/** Return the next value for a checkbox */\n\n\nfunction getValueForCheckbox(currentValue, checked, valueProp) {\n // If the current value was a boolean, return a boolean\n if (typeof currentValue === 'boolean') {\n return Boolean(checked);\n } // If the currentValue was not a boolean we want to return an array\n\n\n var currentArrayOfValues = [];\n var isValueInArray = false;\n var index = -1;\n\n if (!Array.isArray(currentValue)) {\n // eslint-disable-next-line eqeqeq\n if (!valueProp || valueProp == 'true' || valueProp == 'false') {\n return Boolean(checked);\n }\n } else {\n // If the current value is already an array, use it\n currentArrayOfValues = currentValue;\n index = currentValue.indexOf(valueProp);\n isValueInArray = index >= 0;\n } // If the checkbox was checked and the value is not already present in the aray we want to add the new value to the array of values\n\n\n if (checked && valueProp && !isValueInArray) {\n return currentArrayOfValues.concat(valueProp);\n } // If the checkbox was unchecked and the value is not in the array, simply return the already existing array of values\n\n\n if (!isValueInArray) {\n return currentArrayOfValues;\n } // If the checkbox was unchecked and the value is in the array, remove the value and return the array\n\n\n return currentArrayOfValues.slice(0, index).concat(currentArrayOfValues.slice(index + 1));\n} // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser.\n// @see https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\n\n\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect : react__WEBPACK_IMPORTED_MODULE_0__.useEffect;\n\nfunction useEventCallback(fn) {\n var ref = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(fn); // we copy a ref to the callback scoped to the current state/props on each render\n\n useIsomorphicLayoutEffect(function () {\n ref.current = fn;\n });\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return ref.current.apply(void 0, args);\n }, []);\n}\n\nfunction useField(propsOrFieldName) {\n var formik = useFormikContext();\n var getFieldProps = formik.getFieldProps,\n getFieldMeta = formik.getFieldMeta,\n getFieldHelpers = formik.getFieldHelpers,\n registerField = formik.registerField,\n unregisterField = formik.unregisterField;\n var isAnObject = isObject(propsOrFieldName); // Normalize propsOrFieldName to FieldHookConfig<Val>\n\n var props = isAnObject ? propsOrFieldName : {\n name: propsOrFieldName\n };\n var fieldName = props.name,\n validateFn = props.validate;\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n if (fieldName) {\n registerField(fieldName, {\n validate: validateFn\n });\n }\n\n return function () {\n if (fieldName) {\n unregisterField(fieldName);\n }\n };\n }, [registerField, unregisterField, fieldName, validateFn]);\n\n if (true) {\n !formik ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, 'useField() / <Field /> must be used underneath a <Formik> component or withFormik() higher order component') : 0 : void 0;\n }\n\n !fieldName ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, 'Invalid field name. Either pass `useField` a string or an object containing a `name` key.') : 0 : void 0;\n return [getFieldProps(props), getFieldMeta(fieldName), getFieldHelpers(fieldName)];\n}\nfunction Field(_ref) {\n var validate = _ref.validate,\n name = _ref.name,\n render = _ref.render,\n children = _ref.children,\n is = _ref.as,\n component = _ref.component,\n props = _objectWithoutPropertiesLoose(_ref, [\"validate\", \"name\", \"render\", \"children\", \"as\", \"component\"]);\n\n var _useFormikContext = useFormikContext(),\n formik = _objectWithoutPropertiesLoose(_useFormikContext, [\"validate\", \"validationSchema\"]);\n\n if (true) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n !!render ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, \"<Field render> has been deprecated and will be removed in future versions of Formik. Please use a child callback function instead. To get rid of this warning, replace <Field name=\\\"\" + name + \"\\\" render={({field, form}) => ...} /> with <Field name=\\\"\" + name + \"\\\">{({field, form, meta}) => ...}</Field>\") : 0 : void 0;\n !!(is && children && isFunction(children)) ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, 'You should not use <Field as> and <Field children> as a function in the same <Field> component; <Field as> will be ignored.') : 0 : void 0;\n !!(component && children && isFunction(children)) ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, 'You should not use <Field component> and <Field children> as a function in the same <Field> component; <Field component> will be ignored.') : 0 : void 0;\n !!(render && children && !isEmptyChildren(children)) ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, 'You should not use <Field render> and <Field children> in the same <Field> component; <Field children> will be ignored') : 0 : void 0; // eslint-disable-next-line\n }, []);\n } // Register field and field-level validation with parent <Formik>\n\n\n var registerField = formik.registerField,\n unregisterField = formik.unregisterField;\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n registerField(name, {\n validate: validate\n });\n return function () {\n unregisterField(name);\n };\n }, [registerField, unregisterField, name, validate]);\n var field = formik.getFieldProps(_extends({\n name: name\n }, props));\n var meta = formik.getFieldMeta(name);\n var legacyBag = {\n field: field,\n form: formik\n };\n\n if (render) {\n return render(_extends({}, legacyBag, {\n meta: meta\n }));\n }\n\n if (isFunction(children)) {\n return children(_extends({}, legacyBag, {\n meta: meta\n }));\n }\n\n if (component) {\n // This behavior is backwards compat with earlier Formik 0.9 to 1.x\n if (typeof component === 'string') {\n var innerRef = props.innerRef,\n rest = _objectWithoutPropertiesLoose(props, [\"innerRef\"]);\n\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(component, _extends({\n ref: innerRef\n }, field, rest), children);\n } // We don't pass `meta` for backwards compat\n\n\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(component, _extends({\n field: field,\n form: formik\n }, props), children);\n } // default to input here so we can check for both `as` and `children` above\n\n\n var asElement = is || 'input';\n\n if (typeof asElement === 'string') {\n var _innerRef = props.innerRef,\n _rest = _objectWithoutPropertiesLoose(props, [\"innerRef\"]);\n\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(asElement, _extends({\n ref: _innerRef\n }, field, _rest), children);\n }\n\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(asElement, _extends({}, field, props), children);\n}\n\nvar Form = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function (props, ref) {\n // iOS needs an \"action\" attribute for nice input: https://stackoverflow.com/a/39485162/406725\n // We default the action to \"#\" in case the preventDefault fails (just updates the URL hash)\n var action = props.action,\n rest = _objectWithoutPropertiesLoose(props, [\"action\"]);\n\n var _action = action != null ? action : '#';\n\n var _useFormikContext = useFormikContext(),\n handleReset = _useFormikContext.handleReset,\n handleSubmit = _useFormikContext.handleSubmit;\n\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"form\", Object.assign({\n onSubmit: handleSubmit,\n ref: ref,\n onReset: handleReset,\n action: _action\n }, rest));\n});\nForm.displayName = 'Form';\n\n/**\r\n * A public higher-order component to access the imperative API\r\n */\n\nfunction withFormik(_ref) {\n var _ref$mapPropsToValues = _ref.mapPropsToValues,\n mapPropsToValues = _ref$mapPropsToValues === void 0 ? function (vanillaProps) {\n var val = {};\n\n for (var k in vanillaProps) {\n if (vanillaProps.hasOwnProperty(k) && typeof vanillaProps[k] !== 'function') {\n // @todo TypeScript fix\n val[k] = vanillaProps[k];\n }\n }\n\n return val;\n } : _ref$mapPropsToValues,\n config = _objectWithoutPropertiesLoose(_ref, [\"mapPropsToValues\"]);\n\n return function createFormik(Component$1) {\n var componentDisplayName = Component$1.displayName || Component$1.name || Component$1.constructor && Component$1.constructor.name || 'Component';\n /**\r\n * We need to use closures here for to provide the wrapped component's props to\r\n * the respective withFormik config methods.\r\n */\n\n var C = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(C, _React$Component);\n\n function C() {\n var _this;\n\n _this = _React$Component.apply(this, arguments) || this;\n\n _this.validate = function (values) {\n return config.validate(values, _this.props);\n };\n\n _this.validationSchema = function () {\n return isFunction(config.validationSchema) ? config.validationSchema(_this.props) : config.validationSchema;\n };\n\n _this.handleSubmit = function (values, actions) {\n return config.handleSubmit(values, _extends({}, actions, {\n props: _this.props\n }));\n };\n /**\r\n * Just avoiding a render callback for perf here\r\n */\n\n\n _this.renderFormComponent = function (formikProps) {\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Component$1, Object.assign({}, _this.props, formikProps));\n };\n\n return _this;\n }\n\n var _proto = C.prototype;\n\n _proto.render = function render() {\n var _this$props = this.props,\n props = _objectWithoutPropertiesLoose(_this$props, [\"children\"]);\n\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Formik, Object.assign({}, props, config, {\n validate: config.validate && this.validate,\n validationSchema: config.validationSchema && this.validationSchema,\n initialValues: mapPropsToValues(this.props),\n initialStatus: config.mapPropsToStatus && config.mapPropsToStatus(this.props),\n initialErrors: config.mapPropsToErrors && config.mapPropsToErrors(this.props),\n initialTouched: config.mapPropsToTouched && config.mapPropsToTouched(this.props),\n onSubmit: this.handleSubmit,\n children: this.renderFormComponent\n }));\n };\n\n return C;\n }(react__WEBPACK_IMPORTED_MODULE_0__.Component);\n\n C.displayName = \"WithFormik(\" + componentDisplayName + \")\";\n return hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_3___default()(C, Component$1 // cast type to ComponentClass (even if SFC)\n );\n };\n}\n\n/**\r\n * Connect any component to Formik context, and inject as a prop called `formik`;\r\n * @param Comp React Component\r\n */\n\nfunction connect(Comp) {\n var C = function C(props) {\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(FormikConsumer, null, function (formik) {\n !!!formik ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, \"Formik context is undefined, please verify you are rendering <Form>, <Field>, <FastField>, <FieldArray>, or your custom context-using component as a child of a <Formik> component. Component name: \" + Comp.name) : 0 : void 0;\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Comp, Object.assign({}, props, {\n formik: formik\n }));\n });\n };\n\n var componentDisplayName = Comp.displayName || Comp.name || Comp.constructor && Comp.constructor.name || 'Component'; // Assign Comp to C.WrappedComponent so we can access the inner component in tests\n // For example, <Field.WrappedComponent /> gets us <FieldInner/>\n\n C.WrappedComponent = Comp;\n C.displayName = \"FormikConnect(\" + componentDisplayName + \")\";\n return hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_3___default()(C, Comp // cast type to ComponentClass (even if SFC)\n );\n}\n\n/**\r\n * Some array helpers!\r\n */\n\nvar move = function move(array, from, to) {\n var copy = copyArrayLike(array);\n var value = copy[from];\n copy.splice(from, 1);\n copy.splice(to, 0, value);\n return copy;\n};\nvar swap = function swap(arrayLike, indexA, indexB) {\n var copy = copyArrayLike(arrayLike);\n var a = copy[indexA];\n copy[indexA] = copy[indexB];\n copy[indexB] = a;\n return copy;\n};\nvar insert = function insert(arrayLike, index, value) {\n var copy = copyArrayLike(arrayLike);\n copy.splice(index, 0, value);\n return copy;\n};\nvar replace = function replace(arrayLike, index, value) {\n var copy = copyArrayLike(arrayLike);\n copy[index] = value;\n return copy;\n};\n\nvar copyArrayLike = function copyArrayLike(arrayLike) {\n if (!arrayLike) {\n return [];\n } else if (Array.isArray(arrayLike)) {\n return [].concat(arrayLike);\n } else {\n var maxIndex = Object.keys(arrayLike).map(function (key) {\n return parseInt(key);\n }).reduce(function (max, el) {\n return el > max ? el : max;\n }, 0);\n return Array.from(_extends({}, arrayLike, {\n length: maxIndex + 1\n }));\n }\n};\n\nvar FieldArrayInner = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(FieldArrayInner, _React$Component);\n\n function FieldArrayInner(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n\n _this.updateArrayField = function (fn, alterTouched, alterErrors) {\n var _this$props = _this.props,\n name = _this$props.name,\n setFormikState = _this$props.formik.setFormikState;\n setFormikState(function (prevState) {\n var updateErrors = typeof alterErrors === 'function' ? alterErrors : fn;\n var updateTouched = typeof alterTouched === 'function' ? alterTouched : fn; // values fn should be executed before updateErrors and updateTouched,\n // otherwise it causes an error with unshift.\n\n var values = setIn(prevState.values, name, fn(getIn(prevState.values, name)));\n var fieldError = alterErrors ? updateErrors(getIn(prevState.errors, name)) : undefined;\n var fieldTouched = alterTouched ? updateTouched(getIn(prevState.touched, name)) : undefined;\n\n if (isEmptyArray(fieldError)) {\n fieldError = undefined;\n }\n\n if (isEmptyArray(fieldTouched)) {\n fieldTouched = undefined;\n }\n\n return _extends({}, prevState, {\n values: values,\n errors: alterErrors ? setIn(prevState.errors, name, fieldError) : prevState.errors,\n touched: alterTouched ? setIn(prevState.touched, name, fieldTouched) : prevState.touched\n });\n });\n };\n\n _this.push = function (value) {\n return _this.updateArrayField(function (arrayLike) {\n return [].concat(copyArrayLike(arrayLike), [(0,lodash_es_cloneDeep__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(value)]);\n }, false, false);\n };\n\n _this.handlePush = function (value) {\n return function () {\n return _this.push(value);\n };\n };\n\n _this.swap = function (indexA, indexB) {\n return _this.updateArrayField(function (array) {\n return swap(array, indexA, indexB);\n }, true, true);\n };\n\n _this.handleSwap = function (indexA, indexB) {\n return function () {\n return _this.swap(indexA, indexB);\n };\n };\n\n _this.move = function (from, to) {\n return _this.updateArrayField(function (array) {\n return move(array, from, to);\n }, true, true);\n };\n\n _this.handleMove = function (from, to) {\n return function () {\n return _this.move(from, to);\n };\n };\n\n _this.insert = function (index, value) {\n return _this.updateArrayField(function (array) {\n return insert(array, index, value);\n }, function (array) {\n return insert(array, index, null);\n }, function (array) {\n return insert(array, index, null);\n });\n };\n\n _this.handleInsert = function (index, value) {\n return function () {\n return _this.insert(index, value);\n };\n };\n\n _this.replace = function (index, value) {\n return _this.updateArrayField(function (array) {\n return replace(array, index, value);\n }, false, false);\n };\n\n _this.handleReplace = function (index, value) {\n return function () {\n return _this.replace(index, value);\n };\n };\n\n _this.unshift = function (value) {\n var length = -1;\n\n _this.updateArrayField(function (array) {\n var arr = array ? [value].concat(array) : [value];\n\n if (length < 0) {\n length = arr.length;\n }\n\n return arr;\n }, function (array) {\n var arr = array ? [null].concat(array) : [null];\n\n if (length < 0) {\n length = arr.length;\n }\n\n return arr;\n }, function (array) {\n var arr = array ? [null].concat(array) : [null];\n\n if (length < 0) {\n length = arr.length;\n }\n\n return arr;\n });\n\n return length;\n };\n\n _this.handleUnshift = function (value) {\n return function () {\n return _this.unshift(value);\n };\n };\n\n _this.handleRemove = function (index) {\n return function () {\n return _this.remove(index);\n };\n };\n\n _this.handlePop = function () {\n return function () {\n return _this.pop();\n };\n }; // We need TypeScript generics on these, so we'll bind them in the constructor\n // @todo Fix TS 3.2.1\n\n\n _this.remove = _this.remove.bind(_assertThisInitialized(_this));\n _this.pop = _this.pop.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n var _proto = FieldArrayInner.prototype;\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (this.props.validateOnChange && this.props.formik.validateOnChange && !react_fast_compare__WEBPACK_IMPORTED_MODULE_1___default()(getIn(prevProps.formik.values, prevProps.name), getIn(this.props.formik.values, this.props.name))) {\n this.props.formik.validateForm(this.props.formik.values);\n }\n };\n\n _proto.remove = function remove(index) {\n // We need to make sure we also remove relevant pieces of `touched` and `errors`\n var result;\n this.updateArrayField( // so this gets call 3 times\n function (array) {\n var copy = array ? copyArrayLike(array) : [];\n\n if (!result) {\n result = copy[index];\n }\n\n if (isFunction(copy.splice)) {\n copy.splice(index, 1);\n }\n\n return copy;\n }, true, true);\n return result;\n };\n\n _proto.pop = function pop() {\n // Remove relevant pieces of `touched` and `errors` too!\n var result;\n this.updateArrayField( // so this gets call 3 times\n function (array) {\n var tmp = array;\n\n if (!result) {\n result = tmp && tmp.pop && tmp.pop();\n }\n\n return tmp;\n }, true, true);\n return result;\n };\n\n _proto.render = function render() {\n var arrayHelpers = {\n push: this.push,\n pop: this.pop,\n swap: this.swap,\n move: this.move,\n insert: this.insert,\n replace: this.replace,\n unshift: this.unshift,\n remove: this.remove,\n handlePush: this.handlePush,\n handlePop: this.handlePop,\n handleSwap: this.handleSwap,\n handleMove: this.handleMove,\n handleInsert: this.handleInsert,\n handleReplace: this.handleReplace,\n handleUnshift: this.handleUnshift,\n handleRemove: this.handleRemove\n };\n\n var _this$props2 = this.props,\n component = _this$props2.component,\n render = _this$props2.render,\n children = _this$props2.children,\n name = _this$props2.name,\n _this$props2$formik = _this$props2.formik,\n restOfFormik = _objectWithoutPropertiesLoose(_this$props2$formik, [\"validate\", \"validationSchema\"]);\n\n var props = _extends({}, arrayHelpers, {\n form: restOfFormik,\n name: name\n });\n\n return component ? (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(component, props) : render ? render(props) : children // children come last, always called\n ? typeof children === 'function' ? children(props) : !isEmptyChildren(children) ? react__WEBPACK_IMPORTED_MODULE_0__.Children.only(children) : null : null;\n };\n\n return FieldArrayInner;\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component);\n\nFieldArrayInner.defaultProps = {\n validateOnChange: true\n};\nvar FieldArray = /*#__PURE__*/connect(FieldArrayInner);\n\nvar ErrorMessageImpl = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(ErrorMessageImpl, _React$Component);\n\n function ErrorMessageImpl() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = ErrorMessageImpl.prototype;\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(props) {\n if (getIn(this.props.formik.errors, this.props.name) !== getIn(props.formik.errors, this.props.name) || getIn(this.props.formik.touched, this.props.name) !== getIn(props.formik.touched, this.props.name) || Object.keys(this.props).length !== Object.keys(props).length) {\n return true;\n } else {\n return false;\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n component = _this$props.component,\n formik = _this$props.formik,\n render = _this$props.render,\n children = _this$props.children,\n name = _this$props.name,\n rest = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"formik\", \"render\", \"children\", \"name\"]);\n\n var touch = getIn(formik.touched, name);\n var error = getIn(formik.errors, name);\n return !!touch && !!error ? render ? isFunction(render) ? render(error) : null : children ? isFunction(children) ? children(error) : null : component ? (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(component, rest, error) : error : null;\n };\n\n return ErrorMessageImpl;\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component);\n\nvar ErrorMessage = /*#__PURE__*/connect(ErrorMessageImpl);\n\n/**\r\n * Custom Field component for quickly hooking into Formik\r\n * context and wiring up forms.\r\n */\n\nvar FastFieldInner = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(FastFieldInner, _React$Component);\n\n function FastFieldInner(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n var render = props.render,\n children = props.children,\n component = props.component,\n is = props.as,\n name = props.name;\n !!render ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, \"<FastField render> has been deprecated. Please use a child callback function instead: <FastField name={\" + name + \"}>{props => ...}</FastField> instead.\") : 0 : void 0;\n !!(component && render) ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, 'You should not use <FastField component> and <FastField render> in the same <FastField> component; <FastField component> will be ignored') : 0 : void 0;\n !!(is && children && isFunction(children)) ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, 'You should not use <FastField as> and <FastField children> as a function in the same <FastField> component; <FastField as> will be ignored.') : 0 : void 0;\n !!(component && children && isFunction(children)) ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, 'You should not use <FastField component> and <FastField children> as a function in the same <FastField> component; <FastField component> will be ignored.') : 0 : void 0;\n !!(render && children && !isEmptyChildren(children)) ? true ? (0,tiny_warning__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(false, 'You should not use <FastField render> and <FastField children> in the same <FastField> component; <FastField children> will be ignored') : 0 : void 0;\n return _this;\n }\n\n var _proto = FastFieldInner.prototype;\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(props) {\n if (this.props.shouldUpdate) {\n return this.props.shouldUpdate(props, this.props);\n } else if (props.name !== this.props.name || getIn(props.formik.values, this.props.name) !== getIn(this.props.formik.values, this.props.name) || getIn(props.formik.errors, this.props.name) !== getIn(this.props.formik.errors, this.props.name) || getIn(props.formik.touched, this.props.name) !== getIn(this.props.formik.touched, this.props.name) || Object.keys(this.props).length !== Object.keys(props).length || props.formik.isSubmitting !== this.props.formik.isSubmitting) {\n return true;\n } else {\n return false;\n }\n };\n\n _proto.componentDidMount = function componentDidMount() {\n // Register the Field with the parent Formik. Parent will cycle through\n // registered Field's validate fns right prior to submit\n this.props.formik.registerField(this.props.name, {\n validate: this.props.validate\n });\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (this.props.name !== prevProps.name) {\n this.props.formik.unregisterField(prevProps.name);\n this.props.formik.registerField(this.props.name, {\n validate: this.props.validate\n });\n }\n\n if (this.props.validate !== prevProps.validate) {\n this.props.formik.registerField(this.props.name, {\n validate: this.props.validate\n });\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.props.formik.unregisterField(this.props.name);\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n name = _this$props.name,\n render = _this$props.render,\n is = _this$props.as,\n children = _this$props.children,\n component = _this$props.component,\n formik = _this$props.formik,\n props = _objectWithoutPropertiesLoose(_this$props, [\"validate\", \"name\", \"render\", \"as\", \"children\", \"component\", \"shouldUpdate\", \"formik\"]);\n\n var restOfFormik = _objectWithoutPropertiesLoose(formik, [\"validate\", \"validationSchema\"]);\n\n var field = formik.getFieldProps(_extends({\n name: name\n }, props));\n var meta = {\n value: getIn(formik.values, name),\n error: getIn(formik.errors, name),\n touched: !!getIn(formik.touched, name),\n initialValue: getIn(formik.initialValues, name),\n initialTouched: !!getIn(formik.initialTouched, name),\n initialError: getIn(formik.initialErrors, name)\n };\n var bag = {\n field: field,\n meta: meta,\n form: restOfFormik\n };\n\n if (render) {\n return render(bag);\n }\n\n if (isFunction(children)) {\n return children(bag);\n }\n\n if (component) {\n // This behavior is backwards compat with earlier Formik 0.9 to 1.x\n if (typeof component === 'string') {\n var innerRef = props.innerRef,\n rest = _objectWithoutPropertiesLoose(props, [\"innerRef\"]);\n\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(component, _extends({\n ref: innerRef\n }, field, rest), children);\n } // We don't pass `meta` for backwards compat\n\n\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(component, _extends({\n field: field,\n form: formik\n }, props), children);\n } // default to input here so we can check for both `as` and `children` above\n\n\n var asElement = is || 'input';\n\n if (typeof asElement === 'string') {\n var _innerRef = props.innerRef,\n _rest = _objectWithoutPropertiesLoose(props, [\"innerRef\"]);\n\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(asElement, _extends({\n ref: _innerRef\n }, field, _rest), children);\n }\n\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(asElement, _extends({}, field, props), children);\n };\n\n return FastFieldInner;\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component);\n\nvar FastField = /*#__PURE__*/connect(FastFieldInner);\n\n\n//# sourceMappingURL=formik.esm.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvZm9ybWlrL2Rpc3QvZm9ybWlrLmVzbS5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQTZMO0FBQ3BKO0FBQ1A7QUFDa0I7QUFDaEI7QUFDRTtBQUNEO0FBQ3NCO0FBQ2Y7O0FBRTVDO0FBQ0E7QUFDQSxvQkFBb0Isc0JBQXNCO0FBQzFDOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGNBQWMsdUJBQXVCO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsU0FBUyxpREFBYztBQUN2QjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxXQUFXO0FBQ3RCLFlBQVk7QUFDWjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGFBQWEsNERBQU07O0FBRW5CO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FB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QUFxSCxvQ0FBb0MsQ0FBZ0I7QUFDM1Esd0RBQXdELEtBQXFDLEdBQUcsd0RBQVMsNEhBQTRILDJDQUEyQyxDQUFnQjtBQUNoUywyREFBMkQsS0FBcUMsR0FBRyx3REFBUywyR0FBMkcseUNBQXlDLENBQWdCO0FBQ2hSO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxlQUFlLG9EQUFhO0FBQzVCO0FBQ0EsU0FBUztBQUNULFFBQVE7OztBQUdSLGFBQWEsb0RBQWE7QUFDMUI7QUFDQTtBQUNBLE9BQU87QUFDUCxNQUFNOzs7QUFHTjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsYUFBYSxvREFBYTtBQUMxQjtBQUNBLE9BQU87QUFDUDs7QUFFQSxXQUFXLG9EQUFhLHVCQUF1QjtBQUMvQzs7QUFFQTtBQUNBLENBQUMsQ0FBQyw0Q0FBUzs7QUFFWDs7QUFFc2I7QUFDdGIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2Zvcm1pay9kaXN0L2Zvcm1pay5lc20uanM/MzMwMCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGlsZHJlbiwgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCwgdXNlUmVmLCB1c2VFZmZlY3QsIHVzZVJlZHVjZXIsIHVzZUNhbGxiYWNrLCB1c2VNZW1vLCB1c2VJbXBlcmF0aXZlSGFuZGxlLCBjcmVhdGVFbGVtZW50LCB1c2VMYXlvdXRFZmZlY3QsIGZvcndhcmRSZWYsIENvbXBvbmVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBpc0VxdWFsIGZyb20gJ3JlYWN0LWZhc3QtY29tcGFyZSc7XG5pbXBvcnQgZGVlcG1lcmdlIGZyb20gJ2RlZXBtZXJnZSc7XG5pbXBvcnQgaXNQbGFpbk9iamVjdCBmcm9tICdsb2Rhc2gtZXMvaXNQbGFpbk9iamVjdCc7XG5pbXBvcnQgY2xvbmUgZnJvbSAnbG9kYXNoLWVzL2Nsb25lJztcbmltcG9ydCB0b1BhdGggZnJvbSAnbG9kYXNoLWVzL3RvUGF0aCc7XG5pbXBvcnQgaW52YXJpYW50IGZyb20gJ3Rpbnktd2FybmluZyc7XG5pbXBvcnQgaG9pc3ROb25SZWFjdFN0YXRpY3MgZnJvbSAnaG9pc3Qtbm9uLXJlYWN0LXN0YXRpY3MnO1xuaW1wb3J0IGNsb25lRGVlcCBmcm9tICdsb2Rhc2gtZXMvY2xvbmVEZWVwJztcblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7XG4gIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7XG4gICAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07XG5cbiAgICAgIGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHtcbiAgICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfTtcblxuICByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cblxuZnVuY3Rpb24gX2luaGVyaXRzTG9vc2Uoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHtcbiAgc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzLnByb3RvdHlwZSk7XG4gIHN1YkNsYXNzLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IHN1YkNsYXNzO1xuICBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzO1xufVxuXG5mdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShzb3VyY2UsIGV4Y2x1ZGVkKSB7XG4gIGlmIChzb3VyY2UgPT0gbnVsbCkgcmV0dXJuIHt9O1xuICB2YXIgdGFyZ2V0ID0ge307XG4gIHZhciBzb3VyY2VLZXlzID0gT2JqZWN0LmtleXMoc291cmNlKTtcbiAgdmFyIGtleSwgaTtcblxuICBmb3IgKGkgPSAwOyBpIDwgc291cmNlS2V5cy5sZW5ndGg7IGkrKykge1xuICAgIGtleSA9IHNvdXJjZUtleXNbaV07XG4gICAgaWYgKGV4Y2x1ZGVkLmluZGV4T2Yoa2V5KSA+PSAwKSBjb250aW51ZTtcbiAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldO1xuICB9XG5cbiAgcmV0dXJuIHRhcmdldDtcbn1cblxuZnVuY3Rpb24gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKSB7XG4gIGlmIChzZWxmID09PSB2b2lkIDApIHtcbiAgICB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7XG4gIH1cblxuICByZXR1cm4gc2VsZjtcbn1cblxuLyoqIEBwcml2YXRlIGlzIHRoZSB2YWx1ZSBhbiBlbXB0eSBhcnJheT8gKi9cblxudmFyIGlzRW1wdHlBcnJheSA9IGZ1bmN0aW9uIGlzRW1wdHlBcnJheSh2YWx1ZSkge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID09PSAwO1xufTtcbi8qKiBAcHJpdmF0ZSBpcyB0aGUgZ2l2ZW4gb2JqZWN0IGEgRnVuY3Rpb24/ICovXG5cbnZhciBpc0Z1bmN0aW9uID0gZnVuY3Rpb24gaXNGdW5jdGlvbihvYmopIHtcbiAgcmV0dXJuIHR5cGVvZiBvYmogPT09ICdmdW5jdGlvbic7XG59O1xuLyoqIEBwcml2YXRlIGlzIHRoZSBnaXZlbiBvYmplY3QgYW4gT2JqZWN0PyAqL1xuXG52YXIgaXNPYmplY3QgPSBmdW5jdGlvbiBpc09iamVjdChvYmopIHtcbiAgcmV0dXJuIG9iaiAhPT0gbnVsbCAmJiB0eXBlb2Ygb2JqID09PSAnb2JqZWN0Jztcbn07XG4vKiogQHByaXZhdGUgaXMgdGhlIGdpdmVuIG9iamVjdCBhbiBpbnRlZ2VyPyAqL1xuXG52YXIgaXNJbnRlZ2VyID0gZnVuY3Rpb24gaXNJbnRlZ2VyKG9iaikge1xuICByZXR1cm4gU3RyaW5nKE1hdGguZmxvb3IoTnVtYmVyKG9iaikpKSA9PT0gb2JqO1xufTtcbi8qKiBAcHJpdmF0ZSBpcyB0aGUgZ2l2ZW4gb2JqZWN0IGEgc3RyaW5nPyAqL1xuXG52YXIgaXNTdHJpbmcgPSBmdW5jdGlvbiBpc1N0cmluZyhvYmopIHtcbiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmopID09PSAnW29iamVjdCBTdHJpbmddJztcbn07XG4vKiogQHByaXZhdGUgaXMgdGhlIGdpdmVuIG9iamVjdCBhIE5hTj8gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZWxmLWNvbXBhcmVcblxudmFyIGlzTmFOJDEgPSBmdW5jdGlvbiBpc05hTihvYmopIHtcbiAgcmV0dXJuIG9iaiAhPT0gb2JqO1xufTtcbi8qKiBAcHJpdmF0ZSBEb2VzIGEgUmVhY3QgY29tcG9uZW50IGhhdmUgZXhhY3RseSAwIGNoaWxkcmVuPyAqL1xuXG52YXIgaXNFbXB0eUNoaWxkcmVuID0gZnVuY3Rpb24gaXNFbXB0eUNoaWxkcmVuKGNoaWxkcmVuKSB7XG4gIHJldHVybiBDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPT09IDA7XG59O1xuLyoqIEBwcml2YXRlIGlzIHRoZSBnaXZlbiBvYmplY3QvdmFsdWUgYSBwcm9taXNlPyAqL1xuXG52YXIgaXNQcm9taXNlID0gZnVuY3Rpb24gaXNQcm9taXNlKHZhbHVlKSB7XG4gIHJldHVybiBpc09iamVjdCh2YWx1ZSkgJiYgaXNGdW5jdGlvbih2YWx1ZS50aGVuKTtcbn07XG4vKiogQHByaXZhdGUgaXMgdGhlIGdpdmVuIG9iamVjdC92YWx1ZSBhIHR5cGUgb2Ygc3ludGhldGljIGV2ZW50PyAqL1xuXG52YXIgaXNJbnB1dEV2ZW50ID0gZnVuY3Rpb24gaXNJbnB1dEV2ZW50KHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSAmJiBpc09iamVjdCh2YWx1ZSkgJiYgaXNPYmplY3QodmFsdWUudGFyZ2V0KTtcbn07XG4vKipcclxuICogU2FtZSBhcyBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGJ1dCB3cmFwcyBpbiBhIHRyeS1jYXRjaCBibG9jay4gSW4gSUUgaXQgaXNcclxuICogbm90IHNhZmUgdG8gY2FsbCBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGlmIHRoZXJlIGlzIG5vdGhpbmcgZm9jdXNlZC5cclxuICpcclxuICogVGhlIGFjdGl2ZUVsZW1lbnQgd2lsbCBiZSBudWxsIG9ubHkgaWYgdGhlIGRvY3VtZW50IG9yIGRvY3VtZW50IGJvZHkgaXMgbm90XHJcbiAqIHlldCBkZWZpbmVkLlxyXG4gKlxyXG4gKiBAcGFyYW0gez9Eb2N1bWVudH0gZG9jIERlZmF1bHRzIHRvIGN1cnJlbnQgZG9jdW1lbnQuXHJcbiAqIEByZXR1cm4ge0VsZW1lbnQgfCBudWxsfVxyXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9mYmpzL2Jsb2IvbWFzdGVyL3BhY2thZ2VzL2ZianMvc3JjL2NvcmUvZG9tL2dldEFjdGl2ZUVsZW1lbnQuanNcclxuICovXG5cbmZ1bmN0aW9uIGdldEFjdGl2ZUVsZW1lbnQoZG9jKSB7XG4gIGRvYyA9IGRvYyB8fCAodHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJyA/IGRvY3VtZW50IDogdW5kZWZpbmVkKTtcblxuICBpZiAodHlwZW9mIGRvYyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHRyeSB7XG4gICAgcmV0dXJuIGRvYy5hY3RpdmVFbGVtZW50IHx8IGRvYy5ib2R5O1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGRvYy5ib2R5O1xuICB9XG59XG4vKipcclxuICogRGVlcGx5IGdldCBhIHZhbHVlIGZyb20gYW4gb2JqZWN0IHZpYSBpdHMgcGF0aC5cclxuICovXG5cbmZ1bmN0aW9uIGdldEluKG9iaiwga2V5LCBkZWYsIHApIHtcbiAgaWYgKHAgPT09IHZvaWQgMCkge1xuICAgIHAgPSAwO1xuICB9XG5cbiAgdmFyIHBhdGggPSB0b1BhdGgoa2V5KTtcblxuICB3aGlsZSAob2JqICYmIHAgPCBwYXRoLmxlbmd0aCkge1xuICAgIG9iaiA9IG9ialtwYXRoW3ArK11dO1xuICB9XG5cbiAgcmV0dXJuIG9iaiA9PT0gdW5kZWZpbmVkID8gZGVmIDogb2JqO1xufVxuLyoqXHJcbiAqIERlZXBseSBzZXQgYSB2YWx1ZSBmcm9tIGluIG9iamVjdCB2aWEgaXQncyBwYXRoLiBJZiB0aGUgdmFsdWUgYXQgYHBhdGhgXHJcbiAqIGhhcyBjaGFuZ2VkLCByZXR1cm4gYSBzaGFsbG93IGNvcHkgb2Ygb2JqIHdpdGggYHZhbHVlYCBzZXQgYXQgYHBhdGhgLlxyXG4gKiBJZiBgdmFsdWVgIGhhcyBub3QgY2hhbmdlZCwgcmV0dXJuIHRoZSBvcmlnaW5hbCBgb2JqYC5cclxuICpcclxuICogRXhpc3Rpbmcgb2JqZWN0cyAvIGFycmF5cyBhbG9uZyBgcGF0aGAgYXJlIGFsc28gc2hhbGxvdyBjb3BpZWQuIFNpYmxpbmdcclxuICogb2JqZWN0cyBhbG9uZyBwYXRoIHJldGFpbiB0aGUgc2FtZSBpbnRlcm5hbCBqcyByZWZlcmVuY2UuIFNpbmNlIG5ld1xyXG4gKiBvYmplY3RzIC8gYXJyYXlzIGFyZSBvbmx5IGNyZWF0ZWQgYWxvbmcgYHBhdGhgLCB3ZSBjYW4gdGVzdCBpZiBhbnl0aGluZ1xyXG4gKiBjaGFuZ2VkIGluIGEgbmVzdGVkIHN0cnVjdHVyZSBieSBjb21wYXJpbmcgdGhlIG9iamVjdCdzIHJlZmVyZW5jZSBpblxyXG4gKiB0aGUgb2xkIGFuZCBuZXcgb2JqZWN0LCBzaW1pbGFyIHRvIGhvdyBydXNzaWFuIGRvbGwgY2FjaGUgaW52YWxpZGF0aW9uXHJcbiAqIHdvcmtzLlxyXG4gKlxyXG4gKiBJbiBlYXJsaWVyIHZlcnNpb25zIG9mIHRoaXMgZnVuY3Rpb24sIHdoaWNoIHVzZWQgY2xvbmVEZWVwLCB0aGVyZSB3ZXJlXHJcbiAqIGlzc3VlcyB3aGVyZWJ5IHNldHRpbmdzIGEgbmVzdGVkIHZhbHVlIHdvdWxkIG11dGF0ZSB0aGUgcGFyZW50XHJcbiAqIGluc3RlYWQgb2YgY3JlYXRpbmcgYSBuZXcgb2JqZWN0LiBgY2xvbmVgIGF2b2lkcyB0aGF0IGJ1ZyBtYWtpbmcgYVxyXG4gKiBzaGFsbG93IGNvcHkgb2YgdGhlIG9iamVjdHMgYWxvbmcgdGhlIHVwZGF0ZSBwYXRoXHJcbiAqIHNvIG5vIG9iamVjdCBpcyBtdXRhdGVkIGluIHBsYWNlLlxyXG4gKlxyXG4gKiBCZWZvcmUgY2hhbmdpbmcgdGhpcyBmdW5jdGlvbiwgcGxlYXNlIHJlYWQgdGhyb3VnaCB0aGUgZm9sbG93aW5nXHJcbiAqIGRpc2N1c3Npb25zLlxyXG4gKlxyXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9kZXZlbG9waXQvbGlua3N0YXRlXHJcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2phcmVkcGFsbWVyL2Zvcm1pay9wdWxsLzEyM1xyXG4gKi9cblxuZnVuY3Rpb24gc2V0SW4ob2JqLCBwYXRoLCB2YWx1ZSkge1xuICB2YXIgcmVzID0gY2xvbmUob2JqKTsgLy8gdGhpcyBrZWVwcyBpbmhlcml0YW5jZSB3aGVuIG9iaiBpcyBhIGNsYXNzXG5cbiAgdmFyIHJlc1ZhbCA9IHJlcztcbiAgdmFyIGkgPSAwO1xuICB2YXIgcGF0aEFycmF5ID0gdG9QYXRoKHBhdGgpO1xuXG4gIGZvciAoOyBpIDwgcGF0aEFycmF5Lmxlbmd0aCAtIDE7IGkrKykge1xuICAgIHZhciBjdXJyZW50UGF0aCA9IHBhdGhBcnJheVtpXTtcbiAgICB2YXIgY3VycmVudE9iaiA9IGdldEluKG9iaiwgcGF0aEFycmF5LnNsaWNlKDAsIGkgKyAxKSk7XG5cbiAgICBpZiAoY3VycmVudE9iaiAmJiAoaXNPYmplY3QoY3VycmVudE9iaikgfHwgQXJyYXkuaXNBcnJheShjdXJyZW50T2JqKSkpIHtcbiAgICAgIHJlc1ZhbCA9IHJlc1ZhbFtjdXJyZW50UGF0aF0gPSBjbG9uZShjdXJyZW50T2JqKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIG5leHRQYXRoID0gcGF0aEFycmF5W2kgKyAxXTtcbiAgICAgIHJlc1ZhbCA9IHJlc1ZhbFtjdXJyZW50UGF0aF0gPSBpc0ludGVnZXIobmV4dFBhdGgpICYmIE51bWJlcihuZXh0UGF0aCkgPj0gMCA/IFtdIDoge307XG4gICAgfVxuICB9IC8vIFJldHVybiBvcmlnaW5hbCBvYmplY3QgaWYgbmV3IHZhbHVlIGlzIHRoZSBzYW1lIGFzIGN1cnJlbnRcblxuXG4gIGlmICgoaSA9PT0gMCA/IG9iaiA6IHJlc1ZhbClbcGF0aEFycmF5W2ldXSA9PT0gdmFsdWUpIHtcbiAgICByZXR1cm4gb2JqO1xuICB9XG5cbiAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICBkZWxldGUgcmVzVmFsW3BhdGhBcnJheVtpXV07XG4gIH0gZWxzZSB7XG4gICAgcmVzVmFsW3BhdGhBcnJheVtpXV0gPSB2YWx1ZTtcbiAgfSAvLyBJZiB0aGUgcGF0aCBhcnJheSBoYXMgYSBzaW5nbGUgZWxlbWVudCwgdGhlIGxvb3AgZGlkIG5vdCBydW4uXG4gIC8vIERlbGV0aW5nIG9uIGByZXNWYWxgIGhhZCBubyBlZmZlY3QgaW4gdGhpcyBzY2VuYXJpbywgc28gd2UgZGVsZXRlIG9uIHRoZSByZXN1bHQgaW5zdGVhZC5cblxuXG4gIGlmIChpID09PSAwICYmIHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICBkZWxldGUgcmVzW3BhdGhBcnJheVtpXV07XG4gIH1cblxuICByZXR1cm4gcmVzO1xufVxuLyoqXHJcbiAqIFJlY3Vyc2l2ZWx5IGEgc2V0IHRoZSBzYW1lIHZhbHVlIGZvciBhbGwga2V5cyBhbmQgYXJyYXlzIG5lc3RlZCBvYmplY3QsIGNsb25pbmdcclxuICogQHBhcmFtIG9iamVjdFxyXG4gKiBAcGFyYW0gdmFsdWVcclxuICogQHBhcmFtIHZpc2l0ZWRcclxuICogQHBhcmFtIHJlc3BvbnNlXHJcbiAqL1xuXG5mdW5jdGlvbiBzZXROZXN0ZWRPYmplY3RWYWx1ZXMob2JqZWN0LCB2YWx1ZSwgdmlzaXRlZCwgcmVzcG9uc2UpIHtcbiAgaWYgKHZpc2l0ZWQgPT09IHZvaWQgMCkge1xuICAgIHZpc2l0ZWQgPSBuZXcgV2Vha01hcCgpO1xuICB9XG5cbiAgaWYgKHJlc3BvbnNlID09PSB2b2lkIDApIHtcbiAgICByZXNwb25zZSA9IHt9O1xuICB9XG5cbiAgZm9yICh2YXIgX2kgPSAwLCBfT2JqZWN0JGtleXMgPSBPYmplY3Qua2V5cyhvYmplY3QpOyBfaSA8IF9PYmplY3Qka2V5cy5sZW5ndGg7IF9pKyspIHtcbiAgICB2YXIgayA9IF9PYmplY3Qka2V5c1tfaV07XG4gICAgdmFyIHZhbCA9IG9iamVjdFtrXTtcblxuICAgIGlmIChpc09iamVjdCh2YWwpKSB7XG4gICAgICBpZiAoIXZpc2l0ZWQuZ2V0KHZhbCkpIHtcbiAgICAgICAgdmlzaXRlZC5zZXQodmFsLCB0cnVlKTsgLy8gSW4gb3JkZXIgdG8ga2VlcCBhcnJheSB2YWx1ZXMgY29uc2lzdGVudCBmb3IgYm90aCBkb3QgcGF0aCAgYW5kXG4gICAgICAgIC8vIGJyYWNrZXQgc3ludGF4LCB3ZSBuZWVkIHRvIGNoZWNrIGlmIHRoaXMgaXMgYW4gYXJyYXkgc28gdGhhdFxuICAgICAgICAvLyB0aGlzIHdpbGwgb3V0cHV0ICB7IGZyaWVuZHM6IFt0cnVlXSB9IGFuZCBub3QgeyBmcmllbmRzOiB7IFwiMFwiOiB0cnVlIH0gfVxuXG4gICAgICAgIHJlc3BvbnNlW2tdID0gQXJyYXkuaXNBcnJheSh2YWwpID8gW10gOiB7fTtcbiAgICAgICAgc2V0TmVzdGVkT2JqZWN0VmFsdWVzKHZhbCwgdmFsdWUsIHZpc2l0ZWQsIHJlc3BvbnNlW2tdKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmVzcG9uc2Vba10gPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzcG9uc2U7XG59XG5cbnZhciBGb3JtaWtDb250ZXh0ID0gLyojX19QVVJFX18qL2NyZWF0ZUNvbnRleHQodW5kZWZpbmVkKTtcbkZvcm1pa0NvbnRleHQuZGlzcGxheU5hbWUgPSAnRm9ybWlrQ29udGV4dCc7XG52YXIgRm9ybWlrUHJvdmlkZXIgPSBGb3JtaWtDb250ZXh0LlByb3ZpZGVyO1xudmFyIEZvcm1pa0NvbnN1bWVyID0gRm9ybWlrQ29udGV4dC5Db25zdW1lcjtcbmZ1bmN0aW9uIHVzZUZvcm1pa0NvbnRleHQoKSB7XG4gIHZhciBmb3JtaWsgPSB1c2VDb250ZXh0KEZvcm1pa0NvbnRleHQpO1xuICAhISFmb3JtaWsgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyBpbnZhcmlhbnQoZmFsc2UsIFwiRm9ybWlrIGNvbnRleHQgaXMgdW5kZWZpbmVkLCBwbGVhc2UgdmVyaWZ5IHlvdSBhcmUgY2FsbGluZyB1c2VGb3JtaWtDb250ZXh0KCkgYXMgY2hpbGQgb2YgYSA8Rm9ybWlrPiBjb21wb25lbnQuXCIpIDogaW52YXJpYW50KGZhbHNlKSA6IHZvaWQgMDtcbiAgcmV0dXJuIGZvcm1paztcbn1cblxuZnVuY3Rpb24gZm9ybWlrUmVkdWNlcihzdGF0ZSwgbXNnKSB7XG4gIHN3aXRjaCAobXNnLnR5cGUpIHtcbiAgICBjYXNlICdTRVRfVkFMVUVTJzpcbiAgICAgIHJldHVybiBfZXh0ZW5kcyh7fSwgc3RhdGUsIHtcbiAgICAgICAgdmFsdWVzOiBtc2cucGF5bG9hZFxuICAgICAgfSk7XG5cbiAgICBjYXNlICdTRVRfVE9VQ0hFRCc6XG4gICAgICByZXR1cm4gX2V4dGVuZHMoe30sIHN0YXRlLCB7XG4gICAgICAgIHRvdWNoZWQ6IG1zZy5wYXlsb2FkXG4gICAgICB9KTtcblxuICAgIGNhc2UgJ1NFVF9FUlJPUlMnOlxuICAgICAgaWYgKGlzRXF1YWwoc3RhdGUuZXJyb3JzLCBtc2cucGF5bG9hZCkpIHtcbiAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gX2V4dGVuZHMoe30sIHN0YXRlLCB7XG4gICAgICAgIGVycm9yczogbXNnLnBheWxvYWRcbiAgICAgIH0pO1xuXG4gICAgY2FzZSAnU0VUX1NUQVRVUyc6XG4gICAgICByZXR1cm4gX2V4dGVuZHMoe30sIHN0YXRlLCB7XG4gICAgICAgIHN0YXR1czogbXNnLnBheWxvYWRcbiAgICAgIH0pO1xuXG4gICAgY2FzZSAnU0VUX0lTU1VCTUlUVElORyc6XG4gICAgICByZXR1cm4gX2V4dGVuZHMoe30sIHN0YXRlLCB7XG4gICAgICAgIGlzU3VibWl0dGluZzogbXNnLnBheWxvYWRcbiAgICAgIH0pO1xuXG4gICAgY2FzZSAnU0VUX0lTVkFMSURBVElORyc6XG4gICAgICByZXR1cm4gX2V4dGVuZHMoe30sIHN0YXRlLCB7XG4gICAgICAgIGlzVmFsaWRhdGluZzogbXNnLnBheWxvYWRcbiAgICAgIH0pO1xuXG4gICAgY2FzZSAnU0VUX0ZJRUxEX1ZBTFVFJzpcbiAgICAgIHJldHVybiBfZXh0ZW5kcyh7fSwgc3RhdGUsIHtcbiAgICAgICAgdmFsdWVzOiBzZXRJbihzdGF0ZS52YWx1ZXMsIG1zZy5wYXlsb2FkLmZpZWxkLCBtc2cucGF5bG9hZC52YWx1ZSlcbiAgICAgIH0pO1xuXG4gICAgY2FzZSAnU0VUX0ZJRUxEX1RPVUNIRUQnOlxuICAgICAgcmV0dXJuIF9leHRlbmRzKHt9LCBzdGF0ZSwge1xuICAgICAgICB0b3VjaGVkOiBzZXRJbihzdGF0ZS50b3VjaGVkLCBtc2cucGF5bG9hZC5maWVsZCwgbXNnLnBheWxvYWQudmFsdWUpXG4gICAgICB9KTtcblxuICAgIGNhc2UgJ1NFVF9GSUVMRF9FUlJPUic6XG4gICAgICByZXR1cm4gX2V4dGVuZHMoe30sIHN0YXRlLCB7XG4gICAgICAgIGVycm9yczogc2V0SW4oc3RhdGUuZXJyb3JzLCBtc2cucGF5bG9hZC5maWVsZCwgbXNnLnBheWxvYWQudmFsdWUpXG4gICAgICB9KTtcblxuICAgIGNhc2UgJ1JFU0VUX0ZPUk0nOlxuICAgICAgcmV0dXJuIF9leHRlbmRzKHt9LCBzdGF0ZSwgbXNnLnBheWxvYWQpO1xuXG4gICAgY2FzZSAnU0VUX0ZPUk1JS19TVEFURSc6XG4gICAgICByZXR1cm4gbXNnLnBheWxvYWQoc3RhdGUpO1xuXG4gICAgY2FzZSAnU1VCTUlUX0FUVEVNUFQnOlxuICAgICAgcmV0dXJuIF9leHRlbmRzKHt9LCBzdGF0ZSwge1xuICAgICAgICB0b3VjaGVkOiBzZXROZXN0ZWRPYmplY3RWYWx1ZXMoc3RhdGUudmFsdWVzLCB0cnVlKSxcbiAgICAgICAgaXNTdWJtaXR0aW5nOiB0cnVlLFxuICAgICAgICBzdWJtaXRDb3VudDogc3RhdGUuc3VibWl0Q291bnQgKyAxXG4gICAgICB9KTtcblxuICAgIGNhc2UgJ1NVQk1JVF9GQUlMVVJFJzpcbiAgICAgIHJldHVybiBfZXh0ZW5kcyh7fSwgc3RhdGUsIHtcbiAgICAgICAgaXNTdWJtaXR0aW5nOiBmYWxzZVxuICAgICAgfSk7XG5cbiAgICBjYXNlICdTVUJNSVRfU1VDQ0VTUyc6XG4gICAgICByZXR1cm4gX2V4dGVuZHMoe30sIHN0YXRlLCB7XG4gICAgICAgIGlzU3VibWl0dGluZzogZmFsc2VcbiAgICAgIH0pO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBzdGF0ZTtcbiAgfVxufSAvLyBJbml0aWFsIGVtcHR5IHN0YXRlcyAvLyBvYmplY3RzXG5cblxudmFyIGVtcHR5RXJyb3JzID0ge307XG52YXIgZW1wdHlUb3VjaGVkID0ge307XG5mdW5jdGlvbiB1c2VGb3JtaWsoX3JlZikge1xuICB2YXIgX3JlZiR2YWxpZGF0ZU9uQ2hhbmdlID0gX3JlZi52YWxpZGF0ZU9uQ2hhbmdlLFxuICAgICAgdmFsaWRhdGVPbkNoYW5nZSA9IF9yZWYkdmFsaWRhdGVPbkNoYW5nZSA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9yZWYkdmFsaWRhdGVPbkNoYW5nZSxcbiAgICAgIF9yZWYkdmFsaWRhdGVPbkJsdXIgPSBfcmVmLnZhbGlkYXRlT25CbHVyLFxuICAgICAgdmFsaWRhdGVPbkJsdXIgPSBfcmVmJHZhbGlkYXRlT25CbHVyID09PSB2b2lkIDAgPyB0cnVlIDogX3JlZiR2YWxpZGF0ZU9uQmx1cixcbiAgICAgIF9yZWYkdmFsaWRhdGVPbk1vdW50ID0gX3JlZi52YWxpZGF0ZU9uTW91bnQsXG4gICAgICB2YWxpZGF0ZU9uTW91bnQgPSBfcmVmJHZhbGlkYXRlT25Nb3VudCA9PT0gdm9pZCAwID8gZmFsc2UgOiBfcmVmJHZhbGlkYXRlT25Nb3VudCxcbiAgICAgIGlzSW5pdGlhbFZhbGlkID0gX3JlZi5pc0luaXRpYWxWYWxpZCxcbiAgICAgIF9yZWYkZW5hYmxlUmVpbml0aWFsaSA9IF9yZWYuZW5hYmxlUmVpbml0aWFsaXplLFxuICAgICAgZW5hYmxlUmVpbml0aWFsaXplID0gX3JlZiRlbmFibGVSZWluaXRpYWxpID09PSB2b2lkIDAgPyBmYWxzZSA6IF9yZWYkZW5hYmxlUmVpbml0aWFsaSxcbiAgICAgIG9uU3VibWl0ID0gX3JlZi5vblN1Ym1pdCxcbiAgICAgIHJlc3QgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShfcmVmLCBbXCJ2YWxpZGF0ZU9uQ2hhbmdlXCIsIFwidmFsaWRhdGVPbkJsdXJcIiwgXCJ2YWxpZGF0ZU9uTW91bnRcIiwgXCJpc0luaXRpYWxWYWxpZFwiLCBcImVuYWJsZVJlaW5pdGlhbGl6ZVwiLCBcIm9uU3VibWl0XCJdKTtcblxuICB2YXIgcHJvcHMgPSBfZXh0ZW5kcyh7XG4gICAgdmFsaWRhdGVPbkNoYW5nZTogdmFsaWRhdGVPbkNoYW5nZSxcbiAgICB2YWxpZGF0ZU9uQmx1cjogdmFsaWRhdGVPbkJsdXIsXG4gICAgdmFsaWRhdGVPbk1vdW50OiB2YWxpZGF0ZU9uTW91bnQsXG4gICAgb25TdWJtaXQ6IG9uU3VibWl0XG4gIH0sIHJlc3QpO1xuXG4gIHZhciBpbml0aWFsVmFsdWVzID0gdXNlUmVmKHByb3BzLmluaXRpYWxWYWx1ZXMpO1xuICB2YXIgaW5pdGlhbEVycm9ycyA9IHVzZVJlZihwcm9wcy5pbml0aWFsRXJyb3JzIHx8IGVtcHR5RXJyb3JzKTtcbiAgdmFyIGluaXRpYWxUb3VjaGVkID0gdXNlUmVmKHByb3BzLmluaXRpYWxUb3VjaGVkIHx8IGVtcHR5VG91Y2hlZCk7XG4gIHZhciBpbml0aWFsU3RhdHVzID0gdXNlUmVmKHByb3BzLmluaXRpYWxTdGF0dXMpO1xuICB2YXIgaXNNb3VudGVkID0gdXNlUmVmKGZhbHNlKTtcbiAgdmFyIGZpZWxkUmVnaXN0cnkgPSB1c2VSZWYoe30pO1xuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgISh0eXBlb2YgaXNJbml0aWFsVmFsaWQgPT09ICd1bmRlZmluZWQnKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IGludmFyaWFudChmYWxzZSwgJ2lzSW5pdGlhbFZhbGlkIGhhcyBiZWVuIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBmdXR1cmUgdmVyc2lvbnMgb2YgRm9ybWlrLiBQbGVhc2UgdXNlIGluaXRpYWxFcnJvcnMgb3IgdmFsaWRhdGVPbk1vdW50IGluc3RlYWQuJykgOiBpbnZhcmlhbnQoZmFsc2UpIDogdm9pZCAwOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICB9LCBbXSk7XG4gIH1cblxuICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIGlzTW91bnRlZC5jdXJyZW50ID0gdHJ1ZTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgaXNNb3VudGVkLmN1cnJlbnQgPSBmYWxzZTtcbiAgICB9O1xuICB9LCBbXSk7XG5cbiAgdmFyIF9SZWFjdCR1c2VSZWR1Y2VyID0gdXNlUmVkdWNlcihmb3JtaWtSZWR1Y2VyLCB7XG4gICAgdmFsdWVzOiBwcm9wcy5pbml0aWFsVmFsdWVzLFxuICAgIGVycm9yczogcHJvcHMuaW5pdGlhbEVycm9ycyB8fCBlbXB0eUVycm9ycyxcbiAgICB0b3VjaGVkOiBwcm9wcy5pbml0aWFsVG91Y2hlZCB8fCBlbXB0eVRvdWNoZWQsXG4gICAgc3RhdHVzOiBwcm9wcy5pbml0aWFsU3RhdHVzLFxuICAgIGlzU3VibWl0dGluZzogZmFsc2UsXG4gICAgaXNWYWxpZGF0aW5nOiBmYWxzZSxcbiAgICBzdWJtaXRDb3VudDogMFxuICB9KSxcbiAgICAgIHN0YXRlID0gX1JlYWN0JHVzZVJlZHVjZXJbMF0sXG4gICAgICBkaXNwYXRjaCA9IF9SZWFjdCR1c2VSZWR1Y2VyWzFdO1xuXG4gIHZhciBydW5WYWxpZGF0ZUhhbmRsZXIgPSB1c2VDYWxsYmFjayhmdW5jdGlvbiAodmFsdWVzLCBmaWVsZCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICB2YXIgbWF5YmVQcm9taXNlZEVycm9ycyA9IHByb3BzLnZhbGlkYXRlKHZhbHVlcywgZmllbGQpO1xuXG4gICAgICBpZiAobWF5YmVQcm9taXNlZEVycm9ycyA9PSBudWxsKSB7XG4gICAgICAgIC8vIHVzZSBsb29zZSBudWxsIGNoZWNrIGhlcmUgb24gcHVycG9zZVxuICAgICAgICByZXNvbHZlKGVtcHR5RXJyb3JzKTtcbiAgICAgIH0gZWxzZSBpZiAoaXNQcm9taXNlKG1heWJlUHJvbWlzZWRFcnJvcnMpKSB7XG4gICAgICAgIG1heWJlUHJvbWlzZWRFcnJvcnMudGhlbihmdW5jdGlvbiAoZXJyb3JzKSB7XG4gICAgICAgICAgcmVzb2x2ZShlcnJvcnMgfHwgZW1wdHlFcnJvcnMpO1xuICAgICAgICB9LCBmdW5jdGlvbiAoYWN0dWFsRXhjZXB0aW9uKSB7XG4gICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcIldhcm5pbmc6IEFuIHVuaGFuZGxlZCBlcnJvciB3YXMgY2F1Z2h0IGR1cmluZyB2YWxpZGF0aW9uIGluIDxGb3JtaWsgdmFsaWRhdGUgLz5cIiwgYWN0dWFsRXhjZXB0aW9uKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZWplY3QoYWN0dWFsRXhjZXB0aW9uKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNvbHZlKG1heWJlUHJvbWlzZWRFcnJvcnMpO1xuICAgICAgfVxuICAgIH0pO1xuICB9LCBbcHJvcHMudmFsaWRhdGVdKTtcbiAgLyoqXHJcbiAgICogUnVuIHZhbGlkYXRpb24gYWdhaW5zdCBhIFl1cCBzY2hlbWEgYW5kIG9wdGlvbmFsbHkgcnVuIGEgZnVuY3Rpb24gaWYgc3VjY2Vzc2Z1bFxyXG4gICAqL1xuXG4gIHZhciBydW5WYWxpZGF0aW9uU2NoZW1hID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKHZhbHVlcywgZmllbGQpIHtcbiAgICB2YXIgdmFsaWRhdGlvblNjaGVtYSA9IHByb3BzLnZhbGlkYXRpb25TY2hlbWE7XG4gICAgdmFyIHNjaGVtYSA9IGlzRnVuY3Rpb24odmFsaWRhdGlvblNjaGVtYSkgPyB2YWxpZGF0aW9uU2NoZW1hKGZpZWxkKSA6IHZhbGlkYXRpb25TY2hlbWE7XG4gICAgdmFyIHByb21pc2UgPSBmaWVsZCAmJiBzY2hlbWEudmFsaWRhdGVBdCA/IHNjaGVtYS52YWxpZGF0ZUF0KGZpZWxkLCB2YWx1ZXMpIDogdmFsaWRhdGVZdXBTY2hlbWEodmFsdWVzLCBzY2hlbWEpO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICBwcm9taXNlLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICByZXNvbHZlKGVtcHR5RXJyb3JzKTtcbiAgICAgIH0sIGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgLy8gWXVwIHdpbGwgdGhyb3cgYSB2YWxpZGF0aW9uIGVycm9yIGlmIHZhbGlkYXRpb24gZmFpbHMuIFdlIGNhdGNoIHRob3NlIGFuZFxuICAgICAgICAvLyByZXNvbHZlIHRoZW0gaW50byBGb3JtaWsgZXJyb3JzLiBXZSBjYW4gc25pZmYgaWYgc29tZXRoaW5nIGlzIGEgWXVwIGVycm9yXG4gICAgICAgIC8vIGJ5IGNoZWNraW5nIGVycm9yLm5hbWUuXG4gICAgICAgIC8vIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2pxdWVuc2UveXVwI3ZhbGlkYXRpb25lcnJvcmVycm9ycy1zdHJpbmctLWFycmF5c3RyaW5nLXZhbHVlLWFueS1wYXRoLXN0cmluZ1xuICAgICAgICBpZiAoZXJyLm5hbWUgPT09ICdWYWxpZGF0aW9uRXJyb3InKSB7XG4gICAgICAgICAgcmVzb2x2ZSh5dXBUb0Zvcm1FcnJvcnMoZXJyKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gV2UgdGhyb3cgYW55IG90aGVyIGVycm9yc1xuICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXCJXYXJuaW5nOiBBbiB1bmhhbmRsZWQgZXJyb3Igd2FzIGNhdWdodCBkdXJpbmcgdmFsaWRhdGlvbiBpbiA8Rm9ybWlrIHZhbGlkYXRpb25TY2hlbWEgLz5cIiwgZXJyKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH0sIFtwcm9wcy52YWxpZGF0aW9uU2NoZW1hXSk7XG4gIHZhciBydW5TaW5nbGVGaWVsZExldmVsVmFsaWRhdGlvbiA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChmaWVsZCwgdmFsdWUpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUpIHtcbiAgICAgIHJldHVybiByZXNvbHZlKGZpZWxkUmVnaXN0cnkuY3VycmVudFtmaWVsZF0udmFsaWRhdGUodmFsdWUpKTtcbiAgICB9KTtcbiAgfSwgW10pO1xuICB2YXIgcnVuRmllbGRMZXZlbFZhbGlkYXRpb25zID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKHZhbHVlcykge1xuICAgIHZhciBmaWVsZEtleXNXaXRoVmFsaWRhdGlvbiA9IE9iamVjdC5rZXlzKGZpZWxkUmVnaXN0cnkuY3VycmVudCkuZmlsdGVyKGZ1bmN0aW9uIChmKSB7XG4gICAgICByZXR1cm4gaXNGdW5jdGlvbihmaWVsZFJlZ2lzdHJ5LmN1cnJlbnRbZl0udmFsaWRhdGUpO1xuICAgIH0pOyAvLyBDb25zdHJ1Y3QgYW4gYXJyYXkgd2l0aCBhbGwgb2YgdGhlIGZpZWxkIHZhbGlkYXRpb24gZnVuY3Rpb25zXG5cbiAgICB2YXIgZmllbGRWYWxpZGF0aW9ucyA9IGZpZWxkS2V5c1dpdGhWYWxpZGF0aW9uLmxlbmd0aCA+IDAgPyBmaWVsZEtleXNXaXRoVmFsaWRhdGlvbi5tYXAoZnVuY3Rpb24gKGYpIHtcbiAgICAgIHJldHVybiBydW5TaW5nbGVGaWVsZExldmVsVmFsaWRhdGlvbihmLCBnZXRJbih2YWx1ZXMsIGYpKTtcbiAgICB9KSA6IFtQcm9taXNlLnJlc29sdmUoJ0RPX05PVF9ERUxFVEVfWU9VX1dJTExfQkVfRklSRUQnKV07IC8vIHVzZSBzcGVjaWFsIGNhc2UgOylcblxuICAgIHJldHVybiBQcm9taXNlLmFsbChmaWVsZFZhbGlkYXRpb25zKS50aGVuKGZ1bmN0aW9uIChmaWVsZEVycm9yc0xpc3QpIHtcbiAgICAgIHJldHVybiBmaWVsZEVycm9yc0xpc3QucmVkdWNlKGZ1bmN0aW9uIChwcmV2LCBjdXJyLCBpbmRleCkge1xuICAgICAgICBpZiAoY3VyciA9PT0gJ0RPX05PVF9ERUxFVEVfWU9VX1dJTExfQkVfRklSRUQnKSB7XG4gICAgICAgICAgcmV0dXJuIHByZXY7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY3Vycikge1xuICAgICAgICAgIHByZXYgPSBzZXRJbihwcmV2LCBmaWVsZEtleXNXaXRoVmFsaWRhdGlvbltpbmRleF0sIGN1cnIpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHByZXY7XG4gICAgICB9LCB7fSk7XG4gICAgfSk7XG4gIH0sIFtydW5TaW5nbGVGaWVsZExldmVsVmFsaWRhdGlvbl0pOyAvLyBSdW4gYWxsIHZhbGlkYXRpb25zIGFuZCByZXR1cm4gdGhlIHJlc3VsdFxuXG4gIHZhciBydW5BbGxWYWxpZGF0aW9ucyA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uICh2YWx1ZXMpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5hbGwoW3J1bkZpZWxkTGV2ZWxWYWxpZGF0aW9ucyh2YWx1ZXMpLCBwcm9wcy52YWxpZGF0aW9uU2NoZW1hID8gcnVuVmFsaWRhdGlvblNjaGVtYSh2YWx1ZXMpIDoge30sIHByb3BzLnZhbGlkYXRlID8gcnVuVmFsaWRhdGVIYW5kbGVyKHZhbHVlcykgOiB7fV0pLnRoZW4oZnVuY3Rpb24gKF9yZWYyKSB7XG4gICAgICB2YXIgZmllbGRFcnJvcnMgPSBfcmVmMlswXSxcbiAgICAgICAgICBzY2hlbWFFcnJvcnMgPSBfcmVmMlsxXSxcbiAgICAgICAgICB2YWxpZGF0ZUVycm9ycyA9IF9yZWYyWzJdO1xuICAgICAgdmFyIGNvbWJpbmVkRXJyb3JzID0gZGVlcG1lcmdlLmFsbChbZmllbGRFcnJvcnMsIHNjaGVtYUVycm9ycywgdmFsaWRhdGVFcnJvcnNdLCB7XG4gICAgICAgIGFycmF5TWVyZ2U6IGFycmF5TWVyZ2VcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGNvbWJpbmVkRXJyb3JzO1xuICAgIH0pO1xuICB9LCBbcHJvcHMudmFsaWRhdGUsIHByb3BzLnZhbGlkYXRpb25TY2hlbWEsIHJ1bkZpZWxkTGV2ZWxWYWxpZGF0aW9ucywgcnVuVmFsaWRhdGVIYW5kbGVyLCBydW5WYWxpZGF0aW9uU2NoZW1hXSk7IC8vIFJ1biBhbGwgdmFsaWRhdGlvbnMgbWV0aG9kcyBhbmQgdXBkYXRlIHN0YXRlIGFjY29yZGluZ2x5XG5cbiAgdmFyIHZhbGlkYXRlRm9ybVdpdGhIaWdoUHJpb3JpdHkgPSB1c2VFdmVudENhbGxiYWNrKGZ1bmN0aW9uICh2YWx1ZXMpIHtcbiAgICBpZiAodmFsdWVzID09PSB2b2lkIDApIHtcbiAgICAgIHZhbHVlcyA9IHN0YXRlLnZhbHVlcztcbiAgICB9XG5cbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiAnU0VUX0lTVkFMSURBVElORycsXG4gICAgICBwYXlsb2FkOiB0cnVlXG4gICAgfSk7XG4gICAgcmV0dXJuIHJ1bkFsbFZhbGlkYXRpb25zKHZhbHVlcykudGhlbihmdW5jdGlvbiAoY29tYmluZWRFcnJvcnMpIHtcbiAgICAgIGlmICghIWlzTW91bnRlZC5jdXJyZW50KSB7XG4gICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICB0eXBlOiAnU0VUX0lTVkFMSURBVElORycsXG4gICAgICAgICAgcGF5bG9hZDogZmFsc2VcbiAgICAgICAgfSk7XG4gICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICB0eXBlOiAnU0VUX0VSUk9SUycsXG4gICAgICAgICAgcGF5bG9hZDogY29tYmluZWRFcnJvcnNcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjb21iaW5lZEVycm9ycztcbiAgICB9KTtcbiAgfSk7XG4gIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHZhbGlkYXRlT25Nb3VudCAmJiBpc01vdW50ZWQuY3VycmVudCA9PT0gdHJ1ZSAmJiBpc0VxdWFsKGluaXRpYWxWYWx1ZXMuY3VycmVudCwgcHJvcHMuaW5pdGlhbFZhbHVlcykpIHtcbiAgICAgIHZhbGlkYXRlRm9ybVdpdGhIaWdoUHJpb3JpdHkoaW5pdGlhbFZhbHVlcy5jdXJyZW50KTtcbiAgICB9XG4gIH0sIFt2YWxpZGF0ZU9uTW91bnQsIHZhbGlkYXRlRm9ybVdpdGhIaWdoUHJpb3JpdHldKTtcbiAgdmFyIHJlc2V0Rm9ybSA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChuZXh0U3RhdGUpIHtcbiAgICB2YXIgdmFsdWVzID0gbmV4dFN0YXRlICYmIG5leHRTdGF0ZS52YWx1ZXMgPyBuZXh0U3RhdGUudmFsdWVzIDogaW5pdGlhbFZhbHVlcy5jdXJyZW50O1xuICAgIHZhciBlcnJvcnMgPSBuZXh0U3RhdGUgJiYgbmV4dFN0YXRlLmVycm9ycyA/IG5leHRTdGF0ZS5lcnJvcnMgOiBpbml0aWFsRXJyb3JzLmN1cnJlbnQgPyBpbml0aWFsRXJyb3JzLmN1cnJlbnQgOiBwcm9wcy5pbml0aWFsRXJyb3JzIHx8IHt9O1xuICAgIHZhciB0b3VjaGVkID0gbmV4dFN0YXRlICYmIG5leHRTdGF0ZS50b3VjaGVkID8gbmV4dFN0YXRlLnRvdWNoZWQgOiBpbml0aWFsVG91Y2hlZC5jdXJyZW50ID8gaW5pdGlhbFRvdWNoZWQuY3VycmVudCA6IHByb3BzLmluaXRpYWxUb3VjaGVkIHx8IHt9O1xuICAgIHZhciBzdGF0dXMgPSBuZXh0U3RhdGUgJiYgbmV4dFN0YXRlLnN0YXR1cyA/IG5leHRTdGF0ZS5zdGF0dXMgOiBpbml0aWFsU3RhdHVzLmN1cnJlbnQgPyBpbml0aWFsU3RhdHVzLmN1cnJlbnQgOiBwcm9wcy5pbml0aWFsU3RhdHVzO1xuICAgIGluaXRpYWxWYWx1ZXMuY3VycmVudCA9IHZhbHVlcztcbiAgICBpbml0aWFsRXJyb3JzLmN1cnJlbnQgPSBlcnJvcnM7XG4gICAgaW5pdGlhbFRvdWNoZWQuY3VycmVudCA9IHRvdWNoZWQ7XG4gICAgaW5pdGlhbFN0YXR1cy5jdXJyZW50ID0gc3RhdHVzO1xuXG4gICAgdmFyIGRpc3BhdGNoRm4gPSBmdW5jdGlvbiBkaXNwYXRjaEZuKCkge1xuICAgICAgZGlzcGF0Y2goe1xuICAgICAgICB0eXBlOiAnUkVTRVRfRk9STScsXG4gICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICBpc1N1Ym1pdHRpbmc6ICEhbmV4dFN0YXRlICYmICEhbmV4dFN0YXRlLmlzU3VibWl0dGluZyxcbiAgICAgICAgICBlcnJvcnM6IGVycm9ycyxcbiAgICAgICAgICB0b3VjaGVkOiB0b3VjaGVkLFxuICAgICAgICAgIHN0YXR1czogc3RhdHVzLFxuICAgICAgICAgIHZhbHVlczogdmFsdWVzLFxuICAgICAgICAgIGlzVmFsaWRhdGluZzogISFuZXh0U3RhdGUgJiYgISFuZXh0U3RhdGUuaXNWYWxpZGF0aW5nLFxuICAgICAgICAgIHN1Ym1pdENvdW50OiAhIW5leHRTdGF0ZSAmJiAhIW5leHRTdGF0ZS5zdWJtaXRDb3VudCAmJiB0eXBlb2YgbmV4dFN0YXRlLnN1Ym1pdENvdW50ID09PSAnbnVtYmVyJyA/IG5leHRTdGF0ZS5zdWJtaXRDb3VudCA6IDBcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIGlmIChwcm9wcy5vblJlc2V0KSB7XG4gICAgICB2YXIgbWF5YmVQcm9taXNlZE9uUmVzZXQgPSBwcm9wcy5vblJlc2V0KHN0YXRlLnZhbHVlcywgaW1wZXJhdGl2ZU1ldGhvZHMpO1xuXG4gICAgICBpZiAoaXNQcm9taXNlKG1heWJlUHJvbWlzZWRPblJlc2V0KSkge1xuICAgICAgICBtYXliZVByb21pc2VkT25SZXNldC50aGVuKGRpc3BhdGNoRm4pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGlzcGF0Y2hGbigpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBkaXNwYXRjaEZuKCk7XG4gICAgfVxuICB9LCBbcHJvcHMuaW5pdGlhbEVycm9ycywgcHJvcHMuaW5pdGlhbFN0YXR1cywgcHJvcHMuaW5pdGlhbFRvdWNoZWRdKTtcbiAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoaXNNb3VudGVkLmN1cnJlbnQgPT09IHRydWUgJiYgIWlzRXF1YWwoaW5pdGlhbFZhbHVlcy5jdXJyZW50LCBwcm9wcy5pbml0aWFsVmFsdWVzKSkge1xuICAgICAgaWYgKGVuYWJsZVJlaW5pdGlhbGl6ZSkge1xuICAgICAgICBpbml0aWFsVmFsdWVzLmN1cnJlbnQgPSBwcm9wcy5pbml0aWFsVmFsdWVzO1xuICAgICAgICByZXNldEZvcm0oKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHZhbGlkYXRlT25Nb3VudCkge1xuICAgICAgICB2YWxpZGF0ZUZvcm1XaXRoSGlnaFByaW9yaXR5KGluaXRpYWxWYWx1ZXMuY3VycmVudCk7XG4gICAgICB9XG4gICAgfVxuICB9LCBbZW5hYmxlUmVpbml0aWFsaXplLCBwcm9wcy5pbml0aWFsVmFsdWVzLCByZXNldEZvcm0sIHZhbGlkYXRlT25Nb3VudCwgdmFsaWRhdGVGb3JtV2l0aEhpZ2hQcmlvcml0eV0pO1xuICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIGlmIChlbmFibGVSZWluaXRpYWxpemUgJiYgaXNNb3VudGVkLmN1cnJlbnQgPT09IHRydWUgJiYgIWlzRXF1YWwoaW5pdGlhbEVycm9ycy5jdXJyZW50LCBwcm9wcy5pbml0aWFsRXJyb3JzKSkge1xuICAgICAgaW5pdGlhbEVycm9ycy5jdXJyZW50ID0gcHJvcHMuaW5pdGlhbEVycm9ycyB8fCBlbXB0eUVycm9ycztcbiAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgdHlwZTogJ1NFVF9FUlJPUlMnLFxuICAgICAgICBwYXlsb2FkOiBwcm9wcy5pbml0aWFsRXJyb3JzIHx8IGVtcHR5RXJyb3JzXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFtlbmFibGVSZWluaXRpYWxpemUsIHByb3BzLmluaXRpYWxFcnJvcnNdKTtcbiAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoZW5hYmxlUmVpbml0aWFsaXplICYmIGlzTW91bnRlZC5jdXJyZW50ID09PSB0cnVlICYmICFpc0VxdWFsKGluaXRpYWxUb3VjaGVkLmN1cnJlbnQsIHByb3BzLmluaXRpYWxUb3VjaGVkKSkge1xuICAgICAgaW5pdGlhbFRvdWNoZWQuY3VycmVudCA9IHByb3BzLmluaXRpYWxUb3VjaGVkIHx8IGVtcHR5VG91Y2hlZDtcbiAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgdHlwZTogJ1NFVF9UT1VDSEVEJyxcbiAgICAgICAgcGF5bG9hZDogcHJvcHMuaW5pdGlhbFRvdWNoZWQgfHwgZW1wdHlUb3VjaGVkXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFtlbmFibGVSZWluaXRpYWxpemUsIHByb3BzLmluaXRpYWxUb3VjaGVkXSk7XG4gIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKGVuYWJsZVJlaW5pdGlhbGl6ZSAmJiBpc01vdW50ZWQuY3VycmVudCA9PT0gdHJ1ZSAmJiAhaXNFcXVhbChpbml0aWFsU3RhdHVzLmN1cnJlbnQsIHByb3BzLmluaXRpYWxTdGF0dXMpKSB7XG4gICAgICBpbml0aWFsU3RhdHVzLmN1cnJlbnQgPSBwcm9wcy5pbml0aWFsU3RhdHVzO1xuICAgICAgZGlzcGF0Y2goe1xuICAgICAgICB0eXBlOiAnU0VUX1NUQVRVUycsXG4gICAgICAgIHBheWxvYWQ6IHByb3BzLmluaXRpYWxTdGF0dXNcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwgW2VuYWJsZVJlaW5pdGlhbGl6ZSwgcHJvcHMuaW5pdGlhbFN0YXR1cywgcHJvcHMuaW5pdGlhbFRvdWNoZWRdKTtcbiAgdmFyIHZhbGlkYXRlRmllbGQgPSB1c2VFdmVudENhbGxiYWNrKGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgLy8gVGhpcyB3aWxsIGVmZmljaWVudGx5IHZhbGlkYXRlIGEgc2luZ2xlIGZpZWxkIGJ5IGF2b2lkaW5nIHN0YXRlXG4gICAgLy8gY2hhbmdlcyBpZiB0aGUgdmFsaWRhdGlvbiBmdW5jdGlvbiBpcyBzeW5jaHJvbm91cy4gSXQncyBkaWZmZXJlbnQgZnJvbVxuICAgIC8vIHdoYXQgaXMgY2FsbGVkIHdoZW4gdXNpbmcgdmFsaWRhdGVGb3JtLlxuICAgIGlmIChmaWVsZFJlZ2lzdHJ5LmN1cnJlbnRbbmFtZV0gJiYgaXNGdW5jdGlvbihmaWVsZFJlZ2lzdHJ5LmN1cnJlbnRbbmFtZV0udmFsaWRhdGUpKSB7XG4gICAgICB2YXIgdmFsdWUgPSBnZXRJbihzdGF0ZS52YWx1ZXMsIG5hbWUpO1xuICAgICAgdmFyIG1heWJlUHJvbWlzZSA9IGZpZWxkUmVnaXN0cnkuY3VycmVudFtuYW1lXS52YWxpZGF0ZSh2YWx1ZSk7XG5cbiAgICAgIGlmIChpc1Byb21pc2UobWF5YmVQcm9taXNlKSkge1xuICAgICAgICAvLyBPbmx5IGZsaXAgaXNWYWxpZGF0aW5nIGlmIHRoZSBmdW5jdGlvbiBpcyBhc3luYy5cbiAgICAgICAgZGlzcGF0Y2goe1xuICAgICAgICAgIHR5cGU6ICdTRVRfSVNWQUxJREFUSU5HJyxcbiAgICAgICAgICBwYXlsb2FkOiB0cnVlXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbWF5YmVQcm9taXNlLnRoZW4oZnVuY3Rpb24gKHgpIHtcbiAgICAgICAgICByZXR1cm4geDtcbiAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgICB0eXBlOiAnU0VUX0ZJRUxEX0VSUk9SJyxcbiAgICAgICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgICAgZmllbGQ6IG5hbWUsXG4gICAgICAgICAgICAgIHZhbHVlOiBlcnJvclxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICAgIHR5cGU6ICdTRVRfSVNWQUxJREFUSU5HJyxcbiAgICAgICAgICAgIHBheWxvYWQ6IGZhbHNlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGlzcGF0Y2goe1xuICAgICAgICAgIHR5cGU6ICdTRVRfRklFTERfRVJST1InLFxuICAgICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgIGZpZWxkOiBuYW1lLFxuICAgICAgICAgICAgdmFsdWU6IG1heWJlUHJvbWlzZVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobWF5YmVQcm9taXNlKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHByb3BzLnZhbGlkYXRpb25TY2hlbWEpIHtcbiAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgdHlwZTogJ1NFVF9JU1ZBTElEQVRJTkcnLFxuICAgICAgICBwYXlsb2FkOiB0cnVlXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBydW5WYWxpZGF0aW9uU2NoZW1hKHN0YXRlLnZhbHVlcywgbmFtZSkudGhlbihmdW5jdGlvbiAoeCkge1xuICAgICAgICByZXR1cm4geDtcbiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICB0eXBlOiAnU0VUX0ZJRUxEX0VSUk9SJyxcbiAgICAgICAgICBwYXlsb2FkOiB7XG4gICAgICAgICAgICBmaWVsZDogbmFtZSxcbiAgICAgICAgICAgIHZhbHVlOiBlcnJvcltuYW1lXVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICB0eXBlOiAnU0VUX0lTVkFMSURBVElORycsXG4gICAgICAgICAgcGF5bG9hZDogZmFsc2VcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH0pO1xuICB2YXIgcmVnaXN0ZXJGaWVsZCA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChuYW1lLCBfcmVmMykge1xuICAgIHZhciB2YWxpZGF0ZSA9IF9yZWYzLnZhbGlkYXRlO1xuICAgIGZpZWxkUmVnaXN0cnkuY3VycmVudFtuYW1lXSA9IHtcbiAgICAgIHZhbGlkYXRlOiB2YWxpZGF0ZVxuICAgIH07XG4gIH0sIFtdKTtcbiAgdmFyIHVucmVnaXN0ZXJGaWVsZCA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgZGVsZXRlIGZpZWxkUmVnaXN0cnkuY3VycmVudFtuYW1lXTtcbiAgfSwgW10pO1xuICB2YXIgc2V0VG91Y2hlZCA9IHVzZUV2ZW50Q2FsbGJhY2soZnVuY3Rpb24gKHRvdWNoZWQsIHNob3VsZFZhbGlkYXRlKSB7XG4gICAgZGlzcGF0Y2goe1xuICAgICAgdHlwZTogJ1NFVF9UT1VDSEVEJyxcbiAgICAgIHBheWxvYWQ6IHRvdWNoZWRcbiAgICB9KTtcbiAgICB2YXIgd2lsbFZhbGlkYXRlID0gc2hvdWxkVmFsaWRhdGUgPT09IHVuZGVmaW5lZCA/IHZhbGlkYXRlT25CbHVyIDogc2hvdWxkVmFsaWRhdGU7XG4gICAgcmV0dXJuIHdpbGxWYWxpZGF0ZSA/IHZhbGlkYXRlRm9ybVdpdGhIaWdoUHJpb3JpdHkoc3RhdGUudmFsdWVzKSA6IFByb21pc2UucmVzb2x2ZSgpO1xuICB9KTtcbiAgdmFyIHNldEVycm9ycyA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChlcnJvcnMpIHtcbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiAnU0VUX0VSUk9SUycsXG4gICAgICBwYXlsb2FkOiBlcnJvcnNcbiAgICB9KTtcbiAgfSwgW10pO1xuICB2YXIgc2V0VmFsdWVzID0gdXNlRXZlbnRDYWxsYmFjayhmdW5jdGlvbiAodmFsdWVzLCBzaG91bGRWYWxpZGF0ZSkge1xuICAgIHZhciByZXNvbHZlZFZhbHVlcyA9IGlzRnVuY3Rpb24odmFsdWVzKSA/IHZhbHVlcyhzdGF0ZS52YWx1ZXMpIDogdmFsdWVzO1xuICAgIGRpc3BhdGNoKHtcbiAgICAgIHR5cGU6ICdTRVRfVkFMVUVTJyxcbiAgICAgIHBheWxvYWQ6IHJlc29sdmVkVmFsdWVzXG4gICAgfSk7XG4gICAgdmFyIHdpbGxWYWxpZGF0ZSA9IHNob3VsZFZhbGlkYXRlID09PSB1bmRlZmluZWQgPyB2YWxpZGF0ZU9uQ2hhbmdlIDogc2hvdWxkVmFsaWRhdGU7XG4gICAgcmV0dXJuIHdpbGxWYWxpZGF0ZSA/IHZhbGlkYXRlRm9ybVdpdGhIaWdoUHJpb3JpdHkocmVzb2x2ZWRWYWx1ZXMpIDogUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH0pO1xuICB2YXIgc2V0RmllbGRFcnJvciA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChmaWVsZCwgdmFsdWUpIHtcbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiAnU0VUX0ZJRUxEX0VSUk9SJyxcbiAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgZmllbGQ6IGZpZWxkLFxuICAgICAgICB2YWx1ZTogdmFsdWVcbiAgICAgIH1cbiAgICB9KTtcbiAgfSwgW10pO1xuICB2YXIgc2V0RmllbGRWYWx1ZSA9IHVzZUV2ZW50Q2FsbGJhY2soZnVuY3Rpb24gKGZpZWxkLCB2YWx1ZSwgc2hvdWxkVmFsaWRhdGUpIHtcbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiAnU0VUX0ZJRUxEX1ZBTFVFJyxcbiAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgZmllbGQ6IGZpZWxkLFxuICAgICAgICB2YWx1ZTogdmFsdWVcbiAgICAgIH1cbiAgICB9KTtcbiAgICB2YXIgd2lsbFZhbGlkYXRlID0gc2hvdWxkVmFsaWRhdGUgPT09IHVuZGVmaW5lZCA/IHZhbGlkYXRlT25DaGFuZ2UgOiBzaG91bGRWYWxpZGF0ZTtcbiAgICByZXR1cm4gd2lsbFZhbGlkYXRlID8gdmFsaWRhdGVGb3JtV2l0aEhpZ2hQcmlvcml0eShzZXRJbihzdGF0ZS52YWx1ZXMsIGZpZWxkLCB2YWx1ZSkpIDogUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH0pO1xuICB2YXIgZXhlY3V0ZUNoYW5nZSA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChldmVudE9yVGV4dFZhbHVlLCBtYXliZVBhdGgpIHtcbiAgICAvLyBCeSBkZWZhdWx0LCBhc3N1bWUgdGhhdCB0aGUgZmlyc3QgYXJndW1lbnQgaXMgYSBzdHJpbmcuIFRoaXMgYWxsb3dzIHVzIHRvIHVzZVxuICAgIC8vIGhhbmRsZUNoYW5nZSB3aXRoIFJlYWN0IE5hdGl2ZSBhbmQgUmVhY3QgTmF0aXZlIFdlYidzIG9uQ2hhbmdlVGV4dCBwcm9wIHdoaWNoXG4gICAgLy8gcHJvdmlkZXMganVzdCB0aGUgdmFsdWUgb2YgdGhlIGlucHV0LlxuICAgIHZhciBmaWVsZCA9IG1heWJlUGF0aDtcbiAgICB2YXIgdmFsID0gZXZlbnRPclRleHRWYWx1ZTtcbiAgICB2YXIgcGFyc2VkOyAvLyBJZiB0aGUgZmlyc3QgYXJndW1lbnQgaXMgbm90IGEgc3RyaW5nIHRob3VnaCwgaXQgaGFzIHRvIGJlIGEgc3ludGhldGljIFJlYWN0IEV2ZW50IChvciBhIGZha2Ugb25lKSxcbiAgICAvLyBzbyB3ZSBoYW5kbGUgbGlrZSB3ZSB3b3VsZCBhIG5vcm1hbCBIVE1MIGNoYW5nZSBldmVudC5cblxuICAgIGlmICghaXNTdHJpbmcoZXZlbnRPclRleHRWYWx1ZSkpIHtcbiAgICAgIC8vIElmIHdlIGNhbiwgcGVyc2lzdCB0aGUgZXZlbnRcbiAgICAgIC8vIEBzZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL2V2ZW50cy5odG1sI2V2ZW50LXBvb2xpbmdcbiAgICAgIGlmIChldmVudE9yVGV4dFZhbHVlLnBlcnNpc3QpIHtcbiAgICAgICAgZXZlbnRPclRleHRWYWx1ZS5wZXJzaXN0KCk7XG4gICAgICB9XG5cbiAgICAgIHZhciB0YXJnZXQgPSBldmVudE9yVGV4dFZhbHVlLnRhcmdldCA/IGV2ZW50T3JUZXh0VmFsdWUudGFyZ2V0IDogZXZlbnRPclRleHRWYWx1ZS5jdXJyZW50VGFyZ2V0O1xuICAgICAgdmFyIHR5cGUgPSB0YXJnZXQudHlwZSxcbiAgICAgICAgICBuYW1lID0gdGFyZ2V0Lm5hbWUsXG4gICAgICAgICAgaWQgPSB0YXJnZXQuaWQsXG4gICAgICAgICAgdmFsdWUgPSB0YXJnZXQudmFsdWUsXG4gICAgICAgICAgY2hlY2tlZCA9IHRhcmdldC5jaGVja2VkLFxuICAgICAgICAgIG91dGVySFRNTCA9IHRhcmdldC5vdXRlckhUTUwsXG4gICAgICAgICAgb3B0aW9ucyA9IHRhcmdldC5vcHRpb25zLFxuICAgICAgICAgIG11bHRpcGxlID0gdGFyZ2V0Lm11bHRpcGxlO1xuICAgICAgZmllbGQgPSBtYXliZVBhdGggPyBtYXliZVBhdGggOiBuYW1lID8gbmFtZSA6IGlkO1xuXG4gICAgICBpZiAoIWZpZWxkICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgICB3YXJuQWJvdXRNaXNzaW5nSWRlbnRpZmllcih7XG4gICAgICAgICAgaHRtbENvbnRlbnQ6IG91dGVySFRNTCxcbiAgICAgICAgICBkb2N1bWVudGF0aW9uQW5jaG9yTGluazogJ2hhbmRsZWNoYW5nZS1lLXJlYWN0Y2hhbmdlZXZlbnRhbnktLXZvaWQnLFxuICAgICAgICAgIGhhbmRsZXJOYW1lOiAnaGFuZGxlQ2hhbmdlJ1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgdmFsID0gL251bWJlcnxyYW5nZS8udGVzdCh0eXBlKSA/IChwYXJzZWQgPSBwYXJzZUZsb2F0KHZhbHVlKSwgaXNOYU4ocGFyc2VkKSA/ICcnIDogcGFyc2VkKSA6IC9jaGVja2JveC8udGVzdCh0eXBlKSAvLyBjaGVja2JveGVzXG4gICAgICA/IGdldFZhbHVlRm9yQ2hlY2tib3goZ2V0SW4oc3RhdGUudmFsdWVzLCBmaWVsZCksIGNoZWNrZWQsIHZhbHVlKSA6IG9wdGlvbnMgJiYgbXVsdGlwbGUgLy8gPHNlbGVjdCBtdWx0aXBsZT5cbiAgICAgID8gZ2V0U2VsZWN0ZWRWYWx1ZXMob3B0aW9ucykgOiB2YWx1ZTtcbiAgICB9XG5cbiAgICBpZiAoZmllbGQpIHtcbiAgICAgIC8vIFNldCBmb3JtIGZpZWxkcyBieSBuYW1lXG4gICAgICBzZXRGaWVsZFZhbHVlKGZpZWxkLCB2YWwpO1xuICAgIH1cbiAgfSwgW3NldEZpZWxkVmFsdWUsIHN0YXRlLnZhbHVlc10pO1xuICB2YXIgaGFuZGxlQ2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjayhmdW5jdGlvbiAoZXZlbnRPclBhdGgpIHtcbiAgICBpZiAoaXNTdHJpbmcoZXZlbnRPclBhdGgpKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgIHJldHVybiBleGVjdXRlQ2hhbmdlKGV2ZW50LCBldmVudE9yUGF0aCk7XG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBleGVjdXRlQ2hhbmdlKGV2ZW50T3JQYXRoKTtcbiAgICB9XG4gIH0pO1xuICB2YXIgc2V0RmllbGRUb3VjaGVkID0gdXNlRXZlbnRDYWxsYmFjayhmdW5jdGlvbiAoZmllbGQsIHRvdWNoZWQsIHNob3VsZFZhbGlkYXRlKSB7XG4gICAgaWYgKHRvdWNoZWQgPT09IHZvaWQgMCkge1xuICAgICAgdG91Y2hlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgZGlzcGF0Y2goe1xuICAgICAgdHlwZTogJ1NFVF9GSUVMRF9UT1VDSEVEJyxcbiAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgZmllbGQ6IGZpZWxkLFxuICAgICAgICB2YWx1ZTogdG91Y2hlZFxuICAgICAgfVxuICAgIH0pO1xuICAgIHZhciB3aWxsVmFsaWRhdGUgPSBzaG91bGRWYWxpZGF0ZSA9PT0gdW5kZWZpbmVkID8gdmFsaWRhdGVPbkJsdXIgOiBzaG91bGRWYWxpZGF0ZTtcbiAgICByZXR1cm4gd2lsbFZhbGlkYXRlID8gdmFsaWRhdGVGb3JtV2l0aEhpZ2hQcmlvcml0eShzdGF0ZS52YWx1ZXMpIDogUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH0pO1xuICB2YXIgZXhlY3V0ZUJsdXIgPSB1c2VDYWxsYmFjayhmdW5jdGlvbiAoZSwgcGF0aCkge1xuICAgIGlmIChlLnBlcnNpc3QpIHtcbiAgICAgIGUucGVyc2lzdCgpO1xuICAgIH1cblxuICAgIHZhciBfZSR0YXJnZXQgPSBlLnRhcmdldCxcbiAgICAgICAgbmFtZSA9IF9lJHRhcmdldC5uYW1lLFxuICAgICAgICBpZCA9IF9lJHRhcmdldC5pZCxcbiAgICAgICAgb3V0ZXJIVE1MID0gX2UkdGFyZ2V0Lm91dGVySFRNTDtcbiAgICB2YXIgZmllbGQgPSBwYXRoID8gcGF0aCA6IG5hbWUgPyBuYW1lIDogaWQ7XG5cbiAgICBpZiAoIWZpZWxkICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgd2FybkFib3V0TWlzc2luZ0lkZW50aWZpZXIoe1xuICAgICAgICBodG1sQ29udGVudDogb3V0ZXJIVE1MLFxuICAgICAgICBkb2N1bWVudGF0aW9uQW5jaG9yTGluazogJ2hhbmRsZWJsdXItZS1hbnktLXZvaWQnLFxuICAgICAgICBoYW5kbGVyTmFtZTogJ2hhbmRsZUJsdXInXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBzZXRGaWVsZFRvdWNoZWQoZmllbGQsIHRydWUpO1xuICB9LCBbc2V0RmllbGRUb3VjaGVkXSk7XG4gIHZhciBoYW5kbGVCbHVyID0gdXNlRXZlbnRDYWxsYmFjayhmdW5jdGlvbiAoZXZlbnRPclN0cmluZykge1xuICAgIGlmIChpc1N0cmluZyhldmVudE9yU3RyaW5nKSkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICByZXR1cm4gZXhlY3V0ZUJsdXIoZXZlbnQsIGV2ZW50T3JTdHJpbmcpO1xuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgZXhlY3V0ZUJsdXIoZXZlbnRPclN0cmluZyk7XG4gICAgfVxuICB9KTtcbiAgdmFyIHNldEZvcm1pa1N0YXRlID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKHN0YXRlT3JDYikge1xuICAgIGlmIChpc0Z1bmN0aW9uKHN0YXRlT3JDYikpIHtcbiAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgdHlwZTogJ1NFVF9GT1JNSUtfU1RBVEUnLFxuICAgICAgICBwYXlsb2FkOiBzdGF0ZU9yQ2JcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBkaXNwYXRjaCh7XG4gICAgICAgIHR5cGU6ICdTRVRfRk9STUlLX1NUQVRFJyxcbiAgICAgICAgcGF5bG9hZDogZnVuY3Rpb24gcGF5bG9hZCgpIHtcbiAgICAgICAgICByZXR1cm4gc3RhdGVPckNiO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFtdKTtcbiAgdmFyIHNldFN0YXR1cyA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChzdGF0dXMpIHtcbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiAnU0VUX1NUQVRVUycsXG4gICAgICBwYXlsb2FkOiBzdGF0dXNcbiAgICB9KTtcbiAgfSwgW10pO1xuICB2YXIgc2V0U3VibWl0dGluZyA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChpc1N1Ym1pdHRpbmcpIHtcbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiAnU0VUX0lTU1VCTUlUVElORycsXG4gICAgICBwYXlsb2FkOiBpc1N1Ym1pdHRpbmdcbiAgICB9KTtcbiAgfSwgW10pO1xuICB2YXIgc3VibWl0Rm9ybSA9IHVzZUV2ZW50Q2FsbGJhY2soZnVuY3Rpb24gKCkge1xuICAgIGRpc3BhdGNoKHtcbiAgICAgIHR5cGU6ICdTVUJNSVRfQVRURU1QVCdcbiAgICB9KTtcbiAgICByZXR1cm4gdmFsaWRhdGVGb3JtV2l0aEhpZ2hQcmlvcml0eSgpLnRoZW4oZnVuY3Rpb24gKGNvbWJpbmVkRXJyb3JzKSB7XG4gICAgICAvLyBJbiBjYXNlIGFuIGVycm9yIHdhcyB0aHJvd24gYW5kIHBhc3NlZCB0byB0aGUgcmVzb2x2ZWQgUHJvbWlzZSxcbiAgICAgIC8vIGBjb21iaW5lZEVycm9yc2AgY2FuIGJlIGFuIGluc3RhbmNlIG9mIGFuIEVycm9yLiBXZSBuZWVkIHRvIGNoZWNrXG4gICAgICAvLyB0aGF0IGFuZCBhYm9ydCB0aGUgc3VibWl0LlxuICAgICAgLy8gSWYgd2UgZG9uJ3QgZG8gdGhhdCwgY2FsbGluZyBgT2JqZWN0LmtleXMobmV3IEVycm9yKCkpYCB5aWVsZHMgYW5cbiAgICAgIC8vIGVtcHR5IGFycmF5LCB3aGljaCBjYXVzZXMgdGhlIHZhbGlkYXRpb24gdG8gcGFzcyBhbmQgdGhlIGZvcm1cbiAgICAgIC8vIHRvIGJlIHN1Ym1pdHRlZC5cbiAgICAgIHZhciBpc0luc3RhbmNlT2ZFcnJvciA9IGNvbWJpbmVkRXJyb3JzIGluc3RhbmNlb2YgRXJyb3I7XG4gICAgICB2YXIgaXNBY3R1YWxseVZhbGlkID0gIWlzSW5zdGFuY2VPZkVycm9yICYmIE9iamVjdC5rZXlzKGNvbWJpbmVkRXJyb3JzKS5sZW5ndGggPT09IDA7XG5cbiAgICAgIGlmIChpc0FjdHVhbGx5VmFsaWQpIHtcbiAgICAgICAgLy8gUHJvY2VlZCB3aXRoIHN1Ym1pdC4uLlxuICAgICAgICAvL1xuICAgICAgICAvLyBUbyByZXNwZWN0IHN5bmMgc3VibWl0IGZucywgd2UgY2FuJ3Qgc2ltcGx5IHdyYXAgZXhlY3V0ZVN1Ym1pdCBpbiBhIHByb21pc2UgYW5kXG4gICAgICAgIC8vIF9hbHdheXNfIGRpc3BhdGNoIFNVQk1JVF9TVUNDRVNTIGJlY2F1c2UgaXNTdWJtaXR0aW5nIHdvdWxkIHRoZW4gYWx3YXlzIGJlIGZhbHNlLlxuICAgICAgICAvLyBUaGlzIHdvdWxkIGJlIGZpbmUgaW4gc2ltcGxlIGNhc2VzLCBidXQgbWFrZSBpdCBpbXBvc3NpYmxlIHRvIGRpc2FibGUgc3VibWl0XG4gICAgICAgIC8vIGJ1dHRvbnMgd2hlcmUgcGVvcGxlIHVzZSBjYWxsYmFja3Mgb3IgcHJvbWlzZXMgYXMgc2lkZSBlZmZlY3RzICh3aGljaCBpcyBiYXNpY2FsbHlcbiAgICAgICAgLy8gYWxsIG9mIHYxIEZvcm1payBjb2RlKS4gSW5zdGVhZCwgcmVjYWxsIHRoYXQgd2UgYXJlIGluc2lkZSBvZiBhIHByb21pc2UgY2hhaW4gYWxyZWFkeSxcbiAgICAgICAgLy8gIHNvIHdlIGNhbiB0cnkvY2F0Y2ggZXhlY3V0ZVN1Ym1pdCgpLCBpZiBpdCByZXR1cm5zIHVuZGVmaW5lZCwgdGhlbiBqdXN0IGJhaWwuXG4gICAgICAgIC8vIElmIHRoZXJlIGFyZSBlcnJvcnMsIHRocm93IGVtLiBPdGhlcndpc2UsIHdyYXAgZXhlY3V0ZVN1Ym1pdCBpbiBhIHByb21pc2UgYW5kIGhhbmRsZVxuICAgICAgICAvLyBjbGVhbnVwIG9mIGlzU3VibWl0dGluZyBvbiBiZWhhbGYgb2YgdGhlIGNvbnN1bWVyLlxuICAgICAgICB2YXIgcHJvbWlzZU9yVW5kZWZpbmVkO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcHJvbWlzZU9yVW5kZWZpbmVkID0gZXhlY3V0ZVN1Ym1pdCgpOyAvLyBCYWlsIGlmIGl0J3Mgc3luYywgY29uc3VtZXIgaXMgcmVzcG9uc2libGUgZm9yIGNsZWFuaW5nIHVwXG4gICAgICAgICAgLy8gdmlhIHNldFN1Ym1pdHRpbmcoZmFsc2UpXG5cbiAgICAgICAgICBpZiAocHJvbWlzZU9yVW5kZWZpbmVkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHByb21pc2VPclVuZGVmaW5lZCkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7XG4gICAgICAgICAgaWYgKCEhaXNNb3VudGVkLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICAgICAgdHlwZTogJ1NVQk1JVF9TVUNDRVNTJ1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSlbXCJjYXRjaFwiXShmdW5jdGlvbiAoX2Vycm9ycykge1xuICAgICAgICAgIGlmICghIWlzTW91bnRlZC5jdXJyZW50KSB7XG4gICAgICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgICAgIHR5cGU6ICdTVUJNSVRfRkFJTFVSRSdcbiAgICAgICAgICAgIH0pOyAvLyBUaGlzIGlzIGEgbGVnaXQgZXJyb3IgcmVqZWN0ZWQgYnkgdGhlIG9uU3VibWl0IGZuXG4gICAgICAgICAgICAvLyBzbyB3ZSBkb24ndCB3YW50IHRvIGJyZWFrIHRoZSBwcm9taXNlIGNoYWluXG5cbiAgICAgICAgICAgIHRocm93IF9lcnJvcnM7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAoISFpc01vdW50ZWQuY3VycmVudCkge1xuICAgICAgICAvLyBeXl4gTWFrZSBzdXJlIEZvcm1payBpcyBzdGlsbCBtb3VudGVkIGJlZm9yZSB1cGRhdGluZyBzdGF0ZVxuICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgdHlwZTogJ1NVQk1JVF9GQUlMVVJFJ1xuICAgICAgICB9KTsgLy8gdGhyb3cgY29tYmluZWRFcnJvcnM7XG5cbiAgICAgICAgaWYgKGlzSW5zdGFuY2VPZkVycm9yKSB7XG4gICAgICAgICAgdGhyb3cgY29tYmluZWRFcnJvcnM7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuO1xuICAgIH0pO1xuICB9KTtcbiAgdmFyIGhhbmRsZVN1Ym1pdCA9IHVzZUV2ZW50Q2FsbGJhY2soZnVuY3Rpb24gKGUpIHtcbiAgICBpZiAoZSAmJiBlLnByZXZlbnREZWZhdWx0ICYmIGlzRnVuY3Rpb24oZS5wcmV2ZW50RGVmYXVsdCkpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBpZiAoZSAmJiBlLnN0b3BQcm9wYWdhdGlvbiAmJiBpc0Z1bmN0aW9uKGUuc3RvcFByb3BhZ2F0aW9uKSkge1xuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9IC8vIFdhcm4gaWYgZm9ybSBzdWJtaXNzaW9uIGlzIHRyaWdnZXJlZCBieSBhIDxidXR0b24+IHdpdGhvdXQgYVxuICAgIC8vIHNwZWNpZmllZCBgdHlwZWAgYXR0cmlidXRlIGR1cmluZyBkZXZlbG9wbWVudC4gVGhpcyBtaXRpZ2F0ZXNcbiAgICAvLyBhIGNvbW1vbiBnb3RjaGEgaW4gZm9ybXMgd2l0aCBib3RoIHJlc2V0IGFuZCBzdWJtaXQgYnV0dG9ucyxcbiAgICAvLyB3aGVyZSB0aGUgZGV2IGZvcmdldHMgdG8gYWRkIHR5cGU9XCJidXR0b25cIiB0byB0aGUgcmVzZXQgYnV0dG9uLlxuXG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiICYmIHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIC8vIFNhZmVseSBnZXQgdGhlIGFjdGl2ZSBlbGVtZW50ICh3b3JrcyB3aXRoIElFKVxuICAgICAgdmFyIGFjdGl2ZUVsZW1lbnQgPSBnZXRBY3RpdmVFbGVtZW50KCk7XG5cbiAgICAgIGlmIChhY3RpdmVFbGVtZW50ICE9PSBudWxsICYmIGFjdGl2ZUVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MQnV0dG9uRWxlbWVudCkge1xuICAgICAgICAhKGFjdGl2ZUVsZW1lbnQuYXR0cmlidXRlcyAmJiBhY3RpdmVFbGVtZW50LmF0dHJpYnV0ZXMuZ2V0TmFtZWRJdGVtKCd0eXBlJykpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gaW52YXJpYW50KGZhbHNlLCAnWW91IHN1Ym1pdHRlZCBhIEZvcm1payBmb3JtIHVzaW5nIGEgYnV0dG9uIHdpdGggYW4gdW5zcGVjaWZpZWQgYHR5cGVgIGF0dHJpYnV0ZS4gIE1vc3QgYnJvd3NlcnMgZGVmYXVsdCBidXR0b24gZWxlbWVudHMgdG8gYHR5cGU9XCJzdWJtaXRcImAuIElmIHRoaXMgaXMgbm90IGEgc3VibWl0IGJ1dHRvbiwgcGxlYXNlIGFkZCBgdHlwZT1cImJ1dHRvblwiYC4nKSA6IGludmFyaWFudChmYWxzZSkgOiB2b2lkIDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc3VibWl0Rm9ybSgpW1wiY2F0Y2hcIl0oZnVuY3Rpb24gKHJlYXNvbikge1xuICAgICAgY29uc29sZS53YXJuKFwiV2FybmluZzogQW4gdW5oYW5kbGVkIGVycm9yIHdhcyBjYXVnaHQgZnJvbSBzdWJtaXRGb3JtKClcIiwgcmVhc29uKTtcbiAgICB9KTtcbiAgfSk7XG4gIHZhciBpbXBlcmF0aXZlTWV0aG9kcyA9IHtcbiAgICByZXNldEZvcm06IHJlc2V0Rm9ybSxcbiAgICB2YWxpZGF0ZUZvcm06IHZhbGlkYXRlRm9ybVdpdGhIaWdoUHJpb3JpdHksXG4gICAgdmFsaWRhdGVGaWVsZDogdmFsaWRhdGVGaWVsZCxcbiAgICBzZXRFcnJvcnM6IHNldEVycm9ycyxcbiAgICBzZXRGaWVsZEVycm9yOiBzZXRGaWVsZEVycm9yLFxuICAgIHNldEZpZWxkVG91Y2hlZDogc2V0RmllbGRUb3VjaGVkLFxuICAgIHNldEZpZWxkVmFsdWU6IHNldEZpZWxkVmFsdWUsXG4gICAgc2V0U3RhdHVzOiBzZXRTdGF0dXMsXG4gICAgc2V0U3VibWl0dGluZzogc2V0U3VibWl0dGluZyxcbiAgICBzZXRUb3VjaGVkOiBzZXRUb3VjaGVkLFxuICAgIHNldFZhbHVlczogc2V0VmFsdWVzLFxuICAgIHNldEZvcm1pa1N0YXRlOiBzZXRGb3JtaWtTdGF0ZSxcbiAgICBzdWJtaXRGb3JtOiBzdWJtaXRGb3JtXG4gIH07XG4gIHZhciBleGVjdXRlU3VibWl0ID0gdXNlRXZlbnRDYWxsYmFjayhmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIG9uU3VibWl0KHN0YXRlLnZhbHVlcywgaW1wZXJhdGl2ZU1ldGhvZHMpO1xuICB9KTtcbiAgdmFyIGhhbmRsZVJlc2V0ID0gdXNlRXZlbnRDYWxsYmFjayhmdW5jdGlvbiAoZSkge1xuICAgIGlmIChlICYmIGUucHJldmVudERlZmF1bHQgJiYgaXNGdW5jdGlvbihlLnByZXZlbnREZWZhdWx0KSkge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIGlmIChlICYmIGUuc3RvcFByb3BhZ2F0aW9uICYmIGlzRnVuY3Rpb24oZS5zdG9wUHJvcGFnYXRpb24pKSB7XG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIHJlc2V0Rm9ybSgpO1xuICB9KTtcbiAgdmFyIGdldEZpZWxkTWV0YSA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHZhbHVlOiBnZXRJbihzdGF0ZS52YWx1ZXMsIG5hbWUpLFxuICAgICAgZXJyb3I6IGdldEluKHN0YXRlLmVycm9ycywgbmFtZSksXG4gICAgICB0b3VjaGVkOiAhIWdldEluKHN0YXRlLnRvdWNoZWQsIG5hbWUpLFxuICAgICAgaW5pdGlhbFZhbHVlOiBnZXRJbihpbml0aWFsVmFsdWVzLmN1cnJlbnQsIG5hbWUpLFxuICAgICAgaW5pdGlhbFRvdWNoZWQ6ICEhZ2V0SW4oaW5pdGlhbFRvdWNoZWQuY3VycmVudCwgbmFtZSksXG4gICAgICBpbml0aWFsRXJyb3I6IGdldEluKGluaXRpYWxFcnJvcnMuY3VycmVudCwgbmFtZSlcbiAgICB9O1xuICB9LCBbc3RhdGUuZXJyb3JzLCBzdGF0ZS50b3VjaGVkLCBzdGF0ZS52YWx1ZXNdKTtcbiAgdmFyIGdldEZpZWxkSGVscGVycyA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNldFZhbHVlOiBmdW5jdGlvbiBzZXRWYWx1ZSh2YWx1ZSwgc2hvdWxkVmFsaWRhdGUpIHtcbiAgICAgICAgcmV0dXJuIHNldEZpZWxkVmFsdWUobmFtZSwgdmFsdWUsIHNob3VsZFZhbGlkYXRlKTtcbiAgICAgIH0sXG4gICAgICBzZXRUb3VjaGVkOiBmdW5jdGlvbiBzZXRUb3VjaGVkKHZhbHVlLCBzaG91bGRWYWxpZGF0ZSkge1xuICAgICAgICByZXR1cm4gc2V0RmllbGRUb3VjaGVkKG5hbWUsIHZhbHVlLCBzaG91bGRWYWxpZGF0ZSk7XG4gICAgICB9LFxuICAgICAgc2V0RXJyb3I6IGZ1bmN0aW9uIHNldEVycm9yKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBzZXRGaWVsZEVycm9yKG5hbWUsIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9O1xuICB9LCBbc2V0RmllbGRWYWx1ZSwgc2V0RmllbGRUb3VjaGVkLCBzZXRGaWVsZEVycm9yXSk7XG4gIHZhciBnZXRGaWVsZFByb3BzID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKG5hbWVPck9wdGlvbnMpIHtcbiAgICB2YXIgaXNBbk9iamVjdCA9IGlzT2JqZWN0KG5hbWVPck9wdGlvbnMpO1xuICAgIHZhciBuYW1lID0gaXNBbk9iamVjdCA/IG5hbWVPck9wdGlvbnMubmFtZSA6IG5hbWVPck9wdGlvbnM7XG4gICAgdmFyIHZhbHVlU3RhdGUgPSBnZXRJbihzdGF0ZS52YWx1ZXMsIG5hbWUpO1xuICAgIHZhciBmaWVsZCA9IHtcbiAgICAgIG5hbWU6IG5hbWUsXG4gICAgICB2YWx1ZTogdmFsdWVTdGF0ZSxcbiAgICAgIG9uQ2hhbmdlOiBoYW5kbGVDaGFuZ2UsXG4gICAgICBvbkJsdXI6IGhhbmRsZUJsdXJcbiAgICB9O1xuXG4gICAgaWYgKGlzQW5PYmplY3QpIHtcbiAgICAgIHZhciB0eXBlID0gbmFtZU9yT3B0aW9ucy50eXBlLFxuICAgICAgICAgIHZhbHVlUHJvcCA9IG5hbWVPck9wdGlvbnMudmFsdWUsXG4gICAgICAgICAgaXMgPSBuYW1lT3JPcHRpb25zLmFzLFxuICAgICAgICAgIG11bHRpcGxlID0gbmFtZU9yT3B0aW9ucy5tdWx0aXBsZTtcblxuICAgICAgaWYgKHR5cGUgPT09ICdjaGVja2JveCcpIHtcbiAgICAgICAgaWYgKHZhbHVlUHJvcCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgZmllbGQuY2hlY2tlZCA9ICEhdmFsdWVTdGF0ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmaWVsZC5jaGVja2VkID0gISEoQXJyYXkuaXNBcnJheSh2YWx1ZVN0YXRlKSAmJiB+dmFsdWVTdGF0ZS5pbmRleE9mKHZhbHVlUHJvcCkpO1xuICAgICAgICAgIGZpZWxkLnZhbHVlID0gdmFsdWVQcm9wO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdyYWRpbycpIHtcbiAgICAgICAgZmllbGQuY2hlY2tlZCA9IHZhbHVlU3RhdGUgPT09IHZhbHVlUHJvcDtcbiAgICAgICAgZmllbGQudmFsdWUgPSB2YWx1ZVByb3A7XG4gICAgICB9IGVsc2UgaWYgKGlzID09PSAnc2VsZWN0JyAmJiBtdWx0aXBsZSkge1xuICAgICAgICBmaWVsZC52YWx1ZSA9IGZpZWxkLnZhbHVlIHx8IFtdO1xuICAgICAgICBmaWVsZC5tdWx0aXBsZSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpZWxkO1xuICB9LCBbaGFuZGxlQmx1ciwgaGFuZGxlQ2hhbmdlLCBzdGF0ZS52YWx1ZXNdKTtcbiAgdmFyIGRpcnR5ID0gdXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuICFpc0VxdWFsKGluaXRpYWxWYWx1ZXMuY3VycmVudCwgc3RhdGUudmFsdWVzKTtcbiAgfSwgW2luaXRpYWxWYWx1ZXMuY3VycmVudCwgc3RhdGUudmFsdWVzXSk7XG4gIHZhciBpc1ZhbGlkID0gdXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBpc0luaXRpYWxWYWxpZCAhPT0gJ3VuZGVmaW5lZCcgPyBkaXJ0eSA/IHN0YXRlLmVycm9ycyAmJiBPYmplY3Qua2V5cyhzdGF0ZS5lcnJvcnMpLmxlbmd0aCA9PT0gMCA6IGlzSW5pdGlhbFZhbGlkICE9PSBmYWxzZSAmJiBpc0Z1bmN0aW9uKGlzSW5pdGlhbFZhbGlkKSA/IGlzSW5pdGlhbFZhbGlkKHByb3BzKSA6IGlzSW5pdGlhbFZhbGlkIDogc3RhdGUuZXJyb3JzICYmIE9iamVjdC5rZXlzKHN0YXRlLmVycm9ycykubGVuZ3RoID09PSAwO1xuICB9LCBbaXNJbml0aWFsVmFsaWQsIGRpcnR5LCBzdGF0ZS5lcnJvcnMsIHByb3BzXSk7XG5cbiAgdmFyIGN0eCA9IF9leHRlbmRzKHt9LCBzdGF0ZSwge1xuICAgIGluaXRpYWxWYWx1ZXM6IGluaXRpYWxWYWx1ZXMuY3VycmVudCxcbiAgICBpbml0aWFsRXJyb3JzOiBpbml0aWFsRXJyb3JzLmN1cnJlbnQsXG4gICAgaW5pdGlhbFRvdWNoZWQ6IGluaXRpYWxUb3VjaGVkLmN1cnJlbnQsXG4gICAgaW5pdGlhbFN0YXR1czogaW5pdGlhbFN0YXR1cy5jdXJyZW50LFxuICAgIGhhbmRsZUJsdXI6IGhhbmRsZUJsdXIsXG4gICAgaGFuZGxlQ2hhbmdlOiBoYW5kbGVDaGFuZ2UsXG4gICAgaGFuZGxlUmVzZXQ6IGhhbmRsZVJlc2V0LFxuICAgIGhhbmRsZVN1Ym1pdDogaGFuZGxlU3VibWl0LFxuICAgIHJlc2V0Rm9ybTogcmVzZXRGb3JtLFxuICAgIHNldEVycm9yczogc2V0RXJyb3JzLFxuICAgIHNldEZvcm1pa1N0YXRlOiBzZXRGb3JtaWtTdGF0ZSxcbiAgICBzZXRGaWVsZFRvdWNoZWQ6IHNldEZpZWxkVG91Y2hlZCxcbiAgICBzZXRGaWVsZFZhbHVlOiBzZXRGaWVsZFZhbHVlLFxuICAgIHNldEZpZWxkRXJyb3I6IHNldEZpZWxkRXJyb3IsXG4gICAgc2V0U3RhdHVzOiBzZXRTdGF0dXMsXG4gICAgc2V0U3VibWl0dGluZzogc2V0U3VibWl0dGluZyxcbiAgICBzZXRUb3VjaGVkOiBzZXRUb3VjaGVkLFxuICAgIHNldFZhbHVlczogc2V0VmFsdWVzLFxuICAgIHN1Ym1pdEZvcm06IHN1Ym1pdEZvcm0sXG4gICAgdmFsaWRhdGVGb3JtOiB2YWxpZGF0ZUZvcm1XaXRoSGlnaFByaW9yaXR5LFxuICAgIHZhbGlkYXRlRmllbGQ6IHZhbGlkYXRlRmllbGQsXG4gICAgaXNWYWxpZDogaXNWYWxpZCxcbiAgICBkaXJ0eTogZGlydHksXG4gICAgdW5yZWdpc3RlckZpZWxkOiB1bnJlZ2lzdGVyRmllbGQsXG4gICAgcmVnaXN0ZXJGaWVsZDogcmVnaXN0ZXJGaWVsZCxcbiAgICBnZXRGaWVsZFByb3BzOiBnZXRGaWVsZFByb3BzLFxuICAgIGdldEZpZWxkTWV0YTogZ2V0RmllbGRNZXRhLFxuICAgIGdldEZpZWxkSGVscGVyczogZ2V0RmllbGRIZWxwZXJzLFxuICAgIHZhbGlkYXRlT25CbHVyOiB2YWxpZGF0ZU9uQmx1cixcbiAgICB2YWxpZGF0ZU9uQ2hhbmdlOiB2YWxpZGF0ZU9uQ2hhbmdlLFxuICAgIHZhbGlkYXRlT25Nb3VudDogdmFsaWRhdGVPbk1vdW50XG4gIH0pO1xuXG4gIHJldHVybiBjdHg7XG59XG5mdW5jdGlvbiBGb3JtaWsocHJvcHMpIHtcbiAgdmFyIGZvcm1pa2JhZyA9IHVzZUZvcm1payhwcm9wcyk7XG4gIHZhciBjb21wb25lbnQgPSBwcm9wcy5jb21wb25lbnQsXG4gICAgICBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLFxuICAgICAgcmVuZGVyID0gcHJvcHMucmVuZGVyLFxuICAgICAgaW5uZXJSZWYgPSBwcm9wcy5pbm5lclJlZjsgLy8gVGhpcyBhbGxvd3MgZm9sa3MgdG8gcGFzcyBhIHJlZiB0byA8Rm9ybWlrIC8+XG5cbiAgdXNlSW1wZXJhdGl2ZUhhbmRsZShpbm5lclJlZiwgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBmb3JtaWtiYWc7XG4gIH0pO1xuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgISFwcm9wcy5yZW5kZXIgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyBpbnZhcmlhbnQoZmFsc2UsIFwiPEZvcm1payByZW5kZXI+IGhhcyBiZWVuIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBmdXR1cmUgdmVyc2lvbnMgb2YgRm9ybWlrLiBQbGVhc2UgdXNlIGEgY2hpbGQgY2FsbGJhY2sgZnVuY3Rpb24gaW5zdGVhZC4gVG8gZ2V0IHJpZCBvZiB0aGlzIHdhcm5pbmcsIHJlcGxhY2UgPEZvcm1payByZW5kZXI9eyhwcm9wcykgPT4gLi4ufSAvPiB3aXRoIDxGb3JtaWs+eyhwcm9wcykgPT4gLi4ufTwvRm9ybWlrPlwiKSA6IGludmFyaWFudChmYWxzZSkgOiB2b2lkIDA7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIH0sIFtdKTtcbiAgfVxuXG4gIHJldHVybiBjcmVhdGVFbGVtZW50KEZvcm1pa1Byb3ZpZGVyLCB7XG4gICAgdmFsdWU6IGZvcm1pa2JhZ1xuICB9LCBjb21wb25lbnQgPyBjcmVhdGVFbGVtZW50KGNvbXBvbmVudCwgZm9ybWlrYmFnKSA6IHJlbmRlciA/IHJlbmRlcihmb3JtaWtiYWcpIDogY2hpbGRyZW4gLy8gY2hpbGRyZW4gY29tZSBsYXN0LCBhbHdheXMgY2FsbGVkXG4gID8gaXNGdW5jdGlvbihjaGlsZHJlbikgPyBjaGlsZHJlbihmb3JtaWtiYWcpIDogIWlzRW1wdHlDaGlsZHJlbihjaGlsZHJlbikgPyBDaGlsZHJlbi5vbmx5KGNoaWxkcmVuKSA6IG51bGwgOiBudWxsKTtcbn1cblxuZnVuY3Rpb24gd2FybkFib3V0TWlzc2luZ0lkZW50aWZpZXIoX3JlZjQpIHtcbiAgdmFyIGh0bWxDb250ZW50ID0gX3JlZjQuaHRtbENvbnRlbnQsXG4gICAgICBkb2N1bWVudGF0aW9uQW5jaG9yTGluayA9IF9yZWY0LmRvY3VtZW50YXRpb25BbmNob3JMaW5rLFxuICAgICAgaGFuZGxlck5hbWUgPSBfcmVmNC5oYW5kbGVyTmFtZTtcbiAgY29uc29sZS53YXJuKFwiV2FybmluZzogRm9ybWlrIGNhbGxlZCBgXCIgKyBoYW5kbGVyTmFtZSArIFwiYCwgYnV0IHlvdSBmb3Jnb3QgdG8gcGFzcyBhbiBgaWRgIG9yIGBuYW1lYCBhdHRyaWJ1dGUgdG8geW91ciBpbnB1dDpcXG4gICAgXCIgKyBodG1sQ29udGVudCArIFwiXFxuICAgIEZvcm1payBjYW5ub3QgZGV0ZXJtaW5lIHdoaWNoIHZhbHVlIHRvIHVwZGF0ZS4gRm9yIG1vcmUgaW5mbyBzZWUgaHR0cHM6Ly9mb3JtaWsub3JnL2RvY3MvYXBpL2Zvcm1payNcIiArIGRvY3VtZW50YXRpb25BbmNob3JMaW5rICsgXCJcXG4gIFwiKTtcbn1cbi8qKlxyXG4gKiBUcmFuc2Zvcm0gWXVwIFZhbGlkYXRpb25FcnJvciB0byBhIG1vcmUgdXNhYmxlIG9iamVjdFxyXG4gKi9cblxuXG5mdW5jdGlvbiB5dXBUb0Zvcm1FcnJvcnMoeXVwRXJyb3IpIHtcbiAgdmFyIGVycm9ycyA9IHt9O1xuXG4gIGlmICh5dXBFcnJvci5pbm5lcikge1xuICAgIGlmICh5dXBFcnJvci5pbm5lci5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBzZXRJbihlcnJvcnMsIHl1cEVycm9yLnBhdGgsIHl1cEVycm9yLm1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGZvciAodmFyIF9pdGVyYXRvciA9IHl1cEVycm9yLmlubmVyLCBfaXNBcnJheSA9IEFycmF5LmlzQXJyYXkoX2l0ZXJhdG9yKSwgX2kgPSAwLCBfaXRlcmF0b3IgPSBfaXNBcnJheSA/IF9pdGVyYXRvciA6IF9pdGVyYXRvcltTeW1ib2wuaXRlcmF0b3JdKCk7Oykge1xuICAgICAgdmFyIF9yZWY1O1xuXG4gICAgICBpZiAoX2lzQXJyYXkpIHtcbiAgICAgICAgaWYgKF9pID49IF9pdGVyYXRvci5sZW5ndGgpIGJyZWFrO1xuICAgICAgICBfcmVmNSA9IF9pdGVyYXRvcltfaSsrXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIF9pID0gX2l0ZXJhdG9yLm5leHQoKTtcbiAgICAgICAgaWYgKF9pLmRvbmUpIGJyZWFrO1xuICAgICAgICBfcmVmNSA9IF9pLnZhbHVlO1xuICAgICAgfVxuXG4gICAgICB2YXIgZXJyID0gX3JlZjU7XG5cbiAgICAgIGlmICghZ2V0SW4oZXJyb3JzLCBlcnIucGF0aCkpIHtcbiAgICAgICAgZXJyb3JzID0gc2V0SW4oZXJyb3JzLCBlcnIucGF0aCwgZXJyLm1lc3NhZ2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBlcnJvcnM7XG59XG4vKipcclxuICogVmFsaWRhdGUgYSB5dXAgc2NoZW1hLlxyXG4gKi9cblxuZnVuY3Rpb24gdmFsaWRhdGVZdXBTY2hlbWEodmFsdWVzLCBzY2hlbWEsIHN5bmMsIGNvbnRleHQpIHtcbiAgaWYgKHN5bmMgPT09IHZvaWQgMCkge1xuICAgIHN5bmMgPSBmYWxzZTtcbiAgfVxuXG4gIGlmIChjb250ZXh0ID09PSB2b2lkIDApIHtcbiAgICBjb250ZXh0ID0ge307XG4gIH1cblxuICB2YXIgdmFsaWRhdGVEYXRhID0gcHJlcGFyZURhdGFGb3JWYWxpZGF0aW9uKHZhbHVlcyk7XG4gIHJldHVybiBzY2hlbWFbc3luYyA/ICd2YWxpZGF0ZVN5bmMnIDogJ3ZhbGlkYXRlJ10odmFsaWRhdGVEYXRhLCB7XG4gICAgYWJvcnRFYXJseTogZmFsc2UsXG4gICAgY29udGV4dDogY29udGV4dFxuICB9KTtcbn1cbi8qKlxyXG4gKiBSZWN1cnNpdmVseSBwcmVwYXJlIHZhbHVlcy5cclxuICovXG5cbmZ1bmN0aW9uIHByZXBhcmVEYXRhRm9yVmFsaWRhdGlvbih2YWx1ZXMpIHtcbiAgdmFyIGRhdGEgPSBBcnJheS5pc0FycmF5KHZhbHVlcykgPyBbXSA6IHt9O1xuXG4gIGZvciAodmFyIGsgaW4gdmFsdWVzKSB7XG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZXMsIGspKSB7XG4gICAgICB2YXIga2V5ID0gU3RyaW5nKGspO1xuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZXNba2V5XSkgPT09IHRydWUpIHtcbiAgICAgICAgZGF0YVtrZXldID0gdmFsdWVzW2tleV0ubWFwKGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSA9PT0gdHJ1ZSB8fCBpc1BsYWluT2JqZWN0KHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHByZXBhcmVEYXRhRm9yVmFsaWRhdGlvbih2YWx1ZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZSAhPT0gJycgPyB2YWx1ZSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmIChpc1BsYWluT2JqZWN0KHZhbHVlc1trZXldKSkge1xuICAgICAgICBkYXRhW2tleV0gPSBwcmVwYXJlRGF0YUZvclZhbGlkYXRpb24odmFsdWVzW2tleV0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGF0YVtrZXldID0gdmFsdWVzW2tleV0gIT09ICcnID8gdmFsdWVzW2tleV0gOiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRhdGE7XG59XG4vKipcclxuICogZGVlcG1lcmdlIGFycmF5IG1lcmdpbmcgYWxnb3JpdGhtXHJcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9LeWxlQU1hdGhld3MvZGVlcG1lcmdlI2NvbWJpbmUtYXJyYXlcclxuICovXG5cbmZ1bmN0aW9uIGFycmF5TWVyZ2UodGFyZ2V0LCBzb3VyY2UsIG9wdGlvbnMpIHtcbiAgdmFyIGRlc3RpbmF0aW9uID0gdGFyZ2V0LnNsaWNlKCk7XG4gIHNvdXJjZS5mb3JFYWNoKGZ1bmN0aW9uIG1lcmdlKGUsIGkpIHtcbiAgICBpZiAodHlwZW9mIGRlc3RpbmF0aW9uW2ldID09PSAndW5kZWZpbmVkJykge1xuICAgICAgdmFyIGNsb25lUmVxdWVzdGVkID0gb3B0aW9ucy5jbG9uZSAhPT0gZmFsc2U7XG4gICAgICB2YXIgc2hvdWxkQ2xvbmUgPSBjbG9uZVJlcXVlc3RlZCAmJiBvcHRpb25zLmlzTWVyZ2VhYmxlT2JqZWN0KGUpO1xuICAgICAgZGVzdGluYXRpb25baV0gPSBzaG91bGRDbG9uZSA/IGRlZXBtZXJnZShBcnJheS5pc0FycmF5KGUpID8gW10gOiB7fSwgZSwgb3B0aW9ucykgOiBlO1xuICAgIH0gZWxzZSBpZiAob3B0aW9ucy5pc01lcmdlYWJsZU9iamVjdChlKSkge1xuICAgICAgZGVzdGluYXRpb25baV0gPSBkZWVwbWVyZ2UodGFyZ2V0W2ldLCBlLCBvcHRpb25zKTtcbiAgICB9IGVsc2UgaWYgKHRhcmdldC5pbmRleE9mKGUpID09PSAtMSkge1xuICAgICAgZGVzdGluYXRpb24ucHVzaChlKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gZGVzdGluYXRpb247XG59XG4vKiogUmV0dXJuIG11bHRpIHNlbGVjdCB2YWx1ZXMgYmFzZWQgb24gYW4gYXJyYXkgb2Ygb3B0aW9ucyAqL1xuXG5cbmZ1bmN0aW9uIGdldFNlbGVjdGVkVmFsdWVzKG9wdGlvbnMpIHtcbiAgcmV0dXJuIEFycmF5LmZyb20ob3B0aW9ucykuZmlsdGVyKGZ1bmN0aW9uIChlbCkge1xuICAgIHJldHVybiBlbC5zZWxlY3RlZDtcbiAgfSkubWFwKGZ1bmN0aW9uIChlbCkge1xuICAgIHJldHVybiBlbC52YWx1ZTtcbiAgfSk7XG59XG4vKiogUmV0dXJuIHRoZSBuZXh0IHZhbHVlIGZvciBhIGNoZWNrYm94ICovXG5cblxuZnVuY3Rpb24gZ2V0VmFsdWVGb3JDaGVja2JveChjdXJyZW50VmFsdWUsIGNoZWNrZWQsIHZhbHVlUHJvcCkge1xuICAvLyBJZiB0aGUgY3VycmVudCB2YWx1ZSB3YXMgYSBib29sZWFuLCByZXR1cm4gYSBib29sZWFuXG4gIGlmICh0eXBlb2YgY3VycmVudFZhbHVlID09PSAnYm9vbGVhbicpIHtcbiAgICByZXR1cm4gQm9vbGVhbihjaGVja2VkKTtcbiAgfSAvLyBJZiB0aGUgY3VycmVudFZhbHVlIHdhcyBub3QgYSBib29sZWFuIHdlIHdhbnQgdG8gcmV0dXJuIGFuIGFycmF5XG5cblxuICB2YXIgY3VycmVudEFycmF5T2ZWYWx1ZXMgPSBbXTtcbiAgdmFyIGlzVmFsdWVJbkFycmF5ID0gZmFsc2U7XG4gIHZhciBpbmRleCA9IC0xO1xuXG4gIGlmICghQXJyYXkuaXNBcnJheShjdXJyZW50VmFsdWUpKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuICAgIGlmICghdmFsdWVQcm9wIHx8IHZhbHVlUHJvcCA9PSAndHJ1ZScgfHwgdmFsdWVQcm9wID09ICdmYWxzZScpIHtcbiAgICAgIHJldHVybiBCb29sZWFuKGNoZWNrZWQpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBJZiB0aGUgY3VycmVudCB2YWx1ZSBpcyBhbHJlYWR5IGFuIGFycmF5LCB1c2UgaXRcbiAgICBjdXJyZW50QXJyYXlPZlZhbHVlcyA9IGN1cnJlbnRWYWx1ZTtcbiAgICBpbmRleCA9IGN1cnJlbnRWYWx1ZS5pbmRleE9mKHZhbHVlUHJvcCk7XG4gICAgaXNWYWx1ZUluQXJyYXkgPSBpbmRleCA+PSAwO1xuICB9IC8vIElmIHRoZSBjaGVja2JveCB3YXMgY2hlY2tlZCBhbmQgdGhlIHZhbHVlIGlzIG5vdCBhbHJlYWR5IHByZXNlbnQgaW4gdGhlIGFyYXkgd2Ugd2FudCB0byBhZGQgdGhlIG5ldyB2YWx1ZSB0byB0aGUgYXJyYXkgb2YgdmFsdWVzXG5cblxuICBpZiAoY2hlY2tlZCAmJiB2YWx1ZVByb3AgJiYgIWlzVmFsdWVJbkFycmF5KSB7XG4gICAgcmV0dXJuIGN1cnJlbnRBcnJheU9mVmFsdWVzLmNvbmNhdCh2YWx1ZVByb3ApO1xuICB9IC8vIElmIHRoZSBjaGVja2JveCB3YXMgdW5jaGVja2VkIGFuZCB0aGUgdmFsdWUgaXMgbm90IGluIHRoZSBhcnJheSwgc2ltcGx5IHJldHVybiB0aGUgYWxyZWFkeSBleGlzdGluZyBhcnJheSBvZiB2YWx1ZXNcblxuXG4gIGlmICghaXNWYWx1ZUluQXJyYXkpIHtcbiAgICByZXR1cm4gY3VycmVudEFycmF5T2ZWYWx1ZXM7XG4gIH0gLy8gSWYgdGhlIGNoZWNrYm94IHdhcyB1bmNoZWNrZWQgYW5kIHRoZSB2YWx1ZSBpcyBpbiB0aGUgYXJyYXksIHJlbW92ZSB0aGUgdmFsdWUgYW5kIHJldHVybiB0aGUgYXJyYXlcblxuXG4gIHJldHVybiBjdXJyZW50QXJyYXlPZlZhbHVlcy5zbGljZSgwLCBpbmRleCkuY29uY2F0KGN1cnJlbnRBcnJheU9mVmFsdWVzLnNsaWNlKGluZGV4ICsgMSkpO1xufSAvLyBSZWFjdCBjdXJyZW50bHkgdGhyb3dzIGEgd2FybmluZyB3aGVuIHVzaW5nIHVzZUxheW91dEVmZmVjdCBvbiB0aGUgc2VydmVyLlxuLy8gVG8gZ2V0IGFyb3VuZCBpdCwgd2UgY2FuIGNvbmRpdGlvbmFsbHkgdXNlRWZmZWN0IG9uIHRoZSBzZXJ2ZXIgKG5vLW9wKSBhbmRcbi8vIHVzZUxheW91dEVmZmVjdCBpbiB0aGUgYnJvd3Nlci5cbi8vIEBzZWUgaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vZ2FlYXJvbi9lN2Q5N2NkZjM4YTI5MDc5MjRlYTEyZTRlYmRmM2M4NVxuXG5cbnZhciB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0ID0gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIHdpbmRvdy5kb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIHdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50ICE9PSAndW5kZWZpbmVkJyA/IHVzZUxheW91dEVmZmVjdCA6IHVzZUVmZmVjdDtcblxuZnVuY3Rpb24gdXNlRXZlbnRDYWxsYmFjayhmbikge1xuICB2YXIgcmVmID0gdXNlUmVmKGZuKTsgLy8gd2UgY29weSBhIHJlZiB0byB0aGUgY2FsbGJhY2sgc2NvcGVkIHRvIHRoZSBjdXJyZW50IHN0YXRlL3Byb3BzIG9uIGVhY2ggcmVuZGVyXG5cbiAgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgcmVmLmN1cnJlbnQgPSBmbjtcbiAgfSk7XG4gIHJldHVybiB1c2VDYWxsYmFjayhmdW5jdGlvbiAoKSB7XG4gICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICBhcmdzW19rZXldID0gYXJndW1lbnRzW19rZXldO1xuICAgIH1cblxuICAgIHJldHVybiByZWYuY3VycmVudC5hcHBseSh2b2lkIDAsIGFyZ3MpO1xuICB9LCBbXSk7XG59XG5cbmZ1bmN0aW9uIHVzZUZpZWxkKHByb3BzT3JGaWVsZE5hbWUpIHtcbiAgdmFyIGZvcm1payA9IHVzZUZvcm1pa0NvbnRleHQoKTtcbiAgdmFyIGdldEZpZWxkUHJvcHMgPSBmb3JtaWsuZ2V0RmllbGRQcm9wcyxcbiAgICAgIGdldEZpZWxkTWV0YSA9IGZvcm1pay5nZXRGaWVsZE1ldGEsXG4gICAgICBnZXRGaWVsZEhlbHBlcnMgPSBmb3JtaWsuZ2V0RmllbGRIZWxwZXJzLFxuICAgICAgcmVnaXN0ZXJGaWVsZCA9IGZvcm1pay5yZWdpc3RlckZpZWxkLFxuICAgICAgdW5yZWdpc3RlckZpZWxkID0gZm9ybWlrLnVucmVnaXN0ZXJGaWVsZDtcbiAgdmFyIGlzQW5PYmplY3QgPSBpc09iamVjdChwcm9wc09yRmllbGROYW1lKTsgLy8gTm9ybWFsaXplIHByb3BzT3JGaWVsZE5hbWUgdG8gRmllbGRIb29rQ29uZmlnPFZhbD5cblxuICB2YXIgcHJvcHMgPSBpc0FuT2JqZWN0ID8gcHJvcHNPckZpZWxkTmFtZSA6IHtcbiAgICBuYW1lOiBwcm9wc09yRmllbGROYW1lXG4gIH07XG4gIHZhciBmaWVsZE5hbWUgPSBwcm9wcy5uYW1lLFxuICAgICAgdmFsaWRhdGVGbiA9IHByb3BzLnZhbGlkYXRlO1xuICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIGlmIChmaWVsZE5hbWUpIHtcbiAgICAgIHJlZ2lzdGVyRmllbGQoZmllbGROYW1lLCB7XG4gICAgICAgIHZhbGlkYXRlOiB2YWxpZGF0ZUZuXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKGZpZWxkTmFtZSkge1xuICAgICAgICB1bnJlZ2lzdGVyRmllbGQoZmllbGROYW1lKTtcbiAgICAgIH1cbiAgICB9O1xuICB9LCBbcmVnaXN0ZXJGaWVsZCwgdW5yZWdpc3RlckZpZWxkLCBmaWVsZE5hbWUsIHZhbGlkYXRlRm5dKTtcblxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgIWZvcm1payA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IGludmFyaWFudChmYWxzZSwgJ3VzZUZpZWxkKCkgLyA8RmllbGQgLz4gbXVzdCBiZSB1c2VkIHVuZGVybmVhdGggYSA8Rm9ybWlrPiBjb21wb25lbnQgb3Igd2l0aEZvcm1paygpIGhpZ2hlciBvcmRlciBjb21wb25lbnQnKSA6IGludmFyaWFudChmYWxzZSkgOiB2b2lkIDA7XG4gIH1cblxuICAhZmllbGROYW1lID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gaW52YXJpYW50KGZhbHNlLCAnSW52YWxpZCBmaWVsZCBuYW1lLiBFaXRoZXIgcGFzcyBgdXNlRmllbGRgIGEgc3RyaW5nIG9yIGFuIG9iamVjdCBjb250YWluaW5nIGEgYG5hbWVgIGtleS4nKSA6IGludmFyaWFudChmYWxzZSkgOiB2b2lkIDA7XG4gIHJldHVybiBbZ2V0RmllbGRQcm9wcyhwcm9wcyksIGdldEZpZWxkTWV0YShmaWVsZE5hbWUpLCBnZXRGaWVsZEhlbHBlcnMoZmllbGROYW1lKV07XG59XG5mdW5jdGlvbiBGaWVsZChfcmVmKSB7XG4gIHZhciB2YWxpZGF0ZSA9IF9yZWYudmFsaWRhdGUsXG4gICAgICBuYW1lID0gX3JlZi5uYW1lLFxuICAgICAgcmVuZGVyID0gX3JlZi5yZW5kZXIsXG4gICAgICBjaGlsZHJlbiA9IF9yZWYuY2hpbGRyZW4sXG4gICAgICBpcyA9IF9yZWYuYXMsXG4gICAgICBjb21wb25lbnQgPSBfcmVmLmNvbXBvbmVudCxcbiAgICAgIHByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UoX3JlZiwgW1widmFsaWRhdGVcIiwgXCJuYW1lXCIsIFwicmVuZGVyXCIsIFwiY2hpbGRyZW5cIiwgXCJhc1wiLCBcImNvbXBvbmVudFwiXSk7XG5cbiAgdmFyIF91c2VGb3JtaWtDb250ZXh0ID0gdXNlRm9ybWlrQ29udGV4dCgpLFxuICAgICAgZm9ybWlrID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UoX3VzZUZvcm1pa0NvbnRleHQsIFtcInZhbGlkYXRlXCIsIFwidmFsaWRhdGlvblNjaGVtYVwiXSk7XG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9ydWxlcy1vZi1ob29rc1xuICAgIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICAhIXJlbmRlciA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IGludmFyaWFudChmYWxzZSwgXCI8RmllbGQgcmVuZGVyPiBoYXMgYmVlbiBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gZnV0dXJlIHZlcnNpb25zIG9mIEZvcm1pay4gUGxlYXNlIHVzZSBhIGNoaWxkIGNhbGxiYWNrIGZ1bmN0aW9uIGluc3RlYWQuIFRvIGdldCByaWQgb2YgdGhpcyB3YXJuaW5nLCByZXBsYWNlIDxGaWVsZCBuYW1lPVxcXCJcIiArIG5hbWUgKyBcIlxcXCIgcmVuZGVyPXsoe2ZpZWxkLCBmb3JtfSkgPT4gLi4ufSAvPiB3aXRoIDxGaWVsZCBuYW1lPVxcXCJcIiArIG5hbWUgKyBcIlxcXCI+eyh7ZmllbGQsIGZvcm0sIG1ldGF9KSA9PiAuLi59PC9GaWVsZD5cIikgOiBpbnZhcmlhbnQoZmFsc2UpIDogdm9pZCAwO1xuICAgICAgISEoaXMgJiYgY2hpbGRyZW4gJiYgaXNGdW5jdGlvbihjaGlsZHJlbikpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gaW52YXJpYW50KGZhbHNlLCAnWW91IHNob3VsZCBub3QgdXNlIDxGaWVsZCBhcz4gYW5kIDxGaWVsZCBjaGlsZHJlbj4gYXMgYSBmdW5jdGlvbiBpbiB0aGUgc2FtZSA8RmllbGQ+IGNvbXBvbmVudDsgPEZpZWxkIGFzPiB3aWxsIGJlIGlnbm9yZWQuJykgOiBpbnZhcmlhbnQoZmFsc2UpIDogdm9pZCAwO1xuICAgICAgISEoY29tcG9uZW50ICYmIGNoaWxkcmVuICYmIGlzRnVuY3Rpb24oY2hpbGRyZW4pKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IGludmFyaWFudChmYWxzZSwgJ1lvdSBzaG91bGQgbm90IHVzZSA8RmllbGQgY29tcG9uZW50PiBhbmQgPEZpZWxkIGNoaWxkcmVuPiBhcyBhIGZ1bmN0aW9uIGluIHRoZSBzYW1lIDxGaWVsZD4gY29tcG9uZW50OyA8RmllbGQgY29tcG9uZW50PiB3aWxsIGJlIGlnbm9yZWQuJykgOiBpbnZhcmlhbnQoZmFsc2UpIDogdm9pZCAwO1xuICAgICAgISEocmVuZGVyICYmIGNoaWxkcmVuICYmICFpc0VtcHR5Q2hpbGRyZW4oY2hpbGRyZW4pKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IGludmFyaWFudChmYWxzZSwgJ1lvdSBzaG91bGQgbm90IHVzZSA8RmllbGQgcmVuZGVyPiBhbmQgPEZpZWxkIGNoaWxkcmVuPiBpbiB0aGUgc2FtZSA8RmllbGQ+IGNvbXBvbmVudDsgPEZpZWxkIGNoaWxkcmVuPiB3aWxsIGJlIGlnbm9yZWQnKSA6IGludmFyaWFudChmYWxzZSkgOiB2b2lkIDA7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIH0sIFtdKTtcbiAgfSAvLyBSZWdpc3RlciBmaWVsZCBhbmQgZmllbGQtbGV2ZWwgdmFsaWRhdGlvbiB3aXRoIHBhcmVudCA8Rm9ybWlrPlxuXG5cbiAgdmFyIHJlZ2lzdGVyRmllbGQgPSBmb3JtaWsucmVnaXN0ZXJGaWVsZCxcbiAgICAgIHVucmVnaXN0ZXJGaWVsZCA9IGZvcm1pay51bnJlZ2lzdGVyRmllbGQ7XG4gIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgcmVnaXN0ZXJGaWVsZChuYW1lLCB7XG4gICAgICB2YWxpZGF0ZTogdmFsaWRhdGVcbiAgICB9KTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgdW5yZWdpc3RlckZpZWxkKG5hbWUpO1xuICAgIH07XG4gIH0sIFtyZWdpc3RlckZpZWxkLCB1bnJlZ2lzdGVyRmllbGQsIG5hbWUsIHZhbGlkYXRlXSk7XG4gIHZhciBmaWVsZCA9IGZvcm1pay5nZXRGaWVsZFByb3BzKF9leHRlbmRzKHtcbiAgICBuYW1lOiBuYW1lXG4gIH0sIHByb3BzKSk7XG4gIHZhciBtZXRhID0gZm9ybWlrLmdldEZpZWxkTWV0YShuYW1lKTtcbiAgdmFyIGxlZ2FjeUJhZyA9IHtcbiAgICBmaWVsZDogZmllbGQsXG4gICAgZm9ybTogZm9ybWlrXG4gIH07XG5cbiAgaWYgKHJlbmRlcikge1xuICAgIHJldHVybiByZW5kZXIoX2V4dGVuZHMoe30sIGxlZ2FjeUJhZywge1xuICAgICAgbWV0YTogbWV0YVxuICAgIH0pKTtcbiAgfVxuXG4gIGlmIChpc0Z1bmN0aW9uKGNoaWxkcmVuKSkge1xuICAgIHJldHVybiBjaGlsZHJlbihfZXh0ZW5kcyh7fSwgbGVnYWN5QmFnLCB7XG4gICAgICBtZXRhOiBtZXRhXG4gICAgfSkpO1xuICB9XG5cbiAgaWYgKGNvbXBvbmVudCkge1xuICAgIC8vIFRoaXMgYmVoYXZpb3IgaXMgYmFja3dhcmRzIGNvbXBhdCB3aXRoIGVhcmxpZXIgRm9ybWlrIDAuOSB0byAxLnhcbiAgICBpZiAodHlwZW9mIGNvbXBvbmVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHZhciBpbm5lclJlZiA9IHByb3BzLmlubmVyUmVmLFxuICAgICAgICAgIHJlc3QgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShwcm9wcywgW1wiaW5uZXJSZWZcIl0pO1xuXG4gICAgICByZXR1cm4gY3JlYXRlRWxlbWVudChjb21wb25lbnQsIF9leHRlbmRzKHtcbiAgICAgICAgcmVmOiBpbm5lclJlZlxuICAgICAgfSwgZmllbGQsIHJlc3QpLCBjaGlsZHJlbik7XG4gICAgfSAvLyBXZSBkb24ndCBwYXNzIGBtZXRhYCBmb3IgYmFja3dhcmRzIGNvbXBhdFxuXG5cbiAgICByZXR1cm4gY3JlYXRlRWxlbWVudChjb21wb25lbnQsIF9leHRlbmRzKHtcbiAgICAgIGZpZWxkOiBmaWVsZCxcbiAgICAgIGZvcm06IGZvcm1pa1xuICAgIH0sIHByb3BzKSwgY2hpbGRyZW4pO1xuICB9IC8vIGRlZmF1bHQgdG8gaW5wdXQgaGVyZSBzbyB3ZSBjYW4gY2hlY2sgZm9yIGJvdGggYGFzYCBhbmQgYGNoaWxkcmVuYCBhYm92ZVxuXG5cbiAgdmFyIGFzRWxlbWVudCA9IGlzIHx8ICdpbnB1dCc7XG5cbiAgaWYgKHR5cGVvZiBhc0VsZW1lbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgdmFyIF9pbm5lclJlZiA9IHByb3BzLmlubmVyUmVmLFxuICAgICAgICBfcmVzdCA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKHByb3BzLCBbXCJpbm5lclJlZlwiXSk7XG5cbiAgICByZXR1cm4gY3JlYXRlRWxlbWVudChhc0VsZW1lbnQsIF9leHRlbmRzKHtcbiAgICAgIHJlZjogX2lubmVyUmVmXG4gICAgfSwgZmllbGQsIF9yZXN0KSwgY2hpbGRyZW4pO1xuICB9XG5cbiAgcmV0dXJuIGNyZWF0ZUVsZW1lbnQoYXNFbGVtZW50LCBfZXh0ZW5kcyh7fSwgZmllbGQsIHByb3BzKSwgY2hpbGRyZW4pO1xufVxuXG52YXIgRm9ybSA9IC8qI19fUFVSRV9fKi9mb3J3YXJkUmVmKGZ1bmN0aW9uIChwcm9wcywgcmVmKSB7XG4gIC8vIGlPUyBuZWVkcyBhbiBcImFjdGlvblwiIGF0dHJpYnV0ZSBmb3IgbmljZSBpbnB1dDogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzM5NDg1MTYyLzQwNjcyNVxuICAvLyBXZSBkZWZhdWx0IHRoZSBhY3Rpb24gdG8gXCIjXCIgaW4gY2FzZSB0aGUgcHJldmVudERlZmF1bHQgZmFpbHMgKGp1c3QgdXBkYXRlcyB0aGUgVVJMIGhhc2gpXG4gIHZhciBhY3Rpb24gPSBwcm9wcy5hY3Rpb24sXG4gICAgICByZXN0ID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UocHJvcHMsIFtcImFjdGlvblwiXSk7XG5cbiAgdmFyIF9hY3Rpb24gPSBhY3Rpb24gIT0gbnVsbCA/IGFjdGlvbiA6ICcjJztcblxuICB2YXIgX3VzZUZvcm1pa0NvbnRleHQgPSB1c2VGb3JtaWtDb250ZXh0KCksXG4gICAgICBoYW5kbGVSZXNldCA9IF91c2VGb3JtaWtDb250ZXh0LmhhbmRsZVJlc2V0LFxuICAgICAgaGFuZGxlU3VibWl0ID0gX3VzZUZvcm1pa0NvbnRleHQuaGFuZGxlU3VibWl0O1xuXG4gIHJldHVybiBjcmVhdGVFbGVtZW50KFwiZm9ybVwiLCBPYmplY3QuYXNzaWduKHtcbiAgICBvblN1Ym1pdDogaGFuZGxlU3VibWl0LFxuICAgIHJlZjogcmVmLFxuICAgIG9uUmVzZXQ6IGhhbmRsZVJlc2V0LFxuICAgIGFjdGlvbjogX2FjdGlvblxuICB9LCByZXN0KSk7XG59KTtcbkZvcm0uZGlzcGxheU5hbWUgPSAnRm9ybSc7XG5cbi8qKlxyXG4gKiBBIHB1YmxpYyBoaWdoZXItb3JkZXIgY29tcG9uZW50IHRvIGFjY2VzcyB0aGUgaW1wZXJhdGl2ZSBBUElcclxuICovXG5cbmZ1bmN0aW9uIHdpdGhGb3JtaWsoX3JlZikge1xuICB2YXIgX3JlZiRtYXBQcm9wc1RvVmFsdWVzID0gX3JlZi5tYXBQcm9wc1RvVmFsdWVzLFxuICAgICAgbWFwUHJvcHNUb1ZhbHVlcyA9IF9yZWYkbWFwUHJvcHNUb1ZhbHVlcyA9PT0gdm9pZCAwID8gZnVuY3Rpb24gKHZhbmlsbGFQcm9wcykge1xuICAgIHZhciB2YWwgPSB7fTtcblxuICAgIGZvciAodmFyIGsgaW4gdmFuaWxsYVByb3BzKSB7XG4gICAgICBpZiAodmFuaWxsYVByb3BzLmhhc093blByb3BlcnR5KGspICYmIHR5cGVvZiB2YW5pbGxhUHJvcHNba10gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgLy8gQHRvZG8gVHlwZVNjcmlwdCBmaXhcbiAgICAgICAgdmFsW2tdID0gdmFuaWxsYVByb3BzW2tdO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB2YWw7XG4gIH0gOiBfcmVmJG1hcFByb3BzVG9WYWx1ZXMsXG4gICAgICBjb25maWcgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShfcmVmLCBbXCJtYXBQcm9wc1RvVmFsdWVzXCJdKTtcblxuICByZXR1cm4gZnVuY3Rpb24gY3JlYXRlRm9ybWlrKENvbXBvbmVudCQxKSB7XG4gICAgdmFyIGNvbXBvbmVudERpc3BsYXlOYW1lID0gQ29tcG9uZW50JDEuZGlzcGxheU5hbWUgfHwgQ29tcG9uZW50JDEubmFtZSB8fCBDb21wb25lbnQkMS5jb25zdHJ1Y3RvciAmJiBDb21wb25lbnQkMS5jb25zdHJ1Y3Rvci5uYW1lIHx8ICdDb21wb25lbnQnO1xuICAgIC8qKlxyXG4gICAgICogV2UgbmVlZCB0byB1c2UgY2xvc3VyZXMgaGVyZSBmb3IgdG8gcHJvdmlkZSB0aGUgd3JhcHBlZCBjb21wb25lbnQncyBwcm9wcyB0b1xyXG4gICAgICogdGhlIHJlc3BlY3RpdmUgd2l0aEZvcm1payBjb25maWcgbWV0aG9kcy5cclxuICAgICAqL1xuXG4gICAgdmFyIEMgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgICAgIF9pbmhlcml0c0xvb3NlKEMsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gICAgICBmdW5jdGlvbiBDKCkge1xuICAgICAgICB2YXIgX3RoaXM7XG5cbiAgICAgICAgX3RoaXMgPSBfUmVhY3QkQ29tcG9uZW50LmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpcztcblxuICAgICAgICBfdGhpcy52YWxpZGF0ZSA9IGZ1bmN0aW9uICh2YWx1ZXMpIHtcbiAgICAgICAgICByZXR1cm4gY29uZmlnLnZhbGlkYXRlKHZhbHVlcywgX3RoaXMucHJvcHMpO1xuICAgICAgICB9O1xuXG4gICAgICAgIF90aGlzLnZhbGlkYXRpb25TY2hlbWEgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIGlzRnVuY3Rpb24oY29uZmlnLnZhbGlkYXRpb25TY2hlbWEpID8gY29uZmlnLnZhbGlkYXRpb25TY2hlbWEoX3RoaXMucHJvcHMpIDogY29uZmlnLnZhbGlkYXRpb25TY2hlbWE7XG4gICAgICAgIH07XG5cbiAgICAgICAgX3RoaXMuaGFuZGxlU3VibWl0ID0gZnVuY3Rpb24gKHZhbHVlcywgYWN0aW9ucykge1xuICAgICAgICAgIHJldHVybiBjb25maWcuaGFuZGxlU3VibWl0KHZhbHVlcywgX2V4dGVuZHMoe30sIGFjdGlvbnMsIHtcbiAgICAgICAgICAgIHByb3BzOiBfdGhpcy5wcm9wc1xuICAgICAgICAgIH0pKTtcbiAgICAgICAgfTtcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSnVzdCBhdm9pZGluZyBhIHJlbmRlciBjYWxsYmFjayBmb3IgcGVyZiBoZXJlXHJcbiAgICAgICAgICovXG5cblxuICAgICAgICBfdGhpcy5yZW5kZXJGb3JtQ29tcG9uZW50ID0gZnVuY3Rpb24gKGZvcm1pa1Byb3BzKSB7XG4gICAgICAgICAgcmV0dXJuIGNyZWF0ZUVsZW1lbnQoQ29tcG9uZW50JDEsIE9iamVjdC5hc3NpZ24oe30sIF90aGlzLnByb3BzLCBmb3JtaWtQcm9wcykpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICAgIH1cblxuICAgICAgdmFyIF9wcm90byA9IEMucHJvdG90eXBlO1xuXG4gICAgICBfcHJvdG8ucmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICB2YXIgX3RoaXMkcHJvcHMgPSB0aGlzLnByb3BzLFxuICAgICAgICAgICAgcHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShfdGhpcyRwcm9wcywgW1wiY2hpbGRyZW5cIl0pO1xuXG4gICAgICAgIHJldHVybiBjcmVhdGVFbGVtZW50KEZvcm1paywgT2JqZWN0LmFzc2lnbih7fSwgcHJvcHMsIGNvbmZpZywge1xuICAgICAgICAgIHZhbGlkYXRlOiBjb25maWcudmFsaWRhdGUgJiYgdGhpcy52YWxpZGF0ZSxcbiAgICAgICAgICB2YWxpZGF0aW9uU2NoZW1hOiBjb25maWcudmFsaWRhdGlvblNjaGVtYSAmJiB0aGlzLnZhbGlkYXRpb25TY2hlbWEsXG4gICAgICAgICAgaW5pdGlhbFZhbHVlczogbWFwUHJvcHNUb1ZhbHVlcyh0aGlzLnByb3BzKSxcbiAgICAgICAgICBpbml0aWFsU3RhdHVzOiBjb25maWcubWFwUHJvcHNUb1N0YXR1cyAmJiBjb25maWcubWFwUHJvcHNUb1N0YXR1cyh0aGlzLnByb3BzKSxcbiAgICAgICAgICBpbml0aWFsRXJyb3JzOiBjb25maWcubWFwUHJvcHNUb0Vycm9ycyAmJiBjb25maWcubWFwUHJvcHNUb0Vycm9ycyh0aGlzLnByb3BzKSxcbiAgICAgICAgICBpbml0aWFsVG91Y2hlZDogY29uZmlnLm1hcFByb3BzVG9Ub3VjaGVkICYmIGNvbmZpZy5tYXBQcm9wc1RvVG91Y2hlZCh0aGlzLnByb3BzKSxcbiAgICAgICAgICBvblN1Ym1pdDogdGhpcy5oYW5kbGVTdWJtaXQsXG4gICAgICAgICAgY2hpbGRyZW46IHRoaXMucmVuZGVyRm9ybUNvbXBvbmVudFxuICAgICAgICB9KSk7XG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gQztcbiAgICB9KENvbXBvbmVudCk7XG5cbiAgICBDLmRpc3BsYXlOYW1lID0gXCJXaXRoRm9ybWlrKFwiICsgY29tcG9uZW50RGlzcGxheU5hbWUgKyBcIilcIjtcbiAgICByZXR1cm4gaG9pc3ROb25SZWFjdFN0YXRpY3MoQywgQ29tcG9uZW50JDEgLy8gY2FzdCB0eXBlIHRvIENvbXBvbmVudENsYXNzIChldmVuIGlmIFNGQylcbiAgICApO1xuICB9O1xufVxuXG4vKipcclxuICogQ29ubmVjdCBhbnkgY29tcG9uZW50IHRvIEZvcm1payBjb250ZXh0LCBhbmQgaW5qZWN0IGFzIGEgcHJvcCBjYWxsZWQgYGZvcm1pa2A7XHJcbiAqIEBwYXJhbSBDb21wIFJlYWN0IENvbXBvbmVudFxyXG4gKi9cblxuZnVuY3Rpb24gY29ubmVjdChDb21wKSB7XG4gIHZhciBDID0gZnVuY3Rpb24gQyhwcm9wcykge1xuICAgIHJldHVybiBjcmVhdGVFbGVtZW50KEZvcm1pa0NvbnN1bWVyLCBudWxsLCBmdW5jdGlvbiAoZm9ybWlrKSB7XG4gICAgICAhISFmb3JtaWsgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyBpbnZhcmlhbnQoZmFsc2UsIFwiRm9ybWlrIGNvbnRleHQgaXMgdW5kZWZpbmVkLCBwbGVhc2UgdmVyaWZ5IHlvdSBhcmUgcmVuZGVyaW5nIDxGb3JtPiwgPEZpZWxkPiwgPEZhc3RGaWVsZD4sIDxGaWVsZEFycmF5Piwgb3IgeW91ciBjdXN0b20gY29udGV4dC11c2luZyBjb21wb25lbnQgYXMgYSBjaGlsZCBvZiBhIDxGb3JtaWs+IGNvbXBvbmVudC4gQ29tcG9uZW50IG5hbWU6IFwiICsgQ29tcC5uYW1lKSA6IGludmFyaWFudChmYWxzZSkgOiB2b2lkIDA7XG4gICAgICByZXR1cm4gY3JlYXRlRWxlbWVudChDb21wLCBPYmplY3QuYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICBmb3JtaWs6IGZvcm1pa1xuICAgICAgfSkpO1xuICAgIH0pO1xuICB9O1xuXG4gIHZhciBjb21wb25lbnREaXNwbGF5TmFtZSA9IENvbXAuZGlzcGxheU5hbWUgfHwgQ29tcC5uYW1lIHx8IENvbXAuY29uc3RydWN0b3IgJiYgQ29tcC5jb25zdHJ1Y3Rvci5uYW1lIHx8ICdDb21wb25lbnQnOyAvLyBBc3NpZ24gQ29tcCB0byBDLldyYXBwZWRDb21wb25lbnQgc28gd2UgY2FuIGFjY2VzcyB0aGUgaW5uZXIgY29tcG9uZW50IGluIHRlc3RzXG4gIC8vIEZvciBleGFtcGxlLCA8RmllbGQuV3JhcHBlZENvbXBvbmVudCAvPiBnZXRzIHVzIDxGaWVsZElubmVyLz5cblxuICBDLldyYXBwZWRDb21wb25lbnQgPSBDb21wO1xuICBDLmRpc3BsYXlOYW1lID0gXCJGb3JtaWtDb25uZWN0KFwiICsgY29tcG9uZW50RGlzcGxheU5hbWUgKyBcIilcIjtcbiAgcmV0dXJuIGhvaXN0Tm9uUmVhY3RTdGF0aWNzKEMsIENvbXAgLy8gY2FzdCB0eXBlIHRvIENvbXBvbmVudENsYXNzIChldmVuIGlmIFNGQylcbiAgKTtcbn1cblxuLyoqXHJcbiAqIFNvbWUgYXJyYXkgaGVscGVycyFcclxuICovXG5cbnZhciBtb3ZlID0gZnVuY3Rpb24gbW92ZShhcnJheSwgZnJvbSwgdG8pIHtcbiAgdmFyIGNvcHkgPSBjb3B5QXJyYXlMaWtlKGFycmF5KTtcbiAgdmFyIHZhbHVlID0gY29weVtmcm9tXTtcbiAgY29weS5zcGxpY2UoZnJvbSwgMSk7XG4gIGNvcHkuc3BsaWNlKHRvLCAwLCB2YWx1ZSk7XG4gIHJldHVybiBjb3B5O1xufTtcbnZhciBzd2FwID0gZnVuY3Rpb24gc3dhcChhcnJheUxpa2UsIGluZGV4QSwgaW5kZXhCKSB7XG4gIHZhciBjb3B5ID0gY29weUFycmF5TGlrZShhcnJheUxpa2UpO1xuICB2YXIgYSA9IGNvcHlbaW5kZXhBXTtcbiAgY29weVtpbmRleEFdID0gY29weVtpbmRleEJdO1xuICBjb3B5W2luZGV4Ql0gPSBhO1xuICByZXR1cm4gY29weTtcbn07XG52YXIgaW5zZXJ0ID0gZnVuY3Rpb24gaW5zZXJ0KGFycmF5TGlrZSwgaW5kZXgsIHZhbHVlKSB7XG4gIHZhciBjb3B5ID0gY29weUFycmF5TGlrZShhcnJheUxpa2UpO1xuICBjb3B5LnNwbGljZShpbmRleCwgMCwgdmFsdWUpO1xuICByZXR1cm4gY29weTtcbn07XG52YXIgcmVwbGFjZSA9IGZ1bmN0aW9uIHJlcGxhY2UoYXJyYXlMaWtlLCBpbmRleCwgdmFsdWUpIHtcbiAgdmFyIGNvcHkgPSBjb3B5QXJyYXlMaWtlKGFycmF5TGlrZSk7XG4gIGNvcHlbaW5kZXhdID0gdmFsdWU7XG4gIHJldHVybiBjb3B5O1xufTtcblxudmFyIGNvcHlBcnJheUxpa2UgPSBmdW5jdGlvbiBjb3B5QXJyYXlMaWtlKGFycmF5TGlrZSkge1xuICBpZiAoIWFycmF5TGlrZSkge1xuICAgIHJldHVybiBbXTtcbiAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGFycmF5TGlrZSkpIHtcbiAgICByZXR1cm4gW10uY29uY2F0KGFycmF5TGlrZSk7XG4gIH0gZWxzZSB7XG4gICAgdmFyIG1heEluZGV4ID0gT2JqZWN0LmtleXMoYXJyYXlMaWtlKS5tYXAoZnVuY3Rpb24gKGtleSkge1xuICAgICAgcmV0dXJuIHBhcnNlSW50KGtleSk7XG4gICAgfSkucmVkdWNlKGZ1bmN0aW9uIChtYXgsIGVsKSB7XG4gICAgICByZXR1cm4gZWwgPiBtYXggPyBlbCA6IG1heDtcbiAgICB9LCAwKTtcbiAgICByZXR1cm4gQXJyYXkuZnJvbShfZXh0ZW5kcyh7fSwgYXJyYXlMaWtlLCB7XG4gICAgICBsZW5ndGg6IG1heEluZGV4ICsgMVxuICAgIH0pKTtcbiAgfVxufTtcblxudmFyIEZpZWxkQXJyYXlJbm5lciA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHNMb29zZShGaWVsZEFycmF5SW5uZXIsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIGZ1bmN0aW9uIEZpZWxkQXJyYXlJbm5lcihwcm9wcykge1xuICAgIHZhciBfdGhpcztcblxuICAgIF90aGlzID0gX1JlYWN0JENvbXBvbmVudC5jYWxsKHRoaXMsIHByb3BzKSB8fCB0aGlzO1xuXG4gICAgX3RoaXMudXBkYXRlQXJyYXlGaWVsZCA9IGZ1bmN0aW9uIChmbiwgYWx0ZXJUb3VjaGVkLCBhbHRlckVycm9ycykge1xuICAgICAgdmFyIF90aGlzJHByb3BzID0gX3RoaXMucHJvcHMsXG4gICAgICAgICAgbmFtZSA9IF90aGlzJHByb3BzLm5hbWUsXG4gICAgICAgICAgc2V0Rm9ybWlrU3RhdGUgPSBfdGhpcyRwcm9wcy5mb3JtaWsuc2V0Rm9ybWlrU3RhdGU7XG4gICAgICBzZXRGb3JtaWtTdGF0ZShmdW5jdGlvbiAocHJldlN0YXRlKSB7XG4gICAgICAgIHZhciB1cGRhdGVFcnJvcnMgPSB0eXBlb2YgYWx0ZXJFcnJvcnMgPT09ICdmdW5jdGlvbicgPyBhbHRlckVycm9ycyA6IGZuO1xuICAgICAgICB2YXIgdXBkYXRlVG91Y2hlZCA9IHR5cGVvZiBhbHRlclRvdWNoZWQgPT09ICdmdW5jdGlvbicgPyBhbHRlclRvdWNoZWQgOiBmbjsgLy8gdmFsdWVzIGZuIHNob3VsZCBiZSBleGVjdXRlZCBiZWZvcmUgdXBkYXRlRXJyb3JzIGFuZCB1cGRhdGVUb3VjaGVkLFxuICAgICAgICAvLyBvdGhlcndpc2UgaXQgY2F1c2VzIGFuIGVycm9yIHdpdGggdW5zaGlmdC5cblxuICAgICAgICB2YXIgdmFsdWVzID0gc2V0SW4ocHJldlN0YXRlLnZhbHVlcywgbmFtZSwgZm4oZ2V0SW4ocHJldlN0YXRlLnZhbHVlcywgbmFtZSkpKTtcbiAgICAgICAgdmFyIGZpZWxkRXJyb3IgPSBhbHRlckVycm9ycyA/IHVwZGF0ZUVycm9ycyhnZXRJbihwcmV2U3RhdGUuZXJyb3JzLCBuYW1lKSkgOiB1bmRlZmluZWQ7XG4gICAgICAgIHZhciBmaWVsZFRvdWNoZWQgPSBhbHRlclRvdWNoZWQgPyB1cGRhdGVUb3VjaGVkKGdldEluKHByZXZTdGF0ZS50b3VjaGVkLCBuYW1lKSkgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgaWYgKGlzRW1wdHlBcnJheShmaWVsZEVycm9yKSkge1xuICAgICAgICAgIGZpZWxkRXJyb3IgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNFbXB0eUFycmF5KGZpZWxkVG91Y2hlZCkpIHtcbiAgICAgICAgICBmaWVsZFRvdWNoZWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gX2V4dGVuZHMoe30sIHByZXZTdGF0ZSwge1xuICAgICAgICAgIHZhbHVlczogdmFsdWVzLFxuICAgICAgICAgIGVycm9yczogYWx0ZXJFcnJvcnMgPyBzZXRJbihwcmV2U3RhdGUuZXJyb3JzLCBuYW1lLCBmaWVsZEVycm9yKSA6IHByZXZTdGF0ZS5lcnJvcnMsXG4gICAgICAgICAgdG91Y2hlZDogYWx0ZXJUb3VjaGVkID8gc2V0SW4ocHJldlN0YXRlLnRvdWNoZWQsIG5hbWUsIGZpZWxkVG91Y2hlZCkgOiBwcmV2U3RhdGUudG91Y2hlZFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBfdGhpcy5wdXNoID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICByZXR1cm4gX3RoaXMudXBkYXRlQXJyYXlGaWVsZChmdW5jdGlvbiAoYXJyYXlMaWtlKSB7XG4gICAgICAgIHJldHVybiBbXS5jb25jYXQoY29weUFycmF5TGlrZShhcnJheUxpa2UpLCBbY2xvbmVEZWVwKHZhbHVlKV0pO1xuICAgICAgfSwgZmFsc2UsIGZhbHNlKTtcbiAgICB9O1xuXG4gICAgX3RoaXMuaGFuZGxlUHVzaCA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIF90aGlzLnB1c2godmFsdWUpO1xuICAgICAgfTtcbiAgICB9O1xuXG4gICAgX3RoaXMuc3dhcCA9IGZ1bmN0aW9uIChpbmRleEEsIGluZGV4Qikge1xuICAgICAgcmV0dXJuIF90aGlzLnVwZGF0ZUFycmF5RmllbGQoZnVuY3Rpb24gKGFycmF5KSB7XG4gICAgICAgIHJldHVybiBzd2FwKGFycmF5LCBpbmRleEEsIGluZGV4Qik7XG4gICAgICB9LCB0cnVlLCB0cnVlKTtcbiAgICB9O1xuXG4gICAgX3RoaXMuaGFuZGxlU3dhcCA9IGZ1bmN0aW9uIChpbmRleEEsIGluZGV4Qikge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIF90aGlzLnN3YXAoaW5kZXhBLCBpbmRleEIpO1xuICAgICAgfTtcbiAgICB9O1xuXG4gICAgX3RoaXMubW92ZSA9IGZ1bmN0aW9uIChmcm9tLCB0bykge1xuICAgICAgcmV0dXJuIF90aGlzLnVwZGF0ZUFycmF5RmllbGQoZnVuY3Rpb24gKGFycmF5KSB7XG4gICAgICAgIHJldHVybiBtb3ZlKGFycmF5LCBmcm9tLCB0byk7XG4gICAgICB9LCB0cnVlLCB0cnVlKTtcbiAgICB9O1xuXG4gICAgX3RoaXMuaGFuZGxlTW92ZSA9IGZ1bmN0aW9uIChmcm9tLCB0bykge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIF90aGlzLm1vdmUoZnJvbSwgdG8pO1xuICAgICAgfTtcbiAgICB9O1xuXG4gICAgX3RoaXMuaW5zZXJ0ID0gZnVuY3Rpb24gKGluZGV4LCB2YWx1ZSkge1xuICAgICAgcmV0dXJuIF90aGlzLnVwZGF0ZUFycmF5RmllbGQoZnVuY3Rpb24gKGFycmF5KSB7XG4gICAgICAgIHJldHVybiBpbnNlcnQoYXJyYXksIGluZGV4LCB2YWx1ZSk7XG4gICAgICB9LCBmdW5jdGlvbiAoYXJyYXkpIHtcbiAgICAgICAgcmV0dXJuIGluc2VydChhcnJheSwgaW5kZXgsIG51bGwpO1xuICAgICAgfSwgZnVuY3Rpb24gKGFycmF5KSB7XG4gICAgICAgIHJldHVybiBpbnNlcnQoYXJyYXksIGluZGV4LCBudWxsKTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBfdGhpcy5oYW5kbGVJbnNlcnQgPSBmdW5jdGlvbiAoaW5kZXgsIHZhbHVlKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gX3RoaXMuaW5zZXJ0KGluZGV4LCB2YWx1ZSk7XG4gICAgICB9O1xuICAgIH07XG5cbiAgICBfdGhpcy5yZXBsYWNlID0gZnVuY3Rpb24gKGluZGV4LCB2YWx1ZSkge1xuICAgICAgcmV0dXJuIF90aGlzLnVwZGF0ZUFycmF5RmllbGQoZnVuY3Rpb24gKGFycmF5KSB7XG4gICAgICAgIHJldHVybiByZXBsYWNlKGFycmF5LCBpbmRleCwgdmFsdWUpO1xuICAgICAgfSwgZmFsc2UsIGZhbHNlKTtcbiAgICB9O1xuXG4gICAgX3RoaXMuaGFuZGxlUmVwbGFjZSA9IGZ1bmN0aW9uIChpbmRleCwgdmFsdWUpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBfdGhpcy5yZXBsYWNlKGluZGV4LCB2YWx1ZSk7XG4gICAgICB9O1xuICAgIH07XG5cbiAgICBfdGhpcy51bnNoaWZ0ID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gLTE7XG5cbiAgICAgIF90aGlzLnVwZGF0ZUFycmF5RmllbGQoZnVuY3Rpb24gKGFycmF5KSB7XG4gICAgICAgIHZhciBhcnIgPSBhcnJheSA/IFt2YWx1ZV0uY29uY2F0KGFycmF5KSA6IFt2YWx1ZV07XG5cbiAgICAgICAgaWYgKGxlbmd0aCA8IDApIHtcbiAgICAgICAgICBsZW5ndGggPSBhcnIubGVuZ3RoO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFycjtcbiAgICAgIH0sIGZ1bmN0aW9uIChhcnJheSkge1xuICAgICAgICB2YXIgYXJyID0gYXJyYXkgPyBbbnVsbF0uY29uY2F0KGFycmF5KSA6IFtudWxsXTtcblxuICAgICAgICBpZiAobGVuZ3RoIDwgMCkge1xuICAgICAgICAgIGxlbmd0aCA9IGFyci5sZW5ndGg7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYXJyO1xuICAgICAgfSwgZnVuY3Rpb24gKGFycmF5KSB7XG4gICAgICAgIHZhciBhcnIgPSBhcnJheSA/IFtudWxsXS5jb25jYXQoYXJyYXkpIDogW251bGxdO1xuXG4gICAgICAgIGlmIChsZW5ndGggPCAwKSB7XG4gICAgICAgICAgbGVuZ3RoID0gYXJyLmxlbmd0aDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBhcnI7XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIGxlbmd0aDtcbiAgICB9O1xuXG4gICAgX3RoaXMuaGFuZGxlVW5zaGlmdCA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIF90aGlzLnVuc2hpZnQodmFsdWUpO1xuICAgICAgfTtcbiAgICB9O1xuXG4gICAgX3RoaXMuaGFuZGxlUmVtb3ZlID0gZnVuY3Rpb24gKGluZGV4KSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gX3RoaXMucmVtb3ZlKGluZGV4KTtcbiAgICAgIH07XG4gICAgfTtcblxuICAgIF90aGlzLmhhbmRsZVBvcCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBfdGhpcy5wb3AoKTtcbiAgICAgIH07XG4gICAgfTsgLy8gV2UgbmVlZCBUeXBlU2NyaXB0IGdlbmVyaWNzIG9uIHRoZXNlLCBzbyB3ZSdsbCBiaW5kIHRoZW0gaW4gdGhlIGNvbnN0cnVjdG9yXG4gICAgLy8gQHRvZG8gRml4IFRTIDMuMi4xXG5cblxuICAgIF90aGlzLnJlbW92ZSA9IF90aGlzLnJlbW92ZS5iaW5kKF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpKTtcbiAgICBfdGhpcy5wb3AgPSBfdGhpcy5wb3AuYmluZChfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSk7XG4gICAgcmV0dXJuIF90aGlzO1xuICB9XG5cbiAgdmFyIF9wcm90byA9IEZpZWxkQXJyYXlJbm5lci5wcm90b3R5cGU7XG5cbiAgX3Byb3RvLmNvbXBvbmVudERpZFVwZGF0ZSA9IGZ1bmN0aW9uIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBpZiAodGhpcy5wcm9wcy52YWxpZGF0ZU9uQ2hhbmdlICYmIHRoaXMucHJvcHMuZm9ybWlrLnZhbGlkYXRlT25DaGFuZ2UgJiYgIWlzRXF1YWwoZ2V0SW4ocHJldlByb3BzLmZvcm1pay52YWx1ZXMsIHByZXZQcm9wcy5uYW1lKSwgZ2V0SW4odGhpcy5wcm9wcy5mb3JtaWsudmFsdWVzLCB0aGlzLnByb3BzLm5hbWUpKSkge1xuICAgICAgdGhpcy5wcm9wcy5mb3JtaWsudmFsaWRhdGVGb3JtKHRoaXMucHJvcHMuZm9ybWlrLnZhbHVlcyk7XG4gICAgfVxuICB9O1xuXG4gIF9wcm90by5yZW1vdmUgPSBmdW5jdGlvbiByZW1vdmUoaW5kZXgpIHtcbiAgICAvLyBXZSBuZWVkIHRvIG1ha2Ugc3VyZSB3ZSBhbHNvIHJlbW92ZSByZWxldmFudCBwaWVjZXMgb2YgYHRvdWNoZWRgIGFuZCBgZXJyb3JzYFxuICAgIHZhciByZXN1bHQ7XG4gICAgdGhpcy51cGRhdGVBcnJheUZpZWxkKCAvLyBzbyB0aGlzIGdldHMgY2FsbCAzIHRpbWVzXG4gICAgZnVuY3Rpb24gKGFycmF5KSB7XG4gICAgICB2YXIgY29weSA9IGFycmF5ID8gY29weUFycmF5TGlrZShhcnJheSkgOiBbXTtcblxuICAgICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgICAgcmVzdWx0ID0gY29weVtpbmRleF07XG4gICAgICB9XG5cbiAgICAgIGlmIChpc0Z1bmN0aW9uKGNvcHkuc3BsaWNlKSkge1xuICAgICAgICBjb3B5LnNwbGljZShpbmRleCwgMSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjb3B5O1xuICAgIH0sIHRydWUsIHRydWUpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH07XG5cbiAgX3Byb3RvLnBvcCA9IGZ1bmN0aW9uIHBvcCgpIHtcbiAgICAvLyBSZW1vdmUgcmVsZXZhbnQgcGllY2VzIG9mIGB0b3VjaGVkYCBhbmQgYGVycm9yc2AgdG9vIVxuICAgIHZhciByZXN1bHQ7XG4gICAgdGhpcy51cGRhdGVBcnJheUZpZWxkKCAvLyBzbyB0aGlzIGdldHMgY2FsbCAzIHRpbWVzXG4gICAgZnVuY3Rpb24gKGFycmF5KSB7XG4gICAgICB2YXIgdG1wID0gYXJyYXk7XG5cbiAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgIHJlc3VsdCA9IHRtcCAmJiB0bXAucG9wICYmIHRtcC5wb3AoKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRtcDtcbiAgICB9LCB0cnVlLCB0cnVlKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9O1xuXG4gIF9wcm90by5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgdmFyIGFycmF5SGVscGVycyA9IHtcbiAgICAgIHB1c2g6IHRoaXMucHVzaCxcbiAgICAgIHBvcDogdGhpcy5wb3AsXG4gICAgICBzd2FwOiB0aGlzLnN3YXAsXG4gICAgICBtb3ZlOiB0aGlzLm1vdmUsXG4gICAgICBpbnNlcnQ6IHRoaXMuaW5zZXJ0LFxuICAgICAgcmVwbGFjZTogdGhpcy5yZXBsYWNlLFxuICAgICAgdW5zaGlmdDogdGhpcy51bnNoaWZ0LFxuICAgICAgcmVtb3ZlOiB0aGlzLnJlbW92ZSxcbiAgICAgIGhhbmRsZVB1c2g6IHRoaXMuaGFuZGxlUHVzaCxcbiAgICAgIGhhbmRsZVBvcDogdGhpcy5oYW5kbGVQb3AsXG4gICAgICBoYW5kbGVTd2FwOiB0aGlzLmhhbmRsZVN3YXAsXG4gICAgICBoYW5kbGVNb3ZlOiB0aGlzLmhhbmRsZU1vdmUsXG4gICAgICBoYW5kbGVJbnNlcnQ6IHRoaXMuaGFuZGxlSW5zZXJ0LFxuICAgICAgaGFuZGxlUmVwbGFjZTogdGhpcy5oYW5kbGVSZXBsYWNlLFxuICAgICAgaGFuZGxlVW5zaGlmdDogdGhpcy5oYW5kbGVVbnNoaWZ0LFxuICAgICAgaGFuZGxlUmVtb3ZlOiB0aGlzLmhhbmRsZVJlbW92ZVxuICAgIH07XG5cbiAgICB2YXIgX3RoaXMkcHJvcHMyID0gdGhpcy5wcm9wcyxcbiAgICAgICAgY29tcG9uZW50ID0gX3RoaXMkcHJvcHMyLmNvbXBvbmVudCxcbiAgICAgICAgcmVuZGVyID0gX3RoaXMkcHJvcHMyLnJlbmRlcixcbiAgICAgICAgY2hpbGRyZW4gPSBfdGhpcyRwcm9wczIuY2hpbGRyZW4sXG4gICAgICAgIG5hbWUgPSBfdGhpcyRwcm9wczIubmFtZSxcbiAgICAgICAgX3RoaXMkcHJvcHMyJGZvcm1payA9IF90aGlzJHByb3BzMi5mb3JtaWssXG4gICAgICAgIHJlc3RPZkZvcm1payA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKF90aGlzJHByb3BzMiRmb3JtaWssIFtcInZhbGlkYXRlXCIsIFwidmFsaWRhdGlvblNjaGVtYVwiXSk7XG5cbiAgICB2YXIgcHJvcHMgPSBfZXh0ZW5kcyh7fSwgYXJyYXlIZWxwZXJzLCB7XG4gICAgICBmb3JtOiByZXN0T2ZGb3JtaWssXG4gICAgICBuYW1lOiBuYW1lXG4gICAgfSk7XG5cbiAgICByZXR1cm4gY29tcG9uZW50ID8gY3JlYXRlRWxlbWVudChjb21wb25lbnQsIHByb3BzKSA6IHJlbmRlciA/IHJlbmRlcihwcm9wcykgOiBjaGlsZHJlbiAvLyBjaGlsZHJlbiBjb21lIGxhc3QsIGFsd2F5cyBjYWxsZWRcbiAgICA/IHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJyA/IGNoaWxkcmVuKHByb3BzKSA6ICFpc0VtcHR5Q2hpbGRyZW4oY2hpbGRyZW4pID8gQ2hpbGRyZW4ub25seShjaGlsZHJlbikgOiBudWxsIDogbnVsbDtcbiAgfTtcblxuICByZXR1cm4gRmllbGRBcnJheUlubmVyO1xufShDb21wb25lbnQpO1xuXG5GaWVsZEFycmF5SW5uZXIuZGVmYXVsdFByb3BzID0ge1xuICB2YWxpZGF0ZU9uQ2hhbmdlOiB0cnVlXG59O1xudmFyIEZpZWxkQXJyYXkgPSAvKiNfX1BVUkVfXyovY29ubmVjdChGaWVsZEFycmF5SW5uZXIpO1xuXG52YXIgRXJyb3JNZXNzYWdlSW1wbCA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHNMb29zZShFcnJvck1lc3NhZ2VJbXBsLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICBmdW5jdGlvbiBFcnJvck1lc3NhZ2VJbXBsKCkge1xuICAgIHJldHVybiBfUmVhY3QkQ29tcG9uZW50LmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpcztcbiAgfVxuXG4gIHZhciBfcHJvdG8gPSBFcnJvck1lc3NhZ2VJbXBsLnByb3RvdHlwZTtcblxuICBfcHJvdG8uc2hvdWxkQ29tcG9uZW50VXBkYXRlID0gZnVuY3Rpb24gc2hvdWxkQ29tcG9uZW50VXBkYXRlKHByb3BzKSB7XG4gICAgaWYgKGdldEluKHRoaXMucHJvcHMuZm9ybWlrLmVycm9ycywgdGhpcy5wcm9wcy5uYW1lKSAhPT0gZ2V0SW4ocHJvcHMuZm9ybWlrLmVycm9ycywgdGhpcy5wcm9wcy5uYW1lKSB8fCBnZXRJbih0aGlzLnByb3BzLmZvcm1pay50b3VjaGVkLCB0aGlzLnByb3BzLm5hbWUpICE9PSBnZXRJbihwcm9wcy5mb3JtaWsudG91Y2hlZCwgdGhpcy5wcm9wcy5uYW1lKSB8fCBPYmplY3Qua2V5cyh0aGlzLnByb3BzKS5sZW5ndGggIT09IE9iamVjdC5rZXlzKHByb3BzKS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9O1xuXG4gIF9wcm90by5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgdmFyIF90aGlzJHByb3BzID0gdGhpcy5wcm9wcyxcbiAgICAgICAgY29tcG9uZW50ID0gX3RoaXMkcHJvcHMuY29tcG9uZW50LFxuICAgICAgICBmb3JtaWsgPSBfdGhpcyRwcm9wcy5mb3JtaWssXG4gICAgICAgIHJlbmRlciA9IF90aGlzJHByb3BzLnJlbmRlcixcbiAgICAgICAgY2hpbGRyZW4gPSBfdGhpcyRwcm9wcy5jaGlsZHJlbixcbiAgICAgICAgbmFtZSA9IF90aGlzJHByb3BzLm5hbWUsXG4gICAgICAgIHJlc3QgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShfdGhpcyRwcm9wcywgW1wiY29tcG9uZW50XCIsIFwiZm9ybWlrXCIsIFwicmVuZGVyXCIsIFwiY2hpbGRyZW5cIiwgXCJuYW1lXCJdKTtcblxuICAgIHZhciB0b3VjaCA9IGdldEluKGZvcm1pay50b3VjaGVkLCBuYW1lKTtcbiAgICB2YXIgZXJyb3IgPSBnZXRJbihmb3JtaWsuZXJyb3JzLCBuYW1lKTtcbiAgICByZXR1cm4gISF0b3VjaCAmJiAhIWVycm9yID8gcmVuZGVyID8gaXNGdW5jdGlvbihyZW5kZXIpID8gcmVuZGVyKGVycm9yKSA6IG51bGwgOiBjaGlsZHJlbiA/IGlzRnVuY3Rpb24oY2hpbGRyZW4pID8gY2hpbGRyZW4oZXJyb3IpIDogbnVsbCA6IGNvbXBvbmVudCA/IGNyZWF0ZUVsZW1lbnQoY29tcG9uZW50LCByZXN0LCBlcnJvcikgOiBlcnJvciA6IG51bGw7XG4gIH07XG5cbiAgcmV0dXJuIEVycm9yTWVzc2FnZUltcGw7XG59KENvbXBvbmVudCk7XG5cbnZhciBFcnJvck1lc3NhZ2UgPSAvKiNfX1BVUkVfXyovY29ubmVjdChFcnJvck1lc3NhZ2VJbXBsKTtcblxuLyoqXHJcbiAqIEN1c3RvbSBGaWVsZCBjb21wb25lbnQgZm9yIHF1aWNrbHkgaG9va2luZyBpbnRvIEZvcm1pa1xyXG4gKiBjb250ZXh0IGFuZCB3aXJpbmcgdXAgZm9ybXMuXHJcbiAqL1xuXG52YXIgRmFzdEZpZWxkSW5uZXIgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzTG9vc2UoRmFzdEZpZWxkSW5uZXIsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIGZ1bmN0aW9uIEZhc3RGaWVsZElubmVyKHByb3BzKSB7XG4gICAgdmFyIF90aGlzO1xuXG4gICAgX3RoaXMgPSBfUmVhY3QkQ29tcG9uZW50LmNhbGwodGhpcywgcHJvcHMpIHx8IHRoaXM7XG4gICAgdmFyIHJlbmRlciA9IHByb3BzLnJlbmRlcixcbiAgICAgICAgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbixcbiAgICAgICAgY29tcG9uZW50ID0gcHJvcHMuY29tcG9uZW50LFxuICAgICAgICBpcyA9IHByb3BzLmFzLFxuICAgICAgICBuYW1lID0gcHJvcHMubmFtZTtcbiAgICAhIXJlbmRlciA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IGludmFyaWFudChmYWxzZSwgXCI8RmFzdEZpZWxkIHJlbmRlcj4gaGFzIGJlZW4gZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBhIGNoaWxkIGNhbGxiYWNrIGZ1bmN0aW9uIGluc3RlYWQ6IDxGYXN0RmllbGQgbmFtZT17XCIgKyBuYW1lICsgXCJ9Pntwcm9wcyA9PiAuLi59PC9GYXN0RmllbGQ+IGluc3RlYWQuXCIpIDogaW52YXJpYW50KGZhbHNlKSA6IHZvaWQgMDtcbiAgICAhIShjb21wb25lbnQgJiYgcmVuZGVyKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IGludmFyaWFudChmYWxzZSwgJ1lvdSBzaG91bGQgbm90IHVzZSA8RmFzdEZpZWxkIGNvbXBvbmVudD4gYW5kIDxGYXN0RmllbGQgcmVuZGVyPiBpbiB0aGUgc2FtZSA8RmFzdEZpZWxkPiBjb21wb25lbnQ7IDxGYXN0RmllbGQgY29tcG9uZW50PiB3aWxsIGJlIGlnbm9yZWQnKSA6IGludmFyaWFudChmYWxzZSkgOiB2b2lkIDA7XG4gICAgISEoaXMgJiYgY2hpbGRyZW4gJiYgaXNGdW5jdGlvbihjaGlsZHJlbikpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gaW52YXJpYW50KGZhbHNlLCAnWW91IHNob3VsZCBub3QgdXNlIDxGYXN0RmllbGQgYXM+IGFuZCA8RmFzdEZpZWxkIGNoaWxkcmVuPiBhcyBhIGZ1bmN0aW9uIGluIHRoZSBzYW1lIDxGYXN0RmllbGQ+IGNvbXBvbmVudDsgPEZhc3RGaWVsZCBhcz4gd2lsbCBiZSBpZ25vcmVkLicpIDogaW52YXJpYW50KGZhbHNlKSA6IHZvaWQgMDtcbiAgICAhIShjb21wb25lbnQgJiYgY2hpbGRyZW4gJiYgaXNGdW5jdGlvbihjaGlsZHJlbikpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gaW52YXJpYW50KGZhbHNlLCAnWW91IHNob3VsZCBub3QgdXNlIDxGYXN0RmllbGQgY29tcG9uZW50PiBhbmQgPEZhc3RGaWVsZCBjaGlsZHJlbj4gYXMgYSBmdW5jdGlvbiBpbiB0aGUgc2FtZSA8RmFzdEZpZWxkPiBjb21wb25lbnQ7IDxGYXN0RmllbGQgY29tcG9uZW50PiB3aWxsIGJlIGlnbm9yZWQuJykgOiBpbnZhcmlhbnQoZmFsc2UpIDogdm9pZCAwO1xuICAgICEhKHJlbmRlciAmJiBjaGlsZHJlbiAmJiAhaXNFbXB0eUNoaWxkcmVuKGNoaWxkcmVuKSkgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyBpbnZhcmlhbnQoZmFsc2UsICdZb3Ugc2hvdWxkIG5vdCB1c2UgPEZhc3RGaWVsZCByZW5kZXI+IGFuZCA8RmFzdEZpZWxkIGNoaWxkcmVuPiBpbiB0aGUgc2FtZSA8RmFzdEZpZWxkPiBjb21wb25lbnQ7IDxGYXN0RmllbGQgY2hpbGRyZW4+IHdpbGwgYmUgaWdub3JlZCcpIDogaW52YXJpYW50KGZhbHNlKSA6IHZvaWQgMDtcbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICB2YXIgX3Byb3RvID0gRmFzdEZpZWxkSW5uZXIucHJvdG90eXBlO1xuXG4gIF9wcm90by5zaG91bGRDb21wb25lbnRVcGRhdGUgPSBmdW5jdGlvbiBzaG91bGRDb21wb25lbnRVcGRhdGUocHJvcHMpIHtcbiAgICBpZiAodGhpcy5wcm9wcy5zaG91bGRVcGRhdGUpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLnNob3VsZFVwZGF0ZShwcm9wcywgdGhpcy5wcm9wcyk7XG4gICAgfSBlbHNlIGlmIChwcm9wcy5uYW1lICE9PSB0aGlzLnByb3BzLm5hbWUgfHwgZ2V0SW4ocHJvcHMuZm9ybWlrLnZhbHVlcywgdGhpcy5wcm9wcy5uYW1lKSAhPT0gZ2V0SW4odGhpcy5wcm9wcy5mb3JtaWsudmFsdWVzLCB0aGlzLnByb3BzLm5hbWUpIHx8IGdldEluKHByb3BzLmZvcm1pay5lcnJvcnMsIHRoaXMucHJvcHMubmFtZSkgIT09IGdldEluKHRoaXMucHJvcHMuZm9ybWlrLmVycm9ycywgdGhpcy5wcm9wcy5uYW1lKSB8fCBnZXRJbihwcm9wcy5mb3JtaWsudG91Y2hlZCwgdGhpcy5wcm9wcy5uYW1lKSAhPT0gZ2V0SW4odGhpcy5wcm9wcy5mb3JtaWsudG91Y2hlZCwgdGhpcy5wcm9wcy5uYW1lKSB8fCBPYmplY3Qua2V5cyh0aGlzLnByb3BzKS5sZW5ndGggIT09IE9iamVjdC5rZXlzKHByb3BzKS5sZW5ndGggfHwgcHJvcHMuZm9ybWlrLmlzU3VibWl0dGluZyAhPT0gdGhpcy5wcm9wcy5mb3JtaWsuaXNTdWJtaXR0aW5nKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfTtcblxuICBfcHJvdG8uY29tcG9uZW50RGlkTW91bnQgPSBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAvLyBSZWdpc3RlciB0aGUgRmllbGQgd2l0aCB0aGUgcGFyZW50IEZvcm1pay4gUGFyZW50IHdpbGwgY3ljbGUgdGhyb3VnaFxuICAgIC8vIHJlZ2lzdGVyZWQgRmllbGQncyB2YWxpZGF0ZSBmbnMgcmlnaHQgcHJpb3IgdG8gc3VibWl0XG4gICAgdGhpcy5wcm9wcy5mb3JtaWsucmVnaXN0ZXJGaWVsZCh0aGlzLnByb3BzLm5hbWUsIHtcbiAgICAgIHZhbGlkYXRlOiB0aGlzLnByb3BzLnZhbGlkYXRlXG4gICAgfSk7XG4gIH07XG5cbiAgX3Byb3RvLmNvbXBvbmVudERpZFVwZGF0ZSA9IGZ1bmN0aW9uIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBpZiAodGhpcy5wcm9wcy5uYW1lICE9PSBwcmV2UHJvcHMubmFtZSkge1xuICAgICAgdGhpcy5wcm9wcy5mb3JtaWsudW5yZWdpc3RlckZpZWxkKHByZXZQcm9wcy5uYW1lKTtcbiAgICAgIHRoaXMucHJvcHMuZm9ybWlrLnJlZ2lzdGVyRmllbGQodGhpcy5wcm9wcy5uYW1lLCB7XG4gICAgICAgIHZhbGlkYXRlOiB0aGlzLnByb3BzLnZhbGlkYXRlXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wcm9wcy52YWxpZGF0ZSAhPT0gcHJldlByb3BzLnZhbGlkYXRlKSB7XG4gICAgICB0aGlzLnByb3BzLmZvcm1pay5yZWdpc3RlckZpZWxkKHRoaXMucHJvcHMubmFtZSwge1xuICAgICAgICB2YWxpZGF0ZTogdGhpcy5wcm9wcy52YWxpZGF0ZVxuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIF9wcm90by5jb21wb25lbnRXaWxsVW5tb3VudCA9IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgIHRoaXMucHJvcHMuZm9ybWlrLnVucmVnaXN0ZXJGaWVsZCh0aGlzLnByb3BzLm5hbWUpO1xuICB9O1xuXG4gIF9wcm90by5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgdmFyIF90aGlzJHByb3BzID0gdGhpcy5wcm9wcyxcbiAgICAgICAgbmFtZSA9IF90aGlzJHByb3BzLm5hbWUsXG4gICAgICAgIHJlbmRlciA9IF90aGlzJHByb3BzLnJlbmRlcixcbiAgICAgICAgaXMgPSBfdGhpcyRwcm9wcy5hcyxcbiAgICAgICAgY2hpbGRyZW4gPSBfdGhpcyRwcm9wcy5jaGlsZHJlbixcbiAgICAgICAgY29tcG9uZW50ID0gX3RoaXMkcHJvcHMuY29tcG9uZW50LFxuICAgICAgICBmb3JtaWsgPSBfdGhpcyRwcm9wcy5mb3JtaWssXG4gICAgICAgIHByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UoX3RoaXMkcHJvcHMsIFtcInZhbGlkYXRlXCIsIFwibmFtZVwiLCBcInJlbmRlclwiLCBcImFzXCIsIFwiY2hpbGRyZW5cIiwgXCJjb21wb25lbnRcIiwgXCJzaG91bGRVcGRhdGVcIiwgXCJmb3JtaWtcIl0pO1xuXG4gICAgdmFyIHJlc3RPZkZvcm1payA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKGZvcm1paywgW1widmFsaWRhdGVcIiwgXCJ2YWxpZGF0aW9uU2NoZW1hXCJdKTtcblxuICAgIHZhciBmaWVsZCA9IGZvcm1pay5nZXRGaWVsZFByb3BzKF9leHRlbmRzKHtcbiAgICAgIG5hbWU6IG5hbWVcbiAgICB9LCBwcm9wcykpO1xuICAgIHZhciBtZXRhID0ge1xuICAgICAgdmFsdWU6IGdldEluKGZvcm1pay52YWx1ZXMsIG5hbWUpLFxuICAgICAgZXJyb3I6IGdldEluKGZvcm1pay5lcnJvcnMsIG5hbWUpLFxuICAgICAgdG91Y2hlZDogISFnZXRJbihmb3JtaWsudG91Y2hlZCwgbmFtZSksXG4gICAgICBpbml0aWFsVmFsdWU6IGdldEluKGZvcm1pay5pbml0aWFsVmFsdWVzLCBuYW1lKSxcbiAgICAgIGluaXRpYWxUb3VjaGVkOiAhIWdldEluKGZvcm1pay5pbml0aWFsVG91Y2hlZCwgbmFtZSksXG4gICAgICBpbml0aWFsRXJyb3I6IGdldEluKGZvcm1pay5pbml0aWFsRXJyb3JzLCBuYW1lKVxuICAgIH07XG4gICAgdmFyIGJhZyA9IHtcbiAgICAgIGZpZWxkOiBmaWVsZCxcbiAgICAgIG1ldGE6IG1ldGEsXG4gICAgICBmb3JtOiByZXN0T2ZGb3JtaWtcbiAgICB9O1xuXG4gICAgaWYgKHJlbmRlcikge1xuICAgICAgcmV0dXJuIHJlbmRlcihiYWcpO1xuICAgIH1cblxuICAgIGlmIChpc0Z1bmN0aW9uKGNoaWxkcmVuKSkge1xuICAgICAgcmV0dXJuIGNoaWxkcmVuKGJhZyk7XG4gICAgfVxuXG4gICAgaWYgKGNvbXBvbmVudCkge1xuICAgICAgLy8gVGhpcyBiZWhhdmlvciBpcyBiYWNrd2FyZHMgY29tcGF0IHdpdGggZWFybGllciBGb3JtaWsgMC45IHRvIDEueFxuICAgICAgaWYgKHR5cGVvZiBjb21wb25lbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHZhciBpbm5lclJlZiA9IHByb3BzLmlubmVyUmVmLFxuICAgICAgICAgICAgcmVzdCA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKHByb3BzLCBbXCJpbm5lclJlZlwiXSk7XG5cbiAgICAgICAgcmV0dXJuIGNyZWF0ZUVsZW1lbnQoY29tcG9uZW50LCBfZXh0ZW5kcyh7XG4gICAgICAgICAgcmVmOiBpbm5lclJlZlxuICAgICAgICB9LCBmaWVsZCwgcmVzdCksIGNoaWxkcmVuKTtcbiAgICAgIH0gLy8gV2UgZG9uJ3QgcGFzcyBgbWV0YWAgZm9yIGJhY2t3YXJkcyBjb21wYXRcblxuXG4gICAgICByZXR1cm4gY3JlYXRlRWxlbWVudChjb21wb25lbnQsIF9leHRlbmRzKHtcbiAgICAgICAgZmllbGQ6IGZpZWxkLFxuICAgICAgICBmb3JtOiBmb3JtaWtcbiAgICAgIH0sIHByb3BzKSwgY2hpbGRyZW4pO1xuICAgIH0gLy8gZGVmYXVsdCB0byBpbnB1dCBoZXJlIHNvIHdlIGNhbiBjaGVjayBmb3IgYm90aCBgYXNgIGFuZCBgY2hpbGRyZW5gIGFib3ZlXG5cblxuICAgIHZhciBhc0VsZW1lbnQgPSBpcyB8fCAnaW5wdXQnO1xuXG4gICAgaWYgKHR5cGVvZiBhc0VsZW1lbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICB2YXIgX2lubmVyUmVmID0gcHJvcHMuaW5uZXJSZWYsXG4gICAgICAgICAgX3Jlc3QgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShwcm9wcywgW1wiaW5uZXJSZWZcIl0pO1xuXG4gICAgICByZXR1cm4gY3JlYXRlRWxlbWVudChhc0VsZW1lbnQsIF9leHRlbmRzKHtcbiAgICAgICAgcmVmOiBfaW5uZXJSZWZcbiAgICAgIH0sIGZpZWxkLCBfcmVzdCksIGNoaWxkcmVuKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY3JlYXRlRWxlbWVudChhc0VsZW1lbnQsIF9leHRlbmRzKHt9LCBmaWVsZCwgcHJvcHMpLCBjaGlsZHJlbik7XG4gIH07XG5cbiAgcmV0dXJuIEZhc3RGaWVsZElubmVyO1xufShDb21wb25lbnQpO1xuXG52YXIgRmFzdEZpZWxkID0gLyojX19QVVJFX18qL2Nvbm5lY3QoRmFzdEZpZWxkSW5uZXIpO1xuXG5leHBvcnQgeyBFcnJvck1lc3NhZ2UsIEZhc3RGaWVsZCwgRmllbGQsIEZpZWxkQXJyYXksIEZvcm0sIEZvcm1paywgRm9ybWlrQ29uc3VtZXIsIEZvcm1pa0NvbnRleHQsIEZvcm1pa1Byb3ZpZGVyLCBjb25uZWN0LCBnZXRBY3RpdmVFbGVtZW50LCBnZXRJbiwgaW5zZXJ0LCBpc0VtcHR5QXJyYXksIGlzRW1wdHlDaGlsZHJlbiwgaXNGdW5jdGlvbiwgaXNJbnB1dEV2ZW50LCBpc0ludGVnZXIsIGlzTmFOJDEgYXMgaXNOYU4sIGlzT2JqZWN0LCBpc1Byb21pc2UsIGlzU3RyaW5nLCBtb3ZlLCBwcmVwYXJlRGF0YUZvclZhbGlkYXRpb24sIHJlcGxhY2UsIHNldEluLCBzZXROZXN0ZWRPYmplY3RWYWx1ZXMsIHN3YXAsIHVzZUZpZWxkLCB1c2VGb3JtaWssIHVzZUZvcm1pa0NvbnRleHQsIHZhbGlkYXRlWXVwU2NoZW1hLCB3aXRoRm9ybWlrLCB5dXBUb0Zvcm1FcnJvcnMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWZvcm1pay5lc20uanMubWFwXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/formik/dist/formik.esm.js\n"); + +/***/ }), + +/***/ "./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js ***! + \**********************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar reactIs = __webpack_require__(/*! react-is */ \"./node_modules/hoist-non-react-statics/node_modules/react-is/index.js\");\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvaG9pc3Qtbm9uLXJlYWN0LXN0YXRpY3MvZGlzdC9ob2lzdC1ub24tcmVhY3Qtc3RhdGljcy5janMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsY0FBYyxtQkFBTyxDQUFDLHVGQUFVOztBQUVoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBLG9CQUFvQixpQkFBaUI7QUFDckM7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2hvaXN0LW5vbi1yZWFjdC1zdGF0aWNzL2Rpc3QvaG9pc3Qtbm9uLXJlYWN0LXN0YXRpY3MuY2pzLmpzPzkxZGIiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG52YXIgcmVhY3RJcyA9IHJlcXVpcmUoJ3JlYWN0LWlzJyk7XG5cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUsIFlhaG9vISBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBOZXcgQlNEIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbnZhciBSRUFDVF9TVEFUSUNTID0ge1xuICBjaGlsZENvbnRleHRUeXBlczogdHJ1ZSxcbiAgY29udGV4dFR5cGU6IHRydWUsXG4gIGNvbnRleHRUeXBlczogdHJ1ZSxcbiAgZGVmYXVsdFByb3BzOiB0cnVlLFxuICBkaXNwbGF5TmFtZTogdHJ1ZSxcbiAgZ2V0RGVmYXVsdFByb3BzOiB0cnVlLFxuICBnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3I6IHRydWUsXG4gIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wczogdHJ1ZSxcbiAgbWl4aW5zOiB0cnVlLFxuICBwcm9wVHlwZXM6IHRydWUsXG4gIHR5cGU6IHRydWVcbn07XG52YXIgS05PV05fU1RBVElDUyA9IHtcbiAgbmFtZTogdHJ1ZSxcbiAgbGVuZ3RoOiB0cnVlLFxuICBwcm90b3R5cGU6IHRydWUsXG4gIGNhbGxlcjogdHJ1ZSxcbiAgY2FsbGVlOiB0cnVlLFxuICBhcmd1bWVudHM6IHRydWUsXG4gIGFyaXR5OiB0cnVlXG59O1xudmFyIEZPUldBUkRfUkVGX1NUQVRJQ1MgPSB7XG4gICckJHR5cGVvZic6IHRydWUsXG4gIHJlbmRlcjogdHJ1ZSxcbiAgZGVmYXVsdFByb3BzOiB0cnVlLFxuICBkaXNwbGF5TmFtZTogdHJ1ZSxcbiAgcHJvcFR5cGVzOiB0cnVlXG59O1xudmFyIE1FTU9fU1RBVElDUyA9IHtcbiAgJyQkdHlwZW9mJzogdHJ1ZSxcbiAgY29tcGFyZTogdHJ1ZSxcbiAgZGVmYXVsdFByb3BzOiB0cnVlLFxuICBkaXNwbGF5TmFtZTogdHJ1ZSxcbiAgcHJvcFR5cGVzOiB0cnVlLFxuICB0eXBlOiB0cnVlXG59O1xudmFyIFRZUEVfU1RBVElDUyA9IHt9O1xuVFlQRV9TVEFUSUNTW3JlYWN0SXMuRm9yd2FyZFJlZl0gPSBGT1JXQVJEX1JFRl9TVEFUSUNTO1xuVFlQRV9TVEFUSUNTW3JlYWN0SXMuTWVtb10gPSBNRU1PX1NUQVRJQ1M7XG5cbmZ1bmN0aW9uIGdldFN0YXRpY3MoY29tcG9uZW50KSB7XG4gIC8vIFJlYWN0IHYxNi4xMSBhbmQgYmVsb3dcbiAgaWYgKHJlYWN0SXMuaXNNZW1vKGNvbXBvbmVudCkpIHtcbiAgICByZXR1cm4gTUVNT19TVEFUSUNTO1xuICB9IC8vIFJlYWN0IHYxNi4xMiBhbmQgYWJvdmVcblxuXG4gIHJldHVybiBUWVBFX1NUQVRJQ1NbY29tcG9uZW50WyckJHR5cGVvZiddXSB8fCBSRUFDVF9TVEFUSUNTO1xufVxuXG52YXIgZGVmaW5lUHJvcGVydHkgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG52YXIgZ2V0T3duUHJvcGVydHlOYW1lcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzO1xudmFyIGdldE93blByb3BlcnR5U3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7XG52YXIgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcbnZhciBnZXRQcm90b3R5cGVPZiA9IE9iamVjdC5nZXRQcm90b3R5cGVPZjtcbnZhciBvYmplY3RQcm90b3R5cGUgPSBPYmplY3QucHJvdG90eXBlO1xuZnVuY3Rpb24gaG9pc3ROb25SZWFjdFN0YXRpY3ModGFyZ2V0Q29tcG9uZW50LCBzb3VyY2VDb21wb25lbnQsIGJsYWNrbGlzdCkge1xuICBpZiAodHlwZW9mIHNvdXJjZUNvbXBvbmVudCAhPT0gJ3N0cmluZycpIHtcbiAgICAvLyBkb24ndCBob2lzdCBvdmVyIHN0cmluZyAoaHRtbCkgY29tcG9uZW50c1xuICAgIGlmIChvYmplY3RQcm90b3R5cGUpIHtcbiAgICAgIHZhciBpbmhlcml0ZWRDb21wb25lbnQgPSBnZXRQcm90b3R5cGVPZihzb3VyY2VDb21wb25lbnQpO1xuXG4gICAgICBpZiAoaW5oZXJpdGVkQ29tcG9uZW50ICYmIGluaGVyaXRlZENvbXBvbmVudCAhPT0gb2JqZWN0UHJvdG90eXBlKSB7XG4gICAgICAgIGhvaXN0Tm9uUmVhY3RTdGF0aWNzKHRhcmdldENvbXBvbmVudCwgaW5oZXJpdGVkQ29tcG9uZW50LCBibGFja2xpc3QpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBrZXlzID0gZ2V0T3duUHJvcGVydHlOYW1lcyhzb3VyY2VDb21wb25lbnQpO1xuXG4gICAgaWYgKGdldE93blByb3BlcnR5U3ltYm9scykge1xuICAgICAga2V5cyA9IGtleXMuY29uY2F0KGdldE93blByb3BlcnR5U3ltYm9scyhzb3VyY2VDb21wb25lbnQpKTtcbiAgICB9XG5cbiAgICB2YXIgdGFyZ2V0U3RhdGljcyA9IGdldFN0YXRpY3ModGFyZ2V0Q29tcG9uZW50KTtcbiAgICB2YXIgc291cmNlU3RhdGljcyA9IGdldFN0YXRpY3Moc291cmNlQ29tcG9uZW50KTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7ICsraSkge1xuICAgICAgdmFyIGtleSA9IGtleXNbaV07XG5cbiAgICAgIGlmICghS05PV05fU1RBVElDU1trZXldICYmICEoYmxhY2tsaXN0ICYmIGJsYWNrbGlzdFtrZXldKSAmJiAhKHNvdXJjZVN0YXRpY3MgJiYgc291cmNlU3RhdGljc1trZXldKSAmJiAhKHRhcmdldFN0YXRpY3MgJiYgdGFyZ2V0U3RhdGljc1trZXldKSkge1xuICAgICAgICB2YXIgZGVzY3JpcHRvciA9IGdldE93blByb3BlcnR5RGVzY3JpcHRvcihzb3VyY2VDb21wb25lbnQsIGtleSk7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAvLyBBdm9pZCBmYWlsdXJlcyBmcm9tIHJlYWQtb25seSBwcm9wZXJ0aWVzXG4gICAgICAgICAgZGVmaW5lUHJvcGVydHkodGFyZ2V0Q29tcG9uZW50LCBrZXksIGRlc2NyaXB0b3IpO1xuICAgICAgICB9IGNhdGNoIChlKSB7fVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0YXJnZXRDb21wb25lbnQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaG9pc3ROb25SZWFjdFN0YXRpY3M7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js\n"); + +/***/ }), + +/***/ "./node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.development.js": +/*!************************************************************************************************!*\ + !*** ./node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.development.js ***! + \************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its 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\n\n\n\n\nif (true) {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvaG9pc3Qtbm9uLXJlYWN0LXN0YXRpY3Mvbm9kZV9tb2R1bGVzL3JlYWN0LWlzL2Nqcy9yZWFjdC1pcy5kZXZlbG9wbWVudC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVhOzs7O0FBSWIsSUFBSSxJQUFxQztBQUN6QztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJFQUEyRTtBQUMzRTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpREFBaUQ7O0FBRWpEO0FBQ0E7QUFDQTtBQUNBLGtEQUFrRDs7QUFFbEQ7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsaUJBQWlCO0FBQ2pCLHNCQUFzQjtBQUN0Qix1QkFBdUI7QUFDdkIsdUJBQXVCO0FBQ3ZCLGVBQWU7QUFDZixrQkFBa0I7QUFDbEIsZ0JBQWdCO0FBQ2hCLFlBQVk7QUFDWixZQUFZO0FBQ1osY0FBYztBQUNkLGdCQUFnQjtBQUNoQixrQkFBa0I7QUFDbEIsZ0JBQWdCO0FBQ2hCLG1CQUFtQjtBQUNuQix3QkFBd0I7QUFDeEIseUJBQXlCO0FBQ3pCLHlCQUF5QjtBQUN6QixpQkFBaUI7QUFDakIsb0JBQW9CO0FBQ3BCLGtCQUFrQjtBQUNsQixjQUFjO0FBQ2QsY0FBYztBQUNkLGdCQUFnQjtBQUNoQixrQkFBa0I7QUFDbEIsb0JBQW9CO0FBQ3BCLGtCQUFrQjtBQUNsQiwwQkFBMEI7QUFDMUIsY0FBYztBQUNkLEdBQUc7QUFDSCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvaG9pc3Qtbm9uLXJlYWN0LXN0YXRpY3Mvbm9kZV9tb2R1bGVzL3JlYWN0LWlzL2Nqcy9yZWFjdC1pcy5kZXZlbG9wbWVudC5qcz9jODdmIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBAbGljZW5zZSBSZWFjdCB2MTYuMTMuMVxuICogcmVhY3QtaXMuZGV2ZWxvcG1lbnQuanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIEZhY2Vib29rLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cblxuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gIChmdW5jdGlvbigpIHtcbid1c2Ugc3RyaWN0JztcblxuLy8gVGhlIFN5bWJvbCB1c2VkIHRvIHRhZyB0aGUgUmVhY3RFbGVtZW50LWxpa2UgdHlwZXMuIElmIHRoZXJlIGlzIG5vIG5hdGl2ZSBTeW1ib2xcbi8vIG5vciBwb2x5ZmlsbCwgdGhlbiBhIHBsYWluIG51bWJlciBpcyB1c2VkIGZvciBwZXJmb3JtYW5jZS5cbnZhciBoYXNTeW1ib2wgPSB0eXBlb2YgU3ltYm9sID09PSAnZnVuY3Rpb24nICYmIFN5bWJvbC5mb3I7XG52YXIgUkVBQ1RfRUxFTUVOVF9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3QuZWxlbWVudCcpIDogMHhlYWM3O1xudmFyIFJFQUNUX1BPUlRBTF9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3QucG9ydGFsJykgOiAweGVhY2E7XG52YXIgUkVBQ1RfRlJBR01FTlRfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmZyYWdtZW50JykgOiAweGVhY2I7XG52YXIgUkVBQ1RfU1RSSUNUX01PREVfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LnN0cmljdF9tb2RlJykgOiAweGVhY2M7XG52YXIgUkVBQ1RfUFJPRklMRVJfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LnByb2ZpbGVyJykgOiAweGVhZDI7XG52YXIgUkVBQ1RfUFJPVklERVJfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LnByb3ZpZGVyJykgOiAweGVhY2Q7XG52YXIgUkVBQ1RfQ09OVEVYVF9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3QuY29udGV4dCcpIDogMHhlYWNlOyAvLyBUT0RPOiBXZSBkb24ndCB1c2UgQXN5bmNNb2RlIG9yIENvbmN1cnJlbnRNb2RlIGFueW1vcmUuIFRoZXkgd2VyZSB0ZW1wb3Jhcnlcbi8vICh1bnN0YWJsZSkgQVBJcyB0aGF0IGhhdmUgYmVlbiByZW1vdmVkLiBDYW4gd2UgcmVtb3ZlIHRoZSBzeW1ib2xzP1xuXG52YXIgUkVBQ1RfQVNZTkNfTU9ERV9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3QuYXN5bmNfbW9kZScpIDogMHhlYWNmO1xudmFyIFJFQUNUX0NPTkNVUlJFTlRfTU9ERV9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3QuY29uY3VycmVudF9tb2RlJykgOiAweGVhY2Y7XG52YXIgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmZvcndhcmRfcmVmJykgOiAweGVhZDA7XG52YXIgUkVBQ1RfU1VTUEVOU0VfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LnN1c3BlbnNlJykgOiAweGVhZDE7XG52YXIgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3Quc3VzcGVuc2VfbGlzdCcpIDogMHhlYWQ4O1xudmFyIFJFQUNUX01FTU9fVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0Lm1lbW8nKSA6IDB4ZWFkMztcbnZhciBSRUFDVF9MQVpZX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5sYXp5JykgOiAweGVhZDQ7XG52YXIgUkVBQ1RfQkxPQ0tfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmJsb2NrJykgOiAweGVhZDk7XG52YXIgUkVBQ1RfRlVOREFNRU5UQUxfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmZ1bmRhbWVudGFsJykgOiAweGVhZDU7XG52YXIgUkVBQ1RfUkVTUE9OREVSX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5yZXNwb25kZXInKSA6IDB4ZWFkNjtcbnZhciBSRUFDVF9TQ09QRV9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3Quc2NvcGUnKSA6IDB4ZWFkNztcblxuZnVuY3Rpb24gaXNWYWxpZEVsZW1lbnRUeXBlKHR5cGUpIHtcbiAgcmV0dXJuIHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJyB8fCAvLyBOb3RlOiBpdHMgdHlwZW9mIG1pZ2h0IGJlIG90aGVyIHRoYW4gJ3N5bWJvbCcgb3IgJ251bWJlcicgaWYgaXQncyBhIHBvbHlmaWxsLlxuICB0eXBlID09PSBSRUFDVF9GUkFHTUVOVF9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX0NPTkNVUlJFTlRfTU9ERV9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX1BST0ZJTEVSX1RZUEUgfHwgdHlwZSA9PT0gUkVBQ1RfU1RSSUNUX01PREVfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9TVVNQRU5TRV9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSB8fCB0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcgJiYgdHlwZSAhPT0gbnVsbCAmJiAodHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTEFaWV9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX01FTU9fVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9QUk9WSURFUl9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0NPTlRFWFRfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0ZVTkRBTUVOVEFMX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfUkVTUE9OREVSX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfU0NPUEVfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9CTE9DS19UWVBFKTtcbn1cblxuZnVuY3Rpb24gdHlwZU9mKG9iamVjdCkge1xuICBpZiAodHlwZW9mIG9iamVjdCA9PT0gJ29iamVjdCcgJiYgb2JqZWN0ICE9PSBudWxsKSB7XG4gICAgdmFyICQkdHlwZW9mID0gb2JqZWN0LiQkdHlwZW9mO1xuXG4gICAgc3dpdGNoICgkJHR5cGVvZikge1xuICAgICAgY2FzZSBSRUFDVF9FTEVNRU5UX1RZUEU6XG4gICAgICAgIHZhciB0eXBlID0gb2JqZWN0LnR5cGU7XG5cbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgY2FzZSBSRUFDVF9BU1lOQ19NT0RFX1RZUEU6XG4gICAgICAgICAgY2FzZSBSRUFDVF9DT05DVVJSRU5UX01PREVfVFlQRTpcbiAgICAgICAgICBjYXNlIFJFQUNUX0ZSQUdNRU5UX1RZUEU6XG4gICAgICAgICAgY2FzZSBSRUFDVF9QUk9GSUxFUl9UWVBFOlxuICAgICAgICAgIGNhc2UgUkVBQ1RfU1RSSUNUX01PREVfVFlQRTpcbiAgICAgICAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX1RZUEU6XG4gICAgICAgICAgICByZXR1cm4gdHlwZTtcblxuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB2YXIgJCR0eXBlb2ZUeXBlID0gdHlwZSAmJiB0eXBlLiQkdHlwZW9mO1xuXG4gICAgICAgICAgICBzd2l0Y2ggKCQkdHlwZW9mVHlwZSkge1xuICAgICAgICAgICAgICBjYXNlIFJFQUNUX0NPTlRFWFRfVFlQRTpcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFOlxuICAgICAgICAgICAgICBjYXNlIFJFQUNUX0xBWllfVFlQRTpcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9NRU1PX1RZUEU6XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfUFJPVklERVJfVFlQRTpcbiAgICAgICAgICAgICAgICByZXR1cm4gJCR0eXBlb2ZUeXBlO1xuXG4gICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuICQkdHlwZW9mO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgY2FzZSBSRUFDVF9QT1JUQUxfVFlQRTpcbiAgICAgICAgcmV0dXJuICQkdHlwZW9mO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59IC8vIEFzeW5jTW9kZSBpcyBkZXByZWNhdGVkIGFsb25nIHdpdGggaXNBc3luY01vZGVcblxudmFyIEFzeW5jTW9kZSA9IFJFQUNUX0FTWU5DX01PREVfVFlQRTtcbnZhciBDb25jdXJyZW50TW9kZSA9IFJFQUNUX0NPTkNVUlJFTlRfTU9ERV9UWVBFO1xudmFyIENvbnRleHRDb25zdW1lciA9IFJFQUNUX0NPTlRFWFRfVFlQRTtcbnZhciBDb250ZXh0UHJvdmlkZXIgPSBSRUFDVF9QUk9WSURFUl9UWVBFO1xudmFyIEVsZW1lbnQgPSBSRUFDVF9FTEVNRU5UX1RZUEU7XG52YXIgRm9yd2FyZFJlZiA9IFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU7XG52YXIgRnJhZ21lbnQgPSBSRUFDVF9GUkFHTUVOVF9UWVBFO1xudmFyIExhenkgPSBSRUFDVF9MQVpZX1RZUEU7XG52YXIgTWVtbyA9IFJFQUNUX01FTU9fVFlQRTtcbnZhciBQb3J0YWwgPSBSRUFDVF9QT1JUQUxfVFlQRTtcbnZhciBQcm9maWxlciA9IFJFQUNUX1BST0ZJTEVSX1RZUEU7XG52YXIgU3RyaWN0TW9kZSA9IFJFQUNUX1NUUklDVF9NT0RFX1RZUEU7XG52YXIgU3VzcGVuc2UgPSBSRUFDVF9TVVNQRU5TRV9UWVBFO1xudmFyIGhhc1dhcm5lZEFib3V0RGVwcmVjYXRlZElzQXN5bmNNb2RlID0gZmFsc2U7IC8vIEFzeW5jTW9kZSBzaG91bGQgYmUgZGVwcmVjYXRlZFxuXG5mdW5jdGlvbiBpc0FzeW5jTW9kZShvYmplY3QpIHtcbiAge1xuICAgIGlmICghaGFzV2FybmVkQWJvdXREZXByZWNhdGVkSXNBc3luY01vZGUpIHtcbiAgICAgIGhhc1dhcm5lZEFib3V0RGVwcmVjYXRlZElzQXN5bmNNb2RlID0gdHJ1ZTsgLy8gVXNpbmcgY29uc29sZVsnd2FybiddIHRvIGV2YWRlIEJhYmVsIGFuZCBFU0xpbnRcblxuICAgICAgY29uc29sZVsnd2FybiddKCdUaGUgUmVhY3RJcy5pc0FzeW5jTW9kZSgpIGFsaWFzIGhhcyBiZWVuIGRlcHJlY2F0ZWQsICcgKyAnYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBSZWFjdCAxNysuIFVwZGF0ZSB5b3VyIGNvZGUgdG8gdXNlICcgKyAnUmVhY3RJcy5pc0NvbmN1cnJlbnRNb2RlKCkgaW5zdGVhZC4gSXQgaGFzIHRoZSBleGFjdCBzYW1lIEFQSS4nKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gaXNDb25jdXJyZW50TW9kZShvYmplY3QpIHx8IHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9BU1lOQ19NT0RFX1RZUEU7XG59XG5mdW5jdGlvbiBpc0NvbmN1cnJlbnRNb2RlKG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX0NPTkNVUlJFTlRfTU9ERV9UWVBFO1xufVxuZnVuY3Rpb24gaXNDb250ZXh0Q29uc3VtZXIob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfQ09OVEVYVF9UWVBFO1xufVxuZnVuY3Rpb24gaXNDb250ZXh0UHJvdmlkZXIob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfUFJPVklERVJfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzRWxlbWVudChvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVvZiBvYmplY3QgPT09ICdvYmplY3QnICYmIG9iamVjdCAhPT0gbnVsbCAmJiBvYmplY3QuJCR0eXBlb2YgPT09IFJFQUNUX0VMRU1FTlRfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzRm9yd2FyZFJlZihvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFO1xufVxuZnVuY3Rpb24gaXNGcmFnbWVudChvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9GUkFHTUVOVF9UWVBFO1xufVxuZnVuY3Rpb24gaXNMYXp5KG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX0xBWllfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzTWVtbyhvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9NRU1PX1RZUEU7XG59XG5mdW5jdGlvbiBpc1BvcnRhbChvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9QT1JUQUxfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzUHJvZmlsZXIob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfUFJPRklMRVJfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzU3RyaWN0TW9kZShvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFO1xufVxuZnVuY3Rpb24gaXNTdXNwZW5zZShvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9TVVNQRU5TRV9UWVBFO1xufVxuXG5leHBvcnRzLkFzeW5jTW9kZSA9IEFzeW5jTW9kZTtcbmV4cG9ydHMuQ29uY3VycmVudE1vZGUgPSBDb25jdXJyZW50TW9kZTtcbmV4cG9ydHMuQ29udGV4dENvbnN1bWVyID0gQ29udGV4dENvbnN1bWVyO1xuZXhwb3J0cy5Db250ZXh0UHJvdmlkZXIgPSBDb250ZXh0UHJvdmlkZXI7XG5leHBvcnRzLkVsZW1lbnQgPSBFbGVtZW50O1xuZXhwb3J0cy5Gb3J3YXJkUmVmID0gRm9yd2FyZFJlZjtcbmV4cG9ydHMuRnJhZ21lbnQgPSBGcmFnbWVudDtcbmV4cG9ydHMuTGF6eSA9IExhenk7XG5leHBvcnRzLk1lbW8gPSBNZW1vO1xuZXhwb3J0cy5Qb3J0YWwgPSBQb3J0YWw7XG5leHBvcnRzLlByb2ZpbGVyID0gUHJvZmlsZXI7XG5leHBvcnRzLlN0cmljdE1vZGUgPSBTdHJpY3RNb2RlO1xuZXhwb3J0cy5TdXNwZW5zZSA9IFN1c3BlbnNlO1xuZXhwb3J0cy5pc0FzeW5jTW9kZSA9IGlzQXN5bmNNb2RlO1xuZXhwb3J0cy5pc0NvbmN1cnJlbnRNb2RlID0gaXNDb25jdXJyZW50TW9kZTtcbmV4cG9ydHMuaXNDb250ZXh0Q29uc3VtZXIgPSBpc0NvbnRleHRDb25zdW1lcjtcbmV4cG9ydHMuaXNDb250ZXh0UHJvdmlkZXIgPSBpc0NvbnRleHRQcm92aWRlcjtcbmV4cG9ydHMuaXNFbGVtZW50ID0gaXNFbGVtZW50O1xuZXhwb3J0cy5pc0ZvcndhcmRSZWYgPSBpc0ZvcndhcmRSZWY7XG5leHBvcnRzLmlzRnJhZ21lbnQgPSBpc0ZyYWdtZW50O1xuZXhwb3J0cy5pc0xhenkgPSBpc0xhenk7XG5leHBvcnRzLmlzTWVtbyA9IGlzTWVtbztcbmV4cG9ydHMuaXNQb3J0YWwgPSBpc1BvcnRhbDtcbmV4cG9ydHMuaXNQcm9maWxlciA9IGlzUHJvZmlsZXI7XG5leHBvcnRzLmlzU3RyaWN0TW9kZSA9IGlzU3RyaWN0TW9kZTtcbmV4cG9ydHMuaXNTdXNwZW5zZSA9IGlzU3VzcGVuc2U7XG5leHBvcnRzLmlzVmFsaWRFbGVtZW50VHlwZSA9IGlzVmFsaWRFbGVtZW50VHlwZTtcbmV4cG9ydHMudHlwZU9mID0gdHlwZU9mO1xuICB9KSgpO1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.development.js\n"); + +/***/ }), + +/***/ "./node_modules/hoist-non-react-statics/node_modules/react-is/index.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/hoist-non-react-statics/node_modules/react-is/index.js ***! + \*****************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ \"./node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvaG9pc3Qtbm9uLXJlYWN0LXN0YXRpY3Mvbm9kZV9tb2R1bGVzL3JlYWN0LWlzL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLElBQUksS0FBcUMsRUFBRSxFQUUxQyxDQUFDO0FBQ0YsRUFBRSxxS0FBeUQ7QUFDM0QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2hvaXN0LW5vbi1yZWFjdC1zdGF0aWNzL25vZGVfbW9kdWxlcy9yZWFjdC1pcy9pbmRleC5qcz9jNmNmIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1pcy5wcm9kdWN0aW9uLm1pbi5qcycpO1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1pcy5kZXZlbG9wbWVudC5qcycpO1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/hoist-non-react-statics/node_modules/react-is/index.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2Fcontact%2Fcontact-light&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Ccontact%5Ccontact-light.jsx!": +/*!***************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2Fcontact%2Fcontact-light&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Ccontact%5Ccontact-light.jsx! ***! + \***************************************************************************************************************************************************************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/contact/contact-light\",\n function () {\n return __webpack_require__(/*! ./src/pages/contact/contact-light.jsx */ \"./src/pages/contact/contact-light.jsx\");\n }\n ]);\n if(true) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/contact/contact-light\"])\n });\n }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWNsaWVudC1wYWdlcy1sb2FkZXIuanM/cGFnZT0lMkZjb250YWN0JTJGY29udGFjdC1saWdodCZhYnNvbHV0ZVBhZ2VQYXRoPUMlM0ElNUNVc2VycyU1Q2hwJTVDRGVza3RvcCU1Q2J1c2luZXNzLWh1YiU1Q3NyYyU1Q3BhZ2VzJTVDY29udGFjdCU1Q2NvbnRhY3QtbGlnaHQuanN4IS5qcyIsIm1hcHBpbmdzIjoiO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxtQkFBTyxDQUFDLG9GQUF1QztBQUM5RDtBQUNBO0FBQ0EsT0FBTyxJQUFVO0FBQ2pCLE1BQU0sVUFBVTtBQUNoQjtBQUNBLE9BQU87QUFDUDtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8/M2RlNCJdLCJzb3VyY2VzQ29udGVudCI6WyJcbiAgICAod2luZG93Ll9fTkVYVF9QID0gd2luZG93Ll9fTkVYVF9QIHx8IFtdKS5wdXNoKFtcbiAgICAgIFwiL2NvbnRhY3QvY29udGFjdC1saWdodFwiLFxuICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gcmVxdWlyZShcIi4vc3JjL3BhZ2VzL2NvbnRhY3QvY29udGFjdC1saWdodC5qc3hcIik7XG4gICAgICB9XG4gICAgXSk7XG4gICAgaWYobW9kdWxlLmhvdCkge1xuICAgICAgbW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgd2luZG93Ll9fTkVYVF9QLnB1c2goW1wiL2NvbnRhY3QvY29udGFjdC1saWdodFwiXSlcbiAgICAgIH0pO1xuICAgIH1cbiAgIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2Fcontact%2Fcontact-light&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Ccontact%5Ccontact-light.jsx!\n"); + +/***/ }), + +/***/ "./node_modules/next/link.js": +/*!***********************************!*\ + !*** ./node_modules/next/link.js ***! + \***********************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("module.exports = __webpack_require__(/*! ./dist/client/link */ \"./node_modules/next/dist/client/link.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9saW5rLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBLHlHQUE4QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9saW5rLmpzPzc1YjMiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Rpc3QvY2xpZW50L2xpbmsnKVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/link.js\n"); + +/***/ }), + +/***/ "./node_modules/react-fast-compare/index.js": +/*!**************************************************!*\ + !*** ./node_modules/react-fast-compare/index.js ***! + \**************************************************/ +/***/ (function(module) { + +"use strict"; +eval("\n\nvar isArray = Array.isArray;\nvar keyList = Object.keys;\nvar hasProp = Object.prototype.hasOwnProperty;\nvar hasElementType = typeof Element !== 'undefined';\n\nfunction equal(a, b) {\n // fast-deep-equal index.js 2.0.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n var arrA = isArray(a)\n , arrB = isArray(b)\n , i\n , length\n , key;\n\n if (arrA && arrB) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n if (arrA != arrB) return false;\n\n var dateA = a instanceof Date\n , dateB = b instanceof Date;\n if (dateA != dateB) return false;\n if (dateA && dateB) return a.getTime() == b.getTime();\n\n var regexpA = a instanceof RegExp\n , regexpB = b instanceof RegExp;\n if (regexpA != regexpB) return false;\n if (regexpA && regexpB) return a.toString() == b.toString();\n\n var keys = keyList(a);\n length = keys.length;\n\n if (length !== keyList(b).length)\n return false;\n\n for (i = length; i-- !== 0;)\n if (!hasProp.call(b, keys[i])) return false;\n // end fast-deep-equal\n\n // start react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element && b instanceof Element)\n return a === b;\n\n // custom handling for React\n for (i = length; i-- !== 0;) {\n key = keys[i];\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of a react element\n continue;\n } else {\n // all other properties should be traversed as usual\n if (!equal(a[key], b[key])) return false;\n }\n }\n // end react-fast-compare\n\n // fast-deep-equal index.js 2.0.1\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function exportedEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if ((error.message && error.message.match(/stack|recursion/i)) || (error.number === -2146828260)) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('Warning: react-fast-compare does not handle circular references.', error.name, error.message);\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtZmFzdC1jb21wYXJlL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLFVBQVU7QUFDakM7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSxxQkFBcUIsVUFBVTtBQUMvQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EscUJBQXFCLFVBQVU7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmVhY3QtZmFzdC1jb21wYXJlL2luZGV4LmpzPzRmNDkiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG52YXIgaXNBcnJheSA9IEFycmF5LmlzQXJyYXk7XG52YXIga2V5TGlzdCA9IE9iamVjdC5rZXlzO1xudmFyIGhhc1Byb3AgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xudmFyIGhhc0VsZW1lbnRUeXBlID0gdHlwZW9mIEVsZW1lbnQgIT09ICd1bmRlZmluZWQnO1xuXG5mdW5jdGlvbiBlcXVhbChhLCBiKSB7XG4gIC8vIGZhc3QtZGVlcC1lcXVhbCBpbmRleC5qcyAyLjAuMVxuICBpZiAoYSA9PT0gYikgcmV0dXJuIHRydWU7XG5cbiAgaWYgKGEgJiYgYiAmJiB0eXBlb2YgYSA9PSAnb2JqZWN0JyAmJiB0eXBlb2YgYiA9PSAnb2JqZWN0Jykge1xuICAgIHZhciBhcnJBID0gaXNBcnJheShhKVxuICAgICAgLCBhcnJCID0gaXNBcnJheShiKVxuICAgICAgLCBpXG4gICAgICAsIGxlbmd0aFxuICAgICAgLCBrZXk7XG5cbiAgICBpZiAoYXJyQSAmJiBhcnJCKSB7XG4gICAgICBsZW5ndGggPSBhLmxlbmd0aDtcbiAgICAgIGlmIChsZW5ndGggIT0gYi5sZW5ndGgpIHJldHVybiBmYWxzZTtcbiAgICAgIGZvciAoaSA9IGxlbmd0aDsgaS0tICE9PSAwOylcbiAgICAgICAgaWYgKCFlcXVhbChhW2ldLCBiW2ldKSkgcmV0dXJuIGZhbHNlO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKGFyckEgIT0gYXJyQikgcmV0dXJuIGZhbHNlO1xuXG4gICAgdmFyIGRhdGVBID0gYSBpbnN0YW5jZW9mIERhdGVcbiAgICAgICwgZGF0ZUIgPSBiIGluc3RhbmNlb2YgRGF0ZTtcbiAgICBpZiAoZGF0ZUEgIT0gZGF0ZUIpIHJldHVybiBmYWxzZTtcbiAgICBpZiAoZGF0ZUEgJiYgZGF0ZUIpIHJldHVybiBhLmdldFRpbWUoKSA9PSBiLmdldFRpbWUoKTtcblxuICAgIHZhciByZWdleHBBID0gYSBpbnN0YW5jZW9mIFJlZ0V4cFxuICAgICAgLCByZWdleHBCID0gYiBpbnN0YW5jZW9mIFJlZ0V4cDtcbiAgICBpZiAocmVnZXhwQSAhPSByZWdleHBCKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKHJlZ2V4cEEgJiYgcmVnZXhwQikgcmV0dXJuIGEudG9TdHJpbmcoKSA9PSBiLnRvU3RyaW5nKCk7XG5cbiAgICB2YXIga2V5cyA9IGtleUxpc3QoYSk7XG4gICAgbGVuZ3RoID0ga2V5cy5sZW5ndGg7XG5cbiAgICBpZiAobGVuZ3RoICE9PSBrZXlMaXN0KGIpLmxlbmd0aClcbiAgICAgIHJldHVybiBmYWxzZTtcblxuICAgIGZvciAoaSA9IGxlbmd0aDsgaS0tICE9PSAwOylcbiAgICAgIGlmICghaGFzUHJvcC5jYWxsKGIsIGtleXNbaV0pKSByZXR1cm4gZmFsc2U7XG4gICAgLy8gZW5kIGZhc3QtZGVlcC1lcXVhbFxuXG4gICAgLy8gc3RhcnQgcmVhY3QtZmFzdC1jb21wYXJlXG4gICAgLy8gY3VzdG9tIGhhbmRsaW5nIGZvciBET00gZWxlbWVudHNcbiAgICBpZiAoaGFzRWxlbWVudFR5cGUgJiYgYSBpbnN0YW5jZW9mIEVsZW1lbnQgJiYgYiBpbnN0YW5jZW9mIEVsZW1lbnQpXG4gICAgICByZXR1cm4gYSA9PT0gYjtcblxuICAgIC8vIGN1c3RvbSBoYW5kbGluZyBmb3IgUmVhY3RcbiAgICBmb3IgKGkgPSBsZW5ndGg7IGktLSAhPT0gMDspIHtcbiAgICAgIGtleSA9IGtleXNbaV07XG4gICAgICBpZiAoa2V5ID09PSAnX293bmVyJyAmJiBhLiQkdHlwZW9mKSB7XG4gICAgICAgIC8vIFJlYWN0LXNwZWNpZmljOiBhdm9pZCB0cmF2ZXJzaW5nIFJlYWN0IGVsZW1lbnRzJyBfb3duZXIuXG4gICAgICAgIC8vICBfb3duZXIgY29udGFpbnMgY2lyY3VsYXIgcmVmZXJlbmNlc1xuICAgICAgICAvLyBhbmQgaXMgbm90IG5lZWRlZCB3aGVuIGNvbXBhcmluZyB0aGUgYWN0dWFsIGVsZW1lbnRzIChhbmQgbm90IHRoZWlyIG93bmVycylcbiAgICAgICAgLy8gLiQkdHlwZW9mIGFuZCAuX3N0b3JlIG9uIGp1c3QgcmVhc29uYWJsZSBtYXJrZXJzIG9mIGEgcmVhY3QgZWxlbWVudFxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGFsbCBvdGhlciBwcm9wZXJ0aWVzIHNob3VsZCBiZSB0cmF2ZXJzZWQgYXMgdXN1YWxcbiAgICAgICAgaWYgKCFlcXVhbChhW2tleV0sIGJba2V5XSkpIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gZW5kIHJlYWN0LWZhc3QtY29tcGFyZVxuXG4gICAgLy8gZmFzdC1kZWVwLWVxdWFsIGluZGV4LmpzIDIuMC4xXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXR1cm4gYSAhPT0gYSAmJiBiICE9PSBiO1xufVxuLy8gZW5kIGZhc3QtZGVlcC1lcXVhbFxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGV4cG9ydGVkRXF1YWwoYSwgYikge1xuICB0cnkge1xuICAgIHJldHVybiBlcXVhbChhLCBiKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBpZiAoKGVycm9yLm1lc3NhZ2UgJiYgZXJyb3IubWVzc2FnZS5tYXRjaCgvc3RhY2t8cmVjdXJzaW9uL2kpKSB8fCAoZXJyb3IubnVtYmVyID09PSAtMjE0NjgyODI2MCkpIHtcbiAgICAgIC8vIHdhcm4gb24gY2lyY3VsYXIgcmVmZXJlbmNlcywgZG9uJ3QgY3Jhc2hcbiAgICAgIC8vIGJyb3dzZXJzIGdpdmUgdGhpcyBkaWZmZXJlbnQgZXJyb3JzIG5hbWUgYW5kIG1lc3NhZ2VzOlxuICAgICAgLy8gY2hyb21lL3NhZmFyaTogXCJSYW5nZUVycm9yXCIsIFwiTWF4aW11bSBjYWxsIHN0YWNrIHNpemUgZXhjZWVkZWRcIlxuICAgICAgLy8gZmlyZWZveDogXCJJbnRlcm5hbEVycm9yXCIsIHRvbyBtdWNoIHJlY3Vyc2lvblwiXG4gICAgICAvLyBlZGdlOiBcIkVycm9yXCIsIFwiT3V0IG9mIHN0YWNrIHNwYWNlXCJcbiAgICAgIGNvbnNvbGUud2FybignV2FybmluZzogcmVhY3QtZmFzdC1jb21wYXJlIGRvZXMgbm90IGhhbmRsZSBjaXJjdWxhciByZWZlcmVuY2VzLicsIGVycm9yLm5hbWUsIGVycm9yLm1lc3NhZ2UpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvLyBzb21lIG90aGVyIGVycm9yLiB3ZSBzaG91bGQgZGVmaW5pdGVseSBrbm93IGFib3V0IHRoZXNlXG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn07XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-fast-compare/index.js\n"); + +/***/ }), + +/***/ "./node_modules/react-tsparticles/cjs/particles.js": +/*!*********************************************************!*\ + !*** ./node_modules/react-tsparticles/cjs/particles.js ***! + \*********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +eval("(()=>{\"use strict\";var e={904:(e,t,o)=>{o.d(t,{Z:()=>v});const r=__webpack_require__(/*! react */ \"./node_modules/react/index.js\");var n=o.n(r);const i=__webpack_require__(/*! tsparticles */ \"./node_modules/tsparticles/index.js\"),a=__webpack_require__(/*! fast-deep-equal/react */ \"./node_modules/fast-deep-equal/react.js\");var c=o.n(a);function l(e){return(l=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function u(e,t){for(var o=0;o<t.length;o++){var r=t[o];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function s(e,t,o){return(s=\"undefined\"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,o){var r=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=f(e)););return e}(e,t);if(r){var n=Object.getOwnPropertyDescriptor(r,t);return n.get?n.get.call(o):n.value}})(e,t,o||e)}function d(e,t){return(d=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function p(e,t){if(t&&(\"object\"===l(t)||\"function\"==typeof t))return t;if(void 0!==t)throw new TypeError(\"Derived constructors may only return object or undefined\");return function(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}(e)}function f(e){return(f=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var v=function(e){!function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&d(e,t)}(v,e);var t,o,r,a,l=(r=v,a=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=f(r);if(a){var o=f(this).constructor;e=Reflect.construct(t,arguments,o)}else e=t.apply(this,arguments);return p(this,e)});function v(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,v),(t=l.call(this,e)).state={library:void 0},t}return t=v,(o=[{key:\"destroy\",value:function(){this.state.library&&(this.state.library.destroy(),this.setState({library:void 0}))}},{key:\"shouldComponentUpdate\",value:function(e){return!c()(e,this.props)}},{key:\"componentDidUpdate\",value:function(){this.refresh()}},{key:\"forceUpdate\",value:function(){this.refresh(),s(f(v.prototype),\"forceUpdate\",this).call(this)}},{key:\"componentDidMount\",value:function(){this.props.init&&this.props.init(i.tsParticles),this.loadParticles()}},{key:\"componentWillUnmount\",value:function(){this.destroy()}},{key:\"render\",value:function(){var e=this.props,t=e.width,o=e.height,r=e.className,i=e.canvasClassName,a=e.id;return n().createElement(\"div\",{className:r,id:a},n().createElement(\"canvas\",{className:i,style:Object.assign(Object.assign({},this.props.style),{width:t,height:o})}))}},{key:\"refresh\",value:function(){this.destroy(),this.loadParticles()}},{key:\"loadParticles\",value:function(){var e,t=this,o=function(e){t.props.container&&(t.props.container.current=e),t.setState({library:e}),t.props.loaded&&t.props.loaded(e)};this.props.url?i.tsParticles.loadJSON(this.props.id,this.props.url).then(o):i.tsParticles.load(this.props.id,null!==(e=this.props.params)&&void 0!==e?e:this.props.options).then(o)}}])&&u(t.prototype,o),v}(r.Component);v.defaultProps={width:\"100%\",height:\"100%\",options:{},style:{},url:void 0,id:\"tsparticles\"}},868:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.AnimationStatus=void 0,(o=t.AnimationStatus||(t.AnimationStatus={}))[o.increasing=0]=\"increasing\",o[o.decreasing=1]=\"decreasing\"},300:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.MoveDirection=void 0,(o=t.MoveDirection||(t.MoveDirection={})).bottom=\"bottom\",o.bottomLeft=\"bottom-left\",o.bottomRight=\"bottom-right\",o.left=\"left\",o.none=\"none\",o.right=\"right\",o.top=\"top\",o.topLeft=\"top-left\",o.topRight=\"top-right\"},264:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.OutModeDirection=void 0,(o=t.OutModeDirection||(t.OutModeDirection={})).bottom=\"bottom\",o.left=\"left\",o.right=\"right\",o.top=\"top\"},329:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.RotateDirection=void 0,(o=t.RotateDirection||(t.RotateDirection={})).clockwise=\"clockwise\",o.counterClockwise=\"counter-clockwise\",o.random=\"random\"},469:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.TiltDirection=void 0,(o=t.TiltDirection||(t.TiltDirection={})).clockwise=\"clockwise\",o.counterClockwise=\"counter-clockwise\",o.random=\"random\"},961:function(e,t,o){var r=this&&this.__createBinding||(Object.create?function(e,t,o,r){void 0===r&&(r=o),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[o]}})}:function(e,t,o,r){void 0===r&&(r=o),e[r]=t[o]}),n=this&&this.__exportStar||function(e,t){for(var o in e)\"default\"===o||Object.prototype.hasOwnProperty.call(t,o)||r(t,e,o)};Object.defineProperty(t,\"__esModule\",{value:!0}),n(o(300),t),n(o(329),t),n(o(264),t),n(o(469),t)},974:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.InteractivityDetect=void 0,(o=t.InteractivityDetect||(t.InteractivityDetect={})).canvas=\"canvas\",o.parent=\"parent\",o.window=\"window\"},252:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.ClickMode=void 0,(o=t.ClickMode||(t.ClickMode={})).attract=\"attract\",o.bubble=\"bubble\",o.push=\"push\",o.remove=\"remove\",o.repulse=\"repulse\",o.pause=\"pause\",o.trail=\"trail\"},130:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.CollisionMode=void 0,(o=t.CollisionMode||(t.CollisionMode={})).absorb=\"absorb\",o.bounce=\"bounce\",o.destroy=\"destroy\"},330:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.DestroyMode=void 0,(o=t.DestroyMode||(t.DestroyMode={})).none=\"none\",o.split=\"split\"},208:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.DivMode=void 0,(o=t.DivMode||(t.DivMode={})).bounce=\"bounce\",o.bubble=\"bubble\",o.repulse=\"repulse\"},349:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.HoverMode=void 0,(o=t.HoverMode||(t.HoverMode={})).attract=\"attract\",o.bounce=\"bounce\",o.bubble=\"bubble\",o.connect=\"connect\",o.grab=\"grab\",o.light=\"light\",o.repulse=\"repulse\",o.slow=\"slow\",o.trail=\"trail\"},581:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.OutMode=void 0,(o=t.OutMode||(t.OutMode={})).bounce=\"bounce\",o.bounceHorizontal=\"bounce-horizontal\",o.bounceVertical=\"bounce-vertical\",o.none=\"none\",o.out=\"out\",o.destroy=\"destroy\",o.split=\"split\"},164:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.ResponsiveMode=void 0,(o=t.ResponsiveMode||(t.ResponsiveMode={})).screen=\"screen\",o.canvas=\"canvas\"},667:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.RollMode=void 0,(o=t.RollMode||(t.RollMode={})).both=\"both\",o.horizontal=\"horizontal\",o.vertical=\"vertical\"},855:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.SizeMode=void 0,(o=t.SizeMode||(t.SizeMode={})).precise=\"precise\",o.percent=\"percent\"},702:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.ThemeMode=void 0,(o=t.ThemeMode||(t.ThemeMode={})).any=\"any\",o.dark=\"dark\",o.light=\"light\"},515:function(e,t,o){var r=this&&this.__createBinding||(Object.create?function(e,t,o,r){void 0===r&&(r=o),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[o]}})}:function(e,t,o,r){void 0===r&&(r=o),e[r]=t[o]}),n=this&&this.__exportStar||function(e,t){for(var o in e)\"default\"===o||Object.prototype.hasOwnProperty.call(t,o)||r(t,e,o)};Object.defineProperty(t,\"__esModule\",{value:!0}),n(o(252),t),n(o(330),t),n(o(208),t),n(o(349),t),n(o(130),t),n(o(581),t),n(o(667),t),n(o(855),t),n(o(702),t),n(o(164),t)},47:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.AlterType=void 0,(o=t.AlterType||(t.AlterType={})).darken=\"darken\",o.enlighten=\"enlighten\"},64:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.DestroyType=void 0,(o=t.DestroyType||(t.DestroyType={})).none=\"none\",o.max=\"max\",o.min=\"min\"},712:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.DivType=void 0,(o=t.DivType||(t.DivType={})).circle=\"circle\",o.rectangle=\"rectangle\"},77:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.EasingType=void 0,(o=t.EasingType||(t.EasingType={})).easeOutBack=\"ease-out-back\",o.easeOutCirc=\"ease-out-circ\",o.easeOutCubic=\"ease-out-cubic\",o.easeOutQuad=\"ease-out-quad\",o.easeOutQuart=\"ease-out-quart\",o.easeOutQuint=\"ease-out-quint\",o.easeOutExpo=\"ease-out-expo\",o.easeOutSine=\"ease-out-sine\"},589:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.GradientType=void 0,(o=t.GradientType||(t.GradientType={})).linear=\"linear\",o.radial=\"radial\",o.random=\"random\"},457:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.InteractorType=void 0,(o=t.InteractorType||(t.InteractorType={}))[o.External=0]=\"External\",o[o.Particles=1]=\"Particles\"},796:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.OrbitType=void 0,(o=t.OrbitType||(t.OrbitType={})).front=\"front\",o.back=\"back\"},247:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.ShapeType=void 0,(o=t.ShapeType||(t.ShapeType={})).char=\"char\",o.character=\"character\",o.circle=\"circle\",o.edge=\"edge\",o.image=\"image\",o.images=\"images\",o.line=\"line\",o.polygon=\"polygon\",o.square=\"square\",o.star=\"star\",o.triangle=\"triangle\"},676:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.StartValueType=void 0,(o=t.StartValueType||(t.StartValueType={})).max=\"max\",o.min=\"min\",o.random=\"random\"},799:function(e,t,o){var r=this&&this.__createBinding||(Object.create?function(e,t,o,r){void 0===r&&(r=o),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[o]}})}:function(e,t,o,r){void 0===r&&(r=o),e[r]=t[o]}),n=this&&this.__exportStar||function(e,t){for(var o in e)\"default\"===o||Object.prototype.hasOwnProperty.call(t,o)||r(t,e,o)};Object.defineProperty(t,\"__esModule\",{value:!0}),n(o(47),t),n(o(64),t),n(o(589),t),n(o(457),t),n(o(247),t),n(o(676),t),n(o(712),t),n(o(77),t),n(o(796),t)},717:function(e,t,o){var r=this&&this.__createBinding||(Object.create?function(e,t,o,r){void 0===r&&(r=o),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[o]}})}:function(e,t,o,r){void 0===r&&(r=o),e[r]=t[o]}),n=this&&this.__exportStar||function(e,t){for(var o in e)\"default\"===o||Object.prototype.hasOwnProperty.call(t,o)||r(t,e,o)};Object.defineProperty(t,\"__esModule\",{value:!0}),n(o(961),t),n(o(515),t),n(o(868),t),n(o(799),t),n(o(974),t)}},t={};function o(r){var n=t[r];if(void 0!==n)return n.exports;var i=t[r]={exports:{}};return e[r].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o.r=e=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})};var r={};(()=>{o.r(r),o.d(r,{default:()=>i,Particles:()=>e.Z});var e=o(904),t=o(717),n={};for(const e in t)[\"default\",\"Particles\"].indexOf(e)<0&&(n[e]=()=>t[e]);o.d(r,n);const i=e.Z})();var n=exports;for(var i in r)n[i]=r[i];r.__esModule&&Object.defineProperty(n,\"__esModule\",{value:!0})})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtdHNwYXJ0aWNsZXMvY2pzL3BhcnRpY2xlcy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQSxNQUFNLGFBQWEsT0FBTyxjQUFjLE9BQU8sUUFBUSxFQUFFLFFBQVEsbUJBQU8sQ0FBQyw0Q0FBTyxFQUFFLGFBQWEsUUFBUSxtQkFBTyxDQUFDLHdEQUFhLElBQUksbUJBQU8sQ0FBQyxzRUFBdUIsRUFBRSxhQUFhLGNBQWMsaUZBQWlGLGdCQUFnQixhQUFhLG9HQUFvRyxLQUFLLGdCQUFnQixZQUFZLFdBQVcsS0FBSyxXQUFXLCtHQUErRyxrQkFBa0IsOEVBQThFLG9CQUFvQixLQUFLLDREQUE0RCxFQUFFLFNBQVMsTUFBTSxNQUFNLDJDQUEyQyxvQ0FBb0MsWUFBWSxnQkFBZ0IsOENBQThDLHVCQUF1QixPQUFPLGdCQUFnQix1REFBdUQsOEZBQThGLG1CQUFtQixvR0FBb0csU0FBUyxJQUFJLGNBQWMsaUVBQWlFLDZDQUE2QyxLQUFLLGtCQUFrQixlQUFlLDRHQUE0RywwQ0FBMEMsYUFBYSxxQ0FBcUMsWUFBWSxNQUFNLGdDQUFnQyw0REFBNEQsbUNBQW1DLHFDQUFxQyxJQUFJLGdGQUFnRixPQUFPLFNBQVMsVUFBVSxjQUFjLGFBQWEsTUFBTSwwQkFBMEIsbUNBQW1DLCtCQUErQixpQkFBaUIsRUFBRSxjQUFjLE1BQU0scUJBQXFCLDhFQUE4RSxtQ0FBbUMsZUFBZSxHQUFHLGdCQUFnQiwrQkFBK0IsaUVBQWlFLGVBQWUsSUFBSSxFQUFFLDhDQUE4QywwQkFBMEIsRUFBRSwwQ0FBMEMsZ0JBQWdCLEVBQUUsbUNBQW1DLGdFQUFnRSxFQUFFLHlDQUF5QyxzRUFBc0UsRUFBRSw0Q0FBNEMsZ0JBQWdCLEVBQUUsOEJBQThCLCtFQUErRSxnQ0FBZ0MsaUJBQWlCLDZCQUE2QixnREFBZ0Qsb0JBQW9CLGlCQUFpQixFQUFFLElBQUksRUFBRSwrQkFBK0IscUNBQXFDLEVBQUUscUNBQXFDLDJCQUEyQiw2REFBNkQsVUFBVSxxQ0FBcUMscUxBQXFMLHVCQUF1QixjQUFjLGdCQUFnQixxQ0FBcUMsU0FBUyw4QkFBOEIsYUFBYSxNQUFNLHNDQUFzQyxTQUFTLHNFQUFzRSwrREFBK0QsYUFBYSxNQUFNLHNDQUFzQyxTQUFTLGdFQUFnRSwrS0FBK0ssYUFBYSxNQUFNLHNDQUFzQyxTQUFTLHlFQUF5RSw2REFBNkQsYUFBYSxNQUFNLHNDQUFzQyxTQUFTLHNFQUFzRSxrRkFBa0YsYUFBYSxNQUFNLHNDQUFzQyxTQUFTLGdFQUFnRSxrRkFBa0YscUJBQXFCLG1FQUFtRSw2Q0FBNkMsNkJBQTZCLGFBQWEsRUFBRSxtQkFBbUIsNEJBQTRCLDJDQUEyQyxtRkFBbUYsc0NBQXNDLFNBQVMsa0RBQWtELGFBQWEsTUFBTSxzQ0FBc0MsU0FBUyxrRkFBa0YsdURBQXVELGFBQWEsTUFBTSxzQ0FBc0MsU0FBUyxvREFBb0QsMkhBQTJILGFBQWEsTUFBTSxzQ0FBc0MsU0FBUyxnRUFBZ0UseURBQXlELGFBQWEsTUFBTSxzQ0FBc0MsU0FBUywwREFBMEQsK0JBQStCLGFBQWEsTUFBTSxzQ0FBc0MsU0FBUyw4Q0FBOEMseURBQXlELGFBQWEsTUFBTSxzQ0FBc0MsU0FBUyxvREFBb0QsNkpBQTZKLGFBQWEsTUFBTSxzQ0FBc0MsU0FBUyw4Q0FBOEMsMkpBQTJKLGFBQWEsTUFBTSxzQ0FBc0MsU0FBUyxtRUFBbUUscUNBQXFDLGFBQWEsTUFBTSxzQ0FBc0MsU0FBUyxpREFBaUQsK0RBQStELGFBQWEsTUFBTSxzQ0FBc0MsU0FBUyxpREFBaUQseUNBQXlDLGFBQWEsTUFBTSxzQ0FBc0MsU0FBUyxvREFBb0QsMkNBQTJDLHFCQUFxQixtRUFBbUUsNkNBQTZDLDZCQUE2QixhQUFhLEVBQUUsbUJBQW1CLDRCQUE0QiwyQ0FBMkMsbUZBQW1GLHNDQUFzQyxTQUFTLDBIQUEwSCxZQUFZLE1BQU0sc0NBQXNDLFNBQVMsb0RBQW9ELDJDQUEyQyxZQUFZLE1BQU0sc0NBQXNDLFNBQVMsMERBQTBELHVDQUF1QyxhQUFhLE1BQU0sc0NBQXNDLFNBQVMsOENBQThDLDJDQUEyQyxZQUFZLE1BQU0sc0NBQXNDLFNBQVMsdURBQXVELHVQQUF1UCxhQUFhLE1BQU0sc0NBQXNDLFNBQVMsNkRBQTZELHVEQUF1RCxhQUFhLE1BQU0sc0NBQXNDLFNBQVMsbUVBQW1FLHlEQUF5RCxhQUFhLE1BQU0sc0NBQXNDLFNBQVMsb0RBQW9ELCtCQUErQixhQUFhLE1BQU0sc0NBQXNDLFNBQVMsb0RBQW9ELGlNQUFpTSxhQUFhLE1BQU0sc0NBQXNDLFNBQVMsbUVBQW1FLDJDQUEyQyxxQkFBcUIsbUVBQW1FLDZDQUE2Qyw2QkFBNkIsYUFBYSxFQUFFLG1CQUFtQiw0QkFBNEIsMkNBQTJDLG1GQUFtRixzQ0FBc0MsU0FBUywyR0FBMkcscUJBQXFCLG1FQUFtRSw2Q0FBNkMsNkJBQTZCLGFBQWEsRUFBRSxtQkFBbUIsNEJBQTRCLDJDQUEyQyxtRkFBbUYsc0NBQXNDLFNBQVMsK0RBQStELE1BQU0sY0FBYyxXQUFXLCtCQUErQixZQUFZLFlBQVksb0RBQW9ELFFBQVEsMENBQTBDLGNBQWMsSUFBSSxJQUFJLGFBQWEsK0RBQStELHVCQUF1QixFQUFFLDhEQUE4RCw0RkFBNEYsZUFBZSx3Q0FBd0MsU0FBUyxHQUFHLFNBQVMsTUFBTSxjQUFjLGdDQUFnQyxFQUFFLDJCQUEyQix1RUFBdUUsU0FBUyxZQUFZLElBQUksY0FBYyx5QkFBeUIsb0RBQW9ELFNBQVMsRUFBRSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmVhY3QtdHNwYXJ0aWNsZXMvY2pzL3BhcnRpY2xlcy5qcz8zNmFmIl0sInNvdXJjZXNDb250ZW50IjpbIigoKT0+e1widXNlIHN0cmljdFwiO3ZhciBlPXs5MDQ6KGUsdCxvKT0+e28uZCh0LHtaOigpPT52fSk7Y29uc3Qgcj1yZXF1aXJlKFwicmVhY3RcIik7dmFyIG49by5uKHIpO2NvbnN0IGk9cmVxdWlyZShcInRzcGFydGljbGVzXCIpLGE9cmVxdWlyZShcImZhc3QtZGVlcC1lcXVhbC9yZWFjdFwiKTt2YXIgYz1vLm4oYSk7ZnVuY3Rpb24gbChlKXtyZXR1cm4obD1cImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmXCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZlIT09U3ltYm9sLnByb3RvdHlwZT9cInN5bWJvbFwiOnR5cGVvZiBlfSkoZSl9ZnVuY3Rpb24gdShlLHQpe2Zvcih2YXIgbz0wO288dC5sZW5ndGg7bysrKXt2YXIgcj10W29dO3IuZW51bWVyYWJsZT1yLmVudW1lcmFibGV8fCExLHIuY29uZmlndXJhYmxlPSEwLFwidmFsdWVcImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLmtleSxyKX19ZnVuY3Rpb24gcyhlLHQsbyl7cmV0dXJuKHM9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0OmZ1bmN0aW9uKGUsdCxvKXt2YXIgcj1mdW5jdGlvbihlLHQpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHQpJiZudWxsIT09KGU9ZihlKSk7KTtyZXR1cm4gZX0oZSx0KTtpZihyKXt2YXIgbj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIsdCk7cmV0dXJuIG4uZ2V0P24uZ2V0LmNhbGwobyk6bi52YWx1ZX19KShlLHQsb3x8ZSl9ZnVuY3Rpb24gZChlLHQpe3JldHVybihkPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5fX3Byb3RvX189dCxlfSkoZSx0KX1mdW5jdGlvbiBwKGUsdCl7aWYodCYmKFwib2JqZWN0XCI9PT1sKHQpfHxcImZ1bmN0aW9uXCI9PXR5cGVvZiB0KSlyZXR1cm4gdDtpZih2b2lkIDAhPT10KXRocm93IG5ldyBUeXBlRXJyb3IoXCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZFwiKTtyZXR1cm4gZnVuY3Rpb24oZSl7aWYodm9pZCAwPT09ZSl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7cmV0dXJuIGV9KGUpfWZ1bmN0aW9uIGYoZSl7cmV0dXJuKGY9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZjpmdW5jdGlvbihlKXtyZXR1cm4gZS5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihlKX0pKGUpfXZhciB2PWZ1bmN0aW9uKGUpeyFmdW5jdGlvbihlLHQpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIHQmJm51bGwhPT10KXRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvblwiKTtlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksdCYmZChlLHQpfSh2LGUpO3ZhciB0LG8scixhLGw9KHI9dixhPWZ1bmN0aW9uKCl7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdClyZXR1cm4hMTtpZihSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sKGZ1bmN0aW9uKCl7fSkpKSwhMH1jYXRjaChlKXtyZXR1cm4hMX19KCksZnVuY3Rpb24oKXt2YXIgZSx0PWYocik7aWYoYSl7dmFyIG89Zih0aGlzKS5jb25zdHJ1Y3RvcjtlPVJlZmxlY3QuY29uc3RydWN0KHQsYXJndW1lbnRzLG8pfWVsc2UgZT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gcCh0aGlzLGUpfSk7ZnVuY3Rpb24gdihlKXt2YXIgdDtyZXR1cm4gZnVuY3Rpb24oZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpfSh0aGlzLHYpLCh0PWwuY2FsbCh0aGlzLGUpKS5zdGF0ZT17bGlicmFyeTp2b2lkIDB9LHR9cmV0dXJuIHQ9diwobz1be2tleTpcImRlc3Ryb3lcIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuc3RhdGUubGlicmFyeSYmKHRoaXMuc3RhdGUubGlicmFyeS5kZXN0cm95KCksdGhpcy5zZXRTdGF0ZSh7bGlicmFyeTp2b2lkIDB9KSl9fSx7a2V5Olwic2hvdWxkQ29tcG9uZW50VXBkYXRlXCIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIWMoKShlLHRoaXMucHJvcHMpfX0se2tleTpcImNvbXBvbmVudERpZFVwZGF0ZVwiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5yZWZyZXNoKCl9fSx7a2V5OlwiZm9yY2VVcGRhdGVcIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMucmVmcmVzaCgpLHMoZih2LnByb3RvdHlwZSksXCJmb3JjZVVwZGF0ZVwiLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OlwiY29tcG9uZW50RGlkTW91bnRcIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMucHJvcHMuaW5pdCYmdGhpcy5wcm9wcy5pbml0KGkudHNQYXJ0aWNsZXMpLHRoaXMubG9hZFBhcnRpY2xlcygpfX0se2tleTpcImNvbXBvbmVudFdpbGxVbm1vdW50XCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmRlc3Ryb3koKX19LHtrZXk6XCJyZW5kZXJcIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMucHJvcHMsdD1lLndpZHRoLG89ZS5oZWlnaHQscj1lLmNsYXNzTmFtZSxpPWUuY2FudmFzQ2xhc3NOYW1lLGE9ZS5pZDtyZXR1cm4gbigpLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOnIsaWQ6YX0sbigpLmNyZWF0ZUVsZW1lbnQoXCJjYW52YXNcIix7Y2xhc3NOYW1lOmksc3R5bGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHRoaXMucHJvcHMuc3R5bGUpLHt3aWR0aDp0LGhlaWdodDpvfSl9KSl9fSx7a2V5OlwicmVmcmVzaFwiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5kZXN0cm95KCksdGhpcy5sb2FkUGFydGljbGVzKCl9fSx7a2V5OlwibG9hZFBhcnRpY2xlc1wiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGUsdD10aGlzLG89ZnVuY3Rpb24oZSl7dC5wcm9wcy5jb250YWluZXImJih0LnByb3BzLmNvbnRhaW5lci5jdXJyZW50PWUpLHQuc2V0U3RhdGUoe2xpYnJhcnk6ZX0pLHQucHJvcHMubG9hZGVkJiZ0LnByb3BzLmxvYWRlZChlKX07dGhpcy5wcm9wcy51cmw/aS50c1BhcnRpY2xlcy5sb2FkSlNPTih0aGlzLnByb3BzLmlkLHRoaXMucHJvcHMudXJsKS50aGVuKG8pOmkudHNQYXJ0aWNsZXMubG9hZCh0aGlzLnByb3BzLmlkLG51bGwhPT0oZT10aGlzLnByb3BzLnBhcmFtcykmJnZvaWQgMCE9PWU/ZTp0aGlzLnByb3BzLm9wdGlvbnMpLnRoZW4obyl9fV0pJiZ1KHQucHJvdG90eXBlLG8pLHZ9KHIuQ29tcG9uZW50KTt2LmRlZmF1bHRQcm9wcz17d2lkdGg6XCIxMDAlXCIsaGVpZ2h0OlwiMTAwJVwiLG9wdGlvbnM6e30sc3R5bGU6e30sdXJsOnZvaWQgMCxpZDpcInRzcGFydGljbGVzXCJ9fSw4Njg6KGUsdCk9Pnt2YXIgbztPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LkFuaW1hdGlvblN0YXR1cz12b2lkIDAsKG89dC5BbmltYXRpb25TdGF0dXN8fCh0LkFuaW1hdGlvblN0YXR1cz17fSkpW28uaW5jcmVhc2luZz0wXT1cImluY3JlYXNpbmdcIixvW28uZGVjcmVhc2luZz0xXT1cImRlY3JlYXNpbmdcIn0sMzAwOihlLHQpPT57dmFyIG87T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5Nb3ZlRGlyZWN0aW9uPXZvaWQgMCwobz10Lk1vdmVEaXJlY3Rpb258fCh0Lk1vdmVEaXJlY3Rpb249e30pKS5ib3R0b209XCJib3R0b21cIixvLmJvdHRvbUxlZnQ9XCJib3R0b20tbGVmdFwiLG8uYm90dG9tUmlnaHQ9XCJib3R0b20tcmlnaHRcIixvLmxlZnQ9XCJsZWZ0XCIsby5ub25lPVwibm9uZVwiLG8ucmlnaHQ9XCJyaWdodFwiLG8udG9wPVwidG9wXCIsby50b3BMZWZ0PVwidG9wLWxlZnRcIixvLnRvcFJpZ2h0PVwidG9wLXJpZ2h0XCJ9LDI2NDooZSx0KT0+e3ZhciBvO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuT3V0TW9kZURpcmVjdGlvbj12b2lkIDAsKG89dC5PdXRNb2RlRGlyZWN0aW9ufHwodC5PdXRNb2RlRGlyZWN0aW9uPXt9KSkuYm90dG9tPVwiYm90dG9tXCIsby5sZWZ0PVwibGVmdFwiLG8ucmlnaHQ9XCJyaWdodFwiLG8udG9wPVwidG9wXCJ9LDMyOTooZSx0KT0+e3ZhciBvO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuUm90YXRlRGlyZWN0aW9uPXZvaWQgMCwobz10LlJvdGF0ZURpcmVjdGlvbnx8KHQuUm90YXRlRGlyZWN0aW9uPXt9KSkuY2xvY2t3aXNlPVwiY2xvY2t3aXNlXCIsby5jb3VudGVyQ2xvY2t3aXNlPVwiY291bnRlci1jbG9ja3dpc2VcIixvLnJhbmRvbT1cInJhbmRvbVwifSw0Njk6KGUsdCk9Pnt2YXIgbztPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LlRpbHREaXJlY3Rpb249dm9pZCAwLChvPXQuVGlsdERpcmVjdGlvbnx8KHQuVGlsdERpcmVjdGlvbj17fSkpLmNsb2Nrd2lzZT1cImNsb2Nrd2lzZVwiLG8uY291bnRlckNsb2Nrd2lzZT1cImNvdW50ZXItY2xvY2t3aXNlXCIsby5yYW5kb209XCJyYW5kb21cIn0sOTYxOmZ1bmN0aW9uKGUsdCxvKXt2YXIgcj10aGlzJiZ0aGlzLl9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oZSx0LG8scil7dm9pZCAwPT09ciYmKHI9byksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUscix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdFtvXX19KX06ZnVuY3Rpb24oZSx0LG8scil7dm9pZCAwPT09ciYmKHI9byksZVtyXT10W29dfSksbj10aGlzJiZ0aGlzLl9fZXhwb3J0U3Rhcnx8ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG8gaW4gZSlcImRlZmF1bHRcIj09PW98fE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LG8pfHxyKHQsZSxvKX07T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksbihvKDMwMCksdCksbihvKDMyOSksdCksbihvKDI2NCksdCksbihvKDQ2OSksdCl9LDk3NDooZSx0KT0+e3ZhciBvO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuSW50ZXJhY3Rpdml0eURldGVjdD12b2lkIDAsKG89dC5JbnRlcmFjdGl2aXR5RGV0ZWN0fHwodC5JbnRlcmFjdGl2aXR5RGV0ZWN0PXt9KSkuY2FudmFzPVwiY2FudmFzXCIsby5wYXJlbnQ9XCJwYXJlbnRcIixvLndpbmRvdz1cIndpbmRvd1wifSwyNTI6KGUsdCk9Pnt2YXIgbztPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LkNsaWNrTW9kZT12b2lkIDAsKG89dC5DbGlja01vZGV8fCh0LkNsaWNrTW9kZT17fSkpLmF0dHJhY3Q9XCJhdHRyYWN0XCIsby5idWJibGU9XCJidWJibGVcIixvLnB1c2g9XCJwdXNoXCIsby5yZW1vdmU9XCJyZW1vdmVcIixvLnJlcHVsc2U9XCJyZXB1bHNlXCIsby5wYXVzZT1cInBhdXNlXCIsby50cmFpbD1cInRyYWlsXCJ9LDEzMDooZSx0KT0+e3ZhciBvO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuQ29sbGlzaW9uTW9kZT12b2lkIDAsKG89dC5Db2xsaXNpb25Nb2RlfHwodC5Db2xsaXNpb25Nb2RlPXt9KSkuYWJzb3JiPVwiYWJzb3JiXCIsby5ib3VuY2U9XCJib3VuY2VcIixvLmRlc3Ryb3k9XCJkZXN0cm95XCJ9LDMzMDooZSx0KT0+e3ZhciBvO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuRGVzdHJveU1vZGU9dm9pZCAwLChvPXQuRGVzdHJveU1vZGV8fCh0LkRlc3Ryb3lNb2RlPXt9KSkubm9uZT1cIm5vbmVcIixvLnNwbGl0PVwic3BsaXRcIn0sMjA4OihlLHQpPT57dmFyIG87T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5EaXZNb2RlPXZvaWQgMCwobz10LkRpdk1vZGV8fCh0LkRpdk1vZGU9e30pKS5ib3VuY2U9XCJib3VuY2VcIixvLmJ1YmJsZT1cImJ1YmJsZVwiLG8ucmVwdWxzZT1cInJlcHVsc2VcIn0sMzQ5OihlLHQpPT57dmFyIG87T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5Ib3Zlck1vZGU9dm9pZCAwLChvPXQuSG92ZXJNb2RlfHwodC5Ib3Zlck1vZGU9e30pKS5hdHRyYWN0PVwiYXR0cmFjdFwiLG8uYm91bmNlPVwiYm91bmNlXCIsby5idWJibGU9XCJidWJibGVcIixvLmNvbm5lY3Q9XCJjb25uZWN0XCIsby5ncmFiPVwiZ3JhYlwiLG8ubGlnaHQ9XCJsaWdodFwiLG8ucmVwdWxzZT1cInJlcHVsc2VcIixvLnNsb3c9XCJzbG93XCIsby50cmFpbD1cInRyYWlsXCJ9LDU4MTooZSx0KT0+e3ZhciBvO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuT3V0TW9kZT12b2lkIDAsKG89dC5PdXRNb2RlfHwodC5PdXRNb2RlPXt9KSkuYm91bmNlPVwiYm91bmNlXCIsby5ib3VuY2VIb3Jpem9udGFsPVwiYm91bmNlLWhvcml6b250YWxcIixvLmJvdW5jZVZlcnRpY2FsPVwiYm91bmNlLXZlcnRpY2FsXCIsby5ub25lPVwibm9uZVwiLG8ub3V0PVwib3V0XCIsby5kZXN0cm95PVwiZGVzdHJveVwiLG8uc3BsaXQ9XCJzcGxpdFwifSwxNjQ6KGUsdCk9Pnt2YXIgbztPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LlJlc3BvbnNpdmVNb2RlPXZvaWQgMCwobz10LlJlc3BvbnNpdmVNb2RlfHwodC5SZXNwb25zaXZlTW9kZT17fSkpLnNjcmVlbj1cInNjcmVlblwiLG8uY2FudmFzPVwiY2FudmFzXCJ9LDY2NzooZSx0KT0+e3ZhciBvO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuUm9sbE1vZGU9dm9pZCAwLChvPXQuUm9sbE1vZGV8fCh0LlJvbGxNb2RlPXt9KSkuYm90aD1cImJvdGhcIixvLmhvcml6b250YWw9XCJob3Jpem9udGFsXCIsby52ZXJ0aWNhbD1cInZlcnRpY2FsXCJ9LDg1NTooZSx0KT0+e3ZhciBvO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuU2l6ZU1vZGU9dm9pZCAwLChvPXQuU2l6ZU1vZGV8fCh0LlNpemVNb2RlPXt9KSkucHJlY2lzZT1cInByZWNpc2VcIixvLnBlcmNlbnQ9XCJwZXJjZW50XCJ9LDcwMjooZSx0KT0+e3ZhciBvO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuVGhlbWVNb2RlPXZvaWQgMCwobz10LlRoZW1lTW9kZXx8KHQuVGhlbWVNb2RlPXt9KSkuYW55PVwiYW55XCIsby5kYXJrPVwiZGFya1wiLG8ubGlnaHQ9XCJsaWdodFwifSw1MTU6ZnVuY3Rpb24oZSx0LG8pe3ZhciByPXRoaXMmJnRoaXMuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihlLHQsbyxyKXt2b2lkIDA9PT1yJiYocj1vKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0W29dfX0pfTpmdW5jdGlvbihlLHQsbyxyKXt2b2lkIDA9PT1yJiYocj1vKSxlW3JdPXRbb119KSxuPXRoaXMmJnRoaXMuX19leHBvcnRTdGFyfHxmdW5jdGlvbihlLHQpe2Zvcih2YXIgbyBpbiBlKVwiZGVmYXVsdFwiPT09b3x8T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsbyl8fHIodCxlLG8pfTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxuKG8oMjUyKSx0KSxuKG8oMzMwKSx0KSxuKG8oMjA4KSx0KSxuKG8oMzQ5KSx0KSxuKG8oMTMwKSx0KSxuKG8oNTgxKSx0KSxuKG8oNjY3KSx0KSxuKG8oODU1KSx0KSxuKG8oNzAyKSx0KSxuKG8oMTY0KSx0KX0sNDc6KGUsdCk9Pnt2YXIgbztPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LkFsdGVyVHlwZT12b2lkIDAsKG89dC5BbHRlclR5cGV8fCh0LkFsdGVyVHlwZT17fSkpLmRhcmtlbj1cImRhcmtlblwiLG8uZW5saWdodGVuPVwiZW5saWdodGVuXCJ9LDY0OihlLHQpPT57dmFyIG87T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5EZXN0cm95VHlwZT12b2lkIDAsKG89dC5EZXN0cm95VHlwZXx8KHQuRGVzdHJveVR5cGU9e30pKS5ub25lPVwibm9uZVwiLG8ubWF4PVwibWF4XCIsby5taW49XCJtaW5cIn0sNzEyOihlLHQpPT57dmFyIG87T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5EaXZUeXBlPXZvaWQgMCwobz10LkRpdlR5cGV8fCh0LkRpdlR5cGU9e30pKS5jaXJjbGU9XCJjaXJjbGVcIixvLnJlY3RhbmdsZT1cInJlY3RhbmdsZVwifSw3NzooZSx0KT0+e3ZhciBvO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuRWFzaW5nVHlwZT12b2lkIDAsKG89dC5FYXNpbmdUeXBlfHwodC5FYXNpbmdUeXBlPXt9KSkuZWFzZU91dEJhY2s9XCJlYXNlLW91dC1iYWNrXCIsby5lYXNlT3V0Q2lyYz1cImVhc2Utb3V0LWNpcmNcIixvLmVhc2VPdXRDdWJpYz1cImVhc2Utb3V0LWN1YmljXCIsby5lYXNlT3V0UXVhZD1cImVhc2Utb3V0LXF1YWRcIixvLmVhc2VPdXRRdWFydD1cImVhc2Utb3V0LXF1YXJ0XCIsby5lYXNlT3V0UXVpbnQ9XCJlYXNlLW91dC1xdWludFwiLG8uZWFzZU91dEV4cG89XCJlYXNlLW91dC1leHBvXCIsby5lYXNlT3V0U2luZT1cImVhc2Utb3V0LXNpbmVcIn0sNTg5OihlLHQpPT57dmFyIG87T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5HcmFkaWVudFR5cGU9dm9pZCAwLChvPXQuR3JhZGllbnRUeXBlfHwodC5HcmFkaWVudFR5cGU9e30pKS5saW5lYXI9XCJsaW5lYXJcIixvLnJhZGlhbD1cInJhZGlhbFwiLG8ucmFuZG9tPVwicmFuZG9tXCJ9LDQ1NzooZSx0KT0+e3ZhciBvO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuSW50ZXJhY3RvclR5cGU9dm9pZCAwLChvPXQuSW50ZXJhY3RvclR5cGV8fCh0LkludGVyYWN0b3JUeXBlPXt9KSlbby5FeHRlcm5hbD0wXT1cIkV4dGVybmFsXCIsb1tvLlBhcnRpY2xlcz0xXT1cIlBhcnRpY2xlc1wifSw3OTY6KGUsdCk9Pnt2YXIgbztPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0Lk9yYml0VHlwZT12b2lkIDAsKG89dC5PcmJpdFR5cGV8fCh0Lk9yYml0VHlwZT17fSkpLmZyb250PVwiZnJvbnRcIixvLmJhY2s9XCJiYWNrXCJ9LDI0NzooZSx0KT0+e3ZhciBvO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuU2hhcGVUeXBlPXZvaWQgMCwobz10LlNoYXBlVHlwZXx8KHQuU2hhcGVUeXBlPXt9KSkuY2hhcj1cImNoYXJcIixvLmNoYXJhY3Rlcj1cImNoYXJhY3RlclwiLG8uY2lyY2xlPVwiY2lyY2xlXCIsby5lZGdlPVwiZWRnZVwiLG8uaW1hZ2U9XCJpbWFnZVwiLG8uaW1hZ2VzPVwiaW1hZ2VzXCIsby5saW5lPVwibGluZVwiLG8ucG9seWdvbj1cInBvbHlnb25cIixvLnNxdWFyZT1cInNxdWFyZVwiLG8uc3Rhcj1cInN0YXJcIixvLnRyaWFuZ2xlPVwidHJpYW5nbGVcIn0sNjc2OihlLHQpPT57dmFyIG87T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5TdGFydFZhbHVlVHlwZT12b2lkIDAsKG89dC5TdGFydFZhbHVlVHlwZXx8KHQuU3RhcnRWYWx1ZVR5cGU9e30pKS5tYXg9XCJtYXhcIixvLm1pbj1cIm1pblwiLG8ucmFuZG9tPVwicmFuZG9tXCJ9LDc5OTpmdW5jdGlvbihlLHQsbyl7dmFyIHI9dGhpcyYmdGhpcy5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKGUsdCxvLHIpe3ZvaWQgMD09PXImJihyPW8pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRbb119fSl9OmZ1bmN0aW9uKGUsdCxvLHIpe3ZvaWQgMD09PXImJihyPW8pLGVbcl09dFtvXX0pLG49dGhpcyYmdGhpcy5fX2V4cG9ydFN0YXJ8fGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBvIGluIGUpXCJkZWZhdWx0XCI9PT1vfHxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxvKXx8cih0LGUsbyl9O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLG4obyg0NyksdCksbihvKDY0KSx0KSxuKG8oNTg5KSx0KSxuKG8oNDU3KSx0KSxuKG8oMjQ3KSx0KSxuKG8oNjc2KSx0KSxuKG8oNzEyKSx0KSxuKG8oNzcpLHQpLG4obyg3OTYpLHQpfSw3MTc6ZnVuY3Rpb24oZSx0LG8pe3ZhciByPXRoaXMmJnRoaXMuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihlLHQsbyxyKXt2b2lkIDA9PT1yJiYocj1vKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0W29dfX0pfTpmdW5jdGlvbihlLHQsbyxyKXt2b2lkIDA9PT1yJiYocj1vKSxlW3JdPXRbb119KSxuPXRoaXMmJnRoaXMuX19leHBvcnRTdGFyfHxmdW5jdGlvbihlLHQpe2Zvcih2YXIgbyBpbiBlKVwiZGVmYXVsdFwiPT09b3x8T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsbyl8fHIodCxlLG8pfTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxuKG8oOTYxKSx0KSxuKG8oNTE1KSx0KSxuKG8oODY4KSx0KSxuKG8oNzk5KSx0KSxuKG8oOTc0KSx0KX19LHQ9e307ZnVuY3Rpb24gbyhyKXt2YXIgbj10W3JdO2lmKHZvaWQgMCE9PW4pcmV0dXJuIG4uZXhwb3J0czt2YXIgaT10W3JdPXtleHBvcnRzOnt9fTtyZXR1cm4gZVtyXS5jYWxsKGkuZXhwb3J0cyxpLGkuZXhwb3J0cyxvKSxpLmV4cG9ydHN9by5uPWU9Pnt2YXIgdD1lJiZlLl9fZXNNb2R1bGU/KCk9PmUuZGVmYXVsdDooKT0+ZTtyZXR1cm4gby5kKHQse2E6dH0pLHR9LG8uZD0oZSx0KT0+e2Zvcih2YXIgciBpbiB0KW8ubyh0LHIpJiYhby5vKGUscikmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHIse2VudW1lcmFibGU6ITAsZ2V0OnRbcl19KX0sby5vPShlLHQpPT5PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSx0KSxvLnI9ZT0+e1widW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC50b1N0cmluZ1RhZyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsU3ltYm9sLnRvU3RyaW5nVGFnLHt2YWx1ZTpcIk1vZHVsZVwifSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSl9O3ZhciByPXt9OygoKT0+e28ucihyKSxvLmQocix7ZGVmYXVsdDooKT0+aSxQYXJ0aWNsZXM6KCk9PmUuWn0pO3ZhciBlPW8oOTA0KSx0PW8oNzE3KSxuPXt9O2Zvcihjb25zdCBlIGluIHQpW1wiZGVmYXVsdFwiLFwiUGFydGljbGVzXCJdLmluZGV4T2YoZSk8MCYmKG5bZV09KCk9PnRbZV0pO28uZChyLG4pO2NvbnN0IGk9ZS5afSkoKTt2YXIgbj1leHBvcnRzO2Zvcih2YXIgaSBpbiByKW5baV09cltpXTtyLl9fZXNNb2R1bGUmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pfSkoKTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-tsparticles/cjs/particles.js\n"); + +/***/ }), + +/***/ "./node_modules/react-tsparticles/index.js": +/*!*************************************************!*\ + !*** ./node_modules/react-tsparticles/index.js ***! + \*************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("const ReactParticles = __webpack_require__(/*! ./cjs/particles */ \"./node_modules/react-tsparticles/cjs/particles.js\");\n\nfor (let key in ReactParticles) {\n ReactParticles.default[key] = ReactParticles[key];\n}\n\nmodule.exports = ReactParticles.default;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtdHNwYXJ0aWNsZXMvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQUEsdUJBQXVCLG1CQUFPLENBQUMsMEVBQWlCOztBQUVoRDtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXRzcGFydGljbGVzL2luZGV4LmpzPzMwZjQiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgUmVhY3RQYXJ0aWNsZXMgPSByZXF1aXJlKFwiLi9janMvcGFydGljbGVzXCIpO1xuXG5mb3IgKGxldCBrZXkgaW4gUmVhY3RQYXJ0aWNsZXMpIHtcbiAgICBSZWFjdFBhcnRpY2xlcy5kZWZhdWx0W2tleV0gPSBSZWFjdFBhcnRpY2xlc1trZXldO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0UGFydGljbGVzLmRlZmF1bHQ7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-tsparticles/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tiny-warning/dist/tiny-warning.esm.js": +/*!************************************************************!*\ + !*** ./node_modules/tiny-warning/dist/tiny-warning.esm.js ***! + \************************************************************/ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\nvar isProduction = \"development\" === 'production';\nfunction warning(condition, message) {\n if (!isProduction) {\n if (condition) {\n return;\n }\n\n var text = \"Warning: \" + message;\n\n if (typeof console !== 'undefined') {\n console.warn(text);\n }\n\n try {\n throw Error(text);\n } catch (x) {}\n }\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (warning);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdGlueS13YXJuaW5nL2Rpc3QvdGlueS13YXJuaW5nLmVzbS5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUEsbUJBQW1CLGFBQW9CO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7QUFFQSwrREFBZSxPQUFPLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3Rpbnktd2FybmluZy9kaXN0L3Rpbnktd2FybmluZy5lc20uanM/NGU0MiJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgaXNQcm9kdWN0aW9uID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJztcbmZ1bmN0aW9uIHdhcm5pbmcoY29uZGl0aW9uLCBtZXNzYWdlKSB7XG4gIGlmICghaXNQcm9kdWN0aW9uKSB7XG4gICAgaWYgKGNvbmRpdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciB0ZXh0ID0gXCJXYXJuaW5nOiBcIiArIG1lc3NhZ2U7XG5cbiAgICBpZiAodHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBjb25zb2xlLndhcm4odGV4dCk7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHRocm93IEVycm9yKHRleHQpO1xuICAgIH0gY2F0Y2ggKHgpIHt9XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgd2FybmluZztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tiny-warning/dist/tiny-warning.esm.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Canvas.js": +/*!*************************************************!*\ + !*** ./node_modules/tsparticles/Core/Canvas.js ***! + \*************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Canvas = void 0;\nconst Utils_1 = __webpack_require__(/*! ../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Utils_2 = __webpack_require__(/*! ../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass Canvas {\n constructor(container) {\n this.container = container;\n this.size = {\n height: 0,\n width: 0,\n };\n this.context = null;\n this.generatedCanvas = false;\n }\n init() {\n this.resize();\n this.initStyle();\n this.initCover();\n this.initTrail();\n this.initBackground();\n this.paint();\n }\n loadCanvas(canvas, generatedCanvas) {\n var _a;\n if (!canvas.className) {\n canvas.className = Utils_1.Constants.canvasClass;\n }\n if (this.generatedCanvas) {\n (_a = this.element) === null || _a === void 0 ? void 0 : _a.remove();\n }\n this.generatedCanvas = generatedCanvas !== null && generatedCanvas !== void 0 ? generatedCanvas : this.generatedCanvas;\n this.element = canvas;\n this.originalStyle = (0, Utils_1.deepExtend)({}, this.element.style);\n this.size.height = canvas.offsetHeight;\n this.size.width = canvas.offsetWidth;\n this.context = this.element.getContext(\"2d\");\n this.container.retina.init();\n this.initBackground();\n }\n destroy() {\n var _a;\n if (this.generatedCanvas) {\n (_a = this.element) === null || _a === void 0 ? void 0 : _a.remove();\n }\n this.draw((ctx) => {\n (0, Utils_2.clear)(ctx, this.size);\n });\n }\n paint() {\n const options = this.container.actualOptions;\n this.draw((ctx) => {\n if (options.backgroundMask.enable && options.backgroundMask.cover && this.coverColor) {\n (0, Utils_2.clear)(ctx, this.size);\n this.paintBase((0, Utils_1.getStyleFromRgb)(this.coverColor, this.coverColor.a));\n }\n else {\n this.paintBase();\n }\n });\n }\n clear() {\n const options = this.container.actualOptions;\n const trail = options.particles.move.trail;\n if (options.backgroundMask.enable) {\n this.paint();\n }\n else if (trail.enable && trail.length > 0 && this.trailFillColor) {\n this.paintBase((0, Utils_1.getStyleFromRgb)(this.trailFillColor, 1 / trail.length));\n }\n else {\n this.draw((ctx) => {\n (0, Utils_2.clear)(ctx, this.size);\n });\n }\n }\n windowResize() {\n if (!this.element) {\n return;\n }\n const container = this.container;\n this.resize();\n const needsRefresh = container.updateActualOptions();\n container.particles.setDensity();\n for (const [, plugin] of container.plugins) {\n if (plugin.resize !== undefined) {\n plugin.resize();\n }\n }\n if (needsRefresh) {\n container.refresh();\n }\n }\n resize() {\n if (!this.element) {\n return;\n }\n const container = this.container;\n const pxRatio = container.retina.pixelRatio;\n const size = container.canvas.size;\n const oldSize = {\n width: size.width,\n height: size.height,\n };\n size.width = this.element.offsetWidth * pxRatio;\n size.height = this.element.offsetHeight * pxRatio;\n this.element.width = size.width;\n this.element.height = size.height;\n if (this.container.started) {\n this.resizeFactor = {\n width: size.width / oldSize.width,\n height: size.height / oldSize.height,\n };\n }\n }\n drawConnectLine(p1, p2) {\n this.draw((ctx) => {\n var _a;\n const lineStyle = this.lineStyle(p1, p2);\n if (!lineStyle) {\n return;\n }\n const pos1 = p1.getPosition();\n const pos2 = p2.getPosition();\n (0, Utils_1.drawConnectLine)(ctx, (_a = p1.retina.linksWidth) !== null && _a !== void 0 ? _a : this.container.retina.linksWidth, lineStyle, pos1, pos2);\n });\n }\n drawGrabLine(particle, lineColor, opacity, mousePos) {\n const container = this.container;\n this.draw((ctx) => {\n var _a;\n const beginPos = particle.getPosition();\n (0, Utils_1.drawGrabLine)(ctx, (_a = particle.retina.linksWidth) !== null && _a !== void 0 ? _a : container.retina.linksWidth, beginPos, mousePos, lineColor, opacity);\n });\n }\n drawParticle(particle, delta) {\n var _a, _b, _c, _d, _e, _f;\n if (particle.spawning || particle.destroyed) {\n return;\n }\n const pfColor = particle.getFillColor();\n const psColor = (_a = particle.getStrokeColor()) !== null && _a !== void 0 ? _a : pfColor;\n if (!pfColor && !psColor) {\n return;\n }\n let [fColor, sColor] = this.getPluginParticleColors(particle);\n const pOptions = particle.options;\n const twinkle = pOptions.twinkle.particles;\n const twinkling = twinkle.enable && Math.random() < twinkle.frequency;\n if (!fColor || !sColor) {\n const twinkleRgb = (0, Utils_1.colorToHsl)(twinkle.color);\n if (!fColor) {\n fColor = twinkling && twinkleRgb !== undefined ? twinkleRgb : pfColor ? pfColor : undefined;\n }\n if (!sColor) {\n sColor = twinkling && twinkleRgb !== undefined ? twinkleRgb : psColor ? psColor : undefined;\n }\n }\n const options = this.container.actualOptions;\n const zIndexOptions = particle.options.zIndex;\n const zOpacityFactor = (1 - particle.zIndexFactor) ** zIndexOptions.opacityRate;\n const radius = particle.getRadius();\n const opacity = twinkling ? twinkle.opacity : (_d = (_b = particle.bubble.opacity) !== null && _b !== void 0 ? _b : (_c = particle.opacity) === null || _c === void 0 ? void 0 : _c.value) !== null && _d !== void 0 ? _d : 1;\n const strokeOpacity = (_f = (_e = particle.stroke) === null || _e === void 0 ? void 0 : _e.opacity) !== null && _f !== void 0 ? _f : opacity;\n const zOpacity = opacity * zOpacityFactor;\n const fillColorValue = fColor ? (0, Utils_1.getStyleFromHsl)(fColor, zOpacity) : undefined;\n if (!fillColorValue && !sColor) {\n return;\n }\n this.draw((ctx) => {\n const zSizeFactor = (1 - particle.zIndexFactor) ** zIndexOptions.sizeRate;\n const zStrokeOpacity = strokeOpacity * zOpacityFactor;\n const strokeColorValue = sColor ? (0, Utils_1.getStyleFromHsl)(sColor, zStrokeOpacity) : fillColorValue;\n if (radius <= 0) {\n return;\n }\n const container = this.container;\n for (const updater of container.particles.updaters) {\n if (updater.beforeDraw) {\n updater.beforeDraw(particle);\n }\n }\n (0, Utils_1.drawParticle)(this.container, ctx, particle, delta, fillColorValue, strokeColorValue, options.backgroundMask.enable, options.backgroundMask.composite, radius * zSizeFactor, zOpacity, particle.options.shadow, particle.gradient);\n for (const updater of container.particles.updaters) {\n if (updater.afterDraw) {\n updater.afterDraw(particle);\n }\n }\n });\n }\n drawPlugin(plugin, delta) {\n this.draw((ctx) => {\n (0, Utils_1.drawPlugin)(ctx, plugin, delta);\n });\n }\n drawParticlePlugin(plugin, particle, delta) {\n this.draw((ctx) => {\n (0, Utils_1.drawParticlePlugin)(ctx, plugin, particle, delta);\n });\n }\n initBackground() {\n const options = this.container.actualOptions;\n const background = options.background;\n const element = this.element;\n const elementStyle = element === null || element === void 0 ? void 0 : element.style;\n if (!elementStyle) {\n return;\n }\n if (background.color) {\n const color = (0, Utils_1.colorToRgb)(background.color);\n elementStyle.backgroundColor = color ? (0, Utils_1.getStyleFromRgb)(color, background.opacity) : \"\";\n }\n else {\n elementStyle.backgroundColor = \"\";\n }\n elementStyle.backgroundImage = background.image || \"\";\n elementStyle.backgroundPosition = background.position || \"\";\n elementStyle.backgroundRepeat = background.repeat || \"\";\n elementStyle.backgroundSize = background.size || \"\";\n }\n draw(cb) {\n if (!this.context) {\n return;\n }\n return cb(this.context);\n }\n initCover() {\n const options = this.container.actualOptions;\n const cover = options.backgroundMask.cover;\n const color = cover.color;\n const coverRgb = (0, Utils_1.colorToRgb)(color);\n if (coverRgb) {\n this.coverColor = {\n r: coverRgb.r,\n g: coverRgb.g,\n b: coverRgb.b,\n a: cover.opacity,\n };\n }\n }\n initTrail() {\n const options = this.container.actualOptions;\n const trail = options.particles.move.trail;\n const fillColor = (0, Utils_1.colorToRgb)(trail.fillColor);\n if (fillColor) {\n const trail = options.particles.move.trail;\n this.trailFillColor = {\n r: fillColor.r,\n g: fillColor.g,\n b: fillColor.b,\n a: 1 / trail.length,\n };\n }\n }\n getPluginParticleColors(particle) {\n let fColor;\n let sColor;\n for (const [, plugin] of this.container.plugins) {\n if (!fColor && plugin.particleFillColor) {\n fColor = (0, Utils_1.colorToHsl)(plugin.particleFillColor(particle));\n }\n if (!sColor && plugin.particleStrokeColor) {\n sColor = (0, Utils_1.colorToHsl)(plugin.particleStrokeColor(particle));\n }\n if (fColor && sColor) {\n break;\n }\n }\n return [fColor, sColor];\n }\n initStyle() {\n const element = this.element, options = this.container.actualOptions;\n if (!element) {\n return;\n }\n const originalStyle = this.originalStyle;\n if (options.fullScreen.enable) {\n this.originalStyle = (0, Utils_1.deepExtend)({}, element.style);\n element.style.position = \"fixed\";\n element.style.zIndex = options.fullScreen.zIndex.toString(10);\n element.style.top = \"0\";\n element.style.left = \"0\";\n element.style.width = \"100%\";\n element.style.height = \"100%\";\n }\n else if (originalStyle) {\n element.style.position = originalStyle.position;\n element.style.zIndex = originalStyle.zIndex;\n element.style.top = originalStyle.top;\n element.style.left = originalStyle.left;\n element.style.width = originalStyle.width;\n element.style.height = originalStyle.height;\n }\n }\n paintBase(baseColor) {\n this.draw((ctx) => {\n (0, Utils_1.paintBase)(ctx, this.size, baseColor);\n });\n }\n lineStyle(p1, p2) {\n return this.draw((ctx) => {\n const options = this.container.actualOptions;\n const connectOptions = options.interactivity.modes.connect;\n return (0, Utils_1.gradient)(ctx, p1, p2, connectOptions.links.opacity);\n });\n }\n}\nexports.Canvas = Canvas;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9DYW52YXMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsY0FBYztBQUNkLGdCQUFnQixtQkFBTyxDQUFDLDJEQUFVO0FBQ2xDLGdCQUFnQixtQkFBTyxDQUFDLDJEQUFVO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdURBQXVEO0FBQ3ZEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyREFBMkQ7QUFDM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxjQUFjIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9Db3JlL0NhbnZhcy5qcz82MzU0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5DYW52YXMgPSB2b2lkIDA7XG5jb25zdCBVdGlsc18xID0gcmVxdWlyZShcIi4uL1V0aWxzXCIpO1xuY29uc3QgVXRpbHNfMiA9IHJlcXVpcmUoXCIuLi9VdGlsc1wiKTtcbmNsYXNzIENhbnZhcyB7XG4gICAgY29uc3RydWN0b3IoY29udGFpbmVyKSB7XG4gICAgICAgIHRoaXMuY29udGFpbmVyID0gY29udGFpbmVyO1xuICAgICAgICB0aGlzLnNpemUgPSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDAsXG4gICAgICAgICAgICB3aWR0aDogMCxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5jb250ZXh0ID0gbnVsbDtcbiAgICAgICAgdGhpcy5nZW5lcmF0ZWRDYW52YXMgPSBmYWxzZTtcbiAgICB9XG4gICAgaW5pdCgpIHtcbiAgICAgICAgdGhpcy5yZXNpemUoKTtcbiAgICAgICAgdGhpcy5pbml0U3R5bGUoKTtcbiAgICAgICAgdGhpcy5pbml0Q292ZXIoKTtcbiAgICAgICAgdGhpcy5pbml0VHJhaWwoKTtcbiAgICAgICAgdGhpcy5pbml0QmFja2dyb3VuZCgpO1xuICAgICAgICB0aGlzLnBhaW50KCk7XG4gICAgfVxuICAgIGxvYWRDYW52YXMoY2FudmFzLCBnZW5lcmF0ZWRDYW52YXMpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoIWNhbnZhcy5jbGFzc05hbWUpIHtcbiAgICAgICAgICAgIGNhbnZhcy5jbGFzc05hbWUgPSBVdGlsc18xLkNvbnN0YW50cy5jYW52YXNDbGFzcztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5nZW5lcmF0ZWRDYW52YXMpIHtcbiAgICAgICAgICAgIChfYSA9IHRoaXMuZWxlbWVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnJlbW92ZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZ2VuZXJhdGVkQ2FudmFzID0gZ2VuZXJhdGVkQ2FudmFzICE9PSBudWxsICYmIGdlbmVyYXRlZENhbnZhcyAhPT0gdm9pZCAwID8gZ2VuZXJhdGVkQ2FudmFzIDogdGhpcy5nZW5lcmF0ZWRDYW52YXM7XG4gICAgICAgIHRoaXMuZWxlbWVudCA9IGNhbnZhcztcbiAgICAgICAgdGhpcy5vcmlnaW5hbFN0eWxlID0gKDAsIFV0aWxzXzEuZGVlcEV4dGVuZCkoe30sIHRoaXMuZWxlbWVudC5zdHlsZSk7XG4gICAgICAgIHRoaXMuc2l6ZS5oZWlnaHQgPSBjYW52YXMub2Zmc2V0SGVpZ2h0O1xuICAgICAgICB0aGlzLnNpemUud2lkdGggPSBjYW52YXMub2Zmc2V0V2lkdGg7XG4gICAgICAgIHRoaXMuY29udGV4dCA9IHRoaXMuZWxlbWVudC5nZXRDb250ZXh0KFwiMmRcIik7XG4gICAgICAgIHRoaXMuY29udGFpbmVyLnJldGluYS5pbml0KCk7XG4gICAgICAgIHRoaXMuaW5pdEJhY2tncm91bmQoKTtcbiAgICB9XG4gICAgZGVzdHJveSgpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAodGhpcy5nZW5lcmF0ZWRDYW52YXMpIHtcbiAgICAgICAgICAgIChfYSA9IHRoaXMuZWxlbWVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnJlbW92ZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZHJhdygoY3R4KSA9PiB7XG4gICAgICAgICAgICAoMCwgVXRpbHNfMi5jbGVhcikoY3R4LCB0aGlzLnNpemUpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgcGFpbnQoKSB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmNvbnRhaW5lci5hY3R1YWxPcHRpb25zO1xuICAgICAgICB0aGlzLmRyYXcoKGN0eCkgPT4ge1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMuYmFja2dyb3VuZE1hc2suZW5hYmxlICYmIG9wdGlvbnMuYmFja2dyb3VuZE1hc2suY292ZXIgJiYgdGhpcy5jb3ZlckNvbG9yKSB7XG4gICAgICAgICAgICAgICAgKDAsIFV0aWxzXzIuY2xlYXIpKGN0eCwgdGhpcy5zaXplKTtcbiAgICAgICAgICAgICAgICB0aGlzLnBhaW50QmFzZSgoMCwgVXRpbHNfMS5nZXRTdHlsZUZyb21SZ2IpKHRoaXMuY292ZXJDb2xvciwgdGhpcy5jb3ZlckNvbG9yLmEpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMucGFpbnRCYXNlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjbGVhcigpIHtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuY29udGFpbmVyLmFjdHVhbE9wdGlvbnM7XG4gICAgICAgIGNvbnN0IHRyYWlsID0gb3B0aW9ucy5wYXJ0aWNsZXMubW92ZS50cmFpbDtcbiAgICAgICAgaWYgKG9wdGlvbnMuYmFja2dyb3VuZE1hc2suZW5hYmxlKSB7XG4gICAgICAgICAgICB0aGlzLnBhaW50KCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodHJhaWwuZW5hYmxlICYmIHRyYWlsLmxlbmd0aCA+IDAgJiYgdGhpcy50cmFpbEZpbGxDb2xvcikge1xuICAgICAgICAgICAgdGhpcy5wYWludEJhc2UoKDAsIFV0aWxzXzEuZ2V0U3R5bGVGcm9tUmdiKSh0aGlzLnRyYWlsRmlsbENvbG9yLCAxIC8gdHJhaWwubGVuZ3RoKSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRyYXcoKGN0eCkgPT4ge1xuICAgICAgICAgICAgICAgICgwLCBVdGlsc18yLmNsZWFyKShjdHgsIHRoaXMuc2l6ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB3aW5kb3dSZXNpemUoKSB7XG4gICAgICAgIGlmICghdGhpcy5lbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXI7XG4gICAgICAgIHRoaXMucmVzaXplKCk7XG4gICAgICAgIGNvbnN0IG5lZWRzUmVmcmVzaCA9IGNvbnRhaW5lci51cGRhdGVBY3R1YWxPcHRpb25zKCk7XG4gICAgICAgIGNvbnRhaW5lci5wYXJ0aWNsZXMuc2V0RGVuc2l0eSgpO1xuICAgICAgICBmb3IgKGNvbnN0IFssIHBsdWdpbl0gb2YgY29udGFpbmVyLnBsdWdpbnMpIHtcbiAgICAgICAgICAgIGlmIChwbHVnaW4ucmVzaXplICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBwbHVnaW4ucmVzaXplKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5lZWRzUmVmcmVzaCkge1xuICAgICAgICAgICAgY29udGFpbmVyLnJlZnJlc2goKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXNpemUoKSB7XG4gICAgICAgIGlmICghdGhpcy5lbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXI7XG4gICAgICAgIGNvbnN0IHB4UmF0aW8gPSBjb250YWluZXIucmV0aW5hLnBpeGVsUmF0aW87XG4gICAgICAgIGNvbnN0IHNpemUgPSBjb250YWluZXIuY2FudmFzLnNpemU7XG4gICAgICAgIGNvbnN0IG9sZFNpemUgPSB7XG4gICAgICAgICAgICB3aWR0aDogc2l6ZS53aWR0aCxcbiAgICAgICAgICAgIGhlaWdodDogc2l6ZS5oZWlnaHQsXG4gICAgICAgIH07XG4gICAgICAgIHNpemUud2lkdGggPSB0aGlzLmVsZW1lbnQub2Zmc2V0V2lkdGggKiBweFJhdGlvO1xuICAgICAgICBzaXplLmhlaWdodCA9IHRoaXMuZWxlbWVudC5vZmZzZXRIZWlnaHQgKiBweFJhdGlvO1xuICAgICAgICB0aGlzLmVsZW1lbnQud2lkdGggPSBzaXplLndpZHRoO1xuICAgICAgICB0aGlzLmVsZW1lbnQuaGVpZ2h0ID0gc2l6ZS5oZWlnaHQ7XG4gICAgICAgIGlmICh0aGlzLmNvbnRhaW5lci5zdGFydGVkKSB7XG4gICAgICAgICAgICB0aGlzLnJlc2l6ZUZhY3RvciA9IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogc2l6ZS53aWR0aCAvIG9sZFNpemUud2lkdGgsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBzaXplLmhlaWdodCAvIG9sZFNpemUuaGVpZ2h0LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBkcmF3Q29ubmVjdExpbmUocDEsIHAyKSB7XG4gICAgICAgIHRoaXMuZHJhdygoY3R4KSA9PiB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICBjb25zdCBsaW5lU3R5bGUgPSB0aGlzLmxpbmVTdHlsZShwMSwgcDIpO1xuICAgICAgICAgICAgaWYgKCFsaW5lU3R5bGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBwb3MxID0gcDEuZ2V0UG9zaXRpb24oKTtcbiAgICAgICAgICAgIGNvbnN0IHBvczIgPSBwMi5nZXRQb3NpdGlvbigpO1xuICAgICAgICAgICAgKDAsIFV0aWxzXzEuZHJhd0Nvbm5lY3RMaW5lKShjdHgsIChfYSA9IHAxLnJldGluYS5saW5rc1dpZHRoKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB0aGlzLmNvbnRhaW5lci5yZXRpbmEubGlua3NXaWR0aCwgbGluZVN0eWxlLCBwb3MxLCBwb3MyKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGRyYXdHcmFiTGluZShwYXJ0aWNsZSwgbGluZUNvbG9yLCBvcGFjaXR5LCBtb3VzZVBvcykge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgdGhpcy5kcmF3KChjdHgpID0+IHtcbiAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgIGNvbnN0IGJlZ2luUG9zID0gcGFydGljbGUuZ2V0UG9zaXRpb24oKTtcbiAgICAgICAgICAgICgwLCBVdGlsc18xLmRyYXdHcmFiTGluZSkoY3R4LCAoX2EgPSBwYXJ0aWNsZS5yZXRpbmEubGlua3NXaWR0aCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogY29udGFpbmVyLnJldGluYS5saW5rc1dpZHRoLCBiZWdpblBvcywgbW91c2VQb3MsIGxpbmVDb2xvciwgb3BhY2l0eSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBkcmF3UGFydGljbGUocGFydGljbGUsIGRlbHRhKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZCwgX2UsIF9mO1xuICAgICAgICBpZiAocGFydGljbGUuc3Bhd25pbmcgfHwgcGFydGljbGUuZGVzdHJveWVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGZDb2xvciA9IHBhcnRpY2xlLmdldEZpbGxDb2xvcigpO1xuICAgICAgICBjb25zdCBwc0NvbG9yID0gKF9hID0gcGFydGljbGUuZ2V0U3Ryb2tlQ29sb3IoKSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogcGZDb2xvcjtcbiAgICAgICAgaWYgKCFwZkNvbG9yICYmICFwc0NvbG9yKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbGV0IFtmQ29sb3IsIHNDb2xvcl0gPSB0aGlzLmdldFBsdWdpblBhcnRpY2xlQ29sb3JzKHBhcnRpY2xlKTtcbiAgICAgICAgY29uc3QgcE9wdGlvbnMgPSBwYXJ0aWNsZS5vcHRpb25zO1xuICAgICAgICBjb25zdCB0d2lua2xlID0gcE9wdGlvbnMudHdpbmtsZS5wYXJ0aWNsZXM7XG4gICAgICAgIGNvbnN0IHR3aW5rbGluZyA9IHR3aW5rbGUuZW5hYmxlICYmIE1hdGgucmFuZG9tKCkgPCB0d2lua2xlLmZyZXF1ZW5jeTtcbiAgICAgICAgaWYgKCFmQ29sb3IgfHwgIXNDb2xvcikge1xuICAgICAgICAgICAgY29uc3QgdHdpbmtsZVJnYiA9ICgwLCBVdGlsc18xLmNvbG9yVG9Ic2wpKHR3aW5rbGUuY29sb3IpO1xuICAgICAgICAgICAgaWYgKCFmQ29sb3IpIHtcbiAgICAgICAgICAgICAgICBmQ29sb3IgPSB0d2lua2xpbmcgJiYgdHdpbmtsZVJnYiAhPT0gdW5kZWZpbmVkID8gdHdpbmtsZVJnYiA6IHBmQ29sb3IgPyBwZkNvbG9yIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFzQ29sb3IpIHtcbiAgICAgICAgICAgICAgICBzQ29sb3IgPSB0d2lua2xpbmcgJiYgdHdpbmtsZVJnYiAhPT0gdW5kZWZpbmVkID8gdHdpbmtsZVJnYiA6IHBzQ29sb3IgPyBwc0NvbG9yIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmNvbnRhaW5lci5hY3R1YWxPcHRpb25zO1xuICAgICAgICBjb25zdCB6SW5kZXhPcHRpb25zID0gcGFydGljbGUub3B0aW9ucy56SW5kZXg7XG4gICAgICAgIGNvbnN0IHpPcGFjaXR5RmFjdG9yID0gKDEgLSBwYXJ0aWNsZS56SW5kZXhGYWN0b3IpICoqIHpJbmRleE9wdGlvbnMub3BhY2l0eVJhdGU7XG4gICAgICAgIGNvbnN0IHJhZGl1cyA9IHBhcnRpY2xlLmdldFJhZGl1cygpO1xuICAgICAgICBjb25zdCBvcGFjaXR5ID0gdHdpbmtsaW5nID8gdHdpbmtsZS5vcGFjaXR5IDogKF9kID0gKF9iID0gcGFydGljbGUuYnViYmxlLm9wYWNpdHkpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IChfYyA9IHBhcnRpY2xlLm9wYWNpdHkpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy52YWx1ZSkgIT09IG51bGwgJiYgX2QgIT09IHZvaWQgMCA/IF9kIDogMTtcbiAgICAgICAgY29uc3Qgc3Ryb2tlT3BhY2l0eSA9IChfZiA9IChfZSA9IHBhcnRpY2xlLnN0cm9rZSkgPT09IG51bGwgfHwgX2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9lLm9wYWNpdHkpICE9PSBudWxsICYmIF9mICE9PSB2b2lkIDAgPyBfZiA6IG9wYWNpdHk7XG4gICAgICAgIGNvbnN0IHpPcGFjaXR5ID0gb3BhY2l0eSAqIHpPcGFjaXR5RmFjdG9yO1xuICAgICAgICBjb25zdCBmaWxsQ29sb3JWYWx1ZSA9IGZDb2xvciA/ICgwLCBVdGlsc18xLmdldFN0eWxlRnJvbUhzbCkoZkNvbG9yLCB6T3BhY2l0eSkgOiB1bmRlZmluZWQ7XG4gICAgICAgIGlmICghZmlsbENvbG9yVmFsdWUgJiYgIXNDb2xvcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZHJhdygoY3R4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB6U2l6ZUZhY3RvciA9ICgxIC0gcGFydGljbGUuekluZGV4RmFjdG9yKSAqKiB6SW5kZXhPcHRpb25zLnNpemVSYXRlO1xuICAgICAgICAgICAgY29uc3QgelN0cm9rZU9wYWNpdHkgPSBzdHJva2VPcGFjaXR5ICogek9wYWNpdHlGYWN0b3I7XG4gICAgICAgICAgICBjb25zdCBzdHJva2VDb2xvclZhbHVlID0gc0NvbG9yID8gKDAsIFV0aWxzXzEuZ2V0U3R5bGVGcm9tSHNsKShzQ29sb3IsIHpTdHJva2VPcGFjaXR5KSA6IGZpbGxDb2xvclZhbHVlO1xuICAgICAgICAgICAgaWYgKHJhZGl1cyA8PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXI7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHVwZGF0ZXIgb2YgY29udGFpbmVyLnBhcnRpY2xlcy51cGRhdGVycykge1xuICAgICAgICAgICAgICAgIGlmICh1cGRhdGVyLmJlZm9yZURyYXcpIHtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlci5iZWZvcmVEcmF3KHBhcnRpY2xlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAoMCwgVXRpbHNfMS5kcmF3UGFydGljbGUpKHRoaXMuY29udGFpbmVyLCBjdHgsIHBhcnRpY2xlLCBkZWx0YSwgZmlsbENvbG9yVmFsdWUsIHN0cm9rZUNvbG9yVmFsdWUsIG9wdGlvbnMuYmFja2dyb3VuZE1hc2suZW5hYmxlLCBvcHRpb25zLmJhY2tncm91bmRNYXNrLmNvbXBvc2l0ZSwgcmFkaXVzICogelNpemVGYWN0b3IsIHpPcGFjaXR5LCBwYXJ0aWNsZS5vcHRpb25zLnNoYWRvdywgcGFydGljbGUuZ3JhZGllbnQpO1xuICAgICAgICAgICAgZm9yIChjb25zdCB1cGRhdGVyIG9mIGNvbnRhaW5lci5wYXJ0aWNsZXMudXBkYXRlcnMpIHtcbiAgICAgICAgICAgICAgICBpZiAodXBkYXRlci5hZnRlckRyYXcpIHtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlci5hZnRlckRyYXcocGFydGljbGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGRyYXdQbHVnaW4ocGx1Z2luLCBkZWx0YSkge1xuICAgICAgICB0aGlzLmRyYXcoKGN0eCkgPT4ge1xuICAgICAgICAgICAgKDAsIFV0aWxzXzEuZHJhd1BsdWdpbikoY3R4LCBwbHVnaW4sIGRlbHRhKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGRyYXdQYXJ0aWNsZVBsdWdpbihwbHVnaW4sIHBhcnRpY2xlLCBkZWx0YSkge1xuICAgICAgICB0aGlzLmRyYXcoKGN0eCkgPT4ge1xuICAgICAgICAgICAgKDAsIFV0aWxzXzEuZHJhd1BhcnRpY2xlUGx1Z2luKShjdHgsIHBsdWdpbiwgcGFydGljbGUsIGRlbHRhKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGluaXRCYWNrZ3JvdW5kKCkge1xuICAgICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5jb250YWluZXIuYWN0dWFsT3B0aW9ucztcbiAgICAgICAgY29uc3QgYmFja2dyb3VuZCA9IG9wdGlvbnMuYmFja2dyb3VuZDtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgY29uc3QgZWxlbWVudFN0eWxlID0gZWxlbWVudCA9PT0gbnVsbCB8fCBlbGVtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlbGVtZW50LnN0eWxlO1xuICAgICAgICBpZiAoIWVsZW1lbnRTdHlsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChiYWNrZ3JvdW5kLmNvbG9yKSB7XG4gICAgICAgICAgICBjb25zdCBjb2xvciA9ICgwLCBVdGlsc18xLmNvbG9yVG9SZ2IpKGJhY2tncm91bmQuY29sb3IpO1xuICAgICAgICAgICAgZWxlbWVudFN0eWxlLmJhY2tncm91bmRDb2xvciA9IGNvbG9yID8gKDAsIFV0aWxzXzEuZ2V0U3R5bGVGcm9tUmdiKShjb2xvciwgYmFja2dyb3VuZC5vcGFjaXR5KSA6IFwiXCI7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBlbGVtZW50U3R5bGUuYmFja2dyb3VuZENvbG9yID0gXCJcIjtcbiAgICAgICAgfVxuICAgICAgICBlbGVtZW50U3R5bGUuYmFja2dyb3VuZEltYWdlID0gYmFja2dyb3VuZC5pbWFnZSB8fCBcIlwiO1xuICAgICAgICBlbGVtZW50U3R5bGUuYmFja2dyb3VuZFBvc2l0aW9uID0gYmFja2dyb3VuZC5wb3NpdGlvbiB8fCBcIlwiO1xuICAgICAgICBlbGVtZW50U3R5bGUuYmFja2dyb3VuZFJlcGVhdCA9IGJhY2tncm91bmQucmVwZWF0IHx8IFwiXCI7XG4gICAgICAgIGVsZW1lbnRTdHlsZS5iYWNrZ3JvdW5kU2l6ZSA9IGJhY2tncm91bmQuc2l6ZSB8fCBcIlwiO1xuICAgIH1cbiAgICBkcmF3KGNiKSB7XG4gICAgICAgIGlmICghdGhpcy5jb250ZXh0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNiKHRoaXMuY29udGV4dCk7XG4gICAgfVxuICAgIGluaXRDb3ZlcigpIHtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuY29udGFpbmVyLmFjdHVhbE9wdGlvbnM7XG4gICAgICAgIGNvbnN0IGNvdmVyID0gb3B0aW9ucy5iYWNrZ3JvdW5kTWFzay5jb3ZlcjtcbiAgICAgICAgY29uc3QgY29sb3IgPSBjb3Zlci5jb2xvcjtcbiAgICAgICAgY29uc3QgY292ZXJSZ2IgPSAoMCwgVXRpbHNfMS5jb2xvclRvUmdiKShjb2xvcik7XG4gICAgICAgIGlmIChjb3ZlclJnYikge1xuICAgICAgICAgICAgdGhpcy5jb3ZlckNvbG9yID0ge1xuICAgICAgICAgICAgICAgIHI6IGNvdmVyUmdiLnIsXG4gICAgICAgICAgICAgICAgZzogY292ZXJSZ2IuZyxcbiAgICAgICAgICAgICAgICBiOiBjb3ZlclJnYi5iLFxuICAgICAgICAgICAgICAgIGE6IGNvdmVyLm9wYWNpdHksXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuICAgIGluaXRUcmFpbCgpIHtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuY29udGFpbmVyLmFjdHVhbE9wdGlvbnM7XG4gICAgICAgIGNvbnN0IHRyYWlsID0gb3B0aW9ucy5wYXJ0aWNsZXMubW92ZS50cmFpbDtcbiAgICAgICAgY29uc3QgZmlsbENvbG9yID0gKDAsIFV0aWxzXzEuY29sb3JUb1JnYikodHJhaWwuZmlsbENvbG9yKTtcbiAgICAgICAgaWYgKGZpbGxDb2xvcikge1xuICAgICAgICAgICAgY29uc3QgdHJhaWwgPSBvcHRpb25zLnBhcnRpY2xlcy5tb3ZlLnRyYWlsO1xuICAgICAgICAgICAgdGhpcy50cmFpbEZpbGxDb2xvciA9IHtcbiAgICAgICAgICAgICAgICByOiBmaWxsQ29sb3IucixcbiAgICAgICAgICAgICAgICBnOiBmaWxsQ29sb3IuZyxcbiAgICAgICAgICAgICAgICBiOiBmaWxsQ29sb3IuYixcbiAgICAgICAgICAgICAgICBhOiAxIC8gdHJhaWwubGVuZ3RoLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXRQbHVnaW5QYXJ0aWNsZUNvbG9ycyhwYXJ0aWNsZSkge1xuICAgICAgICBsZXQgZkNvbG9yO1xuICAgICAgICBsZXQgc0NvbG9yO1xuICAgICAgICBmb3IgKGNvbnN0IFssIHBsdWdpbl0gb2YgdGhpcy5jb250YWluZXIucGx1Z2lucykge1xuICAgICAgICAgICAgaWYgKCFmQ29sb3IgJiYgcGx1Z2luLnBhcnRpY2xlRmlsbENvbG9yKSB7XG4gICAgICAgICAgICAgICAgZkNvbG9yID0gKDAsIFV0aWxzXzEuY29sb3JUb0hzbCkocGx1Z2luLnBhcnRpY2xlRmlsbENvbG9yKHBhcnRpY2xlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXNDb2xvciAmJiBwbHVnaW4ucGFydGljbGVTdHJva2VDb2xvcikge1xuICAgICAgICAgICAgICAgIHNDb2xvciA9ICgwLCBVdGlsc18xLmNvbG9yVG9Ic2wpKHBsdWdpbi5wYXJ0aWNsZVN0cm9rZUNvbG9yKHBhcnRpY2xlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZkNvbG9yICYmIHNDb2xvcikge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbZkNvbG9yLCBzQ29sb3JdO1xuICAgIH1cbiAgICBpbml0U3R5bGUoKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmVsZW1lbnQsIG9wdGlvbnMgPSB0aGlzLmNvbnRhaW5lci5hY3R1YWxPcHRpb25zO1xuICAgICAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvcmlnaW5hbFN0eWxlID0gdGhpcy5vcmlnaW5hbFN0eWxlO1xuICAgICAgICBpZiAob3B0aW9ucy5mdWxsU2NyZWVuLmVuYWJsZSkge1xuICAgICAgICAgICAgdGhpcy5vcmlnaW5hbFN0eWxlID0gKDAsIFV0aWxzXzEuZGVlcEV4dGVuZCkoe30sIGVsZW1lbnQuc3R5bGUpO1xuICAgICAgICAgICAgZWxlbWVudC5zdHlsZS5wb3NpdGlvbiA9IFwiZml4ZWRcIjtcbiAgICAgICAgICAgIGVsZW1lbnQuc3R5bGUuekluZGV4ID0gb3B0aW9ucy5mdWxsU2NyZWVuLnpJbmRleC50b1N0cmluZygxMCk7XG4gICAgICAgICAgICBlbGVtZW50LnN0eWxlLnRvcCA9IFwiMFwiO1xuICAgICAgICAgICAgZWxlbWVudC5zdHlsZS5sZWZ0ID0gXCIwXCI7XG4gICAgICAgICAgICBlbGVtZW50LnN0eWxlLndpZHRoID0gXCIxMDAlXCI7XG4gICAgICAgICAgICBlbGVtZW50LnN0eWxlLmhlaWdodCA9IFwiMTAwJVwiO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG9yaWdpbmFsU3R5bGUpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuc3R5bGUucG9zaXRpb24gPSBvcmlnaW5hbFN0eWxlLnBvc2l0aW9uO1xuICAgICAgICAgICAgZWxlbWVudC5zdHlsZS56SW5kZXggPSBvcmlnaW5hbFN0eWxlLnpJbmRleDtcbiAgICAgICAgICAgIGVsZW1lbnQuc3R5bGUudG9wID0gb3JpZ2luYWxTdHlsZS50b3A7XG4gICAgICAgICAgICBlbGVtZW50LnN0eWxlLmxlZnQgPSBvcmlnaW5hbFN0eWxlLmxlZnQ7XG4gICAgICAgICAgICBlbGVtZW50LnN0eWxlLndpZHRoID0gb3JpZ2luYWxTdHlsZS53aWR0aDtcbiAgICAgICAgICAgIGVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gb3JpZ2luYWxTdHlsZS5oZWlnaHQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcGFpbnRCYXNlKGJhc2VDb2xvcikge1xuICAgICAgICB0aGlzLmRyYXcoKGN0eCkgPT4ge1xuICAgICAgICAgICAgKDAsIFV0aWxzXzEucGFpbnRCYXNlKShjdHgsIHRoaXMuc2l6ZSwgYmFzZUNvbG9yKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGxpbmVTdHlsZShwMSwgcDIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZHJhdygoY3R4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5jb250YWluZXIuYWN0dWFsT3B0aW9ucztcbiAgICAgICAgICAgIGNvbnN0IGNvbm5lY3RPcHRpb25zID0gb3B0aW9ucy5pbnRlcmFjdGl2aXR5Lm1vZGVzLmNvbm5lY3Q7XG4gICAgICAgICAgICByZXR1cm4gKDAsIFV0aWxzXzEuZ3JhZGllbnQpKGN0eCwgcDEsIHAyLCBjb25uZWN0T3B0aW9ucy5saW5rcy5vcGFjaXR5KTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuZXhwb3J0cy5DYW52YXMgPSBDYW52YXM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Canvas.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Container.js": +/*!****************************************************!*\ + !*** ./node_modules/tsparticles/Core/Container.js ***! + \****************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Container = void 0;\nconst Canvas_1 = __webpack_require__(/*! ./Canvas */ \"./node_modules/tsparticles/Core/Canvas.js\");\nconst Particles_1 = __webpack_require__(/*! ./Particles */ \"./node_modules/tsparticles/Core/Particles.js\");\nconst Retina_1 = __webpack_require__(/*! ./Retina */ \"./node_modules/tsparticles/Core/Retina.js\");\nconst FrameManager_1 = __webpack_require__(/*! ./FrameManager */ \"./node_modules/tsparticles/Core/FrameManager.js\");\nconst Options_1 = __webpack_require__(/*! ../Options/Classes/Options */ \"./node_modules/tsparticles/Options/Classes/Options.js\");\nconst Utils_1 = __webpack_require__(/*! ../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Vector_1 = __webpack_require__(/*! ./Particle/Vector */ \"./node_modules/tsparticles/Core/Particle/Vector.js\");\nclass Container {\n constructor(id, sourceOptions, ...presets) {\n this.id = id;\n this.fpsLimit = 60;\n this.duration = 0;\n this.lifeTime = 0;\n this.firstStart = true;\n this.started = false;\n this.destroyed = false;\n this.paused = true;\n this.lastFrameTime = 0;\n this.zLayers = 100;\n this.pageHidden = false;\n this._sourceOptions = sourceOptions;\n this._initialSourceOptions = sourceOptions;\n this.retina = new Retina_1.Retina(this);\n this.canvas = new Canvas_1.Canvas(this);\n this.particles = new Particles_1.Particles(this);\n this.drawer = new FrameManager_1.FrameManager(this);\n this.presets = presets;\n this.pathGenerator = {\n generate: () => {\n const v = Vector_1.Vector.create(0, 0);\n v.length = Math.random();\n v.angle = Math.random() * Math.PI * 2;\n return v;\n },\n init: () => {\n },\n update: () => {\n },\n };\n this.interactivity = {\n mouse: {\n clicking: false,\n inside: false,\n },\n };\n this.bubble = {};\n this.repulse = { particles: [] };\n this.attract = { particles: [] };\n this.plugins = new Map();\n this.drawers = new Map();\n this.density = 1;\n this._options = new Options_1.Options();\n this.actualOptions = new Options_1.Options();\n this.eventListeners = new Utils_1.EventListeners(this);\n if (typeof IntersectionObserver !== \"undefined\" && IntersectionObserver) {\n this.intersectionObserver = new IntersectionObserver((entries) => this.intersectionManager(entries));\n }\n }\n get options() {\n return this._options;\n }\n get sourceOptions() {\n return this._sourceOptions;\n }\n play(force) {\n const needsUpdate = this.paused || force;\n if (this.firstStart && !this.actualOptions.autoPlay) {\n this.firstStart = false;\n return;\n }\n if (this.paused) {\n this.paused = false;\n }\n if (needsUpdate) {\n for (const [, plugin] of this.plugins) {\n if (plugin.play) {\n plugin.play();\n }\n }\n }\n this.draw(needsUpdate || false);\n }\n pause() {\n if (this.drawAnimationFrame !== undefined) {\n (0, Utils_1.cancelAnimation)()(this.drawAnimationFrame);\n delete this.drawAnimationFrame;\n }\n if (this.paused) {\n return;\n }\n for (const [, plugin] of this.plugins) {\n if (plugin.pause) {\n plugin.pause();\n }\n }\n if (!this.pageHidden) {\n this.paused = true;\n }\n }\n draw(force) {\n let refreshTime = force;\n this.drawAnimationFrame = (0, Utils_1.animate)()((timestamp) => {\n if (refreshTime) {\n this.lastFrameTime = undefined;\n refreshTime = false;\n }\n this.drawer.nextFrame(timestamp);\n });\n }\n getAnimationStatus() {\n return !this.paused && !this.pageHidden;\n }\n setNoise(noiseOrGenerator, init, update) {\n this.setPath(noiseOrGenerator, init, update);\n }\n setPath(pathOrGenerator, init, update) {\n if (!pathOrGenerator) {\n return;\n }\n if (typeof pathOrGenerator === \"function\") {\n this.pathGenerator.generate = pathOrGenerator;\n if (init) {\n this.pathGenerator.init = init;\n }\n if (update) {\n this.pathGenerator.update = update;\n }\n }\n else {\n if (pathOrGenerator.generate) {\n this.pathGenerator.generate = pathOrGenerator.generate;\n }\n if (pathOrGenerator.init) {\n this.pathGenerator.init = pathOrGenerator.init;\n }\n if (pathOrGenerator.update) {\n this.pathGenerator.update = pathOrGenerator.update;\n }\n }\n }\n destroy() {\n this.stop();\n this.canvas.destroy();\n for (const [, drawer] of this.drawers) {\n if (drawer.destroy) {\n drawer.destroy(this);\n }\n }\n for (const key of this.drawers.keys()) {\n this.drawers.delete(key);\n }\n this.destroyed = true;\n }\n exportImg(callback) {\n this.exportImage(callback);\n }\n exportImage(callback, type, quality) {\n var _a;\n return (_a = this.canvas.element) === null || _a === void 0 ? void 0 : _a.toBlob(callback, type !== null && type !== void 0 ? type : \"image/png\", quality);\n }\n exportConfiguration() {\n return JSON.stringify(this.actualOptions, undefined, 2);\n }\n refresh() {\n this.stop();\n return this.start();\n }\n reset() {\n this._options = new Options_1.Options();\n return this.refresh();\n }\n stop() {\n if (!this.started) {\n return;\n }\n this.firstStart = true;\n this.started = false;\n this.eventListeners.removeListeners();\n this.pause();\n this.particles.clear();\n this.canvas.clear();\n if (this.interactivity.element instanceof HTMLElement && this.intersectionObserver) {\n this.intersectionObserver.observe(this.interactivity.element);\n }\n for (const [, plugin] of this.plugins) {\n if (plugin.stop) {\n plugin.stop();\n }\n }\n for (const key of this.plugins.keys()) {\n this.plugins.delete(key);\n }\n this.particles.linksColors = new Map();\n delete this.particles.grabLineColor;\n delete this.particles.linksColor;\n this._sourceOptions = this._options;\n }\n async loadTheme(name) {\n this.currentTheme = name;\n await this.refresh();\n }\n async start() {\n if (this.started) {\n return;\n }\n await this.init();\n this.started = true;\n this.eventListeners.addListeners();\n if (this.interactivity.element instanceof HTMLElement && this.intersectionObserver) {\n this.intersectionObserver.observe(this.interactivity.element);\n }\n for (const [, plugin] of this.plugins) {\n if (plugin.startAsync !== undefined) {\n await plugin.startAsync();\n }\n else if (plugin.start !== undefined) {\n plugin.start();\n }\n }\n this.play();\n }\n addClickHandler(callback) {\n const el = this.interactivity.element;\n if (!el) {\n return;\n }\n const clickOrTouchHandler = (e, pos, radius) => {\n if (this.destroyed) {\n return;\n }\n const pxRatio = this.retina.pixelRatio, posRetina = {\n x: pos.x * pxRatio,\n y: pos.y * pxRatio,\n }, particles = this.particles.quadTree.queryCircle(posRetina, radius * pxRatio);\n callback(e, particles);\n };\n const clickHandler = (e) => {\n if (this.destroyed) {\n return;\n }\n const mouseEvent = e;\n const pos = {\n x: mouseEvent.offsetX || mouseEvent.clientX,\n y: mouseEvent.offsetY || mouseEvent.clientY,\n };\n clickOrTouchHandler(e, pos, 1);\n };\n const touchStartHandler = () => {\n if (this.destroyed) {\n return;\n }\n touched = true;\n touchMoved = false;\n };\n const touchMoveHandler = () => {\n if (this.destroyed) {\n return;\n }\n touchMoved = true;\n };\n const touchEndHandler = (e) => {\n var _a, _b, _c;\n if (this.destroyed) {\n return;\n }\n if (touched && !touchMoved) {\n const touchEvent = e;\n let lastTouch = touchEvent.touches[touchEvent.touches.length - 1];\n if (!lastTouch) {\n lastTouch = touchEvent.changedTouches[touchEvent.changedTouches.length - 1];\n if (!lastTouch) {\n return;\n }\n }\n const canvasRect = (_a = this.canvas.element) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();\n const pos = {\n x: lastTouch.clientX - ((_b = canvasRect === null || canvasRect === void 0 ? void 0 : canvasRect.left) !== null && _b !== void 0 ? _b : 0),\n y: lastTouch.clientY - ((_c = canvasRect === null || canvasRect === void 0 ? void 0 : canvasRect.top) !== null && _c !== void 0 ? _c : 0),\n };\n clickOrTouchHandler(e, pos, Math.max(lastTouch.radiusX, lastTouch.radiusY));\n }\n touched = false;\n touchMoved = false;\n };\n const touchCancelHandler = () => {\n if (this.destroyed) {\n return;\n }\n touched = false;\n touchMoved = false;\n };\n let touched = false;\n let touchMoved = false;\n el.addEventListener(\"click\", clickHandler);\n el.addEventListener(\"touchstart\", touchStartHandler);\n el.addEventListener(\"touchmove\", touchMoveHandler);\n el.addEventListener(\"touchend\", touchEndHandler);\n el.addEventListener(\"touchcancel\", touchCancelHandler);\n }\n updateActualOptions() {\n this.actualOptions.responsive = [];\n const newMaxWidth = this.actualOptions.setResponsive(this.canvas.size.width, this.retina.pixelRatio, this._options);\n this.actualOptions.setTheme(this.currentTheme);\n if (this.responsiveMaxWidth != newMaxWidth) {\n this.responsiveMaxWidth = newMaxWidth;\n return true;\n }\n return false;\n }\n async init() {\n this._options = new Options_1.Options();\n for (const preset of this.presets) {\n this._options.load(Utils_1.Plugins.getPreset(preset));\n }\n const shapes = Utils_1.Plugins.getSupportedShapes();\n for (const type of shapes) {\n const drawer = Utils_1.Plugins.getShapeDrawer(type);\n if (drawer) {\n this.drawers.set(type, drawer);\n }\n }\n this._options.load(this._initialSourceOptions);\n this._options.load(this._sourceOptions);\n this.actualOptions = new Options_1.Options();\n this.actualOptions.load(this._options);\n this.retina.init();\n this.canvas.init();\n this.updateActualOptions();\n this.canvas.initBackground();\n this.canvas.resize();\n this.zLayers = this.actualOptions.zLayers;\n this.duration = (0, Utils_1.getRangeValue)(this.actualOptions.duration);\n this.lifeTime = 0;\n this.fpsLimit = this.actualOptions.fpsLimit > 0 ? this.actualOptions.fpsLimit : 60;\n const availablePlugins = Utils_1.Plugins.getAvailablePlugins(this);\n for (const [id, plugin] of availablePlugins) {\n this.plugins.set(id, plugin);\n }\n for (const [, drawer] of this.drawers) {\n if (drawer.init) {\n await drawer.init(this);\n }\n }\n for (const [, plugin] of this.plugins) {\n if (plugin.init) {\n plugin.init(this.actualOptions);\n }\n else if (plugin.initAsync !== undefined) {\n await plugin.initAsync(this.actualOptions);\n }\n }\n const pathOptions = this.actualOptions.particles.move.path;\n if (pathOptions.generator) {\n const customGenerator = Utils_1.Plugins.getPathGenerator(pathOptions.generator);\n if (customGenerator) {\n if (customGenerator.init) {\n this.pathGenerator.init = customGenerator.init;\n }\n if (customGenerator.generate) {\n this.pathGenerator.generate = customGenerator.generate;\n }\n if (customGenerator.update) {\n this.pathGenerator.update = customGenerator.update;\n }\n }\n }\n this.particles.init();\n this.particles.setDensity();\n for (const [, plugin] of this.plugins) {\n if (plugin.particlesSetup !== undefined) {\n plugin.particlesSetup();\n }\n }\n }\n intersectionManager(entries) {\n if (!this.actualOptions.pauseOnOutsideViewport) {\n return;\n }\n for (const entry of entries) {\n if (entry.target !== this.interactivity.element) {\n continue;\n }\n if (entry.isIntersecting) {\n this.play();\n }\n else {\n this.pause();\n }\n }\n }\n}\nexports.Container = Container;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9Db250YWluZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsaUJBQWlCO0FBQ2pCLGlCQUFpQixtQkFBTyxDQUFDLDJEQUFVO0FBQ25DLG9CQUFvQixtQkFBTyxDQUFDLGlFQUFhO0FBQ3pDLGlCQUFpQixtQkFBTyxDQUFDLDJEQUFVO0FBQ25DLHVCQUF1QixtQkFBTyxDQUFDLHVFQUFnQjtBQUMvQyxrQkFBa0IsbUJBQU8sQ0FBQyx5RkFBNEI7QUFDdEQsZ0JBQWdCLG1CQUFPLENBQUMsMkRBQVU7QUFDbEMsaUJBQWlCLG1CQUFPLENBQUMsNkVBQW1CO0FBQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSxhQUFhO0FBQ2I7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0NvcmUvQ29udGFpbmVyLmpzP2ZkN2QiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkNvbnRhaW5lciA9IHZvaWQgMDtcbmNvbnN0IENhbnZhc18xID0gcmVxdWlyZShcIi4vQ2FudmFzXCIpO1xuY29uc3QgUGFydGljbGVzXzEgPSByZXF1aXJlKFwiLi9QYXJ0aWNsZXNcIik7XG5jb25zdCBSZXRpbmFfMSA9IHJlcXVpcmUoXCIuL1JldGluYVwiKTtcbmNvbnN0IEZyYW1lTWFuYWdlcl8xID0gcmVxdWlyZShcIi4vRnJhbWVNYW5hZ2VyXCIpO1xuY29uc3QgT3B0aW9uc18xID0gcmVxdWlyZShcIi4uL09wdGlvbnMvQ2xhc3Nlcy9PcHRpb25zXCIpO1xuY29uc3QgVXRpbHNfMSA9IHJlcXVpcmUoXCIuLi9VdGlsc1wiKTtcbmNvbnN0IFZlY3Rvcl8xID0gcmVxdWlyZShcIi4vUGFydGljbGUvVmVjdG9yXCIpO1xuY2xhc3MgQ29udGFpbmVyIHtcbiAgICBjb25zdHJ1Y3RvcihpZCwgc291cmNlT3B0aW9ucywgLi4ucHJlc2V0cykge1xuICAgICAgICB0aGlzLmlkID0gaWQ7XG4gICAgICAgIHRoaXMuZnBzTGltaXQgPSA2MDtcbiAgICAgICAgdGhpcy5kdXJhdGlvbiA9IDA7XG4gICAgICAgIHRoaXMubGlmZVRpbWUgPSAwO1xuICAgICAgICB0aGlzLmZpcnN0U3RhcnQgPSB0cnVlO1xuICAgICAgICB0aGlzLnN0YXJ0ZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5kZXN0cm95ZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5wYXVzZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmxhc3RGcmFtZVRpbWUgPSAwO1xuICAgICAgICB0aGlzLnpMYXllcnMgPSAxMDA7XG4gICAgICAgIHRoaXMucGFnZUhpZGRlbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9zb3VyY2VPcHRpb25zID0gc291cmNlT3B0aW9ucztcbiAgICAgICAgdGhpcy5faW5pdGlhbFNvdXJjZU9wdGlvbnMgPSBzb3VyY2VPcHRpb25zO1xuICAgICAgICB0aGlzLnJldGluYSA9IG5ldyBSZXRpbmFfMS5SZXRpbmEodGhpcyk7XG4gICAgICAgIHRoaXMuY2FudmFzID0gbmV3IENhbnZhc18xLkNhbnZhcyh0aGlzKTtcbiAgICAgICAgdGhpcy5wYXJ0aWNsZXMgPSBuZXcgUGFydGljbGVzXzEuUGFydGljbGVzKHRoaXMpO1xuICAgICAgICB0aGlzLmRyYXdlciA9IG5ldyBGcmFtZU1hbmFnZXJfMS5GcmFtZU1hbmFnZXIodGhpcyk7XG4gICAgICAgIHRoaXMucHJlc2V0cyA9IHByZXNldHM7XG4gICAgICAgIHRoaXMucGF0aEdlbmVyYXRvciA9IHtcbiAgICAgICAgICAgIGdlbmVyYXRlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdiA9IFZlY3Rvcl8xLlZlY3Rvci5jcmVhdGUoMCwgMCk7XG4gICAgICAgICAgICAgICAgdi5sZW5ndGggPSBNYXRoLnJhbmRvbSgpO1xuICAgICAgICAgICAgICAgIHYuYW5nbGUgPSBNYXRoLnJhbmRvbSgpICogTWF0aC5QSSAqIDI7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaW5pdDogKCkgPT4ge1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHVwZGF0ZTogKCkgPT4ge1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5pbnRlcmFjdGl2aXR5ID0ge1xuICAgICAgICAgICAgbW91c2U6IHtcbiAgICAgICAgICAgICAgICBjbGlja2luZzogZmFsc2UsXG4gICAgICAgICAgICAgICAgaW5zaWRlOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuYnViYmxlID0ge307XG4gICAgICAgIHRoaXMucmVwdWxzZSA9IHsgcGFydGljbGVzOiBbXSB9O1xuICAgICAgICB0aGlzLmF0dHJhY3QgPSB7IHBhcnRpY2xlczogW10gfTtcbiAgICAgICAgdGhpcy5wbHVnaW5zID0gbmV3IE1hcCgpO1xuICAgICAgICB0aGlzLmRyYXdlcnMgPSBuZXcgTWFwKCk7XG4gICAgICAgIHRoaXMuZGVuc2l0eSA9IDE7XG4gICAgICAgIHRoaXMuX29wdGlvbnMgPSBuZXcgT3B0aW9uc18xLk9wdGlvbnMoKTtcbiAgICAgICAgdGhpcy5hY3R1YWxPcHRpb25zID0gbmV3IE9wdGlvbnNfMS5PcHRpb25zKCk7XG4gICAgICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMgPSBuZXcgVXRpbHNfMS5FdmVudExpc3RlbmVycyh0aGlzKTtcbiAgICAgICAgaWYgKHR5cGVvZiBJbnRlcnNlY3Rpb25PYnNlcnZlciAhPT0gXCJ1bmRlZmluZWRcIiAmJiBJbnRlcnNlY3Rpb25PYnNlcnZlcikge1xuICAgICAgICAgICAgdGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZW50cmllcykgPT4gdGhpcy5pbnRlcnNlY3Rpb25NYW5hZ2VyKGVudHJpZXMpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgb3B0aW9ucygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29wdGlvbnM7XG4gICAgfVxuICAgIGdldCBzb3VyY2VPcHRpb25zKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc291cmNlT3B0aW9ucztcbiAgICB9XG4gICAgcGxheShmb3JjZSkge1xuICAgICAgICBjb25zdCBuZWVkc1VwZGF0ZSA9IHRoaXMucGF1c2VkIHx8IGZvcmNlO1xuICAgICAgICBpZiAodGhpcy5maXJzdFN0YXJ0ICYmICF0aGlzLmFjdHVhbE9wdGlvbnMuYXV0b1BsYXkpIHtcbiAgICAgICAgICAgIHRoaXMuZmlyc3RTdGFydCA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnBhdXNlZCkge1xuICAgICAgICAgICAgdGhpcy5wYXVzZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobmVlZHNVcGRhdGUpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgWywgcGx1Z2luXSBvZiB0aGlzLnBsdWdpbnMpIHtcbiAgICAgICAgICAgICAgICBpZiAocGx1Z2luLnBsYXkpIHtcbiAgICAgICAgICAgICAgICAgICAgcGx1Z2luLnBsYXkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kcmF3KG5lZWRzVXBkYXRlIHx8IGZhbHNlKTtcbiAgICB9XG4gICAgcGF1c2UoKSB7XG4gICAgICAgIGlmICh0aGlzLmRyYXdBbmltYXRpb25GcmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAoMCwgVXRpbHNfMS5jYW5jZWxBbmltYXRpb24pKCkodGhpcy5kcmF3QW5pbWF0aW9uRnJhbWUpO1xuICAgICAgICAgICAgZGVsZXRlIHRoaXMuZHJhd0FuaW1hdGlvbkZyYW1lO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnBhdXNlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgWywgcGx1Z2luXSBvZiB0aGlzLnBsdWdpbnMpIHtcbiAgICAgICAgICAgIGlmIChwbHVnaW4ucGF1c2UpIHtcbiAgICAgICAgICAgICAgICBwbHVnaW4ucGF1c2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMucGFnZUhpZGRlbikge1xuICAgICAgICAgICAgdGhpcy5wYXVzZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIGRyYXcoZm9yY2UpIHtcbiAgICAgICAgbGV0IHJlZnJlc2hUaW1lID0gZm9yY2U7XG4gICAgICAgIHRoaXMuZHJhd0FuaW1hdGlvbkZyYW1lID0gKDAsIFV0aWxzXzEuYW5pbWF0ZSkoKSgodGltZXN0YW1wKSA9PiB7XG4gICAgICAgICAgICBpZiAocmVmcmVzaFRpbWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhc3RGcmFtZVRpbWUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgcmVmcmVzaFRpbWUgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZHJhd2VyLm5leHRGcmFtZSh0aW1lc3RhbXApO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgZ2V0QW5pbWF0aW9uU3RhdHVzKCkge1xuICAgICAgICByZXR1cm4gIXRoaXMucGF1c2VkICYmICF0aGlzLnBhZ2VIaWRkZW47XG4gICAgfVxuICAgIHNldE5vaXNlKG5vaXNlT3JHZW5lcmF0b3IsIGluaXQsIHVwZGF0ZSkge1xuICAgICAgICB0aGlzLnNldFBhdGgobm9pc2VPckdlbmVyYXRvciwgaW5pdCwgdXBkYXRlKTtcbiAgICB9XG4gICAgc2V0UGF0aChwYXRoT3JHZW5lcmF0b3IsIGluaXQsIHVwZGF0ZSkge1xuICAgICAgICBpZiAoIXBhdGhPckdlbmVyYXRvcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgcGF0aE9yR2VuZXJhdG9yID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIHRoaXMucGF0aEdlbmVyYXRvci5nZW5lcmF0ZSA9IHBhdGhPckdlbmVyYXRvcjtcbiAgICAgICAgICAgIGlmIChpbml0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYXRoR2VuZXJhdG9yLmluaXQgPSBpbml0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHVwZGF0ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMucGF0aEdlbmVyYXRvci51cGRhdGUgPSB1cGRhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAocGF0aE9yR2VuZXJhdG9yLmdlbmVyYXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYXRoR2VuZXJhdG9yLmdlbmVyYXRlID0gcGF0aE9yR2VuZXJhdG9yLmdlbmVyYXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHBhdGhPckdlbmVyYXRvci5pbml0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYXRoR2VuZXJhdG9yLmluaXQgPSBwYXRoT3JHZW5lcmF0b3IuaW5pdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwYXRoT3JHZW5lcmF0b3IudXBkYXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYXRoR2VuZXJhdG9yLnVwZGF0ZSA9IHBhdGhPckdlbmVyYXRvci51cGRhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgZGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5zdG9wKCk7XG4gICAgICAgIHRoaXMuY2FudmFzLmRlc3Ryb3koKTtcbiAgICAgICAgZm9yIChjb25zdCBbLCBkcmF3ZXJdIG9mIHRoaXMuZHJhd2Vycykge1xuICAgICAgICAgICAgaWYgKGRyYXdlci5kZXN0cm95KSB7XG4gICAgICAgICAgICAgICAgZHJhd2VyLmRlc3Ryb3kodGhpcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgdGhpcy5kcmF3ZXJzLmtleXMoKSkge1xuICAgICAgICAgICAgdGhpcy5kcmF3ZXJzLmRlbGV0ZShrZXkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGVzdHJveWVkID0gdHJ1ZTtcbiAgICB9XG4gICAgZXhwb3J0SW1nKGNhbGxiYWNrKSB7XG4gICAgICAgIHRoaXMuZXhwb3J0SW1hZ2UoY2FsbGJhY2spO1xuICAgIH1cbiAgICBleHBvcnRJbWFnZShjYWxsYmFjaywgdHlwZSwgcXVhbGl0eSkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIHJldHVybiAoX2EgPSB0aGlzLmNhbnZhcy5lbGVtZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudG9CbG9iKGNhbGxiYWNrLCB0eXBlICE9PSBudWxsICYmIHR5cGUgIT09IHZvaWQgMCA/IHR5cGUgOiBcImltYWdlL3BuZ1wiLCBxdWFsaXR5KTtcbiAgICB9XG4gICAgZXhwb3J0Q29uZmlndXJhdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMuYWN0dWFsT3B0aW9ucywgdW5kZWZpbmVkLCAyKTtcbiAgICB9XG4gICAgcmVmcmVzaCgpIHtcbiAgICAgICAgdGhpcy5zdG9wKCk7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXJ0KCk7XG4gICAgfVxuICAgIHJlc2V0KCkge1xuICAgICAgICB0aGlzLl9vcHRpb25zID0gbmV3IE9wdGlvbnNfMS5PcHRpb25zKCk7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZnJlc2goKTtcbiAgICB9XG4gICAgc3RvcCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLnN0YXJ0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZpcnN0U3RhcnQgPSB0cnVlO1xuICAgICAgICB0aGlzLnN0YXJ0ZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5ldmVudExpc3RlbmVycy5yZW1vdmVMaXN0ZW5lcnMoKTtcbiAgICAgICAgdGhpcy5wYXVzZSgpO1xuICAgICAgICB0aGlzLnBhcnRpY2xlcy5jbGVhcigpO1xuICAgICAgICB0aGlzLmNhbnZhcy5jbGVhcigpO1xuICAgICAgICBpZiAodGhpcy5pbnRlcmFjdGl2aXR5LmVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCAmJiB0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyKSB7XG4gICAgICAgICAgICB0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyLm9ic2VydmUodGhpcy5pbnRlcmFjdGl2aXR5LmVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgWywgcGx1Z2luXSBvZiB0aGlzLnBsdWdpbnMpIHtcbiAgICAgICAgICAgIGlmIChwbHVnaW4uc3RvcCkge1xuICAgICAgICAgICAgICAgIHBsdWdpbi5zdG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgdGhpcy5wbHVnaW5zLmtleXMoKSkge1xuICAgICAgICAgICAgdGhpcy5wbHVnaW5zLmRlbGV0ZShrZXkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucGFydGljbGVzLmxpbmtzQ29sb3JzID0gbmV3IE1hcCgpO1xuICAgICAgICBkZWxldGUgdGhpcy5wYXJ0aWNsZXMuZ3JhYkxpbmVDb2xvcjtcbiAgICAgICAgZGVsZXRlIHRoaXMucGFydGljbGVzLmxpbmtzQ29sb3I7XG4gICAgICAgIHRoaXMuX3NvdXJjZU9wdGlvbnMgPSB0aGlzLl9vcHRpb25zO1xuICAgIH1cbiAgICBhc3luYyBsb2FkVGhlbWUobmFtZSkge1xuICAgICAgICB0aGlzLmN1cnJlbnRUaGVtZSA9IG5hbWU7XG4gICAgICAgIGF3YWl0IHRoaXMucmVmcmVzaCgpO1xuICAgIH1cbiAgICBhc3luYyBzdGFydCgpIHtcbiAgICAgICAgaWYgKHRoaXMuc3RhcnRlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IHRoaXMuaW5pdCgpO1xuICAgICAgICB0aGlzLnN0YXJ0ZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmV2ZW50TGlzdGVuZXJzLmFkZExpc3RlbmVycygpO1xuICAgICAgICBpZiAodGhpcy5pbnRlcmFjdGl2aXR5LmVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCAmJiB0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyKSB7XG4gICAgICAgICAgICB0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyLm9ic2VydmUodGhpcy5pbnRlcmFjdGl2aXR5LmVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgWywgcGx1Z2luXSBvZiB0aGlzLnBsdWdpbnMpIHtcbiAgICAgICAgICAgIGlmIChwbHVnaW4uc3RhcnRBc3luYyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgcGx1Z2luLnN0YXJ0QXN5bmMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHBsdWdpbi5zdGFydCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcGx1Z2luLnN0YXJ0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wbGF5KCk7XG4gICAgfVxuICAgIGFkZENsaWNrSGFuZGxlcihjYWxsYmFjaykge1xuICAgICAgICBjb25zdCBlbCA9IHRoaXMuaW50ZXJhY3Rpdml0eS5lbGVtZW50O1xuICAgICAgICBpZiAoIWVsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2xpY2tPclRvdWNoSGFuZGxlciA9IChlLCBwb3MsIHJhZGl1cykgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuZGVzdHJveWVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgcHhSYXRpbyA9IHRoaXMucmV0aW5hLnBpeGVsUmF0aW8sIHBvc1JldGluYSA9IHtcbiAgICAgICAgICAgICAgICB4OiBwb3MueCAqIHB4UmF0aW8sXG4gICAgICAgICAgICAgICAgeTogcG9zLnkgKiBweFJhdGlvLFxuICAgICAgICAgICAgfSwgcGFydGljbGVzID0gdGhpcy5wYXJ0aWNsZXMucXVhZFRyZWUucXVlcnlDaXJjbGUocG9zUmV0aW5hLCByYWRpdXMgKiBweFJhdGlvKTtcbiAgICAgICAgICAgIGNhbGxiYWNrKGUsIHBhcnRpY2xlcyk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGNsaWNrSGFuZGxlciA9IChlKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5kZXN0cm95ZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBtb3VzZUV2ZW50ID0gZTtcbiAgICAgICAgICAgIGNvbnN0IHBvcyA9IHtcbiAgICAgICAgICAgICAgICB4OiBtb3VzZUV2ZW50Lm9mZnNldFggfHwgbW91c2VFdmVudC5jbGllbnRYLFxuICAgICAgICAgICAgICAgIHk6IG1vdXNlRXZlbnQub2Zmc2V0WSB8fCBtb3VzZUV2ZW50LmNsaWVudFksXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY2xpY2tPclRvdWNoSGFuZGxlcihlLCBwb3MsIDEpO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCB0b3VjaFN0YXJ0SGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmRlc3Ryb3llZCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRvdWNoZWQgPSB0cnVlO1xuICAgICAgICAgICAgdG91Y2hNb3ZlZCA9IGZhbHNlO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCB0b3VjaE1vdmVIYW5kbGVyID0gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuZGVzdHJveWVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdG91Y2hNb3ZlZCA9IHRydWU7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHRvdWNoRW5kSGFuZGxlciA9IChlKSA9PiB7XG4gICAgICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgICAgIGlmICh0aGlzLmRlc3Ryb3llZCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0b3VjaGVkICYmICF0b3VjaE1vdmVkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdG91Y2hFdmVudCA9IGU7XG4gICAgICAgICAgICAgICAgbGV0IGxhc3RUb3VjaCA9IHRvdWNoRXZlbnQudG91Y2hlc1t0b3VjaEV2ZW50LnRvdWNoZXMubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICAgICAgaWYgKCFsYXN0VG91Y2gpIHtcbiAgICAgICAgICAgICAgICAgICAgbGFzdFRvdWNoID0gdG91Y2hFdmVudC5jaGFuZ2VkVG91Y2hlc1t0b3VjaEV2ZW50LmNoYW5nZWRUb3VjaGVzLmxlbmd0aCAtIDFdO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWxhc3RUb3VjaCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGNhbnZhc1JlY3QgPSAoX2EgPSB0aGlzLmNhbnZhcy5lbGVtZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcG9zID0ge1xuICAgICAgICAgICAgICAgICAgICB4OiBsYXN0VG91Y2guY2xpZW50WCAtICgoX2IgPSBjYW52YXNSZWN0ID09PSBudWxsIHx8IGNhbnZhc1JlY3QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNhbnZhc1JlY3QubGVmdCkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogMCksXG4gICAgICAgICAgICAgICAgICAgIHk6IGxhc3RUb3VjaC5jbGllbnRZIC0gKChfYyA9IGNhbnZhc1JlY3QgPT09IG51bGwgfHwgY2FudmFzUmVjdCA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2FudmFzUmVjdC50b3ApICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IDApLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY2xpY2tPclRvdWNoSGFuZGxlcihlLCBwb3MsIE1hdGgubWF4KGxhc3RUb3VjaC5yYWRpdXNYLCBsYXN0VG91Y2gucmFkaXVzWSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdG91Y2hlZCA9IGZhbHNlO1xuICAgICAgICAgICAgdG91Y2hNb3ZlZCA9IGZhbHNlO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCB0b3VjaENhbmNlbEhhbmRsZXIgPSAoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5kZXN0cm95ZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0b3VjaGVkID0gZmFsc2U7XG4gICAgICAgICAgICB0b3VjaE1vdmVkID0gZmFsc2U7XG4gICAgICAgIH07XG4gICAgICAgIGxldCB0b3VjaGVkID0gZmFsc2U7XG4gICAgICAgIGxldCB0b3VjaE1vdmVkID0gZmFsc2U7XG4gICAgICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBjbGlja0hhbmRsZXIpO1xuICAgICAgICBlbC5hZGRFdmVudExpc3RlbmVyKFwidG91Y2hzdGFydFwiLCB0b3VjaFN0YXJ0SGFuZGxlcik7XG4gICAgICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaG1vdmVcIiwgdG91Y2hNb3ZlSGFuZGxlcik7XG4gICAgICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaGVuZFwiLCB0b3VjaEVuZEhhbmRsZXIpO1xuICAgICAgICBlbC5hZGRFdmVudExpc3RlbmVyKFwidG91Y2hjYW5jZWxcIiwgdG91Y2hDYW5jZWxIYW5kbGVyKTtcbiAgICB9XG4gICAgdXBkYXRlQWN0dWFsT3B0aW9ucygpIHtcbiAgICAgICAgdGhpcy5hY3R1YWxPcHRpb25zLnJlc3BvbnNpdmUgPSBbXTtcbiAgICAgICAgY29uc3QgbmV3TWF4V2lkdGggPSB0aGlzLmFjdHVhbE9wdGlvbnMuc2V0UmVzcG9uc2l2ZSh0aGlzLmNhbnZhcy5zaXplLndpZHRoLCB0aGlzLnJldGluYS5waXhlbFJhdGlvLCB0aGlzLl9vcHRpb25zKTtcbiAgICAgICAgdGhpcy5hY3R1YWxPcHRpb25zLnNldFRoZW1lKHRoaXMuY3VycmVudFRoZW1lKTtcbiAgICAgICAgaWYgKHRoaXMucmVzcG9uc2l2ZU1heFdpZHRoICE9IG5ld01heFdpZHRoKSB7XG4gICAgICAgICAgICB0aGlzLnJlc3BvbnNpdmVNYXhXaWR0aCA9IG5ld01heFdpZHRoO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBhc3luYyBpbml0KCkge1xuICAgICAgICB0aGlzLl9vcHRpb25zID0gbmV3IE9wdGlvbnNfMS5PcHRpb25zKCk7XG4gICAgICAgIGZvciAoY29uc3QgcHJlc2V0IG9mIHRoaXMucHJlc2V0cykge1xuICAgICAgICAgICAgdGhpcy5fb3B0aW9ucy5sb2FkKFV0aWxzXzEuUGx1Z2lucy5nZXRQcmVzZXQocHJlc2V0KSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2hhcGVzID0gVXRpbHNfMS5QbHVnaW5zLmdldFN1cHBvcnRlZFNoYXBlcygpO1xuICAgICAgICBmb3IgKGNvbnN0IHR5cGUgb2Ygc2hhcGVzKSB7XG4gICAgICAgICAgICBjb25zdCBkcmF3ZXIgPSBVdGlsc18xLlBsdWdpbnMuZ2V0U2hhcGVEcmF3ZXIodHlwZSk7XG4gICAgICAgICAgICBpZiAoZHJhd2VyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kcmF3ZXJzLnNldCh0eXBlLCBkcmF3ZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuX29wdGlvbnMubG9hZCh0aGlzLl9pbml0aWFsU291cmNlT3B0aW9ucyk7XG4gICAgICAgIHRoaXMuX29wdGlvbnMubG9hZCh0aGlzLl9zb3VyY2VPcHRpb25zKTtcbiAgICAgICAgdGhpcy5hY3R1YWxPcHRpb25zID0gbmV3IE9wdGlvbnNfMS5PcHRpb25zKCk7XG4gICAgICAgIHRoaXMuYWN0dWFsT3B0aW9ucy5sb2FkKHRoaXMuX29wdGlvbnMpO1xuICAgICAgICB0aGlzLnJldGluYS5pbml0KCk7XG4gICAgICAgIHRoaXMuY2FudmFzLmluaXQoKTtcbiAgICAgICAgdGhpcy51cGRhdGVBY3R1YWxPcHRpb25zKCk7XG4gICAgICAgIHRoaXMuY2FudmFzLmluaXRCYWNrZ3JvdW5kKCk7XG4gICAgICAgIHRoaXMuY2FudmFzLnJlc2l6ZSgpO1xuICAgICAgICB0aGlzLnpMYXllcnMgPSB0aGlzLmFjdHVhbE9wdGlvbnMuekxheWVycztcbiAgICAgICAgdGhpcy5kdXJhdGlvbiA9ICgwLCBVdGlsc18xLmdldFJhbmdlVmFsdWUpKHRoaXMuYWN0dWFsT3B0aW9ucy5kdXJhdGlvbik7XG4gICAgICAgIHRoaXMubGlmZVRpbWUgPSAwO1xuICAgICAgICB0aGlzLmZwc0xpbWl0ID0gdGhpcy5hY3R1YWxPcHRpb25zLmZwc0xpbWl0ID4gMCA/IHRoaXMuYWN0dWFsT3B0aW9ucy5mcHNMaW1pdCA6IDYwO1xuICAgICAgICBjb25zdCBhdmFpbGFibGVQbHVnaW5zID0gVXRpbHNfMS5QbHVnaW5zLmdldEF2YWlsYWJsZVBsdWdpbnModGhpcyk7XG4gICAgICAgIGZvciAoY29uc3QgW2lkLCBwbHVnaW5dIG9mIGF2YWlsYWJsZVBsdWdpbnMpIHtcbiAgICAgICAgICAgIHRoaXMucGx1Z2lucy5zZXQoaWQsIHBsdWdpbik7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBbLCBkcmF3ZXJdIG9mIHRoaXMuZHJhd2Vycykge1xuICAgICAgICAgICAgaWYgKGRyYXdlci5pbml0KSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgZHJhd2VyLmluaXQodGhpcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBbLCBwbHVnaW5dIG9mIHRoaXMucGx1Z2lucykge1xuICAgICAgICAgICAgaWYgKHBsdWdpbi5pbml0KSB7XG4gICAgICAgICAgICAgICAgcGx1Z2luLmluaXQodGhpcy5hY3R1YWxPcHRpb25zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHBsdWdpbi5pbml0QXN5bmMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGF3YWl0IHBsdWdpbi5pbml0QXN5bmModGhpcy5hY3R1YWxPcHRpb25zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYXRoT3B0aW9ucyA9IHRoaXMuYWN0dWFsT3B0aW9ucy5wYXJ0aWNsZXMubW92ZS5wYXRoO1xuICAgICAgICBpZiAocGF0aE9wdGlvbnMuZ2VuZXJhdG9yKSB7XG4gICAgICAgICAgICBjb25zdCBjdXN0b21HZW5lcmF0b3IgPSBVdGlsc18xLlBsdWdpbnMuZ2V0UGF0aEdlbmVyYXRvcihwYXRoT3B0aW9ucy5nZW5lcmF0b3IpO1xuICAgICAgICAgICAgaWYgKGN1c3RvbUdlbmVyYXRvcikge1xuICAgICAgICAgICAgICAgIGlmIChjdXN0b21HZW5lcmF0b3IuaW5pdCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhdGhHZW5lcmF0b3IuaW5pdCA9IGN1c3RvbUdlbmVyYXRvci5pbml0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoY3VzdG9tR2VuZXJhdG9yLmdlbmVyYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGF0aEdlbmVyYXRvci5nZW5lcmF0ZSA9IGN1c3RvbUdlbmVyYXRvci5nZW5lcmF0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGN1c3RvbUdlbmVyYXRvci51cGRhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXRoR2VuZXJhdG9yLnVwZGF0ZSA9IGN1c3RvbUdlbmVyYXRvci51cGRhdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMucGFydGljbGVzLmluaXQoKTtcbiAgICAgICAgdGhpcy5wYXJ0aWNsZXMuc2V0RGVuc2l0eSgpO1xuICAgICAgICBmb3IgKGNvbnN0IFssIHBsdWdpbl0gb2YgdGhpcy5wbHVnaW5zKSB7XG4gICAgICAgICAgICBpZiAocGx1Z2luLnBhcnRpY2xlc1NldHVwICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBwbHVnaW4ucGFydGljbGVzU2V0dXAoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBpbnRlcnNlY3Rpb25NYW5hZ2VyKGVudHJpZXMpIHtcbiAgICAgICAgaWYgKCF0aGlzLmFjdHVhbE9wdGlvbnMucGF1c2VPbk91dHNpZGVWaWV3cG9ydCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgZW50cmllcykge1xuICAgICAgICAgICAgaWYgKGVudHJ5LnRhcmdldCAhPT0gdGhpcy5pbnRlcmFjdGl2aXR5LmVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChlbnRyeS5pc0ludGVyc2VjdGluZykge1xuICAgICAgICAgICAgICAgIHRoaXMucGxheSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYXVzZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5Db250YWluZXIgPSBDb250YWluZXI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Container.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/ExternalInteractorBase.js": +/*!*****************************************************************!*\ + !*** ./node_modules/tsparticles/Core/ExternalInteractorBase.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ExternalInteractorBase = void 0;\nconst Enums_1 = __webpack_require__(/*! ../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nclass ExternalInteractorBase {\n constructor(container) {\n this.container = container;\n this.type = Enums_1.InteractorType.External;\n }\n}\nexports.ExternalInteractorBase = ExternalInteractorBase;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9FeHRlcm5hbEludGVyYWN0b3JCYXNlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELDhCQUE4QjtBQUM5QixnQkFBZ0IsbUJBQU8sQ0FBQywyREFBVTtBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4QkFBOEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0NvcmUvRXh0ZXJuYWxJbnRlcmFjdG9yQmFzZS5qcz8xYWZiIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5FeHRlcm5hbEludGVyYWN0b3JCYXNlID0gdm9pZCAwO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuLi9FbnVtc1wiKTtcbmNsYXNzIEV4dGVybmFsSW50ZXJhY3RvckJhc2Uge1xuICAgIGNvbnN0cnVjdG9yKGNvbnRhaW5lcikge1xuICAgICAgICB0aGlzLmNvbnRhaW5lciA9IGNvbnRhaW5lcjtcbiAgICAgICAgdGhpcy50eXBlID0gRW51bXNfMS5JbnRlcmFjdG9yVHlwZS5FeHRlcm5hbDtcbiAgICB9XG59XG5leHBvcnRzLkV4dGVybmFsSW50ZXJhY3RvckJhc2UgPSBFeHRlcm5hbEludGVyYWN0b3JCYXNlO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/ExternalInteractorBase.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/FrameManager.js": +/*!*******************************************************!*\ + !*** ./node_modules/tsparticles/Core/FrameManager.js ***! + \*******************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.FrameManager = void 0;\nclass FrameManager {\n constructor(container) {\n this.container = container;\n }\n nextFrame(timestamp) {\n var _a;\n try {\n const container = this.container;\n if (container.lastFrameTime !== undefined &&\n timestamp < container.lastFrameTime + 1000 / container.fpsLimit) {\n container.draw(false);\n return;\n }\n (_a = container.lastFrameTime) !== null && _a !== void 0 ? _a : (container.lastFrameTime = timestamp);\n const deltaValue = timestamp - container.lastFrameTime;\n const delta = {\n value: deltaValue,\n factor: (60 * deltaValue) / 1000,\n };\n container.lifeTime += delta.value;\n container.lastFrameTime = timestamp;\n if (deltaValue > 1000) {\n container.draw(false);\n return;\n }\n container.particles.draw(delta);\n if (container.duration > 0 && container.lifeTime > container.duration) {\n container.destroy();\n return;\n }\n if (container.getAnimationStatus()) {\n container.draw(false);\n }\n }\n catch (e) {\n console.error(\"tsParticles error in animation loop\", e);\n }\n }\n}\nexports.FrameManager = FrameManager;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9GcmFtZU1hbmFnZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9GcmFtZU1hbmFnZXIuanM/OThjYiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuRnJhbWVNYW5hZ2VyID0gdm9pZCAwO1xuY2xhc3MgRnJhbWVNYW5hZ2VyIHtcbiAgICBjb25zdHJ1Y3Rvcihjb250YWluZXIpIHtcbiAgICAgICAgdGhpcy5jb250YWluZXIgPSBjb250YWluZXI7XG4gICAgfVxuICAgIG5leHRGcmFtZSh0aW1lc3RhbXApIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXI7XG4gICAgICAgICAgICBpZiAoY29udGFpbmVyLmxhc3RGcmFtZVRpbWUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgICAgIHRpbWVzdGFtcCA8IGNvbnRhaW5lci5sYXN0RnJhbWVUaW1lICsgMTAwMCAvIGNvbnRhaW5lci5mcHNMaW1pdCkge1xuICAgICAgICAgICAgICAgIGNvbnRhaW5lci5kcmF3KGZhbHNlKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAoX2EgPSBjb250YWluZXIubGFzdEZyYW1lVGltZSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogKGNvbnRhaW5lci5sYXN0RnJhbWVUaW1lID0gdGltZXN0YW1wKTtcbiAgICAgICAgICAgIGNvbnN0IGRlbHRhVmFsdWUgPSB0aW1lc3RhbXAgLSBjb250YWluZXIubGFzdEZyYW1lVGltZTtcbiAgICAgICAgICAgIGNvbnN0IGRlbHRhID0ge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBkZWx0YVZhbHVlLFxuICAgICAgICAgICAgICAgIGZhY3RvcjogKDYwICogZGVsdGFWYWx1ZSkgLyAxMDAwLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnRhaW5lci5saWZlVGltZSArPSBkZWx0YS52YWx1ZTtcbiAgICAgICAgICAgIGNvbnRhaW5lci5sYXN0RnJhbWVUaW1lID0gdGltZXN0YW1wO1xuICAgICAgICAgICAgaWYgKGRlbHRhVmFsdWUgPiAxMDAwKSB7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLmRyYXcoZmFsc2UpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnRhaW5lci5wYXJ0aWNsZXMuZHJhdyhkZWx0YSk7XG4gICAgICAgICAgICBpZiAoY29udGFpbmVyLmR1cmF0aW9uID4gMCAmJiBjb250YWluZXIubGlmZVRpbWUgPiBjb250YWluZXIuZHVyYXRpb24pIHtcbiAgICAgICAgICAgICAgICBjb250YWluZXIuZGVzdHJveSgpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjb250YWluZXIuZ2V0QW5pbWF0aW9uU3RhdHVzKCkpIHtcbiAgICAgICAgICAgICAgICBjb250YWluZXIuZHJhdyhmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJ0c1BhcnRpY2xlcyBlcnJvciBpbiBhbmltYXRpb24gbG9vcFwiLCBlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuRnJhbWVNYW5hZ2VyID0gRnJhbWVNYW5hZ2VyO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/FrameManager.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/InteractionManager.js": +/*!*************************************************************!*\ + !*** ./node_modules/tsparticles/Core/InteractionManager.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.InteractionManager = void 0;\nconst Utils_1 = __webpack_require__(/*! ../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Enums_1 = __webpack_require__(/*! ../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nclass InteractionManager {\n constructor(container) {\n this.container = container;\n this.externalInteractors = [];\n this.particleInteractors = [];\n this.init();\n }\n init() {\n const interactors = Utils_1.Plugins.getInteractors(this.container, true);\n for (const interactor of interactors) {\n switch (interactor.type) {\n case Enums_1.InteractorType.External:\n this.externalInteractors.push(interactor);\n break;\n case Enums_1.InteractorType.Particles:\n this.particleInteractors.push(interactor);\n break;\n }\n }\n }\n externalInteract(delta) {\n for (const interactor of this.externalInteractors) {\n if (interactor.isEnabled()) {\n interactor.interact(delta);\n }\n }\n }\n particlesInteract(particle, delta) {\n for (const interactor of this.externalInteractors) {\n interactor.reset(particle);\n }\n for (const interactor of this.particleInteractors) {\n if (interactor.isEnabled(particle)) {\n interactor.interact(particle, delta);\n }\n }\n }\n}\nexports.InteractionManager = InteractionManager;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmFjdGlvbk1hbmFnZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsMEJBQTBCO0FBQzFCLGdCQUFnQixtQkFBTyxDQUFDLDJEQUFVO0FBQ2xDLGdCQUFnQixtQkFBTyxDQUFDLDJEQUFVO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0NvcmUvSW50ZXJhY3Rpb25NYW5hZ2VyLmpzP2FmNmMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkludGVyYWN0aW9uTWFuYWdlciA9IHZvaWQgMDtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vVXRpbHNcIik7XG5jb25zdCBFbnVtc18xID0gcmVxdWlyZShcIi4uL0VudW1zXCIpO1xuY2xhc3MgSW50ZXJhY3Rpb25NYW5hZ2VyIHtcbiAgICBjb25zdHJ1Y3Rvcihjb250YWluZXIpIHtcbiAgICAgICAgdGhpcy5jb250YWluZXIgPSBjb250YWluZXI7XG4gICAgICAgIHRoaXMuZXh0ZXJuYWxJbnRlcmFjdG9ycyA9IFtdO1xuICAgICAgICB0aGlzLnBhcnRpY2xlSW50ZXJhY3RvcnMgPSBbXTtcbiAgICAgICAgdGhpcy5pbml0KCk7XG4gICAgfVxuICAgIGluaXQoKSB7XG4gICAgICAgIGNvbnN0IGludGVyYWN0b3JzID0gVXRpbHNfMS5QbHVnaW5zLmdldEludGVyYWN0b3JzKHRoaXMuY29udGFpbmVyLCB0cnVlKTtcbiAgICAgICAgZm9yIChjb25zdCBpbnRlcmFjdG9yIG9mIGludGVyYWN0b3JzKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKGludGVyYWN0b3IudHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgRW51bXNfMS5JbnRlcmFjdG9yVHlwZS5FeHRlcm5hbDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5leHRlcm5hbEludGVyYWN0b3JzLnB1c2goaW50ZXJhY3Rvcik7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgRW51bXNfMS5JbnRlcmFjdG9yVHlwZS5QYXJ0aWNsZXM6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFydGljbGVJbnRlcmFjdG9ycy5wdXNoKGludGVyYWN0b3IpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBleHRlcm5hbEludGVyYWN0KGRlbHRhKSB7XG4gICAgICAgIGZvciAoY29uc3QgaW50ZXJhY3RvciBvZiB0aGlzLmV4dGVybmFsSW50ZXJhY3RvcnMpIHtcbiAgICAgICAgICAgIGlmIChpbnRlcmFjdG9yLmlzRW5hYmxlZCgpKSB7XG4gICAgICAgICAgICAgICAgaW50ZXJhY3Rvci5pbnRlcmFjdChkZWx0YSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcGFydGljbGVzSW50ZXJhY3QocGFydGljbGUsIGRlbHRhKSB7XG4gICAgICAgIGZvciAoY29uc3QgaW50ZXJhY3RvciBvZiB0aGlzLmV4dGVybmFsSW50ZXJhY3RvcnMpIHtcbiAgICAgICAgICAgIGludGVyYWN0b3IucmVzZXQocGFydGljbGUpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgaW50ZXJhY3RvciBvZiB0aGlzLnBhcnRpY2xlSW50ZXJhY3RvcnMpIHtcbiAgICAgICAgICAgIGlmIChpbnRlcmFjdG9yLmlzRW5hYmxlZChwYXJ0aWNsZSkpIHtcbiAgICAgICAgICAgICAgICBpbnRlcmFjdG9yLmludGVyYWN0KHBhcnRpY2xlLCBkZWx0YSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkludGVyYWN0aW9uTWFuYWdlciA9IEludGVyYWN0aW9uTWFuYWdlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/InteractionManager.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/Colors.js": +/*!************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/Colors.js ***! + \************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0NvbG9ycy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0NvbG9ycy5qcz85ZjU1Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/Colors.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/Gradients.js": +/*!***************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/Gradients.js ***! + \***************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0dyYWRpZW50cy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0dyYWRpZW50cy5qcz9mNDFiIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/Gradients.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IAttract.js": +/*!**************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IAttract.js ***! + \**************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lBdHRyYWN0LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9Db3JlL0ludGVyZmFjZXMvSUF0dHJhY3QuanM/NWViOSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IAttract.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IBounds.js": +/*!*************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IBounds.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lCb3VuZHMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0NvcmUvSW50ZXJmYWNlcy9JQm91bmRzLmpzPzQ1MGUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IBounds.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IBubble.js": +/*!*************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IBubble.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lCdWJibGUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0NvcmUvSW50ZXJmYWNlcy9JQnViYmxlLmpzPzlhNzYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IBubble.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IBubbleParticleData.js": +/*!*************************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IBubbleParticleData.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lCdWJibGVQYXJ0aWNsZURhdGEuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0NvcmUvSW50ZXJmYWNlcy9JQnViYmxlUGFydGljbGVEYXRhLmpzPzcwYmYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IBubbleParticleData.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/ICircleBouncer.js": +/*!********************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/ICircleBouncer.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lDaXJjbGVCb3VuY2VyLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9Db3JlL0ludGVyZmFjZXMvSUNpcmNsZUJvdW5jZXIuanM/NjMzYyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/ICircleBouncer.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IContainerInteractivity.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IContainerInteractivity.js ***! + \*****************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lDb250YWluZXJJbnRlcmFjdGl2aXR5LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9Db3JlL0ludGVyZmFjZXMvSUNvbnRhaW5lckludGVyYWN0aXZpdHkuanM/ZDdjMSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IContainerInteractivity.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IContainerPlugin.js": +/*!**********************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IContainerPlugin.js ***! + \**********************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lDb250YWluZXJQbHVnaW4uanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0NvcmUvSW50ZXJmYWNlcy9JQ29udGFpbmVyUGx1Z2luLmpzPzAyMTAiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IContainerPlugin.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/ICoordinates.js": +/*!******************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/ICoordinates.js ***! + \******************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lDb29yZGluYXRlcy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lDb29yZGluYXRlcy5qcz8zNTY1Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/ICoordinates.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IDelta.js": +/*!************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IDelta.js ***! + \************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lEZWx0YS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lEZWx0YS5qcz85MWU3Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IDelta.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IDimension.js": +/*!****************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IDimension.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lEaW1lbnNpb24uanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0NvcmUvSW50ZXJmYWNlcy9JRGltZW5zaW9uLmpzPzQ2Y2IiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IDimension.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IDistance.js": +/*!***************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IDistance.js ***! + \***************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lEaXN0YW5jZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lEaXN0YW5jZS5qcz9jNTlkIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IDistance.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IExternalInteractor.js": +/*!*************************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IExternalInteractor.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lFeHRlcm5hbEludGVyYWN0b3IuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0NvcmUvSW50ZXJmYWNlcy9JRXh0ZXJuYWxJbnRlcmFjdG9yLmpzP2Q3ZTAiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IExternalInteractor.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IInteractor.js": +/*!*****************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IInteractor.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lJbnRlcmFjdG9yLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9Db3JlL0ludGVyZmFjZXMvSUludGVyYWN0b3IuanM/N2I4YyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IInteractor.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IMouseData.js": +/*!****************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IMouseData.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lNb3VzZURhdGEuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0NvcmUvSW50ZXJmYWNlcy9JTW91c2VEYXRhLmpzP2RmZDQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IMouseData.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IMovePathGenerator.js": +/*!************************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IMovePathGenerator.js ***! + \************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lNb3ZlUGF0aEdlbmVyYXRvci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lNb3ZlUGF0aEdlbmVyYXRvci5qcz8xNmUyIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IMovePathGenerator.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IParticle.js": +/*!***************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IParticle.js ***! + \***************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lQYXJ0aWNsZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lQYXJ0aWNsZS5qcz9kZWEyIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IParticle.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IParticleGradientAnimation.js": +/*!********************************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IParticleGradientAnimation.js ***! + \********************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lQYXJ0aWNsZUdyYWRpZW50QW5pbWF0aW9uLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9Db3JlL0ludGVyZmFjZXMvSVBhcnRpY2xlR3JhZGllbnRBbmltYXRpb24uanM/YzlhMSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IParticleGradientAnimation.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IParticleGradientColorAnimation.js": +/*!*************************************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IParticleGradientColorAnimation.js ***! + \*************************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lQYXJ0aWNsZUdyYWRpZW50Q29sb3JBbmltYXRpb24uanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0NvcmUvSW50ZXJmYWNlcy9JUGFydGljbGVHcmFkaWVudENvbG9yQW5pbWF0aW9uLmpzPzM0ZjYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IParticleGradientColorAnimation.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IParticleHslAnimation.js": +/*!***************************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IParticleHslAnimation.js ***! + \***************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lQYXJ0aWNsZUhzbEFuaW1hdGlvbi5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lQYXJ0aWNsZUhzbEFuaW1hdGlvbi5qcz8zNDhiIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IParticleHslAnimation.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IParticleLife.js": +/*!*******************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IParticleLife.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lQYXJ0aWNsZUxpZmUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0NvcmUvSW50ZXJmYWNlcy9JUGFydGljbGVMaWZlLmpzPzY5NTAiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IParticleLife.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IParticleLoops.js": +/*!********************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IParticleLoops.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lQYXJ0aWNsZUxvb3BzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9Db3JlL0ludGVyZmFjZXMvSVBhcnRpY2xlTG9vcHMuanM/ZmMxNyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IParticleLoops.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IParticleRetinaProps.js": +/*!**************************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IParticleRetinaProps.js ***! + \**************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lQYXJ0aWNsZVJldGluYVByb3BzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9Db3JlL0ludGVyZmFjZXMvSVBhcnRpY2xlUmV0aW5hUHJvcHMuanM/YmY4MCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IParticleRetinaProps.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IParticleSpin.js": +/*!*******************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IParticleSpin.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lQYXJ0aWNsZVNwaW4uanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0NvcmUvSW50ZXJmYWNlcy9JUGFydGljbGVTcGluLmpzP2ZlODUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IParticleSpin.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IParticleUpdater.js": +/*!**********************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IParticleUpdater.js ***! + \**********************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lQYXJ0aWNsZVVwZGF0ZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0NvcmUvSW50ZXJmYWNlcy9JUGFydGljbGVVcGRhdGVyLmpzPzM5MjEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IParticleUpdater.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IParticleValueAnimation.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IParticleValueAnimation.js ***! + \*****************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lQYXJ0aWNsZVZhbHVlQW5pbWF0aW9uLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9Db3JlL0ludGVyZmFjZXMvSVBhcnRpY2xlVmFsdWVBbmltYXRpb24uanM/ODUxMiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IParticleValueAnimation.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IParticlesInteractor.js": +/*!**************************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IParticlesInteractor.js ***! + \**************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lQYXJ0aWNsZXNJbnRlcmFjdG9yLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9Db3JlL0ludGVyZmFjZXMvSVBhcnRpY2xlc0ludGVyYWN0b3IuanM/NzNmMSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IParticlesInteractor.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IPlugin.js": +/*!*************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IPlugin.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lQbHVnaW4uanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0NvcmUvSW50ZXJmYWNlcy9JUGx1Z2luLmpzPzdhZjMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IPlugin.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IRangeValue.js": +/*!*****************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IRangeValue.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lSYW5nZVZhbHVlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9Db3JlL0ludGVyZmFjZXMvSVJhbmdlVmFsdWUuanM/NThjOSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IRangeValue.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IRectSideResult.js": +/*!*********************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IRectSideResult.js ***! + \*********************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lSZWN0U2lkZVJlc3VsdC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lSZWN0U2lkZVJlc3VsdC5qcz9hM2E5Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IRectSideResult.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IRepulse.js": +/*!**************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IRepulse.js ***! + \**************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lSZXB1bHNlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9Db3JlL0ludGVyZmFjZXMvSVJlcHVsc2UuanM/ZDA5ZSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IRepulse.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IShapeDrawer.js": +/*!******************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IShapeDrawer.js ***! + \******************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lTaGFwZURyYXdlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lTaGFwZURyYXdlci5qcz9kYTA2Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IShapeDrawer.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IShapeValues.js": +/*!******************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IShapeValues.js ***! + \******************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lTaGFwZVZhbHVlcy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lTaGFwZVZhbHVlcy5qcz82ZjI2Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IShapeValues.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/index.js": +/*!***********************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/index.js ***! + \***********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n__exportStar(__webpack_require__(/*! ./Colors */ \"./node_modules/tsparticles/Core/Interfaces/Colors.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Gradients */ \"./node_modules/tsparticles/Core/Interfaces/Gradients.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IAttract */ \"./node_modules/tsparticles/Core/Interfaces/IAttract.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IBounds */ \"./node_modules/tsparticles/Core/Interfaces/IBounds.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IBubble */ \"./node_modules/tsparticles/Core/Interfaces/IBubble.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IBubbleParticleData */ \"./node_modules/tsparticles/Core/Interfaces/IBubbleParticleData.js\"), exports);\n__exportStar(__webpack_require__(/*! ./ICircleBouncer */ \"./node_modules/tsparticles/Core/Interfaces/ICircleBouncer.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IContainerInteractivity */ \"./node_modules/tsparticles/Core/Interfaces/IContainerInteractivity.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IContainerPlugin */ \"./node_modules/tsparticles/Core/Interfaces/IContainerPlugin.js\"), exports);\n__exportStar(__webpack_require__(/*! ./ICoordinates */ \"./node_modules/tsparticles/Core/Interfaces/ICoordinates.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IDelta */ \"./node_modules/tsparticles/Core/Interfaces/IDelta.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IDimension */ \"./node_modules/tsparticles/Core/Interfaces/IDimension.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IDistance */ \"./node_modules/tsparticles/Core/Interfaces/IDistance.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IExternalInteractor */ \"./node_modules/tsparticles/Core/Interfaces/IExternalInteractor.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IInteractor */ \"./node_modules/tsparticles/Core/Interfaces/IInteractor.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IMouseData */ \"./node_modules/tsparticles/Core/Interfaces/IMouseData.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IMovePathGenerator */ \"./node_modules/tsparticles/Core/Interfaces/IMovePathGenerator.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IParticle */ \"./node_modules/tsparticles/Core/Interfaces/IParticle.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IParticleGradientAnimation */ \"./node_modules/tsparticles/Core/Interfaces/IParticleGradientAnimation.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IParticleGradientColorAnimation */ \"./node_modules/tsparticles/Core/Interfaces/IParticleGradientColorAnimation.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IParticleHslAnimation */ \"./node_modules/tsparticles/Core/Interfaces/IParticleHslAnimation.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IParticleLife */ \"./node_modules/tsparticles/Core/Interfaces/IParticleLife.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IParticleLoops */ \"./node_modules/tsparticles/Core/Interfaces/IParticleLoops.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IParticleRetinaProps */ \"./node_modules/tsparticles/Core/Interfaces/IParticleRetinaProps.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IParticleSpin */ \"./node_modules/tsparticles/Core/Interfaces/IParticleSpin.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IParticleUpdater */ \"./node_modules/tsparticles/Core/Interfaces/IParticleUpdater.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IParticleValueAnimation */ \"./node_modules/tsparticles/Core/Interfaces/IParticleValueAnimation.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IParticlesInteractor */ \"./node_modules/tsparticles/Core/Interfaces/IParticlesInteractor.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IPlugin */ \"./node_modules/tsparticles/Core/Interfaces/IPlugin.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IRangeValue */ \"./node_modules/tsparticles/Core/Interfaces/IRangeValue.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IRectSideResult */ \"./node_modules/tsparticles/Core/Interfaces/IRectSideResult.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IRepulse */ \"./node_modules/tsparticles/Core/Interfaces/IRepulse.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IShapeDrawer */ \"./node_modules/tsparticles/Core/Interfaces/IShapeDrawer.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IShapeValues */ \"./node_modules/tsparticles/Core/Interfaces/IShapeValues.js\"), exports);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQTtBQUNBLG1DQUFtQyxvQ0FBb0MsZ0JBQWdCO0FBQ3ZGLENBQUM7QUFDRDtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxhQUFhLG1CQUFPLENBQUMsc0VBQVU7QUFDL0IsYUFBYSxtQkFBTyxDQUFDLDRFQUFhO0FBQ2xDLGFBQWEsbUJBQU8sQ0FBQywwRUFBWTtBQUNqQyxhQUFhLG1CQUFPLENBQUMsd0VBQVc7QUFDaEMsYUFBYSxtQkFBTyxDQUFDLHdFQUFXO0FBQ2hDLGFBQWEsbUJBQU8sQ0FBQyxnR0FBdUI7QUFDNUMsYUFBYSxtQkFBTyxDQUFDLHNGQUFrQjtBQUN2QyxhQUFhLG1CQUFPLENBQUMsd0dBQTJCO0FBQ2hELGFBQWEsbUJBQU8sQ0FBQywwRkFBb0I7QUFDekMsYUFBYSxtQkFBTyxDQUFDLGtGQUFnQjtBQUNyQyxhQUFhLG1CQUFPLENBQUMsc0VBQVU7QUFDL0IsYUFBYSxtQkFBTyxDQUFDLDhFQUFjO0FBQ25DLGFBQWEsbUJBQU8sQ0FBQyw0RUFBYTtBQUNsQyxhQUFhLG1CQUFPLENBQUMsZ0dBQXVCO0FBQzVDLGFBQWEsbUJBQU8sQ0FBQyxnRkFBZTtBQUNwQyxhQUFhLG1CQUFPLENBQUMsOEVBQWM7QUFDbkMsYUFBYSxtQkFBTyxDQUFDLDhGQUFzQjtBQUMzQyxhQUFhLG1CQUFPLENBQUMsNEVBQWE7QUFDbEMsYUFBYSxtQkFBTyxDQUFDLDhHQUE4QjtBQUNuRCxhQUFhLG1CQUFPLENBQUMsd0hBQW1DO0FBQ3hELGFBQWEsbUJBQU8sQ0FBQyxvR0FBeUI7QUFDOUMsYUFBYSxtQkFBTyxDQUFDLG9GQUFpQjtBQUN0QyxhQUFhLG1CQUFPLENBQUMsc0ZBQWtCO0FBQ3ZDLGFBQWEsbUJBQU8sQ0FBQyxrR0FBd0I7QUFDN0MsYUFBYSxtQkFBTyxDQUFDLG9GQUFpQjtBQUN0QyxhQUFhLG1CQUFPLENBQUMsMEZBQW9CO0FBQ3pDLGFBQWEsbUJBQU8sQ0FBQyx3R0FBMkI7QUFDaEQsYUFBYSxtQkFBTyxDQUFDLGtHQUF3QjtBQUM3QyxhQUFhLG1CQUFPLENBQUMsd0VBQVc7QUFDaEMsYUFBYSxtQkFBTyxDQUFDLGdGQUFlO0FBQ3BDLGFBQWEsbUJBQU8sQ0FBQyx3RkFBbUI7QUFDeEMsYUFBYSxtQkFBTyxDQUFDLDBFQUFZO0FBQ2pDLGFBQWEsbUJBQU8sQ0FBQyxrRkFBZ0I7QUFDckMsYUFBYSxtQkFBTyxDQUFDLGtGQUFnQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL2luZGV4LmpzP2Q3MjEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19jcmVhdGVCaW5kaW5nID0gKHRoaXMgJiYgdGhpcy5fX2NyZWF0ZUJpbmRpbmcpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfSk7XG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgb1trMl0gPSBtW2tdO1xufSkpO1xudmFyIF9fZXhwb3J0U3RhciA9ICh0aGlzICYmIHRoaXMuX19leHBvcnRTdGFyKSB8fCBmdW5jdGlvbihtLCBleHBvcnRzKSB7XG4gICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gXCJkZWZhdWx0XCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzLCBwKSkgX19jcmVhdGVCaW5kaW5nKGV4cG9ydHMsIG0sIHApO1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9Db2xvcnNcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0dyYWRpZW50c1wiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vSUF0dHJhY3RcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0lCb3VuZHNcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0lCdWJibGVcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0lCdWJibGVQYXJ0aWNsZURhdGFcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0lDaXJjbGVCb3VuY2VyXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9JQ29udGFpbmVySW50ZXJhY3Rpdml0eVwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vSUNvbnRhaW5lclBsdWdpblwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vSUNvb3JkaW5hdGVzXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9JRGVsdGFcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0lEaW1lbnNpb25cIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0lEaXN0YW5jZVwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vSUV4dGVybmFsSW50ZXJhY3RvclwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vSUludGVyYWN0b3JcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0lNb3VzZURhdGFcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0lNb3ZlUGF0aEdlbmVyYXRvclwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vSVBhcnRpY2xlXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9JUGFydGljbGVHcmFkaWVudEFuaW1hdGlvblwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vSVBhcnRpY2xlR3JhZGllbnRDb2xvckFuaW1hdGlvblwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vSVBhcnRpY2xlSHNsQW5pbWF0aW9uXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9JUGFydGljbGVMaWZlXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9JUGFydGljbGVMb29wc1wiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vSVBhcnRpY2xlUmV0aW5hUHJvcHNcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0lQYXJ0aWNsZVNwaW5cIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0lQYXJ0aWNsZVVwZGF0ZXJcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0lQYXJ0aWNsZVZhbHVlQW5pbWF0aW9uXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9JUGFydGljbGVzSW50ZXJhY3RvclwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vSVBsdWdpblwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vSVJhbmdlVmFsdWVcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0lSZWN0U2lkZVJlc3VsdFwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vSVJlcHVsc2VcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0lTaGFwZURyYXdlclwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vSVNoYXBlVmFsdWVzXCIpLCBleHBvcnRzKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Loader.js": +/*!*************************************************!*\ + !*** ./node_modules/tsparticles/Core/Loader.js ***! + \*************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Loader = void 0;\nconst Container_1 = __webpack_require__(/*! ./Container */ \"./node_modules/tsparticles/Core/Container.js\");\nconst Utils_1 = __webpack_require__(/*! ../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst tsParticlesDom = [];\nfunction fetchError(statusCode) {\n console.error(`Error tsParticles - fetch status: ${statusCode}`);\n console.error(\"Error tsParticles - File config not found\");\n}\nclass Loader {\n static dom() {\n return tsParticlesDom;\n }\n static domItem(index) {\n const dom = Loader.dom();\n const item = dom[index];\n if (item && !item.destroyed) {\n return item;\n }\n dom.splice(index, 1);\n }\n static async loadOptions(params) {\n var _a, _b, _c;\n const tagId = (_a = params.tagId) !== null && _a !== void 0 ? _a : `tsparticles${Math.floor(Math.random() * 10000)}`;\n const { options, index } = params;\n let domContainer = (_b = params.element) !== null && _b !== void 0 ? _b : document.getElementById(tagId);\n if (!domContainer) {\n domContainer = document.createElement(\"div\");\n domContainer.id = tagId;\n (_c = document.querySelector(\"body\")) === null || _c === void 0 ? void 0 : _c.append(domContainer);\n }\n const currentOptions = options instanceof Array ? (0, Utils_1.itemFromArray)(options, index) : options;\n const dom = Loader.dom();\n const oldIndex = dom.findIndex((v) => v.id === tagId);\n if (oldIndex >= 0) {\n const old = Loader.domItem(oldIndex);\n if (old && !old.destroyed) {\n old.destroy();\n dom.splice(oldIndex, 1);\n }\n }\n let canvasEl;\n let generatedCanvas;\n if (domContainer.tagName.toLowerCase() === \"canvas\") {\n canvasEl = domContainer;\n generatedCanvas = false;\n }\n else {\n const existingCanvases = domContainer.getElementsByTagName(\"canvas\");\n if (existingCanvases.length) {\n canvasEl = existingCanvases[0];\n if (!canvasEl.className) {\n canvasEl.className = Utils_1.Constants.canvasClass;\n }\n generatedCanvas = false;\n }\n else {\n generatedCanvas = true;\n canvasEl = document.createElement(\"canvas\");\n canvasEl.className = Utils_1.Constants.canvasClass;\n canvasEl.style.width = \"100%\";\n canvasEl.style.height = \"100%\";\n domContainer.appendChild(canvasEl);\n }\n }\n const newItem = new Container_1.Container(tagId, currentOptions);\n if (oldIndex >= 0) {\n dom.splice(oldIndex, 0, newItem);\n }\n else {\n dom.push(newItem);\n }\n newItem.canvas.loadCanvas(canvasEl, generatedCanvas);\n await newItem.start();\n return newItem;\n }\n static async loadRemoteOptions(params) {\n const { url: jsonUrl, index } = params;\n const url = jsonUrl instanceof Array ? (0, Utils_1.itemFromArray)(jsonUrl, index) : jsonUrl;\n if (!url) {\n return;\n }\n const response = await fetch(url);\n if (!response.ok) {\n fetchError(response.status);\n return;\n }\n const data = await response.json();\n return await Loader.loadOptions({\n tagId: params.tagId,\n element: params.element,\n index,\n options: data,\n });\n }\n static load(tagId, options, index) {\n const params = { index };\n if (typeof tagId === \"string\") {\n params.tagId = tagId;\n }\n else {\n params.options = tagId;\n }\n if (typeof options === \"number\") {\n params.index = options !== null && options !== void 0 ? options : params.index;\n }\n else {\n params.options = options !== null && options !== void 0 ? options : params.options;\n }\n return this.loadOptions(params);\n }\n static async set(id, domContainer, options, index) {\n const params = { index };\n if (typeof id === \"string\") {\n params.tagId = id;\n }\n else {\n params.element = id;\n }\n if (domContainer instanceof HTMLElement) {\n params.element = domContainer;\n }\n else {\n params.options = domContainer;\n }\n if (typeof options === \"number\") {\n params.index = options;\n }\n else {\n params.options = options !== null && options !== void 0 ? options : params.options;\n }\n return this.loadOptions(params);\n }\n static async loadJSON(tagId, jsonUrl, index) {\n let url, id;\n if (typeof jsonUrl === \"number\" || jsonUrl === undefined) {\n url = tagId;\n }\n else {\n id = tagId;\n url = jsonUrl;\n }\n return await Loader.loadRemoteOptions({ tagId: id, url, index });\n }\n static async setJSON(id, domContainer, jsonUrl, index) {\n let url, newId, newIndex, element;\n if (id instanceof HTMLElement) {\n element = id;\n url = domContainer;\n newIndex = jsonUrl;\n }\n else {\n newId = id;\n element = domContainer;\n url = jsonUrl;\n newIndex = index;\n }\n return await Loader.loadRemoteOptions({ tagId: newId, url, index: newIndex, element });\n }\n static setOnClickHandler(callback) {\n const dom = Loader.dom();\n if (dom.length === 0) {\n throw new Error(\"Can only set click handlers after calling tsParticles.load() or tsParticles.loadJSON()\");\n }\n for (const domItem of dom) {\n domItem.addClickHandler(callback);\n }\n }\n}\nexports.Loader = Loader;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9Mb2FkZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsY0FBYztBQUNkLG9CQUFvQixtQkFBTyxDQUFDLGlFQUFhO0FBQ3pDLGdCQUFnQixtQkFBTyxDQUFDLDJEQUFVO0FBQ2xDO0FBQ0E7QUFDQSx1REFBdUQsV0FBVztBQUNsRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlGQUF5RixrQ0FBa0M7QUFDM0gsZ0JBQWdCLGlCQUFpQjtBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixzQkFBc0I7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnREFBZ0QsdUJBQXVCO0FBQ3ZFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnREFBZ0QsNkNBQTZDO0FBQzdGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9Db3JlL0xvYWRlci5qcz9kMTBjIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Mb2FkZXIgPSB2b2lkIDA7XG5jb25zdCBDb250YWluZXJfMSA9IHJlcXVpcmUoXCIuL0NvbnRhaW5lclwiKTtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vVXRpbHNcIik7XG5jb25zdCB0c1BhcnRpY2xlc0RvbSA9IFtdO1xuZnVuY3Rpb24gZmV0Y2hFcnJvcihzdGF0dXNDb2RlKSB7XG4gICAgY29uc29sZS5lcnJvcihgRXJyb3IgdHNQYXJ0aWNsZXMgLSBmZXRjaCBzdGF0dXM6ICR7c3RhdHVzQ29kZX1gKTtcbiAgICBjb25zb2xlLmVycm9yKFwiRXJyb3IgdHNQYXJ0aWNsZXMgLSBGaWxlIGNvbmZpZyBub3QgZm91bmRcIik7XG59XG5jbGFzcyBMb2FkZXIge1xuICAgIHN0YXRpYyBkb20oKSB7XG4gICAgICAgIHJldHVybiB0c1BhcnRpY2xlc0RvbTtcbiAgICB9XG4gICAgc3RhdGljIGRvbUl0ZW0oaW5kZXgpIHtcbiAgICAgICAgY29uc3QgZG9tID0gTG9hZGVyLmRvbSgpO1xuICAgICAgICBjb25zdCBpdGVtID0gZG9tW2luZGV4XTtcbiAgICAgICAgaWYgKGl0ZW0gJiYgIWl0ZW0uZGVzdHJveWVkKSB7XG4gICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgfVxuICAgICAgICBkb20uc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9XG4gICAgc3RhdGljIGFzeW5jIGxvYWRPcHRpb25zKHBhcmFtcykge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgY29uc3QgdGFnSWQgPSAoX2EgPSBwYXJhbXMudGFnSWQpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGB0c3BhcnRpY2xlcyR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwMDApfWA7XG4gICAgICAgIGNvbnN0IHsgb3B0aW9ucywgaW5kZXggfSA9IHBhcmFtcztcbiAgICAgICAgbGV0IGRvbUNvbnRhaW5lciA9IChfYiA9IHBhcmFtcy5lbGVtZW50KSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0YWdJZCk7XG4gICAgICAgIGlmICghZG9tQ29udGFpbmVyKSB7XG4gICAgICAgICAgICBkb21Db250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuICAgICAgICAgICAgZG9tQ29udGFpbmVyLmlkID0gdGFnSWQ7XG4gICAgICAgICAgICAoX2MgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiYm9keVwiKSkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLmFwcGVuZChkb21Db250YWluZXIpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGN1cnJlbnRPcHRpb25zID0gb3B0aW9ucyBpbnN0YW5jZW9mIEFycmF5ID8gKDAsIFV0aWxzXzEuaXRlbUZyb21BcnJheSkob3B0aW9ucywgaW5kZXgpIDogb3B0aW9ucztcbiAgICAgICAgY29uc3QgZG9tID0gTG9hZGVyLmRvbSgpO1xuICAgICAgICBjb25zdCBvbGRJbmRleCA9IGRvbS5maW5kSW5kZXgoKHYpID0+IHYuaWQgPT09IHRhZ0lkKTtcbiAgICAgICAgaWYgKG9sZEluZGV4ID49IDApIHtcbiAgICAgICAgICAgIGNvbnN0IG9sZCA9IExvYWRlci5kb21JdGVtKG9sZEluZGV4KTtcbiAgICAgICAgICAgIGlmIChvbGQgJiYgIW9sZC5kZXN0cm95ZWQpIHtcbiAgICAgICAgICAgICAgICBvbGQuZGVzdHJveSgpO1xuICAgICAgICAgICAgICAgIGRvbS5zcGxpY2Uob2xkSW5kZXgsIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGxldCBjYW52YXNFbDtcbiAgICAgICAgbGV0IGdlbmVyYXRlZENhbnZhcztcbiAgICAgICAgaWYgKGRvbUNvbnRhaW5lci50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09IFwiY2FudmFzXCIpIHtcbiAgICAgICAgICAgIGNhbnZhc0VsID0gZG9tQ29udGFpbmVyO1xuICAgICAgICAgICAgZ2VuZXJhdGVkQ2FudmFzID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBleGlzdGluZ0NhbnZhc2VzID0gZG9tQ29udGFpbmVyLmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiY2FudmFzXCIpO1xuICAgICAgICAgICAgaWYgKGV4aXN0aW5nQ2FudmFzZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgY2FudmFzRWwgPSBleGlzdGluZ0NhbnZhc2VzWzBdO1xuICAgICAgICAgICAgICAgIGlmICghY2FudmFzRWwuY2xhc3NOYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhbnZhc0VsLmNsYXNzTmFtZSA9IFV0aWxzXzEuQ29uc3RhbnRzLmNhbnZhc0NsYXNzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBnZW5lcmF0ZWRDYW52YXMgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGdlbmVyYXRlZENhbnZhcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgY2FudmFzRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiY2FudmFzXCIpO1xuICAgICAgICAgICAgICAgIGNhbnZhc0VsLmNsYXNzTmFtZSA9IFV0aWxzXzEuQ29uc3RhbnRzLmNhbnZhc0NsYXNzO1xuICAgICAgICAgICAgICAgIGNhbnZhc0VsLnN0eWxlLndpZHRoID0gXCIxMDAlXCI7XG4gICAgICAgICAgICAgICAgY2FudmFzRWwuc3R5bGUuaGVpZ2h0ID0gXCIxMDAlXCI7XG4gICAgICAgICAgICAgICAgZG9tQ29udGFpbmVyLmFwcGVuZENoaWxkKGNhbnZhc0VsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXdJdGVtID0gbmV3IENvbnRhaW5lcl8xLkNvbnRhaW5lcih0YWdJZCwgY3VycmVudE9wdGlvbnMpO1xuICAgICAgICBpZiAob2xkSW5kZXggPj0gMCkge1xuICAgICAgICAgICAgZG9tLnNwbGljZShvbGRJbmRleCwgMCwgbmV3SXRlbSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBkb20ucHVzaChuZXdJdGVtKTtcbiAgICAgICAgfVxuICAgICAgICBuZXdJdGVtLmNhbnZhcy5sb2FkQ2FudmFzKGNhbnZhc0VsLCBnZW5lcmF0ZWRDYW52YXMpO1xuICAgICAgICBhd2FpdCBuZXdJdGVtLnN0YXJ0KCk7XG4gICAgICAgIHJldHVybiBuZXdJdGVtO1xuICAgIH1cbiAgICBzdGF0aWMgYXN5bmMgbG9hZFJlbW90ZU9wdGlvbnMocGFyYW1zKSB7XG4gICAgICAgIGNvbnN0IHsgdXJsOiBqc29uVXJsLCBpbmRleCB9ID0gcGFyYW1zO1xuICAgICAgICBjb25zdCB1cmwgPSBqc29uVXJsIGluc3RhbmNlb2YgQXJyYXkgPyAoMCwgVXRpbHNfMS5pdGVtRnJvbUFycmF5KShqc29uVXJsLCBpbmRleCkgOiBqc29uVXJsO1xuICAgICAgICBpZiAoIXVybCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsKTtcbiAgICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICAgICAgZmV0Y2hFcnJvcihyZXNwb25zZS5zdGF0dXMpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgICAgIHJldHVybiBhd2FpdCBMb2FkZXIubG9hZE9wdGlvbnMoe1xuICAgICAgICAgICAgdGFnSWQ6IHBhcmFtcy50YWdJZCxcbiAgICAgICAgICAgIGVsZW1lbnQ6IHBhcmFtcy5lbGVtZW50LFxuICAgICAgICAgICAgaW5kZXgsXG4gICAgICAgICAgICBvcHRpb25zOiBkYXRhLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgc3RhdGljIGxvYWQodGFnSWQsIG9wdGlvbnMsIGluZGV4KSB7XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHsgaW5kZXggfTtcbiAgICAgICAgaWYgKHR5cGVvZiB0YWdJZCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcGFyYW1zLnRhZ0lkID0gdGFnSWQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBwYXJhbXMub3B0aW9ucyA9IHRhZ0lkO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgcGFyYW1zLmluZGV4ID0gb3B0aW9ucyAhPT0gbnVsbCAmJiBvcHRpb25zICE9PSB2b2lkIDAgPyBvcHRpb25zIDogcGFyYW1zLmluZGV4O1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcGFyYW1zLm9wdGlvbnMgPSBvcHRpb25zICE9PSBudWxsICYmIG9wdGlvbnMgIT09IHZvaWQgMCA/IG9wdGlvbnMgOiBwYXJhbXMub3B0aW9ucztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5sb2FkT3B0aW9ucyhwYXJhbXMpO1xuICAgIH1cbiAgICBzdGF0aWMgYXN5bmMgc2V0KGlkLCBkb21Db250YWluZXIsIG9wdGlvbnMsIGluZGV4KSB7XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHsgaW5kZXggfTtcbiAgICAgICAgaWYgKHR5cGVvZiBpZCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcGFyYW1zLnRhZ0lkID0gaWQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBwYXJhbXMuZWxlbWVudCA9IGlkO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkb21Db250YWluZXIgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgICAgICAgcGFyYW1zLmVsZW1lbnQgPSBkb21Db250YWluZXI7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBwYXJhbXMub3B0aW9ucyA9IGRvbUNvbnRhaW5lcjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIHBhcmFtcy5pbmRleCA9IG9wdGlvbnM7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBwYXJhbXMub3B0aW9ucyA9IG9wdGlvbnMgIT09IG51bGwgJiYgb3B0aW9ucyAhPT0gdm9pZCAwID8gb3B0aW9ucyA6IHBhcmFtcy5vcHRpb25zO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRPcHRpb25zKHBhcmFtcyk7XG4gICAgfVxuICAgIHN0YXRpYyBhc3luYyBsb2FkSlNPTih0YWdJZCwganNvblVybCwgaW5kZXgpIHtcbiAgICAgICAgbGV0IHVybCwgaWQ7XG4gICAgICAgIGlmICh0eXBlb2YganNvblVybCA9PT0gXCJudW1iZXJcIiB8fCBqc29uVXJsID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHVybCA9IHRhZ0lkO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWQgPSB0YWdJZDtcbiAgICAgICAgICAgIHVybCA9IGpzb25Vcmw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGF3YWl0IExvYWRlci5sb2FkUmVtb3RlT3B0aW9ucyh7IHRhZ0lkOiBpZCwgdXJsLCBpbmRleCB9KTtcbiAgICB9XG4gICAgc3RhdGljIGFzeW5jIHNldEpTT04oaWQsIGRvbUNvbnRhaW5lciwganNvblVybCwgaW5kZXgpIHtcbiAgICAgICAgbGV0IHVybCwgbmV3SWQsIG5ld0luZGV4LCBlbGVtZW50O1xuICAgICAgICBpZiAoaWQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgICAgICAgZWxlbWVudCA9IGlkO1xuICAgICAgICAgICAgdXJsID0gZG9tQ29udGFpbmVyO1xuICAgICAgICAgICAgbmV3SW5kZXggPSBqc29uVXJsO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbmV3SWQgPSBpZDtcbiAgICAgICAgICAgIGVsZW1lbnQgPSBkb21Db250YWluZXI7XG4gICAgICAgICAgICB1cmwgPSBqc29uVXJsO1xuICAgICAgICAgICAgbmV3SW5kZXggPSBpbmRleDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXdhaXQgTG9hZGVyLmxvYWRSZW1vdGVPcHRpb25zKHsgdGFnSWQ6IG5ld0lkLCB1cmwsIGluZGV4OiBuZXdJbmRleCwgZWxlbWVudCB9KTtcbiAgICB9XG4gICAgc3RhdGljIHNldE9uQ2xpY2tIYW5kbGVyKGNhbGxiYWNrKSB7XG4gICAgICAgIGNvbnN0IGRvbSA9IExvYWRlci5kb20oKTtcbiAgICAgICAgaWYgKGRvbS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbiBvbmx5IHNldCBjbGljayBoYW5kbGVycyBhZnRlciBjYWxsaW5nIHRzUGFydGljbGVzLmxvYWQoKSBvciB0c1BhcnRpY2xlcy5sb2FkSlNPTigpXCIpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgZG9tSXRlbSBvZiBkb20pIHtcbiAgICAgICAgICAgIGRvbUl0ZW0uYWRkQ2xpY2tIYW5kbGVyKGNhbGxiYWNrKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuTG9hZGVyID0gTG9hZGVyO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Loader.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Particle.js": +/*!***************************************************!*\ + !*** ./node_modules/tsparticles/Core/Particle.js ***! + \***************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Particle = void 0;\nconst ParticlesOptions_1 = __webpack_require__(/*! ../Options/Classes/Particles/ParticlesOptions */ \"./node_modules/tsparticles/Options/Classes/Particles/ParticlesOptions.js\");\nconst Shape_1 = __webpack_require__(/*! ../Options/Classes/Particles/Shape/Shape */ \"./node_modules/tsparticles/Options/Classes/Particles/Shape/Shape.js\");\nconst Enums_1 = __webpack_require__(/*! ../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst Utils_1 = __webpack_require__(/*! ../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Vector_1 = __webpack_require__(/*! ./Particle/Vector */ \"./node_modules/tsparticles/Core/Particle/Vector.js\");\nconst Vector3d_1 = __webpack_require__(/*! ./Particle/Vector3d */ \"./node_modules/tsparticles/Core/Particle/Vector3d.js\");\nconst fixOutMode = (data) => {\n if ((0, Utils_1.isInArray)(data.outMode, data.checkModes) || (0, Utils_1.isInArray)(data.outMode, data.checkModes)) {\n if (data.coord > data.maxCoord - data.radius * 2) {\n data.setCb(-data.radius);\n }\n else if (data.coord < data.radius * 2) {\n data.setCb(data.radius);\n }\n }\n};\nclass Particle {\n constructor(id, container, position, overrideOptions, group) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n this.id = id;\n this.container = container;\n this.group = group;\n this.fill = true;\n this.close = true;\n this.lastPathTime = 0;\n this.destroyed = false;\n this.unbreakable = false;\n this.splitCount = 0;\n this.misplaced = false;\n this.retina = {\n maxDistance: {},\n };\n const pxRatio = container.retina.pixelRatio;\n const mainOptions = container.actualOptions;\n const particlesOptions = new ParticlesOptions_1.ParticlesOptions();\n particlesOptions.load(mainOptions.particles);\n const shapeType = particlesOptions.shape.type;\n const reduceDuplicates = particlesOptions.reduceDuplicates;\n this.shape = shapeType instanceof Array ? (0, Utils_1.itemFromArray)(shapeType, this.id, reduceDuplicates) : shapeType;\n if (overrideOptions === null || overrideOptions === void 0 ? void 0 : overrideOptions.shape) {\n if (overrideOptions.shape.type) {\n const overrideShapeType = overrideOptions.shape.type;\n this.shape =\n overrideShapeType instanceof Array\n ? (0, Utils_1.itemFromArray)(overrideShapeType, this.id, reduceDuplicates)\n : overrideShapeType;\n }\n const shapeOptions = new Shape_1.Shape();\n shapeOptions.load(overrideOptions.shape);\n if (this.shape) {\n this.shapeData = this.loadShapeData(shapeOptions, reduceDuplicates);\n }\n }\n else {\n this.shapeData = this.loadShapeData(particlesOptions.shape, reduceDuplicates);\n }\n if (overrideOptions !== undefined) {\n particlesOptions.load(overrideOptions);\n }\n if (((_a = this.shapeData) === null || _a === void 0 ? void 0 : _a.particles) !== undefined) {\n particlesOptions.load((_b = this.shapeData) === null || _b === void 0 ? void 0 : _b.particles);\n }\n this.fill = (_d = (_c = this.shapeData) === null || _c === void 0 ? void 0 : _c.fill) !== null && _d !== void 0 ? _d : this.fill;\n this.close = (_f = (_e = this.shapeData) === null || _e === void 0 ? void 0 : _e.close) !== null && _f !== void 0 ? _f : this.close;\n this.options = particlesOptions;\n this.pathDelay = (0, Utils_1.getValue)(this.options.move.path.delay) * 1000;\n const zIndexValue = (0, Utils_1.getRangeValue)(this.options.zIndex.value);\n container.retina.initParticle(this);\n const sizeOptions = this.options.size, sizeRange = sizeOptions.value;\n this.size = {\n enable: sizeOptions.animation.enable,\n value: (0, Utils_1.getValue)(sizeOptions) * container.retina.pixelRatio,\n max: (0, Utils_1.getRangeMax)(sizeRange) * pxRatio,\n min: (0, Utils_1.getRangeMin)(sizeRange) * pxRatio,\n loops: 0,\n maxLoops: sizeOptions.animation.count,\n };\n const sizeAnimation = sizeOptions.animation;\n if (sizeAnimation.enable) {\n this.size.status = Enums_1.AnimationStatus.increasing;\n switch (sizeAnimation.startValue) {\n case Enums_1.StartValueType.min:\n this.size.value = this.size.min;\n this.size.status = Enums_1.AnimationStatus.increasing;\n break;\n case Enums_1.StartValueType.random:\n this.size.value = (0, Utils_1.randomInRange)(this.size) * pxRatio;\n this.size.status = Math.random() >= 0.5 ? Enums_1.AnimationStatus.increasing : Enums_1.AnimationStatus.decreasing;\n break;\n case Enums_1.StartValueType.max:\n default:\n this.size.value = this.size.max;\n this.size.status = Enums_1.AnimationStatus.decreasing;\n break;\n }\n this.size.velocity =\n (((_g = this.retina.sizeAnimationSpeed) !== null && _g !== void 0 ? _g : container.retina.sizeAnimationSpeed) / 100) *\n container.retina.reduceFactor;\n if (!sizeAnimation.sync) {\n this.size.velocity *= Math.random();\n }\n }\n this.direction = (0, Utils_1.getParticleDirectionAngle)(this.options.move.direction);\n this.bubble = {\n inRange: false,\n };\n this.initialVelocity = this.calculateVelocity();\n this.velocity = this.initialVelocity.copy();\n this.moveDecay = 1 - (0, Utils_1.getRangeValue)(this.options.move.decay);\n this.position = this.calcPosition(container, position, (0, Utils_1.clamp)(zIndexValue, 0, container.zLayers));\n this.initialPosition = this.position.copy();\n this.offset = Vector_1.Vector.origin;\n const particles = container.particles;\n particles.needsSort = particles.needsSort || particles.lastZIndex < this.position.z;\n particles.lastZIndex = this.position.z;\n this.zIndexFactor = this.position.z / container.zLayers;\n this.sides = 24;\n let drawer = container.drawers.get(this.shape);\n if (!drawer) {\n drawer = Utils_1.Plugins.getShapeDrawer(this.shape);\n if (drawer) {\n container.drawers.set(this.shape, drawer);\n }\n }\n if (drawer === null || drawer === void 0 ? void 0 : drawer.loadShape) {\n drawer === null || drawer === void 0 ? void 0 : drawer.loadShape(this);\n }\n const sideCountFunc = drawer === null || drawer === void 0 ? void 0 : drawer.getSidesCount;\n if (sideCountFunc) {\n this.sides = sideCountFunc(this);\n }\n this.life = this.loadLife();\n this.spawning = this.life.delay > 0;\n if (this.options.move.spin.enable) {\n const spinPos = (_h = this.options.move.spin.position) !== null && _h !== void 0 ? _h : { x: 50, y: 50 };\n const spinCenter = {\n x: (spinPos.x / 100) * container.canvas.size.width,\n y: (spinPos.y / 100) * container.canvas.size.height,\n };\n const pos = this.getPosition();\n const distance = (0, Utils_1.getDistance)(pos, spinCenter);\n this.spin = {\n center: spinCenter,\n direction: this.velocity.x >= 0 ? Enums_1.RotateDirection.clockwise : Enums_1.RotateDirection.counterClockwise,\n angle: this.velocity.angle,\n radius: distance,\n acceleration: (_j = this.retina.spinAcceleration) !== null && _j !== void 0 ? _j : (0, Utils_1.getRangeValue)(this.options.move.spin.acceleration),\n };\n }\n this.shadowColor = (0, Utils_1.colorToRgb)(this.options.shadow.color);\n for (const updater of container.particles.updaters) {\n if (updater.init) {\n updater.init(this);\n }\n }\n if (drawer && drawer.particleInit) {\n drawer.particleInit(container, this);\n }\n for (const [, plugin] of container.plugins) {\n if (plugin.particleCreated) {\n plugin.particleCreated(this);\n }\n }\n }\n isVisible() {\n return !this.destroyed && !this.spawning && this.isInsideCanvas();\n }\n isInsideCanvas() {\n const radius = this.getRadius();\n const canvasSize = this.container.canvas.size;\n return (this.position.x >= -radius &&\n this.position.y >= -radius &&\n this.position.y <= canvasSize.height + radius &&\n this.position.x <= canvasSize.width + radius);\n }\n draw(delta) {\n const container = this.container;\n for (const [, plugin] of container.plugins) {\n container.canvas.drawParticlePlugin(plugin, this, delta);\n }\n container.canvas.drawParticle(this, delta);\n }\n getPosition() {\n return {\n x: this.position.x + this.offset.x,\n y: this.position.y + this.offset.y,\n z: this.position.z,\n };\n }\n getRadius() {\n var _a;\n return (_a = this.bubble.radius) !== null && _a !== void 0 ? _a : this.size.value;\n }\n getMass() {\n return (this.getRadius() ** 2 * Math.PI) / 2;\n }\n getFillColor() {\n var _a, _b, _c;\n const color = (_a = this.bubble.color) !== null && _a !== void 0 ? _a : (0, Utils_1.getHslFromAnimation)(this.color);\n if (color && this.roll && (this.backColor || this.roll.alter)) {\n const rolled = Math.floor(((_c = (_b = this.roll) === null || _b === void 0 ? void 0 : _b.angle) !== null && _c !== void 0 ? _c : 0) / (Math.PI / 2)) % 2;\n if (rolled) {\n if (this.backColor) {\n return this.backColor;\n }\n if (this.roll.alter) {\n return (0, Utils_1.alterHsl)(color, this.roll.alter.type, this.roll.alter.value);\n }\n }\n }\n return color;\n }\n getStrokeColor() {\n var _a, _b;\n return (_b = (_a = this.bubble.color) !== null && _a !== void 0 ? _a : (0, Utils_1.getHslFromAnimation)(this.strokeColor)) !== null && _b !== void 0 ? _b : this.getFillColor();\n }\n destroy(override) {\n this.destroyed = true;\n this.bubble.inRange = false;\n if (this.unbreakable) {\n return;\n }\n this.destroyed = true;\n this.bubble.inRange = false;\n for (const [, plugin] of this.container.plugins) {\n if (plugin.particleDestroyed) {\n plugin.particleDestroyed(this, override);\n }\n }\n if (override) {\n return;\n }\n const destroyOptions = this.options.destroy;\n if (destroyOptions.mode === Enums_1.DestroyMode.split) {\n this.split();\n }\n }\n reset() {\n if (this.opacity) {\n this.opacity.loops = 0;\n }\n this.size.loops = 0;\n }\n split() {\n const splitOptions = this.options.destroy.split;\n if (splitOptions.count >= 0 && this.splitCount++ > splitOptions.count) {\n return;\n }\n const rate = (0, Utils_1.getRangeValue)(splitOptions.rate.value);\n for (let i = 0; i < rate; i++) {\n this.container.particles.addSplitParticle(this);\n }\n }\n calcPosition(container, position, zIndex, tryCount = 0) {\n var _a, _b, _c, _d, _e, _f;\n for (const [, plugin] of container.plugins) {\n const pluginPos = plugin.particlePosition !== undefined ? plugin.particlePosition(position, this) : undefined;\n if (pluginPos !== undefined) {\n return Vector3d_1.Vector3d.create(pluginPos.x, pluginPos.y, zIndex);\n }\n }\n const canvasSize = container.canvas.size;\n const pos = Vector3d_1.Vector3d.create((_a = position === null || position === void 0 ? void 0 : position.x) !== null && _a !== void 0 ? _a : Math.random() * canvasSize.width, (_b = position === null || position === void 0 ? void 0 : position.y) !== null && _b !== void 0 ? _b : Math.random() * canvasSize.height, zIndex);\n const radius = this.getRadius();\n const outModes = this.options.move.outModes, fixHorizontal = (outMode) => {\n fixOutMode({\n outMode,\n checkModes: [Enums_1.OutMode.bounce, Enums_1.OutMode.bounceHorizontal],\n coord: pos.x,\n maxCoord: container.canvas.size.width,\n setCb: (value) => (pos.x += value),\n radius,\n });\n }, fixVertical = (outMode) => {\n fixOutMode({\n outMode,\n checkModes: [Enums_1.OutMode.bounce, Enums_1.OutMode.bounceVertical],\n coord: pos.y,\n maxCoord: container.canvas.size.height,\n setCb: (value) => (pos.y += value),\n radius,\n });\n };\n fixHorizontal((_c = outModes.left) !== null && _c !== void 0 ? _c : outModes.default);\n fixHorizontal((_d = outModes.right) !== null && _d !== void 0 ? _d : outModes.default);\n fixVertical((_e = outModes.top) !== null && _e !== void 0 ? _e : outModes.default);\n fixVertical((_f = outModes.bottom) !== null && _f !== void 0 ? _f : outModes.default);\n if (this.checkOverlap(pos, tryCount)) {\n return this.calcPosition(container, undefined, zIndex, tryCount + 1);\n }\n return pos;\n }\n checkOverlap(pos, tryCount = 0) {\n const collisionsOptions = this.options.collisions;\n const radius = this.getRadius();\n if (!collisionsOptions.enable) {\n return false;\n }\n const overlapOptions = collisionsOptions.overlap;\n if (overlapOptions.enable) {\n return false;\n }\n const retries = overlapOptions.retries;\n if (retries >= 0 && tryCount > retries) {\n throw new Error(\"Particle is overlapping and can't be placed\");\n }\n let overlaps = false;\n for (const particle of this.container.particles.array) {\n if ((0, Utils_1.getDistance)(pos, particle.position) < radius + particle.getRadius()) {\n overlaps = true;\n break;\n }\n }\n return overlaps;\n }\n calculateVelocity() {\n const baseVelocity = (0, Utils_1.getParticleBaseVelocity)(this.direction);\n const res = baseVelocity.copy();\n const moveOptions = this.options.move;\n const rad = (Math.PI / 180) * moveOptions.angle.value;\n const radOffset = (Math.PI / 180) * moveOptions.angle.offset;\n const range = {\n left: radOffset - rad / 2,\n right: radOffset + rad / 2,\n };\n if (!moveOptions.straight) {\n res.angle += (0, Utils_1.randomInRange)((0, Utils_1.setRangeValue)(range.left, range.right));\n }\n if (moveOptions.random && typeof moveOptions.speed === \"number\") {\n res.length *= Math.random();\n }\n return res;\n }\n loadShapeData(shapeOptions, reduceDuplicates) {\n const shapeData = shapeOptions.options[this.shape];\n if (shapeData) {\n return (0, Utils_1.deepExtend)({}, shapeData instanceof Array ? (0, Utils_1.itemFromArray)(shapeData, this.id, reduceDuplicates) : shapeData);\n }\n }\n loadLife() {\n const container = this.container;\n const particlesOptions = this.options;\n const lifeOptions = particlesOptions.life;\n const life = {\n delay: container.retina.reduceFactor\n ? (((0, Utils_1.getRangeValue)(lifeOptions.delay.value) * (lifeOptions.delay.sync ? 1 : Math.random())) /\n container.retina.reduceFactor) *\n 1000\n : 0,\n delayTime: 0,\n duration: container.retina.reduceFactor\n ? (((0, Utils_1.getRangeValue)(lifeOptions.duration.value) * (lifeOptions.duration.sync ? 1 : Math.random())) /\n container.retina.reduceFactor) *\n 1000\n : 0,\n time: 0,\n count: particlesOptions.life.count,\n };\n if (life.duration <= 0) {\n life.duration = -1;\n }\n if (life.count <= 0) {\n life.count = -1;\n }\n return life;\n }\n}\nexports.Particle = Particle;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9QYXJ0aWNsZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxnQkFBZ0I7QUFDaEIsMkJBQTJCLG1CQUFPLENBQUMsK0hBQStDO0FBQ2xGLGdCQUFnQixtQkFBTyxDQUFDLHFIQUEwQztBQUNsRSxnQkFBZ0IsbUJBQU8sQ0FBQywyREFBVTtBQUNsQyxnQkFBZ0IsbUJBQU8sQ0FBQywyREFBVTtBQUNsQyxpQkFBaUIsbUJBQU8sQ0FBQyw2RUFBbUI7QUFDNUMsbUJBQW1CLG1CQUFPLENBQUMsaUZBQXFCO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJCQUEyQjtBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNHQUFzRztBQUN0RztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsVUFBVTtBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYixTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkNBQTZDO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9QYXJ0aWNsZS5qcz8xYzRkIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5QYXJ0aWNsZSA9IHZvaWQgMDtcbmNvbnN0IFBhcnRpY2xlc09wdGlvbnNfMSA9IHJlcXVpcmUoXCIuLi9PcHRpb25zL0NsYXNzZXMvUGFydGljbGVzL1BhcnRpY2xlc09wdGlvbnNcIik7XG5jb25zdCBTaGFwZV8xID0gcmVxdWlyZShcIi4uL09wdGlvbnMvQ2xhc3Nlcy9QYXJ0aWNsZXMvU2hhcGUvU2hhcGVcIik7XG5jb25zdCBFbnVtc18xID0gcmVxdWlyZShcIi4uL0VudW1zXCIpO1xuY29uc3QgVXRpbHNfMSA9IHJlcXVpcmUoXCIuLi9VdGlsc1wiKTtcbmNvbnN0IFZlY3Rvcl8xID0gcmVxdWlyZShcIi4vUGFydGljbGUvVmVjdG9yXCIpO1xuY29uc3QgVmVjdG9yM2RfMSA9IHJlcXVpcmUoXCIuL1BhcnRpY2xlL1ZlY3RvcjNkXCIpO1xuY29uc3QgZml4T3V0TW9kZSA9IChkYXRhKSA9PiB7XG4gICAgaWYgKCgwLCBVdGlsc18xLmlzSW5BcnJheSkoZGF0YS5vdXRNb2RlLCBkYXRhLmNoZWNrTW9kZXMpIHx8ICgwLCBVdGlsc18xLmlzSW5BcnJheSkoZGF0YS5vdXRNb2RlLCBkYXRhLmNoZWNrTW9kZXMpKSB7XG4gICAgICAgIGlmIChkYXRhLmNvb3JkID4gZGF0YS5tYXhDb29yZCAtIGRhdGEucmFkaXVzICogMikge1xuICAgICAgICAgICAgZGF0YS5zZXRDYigtZGF0YS5yYWRpdXMpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGRhdGEuY29vcmQgPCBkYXRhLnJhZGl1cyAqIDIpIHtcbiAgICAgICAgICAgIGRhdGEuc2V0Q2IoZGF0YS5yYWRpdXMpO1xuICAgICAgICB9XG4gICAgfVxufTtcbmNsYXNzIFBhcnRpY2xlIHtcbiAgICBjb25zdHJ1Y3RvcihpZCwgY29udGFpbmVyLCBwb3NpdGlvbiwgb3ZlcnJpZGVPcHRpb25zLCBncm91cCkge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2QsIF9lLCBfZiwgX2csIF9oLCBfajtcbiAgICAgICAgdGhpcy5pZCA9IGlkO1xuICAgICAgICB0aGlzLmNvbnRhaW5lciA9IGNvbnRhaW5lcjtcbiAgICAgICAgdGhpcy5ncm91cCA9IGdyb3VwO1xuICAgICAgICB0aGlzLmZpbGwgPSB0cnVlO1xuICAgICAgICB0aGlzLmNsb3NlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5sYXN0UGF0aFRpbWUgPSAwO1xuICAgICAgICB0aGlzLmRlc3Ryb3llZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnVuYnJlYWthYmxlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc3BsaXRDb3VudCA9IDA7XG4gICAgICAgIHRoaXMubWlzcGxhY2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMucmV0aW5hID0ge1xuICAgICAgICAgICAgbWF4RGlzdGFuY2U6IHt9LFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBweFJhdGlvID0gY29udGFpbmVyLnJldGluYS5waXhlbFJhdGlvO1xuICAgICAgICBjb25zdCBtYWluT3B0aW9ucyA9IGNvbnRhaW5lci5hY3R1YWxPcHRpb25zO1xuICAgICAgICBjb25zdCBwYXJ0aWNsZXNPcHRpb25zID0gbmV3IFBhcnRpY2xlc09wdGlvbnNfMS5QYXJ0aWNsZXNPcHRpb25zKCk7XG4gICAgICAgIHBhcnRpY2xlc09wdGlvbnMubG9hZChtYWluT3B0aW9ucy5wYXJ0aWNsZXMpO1xuICAgICAgICBjb25zdCBzaGFwZVR5cGUgPSBwYXJ0aWNsZXNPcHRpb25zLnNoYXBlLnR5cGU7XG4gICAgICAgIGNvbnN0IHJlZHVjZUR1cGxpY2F0ZXMgPSBwYXJ0aWNsZXNPcHRpb25zLnJlZHVjZUR1cGxpY2F0ZXM7XG4gICAgICAgIHRoaXMuc2hhcGUgPSBzaGFwZVR5cGUgaW5zdGFuY2VvZiBBcnJheSA/ICgwLCBVdGlsc18xLml0ZW1Gcm9tQXJyYXkpKHNoYXBlVHlwZSwgdGhpcy5pZCwgcmVkdWNlRHVwbGljYXRlcykgOiBzaGFwZVR5cGU7XG4gICAgICAgIGlmIChvdmVycmlkZU9wdGlvbnMgPT09IG51bGwgfHwgb3ZlcnJpZGVPcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvdmVycmlkZU9wdGlvbnMuc2hhcGUpIHtcbiAgICAgICAgICAgIGlmIChvdmVycmlkZU9wdGlvbnMuc2hhcGUudHlwZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG92ZXJyaWRlU2hhcGVUeXBlID0gb3ZlcnJpZGVPcHRpb25zLnNoYXBlLnR5cGU7XG4gICAgICAgICAgICAgICAgdGhpcy5zaGFwZSA9XG4gICAgICAgICAgICAgICAgICAgIG92ZXJyaWRlU2hhcGVUeXBlIGluc3RhbmNlb2YgQXJyYXlcbiAgICAgICAgICAgICAgICAgICAgICAgID8gKDAsIFV0aWxzXzEuaXRlbUZyb21BcnJheSkob3ZlcnJpZGVTaGFwZVR5cGUsIHRoaXMuaWQsIHJlZHVjZUR1cGxpY2F0ZXMpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IG92ZXJyaWRlU2hhcGVUeXBlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgc2hhcGVPcHRpb25zID0gbmV3IFNoYXBlXzEuU2hhcGUoKTtcbiAgICAgICAgICAgIHNoYXBlT3B0aW9ucy5sb2FkKG92ZXJyaWRlT3B0aW9ucy5zaGFwZSk7XG4gICAgICAgICAgICBpZiAodGhpcy5zaGFwZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2hhcGVEYXRhID0gdGhpcy5sb2FkU2hhcGVEYXRhKHNoYXBlT3B0aW9ucywgcmVkdWNlRHVwbGljYXRlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNoYXBlRGF0YSA9IHRoaXMubG9hZFNoYXBlRGF0YShwYXJ0aWNsZXNPcHRpb25zLnNoYXBlLCByZWR1Y2VEdXBsaWNhdGVzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3ZlcnJpZGVPcHRpb25zICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHBhcnRpY2xlc09wdGlvbnMubG9hZChvdmVycmlkZU9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgICAgIGlmICgoKF9hID0gdGhpcy5zaGFwZURhdGEpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5wYXJ0aWNsZXMpICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHBhcnRpY2xlc09wdGlvbnMubG9hZCgoX2IgPSB0aGlzLnNoYXBlRGF0YSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLnBhcnRpY2xlcyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5maWxsID0gKF9kID0gKF9jID0gdGhpcy5zaGFwZURhdGEpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5maWxsKSAhPT0gbnVsbCAmJiBfZCAhPT0gdm9pZCAwID8gX2QgOiB0aGlzLmZpbGw7XG4gICAgICAgIHRoaXMuY2xvc2UgPSAoX2YgPSAoX2UgPSB0aGlzLnNoYXBlRGF0YSkgPT09IG51bGwgfHwgX2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9lLmNsb3NlKSAhPT0gbnVsbCAmJiBfZiAhPT0gdm9pZCAwID8gX2YgOiB0aGlzLmNsb3NlO1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBwYXJ0aWNsZXNPcHRpb25zO1xuICAgICAgICB0aGlzLnBhdGhEZWxheSA9ICgwLCBVdGlsc18xLmdldFZhbHVlKSh0aGlzLm9wdGlvbnMubW92ZS5wYXRoLmRlbGF5KSAqIDEwMDA7XG4gICAgICAgIGNvbnN0IHpJbmRleFZhbHVlID0gKDAsIFV0aWxzXzEuZ2V0UmFuZ2VWYWx1ZSkodGhpcy5vcHRpb25zLnpJbmRleC52YWx1ZSk7XG4gICAgICAgIGNvbnRhaW5lci5yZXRpbmEuaW5pdFBhcnRpY2xlKHRoaXMpO1xuICAgICAgICBjb25zdCBzaXplT3B0aW9ucyA9IHRoaXMub3B0aW9ucy5zaXplLCBzaXplUmFuZ2UgPSBzaXplT3B0aW9ucy52YWx1ZTtcbiAgICAgICAgdGhpcy5zaXplID0ge1xuICAgICAgICAgICAgZW5hYmxlOiBzaXplT3B0aW9ucy5hbmltYXRpb24uZW5hYmxlLFxuICAgICAgICAgICAgdmFsdWU6ICgwLCBVdGlsc18xLmdldFZhbHVlKShzaXplT3B0aW9ucykgKiBjb250YWluZXIucmV0aW5hLnBpeGVsUmF0aW8sXG4gICAgICAgICAgICBtYXg6ICgwLCBVdGlsc18xLmdldFJhbmdlTWF4KShzaXplUmFuZ2UpICogcHhSYXRpbyxcbiAgICAgICAgICAgIG1pbjogKDAsIFV0aWxzXzEuZ2V0UmFuZ2VNaW4pKHNpemVSYW5nZSkgKiBweFJhdGlvLFxuICAgICAgICAgICAgbG9vcHM6IDAsXG4gICAgICAgICAgICBtYXhMb29wczogc2l6ZU9wdGlvbnMuYW5pbWF0aW9uLmNvdW50LFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBzaXplQW5pbWF0aW9uID0gc2l6ZU9wdGlvbnMuYW5pbWF0aW9uO1xuICAgICAgICBpZiAoc2l6ZUFuaW1hdGlvbi5lbmFibGUpIHtcbiAgICAgICAgICAgIHRoaXMuc2l6ZS5zdGF0dXMgPSBFbnVtc18xLkFuaW1hdGlvblN0YXR1cy5pbmNyZWFzaW5nO1xuICAgICAgICAgICAgc3dpdGNoIChzaXplQW5pbWF0aW9uLnN0YXJ0VmFsdWUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIEVudW1zXzEuU3RhcnRWYWx1ZVR5cGUubWluOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNpemUudmFsdWUgPSB0aGlzLnNpemUubWluO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNpemUuc3RhdHVzID0gRW51bXNfMS5BbmltYXRpb25TdGF0dXMuaW5jcmVhc2luZztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBFbnVtc18xLlN0YXJ0VmFsdWVUeXBlLnJhbmRvbTpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaXplLnZhbHVlID0gKDAsIFV0aWxzXzEucmFuZG9tSW5SYW5nZSkodGhpcy5zaXplKSAqIHB4UmF0aW87XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2l6ZS5zdGF0dXMgPSBNYXRoLnJhbmRvbSgpID49IDAuNSA/IEVudW1zXzEuQW5pbWF0aW9uU3RhdHVzLmluY3JlYXNpbmcgOiBFbnVtc18xLkFuaW1hdGlvblN0YXR1cy5kZWNyZWFzaW5nO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIEVudW1zXzEuU3RhcnRWYWx1ZVR5cGUubWF4OlxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2l6ZS52YWx1ZSA9IHRoaXMuc2l6ZS5tYXg7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2l6ZS5zdGF0dXMgPSBFbnVtc18xLkFuaW1hdGlvblN0YXR1cy5kZWNyZWFzaW5nO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc2l6ZS52ZWxvY2l0eSA9XG4gICAgICAgICAgICAgICAgKCgoX2cgPSB0aGlzLnJldGluYS5zaXplQW5pbWF0aW9uU3BlZWQpICE9PSBudWxsICYmIF9nICE9PSB2b2lkIDAgPyBfZyA6IGNvbnRhaW5lci5yZXRpbmEuc2l6ZUFuaW1hdGlvblNwZWVkKSAvIDEwMCkgKlxuICAgICAgICAgICAgICAgICAgICBjb250YWluZXIucmV0aW5hLnJlZHVjZUZhY3RvcjtcbiAgICAgICAgICAgIGlmICghc2l6ZUFuaW1hdGlvbi5zeW5jKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zaXplLnZlbG9jaXR5ICo9IE1hdGgucmFuZG9tKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kaXJlY3Rpb24gPSAoMCwgVXRpbHNfMS5nZXRQYXJ0aWNsZURpcmVjdGlvbkFuZ2xlKSh0aGlzLm9wdGlvbnMubW92ZS5kaXJlY3Rpb24pO1xuICAgICAgICB0aGlzLmJ1YmJsZSA9IHtcbiAgICAgICAgICAgIGluUmFuZ2U6IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmluaXRpYWxWZWxvY2l0eSA9IHRoaXMuY2FsY3VsYXRlVmVsb2NpdHkoKTtcbiAgICAgICAgdGhpcy52ZWxvY2l0eSA9IHRoaXMuaW5pdGlhbFZlbG9jaXR5LmNvcHkoKTtcbiAgICAgICAgdGhpcy5tb3ZlRGVjYXkgPSAxIC0gKDAsIFV0aWxzXzEuZ2V0UmFuZ2VWYWx1ZSkodGhpcy5vcHRpb25zLm1vdmUuZGVjYXkpO1xuICAgICAgICB0aGlzLnBvc2l0aW9uID0gdGhpcy5jYWxjUG9zaXRpb24oY29udGFpbmVyLCBwb3NpdGlvbiwgKDAsIFV0aWxzXzEuY2xhbXApKHpJbmRleFZhbHVlLCAwLCBjb250YWluZXIuekxheWVycykpO1xuICAgICAgICB0aGlzLmluaXRpYWxQb3NpdGlvbiA9IHRoaXMucG9zaXRpb24uY29weSgpO1xuICAgICAgICB0aGlzLm9mZnNldCA9IFZlY3Rvcl8xLlZlY3Rvci5vcmlnaW47XG4gICAgICAgIGNvbnN0IHBhcnRpY2xlcyA9IGNvbnRhaW5lci5wYXJ0aWNsZXM7XG4gICAgICAgIHBhcnRpY2xlcy5uZWVkc1NvcnQgPSBwYXJ0aWNsZXMubmVlZHNTb3J0IHx8IHBhcnRpY2xlcy5sYXN0WkluZGV4IDwgdGhpcy5wb3NpdGlvbi56O1xuICAgICAgICBwYXJ0aWNsZXMubGFzdFpJbmRleCA9IHRoaXMucG9zaXRpb24uejtcbiAgICAgICAgdGhpcy56SW5kZXhGYWN0b3IgPSB0aGlzLnBvc2l0aW9uLnogLyBjb250YWluZXIuekxheWVycztcbiAgICAgICAgdGhpcy5zaWRlcyA9IDI0O1xuICAgICAgICBsZXQgZHJhd2VyID0gY29udGFpbmVyLmRyYXdlcnMuZ2V0KHRoaXMuc2hhcGUpO1xuICAgICAgICBpZiAoIWRyYXdlcikge1xuICAgICAgICAgICAgZHJhd2VyID0gVXRpbHNfMS5QbHVnaW5zLmdldFNoYXBlRHJhd2VyKHRoaXMuc2hhcGUpO1xuICAgICAgICAgICAgaWYgKGRyYXdlcikge1xuICAgICAgICAgICAgICAgIGNvbnRhaW5lci5kcmF3ZXJzLnNldCh0aGlzLnNoYXBlLCBkcmF3ZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChkcmF3ZXIgPT09IG51bGwgfHwgZHJhd2VyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkcmF3ZXIubG9hZFNoYXBlKSB7XG4gICAgICAgICAgICBkcmF3ZXIgPT09IG51bGwgfHwgZHJhd2VyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkcmF3ZXIubG9hZFNoYXBlKHRoaXMpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNpZGVDb3VudEZ1bmMgPSBkcmF3ZXIgPT09IG51bGwgfHwgZHJhd2VyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkcmF3ZXIuZ2V0U2lkZXNDb3VudDtcbiAgICAgICAgaWYgKHNpZGVDb3VudEZ1bmMpIHtcbiAgICAgICAgICAgIHRoaXMuc2lkZXMgPSBzaWRlQ291bnRGdW5jKHRoaXMpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubGlmZSA9IHRoaXMubG9hZExpZmUoKTtcbiAgICAgICAgdGhpcy5zcGF3bmluZyA9IHRoaXMubGlmZS5kZWxheSA+IDA7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMubW92ZS5zcGluLmVuYWJsZSkge1xuICAgICAgICAgICAgY29uc3Qgc3BpblBvcyA9IChfaCA9IHRoaXMub3B0aW9ucy5tb3ZlLnNwaW4ucG9zaXRpb24pICE9PSBudWxsICYmIF9oICE9PSB2b2lkIDAgPyBfaCA6IHsgeDogNTAsIHk6IDUwIH07XG4gICAgICAgICAgICBjb25zdCBzcGluQ2VudGVyID0ge1xuICAgICAgICAgICAgICAgIHg6IChzcGluUG9zLnggLyAxMDApICogY29udGFpbmVyLmNhbnZhcy5zaXplLndpZHRoLFxuICAgICAgICAgICAgICAgIHk6IChzcGluUG9zLnkgLyAxMDApICogY29udGFpbmVyLmNhbnZhcy5zaXplLmhlaWdodCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjb25zdCBwb3MgPSB0aGlzLmdldFBvc2l0aW9uKCk7XG4gICAgICAgICAgICBjb25zdCBkaXN0YW5jZSA9ICgwLCBVdGlsc18xLmdldERpc3RhbmNlKShwb3MsIHNwaW5DZW50ZXIpO1xuICAgICAgICAgICAgdGhpcy5zcGluID0ge1xuICAgICAgICAgICAgICAgIGNlbnRlcjogc3BpbkNlbnRlcixcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb246IHRoaXMudmVsb2NpdHkueCA+PSAwID8gRW51bXNfMS5Sb3RhdGVEaXJlY3Rpb24uY2xvY2t3aXNlIDogRW51bXNfMS5Sb3RhdGVEaXJlY3Rpb24uY291bnRlckNsb2Nrd2lzZSxcbiAgICAgICAgICAgICAgICBhbmdsZTogdGhpcy52ZWxvY2l0eS5hbmdsZSxcbiAgICAgICAgICAgICAgICByYWRpdXM6IGRpc3RhbmNlLFxuICAgICAgICAgICAgICAgIGFjY2VsZXJhdGlvbjogKF9qID0gdGhpcy5yZXRpbmEuc3BpbkFjY2VsZXJhdGlvbikgIT09IG51bGwgJiYgX2ogIT09IHZvaWQgMCA/IF9qIDogKDAsIFV0aWxzXzEuZ2V0UmFuZ2VWYWx1ZSkodGhpcy5vcHRpb25zLm1vdmUuc3Bpbi5hY2NlbGVyYXRpb24pLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNoYWRvd0NvbG9yID0gKDAsIFV0aWxzXzEuY29sb3JUb1JnYikodGhpcy5vcHRpb25zLnNoYWRvdy5jb2xvcik7XG4gICAgICAgIGZvciAoY29uc3QgdXBkYXRlciBvZiBjb250YWluZXIucGFydGljbGVzLnVwZGF0ZXJzKSB7XG4gICAgICAgICAgICBpZiAodXBkYXRlci5pbml0KSB7XG4gICAgICAgICAgICAgICAgdXBkYXRlci5pbml0KHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChkcmF3ZXIgJiYgZHJhd2VyLnBhcnRpY2xlSW5pdCkge1xuICAgICAgICAgICAgZHJhd2VyLnBhcnRpY2xlSW5pdChjb250YWluZXIsIHRoaXMpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgWywgcGx1Z2luXSBvZiBjb250YWluZXIucGx1Z2lucykge1xuICAgICAgICAgICAgaWYgKHBsdWdpbi5wYXJ0aWNsZUNyZWF0ZWQpIHtcbiAgICAgICAgICAgICAgICBwbHVnaW4ucGFydGljbGVDcmVhdGVkKHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGlzVmlzaWJsZSgpIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmRlc3Ryb3llZCAmJiAhdGhpcy5zcGF3bmluZyAmJiB0aGlzLmlzSW5zaWRlQ2FudmFzKCk7XG4gICAgfVxuICAgIGlzSW5zaWRlQ2FudmFzKCkge1xuICAgICAgICBjb25zdCByYWRpdXMgPSB0aGlzLmdldFJhZGl1cygpO1xuICAgICAgICBjb25zdCBjYW52YXNTaXplID0gdGhpcy5jb250YWluZXIuY2FudmFzLnNpemU7XG4gICAgICAgIHJldHVybiAodGhpcy5wb3NpdGlvbi54ID49IC1yYWRpdXMgJiZcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24ueSA+PSAtcmFkaXVzICYmXG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uLnkgPD0gY2FudmFzU2l6ZS5oZWlnaHQgKyByYWRpdXMgJiZcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24ueCA8PSBjYW52YXNTaXplLndpZHRoICsgcmFkaXVzKTtcbiAgICB9XG4gICAgZHJhdyhkZWx0YSkge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgZm9yIChjb25zdCBbLCBwbHVnaW5dIG9mIGNvbnRhaW5lci5wbHVnaW5zKSB7XG4gICAgICAgICAgICBjb250YWluZXIuY2FudmFzLmRyYXdQYXJ0aWNsZVBsdWdpbihwbHVnaW4sIHRoaXMsIGRlbHRhKTtcbiAgICAgICAgfVxuICAgICAgICBjb250YWluZXIuY2FudmFzLmRyYXdQYXJ0aWNsZSh0aGlzLCBkZWx0YSk7XG4gICAgfVxuICAgIGdldFBvc2l0aW9uKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgeDogdGhpcy5wb3NpdGlvbi54ICsgdGhpcy5vZmZzZXQueCxcbiAgICAgICAgICAgIHk6IHRoaXMucG9zaXRpb24ueSArIHRoaXMub2Zmc2V0LnksXG4gICAgICAgICAgICB6OiB0aGlzLnBvc2l0aW9uLnosXG4gICAgICAgIH07XG4gICAgfVxuICAgIGdldFJhZGl1cygpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICByZXR1cm4gKF9hID0gdGhpcy5idWJibGUucmFkaXVzKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB0aGlzLnNpemUudmFsdWU7XG4gICAgfVxuICAgIGdldE1hc3MoKSB7XG4gICAgICAgIHJldHVybiAodGhpcy5nZXRSYWRpdXMoKSAqKiAyICogTWF0aC5QSSkgLyAyO1xuICAgIH1cbiAgICBnZXRGaWxsQ29sb3IoKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICBjb25zdCBjb2xvciA9IChfYSA9IHRoaXMuYnViYmxlLmNvbG9yKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAoMCwgVXRpbHNfMS5nZXRIc2xGcm9tQW5pbWF0aW9uKSh0aGlzLmNvbG9yKTtcbiAgICAgICAgaWYgKGNvbG9yICYmIHRoaXMucm9sbCAmJiAodGhpcy5iYWNrQ29sb3IgfHwgdGhpcy5yb2xsLmFsdGVyKSkge1xuICAgICAgICAgICAgY29uc3Qgcm9sbGVkID0gTWF0aC5mbG9vcigoKF9jID0gKF9iID0gdGhpcy5yb2xsKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuYW5nbGUpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IDApIC8gKE1hdGguUEkgLyAyKSkgJSAyO1xuICAgICAgICAgICAgaWYgKHJvbGxlZCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmJhY2tDb2xvcikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5iYWNrQ29sb3I7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnJvbGwuYWx0ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgwLCBVdGlsc18xLmFsdGVySHNsKShjb2xvciwgdGhpcy5yb2xsLmFsdGVyLnR5cGUsIHRoaXMucm9sbC5hbHRlci52YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb2xvcjtcbiAgICB9XG4gICAgZ2V0U3Ryb2tlQ29sb3IoKSB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIHJldHVybiAoX2IgPSAoX2EgPSB0aGlzLmJ1YmJsZS5jb2xvcikgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogKDAsIFV0aWxzXzEuZ2V0SHNsRnJvbUFuaW1hdGlvbikodGhpcy5zdHJva2VDb2xvcikpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IHRoaXMuZ2V0RmlsbENvbG9yKCk7XG4gICAgfVxuICAgIGRlc3Ryb3kob3ZlcnJpZGUpIHtcbiAgICAgICAgdGhpcy5kZXN0cm95ZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmJ1YmJsZS5pblJhbmdlID0gZmFsc2U7XG4gICAgICAgIGlmICh0aGlzLnVuYnJlYWthYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kZXN0cm95ZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmJ1YmJsZS5pblJhbmdlID0gZmFsc2U7XG4gICAgICAgIGZvciAoY29uc3QgWywgcGx1Z2luXSBvZiB0aGlzLmNvbnRhaW5lci5wbHVnaW5zKSB7XG4gICAgICAgICAgICBpZiAocGx1Z2luLnBhcnRpY2xlRGVzdHJveWVkKSB7XG4gICAgICAgICAgICAgICAgcGx1Z2luLnBhcnRpY2xlRGVzdHJveWVkKHRoaXMsIG92ZXJyaWRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAob3ZlcnJpZGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkZXN0cm95T3B0aW9ucyA9IHRoaXMub3B0aW9ucy5kZXN0cm95O1xuICAgICAgICBpZiAoZGVzdHJveU9wdGlvbnMubW9kZSA9PT0gRW51bXNfMS5EZXN0cm95TW9kZS5zcGxpdCkge1xuICAgICAgICAgICAgdGhpcy5zcGxpdCgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJlc2V0KCkge1xuICAgICAgICBpZiAodGhpcy5vcGFjaXR5KSB7XG4gICAgICAgICAgICB0aGlzLm9wYWNpdHkubG9vcHMgPSAwO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2l6ZS5sb29wcyA9IDA7XG4gICAgfVxuICAgIHNwbGl0KCkge1xuICAgICAgICBjb25zdCBzcGxpdE9wdGlvbnMgPSB0aGlzLm9wdGlvbnMuZGVzdHJveS5zcGxpdDtcbiAgICAgICAgaWYgKHNwbGl0T3B0aW9ucy5jb3VudCA+PSAwICYmIHRoaXMuc3BsaXRDb3VudCsrID4gc3BsaXRPcHRpb25zLmNvdW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmF0ZSA9ICgwLCBVdGlsc18xLmdldFJhbmdlVmFsdWUpKHNwbGl0T3B0aW9ucy5yYXRlLnZhbHVlKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByYXRlOyBpKyspIHtcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLnBhcnRpY2xlcy5hZGRTcGxpdFBhcnRpY2xlKHRoaXMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNhbGNQb3NpdGlvbihjb250YWluZXIsIHBvc2l0aW9uLCB6SW5kZXgsIHRyeUNvdW50ID0gMCkge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2QsIF9lLCBfZjtcbiAgICAgICAgZm9yIChjb25zdCBbLCBwbHVnaW5dIG9mIGNvbnRhaW5lci5wbHVnaW5zKSB7XG4gICAgICAgICAgICBjb25zdCBwbHVnaW5Qb3MgPSBwbHVnaW4ucGFydGljbGVQb3NpdGlvbiAhPT0gdW5kZWZpbmVkID8gcGx1Z2luLnBhcnRpY2xlUG9zaXRpb24ocG9zaXRpb24sIHRoaXMpIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgaWYgKHBsdWdpblBvcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFZlY3RvcjNkXzEuVmVjdG9yM2QuY3JlYXRlKHBsdWdpblBvcy54LCBwbHVnaW5Qb3MueSwgekluZGV4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjYW52YXNTaXplID0gY29udGFpbmVyLmNhbnZhcy5zaXplO1xuICAgICAgICBjb25zdCBwb3MgPSBWZWN0b3IzZF8xLlZlY3RvcjNkLmNyZWF0ZSgoX2EgPSBwb3NpdGlvbiA9PT0gbnVsbCB8fCBwb3NpdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcG9zaXRpb24ueCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogTWF0aC5yYW5kb20oKSAqIGNhbnZhc1NpemUud2lkdGgsIChfYiA9IHBvc2l0aW9uID09PSBudWxsIHx8IHBvc2l0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwb3NpdGlvbi55KSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBNYXRoLnJhbmRvbSgpICogY2FudmFzU2l6ZS5oZWlnaHQsIHpJbmRleCk7XG4gICAgICAgIGNvbnN0IHJhZGl1cyA9IHRoaXMuZ2V0UmFkaXVzKCk7XG4gICAgICAgIGNvbnN0IG91dE1vZGVzID0gdGhpcy5vcHRpb25zLm1vdmUub3V0TW9kZXMsIGZpeEhvcml6b250YWwgPSAob3V0TW9kZSkgPT4ge1xuICAgICAgICAgICAgZml4T3V0TW9kZSh7XG4gICAgICAgICAgICAgICAgb3V0TW9kZSxcbiAgICAgICAgICAgICAgICBjaGVja01vZGVzOiBbRW51bXNfMS5PdXRNb2RlLmJvdW5jZSwgRW51bXNfMS5PdXRNb2RlLmJvdW5jZUhvcml6b250YWxdLFxuICAgICAgICAgICAgICAgIGNvb3JkOiBwb3MueCxcbiAgICAgICAgICAgICAgICBtYXhDb29yZDogY29udGFpbmVyLmNhbnZhcy5zaXplLndpZHRoLFxuICAgICAgICAgICAgICAgIHNldENiOiAodmFsdWUpID0+IChwb3MueCArPSB2YWx1ZSksXG4gICAgICAgICAgICAgICAgcmFkaXVzLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sIGZpeFZlcnRpY2FsID0gKG91dE1vZGUpID0+IHtcbiAgICAgICAgICAgIGZpeE91dE1vZGUoe1xuICAgICAgICAgICAgICAgIG91dE1vZGUsXG4gICAgICAgICAgICAgICAgY2hlY2tNb2RlczogW0VudW1zXzEuT3V0TW9kZS5ib3VuY2UsIEVudW1zXzEuT3V0TW9kZS5ib3VuY2VWZXJ0aWNhbF0sXG4gICAgICAgICAgICAgICAgY29vcmQ6IHBvcy55LFxuICAgICAgICAgICAgICAgIG1heENvb3JkOiBjb250YWluZXIuY2FudmFzLnNpemUuaGVpZ2h0LFxuICAgICAgICAgICAgICAgIHNldENiOiAodmFsdWUpID0+IChwb3MueSArPSB2YWx1ZSksXG4gICAgICAgICAgICAgICAgcmFkaXVzLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICAgIGZpeEhvcml6b250YWwoKF9jID0gb3V0TW9kZXMubGVmdCkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogb3V0TW9kZXMuZGVmYXVsdCk7XG4gICAgICAgIGZpeEhvcml6b250YWwoKF9kID0gb3V0TW9kZXMucmlnaHQpICE9PSBudWxsICYmIF9kICE9PSB2b2lkIDAgPyBfZCA6IG91dE1vZGVzLmRlZmF1bHQpO1xuICAgICAgICBmaXhWZXJ0aWNhbCgoX2UgPSBvdXRNb2Rlcy50b3ApICE9PSBudWxsICYmIF9lICE9PSB2b2lkIDAgPyBfZSA6IG91dE1vZGVzLmRlZmF1bHQpO1xuICAgICAgICBmaXhWZXJ0aWNhbCgoX2YgPSBvdXRNb2Rlcy5ib3R0b20pICE9PSBudWxsICYmIF9mICE9PSB2b2lkIDAgPyBfZiA6IG91dE1vZGVzLmRlZmF1bHQpO1xuICAgICAgICBpZiAodGhpcy5jaGVja092ZXJsYXAocG9zLCB0cnlDb3VudCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNhbGNQb3NpdGlvbihjb250YWluZXIsIHVuZGVmaW5lZCwgekluZGV4LCB0cnlDb3VudCArIDEpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwb3M7XG4gICAgfVxuICAgIGNoZWNrT3ZlcmxhcChwb3MsIHRyeUNvdW50ID0gMCkge1xuICAgICAgICBjb25zdCBjb2xsaXNpb25zT3B0aW9ucyA9IHRoaXMub3B0aW9ucy5jb2xsaXNpb25zO1xuICAgICAgICBjb25zdCByYWRpdXMgPSB0aGlzLmdldFJhZGl1cygpO1xuICAgICAgICBpZiAoIWNvbGxpc2lvbnNPcHRpb25zLmVuYWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG92ZXJsYXBPcHRpb25zID0gY29sbGlzaW9uc09wdGlvbnMub3ZlcmxhcDtcbiAgICAgICAgaWYgKG92ZXJsYXBPcHRpb25zLmVuYWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJldHJpZXMgPSBvdmVybGFwT3B0aW9ucy5yZXRyaWVzO1xuICAgICAgICBpZiAocmV0cmllcyA+PSAwICYmIHRyeUNvdW50ID4gcmV0cmllcykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUGFydGljbGUgaXMgb3ZlcmxhcHBpbmcgYW5kIGNhbid0IGJlIHBsYWNlZFwiKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgb3ZlcmxhcHMgPSBmYWxzZTtcbiAgICAgICAgZm9yIChjb25zdCBwYXJ0aWNsZSBvZiB0aGlzLmNvbnRhaW5lci5wYXJ0aWNsZXMuYXJyYXkpIHtcbiAgICAgICAgICAgIGlmICgoMCwgVXRpbHNfMS5nZXREaXN0YW5jZSkocG9zLCBwYXJ0aWNsZS5wb3NpdGlvbikgPCByYWRpdXMgKyBwYXJ0aWNsZS5nZXRSYWRpdXMoKSkge1xuICAgICAgICAgICAgICAgIG92ZXJsYXBzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3ZlcmxhcHM7XG4gICAgfVxuICAgIGNhbGN1bGF0ZVZlbG9jaXR5KCkge1xuICAgICAgICBjb25zdCBiYXNlVmVsb2NpdHkgPSAoMCwgVXRpbHNfMS5nZXRQYXJ0aWNsZUJhc2VWZWxvY2l0eSkodGhpcy5kaXJlY3Rpb24pO1xuICAgICAgICBjb25zdCByZXMgPSBiYXNlVmVsb2NpdHkuY29weSgpO1xuICAgICAgICBjb25zdCBtb3ZlT3B0aW9ucyA9IHRoaXMub3B0aW9ucy5tb3ZlO1xuICAgICAgICBjb25zdCByYWQgPSAoTWF0aC5QSSAvIDE4MCkgKiBtb3ZlT3B0aW9ucy5hbmdsZS52YWx1ZTtcbiAgICAgICAgY29uc3QgcmFkT2Zmc2V0ID0gKE1hdGguUEkgLyAxODApICogbW92ZU9wdGlvbnMuYW5nbGUub2Zmc2V0O1xuICAgICAgICBjb25zdCByYW5nZSA9IHtcbiAgICAgICAgICAgIGxlZnQ6IHJhZE9mZnNldCAtIHJhZCAvIDIsXG4gICAgICAgICAgICByaWdodDogcmFkT2Zmc2V0ICsgcmFkIC8gMixcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKCFtb3ZlT3B0aW9ucy5zdHJhaWdodCkge1xuICAgICAgICAgICAgcmVzLmFuZ2xlICs9ICgwLCBVdGlsc18xLnJhbmRvbUluUmFuZ2UpKCgwLCBVdGlsc18xLnNldFJhbmdlVmFsdWUpKHJhbmdlLmxlZnQsIHJhbmdlLnJpZ2h0KSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1vdmVPcHRpb25zLnJhbmRvbSAmJiB0eXBlb2YgbW92ZU9wdGlvbnMuc3BlZWQgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIHJlcy5sZW5ndGggKj0gTWF0aC5yYW5kb20oKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cbiAgICBsb2FkU2hhcGVEYXRhKHNoYXBlT3B0aW9ucywgcmVkdWNlRHVwbGljYXRlcykge1xuICAgICAgICBjb25zdCBzaGFwZURhdGEgPSBzaGFwZU9wdGlvbnMub3B0aW9uc1t0aGlzLnNoYXBlXTtcbiAgICAgICAgaWYgKHNoYXBlRGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuICgwLCBVdGlsc18xLmRlZXBFeHRlbmQpKHt9LCBzaGFwZURhdGEgaW5zdGFuY2VvZiBBcnJheSA/ICgwLCBVdGlsc18xLml0ZW1Gcm9tQXJyYXkpKHNoYXBlRGF0YSwgdGhpcy5pZCwgcmVkdWNlRHVwbGljYXRlcykgOiBzaGFwZURhdGEpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGxvYWRMaWZlKCkge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgY29uc3QgcGFydGljbGVzT3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgICAgICAgY29uc3QgbGlmZU9wdGlvbnMgPSBwYXJ0aWNsZXNPcHRpb25zLmxpZmU7XG4gICAgICAgIGNvbnN0IGxpZmUgPSB7XG4gICAgICAgICAgICBkZWxheTogY29udGFpbmVyLnJldGluYS5yZWR1Y2VGYWN0b3JcbiAgICAgICAgICAgICAgICA/ICgoKDAsIFV0aWxzXzEuZ2V0UmFuZ2VWYWx1ZSkobGlmZU9wdGlvbnMuZGVsYXkudmFsdWUpICogKGxpZmVPcHRpb25zLmRlbGF5LnN5bmMgPyAxIDogTWF0aC5yYW5kb20oKSkpIC9cbiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyLnJldGluYS5yZWR1Y2VGYWN0b3IpICpcbiAgICAgICAgICAgICAgICAgICAgMTAwMFxuICAgICAgICAgICAgICAgIDogMCxcbiAgICAgICAgICAgIGRlbGF5VGltZTogMCxcbiAgICAgICAgICAgIGR1cmF0aW9uOiBjb250YWluZXIucmV0aW5hLnJlZHVjZUZhY3RvclxuICAgICAgICAgICAgICAgID8gKCgoMCwgVXRpbHNfMS5nZXRSYW5nZVZhbHVlKShsaWZlT3B0aW9ucy5kdXJhdGlvbi52YWx1ZSkgKiAobGlmZU9wdGlvbnMuZHVyYXRpb24uc3luYyA/IDEgOiBNYXRoLnJhbmRvbSgpKSkgL1xuICAgICAgICAgICAgICAgICAgICBjb250YWluZXIucmV0aW5hLnJlZHVjZUZhY3RvcikgKlxuICAgICAgICAgICAgICAgICAgICAxMDAwXG4gICAgICAgICAgICAgICAgOiAwLFxuICAgICAgICAgICAgdGltZTogMCxcbiAgICAgICAgICAgIGNvdW50OiBwYXJ0aWNsZXNPcHRpb25zLmxpZmUuY291bnQsXG4gICAgICAgIH07XG4gICAgICAgIGlmIChsaWZlLmR1cmF0aW9uIDw9IDApIHtcbiAgICAgICAgICAgIGxpZmUuZHVyYXRpb24gPSAtMTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobGlmZS5jb3VudCA8PSAwKSB7XG4gICAgICAgICAgICBsaWZlLmNvdW50ID0gLTE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxpZmU7XG4gICAgfVxufVxuZXhwb3J0cy5QYXJ0aWNsZSA9IFBhcnRpY2xlO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Particle.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Particle/Mover.js": +/*!*********************************************************!*\ + !*** ./node_modules/tsparticles/Core/Particle/Mover.js ***! + \*********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Mover = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Enums_1 = __webpack_require__(/*! ../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nfunction applyDistance(particle) {\n const initialPosition = particle.initialPosition;\n const { dx, dy } = (0, Utils_1.getDistances)(initialPosition, particle.position);\n const dxFixed = Math.abs(dx), dyFixed = Math.abs(dy);\n const hDistance = particle.retina.maxDistance.horizontal;\n const vDistance = particle.retina.maxDistance.vertical;\n if (!hDistance && !vDistance) {\n return;\n }\n if (((hDistance && dxFixed >= hDistance) || (vDistance && dyFixed >= vDistance)) && !particle.misplaced) {\n particle.misplaced = (!!hDistance && dxFixed > hDistance) || (!!vDistance && dyFixed > vDistance);\n if (hDistance) {\n particle.velocity.x = particle.velocity.y / 2 - particle.velocity.x;\n }\n if (vDistance) {\n particle.velocity.y = particle.velocity.x / 2 - particle.velocity.y;\n }\n }\n else if ((!hDistance || dxFixed < hDistance) && (!vDistance || dyFixed < vDistance) && particle.misplaced) {\n particle.misplaced = false;\n }\n else if (particle.misplaced) {\n const pos = particle.position, vel = particle.velocity;\n if (hDistance && ((pos.x < initialPosition.x && vel.x < 0) || (pos.x > initialPosition.x && vel.x > 0))) {\n vel.x *= -Math.random();\n }\n if (vDistance && ((pos.y < initialPosition.y && vel.y < 0) || (pos.y > initialPosition.y && vel.y > 0))) {\n vel.y *= -Math.random();\n }\n }\n}\nclass Mover {\n constructor(container) {\n this.container = container;\n }\n move(particle, delta) {\n if (particle.destroyed) {\n return;\n }\n this.moveParticle(particle, delta);\n this.moveParallax(particle);\n }\n moveParticle(particle, delta) {\n var _a, _b, _c;\n var _d, _e;\n const particleOptions = particle.options;\n const moveOptions = particleOptions.move;\n if (!moveOptions.enable) {\n return;\n }\n const container = this.container, slowFactor = this.getProximitySpeedFactor(particle), baseSpeed = ((_a = (_d = particle.retina).moveSpeed) !== null && _a !== void 0 ? _a : (_d.moveSpeed = (0, Utils_1.getRangeValue)(moveOptions.speed) * container.retina.pixelRatio)) *\n container.retina.reduceFactor, moveDrift = ((_b = (_e = particle.retina).moveDrift) !== null && _b !== void 0 ? _b : (_e.moveDrift = (0, Utils_1.getRangeValue)(particle.options.move.drift) * container.retina.pixelRatio)), maxSize = (0, Utils_1.getRangeMax)(particleOptions.size.value) * container.retina.pixelRatio, sizeFactor = moveOptions.size ? particle.getRadius() / maxSize : 1, diffFactor = 2, speedFactor = (sizeFactor * slowFactor * (delta.factor || 1)) / diffFactor, moveSpeed = baseSpeed * speedFactor;\n this.applyPath(particle, delta);\n const gravityOptions = moveOptions.gravity;\n const gravityFactor = gravityOptions.enable && gravityOptions.inverse ? -1 : 1;\n if (gravityOptions.enable && moveSpeed) {\n particle.velocity.y += (gravityFactor * (gravityOptions.acceleration * delta.factor)) / (60 * moveSpeed);\n }\n if (moveDrift && moveSpeed) {\n particle.velocity.x += (moveDrift * delta.factor) / (60 * moveSpeed);\n }\n const decay = particle.moveDecay;\n if (decay != 1) {\n particle.velocity.multTo(decay);\n }\n const velocity = particle.velocity.mult(moveSpeed);\n const maxSpeed = (_c = particle.retina.maxSpeed) !== null && _c !== void 0 ? _c : container.retina.maxSpeed;\n if (gravityOptions.enable &&\n gravityOptions.maxSpeed > 0 &&\n ((!gravityOptions.inverse && velocity.y >= 0 && velocity.y >= maxSpeed) ||\n (gravityOptions.inverse && velocity.y <= 0 && velocity.y <= -maxSpeed))) {\n velocity.y = gravityFactor * maxSpeed;\n if (moveSpeed) {\n particle.velocity.y = velocity.y / moveSpeed;\n }\n }\n const zIndexOptions = particle.options.zIndex, zVelocityFactor = (1 - particle.zIndexFactor) ** zIndexOptions.velocityRate;\n if (moveOptions.spin.enable) {\n this.spin(particle, moveSpeed);\n }\n else {\n if (zVelocityFactor != 1) {\n velocity.multTo(zVelocityFactor);\n }\n particle.position.addTo(velocity);\n if (moveOptions.vibrate) {\n particle.position.x += Math.sin(particle.position.x * Math.cos(particle.position.y));\n particle.position.y += Math.cos(particle.position.y * Math.sin(particle.position.x));\n }\n }\n applyDistance(particle);\n }\n spin(particle, moveSpeed) {\n const container = this.container;\n if (!particle.spin) {\n return;\n }\n const updateFunc = {\n x: particle.spin.direction === Enums_1.RotateDirection.clockwise ? Math.cos : Math.sin,\n y: particle.spin.direction === Enums_1.RotateDirection.clockwise ? Math.sin : Math.cos,\n };\n particle.position.x = particle.spin.center.x + particle.spin.radius * updateFunc.x(particle.spin.angle);\n particle.position.y = particle.spin.center.y + particle.spin.radius * updateFunc.y(particle.spin.angle);\n particle.spin.radius += particle.spin.acceleration;\n const maxCanvasSize = Math.max(container.canvas.size.width, container.canvas.size.height);\n if (particle.spin.radius > maxCanvasSize / 2) {\n particle.spin.radius = maxCanvasSize / 2;\n particle.spin.acceleration *= -1;\n }\n else if (particle.spin.radius < 0) {\n particle.spin.radius = 0;\n particle.spin.acceleration *= -1;\n }\n particle.spin.angle += (moveSpeed / 100) * (1 - particle.spin.radius / maxCanvasSize);\n }\n applyPath(particle, delta) {\n const particlesOptions = particle.options;\n const pathOptions = particlesOptions.move.path;\n const pathEnabled = pathOptions.enable;\n if (!pathEnabled) {\n return;\n }\n const container = this.container;\n if (particle.lastPathTime <= particle.pathDelay) {\n particle.lastPathTime += delta.value;\n return;\n }\n const path = container.pathGenerator.generate(particle);\n particle.velocity.addTo(path);\n if (pathOptions.clamp) {\n particle.velocity.x = (0, Utils_1.clamp)(particle.velocity.x, -1, 1);\n particle.velocity.y = (0, Utils_1.clamp)(particle.velocity.y, -1, 1);\n }\n particle.lastPathTime -= particle.pathDelay;\n }\n moveParallax(particle) {\n const container = this.container;\n const options = container.actualOptions;\n if ((0, Utils_1.isSsr)() || !options.interactivity.events.onHover.parallax.enable) {\n return;\n }\n const parallaxForce = options.interactivity.events.onHover.parallax.force;\n const mousePos = container.interactivity.mouse.position;\n if (!mousePos) {\n return;\n }\n const canvasCenter = {\n x: container.canvas.size.width / 2,\n y: container.canvas.size.height / 2,\n };\n const parallaxSmooth = options.interactivity.events.onHover.parallax.smooth;\n const factor = particle.getRadius() / parallaxForce;\n const tmp = {\n x: (mousePos.x - canvasCenter.x) * factor,\n y: (mousePos.y - canvasCenter.y) * factor,\n };\n particle.offset.x += (tmp.x - particle.offset.x) / parallaxSmooth;\n particle.offset.y += (tmp.y - particle.offset.y) / parallaxSmooth;\n }\n getProximitySpeedFactor(particle) {\n const container = this.container;\n const options = container.actualOptions;\n const active = (0, Utils_1.isInArray)(Enums_1.HoverMode.slow, options.interactivity.events.onHover.mode);\n if (!active) {\n return 1;\n }\n const mousePos = this.container.interactivity.mouse.position;\n if (!mousePos) {\n return 1;\n }\n const particlePos = particle.getPosition();\n const dist = (0, Utils_1.getDistance)(mousePos, particlePos);\n const radius = container.retina.slowModeRadius;\n if (dist > radius) {\n return 1;\n }\n const proximityFactor = dist / radius || 0;\n const slowFactor = options.interactivity.modes.slow.factor;\n return proximityFactor / slowFactor;\n }\n}\nexports.Mover = Mover;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9QYXJ0aWNsZS9Nb3Zlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxhQUFhO0FBQ2IsZ0JBQWdCLG1CQUFPLENBQUMsOERBQWE7QUFDckMsZ0JBQWdCLG1CQUFPLENBQUMsOERBQWE7QUFDckM7QUFDQTtBQUNBLFlBQVksU0FBUztBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0NvcmUvUGFydGljbGUvTW92ZXIuanM/Y2ZjNiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuTW92ZXIgPSB2b2lkIDA7XG5jb25zdCBVdGlsc18xID0gcmVxdWlyZShcIi4uLy4uL1V0aWxzXCIpO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuLi8uLi9FbnVtc1wiKTtcbmZ1bmN0aW9uIGFwcGx5RGlzdGFuY2UocGFydGljbGUpIHtcbiAgICBjb25zdCBpbml0aWFsUG9zaXRpb24gPSBwYXJ0aWNsZS5pbml0aWFsUG9zaXRpb247XG4gICAgY29uc3QgeyBkeCwgZHkgfSA9ICgwLCBVdGlsc18xLmdldERpc3RhbmNlcykoaW5pdGlhbFBvc2l0aW9uLCBwYXJ0aWNsZS5wb3NpdGlvbik7XG4gICAgY29uc3QgZHhGaXhlZCA9IE1hdGguYWJzKGR4KSwgZHlGaXhlZCA9IE1hdGguYWJzKGR5KTtcbiAgICBjb25zdCBoRGlzdGFuY2UgPSBwYXJ0aWNsZS5yZXRpbmEubWF4RGlzdGFuY2UuaG9yaXpvbnRhbDtcbiAgICBjb25zdCB2RGlzdGFuY2UgPSBwYXJ0aWNsZS5yZXRpbmEubWF4RGlzdGFuY2UudmVydGljYWw7XG4gICAgaWYgKCFoRGlzdGFuY2UgJiYgIXZEaXN0YW5jZSkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICgoKGhEaXN0YW5jZSAmJiBkeEZpeGVkID49IGhEaXN0YW5jZSkgfHwgKHZEaXN0YW5jZSAmJiBkeUZpeGVkID49IHZEaXN0YW5jZSkpICYmICFwYXJ0aWNsZS5taXNwbGFjZWQpIHtcbiAgICAgICAgcGFydGljbGUubWlzcGxhY2VkID0gKCEhaERpc3RhbmNlICYmIGR4Rml4ZWQgPiBoRGlzdGFuY2UpIHx8ICghIXZEaXN0YW5jZSAmJiBkeUZpeGVkID4gdkRpc3RhbmNlKTtcbiAgICAgICAgaWYgKGhEaXN0YW5jZSkge1xuICAgICAgICAgICAgcGFydGljbGUudmVsb2NpdHkueCA9IHBhcnRpY2xlLnZlbG9jaXR5LnkgLyAyIC0gcGFydGljbGUudmVsb2NpdHkueDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodkRpc3RhbmNlKSB7XG4gICAgICAgICAgICBwYXJ0aWNsZS52ZWxvY2l0eS55ID0gcGFydGljbGUudmVsb2NpdHkueCAvIDIgLSBwYXJ0aWNsZS52ZWxvY2l0eS55O1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2UgaWYgKCghaERpc3RhbmNlIHx8IGR4Rml4ZWQgPCBoRGlzdGFuY2UpICYmICghdkRpc3RhbmNlIHx8IGR5Rml4ZWQgPCB2RGlzdGFuY2UpICYmIHBhcnRpY2xlLm1pc3BsYWNlZCkge1xuICAgICAgICBwYXJ0aWNsZS5taXNwbGFjZWQgPSBmYWxzZTtcbiAgICB9XG4gICAgZWxzZSBpZiAocGFydGljbGUubWlzcGxhY2VkKSB7XG4gICAgICAgIGNvbnN0IHBvcyA9IHBhcnRpY2xlLnBvc2l0aW9uLCB2ZWwgPSBwYXJ0aWNsZS52ZWxvY2l0eTtcbiAgICAgICAgaWYgKGhEaXN0YW5jZSAmJiAoKHBvcy54IDwgaW5pdGlhbFBvc2l0aW9uLnggJiYgdmVsLnggPCAwKSB8fCAocG9zLnggPiBpbml0aWFsUG9zaXRpb24ueCAmJiB2ZWwueCA+IDApKSkge1xuICAgICAgICAgICAgdmVsLnggKj0gLU1hdGgucmFuZG9tKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZEaXN0YW5jZSAmJiAoKHBvcy55IDwgaW5pdGlhbFBvc2l0aW9uLnkgJiYgdmVsLnkgPCAwKSB8fCAocG9zLnkgPiBpbml0aWFsUG9zaXRpb24ueSAmJiB2ZWwueSA+IDApKSkge1xuICAgICAgICAgICAgdmVsLnkgKj0gLU1hdGgucmFuZG9tKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5jbGFzcyBNb3ZlciB7XG4gICAgY29uc3RydWN0b3IoY29udGFpbmVyKSB7XG4gICAgICAgIHRoaXMuY29udGFpbmVyID0gY29udGFpbmVyO1xuICAgIH1cbiAgICBtb3ZlKHBhcnRpY2xlLCBkZWx0YSkge1xuICAgICAgICBpZiAocGFydGljbGUuZGVzdHJveWVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5tb3ZlUGFydGljbGUocGFydGljbGUsIGRlbHRhKTtcbiAgICAgICAgdGhpcy5tb3ZlUGFyYWxsYXgocGFydGljbGUpO1xuICAgIH1cbiAgICBtb3ZlUGFydGljbGUocGFydGljbGUsIGRlbHRhKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICB2YXIgX2QsIF9lO1xuICAgICAgICBjb25zdCBwYXJ0aWNsZU9wdGlvbnMgPSBwYXJ0aWNsZS5vcHRpb25zO1xuICAgICAgICBjb25zdCBtb3ZlT3B0aW9ucyA9IHBhcnRpY2xlT3B0aW9ucy5tb3ZlO1xuICAgICAgICBpZiAoIW1vdmVPcHRpb25zLmVuYWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyLCBzbG93RmFjdG9yID0gdGhpcy5nZXRQcm94aW1pdHlTcGVlZEZhY3RvcihwYXJ0aWNsZSksIGJhc2VTcGVlZCA9ICgoX2EgPSAoX2QgPSBwYXJ0aWNsZS5yZXRpbmEpLm1vdmVTcGVlZCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogKF9kLm1vdmVTcGVlZCA9ICgwLCBVdGlsc18xLmdldFJhbmdlVmFsdWUpKG1vdmVPcHRpb25zLnNwZWVkKSAqIGNvbnRhaW5lci5yZXRpbmEucGl4ZWxSYXRpbykpICpcbiAgICAgICAgICAgIGNvbnRhaW5lci5yZXRpbmEucmVkdWNlRmFjdG9yLCBtb3ZlRHJpZnQgPSAoKF9iID0gKF9lID0gcGFydGljbGUucmV0aW5hKS5tb3ZlRHJpZnQpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IChfZS5tb3ZlRHJpZnQgPSAoMCwgVXRpbHNfMS5nZXRSYW5nZVZhbHVlKShwYXJ0aWNsZS5vcHRpb25zLm1vdmUuZHJpZnQpICogY29udGFpbmVyLnJldGluYS5waXhlbFJhdGlvKSksIG1heFNpemUgPSAoMCwgVXRpbHNfMS5nZXRSYW5nZU1heCkocGFydGljbGVPcHRpb25zLnNpemUudmFsdWUpICogY29udGFpbmVyLnJldGluYS5waXhlbFJhdGlvLCBzaXplRmFjdG9yID0gbW92ZU9wdGlvbnMuc2l6ZSA/IHBhcnRpY2xlLmdldFJhZGl1cygpIC8gbWF4U2l6ZSA6IDEsIGRpZmZGYWN0b3IgPSAyLCBzcGVlZEZhY3RvciA9IChzaXplRmFjdG9yICogc2xvd0ZhY3RvciAqIChkZWx0YS5mYWN0b3IgfHwgMSkpIC8gZGlmZkZhY3RvciwgbW92ZVNwZWVkID0gYmFzZVNwZWVkICogc3BlZWRGYWN0b3I7XG4gICAgICAgIHRoaXMuYXBwbHlQYXRoKHBhcnRpY2xlLCBkZWx0YSk7XG4gICAgICAgIGNvbnN0IGdyYXZpdHlPcHRpb25zID0gbW92ZU9wdGlvbnMuZ3Jhdml0eTtcbiAgICAgICAgY29uc3QgZ3Jhdml0eUZhY3RvciA9IGdyYXZpdHlPcHRpb25zLmVuYWJsZSAmJiBncmF2aXR5T3B0aW9ucy5pbnZlcnNlID8gLTEgOiAxO1xuICAgICAgICBpZiAoZ3Jhdml0eU9wdGlvbnMuZW5hYmxlICYmIG1vdmVTcGVlZCkge1xuICAgICAgICAgICAgcGFydGljbGUudmVsb2NpdHkueSArPSAoZ3Jhdml0eUZhY3RvciAqIChncmF2aXR5T3B0aW9ucy5hY2NlbGVyYXRpb24gKiBkZWx0YS5mYWN0b3IpKSAvICg2MCAqIG1vdmVTcGVlZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1vdmVEcmlmdCAmJiBtb3ZlU3BlZWQpIHtcbiAgICAgICAgICAgIHBhcnRpY2xlLnZlbG9jaXR5LnggKz0gKG1vdmVEcmlmdCAqIGRlbHRhLmZhY3RvcikgLyAoNjAgKiBtb3ZlU3BlZWQpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRlY2F5ID0gcGFydGljbGUubW92ZURlY2F5O1xuICAgICAgICBpZiAoZGVjYXkgIT0gMSkge1xuICAgICAgICAgICAgcGFydGljbGUudmVsb2NpdHkubXVsdFRvKGRlY2F5KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB2ZWxvY2l0eSA9IHBhcnRpY2xlLnZlbG9jaXR5Lm11bHQobW92ZVNwZWVkKTtcbiAgICAgICAgY29uc3QgbWF4U3BlZWQgPSAoX2MgPSBwYXJ0aWNsZS5yZXRpbmEubWF4U3BlZWQpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IGNvbnRhaW5lci5yZXRpbmEubWF4U3BlZWQ7XG4gICAgICAgIGlmIChncmF2aXR5T3B0aW9ucy5lbmFibGUgJiZcbiAgICAgICAgICAgIGdyYXZpdHlPcHRpb25zLm1heFNwZWVkID4gMCAmJlxuICAgICAgICAgICAgKCghZ3Jhdml0eU9wdGlvbnMuaW52ZXJzZSAmJiB2ZWxvY2l0eS55ID49IDAgJiYgdmVsb2NpdHkueSA+PSBtYXhTcGVlZCkgfHxcbiAgICAgICAgICAgICAgICAoZ3Jhdml0eU9wdGlvbnMuaW52ZXJzZSAmJiB2ZWxvY2l0eS55IDw9IDAgJiYgdmVsb2NpdHkueSA8PSAtbWF4U3BlZWQpKSkge1xuICAgICAgICAgICAgdmVsb2NpdHkueSA9IGdyYXZpdHlGYWN0b3IgKiBtYXhTcGVlZDtcbiAgICAgICAgICAgIGlmIChtb3ZlU3BlZWQpIHtcbiAgICAgICAgICAgICAgICBwYXJ0aWNsZS52ZWxvY2l0eS55ID0gdmVsb2NpdHkueSAvIG1vdmVTcGVlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCB6SW5kZXhPcHRpb25zID0gcGFydGljbGUub3B0aW9ucy56SW5kZXgsIHpWZWxvY2l0eUZhY3RvciA9ICgxIC0gcGFydGljbGUuekluZGV4RmFjdG9yKSAqKiB6SW5kZXhPcHRpb25zLnZlbG9jaXR5UmF0ZTtcbiAgICAgICAgaWYgKG1vdmVPcHRpb25zLnNwaW4uZW5hYmxlKSB7XG4gICAgICAgICAgICB0aGlzLnNwaW4ocGFydGljbGUsIG1vdmVTcGVlZCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoelZlbG9jaXR5RmFjdG9yICE9IDEpIHtcbiAgICAgICAgICAgICAgICB2ZWxvY2l0eS5tdWx0VG8oelZlbG9jaXR5RmFjdG9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBhcnRpY2xlLnBvc2l0aW9uLmFkZFRvKHZlbG9jaXR5KTtcbiAgICAgICAgICAgIGlmIChtb3ZlT3B0aW9ucy52aWJyYXRlKSB7XG4gICAgICAgICAgICAgICAgcGFydGljbGUucG9zaXRpb24ueCArPSBNYXRoLnNpbihwYXJ0aWNsZS5wb3NpdGlvbi54ICogTWF0aC5jb3MocGFydGljbGUucG9zaXRpb24ueSkpO1xuICAgICAgICAgICAgICAgIHBhcnRpY2xlLnBvc2l0aW9uLnkgKz0gTWF0aC5jb3MocGFydGljbGUucG9zaXRpb24ueSAqIE1hdGguc2luKHBhcnRpY2xlLnBvc2l0aW9uLngpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBhcHBseURpc3RhbmNlKHBhcnRpY2xlKTtcbiAgICB9XG4gICAgc3BpbihwYXJ0aWNsZSwgbW92ZVNwZWVkKSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyO1xuICAgICAgICBpZiAoIXBhcnRpY2xlLnNwaW4pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB1cGRhdGVGdW5jID0ge1xuICAgICAgICAgICAgeDogcGFydGljbGUuc3Bpbi5kaXJlY3Rpb24gPT09IEVudW1zXzEuUm90YXRlRGlyZWN0aW9uLmNsb2Nrd2lzZSA/IE1hdGguY29zIDogTWF0aC5zaW4sXG4gICAgICAgICAgICB5OiBwYXJ0aWNsZS5zcGluLmRpcmVjdGlvbiA9PT0gRW51bXNfMS5Sb3RhdGVEaXJlY3Rpb24uY2xvY2t3aXNlID8gTWF0aC5zaW4gOiBNYXRoLmNvcyxcbiAgICAgICAgfTtcbiAgICAgICAgcGFydGljbGUucG9zaXRpb24ueCA9IHBhcnRpY2xlLnNwaW4uY2VudGVyLnggKyBwYXJ0aWNsZS5zcGluLnJhZGl1cyAqIHVwZGF0ZUZ1bmMueChwYXJ0aWNsZS5zcGluLmFuZ2xlKTtcbiAgICAgICAgcGFydGljbGUucG9zaXRpb24ueSA9IHBhcnRpY2xlLnNwaW4uY2VudGVyLnkgKyBwYXJ0aWNsZS5zcGluLnJhZGl1cyAqIHVwZGF0ZUZ1bmMueShwYXJ0aWNsZS5zcGluLmFuZ2xlKTtcbiAgICAgICAgcGFydGljbGUuc3Bpbi5yYWRpdXMgKz0gcGFydGljbGUuc3Bpbi5hY2NlbGVyYXRpb247XG4gICAgICAgIGNvbnN0IG1heENhbnZhc1NpemUgPSBNYXRoLm1heChjb250YWluZXIuY2FudmFzLnNpemUud2lkdGgsIGNvbnRhaW5lci5jYW52YXMuc2l6ZS5oZWlnaHQpO1xuICAgICAgICBpZiAocGFydGljbGUuc3Bpbi5yYWRpdXMgPiBtYXhDYW52YXNTaXplIC8gMikge1xuICAgICAgICAgICAgcGFydGljbGUuc3Bpbi5yYWRpdXMgPSBtYXhDYW52YXNTaXplIC8gMjtcbiAgICAgICAgICAgIHBhcnRpY2xlLnNwaW4uYWNjZWxlcmF0aW9uICo9IC0xO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHBhcnRpY2xlLnNwaW4ucmFkaXVzIDwgMCkge1xuICAgICAgICAgICAgcGFydGljbGUuc3Bpbi5yYWRpdXMgPSAwO1xuICAgICAgICAgICAgcGFydGljbGUuc3Bpbi5hY2NlbGVyYXRpb24gKj0gLTE7XG4gICAgICAgIH1cbiAgICAgICAgcGFydGljbGUuc3Bpbi5hbmdsZSArPSAobW92ZVNwZWVkIC8gMTAwKSAqICgxIC0gcGFydGljbGUuc3Bpbi5yYWRpdXMgLyBtYXhDYW52YXNTaXplKTtcbiAgICB9XG4gICAgYXBwbHlQYXRoKHBhcnRpY2xlLCBkZWx0YSkge1xuICAgICAgICBjb25zdCBwYXJ0aWNsZXNPcHRpb25zID0gcGFydGljbGUub3B0aW9ucztcbiAgICAgICAgY29uc3QgcGF0aE9wdGlvbnMgPSBwYXJ0aWNsZXNPcHRpb25zLm1vdmUucGF0aDtcbiAgICAgICAgY29uc3QgcGF0aEVuYWJsZWQgPSBwYXRoT3B0aW9ucy5lbmFibGU7XG4gICAgICAgIGlmICghcGF0aEVuYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgaWYgKHBhcnRpY2xlLmxhc3RQYXRoVGltZSA8PSBwYXJ0aWNsZS5wYXRoRGVsYXkpIHtcbiAgICAgICAgICAgIHBhcnRpY2xlLmxhc3RQYXRoVGltZSArPSBkZWx0YS52YWx1ZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYXRoID0gY29udGFpbmVyLnBhdGhHZW5lcmF0b3IuZ2VuZXJhdGUocGFydGljbGUpO1xuICAgICAgICBwYXJ0aWNsZS52ZWxvY2l0eS5hZGRUbyhwYXRoKTtcbiAgICAgICAgaWYgKHBhdGhPcHRpb25zLmNsYW1wKSB7XG4gICAgICAgICAgICBwYXJ0aWNsZS52ZWxvY2l0eS54ID0gKDAsIFV0aWxzXzEuY2xhbXApKHBhcnRpY2xlLnZlbG9jaXR5LngsIC0xLCAxKTtcbiAgICAgICAgICAgIHBhcnRpY2xlLnZlbG9jaXR5LnkgPSAoMCwgVXRpbHNfMS5jbGFtcCkocGFydGljbGUudmVsb2NpdHkueSwgLTEsIDEpO1xuICAgICAgICB9XG4gICAgICAgIHBhcnRpY2xlLmxhc3RQYXRoVGltZSAtPSBwYXJ0aWNsZS5wYXRoRGVsYXk7XG4gICAgfVxuICAgIG1vdmVQYXJhbGxheChwYXJ0aWNsZSkge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IGNvbnRhaW5lci5hY3R1YWxPcHRpb25zO1xuICAgICAgICBpZiAoKDAsIFV0aWxzXzEuaXNTc3IpKCkgfHwgIW9wdGlvbnMuaW50ZXJhY3Rpdml0eS5ldmVudHMub25Ib3Zlci5wYXJhbGxheC5lbmFibGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYXJhbGxheEZvcmNlID0gb3B0aW9ucy5pbnRlcmFjdGl2aXR5LmV2ZW50cy5vbkhvdmVyLnBhcmFsbGF4LmZvcmNlO1xuICAgICAgICBjb25zdCBtb3VzZVBvcyA9IGNvbnRhaW5lci5pbnRlcmFjdGl2aXR5Lm1vdXNlLnBvc2l0aW9uO1xuICAgICAgICBpZiAoIW1vdXNlUG9zKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2FudmFzQ2VudGVyID0ge1xuICAgICAgICAgICAgeDogY29udGFpbmVyLmNhbnZhcy5zaXplLndpZHRoIC8gMixcbiAgICAgICAgICAgIHk6IGNvbnRhaW5lci5jYW52YXMuc2l6ZS5oZWlnaHQgLyAyLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBwYXJhbGxheFNtb290aCA9IG9wdGlvbnMuaW50ZXJhY3Rpdml0eS5ldmVudHMub25Ib3Zlci5wYXJhbGxheC5zbW9vdGg7XG4gICAgICAgIGNvbnN0IGZhY3RvciA9IHBhcnRpY2xlLmdldFJhZGl1cygpIC8gcGFyYWxsYXhGb3JjZTtcbiAgICAgICAgY29uc3QgdG1wID0ge1xuICAgICAgICAgICAgeDogKG1vdXNlUG9zLnggLSBjYW52YXNDZW50ZXIueCkgKiBmYWN0b3IsXG4gICAgICAgICAgICB5OiAobW91c2VQb3MueSAtIGNhbnZhc0NlbnRlci55KSAqIGZhY3RvcixcbiAgICAgICAgfTtcbiAgICAgICAgcGFydGljbGUub2Zmc2V0LnggKz0gKHRtcC54IC0gcGFydGljbGUub2Zmc2V0LngpIC8gcGFyYWxsYXhTbW9vdGg7XG4gICAgICAgIHBhcnRpY2xlLm9mZnNldC55ICs9ICh0bXAueSAtIHBhcnRpY2xlLm9mZnNldC55KSAvIHBhcmFsbGF4U21vb3RoO1xuICAgIH1cbiAgICBnZXRQcm94aW1pdHlTcGVlZEZhY3RvcihwYXJ0aWNsZSkge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IGNvbnRhaW5lci5hY3R1YWxPcHRpb25zO1xuICAgICAgICBjb25zdCBhY3RpdmUgPSAoMCwgVXRpbHNfMS5pc0luQXJyYXkpKEVudW1zXzEuSG92ZXJNb2RlLnNsb3csIG9wdGlvbnMuaW50ZXJhY3Rpdml0eS5ldmVudHMub25Ib3Zlci5tb2RlKTtcbiAgICAgICAgaWYgKCFhY3RpdmUpIHtcbiAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1vdXNlUG9zID0gdGhpcy5jb250YWluZXIuaW50ZXJhY3Rpdml0eS5tb3VzZS5wb3NpdGlvbjtcbiAgICAgICAgaWYgKCFtb3VzZVBvcykge1xuICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGFydGljbGVQb3MgPSBwYXJ0aWNsZS5nZXRQb3NpdGlvbigpO1xuICAgICAgICBjb25zdCBkaXN0ID0gKDAsIFV0aWxzXzEuZ2V0RGlzdGFuY2UpKG1vdXNlUG9zLCBwYXJ0aWNsZVBvcyk7XG4gICAgICAgIGNvbnN0IHJhZGl1cyA9IGNvbnRhaW5lci5yZXRpbmEuc2xvd01vZGVSYWRpdXM7XG4gICAgICAgIGlmIChkaXN0ID4gcmFkaXVzKSB7XG4gICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwcm94aW1pdHlGYWN0b3IgPSBkaXN0IC8gcmFkaXVzIHx8IDA7XG4gICAgICAgIGNvbnN0IHNsb3dGYWN0b3IgPSBvcHRpb25zLmludGVyYWN0aXZpdHkubW9kZXMuc2xvdy5mYWN0b3I7XG4gICAgICAgIHJldHVybiBwcm94aW1pdHlGYWN0b3IgLyBzbG93RmFjdG9yO1xuICAgIH1cbn1cbmV4cG9ydHMuTW92ZXIgPSBNb3ZlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Particle/Mover.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Particle/Vector.js": +/*!**********************************************************!*\ + !*** ./node_modules/tsparticles/Core/Particle/Vector.js ***! + \**********************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Vector = void 0;\nclass Vector {\n constructor(x, y) {\n let defX, defY;\n if (y === undefined) {\n if (typeof x === \"number\") {\n throw new Error(\"tsParticles - Vector not initialized correctly\");\n }\n const coords = x;\n [defX, defY] = [coords.x, coords.y];\n }\n else {\n [defX, defY] = [x, y];\n }\n this.x = defX;\n this.y = defY;\n }\n static clone(source) {\n return Vector.create(source.x, source.y);\n }\n static create(x, y) {\n return new Vector(x, y);\n }\n static get origin() {\n return Vector.create(0, 0);\n }\n get angle() {\n return Math.atan2(this.y, this.x);\n }\n set angle(angle) {\n this.updateFromAngle(angle, this.length);\n }\n get length() {\n return Math.sqrt(this.x ** 2 + this.y ** 2);\n }\n set length(length) {\n this.updateFromAngle(this.angle, length);\n }\n add(v) {\n return Vector.create(this.x + v.x, this.y + v.y);\n }\n addTo(v) {\n this.x += v.x;\n this.y += v.y;\n }\n sub(v) {\n return Vector.create(this.x - v.x, this.y - v.y);\n }\n subFrom(v) {\n this.x -= v.x;\n this.y -= v.y;\n }\n mult(n) {\n return Vector.create(this.x * n, this.y * n);\n }\n multTo(n) {\n this.x *= n;\n this.y *= n;\n }\n div(n) {\n return Vector.create(this.x / n, this.y / n);\n }\n divTo(n) {\n this.x /= n;\n this.y /= n;\n }\n distanceTo(v) {\n return this.sub(v).length;\n }\n getLengthSq() {\n return this.x ** 2 + this.y ** 2;\n }\n distanceToSq(v) {\n return this.sub(v).getLengthSq();\n }\n manhattanDistanceTo(v) {\n return Math.abs(v.x - this.x) + Math.abs(v.y - this.y);\n }\n copy() {\n return Vector.clone(this);\n }\n setTo(velocity) {\n this.x = velocity.x;\n this.y = velocity.y;\n }\n rotate(angle) {\n return Vector.create(this.x * Math.cos(angle) - this.y * Math.sin(angle), this.x * Math.sin(angle) + this.y * Math.cos(angle));\n }\n updateFromAngle(angle, length) {\n this.x = Math.cos(angle) * length;\n this.y = Math.sin(angle) * length;\n }\n}\nexports.Vector = Vector;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9QYXJ0aWNsZS9WZWN0b3IuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9Db3JlL1BhcnRpY2xlL1ZlY3Rvci5qcz8xMjY1Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5WZWN0b3IgPSB2b2lkIDA7XG5jbGFzcyBWZWN0b3Ige1xuICAgIGNvbnN0cnVjdG9yKHgsIHkpIHtcbiAgICAgICAgbGV0IGRlZlgsIGRlZlk7XG4gICAgICAgIGlmICh5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgeCA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcInRzUGFydGljbGVzIC0gVmVjdG9yIG5vdCBpbml0aWFsaXplZCBjb3JyZWN0bHlcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBjb29yZHMgPSB4O1xuICAgICAgICAgICAgW2RlZlgsIGRlZlldID0gW2Nvb3Jkcy54LCBjb29yZHMueV07XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBbZGVmWCwgZGVmWV0gPSBbeCwgeV07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy54ID0gZGVmWDtcbiAgICAgICAgdGhpcy55ID0gZGVmWTtcbiAgICB9XG4gICAgc3RhdGljIGNsb25lKHNvdXJjZSkge1xuICAgICAgICByZXR1cm4gVmVjdG9yLmNyZWF0ZShzb3VyY2UueCwgc291cmNlLnkpO1xuICAgIH1cbiAgICBzdGF0aWMgY3JlYXRlKHgsIHkpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBWZWN0b3IoeCwgeSk7XG4gICAgfVxuICAgIHN0YXRpYyBnZXQgb3JpZ2luKCkge1xuICAgICAgICByZXR1cm4gVmVjdG9yLmNyZWF0ZSgwLCAwKTtcbiAgICB9XG4gICAgZ2V0IGFuZ2xlKCkge1xuICAgICAgICByZXR1cm4gTWF0aC5hdGFuMih0aGlzLnksIHRoaXMueCk7XG4gICAgfVxuICAgIHNldCBhbmdsZShhbmdsZSkge1xuICAgICAgICB0aGlzLnVwZGF0ZUZyb21BbmdsZShhbmdsZSwgdGhpcy5sZW5ndGgpO1xuICAgIH1cbiAgICBnZXQgbGVuZ3RoKCkge1xuICAgICAgICByZXR1cm4gTWF0aC5zcXJ0KHRoaXMueCAqKiAyICsgdGhpcy55ICoqIDIpO1xuICAgIH1cbiAgICBzZXQgbGVuZ3RoKGxlbmd0aCkge1xuICAgICAgICB0aGlzLnVwZGF0ZUZyb21BbmdsZSh0aGlzLmFuZ2xlLCBsZW5ndGgpO1xuICAgIH1cbiAgICBhZGQodikge1xuICAgICAgICByZXR1cm4gVmVjdG9yLmNyZWF0ZSh0aGlzLnggKyB2LngsIHRoaXMueSArIHYueSk7XG4gICAgfVxuICAgIGFkZFRvKHYpIHtcbiAgICAgICAgdGhpcy54ICs9IHYueDtcbiAgICAgICAgdGhpcy55ICs9IHYueTtcbiAgICB9XG4gICAgc3ViKHYpIHtcbiAgICAgICAgcmV0dXJuIFZlY3Rvci5jcmVhdGUodGhpcy54IC0gdi54LCB0aGlzLnkgLSB2LnkpO1xuICAgIH1cbiAgICBzdWJGcm9tKHYpIHtcbiAgICAgICAgdGhpcy54IC09IHYueDtcbiAgICAgICAgdGhpcy55IC09IHYueTtcbiAgICB9XG4gICAgbXVsdChuKSB7XG4gICAgICAgIHJldHVybiBWZWN0b3IuY3JlYXRlKHRoaXMueCAqIG4sIHRoaXMueSAqIG4pO1xuICAgIH1cbiAgICBtdWx0VG8obikge1xuICAgICAgICB0aGlzLnggKj0gbjtcbiAgICAgICAgdGhpcy55ICo9IG47XG4gICAgfVxuICAgIGRpdihuKSB7XG4gICAgICAgIHJldHVybiBWZWN0b3IuY3JlYXRlKHRoaXMueCAvIG4sIHRoaXMueSAvIG4pO1xuICAgIH1cbiAgICBkaXZUbyhuKSB7XG4gICAgICAgIHRoaXMueCAvPSBuO1xuICAgICAgICB0aGlzLnkgLz0gbjtcbiAgICB9XG4gICAgZGlzdGFuY2VUbyh2KSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN1Yih2KS5sZW5ndGg7XG4gICAgfVxuICAgIGdldExlbmd0aFNxKCkge1xuICAgICAgICByZXR1cm4gdGhpcy54ICoqIDIgKyB0aGlzLnkgKiogMjtcbiAgICB9XG4gICAgZGlzdGFuY2VUb1NxKHYpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3ViKHYpLmdldExlbmd0aFNxKCk7XG4gICAgfVxuICAgIG1hbmhhdHRhbkRpc3RhbmNlVG8odikge1xuICAgICAgICByZXR1cm4gTWF0aC5hYnModi54IC0gdGhpcy54KSArIE1hdGguYWJzKHYueSAtIHRoaXMueSk7XG4gICAgfVxuICAgIGNvcHkoKSB7XG4gICAgICAgIHJldHVybiBWZWN0b3IuY2xvbmUodGhpcyk7XG4gICAgfVxuICAgIHNldFRvKHZlbG9jaXR5KSB7XG4gICAgICAgIHRoaXMueCA9IHZlbG9jaXR5Lng7XG4gICAgICAgIHRoaXMueSA9IHZlbG9jaXR5Lnk7XG4gICAgfVxuICAgIHJvdGF0ZShhbmdsZSkge1xuICAgICAgICByZXR1cm4gVmVjdG9yLmNyZWF0ZSh0aGlzLnggKiBNYXRoLmNvcyhhbmdsZSkgLSB0aGlzLnkgKiBNYXRoLnNpbihhbmdsZSksIHRoaXMueCAqIE1hdGguc2luKGFuZ2xlKSArIHRoaXMueSAqIE1hdGguY29zKGFuZ2xlKSk7XG4gICAgfVxuICAgIHVwZGF0ZUZyb21BbmdsZShhbmdsZSwgbGVuZ3RoKSB7XG4gICAgICAgIHRoaXMueCA9IE1hdGguY29zKGFuZ2xlKSAqIGxlbmd0aDtcbiAgICAgICAgdGhpcy55ID0gTWF0aC5zaW4oYW5nbGUpICogbGVuZ3RoO1xuICAgIH1cbn1cbmV4cG9ydHMuVmVjdG9yID0gVmVjdG9yO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Particle/Vector.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Particle/Vector3d.js": +/*!************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Particle/Vector3d.js ***! + \************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Vector3d = void 0;\nconst Vector_1 = __webpack_require__(/*! ./Vector */ \"./node_modules/tsparticles/Core/Particle/Vector.js\");\nclass Vector3d extends Vector_1.Vector {\n constructor(x, y, z) {\n super(x, y);\n this.z = z === undefined ? x.z : z;\n }\n static clone(source) {\n return Vector3d.create(source.x, source.y, source.z);\n }\n static create(x, y, z) {\n return new Vector3d(x, y, z);\n }\n add(v) {\n return v instanceof Vector3d ? Vector3d.create(this.x + v.x, this.y + v.y, this.z + v.z) : super.add(v);\n }\n addTo(v) {\n super.addTo(v);\n if (v instanceof Vector3d) {\n this.z += v.z;\n }\n }\n sub(v) {\n return v instanceof Vector3d ? Vector3d.create(this.x - v.x, this.y - v.y, this.z - v.z) : super.sub(v);\n }\n subFrom(v) {\n super.subFrom(v);\n if (v instanceof Vector3d) {\n this.z -= v.z;\n }\n }\n mult(n) {\n return Vector3d.create(this.x * n, this.y * n, this.z * n);\n }\n multTo(n) {\n super.multTo(n);\n this.z *= n;\n }\n div(n) {\n return Vector3d.create(this.x / n, this.y / n, this.z / n);\n }\n divTo(n) {\n super.divTo(n);\n this.z /= n;\n }\n copy() {\n return Vector3d.clone(this);\n }\n setTo(v) {\n super.setTo(v);\n if (v instanceof Vector3d) {\n this.z = v.z;\n }\n }\n}\nexports.Vector3d = Vector3d;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9QYXJ0aWNsZS9WZWN0b3IzZC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxnQkFBZ0I7QUFDaEIsaUJBQWlCLG1CQUFPLENBQUMsb0VBQVU7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9QYXJ0aWNsZS9WZWN0b3IzZC5qcz9hODI2Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5WZWN0b3IzZCA9IHZvaWQgMDtcbmNvbnN0IFZlY3Rvcl8xID0gcmVxdWlyZShcIi4vVmVjdG9yXCIpO1xuY2xhc3MgVmVjdG9yM2QgZXh0ZW5kcyBWZWN0b3JfMS5WZWN0b3Ige1xuICAgIGNvbnN0cnVjdG9yKHgsIHksIHopIHtcbiAgICAgICAgc3VwZXIoeCwgeSk7XG4gICAgICAgIHRoaXMueiA9IHogPT09IHVuZGVmaW5lZCA/IHgueiA6IHo7XG4gICAgfVxuICAgIHN0YXRpYyBjbG9uZShzb3VyY2UpIHtcbiAgICAgICAgcmV0dXJuIFZlY3RvcjNkLmNyZWF0ZShzb3VyY2UueCwgc291cmNlLnksIHNvdXJjZS56KTtcbiAgICB9XG4gICAgc3RhdGljIGNyZWF0ZSh4LCB5LCB6KSB7XG4gICAgICAgIHJldHVybiBuZXcgVmVjdG9yM2QoeCwgeSwgeik7XG4gICAgfVxuICAgIGFkZCh2KSB7XG4gICAgICAgIHJldHVybiB2IGluc3RhbmNlb2YgVmVjdG9yM2QgPyBWZWN0b3IzZC5jcmVhdGUodGhpcy54ICsgdi54LCB0aGlzLnkgKyB2LnksIHRoaXMueiArIHYueikgOiBzdXBlci5hZGQodik7XG4gICAgfVxuICAgIGFkZFRvKHYpIHtcbiAgICAgICAgc3VwZXIuYWRkVG8odik7XG4gICAgICAgIGlmICh2IGluc3RhbmNlb2YgVmVjdG9yM2QpIHtcbiAgICAgICAgICAgIHRoaXMueiArPSB2Lno7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3ViKHYpIHtcbiAgICAgICAgcmV0dXJuIHYgaW5zdGFuY2VvZiBWZWN0b3IzZCA/IFZlY3RvcjNkLmNyZWF0ZSh0aGlzLnggLSB2LngsIHRoaXMueSAtIHYueSwgdGhpcy56IC0gdi56KSA6IHN1cGVyLnN1Yih2KTtcbiAgICB9XG4gICAgc3ViRnJvbSh2KSB7XG4gICAgICAgIHN1cGVyLnN1YkZyb20odik7XG4gICAgICAgIGlmICh2IGluc3RhbmNlb2YgVmVjdG9yM2QpIHtcbiAgICAgICAgICAgIHRoaXMueiAtPSB2Lno7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbXVsdChuKSB7XG4gICAgICAgIHJldHVybiBWZWN0b3IzZC5jcmVhdGUodGhpcy54ICogbiwgdGhpcy55ICogbiwgdGhpcy56ICogbik7XG4gICAgfVxuICAgIG11bHRUbyhuKSB7XG4gICAgICAgIHN1cGVyLm11bHRUbyhuKTtcbiAgICAgICAgdGhpcy56ICo9IG47XG4gICAgfVxuICAgIGRpdihuKSB7XG4gICAgICAgIHJldHVybiBWZWN0b3IzZC5jcmVhdGUodGhpcy54IC8gbiwgdGhpcy55IC8gbiwgdGhpcy56IC8gbik7XG4gICAgfVxuICAgIGRpdlRvKG4pIHtcbiAgICAgICAgc3VwZXIuZGl2VG8obik7XG4gICAgICAgIHRoaXMueiAvPSBuO1xuICAgIH1cbiAgICBjb3B5KCkge1xuICAgICAgICByZXR1cm4gVmVjdG9yM2QuY2xvbmUodGhpcyk7XG4gICAgfVxuICAgIHNldFRvKHYpIHtcbiAgICAgICAgc3VwZXIuc2V0VG8odik7XG4gICAgICAgIGlmICh2IGluc3RhbmNlb2YgVmVjdG9yM2QpIHtcbiAgICAgICAgICAgIHRoaXMueiA9IHYuejtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuVmVjdG9yM2QgPSBWZWN0b3IzZDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Particle/Vector3d.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Particles.js": +/*!****************************************************!*\ + !*** ./node_modules/tsparticles/Core/Particles.js ***! + \****************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Particles = void 0;\nconst Particle_1 = __webpack_require__(/*! ./Particle */ \"./node_modules/tsparticles/Core/Particle.js\");\nconst Utils_1 = __webpack_require__(/*! ../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst InteractionManager_1 = __webpack_require__(/*! ./InteractionManager */ \"./node_modules/tsparticles/Core/InteractionManager.js\");\nconst ParticlesOptions_1 = __webpack_require__(/*! ../Options/Classes/Particles/ParticlesOptions */ \"./node_modules/tsparticles/Options/Classes/Particles/ParticlesOptions.js\");\nconst Mover_1 = __webpack_require__(/*! ./Particle/Mover */ \"./node_modules/tsparticles/Core/Particle/Mover.js\");\nclass Particles {\n constructor(container) {\n this.container = container;\n this.nextId = 0;\n this.array = [];\n this.zArray = [];\n this.mover = new Mover_1.Mover(container);\n this.limit = 0;\n this.needsSort = false;\n this.lastZIndex = 0;\n this.freqs = {\n links: new Map(),\n triangles: new Map(),\n };\n this.interactionManager = new InteractionManager_1.InteractionManager(container);\n const canvasSize = this.container.canvas.size;\n this.linksColors = new Map();\n this.quadTree = new Utils_1.QuadTree(new Utils_1.Rectangle(-canvasSize.width / 4, -canvasSize.height / 4, (canvasSize.width * 3) / 2, (canvasSize.height * 3) / 2), 4);\n this.updaters = Utils_1.Plugins.getUpdaters(container, true);\n }\n get count() {\n return this.array.length;\n }\n init() {\n var _a;\n const container = this.container;\n const options = container.actualOptions;\n this.lastZIndex = 0;\n this.needsSort = false;\n this.freqs.links = new Map();\n this.freqs.triangles = new Map();\n let handled = false;\n this.updaters = Utils_1.Plugins.getUpdaters(container, true);\n this.interactionManager.init();\n for (const [, plugin] of container.plugins) {\n if (plugin.particlesInitialization !== undefined) {\n handled = plugin.particlesInitialization();\n }\n if (handled) {\n break;\n }\n }\n this.addManualParticles();\n if (!handled) {\n for (const group in options.particles.groups) {\n const groupOptions = options.particles.groups[group];\n for (let i = this.count, j = 0; j < ((_a = groupOptions.number) === null || _a === void 0 ? void 0 : _a.value) && i < options.particles.number.value; i++, j++) {\n this.addParticle(undefined, groupOptions, group);\n }\n }\n for (let i = this.count; i < options.particles.number.value; i++) {\n this.addParticle();\n }\n }\n container.pathGenerator.init(container);\n }\n redraw() {\n this.clear();\n this.init();\n this.draw({ value: 0, factor: 0 });\n }\n removeAt(index, quantity = 1, group, override) {\n if (!(index >= 0 && index <= this.count)) {\n return;\n }\n let deleted = 0;\n for (let i = index; deleted < quantity && i < this.count; i++) {\n const particle = this.array[i];\n if (!particle || particle.group !== group) {\n continue;\n }\n particle.destroy(override);\n this.array.splice(i--, 1);\n const zIdx = this.zArray.indexOf(particle);\n this.zArray.splice(zIdx, 1);\n deleted++;\n }\n }\n remove(particle, group, override) {\n this.removeAt(this.array.indexOf(particle), undefined, group, override);\n }\n update(delta) {\n const container = this.container;\n const particlesToDelete = [];\n container.pathGenerator.update();\n for (const [, plugin] of container.plugins) {\n if (plugin.update !== undefined) {\n plugin.update(delta);\n }\n }\n for (const particle of this.array) {\n const resizeFactor = container.canvas.resizeFactor;\n if (resizeFactor) {\n particle.position.x *= resizeFactor.width;\n particle.position.y *= resizeFactor.height;\n }\n particle.bubble.inRange = false;\n for (const [, plugin] of this.container.plugins) {\n if (particle.destroyed) {\n break;\n }\n if (plugin.particleUpdate) {\n plugin.particleUpdate(particle, delta);\n }\n }\n this.mover.move(particle, delta);\n if (particle.destroyed) {\n particlesToDelete.push(particle);\n continue;\n }\n this.quadTree.insert(new Utils_1.Point(particle.getPosition(), particle));\n }\n for (const particle of particlesToDelete) {\n this.remove(particle);\n }\n this.interactionManager.externalInteract(delta);\n for (const particle of container.particles.array) {\n for (const updater of this.updaters) {\n updater.update(particle, delta);\n }\n if (!particle.destroyed && !particle.spawning) {\n this.interactionManager.particlesInteract(particle, delta);\n }\n }\n delete container.canvas.resizeFactor;\n }\n draw(delta) {\n const container = this.container;\n container.canvas.clear();\n const canvasSize = this.container.canvas.size;\n this.quadTree = new Utils_1.QuadTree(new Utils_1.Rectangle(-canvasSize.width / 4, -canvasSize.height / 4, (canvasSize.width * 3) / 2, (canvasSize.height * 3) / 2), 4);\n this.update(delta);\n if (this.needsSort) {\n this.zArray.sort((a, b) => b.position.z - a.position.z || a.id - b.id);\n this.lastZIndex = this.zArray[this.zArray.length - 1].position.z;\n this.needsSort = false;\n }\n for (const [, plugin] of container.plugins) {\n container.canvas.drawPlugin(plugin, delta);\n }\n for (const p of this.zArray) {\n p.draw(delta);\n }\n }\n clear() {\n this.array = [];\n this.zArray = [];\n }\n push(nb, mouse, overrideOptions, group) {\n this.pushing = true;\n for (let i = 0; i < nb; i++) {\n this.addParticle(mouse === null || mouse === void 0 ? void 0 : mouse.position, overrideOptions, group);\n }\n this.pushing = false;\n }\n addParticle(position, overrideOptions, group) {\n const container = this.container;\n const options = container.actualOptions;\n const limit = options.particles.number.limit * container.density;\n if (limit > 0) {\n const countToRemove = this.count + 1 - limit;\n if (countToRemove > 0) {\n this.removeQuantity(countToRemove);\n }\n }\n return this.pushParticle(position, overrideOptions, group);\n }\n addSplitParticle(parent) {\n const splitOptions = parent.options.destroy.split;\n const options = new ParticlesOptions_1.ParticlesOptions();\n options.load(parent.options);\n const factor = (0, Utils_1.getRangeValue)(splitOptions.factor.value);\n options.color.load({\n value: {\n hsl: parent.getFillColor(),\n },\n });\n if (typeof options.size.value === \"number\") {\n options.size.value /= factor;\n }\n else {\n options.size.value.min /= factor;\n options.size.value.max /= factor;\n }\n options.load(splitOptions.particles);\n const offset = splitOptions.sizeOffset ? (0, Utils_1.setRangeValue)(-parent.size.value, parent.size.value) : 0;\n const position = {\n x: parent.position.x + (0, Utils_1.randomInRange)(offset),\n y: parent.position.y + (0, Utils_1.randomInRange)(offset),\n };\n return this.pushParticle(position, options, parent.group, (particle) => {\n if (particle.size.value < 0.5) {\n return false;\n }\n particle.velocity.length = (0, Utils_1.randomInRange)((0, Utils_1.setRangeValue)(parent.velocity.length, particle.velocity.length));\n particle.splitCount = parent.splitCount + 1;\n particle.unbreakable = true;\n setTimeout(() => {\n particle.unbreakable = false;\n }, 500);\n return true;\n });\n }\n removeQuantity(quantity, group) {\n this.removeAt(0, quantity, group);\n }\n getLinkFrequency(p1, p2) {\n const key = `${Math.min(p1.id, p2.id)}_${Math.max(p1.id, p2.id)}`;\n let res = this.freqs.links.get(key);\n if (res === undefined) {\n res = Math.random();\n this.freqs.links.set(key, res);\n }\n return res;\n }\n getTriangleFrequency(p1, p2, p3) {\n let [id1, id2, id3] = [p1.id, p2.id, p3.id];\n if (id1 > id2) {\n [id2, id1] = [id1, id2];\n }\n if (id2 > id3) {\n [id3, id2] = [id2, id3];\n }\n if (id1 > id3) {\n [id3, id1] = [id1, id3];\n }\n const key = `${id1}_${id2}_${id3}`;\n let res = this.freqs.triangles.get(key);\n if (res === undefined) {\n res = Math.random();\n this.freqs.triangles.set(key, res);\n }\n return res;\n }\n addManualParticles() {\n const container = this.container;\n const options = container.actualOptions;\n for (const particle of options.manualParticles) {\n const pos = particle.position\n ? {\n x: (particle.position.x * container.canvas.size.width) / 100,\n y: (particle.position.y * container.canvas.size.height) / 100,\n }\n : undefined;\n this.addParticle(pos, particle.options);\n }\n }\n setDensity() {\n const options = this.container.actualOptions;\n for (const group in options.particles.groups) {\n this.applyDensity(options.particles.groups[group], 0, group);\n }\n this.applyDensity(options.particles, options.manualParticles.length);\n }\n applyDensity(options, manualCount, group) {\n var _a;\n if (!((_a = options.number.density) === null || _a === void 0 ? void 0 : _a.enable)) {\n return;\n }\n const numberOptions = options.number;\n const densityFactor = this.initDensityFactor(numberOptions.density);\n const optParticlesNumber = numberOptions.value;\n const optParticlesLimit = numberOptions.limit > 0 ? numberOptions.limit : optParticlesNumber;\n const particlesNumber = Math.min(optParticlesNumber, optParticlesLimit) * densityFactor + manualCount;\n const particlesCount = Math.min(this.count, this.array.filter((t) => t.group === group).length);\n this.limit = numberOptions.limit * densityFactor;\n if (particlesCount < particlesNumber) {\n this.push(Math.abs(particlesNumber - particlesCount), undefined, options, group);\n }\n else if (particlesCount > particlesNumber) {\n this.removeQuantity(particlesCount - particlesNumber, group);\n }\n }\n initDensityFactor(densityOptions) {\n const container = this.container;\n if (!container.canvas.element || !densityOptions.enable) {\n return 1;\n }\n const canvas = container.canvas.element;\n const pxRatio = container.retina.pixelRatio;\n return (canvas.width * canvas.height) / (densityOptions.factor * pxRatio ** 2 * densityOptions.area);\n }\n pushParticle(position, overrideOptions, group, initializer) {\n try {\n const particle = new Particle_1.Particle(this.nextId, this.container, position, overrideOptions, group);\n let canAdd = true;\n if (initializer) {\n canAdd = initializer(particle);\n }\n if (!canAdd) {\n return;\n }\n this.array.push(particle);\n this.zArray.push(particle);\n this.nextId++;\n return particle;\n }\n catch (e) {\n console.warn(`error adding particle: ${e}`);\n return;\n }\n }\n}\nexports.Particles = Particles;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9QYXJ0aWNsZXMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsaUJBQWlCO0FBQ2pCLG1CQUFtQixtQkFBTyxDQUFDLCtEQUFZO0FBQ3ZDLGdCQUFnQixtQkFBTyxDQUFDLDJEQUFVO0FBQ2xDLDZCQUE2QixtQkFBTyxDQUFDLG1GQUFzQjtBQUMzRCwyQkFBMkIsbUJBQU8sQ0FBQywrSEFBK0M7QUFDbEYsZ0JBQWdCLG1CQUFPLENBQUMsMkVBQWtCO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0RBQWdELHNIQUFzSDtBQUN0SztBQUNBO0FBQ0E7QUFDQSxxQ0FBcUMsb0NBQW9DO0FBQ3pFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IscUJBQXFCO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QixzQ0FBc0M7QUFDbEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixRQUFRO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYixTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1Qix1QkFBdUIsR0FBRyx1QkFBdUI7QUFDeEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSTtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbURBQW1ELEVBQUU7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0NvcmUvUGFydGljbGVzLmpzPzlhMTkiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlBhcnRpY2xlcyA9IHZvaWQgMDtcbmNvbnN0IFBhcnRpY2xlXzEgPSByZXF1aXJlKFwiLi9QYXJ0aWNsZVwiKTtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vVXRpbHNcIik7XG5jb25zdCBJbnRlcmFjdGlvbk1hbmFnZXJfMSA9IHJlcXVpcmUoXCIuL0ludGVyYWN0aW9uTWFuYWdlclwiKTtcbmNvbnN0IFBhcnRpY2xlc09wdGlvbnNfMSA9IHJlcXVpcmUoXCIuLi9PcHRpb25zL0NsYXNzZXMvUGFydGljbGVzL1BhcnRpY2xlc09wdGlvbnNcIik7XG5jb25zdCBNb3Zlcl8xID0gcmVxdWlyZShcIi4vUGFydGljbGUvTW92ZXJcIik7XG5jbGFzcyBQYXJ0aWNsZXMge1xuICAgIGNvbnN0cnVjdG9yKGNvbnRhaW5lcikge1xuICAgICAgICB0aGlzLmNvbnRhaW5lciA9IGNvbnRhaW5lcjtcbiAgICAgICAgdGhpcy5uZXh0SWQgPSAwO1xuICAgICAgICB0aGlzLmFycmF5ID0gW107XG4gICAgICAgIHRoaXMuekFycmF5ID0gW107XG4gICAgICAgIHRoaXMubW92ZXIgPSBuZXcgTW92ZXJfMS5Nb3Zlcihjb250YWluZXIpO1xuICAgICAgICB0aGlzLmxpbWl0ID0gMDtcbiAgICAgICAgdGhpcy5uZWVkc1NvcnQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5sYXN0WkluZGV4ID0gMDtcbiAgICAgICAgdGhpcy5mcmVxcyA9IHtcbiAgICAgICAgICAgIGxpbmtzOiBuZXcgTWFwKCksXG4gICAgICAgICAgICB0cmlhbmdsZXM6IG5ldyBNYXAoKSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5pbnRlcmFjdGlvbk1hbmFnZXIgPSBuZXcgSW50ZXJhY3Rpb25NYW5hZ2VyXzEuSW50ZXJhY3Rpb25NYW5hZ2VyKGNvbnRhaW5lcik7XG4gICAgICAgIGNvbnN0IGNhbnZhc1NpemUgPSB0aGlzLmNvbnRhaW5lci5jYW52YXMuc2l6ZTtcbiAgICAgICAgdGhpcy5saW5rc0NvbG9ycyA9IG5ldyBNYXAoKTtcbiAgICAgICAgdGhpcy5xdWFkVHJlZSA9IG5ldyBVdGlsc18xLlF1YWRUcmVlKG5ldyBVdGlsc18xLlJlY3RhbmdsZSgtY2FudmFzU2l6ZS53aWR0aCAvIDQsIC1jYW52YXNTaXplLmhlaWdodCAvIDQsIChjYW52YXNTaXplLndpZHRoICogMykgLyAyLCAoY2FudmFzU2l6ZS5oZWlnaHQgKiAzKSAvIDIpLCA0KTtcbiAgICAgICAgdGhpcy51cGRhdGVycyA9IFV0aWxzXzEuUGx1Z2lucy5nZXRVcGRhdGVycyhjb250YWluZXIsIHRydWUpO1xuICAgIH1cbiAgICBnZXQgY291bnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFycmF5Lmxlbmd0aDtcbiAgICB9XG4gICAgaW5pdCgpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IGNvbnRhaW5lci5hY3R1YWxPcHRpb25zO1xuICAgICAgICB0aGlzLmxhc3RaSW5kZXggPSAwO1xuICAgICAgICB0aGlzLm5lZWRzU29ydCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmZyZXFzLmxpbmtzID0gbmV3IE1hcCgpO1xuICAgICAgICB0aGlzLmZyZXFzLnRyaWFuZ2xlcyA9IG5ldyBNYXAoKTtcbiAgICAgICAgbGV0IGhhbmRsZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy51cGRhdGVycyA9IFV0aWxzXzEuUGx1Z2lucy5nZXRVcGRhdGVycyhjb250YWluZXIsIHRydWUpO1xuICAgICAgICB0aGlzLmludGVyYWN0aW9uTWFuYWdlci5pbml0KCk7XG4gICAgICAgIGZvciAoY29uc3QgWywgcGx1Z2luXSBvZiBjb250YWluZXIucGx1Z2lucykge1xuICAgICAgICAgICAgaWYgKHBsdWdpbi5wYXJ0aWNsZXNJbml0aWFsaXphdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgaGFuZGxlZCA9IHBsdWdpbi5wYXJ0aWNsZXNJbml0aWFsaXphdGlvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGhhbmRsZWQpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFkZE1hbnVhbFBhcnRpY2xlcygpO1xuICAgICAgICBpZiAoIWhhbmRsZWQpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZ3JvdXAgaW4gb3B0aW9ucy5wYXJ0aWNsZXMuZ3JvdXBzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZ3JvdXBPcHRpb25zID0gb3B0aW9ucy5wYXJ0aWNsZXMuZ3JvdXBzW2dyb3VwXTtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5jb3VudCwgaiA9IDA7IGogPCAoKF9hID0gZ3JvdXBPcHRpb25zLm51bWJlcikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnZhbHVlKSAmJiBpIDwgb3B0aW9ucy5wYXJ0aWNsZXMubnVtYmVyLnZhbHVlOyBpKyssIGorKykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZFBhcnRpY2xlKHVuZGVmaW5lZCwgZ3JvdXBPcHRpb25zLCBncm91cCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuY291bnQ7IGkgPCBvcHRpb25zLnBhcnRpY2xlcy5udW1iZXIudmFsdWU7IGkrKykge1xuICAgICAgICAgICAgICAgIHRoaXMuYWRkUGFydGljbGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb250YWluZXIucGF0aEdlbmVyYXRvci5pbml0KGNvbnRhaW5lcik7XG4gICAgfVxuICAgIHJlZHJhdygpIHtcbiAgICAgICAgdGhpcy5jbGVhcigpO1xuICAgICAgICB0aGlzLmluaXQoKTtcbiAgICAgICAgdGhpcy5kcmF3KHsgdmFsdWU6IDAsIGZhY3RvcjogMCB9KTtcbiAgICB9XG4gICAgcmVtb3ZlQXQoaW5kZXgsIHF1YW50aXR5ID0gMSwgZ3JvdXAsIG92ZXJyaWRlKSB7XG4gICAgICAgIGlmICghKGluZGV4ID49IDAgJiYgaW5kZXggPD0gdGhpcy5jb3VudCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgZGVsZXRlZCA9IDA7XG4gICAgICAgIGZvciAobGV0IGkgPSBpbmRleDsgZGVsZXRlZCA8IHF1YW50aXR5ICYmIGkgPCB0aGlzLmNvdW50OyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcnRpY2xlID0gdGhpcy5hcnJheVtpXTtcbiAgICAgICAgICAgIGlmICghcGFydGljbGUgfHwgcGFydGljbGUuZ3JvdXAgIT09IGdyb3VwKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwYXJ0aWNsZS5kZXN0cm95KG92ZXJyaWRlKTtcbiAgICAgICAgICAgIHRoaXMuYXJyYXkuc3BsaWNlKGktLSwgMSk7XG4gICAgICAgICAgICBjb25zdCB6SWR4ID0gdGhpcy56QXJyYXkuaW5kZXhPZihwYXJ0aWNsZSk7XG4gICAgICAgICAgICB0aGlzLnpBcnJheS5zcGxpY2UoeklkeCwgMSk7XG4gICAgICAgICAgICBkZWxldGVkKys7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmVtb3ZlKHBhcnRpY2xlLCBncm91cCwgb3ZlcnJpZGUpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVBdCh0aGlzLmFycmF5LmluZGV4T2YocGFydGljbGUpLCB1bmRlZmluZWQsIGdyb3VwLCBvdmVycmlkZSk7XG4gICAgfVxuICAgIHVwZGF0ZShkZWx0YSkge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgY29uc3QgcGFydGljbGVzVG9EZWxldGUgPSBbXTtcbiAgICAgICAgY29udGFpbmVyLnBhdGhHZW5lcmF0b3IudXBkYXRlKCk7XG4gICAgICAgIGZvciAoY29uc3QgWywgcGx1Z2luXSBvZiBjb250YWluZXIucGx1Z2lucykge1xuICAgICAgICAgICAgaWYgKHBsdWdpbi51cGRhdGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHBsdWdpbi51cGRhdGUoZGVsdGEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgcGFydGljbGUgb2YgdGhpcy5hcnJheSkge1xuICAgICAgICAgICAgY29uc3QgcmVzaXplRmFjdG9yID0gY29udGFpbmVyLmNhbnZhcy5yZXNpemVGYWN0b3I7XG4gICAgICAgICAgICBpZiAocmVzaXplRmFjdG9yKSB7XG4gICAgICAgICAgICAgICAgcGFydGljbGUucG9zaXRpb24ueCAqPSByZXNpemVGYWN0b3Iud2lkdGg7XG4gICAgICAgICAgICAgICAgcGFydGljbGUucG9zaXRpb24ueSAqPSByZXNpemVGYWN0b3IuaGVpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGFydGljbGUuYnViYmxlLmluUmFuZ2UgPSBmYWxzZTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgWywgcGx1Z2luXSBvZiB0aGlzLmNvbnRhaW5lci5wbHVnaW5zKSB7XG4gICAgICAgICAgICAgICAgaWYgKHBhcnRpY2xlLmRlc3Ryb3llZCkge1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHBsdWdpbi5wYXJ0aWNsZVVwZGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICBwbHVnaW4ucGFydGljbGVVcGRhdGUocGFydGljbGUsIGRlbHRhKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLm1vdmVyLm1vdmUocGFydGljbGUsIGRlbHRhKTtcbiAgICAgICAgICAgIGlmIChwYXJ0aWNsZS5kZXN0cm95ZWQpIHtcbiAgICAgICAgICAgICAgICBwYXJ0aWNsZXNUb0RlbGV0ZS5wdXNoKHBhcnRpY2xlKTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMucXVhZFRyZWUuaW5zZXJ0KG5ldyBVdGlsc18xLlBvaW50KHBhcnRpY2xlLmdldFBvc2l0aW9uKCksIHBhcnRpY2xlKSk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBwYXJ0aWNsZSBvZiBwYXJ0aWNsZXNUb0RlbGV0ZSkge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmUocGFydGljbGUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW50ZXJhY3Rpb25NYW5hZ2VyLmV4dGVybmFsSW50ZXJhY3QoZGVsdGEpO1xuICAgICAgICBmb3IgKGNvbnN0IHBhcnRpY2xlIG9mIGNvbnRhaW5lci5wYXJ0aWNsZXMuYXJyYXkpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgdXBkYXRlciBvZiB0aGlzLnVwZGF0ZXJzKSB7XG4gICAgICAgICAgICAgICAgdXBkYXRlci51cGRhdGUocGFydGljbGUsIGRlbHRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghcGFydGljbGUuZGVzdHJveWVkICYmICFwYXJ0aWNsZS5zcGF3bmluZykge1xuICAgICAgICAgICAgICAgIHRoaXMuaW50ZXJhY3Rpb25NYW5hZ2VyLnBhcnRpY2xlc0ludGVyYWN0KHBhcnRpY2xlLCBkZWx0YSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZGVsZXRlIGNvbnRhaW5lci5jYW52YXMucmVzaXplRmFjdG9yO1xuICAgIH1cbiAgICBkcmF3KGRlbHRhKSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyO1xuICAgICAgICBjb250YWluZXIuY2FudmFzLmNsZWFyKCk7XG4gICAgICAgIGNvbnN0IGNhbnZhc1NpemUgPSB0aGlzLmNvbnRhaW5lci5jYW52YXMuc2l6ZTtcbiAgICAgICAgdGhpcy5xdWFkVHJlZSA9IG5ldyBVdGlsc18xLlF1YWRUcmVlKG5ldyBVdGlsc18xLlJlY3RhbmdsZSgtY2FudmFzU2l6ZS53aWR0aCAvIDQsIC1jYW52YXNTaXplLmhlaWdodCAvIDQsIChjYW52YXNTaXplLndpZHRoICogMykgLyAyLCAoY2FudmFzU2l6ZS5oZWlnaHQgKiAzKSAvIDIpLCA0KTtcbiAgICAgICAgdGhpcy51cGRhdGUoZGVsdGEpO1xuICAgICAgICBpZiAodGhpcy5uZWVkc1NvcnQpIHtcbiAgICAgICAgICAgIHRoaXMuekFycmF5LnNvcnQoKGEsIGIpID0+IGIucG9zaXRpb24ueiAtIGEucG9zaXRpb24ueiB8fCBhLmlkIC0gYi5pZCk7XG4gICAgICAgICAgICB0aGlzLmxhc3RaSW5kZXggPSB0aGlzLnpBcnJheVt0aGlzLnpBcnJheS5sZW5ndGggLSAxXS5wb3NpdGlvbi56O1xuICAgICAgICAgICAgdGhpcy5uZWVkc1NvcnQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IFssIHBsdWdpbl0gb2YgY29udGFpbmVyLnBsdWdpbnMpIHtcbiAgICAgICAgICAgIGNvbnRhaW5lci5jYW52YXMuZHJhd1BsdWdpbihwbHVnaW4sIGRlbHRhKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IHAgb2YgdGhpcy56QXJyYXkpIHtcbiAgICAgICAgICAgIHAuZHJhdyhkZWx0YSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY2xlYXIoKSB7XG4gICAgICAgIHRoaXMuYXJyYXkgPSBbXTtcbiAgICAgICAgdGhpcy56QXJyYXkgPSBbXTtcbiAgICB9XG4gICAgcHVzaChuYiwgbW91c2UsIG92ZXJyaWRlT3B0aW9ucywgZ3JvdXApIHtcbiAgICAgICAgdGhpcy5wdXNoaW5nID0gdHJ1ZTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuYjsgaSsrKSB7XG4gICAgICAgICAgICB0aGlzLmFkZFBhcnRpY2xlKG1vdXNlID09PSBudWxsIHx8IG1vdXNlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBtb3VzZS5wb3NpdGlvbiwgb3ZlcnJpZGVPcHRpb25zLCBncm91cCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wdXNoaW5nID0gZmFsc2U7XG4gICAgfVxuICAgIGFkZFBhcnRpY2xlKHBvc2l0aW9uLCBvdmVycmlkZU9wdGlvbnMsIGdyb3VwKSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyO1xuICAgICAgICBjb25zdCBvcHRpb25zID0gY29udGFpbmVyLmFjdHVhbE9wdGlvbnM7XG4gICAgICAgIGNvbnN0IGxpbWl0ID0gb3B0aW9ucy5wYXJ0aWNsZXMubnVtYmVyLmxpbWl0ICogY29udGFpbmVyLmRlbnNpdHk7XG4gICAgICAgIGlmIChsaW1pdCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGNvdW50VG9SZW1vdmUgPSB0aGlzLmNvdW50ICsgMSAtIGxpbWl0O1xuICAgICAgICAgICAgaWYgKGNvdW50VG9SZW1vdmUgPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVRdWFudGl0eShjb3VudFRvUmVtb3ZlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5wdXNoUGFydGljbGUocG9zaXRpb24sIG92ZXJyaWRlT3B0aW9ucywgZ3JvdXApO1xuICAgIH1cbiAgICBhZGRTcGxpdFBhcnRpY2xlKHBhcmVudCkge1xuICAgICAgICBjb25zdCBzcGxpdE9wdGlvbnMgPSBwYXJlbnQub3B0aW9ucy5kZXN0cm95LnNwbGl0O1xuICAgICAgICBjb25zdCBvcHRpb25zID0gbmV3IFBhcnRpY2xlc09wdGlvbnNfMS5QYXJ0aWNsZXNPcHRpb25zKCk7XG4gICAgICAgIG9wdGlvbnMubG9hZChwYXJlbnQub3B0aW9ucyk7XG4gICAgICAgIGNvbnN0IGZhY3RvciA9ICgwLCBVdGlsc18xLmdldFJhbmdlVmFsdWUpKHNwbGl0T3B0aW9ucy5mYWN0b3IudmFsdWUpO1xuICAgICAgICBvcHRpb25zLmNvbG9yLmxvYWQoe1xuICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICBoc2w6IHBhcmVudC5nZXRGaWxsQ29sb3IoKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMuc2l6ZS52YWx1ZSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgb3B0aW9ucy5zaXplLnZhbHVlIC89IGZhY3RvcjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIG9wdGlvbnMuc2l6ZS52YWx1ZS5taW4gLz0gZmFjdG9yO1xuICAgICAgICAgICAgb3B0aW9ucy5zaXplLnZhbHVlLm1heCAvPSBmYWN0b3I7XG4gICAgICAgIH1cbiAgICAgICAgb3B0aW9ucy5sb2FkKHNwbGl0T3B0aW9ucy5wYXJ0aWNsZXMpO1xuICAgICAgICBjb25zdCBvZmZzZXQgPSBzcGxpdE9wdGlvbnMuc2l6ZU9mZnNldCA/ICgwLCBVdGlsc18xLnNldFJhbmdlVmFsdWUpKC1wYXJlbnQuc2l6ZS52YWx1ZSwgcGFyZW50LnNpemUudmFsdWUpIDogMDtcbiAgICAgICAgY29uc3QgcG9zaXRpb24gPSB7XG4gICAgICAgICAgICB4OiBwYXJlbnQucG9zaXRpb24ueCArICgwLCBVdGlsc18xLnJhbmRvbUluUmFuZ2UpKG9mZnNldCksXG4gICAgICAgICAgICB5OiBwYXJlbnQucG9zaXRpb24ueSArICgwLCBVdGlsc18xLnJhbmRvbUluUmFuZ2UpKG9mZnNldCksXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiB0aGlzLnB1c2hQYXJ0aWNsZShwb3NpdGlvbiwgb3B0aW9ucywgcGFyZW50Lmdyb3VwLCAocGFydGljbGUpID0+IHtcbiAgICAgICAgICAgIGlmIChwYXJ0aWNsZS5zaXplLnZhbHVlIDwgMC41KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGFydGljbGUudmVsb2NpdHkubGVuZ3RoID0gKDAsIFV0aWxzXzEucmFuZG9tSW5SYW5nZSkoKDAsIFV0aWxzXzEuc2V0UmFuZ2VWYWx1ZSkocGFyZW50LnZlbG9jaXR5Lmxlbmd0aCwgcGFydGljbGUudmVsb2NpdHkubGVuZ3RoKSk7XG4gICAgICAgICAgICBwYXJ0aWNsZS5zcGxpdENvdW50ID0gcGFyZW50LnNwbGl0Q291bnQgKyAxO1xuICAgICAgICAgICAgcGFydGljbGUudW5icmVha2FibGUgPSB0cnVlO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgcGFydGljbGUudW5icmVha2FibGUgPSBmYWxzZTtcbiAgICAgICAgICAgIH0sIDUwMCk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJlbW92ZVF1YW50aXR5KHF1YW50aXR5LCBncm91cCkge1xuICAgICAgICB0aGlzLnJlbW92ZUF0KDAsIHF1YW50aXR5LCBncm91cCk7XG4gICAgfVxuICAgIGdldExpbmtGcmVxdWVuY3kocDEsIHAyKSB7XG4gICAgICAgIGNvbnN0IGtleSA9IGAke01hdGgubWluKHAxLmlkLCBwMi5pZCl9XyR7TWF0aC5tYXgocDEuaWQsIHAyLmlkKX1gO1xuICAgICAgICBsZXQgcmVzID0gdGhpcy5mcmVxcy5saW5rcy5nZXQoa2V5KTtcbiAgICAgICAgaWYgKHJlcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXMgPSBNYXRoLnJhbmRvbSgpO1xuICAgICAgICAgICAgdGhpcy5mcmVxcy5saW5rcy5zZXQoa2V5LCByZXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuICAgIGdldFRyaWFuZ2xlRnJlcXVlbmN5KHAxLCBwMiwgcDMpIHtcbiAgICAgICAgbGV0IFtpZDEsIGlkMiwgaWQzXSA9IFtwMS5pZCwgcDIuaWQsIHAzLmlkXTtcbiAgICAgICAgaWYgKGlkMSA+IGlkMikge1xuICAgICAgICAgICAgW2lkMiwgaWQxXSA9IFtpZDEsIGlkMl07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlkMiA+IGlkMykge1xuICAgICAgICAgICAgW2lkMywgaWQyXSA9IFtpZDIsIGlkM107XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlkMSA+IGlkMykge1xuICAgICAgICAgICAgW2lkMywgaWQxXSA9IFtpZDEsIGlkM107XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qga2V5ID0gYCR7aWQxfV8ke2lkMn1fJHtpZDN9YDtcbiAgICAgICAgbGV0IHJlcyA9IHRoaXMuZnJlcXMudHJpYW5nbGVzLmdldChrZXkpO1xuICAgICAgICBpZiAocmVzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJlcyA9IE1hdGgucmFuZG9tKCk7XG4gICAgICAgICAgICB0aGlzLmZyZXFzLnRyaWFuZ2xlcy5zZXQoa2V5LCByZXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuICAgIGFkZE1hbnVhbFBhcnRpY2xlcygpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXI7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSBjb250YWluZXIuYWN0dWFsT3B0aW9ucztcbiAgICAgICAgZm9yIChjb25zdCBwYXJ0aWNsZSBvZiBvcHRpb25zLm1hbnVhbFBhcnRpY2xlcykge1xuICAgICAgICAgICAgY29uc3QgcG9zID0gcGFydGljbGUucG9zaXRpb25cbiAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgeDogKHBhcnRpY2xlLnBvc2l0aW9uLnggKiBjb250YWluZXIuY2FudmFzLnNpemUud2lkdGgpIC8gMTAwLFxuICAgICAgICAgICAgICAgICAgICB5OiAocGFydGljbGUucG9zaXRpb24ueSAqIGNvbnRhaW5lci5jYW52YXMuc2l6ZS5oZWlnaHQpIC8gMTAwLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHRoaXMuYWRkUGFydGljbGUocG9zLCBwYXJ0aWNsZS5vcHRpb25zKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzZXREZW5zaXR5KCkge1xuICAgICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5jb250YWluZXIuYWN0dWFsT3B0aW9ucztcbiAgICAgICAgZm9yIChjb25zdCBncm91cCBpbiBvcHRpb25zLnBhcnRpY2xlcy5ncm91cHMpIHtcbiAgICAgICAgICAgIHRoaXMuYXBwbHlEZW5zaXR5KG9wdGlvbnMucGFydGljbGVzLmdyb3Vwc1tncm91cF0sIDAsIGdyb3VwKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFwcGx5RGVuc2l0eShvcHRpb25zLnBhcnRpY2xlcywgb3B0aW9ucy5tYW51YWxQYXJ0aWNsZXMubGVuZ3RoKTtcbiAgICB9XG4gICAgYXBwbHlEZW5zaXR5KG9wdGlvbnMsIG1hbnVhbENvdW50LCBncm91cCkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICghKChfYSA9IG9wdGlvbnMubnVtYmVyLmRlbnNpdHkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5lbmFibGUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbnVtYmVyT3B0aW9ucyA9IG9wdGlvbnMubnVtYmVyO1xuICAgICAgICBjb25zdCBkZW5zaXR5RmFjdG9yID0gdGhpcy5pbml0RGVuc2l0eUZhY3RvcihudW1iZXJPcHRpb25zLmRlbnNpdHkpO1xuICAgICAgICBjb25zdCBvcHRQYXJ0aWNsZXNOdW1iZXIgPSBudW1iZXJPcHRpb25zLnZhbHVlO1xuICAgICAgICBjb25zdCBvcHRQYXJ0aWNsZXNMaW1pdCA9IG51bWJlck9wdGlvbnMubGltaXQgPiAwID8gbnVtYmVyT3B0aW9ucy5saW1pdCA6IG9wdFBhcnRpY2xlc051bWJlcjtcbiAgICAgICAgY29uc3QgcGFydGljbGVzTnVtYmVyID0gTWF0aC5taW4ob3B0UGFydGljbGVzTnVtYmVyLCBvcHRQYXJ0aWNsZXNMaW1pdCkgKiBkZW5zaXR5RmFjdG9yICsgbWFudWFsQ291bnQ7XG4gICAgICAgIGNvbnN0IHBhcnRpY2xlc0NvdW50ID0gTWF0aC5taW4odGhpcy5jb3VudCwgdGhpcy5hcnJheS5maWx0ZXIoKHQpID0+IHQuZ3JvdXAgPT09IGdyb3VwKS5sZW5ndGgpO1xuICAgICAgICB0aGlzLmxpbWl0ID0gbnVtYmVyT3B0aW9ucy5saW1pdCAqIGRlbnNpdHlGYWN0b3I7XG4gICAgICAgIGlmIChwYXJ0aWNsZXNDb3VudCA8IHBhcnRpY2xlc051bWJlcikge1xuICAgICAgICAgICAgdGhpcy5wdXNoKE1hdGguYWJzKHBhcnRpY2xlc051bWJlciAtIHBhcnRpY2xlc0NvdW50KSwgdW5kZWZpbmVkLCBvcHRpb25zLCBncm91cCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAocGFydGljbGVzQ291bnQgPiBwYXJ0aWNsZXNOdW1iZXIpIHtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlUXVhbnRpdHkocGFydGljbGVzQ291bnQgLSBwYXJ0aWNsZXNOdW1iZXIsIGdyb3VwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpbml0RGVuc2l0eUZhY3RvcihkZW5zaXR5T3B0aW9ucykge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgaWYgKCFjb250YWluZXIuY2FudmFzLmVsZW1lbnQgfHwgIWRlbnNpdHlPcHRpb25zLmVuYWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2FudmFzID0gY29udGFpbmVyLmNhbnZhcy5lbGVtZW50O1xuICAgICAgICBjb25zdCBweFJhdGlvID0gY29udGFpbmVyLnJldGluYS5waXhlbFJhdGlvO1xuICAgICAgICByZXR1cm4gKGNhbnZhcy53aWR0aCAqIGNhbnZhcy5oZWlnaHQpIC8gKGRlbnNpdHlPcHRpb25zLmZhY3RvciAqIHB4UmF0aW8gKiogMiAqIGRlbnNpdHlPcHRpb25zLmFyZWEpO1xuICAgIH1cbiAgICBwdXNoUGFydGljbGUocG9zaXRpb24sIG92ZXJyaWRlT3B0aW9ucywgZ3JvdXAsIGluaXRpYWxpemVyKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBwYXJ0aWNsZSA9IG5ldyBQYXJ0aWNsZV8xLlBhcnRpY2xlKHRoaXMubmV4dElkLCB0aGlzLmNvbnRhaW5lciwgcG9zaXRpb24sIG92ZXJyaWRlT3B0aW9ucywgZ3JvdXApO1xuICAgICAgICAgICAgbGV0IGNhbkFkZCA9IHRydWU7XG4gICAgICAgICAgICBpZiAoaW5pdGlhbGl6ZXIpIHtcbiAgICAgICAgICAgICAgICBjYW5BZGQgPSBpbml0aWFsaXplcihwYXJ0aWNsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWNhbkFkZCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuYXJyYXkucHVzaChwYXJ0aWNsZSk7XG4gICAgICAgICAgICB0aGlzLnpBcnJheS5wdXNoKHBhcnRpY2xlKTtcbiAgICAgICAgICAgIHRoaXMubmV4dElkKys7XG4gICAgICAgICAgICByZXR1cm4gcGFydGljbGU7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgZXJyb3IgYWRkaW5nIHBhcnRpY2xlOiAke2V9YCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLlBhcnRpY2xlcyA9IFBhcnRpY2xlcztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Particles.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/ParticlesInteractorBase.js": +/*!******************************************************************!*\ + !*** ./node_modules/tsparticles/Core/ParticlesInteractorBase.js ***! + \******************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ParticlesInteractorBase = void 0;\nconst Enums_1 = __webpack_require__(/*! ../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nclass ParticlesInteractorBase {\n constructor(container) {\n this.container = container;\n this.type = Enums_1.InteractorType.Particles;\n }\n}\nexports.ParticlesInteractorBase = ParticlesInteractorBase;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9QYXJ0aWNsZXNJbnRlcmFjdG9yQmFzZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCwrQkFBK0I7QUFDL0IsZ0JBQWdCLG1CQUFPLENBQUMsMkRBQVU7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQStCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9Db3JlL1BhcnRpY2xlc0ludGVyYWN0b3JCYXNlLmpzP2EzMjkiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlBhcnRpY2xlc0ludGVyYWN0b3JCYXNlID0gdm9pZCAwO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuLi9FbnVtc1wiKTtcbmNsYXNzIFBhcnRpY2xlc0ludGVyYWN0b3JCYXNlIHtcbiAgICBjb25zdHJ1Y3Rvcihjb250YWluZXIpIHtcbiAgICAgICAgdGhpcy5jb250YWluZXIgPSBjb250YWluZXI7XG4gICAgICAgIHRoaXMudHlwZSA9IEVudW1zXzEuSW50ZXJhY3RvclR5cGUuUGFydGljbGVzO1xuICAgIH1cbn1cbmV4cG9ydHMuUGFydGljbGVzSW50ZXJhY3RvckJhc2UgPSBQYXJ0aWNsZXNJbnRlcmFjdG9yQmFzZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/ParticlesInteractorBase.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Retina.js": +/*!*************************************************!*\ + !*** ./node_modules/tsparticles/Core/Retina.js ***! + \*************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Retina = void 0;\nconst Utils_1 = __webpack_require__(/*! ../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass Retina {\n constructor(container) {\n this.container = container;\n }\n init() {\n const container = this.container;\n const options = container.actualOptions;\n this.pixelRatio = !options.detectRetina || (0, Utils_1.isSsr)() ? 1 : window.devicePixelRatio;\n const motionOptions = this.container.actualOptions.motion;\n if (motionOptions && (motionOptions.disable || motionOptions.reduce.value)) {\n if ((0, Utils_1.isSsr)() || typeof matchMedia === \"undefined\" || !matchMedia) {\n this.reduceFactor = 1;\n }\n else {\n const mediaQuery = matchMedia(\"(prefers-reduced-motion: reduce)\");\n if (mediaQuery) {\n this.handleMotionChange(mediaQuery);\n const handleChange = () => {\n this.handleMotionChange(mediaQuery);\n container.refresh().catch(() => {\n });\n };\n if (mediaQuery.addEventListener !== undefined) {\n mediaQuery.addEventListener(\"change\", handleChange);\n }\n else if (mediaQuery.addListener !== undefined) {\n mediaQuery.addListener(handleChange);\n }\n }\n }\n }\n else {\n this.reduceFactor = 1;\n }\n const ratio = this.pixelRatio;\n if (container.canvas.element) {\n const element = container.canvas.element;\n container.canvas.size.width = element.offsetWidth * ratio;\n container.canvas.size.height = element.offsetHeight * ratio;\n }\n const particles = options.particles;\n this.attractDistance = particles.move.attract.distance * ratio;\n this.linksDistance = particles.links.distance * ratio;\n this.linksWidth = particles.links.width * ratio;\n this.sizeAnimationSpeed = particles.size.animation.speed * ratio;\n this.maxSpeed = particles.move.gravity.maxSpeed * ratio;\n if (particles.orbit.radius !== undefined) {\n this.orbitRadius = particles.orbit.radius * this.container.retina.pixelRatio;\n }\n const modes = options.interactivity.modes;\n this.connectModeDistance = modes.connect.distance * ratio;\n this.connectModeRadius = modes.connect.radius * ratio;\n this.grabModeDistance = modes.grab.distance * ratio;\n this.repulseModeDistance = modes.repulse.distance * ratio;\n this.bounceModeDistance = modes.bounce.distance * ratio;\n this.attractModeDistance = modes.attract.distance * ratio;\n this.slowModeRadius = modes.slow.radius * ratio;\n this.bubbleModeDistance = modes.bubble.distance * ratio;\n if (modes.bubble.size) {\n this.bubbleModeSize = modes.bubble.size * ratio;\n }\n }\n initParticle(particle) {\n const options = particle.options;\n const ratio = this.pixelRatio;\n const moveDistance = options.move.distance;\n const props = particle.retina;\n props.attractDistance = options.move.attract.distance * ratio;\n props.linksDistance = options.links.distance * ratio;\n props.linksWidth = options.links.width * ratio;\n props.moveDrift = (0, Utils_1.getRangeValue)(options.move.drift) * ratio;\n props.moveSpeed = (0, Utils_1.getRangeValue)(options.move.speed) * ratio;\n props.sizeAnimationSpeed = options.size.animation.speed * ratio;\n if (particle.spin) {\n props.spinAcceleration = (0, Utils_1.getRangeValue)(options.move.spin.acceleration) * ratio;\n }\n const maxDistance = props.maxDistance;\n maxDistance.horizontal = moveDistance.horizontal !== undefined ? moveDistance.horizontal * ratio : undefined;\n maxDistance.vertical = moveDistance.vertical !== undefined ? moveDistance.vertical * ratio : undefined;\n props.maxSpeed = options.move.gravity.maxSpeed * ratio;\n }\n handleMotionChange(mediaQuery) {\n const options = this.container.actualOptions;\n if (mediaQuery.matches) {\n const motion = options.motion;\n this.reduceFactor = motion.disable ? 0 : motion.reduce.value ? 1 / motion.reduce.factor : 1;\n }\n else {\n this.reduceFactor = 1;\n }\n }\n}\nexports.Retina = Retina;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9SZXRpbmEuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsY0FBYztBQUNkLGdCQUFnQixtQkFBTyxDQUFDLDJEQUFVO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0NvcmUvUmV0aW5hLmpzPzU4NzAiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlJldGluYSA9IHZvaWQgMDtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vVXRpbHNcIik7XG5jbGFzcyBSZXRpbmEge1xuICAgIGNvbnN0cnVjdG9yKGNvbnRhaW5lcikge1xuICAgICAgICB0aGlzLmNvbnRhaW5lciA9IGNvbnRhaW5lcjtcbiAgICB9XG4gICAgaW5pdCgpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXI7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSBjb250YWluZXIuYWN0dWFsT3B0aW9ucztcbiAgICAgICAgdGhpcy5waXhlbFJhdGlvID0gIW9wdGlvbnMuZGV0ZWN0UmV0aW5hIHx8ICgwLCBVdGlsc18xLmlzU3NyKSgpID8gMSA6IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvO1xuICAgICAgICBjb25zdCBtb3Rpb25PcHRpb25zID0gdGhpcy5jb250YWluZXIuYWN0dWFsT3B0aW9ucy5tb3Rpb247XG4gICAgICAgIGlmIChtb3Rpb25PcHRpb25zICYmIChtb3Rpb25PcHRpb25zLmRpc2FibGUgfHwgbW90aW9uT3B0aW9ucy5yZWR1Y2UudmFsdWUpKSB7XG4gICAgICAgICAgICBpZiAoKDAsIFV0aWxzXzEuaXNTc3IpKCkgfHwgdHlwZW9mIG1hdGNoTWVkaWEgPT09IFwidW5kZWZpbmVkXCIgfHwgIW1hdGNoTWVkaWEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlZHVjZUZhY3RvciA9IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtZWRpYVF1ZXJ5ID0gbWF0Y2hNZWRpYShcIihwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpXCIpO1xuICAgICAgICAgICAgICAgIGlmIChtZWRpYVF1ZXJ5KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlTW90aW9uQ2hhbmdlKG1lZGlhUXVlcnkpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBoYW5kbGVDaGFuZ2UgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZU1vdGlvbkNoYW5nZShtZWRpYVF1ZXJ5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lci5yZWZyZXNoKCkuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGlmIChtZWRpYVF1ZXJ5LmFkZEV2ZW50TGlzdGVuZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWVkaWFRdWVyeS5hZGRFdmVudExpc3RlbmVyKFwiY2hhbmdlXCIsIGhhbmRsZUNoYW5nZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAobWVkaWFRdWVyeS5hZGRMaXN0ZW5lciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtZWRpYVF1ZXJ5LmFkZExpc3RlbmVyKGhhbmRsZUNoYW5nZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJlZHVjZUZhY3RvciA9IDE7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmF0aW8gPSB0aGlzLnBpeGVsUmF0aW87XG4gICAgICAgIGlmIChjb250YWluZXIuY2FudmFzLmVsZW1lbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBjb250YWluZXIuY2FudmFzLmVsZW1lbnQ7XG4gICAgICAgICAgICBjb250YWluZXIuY2FudmFzLnNpemUud2lkdGggPSBlbGVtZW50Lm9mZnNldFdpZHRoICogcmF0aW87XG4gICAgICAgICAgICBjb250YWluZXIuY2FudmFzLnNpemUuaGVpZ2h0ID0gZWxlbWVudC5vZmZzZXRIZWlnaHQgKiByYXRpbztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYXJ0aWNsZXMgPSBvcHRpb25zLnBhcnRpY2xlcztcbiAgICAgICAgdGhpcy5hdHRyYWN0RGlzdGFuY2UgPSBwYXJ0aWNsZXMubW92ZS5hdHRyYWN0LmRpc3RhbmNlICogcmF0aW87XG4gICAgICAgIHRoaXMubGlua3NEaXN0YW5jZSA9IHBhcnRpY2xlcy5saW5rcy5kaXN0YW5jZSAqIHJhdGlvO1xuICAgICAgICB0aGlzLmxpbmtzV2lkdGggPSBwYXJ0aWNsZXMubGlua3Mud2lkdGggKiByYXRpbztcbiAgICAgICAgdGhpcy5zaXplQW5pbWF0aW9uU3BlZWQgPSBwYXJ0aWNsZXMuc2l6ZS5hbmltYXRpb24uc3BlZWQgKiByYXRpbztcbiAgICAgICAgdGhpcy5tYXhTcGVlZCA9IHBhcnRpY2xlcy5tb3ZlLmdyYXZpdHkubWF4U3BlZWQgKiByYXRpbztcbiAgICAgICAgaWYgKHBhcnRpY2xlcy5vcmJpdC5yYWRpdXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5vcmJpdFJhZGl1cyA9IHBhcnRpY2xlcy5vcmJpdC5yYWRpdXMgKiB0aGlzLmNvbnRhaW5lci5yZXRpbmEucGl4ZWxSYXRpbztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtb2RlcyA9IG9wdGlvbnMuaW50ZXJhY3Rpdml0eS5tb2RlcztcbiAgICAgICAgdGhpcy5jb25uZWN0TW9kZURpc3RhbmNlID0gbW9kZXMuY29ubmVjdC5kaXN0YW5jZSAqIHJhdGlvO1xuICAgICAgICB0aGlzLmNvbm5lY3RNb2RlUmFkaXVzID0gbW9kZXMuY29ubmVjdC5yYWRpdXMgKiByYXRpbztcbiAgICAgICAgdGhpcy5ncmFiTW9kZURpc3RhbmNlID0gbW9kZXMuZ3JhYi5kaXN0YW5jZSAqIHJhdGlvO1xuICAgICAgICB0aGlzLnJlcHVsc2VNb2RlRGlzdGFuY2UgPSBtb2Rlcy5yZXB1bHNlLmRpc3RhbmNlICogcmF0aW87XG4gICAgICAgIHRoaXMuYm91bmNlTW9kZURpc3RhbmNlID0gbW9kZXMuYm91bmNlLmRpc3RhbmNlICogcmF0aW87XG4gICAgICAgIHRoaXMuYXR0cmFjdE1vZGVEaXN0YW5jZSA9IG1vZGVzLmF0dHJhY3QuZGlzdGFuY2UgKiByYXRpbztcbiAgICAgICAgdGhpcy5zbG93TW9kZVJhZGl1cyA9IG1vZGVzLnNsb3cucmFkaXVzICogcmF0aW87XG4gICAgICAgIHRoaXMuYnViYmxlTW9kZURpc3RhbmNlID0gbW9kZXMuYnViYmxlLmRpc3RhbmNlICogcmF0aW87XG4gICAgICAgIGlmIChtb2Rlcy5idWJibGUuc2l6ZSkge1xuICAgICAgICAgICAgdGhpcy5idWJibGVNb2RlU2l6ZSA9IG1vZGVzLmJ1YmJsZS5zaXplICogcmF0aW87XG4gICAgICAgIH1cbiAgICB9XG4gICAgaW5pdFBhcnRpY2xlKHBhcnRpY2xlKSB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSBwYXJ0aWNsZS5vcHRpb25zO1xuICAgICAgICBjb25zdCByYXRpbyA9IHRoaXMucGl4ZWxSYXRpbztcbiAgICAgICAgY29uc3QgbW92ZURpc3RhbmNlID0gb3B0aW9ucy5tb3ZlLmRpc3RhbmNlO1xuICAgICAgICBjb25zdCBwcm9wcyA9IHBhcnRpY2xlLnJldGluYTtcbiAgICAgICAgcHJvcHMuYXR0cmFjdERpc3RhbmNlID0gb3B0aW9ucy5tb3ZlLmF0dHJhY3QuZGlzdGFuY2UgKiByYXRpbztcbiAgICAgICAgcHJvcHMubGlua3NEaXN0YW5jZSA9IG9wdGlvbnMubGlua3MuZGlzdGFuY2UgKiByYXRpbztcbiAgICAgICAgcHJvcHMubGlua3NXaWR0aCA9IG9wdGlvbnMubGlua3Mud2lkdGggKiByYXRpbztcbiAgICAgICAgcHJvcHMubW92ZURyaWZ0ID0gKDAsIFV0aWxzXzEuZ2V0UmFuZ2VWYWx1ZSkob3B0aW9ucy5tb3ZlLmRyaWZ0KSAqIHJhdGlvO1xuICAgICAgICBwcm9wcy5tb3ZlU3BlZWQgPSAoMCwgVXRpbHNfMS5nZXRSYW5nZVZhbHVlKShvcHRpb25zLm1vdmUuc3BlZWQpICogcmF0aW87XG4gICAgICAgIHByb3BzLnNpemVBbmltYXRpb25TcGVlZCA9IG9wdGlvbnMuc2l6ZS5hbmltYXRpb24uc3BlZWQgKiByYXRpbztcbiAgICAgICAgaWYgKHBhcnRpY2xlLnNwaW4pIHtcbiAgICAgICAgICAgIHByb3BzLnNwaW5BY2NlbGVyYXRpb24gPSAoMCwgVXRpbHNfMS5nZXRSYW5nZVZhbHVlKShvcHRpb25zLm1vdmUuc3Bpbi5hY2NlbGVyYXRpb24pICogcmF0aW87XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbWF4RGlzdGFuY2UgPSBwcm9wcy5tYXhEaXN0YW5jZTtcbiAgICAgICAgbWF4RGlzdGFuY2UuaG9yaXpvbnRhbCA9IG1vdmVEaXN0YW5jZS5ob3Jpem9udGFsICE9PSB1bmRlZmluZWQgPyBtb3ZlRGlzdGFuY2UuaG9yaXpvbnRhbCAqIHJhdGlvIDogdW5kZWZpbmVkO1xuICAgICAgICBtYXhEaXN0YW5jZS52ZXJ0aWNhbCA9IG1vdmVEaXN0YW5jZS52ZXJ0aWNhbCAhPT0gdW5kZWZpbmVkID8gbW92ZURpc3RhbmNlLnZlcnRpY2FsICogcmF0aW8gOiB1bmRlZmluZWQ7XG4gICAgICAgIHByb3BzLm1heFNwZWVkID0gb3B0aW9ucy5tb3ZlLmdyYXZpdHkubWF4U3BlZWQgKiByYXRpbztcbiAgICB9XG4gICAgaGFuZGxlTW90aW9uQ2hhbmdlKG1lZGlhUXVlcnkpIHtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuY29udGFpbmVyLmFjdHVhbE9wdGlvbnM7XG4gICAgICAgIGlmIChtZWRpYVF1ZXJ5Lm1hdGNoZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IG1vdGlvbiA9IG9wdGlvbnMubW90aW9uO1xuICAgICAgICAgICAgdGhpcy5yZWR1Y2VGYWN0b3IgPSBtb3Rpb24uZGlzYWJsZSA/IDAgOiBtb3Rpb24ucmVkdWNlLnZhbHVlID8gMSAvIG1vdGlvbi5yZWR1Y2UuZmFjdG9yIDogMTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucmVkdWNlRmFjdG9yID0gMTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuUmV0aW5hID0gUmV0aW5hO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Retina.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/AnimationStatus.js": +/*!***********************************************************!*\ + !*** ./node_modules/tsparticles/Enums/AnimationStatus.js ***! + \***********************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.AnimationStatus = void 0;\nvar AnimationStatus;\n(function (AnimationStatus) {\n AnimationStatus[AnimationStatus[\"increasing\"] = 0] = \"increasing\";\n AnimationStatus[AnimationStatus[\"decreasing\"] = 1] = \"decreasing\";\n})(AnimationStatus = exports.AnimationStatus || (exports.AnimationStatus = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvQW5pbWF0aW9uU3RhdHVzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsZ0RBQWdELHVCQUF1QixLQUFLIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9FbnVtcy9BbmltYXRpb25TdGF0dXMuanM/MjYxMyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuQW5pbWF0aW9uU3RhdHVzID0gdm9pZCAwO1xudmFyIEFuaW1hdGlvblN0YXR1cztcbihmdW5jdGlvbiAoQW5pbWF0aW9uU3RhdHVzKSB7XG4gICAgQW5pbWF0aW9uU3RhdHVzW0FuaW1hdGlvblN0YXR1c1tcImluY3JlYXNpbmdcIl0gPSAwXSA9IFwiaW5jcmVhc2luZ1wiO1xuICAgIEFuaW1hdGlvblN0YXR1c1tBbmltYXRpb25TdGF0dXNbXCJkZWNyZWFzaW5nXCJdID0gMV0gPSBcImRlY3JlYXNpbmdcIjtcbn0pKEFuaW1hdGlvblN0YXR1cyA9IGV4cG9ydHMuQW5pbWF0aW9uU3RhdHVzIHx8IChleHBvcnRzLkFuaW1hdGlvblN0YXR1cyA9IHt9KSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/AnimationStatus.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Directions/MoveDirection.js": +/*!********************************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Directions/MoveDirection.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.MoveDirection = void 0;\nvar MoveDirection;\n(function (MoveDirection) {\n MoveDirection[\"bottom\"] = \"bottom\";\n MoveDirection[\"bottomLeft\"] = \"bottom-left\";\n MoveDirection[\"bottomRight\"] = \"bottom-right\";\n MoveDirection[\"left\"] = \"left\";\n MoveDirection[\"none\"] = \"none\";\n MoveDirection[\"right\"] = \"right\";\n MoveDirection[\"top\"] = \"top\";\n MoveDirection[\"topLeft\"] = \"top-left\";\n MoveDirection[\"topRight\"] = \"top-right\";\n})(MoveDirection = exports.MoveDirection || (exports.MoveDirection = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvRGlyZWN0aW9ucy9Nb3ZlRGlyZWN0aW9uLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyw0Q0FBNEMscUJBQXFCLEtBQUsiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0VudW1zL0RpcmVjdGlvbnMvTW92ZURpcmVjdGlvbi5qcz9jZWQ4Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Nb3ZlRGlyZWN0aW9uID0gdm9pZCAwO1xudmFyIE1vdmVEaXJlY3Rpb247XG4oZnVuY3Rpb24gKE1vdmVEaXJlY3Rpb24pIHtcbiAgICBNb3ZlRGlyZWN0aW9uW1wiYm90dG9tXCJdID0gXCJib3R0b21cIjtcbiAgICBNb3ZlRGlyZWN0aW9uW1wiYm90dG9tTGVmdFwiXSA9IFwiYm90dG9tLWxlZnRcIjtcbiAgICBNb3ZlRGlyZWN0aW9uW1wiYm90dG9tUmlnaHRcIl0gPSBcImJvdHRvbS1yaWdodFwiO1xuICAgIE1vdmVEaXJlY3Rpb25bXCJsZWZ0XCJdID0gXCJsZWZ0XCI7XG4gICAgTW92ZURpcmVjdGlvbltcIm5vbmVcIl0gPSBcIm5vbmVcIjtcbiAgICBNb3ZlRGlyZWN0aW9uW1wicmlnaHRcIl0gPSBcInJpZ2h0XCI7XG4gICAgTW92ZURpcmVjdGlvbltcInRvcFwiXSA9IFwidG9wXCI7XG4gICAgTW92ZURpcmVjdGlvbltcInRvcExlZnRcIl0gPSBcInRvcC1sZWZ0XCI7XG4gICAgTW92ZURpcmVjdGlvbltcInRvcFJpZ2h0XCJdID0gXCJ0b3AtcmlnaHRcIjtcbn0pKE1vdmVEaXJlY3Rpb24gPSBleHBvcnRzLk1vdmVEaXJlY3Rpb24gfHwgKGV4cG9ydHMuTW92ZURpcmVjdGlvbiA9IHt9KSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Directions/MoveDirection.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Directions/OutModeDirection.js": +/*!***********************************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Directions/OutModeDirection.js ***! + \***********************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.OutModeDirection = void 0;\nvar OutModeDirection;\n(function (OutModeDirection) {\n OutModeDirection[\"bottom\"] = \"bottom\";\n OutModeDirection[\"left\"] = \"left\";\n OutModeDirection[\"right\"] = \"right\";\n OutModeDirection[\"top\"] = \"top\";\n})(OutModeDirection = exports.OutModeDirection || (exports.OutModeDirection = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvRGlyZWN0aW9ucy9PdXRNb2RlRGlyZWN0aW9uLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLGtEQUFrRCx3QkFBd0IsS0FBSyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvRGlyZWN0aW9ucy9PdXRNb2RlRGlyZWN0aW9uLmpzP2E3YTUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLk91dE1vZGVEaXJlY3Rpb24gPSB2b2lkIDA7XG52YXIgT3V0TW9kZURpcmVjdGlvbjtcbihmdW5jdGlvbiAoT3V0TW9kZURpcmVjdGlvbikge1xuICAgIE91dE1vZGVEaXJlY3Rpb25bXCJib3R0b21cIl0gPSBcImJvdHRvbVwiO1xuICAgIE91dE1vZGVEaXJlY3Rpb25bXCJsZWZ0XCJdID0gXCJsZWZ0XCI7XG4gICAgT3V0TW9kZURpcmVjdGlvbltcInJpZ2h0XCJdID0gXCJyaWdodFwiO1xuICAgIE91dE1vZGVEaXJlY3Rpb25bXCJ0b3BcIl0gPSBcInRvcFwiO1xufSkoT3V0TW9kZURpcmVjdGlvbiA9IGV4cG9ydHMuT3V0TW9kZURpcmVjdGlvbiB8fCAoZXhwb3J0cy5PdXRNb2RlRGlyZWN0aW9uID0ge30pKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Directions/OutModeDirection.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Directions/RotateDirection.js": +/*!**********************************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Directions/RotateDirection.js ***! + \**********************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.RotateDirection = void 0;\nvar RotateDirection;\n(function (RotateDirection) {\n RotateDirection[\"clockwise\"] = \"clockwise\";\n RotateDirection[\"counterClockwise\"] = \"counter-clockwise\";\n RotateDirection[\"random\"] = \"random\";\n})(RotateDirection = exports.RotateDirection || (exports.RotateDirection = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvRGlyZWN0aW9ucy9Sb3RhdGVEaXJlY3Rpb24uanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsdUJBQXVCO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLGdEQUFnRCx1QkFBdUIsS0FBSyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvRGlyZWN0aW9ucy9Sb3RhdGVEaXJlY3Rpb24uanM/N2JjOCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuUm90YXRlRGlyZWN0aW9uID0gdm9pZCAwO1xudmFyIFJvdGF0ZURpcmVjdGlvbjtcbihmdW5jdGlvbiAoUm90YXRlRGlyZWN0aW9uKSB7XG4gICAgUm90YXRlRGlyZWN0aW9uW1wiY2xvY2t3aXNlXCJdID0gXCJjbG9ja3dpc2VcIjtcbiAgICBSb3RhdGVEaXJlY3Rpb25bXCJjb3VudGVyQ2xvY2t3aXNlXCJdID0gXCJjb3VudGVyLWNsb2Nrd2lzZVwiO1xuICAgIFJvdGF0ZURpcmVjdGlvbltcInJhbmRvbVwiXSA9IFwicmFuZG9tXCI7XG59KShSb3RhdGVEaXJlY3Rpb24gPSBleHBvcnRzLlJvdGF0ZURpcmVjdGlvbiB8fCAoZXhwb3J0cy5Sb3RhdGVEaXJlY3Rpb24gPSB7fSkpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Directions/RotateDirection.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Directions/TiltDirection.js": +/*!********************************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Directions/TiltDirection.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.TiltDirection = void 0;\nvar TiltDirection;\n(function (TiltDirection) {\n TiltDirection[\"clockwise\"] = \"clockwise\";\n TiltDirection[\"counterClockwise\"] = \"counter-clockwise\";\n TiltDirection[\"random\"] = \"random\";\n})(TiltDirection = exports.TiltDirection || (exports.TiltDirection = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvRGlyZWN0aW9ucy9UaWx0RGlyZWN0aW9uLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyw0Q0FBNEMscUJBQXFCLEtBQUsiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0VudW1zL0RpcmVjdGlvbnMvVGlsdERpcmVjdGlvbi5qcz8xNGE1Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5UaWx0RGlyZWN0aW9uID0gdm9pZCAwO1xudmFyIFRpbHREaXJlY3Rpb247XG4oZnVuY3Rpb24gKFRpbHREaXJlY3Rpb24pIHtcbiAgICBUaWx0RGlyZWN0aW9uW1wiY2xvY2t3aXNlXCJdID0gXCJjbG9ja3dpc2VcIjtcbiAgICBUaWx0RGlyZWN0aW9uW1wiY291bnRlckNsb2Nrd2lzZVwiXSA9IFwiY291bnRlci1jbG9ja3dpc2VcIjtcbiAgICBUaWx0RGlyZWN0aW9uW1wicmFuZG9tXCJdID0gXCJyYW5kb21cIjtcbn0pKFRpbHREaXJlY3Rpb24gPSBleHBvcnRzLlRpbHREaXJlY3Rpb24gfHwgKGV4cG9ydHMuVGlsdERpcmVjdGlvbiA9IHt9KSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Directions/TiltDirection.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Directions/index.js": +/*!************************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Directions/index.js ***! + \************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n__exportStar(__webpack_require__(/*! ./MoveDirection */ \"./node_modules/tsparticles/Enums/Directions/MoveDirection.js\"), exports);\n__exportStar(__webpack_require__(/*! ./RotateDirection */ \"./node_modules/tsparticles/Enums/Directions/RotateDirection.js\"), exports);\n__exportStar(__webpack_require__(/*! ./OutModeDirection */ \"./node_modules/tsparticles/Enums/Directions/OutModeDirection.js\"), exports);\n__exportStar(__webpack_require__(/*! ./TiltDirection */ \"./node_modules/tsparticles/Enums/Directions/TiltDirection.js\"), exports);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvRGlyZWN0aW9ucy9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0E7QUFDQSxtQ0FBbUMsb0NBQW9DLGdCQUFnQjtBQUN2RixDQUFDO0FBQ0Q7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQSw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsYUFBYSxtQkFBTyxDQUFDLHFGQUFpQjtBQUN0QyxhQUFhLG1CQUFPLENBQUMseUZBQW1CO0FBQ3hDLGFBQWEsbUJBQU8sQ0FBQywyRkFBb0I7QUFDekMsYUFBYSxtQkFBTyxDQUFDLHFGQUFpQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvRGlyZWN0aW9ucy9pbmRleC5qcz9iNTFlIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9fY3JlYXRlQmluZGluZyA9ICh0aGlzICYmIHRoaXMuX19jcmVhdGVCaW5kaW5nKSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH0pO1xufSkgOiAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIG9bazJdID0gbVtrXTtcbn0pKTtcbnZhciBfX2V4cG9ydFN0YXIgPSAodGhpcyAmJiB0aGlzLl9fZXhwb3J0U3RhcikgfHwgZnVuY3Rpb24obSwgZXhwb3J0cykge1xuICAgIGZvciAodmFyIHAgaW4gbSkgaWYgKHAgIT09IFwiZGVmYXVsdFwiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0cywgcCkpIF9fY3JlYXRlQmluZGluZyhleHBvcnRzLCBtLCBwKTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vTW92ZURpcmVjdGlvblwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vUm90YXRlRGlyZWN0aW9uXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9PdXRNb2RlRGlyZWN0aW9uXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9UaWx0RGlyZWN0aW9uXCIpLCBleHBvcnRzKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Directions/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/InteractivityDetect.js": +/*!***************************************************************!*\ + !*** ./node_modules/tsparticles/Enums/InteractivityDetect.js ***! + \***************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.InteractivityDetect = void 0;\nvar InteractivityDetect;\n(function (InteractivityDetect) {\n InteractivityDetect[\"canvas\"] = \"canvas\";\n InteractivityDetect[\"parent\"] = \"parent\";\n InteractivityDetect[\"window\"] = \"window\";\n})(InteractivityDetect = exports.InteractivityDetect || (exports.InteractivityDetect = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvSW50ZXJhY3Rpdml0eURldGVjdC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCwyQkFBMkI7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsd0RBQXdELDJCQUEyQixLQUFLIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9FbnVtcy9JbnRlcmFjdGl2aXR5RGV0ZWN0LmpzPzExZjUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkludGVyYWN0aXZpdHlEZXRlY3QgPSB2b2lkIDA7XG52YXIgSW50ZXJhY3Rpdml0eURldGVjdDtcbihmdW5jdGlvbiAoSW50ZXJhY3Rpdml0eURldGVjdCkge1xuICAgIEludGVyYWN0aXZpdHlEZXRlY3RbXCJjYW52YXNcIl0gPSBcImNhbnZhc1wiO1xuICAgIEludGVyYWN0aXZpdHlEZXRlY3RbXCJwYXJlbnRcIl0gPSBcInBhcmVudFwiO1xuICAgIEludGVyYWN0aXZpdHlEZXRlY3RbXCJ3aW5kb3dcIl0gPSBcIndpbmRvd1wiO1xufSkoSW50ZXJhY3Rpdml0eURldGVjdCA9IGV4cG9ydHMuSW50ZXJhY3Rpdml0eURldGVjdCB8fCAoZXhwb3J0cy5JbnRlcmFjdGl2aXR5RGV0ZWN0ID0ge30pKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/InteractivityDetect.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Modes/ClickMode.js": +/*!***********************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Modes/ClickMode.js ***! + \***********************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ClickMode = void 0;\nvar ClickMode;\n(function (ClickMode) {\n ClickMode[\"attract\"] = \"attract\";\n ClickMode[\"bubble\"] = \"bubble\";\n ClickMode[\"push\"] = \"push\";\n ClickMode[\"remove\"] = \"remove\";\n ClickMode[\"repulse\"] = \"repulse\";\n ClickMode[\"pause\"] = \"pause\";\n ClickMode[\"trail\"] = \"trail\";\n})(ClickMode = exports.ClickMode || (exports.ClickMode = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvTW9kZXMvQ2xpY2tNb2RlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLG9DQUFvQyxpQkFBaUIsS0FBSyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvTW9kZXMvQ2xpY2tNb2RlLmpzP2VkODUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkNsaWNrTW9kZSA9IHZvaWQgMDtcbnZhciBDbGlja01vZGU7XG4oZnVuY3Rpb24gKENsaWNrTW9kZSkge1xuICAgIENsaWNrTW9kZVtcImF0dHJhY3RcIl0gPSBcImF0dHJhY3RcIjtcbiAgICBDbGlja01vZGVbXCJidWJibGVcIl0gPSBcImJ1YmJsZVwiO1xuICAgIENsaWNrTW9kZVtcInB1c2hcIl0gPSBcInB1c2hcIjtcbiAgICBDbGlja01vZGVbXCJyZW1vdmVcIl0gPSBcInJlbW92ZVwiO1xuICAgIENsaWNrTW9kZVtcInJlcHVsc2VcIl0gPSBcInJlcHVsc2VcIjtcbiAgICBDbGlja01vZGVbXCJwYXVzZVwiXSA9IFwicGF1c2VcIjtcbiAgICBDbGlja01vZGVbXCJ0cmFpbFwiXSA9IFwidHJhaWxcIjtcbn0pKENsaWNrTW9kZSA9IGV4cG9ydHMuQ2xpY2tNb2RlIHx8IChleHBvcnRzLkNsaWNrTW9kZSA9IHt9KSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Modes/ClickMode.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Modes/CollisionMode.js": +/*!***************************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Modes/CollisionMode.js ***! + \***************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.CollisionMode = void 0;\nvar CollisionMode;\n(function (CollisionMode) {\n CollisionMode[\"absorb\"] = \"absorb\";\n CollisionMode[\"bounce\"] = \"bounce\";\n CollisionMode[\"destroy\"] = \"destroy\";\n})(CollisionMode = exports.CollisionMode || (exports.CollisionMode = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvTW9kZXMvQ29sbGlzaW9uTW9kZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsNENBQTRDLHFCQUFxQixLQUFLIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9FbnVtcy9Nb2Rlcy9Db2xsaXNpb25Nb2RlLmpzPzM1NjMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkNvbGxpc2lvbk1vZGUgPSB2b2lkIDA7XG52YXIgQ29sbGlzaW9uTW9kZTtcbihmdW5jdGlvbiAoQ29sbGlzaW9uTW9kZSkge1xuICAgIENvbGxpc2lvbk1vZGVbXCJhYnNvcmJcIl0gPSBcImFic29yYlwiO1xuICAgIENvbGxpc2lvbk1vZGVbXCJib3VuY2VcIl0gPSBcImJvdW5jZVwiO1xuICAgIENvbGxpc2lvbk1vZGVbXCJkZXN0cm95XCJdID0gXCJkZXN0cm95XCI7XG59KShDb2xsaXNpb25Nb2RlID0gZXhwb3J0cy5Db2xsaXNpb25Nb2RlIHx8IChleHBvcnRzLkNvbGxpc2lvbk1vZGUgPSB7fSkpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Modes/CollisionMode.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Modes/DestroyMode.js": +/*!*************************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Modes/DestroyMode.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.DestroyMode = void 0;\nvar DestroyMode;\n(function (DestroyMode) {\n DestroyMode[\"none\"] = \"none\";\n DestroyMode[\"split\"] = \"split\";\n})(DestroyMode = exports.DestroyMode || (exports.DestroyMode = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvTW9kZXMvRGVzdHJveU1vZGUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsbUJBQW1CO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyx3Q0FBd0MsbUJBQW1CLEtBQUsiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0VudW1zL01vZGVzL0Rlc3Ryb3lNb2RlLmpzP2ZjNzkiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkRlc3Ryb3lNb2RlID0gdm9pZCAwO1xudmFyIERlc3Ryb3lNb2RlO1xuKGZ1bmN0aW9uIChEZXN0cm95TW9kZSkge1xuICAgIERlc3Ryb3lNb2RlW1wibm9uZVwiXSA9IFwibm9uZVwiO1xuICAgIERlc3Ryb3lNb2RlW1wic3BsaXRcIl0gPSBcInNwbGl0XCI7XG59KShEZXN0cm95TW9kZSA9IGV4cG9ydHMuRGVzdHJveU1vZGUgfHwgKGV4cG9ydHMuRGVzdHJveU1vZGUgPSB7fSkpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Modes/DestroyMode.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Modes/DivMode.js": +/*!*********************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Modes/DivMode.js ***! + \*********************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.DivMode = void 0;\nvar DivMode;\n(function (DivMode) {\n DivMode[\"bounce\"] = \"bounce\";\n DivMode[\"bubble\"] = \"bubble\";\n DivMode[\"repulse\"] = \"repulse\";\n})(DivMode = exports.DivMode || (exports.DivMode = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvTW9kZXMvRGl2TW9kZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxlQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsZ0NBQWdDLGVBQWUsS0FBSyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvTW9kZXMvRGl2TW9kZS5qcz9jYWU1Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5EaXZNb2RlID0gdm9pZCAwO1xudmFyIERpdk1vZGU7XG4oZnVuY3Rpb24gKERpdk1vZGUpIHtcbiAgICBEaXZNb2RlW1wiYm91bmNlXCJdID0gXCJib3VuY2VcIjtcbiAgICBEaXZNb2RlW1wiYnViYmxlXCJdID0gXCJidWJibGVcIjtcbiAgICBEaXZNb2RlW1wicmVwdWxzZVwiXSA9IFwicmVwdWxzZVwiO1xufSkoRGl2TW9kZSA9IGV4cG9ydHMuRGl2TW9kZSB8fCAoZXhwb3J0cy5EaXZNb2RlID0ge30pKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Modes/DivMode.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Modes/HoverMode.js": +/*!***********************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Modes/HoverMode.js ***! + \***********************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.HoverMode = void 0;\nvar HoverMode;\n(function (HoverMode) {\n HoverMode[\"attract\"] = \"attract\";\n HoverMode[\"bounce\"] = \"bounce\";\n HoverMode[\"bubble\"] = \"bubble\";\n HoverMode[\"connect\"] = \"connect\";\n HoverMode[\"grab\"] = \"grab\";\n HoverMode[\"light\"] = \"light\";\n HoverMode[\"repulse\"] = \"repulse\";\n HoverMode[\"slow\"] = \"slow\";\n HoverMode[\"trail\"] = \"trail\";\n})(HoverMode = exports.HoverMode || (exports.HoverMode = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvTW9kZXMvSG92ZXJNb2RlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxvQ0FBb0MsaUJBQWlCLEtBQUsiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0VudW1zL01vZGVzL0hvdmVyTW9kZS5qcz8xMTBlIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Ib3Zlck1vZGUgPSB2b2lkIDA7XG52YXIgSG92ZXJNb2RlO1xuKGZ1bmN0aW9uIChIb3Zlck1vZGUpIHtcbiAgICBIb3Zlck1vZGVbXCJhdHRyYWN0XCJdID0gXCJhdHRyYWN0XCI7XG4gICAgSG92ZXJNb2RlW1wiYm91bmNlXCJdID0gXCJib3VuY2VcIjtcbiAgICBIb3Zlck1vZGVbXCJidWJibGVcIl0gPSBcImJ1YmJsZVwiO1xuICAgIEhvdmVyTW9kZVtcImNvbm5lY3RcIl0gPSBcImNvbm5lY3RcIjtcbiAgICBIb3Zlck1vZGVbXCJncmFiXCJdID0gXCJncmFiXCI7XG4gICAgSG92ZXJNb2RlW1wibGlnaHRcIl0gPSBcImxpZ2h0XCI7XG4gICAgSG92ZXJNb2RlW1wicmVwdWxzZVwiXSA9IFwicmVwdWxzZVwiO1xuICAgIEhvdmVyTW9kZVtcInNsb3dcIl0gPSBcInNsb3dcIjtcbiAgICBIb3Zlck1vZGVbXCJ0cmFpbFwiXSA9IFwidHJhaWxcIjtcbn0pKEhvdmVyTW9kZSA9IGV4cG9ydHMuSG92ZXJNb2RlIHx8IChleHBvcnRzLkhvdmVyTW9kZSA9IHt9KSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Modes/HoverMode.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Modes/OutMode.js": +/*!*********************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Modes/OutMode.js ***! + \*********************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.OutMode = void 0;\nvar OutMode;\n(function (OutMode) {\n OutMode[\"bounce\"] = \"bounce\";\n OutMode[\"bounceHorizontal\"] = \"bounce-horizontal\";\n OutMode[\"bounceVertical\"] = \"bounce-vertical\";\n OutMode[\"none\"] = \"none\";\n OutMode[\"out\"] = \"out\";\n OutMode[\"destroy\"] = \"destroy\";\n OutMode[\"split\"] = \"split\";\n})(OutMode = exports.OutMode || (exports.OutMode = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvTW9kZXMvT3V0TW9kZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxlQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxnQ0FBZ0MsZUFBZSxLQUFLIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9FbnVtcy9Nb2Rlcy9PdXRNb2RlLmpzPzI4ZGYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLk91dE1vZGUgPSB2b2lkIDA7XG52YXIgT3V0TW9kZTtcbihmdW5jdGlvbiAoT3V0TW9kZSkge1xuICAgIE91dE1vZGVbXCJib3VuY2VcIl0gPSBcImJvdW5jZVwiO1xuICAgIE91dE1vZGVbXCJib3VuY2VIb3Jpem9udGFsXCJdID0gXCJib3VuY2UtaG9yaXpvbnRhbFwiO1xuICAgIE91dE1vZGVbXCJib3VuY2VWZXJ0aWNhbFwiXSA9IFwiYm91bmNlLXZlcnRpY2FsXCI7XG4gICAgT3V0TW9kZVtcIm5vbmVcIl0gPSBcIm5vbmVcIjtcbiAgICBPdXRNb2RlW1wib3V0XCJdID0gXCJvdXRcIjtcbiAgICBPdXRNb2RlW1wiZGVzdHJveVwiXSA9IFwiZGVzdHJveVwiO1xuICAgIE91dE1vZGVbXCJzcGxpdFwiXSA9IFwic3BsaXRcIjtcbn0pKE91dE1vZGUgPSBleHBvcnRzLk91dE1vZGUgfHwgKGV4cG9ydHMuT3V0TW9kZSA9IHt9KSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Modes/OutMode.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Modes/ResponsiveMode.js": +/*!****************************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Modes/ResponsiveMode.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ResponsiveMode = void 0;\nvar ResponsiveMode;\n(function (ResponsiveMode) {\n ResponsiveMode[\"screen\"] = \"screen\";\n ResponsiveMode[\"canvas\"] = \"canvas\";\n})(ResponsiveMode = exports.ResponsiveMode || (exports.ResponsiveMode = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvTW9kZXMvUmVzcG9uc2l2ZU1vZGUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyw4Q0FBOEMsc0JBQXNCLEtBQUsiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0VudW1zL01vZGVzL1Jlc3BvbnNpdmVNb2RlLmpzP2ZlOGYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlJlc3BvbnNpdmVNb2RlID0gdm9pZCAwO1xudmFyIFJlc3BvbnNpdmVNb2RlO1xuKGZ1bmN0aW9uIChSZXNwb25zaXZlTW9kZSkge1xuICAgIFJlc3BvbnNpdmVNb2RlW1wic2NyZWVuXCJdID0gXCJzY3JlZW5cIjtcbiAgICBSZXNwb25zaXZlTW9kZVtcImNhbnZhc1wiXSA9IFwiY2FudmFzXCI7XG59KShSZXNwb25zaXZlTW9kZSA9IGV4cG9ydHMuUmVzcG9uc2l2ZU1vZGUgfHwgKGV4cG9ydHMuUmVzcG9uc2l2ZU1vZGUgPSB7fSkpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Modes/ResponsiveMode.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Modes/RollMode.js": +/*!**********************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Modes/RollMode.js ***! + \**********************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.RollMode = void 0;\nvar RollMode;\n(function (RollMode) {\n RollMode[\"both\"] = \"both\";\n RollMode[\"horizontal\"] = \"horizontal\";\n RollMode[\"vertical\"] = \"vertical\";\n})(RollMode = exports.RollMode || (exports.RollMode = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvTW9kZXMvUm9sbE1vZGUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLGtDQUFrQyxnQkFBZ0IsS0FBSyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvTW9kZXMvUm9sbE1vZGUuanM/MWFlOSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuUm9sbE1vZGUgPSB2b2lkIDA7XG52YXIgUm9sbE1vZGU7XG4oZnVuY3Rpb24gKFJvbGxNb2RlKSB7XG4gICAgUm9sbE1vZGVbXCJib3RoXCJdID0gXCJib3RoXCI7XG4gICAgUm9sbE1vZGVbXCJob3Jpem9udGFsXCJdID0gXCJob3Jpem9udGFsXCI7XG4gICAgUm9sbE1vZGVbXCJ2ZXJ0aWNhbFwiXSA9IFwidmVydGljYWxcIjtcbn0pKFJvbGxNb2RlID0gZXhwb3J0cy5Sb2xsTW9kZSB8fCAoZXhwb3J0cy5Sb2xsTW9kZSA9IHt9KSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Modes/RollMode.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Modes/SizeMode.js": +/*!**********************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Modes/SizeMode.js ***! + \**********************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.SizeMode = void 0;\nvar SizeMode;\n(function (SizeMode) {\n SizeMode[\"precise\"] = \"precise\";\n SizeMode[\"percent\"] = \"percent\";\n})(SizeMode = exports.SizeMode || (exports.SizeMode = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvTW9kZXMvU2l6ZU1vZGUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxrQ0FBa0MsZ0JBQWdCLEtBQUsiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0VudW1zL01vZGVzL1NpemVNb2RlLmpzPzU4Y2UiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlNpemVNb2RlID0gdm9pZCAwO1xudmFyIFNpemVNb2RlO1xuKGZ1bmN0aW9uIChTaXplTW9kZSkge1xuICAgIFNpemVNb2RlW1wicHJlY2lzZVwiXSA9IFwicHJlY2lzZVwiO1xuICAgIFNpemVNb2RlW1wicGVyY2VudFwiXSA9IFwicGVyY2VudFwiO1xufSkoU2l6ZU1vZGUgPSBleHBvcnRzLlNpemVNb2RlIHx8IChleHBvcnRzLlNpemVNb2RlID0ge30pKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Modes/SizeMode.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Modes/ThemeMode.js": +/*!***********************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Modes/ThemeMode.js ***! + \***********************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ThemeMode = void 0;\nvar ThemeMode;\n(function (ThemeMode) {\n ThemeMode[\"any\"] = \"any\";\n ThemeMode[\"dark\"] = \"dark\";\n ThemeMode[\"light\"] = \"light\";\n})(ThemeMode = exports.ThemeMode || (exports.ThemeMode = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvTW9kZXMvVGhlbWVNb2RlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxvQ0FBb0MsaUJBQWlCLEtBQUsiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0VudW1zL01vZGVzL1RoZW1lTW9kZS5qcz8zYmMxIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5UaGVtZU1vZGUgPSB2b2lkIDA7XG52YXIgVGhlbWVNb2RlO1xuKGZ1bmN0aW9uIChUaGVtZU1vZGUpIHtcbiAgICBUaGVtZU1vZGVbXCJhbnlcIl0gPSBcImFueVwiO1xuICAgIFRoZW1lTW9kZVtcImRhcmtcIl0gPSBcImRhcmtcIjtcbiAgICBUaGVtZU1vZGVbXCJsaWdodFwiXSA9IFwibGlnaHRcIjtcbn0pKFRoZW1lTW9kZSA9IGV4cG9ydHMuVGhlbWVNb2RlIHx8IChleHBvcnRzLlRoZW1lTW9kZSA9IHt9KSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Modes/ThemeMode.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Modes/index.js": +/*!*******************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Modes/index.js ***! + \*******************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n__exportStar(__webpack_require__(/*! ./ClickMode */ \"./node_modules/tsparticles/Enums/Modes/ClickMode.js\"), exports);\n__exportStar(__webpack_require__(/*! ./DestroyMode */ \"./node_modules/tsparticles/Enums/Modes/DestroyMode.js\"), exports);\n__exportStar(__webpack_require__(/*! ./DivMode */ \"./node_modules/tsparticles/Enums/Modes/DivMode.js\"), exports);\n__exportStar(__webpack_require__(/*! ./HoverMode */ \"./node_modules/tsparticles/Enums/Modes/HoverMode.js\"), exports);\n__exportStar(__webpack_require__(/*! ./CollisionMode */ \"./node_modules/tsparticles/Enums/Modes/CollisionMode.js\"), exports);\n__exportStar(__webpack_require__(/*! ./OutMode */ \"./node_modules/tsparticles/Enums/Modes/OutMode.js\"), exports);\n__exportStar(__webpack_require__(/*! ./RollMode */ \"./node_modules/tsparticles/Enums/Modes/RollMode.js\"), exports);\n__exportStar(__webpack_require__(/*! ./SizeMode */ \"./node_modules/tsparticles/Enums/Modes/SizeMode.js\"), exports);\n__exportStar(__webpack_require__(/*! ./ThemeMode */ \"./node_modules/tsparticles/Enums/Modes/ThemeMode.js\"), exports);\n__exportStar(__webpack_require__(/*! ./ResponsiveMode */ \"./node_modules/tsparticles/Enums/Modes/ResponsiveMode.js\"), exports);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvTW9kZXMvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBO0FBQ0EsbUNBQW1DLG9DQUFvQyxnQkFBZ0I7QUFDdkYsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGFBQWEsbUJBQU8sQ0FBQyx3RUFBYTtBQUNsQyxhQUFhLG1CQUFPLENBQUMsNEVBQWU7QUFDcEMsYUFBYSxtQkFBTyxDQUFDLG9FQUFXO0FBQ2hDLGFBQWEsbUJBQU8sQ0FBQyx3RUFBYTtBQUNsQyxhQUFhLG1CQUFPLENBQUMsZ0ZBQWlCO0FBQ3RDLGFBQWEsbUJBQU8sQ0FBQyxvRUFBVztBQUNoQyxhQUFhLG1CQUFPLENBQUMsc0VBQVk7QUFDakMsYUFBYSxtQkFBTyxDQUFDLHNFQUFZO0FBQ2pDLGFBQWEsbUJBQU8sQ0FBQyx3RUFBYTtBQUNsQyxhQUFhLG1CQUFPLENBQUMsa0ZBQWtCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9FbnVtcy9Nb2Rlcy9pbmRleC5qcz9hY2M1Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9fY3JlYXRlQmluZGluZyA9ICh0aGlzICYmIHRoaXMuX19jcmVhdGVCaW5kaW5nKSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH0pO1xufSkgOiAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIG9bazJdID0gbVtrXTtcbn0pKTtcbnZhciBfX2V4cG9ydFN0YXIgPSAodGhpcyAmJiB0aGlzLl9fZXhwb3J0U3RhcikgfHwgZnVuY3Rpb24obSwgZXhwb3J0cykge1xuICAgIGZvciAodmFyIHAgaW4gbSkgaWYgKHAgIT09IFwiZGVmYXVsdFwiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0cywgcCkpIF9fY3JlYXRlQmluZGluZyhleHBvcnRzLCBtLCBwKTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vQ2xpY2tNb2RlXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9EZXN0cm95TW9kZVwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vRGl2TW9kZVwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vSG92ZXJNb2RlXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9Db2xsaXNpb25Nb2RlXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9PdXRNb2RlXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9Sb2xsTW9kZVwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vU2l6ZU1vZGVcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL1RoZW1lTW9kZVwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vUmVzcG9uc2l2ZU1vZGVcIiksIGV4cG9ydHMpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Modes/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Types/AlterType.js": +/*!***********************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Types/AlterType.js ***! + \***********************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.AlterType = void 0;\nvar AlterType;\n(function (AlterType) {\n AlterType[\"darken\"] = \"darken\";\n AlterType[\"enlighten\"] = \"enlighten\";\n})(AlterType = exports.AlterType || (exports.AlterType = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvVHlwZXMvQWx0ZXJUeXBlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsb0NBQW9DLGlCQUFpQixLQUFLIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9FbnVtcy9UeXBlcy9BbHRlclR5cGUuanM/NmVhZSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuQWx0ZXJUeXBlID0gdm9pZCAwO1xudmFyIEFsdGVyVHlwZTtcbihmdW5jdGlvbiAoQWx0ZXJUeXBlKSB7XG4gICAgQWx0ZXJUeXBlW1wiZGFya2VuXCJdID0gXCJkYXJrZW5cIjtcbiAgICBBbHRlclR5cGVbXCJlbmxpZ2h0ZW5cIl0gPSBcImVubGlnaHRlblwiO1xufSkoQWx0ZXJUeXBlID0gZXhwb3J0cy5BbHRlclR5cGUgfHwgKGV4cG9ydHMuQWx0ZXJUeXBlID0ge30pKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Types/AlterType.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Types/DestroyType.js": +/*!*************************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Types/DestroyType.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.DestroyType = void 0;\nvar DestroyType;\n(function (DestroyType) {\n DestroyType[\"none\"] = \"none\";\n DestroyType[\"max\"] = \"max\";\n DestroyType[\"min\"] = \"min\";\n})(DestroyType = exports.DestroyType || (exports.DestroyType = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvVHlwZXMvRGVzdHJveVR5cGUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsbUJBQW1CO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLHdDQUF3QyxtQkFBbUIsS0FBSyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvVHlwZXMvRGVzdHJveVR5cGUuanM/ODhjZiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuRGVzdHJveVR5cGUgPSB2b2lkIDA7XG52YXIgRGVzdHJveVR5cGU7XG4oZnVuY3Rpb24gKERlc3Ryb3lUeXBlKSB7XG4gICAgRGVzdHJveVR5cGVbXCJub25lXCJdID0gXCJub25lXCI7XG4gICAgRGVzdHJveVR5cGVbXCJtYXhcIl0gPSBcIm1heFwiO1xuICAgIERlc3Ryb3lUeXBlW1wibWluXCJdID0gXCJtaW5cIjtcbn0pKERlc3Ryb3lUeXBlID0gZXhwb3J0cy5EZXN0cm95VHlwZSB8fCAoZXhwb3J0cy5EZXN0cm95VHlwZSA9IHt9KSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Types/DestroyType.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Types/DivType.js": +/*!*********************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Types/DivType.js ***! + \*********************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.DivType = void 0;\nvar DivType;\n(function (DivType) {\n DivType[\"circle\"] = \"circle\";\n DivType[\"rectangle\"] = \"rectangle\";\n})(DivType = exports.DivType || (exports.DivType = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvVHlwZXMvRGl2VHlwZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxlQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLGdDQUFnQyxlQUFlLEtBQUsiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0VudW1zL1R5cGVzL0RpdlR5cGUuanM/MWU4YyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuRGl2VHlwZSA9IHZvaWQgMDtcbnZhciBEaXZUeXBlO1xuKGZ1bmN0aW9uIChEaXZUeXBlKSB7XG4gICAgRGl2VHlwZVtcImNpcmNsZVwiXSA9IFwiY2lyY2xlXCI7XG4gICAgRGl2VHlwZVtcInJlY3RhbmdsZVwiXSA9IFwicmVjdGFuZ2xlXCI7XG59KShEaXZUeXBlID0gZXhwb3J0cy5EaXZUeXBlIHx8IChleHBvcnRzLkRpdlR5cGUgPSB7fSkpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Types/DivType.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Types/EasingType.js": +/*!************************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Types/EasingType.js ***! + \************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.EasingType = void 0;\nvar EasingType;\n(function (EasingType) {\n EasingType[\"easeOutBack\"] = \"ease-out-back\";\n EasingType[\"easeOutCirc\"] = \"ease-out-circ\";\n EasingType[\"easeOutCubic\"] = \"ease-out-cubic\";\n EasingType[\"easeOutQuad\"] = \"ease-out-quad\";\n EasingType[\"easeOutQuart\"] = \"ease-out-quart\";\n EasingType[\"easeOutQuint\"] = \"ease-out-quint\";\n EasingType[\"easeOutExpo\"] = \"ease-out-expo\";\n EasingType[\"easeOutSine\"] = \"ease-out-sine\";\n})(EasingType = exports.EasingType || (exports.EasingType = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvVHlwZXMvRWFzaW5nVHlwZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLHNDQUFzQyxrQkFBa0IsS0FBSyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvVHlwZXMvRWFzaW5nVHlwZS5qcz9lODBlIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5FYXNpbmdUeXBlID0gdm9pZCAwO1xudmFyIEVhc2luZ1R5cGU7XG4oZnVuY3Rpb24gKEVhc2luZ1R5cGUpIHtcbiAgICBFYXNpbmdUeXBlW1wiZWFzZU91dEJhY2tcIl0gPSBcImVhc2Utb3V0LWJhY2tcIjtcbiAgICBFYXNpbmdUeXBlW1wiZWFzZU91dENpcmNcIl0gPSBcImVhc2Utb3V0LWNpcmNcIjtcbiAgICBFYXNpbmdUeXBlW1wiZWFzZU91dEN1YmljXCJdID0gXCJlYXNlLW91dC1jdWJpY1wiO1xuICAgIEVhc2luZ1R5cGVbXCJlYXNlT3V0UXVhZFwiXSA9IFwiZWFzZS1vdXQtcXVhZFwiO1xuICAgIEVhc2luZ1R5cGVbXCJlYXNlT3V0UXVhcnRcIl0gPSBcImVhc2Utb3V0LXF1YXJ0XCI7XG4gICAgRWFzaW5nVHlwZVtcImVhc2VPdXRRdWludFwiXSA9IFwiZWFzZS1vdXQtcXVpbnRcIjtcbiAgICBFYXNpbmdUeXBlW1wiZWFzZU91dEV4cG9cIl0gPSBcImVhc2Utb3V0LWV4cG9cIjtcbiAgICBFYXNpbmdUeXBlW1wiZWFzZU91dFNpbmVcIl0gPSBcImVhc2Utb3V0LXNpbmVcIjtcbn0pKEVhc2luZ1R5cGUgPSBleHBvcnRzLkVhc2luZ1R5cGUgfHwgKGV4cG9ydHMuRWFzaW5nVHlwZSA9IHt9KSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Types/EasingType.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Types/GradientType.js": +/*!**************************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Types/GradientType.js ***! + \**************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.GradientType = void 0;\nvar GradientType;\n(function (GradientType) {\n GradientType[\"linear\"] = \"linear\";\n GradientType[\"radial\"] = \"radial\";\n GradientType[\"random\"] = \"random\";\n})(GradientType = exports.GradientType || (exports.GradientType = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvVHlwZXMvR3JhZGllbnRUeXBlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELG9CQUFvQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQywwQ0FBMEMsb0JBQW9CLEtBQUsiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0VudW1zL1R5cGVzL0dyYWRpZW50VHlwZS5qcz8yZGVkIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5HcmFkaWVudFR5cGUgPSB2b2lkIDA7XG52YXIgR3JhZGllbnRUeXBlO1xuKGZ1bmN0aW9uIChHcmFkaWVudFR5cGUpIHtcbiAgICBHcmFkaWVudFR5cGVbXCJsaW5lYXJcIl0gPSBcImxpbmVhclwiO1xuICAgIEdyYWRpZW50VHlwZVtcInJhZGlhbFwiXSA9IFwicmFkaWFsXCI7XG4gICAgR3JhZGllbnRUeXBlW1wicmFuZG9tXCJdID0gXCJyYW5kb21cIjtcbn0pKEdyYWRpZW50VHlwZSA9IGV4cG9ydHMuR3JhZGllbnRUeXBlIHx8IChleHBvcnRzLkdyYWRpZW50VHlwZSA9IHt9KSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Types/GradientType.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Types/InteractorType.js": +/*!****************************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Types/InteractorType.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.InteractorType = void 0;\nvar InteractorType;\n(function (InteractorType) {\n InteractorType[InteractorType[\"External\"] = 0] = \"External\";\n InteractorType[InteractorType[\"Particles\"] = 1] = \"Particles\";\n})(InteractorType = exports.InteractorType || (exports.InteractorType = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvVHlwZXMvSW50ZXJhY3RvclR5cGUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyw4Q0FBOEMsc0JBQXNCLEtBQUsiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0VudW1zL1R5cGVzL0ludGVyYWN0b3JUeXBlLmpzPzFmMjMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkludGVyYWN0b3JUeXBlID0gdm9pZCAwO1xudmFyIEludGVyYWN0b3JUeXBlO1xuKGZ1bmN0aW9uIChJbnRlcmFjdG9yVHlwZSkge1xuICAgIEludGVyYWN0b3JUeXBlW0ludGVyYWN0b3JUeXBlW1wiRXh0ZXJuYWxcIl0gPSAwXSA9IFwiRXh0ZXJuYWxcIjtcbiAgICBJbnRlcmFjdG9yVHlwZVtJbnRlcmFjdG9yVHlwZVtcIlBhcnRpY2xlc1wiXSA9IDFdID0gXCJQYXJ0aWNsZXNcIjtcbn0pKEludGVyYWN0b3JUeXBlID0gZXhwb3J0cy5JbnRlcmFjdG9yVHlwZSB8fCAoZXhwb3J0cy5JbnRlcmFjdG9yVHlwZSA9IHt9KSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Types/InteractorType.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Types/OrbitType.js": +/*!***********************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Types/OrbitType.js ***! + \***********************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.OrbitType = void 0;\nvar OrbitType;\n(function (OrbitType) {\n OrbitType[\"front\"] = \"front\";\n OrbitType[\"back\"] = \"back\";\n})(OrbitType = exports.OrbitType || (exports.OrbitType = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvVHlwZXMvT3JiaXRUeXBlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsb0NBQW9DLGlCQUFpQixLQUFLIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9FbnVtcy9UeXBlcy9PcmJpdFR5cGUuanM/ZGZhZiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuT3JiaXRUeXBlID0gdm9pZCAwO1xudmFyIE9yYml0VHlwZTtcbihmdW5jdGlvbiAoT3JiaXRUeXBlKSB7XG4gICAgT3JiaXRUeXBlW1wiZnJvbnRcIl0gPSBcImZyb250XCI7XG4gICAgT3JiaXRUeXBlW1wiYmFja1wiXSA9IFwiYmFja1wiO1xufSkoT3JiaXRUeXBlID0gZXhwb3J0cy5PcmJpdFR5cGUgfHwgKGV4cG9ydHMuT3JiaXRUeXBlID0ge30pKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Types/OrbitType.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Types/ShapeType.js": +/*!***********************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Types/ShapeType.js ***! + \***********************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ShapeType = void 0;\nvar ShapeType;\n(function (ShapeType) {\n ShapeType[\"char\"] = \"char\";\n ShapeType[\"character\"] = \"character\";\n ShapeType[\"circle\"] = \"circle\";\n ShapeType[\"edge\"] = \"edge\";\n ShapeType[\"image\"] = \"image\";\n ShapeType[\"images\"] = \"images\";\n ShapeType[\"line\"] = \"line\";\n ShapeType[\"polygon\"] = \"polygon\";\n ShapeType[\"square\"] = \"square\";\n ShapeType[\"star\"] = \"star\";\n ShapeType[\"triangle\"] = \"triangle\";\n})(ShapeType = exports.ShapeType || (exports.ShapeType = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvVHlwZXMvU2hhcGVUeXBlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsb0NBQW9DLGlCQUFpQixLQUFLIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9FbnVtcy9UeXBlcy9TaGFwZVR5cGUuanM/YzUzOSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuU2hhcGVUeXBlID0gdm9pZCAwO1xudmFyIFNoYXBlVHlwZTtcbihmdW5jdGlvbiAoU2hhcGVUeXBlKSB7XG4gICAgU2hhcGVUeXBlW1wiY2hhclwiXSA9IFwiY2hhclwiO1xuICAgIFNoYXBlVHlwZVtcImNoYXJhY3RlclwiXSA9IFwiY2hhcmFjdGVyXCI7XG4gICAgU2hhcGVUeXBlW1wiY2lyY2xlXCJdID0gXCJjaXJjbGVcIjtcbiAgICBTaGFwZVR5cGVbXCJlZGdlXCJdID0gXCJlZGdlXCI7XG4gICAgU2hhcGVUeXBlW1wiaW1hZ2VcIl0gPSBcImltYWdlXCI7XG4gICAgU2hhcGVUeXBlW1wiaW1hZ2VzXCJdID0gXCJpbWFnZXNcIjtcbiAgICBTaGFwZVR5cGVbXCJsaW5lXCJdID0gXCJsaW5lXCI7XG4gICAgU2hhcGVUeXBlW1wicG9seWdvblwiXSA9IFwicG9seWdvblwiO1xuICAgIFNoYXBlVHlwZVtcInNxdWFyZVwiXSA9IFwic3F1YXJlXCI7XG4gICAgU2hhcGVUeXBlW1wic3RhclwiXSA9IFwic3RhclwiO1xuICAgIFNoYXBlVHlwZVtcInRyaWFuZ2xlXCJdID0gXCJ0cmlhbmdsZVwiO1xufSkoU2hhcGVUeXBlID0gZXhwb3J0cy5TaGFwZVR5cGUgfHwgKGV4cG9ydHMuU2hhcGVUeXBlID0ge30pKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Types/ShapeType.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Types/StartValueType.js": +/*!****************************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Types/StartValueType.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.StartValueType = void 0;\nvar StartValueType;\n(function (StartValueType) {\n StartValueType[\"max\"] = \"max\";\n StartValueType[\"min\"] = \"min\";\n StartValueType[\"random\"] = \"random\";\n})(StartValueType = exports.StartValueType || (exports.StartValueType = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvVHlwZXMvU3RhcnRWYWx1ZVR5cGUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLDhDQUE4QyxzQkFBc0IsS0FBSyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvVHlwZXMvU3RhcnRWYWx1ZVR5cGUuanM/YTEyYyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuU3RhcnRWYWx1ZVR5cGUgPSB2b2lkIDA7XG52YXIgU3RhcnRWYWx1ZVR5cGU7XG4oZnVuY3Rpb24gKFN0YXJ0VmFsdWVUeXBlKSB7XG4gICAgU3RhcnRWYWx1ZVR5cGVbXCJtYXhcIl0gPSBcIm1heFwiO1xuICAgIFN0YXJ0VmFsdWVUeXBlW1wibWluXCJdID0gXCJtaW5cIjtcbiAgICBTdGFydFZhbHVlVHlwZVtcInJhbmRvbVwiXSA9IFwicmFuZG9tXCI7XG59KShTdGFydFZhbHVlVHlwZSA9IGV4cG9ydHMuU3RhcnRWYWx1ZVR5cGUgfHwgKGV4cG9ydHMuU3RhcnRWYWx1ZVR5cGUgPSB7fSkpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Types/StartValueType.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Types/index.js": +/*!*******************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Types/index.js ***! + \*******************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n__exportStar(__webpack_require__(/*! ./AlterType */ \"./node_modules/tsparticles/Enums/Types/AlterType.js\"), exports);\n__exportStar(__webpack_require__(/*! ./DestroyType */ \"./node_modules/tsparticles/Enums/Types/DestroyType.js\"), exports);\n__exportStar(__webpack_require__(/*! ./GradientType */ \"./node_modules/tsparticles/Enums/Types/GradientType.js\"), exports);\n__exportStar(__webpack_require__(/*! ./InteractorType */ \"./node_modules/tsparticles/Enums/Types/InteractorType.js\"), exports);\n__exportStar(__webpack_require__(/*! ./ShapeType */ \"./node_modules/tsparticles/Enums/Types/ShapeType.js\"), exports);\n__exportStar(__webpack_require__(/*! ./StartValueType */ \"./node_modules/tsparticles/Enums/Types/StartValueType.js\"), exports);\n__exportStar(__webpack_require__(/*! ./DivType */ \"./node_modules/tsparticles/Enums/Types/DivType.js\"), exports);\n__exportStar(__webpack_require__(/*! ./EasingType */ \"./node_modules/tsparticles/Enums/Types/EasingType.js\"), exports);\n__exportStar(__webpack_require__(/*! ./OrbitType */ \"./node_modules/tsparticles/Enums/Types/OrbitType.js\"), exports);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvVHlwZXMvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBO0FBQ0EsbUNBQW1DLG9DQUFvQyxnQkFBZ0I7QUFDdkYsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGFBQWEsbUJBQU8sQ0FBQyx3RUFBYTtBQUNsQyxhQUFhLG1CQUFPLENBQUMsNEVBQWU7QUFDcEMsYUFBYSxtQkFBTyxDQUFDLDhFQUFnQjtBQUNyQyxhQUFhLG1CQUFPLENBQUMsa0ZBQWtCO0FBQ3ZDLGFBQWEsbUJBQU8sQ0FBQyx3RUFBYTtBQUNsQyxhQUFhLG1CQUFPLENBQUMsa0ZBQWtCO0FBQ3ZDLGFBQWEsbUJBQU8sQ0FBQyxvRUFBVztBQUNoQyxhQUFhLG1CQUFPLENBQUMsMEVBQWM7QUFDbkMsYUFBYSxtQkFBTyxDQUFDLHdFQUFhIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9FbnVtcy9UeXBlcy9pbmRleC5qcz9lYmQyIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9fY3JlYXRlQmluZGluZyA9ICh0aGlzICYmIHRoaXMuX19jcmVhdGVCaW5kaW5nKSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH0pO1xufSkgOiAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIG9bazJdID0gbVtrXTtcbn0pKTtcbnZhciBfX2V4cG9ydFN0YXIgPSAodGhpcyAmJiB0aGlzLl9fZXhwb3J0U3RhcikgfHwgZnVuY3Rpb24obSwgZXhwb3J0cykge1xuICAgIGZvciAodmFyIHAgaW4gbSkgaWYgKHAgIT09IFwiZGVmYXVsdFwiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0cywgcCkpIF9fY3JlYXRlQmluZGluZyhleHBvcnRzLCBtLCBwKTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vQWx0ZXJUeXBlXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9EZXN0cm95VHlwZVwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vR3JhZGllbnRUeXBlXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9JbnRlcmFjdG9yVHlwZVwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vU2hhcGVUeXBlXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9TdGFydFZhbHVlVHlwZVwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vRGl2VHlwZVwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vRWFzaW5nVHlwZVwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vT3JiaXRUeXBlXCIpLCBleHBvcnRzKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Types/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/index.js": +/*!*************************************************!*\ + !*** ./node_modules/tsparticles/Enums/index.js ***! + \*************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n__exportStar(__webpack_require__(/*! ./Directions */ \"./node_modules/tsparticles/Enums/Directions/index.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Modes */ \"./node_modules/tsparticles/Enums/Modes/index.js\"), exports);\n__exportStar(__webpack_require__(/*! ./AnimationStatus */ \"./node_modules/tsparticles/Enums/AnimationStatus.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Types */ \"./node_modules/tsparticles/Enums/Types/index.js\"), exports);\n__exportStar(__webpack_require__(/*! ./InteractivityDetect */ \"./node_modules/tsparticles/Enums/InteractivityDetect.js\"), exports);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBO0FBQ0EsbUNBQW1DLG9DQUFvQyxnQkFBZ0I7QUFDdkYsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGFBQWEsbUJBQU8sQ0FBQywwRUFBYztBQUNuQyxhQUFhLG1CQUFPLENBQUMsZ0VBQVM7QUFDOUIsYUFBYSxtQkFBTyxDQUFDLDhFQUFtQjtBQUN4QyxhQUFhLG1CQUFPLENBQUMsZ0VBQVM7QUFDOUIsYUFBYSxtQkFBTyxDQUFDLHNGQUF1QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvaW5kZXguanM/MDgyYyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2NyZWF0ZUJpbmRpbmcgPSAodGhpcyAmJiB0aGlzLl9fY3JlYXRlQmluZGluZykgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gbVtrXTsgfSB9KTtcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBvW2syXSA9IG1ba107XG59KSk7XG52YXIgX19leHBvcnRTdGFyID0gKHRoaXMgJiYgdGhpcy5fX2V4cG9ydFN0YXIpIHx8IGZ1bmN0aW9uKG0sIGV4cG9ydHMpIHtcbiAgICBmb3IgKHZhciBwIGluIG0pIGlmIChwICE9PSBcImRlZmF1bHRcIiAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMsIHApKSBfX2NyZWF0ZUJpbmRpbmcoZXhwb3J0cywgbSwgcCk7XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0RpcmVjdGlvbnNcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL01vZGVzXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9BbmltYXRpb25TdGF0dXNcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL1R5cGVzXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9JbnRlcmFjdGl2aXR5RGV0ZWN0XCIpLCBleHBvcnRzKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/External/Attract/Attractor.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/External/Attract/Attractor.js ***! + \*****************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Attractor = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst Utils_1 = __webpack_require__(/*! ../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst ExternalInteractorBase_1 = __webpack_require__(/*! ../../../Core/ExternalInteractorBase */ \"./node_modules/tsparticles/Core/ExternalInteractorBase.js\");\nconst Vector_1 = __webpack_require__(/*! ../../../Core/Particle/Vector */ \"./node_modules/tsparticles/Core/Particle/Vector.js\");\nclass Attractor extends ExternalInteractorBase_1.ExternalInteractorBase {\n constructor(container) {\n super(container);\n }\n isEnabled() {\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse, events = options.interactivity.events;\n if ((!mouse.position || !events.onHover.enable) && (!mouse.clickPosition || !events.onClick.enable)) {\n return false;\n }\n const hoverMode = events.onHover.mode, clickMode = events.onClick.mode;\n return (0, Utils_1.isInArray)(Enums_1.HoverMode.attract, hoverMode) || (0, Utils_1.isInArray)(Enums_1.ClickMode.attract, clickMode);\n }\n reset() {\n }\n interact() {\n const container = this.container, options = container.actualOptions, mouseMoveStatus = container.interactivity.status === Utils_1.Constants.mouseMoveEvent, events = options.interactivity.events, hoverEnabled = events.onHover.enable, hoverMode = events.onHover.mode, clickEnabled = events.onClick.enable, clickMode = events.onClick.mode;\n if (mouseMoveStatus && hoverEnabled && (0, Utils_1.isInArray)(Enums_1.HoverMode.attract, hoverMode)) {\n this.hoverAttract();\n }\n else if (clickEnabled && (0, Utils_1.isInArray)(Enums_1.ClickMode.attract, clickMode)) {\n this.clickAttract();\n }\n }\n hoverAttract() {\n const container = this.container;\n const mousePos = container.interactivity.mouse.position;\n if (!mousePos) {\n return;\n }\n const attractRadius = container.retina.attractModeDistance;\n this.processAttract(mousePos, attractRadius, new Utils_1.Circle(mousePos.x, mousePos.y, attractRadius));\n }\n processAttract(position, attractRadius, area) {\n const container = this.container;\n const attractOptions = container.actualOptions.interactivity.modes.attract;\n const query = container.particles.quadTree.query(area);\n for (const particle of query) {\n const { dx, dy, distance } = (0, Utils_1.getDistances)(particle.position, position);\n const velocity = attractOptions.speed * attractOptions.factor;\n const attractFactor = (0, Utils_1.clamp)((0, Utils_1.calcEasing)(1 - distance / attractRadius, attractOptions.easing) * velocity, 0, attractOptions.maxSpeed);\n const normVec = Vector_1.Vector.create(distance === 0 ? velocity : (dx / distance) * attractFactor, distance === 0 ? velocity : (dy / distance) * attractFactor);\n particle.position.subFrom(normVec);\n }\n }\n clickAttract() {\n const container = this.container;\n if (!container.attract.finish) {\n if (!container.attract.count) {\n container.attract.count = 0;\n }\n container.attract.count++;\n if (container.attract.count === container.particles.count) {\n container.attract.finish = true;\n }\n }\n if (container.attract.clicking) {\n const mousePos = container.interactivity.mouse.clickPosition;\n if (!mousePos) {\n return;\n }\n const attractRadius = container.retina.attractModeDistance;\n this.processAttract(mousePos, attractRadius, new Utils_1.Circle(mousePos.x, mousePos.y, attractRadius));\n }\n else if (container.attract.clicking === false) {\n container.attract.particles = [];\n }\n return;\n }\n}\nexports.Attractor = Attractor;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL0V4dGVybmFsL0F0dHJhY3QvQXR0cmFjdG9yLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGlCQUFpQjtBQUNqQixnQkFBZ0IsbUJBQU8sQ0FBQyxpRUFBZ0I7QUFDeEMsZ0JBQWdCLG1CQUFPLENBQUMsaUVBQWdCO0FBQ3hDLGlDQUFpQyxtQkFBTyxDQUFDLHVHQUFzQztBQUMvRSxpQkFBaUIsbUJBQU8sQ0FBQyx5RkFBK0I7QUFDeEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsbUJBQW1CO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9JbnRlcmFjdGlvbnMvRXh0ZXJuYWwvQXR0cmFjdC9BdHRyYWN0b3IuanM/ZWI5MiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuQXR0cmFjdG9yID0gdm9pZCAwO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9FbnVtc1wiKTtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vVXRpbHNcIik7XG5jb25zdCBFeHRlcm5hbEludGVyYWN0b3JCYXNlXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vQ29yZS9FeHRlcm5hbEludGVyYWN0b3JCYXNlXCIpO1xuY29uc3QgVmVjdG9yXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vQ29yZS9QYXJ0aWNsZS9WZWN0b3JcIik7XG5jbGFzcyBBdHRyYWN0b3IgZXh0ZW5kcyBFeHRlcm5hbEludGVyYWN0b3JCYXNlXzEuRXh0ZXJuYWxJbnRlcmFjdG9yQmFzZSB7XG4gICAgY29uc3RydWN0b3IoY29udGFpbmVyKSB7XG4gICAgICAgIHN1cGVyKGNvbnRhaW5lcik7XG4gICAgfVxuICAgIGlzRW5hYmxlZCgpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXIsIG9wdGlvbnMgPSBjb250YWluZXIuYWN0dWFsT3B0aW9ucywgbW91c2UgPSBjb250YWluZXIuaW50ZXJhY3Rpdml0eS5tb3VzZSwgZXZlbnRzID0gb3B0aW9ucy5pbnRlcmFjdGl2aXR5LmV2ZW50cztcbiAgICAgICAgaWYgKCghbW91c2UucG9zaXRpb24gfHwgIWV2ZW50cy5vbkhvdmVyLmVuYWJsZSkgJiYgKCFtb3VzZS5jbGlja1Bvc2l0aW9uIHx8ICFldmVudHMub25DbGljay5lbmFibGUpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaG92ZXJNb2RlID0gZXZlbnRzLm9uSG92ZXIubW9kZSwgY2xpY2tNb2RlID0gZXZlbnRzLm9uQ2xpY2subW9kZTtcbiAgICAgICAgcmV0dXJuICgwLCBVdGlsc18xLmlzSW5BcnJheSkoRW51bXNfMS5Ib3Zlck1vZGUuYXR0cmFjdCwgaG92ZXJNb2RlKSB8fCAoMCwgVXRpbHNfMS5pc0luQXJyYXkpKEVudW1zXzEuQ2xpY2tNb2RlLmF0dHJhY3QsIGNsaWNrTW9kZSk7XG4gICAgfVxuICAgIHJlc2V0KCkge1xuICAgIH1cbiAgICBpbnRlcmFjdCgpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXIsIG9wdGlvbnMgPSBjb250YWluZXIuYWN0dWFsT3B0aW9ucywgbW91c2VNb3ZlU3RhdHVzID0gY29udGFpbmVyLmludGVyYWN0aXZpdHkuc3RhdHVzID09PSBVdGlsc18xLkNvbnN0YW50cy5tb3VzZU1vdmVFdmVudCwgZXZlbnRzID0gb3B0aW9ucy5pbnRlcmFjdGl2aXR5LmV2ZW50cywgaG92ZXJFbmFibGVkID0gZXZlbnRzLm9uSG92ZXIuZW5hYmxlLCBob3Zlck1vZGUgPSBldmVudHMub25Ib3Zlci5tb2RlLCBjbGlja0VuYWJsZWQgPSBldmVudHMub25DbGljay5lbmFibGUsIGNsaWNrTW9kZSA9IGV2ZW50cy5vbkNsaWNrLm1vZGU7XG4gICAgICAgIGlmIChtb3VzZU1vdmVTdGF0dXMgJiYgaG92ZXJFbmFibGVkICYmICgwLCBVdGlsc18xLmlzSW5BcnJheSkoRW51bXNfMS5Ib3Zlck1vZGUuYXR0cmFjdCwgaG92ZXJNb2RlKSkge1xuICAgICAgICAgICAgdGhpcy5ob3ZlckF0dHJhY3QoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChjbGlja0VuYWJsZWQgJiYgKDAsIFV0aWxzXzEuaXNJbkFycmF5KShFbnVtc18xLkNsaWNrTW9kZS5hdHRyYWN0LCBjbGlja01vZGUpKSB7XG4gICAgICAgICAgICB0aGlzLmNsaWNrQXR0cmFjdCgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGhvdmVyQXR0cmFjdCgpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXI7XG4gICAgICAgIGNvbnN0IG1vdXNlUG9zID0gY29udGFpbmVyLmludGVyYWN0aXZpdHkubW91c2UucG9zaXRpb247XG4gICAgICAgIGlmICghbW91c2VQb3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhdHRyYWN0UmFkaXVzID0gY29udGFpbmVyLnJldGluYS5hdHRyYWN0TW9kZURpc3RhbmNlO1xuICAgICAgICB0aGlzLnByb2Nlc3NBdHRyYWN0KG1vdXNlUG9zLCBhdHRyYWN0UmFkaXVzLCBuZXcgVXRpbHNfMS5DaXJjbGUobW91c2VQb3MueCwgbW91c2VQb3MueSwgYXR0cmFjdFJhZGl1cykpO1xuICAgIH1cbiAgICBwcm9jZXNzQXR0cmFjdChwb3NpdGlvbiwgYXR0cmFjdFJhZGl1cywgYXJlYSkge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgY29uc3QgYXR0cmFjdE9wdGlvbnMgPSBjb250YWluZXIuYWN0dWFsT3B0aW9ucy5pbnRlcmFjdGl2aXR5Lm1vZGVzLmF0dHJhY3Q7XG4gICAgICAgIGNvbnN0IHF1ZXJ5ID0gY29udGFpbmVyLnBhcnRpY2xlcy5xdWFkVHJlZS5xdWVyeShhcmVhKTtcbiAgICAgICAgZm9yIChjb25zdCBwYXJ0aWNsZSBvZiBxdWVyeSkge1xuICAgICAgICAgICAgY29uc3QgeyBkeCwgZHksIGRpc3RhbmNlIH0gPSAoMCwgVXRpbHNfMS5nZXREaXN0YW5jZXMpKHBhcnRpY2xlLnBvc2l0aW9uLCBwb3NpdGlvbik7XG4gICAgICAgICAgICBjb25zdCB2ZWxvY2l0eSA9IGF0dHJhY3RPcHRpb25zLnNwZWVkICogYXR0cmFjdE9wdGlvbnMuZmFjdG9yO1xuICAgICAgICAgICAgY29uc3QgYXR0cmFjdEZhY3RvciA9ICgwLCBVdGlsc18xLmNsYW1wKSgoMCwgVXRpbHNfMS5jYWxjRWFzaW5nKSgxIC0gZGlzdGFuY2UgLyBhdHRyYWN0UmFkaXVzLCBhdHRyYWN0T3B0aW9ucy5lYXNpbmcpICogdmVsb2NpdHksIDAsIGF0dHJhY3RPcHRpb25zLm1heFNwZWVkKTtcbiAgICAgICAgICAgIGNvbnN0IG5vcm1WZWMgPSBWZWN0b3JfMS5WZWN0b3IuY3JlYXRlKGRpc3RhbmNlID09PSAwID8gdmVsb2NpdHkgOiAoZHggLyBkaXN0YW5jZSkgKiBhdHRyYWN0RmFjdG9yLCBkaXN0YW5jZSA9PT0gMCA/IHZlbG9jaXR5IDogKGR5IC8gZGlzdGFuY2UpICogYXR0cmFjdEZhY3Rvcik7XG4gICAgICAgICAgICBwYXJ0aWNsZS5wb3NpdGlvbi5zdWJGcm9tKG5vcm1WZWMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNsaWNrQXR0cmFjdCgpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXI7XG4gICAgICAgIGlmICghY29udGFpbmVyLmF0dHJhY3QuZmluaXNoKSB7XG4gICAgICAgICAgICBpZiAoIWNvbnRhaW5lci5hdHRyYWN0LmNvdW50KSB7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLmF0dHJhY3QuY291bnQgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29udGFpbmVyLmF0dHJhY3QuY291bnQrKztcbiAgICAgICAgICAgIGlmIChjb250YWluZXIuYXR0cmFjdC5jb3VudCA9PT0gY29udGFpbmVyLnBhcnRpY2xlcy5jb3VudCkge1xuICAgICAgICAgICAgICAgIGNvbnRhaW5lci5hdHRyYWN0LmZpbmlzaCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbnRhaW5lci5hdHRyYWN0LmNsaWNraW5nKSB7XG4gICAgICAgICAgICBjb25zdCBtb3VzZVBvcyA9IGNvbnRhaW5lci5pbnRlcmFjdGl2aXR5Lm1vdXNlLmNsaWNrUG9zaXRpb247XG4gICAgICAgICAgICBpZiAoIW1vdXNlUG9zKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgYXR0cmFjdFJhZGl1cyA9IGNvbnRhaW5lci5yZXRpbmEuYXR0cmFjdE1vZGVEaXN0YW5jZTtcbiAgICAgICAgICAgIHRoaXMucHJvY2Vzc0F0dHJhY3QobW91c2VQb3MsIGF0dHJhY3RSYWRpdXMsIG5ldyBVdGlsc18xLkNpcmNsZShtb3VzZVBvcy54LCBtb3VzZVBvcy55LCBhdHRyYWN0UmFkaXVzKSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoY29udGFpbmVyLmF0dHJhY3QuY2xpY2tpbmcgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICBjb250YWluZXIuYXR0cmFjdC5wYXJ0aWNsZXMgPSBbXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgfVxufVxuZXhwb3J0cy5BdHRyYWN0b3IgPSBBdHRyYWN0b3I7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/External/Attract/Attractor.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/External/Attract/index.js": +/*!*************************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/External/Attract/index.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadExternalAttractInteraction = void 0;\nconst Attractor_1 = __webpack_require__(/*! ./Attractor */ \"./node_modules/tsparticles/Interactions/External/Attract/Attractor.js\");\nasync function loadExternalAttractInteraction(tsParticles) {\n await tsParticles.addInteractor(\"externalAttract\", (container) => new Attractor_1.Attractor(container));\n}\nexports.loadExternalAttractInteraction = loadExternalAttractInteraction;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL0V4dGVybmFsL0F0dHJhY3QvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsc0NBQXNDO0FBQ3RDLG9CQUFvQixtQkFBTyxDQUFDLDBGQUFhO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBLHNDQUFzQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL0V4dGVybmFsL0F0dHJhY3QvaW5kZXguanM/OGMxYyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMubG9hZEV4dGVybmFsQXR0cmFjdEludGVyYWN0aW9uID0gdm9pZCAwO1xuY29uc3QgQXR0cmFjdG9yXzEgPSByZXF1aXJlKFwiLi9BdHRyYWN0b3JcIik7XG5hc3luYyBmdW5jdGlvbiBsb2FkRXh0ZXJuYWxBdHRyYWN0SW50ZXJhY3Rpb24odHNQYXJ0aWNsZXMpIHtcbiAgICBhd2FpdCB0c1BhcnRpY2xlcy5hZGRJbnRlcmFjdG9yKFwiZXh0ZXJuYWxBdHRyYWN0XCIsIChjb250YWluZXIpID0+IG5ldyBBdHRyYWN0b3JfMS5BdHRyYWN0b3IoY29udGFpbmVyKSk7XG59XG5leHBvcnRzLmxvYWRFeHRlcm5hbEF0dHJhY3RJbnRlcmFjdGlvbiA9IGxvYWRFeHRlcm5hbEF0dHJhY3RJbnRlcmFjdGlvbjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/External/Attract/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/External/Bounce/Bouncer.js": +/*!**************************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/External/Bounce/Bouncer.js ***! + \**************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Bouncer = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Enums_1 = __webpack_require__(/*! ../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst Vector_1 = __webpack_require__(/*! ../../../Core/Particle/Vector */ \"./node_modules/tsparticles/Core/Particle/Vector.js\");\nconst ExternalInteractorBase_1 = __webpack_require__(/*! ../../../Core/ExternalInteractorBase */ \"./node_modules/tsparticles/Core/ExternalInteractorBase.js\");\nclass Bouncer extends ExternalInteractorBase_1.ExternalInteractorBase {\n constructor(container) {\n super(container);\n }\n isEnabled() {\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse, events = options.interactivity.events, divs = events.onDiv;\n return ((mouse.position && events.onHover.enable && (0, Utils_1.isInArray)(Enums_1.HoverMode.bounce, events.onHover.mode)) ||\n (0, Utils_1.isDivModeEnabled)(Enums_1.DivMode.bounce, divs));\n }\n interact() {\n const container = this.container, options = container.actualOptions, events = options.interactivity.events, mouseMoveStatus = container.interactivity.status === Utils_1.Constants.mouseMoveEvent, hoverEnabled = events.onHover.enable, hoverMode = events.onHover.mode, divs = events.onDiv;\n if (mouseMoveStatus && hoverEnabled && (0, Utils_1.isInArray)(Enums_1.HoverMode.bounce, hoverMode)) {\n this.processMouseBounce();\n }\n else {\n (0, Utils_1.divModeExecute)(Enums_1.DivMode.bounce, divs, (selector, div) => this.singleSelectorBounce(selector, div));\n }\n }\n reset() {\n }\n processMouseBounce() {\n const container = this.container, pxRatio = container.retina.pixelRatio, tolerance = 10 * pxRatio, mousePos = container.interactivity.mouse.position, radius = container.retina.bounceModeDistance;\n if (mousePos) {\n this.processBounce(mousePos, radius, new Utils_1.Circle(mousePos.x, mousePos.y, radius + tolerance));\n }\n }\n singleSelectorBounce(selector, div) {\n const container = this.container;\n const query = document.querySelectorAll(selector);\n if (!query.length) {\n return;\n }\n query.forEach((item) => {\n const elem = item, pxRatio = container.retina.pixelRatio, pos = {\n x: (elem.offsetLeft + elem.offsetWidth / 2) * pxRatio,\n y: (elem.offsetTop + elem.offsetHeight / 2) * pxRatio,\n }, radius = (elem.offsetWidth / 2) * pxRatio, tolerance = 10 * pxRatio;\n const area = div.type === Enums_1.DivType.circle\n ? new Utils_1.Circle(pos.x, pos.y, radius + tolerance)\n : new Utils_1.Rectangle(elem.offsetLeft * pxRatio - tolerance, elem.offsetTop * pxRatio - tolerance, elem.offsetWidth * pxRatio + tolerance * 2, elem.offsetHeight * pxRatio + tolerance * 2);\n this.processBounce(pos, radius, area);\n });\n }\n processBounce(position, radius, area) {\n const query = this.container.particles.quadTree.query(area);\n for (const particle of query) {\n if (area instanceof Utils_1.Circle) {\n (0, Utils_1.circleBounce)((0, Utils_1.circleBounceDataFromParticle)(particle), {\n position,\n radius,\n mass: (radius ** 2 * Math.PI) / 2,\n velocity: Vector_1.Vector.origin,\n factor: Vector_1.Vector.origin,\n });\n }\n else if (area instanceof Utils_1.Rectangle) {\n (0, Utils_1.rectBounce)(particle, (0, Utils_1.calculateBounds)(position, radius));\n }\n }\n }\n}\nexports.Bouncer = Bouncer;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL0V4dGVybmFsL0JvdW5jZS9Cb3VuY2VyLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGVBQWU7QUFDZixnQkFBZ0IsbUJBQU8sQ0FBQyxpRUFBZ0I7QUFDeEMsZ0JBQWdCLG1CQUFPLENBQUMsaUVBQWdCO0FBQ3hDLGlCQUFpQixtQkFBTyxDQUFDLHlGQUErQjtBQUN4RCxpQ0FBaUMsbUJBQU8sQ0FBQyx1R0FBc0M7QUFDL0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9JbnRlcmFjdGlvbnMvRXh0ZXJuYWwvQm91bmNlL0JvdW5jZXIuanM/NGU2NiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuQm91bmNlciA9IHZvaWQgMDtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vVXRpbHNcIik7XG5jb25zdCBFbnVtc18xID0gcmVxdWlyZShcIi4uLy4uLy4uL0VudW1zXCIpO1xuY29uc3QgVmVjdG9yXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vQ29yZS9QYXJ0aWNsZS9WZWN0b3JcIik7XG5jb25zdCBFeHRlcm5hbEludGVyYWN0b3JCYXNlXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vQ29yZS9FeHRlcm5hbEludGVyYWN0b3JCYXNlXCIpO1xuY2xhc3MgQm91bmNlciBleHRlbmRzIEV4dGVybmFsSW50ZXJhY3RvckJhc2VfMS5FeHRlcm5hbEludGVyYWN0b3JCYXNlIHtcbiAgICBjb25zdHJ1Y3Rvcihjb250YWluZXIpIHtcbiAgICAgICAgc3VwZXIoY29udGFpbmVyKTtcbiAgICB9XG4gICAgaXNFbmFibGVkKCkge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lciwgb3B0aW9ucyA9IGNvbnRhaW5lci5hY3R1YWxPcHRpb25zLCBtb3VzZSA9IGNvbnRhaW5lci5pbnRlcmFjdGl2aXR5Lm1vdXNlLCBldmVudHMgPSBvcHRpb25zLmludGVyYWN0aXZpdHkuZXZlbnRzLCBkaXZzID0gZXZlbnRzLm9uRGl2O1xuICAgICAgICByZXR1cm4gKChtb3VzZS5wb3NpdGlvbiAmJiBldmVudHMub25Ib3Zlci5lbmFibGUgJiYgKDAsIFV0aWxzXzEuaXNJbkFycmF5KShFbnVtc18xLkhvdmVyTW9kZS5ib3VuY2UsIGV2ZW50cy5vbkhvdmVyLm1vZGUpKSB8fFxuICAgICAgICAgICAgKDAsIFV0aWxzXzEuaXNEaXZNb2RlRW5hYmxlZCkoRW51bXNfMS5EaXZNb2RlLmJvdW5jZSwgZGl2cykpO1xuICAgIH1cbiAgICBpbnRlcmFjdCgpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXIsIG9wdGlvbnMgPSBjb250YWluZXIuYWN0dWFsT3B0aW9ucywgZXZlbnRzID0gb3B0aW9ucy5pbnRlcmFjdGl2aXR5LmV2ZW50cywgbW91c2VNb3ZlU3RhdHVzID0gY29udGFpbmVyLmludGVyYWN0aXZpdHkuc3RhdHVzID09PSBVdGlsc18xLkNvbnN0YW50cy5tb3VzZU1vdmVFdmVudCwgaG92ZXJFbmFibGVkID0gZXZlbnRzLm9uSG92ZXIuZW5hYmxlLCBob3Zlck1vZGUgPSBldmVudHMub25Ib3Zlci5tb2RlLCBkaXZzID0gZXZlbnRzLm9uRGl2O1xuICAgICAgICBpZiAobW91c2VNb3ZlU3RhdHVzICYmIGhvdmVyRW5hYmxlZCAmJiAoMCwgVXRpbHNfMS5pc0luQXJyYXkpKEVudW1zXzEuSG92ZXJNb2RlLmJvdW5jZSwgaG92ZXJNb2RlKSkge1xuICAgICAgICAgICAgdGhpcy5wcm9jZXNzTW91c2VCb3VuY2UoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICgwLCBVdGlsc18xLmRpdk1vZGVFeGVjdXRlKShFbnVtc18xLkRpdk1vZGUuYm91bmNlLCBkaXZzLCAoc2VsZWN0b3IsIGRpdikgPT4gdGhpcy5zaW5nbGVTZWxlY3RvckJvdW5jZShzZWxlY3RvciwgZGl2KSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmVzZXQoKSB7XG4gICAgfVxuICAgIHByb2Nlc3NNb3VzZUJvdW5jZSgpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXIsIHB4UmF0aW8gPSBjb250YWluZXIucmV0aW5hLnBpeGVsUmF0aW8sIHRvbGVyYW5jZSA9IDEwICogcHhSYXRpbywgbW91c2VQb3MgPSBjb250YWluZXIuaW50ZXJhY3Rpdml0eS5tb3VzZS5wb3NpdGlvbiwgcmFkaXVzID0gY29udGFpbmVyLnJldGluYS5ib3VuY2VNb2RlRGlzdGFuY2U7XG4gICAgICAgIGlmIChtb3VzZVBvcykge1xuICAgICAgICAgICAgdGhpcy5wcm9jZXNzQm91bmNlKG1vdXNlUG9zLCByYWRpdXMsIG5ldyBVdGlsc18xLkNpcmNsZShtb3VzZVBvcy54LCBtb3VzZVBvcy55LCByYWRpdXMgKyB0b2xlcmFuY2UpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzaW5nbGVTZWxlY3RvckJvdW5jZShzZWxlY3RvciwgZGl2KSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyO1xuICAgICAgICBjb25zdCBxdWVyeSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpO1xuICAgICAgICBpZiAoIXF1ZXJ5Lmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHF1ZXJ5LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW0gPSBpdGVtLCBweFJhdGlvID0gY29udGFpbmVyLnJldGluYS5waXhlbFJhdGlvLCBwb3MgPSB7XG4gICAgICAgICAgICAgICAgeDogKGVsZW0ub2Zmc2V0TGVmdCArIGVsZW0ub2Zmc2V0V2lkdGggLyAyKSAqIHB4UmF0aW8sXG4gICAgICAgICAgICAgICAgeTogKGVsZW0ub2Zmc2V0VG9wICsgZWxlbS5vZmZzZXRIZWlnaHQgLyAyKSAqIHB4UmF0aW8sXG4gICAgICAgICAgICB9LCByYWRpdXMgPSAoZWxlbS5vZmZzZXRXaWR0aCAvIDIpICogcHhSYXRpbywgdG9sZXJhbmNlID0gMTAgKiBweFJhdGlvO1xuICAgICAgICAgICAgY29uc3QgYXJlYSA9IGRpdi50eXBlID09PSBFbnVtc18xLkRpdlR5cGUuY2lyY2xlXG4gICAgICAgICAgICAgICAgPyBuZXcgVXRpbHNfMS5DaXJjbGUocG9zLngsIHBvcy55LCByYWRpdXMgKyB0b2xlcmFuY2UpXG4gICAgICAgICAgICAgICAgOiBuZXcgVXRpbHNfMS5SZWN0YW5nbGUoZWxlbS5vZmZzZXRMZWZ0ICogcHhSYXRpbyAtIHRvbGVyYW5jZSwgZWxlbS5vZmZzZXRUb3AgKiBweFJhdGlvIC0gdG9sZXJhbmNlLCBlbGVtLm9mZnNldFdpZHRoICogcHhSYXRpbyArIHRvbGVyYW5jZSAqIDIsIGVsZW0ub2Zmc2V0SGVpZ2h0ICogcHhSYXRpbyArIHRvbGVyYW5jZSAqIDIpO1xuICAgICAgICAgICAgdGhpcy5wcm9jZXNzQm91bmNlKHBvcywgcmFkaXVzLCBhcmVhKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHByb2Nlc3NCb3VuY2UocG9zaXRpb24sIHJhZGl1cywgYXJlYSkge1xuICAgICAgICBjb25zdCBxdWVyeSA9IHRoaXMuY29udGFpbmVyLnBhcnRpY2xlcy5xdWFkVHJlZS5xdWVyeShhcmVhKTtcbiAgICAgICAgZm9yIChjb25zdCBwYXJ0aWNsZSBvZiBxdWVyeSkge1xuICAgICAgICAgICAgaWYgKGFyZWEgaW5zdGFuY2VvZiBVdGlsc18xLkNpcmNsZSkge1xuICAgICAgICAgICAgICAgICgwLCBVdGlsc18xLmNpcmNsZUJvdW5jZSkoKDAsIFV0aWxzXzEuY2lyY2xlQm91bmNlRGF0YUZyb21QYXJ0aWNsZSkocGFydGljbGUpLCB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgICAgICAgICByYWRpdXMsXG4gICAgICAgICAgICAgICAgICAgIG1hc3M6IChyYWRpdXMgKiogMiAqIE1hdGguUEkpIC8gMixcbiAgICAgICAgICAgICAgICAgICAgdmVsb2NpdHk6IFZlY3Rvcl8xLlZlY3Rvci5vcmlnaW4sXG4gICAgICAgICAgICAgICAgICAgIGZhY3RvcjogVmVjdG9yXzEuVmVjdG9yLm9yaWdpbixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGFyZWEgaW5zdGFuY2VvZiBVdGlsc18xLlJlY3RhbmdsZSkge1xuICAgICAgICAgICAgICAgICgwLCBVdGlsc18xLnJlY3RCb3VuY2UpKHBhcnRpY2xlLCAoMCwgVXRpbHNfMS5jYWxjdWxhdGVCb3VuZHMpKHBvc2l0aW9uLCByYWRpdXMpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuQm91bmNlciA9IEJvdW5jZXI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/External/Bounce/Bouncer.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/External/Bounce/index.js": +/*!************************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/External/Bounce/index.js ***! + \************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadExternalBounceInteraction = void 0;\nconst Bouncer_1 = __webpack_require__(/*! ./Bouncer */ \"./node_modules/tsparticles/Interactions/External/Bounce/Bouncer.js\");\nasync function loadExternalBounceInteraction(tsParticles) {\n await tsParticles.addInteractor(\"externalBounce\", (container) => new Bouncer_1.Bouncer(container));\n}\nexports.loadExternalBounceInteraction = loadExternalBounceInteraction;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL0V4dGVybmFsL0JvdW5jZS9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxxQ0FBcUM7QUFDckMsa0JBQWtCLG1CQUFPLENBQUMscUZBQVc7QUFDckM7QUFDQTtBQUNBO0FBQ0EscUNBQXFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9JbnRlcmFjdGlvbnMvRXh0ZXJuYWwvQm91bmNlL2luZGV4LmpzPzVjNGUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmxvYWRFeHRlcm5hbEJvdW5jZUludGVyYWN0aW9uID0gdm9pZCAwO1xuY29uc3QgQm91bmNlcl8xID0gcmVxdWlyZShcIi4vQm91bmNlclwiKTtcbmFzeW5jIGZ1bmN0aW9uIGxvYWRFeHRlcm5hbEJvdW5jZUludGVyYWN0aW9uKHRzUGFydGljbGVzKSB7XG4gICAgYXdhaXQgdHNQYXJ0aWNsZXMuYWRkSW50ZXJhY3RvcihcImV4dGVybmFsQm91bmNlXCIsIChjb250YWluZXIpID0+IG5ldyBCb3VuY2VyXzEuQm91bmNlcihjb250YWluZXIpKTtcbn1cbmV4cG9ydHMubG9hZEV4dGVybmFsQm91bmNlSW50ZXJhY3Rpb24gPSBsb2FkRXh0ZXJuYWxCb3VuY2VJbnRlcmFjdGlvbjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/External/Bounce/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/External/Bubble/Bubbler.js": +/*!**************************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/External/Bubble/Bubbler.js ***! + \**************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Bubbler = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Enums_1 = __webpack_require__(/*! ../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst ExternalInteractorBase_1 = __webpack_require__(/*! ../../../Core/ExternalInteractorBase */ \"./node_modules/tsparticles/Core/ExternalInteractorBase.js\");\nconst ProcessBubbleType_1 = __webpack_require__(/*! ./ProcessBubbleType */ \"./node_modules/tsparticles/Interactions/External/Bubble/ProcessBubbleType.js\");\nfunction calculateBubbleValue(particleValue, modeValue, optionsValue, ratio) {\n if (modeValue >= optionsValue) {\n const value = particleValue + (modeValue - optionsValue) * ratio;\n return (0, Utils_1.clamp)(value, particleValue, modeValue);\n }\n else if (modeValue < optionsValue) {\n const value = particleValue - (optionsValue - modeValue) * ratio;\n return (0, Utils_1.clamp)(value, modeValue, particleValue);\n }\n}\nclass Bubbler extends ExternalInteractorBase_1.ExternalInteractorBase {\n constructor(container) {\n super(container);\n }\n isEnabled() {\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse, events = options.interactivity.events, divs = events.onDiv, divBubble = (0, Utils_1.isDivModeEnabled)(Enums_1.DivMode.bubble, divs);\n if (!(divBubble || (events.onHover.enable && mouse.position) || (events.onClick.enable && mouse.clickPosition))) {\n return false;\n }\n const hoverMode = events.onHover.mode;\n const clickMode = events.onClick.mode;\n return (0, Utils_1.isInArray)(Enums_1.HoverMode.bubble, hoverMode) || (0, Utils_1.isInArray)(Enums_1.ClickMode.bubble, clickMode) || divBubble;\n }\n reset(particle, force) {\n if (!(!particle.bubble.inRange || force)) {\n return;\n }\n delete particle.bubble.div;\n delete particle.bubble.opacity;\n delete particle.bubble.radius;\n delete particle.bubble.color;\n }\n interact() {\n const options = this.container.actualOptions, events = options.interactivity.events, onHover = events.onHover, onClick = events.onClick, hoverEnabled = onHover.enable, hoverMode = onHover.mode, clickEnabled = onClick.enable, clickMode = onClick.mode, divs = events.onDiv;\n if (hoverEnabled && (0, Utils_1.isInArray)(Enums_1.HoverMode.bubble, hoverMode)) {\n this.hoverBubble();\n }\n else if (clickEnabled && (0, Utils_1.isInArray)(Enums_1.ClickMode.bubble, clickMode)) {\n this.clickBubble();\n }\n else {\n (0, Utils_1.divModeExecute)(Enums_1.DivMode.bubble, divs, (selector, div) => this.singleSelectorHover(selector, div));\n }\n }\n singleSelectorHover(selector, div) {\n const container = this.container, selectors = document.querySelectorAll(selector);\n if (!selectors.length) {\n return;\n }\n selectors.forEach((item) => {\n const elem = item, pxRatio = container.retina.pixelRatio, pos = {\n x: (elem.offsetLeft + elem.offsetWidth / 2) * pxRatio,\n y: (elem.offsetTop + elem.offsetHeight / 2) * pxRatio,\n }, repulseRadius = (elem.offsetWidth / 2) * pxRatio, area = div.type === Enums_1.DivType.circle\n ? new Utils_1.Circle(pos.x, pos.y, repulseRadius)\n : new Utils_1.Rectangle(elem.offsetLeft * pxRatio, elem.offsetTop * pxRatio, elem.offsetWidth * pxRatio, elem.offsetHeight * pxRatio), query = container.particles.quadTree.query(area);\n for (const particle of query) {\n if (!area.contains(particle.getPosition())) {\n continue;\n }\n particle.bubble.inRange = true;\n const divs = container.actualOptions.interactivity.modes.bubble.divs;\n const divBubble = (0, Utils_1.divMode)(divs, elem);\n if (!particle.bubble.div || particle.bubble.div !== elem) {\n this.reset(particle, true);\n particle.bubble.div = elem;\n }\n this.hoverBubbleSize(particle, 1, divBubble);\n this.hoverBubbleOpacity(particle, 1, divBubble);\n this.hoverBubbleColor(particle, 1, divBubble);\n }\n });\n }\n process(particle, distMouse, timeSpent, data) {\n const container = this.container, bubbleParam = data.bubbleObj.optValue;\n if (bubbleParam === undefined) {\n return;\n }\n const options = container.actualOptions, bubbleDuration = options.interactivity.modes.bubble.duration, bubbleDistance = container.retina.bubbleModeDistance, particlesParam = data.particlesObj.optValue, pObjBubble = data.bubbleObj.value, pObj = data.particlesObj.value || 0, type = data.type;\n if (bubbleParam === particlesParam) {\n return;\n }\n if (!container.bubble.durationEnd) {\n if (distMouse <= bubbleDistance) {\n const obj = pObjBubble !== null && pObjBubble !== void 0 ? pObjBubble : pObj;\n if (obj !== bubbleParam) {\n const value = pObj - (timeSpent * (pObj - bubbleParam)) / bubbleDuration;\n if (type === ProcessBubbleType_1.ProcessBubbleType.size) {\n particle.bubble.radius = value;\n }\n if (type === ProcessBubbleType_1.ProcessBubbleType.opacity) {\n particle.bubble.opacity = value;\n }\n }\n }\n else {\n if (type === ProcessBubbleType_1.ProcessBubbleType.size) {\n delete particle.bubble.radius;\n }\n if (type === ProcessBubbleType_1.ProcessBubbleType.opacity) {\n delete particle.bubble.opacity;\n }\n }\n }\n else if (pObjBubble) {\n if (type === ProcessBubbleType_1.ProcessBubbleType.size) {\n delete particle.bubble.radius;\n }\n if (type === ProcessBubbleType_1.ProcessBubbleType.opacity) {\n delete particle.bubble.opacity;\n }\n }\n }\n clickBubble() {\n var _a, _b;\n const container = this.container, options = container.actualOptions, mouseClickPos = container.interactivity.mouse.clickPosition;\n if (!mouseClickPos) {\n return;\n }\n const distance = container.retina.bubbleModeDistance, query = container.particles.quadTree.queryCircle(mouseClickPos, distance);\n for (const particle of query) {\n if (!container.bubble.clicking) {\n continue;\n }\n particle.bubble.inRange = !container.bubble.durationEnd;\n const pos = particle.getPosition(), distMouse = (0, Utils_1.getDistance)(pos, mouseClickPos), timeSpent = (new Date().getTime() - (container.interactivity.mouse.clickTime || 0)) / 1000;\n if (timeSpent > options.interactivity.modes.bubble.duration) {\n container.bubble.durationEnd = true;\n }\n if (timeSpent > options.interactivity.modes.bubble.duration * 2) {\n container.bubble.clicking = false;\n container.bubble.durationEnd = false;\n }\n const sizeData = {\n bubbleObj: {\n optValue: container.retina.bubbleModeSize,\n value: particle.bubble.radius,\n },\n particlesObj: {\n optValue: (0, Utils_1.getRangeMax)(particle.options.size.value) * container.retina.pixelRatio,\n value: particle.size.value,\n },\n type: ProcessBubbleType_1.ProcessBubbleType.size,\n };\n this.process(particle, distMouse, timeSpent, sizeData);\n const opacityData = {\n bubbleObj: {\n optValue: options.interactivity.modes.bubble.opacity,\n value: particle.bubble.opacity,\n },\n particlesObj: {\n optValue: (0, Utils_1.getRangeMax)(particle.options.opacity.value),\n value: (_b = (_a = particle.opacity) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : 1,\n },\n type: ProcessBubbleType_1.ProcessBubbleType.opacity,\n };\n this.process(particle, distMouse, timeSpent, opacityData);\n if (!container.bubble.durationEnd) {\n if (distMouse <= container.retina.bubbleModeDistance) {\n this.hoverBubbleColor(particle, distMouse);\n }\n else {\n delete particle.bubble.color;\n }\n }\n else {\n delete particle.bubble.color;\n }\n }\n }\n hoverBubble() {\n const container = this.container, mousePos = container.interactivity.mouse.position;\n if (mousePos === undefined) {\n return;\n }\n const distance = container.retina.bubbleModeDistance, query = container.particles.quadTree.queryCircle(mousePos, distance);\n for (const particle of query) {\n particle.bubble.inRange = true;\n const pos = particle.getPosition(), pointDistance = (0, Utils_1.getDistance)(pos, mousePos), ratio = 1 - pointDistance / distance;\n if (pointDistance <= distance) {\n if (ratio >= 0 && container.interactivity.status === Utils_1.Constants.mouseMoveEvent) {\n this.hoverBubbleSize(particle, ratio);\n this.hoverBubbleOpacity(particle, ratio);\n this.hoverBubbleColor(particle, ratio);\n }\n }\n else {\n this.reset(particle);\n }\n if (container.interactivity.status === Utils_1.Constants.mouseLeaveEvent) {\n this.reset(particle);\n }\n }\n }\n hoverBubbleSize(particle, ratio, divBubble) {\n const container = this.container, modeSize = (divBubble === null || divBubble === void 0 ? void 0 : divBubble.size) ? divBubble.size * container.retina.pixelRatio : container.retina.bubbleModeSize;\n if (modeSize === undefined) {\n return;\n }\n const optSize = (0, Utils_1.getRangeMax)(particle.options.size.value) * container.retina.pixelRatio;\n const pSize = particle.size.value;\n const size = calculateBubbleValue(pSize, modeSize, optSize, ratio);\n if (size !== undefined) {\n particle.bubble.radius = size;\n }\n }\n hoverBubbleOpacity(particle, ratio, divBubble) {\n var _a, _b, _c;\n const container = this.container, options = container.actualOptions, modeOpacity = (_a = divBubble === null || divBubble === void 0 ? void 0 : divBubble.opacity) !== null && _a !== void 0 ? _a : options.interactivity.modes.bubble.opacity;\n if (!modeOpacity) {\n return;\n }\n const optOpacity = particle.options.opacity.value;\n const pOpacity = (_c = (_b = particle.opacity) === null || _b === void 0 ? void 0 : _b.value) !== null && _c !== void 0 ? _c : 1;\n const opacity = calculateBubbleValue(pOpacity, modeOpacity, (0, Utils_1.getRangeMax)(optOpacity), ratio);\n if (opacity !== undefined) {\n particle.bubble.opacity = opacity;\n }\n }\n hoverBubbleColor(particle, ratio, divBubble) {\n const options = this.container.actualOptions;\n const bubbleOptions = divBubble !== null && divBubble !== void 0 ? divBubble : options.interactivity.modes.bubble;\n if (!particle.bubble.finalColor) {\n const modeColor = bubbleOptions.color;\n if (!modeColor) {\n return;\n }\n const bubbleColor = modeColor instanceof Array ? (0, Utils_1.itemFromArray)(modeColor) : modeColor;\n particle.bubble.finalColor = (0, Utils_1.colorToHsl)(bubbleColor);\n }\n if (!particle.bubble.finalColor) {\n return;\n }\n if (bubbleOptions.mix) {\n particle.bubble.color = undefined;\n const pColor = particle.getFillColor();\n particle.bubble.color = pColor\n ? (0, Utils_1.rgbToHsl)((0, Utils_1.colorMix)(pColor, particle.bubble.finalColor, 1 - ratio, ratio))\n : particle.bubble.finalColor;\n }\n else {\n particle.bubble.color = particle.bubble.finalColor;\n }\n }\n}\nexports.Bubbler = Bubbler;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL0V4dGVybmFsL0J1YmJsZS9CdWJibGVyLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGVBQWU7QUFDZixnQkFBZ0IsbUJBQU8sQ0FBQyxpRUFBZ0I7QUFDeEMsZ0JBQWdCLG1CQUFPLENBQUMsaUVBQWdCO0FBQ3hDLGlDQUFpQyxtQkFBTyxDQUFDLHVHQUFzQztBQUMvRSw0QkFBNEIsbUJBQU8sQ0FBQyx5R0FBcUI7QUFDekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0ludGVyYWN0aW9ucy9FeHRlcm5hbC9CdWJibGUvQnViYmxlci5qcz8xMzhkIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5CdWJibGVyID0gdm9pZCAwO1xuY29uc3QgVXRpbHNfMSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9VdGlsc1wiKTtcbmNvbnN0IEVudW1zXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vRW51bXNcIik7XG5jb25zdCBFeHRlcm5hbEludGVyYWN0b3JCYXNlXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vQ29yZS9FeHRlcm5hbEludGVyYWN0b3JCYXNlXCIpO1xuY29uc3QgUHJvY2Vzc0J1YmJsZVR5cGVfMSA9IHJlcXVpcmUoXCIuL1Byb2Nlc3NCdWJibGVUeXBlXCIpO1xuZnVuY3Rpb24gY2FsY3VsYXRlQnViYmxlVmFsdWUocGFydGljbGVWYWx1ZSwgbW9kZVZhbHVlLCBvcHRpb25zVmFsdWUsIHJhdGlvKSB7XG4gICAgaWYgKG1vZGVWYWx1ZSA+PSBvcHRpb25zVmFsdWUpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBwYXJ0aWNsZVZhbHVlICsgKG1vZGVWYWx1ZSAtIG9wdGlvbnNWYWx1ZSkgKiByYXRpbztcbiAgICAgICAgcmV0dXJuICgwLCBVdGlsc18xLmNsYW1wKSh2YWx1ZSwgcGFydGljbGVWYWx1ZSwgbW9kZVZhbHVlKTtcbiAgICB9XG4gICAgZWxzZSBpZiAobW9kZVZhbHVlIDwgb3B0aW9uc1ZhbHVlKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gcGFydGljbGVWYWx1ZSAtIChvcHRpb25zVmFsdWUgLSBtb2RlVmFsdWUpICogcmF0aW87XG4gICAgICAgIHJldHVybiAoMCwgVXRpbHNfMS5jbGFtcCkodmFsdWUsIG1vZGVWYWx1ZSwgcGFydGljbGVWYWx1ZSk7XG4gICAgfVxufVxuY2xhc3MgQnViYmxlciBleHRlbmRzIEV4dGVybmFsSW50ZXJhY3RvckJhc2VfMS5FeHRlcm5hbEludGVyYWN0b3JCYXNlIHtcbiAgICBjb25zdHJ1Y3Rvcihjb250YWluZXIpIHtcbiAgICAgICAgc3VwZXIoY29udGFpbmVyKTtcbiAgICB9XG4gICAgaXNFbmFibGVkKCkge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lciwgb3B0aW9ucyA9IGNvbnRhaW5lci5hY3R1YWxPcHRpb25zLCBtb3VzZSA9IGNvbnRhaW5lci5pbnRlcmFjdGl2aXR5Lm1vdXNlLCBldmVudHMgPSBvcHRpb25zLmludGVyYWN0aXZpdHkuZXZlbnRzLCBkaXZzID0gZXZlbnRzLm9uRGl2LCBkaXZCdWJibGUgPSAoMCwgVXRpbHNfMS5pc0Rpdk1vZGVFbmFibGVkKShFbnVtc18xLkRpdk1vZGUuYnViYmxlLCBkaXZzKTtcbiAgICAgICAgaWYgKCEoZGl2QnViYmxlIHx8IChldmVudHMub25Ib3Zlci5lbmFibGUgJiYgbW91c2UucG9zaXRpb24pIHx8IChldmVudHMub25DbGljay5lbmFibGUgJiYgbW91c2UuY2xpY2tQb3NpdGlvbikpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaG92ZXJNb2RlID0gZXZlbnRzLm9uSG92ZXIubW9kZTtcbiAgICAgICAgY29uc3QgY2xpY2tNb2RlID0gZXZlbnRzLm9uQ2xpY2subW9kZTtcbiAgICAgICAgcmV0dXJuICgwLCBVdGlsc18xLmlzSW5BcnJheSkoRW51bXNfMS5Ib3Zlck1vZGUuYnViYmxlLCBob3Zlck1vZGUpIHx8ICgwLCBVdGlsc18xLmlzSW5BcnJheSkoRW51bXNfMS5DbGlja01vZGUuYnViYmxlLCBjbGlja01vZGUpIHx8IGRpdkJ1YmJsZTtcbiAgICB9XG4gICAgcmVzZXQocGFydGljbGUsIGZvcmNlKSB7XG4gICAgICAgIGlmICghKCFwYXJ0aWNsZS5idWJibGUuaW5SYW5nZSB8fCBmb3JjZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBkZWxldGUgcGFydGljbGUuYnViYmxlLmRpdjtcbiAgICAgICAgZGVsZXRlIHBhcnRpY2xlLmJ1YmJsZS5vcGFjaXR5O1xuICAgICAgICBkZWxldGUgcGFydGljbGUuYnViYmxlLnJhZGl1cztcbiAgICAgICAgZGVsZXRlIHBhcnRpY2xlLmJ1YmJsZS5jb2xvcjtcbiAgICB9XG4gICAgaW50ZXJhY3QoKSB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmNvbnRhaW5lci5hY3R1YWxPcHRpb25zLCBldmVudHMgPSBvcHRpb25zLmludGVyYWN0aXZpdHkuZXZlbnRzLCBvbkhvdmVyID0gZXZlbnRzLm9uSG92ZXIsIG9uQ2xpY2sgPSBldmVudHMub25DbGljaywgaG92ZXJFbmFibGVkID0gb25Ib3Zlci5lbmFibGUsIGhvdmVyTW9kZSA9IG9uSG92ZXIubW9kZSwgY2xpY2tFbmFibGVkID0gb25DbGljay5lbmFibGUsIGNsaWNrTW9kZSA9IG9uQ2xpY2subW9kZSwgZGl2cyA9IGV2ZW50cy5vbkRpdjtcbiAgICAgICAgaWYgKGhvdmVyRW5hYmxlZCAmJiAoMCwgVXRpbHNfMS5pc0luQXJyYXkpKEVudW1zXzEuSG92ZXJNb2RlLmJ1YmJsZSwgaG92ZXJNb2RlKSkge1xuICAgICAgICAgICAgdGhpcy5ob3ZlckJ1YmJsZSgpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGNsaWNrRW5hYmxlZCAmJiAoMCwgVXRpbHNfMS5pc0luQXJyYXkpKEVudW1zXzEuQ2xpY2tNb2RlLmJ1YmJsZSwgY2xpY2tNb2RlKSkge1xuICAgICAgICAgICAgdGhpcy5jbGlja0J1YmJsZSgpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgKDAsIFV0aWxzXzEuZGl2TW9kZUV4ZWN1dGUpKEVudW1zXzEuRGl2TW9kZS5idWJibGUsIGRpdnMsIChzZWxlY3RvciwgZGl2KSA9PiB0aGlzLnNpbmdsZVNlbGVjdG9ySG92ZXIoc2VsZWN0b3IsIGRpdikpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHNpbmdsZVNlbGVjdG9ySG92ZXIoc2VsZWN0b3IsIGRpdikge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lciwgc2VsZWN0b3JzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7XG4gICAgICAgIGlmICghc2VsZWN0b3JzLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHNlbGVjdG9ycy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBlbGVtID0gaXRlbSwgcHhSYXRpbyA9IGNvbnRhaW5lci5yZXRpbmEucGl4ZWxSYXRpbywgcG9zID0ge1xuICAgICAgICAgICAgICAgIHg6IChlbGVtLm9mZnNldExlZnQgKyBlbGVtLm9mZnNldFdpZHRoIC8gMikgKiBweFJhdGlvLFxuICAgICAgICAgICAgICAgIHk6IChlbGVtLm9mZnNldFRvcCArIGVsZW0ub2Zmc2V0SGVpZ2h0IC8gMikgKiBweFJhdGlvLFxuICAgICAgICAgICAgfSwgcmVwdWxzZVJhZGl1cyA9IChlbGVtLm9mZnNldFdpZHRoIC8gMikgKiBweFJhdGlvLCBhcmVhID0gZGl2LnR5cGUgPT09IEVudW1zXzEuRGl2VHlwZS5jaXJjbGVcbiAgICAgICAgICAgICAgICA/IG5ldyBVdGlsc18xLkNpcmNsZShwb3MueCwgcG9zLnksIHJlcHVsc2VSYWRpdXMpXG4gICAgICAgICAgICAgICAgOiBuZXcgVXRpbHNfMS5SZWN0YW5nbGUoZWxlbS5vZmZzZXRMZWZ0ICogcHhSYXRpbywgZWxlbS5vZmZzZXRUb3AgKiBweFJhdGlvLCBlbGVtLm9mZnNldFdpZHRoICogcHhSYXRpbywgZWxlbS5vZmZzZXRIZWlnaHQgKiBweFJhdGlvKSwgcXVlcnkgPSBjb250YWluZXIucGFydGljbGVzLnF1YWRUcmVlLnF1ZXJ5KGFyZWEpO1xuICAgICAgICAgICAgZm9yIChjb25zdCBwYXJ0aWNsZSBvZiBxdWVyeSkge1xuICAgICAgICAgICAgICAgIGlmICghYXJlYS5jb250YWlucyhwYXJ0aWNsZS5nZXRQb3NpdGlvbigpKSkge1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcGFydGljbGUuYnViYmxlLmluUmFuZ2UgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRpdnMgPSBjb250YWluZXIuYWN0dWFsT3B0aW9ucy5pbnRlcmFjdGl2aXR5Lm1vZGVzLmJ1YmJsZS5kaXZzO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRpdkJ1YmJsZSA9ICgwLCBVdGlsc18xLmRpdk1vZGUpKGRpdnMsIGVsZW0pO1xuICAgICAgICAgICAgICAgIGlmICghcGFydGljbGUuYnViYmxlLmRpdiB8fCBwYXJ0aWNsZS5idWJibGUuZGl2ICE9PSBlbGVtKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzZXQocGFydGljbGUsIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICBwYXJ0aWNsZS5idWJibGUuZGl2ID0gZWxlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5ob3ZlckJ1YmJsZVNpemUocGFydGljbGUsIDEsIGRpdkJ1YmJsZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5ob3ZlckJ1YmJsZU9wYWNpdHkocGFydGljbGUsIDEsIGRpdkJ1YmJsZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5ob3ZlckJ1YmJsZUNvbG9yKHBhcnRpY2xlLCAxLCBkaXZCdWJibGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcHJvY2VzcyhwYXJ0aWNsZSwgZGlzdE1vdXNlLCB0aW1lU3BlbnQsIGRhdGEpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXIsIGJ1YmJsZVBhcmFtID0gZGF0YS5idWJibGVPYmoub3B0VmFsdWU7XG4gICAgICAgIGlmIChidWJibGVQYXJhbSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IGNvbnRhaW5lci5hY3R1YWxPcHRpb25zLCBidWJibGVEdXJhdGlvbiA9IG9wdGlvbnMuaW50ZXJhY3Rpdml0eS5tb2Rlcy5idWJibGUuZHVyYXRpb24sIGJ1YmJsZURpc3RhbmNlID0gY29udGFpbmVyLnJldGluYS5idWJibGVNb2RlRGlzdGFuY2UsIHBhcnRpY2xlc1BhcmFtID0gZGF0YS5wYXJ0aWNsZXNPYmoub3B0VmFsdWUsIHBPYmpCdWJibGUgPSBkYXRhLmJ1YmJsZU9iai52YWx1ZSwgcE9iaiA9IGRhdGEucGFydGljbGVzT2JqLnZhbHVlIHx8IDAsIHR5cGUgPSBkYXRhLnR5cGU7XG4gICAgICAgIGlmIChidWJibGVQYXJhbSA9PT0gcGFydGljbGVzUGFyYW0pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWNvbnRhaW5lci5idWJibGUuZHVyYXRpb25FbmQpIHtcbiAgICAgICAgICAgIGlmIChkaXN0TW91c2UgPD0gYnViYmxlRGlzdGFuY2UpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBvYmogPSBwT2JqQnViYmxlICE9PSBudWxsICYmIHBPYmpCdWJibGUgIT09IHZvaWQgMCA/IHBPYmpCdWJibGUgOiBwT2JqO1xuICAgICAgICAgICAgICAgIGlmIChvYmogIT09IGJ1YmJsZVBhcmFtKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gcE9iaiAtICh0aW1lU3BlbnQgKiAocE9iaiAtIGJ1YmJsZVBhcmFtKSkgLyBidWJibGVEdXJhdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGUgPT09IFByb2Nlc3NCdWJibGVUeXBlXzEuUHJvY2Vzc0J1YmJsZVR5cGUuc2l6ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFydGljbGUuYnViYmxlLnJhZGl1cyA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlID09PSBQcm9jZXNzQnViYmxlVHlwZV8xLlByb2Nlc3NCdWJibGVUeXBlLm9wYWNpdHkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcnRpY2xlLmJ1YmJsZS5vcGFjaXR5ID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZSA9PT0gUHJvY2Vzc0J1YmJsZVR5cGVfMS5Qcm9jZXNzQnViYmxlVHlwZS5zaXplKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBwYXJ0aWNsZS5idWJibGUucmFkaXVzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodHlwZSA9PT0gUHJvY2Vzc0J1YmJsZVR5cGVfMS5Qcm9jZXNzQnViYmxlVHlwZS5vcGFjaXR5KSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBwYXJ0aWNsZS5idWJibGUub3BhY2l0eTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAocE9iakJ1YmJsZSkge1xuICAgICAgICAgICAgaWYgKHR5cGUgPT09IFByb2Nlc3NCdWJibGVUeXBlXzEuUHJvY2Vzc0J1YmJsZVR5cGUuc2l6ZSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBwYXJ0aWNsZS5idWJibGUucmFkaXVzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHR5cGUgPT09IFByb2Nlc3NCdWJibGVUeXBlXzEuUHJvY2Vzc0J1YmJsZVR5cGUub3BhY2l0eSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBwYXJ0aWNsZS5idWJibGUub3BhY2l0eTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBjbGlja0J1YmJsZSgpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXIsIG9wdGlvbnMgPSBjb250YWluZXIuYWN0dWFsT3B0aW9ucywgbW91c2VDbGlja1BvcyA9IGNvbnRhaW5lci5pbnRlcmFjdGl2aXR5Lm1vdXNlLmNsaWNrUG9zaXRpb247XG4gICAgICAgIGlmICghbW91c2VDbGlja1Bvcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRpc3RhbmNlID0gY29udGFpbmVyLnJldGluYS5idWJibGVNb2RlRGlzdGFuY2UsIHF1ZXJ5ID0gY29udGFpbmVyLnBhcnRpY2xlcy5xdWFkVHJlZS5xdWVyeUNpcmNsZShtb3VzZUNsaWNrUG9zLCBkaXN0YW5jZSk7XG4gICAgICAgIGZvciAoY29uc3QgcGFydGljbGUgb2YgcXVlcnkpIHtcbiAgICAgICAgICAgIGlmICghY29udGFpbmVyLmJ1YmJsZS5jbGlja2luZykge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGFydGljbGUuYnViYmxlLmluUmFuZ2UgPSAhY29udGFpbmVyLmJ1YmJsZS5kdXJhdGlvbkVuZDtcbiAgICAgICAgICAgIGNvbnN0IHBvcyA9IHBhcnRpY2xlLmdldFBvc2l0aW9uKCksIGRpc3RNb3VzZSA9ICgwLCBVdGlsc18xLmdldERpc3RhbmNlKShwb3MsIG1vdXNlQ2xpY2tQb3MpLCB0aW1lU3BlbnQgPSAobmV3IERhdGUoKS5nZXRUaW1lKCkgLSAoY29udGFpbmVyLmludGVyYWN0aXZpdHkubW91c2UuY2xpY2tUaW1lIHx8IDApKSAvIDEwMDA7XG4gICAgICAgICAgICBpZiAodGltZVNwZW50ID4gb3B0aW9ucy5pbnRlcmFjdGl2aXR5Lm1vZGVzLmJ1YmJsZS5kdXJhdGlvbikge1xuICAgICAgICAgICAgICAgIGNvbnRhaW5lci5idWJibGUuZHVyYXRpb25FbmQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRpbWVTcGVudCA+IG9wdGlvbnMuaW50ZXJhY3Rpdml0eS5tb2Rlcy5idWJibGUuZHVyYXRpb24gKiAyKSB7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLmJ1YmJsZS5jbGlja2luZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGNvbnRhaW5lci5idWJibGUuZHVyYXRpb25FbmQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHNpemVEYXRhID0ge1xuICAgICAgICAgICAgICAgIGJ1YmJsZU9iajoge1xuICAgICAgICAgICAgICAgICAgICBvcHRWYWx1ZTogY29udGFpbmVyLnJldGluYS5idWJibGVNb2RlU2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHBhcnRpY2xlLmJ1YmJsZS5yYWRpdXMsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBwYXJ0aWNsZXNPYmo6IHtcbiAgICAgICAgICAgICAgICAgICAgb3B0VmFsdWU6ICgwLCBVdGlsc18xLmdldFJhbmdlTWF4KShwYXJ0aWNsZS5vcHRpb25zLnNpemUudmFsdWUpICogY29udGFpbmVyLnJldGluYS5waXhlbFJhdGlvLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcGFydGljbGUuc2l6ZS52YWx1ZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHR5cGU6IFByb2Nlc3NCdWJibGVUeXBlXzEuUHJvY2Vzc0J1YmJsZVR5cGUuc2l6ZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLnByb2Nlc3MocGFydGljbGUsIGRpc3RNb3VzZSwgdGltZVNwZW50LCBzaXplRGF0YSk7XG4gICAgICAgICAgICBjb25zdCBvcGFjaXR5RGF0YSA9IHtcbiAgICAgICAgICAgICAgICBidWJibGVPYmo6IHtcbiAgICAgICAgICAgICAgICAgICAgb3B0VmFsdWU6IG9wdGlvbnMuaW50ZXJhY3Rpdml0eS5tb2Rlcy5idWJibGUub3BhY2l0eSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHBhcnRpY2xlLmJ1YmJsZS5vcGFjaXR5LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcGFydGljbGVzT2JqOiB7XG4gICAgICAgICAgICAgICAgICAgIG9wdFZhbHVlOiAoMCwgVXRpbHNfMS5nZXRSYW5nZU1heCkocGFydGljbGUub3B0aW9ucy5vcGFjaXR5LnZhbHVlKSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IChfYiA9IChfYSA9IHBhcnRpY2xlLm9wYWNpdHkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS52YWx1ZSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogMSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHR5cGU6IFByb2Nlc3NCdWJibGVUeXBlXzEuUHJvY2Vzc0J1YmJsZVR5cGUub3BhY2l0eSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLnByb2Nlc3MocGFydGljbGUsIGRpc3RNb3VzZSwgdGltZVNwZW50LCBvcGFjaXR5RGF0YSk7XG4gICAgICAgICAgICBpZiAoIWNvbnRhaW5lci5idWJibGUuZHVyYXRpb25FbmQpIHtcbiAgICAgICAgICAgICAgICBpZiAoZGlzdE1vdXNlIDw9IGNvbnRhaW5lci5yZXRpbmEuYnViYmxlTW9kZURpc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaG92ZXJCdWJibGVDb2xvcihwYXJ0aWNsZSwgZGlzdE1vdXNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBwYXJ0aWNsZS5idWJibGUuY29sb3I7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIHBhcnRpY2xlLmJ1YmJsZS5jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBob3ZlckJ1YmJsZSgpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXIsIG1vdXNlUG9zID0gY29udGFpbmVyLmludGVyYWN0aXZpdHkubW91c2UucG9zaXRpb247XG4gICAgICAgIGlmIChtb3VzZVBvcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGlzdGFuY2UgPSBjb250YWluZXIucmV0aW5hLmJ1YmJsZU1vZGVEaXN0YW5jZSwgcXVlcnkgPSBjb250YWluZXIucGFydGljbGVzLnF1YWRUcmVlLnF1ZXJ5Q2lyY2xlKG1vdXNlUG9zLCBkaXN0YW5jZSk7XG4gICAgICAgIGZvciAoY29uc3QgcGFydGljbGUgb2YgcXVlcnkpIHtcbiAgICAgICAgICAgIHBhcnRpY2xlLmJ1YmJsZS5pblJhbmdlID0gdHJ1ZTtcbiAgICAgICAgICAgIGNvbnN0IHBvcyA9IHBhcnRpY2xlLmdldFBvc2l0aW9uKCksIHBvaW50RGlzdGFuY2UgPSAoMCwgVXRpbHNfMS5nZXREaXN0YW5jZSkocG9zLCBtb3VzZVBvcyksIHJhdGlvID0gMSAtIHBvaW50RGlzdGFuY2UgLyBkaXN0YW5jZTtcbiAgICAgICAgICAgIGlmIChwb2ludERpc3RhbmNlIDw9IGRpc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgaWYgKHJhdGlvID49IDAgJiYgY29udGFpbmVyLmludGVyYWN0aXZpdHkuc3RhdHVzID09PSBVdGlsc18xLkNvbnN0YW50cy5tb3VzZU1vdmVFdmVudCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhvdmVyQnViYmxlU2l6ZShwYXJ0aWNsZSwgcmF0aW8pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhvdmVyQnViYmxlT3BhY2l0eShwYXJ0aWNsZSwgcmF0aW8pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhvdmVyQnViYmxlQ29sb3IocGFydGljbGUsIHJhdGlvKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0KHBhcnRpY2xlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjb250YWluZXIuaW50ZXJhY3Rpdml0eS5zdGF0dXMgPT09IFV0aWxzXzEuQ29uc3RhbnRzLm1vdXNlTGVhdmVFdmVudCkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXQocGFydGljbGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGhvdmVyQnViYmxlU2l6ZShwYXJ0aWNsZSwgcmF0aW8sIGRpdkJ1YmJsZSkge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lciwgbW9kZVNpemUgPSAoZGl2QnViYmxlID09PSBudWxsIHx8IGRpdkJ1YmJsZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZGl2QnViYmxlLnNpemUpID8gZGl2QnViYmxlLnNpemUgKiBjb250YWluZXIucmV0aW5hLnBpeGVsUmF0aW8gOiBjb250YWluZXIucmV0aW5hLmJ1YmJsZU1vZGVTaXplO1xuICAgICAgICBpZiAobW9kZVNpemUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG9wdFNpemUgPSAoMCwgVXRpbHNfMS5nZXRSYW5nZU1heCkocGFydGljbGUub3B0aW9ucy5zaXplLnZhbHVlKSAqIGNvbnRhaW5lci5yZXRpbmEucGl4ZWxSYXRpbztcbiAgICAgICAgY29uc3QgcFNpemUgPSBwYXJ0aWNsZS5zaXplLnZhbHVlO1xuICAgICAgICBjb25zdCBzaXplID0gY2FsY3VsYXRlQnViYmxlVmFsdWUocFNpemUsIG1vZGVTaXplLCBvcHRTaXplLCByYXRpbyk7XG4gICAgICAgIGlmIChzaXplICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHBhcnRpY2xlLmJ1YmJsZS5yYWRpdXMgPSBzaXplO1xuICAgICAgICB9XG4gICAgfVxuICAgIGhvdmVyQnViYmxlT3BhY2l0eShwYXJ0aWNsZSwgcmF0aW8sIGRpdkJ1YmJsZSkge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXIsIG9wdGlvbnMgPSBjb250YWluZXIuYWN0dWFsT3B0aW9ucywgbW9kZU9wYWNpdHkgPSAoX2EgPSBkaXZCdWJibGUgPT09IG51bGwgfHwgZGl2QnViYmxlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkaXZCdWJibGUub3BhY2l0eSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogb3B0aW9ucy5pbnRlcmFjdGl2aXR5Lm1vZGVzLmJ1YmJsZS5vcGFjaXR5O1xuICAgICAgICBpZiAoIW1vZGVPcGFjaXR5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3B0T3BhY2l0eSA9IHBhcnRpY2xlLm9wdGlvbnMub3BhY2l0eS52YWx1ZTtcbiAgICAgICAgY29uc3QgcE9wYWNpdHkgPSAoX2MgPSAoX2IgPSBwYXJ0aWNsZS5vcGFjaXR5KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IudmFsdWUpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IDE7XG4gICAgICAgIGNvbnN0IG9wYWNpdHkgPSBjYWxjdWxhdGVCdWJibGVWYWx1ZShwT3BhY2l0eSwgbW9kZU9wYWNpdHksICgwLCBVdGlsc18xLmdldFJhbmdlTWF4KShvcHRPcGFjaXR5KSwgcmF0aW8pO1xuICAgICAgICBpZiAob3BhY2l0eSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBwYXJ0aWNsZS5idWJibGUub3BhY2l0eSA9IG9wYWNpdHk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaG92ZXJCdWJibGVDb2xvcihwYXJ0aWNsZSwgcmF0aW8sIGRpdkJ1YmJsZSkge1xuICAgICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5jb250YWluZXIuYWN0dWFsT3B0aW9ucztcbiAgICAgICAgY29uc3QgYnViYmxlT3B0aW9ucyA9IGRpdkJ1YmJsZSAhPT0gbnVsbCAmJiBkaXZCdWJibGUgIT09IHZvaWQgMCA/IGRpdkJ1YmJsZSA6IG9wdGlvbnMuaW50ZXJhY3Rpdml0eS5tb2Rlcy5idWJibGU7XG4gICAgICAgIGlmICghcGFydGljbGUuYnViYmxlLmZpbmFsQ29sb3IpIHtcbiAgICAgICAgICAgIGNvbnN0IG1vZGVDb2xvciA9IGJ1YmJsZU9wdGlvbnMuY29sb3I7XG4gICAgICAgICAgICBpZiAoIW1vZGVDb2xvcikge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGJ1YmJsZUNvbG9yID0gbW9kZUNvbG9yIGluc3RhbmNlb2YgQXJyYXkgPyAoMCwgVXRpbHNfMS5pdGVtRnJvbUFycmF5KShtb2RlQ29sb3IpIDogbW9kZUNvbG9yO1xuICAgICAgICAgICAgcGFydGljbGUuYnViYmxlLmZpbmFsQ29sb3IgPSAoMCwgVXRpbHNfMS5jb2xvclRvSHNsKShidWJibGVDb2xvcik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFwYXJ0aWNsZS5idWJibGUuZmluYWxDb2xvcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChidWJibGVPcHRpb25zLm1peCkge1xuICAgICAgICAgICAgcGFydGljbGUuYnViYmxlLmNvbG9yID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3QgcENvbG9yID0gcGFydGljbGUuZ2V0RmlsbENvbG9yKCk7XG4gICAgICAgICAgICBwYXJ0aWNsZS5idWJibGUuY29sb3IgPSBwQ29sb3JcbiAgICAgICAgICAgICAgICA/ICgwLCBVdGlsc18xLnJnYlRvSHNsKSgoMCwgVXRpbHNfMS5jb2xvck1peCkocENvbG9yLCBwYXJ0aWNsZS5idWJibGUuZmluYWxDb2xvciwgMSAtIHJhdGlvLCByYXRpbykpXG4gICAgICAgICAgICAgICAgOiBwYXJ0aWNsZS5idWJibGUuZmluYWxDb2xvcjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHBhcnRpY2xlLmJ1YmJsZS5jb2xvciA9IHBhcnRpY2xlLmJ1YmJsZS5maW5hbENvbG9yO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5CdWJibGVyID0gQnViYmxlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/External/Bubble/Bubbler.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/External/Bubble/ProcessBubbleType.js": +/*!************************************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/External/Bubble/ProcessBubbleType.js ***! + \************************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ProcessBubbleType = void 0;\nvar ProcessBubbleType;\n(function (ProcessBubbleType) {\n ProcessBubbleType[\"color\"] = \"color\";\n ProcessBubbleType[\"opacity\"] = \"opacity\";\n ProcessBubbleType[\"size\"] = \"size\";\n})(ProcessBubbleType = exports.ProcessBubbleType || (exports.ProcessBubbleType = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL0V4dGVybmFsL0J1YmJsZS9Qcm9jZXNzQnViYmxlVHlwZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCx5QkFBeUI7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsb0RBQW9ELHlCQUF5QixLQUFLIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9JbnRlcmFjdGlvbnMvRXh0ZXJuYWwvQnViYmxlL1Byb2Nlc3NCdWJibGVUeXBlLmpzPzYyZDkiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlByb2Nlc3NCdWJibGVUeXBlID0gdm9pZCAwO1xudmFyIFByb2Nlc3NCdWJibGVUeXBlO1xuKGZ1bmN0aW9uIChQcm9jZXNzQnViYmxlVHlwZSkge1xuICAgIFByb2Nlc3NCdWJibGVUeXBlW1wiY29sb3JcIl0gPSBcImNvbG9yXCI7XG4gICAgUHJvY2Vzc0J1YmJsZVR5cGVbXCJvcGFjaXR5XCJdID0gXCJvcGFjaXR5XCI7XG4gICAgUHJvY2Vzc0J1YmJsZVR5cGVbXCJzaXplXCJdID0gXCJzaXplXCI7XG59KShQcm9jZXNzQnViYmxlVHlwZSA9IGV4cG9ydHMuUHJvY2Vzc0J1YmJsZVR5cGUgfHwgKGV4cG9ydHMuUHJvY2Vzc0J1YmJsZVR5cGUgPSB7fSkpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/External/Bubble/ProcessBubbleType.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/External/Bubble/index.js": +/*!************************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/External/Bubble/index.js ***! + \************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadExternalBubbleInteraction = void 0;\nconst Bubbler_1 = __webpack_require__(/*! ./Bubbler */ \"./node_modules/tsparticles/Interactions/External/Bubble/Bubbler.js\");\nasync function loadExternalBubbleInteraction(tsParticles) {\n await tsParticles.addInteractor(\"externalBubble\", (container) => new Bubbler_1.Bubbler(container));\n}\nexports.loadExternalBubbleInteraction = loadExternalBubbleInteraction;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL0V4dGVybmFsL0J1YmJsZS9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxxQ0FBcUM7QUFDckMsa0JBQWtCLG1CQUFPLENBQUMscUZBQVc7QUFDckM7QUFDQTtBQUNBO0FBQ0EscUNBQXFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9JbnRlcmFjdGlvbnMvRXh0ZXJuYWwvQnViYmxlL2luZGV4LmpzPzVmOWIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmxvYWRFeHRlcm5hbEJ1YmJsZUludGVyYWN0aW9uID0gdm9pZCAwO1xuY29uc3QgQnViYmxlcl8xID0gcmVxdWlyZShcIi4vQnViYmxlclwiKTtcbmFzeW5jIGZ1bmN0aW9uIGxvYWRFeHRlcm5hbEJ1YmJsZUludGVyYWN0aW9uKHRzUGFydGljbGVzKSB7XG4gICAgYXdhaXQgdHNQYXJ0aWNsZXMuYWRkSW50ZXJhY3RvcihcImV4dGVybmFsQnViYmxlXCIsIChjb250YWluZXIpID0+IG5ldyBCdWJibGVyXzEuQnViYmxlcihjb250YWluZXIpKTtcbn1cbmV4cG9ydHMubG9hZEV4dGVybmFsQnViYmxlSW50ZXJhY3Rpb24gPSBsb2FkRXh0ZXJuYWxCdWJibGVJbnRlcmFjdGlvbjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/External/Bubble/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/External/Connect/Connector.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/External/Connect/Connector.js ***! + \*****************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Connector = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Enums_1 = __webpack_require__(/*! ../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst ExternalInteractorBase_1 = __webpack_require__(/*! ../../../Core/ExternalInteractorBase */ \"./node_modules/tsparticles/Core/ExternalInteractorBase.js\");\nclass Connector extends ExternalInteractorBase_1.ExternalInteractorBase {\n constructor(container) {\n super(container);\n }\n isEnabled() {\n const container = this.container, mouse = container.interactivity.mouse, events = container.actualOptions.interactivity.events;\n if (!(events.onHover.enable && mouse.position)) {\n return false;\n }\n return (0, Utils_1.isInArray)(Enums_1.HoverMode.connect, events.onHover.mode);\n }\n reset() {\n }\n interact() {\n const container = this.container, options = container.actualOptions;\n if (options.interactivity.events.onHover.enable && container.interactivity.status === \"mousemove\") {\n const mousePos = container.interactivity.mouse.position;\n if (!mousePos) {\n return;\n }\n const distance = Math.abs(container.retina.connectModeRadius), query = container.particles.quadTree.queryCircle(mousePos, distance);\n let i = 0;\n for (const p1 of query) {\n const pos1 = p1.getPosition();\n for (const p2 of query.slice(i + 1)) {\n const pos2 = p2.getPosition(), distMax = Math.abs(container.retina.connectModeDistance), xDiff = Math.abs(pos1.x - pos2.x), yDiff = Math.abs(pos1.y - pos2.y);\n if (xDiff < distMax && yDiff < distMax) {\n container.canvas.drawConnectLine(p1, p2);\n }\n }\n ++i;\n }\n }\n }\n}\nexports.Connector = Connector;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL0V4dGVybmFsL0Nvbm5lY3QvQ29ubmVjdG9yLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGlCQUFpQjtBQUNqQixnQkFBZ0IsbUJBQU8sQ0FBQyxpRUFBZ0I7QUFDeEMsZ0JBQWdCLG1CQUFPLENBQUMsaUVBQWdCO0FBQ3hDLGlDQUFpQyxtQkFBTyxDQUFDLHVHQUFzQztBQUMvRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9JbnRlcmFjdGlvbnMvRXh0ZXJuYWwvQ29ubmVjdC9Db25uZWN0b3IuanM/MWIwMCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuQ29ubmVjdG9yID0gdm9pZCAwO1xuY29uc3QgVXRpbHNfMSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9VdGlsc1wiKTtcbmNvbnN0IEVudW1zXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vRW51bXNcIik7XG5jb25zdCBFeHRlcm5hbEludGVyYWN0b3JCYXNlXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vQ29yZS9FeHRlcm5hbEludGVyYWN0b3JCYXNlXCIpO1xuY2xhc3MgQ29ubmVjdG9yIGV4dGVuZHMgRXh0ZXJuYWxJbnRlcmFjdG9yQmFzZV8xLkV4dGVybmFsSW50ZXJhY3RvckJhc2Uge1xuICAgIGNvbnN0cnVjdG9yKGNvbnRhaW5lcikge1xuICAgICAgICBzdXBlcihjb250YWluZXIpO1xuICAgIH1cbiAgICBpc0VuYWJsZWQoKSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyLCBtb3VzZSA9IGNvbnRhaW5lci5pbnRlcmFjdGl2aXR5Lm1vdXNlLCBldmVudHMgPSBjb250YWluZXIuYWN0dWFsT3B0aW9ucy5pbnRlcmFjdGl2aXR5LmV2ZW50cztcbiAgICAgICAgaWYgKCEoZXZlbnRzLm9uSG92ZXIuZW5hYmxlICYmIG1vdXNlLnBvc2l0aW9uKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAoMCwgVXRpbHNfMS5pc0luQXJyYXkpKEVudW1zXzEuSG92ZXJNb2RlLmNvbm5lY3QsIGV2ZW50cy5vbkhvdmVyLm1vZGUpO1xuICAgIH1cbiAgICByZXNldCgpIHtcbiAgICB9XG4gICAgaW50ZXJhY3QoKSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyLCBvcHRpb25zID0gY29udGFpbmVyLmFjdHVhbE9wdGlvbnM7XG4gICAgICAgIGlmIChvcHRpb25zLmludGVyYWN0aXZpdHkuZXZlbnRzLm9uSG92ZXIuZW5hYmxlICYmIGNvbnRhaW5lci5pbnRlcmFjdGl2aXR5LnN0YXR1cyA9PT0gXCJtb3VzZW1vdmVcIikge1xuICAgICAgICAgICAgY29uc3QgbW91c2VQb3MgPSBjb250YWluZXIuaW50ZXJhY3Rpdml0eS5tb3VzZS5wb3NpdGlvbjtcbiAgICAgICAgICAgIGlmICghbW91c2VQb3MpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBkaXN0YW5jZSA9IE1hdGguYWJzKGNvbnRhaW5lci5yZXRpbmEuY29ubmVjdE1vZGVSYWRpdXMpLCBxdWVyeSA9IGNvbnRhaW5lci5wYXJ0aWNsZXMucXVhZFRyZWUucXVlcnlDaXJjbGUobW91c2VQb3MsIGRpc3RhbmNlKTtcbiAgICAgICAgICAgIGxldCBpID0gMDtcbiAgICAgICAgICAgIGZvciAoY29uc3QgcDEgb2YgcXVlcnkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwb3MxID0gcDEuZ2V0UG9zaXRpb24oKTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHAyIG9mIHF1ZXJ5LnNsaWNlKGkgKyAxKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwb3MyID0gcDIuZ2V0UG9zaXRpb24oKSwgZGlzdE1heCA9IE1hdGguYWJzKGNvbnRhaW5lci5yZXRpbmEuY29ubmVjdE1vZGVEaXN0YW5jZSksIHhEaWZmID0gTWF0aC5hYnMocG9zMS54IC0gcG9zMi54KSwgeURpZmYgPSBNYXRoLmFicyhwb3MxLnkgLSBwb3MyLnkpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoeERpZmYgPCBkaXN0TWF4ICYmIHlEaWZmIDwgZGlzdE1heCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyLmNhbnZhcy5kcmF3Q29ubmVjdExpbmUocDEsIHAyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICArK2k7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkNvbm5lY3RvciA9IENvbm5lY3RvcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/External/Connect/Connector.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/External/Connect/index.js": +/*!*************************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/External/Connect/index.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadExternalConnectInteraction = void 0;\nconst Connector_1 = __webpack_require__(/*! ./Connector */ \"./node_modules/tsparticles/Interactions/External/Connect/Connector.js\");\nasync function loadExternalConnectInteraction(tsParticles) {\n await tsParticles.addInteractor(\"externalConnect\", (container) => new Connector_1.Connector(container));\n}\nexports.loadExternalConnectInteraction = loadExternalConnectInteraction;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL0V4dGVybmFsL0Nvbm5lY3QvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsc0NBQXNDO0FBQ3RDLG9CQUFvQixtQkFBTyxDQUFDLDBGQUFhO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBLHNDQUFzQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL0V4dGVybmFsL0Nvbm5lY3QvaW5kZXguanM/NWQxMSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMubG9hZEV4dGVybmFsQ29ubmVjdEludGVyYWN0aW9uID0gdm9pZCAwO1xuY29uc3QgQ29ubmVjdG9yXzEgPSByZXF1aXJlKFwiLi9Db25uZWN0b3JcIik7XG5hc3luYyBmdW5jdGlvbiBsb2FkRXh0ZXJuYWxDb25uZWN0SW50ZXJhY3Rpb24odHNQYXJ0aWNsZXMpIHtcbiAgICBhd2FpdCB0c1BhcnRpY2xlcy5hZGRJbnRlcmFjdG9yKFwiZXh0ZXJuYWxDb25uZWN0XCIsIChjb250YWluZXIpID0+IG5ldyBDb25uZWN0b3JfMS5Db25uZWN0b3IoY29udGFpbmVyKSk7XG59XG5leHBvcnRzLmxvYWRFeHRlcm5hbENvbm5lY3RJbnRlcmFjdGlvbiA9IGxvYWRFeHRlcm5hbENvbm5lY3RJbnRlcmFjdGlvbjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/External/Connect/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/External/Grab/Grabber.js": +/*!************************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/External/Grab/Grabber.js ***! + \************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Grabber = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Enums_1 = __webpack_require__(/*! ../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst ExternalInteractorBase_1 = __webpack_require__(/*! ../../../Core/ExternalInteractorBase */ \"./node_modules/tsparticles/Core/ExternalInteractorBase.js\");\nclass Grabber extends ExternalInteractorBase_1.ExternalInteractorBase {\n constructor(container) {\n super(container);\n }\n isEnabled() {\n const container = this.container, mouse = container.interactivity.mouse, events = container.actualOptions.interactivity.events;\n return events.onHover.enable && !!mouse.position && (0, Utils_1.isInArray)(Enums_1.HoverMode.grab, events.onHover.mode);\n }\n reset() {\n }\n interact() {\n var _a;\n const container = this.container, options = container.actualOptions, interactivity = options.interactivity;\n if (interactivity.events.onHover.enable && container.interactivity.status === Utils_1.Constants.mouseMoveEvent) {\n const mousePos = container.interactivity.mouse.position;\n if (!mousePos) {\n return;\n }\n const distance = container.retina.grabModeDistance, query = container.particles.quadTree.queryCircle(mousePos, distance);\n for (const particle of query) {\n const pos = particle.getPosition(), pointDistance = (0, Utils_1.getDistance)(pos, mousePos);\n if (pointDistance <= distance) {\n const grabLineOptions = interactivity.modes.grab.links, lineOpacity = grabLineOptions.opacity, opacityLine = lineOpacity - (pointDistance * lineOpacity) / distance;\n if (opacityLine <= 0) {\n continue;\n }\n const optColor = (_a = grabLineOptions.color) !== null && _a !== void 0 ? _a : particle.options.links.color;\n if (!container.particles.grabLineColor) {\n const linksOptions = options.interactivity.modes.grab.links;\n container.particles.grabLineColor = (0, Utils_1.getLinkRandomColor)(optColor, linksOptions.blink, linksOptions.consent);\n }\n const colorLine = (0, Utils_1.getLinkColor)(particle, undefined, container.particles.grabLineColor);\n if (!colorLine) {\n return;\n }\n container.canvas.drawGrabLine(particle, colorLine, opacityLine, mousePos);\n }\n }\n }\n }\n}\nexports.Grabber = Grabber;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL0V4dGVybmFsL0dyYWIvR3JhYmJlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxlQUFlO0FBQ2YsZ0JBQWdCLG1CQUFPLENBQUMsaUVBQWdCO0FBQ3hDLGdCQUFnQixtQkFBTyxDQUFDLGlFQUFnQjtBQUN4QyxpQ0FBaUMsbUJBQU8sQ0FBQyx1R0FBc0M7QUFDL0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0ludGVyYWN0aW9ucy9FeHRlcm5hbC9HcmFiL0dyYWJiZXIuanM/N2FhNSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuR3JhYmJlciA9IHZvaWQgMDtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vVXRpbHNcIik7XG5jb25zdCBFbnVtc18xID0gcmVxdWlyZShcIi4uLy4uLy4uL0VudW1zXCIpO1xuY29uc3QgRXh0ZXJuYWxJbnRlcmFjdG9yQmFzZV8xID0gcmVxdWlyZShcIi4uLy4uLy4uL0NvcmUvRXh0ZXJuYWxJbnRlcmFjdG9yQmFzZVwiKTtcbmNsYXNzIEdyYWJiZXIgZXh0ZW5kcyBFeHRlcm5hbEludGVyYWN0b3JCYXNlXzEuRXh0ZXJuYWxJbnRlcmFjdG9yQmFzZSB7XG4gICAgY29uc3RydWN0b3IoY29udGFpbmVyKSB7XG4gICAgICAgIHN1cGVyKGNvbnRhaW5lcik7XG4gICAgfVxuICAgIGlzRW5hYmxlZCgpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXIsIG1vdXNlID0gY29udGFpbmVyLmludGVyYWN0aXZpdHkubW91c2UsIGV2ZW50cyA9IGNvbnRhaW5lci5hY3R1YWxPcHRpb25zLmludGVyYWN0aXZpdHkuZXZlbnRzO1xuICAgICAgICByZXR1cm4gZXZlbnRzLm9uSG92ZXIuZW5hYmxlICYmICEhbW91c2UucG9zaXRpb24gJiYgKDAsIFV0aWxzXzEuaXNJbkFycmF5KShFbnVtc18xLkhvdmVyTW9kZS5ncmFiLCBldmVudHMub25Ib3Zlci5tb2RlKTtcbiAgICB9XG4gICAgcmVzZXQoKSB7XG4gICAgfVxuICAgIGludGVyYWN0KCkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyLCBvcHRpb25zID0gY29udGFpbmVyLmFjdHVhbE9wdGlvbnMsIGludGVyYWN0aXZpdHkgPSBvcHRpb25zLmludGVyYWN0aXZpdHk7XG4gICAgICAgIGlmIChpbnRlcmFjdGl2aXR5LmV2ZW50cy5vbkhvdmVyLmVuYWJsZSAmJiBjb250YWluZXIuaW50ZXJhY3Rpdml0eS5zdGF0dXMgPT09IFV0aWxzXzEuQ29uc3RhbnRzLm1vdXNlTW92ZUV2ZW50KSB7XG4gICAgICAgICAgICBjb25zdCBtb3VzZVBvcyA9IGNvbnRhaW5lci5pbnRlcmFjdGl2aXR5Lm1vdXNlLnBvc2l0aW9uO1xuICAgICAgICAgICAgaWYgKCFtb3VzZVBvcykge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGRpc3RhbmNlID0gY29udGFpbmVyLnJldGluYS5ncmFiTW9kZURpc3RhbmNlLCBxdWVyeSA9IGNvbnRhaW5lci5wYXJ0aWNsZXMucXVhZFRyZWUucXVlcnlDaXJjbGUobW91c2VQb3MsIGRpc3RhbmNlKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgcGFydGljbGUgb2YgcXVlcnkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwb3MgPSBwYXJ0aWNsZS5nZXRQb3NpdGlvbigpLCBwb2ludERpc3RhbmNlID0gKDAsIFV0aWxzXzEuZ2V0RGlzdGFuY2UpKHBvcywgbW91c2VQb3MpO1xuICAgICAgICAgICAgICAgIGlmIChwb2ludERpc3RhbmNlIDw9IGRpc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGdyYWJMaW5lT3B0aW9ucyA9IGludGVyYWN0aXZpdHkubW9kZXMuZ3JhYi5saW5rcywgbGluZU9wYWNpdHkgPSBncmFiTGluZU9wdGlvbnMub3BhY2l0eSwgb3BhY2l0eUxpbmUgPSBsaW5lT3BhY2l0eSAtIChwb2ludERpc3RhbmNlICogbGluZU9wYWNpdHkpIC8gZGlzdGFuY2U7XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcGFjaXR5TGluZSA8PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRDb2xvciA9IChfYSA9IGdyYWJMaW5lT3B0aW9ucy5jb2xvcikgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogcGFydGljbGUub3B0aW9ucy5saW5rcy5jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjb250YWluZXIucGFydGljbGVzLmdyYWJMaW5lQ29sb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpbmtzT3B0aW9ucyA9IG9wdGlvbnMuaW50ZXJhY3Rpdml0eS5tb2Rlcy5ncmFiLmxpbmtzO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyLnBhcnRpY2xlcy5ncmFiTGluZUNvbG9yID0gKDAsIFV0aWxzXzEuZ2V0TGlua1JhbmRvbUNvbG9yKShvcHRDb2xvciwgbGlua3NPcHRpb25zLmJsaW5rLCBsaW5rc09wdGlvbnMuY29uc2VudCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29sb3JMaW5lID0gKDAsIFV0aWxzXzEuZ2V0TGlua0NvbG9yKShwYXJ0aWNsZSwgdW5kZWZpbmVkLCBjb250YWluZXIucGFydGljbGVzLmdyYWJMaW5lQ29sb3IpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbG9yTGluZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lci5jYW52YXMuZHJhd0dyYWJMaW5lKHBhcnRpY2xlLCBjb2xvckxpbmUsIG9wYWNpdHlMaW5lLCBtb3VzZVBvcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5HcmFiYmVyID0gR3JhYmJlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/External/Grab/Grabber.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/External/Grab/index.js": +/*!**********************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/External/Grab/index.js ***! + \**********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadExternalGrabInteraction = void 0;\nconst Grabber_1 = __webpack_require__(/*! ./Grabber */ \"./node_modules/tsparticles/Interactions/External/Grab/Grabber.js\");\nasync function loadExternalGrabInteraction(tsParticles) {\n await tsParticles.addInteractor(\"externalGrab\", (container) => new Grabber_1.Grabber(container));\n}\nexports.loadExternalGrabInteraction = loadExternalGrabInteraction;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL0V4dGVybmFsL0dyYWIvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsbUNBQW1DO0FBQ25DLGtCQUFrQixtQkFBTyxDQUFDLG1GQUFXO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL0V4dGVybmFsL0dyYWIvaW5kZXguanM/NDViZSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMubG9hZEV4dGVybmFsR3JhYkludGVyYWN0aW9uID0gdm9pZCAwO1xuY29uc3QgR3JhYmJlcl8xID0gcmVxdWlyZShcIi4vR3JhYmJlclwiKTtcbmFzeW5jIGZ1bmN0aW9uIGxvYWRFeHRlcm5hbEdyYWJJbnRlcmFjdGlvbih0c1BhcnRpY2xlcykge1xuICAgIGF3YWl0IHRzUGFydGljbGVzLmFkZEludGVyYWN0b3IoXCJleHRlcm5hbEdyYWJcIiwgKGNvbnRhaW5lcikgPT4gbmV3IEdyYWJiZXJfMS5HcmFiYmVyKGNvbnRhaW5lcikpO1xufVxuZXhwb3J0cy5sb2FkRXh0ZXJuYWxHcmFiSW50ZXJhY3Rpb24gPSBsb2FkRXh0ZXJuYWxHcmFiSW50ZXJhY3Rpb247XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/External/Grab/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/External/Repulse/Repulser.js": +/*!****************************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/External/Repulse/Repulser.js ***! + \****************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Repulser = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst Utils_1 = __webpack_require__(/*! ../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Vector_1 = __webpack_require__(/*! ../../../Core/Particle/Vector */ \"./node_modules/tsparticles/Core/Particle/Vector.js\");\nconst ExternalInteractorBase_1 = __webpack_require__(/*! ../../../Core/ExternalInteractorBase */ \"./node_modules/tsparticles/Core/ExternalInteractorBase.js\");\nclass Repulser extends ExternalInteractorBase_1.ExternalInteractorBase {\n constructor(container) {\n super(container);\n }\n isEnabled() {\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse, events = options.interactivity.events, divs = events.onDiv, divRepulse = (0, Utils_1.isDivModeEnabled)(Enums_1.DivMode.repulse, divs);\n if (!(divRepulse || (events.onHover.enable && mouse.position) || (events.onClick.enable && mouse.clickPosition))) {\n return false;\n }\n const hoverMode = events.onHover.mode, clickMode = events.onClick.mode;\n return (0, Utils_1.isInArray)(Enums_1.HoverMode.repulse, hoverMode) || (0, Utils_1.isInArray)(Enums_1.ClickMode.repulse, clickMode) || divRepulse;\n }\n reset() {\n }\n interact() {\n const container = this.container, options = container.actualOptions, mouseMoveStatus = container.interactivity.status === Utils_1.Constants.mouseMoveEvent, events = options.interactivity.events, hoverEnabled = events.onHover.enable, hoverMode = events.onHover.mode, clickEnabled = events.onClick.enable, clickMode = events.onClick.mode, divs = events.onDiv;\n if (mouseMoveStatus && hoverEnabled && (0, Utils_1.isInArray)(Enums_1.HoverMode.repulse, hoverMode)) {\n this.hoverRepulse();\n }\n else if (clickEnabled && (0, Utils_1.isInArray)(Enums_1.ClickMode.repulse, clickMode)) {\n this.clickRepulse();\n }\n else {\n (0, Utils_1.divModeExecute)(Enums_1.DivMode.repulse, divs, (selector, div) => this.singleSelectorRepulse(selector, div));\n }\n }\n singleSelectorRepulse(selector, div) {\n const container = this.container, query = document.querySelectorAll(selector);\n if (!query.length) {\n return;\n }\n query.forEach((item) => {\n const elem = item, pxRatio = container.retina.pixelRatio, pos = {\n x: (elem.offsetLeft + elem.offsetWidth / 2) * pxRatio,\n y: (elem.offsetTop + elem.offsetHeight / 2) * pxRatio,\n }, repulseRadius = (elem.offsetWidth / 2) * pxRatio, area = div.type === Enums_1.DivType.circle\n ? new Utils_1.Circle(pos.x, pos.y, repulseRadius)\n : new Utils_1.Rectangle(elem.offsetLeft * pxRatio, elem.offsetTop * pxRatio, elem.offsetWidth * pxRatio, elem.offsetHeight * pxRatio), divs = container.actualOptions.interactivity.modes.repulse.divs, divRepulse = (0, Utils_1.divMode)(divs, elem);\n this.processRepulse(pos, repulseRadius, area, divRepulse);\n });\n }\n hoverRepulse() {\n const container = this.container, mousePos = container.interactivity.mouse.position;\n if (!mousePos) {\n return;\n }\n const repulseRadius = container.retina.repulseModeDistance;\n this.processRepulse(mousePos, repulseRadius, new Utils_1.Circle(mousePos.x, mousePos.y, repulseRadius));\n }\n processRepulse(position, repulseRadius, area, divRepulse) {\n var _a;\n const container = this.container, query = container.particles.quadTree.query(area), repulseOptions = container.actualOptions.interactivity.modes.repulse;\n for (const particle of query) {\n const { dx, dy, distance } = (0, Utils_1.getDistances)(particle.position, position), velocity = ((_a = divRepulse === null || divRepulse === void 0 ? void 0 : divRepulse.speed) !== null && _a !== void 0 ? _a : repulseOptions.speed) * repulseOptions.factor, repulseFactor = (0, Utils_1.clamp)((0, Utils_1.calcEasing)(1 - distance / repulseRadius, repulseOptions.easing) * velocity, 0, repulseOptions.maxSpeed), normVec = Vector_1.Vector.create(distance === 0 ? velocity : (dx / distance) * repulseFactor, distance === 0 ? velocity : (dy / distance) * repulseFactor);\n particle.position.addTo(normVec);\n }\n }\n clickRepulse() {\n const container = this.container;\n if (!container.repulse.finish) {\n if (!container.repulse.count) {\n container.repulse.count = 0;\n }\n container.repulse.count++;\n if (container.repulse.count === container.particles.count) {\n container.repulse.finish = true;\n }\n }\n if (container.repulse.clicking) {\n const repulseDistance = container.retina.repulseModeDistance, repulseRadius = Math.pow(repulseDistance / 6, 3), mouseClickPos = container.interactivity.mouse.clickPosition;\n if (mouseClickPos === undefined) {\n return;\n }\n const range = new Utils_1.Circle(mouseClickPos.x, mouseClickPos.y, repulseRadius), query = container.particles.quadTree.query(range);\n for (const particle of query) {\n const { dx, dy, distance } = (0, Utils_1.getDistances)(mouseClickPos, particle.position), d = distance ** 2, velocity = container.actualOptions.interactivity.modes.repulse.speed, force = (-repulseRadius * velocity) / d;\n if (d <= repulseRadius) {\n container.repulse.particles.push(particle);\n const vect = Vector_1.Vector.create(dx, dy);\n vect.length = force;\n particle.velocity.setTo(vect);\n }\n }\n }\n else if (container.repulse.clicking === false) {\n for (const particle of container.repulse.particles) {\n particle.velocity.setTo(particle.initialVelocity);\n }\n container.repulse.particles = [];\n }\n }\n}\nexports.Repulser = Repulser;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL0V4dGVybmFsL1JlcHVsc2UvUmVwdWxzZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsZ0JBQWdCO0FBQ2hCLGdCQUFnQixtQkFBTyxDQUFDLGlFQUFnQjtBQUN4QyxnQkFBZ0IsbUJBQU8sQ0FBQyxpRUFBZ0I7QUFDeEMsaUJBQWlCLG1CQUFPLENBQUMseUZBQStCO0FBQ3hELGlDQUFpQyxtQkFBTyxDQUFDLHVHQUFzQztBQUMvRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixtQkFBbUI7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLG1CQUFtQjtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL0V4dGVybmFsL1JlcHVsc2UvUmVwdWxzZXIuanM/YTJmZiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuUmVwdWxzZXIgPSB2b2lkIDA7XG5jb25zdCBFbnVtc18xID0gcmVxdWlyZShcIi4uLy4uLy4uL0VudW1zXCIpO1xuY29uc3QgVXRpbHNfMSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9VdGlsc1wiKTtcbmNvbnN0IFZlY3Rvcl8xID0gcmVxdWlyZShcIi4uLy4uLy4uL0NvcmUvUGFydGljbGUvVmVjdG9yXCIpO1xuY29uc3QgRXh0ZXJuYWxJbnRlcmFjdG9yQmFzZV8xID0gcmVxdWlyZShcIi4uLy4uLy4uL0NvcmUvRXh0ZXJuYWxJbnRlcmFjdG9yQmFzZVwiKTtcbmNsYXNzIFJlcHVsc2VyIGV4dGVuZHMgRXh0ZXJuYWxJbnRlcmFjdG9yQmFzZV8xLkV4dGVybmFsSW50ZXJhY3RvckJhc2Uge1xuICAgIGNvbnN0cnVjdG9yKGNvbnRhaW5lcikge1xuICAgICAgICBzdXBlcihjb250YWluZXIpO1xuICAgIH1cbiAgICBpc0VuYWJsZWQoKSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyLCBvcHRpb25zID0gY29udGFpbmVyLmFjdHVhbE9wdGlvbnMsIG1vdXNlID0gY29udGFpbmVyLmludGVyYWN0aXZpdHkubW91c2UsIGV2ZW50cyA9IG9wdGlvbnMuaW50ZXJhY3Rpdml0eS5ldmVudHMsIGRpdnMgPSBldmVudHMub25EaXYsIGRpdlJlcHVsc2UgPSAoMCwgVXRpbHNfMS5pc0Rpdk1vZGVFbmFibGVkKShFbnVtc18xLkRpdk1vZGUucmVwdWxzZSwgZGl2cyk7XG4gICAgICAgIGlmICghKGRpdlJlcHVsc2UgfHwgKGV2ZW50cy5vbkhvdmVyLmVuYWJsZSAmJiBtb3VzZS5wb3NpdGlvbikgfHwgKGV2ZW50cy5vbkNsaWNrLmVuYWJsZSAmJiBtb3VzZS5jbGlja1Bvc2l0aW9uKSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBob3Zlck1vZGUgPSBldmVudHMub25Ib3Zlci5tb2RlLCBjbGlja01vZGUgPSBldmVudHMub25DbGljay5tb2RlO1xuICAgICAgICByZXR1cm4gKDAsIFV0aWxzXzEuaXNJbkFycmF5KShFbnVtc18xLkhvdmVyTW9kZS5yZXB1bHNlLCBob3Zlck1vZGUpIHx8ICgwLCBVdGlsc18xLmlzSW5BcnJheSkoRW51bXNfMS5DbGlja01vZGUucmVwdWxzZSwgY2xpY2tNb2RlKSB8fCBkaXZSZXB1bHNlO1xuICAgIH1cbiAgICByZXNldCgpIHtcbiAgICB9XG4gICAgaW50ZXJhY3QoKSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyLCBvcHRpb25zID0gY29udGFpbmVyLmFjdHVhbE9wdGlvbnMsIG1vdXNlTW92ZVN0YXR1cyA9IGNvbnRhaW5lci5pbnRlcmFjdGl2aXR5LnN0YXR1cyA9PT0gVXRpbHNfMS5Db25zdGFudHMubW91c2VNb3ZlRXZlbnQsIGV2ZW50cyA9IG9wdGlvbnMuaW50ZXJhY3Rpdml0eS5ldmVudHMsIGhvdmVyRW5hYmxlZCA9IGV2ZW50cy5vbkhvdmVyLmVuYWJsZSwgaG92ZXJNb2RlID0gZXZlbnRzLm9uSG92ZXIubW9kZSwgY2xpY2tFbmFibGVkID0gZXZlbnRzLm9uQ2xpY2suZW5hYmxlLCBjbGlja01vZGUgPSBldmVudHMub25DbGljay5tb2RlLCBkaXZzID0gZXZlbnRzLm9uRGl2O1xuICAgICAgICBpZiAobW91c2VNb3ZlU3RhdHVzICYmIGhvdmVyRW5hYmxlZCAmJiAoMCwgVXRpbHNfMS5pc0luQXJyYXkpKEVudW1zXzEuSG92ZXJNb2RlLnJlcHVsc2UsIGhvdmVyTW9kZSkpIHtcbiAgICAgICAgICAgIHRoaXMuaG92ZXJSZXB1bHNlKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoY2xpY2tFbmFibGVkICYmICgwLCBVdGlsc18xLmlzSW5BcnJheSkoRW51bXNfMS5DbGlja01vZGUucmVwdWxzZSwgY2xpY2tNb2RlKSkge1xuICAgICAgICAgICAgdGhpcy5jbGlja1JlcHVsc2UoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICgwLCBVdGlsc18xLmRpdk1vZGVFeGVjdXRlKShFbnVtc18xLkRpdk1vZGUucmVwdWxzZSwgZGl2cywgKHNlbGVjdG9yLCBkaXYpID0+IHRoaXMuc2luZ2xlU2VsZWN0b3JSZXB1bHNlKHNlbGVjdG9yLCBkaXYpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzaW5nbGVTZWxlY3RvclJlcHVsc2Uoc2VsZWN0b3IsIGRpdikge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lciwgcXVlcnkgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKTtcbiAgICAgICAgaWYgKCFxdWVyeS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBxdWVyeS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBlbGVtID0gaXRlbSwgcHhSYXRpbyA9IGNvbnRhaW5lci5yZXRpbmEucGl4ZWxSYXRpbywgcG9zID0ge1xuICAgICAgICAgICAgICAgIHg6IChlbGVtLm9mZnNldExlZnQgKyBlbGVtLm9mZnNldFdpZHRoIC8gMikgKiBweFJhdGlvLFxuICAgICAgICAgICAgICAgIHk6IChlbGVtLm9mZnNldFRvcCArIGVsZW0ub2Zmc2V0SGVpZ2h0IC8gMikgKiBweFJhdGlvLFxuICAgICAgICAgICAgfSwgcmVwdWxzZVJhZGl1cyA9IChlbGVtLm9mZnNldFdpZHRoIC8gMikgKiBweFJhdGlvLCBhcmVhID0gZGl2LnR5cGUgPT09IEVudW1zXzEuRGl2VHlwZS5jaXJjbGVcbiAgICAgICAgICAgICAgICA/IG5ldyBVdGlsc18xLkNpcmNsZShwb3MueCwgcG9zLnksIHJlcHVsc2VSYWRpdXMpXG4gICAgICAgICAgICAgICAgOiBuZXcgVXRpbHNfMS5SZWN0YW5nbGUoZWxlbS5vZmZzZXRMZWZ0ICogcHhSYXRpbywgZWxlbS5vZmZzZXRUb3AgKiBweFJhdGlvLCBlbGVtLm9mZnNldFdpZHRoICogcHhSYXRpbywgZWxlbS5vZmZzZXRIZWlnaHQgKiBweFJhdGlvKSwgZGl2cyA9IGNvbnRhaW5lci5hY3R1YWxPcHRpb25zLmludGVyYWN0aXZpdHkubW9kZXMucmVwdWxzZS5kaXZzLCBkaXZSZXB1bHNlID0gKDAsIFV0aWxzXzEuZGl2TW9kZSkoZGl2cywgZWxlbSk7XG4gICAgICAgICAgICB0aGlzLnByb2Nlc3NSZXB1bHNlKHBvcywgcmVwdWxzZVJhZGl1cywgYXJlYSwgZGl2UmVwdWxzZSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBob3ZlclJlcHVsc2UoKSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyLCBtb3VzZVBvcyA9IGNvbnRhaW5lci5pbnRlcmFjdGl2aXR5Lm1vdXNlLnBvc2l0aW9uO1xuICAgICAgICBpZiAoIW1vdXNlUG9zKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVwdWxzZVJhZGl1cyA9IGNvbnRhaW5lci5yZXRpbmEucmVwdWxzZU1vZGVEaXN0YW5jZTtcbiAgICAgICAgdGhpcy5wcm9jZXNzUmVwdWxzZShtb3VzZVBvcywgcmVwdWxzZVJhZGl1cywgbmV3IFV0aWxzXzEuQ2lyY2xlKG1vdXNlUG9zLngsIG1vdXNlUG9zLnksIHJlcHVsc2VSYWRpdXMpKTtcbiAgICB9XG4gICAgcHJvY2Vzc1JlcHVsc2UocG9zaXRpb24sIHJlcHVsc2VSYWRpdXMsIGFyZWEsIGRpdlJlcHVsc2UpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lciwgcXVlcnkgPSBjb250YWluZXIucGFydGljbGVzLnF1YWRUcmVlLnF1ZXJ5KGFyZWEpLCByZXB1bHNlT3B0aW9ucyA9IGNvbnRhaW5lci5hY3R1YWxPcHRpb25zLmludGVyYWN0aXZpdHkubW9kZXMucmVwdWxzZTtcbiAgICAgICAgZm9yIChjb25zdCBwYXJ0aWNsZSBvZiBxdWVyeSkge1xuICAgICAgICAgICAgY29uc3QgeyBkeCwgZHksIGRpc3RhbmNlIH0gPSAoMCwgVXRpbHNfMS5nZXREaXN0YW5jZXMpKHBhcnRpY2xlLnBvc2l0aW9uLCBwb3NpdGlvbiksIHZlbG9jaXR5ID0gKChfYSA9IGRpdlJlcHVsc2UgPT09IG51bGwgfHwgZGl2UmVwdWxzZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZGl2UmVwdWxzZS5zcGVlZCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogcmVwdWxzZU9wdGlvbnMuc3BlZWQpICogcmVwdWxzZU9wdGlvbnMuZmFjdG9yLCByZXB1bHNlRmFjdG9yID0gKDAsIFV0aWxzXzEuY2xhbXApKCgwLCBVdGlsc18xLmNhbGNFYXNpbmcpKDEgLSBkaXN0YW5jZSAvIHJlcHVsc2VSYWRpdXMsIHJlcHVsc2VPcHRpb25zLmVhc2luZykgKiB2ZWxvY2l0eSwgMCwgcmVwdWxzZU9wdGlvbnMubWF4U3BlZWQpLCBub3JtVmVjID0gVmVjdG9yXzEuVmVjdG9yLmNyZWF0ZShkaXN0YW5jZSA9PT0gMCA/IHZlbG9jaXR5IDogKGR4IC8gZGlzdGFuY2UpICogcmVwdWxzZUZhY3RvciwgZGlzdGFuY2UgPT09IDAgPyB2ZWxvY2l0eSA6IChkeSAvIGRpc3RhbmNlKSAqIHJlcHVsc2VGYWN0b3IpO1xuICAgICAgICAgICAgcGFydGljbGUucG9zaXRpb24uYWRkVG8obm9ybVZlYyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY2xpY2tSZXB1bHNlKCkge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgaWYgKCFjb250YWluZXIucmVwdWxzZS5maW5pc2gpIHtcbiAgICAgICAgICAgIGlmICghY29udGFpbmVyLnJlcHVsc2UuY291bnQpIHtcbiAgICAgICAgICAgICAgICBjb250YWluZXIucmVwdWxzZS5jb3VudCA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb250YWluZXIucmVwdWxzZS5jb3VudCsrO1xuICAgICAgICAgICAgaWYgKGNvbnRhaW5lci5yZXB1bHNlLmNvdW50ID09PSBjb250YWluZXIucGFydGljbGVzLmNvdW50KSB7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLnJlcHVsc2UuZmluaXNoID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoY29udGFpbmVyLnJlcHVsc2UuY2xpY2tpbmcpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlcHVsc2VEaXN0YW5jZSA9IGNvbnRhaW5lci5yZXRpbmEucmVwdWxzZU1vZGVEaXN0YW5jZSwgcmVwdWxzZVJhZGl1cyA9IE1hdGgucG93KHJlcHVsc2VEaXN0YW5jZSAvIDYsIDMpLCBtb3VzZUNsaWNrUG9zID0gY29udGFpbmVyLmludGVyYWN0aXZpdHkubW91c2UuY2xpY2tQb3NpdGlvbjtcbiAgICAgICAgICAgIGlmIChtb3VzZUNsaWNrUG9zID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCByYW5nZSA9IG5ldyBVdGlsc18xLkNpcmNsZShtb3VzZUNsaWNrUG9zLngsIG1vdXNlQ2xpY2tQb3MueSwgcmVwdWxzZVJhZGl1cyksIHF1ZXJ5ID0gY29udGFpbmVyLnBhcnRpY2xlcy5xdWFkVHJlZS5xdWVyeShyYW5nZSk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHBhcnRpY2xlIG9mIHF1ZXJ5KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBkeCwgZHksIGRpc3RhbmNlIH0gPSAoMCwgVXRpbHNfMS5nZXREaXN0YW5jZXMpKG1vdXNlQ2xpY2tQb3MsIHBhcnRpY2xlLnBvc2l0aW9uKSwgZCA9IGRpc3RhbmNlICoqIDIsIHZlbG9jaXR5ID0gY29udGFpbmVyLmFjdHVhbE9wdGlvbnMuaW50ZXJhY3Rpdml0eS5tb2Rlcy5yZXB1bHNlLnNwZWVkLCBmb3JjZSA9ICgtcmVwdWxzZVJhZGl1cyAqIHZlbG9jaXR5KSAvIGQ7XG4gICAgICAgICAgICAgICAgaWYgKGQgPD0gcmVwdWxzZVJhZGl1cykge1xuICAgICAgICAgICAgICAgICAgICBjb250YWluZXIucmVwdWxzZS5wYXJ0aWNsZXMucHVzaChwYXJ0aWNsZSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZlY3QgPSBWZWN0b3JfMS5WZWN0b3IuY3JlYXRlKGR4LCBkeSk7XG4gICAgICAgICAgICAgICAgICAgIHZlY3QubGVuZ3RoID0gZm9yY2U7XG4gICAgICAgICAgICAgICAgICAgIHBhcnRpY2xlLnZlbG9jaXR5LnNldFRvKHZlY3QpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChjb250YWluZXIucmVwdWxzZS5jbGlja2luZyA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgcGFydGljbGUgb2YgY29udGFpbmVyLnJlcHVsc2UucGFydGljbGVzKSB7XG4gICAgICAgICAgICAgICAgcGFydGljbGUudmVsb2NpdHkuc2V0VG8ocGFydGljbGUuaW5pdGlhbFZlbG9jaXR5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnRhaW5lci5yZXB1bHNlLnBhcnRpY2xlcyA9IFtdO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5SZXB1bHNlciA9IFJlcHVsc2VyO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/External/Repulse/Repulser.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/External/Repulse/index.js": +/*!*************************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/External/Repulse/index.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadExternalRepulseInteraction = void 0;\nconst Repulser_1 = __webpack_require__(/*! ./Repulser */ \"./node_modules/tsparticles/Interactions/External/Repulse/Repulser.js\");\nasync function loadExternalRepulseInteraction(tsParticles) {\n await tsParticles.addInteractor(\"externalRepulse\", (container) => new Repulser_1.Repulser(container));\n}\nexports.loadExternalRepulseInteraction = loadExternalRepulseInteraction;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL0V4dGVybmFsL1JlcHVsc2UvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsc0NBQXNDO0FBQ3RDLG1CQUFtQixtQkFBTyxDQUFDLHdGQUFZO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBLHNDQUFzQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL0V4dGVybmFsL1JlcHVsc2UvaW5kZXguanM/ZTk3NyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMubG9hZEV4dGVybmFsUmVwdWxzZUludGVyYWN0aW9uID0gdm9pZCAwO1xuY29uc3QgUmVwdWxzZXJfMSA9IHJlcXVpcmUoXCIuL1JlcHVsc2VyXCIpO1xuYXN5bmMgZnVuY3Rpb24gbG9hZEV4dGVybmFsUmVwdWxzZUludGVyYWN0aW9uKHRzUGFydGljbGVzKSB7XG4gICAgYXdhaXQgdHNQYXJ0aWNsZXMuYWRkSW50ZXJhY3RvcihcImV4dGVybmFsUmVwdWxzZVwiLCAoY29udGFpbmVyKSA9PiBuZXcgUmVwdWxzZXJfMS5SZXB1bHNlcihjb250YWluZXIpKTtcbn1cbmV4cG9ydHMubG9hZEV4dGVybmFsUmVwdWxzZUludGVyYWN0aW9uID0gbG9hZEV4dGVybmFsUmVwdWxzZUludGVyYWN0aW9uO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/External/Repulse/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/External/Trail/TrailMaker.js": +/*!****************************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/External/Trail/TrailMaker.js ***! + \****************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.TrailMaker = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Enums_1 = __webpack_require__(/*! ../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst ExternalInteractorBase_1 = __webpack_require__(/*! ../../../Core/ExternalInteractorBase */ \"./node_modules/tsparticles/Core/ExternalInteractorBase.js\");\nclass TrailMaker extends ExternalInteractorBase_1.ExternalInteractorBase {\n constructor(container) {\n super(container);\n this.delay = 0;\n }\n interact(delta) {\n var _a, _b, _c, _d;\n if (!this.container.retina.reduceFactor) {\n return;\n }\n const container = this.container, options = container.actualOptions, trailOptions = options.interactivity.modes.trail, optDelay = (trailOptions.delay * 1000) / this.container.retina.reduceFactor;\n if (this.delay < optDelay) {\n this.delay += delta.value;\n }\n if (this.delay < optDelay) {\n return;\n }\n let canEmit = true;\n if (trailOptions.pauseOnStop) {\n if (container.interactivity.mouse.position === this.lastPosition ||\n (((_a = container.interactivity.mouse.position) === null || _a === void 0 ? void 0 : _a.x) === ((_b = this.lastPosition) === null || _b === void 0 ? void 0 : _b.x) &&\n ((_c = container.interactivity.mouse.position) === null || _c === void 0 ? void 0 : _c.y) === ((_d = this.lastPosition) === null || _d === void 0 ? void 0 : _d.y))) {\n canEmit = false;\n }\n }\n if (container.interactivity.mouse.position) {\n this.lastPosition = {\n x: container.interactivity.mouse.position.x,\n y: container.interactivity.mouse.position.y,\n };\n }\n else {\n delete this.lastPosition;\n }\n if (canEmit) {\n container.particles.push(trailOptions.quantity, container.interactivity.mouse, trailOptions.particles);\n }\n this.delay -= optDelay;\n }\n isEnabled() {\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse, events = options.interactivity.events;\n return ((mouse.clicking && mouse.inside && !!mouse.position && (0, Utils_1.isInArray)(Enums_1.ClickMode.trail, events.onClick.mode)) ||\n (mouse.inside && !!mouse.position && (0, Utils_1.isInArray)(Enums_1.HoverMode.trail, events.onHover.mode)));\n }\n reset() {\n }\n}\nexports.TrailMaker = TrailMaker;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL0V4dGVybmFsL1RyYWlsL1RyYWlsTWFrZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsa0JBQWtCO0FBQ2xCLGdCQUFnQixtQkFBTyxDQUFDLGlFQUFnQjtBQUN4QyxnQkFBZ0IsbUJBQU8sQ0FBQyxpRUFBZ0I7QUFDeEMsaUNBQWlDLG1CQUFPLENBQUMsdUdBQXNDO0FBQy9FO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0ludGVyYWN0aW9ucy9FeHRlcm5hbC9UcmFpbC9UcmFpbE1ha2VyLmpzP2QzMjYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlRyYWlsTWFrZXIgPSB2b2lkIDA7XG5jb25zdCBVdGlsc18xID0gcmVxdWlyZShcIi4uLy4uLy4uL1V0aWxzXCIpO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9FbnVtc1wiKTtcbmNvbnN0IEV4dGVybmFsSW50ZXJhY3RvckJhc2VfMSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9Db3JlL0V4dGVybmFsSW50ZXJhY3RvckJhc2VcIik7XG5jbGFzcyBUcmFpbE1ha2VyIGV4dGVuZHMgRXh0ZXJuYWxJbnRlcmFjdG9yQmFzZV8xLkV4dGVybmFsSW50ZXJhY3RvckJhc2Uge1xuICAgIGNvbnN0cnVjdG9yKGNvbnRhaW5lcikge1xuICAgICAgICBzdXBlcihjb250YWluZXIpO1xuICAgICAgICB0aGlzLmRlbGF5ID0gMDtcbiAgICB9XG4gICAgaW50ZXJhY3QoZGVsdGEpIHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kO1xuICAgICAgICBpZiAoIXRoaXMuY29udGFpbmVyLnJldGluYS5yZWR1Y2VGYWN0b3IpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lciwgb3B0aW9ucyA9IGNvbnRhaW5lci5hY3R1YWxPcHRpb25zLCB0cmFpbE9wdGlvbnMgPSBvcHRpb25zLmludGVyYWN0aXZpdHkubW9kZXMudHJhaWwsIG9wdERlbGF5ID0gKHRyYWlsT3B0aW9ucy5kZWxheSAqIDEwMDApIC8gdGhpcy5jb250YWluZXIucmV0aW5hLnJlZHVjZUZhY3RvcjtcbiAgICAgICAgaWYgKHRoaXMuZGVsYXkgPCBvcHREZWxheSkge1xuICAgICAgICAgICAgdGhpcy5kZWxheSArPSBkZWx0YS52YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5kZWxheSA8IG9wdERlbGF5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGNhbkVtaXQgPSB0cnVlO1xuICAgICAgICBpZiAodHJhaWxPcHRpb25zLnBhdXNlT25TdG9wKSB7XG4gICAgICAgICAgICBpZiAoY29udGFpbmVyLmludGVyYWN0aXZpdHkubW91c2UucG9zaXRpb24gPT09IHRoaXMubGFzdFBvc2l0aW9uIHx8XG4gICAgICAgICAgICAgICAgKCgoX2EgPSBjb250YWluZXIuaW50ZXJhY3Rpdml0eS5tb3VzZS5wb3NpdGlvbikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLngpID09PSAoKF9iID0gdGhpcy5sYXN0UG9zaXRpb24pID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi54KSAmJlxuICAgICAgICAgICAgICAgICAgICAoKF9jID0gY29udGFpbmVyLmludGVyYWN0aXZpdHkubW91c2UucG9zaXRpb24pID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy55KSA9PT0gKChfZCA9IHRoaXMubGFzdFBvc2l0aW9uKSA9PT0gbnVsbCB8fCBfZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2QueSkpKSB7XG4gICAgICAgICAgICAgICAgY2FuRW1pdCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChjb250YWluZXIuaW50ZXJhY3Rpdml0eS5tb3VzZS5wb3NpdGlvbikge1xuICAgICAgICAgICAgdGhpcy5sYXN0UG9zaXRpb24gPSB7XG4gICAgICAgICAgICAgICAgeDogY29udGFpbmVyLmludGVyYWN0aXZpdHkubW91c2UucG9zaXRpb24ueCxcbiAgICAgICAgICAgICAgICB5OiBjb250YWluZXIuaW50ZXJhY3Rpdml0eS5tb3VzZS5wb3NpdGlvbi55LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLmxhc3RQb3NpdGlvbjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2FuRW1pdCkge1xuICAgICAgICAgICAgY29udGFpbmVyLnBhcnRpY2xlcy5wdXNoKHRyYWlsT3B0aW9ucy5xdWFudGl0eSwgY29udGFpbmVyLmludGVyYWN0aXZpdHkubW91c2UsIHRyYWlsT3B0aW9ucy5wYXJ0aWNsZXMpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGVsYXkgLT0gb3B0RGVsYXk7XG4gICAgfVxuICAgIGlzRW5hYmxlZCgpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXIsIG9wdGlvbnMgPSBjb250YWluZXIuYWN0dWFsT3B0aW9ucywgbW91c2UgPSBjb250YWluZXIuaW50ZXJhY3Rpdml0eS5tb3VzZSwgZXZlbnRzID0gb3B0aW9ucy5pbnRlcmFjdGl2aXR5LmV2ZW50cztcbiAgICAgICAgcmV0dXJuICgobW91c2UuY2xpY2tpbmcgJiYgbW91c2UuaW5zaWRlICYmICEhbW91c2UucG9zaXRpb24gJiYgKDAsIFV0aWxzXzEuaXNJbkFycmF5KShFbnVtc18xLkNsaWNrTW9kZS50cmFpbCwgZXZlbnRzLm9uQ2xpY2subW9kZSkpIHx8XG4gICAgICAgICAgICAobW91c2UuaW5zaWRlICYmICEhbW91c2UucG9zaXRpb24gJiYgKDAsIFV0aWxzXzEuaXNJbkFycmF5KShFbnVtc18xLkhvdmVyTW9kZS50cmFpbCwgZXZlbnRzLm9uSG92ZXIubW9kZSkpKTtcbiAgICB9XG4gICAgcmVzZXQoKSB7XG4gICAgfVxufVxuZXhwb3J0cy5UcmFpbE1ha2VyID0gVHJhaWxNYWtlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/External/Trail/TrailMaker.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/External/Trail/index.js": +/*!***********************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/External/Trail/index.js ***! + \***********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadExternalTrailInteraction = void 0;\nconst TrailMaker_1 = __webpack_require__(/*! ./TrailMaker */ \"./node_modules/tsparticles/Interactions/External/Trail/TrailMaker.js\");\nasync function loadExternalTrailInteraction(tsParticles) {\n await tsParticles.addInteractor(\"externalTrail\", (container) => new TrailMaker_1.TrailMaker(container));\n}\nexports.loadExternalTrailInteraction = loadExternalTrailInteraction;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL0V4dGVybmFsL1RyYWlsL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELG9DQUFvQztBQUNwQyxxQkFBcUIsbUJBQU8sQ0FBQywwRkFBYztBQUMzQztBQUNBO0FBQ0E7QUFDQSxvQ0FBb0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0ludGVyYWN0aW9ucy9FeHRlcm5hbC9UcmFpbC9pbmRleC5qcz80YWZkIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5sb2FkRXh0ZXJuYWxUcmFpbEludGVyYWN0aW9uID0gdm9pZCAwO1xuY29uc3QgVHJhaWxNYWtlcl8xID0gcmVxdWlyZShcIi4vVHJhaWxNYWtlclwiKTtcbmFzeW5jIGZ1bmN0aW9uIGxvYWRFeHRlcm5hbFRyYWlsSW50ZXJhY3Rpb24odHNQYXJ0aWNsZXMpIHtcbiAgICBhd2FpdCB0c1BhcnRpY2xlcy5hZGRJbnRlcmFjdG9yKFwiZXh0ZXJuYWxUcmFpbFwiLCAoY29udGFpbmVyKSA9PiBuZXcgVHJhaWxNYWtlcl8xLlRyYWlsTWFrZXIoY29udGFpbmVyKSk7XG59XG5leHBvcnRzLmxvYWRFeHRlcm5hbFRyYWlsSW50ZXJhY3Rpb24gPSBsb2FkRXh0ZXJuYWxUcmFpbEludGVyYWN0aW9uO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/External/Trail/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/Particles/Attract/Attractor.js": +/*!******************************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/Particles/Attract/Attractor.js ***! + \******************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Attractor = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst ParticlesInteractorBase_1 = __webpack_require__(/*! ../../../Core/ParticlesInteractorBase */ \"./node_modules/tsparticles/Core/ParticlesInteractorBase.js\");\nclass Attractor extends ParticlesInteractorBase_1.ParticlesInteractorBase {\n constructor(container) {\n super(container);\n }\n interact(p1) {\n var _a;\n const container = this.container, distance = (_a = p1.retina.attractDistance) !== null && _a !== void 0 ? _a : container.retina.attractDistance, pos1 = p1.getPosition(), query = container.particles.quadTree.queryCircle(pos1, distance);\n for (const p2 of query) {\n if (p1 === p2 || !p2.options.move.attract.enable || p2.destroyed || p2.spawning) {\n continue;\n }\n const pos2 = p2.getPosition(), { dx, dy } = (0, Utils_1.getDistances)(pos1, pos2), rotate = p1.options.move.attract.rotate, ax = dx / (rotate.x * 1000), ay = dy / (rotate.y * 1000), p1Factor = p2.size.value / p1.size.value, p2Factor = 1 / p1Factor;\n p1.velocity.x -= ax * p1Factor;\n p1.velocity.y -= ay * p1Factor;\n p2.velocity.x += ax * p2Factor;\n p2.velocity.y += ay * p2Factor;\n }\n }\n isEnabled(particle) {\n return particle.options.move.attract.enable;\n }\n reset() {\n }\n}\nexports.Attractor = Attractor;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL1BhcnRpY2xlcy9BdHRyYWN0L0F0dHJhY3Rvci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxpQkFBaUI7QUFDakIsZ0JBQWdCLG1CQUFPLENBQUMsaUVBQWdCO0FBQ3hDLGtDQUFrQyxtQkFBTyxDQUFDLHlHQUF1QztBQUNqRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkNBQTZDLFNBQVM7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9JbnRlcmFjdGlvbnMvUGFydGljbGVzL0F0dHJhY3QvQXR0cmFjdG9yLmpzP2Y3YWUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkF0dHJhY3RvciA9IHZvaWQgMDtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vVXRpbHNcIik7XG5jb25zdCBQYXJ0aWNsZXNJbnRlcmFjdG9yQmFzZV8xID0gcmVxdWlyZShcIi4uLy4uLy4uL0NvcmUvUGFydGljbGVzSW50ZXJhY3RvckJhc2VcIik7XG5jbGFzcyBBdHRyYWN0b3IgZXh0ZW5kcyBQYXJ0aWNsZXNJbnRlcmFjdG9yQmFzZV8xLlBhcnRpY2xlc0ludGVyYWN0b3JCYXNlIHtcbiAgICBjb25zdHJ1Y3Rvcihjb250YWluZXIpIHtcbiAgICAgICAgc3VwZXIoY29udGFpbmVyKTtcbiAgICB9XG4gICAgaW50ZXJhY3QocDEpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lciwgZGlzdGFuY2UgPSAoX2EgPSBwMS5yZXRpbmEuYXR0cmFjdERpc3RhbmNlKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBjb250YWluZXIucmV0aW5hLmF0dHJhY3REaXN0YW5jZSwgcG9zMSA9IHAxLmdldFBvc2l0aW9uKCksIHF1ZXJ5ID0gY29udGFpbmVyLnBhcnRpY2xlcy5xdWFkVHJlZS5xdWVyeUNpcmNsZShwb3MxLCBkaXN0YW5jZSk7XG4gICAgICAgIGZvciAoY29uc3QgcDIgb2YgcXVlcnkpIHtcbiAgICAgICAgICAgIGlmIChwMSA9PT0gcDIgfHwgIXAyLm9wdGlvbnMubW92ZS5hdHRyYWN0LmVuYWJsZSB8fCBwMi5kZXN0cm95ZWQgfHwgcDIuc3Bhd25pbmcpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHBvczIgPSBwMi5nZXRQb3NpdGlvbigpLCB7IGR4LCBkeSB9ID0gKDAsIFV0aWxzXzEuZ2V0RGlzdGFuY2VzKShwb3MxLCBwb3MyKSwgcm90YXRlID0gcDEub3B0aW9ucy5tb3ZlLmF0dHJhY3Qucm90YXRlLCBheCA9IGR4IC8gKHJvdGF0ZS54ICogMTAwMCksIGF5ID0gZHkgLyAocm90YXRlLnkgKiAxMDAwKSwgcDFGYWN0b3IgPSBwMi5zaXplLnZhbHVlIC8gcDEuc2l6ZS52YWx1ZSwgcDJGYWN0b3IgPSAxIC8gcDFGYWN0b3I7XG4gICAgICAgICAgICBwMS52ZWxvY2l0eS54IC09IGF4ICogcDFGYWN0b3I7XG4gICAgICAgICAgICBwMS52ZWxvY2l0eS55IC09IGF5ICogcDFGYWN0b3I7XG4gICAgICAgICAgICBwMi52ZWxvY2l0eS54ICs9IGF4ICogcDJGYWN0b3I7XG4gICAgICAgICAgICBwMi52ZWxvY2l0eS55ICs9IGF5ICogcDJGYWN0b3I7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaXNFbmFibGVkKHBhcnRpY2xlKSB7XG4gICAgICAgIHJldHVybiBwYXJ0aWNsZS5vcHRpb25zLm1vdmUuYXR0cmFjdC5lbmFibGU7XG4gICAgfVxuICAgIHJlc2V0KCkge1xuICAgIH1cbn1cbmV4cG9ydHMuQXR0cmFjdG9yID0gQXR0cmFjdG9yO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/Particles/Attract/Attractor.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/Particles/Attract/index.js": +/*!**************************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/Particles/Attract/index.js ***! + \**************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadParticlesAttractInteraction = void 0;\nconst Attractor_1 = __webpack_require__(/*! ./Attractor */ \"./node_modules/tsparticles/Interactions/Particles/Attract/Attractor.js\");\nasync function loadParticlesAttractInteraction(tsParticles) {\n await tsParticles.addInteractor(\"particlesAttract\", (container) => new Attractor_1.Attractor(container));\n}\nexports.loadParticlesAttractInteraction = loadParticlesAttractInteraction;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL1BhcnRpY2xlcy9BdHRyYWN0L2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHVDQUF1QztBQUN2QyxvQkFBb0IsbUJBQU8sQ0FBQywyRkFBYTtBQUN6QztBQUNBO0FBQ0E7QUFDQSx1Q0FBdUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0ludGVyYWN0aW9ucy9QYXJ0aWNsZXMvQXR0cmFjdC9pbmRleC5qcz80YjRkIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5sb2FkUGFydGljbGVzQXR0cmFjdEludGVyYWN0aW9uID0gdm9pZCAwO1xuY29uc3QgQXR0cmFjdG9yXzEgPSByZXF1aXJlKFwiLi9BdHRyYWN0b3JcIik7XG5hc3luYyBmdW5jdGlvbiBsb2FkUGFydGljbGVzQXR0cmFjdEludGVyYWN0aW9uKHRzUGFydGljbGVzKSB7XG4gICAgYXdhaXQgdHNQYXJ0aWNsZXMuYWRkSW50ZXJhY3RvcihcInBhcnRpY2xlc0F0dHJhY3RcIiwgKGNvbnRhaW5lcikgPT4gbmV3IEF0dHJhY3Rvcl8xLkF0dHJhY3Rvcihjb250YWluZXIpKTtcbn1cbmV4cG9ydHMubG9hZFBhcnRpY2xlc0F0dHJhY3RJbnRlcmFjdGlvbiA9IGxvYWRQYXJ0aWNsZXNBdHRyYWN0SW50ZXJhY3Rpb247XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/Particles/Attract/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/Particles/Collisions/Collider.js": +/*!********************************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/Particles/Collisions/Collider.js ***! + \********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Collider = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst Utils_1 = __webpack_require__(/*! ../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst ParticlesInteractorBase_1 = __webpack_require__(/*! ../../../Core/ParticlesInteractorBase */ \"./node_modules/tsparticles/Core/ParticlesInteractorBase.js\");\nfunction bounce(p1, p2) {\n (0, Utils_1.circleBounce)((0, Utils_1.circleBounceDataFromParticle)(p1), (0, Utils_1.circleBounceDataFromParticle)(p2));\n}\nfunction destroy(p1, p2) {\n if (!p1.unbreakable && !p2.unbreakable) {\n bounce(p1, p2);\n }\n if (p1.getRadius() === undefined && p2.getRadius() !== undefined) {\n p1.destroy();\n }\n else if (p1.getRadius() !== undefined && p2.getRadius() === undefined) {\n p2.destroy();\n }\n else if (p1.getRadius() !== undefined && p2.getRadius() !== undefined) {\n if (p1.getRadius() >= p2.getRadius()) {\n p2.destroy();\n }\n else {\n p1.destroy();\n }\n }\n}\nclass Collider extends ParticlesInteractorBase_1.ParticlesInteractorBase {\n constructor(container) {\n super(container);\n }\n isEnabled(particle) {\n return particle.options.collisions.enable;\n }\n reset() {\n }\n interact(p1) {\n const container = this.container;\n const pos1 = p1.getPosition();\n const radius1 = p1.getRadius();\n const query = container.particles.quadTree.queryCircle(pos1, radius1 * 2);\n for (const p2 of query) {\n if (p1 === p2 ||\n !p2.options.collisions.enable ||\n p1.options.collisions.mode !== p2.options.collisions.mode ||\n p2.destroyed ||\n p2.spawning) {\n continue;\n }\n const pos2 = p2.getPosition();\n if (Math.round(pos1.z) !== Math.round(pos2.z)) {\n continue;\n }\n const dist = (0, Utils_1.getDistance)(pos1, pos2);\n const radius2 = p2.getRadius();\n const distP = radius1 + radius2;\n if (dist <= distP) {\n this.resolveCollision(p1, p2);\n }\n }\n }\n resolveCollision(p1, p2) {\n switch (p1.options.collisions.mode) {\n case Enums_1.CollisionMode.absorb: {\n this.absorb(p1, p2);\n break;\n }\n case Enums_1.CollisionMode.bounce: {\n bounce(p1, p2);\n break;\n }\n case Enums_1.CollisionMode.destroy: {\n destroy(p1, p2);\n break;\n }\n }\n }\n absorb(p1, p2) {\n const container = this.container;\n const fps = container.fpsLimit / 1000;\n if (p1.getRadius() === undefined && p2.getRadius() !== undefined) {\n p1.destroy();\n }\n else if (p1.getRadius() !== undefined && p2.getRadius() === undefined) {\n p2.destroy();\n }\n else if (p1.getRadius() !== undefined && p2.getRadius() !== undefined) {\n if (p1.getRadius() >= p2.getRadius()) {\n const factor = (0, Utils_1.clamp)(p1.getRadius() / p2.getRadius(), 0, p2.getRadius()) * fps;\n p1.size.value += factor;\n p2.size.value -= factor;\n if (p2.getRadius() <= container.retina.pixelRatio) {\n p2.size.value = 0;\n p2.destroy();\n }\n }\n else {\n const factor = (0, Utils_1.clamp)(p2.getRadius() / p1.getRadius(), 0, p1.getRadius()) * fps;\n p1.size.value -= factor;\n p2.size.value += factor;\n if (p1.getRadius() <= container.retina.pixelRatio) {\n p1.size.value = 0;\n p1.destroy();\n }\n }\n }\n }\n}\nexports.Collider = Collider;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL1BhcnRpY2xlcy9Db2xsaXNpb25zL0NvbGxpZGVyLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGdCQUFnQjtBQUNoQixnQkFBZ0IsbUJBQU8sQ0FBQyxpRUFBZ0I7QUFDeEMsZ0JBQWdCLG1CQUFPLENBQUMsaUVBQWdCO0FBQ3hDLGtDQUFrQyxtQkFBTyxDQUFDLHlHQUF1QztBQUNqRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL1BhcnRpY2xlcy9Db2xsaXNpb25zL0NvbGxpZGVyLmpzPzRkNjkiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkNvbGxpZGVyID0gdm9pZCAwO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9FbnVtc1wiKTtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vVXRpbHNcIik7XG5jb25zdCBQYXJ0aWNsZXNJbnRlcmFjdG9yQmFzZV8xID0gcmVxdWlyZShcIi4uLy4uLy4uL0NvcmUvUGFydGljbGVzSW50ZXJhY3RvckJhc2VcIik7XG5mdW5jdGlvbiBib3VuY2UocDEsIHAyKSB7XG4gICAgKDAsIFV0aWxzXzEuY2lyY2xlQm91bmNlKSgoMCwgVXRpbHNfMS5jaXJjbGVCb3VuY2VEYXRhRnJvbVBhcnRpY2xlKShwMSksICgwLCBVdGlsc18xLmNpcmNsZUJvdW5jZURhdGFGcm9tUGFydGljbGUpKHAyKSk7XG59XG5mdW5jdGlvbiBkZXN0cm95KHAxLCBwMikge1xuICAgIGlmICghcDEudW5icmVha2FibGUgJiYgIXAyLnVuYnJlYWthYmxlKSB7XG4gICAgICAgIGJvdW5jZShwMSwgcDIpO1xuICAgIH1cbiAgICBpZiAocDEuZ2V0UmFkaXVzKCkgPT09IHVuZGVmaW5lZCAmJiBwMi5nZXRSYWRpdXMoKSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHAxLmRlc3Ryb3koKTtcbiAgICB9XG4gICAgZWxzZSBpZiAocDEuZ2V0UmFkaXVzKCkgIT09IHVuZGVmaW5lZCAmJiBwMi5nZXRSYWRpdXMoKSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHAyLmRlc3Ryb3koKTtcbiAgICB9XG4gICAgZWxzZSBpZiAocDEuZ2V0UmFkaXVzKCkgIT09IHVuZGVmaW5lZCAmJiBwMi5nZXRSYWRpdXMoKSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChwMS5nZXRSYWRpdXMoKSA+PSBwMi5nZXRSYWRpdXMoKSkge1xuICAgICAgICAgICAgcDIuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcDEuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgfVxufVxuY2xhc3MgQ29sbGlkZXIgZXh0ZW5kcyBQYXJ0aWNsZXNJbnRlcmFjdG9yQmFzZV8xLlBhcnRpY2xlc0ludGVyYWN0b3JCYXNlIHtcbiAgICBjb25zdHJ1Y3Rvcihjb250YWluZXIpIHtcbiAgICAgICAgc3VwZXIoY29udGFpbmVyKTtcbiAgICB9XG4gICAgaXNFbmFibGVkKHBhcnRpY2xlKSB7XG4gICAgICAgIHJldHVybiBwYXJ0aWNsZS5vcHRpb25zLmNvbGxpc2lvbnMuZW5hYmxlO1xuICAgIH1cbiAgICByZXNldCgpIHtcbiAgICB9XG4gICAgaW50ZXJhY3QocDEpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXI7XG4gICAgICAgIGNvbnN0IHBvczEgPSBwMS5nZXRQb3NpdGlvbigpO1xuICAgICAgICBjb25zdCByYWRpdXMxID0gcDEuZ2V0UmFkaXVzKCk7XG4gICAgICAgIGNvbnN0IHF1ZXJ5ID0gY29udGFpbmVyLnBhcnRpY2xlcy5xdWFkVHJlZS5xdWVyeUNpcmNsZShwb3MxLCByYWRpdXMxICogMik7XG4gICAgICAgIGZvciAoY29uc3QgcDIgb2YgcXVlcnkpIHtcbiAgICAgICAgICAgIGlmIChwMSA9PT0gcDIgfHxcbiAgICAgICAgICAgICAgICAhcDIub3B0aW9ucy5jb2xsaXNpb25zLmVuYWJsZSB8fFxuICAgICAgICAgICAgICAgIHAxLm9wdGlvbnMuY29sbGlzaW9ucy5tb2RlICE9PSBwMi5vcHRpb25zLmNvbGxpc2lvbnMubW9kZSB8fFxuICAgICAgICAgICAgICAgIHAyLmRlc3Ryb3llZCB8fFxuICAgICAgICAgICAgICAgIHAyLnNwYXduaW5nKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBwb3MyID0gcDIuZ2V0UG9zaXRpb24oKTtcbiAgICAgICAgICAgIGlmIChNYXRoLnJvdW5kKHBvczEueikgIT09IE1hdGgucm91bmQocG9zMi56KSkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgZGlzdCA9ICgwLCBVdGlsc18xLmdldERpc3RhbmNlKShwb3MxLCBwb3MyKTtcbiAgICAgICAgICAgIGNvbnN0IHJhZGl1czIgPSBwMi5nZXRSYWRpdXMoKTtcbiAgICAgICAgICAgIGNvbnN0IGRpc3RQID0gcmFkaXVzMSArIHJhZGl1czI7XG4gICAgICAgICAgICBpZiAoZGlzdCA8PSBkaXN0UCkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVzb2x2ZUNvbGxpc2lvbihwMSwgcDIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJlc29sdmVDb2xsaXNpb24ocDEsIHAyKSB7XG4gICAgICAgIHN3aXRjaCAocDEub3B0aW9ucy5jb2xsaXNpb25zLm1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgRW51bXNfMS5Db2xsaXNpb25Nb2RlLmFic29yYjoge1xuICAgICAgICAgICAgICAgIHRoaXMuYWJzb3JiKHAxLCBwMik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEVudW1zXzEuQ29sbGlzaW9uTW9kZS5ib3VuY2U6IHtcbiAgICAgICAgICAgICAgICBib3VuY2UocDEsIHAyKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgRW51bXNfMS5Db2xsaXNpb25Nb2RlLmRlc3Ryb3k6IHtcbiAgICAgICAgICAgICAgICBkZXN0cm95KHAxLCBwMik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgYWJzb3JiKHAxLCBwMikge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgY29uc3QgZnBzID0gY29udGFpbmVyLmZwc0xpbWl0IC8gMTAwMDtcbiAgICAgICAgaWYgKHAxLmdldFJhZGl1cygpID09PSB1bmRlZmluZWQgJiYgcDIuZ2V0UmFkaXVzKCkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcDEuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHAxLmdldFJhZGl1cygpICE9PSB1bmRlZmluZWQgJiYgcDIuZ2V0UmFkaXVzKCkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcDIuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHAxLmdldFJhZGl1cygpICE9PSB1bmRlZmluZWQgJiYgcDIuZ2V0UmFkaXVzKCkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKHAxLmdldFJhZGl1cygpID49IHAyLmdldFJhZGl1cygpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmFjdG9yID0gKDAsIFV0aWxzXzEuY2xhbXApKHAxLmdldFJhZGl1cygpIC8gcDIuZ2V0UmFkaXVzKCksIDAsIHAyLmdldFJhZGl1cygpKSAqIGZwcztcbiAgICAgICAgICAgICAgICBwMS5zaXplLnZhbHVlICs9IGZhY3RvcjtcbiAgICAgICAgICAgICAgICBwMi5zaXplLnZhbHVlIC09IGZhY3RvcjtcbiAgICAgICAgICAgICAgICBpZiAocDIuZ2V0UmFkaXVzKCkgPD0gY29udGFpbmVyLnJldGluYS5waXhlbFJhdGlvKSB7XG4gICAgICAgICAgICAgICAgICAgIHAyLnNpemUudmFsdWUgPSAwO1xuICAgICAgICAgICAgICAgICAgICBwMi5kZXN0cm95KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmFjdG9yID0gKDAsIFV0aWxzXzEuY2xhbXApKHAyLmdldFJhZGl1cygpIC8gcDEuZ2V0UmFkaXVzKCksIDAsIHAxLmdldFJhZGl1cygpKSAqIGZwcztcbiAgICAgICAgICAgICAgICBwMS5zaXplLnZhbHVlIC09IGZhY3RvcjtcbiAgICAgICAgICAgICAgICBwMi5zaXplLnZhbHVlICs9IGZhY3RvcjtcbiAgICAgICAgICAgICAgICBpZiAocDEuZ2V0UmFkaXVzKCkgPD0gY29udGFpbmVyLnJldGluYS5waXhlbFJhdGlvKSB7XG4gICAgICAgICAgICAgICAgICAgIHAxLnNpemUudmFsdWUgPSAwO1xuICAgICAgICAgICAgICAgICAgICBwMS5kZXN0cm95KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5Db2xsaWRlciA9IENvbGxpZGVyO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/Particles/Collisions/Collider.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/Particles/Collisions/index.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/Particles/Collisions/index.js ***! + \*****************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadParticlesCollisionsInteraction = void 0;\nconst Collider_1 = __webpack_require__(/*! ./Collider */ \"./node_modules/tsparticles/Interactions/Particles/Collisions/Collider.js\");\nasync function loadParticlesCollisionsInteraction(tsParticles) {\n await tsParticles.addInteractor(\"particlesCollisions\", (container) => new Collider_1.Collider(container));\n}\nexports.loadParticlesCollisionsInteraction = loadParticlesCollisionsInteraction;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL1BhcnRpY2xlcy9Db2xsaXNpb25zL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELDBDQUEwQztBQUMxQyxtQkFBbUIsbUJBQU8sQ0FBQyw0RkFBWTtBQUN2QztBQUNBO0FBQ0E7QUFDQSwwQ0FBMEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0ludGVyYWN0aW9ucy9QYXJ0aWNsZXMvQ29sbGlzaW9ucy9pbmRleC5qcz8xNDY2Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5sb2FkUGFydGljbGVzQ29sbGlzaW9uc0ludGVyYWN0aW9uID0gdm9pZCAwO1xuY29uc3QgQ29sbGlkZXJfMSA9IHJlcXVpcmUoXCIuL0NvbGxpZGVyXCIpO1xuYXN5bmMgZnVuY3Rpb24gbG9hZFBhcnRpY2xlc0NvbGxpc2lvbnNJbnRlcmFjdGlvbih0c1BhcnRpY2xlcykge1xuICAgIGF3YWl0IHRzUGFydGljbGVzLmFkZEludGVyYWN0b3IoXCJwYXJ0aWNsZXNDb2xsaXNpb25zXCIsIChjb250YWluZXIpID0+IG5ldyBDb2xsaWRlcl8xLkNvbGxpZGVyKGNvbnRhaW5lcikpO1xufVxuZXhwb3J0cy5sb2FkUGFydGljbGVzQ29sbGlzaW9uc0ludGVyYWN0aW9uID0gbG9hZFBhcnRpY2xlc0NvbGxpc2lvbnNJbnRlcmFjdGlvbjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/Particles/Collisions/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/Particles/Links/LinkInstance.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/Particles/Links/LinkInstance.js ***! + \*******************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.LinkInstance = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass LinkInstance {\n constructor(container) {\n this.container = container;\n }\n particleCreated(particle) {\n const linkParticle = particle;\n linkParticle.links = [];\n }\n particleDestroyed(particle) {\n const linkParticle = particle;\n linkParticle.links = [];\n }\n drawParticle(context, particle) {\n const linkParticle = particle;\n const container = this.container;\n const particles = container.particles;\n const pOptions = particle.options;\n if (linkParticle.links.length > 0) {\n context.save();\n const p1Links = linkParticle.links.filter((l) => {\n const linkFreq = container.particles.getLinkFrequency(linkParticle, l.destination);\n return linkFreq <= pOptions.links.frequency;\n });\n for (const link of p1Links) {\n const p2 = link.destination;\n if (pOptions.links.triangles.enable) {\n const links = p1Links.map((l) => l.destination);\n const vertices = p2.links.filter((t) => {\n const linkFreq = container.particles.getLinkFrequency(p2, t.destination);\n return linkFreq <= p2.options.links.frequency && links.indexOf(t.destination) >= 0;\n });\n if (vertices.length) {\n for (const vertex of vertices) {\n const p3 = vertex.destination;\n const triangleFreq = particles.getTriangleFrequency(linkParticle, p2, p3);\n if (triangleFreq > pOptions.links.triangles.frequency) {\n continue;\n }\n this.drawLinkTriangle(linkParticle, link, vertex);\n }\n }\n }\n if (link.opacity > 0 && container.retina.linksWidth > 0) {\n this.drawLinkLine(linkParticle, link);\n }\n }\n context.restore();\n }\n }\n drawLinkTriangle(p1, link1, link2) {\n var _a;\n const container = this.container;\n const options = container.actualOptions;\n const p2 = link1.destination;\n const p3 = link2.destination;\n const triangleOptions = p1.options.links.triangles;\n const opacityTriangle = (_a = triangleOptions.opacity) !== null && _a !== void 0 ? _a : (link1.opacity + link2.opacity) / 2;\n if (opacityTriangle <= 0) {\n return;\n }\n const pos1 = p1.getPosition();\n const pos2 = p2.getPosition();\n const pos3 = p3.getPosition();\n container.canvas.draw((ctx) => {\n if ((0, Utils_1.getDistance)(pos1, pos2) > container.retina.linksDistance ||\n (0, Utils_1.getDistance)(pos3, pos2) > container.retina.linksDistance ||\n (0, Utils_1.getDistance)(pos3, pos1) > container.retina.linksDistance) {\n return;\n }\n let colorTriangle = (0, Utils_1.colorToRgb)(triangleOptions.color);\n if (!colorTriangle) {\n const linksOptions = p1.options.links;\n const linkColor = linksOptions.id !== undefined\n ? container.particles.linksColors.get(linksOptions.id)\n : container.particles.linksColor;\n colorTriangle = (0, Utils_1.getLinkColor)(p1, p2, linkColor);\n }\n if (!colorTriangle) {\n return;\n }\n (0, Utils_1.drawLinkTriangle)(ctx, pos1, pos2, pos3, options.backgroundMask.enable, options.backgroundMask.composite, colorTriangle, opacityTriangle);\n });\n }\n drawLinkLine(p1, link) {\n const container = this.container;\n const options = container.actualOptions;\n const p2 = link.destination;\n let opacity = link.opacity;\n const pos1 = p1.getPosition();\n const pos2 = p2.getPosition();\n container.canvas.draw((ctx) => {\n var _a, _b;\n let colorLine;\n const twinkle = p1.options.twinkle.lines;\n if (twinkle.enable) {\n const twinkleFreq = twinkle.frequency;\n const twinkleRgb = (0, Utils_1.colorToRgb)(twinkle.color);\n const twinkling = Math.random() < twinkleFreq;\n if (twinkling && twinkleRgb !== undefined) {\n colorLine = twinkleRgb;\n opacity = twinkle.opacity;\n }\n }\n if (!colorLine) {\n const linksOptions = p1.options.links;\n const linkColor = linksOptions.id !== undefined\n ? container.particles.linksColors.get(linksOptions.id)\n : container.particles.linksColor;\n colorLine = (0, Utils_1.getLinkColor)(p1, p2, linkColor);\n }\n if (!colorLine) {\n return;\n }\n const width = (_a = p1.retina.linksWidth) !== null && _a !== void 0 ? _a : container.retina.linksWidth;\n const maxDistance = (_b = p1.retina.linksDistance) !== null && _b !== void 0 ? _b : container.retina.linksDistance;\n (0, Utils_1.drawLinkLine)(ctx, width, pos1, pos2, maxDistance, container.canvas.size, p1.options.links.warp, options.backgroundMask.enable, options.backgroundMask.composite, colorLine, opacity, p1.options.links.shadow);\n });\n }\n}\nexports.LinkInstance = LinkInstance;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL1BhcnRpY2xlcy9MaW5rcy9MaW5rSW5zdGFuY2UuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsb0JBQW9CO0FBQ3BCLGdCQUFnQixtQkFBTyxDQUFDLGlFQUFnQjtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxvQkFBb0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0ludGVyYWN0aW9ucy9QYXJ0aWNsZXMvTGlua3MvTGlua0luc3RhbmNlLmpzP2JkYjUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkxpbmtJbnN0YW5jZSA9IHZvaWQgMDtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vVXRpbHNcIik7XG5jbGFzcyBMaW5rSW5zdGFuY2Uge1xuICAgIGNvbnN0cnVjdG9yKGNvbnRhaW5lcikge1xuICAgICAgICB0aGlzLmNvbnRhaW5lciA9IGNvbnRhaW5lcjtcbiAgICB9XG4gICAgcGFydGljbGVDcmVhdGVkKHBhcnRpY2xlKSB7XG4gICAgICAgIGNvbnN0IGxpbmtQYXJ0aWNsZSA9IHBhcnRpY2xlO1xuICAgICAgICBsaW5rUGFydGljbGUubGlua3MgPSBbXTtcbiAgICB9XG4gICAgcGFydGljbGVEZXN0cm95ZWQocGFydGljbGUpIHtcbiAgICAgICAgY29uc3QgbGlua1BhcnRpY2xlID0gcGFydGljbGU7XG4gICAgICAgIGxpbmtQYXJ0aWNsZS5saW5rcyA9IFtdO1xuICAgIH1cbiAgICBkcmF3UGFydGljbGUoY29udGV4dCwgcGFydGljbGUpIHtcbiAgICAgICAgY29uc3QgbGlua1BhcnRpY2xlID0gcGFydGljbGU7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyO1xuICAgICAgICBjb25zdCBwYXJ0aWNsZXMgPSBjb250YWluZXIucGFydGljbGVzO1xuICAgICAgICBjb25zdCBwT3B0aW9ucyA9IHBhcnRpY2xlLm9wdGlvbnM7XG4gICAgICAgIGlmIChsaW5rUGFydGljbGUubGlua3MubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29udGV4dC5zYXZlKCk7XG4gICAgICAgICAgICBjb25zdCBwMUxpbmtzID0gbGlua1BhcnRpY2xlLmxpbmtzLmZpbHRlcigobCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpbmtGcmVxID0gY29udGFpbmVyLnBhcnRpY2xlcy5nZXRMaW5rRnJlcXVlbmN5KGxpbmtQYXJ0aWNsZSwgbC5kZXN0aW5hdGlvbik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGxpbmtGcmVxIDw9IHBPcHRpb25zLmxpbmtzLmZyZXF1ZW5jeTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZm9yIChjb25zdCBsaW5rIG9mIHAxTGlua3MpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwMiA9IGxpbmsuZGVzdGluYXRpb247XG4gICAgICAgICAgICAgICAgaWYgKHBPcHRpb25zLmxpbmtzLnRyaWFuZ2xlcy5lbmFibGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGlua3MgPSBwMUxpbmtzLm1hcCgobCkgPT4gbC5kZXN0aW5hdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZlcnRpY2VzID0gcDIubGlua3MuZmlsdGVyKCh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsaW5rRnJlcSA9IGNvbnRhaW5lci5wYXJ0aWNsZXMuZ2V0TGlua0ZyZXF1ZW5jeShwMiwgdC5kZXN0aW5hdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbGlua0ZyZXEgPD0gcDIub3B0aW9ucy5saW5rcy5mcmVxdWVuY3kgJiYgbGlua3MuaW5kZXhPZih0LmRlc3RpbmF0aW9uKSA+PSAwO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZlcnRpY2VzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCB2ZXJ0ZXggb2YgdmVydGljZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwMyA9IHZlcnRleC5kZXN0aW5hdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0cmlhbmdsZUZyZXEgPSBwYXJ0aWNsZXMuZ2V0VHJpYW5nbGVGcmVxdWVuY3kobGlua1BhcnRpY2xlLCBwMiwgcDMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0cmlhbmdsZUZyZXEgPiBwT3B0aW9ucy5saW5rcy50cmlhbmdsZXMuZnJlcXVlbmN5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRyYXdMaW5rVHJpYW5nbGUobGlua1BhcnRpY2xlLCBsaW5rLCB2ZXJ0ZXgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChsaW5rLm9wYWNpdHkgPiAwICYmIGNvbnRhaW5lci5yZXRpbmEubGlua3NXaWR0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kcmF3TGlua0xpbmUobGlua1BhcnRpY2xlLCBsaW5rKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb250ZXh0LnJlc3RvcmUoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBkcmF3TGlua1RyaWFuZ2xlKHAxLCBsaW5rMSwgbGluazIpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IGNvbnRhaW5lci5hY3R1YWxPcHRpb25zO1xuICAgICAgICBjb25zdCBwMiA9IGxpbmsxLmRlc3RpbmF0aW9uO1xuICAgICAgICBjb25zdCBwMyA9IGxpbmsyLmRlc3RpbmF0aW9uO1xuICAgICAgICBjb25zdCB0cmlhbmdsZU9wdGlvbnMgPSBwMS5vcHRpb25zLmxpbmtzLnRyaWFuZ2xlcztcbiAgICAgICAgY29uc3Qgb3BhY2l0eVRyaWFuZ2xlID0gKF9hID0gdHJpYW5nbGVPcHRpb25zLm9wYWNpdHkpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IChsaW5rMS5vcGFjaXR5ICsgbGluazIub3BhY2l0eSkgLyAyO1xuICAgICAgICBpZiAob3BhY2l0eVRyaWFuZ2xlIDw9IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwb3MxID0gcDEuZ2V0UG9zaXRpb24oKTtcbiAgICAgICAgY29uc3QgcG9zMiA9IHAyLmdldFBvc2l0aW9uKCk7XG4gICAgICAgIGNvbnN0IHBvczMgPSBwMy5nZXRQb3NpdGlvbigpO1xuICAgICAgICBjb250YWluZXIuY2FudmFzLmRyYXcoKGN0eCkgPT4ge1xuICAgICAgICAgICAgaWYgKCgwLCBVdGlsc18xLmdldERpc3RhbmNlKShwb3MxLCBwb3MyKSA+IGNvbnRhaW5lci5yZXRpbmEubGlua3NEaXN0YW5jZSB8fFxuICAgICAgICAgICAgICAgICgwLCBVdGlsc18xLmdldERpc3RhbmNlKShwb3MzLCBwb3MyKSA+IGNvbnRhaW5lci5yZXRpbmEubGlua3NEaXN0YW5jZSB8fFxuICAgICAgICAgICAgICAgICgwLCBVdGlsc18xLmdldERpc3RhbmNlKShwb3MzLCBwb3MxKSA+IGNvbnRhaW5lci5yZXRpbmEubGlua3NEaXN0YW5jZSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBjb2xvclRyaWFuZ2xlID0gKDAsIFV0aWxzXzEuY29sb3JUb1JnYikodHJpYW5nbGVPcHRpb25zLmNvbG9yKTtcbiAgICAgICAgICAgIGlmICghY29sb3JUcmlhbmdsZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpbmtzT3B0aW9ucyA9IHAxLm9wdGlvbnMubGlua3M7XG4gICAgICAgICAgICAgICAgY29uc3QgbGlua0NvbG9yID0gbGlua3NPcHRpb25zLmlkICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgPyBjb250YWluZXIucGFydGljbGVzLmxpbmtzQ29sb3JzLmdldChsaW5rc09wdGlvbnMuaWQpXG4gICAgICAgICAgICAgICAgICAgIDogY29udGFpbmVyLnBhcnRpY2xlcy5saW5rc0NvbG9yO1xuICAgICAgICAgICAgICAgIGNvbG9yVHJpYW5nbGUgPSAoMCwgVXRpbHNfMS5nZXRMaW5rQ29sb3IpKHAxLCBwMiwgbGlua0NvbG9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghY29sb3JUcmlhbmdsZSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICgwLCBVdGlsc18xLmRyYXdMaW5rVHJpYW5nbGUpKGN0eCwgcG9zMSwgcG9zMiwgcG9zMywgb3B0aW9ucy5iYWNrZ3JvdW5kTWFzay5lbmFibGUsIG9wdGlvbnMuYmFja2dyb3VuZE1hc2suY29tcG9zaXRlLCBjb2xvclRyaWFuZ2xlLCBvcGFjaXR5VHJpYW5nbGUpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgZHJhd0xpbmtMaW5lKHAxLCBsaW5rKSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyO1xuICAgICAgICBjb25zdCBvcHRpb25zID0gY29udGFpbmVyLmFjdHVhbE9wdGlvbnM7XG4gICAgICAgIGNvbnN0IHAyID0gbGluay5kZXN0aW5hdGlvbjtcbiAgICAgICAgbGV0IG9wYWNpdHkgPSBsaW5rLm9wYWNpdHk7XG4gICAgICAgIGNvbnN0IHBvczEgPSBwMS5nZXRQb3NpdGlvbigpO1xuICAgICAgICBjb25zdCBwb3MyID0gcDIuZ2V0UG9zaXRpb24oKTtcbiAgICAgICAgY29udGFpbmVyLmNhbnZhcy5kcmF3KChjdHgpID0+IHtcbiAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICBsZXQgY29sb3JMaW5lO1xuICAgICAgICAgICAgY29uc3QgdHdpbmtsZSA9IHAxLm9wdGlvbnMudHdpbmtsZS5saW5lcztcbiAgICAgICAgICAgIGlmICh0d2lua2xlLmVuYWJsZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHR3aW5rbGVGcmVxID0gdHdpbmtsZS5mcmVxdWVuY3k7XG4gICAgICAgICAgICAgICAgY29uc3QgdHdpbmtsZVJnYiA9ICgwLCBVdGlsc18xLmNvbG9yVG9SZ2IpKHR3aW5rbGUuY29sb3IpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHR3aW5rbGluZyA9IE1hdGgucmFuZG9tKCkgPCB0d2lua2xlRnJlcTtcbiAgICAgICAgICAgICAgICBpZiAodHdpbmtsaW5nICYmIHR3aW5rbGVSZ2IgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICBjb2xvckxpbmUgPSB0d2lua2xlUmdiO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5ID0gdHdpbmtsZS5vcGFjaXR5O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghY29sb3JMaW5lKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGlua3NPcHRpb25zID0gcDEub3B0aW9ucy5saW5rcztcbiAgICAgICAgICAgICAgICBjb25zdCBsaW5rQ29sb3IgPSBsaW5rc09wdGlvbnMuaWQgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICA/IGNvbnRhaW5lci5wYXJ0aWNsZXMubGlua3NDb2xvcnMuZ2V0KGxpbmtzT3B0aW9ucy5pZClcbiAgICAgICAgICAgICAgICAgICAgOiBjb250YWluZXIucGFydGljbGVzLmxpbmtzQ29sb3I7XG4gICAgICAgICAgICAgICAgY29sb3JMaW5lID0gKDAsIFV0aWxzXzEuZ2V0TGlua0NvbG9yKShwMSwgcDIsIGxpbmtDb2xvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWNvbG9yTGluZSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gKF9hID0gcDEucmV0aW5hLmxpbmtzV2lkdGgpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGNvbnRhaW5lci5yZXRpbmEubGlua3NXaWR0aDtcbiAgICAgICAgICAgIGNvbnN0IG1heERpc3RhbmNlID0gKF9iID0gcDEucmV0aW5hLmxpbmtzRGlzdGFuY2UpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IGNvbnRhaW5lci5yZXRpbmEubGlua3NEaXN0YW5jZTtcbiAgICAgICAgICAgICgwLCBVdGlsc18xLmRyYXdMaW5rTGluZSkoY3R4LCB3aWR0aCwgcG9zMSwgcG9zMiwgbWF4RGlzdGFuY2UsIGNvbnRhaW5lci5jYW52YXMuc2l6ZSwgcDEub3B0aW9ucy5saW5rcy53YXJwLCBvcHRpb25zLmJhY2tncm91bmRNYXNrLmVuYWJsZSwgb3B0aW9ucy5iYWNrZ3JvdW5kTWFzay5jb21wb3NpdGUsIGNvbG9yTGluZSwgb3BhY2l0eSwgcDEub3B0aW9ucy5saW5rcy5zaGFkb3cpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5leHBvcnRzLkxpbmtJbnN0YW5jZSA9IExpbmtJbnN0YW5jZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/Particles/Links/LinkInstance.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/Particles/Links/Linker.js": +/*!*************************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/Particles/Links/Linker.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Linker = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst ParticlesInteractorBase_1 = __webpack_require__(/*! ../../../Core/ParticlesInteractorBase */ \"./node_modules/tsparticles/Core/ParticlesInteractorBase.js\");\nfunction getLinkDistance(pos1, pos2, optDistance, canvasSize, warp) {\n let distance = (0, Utils_1.getDistance)(pos1, pos2);\n if (!warp || distance <= optDistance) {\n return distance;\n }\n const pos2NE = {\n x: pos2.x - canvasSize.width,\n y: pos2.y,\n };\n distance = (0, Utils_1.getDistance)(pos1, pos2NE);\n if (distance <= optDistance) {\n return distance;\n }\n const pos2SE = {\n x: pos2.x - canvasSize.width,\n y: pos2.y - canvasSize.height,\n };\n distance = (0, Utils_1.getDistance)(pos1, pos2SE);\n if (distance <= optDistance) {\n return distance;\n }\n const pos2SW = {\n x: pos2.x,\n y: pos2.y - canvasSize.height,\n };\n distance = (0, Utils_1.getDistance)(pos1, pos2SW);\n return distance;\n}\nclass Linker extends ParticlesInteractorBase_1.ParticlesInteractorBase {\n constructor(container) {\n super(container);\n }\n isEnabled(particle) {\n return particle.options.links.enable;\n }\n reset() {\n }\n interact(p1) {\n var _a;\n p1.links = [];\n const pos1 = p1.getPosition();\n const container = this.container;\n const canvasSize = container.canvas.size;\n if (pos1.x < 0 || pos1.y < 0 || pos1.x > canvasSize.width || pos1.y > canvasSize.height) {\n return;\n }\n const linkOpt1 = p1.options.links;\n const optOpacity = linkOpt1.opacity;\n const optDistance = (_a = p1.retina.linksDistance) !== null && _a !== void 0 ? _a : container.retina.linksDistance;\n const warp = linkOpt1.warp;\n const range = warp\n ? new Utils_1.CircleWarp(pos1.x, pos1.y, optDistance, canvasSize)\n : new Utils_1.Circle(pos1.x, pos1.y, optDistance);\n const query = container.particles.quadTree.query(range);\n for (const p2 of query) {\n const linkOpt2 = p2.options.links;\n if (p1 === p2 ||\n !linkOpt2.enable ||\n linkOpt1.id !== linkOpt2.id ||\n p2.spawning ||\n p2.destroyed ||\n p1.links.map((t) => t.destination).indexOf(p2) !== -1 ||\n p2.links.map((t) => t.destination).indexOf(p1) !== -1) {\n continue;\n }\n const pos2 = p2.getPosition();\n if (pos2.x < 0 || pos2.y < 0 || pos2.x > canvasSize.width || pos2.y > canvasSize.height) {\n continue;\n }\n const distance = getLinkDistance(pos1, pos2, optDistance, canvasSize, warp && linkOpt2.warp);\n if (distance > optDistance) {\n return;\n }\n const opacityLine = (1 - distance / optDistance) * optOpacity;\n this.setColor(p1);\n p1.links.push({\n destination: p2,\n opacity: opacityLine,\n });\n }\n }\n setColor(p1) {\n const container = this.container;\n const linksOptions = p1.options.links;\n let linkColor = linksOptions.id === undefined\n ? container.particles.linksColor\n : container.particles.linksColors.get(linksOptions.id);\n if (!linkColor) {\n const optColor = linksOptions.color;\n linkColor = (0, Utils_1.getLinkRandomColor)(optColor, linksOptions.blink, linksOptions.consent);\n if (linksOptions.id === undefined) {\n container.particles.linksColor = linkColor;\n }\n else {\n container.particles.linksColors.set(linksOptions.id, linkColor);\n }\n }\n }\n}\nexports.Linker = Linker;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL1BhcnRpY2xlcy9MaW5rcy9MaW5rZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsY0FBYztBQUNkLGdCQUFnQixtQkFBTyxDQUFDLGlFQUFnQjtBQUN4QyxrQ0FBa0MsbUJBQU8sQ0FBQyx5R0FBdUM7QUFDakY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9JbnRlcmFjdGlvbnMvUGFydGljbGVzL0xpbmtzL0xpbmtlci5qcz9jOTRmIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5MaW5rZXIgPSB2b2lkIDA7XG5jb25zdCBVdGlsc18xID0gcmVxdWlyZShcIi4uLy4uLy4uL1V0aWxzXCIpO1xuY29uc3QgUGFydGljbGVzSW50ZXJhY3RvckJhc2VfMSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9Db3JlL1BhcnRpY2xlc0ludGVyYWN0b3JCYXNlXCIpO1xuZnVuY3Rpb24gZ2V0TGlua0Rpc3RhbmNlKHBvczEsIHBvczIsIG9wdERpc3RhbmNlLCBjYW52YXNTaXplLCB3YXJwKSB7XG4gICAgbGV0IGRpc3RhbmNlID0gKDAsIFV0aWxzXzEuZ2V0RGlzdGFuY2UpKHBvczEsIHBvczIpO1xuICAgIGlmICghd2FycCB8fCBkaXN0YW5jZSA8PSBvcHREaXN0YW5jZSkge1xuICAgICAgICByZXR1cm4gZGlzdGFuY2U7XG4gICAgfVxuICAgIGNvbnN0IHBvczJORSA9IHtcbiAgICAgICAgeDogcG9zMi54IC0gY2FudmFzU2l6ZS53aWR0aCxcbiAgICAgICAgeTogcG9zMi55LFxuICAgIH07XG4gICAgZGlzdGFuY2UgPSAoMCwgVXRpbHNfMS5nZXREaXN0YW5jZSkocG9zMSwgcG9zMk5FKTtcbiAgICBpZiAoZGlzdGFuY2UgPD0gb3B0RGlzdGFuY2UpIHtcbiAgICAgICAgcmV0dXJuIGRpc3RhbmNlO1xuICAgIH1cbiAgICBjb25zdCBwb3MyU0UgPSB7XG4gICAgICAgIHg6IHBvczIueCAtIGNhbnZhc1NpemUud2lkdGgsXG4gICAgICAgIHk6IHBvczIueSAtIGNhbnZhc1NpemUuaGVpZ2h0LFxuICAgIH07XG4gICAgZGlzdGFuY2UgPSAoMCwgVXRpbHNfMS5nZXREaXN0YW5jZSkocG9zMSwgcG9zMlNFKTtcbiAgICBpZiAoZGlzdGFuY2UgPD0gb3B0RGlzdGFuY2UpIHtcbiAgICAgICAgcmV0dXJuIGRpc3RhbmNlO1xuICAgIH1cbiAgICBjb25zdCBwb3MyU1cgPSB7XG4gICAgICAgIHg6IHBvczIueCxcbiAgICAgICAgeTogcG9zMi55IC0gY2FudmFzU2l6ZS5oZWlnaHQsXG4gICAgfTtcbiAgICBkaXN0YW5jZSA9ICgwLCBVdGlsc18xLmdldERpc3RhbmNlKShwb3MxLCBwb3MyU1cpO1xuICAgIHJldHVybiBkaXN0YW5jZTtcbn1cbmNsYXNzIExpbmtlciBleHRlbmRzIFBhcnRpY2xlc0ludGVyYWN0b3JCYXNlXzEuUGFydGljbGVzSW50ZXJhY3RvckJhc2Uge1xuICAgIGNvbnN0cnVjdG9yKGNvbnRhaW5lcikge1xuICAgICAgICBzdXBlcihjb250YWluZXIpO1xuICAgIH1cbiAgICBpc0VuYWJsZWQocGFydGljbGUpIHtcbiAgICAgICAgcmV0dXJuIHBhcnRpY2xlLm9wdGlvbnMubGlua3MuZW5hYmxlO1xuICAgIH1cbiAgICByZXNldCgpIHtcbiAgICB9XG4gICAgaW50ZXJhY3QocDEpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBwMS5saW5rcyA9IFtdO1xuICAgICAgICBjb25zdCBwb3MxID0gcDEuZ2V0UG9zaXRpb24oKTtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXI7XG4gICAgICAgIGNvbnN0IGNhbnZhc1NpemUgPSBjb250YWluZXIuY2FudmFzLnNpemU7XG4gICAgICAgIGlmIChwb3MxLnggPCAwIHx8IHBvczEueSA8IDAgfHwgcG9zMS54ID4gY2FudmFzU2l6ZS53aWR0aCB8fCBwb3MxLnkgPiBjYW52YXNTaXplLmhlaWdodCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGxpbmtPcHQxID0gcDEub3B0aW9ucy5saW5rcztcbiAgICAgICAgY29uc3Qgb3B0T3BhY2l0eSA9IGxpbmtPcHQxLm9wYWNpdHk7XG4gICAgICAgIGNvbnN0IG9wdERpc3RhbmNlID0gKF9hID0gcDEucmV0aW5hLmxpbmtzRGlzdGFuY2UpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGNvbnRhaW5lci5yZXRpbmEubGlua3NEaXN0YW5jZTtcbiAgICAgICAgY29uc3Qgd2FycCA9IGxpbmtPcHQxLndhcnA7XG4gICAgICAgIGNvbnN0IHJhbmdlID0gd2FycFxuICAgICAgICAgICAgPyBuZXcgVXRpbHNfMS5DaXJjbGVXYXJwKHBvczEueCwgcG9zMS55LCBvcHREaXN0YW5jZSwgY2FudmFzU2l6ZSlcbiAgICAgICAgICAgIDogbmV3IFV0aWxzXzEuQ2lyY2xlKHBvczEueCwgcG9zMS55LCBvcHREaXN0YW5jZSk7XG4gICAgICAgIGNvbnN0IHF1ZXJ5ID0gY29udGFpbmVyLnBhcnRpY2xlcy5xdWFkVHJlZS5xdWVyeShyYW5nZSk7XG4gICAgICAgIGZvciAoY29uc3QgcDIgb2YgcXVlcnkpIHtcbiAgICAgICAgICAgIGNvbnN0IGxpbmtPcHQyID0gcDIub3B0aW9ucy5saW5rcztcbiAgICAgICAgICAgIGlmIChwMSA9PT0gcDIgfHxcbiAgICAgICAgICAgICAgICAhbGlua09wdDIuZW5hYmxlIHx8XG4gICAgICAgICAgICAgICAgbGlua09wdDEuaWQgIT09IGxpbmtPcHQyLmlkIHx8XG4gICAgICAgICAgICAgICAgcDIuc3Bhd25pbmcgfHxcbiAgICAgICAgICAgICAgICBwMi5kZXN0cm95ZWQgfHxcbiAgICAgICAgICAgICAgICBwMS5saW5rcy5tYXAoKHQpID0+IHQuZGVzdGluYXRpb24pLmluZGV4T2YocDIpICE9PSAtMSB8fFxuICAgICAgICAgICAgICAgIHAyLmxpbmtzLm1hcCgodCkgPT4gdC5kZXN0aW5hdGlvbikuaW5kZXhPZihwMSkgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBwb3MyID0gcDIuZ2V0UG9zaXRpb24oKTtcbiAgICAgICAgICAgIGlmIChwb3MyLnggPCAwIHx8IHBvczIueSA8IDAgfHwgcG9zMi54ID4gY2FudmFzU2l6ZS53aWR0aCB8fCBwb3MyLnkgPiBjYW52YXNTaXplLmhlaWdodCkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgZGlzdGFuY2UgPSBnZXRMaW5rRGlzdGFuY2UocG9zMSwgcG9zMiwgb3B0RGlzdGFuY2UsIGNhbnZhc1NpemUsIHdhcnAgJiYgbGlua09wdDIud2FycCk7XG4gICAgICAgICAgICBpZiAoZGlzdGFuY2UgPiBvcHREaXN0YW5jZSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IG9wYWNpdHlMaW5lID0gKDEgLSBkaXN0YW5jZSAvIG9wdERpc3RhbmNlKSAqIG9wdE9wYWNpdHk7XG4gICAgICAgICAgICB0aGlzLnNldENvbG9yKHAxKTtcbiAgICAgICAgICAgIHAxLmxpbmtzLnB1c2goe1xuICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uOiBwMixcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiBvcGFjaXR5TGluZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHNldENvbG9yKHAxKSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyO1xuICAgICAgICBjb25zdCBsaW5rc09wdGlvbnMgPSBwMS5vcHRpb25zLmxpbmtzO1xuICAgICAgICBsZXQgbGlua0NvbG9yID0gbGlua3NPcHRpb25zLmlkID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgID8gY29udGFpbmVyLnBhcnRpY2xlcy5saW5rc0NvbG9yXG4gICAgICAgICAgICA6IGNvbnRhaW5lci5wYXJ0aWNsZXMubGlua3NDb2xvcnMuZ2V0KGxpbmtzT3B0aW9ucy5pZCk7XG4gICAgICAgIGlmICghbGlua0NvbG9yKSB7XG4gICAgICAgICAgICBjb25zdCBvcHRDb2xvciA9IGxpbmtzT3B0aW9ucy5jb2xvcjtcbiAgICAgICAgICAgIGxpbmtDb2xvciA9ICgwLCBVdGlsc18xLmdldExpbmtSYW5kb21Db2xvcikob3B0Q29sb3IsIGxpbmtzT3B0aW9ucy5ibGluaywgbGlua3NPcHRpb25zLmNvbnNlbnQpO1xuICAgICAgICAgICAgaWYgKGxpbmtzT3B0aW9ucy5pZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLnBhcnRpY2xlcy5saW5rc0NvbG9yID0gbGlua0NvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLnBhcnRpY2xlcy5saW5rc0NvbG9ycy5zZXQobGlua3NPcHRpb25zLmlkLCBsaW5rQ29sb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5MaW5rZXIgPSBMaW5rZXI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/Particles/Links/Linker.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/Particles/Links/index.js": +/*!************************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/Particles/Links/index.js ***! + \************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadParticlesLinksInteraction = exports.loadInteraction = void 0;\nconst Linker_1 = __webpack_require__(/*! ./Linker */ \"./node_modules/tsparticles/Interactions/Particles/Links/Linker.js\");\nconst plugin_1 = __webpack_require__(/*! ./plugin */ \"./node_modules/tsparticles/Interactions/Particles/Links/plugin.js\");\nasync function loadInteraction(tsParticles) {\n await tsParticles.addInteractor(\"particlesLinks\", (container) => new Linker_1.Linker(container));\n}\nexports.loadInteraction = loadInteraction;\nasync function loadParticlesLinksInteraction(tsParticles) {\n await loadInteraction(tsParticles);\n await (0, plugin_1.loadPlugin)(tsParticles);\n}\nexports.loadParticlesLinksInteraction = loadParticlesLinksInteraction;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL1BhcnRpY2xlcy9MaW5rcy9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxxQ0FBcUMsR0FBRyx1QkFBdUI7QUFDL0QsaUJBQWlCLG1CQUFPLENBQUMsbUZBQVU7QUFDbkMsaUJBQWlCLG1CQUFPLENBQUMsbUZBQVU7QUFDbkM7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUNBQXFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9JbnRlcmFjdGlvbnMvUGFydGljbGVzL0xpbmtzL2luZGV4LmpzPzk0MDciXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmxvYWRQYXJ0aWNsZXNMaW5rc0ludGVyYWN0aW9uID0gZXhwb3J0cy5sb2FkSW50ZXJhY3Rpb24gPSB2b2lkIDA7XG5jb25zdCBMaW5rZXJfMSA9IHJlcXVpcmUoXCIuL0xpbmtlclwiKTtcbmNvbnN0IHBsdWdpbl8xID0gcmVxdWlyZShcIi4vcGx1Z2luXCIpO1xuYXN5bmMgZnVuY3Rpb24gbG9hZEludGVyYWN0aW9uKHRzUGFydGljbGVzKSB7XG4gICAgYXdhaXQgdHNQYXJ0aWNsZXMuYWRkSW50ZXJhY3RvcihcInBhcnRpY2xlc0xpbmtzXCIsIChjb250YWluZXIpID0+IG5ldyBMaW5rZXJfMS5MaW5rZXIoY29udGFpbmVyKSk7XG59XG5leHBvcnRzLmxvYWRJbnRlcmFjdGlvbiA9IGxvYWRJbnRlcmFjdGlvbjtcbmFzeW5jIGZ1bmN0aW9uIGxvYWRQYXJ0aWNsZXNMaW5rc0ludGVyYWN0aW9uKHRzUGFydGljbGVzKSB7XG4gICAgYXdhaXQgbG9hZEludGVyYWN0aW9uKHRzUGFydGljbGVzKTtcbiAgICBhd2FpdCAoMCwgcGx1Z2luXzEubG9hZFBsdWdpbikodHNQYXJ0aWNsZXMpO1xufVxuZXhwb3J0cy5sb2FkUGFydGljbGVzTGlua3NJbnRlcmFjdGlvbiA9IGxvYWRQYXJ0aWNsZXNMaW5rc0ludGVyYWN0aW9uO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/Particles/Links/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/Particles/Links/plugin.js": +/*!*************************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/Particles/Links/plugin.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadPlugin = void 0;\nconst LinkInstance_1 = __webpack_require__(/*! ./LinkInstance */ \"./node_modules/tsparticles/Interactions/Particles/Links/LinkInstance.js\");\nclass Plugin {\n constructor() {\n this.id = \"links\";\n }\n getPlugin(container) {\n return new LinkInstance_1.LinkInstance(container);\n }\n needsPlugin() {\n return true;\n }\n loadOptions() {\n }\n}\nasync function loadPlugin(tsParticles) {\n const plugin = new Plugin();\n await tsParticles.addPlugin(plugin);\n}\nexports.loadPlugin = loadPlugin;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL1BhcnRpY2xlcy9MaW5rcy9wbHVnaW4uanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsa0JBQWtCO0FBQ2xCLHVCQUF1QixtQkFBTyxDQUFDLCtGQUFnQjtBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9JbnRlcmFjdGlvbnMvUGFydGljbGVzL0xpbmtzL3BsdWdpbi5qcz9iYTNkIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5sb2FkUGx1Z2luID0gdm9pZCAwO1xuY29uc3QgTGlua0luc3RhbmNlXzEgPSByZXF1aXJlKFwiLi9MaW5rSW5zdGFuY2VcIik7XG5jbGFzcyBQbHVnaW4ge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmlkID0gXCJsaW5rc1wiO1xuICAgIH1cbiAgICBnZXRQbHVnaW4oY29udGFpbmVyKSB7XG4gICAgICAgIHJldHVybiBuZXcgTGlua0luc3RhbmNlXzEuTGlua0luc3RhbmNlKGNvbnRhaW5lcik7XG4gICAgfVxuICAgIG5lZWRzUGx1Z2luKCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgbG9hZE9wdGlvbnMoKSB7XG4gICAgfVxufVxuYXN5bmMgZnVuY3Rpb24gbG9hZFBsdWdpbih0c1BhcnRpY2xlcykge1xuICAgIGNvbnN0IHBsdWdpbiA9IG5ldyBQbHVnaW4oKTtcbiAgICBhd2FpdCB0c1BhcnRpY2xlcy5hZGRQbHVnaW4ocGx1Z2luKTtcbn1cbmV4cG9ydHMubG9hZFBsdWdpbiA9IGxvYWRQbHVnaW47XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/Particles/Links/plugin.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/AnimatableColor.js": +/*!*********************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/AnimatableColor.js ***! + \*********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.AnimatableColor = void 0;\nconst OptionsColor_1 = __webpack_require__(/*! ./OptionsColor */ \"./node_modules/tsparticles/Options/Classes/OptionsColor.js\");\nconst HslAnimation_1 = __webpack_require__(/*! ./HslAnimation */ \"./node_modules/tsparticles/Options/Classes/HslAnimation.js\");\nclass AnimatableColor extends OptionsColor_1.OptionsColor {\n constructor() {\n super();\n this.animation = new HslAnimation_1.HslAnimation();\n }\n static create(source, data) {\n const color = new AnimatableColor();\n color.load(source);\n if (data !== undefined) {\n if (typeof data === \"string\" || data instanceof Array) {\n color.load({ value: data });\n }\n else {\n color.load(data);\n }\n }\n return color;\n }\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n const colorAnimation = data.animation;\n if (colorAnimation !== undefined) {\n if (colorAnimation.enable !== undefined) {\n this.animation.h.load(colorAnimation);\n }\n else {\n this.animation.load(data.animation);\n }\n }\n }\n}\nexports.AnimatableColor = AnimatableColor;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0FuaW1hdGFibGVDb2xvci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCx1QkFBdUI7QUFDdkIsdUJBQXVCLG1CQUFPLENBQUMsa0ZBQWdCO0FBQy9DLHVCQUF1QixtQkFBTyxDQUFDLGtGQUFnQjtBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QixhQUFhO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9BbmltYXRhYmxlQ29sb3IuanM/NzM2MSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuQW5pbWF0YWJsZUNvbG9yID0gdm9pZCAwO1xuY29uc3QgT3B0aW9uc0NvbG9yXzEgPSByZXF1aXJlKFwiLi9PcHRpb25zQ29sb3JcIik7XG5jb25zdCBIc2xBbmltYXRpb25fMSA9IHJlcXVpcmUoXCIuL0hzbEFuaW1hdGlvblwiKTtcbmNsYXNzIEFuaW1hdGFibGVDb2xvciBleHRlbmRzIE9wdGlvbnNDb2xvcl8xLk9wdGlvbnNDb2xvciB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuYW5pbWF0aW9uID0gbmV3IEhzbEFuaW1hdGlvbl8xLkhzbEFuaW1hdGlvbigpO1xuICAgIH1cbiAgICBzdGF0aWMgY3JlYXRlKHNvdXJjZSwgZGF0YSkge1xuICAgICAgICBjb25zdCBjb2xvciA9IG5ldyBBbmltYXRhYmxlQ29sb3IoKTtcbiAgICAgICAgY29sb3IubG9hZChzb3VyY2UpO1xuICAgICAgICBpZiAoZGF0YSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGRhdGEgPT09IFwic3RyaW5nXCIgfHwgZGF0YSBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICAgICAgY29sb3IubG9hZCh7IHZhbHVlOiBkYXRhIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29sb3IubG9hZChkYXRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY29sb3I7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBzdXBlci5sb2FkKGRhdGEpO1xuICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb2xvckFuaW1hdGlvbiA9IGRhdGEuYW5pbWF0aW9uO1xuICAgICAgICBpZiAoY29sb3JBbmltYXRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKGNvbG9yQW5pbWF0aW9uLmVuYWJsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hbmltYXRpb24uaC5sb2FkKGNvbG9yQW5pbWF0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uLmxvYWQoZGF0YS5hbmltYXRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5BbmltYXRhYmxlQ29sb3IgPSBBbmltYXRhYmxlQ29sb3I7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/AnimatableColor.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/AnimatableGradient.js": +/*!************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/AnimatableGradient.js ***! + \************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.GradientColorOpacityAnimation = exports.GradientAngleAnimation = exports.AnimatableGradientColor = exports.GradientColorOpacity = exports.GradientAngle = exports.AnimatableGradient = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst AnimatableColor_1 = __webpack_require__(/*! ./AnimatableColor */ \"./node_modules/tsparticles/Options/Classes/AnimatableColor.js\");\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass AnimatableGradient {\n constructor() {\n this.angle = new GradientAngle();\n this.colors = [];\n this.type = Enums_1.GradientType.random;\n }\n load(data) {\n if (!data) {\n return;\n }\n this.angle.load(data.angle);\n if (data.colors !== undefined) {\n this.colors = data.colors.map((s) => {\n const tmp = new AnimatableGradientColor();\n tmp.load(s);\n return tmp;\n });\n }\n if (data.type !== undefined) {\n this.type = data.type;\n }\n }\n}\nexports.AnimatableGradient = AnimatableGradient;\nclass GradientAngle {\n constructor() {\n this.value = 0;\n this.animation = new GradientAngleAnimation();\n this.direction = Enums_1.RotateDirection.clockwise;\n }\n load(data) {\n if (!data) {\n return;\n }\n this.animation.load(data.animation);\n if (data.value !== undefined) {\n this.value = data.value;\n }\n if (data.direction !== undefined) {\n this.direction = data.direction;\n }\n }\n}\nexports.GradientAngle = GradientAngle;\nclass GradientColorOpacity {\n constructor() {\n this.value = 0;\n this.animation = new GradientColorOpacityAnimation();\n }\n load(data) {\n if (!data) {\n return;\n }\n this.animation.load(data.animation);\n if (data.value !== undefined) {\n this.value = (0, Utils_1.setRangeValue)(data.value);\n }\n }\n}\nexports.GradientColorOpacity = GradientColorOpacity;\nclass AnimatableGradientColor {\n constructor() {\n this.stop = 0;\n this.value = new AnimatableColor_1.AnimatableColor();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.stop !== undefined) {\n this.stop = data.stop;\n }\n this.value = AnimatableColor_1.AnimatableColor.create(this.value, data.value);\n if (data.opacity !== undefined) {\n this.opacity = new GradientColorOpacity();\n if (typeof data.opacity === \"number\") {\n this.opacity.value = data.opacity;\n }\n else {\n this.opacity.load(data.opacity);\n }\n }\n }\n}\nexports.AnimatableGradientColor = AnimatableGradientColor;\nclass GradientAngleAnimation {\n constructor() {\n this.count = 0;\n this.enable = false;\n this.speed = 0;\n this.sync = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.count !== undefined) {\n this.count = data.count;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\nexports.GradientAngleAnimation = GradientAngleAnimation;\nclass GradientColorOpacityAnimation {\n constructor() {\n this.count = 0;\n this.enable = false;\n this.speed = 0;\n this.sync = false;\n this.startValue = Enums_1.StartValueType.random;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.count !== undefined) {\n this.count = data.count;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n if (data.startValue !== undefined) {\n this.startValue = data.startValue;\n }\n }\n}\nexports.GradientColorOpacityAnimation = GradientColorOpacityAnimation;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0FuaW1hdGFibGVHcmFkaWVudC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxxQ0FBcUMsR0FBRyw4QkFBOEIsR0FBRywrQkFBK0IsR0FBRyw0QkFBNEIsR0FBRyxxQkFBcUIsR0FBRywwQkFBMEI7QUFDNUwsZ0JBQWdCLG1CQUFPLENBQUMsOERBQWE7QUFDckMsMEJBQTBCLG1CQUFPLENBQUMsd0ZBQW1CO0FBQ3JELGdCQUFnQixtQkFBTyxDQUFDLDhEQUFhO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQjtBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEI7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQStCO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQ0FBcUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9BbmltYXRhYmxlR3JhZGllbnQuanM/N2M0NiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuR3JhZGllbnRDb2xvck9wYWNpdHlBbmltYXRpb24gPSBleHBvcnRzLkdyYWRpZW50QW5nbGVBbmltYXRpb24gPSBleHBvcnRzLkFuaW1hdGFibGVHcmFkaWVudENvbG9yID0gZXhwb3J0cy5HcmFkaWVudENvbG9yT3BhY2l0eSA9IGV4cG9ydHMuR3JhZGllbnRBbmdsZSA9IGV4cG9ydHMuQW5pbWF0YWJsZUdyYWRpZW50ID0gdm9pZCAwO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuLi8uLi9FbnVtc1wiKTtcbmNvbnN0IEFuaW1hdGFibGVDb2xvcl8xID0gcmVxdWlyZShcIi4vQW5pbWF0YWJsZUNvbG9yXCIpO1xuY29uc3QgVXRpbHNfMSA9IHJlcXVpcmUoXCIuLi8uLi9VdGlsc1wiKTtcbmNsYXNzIEFuaW1hdGFibGVHcmFkaWVudCB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuYW5nbGUgPSBuZXcgR3JhZGllbnRBbmdsZSgpO1xuICAgICAgICB0aGlzLmNvbG9ycyA9IFtdO1xuICAgICAgICB0aGlzLnR5cGUgPSBFbnVtc18xLkdyYWRpZW50VHlwZS5yYW5kb207XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFuZ2xlLmxvYWQoZGF0YS5hbmdsZSk7XG4gICAgICAgIGlmIChkYXRhLmNvbG9ycyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbG9ycyA9IGRhdGEuY29sb3JzLm1hcCgocykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRtcCA9IG5ldyBBbmltYXRhYmxlR3JhZGllbnRDb2xvcigpO1xuICAgICAgICAgICAgICAgIHRtcC5sb2FkKHMpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0bXA7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS50eXBlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IGRhdGEudHlwZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuQW5pbWF0YWJsZUdyYWRpZW50ID0gQW5pbWF0YWJsZUdyYWRpZW50O1xuY2xhc3MgR3JhZGllbnRBbmdsZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSAwO1xuICAgICAgICB0aGlzLmFuaW1hdGlvbiA9IG5ldyBHcmFkaWVudEFuZ2xlQW5pbWF0aW9uKCk7XG4gICAgICAgIHRoaXMuZGlyZWN0aW9uID0gRW51bXNfMS5Sb3RhdGVEaXJlY3Rpb24uY2xvY2t3aXNlO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hbmltYXRpb24ubG9hZChkYXRhLmFuaW1hdGlvbik7XG4gICAgICAgIGlmIChkYXRhLnZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBkYXRhLnZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmRpcmVjdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmRpcmVjdGlvbiA9IGRhdGEuZGlyZWN0aW9uO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5HcmFkaWVudEFuZ2xlID0gR3JhZGllbnRBbmdsZTtcbmNsYXNzIEdyYWRpZW50Q29sb3JPcGFjaXR5IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IDA7XG4gICAgICAgIHRoaXMuYW5pbWF0aW9uID0gbmV3IEdyYWRpZW50Q29sb3JPcGFjaXR5QW5pbWF0aW9uKCk7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFuaW1hdGlvbi5sb2FkKGRhdGEuYW5pbWF0aW9uKTtcbiAgICAgICAgaWYgKGRhdGEudmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9ICgwLCBVdGlsc18xLnNldFJhbmdlVmFsdWUpKGRhdGEudmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5HcmFkaWVudENvbG9yT3BhY2l0eSA9IEdyYWRpZW50Q29sb3JPcGFjaXR5O1xuY2xhc3MgQW5pbWF0YWJsZUdyYWRpZW50Q29sb3Ige1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnN0b3AgPSAwO1xuICAgICAgICB0aGlzLnZhbHVlID0gbmV3IEFuaW1hdGFibGVDb2xvcl8xLkFuaW1hdGFibGVDb2xvcigpO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuc3RvcCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3AgPSBkYXRhLnN0b3A7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy52YWx1ZSA9IEFuaW1hdGFibGVDb2xvcl8xLkFuaW1hdGFibGVDb2xvci5jcmVhdGUodGhpcy52YWx1ZSwgZGF0YS52YWx1ZSk7XG4gICAgICAgIGlmIChkYXRhLm9wYWNpdHkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5vcGFjaXR5ID0gbmV3IEdyYWRpZW50Q29sb3JPcGFjaXR5KCk7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGRhdGEub3BhY2l0eSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgICAgIHRoaXMub3BhY2l0eS52YWx1ZSA9IGRhdGEub3BhY2l0eTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMub3BhY2l0eS5sb2FkKGRhdGEub3BhY2l0eSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkFuaW1hdGFibGVHcmFkaWVudENvbG9yID0gQW5pbWF0YWJsZUdyYWRpZW50Q29sb3I7XG5jbGFzcyBHcmFkaWVudEFuZ2xlQW5pbWF0aW9uIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5jb3VudCA9IDA7XG4gICAgICAgIHRoaXMuZW5hYmxlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc3BlZWQgPSAwO1xuICAgICAgICB0aGlzLnN5bmMgPSBmYWxzZTtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmNvdW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY291bnQgPSBkYXRhLmNvdW50O1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmVuYWJsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZSA9IGRhdGEuZW5hYmxlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnNwZWVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc3BlZWQgPSBkYXRhLnNwZWVkO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnN5bmMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5zeW5jID0gZGF0YS5zeW5jO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5HcmFkaWVudEFuZ2xlQW5pbWF0aW9uID0gR3JhZGllbnRBbmdsZUFuaW1hdGlvbjtcbmNsYXNzIEdyYWRpZW50Q29sb3JPcGFjaXR5QW5pbWF0aW9uIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5jb3VudCA9IDA7XG4gICAgICAgIHRoaXMuZW5hYmxlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc3BlZWQgPSAwO1xuICAgICAgICB0aGlzLnN5bmMgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zdGFydFZhbHVlID0gRW51bXNfMS5TdGFydFZhbHVlVHlwZS5yYW5kb207XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5jb3VudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvdW50ID0gZGF0YS5jb3VudDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5lbmFibGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5lbmFibGUgPSBkYXRhLmVuYWJsZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5zcGVlZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnNwZWVkID0gZGF0YS5zcGVlZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5zeW5jICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc3luYyA9IGRhdGEuc3luYztcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5zdGFydFZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnRWYWx1ZSA9IGRhdGEuc3RhcnRWYWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuR3JhZGllbnRDb2xvck9wYWNpdHlBbmltYXRpb24gPSBHcmFkaWVudENvbG9yT3BhY2l0eUFuaW1hdGlvbjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/AnimatableGradient.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/AnimationOptions.js": +/*!**********************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/AnimationOptions.js ***! + \**********************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.AnimationOptions = void 0;\nclass AnimationOptions {\n constructor() {\n this.count = 0;\n this.enable = false;\n this.speed = 1;\n this.sync = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.count !== undefined) {\n this.count = data.count;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\nexports.AnimationOptions = AnimationOptions;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0FuaW1hdGlvbk9wdGlvbnMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsd0JBQXdCO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvQW5pbWF0aW9uT3B0aW9ucy5qcz8wMjQ5Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5BbmltYXRpb25PcHRpb25zID0gdm9pZCAwO1xuY2xhc3MgQW5pbWF0aW9uT3B0aW9ucyB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuY291bnQgPSAwO1xuICAgICAgICB0aGlzLmVuYWJsZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNwZWVkID0gMTtcbiAgICAgICAgdGhpcy5zeW5jID0gZmFsc2U7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5jb3VudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvdW50ID0gZGF0YS5jb3VudDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5lbmFibGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5lbmFibGUgPSBkYXRhLmVuYWJsZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5zcGVlZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnNwZWVkID0gZGF0YS5zcGVlZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5zeW5jICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc3luYyA9IGRhdGEuc3luYztcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuQW5pbWF0aW9uT3B0aW9ucyA9IEFuaW1hdGlvbk9wdGlvbnM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/AnimationOptions.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/BackgroundMask/BackgroundMask.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/BackgroundMask/BackgroundMask.js ***! + \***********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.BackgroundMask = void 0;\nconst BackgroundMaskCover_1 = __webpack_require__(/*! ./BackgroundMaskCover */ \"./node_modules/tsparticles/Options/Classes/BackgroundMask/BackgroundMaskCover.js\");\nclass BackgroundMask {\n constructor() {\n this.composite = \"destination-out\";\n this.cover = new BackgroundMaskCover_1.BackgroundMaskCover();\n this.enable = false;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.composite !== undefined) {\n this.composite = data.composite;\n }\n if (data.cover !== undefined) {\n const cover = data.cover;\n const color = (typeof data.cover === \"string\" ? { color: data.cover } : data.cover);\n this.cover.load(cover.color !== undefined ? cover : { color: color });\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n }\n}\nexports.BackgroundMask = BackgroundMask;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0JhY2tncm91bmRNYXNrL0JhY2tncm91bmRNYXNrLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHNCQUFzQjtBQUN0Qiw4QkFBOEIsbUJBQU8sQ0FBQywrR0FBdUI7QUFDN0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOERBQThELG9CQUFvQjtBQUNsRixrRUFBa0UsY0FBYztBQUNoRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9CYWNrZ3JvdW5kTWFzay9CYWNrZ3JvdW5kTWFzay5qcz82Mjc2Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5CYWNrZ3JvdW5kTWFzayA9IHZvaWQgMDtcbmNvbnN0IEJhY2tncm91bmRNYXNrQ292ZXJfMSA9IHJlcXVpcmUoXCIuL0JhY2tncm91bmRNYXNrQ292ZXJcIik7XG5jbGFzcyBCYWNrZ3JvdW5kTWFzayB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuY29tcG9zaXRlID0gXCJkZXN0aW5hdGlvbi1vdXRcIjtcbiAgICAgICAgdGhpcy5jb3ZlciA9IG5ldyBCYWNrZ3JvdW5kTWFza0NvdmVyXzEuQmFja2dyb3VuZE1hc2tDb3ZlcigpO1xuICAgICAgICB0aGlzLmVuYWJsZSA9IGZhbHNlO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmNvbXBvc2l0ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbXBvc2l0ZSA9IGRhdGEuY29tcG9zaXRlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmNvdmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvdmVyID0gZGF0YS5jb3ZlcjtcbiAgICAgICAgICAgIGNvbnN0IGNvbG9yID0gKHR5cGVvZiBkYXRhLmNvdmVyID09PSBcInN0cmluZ1wiID8geyBjb2xvcjogZGF0YS5jb3ZlciB9IDogZGF0YS5jb3Zlcik7XG4gICAgICAgICAgICB0aGlzLmNvdmVyLmxvYWQoY292ZXIuY29sb3IgIT09IHVuZGVmaW5lZCA/IGNvdmVyIDogeyBjb2xvcjogY29sb3IgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZW5hYmxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlID0gZGF0YS5lbmFibGU7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkJhY2tncm91bmRNYXNrID0gQmFja2dyb3VuZE1hc2s7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/BackgroundMask/BackgroundMask.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/BackgroundMask/BackgroundMaskCover.js": +/*!****************************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/BackgroundMask/BackgroundMaskCover.js ***! + \****************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.BackgroundMaskCover = void 0;\nconst OptionsColor_1 = __webpack_require__(/*! ../OptionsColor */ \"./node_modules/tsparticles/Options/Classes/OptionsColor.js\");\nclass BackgroundMaskCover {\n constructor() {\n this.color = new OptionsColor_1.OptionsColor();\n this.opacity = 1;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor_1.OptionsColor.create(this.color, data.color);\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\nexports.BackgroundMaskCover = BackgroundMaskCover;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0JhY2tncm91bmRNYXNrL0JhY2tncm91bmRNYXNrQ292ZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsMkJBQTJCO0FBQzNCLHVCQUF1QixtQkFBTyxDQUFDLG1GQUFpQjtBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvQmFja2dyb3VuZE1hc2svQmFja2dyb3VuZE1hc2tDb3Zlci5qcz9mYjQ0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5CYWNrZ3JvdW5kTWFza0NvdmVyID0gdm9pZCAwO1xuY29uc3QgT3B0aW9uc0NvbG9yXzEgPSByZXF1aXJlKFwiLi4vT3B0aW9uc0NvbG9yXCIpO1xuY2xhc3MgQmFja2dyb3VuZE1hc2tDb3ZlciB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuY29sb3IgPSBuZXcgT3B0aW9uc0NvbG9yXzEuT3B0aW9uc0NvbG9yKCk7XG4gICAgICAgIHRoaXMub3BhY2l0eSA9IDE7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuY29sb3IgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5jb2xvciA9IE9wdGlvbnNDb2xvcl8xLk9wdGlvbnNDb2xvci5jcmVhdGUodGhpcy5jb2xvciwgZGF0YS5jb2xvcik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEub3BhY2l0eSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLm9wYWNpdHkgPSBkYXRhLm9wYWNpdHk7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkJhY2tncm91bmRNYXNrQ292ZXIgPSBCYWNrZ3JvdW5kTWFza0NvdmVyO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/BackgroundMask/BackgroundMaskCover.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Background/Background.js": +/*!***************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Background/Background.js ***! + \***************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Background = void 0;\nconst OptionsColor_1 = __webpack_require__(/*! ../OptionsColor */ \"./node_modules/tsparticles/Options/Classes/OptionsColor.js\");\nclass Background {\n constructor() {\n this.color = new OptionsColor_1.OptionsColor();\n this.color.value = \"\";\n this.image = \"\";\n this.position = \"\";\n this.repeat = \"\";\n this.size = \"\";\n this.opacity = 1;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor_1.OptionsColor.create(this.color, data.color);\n }\n if (data.image !== undefined) {\n this.image = data.image;\n }\n if (data.position !== undefined) {\n this.position = data.position;\n }\n if (data.repeat !== undefined) {\n this.repeat = data.repeat;\n }\n if (data.size !== undefined) {\n this.size = data.size;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\nexports.Background = Background;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0JhY2tncm91bmQvQmFja2dyb3VuZC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxrQkFBa0I7QUFDbEIsdUJBQXVCLG1CQUFPLENBQUMsbUZBQWlCO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvQmFja2dyb3VuZC9CYWNrZ3JvdW5kLmpzP2JhOTUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkJhY2tncm91bmQgPSB2b2lkIDA7XG5jb25zdCBPcHRpb25zQ29sb3JfMSA9IHJlcXVpcmUoXCIuLi9PcHRpb25zQ29sb3JcIik7XG5jbGFzcyBCYWNrZ3JvdW5kIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5jb2xvciA9IG5ldyBPcHRpb25zQ29sb3JfMS5PcHRpb25zQ29sb3IoKTtcbiAgICAgICAgdGhpcy5jb2xvci52YWx1ZSA9IFwiXCI7XG4gICAgICAgIHRoaXMuaW1hZ2UgPSBcIlwiO1xuICAgICAgICB0aGlzLnBvc2l0aW9uID0gXCJcIjtcbiAgICAgICAgdGhpcy5yZXBlYXQgPSBcIlwiO1xuICAgICAgICB0aGlzLnNpemUgPSBcIlwiO1xuICAgICAgICB0aGlzLm9wYWNpdHkgPSAxO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmNvbG9yICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29sb3IgPSBPcHRpb25zQ29sb3JfMS5PcHRpb25zQ29sb3IuY3JlYXRlKHRoaXMuY29sb3IsIGRhdGEuY29sb3IpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmltYWdlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuaW1hZ2UgPSBkYXRhLmltYWdlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnBvc2l0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPSBkYXRhLnBvc2l0aW9uO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnJlcGVhdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnJlcGVhdCA9IGRhdGEucmVwZWF0O1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnNpemUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5zaXplID0gZGF0YS5zaXplO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLm9wYWNpdHkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5vcGFjaXR5ID0gZGF0YS5vcGFjaXR5O1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5CYWNrZ3JvdW5kID0gQmFja2dyb3VuZDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Background/Background.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/ColorAnimation.js": +/*!********************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/ColorAnimation.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ColorAnimation = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass ColorAnimation {\n constructor() {\n this.count = 0;\n this.enable = false;\n this.offset = 0;\n this.speed = 1;\n this.sync = true;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.count !== undefined) {\n this.count = data.count;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.offset !== undefined) {\n this.offset = (0, Utils_1.setRangeValue)(data.offset);\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\nexports.ColorAnimation = ColorAnimation;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0NvbG9yQW5pbWF0aW9uLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHNCQUFzQjtBQUN0QixnQkFBZ0IsbUJBQU8sQ0FBQyw4REFBYTtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvQ29sb3JBbmltYXRpb24uanM/ODhmYyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuQ29sb3JBbmltYXRpb24gPSB2b2lkIDA7XG5jb25zdCBVdGlsc18xID0gcmVxdWlyZShcIi4uLy4uL1V0aWxzXCIpO1xuY2xhc3MgQ29sb3JBbmltYXRpb24ge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmNvdW50ID0gMDtcbiAgICAgICAgdGhpcy5lbmFibGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5vZmZzZXQgPSAwO1xuICAgICAgICB0aGlzLnNwZWVkID0gMTtcbiAgICAgICAgdGhpcy5zeW5jID0gdHJ1ZTtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5jb3VudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvdW50ID0gZGF0YS5jb3VudDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5lbmFibGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5lbmFibGUgPSBkYXRhLmVuYWJsZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5vZmZzZXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5vZmZzZXQgPSAoMCwgVXRpbHNfMS5zZXRSYW5nZVZhbHVlKShkYXRhLm9mZnNldCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuc3BlZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5zcGVlZCA9IGRhdGEuc3BlZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuc3luYyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnN5bmMgPSBkYXRhLnN5bmM7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkNvbG9yQW5pbWF0aW9uID0gQ29sb3JBbmltYXRpb247XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/ColorAnimation.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/FullScreen/FullScreen.js": +/*!***************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/FullScreen/FullScreen.js ***! + \***************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.FullScreen = void 0;\nclass FullScreen {\n constructor() {\n this.enable = true;\n this.zIndex = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.zIndex !== undefined) {\n this.zIndex = data.zIndex;\n }\n }\n}\nexports.FullScreen = FullScreen;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0Z1bGxTY3JlZW4vRnVsbFNjcmVlbi5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0Z1bGxTY3JlZW4vRnVsbFNjcmVlbi5qcz9jZGY3Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5GdWxsU2NyZWVuID0gdm9pZCAwO1xuY2xhc3MgRnVsbFNjcmVlbiB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuZW5hYmxlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy56SW5kZXggPSAwO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZW5hYmxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlID0gZGF0YS5lbmFibGU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuekluZGV4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuekluZGV4ID0gZGF0YS56SW5kZXg7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkZ1bGxTY3JlZW4gPSBGdWxsU2NyZWVuO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/FullScreen/FullScreen.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/HslAnimation.js": +/*!******************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/HslAnimation.js ***! + \******************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.HslAnimation = void 0;\nconst ColorAnimation_1 = __webpack_require__(/*! ./ColorAnimation */ \"./node_modules/tsparticles/Options/Classes/ColorAnimation.js\");\nclass HslAnimation {\n constructor() {\n this.h = new ColorAnimation_1.ColorAnimation();\n this.s = new ColorAnimation_1.ColorAnimation();\n this.l = new ColorAnimation_1.ColorAnimation();\n }\n load(data) {\n if (!data) {\n return;\n }\n this.h.load(data.h);\n this.s.load(data.s);\n this.l.load(data.l);\n }\n}\nexports.HslAnimation = HslAnimation;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0hzbEFuaW1hdGlvbi5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxvQkFBb0I7QUFDcEIseUJBQXlCLG1CQUFPLENBQUMsc0ZBQWtCO0FBQ25EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0hzbEFuaW1hdGlvbi5qcz8wODI2Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Ic2xBbmltYXRpb24gPSB2b2lkIDA7XG5jb25zdCBDb2xvckFuaW1hdGlvbl8xID0gcmVxdWlyZShcIi4vQ29sb3JBbmltYXRpb25cIik7XG5jbGFzcyBIc2xBbmltYXRpb24ge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmggPSBuZXcgQ29sb3JBbmltYXRpb25fMS5Db2xvckFuaW1hdGlvbigpO1xuICAgICAgICB0aGlzLnMgPSBuZXcgQ29sb3JBbmltYXRpb25fMS5Db2xvckFuaW1hdGlvbigpO1xuICAgICAgICB0aGlzLmwgPSBuZXcgQ29sb3JBbmltYXRpb25fMS5Db2xvckFuaW1hdGlvbigpO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5oLmxvYWQoZGF0YS5oKTtcbiAgICAgICAgdGhpcy5zLmxvYWQoZGF0YS5zKTtcbiAgICAgICAgdGhpcy5sLmxvYWQoZGF0YS5sKTtcbiAgICB9XG59XG5leHBvcnRzLkhzbEFuaW1hdGlvbiA9IEhzbEFuaW1hdGlvbjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/HslAnimation.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Events/ClickEvent.js": +/*!*************************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Events/ClickEvent.js ***! + \*************************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ClickEvent = void 0;\nclass ClickEvent {\n constructor() {\n this.enable = false;\n this.mode = [];\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n }\n}\nexports.ClickEvent = ClickEvent;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvRXZlbnRzL0NsaWNrRXZlbnQuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9JbnRlcmFjdGl2aXR5L0V2ZW50cy9DbGlja0V2ZW50LmpzP2RiOWQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkNsaWNrRXZlbnQgPSB2b2lkIDA7XG5jbGFzcyBDbGlja0V2ZW50IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5lbmFibGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5tb2RlID0gW107XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZW5hYmxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlID0gZGF0YS5lbmFibGU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEubW9kZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLm1vZGUgPSBkYXRhLm1vZGU7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkNsaWNrRXZlbnQgPSBDbGlja0V2ZW50O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Events/ClickEvent.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Events/DivEvent.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Events/DivEvent.js ***! + \***********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.DivEvent = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nclass DivEvent {\n constructor() {\n this.selectors = [];\n this.enable = false;\n this.mode = [];\n this.type = Enums_1.DivType.circle;\n }\n get elementId() {\n return this.ids;\n }\n set elementId(value) {\n this.ids = value;\n }\n get el() {\n return this.elementId;\n }\n set el(value) {\n this.elementId = value;\n }\n get ids() {\n return this.selectors instanceof Array\n ? this.selectors.map((t) => t.replace(\"#\", \"\"))\n : this.selectors.replace(\"#\", \"\");\n }\n set ids(value) {\n this.selectors = value instanceof Array ? value.map((t) => `#${t}`) : `#${value}`;\n }\n load(data) {\n var _a, _b;\n if (data === undefined) {\n return;\n }\n const ids = (_b = (_a = data.ids) !== null && _a !== void 0 ? _a : data.elementId) !== null && _b !== void 0 ? _b : data.el;\n if (ids !== undefined) {\n this.ids = ids;\n }\n if (data.selectors !== undefined) {\n this.selectors = data.selectors;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n if (data.type !== undefined) {\n this.type = data.type;\n }\n }\n}\nexports.DivEvent = DivEvent;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvRXZlbnRzL0RpdkV2ZW50LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGdCQUFnQjtBQUNoQixnQkFBZ0IsbUJBQU8sQ0FBQyxvRUFBbUI7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1RUFBdUUsRUFBRSxTQUFTLE1BQU07QUFDeEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvSW50ZXJhY3Rpdml0eS9FdmVudHMvRGl2RXZlbnQuanM/ODZiNiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuRGl2RXZlbnQgPSB2b2lkIDA7XG5jb25zdCBFbnVtc18xID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL0VudW1zXCIpO1xuY2xhc3MgRGl2RXZlbnQge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnNlbGVjdG9ycyA9IFtdO1xuICAgICAgICB0aGlzLmVuYWJsZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLm1vZGUgPSBbXTtcbiAgICAgICAgdGhpcy50eXBlID0gRW51bXNfMS5EaXZUeXBlLmNpcmNsZTtcbiAgICB9XG4gICAgZ2V0IGVsZW1lbnRJZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaWRzO1xuICAgIH1cbiAgICBzZXQgZWxlbWVudElkKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuaWRzID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBlbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudElkO1xuICAgIH1cbiAgICBzZXQgZWwodmFsdWUpIHtcbiAgICAgICAgdGhpcy5lbGVtZW50SWQgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IGlkcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0b3JzIGluc3RhbmNlb2YgQXJyYXlcbiAgICAgICAgICAgID8gdGhpcy5zZWxlY3RvcnMubWFwKCh0KSA9PiB0LnJlcGxhY2UoXCIjXCIsIFwiXCIpKVxuICAgICAgICAgICAgOiB0aGlzLnNlbGVjdG9ycy5yZXBsYWNlKFwiI1wiLCBcIlwiKTtcbiAgICB9XG4gICAgc2V0IGlkcyh2YWx1ZSkge1xuICAgICAgICB0aGlzLnNlbGVjdG9ycyA9IHZhbHVlIGluc3RhbmNlb2YgQXJyYXkgPyB2YWx1ZS5tYXAoKHQpID0+IGAjJHt0fWApIDogYCMke3ZhbHVlfWA7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaWRzID0gKF9iID0gKF9hID0gZGF0YS5pZHMpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGRhdGEuZWxlbWVudElkKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBkYXRhLmVsO1xuICAgICAgICBpZiAoaWRzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuaWRzID0gaWRzO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnNlbGVjdG9ycyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdG9ycyA9IGRhdGEuc2VsZWN0b3JzO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmVuYWJsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZSA9IGRhdGEuZW5hYmxlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLm1vZGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5tb2RlID0gZGF0YS5tb2RlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnR5cGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gZGF0YS50eXBlO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5EaXZFdmVudCA9IERpdkV2ZW50O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Events/DivEvent.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Events/Events.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Events/Events.js ***! + \*********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Events = void 0;\nconst ClickEvent_1 = __webpack_require__(/*! ./ClickEvent */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Events/ClickEvent.js\");\nconst DivEvent_1 = __webpack_require__(/*! ./DivEvent */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Events/DivEvent.js\");\nconst HoverEvent_1 = __webpack_require__(/*! ./HoverEvent */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Events/HoverEvent.js\");\nclass Events {\n constructor() {\n this.onClick = new ClickEvent_1.ClickEvent();\n this.onDiv = new DivEvent_1.DivEvent();\n this.onHover = new HoverEvent_1.HoverEvent();\n this.resize = true;\n }\n get onclick() {\n return this.onClick;\n }\n set onclick(value) {\n this.onClick = value;\n }\n get ondiv() {\n return this.onDiv;\n }\n set ondiv(value) {\n this.onDiv = value;\n }\n get onhover() {\n return this.onHover;\n }\n set onhover(value) {\n this.onHover = value;\n }\n load(data) {\n var _a, _b, _c;\n if (data === undefined) {\n return;\n }\n this.onClick.load((_a = data.onClick) !== null && _a !== void 0 ? _a : data.onclick);\n const onDiv = (_b = data.onDiv) !== null && _b !== void 0 ? _b : data.ondiv;\n if (onDiv !== undefined) {\n if (onDiv instanceof Array) {\n this.onDiv = onDiv.map((div) => {\n const tmp = new DivEvent_1.DivEvent();\n tmp.load(div);\n return tmp;\n });\n }\n else {\n this.onDiv = new DivEvent_1.DivEvent();\n this.onDiv.load(onDiv);\n }\n }\n this.onHover.load((_c = data.onHover) !== null && _c !== void 0 ? _c : data.onhover);\n if (data.resize !== undefined) {\n this.resize = data.resize;\n }\n }\n}\nexports.Events = Events;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvRXZlbnRzL0V2ZW50cy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxjQUFjO0FBQ2QscUJBQXFCLG1CQUFPLENBQUMsbUdBQWM7QUFDM0MsbUJBQW1CLG1CQUFPLENBQUMsK0ZBQVk7QUFDdkMscUJBQXFCLG1CQUFPLENBQUMsbUdBQWM7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvSW50ZXJhY3Rpdml0eS9FdmVudHMvRXZlbnRzLmpzPzQ4NjkiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkV2ZW50cyA9IHZvaWQgMDtcbmNvbnN0IENsaWNrRXZlbnRfMSA9IHJlcXVpcmUoXCIuL0NsaWNrRXZlbnRcIik7XG5jb25zdCBEaXZFdmVudF8xID0gcmVxdWlyZShcIi4vRGl2RXZlbnRcIik7XG5jb25zdCBIb3ZlckV2ZW50XzEgPSByZXF1aXJlKFwiLi9Ib3ZlckV2ZW50XCIpO1xuY2xhc3MgRXZlbnRzIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5vbkNsaWNrID0gbmV3IENsaWNrRXZlbnRfMS5DbGlja0V2ZW50KCk7XG4gICAgICAgIHRoaXMub25EaXYgPSBuZXcgRGl2RXZlbnRfMS5EaXZFdmVudCgpO1xuICAgICAgICB0aGlzLm9uSG92ZXIgPSBuZXcgSG92ZXJFdmVudF8xLkhvdmVyRXZlbnQoKTtcbiAgICAgICAgdGhpcy5yZXNpemUgPSB0cnVlO1xuICAgIH1cbiAgICBnZXQgb25jbGljaygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub25DbGljaztcbiAgICB9XG4gICAgc2V0IG9uY2xpY2sodmFsdWUpIHtcbiAgICAgICAgdGhpcy5vbkNsaWNrID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBvbmRpdigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub25EaXY7XG4gICAgfVxuICAgIHNldCBvbmRpdih2YWx1ZSkge1xuICAgICAgICB0aGlzLm9uRGl2ID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBvbmhvdmVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5vbkhvdmVyO1xuICAgIH1cbiAgICBzZXQgb25ob3Zlcih2YWx1ZSkge1xuICAgICAgICB0aGlzLm9uSG92ZXIgPSB2YWx1ZTtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vbkNsaWNrLmxvYWQoKF9hID0gZGF0YS5vbkNsaWNrKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBkYXRhLm9uY2xpY2spO1xuICAgICAgICBjb25zdCBvbkRpdiA9IChfYiA9IGRhdGEub25EaXYpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IGRhdGEub25kaXY7XG4gICAgICAgIGlmIChvbkRpdiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBpZiAob25EaXYgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgICAgIHRoaXMub25EaXYgPSBvbkRpdi5tYXAoKGRpdikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0bXAgPSBuZXcgRGl2RXZlbnRfMS5EaXZFdmVudCgpO1xuICAgICAgICAgICAgICAgICAgICB0bXAubG9hZChkaXYpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdG1wO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkRpdiA9IG5ldyBEaXZFdmVudF8xLkRpdkV2ZW50KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkRpdi5sb2FkKG9uRGl2KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9uSG92ZXIubG9hZCgoX2MgPSBkYXRhLm9uSG92ZXIpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IGRhdGEub25ob3Zlcik7XG4gICAgICAgIGlmIChkYXRhLnJlc2l6ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnJlc2l6ZSA9IGRhdGEucmVzaXplO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5FdmVudHMgPSBFdmVudHM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Events/Events.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Events/HoverEvent.js": +/*!*************************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Events/HoverEvent.js ***! + \*************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.HoverEvent = void 0;\nconst Parallax_1 = __webpack_require__(/*! ./Parallax */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Events/Parallax.js\");\nclass HoverEvent {\n constructor() {\n this.enable = false;\n this.mode = [];\n this.parallax = new Parallax_1.Parallax();\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n this.parallax.load(data.parallax);\n }\n}\nexports.HoverEvent = HoverEvent;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvRXZlbnRzL0hvdmVyRXZlbnQuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsa0JBQWtCO0FBQ2xCLG1CQUFtQixtQkFBTyxDQUFDLCtGQUFZO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvSW50ZXJhY3Rpdml0eS9FdmVudHMvSG92ZXJFdmVudC5qcz8wM2I0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Ib3ZlckV2ZW50ID0gdm9pZCAwO1xuY29uc3QgUGFyYWxsYXhfMSA9IHJlcXVpcmUoXCIuL1BhcmFsbGF4XCIpO1xuY2xhc3MgSG92ZXJFdmVudCB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuZW5hYmxlID0gZmFsc2U7XG4gICAgICAgIHRoaXMubW9kZSA9IFtdO1xuICAgICAgICB0aGlzLnBhcmFsbGF4ID0gbmV3IFBhcmFsbGF4XzEuUGFyYWxsYXgoKTtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5lbmFibGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5lbmFibGUgPSBkYXRhLmVuYWJsZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5tb2RlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMubW9kZSA9IGRhdGEubW9kZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnBhcmFsbGF4LmxvYWQoZGF0YS5wYXJhbGxheCk7XG4gICAgfVxufVxuZXhwb3J0cy5Ib3ZlckV2ZW50ID0gSG92ZXJFdmVudDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Events/HoverEvent.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Events/Parallax.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Events/Parallax.js ***! + \***********************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Parallax = void 0;\nclass Parallax {\n constructor() {\n this.enable = false;\n this.force = 2;\n this.smooth = 10;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.force !== undefined) {\n this.force = data.force;\n }\n if (data.smooth !== undefined) {\n this.smooth = data.smooth;\n }\n }\n}\nexports.Parallax = Parallax;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvRXZlbnRzL1BhcmFsbGF4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9JbnRlcmFjdGl2aXR5L0V2ZW50cy9QYXJhbGxheC5qcz82YjcxIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5QYXJhbGxheCA9IHZvaWQgMDtcbmNsYXNzIFBhcmFsbGF4IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5lbmFibGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5mb3JjZSA9IDI7XG4gICAgICAgIHRoaXMuc21vb3RoID0gMTA7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZW5hYmxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlID0gZGF0YS5lbmFibGU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZm9yY2UgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5mb3JjZSA9IGRhdGEuZm9yY2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuc21vb3RoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc21vb3RoID0gZGF0YS5zbW9vdGg7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLlBhcmFsbGF4ID0gUGFyYWxsYXg7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Events/Parallax.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Interactivity.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Interactivity.js ***! + \*********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Interactivity = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst Events_1 = __webpack_require__(/*! ./Events/Events */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Events/Events.js\");\nconst Modes_1 = __webpack_require__(/*! ./Modes/Modes */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Modes.js\");\nclass Interactivity {\n constructor() {\n this.detectsOn = Enums_1.InteractivityDetect.window;\n this.events = new Events_1.Events();\n this.modes = new Modes_1.Modes();\n }\n get detect_on() {\n return this.detectsOn;\n }\n set detect_on(value) {\n this.detectsOn = value;\n }\n load(data) {\n var _a, _b, _c;\n if (data === undefined) {\n return;\n }\n const detectsOn = (_a = data.detectsOn) !== null && _a !== void 0 ? _a : data.detect_on;\n if (detectsOn !== undefined) {\n this.detectsOn = detectsOn;\n }\n this.events.load(data.events);\n this.modes.load(data.modes);\n if (((_c = (_b = data.modes) === null || _b === void 0 ? void 0 : _b.slow) === null || _c === void 0 ? void 0 : _c.active) === true) {\n if (this.events.onHover.mode instanceof Array) {\n if (this.events.onHover.mode.indexOf(Enums_1.HoverMode.slow) < 0) {\n this.events.onHover.mode.push(Enums_1.HoverMode.slow);\n }\n }\n else if (this.events.onHover.mode !== Enums_1.HoverMode.slow) {\n this.events.onHover.mode = [this.events.onHover.mode, Enums_1.HoverMode.slow];\n }\n }\n }\n}\nexports.Interactivity = Interactivity;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvSW50ZXJhY3Rpdml0eS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxxQkFBcUI7QUFDckIsZ0JBQWdCLG1CQUFPLENBQUMsaUVBQWdCO0FBQ3hDLGlCQUFpQixtQkFBTyxDQUFDLGtHQUFpQjtBQUMxQyxnQkFBZ0IsbUJBQU8sQ0FBQyw4RkFBZTtBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvSW50ZXJhY3Rpdml0eS9JbnRlcmFjdGl2aXR5LmpzPzhmMmEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkludGVyYWN0aXZpdHkgPSB2b2lkIDA7XG5jb25zdCBFbnVtc18xID0gcmVxdWlyZShcIi4uLy4uLy4uL0VudW1zXCIpO1xuY29uc3QgRXZlbnRzXzEgPSByZXF1aXJlKFwiLi9FdmVudHMvRXZlbnRzXCIpO1xuY29uc3QgTW9kZXNfMSA9IHJlcXVpcmUoXCIuL01vZGVzL01vZGVzXCIpO1xuY2xhc3MgSW50ZXJhY3Rpdml0eSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuZGV0ZWN0c09uID0gRW51bXNfMS5JbnRlcmFjdGl2aXR5RGV0ZWN0LndpbmRvdztcbiAgICAgICAgdGhpcy5ldmVudHMgPSBuZXcgRXZlbnRzXzEuRXZlbnRzKCk7XG4gICAgICAgIHRoaXMubW9kZXMgPSBuZXcgTW9kZXNfMS5Nb2RlcygpO1xuICAgIH1cbiAgICBnZXQgZGV0ZWN0X29uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5kZXRlY3RzT247XG4gICAgfVxuICAgIHNldCBkZXRlY3Rfb24odmFsdWUpIHtcbiAgICAgICAgdGhpcy5kZXRlY3RzT24gPSB2YWx1ZTtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGV0ZWN0c09uID0gKF9hID0gZGF0YS5kZXRlY3RzT24pICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGRhdGEuZGV0ZWN0X29uO1xuICAgICAgICBpZiAoZGV0ZWN0c09uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZGV0ZWN0c09uID0gZGV0ZWN0c09uO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZXZlbnRzLmxvYWQoZGF0YS5ldmVudHMpO1xuICAgICAgICB0aGlzLm1vZGVzLmxvYWQoZGF0YS5tb2Rlcyk7XG4gICAgICAgIGlmICgoKF9jID0gKF9iID0gZGF0YS5tb2RlcykgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLnNsb3cpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5hY3RpdmUpID09PSB0cnVlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5ldmVudHMub25Ib3Zlci5tb2RlIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5ldmVudHMub25Ib3Zlci5tb2RlLmluZGV4T2YoRW51bXNfMS5Ib3Zlck1vZGUuc2xvdykgPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXZlbnRzLm9uSG92ZXIubW9kZS5wdXNoKEVudW1zXzEuSG92ZXJNb2RlLnNsb3cpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuZXZlbnRzLm9uSG92ZXIubW9kZSAhPT0gRW51bXNfMS5Ib3Zlck1vZGUuc2xvdykge1xuICAgICAgICAgICAgICAgIHRoaXMuZXZlbnRzLm9uSG92ZXIubW9kZSA9IFt0aGlzLmV2ZW50cy5vbkhvdmVyLm1vZGUsIEVudW1zXzEuSG92ZXJNb2RlLnNsb3ddO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5JbnRlcmFjdGl2aXR5ID0gSW50ZXJhY3Rpdml0eTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Interactivity.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Attract.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Attract.js ***! + \*********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Attract = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nclass Attract {\n constructor() {\n this.distance = 200;\n this.duration = 0.4;\n this.easing = Enums_1.EasingType.easeOutQuad;\n this.factor = 1;\n this.maxSpeed = 50;\n this.speed = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n if (data.easing !== undefined) {\n this.easing = data.easing;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n if (data.maxSpeed !== undefined) {\n this.maxSpeed = data.maxSpeed;\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n }\n}\nexports.Attract = Attract;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvQXR0cmFjdC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxlQUFlO0FBQ2YsZ0JBQWdCLG1CQUFPLENBQUMsb0VBQW1CO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9JbnRlcmFjdGl2aXR5L01vZGVzL0F0dHJhY3QuanM/ZGEyZiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuQXR0cmFjdCA9IHZvaWQgMDtcbmNvbnN0IEVudW1zXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vRW51bXNcIik7XG5jbGFzcyBBdHRyYWN0IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5kaXN0YW5jZSA9IDIwMDtcbiAgICAgICAgdGhpcy5kdXJhdGlvbiA9IDAuNDtcbiAgICAgICAgdGhpcy5lYXNpbmcgPSBFbnVtc18xLkVhc2luZ1R5cGUuZWFzZU91dFF1YWQ7XG4gICAgICAgIHRoaXMuZmFjdG9yID0gMTtcbiAgICAgICAgdGhpcy5tYXhTcGVlZCA9IDUwO1xuICAgICAgICB0aGlzLnNwZWVkID0gMTtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmRpc3RhbmNlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzdGFuY2UgPSBkYXRhLmRpc3RhbmNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmR1cmF0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZHVyYXRpb24gPSBkYXRhLmR1cmF0aW9uO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmVhc2luZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmVhc2luZyA9IGRhdGEuZWFzaW5nO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmZhY3RvciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmZhY3RvciA9IGRhdGEuZmFjdG9yO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLm1heFNwZWVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMubWF4U3BlZWQgPSBkYXRhLm1heFNwZWVkO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnNwZWVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc3BlZWQgPSBkYXRhLnNwZWVkO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5BdHRyYWN0ID0gQXR0cmFjdDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Attract.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Bounce.js": +/*!********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Bounce.js ***! + \********************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Bounce = void 0;\nclass Bounce {\n constructor() {\n this.distance = 200;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n }\n}\nexports.Bounce = Bounce;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvQm91bmNlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9JbnRlcmFjdGl2aXR5L01vZGVzL0JvdW5jZS5qcz9hNzc2Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Cb3VuY2UgPSB2b2lkIDA7XG5jbGFzcyBCb3VuY2Uge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmRpc3RhbmNlID0gMjAwO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZGlzdGFuY2UgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5kaXN0YW5jZSA9IGRhdGEuZGlzdGFuY2U7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkJvdW5jZSA9IEJvdW5jZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Bounce.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Bubble.js": +/*!********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Bubble.js ***! + \********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Bubble = void 0;\nconst BubbleDiv_1 = __webpack_require__(/*! ./BubbleDiv */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/BubbleDiv.js\");\nconst BubbleBase_1 = __webpack_require__(/*! ./BubbleBase */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/BubbleBase.js\");\nclass Bubble extends BubbleBase_1.BubbleBase {\n load(data) {\n super.load(data);\n if (!(data !== undefined && data.divs !== undefined)) {\n return;\n }\n if (data.divs instanceof Array) {\n this.divs = data.divs.map((s) => {\n const tmp = new BubbleDiv_1.BubbleDiv();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.divs instanceof Array || !this.divs) {\n this.divs = new BubbleDiv_1.BubbleDiv();\n }\n this.divs.load(data.divs);\n }\n }\n}\nexports.Bubble = Bubble;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvQnViYmxlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGNBQWM7QUFDZCxvQkFBb0IsbUJBQU8sQ0FBQyxnR0FBYTtBQUN6QyxxQkFBcUIsbUJBQU8sQ0FBQyxrR0FBYztBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9JbnRlcmFjdGl2aXR5L01vZGVzL0J1YmJsZS5qcz8xZmNjIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5CdWJibGUgPSB2b2lkIDA7XG5jb25zdCBCdWJibGVEaXZfMSA9IHJlcXVpcmUoXCIuL0J1YmJsZURpdlwiKTtcbmNvbnN0IEJ1YmJsZUJhc2VfMSA9IHJlcXVpcmUoXCIuL0J1YmJsZUJhc2VcIik7XG5jbGFzcyBCdWJibGUgZXh0ZW5kcyBCdWJibGVCYXNlXzEuQnViYmxlQmFzZSB7XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIHN1cGVyLmxvYWQoZGF0YSk7XG4gICAgICAgIGlmICghKGRhdGEgIT09IHVuZGVmaW5lZCAmJiBkYXRhLmRpdnMgIT09IHVuZGVmaW5lZCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5kaXZzIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgIHRoaXMuZGl2cyA9IGRhdGEuZGl2cy5tYXAoKHMpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB0bXAgPSBuZXcgQnViYmxlRGl2XzEuQnViYmxlRGl2KCk7XG4gICAgICAgICAgICAgICAgdG1wLmxvYWQocyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRtcDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuZGl2cyBpbnN0YW5jZW9mIEFycmF5IHx8ICF0aGlzLmRpdnMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRpdnMgPSBuZXcgQnViYmxlRGl2XzEuQnViYmxlRGl2KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmRpdnMubG9hZChkYXRhLmRpdnMpO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5CdWJibGUgPSBCdWJibGU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Bubble.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Modes/BubbleBase.js": +/*!************************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Modes/BubbleBase.js ***! + \************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.BubbleBase = void 0;\nconst OptionsColor_1 = __webpack_require__(/*! ../../OptionsColor */ \"./node_modules/tsparticles/Options/Classes/OptionsColor.js\");\nclass BubbleBase {\n constructor() {\n this.distance = 200;\n this.duration = 0.4;\n this.mix = false;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n if (data.mix !== undefined) {\n this.mix = data.mix;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n if (data.color !== undefined) {\n if (data.color instanceof Array) {\n this.color = data.color.map((s) => OptionsColor_1.OptionsColor.create(undefined, s));\n }\n else {\n if (this.color instanceof Array) {\n this.color = new OptionsColor_1.OptionsColor();\n }\n this.color = OptionsColor_1.OptionsColor.create(this.color, data.color);\n }\n }\n if (data.size !== undefined) {\n this.size = data.size;\n }\n }\n}\nexports.BubbleBase = BubbleBase;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvQnViYmxlQmFzZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxrQkFBa0I7QUFDbEIsdUJBQXVCLG1CQUFPLENBQUMsc0ZBQW9CO0FBQ25EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9JbnRlcmFjdGl2aXR5L01vZGVzL0J1YmJsZUJhc2UuanM/YjIyNCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuQnViYmxlQmFzZSA9IHZvaWQgMDtcbmNvbnN0IE9wdGlvbnNDb2xvcl8xID0gcmVxdWlyZShcIi4uLy4uL09wdGlvbnNDb2xvclwiKTtcbmNsYXNzIEJ1YmJsZUJhc2Uge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmRpc3RhbmNlID0gMjAwO1xuICAgICAgICB0aGlzLmR1cmF0aW9uID0gMC40O1xuICAgICAgICB0aGlzLm1peCA9IGZhbHNlO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmRpc3RhbmNlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzdGFuY2UgPSBkYXRhLmRpc3RhbmNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmR1cmF0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZHVyYXRpb24gPSBkYXRhLmR1cmF0aW9uO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLm1peCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLm1peCA9IGRhdGEubWl4O1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLm9wYWNpdHkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5vcGFjaXR5ID0gZGF0YS5vcGFjaXR5O1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmNvbG9yICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmIChkYXRhLmNvbG9yIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbG9yID0gZGF0YS5jb2xvci5tYXAoKHMpID0+IE9wdGlvbnNDb2xvcl8xLk9wdGlvbnNDb2xvci5jcmVhdGUodW5kZWZpbmVkLCBzKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jb2xvciBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29sb3IgPSBuZXcgT3B0aW9uc0NvbG9yXzEuT3B0aW9uc0NvbG9yKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuY29sb3IgPSBPcHRpb25zQ29sb3JfMS5PcHRpb25zQ29sb3IuY3JlYXRlKHRoaXMuY29sb3IsIGRhdGEuY29sb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnNpemUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5zaXplID0gZGF0YS5zaXplO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5CdWJibGVCYXNlID0gQnViYmxlQmFzZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Modes/BubbleBase.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Modes/BubbleDiv.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Modes/BubbleDiv.js ***! + \***********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.BubbleDiv = void 0;\nconst BubbleBase_1 = __webpack_require__(/*! ./BubbleBase */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/BubbleBase.js\");\nclass BubbleDiv extends BubbleBase_1.BubbleBase {\n constructor() {\n super();\n this.selectors = [];\n }\n get ids() {\n return this.selectors instanceof Array\n ? this.selectors.map((t) => t.replace(\"#\", \"\"))\n : this.selectors.replace(\"#\", \"\");\n }\n set ids(value) {\n this.selectors = value instanceof Array ? value.map((t) => `#${t}`) : `#${value}`;\n }\n load(data) {\n super.load(data);\n if (data === undefined) {\n return;\n }\n if (data.ids !== undefined) {\n this.ids = data.ids;\n }\n if (data.selectors !== undefined) {\n this.selectors = data.selectors;\n }\n }\n}\nexports.BubbleDiv = BubbleDiv;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvQnViYmxlRGl2LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGlCQUFpQjtBQUNqQixxQkFBcUIsbUJBQU8sQ0FBQyxrR0FBYztBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUVBQXVFLEVBQUUsU0FBUyxNQUFNO0FBQ3hGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9JbnRlcmFjdGl2aXR5L01vZGVzL0J1YmJsZURpdi5qcz9hZDNkIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5CdWJibGVEaXYgPSB2b2lkIDA7XG5jb25zdCBCdWJibGVCYXNlXzEgPSByZXF1aXJlKFwiLi9CdWJibGVCYXNlXCIpO1xuY2xhc3MgQnViYmxlRGl2IGV4dGVuZHMgQnViYmxlQmFzZV8xLkJ1YmJsZUJhc2Uge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnNlbGVjdG9ycyA9IFtdO1xuICAgIH1cbiAgICBnZXQgaWRzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RvcnMgaW5zdGFuY2VvZiBBcnJheVxuICAgICAgICAgICAgPyB0aGlzLnNlbGVjdG9ycy5tYXAoKHQpID0+IHQucmVwbGFjZShcIiNcIiwgXCJcIikpXG4gICAgICAgICAgICA6IHRoaXMuc2VsZWN0b3JzLnJlcGxhY2UoXCIjXCIsIFwiXCIpO1xuICAgIH1cbiAgICBzZXQgaWRzKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0b3JzID0gdmFsdWUgaW5zdGFuY2VvZiBBcnJheSA/IHZhbHVlLm1hcCgodCkgPT4gYCMke3R9YCkgOiBgIyR7dmFsdWV9YDtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIHN1cGVyLmxvYWQoZGF0YSk7XG4gICAgICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5pZHMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5pZHMgPSBkYXRhLmlkcztcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5zZWxlY3RvcnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RvcnMgPSBkYXRhLnNlbGVjdG9ycztcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuQnViYmxlRGl2ID0gQnViYmxlRGl2O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Modes/BubbleDiv.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Connect.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Connect.js ***! + \*********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Connect = void 0;\nconst ConnectLinks_1 = __webpack_require__(/*! ./ConnectLinks */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/ConnectLinks.js\");\nclass Connect {\n constructor() {\n this.distance = 80;\n this.links = new ConnectLinks_1.ConnectLinks();\n this.radius = 60;\n }\n get line_linked() {\n return this.links;\n }\n set line_linked(value) {\n this.links = value;\n }\n get lineLinked() {\n return this.links;\n }\n set lineLinked(value) {\n this.links = value;\n }\n load(data) {\n var _a, _b;\n if (data === undefined) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n this.links.load((_b = (_a = data.links) !== null && _a !== void 0 ? _a : data.lineLinked) !== null && _b !== void 0 ? _b : data.line_linked);\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n }\n}\nexports.Connect = Connect;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvQ29ubmVjdC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxlQUFlO0FBQ2YsdUJBQXVCLG1CQUFPLENBQUMsc0dBQWdCO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvSW50ZXJhY3Rpdml0eS9Nb2Rlcy9Db25uZWN0LmpzPzJjNzAiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkNvbm5lY3QgPSB2b2lkIDA7XG5jb25zdCBDb25uZWN0TGlua3NfMSA9IHJlcXVpcmUoXCIuL0Nvbm5lY3RMaW5rc1wiKTtcbmNsYXNzIENvbm5lY3Qge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmRpc3RhbmNlID0gODA7XG4gICAgICAgIHRoaXMubGlua3MgPSBuZXcgQ29ubmVjdExpbmtzXzEuQ29ubmVjdExpbmtzKCk7XG4gICAgICAgIHRoaXMucmFkaXVzID0gNjA7XG4gICAgfVxuICAgIGdldCBsaW5lX2xpbmtlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGlua3M7XG4gICAgfVxuICAgIHNldCBsaW5lX2xpbmtlZCh2YWx1ZSkge1xuICAgICAgICB0aGlzLmxpbmtzID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBsaW5lTGlua2VkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5saW5rcztcbiAgICB9XG4gICAgc2V0IGxpbmVMaW5rZWQodmFsdWUpIHtcbiAgICAgICAgdGhpcy5saW5rcyA9IHZhbHVlO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmRpc3RhbmNlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzdGFuY2UgPSBkYXRhLmRpc3RhbmNlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubGlua3MubG9hZCgoX2IgPSAoX2EgPSBkYXRhLmxpbmtzKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBkYXRhLmxpbmVMaW5rZWQpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IGRhdGEubGluZV9saW5rZWQpO1xuICAgICAgICBpZiAoZGF0YS5yYWRpdXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5yYWRpdXMgPSBkYXRhLnJhZGl1cztcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuQ29ubmVjdCA9IENvbm5lY3Q7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Connect.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Modes/ConnectLinks.js": +/*!**************************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Modes/ConnectLinks.js ***! + \**************************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ConnectLinks = void 0;\nclass ConnectLinks {\n constructor() {\n this.opacity = 0.5;\n }\n load(data) {\n if (!(data !== undefined && data.opacity !== undefined)) {\n return;\n }\n this.opacity = data.opacity;\n }\n}\nexports.ConnectLinks = ConnectLinks;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvQ29ubmVjdExpbmtzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELG9CQUFvQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvSW50ZXJhY3Rpdml0eS9Nb2Rlcy9Db25uZWN0TGlua3MuanM/NzQwYSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuQ29ubmVjdExpbmtzID0gdm9pZCAwO1xuY2xhc3MgQ29ubmVjdExpbmtzIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5vcGFjaXR5ID0gMC41O1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKCEoZGF0YSAhPT0gdW5kZWZpbmVkICYmIGRhdGEub3BhY2l0eSAhPT0gdW5kZWZpbmVkKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub3BhY2l0eSA9IGRhdGEub3BhY2l0eTtcbiAgICB9XG59XG5leHBvcnRzLkNvbm5lY3RMaW5rcyA9IENvbm5lY3RMaW5rcztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Modes/ConnectLinks.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Grab.js": +/*!******************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Grab.js ***! + \******************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Grab = void 0;\nconst GrabLinks_1 = __webpack_require__(/*! ./GrabLinks */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/GrabLinks.js\");\nclass Grab {\n constructor() {\n this.distance = 100;\n this.links = new GrabLinks_1.GrabLinks();\n }\n get line_linked() {\n return this.links;\n }\n set line_linked(value) {\n this.links = value;\n }\n get lineLinked() {\n return this.links;\n }\n set lineLinked(value) {\n this.links = value;\n }\n load(data) {\n var _a, _b;\n if (data === undefined) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n this.links.load((_b = (_a = data.links) !== null && _a !== void 0 ? _a : data.lineLinked) !== null && _b !== void 0 ? _b : data.line_linked);\n }\n}\nexports.Grab = Grab;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvR3JhYi5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxZQUFZO0FBQ1osb0JBQW9CLG1CQUFPLENBQUMsZ0dBQWE7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvSW50ZXJhY3Rpdml0eS9Nb2Rlcy9HcmFiLmpzP2RiZGUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkdyYWIgPSB2b2lkIDA7XG5jb25zdCBHcmFiTGlua3NfMSA9IHJlcXVpcmUoXCIuL0dyYWJMaW5rc1wiKTtcbmNsYXNzIEdyYWIge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmRpc3RhbmNlID0gMTAwO1xuICAgICAgICB0aGlzLmxpbmtzID0gbmV3IEdyYWJMaW5rc18xLkdyYWJMaW5rcygpO1xuICAgIH1cbiAgICBnZXQgbGluZV9saW5rZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxpbmtzO1xuICAgIH1cbiAgICBzZXQgbGluZV9saW5rZWQodmFsdWUpIHtcbiAgICAgICAgdGhpcy5saW5rcyA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgbGluZUxpbmtlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGlua3M7XG4gICAgfVxuICAgIHNldCBsaW5lTGlua2VkKHZhbHVlKSB7XG4gICAgICAgIHRoaXMubGlua3MgPSB2YWx1ZTtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5kaXN0YW5jZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmRpc3RhbmNlID0gZGF0YS5kaXN0YW5jZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxpbmtzLmxvYWQoKF9iID0gKF9hID0gZGF0YS5saW5rcykgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogZGF0YS5saW5lTGlua2VkKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBkYXRhLmxpbmVfbGlua2VkKTtcbiAgICB9XG59XG5leHBvcnRzLkdyYWIgPSBHcmFiO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Grab.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Modes/GrabLinks.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Modes/GrabLinks.js ***! + \***********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.GrabLinks = void 0;\nconst OptionsColor_1 = __webpack_require__(/*! ../../OptionsColor */ \"./node_modules/tsparticles/Options/Classes/OptionsColor.js\");\nclass GrabLinks {\n constructor() {\n this.blink = false;\n this.consent = false;\n this.opacity = 1;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.blink !== undefined) {\n this.blink = data.blink;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor_1.OptionsColor.create(this.color, data.color);\n }\n if (data.consent !== undefined) {\n this.consent = data.consent;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\nexports.GrabLinks = GrabLinks;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvR3JhYkxpbmtzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGlCQUFpQjtBQUNqQix1QkFBdUIsbUJBQU8sQ0FBQyxzRkFBb0I7QUFDbkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvSW50ZXJhY3Rpdml0eS9Nb2Rlcy9HcmFiTGlua3MuanM/MWQzZCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuR3JhYkxpbmtzID0gdm9pZCAwO1xuY29uc3QgT3B0aW9uc0NvbG9yXzEgPSByZXF1aXJlKFwiLi4vLi4vT3B0aW9uc0NvbG9yXCIpO1xuY2xhc3MgR3JhYkxpbmtzIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5ibGluayA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNvbnNlbnQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5vcGFjaXR5ID0gMTtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5ibGluayAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmJsaW5rID0gZGF0YS5ibGluaztcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5jb2xvciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbG9yID0gT3B0aW9uc0NvbG9yXzEuT3B0aW9uc0NvbG9yLmNyZWF0ZSh0aGlzLmNvbG9yLCBkYXRhLmNvbG9yKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5jb25zZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29uc2VudCA9IGRhdGEuY29uc2VudDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5vcGFjaXR5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMub3BhY2l0eSA9IGRhdGEub3BhY2l0eTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuR3JhYkxpbmtzID0gR3JhYkxpbmtzO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Modes/GrabLinks.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Light.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Light.js ***! + \*******************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Light = void 0;\nconst LightArea_1 = __webpack_require__(/*! ./LightArea */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/LightArea.js\");\nconst LightShadow_1 = __webpack_require__(/*! ./LightShadow */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/LightShadow.js\");\nclass Light {\n constructor() {\n this.area = new LightArea_1.LightArea();\n this.shadow = new LightShadow_1.LightShadow();\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n this.area.load(data.area);\n this.shadow.load(data.shadow);\n }\n}\nexports.Light = Light;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvTGlnaHQuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsYUFBYTtBQUNiLG9CQUFvQixtQkFBTyxDQUFDLGdHQUFhO0FBQ3pDLHNCQUFzQixtQkFBTyxDQUFDLG9HQUFlO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvTGlnaHQuanM/NWNmOCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuTGlnaHQgPSB2b2lkIDA7XG5jb25zdCBMaWdodEFyZWFfMSA9IHJlcXVpcmUoXCIuL0xpZ2h0QXJlYVwiKTtcbmNvbnN0IExpZ2h0U2hhZG93XzEgPSByZXF1aXJlKFwiLi9MaWdodFNoYWRvd1wiKTtcbmNsYXNzIExpZ2h0IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5hcmVhID0gbmV3IExpZ2h0QXJlYV8xLkxpZ2h0QXJlYSgpO1xuICAgICAgICB0aGlzLnNoYWRvdyA9IG5ldyBMaWdodFNoYWRvd18xLkxpZ2h0U2hhZG93KCk7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hcmVhLmxvYWQoZGF0YS5hcmVhKTtcbiAgICAgICAgdGhpcy5zaGFkb3cubG9hZChkYXRhLnNoYWRvdyk7XG4gICAgfVxufVxuZXhwb3J0cy5MaWdodCA9IExpZ2h0O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Light.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Modes/LightArea.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Modes/LightArea.js ***! + \***********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.LightArea = void 0;\nconst LightGradient_1 = __webpack_require__(/*! ./LightGradient */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/LightGradient.js\");\nclass LightArea {\n constructor() {\n this.gradient = new LightGradient_1.LightGradient();\n this.radius = 1000;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n this.gradient.load(data.gradient);\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n }\n}\nexports.LightArea = LightArea;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvTGlnaHRBcmVhLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGlCQUFpQjtBQUNqQix3QkFBd0IsbUJBQU8sQ0FBQyx3R0FBaUI7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvSW50ZXJhY3Rpdml0eS9Nb2Rlcy9MaWdodEFyZWEuanM/OTU0MiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuTGlnaHRBcmVhID0gdm9pZCAwO1xuY29uc3QgTGlnaHRHcmFkaWVudF8xID0gcmVxdWlyZShcIi4vTGlnaHRHcmFkaWVudFwiKTtcbmNsYXNzIExpZ2h0QXJlYSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuZ3JhZGllbnQgPSBuZXcgTGlnaHRHcmFkaWVudF8xLkxpZ2h0R3JhZGllbnQoKTtcbiAgICAgICAgdGhpcy5yYWRpdXMgPSAxMDAwO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZ3JhZGllbnQubG9hZChkYXRhLmdyYWRpZW50KTtcbiAgICAgICAgaWYgKGRhdGEucmFkaXVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMucmFkaXVzID0gZGF0YS5yYWRpdXM7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkxpZ2h0QXJlYSA9IExpZ2h0QXJlYTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Modes/LightArea.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Modes/LightGradient.js": +/*!***************************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Modes/LightGradient.js ***! + \***************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.LightGradient = void 0;\nconst OptionsColor_1 = __webpack_require__(/*! ../../OptionsColor */ \"./node_modules/tsparticles/Options/Classes/OptionsColor.js\");\nclass LightGradient {\n constructor() {\n this.start = new OptionsColor_1.OptionsColor();\n this.stop = new OptionsColor_1.OptionsColor();\n this.start.value = \"#ffffff\";\n this.stop.value = \"#000000\";\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n this.start = OptionsColor_1.OptionsColor.create(this.start, data.start);\n this.stop = OptionsColor_1.OptionsColor.create(this.stop, data.stop);\n }\n}\nexports.LightGradient = LightGradient;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvTGlnaHRHcmFkaWVudC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxxQkFBcUI7QUFDckIsdUJBQXVCLG1CQUFPLENBQUMsc0ZBQW9CO0FBQ25EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvTGlnaHRHcmFkaWVudC5qcz81MTg5Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5MaWdodEdyYWRpZW50ID0gdm9pZCAwO1xuY29uc3QgT3B0aW9uc0NvbG9yXzEgPSByZXF1aXJlKFwiLi4vLi4vT3B0aW9uc0NvbG9yXCIpO1xuY2xhc3MgTGlnaHRHcmFkaWVudCB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuc3RhcnQgPSBuZXcgT3B0aW9uc0NvbG9yXzEuT3B0aW9uc0NvbG9yKCk7XG4gICAgICAgIHRoaXMuc3RvcCA9IG5ldyBPcHRpb25zQ29sb3JfMS5PcHRpb25zQ29sb3IoKTtcbiAgICAgICAgdGhpcy5zdGFydC52YWx1ZSA9IFwiI2ZmZmZmZlwiO1xuICAgICAgICB0aGlzLnN0b3AudmFsdWUgPSBcIiMwMDAwMDBcIjtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN0YXJ0ID0gT3B0aW9uc0NvbG9yXzEuT3B0aW9uc0NvbG9yLmNyZWF0ZSh0aGlzLnN0YXJ0LCBkYXRhLnN0YXJ0KTtcbiAgICAgICAgdGhpcy5zdG9wID0gT3B0aW9uc0NvbG9yXzEuT3B0aW9uc0NvbG9yLmNyZWF0ZSh0aGlzLnN0b3AsIGRhdGEuc3RvcCk7XG4gICAgfVxufVxuZXhwb3J0cy5MaWdodEdyYWRpZW50ID0gTGlnaHRHcmFkaWVudDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Modes/LightGradient.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Modes/LightShadow.js": +/*!*************************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Modes/LightShadow.js ***! + \*************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.LightShadow = void 0;\nconst OptionsColor_1 = __webpack_require__(/*! ../../OptionsColor */ \"./node_modules/tsparticles/Options/Classes/OptionsColor.js\");\nclass LightShadow {\n constructor() {\n this.color = new OptionsColor_1.OptionsColor();\n this.color.value = \"#000000\";\n this.length = 2000;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n this.color = OptionsColor_1.OptionsColor.create(this.color, data.color);\n if (data.length !== undefined) {\n this.length = data.length;\n }\n }\n}\nexports.LightShadow = LightShadow;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvTGlnaHRTaGFkb3cuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsbUJBQW1CO0FBQ25CLHVCQUF1QixtQkFBTyxDQUFDLHNGQUFvQjtBQUNuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvTGlnaHRTaGFkb3cuanM/MDdjMyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuTGlnaHRTaGFkb3cgPSB2b2lkIDA7XG5jb25zdCBPcHRpb25zQ29sb3JfMSA9IHJlcXVpcmUoXCIuLi8uLi9PcHRpb25zQ29sb3JcIik7XG5jbGFzcyBMaWdodFNoYWRvdyB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuY29sb3IgPSBuZXcgT3B0aW9uc0NvbG9yXzEuT3B0aW9uc0NvbG9yKCk7XG4gICAgICAgIHRoaXMuY29sb3IudmFsdWUgPSBcIiMwMDAwMDBcIjtcbiAgICAgICAgdGhpcy5sZW5ndGggPSAyMDAwO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY29sb3IgPSBPcHRpb25zQ29sb3JfMS5PcHRpb25zQ29sb3IuY3JlYXRlKHRoaXMuY29sb3IsIGRhdGEuY29sb3IpO1xuICAgICAgICBpZiAoZGF0YS5sZW5ndGggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5sZW5ndGggPSBkYXRhLmxlbmd0aDtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuTGlnaHRTaGFkb3cgPSBMaWdodFNoYWRvdztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Modes/LightShadow.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Modes.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Modes.js ***! + \*******************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Modes = void 0;\nconst Bubble_1 = __webpack_require__(/*! ./Bubble */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Bubble.js\");\nconst Connect_1 = __webpack_require__(/*! ./Connect */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Connect.js\");\nconst Grab_1 = __webpack_require__(/*! ./Grab */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Grab.js\");\nconst Remove_1 = __webpack_require__(/*! ./Remove */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Remove.js\");\nconst Push_1 = __webpack_require__(/*! ./Push */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Push.js\");\nconst Repulse_1 = __webpack_require__(/*! ./Repulse */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Repulse.js\");\nconst Slow_1 = __webpack_require__(/*! ./Slow */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Slow.js\");\nconst Trail_1 = __webpack_require__(/*! ./Trail */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Trail.js\");\nconst Attract_1 = __webpack_require__(/*! ./Attract */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Attract.js\");\nconst Light_1 = __webpack_require__(/*! ./Light */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Light.js\");\nconst Bounce_1 = __webpack_require__(/*! ./Bounce */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Bounce.js\");\nclass Modes {\n constructor() {\n this.attract = new Attract_1.Attract();\n this.bounce = new Bounce_1.Bounce();\n this.bubble = new Bubble_1.Bubble();\n this.connect = new Connect_1.Connect();\n this.grab = new Grab_1.Grab();\n this.light = new Light_1.Light();\n this.push = new Push_1.Push();\n this.remove = new Remove_1.Remove();\n this.repulse = new Repulse_1.Repulse();\n this.slow = new Slow_1.Slow();\n this.trail = new Trail_1.Trail();\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n this.attract.load(data.attract);\n this.bubble.load(data.bubble);\n this.connect.load(data.connect);\n this.grab.load(data.grab);\n this.light.load(data.light);\n this.push.load(data.push);\n this.remove.load(data.remove);\n this.repulse.load(data.repulse);\n this.slow.load(data.slow);\n this.trail.load(data.trail);\n }\n}\nexports.Modes = Modes;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvTW9kZXMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsYUFBYTtBQUNiLGlCQUFpQixtQkFBTyxDQUFDLDBGQUFVO0FBQ25DLGtCQUFrQixtQkFBTyxDQUFDLDRGQUFXO0FBQ3JDLGVBQWUsbUJBQU8sQ0FBQyxzRkFBUTtBQUMvQixpQkFBaUIsbUJBQU8sQ0FBQywwRkFBVTtBQUNuQyxlQUFlLG1CQUFPLENBQUMsc0ZBQVE7QUFDL0Isa0JBQWtCLG1CQUFPLENBQUMsNEZBQVc7QUFDckMsZUFBZSxtQkFBTyxDQUFDLHNGQUFRO0FBQy9CLGdCQUFnQixtQkFBTyxDQUFDLHdGQUFTO0FBQ2pDLGtCQUFrQixtQkFBTyxDQUFDLDRGQUFXO0FBQ3JDLGdCQUFnQixtQkFBTyxDQUFDLHdGQUFTO0FBQ2pDLGlCQUFpQixtQkFBTyxDQUFDLDBGQUFVO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9JbnRlcmFjdGl2aXR5L01vZGVzL01vZGVzLmpzPzE3OTgiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLk1vZGVzID0gdm9pZCAwO1xuY29uc3QgQnViYmxlXzEgPSByZXF1aXJlKFwiLi9CdWJibGVcIik7XG5jb25zdCBDb25uZWN0XzEgPSByZXF1aXJlKFwiLi9Db25uZWN0XCIpO1xuY29uc3QgR3JhYl8xID0gcmVxdWlyZShcIi4vR3JhYlwiKTtcbmNvbnN0IFJlbW92ZV8xID0gcmVxdWlyZShcIi4vUmVtb3ZlXCIpO1xuY29uc3QgUHVzaF8xID0gcmVxdWlyZShcIi4vUHVzaFwiKTtcbmNvbnN0IFJlcHVsc2VfMSA9IHJlcXVpcmUoXCIuL1JlcHVsc2VcIik7XG5jb25zdCBTbG93XzEgPSByZXF1aXJlKFwiLi9TbG93XCIpO1xuY29uc3QgVHJhaWxfMSA9IHJlcXVpcmUoXCIuL1RyYWlsXCIpO1xuY29uc3QgQXR0cmFjdF8xID0gcmVxdWlyZShcIi4vQXR0cmFjdFwiKTtcbmNvbnN0IExpZ2h0XzEgPSByZXF1aXJlKFwiLi9MaWdodFwiKTtcbmNvbnN0IEJvdW5jZV8xID0gcmVxdWlyZShcIi4vQm91bmNlXCIpO1xuY2xhc3MgTW9kZXMge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmF0dHJhY3QgPSBuZXcgQXR0cmFjdF8xLkF0dHJhY3QoKTtcbiAgICAgICAgdGhpcy5ib3VuY2UgPSBuZXcgQm91bmNlXzEuQm91bmNlKCk7XG4gICAgICAgIHRoaXMuYnViYmxlID0gbmV3IEJ1YmJsZV8xLkJ1YmJsZSgpO1xuICAgICAgICB0aGlzLmNvbm5lY3QgPSBuZXcgQ29ubmVjdF8xLkNvbm5lY3QoKTtcbiAgICAgICAgdGhpcy5ncmFiID0gbmV3IEdyYWJfMS5HcmFiKCk7XG4gICAgICAgIHRoaXMubGlnaHQgPSBuZXcgTGlnaHRfMS5MaWdodCgpO1xuICAgICAgICB0aGlzLnB1c2ggPSBuZXcgUHVzaF8xLlB1c2goKTtcbiAgICAgICAgdGhpcy5yZW1vdmUgPSBuZXcgUmVtb3ZlXzEuUmVtb3ZlKCk7XG4gICAgICAgIHRoaXMucmVwdWxzZSA9IG5ldyBSZXB1bHNlXzEuUmVwdWxzZSgpO1xuICAgICAgICB0aGlzLnNsb3cgPSBuZXcgU2xvd18xLlNsb3coKTtcbiAgICAgICAgdGhpcy50cmFpbCA9IG5ldyBUcmFpbF8xLlRyYWlsKCk7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hdHRyYWN0LmxvYWQoZGF0YS5hdHRyYWN0KTtcbiAgICAgICAgdGhpcy5idWJibGUubG9hZChkYXRhLmJ1YmJsZSk7XG4gICAgICAgIHRoaXMuY29ubmVjdC5sb2FkKGRhdGEuY29ubmVjdCk7XG4gICAgICAgIHRoaXMuZ3JhYi5sb2FkKGRhdGEuZ3JhYik7XG4gICAgICAgIHRoaXMubGlnaHQubG9hZChkYXRhLmxpZ2h0KTtcbiAgICAgICAgdGhpcy5wdXNoLmxvYWQoZGF0YS5wdXNoKTtcbiAgICAgICAgdGhpcy5yZW1vdmUubG9hZChkYXRhLnJlbW92ZSk7XG4gICAgICAgIHRoaXMucmVwdWxzZS5sb2FkKGRhdGEucmVwdWxzZSk7XG4gICAgICAgIHRoaXMuc2xvdy5sb2FkKGRhdGEuc2xvdyk7XG4gICAgICAgIHRoaXMudHJhaWwubG9hZChkYXRhLnRyYWlsKTtcbiAgICB9XG59XG5leHBvcnRzLk1vZGVzID0gTW9kZXM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Modes.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Push.js": +/*!******************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Push.js ***! + \******************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Push = void 0;\nclass Push {\n constructor() {\n this.default = true;\n this.groups = [];\n this.quantity = 4;\n }\n get particles_nb() {\n return this.quantity;\n }\n set particles_nb(value) {\n this.quantity = value;\n }\n load(data) {\n var _a;\n if (data === undefined) {\n return;\n }\n if (data.default !== undefined) {\n this.default = data.default;\n }\n if (data.groups !== undefined) {\n this.groups = data.groups.map((t) => t);\n }\n if (!this.groups.length) {\n this.default = true;\n }\n const quantity = (_a = data.quantity) !== null && _a !== void 0 ? _a : data.particles_nb;\n if (quantity !== undefined) {\n this.quantity = quantity;\n }\n }\n}\nexports.Push = Push;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvUHVzaC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVkiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9JbnRlcmFjdGl2aXR5L01vZGVzL1B1c2guanM/NzJhZSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuUHVzaCA9IHZvaWQgMDtcbmNsYXNzIFB1c2gge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmRlZmF1bHQgPSB0cnVlO1xuICAgICAgICB0aGlzLmdyb3VwcyA9IFtdO1xuICAgICAgICB0aGlzLnF1YW50aXR5ID0gNDtcbiAgICB9XG4gICAgZ2V0IHBhcnRpY2xlc19uYigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucXVhbnRpdHk7XG4gICAgfVxuICAgIHNldCBwYXJ0aWNsZXNfbmIodmFsdWUpIHtcbiAgICAgICAgdGhpcy5xdWFudGl0eSA9IHZhbHVlO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZGVmYXVsdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmRlZmF1bHQgPSBkYXRhLmRlZmF1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZ3JvdXBzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZ3JvdXBzID0gZGF0YS5ncm91cHMubWFwKCh0KSA9PiB0KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuZ3JvdXBzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5kZWZhdWx0ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBxdWFudGl0eSA9IChfYSA9IGRhdGEucXVhbnRpdHkpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGRhdGEucGFydGljbGVzX25iO1xuICAgICAgICBpZiAocXVhbnRpdHkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5xdWFudGl0eSA9IHF1YW50aXR5O1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5QdXNoID0gUHVzaDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Push.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Remove.js": +/*!********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Remove.js ***! + \********************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Remove = void 0;\nclass Remove {\n constructor() {\n this.quantity = 2;\n }\n get particles_nb() {\n return this.quantity;\n }\n set particles_nb(value) {\n this.quantity = value;\n }\n load(data) {\n var _a;\n if (data === undefined) {\n return;\n }\n const quantity = (_a = data.quantity) !== null && _a !== void 0 ? _a : data.particles_nb;\n if (quantity !== undefined) {\n this.quantity = quantity;\n }\n }\n}\nexports.Remove = Remove;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvUmVtb3ZlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvSW50ZXJhY3Rpdml0eS9Nb2Rlcy9SZW1vdmUuanM/MjgxOSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuUmVtb3ZlID0gdm9pZCAwO1xuY2xhc3MgUmVtb3ZlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5xdWFudGl0eSA9IDI7XG4gICAgfVxuICAgIGdldCBwYXJ0aWNsZXNfbmIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnF1YW50aXR5O1xuICAgIH1cbiAgICBzZXQgcGFydGljbGVzX25iKHZhbHVlKSB7XG4gICAgICAgIHRoaXMucXVhbnRpdHkgPSB2YWx1ZTtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHF1YW50aXR5ID0gKF9hID0gZGF0YS5xdWFudGl0eSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogZGF0YS5wYXJ0aWNsZXNfbmI7XG4gICAgICAgIGlmIChxdWFudGl0eSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnF1YW50aXR5ID0gcXVhbnRpdHk7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLlJlbW92ZSA9IFJlbW92ZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Remove.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Repulse.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Repulse.js ***! + \*********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Repulse = void 0;\nconst RepulseDiv_1 = __webpack_require__(/*! ./RepulseDiv */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/RepulseDiv.js\");\nconst RepulseBase_1 = __webpack_require__(/*! ./RepulseBase */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/RepulseBase.js\");\nclass Repulse extends RepulseBase_1.RepulseBase {\n load(data) {\n super.load(data);\n if ((data === null || data === void 0 ? void 0 : data.divs) === undefined) {\n return;\n }\n if (data.divs instanceof Array) {\n this.divs = data.divs.map((s) => {\n const tmp = new RepulseDiv_1.RepulseDiv();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.divs instanceof Array || !this.divs) {\n this.divs = new RepulseDiv_1.RepulseDiv();\n }\n this.divs.load(data.divs);\n }\n }\n}\nexports.Repulse = Repulse;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvUmVwdWxzZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxlQUFlO0FBQ2YscUJBQXFCLG1CQUFPLENBQUMsa0dBQWM7QUFDM0Msc0JBQXNCLG1CQUFPLENBQUMsb0dBQWU7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvSW50ZXJhY3Rpdml0eS9Nb2Rlcy9SZXB1bHNlLmpzPzM1OTIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlJlcHVsc2UgPSB2b2lkIDA7XG5jb25zdCBSZXB1bHNlRGl2XzEgPSByZXF1aXJlKFwiLi9SZXB1bHNlRGl2XCIpO1xuY29uc3QgUmVwdWxzZUJhc2VfMSA9IHJlcXVpcmUoXCIuL1JlcHVsc2VCYXNlXCIpO1xuY2xhc3MgUmVwdWxzZSBleHRlbmRzIFJlcHVsc2VCYXNlXzEuUmVwdWxzZUJhc2Uge1xuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBzdXBlci5sb2FkKGRhdGEpO1xuICAgICAgICBpZiAoKGRhdGEgPT09IG51bGwgfHwgZGF0YSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZGF0YS5kaXZzKSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZGl2cyBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICB0aGlzLmRpdnMgPSBkYXRhLmRpdnMubWFwKChzKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdG1wID0gbmV3IFJlcHVsc2VEaXZfMS5SZXB1bHNlRGl2KCk7XG4gICAgICAgICAgICAgICAgdG1wLmxvYWQocyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRtcDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuZGl2cyBpbnN0YW5jZW9mIEFycmF5IHx8ICF0aGlzLmRpdnMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRpdnMgPSBuZXcgUmVwdWxzZURpdl8xLlJlcHVsc2VEaXYoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZGl2cy5sb2FkKGRhdGEuZGl2cyk7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLlJlcHVsc2UgPSBSZXB1bHNlO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Repulse.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Modes/RepulseBase.js": +/*!*************************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Modes/RepulseBase.js ***! + \*************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.RepulseBase = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nclass RepulseBase {\n constructor() {\n this.distance = 200;\n this.duration = 0.4;\n this.factor = 100;\n this.speed = 1;\n this.maxSpeed = 50;\n this.easing = Enums_1.EasingType.easeOutQuad;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n if (data.easing !== undefined) {\n this.easing = data.easing;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n if (data.maxSpeed !== undefined) {\n this.maxSpeed = data.maxSpeed;\n }\n }\n}\nexports.RepulseBase = RepulseBase;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvUmVwdWxzZUJhc2UuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsbUJBQW1CO0FBQ25CLGdCQUFnQixtQkFBTyxDQUFDLG9FQUFtQjtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9JbnRlcmFjdGl2aXR5L01vZGVzL1JlcHVsc2VCYXNlLmpzP2ZlNmEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlJlcHVsc2VCYXNlID0gdm9pZCAwO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuLi8uLi8uLi8uLi9FbnVtc1wiKTtcbmNsYXNzIFJlcHVsc2VCYXNlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5kaXN0YW5jZSA9IDIwMDtcbiAgICAgICAgdGhpcy5kdXJhdGlvbiA9IDAuNDtcbiAgICAgICAgdGhpcy5mYWN0b3IgPSAxMDA7XG4gICAgICAgIHRoaXMuc3BlZWQgPSAxO1xuICAgICAgICB0aGlzLm1heFNwZWVkID0gNTA7XG4gICAgICAgIHRoaXMuZWFzaW5nID0gRW51bXNfMS5FYXNpbmdUeXBlLmVhc2VPdXRRdWFkO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZGlzdGFuY2UgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5kaXN0YW5jZSA9IGRhdGEuZGlzdGFuY2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZHVyYXRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5kdXJhdGlvbiA9IGRhdGEuZHVyYXRpb247XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZWFzaW5nICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZWFzaW5nID0gZGF0YS5lYXNpbmc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZmFjdG9yICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZmFjdG9yID0gZGF0YS5mYWN0b3I7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuc3BlZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5zcGVlZCA9IGRhdGEuc3BlZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEubWF4U3BlZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5tYXhTcGVlZCA9IGRhdGEubWF4U3BlZWQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLlJlcHVsc2VCYXNlID0gUmVwdWxzZUJhc2U7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Modes/RepulseBase.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Modes/RepulseDiv.js": +/*!************************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Modes/RepulseDiv.js ***! + \************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.RepulseDiv = void 0;\nconst RepulseBase_1 = __webpack_require__(/*! ./RepulseBase */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/RepulseBase.js\");\nclass RepulseDiv extends RepulseBase_1.RepulseBase {\n constructor() {\n super();\n this.selectors = [];\n }\n get ids() {\n if (this.selectors instanceof Array) {\n return this.selectors.map((t) => t.replace(\"#\", \"\"));\n }\n else {\n return this.selectors.replace(\"#\", \"\");\n }\n }\n set ids(value) {\n if (value instanceof Array) {\n this.selectors = value.map(() => `#${value}`);\n }\n else {\n this.selectors = `#${value}`;\n }\n }\n load(data) {\n super.load(data);\n if (data === undefined) {\n return;\n }\n if (data.ids !== undefined) {\n this.ids = data.ids;\n }\n if (data.selectors !== undefined) {\n this.selectors = data.selectors;\n }\n }\n}\nexports.RepulseDiv = RepulseDiv;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvUmVwdWxzZURpdi5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxrQkFBa0I7QUFDbEIsc0JBQXNCLG1CQUFPLENBQUMsb0dBQWU7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaURBQWlELE1BQU07QUFDdkQ7QUFDQTtBQUNBLGlDQUFpQyxNQUFNO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvUmVwdWxzZURpdi5qcz9jNWQ5Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5SZXB1bHNlRGl2ID0gdm9pZCAwO1xuY29uc3QgUmVwdWxzZUJhc2VfMSA9IHJlcXVpcmUoXCIuL1JlcHVsc2VCYXNlXCIpO1xuY2xhc3MgUmVwdWxzZURpdiBleHRlbmRzIFJlcHVsc2VCYXNlXzEuUmVwdWxzZUJhc2Uge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnNlbGVjdG9ycyA9IFtdO1xuICAgIH1cbiAgICBnZXQgaWRzKCkge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RvcnMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0b3JzLm1hcCgodCkgPT4gdC5yZXBsYWNlKFwiI1wiLCBcIlwiKSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RvcnMucmVwbGFjZShcIiNcIiwgXCJcIik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc2V0IGlkcyh2YWx1ZSkge1xuICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RvcnMgPSB2YWx1ZS5tYXAoKCkgPT4gYCMke3ZhbHVlfWApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RvcnMgPSBgIyR7dmFsdWV9YDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgc3VwZXIubG9hZChkYXRhKTtcbiAgICAgICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmlkcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmlkcyA9IGRhdGEuaWRzO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnNlbGVjdG9ycyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdG9ycyA9IGRhdGEuc2VsZWN0b3JzO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5SZXB1bHNlRGl2ID0gUmVwdWxzZURpdjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Modes/RepulseDiv.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Slow.js": +/*!******************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Slow.js ***! + \******************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Slow = void 0;\nclass Slow {\n constructor() {\n this.factor = 3;\n this.radius = 200;\n }\n get active() {\n return false;\n }\n set active(_value) {\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n }\n}\nexports.Slow = Slow;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvU2xvdy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvSW50ZXJhY3Rpdml0eS9Nb2Rlcy9TbG93LmpzPzM1MGUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlNsb3cgPSB2b2lkIDA7XG5jbGFzcyBTbG93IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5mYWN0b3IgPSAzO1xuICAgICAgICB0aGlzLnJhZGl1cyA9IDIwMDtcbiAgICB9XG4gICAgZ2V0IGFjdGl2ZSgpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBzZXQgYWN0aXZlKF92YWx1ZSkge1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmZhY3RvciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmZhY3RvciA9IGRhdGEuZmFjdG9yO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnJhZGl1cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnJhZGl1cyA9IGRhdGEucmFkaXVzO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5TbG93ID0gU2xvdztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Slow.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Trail.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Trail.js ***! + \*******************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Trail = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass Trail {\n constructor() {\n this.delay = 1;\n this.pauseOnStop = false;\n this.quantity = 1;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.delay !== undefined) {\n this.delay = data.delay;\n }\n if (data.quantity !== undefined) {\n this.quantity = data.quantity;\n }\n if (data.particles !== undefined) {\n this.particles = (0, Utils_1.deepExtend)({}, data.particles);\n }\n if (data.pauseOnStop !== undefined) {\n this.pauseOnStop = data.pauseOnStop;\n }\n }\n}\nexports.Trail = Trail;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvVHJhaWwuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsYUFBYTtBQUNiLGdCQUFnQixtQkFBTyxDQUFDLG9FQUFtQjtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdURBQXVEO0FBQ3ZEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9JbnRlcmFjdGl2aXR5L01vZGVzL1RyYWlsLmpzPzcyYzciXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlRyYWlsID0gdm9pZCAwO1xuY29uc3QgVXRpbHNfMSA9IHJlcXVpcmUoXCIuLi8uLi8uLi8uLi9VdGlsc1wiKTtcbmNsYXNzIFRyYWlsIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5kZWxheSA9IDE7XG4gICAgICAgIHRoaXMucGF1c2VPblN0b3AgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5xdWFudGl0eSA9IDE7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZGVsYXkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5kZWxheSA9IGRhdGEuZGVsYXk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEucXVhbnRpdHkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5xdWFudGl0eSA9IGRhdGEucXVhbnRpdHk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEucGFydGljbGVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMucGFydGljbGVzID0gKDAsIFV0aWxzXzEuZGVlcEV4dGVuZCkoe30sIGRhdGEucGFydGljbGVzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5wYXVzZU9uU3RvcCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnBhdXNlT25TdG9wID0gZGF0YS5wYXVzZU9uU3RvcDtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuVHJhaWwgPSBUcmFpbDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Trail.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/ManualParticle.js": +/*!********************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/ManualParticle.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ManualParticle = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass ManualParticle {\n load(data) {\n var _a, _b;\n if (!data) {\n return;\n }\n if (data.position !== undefined) {\n this.position = {\n x: (_a = data.position.x) !== null && _a !== void 0 ? _a : 50,\n y: (_b = data.position.y) !== null && _b !== void 0 ? _b : 50,\n };\n }\n if (data.options !== undefined) {\n this.options = (0, Utils_1.deepExtend)({}, data.options);\n }\n }\n}\nexports.ManualParticle = ManualParticle;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL01hbnVhbFBhcnRpY2xlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHNCQUFzQjtBQUN0QixnQkFBZ0IsbUJBQU8sQ0FBQyw4REFBYTtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFEQUFxRDtBQUNyRDtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9NYW51YWxQYXJ0aWNsZS5qcz9jNjE2Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5NYW51YWxQYXJ0aWNsZSA9IHZvaWQgMDtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vVXRpbHNcIik7XG5jbGFzcyBNYW51YWxQYXJ0aWNsZSB7XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnBvc2l0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPSB7XG4gICAgICAgICAgICAgICAgeDogKF9hID0gZGF0YS5wb3NpdGlvbi54KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiA1MCxcbiAgICAgICAgICAgICAgICB5OiAoX2IgPSBkYXRhLnBvc2l0aW9uLnkpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IDUwLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5vcHRpb25zICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucyA9ICgwLCBVdGlsc18xLmRlZXBFeHRlbmQpKHt9LCBkYXRhLm9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5NYW51YWxQYXJ0aWNsZSA9IE1hbnVhbFBhcnRpY2xlO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/ManualParticle.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Motion/Motion.js": +/*!*******************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Motion/Motion.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Motion = void 0;\nconst MotionReduce_1 = __webpack_require__(/*! ./MotionReduce */ \"./node_modules/tsparticles/Options/Classes/Motion/MotionReduce.js\");\nclass Motion {\n constructor() {\n this.disable = false;\n this.reduce = new MotionReduce_1.MotionReduce();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.disable !== undefined) {\n this.disable = data.disable;\n }\n this.reduce.load(data.reduce);\n }\n}\nexports.Motion = Motion;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL01vdGlvbi9Nb3Rpb24uanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsY0FBYztBQUNkLHVCQUF1QixtQkFBTyxDQUFDLHlGQUFnQjtBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvTW90aW9uL01vdGlvbi5qcz8wM2UyIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Nb3Rpb24gPSB2b2lkIDA7XG5jb25zdCBNb3Rpb25SZWR1Y2VfMSA9IHJlcXVpcmUoXCIuL01vdGlvblJlZHVjZVwiKTtcbmNsYXNzIE1vdGlvbiB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuZGlzYWJsZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnJlZHVjZSA9IG5ldyBNb3Rpb25SZWR1Y2VfMS5Nb3Rpb25SZWR1Y2UoKTtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmRpc2FibGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5kaXNhYmxlID0gZGF0YS5kaXNhYmxlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVkdWNlLmxvYWQoZGF0YS5yZWR1Y2UpO1xuICAgIH1cbn1cbmV4cG9ydHMuTW90aW9uID0gTW90aW9uO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Motion/Motion.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Motion/MotionReduce.js": +/*!*************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Motion/MotionReduce.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.MotionReduce = void 0;\nclass MotionReduce {\n constructor() {\n this.factor = 4;\n this.value = true;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n if (data.value !== undefined) {\n this.value = data.value;\n }\n }\n}\nexports.MotionReduce = MotionReduce;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL01vdGlvbi9Nb3Rpb25SZWR1Y2UuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9Nb3Rpb24vTW90aW9uUmVkdWNlLmpzPzBiNGYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLk1vdGlvblJlZHVjZSA9IHZvaWQgMDtcbmNsYXNzIE1vdGlvblJlZHVjZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuZmFjdG9yID0gNDtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHRydWU7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5mYWN0b3IgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5mYWN0b3IgPSBkYXRhLmZhY3RvcjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gZGF0YS52YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuTW90aW9uUmVkdWNlID0gTW90aW9uUmVkdWNlO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Motion/MotionReduce.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Options.js": +/*!*************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Options.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Options_instances, _Options_findDefaultTheme;\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Options = void 0;\nconst Interactivity_1 = __webpack_require__(/*! ./Interactivity/Interactivity */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Interactivity.js\");\nconst ParticlesOptions_1 = __webpack_require__(/*! ./Particles/ParticlesOptions */ \"./node_modules/tsparticles/Options/Classes/Particles/ParticlesOptions.js\");\nconst BackgroundMask_1 = __webpack_require__(/*! ./BackgroundMask/BackgroundMask */ \"./node_modules/tsparticles/Options/Classes/BackgroundMask/BackgroundMask.js\");\nconst Background_1 = __webpack_require__(/*! ./Background/Background */ \"./node_modules/tsparticles/Options/Classes/Background/Background.js\");\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Theme_1 = __webpack_require__(/*! ./Theme/Theme */ \"./node_modules/tsparticles/Options/Classes/Theme/Theme.js\");\nconst Enums_1 = __webpack_require__(/*! ../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst FullScreen_1 = __webpack_require__(/*! ./FullScreen/FullScreen */ \"./node_modules/tsparticles/Options/Classes/FullScreen/FullScreen.js\");\nconst Motion_1 = __webpack_require__(/*! ./Motion/Motion */ \"./node_modules/tsparticles/Options/Classes/Motion/Motion.js\");\nconst ManualParticle_1 = __webpack_require__(/*! ./ManualParticle */ \"./node_modules/tsparticles/Options/Classes/ManualParticle.js\");\nconst Responsive_1 = __webpack_require__(/*! ./Responsive */ \"./node_modules/tsparticles/Options/Classes/Responsive.js\");\nclass Options {\n constructor() {\n _Options_instances.add(this);\n this.autoPlay = true;\n this.background = new Background_1.Background();\n this.backgroundMask = new BackgroundMask_1.BackgroundMask();\n this.fullScreen = new FullScreen_1.FullScreen();\n this.detectRetina = true;\n this.duration = 0;\n this.fpsLimit = 60;\n this.interactivity = new Interactivity_1.Interactivity();\n this.manualParticles = [];\n this.motion = new Motion_1.Motion();\n this.particles = new ParticlesOptions_1.ParticlesOptions();\n this.pauseOnBlur = true;\n this.pauseOnOutsideViewport = true;\n this.responsive = [];\n this.themes = [];\n this.zLayers = 100;\n }\n get fps_limit() {\n return this.fpsLimit;\n }\n set fps_limit(value) {\n this.fpsLimit = value;\n }\n get retina_detect() {\n return this.detectRetina;\n }\n set retina_detect(value) {\n this.detectRetina = value;\n }\n get backgroundMode() {\n return this.fullScreen;\n }\n set backgroundMode(value) {\n this.fullScreen.load(value);\n }\n load(data) {\n var _a, _b, _c, _d, _e;\n if (data === undefined) {\n return;\n }\n if (data.preset !== undefined) {\n if (data.preset instanceof Array) {\n for (const preset of data.preset) {\n this.importPreset(preset);\n }\n }\n else {\n this.importPreset(data.preset);\n }\n }\n if (data.autoPlay !== undefined) {\n this.autoPlay = data.autoPlay;\n }\n const detectRetina = (_a = data.detectRetina) !== null && _a !== void 0 ? _a : data.retina_detect;\n if (detectRetina !== undefined) {\n this.detectRetina = detectRetina;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n const fpsLimit = (_b = data.fpsLimit) !== null && _b !== void 0 ? _b : data.fps_limit;\n if (fpsLimit !== undefined) {\n this.fpsLimit = fpsLimit;\n }\n if (data.pauseOnBlur !== undefined) {\n this.pauseOnBlur = data.pauseOnBlur;\n }\n if (data.pauseOnOutsideViewport !== undefined) {\n this.pauseOnOutsideViewport = data.pauseOnOutsideViewport;\n }\n if (data.zLayers !== undefined) {\n this.zLayers = data.zLayers;\n }\n this.background.load(data.background);\n const fullScreen = (_c = data.fullScreen) !== null && _c !== void 0 ? _c : data.backgroundMode;\n if (typeof fullScreen === \"boolean\") {\n this.fullScreen.enable = fullScreen;\n }\n else {\n this.fullScreen.load(fullScreen);\n }\n this.backgroundMask.load(data.backgroundMask);\n this.interactivity.load(data.interactivity);\n if (data.manualParticles !== undefined) {\n this.manualParticles = data.manualParticles.map((t) => {\n const tmp = new ManualParticle_1.ManualParticle();\n tmp.load(t);\n return tmp;\n });\n }\n this.motion.load(data.motion);\n this.particles.load(data.particles);\n Utils_1.Plugins.loadOptions(this, data);\n if (data.responsive !== undefined) {\n for (const responsive of data.responsive) {\n const optResponsive = new Responsive_1.Responsive();\n optResponsive.load(responsive);\n this.responsive.push(optResponsive);\n }\n }\n this.responsive.sort((a, b) => a.maxWidth - b.maxWidth);\n if (data.themes !== undefined) {\n for (const theme of data.themes) {\n const optTheme = new Theme_1.Theme();\n optTheme.load(theme);\n this.themes.push(optTheme);\n }\n }\n this.defaultDarkTheme = (_d = __classPrivateFieldGet(this, _Options_instances, \"m\", _Options_findDefaultTheme).call(this, Enums_1.ThemeMode.dark)) === null || _d === void 0 ? void 0 : _d.name;\n this.defaultLightTheme = (_e = __classPrivateFieldGet(this, _Options_instances, \"m\", _Options_findDefaultTheme).call(this, Enums_1.ThemeMode.light)) === null || _e === void 0 ? void 0 : _e.name;\n }\n setTheme(name) {\n if (name) {\n const chosenTheme = this.themes.find((theme) => theme.name === name);\n if (chosenTheme) {\n this.load(chosenTheme.options);\n }\n }\n else {\n const mediaMatch = typeof matchMedia !== \"undefined\" && matchMedia(\"(prefers-color-scheme: dark)\"), clientDarkMode = mediaMatch && mediaMatch.matches, defaultTheme = __classPrivateFieldGet(this, _Options_instances, \"m\", _Options_findDefaultTheme).call(this, clientDarkMode ? Enums_1.ThemeMode.dark : Enums_1.ThemeMode.light);\n if (defaultTheme) {\n this.load(defaultTheme.options);\n }\n }\n }\n setResponsive(width, pxRatio, defaultOptions) {\n this.load(defaultOptions);\n const responsiveOptions = this.responsive.find((t) => t.mode === Enums_1.ResponsiveMode.screen && screen\n ? t.maxWidth * pxRatio > screen.availWidth\n : t.maxWidth * pxRatio > width);\n this.load(responsiveOptions === null || responsiveOptions === void 0 ? void 0 : responsiveOptions.options);\n return responsiveOptions === null || responsiveOptions === void 0 ? void 0 : responsiveOptions.maxWidth;\n }\n importPreset(preset) {\n this.load(Utils_1.Plugins.getPreset(preset));\n }\n}\nexports.Options = Options;\n_Options_instances = new WeakSet(), _Options_findDefaultTheme = function _Options_findDefaultTheme(mode) {\n var _a;\n return ((_a = this.themes.find((theme) => theme.default.value && theme.default.mode === mode)) !== null && _a !== void 0 ? _a : this.themes.find((theme) => theme.default.value && theme.default.mode === Enums_1.ThemeMode.any));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL09wdGlvbnMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsZUFBZTtBQUNmLHdCQUF3QixtQkFBTyxDQUFDLGdIQUErQjtBQUMvRCwyQkFBMkIsbUJBQU8sQ0FBQyw4R0FBOEI7QUFDakUseUJBQXlCLG1CQUFPLENBQUMsb0hBQWlDO0FBQ2xFLHFCQUFxQixtQkFBTyxDQUFDLG9HQUF5QjtBQUN0RCxnQkFBZ0IsbUJBQU8sQ0FBQyw4REFBYTtBQUNyQyxnQkFBZ0IsbUJBQU8sQ0FBQyxnRkFBZTtBQUN2QyxnQkFBZ0IsbUJBQU8sQ0FBQyw4REFBYTtBQUNyQyxxQkFBcUIsbUJBQU8sQ0FBQyxvR0FBeUI7QUFDdEQsaUJBQWlCLG1CQUFPLENBQUMsb0ZBQWlCO0FBQzFDLHlCQUF5QixtQkFBTyxDQUFDLHNGQUFrQjtBQUNuRCxxQkFBcUIsbUJBQU8sQ0FBQyw4RUFBYztBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9PcHRpb25zLmpzPzlmODQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19jbGFzc1ByaXZhdGVGaWVsZEdldCA9ICh0aGlzICYmIHRoaXMuX19jbGFzc1ByaXZhdGVGaWVsZEdldCkgfHwgZnVuY3Rpb24gKHJlY2VpdmVyLCBzdGF0ZSwga2luZCwgZikge1xuICAgIGlmIChraW5kID09PSBcImFcIiAmJiAhZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIGdldHRlclwiKTtcbiAgICBpZiAodHlwZW9mIHN0YXRlID09PSBcImZ1bmN0aW9uXCIgPyByZWNlaXZlciAhPT0gc3RhdGUgfHwgIWYgOiAhc3RhdGUuaGFzKHJlY2VpdmVyKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCByZWFkIHByaXZhdGUgbWVtYmVyIGZyb20gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdFwiKTtcbiAgICByZXR1cm4ga2luZCA9PT0gXCJtXCIgPyBmIDoga2luZCA9PT0gXCJhXCIgPyBmLmNhbGwocmVjZWl2ZXIpIDogZiA/IGYudmFsdWUgOiBzdGF0ZS5nZXQocmVjZWl2ZXIpO1xufTtcbnZhciBfT3B0aW9uc19pbnN0YW5jZXMsIF9PcHRpb25zX2ZpbmREZWZhdWx0VGhlbWU7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLk9wdGlvbnMgPSB2b2lkIDA7XG5jb25zdCBJbnRlcmFjdGl2aXR5XzEgPSByZXF1aXJlKFwiLi9JbnRlcmFjdGl2aXR5L0ludGVyYWN0aXZpdHlcIik7XG5jb25zdCBQYXJ0aWNsZXNPcHRpb25zXzEgPSByZXF1aXJlKFwiLi9QYXJ0aWNsZXMvUGFydGljbGVzT3B0aW9uc1wiKTtcbmNvbnN0IEJhY2tncm91bmRNYXNrXzEgPSByZXF1aXJlKFwiLi9CYWNrZ3JvdW5kTWFzay9CYWNrZ3JvdW5kTWFza1wiKTtcbmNvbnN0IEJhY2tncm91bmRfMSA9IHJlcXVpcmUoXCIuL0JhY2tncm91bmQvQmFja2dyb3VuZFwiKTtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vVXRpbHNcIik7XG5jb25zdCBUaGVtZV8xID0gcmVxdWlyZShcIi4vVGhlbWUvVGhlbWVcIik7XG5jb25zdCBFbnVtc18xID0gcmVxdWlyZShcIi4uLy4uL0VudW1zXCIpO1xuY29uc3QgRnVsbFNjcmVlbl8xID0gcmVxdWlyZShcIi4vRnVsbFNjcmVlbi9GdWxsU2NyZWVuXCIpO1xuY29uc3QgTW90aW9uXzEgPSByZXF1aXJlKFwiLi9Nb3Rpb24vTW90aW9uXCIpO1xuY29uc3QgTWFudWFsUGFydGljbGVfMSA9IHJlcXVpcmUoXCIuL01hbnVhbFBhcnRpY2xlXCIpO1xuY29uc3QgUmVzcG9uc2l2ZV8xID0gcmVxdWlyZShcIi4vUmVzcG9uc2l2ZVwiKTtcbmNsYXNzIE9wdGlvbnMge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBfT3B0aW9uc19pbnN0YW5jZXMuYWRkKHRoaXMpO1xuICAgICAgICB0aGlzLmF1dG9QbGF5ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5iYWNrZ3JvdW5kID0gbmV3IEJhY2tncm91bmRfMS5CYWNrZ3JvdW5kKCk7XG4gICAgICAgIHRoaXMuYmFja2dyb3VuZE1hc2sgPSBuZXcgQmFja2dyb3VuZE1hc2tfMS5CYWNrZ3JvdW5kTWFzaygpO1xuICAgICAgICB0aGlzLmZ1bGxTY3JlZW4gPSBuZXcgRnVsbFNjcmVlbl8xLkZ1bGxTY3JlZW4oKTtcbiAgICAgICAgdGhpcy5kZXRlY3RSZXRpbmEgPSB0cnVlO1xuICAgICAgICB0aGlzLmR1cmF0aW9uID0gMDtcbiAgICAgICAgdGhpcy5mcHNMaW1pdCA9IDYwO1xuICAgICAgICB0aGlzLmludGVyYWN0aXZpdHkgPSBuZXcgSW50ZXJhY3Rpdml0eV8xLkludGVyYWN0aXZpdHkoKTtcbiAgICAgICAgdGhpcy5tYW51YWxQYXJ0aWNsZXMgPSBbXTtcbiAgICAgICAgdGhpcy5tb3Rpb24gPSBuZXcgTW90aW9uXzEuTW90aW9uKCk7XG4gICAgICAgIHRoaXMucGFydGljbGVzID0gbmV3IFBhcnRpY2xlc09wdGlvbnNfMS5QYXJ0aWNsZXNPcHRpb25zKCk7XG4gICAgICAgIHRoaXMucGF1c2VPbkJsdXIgPSB0cnVlO1xuICAgICAgICB0aGlzLnBhdXNlT25PdXRzaWRlVmlld3BvcnQgPSB0cnVlO1xuICAgICAgICB0aGlzLnJlc3BvbnNpdmUgPSBbXTtcbiAgICAgICAgdGhpcy50aGVtZXMgPSBbXTtcbiAgICAgICAgdGhpcy56TGF5ZXJzID0gMTAwO1xuICAgIH1cbiAgICBnZXQgZnBzX2xpbWl0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mcHNMaW1pdDtcbiAgICB9XG4gICAgc2V0IGZwc19saW1pdCh2YWx1ZSkge1xuICAgICAgICB0aGlzLmZwc0xpbWl0ID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCByZXRpbmFfZGV0ZWN0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5kZXRlY3RSZXRpbmE7XG4gICAgfVxuICAgIHNldCByZXRpbmFfZGV0ZWN0KHZhbHVlKSB7XG4gICAgICAgIHRoaXMuZGV0ZWN0UmV0aW5hID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBiYWNrZ3JvdW5kTW9kZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZnVsbFNjcmVlbjtcbiAgICB9XG4gICAgc2V0IGJhY2tncm91bmRNb2RlKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuZnVsbFNjcmVlbi5sb2FkKHZhbHVlKTtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZCwgX2U7XG4gICAgICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5wcmVzZXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKGRhdGEucHJlc2V0IGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHByZXNldCBvZiBkYXRhLnByZXNldCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmltcG9ydFByZXNldChwcmVzZXQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuaW1wb3J0UHJlc2V0KGRhdGEucHJlc2V0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5hdXRvUGxheSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmF1dG9QbGF5ID0gZGF0YS5hdXRvUGxheTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkZXRlY3RSZXRpbmEgPSAoX2EgPSBkYXRhLmRldGVjdFJldGluYSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogZGF0YS5yZXRpbmFfZGV0ZWN0O1xuICAgICAgICBpZiAoZGV0ZWN0UmV0aW5hICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZGV0ZWN0UmV0aW5hID0gZGV0ZWN0UmV0aW5hO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmR1cmF0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZHVyYXRpb24gPSBkYXRhLmR1cmF0aW9uO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZwc0xpbWl0ID0gKF9iID0gZGF0YS5mcHNMaW1pdCkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogZGF0YS5mcHNfbGltaXQ7XG4gICAgICAgIGlmIChmcHNMaW1pdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmZwc0xpbWl0ID0gZnBzTGltaXQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEucGF1c2VPbkJsdXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5wYXVzZU9uQmx1ciA9IGRhdGEucGF1c2VPbkJsdXI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEucGF1c2VPbk91dHNpZGVWaWV3cG9ydCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnBhdXNlT25PdXRzaWRlVmlld3BvcnQgPSBkYXRhLnBhdXNlT25PdXRzaWRlVmlld3BvcnQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuekxheWVycyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnpMYXllcnMgPSBkYXRhLnpMYXllcnM7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5iYWNrZ3JvdW5kLmxvYWQoZGF0YS5iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29uc3QgZnVsbFNjcmVlbiA9IChfYyA9IGRhdGEuZnVsbFNjcmVlbikgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogZGF0YS5iYWNrZ3JvdW5kTW9kZTtcbiAgICAgICAgaWYgKHR5cGVvZiBmdWxsU2NyZWVuID09PSBcImJvb2xlYW5cIikge1xuICAgICAgICAgICAgdGhpcy5mdWxsU2NyZWVuLmVuYWJsZSA9IGZ1bGxTY3JlZW47XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZ1bGxTY3JlZW4ubG9hZChmdWxsU2NyZWVuKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmJhY2tncm91bmRNYXNrLmxvYWQoZGF0YS5iYWNrZ3JvdW5kTWFzayk7XG4gICAgICAgIHRoaXMuaW50ZXJhY3Rpdml0eS5sb2FkKGRhdGEuaW50ZXJhY3Rpdml0eSk7XG4gICAgICAgIGlmIChkYXRhLm1hbnVhbFBhcnRpY2xlcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLm1hbnVhbFBhcnRpY2xlcyA9IGRhdGEubWFudWFsUGFydGljbGVzLm1hcCgodCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRtcCA9IG5ldyBNYW51YWxQYXJ0aWNsZV8xLk1hbnVhbFBhcnRpY2xlKCk7XG4gICAgICAgICAgICAgICAgdG1wLmxvYWQodCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRtcDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubW90aW9uLmxvYWQoZGF0YS5tb3Rpb24pO1xuICAgICAgICB0aGlzLnBhcnRpY2xlcy5sb2FkKGRhdGEucGFydGljbGVzKTtcbiAgICAgICAgVXRpbHNfMS5QbHVnaW5zLmxvYWRPcHRpb25zKHRoaXMsIGRhdGEpO1xuICAgICAgICBpZiAoZGF0YS5yZXNwb25zaXZlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgcmVzcG9uc2l2ZSBvZiBkYXRhLnJlc3BvbnNpdmUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBvcHRSZXNwb25zaXZlID0gbmV3IFJlc3BvbnNpdmVfMS5SZXNwb25zaXZlKCk7XG4gICAgICAgICAgICAgICAgb3B0UmVzcG9uc2l2ZS5sb2FkKHJlc3BvbnNpdmUpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzcG9uc2l2ZS5wdXNoKG9wdFJlc3BvbnNpdmUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVzcG9uc2l2ZS5zb3J0KChhLCBiKSA9PiBhLm1heFdpZHRoIC0gYi5tYXhXaWR0aCk7XG4gICAgICAgIGlmIChkYXRhLnRoZW1lcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHRoZW1lIG9mIGRhdGEudGhlbWVzKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3B0VGhlbWUgPSBuZXcgVGhlbWVfMS5UaGVtZSgpO1xuICAgICAgICAgICAgICAgIG9wdFRoZW1lLmxvYWQodGhlbWUpO1xuICAgICAgICAgICAgICAgIHRoaXMudGhlbWVzLnB1c2gob3B0VGhlbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGVmYXVsdERhcmtUaGVtZSA9IChfZCA9IF9fY2xhc3NQcml2YXRlRmllbGRHZXQodGhpcywgX09wdGlvbnNfaW5zdGFuY2VzLCBcIm1cIiwgX09wdGlvbnNfZmluZERlZmF1bHRUaGVtZSkuY2FsbCh0aGlzLCBFbnVtc18xLlRoZW1lTW9kZS5kYXJrKSkgPT09IG51bGwgfHwgX2QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9kLm5hbWU7XG4gICAgICAgIHRoaXMuZGVmYXVsdExpZ2h0VGhlbWUgPSAoX2UgPSBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KHRoaXMsIF9PcHRpb25zX2luc3RhbmNlcywgXCJtXCIsIF9PcHRpb25zX2ZpbmREZWZhdWx0VGhlbWUpLmNhbGwodGhpcywgRW51bXNfMS5UaGVtZU1vZGUubGlnaHQpKSA9PT0gbnVsbCB8fCBfZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2UubmFtZTtcbiAgICB9XG4gICAgc2V0VGhlbWUobmFtZSkge1xuICAgICAgICBpZiAobmFtZSkge1xuICAgICAgICAgICAgY29uc3QgY2hvc2VuVGhlbWUgPSB0aGlzLnRoZW1lcy5maW5kKCh0aGVtZSkgPT4gdGhlbWUubmFtZSA9PT0gbmFtZSk7XG4gICAgICAgICAgICBpZiAoY2hvc2VuVGhlbWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWQoY2hvc2VuVGhlbWUub3B0aW9ucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBtZWRpYU1hdGNoID0gdHlwZW9mIG1hdGNoTWVkaWEgIT09IFwidW5kZWZpbmVkXCIgJiYgbWF0Y2hNZWRpYShcIihwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaylcIiksIGNsaWVudERhcmtNb2RlID0gbWVkaWFNYXRjaCAmJiBtZWRpYU1hdGNoLm1hdGNoZXMsIGRlZmF1bHRUaGVtZSA9IF9fY2xhc3NQcml2YXRlRmllbGRHZXQodGhpcywgX09wdGlvbnNfaW5zdGFuY2VzLCBcIm1cIiwgX09wdGlvbnNfZmluZERlZmF1bHRUaGVtZSkuY2FsbCh0aGlzLCBjbGllbnREYXJrTW9kZSA/IEVudW1zXzEuVGhlbWVNb2RlLmRhcmsgOiBFbnVtc18xLlRoZW1lTW9kZS5saWdodCk7XG4gICAgICAgICAgICBpZiAoZGVmYXVsdFRoZW1lKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkKGRlZmF1bHRUaGVtZS5vcHRpb25zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBzZXRSZXNwb25zaXZlKHdpZHRoLCBweFJhdGlvLCBkZWZhdWx0T3B0aW9ucykge1xuICAgICAgICB0aGlzLmxvYWQoZGVmYXVsdE9wdGlvbnMpO1xuICAgICAgICBjb25zdCByZXNwb25zaXZlT3B0aW9ucyA9IHRoaXMucmVzcG9uc2l2ZS5maW5kKCh0KSA9PiB0Lm1vZGUgPT09IEVudW1zXzEuUmVzcG9uc2l2ZU1vZGUuc2NyZWVuICYmIHNjcmVlblxuICAgICAgICAgICAgPyB0Lm1heFdpZHRoICogcHhSYXRpbyA+IHNjcmVlbi5hdmFpbFdpZHRoXG4gICAgICAgICAgICA6IHQubWF4V2lkdGggKiBweFJhdGlvID4gd2lkdGgpO1xuICAgICAgICB0aGlzLmxvYWQocmVzcG9uc2l2ZU9wdGlvbnMgPT09IG51bGwgfHwgcmVzcG9uc2l2ZU9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlc3BvbnNpdmVPcHRpb25zLm9wdGlvbnMpO1xuICAgICAgICByZXR1cm4gcmVzcG9uc2l2ZU9wdGlvbnMgPT09IG51bGwgfHwgcmVzcG9uc2l2ZU9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlc3BvbnNpdmVPcHRpb25zLm1heFdpZHRoO1xuICAgIH1cbiAgICBpbXBvcnRQcmVzZXQocHJlc2V0KSB7XG4gICAgICAgIHRoaXMubG9hZChVdGlsc18xLlBsdWdpbnMuZ2V0UHJlc2V0KHByZXNldCkpO1xuICAgIH1cbn1cbmV4cG9ydHMuT3B0aW9ucyA9IE9wdGlvbnM7XG5fT3B0aW9uc19pbnN0YW5jZXMgPSBuZXcgV2Vha1NldCgpLCBfT3B0aW9uc19maW5kRGVmYXVsdFRoZW1lID0gZnVuY3Rpb24gX09wdGlvbnNfZmluZERlZmF1bHRUaGVtZShtb2RlKSB7XG4gICAgdmFyIF9hO1xuICAgIHJldHVybiAoKF9hID0gdGhpcy50aGVtZXMuZmluZCgodGhlbWUpID0+IHRoZW1lLmRlZmF1bHQudmFsdWUgJiYgdGhlbWUuZGVmYXVsdC5tb2RlID09PSBtb2RlKSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogdGhpcy50aGVtZXMuZmluZCgodGhlbWUpID0+IHRoZW1lLmRlZmF1bHQudmFsdWUgJiYgdGhlbWUuZGVmYXVsdC5tb2RlID09PSBFbnVtc18xLlRoZW1lTW9kZS5hbnkpKTtcbn07XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Options.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/OptionsColor.js": +/*!******************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/OptionsColor.js ***! + \******************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.OptionsColor = void 0;\nclass OptionsColor {\n constructor() {\n this.value = \"#fff\";\n }\n static create(source, data) {\n const color = new OptionsColor();\n color.load(source);\n if (data !== undefined) {\n if (typeof data === \"string\" || data instanceof Array) {\n color.load({ value: data });\n }\n else {\n color.load(data);\n }\n }\n return color;\n }\n load(data) {\n if ((data === null || data === void 0 ? void 0 : data.value) === undefined) {\n return;\n }\n this.value = data.value;\n }\n}\nexports.OptionsColor = OptionsColor;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL09wdGlvbnNDb2xvci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxvQkFBb0I7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCLGFBQWE7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL09wdGlvbnNDb2xvci5qcz83MmFiIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5PcHRpb25zQ29sb3IgPSB2b2lkIDA7XG5jbGFzcyBPcHRpb25zQ29sb3Ige1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnZhbHVlID0gXCIjZmZmXCI7XG4gICAgfVxuICAgIHN0YXRpYyBjcmVhdGUoc291cmNlLCBkYXRhKSB7XG4gICAgICAgIGNvbnN0IGNvbG9yID0gbmV3IE9wdGlvbnNDb2xvcigpO1xuICAgICAgICBjb2xvci5sb2FkKHNvdXJjZSk7XG4gICAgICAgIGlmIChkYXRhICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIiB8fCBkYXRhIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgICAgICBjb2xvci5sb2FkKHsgdmFsdWU6IGRhdGEgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb2xvci5sb2FkKGRhdGEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb2xvcjtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIGlmICgoZGF0YSA9PT0gbnVsbCB8fCBkYXRhID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkYXRhLnZhbHVlKSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy52YWx1ZSA9IGRhdGEudmFsdWU7XG4gICAgfVxufVxuZXhwb3J0cy5PcHRpb25zQ29sb3IgPSBPcHRpb25zQ29sb3I7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/OptionsColor.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Bounce/Bounce.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Bounce/Bounce.js ***! + \*****************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Bounce = void 0;\nconst BounceFactor_1 = __webpack_require__(/*! ./BounceFactor */ \"./node_modules/tsparticles/Options/Classes/Particles/Bounce/BounceFactor.js\");\nclass Bounce {\n constructor() {\n this.horizontal = new BounceFactor_1.BounceFactor();\n this.vertical = new BounceFactor_1.BounceFactor();\n }\n load(data) {\n if (!data) {\n return;\n }\n this.horizontal.load(data.horizontal);\n this.vertical.load(data.vertical);\n }\n}\nexports.Bounce = Bounce;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Cb3VuY2UvQm91bmNlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGNBQWM7QUFDZCx1QkFBdUIsbUJBQU8sQ0FBQyxtR0FBZ0I7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvUGFydGljbGVzL0JvdW5jZS9Cb3VuY2UuanM/MmMxZCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuQm91bmNlID0gdm9pZCAwO1xuY29uc3QgQm91bmNlRmFjdG9yXzEgPSByZXF1aXJlKFwiLi9Cb3VuY2VGYWN0b3JcIik7XG5jbGFzcyBCb3VuY2Uge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmhvcml6b250YWwgPSBuZXcgQm91bmNlRmFjdG9yXzEuQm91bmNlRmFjdG9yKCk7XG4gICAgICAgIHRoaXMudmVydGljYWwgPSBuZXcgQm91bmNlRmFjdG9yXzEuQm91bmNlRmFjdG9yKCk7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhvcml6b250YWwubG9hZChkYXRhLmhvcml6b250YWwpO1xuICAgICAgICB0aGlzLnZlcnRpY2FsLmxvYWQoZGF0YS52ZXJ0aWNhbCk7XG4gICAgfVxufVxuZXhwb3J0cy5Cb3VuY2UgPSBCb3VuY2U7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Bounce/Bounce.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Bounce/BounceFactor.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Bounce/BounceFactor.js ***! + \***********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.BounceFactor = void 0;\nconst ValueWithRandom_1 = __webpack_require__(/*! ../../ValueWithRandom */ \"./node_modules/tsparticles/Options/Classes/ValueWithRandom.js\");\nclass BounceFactor extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n this.random.minimumValue = 0.1;\n this.value = 1;\n }\n}\nexports.BounceFactor = BounceFactor;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Cb3VuY2UvQm91bmNlRmFjdG9yLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELG9CQUFvQjtBQUNwQiwwQkFBMEIsbUJBQU8sQ0FBQyw0RkFBdUI7QUFDekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9QYXJ0aWNsZXMvQm91bmNlL0JvdW5jZUZhY3Rvci5qcz8yN2ZjIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Cb3VuY2VGYWN0b3IgPSB2b2lkIDA7XG5jb25zdCBWYWx1ZVdpdGhSYW5kb21fMSA9IHJlcXVpcmUoXCIuLi8uLi9WYWx1ZVdpdGhSYW5kb21cIik7XG5jbGFzcyBCb3VuY2VGYWN0b3IgZXh0ZW5kcyBWYWx1ZVdpdGhSYW5kb21fMS5WYWx1ZVdpdGhSYW5kb20ge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnJhbmRvbS5taW5pbXVtVmFsdWUgPSAwLjE7XG4gICAgICAgIHRoaXMudmFsdWUgPSAxO1xuICAgIH1cbn1cbmV4cG9ydHMuQm91bmNlRmFjdG9yID0gQm91bmNlRmFjdG9yO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Bounce/BounceFactor.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Collisions/Collisions.js": +/*!*************************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Collisions/Collisions.js ***! + \*************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Collisions = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst Bounce_1 = __webpack_require__(/*! ../Bounce/Bounce */ \"./node_modules/tsparticles/Options/Classes/Particles/Bounce/Bounce.js\");\nconst CollisionsOverlap_1 = __webpack_require__(/*! ./CollisionsOverlap */ \"./node_modules/tsparticles/Options/Classes/Particles/Collisions/CollisionsOverlap.js\");\nclass Collisions {\n constructor() {\n this.bounce = new Bounce_1.Bounce();\n this.enable = false;\n this.mode = Enums_1.CollisionMode.bounce;\n this.overlap = new CollisionsOverlap_1.CollisionsOverlap();\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n this.bounce.load(data.bounce);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n this.overlap.load(data.overlap);\n }\n}\nexports.Collisions = Collisions;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Db2xsaXNpb25zL0NvbGxpc2lvbnMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsa0JBQWtCO0FBQ2xCLGdCQUFnQixtQkFBTyxDQUFDLG9FQUFtQjtBQUMzQyxpQkFBaUIsbUJBQU8sQ0FBQywrRkFBa0I7QUFDM0MsNEJBQTRCLG1CQUFPLENBQUMsaUhBQXFCO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Db2xsaXNpb25zL0NvbGxpc2lvbnMuanM/ZjM3YSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuQ29sbGlzaW9ucyA9IHZvaWQgMDtcbmNvbnN0IEVudW1zXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vRW51bXNcIik7XG5jb25zdCBCb3VuY2VfMSA9IHJlcXVpcmUoXCIuLi9Cb3VuY2UvQm91bmNlXCIpO1xuY29uc3QgQ29sbGlzaW9uc092ZXJsYXBfMSA9IHJlcXVpcmUoXCIuL0NvbGxpc2lvbnNPdmVybGFwXCIpO1xuY2xhc3MgQ29sbGlzaW9ucyB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuYm91bmNlID0gbmV3IEJvdW5jZV8xLkJvdW5jZSgpO1xuICAgICAgICB0aGlzLmVuYWJsZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLm1vZGUgPSBFbnVtc18xLkNvbGxpc2lvbk1vZGUuYm91bmNlO1xuICAgICAgICB0aGlzLm92ZXJsYXAgPSBuZXcgQ29sbGlzaW9uc092ZXJsYXBfMS5Db2xsaXNpb25zT3ZlcmxhcCgpO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYm91bmNlLmxvYWQoZGF0YS5ib3VuY2UpO1xuICAgICAgICBpZiAoZGF0YS5lbmFibGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5lbmFibGUgPSBkYXRhLmVuYWJsZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5tb2RlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMubW9kZSA9IGRhdGEubW9kZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm92ZXJsYXAubG9hZChkYXRhLm92ZXJsYXApO1xuICAgIH1cbn1cbmV4cG9ydHMuQ29sbGlzaW9ucyA9IENvbGxpc2lvbnM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Collisions/Collisions.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Collisions/CollisionsOverlap.js": +/*!********************************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Collisions/CollisionsOverlap.js ***! + \********************************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.CollisionsOverlap = void 0;\nclass CollisionsOverlap {\n constructor() {\n this.enable = true;\n this.retries = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.retries !== undefined) {\n this.retries = data.retries;\n }\n }\n}\nexports.CollisionsOverlap = CollisionsOverlap;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Db2xsaXNpb25zL0NvbGxpc2lvbnNPdmVybGFwLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvUGFydGljbGVzL0NvbGxpc2lvbnMvQ29sbGlzaW9uc092ZXJsYXAuanM/ODk0YSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuQ29sbGlzaW9uc092ZXJsYXAgPSB2b2lkIDA7XG5jbGFzcyBDb2xsaXNpb25zT3ZlcmxhcCB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuZW5hYmxlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5yZXRyaWVzID0gMDtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmVuYWJsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZSA9IGRhdGEuZW5hYmxlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnJldHJpZXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5yZXRyaWVzID0gZGF0YS5yZXRyaWVzO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5Db2xsaXNpb25zT3ZlcmxhcCA9IENvbGxpc2lvbnNPdmVybGFwO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Collisions/CollisionsOverlap.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Destroy/Destroy.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Destroy/Destroy.js ***! + \*******************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Destroy = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst Split_1 = __webpack_require__(/*! ./Split */ \"./node_modules/tsparticles/Options/Classes/Particles/Destroy/Split.js\");\nclass Destroy {\n constructor() {\n this.mode = Enums_1.DestroyMode.none;\n this.split = new Split_1.Split();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n this.split.load(data.split);\n }\n}\nexports.Destroy = Destroy;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9EZXN0cm95L0Rlc3Ryb3kuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsZUFBZTtBQUNmLGdCQUFnQixtQkFBTyxDQUFDLG9FQUFtQjtBQUMzQyxnQkFBZ0IsbUJBQU8sQ0FBQyxzRkFBUztBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvUGFydGljbGVzL0Rlc3Ryb3kvRGVzdHJveS5qcz9iN2Y1Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5EZXN0cm95ID0gdm9pZCAwO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuLi8uLi8uLi8uLi9FbnVtc1wiKTtcbmNvbnN0IFNwbGl0XzEgPSByZXF1aXJlKFwiLi9TcGxpdFwiKTtcbmNsYXNzIERlc3Ryb3kge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLm1vZGUgPSBFbnVtc18xLkRlc3Ryb3lNb2RlLm5vbmU7XG4gICAgICAgIHRoaXMuc3BsaXQgPSBuZXcgU3BsaXRfMS5TcGxpdCgpO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEubW9kZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLm1vZGUgPSBkYXRhLm1vZGU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zcGxpdC5sb2FkKGRhdGEuc3BsaXQpO1xuICAgIH1cbn1cbmV4cG9ydHMuRGVzdHJveSA9IERlc3Ryb3k7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Destroy/Destroy.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Destroy/Split.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Destroy/Split.js ***! + \*****************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Split = void 0;\nconst SplitFactor_1 = __webpack_require__(/*! ./SplitFactor */ \"./node_modules/tsparticles/Options/Classes/Particles/Destroy/SplitFactor.js\");\nconst SplitRate_1 = __webpack_require__(/*! ./SplitRate */ \"./node_modules/tsparticles/Options/Classes/Particles/Destroy/SplitRate.js\");\nconst Utils_1 = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass Split {\n constructor() {\n this.count = 1;\n this.factor = new SplitFactor_1.SplitFactor();\n this.rate = new SplitRate_1.SplitRate();\n this.sizeOffset = true;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.count !== undefined) {\n this.count = data.count;\n }\n this.factor.load(data.factor);\n this.rate.load(data.rate);\n if (data.particles !== undefined) {\n this.particles = (0, Utils_1.deepExtend)({}, data.particles);\n }\n if (data.sizeOffset !== undefined) {\n this.sizeOffset = data.sizeOffset;\n }\n }\n}\nexports.Split = Split;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9EZXN0cm95L1NwbGl0LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGFBQWE7QUFDYixzQkFBc0IsbUJBQU8sQ0FBQyxrR0FBZTtBQUM3QyxvQkFBb0IsbUJBQU8sQ0FBQyw4RkFBYTtBQUN6QyxnQkFBZ0IsbUJBQU8sQ0FBQyxvRUFBbUI7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVEQUF1RDtBQUN2RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvUGFydGljbGVzL0Rlc3Ryb3kvU3BsaXQuanM/ZjI0NSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuU3BsaXQgPSB2b2lkIDA7XG5jb25zdCBTcGxpdEZhY3Rvcl8xID0gcmVxdWlyZShcIi4vU3BsaXRGYWN0b3JcIik7XG5jb25zdCBTcGxpdFJhdGVfMSA9IHJlcXVpcmUoXCIuL1NwbGl0UmF0ZVwiKTtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vVXRpbHNcIik7XG5jbGFzcyBTcGxpdCB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuY291bnQgPSAxO1xuICAgICAgICB0aGlzLmZhY3RvciA9IG5ldyBTcGxpdEZhY3Rvcl8xLlNwbGl0RmFjdG9yKCk7XG4gICAgICAgIHRoaXMucmF0ZSA9IG5ldyBTcGxpdFJhdGVfMS5TcGxpdFJhdGUoKTtcbiAgICAgICAgdGhpcy5zaXplT2Zmc2V0ID0gdHJ1ZTtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmNvdW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY291bnQgPSBkYXRhLmNvdW50O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZmFjdG9yLmxvYWQoZGF0YS5mYWN0b3IpO1xuICAgICAgICB0aGlzLnJhdGUubG9hZChkYXRhLnJhdGUpO1xuICAgICAgICBpZiAoZGF0YS5wYXJ0aWNsZXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5wYXJ0aWNsZXMgPSAoMCwgVXRpbHNfMS5kZWVwRXh0ZW5kKSh7fSwgZGF0YS5wYXJ0aWNsZXMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnNpemVPZmZzZXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5zaXplT2Zmc2V0ID0gZGF0YS5zaXplT2Zmc2V0O1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5TcGxpdCA9IFNwbGl0O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Destroy/Split.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Destroy/SplitFactor.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Destroy/SplitFactor.js ***! + \***********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.SplitFactor = void 0;\nconst ValueWithRandom_1 = __webpack_require__(/*! ../../ValueWithRandom */ \"./node_modules/tsparticles/Options/Classes/ValueWithRandom.js\");\nclass SplitFactor extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n this.value = 3;\n }\n}\nexports.SplitFactor = SplitFactor;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9EZXN0cm95L1NwbGl0RmFjdG9yLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELG1CQUFtQjtBQUNuQiwwQkFBMEIsbUJBQU8sQ0FBQyw0RkFBdUI7QUFDekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvUGFydGljbGVzL0Rlc3Ryb3kvU3BsaXRGYWN0b3IuanM/MWMxOCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuU3BsaXRGYWN0b3IgPSB2b2lkIDA7XG5jb25zdCBWYWx1ZVdpdGhSYW5kb21fMSA9IHJlcXVpcmUoXCIuLi8uLi9WYWx1ZVdpdGhSYW5kb21cIik7XG5jbGFzcyBTcGxpdEZhY3RvciBleHRlbmRzIFZhbHVlV2l0aFJhbmRvbV8xLlZhbHVlV2l0aFJhbmRvbSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMudmFsdWUgPSAzO1xuICAgIH1cbn1cbmV4cG9ydHMuU3BsaXRGYWN0b3IgPSBTcGxpdEZhY3RvcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Destroy/SplitFactor.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Destroy/SplitRate.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Destroy/SplitRate.js ***! + \*********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.SplitRate = void 0;\nconst ValueWithRandom_1 = __webpack_require__(/*! ../../ValueWithRandom */ \"./node_modules/tsparticles/Options/Classes/ValueWithRandom.js\");\nclass SplitRate extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n this.value = { min: 4, max: 9 };\n }\n}\nexports.SplitRate = SplitRate;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9EZXN0cm95L1NwbGl0UmF0ZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxpQkFBaUI7QUFDakIsMEJBQTBCLG1CQUFPLENBQUMsNEZBQXVCO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0EsaUJBQWlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvUGFydGljbGVzL0Rlc3Ryb3kvU3BsaXRSYXRlLmpzPzc5ZmYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlNwbGl0UmF0ZSA9IHZvaWQgMDtcbmNvbnN0IFZhbHVlV2l0aFJhbmRvbV8xID0gcmVxdWlyZShcIi4uLy4uL1ZhbHVlV2l0aFJhbmRvbVwiKTtcbmNsYXNzIFNwbGl0UmF0ZSBleHRlbmRzIFZhbHVlV2l0aFJhbmRvbV8xLlZhbHVlV2l0aFJhbmRvbSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMudmFsdWUgPSB7IG1pbjogNCwgbWF4OiA5IH07XG4gICAgfVxufVxuZXhwb3J0cy5TcGxpdFJhdGUgPSBTcGxpdFJhdGU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Destroy/SplitRate.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Life/Life.js": +/*!*************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Life/Life.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Life = void 0;\nconst LifeDelay_1 = __webpack_require__(/*! ./LifeDelay */ \"./node_modules/tsparticles/Options/Classes/Particles/Life/LifeDelay.js\");\nconst LifeDuration_1 = __webpack_require__(/*! ./LifeDuration */ \"./node_modules/tsparticles/Options/Classes/Particles/Life/LifeDuration.js\");\nclass Life {\n constructor() {\n this.count = 0;\n this.delay = new LifeDelay_1.LifeDelay();\n this.duration = new LifeDuration_1.LifeDuration();\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.count !== undefined) {\n this.count = data.count;\n }\n this.delay.load(data.delay);\n this.duration.load(data.duration);\n }\n}\nexports.Life = Life;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9MaWZlL0xpZmUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsWUFBWTtBQUNaLG9CQUFvQixtQkFBTyxDQUFDLDJGQUFhO0FBQ3pDLHVCQUF1QixtQkFBTyxDQUFDLGlHQUFnQjtBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9MaWZlL0xpZmUuanM/YmZhNiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuTGlmZSA9IHZvaWQgMDtcbmNvbnN0IExpZmVEZWxheV8xID0gcmVxdWlyZShcIi4vTGlmZURlbGF5XCIpO1xuY29uc3QgTGlmZUR1cmF0aW9uXzEgPSByZXF1aXJlKFwiLi9MaWZlRHVyYXRpb25cIik7XG5jbGFzcyBMaWZlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5jb3VudCA9IDA7XG4gICAgICAgIHRoaXMuZGVsYXkgPSBuZXcgTGlmZURlbGF5XzEuTGlmZURlbGF5KCk7XG4gICAgICAgIHRoaXMuZHVyYXRpb24gPSBuZXcgTGlmZUR1cmF0aW9uXzEuTGlmZUR1cmF0aW9uKCk7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuY291bnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5jb3VudCA9IGRhdGEuY291bnQ7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kZWxheS5sb2FkKGRhdGEuZGVsYXkpO1xuICAgICAgICB0aGlzLmR1cmF0aW9uLmxvYWQoZGF0YS5kdXJhdGlvbik7XG4gICAgfVxufVxuZXhwb3J0cy5MaWZlID0gTGlmZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Life/Life.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Life/LifeDelay.js": +/*!******************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Life/LifeDelay.js ***! + \******************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.LifeDelay = void 0;\nconst ValueWithRandom_1 = __webpack_require__(/*! ../../ValueWithRandom */ \"./node_modules/tsparticles/Options/Classes/ValueWithRandom.js\");\nclass LifeDelay extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n this.sync = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n super.load(data);\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\nexports.LifeDelay = LifeDelay;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9MaWZlL0xpZmVEZWxheS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxpQkFBaUI7QUFDakIsMEJBQTBCLG1CQUFPLENBQUMsNEZBQXVCO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9MaWZlL0xpZmVEZWxheS5qcz82YmE0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5MaWZlRGVsYXkgPSB2b2lkIDA7XG5jb25zdCBWYWx1ZVdpdGhSYW5kb21fMSA9IHJlcXVpcmUoXCIuLi8uLi9WYWx1ZVdpdGhSYW5kb21cIik7XG5jbGFzcyBMaWZlRGVsYXkgZXh0ZW5kcyBWYWx1ZVdpdGhSYW5kb21fMS5WYWx1ZVdpdGhSYW5kb20ge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnN5bmMgPSBmYWxzZTtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHN1cGVyLmxvYWQoZGF0YSk7XG4gICAgICAgIGlmIChkYXRhLnN5bmMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5zeW5jID0gZGF0YS5zeW5jO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5MaWZlRGVsYXkgPSBMaWZlRGVsYXk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Life/LifeDelay.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Life/LifeDuration.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Life/LifeDuration.js ***! + \*********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.LifeDuration = void 0;\nconst ValueWithRandom_1 = __webpack_require__(/*! ../../ValueWithRandom */ \"./node_modules/tsparticles/Options/Classes/ValueWithRandom.js\");\nclass LifeDuration extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n this.random.minimumValue = 0.0001;\n this.sync = false;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n super.load(data);\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\nexports.LifeDuration = LifeDuration;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9MaWZlL0xpZmVEdXJhdGlvbi5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxvQkFBb0I7QUFDcEIsMEJBQTBCLG1CQUFPLENBQUMsNEZBQXVCO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvUGFydGljbGVzL0xpZmUvTGlmZUR1cmF0aW9uLmpzPzY5MTYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkxpZmVEdXJhdGlvbiA9IHZvaWQgMDtcbmNvbnN0IFZhbHVlV2l0aFJhbmRvbV8xID0gcmVxdWlyZShcIi4uLy4uL1ZhbHVlV2l0aFJhbmRvbVwiKTtcbmNsYXNzIExpZmVEdXJhdGlvbiBleHRlbmRzIFZhbHVlV2l0aFJhbmRvbV8xLlZhbHVlV2l0aFJhbmRvbSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMucmFuZG9tLm1pbmltdW1WYWx1ZSA9IDAuMDAwMTtcbiAgICAgICAgdGhpcy5zeW5jID0gZmFsc2U7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc3VwZXIubG9hZChkYXRhKTtcbiAgICAgICAgaWYgKGRhdGEuc3luYyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnN5bmMgPSBkYXRhLnN5bmM7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkxpZmVEdXJhdGlvbiA9IExpZmVEdXJhdGlvbjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Life/LifeDuration.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Links/Links.js": +/*!***************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Links/Links.js ***! + \***************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Links = void 0;\nconst LinksShadow_1 = __webpack_require__(/*! ./LinksShadow */ \"./node_modules/tsparticles/Options/Classes/Particles/Links/LinksShadow.js\");\nconst LinksTriangle_1 = __webpack_require__(/*! ./LinksTriangle */ \"./node_modules/tsparticles/Options/Classes/Particles/Links/LinksTriangle.js\");\nconst OptionsColor_1 = __webpack_require__(/*! ../../OptionsColor */ \"./node_modules/tsparticles/Options/Classes/OptionsColor.js\");\nclass Links {\n constructor() {\n this.blink = false;\n this.color = new OptionsColor_1.OptionsColor();\n this.consent = false;\n this.distance = 100;\n this.enable = false;\n this.frequency = 1;\n this.opacity = 1;\n this.shadow = new LinksShadow_1.LinksShadow();\n this.triangles = new LinksTriangle_1.LinksTriangle();\n this.width = 1;\n this.warp = false;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.id !== undefined) {\n this.id = data.id;\n }\n if (data.blink !== undefined) {\n this.blink = data.blink;\n }\n this.color = OptionsColor_1.OptionsColor.create(this.color, data.color);\n if (data.consent !== undefined) {\n this.consent = data.consent;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.frequency !== undefined) {\n this.frequency = data.frequency;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n this.shadow.load(data.shadow);\n this.triangles.load(data.triangles);\n if (data.width !== undefined) {\n this.width = data.width;\n }\n if (data.warp !== undefined) {\n this.warp = data.warp;\n }\n }\n}\nexports.Links = Links;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9MaW5rcy9MaW5rcy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxhQUFhO0FBQ2Isc0JBQXNCLG1CQUFPLENBQUMsZ0dBQWU7QUFDN0Msd0JBQXdCLG1CQUFPLENBQUMsb0dBQWlCO0FBQ2pELHVCQUF1QixtQkFBTyxDQUFDLHNGQUFvQjtBQUNuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9MaW5rcy9MaW5rcy5qcz9kYzVkIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5MaW5rcyA9IHZvaWQgMDtcbmNvbnN0IExpbmtzU2hhZG93XzEgPSByZXF1aXJlKFwiLi9MaW5rc1NoYWRvd1wiKTtcbmNvbnN0IExpbmtzVHJpYW5nbGVfMSA9IHJlcXVpcmUoXCIuL0xpbmtzVHJpYW5nbGVcIik7XG5jb25zdCBPcHRpb25zQ29sb3JfMSA9IHJlcXVpcmUoXCIuLi8uLi9PcHRpb25zQ29sb3JcIik7XG5jbGFzcyBMaW5rcyB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuYmxpbmsgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jb2xvciA9IG5ldyBPcHRpb25zQ29sb3JfMS5PcHRpb25zQ29sb3IoKTtcbiAgICAgICAgdGhpcy5jb25zZW50ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZGlzdGFuY2UgPSAxMDA7XG4gICAgICAgIHRoaXMuZW5hYmxlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZnJlcXVlbmN5ID0gMTtcbiAgICAgICAgdGhpcy5vcGFjaXR5ID0gMTtcbiAgICAgICAgdGhpcy5zaGFkb3cgPSBuZXcgTGlua3NTaGFkb3dfMS5MaW5rc1NoYWRvdygpO1xuICAgICAgICB0aGlzLnRyaWFuZ2xlcyA9IG5ldyBMaW5rc1RyaWFuZ2xlXzEuTGlua3NUcmlhbmdsZSgpO1xuICAgICAgICB0aGlzLndpZHRoID0gMTtcbiAgICAgICAgdGhpcy53YXJwID0gZmFsc2U7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuaWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5pZCA9IGRhdGEuaWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuYmxpbmsgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5ibGluayA9IGRhdGEuYmxpbms7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb2xvciA9IE9wdGlvbnNDb2xvcl8xLk9wdGlvbnNDb2xvci5jcmVhdGUodGhpcy5jb2xvciwgZGF0YS5jb2xvcik7XG4gICAgICAgIGlmIChkYXRhLmNvbnNlbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5jb25zZW50ID0gZGF0YS5jb25zZW50O1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmRpc3RhbmNlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzdGFuY2UgPSBkYXRhLmRpc3RhbmNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmVuYWJsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZSA9IGRhdGEuZW5hYmxlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmZyZXF1ZW5jeSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmZyZXF1ZW5jeSA9IGRhdGEuZnJlcXVlbmN5O1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLm9wYWNpdHkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5vcGFjaXR5ID0gZGF0YS5vcGFjaXR5O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2hhZG93LmxvYWQoZGF0YS5zaGFkb3cpO1xuICAgICAgICB0aGlzLnRyaWFuZ2xlcy5sb2FkKGRhdGEudHJpYW5nbGVzKTtcbiAgICAgICAgaWYgKGRhdGEud2lkdGggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy53aWR0aCA9IGRhdGEud2lkdGg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEud2FycCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLndhcnAgPSBkYXRhLndhcnA7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkxpbmtzID0gTGlua3M7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Links/Links.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Links/LinksShadow.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Links/LinksShadow.js ***! + \*********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.LinksShadow = void 0;\nconst OptionsColor_1 = __webpack_require__(/*! ../../OptionsColor */ \"./node_modules/tsparticles/Options/Classes/OptionsColor.js\");\nclass LinksShadow {\n constructor() {\n this.blur = 5;\n this.color = new OptionsColor_1.OptionsColor();\n this.enable = false;\n this.color.value = \"#00ff00\";\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.blur !== undefined) {\n this.blur = data.blur;\n }\n this.color = OptionsColor_1.OptionsColor.create(this.color, data.color);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n }\n}\nexports.LinksShadow = LinksShadow;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9MaW5rcy9MaW5rc1NoYWRvdy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxtQkFBbUI7QUFDbkIsdUJBQXVCLG1CQUFPLENBQUMsc0ZBQW9CO0FBQ25EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9QYXJ0aWNsZXMvTGlua3MvTGlua3NTaGFkb3cuanM/ZGM1NSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuTGlua3NTaGFkb3cgPSB2b2lkIDA7XG5jb25zdCBPcHRpb25zQ29sb3JfMSA9IHJlcXVpcmUoXCIuLi8uLi9PcHRpb25zQ29sb3JcIik7XG5jbGFzcyBMaW5rc1NoYWRvdyB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuYmx1ciA9IDU7XG4gICAgICAgIHRoaXMuY29sb3IgPSBuZXcgT3B0aW9uc0NvbG9yXzEuT3B0aW9uc0NvbG9yKCk7XG4gICAgICAgIHRoaXMuZW5hYmxlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY29sb3IudmFsdWUgPSBcIiMwMGZmMDBcIjtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5ibHVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuYmx1ciA9IGRhdGEuYmx1cjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbG9yID0gT3B0aW9uc0NvbG9yXzEuT3B0aW9uc0NvbG9yLmNyZWF0ZSh0aGlzLmNvbG9yLCBkYXRhLmNvbG9yKTtcbiAgICAgICAgaWYgKGRhdGEuZW5hYmxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlID0gZGF0YS5lbmFibGU7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkxpbmtzU2hhZG93ID0gTGlua3NTaGFkb3c7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Links/LinksShadow.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Links/LinksTriangle.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Links/LinksTriangle.js ***! + \***********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.LinksTriangle = void 0;\nconst OptionsColor_1 = __webpack_require__(/*! ../../OptionsColor */ \"./node_modules/tsparticles/Options/Classes/OptionsColor.js\");\nclass LinksTriangle {\n constructor() {\n this.enable = false;\n this.frequency = 1;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor_1.OptionsColor.create(this.color, data.color);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.frequency !== undefined) {\n this.frequency = data.frequency;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\nexports.LinksTriangle = LinksTriangle;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9MaW5rcy9MaW5rc1RyaWFuZ2xlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHFCQUFxQjtBQUNyQix1QkFBdUIsbUJBQU8sQ0FBQyxzRkFBb0I7QUFDbkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9MaW5rcy9MaW5rc1RyaWFuZ2xlLmpzP2EzZTgiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkxpbmtzVHJpYW5nbGUgPSB2b2lkIDA7XG5jb25zdCBPcHRpb25zQ29sb3JfMSA9IHJlcXVpcmUoXCIuLi8uLi9PcHRpb25zQ29sb3JcIik7XG5jbGFzcyBMaW5rc1RyaWFuZ2xlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5lbmFibGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5mcmVxdWVuY3kgPSAxO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmNvbG9yICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29sb3IgPSBPcHRpb25zQ29sb3JfMS5PcHRpb25zQ29sb3IuY3JlYXRlKHRoaXMuY29sb3IsIGRhdGEuY29sb3IpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmVuYWJsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZSA9IGRhdGEuZW5hYmxlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmZyZXF1ZW5jeSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmZyZXF1ZW5jeSA9IGRhdGEuZnJlcXVlbmN5O1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLm9wYWNpdHkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5vcGFjaXR5ID0gZGF0YS5vcGFjaXR5O1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5MaW5rc1RyaWFuZ2xlID0gTGlua3NUcmlhbmdsZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Links/LinksTriangle.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Move/Attract.js": +/*!****************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Move/Attract.js ***! + \****************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Attract = void 0;\nclass Attract {\n constructor() {\n this.distance = 200;\n this.enable = false;\n this.rotate = {\n x: 3000,\n y: 3000,\n };\n }\n get rotateX() {\n return this.rotate.x;\n }\n set rotateX(value) {\n this.rotate.x = value;\n }\n get rotateY() {\n return this.rotate.y;\n }\n set rotateY(value) {\n this.rotate.y = value;\n }\n load(data) {\n var _a, _b, _c, _d;\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n const rotateX = (_b = (_a = data.rotate) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : data.rotateX;\n if (rotateX !== undefined) {\n this.rotate.x = rotateX;\n }\n const rotateY = (_d = (_c = data.rotate) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : data.rotateY;\n if (rotateY !== undefined) {\n this.rotate.y = rotateY;\n }\n }\n}\nexports.Attract = Attract;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Nb3ZlL0F0dHJhY3QuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsZUFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9QYXJ0aWNsZXMvTW92ZS9BdHRyYWN0LmpzP2JlNmEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkF0dHJhY3QgPSB2b2lkIDA7XG5jbGFzcyBBdHRyYWN0IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5kaXN0YW5jZSA9IDIwMDtcbiAgICAgICAgdGhpcy5lbmFibGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5yb3RhdGUgPSB7XG4gICAgICAgICAgICB4OiAzMDAwLFxuICAgICAgICAgICAgeTogMzAwMCxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZ2V0IHJvdGF0ZVgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJvdGF0ZS54O1xuICAgIH1cbiAgICBzZXQgcm90YXRlWCh2YWx1ZSkge1xuICAgICAgICB0aGlzLnJvdGF0ZS54ID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCByb3RhdGVZKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5yb3RhdGUueTtcbiAgICB9XG4gICAgc2V0IHJvdGF0ZVkodmFsdWUpIHtcbiAgICAgICAgdGhpcy5yb3RhdGUueSA9IHZhbHVlO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kO1xuICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5kaXN0YW5jZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmRpc3RhbmNlID0gZGF0YS5kaXN0YW5jZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5lbmFibGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5lbmFibGUgPSBkYXRhLmVuYWJsZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByb3RhdGVYID0gKF9iID0gKF9hID0gZGF0YS5yb3RhdGUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS54KSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBkYXRhLnJvdGF0ZVg7XG4gICAgICAgIGlmIChyb3RhdGVYICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMucm90YXRlLnggPSByb3RhdGVYO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJvdGF0ZVkgPSAoX2QgPSAoX2MgPSBkYXRhLnJvdGF0ZSkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLnkpICE9PSBudWxsICYmIF9kICE9PSB2b2lkIDAgPyBfZCA6IGRhdGEucm90YXRlWTtcbiAgICAgICAgaWYgKHJvdGF0ZVkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5yb3RhdGUueSA9IHJvdGF0ZVk7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkF0dHJhY3QgPSBBdHRyYWN0O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Move/Attract.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Move/Move.js": +/*!*************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Move/Move.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Move = void 0;\nconst Attract_1 = __webpack_require__(/*! ./Attract */ \"./node_modules/tsparticles/Options/Classes/Particles/Move/Attract.js\");\nconst Enums_1 = __webpack_require__(/*! ../../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst Trail_1 = __webpack_require__(/*! ./Trail */ \"./node_modules/tsparticles/Options/Classes/Particles/Move/Trail.js\");\nconst Path_1 = __webpack_require__(/*! ./Path/Path */ \"./node_modules/tsparticles/Options/Classes/Particles/Move/Path/Path.js\");\nconst MoveAngle_1 = __webpack_require__(/*! ./MoveAngle */ \"./node_modules/tsparticles/Options/Classes/Particles/Move/MoveAngle.js\");\nconst MoveGravity_1 = __webpack_require__(/*! ./MoveGravity */ \"./node_modules/tsparticles/Options/Classes/Particles/Move/MoveGravity.js\");\nconst OutModes_1 = __webpack_require__(/*! ./OutModes */ \"./node_modules/tsparticles/Options/Classes/Particles/Move/OutModes.js\");\nconst Utils_1 = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Spin_1 = __webpack_require__(/*! ./Spin */ \"./node_modules/tsparticles/Options/Classes/Particles/Move/Spin.js\");\nclass Move {\n constructor() {\n this.angle = new MoveAngle_1.MoveAngle();\n this.attract = new Attract_1.Attract();\n this.decay = 0;\n this.distance = {};\n this.direction = Enums_1.MoveDirection.none;\n this.drift = 0;\n this.enable = false;\n this.gravity = new MoveGravity_1.MoveGravity();\n this.path = new Path_1.Path();\n this.outModes = new OutModes_1.OutModes();\n this.random = false;\n this.size = false;\n this.speed = 2;\n this.spin = new Spin_1.Spin();\n this.straight = false;\n this.trail = new Trail_1.Trail();\n this.vibrate = false;\n this.warp = false;\n }\n get collisions() {\n return false;\n }\n set collisions(value) {\n }\n get bounce() {\n return this.collisions;\n }\n set bounce(value) {\n this.collisions = value;\n }\n get out_mode() {\n return this.outMode;\n }\n set out_mode(value) {\n this.outMode = value;\n }\n get outMode() {\n return this.outModes.default;\n }\n set outMode(value) {\n this.outModes.default = value;\n }\n get noise() {\n return this.path;\n }\n set noise(value) {\n this.path = value;\n }\n load(data) {\n var _a, _b, _c;\n if (data === undefined) {\n return;\n }\n if (data.angle !== undefined) {\n if (typeof data.angle === \"number\") {\n this.angle.value = data.angle;\n }\n else {\n this.angle.load(data.angle);\n }\n }\n this.attract.load(data.attract);\n if (data.decay !== undefined) {\n this.decay = data.decay;\n }\n if (data.direction !== undefined) {\n this.direction = data.direction;\n }\n if (data.distance !== undefined) {\n this.distance =\n typeof data.distance === \"number\"\n ? {\n horizontal: data.distance,\n vertical: data.distance,\n }\n : (0, Utils_1.deepExtend)({}, data.distance);\n }\n if (data.drift !== undefined) {\n this.drift = (0, Utils_1.setRangeValue)(data.drift);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.gravity.load(data.gravity);\n const outMode = (_a = data.outMode) !== null && _a !== void 0 ? _a : data.out_mode;\n if (data.outModes !== undefined || outMode !== undefined) {\n if (typeof data.outModes === \"string\" || (data.outModes === undefined && outMode !== undefined)) {\n this.outModes.load({\n default: (_b = data.outModes) !== null && _b !== void 0 ? _b : outMode,\n });\n }\n else {\n this.outModes.load(data.outModes);\n }\n }\n this.path.load((_c = data.path) !== null && _c !== void 0 ? _c : data.noise);\n if (data.random !== undefined) {\n this.random = data.random;\n }\n if (data.size !== undefined) {\n this.size = data.size;\n }\n if (data.speed !== undefined) {\n this.speed = (0, Utils_1.setRangeValue)(data.speed);\n }\n this.spin.load(data.spin);\n if (data.straight !== undefined) {\n this.straight = data.straight;\n }\n this.trail.load(data.trail);\n if (data.vibrate !== undefined) {\n this.vibrate = data.vibrate;\n }\n if (data.warp !== undefined) {\n this.warp = data.warp;\n }\n }\n}\nexports.Move = Move;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Nb3ZlL01vdmUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsWUFBWTtBQUNaLGtCQUFrQixtQkFBTyxDQUFDLHVGQUFXO0FBQ3JDLGdCQUFnQixtQkFBTyxDQUFDLG9FQUFtQjtBQUMzQyxnQkFBZ0IsbUJBQU8sQ0FBQyxtRkFBUztBQUNqQyxlQUFlLG1CQUFPLENBQUMsMkZBQWE7QUFDcEMsb0JBQW9CLG1CQUFPLENBQUMsMkZBQWE7QUFDekMsc0JBQXNCLG1CQUFPLENBQUMsK0ZBQWU7QUFDN0MsbUJBQW1CLG1CQUFPLENBQUMseUZBQVk7QUFDdkMsZ0JBQWdCLG1CQUFPLENBQUMsb0VBQW1CO0FBQzNDLGVBQWUsbUJBQU8sQ0FBQyxpRkFBUTtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0RBQWdEO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Nb3ZlL01vdmUuanM/OGZiNyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuTW92ZSA9IHZvaWQgMDtcbmNvbnN0IEF0dHJhY3RfMSA9IHJlcXVpcmUoXCIuL0F0dHJhY3RcIik7XG5jb25zdCBFbnVtc18xID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL0VudW1zXCIpO1xuY29uc3QgVHJhaWxfMSA9IHJlcXVpcmUoXCIuL1RyYWlsXCIpO1xuY29uc3QgUGF0aF8xID0gcmVxdWlyZShcIi4vUGF0aC9QYXRoXCIpO1xuY29uc3QgTW92ZUFuZ2xlXzEgPSByZXF1aXJlKFwiLi9Nb3ZlQW5nbGVcIik7XG5jb25zdCBNb3ZlR3Jhdml0eV8xID0gcmVxdWlyZShcIi4vTW92ZUdyYXZpdHlcIik7XG5jb25zdCBPdXRNb2Rlc18xID0gcmVxdWlyZShcIi4vT3V0TW9kZXNcIik7XG5jb25zdCBVdGlsc18xID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL1V0aWxzXCIpO1xuY29uc3QgU3Bpbl8xID0gcmVxdWlyZShcIi4vU3BpblwiKTtcbmNsYXNzIE1vdmUge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmFuZ2xlID0gbmV3IE1vdmVBbmdsZV8xLk1vdmVBbmdsZSgpO1xuICAgICAgICB0aGlzLmF0dHJhY3QgPSBuZXcgQXR0cmFjdF8xLkF0dHJhY3QoKTtcbiAgICAgICAgdGhpcy5kZWNheSA9IDA7XG4gICAgICAgIHRoaXMuZGlzdGFuY2UgPSB7fTtcbiAgICAgICAgdGhpcy5kaXJlY3Rpb24gPSBFbnVtc18xLk1vdmVEaXJlY3Rpb24ubm9uZTtcbiAgICAgICAgdGhpcy5kcmlmdCA9IDA7XG4gICAgICAgIHRoaXMuZW5hYmxlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZ3Jhdml0eSA9IG5ldyBNb3ZlR3Jhdml0eV8xLk1vdmVHcmF2aXR5KCk7XG4gICAgICAgIHRoaXMucGF0aCA9IG5ldyBQYXRoXzEuUGF0aCgpO1xuICAgICAgICB0aGlzLm91dE1vZGVzID0gbmV3IE91dE1vZGVzXzEuT3V0TW9kZXMoKTtcbiAgICAgICAgdGhpcy5yYW5kb20gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zaXplID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc3BlZWQgPSAyO1xuICAgICAgICB0aGlzLnNwaW4gPSBuZXcgU3Bpbl8xLlNwaW4oKTtcbiAgICAgICAgdGhpcy5zdHJhaWdodCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnRyYWlsID0gbmV3IFRyYWlsXzEuVHJhaWwoKTtcbiAgICAgICAgdGhpcy52aWJyYXRlID0gZmFsc2U7XG4gICAgICAgIHRoaXMud2FycCA9IGZhbHNlO1xuICAgIH1cbiAgICBnZXQgY29sbGlzaW9ucygpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBzZXQgY29sbGlzaW9ucyh2YWx1ZSkge1xuICAgIH1cbiAgICBnZXQgYm91bmNlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2xsaXNpb25zO1xuICAgIH1cbiAgICBzZXQgYm91bmNlKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuY29sbGlzaW9ucyA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgb3V0X21vZGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm91dE1vZGU7XG4gICAgfVxuICAgIHNldCBvdXRfbW9kZSh2YWx1ZSkge1xuICAgICAgICB0aGlzLm91dE1vZGUgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IG91dE1vZGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm91dE1vZGVzLmRlZmF1bHQ7XG4gICAgfVxuICAgIHNldCBvdXRNb2RlKHZhbHVlKSB7XG4gICAgICAgIHRoaXMub3V0TW9kZXMuZGVmYXVsdCA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgbm9pc2UoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhdGg7XG4gICAgfVxuICAgIHNldCBub2lzZSh2YWx1ZSkge1xuICAgICAgICB0aGlzLnBhdGggPSB2YWx1ZTtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuYW5nbGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBkYXRhLmFuZ2xlID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hbmdsZS52YWx1ZSA9IGRhdGEuYW5nbGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFuZ2xlLmxvYWQoZGF0YS5hbmdsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hdHRyYWN0LmxvYWQoZGF0YS5hdHRyYWN0KTtcbiAgICAgICAgaWYgKGRhdGEuZGVjYXkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5kZWNheSA9IGRhdGEuZGVjYXk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZGlyZWN0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZGlyZWN0aW9uID0gZGF0YS5kaXJlY3Rpb247XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZGlzdGFuY2UgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5kaXN0YW5jZSA9XG4gICAgICAgICAgICAgICAgdHlwZW9mIGRhdGEuZGlzdGFuY2UgPT09IFwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBob3Jpem9udGFsOiBkYXRhLmRpc3RhbmNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmVydGljYWw6IGRhdGEuZGlzdGFuY2UsXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgOiAoMCwgVXRpbHNfMS5kZWVwRXh0ZW5kKSh7fSwgZGF0YS5kaXN0YW5jZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZHJpZnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5kcmlmdCA9ICgwLCBVdGlsc18xLnNldFJhbmdlVmFsdWUpKGRhdGEuZHJpZnQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmVuYWJsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZSA9IGRhdGEuZW5hYmxlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZ3Jhdml0eS5sb2FkKGRhdGEuZ3Jhdml0eSk7XG4gICAgICAgIGNvbnN0IG91dE1vZGUgPSAoX2EgPSBkYXRhLm91dE1vZGUpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGRhdGEub3V0X21vZGU7XG4gICAgICAgIGlmIChkYXRhLm91dE1vZGVzICE9PSB1bmRlZmluZWQgfHwgb3V0TW9kZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGRhdGEub3V0TW9kZXMgPT09IFwic3RyaW5nXCIgfHwgKGRhdGEub3V0TW9kZXMgPT09IHVuZGVmaW5lZCAmJiBvdXRNb2RlICE9PSB1bmRlZmluZWQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vdXRNb2Rlcy5sb2FkKHtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogKF9iID0gZGF0YS5vdXRNb2RlcykgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogb3V0TW9kZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMub3V0TW9kZXMubG9hZChkYXRhLm91dE1vZGVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnBhdGgubG9hZCgoX2MgPSBkYXRhLnBhdGgpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IGRhdGEubm9pc2UpO1xuICAgICAgICBpZiAoZGF0YS5yYW5kb20gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5yYW5kb20gPSBkYXRhLnJhbmRvbTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5zaXplICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2l6ZSA9IGRhdGEuc2l6ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5zcGVlZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnNwZWVkID0gKDAsIFV0aWxzXzEuc2V0UmFuZ2VWYWx1ZSkoZGF0YS5zcGVlZCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zcGluLmxvYWQoZGF0YS5zcGluKTtcbiAgICAgICAgaWYgKGRhdGEuc3RyYWlnaHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5zdHJhaWdodCA9IGRhdGEuc3RyYWlnaHQ7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50cmFpbC5sb2FkKGRhdGEudHJhaWwpO1xuICAgICAgICBpZiAoZGF0YS52aWJyYXRlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMudmlicmF0ZSA9IGRhdGEudmlicmF0ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS53YXJwICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMud2FycCA9IGRhdGEud2FycDtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuTW92ZSA9IE1vdmU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Move/Move.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Move/MoveAngle.js": +/*!******************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Move/MoveAngle.js ***! + \******************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.MoveAngle = void 0;\nclass MoveAngle {\n constructor() {\n this.offset = 0;\n this.value = 90;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.offset !== undefined) {\n this.offset = data.offset;\n }\n if (data.value !== undefined) {\n this.value = data.value;\n }\n }\n}\nexports.MoveAngle = MoveAngle;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Nb3ZlL01vdmVBbmdsZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Nb3ZlL01vdmVBbmdsZS5qcz84OTdiIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Nb3ZlQW5nbGUgPSB2b2lkIDA7XG5jbGFzcyBNb3ZlQW5nbGUge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLm9mZnNldCA9IDA7XG4gICAgICAgIHRoaXMudmFsdWUgPSA5MDtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5vZmZzZXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5vZmZzZXQgPSBkYXRhLm9mZnNldDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gZGF0YS52YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuTW92ZUFuZ2xlID0gTW92ZUFuZ2xlO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Move/MoveAngle.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Move/MoveGravity.js": +/*!********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Move/MoveGravity.js ***! + \********************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.MoveGravity = void 0;\nclass MoveGravity {\n constructor() {\n this.acceleration = 9.81;\n this.enable = false;\n this.inverse = false;\n this.maxSpeed = 50;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.acceleration !== undefined) {\n this.acceleration = data.acceleration;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.inverse !== undefined) {\n this.inverse = data.inverse;\n }\n if (data.maxSpeed !== undefined) {\n this.maxSpeed = data.maxSpeed;\n }\n }\n}\nexports.MoveGravity = MoveGravity;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Nb3ZlL01vdmVHcmF2aXR5LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELG1CQUFtQjtBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Nb3ZlL01vdmVHcmF2aXR5LmpzPzM4ZTAiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLk1vdmVHcmF2aXR5ID0gdm9pZCAwO1xuY2xhc3MgTW92ZUdyYXZpdHkge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmFjY2VsZXJhdGlvbiA9IDkuODE7XG4gICAgICAgIHRoaXMuZW5hYmxlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaW52ZXJzZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLm1heFNwZWVkID0gNTA7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5hY2NlbGVyYXRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5hY2NlbGVyYXRpb24gPSBkYXRhLmFjY2VsZXJhdGlvbjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5lbmFibGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5lbmFibGUgPSBkYXRhLmVuYWJsZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5pbnZlcnNlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuaW52ZXJzZSA9IGRhdGEuaW52ZXJzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5tYXhTcGVlZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLm1heFNwZWVkID0gZGF0YS5tYXhTcGVlZDtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuTW92ZUdyYXZpdHkgPSBNb3ZlR3Jhdml0eTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Move/MoveGravity.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Move/OutModes.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Move/OutModes.js ***! + \*****************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.OutModes = void 0;\nconst Modes_1 = __webpack_require__(/*! ../../../../Enums/Modes */ \"./node_modules/tsparticles/Enums/Modes/index.js\");\nclass OutModes {\n constructor() {\n this.default = Modes_1.OutMode.out;\n }\n load(data) {\n var _a, _b, _c, _d;\n if (!data) {\n return;\n }\n if (data.default !== undefined) {\n this.default = data.default;\n }\n this.bottom = (_a = data.bottom) !== null && _a !== void 0 ? _a : data.default;\n this.left = (_b = data.left) !== null && _b !== void 0 ? _b : data.default;\n this.right = (_c = data.right) !== null && _c !== void 0 ? _c : data.default;\n this.top = (_d = data.top) !== null && _d !== void 0 ? _d : data.default;\n }\n}\nexports.OutModes = OutModes;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Nb3ZlL091dE1vZGVzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGdCQUFnQjtBQUNoQixnQkFBZ0IsbUJBQU8sQ0FBQyxnRkFBeUI7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvUGFydGljbGVzL01vdmUvT3V0TW9kZXMuanM/M2NiZSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuT3V0TW9kZXMgPSB2b2lkIDA7XG5jb25zdCBNb2Rlc18xID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL0VudW1zL01vZGVzXCIpO1xuY2xhc3MgT3V0TW9kZXMge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmRlZmF1bHQgPSBNb2Rlc18xLk91dE1vZGUub3V0O1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kO1xuICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5kZWZhdWx0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdCA9IGRhdGEuZGVmYXVsdDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmJvdHRvbSA9IChfYSA9IGRhdGEuYm90dG9tKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBkYXRhLmRlZmF1bHQ7XG4gICAgICAgIHRoaXMubGVmdCA9IChfYiA9IGRhdGEubGVmdCkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogZGF0YS5kZWZhdWx0O1xuICAgICAgICB0aGlzLnJpZ2h0ID0gKF9jID0gZGF0YS5yaWdodCkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogZGF0YS5kZWZhdWx0O1xuICAgICAgICB0aGlzLnRvcCA9IChfZCA9IGRhdGEudG9wKSAhPT0gbnVsbCAmJiBfZCAhPT0gdm9pZCAwID8gX2QgOiBkYXRhLmRlZmF1bHQ7XG4gICAgfVxufVxuZXhwb3J0cy5PdXRNb2RlcyA9IE91dE1vZGVzO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Move/OutModes.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Move/Path/Path.js": +/*!******************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Move/Path/Path.js ***! + \******************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Path = void 0;\nconst PathDelay_1 = __webpack_require__(/*! ./PathDelay */ \"./node_modules/tsparticles/Options/Classes/Particles/Move/Path/PathDelay.js\");\nconst Utils_1 = __webpack_require__(/*! ../../../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass Path {\n constructor() {\n this.clamp = true;\n this.delay = new PathDelay_1.PathDelay();\n this.enable = false;\n this.options = {};\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.clamp !== undefined) {\n this.clamp = data.clamp;\n }\n this.delay.load(data.delay);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.generator = data.generator;\n if (data.options) {\n this.options = (0, Utils_1.deepExtend)(this.options, data.options);\n }\n }\n}\nexports.Path = Path;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Nb3ZlL1BhdGgvUGF0aC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxZQUFZO0FBQ1osb0JBQW9CLG1CQUFPLENBQUMsZ0dBQWE7QUFDekMsZ0JBQWdCLG1CQUFPLENBQUMsdUVBQXNCO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVkiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9QYXJ0aWNsZXMvTW92ZS9QYXRoL1BhdGguanM/NTc5ZSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuUGF0aCA9IHZvaWQgMDtcbmNvbnN0IFBhdGhEZWxheV8xID0gcmVxdWlyZShcIi4vUGF0aERlbGF5XCIpO1xuY29uc3QgVXRpbHNfMSA9IHJlcXVpcmUoXCIuLi8uLi8uLi8uLi8uLi9VdGlsc1wiKTtcbmNsYXNzIFBhdGgge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmNsYW1wID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5kZWxheSA9IG5ldyBQYXRoRGVsYXlfMS5QYXRoRGVsYXkoKTtcbiAgICAgICAgdGhpcy5lbmFibGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0ge307XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuY2xhbXAgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5jbGFtcCA9IGRhdGEuY2xhbXA7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kZWxheS5sb2FkKGRhdGEuZGVsYXkpO1xuICAgICAgICBpZiAoZGF0YS5lbmFibGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5lbmFibGUgPSBkYXRhLmVuYWJsZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmdlbmVyYXRvciA9IGRhdGEuZ2VuZXJhdG9yO1xuICAgICAgICBpZiAoZGF0YS5vcHRpb25zKSB7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMgPSAoMCwgVXRpbHNfMS5kZWVwRXh0ZW5kKSh0aGlzLm9wdGlvbnMsIGRhdGEub3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLlBhdGggPSBQYXRoO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Move/Path/Path.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Move/Path/PathDelay.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Move/Path/PathDelay.js ***! + \***********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.PathDelay = void 0;\nconst ValueWithRandom_1 = __webpack_require__(/*! ../../../ValueWithRandom */ \"./node_modules/tsparticles/Options/Classes/ValueWithRandom.js\");\nclass PathDelay extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n }\n}\nexports.PathDelay = PathDelay;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Nb3ZlL1BhdGgvUGF0aERlbGF5LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGlCQUFpQjtBQUNqQiwwQkFBMEIsbUJBQU8sQ0FBQywrRkFBMEI7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Nb3ZlL1BhdGgvUGF0aERlbGF5LmpzP2EzNGYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlBhdGhEZWxheSA9IHZvaWQgMDtcbmNvbnN0IFZhbHVlV2l0aFJhbmRvbV8xID0gcmVxdWlyZShcIi4uLy4uLy4uL1ZhbHVlV2l0aFJhbmRvbVwiKTtcbmNsYXNzIFBhdGhEZWxheSBleHRlbmRzIFZhbHVlV2l0aFJhbmRvbV8xLlZhbHVlV2l0aFJhbmRvbSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxufVxuZXhwb3J0cy5QYXRoRGVsYXkgPSBQYXRoRGVsYXk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Move/Path/PathDelay.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Move/Spin.js": +/*!*************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Move/Spin.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Spin = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass Spin {\n constructor() {\n this.acceleration = 0;\n this.enable = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.acceleration !== undefined) {\n this.acceleration = (0, Utils_1.setRangeValue)(data.acceleration);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.position = data.position ? (0, Utils_1.deepExtend)({}, data.position) : undefined;\n }\n}\nexports.Spin = Spin;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Nb3ZlL1NwaW4uanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsWUFBWTtBQUNaLGdCQUFnQixtQkFBTyxDQUFDLG9FQUFtQjtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrRUFBa0U7QUFDbEU7QUFDQTtBQUNBLFlBQVkiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9QYXJ0aWNsZXMvTW92ZS9TcGluLmpzPzk5N2IiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlNwaW4gPSB2b2lkIDA7XG5jb25zdCBVdGlsc18xID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL1V0aWxzXCIpO1xuY2xhc3MgU3BpbiB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuYWNjZWxlcmF0aW9uID0gMDtcbiAgICAgICAgdGhpcy5lbmFibGUgPSBmYWxzZTtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmFjY2VsZXJhdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmFjY2VsZXJhdGlvbiA9ICgwLCBVdGlsc18xLnNldFJhbmdlVmFsdWUpKGRhdGEuYWNjZWxlcmF0aW9uKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5lbmFibGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5lbmFibGUgPSBkYXRhLmVuYWJsZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnBvc2l0aW9uID0gZGF0YS5wb3NpdGlvbiA/ICgwLCBVdGlsc18xLmRlZXBFeHRlbmQpKHt9LCBkYXRhLnBvc2l0aW9uKSA6IHVuZGVmaW5lZDtcbiAgICB9XG59XG5leHBvcnRzLlNwaW4gPSBTcGluO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Move/Spin.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Move/Trail.js": +/*!**************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Move/Trail.js ***! + \**************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Trail = void 0;\nconst OptionsColor_1 = __webpack_require__(/*! ../../OptionsColor */ \"./node_modules/tsparticles/Options/Classes/OptionsColor.js\");\nclass Trail {\n constructor() {\n this.enable = false;\n this.length = 10;\n this.fillColor = new OptionsColor_1.OptionsColor();\n this.fillColor.value = \"#000000\";\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.fillColor = OptionsColor_1.OptionsColor.create(this.fillColor, data.fillColor);\n if (data.length !== undefined) {\n this.length = data.length;\n }\n }\n}\nexports.Trail = Trail;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Nb3ZlL1RyYWlsLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGFBQWE7QUFDYix1QkFBdUIsbUJBQU8sQ0FBQyxzRkFBb0I7QUFDbkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9QYXJ0aWNsZXMvTW92ZS9UcmFpbC5qcz83YTljIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5UcmFpbCA9IHZvaWQgMDtcbmNvbnN0IE9wdGlvbnNDb2xvcl8xID0gcmVxdWlyZShcIi4uLy4uL09wdGlvbnNDb2xvclwiKTtcbmNsYXNzIFRyYWlsIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5lbmFibGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5sZW5ndGggPSAxMDtcbiAgICAgICAgdGhpcy5maWxsQ29sb3IgPSBuZXcgT3B0aW9uc0NvbG9yXzEuT3B0aW9uc0NvbG9yKCk7XG4gICAgICAgIHRoaXMuZmlsbENvbG9yLnZhbHVlID0gXCIjMDAwMDAwXCI7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZW5hYmxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlID0gZGF0YS5lbmFibGU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5maWxsQ29sb3IgPSBPcHRpb25zQ29sb3JfMS5PcHRpb25zQ29sb3IuY3JlYXRlKHRoaXMuZmlsbENvbG9yLCBkYXRhLmZpbGxDb2xvcik7XG4gICAgICAgIGlmIChkYXRhLmxlbmd0aCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmxlbmd0aCA9IGRhdGEubGVuZ3RoO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5UcmFpbCA9IFRyYWlsO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Move/Trail.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Number/Density.js": +/*!******************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Number/Density.js ***! + \******************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Density = void 0;\nclass Density {\n constructor() {\n this.enable = false;\n this.area = 800;\n this.factor = 1000;\n }\n get value_area() {\n return this.area;\n }\n set value_area(value) {\n this.area = value;\n }\n load(data) {\n var _a;\n if (data === undefined) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n const area = (_a = data.area) !== null && _a !== void 0 ? _a : data.value_area;\n if (area !== undefined) {\n this.area = area;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n }\n}\nexports.Density = Density;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9OdW1iZXIvRGVuc2l0eS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxlQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9QYXJ0aWNsZXMvTnVtYmVyL0RlbnNpdHkuanM/NTBjYyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuRGVuc2l0eSA9IHZvaWQgMDtcbmNsYXNzIERlbnNpdHkge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmVuYWJsZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmFyZWEgPSA4MDA7XG4gICAgICAgIHRoaXMuZmFjdG9yID0gMTAwMDtcbiAgICB9XG4gICAgZ2V0IHZhbHVlX2FyZWEoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFyZWE7XG4gICAgfVxuICAgIHNldCB2YWx1ZV9hcmVhKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuYXJlYSA9IHZhbHVlO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZW5hYmxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlID0gZGF0YS5lbmFibGU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYXJlYSA9IChfYSA9IGRhdGEuYXJlYSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogZGF0YS52YWx1ZV9hcmVhO1xuICAgICAgICBpZiAoYXJlYSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmFyZWEgPSBhcmVhO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmZhY3RvciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmZhY3RvciA9IGRhdGEuZmFjdG9yO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5EZW5zaXR5ID0gRGVuc2l0eTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Number/Density.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Number/ParticlesNumber.js": +/*!**************************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Number/ParticlesNumber.js ***! + \**************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ParticlesNumber = void 0;\nconst Density_1 = __webpack_require__(/*! ./Density */ \"./node_modules/tsparticles/Options/Classes/Particles/Number/Density.js\");\nclass ParticlesNumber {\n constructor() {\n this.density = new Density_1.Density();\n this.limit = 0;\n this.value = 100;\n }\n get max() {\n return this.limit;\n }\n set max(value) {\n this.limit = value;\n }\n load(data) {\n var _a;\n if (data === undefined) {\n return;\n }\n this.density.load(data.density);\n const limit = (_a = data.limit) !== null && _a !== void 0 ? _a : data.max;\n if (limit !== undefined) {\n this.limit = limit;\n }\n if (data.value !== undefined) {\n this.value = data.value;\n }\n }\n}\nexports.ParticlesNumber = ParticlesNumber;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9OdW1iZXIvUGFydGljbGVzTnVtYmVyLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHVCQUF1QjtBQUN2QixrQkFBa0IsbUJBQU8sQ0FBQyx5RkFBVztBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9QYXJ0aWNsZXMvTnVtYmVyL1BhcnRpY2xlc051bWJlci5qcz8wY2I4Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5QYXJ0aWNsZXNOdW1iZXIgPSB2b2lkIDA7XG5jb25zdCBEZW5zaXR5XzEgPSByZXF1aXJlKFwiLi9EZW5zaXR5XCIpO1xuY2xhc3MgUGFydGljbGVzTnVtYmVyIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5kZW5zaXR5ID0gbmV3IERlbnNpdHlfMS5EZW5zaXR5KCk7XG4gICAgICAgIHRoaXMubGltaXQgPSAwO1xuICAgICAgICB0aGlzLnZhbHVlID0gMTAwO1xuICAgIH1cbiAgICBnZXQgbWF4KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5saW1pdDtcbiAgICB9XG4gICAgc2V0IG1heCh2YWx1ZSkge1xuICAgICAgICB0aGlzLmxpbWl0ID0gdmFsdWU7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRlbnNpdHkubG9hZChkYXRhLmRlbnNpdHkpO1xuICAgICAgICBjb25zdCBsaW1pdCA9IChfYSA9IGRhdGEubGltaXQpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGRhdGEubWF4O1xuICAgICAgICBpZiAobGltaXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5saW1pdCA9IGxpbWl0O1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBkYXRhLnZhbHVlO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5QYXJ0aWNsZXNOdW1iZXIgPSBQYXJ0aWNsZXNOdW1iZXI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Number/ParticlesNumber.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Opacity/Opacity.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Opacity/Opacity.js ***! + \*******************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Opacity = void 0;\nconst OpacityAnimation_1 = __webpack_require__(/*! ./OpacityAnimation */ \"./node_modules/tsparticles/Options/Classes/Particles/Opacity/OpacityAnimation.js\");\nconst ValueWithRandom_1 = __webpack_require__(/*! ../../ValueWithRandom */ \"./node_modules/tsparticles/Options/Classes/ValueWithRandom.js\");\nconst Utils_1 = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass Opacity extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n this.animation = new OpacityAnimation_1.OpacityAnimation();\n this.random.minimumValue = 0.1;\n this.value = 1;\n }\n get anim() {\n return this.animation;\n }\n set anim(value) {\n this.animation = value;\n }\n load(data) {\n var _a;\n if (!data) {\n return;\n }\n super.load(data);\n const animation = (_a = data.animation) !== null && _a !== void 0 ? _a : data.anim;\n if (animation !== undefined) {\n this.animation.load(animation);\n this.value = (0, Utils_1.setRangeValue)(this.value, this.animation.enable ? this.animation.minimumValue : undefined);\n }\n }\n}\nexports.Opacity = Opacity;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9PcGFjaXR5L09wYWNpdHkuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsZUFBZTtBQUNmLDJCQUEyQixtQkFBTyxDQUFDLDRHQUFvQjtBQUN2RCwwQkFBMEIsbUJBQU8sQ0FBQyw0RkFBdUI7QUFDekQsZ0JBQWdCLG1CQUFPLENBQUMsb0VBQW1CO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvUGFydGljbGVzL09wYWNpdHkvT3BhY2l0eS5qcz81MWE2Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5PcGFjaXR5ID0gdm9pZCAwO1xuY29uc3QgT3BhY2l0eUFuaW1hdGlvbl8xID0gcmVxdWlyZShcIi4vT3BhY2l0eUFuaW1hdGlvblwiKTtcbmNvbnN0IFZhbHVlV2l0aFJhbmRvbV8xID0gcmVxdWlyZShcIi4uLy4uL1ZhbHVlV2l0aFJhbmRvbVwiKTtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vVXRpbHNcIik7XG5jbGFzcyBPcGFjaXR5IGV4dGVuZHMgVmFsdWVXaXRoUmFuZG9tXzEuVmFsdWVXaXRoUmFuZG9tIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5hbmltYXRpb24gPSBuZXcgT3BhY2l0eUFuaW1hdGlvbl8xLk9wYWNpdHlBbmltYXRpb24oKTtcbiAgICAgICAgdGhpcy5yYW5kb20ubWluaW11bVZhbHVlID0gMC4xO1xuICAgICAgICB0aGlzLnZhbHVlID0gMTtcbiAgICB9XG4gICAgZ2V0IGFuaW0oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFuaW1hdGlvbjtcbiAgICB9XG4gICAgc2V0IGFuaW0odmFsdWUpIHtcbiAgICAgICAgdGhpcy5hbmltYXRpb24gPSB2YWx1ZTtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc3VwZXIubG9hZChkYXRhKTtcbiAgICAgICAgY29uc3QgYW5pbWF0aW9uID0gKF9hID0gZGF0YS5hbmltYXRpb24pICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGRhdGEuYW5pbTtcbiAgICAgICAgaWYgKGFuaW1hdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmFuaW1hdGlvbi5sb2FkKGFuaW1hdGlvbik7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gKDAsIFV0aWxzXzEuc2V0UmFuZ2VWYWx1ZSkodGhpcy52YWx1ZSwgdGhpcy5hbmltYXRpb24uZW5hYmxlID8gdGhpcy5hbmltYXRpb24ubWluaW11bVZhbHVlIDogdW5kZWZpbmVkKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuT3BhY2l0eSA9IE9wYWNpdHk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Opacity/Opacity.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Opacity/OpacityAnimation.js": +/*!****************************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Opacity/OpacityAnimation.js ***! + \****************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.OpacityAnimation = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst AnimationOptions_1 = __webpack_require__(/*! ../../AnimationOptions */ \"./node_modules/tsparticles/Options/Classes/AnimationOptions.js\");\nclass OpacityAnimation extends AnimationOptions_1.AnimationOptions {\n constructor() {\n super();\n this.destroy = Enums_1.DestroyType.none;\n this.enable = false;\n this.speed = 2;\n this.startValue = Enums_1.StartValueType.random;\n this.sync = false;\n }\n get opacity_min() {\n return this.minimumValue;\n }\n set opacity_min(value) {\n this.minimumValue = value;\n }\n load(data) {\n var _a;\n if (data === undefined) {\n return;\n }\n super.load(data);\n if (data.destroy !== undefined) {\n this.destroy = data.destroy;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.minimumValue = (_a = data.minimumValue) !== null && _a !== void 0 ? _a : data.opacity_min;\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n if (data.startValue !== undefined) {\n this.startValue = data.startValue;\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\nexports.OpacityAnimation = OpacityAnimation;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9PcGFjaXR5L09wYWNpdHlBbmltYXRpb24uanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsd0JBQXdCO0FBQ3hCLGdCQUFnQixtQkFBTyxDQUFDLG9FQUFtQjtBQUMzQywyQkFBMkIsbUJBQU8sQ0FBQyw4RkFBd0I7QUFDM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvUGFydGljbGVzL09wYWNpdHkvT3BhY2l0eUFuaW1hdGlvbi5qcz8wYThlIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5PcGFjaXR5QW5pbWF0aW9uID0gdm9pZCAwO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuLi8uLi8uLi8uLi9FbnVtc1wiKTtcbmNvbnN0IEFuaW1hdGlvbk9wdGlvbnNfMSA9IHJlcXVpcmUoXCIuLi8uLi9BbmltYXRpb25PcHRpb25zXCIpO1xuY2xhc3MgT3BhY2l0eUFuaW1hdGlvbiBleHRlbmRzIEFuaW1hdGlvbk9wdGlvbnNfMS5BbmltYXRpb25PcHRpb25zIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95ID0gRW51bXNfMS5EZXN0cm95VHlwZS5ub25lO1xuICAgICAgICB0aGlzLmVuYWJsZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNwZWVkID0gMjtcbiAgICAgICAgdGhpcy5zdGFydFZhbHVlID0gRW51bXNfMS5TdGFydFZhbHVlVHlwZS5yYW5kb207XG4gICAgICAgIHRoaXMuc3luYyA9IGZhbHNlO1xuICAgIH1cbiAgICBnZXQgb3BhY2l0eV9taW4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1pbmltdW1WYWx1ZTtcbiAgICB9XG4gICAgc2V0IG9wYWNpdHlfbWluKHZhbHVlKSB7XG4gICAgICAgIHRoaXMubWluaW11bVZhbHVlID0gdmFsdWU7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzdXBlci5sb2FkKGRhdGEpO1xuICAgICAgICBpZiAoZGF0YS5kZXN0cm95ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveSA9IGRhdGEuZGVzdHJveTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5lbmFibGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5lbmFibGUgPSBkYXRhLmVuYWJsZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1pbmltdW1WYWx1ZSA9IChfYSA9IGRhdGEubWluaW11bVZhbHVlKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBkYXRhLm9wYWNpdHlfbWluO1xuICAgICAgICBpZiAoZGF0YS5zcGVlZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnNwZWVkID0gZGF0YS5zcGVlZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5zdGFydFZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnRWYWx1ZSA9IGRhdGEuc3RhcnRWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5zeW5jICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc3luYyA9IGRhdGEuc3luYztcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuT3BhY2l0eUFuaW1hdGlvbiA9IE9wYWNpdHlBbmltYXRpb247XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Opacity/OpacityAnimation.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Orbit/Orbit.js": +/*!***************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Orbit/Orbit.js ***! + \***************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Orbit = void 0;\nconst OrbitRotation_1 = __webpack_require__(/*! ./OrbitRotation */ \"./node_modules/tsparticles/Options/Classes/Particles/Orbit/OrbitRotation.js\");\nconst OptionsColor_1 = __webpack_require__(/*! ../../OptionsColor */ \"./node_modules/tsparticles/Options/Classes/OptionsColor.js\");\nconst AnimationOptions_1 = __webpack_require__(/*! ../../AnimationOptions */ \"./node_modules/tsparticles/Options/Classes/AnimationOptions.js\");\nclass Orbit {\n constructor() {\n this.animation = new AnimationOptions_1.AnimationOptions();\n this.enable = false;\n this.opacity = 1;\n this.rotation = new OrbitRotation_1.OrbitRotation();\n this.width = 1;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n this.animation.load(data.animation);\n this.rotation.load(data.rotation);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n if (data.width !== undefined) {\n this.width = data.width;\n }\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor_1.OptionsColor.create(this.color, data.color);\n }\n }\n}\nexports.Orbit = Orbit;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9PcmJpdC9PcmJpdC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxhQUFhO0FBQ2Isd0JBQXdCLG1CQUFPLENBQUMsb0dBQWlCO0FBQ2pELHVCQUF1QixtQkFBTyxDQUFDLHNGQUFvQjtBQUNuRCwyQkFBMkIsbUJBQU8sQ0FBQyw4RkFBd0I7QUFDM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvUGFydGljbGVzL09yYml0L09yYml0LmpzP2M1MjQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLk9yYml0ID0gdm9pZCAwO1xuY29uc3QgT3JiaXRSb3RhdGlvbl8xID0gcmVxdWlyZShcIi4vT3JiaXRSb3RhdGlvblwiKTtcbmNvbnN0IE9wdGlvbnNDb2xvcl8xID0gcmVxdWlyZShcIi4uLy4uL09wdGlvbnNDb2xvclwiKTtcbmNvbnN0IEFuaW1hdGlvbk9wdGlvbnNfMSA9IHJlcXVpcmUoXCIuLi8uLi9BbmltYXRpb25PcHRpb25zXCIpO1xuY2xhc3MgT3JiaXQge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmFuaW1hdGlvbiA9IG5ldyBBbmltYXRpb25PcHRpb25zXzEuQW5pbWF0aW9uT3B0aW9ucygpO1xuICAgICAgICB0aGlzLmVuYWJsZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLm9wYWNpdHkgPSAxO1xuICAgICAgICB0aGlzLnJvdGF0aW9uID0gbmV3IE9yYml0Um90YXRpb25fMS5PcmJpdFJvdGF0aW9uKCk7XG4gICAgICAgIHRoaXMud2lkdGggPSAxO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYW5pbWF0aW9uLmxvYWQoZGF0YS5hbmltYXRpb24pO1xuICAgICAgICB0aGlzLnJvdGF0aW9uLmxvYWQoZGF0YS5yb3RhdGlvbik7XG4gICAgICAgIGlmIChkYXRhLmVuYWJsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZSA9IGRhdGEuZW5hYmxlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLm9wYWNpdHkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5vcGFjaXR5ID0gZGF0YS5vcGFjaXR5O1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLndpZHRoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMud2lkdGggPSBkYXRhLndpZHRoO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnJhZGl1cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnJhZGl1cyA9IGRhdGEucmFkaXVzO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmNvbG9yICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29sb3IgPSBPcHRpb25zQ29sb3JfMS5PcHRpb25zQ29sb3IuY3JlYXRlKHRoaXMuY29sb3IsIGRhdGEuY29sb3IpO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5PcmJpdCA9IE9yYml0O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Orbit/Orbit.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Orbit/OrbitRotation.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Orbit/OrbitRotation.js ***! + \***********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.OrbitRotation = void 0;\nconst ValueWithRandom_1 = __webpack_require__(/*! ../../ValueWithRandom */ \"./node_modules/tsparticles/Options/Classes/ValueWithRandom.js\");\nclass OrbitRotation extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n this.value = 45;\n this.random.enable = false;\n this.random.minimumValue = 0;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n super.load(data);\n }\n}\nexports.OrbitRotation = OrbitRotation;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9PcmJpdC9PcmJpdFJvdGF0aW9uLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHFCQUFxQjtBQUNyQiwwQkFBMEIsbUJBQU8sQ0FBQyw0RkFBdUI7QUFDekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9PcmJpdC9PcmJpdFJvdGF0aW9uLmpzPzg2ZWUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLk9yYml0Um90YXRpb24gPSB2b2lkIDA7XG5jb25zdCBWYWx1ZVdpdGhSYW5kb21fMSA9IHJlcXVpcmUoXCIuLi8uLi9WYWx1ZVdpdGhSYW5kb21cIik7XG5jbGFzcyBPcmJpdFJvdGF0aW9uIGV4dGVuZHMgVmFsdWVXaXRoUmFuZG9tXzEuVmFsdWVXaXRoUmFuZG9tIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy52YWx1ZSA9IDQ1O1xuICAgICAgICB0aGlzLnJhbmRvbS5lbmFibGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5yYW5kb20ubWluaW11bVZhbHVlID0gMDtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzdXBlci5sb2FkKGRhdGEpO1xuICAgIH1cbn1cbmV4cG9ydHMuT3JiaXRSb3RhdGlvbiA9IE9yYml0Um90YXRpb247XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Orbit/OrbitRotation.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/ParticlesOptions.js": +/*!********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/ParticlesOptions.js ***! + \********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ParticlesOptions = void 0;\nconst Links_1 = __webpack_require__(/*! ./Links/Links */ \"./node_modules/tsparticles/Options/Classes/Particles/Links/Links.js\");\nconst Move_1 = __webpack_require__(/*! ./Move/Move */ \"./node_modules/tsparticles/Options/Classes/Particles/Move/Move.js\");\nconst ParticlesNumber_1 = __webpack_require__(/*! ./Number/ParticlesNumber */ \"./node_modules/tsparticles/Options/Classes/Particles/Number/ParticlesNumber.js\");\nconst Opacity_1 = __webpack_require__(/*! ./Opacity/Opacity */ \"./node_modules/tsparticles/Options/Classes/Particles/Opacity/Opacity.js\");\nconst Shape_1 = __webpack_require__(/*! ./Shape/Shape */ \"./node_modules/tsparticles/Options/Classes/Particles/Shape/Shape.js\");\nconst Size_1 = __webpack_require__(/*! ./Size/Size */ \"./node_modules/tsparticles/Options/Classes/Particles/Size/Size.js\");\nconst Rotate_1 = __webpack_require__(/*! ./Rotate/Rotate */ \"./node_modules/tsparticles/Options/Classes/Particles/Rotate/Rotate.js\");\nconst Shadow_1 = __webpack_require__(/*! ./Shadow */ \"./node_modules/tsparticles/Options/Classes/Particles/Shadow.js\");\nconst Stroke_1 = __webpack_require__(/*! ./Stroke */ \"./node_modules/tsparticles/Options/Classes/Particles/Stroke.js\");\nconst Collisions_1 = __webpack_require__(/*! ./Collisions/Collisions */ \"./node_modules/tsparticles/Options/Classes/Particles/Collisions/Collisions.js\");\nconst Twinkle_1 = __webpack_require__(/*! ./Twinkle/Twinkle */ \"./node_modules/tsparticles/Options/Classes/Particles/Twinkle/Twinkle.js\");\nconst AnimatableColor_1 = __webpack_require__(/*! ../AnimatableColor */ \"./node_modules/tsparticles/Options/Classes/AnimatableColor.js\");\nconst Life_1 = __webpack_require__(/*! ./Life/Life */ \"./node_modules/tsparticles/Options/Classes/Particles/Life/Life.js\");\nconst Bounce_1 = __webpack_require__(/*! ./Bounce/Bounce */ \"./node_modules/tsparticles/Options/Classes/Particles/Bounce/Bounce.js\");\nconst Destroy_1 = __webpack_require__(/*! ./Destroy/Destroy */ \"./node_modules/tsparticles/Options/Classes/Particles/Destroy/Destroy.js\");\nconst Wobble_1 = __webpack_require__(/*! ./Wobble/Wobble */ \"./node_modules/tsparticles/Options/Classes/Particles/Wobble/Wobble.js\");\nconst Tilt_1 = __webpack_require__(/*! ./Tilt/Tilt */ \"./node_modules/tsparticles/Options/Classes/Particles/Tilt/Tilt.js\");\nconst Roll_1 = __webpack_require__(/*! ./Roll/Roll */ \"./node_modules/tsparticles/Options/Classes/Particles/Roll/Roll.js\");\nconst ZIndex_1 = __webpack_require__(/*! ./ZIndex/ZIndex */ \"./node_modules/tsparticles/Options/Classes/Particles/ZIndex/ZIndex.js\");\nconst Utils_1 = __webpack_require__(/*! ../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Orbit_1 = __webpack_require__(/*! ./Orbit/Orbit */ \"./node_modules/tsparticles/Options/Classes/Particles/Orbit/Orbit.js\");\nconst Repulse_1 = __webpack_require__(/*! ./Repulse/Repulse */ \"./node_modules/tsparticles/Options/Classes/Particles/Repulse/Repulse.js\");\nconst AnimatableGradient_1 = __webpack_require__(/*! ../AnimatableGradient */ \"./node_modules/tsparticles/Options/Classes/AnimatableGradient.js\");\nclass ParticlesOptions {\n constructor() {\n this.bounce = new Bounce_1.Bounce();\n this.collisions = new Collisions_1.Collisions();\n this.color = new AnimatableColor_1.AnimatableColor();\n this.destroy = new Destroy_1.Destroy();\n this.gradient = [];\n this.groups = {};\n this.life = new Life_1.Life();\n this.links = new Links_1.Links();\n this.move = new Move_1.Move();\n this.number = new ParticlesNumber_1.ParticlesNumber();\n this.opacity = new Opacity_1.Opacity();\n this.orbit = new Orbit_1.Orbit();\n this.reduceDuplicates = false;\n this.repulse = new Repulse_1.Repulse();\n this.roll = new Roll_1.Roll();\n this.rotate = new Rotate_1.Rotate();\n this.shadow = new Shadow_1.Shadow();\n this.shape = new Shape_1.Shape();\n this.size = new Size_1.Size();\n this.stroke = new Stroke_1.Stroke();\n this.tilt = new Tilt_1.Tilt();\n this.twinkle = new Twinkle_1.Twinkle();\n this.wobble = new Wobble_1.Wobble();\n this.zIndex = new ZIndex_1.ZIndex();\n }\n get line_linked() {\n return this.links;\n }\n set line_linked(value) {\n this.links = value;\n }\n get lineLinked() {\n return this.links;\n }\n set lineLinked(value) {\n this.links = value;\n }\n load(data) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n if (data === undefined) {\n return;\n }\n this.bounce.load(data.bounce);\n this.color.load(AnimatableColor_1.AnimatableColor.create(this.color, data.color));\n this.destroy.load(data.destroy);\n this.life.load(data.life);\n const links = (_b = (_a = data.links) !== null && _a !== void 0 ? _a : data.lineLinked) !== null && _b !== void 0 ? _b : data.line_linked;\n if (links !== undefined) {\n this.links.load(links);\n }\n if (data.groups !== undefined) {\n for (const group in data.groups) {\n const item = data.groups[group];\n if (item !== undefined) {\n this.groups[group] = (0, Utils_1.deepExtend)((_c = this.groups[group]) !== null && _c !== void 0 ? _c : {}, item);\n }\n }\n }\n this.move.load(data.move);\n this.number.load(data.number);\n this.opacity.load(data.opacity);\n this.orbit.load(data.orbit);\n if (data.reduceDuplicates !== undefined) {\n this.reduceDuplicates = data.reduceDuplicates;\n }\n this.repulse.load(data.repulse);\n this.roll.load(data.roll);\n this.rotate.load(data.rotate);\n this.shape.load(data.shape);\n this.size.load(data.size);\n this.shadow.load(data.shadow);\n this.tilt.load(data.tilt);\n this.twinkle.load(data.twinkle);\n this.wobble.load(data.wobble);\n this.zIndex.load(data.zIndex);\n const collisions = (_e = (_d = data.move) === null || _d === void 0 ? void 0 : _d.collisions) !== null && _e !== void 0 ? _e : (_f = data.move) === null || _f === void 0 ? void 0 : _f.bounce;\n if (collisions !== undefined) {\n this.collisions.enable = collisions;\n }\n this.collisions.load(data.collisions);\n const strokeToLoad = (_g = data.stroke) !== null && _g !== void 0 ? _g : (_h = data.shape) === null || _h === void 0 ? void 0 : _h.stroke;\n if (strokeToLoad) {\n if (strokeToLoad instanceof Array) {\n this.stroke = strokeToLoad.map((s) => {\n const tmp = new Stroke_1.Stroke();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.stroke instanceof Array) {\n this.stroke = new Stroke_1.Stroke();\n }\n this.stroke.load(strokeToLoad);\n }\n }\n const gradientToLoad = data.gradient;\n if (gradientToLoad) {\n if (gradientToLoad instanceof Array) {\n this.gradient = gradientToLoad.map((s) => {\n const tmp = new AnimatableGradient_1.AnimatableGradient();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.gradient instanceof Array) {\n this.gradient = new AnimatableGradient_1.AnimatableGradient();\n }\n this.gradient.load(gradientToLoad);\n }\n }\n }\n}\nexports.ParticlesOptions = ParticlesOptions;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9QYXJ0aWNsZXNPcHRpb25zLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHdCQUF3QjtBQUN4QixnQkFBZ0IsbUJBQU8sQ0FBQywwRkFBZTtBQUN2QyxlQUFlLG1CQUFPLENBQUMsc0ZBQWE7QUFDcEMsMEJBQTBCLG1CQUFPLENBQUMsZ0hBQTBCO0FBQzVELGtCQUFrQixtQkFBTyxDQUFDLGtHQUFtQjtBQUM3QyxnQkFBZ0IsbUJBQU8sQ0FBQywwRkFBZTtBQUN2QyxlQUFlLG1CQUFPLENBQUMsc0ZBQWE7QUFDcEMsaUJBQWlCLG1CQUFPLENBQUMsOEZBQWlCO0FBQzFDLGlCQUFpQixtQkFBTyxDQUFDLGdGQUFVO0FBQ25DLGlCQUFpQixtQkFBTyxDQUFDLGdGQUFVO0FBQ25DLHFCQUFxQixtQkFBTyxDQUFDLDhHQUF5QjtBQUN0RCxrQkFBa0IsbUJBQU8sQ0FBQyxrR0FBbUI7QUFDN0MsMEJBQTBCLG1CQUFPLENBQUMseUZBQW9CO0FBQ3RELGVBQWUsbUJBQU8sQ0FBQyxzRkFBYTtBQUNwQyxpQkFBaUIsbUJBQU8sQ0FBQyw4RkFBaUI7QUFDMUMsa0JBQWtCLG1CQUFPLENBQUMsa0dBQW1CO0FBQzdDLGlCQUFpQixtQkFBTyxDQUFDLDhGQUFpQjtBQUMxQyxlQUFlLG1CQUFPLENBQUMsc0ZBQWE7QUFDcEMsZUFBZSxtQkFBTyxDQUFDLHNGQUFhO0FBQ3BDLGlCQUFpQixtQkFBTyxDQUFDLDhGQUFpQjtBQUMxQyxnQkFBZ0IsbUJBQU8sQ0FBQyxpRUFBZ0I7QUFDeEMsZ0JBQWdCLG1CQUFPLENBQUMsMEZBQWU7QUFDdkMsa0JBQWtCLG1CQUFPLENBQUMsa0dBQW1CO0FBQzdDLDZCQUE2QixtQkFBTyxDQUFDLCtGQUF1QjtBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEhBQThIO0FBQzlIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvUGFydGljbGVzL1BhcnRpY2xlc09wdGlvbnMuanM/NGNmZCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuUGFydGljbGVzT3B0aW9ucyA9IHZvaWQgMDtcbmNvbnN0IExpbmtzXzEgPSByZXF1aXJlKFwiLi9MaW5rcy9MaW5rc1wiKTtcbmNvbnN0IE1vdmVfMSA9IHJlcXVpcmUoXCIuL01vdmUvTW92ZVwiKTtcbmNvbnN0IFBhcnRpY2xlc051bWJlcl8xID0gcmVxdWlyZShcIi4vTnVtYmVyL1BhcnRpY2xlc051bWJlclwiKTtcbmNvbnN0IE9wYWNpdHlfMSA9IHJlcXVpcmUoXCIuL09wYWNpdHkvT3BhY2l0eVwiKTtcbmNvbnN0IFNoYXBlXzEgPSByZXF1aXJlKFwiLi9TaGFwZS9TaGFwZVwiKTtcbmNvbnN0IFNpemVfMSA9IHJlcXVpcmUoXCIuL1NpemUvU2l6ZVwiKTtcbmNvbnN0IFJvdGF0ZV8xID0gcmVxdWlyZShcIi4vUm90YXRlL1JvdGF0ZVwiKTtcbmNvbnN0IFNoYWRvd18xID0gcmVxdWlyZShcIi4vU2hhZG93XCIpO1xuY29uc3QgU3Ryb2tlXzEgPSByZXF1aXJlKFwiLi9TdHJva2VcIik7XG5jb25zdCBDb2xsaXNpb25zXzEgPSByZXF1aXJlKFwiLi9Db2xsaXNpb25zL0NvbGxpc2lvbnNcIik7XG5jb25zdCBUd2lua2xlXzEgPSByZXF1aXJlKFwiLi9Ud2lua2xlL1R3aW5rbGVcIik7XG5jb25zdCBBbmltYXRhYmxlQ29sb3JfMSA9IHJlcXVpcmUoXCIuLi9BbmltYXRhYmxlQ29sb3JcIik7XG5jb25zdCBMaWZlXzEgPSByZXF1aXJlKFwiLi9MaWZlL0xpZmVcIik7XG5jb25zdCBCb3VuY2VfMSA9IHJlcXVpcmUoXCIuL0JvdW5jZS9Cb3VuY2VcIik7XG5jb25zdCBEZXN0cm95XzEgPSByZXF1aXJlKFwiLi9EZXN0cm95L0Rlc3Ryb3lcIik7XG5jb25zdCBXb2JibGVfMSA9IHJlcXVpcmUoXCIuL1dvYmJsZS9Xb2JibGVcIik7XG5jb25zdCBUaWx0XzEgPSByZXF1aXJlKFwiLi9UaWx0L1RpbHRcIik7XG5jb25zdCBSb2xsXzEgPSByZXF1aXJlKFwiLi9Sb2xsL1JvbGxcIik7XG5jb25zdCBaSW5kZXhfMSA9IHJlcXVpcmUoXCIuL1pJbmRleC9aSW5kZXhcIik7XG5jb25zdCBVdGlsc18xID0gcmVxdWlyZShcIi4uLy4uLy4uL1V0aWxzXCIpO1xuY29uc3QgT3JiaXRfMSA9IHJlcXVpcmUoXCIuL09yYml0L09yYml0XCIpO1xuY29uc3QgUmVwdWxzZV8xID0gcmVxdWlyZShcIi4vUmVwdWxzZS9SZXB1bHNlXCIpO1xuY29uc3QgQW5pbWF0YWJsZUdyYWRpZW50XzEgPSByZXF1aXJlKFwiLi4vQW5pbWF0YWJsZUdyYWRpZW50XCIpO1xuY2xhc3MgUGFydGljbGVzT3B0aW9ucyB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuYm91bmNlID0gbmV3IEJvdW5jZV8xLkJvdW5jZSgpO1xuICAgICAgICB0aGlzLmNvbGxpc2lvbnMgPSBuZXcgQ29sbGlzaW9uc18xLkNvbGxpc2lvbnMoKTtcbiAgICAgICAgdGhpcy5jb2xvciA9IG5ldyBBbmltYXRhYmxlQ29sb3JfMS5BbmltYXRhYmxlQ29sb3IoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95ID0gbmV3IERlc3Ryb3lfMS5EZXN0cm95KCk7XG4gICAgICAgIHRoaXMuZ3JhZGllbnQgPSBbXTtcbiAgICAgICAgdGhpcy5ncm91cHMgPSB7fTtcbiAgICAgICAgdGhpcy5saWZlID0gbmV3IExpZmVfMS5MaWZlKCk7XG4gICAgICAgIHRoaXMubGlua3MgPSBuZXcgTGlua3NfMS5MaW5rcygpO1xuICAgICAgICB0aGlzLm1vdmUgPSBuZXcgTW92ZV8xLk1vdmUoKTtcbiAgICAgICAgdGhpcy5udW1iZXIgPSBuZXcgUGFydGljbGVzTnVtYmVyXzEuUGFydGljbGVzTnVtYmVyKCk7XG4gICAgICAgIHRoaXMub3BhY2l0eSA9IG5ldyBPcGFjaXR5XzEuT3BhY2l0eSgpO1xuICAgICAgICB0aGlzLm9yYml0ID0gbmV3IE9yYml0XzEuT3JiaXQoKTtcbiAgICAgICAgdGhpcy5yZWR1Y2VEdXBsaWNhdGVzID0gZmFsc2U7XG4gICAgICAgIHRoaXMucmVwdWxzZSA9IG5ldyBSZXB1bHNlXzEuUmVwdWxzZSgpO1xuICAgICAgICB0aGlzLnJvbGwgPSBuZXcgUm9sbF8xLlJvbGwoKTtcbiAgICAgICAgdGhpcy5yb3RhdGUgPSBuZXcgUm90YXRlXzEuUm90YXRlKCk7XG4gICAgICAgIHRoaXMuc2hhZG93ID0gbmV3IFNoYWRvd18xLlNoYWRvdygpO1xuICAgICAgICB0aGlzLnNoYXBlID0gbmV3IFNoYXBlXzEuU2hhcGUoKTtcbiAgICAgICAgdGhpcy5zaXplID0gbmV3IFNpemVfMS5TaXplKCk7XG4gICAgICAgIHRoaXMuc3Ryb2tlID0gbmV3IFN0cm9rZV8xLlN0cm9rZSgpO1xuICAgICAgICB0aGlzLnRpbHQgPSBuZXcgVGlsdF8xLlRpbHQoKTtcbiAgICAgICAgdGhpcy50d2lua2xlID0gbmV3IFR3aW5rbGVfMS5Ud2lua2xlKCk7XG4gICAgICAgIHRoaXMud29iYmxlID0gbmV3IFdvYmJsZV8xLldvYmJsZSgpO1xuICAgICAgICB0aGlzLnpJbmRleCA9IG5ldyBaSW5kZXhfMS5aSW5kZXgoKTtcbiAgICB9XG4gICAgZ2V0IGxpbmVfbGlua2VkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5saW5rcztcbiAgICB9XG4gICAgc2V0IGxpbmVfbGlua2VkKHZhbHVlKSB7XG4gICAgICAgIHRoaXMubGlua3MgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IGxpbmVMaW5rZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxpbmtzO1xuICAgIH1cbiAgICBzZXQgbGluZUxpbmtlZCh2YWx1ZSkge1xuICAgICAgICB0aGlzLmxpbmtzID0gdmFsdWU7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2QsIF9lLCBfZiwgX2csIF9oO1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5ib3VuY2UubG9hZChkYXRhLmJvdW5jZSk7XG4gICAgICAgIHRoaXMuY29sb3IubG9hZChBbmltYXRhYmxlQ29sb3JfMS5BbmltYXRhYmxlQ29sb3IuY3JlYXRlKHRoaXMuY29sb3IsIGRhdGEuY29sb3IpKTtcbiAgICAgICAgdGhpcy5kZXN0cm95LmxvYWQoZGF0YS5kZXN0cm95KTtcbiAgICAgICAgdGhpcy5saWZlLmxvYWQoZGF0YS5saWZlKTtcbiAgICAgICAgY29uc3QgbGlua3MgPSAoX2IgPSAoX2EgPSBkYXRhLmxpbmtzKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBkYXRhLmxpbmVMaW5rZWQpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IGRhdGEubGluZV9saW5rZWQ7XG4gICAgICAgIGlmIChsaW5rcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmxpbmtzLmxvYWQobGlua3MpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmdyb3VwcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGdyb3VwIGluIGRhdGEuZ3JvdXBzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IGRhdGEuZ3JvdXBzW2dyb3VwXTtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXBzW2dyb3VwXSA9ICgwLCBVdGlsc18xLmRlZXBFeHRlbmQpKChfYyA9IHRoaXMuZ3JvdXBzW2dyb3VwXSkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDoge30sIGl0ZW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1vdmUubG9hZChkYXRhLm1vdmUpO1xuICAgICAgICB0aGlzLm51bWJlci5sb2FkKGRhdGEubnVtYmVyKTtcbiAgICAgICAgdGhpcy5vcGFjaXR5LmxvYWQoZGF0YS5vcGFjaXR5KTtcbiAgICAgICAgdGhpcy5vcmJpdC5sb2FkKGRhdGEub3JiaXQpO1xuICAgICAgICBpZiAoZGF0YS5yZWR1Y2VEdXBsaWNhdGVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMucmVkdWNlRHVwbGljYXRlcyA9IGRhdGEucmVkdWNlRHVwbGljYXRlcztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlcHVsc2UubG9hZChkYXRhLnJlcHVsc2UpO1xuICAgICAgICB0aGlzLnJvbGwubG9hZChkYXRhLnJvbGwpO1xuICAgICAgICB0aGlzLnJvdGF0ZS5sb2FkKGRhdGEucm90YXRlKTtcbiAgICAgICAgdGhpcy5zaGFwZS5sb2FkKGRhdGEuc2hhcGUpO1xuICAgICAgICB0aGlzLnNpemUubG9hZChkYXRhLnNpemUpO1xuICAgICAgICB0aGlzLnNoYWRvdy5sb2FkKGRhdGEuc2hhZG93KTtcbiAgICAgICAgdGhpcy50aWx0LmxvYWQoZGF0YS50aWx0KTtcbiAgICAgICAgdGhpcy50d2lua2xlLmxvYWQoZGF0YS50d2lua2xlKTtcbiAgICAgICAgdGhpcy53b2JibGUubG9hZChkYXRhLndvYmJsZSk7XG4gICAgICAgIHRoaXMuekluZGV4LmxvYWQoZGF0YS56SW5kZXgpO1xuICAgICAgICBjb25zdCBjb2xsaXNpb25zID0gKF9lID0gKF9kID0gZGF0YS5tb3ZlKSA9PT0gbnVsbCB8fCBfZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2QuY29sbGlzaW9ucykgIT09IG51bGwgJiYgX2UgIT09IHZvaWQgMCA/IF9lIDogKF9mID0gZGF0YS5tb3ZlKSA9PT0gbnVsbCB8fCBfZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2YuYm91bmNlO1xuICAgICAgICBpZiAoY29sbGlzaW9ucyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbGxpc2lvbnMuZW5hYmxlID0gY29sbGlzaW9ucztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbGxpc2lvbnMubG9hZChkYXRhLmNvbGxpc2lvbnMpO1xuICAgICAgICBjb25zdCBzdHJva2VUb0xvYWQgPSAoX2cgPSBkYXRhLnN0cm9rZSkgIT09IG51bGwgJiYgX2cgIT09IHZvaWQgMCA/IF9nIDogKF9oID0gZGF0YS5zaGFwZSkgPT09IG51bGwgfHwgX2ggPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9oLnN0cm9rZTtcbiAgICAgICAgaWYgKHN0cm9rZVRvTG9hZCkge1xuICAgICAgICAgICAgaWYgKHN0cm9rZVRvTG9hZCBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdHJva2UgPSBzdHJva2VUb0xvYWQubWFwKChzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRtcCA9IG5ldyBTdHJva2VfMS5TdHJva2UoKTtcbiAgICAgICAgICAgICAgICAgICAgdG1wLmxvYWQocyk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0bXA7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zdHJva2UgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0cm9rZSA9IG5ldyBTdHJva2VfMS5TdHJva2UoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5zdHJva2UubG9hZChzdHJva2VUb0xvYWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGdyYWRpZW50VG9Mb2FkID0gZGF0YS5ncmFkaWVudDtcbiAgICAgICAgaWYgKGdyYWRpZW50VG9Mb2FkKSB7XG4gICAgICAgICAgICBpZiAoZ3JhZGllbnRUb0xvYWQgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZ3JhZGllbnQgPSBncmFkaWVudFRvTG9hZC5tYXAoKHMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdG1wID0gbmV3IEFuaW1hdGFibGVHcmFkaWVudF8xLkFuaW1hdGFibGVHcmFkaWVudCgpO1xuICAgICAgICAgICAgICAgICAgICB0bXAubG9hZChzKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRtcDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmdyYWRpZW50IGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ncmFkaWVudCA9IG5ldyBBbmltYXRhYmxlR3JhZGllbnRfMS5BbmltYXRhYmxlR3JhZGllbnQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5ncmFkaWVudC5sb2FkKGdyYWRpZW50VG9Mb2FkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuUGFydGljbGVzT3B0aW9ucyA9IFBhcnRpY2xlc09wdGlvbnM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/ParticlesOptions.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Repulse/Repulse.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Repulse/Repulse.js ***! + \*******************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Repulse = void 0;\nconst ValueWithRandom_1 = __webpack_require__(/*! ../../ValueWithRandom */ \"./node_modules/tsparticles/Options/Classes/ValueWithRandom.js\");\nclass Repulse extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n this.enabled = false;\n this.distance = 1;\n this.duration = 1;\n this.factor = 1;\n this.speed = 1;\n }\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n if (data.enabled !== undefined) {\n this.enabled = data.enabled;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n }\n}\nexports.Repulse = Repulse;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9SZXB1bHNlL1JlcHVsc2UuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsZUFBZTtBQUNmLDBCQUEwQixtQkFBTyxDQUFDLDRGQUF1QjtBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9QYXJ0aWNsZXMvUmVwdWxzZS9SZXB1bHNlLmpzPzExMGYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlJlcHVsc2UgPSB2b2lkIDA7XG5jb25zdCBWYWx1ZVdpdGhSYW5kb21fMSA9IHJlcXVpcmUoXCIuLi8uLi9WYWx1ZVdpdGhSYW5kb21cIik7XG5jbGFzcyBSZXB1bHNlIGV4dGVuZHMgVmFsdWVXaXRoUmFuZG9tXzEuVmFsdWVXaXRoUmFuZG9tIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5lbmFibGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZGlzdGFuY2UgPSAxO1xuICAgICAgICB0aGlzLmR1cmF0aW9uID0gMTtcbiAgICAgICAgdGhpcy5mYWN0b3IgPSAxO1xuICAgICAgICB0aGlzLnNwZWVkID0gMTtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIHN1cGVyLmxvYWQoZGF0YSk7XG4gICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmVuYWJsZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5lbmFibGVkID0gZGF0YS5lbmFibGVkO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmRpc3RhbmNlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzdGFuY2UgPSBkYXRhLmRpc3RhbmNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmR1cmF0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZHVyYXRpb24gPSBkYXRhLmR1cmF0aW9uO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmZhY3RvciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmZhY3RvciA9IGRhdGEuZmFjdG9yO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnNwZWVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc3BlZWQgPSBkYXRhLnNwZWVkO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5SZXB1bHNlID0gUmVwdWxzZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Repulse/Repulse.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Roll/Roll.js": +/*!*************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Roll/Roll.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Roll = void 0;\nconst OptionsColor_1 = __webpack_require__(/*! ../../OptionsColor */ \"./node_modules/tsparticles/Options/Classes/OptionsColor.js\");\nconst RollLight_1 = __webpack_require__(/*! ./RollLight */ \"./node_modules/tsparticles/Options/Classes/Particles/Roll/RollLight.js\");\nconst Utils_1 = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Enums_1 = __webpack_require__(/*! ../../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nclass Roll {\n constructor() {\n this.darken = new RollLight_1.RollLight();\n this.enable = false;\n this.enlighten = new RollLight_1.RollLight();\n this.mode = Enums_1.RollMode.vertical;\n this.speed = 25;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.backColor !== undefined) {\n this.backColor = OptionsColor_1.OptionsColor.create(this.backColor, data.backColor);\n }\n this.darken.load(data.darken);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.enlighten.load(data.enlighten);\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n if (data.speed !== undefined) {\n this.speed = (0, Utils_1.setRangeValue)(data.speed);\n }\n }\n}\nexports.Roll = Roll;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Sb2xsL1JvbGwuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsWUFBWTtBQUNaLHVCQUF1QixtQkFBTyxDQUFDLHNGQUFvQjtBQUNuRCxvQkFBb0IsbUJBQU8sQ0FBQywyRkFBYTtBQUN6QyxnQkFBZ0IsbUJBQU8sQ0FBQyxvRUFBbUI7QUFDM0MsZ0JBQWdCLG1CQUFPLENBQUMsb0VBQW1CO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Sb2xsL1JvbGwuanM/YTIwMCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuUm9sbCA9IHZvaWQgMDtcbmNvbnN0IE9wdGlvbnNDb2xvcl8xID0gcmVxdWlyZShcIi4uLy4uL09wdGlvbnNDb2xvclwiKTtcbmNvbnN0IFJvbGxMaWdodF8xID0gcmVxdWlyZShcIi4vUm9sbExpZ2h0XCIpO1xuY29uc3QgVXRpbHNfMSA9IHJlcXVpcmUoXCIuLi8uLi8uLi8uLi9VdGlsc1wiKTtcbmNvbnN0IEVudW1zXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vRW51bXNcIik7XG5jbGFzcyBSb2xsIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5kYXJrZW4gPSBuZXcgUm9sbExpZ2h0XzEuUm9sbExpZ2h0KCk7XG4gICAgICAgIHRoaXMuZW5hYmxlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZW5saWdodGVuID0gbmV3IFJvbGxMaWdodF8xLlJvbGxMaWdodCgpO1xuICAgICAgICB0aGlzLm1vZGUgPSBFbnVtc18xLlJvbGxNb2RlLnZlcnRpY2FsO1xuICAgICAgICB0aGlzLnNwZWVkID0gMjU7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5iYWNrQ29sb3IgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5iYWNrQ29sb3IgPSBPcHRpb25zQ29sb3JfMS5PcHRpb25zQ29sb3IuY3JlYXRlKHRoaXMuYmFja0NvbG9yLCBkYXRhLmJhY2tDb2xvcik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kYXJrZW4ubG9hZChkYXRhLmRhcmtlbik7XG4gICAgICAgIGlmIChkYXRhLmVuYWJsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZSA9IGRhdGEuZW5hYmxlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZW5saWdodGVuLmxvYWQoZGF0YS5lbmxpZ2h0ZW4pO1xuICAgICAgICBpZiAoZGF0YS5tb2RlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMubW9kZSA9IGRhdGEubW9kZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5zcGVlZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnNwZWVkID0gKDAsIFV0aWxzXzEuc2V0UmFuZ2VWYWx1ZSkoZGF0YS5zcGVlZCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLlJvbGwgPSBSb2xsO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Roll/Roll.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Roll/RollLight.js": +/*!******************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Roll/RollLight.js ***! + \******************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.RollLight = void 0;\nclass RollLight {\n constructor() {\n this.enable = false;\n this.value = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.value !== undefined) {\n this.value = data.value;\n }\n }\n}\nexports.RollLight = RollLight;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Sb2xsL1JvbGxMaWdodC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Sb2xsL1JvbGxMaWdodC5qcz9lYWFmIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Sb2xsTGlnaHQgPSB2b2lkIDA7XG5jbGFzcyBSb2xsTGlnaHQge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmVuYWJsZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnZhbHVlID0gMDtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmVuYWJsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZSA9IGRhdGEuZW5hYmxlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBkYXRhLnZhbHVlO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5Sb2xsTGlnaHQgPSBSb2xsTGlnaHQ7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Roll/RollLight.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Rotate/Rotate.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Rotate/Rotate.js ***! + \*****************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Rotate = void 0;\nconst RotateAnimation_1 = __webpack_require__(/*! ./RotateAnimation */ \"./node_modules/tsparticles/Options/Classes/Particles/Rotate/RotateAnimation.js\");\nconst Enums_1 = __webpack_require__(/*! ../../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst ValueWithRandom_1 = __webpack_require__(/*! ../../ValueWithRandom */ \"./node_modules/tsparticles/Options/Classes/ValueWithRandom.js\");\nclass Rotate extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n this.animation = new RotateAnimation_1.RotateAnimation();\n this.direction = Enums_1.RotateDirection.clockwise;\n this.path = false;\n this.value = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n super.load(data);\n if (data.direction !== undefined) {\n this.direction = data.direction;\n }\n this.animation.load(data.animation);\n if (data.path !== undefined) {\n this.path = data.path;\n }\n }\n}\nexports.Rotate = Rotate;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Sb3RhdGUvUm90YXRlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGNBQWM7QUFDZCwwQkFBMEIsbUJBQU8sQ0FBQyx5R0FBbUI7QUFDckQsZ0JBQWdCLG1CQUFPLENBQUMsb0VBQW1CO0FBQzNDLDBCQUEwQixtQkFBTyxDQUFDLDRGQUF1QjtBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9QYXJ0aWNsZXMvUm90YXRlL1JvdGF0ZS5qcz9kY2ZkIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Sb3RhdGUgPSB2b2lkIDA7XG5jb25zdCBSb3RhdGVBbmltYXRpb25fMSA9IHJlcXVpcmUoXCIuL1JvdGF0ZUFuaW1hdGlvblwiKTtcbmNvbnN0IEVudW1zXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vRW51bXNcIik7XG5jb25zdCBWYWx1ZVdpdGhSYW5kb21fMSA9IHJlcXVpcmUoXCIuLi8uLi9WYWx1ZVdpdGhSYW5kb21cIik7XG5jbGFzcyBSb3RhdGUgZXh0ZW5kcyBWYWx1ZVdpdGhSYW5kb21fMS5WYWx1ZVdpdGhSYW5kb20ge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmFuaW1hdGlvbiA9IG5ldyBSb3RhdGVBbmltYXRpb25fMS5Sb3RhdGVBbmltYXRpb24oKTtcbiAgICAgICAgdGhpcy5kaXJlY3Rpb24gPSBFbnVtc18xLlJvdGF0ZURpcmVjdGlvbi5jbG9ja3dpc2U7XG4gICAgICAgIHRoaXMucGF0aCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnZhbHVlID0gMDtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHN1cGVyLmxvYWQoZGF0YSk7XG4gICAgICAgIGlmIChkYXRhLmRpcmVjdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmRpcmVjdGlvbiA9IGRhdGEuZGlyZWN0aW9uO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYW5pbWF0aW9uLmxvYWQoZGF0YS5hbmltYXRpb24pO1xuICAgICAgICBpZiAoZGF0YS5wYXRoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMucGF0aCA9IGRhdGEucGF0aDtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuUm90YXRlID0gUm90YXRlO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Rotate/Rotate.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Rotate/RotateAnimation.js": +/*!**************************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Rotate/RotateAnimation.js ***! + \**************************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.RotateAnimation = void 0;\nclass RotateAnimation {\n constructor() {\n this.enable = false;\n this.speed = 0;\n this.sync = false;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\nexports.RotateAnimation = RotateAnimation;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Sb3RhdGUvUm90YXRlQW5pbWF0aW9uLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9QYXJ0aWNsZXMvUm90YXRlL1JvdGF0ZUFuaW1hdGlvbi5qcz8xMzVlIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Sb3RhdGVBbmltYXRpb24gPSB2b2lkIDA7XG5jbGFzcyBSb3RhdGVBbmltYXRpb24ge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmVuYWJsZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNwZWVkID0gMDtcbiAgICAgICAgdGhpcy5zeW5jID0gZmFsc2U7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZW5hYmxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlID0gZGF0YS5lbmFibGU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuc3BlZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5zcGVlZCA9IGRhdGEuc3BlZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuc3luYyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnN5bmMgPSBkYXRhLnN5bmM7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLlJvdGF0ZUFuaW1hdGlvbiA9IFJvdGF0ZUFuaW1hdGlvbjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Rotate/RotateAnimation.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Shadow.js": +/*!**********************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Shadow.js ***! + \**********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Shadow = void 0;\nconst OptionsColor_1 = __webpack_require__(/*! ../OptionsColor */ \"./node_modules/tsparticles/Options/Classes/OptionsColor.js\");\nclass Shadow {\n constructor() {\n this.blur = 0;\n this.color = new OptionsColor_1.OptionsColor();\n this.enable = false;\n this.offset = {\n x: 0,\n y: 0,\n };\n this.color.value = \"#000000\";\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.blur !== undefined) {\n this.blur = data.blur;\n }\n this.color = OptionsColor_1.OptionsColor.create(this.color, data.color);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.offset === undefined) {\n return;\n }\n if (data.offset.x !== undefined) {\n this.offset.x = data.offset.x;\n }\n if (data.offset.y !== undefined) {\n this.offset.y = data.offset.y;\n }\n }\n}\nexports.Shadow = Shadow;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9TaGFkb3cuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsY0FBYztBQUNkLHVCQUF1QixtQkFBTyxDQUFDLG1GQUFpQjtBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvUGFydGljbGVzL1NoYWRvdy5qcz80MTQyIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5TaGFkb3cgPSB2b2lkIDA7XG5jb25zdCBPcHRpb25zQ29sb3JfMSA9IHJlcXVpcmUoXCIuLi9PcHRpb25zQ29sb3JcIik7XG5jbGFzcyBTaGFkb3cge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmJsdXIgPSAwO1xuICAgICAgICB0aGlzLmNvbG9yID0gbmV3IE9wdGlvbnNDb2xvcl8xLk9wdGlvbnNDb2xvcigpO1xuICAgICAgICB0aGlzLmVuYWJsZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLm9mZnNldCA9IHtcbiAgICAgICAgICAgIHg6IDAsXG4gICAgICAgICAgICB5OiAwLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmNvbG9yLnZhbHVlID0gXCIjMDAwMDAwXCI7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuYmx1ciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmJsdXIgPSBkYXRhLmJsdXI7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb2xvciA9IE9wdGlvbnNDb2xvcl8xLk9wdGlvbnNDb2xvci5jcmVhdGUodGhpcy5jb2xvciwgZGF0YS5jb2xvcik7XG4gICAgICAgIGlmIChkYXRhLmVuYWJsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZSA9IGRhdGEuZW5hYmxlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLm9mZnNldCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEub2Zmc2V0LnggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5vZmZzZXQueCA9IGRhdGEub2Zmc2V0Lng7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEub2Zmc2V0LnkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5vZmZzZXQueSA9IGRhdGEub2Zmc2V0Lnk7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLlNoYWRvdyA9IFNoYWRvdztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Shadow.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Shape/Shape.js": +/*!***************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Shape/Shape.js ***! + \***************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Shape = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst Utils_1 = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass Shape {\n constructor() {\n this.options = {};\n this.type = Enums_1.ShapeType.circle;\n }\n get image() {\n var _a;\n return ((_a = this.options[Enums_1.ShapeType.image]) !== null && _a !== void 0 ? _a : this.options[Enums_1.ShapeType.images]);\n }\n set image(value) {\n this.options[Enums_1.ShapeType.image] = value;\n this.options[Enums_1.ShapeType.images] = value;\n }\n get custom() {\n return this.options;\n }\n set custom(value) {\n this.options = value;\n }\n get images() {\n return this.image;\n }\n set images(value) {\n this.image = value;\n }\n get stroke() {\n return [];\n }\n set stroke(_value) {\n }\n get character() {\n var _a;\n return ((_a = this.options[Enums_1.ShapeType.character]) !== null && _a !== void 0 ? _a : this.options[Enums_1.ShapeType.char]);\n }\n set character(value) {\n this.options[Enums_1.ShapeType.character] = value;\n this.options[Enums_1.ShapeType.char] = value;\n }\n get polygon() {\n var _a;\n return ((_a = this.options[Enums_1.ShapeType.polygon]) !== null && _a !== void 0 ? _a : this.options[Enums_1.ShapeType.star]);\n }\n set polygon(value) {\n this.options[Enums_1.ShapeType.polygon] = value;\n this.options[Enums_1.ShapeType.star] = value;\n }\n load(data) {\n var _a, _b, _c;\n if (data === undefined) {\n return;\n }\n const options = (_a = data.options) !== null && _a !== void 0 ? _a : data.custom;\n if (options !== undefined) {\n for (const shape in options) {\n const item = options[shape];\n if (item !== undefined) {\n this.options[shape] = (0, Utils_1.deepExtend)((_b = this.options[shape]) !== null && _b !== void 0 ? _b : {}, item);\n }\n }\n }\n this.loadShape(data.character, Enums_1.ShapeType.character, Enums_1.ShapeType.char, true);\n this.loadShape(data.polygon, Enums_1.ShapeType.polygon, Enums_1.ShapeType.star, false);\n this.loadShape((_c = data.image) !== null && _c !== void 0 ? _c : data.images, Enums_1.ShapeType.image, Enums_1.ShapeType.images, true);\n if (data.type !== undefined) {\n this.type = data.type;\n }\n }\n loadShape(item, mainKey, altKey, altOverride) {\n var _a, _b, _c, _d;\n if (item === undefined) {\n return;\n }\n if (item instanceof Array) {\n if (!(this.options[mainKey] instanceof Array)) {\n this.options[mainKey] = [];\n if (!this.options[altKey] || altOverride) {\n this.options[altKey] = [];\n }\n }\n this.options[mainKey] = (0, Utils_1.deepExtend)((_a = this.options[mainKey]) !== null && _a !== void 0 ? _a : [], item);\n if (!this.options[altKey] || altOverride) {\n this.options[altKey] = (0, Utils_1.deepExtend)((_b = this.options[altKey]) !== null && _b !== void 0 ? _b : [], item);\n }\n }\n else {\n if (this.options[mainKey] instanceof Array) {\n this.options[mainKey] = {};\n if (!this.options[altKey] || altOverride) {\n this.options[altKey] = {};\n }\n }\n this.options[mainKey] = (0, Utils_1.deepExtend)((_c = this.options[mainKey]) !== null && _c !== void 0 ? _c : {}, item);\n if (!this.options[altKey] || altOverride) {\n this.options[altKey] = (0, Utils_1.deepExtend)((_d = this.options[altKey]) !== null && _d !== void 0 ? _d : {}, item);\n }\n }\n }\n}\nexports.Shape = Shape;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9TaGFwZS9TaGFwZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxhQUFhO0FBQ2IsZ0JBQWdCLG1CQUFPLENBQUMsb0VBQW1CO0FBQzNDLGdCQUFnQixtQkFBTyxDQUFDLG9FQUFtQjtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0lBQWdJO0FBQ2hJO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEhBQTRIO0FBQzVIO0FBQ0EsOEhBQThIO0FBQzlIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9TaGFwZS9TaGFwZS5qcz82NzMzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5TaGFwZSA9IHZvaWQgMDtcbmNvbnN0IEVudW1zXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vRW51bXNcIik7XG5jb25zdCBVdGlsc18xID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL1V0aWxzXCIpO1xuY2xhc3MgU2hhcGUge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSB7fTtcbiAgICAgICAgdGhpcy50eXBlID0gRW51bXNfMS5TaGFwZVR5cGUuY2lyY2xlO1xuICAgIH1cbiAgICBnZXQgaW1hZ2UoKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgcmV0dXJuICgoX2EgPSB0aGlzLm9wdGlvbnNbRW51bXNfMS5TaGFwZVR5cGUuaW1hZ2VdKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB0aGlzLm9wdGlvbnNbRW51bXNfMS5TaGFwZVR5cGUuaW1hZ2VzXSk7XG4gICAgfVxuICAgIHNldCBpbWFnZSh2YWx1ZSkge1xuICAgICAgICB0aGlzLm9wdGlvbnNbRW51bXNfMS5TaGFwZVR5cGUuaW1hZ2VdID0gdmFsdWU7XG4gICAgICAgIHRoaXMub3B0aW9uc1tFbnVtc18xLlNoYXBlVHlwZS5pbWFnZXNdID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBjdXN0b20oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnM7XG4gICAgfVxuICAgIHNldCBjdXN0b20odmFsdWUpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBpbWFnZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmltYWdlO1xuICAgIH1cbiAgICBzZXQgaW1hZ2VzKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuaW1hZ2UgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IHN0cm9rZSgpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICBzZXQgc3Ryb2tlKF92YWx1ZSkge1xuICAgIH1cbiAgICBnZXQgY2hhcmFjdGVyKCkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIHJldHVybiAoKF9hID0gdGhpcy5vcHRpb25zW0VudW1zXzEuU2hhcGVUeXBlLmNoYXJhY3Rlcl0pICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IHRoaXMub3B0aW9uc1tFbnVtc18xLlNoYXBlVHlwZS5jaGFyXSk7XG4gICAgfVxuICAgIHNldCBjaGFyYWN0ZXIodmFsdWUpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zW0VudW1zXzEuU2hhcGVUeXBlLmNoYXJhY3Rlcl0gPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5vcHRpb25zW0VudW1zXzEuU2hhcGVUeXBlLmNoYXJdID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBwb2x5Z29uKCkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIHJldHVybiAoKF9hID0gdGhpcy5vcHRpb25zW0VudW1zXzEuU2hhcGVUeXBlLnBvbHlnb25dKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB0aGlzLm9wdGlvbnNbRW51bXNfMS5TaGFwZVR5cGUuc3Rhcl0pO1xuICAgIH1cbiAgICBzZXQgcG9seWdvbih2YWx1ZSkge1xuICAgICAgICB0aGlzLm9wdGlvbnNbRW51bXNfMS5TaGFwZVR5cGUucG9seWdvbl0gPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5vcHRpb25zW0VudW1zXzEuU2hhcGVUeXBlLnN0YXJdID0gdmFsdWU7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSAoX2EgPSBkYXRhLm9wdGlvbnMpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGRhdGEuY3VzdG9tO1xuICAgICAgICBpZiAob3B0aW9ucyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHNoYXBlIGluIG9wdGlvbnMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtID0gb3B0aW9uc1tzaGFwZV07XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnNbc2hhcGVdID0gKDAsIFV0aWxzXzEuZGVlcEV4dGVuZCkoKF9iID0gdGhpcy5vcHRpb25zW3NoYXBlXSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDoge30sIGl0ZW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxvYWRTaGFwZShkYXRhLmNoYXJhY3RlciwgRW51bXNfMS5TaGFwZVR5cGUuY2hhcmFjdGVyLCBFbnVtc18xLlNoYXBlVHlwZS5jaGFyLCB0cnVlKTtcbiAgICAgICAgdGhpcy5sb2FkU2hhcGUoZGF0YS5wb2x5Z29uLCBFbnVtc18xLlNoYXBlVHlwZS5wb2x5Z29uLCBFbnVtc18xLlNoYXBlVHlwZS5zdGFyLCBmYWxzZSk7XG4gICAgICAgIHRoaXMubG9hZFNoYXBlKChfYyA9IGRhdGEuaW1hZ2UpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IGRhdGEuaW1hZ2VzLCBFbnVtc18xLlNoYXBlVHlwZS5pbWFnZSwgRW51bXNfMS5TaGFwZVR5cGUuaW1hZ2VzLCB0cnVlKTtcbiAgICAgICAgaWYgKGRhdGEudHlwZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBkYXRhLnR5cGU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbG9hZFNoYXBlKGl0ZW0sIG1haW5LZXksIGFsdEtleSwgYWx0T3ZlcnJpZGUpIHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kO1xuICAgICAgICBpZiAoaXRlbSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGl0ZW0gaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgaWYgKCEodGhpcy5vcHRpb25zW21haW5LZXldIGluc3RhbmNlb2YgQXJyYXkpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zW21haW5LZXldID0gW107XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLm9wdGlvbnNbYWx0S2V5XSB8fCBhbHRPdmVycmlkZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnNbYWx0S2V5XSA9IFtdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMub3B0aW9uc1ttYWluS2V5XSA9ICgwLCBVdGlsc18xLmRlZXBFeHRlbmQpKChfYSA9IHRoaXMub3B0aW9uc1ttYWluS2V5XSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogW10sIGl0ZW0pO1xuICAgICAgICAgICAgaWYgKCF0aGlzLm9wdGlvbnNbYWx0S2V5XSB8fCBhbHRPdmVycmlkZSkge1xuICAgICAgICAgICAgICAgIHRoaXMub3B0aW9uc1thbHRLZXldID0gKDAsIFV0aWxzXzEuZGVlcEV4dGVuZCkoKF9iID0gdGhpcy5vcHRpb25zW2FsdEtleV0pICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IFtdLCBpdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnNbbWFpbktleV0gaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgICAgIHRoaXMub3B0aW9uc1ttYWluS2V5XSA9IHt9O1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5vcHRpb25zW2FsdEtleV0gfHwgYWx0T3ZlcnJpZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zW2FsdEtleV0gPSB7fTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnNbbWFpbktleV0gPSAoMCwgVXRpbHNfMS5kZWVwRXh0ZW5kKSgoX2MgPSB0aGlzLm9wdGlvbnNbbWFpbktleV0pICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IHt9LCBpdGVtKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5vcHRpb25zW2FsdEtleV0gfHwgYWx0T3ZlcnJpZGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnNbYWx0S2V5XSA9ICgwLCBVdGlsc18xLmRlZXBFeHRlbmQpKChfZCA9IHRoaXMub3B0aW9uc1thbHRLZXldKSAhPT0gbnVsbCAmJiBfZCAhPT0gdm9pZCAwID8gX2QgOiB7fSwgaXRlbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLlNoYXBlID0gU2hhcGU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Shape/Shape.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Size/Size.js": +/*!*************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Size/Size.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Size = void 0;\nconst SizeAnimation_1 = __webpack_require__(/*! ./SizeAnimation */ \"./node_modules/tsparticles/Options/Classes/Particles/Size/SizeAnimation.js\");\nconst ValueWithRandom_1 = __webpack_require__(/*! ../../ValueWithRandom */ \"./node_modules/tsparticles/Options/Classes/ValueWithRandom.js\");\nconst Utils_1 = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass Size extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n this.animation = new SizeAnimation_1.SizeAnimation();\n this.random.minimumValue = 1;\n this.value = 3;\n }\n get anim() {\n return this.animation;\n }\n set anim(value) {\n this.animation = value;\n }\n load(data) {\n var _a;\n if (!data) {\n return;\n }\n super.load(data);\n const animation = (_a = data.animation) !== null && _a !== void 0 ? _a : data.anim;\n if (animation !== undefined) {\n this.animation.load(animation);\n this.value = (0, Utils_1.setRangeValue)(this.value, this.animation.enable ? this.animation.minimumValue : undefined);\n }\n }\n}\nexports.Size = Size;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9TaXplL1NpemUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsWUFBWTtBQUNaLHdCQUF3QixtQkFBTyxDQUFDLG1HQUFpQjtBQUNqRCwwQkFBMEIsbUJBQU8sQ0FBQyw0RkFBdUI7QUFDekQsZ0JBQWdCLG1CQUFPLENBQUMsb0VBQW1CO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvUGFydGljbGVzL1NpemUvU2l6ZS5qcz9iZDg4Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5TaXplID0gdm9pZCAwO1xuY29uc3QgU2l6ZUFuaW1hdGlvbl8xID0gcmVxdWlyZShcIi4vU2l6ZUFuaW1hdGlvblwiKTtcbmNvbnN0IFZhbHVlV2l0aFJhbmRvbV8xID0gcmVxdWlyZShcIi4uLy4uL1ZhbHVlV2l0aFJhbmRvbVwiKTtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vVXRpbHNcIik7XG5jbGFzcyBTaXplIGV4dGVuZHMgVmFsdWVXaXRoUmFuZG9tXzEuVmFsdWVXaXRoUmFuZG9tIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5hbmltYXRpb24gPSBuZXcgU2l6ZUFuaW1hdGlvbl8xLlNpemVBbmltYXRpb24oKTtcbiAgICAgICAgdGhpcy5yYW5kb20ubWluaW11bVZhbHVlID0gMTtcbiAgICAgICAgdGhpcy52YWx1ZSA9IDM7XG4gICAgfVxuICAgIGdldCBhbmltKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5hbmltYXRpb247XG4gICAgfVxuICAgIHNldCBhbmltKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuYW5pbWF0aW9uID0gdmFsdWU7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHN1cGVyLmxvYWQoZGF0YSk7XG4gICAgICAgIGNvbnN0IGFuaW1hdGlvbiA9IChfYSA9IGRhdGEuYW5pbWF0aW9uKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBkYXRhLmFuaW07XG4gICAgICAgIGlmIChhbmltYXRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5hbmltYXRpb24ubG9hZChhbmltYXRpb24pO1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9ICgwLCBVdGlsc18xLnNldFJhbmdlVmFsdWUpKHRoaXMudmFsdWUsIHRoaXMuYW5pbWF0aW9uLmVuYWJsZSA/IHRoaXMuYW5pbWF0aW9uLm1pbmltdW1WYWx1ZSA6IHVuZGVmaW5lZCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLlNpemUgPSBTaXplO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Size/Size.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Size/SizeAnimation.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Size/SizeAnimation.js ***! + \**********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.SizeAnimation = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst AnimationOptions_1 = __webpack_require__(/*! ../../AnimationOptions */ \"./node_modules/tsparticles/Options/Classes/AnimationOptions.js\");\nclass SizeAnimation extends AnimationOptions_1.AnimationOptions {\n constructor() {\n super();\n this.destroy = Enums_1.DestroyType.none;\n this.enable = false;\n this.speed = 5;\n this.startValue = Enums_1.StartValueType.random;\n this.sync = false;\n }\n get size_min() {\n return this.minimumValue;\n }\n set size_min(value) {\n this.minimumValue = value;\n }\n load(data) {\n var _a;\n if (data === undefined) {\n return;\n }\n super.load(data);\n if (data.destroy !== undefined) {\n this.destroy = data.destroy;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.minimumValue = (_a = data.minimumValue) !== null && _a !== void 0 ? _a : data.size_min;\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n if (data.startValue !== undefined) {\n this.startValue = data.startValue;\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\nexports.SizeAnimation = SizeAnimation;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9TaXplL1NpemVBbmltYXRpb24uanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QscUJBQXFCO0FBQ3JCLGdCQUFnQixtQkFBTyxDQUFDLG9FQUFtQjtBQUMzQywyQkFBMkIsbUJBQU8sQ0FBQyw4RkFBd0I7QUFDM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvUGFydGljbGVzL1NpemUvU2l6ZUFuaW1hdGlvbi5qcz82ODg0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5TaXplQW5pbWF0aW9uID0gdm9pZCAwO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuLi8uLi8uLi8uLi9FbnVtc1wiKTtcbmNvbnN0IEFuaW1hdGlvbk9wdGlvbnNfMSA9IHJlcXVpcmUoXCIuLi8uLi9BbmltYXRpb25PcHRpb25zXCIpO1xuY2xhc3MgU2l6ZUFuaW1hdGlvbiBleHRlbmRzIEFuaW1hdGlvbk9wdGlvbnNfMS5BbmltYXRpb25PcHRpb25zIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95ID0gRW51bXNfMS5EZXN0cm95VHlwZS5ub25lO1xuICAgICAgICB0aGlzLmVuYWJsZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNwZWVkID0gNTtcbiAgICAgICAgdGhpcy5zdGFydFZhbHVlID0gRW51bXNfMS5TdGFydFZhbHVlVHlwZS5yYW5kb207XG4gICAgICAgIHRoaXMuc3luYyA9IGZhbHNlO1xuICAgIH1cbiAgICBnZXQgc2l6ZV9taW4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1pbmltdW1WYWx1ZTtcbiAgICB9XG4gICAgc2V0IHNpemVfbWluKHZhbHVlKSB7XG4gICAgICAgIHRoaXMubWluaW11bVZhbHVlID0gdmFsdWU7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzdXBlci5sb2FkKGRhdGEpO1xuICAgICAgICBpZiAoZGF0YS5kZXN0cm95ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveSA9IGRhdGEuZGVzdHJveTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5lbmFibGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5lbmFibGUgPSBkYXRhLmVuYWJsZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1pbmltdW1WYWx1ZSA9IChfYSA9IGRhdGEubWluaW11bVZhbHVlKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBkYXRhLnNpemVfbWluO1xuICAgICAgICBpZiAoZGF0YS5zcGVlZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnNwZWVkID0gZGF0YS5zcGVlZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5zdGFydFZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnRWYWx1ZSA9IGRhdGEuc3RhcnRWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5zeW5jICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc3luYyA9IGRhdGEuc3luYztcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuU2l6ZUFuaW1hdGlvbiA9IFNpemVBbmltYXRpb247XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Size/SizeAnimation.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Stroke.js": +/*!**********************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Stroke.js ***! + \**********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Stroke = void 0;\nconst AnimatableColor_1 = __webpack_require__(/*! ../AnimatableColor */ \"./node_modules/tsparticles/Options/Classes/AnimatableColor.js\");\nclass Stroke {\n constructor() {\n this.width = 0;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.color !== undefined) {\n this.color = AnimatableColor_1.AnimatableColor.create(this.color, data.color);\n }\n if (data.width !== undefined) {\n this.width = data.width;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\nexports.Stroke = Stroke;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9TdHJva2UuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsY0FBYztBQUNkLDBCQUEwQixtQkFBTyxDQUFDLHlGQUFvQjtBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9QYXJ0aWNsZXMvU3Ryb2tlLmpzPzIzMTAiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlN0cm9rZSA9IHZvaWQgMDtcbmNvbnN0IEFuaW1hdGFibGVDb2xvcl8xID0gcmVxdWlyZShcIi4uL0FuaW1hdGFibGVDb2xvclwiKTtcbmNsYXNzIFN0cm9rZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMud2lkdGggPSAwO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmNvbG9yICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29sb3IgPSBBbmltYXRhYmxlQ29sb3JfMS5BbmltYXRhYmxlQ29sb3IuY3JlYXRlKHRoaXMuY29sb3IsIGRhdGEuY29sb3IpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLndpZHRoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMud2lkdGggPSBkYXRhLndpZHRoO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLm9wYWNpdHkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5vcGFjaXR5ID0gZGF0YS5vcGFjaXR5O1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5TdHJva2UgPSBTdHJva2U7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Stroke.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Tilt/Tilt.js": +/*!*************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Tilt/Tilt.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Tilt = void 0;\nconst TiltAnimation_1 = __webpack_require__(/*! ./TiltAnimation */ \"./node_modules/tsparticles/Options/Classes/Particles/Tilt/TiltAnimation.js\");\nconst Enums_1 = __webpack_require__(/*! ../../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst ValueWithRandom_1 = __webpack_require__(/*! ../../ValueWithRandom */ \"./node_modules/tsparticles/Options/Classes/ValueWithRandom.js\");\nclass Tilt extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n this.animation = new TiltAnimation_1.TiltAnimation();\n this.direction = Enums_1.TiltDirection.clockwise;\n this.enable = false;\n this.value = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n super.load(data);\n this.animation.load(data.animation);\n if (data.direction !== undefined) {\n this.direction = data.direction;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n }\n}\nexports.Tilt = Tilt;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9UaWx0L1RpbHQuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsWUFBWTtBQUNaLHdCQUF3QixtQkFBTyxDQUFDLG1HQUFpQjtBQUNqRCxnQkFBZ0IsbUJBQU8sQ0FBQyxvRUFBbUI7QUFDM0MsMEJBQTBCLG1CQUFPLENBQUMsNEZBQXVCO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9UaWx0L1RpbHQuanM/NjhiMiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuVGlsdCA9IHZvaWQgMDtcbmNvbnN0IFRpbHRBbmltYXRpb25fMSA9IHJlcXVpcmUoXCIuL1RpbHRBbmltYXRpb25cIik7XG5jb25zdCBFbnVtc18xID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL0VudW1zXCIpO1xuY29uc3QgVmFsdWVXaXRoUmFuZG9tXzEgPSByZXF1aXJlKFwiLi4vLi4vVmFsdWVXaXRoUmFuZG9tXCIpO1xuY2xhc3MgVGlsdCBleHRlbmRzIFZhbHVlV2l0aFJhbmRvbV8xLlZhbHVlV2l0aFJhbmRvbSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuYW5pbWF0aW9uID0gbmV3IFRpbHRBbmltYXRpb25fMS5UaWx0QW5pbWF0aW9uKCk7XG4gICAgICAgIHRoaXMuZGlyZWN0aW9uID0gRW51bXNfMS5UaWx0RGlyZWN0aW9uLmNsb2Nrd2lzZTtcbiAgICAgICAgdGhpcy5lbmFibGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy52YWx1ZSA9IDA7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzdXBlci5sb2FkKGRhdGEpO1xuICAgICAgICB0aGlzLmFuaW1hdGlvbi5sb2FkKGRhdGEuYW5pbWF0aW9uKTtcbiAgICAgICAgaWYgKGRhdGEuZGlyZWN0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZGlyZWN0aW9uID0gZGF0YS5kaXJlY3Rpb247XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZW5hYmxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlID0gZGF0YS5lbmFibGU7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLlRpbHQgPSBUaWx0O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Tilt/Tilt.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Tilt/TiltAnimation.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Tilt/TiltAnimation.js ***! + \**********************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.TiltAnimation = void 0;\nclass TiltAnimation {\n constructor() {\n this.enable = false;\n this.speed = 0;\n this.sync = false;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\nexports.TiltAnimation = TiltAnimation;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9UaWx0L1RpbHRBbmltYXRpb24uanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9UaWx0L1RpbHRBbmltYXRpb24uanM/YWVlMyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuVGlsdEFuaW1hdGlvbiA9IHZvaWQgMDtcbmNsYXNzIFRpbHRBbmltYXRpb24ge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmVuYWJsZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNwZWVkID0gMDtcbiAgICAgICAgdGhpcy5zeW5jID0gZmFsc2U7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZW5hYmxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlID0gZGF0YS5lbmFibGU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuc3BlZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5zcGVlZCA9IGRhdGEuc3BlZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuc3luYyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnN5bmMgPSBkYXRhLnN5bmM7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLlRpbHRBbmltYXRpb24gPSBUaWx0QW5pbWF0aW9uO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Tilt/TiltAnimation.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Twinkle/Twinkle.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Twinkle/Twinkle.js ***! + \*******************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Twinkle = void 0;\nconst TwinkleValues_1 = __webpack_require__(/*! ./TwinkleValues */ \"./node_modules/tsparticles/Options/Classes/Particles/Twinkle/TwinkleValues.js\");\nclass Twinkle {\n constructor() {\n this.lines = new TwinkleValues_1.TwinkleValues();\n this.particles = new TwinkleValues_1.TwinkleValues();\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n this.lines.load(data.lines);\n this.particles.load(data.particles);\n }\n}\nexports.Twinkle = Twinkle;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Ud2lua2xlL1R3aW5rbGUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsZUFBZTtBQUNmLHdCQUF3QixtQkFBTyxDQUFDLHNHQUFpQjtBQUNqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9QYXJ0aWNsZXMvVHdpbmtsZS9Ud2lua2xlLmpzPzAyY2YiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlR3aW5rbGUgPSB2b2lkIDA7XG5jb25zdCBUd2lua2xlVmFsdWVzXzEgPSByZXF1aXJlKFwiLi9Ud2lua2xlVmFsdWVzXCIpO1xuY2xhc3MgVHdpbmtsZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMubGluZXMgPSBuZXcgVHdpbmtsZVZhbHVlc18xLlR3aW5rbGVWYWx1ZXMoKTtcbiAgICAgICAgdGhpcy5wYXJ0aWNsZXMgPSBuZXcgVHdpbmtsZVZhbHVlc18xLlR3aW5rbGVWYWx1ZXMoKTtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxpbmVzLmxvYWQoZGF0YS5saW5lcyk7XG4gICAgICAgIHRoaXMucGFydGljbGVzLmxvYWQoZGF0YS5wYXJ0aWNsZXMpO1xuICAgIH1cbn1cbmV4cG9ydHMuVHdpbmtsZSA9IFR3aW5rbGU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Twinkle/Twinkle.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Twinkle/TwinkleValues.js": +/*!*************************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Twinkle/TwinkleValues.js ***! + \*************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.TwinkleValues = void 0;\nconst OptionsColor_1 = __webpack_require__(/*! ../../OptionsColor */ \"./node_modules/tsparticles/Options/Classes/OptionsColor.js\");\nclass TwinkleValues {\n constructor() {\n this.enable = false;\n this.frequency = 0.05;\n this.opacity = 1;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor_1.OptionsColor.create(this.color, data.color);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.frequency !== undefined) {\n this.frequency = data.frequency;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\nexports.TwinkleValues = TwinkleValues;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Ud2lua2xlL1R3aW5rbGVWYWx1ZXMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QscUJBQXFCO0FBQ3JCLHVCQUF1QixtQkFBTyxDQUFDLHNGQUFvQjtBQUNuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9QYXJ0aWNsZXMvVHdpbmtsZS9Ud2lua2xlVmFsdWVzLmpzP2U4ZDkiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlR3aW5rbGVWYWx1ZXMgPSB2b2lkIDA7XG5jb25zdCBPcHRpb25zQ29sb3JfMSA9IHJlcXVpcmUoXCIuLi8uLi9PcHRpb25zQ29sb3JcIik7XG5jbGFzcyBUd2lua2xlVmFsdWVzIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5lbmFibGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5mcmVxdWVuY3kgPSAwLjA1O1xuICAgICAgICB0aGlzLm9wYWNpdHkgPSAxO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmNvbG9yICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29sb3IgPSBPcHRpb25zQ29sb3JfMS5PcHRpb25zQ29sb3IuY3JlYXRlKHRoaXMuY29sb3IsIGRhdGEuY29sb3IpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmVuYWJsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZSA9IGRhdGEuZW5hYmxlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmZyZXF1ZW5jeSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmZyZXF1ZW5jeSA9IGRhdGEuZnJlcXVlbmN5O1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLm9wYWNpdHkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5vcGFjaXR5ID0gZGF0YS5vcGFjaXR5O1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5Ud2lua2xlVmFsdWVzID0gVHdpbmtsZVZhbHVlcztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Twinkle/TwinkleValues.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Wobble/Wobble.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Wobble/Wobble.js ***! + \*****************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Wobble = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass Wobble {\n constructor() {\n this.distance = 5;\n this.enable = false;\n this.speed = 50;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = (0, Utils_1.setRangeValue)(data.distance);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = (0, Utils_1.setRangeValue)(data.speed);\n }\n }\n}\nexports.Wobble = Wobble;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Xb2JibGUvV29iYmxlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGNBQWM7QUFDZCxnQkFBZ0IsbUJBQU8sQ0FBQyxvRUFBbUI7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Xb2JibGUvV29iYmxlLmpzPzUzZjUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLldvYmJsZSA9IHZvaWQgMDtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vVXRpbHNcIik7XG5jbGFzcyBXb2JibGUge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmRpc3RhbmNlID0gNTtcbiAgICAgICAgdGhpcy5lbmFibGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zcGVlZCA9IDUwO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZGlzdGFuY2UgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5kaXN0YW5jZSA9ICgwLCBVdGlsc18xLnNldFJhbmdlVmFsdWUpKGRhdGEuZGlzdGFuY2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmVuYWJsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZSA9IGRhdGEuZW5hYmxlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnNwZWVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc3BlZWQgPSAoMCwgVXRpbHNfMS5zZXRSYW5nZVZhbHVlKShkYXRhLnNwZWVkKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuV29iYmxlID0gV29iYmxlO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Wobble/Wobble.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/ZIndex/ZIndex.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/ZIndex/ZIndex.js ***! + \*****************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ZIndex = void 0;\nconst ValueWithRandom_1 = __webpack_require__(/*! ../../ValueWithRandom */ \"./node_modules/tsparticles/Options/Classes/ValueWithRandom.js\");\nclass ZIndex extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n this.opacityRate = 1;\n this.sizeRate = 1;\n this.velocityRate = 1;\n }\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n if (data.opacityRate !== undefined) {\n this.opacityRate = data.opacityRate;\n }\n if (data.sizeRate !== undefined) {\n this.sizeRate = data.sizeRate;\n }\n if (data.velocityRate !== undefined) {\n this.velocityRate = data.velocityRate;\n }\n }\n}\nexports.ZIndex = ZIndex;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9aSW5kZXgvWkluZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGNBQWM7QUFDZCwwQkFBMEIsbUJBQU8sQ0FBQyw0RkFBdUI7QUFDekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9QYXJ0aWNsZXMvWkluZGV4L1pJbmRleC5qcz85NTlkIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5aSW5kZXggPSB2b2lkIDA7XG5jb25zdCBWYWx1ZVdpdGhSYW5kb21fMSA9IHJlcXVpcmUoXCIuLi8uLi9WYWx1ZVdpdGhSYW5kb21cIik7XG5jbGFzcyBaSW5kZXggZXh0ZW5kcyBWYWx1ZVdpdGhSYW5kb21fMS5WYWx1ZVdpdGhSYW5kb20ge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLm9wYWNpdHlSYXRlID0gMTtcbiAgICAgICAgdGhpcy5zaXplUmF0ZSA9IDE7XG4gICAgICAgIHRoaXMudmVsb2NpdHlSYXRlID0gMTtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIHN1cGVyLmxvYWQoZGF0YSk7XG4gICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLm9wYWNpdHlSYXRlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMub3BhY2l0eVJhdGUgPSBkYXRhLm9wYWNpdHlSYXRlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnNpemVSYXRlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2l6ZVJhdGUgPSBkYXRhLnNpemVSYXRlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnZlbG9jaXR5UmF0ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnZlbG9jaXR5UmF0ZSA9IGRhdGEudmVsb2NpdHlSYXRlO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5aSW5kZXggPSBaSW5kZXg7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/ZIndex/ZIndex.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Random.js": +/*!************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Random.js ***! + \************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Random = void 0;\nclass Random {\n constructor() {\n this.enable = false;\n this.minimumValue = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.minimumValue !== undefined) {\n this.minimumValue = data.minimumValue;\n }\n }\n}\nexports.Random = Random;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1JhbmRvbS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9SYW5kb20uanM/MWU4YiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuUmFuZG9tID0gdm9pZCAwO1xuY2xhc3MgUmFuZG9tIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5lbmFibGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5taW5pbXVtVmFsdWUgPSAwO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZW5hYmxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlID0gZGF0YS5lbmFibGU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEubWluaW11bVZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMubWluaW11bVZhbHVlID0gZGF0YS5taW5pbXVtVmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLlJhbmRvbSA9IFJhbmRvbTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Random.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Responsive.js": +/*!****************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Responsive.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Responsive = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Enums_1 = __webpack_require__(/*! ../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nclass Responsive {\n constructor() {\n this.maxWidth = Infinity;\n this.options = {};\n this.mode = Enums_1.ResponsiveMode.canvas;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.maxWidth !== undefined) {\n this.maxWidth = data.maxWidth;\n }\n if (data.mode !== undefined) {\n if (data.mode === Enums_1.ResponsiveMode.screen) {\n this.mode = Enums_1.ResponsiveMode.screen;\n }\n else {\n this.mode = Enums_1.ResponsiveMode.canvas;\n }\n }\n if (data.options !== undefined) {\n this.options = (0, Utils_1.deepExtend)({}, data.options);\n }\n }\n}\nexports.Responsive = Responsive;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1Jlc3BvbnNpdmUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsa0JBQWtCO0FBQ2xCLGdCQUFnQixtQkFBTyxDQUFDLDhEQUFhO0FBQ3JDLGdCQUFnQixtQkFBTyxDQUFDLDhEQUFhO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscURBQXFEO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1Jlc3BvbnNpdmUuanM/ODViMyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuUmVzcG9uc2l2ZSA9IHZvaWQgMDtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vVXRpbHNcIik7XG5jb25zdCBFbnVtc18xID0gcmVxdWlyZShcIi4uLy4uL0VudW1zXCIpO1xuY2xhc3MgUmVzcG9uc2l2ZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMubWF4V2lkdGggPSBJbmZpbml0eTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0ge307XG4gICAgICAgIHRoaXMubW9kZSA9IEVudW1zXzEuUmVzcG9uc2l2ZU1vZGUuY2FudmFzO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEubWF4V2lkdGggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5tYXhXaWR0aCA9IGRhdGEubWF4V2lkdGg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEubW9kZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBpZiAoZGF0YS5tb2RlID09PSBFbnVtc18xLlJlc3BvbnNpdmVNb2RlLnNjcmVlbikge1xuICAgICAgICAgICAgICAgIHRoaXMubW9kZSA9IEVudW1zXzEuUmVzcG9uc2l2ZU1vZGUuc2NyZWVuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tb2RlID0gRW51bXNfMS5SZXNwb25zaXZlTW9kZS5jYW52YXM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEub3B0aW9ucyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMgPSAoMCwgVXRpbHNfMS5kZWVwRXh0ZW5kKSh7fSwgZGF0YS5vcHRpb25zKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuUmVzcG9uc2l2ZSA9IFJlc3BvbnNpdmU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Responsive.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Theme/Theme.js": +/*!*****************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Theme/Theme.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Theme = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst ThemeDefault_1 = __webpack_require__(/*! ./ThemeDefault */ \"./node_modules/tsparticles/Options/Classes/Theme/ThemeDefault.js\");\nclass Theme {\n constructor() {\n this.name = \"\";\n this.default = new ThemeDefault_1.ThemeDefault();\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.name !== undefined) {\n this.name = data.name;\n }\n this.default.load(data.default);\n if (data.options !== undefined) {\n this.options = (0, Utils_1.deepExtend)({}, data.options);\n }\n }\n}\nexports.Theme = Theme;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1RoZW1lL1RoZW1lLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGFBQWE7QUFDYixnQkFBZ0IsbUJBQU8sQ0FBQyxpRUFBZ0I7QUFDeEMsdUJBQXVCLG1CQUFPLENBQUMsd0ZBQWdCO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxREFBcUQ7QUFDckQ7QUFDQTtBQUNBO0FBQ0EsYUFBYSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1RoZW1lL1RoZW1lLmpzPzYwYzciXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlRoZW1lID0gdm9pZCAwO1xuY29uc3QgVXRpbHNfMSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9VdGlsc1wiKTtcbmNvbnN0IFRoZW1lRGVmYXVsdF8xID0gcmVxdWlyZShcIi4vVGhlbWVEZWZhdWx0XCIpO1xuY2xhc3MgVGhlbWUge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLm5hbWUgPSBcIlwiO1xuICAgICAgICB0aGlzLmRlZmF1bHQgPSBuZXcgVGhlbWVEZWZhdWx0XzEuVGhlbWVEZWZhdWx0KCk7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEubmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLm5hbWUgPSBkYXRhLm5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kZWZhdWx0LmxvYWQoZGF0YS5kZWZhdWx0KTtcbiAgICAgICAgaWYgKGRhdGEub3B0aW9ucyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMgPSAoMCwgVXRpbHNfMS5kZWVwRXh0ZW5kKSh7fSwgZGF0YS5vcHRpb25zKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuVGhlbWUgPSBUaGVtZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Theme/Theme.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Theme/ThemeDefault.js": +/*!************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Theme/ThemeDefault.js ***! + \************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ThemeDefault = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nclass ThemeDefault {\n constructor() {\n this.auto = false;\n this.mode = Enums_1.ThemeMode.any;\n this.value = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.auto !== undefined) {\n this.auto = data.auto;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n if (data.value !== undefined) {\n this.value = data.value;\n }\n }\n}\nexports.ThemeDefault = ThemeDefault;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1RoZW1lL1RoZW1lRGVmYXVsdC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxvQkFBb0I7QUFDcEIsZ0JBQWdCLG1CQUFPLENBQUMsaUVBQWdCO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1RoZW1lL1RoZW1lRGVmYXVsdC5qcz9iMGRhIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5UaGVtZURlZmF1bHQgPSB2b2lkIDA7XG5jb25zdCBFbnVtc18xID0gcmVxdWlyZShcIi4uLy4uLy4uL0VudW1zXCIpO1xuY2xhc3MgVGhlbWVEZWZhdWx0IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5hdXRvID0gZmFsc2U7XG4gICAgICAgIHRoaXMubW9kZSA9IEVudW1zXzEuVGhlbWVNb2RlLmFueTtcbiAgICAgICAgdGhpcy52YWx1ZSA9IGZhbHNlO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuYXV0byAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmF1dG8gPSBkYXRhLmF1dG87XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEubW9kZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLm1vZGUgPSBkYXRhLm1vZGU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEudmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IGRhdGEudmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLlRoZW1lRGVmYXVsdCA9IFRoZW1lRGVmYXVsdDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Theme/ThemeDefault.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/ValueWithRandom.js": +/*!*********************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/ValueWithRandom.js ***! + \*********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ValueWithRandom = void 0;\nconst Random_1 = __webpack_require__(/*! ./Random */ \"./node_modules/tsparticles/Options/Classes/Random.js\");\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass ValueWithRandom {\n constructor() {\n this.random = new Random_1.Random();\n this.value = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (typeof data.random === \"boolean\") {\n this.random.enable = data.random;\n }\n else {\n this.random.load(data.random);\n }\n if (data.value !== undefined) {\n this.value = (0, Utils_1.setRangeValue)(data.value, this.random.enable ? this.random.minimumValue : undefined);\n }\n }\n}\nexports.ValueWithRandom = ValueWithRandom;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1ZhbHVlV2l0aFJhbmRvbS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCx1QkFBdUI7QUFDdkIsaUJBQWlCLG1CQUFPLENBQUMsc0VBQVU7QUFDbkMsZ0JBQWdCLG1CQUFPLENBQUMsOERBQWE7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1ZhbHVlV2l0aFJhbmRvbS5qcz8xMDg0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5WYWx1ZVdpdGhSYW5kb20gPSB2b2lkIDA7XG5jb25zdCBSYW5kb21fMSA9IHJlcXVpcmUoXCIuL1JhbmRvbVwiKTtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vVXRpbHNcIik7XG5jbGFzcyBWYWx1ZVdpdGhSYW5kb20ge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnJhbmRvbSA9IG5ldyBSYW5kb21fMS5SYW5kb20oKTtcbiAgICAgICAgdGhpcy52YWx1ZSA9IDA7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIGRhdGEucmFuZG9tID09PSBcImJvb2xlYW5cIikge1xuICAgICAgICAgICAgdGhpcy5yYW5kb20uZW5hYmxlID0gZGF0YS5yYW5kb207XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJhbmRvbS5sb2FkKGRhdGEucmFuZG9tKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gKDAsIFV0aWxzXzEuc2V0UmFuZ2VWYWx1ZSkoZGF0YS52YWx1ZSwgdGhpcy5yYW5kb20uZW5hYmxlID8gdGhpcy5yYW5kb20ubWluaW11bVZhbHVlIDogdW5kZWZpbmVkKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuVmFsdWVXaXRoUmFuZG9tID0gVmFsdWVXaXRoUmFuZG9tO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/ValueWithRandom.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/Absorbers/AbsorberInstance.js": +/*!************************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/Absorbers/AbsorberInstance.js ***! + \************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.AbsorberInstance = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Vector_1 = __webpack_require__(/*! ../../Core/Particle/Vector */ \"./node_modules/tsparticles/Core/Particle/Vector.js\");\nconst Enums_1 = __webpack_require__(/*! ../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nclass AbsorberInstance {\n constructor(absorbers, container, options, position) {\n var _a, _b, _c, _d, _e;\n this.absorbers = absorbers;\n this.container = container;\n this.initialPosition = position ? Vector_1.Vector.create(position.x, position.y) : undefined;\n this.options = options;\n this.dragging = false;\n this.name = this.options.name;\n this.opacity = this.options.opacity;\n this.size = (0, Utils_1.getRangeValue)(options.size.value) * container.retina.pixelRatio;\n this.mass = this.size * options.size.density * container.retina.reduceFactor;\n const limit = options.size.limit;\n this.limit =\n typeof limit === \"number\"\n ? {\n radius: limit * container.retina.pixelRatio * container.retina.reduceFactor,\n mass: 0,\n }\n : {\n radius: ((_a = limit === null || limit === void 0 ? void 0 : limit.radius) !== null && _a !== void 0 ? _a : 0) * container.retina.pixelRatio * container.retina.reduceFactor,\n mass: (_b = limit === null || limit === void 0 ? void 0 : limit.mass) !== null && _b !== void 0 ? _b : 0,\n };\n const color = typeof options.color === \"string\" ? { value: options.color } : options.color;\n this.color = (_c = (0, Utils_1.colorToRgb)(color)) !== null && _c !== void 0 ? _c : {\n b: 0,\n g: 0,\n r: 0,\n };\n this.position = (_e = (_d = this.initialPosition) === null || _d === void 0 ? void 0 : _d.copy()) !== null && _e !== void 0 ? _e : this.calcPosition();\n }\n attract(particle) {\n const container = this.container;\n const options = this.options;\n if (options.draggable) {\n const mouse = container.interactivity.mouse;\n if (mouse.clicking && mouse.downPosition) {\n const mouseDist = (0, Utils_1.getDistance)(this.position, mouse.downPosition);\n if (mouseDist <= this.size) {\n this.dragging = true;\n }\n }\n else {\n this.dragging = false;\n }\n if (this.dragging && mouse.position) {\n this.position.x = mouse.position.x;\n this.position.y = mouse.position.y;\n }\n }\n const pos = particle.getPosition();\n const { dx, dy, distance } = (0, Utils_1.getDistances)(this.position, pos);\n const v = Vector_1.Vector.create(dx, dy);\n v.length = (this.mass / Math.pow(distance, 2)) * container.retina.reduceFactor;\n if (distance < this.size + particle.getRadius()) {\n const sizeFactor = particle.getRadius() * 0.033 * container.retina.pixelRatio;\n if ((this.size > particle.getRadius() && distance < this.size - particle.getRadius()) ||\n (particle.absorberOrbit !== undefined && particle.absorberOrbit.length < 0)) {\n if (options.destroy) {\n particle.destroy();\n }\n else {\n particle.needsNewPosition = true;\n this.updateParticlePosition(particle, v);\n }\n }\n else {\n if (options.destroy) {\n particle.size.value -= sizeFactor;\n }\n this.updateParticlePosition(particle, v);\n }\n if (this.limit.radius <= 0 || this.size < this.limit.radius) {\n this.size += sizeFactor;\n }\n if (this.limit.mass <= 0 || this.mass < this.limit.mass) {\n this.mass += sizeFactor * this.options.size.density * container.retina.reduceFactor;\n }\n }\n else {\n this.updateParticlePosition(particle, v);\n }\n }\n resize() {\n const initialPosition = this.initialPosition;\n this.position =\n initialPosition && (0, Utils_1.isPointInside)(initialPosition, this.container.canvas.size)\n ? initialPosition\n : this.calcPosition();\n }\n draw(context) {\n context.translate(this.position.x, this.position.y);\n context.beginPath();\n context.arc(0, 0, this.size, 0, Math.PI * 2, false);\n context.closePath();\n context.fillStyle = (0, Utils_1.getStyleFromRgb)(this.color, this.opacity);\n context.fill();\n }\n calcPosition() {\n var _a, _b;\n const container = this.container;\n const percentPosition = this.options.position;\n return Vector_1.Vector.create((((_a = percentPosition === null || percentPosition === void 0 ? void 0 : percentPosition.x) !== null && _a !== void 0 ? _a : Math.random() * 100) / 100) * container.canvas.size.width, (((_b = percentPosition === null || percentPosition === void 0 ? void 0 : percentPosition.y) !== null && _b !== void 0 ? _b : Math.random() * 100) / 100) * container.canvas.size.height);\n }\n updateParticlePosition(particle, v) {\n var _a;\n if (particle.destroyed) {\n return;\n }\n const container = this.container;\n const canvasSize = container.canvas.size;\n if (particle.needsNewPosition) {\n particle.position.x = Math.floor(Math.random() * canvasSize.width);\n particle.position.y = Math.floor(Math.random() * canvasSize.height);\n particle.velocity.setTo(particle.initialVelocity);\n particle.absorberOrbit = undefined;\n particle.needsNewPosition = false;\n }\n if (this.options.orbits) {\n if (particle.absorberOrbit === undefined) {\n particle.absorberOrbit = Vector_1.Vector.create(0, 0);\n particle.absorberOrbit.length = (0, Utils_1.getDistance)(particle.getPosition(), this.position);\n particle.absorberOrbit.angle = Math.random() * Math.PI * 2;\n }\n if (particle.absorberOrbit.length <= this.size && !this.options.destroy) {\n const minSize = Math.min(canvasSize.width, canvasSize.height);\n particle.absorberOrbit.length = minSize * (1 + (Math.random() * 0.2 - 0.1));\n }\n if (particle.absorberOrbitDirection === undefined) {\n particle.absorberOrbitDirection =\n particle.velocity.x >= 0 ? Enums_1.RotateDirection.clockwise : Enums_1.RotateDirection.counterClockwise;\n }\n const orbitRadius = particle.absorberOrbit.length;\n const orbitAngle = particle.absorberOrbit.angle;\n const orbitDirection = particle.absorberOrbitDirection;\n particle.velocity.x = 0;\n particle.velocity.y = 0;\n const updateFunc = {\n x: orbitDirection === Enums_1.RotateDirection.clockwise ? Math.cos : Math.sin,\n y: orbitDirection === Enums_1.RotateDirection.clockwise ? Math.sin : Math.cos,\n };\n particle.position.x = this.position.x + orbitRadius * updateFunc.x(orbitAngle);\n particle.position.y = this.position.y + orbitRadius * updateFunc.y(orbitAngle);\n particle.absorberOrbit.length -= v.length;\n particle.absorberOrbit.angle +=\n ((((_a = particle.retina.moveSpeed) !== null && _a !== void 0 ? _a : 0) * container.retina.pixelRatio) / 100) *\n container.retina.reduceFactor;\n }\n else {\n const addV = Vector_1.Vector.origin;\n addV.length = v.length;\n addV.angle = v.angle;\n particle.velocity.addTo(addV);\n }\n }\n}\nexports.AbsorberInstance = AbsorberInstance;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9BYnNvcmJlcnMvQWJzb3JiZXJJbnN0YW5jZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCx3QkFBd0I7QUFDeEIsZ0JBQWdCLG1CQUFPLENBQUMsOERBQWE7QUFDckMsaUJBQWlCLG1CQUFPLENBQUMsc0ZBQTRCO0FBQ3JELGdCQUFnQixtQkFBTyxDQUFDLDhEQUFhO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0REFBNEQsdUJBQXVCO0FBQ25GO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixtQkFBbUI7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9BYnNvcmJlcnMvQWJzb3JiZXJJbnN0YW5jZS5qcz9kY2FhIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5BYnNvcmJlckluc3RhbmNlID0gdm9pZCAwO1xuY29uc3QgVXRpbHNfMSA9IHJlcXVpcmUoXCIuLi8uLi9VdGlsc1wiKTtcbmNvbnN0IFZlY3Rvcl8xID0gcmVxdWlyZShcIi4uLy4uL0NvcmUvUGFydGljbGUvVmVjdG9yXCIpO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuLi8uLi9FbnVtc1wiKTtcbmNsYXNzIEFic29yYmVySW5zdGFuY2Uge1xuICAgIGNvbnN0cnVjdG9yKGFic29yYmVycywgY29udGFpbmVyLCBvcHRpb25zLCBwb3NpdGlvbikge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2QsIF9lO1xuICAgICAgICB0aGlzLmFic29yYmVycyA9IGFic29yYmVycztcbiAgICAgICAgdGhpcy5jb250YWluZXIgPSBjb250YWluZXI7XG4gICAgICAgIHRoaXMuaW5pdGlhbFBvc2l0aW9uID0gcG9zaXRpb24gPyBWZWN0b3JfMS5WZWN0b3IuY3JlYXRlKHBvc2l0aW9uLngsIHBvc2l0aW9uLnkpIDogdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgICAgICB0aGlzLmRyYWdnaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMubmFtZSA9IHRoaXMub3B0aW9ucy5uYW1lO1xuICAgICAgICB0aGlzLm9wYWNpdHkgPSB0aGlzLm9wdGlvbnMub3BhY2l0eTtcbiAgICAgICAgdGhpcy5zaXplID0gKDAsIFV0aWxzXzEuZ2V0UmFuZ2VWYWx1ZSkob3B0aW9ucy5zaXplLnZhbHVlKSAqIGNvbnRhaW5lci5yZXRpbmEucGl4ZWxSYXRpbztcbiAgICAgICAgdGhpcy5tYXNzID0gdGhpcy5zaXplICogb3B0aW9ucy5zaXplLmRlbnNpdHkgKiBjb250YWluZXIucmV0aW5hLnJlZHVjZUZhY3RvcjtcbiAgICAgICAgY29uc3QgbGltaXQgPSBvcHRpb25zLnNpemUubGltaXQ7XG4gICAgICAgIHRoaXMubGltaXQgPVxuICAgICAgICAgICAgdHlwZW9mIGxpbWl0ID09PSBcIm51bWJlclwiXG4gICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgIHJhZGl1czogbGltaXQgKiBjb250YWluZXIucmV0aW5hLnBpeGVsUmF0aW8gKiBjb250YWluZXIucmV0aW5hLnJlZHVjZUZhY3RvcixcbiAgICAgICAgICAgICAgICAgICAgbWFzczogMCxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICAgIHJhZGl1czogKChfYSA9IGxpbWl0ID09PSBudWxsIHx8IGxpbWl0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBsaW1pdC5yYWRpdXMpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IDApICogY29udGFpbmVyLnJldGluYS5waXhlbFJhdGlvICogY29udGFpbmVyLnJldGluYS5yZWR1Y2VGYWN0b3IsXG4gICAgICAgICAgICAgICAgICAgIG1hc3M6IChfYiA9IGxpbWl0ID09PSBudWxsIHx8IGxpbWl0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBsaW1pdC5tYXNzKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiAwLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgIGNvbnN0IGNvbG9yID0gdHlwZW9mIG9wdGlvbnMuY29sb3IgPT09IFwic3RyaW5nXCIgPyB7IHZhbHVlOiBvcHRpb25zLmNvbG9yIH0gOiBvcHRpb25zLmNvbG9yO1xuICAgICAgICB0aGlzLmNvbG9yID0gKF9jID0gKDAsIFV0aWxzXzEuY29sb3JUb1JnYikoY29sb3IpKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiB7XG4gICAgICAgICAgICBiOiAwLFxuICAgICAgICAgICAgZzogMCxcbiAgICAgICAgICAgIHI6IDAsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMucG9zaXRpb24gPSAoX2UgPSAoX2QgPSB0aGlzLmluaXRpYWxQb3NpdGlvbikgPT09IG51bGwgfHwgX2QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9kLmNvcHkoKSkgIT09IG51bGwgJiYgX2UgIT09IHZvaWQgMCA/IF9lIDogdGhpcy5jYWxjUG9zaXRpb24oKTtcbiAgICB9XG4gICAgYXR0cmFjdChwYXJ0aWNsZSkge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgICAgICAgaWYgKG9wdGlvbnMuZHJhZ2dhYmxlKSB7XG4gICAgICAgICAgICBjb25zdCBtb3VzZSA9IGNvbnRhaW5lci5pbnRlcmFjdGl2aXR5Lm1vdXNlO1xuICAgICAgICAgICAgaWYgKG1vdXNlLmNsaWNraW5nICYmIG1vdXNlLmRvd25Qb3NpdGlvbikge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1vdXNlRGlzdCA9ICgwLCBVdGlsc18xLmdldERpc3RhbmNlKSh0aGlzLnBvc2l0aW9uLCBtb3VzZS5kb3duUG9zaXRpb24pO1xuICAgICAgICAgICAgICAgIGlmIChtb3VzZURpc3QgPD0gdGhpcy5zaXplKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHJhZ2dpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuZHJhZ2dpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLmRyYWdnaW5nICYmIG1vdXNlLnBvc2l0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbi54ID0gbW91c2UucG9zaXRpb24ueDtcbiAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uLnkgPSBtb3VzZS5wb3NpdGlvbi55O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBvcyA9IHBhcnRpY2xlLmdldFBvc2l0aW9uKCk7XG4gICAgICAgIGNvbnN0IHsgZHgsIGR5LCBkaXN0YW5jZSB9ID0gKDAsIFV0aWxzXzEuZ2V0RGlzdGFuY2VzKSh0aGlzLnBvc2l0aW9uLCBwb3MpO1xuICAgICAgICBjb25zdCB2ID0gVmVjdG9yXzEuVmVjdG9yLmNyZWF0ZShkeCwgZHkpO1xuICAgICAgICB2Lmxlbmd0aCA9ICh0aGlzLm1hc3MgLyBNYXRoLnBvdyhkaXN0YW5jZSwgMikpICogY29udGFpbmVyLnJldGluYS5yZWR1Y2VGYWN0b3I7XG4gICAgICAgIGlmIChkaXN0YW5jZSA8IHRoaXMuc2l6ZSArIHBhcnRpY2xlLmdldFJhZGl1cygpKSB7XG4gICAgICAgICAgICBjb25zdCBzaXplRmFjdG9yID0gcGFydGljbGUuZ2V0UmFkaXVzKCkgKiAwLjAzMyAqIGNvbnRhaW5lci5yZXRpbmEucGl4ZWxSYXRpbztcbiAgICAgICAgICAgIGlmICgodGhpcy5zaXplID4gcGFydGljbGUuZ2V0UmFkaXVzKCkgJiYgZGlzdGFuY2UgPCB0aGlzLnNpemUgLSBwYXJ0aWNsZS5nZXRSYWRpdXMoKSkgfHxcbiAgICAgICAgICAgICAgICAocGFydGljbGUuYWJzb3JiZXJPcmJpdCAhPT0gdW5kZWZpbmVkICYmIHBhcnRpY2xlLmFic29yYmVyT3JiaXQubGVuZ3RoIDwgMCkpIHtcbiAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5kZXN0cm95KSB7XG4gICAgICAgICAgICAgICAgICAgIHBhcnRpY2xlLmRlc3Ryb3koKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHBhcnRpY2xlLm5lZWRzTmV3UG9zaXRpb24gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVBhcnRpY2xlUG9zaXRpb24ocGFydGljbGUsIHYpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLmRlc3Ryb3kpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFydGljbGUuc2l6ZS52YWx1ZSAtPSBzaXplRmFjdG9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVBhcnRpY2xlUG9zaXRpb24ocGFydGljbGUsIHYpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMubGltaXQucmFkaXVzIDw9IDAgfHwgdGhpcy5zaXplIDwgdGhpcy5saW1pdC5yYWRpdXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNpemUgKz0gc2l6ZUZhY3RvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLmxpbWl0Lm1hc3MgPD0gMCB8fCB0aGlzLm1hc3MgPCB0aGlzLmxpbWl0Lm1hc3MpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1hc3MgKz0gc2l6ZUZhY3RvciAqIHRoaXMub3B0aW9ucy5zaXplLmRlbnNpdHkgKiBjb250YWluZXIucmV0aW5hLnJlZHVjZUZhY3RvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUGFydGljbGVQb3NpdGlvbihwYXJ0aWNsZSwgdik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmVzaXplKCkge1xuICAgICAgICBjb25zdCBpbml0aWFsUG9zaXRpb24gPSB0aGlzLmluaXRpYWxQb3NpdGlvbjtcbiAgICAgICAgdGhpcy5wb3NpdGlvbiA9XG4gICAgICAgICAgICBpbml0aWFsUG9zaXRpb24gJiYgKDAsIFV0aWxzXzEuaXNQb2ludEluc2lkZSkoaW5pdGlhbFBvc2l0aW9uLCB0aGlzLmNvbnRhaW5lci5jYW52YXMuc2l6ZSlcbiAgICAgICAgICAgICAgICA/IGluaXRpYWxQb3NpdGlvblxuICAgICAgICAgICAgICAgIDogdGhpcy5jYWxjUG9zaXRpb24oKTtcbiAgICB9XG4gICAgZHJhdyhjb250ZXh0KSB7XG4gICAgICAgIGNvbnRleHQudHJhbnNsYXRlKHRoaXMucG9zaXRpb24ueCwgdGhpcy5wb3NpdGlvbi55KTtcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcbiAgICAgICAgY29udGV4dC5hcmMoMCwgMCwgdGhpcy5zaXplLCAwLCBNYXRoLlBJICogMiwgZmFsc2UpO1xuICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xuICAgICAgICBjb250ZXh0LmZpbGxTdHlsZSA9ICgwLCBVdGlsc18xLmdldFN0eWxlRnJvbVJnYikodGhpcy5jb2xvciwgdGhpcy5vcGFjaXR5KTtcbiAgICAgICAgY29udGV4dC5maWxsKCk7XG4gICAgfVxuICAgIGNhbGNQb3NpdGlvbigpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXI7XG4gICAgICAgIGNvbnN0IHBlcmNlbnRQb3NpdGlvbiA9IHRoaXMub3B0aW9ucy5wb3NpdGlvbjtcbiAgICAgICAgcmV0dXJuIFZlY3Rvcl8xLlZlY3Rvci5jcmVhdGUoKCgoX2EgPSBwZXJjZW50UG9zaXRpb24gPT09IG51bGwgfHwgcGVyY2VudFBvc2l0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwZXJjZW50UG9zaXRpb24ueCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogTWF0aC5yYW5kb20oKSAqIDEwMCkgLyAxMDApICogY29udGFpbmVyLmNhbnZhcy5zaXplLndpZHRoLCAoKChfYiA9IHBlcmNlbnRQb3NpdGlvbiA9PT0gbnVsbCB8fCBwZXJjZW50UG9zaXRpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBlcmNlbnRQb3NpdGlvbi55KSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBNYXRoLnJhbmRvbSgpICogMTAwKSAvIDEwMCkgKiBjb250YWluZXIuY2FudmFzLnNpemUuaGVpZ2h0KTtcbiAgICB9XG4gICAgdXBkYXRlUGFydGljbGVQb3NpdGlvbihwYXJ0aWNsZSwgdikge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmIChwYXJ0aWNsZS5kZXN0cm95ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgY29uc3QgY2FudmFzU2l6ZSA9IGNvbnRhaW5lci5jYW52YXMuc2l6ZTtcbiAgICAgICAgaWYgKHBhcnRpY2xlLm5lZWRzTmV3UG9zaXRpb24pIHtcbiAgICAgICAgICAgIHBhcnRpY2xlLnBvc2l0aW9uLnggPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjYW52YXNTaXplLndpZHRoKTtcbiAgICAgICAgICAgIHBhcnRpY2xlLnBvc2l0aW9uLnkgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjYW52YXNTaXplLmhlaWdodCk7XG4gICAgICAgICAgICBwYXJ0aWNsZS52ZWxvY2l0eS5zZXRUbyhwYXJ0aWNsZS5pbml0aWFsVmVsb2NpdHkpO1xuICAgICAgICAgICAgcGFydGljbGUuYWJzb3JiZXJPcmJpdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHBhcnRpY2xlLm5lZWRzTmV3UG9zaXRpb24gPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLm9yYml0cykge1xuICAgICAgICAgICAgaWYgKHBhcnRpY2xlLmFic29yYmVyT3JiaXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHBhcnRpY2xlLmFic29yYmVyT3JiaXQgPSBWZWN0b3JfMS5WZWN0b3IuY3JlYXRlKDAsIDApO1xuICAgICAgICAgICAgICAgIHBhcnRpY2xlLmFic29yYmVyT3JiaXQubGVuZ3RoID0gKDAsIFV0aWxzXzEuZ2V0RGlzdGFuY2UpKHBhcnRpY2xlLmdldFBvc2l0aW9uKCksIHRoaXMucG9zaXRpb24pO1xuICAgICAgICAgICAgICAgIHBhcnRpY2xlLmFic29yYmVyT3JiaXQuYW5nbGUgPSBNYXRoLnJhbmRvbSgpICogTWF0aC5QSSAqIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocGFydGljbGUuYWJzb3JiZXJPcmJpdC5sZW5ndGggPD0gdGhpcy5zaXplICYmICF0aGlzLm9wdGlvbnMuZGVzdHJveSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1pblNpemUgPSBNYXRoLm1pbihjYW52YXNTaXplLndpZHRoLCBjYW52YXNTaXplLmhlaWdodCk7XG4gICAgICAgICAgICAgICAgcGFydGljbGUuYWJzb3JiZXJPcmJpdC5sZW5ndGggPSBtaW5TaXplICogKDEgKyAoTWF0aC5yYW5kb20oKSAqIDAuMiAtIDAuMSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHBhcnRpY2xlLmFic29yYmVyT3JiaXREaXJlY3Rpb24gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHBhcnRpY2xlLmFic29yYmVyT3JiaXREaXJlY3Rpb24gPVxuICAgICAgICAgICAgICAgICAgICBwYXJ0aWNsZS52ZWxvY2l0eS54ID49IDAgPyBFbnVtc18xLlJvdGF0ZURpcmVjdGlvbi5jbG9ja3dpc2UgOiBFbnVtc18xLlJvdGF0ZURpcmVjdGlvbi5jb3VudGVyQ2xvY2t3aXNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgb3JiaXRSYWRpdXMgPSBwYXJ0aWNsZS5hYnNvcmJlck9yYml0Lmxlbmd0aDtcbiAgICAgICAgICAgIGNvbnN0IG9yYml0QW5nbGUgPSBwYXJ0aWNsZS5hYnNvcmJlck9yYml0LmFuZ2xlO1xuICAgICAgICAgICAgY29uc3Qgb3JiaXREaXJlY3Rpb24gPSBwYXJ0aWNsZS5hYnNvcmJlck9yYml0RGlyZWN0aW9uO1xuICAgICAgICAgICAgcGFydGljbGUudmVsb2NpdHkueCA9IDA7XG4gICAgICAgICAgICBwYXJ0aWNsZS52ZWxvY2l0eS55ID0gMDtcbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZUZ1bmMgPSB7XG4gICAgICAgICAgICAgICAgeDogb3JiaXREaXJlY3Rpb24gPT09IEVudW1zXzEuUm90YXRlRGlyZWN0aW9uLmNsb2Nrd2lzZSA/IE1hdGguY29zIDogTWF0aC5zaW4sXG4gICAgICAgICAgICAgICAgeTogb3JiaXREaXJlY3Rpb24gPT09IEVudW1zXzEuUm90YXRlRGlyZWN0aW9uLmNsb2Nrd2lzZSA/IE1hdGguc2luIDogTWF0aC5jb3MsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcGFydGljbGUucG9zaXRpb24ueCA9IHRoaXMucG9zaXRpb24ueCArIG9yYml0UmFkaXVzICogdXBkYXRlRnVuYy54KG9yYml0QW5nbGUpO1xuICAgICAgICAgICAgcGFydGljbGUucG9zaXRpb24ueSA9IHRoaXMucG9zaXRpb24ueSArIG9yYml0UmFkaXVzICogdXBkYXRlRnVuYy55KG9yYml0QW5nbGUpO1xuICAgICAgICAgICAgcGFydGljbGUuYWJzb3JiZXJPcmJpdC5sZW5ndGggLT0gdi5sZW5ndGg7XG4gICAgICAgICAgICBwYXJ0aWNsZS5hYnNvcmJlck9yYml0LmFuZ2xlICs9XG4gICAgICAgICAgICAgICAgKCgoKF9hID0gcGFydGljbGUucmV0aW5hLm1vdmVTcGVlZCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogMCkgKiBjb250YWluZXIucmV0aW5hLnBpeGVsUmF0aW8pIC8gMTAwKSAqXG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lci5yZXRpbmEucmVkdWNlRmFjdG9yO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgYWRkViA9IFZlY3Rvcl8xLlZlY3Rvci5vcmlnaW47XG4gICAgICAgICAgICBhZGRWLmxlbmd0aCA9IHYubGVuZ3RoO1xuICAgICAgICAgICAgYWRkVi5hbmdsZSA9IHYuYW5nbGU7XG4gICAgICAgICAgICBwYXJ0aWNsZS52ZWxvY2l0eS5hZGRUbyhhZGRWKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuQWJzb3JiZXJJbnN0YW5jZSA9IEFic29yYmVySW5zdGFuY2U7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/Absorbers/AbsorberInstance.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/Absorbers/Absorbers.js": +/*!*****************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/Absorbers/Absorbers.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Absorbers = void 0;\nconst AbsorberInstance_1 = __webpack_require__(/*! ./AbsorberInstance */ \"./node_modules/tsparticles/Plugins/Absorbers/AbsorberInstance.js\");\nconst Absorber_1 = __webpack_require__(/*! ./Options/Classes/Absorber */ \"./node_modules/tsparticles/Plugins/Absorbers/Options/Classes/Absorber.js\");\nconst Enums_1 = __webpack_require__(/*! ./Enums */ \"./node_modules/tsparticles/Plugins/Absorbers/Enums/index.js\");\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass Absorbers {\n constructor(container) {\n this.container = container;\n this.array = [];\n this.absorbers = [];\n this.interactivityAbsorbers = [];\n const overridableContainer = container;\n overridableContainer.getAbsorber = (idxOrName) => idxOrName === undefined || typeof idxOrName === \"number\"\n ? this.array[idxOrName || 0]\n : this.array.find((t) => t.name === idxOrName);\n overridableContainer.addAbsorber = (options, position) => this.addAbsorber(options, position);\n }\n init(options) {\n var _a, _b;\n if (!options) {\n return;\n }\n if (options.absorbers) {\n if (options.absorbers instanceof Array) {\n this.absorbers = options.absorbers.map((s) => {\n const tmp = new Absorber_1.Absorber();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.absorbers instanceof Array) {\n this.absorbers = new Absorber_1.Absorber();\n }\n this.absorbers.load(options.absorbers);\n }\n }\n const interactivityAbsorbers = (_b = (_a = options.interactivity) === null || _a === void 0 ? void 0 : _a.modes) === null || _b === void 0 ? void 0 : _b.absorbers;\n if (interactivityAbsorbers) {\n if (interactivityAbsorbers instanceof Array) {\n this.interactivityAbsorbers = interactivityAbsorbers.map((s) => {\n const tmp = new Absorber_1.Absorber();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.interactivityAbsorbers instanceof Array) {\n this.interactivityAbsorbers = new Absorber_1.Absorber();\n }\n this.interactivityAbsorbers.load(interactivityAbsorbers);\n }\n }\n if (this.absorbers instanceof Array) {\n for (const absorberOptions of this.absorbers) {\n this.addAbsorber(absorberOptions);\n }\n }\n else {\n this.addAbsorber(this.absorbers);\n }\n }\n particleUpdate(particle) {\n for (const absorber of this.array) {\n absorber.attract(particle);\n if (particle.destroyed) {\n break;\n }\n }\n }\n draw(context) {\n for (const absorber of this.array) {\n context.save();\n absorber.draw(context);\n context.restore();\n }\n }\n stop() {\n this.array = [];\n }\n resize() {\n for (const absorber of this.array) {\n absorber.resize();\n }\n }\n handleClickMode(mode) {\n const container = this.container;\n const absorberOptions = this.absorbers;\n const modeAbsorbers = this.interactivityAbsorbers;\n if (mode === Enums_1.AbsorberClickMode.absorber) {\n let absorbersModeOptions;\n if (modeAbsorbers instanceof Array) {\n if (modeAbsorbers.length > 0) {\n absorbersModeOptions = (0, Utils_1.itemFromArray)(modeAbsorbers);\n }\n }\n else {\n absorbersModeOptions = modeAbsorbers;\n }\n const absorbersOptions = absorbersModeOptions !== null && absorbersModeOptions !== void 0 ? absorbersModeOptions : (absorberOptions instanceof Array ? (0, Utils_1.itemFromArray)(absorberOptions) : absorberOptions);\n const aPosition = container.interactivity.mouse.clickPosition;\n this.addAbsorber(absorbersOptions, aPosition);\n }\n }\n addAbsorber(options, position) {\n const absorber = new AbsorberInstance_1.AbsorberInstance(this, this.container, options, position);\n this.array.push(absorber);\n return absorber;\n }\n removeAbsorber(absorber) {\n const index = this.array.indexOf(absorber);\n if (index >= 0) {\n this.array.splice(index, 1);\n }\n }\n}\nexports.Absorbers = Absorbers;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9BYnNvcmJlcnMvQWJzb3JiZXJzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGlCQUFpQjtBQUNqQiwyQkFBMkIsbUJBQU8sQ0FBQyw0RkFBb0I7QUFDdkQsbUJBQW1CLG1CQUFPLENBQUMsNEdBQTRCO0FBQ3ZELGdCQUFnQixtQkFBTyxDQUFDLDRFQUFTO0FBQ2pDLGdCQUFnQixtQkFBTyxDQUFDLDhEQUFhO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1BsdWdpbnMvQWJzb3JiZXJzL0Fic29yYmVycy5qcz8xYmM1Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5BYnNvcmJlcnMgPSB2b2lkIDA7XG5jb25zdCBBYnNvcmJlckluc3RhbmNlXzEgPSByZXF1aXJlKFwiLi9BYnNvcmJlckluc3RhbmNlXCIpO1xuY29uc3QgQWJzb3JiZXJfMSA9IHJlcXVpcmUoXCIuL09wdGlvbnMvQ2xhc3Nlcy9BYnNvcmJlclwiKTtcbmNvbnN0IEVudW1zXzEgPSByZXF1aXJlKFwiLi9FbnVtc1wiKTtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vVXRpbHNcIik7XG5jbGFzcyBBYnNvcmJlcnMge1xuICAgIGNvbnN0cnVjdG9yKGNvbnRhaW5lcikge1xuICAgICAgICB0aGlzLmNvbnRhaW5lciA9IGNvbnRhaW5lcjtcbiAgICAgICAgdGhpcy5hcnJheSA9IFtdO1xuICAgICAgICB0aGlzLmFic29yYmVycyA9IFtdO1xuICAgICAgICB0aGlzLmludGVyYWN0aXZpdHlBYnNvcmJlcnMgPSBbXTtcbiAgICAgICAgY29uc3Qgb3ZlcnJpZGFibGVDb250YWluZXIgPSBjb250YWluZXI7XG4gICAgICAgIG92ZXJyaWRhYmxlQ29udGFpbmVyLmdldEFic29yYmVyID0gKGlkeE9yTmFtZSkgPT4gaWR4T3JOYW1lID09PSB1bmRlZmluZWQgfHwgdHlwZW9mIGlkeE9yTmFtZSA9PT0gXCJudW1iZXJcIlxuICAgICAgICAgICAgPyB0aGlzLmFycmF5W2lkeE9yTmFtZSB8fCAwXVxuICAgICAgICAgICAgOiB0aGlzLmFycmF5LmZpbmQoKHQpID0+IHQubmFtZSA9PT0gaWR4T3JOYW1lKTtcbiAgICAgICAgb3ZlcnJpZGFibGVDb250YWluZXIuYWRkQWJzb3JiZXIgPSAob3B0aW9ucywgcG9zaXRpb24pID0+IHRoaXMuYWRkQWJzb3JiZXIob3B0aW9ucywgcG9zaXRpb24pO1xuICAgIH1cbiAgICBpbml0KG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgaWYgKCFvcHRpb25zKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnMuYWJzb3JiZXJzKSB7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5hYnNvcmJlcnMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWJzb3JiZXJzID0gb3B0aW9ucy5hYnNvcmJlcnMubWFwKChzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRtcCA9IG5ldyBBYnNvcmJlcl8xLkFic29yYmVyKCk7XG4gICAgICAgICAgICAgICAgICAgIHRtcC5sb2FkKHMpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdG1wO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuYWJzb3JiZXJzIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hYnNvcmJlcnMgPSBuZXcgQWJzb3JiZXJfMS5BYnNvcmJlcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmFic29yYmVycy5sb2FkKG9wdGlvbnMuYWJzb3JiZXJzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpbnRlcmFjdGl2aXR5QWJzb3JiZXJzID0gKF9iID0gKF9hID0gb3B0aW9ucy5pbnRlcmFjdGl2aXR5KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EubW9kZXMpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5hYnNvcmJlcnM7XG4gICAgICAgIGlmIChpbnRlcmFjdGl2aXR5QWJzb3JiZXJzKSB7XG4gICAgICAgICAgICBpZiAoaW50ZXJhY3Rpdml0eUFic29yYmVycyBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnRlcmFjdGl2aXR5QWJzb3JiZXJzID0gaW50ZXJhY3Rpdml0eUFic29yYmVycy5tYXAoKHMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdG1wID0gbmV3IEFic29yYmVyXzEuQWJzb3JiZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgdG1wLmxvYWQocyk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0bXA7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pbnRlcmFjdGl2aXR5QWJzb3JiZXJzIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnRlcmFjdGl2aXR5QWJzb3JiZXJzID0gbmV3IEFic29yYmVyXzEuQWJzb3JiZXIoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5pbnRlcmFjdGl2aXR5QWJzb3JiZXJzLmxvYWQoaW50ZXJhY3Rpdml0eUFic29yYmVycyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYWJzb3JiZXJzIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgYWJzb3JiZXJPcHRpb25zIG9mIHRoaXMuYWJzb3JiZXJzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hZGRBYnNvcmJlcihhYnNvcmJlck9wdGlvbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5hZGRBYnNvcmJlcih0aGlzLmFic29yYmVycyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcGFydGljbGVVcGRhdGUocGFydGljbGUpIHtcbiAgICAgICAgZm9yIChjb25zdCBhYnNvcmJlciBvZiB0aGlzLmFycmF5KSB7XG4gICAgICAgICAgICBhYnNvcmJlci5hdHRyYWN0KHBhcnRpY2xlKTtcbiAgICAgICAgICAgIGlmIChwYXJ0aWNsZS5kZXN0cm95ZWQpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBkcmF3KGNvbnRleHQpIHtcbiAgICAgICAgZm9yIChjb25zdCBhYnNvcmJlciBvZiB0aGlzLmFycmF5KSB7XG4gICAgICAgICAgICBjb250ZXh0LnNhdmUoKTtcbiAgICAgICAgICAgIGFic29yYmVyLmRyYXcoY29udGV4dCk7XG4gICAgICAgICAgICBjb250ZXh0LnJlc3RvcmUoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzdG9wKCkge1xuICAgICAgICB0aGlzLmFycmF5ID0gW107XG4gICAgfVxuICAgIHJlc2l6ZSgpIHtcbiAgICAgICAgZm9yIChjb25zdCBhYnNvcmJlciBvZiB0aGlzLmFycmF5KSB7XG4gICAgICAgICAgICBhYnNvcmJlci5yZXNpemUoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBoYW5kbGVDbGlja01vZGUobW9kZSkge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgY29uc3QgYWJzb3JiZXJPcHRpb25zID0gdGhpcy5hYnNvcmJlcnM7XG4gICAgICAgIGNvbnN0IG1vZGVBYnNvcmJlcnMgPSB0aGlzLmludGVyYWN0aXZpdHlBYnNvcmJlcnM7XG4gICAgICAgIGlmIChtb2RlID09PSBFbnVtc18xLkFic29yYmVyQ2xpY2tNb2RlLmFic29yYmVyKSB7XG4gICAgICAgICAgICBsZXQgYWJzb3JiZXJzTW9kZU9wdGlvbnM7XG4gICAgICAgICAgICBpZiAobW9kZUFic29yYmVycyBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICAgICAgaWYgKG1vZGVBYnNvcmJlcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBhYnNvcmJlcnNNb2RlT3B0aW9ucyA9ICgwLCBVdGlsc18xLml0ZW1Gcm9tQXJyYXkpKG1vZGVBYnNvcmJlcnMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGFic29yYmVyc01vZGVPcHRpb25zID0gbW9kZUFic29yYmVycztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGFic29yYmVyc09wdGlvbnMgPSBhYnNvcmJlcnNNb2RlT3B0aW9ucyAhPT0gbnVsbCAmJiBhYnNvcmJlcnNNb2RlT3B0aW9ucyAhPT0gdm9pZCAwID8gYWJzb3JiZXJzTW9kZU9wdGlvbnMgOiAoYWJzb3JiZXJPcHRpb25zIGluc3RhbmNlb2YgQXJyYXkgPyAoMCwgVXRpbHNfMS5pdGVtRnJvbUFycmF5KShhYnNvcmJlck9wdGlvbnMpIDogYWJzb3JiZXJPcHRpb25zKTtcbiAgICAgICAgICAgIGNvbnN0IGFQb3NpdGlvbiA9IGNvbnRhaW5lci5pbnRlcmFjdGl2aXR5Lm1vdXNlLmNsaWNrUG9zaXRpb247XG4gICAgICAgICAgICB0aGlzLmFkZEFic29yYmVyKGFic29yYmVyc09wdGlvbnMsIGFQb3NpdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYWRkQWJzb3JiZXIob3B0aW9ucywgcG9zaXRpb24pIHtcbiAgICAgICAgY29uc3QgYWJzb3JiZXIgPSBuZXcgQWJzb3JiZXJJbnN0YW5jZV8xLkFic29yYmVySW5zdGFuY2UodGhpcywgdGhpcy5jb250YWluZXIsIG9wdGlvbnMsIHBvc2l0aW9uKTtcbiAgICAgICAgdGhpcy5hcnJheS5wdXNoKGFic29yYmVyKTtcbiAgICAgICAgcmV0dXJuIGFic29yYmVyO1xuICAgIH1cbiAgICByZW1vdmVBYnNvcmJlcihhYnNvcmJlcikge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuYXJyYXkuaW5kZXhPZihhYnNvcmJlcik7XG4gICAgICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmFycmF5LnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkFic29yYmVycyA9IEFic29yYmVycztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/Absorbers/Absorbers.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/Absorbers/Enums/AbsorberClickMode.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/Absorbers/Enums/AbsorberClickMode.js ***! + \*******************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.AbsorberClickMode = void 0;\nvar AbsorberClickMode;\n(function (AbsorberClickMode) {\n AbsorberClickMode[\"absorber\"] = \"absorber\";\n})(AbsorberClickMode = exports.AbsorberClickMode || (exports.AbsorberClickMode = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9BYnNvcmJlcnMvRW51bXMvQWJzb3JiZXJDbGlja01vZGUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBLENBQUMsb0RBQW9ELHlCQUF5QixLQUFLIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9QbHVnaW5zL0Fic29yYmVycy9FbnVtcy9BYnNvcmJlckNsaWNrTW9kZS5qcz9hYWMyIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5BYnNvcmJlckNsaWNrTW9kZSA9IHZvaWQgMDtcbnZhciBBYnNvcmJlckNsaWNrTW9kZTtcbihmdW5jdGlvbiAoQWJzb3JiZXJDbGlja01vZGUpIHtcbiAgICBBYnNvcmJlckNsaWNrTW9kZVtcImFic29yYmVyXCJdID0gXCJhYnNvcmJlclwiO1xufSkoQWJzb3JiZXJDbGlja01vZGUgPSBleHBvcnRzLkFic29yYmVyQ2xpY2tNb2RlIHx8IChleHBvcnRzLkFic29yYmVyQ2xpY2tNb2RlID0ge30pKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/Absorbers/Enums/AbsorberClickMode.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/Absorbers/Enums/index.js": +/*!*******************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/Absorbers/Enums/index.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n__exportStar(__webpack_require__(/*! ./AbsorberClickMode */ \"./node_modules/tsparticles/Plugins/Absorbers/Enums/AbsorberClickMode.js\"), exports);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9BYnNvcmJlcnMvRW51bXMvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBO0FBQ0EsbUNBQW1DLG9DQUFvQyxnQkFBZ0I7QUFDdkYsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGFBQWEsbUJBQU8sQ0FBQyxvR0FBcUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1BsdWdpbnMvQWJzb3JiZXJzL0VudW1zL2luZGV4LmpzP2FjZTEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19jcmVhdGVCaW5kaW5nID0gKHRoaXMgJiYgdGhpcy5fX2NyZWF0ZUJpbmRpbmcpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfSk7XG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgb1trMl0gPSBtW2tdO1xufSkpO1xudmFyIF9fZXhwb3J0U3RhciA9ICh0aGlzICYmIHRoaXMuX19leHBvcnRTdGFyKSB8fCBmdW5jdGlvbihtLCBleHBvcnRzKSB7XG4gICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gXCJkZWZhdWx0XCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzLCBwKSkgX19jcmVhdGVCaW5kaW5nKGV4cG9ydHMsIG0sIHApO1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9BYnNvcmJlckNsaWNrTW9kZVwiKSwgZXhwb3J0cyk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/Absorbers/Enums/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/Absorbers/Options/Classes/Absorber.js": +/*!********************************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/Absorbers/Options/Classes/Absorber.js ***! + \********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Absorber = void 0;\nconst AbsorberSize_1 = __webpack_require__(/*! ./AbsorberSize */ \"./node_modules/tsparticles/Plugins/Absorbers/Options/Classes/AbsorberSize.js\");\nconst OptionsColor_1 = __webpack_require__(/*! ../../../../Options/Classes/OptionsColor */ \"./node_modules/tsparticles/Options/Classes/OptionsColor.js\");\nclass Absorber {\n constructor() {\n this.color = new OptionsColor_1.OptionsColor();\n this.color.value = \"#000000\";\n this.draggable = false;\n this.opacity = 1;\n this.destroy = true;\n this.orbits = false;\n this.size = new AbsorberSize_1.AbsorberSize();\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor_1.OptionsColor.create(this.color, data.color);\n }\n if (data.draggable !== undefined) {\n this.draggable = data.draggable;\n }\n this.name = data.name;\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n if (data.position !== undefined) {\n this.position = {\n x: data.position.x,\n y: data.position.y,\n };\n }\n if (data.size !== undefined) {\n this.size.load(data.size);\n }\n if (data.destroy !== undefined) {\n this.destroy = data.destroy;\n }\n if (data.orbits !== undefined) {\n this.orbits = data.orbits;\n }\n }\n}\nexports.Absorber = Absorber;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9BYnNvcmJlcnMvT3B0aW9ucy9DbGFzc2VzL0Fic29yYmVyLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGdCQUFnQjtBQUNoQix1QkFBdUIsbUJBQU8sQ0FBQyxvR0FBZ0I7QUFDL0MsdUJBQXVCLG1CQUFPLENBQUMsNEdBQTBDO0FBQ3pFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1BsdWdpbnMvQWJzb3JiZXJzL09wdGlvbnMvQ2xhc3Nlcy9BYnNvcmJlci5qcz84ZDQzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5BYnNvcmJlciA9IHZvaWQgMDtcbmNvbnN0IEFic29yYmVyU2l6ZV8xID0gcmVxdWlyZShcIi4vQWJzb3JiZXJTaXplXCIpO1xuY29uc3QgT3B0aW9uc0NvbG9yXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vT3B0aW9ucy9DbGFzc2VzL09wdGlvbnNDb2xvclwiKTtcbmNsYXNzIEFic29yYmVyIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5jb2xvciA9IG5ldyBPcHRpb25zQ29sb3JfMS5PcHRpb25zQ29sb3IoKTtcbiAgICAgICAgdGhpcy5jb2xvci52YWx1ZSA9IFwiIzAwMDAwMFwiO1xuICAgICAgICB0aGlzLmRyYWdnYWJsZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLm9wYWNpdHkgPSAxO1xuICAgICAgICB0aGlzLmRlc3Ryb3kgPSB0cnVlO1xuICAgICAgICB0aGlzLm9yYml0cyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNpemUgPSBuZXcgQWJzb3JiZXJTaXplXzEuQWJzb3JiZXJTaXplKCk7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuY29sb3IgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5jb2xvciA9IE9wdGlvbnNDb2xvcl8xLk9wdGlvbnNDb2xvci5jcmVhdGUodGhpcy5jb2xvciwgZGF0YS5jb2xvcik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZHJhZ2dhYmxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZHJhZ2dhYmxlID0gZGF0YS5kcmFnZ2FibGU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5uYW1lID0gZGF0YS5uYW1lO1xuICAgICAgICBpZiAoZGF0YS5vcGFjaXR5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMub3BhY2l0eSA9IGRhdGEub3BhY2l0eTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5wb3NpdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uID0ge1xuICAgICAgICAgICAgICAgIHg6IGRhdGEucG9zaXRpb24ueCxcbiAgICAgICAgICAgICAgICB5OiBkYXRhLnBvc2l0aW9uLnksXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnNpemUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5zaXplLmxvYWQoZGF0YS5zaXplKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5kZXN0cm95ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveSA9IGRhdGEuZGVzdHJveTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5vcmJpdHMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5vcmJpdHMgPSBkYXRhLm9yYml0cztcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuQWJzb3JiZXIgPSBBYnNvcmJlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/Absorbers/Options/Classes/Absorber.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/Absorbers/Options/Classes/AbsorberSize.js": +/*!************************************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/Absorbers/Options/Classes/AbsorberSize.js ***! + \************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.AbsorberSize = void 0;\nconst ValueWithRandom_1 = __webpack_require__(/*! ../../../../Options/Classes/ValueWithRandom */ \"./node_modules/tsparticles/Options/Classes/ValueWithRandom.js\");\nconst AbsorberSizeLimit_1 = __webpack_require__(/*! ./AbsorberSizeLimit */ \"./node_modules/tsparticles/Plugins/Absorbers/Options/Classes/AbsorberSizeLimit.js\");\nclass AbsorberSize extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n this.density = 5;\n this.random.minimumValue = 1;\n this.value = 50;\n this.limit = new AbsorberSizeLimit_1.AbsorberSizeLimit();\n }\n load(data) {\n if (!data) {\n return;\n }\n super.load(data);\n if (data.density !== undefined) {\n this.density = data.density;\n }\n if (typeof data.limit === \"number\") {\n this.limit.radius = data.limit;\n }\n else {\n this.limit.load(data.limit);\n }\n }\n}\nexports.AbsorberSize = AbsorberSize;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9BYnNvcmJlcnMvT3B0aW9ucy9DbGFzc2VzL0Fic29yYmVyU2l6ZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxvQkFBb0I7QUFDcEIsMEJBQTBCLG1CQUFPLENBQUMsa0hBQTZDO0FBQy9FLDRCQUE0QixtQkFBTyxDQUFDLDhHQUFxQjtBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1BsdWdpbnMvQWJzb3JiZXJzL09wdGlvbnMvQ2xhc3Nlcy9BYnNvcmJlclNpemUuanM/NzVhYiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuQWJzb3JiZXJTaXplID0gdm9pZCAwO1xuY29uc3QgVmFsdWVXaXRoUmFuZG9tXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vT3B0aW9ucy9DbGFzc2VzL1ZhbHVlV2l0aFJhbmRvbVwiKTtcbmNvbnN0IEFic29yYmVyU2l6ZUxpbWl0XzEgPSByZXF1aXJlKFwiLi9BYnNvcmJlclNpemVMaW1pdFwiKTtcbmNsYXNzIEFic29yYmVyU2l6ZSBleHRlbmRzIFZhbHVlV2l0aFJhbmRvbV8xLlZhbHVlV2l0aFJhbmRvbSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuZGVuc2l0eSA9IDU7XG4gICAgICAgIHRoaXMucmFuZG9tLm1pbmltdW1WYWx1ZSA9IDE7XG4gICAgICAgIHRoaXMudmFsdWUgPSA1MDtcbiAgICAgICAgdGhpcy5saW1pdCA9IG5ldyBBYnNvcmJlclNpemVMaW1pdF8xLkFic29yYmVyU2l6ZUxpbWl0KCk7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzdXBlci5sb2FkKGRhdGEpO1xuICAgICAgICBpZiAoZGF0YS5kZW5zaXR5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZGVuc2l0eSA9IGRhdGEuZGVuc2l0eTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIGRhdGEubGltaXQgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIHRoaXMubGltaXQucmFkaXVzID0gZGF0YS5saW1pdDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubGltaXQubG9hZChkYXRhLmxpbWl0KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuQWJzb3JiZXJTaXplID0gQWJzb3JiZXJTaXplO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/Absorbers/Options/Classes/AbsorberSize.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/Absorbers/Options/Classes/AbsorberSizeLimit.js": +/*!*****************************************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/Absorbers/Options/Classes/AbsorberSizeLimit.js ***! + \*****************************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.AbsorberSizeLimit = void 0;\nclass AbsorberSizeLimit {\n constructor() {\n this.radius = 0;\n this.mass = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.mass !== undefined) {\n this.mass = data.mass;\n }\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n }\n}\nexports.AbsorberSizeLimit = AbsorberSizeLimit;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9BYnNvcmJlcnMvT3B0aW9ucy9DbGFzc2VzL0Fic29yYmVyU2l6ZUxpbWl0LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9QbHVnaW5zL0Fic29yYmVycy9PcHRpb25zL0NsYXNzZXMvQWJzb3JiZXJTaXplTGltaXQuanM/M2FhYSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuQWJzb3JiZXJTaXplTGltaXQgPSB2b2lkIDA7XG5jbGFzcyBBYnNvcmJlclNpemVMaW1pdCB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMucmFkaXVzID0gMDtcbiAgICAgICAgdGhpcy5tYXNzID0gMDtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLm1hc3MgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5tYXNzID0gZGF0YS5tYXNzO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnJhZGl1cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnJhZGl1cyA9IGRhdGEucmFkaXVzO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5BYnNvcmJlclNpemVMaW1pdCA9IEFic29yYmVyU2l6ZUxpbWl0O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/Absorbers/Options/Classes/AbsorberSizeLimit.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/Absorbers/plugin.js": +/*!**************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/Absorbers/plugin.js ***! + \**************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadAbsorbersPlugin = void 0;\nconst Absorbers_1 = __webpack_require__(/*! ./Absorbers */ \"./node_modules/tsparticles/Plugins/Absorbers/Absorbers.js\");\nconst Enums_1 = __webpack_require__(/*! ./Enums */ \"./node_modules/tsparticles/Plugins/Absorbers/Enums/index.js\");\nconst Absorber_1 = __webpack_require__(/*! ./Options/Classes/Absorber */ \"./node_modules/tsparticles/Plugins/Absorbers/Options/Classes/Absorber.js\");\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass Plugin {\n constructor() {\n this.id = \"absorbers\";\n }\n getPlugin(container) {\n return new Absorbers_1.Absorbers(container);\n }\n needsPlugin(options) {\n var _a, _b, _c;\n if (options === undefined) {\n return false;\n }\n const absorbers = options.absorbers;\n let loadAbsorbers = false;\n if (absorbers instanceof Array) {\n if (absorbers.length) {\n loadAbsorbers = true;\n }\n }\n else if (absorbers !== undefined) {\n loadAbsorbers = true;\n }\n else if (((_c = (_b = (_a = options.interactivity) === null || _a === void 0 ? void 0 : _a.events) === null || _b === void 0 ? void 0 : _b.onClick) === null || _c === void 0 ? void 0 : _c.mode) &&\n (0, Utils_1.isInArray)(Enums_1.AbsorberClickMode.absorber, options.interactivity.events.onClick.mode)) {\n loadAbsorbers = true;\n }\n return loadAbsorbers;\n }\n loadOptions(options, source) {\n var _a, _b;\n if (!this.needsPlugin(options) && !this.needsPlugin(source)) {\n return;\n }\n const optionsCast = options;\n if (source === null || source === void 0 ? void 0 : source.absorbers) {\n if ((source === null || source === void 0 ? void 0 : source.absorbers) instanceof Array) {\n optionsCast.absorbers = source === null || source === void 0 ? void 0 : source.absorbers.map((s) => {\n const tmp = new Absorber_1.Absorber();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n let absorberOptions = optionsCast.absorbers;\n if ((absorberOptions === null || absorberOptions === void 0 ? void 0 : absorberOptions.load) === undefined) {\n optionsCast.absorbers = absorberOptions = new Absorber_1.Absorber();\n }\n absorberOptions.load(source === null || source === void 0 ? void 0 : source.absorbers);\n }\n }\n const interactivityAbsorbers = (_b = (_a = source === null || source === void 0 ? void 0 : source.interactivity) === null || _a === void 0 ? void 0 : _a.modes) === null || _b === void 0 ? void 0 : _b.absorbers;\n if (interactivityAbsorbers) {\n if (interactivityAbsorbers instanceof Array) {\n optionsCast.interactivity.modes.absorbers = interactivityAbsorbers.map((s) => {\n const tmp = new Absorber_1.Absorber();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n let absorberOptions = optionsCast.interactivity.modes.absorbers;\n if ((absorberOptions === null || absorberOptions === void 0 ? void 0 : absorberOptions.load) === undefined) {\n optionsCast.interactivity.modes.absorbers = absorberOptions = new Absorber_1.Absorber();\n }\n absorberOptions.load(interactivityAbsorbers);\n }\n }\n }\n}\nasync function loadAbsorbersPlugin(tsParticles) {\n const plugin = new Plugin();\n await tsParticles.addPlugin(plugin);\n}\nexports.loadAbsorbersPlugin = loadAbsorbersPlugin;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9BYnNvcmJlcnMvcGx1Z2luLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELDJCQUEyQjtBQUMzQixvQkFBb0IsbUJBQU8sQ0FBQyw4RUFBYTtBQUN6QyxnQkFBZ0IsbUJBQU8sQ0FBQyw0RUFBUztBQUNqQyxtQkFBbUIsbUJBQU8sQ0FBQyw0R0FBNEI7QUFDdkQsZ0JBQWdCLG1CQUFPLENBQUMsOERBQWE7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9QbHVnaW5zL0Fic29yYmVycy9wbHVnaW4uanM/ZjNkNSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMubG9hZEFic29yYmVyc1BsdWdpbiA9IHZvaWQgMDtcbmNvbnN0IEFic29yYmVyc18xID0gcmVxdWlyZShcIi4vQWJzb3JiZXJzXCIpO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuL0VudW1zXCIpO1xuY29uc3QgQWJzb3JiZXJfMSA9IHJlcXVpcmUoXCIuL09wdGlvbnMvQ2xhc3Nlcy9BYnNvcmJlclwiKTtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vVXRpbHNcIik7XG5jbGFzcyBQbHVnaW4ge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmlkID0gXCJhYnNvcmJlcnNcIjtcbiAgICB9XG4gICAgZ2V0UGx1Z2luKGNvbnRhaW5lcikge1xuICAgICAgICByZXR1cm4gbmV3IEFic29yYmVyc18xLkFic29yYmVycyhjb250YWluZXIpO1xuICAgIH1cbiAgICBuZWVkc1BsdWdpbihvcHRpb25zKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYWJzb3JiZXJzID0gb3B0aW9ucy5hYnNvcmJlcnM7XG4gICAgICAgIGxldCBsb2FkQWJzb3JiZXJzID0gZmFsc2U7XG4gICAgICAgIGlmIChhYnNvcmJlcnMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgaWYgKGFic29yYmVycy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBsb2FkQWJzb3JiZXJzID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChhYnNvcmJlcnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbG9hZEFic29yYmVycyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoKChfYyA9IChfYiA9IChfYSA9IG9wdGlvbnMuaW50ZXJhY3Rpdml0eSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmV2ZW50cykgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm9uQ2xpY2spID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5tb2RlKSAmJlxuICAgICAgICAgICAgKDAsIFV0aWxzXzEuaXNJbkFycmF5KShFbnVtc18xLkFic29yYmVyQ2xpY2tNb2RlLmFic29yYmVyLCBvcHRpb25zLmludGVyYWN0aXZpdHkuZXZlbnRzLm9uQ2xpY2subW9kZSkpIHtcbiAgICAgICAgICAgIGxvYWRBYnNvcmJlcnMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBsb2FkQWJzb3JiZXJzO1xuICAgIH1cbiAgICBsb2FkT3B0aW9ucyhvcHRpb25zLCBzb3VyY2UpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgaWYgKCF0aGlzLm5lZWRzUGx1Z2luKG9wdGlvbnMpICYmICF0aGlzLm5lZWRzUGx1Z2luKHNvdXJjZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvcHRpb25zQ2FzdCA9IG9wdGlvbnM7XG4gICAgICAgIGlmIChzb3VyY2UgPT09IG51bGwgfHwgc291cmNlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzb3VyY2UuYWJzb3JiZXJzKSB7XG4gICAgICAgICAgICBpZiAoKHNvdXJjZSA9PT0gbnVsbCB8fCBzb3VyY2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNvdXJjZS5hYnNvcmJlcnMpIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgICAgICBvcHRpb25zQ2FzdC5hYnNvcmJlcnMgPSBzb3VyY2UgPT09IG51bGwgfHwgc291cmNlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzb3VyY2UuYWJzb3JiZXJzLm1hcCgocykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0bXAgPSBuZXcgQWJzb3JiZXJfMS5BYnNvcmJlcigpO1xuICAgICAgICAgICAgICAgICAgICB0bXAubG9hZChzKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRtcDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGxldCBhYnNvcmJlck9wdGlvbnMgPSBvcHRpb25zQ2FzdC5hYnNvcmJlcnM7XG4gICAgICAgICAgICAgICAgaWYgKChhYnNvcmJlck9wdGlvbnMgPT09IG51bGwgfHwgYWJzb3JiZXJPcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBhYnNvcmJlck9wdGlvbnMubG9hZCkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICBvcHRpb25zQ2FzdC5hYnNvcmJlcnMgPSBhYnNvcmJlck9wdGlvbnMgPSBuZXcgQWJzb3JiZXJfMS5BYnNvcmJlcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhYnNvcmJlck9wdGlvbnMubG9hZChzb3VyY2UgPT09IG51bGwgfHwgc291cmNlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzb3VyY2UuYWJzb3JiZXJzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpbnRlcmFjdGl2aXR5QWJzb3JiZXJzID0gKF9iID0gKF9hID0gc291cmNlID09PSBudWxsIHx8IHNvdXJjZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogc291cmNlLmludGVyYWN0aXZpdHkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5tb2RlcykgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmFic29yYmVycztcbiAgICAgICAgaWYgKGludGVyYWN0aXZpdHlBYnNvcmJlcnMpIHtcbiAgICAgICAgICAgIGlmIChpbnRlcmFjdGl2aXR5QWJzb3JiZXJzIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgICAgICBvcHRpb25zQ2FzdC5pbnRlcmFjdGl2aXR5Lm1vZGVzLmFic29yYmVycyA9IGludGVyYWN0aXZpdHlBYnNvcmJlcnMubWFwKChzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRtcCA9IG5ldyBBYnNvcmJlcl8xLkFic29yYmVyKCk7XG4gICAgICAgICAgICAgICAgICAgIHRtcC5sb2FkKHMpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdG1wO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgbGV0IGFic29yYmVyT3B0aW9ucyA9IG9wdGlvbnNDYXN0LmludGVyYWN0aXZpdHkubW9kZXMuYWJzb3JiZXJzO1xuICAgICAgICAgICAgICAgIGlmICgoYWJzb3JiZXJPcHRpb25zID09PSBudWxsIHx8IGFic29yYmVyT3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogYWJzb3JiZXJPcHRpb25zLmxvYWQpID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uc0Nhc3QuaW50ZXJhY3Rpdml0eS5tb2Rlcy5hYnNvcmJlcnMgPSBhYnNvcmJlck9wdGlvbnMgPSBuZXcgQWJzb3JiZXJfMS5BYnNvcmJlcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhYnNvcmJlck9wdGlvbnMubG9hZChpbnRlcmFjdGl2aXR5QWJzb3JiZXJzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbmFzeW5jIGZ1bmN0aW9uIGxvYWRBYnNvcmJlcnNQbHVnaW4odHNQYXJ0aWNsZXMpIHtcbiAgICBjb25zdCBwbHVnaW4gPSBuZXcgUGx1Z2luKCk7XG4gICAgYXdhaXQgdHNQYXJ0aWNsZXMuYWRkUGx1Z2luKHBsdWdpbik7XG59XG5leHBvcnRzLmxvYWRBYnNvcmJlcnNQbHVnaW4gPSBsb2FkQWJzb3JiZXJzUGx1Z2luO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/Absorbers/plugin.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/Emitters/EmitterInstance.js": +/*!**********************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/Emitters/EmitterInstance.js ***! + \**********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _EmitterInstance_firstSpawn, _EmitterInstance_startParticlesAdded;\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.EmitterInstance = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Enums_1 = __webpack_require__(/*! ../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst EmitterSize_1 = __webpack_require__(/*! ./Options/Classes/EmitterSize */ \"./node_modules/tsparticles/Plugins/Emitters/Options/Classes/EmitterSize.js\");\nconst ShapeManager_1 = __webpack_require__(/*! ./ShapeManager */ \"./node_modules/tsparticles/Plugins/Emitters/ShapeManager.js\");\nclass EmitterInstance {\n constructor(emitters, container, emitterOptions, position) {\n var _a, _b, _c, _d, _e, _f;\n var _g;\n this.emitters = emitters;\n this.container = container;\n _EmitterInstance_firstSpawn.set(this, void 0);\n _EmitterInstance_startParticlesAdded.set(this, void 0);\n this.currentDuration = 0;\n this.currentEmitDelay = 0;\n this.currentSpawnDelay = 0;\n this.initialPosition = position;\n this.emitterOptions = (0, Utils_1.deepExtend)({}, emitterOptions);\n this.spawnDelay = (((_a = this.emitterOptions.life.delay) !== null && _a !== void 0 ? _a : 0) * 1000) / this.container.retina.reduceFactor;\n this.position = (_b = this.initialPosition) !== null && _b !== void 0 ? _b : this.calcPosition();\n this.name = emitterOptions.name;\n this.shape = ShapeManager_1.ShapeManager.getShape(emitterOptions.shape);\n this.fill = emitterOptions.fill;\n __classPrivateFieldSet(this, _EmitterInstance_firstSpawn, !this.emitterOptions.life.wait, \"f\");\n __classPrivateFieldSet(this, _EmitterInstance_startParticlesAdded, false, \"f\");\n let particlesOptions = (0, Utils_1.deepExtend)({}, this.emitterOptions.particles);\n particlesOptions !== null && particlesOptions !== void 0 ? particlesOptions : (particlesOptions = {});\n (_c = particlesOptions.move) !== null && _c !== void 0 ? _c : (particlesOptions.move = {});\n (_d = (_g = particlesOptions.move).direction) !== null && _d !== void 0 ? _d : (_g.direction = this.emitterOptions.direction);\n if (this.emitterOptions.spawnColor !== undefined) {\n this.spawnColor = (0, Utils_1.colorToHsl)(this.emitterOptions.spawnColor);\n }\n this.paused = !this.emitterOptions.autoPlay;\n this.particlesOptions = particlesOptions;\n this.size =\n (_e = this.emitterOptions.size) !== null && _e !== void 0 ? _e : (() => {\n const size = new EmitterSize_1.EmitterSize();\n size.load({\n height: 0,\n mode: Enums_1.SizeMode.percent,\n width: 0,\n });\n return size;\n })();\n this.lifeCount = (_f = this.emitterOptions.life.count) !== null && _f !== void 0 ? _f : -1;\n this.immortal = this.lifeCount <= 0;\n this.play();\n }\n externalPlay() {\n this.paused = false;\n this.play();\n }\n externalPause() {\n this.paused = true;\n this.pause();\n }\n play() {\n var _a;\n if (this.paused) {\n return;\n }\n if (this.container.retina.reduceFactor &&\n (this.lifeCount > 0 || this.immortal || !this.emitterOptions.life.count) &&\n (__classPrivateFieldGet(this, _EmitterInstance_firstSpawn, \"f\") || this.currentSpawnDelay >= ((_a = this.spawnDelay) !== null && _a !== void 0 ? _a : 0))) {\n if (this.emitDelay === undefined) {\n const delay = (0, Utils_1.getRangeValue)(this.emitterOptions.rate.delay);\n this.emitDelay = (1000 * delay) / this.container.retina.reduceFactor;\n }\n if (this.lifeCount > 0 || this.immortal) {\n this.prepareToDie();\n }\n }\n }\n pause() {\n if (this.paused) {\n return;\n }\n delete this.emitDelay;\n }\n resize() {\n const initialPosition = this.initialPosition;\n this.position =\n initialPosition && (0, Utils_1.isPointInside)(initialPosition, this.container.canvas.size)\n ? initialPosition\n : this.calcPosition();\n }\n update(delta) {\n var _a, _b, _c;\n if (this.paused) {\n return;\n }\n if (__classPrivateFieldGet(this, _EmitterInstance_firstSpawn, \"f\")) {\n __classPrivateFieldSet(this, _EmitterInstance_firstSpawn, false, \"f\");\n this.currentSpawnDelay = (_a = this.spawnDelay) !== null && _a !== void 0 ? _a : 0;\n this.currentEmitDelay = (_b = this.emitDelay) !== null && _b !== void 0 ? _b : 0;\n }\n if (!__classPrivateFieldGet(this, _EmitterInstance_startParticlesAdded, \"f\")) {\n __classPrivateFieldSet(this, _EmitterInstance_startParticlesAdded, true, \"f\");\n this.emitParticles(this.emitterOptions.startCount);\n }\n if (this.duration !== undefined) {\n this.currentDuration += delta.value;\n if (this.currentDuration >= this.duration) {\n this.pause();\n if (this.spawnDelay !== undefined) {\n delete this.spawnDelay;\n }\n if (!this.immortal) {\n this.lifeCount--;\n }\n if (this.lifeCount > 0 || this.immortal) {\n this.position = this.calcPosition();\n this.spawnDelay =\n (((_c = this.emitterOptions.life.delay) !== null && _c !== void 0 ? _c : 0) * 1000) / this.container.retina.reduceFactor;\n }\n else {\n this.destroy();\n }\n this.currentDuration -= this.duration;\n delete this.duration;\n }\n }\n if (this.spawnDelay !== undefined) {\n this.currentSpawnDelay += delta.value;\n if (this.currentSpawnDelay >= this.spawnDelay) {\n this.play();\n this.currentSpawnDelay -= this.currentSpawnDelay;\n delete this.spawnDelay;\n }\n }\n if (this.emitDelay !== undefined) {\n this.currentEmitDelay += delta.value;\n if (this.currentEmitDelay >= this.emitDelay) {\n this.emit();\n this.currentEmitDelay -= this.emitDelay;\n }\n }\n }\n prepareToDie() {\n var _a;\n if (this.paused) {\n return;\n }\n const duration = (_a = this.emitterOptions.life) === null || _a === void 0 ? void 0 : _a.duration;\n if (this.container.retina.reduceFactor &&\n (this.lifeCount > 0 || this.immortal) &&\n duration !== undefined &&\n duration > 0) {\n this.duration = duration * 1000;\n }\n }\n destroy() {\n this.emitters.removeEmitter(this);\n }\n calcPosition() {\n var _a, _b;\n const container = this.container;\n const percentPosition = this.emitterOptions.position;\n return {\n x: (((_a = percentPosition === null || percentPosition === void 0 ? void 0 : percentPosition.x) !== null && _a !== void 0 ? _a : Math.random() * 100) / 100) * container.canvas.size.width,\n y: (((_b = percentPosition === null || percentPosition === void 0 ? void 0 : percentPosition.y) !== null && _b !== void 0 ? _b : Math.random() * 100) / 100) * container.canvas.size.height,\n };\n }\n emit() {\n if (this.paused) {\n return;\n }\n const quantity = (0, Utils_1.getRangeValue)(this.emitterOptions.rate.quantity);\n this.emitParticles(quantity);\n }\n emitParticles(quantity) {\n var _a, _b, _c;\n const container = this.container;\n const position = this.position;\n const offset = {\n x: this.size.mode === Enums_1.SizeMode.percent\n ? (container.canvas.size.width * this.size.width) / 100\n : this.size.width,\n y: this.size.mode === Enums_1.SizeMode.percent\n ? (container.canvas.size.height * this.size.height) / 100\n : this.size.height,\n };\n for (let i = 0; i < quantity; i++) {\n const particlesOptions = (0, Utils_1.deepExtend)({}, this.particlesOptions);\n if (this.spawnColor) {\n const colorAnimation = (_a = this.emitterOptions.spawnColor) === null || _a === void 0 ? void 0 : _a.animation;\n if (colorAnimation) {\n const hueAnimation = colorAnimation;\n if (hueAnimation.enable) {\n this.spawnColor.h = this.setColorAnimation(hueAnimation, this.spawnColor.h, 360);\n }\n else {\n const hslAnimation = colorAnimation;\n this.spawnColor.h = this.setColorAnimation(hslAnimation.h, this.spawnColor.h, 360);\n this.spawnColor.s = this.setColorAnimation(hslAnimation.s, this.spawnColor.s, 100);\n this.spawnColor.l = this.setColorAnimation(hslAnimation.l, this.spawnColor.l, 100);\n }\n }\n if (!particlesOptions.color) {\n particlesOptions.color = {\n value: this.spawnColor,\n };\n }\n else {\n particlesOptions.color.value = this.spawnColor;\n }\n }\n const pPosition = (_c = (_b = this.shape) === null || _b === void 0 ? void 0 : _b.randomPosition(position, offset, this.fill)) !== null && _c !== void 0 ? _c : position;\n container.particles.addParticle(pPosition, particlesOptions);\n }\n }\n setColorAnimation(animation, initValue, maxValue) {\n var _a;\n const container = this.container;\n if (!animation.enable) {\n return initValue;\n }\n const colorOffset = (0, Utils_1.randomInRange)(animation.offset);\n const delay = (0, Utils_1.getRangeValue)(this.emitterOptions.rate.delay);\n const emitFactor = (1000 * delay) / container.retina.reduceFactor;\n const colorSpeed = (_a = animation.speed) !== null && _a !== void 0 ? _a : 0;\n return (initValue + (colorSpeed * container.fpsLimit) / emitFactor + colorOffset * 3.6) % maxValue;\n }\n}\nexports.EmitterInstance = EmitterInstance;\n_EmitterInstance_firstSpawn = new WeakMap(), _EmitterInstance_startParticlesAdded = new WeakMap();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9FbWl0dGVycy9FbWl0dGVySW5zdGFuY2UuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsdUJBQXVCO0FBQ3ZCLGdCQUFnQixtQkFBTyxDQUFDLDhEQUFhO0FBQ3JDLGdCQUFnQixtQkFBTyxDQUFDLDhEQUFhO0FBQ3JDLHNCQUFzQixtQkFBTyxDQUFDLGlIQUErQjtBQUM3RCx1QkFBdUIsbUJBQU8sQ0FBQyxtRkFBZ0I7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0RBQXdEO0FBQ3hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseURBQXlEO0FBQ3pELDRHQUE0RztBQUM1RyxpR0FBaUc7QUFDakc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGNBQWM7QUFDdEMsK0RBQStEO0FBQy9EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCO0FBQ3ZCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9QbHVnaW5zL0VtaXR0ZXJzL0VtaXR0ZXJJbnN0YW5jZS5qcz8xODcwIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9fY2xhc3NQcml2YXRlRmllbGRTZXQgPSAodGhpcyAmJiB0aGlzLl9fY2xhc3NQcml2YXRlRmllbGRTZXQpIHx8IGZ1bmN0aW9uIChyZWNlaXZlciwgc3RhdGUsIHZhbHVlLCBraW5kLCBmKSB7XG4gICAgaWYgKGtpbmQgPT09IFwibVwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiUHJpdmF0ZSBtZXRob2QgaXMgbm90IHdyaXRhYmxlXCIpO1xuICAgIGlmIChraW5kID09PSBcImFcIiAmJiAhZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIHNldHRlclwiKTtcbiAgICBpZiAodHlwZW9mIHN0YXRlID09PSBcImZ1bmN0aW9uXCIgPyByZWNlaXZlciAhPT0gc3RhdGUgfHwgIWYgOiAhc3RhdGUuaGFzKHJlY2VpdmVyKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCB3cml0ZSBwcml2YXRlIG1lbWJlciB0byBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0XCIpO1xuICAgIHJldHVybiAoa2luZCA9PT0gXCJhXCIgPyBmLmNhbGwocmVjZWl2ZXIsIHZhbHVlKSA6IGYgPyBmLnZhbHVlID0gdmFsdWUgOiBzdGF0ZS5zZXQocmVjZWl2ZXIsIHZhbHVlKSksIHZhbHVlO1xufTtcbnZhciBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0ID0gKHRoaXMgJiYgdGhpcy5fX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KSB8fCBmdW5jdGlvbiAocmVjZWl2ZXIsIHN0YXRlLCBraW5kLCBmKSB7XG4gICAgaWYgKGtpbmQgPT09IFwiYVwiICYmICFmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiUHJpdmF0ZSBhY2Nlc3NvciB3YXMgZGVmaW5lZCB3aXRob3V0IGEgZ2V0dGVyXCIpO1xuICAgIGlmICh0eXBlb2Ygc3RhdGUgPT09IFwiZnVuY3Rpb25cIiA/IHJlY2VpdmVyICE9PSBzdGF0ZSB8fCAhZiA6ICFzdGF0ZS5oYXMocmVjZWl2ZXIpKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IHJlYWQgcHJpdmF0ZSBtZW1iZXIgZnJvbSBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0XCIpO1xuICAgIHJldHVybiBraW5kID09PSBcIm1cIiA/IGYgOiBraW5kID09PSBcImFcIiA/IGYuY2FsbChyZWNlaXZlcikgOiBmID8gZi52YWx1ZSA6IHN0YXRlLmdldChyZWNlaXZlcik7XG59O1xudmFyIF9FbWl0dGVySW5zdGFuY2VfZmlyc3RTcGF3biwgX0VtaXR0ZXJJbnN0YW5jZV9zdGFydFBhcnRpY2xlc0FkZGVkO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5FbWl0dGVySW5zdGFuY2UgPSB2b2lkIDA7XG5jb25zdCBVdGlsc18xID0gcmVxdWlyZShcIi4uLy4uL1V0aWxzXCIpO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuLi8uLi9FbnVtc1wiKTtcbmNvbnN0IEVtaXR0ZXJTaXplXzEgPSByZXF1aXJlKFwiLi9PcHRpb25zL0NsYXNzZXMvRW1pdHRlclNpemVcIik7XG5jb25zdCBTaGFwZU1hbmFnZXJfMSA9IHJlcXVpcmUoXCIuL1NoYXBlTWFuYWdlclwiKTtcbmNsYXNzIEVtaXR0ZXJJbnN0YW5jZSB7XG4gICAgY29uc3RydWN0b3IoZW1pdHRlcnMsIGNvbnRhaW5lciwgZW1pdHRlck9wdGlvbnMsIHBvc2l0aW9uKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZCwgX2UsIF9mO1xuICAgICAgICB2YXIgX2c7XG4gICAgICAgIHRoaXMuZW1pdHRlcnMgPSBlbWl0dGVycztcbiAgICAgICAgdGhpcy5jb250YWluZXIgPSBjb250YWluZXI7XG4gICAgICAgIF9FbWl0dGVySW5zdGFuY2VfZmlyc3RTcGF3bi5zZXQodGhpcywgdm9pZCAwKTtcbiAgICAgICAgX0VtaXR0ZXJJbnN0YW5jZV9zdGFydFBhcnRpY2xlc0FkZGVkLnNldCh0aGlzLCB2b2lkIDApO1xuICAgICAgICB0aGlzLmN1cnJlbnREdXJhdGlvbiA9IDA7XG4gICAgICAgIHRoaXMuY3VycmVudEVtaXREZWxheSA9IDA7XG4gICAgICAgIHRoaXMuY3VycmVudFNwYXduRGVsYXkgPSAwO1xuICAgICAgICB0aGlzLmluaXRpYWxQb3NpdGlvbiA9IHBvc2l0aW9uO1xuICAgICAgICB0aGlzLmVtaXR0ZXJPcHRpb25zID0gKDAsIFV0aWxzXzEuZGVlcEV4dGVuZCkoe30sIGVtaXR0ZXJPcHRpb25zKTtcbiAgICAgICAgdGhpcy5zcGF3bkRlbGF5ID0gKCgoX2EgPSB0aGlzLmVtaXR0ZXJPcHRpb25zLmxpZmUuZGVsYXkpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IDApICogMTAwMCkgLyB0aGlzLmNvbnRhaW5lci5yZXRpbmEucmVkdWNlRmFjdG9yO1xuICAgICAgICB0aGlzLnBvc2l0aW9uID0gKF9iID0gdGhpcy5pbml0aWFsUG9zaXRpb24pICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IHRoaXMuY2FsY1Bvc2l0aW9uKCk7XG4gICAgICAgIHRoaXMubmFtZSA9IGVtaXR0ZXJPcHRpb25zLm5hbWU7XG4gICAgICAgIHRoaXMuc2hhcGUgPSBTaGFwZU1hbmFnZXJfMS5TaGFwZU1hbmFnZXIuZ2V0U2hhcGUoZW1pdHRlck9wdGlvbnMuc2hhcGUpO1xuICAgICAgICB0aGlzLmZpbGwgPSBlbWl0dGVyT3B0aW9ucy5maWxsO1xuICAgICAgICBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KHRoaXMsIF9FbWl0dGVySW5zdGFuY2VfZmlyc3RTcGF3biwgIXRoaXMuZW1pdHRlck9wdGlvbnMubGlmZS53YWl0LCBcImZcIik7XG4gICAgICAgIF9fY2xhc3NQcml2YXRlRmllbGRTZXQodGhpcywgX0VtaXR0ZXJJbnN0YW5jZV9zdGFydFBhcnRpY2xlc0FkZGVkLCBmYWxzZSwgXCJmXCIpO1xuICAgICAgICBsZXQgcGFydGljbGVzT3B0aW9ucyA9ICgwLCBVdGlsc18xLmRlZXBFeHRlbmQpKHt9LCB0aGlzLmVtaXR0ZXJPcHRpb25zLnBhcnRpY2xlcyk7XG4gICAgICAgIHBhcnRpY2xlc09wdGlvbnMgIT09IG51bGwgJiYgcGFydGljbGVzT3B0aW9ucyAhPT0gdm9pZCAwID8gcGFydGljbGVzT3B0aW9ucyA6IChwYXJ0aWNsZXNPcHRpb25zID0ge30pO1xuICAgICAgICAoX2MgPSBwYXJ0aWNsZXNPcHRpb25zLm1vdmUpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IChwYXJ0aWNsZXNPcHRpb25zLm1vdmUgPSB7fSk7XG4gICAgICAgIChfZCA9IChfZyA9IHBhcnRpY2xlc09wdGlvbnMubW92ZSkuZGlyZWN0aW9uKSAhPT0gbnVsbCAmJiBfZCAhPT0gdm9pZCAwID8gX2QgOiAoX2cuZGlyZWN0aW9uID0gdGhpcy5lbWl0dGVyT3B0aW9ucy5kaXJlY3Rpb24pO1xuICAgICAgICBpZiAodGhpcy5lbWl0dGVyT3B0aW9ucy5zcGF3bkNvbG9yICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc3Bhd25Db2xvciA9ICgwLCBVdGlsc18xLmNvbG9yVG9Ic2wpKHRoaXMuZW1pdHRlck9wdGlvbnMuc3Bhd25Db2xvcik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wYXVzZWQgPSAhdGhpcy5lbWl0dGVyT3B0aW9ucy5hdXRvUGxheTtcbiAgICAgICAgdGhpcy5wYXJ0aWNsZXNPcHRpb25zID0gcGFydGljbGVzT3B0aW9ucztcbiAgICAgICAgdGhpcy5zaXplID1cbiAgICAgICAgICAgIChfZSA9IHRoaXMuZW1pdHRlck9wdGlvbnMuc2l6ZSkgIT09IG51bGwgJiYgX2UgIT09IHZvaWQgMCA/IF9lIDogKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzaXplID0gbmV3IEVtaXR0ZXJTaXplXzEuRW1pdHRlclNpemUoKTtcbiAgICAgICAgICAgICAgICBzaXplLmxvYWQoe1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDAsXG4gICAgICAgICAgICAgICAgICAgIG1vZGU6IEVudW1zXzEuU2l6ZU1vZGUucGVyY2VudCxcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDAsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNpemU7XG4gICAgICAgICAgICB9KSgpO1xuICAgICAgICB0aGlzLmxpZmVDb3VudCA9IChfZiA9IHRoaXMuZW1pdHRlck9wdGlvbnMubGlmZS5jb3VudCkgIT09IG51bGwgJiYgX2YgIT09IHZvaWQgMCA/IF9mIDogLTE7XG4gICAgICAgIHRoaXMuaW1tb3J0YWwgPSB0aGlzLmxpZmVDb3VudCA8PSAwO1xuICAgICAgICB0aGlzLnBsYXkoKTtcbiAgICB9XG4gICAgZXh0ZXJuYWxQbGF5KCkge1xuICAgICAgICB0aGlzLnBhdXNlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnBsYXkoKTtcbiAgICB9XG4gICAgZXh0ZXJuYWxQYXVzZSgpIHtcbiAgICAgICAgdGhpcy5wYXVzZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLnBhdXNlKCk7XG4gICAgfVxuICAgIHBsYXkoKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKHRoaXMucGF1c2VkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuY29udGFpbmVyLnJldGluYS5yZWR1Y2VGYWN0b3IgJiZcbiAgICAgICAgICAgICh0aGlzLmxpZmVDb3VudCA+IDAgfHwgdGhpcy5pbW1vcnRhbCB8fCAhdGhpcy5lbWl0dGVyT3B0aW9ucy5saWZlLmNvdW50KSAmJlxuICAgICAgICAgICAgKF9fY2xhc3NQcml2YXRlRmllbGRHZXQodGhpcywgX0VtaXR0ZXJJbnN0YW5jZV9maXJzdFNwYXduLCBcImZcIikgfHwgdGhpcy5jdXJyZW50U3Bhd25EZWxheSA+PSAoKF9hID0gdGhpcy5zcGF3bkRlbGF5KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAwKSkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmVtaXREZWxheSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGVsYXkgPSAoMCwgVXRpbHNfMS5nZXRSYW5nZVZhbHVlKSh0aGlzLmVtaXR0ZXJPcHRpb25zLnJhdGUuZGVsYXkpO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdERlbGF5ID0gKDEwMDAgKiBkZWxheSkgLyB0aGlzLmNvbnRhaW5lci5yZXRpbmEucmVkdWNlRmFjdG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMubGlmZUNvdW50ID4gMCB8fCB0aGlzLmltbW9ydGFsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcmVwYXJlVG9EaWUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBwYXVzZSgpIHtcbiAgICAgICAgaWYgKHRoaXMucGF1c2VkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZGVsZXRlIHRoaXMuZW1pdERlbGF5O1xuICAgIH1cbiAgICByZXNpemUoKSB7XG4gICAgICAgIGNvbnN0IGluaXRpYWxQb3NpdGlvbiA9IHRoaXMuaW5pdGlhbFBvc2l0aW9uO1xuICAgICAgICB0aGlzLnBvc2l0aW9uID1cbiAgICAgICAgICAgIGluaXRpYWxQb3NpdGlvbiAmJiAoMCwgVXRpbHNfMS5pc1BvaW50SW5zaWRlKShpbml0aWFsUG9zaXRpb24sIHRoaXMuY29udGFpbmVyLmNhbnZhcy5zaXplKVxuICAgICAgICAgICAgICAgID8gaW5pdGlhbFBvc2l0aW9uXG4gICAgICAgICAgICAgICAgOiB0aGlzLmNhbGNQb3NpdGlvbigpO1xuICAgIH1cbiAgICB1cGRhdGUoZGVsdGEpIHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgIGlmICh0aGlzLnBhdXNlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KHRoaXMsIF9FbWl0dGVySW5zdGFuY2VfZmlyc3RTcGF3biwgXCJmXCIpKSB7XG4gICAgICAgICAgICBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KHRoaXMsIF9FbWl0dGVySW5zdGFuY2VfZmlyc3RTcGF3biwgZmFsc2UsIFwiZlwiKTtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFNwYXduRGVsYXkgPSAoX2EgPSB0aGlzLnNwYXduRGVsYXkpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IDA7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRFbWl0RGVsYXkgPSAoX2IgPSB0aGlzLmVtaXREZWxheSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogMDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIV9fY2xhc3NQcml2YXRlRmllbGRHZXQodGhpcywgX0VtaXR0ZXJJbnN0YW5jZV9zdGFydFBhcnRpY2xlc0FkZGVkLCBcImZcIikpIHtcbiAgICAgICAgICAgIF9fY2xhc3NQcml2YXRlRmllbGRTZXQodGhpcywgX0VtaXR0ZXJJbnN0YW5jZV9zdGFydFBhcnRpY2xlc0FkZGVkLCB0cnVlLCBcImZcIik7XG4gICAgICAgICAgICB0aGlzLmVtaXRQYXJ0aWNsZXModGhpcy5lbWl0dGVyT3B0aW9ucy5zdGFydENvdW50KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5kdXJhdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnREdXJhdGlvbiArPSBkZWx0YS52YWx1ZTtcbiAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnREdXJhdGlvbiA+PSB0aGlzLmR1cmF0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYXVzZSgpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnNwYXduRGVsYXkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5zcGF3bkRlbGF5O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaW1tb3J0YWwpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5saWZlQ291bnQtLTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubGlmZUNvdW50ID4gMCB8fCB0aGlzLmltbW9ydGFsKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPSB0aGlzLmNhbGNQb3NpdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNwYXduRGVsYXkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgKCgoX2MgPSB0aGlzLmVtaXR0ZXJPcHRpb25zLmxpZmUuZGVsYXkpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IDApICogMTAwMCkgLyB0aGlzLmNvbnRhaW5lci5yZXRpbmEucmVkdWNlRmFjdG9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZXN0cm95KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudER1cmF0aW9uIC09IHRoaXMuZHVyYXRpb247XG4gICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuZHVyYXRpb247XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuc3Bhd25EZWxheSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRTcGF3bkRlbGF5ICs9IGRlbHRhLnZhbHVlO1xuICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudFNwYXduRGVsYXkgPj0gdGhpcy5zcGF3bkRlbGF5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wbGF5KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50U3Bhd25EZWxheSAtPSB0aGlzLmN1cnJlbnRTcGF3bkRlbGF5O1xuICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnNwYXduRGVsYXk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZW1pdERlbGF5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudEVtaXREZWxheSArPSBkZWx0YS52YWx1ZTtcbiAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRFbWl0RGVsYXkgPj0gdGhpcy5lbWl0RGVsYXkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRFbWl0RGVsYXkgLT0gdGhpcy5lbWl0RGVsYXk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHJlcGFyZVRvRGllKCkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICh0aGlzLnBhdXNlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGR1cmF0aW9uID0gKF9hID0gdGhpcy5lbWl0dGVyT3B0aW9ucy5saWZlKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZHVyYXRpb247XG4gICAgICAgIGlmICh0aGlzLmNvbnRhaW5lci5yZXRpbmEucmVkdWNlRmFjdG9yICYmXG4gICAgICAgICAgICAodGhpcy5saWZlQ291bnQgPiAwIHx8IHRoaXMuaW1tb3J0YWwpICYmXG4gICAgICAgICAgICBkdXJhdGlvbiAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICBkdXJhdGlvbiA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuZHVyYXRpb24gPSBkdXJhdGlvbiAqIDEwMDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5lbWl0dGVycy5yZW1vdmVFbWl0dGVyKHRoaXMpO1xuICAgIH1cbiAgICBjYWxjUG9zaXRpb24oKSB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyO1xuICAgICAgICBjb25zdCBwZXJjZW50UG9zaXRpb24gPSB0aGlzLmVtaXR0ZXJPcHRpb25zLnBvc2l0aW9uO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgeDogKCgoX2EgPSBwZXJjZW50UG9zaXRpb24gPT09IG51bGwgfHwgcGVyY2VudFBvc2l0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwZXJjZW50UG9zaXRpb24ueCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogTWF0aC5yYW5kb20oKSAqIDEwMCkgLyAxMDApICogY29udGFpbmVyLmNhbnZhcy5zaXplLndpZHRoLFxuICAgICAgICAgICAgeTogKCgoX2IgPSBwZXJjZW50UG9zaXRpb24gPT09IG51bGwgfHwgcGVyY2VudFBvc2l0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwZXJjZW50UG9zaXRpb24ueSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogTWF0aC5yYW5kb20oKSAqIDEwMCkgLyAxMDApICogY29udGFpbmVyLmNhbnZhcy5zaXplLmhlaWdodCxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZW1pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMucGF1c2VkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcXVhbnRpdHkgPSAoMCwgVXRpbHNfMS5nZXRSYW5nZVZhbHVlKSh0aGlzLmVtaXR0ZXJPcHRpb25zLnJhdGUucXVhbnRpdHkpO1xuICAgICAgICB0aGlzLmVtaXRQYXJ0aWNsZXMocXVhbnRpdHkpO1xuICAgIH1cbiAgICBlbWl0UGFydGljbGVzKHF1YW50aXR5KSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLnBvc2l0aW9uO1xuICAgICAgICBjb25zdCBvZmZzZXQgPSB7XG4gICAgICAgICAgICB4OiB0aGlzLnNpemUubW9kZSA9PT0gRW51bXNfMS5TaXplTW9kZS5wZXJjZW50XG4gICAgICAgICAgICAgICAgPyAoY29udGFpbmVyLmNhbnZhcy5zaXplLndpZHRoICogdGhpcy5zaXplLndpZHRoKSAvIDEwMFxuICAgICAgICAgICAgICAgIDogdGhpcy5zaXplLndpZHRoLFxuICAgICAgICAgICAgeTogdGhpcy5zaXplLm1vZGUgPT09IEVudW1zXzEuU2l6ZU1vZGUucGVyY2VudFxuICAgICAgICAgICAgICAgID8gKGNvbnRhaW5lci5jYW52YXMuc2l6ZS5oZWlnaHQgKiB0aGlzLnNpemUuaGVpZ2h0KSAvIDEwMFxuICAgICAgICAgICAgICAgIDogdGhpcy5zaXplLmhlaWdodCxcbiAgICAgICAgfTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBxdWFudGl0eTsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJ0aWNsZXNPcHRpb25zID0gKDAsIFV0aWxzXzEuZGVlcEV4dGVuZCkoe30sIHRoaXMucGFydGljbGVzT3B0aW9ucyk7XG4gICAgICAgICAgICBpZiAodGhpcy5zcGF3bkNvbG9yKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29sb3JBbmltYXRpb24gPSAoX2EgPSB0aGlzLmVtaXR0ZXJPcHRpb25zLnNwYXduQ29sb3IpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5hbmltYXRpb247XG4gICAgICAgICAgICAgICAgaWYgKGNvbG9yQW5pbWF0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGh1ZUFuaW1hdGlvbiA9IGNvbG9yQW5pbWF0aW9uO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaHVlQW5pbWF0aW9uLmVuYWJsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zcGF3bkNvbG9yLmggPSB0aGlzLnNldENvbG9yQW5pbWF0aW9uKGh1ZUFuaW1hdGlvbiwgdGhpcy5zcGF3bkNvbG9yLmgsIDM2MCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoc2xBbmltYXRpb24gPSBjb2xvckFuaW1hdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3Bhd25Db2xvci5oID0gdGhpcy5zZXRDb2xvckFuaW1hdGlvbihoc2xBbmltYXRpb24uaCwgdGhpcy5zcGF3bkNvbG9yLmgsIDM2MCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNwYXduQ29sb3IucyA9IHRoaXMuc2V0Q29sb3JBbmltYXRpb24oaHNsQW5pbWF0aW9uLnMsIHRoaXMuc3Bhd25Db2xvci5zLCAxMDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zcGF3bkNvbG9yLmwgPSB0aGlzLnNldENvbG9yQW5pbWF0aW9uKGhzbEFuaW1hdGlvbi5sLCB0aGlzLnNwYXduQ29sb3IubCwgMTAwKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoIXBhcnRpY2xlc09wdGlvbnMuY29sb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFydGljbGVzT3B0aW9ucy5jb2xvciA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLnNwYXduQ29sb3IsXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBwYXJ0aWNsZXNPcHRpb25zLmNvbG9yLnZhbHVlID0gdGhpcy5zcGF3bkNvbG9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHBQb3NpdGlvbiA9IChfYyA9IChfYiA9IHRoaXMuc2hhcGUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5yYW5kb21Qb3NpdGlvbihwb3NpdGlvbiwgb2Zmc2V0LCB0aGlzLmZpbGwpKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiBwb3NpdGlvbjtcbiAgICAgICAgICAgIGNvbnRhaW5lci5wYXJ0aWNsZXMuYWRkUGFydGljbGUocFBvc2l0aW9uLCBwYXJ0aWNsZXNPcHRpb25zKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzZXRDb2xvckFuaW1hdGlvbihhbmltYXRpb24sIGluaXRWYWx1ZSwgbWF4VmFsdWUpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgaWYgKCFhbmltYXRpb24uZW5hYmxlKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5pdFZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbG9yT2Zmc2V0ID0gKDAsIFV0aWxzXzEucmFuZG9tSW5SYW5nZSkoYW5pbWF0aW9uLm9mZnNldCk7XG4gICAgICAgIGNvbnN0IGRlbGF5ID0gKDAsIFV0aWxzXzEuZ2V0UmFuZ2VWYWx1ZSkodGhpcy5lbWl0dGVyT3B0aW9ucy5yYXRlLmRlbGF5KTtcbiAgICAgICAgY29uc3QgZW1pdEZhY3RvciA9ICgxMDAwICogZGVsYXkpIC8gY29udGFpbmVyLnJldGluYS5yZWR1Y2VGYWN0b3I7XG4gICAgICAgIGNvbnN0IGNvbG9yU3BlZWQgPSAoX2EgPSBhbmltYXRpb24uc3BlZWQpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IDA7XG4gICAgICAgIHJldHVybiAoaW5pdFZhbHVlICsgKGNvbG9yU3BlZWQgKiBjb250YWluZXIuZnBzTGltaXQpIC8gZW1pdEZhY3RvciArIGNvbG9yT2Zmc2V0ICogMy42KSAlIG1heFZhbHVlO1xuICAgIH1cbn1cbmV4cG9ydHMuRW1pdHRlckluc3RhbmNlID0gRW1pdHRlckluc3RhbmNlO1xuX0VtaXR0ZXJJbnN0YW5jZV9maXJzdFNwYXduID0gbmV3IFdlYWtNYXAoKSwgX0VtaXR0ZXJJbnN0YW5jZV9zdGFydFBhcnRpY2xlc0FkZGVkID0gbmV3IFdlYWtNYXAoKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/Emitters/EmitterInstance.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/Emitters/Emitters.js": +/*!***************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/Emitters/Emitters.js ***! + \***************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Emitters = void 0;\nconst EmitterInstance_1 = __webpack_require__(/*! ./EmitterInstance */ \"./node_modules/tsparticles/Plugins/Emitters/EmitterInstance.js\");\nconst Emitter_1 = __webpack_require__(/*! ./Options/Classes/Emitter */ \"./node_modules/tsparticles/Plugins/Emitters/Options/Classes/Emitter.js\");\nconst Enums_1 = __webpack_require__(/*! ./Enums */ \"./node_modules/tsparticles/Plugins/Emitters/Enums/index.js\");\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass Emitters {\n constructor(container) {\n this.container = container;\n this.array = [];\n this.emitters = [];\n this.interactivityEmitters = [];\n const overridableContainer = container;\n overridableContainer.getEmitter = (idxOrName) => idxOrName === undefined || typeof idxOrName === \"number\"\n ? this.array[idxOrName || 0]\n : this.array.find((t) => t.name === idxOrName);\n overridableContainer.addEmitter = (options, position) => this.addEmitter(options, position);\n overridableContainer.playEmitter = (idxOrName) => {\n const emitter = overridableContainer.getEmitter(idxOrName);\n if (emitter) {\n emitter.externalPlay();\n }\n };\n overridableContainer.pauseEmitter = (idxOrName) => {\n const emitter = overridableContainer.getEmitter(idxOrName);\n if (emitter) {\n emitter.externalPause();\n }\n };\n }\n init(options) {\n var _a, _b;\n if (!options) {\n return;\n }\n if (options.emitters) {\n if (options.emitters instanceof Array) {\n this.emitters = options.emitters.map((s) => {\n const tmp = new Emitter_1.Emitter();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.emitters instanceof Array) {\n this.emitters = new Emitter_1.Emitter();\n }\n this.emitters.load(options.emitters);\n }\n }\n const interactivityEmitters = (_b = (_a = options.interactivity) === null || _a === void 0 ? void 0 : _a.modes) === null || _b === void 0 ? void 0 : _b.emitters;\n if (interactivityEmitters) {\n if (interactivityEmitters instanceof Array) {\n this.interactivityEmitters = interactivityEmitters.map((s) => {\n const tmp = new Emitter_1.Emitter();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.interactivityEmitters instanceof Array) {\n this.interactivityEmitters = new Emitter_1.Emitter();\n }\n this.interactivityEmitters.load(interactivityEmitters);\n }\n }\n if (this.emitters instanceof Array) {\n for (const emitterOptions of this.emitters) {\n this.addEmitter(emitterOptions);\n }\n }\n else {\n this.addEmitter(this.emitters);\n }\n }\n play() {\n for (const emitter of this.array) {\n emitter.play();\n }\n }\n pause() {\n for (const emitter of this.array) {\n emitter.pause();\n }\n }\n stop() {\n this.array = [];\n }\n update(delta) {\n for (const emitter of this.array) {\n emitter.update(delta);\n }\n }\n handleClickMode(mode) {\n const container = this.container;\n const emitterOptions = this.emitters;\n const modeEmitters = this.interactivityEmitters;\n if (mode === Enums_1.EmitterClickMode.emitter) {\n let emitterModeOptions;\n if (modeEmitters instanceof Array) {\n if (modeEmitters.length > 0) {\n emitterModeOptions = (0, Utils_1.itemFromArray)(modeEmitters);\n }\n }\n else {\n emitterModeOptions = modeEmitters;\n }\n const emittersOptions = emitterModeOptions !== null && emitterModeOptions !== void 0 ? emitterModeOptions : (emitterOptions instanceof Array ? (0, Utils_1.itemFromArray)(emitterOptions) : emitterOptions);\n const ePosition = container.interactivity.mouse.clickPosition;\n this.addEmitter((0, Utils_1.deepExtend)({}, emittersOptions), ePosition);\n }\n }\n resize() {\n for (const emitter of this.array) {\n emitter.resize();\n }\n }\n addEmitter(options, position) {\n const emitter = new EmitterInstance_1.EmitterInstance(this, this.container, options, position);\n this.array.push(emitter);\n return emitter;\n }\n removeEmitter(emitter) {\n const index = this.array.indexOf(emitter);\n if (index >= 0) {\n this.array.splice(index, 1);\n }\n }\n}\nexports.Emitters = Emitters;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9FbWl0dGVycy9FbWl0dGVycy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxnQkFBZ0I7QUFDaEIsMEJBQTBCLG1CQUFPLENBQUMseUZBQW1CO0FBQ3JELGtCQUFrQixtQkFBTyxDQUFDLHlHQUEyQjtBQUNyRCxnQkFBZ0IsbUJBQU8sQ0FBQywyRUFBUztBQUNqQyxnQkFBZ0IsbUJBQU8sQ0FBQyw4REFBYTtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzREFBc0Q7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1BsdWdpbnMvRW1pdHRlcnMvRW1pdHRlcnMuanM/YWJkOSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuRW1pdHRlcnMgPSB2b2lkIDA7XG5jb25zdCBFbWl0dGVySW5zdGFuY2VfMSA9IHJlcXVpcmUoXCIuL0VtaXR0ZXJJbnN0YW5jZVwiKTtcbmNvbnN0IEVtaXR0ZXJfMSA9IHJlcXVpcmUoXCIuL09wdGlvbnMvQ2xhc3Nlcy9FbWl0dGVyXCIpO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuL0VudW1zXCIpO1xuY29uc3QgVXRpbHNfMSA9IHJlcXVpcmUoXCIuLi8uLi9VdGlsc1wiKTtcbmNsYXNzIEVtaXR0ZXJzIHtcbiAgICBjb25zdHJ1Y3Rvcihjb250YWluZXIpIHtcbiAgICAgICAgdGhpcy5jb250YWluZXIgPSBjb250YWluZXI7XG4gICAgICAgIHRoaXMuYXJyYXkgPSBbXTtcbiAgICAgICAgdGhpcy5lbWl0dGVycyA9IFtdO1xuICAgICAgICB0aGlzLmludGVyYWN0aXZpdHlFbWl0dGVycyA9IFtdO1xuICAgICAgICBjb25zdCBvdmVycmlkYWJsZUNvbnRhaW5lciA9IGNvbnRhaW5lcjtcbiAgICAgICAgb3ZlcnJpZGFibGVDb250YWluZXIuZ2V0RW1pdHRlciA9IChpZHhPck5hbWUpID0+IGlkeE9yTmFtZSA9PT0gdW5kZWZpbmVkIHx8IHR5cGVvZiBpZHhPck5hbWUgPT09IFwibnVtYmVyXCJcbiAgICAgICAgICAgID8gdGhpcy5hcnJheVtpZHhPck5hbWUgfHwgMF1cbiAgICAgICAgICAgIDogdGhpcy5hcnJheS5maW5kKCh0KSA9PiB0Lm5hbWUgPT09IGlkeE9yTmFtZSk7XG4gICAgICAgIG92ZXJyaWRhYmxlQ29udGFpbmVyLmFkZEVtaXR0ZXIgPSAob3B0aW9ucywgcG9zaXRpb24pID0+IHRoaXMuYWRkRW1pdHRlcihvcHRpb25zLCBwb3NpdGlvbik7XG4gICAgICAgIG92ZXJyaWRhYmxlQ29udGFpbmVyLnBsYXlFbWl0dGVyID0gKGlkeE9yTmFtZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZW1pdHRlciA9IG92ZXJyaWRhYmxlQ29udGFpbmVyLmdldEVtaXR0ZXIoaWR4T3JOYW1lKTtcbiAgICAgICAgICAgIGlmIChlbWl0dGVyKSB7XG4gICAgICAgICAgICAgICAgZW1pdHRlci5leHRlcm5hbFBsYXkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgb3ZlcnJpZGFibGVDb250YWluZXIucGF1c2VFbWl0dGVyID0gKGlkeE9yTmFtZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZW1pdHRlciA9IG92ZXJyaWRhYmxlQ29udGFpbmVyLmdldEVtaXR0ZXIoaWR4T3JOYW1lKTtcbiAgICAgICAgICAgIGlmIChlbWl0dGVyKSB7XG4gICAgICAgICAgICAgICAgZW1pdHRlci5leHRlcm5hbFBhdXNlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuICAgIGluaXQob3B0aW9ucykge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAoIW9wdGlvbnMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5lbWl0dGVycykge1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMuZW1pdHRlcnMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdHRlcnMgPSBvcHRpb25zLmVtaXR0ZXJzLm1hcCgocykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0bXAgPSBuZXcgRW1pdHRlcl8xLkVtaXR0ZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgdG1wLmxvYWQocyk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0bXA7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5lbWl0dGVycyBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW1pdHRlcnMgPSBuZXcgRW1pdHRlcl8xLkVtaXR0ZXIoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0dGVycy5sb2FkKG9wdGlvbnMuZW1pdHRlcnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGludGVyYWN0aXZpdHlFbWl0dGVycyA9IChfYiA9IChfYSA9IG9wdGlvbnMuaW50ZXJhY3Rpdml0eSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm1vZGVzKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuZW1pdHRlcnM7XG4gICAgICAgIGlmIChpbnRlcmFjdGl2aXR5RW1pdHRlcnMpIHtcbiAgICAgICAgICAgIGlmIChpbnRlcmFjdGl2aXR5RW1pdHRlcnMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW50ZXJhY3Rpdml0eUVtaXR0ZXJzID0gaW50ZXJhY3Rpdml0eUVtaXR0ZXJzLm1hcCgocykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0bXAgPSBuZXcgRW1pdHRlcl8xLkVtaXR0ZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgdG1wLmxvYWQocyk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0bXA7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pbnRlcmFjdGl2aXR5RW1pdHRlcnMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmludGVyYWN0aXZpdHlFbWl0dGVycyA9IG5ldyBFbWl0dGVyXzEuRW1pdHRlcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmludGVyYWN0aXZpdHlFbWl0dGVycy5sb2FkKGludGVyYWN0aXZpdHlFbWl0dGVycyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZW1pdHRlcnMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBlbWl0dGVyT3B0aW9ucyBvZiB0aGlzLmVtaXR0ZXJzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hZGRFbWl0dGVyKGVtaXR0ZXJPcHRpb25zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuYWRkRW1pdHRlcih0aGlzLmVtaXR0ZXJzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwbGF5KCkge1xuICAgICAgICBmb3IgKGNvbnN0IGVtaXR0ZXIgb2YgdGhpcy5hcnJheSkge1xuICAgICAgICAgICAgZW1pdHRlci5wbGF5KCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcGF1c2UoKSB7XG4gICAgICAgIGZvciAoY29uc3QgZW1pdHRlciBvZiB0aGlzLmFycmF5KSB7XG4gICAgICAgICAgICBlbWl0dGVyLnBhdXNlKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3RvcCgpIHtcbiAgICAgICAgdGhpcy5hcnJheSA9IFtdO1xuICAgIH1cbiAgICB1cGRhdGUoZGVsdGEpIHtcbiAgICAgICAgZm9yIChjb25zdCBlbWl0dGVyIG9mIHRoaXMuYXJyYXkpIHtcbiAgICAgICAgICAgIGVtaXR0ZXIudXBkYXRlKGRlbHRhKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBoYW5kbGVDbGlja01vZGUobW9kZSkge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgY29uc3QgZW1pdHRlck9wdGlvbnMgPSB0aGlzLmVtaXR0ZXJzO1xuICAgICAgICBjb25zdCBtb2RlRW1pdHRlcnMgPSB0aGlzLmludGVyYWN0aXZpdHlFbWl0dGVycztcbiAgICAgICAgaWYgKG1vZGUgPT09IEVudW1zXzEuRW1pdHRlckNsaWNrTW9kZS5lbWl0dGVyKSB7XG4gICAgICAgICAgICBsZXQgZW1pdHRlck1vZGVPcHRpb25zO1xuICAgICAgICAgICAgaWYgKG1vZGVFbWl0dGVycyBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICAgICAgaWYgKG1vZGVFbWl0dGVycy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGVtaXR0ZXJNb2RlT3B0aW9ucyA9ICgwLCBVdGlsc18xLml0ZW1Gcm9tQXJyYXkpKG1vZGVFbWl0dGVycyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgZW1pdHRlck1vZGVPcHRpb25zID0gbW9kZUVtaXR0ZXJzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgZW1pdHRlcnNPcHRpb25zID0gZW1pdHRlck1vZGVPcHRpb25zICE9PSBudWxsICYmIGVtaXR0ZXJNb2RlT3B0aW9ucyAhPT0gdm9pZCAwID8gZW1pdHRlck1vZGVPcHRpb25zIDogKGVtaXR0ZXJPcHRpb25zIGluc3RhbmNlb2YgQXJyYXkgPyAoMCwgVXRpbHNfMS5pdGVtRnJvbUFycmF5KShlbWl0dGVyT3B0aW9ucykgOiBlbWl0dGVyT3B0aW9ucyk7XG4gICAgICAgICAgICBjb25zdCBlUG9zaXRpb24gPSBjb250YWluZXIuaW50ZXJhY3Rpdml0eS5tb3VzZS5jbGlja1Bvc2l0aW9uO1xuICAgICAgICAgICAgdGhpcy5hZGRFbWl0dGVyKCgwLCBVdGlsc18xLmRlZXBFeHRlbmQpKHt9LCBlbWl0dGVyc09wdGlvbnMpLCBlUG9zaXRpb24pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJlc2l6ZSgpIHtcbiAgICAgICAgZm9yIChjb25zdCBlbWl0dGVyIG9mIHRoaXMuYXJyYXkpIHtcbiAgICAgICAgICAgIGVtaXR0ZXIucmVzaXplKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYWRkRW1pdHRlcihvcHRpb25zLCBwb3NpdGlvbikge1xuICAgICAgICBjb25zdCBlbWl0dGVyID0gbmV3IEVtaXR0ZXJJbnN0YW5jZV8xLkVtaXR0ZXJJbnN0YW5jZSh0aGlzLCB0aGlzLmNvbnRhaW5lciwgb3B0aW9ucywgcG9zaXRpb24pO1xuICAgICAgICB0aGlzLmFycmF5LnB1c2goZW1pdHRlcik7XG4gICAgICAgIHJldHVybiBlbWl0dGVyO1xuICAgIH1cbiAgICByZW1vdmVFbWl0dGVyKGVtaXR0ZXIpIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmFycmF5LmluZGV4T2YoZW1pdHRlcik7XG4gICAgICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmFycmF5LnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkVtaXR0ZXJzID0gRW1pdHRlcnM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/Emitters/Emitters.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/Emitters/EmittersMain.js": +/*!*******************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/Emitters/EmittersMain.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9FbWl0dGVycy9FbWl0dGVyc01haW4uanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1BsdWdpbnMvRW1pdHRlcnMvRW1pdHRlcnNNYWluLmpzP2I1NDEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/Emitters/EmittersMain.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/Emitters/Enums/EmitterClickMode.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/Emitters/Enums/EmitterClickMode.js ***! + \*****************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.EmitterClickMode = void 0;\nvar EmitterClickMode;\n(function (EmitterClickMode) {\n EmitterClickMode[\"emitter\"] = \"emitter\";\n})(EmitterClickMode = exports.EmitterClickMode || (exports.EmitterClickMode = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9FbWl0dGVycy9FbnVtcy9FbWl0dGVyQ2xpY2tNb2RlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQSxDQUFDLGtEQUFrRCx3QkFBd0IsS0FBSyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9FbWl0dGVycy9FbnVtcy9FbWl0dGVyQ2xpY2tNb2RlLmpzPzEwM2MiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkVtaXR0ZXJDbGlja01vZGUgPSB2b2lkIDA7XG52YXIgRW1pdHRlckNsaWNrTW9kZTtcbihmdW5jdGlvbiAoRW1pdHRlckNsaWNrTW9kZSkge1xuICAgIEVtaXR0ZXJDbGlja01vZGVbXCJlbWl0dGVyXCJdID0gXCJlbWl0dGVyXCI7XG59KShFbWl0dGVyQ2xpY2tNb2RlID0gZXhwb3J0cy5FbWl0dGVyQ2xpY2tNb2RlIHx8IChleHBvcnRzLkVtaXR0ZXJDbGlja01vZGUgPSB7fSkpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/Emitters/Enums/EmitterClickMode.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/Emitters/Enums/EmitterShapeType.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/Emitters/Enums/EmitterShapeType.js ***! + \*****************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.EmitterShapeType = void 0;\nvar EmitterShapeType;\n(function (EmitterShapeType) {\n EmitterShapeType[\"circle\"] = \"circle\";\n EmitterShapeType[\"square\"] = \"square\";\n})(EmitterShapeType = exports.EmitterShapeType || (exports.EmitterShapeType = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9FbWl0dGVycy9FbnVtcy9FbWl0dGVyU2hhcGVUeXBlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsa0RBQWtELHdCQUF3QixLQUFLIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9QbHVnaW5zL0VtaXR0ZXJzL0VudW1zL0VtaXR0ZXJTaGFwZVR5cGUuanM/ZDJlYSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuRW1pdHRlclNoYXBlVHlwZSA9IHZvaWQgMDtcbnZhciBFbWl0dGVyU2hhcGVUeXBlO1xuKGZ1bmN0aW9uIChFbWl0dGVyU2hhcGVUeXBlKSB7XG4gICAgRW1pdHRlclNoYXBlVHlwZVtcImNpcmNsZVwiXSA9IFwiY2lyY2xlXCI7XG4gICAgRW1pdHRlclNoYXBlVHlwZVtcInNxdWFyZVwiXSA9IFwic3F1YXJlXCI7XG59KShFbWl0dGVyU2hhcGVUeXBlID0gZXhwb3J0cy5FbWl0dGVyU2hhcGVUeXBlIHx8IChleHBvcnRzLkVtaXR0ZXJTaGFwZVR5cGUgPSB7fSkpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/Emitters/Enums/EmitterShapeType.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/Emitters/Enums/index.js": +/*!******************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/Emitters/Enums/index.js ***! + \******************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n__exportStar(__webpack_require__(/*! ./EmitterClickMode */ \"./node_modules/tsparticles/Plugins/Emitters/Enums/EmitterClickMode.js\"), exports);\n__exportStar(__webpack_require__(/*! ./EmitterShapeType */ \"./node_modules/tsparticles/Plugins/Emitters/Enums/EmitterShapeType.js\"), exports);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9FbWl0dGVycy9FbnVtcy9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0E7QUFDQSxtQ0FBbUMsb0NBQW9DLGdCQUFnQjtBQUN2RixDQUFDO0FBQ0Q7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQSw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsYUFBYSxtQkFBTyxDQUFDLGlHQUFvQjtBQUN6QyxhQUFhLG1CQUFPLENBQUMsaUdBQW9CIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9QbHVnaW5zL0VtaXR0ZXJzL0VudW1zL2luZGV4LmpzPzRlY2EiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19jcmVhdGVCaW5kaW5nID0gKHRoaXMgJiYgdGhpcy5fX2NyZWF0ZUJpbmRpbmcpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfSk7XG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgb1trMl0gPSBtW2tdO1xufSkpO1xudmFyIF9fZXhwb3J0U3RhciA9ICh0aGlzICYmIHRoaXMuX19leHBvcnRTdGFyKSB8fCBmdW5jdGlvbihtLCBleHBvcnRzKSB7XG4gICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gXCJkZWZhdWx0XCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzLCBwKSkgX19jcmVhdGVCaW5kaW5nKGV4cG9ydHMsIG0sIHApO1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9FbWl0dGVyQ2xpY2tNb2RlXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9FbWl0dGVyU2hhcGVUeXBlXCIpLCBleHBvcnRzKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/Emitters/Enums/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/Emitters/Options/Classes/Emitter.js": +/*!******************************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/Emitters/Options/Classes/Emitter.js ***! + \******************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Emitter = void 0;\nconst EmitterRate_1 = __webpack_require__(/*! ./EmitterRate */ \"./node_modules/tsparticles/Plugins/Emitters/Options/Classes/EmitterRate.js\");\nconst EmitterLife_1 = __webpack_require__(/*! ./EmitterLife */ \"./node_modules/tsparticles/Plugins/Emitters/Options/Classes/EmitterLife.js\");\nconst Utils_1 = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst EmitterSize_1 = __webpack_require__(/*! ./EmitterSize */ \"./node_modules/tsparticles/Plugins/Emitters/Options/Classes/EmitterSize.js\");\nconst AnimatableColor_1 = __webpack_require__(/*! ../../../../Options/Classes/AnimatableColor */ \"./node_modules/tsparticles/Options/Classes/AnimatableColor.js\");\nconst Enums_1 = __webpack_require__(/*! ../../Enums */ \"./node_modules/tsparticles/Plugins/Emitters/Enums/index.js\");\nclass Emitter {\n constructor() {\n this.autoPlay = true;\n this.fill = true;\n this.life = new EmitterLife_1.EmitterLife();\n this.rate = new EmitterRate_1.EmitterRate();\n this.shape = Enums_1.EmitterShapeType.square;\n this.startCount = 0;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.autoPlay !== undefined) {\n this.autoPlay = data.autoPlay;\n }\n if (data.size !== undefined) {\n if (this.size === undefined) {\n this.size = new EmitterSize_1.EmitterSize();\n }\n this.size.load(data.size);\n }\n if (data.direction !== undefined) {\n this.direction = data.direction;\n }\n if (data.fill !== undefined) {\n this.fill = data.fill;\n }\n this.life.load(data.life);\n this.name = data.name;\n if (data.particles !== undefined) {\n this.particles = (0, Utils_1.deepExtend)({}, data.particles);\n }\n this.rate.load(data.rate);\n if (data.shape !== undefined) {\n this.shape = data.shape;\n }\n if (data.position !== undefined) {\n this.position = {\n x: data.position.x,\n y: data.position.y,\n };\n }\n if (data.spawnColor !== undefined) {\n if (this.spawnColor === undefined) {\n this.spawnColor = new AnimatableColor_1.AnimatableColor();\n }\n this.spawnColor.load(data.spawnColor);\n }\n if (data.startCount !== undefined) {\n this.startCount = data.startCount;\n }\n }\n}\nexports.Emitter = Emitter;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9FbWl0dGVycy9PcHRpb25zL0NsYXNzZXMvRW1pdHRlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxlQUFlO0FBQ2Ysc0JBQXNCLG1CQUFPLENBQUMsaUdBQWU7QUFDN0Msc0JBQXNCLG1CQUFPLENBQUMsaUdBQWU7QUFDN0MsZ0JBQWdCLG1CQUFPLENBQUMsb0VBQW1CO0FBQzNDLHNCQUFzQixtQkFBTyxDQUFDLGlHQUFlO0FBQzdDLDBCQUEwQixtQkFBTyxDQUFDLGtIQUE2QztBQUMvRSxnQkFBZ0IsbUJBQU8sQ0FBQywrRUFBYTtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVEQUF1RDtBQUN2RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1BsdWdpbnMvRW1pdHRlcnMvT3B0aW9ucy9DbGFzc2VzL0VtaXR0ZXIuanM/ZWRlMCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuRW1pdHRlciA9IHZvaWQgMDtcbmNvbnN0IEVtaXR0ZXJSYXRlXzEgPSByZXF1aXJlKFwiLi9FbWl0dGVyUmF0ZVwiKTtcbmNvbnN0IEVtaXR0ZXJMaWZlXzEgPSByZXF1aXJlKFwiLi9FbWl0dGVyTGlmZVwiKTtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vVXRpbHNcIik7XG5jb25zdCBFbWl0dGVyU2l6ZV8xID0gcmVxdWlyZShcIi4vRW1pdHRlclNpemVcIik7XG5jb25zdCBBbmltYXRhYmxlQ29sb3JfMSA9IHJlcXVpcmUoXCIuLi8uLi8uLi8uLi9PcHRpb25zL0NsYXNzZXMvQW5pbWF0YWJsZUNvbG9yXCIpO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuLi8uLi9FbnVtc1wiKTtcbmNsYXNzIEVtaXR0ZXIge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmF1dG9QbGF5ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5maWxsID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5saWZlID0gbmV3IEVtaXR0ZXJMaWZlXzEuRW1pdHRlckxpZmUoKTtcbiAgICAgICAgdGhpcy5yYXRlID0gbmV3IEVtaXR0ZXJSYXRlXzEuRW1pdHRlclJhdGUoKTtcbiAgICAgICAgdGhpcy5zaGFwZSA9IEVudW1zXzEuRW1pdHRlclNoYXBlVHlwZS5zcXVhcmU7XG4gICAgICAgIHRoaXMuc3RhcnRDb3VudCA9IDA7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuYXV0b1BsYXkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5hdXRvUGxheSA9IGRhdGEuYXV0b1BsYXk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuc2l6ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zaXplID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNpemUgPSBuZXcgRW1pdHRlclNpemVfMS5FbWl0dGVyU2l6ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zaXplLmxvYWQoZGF0YS5zaXplKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5kaXJlY3Rpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5kaXJlY3Rpb24gPSBkYXRhLmRpcmVjdGlvbjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5maWxsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsbCA9IGRhdGEuZmlsbDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxpZmUubG9hZChkYXRhLmxpZmUpO1xuICAgICAgICB0aGlzLm5hbWUgPSBkYXRhLm5hbWU7XG4gICAgICAgIGlmIChkYXRhLnBhcnRpY2xlcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnBhcnRpY2xlcyA9ICgwLCBVdGlsc18xLmRlZXBFeHRlbmQpKHt9LCBkYXRhLnBhcnRpY2xlcyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yYXRlLmxvYWQoZGF0YS5yYXRlKTtcbiAgICAgICAgaWYgKGRhdGEuc2hhcGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5zaGFwZSA9IGRhdGEuc2hhcGU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEucG9zaXRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbiA9IHtcbiAgICAgICAgICAgICAgICB4OiBkYXRhLnBvc2l0aW9uLngsXG4gICAgICAgICAgICAgICAgeTogZGF0YS5wb3NpdGlvbi55LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5zcGF3bkNvbG9yICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnNwYXduQ29sb3IgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3Bhd25Db2xvciA9IG5ldyBBbmltYXRhYmxlQ29sb3JfMS5BbmltYXRhYmxlQ29sb3IoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc3Bhd25Db2xvci5sb2FkKGRhdGEuc3Bhd25Db2xvcik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuc3RhcnRDb3VudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXJ0Q291bnQgPSBkYXRhLnN0YXJ0Q291bnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkVtaXR0ZXIgPSBFbWl0dGVyO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/Emitters/Options/Classes/Emitter.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/Emitters/Options/Classes/EmitterLife.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/Emitters/Options/Classes/EmitterLife.js ***! + \**********************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.EmitterLife = void 0;\nclass EmitterLife {\n constructor() {\n this.wait = false;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.count !== undefined) {\n this.count = data.count;\n }\n if (data.delay !== undefined) {\n this.delay = data.delay;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n if (data.wait !== undefined) {\n this.wait = data.wait;\n }\n }\n}\nexports.EmitterLife = EmitterLife;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9FbWl0dGVycy9PcHRpb25zL0NsYXNzZXMvRW1pdHRlckxpZmUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsbUJBQW1CO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9QbHVnaW5zL0VtaXR0ZXJzL09wdGlvbnMvQ2xhc3Nlcy9FbWl0dGVyTGlmZS5qcz9lNGVmIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5FbWl0dGVyTGlmZSA9IHZvaWQgMDtcbmNsYXNzIEVtaXR0ZXJMaWZlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy53YWl0ID0gZmFsc2U7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuY291bnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5jb3VudCA9IGRhdGEuY291bnQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZGVsYXkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5kZWxheSA9IGRhdGEuZGVsYXk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZHVyYXRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5kdXJhdGlvbiA9IGRhdGEuZHVyYXRpb247XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEud2FpdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLndhaXQgPSBkYXRhLndhaXQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkVtaXR0ZXJMaWZlID0gRW1pdHRlckxpZmU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/Emitters/Options/Classes/EmitterLife.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/Emitters/Options/Classes/EmitterRate.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/Emitters/Options/Classes/EmitterRate.js ***! + \**********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.EmitterRate = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass EmitterRate {\n constructor() {\n this.quantity = 1;\n this.delay = 0.1;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.quantity !== undefined) {\n this.quantity = (0, Utils_1.setRangeValue)(data.quantity);\n }\n if (data.delay !== undefined) {\n this.delay = (0, Utils_1.setRangeValue)(data.delay);\n }\n }\n}\nexports.EmitterRate = EmitterRate;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9FbWl0dGVycy9PcHRpb25zL0NsYXNzZXMvRW1pdHRlclJhdGUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsbUJBQW1CO0FBQ25CLGdCQUFnQixtQkFBTyxDQUFDLG9FQUFtQjtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9QbHVnaW5zL0VtaXR0ZXJzL09wdGlvbnMvQ2xhc3Nlcy9FbWl0dGVyUmF0ZS5qcz9lZDkwIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5FbWl0dGVyUmF0ZSA9IHZvaWQgMDtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vVXRpbHNcIik7XG5jbGFzcyBFbWl0dGVyUmF0ZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMucXVhbnRpdHkgPSAxO1xuICAgICAgICB0aGlzLmRlbGF5ID0gMC4xO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnF1YW50aXR5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMucXVhbnRpdHkgPSAoMCwgVXRpbHNfMS5zZXRSYW5nZVZhbHVlKShkYXRhLnF1YW50aXR5KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5kZWxheSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmRlbGF5ID0gKDAsIFV0aWxzXzEuc2V0UmFuZ2VWYWx1ZSkoZGF0YS5kZWxheSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkVtaXR0ZXJSYXRlID0gRW1pdHRlclJhdGU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/Emitters/Options/Classes/EmitterRate.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/Emitters/Options/Classes/EmitterSize.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/Emitters/Options/Classes/EmitterSize.js ***! + \**********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.EmitterSize = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nclass EmitterSize {\n constructor() {\n this.mode = Enums_1.SizeMode.percent;\n this.height = 0;\n this.width = 0;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n if (data.height !== undefined) {\n this.height = data.height;\n }\n if (data.width !== undefined) {\n this.width = data.width;\n }\n }\n}\nexports.EmitterSize = EmitterSize;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9FbWl0dGVycy9PcHRpb25zL0NsYXNzZXMvRW1pdHRlclNpemUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsbUJBQW1CO0FBQ25CLGdCQUFnQixtQkFBTyxDQUFDLG9FQUFtQjtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1BsdWdpbnMvRW1pdHRlcnMvT3B0aW9ucy9DbGFzc2VzL0VtaXR0ZXJTaXplLmpzP2ZjZTYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkVtaXR0ZXJTaXplID0gdm9pZCAwO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuLi8uLi8uLi8uLi9FbnVtc1wiKTtcbmNsYXNzIEVtaXR0ZXJTaXplIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5tb2RlID0gRW51bXNfMS5TaXplTW9kZS5wZXJjZW50O1xuICAgICAgICB0aGlzLmhlaWdodCA9IDA7XG4gICAgICAgIHRoaXMud2lkdGggPSAwO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLm1vZGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5tb2RlID0gZGF0YS5tb2RlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmhlaWdodCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmhlaWdodCA9IGRhdGEuaGVpZ2h0O1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLndpZHRoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMud2lkdGggPSBkYXRhLndpZHRoO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5FbWl0dGVyU2l6ZSA9IEVtaXR0ZXJTaXplO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/Emitters/Options/Classes/EmitterSize.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/Emitters/ShapeManager.js": +/*!*******************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/Emitters/ShapeManager.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ShapeManager = void 0;\nconst shapes = new Map();\nclass ShapeManager {\n static addShape(name, drawer) {\n if (!ShapeManager.getShape(name)) {\n shapes.set(name, drawer);\n }\n }\n static getShape(name) {\n return shapes.get(name);\n }\n static getSupportedShapes() {\n return shapes.keys();\n }\n}\nexports.ShapeManager = ShapeManager;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9FbWl0dGVycy9TaGFwZU1hbmFnZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1BsdWdpbnMvRW1pdHRlcnMvU2hhcGVNYW5hZ2VyLmpzPzFmMDMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlNoYXBlTWFuYWdlciA9IHZvaWQgMDtcbmNvbnN0IHNoYXBlcyA9IG5ldyBNYXAoKTtcbmNsYXNzIFNoYXBlTWFuYWdlciB7XG4gICAgc3RhdGljIGFkZFNoYXBlKG5hbWUsIGRyYXdlcikge1xuICAgICAgICBpZiAoIVNoYXBlTWFuYWdlci5nZXRTaGFwZShuYW1lKSkge1xuICAgICAgICAgICAgc2hhcGVzLnNldChuYW1lLCBkcmF3ZXIpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHN0YXRpYyBnZXRTaGFwZShuYW1lKSB7XG4gICAgICAgIHJldHVybiBzaGFwZXMuZ2V0KG5hbWUpO1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0U3VwcG9ydGVkU2hhcGVzKCkge1xuICAgICAgICByZXR1cm4gc2hhcGVzLmtleXMoKTtcbiAgICB9XG59XG5leHBvcnRzLlNoYXBlTWFuYWdlciA9IFNoYXBlTWFuYWdlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/Emitters/ShapeManager.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/Emitters/Shapes/Circle/CircleShape.js": +/*!********************************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/Emitters/Shapes/Circle/CircleShape.js ***! + \********************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.CircleShape = void 0;\nclass CircleShape {\n randomPosition(position, offset, fill) {\n const generateTheta = (x, y) => {\n const u = Math.random() / 4.0;\n const theta = Math.atan((y / x) * Math.tan(2 * Math.PI * u));\n const v = Math.random();\n if (v < 0.25) {\n return theta;\n }\n else if (v < 0.5) {\n return Math.PI - theta;\n }\n else if (v < 0.75) {\n return Math.PI + theta;\n }\n else {\n return -theta;\n }\n };\n const radius = (x, y, theta) => (x * y) / Math.sqrt((y * Math.cos(theta)) ** 2 + (x * Math.sin(theta)) ** 2);\n const [a, b] = [offset.x / 2, offset.y / 2];\n const randomTheta = generateTheta(a, b), maxRadius = radius(a, b, randomTheta), randomRadius = fill ? maxRadius * Math.sqrt(Math.random()) : maxRadius;\n return {\n x: position.x + randomRadius * Math.cos(randomTheta),\n y: position.y + randomRadius * Math.sin(randomTheta),\n };\n }\n}\nexports.CircleShape = CircleShape;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9FbWl0dGVycy9TaGFwZXMvQ2lyY2xlL0NpcmNsZVNoYXBlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELG1CQUFtQjtBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9FbWl0dGVycy9TaGFwZXMvQ2lyY2xlL0NpcmNsZVNoYXBlLmpzPzgyOTgiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkNpcmNsZVNoYXBlID0gdm9pZCAwO1xuY2xhc3MgQ2lyY2xlU2hhcGUge1xuICAgIHJhbmRvbVBvc2l0aW9uKHBvc2l0aW9uLCBvZmZzZXQsIGZpbGwpIHtcbiAgICAgICAgY29uc3QgZ2VuZXJhdGVUaGV0YSA9ICh4LCB5KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB1ID0gTWF0aC5yYW5kb20oKSAvIDQuMDtcbiAgICAgICAgICAgIGNvbnN0IHRoZXRhID0gTWF0aC5hdGFuKCh5IC8geCkgKiBNYXRoLnRhbigyICogTWF0aC5QSSAqIHUpKTtcbiAgICAgICAgICAgIGNvbnN0IHYgPSBNYXRoLnJhbmRvbSgpO1xuICAgICAgICAgICAgaWYgKHYgPCAwLjI1KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoZXRhO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodiA8IDAuNSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBNYXRoLlBJIC0gdGhldGE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICh2IDwgMC43NSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBNYXRoLlBJICsgdGhldGE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gLXRoZXRhO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCByYWRpdXMgPSAoeCwgeSwgdGhldGEpID0+ICh4ICogeSkgLyBNYXRoLnNxcnQoKHkgKiBNYXRoLmNvcyh0aGV0YSkpICoqIDIgKyAoeCAqIE1hdGguc2luKHRoZXRhKSkgKiogMik7XG4gICAgICAgIGNvbnN0IFthLCBiXSA9IFtvZmZzZXQueCAvIDIsIG9mZnNldC55IC8gMl07XG4gICAgICAgIGNvbnN0IHJhbmRvbVRoZXRhID0gZ2VuZXJhdGVUaGV0YShhLCBiKSwgbWF4UmFkaXVzID0gcmFkaXVzKGEsIGIsIHJhbmRvbVRoZXRhKSwgcmFuZG9tUmFkaXVzID0gZmlsbCA/IG1heFJhZGl1cyAqIE1hdGguc3FydChNYXRoLnJhbmRvbSgpKSA6IG1heFJhZGl1cztcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHg6IHBvc2l0aW9uLnggKyByYW5kb21SYWRpdXMgKiBNYXRoLmNvcyhyYW5kb21UaGV0YSksXG4gICAgICAgICAgICB5OiBwb3NpdGlvbi55ICsgcmFuZG9tUmFkaXVzICogTWF0aC5zaW4ocmFuZG9tVGhldGEpLFxuICAgICAgICB9O1xuICAgIH1cbn1cbmV4cG9ydHMuQ2lyY2xlU2hhcGUgPSBDaXJjbGVTaGFwZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/Emitters/Shapes/Circle/CircleShape.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/Emitters/Shapes/Square/SquareShape.js": +/*!********************************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/Emitters/Shapes/Square/SquareShape.js ***! + \********************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.SquareShape = void 0;\nfunction randomSquareCoordinate(position, offset) {\n return position + offset * (Math.random() - 0.5);\n}\nclass SquareShape {\n randomPosition(position, offset, fill) {\n if (fill) {\n return {\n x: randomSquareCoordinate(position.x, offset.x),\n y: randomSquareCoordinate(position.y, offset.y),\n };\n }\n else {\n const halfW = offset.x / 2, halfH = offset.y / 2, side = Math.floor(Math.random() * 4), v = (Math.random() - 0.5) * 2;\n switch (side) {\n case 0:\n return {\n x: position.x + v * halfW,\n y: position.y - halfH,\n };\n case 1:\n return {\n x: position.x - halfW,\n y: position.y + v * halfH,\n };\n case 2:\n return {\n x: position.x + v * halfW,\n y: position.y + halfH,\n };\n case 3:\n default:\n return {\n x: position.x + halfW,\n y: position.y + v * halfH,\n };\n }\n }\n }\n}\nexports.SquareShape = SquareShape;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9FbWl0dGVycy9TaGFwZXMvU3F1YXJlL1NxdWFyZVNoYXBlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELG1CQUFtQjtBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1BsdWdpbnMvRW1pdHRlcnMvU2hhcGVzL1NxdWFyZS9TcXVhcmVTaGFwZS5qcz8xODM0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5TcXVhcmVTaGFwZSA9IHZvaWQgMDtcbmZ1bmN0aW9uIHJhbmRvbVNxdWFyZUNvb3JkaW5hdGUocG9zaXRpb24sIG9mZnNldCkge1xuICAgIHJldHVybiBwb3NpdGlvbiArIG9mZnNldCAqIChNYXRoLnJhbmRvbSgpIC0gMC41KTtcbn1cbmNsYXNzIFNxdWFyZVNoYXBlIHtcbiAgICByYW5kb21Qb3NpdGlvbihwb3NpdGlvbiwgb2Zmc2V0LCBmaWxsKSB7XG4gICAgICAgIGlmIChmaWxsKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHg6IHJhbmRvbVNxdWFyZUNvb3JkaW5hdGUocG9zaXRpb24ueCwgb2Zmc2V0LngpLFxuICAgICAgICAgICAgICAgIHk6IHJhbmRvbVNxdWFyZUNvb3JkaW5hdGUocG9zaXRpb24ueSwgb2Zmc2V0LnkpLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGhhbGZXID0gb2Zmc2V0LnggLyAyLCBoYWxmSCA9IG9mZnNldC55IC8gMiwgc2lkZSA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDQpLCB2ID0gKE1hdGgucmFuZG9tKCkgLSAwLjUpICogMjtcbiAgICAgICAgICAgIHN3aXRjaCAoc2lkZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHg6IHBvc2l0aW9uLnggKyB2ICogaGFsZlcsXG4gICAgICAgICAgICAgICAgICAgICAgICB5OiBwb3NpdGlvbi55IC0gaGFsZkgsXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgeDogcG9zaXRpb24ueCAtIGhhbGZXLFxuICAgICAgICAgICAgICAgICAgICAgICAgeTogcG9zaXRpb24ueSArIHYgKiBoYWxmSCxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB4OiBwb3NpdGlvbi54ICsgdiAqIGhhbGZXLFxuICAgICAgICAgICAgICAgICAgICAgICAgeTogcG9zaXRpb24ueSArIGhhbGZILFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgeDogcG9zaXRpb24ueCArIGhhbGZXLFxuICAgICAgICAgICAgICAgICAgICAgICAgeTogcG9zaXRpb24ueSArIHYgKiBoYWxmSCxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuU3F1YXJlU2hhcGUgPSBTcXVhcmVTaGFwZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/Emitters/Shapes/Square/SquareShape.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/Emitters/plugin.js": +/*!*************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/Emitters/plugin.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadEmittersPlugin = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Emitters_1 = __webpack_require__(/*! ./Emitters */ \"./node_modules/tsparticles/Plugins/Emitters/Emitters.js\");\nconst Enums_1 = __webpack_require__(/*! ./Enums */ \"./node_modules/tsparticles/Plugins/Emitters/Enums/index.js\");\nconst Emitter_1 = __webpack_require__(/*! ./Options/Classes/Emitter */ \"./node_modules/tsparticles/Plugins/Emitters/Options/Classes/Emitter.js\");\nconst ShapeManager_1 = __webpack_require__(/*! ./ShapeManager */ \"./node_modules/tsparticles/Plugins/Emitters/ShapeManager.js\");\nconst CircleShape_1 = __webpack_require__(/*! ./Shapes/Circle/CircleShape */ \"./node_modules/tsparticles/Plugins/Emitters/Shapes/Circle/CircleShape.js\");\nconst SquareShape_1 = __webpack_require__(/*! ./Shapes/Square/SquareShape */ \"./node_modules/tsparticles/Plugins/Emitters/Shapes/Square/SquareShape.js\");\nclass EmittersPlugin {\n constructor() {\n this.id = \"emitters\";\n }\n getPlugin(container) {\n return new Emitters_1.Emitters(container);\n }\n needsPlugin(options) {\n var _a, _b, _c;\n if (options === undefined) {\n return false;\n }\n const emitters = options.emitters;\n return ((emitters instanceof Array && !!emitters.length) ||\n emitters !== undefined ||\n (!!((_c = (_b = (_a = options.interactivity) === null || _a === void 0 ? void 0 : _a.events) === null || _b === void 0 ? void 0 : _b.onClick) === null || _c === void 0 ? void 0 : _c.mode) &&\n (0, Utils_1.isInArray)(Enums_1.EmitterClickMode.emitter, options.interactivity.events.onClick.mode)));\n }\n loadOptions(options, source) {\n var _a, _b;\n if (!this.needsPlugin(options) && !this.needsPlugin(source)) {\n return;\n }\n const optionsCast = options;\n if (source === null || source === void 0 ? void 0 : source.emitters) {\n if ((source === null || source === void 0 ? void 0 : source.emitters) instanceof Array) {\n optionsCast.emitters = source === null || source === void 0 ? void 0 : source.emitters.map((s) => {\n const tmp = new Emitter_1.Emitter();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n let emitterOptions = optionsCast.emitters;\n if ((emitterOptions === null || emitterOptions === void 0 ? void 0 : emitterOptions.load) === undefined) {\n optionsCast.emitters = emitterOptions = new Emitter_1.Emitter();\n }\n emitterOptions.load(source === null || source === void 0 ? void 0 : source.emitters);\n }\n }\n const interactivityEmitters = (_b = (_a = source === null || source === void 0 ? void 0 : source.interactivity) === null || _a === void 0 ? void 0 : _a.modes) === null || _b === void 0 ? void 0 : _b.emitters;\n if (interactivityEmitters) {\n if (interactivityEmitters instanceof Array) {\n optionsCast.interactivity.modes.emitters = interactivityEmitters.map((s) => {\n const tmp = new Emitter_1.Emitter();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n let emitterOptions = optionsCast.interactivity.modes.emitters;\n if ((emitterOptions === null || emitterOptions === void 0 ? void 0 : emitterOptions.load) === undefined) {\n optionsCast.interactivity.modes.emitters = emitterOptions = new Emitter_1.Emitter();\n }\n emitterOptions.load(interactivityEmitters);\n }\n }\n }\n}\nasync function loadEmittersPlugin(tsParticles) {\n const plugin = new EmittersPlugin();\n await tsParticles.addPlugin(plugin);\n if (!tsParticles.addEmitterShape) {\n tsParticles.addEmitterShape = (name, shape) => {\n ShapeManager_1.ShapeManager.addShape(name, shape);\n };\n }\n tsParticles.addEmitterShape(Enums_1.EmitterShapeType.circle, new CircleShape_1.CircleShape());\n tsParticles.addEmitterShape(Enums_1.EmitterShapeType.square, new SquareShape_1.SquareShape());\n}\nexports.loadEmittersPlugin = loadEmittersPlugin;\n__exportStar(__webpack_require__(/*! ./EmittersMain */ \"./node_modules/tsparticles/Plugins/Emitters/EmittersMain.js\"), exports);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9FbWl0dGVycy9wbHVnaW4uanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBO0FBQ0EsbUNBQW1DLG9DQUFvQyxnQkFBZ0I7QUFDdkYsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELDBCQUEwQjtBQUMxQixnQkFBZ0IsbUJBQU8sQ0FBQyw4REFBYTtBQUNyQyxtQkFBbUIsbUJBQU8sQ0FBQywyRUFBWTtBQUN2QyxnQkFBZ0IsbUJBQU8sQ0FBQywyRUFBUztBQUNqQyxrQkFBa0IsbUJBQU8sQ0FBQyx5R0FBMkI7QUFDckQsdUJBQXVCLG1CQUFPLENBQUMsbUZBQWdCO0FBQy9DLHNCQUFzQixtQkFBTyxDQUFDLDZHQUE2QjtBQUMzRCxzQkFBc0IsbUJBQU8sQ0FBQyw2R0FBNkI7QUFDM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCO0FBQzFCLGFBQWEsbUJBQU8sQ0FBQyxtRkFBZ0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1BsdWdpbnMvRW1pdHRlcnMvcGx1Z2luLmpzPzZjODkiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19jcmVhdGVCaW5kaW5nID0gKHRoaXMgJiYgdGhpcy5fX2NyZWF0ZUJpbmRpbmcpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfSk7XG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgb1trMl0gPSBtW2tdO1xufSkpO1xudmFyIF9fZXhwb3J0U3RhciA9ICh0aGlzICYmIHRoaXMuX19leHBvcnRTdGFyKSB8fCBmdW5jdGlvbihtLCBleHBvcnRzKSB7XG4gICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gXCJkZWZhdWx0XCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzLCBwKSkgX19jcmVhdGVCaW5kaW5nKGV4cG9ydHMsIG0sIHApO1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMubG9hZEVtaXR0ZXJzUGx1Z2luID0gdm9pZCAwO1xuY29uc3QgVXRpbHNfMSA9IHJlcXVpcmUoXCIuLi8uLi9VdGlsc1wiKTtcbmNvbnN0IEVtaXR0ZXJzXzEgPSByZXF1aXJlKFwiLi9FbWl0dGVyc1wiKTtcbmNvbnN0IEVudW1zXzEgPSByZXF1aXJlKFwiLi9FbnVtc1wiKTtcbmNvbnN0IEVtaXR0ZXJfMSA9IHJlcXVpcmUoXCIuL09wdGlvbnMvQ2xhc3Nlcy9FbWl0dGVyXCIpO1xuY29uc3QgU2hhcGVNYW5hZ2VyXzEgPSByZXF1aXJlKFwiLi9TaGFwZU1hbmFnZXJcIik7XG5jb25zdCBDaXJjbGVTaGFwZV8xID0gcmVxdWlyZShcIi4vU2hhcGVzL0NpcmNsZS9DaXJjbGVTaGFwZVwiKTtcbmNvbnN0IFNxdWFyZVNoYXBlXzEgPSByZXF1aXJlKFwiLi9TaGFwZXMvU3F1YXJlL1NxdWFyZVNoYXBlXCIpO1xuY2xhc3MgRW1pdHRlcnNQbHVnaW4ge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmlkID0gXCJlbWl0dGVyc1wiO1xuICAgIH1cbiAgICBnZXRQbHVnaW4oY29udGFpbmVyKSB7XG4gICAgICAgIHJldHVybiBuZXcgRW1pdHRlcnNfMS5FbWl0dGVycyhjb250YWluZXIpO1xuICAgIH1cbiAgICBuZWVkc1BsdWdpbihvcHRpb25zKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZW1pdHRlcnMgPSBvcHRpb25zLmVtaXR0ZXJzO1xuICAgICAgICByZXR1cm4gKChlbWl0dGVycyBpbnN0YW5jZW9mIEFycmF5ICYmICEhZW1pdHRlcnMubGVuZ3RoKSB8fFxuICAgICAgICAgICAgZW1pdHRlcnMgIT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgICAgKCEhKChfYyA9IChfYiA9IChfYSA9IG9wdGlvbnMuaW50ZXJhY3Rpdml0eSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmV2ZW50cykgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm9uQ2xpY2spID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5tb2RlKSAmJlxuICAgICAgICAgICAgICAgICgwLCBVdGlsc18xLmlzSW5BcnJheSkoRW51bXNfMS5FbWl0dGVyQ2xpY2tNb2RlLmVtaXR0ZXIsIG9wdGlvbnMuaW50ZXJhY3Rpdml0eS5ldmVudHMub25DbGljay5tb2RlKSkpO1xuICAgIH1cbiAgICBsb2FkT3B0aW9ucyhvcHRpb25zLCBzb3VyY2UpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgaWYgKCF0aGlzLm5lZWRzUGx1Z2luKG9wdGlvbnMpICYmICF0aGlzLm5lZWRzUGx1Z2luKHNvdXJjZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvcHRpb25zQ2FzdCA9IG9wdGlvbnM7XG4gICAgICAgIGlmIChzb3VyY2UgPT09IG51bGwgfHwgc291cmNlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzb3VyY2UuZW1pdHRlcnMpIHtcbiAgICAgICAgICAgIGlmICgoc291cmNlID09PSBudWxsIHx8IHNvdXJjZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogc291cmNlLmVtaXR0ZXJzKSBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICAgICAgb3B0aW9uc0Nhc3QuZW1pdHRlcnMgPSBzb3VyY2UgPT09IG51bGwgfHwgc291cmNlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzb3VyY2UuZW1pdHRlcnMubWFwKChzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRtcCA9IG5ldyBFbWl0dGVyXzEuRW1pdHRlcigpO1xuICAgICAgICAgICAgICAgICAgICB0bXAubG9hZChzKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRtcDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGxldCBlbWl0dGVyT3B0aW9ucyA9IG9wdGlvbnNDYXN0LmVtaXR0ZXJzO1xuICAgICAgICAgICAgICAgIGlmICgoZW1pdHRlck9wdGlvbnMgPT09IG51bGwgfHwgZW1pdHRlck9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGVtaXR0ZXJPcHRpb25zLmxvYWQpID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uc0Nhc3QuZW1pdHRlcnMgPSBlbWl0dGVyT3B0aW9ucyA9IG5ldyBFbWl0dGVyXzEuRW1pdHRlcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbWl0dGVyT3B0aW9ucy5sb2FkKHNvdXJjZSA9PT0gbnVsbCB8fCBzb3VyY2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNvdXJjZS5lbWl0dGVycyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW50ZXJhY3Rpdml0eUVtaXR0ZXJzID0gKF9iID0gKF9hID0gc291cmNlID09PSBudWxsIHx8IHNvdXJjZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogc291cmNlLmludGVyYWN0aXZpdHkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5tb2RlcykgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmVtaXR0ZXJzO1xuICAgICAgICBpZiAoaW50ZXJhY3Rpdml0eUVtaXR0ZXJzKSB7XG4gICAgICAgICAgICBpZiAoaW50ZXJhY3Rpdml0eUVtaXR0ZXJzIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgICAgICBvcHRpb25zQ2FzdC5pbnRlcmFjdGl2aXR5Lm1vZGVzLmVtaXR0ZXJzID0gaW50ZXJhY3Rpdml0eUVtaXR0ZXJzLm1hcCgocykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0bXAgPSBuZXcgRW1pdHRlcl8xLkVtaXR0ZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgdG1wLmxvYWQocyk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0bXA7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBsZXQgZW1pdHRlck9wdGlvbnMgPSBvcHRpb25zQ2FzdC5pbnRlcmFjdGl2aXR5Lm1vZGVzLmVtaXR0ZXJzO1xuICAgICAgICAgICAgICAgIGlmICgoZW1pdHRlck9wdGlvbnMgPT09IG51bGwgfHwgZW1pdHRlck9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGVtaXR0ZXJPcHRpb25zLmxvYWQpID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uc0Nhc3QuaW50ZXJhY3Rpdml0eS5tb2Rlcy5lbWl0dGVycyA9IGVtaXR0ZXJPcHRpb25zID0gbmV3IEVtaXR0ZXJfMS5FbWl0dGVyKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVtaXR0ZXJPcHRpb25zLmxvYWQoaW50ZXJhY3Rpdml0eUVtaXR0ZXJzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbmFzeW5jIGZ1bmN0aW9uIGxvYWRFbWl0dGVyc1BsdWdpbih0c1BhcnRpY2xlcykge1xuICAgIGNvbnN0IHBsdWdpbiA9IG5ldyBFbWl0dGVyc1BsdWdpbigpO1xuICAgIGF3YWl0IHRzUGFydGljbGVzLmFkZFBsdWdpbihwbHVnaW4pO1xuICAgIGlmICghdHNQYXJ0aWNsZXMuYWRkRW1pdHRlclNoYXBlKSB7XG4gICAgICAgIHRzUGFydGljbGVzLmFkZEVtaXR0ZXJTaGFwZSA9IChuYW1lLCBzaGFwZSkgPT4ge1xuICAgICAgICAgICAgU2hhcGVNYW5hZ2VyXzEuU2hhcGVNYW5hZ2VyLmFkZFNoYXBlKG5hbWUsIHNoYXBlKTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgdHNQYXJ0aWNsZXMuYWRkRW1pdHRlclNoYXBlKEVudW1zXzEuRW1pdHRlclNoYXBlVHlwZS5jaXJjbGUsIG5ldyBDaXJjbGVTaGFwZV8xLkNpcmNsZVNoYXBlKCkpO1xuICAgIHRzUGFydGljbGVzLmFkZEVtaXR0ZXJTaGFwZShFbnVtc18xLkVtaXR0ZXJTaGFwZVR5cGUuc3F1YXJlLCBuZXcgU3F1YXJlU2hhcGVfMS5TcXVhcmVTaGFwZSgpKTtcbn1cbmV4cG9ydHMubG9hZEVtaXR0ZXJzUGx1Z2luID0gbG9hZEVtaXR0ZXJzUGx1Z2luO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0VtaXR0ZXJzTWFpblwiKSwgZXhwb3J0cyk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/Emitters/plugin.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/PolygonMask/Enums/InlineArrangement.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/PolygonMask/Enums/InlineArrangement.js ***! + \*********************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.InlineArrangement = void 0;\nvar InlineArrangement;\n(function (InlineArrangement) {\n InlineArrangement[\"equidistant\"] = \"equidistant\";\n InlineArrangement[\"onePerPoint\"] = \"one-per-point\";\n InlineArrangement[\"perPoint\"] = \"per-point\";\n InlineArrangement[\"randomLength\"] = \"random-length\";\n InlineArrangement[\"randomPoint\"] = \"random-point\";\n})(InlineArrangement = exports.InlineArrangement || (exports.InlineArrangement = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9Qb2x5Z29uTWFzay9FbnVtcy9JbmxpbmVBcnJhbmdlbWVudC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCx5QkFBeUI7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLG9EQUFvRCx5QkFBeUIsS0FBSyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9Qb2x5Z29uTWFzay9FbnVtcy9JbmxpbmVBcnJhbmdlbWVudC5qcz9kMjZjIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5JbmxpbmVBcnJhbmdlbWVudCA9IHZvaWQgMDtcbnZhciBJbmxpbmVBcnJhbmdlbWVudDtcbihmdW5jdGlvbiAoSW5saW5lQXJyYW5nZW1lbnQpIHtcbiAgICBJbmxpbmVBcnJhbmdlbWVudFtcImVxdWlkaXN0YW50XCJdID0gXCJlcXVpZGlzdGFudFwiO1xuICAgIElubGluZUFycmFuZ2VtZW50W1wib25lUGVyUG9pbnRcIl0gPSBcIm9uZS1wZXItcG9pbnRcIjtcbiAgICBJbmxpbmVBcnJhbmdlbWVudFtcInBlclBvaW50XCJdID0gXCJwZXItcG9pbnRcIjtcbiAgICBJbmxpbmVBcnJhbmdlbWVudFtcInJhbmRvbUxlbmd0aFwiXSA9IFwicmFuZG9tLWxlbmd0aFwiO1xuICAgIElubGluZUFycmFuZ2VtZW50W1wicmFuZG9tUG9pbnRcIl0gPSBcInJhbmRvbS1wb2ludFwiO1xufSkoSW5saW5lQXJyYW5nZW1lbnQgPSBleHBvcnRzLklubGluZUFycmFuZ2VtZW50IHx8IChleHBvcnRzLklubGluZUFycmFuZ2VtZW50ID0ge30pKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/PolygonMask/Enums/InlineArrangement.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/PolygonMask/Enums/MoveType.js": +/*!************************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/PolygonMask/Enums/MoveType.js ***! + \************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.MoveType = void 0;\nvar MoveType;\n(function (MoveType) {\n MoveType[\"path\"] = \"path\";\n MoveType[\"radius\"] = \"radius\";\n})(MoveType = exports.MoveType || (exports.MoveType = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9Qb2x5Z29uTWFzay9FbnVtcy9Nb3ZlVHlwZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLGtDQUFrQyxnQkFBZ0IsS0FBSyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9Qb2x5Z29uTWFzay9FbnVtcy9Nb3ZlVHlwZS5qcz82ZDc3Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Nb3ZlVHlwZSA9IHZvaWQgMDtcbnZhciBNb3ZlVHlwZTtcbihmdW5jdGlvbiAoTW92ZVR5cGUpIHtcbiAgICBNb3ZlVHlwZVtcInBhdGhcIl0gPSBcInBhdGhcIjtcbiAgICBNb3ZlVHlwZVtcInJhZGl1c1wiXSA9IFwicmFkaXVzXCI7XG59KShNb3ZlVHlwZSA9IGV4cG9ydHMuTW92ZVR5cGUgfHwgKGV4cG9ydHMuTW92ZVR5cGUgPSB7fSkpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/PolygonMask/Enums/MoveType.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/PolygonMask/Enums/Type.js": +/*!********************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/PolygonMask/Enums/Type.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Type = void 0;\nvar Type;\n(function (Type) {\n Type[\"inline\"] = \"inline\";\n Type[\"inside\"] = \"inside\";\n Type[\"outside\"] = \"outside\";\n Type[\"none\"] = \"none\";\n})(Type = exports.Type || (exports.Type = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9Qb2x5Z29uTWFzay9FbnVtcy9UeXBlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLDBCQUEwQixZQUFZLEtBQUsiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1BsdWdpbnMvUG9seWdvbk1hc2svRW51bXMvVHlwZS5qcz8wOWVkIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5UeXBlID0gdm9pZCAwO1xudmFyIFR5cGU7XG4oZnVuY3Rpb24gKFR5cGUpIHtcbiAgICBUeXBlW1wiaW5saW5lXCJdID0gXCJpbmxpbmVcIjtcbiAgICBUeXBlW1wiaW5zaWRlXCJdID0gXCJpbnNpZGVcIjtcbiAgICBUeXBlW1wib3V0c2lkZVwiXSA9IFwib3V0c2lkZVwiO1xuICAgIFR5cGVbXCJub25lXCJdID0gXCJub25lXCI7XG59KShUeXBlID0gZXhwb3J0cy5UeXBlIHx8IChleHBvcnRzLlR5cGUgPSB7fSkpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/PolygonMask/Enums/Type.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/PolygonMask/Enums/index.js": +/*!*********************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/PolygonMask/Enums/index.js ***! + \*********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n__exportStar(__webpack_require__(/*! ./InlineArrangement */ \"./node_modules/tsparticles/Plugins/PolygonMask/Enums/InlineArrangement.js\"), exports);\n__exportStar(__webpack_require__(/*! ./MoveType */ \"./node_modules/tsparticles/Plugins/PolygonMask/Enums/MoveType.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Type */ \"./node_modules/tsparticles/Plugins/PolygonMask/Enums/Type.js\"), exports);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9Qb2x5Z29uTWFzay9FbnVtcy9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0E7QUFDQSxtQ0FBbUMsb0NBQW9DLGdCQUFnQjtBQUN2RixDQUFDO0FBQ0Q7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQSw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsYUFBYSxtQkFBTyxDQUFDLHNHQUFxQjtBQUMxQyxhQUFhLG1CQUFPLENBQUMsb0ZBQVk7QUFDakMsYUFBYSxtQkFBTyxDQUFDLDRFQUFRIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9QbHVnaW5zL1BvbHlnb25NYXNrL0VudW1zL2luZGV4LmpzPzUyZTEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19jcmVhdGVCaW5kaW5nID0gKHRoaXMgJiYgdGhpcy5fX2NyZWF0ZUJpbmRpbmcpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfSk7XG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgb1trMl0gPSBtW2tdO1xufSkpO1xudmFyIF9fZXhwb3J0U3RhciA9ICh0aGlzICYmIHRoaXMuX19leHBvcnRTdGFyKSB8fCBmdW5jdGlvbihtLCBleHBvcnRzKSB7XG4gICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gXCJkZWZhdWx0XCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzLCBwKSkgX19jcmVhdGVCaW5kaW5nKGV4cG9ydHMsIG0sIHApO1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9JbmxpbmVBcnJhbmdlbWVudFwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vTW92ZVR5cGVcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL1R5cGVcIiksIGV4cG9ydHMpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/PolygonMask/Enums/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/Draw.js": +/*!******************************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/Draw.js ***! + \******************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Draw = void 0;\nconst DrawStroke_1 = __webpack_require__(/*! ./DrawStroke */ \"./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/DrawStroke.js\");\nconst OptionsColor_1 = __webpack_require__(/*! ../../../../Options/Classes/OptionsColor */ \"./node_modules/tsparticles/Options/Classes/OptionsColor.js\");\nclass Draw {\n constructor() {\n this.enable = false;\n this.stroke = new DrawStroke_1.DrawStroke();\n }\n get lineWidth() {\n return this.stroke.width;\n }\n set lineWidth(value) {\n this.stroke.width = value;\n }\n get lineColor() {\n return this.stroke.color;\n }\n set lineColor(value) {\n this.stroke.color = OptionsColor_1.OptionsColor.create(this.stroke.color, value);\n }\n load(data) {\n var _a;\n if (data !== undefined) {\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n const stroke = (_a = data.stroke) !== null && _a !== void 0 ? _a : {\n color: data.lineColor,\n width: data.lineWidth,\n };\n this.stroke.load(stroke);\n }\n }\n}\nexports.Draw = Draw;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9Qb2x5Z29uTWFzay9PcHRpb25zL0NsYXNzZXMvRHJhdy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxZQUFZO0FBQ1oscUJBQXFCLG1CQUFPLENBQUMsa0dBQWM7QUFDM0MsdUJBQXVCLG1CQUFPLENBQUMsNEdBQTBDO0FBQ3pFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9Qb2x5Z29uTWFzay9PcHRpb25zL0NsYXNzZXMvRHJhdy5qcz85YTFkIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5EcmF3ID0gdm9pZCAwO1xuY29uc3QgRHJhd1N0cm9rZV8xID0gcmVxdWlyZShcIi4vRHJhd1N0cm9rZVwiKTtcbmNvbnN0IE9wdGlvbnNDb2xvcl8xID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL09wdGlvbnMvQ2xhc3Nlcy9PcHRpb25zQ29sb3JcIik7XG5jbGFzcyBEcmF3IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5lbmFibGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zdHJva2UgPSBuZXcgRHJhd1N0cm9rZV8xLkRyYXdTdHJva2UoKTtcbiAgICB9XG4gICAgZ2V0IGxpbmVXaWR0aCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3Ryb2tlLndpZHRoO1xuICAgIH1cbiAgICBzZXQgbGluZVdpZHRoKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuc3Ryb2tlLndpZHRoID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBsaW5lQ29sb3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0cm9rZS5jb2xvcjtcbiAgICB9XG4gICAgc2V0IGxpbmVDb2xvcih2YWx1ZSkge1xuICAgICAgICB0aGlzLnN0cm9rZS5jb2xvciA9IE9wdGlvbnNDb2xvcl8xLk9wdGlvbnNDb2xvci5jcmVhdGUodGhpcy5zdHJva2UuY29sb3IsIHZhbHVlKTtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKGRhdGEgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKGRhdGEuZW5hYmxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmVuYWJsZSA9IGRhdGEuZW5hYmxlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgc3Ryb2tlID0gKF9hID0gZGF0YS5zdHJva2UpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogZGF0YS5saW5lQ29sb3IsXG4gICAgICAgICAgICAgICAgd2lkdGg6IGRhdGEubGluZVdpZHRoLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHRoaXMuc3Ryb2tlLmxvYWQoc3Ryb2tlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuRHJhdyA9IERyYXc7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/Draw.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/DrawStroke.js": +/*!************************************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/DrawStroke.js ***! + \************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.DrawStroke = void 0;\nconst OptionsColor_1 = __webpack_require__(/*! ../../../../Options/Classes/OptionsColor */ \"./node_modules/tsparticles/Options/Classes/OptionsColor.js\");\nconst Utils_1 = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass DrawStroke {\n constructor() {\n this.color = new OptionsColor_1.OptionsColor();\n this.width = 0.5;\n this.opacity = 1;\n }\n load(data) {\n var _a;\n if (data !== undefined) {\n this.color = OptionsColor_1.OptionsColor.create(this.color, data.color);\n if (typeof this.color.value === \"string\") {\n this.opacity = (_a = (0, Utils_1.stringToAlpha)(this.color.value)) !== null && _a !== void 0 ? _a : this.opacity;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n if (data.width !== undefined) {\n this.width = data.width;\n }\n }\n }\n}\nexports.DrawStroke = DrawStroke;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9Qb2x5Z29uTWFzay9PcHRpb25zL0NsYXNzZXMvRHJhd1N0cm9rZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxrQkFBa0I7QUFDbEIsdUJBQXVCLG1CQUFPLENBQUMsNEdBQTBDO0FBQ3pFLGdCQUFnQixtQkFBTyxDQUFDLG9FQUFtQjtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9Qb2x5Z29uTWFzay9PcHRpb25zL0NsYXNzZXMvRHJhd1N0cm9rZS5qcz9jNTRmIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5EcmF3U3Ryb2tlID0gdm9pZCAwO1xuY29uc3QgT3B0aW9uc0NvbG9yXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vT3B0aW9ucy9DbGFzc2VzL09wdGlvbnNDb2xvclwiKTtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vVXRpbHNcIik7XG5jbGFzcyBEcmF3U3Ryb2tlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5jb2xvciA9IG5ldyBPcHRpb25zQ29sb3JfMS5PcHRpb25zQ29sb3IoKTtcbiAgICAgICAgdGhpcy53aWR0aCA9IDAuNTtcbiAgICAgICAgdGhpcy5vcGFjaXR5ID0gMTtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKGRhdGEgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5jb2xvciA9IE9wdGlvbnNDb2xvcl8xLk9wdGlvbnNDb2xvci5jcmVhdGUodGhpcy5jb2xvciwgZGF0YS5jb2xvcik7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMuY29sb3IudmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9wYWNpdHkgPSAoX2EgPSAoMCwgVXRpbHNfMS5zdHJpbmdUb0FscGhhKSh0aGlzLmNvbG9yLnZhbHVlKSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogdGhpcy5vcGFjaXR5O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEub3BhY2l0eSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcGFjaXR5ID0gZGF0YS5vcGFjaXR5O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEud2lkdGggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMud2lkdGggPSBkYXRhLndpZHRoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5EcmF3U3Ryb2tlID0gRHJhd1N0cm9rZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/DrawStroke.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/Inline.js": +/*!********************************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/Inline.js ***! + \********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Inline = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../Enums */ \"./node_modules/tsparticles/Plugins/PolygonMask/Enums/index.js\");\nclass Inline {\n constructor() {\n this.arrangement = Enums_1.InlineArrangement.onePerPoint;\n }\n load(data) {\n if (data !== undefined) {\n if (data.arrangement !== undefined) {\n this.arrangement = data.arrangement;\n }\n }\n }\n}\nexports.Inline = Inline;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9Qb2x5Z29uTWFzay9PcHRpb25zL0NsYXNzZXMvSW5saW5lLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGNBQWM7QUFDZCxnQkFBZ0IsbUJBQU8sQ0FBQyxrRkFBYTtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9QbHVnaW5zL1BvbHlnb25NYXNrL09wdGlvbnMvQ2xhc3Nlcy9JbmxpbmUuanM/YjdlNCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuSW5saW5lID0gdm9pZCAwO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuLi8uLi9FbnVtc1wiKTtcbmNsYXNzIElubGluZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuYXJyYW5nZW1lbnQgPSBFbnVtc18xLklubGluZUFycmFuZ2VtZW50Lm9uZVBlclBvaW50O1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKGRhdGEgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKGRhdGEuYXJyYW5nZW1lbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYXJyYW5nZW1lbnQgPSBkYXRhLmFycmFuZ2VtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5JbmxpbmUgPSBJbmxpbmU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/Inline.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/LocalSvg.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/LocalSvg.js ***! + \**********************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.LocalSvg = void 0;\nclass LocalSvg {\n constructor() {\n this.path = [];\n this.size = {\n height: 0,\n width: 0,\n };\n }\n load(data) {\n if (data !== undefined) {\n if (data.path !== undefined) {\n this.path = data.path;\n }\n if (data.size !== undefined) {\n if (data.size.width !== undefined) {\n this.size.width = data.size.width;\n }\n if (data.size.height !== undefined) {\n this.size.height = data.size.height;\n }\n }\n }\n }\n}\nexports.LocalSvg = LocalSvg;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9Qb2x5Z29uTWFzay9PcHRpb25zL0NsYXNzZXMvTG9jYWxTdmcuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9Qb2x5Z29uTWFzay9PcHRpb25zL0NsYXNzZXMvTG9jYWxTdmcuanM/Yzk5ZCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuTG9jYWxTdmcgPSB2b2lkIDA7XG5jbGFzcyBMb2NhbFN2ZyB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMucGF0aCA9IFtdO1xuICAgICAgICB0aGlzLnNpemUgPSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDAsXG4gICAgICAgICAgICB3aWR0aDogMCxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIGlmIChkYXRhICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmIChkYXRhLnBhdGggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMucGF0aCA9IGRhdGEucGF0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLnNpemUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGlmIChkYXRhLnNpemUud2lkdGggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNpemUud2lkdGggPSBkYXRhLnNpemUud2lkdGg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChkYXRhLnNpemUuaGVpZ2h0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaXplLmhlaWdodCA9IGRhdGEuc2l6ZS5oZWlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5Mb2NhbFN2ZyA9IExvY2FsU3ZnO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/LocalSvg.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/Move.js": +/*!******************************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/Move.js ***! + \******************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Move = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../Enums */ \"./node_modules/tsparticles/Plugins/PolygonMask/Enums/index.js\");\nclass Move {\n constructor() {\n this.radius = 10;\n this.type = Enums_1.MoveType.path;\n }\n load(data) {\n if (data !== undefined) {\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n if (data.type !== undefined) {\n this.type = data.type;\n }\n }\n }\n}\nexports.Move = Move;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9Qb2x5Z29uTWFzay9PcHRpb25zL0NsYXNzZXMvTW92ZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxZQUFZO0FBQ1osZ0JBQWdCLG1CQUFPLENBQUMsa0ZBQWE7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9QbHVnaW5zL1BvbHlnb25NYXNrL09wdGlvbnMvQ2xhc3Nlcy9Nb3ZlLmpzPzYzYTkiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLk1vdmUgPSB2b2lkIDA7XG5jb25zdCBFbnVtc18xID0gcmVxdWlyZShcIi4uLy4uL0VudW1zXCIpO1xuY2xhc3MgTW92ZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMucmFkaXVzID0gMTA7XG4gICAgICAgIHRoaXMudHlwZSA9IEVudW1zXzEuTW92ZVR5cGUucGF0aDtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIGlmIChkYXRhICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmIChkYXRhLnJhZGl1cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yYWRpdXMgPSBkYXRhLnJhZGl1cztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLnR5cGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMudHlwZSA9IGRhdGEudHlwZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuTW92ZSA9IE1vdmU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/Move.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/PolygonMask.js": +/*!*************************************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/PolygonMask.js ***! + \*************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.PolygonMask = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../Enums */ \"./node_modules/tsparticles/Plugins/PolygonMask/Enums/index.js\");\nconst Draw_1 = __webpack_require__(/*! ./Draw */ \"./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/Draw.js\");\nconst Move_1 = __webpack_require__(/*! ./Move */ \"./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/Move.js\");\nconst Inline_1 = __webpack_require__(/*! ./Inline */ \"./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/Inline.js\");\nconst LocalSvg_1 = __webpack_require__(/*! ./LocalSvg */ \"./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/LocalSvg.js\");\nconst Utils_1 = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass PolygonMask {\n constructor() {\n this.draw = new Draw_1.Draw();\n this.enable = false;\n this.inline = new Inline_1.Inline();\n this.move = new Move_1.Move();\n this.scale = 1;\n this.type = Enums_1.Type.none;\n }\n get inlineArrangement() {\n return this.inline.arrangement;\n }\n set inlineArrangement(value) {\n this.inline.arrangement = value;\n }\n load(data) {\n var _a;\n if (data !== undefined) {\n this.draw.load(data.draw);\n const inline = (_a = data.inline) !== null && _a !== void 0 ? _a : {\n arrangement: data.inlineArrangement,\n };\n if (inline !== undefined) {\n this.inline.load(inline);\n }\n this.move.load(data.move);\n if (data.scale !== undefined) {\n this.scale = data.scale;\n }\n if (data.type !== undefined) {\n this.type = data.type;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n else {\n this.enable = this.type !== Enums_1.Type.none;\n }\n if (data.url !== undefined) {\n this.url = data.url;\n }\n if (data.data !== undefined) {\n if (typeof data.data === \"string\") {\n this.data = data.data;\n }\n else {\n this.data = new LocalSvg_1.LocalSvg();\n this.data.load(data.data);\n }\n }\n if (data.position !== undefined) {\n this.position = (0, Utils_1.deepExtend)({}, data.position);\n }\n }\n }\n}\nexports.PolygonMask = PolygonMask;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9Qb2x5Z29uTWFzay9PcHRpb25zL0NsYXNzZXMvUG9seWdvbk1hc2suanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsbUJBQW1CO0FBQ25CLGdCQUFnQixtQkFBTyxDQUFDLGtGQUFhO0FBQ3JDLGVBQWUsbUJBQU8sQ0FBQyxzRkFBUTtBQUMvQixlQUFlLG1CQUFPLENBQUMsc0ZBQVE7QUFDL0IsaUJBQWlCLG1CQUFPLENBQUMsMEZBQVU7QUFDbkMsbUJBQW1CLG1CQUFPLENBQUMsOEZBQVk7QUFDdkMsZ0JBQWdCLG1CQUFPLENBQUMsb0VBQW1CO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBEQUEwRDtBQUMxRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9Qb2x5Z29uTWFzay9PcHRpb25zL0NsYXNzZXMvUG9seWdvbk1hc2suanM/ZDBhNCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuUG9seWdvbk1hc2sgPSB2b2lkIDA7XG5jb25zdCBFbnVtc18xID0gcmVxdWlyZShcIi4uLy4uL0VudW1zXCIpO1xuY29uc3QgRHJhd18xID0gcmVxdWlyZShcIi4vRHJhd1wiKTtcbmNvbnN0IE1vdmVfMSA9IHJlcXVpcmUoXCIuL01vdmVcIik7XG5jb25zdCBJbmxpbmVfMSA9IHJlcXVpcmUoXCIuL0lubGluZVwiKTtcbmNvbnN0IExvY2FsU3ZnXzEgPSByZXF1aXJlKFwiLi9Mb2NhbFN2Z1wiKTtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vVXRpbHNcIik7XG5jbGFzcyBQb2x5Z29uTWFzayB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuZHJhdyA9IG5ldyBEcmF3XzEuRHJhdygpO1xuICAgICAgICB0aGlzLmVuYWJsZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlubGluZSA9IG5ldyBJbmxpbmVfMS5JbmxpbmUoKTtcbiAgICAgICAgdGhpcy5tb3ZlID0gbmV3IE1vdmVfMS5Nb3ZlKCk7XG4gICAgICAgIHRoaXMuc2NhbGUgPSAxO1xuICAgICAgICB0aGlzLnR5cGUgPSBFbnVtc18xLlR5cGUubm9uZTtcbiAgICB9XG4gICAgZ2V0IGlubGluZUFycmFuZ2VtZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pbmxpbmUuYXJyYW5nZW1lbnQ7XG4gICAgfVxuICAgIHNldCBpbmxpbmVBcnJhbmdlbWVudCh2YWx1ZSkge1xuICAgICAgICB0aGlzLmlubGluZS5hcnJhbmdlbWVudCA9IHZhbHVlO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoZGF0YSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmRyYXcubG9hZChkYXRhLmRyYXcpO1xuICAgICAgICAgICAgY29uc3QgaW5saW5lID0gKF9hID0gZGF0YS5pbmxpbmUpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IHtcbiAgICAgICAgICAgICAgICBhcnJhbmdlbWVudDogZGF0YS5pbmxpbmVBcnJhbmdlbWVudCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAoaW5saW5lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlubGluZS5sb2FkKGlubGluZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLm1vdmUubG9hZChkYXRhLm1vdmUpO1xuICAgICAgICAgICAgaWYgKGRhdGEuc2NhbGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2NhbGUgPSBkYXRhLnNjYWxlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEudHlwZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50eXBlID0gZGF0YS50eXBlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuZW5hYmxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmVuYWJsZSA9IGRhdGEuZW5hYmxlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbmFibGUgPSB0aGlzLnR5cGUgIT09IEVudW1zXzEuVHlwZS5ub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEudXJsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVybCA9IGRhdGEudXJsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuZGF0YSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBkYXRhLmRhdGEgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhID0gZGF0YS5kYXRhO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhID0gbmV3IExvY2FsU3ZnXzEuTG9jYWxTdmcoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhLmxvYWQoZGF0YS5kYXRhKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5wb3NpdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbiA9ICgwLCBVdGlsc18xLmRlZXBFeHRlbmQpKHt9LCBkYXRhLnBvc2l0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuUG9seWdvbk1hc2sgPSBQb2x5Z29uTWFzaztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/PolygonMask.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/PolygonMask/PolygonMaskInstance.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/PolygonMask/PolygonMaskInstance.js ***! + \*****************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.PolygonMaskInstance = void 0;\nconst Enums_1 = __webpack_require__(/*! ./Enums */ \"./node_modules/tsparticles/Plugins/PolygonMask/Enums/index.js\");\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst PolygonMask_1 = __webpack_require__(/*! ./Options/Classes/PolygonMask */ \"./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/PolygonMask.js\");\nconst Enums_2 = __webpack_require__(/*! ../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst utils_1 = __webpack_require__(/*! ./utils */ \"./node_modules/tsparticles/Plugins/PolygonMask/utils.js\");\nclass PolygonMaskInstance {\n constructor(container) {\n this.container = container;\n this.dimension = {\n height: 0,\n width: 0,\n };\n this.path2DSupported = !!window.Path2D;\n this.options = new PolygonMask_1.PolygonMask();\n this.polygonMaskMoveRadius = this.options.move.radius * container.retina.pixelRatio;\n }\n async initAsync(options) {\n this.options.load(options === null || options === void 0 ? void 0 : options.polygon);\n const polygonMaskOptions = this.options;\n this.polygonMaskMoveRadius = polygonMaskOptions.move.radius * this.container.retina.pixelRatio;\n if (polygonMaskOptions.enable) {\n await this.initRawData();\n }\n }\n resize() {\n const container = this.container;\n const options = this.options;\n if (!(options.enable && options.type !== Enums_1.Type.none)) {\n return;\n }\n if (this.redrawTimeout) {\n clearTimeout(this.redrawTimeout);\n }\n this.redrawTimeout = window.setTimeout(async () => {\n await this.initRawData(true);\n container.particles.redraw();\n }, 250);\n }\n stop() {\n delete this.raw;\n delete this.paths;\n }\n particlesInitialization() {\n const options = this.options;\n if (options.enable &&\n options.type === Enums_1.Type.inline &&\n (options.inline.arrangement === Enums_1.InlineArrangement.onePerPoint ||\n options.inline.arrangement === Enums_1.InlineArrangement.perPoint)) {\n this.drawPoints();\n return true;\n }\n return false;\n }\n particlePosition(position) {\n var _a, _b;\n const options = this.options;\n if (!(options.enable && ((_b = (_a = this.raw) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) > 0)) {\n return;\n }\n return (0, Utils_1.deepExtend)({}, position ? position : this.randomPoint());\n }\n particleBounce(particle, delta, direction) {\n return this.polygonBounce(particle, delta, direction);\n }\n clickPositionValid(position) {\n const options = this.options;\n return (options.enable &&\n options.type !== Enums_1.Type.none &&\n options.type !== Enums_1.Type.inline &&\n this.checkInsidePolygon(position));\n }\n draw(context) {\n var _a;\n if (!((_a = this.paths) === null || _a === void 0 ? void 0 : _a.length)) {\n return;\n }\n const options = this.options;\n const polygonDraw = options.draw;\n if (!(options.enable && polygonDraw.enable)) {\n return;\n }\n const rawData = this.raw;\n for (const path of this.paths) {\n const path2d = path.path2d;\n const path2dSupported = this.path2DSupported;\n if (!context) {\n continue;\n }\n if (path2dSupported && path2d && this.offset) {\n (0, utils_1.drawPolygonMaskPath)(context, path2d, polygonDraw.stroke, this.offset);\n }\n else if (rawData) {\n (0, utils_1.drawPolygonMask)(context, rawData, polygonDraw.stroke);\n }\n }\n }\n polygonBounce(particle, _delta, direction) {\n const options = this.options;\n if (!this.raw || !options.enable || direction !== Enums_2.OutModeDirection.top) {\n return false;\n }\n if (options.type === Enums_1.Type.inside || options.type === Enums_1.Type.outside) {\n let closest, dx, dy;\n const pos = particle.getPosition(), radius = particle.getRadius();\n for (let i = 0, j = this.raw.length - 1; i < this.raw.length; j = i++) {\n const pi = this.raw[i], pj = this.raw[j];\n closest = (0, utils_1.calcClosestPtOnSegment)(pi, pj, pos);\n const dist = (0, Utils_1.getDistances)(pos, closest);\n [dx, dy] = [dist.dx, dist.dy];\n if (dist.distance < radius) {\n (0, utils_1.segmentBounce)(pi, pj, particle.velocity);\n return true;\n }\n }\n if (closest && dx !== undefined && dy !== undefined && !this.checkInsidePolygon(pos)) {\n const factor = { x: 1, y: 1 };\n if (particle.position.x >= closest.x) {\n factor.x = -1;\n }\n if (particle.position.y >= closest.y) {\n factor.y = -1;\n }\n particle.position.x = closest.x + radius * 2 * factor.x;\n particle.position.y = closest.y + radius * 2 * factor.y;\n particle.velocity.mult(-1);\n return true;\n }\n }\n else if (options.type === Enums_1.Type.inline && particle.initialPosition) {\n const dist = (0, Utils_1.getDistance)(particle.initialPosition, particle.getPosition());\n if (dist > this.polygonMaskMoveRadius) {\n particle.velocity.x = particle.velocity.y / 2 - particle.velocity.x;\n particle.velocity.y = particle.velocity.x / 2 - particle.velocity.y;\n return true;\n }\n }\n return false;\n }\n checkInsidePolygon(position) {\n var _a, _b;\n const container = this.container;\n const options = this.options;\n if (!options.enable || options.type === Enums_1.Type.none || options.type === Enums_1.Type.inline) {\n return true;\n }\n if (!this.raw) {\n throw new Error(Utils_1.Constants.noPolygonFound);\n }\n const canvasSize = container.canvas.size;\n const x = (_a = position === null || position === void 0 ? void 0 : position.x) !== null && _a !== void 0 ? _a : Math.random() * canvasSize.width;\n const y = (_b = position === null || position === void 0 ? void 0 : position.y) !== null && _b !== void 0 ? _b : Math.random() * canvasSize.height;\n let inside = false;\n for (let i = 0, j = this.raw.length - 1; i < this.raw.length; j = i++) {\n const pi = this.raw[i];\n const pj = this.raw[j];\n const intersect = pi.y > y !== pj.y > y && x < ((pj.x - pi.x) * (y - pi.y)) / (pj.y - pi.y) + pi.x;\n if (intersect) {\n inside = !inside;\n }\n }\n return options.type === Enums_1.Type.inside ? inside : options.type === Enums_1.Type.outside ? !inside : false;\n }\n parseSvgPath(xml, force) {\n var _a, _b, _c;\n const forceDownload = force !== null && force !== void 0 ? force : false;\n if (this.paths !== undefined && !forceDownload) {\n return this.raw;\n }\n const container = this.container;\n const options = this.options;\n const parser = new DOMParser();\n const doc = parser.parseFromString(xml, \"image/svg+xml\");\n const svg = doc.getElementsByTagName(\"svg\")[0];\n let svgPaths = svg.getElementsByTagName(\"path\");\n if (!svgPaths.length) {\n svgPaths = doc.getElementsByTagName(\"path\");\n }\n this.paths = [];\n for (let i = 0; i < svgPaths.length; i++) {\n const path = svgPaths.item(i);\n if (path) {\n this.paths.push({\n element: path,\n length: path.getTotalLength(),\n });\n }\n }\n const pxRatio = container.retina.pixelRatio;\n const scale = options.scale / pxRatio;\n this.dimension.width = parseFloat((_a = svg.getAttribute(\"width\")) !== null && _a !== void 0 ? _a : \"0\") * scale;\n this.dimension.height = parseFloat((_b = svg.getAttribute(\"height\")) !== null && _b !== void 0 ? _b : \"0\") * scale;\n const position = (_c = options.position) !== null && _c !== void 0 ? _c : {\n x: 50,\n y: 50,\n };\n this.offset = {\n x: (container.canvas.size.width * position.x) / (100 * pxRatio) - this.dimension.width / 2,\n y: (container.canvas.size.height * position.y) / (100 * pxRatio) - this.dimension.height / 2,\n };\n return (0, utils_1.parsePaths)(this.paths, scale, this.offset);\n }\n async downloadSvgPath(svgUrl, force) {\n const options = this.options;\n const url = svgUrl || options.url;\n const forceDownload = force !== null && force !== void 0 ? force : false;\n if (!url || (this.paths !== undefined && !forceDownload)) {\n return this.raw;\n }\n const req = await fetch(url);\n if (!req.ok) {\n throw new Error(\"tsParticles Error - Error occurred during polygon mask download\");\n }\n return this.parseSvgPath(await req.text(), force);\n }\n drawPoints() {\n if (!this.raw) {\n return;\n }\n for (const item of this.raw) {\n this.container.particles.addParticle({\n x: item.x,\n y: item.y,\n });\n }\n }\n randomPoint() {\n const container = this.container;\n const options = this.options;\n let position;\n if (options.type === Enums_1.Type.inline) {\n switch (options.inline.arrangement) {\n case Enums_1.InlineArrangement.randomPoint:\n position = this.getRandomPoint();\n break;\n case Enums_1.InlineArrangement.randomLength:\n position = this.getRandomPointByLength();\n break;\n case Enums_1.InlineArrangement.equidistant:\n position = this.getEquidistantPointByIndex(container.particles.count);\n break;\n case Enums_1.InlineArrangement.onePerPoint:\n case Enums_1.InlineArrangement.perPoint:\n default:\n position = this.getPointByIndex(container.particles.count);\n }\n }\n else {\n position = {\n x: Math.random() * container.canvas.size.width,\n y: Math.random() * container.canvas.size.height,\n };\n }\n if (this.checkInsidePolygon(position)) {\n return position;\n }\n else {\n return this.randomPoint();\n }\n }\n getRandomPoint() {\n if (!this.raw || !this.raw.length) {\n throw new Error(Utils_1.Constants.noPolygonDataLoaded);\n }\n const coords = (0, Utils_1.itemFromArray)(this.raw);\n return {\n x: coords.x,\n y: coords.y,\n };\n }\n getRandomPointByLength() {\n var _a, _b, _c;\n const options = this.options;\n if (!this.raw || !this.raw.length || !((_a = this.paths) === null || _a === void 0 ? void 0 : _a.length)) {\n throw new Error(Utils_1.Constants.noPolygonDataLoaded);\n }\n const path = (0, Utils_1.itemFromArray)(this.paths);\n const distance = Math.floor(Math.random() * path.length) + 1;\n const point = path.element.getPointAtLength(distance);\n return {\n x: point.x * options.scale + (((_b = this.offset) === null || _b === void 0 ? void 0 : _b.x) || 0),\n y: point.y * options.scale + (((_c = this.offset) === null || _c === void 0 ? void 0 : _c.y) || 0),\n };\n }\n getEquidistantPointByIndex(index) {\n var _a, _b, _c, _d, _e, _f, _g;\n const options = this.container.actualOptions;\n const polygonMaskOptions = this.options;\n if (!this.raw || !this.raw.length || !((_a = this.paths) === null || _a === void 0 ? void 0 : _a.length))\n throw new Error(Utils_1.Constants.noPolygonDataLoaded);\n let offset = 0;\n let point;\n const totalLength = this.paths.reduce((tot, path) => tot + path.length, 0);\n const distance = totalLength / options.particles.number.value;\n for (const path of this.paths) {\n const pathDistance = distance * index - offset;\n if (pathDistance <= path.length) {\n point = path.element.getPointAtLength(pathDistance);\n break;\n }\n else {\n offset += path.length;\n }\n }\n return {\n x: ((_b = point === null || point === void 0 ? void 0 : point.x) !== null && _b !== void 0 ? _b : 0) * polygonMaskOptions.scale + ((_d = (_c = this.offset) === null || _c === void 0 ? void 0 : _c.x) !== null && _d !== void 0 ? _d : 0),\n y: ((_e = point === null || point === void 0 ? void 0 : point.y) !== null && _e !== void 0 ? _e : 0) * polygonMaskOptions.scale + ((_g = (_f = this.offset) === null || _f === void 0 ? void 0 : _f.y) !== null && _g !== void 0 ? _g : 0),\n };\n }\n getPointByIndex(index) {\n if (!this.raw || !this.raw.length) {\n throw new Error(Utils_1.Constants.noPolygonDataLoaded);\n }\n const coords = this.raw[index % this.raw.length];\n return {\n x: coords.x,\n y: coords.y,\n };\n }\n createPath2D() {\n var _a, _b;\n const options = this.options;\n if (!this.path2DSupported || !((_a = this.paths) === null || _a === void 0 ? void 0 : _a.length)) {\n return;\n }\n for (const path of this.paths) {\n const pathData = (_b = path.element) === null || _b === void 0 ? void 0 : _b.getAttribute(\"d\");\n if (pathData) {\n const path2d = new Path2D(pathData);\n const matrix = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\").createSVGMatrix();\n const finalPath = new Path2D();\n const transform = matrix.scale(options.scale);\n if (finalPath.addPath) {\n finalPath.addPath(path2d, transform);\n path.path2d = finalPath;\n }\n else {\n delete path.path2d;\n }\n }\n else {\n delete path.path2d;\n }\n if (path.path2d || !this.raw) {\n continue;\n }\n path.path2d = new Path2D();\n path.path2d.moveTo(this.raw[0].x, this.raw[0].y);\n this.raw.forEach((pos, i) => {\n var _a;\n if (i > 0) {\n (_a = path.path2d) === null || _a === void 0 ? void 0 : _a.lineTo(pos.x, pos.y);\n }\n });\n path.path2d.closePath();\n }\n }\n async initRawData(force) {\n const options = this.options;\n if (options.url) {\n this.raw = await this.downloadSvgPath(options.url, force);\n }\n else if (options.data) {\n const data = options.data;\n let svg;\n if (typeof data !== \"string\") {\n const path = data.path instanceof Array\n ? data.path.map((t) => `<path d=\"${t}\" />`).join(\"\")\n : `<path d=\"${data.path}\" />`;\n const namespaces = 'xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"';\n svg = `<svg ${namespaces} width=\"${data.size.width}\" height=\"${data.size.height}\">${path}</svg>`;\n }\n else {\n svg = data;\n }\n this.raw = this.parseSvgPath(svg, force);\n }\n this.createPath2D();\n }\n}\nexports.PolygonMaskInstance = PolygonMaskInstance;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9Qb2x5Z29uTWFzay9Qb2x5Z29uTWFza0luc3RhbmNlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELDJCQUEyQjtBQUMzQixnQkFBZ0IsbUJBQU8sQ0FBQyw4RUFBUztBQUNqQyxnQkFBZ0IsbUJBQU8sQ0FBQyw4REFBYTtBQUNyQyxzQkFBc0IsbUJBQU8sQ0FBQyxvSEFBK0I7QUFDN0QsZ0JBQWdCLG1CQUFPLENBQUMsOERBQWE7QUFDckMsZ0JBQWdCLG1CQUFPLENBQUMsd0VBQVM7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5Q0FBeUM7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFEQUFxRCxxQkFBcUI7QUFDMUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUM7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaURBQWlELHFCQUFxQjtBQUN0RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixxQkFBcUI7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1REFBdUQsRUFBRTtBQUN6RCxrQ0FBa0MsVUFBVTtBQUM1QztBQUNBLDhCQUE4QixZQUFZLFNBQVMsZ0JBQWdCLFlBQVksaUJBQWlCLElBQUksS0FBSztBQUN6RztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQkFBMkIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1BsdWdpbnMvUG9seWdvbk1hc2svUG9seWdvbk1hc2tJbnN0YW5jZS5qcz81NjJhIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Qb2x5Z29uTWFza0luc3RhbmNlID0gdm9pZCAwO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuL0VudW1zXCIpO1xuY29uc3QgVXRpbHNfMSA9IHJlcXVpcmUoXCIuLi8uLi9VdGlsc1wiKTtcbmNvbnN0IFBvbHlnb25NYXNrXzEgPSByZXF1aXJlKFwiLi9PcHRpb25zL0NsYXNzZXMvUG9seWdvbk1hc2tcIik7XG5jb25zdCBFbnVtc18yID0gcmVxdWlyZShcIi4uLy4uL0VudW1zXCIpO1xuY29uc3QgdXRpbHNfMSA9IHJlcXVpcmUoXCIuL3V0aWxzXCIpO1xuY2xhc3MgUG9seWdvbk1hc2tJbnN0YW5jZSB7XG4gICAgY29uc3RydWN0b3IoY29udGFpbmVyKSB7XG4gICAgICAgIHRoaXMuY29udGFpbmVyID0gY29udGFpbmVyO1xuICAgICAgICB0aGlzLmRpbWVuc2lvbiA9IHtcbiAgICAgICAgICAgIGhlaWdodDogMCxcbiAgICAgICAgICAgIHdpZHRoOiAwLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLnBhdGgyRFN1cHBvcnRlZCA9ICEhd2luZG93LlBhdGgyRDtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gbmV3IFBvbHlnb25NYXNrXzEuUG9seWdvbk1hc2soKTtcbiAgICAgICAgdGhpcy5wb2x5Z29uTWFza01vdmVSYWRpdXMgPSB0aGlzLm9wdGlvbnMubW92ZS5yYWRpdXMgKiBjb250YWluZXIucmV0aW5hLnBpeGVsUmF0aW87XG4gICAgfVxuICAgIGFzeW5jIGluaXRBc3luYyhvcHRpb25zKSB7XG4gICAgICAgIHRoaXMub3B0aW9ucy5sb2FkKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5wb2x5Z29uKTtcbiAgICAgICAgY29uc3QgcG9seWdvbk1hc2tPcHRpb25zID0gdGhpcy5vcHRpb25zO1xuICAgICAgICB0aGlzLnBvbHlnb25NYXNrTW92ZVJhZGl1cyA9IHBvbHlnb25NYXNrT3B0aW9ucy5tb3ZlLnJhZGl1cyAqIHRoaXMuY29udGFpbmVyLnJldGluYS5waXhlbFJhdGlvO1xuICAgICAgICBpZiAocG9seWdvbk1hc2tPcHRpb25zLmVuYWJsZSkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5pbml0UmF3RGF0YSgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJlc2l6ZSgpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXI7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgIGlmICghKG9wdGlvbnMuZW5hYmxlICYmIG9wdGlvbnMudHlwZSAhPT0gRW51bXNfMS5UeXBlLm5vbmUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucmVkcmF3VGltZW91dCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMucmVkcmF3VGltZW91dCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZWRyYXdUaW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5pbml0UmF3RGF0YSh0cnVlKTtcbiAgICAgICAgICAgIGNvbnRhaW5lci5wYXJ0aWNsZXMucmVkcmF3KCk7XG4gICAgICAgIH0sIDI1MCk7XG4gICAgfVxuICAgIHN0b3AoKSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLnJhdztcbiAgICAgICAgZGVsZXRlIHRoaXMucGF0aHM7XG4gICAgfVxuICAgIHBhcnRpY2xlc0luaXRpYWxpemF0aW9uKCkge1xuICAgICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5vcHRpb25zO1xuICAgICAgICBpZiAob3B0aW9ucy5lbmFibGUgJiZcbiAgICAgICAgICAgIG9wdGlvbnMudHlwZSA9PT0gRW51bXNfMS5UeXBlLmlubGluZSAmJlxuICAgICAgICAgICAgKG9wdGlvbnMuaW5saW5lLmFycmFuZ2VtZW50ID09PSBFbnVtc18xLklubGluZUFycmFuZ2VtZW50Lm9uZVBlclBvaW50IHx8XG4gICAgICAgICAgICAgICAgb3B0aW9ucy5pbmxpbmUuYXJyYW5nZW1lbnQgPT09IEVudW1zXzEuSW5saW5lQXJyYW5nZW1lbnQucGVyUG9pbnQpKSB7XG4gICAgICAgICAgICB0aGlzLmRyYXdQb2ludHMoKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcGFydGljbGVQb3NpdGlvbihwb3NpdGlvbikge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5vcHRpb25zO1xuICAgICAgICBpZiAoIShvcHRpb25zLmVuYWJsZSAmJiAoKF9iID0gKF9hID0gdGhpcy5yYXcpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5sZW5ndGgpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IDApID4gMCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKDAsIFV0aWxzXzEuZGVlcEV4dGVuZCkoe30sIHBvc2l0aW9uID8gcG9zaXRpb24gOiB0aGlzLnJhbmRvbVBvaW50KCkpO1xuICAgIH1cbiAgICBwYXJ0aWNsZUJvdW5jZShwYXJ0aWNsZSwgZGVsdGEsIGRpcmVjdGlvbikge1xuICAgICAgICByZXR1cm4gdGhpcy5wb2x5Z29uQm91bmNlKHBhcnRpY2xlLCBkZWx0YSwgZGlyZWN0aW9uKTtcbiAgICB9XG4gICAgY2xpY2tQb3NpdGlvblZhbGlkKHBvc2l0aW9uKSB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgIHJldHVybiAob3B0aW9ucy5lbmFibGUgJiZcbiAgICAgICAgICAgIG9wdGlvbnMudHlwZSAhPT0gRW51bXNfMS5UeXBlLm5vbmUgJiZcbiAgICAgICAgICAgIG9wdGlvbnMudHlwZSAhPT0gRW51bXNfMS5UeXBlLmlubGluZSAmJlxuICAgICAgICAgICAgdGhpcy5jaGVja0luc2lkZVBvbHlnb24ocG9zaXRpb24pKTtcbiAgICB9XG4gICAgZHJhdyhjb250ZXh0KSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKCEoKF9hID0gdGhpcy5wYXRocykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmxlbmd0aCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5vcHRpb25zO1xuICAgICAgICBjb25zdCBwb2x5Z29uRHJhdyA9IG9wdGlvbnMuZHJhdztcbiAgICAgICAgaWYgKCEob3B0aW9ucy5lbmFibGUgJiYgcG9seWdvbkRyYXcuZW5hYmxlKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJhd0RhdGEgPSB0aGlzLnJhdztcbiAgICAgICAgZm9yIChjb25zdCBwYXRoIG9mIHRoaXMucGF0aHMpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhdGgyZCA9IHBhdGgucGF0aDJkO1xuICAgICAgICAgICAgY29uc3QgcGF0aDJkU3VwcG9ydGVkID0gdGhpcy5wYXRoMkRTdXBwb3J0ZWQ7XG4gICAgICAgICAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwYXRoMmRTdXBwb3J0ZWQgJiYgcGF0aDJkICYmIHRoaXMub2Zmc2V0KSB7XG4gICAgICAgICAgICAgICAgKDAsIHV0aWxzXzEuZHJhd1BvbHlnb25NYXNrUGF0aCkoY29udGV4dCwgcGF0aDJkLCBwb2x5Z29uRHJhdy5zdHJva2UsIHRoaXMub2Zmc2V0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHJhd0RhdGEpIHtcbiAgICAgICAgICAgICAgICAoMCwgdXRpbHNfMS5kcmF3UG9seWdvbk1hc2spKGNvbnRleHQsIHJhd0RhdGEsIHBvbHlnb25EcmF3LnN0cm9rZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcG9seWdvbkJvdW5jZShwYXJ0aWNsZSwgX2RlbHRhLCBkaXJlY3Rpb24pIHtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgICAgICAgaWYgKCF0aGlzLnJhdyB8fCAhb3B0aW9ucy5lbmFibGUgfHwgZGlyZWN0aW9uICE9PSBFbnVtc18yLk91dE1vZGVEaXJlY3Rpb24udG9wKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnMudHlwZSA9PT0gRW51bXNfMS5UeXBlLmluc2lkZSB8fCBvcHRpb25zLnR5cGUgPT09IEVudW1zXzEuVHlwZS5vdXRzaWRlKSB7XG4gICAgICAgICAgICBsZXQgY2xvc2VzdCwgZHgsIGR5O1xuICAgICAgICAgICAgY29uc3QgcG9zID0gcGFydGljbGUuZ2V0UG9zaXRpb24oKSwgcmFkaXVzID0gcGFydGljbGUuZ2V0UmFkaXVzKCk7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMCwgaiA9IHRoaXMucmF3Lmxlbmd0aCAtIDE7IGkgPCB0aGlzLnJhdy5sZW5ndGg7IGogPSBpKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwaSA9IHRoaXMucmF3W2ldLCBwaiA9IHRoaXMucmF3W2pdO1xuICAgICAgICAgICAgICAgIGNsb3Nlc3QgPSAoMCwgdXRpbHNfMS5jYWxjQ2xvc2VzdFB0T25TZWdtZW50KShwaSwgcGosIHBvcyk7XG4gICAgICAgICAgICAgICAgY29uc3QgZGlzdCA9ICgwLCBVdGlsc18xLmdldERpc3RhbmNlcykocG9zLCBjbG9zZXN0KTtcbiAgICAgICAgICAgICAgICBbZHgsIGR5XSA9IFtkaXN0LmR4LCBkaXN0LmR5XTtcbiAgICAgICAgICAgICAgICBpZiAoZGlzdC5kaXN0YW5jZSA8IHJhZGl1cykge1xuICAgICAgICAgICAgICAgICAgICAoMCwgdXRpbHNfMS5zZWdtZW50Qm91bmNlKShwaSwgcGosIHBhcnRpY2xlLnZlbG9jaXR5KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGNsb3Nlc3QgJiYgZHggIT09IHVuZGVmaW5lZCAmJiBkeSAhPT0gdW5kZWZpbmVkICYmICF0aGlzLmNoZWNrSW5zaWRlUG9seWdvbihwb3MpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmFjdG9yID0geyB4OiAxLCB5OiAxIH07XG4gICAgICAgICAgICAgICAgaWYgKHBhcnRpY2xlLnBvc2l0aW9uLnggPj0gY2xvc2VzdC54KSB7XG4gICAgICAgICAgICAgICAgICAgIGZhY3Rvci54ID0gLTE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChwYXJ0aWNsZS5wb3NpdGlvbi55ID49IGNsb3Nlc3QueSkge1xuICAgICAgICAgICAgICAgICAgICBmYWN0b3IueSA9IC0xO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwYXJ0aWNsZS5wb3NpdGlvbi54ID0gY2xvc2VzdC54ICsgcmFkaXVzICogMiAqIGZhY3Rvci54O1xuICAgICAgICAgICAgICAgIHBhcnRpY2xlLnBvc2l0aW9uLnkgPSBjbG9zZXN0LnkgKyByYWRpdXMgKiAyICogZmFjdG9yLnk7XG4gICAgICAgICAgICAgICAgcGFydGljbGUudmVsb2NpdHkubXVsdCgtMSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAob3B0aW9ucy50eXBlID09PSBFbnVtc18xLlR5cGUuaW5saW5lICYmIHBhcnRpY2xlLmluaXRpYWxQb3NpdGlvbikge1xuICAgICAgICAgICAgY29uc3QgZGlzdCA9ICgwLCBVdGlsc18xLmdldERpc3RhbmNlKShwYXJ0aWNsZS5pbml0aWFsUG9zaXRpb24sIHBhcnRpY2xlLmdldFBvc2l0aW9uKCkpO1xuICAgICAgICAgICAgaWYgKGRpc3QgPiB0aGlzLnBvbHlnb25NYXNrTW92ZVJhZGl1cykge1xuICAgICAgICAgICAgICAgIHBhcnRpY2xlLnZlbG9jaXR5LnggPSBwYXJ0aWNsZS52ZWxvY2l0eS55IC8gMiAtIHBhcnRpY2xlLnZlbG9jaXR5Lng7XG4gICAgICAgICAgICAgICAgcGFydGljbGUudmVsb2NpdHkueSA9IHBhcnRpY2xlLnZlbG9jaXR5LnggLyAyIC0gcGFydGljbGUudmVsb2NpdHkueTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNoZWNrSW5zaWRlUG9seWdvbihwb3NpdGlvbikge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgICAgICAgaWYgKCFvcHRpb25zLmVuYWJsZSB8fCBvcHRpb25zLnR5cGUgPT09IEVudW1zXzEuVHlwZS5ub25lIHx8IG9wdGlvbnMudHlwZSA9PT0gRW51bXNfMS5UeXBlLmlubGluZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLnJhdykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFV0aWxzXzEuQ29uc3RhbnRzLm5vUG9seWdvbkZvdW5kKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjYW52YXNTaXplID0gY29udGFpbmVyLmNhbnZhcy5zaXplO1xuICAgICAgICBjb25zdCB4ID0gKF9hID0gcG9zaXRpb24gPT09IG51bGwgfHwgcG9zaXRpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBvc2l0aW9uLngpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IE1hdGgucmFuZG9tKCkgKiBjYW52YXNTaXplLndpZHRoO1xuICAgICAgICBjb25zdCB5ID0gKF9iID0gcG9zaXRpb24gPT09IG51bGwgfHwgcG9zaXRpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBvc2l0aW9uLnkpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IE1hdGgucmFuZG9tKCkgKiBjYW52YXNTaXplLmhlaWdodDtcbiAgICAgICAgbGV0IGluc2lkZSA9IGZhbHNlO1xuICAgICAgICBmb3IgKGxldCBpID0gMCwgaiA9IHRoaXMucmF3Lmxlbmd0aCAtIDE7IGkgPCB0aGlzLnJhdy5sZW5ndGg7IGogPSBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHBpID0gdGhpcy5yYXdbaV07XG4gICAgICAgICAgICBjb25zdCBwaiA9IHRoaXMucmF3W2pdO1xuICAgICAgICAgICAgY29uc3QgaW50ZXJzZWN0ID0gcGkueSA+IHkgIT09IHBqLnkgPiB5ICYmIHggPCAoKHBqLnggLSBwaS54KSAqICh5IC0gcGkueSkpIC8gKHBqLnkgLSBwaS55KSArIHBpLng7XG4gICAgICAgICAgICBpZiAoaW50ZXJzZWN0KSB7XG4gICAgICAgICAgICAgICAgaW5zaWRlID0gIWluc2lkZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3B0aW9ucy50eXBlID09PSBFbnVtc18xLlR5cGUuaW5zaWRlID8gaW5zaWRlIDogb3B0aW9ucy50eXBlID09PSBFbnVtc18xLlR5cGUub3V0c2lkZSA/ICFpbnNpZGUgOiBmYWxzZTtcbiAgICB9XG4gICAgcGFyc2VTdmdQYXRoKHhtbCwgZm9yY2UpIHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgIGNvbnN0IGZvcmNlRG93bmxvYWQgPSBmb3JjZSAhPT0gbnVsbCAmJiBmb3JjZSAhPT0gdm9pZCAwID8gZm9yY2UgOiBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMucGF0aHMgIT09IHVuZGVmaW5lZCAmJiAhZm9yY2VEb3dubG9hZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmF3O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyO1xuICAgICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5vcHRpb25zO1xuICAgICAgICBjb25zdCBwYXJzZXIgPSBuZXcgRE9NUGFyc2VyKCk7XG4gICAgICAgIGNvbnN0IGRvYyA9IHBhcnNlci5wYXJzZUZyb21TdHJpbmcoeG1sLCBcImltYWdlL3N2Zyt4bWxcIik7XG4gICAgICAgIGNvbnN0IHN2ZyA9IGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZShcInN2Z1wiKVswXTtcbiAgICAgICAgbGV0IHN2Z1BhdGhzID0gc3ZnLmdldEVsZW1lbnRzQnlUYWdOYW1lKFwicGF0aFwiKTtcbiAgICAgICAgaWYgKCFzdmdQYXRocy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHN2Z1BhdGhzID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKFwicGF0aFwiKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnBhdGhzID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3ZnUGF0aHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHBhdGggPSBzdmdQYXRocy5pdGVtKGkpO1xuICAgICAgICAgICAgaWYgKHBhdGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBhdGhzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiBwYXRoLFxuICAgICAgICAgICAgICAgICAgICBsZW5ndGg6IHBhdGguZ2V0VG90YWxMZW5ndGgoKSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBweFJhdGlvID0gY29udGFpbmVyLnJldGluYS5waXhlbFJhdGlvO1xuICAgICAgICBjb25zdCBzY2FsZSA9IG9wdGlvbnMuc2NhbGUgLyBweFJhdGlvO1xuICAgICAgICB0aGlzLmRpbWVuc2lvbi53aWR0aCA9IHBhcnNlRmxvYXQoKF9hID0gc3ZnLmdldEF0dHJpYnV0ZShcIndpZHRoXCIpKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBcIjBcIikgKiBzY2FsZTtcbiAgICAgICAgdGhpcy5kaW1lbnNpb24uaGVpZ2h0ID0gcGFyc2VGbG9hdCgoX2IgPSBzdmcuZ2V0QXR0cmlidXRlKFwiaGVpZ2h0XCIpKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBcIjBcIikgKiBzY2FsZTtcbiAgICAgICAgY29uc3QgcG9zaXRpb24gPSAoX2MgPSBvcHRpb25zLnBvc2l0aW9uKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiB7XG4gICAgICAgICAgICB4OiA1MCxcbiAgICAgICAgICAgIHk6IDUwLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLm9mZnNldCA9IHtcbiAgICAgICAgICAgIHg6IChjb250YWluZXIuY2FudmFzLnNpemUud2lkdGggKiBwb3NpdGlvbi54KSAvICgxMDAgKiBweFJhdGlvKSAtIHRoaXMuZGltZW5zaW9uLndpZHRoIC8gMixcbiAgICAgICAgICAgIHk6IChjb250YWluZXIuY2FudmFzLnNpemUuaGVpZ2h0ICogcG9zaXRpb24ueSkgLyAoMTAwICogcHhSYXRpbykgLSB0aGlzLmRpbWVuc2lvbi5oZWlnaHQgLyAyLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gKDAsIHV0aWxzXzEucGFyc2VQYXRocykodGhpcy5wYXRocywgc2NhbGUsIHRoaXMub2Zmc2V0KTtcbiAgICB9XG4gICAgYXN5bmMgZG93bmxvYWRTdmdQYXRoKHN2Z1VybCwgZm9yY2UpIHtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgICAgICAgY29uc3QgdXJsID0gc3ZnVXJsIHx8IG9wdGlvbnMudXJsO1xuICAgICAgICBjb25zdCBmb3JjZURvd25sb2FkID0gZm9yY2UgIT09IG51bGwgJiYgZm9yY2UgIT09IHZvaWQgMCA/IGZvcmNlIDogZmFsc2U7XG4gICAgICAgIGlmICghdXJsIHx8ICh0aGlzLnBhdGhzICE9PSB1bmRlZmluZWQgJiYgIWZvcmNlRG93bmxvYWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yYXc7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVxID0gYXdhaXQgZmV0Y2godXJsKTtcbiAgICAgICAgaWYgKCFyZXEub2spIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcInRzUGFydGljbGVzIEVycm9yIC0gRXJyb3Igb2NjdXJyZWQgZHVyaW5nIHBvbHlnb24gbWFzayBkb3dubG9hZFwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5wYXJzZVN2Z1BhdGgoYXdhaXQgcmVxLnRleHQoKSwgZm9yY2UpO1xuICAgIH1cbiAgICBkcmF3UG9pbnRzKCkge1xuICAgICAgICBpZiAoIXRoaXMucmF3KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMucmF3KSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5wYXJ0aWNsZXMuYWRkUGFydGljbGUoe1xuICAgICAgICAgICAgICAgIHg6IGl0ZW0ueCxcbiAgICAgICAgICAgICAgICB5OiBpdGVtLnksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByYW5kb21Qb2ludCgpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXI7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgIGxldCBwb3NpdGlvbjtcbiAgICAgICAgaWYgKG9wdGlvbnMudHlwZSA9PT0gRW51bXNfMS5UeXBlLmlubGluZSkge1xuICAgICAgICAgICAgc3dpdGNoIChvcHRpb25zLmlubGluZS5hcnJhbmdlbWVudCkge1xuICAgICAgICAgICAgICAgIGNhc2UgRW51bXNfMS5JbmxpbmVBcnJhbmdlbWVudC5yYW5kb21Qb2ludDpcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb24gPSB0aGlzLmdldFJhbmRvbVBvaW50KCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgRW51bXNfMS5JbmxpbmVBcnJhbmdlbWVudC5yYW5kb21MZW5ndGg6XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uID0gdGhpcy5nZXRSYW5kb21Qb2ludEJ5TGVuZ3RoKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgRW51bXNfMS5JbmxpbmVBcnJhbmdlbWVudC5lcXVpZGlzdGFudDpcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb24gPSB0aGlzLmdldEVxdWlkaXN0YW50UG9pbnRCeUluZGV4KGNvbnRhaW5lci5wYXJ0aWNsZXMuY291bnQpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIEVudW1zXzEuSW5saW5lQXJyYW5nZW1lbnQub25lUGVyUG9pbnQ6XG4gICAgICAgICAgICAgICAgY2FzZSBFbnVtc18xLklubGluZUFycmFuZ2VtZW50LnBlclBvaW50OlxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uID0gdGhpcy5nZXRQb2ludEJ5SW5kZXgoY29udGFpbmVyLnBhcnRpY2xlcy5jb3VudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBwb3NpdGlvbiA9IHtcbiAgICAgICAgICAgICAgICB4OiBNYXRoLnJhbmRvbSgpICogY29udGFpbmVyLmNhbnZhcy5zaXplLndpZHRoLFxuICAgICAgICAgICAgICAgIHk6IE1hdGgucmFuZG9tKCkgKiBjb250YWluZXIuY2FudmFzLnNpemUuaGVpZ2h0LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5jaGVja0luc2lkZVBvbHlnb24ocG9zaXRpb24pKSB7XG4gICAgICAgICAgICByZXR1cm4gcG9zaXRpb247XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yYW5kb21Qb2ludCgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldFJhbmRvbVBvaW50KCkge1xuICAgICAgICBpZiAoIXRoaXMucmF3IHx8ICF0aGlzLnJhdy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihVdGlsc18xLkNvbnN0YW50cy5ub1BvbHlnb25EYXRhTG9hZGVkKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb29yZHMgPSAoMCwgVXRpbHNfMS5pdGVtRnJvbUFycmF5KSh0aGlzLnJhdyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB4OiBjb29yZHMueCxcbiAgICAgICAgICAgIHk6IGNvb3Jkcy55LFxuICAgICAgICB9O1xuICAgIH1cbiAgICBnZXRSYW5kb21Qb2ludEJ5TGVuZ3RoKCkge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgICAgICAgaWYgKCF0aGlzLnJhdyB8fCAhdGhpcy5yYXcubGVuZ3RoIHx8ICEoKF9hID0gdGhpcy5wYXRocykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmxlbmd0aCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihVdGlsc18xLkNvbnN0YW50cy5ub1BvbHlnb25EYXRhTG9hZGVkKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYXRoID0gKDAsIFV0aWxzXzEuaXRlbUZyb21BcnJheSkodGhpcy5wYXRocyk7XG4gICAgICAgIGNvbnN0IGRpc3RhbmNlID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogcGF0aC5sZW5ndGgpICsgMTtcbiAgICAgICAgY29uc3QgcG9pbnQgPSBwYXRoLmVsZW1lbnQuZ2V0UG9pbnRBdExlbmd0aChkaXN0YW5jZSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB4OiBwb2ludC54ICogb3B0aW9ucy5zY2FsZSArICgoKF9iID0gdGhpcy5vZmZzZXQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi54KSB8fCAwKSxcbiAgICAgICAgICAgIHk6IHBvaW50LnkgKiBvcHRpb25zLnNjYWxlICsgKCgoX2MgPSB0aGlzLm9mZnNldCkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLnkpIHx8IDApLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBnZXRFcXVpZGlzdGFudFBvaW50QnlJbmRleChpbmRleCkge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2QsIF9lLCBfZiwgX2c7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmNvbnRhaW5lci5hY3R1YWxPcHRpb25zO1xuICAgICAgICBjb25zdCBwb2x5Z29uTWFza09wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgIGlmICghdGhpcy5yYXcgfHwgIXRoaXMucmF3Lmxlbmd0aCB8fCAhKChfYSA9IHRoaXMucGF0aHMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5sZW5ndGgpKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFV0aWxzXzEuQ29uc3RhbnRzLm5vUG9seWdvbkRhdGFMb2FkZWQpO1xuICAgICAgICBsZXQgb2Zmc2V0ID0gMDtcbiAgICAgICAgbGV0IHBvaW50O1xuICAgICAgICBjb25zdCB0b3RhbExlbmd0aCA9IHRoaXMucGF0aHMucmVkdWNlKCh0b3QsIHBhdGgpID0+IHRvdCArIHBhdGgubGVuZ3RoLCAwKTtcbiAgICAgICAgY29uc3QgZGlzdGFuY2UgPSB0b3RhbExlbmd0aCAvIG9wdGlvbnMucGFydGljbGVzLm51bWJlci52YWx1ZTtcbiAgICAgICAgZm9yIChjb25zdCBwYXRoIG9mIHRoaXMucGF0aHMpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhdGhEaXN0YW5jZSA9IGRpc3RhbmNlICogaW5kZXggLSBvZmZzZXQ7XG4gICAgICAgICAgICBpZiAocGF0aERpc3RhbmNlIDw9IHBhdGgubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcG9pbnQgPSBwYXRoLmVsZW1lbnQuZ2V0UG9pbnRBdExlbmd0aChwYXRoRGlzdGFuY2UpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgb2Zmc2V0ICs9IHBhdGgubGVuZ3RoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB4OiAoKF9iID0gcG9pbnQgPT09IG51bGwgfHwgcG9pbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBvaW50LngpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IDApICogcG9seWdvbk1hc2tPcHRpb25zLnNjYWxlICsgKChfZCA9IChfYyA9IHRoaXMub2Zmc2V0KSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MueCkgIT09IG51bGwgJiYgX2QgIT09IHZvaWQgMCA/IF9kIDogMCksXG4gICAgICAgICAgICB5OiAoKF9lID0gcG9pbnQgPT09IG51bGwgfHwgcG9pbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBvaW50LnkpICE9PSBudWxsICYmIF9lICE9PSB2b2lkIDAgPyBfZSA6IDApICogcG9seWdvbk1hc2tPcHRpb25zLnNjYWxlICsgKChfZyA9IChfZiA9IHRoaXMub2Zmc2V0KSA9PT0gbnVsbCB8fCBfZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2YueSkgIT09IG51bGwgJiYgX2cgIT09IHZvaWQgMCA/IF9nIDogMCksXG4gICAgICAgIH07XG4gICAgfVxuICAgIGdldFBvaW50QnlJbmRleChpbmRleCkge1xuICAgICAgICBpZiAoIXRoaXMucmF3IHx8ICF0aGlzLnJhdy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihVdGlsc18xLkNvbnN0YW50cy5ub1BvbHlnb25EYXRhTG9hZGVkKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb29yZHMgPSB0aGlzLnJhd1tpbmRleCAlIHRoaXMucmF3Lmxlbmd0aF07XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB4OiBjb29yZHMueCxcbiAgICAgICAgICAgIHk6IGNvb3Jkcy55LFxuICAgICAgICB9O1xuICAgIH1cbiAgICBjcmVhdGVQYXRoMkQoKSB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgIGlmICghdGhpcy5wYXRoMkRTdXBwb3J0ZWQgfHwgISgoX2EgPSB0aGlzLnBhdGhzKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EubGVuZ3RoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgcGF0aCBvZiB0aGlzLnBhdGhzKSB7XG4gICAgICAgICAgICBjb25zdCBwYXRoRGF0YSA9IChfYiA9IHBhdGguZWxlbWVudCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmdldEF0dHJpYnV0ZShcImRcIik7XG4gICAgICAgICAgICBpZiAocGF0aERhdGEpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXRoMmQgPSBuZXcgUGF0aDJEKHBhdGhEYXRhKTtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXRyaXggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLCBcInN2Z1wiKS5jcmVhdGVTVkdNYXRyaXgoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBmaW5hbFBhdGggPSBuZXcgUGF0aDJEKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgdHJhbnNmb3JtID0gbWF0cml4LnNjYWxlKG9wdGlvbnMuc2NhbGUpO1xuICAgICAgICAgICAgICAgIGlmIChmaW5hbFBhdGguYWRkUGF0aCkge1xuICAgICAgICAgICAgICAgICAgICBmaW5hbFBhdGguYWRkUGF0aChwYXRoMmQsIHRyYW5zZm9ybSk7XG4gICAgICAgICAgICAgICAgICAgIHBhdGgucGF0aDJkID0gZmluYWxQYXRoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHBhdGgucGF0aDJkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBwYXRoLnBhdGgyZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwYXRoLnBhdGgyZCB8fCAhdGhpcy5yYXcpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBhdGgucGF0aDJkID0gbmV3IFBhdGgyRCgpO1xuICAgICAgICAgICAgcGF0aC5wYXRoMmQubW92ZVRvKHRoaXMucmF3WzBdLngsIHRoaXMucmF3WzBdLnkpO1xuICAgICAgICAgICAgdGhpcy5yYXcuZm9yRWFjaCgocG9zLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgIGlmIChpID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAoX2EgPSBwYXRoLnBhdGgyZCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmxpbmVUbyhwb3MueCwgcG9zLnkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcGF0aC5wYXRoMmQuY2xvc2VQYXRoKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYXN5bmMgaW5pdFJhd0RhdGEoZm9yY2UpIHtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgICAgICAgaWYgKG9wdGlvbnMudXJsKSB7XG4gICAgICAgICAgICB0aGlzLnJhdyA9IGF3YWl0IHRoaXMuZG93bmxvYWRTdmdQYXRoKG9wdGlvbnMudXJsLCBmb3JjZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAob3B0aW9ucy5kYXRhKSB7XG4gICAgICAgICAgICBjb25zdCBkYXRhID0gb3B0aW9ucy5kYXRhO1xuICAgICAgICAgICAgbGV0IHN2ZztcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZGF0YSAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhdGggPSBkYXRhLnBhdGggaW5zdGFuY2VvZiBBcnJheVxuICAgICAgICAgICAgICAgICAgICA/IGRhdGEucGF0aC5tYXAoKHQpID0+IGA8cGF0aCBkPVwiJHt0fVwiIC8+YCkuam9pbihcIlwiKVxuICAgICAgICAgICAgICAgICAgICA6IGA8cGF0aCBkPVwiJHtkYXRhLnBhdGh9XCIgLz5gO1xuICAgICAgICAgICAgICAgIGNvbnN0IG5hbWVzcGFjZXMgPSAneG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiJztcbiAgICAgICAgICAgICAgICBzdmcgPSBgPHN2ZyAke25hbWVzcGFjZXN9IHdpZHRoPVwiJHtkYXRhLnNpemUud2lkdGh9XCIgaGVpZ2h0PVwiJHtkYXRhLnNpemUuaGVpZ2h0fVwiPiR7cGF0aH08L3N2Zz5gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgc3ZnID0gZGF0YTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMucmF3ID0gdGhpcy5wYXJzZVN2Z1BhdGgoc3ZnLCBmb3JjZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jcmVhdGVQYXRoMkQoKTtcbiAgICB9XG59XG5leHBvcnRzLlBvbHlnb25NYXNrSW5zdGFuY2UgPSBQb2x5Z29uTWFza0luc3RhbmNlO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/PolygonMask/PolygonMaskInstance.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/PolygonMask/pathseg.js": +/*!*****************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/PolygonMask/pathseg.js ***! + \*****************************************************************/ +/***/ (function() { + +"use strict"; +eval("\n(function () {\n \"use strict\";\n try {\n if (typeof window === \"undefined\")\n return;\n if (!(\"SVGPathSeg\" in window)) {\n window.SVGPathSeg = function (type, typeAsLetter, owningPathSegList) {\n this.pathSegType = type;\n this.pathSegTypeAsLetter = typeAsLetter;\n this._owningPathSegList = owningPathSegList;\n };\n window.SVGPathSeg.prototype.classname = \"SVGPathSeg\";\n window.SVGPathSeg.PATHSEG_UNKNOWN = 0;\n window.SVGPathSeg.PATHSEG_CLOSEPATH = 1;\n window.SVGPathSeg.PATHSEG_MOVETO_ABS = 2;\n window.SVGPathSeg.PATHSEG_MOVETO_REL = 3;\n window.SVGPathSeg.PATHSEG_LINETO_ABS = 4;\n window.SVGPathSeg.PATHSEG_LINETO_REL = 5;\n window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS = 6;\n window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL = 7;\n window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS = 8;\n window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL = 9;\n window.SVGPathSeg.PATHSEG_ARC_ABS = 10;\n window.SVGPathSeg.PATHSEG_ARC_REL = 11;\n window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS = 12;\n window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL = 13;\n window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS = 14;\n window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL = 15;\n window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS = 16;\n window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL = 17;\n window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS = 18;\n window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL = 19;\n window.SVGPathSeg.prototype._segmentChanged = function () {\n if (this._owningPathSegList)\n this._owningPathSegList.segmentChanged(this);\n };\n window.SVGPathSegClosePath = function (owningPathSegList) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CLOSEPATH, \"z\", owningPathSegList);\n };\n window.SVGPathSegClosePath.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegClosePath.prototype.toString = function () {\n return \"[object SVGPathSegClosePath]\";\n };\n window.SVGPathSegClosePath.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter;\n };\n window.SVGPathSegClosePath.prototype.clone = function () {\n return new window.SVGPathSegClosePath(undefined);\n };\n window.SVGPathSegMovetoAbs = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_MOVETO_ABS, \"M\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegMovetoAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegMovetoAbs.prototype.toString = function () {\n return \"[object SVGPathSegMovetoAbs]\";\n };\n window.SVGPathSegMovetoAbs.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegMovetoAbs.prototype.clone = function () {\n return new window.SVGPathSegMovetoAbs(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegMovetoAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegMovetoAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegMovetoRel = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_MOVETO_REL, \"m\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegMovetoRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegMovetoRel.prototype.toString = function () {\n return \"[object SVGPathSegMovetoRel]\";\n };\n window.SVGPathSegMovetoRel.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegMovetoRel.prototype.clone = function () {\n return new window.SVGPathSegMovetoRel(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegMovetoRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegMovetoRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegLinetoAbs = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_ABS, \"L\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegLinetoAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoAbs.prototype.toString = function () {\n return \"[object SVGPathSegLinetoAbs]\";\n };\n window.SVGPathSegLinetoAbs.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegLinetoAbs.prototype.clone = function () {\n return new window.SVGPathSegLinetoAbs(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegLinetoAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegLinetoAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegLinetoRel = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_REL, \"l\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegLinetoRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoRel.prototype.toString = function () {\n return \"[object SVGPathSegLinetoRel]\";\n };\n window.SVGPathSegLinetoRel.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegLinetoRel.prototype.clone = function () {\n return new window.SVGPathSegLinetoRel(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegLinetoRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegLinetoRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegCurvetoCubicAbs = function (owningPathSegList, x, y, x1, y1, x2, y2) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS, \"C\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x1 = x1;\n this._y1 = y1;\n this._x2 = x2;\n this._y2 = y2;\n };\n window.SVGPathSegCurvetoCubicAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoCubicAbs.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoCubicAbs]\";\n };\n window.SVGPathSegCurvetoCubicAbs.prototype._asPathString = function () {\n return (this.pathSegTypeAsLetter +\n \" \" +\n this._x1 +\n \" \" +\n this._y1 +\n \" \" +\n this._x2 +\n \" \" +\n this._y2 +\n \" \" +\n this._x +\n \" \" +\n this._y);\n };\n window.SVGPathSegCurvetoCubicAbs.prototype.clone = function () {\n return new window.SVGPathSegCurvetoCubicAbs(undefined, this._x, this._y, this._x1, this._y1, this._x2, this._y2);\n };\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"x1\", {\n get: function () {\n return this._x1;\n },\n set: function (x1) {\n this._x1 = x1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"y1\", {\n get: function () {\n return this._y1;\n },\n set: function (y1) {\n this._y1 = y1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"x2\", {\n get: function () {\n return this._x2;\n },\n set: function (x2) {\n this._x2 = x2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"y2\", {\n get: function () {\n return this._y2;\n },\n set: function (y2) {\n this._y2 = y2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegCurvetoCubicRel = function (owningPathSegList, x, y, x1, y1, x2, y2) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL, \"c\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x1 = x1;\n this._y1 = y1;\n this._x2 = x2;\n this._y2 = y2;\n };\n window.SVGPathSegCurvetoCubicRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoCubicRel.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoCubicRel]\";\n };\n window.SVGPathSegCurvetoCubicRel.prototype._asPathString = function () {\n return (this.pathSegTypeAsLetter +\n \" \" +\n this._x1 +\n \" \" +\n this._y1 +\n \" \" +\n this._x2 +\n \" \" +\n this._y2 +\n \" \" +\n this._x +\n \" \" +\n this._y);\n };\n window.SVGPathSegCurvetoCubicRel.prototype.clone = function () {\n return new window.SVGPathSegCurvetoCubicRel(undefined, this._x, this._y, this._x1, this._y1, this._x2, this._y2);\n };\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"x1\", {\n get: function () {\n return this._x1;\n },\n set: function (x1) {\n this._x1 = x1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"y1\", {\n get: function () {\n return this._y1;\n },\n set: function (y1) {\n this._y1 = y1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"x2\", {\n get: function () {\n return this._x2;\n },\n set: function (x2) {\n this._x2 = x2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"y2\", {\n get: function () {\n return this._y2;\n },\n set: function (y2) {\n this._y2 = y2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegCurvetoQuadraticAbs = function (owningPathSegList, x, y, x1, y1) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS, \"Q\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x1 = x1;\n this._y1 = y1;\n };\n window.SVGPathSegCurvetoQuadraticAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoQuadraticAbs.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoQuadraticAbs]\";\n };\n window.SVGPathSegCurvetoQuadraticAbs.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x1 + \" \" + this._y1 + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegCurvetoQuadraticAbs.prototype.clone = function () {\n return new window.SVGPathSegCurvetoQuadraticAbs(undefined, this._x, this._y, this._x1, this._y1);\n };\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype, \"x1\", {\n get: function () {\n return this._x1;\n },\n set: function (x1) {\n this._x1 = x1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype, \"y1\", {\n get: function () {\n return this._y1;\n },\n set: function (y1) {\n this._y1 = y1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegCurvetoQuadraticRel = function (owningPathSegList, x, y, x1, y1) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL, \"q\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x1 = x1;\n this._y1 = y1;\n };\n window.SVGPathSegCurvetoQuadraticRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoQuadraticRel.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoQuadraticRel]\";\n };\n window.SVGPathSegCurvetoQuadraticRel.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x1 + \" \" + this._y1 + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegCurvetoQuadraticRel.prototype.clone = function () {\n return new window.SVGPathSegCurvetoQuadraticRel(undefined, this._x, this._y, this._x1, this._y1);\n };\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype, \"x1\", {\n get: function () {\n return this._x1;\n },\n set: function (x1) {\n this._x1 = x1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype, \"y1\", {\n get: function () {\n return this._y1;\n },\n set: function (y1) {\n this._y1 = y1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegArcAbs = function (owningPathSegList, x, y, r1, r2, angle, largeArcFlag, sweepFlag) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_ARC_ABS, \"A\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._r1 = r1;\n this._r2 = r2;\n this._angle = angle;\n this._largeArcFlag = largeArcFlag;\n this._sweepFlag = sweepFlag;\n };\n window.SVGPathSegArcAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegArcAbs.prototype.toString = function () {\n return \"[object SVGPathSegArcAbs]\";\n };\n window.SVGPathSegArcAbs.prototype._asPathString = function () {\n return (this.pathSegTypeAsLetter +\n \" \" +\n this._r1 +\n \" \" +\n this._r2 +\n \" \" +\n this._angle +\n \" \" +\n (this._largeArcFlag ? \"1\" : \"0\") +\n \" \" +\n (this._sweepFlag ? \"1\" : \"0\") +\n \" \" +\n this._x +\n \" \" +\n this._y);\n };\n window.SVGPathSegArcAbs.prototype.clone = function () {\n return new window.SVGPathSegArcAbs(undefined, this._x, this._y, this._r1, this._r2, this._angle, this._largeArcFlag, this._sweepFlag);\n };\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"r1\", {\n get: function () {\n return this._r1;\n },\n set: function (r1) {\n this._r1 = r1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"r2\", {\n get: function () {\n return this._r2;\n },\n set: function (r2) {\n this._r2 = r2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"angle\", {\n get: function () {\n return this._angle;\n },\n set: function (angle) {\n this._angle = angle;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"largeArcFlag\", {\n get: function () {\n return this._largeArcFlag;\n },\n set: function (largeArcFlag) {\n this._largeArcFlag = largeArcFlag;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"sweepFlag\", {\n get: function () {\n return this._sweepFlag;\n },\n set: function (sweepFlag) {\n this._sweepFlag = sweepFlag;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegArcRel = function (owningPathSegList, x, y, r1, r2, angle, largeArcFlag, sweepFlag) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_ARC_REL, \"a\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._r1 = r1;\n this._r2 = r2;\n this._angle = angle;\n this._largeArcFlag = largeArcFlag;\n this._sweepFlag = sweepFlag;\n };\n window.SVGPathSegArcRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegArcRel.prototype.toString = function () {\n return \"[object SVGPathSegArcRel]\";\n };\n window.SVGPathSegArcRel.prototype._asPathString = function () {\n return (this.pathSegTypeAsLetter +\n \" \" +\n this._r1 +\n \" \" +\n this._r2 +\n \" \" +\n this._angle +\n \" \" +\n (this._largeArcFlag ? \"1\" : \"0\") +\n \" \" +\n (this._sweepFlag ? \"1\" : \"0\") +\n \" \" +\n this._x +\n \" \" +\n this._y);\n };\n window.SVGPathSegArcRel.prototype.clone = function () {\n return new window.SVGPathSegArcRel(undefined, this._x, this._y, this._r1, this._r2, this._angle, this._largeArcFlag, this._sweepFlag);\n };\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"r1\", {\n get: function () {\n return this._r1;\n },\n set: function (r1) {\n this._r1 = r1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"r2\", {\n get: function () {\n return this._r2;\n },\n set: function (r2) {\n this._r2 = r2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"angle\", {\n get: function () {\n return this._angle;\n },\n set: function (angle) {\n this._angle = angle;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"largeArcFlag\", {\n get: function () {\n return this._largeArcFlag;\n },\n set: function (largeArcFlag) {\n this._largeArcFlag = largeArcFlag;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"sweepFlag\", {\n get: function () {\n return this._sweepFlag;\n },\n set: function (sweepFlag) {\n this._sweepFlag = sweepFlag;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegLinetoHorizontalAbs = function (owningPathSegList, x) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS, \"H\", owningPathSegList);\n this._x = x;\n };\n window.SVGPathSegLinetoHorizontalAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoHorizontalAbs.prototype.toString = function () {\n return \"[object SVGPathSegLinetoHorizontalAbs]\";\n };\n window.SVGPathSegLinetoHorizontalAbs.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x;\n };\n window.SVGPathSegLinetoHorizontalAbs.prototype.clone = function () {\n return new window.SVGPathSegLinetoHorizontalAbs(undefined, this._x);\n };\n Object.defineProperty(window.SVGPathSegLinetoHorizontalAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegLinetoHorizontalRel = function (owningPathSegList, x) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL, \"h\", owningPathSegList);\n this._x = x;\n };\n window.SVGPathSegLinetoHorizontalRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoHorizontalRel.prototype.toString = function () {\n return \"[object SVGPathSegLinetoHorizontalRel]\";\n };\n window.SVGPathSegLinetoHorizontalRel.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x;\n };\n window.SVGPathSegLinetoHorizontalRel.prototype.clone = function () {\n return new window.SVGPathSegLinetoHorizontalRel(undefined, this._x);\n };\n Object.defineProperty(window.SVGPathSegLinetoHorizontalRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegLinetoVerticalAbs = function (owningPathSegList, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS, \"V\", owningPathSegList);\n this._y = y;\n };\n window.SVGPathSegLinetoVerticalAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoVerticalAbs.prototype.toString = function () {\n return \"[object SVGPathSegLinetoVerticalAbs]\";\n };\n window.SVGPathSegLinetoVerticalAbs.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._y;\n };\n window.SVGPathSegLinetoVerticalAbs.prototype.clone = function () {\n return new window.SVGPathSegLinetoVerticalAbs(undefined, this._y);\n };\n Object.defineProperty(window.SVGPathSegLinetoVerticalAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegLinetoVerticalRel = function (owningPathSegList, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL, \"v\", owningPathSegList);\n this._y = y;\n };\n window.SVGPathSegLinetoVerticalRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoVerticalRel.prototype.toString = function () {\n return \"[object SVGPathSegLinetoVerticalRel]\";\n };\n window.SVGPathSegLinetoVerticalRel.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._y;\n };\n window.SVGPathSegLinetoVerticalRel.prototype.clone = function () {\n return new window.SVGPathSegLinetoVerticalRel(undefined, this._y);\n };\n Object.defineProperty(window.SVGPathSegLinetoVerticalRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegCurvetoCubicSmoothAbs = function (owningPathSegList, x, y, x2, y2) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS, \"S\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x2 = x2;\n this._y2 = y2;\n };\n window.SVGPathSegCurvetoCubicSmoothAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoCubicSmoothAbs.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoCubicSmoothAbs]\";\n };\n window.SVGPathSegCurvetoCubicSmoothAbs.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x2 + \" \" + this._y2 + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegCurvetoCubicSmoothAbs.prototype.clone = function () {\n return new window.SVGPathSegCurvetoCubicSmoothAbs(undefined, this._x, this._y, this._x2, this._y2);\n };\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype, \"x2\", {\n get: function () {\n return this._x2;\n },\n set: function (x2) {\n this._x2 = x2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype, \"y2\", {\n get: function () {\n return this._y2;\n },\n set: function (y2) {\n this._y2 = y2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegCurvetoCubicSmoothRel = function (owningPathSegList, x, y, x2, y2) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL, \"s\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x2 = x2;\n this._y2 = y2;\n };\n window.SVGPathSegCurvetoCubicSmoothRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoCubicSmoothRel.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoCubicSmoothRel]\";\n };\n window.SVGPathSegCurvetoCubicSmoothRel.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x2 + \" \" + this._y2 + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegCurvetoCubicSmoothRel.prototype.clone = function () {\n return new window.SVGPathSegCurvetoCubicSmoothRel(undefined, this._x, this._y, this._x2, this._y2);\n };\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype, \"x2\", {\n get: function () {\n return this._x2;\n },\n set: function (x2) {\n this._x2 = x2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype, \"y2\", {\n get: function () {\n return this._y2;\n },\n set: function (y2) {\n this._y2 = y2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegCurvetoQuadraticSmoothAbs = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS, \"T\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoQuadraticSmoothAbs]\";\n };\n window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype.clone = function () {\n return new window.SVGPathSegCurvetoQuadraticSmoothAbs(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegCurvetoQuadraticSmoothRel = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL, \"t\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegCurvetoQuadraticSmoothRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoQuadraticSmoothRel.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoQuadraticSmoothRel]\";\n };\n window.SVGPathSegCurvetoQuadraticSmoothRel.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegCurvetoQuadraticSmoothRel.prototype.clone = function () {\n return new window.SVGPathSegCurvetoQuadraticSmoothRel(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathElement.prototype.createSVGPathSegClosePath = function () {\n return new window.SVGPathSegClosePath(undefined);\n };\n window.SVGPathElement.prototype.createSVGPathSegMovetoAbs = function (x, y) {\n return new window.SVGPathSegMovetoAbs(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegMovetoRel = function (x, y) {\n return new window.SVGPathSegMovetoRel(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoAbs = function (x, y) {\n return new window.SVGPathSegLinetoAbs(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoRel = function (x, y) {\n return new window.SVGPathSegLinetoRel(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicAbs = function (x, y, x1, y1, x2, y2) {\n return new window.SVGPathSegCurvetoCubicAbs(undefined, x, y, x1, y1, x2, y2);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicRel = function (x, y, x1, y1, x2, y2) {\n return new window.SVGPathSegCurvetoCubicRel(undefined, x, y, x1, y1, x2, y2);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticAbs = function (x, y, x1, y1) {\n return new window.SVGPathSegCurvetoQuadraticAbs(undefined, x, y, x1, y1);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticRel = function (x, y, x1, y1) {\n return new window.SVGPathSegCurvetoQuadraticRel(undefined, x, y, x1, y1);\n };\n window.SVGPathElement.prototype.createSVGPathSegArcAbs = function (x, y, r1, r2, angle, largeArcFlag, sweepFlag) {\n return new window.SVGPathSegArcAbs(undefined, x, y, r1, r2, angle, largeArcFlag, sweepFlag);\n };\n window.SVGPathElement.prototype.createSVGPathSegArcRel = function (x, y, r1, r2, angle, largeArcFlag, sweepFlag) {\n return new window.SVGPathSegArcRel(undefined, x, y, r1, r2, angle, largeArcFlag, sweepFlag);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoHorizontalAbs = function (x) {\n return new window.SVGPathSegLinetoHorizontalAbs(undefined, x);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoHorizontalRel = function (x) {\n return new window.SVGPathSegLinetoHorizontalRel(undefined, x);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoVerticalAbs = function (y) {\n return new window.SVGPathSegLinetoVerticalAbs(undefined, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoVerticalRel = function (y) {\n return new window.SVGPathSegLinetoVerticalRel(undefined, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicSmoothAbs = function (x, y, x2, y2) {\n return new window.SVGPathSegCurvetoCubicSmoothAbs(undefined, x, y, x2, y2);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicSmoothRel = function (x, y, x2, y2) {\n return new window.SVGPathSegCurvetoCubicSmoothRel(undefined, x, y, x2, y2);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticSmoothAbs = function (x, y) {\n return new window.SVGPathSegCurvetoQuadraticSmoothAbs(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticSmoothRel = function (x, y) {\n return new window.SVGPathSegCurvetoQuadraticSmoothRel(undefined, x, y);\n };\n if (!(\"getPathSegAtLength\" in window.SVGPathElement.prototype)) {\n window.SVGPathElement.prototype.getPathSegAtLength = function (distance) {\n if (distance === undefined || !isFinite(distance))\n throw \"Invalid arguments.\";\n var measurementElement = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n measurementElement.setAttribute(\"d\", this.getAttribute(\"d\"));\n var lastPathSegment = measurementElement.pathSegList.numberOfItems - 1;\n if (lastPathSegment <= 0)\n return 0;\n do {\n measurementElement.pathSegList.removeItem(lastPathSegment);\n if (distance > measurementElement.getTotalLength())\n break;\n lastPathSegment--;\n } while (lastPathSegment > 0);\n return lastPathSegment;\n };\n }\n }\n if (!(\"SVGPathSegList\" in window) || !(\"appendItem\" in window.SVGPathSegList.prototype)) {\n window.SVGPathSegList = function (pathElement) {\n this._pathElement = pathElement;\n this._list = this._parsePath(this._pathElement.getAttribute(\"d\"));\n this._mutationObserverConfig = { attributes: true, attributeFilter: [\"d\"] };\n this._pathElementMutationObserver = new MutationObserver(this._updateListFromPathMutations.bind(this));\n this._pathElementMutationObserver.observe(this._pathElement, this._mutationObserverConfig);\n };\n window.SVGPathSegList.prototype.classname = \"SVGPathSegList\";\n Object.defineProperty(window.SVGPathSegList.prototype, \"numberOfItems\", {\n get: function () {\n this._checkPathSynchronizedToList();\n return this._list.length;\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegList.prototype, \"length\", {\n get: function () {\n this._checkPathSynchronizedToList();\n return this._list.length;\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathElement.prototype, \"pathSegList\", {\n get: function () {\n if (!this._pathSegList)\n this._pathSegList = new window.SVGPathSegList(this);\n return this._pathSegList;\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathElement.prototype, \"normalizedPathSegList\", {\n get: function () {\n return this.pathSegList;\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathElement.prototype, \"animatedPathSegList\", {\n get: function () {\n return this.pathSegList;\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathElement.prototype, \"animatedNormalizedPathSegList\", {\n get: function () {\n return this.pathSegList;\n },\n enumerable: true,\n });\n window.SVGPathSegList.prototype._checkPathSynchronizedToList = function () {\n this._updateListFromPathMutations(this._pathElementMutationObserver.takeRecords());\n };\n window.SVGPathSegList.prototype._updateListFromPathMutations = function (mutationRecords) {\n if (!this._pathElement)\n return;\n var hasPathMutations = false;\n mutationRecords.forEach(function (record) {\n if (record.attributeName == \"d\")\n hasPathMutations = true;\n });\n if (hasPathMutations)\n this._list = this._parsePath(this._pathElement.getAttribute(\"d\"));\n };\n window.SVGPathSegList.prototype._writeListToPath = function () {\n this._pathElementMutationObserver.disconnect();\n this._pathElement.setAttribute(\"d\", window.SVGPathSegList._pathSegArrayAsString(this._list));\n this._pathElementMutationObserver.observe(this._pathElement, this._mutationObserverConfig);\n };\n window.SVGPathSegList.prototype.segmentChanged = function (pathSeg) {\n this._writeListToPath();\n };\n window.SVGPathSegList.prototype.clear = function () {\n this._checkPathSynchronizedToList();\n this._list.forEach(function (pathSeg) {\n pathSeg._owningPathSegList = null;\n });\n this._list = [];\n this._writeListToPath();\n };\n window.SVGPathSegList.prototype.initialize = function (newItem) {\n this._checkPathSynchronizedToList();\n this._list = [newItem];\n newItem._owningPathSegList = this;\n this._writeListToPath();\n return newItem;\n };\n window.SVGPathSegList.prototype._checkValidIndex = function (index) {\n if (isNaN(index) || index < 0 || index >= this.numberOfItems)\n throw \"INDEX_SIZE_ERR\";\n };\n window.SVGPathSegList.prototype.getItem = function (index) {\n this._checkPathSynchronizedToList();\n this._checkValidIndex(index);\n return this._list[index];\n };\n window.SVGPathSegList.prototype.insertItemBefore = function (newItem, index) {\n this._checkPathSynchronizedToList();\n if (index > this.numberOfItems)\n index = this.numberOfItems;\n if (newItem._owningPathSegList) {\n newItem = newItem.clone();\n }\n this._list.splice(index, 0, newItem);\n newItem._owningPathSegList = this;\n this._writeListToPath();\n return newItem;\n };\n window.SVGPathSegList.prototype.replaceItem = function (newItem, index) {\n this._checkPathSynchronizedToList();\n if (newItem._owningPathSegList) {\n newItem = newItem.clone();\n }\n this._checkValidIndex(index);\n this._list[index] = newItem;\n newItem._owningPathSegList = this;\n this._writeListToPath();\n return newItem;\n };\n window.SVGPathSegList.prototype.removeItem = function (index) {\n this._checkPathSynchronizedToList();\n this._checkValidIndex(index);\n var item = this._list[index];\n this._list.splice(index, 1);\n this._writeListToPath();\n return item;\n };\n window.SVGPathSegList.prototype.appendItem = function (newItem) {\n this._checkPathSynchronizedToList();\n if (newItem._owningPathSegList) {\n newItem = newItem.clone();\n }\n this._list.push(newItem);\n newItem._owningPathSegList = this;\n this._writeListToPath();\n return newItem;\n };\n window.SVGPathSegList._pathSegArrayAsString = function (pathSegArray) {\n var string = \"\";\n var first = true;\n pathSegArray.forEach(function (pathSeg) {\n if (first) {\n first = false;\n string += pathSeg._asPathString();\n }\n else {\n string += \" \" + pathSeg._asPathString();\n }\n });\n return string;\n };\n window.SVGPathSegList.prototype._parsePath = function (string) {\n if (!string || string.length == 0)\n return [];\n var owningPathSegList = this;\n var Builder = function () {\n this.pathSegList = [];\n };\n Builder.prototype.appendSegment = function (pathSeg) {\n this.pathSegList.push(pathSeg);\n };\n var Source = function (string) {\n this._string = string;\n this._currentIndex = 0;\n this._endIndex = this._string.length;\n this._previousCommand = window.SVGPathSeg.PATHSEG_UNKNOWN;\n this._skipOptionalSpaces();\n };\n Source.prototype._isCurrentSpace = function () {\n var character = this._string[this._currentIndex];\n return (character <= \" \" &&\n (character == \" \" || character == \"\\n\" || character == \"\\t\" || character == \"\\r\" || character == \"\\f\"));\n };\n Source.prototype._skipOptionalSpaces = function () {\n while (this._currentIndex < this._endIndex && this._isCurrentSpace())\n this._currentIndex++;\n return this._currentIndex < this._endIndex;\n };\n Source.prototype._skipOptionalSpacesOrDelimiter = function () {\n if (this._currentIndex < this._endIndex &&\n !this._isCurrentSpace() &&\n this._string.charAt(this._currentIndex) != \",\")\n return false;\n if (this._skipOptionalSpaces()) {\n if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) == \",\") {\n this._currentIndex++;\n this._skipOptionalSpaces();\n }\n }\n return this._currentIndex < this._endIndex;\n };\n Source.prototype.hasMoreData = function () {\n return this._currentIndex < this._endIndex;\n };\n Source.prototype.peekSegmentType = function () {\n var lookahead = this._string[this._currentIndex];\n return this._pathSegTypeFromChar(lookahead);\n };\n Source.prototype._pathSegTypeFromChar = function (lookahead) {\n switch (lookahead) {\n case \"Z\":\n case \"z\":\n return window.SVGPathSeg.PATHSEG_CLOSEPATH;\n case \"M\":\n return window.SVGPathSeg.PATHSEG_MOVETO_ABS;\n case \"m\":\n return window.SVGPathSeg.PATHSEG_MOVETO_REL;\n case \"L\":\n return window.SVGPathSeg.PATHSEG_LINETO_ABS;\n case \"l\":\n return window.SVGPathSeg.PATHSEG_LINETO_REL;\n case \"C\":\n return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS;\n case \"c\":\n return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL;\n case \"Q\":\n return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS;\n case \"q\":\n return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL;\n case \"A\":\n return window.SVGPathSeg.PATHSEG_ARC_ABS;\n case \"a\":\n return window.SVGPathSeg.PATHSEG_ARC_REL;\n case \"H\":\n return window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS;\n case \"h\":\n return window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL;\n case \"V\":\n return window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS;\n case \"v\":\n return window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL;\n case \"S\":\n return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS;\n case \"s\":\n return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL;\n case \"T\":\n return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS;\n case \"t\":\n return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL;\n default:\n return window.SVGPathSeg.PATHSEG_UNKNOWN;\n }\n };\n Source.prototype._nextCommandHelper = function (lookahead, previousCommand) {\n if ((lookahead == \"+\" || lookahead == \"-\" || lookahead == \".\" || (lookahead >= \"0\" && lookahead <= \"9\")) &&\n previousCommand != window.SVGPathSeg.PATHSEG_CLOSEPATH) {\n if (previousCommand == window.SVGPathSeg.PATHSEG_MOVETO_ABS)\n return window.SVGPathSeg.PATHSEG_LINETO_ABS;\n if (previousCommand == window.SVGPathSeg.PATHSEG_MOVETO_REL)\n return window.SVGPathSeg.PATHSEG_LINETO_REL;\n return previousCommand;\n }\n return window.SVGPathSeg.PATHSEG_UNKNOWN;\n };\n Source.prototype.initialCommandIsMoveTo = function () {\n if (!this.hasMoreData())\n return true;\n var command = this.peekSegmentType();\n return command == window.SVGPathSeg.PATHSEG_MOVETO_ABS || command == window.SVGPathSeg.PATHSEG_MOVETO_REL;\n };\n Source.prototype._parseNumber = function () {\n var exponent = 0;\n var integer = 0;\n var frac = 1;\n var decimal = 0;\n var sign = 1;\n var expsign = 1;\n var startIndex = this._currentIndex;\n this._skipOptionalSpaces();\n if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) == \"+\")\n this._currentIndex++;\n else if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) == \"-\") {\n this._currentIndex++;\n sign = -1;\n }\n if (this._currentIndex == this._endIndex ||\n ((this._string.charAt(this._currentIndex) < \"0\" || this._string.charAt(this._currentIndex) > \"9\") &&\n this._string.charAt(this._currentIndex) != \".\"))\n return undefined;\n var startIntPartIndex = this._currentIndex;\n while (this._currentIndex < this._endIndex &&\n this._string.charAt(this._currentIndex) >= \"0\" &&\n this._string.charAt(this._currentIndex) <= \"9\")\n this._currentIndex++;\n if (this._currentIndex != startIntPartIndex) {\n var scanIntPartIndex = this._currentIndex - 1;\n var multiplier = 1;\n while (scanIntPartIndex >= startIntPartIndex) {\n integer += multiplier * (this._string.charAt(scanIntPartIndex--) - \"0\");\n multiplier *= 10;\n }\n }\n if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) == \".\") {\n this._currentIndex++;\n if (this._currentIndex >= this._endIndex ||\n this._string.charAt(this._currentIndex) < \"0\" ||\n this._string.charAt(this._currentIndex) > \"9\")\n return undefined;\n while (this._currentIndex < this._endIndex &&\n this._string.charAt(this._currentIndex) >= \"0\" &&\n this._string.charAt(this._currentIndex) <= \"9\") {\n frac *= 10;\n decimal += (this._string.charAt(this._currentIndex) - \"0\") / frac;\n this._currentIndex += 1;\n }\n }\n if (this._currentIndex != startIndex &&\n this._currentIndex + 1 < this._endIndex &&\n (this._string.charAt(this._currentIndex) == \"e\" || this._string.charAt(this._currentIndex) == \"E\") &&\n this._string.charAt(this._currentIndex + 1) != \"x\" &&\n this._string.charAt(this._currentIndex + 1) != \"m\") {\n this._currentIndex++;\n if (this._string.charAt(this._currentIndex) == \"+\") {\n this._currentIndex++;\n }\n else if (this._string.charAt(this._currentIndex) == \"-\") {\n this._currentIndex++;\n expsign = -1;\n }\n if (this._currentIndex >= this._endIndex ||\n this._string.charAt(this._currentIndex) < \"0\" ||\n this._string.charAt(this._currentIndex) > \"9\")\n return undefined;\n while (this._currentIndex < this._endIndex &&\n this._string.charAt(this._currentIndex) >= \"0\" &&\n this._string.charAt(this._currentIndex) <= \"9\") {\n exponent *= 10;\n exponent += this._string.charAt(this._currentIndex) - \"0\";\n this._currentIndex++;\n }\n }\n var number = integer + decimal;\n number *= sign;\n if (exponent)\n number *= Math.pow(10, expsign * exponent);\n if (startIndex == this._currentIndex)\n return undefined;\n this._skipOptionalSpacesOrDelimiter();\n return number;\n };\n Source.prototype._parseArcFlag = function () {\n if (this._currentIndex >= this._endIndex)\n return undefined;\n var flag = false;\n var flagChar = this._string.charAt(this._currentIndex++);\n if (flagChar == \"0\")\n flag = false;\n else if (flagChar == \"1\")\n flag = true;\n else\n return undefined;\n this._skipOptionalSpacesOrDelimiter();\n return flag;\n };\n Source.prototype.parseSegment = function () {\n var lookahead = this._string[this._currentIndex];\n var command = this._pathSegTypeFromChar(lookahead);\n if (command == window.SVGPathSeg.PATHSEG_UNKNOWN) {\n if (this._previousCommand == window.SVGPathSeg.PATHSEG_UNKNOWN)\n return null;\n command = this._nextCommandHelper(lookahead, this._previousCommand);\n if (command == window.SVGPathSeg.PATHSEG_UNKNOWN)\n return null;\n }\n else {\n this._currentIndex++;\n }\n this._previousCommand = command;\n switch (command) {\n case window.SVGPathSeg.PATHSEG_MOVETO_REL:\n return new window.SVGPathSegMovetoRel(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_MOVETO_ABS:\n return new window.SVGPathSegMovetoAbs(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_REL:\n return new window.SVGPathSegLinetoRel(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_ABS:\n return new window.SVGPathSegLinetoAbs(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL:\n return new window.SVGPathSegLinetoHorizontalRel(owningPathSegList, this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS:\n return new window.SVGPathSegLinetoHorizontalAbs(owningPathSegList, this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL:\n return new window.SVGPathSegLinetoVerticalRel(owningPathSegList, this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS:\n return new window.SVGPathSegLinetoVerticalAbs(owningPathSegList, this._parseNumber());\n case window.SVGPathSeg.PATHSEG_CLOSEPATH:\n this._skipOptionalSpaces();\n return new window.SVGPathSegClosePath(owningPathSegList);\n case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL:\n var points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n x2: this._parseNumber(),\n y2: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber(),\n };\n return new window.SVGPathSegCurvetoCubicRel(owningPathSegList, points.x, points.y, points.x1, points.y1, points.x2, points.y2);\n case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS:\n var points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n x2: this._parseNumber(),\n y2: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber(),\n };\n return new window.SVGPathSegCurvetoCubicAbs(owningPathSegList, points.x, points.y, points.x1, points.y1, points.x2, points.y2);\n case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL:\n var points = {\n x2: this._parseNumber(),\n y2: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber(),\n };\n return new window.SVGPathSegCurvetoCubicSmoothRel(owningPathSegList, points.x, points.y, points.x2, points.y2);\n case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS:\n var points = {\n x2: this._parseNumber(),\n y2: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber(),\n };\n return new window.SVGPathSegCurvetoCubicSmoothAbs(owningPathSegList, points.x, points.y, points.x2, points.y2);\n case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL:\n var points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber(),\n };\n return new window.SVGPathSegCurvetoQuadraticRel(owningPathSegList, points.x, points.y, points.x1, points.y1);\n case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS:\n var points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber(),\n };\n return new window.SVGPathSegCurvetoQuadraticAbs(owningPathSegList, points.x, points.y, points.x1, points.y1);\n case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL:\n return new window.SVGPathSegCurvetoQuadraticSmoothRel(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS:\n return new window.SVGPathSegCurvetoQuadraticSmoothAbs(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_ARC_REL:\n var points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n arcAngle: this._parseNumber(),\n arcLarge: this._parseArcFlag(),\n arcSweep: this._parseArcFlag(),\n x: this._parseNumber(),\n y: this._parseNumber(),\n };\n return new window.SVGPathSegArcRel(owningPathSegList, points.x, points.y, points.x1, points.y1, points.arcAngle, points.arcLarge, points.arcSweep);\n case window.SVGPathSeg.PATHSEG_ARC_ABS:\n var points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n arcAngle: this._parseNumber(),\n arcLarge: this._parseArcFlag(),\n arcSweep: this._parseArcFlag(),\n x: this._parseNumber(),\n y: this._parseNumber(),\n };\n return new window.SVGPathSegArcAbs(owningPathSegList, points.x, points.y, points.x1, points.y1, points.arcAngle, points.arcLarge, points.arcSweep);\n default:\n throw \"Unknown path seg type.\";\n }\n };\n var builder = new Builder();\n var source = new Source(string);\n if (!source.initialCommandIsMoveTo())\n return [];\n while (source.hasMoreData()) {\n var pathSeg = source.parseSegment();\n if (!pathSeg)\n return [];\n builder.appendSegment(pathSeg);\n }\n return builder.pathSegList;\n };\n }\n }\n catch (e) {\n console.warn(\"An error occurred in tsParticles pathseg polyfill. If the Polygon Mask is not working, please open an issue here: https://github.com/matteobruni/tsparticles\", e);\n }\n})();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9Qb2x5Z29uTWFzay9wYXRoc2VnLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpREFBaUQ7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9QbHVnaW5zL1BvbHlnb25NYXNrL3BhdGhzZWcuanM/NjJjMSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbihmdW5jdGlvbiAoKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdHJ5IHtcbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09IFwidW5kZWZpbmVkXCIpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmICghKFwiU1ZHUGF0aFNlZ1wiIGluIHdpbmRvdykpIHtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnID0gZnVuY3Rpb24gKHR5cGUsIHR5cGVBc0xldHRlciwgb3duaW5nUGF0aFNlZ0xpc3QpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBhdGhTZWdUeXBlID0gdHlwZTtcbiAgICAgICAgICAgICAgICB0aGlzLnBhdGhTZWdUeXBlQXNMZXR0ZXIgPSB0eXBlQXNMZXR0ZXI7XG4gICAgICAgICAgICAgICAgdGhpcy5fb3duaW5nUGF0aFNlZ0xpc3QgPSBvd25pbmdQYXRoU2VnTGlzdDtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZy5wcm90b3R5cGUuY2xhc3NuYW1lID0gXCJTVkdQYXRoU2VnXCI7XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX1VOS05PV04gPSAwO1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19DTE9TRVBBVEggPSAxO1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19NT1ZFVE9fQUJTID0gMjtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfTU9WRVRPX1JFTCA9IDM7XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX0xJTkVUT19BQlMgPSA0O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19MSU5FVE9fUkVMID0gNTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfQ1VSVkVUT19DVUJJQ19BQlMgPSA2O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19DVVJWRVRPX0NVQklDX1JFTCA9IDc7XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX0FCUyA9IDg7XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX1JFTCA9IDk7XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX0FSQ19BQlMgPSAxMDtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfQVJDX1JFTCA9IDExO1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19MSU5FVE9fSE9SSVpPTlRBTF9BQlMgPSAxMjtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfTElORVRPX0hPUklaT05UQUxfUkVMID0gMTM7XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX0xJTkVUT19WRVJUSUNBTF9BQlMgPSAxNDtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfTElORVRPX1ZFUlRJQ0FMX1JFTCA9IDE1O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19DVVJWRVRPX0NVQklDX1NNT09USF9BQlMgPSAxNjtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfQ1VSVkVUT19DVUJJQ19TTU9PVEhfUkVMID0gMTc7XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX1NNT09USF9BQlMgPSAxODtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfQ1VSVkVUT19RVUFEUkFUSUNfU01PT1RIX1JFTCA9IDE5O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWcucHJvdG90eXBlLl9zZWdtZW50Q2hhbmdlZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fb3duaW5nUGF0aFNlZ0xpc3QpXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX293bmluZ1BhdGhTZWdMaXN0LnNlZ21lbnRDaGFuZ2VkKHRoaXMpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQ2xvc2VQYXRoID0gZnVuY3Rpb24gKG93bmluZ1BhdGhTZWdMaXN0KSB7XG4gICAgICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWcuY2FsbCh0aGlzLCB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX0NMT1NFUEFUSCwgXCJ6XCIsIG93bmluZ1BhdGhTZWdMaXN0KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHdpbmRvdy5TVkdQYXRoU2VnLnByb3RvdHlwZSk7XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiW29iamVjdCBTVkdQYXRoU2VnQ2xvc2VQYXRoXVwiO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQ2xvc2VQYXRoLnByb3RvdHlwZS5fYXNQYXRoU3RyaW5nID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnBhdGhTZWdUeXBlQXNMZXR0ZXI7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdDbG9zZVBhdGgucHJvdG90eXBlLmNsb25lID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgd2luZG93LlNWR1BhdGhTZWdDbG9zZVBhdGgodW5kZWZpbmVkKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ01vdmV0b0FicyA9IGZ1bmN0aW9uIChvd25pbmdQYXRoU2VnTGlzdCwgeCwgeSkge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnLmNhbGwodGhpcywgd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19NT1ZFVE9fQUJTLCBcIk1cIiwgb3duaW5nUGF0aFNlZ0xpc3QpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3ggPSB4O1xuICAgICAgICAgICAgICAgIHRoaXMuX3kgPSB5O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnTW92ZXRvQWJzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUod2luZG93LlNWR1BhdGhTZWcucHJvdG90eXBlKTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnTW92ZXRvQWJzLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJbb2JqZWN0IFNWR1BhdGhTZWdNb3ZldG9BYnNdXCI7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdNb3ZldG9BYnMucHJvdG90eXBlLl9hc1BhdGhTdHJpbmcgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucGF0aFNlZ1R5cGVBc0xldHRlciArIFwiIFwiICsgdGhpcy5feCArIFwiIFwiICsgdGhpcy5feTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ01vdmV0b0Ficy5wcm90b3R5cGUuY2xvbmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyB3aW5kb3cuU1ZHUGF0aFNlZ01vdmV0b0Ficyh1bmRlZmluZWQsIHRoaXMuX3gsIHRoaXMuX3kpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3cuU1ZHUGF0aFNlZ01vdmV0b0Ficy5wcm90b3R5cGUsIFwieFwiLCB7XG4gICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl94O1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoeCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl94ID0geDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VnbWVudENoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3cuU1ZHUGF0aFNlZ01vdmV0b0Ficy5wcm90b3R5cGUsIFwieVwiLCB7XG4gICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl95O1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoeSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl95ID0geTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VnbWVudENoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnTW92ZXRvUmVsID0gZnVuY3Rpb24gKG93bmluZ1BhdGhTZWdMaXN0LCB4LCB5KSB7XG4gICAgICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWcuY2FsbCh0aGlzLCB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX01PVkVUT19SRUwsIFwibVwiLCBvd25pbmdQYXRoU2VnTGlzdCk7XG4gICAgICAgICAgICAgICAgdGhpcy5feCA9IHg7XG4gICAgICAgICAgICAgICAgdGhpcy5feSA9IHk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdNb3ZldG9SZWwucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZSh3aW5kb3cuU1ZHUGF0aFNlZy5wcm90b3R5cGUpO1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdNb3ZldG9SZWwucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBcIltvYmplY3QgU1ZHUGF0aFNlZ01vdmV0b1JlbF1cIjtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ01vdmV0b1JlbC5wcm90b3R5cGUuX2FzUGF0aFN0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wYXRoU2VnVHlwZUFzTGV0dGVyICsgXCIgXCIgKyB0aGlzLl94ICsgXCIgXCIgKyB0aGlzLl95O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnTW92ZXRvUmVsLnByb3RvdHlwZS5jbG9uZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHdpbmRvdy5TVkdQYXRoU2VnTW92ZXRvUmVsKHVuZGVmaW5lZCwgdGhpcy5feCwgdGhpcy5feSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdy5TVkdQYXRoU2VnTW92ZXRvUmVsLnByb3RvdHlwZSwgXCJ4XCIsIHtcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3g7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICh4KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3ggPSB4O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWdtZW50Q2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdy5TVkdQYXRoU2VnTW92ZXRvUmVsLnByb3RvdHlwZSwgXCJ5XCIsIHtcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3k7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICh5KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3kgPSB5O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWdtZW50Q2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdMaW5ldG9BYnMgPSBmdW5jdGlvbiAob3duaW5nUGF0aFNlZ0xpc3QsIHgsIHkpIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZy5jYWxsKHRoaXMsIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfTElORVRPX0FCUywgXCJMXCIsIG93bmluZ1BhdGhTZWdMaXN0KTtcbiAgICAgICAgICAgICAgICB0aGlzLl94ID0geDtcbiAgICAgICAgICAgICAgICB0aGlzLl95ID0geTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0xpbmV0b0Ficy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHdpbmRvdy5TVkdQYXRoU2VnLnByb3RvdHlwZSk7XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0xpbmV0b0Ficy5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiW29iamVjdCBTVkdQYXRoU2VnTGluZXRvQWJzXVwiO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnTGluZXRvQWJzLnByb3RvdHlwZS5fYXNQYXRoU3RyaW5nID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnBhdGhTZWdUeXBlQXNMZXR0ZXIgKyBcIiBcIiArIHRoaXMuX3ggKyBcIiBcIiArIHRoaXMuX3k7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdMaW5ldG9BYnMucHJvdG90eXBlLmNsb25lID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgd2luZG93LlNWR1BhdGhTZWdMaW5ldG9BYnModW5kZWZpbmVkLCB0aGlzLl94LCB0aGlzLl95KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdMaW5ldG9BYnMucHJvdG90eXBlLCBcInhcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5feDtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feCA9IHg7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlZ21lbnRDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdMaW5ldG9BYnMucHJvdG90eXBlLCBcInlcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5feTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feSA9IHk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlZ21lbnRDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0xpbmV0b1JlbCA9IGZ1bmN0aW9uIChvd25pbmdQYXRoU2VnTGlzdCwgeCwgeSkge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnLmNhbGwodGhpcywgd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19MSU5FVE9fUkVMLCBcImxcIiwgb3duaW5nUGF0aFNlZ0xpc3QpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3ggPSB4O1xuICAgICAgICAgICAgICAgIHRoaXMuX3kgPSB5O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnTGluZXRvUmVsLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUod2luZG93LlNWR1BhdGhTZWcucHJvdG90eXBlKTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnTGluZXRvUmVsLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJbb2JqZWN0IFNWR1BhdGhTZWdMaW5ldG9SZWxdXCI7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdMaW5ldG9SZWwucHJvdG90eXBlLl9hc1BhdGhTdHJpbmcgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucGF0aFNlZ1R5cGVBc0xldHRlciArIFwiIFwiICsgdGhpcy5feCArIFwiIFwiICsgdGhpcy5feTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0xpbmV0b1JlbC5wcm90b3R5cGUuY2xvbmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyB3aW5kb3cuU1ZHUGF0aFNlZ0xpbmV0b1JlbCh1bmRlZmluZWQsIHRoaXMuX3gsIHRoaXMuX3kpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3cuU1ZHUGF0aFNlZ0xpbmV0b1JlbC5wcm90b3R5cGUsIFwieFwiLCB7XG4gICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl94O1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoeCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl94ID0geDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VnbWVudENoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3cuU1ZHUGF0aFNlZ0xpbmV0b1JlbC5wcm90b3R5cGUsIFwieVwiLCB7XG4gICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl95O1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoeSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl95ID0geTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VnbWVudENoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzID0gZnVuY3Rpb24gKG93bmluZ1BhdGhTZWdMaXN0LCB4LCB5LCB4MSwgeTEsIHgyLCB5Mikge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnLmNhbGwodGhpcywgd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19DVVJWRVRPX0NVQklDX0FCUywgXCJDXCIsIG93bmluZ1BhdGhTZWdMaXN0KTtcbiAgICAgICAgICAgICAgICB0aGlzLl94ID0geDtcbiAgICAgICAgICAgICAgICB0aGlzLl95ID0geTtcbiAgICAgICAgICAgICAgICB0aGlzLl94MSA9IHgxO1xuICAgICAgICAgICAgICAgIHRoaXMuX3kxID0geTE7XG4gICAgICAgICAgICAgICAgdGhpcy5feDIgPSB4MjtcbiAgICAgICAgICAgICAgICB0aGlzLl95MiA9IHkyO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUod2luZG93LlNWR1BhdGhTZWcucHJvdG90eXBlKTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJbb2JqZWN0IFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnNdXCI7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMucHJvdG90eXBlLl9hc1BhdGhTdHJpbmcgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICh0aGlzLnBhdGhTZWdUeXBlQXNMZXR0ZXIgK1xuICAgICAgICAgICAgICAgICAgICBcIiBcIiArXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3gxICtcbiAgICAgICAgICAgICAgICAgICAgXCIgXCIgK1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl95MSArXG4gICAgICAgICAgICAgICAgICAgIFwiIFwiICtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feDIgK1xuICAgICAgICAgICAgICAgICAgICBcIiBcIiArXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3kyICtcbiAgICAgICAgICAgICAgICAgICAgXCIgXCIgK1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl94ICtcbiAgICAgICAgICAgICAgICAgICAgXCIgXCIgK1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl95KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficy5wcm90b3R5cGUuY2xvbmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyB3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficyh1bmRlZmluZWQsIHRoaXMuX3gsIHRoaXMuX3ksIHRoaXMuX3gxLCB0aGlzLl95MSwgdGhpcy5feDIsIHRoaXMuX3kyKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMucHJvdG90eXBlLCBcInhcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5feDtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feCA9IHg7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlZ21lbnRDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMucHJvdG90eXBlLCBcInlcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5feTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feSA9IHk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlZ21lbnRDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMucHJvdG90eXBlLCBcIngxXCIsIHtcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3gxO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoeDEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feDEgPSB4MTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VnbWVudENoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficy5wcm90b3R5cGUsIFwieTFcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5feTE7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICh5MSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl95MSA9IHkxO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWdtZW50Q2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzLnByb3RvdHlwZSwgXCJ4MlwiLCB7XG4gICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl94MjtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHgyKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3gyID0geDI7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlZ21lbnRDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMucHJvdG90eXBlLCBcInkyXCIsIHtcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3kyO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoeTIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feTIgPSB5MjtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VnbWVudENoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsID0gZnVuY3Rpb24gKG93bmluZ1BhdGhTZWdMaXN0LCB4LCB5LCB4MSwgeTEsIHgyLCB5Mikge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnLmNhbGwodGhpcywgd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19DVVJWRVRPX0NVQklDX1JFTCwgXCJjXCIsIG93bmluZ1BhdGhTZWdMaXN0KTtcbiAgICAgICAgICAgICAgICB0aGlzLl94ID0geDtcbiAgICAgICAgICAgICAgICB0aGlzLl95ID0geTtcbiAgICAgICAgICAgICAgICB0aGlzLl94MSA9IHgxO1xuICAgICAgICAgICAgICAgIHRoaXMuX3kxID0geTE7XG4gICAgICAgICAgICAgICAgdGhpcy5feDIgPSB4MjtcbiAgICAgICAgICAgICAgICB0aGlzLl95MiA9IHkyO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUod2luZG93LlNWR1BhdGhTZWcucHJvdG90eXBlKTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJbb2JqZWN0IFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWxdXCI7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwucHJvdG90eXBlLl9hc1BhdGhTdHJpbmcgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICh0aGlzLnBhdGhTZWdUeXBlQXNMZXR0ZXIgK1xuICAgICAgICAgICAgICAgICAgICBcIiBcIiArXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3gxICtcbiAgICAgICAgICAgICAgICAgICAgXCIgXCIgK1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl95MSArXG4gICAgICAgICAgICAgICAgICAgIFwiIFwiICtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feDIgK1xuICAgICAgICAgICAgICAgICAgICBcIiBcIiArXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3kyICtcbiAgICAgICAgICAgICAgICAgICAgXCIgXCIgK1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl94ICtcbiAgICAgICAgICAgICAgICAgICAgXCIgXCIgK1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl95KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbC5wcm90b3R5cGUuY2xvbmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyB3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbCh1bmRlZmluZWQsIHRoaXMuX3gsIHRoaXMuX3ksIHRoaXMuX3gxLCB0aGlzLl95MSwgdGhpcy5feDIsIHRoaXMuX3kyKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwucHJvdG90eXBlLCBcInhcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5feDtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feCA9IHg7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlZ21lbnRDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwucHJvdG90eXBlLCBcInlcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5feTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feSA9IHk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlZ21lbnRDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwucHJvdG90eXBlLCBcIngxXCIsIHtcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3gxO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoeDEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feDEgPSB4MTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VnbWVudENoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbC5wcm90b3R5cGUsIFwieTFcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5feTE7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICh5MSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl95MSA9IHkxO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWdtZW50Q2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsLnByb3RvdHlwZSwgXCJ4MlwiLCB7XG4gICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl94MjtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHgyKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3gyID0geDI7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlZ21lbnRDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwucHJvdG90eXBlLCBcInkyXCIsIHtcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3kyO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoeTIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feTIgPSB5MjtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VnbWVudENoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0FicyA9IGZ1bmN0aW9uIChvd25pbmdQYXRoU2VnTGlzdCwgeCwgeSwgeDEsIHkxKSB7XG4gICAgICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWcuY2FsbCh0aGlzLCB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX0FCUywgXCJRXCIsIG93bmluZ1BhdGhTZWdMaXN0KTtcbiAgICAgICAgICAgICAgICB0aGlzLl94ID0geDtcbiAgICAgICAgICAgICAgICB0aGlzLl95ID0geTtcbiAgICAgICAgICAgICAgICB0aGlzLl94MSA9IHgxO1xuICAgICAgICAgICAgICAgIHRoaXMuX3kxID0geTE7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUod2luZG93LlNWR1BhdGhTZWcucHJvdG90eXBlKTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficy5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiW29iamVjdCBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Fic11cIjtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnMucHJvdG90eXBlLl9hc1BhdGhTdHJpbmcgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucGF0aFNlZ1R5cGVBc0xldHRlciArIFwiIFwiICsgdGhpcy5feDEgKyBcIiBcIiArIHRoaXMuX3kxICsgXCIgXCIgKyB0aGlzLl94ICsgXCIgXCIgKyB0aGlzLl95O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficy5wcm90b3R5cGUuY2xvbmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyB3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnModW5kZWZpbmVkLCB0aGlzLl94LCB0aGlzLl95LCB0aGlzLl94MSwgdGhpcy5feTEpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnMucHJvdG90eXBlLCBcInhcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5feDtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feCA9IHg7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlZ21lbnRDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzLnByb3RvdHlwZSwgXCJ5XCIsIHtcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3k7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICh5KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3kgPSB5O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWdtZW50Q2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficy5wcm90b3R5cGUsIFwieDFcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5feDE7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICh4MSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl94MSA9IHgxO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWdtZW50Q2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficy5wcm90b3R5cGUsIFwieTFcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5feTE7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICh5MSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl95MSA9IHkxO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWdtZW50Q2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsID0gZnVuY3Rpb24gKG93bmluZ1BhdGhTZWdMaXN0LCB4LCB5LCB4MSwgeTEpIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZy5jYWxsKHRoaXMsIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfQ1VSVkVUT19RVUFEUkFUSUNfUkVMLCBcInFcIiwgb3duaW5nUGF0aFNlZ0xpc3QpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3ggPSB4O1xuICAgICAgICAgICAgICAgIHRoaXMuX3kgPSB5O1xuICAgICAgICAgICAgICAgIHRoaXMuX3gxID0geDE7XG4gICAgICAgICAgICAgICAgdGhpcy5feTEgPSB5MTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZSh3aW5kb3cuU1ZHUGF0aFNlZy5wcm90b3R5cGUpO1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJbb2JqZWN0IFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsXVwiO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbC5wcm90b3R5cGUuX2FzUGF0aFN0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wYXRoU2VnVHlwZUFzTGV0dGVyICsgXCIgXCIgKyB0aGlzLl94MSArIFwiIFwiICsgdGhpcy5feTEgKyBcIiBcIiArIHRoaXMuX3ggKyBcIiBcIiArIHRoaXMuX3k7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsLnByb3RvdHlwZS5jbG9uZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbCh1bmRlZmluZWQsIHRoaXMuX3gsIHRoaXMuX3ksIHRoaXMuX3gxLCB0aGlzLl95MSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbC5wcm90b3R5cGUsIFwieFwiLCB7XG4gICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl94O1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoeCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl94ID0geDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VnbWVudENoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwucHJvdG90eXBlLCBcInlcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5feTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feSA9IHk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlZ21lbnRDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsLnByb3RvdHlwZSwgXCJ4MVwiLCB7XG4gICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl94MTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHgxKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3gxID0geDE7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlZ21lbnRDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsLnByb3RvdHlwZSwgXCJ5MVwiLCB7XG4gICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl95MTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHkxKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3kxID0geTE7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlZ21lbnRDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0FyY0FicyA9IGZ1bmN0aW9uIChvd25pbmdQYXRoU2VnTGlzdCwgeCwgeSwgcjEsIHIyLCBhbmdsZSwgbGFyZ2VBcmNGbGFnLCBzd2VlcEZsYWcpIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZy5jYWxsKHRoaXMsIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfQVJDX0FCUywgXCJBXCIsIG93bmluZ1BhdGhTZWdMaXN0KTtcbiAgICAgICAgICAgICAgICB0aGlzLl94ID0geDtcbiAgICAgICAgICAgICAgICB0aGlzLl95ID0geTtcbiAgICAgICAgICAgICAgICB0aGlzLl9yMSA9IHIxO1xuICAgICAgICAgICAgICAgIHRoaXMuX3IyID0gcjI7XG4gICAgICAgICAgICAgICAgdGhpcy5fYW5nbGUgPSBhbmdsZTtcbiAgICAgICAgICAgICAgICB0aGlzLl9sYXJnZUFyY0ZsYWcgPSBsYXJnZUFyY0ZsYWc7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3dlZXBGbGFnID0gc3dlZXBGbGFnO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQXJjQWJzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUod2luZG93LlNWR1BhdGhTZWcucHJvdG90eXBlKTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQXJjQWJzLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJbb2JqZWN0IFNWR1BhdGhTZWdBcmNBYnNdXCI7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdBcmNBYnMucHJvdG90eXBlLl9hc1BhdGhTdHJpbmcgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICh0aGlzLnBhdGhTZWdUeXBlQXNMZXR0ZXIgK1xuICAgICAgICAgICAgICAgICAgICBcIiBcIiArXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3IxICtcbiAgICAgICAgICAgICAgICAgICAgXCIgXCIgK1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9yMiArXG4gICAgICAgICAgICAgICAgICAgIFwiIFwiICtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fYW5nbGUgK1xuICAgICAgICAgICAgICAgICAgICBcIiBcIiArXG4gICAgICAgICAgICAgICAgICAgICh0aGlzLl9sYXJnZUFyY0ZsYWcgPyBcIjFcIiA6IFwiMFwiKSArXG4gICAgICAgICAgICAgICAgICAgIFwiIFwiICtcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMuX3N3ZWVwRmxhZyA/IFwiMVwiIDogXCIwXCIpICtcbiAgICAgICAgICAgICAgICAgICAgXCIgXCIgK1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl94ICtcbiAgICAgICAgICAgICAgICAgICAgXCIgXCIgK1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl95KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0FyY0Ficy5wcm90b3R5cGUuY2xvbmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyB3aW5kb3cuU1ZHUGF0aFNlZ0FyY0Ficyh1bmRlZmluZWQsIHRoaXMuX3gsIHRoaXMuX3ksIHRoaXMuX3IxLCB0aGlzLl9yMiwgdGhpcy5fYW5nbGUsIHRoaXMuX2xhcmdlQXJjRmxhZywgdGhpcy5fc3dlZXBGbGFnKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdBcmNBYnMucHJvdG90eXBlLCBcInhcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5feDtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feCA9IHg7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlZ21lbnRDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdBcmNBYnMucHJvdG90eXBlLCBcInlcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5feTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feSA9IHk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlZ21lbnRDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdBcmNBYnMucHJvdG90eXBlLCBcInIxXCIsIHtcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3IxO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAocjEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcjEgPSByMTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VnbWVudENoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3cuU1ZHUGF0aFNlZ0FyY0Ficy5wcm90b3R5cGUsIFwicjJcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fcjI7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uIChyMikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9yMiA9IHIyO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWdtZW50Q2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdy5TVkdQYXRoU2VnQXJjQWJzLnByb3RvdHlwZSwgXCJhbmdsZVwiLCB7XG4gICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9hbmdsZTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKGFuZ2xlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2FuZ2xlID0gYW5nbGU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlZ21lbnRDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdBcmNBYnMucHJvdG90eXBlLCBcImxhcmdlQXJjRmxhZ1wiLCB7XG4gICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9sYXJnZUFyY0ZsYWc7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uIChsYXJnZUFyY0ZsYWcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbGFyZ2VBcmNGbGFnID0gbGFyZ2VBcmNGbGFnO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWdtZW50Q2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdy5TVkdQYXRoU2VnQXJjQWJzLnByb3RvdHlwZSwgXCJzd2VlcEZsYWdcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fc3dlZXBGbGFnO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoc3dlZXBGbGFnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3N3ZWVwRmxhZyA9IHN3ZWVwRmxhZztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VnbWVudENoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQXJjUmVsID0gZnVuY3Rpb24gKG93bmluZ1BhdGhTZWdMaXN0LCB4LCB5LCByMSwgcjIsIGFuZ2xlLCBsYXJnZUFyY0ZsYWcsIHN3ZWVwRmxhZykge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnLmNhbGwodGhpcywgd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19BUkNfUkVMLCBcImFcIiwgb3duaW5nUGF0aFNlZ0xpc3QpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3ggPSB4O1xuICAgICAgICAgICAgICAgIHRoaXMuX3kgPSB5O1xuICAgICAgICAgICAgICAgIHRoaXMuX3IxID0gcjE7XG4gICAgICAgICAgICAgICAgdGhpcy5fcjIgPSByMjtcbiAgICAgICAgICAgICAgICB0aGlzLl9hbmdsZSA9IGFuZ2xlO1xuICAgICAgICAgICAgICAgIHRoaXMuX2xhcmdlQXJjRmxhZyA9IGxhcmdlQXJjRmxhZztcbiAgICAgICAgICAgICAgICB0aGlzLl9zd2VlcEZsYWcgPSBzd2VlcEZsYWc7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdBcmNSZWwucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZSh3aW5kb3cuU1ZHUGF0aFNlZy5wcm90b3R5cGUpO1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdBcmNSZWwucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBcIltvYmplY3QgU1ZHUGF0aFNlZ0FyY1JlbF1cIjtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0FyY1JlbC5wcm90b3R5cGUuX2FzUGF0aFN0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKHRoaXMucGF0aFNlZ1R5cGVBc0xldHRlciArXG4gICAgICAgICAgICAgICAgICAgIFwiIFwiICtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcjEgK1xuICAgICAgICAgICAgICAgICAgICBcIiBcIiArXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3IyICtcbiAgICAgICAgICAgICAgICAgICAgXCIgXCIgK1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9hbmdsZSArXG4gICAgICAgICAgICAgICAgICAgIFwiIFwiICtcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMuX2xhcmdlQXJjRmxhZyA/IFwiMVwiIDogXCIwXCIpICtcbiAgICAgICAgICAgICAgICAgICAgXCIgXCIgK1xuICAgICAgICAgICAgICAgICAgICAodGhpcy5fc3dlZXBGbGFnID8gXCIxXCIgOiBcIjBcIikgK1xuICAgICAgICAgICAgICAgICAgICBcIiBcIiArXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3ggK1xuICAgICAgICAgICAgICAgICAgICBcIiBcIiArXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3kpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQXJjUmVsLnByb3RvdHlwZS5jbG9uZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHdpbmRvdy5TVkdQYXRoU2VnQXJjUmVsKHVuZGVmaW5lZCwgdGhpcy5feCwgdGhpcy5feSwgdGhpcy5fcjEsIHRoaXMuX3IyLCB0aGlzLl9hbmdsZSwgdGhpcy5fbGFyZ2VBcmNGbGFnLCB0aGlzLl9zd2VlcEZsYWcpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3cuU1ZHUGF0aFNlZ0FyY1JlbC5wcm90b3R5cGUsIFwieFwiLCB7XG4gICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl94O1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoeCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl94ID0geDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VnbWVudENoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3cuU1ZHUGF0aFNlZ0FyY1JlbC5wcm90b3R5cGUsIFwieVwiLCB7XG4gICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl95O1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoeSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl95ID0geTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VnbWVudENoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3cuU1ZHUGF0aFNlZ0FyY1JlbC5wcm90b3R5cGUsIFwicjFcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fcjE7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uIChyMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9yMSA9IHIxO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWdtZW50Q2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdy5TVkdQYXRoU2VnQXJjUmVsLnByb3RvdHlwZSwgXCJyMlwiLCB7XG4gICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9yMjtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHIyKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3IyID0gcjI7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlZ21lbnRDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdBcmNSZWwucHJvdG90eXBlLCBcImFuZ2xlXCIsIHtcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2FuZ2xlO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoYW5nbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fYW5nbGUgPSBhbmdsZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VnbWVudENoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3cuU1ZHUGF0aFNlZ0FyY1JlbC5wcm90b3R5cGUsIFwibGFyZ2VBcmNGbGFnXCIsIHtcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2xhcmdlQXJjRmxhZztcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKGxhcmdlQXJjRmxhZykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9sYXJnZUFyY0ZsYWcgPSBsYXJnZUFyY0ZsYWc7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlZ21lbnRDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdBcmNSZWwucHJvdG90eXBlLCBcInN3ZWVwRmxhZ1wiLCB7XG4gICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9zd2VlcEZsYWc7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uIChzd2VlcEZsYWcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3dlZXBGbGFnID0gc3dlZXBGbGFnO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWdtZW50Q2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzID0gZnVuY3Rpb24gKG93bmluZ1BhdGhTZWdMaXN0LCB4KSB7XG4gICAgICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWcuY2FsbCh0aGlzLCB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX0xJTkVUT19IT1JJWk9OVEFMX0FCUywgXCJIXCIsIG93bmluZ1BhdGhTZWdMaXN0KTtcbiAgICAgICAgICAgICAgICB0aGlzLl94ID0geDtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxBYnMucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZSh3aW5kb3cuU1ZHUGF0aFNlZy5wcm90b3R5cGUpO1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJbb2JqZWN0IFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzXVwiO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicy5wcm90b3R5cGUuX2FzUGF0aFN0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wYXRoU2VnVHlwZUFzTGV0dGVyICsgXCIgXCIgKyB0aGlzLl94O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicy5wcm90b3R5cGUuY2xvbmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyB3aW5kb3cuU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxBYnModW5kZWZpbmVkLCB0aGlzLl94KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzLnByb3RvdHlwZSwgXCJ4XCIsIHtcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3g7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICh4KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3ggPSB4O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWdtZW50Q2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsUmVsID0gZnVuY3Rpb24gKG93bmluZ1BhdGhTZWdMaXN0LCB4KSB7XG4gICAgICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWcuY2FsbCh0aGlzLCB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX0xJTkVUT19IT1JJWk9OVEFMX1JFTCwgXCJoXCIsIG93bmluZ1BhdGhTZWdMaXN0KTtcbiAgICAgICAgICAgICAgICB0aGlzLl94ID0geDtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZSh3aW5kb3cuU1ZHUGF0aFNlZy5wcm90b3R5cGUpO1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsUmVsLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJbb2JqZWN0IFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsUmVsXVwiO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbC5wcm90b3R5cGUuX2FzUGF0aFN0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wYXRoU2VnVHlwZUFzTGV0dGVyICsgXCIgXCIgKyB0aGlzLl94O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbC5wcm90b3R5cGUuY2xvbmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyB3aW5kb3cuU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwodW5kZWZpbmVkLCB0aGlzLl94KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsUmVsLnByb3RvdHlwZSwgXCJ4XCIsIHtcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3g7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICh4KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3ggPSB4O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWdtZW50Q2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFicyA9IGZ1bmN0aW9uIChvd25pbmdQYXRoU2VnTGlzdCwgeSkge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnLmNhbGwodGhpcywgd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19MSU5FVE9fVkVSVElDQUxfQUJTLCBcIlZcIiwgb3duaW5nUGF0aFNlZ0xpc3QpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3kgPSB5O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZSh3aW5kb3cuU1ZHUGF0aFNlZy5wcm90b3R5cGUpO1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFicy5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiW29iamVjdCBTVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnNdXCI7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFicy5wcm90b3R5cGUuX2FzUGF0aFN0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wYXRoU2VnVHlwZUFzTGV0dGVyICsgXCIgXCIgKyB0aGlzLl95O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMucHJvdG90eXBlLmNsb25lID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgd2luZG93LlNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFicyh1bmRlZmluZWQsIHRoaXMuX3kpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3cuU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzLnByb3RvdHlwZSwgXCJ5XCIsIHtcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3k7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICh5KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3kgPSB5O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWdtZW50Q2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbCA9IGZ1bmN0aW9uIChvd25pbmdQYXRoU2VnTGlzdCwgeSkge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnLmNhbGwodGhpcywgd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19MSU5FVE9fVkVSVElDQUxfUkVMLCBcInZcIiwgb3duaW5nUGF0aFNlZ0xpc3QpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3kgPSB5O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWwucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZSh3aW5kb3cuU1ZHUGF0aFNlZy5wcm90b3R5cGUpO1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbC5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiW29iamVjdCBTVkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWxdXCI7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbC5wcm90b3R5cGUuX2FzUGF0aFN0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wYXRoU2VnVHlwZUFzTGV0dGVyICsgXCIgXCIgKyB0aGlzLl95O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWwucHJvdG90eXBlLmNsb25lID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgd2luZG93LlNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbCh1bmRlZmluZWQsIHRoaXMuX3kpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3cuU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVsLnByb3RvdHlwZSwgXCJ5XCIsIHtcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3k7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICh5KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3kgPSB5O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWdtZW50Q2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMgPSBmdW5jdGlvbiAob3duaW5nUGF0aFNlZ0xpc3QsIHgsIHksIHgyLCB5Mikge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnLmNhbGwodGhpcywgd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19DVVJWRVRPX0NVQklDX1NNT09USF9BQlMsIFwiU1wiLCBvd25pbmdQYXRoU2VnTGlzdCk7XG4gICAgICAgICAgICAgICAgdGhpcy5feCA9IHg7XG4gICAgICAgICAgICAgICAgdGhpcy5feSA9IHk7XG4gICAgICAgICAgICAgICAgdGhpcy5feDIgPSB4MjtcbiAgICAgICAgICAgICAgICB0aGlzLl95MiA9IHkyO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoQWJzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUod2luZG93LlNWR1BhdGhTZWcucHJvdG90eXBlKTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoQWJzLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJbb2JqZWN0IFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnNdXCI7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMucHJvdG90eXBlLl9hc1BhdGhTdHJpbmcgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucGF0aFNlZ1R5cGVBc0xldHRlciArIFwiIFwiICsgdGhpcy5feDIgKyBcIiBcIiArIHRoaXMuX3kyICsgXCIgXCIgKyB0aGlzLl94ICsgXCIgXCIgKyB0aGlzLl95O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoQWJzLnByb3RvdHlwZS5jbG9uZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoQWJzKHVuZGVmaW5lZCwgdGhpcy5feCwgdGhpcy5feSwgdGhpcy5feDIsIHRoaXMuX3kyKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMucHJvdG90eXBlLCBcInhcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5feDtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feCA9IHg7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlZ21lbnRDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMucHJvdG90eXBlLCBcInlcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5feTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feSA9IHk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlZ21lbnRDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMucHJvdG90eXBlLCBcIngyXCIsIHtcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3gyO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoeDIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feDIgPSB4MjtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VnbWVudENoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicy5wcm90b3R5cGUsIFwieTJcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5feTI7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICh5Mikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl95MiA9IHkyO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWdtZW50Q2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWwgPSBmdW5jdGlvbiAob3duaW5nUGF0aFNlZ0xpc3QsIHgsIHksIHgyLCB5Mikge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnLmNhbGwodGhpcywgd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19DVVJWRVRPX0NVQklDX1NNT09USF9SRUwsIFwic1wiLCBvd25pbmdQYXRoU2VnTGlzdCk7XG4gICAgICAgICAgICAgICAgdGhpcy5feCA9IHg7XG4gICAgICAgICAgICAgICAgdGhpcy5feSA9IHk7XG4gICAgICAgICAgICAgICAgdGhpcy5feDIgPSB4MjtcbiAgICAgICAgICAgICAgICB0aGlzLl95MiA9IHkyO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUod2luZG93LlNWR1BhdGhTZWcucHJvdG90eXBlKTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJbb2JqZWN0IFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWxdXCI7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWwucHJvdG90eXBlLl9hc1BhdGhTdHJpbmcgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucGF0aFNlZ1R5cGVBc0xldHRlciArIFwiIFwiICsgdGhpcy5feDIgKyBcIiBcIiArIHRoaXMuX3kyICsgXCIgXCIgKyB0aGlzLl94ICsgXCIgXCIgKyB0aGlzLl95O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsLnByb3RvdHlwZS5jbG9uZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsKHVuZGVmaW5lZCwgdGhpcy5feCwgdGhpcy5feSwgdGhpcy5feDIsIHRoaXMuX3kyKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWwucHJvdG90eXBlLCBcInhcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5feDtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feCA9IHg7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlZ21lbnRDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWwucHJvdG90eXBlLCBcInlcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5feTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feSA9IHk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlZ21lbnRDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWwucHJvdG90eXBlLCBcIngyXCIsIHtcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3gyO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoeDIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feDIgPSB4MjtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VnbWVudENoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbC5wcm90b3R5cGUsIFwieTJcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5feTI7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICh5Mikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl95MiA9IHkyO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWdtZW50Q2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzID0gZnVuY3Rpb24gKG93bmluZ1BhdGhTZWdMaXN0LCB4LCB5KSB7XG4gICAgICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWcuY2FsbCh0aGlzLCB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX1NNT09USF9BQlMsIFwiVFwiLCBvd25pbmdQYXRoU2VnTGlzdCk7XG4gICAgICAgICAgICAgICAgdGhpcy5feCA9IHg7XG4gICAgICAgICAgICAgICAgdGhpcy5feSA9IHk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUod2luZG93LlNWR1BhdGhTZWcucHJvdG90eXBlKTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFicy5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiW29iamVjdCBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFic11cIjtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnMucHJvdG90eXBlLl9hc1BhdGhTdHJpbmcgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucGF0aFNlZ1R5cGVBc0xldHRlciArIFwiIFwiICsgdGhpcy5feCArIFwiIFwiICsgdGhpcy5feTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnMucHJvdG90eXBlLmNsb25lID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgd2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzKHVuZGVmaW5lZCwgdGhpcy5feCwgdGhpcy5feSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFicy5wcm90b3R5cGUsIFwieFwiLCB7XG4gICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl94O1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoeCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl94ID0geDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VnbWVudENoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnMucHJvdG90eXBlLCBcInlcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5feTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feSA9IHk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlZ21lbnRDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhSZWwgPSBmdW5jdGlvbiAob3duaW5nUGF0aFNlZ0xpc3QsIHgsIHkpIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZy5jYWxsKHRoaXMsIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfQ1VSVkVUT19RVUFEUkFUSUNfU01PT1RIX1JFTCwgXCJ0XCIsIG93bmluZ1BhdGhTZWdMaXN0KTtcbiAgICAgICAgICAgICAgICB0aGlzLl94ID0geDtcbiAgICAgICAgICAgICAgICB0aGlzLl95ID0geTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhSZWwucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZSh3aW5kb3cuU1ZHUGF0aFNlZy5wcm90b3R5cGUpO1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJbb2JqZWN0IFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsXVwiO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbC5wcm90b3R5cGUuX2FzUGF0aFN0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wYXRoU2VnVHlwZUFzTGV0dGVyICsgXCIgXCIgKyB0aGlzLl94ICsgXCIgXCIgKyB0aGlzLl95O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbC5wcm90b3R5cGUuY2xvbmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyB3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhSZWwodW5kZWZpbmVkLCB0aGlzLl94LCB0aGlzLl95KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsLnByb3RvdHlwZSwgXCJ4XCIsIHtcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3g7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICh4KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3ggPSB4O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWdtZW50Q2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbC5wcm90b3R5cGUsIFwieVwiLCB7XG4gICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl95O1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoeSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl95ID0geTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VnbWVudENoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoRWxlbWVudC5wcm90b3R5cGUuY3JlYXRlU1ZHUGF0aFNlZ0Nsb3NlUGF0aCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHdpbmRvdy5TVkdQYXRoU2VnQ2xvc2VQYXRoKHVuZGVmaW5lZCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhFbGVtZW50LnByb3RvdHlwZS5jcmVhdGVTVkdQYXRoU2VnTW92ZXRvQWJzID0gZnVuY3Rpb24gKHgsIHkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHdpbmRvdy5TVkdQYXRoU2VnTW92ZXRvQWJzKHVuZGVmaW5lZCwgeCwgeSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhFbGVtZW50LnByb3RvdHlwZS5jcmVhdGVTVkdQYXRoU2VnTW92ZXRvUmVsID0gZnVuY3Rpb24gKHgsIHkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHdpbmRvdy5TVkdQYXRoU2VnTW92ZXRvUmVsKHVuZGVmaW5lZCwgeCwgeSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhFbGVtZW50LnByb3RvdHlwZS5jcmVhdGVTVkdQYXRoU2VnTGluZXRvQWJzID0gZnVuY3Rpb24gKHgsIHkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHdpbmRvdy5TVkdQYXRoU2VnTGluZXRvQWJzKHVuZGVmaW5lZCwgeCwgeSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhFbGVtZW50LnByb3RvdHlwZS5jcmVhdGVTVkdQYXRoU2VnTGluZXRvUmVsID0gZnVuY3Rpb24gKHgsIHkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHdpbmRvdy5TVkdQYXRoU2VnTGluZXRvUmVsKHVuZGVmaW5lZCwgeCwgeSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhFbGVtZW50LnByb3RvdHlwZS5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzID0gZnVuY3Rpb24gKHgsIHksIHgxLCB5MSwgeDIsIHkyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyB3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficyh1bmRlZmluZWQsIHgsIHksIHgxLCB5MSwgeDIsIHkyKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aEVsZW1lbnQucHJvdG90eXBlLmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwgPSBmdW5jdGlvbiAoeCwgeSwgeDEsIHkxLCB4MiwgeTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsKHVuZGVmaW5lZCwgeCwgeSwgeDEsIHkxLCB4MiwgeTIpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoRWxlbWVudC5wcm90b3R5cGUuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnMgPSBmdW5jdGlvbiAoeCwgeSwgeDEsIHkxKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyB3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnModW5kZWZpbmVkLCB4LCB5LCB4MSwgeTEpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoRWxlbWVudC5wcm90b3R5cGUuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwgPSBmdW5jdGlvbiAoeCwgeSwgeDEsIHkxKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyB3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwodW5kZWZpbmVkLCB4LCB5LCB4MSwgeTEpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoRWxlbWVudC5wcm90b3R5cGUuY3JlYXRlU1ZHUGF0aFNlZ0FyY0FicyA9IGZ1bmN0aW9uICh4LCB5LCByMSwgcjIsIGFuZ2xlLCBsYXJnZUFyY0ZsYWcsIHN3ZWVwRmxhZykge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgd2luZG93LlNWR1BhdGhTZWdBcmNBYnModW5kZWZpbmVkLCB4LCB5LCByMSwgcjIsIGFuZ2xlLCBsYXJnZUFyY0ZsYWcsIHN3ZWVwRmxhZyk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhFbGVtZW50LnByb3RvdHlwZS5jcmVhdGVTVkdQYXRoU2VnQXJjUmVsID0gZnVuY3Rpb24gKHgsIHksIHIxLCByMiwgYW5nbGUsIGxhcmdlQXJjRmxhZywgc3dlZXBGbGFnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyB3aW5kb3cuU1ZHUGF0aFNlZ0FyY1JlbCh1bmRlZmluZWQsIHgsIHksIHIxLCByMiwgYW5nbGUsIGxhcmdlQXJjRmxhZywgc3dlZXBGbGFnKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aEVsZW1lbnQucHJvdG90eXBlLmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzID0gZnVuY3Rpb24gKHgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHdpbmRvdy5TVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicyh1bmRlZmluZWQsIHgpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoRWxlbWVudC5wcm90b3R5cGUuY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwgPSBmdW5jdGlvbiAoeCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgd2luZG93LlNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsUmVsKHVuZGVmaW5lZCwgeCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhFbGVtZW50LnByb3RvdHlwZS5jcmVhdGVTVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMgPSBmdW5jdGlvbiAoeSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgd2luZG93LlNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFicyh1bmRlZmluZWQsIHkpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoRWxlbWVudC5wcm90b3R5cGUuY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVsID0gZnVuY3Rpb24gKHkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHdpbmRvdy5TVkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWwodW5kZWZpbmVkLCB5KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aEVsZW1lbnQucHJvdG90eXBlLmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMgPSBmdW5jdGlvbiAoeCwgeSwgeDIsIHkyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyB3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicyh1bmRlZmluZWQsIHgsIHksIHgyLCB5Mik7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhFbGVtZW50LnByb3RvdHlwZS5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsID0gZnVuY3Rpb24gKHgsIHksIHgyLCB5Mikge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgd2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWwodW5kZWZpbmVkLCB4LCB5LCB4MiwgeTIpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoRWxlbWVudC5wcm90b3R5cGUuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnMgPSBmdW5jdGlvbiAoeCwgeSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgd2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzKHVuZGVmaW5lZCwgeCwgeSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhFbGVtZW50LnByb3RvdHlwZS5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbCA9IGZ1bmN0aW9uICh4LCB5KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyB3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhSZWwodW5kZWZpbmVkLCB4LCB5KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAoIShcImdldFBhdGhTZWdBdExlbmd0aFwiIGluIHdpbmRvdy5TVkdQYXRoRWxlbWVudC5wcm90b3R5cGUpKSB7XG4gICAgICAgICAgICAgICAgd2luZG93LlNWR1BhdGhFbGVtZW50LnByb3RvdHlwZS5nZXRQYXRoU2VnQXRMZW5ndGggPSBmdW5jdGlvbiAoZGlzdGFuY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRpc3RhbmNlID09PSB1bmRlZmluZWQgfHwgIWlzRmluaXRlKGRpc3RhbmNlKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IFwiSW52YWxpZCBhcmd1bWVudHMuXCI7XG4gICAgICAgICAgICAgICAgICAgIHZhciBtZWFzdXJlbWVudEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLCBcInBhdGhcIik7XG4gICAgICAgICAgICAgICAgICAgIG1lYXN1cmVtZW50RWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJkXCIsIHRoaXMuZ2V0QXR0cmlidXRlKFwiZFwiKSk7XG4gICAgICAgICAgICAgICAgICAgIHZhciBsYXN0UGF0aFNlZ21lbnQgPSBtZWFzdXJlbWVudEVsZW1lbnQucGF0aFNlZ0xpc3QubnVtYmVyT2ZJdGVtcyAtIDE7XG4gICAgICAgICAgICAgICAgICAgIGlmIChsYXN0UGF0aFNlZ21lbnQgPD0gMClcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtZWFzdXJlbWVudEVsZW1lbnQucGF0aFNlZ0xpc3QucmVtb3ZlSXRlbShsYXN0UGF0aFNlZ21lbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRpc3RhbmNlID4gbWVhc3VyZW1lbnRFbGVtZW50LmdldFRvdGFsTGVuZ3RoKCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXN0UGF0aFNlZ21lbnQtLTtcbiAgICAgICAgICAgICAgICAgICAgfSB3aGlsZSAobGFzdFBhdGhTZWdtZW50ID4gMCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBsYXN0UGF0aFNlZ21lbnQ7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIShcIlNWR1BhdGhTZWdMaXN0XCIgaW4gd2luZG93KSB8fCAhKFwiYXBwZW5kSXRlbVwiIGluIHdpbmRvdy5TVkdQYXRoU2VnTGlzdC5wcm90b3R5cGUpKSB7XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0xpc3QgPSBmdW5jdGlvbiAocGF0aEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9wYXRoRWxlbWVudCA9IHBhdGhFbGVtZW50O1xuICAgICAgICAgICAgICAgIHRoaXMuX2xpc3QgPSB0aGlzLl9wYXJzZVBhdGgodGhpcy5fcGF0aEVsZW1lbnQuZ2V0QXR0cmlidXRlKFwiZFwiKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fbXV0YXRpb25PYnNlcnZlckNvbmZpZyA9IHsgYXR0cmlidXRlczogdHJ1ZSwgYXR0cmlidXRlRmlsdGVyOiBbXCJkXCJdIH07XG4gICAgICAgICAgICAgICAgdGhpcy5fcGF0aEVsZW1lbnRNdXRhdGlvbk9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIodGhpcy5fdXBkYXRlTGlzdEZyb21QYXRoTXV0YXRpb25zLmJpbmQodGhpcykpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3BhdGhFbGVtZW50TXV0YXRpb25PYnNlcnZlci5vYnNlcnZlKHRoaXMuX3BhdGhFbGVtZW50LCB0aGlzLl9tdXRhdGlvbk9ic2VydmVyQ29uZmlnKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0xpc3QucHJvdG90eXBlLmNsYXNzbmFtZSA9IFwiU1ZHUGF0aFNlZ0xpc3RcIjtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3cuU1ZHUGF0aFNlZ0xpc3QucHJvdG90eXBlLCBcIm51bWJlck9mSXRlbXNcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jaGVja1BhdGhTeW5jaHJvbml6ZWRUb0xpc3QoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2xpc3QubGVuZ3RoO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdy5TVkdQYXRoU2VnTGlzdC5wcm90b3R5cGUsIFwibGVuZ3RoXCIsIHtcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2hlY2tQYXRoU3luY2hyb25pemVkVG9MaXN0KCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9saXN0Lmxlbmd0aDtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3cuU1ZHUGF0aEVsZW1lbnQucHJvdG90eXBlLCBcInBhdGhTZWdMaXN0XCIsIHtcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9wYXRoU2VnTGlzdClcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3BhdGhTZWdMaXN0ID0gbmV3IHdpbmRvdy5TVkdQYXRoU2VnTGlzdCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3BhdGhTZWdMaXN0O1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdy5TVkdQYXRoRWxlbWVudC5wcm90b3R5cGUsIFwibm9ybWFsaXplZFBhdGhTZWdMaXN0XCIsIHtcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucGF0aFNlZ0xpc3Q7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhFbGVtZW50LnByb3RvdHlwZSwgXCJhbmltYXRlZFBhdGhTZWdMaXN0XCIsIHtcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucGF0aFNlZ0xpc3Q7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhFbGVtZW50LnByb3RvdHlwZSwgXCJhbmltYXRlZE5vcm1hbGl6ZWRQYXRoU2VnTGlzdFwiLCB7XG4gICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnBhdGhTZWdMaXN0O1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdMaXN0LnByb3RvdHlwZS5fY2hlY2tQYXRoU3luY2hyb25pemVkVG9MaXN0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUxpc3RGcm9tUGF0aE11dGF0aW9ucyh0aGlzLl9wYXRoRWxlbWVudE11dGF0aW9uT2JzZXJ2ZXIudGFrZVJlY29yZHMoKSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdMaXN0LnByb3RvdHlwZS5fdXBkYXRlTGlzdEZyb21QYXRoTXV0YXRpb25zID0gZnVuY3Rpb24gKG11dGF0aW9uUmVjb3Jkcykge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5fcGF0aEVsZW1lbnQpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB2YXIgaGFzUGF0aE11dGF0aW9ucyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIG11dGF0aW9uUmVjb3Jkcy5mb3JFYWNoKGZ1bmN0aW9uIChyZWNvcmQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlY29yZC5hdHRyaWJ1dGVOYW1lID09IFwiZFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgaGFzUGF0aE11dGF0aW9ucyA9IHRydWU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKGhhc1BhdGhNdXRhdGlvbnMpXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2xpc3QgPSB0aGlzLl9wYXJzZVBhdGgodGhpcy5fcGF0aEVsZW1lbnQuZ2V0QXR0cmlidXRlKFwiZFwiKSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdMaXN0LnByb3RvdHlwZS5fd3JpdGVMaXN0VG9QYXRoID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3BhdGhFbGVtZW50TXV0YXRpb25PYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fcGF0aEVsZW1lbnQuc2V0QXR0cmlidXRlKFwiZFwiLCB3aW5kb3cuU1ZHUGF0aFNlZ0xpc3QuX3BhdGhTZWdBcnJheUFzU3RyaW5nKHRoaXMuX2xpc3QpKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9wYXRoRWxlbWVudE11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLl9wYXRoRWxlbWVudCwgdGhpcy5fbXV0YXRpb25PYnNlcnZlckNvbmZpZyk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdMaXN0LnByb3RvdHlwZS5zZWdtZW50Q2hhbmdlZCA9IGZ1bmN0aW9uIChwYXRoU2VnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fd3JpdGVMaXN0VG9QYXRoKCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdMaXN0LnByb3RvdHlwZS5jbGVhciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jaGVja1BhdGhTeW5jaHJvbml6ZWRUb0xpc3QoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9saXN0LmZvckVhY2goZnVuY3Rpb24gKHBhdGhTZWcpIHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aFNlZy5fb3duaW5nUGF0aFNlZ0xpc3QgPSBudWxsO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2xpc3QgPSBbXTtcbiAgICAgICAgICAgICAgICB0aGlzLl93cml0ZUxpc3RUb1BhdGgoKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0xpc3QucHJvdG90eXBlLmluaXRpYWxpemUgPSBmdW5jdGlvbiAobmV3SXRlbSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NoZWNrUGF0aFN5bmNocm9uaXplZFRvTGlzdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2xpc3QgPSBbbmV3SXRlbV07XG4gICAgICAgICAgICAgICAgbmV3SXRlbS5fb3duaW5nUGF0aFNlZ0xpc3QgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoaXMuX3dyaXRlTGlzdFRvUGF0aCgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXdJdGVtO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnTGlzdC5wcm90b3R5cGUuX2NoZWNrVmFsaWRJbmRleCA9IGZ1bmN0aW9uIChpbmRleCkge1xuICAgICAgICAgICAgICAgIGlmIChpc05hTihpbmRleCkgfHwgaW5kZXggPCAwIHx8IGluZGV4ID49IHRoaXMubnVtYmVyT2ZJdGVtcylcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgXCJJTkRFWF9TSVpFX0VSUlwiO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnTGlzdC5wcm90b3R5cGUuZ2V0SXRlbSA9IGZ1bmN0aW9uIChpbmRleCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NoZWNrUGF0aFN5bmNocm9uaXplZFRvTGlzdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2NoZWNrVmFsaWRJbmRleChpbmRleCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2xpc3RbaW5kZXhdO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnTGlzdC5wcm90b3R5cGUuaW5zZXJ0SXRlbUJlZm9yZSA9IGZ1bmN0aW9uIChuZXdJdGVtLCBpbmRleCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NoZWNrUGF0aFN5bmNocm9uaXplZFRvTGlzdCgpO1xuICAgICAgICAgICAgICAgIGlmIChpbmRleCA+IHRoaXMubnVtYmVyT2ZJdGVtcylcbiAgICAgICAgICAgICAgICAgICAgaW5kZXggPSB0aGlzLm51bWJlck9mSXRlbXM7XG4gICAgICAgICAgICAgICAgaWYgKG5ld0l0ZW0uX293bmluZ1BhdGhTZWdMaXN0KSB7XG4gICAgICAgICAgICAgICAgICAgIG5ld0l0ZW0gPSBuZXdJdGVtLmNsb25lKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuX2xpc3Quc3BsaWNlKGluZGV4LCAwLCBuZXdJdGVtKTtcbiAgICAgICAgICAgICAgICBuZXdJdGVtLl9vd25pbmdQYXRoU2VnTGlzdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhpcy5fd3JpdGVMaXN0VG9QYXRoKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ld0l0ZW07XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdMaXN0LnByb3RvdHlwZS5yZXBsYWNlSXRlbSA9IGZ1bmN0aW9uIChuZXdJdGVtLCBpbmRleCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NoZWNrUGF0aFN5bmNocm9uaXplZFRvTGlzdCgpO1xuICAgICAgICAgICAgICAgIGlmIChuZXdJdGVtLl9vd25pbmdQYXRoU2VnTGlzdCkge1xuICAgICAgICAgICAgICAgICAgICBuZXdJdGVtID0gbmV3SXRlbS5jbG9uZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLl9jaGVja1ZhbGlkSW5kZXgoaW5kZXgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2xpc3RbaW5kZXhdID0gbmV3SXRlbTtcbiAgICAgICAgICAgICAgICBuZXdJdGVtLl9vd25pbmdQYXRoU2VnTGlzdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhpcy5fd3JpdGVMaXN0VG9QYXRoKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ld0l0ZW07XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdMaXN0LnByb3RvdHlwZS5yZW1vdmVJdGVtID0gZnVuY3Rpb24gKGluZGV4KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2hlY2tQYXRoU3luY2hyb25pemVkVG9MaXN0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2hlY2tWYWxpZEluZGV4KGluZGV4KTtcbiAgICAgICAgICAgICAgICB2YXIgaXRlbSA9IHRoaXMuX2xpc3RbaW5kZXhdO1xuICAgICAgICAgICAgICAgIHRoaXMuX2xpc3Quc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgICAgICB0aGlzLl93cml0ZUxpc3RUb1BhdGgoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0xpc3QucHJvdG90eXBlLmFwcGVuZEl0ZW0gPSBmdW5jdGlvbiAobmV3SXRlbSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NoZWNrUGF0aFN5bmNocm9uaXplZFRvTGlzdCgpO1xuICAgICAgICAgICAgICAgIGlmIChuZXdJdGVtLl9vd25pbmdQYXRoU2VnTGlzdCkge1xuICAgICAgICAgICAgICAgICAgICBuZXdJdGVtID0gbmV3SXRlbS5jbG9uZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLl9saXN0LnB1c2gobmV3SXRlbSk7XG4gICAgICAgICAgICAgICAgbmV3SXRlbS5fb3duaW5nUGF0aFNlZ0xpc3QgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoaXMuX3dyaXRlTGlzdFRvUGF0aCgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXdJdGVtO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnTGlzdC5fcGF0aFNlZ0FycmF5QXNTdHJpbmcgPSBmdW5jdGlvbiAocGF0aFNlZ0FycmF5KSB7XG4gICAgICAgICAgICAgICAgdmFyIHN0cmluZyA9IFwiXCI7XG4gICAgICAgICAgICAgICAgdmFyIGZpcnN0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBwYXRoU2VnQXJyYXkuZm9yRWFjaChmdW5jdGlvbiAocGF0aFNlZykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmlyc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmcgKz0gcGF0aFNlZy5fYXNQYXRoU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmcgKz0gXCIgXCIgKyBwYXRoU2VnLl9hc1BhdGhTdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiBzdHJpbmc7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdMaXN0LnByb3RvdHlwZS5fcGFyc2VQYXRoID0gZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgICAgIGlmICghc3RyaW5nIHx8IHN0cmluZy5sZW5ndGggPT0gMClcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgICAgIHZhciBvd25pbmdQYXRoU2VnTGlzdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdmFyIEJ1aWxkZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGF0aFNlZ0xpc3QgPSBbXTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIEJ1aWxkZXIucHJvdG90eXBlLmFwcGVuZFNlZ21lbnQgPSBmdW5jdGlvbiAocGF0aFNlZykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhdGhTZWdMaXN0LnB1c2gocGF0aFNlZyk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB2YXIgU291cmNlID0gZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdHJpbmcgPSBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRJbmRleCA9IDA7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VuZEluZGV4ID0gdGhpcy5fc3RyaW5nLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcHJldmlvdXNDb21tYW5kID0gd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19VTktOT1dOO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9za2lwT3B0aW9uYWxTcGFjZXMoKTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIFNvdXJjZS5wcm90b3R5cGUuX2lzQ3VycmVudFNwYWNlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgY2hhcmFjdGVyID0gdGhpcy5fc3RyaW5nW3RoaXMuX2N1cnJlbnRJbmRleF07XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoY2hhcmFjdGVyIDw9IFwiIFwiICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2hhcmFjdGVyID09IFwiIFwiIHx8IGNoYXJhY3RlciA9PSBcIlxcblwiIHx8IGNoYXJhY3RlciA9PSBcIlxcdFwiIHx8IGNoYXJhY3RlciA9PSBcIlxcclwiIHx8IGNoYXJhY3RlciA9PSBcIlxcZlwiKSk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBTb3VyY2UucHJvdG90eXBlLl9za2lwT3B0aW9uYWxTcGFjZXMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHdoaWxlICh0aGlzLl9jdXJyZW50SW5kZXggPCB0aGlzLl9lbmRJbmRleCAmJiB0aGlzLl9pc0N1cnJlbnRTcGFjZSgpKVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3VycmVudEluZGV4Kys7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9jdXJyZW50SW5kZXggPCB0aGlzLl9lbmRJbmRleDtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIFNvdXJjZS5wcm90b3R5cGUuX3NraXBPcHRpb25hbFNwYWNlc09yRGVsaW1pdGVyID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fY3VycmVudEluZGV4IDwgdGhpcy5fZW5kSW5kZXggJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICF0aGlzLl9pc0N1cnJlbnRTcGFjZSgpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdHJpbmcuY2hhckF0KHRoaXMuX2N1cnJlbnRJbmRleCkgIT0gXCIsXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9za2lwT3B0aW9uYWxTcGFjZXMoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRJbmRleCA8IHRoaXMuX2VuZEluZGV4ICYmIHRoaXMuX3N0cmluZy5jaGFyQXQodGhpcy5fY3VycmVudEluZGV4KSA9PSBcIixcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRJbmRleCsrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3NraXBPcHRpb25hbFNwYWNlcygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9jdXJyZW50SW5kZXggPCB0aGlzLl9lbmRJbmRleDtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIFNvdXJjZS5wcm90b3R5cGUuaGFzTW9yZURhdGEgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9jdXJyZW50SW5kZXggPCB0aGlzLl9lbmRJbmRleDtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIFNvdXJjZS5wcm90b3R5cGUucGVla1NlZ21lbnRUeXBlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgbG9va2FoZWFkID0gdGhpcy5fc3RyaW5nW3RoaXMuX2N1cnJlbnRJbmRleF07XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9wYXRoU2VnVHlwZUZyb21DaGFyKGxvb2thaGVhZCk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBTb3VyY2UucHJvdG90eXBlLl9wYXRoU2VnVHlwZUZyb21DaGFyID0gZnVuY3Rpb24gKGxvb2thaGVhZCkge1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGxvb2thaGVhZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIlpcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJ6XCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfQ0xPU0VQQVRIO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIk1cIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19NT1ZFVE9fQUJTO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIm1cIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19NT1ZFVE9fUkVMO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkxcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19MSU5FVE9fQUJTO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcImxcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19MSU5FVE9fUkVMO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkNcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19DVVJWRVRPX0NVQklDX0FCUztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJjXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfQ1VSVkVUT19DVUJJQ19SRUw7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiUVwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX0FCUztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJxXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfQ1VSVkVUT19RVUFEUkFUSUNfUkVMO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkFcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19BUkNfQUJTO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcImFcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19BUkNfUkVMO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkhcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19MSU5FVE9fSE9SSVpPTlRBTF9BQlM7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiaFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX0xJTkVUT19IT1JJWk9OVEFMX1JFTDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJWXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfTElORVRPX1ZFUlRJQ0FMX0FCUztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJ2XCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfTElORVRPX1ZFUlRJQ0FMX1JFTDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJTXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfQ1VSVkVUT19DVUJJQ19TTU9PVEhfQUJTO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcInNcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19DVVJWRVRPX0NVQklDX1NNT09USF9SRUw7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiVFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX1NNT09USF9BQlM7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwidFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX1NNT09USF9SRUw7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX1VOS05PV047XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIFNvdXJjZS5wcm90b3R5cGUuX25leHRDb21tYW5kSGVscGVyID0gZnVuY3Rpb24gKGxvb2thaGVhZCwgcHJldmlvdXNDb21tYW5kKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICgobG9va2FoZWFkID09IFwiK1wiIHx8IGxvb2thaGVhZCA9PSBcIi1cIiB8fCBsb29rYWhlYWQgPT0gXCIuXCIgfHwgKGxvb2thaGVhZCA+PSBcIjBcIiAmJiBsb29rYWhlYWQgPD0gXCI5XCIpKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNDb21tYW5kICE9IHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfQ0xPU0VQQVRIKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNDb21tYW5kID09IHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfTU9WRVRPX0FCUylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19MSU5FVE9fQUJTO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzQ29tbWFuZCA9PSB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX01PVkVUT19SRUwpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfTElORVRPX1JFTDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwcmV2aW91c0NvbW1hbmQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfVU5LTk9XTjtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIFNvdXJjZS5wcm90b3R5cGUuaW5pdGlhbENvbW1hbmRJc01vdmVUbyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmhhc01vcmVEYXRhKCkpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGNvbW1hbmQgPSB0aGlzLnBlZWtTZWdtZW50VHlwZSgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29tbWFuZCA9PSB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX01PVkVUT19BQlMgfHwgY29tbWFuZCA9PSB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX01PVkVUT19SRUw7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBTb3VyY2UucHJvdG90eXBlLl9wYXJzZU51bWJlciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGV4cG9uZW50ID0gMDtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGludGVnZXIgPSAwO1xuICAgICAgICAgICAgICAgICAgICB2YXIgZnJhYyA9IDE7XG4gICAgICAgICAgICAgICAgICAgIHZhciBkZWNpbWFsID0gMDtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHNpZ24gPSAxO1xuICAgICAgICAgICAgICAgICAgICB2YXIgZXhwc2lnbiA9IDE7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzdGFydEluZGV4ID0gdGhpcy5fY3VycmVudEluZGV4O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9za2lwT3B0aW9uYWxTcGFjZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRJbmRleCA8IHRoaXMuX2VuZEluZGV4ICYmIHRoaXMuX3N0cmluZy5jaGFyQXQodGhpcy5fY3VycmVudEluZGV4KSA9PSBcIitcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRJbmRleCsrO1xuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh0aGlzLl9jdXJyZW50SW5kZXggPCB0aGlzLl9lbmRJbmRleCAmJiB0aGlzLl9zdHJpbmcuY2hhckF0KHRoaXMuX2N1cnJlbnRJbmRleCkgPT0gXCItXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRJbmRleCsrO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2lnbiA9IC0xO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9jdXJyZW50SW5kZXggPT0gdGhpcy5fZW5kSW5kZXggfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICgodGhpcy5fc3RyaW5nLmNoYXJBdCh0aGlzLl9jdXJyZW50SW5kZXgpIDwgXCIwXCIgfHwgdGhpcy5fc3RyaW5nLmNoYXJBdCh0aGlzLl9jdXJyZW50SW5kZXgpID4gXCI5XCIpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RyaW5nLmNoYXJBdCh0aGlzLl9jdXJyZW50SW5kZXgpICE9IFwiLlwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzdGFydEludFBhcnRJbmRleCA9IHRoaXMuX2N1cnJlbnRJbmRleDtcbiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHRoaXMuX2N1cnJlbnRJbmRleCA8IHRoaXMuX2VuZEluZGV4ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdHJpbmcuY2hhckF0KHRoaXMuX2N1cnJlbnRJbmRleCkgPj0gXCIwXCIgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3N0cmluZy5jaGFyQXQodGhpcy5fY3VycmVudEluZGV4KSA8PSBcIjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRJbmRleCsrO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fY3VycmVudEluZGV4ICE9IHN0YXJ0SW50UGFydEluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgc2NhbkludFBhcnRJbmRleCA9IHRoaXMuX2N1cnJlbnRJbmRleCAtIDE7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgbXVsdGlwbGllciA9IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoc2NhbkludFBhcnRJbmRleCA+PSBzdGFydEludFBhcnRJbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVnZXIgKz0gbXVsdGlwbGllciAqICh0aGlzLl9zdHJpbmcuY2hhckF0KHNjYW5JbnRQYXJ0SW5kZXgtLSkgLSBcIjBcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGllciAqPSAxMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fY3VycmVudEluZGV4IDwgdGhpcy5fZW5kSW5kZXggJiYgdGhpcy5fc3RyaW5nLmNoYXJBdCh0aGlzLl9jdXJyZW50SW5kZXgpID09IFwiLlwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50SW5kZXgrKztcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9jdXJyZW50SW5kZXggPj0gdGhpcy5fZW5kSW5kZXggfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdHJpbmcuY2hhckF0KHRoaXMuX2N1cnJlbnRJbmRleCkgPCBcIjBcIiB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3N0cmluZy5jaGFyQXQodGhpcy5fY3VycmVudEluZGV4KSA+IFwiOVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAodGhpcy5fY3VycmVudEluZGV4IDwgdGhpcy5fZW5kSW5kZXggJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdHJpbmcuY2hhckF0KHRoaXMuX2N1cnJlbnRJbmRleCkgPj0gXCIwXCIgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdHJpbmcuY2hhckF0KHRoaXMuX2N1cnJlbnRJbmRleCkgPD0gXCI5XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFjICo9IDEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY2ltYWwgKz0gKHRoaXMuX3N0cmluZy5jaGFyQXQodGhpcy5fY3VycmVudEluZGV4KSAtIFwiMFwiKSAvIGZyYWM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3VycmVudEluZGV4ICs9IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRJbmRleCAhPSBzdGFydEluZGV4ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50SW5kZXggKyAxIDwgdGhpcy5fZW5kSW5kZXggJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLl9zdHJpbmcuY2hhckF0KHRoaXMuX2N1cnJlbnRJbmRleCkgPT0gXCJlXCIgfHwgdGhpcy5fc3RyaW5nLmNoYXJBdCh0aGlzLl9jdXJyZW50SW5kZXgpID09IFwiRVwiKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RyaW5nLmNoYXJBdCh0aGlzLl9jdXJyZW50SW5kZXggKyAxKSAhPSBcInhcIiAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RyaW5nLmNoYXJBdCh0aGlzLl9jdXJyZW50SW5kZXggKyAxKSAhPSBcIm1cIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3VycmVudEluZGV4Kys7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fc3RyaW5nLmNoYXJBdCh0aGlzLl9jdXJyZW50SW5kZXgpID09IFwiK1wiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3VycmVudEluZGV4Kys7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh0aGlzLl9zdHJpbmcuY2hhckF0KHRoaXMuX2N1cnJlbnRJbmRleCkgPT0gXCItXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50SW5kZXgrKztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBzaWduID0gLTE7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fY3VycmVudEluZGV4ID49IHRoaXMuX2VuZEluZGV4IHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RyaW5nLmNoYXJBdCh0aGlzLl9jdXJyZW50SW5kZXgpIDwgXCIwXCIgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdHJpbmcuY2hhckF0KHRoaXMuX2N1cnJlbnRJbmRleCkgPiBcIjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHRoaXMuX2N1cnJlbnRJbmRleCA8IHRoaXMuX2VuZEluZGV4ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RyaW5nLmNoYXJBdCh0aGlzLl9jdXJyZW50SW5kZXgpID49IFwiMFwiICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RyaW5nLmNoYXJBdCh0aGlzLl9jdXJyZW50SW5kZXgpIDw9IFwiOVwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwb25lbnQgKj0gMTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwb25lbnQgKz0gdGhpcy5fc3RyaW5nLmNoYXJBdCh0aGlzLl9jdXJyZW50SW5kZXgpIC0gXCIwXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3VycmVudEluZGV4Kys7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdmFyIG51bWJlciA9IGludGVnZXIgKyBkZWNpbWFsO1xuICAgICAgICAgICAgICAgICAgICBudW1iZXIgKj0gc2lnbjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV4cG9uZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyICo9IE1hdGgucG93KDEwLCBleHBzaWduICogZXhwb25lbnQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3RhcnRJbmRleCA9PSB0aGlzLl9jdXJyZW50SW5kZXgpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9za2lwT3B0aW9uYWxTcGFjZXNPckRlbGltaXRlcigpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgU291cmNlLnByb3RvdHlwZS5fcGFyc2VBcmNGbGFnID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fY3VycmVudEluZGV4ID49IHRoaXMuX2VuZEluZGV4KVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGZsYWcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGZsYWdDaGFyID0gdGhpcy5fc3RyaW5nLmNoYXJBdCh0aGlzLl9jdXJyZW50SW5kZXgrKyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmbGFnQ2hhciA9PSBcIjBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsYWcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoZmxhZ0NoYXIgPT0gXCIxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICBmbGFnID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2tpcE9wdGlvbmFsU3BhY2VzT3JEZWxpbWl0ZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZsYWc7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBTb3VyY2UucHJvdG90eXBlLnBhcnNlU2VnbWVudCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGxvb2thaGVhZCA9IHRoaXMuX3N0cmluZ1t0aGlzLl9jdXJyZW50SW5kZXhdO1xuICAgICAgICAgICAgICAgICAgICB2YXIgY29tbWFuZCA9IHRoaXMuX3BhdGhTZWdUeXBlRnJvbUNoYXIobG9va2FoZWFkKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbW1hbmQgPT0gd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19VTktOT1dOKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fcHJldmlvdXNDb21tYW5kID09IHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfVU5LTk9XTilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmQgPSB0aGlzLl9uZXh0Q29tbWFuZEhlbHBlcihsb29rYWhlYWQsIHRoaXMuX3ByZXZpb3VzQ29tbWFuZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29tbWFuZCA9PSB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX1VOS05PV04pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50SW5kZXgrKztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9wcmV2aW91c0NvbW1hbmQgPSBjb21tYW5kO1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbW1hbmQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2Ugd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19NT1ZFVE9fUkVMOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgd2luZG93LlNWR1BhdGhTZWdNb3ZldG9SZWwob3duaW5nUGF0aFNlZ0xpc3QsIHRoaXMuX3BhcnNlTnVtYmVyKCksIHRoaXMuX3BhcnNlTnVtYmVyKCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX01PVkVUT19BQlM6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyB3aW5kb3cuU1ZHUGF0aFNlZ01vdmV0b0Ficyhvd25pbmdQYXRoU2VnTGlzdCwgdGhpcy5fcGFyc2VOdW1iZXIoKSwgdGhpcy5fcGFyc2VOdW1iZXIoKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfTElORVRPX1JFTDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHdpbmRvdy5TVkdQYXRoU2VnTGluZXRvUmVsKG93bmluZ1BhdGhTZWdMaXN0LCB0aGlzLl9wYXJzZU51bWJlcigpLCB0aGlzLl9wYXJzZU51bWJlcigpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2Ugd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19MSU5FVE9fQUJTOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgd2luZG93LlNWR1BhdGhTZWdMaW5ldG9BYnMob3duaW5nUGF0aFNlZ0xpc3QsIHRoaXMuX3BhcnNlTnVtYmVyKCksIHRoaXMuX3BhcnNlTnVtYmVyKCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX0xJTkVUT19IT1JJWk9OVEFMX1JFTDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHdpbmRvdy5TVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbChvd25pbmdQYXRoU2VnTGlzdCwgdGhpcy5fcGFyc2VOdW1iZXIoKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfTElORVRPX0hPUklaT05UQUxfQUJTOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgd2luZG93LlNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzKG93bmluZ1BhdGhTZWdMaXN0LCB0aGlzLl9wYXJzZU51bWJlcigpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2Ugd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19MSU5FVE9fVkVSVElDQUxfUkVMOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgd2luZG93LlNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbChvd25pbmdQYXRoU2VnTGlzdCwgdGhpcy5fcGFyc2VOdW1iZXIoKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfTElORVRPX1ZFUlRJQ0FMX0FCUzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHdpbmRvdy5TVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMob3duaW5nUGF0aFNlZ0xpc3QsIHRoaXMuX3BhcnNlTnVtYmVyKCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX0NMT1NFUEFUSDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9za2lwT3B0aW9uYWxTcGFjZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHdpbmRvdy5TVkdQYXRoU2VnQ2xvc2VQYXRoKG93bmluZ1BhdGhTZWdMaXN0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2Ugd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19DVVJWRVRPX0NVQklDX1JFTDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcG9pbnRzID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MTogdGhpcy5fcGFyc2VOdW1iZXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeTE6IHRoaXMuX3BhcnNlTnVtYmVyKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyOiB0aGlzLl9wYXJzZU51bWJlcigpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5MjogdGhpcy5fcGFyc2VOdW1iZXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDogdGhpcy5fcGFyc2VOdW1iZXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeTogdGhpcy5fcGFyc2VOdW1iZXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgd2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwob3duaW5nUGF0aFNlZ0xpc3QsIHBvaW50cy54LCBwb2ludHMueSwgcG9pbnRzLngxLCBwb2ludHMueTEsIHBvaW50cy54MiwgcG9pbnRzLnkyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2Ugd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19DVVJWRVRPX0NVQklDX0FCUzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcG9pbnRzID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MTogdGhpcy5fcGFyc2VOdW1iZXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeTE6IHRoaXMuX3BhcnNlTnVtYmVyKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyOiB0aGlzLl9wYXJzZU51bWJlcigpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5MjogdGhpcy5fcGFyc2VOdW1iZXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDogdGhpcy5fcGFyc2VOdW1iZXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeTogdGhpcy5fcGFyc2VOdW1iZXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgd2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMob3duaW5nUGF0aFNlZ0xpc3QsIHBvaW50cy54LCBwb2ludHMueSwgcG9pbnRzLngxLCBwb2ludHMueTEsIHBvaW50cy54MiwgcG9pbnRzLnkyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2Ugd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19DVVJWRVRPX0NVQklDX1NNT09USF9SRUw6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBvaW50cyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDI6IHRoaXMuX3BhcnNlTnVtYmVyKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHkyOiB0aGlzLl9wYXJzZU51bWJlcigpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4OiB0aGlzLl9wYXJzZU51bWJlcigpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5OiB0aGlzLl9wYXJzZU51bWJlcigpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyB3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbChvd25pbmdQYXRoU2VnTGlzdCwgcG9pbnRzLngsIHBvaW50cy55LCBwb2ludHMueDIsIHBvaW50cy55Mik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfQ1VSVkVUT19DVUJJQ19TTU9PVEhfQUJTOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwb2ludHMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyOiB0aGlzLl9wYXJzZU51bWJlcigpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5MjogdGhpcy5fcGFyc2VOdW1iZXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDogdGhpcy5fcGFyc2VOdW1iZXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeTogdGhpcy5fcGFyc2VOdW1iZXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgd2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMob3duaW5nUGF0aFNlZ0xpc3QsIHBvaW50cy54LCBwb2ludHMueSwgcG9pbnRzLngyLCBwb2ludHMueTIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX1JFTDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcG9pbnRzID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MTogdGhpcy5fcGFyc2VOdW1iZXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeTE6IHRoaXMuX3BhcnNlTnVtYmVyKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHg6IHRoaXMuX3BhcnNlTnVtYmVyKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHk6IHRoaXMuX3BhcnNlTnVtYmVyKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbChvd25pbmdQYXRoU2VnTGlzdCwgcG9pbnRzLngsIHBvaW50cy55LCBwb2ludHMueDEsIHBvaW50cy55MSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfQ1VSVkVUT19RVUFEUkFUSUNfQUJTOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwb2ludHMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgxOiB0aGlzLl9wYXJzZU51bWJlcigpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5MTogdGhpcy5fcGFyc2VOdW1iZXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDogdGhpcy5fcGFyc2VOdW1iZXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeTogdGhpcy5fcGFyc2VOdW1iZXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgd2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzKG93bmluZ1BhdGhTZWdMaXN0LCBwb2ludHMueCwgcG9pbnRzLnksIHBvaW50cy54MSwgcG9pbnRzLnkxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2Ugd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19DVVJWRVRPX1FVQURSQVRJQ19TTU9PVEhfUkVMOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgd2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsKG93bmluZ1BhdGhTZWdMaXN0LCB0aGlzLl9wYXJzZU51bWJlcigpLCB0aGlzLl9wYXJzZU51bWJlcigpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2Ugd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19DVVJWRVRPX1FVQURSQVRJQ19TTU9PVEhfQUJTOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgd2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzKG93bmluZ1BhdGhTZWdMaXN0LCB0aGlzLl9wYXJzZU51bWJlcigpLCB0aGlzLl9wYXJzZU51bWJlcigpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2Ugd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19BUkNfUkVMOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwb2ludHMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgxOiB0aGlzLl9wYXJzZU51bWJlcigpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5MTogdGhpcy5fcGFyc2VOdW1iZXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJjQW5nbGU6IHRoaXMuX3BhcnNlTnVtYmVyKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyY0xhcmdlOiB0aGlzLl9wYXJzZUFyY0ZsYWcoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJjU3dlZXA6IHRoaXMuX3BhcnNlQXJjRmxhZygpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4OiB0aGlzLl9wYXJzZU51bWJlcigpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5OiB0aGlzLl9wYXJzZU51bWJlcigpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyB3aW5kb3cuU1ZHUGF0aFNlZ0FyY1JlbChvd25pbmdQYXRoU2VnTGlzdCwgcG9pbnRzLngsIHBvaW50cy55LCBwb2ludHMueDEsIHBvaW50cy55MSwgcG9pbnRzLmFyY0FuZ2xlLCBwb2ludHMuYXJjTGFyZ2UsIHBvaW50cy5hcmNTd2VlcCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfQVJDX0FCUzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcG9pbnRzID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MTogdGhpcy5fcGFyc2VOdW1iZXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeTE6IHRoaXMuX3BhcnNlTnVtYmVyKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyY0FuZ2xlOiB0aGlzLl9wYXJzZU51bWJlcigpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmNMYXJnZTogdGhpcy5fcGFyc2VBcmNGbGFnKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyY1N3ZWVwOiB0aGlzLl9wYXJzZUFyY0ZsYWcoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDogdGhpcy5fcGFyc2VOdW1iZXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeTogdGhpcy5fcGFyc2VOdW1iZXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgd2luZG93LlNWR1BhdGhTZWdBcmNBYnMob3duaW5nUGF0aFNlZ0xpc3QsIHBvaW50cy54LCBwb2ludHMueSwgcG9pbnRzLngxLCBwb2ludHMueTEsIHBvaW50cy5hcmNBbmdsZSwgcG9pbnRzLmFyY0xhcmdlLCBwb2ludHMuYXJjU3dlZXApO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBcIlVua25vd24gcGF0aCBzZWcgdHlwZS5cIjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgdmFyIGJ1aWxkZXIgPSBuZXcgQnVpbGRlcigpO1xuICAgICAgICAgICAgICAgIHZhciBzb3VyY2UgPSBuZXcgU291cmNlKHN0cmluZyk7XG4gICAgICAgICAgICAgICAgaWYgKCFzb3VyY2UuaW5pdGlhbENvbW1hbmRJc01vdmVUbygpKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICAgICAgd2hpbGUgKHNvdXJjZS5oYXNNb3JlRGF0YSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBwYXRoU2VnID0gc291cmNlLnBhcnNlU2VnbWVudCgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXBhdGhTZWcpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kU2VnbWVudChwYXRoU2VnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJ1aWxkZXIucGF0aFNlZ0xpc3Q7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuICAgIGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcIkFuIGVycm9yIG9jY3VycmVkIGluIHRzUGFydGljbGVzIHBhdGhzZWcgcG9seWZpbGwuIElmIHRoZSBQb2x5Z29uIE1hc2sgaXMgbm90IHdvcmtpbmcsIHBsZWFzZSBvcGVuIGFuIGlzc3VlIGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9tYXR0ZW9icnVuaS90c3BhcnRpY2xlc1wiLCBlKTtcbiAgICB9XG59KSgpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/PolygonMask/pathseg.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/PolygonMask/plugin.js": +/*!****************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/PolygonMask/plugin.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadPolygonMaskPlugin = void 0;\nconst PolygonMaskInstance_1 = __webpack_require__(/*! ./PolygonMaskInstance */ \"./node_modules/tsparticles/Plugins/PolygonMask/PolygonMaskInstance.js\");\nconst PolygonMask_1 = __webpack_require__(/*! ./Options/Classes/PolygonMask */ \"./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/PolygonMask.js\");\nconst Enums_1 = __webpack_require__(/*! ./Enums */ \"./node_modules/tsparticles/Plugins/PolygonMask/Enums/index.js\");\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass Plugin {\n constructor() {\n this.id = \"polygonMask\";\n }\n getPlugin(container) {\n return new PolygonMaskInstance_1.PolygonMaskInstance(container);\n }\n needsPlugin(options) {\n var _a, _b, _c;\n return (_b = (_a = options === null || options === void 0 ? void 0 : options.polygon) === null || _a === void 0 ? void 0 : _a.enable) !== null && _b !== void 0 ? _b : (((_c = options === null || options === void 0 ? void 0 : options.polygon) === null || _c === void 0 ? void 0 : _c.type) !== undefined && options.polygon.type !== Enums_1.Type.none);\n }\n loadOptions(options, source) {\n if (!this.needsPlugin(source)) {\n return;\n }\n const optionsCast = options;\n let polygonOptions = optionsCast.polygon;\n if ((polygonOptions === null || polygonOptions === void 0 ? void 0 : polygonOptions.load) === undefined) {\n optionsCast.polygon = polygonOptions = new PolygonMask_1.PolygonMask();\n }\n polygonOptions.load(source === null || source === void 0 ? void 0 : source.polygon);\n }\n}\nasync function loadPolygonMaskPlugin(tsParticles) {\n if (!(0, Utils_1.isSsr)() && !window.SVGPathSeg) {\n await Promise.resolve().then(() => __importStar(__webpack_require__(/*! ./pathseg */ \"./node_modules/tsparticles/Plugins/PolygonMask/pathseg.js\")));\n }\n const plugin = new Plugin();\n await tsParticles.addPlugin(plugin);\n}\nexports.loadPolygonMaskPlugin = loadPolygonMaskPlugin;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9Qb2x5Z29uTWFzay9wbHVnaW4uanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBO0FBQ0EsbUNBQW1DLG9DQUFvQyxnQkFBZ0I7QUFDdkYsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQSwwQ0FBMEMsNEJBQTRCO0FBQ3RFLENBQUM7QUFDRDtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCw2QkFBNkI7QUFDN0IsOEJBQThCLG1CQUFPLENBQUMsb0dBQXVCO0FBQzdELHNCQUFzQixtQkFBTyxDQUFDLG9IQUErQjtBQUM3RCxnQkFBZ0IsbUJBQU8sQ0FBQyw4RUFBUztBQUNqQyxnQkFBZ0IsbUJBQU8sQ0FBQyw4REFBYTtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdEQUF3RCxtQkFBTyxDQUFDLDRFQUFXO0FBQzNFO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9QbHVnaW5zL1BvbHlnb25NYXNrL3BsdWdpbi5qcz80NmMyIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9fY3JlYXRlQmluZGluZyA9ICh0aGlzICYmIHRoaXMuX19jcmVhdGVCaW5kaW5nKSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH0pO1xufSkgOiAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIG9bazJdID0gbVtrXTtcbn0pKTtcbnZhciBfX3NldE1vZHVsZURlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9fc2V0TW9kdWxlRGVmYXVsdCkgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgdikge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBcImRlZmF1bHRcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdiB9KTtcbn0pIDogZnVuY3Rpb24obywgdikge1xuICAgIG9bXCJkZWZhdWx0XCJdID0gdjtcbn0pO1xudmFyIF9faW1wb3J0U3RhciA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnRTdGFyKSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDtcbiAgICB2YXIgcmVzdWx0ID0ge307XG4gICAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrIGluIG1vZCkgaWYgKGsgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChtb2QsIGspKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGspO1xuICAgIF9fc2V0TW9kdWxlRGVmYXVsdChyZXN1bHQsIG1vZCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmxvYWRQb2x5Z29uTWFza1BsdWdpbiA9IHZvaWQgMDtcbmNvbnN0IFBvbHlnb25NYXNrSW5zdGFuY2VfMSA9IHJlcXVpcmUoXCIuL1BvbHlnb25NYXNrSW5zdGFuY2VcIik7XG5jb25zdCBQb2x5Z29uTWFza18xID0gcmVxdWlyZShcIi4vT3B0aW9ucy9DbGFzc2VzL1BvbHlnb25NYXNrXCIpO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuL0VudW1zXCIpO1xuY29uc3QgVXRpbHNfMSA9IHJlcXVpcmUoXCIuLi8uLi9VdGlsc1wiKTtcbmNsYXNzIFBsdWdpbiB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuaWQgPSBcInBvbHlnb25NYXNrXCI7XG4gICAgfVxuICAgIGdldFBsdWdpbihjb250YWluZXIpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQb2x5Z29uTWFza0luc3RhbmNlXzEuUG9seWdvbk1hc2tJbnN0YW5jZShjb250YWluZXIpO1xuICAgIH1cbiAgICBuZWVkc1BsdWdpbihvcHRpb25zKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICByZXR1cm4gKF9iID0gKF9hID0gb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLnBvbHlnb24pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5lbmFibGUpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6ICgoKF9jID0gb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLnBvbHlnb24pID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy50eXBlKSAhPT0gdW5kZWZpbmVkICYmIG9wdGlvbnMucG9seWdvbi50eXBlICE9PSBFbnVtc18xLlR5cGUubm9uZSk7XG4gICAgfVxuICAgIGxvYWRPcHRpb25zKG9wdGlvbnMsIHNvdXJjZSkge1xuICAgICAgICBpZiAoIXRoaXMubmVlZHNQbHVnaW4oc291cmNlKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG9wdGlvbnNDYXN0ID0gb3B0aW9ucztcbiAgICAgICAgbGV0IHBvbHlnb25PcHRpb25zID0gb3B0aW9uc0Nhc3QucG9seWdvbjtcbiAgICAgICAgaWYgKChwb2x5Z29uT3B0aW9ucyA9PT0gbnVsbCB8fCBwb2x5Z29uT3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcG9seWdvbk9wdGlvbnMubG9hZCkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgb3B0aW9uc0Nhc3QucG9seWdvbiA9IHBvbHlnb25PcHRpb25zID0gbmV3IFBvbHlnb25NYXNrXzEuUG9seWdvbk1hc2soKTtcbiAgICAgICAgfVxuICAgICAgICBwb2x5Z29uT3B0aW9ucy5sb2FkKHNvdXJjZSA9PT0gbnVsbCB8fCBzb3VyY2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNvdXJjZS5wb2x5Z29uKTtcbiAgICB9XG59XG5hc3luYyBmdW5jdGlvbiBsb2FkUG9seWdvbk1hc2tQbHVnaW4odHNQYXJ0aWNsZXMpIHtcbiAgICBpZiAoISgwLCBVdGlsc18xLmlzU3NyKSgpICYmICF3aW5kb3cuU1ZHUGF0aFNlZykge1xuICAgICAgICBhd2FpdCBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IF9faW1wb3J0U3RhcihyZXF1aXJlKFwiLi9wYXRoc2VnXCIpKSk7XG4gICAgfVxuICAgIGNvbnN0IHBsdWdpbiA9IG5ldyBQbHVnaW4oKTtcbiAgICBhd2FpdCB0c1BhcnRpY2xlcy5hZGRQbHVnaW4ocGx1Z2luKTtcbn1cbmV4cG9ydHMubG9hZFBvbHlnb25NYXNrUGx1Z2luID0gbG9hZFBvbHlnb25NYXNrUGx1Z2luO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/PolygonMask/plugin.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/PolygonMask/utils.js": +/*!***************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/PolygonMask/utils.js ***! + \***************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.segmentBounce = exports.calcClosestPtOnSegment = exports.parsePaths = exports.drawPolygonMaskPath = exports.drawPolygonMask = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nfunction drawPolygonMask(context, rawData, stroke) {\n const color = (0, Utils_1.colorToRgb)(stroke.color);\n if (!color) {\n return;\n }\n context.beginPath();\n context.moveTo(rawData[0].x, rawData[0].y);\n for (const item of rawData) {\n context.lineTo(item.x, item.y);\n }\n context.closePath();\n context.strokeStyle = (0, Utils_1.getStyleFromRgb)(color);\n context.lineWidth = stroke.width;\n context.stroke();\n}\nexports.drawPolygonMask = drawPolygonMask;\nfunction drawPolygonMaskPath(context, path, stroke, position) {\n context.translate(position.x, position.y);\n const color = (0, Utils_1.colorToRgb)(stroke.color);\n if (!color) {\n return;\n }\n context.strokeStyle = (0, Utils_1.getStyleFromRgb)(color, stroke.opacity);\n context.lineWidth = stroke.width;\n context.stroke(path);\n}\nexports.drawPolygonMaskPath = drawPolygonMaskPath;\nfunction parsePaths(paths, scale, offset) {\n var _a;\n const res = [];\n for (const path of paths) {\n const segments = path.element.pathSegList;\n const len = (_a = segments === null || segments === void 0 ? void 0 : segments.numberOfItems) !== null && _a !== void 0 ? _a : 0;\n const p = {\n x: 0,\n y: 0,\n };\n for (let i = 0; i < len; i++) {\n const segment = segments === null || segments === void 0 ? void 0 : segments.getItem(i);\n const svgPathSeg = window.SVGPathSeg;\n switch (segment === null || segment === void 0 ? void 0 : segment.pathSegType) {\n case svgPathSeg.PATHSEG_MOVETO_ABS:\n case svgPathSeg.PATHSEG_LINETO_ABS:\n case svgPathSeg.PATHSEG_CURVETO_CUBIC_ABS:\n case svgPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS:\n case svgPathSeg.PATHSEG_ARC_ABS:\n case svgPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS:\n case svgPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS: {\n const absSeg = segment;\n p.x = absSeg.x;\n p.y = absSeg.y;\n break;\n }\n case svgPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS:\n p.x = segment.x;\n break;\n case svgPathSeg.PATHSEG_LINETO_VERTICAL_ABS:\n p.y = segment.y;\n break;\n case svgPathSeg.PATHSEG_LINETO_REL:\n case svgPathSeg.PATHSEG_MOVETO_REL:\n case svgPathSeg.PATHSEG_CURVETO_CUBIC_REL:\n case svgPathSeg.PATHSEG_CURVETO_QUADRATIC_REL:\n case svgPathSeg.PATHSEG_ARC_REL:\n case svgPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL:\n case svgPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL: {\n const relSeg = segment;\n p.x += relSeg.x;\n p.y += relSeg.y;\n break;\n }\n case svgPathSeg.PATHSEG_LINETO_HORIZONTAL_REL:\n p.x += segment.x;\n break;\n case svgPathSeg.PATHSEG_LINETO_VERTICAL_REL:\n p.y += segment.y;\n break;\n case svgPathSeg.PATHSEG_UNKNOWN:\n case svgPathSeg.PATHSEG_CLOSEPATH:\n continue;\n }\n res.push({\n x: p.x * scale + offset.x,\n y: p.y * scale + offset.y,\n });\n }\n }\n return res;\n}\nexports.parsePaths = parsePaths;\nfunction calcClosestPtOnSegment(s1, s2, pos) {\n const { dx, dy } = (0, Utils_1.getDistances)(pos, s1);\n const { dx: dxx, dy: dyy } = (0, Utils_1.getDistances)(s2, s1);\n const t = (dx * dxx + dy * dyy) / (dxx ** 2 + dyy ** 2);\n let x = s1.x + dxx * t;\n let y = s1.y + dyy * t;\n if (t < 0) {\n x = s1.x;\n y = s1.y;\n }\n else if (t > 1) {\n x = s2.x;\n y = s2.y;\n }\n return { x: x, y: y, isOnSegment: t >= 0 && t <= 1 };\n}\nexports.calcClosestPtOnSegment = calcClosestPtOnSegment;\nfunction segmentBounce(start, stop, velocity) {\n const { dx, dy } = (0, Utils_1.getDistances)(start, stop);\n const wallAngle = Math.atan2(dy, dx);\n const wallNormalX = Math.sin(wallAngle);\n const wallNormalY = -Math.cos(wallAngle);\n const d = 2 * (velocity.x * wallNormalX + velocity.y * wallNormalY);\n velocity.x -= d * wallNormalX;\n velocity.y -= d * wallNormalY;\n}\nexports.segmentBounce = segmentBounce;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9Qb2x5Z29uTWFzay91dGlscy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxxQkFBcUIsR0FBRyw4QkFBOEIsR0FBRyxrQkFBa0IsR0FBRywyQkFBMkIsR0FBRyx1QkFBdUI7QUFDbkksZ0JBQWdCLG1CQUFPLENBQUMsOERBQWE7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLFNBQVM7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQSxZQUFZLFNBQVM7QUFDckIsWUFBWSxtQkFBbUI7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLDhCQUE4QjtBQUM5QjtBQUNBLFlBQVksU0FBUztBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9Qb2x5Z29uTWFzay91dGlscy5qcz9jMGFjIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5zZWdtZW50Qm91bmNlID0gZXhwb3J0cy5jYWxjQ2xvc2VzdFB0T25TZWdtZW50ID0gZXhwb3J0cy5wYXJzZVBhdGhzID0gZXhwb3J0cy5kcmF3UG9seWdvbk1hc2tQYXRoID0gZXhwb3J0cy5kcmF3UG9seWdvbk1hc2sgPSB2b2lkIDA7XG5jb25zdCBVdGlsc18xID0gcmVxdWlyZShcIi4uLy4uL1V0aWxzXCIpO1xuZnVuY3Rpb24gZHJhd1BvbHlnb25NYXNrKGNvbnRleHQsIHJhd0RhdGEsIHN0cm9rZSkge1xuICAgIGNvbnN0IGNvbG9yID0gKDAsIFV0aWxzXzEuY29sb3JUb1JnYikoc3Ryb2tlLmNvbG9yKTtcbiAgICBpZiAoIWNvbG9yKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcbiAgICBjb250ZXh0Lm1vdmVUbyhyYXdEYXRhWzBdLngsIHJhd0RhdGFbMF0ueSk7XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIHJhd0RhdGEpIHtcbiAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBpdGVtLnkpO1xuICAgIH1cbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xuICAgIGNvbnRleHQuc3Ryb2tlU3R5bGUgPSAoMCwgVXRpbHNfMS5nZXRTdHlsZUZyb21SZ2IpKGNvbG9yKTtcbiAgICBjb250ZXh0LmxpbmVXaWR0aCA9IHN0cm9rZS53aWR0aDtcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xufVxuZXhwb3J0cy5kcmF3UG9seWdvbk1hc2sgPSBkcmF3UG9seWdvbk1hc2s7XG5mdW5jdGlvbiBkcmF3UG9seWdvbk1hc2tQYXRoKGNvbnRleHQsIHBhdGgsIHN0cm9rZSwgcG9zaXRpb24pIHtcbiAgICBjb250ZXh0LnRyYW5zbGF0ZShwb3NpdGlvbi54LCBwb3NpdGlvbi55KTtcbiAgICBjb25zdCBjb2xvciA9ICgwLCBVdGlsc18xLmNvbG9yVG9SZ2IpKHN0cm9rZS5jb2xvcik7XG4gICAgaWYgKCFjb2xvcikge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnRleHQuc3Ryb2tlU3R5bGUgPSAoMCwgVXRpbHNfMS5nZXRTdHlsZUZyb21SZ2IpKGNvbG9yLCBzdHJva2Uub3BhY2l0eSk7XG4gICAgY29udGV4dC5saW5lV2lkdGggPSBzdHJva2Uud2lkdGg7XG4gICAgY29udGV4dC5zdHJva2UocGF0aCk7XG59XG5leHBvcnRzLmRyYXdQb2x5Z29uTWFza1BhdGggPSBkcmF3UG9seWdvbk1hc2tQYXRoO1xuZnVuY3Rpb24gcGFyc2VQYXRocyhwYXRocywgc2NhbGUsIG9mZnNldCkge1xuICAgIHZhciBfYTtcbiAgICBjb25zdCByZXMgPSBbXTtcbiAgICBmb3IgKGNvbnN0IHBhdGggb2YgcGF0aHMpIHtcbiAgICAgICAgY29uc3Qgc2VnbWVudHMgPSBwYXRoLmVsZW1lbnQucGF0aFNlZ0xpc3Q7XG4gICAgICAgIGNvbnN0IGxlbiA9IChfYSA9IHNlZ21lbnRzID09PSBudWxsIHx8IHNlZ21lbnRzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZWdtZW50cy5udW1iZXJPZkl0ZW1zKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAwO1xuICAgICAgICBjb25zdCBwID0ge1xuICAgICAgICAgICAgeDogMCxcbiAgICAgICAgICAgIHk6IDAsXG4gICAgICAgIH07XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHNlZ21lbnQgPSBzZWdtZW50cyA9PT0gbnVsbCB8fCBzZWdtZW50cyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2VnbWVudHMuZ2V0SXRlbShpKTtcbiAgICAgICAgICAgIGNvbnN0IHN2Z1BhdGhTZWcgPSB3aW5kb3cuU1ZHUGF0aFNlZztcbiAgICAgICAgICAgIHN3aXRjaCAoc2VnbWVudCA9PT0gbnVsbCB8fCBzZWdtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZWdtZW50LnBhdGhTZWdUeXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBzdmdQYXRoU2VnLlBBVEhTRUdfTU9WRVRPX0FCUzpcbiAgICAgICAgICAgICAgICBjYXNlIHN2Z1BhdGhTZWcuUEFUSFNFR19MSU5FVE9fQUJTOlxuICAgICAgICAgICAgICAgIGNhc2Ugc3ZnUGF0aFNlZy5QQVRIU0VHX0NVUlZFVE9fQ1VCSUNfQUJTOlxuICAgICAgICAgICAgICAgIGNhc2Ugc3ZnUGF0aFNlZy5QQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX0FCUzpcbiAgICAgICAgICAgICAgICBjYXNlIHN2Z1BhdGhTZWcuUEFUSFNFR19BUkNfQUJTOlxuICAgICAgICAgICAgICAgIGNhc2Ugc3ZnUGF0aFNlZy5QQVRIU0VHX0NVUlZFVE9fQ1VCSUNfU01PT1RIX0FCUzpcbiAgICAgICAgICAgICAgICBjYXNlIHN2Z1BhdGhTZWcuUEFUSFNFR19DVVJWRVRPX1FVQURSQVRJQ19TTU9PVEhfQUJTOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFic1NlZyA9IHNlZ21lbnQ7XG4gICAgICAgICAgICAgICAgICAgIHAueCA9IGFic1NlZy54O1xuICAgICAgICAgICAgICAgICAgICBwLnkgPSBhYnNTZWcueTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2Ugc3ZnUGF0aFNlZy5QQVRIU0VHX0xJTkVUT19IT1JJWk9OVEFMX0FCUzpcbiAgICAgICAgICAgICAgICAgICAgcC54ID0gc2VnbWVudC54O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIHN2Z1BhdGhTZWcuUEFUSFNFR19MSU5FVE9fVkVSVElDQUxfQUJTOlxuICAgICAgICAgICAgICAgICAgICBwLnkgPSBzZWdtZW50Lnk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2Ugc3ZnUGF0aFNlZy5QQVRIU0VHX0xJTkVUT19SRUw6XG4gICAgICAgICAgICAgICAgY2FzZSBzdmdQYXRoU2VnLlBBVEhTRUdfTU9WRVRPX1JFTDpcbiAgICAgICAgICAgICAgICBjYXNlIHN2Z1BhdGhTZWcuUEFUSFNFR19DVVJWRVRPX0NVQklDX1JFTDpcbiAgICAgICAgICAgICAgICBjYXNlIHN2Z1BhdGhTZWcuUEFUSFNFR19DVVJWRVRPX1FVQURSQVRJQ19SRUw6XG4gICAgICAgICAgICAgICAgY2FzZSBzdmdQYXRoU2VnLlBBVEhTRUdfQVJDX1JFTDpcbiAgICAgICAgICAgICAgICBjYXNlIHN2Z1BhdGhTZWcuUEFUSFNFR19DVVJWRVRPX0NVQklDX1NNT09USF9SRUw6XG4gICAgICAgICAgICAgICAgY2FzZSBzdmdQYXRoU2VnLlBBVEhTRUdfQ1VSVkVUT19RVUFEUkFUSUNfU01PT1RIX1JFTDoge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZWxTZWcgPSBzZWdtZW50O1xuICAgICAgICAgICAgICAgICAgICBwLnggKz0gcmVsU2VnLng7XG4gICAgICAgICAgICAgICAgICAgIHAueSArPSByZWxTZWcueTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2Ugc3ZnUGF0aFNlZy5QQVRIU0VHX0xJTkVUT19IT1JJWk9OVEFMX1JFTDpcbiAgICAgICAgICAgICAgICAgICAgcC54ICs9IHNlZ21lbnQueDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBzdmdQYXRoU2VnLlBBVEhTRUdfTElORVRPX1ZFUlRJQ0FMX1JFTDpcbiAgICAgICAgICAgICAgICAgICAgcC55ICs9IHNlZ21lbnQueTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBzdmdQYXRoU2VnLlBBVEhTRUdfVU5LTk9XTjpcbiAgICAgICAgICAgICAgICBjYXNlIHN2Z1BhdGhTZWcuUEFUSFNFR19DTE9TRVBBVEg6XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzLnB1c2goe1xuICAgICAgICAgICAgICAgIHg6IHAueCAqIHNjYWxlICsgb2Zmc2V0LngsXG4gICAgICAgICAgICAgICAgeTogcC55ICogc2NhbGUgKyBvZmZzZXQueSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXM7XG59XG5leHBvcnRzLnBhcnNlUGF0aHMgPSBwYXJzZVBhdGhzO1xuZnVuY3Rpb24gY2FsY0Nsb3Nlc3RQdE9uU2VnbWVudChzMSwgczIsIHBvcykge1xuICAgIGNvbnN0IHsgZHgsIGR5IH0gPSAoMCwgVXRpbHNfMS5nZXREaXN0YW5jZXMpKHBvcywgczEpO1xuICAgIGNvbnN0IHsgZHg6IGR4eCwgZHk6IGR5eSB9ID0gKDAsIFV0aWxzXzEuZ2V0RGlzdGFuY2VzKShzMiwgczEpO1xuICAgIGNvbnN0IHQgPSAoZHggKiBkeHggKyBkeSAqIGR5eSkgLyAoZHh4ICoqIDIgKyBkeXkgKiogMik7XG4gICAgbGV0IHggPSBzMS54ICsgZHh4ICogdDtcbiAgICBsZXQgeSA9IHMxLnkgKyBkeXkgKiB0O1xuICAgIGlmICh0IDwgMCkge1xuICAgICAgICB4ID0gczEueDtcbiAgICAgICAgeSA9IHMxLnk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHQgPiAxKSB7XG4gICAgICAgIHggPSBzMi54O1xuICAgICAgICB5ID0gczIueTtcbiAgICB9XG4gICAgcmV0dXJuIHsgeDogeCwgeTogeSwgaXNPblNlZ21lbnQ6IHQgPj0gMCAmJiB0IDw9IDEgfTtcbn1cbmV4cG9ydHMuY2FsY0Nsb3Nlc3RQdE9uU2VnbWVudCA9IGNhbGNDbG9zZXN0UHRPblNlZ21lbnQ7XG5mdW5jdGlvbiBzZWdtZW50Qm91bmNlKHN0YXJ0LCBzdG9wLCB2ZWxvY2l0eSkge1xuICAgIGNvbnN0IHsgZHgsIGR5IH0gPSAoMCwgVXRpbHNfMS5nZXREaXN0YW5jZXMpKHN0YXJ0LCBzdG9wKTtcbiAgICBjb25zdCB3YWxsQW5nbGUgPSBNYXRoLmF0YW4yKGR5LCBkeCk7XG4gICAgY29uc3Qgd2FsbE5vcm1hbFggPSBNYXRoLnNpbih3YWxsQW5nbGUpO1xuICAgIGNvbnN0IHdhbGxOb3JtYWxZID0gLU1hdGguY29zKHdhbGxBbmdsZSk7XG4gICAgY29uc3QgZCA9IDIgKiAodmVsb2NpdHkueCAqIHdhbGxOb3JtYWxYICsgdmVsb2NpdHkueSAqIHdhbGxOb3JtYWxZKTtcbiAgICB2ZWxvY2l0eS54IC09IGQgKiB3YWxsTm9ybWFsWDtcbiAgICB2ZWxvY2l0eS55IC09IGQgKiB3YWxsTm9ybWFsWTtcbn1cbmV4cG9ydHMuc2VnbWVudEJvdW5jZSA9IHNlZ21lbnRCb3VuY2U7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/PolygonMask/utils.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Shapes/Circle/CircleDrawer.js": +/*!****************************************************************!*\ + !*** ./node_modules/tsparticles/Shapes/Circle/CircleDrawer.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.CircleDrawer = void 0;\nclass CircleDrawer {\n getSidesCount() {\n return 12;\n }\n draw(context, particle, radius) {\n context.arc(0, 0, radius, 0, Math.PI * 2, false);\n }\n}\nexports.CircleDrawer = CircleDrawer;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL0NpcmNsZS9DaXJjbGVEcmF3ZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1NoYXBlcy9DaXJjbGUvQ2lyY2xlRHJhd2VyLmpzP2NmMmMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkNpcmNsZURyYXdlciA9IHZvaWQgMDtcbmNsYXNzIENpcmNsZURyYXdlciB7XG4gICAgZ2V0U2lkZXNDb3VudCgpIHtcbiAgICAgICAgcmV0dXJuIDEyO1xuICAgIH1cbiAgICBkcmF3KGNvbnRleHQsIHBhcnRpY2xlLCByYWRpdXMpIHtcbiAgICAgICAgY29udGV4dC5hcmMoMCwgMCwgcmFkaXVzLCAwLCBNYXRoLlBJICogMiwgZmFsc2UpO1xuICAgIH1cbn1cbmV4cG9ydHMuQ2lyY2xlRHJhd2VyID0gQ2lyY2xlRHJhd2VyO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Shapes/Circle/CircleDrawer.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Shapes/Circle/index.js": +/*!*********************************************************!*\ + !*** ./node_modules/tsparticles/Shapes/Circle/index.js ***! + \*********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadCircleShape = void 0;\nconst CircleDrawer_1 = __webpack_require__(/*! ./CircleDrawer */ \"./node_modules/tsparticles/Shapes/Circle/CircleDrawer.js\");\nasync function loadCircleShape(tsParticles) {\n await tsParticles.addShape(\"circle\", new CircleDrawer_1.CircleDrawer());\n}\nexports.loadCircleShape = loadCircleShape;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL0NpcmNsZS9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCx1QkFBdUI7QUFDdkIsdUJBQXVCLG1CQUFPLENBQUMsZ0ZBQWdCO0FBQy9DO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL0NpcmNsZS9pbmRleC5qcz81NzQyIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5sb2FkQ2lyY2xlU2hhcGUgPSB2b2lkIDA7XG5jb25zdCBDaXJjbGVEcmF3ZXJfMSA9IHJlcXVpcmUoXCIuL0NpcmNsZURyYXdlclwiKTtcbmFzeW5jIGZ1bmN0aW9uIGxvYWRDaXJjbGVTaGFwZSh0c1BhcnRpY2xlcykge1xuICAgIGF3YWl0IHRzUGFydGljbGVzLmFkZFNoYXBlKFwiY2lyY2xlXCIsIG5ldyBDaXJjbGVEcmF3ZXJfMS5DaXJjbGVEcmF3ZXIoKSk7XG59XG5leHBvcnRzLmxvYWRDaXJjbGVTaGFwZSA9IGxvYWRDaXJjbGVTaGFwZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Shapes/Circle/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Shapes/Image/ImageDrawer.js": +/*!**************************************************************!*\ + !*** ./node_modules/tsparticles/Shapes/Image/ImageDrawer.js ***! + \**************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _ImageDrawer_images;\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ImageDrawer = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Enums_1 = __webpack_require__(/*! ../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst Utils_2 = __webpack_require__(/*! ./Utils */ \"./node_modules/tsparticles/Shapes/Image/Utils.js\");\nclass ImageDrawer {\n constructor() {\n _ImageDrawer_images.set(this, void 0);\n __classPrivateFieldSet(this, _ImageDrawer_images, [], \"f\");\n }\n getSidesCount() {\n return 12;\n }\n getImages(container) {\n const containerImages = __classPrivateFieldGet(this, _ImageDrawer_images, \"f\").find((t) => t.id === container.id);\n if (!containerImages) {\n __classPrivateFieldGet(this, _ImageDrawer_images, \"f\").push({\n id: container.id,\n images: [],\n });\n return this.getImages(container);\n }\n else {\n return containerImages;\n }\n }\n addImage(container, image) {\n const containerImages = this.getImages(container);\n containerImages === null || containerImages === void 0 ? void 0 : containerImages.images.push(image);\n }\n async init(container) {\n await this.loadImagesFromParticlesOptions(container, container.actualOptions.particles);\n await this.loadImagesFromParticlesOptions(container, container.actualOptions.interactivity.modes.trail.particles);\n for (const manualParticle of container.actualOptions.manualParticles) {\n await this.loadImagesFromParticlesOptions(container, manualParticle.options);\n }\n const emitterOptions = container.actualOptions;\n if (emitterOptions.emitters) {\n if (emitterOptions.emitters instanceof Array) {\n for (const emitter of emitterOptions.emitters) {\n await this.loadImagesFromParticlesOptions(container, emitter.particles);\n }\n }\n else {\n await this.loadImagesFromParticlesOptions(container, emitterOptions.emitters.particles);\n }\n }\n const interactiveEmitters = emitterOptions.interactivity.modes.emitters;\n if (interactiveEmitters) {\n if (interactiveEmitters instanceof Array) {\n for (const emitter of interactiveEmitters) {\n await this.loadImagesFromParticlesOptions(container, emitter.particles);\n }\n }\n else {\n await this.loadImagesFromParticlesOptions(container, interactiveEmitters.particles);\n }\n }\n }\n destroy() {\n __classPrivateFieldSet(this, _ImageDrawer_images, [], \"f\");\n }\n async loadImagesFromParticlesOptions(container, options) {\n var _a, _b, _c;\n const shapeOptions = options === null || options === void 0 ? void 0 : options.shape;\n if (!(shapeOptions === null || shapeOptions === void 0 ? void 0 : shapeOptions.type) ||\n !shapeOptions.options ||\n (!(0, Utils_1.isInArray)(Enums_1.ShapeType.image, shapeOptions.type) && !(0, Utils_1.isInArray)(Enums_1.ShapeType.images, shapeOptions.type))) {\n return;\n }\n const idx = __classPrivateFieldGet(this, _ImageDrawer_images, \"f\").findIndex((t) => t.id === container.id);\n if (idx >= 0) {\n __classPrivateFieldGet(this, _ImageDrawer_images, \"f\").splice(idx, 1);\n }\n const imageOptions = (_a = shapeOptions.options[Enums_1.ShapeType.images]) !== null && _a !== void 0 ? _a : shapeOptions.options[Enums_1.ShapeType.image];\n if (imageOptions instanceof Array) {\n for (const optionsImage of imageOptions) {\n await this.loadImageShape(container, optionsImage);\n }\n }\n else {\n await this.loadImageShape(container, imageOptions);\n }\n if (options === null || options === void 0 ? void 0 : options.groups) {\n for (const groupName in options.groups) {\n const group = options.groups[groupName];\n await this.loadImagesFromParticlesOptions(container, group);\n }\n }\n if ((_c = (_b = options === null || options === void 0 ? void 0 : options.destroy) === null || _b === void 0 ? void 0 : _b.split) === null || _c === void 0 ? void 0 : _c.particles) {\n await this.loadImagesFromParticlesOptions(container, options === null || options === void 0 ? void 0 : options.destroy.split.particles);\n }\n }\n async loadImageShape(container, imageShape) {\n try {\n const imageFunc = imageShape.replaceColor ? Utils_2.downloadSvgImage : Utils_2.loadImage;\n const image = await imageFunc(imageShape.src);\n if (image) {\n this.addImage(container, image);\n }\n }\n catch (_a) {\n console.warn(`tsParticles error - ${imageShape.src} not found`);\n }\n }\n draw(context, particle, radius, opacity) {\n var _a, _b;\n if (!context) {\n return;\n }\n const image = particle.image;\n const element = (_a = image === null || image === void 0 ? void 0 : image.data) === null || _a === void 0 ? void 0 : _a.element;\n if (!element) {\n return;\n }\n const ratio = (_b = image === null || image === void 0 ? void 0 : image.ratio) !== null && _b !== void 0 ? _b : 1;\n const pos = {\n x: -radius,\n y: -radius,\n };\n if (!(image === null || image === void 0 ? void 0 : image.data.svgData) || !(image === null || image === void 0 ? void 0 : image.replaceColor)) {\n context.globalAlpha = opacity;\n }\n context.drawImage(element, pos.x, pos.y, radius * 2, (radius * 2) / ratio);\n if (!(image === null || image === void 0 ? void 0 : image.data.svgData) || !(image === null || image === void 0 ? void 0 : image.replaceColor)) {\n context.globalAlpha = 1;\n }\n }\n loadShape(particle) {\n var _a, _b, _c, _d, _e, _f, _g;\n if (particle.shape !== \"image\" && particle.shape !== \"images\") {\n return;\n }\n const images = this.getImages(particle.container).images;\n const imageData = particle.shapeData;\n const image = (_a = images.find((t) => t.source === imageData.src)) !== null && _a !== void 0 ? _a : images[0];\n const color = particle.getFillColor();\n let imageRes;\n if (!image) {\n return;\n }\n if (image.svgData !== undefined && imageData.replaceColor && color) {\n const svgColoredData = (0, Utils_2.replaceColorSvg)(image, color, (_c = (_b = particle.opacity) === null || _b === void 0 ? void 0 : _b.value) !== null && _c !== void 0 ? _c : 1);\n const svg = new Blob([svgColoredData], { type: \"image/svg+xml\" });\n const domUrl = URL || window.URL || window.webkitURL || window;\n const url = domUrl.createObjectURL(svg);\n const img = new Image();\n imageRes = {\n data: Object.assign(Object.assign({}, image), { svgData: svgColoredData }),\n ratio: imageData.width / imageData.height,\n replaceColor: (_d = imageData.replaceColor) !== null && _d !== void 0 ? _d : imageData.replace_color,\n source: imageData.src,\n };\n img.addEventListener(\"load\", () => {\n const pImage = particle.image;\n if (pImage) {\n pImage.loaded = true;\n image.element = img;\n }\n domUrl.revokeObjectURL(url);\n });\n img.addEventListener(\"error\", () => {\n domUrl.revokeObjectURL(url);\n (0, Utils_2.loadImage)(imageData.src).then((img2) => {\n const pImage = particle.image;\n if (pImage) {\n image.element = img2 === null || img2 === void 0 ? void 0 : img2.element;\n pImage.loaded = true;\n }\n });\n });\n img.src = url;\n }\n else {\n imageRes = {\n data: image,\n loaded: true,\n ratio: imageData.width / imageData.height,\n replaceColor: (_e = imageData.replaceColor) !== null && _e !== void 0 ? _e : imageData.replace_color,\n source: imageData.src,\n };\n }\n if (!imageRes.ratio) {\n imageRes.ratio = 1;\n }\n const fill = (_f = imageData.fill) !== null && _f !== void 0 ? _f : particle.fill;\n const close = (_g = imageData.close) !== null && _g !== void 0 ? _g : particle.close;\n const imageShape = {\n image: imageRes,\n fill,\n close,\n };\n particle.image = imageShape.image;\n particle.fill = imageShape.fill;\n particle.close = imageShape.close;\n }\n}\nexports.ImageDrawer = ImageDrawer;\n_ImageDrawer_images = new WeakMap();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL0ltYWdlL0ltYWdlRHJhd2VyLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELG1CQUFtQjtBQUNuQixnQkFBZ0IsbUJBQU8sQ0FBQyw4REFBYTtBQUNyQyxnQkFBZ0IsbUJBQU8sQ0FBQyw4REFBYTtBQUNyQyxnQkFBZ0IsbUJBQU8sQ0FBQyxpRUFBUztBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0RBQWdELGdCQUFnQjtBQUNoRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFEQUFxRCx1QkFBdUI7QUFDNUU7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvREFBb0QsWUFBWSx5QkFBeUI7QUFDekY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CO0FBQ25CIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9TaGFwZXMvSW1hZ2UvSW1hZ2VEcmF3ZXIuanM/OGZhZSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0ID0gKHRoaXMgJiYgdGhpcy5fX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KSB8fCBmdW5jdGlvbiAocmVjZWl2ZXIsIHN0YXRlLCB2YWx1ZSwga2luZCwgZikge1xuICAgIGlmIChraW5kID09PSBcIm1cIikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgbWV0aG9kIGlzIG5vdCB3cml0YWJsZVwiKTtcbiAgICBpZiAoa2luZCA9PT0gXCJhXCIgJiYgIWYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBzZXR0ZXJcIik7XG4gICAgaWYgKHR5cGVvZiBzdGF0ZSA9PT0gXCJmdW5jdGlvblwiID8gcmVjZWl2ZXIgIT09IHN0YXRlIHx8ICFmIDogIXN0YXRlLmhhcyhyZWNlaXZlcikpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3Qgd3JpdGUgcHJpdmF0ZSBtZW1iZXIgdG8gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdFwiKTtcbiAgICByZXR1cm4gKGtpbmQgPT09IFwiYVwiID8gZi5jYWxsKHJlY2VpdmVyLCB2YWx1ZSkgOiBmID8gZi52YWx1ZSA9IHZhbHVlIDogc3RhdGUuc2V0KHJlY2VpdmVyLCB2YWx1ZSkpLCB2YWx1ZTtcbn07XG52YXIgX19jbGFzc1ByaXZhdGVGaWVsZEdldCA9ICh0aGlzICYmIHRoaXMuX19jbGFzc1ByaXZhdGVGaWVsZEdldCkgfHwgZnVuY3Rpb24gKHJlY2VpdmVyLCBzdGF0ZSwga2luZCwgZikge1xuICAgIGlmIChraW5kID09PSBcImFcIiAmJiAhZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIGdldHRlclwiKTtcbiAgICBpZiAodHlwZW9mIHN0YXRlID09PSBcImZ1bmN0aW9uXCIgPyByZWNlaXZlciAhPT0gc3RhdGUgfHwgIWYgOiAhc3RhdGUuaGFzKHJlY2VpdmVyKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCByZWFkIHByaXZhdGUgbWVtYmVyIGZyb20gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdFwiKTtcbiAgICByZXR1cm4ga2luZCA9PT0gXCJtXCIgPyBmIDoga2luZCA9PT0gXCJhXCIgPyBmLmNhbGwocmVjZWl2ZXIpIDogZiA/IGYudmFsdWUgOiBzdGF0ZS5nZXQocmVjZWl2ZXIpO1xufTtcbnZhciBfSW1hZ2VEcmF3ZXJfaW1hZ2VzO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5JbWFnZURyYXdlciA9IHZvaWQgMDtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vVXRpbHNcIik7XG5jb25zdCBFbnVtc18xID0gcmVxdWlyZShcIi4uLy4uL0VudW1zXCIpO1xuY29uc3QgVXRpbHNfMiA9IHJlcXVpcmUoXCIuL1V0aWxzXCIpO1xuY2xhc3MgSW1hZ2VEcmF3ZXIge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBfSW1hZ2VEcmF3ZXJfaW1hZ2VzLnNldCh0aGlzLCB2b2lkIDApO1xuICAgICAgICBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KHRoaXMsIF9JbWFnZURyYXdlcl9pbWFnZXMsIFtdLCBcImZcIik7XG4gICAgfVxuICAgIGdldFNpZGVzQ291bnQoKSB7XG4gICAgICAgIHJldHVybiAxMjtcbiAgICB9XG4gICAgZ2V0SW1hZ2VzKGNvbnRhaW5lcikge1xuICAgICAgICBjb25zdCBjb250YWluZXJJbWFnZXMgPSBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KHRoaXMsIF9JbWFnZURyYXdlcl9pbWFnZXMsIFwiZlwiKS5maW5kKCh0KSA9PiB0LmlkID09PSBjb250YWluZXIuaWQpO1xuICAgICAgICBpZiAoIWNvbnRhaW5lckltYWdlcykge1xuICAgICAgICAgICAgX19jbGFzc1ByaXZhdGVGaWVsZEdldCh0aGlzLCBfSW1hZ2VEcmF3ZXJfaW1hZ2VzLCBcImZcIikucHVzaCh7XG4gICAgICAgICAgICAgICAgaWQ6IGNvbnRhaW5lci5pZCxcbiAgICAgICAgICAgICAgICBpbWFnZXM6IFtdLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRJbWFnZXMoY29udGFpbmVyKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBjb250YWluZXJJbWFnZXM7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYWRkSW1hZ2UoY29udGFpbmVyLCBpbWFnZSkge1xuICAgICAgICBjb25zdCBjb250YWluZXJJbWFnZXMgPSB0aGlzLmdldEltYWdlcyhjb250YWluZXIpO1xuICAgICAgICBjb250YWluZXJJbWFnZXMgPT09IG51bGwgfHwgY29udGFpbmVySW1hZ2VzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjb250YWluZXJJbWFnZXMuaW1hZ2VzLnB1c2goaW1hZ2UpO1xuICAgIH1cbiAgICBhc3luYyBpbml0KGNvbnRhaW5lcikge1xuICAgICAgICBhd2FpdCB0aGlzLmxvYWRJbWFnZXNGcm9tUGFydGljbGVzT3B0aW9ucyhjb250YWluZXIsIGNvbnRhaW5lci5hY3R1YWxPcHRpb25zLnBhcnRpY2xlcyk7XG4gICAgICAgIGF3YWl0IHRoaXMubG9hZEltYWdlc0Zyb21QYXJ0aWNsZXNPcHRpb25zKGNvbnRhaW5lciwgY29udGFpbmVyLmFjdHVhbE9wdGlvbnMuaW50ZXJhY3Rpdml0eS5tb2Rlcy50cmFpbC5wYXJ0aWNsZXMpO1xuICAgICAgICBmb3IgKGNvbnN0IG1hbnVhbFBhcnRpY2xlIG9mIGNvbnRhaW5lci5hY3R1YWxPcHRpb25zLm1hbnVhbFBhcnRpY2xlcykge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5sb2FkSW1hZ2VzRnJvbVBhcnRpY2xlc09wdGlvbnMoY29udGFpbmVyLCBtYW51YWxQYXJ0aWNsZS5vcHRpb25zKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlbWl0dGVyT3B0aW9ucyA9IGNvbnRhaW5lci5hY3R1YWxPcHRpb25zO1xuICAgICAgICBpZiAoZW1pdHRlck9wdGlvbnMuZW1pdHRlcnMpIHtcbiAgICAgICAgICAgIGlmIChlbWl0dGVyT3B0aW9ucy5lbWl0dGVycyBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBlbWl0dGVyIG9mIGVtaXR0ZXJPcHRpb25zLmVtaXR0ZXJzKSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMubG9hZEltYWdlc0Zyb21QYXJ0aWNsZXNPcHRpb25zKGNvbnRhaW5lciwgZW1pdHRlci5wYXJ0aWNsZXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMubG9hZEltYWdlc0Zyb21QYXJ0aWNsZXNPcHRpb25zKGNvbnRhaW5lciwgZW1pdHRlck9wdGlvbnMuZW1pdHRlcnMucGFydGljbGVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpbnRlcmFjdGl2ZUVtaXR0ZXJzID0gZW1pdHRlck9wdGlvbnMuaW50ZXJhY3Rpdml0eS5tb2Rlcy5lbWl0dGVycztcbiAgICAgICAgaWYgKGludGVyYWN0aXZlRW1pdHRlcnMpIHtcbiAgICAgICAgICAgIGlmIChpbnRlcmFjdGl2ZUVtaXR0ZXJzIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGVtaXR0ZXIgb2YgaW50ZXJhY3RpdmVFbWl0dGVycykge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmxvYWRJbWFnZXNGcm9tUGFydGljbGVzT3B0aW9ucyhjb250YWluZXIsIGVtaXR0ZXIucGFydGljbGVzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmxvYWRJbWFnZXNGcm9tUGFydGljbGVzT3B0aW9ucyhjb250YWluZXIsIGludGVyYWN0aXZlRW1pdHRlcnMucGFydGljbGVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBkZXN0cm95KCkge1xuICAgICAgICBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KHRoaXMsIF9JbWFnZURyYXdlcl9pbWFnZXMsIFtdLCBcImZcIik7XG4gICAgfVxuICAgIGFzeW5jIGxvYWRJbWFnZXNGcm9tUGFydGljbGVzT3B0aW9ucyhjb250YWluZXIsIG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgIGNvbnN0IHNoYXBlT3B0aW9ucyA9IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5zaGFwZTtcbiAgICAgICAgaWYgKCEoc2hhcGVPcHRpb25zID09PSBudWxsIHx8IHNoYXBlT3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2hhcGVPcHRpb25zLnR5cGUpIHx8XG4gICAgICAgICAgICAhc2hhcGVPcHRpb25zLm9wdGlvbnMgfHxcbiAgICAgICAgICAgICghKDAsIFV0aWxzXzEuaXNJbkFycmF5KShFbnVtc18xLlNoYXBlVHlwZS5pbWFnZSwgc2hhcGVPcHRpb25zLnR5cGUpICYmICEoMCwgVXRpbHNfMS5pc0luQXJyYXkpKEVudW1zXzEuU2hhcGVUeXBlLmltYWdlcywgc2hhcGVPcHRpb25zLnR5cGUpKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlkeCA9IF9fY2xhc3NQcml2YXRlRmllbGRHZXQodGhpcywgX0ltYWdlRHJhd2VyX2ltYWdlcywgXCJmXCIpLmZpbmRJbmRleCgodCkgPT4gdC5pZCA9PT0gY29udGFpbmVyLmlkKTtcbiAgICAgICAgaWYgKGlkeCA+PSAwKSB7XG4gICAgICAgICAgICBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KHRoaXMsIF9JbWFnZURyYXdlcl9pbWFnZXMsIFwiZlwiKS5zcGxpY2UoaWR4LCAxKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpbWFnZU9wdGlvbnMgPSAoX2EgPSBzaGFwZU9wdGlvbnMub3B0aW9uc1tFbnVtc18xLlNoYXBlVHlwZS5pbWFnZXNdKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBzaGFwZU9wdGlvbnMub3B0aW9uc1tFbnVtc18xLlNoYXBlVHlwZS5pbWFnZV07XG4gICAgICAgIGlmIChpbWFnZU9wdGlvbnMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBvcHRpb25zSW1hZ2Ugb2YgaW1hZ2VPcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5sb2FkSW1hZ2VTaGFwZShjb250YWluZXIsIG9wdGlvbnNJbWFnZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmxvYWRJbWFnZVNoYXBlKGNvbnRhaW5lciwgaW1hZ2VPcHRpb25zKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmdyb3Vwcykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBncm91cE5hbWUgaW4gb3B0aW9ucy5ncm91cHMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBncm91cCA9IG9wdGlvbnMuZ3JvdXBzW2dyb3VwTmFtZV07XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5sb2FkSW1hZ2VzRnJvbVBhcnRpY2xlc09wdGlvbnMoY29udGFpbmVyLCBncm91cCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKChfYyA9IChfYiA9IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5kZXN0cm95KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Iuc3BsaXQpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5wYXJ0aWNsZXMpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMubG9hZEltYWdlc0Zyb21QYXJ0aWNsZXNPcHRpb25zKGNvbnRhaW5lciwgb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmRlc3Ryb3kuc3BsaXQucGFydGljbGVzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhc3luYyBsb2FkSW1hZ2VTaGFwZShjb250YWluZXIsIGltYWdlU2hhcGUpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGltYWdlRnVuYyA9IGltYWdlU2hhcGUucmVwbGFjZUNvbG9yID8gVXRpbHNfMi5kb3dubG9hZFN2Z0ltYWdlIDogVXRpbHNfMi5sb2FkSW1hZ2U7XG4gICAgICAgICAgICBjb25zdCBpbWFnZSA9IGF3YWl0IGltYWdlRnVuYyhpbWFnZVNoYXBlLnNyYyk7XG4gICAgICAgICAgICBpZiAoaW1hZ2UpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZEltYWdlKGNvbnRhaW5lciwgaW1hZ2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChfYSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGB0c1BhcnRpY2xlcyBlcnJvciAtICR7aW1hZ2VTaGFwZS5zcmN9IG5vdCBmb3VuZGApO1xuICAgICAgICB9XG4gICAgfVxuICAgIGRyYXcoY29udGV4dCwgcGFydGljbGUsIHJhZGl1cywgb3BhY2l0eSkge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpbWFnZSA9IHBhcnRpY2xlLmltYWdlO1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gKF9hID0gaW1hZ2UgPT09IG51bGwgfHwgaW1hZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGltYWdlLmRhdGEpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5lbGVtZW50O1xuICAgICAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByYXRpbyA9IChfYiA9IGltYWdlID09PSBudWxsIHx8IGltYWdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBpbWFnZS5yYXRpbykgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogMTtcbiAgICAgICAgY29uc3QgcG9zID0ge1xuICAgICAgICAgICAgeDogLXJhZGl1cyxcbiAgICAgICAgICAgIHk6IC1yYWRpdXMsXG4gICAgICAgIH07XG4gICAgICAgIGlmICghKGltYWdlID09PSBudWxsIHx8IGltYWdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBpbWFnZS5kYXRhLnN2Z0RhdGEpIHx8ICEoaW1hZ2UgPT09IG51bGwgfHwgaW1hZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGltYWdlLnJlcGxhY2VDb2xvcikpIHtcbiAgICAgICAgICAgIGNvbnRleHQuZ2xvYmFsQWxwaGEgPSBvcGFjaXR5O1xuICAgICAgICB9XG4gICAgICAgIGNvbnRleHQuZHJhd0ltYWdlKGVsZW1lbnQsIHBvcy54LCBwb3MueSwgcmFkaXVzICogMiwgKHJhZGl1cyAqIDIpIC8gcmF0aW8pO1xuICAgICAgICBpZiAoIShpbWFnZSA9PT0gbnVsbCB8fCBpbWFnZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogaW1hZ2UuZGF0YS5zdmdEYXRhKSB8fCAhKGltYWdlID09PSBudWxsIHx8IGltYWdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBpbWFnZS5yZXBsYWNlQ29sb3IpKSB7XG4gICAgICAgICAgICBjb250ZXh0Lmdsb2JhbEFscGhhID0gMTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBsb2FkU2hhcGUocGFydGljbGUpIHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kLCBfZSwgX2YsIF9nO1xuICAgICAgICBpZiAocGFydGljbGUuc2hhcGUgIT09IFwiaW1hZ2VcIiAmJiBwYXJ0aWNsZS5zaGFwZSAhPT0gXCJpbWFnZXNcIikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGltYWdlcyA9IHRoaXMuZ2V0SW1hZ2VzKHBhcnRpY2xlLmNvbnRhaW5lcikuaW1hZ2VzO1xuICAgICAgICBjb25zdCBpbWFnZURhdGEgPSBwYXJ0aWNsZS5zaGFwZURhdGE7XG4gICAgICAgIGNvbnN0IGltYWdlID0gKF9hID0gaW1hZ2VzLmZpbmQoKHQpID0+IHQuc291cmNlID09PSBpbWFnZURhdGEuc3JjKSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogaW1hZ2VzWzBdO1xuICAgICAgICBjb25zdCBjb2xvciA9IHBhcnRpY2xlLmdldEZpbGxDb2xvcigpO1xuICAgICAgICBsZXQgaW1hZ2VSZXM7XG4gICAgICAgIGlmICghaW1hZ2UpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW1hZ2Uuc3ZnRGF0YSAhPT0gdW5kZWZpbmVkICYmIGltYWdlRGF0YS5yZXBsYWNlQ29sb3IgJiYgY29sb3IpIHtcbiAgICAgICAgICAgIGNvbnN0IHN2Z0NvbG9yZWREYXRhID0gKDAsIFV0aWxzXzIucmVwbGFjZUNvbG9yU3ZnKShpbWFnZSwgY29sb3IsIChfYyA9IChfYiA9IHBhcnRpY2xlLm9wYWNpdHkpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi52YWx1ZSkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogMSk7XG4gICAgICAgICAgICBjb25zdCBzdmcgPSBuZXcgQmxvYihbc3ZnQ29sb3JlZERhdGFdLCB7IHR5cGU6IFwiaW1hZ2Uvc3ZnK3htbFwiIH0pO1xuICAgICAgICAgICAgY29uc3QgZG9tVXJsID0gVVJMIHx8IHdpbmRvdy5VUkwgfHwgd2luZG93LndlYmtpdFVSTCB8fCB3aW5kb3c7XG4gICAgICAgICAgICBjb25zdCB1cmwgPSBkb21VcmwuY3JlYXRlT2JqZWN0VVJMKHN2Zyk7XG4gICAgICAgICAgICBjb25zdCBpbWcgPSBuZXcgSW1hZ2UoKTtcbiAgICAgICAgICAgIGltYWdlUmVzID0ge1xuICAgICAgICAgICAgICAgIGRhdGE6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgaW1hZ2UpLCB7IHN2Z0RhdGE6IHN2Z0NvbG9yZWREYXRhIH0pLFxuICAgICAgICAgICAgICAgIHJhdGlvOiBpbWFnZURhdGEud2lkdGggLyBpbWFnZURhdGEuaGVpZ2h0LFxuICAgICAgICAgICAgICAgIHJlcGxhY2VDb2xvcjogKF9kID0gaW1hZ2VEYXRhLnJlcGxhY2VDb2xvcikgIT09IG51bGwgJiYgX2QgIT09IHZvaWQgMCA/IF9kIDogaW1hZ2VEYXRhLnJlcGxhY2VfY29sb3IsXG4gICAgICAgICAgICAgICAgc291cmNlOiBpbWFnZURhdGEuc3JjLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGltZy5hZGRFdmVudExpc3RlbmVyKFwibG9hZFwiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcEltYWdlID0gcGFydGljbGUuaW1hZ2U7XG4gICAgICAgICAgICAgICAgaWYgKHBJbWFnZSkge1xuICAgICAgICAgICAgICAgICAgICBwSW1hZ2UubG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2UuZWxlbWVudCA9IGltZztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZG9tVXJsLnJldm9rZU9iamVjdFVSTCh1cmwpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpbWcuYWRkRXZlbnRMaXN0ZW5lcihcImVycm9yXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICBkb21VcmwucmV2b2tlT2JqZWN0VVJMKHVybCk7XG4gICAgICAgICAgICAgICAgKDAsIFV0aWxzXzIubG9hZEltYWdlKShpbWFnZURhdGEuc3JjKS50aGVuKChpbWcyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBJbWFnZSA9IHBhcnRpY2xlLmltYWdlO1xuICAgICAgICAgICAgICAgICAgICBpZiAocEltYWdlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbWFnZS5lbGVtZW50ID0gaW1nMiA9PT0gbnVsbCB8fCBpbWcyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBpbWcyLmVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBwSW1hZ2UubG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpbWcuc3JjID0gdXJsO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaW1hZ2VSZXMgPSB7XG4gICAgICAgICAgICAgICAgZGF0YTogaW1hZ2UsXG4gICAgICAgICAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHJhdGlvOiBpbWFnZURhdGEud2lkdGggLyBpbWFnZURhdGEuaGVpZ2h0LFxuICAgICAgICAgICAgICAgIHJlcGxhY2VDb2xvcjogKF9lID0gaW1hZ2VEYXRhLnJlcGxhY2VDb2xvcikgIT09IG51bGwgJiYgX2UgIT09IHZvaWQgMCA/IF9lIDogaW1hZ2VEYXRhLnJlcGxhY2VfY29sb3IsXG4gICAgICAgICAgICAgICAgc291cmNlOiBpbWFnZURhdGEuc3JjLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWltYWdlUmVzLnJhdGlvKSB7XG4gICAgICAgICAgICBpbWFnZVJlcy5yYXRpbyA9IDE7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZmlsbCA9IChfZiA9IGltYWdlRGF0YS5maWxsKSAhPT0gbnVsbCAmJiBfZiAhPT0gdm9pZCAwID8gX2YgOiBwYXJ0aWNsZS5maWxsO1xuICAgICAgICBjb25zdCBjbG9zZSA9IChfZyA9IGltYWdlRGF0YS5jbG9zZSkgIT09IG51bGwgJiYgX2cgIT09IHZvaWQgMCA/IF9nIDogcGFydGljbGUuY2xvc2U7XG4gICAgICAgIGNvbnN0IGltYWdlU2hhcGUgPSB7XG4gICAgICAgICAgICBpbWFnZTogaW1hZ2VSZXMsXG4gICAgICAgICAgICBmaWxsLFxuICAgICAgICAgICAgY2xvc2UsXG4gICAgICAgIH07XG4gICAgICAgIHBhcnRpY2xlLmltYWdlID0gaW1hZ2VTaGFwZS5pbWFnZTtcbiAgICAgICAgcGFydGljbGUuZmlsbCA9IGltYWdlU2hhcGUuZmlsbDtcbiAgICAgICAgcGFydGljbGUuY2xvc2UgPSBpbWFnZVNoYXBlLmNsb3NlO1xuICAgIH1cbn1cbmV4cG9ydHMuSW1hZ2VEcmF3ZXIgPSBJbWFnZURyYXdlcjtcbl9JbWFnZURyYXdlcl9pbWFnZXMgPSBuZXcgV2Vha01hcCgpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Shapes/Image/ImageDrawer.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Shapes/Image/Utils.js": +/*!********************************************************!*\ + !*** ./node_modules/tsparticles/Shapes/Image/Utils.js ***! + \********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.replaceColorSvg = exports.downloadSvgImage = exports.loadImage = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nfunction loadImage(source) {\n return new Promise((resolve, reject) => {\n if (!source) {\n reject(\"Error tsParticles - No image.src\");\n return;\n }\n const image = {\n source: source,\n type: source.substr(source.length - 3),\n };\n const img = new Image();\n img.addEventListener(\"load\", () => {\n image.element = img;\n resolve(image);\n });\n img.addEventListener(\"error\", () => {\n reject(`Error tsParticles - loading image: ${source}`);\n });\n img.src = source;\n });\n}\nexports.loadImage = loadImage;\nasync function downloadSvgImage(source) {\n if (!source) {\n throw new Error(\"Error tsParticles - No image.src\");\n }\n const image = {\n source: source,\n type: source.substr(source.length - 3),\n };\n if (image.type !== \"svg\") {\n return loadImage(source);\n }\n const response = await fetch(image.source);\n if (!response.ok) {\n throw new Error(\"Error tsParticles - Image not found\");\n }\n image.svgData = await response.text();\n return image;\n}\nexports.downloadSvgImage = downloadSvgImage;\nfunction replaceColorSvg(imageShape, color, opacity) {\n const { svgData } = imageShape;\n if (!svgData) {\n return \"\";\n }\n if (svgData.includes(\"fill\")) {\n const currentColor = /(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\\((-?\\d+%?[,\\s]+){2,3}\\s*[\\d.]+%?\\))|currentcolor/gi;\n return svgData.replace(currentColor, () => (0, Utils_1.getStyleFromHsl)(color, opacity));\n }\n const preFillIndex = svgData.indexOf(\">\");\n return `${svgData.substring(0, preFillIndex)} fill=\"${(0, Utils_1.getStyleFromHsl)(color, opacity)}\"${svgData.substring(preFillIndex)}`;\n}\nexports.replaceColorSvg = replaceColorSvg;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL0ltYWdlL1V0aWxzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHVCQUF1QixHQUFHLHdCQUF3QixHQUFHLGlCQUFpQjtBQUN0RSxnQkFBZ0IsbUJBQU8sQ0FBQyw4REFBYTtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EseURBQXlELE9BQU87QUFDaEUsU0FBUztBQUNUO0FBQ0EsS0FBSztBQUNMO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBLFlBQVksVUFBVTtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRDQUE0QyxFQUFFLEVBQUUsSUFBSSxZQUFZLEVBQUUsK0JBQStCLElBQUk7QUFDckc7QUFDQTtBQUNBO0FBQ0EsY0FBYyxvQ0FBb0MsUUFBUSw2Q0FBNkMsR0FBRyxnQ0FBZ0M7QUFDMUk7QUFDQSx1QkFBdUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1NoYXBlcy9JbWFnZS9VdGlscy5qcz8yN2E0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5yZXBsYWNlQ29sb3JTdmcgPSBleHBvcnRzLmRvd25sb2FkU3ZnSW1hZ2UgPSBleHBvcnRzLmxvYWRJbWFnZSA9IHZvaWQgMDtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vVXRpbHNcIik7XG5mdW5jdGlvbiBsb2FkSW1hZ2Uoc291cmNlKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgaWYgKCFzb3VyY2UpIHtcbiAgICAgICAgICAgIHJlamVjdChcIkVycm9yIHRzUGFydGljbGVzIC0gTm8gaW1hZ2Uuc3JjXCIpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGltYWdlID0ge1xuICAgICAgICAgICAgc291cmNlOiBzb3VyY2UsXG4gICAgICAgICAgICB0eXBlOiBzb3VyY2Uuc3Vic3RyKHNvdXJjZS5sZW5ndGggLSAzKSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgaW1nID0gbmV3IEltYWdlKCk7XG4gICAgICAgIGltZy5hZGRFdmVudExpc3RlbmVyKFwibG9hZFwiLCAoKSA9PiB7XG4gICAgICAgICAgICBpbWFnZS5lbGVtZW50ID0gaW1nO1xuICAgICAgICAgICAgcmVzb2x2ZShpbWFnZSk7XG4gICAgICAgIH0pO1xuICAgICAgICBpbWcuYWRkRXZlbnRMaXN0ZW5lcihcImVycm9yXCIsICgpID0+IHtcbiAgICAgICAgICAgIHJlamVjdChgRXJyb3IgdHNQYXJ0aWNsZXMgLSBsb2FkaW5nIGltYWdlOiAke3NvdXJjZX1gKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGltZy5zcmMgPSBzb3VyY2U7XG4gICAgfSk7XG59XG5leHBvcnRzLmxvYWRJbWFnZSA9IGxvYWRJbWFnZTtcbmFzeW5jIGZ1bmN0aW9uIGRvd25sb2FkU3ZnSW1hZ2Uoc291cmNlKSB7XG4gICAgaWYgKCFzb3VyY2UpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXJyb3IgdHNQYXJ0aWNsZXMgLSBObyBpbWFnZS5zcmNcIik7XG4gICAgfVxuICAgIGNvbnN0IGltYWdlID0ge1xuICAgICAgICBzb3VyY2U6IHNvdXJjZSxcbiAgICAgICAgdHlwZTogc291cmNlLnN1YnN0cihzb3VyY2UubGVuZ3RoIC0gMyksXG4gICAgfTtcbiAgICBpZiAoaW1hZ2UudHlwZSAhPT0gXCJzdmdcIikge1xuICAgICAgICByZXR1cm4gbG9hZEltYWdlKHNvdXJjZSk7XG4gICAgfVxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goaW1hZ2Uuc291cmNlKTtcbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkVycm9yIHRzUGFydGljbGVzIC0gSW1hZ2Ugbm90IGZvdW5kXCIpO1xuICAgIH1cbiAgICBpbWFnZS5zdmdEYXRhID0gYXdhaXQgcmVzcG9uc2UudGV4dCgpO1xuICAgIHJldHVybiBpbWFnZTtcbn1cbmV4cG9ydHMuZG93bmxvYWRTdmdJbWFnZSA9IGRvd25sb2FkU3ZnSW1hZ2U7XG5mdW5jdGlvbiByZXBsYWNlQ29sb3JTdmcoaW1hZ2VTaGFwZSwgY29sb3IsIG9wYWNpdHkpIHtcbiAgICBjb25zdCB7IHN2Z0RhdGEgfSA9IGltYWdlU2hhcGU7XG4gICAgaWYgKCFzdmdEYXRhKSB7XG4gICAgICAgIHJldHVybiBcIlwiO1xuICAgIH1cbiAgICBpZiAoc3ZnRGF0YS5pbmNsdWRlcyhcImZpbGxcIikpIHtcbiAgICAgICAgY29uc3QgY3VycmVudENvbG9yID0gLygjKD86WzAtOWEtZl17Mn0pezIsNH18KCNbMC05YS1mXXszfSl8KHJnYnxoc2wpYT9cXCgoLT9cXGQrJT9bLFxcc10rKXsyLDN9XFxzKltcXGQuXSslP1xcKSl8Y3VycmVudGNvbG9yL2dpO1xuICAgICAgICByZXR1cm4gc3ZnRGF0YS5yZXBsYWNlKGN1cnJlbnRDb2xvciwgKCkgPT4gKDAsIFV0aWxzXzEuZ2V0U3R5bGVGcm9tSHNsKShjb2xvciwgb3BhY2l0eSkpO1xuICAgIH1cbiAgICBjb25zdCBwcmVGaWxsSW5kZXggPSBzdmdEYXRhLmluZGV4T2YoXCI+XCIpO1xuICAgIHJldHVybiBgJHtzdmdEYXRhLnN1YnN0cmluZygwLCBwcmVGaWxsSW5kZXgpfSBmaWxsPVwiJHsoMCwgVXRpbHNfMS5nZXRTdHlsZUZyb21Ic2wpKGNvbG9yLCBvcGFjaXR5KX1cIiR7c3ZnRGF0YS5zdWJzdHJpbmcocHJlRmlsbEluZGV4KX1gO1xufVxuZXhwb3J0cy5yZXBsYWNlQ29sb3JTdmcgPSByZXBsYWNlQ29sb3JTdmc7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Shapes/Image/Utils.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Shapes/Image/index.js": +/*!********************************************************!*\ + !*** ./node_modules/tsparticles/Shapes/Image/index.js ***! + \********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadImageShape = void 0;\nconst ImageDrawer_1 = __webpack_require__(/*! ./ImageDrawer */ \"./node_modules/tsparticles/Shapes/Image/ImageDrawer.js\");\nasync function loadImageShape(tsParticles) {\n const imageDrawer = new ImageDrawer_1.ImageDrawer();\n await tsParticles.addShape(\"image\", imageDrawer);\n await tsParticles.addShape(\"images\", imageDrawer);\n}\nexports.loadImageShape = loadImageShape;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL0ltYWdlL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHNCQUFzQjtBQUN0QixzQkFBc0IsbUJBQU8sQ0FBQyw2RUFBZTtBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9TaGFwZXMvSW1hZ2UvaW5kZXguanM/MzZlYyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMubG9hZEltYWdlU2hhcGUgPSB2b2lkIDA7XG5jb25zdCBJbWFnZURyYXdlcl8xID0gcmVxdWlyZShcIi4vSW1hZ2VEcmF3ZXJcIik7XG5hc3luYyBmdW5jdGlvbiBsb2FkSW1hZ2VTaGFwZSh0c1BhcnRpY2xlcykge1xuICAgIGNvbnN0IGltYWdlRHJhd2VyID0gbmV3IEltYWdlRHJhd2VyXzEuSW1hZ2VEcmF3ZXIoKTtcbiAgICBhd2FpdCB0c1BhcnRpY2xlcy5hZGRTaGFwZShcImltYWdlXCIsIGltYWdlRHJhd2VyKTtcbiAgICBhd2FpdCB0c1BhcnRpY2xlcy5hZGRTaGFwZShcImltYWdlc1wiLCBpbWFnZURyYXdlcik7XG59XG5leHBvcnRzLmxvYWRJbWFnZVNoYXBlID0gbG9hZEltYWdlU2hhcGU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Shapes/Image/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Shapes/Line/LineDrawer.js": +/*!************************************************************!*\ + !*** ./node_modules/tsparticles/Shapes/Line/LineDrawer.js ***! + \************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.LineDrawer = void 0;\nclass LineDrawer {\n getSidesCount() {\n return 1;\n }\n draw(context, particle, radius) {\n context.moveTo(-radius / 2, 0);\n context.lineTo(radius / 2, 0);\n }\n}\nexports.LineDrawer = LineDrawer;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL0xpbmUvTGluZURyYXdlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9TaGFwZXMvTGluZS9MaW5lRHJhd2VyLmpzP2RmZmIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkxpbmVEcmF3ZXIgPSB2b2lkIDA7XG5jbGFzcyBMaW5lRHJhd2VyIHtcbiAgICBnZXRTaWRlc0NvdW50KCkge1xuICAgICAgICByZXR1cm4gMTtcbiAgICB9XG4gICAgZHJhdyhjb250ZXh0LCBwYXJ0aWNsZSwgcmFkaXVzKSB7XG4gICAgICAgIGNvbnRleHQubW92ZVRvKC1yYWRpdXMgLyAyLCAwKTtcbiAgICAgICAgY29udGV4dC5saW5lVG8ocmFkaXVzIC8gMiwgMCk7XG4gICAgfVxufVxuZXhwb3J0cy5MaW5lRHJhd2VyID0gTGluZURyYXdlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Shapes/Line/LineDrawer.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Shapes/Line/index.js": +/*!*******************************************************!*\ + !*** ./node_modules/tsparticles/Shapes/Line/index.js ***! + \*******************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadLineShape = void 0;\nconst LineDrawer_1 = __webpack_require__(/*! ./LineDrawer */ \"./node_modules/tsparticles/Shapes/Line/LineDrawer.js\");\nasync function loadLineShape(tsParticles) {\n await tsParticles.addShape(\"line\", new LineDrawer_1.LineDrawer());\n}\nexports.loadLineShape = loadLineShape;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL0xpbmUvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QscUJBQXFCO0FBQ3JCLHFCQUFxQixtQkFBTyxDQUFDLDBFQUFjO0FBQzNDO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL0xpbmUvaW5kZXguanM/OGMwZiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMubG9hZExpbmVTaGFwZSA9IHZvaWQgMDtcbmNvbnN0IExpbmVEcmF3ZXJfMSA9IHJlcXVpcmUoXCIuL0xpbmVEcmF3ZXJcIik7XG5hc3luYyBmdW5jdGlvbiBsb2FkTGluZVNoYXBlKHRzUGFydGljbGVzKSB7XG4gICAgYXdhaXQgdHNQYXJ0aWNsZXMuYWRkU2hhcGUoXCJsaW5lXCIsIG5ldyBMaW5lRHJhd2VyXzEuTGluZURyYXdlcigpKTtcbn1cbmV4cG9ydHMubG9hZExpbmVTaGFwZSA9IGxvYWRMaW5lU2hhcGU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Shapes/Line/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Shapes/Polygon/PolygonDrawer.js": +/*!******************************************************************!*\ + !*** ./node_modules/tsparticles/Shapes/Polygon/PolygonDrawer.js ***! + \******************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.PolygonDrawer = void 0;\nconst PolygonDrawerBase_1 = __webpack_require__(/*! ./PolygonDrawerBase */ \"./node_modules/tsparticles/Shapes/Polygon/PolygonDrawerBase.js\");\nclass PolygonDrawer extends PolygonDrawerBase_1.PolygonDrawerBase {\n getSidesData(particle, radius) {\n var _a, _b;\n const polygon = particle.shapeData;\n const sides = (_b = (_a = polygon === null || polygon === void 0 ? void 0 : polygon.sides) !== null && _a !== void 0 ? _a : polygon === null || polygon === void 0 ? void 0 : polygon.nb_sides) !== null && _b !== void 0 ? _b : 5;\n return {\n count: {\n denominator: 1,\n numerator: sides,\n },\n length: (radius * 2.66) / (sides / 3),\n };\n }\n getCenter(particle, radius) {\n const sides = this.getSidesCount(particle);\n return {\n x: -radius / (sides / 3.5),\n y: -radius / (2.66 / 3.5),\n };\n }\n}\nexports.PolygonDrawer = PolygonDrawer;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL1BvbHlnb24vUG9seWdvbkRyYXdlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxxQkFBcUI7QUFDckIsNEJBQTRCLG1CQUFPLENBQUMsMkZBQXFCO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9TaGFwZXMvUG9seWdvbi9Qb2x5Z29uRHJhd2VyLmpzP2JmMjEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlBvbHlnb25EcmF3ZXIgPSB2b2lkIDA7XG5jb25zdCBQb2x5Z29uRHJhd2VyQmFzZV8xID0gcmVxdWlyZShcIi4vUG9seWdvbkRyYXdlckJhc2VcIik7XG5jbGFzcyBQb2x5Z29uRHJhd2VyIGV4dGVuZHMgUG9seWdvbkRyYXdlckJhc2VfMS5Qb2x5Z29uRHJhd2VyQmFzZSB7XG4gICAgZ2V0U2lkZXNEYXRhKHBhcnRpY2xlLCByYWRpdXMpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgY29uc3QgcG9seWdvbiA9IHBhcnRpY2xlLnNoYXBlRGF0YTtcbiAgICAgICAgY29uc3Qgc2lkZXMgPSAoX2IgPSAoX2EgPSBwb2x5Z29uID09PSBudWxsIHx8IHBvbHlnb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBvbHlnb24uc2lkZXMpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IHBvbHlnb24gPT09IG51bGwgfHwgcG9seWdvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcG9seWdvbi5uYl9zaWRlcykgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogNTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvdW50OiB7XG4gICAgICAgICAgICAgICAgZGVub21pbmF0b3I6IDEsXG4gICAgICAgICAgICAgICAgbnVtZXJhdG9yOiBzaWRlcyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsZW5ndGg6IChyYWRpdXMgKiAyLjY2KSAvIChzaWRlcyAvIDMpLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBnZXRDZW50ZXIocGFydGljbGUsIHJhZGl1cykge1xuICAgICAgICBjb25zdCBzaWRlcyA9IHRoaXMuZ2V0U2lkZXNDb3VudChwYXJ0aWNsZSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB4OiAtcmFkaXVzIC8gKHNpZGVzIC8gMy41KSxcbiAgICAgICAgICAgIHk6IC1yYWRpdXMgLyAoMi42NiAvIDMuNSksXG4gICAgICAgIH07XG4gICAgfVxufVxuZXhwb3J0cy5Qb2x5Z29uRHJhd2VyID0gUG9seWdvbkRyYXdlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Shapes/Polygon/PolygonDrawer.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Shapes/Polygon/PolygonDrawerBase.js": +/*!**********************************************************************!*\ + !*** ./node_modules/tsparticles/Shapes/Polygon/PolygonDrawerBase.js ***! + \**********************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.PolygonDrawerBase = void 0;\nclass PolygonDrawerBase {\n getSidesCount(particle) {\n var _a, _b;\n const polygon = particle.shapeData;\n return (_b = (_a = polygon === null || polygon === void 0 ? void 0 : polygon.sides) !== null && _a !== void 0 ? _a : polygon === null || polygon === void 0 ? void 0 : polygon.nb_sides) !== null && _b !== void 0 ? _b : 5;\n }\n draw(context, particle, radius) {\n const start = this.getCenter(particle, radius);\n const side = this.getSidesData(particle, radius);\n const sideCount = side.count.numerator * side.count.denominator;\n const decimalSides = side.count.numerator / side.count.denominator;\n const interiorAngleDegrees = (180 * (decimalSides - 2)) / decimalSides;\n const interiorAngle = Math.PI - (Math.PI * interiorAngleDegrees) / 180;\n if (!context) {\n return;\n }\n context.beginPath();\n context.translate(start.x, start.y);\n context.moveTo(0, 0);\n for (let i = 0; i < sideCount; i++) {\n context.lineTo(side.length, 0);\n context.translate(side.length, 0);\n context.rotate(interiorAngle);\n }\n }\n}\nexports.PolygonDrawerBase = PolygonDrawerBase;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL1BvbHlnb24vUG9seWdvbkRyYXdlckJhc2UuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGVBQWU7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9TaGFwZXMvUG9seWdvbi9Qb2x5Z29uRHJhd2VyQmFzZS5qcz9mY2UxIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Qb2x5Z29uRHJhd2VyQmFzZSA9IHZvaWQgMDtcbmNsYXNzIFBvbHlnb25EcmF3ZXJCYXNlIHtcbiAgICBnZXRTaWRlc0NvdW50KHBhcnRpY2xlKSB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGNvbnN0IHBvbHlnb24gPSBwYXJ0aWNsZS5zaGFwZURhdGE7XG4gICAgICAgIHJldHVybiAoX2IgPSAoX2EgPSBwb2x5Z29uID09PSBudWxsIHx8IHBvbHlnb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBvbHlnb24uc2lkZXMpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IHBvbHlnb24gPT09IG51bGwgfHwgcG9seWdvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcG9seWdvbi5uYl9zaWRlcykgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogNTtcbiAgICB9XG4gICAgZHJhdyhjb250ZXh0LCBwYXJ0aWNsZSwgcmFkaXVzKSB7XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gdGhpcy5nZXRDZW50ZXIocGFydGljbGUsIHJhZGl1cyk7XG4gICAgICAgIGNvbnN0IHNpZGUgPSB0aGlzLmdldFNpZGVzRGF0YShwYXJ0aWNsZSwgcmFkaXVzKTtcbiAgICAgICAgY29uc3Qgc2lkZUNvdW50ID0gc2lkZS5jb3VudC5udW1lcmF0b3IgKiBzaWRlLmNvdW50LmRlbm9taW5hdG9yO1xuICAgICAgICBjb25zdCBkZWNpbWFsU2lkZXMgPSBzaWRlLmNvdW50Lm51bWVyYXRvciAvIHNpZGUuY291bnQuZGVub21pbmF0b3I7XG4gICAgICAgIGNvbnN0IGludGVyaW9yQW5nbGVEZWdyZWVzID0gKDE4MCAqIChkZWNpbWFsU2lkZXMgLSAyKSkgLyBkZWNpbWFsU2lkZXM7XG4gICAgICAgIGNvbnN0IGludGVyaW9yQW5nbGUgPSBNYXRoLlBJIC0gKE1hdGguUEkgKiBpbnRlcmlvckFuZ2xlRGVncmVlcykgLyAxODA7XG4gICAgICAgIGlmICghY29udGV4dCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XG4gICAgICAgIGNvbnRleHQudHJhbnNsYXRlKHN0YXJ0LngsIHN0YXJ0LnkpO1xuICAgICAgICBjb250ZXh0Lm1vdmVUbygwLCAwKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzaWRlQ291bnQ7IGkrKykge1xuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc2lkZS5sZW5ndGgsIDApO1xuICAgICAgICAgICAgY29udGV4dC50cmFuc2xhdGUoc2lkZS5sZW5ndGgsIDApO1xuICAgICAgICAgICAgY29udGV4dC5yb3RhdGUoaW50ZXJpb3JBbmdsZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLlBvbHlnb25EcmF3ZXJCYXNlID0gUG9seWdvbkRyYXdlckJhc2U7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Shapes/Polygon/PolygonDrawerBase.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Shapes/Polygon/TriangleDrawer.js": +/*!*******************************************************************!*\ + !*** ./node_modules/tsparticles/Shapes/Polygon/TriangleDrawer.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.TriangleDrawer = void 0;\nconst PolygonDrawerBase_1 = __webpack_require__(/*! ./PolygonDrawerBase */ \"./node_modules/tsparticles/Shapes/Polygon/PolygonDrawerBase.js\");\nclass TriangleDrawer extends PolygonDrawerBase_1.PolygonDrawerBase {\n getSidesCount() {\n return 3;\n }\n getSidesData(particle, radius) {\n return {\n count: {\n denominator: 2,\n numerator: 3,\n },\n length: radius * 2,\n };\n }\n getCenter(particle, radius) {\n return {\n x: -radius,\n y: radius / 1.66,\n };\n }\n}\nexports.TriangleDrawer = TriangleDrawer;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL1BvbHlnb24vVHJpYW5nbGVEcmF3ZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsc0JBQXNCO0FBQ3RCLDRCQUE0QixtQkFBTyxDQUFDLDJGQUFxQjtBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1NoYXBlcy9Qb2x5Z29uL1RyaWFuZ2xlRHJhd2VyLmpzPzkwMmMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlRyaWFuZ2xlRHJhd2VyID0gdm9pZCAwO1xuY29uc3QgUG9seWdvbkRyYXdlckJhc2VfMSA9IHJlcXVpcmUoXCIuL1BvbHlnb25EcmF3ZXJCYXNlXCIpO1xuY2xhc3MgVHJpYW5nbGVEcmF3ZXIgZXh0ZW5kcyBQb2x5Z29uRHJhd2VyQmFzZV8xLlBvbHlnb25EcmF3ZXJCYXNlIHtcbiAgICBnZXRTaWRlc0NvdW50KCkge1xuICAgICAgICByZXR1cm4gMztcbiAgICB9XG4gICAgZ2V0U2lkZXNEYXRhKHBhcnRpY2xlLCByYWRpdXMpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvdW50OiB7XG4gICAgICAgICAgICAgICAgZGVub21pbmF0b3I6IDIsXG4gICAgICAgICAgICAgICAgbnVtZXJhdG9yOiAzLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxlbmd0aDogcmFkaXVzICogMixcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZ2V0Q2VudGVyKHBhcnRpY2xlLCByYWRpdXMpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHg6IC1yYWRpdXMsXG4gICAgICAgICAgICB5OiByYWRpdXMgLyAxLjY2LFxuICAgICAgICB9O1xuICAgIH1cbn1cbmV4cG9ydHMuVHJpYW5nbGVEcmF3ZXIgPSBUcmlhbmdsZURyYXdlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Shapes/Polygon/TriangleDrawer.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Shapes/Polygon/index.js": +/*!**********************************************************!*\ + !*** ./node_modules/tsparticles/Shapes/Polygon/index.js ***! + \**********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadPolygonShape = exports.loadTriangleShape = exports.loadGenericPolygonShape = void 0;\nconst PolygonDrawer_1 = __webpack_require__(/*! ./PolygonDrawer */ \"./node_modules/tsparticles/Shapes/Polygon/PolygonDrawer.js\");\nconst TriangleDrawer_1 = __webpack_require__(/*! ./TriangleDrawer */ \"./node_modules/tsparticles/Shapes/Polygon/TriangleDrawer.js\");\nasync function loadGenericPolygonShape(tsParticles) {\n await tsParticles.addShape(\"polygon\", new PolygonDrawer_1.PolygonDrawer());\n}\nexports.loadGenericPolygonShape = loadGenericPolygonShape;\nasync function loadTriangleShape(tsParticles) {\n await tsParticles.addShape(\"triangle\", new TriangleDrawer_1.TriangleDrawer());\n}\nexports.loadTriangleShape = loadTriangleShape;\nasync function loadPolygonShape(tsParticles) {\n await loadGenericPolygonShape(tsParticles);\n await loadTriangleShape(tsParticles);\n}\nexports.loadPolygonShape = loadPolygonShape;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL1BvbHlnb24vaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsd0JBQXdCLEdBQUcseUJBQXlCLEdBQUcsK0JBQStCO0FBQ3RGLHdCQUF3QixtQkFBTyxDQUFDLG1GQUFpQjtBQUNqRCx5QkFBeUIsbUJBQU8sQ0FBQyxxRkFBa0I7QUFDbkQ7QUFDQTtBQUNBO0FBQ0EsK0JBQStCO0FBQy9CO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL1BvbHlnb24vaW5kZXguanM/YTc4MCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMubG9hZFBvbHlnb25TaGFwZSA9IGV4cG9ydHMubG9hZFRyaWFuZ2xlU2hhcGUgPSBleHBvcnRzLmxvYWRHZW5lcmljUG9seWdvblNoYXBlID0gdm9pZCAwO1xuY29uc3QgUG9seWdvbkRyYXdlcl8xID0gcmVxdWlyZShcIi4vUG9seWdvbkRyYXdlclwiKTtcbmNvbnN0IFRyaWFuZ2xlRHJhd2VyXzEgPSByZXF1aXJlKFwiLi9UcmlhbmdsZURyYXdlclwiKTtcbmFzeW5jIGZ1bmN0aW9uIGxvYWRHZW5lcmljUG9seWdvblNoYXBlKHRzUGFydGljbGVzKSB7XG4gICAgYXdhaXQgdHNQYXJ0aWNsZXMuYWRkU2hhcGUoXCJwb2x5Z29uXCIsIG5ldyBQb2x5Z29uRHJhd2VyXzEuUG9seWdvbkRyYXdlcigpKTtcbn1cbmV4cG9ydHMubG9hZEdlbmVyaWNQb2x5Z29uU2hhcGUgPSBsb2FkR2VuZXJpY1BvbHlnb25TaGFwZTtcbmFzeW5jIGZ1bmN0aW9uIGxvYWRUcmlhbmdsZVNoYXBlKHRzUGFydGljbGVzKSB7XG4gICAgYXdhaXQgdHNQYXJ0aWNsZXMuYWRkU2hhcGUoXCJ0cmlhbmdsZVwiLCBuZXcgVHJpYW5nbGVEcmF3ZXJfMS5UcmlhbmdsZURyYXdlcigpKTtcbn1cbmV4cG9ydHMubG9hZFRyaWFuZ2xlU2hhcGUgPSBsb2FkVHJpYW5nbGVTaGFwZTtcbmFzeW5jIGZ1bmN0aW9uIGxvYWRQb2x5Z29uU2hhcGUodHNQYXJ0aWNsZXMpIHtcbiAgICBhd2FpdCBsb2FkR2VuZXJpY1BvbHlnb25TaGFwZSh0c1BhcnRpY2xlcyk7XG4gICAgYXdhaXQgbG9hZFRyaWFuZ2xlU2hhcGUodHNQYXJ0aWNsZXMpO1xufVxuZXhwb3J0cy5sb2FkUG9seWdvblNoYXBlID0gbG9hZFBvbHlnb25TaGFwZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Shapes/Polygon/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Shapes/Square/SquareDrawer.js": +/*!****************************************************************!*\ + !*** ./node_modules/tsparticles/Shapes/Square/SquareDrawer.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.SquareDrawer = void 0;\nconst fixFactor = Math.sqrt(2);\nclass SquareDrawer {\n getSidesCount() {\n return 4;\n }\n draw(context, particle, radius) {\n context.rect(-radius / fixFactor, -radius / fixFactor, (radius * 2) / fixFactor, (radius * 2) / fixFactor);\n }\n}\nexports.SquareDrawer = SquareDrawer;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL1NxdWFyZS9TcXVhcmVEcmF3ZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL1NxdWFyZS9TcXVhcmVEcmF3ZXIuanM/MzRhOCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuU3F1YXJlRHJhd2VyID0gdm9pZCAwO1xuY29uc3QgZml4RmFjdG9yID0gTWF0aC5zcXJ0KDIpO1xuY2xhc3MgU3F1YXJlRHJhd2VyIHtcbiAgICBnZXRTaWRlc0NvdW50KCkge1xuICAgICAgICByZXR1cm4gNDtcbiAgICB9XG4gICAgZHJhdyhjb250ZXh0LCBwYXJ0aWNsZSwgcmFkaXVzKSB7XG4gICAgICAgIGNvbnRleHQucmVjdCgtcmFkaXVzIC8gZml4RmFjdG9yLCAtcmFkaXVzIC8gZml4RmFjdG9yLCAocmFkaXVzICogMikgLyBmaXhGYWN0b3IsIChyYWRpdXMgKiAyKSAvIGZpeEZhY3Rvcik7XG4gICAgfVxufVxuZXhwb3J0cy5TcXVhcmVEcmF3ZXIgPSBTcXVhcmVEcmF3ZXI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Shapes/Square/SquareDrawer.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Shapes/Square/index.js": +/*!*********************************************************!*\ + !*** ./node_modules/tsparticles/Shapes/Square/index.js ***! + \*********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadSquareShape = void 0;\nconst SquareDrawer_1 = __webpack_require__(/*! ./SquareDrawer */ \"./node_modules/tsparticles/Shapes/Square/SquareDrawer.js\");\nasync function loadSquareShape(tsParticles) {\n const drawer = new SquareDrawer_1.SquareDrawer();\n await tsParticles.addShape(\"edge\", drawer);\n await tsParticles.addShape(\"square\", drawer);\n}\nexports.loadSquareShape = loadSquareShape;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL1NxdWFyZS9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCx1QkFBdUI7QUFDdkIsdUJBQXVCLG1CQUFPLENBQUMsZ0ZBQWdCO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1NoYXBlcy9TcXVhcmUvaW5kZXguanM/MTdjYSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMubG9hZFNxdWFyZVNoYXBlID0gdm9pZCAwO1xuY29uc3QgU3F1YXJlRHJhd2VyXzEgPSByZXF1aXJlKFwiLi9TcXVhcmVEcmF3ZXJcIik7XG5hc3luYyBmdW5jdGlvbiBsb2FkU3F1YXJlU2hhcGUodHNQYXJ0aWNsZXMpIHtcbiAgICBjb25zdCBkcmF3ZXIgPSBuZXcgU3F1YXJlRHJhd2VyXzEuU3F1YXJlRHJhd2VyKCk7XG4gICAgYXdhaXQgdHNQYXJ0aWNsZXMuYWRkU2hhcGUoXCJlZGdlXCIsIGRyYXdlcik7XG4gICAgYXdhaXQgdHNQYXJ0aWNsZXMuYWRkU2hhcGUoXCJzcXVhcmVcIiwgZHJhd2VyKTtcbn1cbmV4cG9ydHMubG9hZFNxdWFyZVNoYXBlID0gbG9hZFNxdWFyZVNoYXBlO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Shapes/Square/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Shapes/Star/StarDrawer.js": +/*!************************************************************!*\ + !*** ./node_modules/tsparticles/Shapes/Star/StarDrawer.js ***! + \************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.StarDrawer = void 0;\nclass StarDrawer {\n getSidesCount(particle) {\n var _a, _b;\n const star = particle.shapeData;\n return (_b = (_a = star === null || star === void 0 ? void 0 : star.sides) !== null && _a !== void 0 ? _a : star === null || star === void 0 ? void 0 : star.nb_sides) !== null && _b !== void 0 ? _b : 5;\n }\n draw(context, particle, radius) {\n var _a;\n const star = particle.shapeData;\n const sides = this.getSidesCount(particle);\n const inset = (_a = star === null || star === void 0 ? void 0 : star.inset) !== null && _a !== void 0 ? _a : 2;\n context.moveTo(0, 0 - radius);\n for (let i = 0; i < sides; i++) {\n context.rotate(Math.PI / sides);\n context.lineTo(0, 0 - radius * inset);\n context.rotate(Math.PI / sides);\n context.lineTo(0, 0 - radius);\n }\n }\n}\nexports.StarDrawer = StarDrawer;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL1N0YXIvU3RhckRyYXdlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLFdBQVc7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1NoYXBlcy9TdGFyL1N0YXJEcmF3ZXIuanM/NzI2ZCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuU3RhckRyYXdlciA9IHZvaWQgMDtcbmNsYXNzIFN0YXJEcmF3ZXIge1xuICAgIGdldFNpZGVzQ291bnQocGFydGljbGUpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgY29uc3Qgc3RhciA9IHBhcnRpY2xlLnNoYXBlRGF0YTtcbiAgICAgICAgcmV0dXJuIChfYiA9IChfYSA9IHN0YXIgPT09IG51bGwgfHwgc3RhciA9PT0gdm9pZCAwID8gdm9pZCAwIDogc3Rhci5zaWRlcykgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogc3RhciA9PT0gbnVsbCB8fCBzdGFyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzdGFyLm5iX3NpZGVzKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiA1O1xuICAgIH1cbiAgICBkcmF3KGNvbnRleHQsIHBhcnRpY2xlLCByYWRpdXMpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBjb25zdCBzdGFyID0gcGFydGljbGUuc2hhcGVEYXRhO1xuICAgICAgICBjb25zdCBzaWRlcyA9IHRoaXMuZ2V0U2lkZXNDb3VudChwYXJ0aWNsZSk7XG4gICAgICAgIGNvbnN0IGluc2V0ID0gKF9hID0gc3RhciA9PT0gbnVsbCB8fCBzdGFyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzdGFyLmluc2V0KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAyO1xuICAgICAgICBjb250ZXh0Lm1vdmVUbygwLCAwIC0gcmFkaXVzKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzaWRlczsgaSsrKSB7XG4gICAgICAgICAgICBjb250ZXh0LnJvdGF0ZShNYXRoLlBJIC8gc2lkZXMpO1xuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oMCwgMCAtIHJhZGl1cyAqIGluc2V0KTtcbiAgICAgICAgICAgIGNvbnRleHQucm90YXRlKE1hdGguUEkgLyBzaWRlcyk7XG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbygwLCAwIC0gcmFkaXVzKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuU3RhckRyYXdlciA9IFN0YXJEcmF3ZXI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Shapes/Star/StarDrawer.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Shapes/Star/index.js": +/*!*******************************************************!*\ + !*** ./node_modules/tsparticles/Shapes/Star/index.js ***! + \*******************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadStarShape = void 0;\nconst StarDrawer_1 = __webpack_require__(/*! ./StarDrawer */ \"./node_modules/tsparticles/Shapes/Star/StarDrawer.js\");\nasync function loadStarShape(tsParticles) {\n await tsParticles.addShape(\"star\", new StarDrawer_1.StarDrawer());\n}\nexports.loadStarShape = loadStarShape;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL1N0YXIvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QscUJBQXFCO0FBQ3JCLHFCQUFxQixtQkFBTyxDQUFDLDBFQUFjO0FBQzNDO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL1N0YXIvaW5kZXguanM/MGM1OCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMubG9hZFN0YXJTaGFwZSA9IHZvaWQgMDtcbmNvbnN0IFN0YXJEcmF3ZXJfMSA9IHJlcXVpcmUoXCIuL1N0YXJEcmF3ZXJcIik7XG5hc3luYyBmdW5jdGlvbiBsb2FkU3RhclNoYXBlKHRzUGFydGljbGVzKSB7XG4gICAgYXdhaXQgdHNQYXJ0aWNsZXMuYWRkU2hhcGUoXCJzdGFyXCIsIG5ldyBTdGFyRHJhd2VyXzEuU3RhckRyYXdlcigpKTtcbn1cbmV4cG9ydHMubG9hZFN0YXJTaGFwZSA9IGxvYWRTdGFyU2hhcGU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Shapes/Star/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Shapes/Text/TextDrawer.js": +/*!************************************************************!*\ + !*** ./node_modules/tsparticles/Shapes/Text/TextDrawer.js ***! + \************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.TextDrawer = exports.validTypes = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nexports.validTypes = [\"text\", \"character\", \"char\"];\nclass TextDrawer {\n getSidesCount() {\n return 12;\n }\n async init(container) {\n const options = container.actualOptions;\n if (exports.validTypes.find((t) => (0, Utils_1.isInArray)(t, options.particles.shape.type))) {\n const shapeOptions = exports.validTypes.map((t) => options.particles.shape.options[t]).find((t) => !!t);\n if (shapeOptions instanceof Array) {\n const promises = [];\n for (const character of shapeOptions) {\n promises.push((0, Utils_1.loadFont)(character));\n }\n await Promise.allSettled(promises);\n }\n else {\n if (shapeOptions !== undefined) {\n await (0, Utils_1.loadFont)(shapeOptions);\n }\n }\n }\n }\n draw(context, particle, radius, opacity) {\n var _a, _b, _c;\n const character = particle.shapeData;\n if (character === undefined) {\n return;\n }\n const textData = character.value;\n if (textData === undefined) {\n return;\n }\n const textParticle = particle;\n if (textParticle.text === undefined) {\n textParticle.text =\n textData instanceof Array ? (0, Utils_1.itemFromArray)(textData, particle.randomIndexData) : textData;\n }\n const text = textParticle.text;\n const style = (_a = character.style) !== null && _a !== void 0 ? _a : \"\";\n const weight = (_b = character.weight) !== null && _b !== void 0 ? _b : \"400\";\n const size = Math.round(radius) * 2;\n const font = (_c = character.font) !== null && _c !== void 0 ? _c : \"Verdana\";\n const fill = particle.fill;\n const offsetX = (text.length * radius) / 2;\n context.font = `${style} ${weight} ${size}px \"${font}\"`;\n const pos = {\n x: -offsetX,\n y: radius / 2,\n };\n context.globalAlpha = opacity;\n if (fill) {\n context.fillText(text, pos.x, pos.y);\n }\n else {\n context.strokeText(text, pos.x, pos.y);\n }\n context.globalAlpha = 1;\n }\n}\nexports.TextDrawer = TextDrawer;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL1RleHQvVGV4dERyYXdlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxrQkFBa0IsR0FBRyxrQkFBa0I7QUFDdkMsZ0JBQWdCLG1CQUFPLENBQUMsOERBQWE7QUFDckMsa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEIsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLE1BQU0sS0FBSztBQUM3RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9TaGFwZXMvVGV4dC9UZXh0RHJhd2VyLmpzP2I0YzAiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlRleHREcmF3ZXIgPSBleHBvcnRzLnZhbGlkVHlwZXMgPSB2b2lkIDA7XG5jb25zdCBVdGlsc18xID0gcmVxdWlyZShcIi4uLy4uL1V0aWxzXCIpO1xuZXhwb3J0cy52YWxpZFR5cGVzID0gW1widGV4dFwiLCBcImNoYXJhY3RlclwiLCBcImNoYXJcIl07XG5jbGFzcyBUZXh0RHJhd2VyIHtcbiAgICBnZXRTaWRlc0NvdW50KCkge1xuICAgICAgICByZXR1cm4gMTI7XG4gICAgfVxuICAgIGFzeW5jIGluaXQoY29udGFpbmVyKSB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSBjb250YWluZXIuYWN0dWFsT3B0aW9ucztcbiAgICAgICAgaWYgKGV4cG9ydHMudmFsaWRUeXBlcy5maW5kKCh0KSA9PiAoMCwgVXRpbHNfMS5pc0luQXJyYXkpKHQsIG9wdGlvbnMucGFydGljbGVzLnNoYXBlLnR5cGUpKSkge1xuICAgICAgICAgICAgY29uc3Qgc2hhcGVPcHRpb25zID0gZXhwb3J0cy52YWxpZFR5cGVzLm1hcCgodCkgPT4gb3B0aW9ucy5wYXJ0aWNsZXMuc2hhcGUub3B0aW9uc1t0XSkuZmluZCgodCkgPT4gISF0KTtcbiAgICAgICAgICAgIGlmIChzaGFwZU9wdGlvbnMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHByb21pc2VzID0gW107XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBjaGFyYWN0ZXIgb2Ygc2hhcGVPcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgIHByb21pc2VzLnB1c2goKDAsIFV0aWxzXzEubG9hZEZvbnQpKGNoYXJhY3RlcikpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbFNldHRsZWQocHJvbWlzZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKHNoYXBlT3B0aW9ucyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0ICgwLCBVdGlsc18xLmxvYWRGb250KShzaGFwZU9wdGlvbnMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBkcmF3KGNvbnRleHQsIHBhcnRpY2xlLCByYWRpdXMsIG9wYWNpdHkpIHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgIGNvbnN0IGNoYXJhY3RlciA9IHBhcnRpY2xlLnNoYXBlRGF0YTtcbiAgICAgICAgaWYgKGNoYXJhY3RlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdGV4dERhdGEgPSBjaGFyYWN0ZXIudmFsdWU7XG4gICAgICAgIGlmICh0ZXh0RGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdGV4dFBhcnRpY2xlID0gcGFydGljbGU7XG4gICAgICAgIGlmICh0ZXh0UGFydGljbGUudGV4dCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0ZXh0UGFydGljbGUudGV4dCA9XG4gICAgICAgICAgICAgICAgdGV4dERhdGEgaW5zdGFuY2VvZiBBcnJheSA/ICgwLCBVdGlsc18xLml0ZW1Gcm9tQXJyYXkpKHRleHREYXRhLCBwYXJ0aWNsZS5yYW5kb21JbmRleERhdGEpIDogdGV4dERhdGE7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdGV4dCA9IHRleHRQYXJ0aWNsZS50ZXh0O1xuICAgICAgICBjb25zdCBzdHlsZSA9IChfYSA9IGNoYXJhY3Rlci5zdHlsZSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogXCJcIjtcbiAgICAgICAgY29uc3Qgd2VpZ2h0ID0gKF9iID0gY2hhcmFjdGVyLndlaWdodCkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogXCI0MDBcIjtcbiAgICAgICAgY29uc3Qgc2l6ZSA9IE1hdGgucm91bmQocmFkaXVzKSAqIDI7XG4gICAgICAgIGNvbnN0IGZvbnQgPSAoX2MgPSBjaGFyYWN0ZXIuZm9udCkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogXCJWZXJkYW5hXCI7XG4gICAgICAgIGNvbnN0IGZpbGwgPSBwYXJ0aWNsZS5maWxsO1xuICAgICAgICBjb25zdCBvZmZzZXRYID0gKHRleHQubGVuZ3RoICogcmFkaXVzKSAvIDI7XG4gICAgICAgIGNvbnRleHQuZm9udCA9IGAke3N0eWxlfSAke3dlaWdodH0gJHtzaXplfXB4IFwiJHtmb250fVwiYDtcbiAgICAgICAgY29uc3QgcG9zID0ge1xuICAgICAgICAgICAgeDogLW9mZnNldFgsXG4gICAgICAgICAgICB5OiByYWRpdXMgLyAyLFxuICAgICAgICB9O1xuICAgICAgICBjb250ZXh0Lmdsb2JhbEFscGhhID0gb3BhY2l0eTtcbiAgICAgICAgaWYgKGZpbGwpIHtcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFRleHQodGV4dCwgcG9zLngsIHBvcy55KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnRleHQuc3Ryb2tlVGV4dCh0ZXh0LCBwb3MueCwgcG9zLnkpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnRleHQuZ2xvYmFsQWxwaGEgPSAxO1xuICAgIH1cbn1cbmV4cG9ydHMuVGV4dERyYXdlciA9IFRleHREcmF3ZXI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Shapes/Text/TextDrawer.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Shapes/Text/index.js": +/*!*******************************************************!*\ + !*** ./node_modules/tsparticles/Shapes/Text/index.js ***! + \*******************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadTextShape = void 0;\nconst TextDrawer_1 = __webpack_require__(/*! ./TextDrawer */ \"./node_modules/tsparticles/Shapes/Text/TextDrawer.js\");\nasync function loadTextShape(tsParticles) {\n const drawer = new TextDrawer_1.TextDrawer();\n for (const type of TextDrawer_1.validTypes) {\n await tsParticles.addShape(type, drawer);\n }\n}\nexports.loadTextShape = loadTextShape;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL1RleHQvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QscUJBQXFCO0FBQ3JCLHFCQUFxQixtQkFBTyxDQUFDLDBFQUFjO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL1RleHQvaW5kZXguanM/YzZlMSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMubG9hZFRleHRTaGFwZSA9IHZvaWQgMDtcbmNvbnN0IFRleHREcmF3ZXJfMSA9IHJlcXVpcmUoXCIuL1RleHREcmF3ZXJcIik7XG5hc3luYyBmdW5jdGlvbiBsb2FkVGV4dFNoYXBlKHRzUGFydGljbGVzKSB7XG4gICAgY29uc3QgZHJhd2VyID0gbmV3IFRleHREcmF3ZXJfMS5UZXh0RHJhd2VyKCk7XG4gICAgZm9yIChjb25zdCB0eXBlIG9mIFRleHREcmF3ZXJfMS52YWxpZFR5cGVzKSB7XG4gICAgICAgIGF3YWl0IHRzUGFydGljbGVzLmFkZFNoYXBlKHR5cGUsIGRyYXdlcik7XG4gICAgfVxufVxuZXhwb3J0cy5sb2FkVGV4dFNoYXBlID0gbG9hZFRleHRTaGFwZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Shapes/Text/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Types/PathOptions.js": +/*!*******************************************************!*\ + !*** ./node_modules/tsparticles/Types/PathOptions.js ***! + \*******************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVHlwZXMvUGF0aE9wdGlvbnMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1R5cGVzL1BhdGhPcHRpb25zLmpzP2U1ZWIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Types/PathOptions.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Types/RangeValue.js": +/*!******************************************************!*\ + !*** ./node_modules/tsparticles/Types/RangeValue.js ***! + \******************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVHlwZXMvUmFuZ2VWYWx1ZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVHlwZXMvUmFuZ2VWYWx1ZS5qcz83ODU2Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Types/RangeValue.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Types/RecursivePartial.js": +/*!************************************************************!*\ + !*** ./node_modules/tsparticles/Types/RecursivePartial.js ***! + \************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVHlwZXMvUmVjdXJzaXZlUGFydGlhbC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVHlwZXMvUmVjdXJzaXZlUGFydGlhbC5qcz9iNTVhIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Types/RecursivePartial.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Types/ShapeData.js": +/*!*****************************************************!*\ + !*** ./node_modules/tsparticles/Types/ShapeData.js ***! + \*****************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVHlwZXMvU2hhcGVEYXRhLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9UeXBlcy9TaGFwZURhdGEuanM/ZGExMiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Types/ShapeData.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Types/ShapeDrawerFunctions.js": +/*!****************************************************************!*\ + !*** ./node_modules/tsparticles/Types/ShapeDrawerFunctions.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVHlwZXMvU2hhcGVEcmF3ZXJGdW5jdGlvbnMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1R5cGVzL1NoYXBlRHJhd2VyRnVuY3Rpb25zLmpzPzI0Y2YiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Types/ShapeDrawerFunctions.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Types/SingleOrMultiple.js": +/*!************************************************************!*\ + !*** ./node_modules/tsparticles/Types/SingleOrMultiple.js ***! + \************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVHlwZXMvU2luZ2xlT3JNdWx0aXBsZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVHlwZXMvU2luZ2xlT3JNdWx0aXBsZS5qcz9lN2JmIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Types/SingleOrMultiple.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Types/index.js": +/*!*************************************************!*\ + !*** ./node_modules/tsparticles/Types/index.js ***! + \*************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n__exportStar(__webpack_require__(/*! ./RangeValue */ \"./node_modules/tsparticles/Types/RangeValue.js\"), exports);\n__exportStar(__webpack_require__(/*! ./RecursivePartial */ \"./node_modules/tsparticles/Types/RecursivePartial.js\"), exports);\n__exportStar(__webpack_require__(/*! ./ShapeData */ \"./node_modules/tsparticles/Types/ShapeData.js\"), exports);\n__exportStar(__webpack_require__(/*! ./ShapeDrawerFunctions */ \"./node_modules/tsparticles/Types/ShapeDrawerFunctions.js\"), exports);\n__exportStar(__webpack_require__(/*! ./SingleOrMultiple */ \"./node_modules/tsparticles/Types/SingleOrMultiple.js\"), exports);\n__exportStar(__webpack_require__(/*! ./PathOptions */ \"./node_modules/tsparticles/Types/PathOptions.js\"), exports);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVHlwZXMvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBO0FBQ0EsbUNBQW1DLG9DQUFvQyxnQkFBZ0I7QUFDdkYsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGFBQWEsbUJBQU8sQ0FBQyxvRUFBYztBQUNuQyxhQUFhLG1CQUFPLENBQUMsZ0ZBQW9CO0FBQ3pDLGFBQWEsbUJBQU8sQ0FBQyxrRUFBYTtBQUNsQyxhQUFhLG1CQUFPLENBQUMsd0ZBQXdCO0FBQzdDLGFBQWEsbUJBQU8sQ0FBQyxnRkFBb0I7QUFDekMsYUFBYSxtQkFBTyxDQUFDLHNFQUFlIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9UeXBlcy9pbmRleC5qcz9mZjBmIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9fY3JlYXRlQmluZGluZyA9ICh0aGlzICYmIHRoaXMuX19jcmVhdGVCaW5kaW5nKSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH0pO1xufSkgOiAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIG9bazJdID0gbVtrXTtcbn0pKTtcbnZhciBfX2V4cG9ydFN0YXIgPSAodGhpcyAmJiB0aGlzLl9fZXhwb3J0U3RhcikgfHwgZnVuY3Rpb24obSwgZXhwb3J0cykge1xuICAgIGZvciAodmFyIHAgaW4gbSkgaWYgKHAgIT09IFwiZGVmYXVsdFwiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0cywgcCkpIF9fY3JlYXRlQmluZGluZyhleHBvcnRzLCBtLCBwKTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vUmFuZ2VWYWx1ZVwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vUmVjdXJzaXZlUGFydGlhbFwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vU2hhcGVEYXRhXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9TaGFwZURyYXdlckZ1bmN0aW9uc1wiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vU2luZ2xlT3JNdWx0aXBsZVwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vUGF0aE9wdGlvbnNcIiksIGV4cG9ydHMpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Types/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Updaters/Angle/AngleUpdater.js": +/*!*****************************************************************!*\ + !*** ./node_modules/tsparticles/Updaters/Angle/AngleUpdater.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.AngleUpdater = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nfunction updateAngle(particle, delta) {\n var _a;\n const rotate = particle.rotate;\n if (!rotate) {\n return;\n }\n const rotateOptions = particle.options.rotate;\n const rotateAnimation = rotateOptions.animation;\n const speed = ((_a = rotate.velocity) !== null && _a !== void 0 ? _a : 0) * delta.factor;\n const max = 2 * Math.PI;\n if (!rotateAnimation.enable) {\n return;\n }\n switch (rotate.status) {\n case Enums_1.AnimationStatus.increasing:\n rotate.value += speed;\n if (rotate.value > max) {\n rotate.value -= max;\n }\n break;\n case Enums_1.AnimationStatus.decreasing:\n default:\n rotate.value -= speed;\n if (rotate.value < 0) {\n rotate.value += max;\n }\n break;\n }\n}\nclass AngleUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n const rotateOptions = particle.options.rotate;\n particle.rotate = {\n enable: rotateOptions.animation.enable,\n value: ((0, Utils_1.getRangeValue)(rotateOptions.value) * Math.PI) / 180,\n };\n let rotateDirection = rotateOptions.direction;\n if (rotateDirection === Enums_1.RotateDirection.random) {\n const index = Math.floor(Math.random() * 2);\n rotateDirection = index > 0 ? Enums_1.RotateDirection.counterClockwise : Enums_1.RotateDirection.clockwise;\n }\n switch (rotateDirection) {\n case Enums_1.RotateDirection.counterClockwise:\n case \"counterClockwise\":\n particle.rotate.status = Enums_1.AnimationStatus.decreasing;\n break;\n case Enums_1.RotateDirection.clockwise:\n particle.rotate.status = Enums_1.AnimationStatus.increasing;\n break;\n }\n const rotateAnimation = particle.options.rotate.animation;\n if (rotateAnimation.enable) {\n particle.rotate.velocity = (rotateAnimation.speed / 360) * this.container.retina.reduceFactor;\n if (!rotateAnimation.sync) {\n particle.rotate.velocity *= Math.random();\n }\n }\n }\n isEnabled(particle) {\n const rotate = particle.options.rotate;\n const rotateAnimation = rotate.animation;\n return !particle.destroyed && !particle.spawning && !rotate.path && rotateAnimation.enable;\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateAngle(particle, delta);\n }\n}\nexports.AngleUpdater = AngleUpdater;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvQW5nbGUvQW5nbGVVcGRhdGVyLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELG9CQUFvQjtBQUNwQixnQkFBZ0IsbUJBQU8sQ0FBQyw4REFBYTtBQUNyQyxnQkFBZ0IsbUJBQU8sQ0FBQyw4REFBYTtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvQW5nbGUvQW5nbGVVcGRhdGVyLmpzPzJlZWMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkFuZ2xlVXBkYXRlciA9IHZvaWQgMDtcbmNvbnN0IEVudW1zXzEgPSByZXF1aXJlKFwiLi4vLi4vRW51bXNcIik7XG5jb25zdCBVdGlsc18xID0gcmVxdWlyZShcIi4uLy4uL1V0aWxzXCIpO1xuZnVuY3Rpb24gdXBkYXRlQW5nbGUocGFydGljbGUsIGRlbHRhKSB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IHJvdGF0ZSA9IHBhcnRpY2xlLnJvdGF0ZTtcbiAgICBpZiAoIXJvdGF0ZSkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHJvdGF0ZU9wdGlvbnMgPSBwYXJ0aWNsZS5vcHRpb25zLnJvdGF0ZTtcbiAgICBjb25zdCByb3RhdGVBbmltYXRpb24gPSByb3RhdGVPcHRpb25zLmFuaW1hdGlvbjtcbiAgICBjb25zdCBzcGVlZCA9ICgoX2EgPSByb3RhdGUudmVsb2NpdHkpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IDApICogZGVsdGEuZmFjdG9yO1xuICAgIGNvbnN0IG1heCA9IDIgKiBNYXRoLlBJO1xuICAgIGlmICghcm90YXRlQW5pbWF0aW9uLmVuYWJsZSkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIHN3aXRjaCAocm90YXRlLnN0YXR1cykge1xuICAgICAgICBjYXNlIEVudW1zXzEuQW5pbWF0aW9uU3RhdHVzLmluY3JlYXNpbmc6XG4gICAgICAgICAgICByb3RhdGUudmFsdWUgKz0gc3BlZWQ7XG4gICAgICAgICAgICBpZiAocm90YXRlLnZhbHVlID4gbWF4KSB7XG4gICAgICAgICAgICAgICAgcm90YXRlLnZhbHVlIC09IG1heDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVudW1zXzEuQW5pbWF0aW9uU3RhdHVzLmRlY3JlYXNpbmc6XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByb3RhdGUudmFsdWUgLT0gc3BlZWQ7XG4gICAgICAgICAgICBpZiAocm90YXRlLnZhbHVlIDwgMCkge1xuICAgICAgICAgICAgICAgIHJvdGF0ZS52YWx1ZSArPSBtYXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICB9XG59XG5jbGFzcyBBbmdsZVVwZGF0ZXIge1xuICAgIGNvbnN0cnVjdG9yKGNvbnRhaW5lcikge1xuICAgICAgICB0aGlzLmNvbnRhaW5lciA9IGNvbnRhaW5lcjtcbiAgICB9XG4gICAgaW5pdChwYXJ0aWNsZSkge1xuICAgICAgICBjb25zdCByb3RhdGVPcHRpb25zID0gcGFydGljbGUub3B0aW9ucy5yb3RhdGU7XG4gICAgICAgIHBhcnRpY2xlLnJvdGF0ZSA9IHtcbiAgICAgICAgICAgIGVuYWJsZTogcm90YXRlT3B0aW9ucy5hbmltYXRpb24uZW5hYmxlLFxuICAgICAgICAgICAgdmFsdWU6ICgoMCwgVXRpbHNfMS5nZXRSYW5nZVZhbHVlKShyb3RhdGVPcHRpb25zLnZhbHVlKSAqIE1hdGguUEkpIC8gMTgwLFxuICAgICAgICB9O1xuICAgICAgICBsZXQgcm90YXRlRGlyZWN0aW9uID0gcm90YXRlT3B0aW9ucy5kaXJlY3Rpb247XG4gICAgICAgIGlmIChyb3RhdGVEaXJlY3Rpb24gPT09IEVudW1zXzEuUm90YXRlRGlyZWN0aW9uLnJhbmRvbSkge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAyKTtcbiAgICAgICAgICAgIHJvdGF0ZURpcmVjdGlvbiA9IGluZGV4ID4gMCA/IEVudW1zXzEuUm90YXRlRGlyZWN0aW9uLmNvdW50ZXJDbG9ja3dpc2UgOiBFbnVtc18xLlJvdGF0ZURpcmVjdGlvbi5jbG9ja3dpc2U7XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoIChyb3RhdGVEaXJlY3Rpb24pIHtcbiAgICAgICAgICAgIGNhc2UgRW51bXNfMS5Sb3RhdGVEaXJlY3Rpb24uY291bnRlckNsb2Nrd2lzZTpcbiAgICAgICAgICAgIGNhc2UgXCJjb3VudGVyQ2xvY2t3aXNlXCI6XG4gICAgICAgICAgICAgICAgcGFydGljbGUucm90YXRlLnN0YXR1cyA9IEVudW1zXzEuQW5pbWF0aW9uU3RhdHVzLmRlY3JlYXNpbmc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEVudW1zXzEuUm90YXRlRGlyZWN0aW9uLmNsb2Nrd2lzZTpcbiAgICAgICAgICAgICAgICBwYXJ0aWNsZS5yb3RhdGUuc3RhdHVzID0gRW51bXNfMS5BbmltYXRpb25TdGF0dXMuaW5jcmVhc2luZztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByb3RhdGVBbmltYXRpb24gPSBwYXJ0aWNsZS5vcHRpb25zLnJvdGF0ZS5hbmltYXRpb247XG4gICAgICAgIGlmIChyb3RhdGVBbmltYXRpb24uZW5hYmxlKSB7XG4gICAgICAgICAgICBwYXJ0aWNsZS5yb3RhdGUudmVsb2NpdHkgPSAocm90YXRlQW5pbWF0aW9uLnNwZWVkIC8gMzYwKSAqIHRoaXMuY29udGFpbmVyLnJldGluYS5yZWR1Y2VGYWN0b3I7XG4gICAgICAgICAgICBpZiAoIXJvdGF0ZUFuaW1hdGlvbi5zeW5jKSB7XG4gICAgICAgICAgICAgICAgcGFydGljbGUucm90YXRlLnZlbG9jaXR5ICo9IE1hdGgucmFuZG9tKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgaXNFbmFibGVkKHBhcnRpY2xlKSB7XG4gICAgICAgIGNvbnN0IHJvdGF0ZSA9IHBhcnRpY2xlLm9wdGlvbnMucm90YXRlO1xuICAgICAgICBjb25zdCByb3RhdGVBbmltYXRpb24gPSByb3RhdGUuYW5pbWF0aW9uO1xuICAgICAgICByZXR1cm4gIXBhcnRpY2xlLmRlc3Ryb3llZCAmJiAhcGFydGljbGUuc3Bhd25pbmcgJiYgIXJvdGF0ZS5wYXRoICYmIHJvdGF0ZUFuaW1hdGlvbi5lbmFibGU7XG4gICAgfVxuICAgIHVwZGF0ZShwYXJ0aWNsZSwgZGVsdGEpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzRW5hYmxlZChwYXJ0aWNsZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB1cGRhdGVBbmdsZShwYXJ0aWNsZSwgZGVsdGEpO1xuICAgIH1cbn1cbmV4cG9ydHMuQW5nbGVVcGRhdGVyID0gQW5nbGVVcGRhdGVyO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Updaters/Angle/AngleUpdater.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Updaters/Angle/index.js": +/*!**********************************************************!*\ + !*** ./node_modules/tsparticles/Updaters/Angle/index.js ***! + \**********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadAngleUpdater = void 0;\nconst AngleUpdater_1 = __webpack_require__(/*! ./AngleUpdater */ \"./node_modules/tsparticles/Updaters/Angle/AngleUpdater.js\");\nasync function loadAngleUpdater(tsParticles) {\n await tsParticles.addParticleUpdater(\"angle\", (container) => new AngleUpdater_1.AngleUpdater(container));\n}\nexports.loadAngleUpdater = loadAngleUpdater;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvQW5nbGUvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsd0JBQXdCO0FBQ3hCLHVCQUF1QixtQkFBTyxDQUFDLGlGQUFnQjtBQUMvQztBQUNBO0FBQ0E7QUFDQSx3QkFBd0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1VwZGF0ZXJzL0FuZ2xlL2luZGV4LmpzPzhkY2MiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmxvYWRBbmdsZVVwZGF0ZXIgPSB2b2lkIDA7XG5jb25zdCBBbmdsZVVwZGF0ZXJfMSA9IHJlcXVpcmUoXCIuL0FuZ2xlVXBkYXRlclwiKTtcbmFzeW5jIGZ1bmN0aW9uIGxvYWRBbmdsZVVwZGF0ZXIodHNQYXJ0aWNsZXMpIHtcbiAgICBhd2FpdCB0c1BhcnRpY2xlcy5hZGRQYXJ0aWNsZVVwZGF0ZXIoXCJhbmdsZVwiLCAoY29udGFpbmVyKSA9PiBuZXcgQW5nbGVVcGRhdGVyXzEuQW5nbGVVcGRhdGVyKGNvbnRhaW5lcikpO1xufVxuZXhwb3J0cy5sb2FkQW5nbGVVcGRhdGVyID0gbG9hZEFuZ2xlVXBkYXRlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Updaters/Angle/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Updaters/Color/ColorUpdater.js": +/*!*****************************************************************!*\ + !*** ./node_modules/tsparticles/Updaters/Color/ColorUpdater.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ColorUpdater = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nfunction updateColorValue(delta, value, valueAnimation, max, decrease) {\n var _a;\n const colorValue = value;\n if (!colorValue || !valueAnimation.enable) {\n return;\n }\n const offset = (0, Utils_1.randomInRange)(valueAnimation.offset);\n const velocity = ((_a = value.velocity) !== null && _a !== void 0 ? _a : 0) * delta.factor + offset * 3.6;\n if (!decrease || colorValue.status === Enums_1.AnimationStatus.increasing) {\n colorValue.value += velocity;\n if (decrease && colorValue.value > max) {\n colorValue.status = Enums_1.AnimationStatus.decreasing;\n colorValue.value -= colorValue.value % max;\n }\n }\n else {\n colorValue.value -= velocity;\n if (colorValue.value < 0) {\n colorValue.status = Enums_1.AnimationStatus.increasing;\n colorValue.value += colorValue.value;\n }\n }\n if (colorValue.value > max) {\n colorValue.value %= max;\n }\n}\nfunction updateColor(particle, delta) {\n var _a, _b, _c;\n const animationOptions = particle.options.color.animation;\n if (((_a = particle.color) === null || _a === void 0 ? void 0 : _a.h) !== undefined) {\n updateColorValue(delta, particle.color.h, animationOptions.h, 360, false);\n }\n if (((_b = particle.color) === null || _b === void 0 ? void 0 : _b.s) !== undefined) {\n updateColorValue(delta, particle.color.s, animationOptions.s, 100, true);\n }\n if (((_c = particle.color) === null || _c === void 0 ? void 0 : _c.l) !== undefined) {\n updateColorValue(delta, particle.color.l, animationOptions.l, 100, true);\n }\n}\nclass ColorUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n const hslColor = (0, Utils_1.colorToHsl)(particle.options.color, particle.id, particle.options.reduceDuplicates);\n if (hslColor) {\n particle.color = (0, Utils_1.getHslAnimationFromHsl)(hslColor, particle.options.color.animation, this.container.retina.reduceFactor);\n }\n }\n isEnabled(particle) {\n var _a, _b, _c;\n const animationOptions = particle.options.color.animation;\n return (!particle.destroyed &&\n !particle.spawning &&\n ((((_a = particle.color) === null || _a === void 0 ? void 0 : _a.h.value) !== undefined && animationOptions.h.enable) ||\n (((_b = particle.color) === null || _b === void 0 ? void 0 : _b.s.value) !== undefined && animationOptions.s.enable) ||\n (((_c = particle.color) === null || _c === void 0 ? void 0 : _c.l.value) !== undefined && animationOptions.l.enable)));\n }\n update(particle, delta) {\n updateColor(particle, delta);\n }\n}\nexports.ColorUpdater = ColorUpdater;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvQ29sb3IvQ29sb3JVcGRhdGVyLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELG9CQUFvQjtBQUNwQixnQkFBZ0IsbUJBQU8sQ0FBQyw4REFBYTtBQUNyQyxnQkFBZ0IsbUJBQU8sQ0FBQyw4REFBYTtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9VcGRhdGVycy9Db2xvci9Db2xvclVwZGF0ZXIuanM/MDBkMyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuQ29sb3JVcGRhdGVyID0gdm9pZCAwO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuLi8uLi9FbnVtc1wiKTtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vVXRpbHNcIik7XG5mdW5jdGlvbiB1cGRhdGVDb2xvclZhbHVlKGRlbHRhLCB2YWx1ZSwgdmFsdWVBbmltYXRpb24sIG1heCwgZGVjcmVhc2UpIHtcbiAgICB2YXIgX2E7XG4gICAgY29uc3QgY29sb3JWYWx1ZSA9IHZhbHVlO1xuICAgIGlmICghY29sb3JWYWx1ZSB8fCAhdmFsdWVBbmltYXRpb24uZW5hYmxlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgb2Zmc2V0ID0gKDAsIFV0aWxzXzEucmFuZG9tSW5SYW5nZSkodmFsdWVBbmltYXRpb24ub2Zmc2V0KTtcbiAgICBjb25zdCB2ZWxvY2l0eSA9ICgoX2EgPSB2YWx1ZS52ZWxvY2l0eSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogMCkgKiBkZWx0YS5mYWN0b3IgKyBvZmZzZXQgKiAzLjY7XG4gICAgaWYgKCFkZWNyZWFzZSB8fCBjb2xvclZhbHVlLnN0YXR1cyA9PT0gRW51bXNfMS5BbmltYXRpb25TdGF0dXMuaW5jcmVhc2luZykge1xuICAgICAgICBjb2xvclZhbHVlLnZhbHVlICs9IHZlbG9jaXR5O1xuICAgICAgICBpZiAoZGVjcmVhc2UgJiYgY29sb3JWYWx1ZS52YWx1ZSA+IG1heCkge1xuICAgICAgICAgICAgY29sb3JWYWx1ZS5zdGF0dXMgPSBFbnVtc18xLkFuaW1hdGlvblN0YXR1cy5kZWNyZWFzaW5nO1xuICAgICAgICAgICAgY29sb3JWYWx1ZS52YWx1ZSAtPSBjb2xvclZhbHVlLnZhbHVlICUgbWF4O1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBjb2xvclZhbHVlLnZhbHVlIC09IHZlbG9jaXR5O1xuICAgICAgICBpZiAoY29sb3JWYWx1ZS52YWx1ZSA8IDApIHtcbiAgICAgICAgICAgIGNvbG9yVmFsdWUuc3RhdHVzID0gRW51bXNfMS5BbmltYXRpb25TdGF0dXMuaW5jcmVhc2luZztcbiAgICAgICAgICAgIGNvbG9yVmFsdWUudmFsdWUgKz0gY29sb3JWYWx1ZS52YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoY29sb3JWYWx1ZS52YWx1ZSA+IG1heCkge1xuICAgICAgICBjb2xvclZhbHVlLnZhbHVlICU9IG1heDtcbiAgICB9XG59XG5mdW5jdGlvbiB1cGRhdGVDb2xvcihwYXJ0aWNsZSwgZGVsdGEpIHtcbiAgICB2YXIgX2EsIF9iLCBfYztcbiAgICBjb25zdCBhbmltYXRpb25PcHRpb25zID0gcGFydGljbGUub3B0aW9ucy5jb2xvci5hbmltYXRpb247XG4gICAgaWYgKCgoX2EgPSBwYXJ0aWNsZS5jb2xvcikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmgpICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdXBkYXRlQ29sb3JWYWx1ZShkZWx0YSwgcGFydGljbGUuY29sb3IuaCwgYW5pbWF0aW9uT3B0aW9ucy5oLCAzNjAsIGZhbHNlKTtcbiAgICB9XG4gICAgaWYgKCgoX2IgPSBwYXJ0aWNsZS5jb2xvcikgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLnMpICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdXBkYXRlQ29sb3JWYWx1ZShkZWx0YSwgcGFydGljbGUuY29sb3IucywgYW5pbWF0aW9uT3B0aW9ucy5zLCAxMDAsIHRydWUpO1xuICAgIH1cbiAgICBpZiAoKChfYyA9IHBhcnRpY2xlLmNvbG9yKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MubCkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB1cGRhdGVDb2xvclZhbHVlKGRlbHRhLCBwYXJ0aWNsZS5jb2xvci5sLCBhbmltYXRpb25PcHRpb25zLmwsIDEwMCwgdHJ1ZSk7XG4gICAgfVxufVxuY2xhc3MgQ29sb3JVcGRhdGVyIHtcbiAgICBjb25zdHJ1Y3Rvcihjb250YWluZXIpIHtcbiAgICAgICAgdGhpcy5jb250YWluZXIgPSBjb250YWluZXI7XG4gICAgfVxuICAgIGluaXQocGFydGljbGUpIHtcbiAgICAgICAgY29uc3QgaHNsQ29sb3IgPSAoMCwgVXRpbHNfMS5jb2xvclRvSHNsKShwYXJ0aWNsZS5vcHRpb25zLmNvbG9yLCBwYXJ0aWNsZS5pZCwgcGFydGljbGUub3B0aW9ucy5yZWR1Y2VEdXBsaWNhdGVzKTtcbiAgICAgICAgaWYgKGhzbENvbG9yKSB7XG4gICAgICAgICAgICBwYXJ0aWNsZS5jb2xvciA9ICgwLCBVdGlsc18xLmdldEhzbEFuaW1hdGlvbkZyb21Ic2wpKGhzbENvbG9yLCBwYXJ0aWNsZS5vcHRpb25zLmNvbG9yLmFuaW1hdGlvbiwgdGhpcy5jb250YWluZXIucmV0aW5hLnJlZHVjZUZhY3Rvcik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaXNFbmFibGVkKHBhcnRpY2xlKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICBjb25zdCBhbmltYXRpb25PcHRpb25zID0gcGFydGljbGUub3B0aW9ucy5jb2xvci5hbmltYXRpb247XG4gICAgICAgIHJldHVybiAoIXBhcnRpY2xlLmRlc3Ryb3llZCAmJlxuICAgICAgICAgICAgIXBhcnRpY2xlLnNwYXduaW5nICYmXG4gICAgICAgICAgICAoKCgoX2EgPSBwYXJ0aWNsZS5jb2xvcikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmgudmFsdWUpICE9PSB1bmRlZmluZWQgJiYgYW5pbWF0aW9uT3B0aW9ucy5oLmVuYWJsZSkgfHxcbiAgICAgICAgICAgICAgICAoKChfYiA9IHBhcnRpY2xlLmNvbG9yKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Iucy52YWx1ZSkgIT09IHVuZGVmaW5lZCAmJiBhbmltYXRpb25PcHRpb25zLnMuZW5hYmxlKSB8fFxuICAgICAgICAgICAgICAgICgoKF9jID0gcGFydGljbGUuY29sb3IpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5sLnZhbHVlKSAhPT0gdW5kZWZpbmVkICYmIGFuaW1hdGlvbk9wdGlvbnMubC5lbmFibGUpKSk7XG4gICAgfVxuICAgIHVwZGF0ZShwYXJ0aWNsZSwgZGVsdGEpIHtcbiAgICAgICAgdXBkYXRlQ29sb3IocGFydGljbGUsIGRlbHRhKTtcbiAgICB9XG59XG5leHBvcnRzLkNvbG9yVXBkYXRlciA9IENvbG9yVXBkYXRlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Updaters/Color/ColorUpdater.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Updaters/Color/index.js": +/*!**********************************************************!*\ + !*** ./node_modules/tsparticles/Updaters/Color/index.js ***! + \**********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadColorUpdater = void 0;\nconst ColorUpdater_1 = __webpack_require__(/*! ./ColorUpdater */ \"./node_modules/tsparticles/Updaters/Color/ColorUpdater.js\");\nasync function loadColorUpdater(tsParticles) {\n await tsParticles.addParticleUpdater(\"color\", (container) => new ColorUpdater_1.ColorUpdater(container));\n}\nexports.loadColorUpdater = loadColorUpdater;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvQ29sb3IvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsd0JBQXdCO0FBQ3hCLHVCQUF1QixtQkFBTyxDQUFDLGlGQUFnQjtBQUMvQztBQUNBO0FBQ0E7QUFDQSx3QkFBd0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1VwZGF0ZXJzL0NvbG9yL2luZGV4LmpzP2E2N2UiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmxvYWRDb2xvclVwZGF0ZXIgPSB2b2lkIDA7XG5jb25zdCBDb2xvclVwZGF0ZXJfMSA9IHJlcXVpcmUoXCIuL0NvbG9yVXBkYXRlclwiKTtcbmFzeW5jIGZ1bmN0aW9uIGxvYWRDb2xvclVwZGF0ZXIodHNQYXJ0aWNsZXMpIHtcbiAgICBhd2FpdCB0c1BhcnRpY2xlcy5hZGRQYXJ0aWNsZVVwZGF0ZXIoXCJjb2xvclwiLCAoY29udGFpbmVyKSA9PiBuZXcgQ29sb3JVcGRhdGVyXzEuQ29sb3JVcGRhdGVyKGNvbnRhaW5lcikpO1xufVxuZXhwb3J0cy5sb2FkQ29sb3JVcGRhdGVyID0gbG9hZENvbG9yVXBkYXRlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Updaters/Color/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Updaters/Life/LifeUpdater.js": +/*!***************************************************************!*\ + !*** ./node_modules/tsparticles/Updaters/Life/LifeUpdater.js ***! + \***************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.LifeUpdater = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass LifeUpdater {\n constructor(container) {\n this.container = container;\n }\n init() {\n }\n isEnabled(particle) {\n return !particle.destroyed;\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n const life = particle.life;\n let justSpawned = false;\n if (particle.spawning) {\n life.delayTime += delta.value;\n if (life.delayTime >= particle.life.delay) {\n justSpawned = true;\n particle.spawning = false;\n life.delayTime = 0;\n life.time = 0;\n }\n else {\n return;\n }\n }\n if (life.duration === -1) {\n return;\n }\n if (particle.spawning) {\n return;\n }\n if (justSpawned) {\n life.time = 0;\n }\n else {\n life.time += delta.value;\n }\n if (life.time < life.duration) {\n return;\n }\n life.time = 0;\n if (particle.life.count > 0) {\n particle.life.count--;\n }\n if (particle.life.count === 0) {\n particle.destroy();\n return;\n }\n const canvasSize = this.container.canvas.size, widthRange = (0, Utils_1.setRangeValue)(0, canvasSize.width), heightRange = (0, Utils_1.setRangeValue)(0, canvasSize.width);\n particle.position.x = (0, Utils_1.randomInRange)(widthRange);\n particle.position.y = (0, Utils_1.randomInRange)(heightRange);\n particle.spawning = true;\n life.delayTime = 0;\n life.time = 0;\n particle.reset();\n const lifeOptions = particle.options.life;\n life.delay = (0, Utils_1.getRangeValue)(lifeOptions.delay.value) * 1000;\n life.duration = (0, Utils_1.getRangeValue)(lifeOptions.duration.value) * 1000;\n }\n}\nexports.LifeUpdater = LifeUpdater;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvTGlmZS9MaWZlVXBkYXRlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxtQkFBbUI7QUFDbkIsZ0JBQWdCLG1CQUFPLENBQUMsOERBQWE7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvTGlmZS9MaWZlVXBkYXRlci5qcz83NjE5Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5MaWZlVXBkYXRlciA9IHZvaWQgMDtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vVXRpbHNcIik7XG5jbGFzcyBMaWZlVXBkYXRlciB7XG4gICAgY29uc3RydWN0b3IoY29udGFpbmVyKSB7XG4gICAgICAgIHRoaXMuY29udGFpbmVyID0gY29udGFpbmVyO1xuICAgIH1cbiAgICBpbml0KCkge1xuICAgIH1cbiAgICBpc0VuYWJsZWQocGFydGljbGUpIHtcbiAgICAgICAgcmV0dXJuICFwYXJ0aWNsZS5kZXN0cm95ZWQ7XG4gICAgfVxuICAgIHVwZGF0ZShwYXJ0aWNsZSwgZGVsdGEpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzRW5hYmxlZChwYXJ0aWNsZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsaWZlID0gcGFydGljbGUubGlmZTtcbiAgICAgICAgbGV0IGp1c3RTcGF3bmVkID0gZmFsc2U7XG4gICAgICAgIGlmIChwYXJ0aWNsZS5zcGF3bmluZykge1xuICAgICAgICAgICAgbGlmZS5kZWxheVRpbWUgKz0gZGVsdGEudmFsdWU7XG4gICAgICAgICAgICBpZiAobGlmZS5kZWxheVRpbWUgPj0gcGFydGljbGUubGlmZS5kZWxheSkge1xuICAgICAgICAgICAgICAgIGp1c3RTcGF3bmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBwYXJ0aWNsZS5zcGF3bmluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGxpZmUuZGVsYXlUaW1lID0gMDtcbiAgICAgICAgICAgICAgICBsaWZlLnRpbWUgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChsaWZlLmR1cmF0aW9uID09PSAtMSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXJ0aWNsZS5zcGF3bmluZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChqdXN0U3Bhd25lZCkge1xuICAgICAgICAgICAgbGlmZS50aW1lID0gMDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGxpZmUudGltZSArPSBkZWx0YS52YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobGlmZS50aW1lIDwgbGlmZS5kdXJhdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGxpZmUudGltZSA9IDA7XG4gICAgICAgIGlmIChwYXJ0aWNsZS5saWZlLmNvdW50ID4gMCkge1xuICAgICAgICAgICAgcGFydGljbGUubGlmZS5jb3VudC0tO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXJ0aWNsZS5saWZlLmNvdW50ID09PSAwKSB7XG4gICAgICAgICAgICBwYXJ0aWNsZS5kZXN0cm95KCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2FudmFzU2l6ZSA9IHRoaXMuY29udGFpbmVyLmNhbnZhcy5zaXplLCB3aWR0aFJhbmdlID0gKDAsIFV0aWxzXzEuc2V0UmFuZ2VWYWx1ZSkoMCwgY2FudmFzU2l6ZS53aWR0aCksIGhlaWdodFJhbmdlID0gKDAsIFV0aWxzXzEuc2V0UmFuZ2VWYWx1ZSkoMCwgY2FudmFzU2l6ZS53aWR0aCk7XG4gICAgICAgIHBhcnRpY2xlLnBvc2l0aW9uLnggPSAoMCwgVXRpbHNfMS5yYW5kb21JblJhbmdlKSh3aWR0aFJhbmdlKTtcbiAgICAgICAgcGFydGljbGUucG9zaXRpb24ueSA9ICgwLCBVdGlsc18xLnJhbmRvbUluUmFuZ2UpKGhlaWdodFJhbmdlKTtcbiAgICAgICAgcGFydGljbGUuc3Bhd25pbmcgPSB0cnVlO1xuICAgICAgICBsaWZlLmRlbGF5VGltZSA9IDA7XG4gICAgICAgIGxpZmUudGltZSA9IDA7XG4gICAgICAgIHBhcnRpY2xlLnJlc2V0KCk7XG4gICAgICAgIGNvbnN0IGxpZmVPcHRpb25zID0gcGFydGljbGUub3B0aW9ucy5saWZlO1xuICAgICAgICBsaWZlLmRlbGF5ID0gKDAsIFV0aWxzXzEuZ2V0UmFuZ2VWYWx1ZSkobGlmZU9wdGlvbnMuZGVsYXkudmFsdWUpICogMTAwMDtcbiAgICAgICAgbGlmZS5kdXJhdGlvbiA9ICgwLCBVdGlsc18xLmdldFJhbmdlVmFsdWUpKGxpZmVPcHRpb25zLmR1cmF0aW9uLnZhbHVlKSAqIDEwMDA7XG4gICAgfVxufVxuZXhwb3J0cy5MaWZlVXBkYXRlciA9IExpZmVVcGRhdGVyO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Updaters/Life/LifeUpdater.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Updaters/Life/index.js": +/*!*********************************************************!*\ + !*** ./node_modules/tsparticles/Updaters/Life/index.js ***! + \*********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadLifeUpdater = void 0;\nconst LifeUpdater_1 = __webpack_require__(/*! ./LifeUpdater */ \"./node_modules/tsparticles/Updaters/Life/LifeUpdater.js\");\nasync function loadLifeUpdater(tsParticles) {\n await tsParticles.addParticleUpdater(\"life\", (container) => new LifeUpdater_1.LifeUpdater(container));\n}\nexports.loadLifeUpdater = loadLifeUpdater;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvTGlmZS9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCx1QkFBdUI7QUFDdkIsc0JBQXNCLG1CQUFPLENBQUMsOEVBQWU7QUFDN0M7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9VcGRhdGVycy9MaWZlL2luZGV4LmpzPzY0MWUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmxvYWRMaWZlVXBkYXRlciA9IHZvaWQgMDtcbmNvbnN0IExpZmVVcGRhdGVyXzEgPSByZXF1aXJlKFwiLi9MaWZlVXBkYXRlclwiKTtcbmFzeW5jIGZ1bmN0aW9uIGxvYWRMaWZlVXBkYXRlcih0c1BhcnRpY2xlcykge1xuICAgIGF3YWl0IHRzUGFydGljbGVzLmFkZFBhcnRpY2xlVXBkYXRlcihcImxpZmVcIiwgKGNvbnRhaW5lcikgPT4gbmV3IExpZmVVcGRhdGVyXzEuTGlmZVVwZGF0ZXIoY29udGFpbmVyKSk7XG59XG5leHBvcnRzLmxvYWRMaWZlVXBkYXRlciA9IGxvYWRMaWZlVXBkYXRlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Updaters/Life/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Updaters/Opacity/OpacityUpdater.js": +/*!*********************************************************************!*\ + !*** ./node_modules/tsparticles/Updaters/Opacity/OpacityUpdater.js ***! + \*********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.OpacityUpdater = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nfunction checkDestroy(particle, value, minValue, maxValue) {\n switch (particle.options.opacity.animation.destroy) {\n case Enums_1.DestroyType.max:\n if (value >= maxValue) {\n particle.destroy();\n }\n break;\n case Enums_1.DestroyType.min:\n if (value <= minValue) {\n particle.destroy();\n }\n break;\n }\n}\nfunction updateOpacity(particle, delta) {\n var _a, _b, _c, _d, _e;\n if (!particle.opacity) {\n return;\n }\n const minValue = particle.opacity.min;\n const maxValue = particle.opacity.max;\n if (!(!particle.destroyed &&\n particle.opacity.enable &&\n (((_a = particle.opacity.maxLoops) !== null && _a !== void 0 ? _a : 0) <= 0 || ((_b = particle.opacity.loops) !== null && _b !== void 0 ? _b : 0) < ((_c = particle.opacity.maxLoops) !== null && _c !== void 0 ? _c : 0)))) {\n return;\n }\n switch (particle.opacity.status) {\n case Enums_1.AnimationStatus.increasing:\n if (particle.opacity.value >= maxValue) {\n particle.opacity.status = Enums_1.AnimationStatus.decreasing;\n if (!particle.opacity.loops) {\n particle.opacity.loops = 0;\n }\n particle.opacity.loops++;\n }\n else {\n particle.opacity.value += ((_d = particle.opacity.velocity) !== null && _d !== void 0 ? _d : 0) * delta.factor;\n }\n break;\n case Enums_1.AnimationStatus.decreasing:\n if (particle.opacity.value <= minValue) {\n particle.opacity.status = Enums_1.AnimationStatus.increasing;\n if (!particle.opacity.loops) {\n particle.opacity.loops = 0;\n }\n particle.opacity.loops++;\n }\n else {\n particle.opacity.value -= ((_e = particle.opacity.velocity) !== null && _e !== void 0 ? _e : 0) * delta.factor;\n }\n break;\n }\n checkDestroy(particle, particle.opacity.value, minValue, maxValue);\n if (!particle.destroyed) {\n particle.opacity.value = (0, Utils_1.clamp)(particle.opacity.value, minValue, maxValue);\n }\n}\nclass OpacityUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n const opacityOptions = particle.options.opacity;\n particle.opacity = {\n enable: opacityOptions.animation.enable,\n max: (0, Utils_1.getRangeMax)(opacityOptions.value),\n min: (0, Utils_1.getRangeMin)(opacityOptions.value),\n value: (0, Utils_1.getRangeValue)(opacityOptions.value),\n loops: 0,\n maxLoops: opacityOptions.animation.count,\n };\n const opacityAnimation = opacityOptions.animation;\n if (opacityAnimation.enable) {\n particle.opacity.status = Enums_1.AnimationStatus.increasing;\n const opacityRange = opacityOptions.value;\n particle.opacity.min = (0, Utils_1.getRangeMin)(opacityRange);\n particle.opacity.max = (0, Utils_1.getRangeMax)(opacityRange);\n switch (opacityAnimation.startValue) {\n case Enums_1.StartValueType.min:\n particle.opacity.value = particle.opacity.min;\n particle.opacity.status = Enums_1.AnimationStatus.increasing;\n break;\n case Enums_1.StartValueType.random:\n particle.opacity.value = (0, Utils_1.randomInRange)(particle.opacity);\n particle.opacity.status =\n Math.random() >= 0.5 ? Enums_1.AnimationStatus.increasing : Enums_1.AnimationStatus.decreasing;\n break;\n case Enums_1.StartValueType.max:\n default:\n particle.opacity.value = particle.opacity.max;\n particle.opacity.status = Enums_1.AnimationStatus.decreasing;\n break;\n }\n particle.opacity.velocity = (opacityAnimation.speed / 100) * this.container.retina.reduceFactor;\n if (!opacityAnimation.sync) {\n particle.opacity.velocity *= Math.random();\n }\n }\n }\n isEnabled(particle) {\n var _a, _b, _c;\n return (!particle.destroyed &&\n !particle.spawning &&\n !!particle.opacity &&\n particle.opacity.enable &&\n (((_a = particle.opacity.maxLoops) !== null && _a !== void 0 ? _a : 0) <= 0 || ((_b = particle.opacity.loops) !== null && _b !== void 0 ? _b : 0) < ((_c = particle.opacity.maxLoops) !== null && _c !== void 0 ? _c : 0)));\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateOpacity(particle, delta);\n }\n}\nexports.OpacityUpdater = OpacityUpdater;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvT3BhY2l0eS9PcGFjaXR5VXBkYXRlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxzQkFBc0I7QUFDdEIsZ0JBQWdCLG1CQUFPLENBQUMsOERBQWE7QUFDckMsZ0JBQWdCLG1CQUFPLENBQUMsOERBQWE7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9VcGRhdGVycy9PcGFjaXR5L09wYWNpdHlVcGRhdGVyLmpzP2Q3YTMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLk9wYWNpdHlVcGRhdGVyID0gdm9pZCAwO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuLi8uLi9FbnVtc1wiKTtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vVXRpbHNcIik7XG5mdW5jdGlvbiBjaGVja0Rlc3Ryb3kocGFydGljbGUsIHZhbHVlLCBtaW5WYWx1ZSwgbWF4VmFsdWUpIHtcbiAgICBzd2l0Y2ggKHBhcnRpY2xlLm9wdGlvbnMub3BhY2l0eS5hbmltYXRpb24uZGVzdHJveSkge1xuICAgICAgICBjYXNlIEVudW1zXzEuRGVzdHJveVR5cGUubWF4OlxuICAgICAgICAgICAgaWYgKHZhbHVlID49IG1heFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgcGFydGljbGUuZGVzdHJveSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRW51bXNfMS5EZXN0cm95VHlwZS5taW46XG4gICAgICAgICAgICBpZiAodmFsdWUgPD0gbWluVmFsdWUpIHtcbiAgICAgICAgICAgICAgICBwYXJ0aWNsZS5kZXN0cm95KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICB9XG59XG5mdW5jdGlvbiB1cGRhdGVPcGFjaXR5KHBhcnRpY2xlLCBkZWx0YSkge1xuICAgIHZhciBfYSwgX2IsIF9jLCBfZCwgX2U7XG4gICAgaWYgKCFwYXJ0aWNsZS5vcGFjaXR5KSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgbWluVmFsdWUgPSBwYXJ0aWNsZS5vcGFjaXR5Lm1pbjtcbiAgICBjb25zdCBtYXhWYWx1ZSA9IHBhcnRpY2xlLm9wYWNpdHkubWF4O1xuICAgIGlmICghKCFwYXJ0aWNsZS5kZXN0cm95ZWQgJiZcbiAgICAgICAgcGFydGljbGUub3BhY2l0eS5lbmFibGUgJiZcbiAgICAgICAgKCgoX2EgPSBwYXJ0aWNsZS5vcGFjaXR5Lm1heExvb3BzKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAwKSA8PSAwIHx8ICgoX2IgPSBwYXJ0aWNsZS5vcGFjaXR5Lmxvb3BzKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiAwKSA8ICgoX2MgPSBwYXJ0aWNsZS5vcGFjaXR5Lm1heExvb3BzKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiAwKSkpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgc3dpdGNoIChwYXJ0aWNsZS5vcGFjaXR5LnN0YXR1cykge1xuICAgICAgICBjYXNlIEVudW1zXzEuQW5pbWF0aW9uU3RhdHVzLmluY3JlYXNpbmc6XG4gICAgICAgICAgICBpZiAocGFydGljbGUub3BhY2l0eS52YWx1ZSA+PSBtYXhWYWx1ZSkge1xuICAgICAgICAgICAgICAgIHBhcnRpY2xlLm9wYWNpdHkuc3RhdHVzID0gRW51bXNfMS5BbmltYXRpb25TdGF0dXMuZGVjcmVhc2luZztcbiAgICAgICAgICAgICAgICBpZiAoIXBhcnRpY2xlLm9wYWNpdHkubG9vcHMpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFydGljbGUub3BhY2l0eS5sb29wcyA9IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHBhcnRpY2xlLm9wYWNpdHkubG9vcHMrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHBhcnRpY2xlLm9wYWNpdHkudmFsdWUgKz0gKChfZCA9IHBhcnRpY2xlLm9wYWNpdHkudmVsb2NpdHkpICE9PSBudWxsICYmIF9kICE9PSB2b2lkIDAgPyBfZCA6IDApICogZGVsdGEuZmFjdG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRW51bXNfMS5BbmltYXRpb25TdGF0dXMuZGVjcmVhc2luZzpcbiAgICAgICAgICAgIGlmIChwYXJ0aWNsZS5vcGFjaXR5LnZhbHVlIDw9IG1pblZhbHVlKSB7XG4gICAgICAgICAgICAgICAgcGFydGljbGUub3BhY2l0eS5zdGF0dXMgPSBFbnVtc18xLkFuaW1hdGlvblN0YXR1cy5pbmNyZWFzaW5nO1xuICAgICAgICAgICAgICAgIGlmICghcGFydGljbGUub3BhY2l0eS5sb29wcykge1xuICAgICAgICAgICAgICAgICAgICBwYXJ0aWNsZS5vcGFjaXR5Lmxvb3BzID0gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcGFydGljbGUub3BhY2l0eS5sb29wcysrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcGFydGljbGUub3BhY2l0eS52YWx1ZSAtPSAoKF9lID0gcGFydGljbGUub3BhY2l0eS52ZWxvY2l0eSkgIT09IG51bGwgJiYgX2UgIT09IHZvaWQgMCA/IF9lIDogMCkgKiBkZWx0YS5mYWN0b3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICB9XG4gICAgY2hlY2tEZXN0cm95KHBhcnRpY2xlLCBwYXJ0aWNsZS5vcGFjaXR5LnZhbHVlLCBtaW5WYWx1ZSwgbWF4VmFsdWUpO1xuICAgIGlmICghcGFydGljbGUuZGVzdHJveWVkKSB7XG4gICAgICAgIHBhcnRpY2xlLm9wYWNpdHkudmFsdWUgPSAoMCwgVXRpbHNfMS5jbGFtcCkocGFydGljbGUub3BhY2l0eS52YWx1ZSwgbWluVmFsdWUsIG1heFZhbHVlKTtcbiAgICB9XG59XG5jbGFzcyBPcGFjaXR5VXBkYXRlciB7XG4gICAgY29uc3RydWN0b3IoY29udGFpbmVyKSB7XG4gICAgICAgIHRoaXMuY29udGFpbmVyID0gY29udGFpbmVyO1xuICAgIH1cbiAgICBpbml0KHBhcnRpY2xlKSB7XG4gICAgICAgIGNvbnN0IG9wYWNpdHlPcHRpb25zID0gcGFydGljbGUub3B0aW9ucy5vcGFjaXR5O1xuICAgICAgICBwYXJ0aWNsZS5vcGFjaXR5ID0ge1xuICAgICAgICAgICAgZW5hYmxlOiBvcGFjaXR5T3B0aW9ucy5hbmltYXRpb24uZW5hYmxlLFxuICAgICAgICAgICAgbWF4OiAoMCwgVXRpbHNfMS5nZXRSYW5nZU1heCkob3BhY2l0eU9wdGlvbnMudmFsdWUpLFxuICAgICAgICAgICAgbWluOiAoMCwgVXRpbHNfMS5nZXRSYW5nZU1pbikob3BhY2l0eU9wdGlvbnMudmFsdWUpLFxuICAgICAgICAgICAgdmFsdWU6ICgwLCBVdGlsc18xLmdldFJhbmdlVmFsdWUpKG9wYWNpdHlPcHRpb25zLnZhbHVlKSxcbiAgICAgICAgICAgIGxvb3BzOiAwLFxuICAgICAgICAgICAgbWF4TG9vcHM6IG9wYWNpdHlPcHRpb25zLmFuaW1hdGlvbi5jb3VudCxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3Qgb3BhY2l0eUFuaW1hdGlvbiA9IG9wYWNpdHlPcHRpb25zLmFuaW1hdGlvbjtcbiAgICAgICAgaWYgKG9wYWNpdHlBbmltYXRpb24uZW5hYmxlKSB7XG4gICAgICAgICAgICBwYXJ0aWNsZS5vcGFjaXR5LnN0YXR1cyA9IEVudW1zXzEuQW5pbWF0aW9uU3RhdHVzLmluY3JlYXNpbmc7XG4gICAgICAgICAgICBjb25zdCBvcGFjaXR5UmFuZ2UgPSBvcGFjaXR5T3B0aW9ucy52YWx1ZTtcbiAgICAgICAgICAgIHBhcnRpY2xlLm9wYWNpdHkubWluID0gKDAsIFV0aWxzXzEuZ2V0UmFuZ2VNaW4pKG9wYWNpdHlSYW5nZSk7XG4gICAgICAgICAgICBwYXJ0aWNsZS5vcGFjaXR5Lm1heCA9ICgwLCBVdGlsc18xLmdldFJhbmdlTWF4KShvcGFjaXR5UmFuZ2UpO1xuICAgICAgICAgICAgc3dpdGNoIChvcGFjaXR5QW5pbWF0aW9uLnN0YXJ0VmFsdWUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIEVudW1zXzEuU3RhcnRWYWx1ZVR5cGUubWluOlxuICAgICAgICAgICAgICAgICAgICBwYXJ0aWNsZS5vcGFjaXR5LnZhbHVlID0gcGFydGljbGUub3BhY2l0eS5taW47XG4gICAgICAgICAgICAgICAgICAgIHBhcnRpY2xlLm9wYWNpdHkuc3RhdHVzID0gRW51bXNfMS5BbmltYXRpb25TdGF0dXMuaW5jcmVhc2luZztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBFbnVtc18xLlN0YXJ0VmFsdWVUeXBlLnJhbmRvbTpcbiAgICAgICAgICAgICAgICAgICAgcGFydGljbGUub3BhY2l0eS52YWx1ZSA9ICgwLCBVdGlsc18xLnJhbmRvbUluUmFuZ2UpKHBhcnRpY2xlLm9wYWNpdHkpO1xuICAgICAgICAgICAgICAgICAgICBwYXJ0aWNsZS5vcGFjaXR5LnN0YXR1cyA9XG4gICAgICAgICAgICAgICAgICAgICAgICBNYXRoLnJhbmRvbSgpID49IDAuNSA/IEVudW1zXzEuQW5pbWF0aW9uU3RhdHVzLmluY3JlYXNpbmcgOiBFbnVtc18xLkFuaW1hdGlvblN0YXR1cy5kZWNyZWFzaW5nO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIEVudW1zXzEuU3RhcnRWYWx1ZVR5cGUubWF4OlxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHBhcnRpY2xlLm9wYWNpdHkudmFsdWUgPSBwYXJ0aWNsZS5vcGFjaXR5Lm1heDtcbiAgICAgICAgICAgICAgICAgICAgcGFydGljbGUub3BhY2l0eS5zdGF0dXMgPSBFbnVtc18xLkFuaW1hdGlvblN0YXR1cy5kZWNyZWFzaW5nO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBhcnRpY2xlLm9wYWNpdHkudmVsb2NpdHkgPSAob3BhY2l0eUFuaW1hdGlvbi5zcGVlZCAvIDEwMCkgKiB0aGlzLmNvbnRhaW5lci5yZXRpbmEucmVkdWNlRmFjdG9yO1xuICAgICAgICAgICAgaWYgKCFvcGFjaXR5QW5pbWF0aW9uLnN5bmMpIHtcbiAgICAgICAgICAgICAgICBwYXJ0aWNsZS5vcGFjaXR5LnZlbG9jaXR5ICo9IE1hdGgucmFuZG9tKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgaXNFbmFibGVkKHBhcnRpY2xlKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICByZXR1cm4gKCFwYXJ0aWNsZS5kZXN0cm95ZWQgJiZcbiAgICAgICAgICAgICFwYXJ0aWNsZS5zcGF3bmluZyAmJlxuICAgICAgICAgICAgISFwYXJ0aWNsZS5vcGFjaXR5ICYmXG4gICAgICAgICAgICBwYXJ0aWNsZS5vcGFjaXR5LmVuYWJsZSAmJlxuICAgICAgICAgICAgKCgoX2EgPSBwYXJ0aWNsZS5vcGFjaXR5Lm1heExvb3BzKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAwKSA8PSAwIHx8ICgoX2IgPSBwYXJ0aWNsZS5vcGFjaXR5Lmxvb3BzKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiAwKSA8ICgoX2MgPSBwYXJ0aWNsZS5vcGFjaXR5Lm1heExvb3BzKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiAwKSkpO1xuICAgIH1cbiAgICB1cGRhdGUocGFydGljbGUsIGRlbHRhKSB7XG4gICAgICAgIGlmICghdGhpcy5pc0VuYWJsZWQocGFydGljbGUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdXBkYXRlT3BhY2l0eShwYXJ0aWNsZSwgZGVsdGEpO1xuICAgIH1cbn1cbmV4cG9ydHMuT3BhY2l0eVVwZGF0ZXIgPSBPcGFjaXR5VXBkYXRlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Updaters/Opacity/OpacityUpdater.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Updaters/Opacity/index.js": +/*!************************************************************!*\ + !*** ./node_modules/tsparticles/Updaters/Opacity/index.js ***! + \************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadOpacityUpdater = void 0;\nconst OpacityUpdater_1 = __webpack_require__(/*! ./OpacityUpdater */ \"./node_modules/tsparticles/Updaters/Opacity/OpacityUpdater.js\");\nasync function loadOpacityUpdater(tsParticles) {\n await tsParticles.addParticleUpdater(\"opacity\", (container) => new OpacityUpdater_1.OpacityUpdater(container));\n}\nexports.loadOpacityUpdater = loadOpacityUpdater;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvT3BhY2l0eS9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCwwQkFBMEI7QUFDMUIseUJBQXlCLG1CQUFPLENBQUMsdUZBQWtCO0FBQ25EO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvT3BhY2l0eS9pbmRleC5qcz9kYzFlIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5sb2FkT3BhY2l0eVVwZGF0ZXIgPSB2b2lkIDA7XG5jb25zdCBPcGFjaXR5VXBkYXRlcl8xID0gcmVxdWlyZShcIi4vT3BhY2l0eVVwZGF0ZXJcIik7XG5hc3luYyBmdW5jdGlvbiBsb2FkT3BhY2l0eVVwZGF0ZXIodHNQYXJ0aWNsZXMpIHtcbiAgICBhd2FpdCB0c1BhcnRpY2xlcy5hZGRQYXJ0aWNsZVVwZGF0ZXIoXCJvcGFjaXR5XCIsIChjb250YWluZXIpID0+IG5ldyBPcGFjaXR5VXBkYXRlcl8xLk9wYWNpdHlVcGRhdGVyKGNvbnRhaW5lcikpO1xufVxuZXhwb3J0cy5sb2FkT3BhY2l0eVVwZGF0ZXIgPSBsb2FkT3BhY2l0eVVwZGF0ZXI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Updaters/Opacity/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Updaters/OutModes/OutOfCanvasUpdater.js": +/*!**************************************************************************!*\ + !*** ./node_modules/tsparticles/Updaters/OutModes/OutOfCanvasUpdater.js ***! + \**************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.OutOfCanvasUpdater = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Enums_1 = __webpack_require__(/*! ../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst Utils_2 = __webpack_require__(/*! ./Utils */ \"./node_modules/tsparticles/Updaters/OutModes/Utils.js\");\nclass OutOfCanvasUpdater {\n constructor(container) {\n this.container = container;\n }\n init() {\n }\n isEnabled(particle) {\n return !particle.destroyed && !particle.spawning;\n }\n update(particle, delta) {\n var _a, _b, _c, _d;\n const outModes = particle.options.move.outModes;\n this.updateOutMode(particle, delta, (_a = outModes.bottom) !== null && _a !== void 0 ? _a : outModes.default, Enums_1.OutModeDirection.bottom);\n this.updateOutMode(particle, delta, (_b = outModes.left) !== null && _b !== void 0 ? _b : outModes.default, Enums_1.OutModeDirection.left);\n this.updateOutMode(particle, delta, (_c = outModes.right) !== null && _c !== void 0 ? _c : outModes.default, Enums_1.OutModeDirection.right);\n this.updateOutMode(particle, delta, (_d = outModes.top) !== null && _d !== void 0 ? _d : outModes.default, Enums_1.OutModeDirection.top);\n }\n updateOutMode(particle, delta, outMode, direction) {\n switch (outMode) {\n case Enums_1.OutMode.bounce:\n case Enums_1.OutMode.bounceVertical:\n case Enums_1.OutMode.bounceHorizontal:\n case \"bounceVertical\":\n case \"bounceHorizontal\":\n case Enums_1.OutMode.split:\n this.bounce(particle, delta, direction, outMode);\n break;\n case Enums_1.OutMode.destroy:\n this.destroy(particle, direction);\n break;\n case Enums_1.OutMode.out:\n this.out(particle, direction);\n break;\n case Enums_1.OutMode.none:\n default:\n this.none(particle, direction);\n break;\n }\n }\n destroy(particle, direction) {\n const container = this.container;\n if ((0, Utils_1.isPointInside)(particle.position, container.canvas.size, particle.getRadius(), direction)) {\n return;\n }\n container.particles.remove(particle, undefined, true);\n }\n out(particle, direction) {\n const container = this.container;\n if ((0, Utils_1.isPointInside)(particle.position, container.canvas.size, particle.getRadius(), direction)) {\n return;\n }\n const wrap = particle.options.move.warp, canvasSize = container.canvas.size, newPos = {\n bottom: canvasSize.height + particle.getRadius() + particle.offset.y,\n left: -particle.getRadius() - particle.offset.x,\n right: canvasSize.width + particle.getRadius() + particle.offset.x,\n top: -particle.getRadius() - particle.offset.y,\n }, sizeValue = particle.getRadius(), nextBounds = (0, Utils_1.calculateBounds)(particle.position, sizeValue);\n if (direction === Enums_1.OutModeDirection.right && nextBounds.left > canvasSize.width + particle.offset.x) {\n particle.position.x = newPos.left;\n particle.initialPosition.x = particle.position.x;\n if (!wrap) {\n particle.position.y = Math.random() * canvasSize.height;\n particle.initialPosition.y = particle.position.y;\n }\n }\n else if (direction === Enums_1.OutModeDirection.left && nextBounds.right < -particle.offset.x) {\n particle.position.x = newPos.right;\n particle.initialPosition.x = particle.position.x;\n if (!wrap) {\n particle.position.y = Math.random() * canvasSize.height;\n particle.initialPosition.y = particle.position.y;\n }\n }\n if (direction === Enums_1.OutModeDirection.bottom && nextBounds.top > canvasSize.height + particle.offset.y) {\n if (!wrap) {\n particle.position.x = Math.random() * canvasSize.width;\n particle.initialPosition.x = particle.position.x;\n }\n particle.position.y = newPos.top;\n particle.initialPosition.y = particle.position.y;\n }\n else if (direction === Enums_1.OutModeDirection.top && nextBounds.bottom < -particle.offset.y) {\n if (!wrap) {\n particle.position.x = Math.random() * canvasSize.width;\n particle.initialPosition.x = particle.position.x;\n }\n particle.position.y = newPos.bottom;\n particle.initialPosition.y = particle.position.y;\n }\n }\n bounce(particle, delta, direction, outMode) {\n const container = this.container;\n let handled = false;\n for (const [, plugin] of container.plugins) {\n if (plugin.particleBounce !== undefined) {\n handled = plugin.particleBounce(particle, delta, direction);\n }\n if (handled) {\n break;\n }\n }\n if (handled) {\n return;\n }\n const pos = particle.getPosition(), offset = particle.offset, size = particle.getRadius(), bounds = (0, Utils_1.calculateBounds)(pos, size), canvasSize = container.canvas.size;\n (0, Utils_2.bounceHorizontal)({ particle, outMode, direction, bounds, canvasSize, offset, size });\n (0, Utils_2.bounceVertical)({ particle, outMode, direction, bounds, canvasSize, offset, size });\n }\n none(particle, direction) {\n if ((particle.options.move.distance.horizontal &&\n (direction === Enums_1.OutModeDirection.left || direction === Enums_1.OutModeDirection.right)) ||\n (particle.options.move.distance.vertical &&\n (direction === Enums_1.OutModeDirection.top || direction === Enums_1.OutModeDirection.bottom))) {\n return;\n }\n const gravityOptions = particle.options.move.gravity, container = this.container;\n const canvasSize = container.canvas.size;\n const pRadius = particle.getRadius();\n if (!gravityOptions.enable) {\n if ((particle.velocity.y > 0 && particle.position.y <= canvasSize.height + pRadius) ||\n (particle.velocity.y < 0 && particle.position.y >= -pRadius) ||\n (particle.velocity.x > 0 && particle.position.x <= canvasSize.width + pRadius) ||\n (particle.velocity.x < 0 && particle.position.x >= -pRadius)) {\n return;\n }\n if (!(0, Utils_1.isPointInside)(particle.position, container.canvas.size, pRadius, direction)) {\n container.particles.remove(particle);\n }\n }\n else {\n const position = particle.position;\n if ((!gravityOptions.inverse &&\n position.y > canvasSize.height + pRadius &&\n direction === Enums_1.OutModeDirection.bottom) ||\n (gravityOptions.inverse && position.y < -pRadius && direction === Enums_1.OutModeDirection.top)) {\n container.particles.remove(particle);\n }\n }\n }\n}\nexports.OutOfCanvasUpdater = OutOfCanvasUpdater;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvT3V0TW9kZXMvT3V0T2ZDYW52YXNVcGRhdGVyLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELDBCQUEwQjtBQUMxQixnQkFBZ0IsbUJBQU8sQ0FBQyw4REFBYTtBQUNyQyxnQkFBZ0IsbUJBQU8sQ0FBQyw4REFBYTtBQUNyQyxnQkFBZ0IsbUJBQU8sQ0FBQyxzRUFBUztBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdDQUF3QyxnRUFBZ0U7QUFDeEcsc0NBQXNDLGdFQUFnRTtBQUN0RztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1VwZGF0ZXJzL091dE1vZGVzL091dE9mQ2FudmFzVXBkYXRlci5qcz9kNGYxIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5PdXRPZkNhbnZhc1VwZGF0ZXIgPSB2b2lkIDA7XG5jb25zdCBVdGlsc18xID0gcmVxdWlyZShcIi4uLy4uL1V0aWxzXCIpO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuLi8uLi9FbnVtc1wiKTtcbmNvbnN0IFV0aWxzXzIgPSByZXF1aXJlKFwiLi9VdGlsc1wiKTtcbmNsYXNzIE91dE9mQ2FudmFzVXBkYXRlciB7XG4gICAgY29uc3RydWN0b3IoY29udGFpbmVyKSB7XG4gICAgICAgIHRoaXMuY29udGFpbmVyID0gY29udGFpbmVyO1xuICAgIH1cbiAgICBpbml0KCkge1xuICAgIH1cbiAgICBpc0VuYWJsZWQocGFydGljbGUpIHtcbiAgICAgICAgcmV0dXJuICFwYXJ0aWNsZS5kZXN0cm95ZWQgJiYgIXBhcnRpY2xlLnNwYXduaW5nO1xuICAgIH1cbiAgICB1cGRhdGUocGFydGljbGUsIGRlbHRhKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZDtcbiAgICAgICAgY29uc3Qgb3V0TW9kZXMgPSBwYXJ0aWNsZS5vcHRpb25zLm1vdmUub3V0TW9kZXM7XG4gICAgICAgIHRoaXMudXBkYXRlT3V0TW9kZShwYXJ0aWNsZSwgZGVsdGEsIChfYSA9IG91dE1vZGVzLmJvdHRvbSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogb3V0TW9kZXMuZGVmYXVsdCwgRW51bXNfMS5PdXRNb2RlRGlyZWN0aW9uLmJvdHRvbSk7XG4gICAgICAgIHRoaXMudXBkYXRlT3V0TW9kZShwYXJ0aWNsZSwgZGVsdGEsIChfYiA9IG91dE1vZGVzLmxlZnQpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IG91dE1vZGVzLmRlZmF1bHQsIEVudW1zXzEuT3V0TW9kZURpcmVjdGlvbi5sZWZ0KTtcbiAgICAgICAgdGhpcy51cGRhdGVPdXRNb2RlKHBhcnRpY2xlLCBkZWx0YSwgKF9jID0gb3V0TW9kZXMucmlnaHQpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IG91dE1vZGVzLmRlZmF1bHQsIEVudW1zXzEuT3V0TW9kZURpcmVjdGlvbi5yaWdodCk7XG4gICAgICAgIHRoaXMudXBkYXRlT3V0TW9kZShwYXJ0aWNsZSwgZGVsdGEsIChfZCA9IG91dE1vZGVzLnRvcCkgIT09IG51bGwgJiYgX2QgIT09IHZvaWQgMCA/IF9kIDogb3V0TW9kZXMuZGVmYXVsdCwgRW51bXNfMS5PdXRNb2RlRGlyZWN0aW9uLnRvcCk7XG4gICAgfVxuICAgIHVwZGF0ZU91dE1vZGUocGFydGljbGUsIGRlbHRhLCBvdXRNb2RlLCBkaXJlY3Rpb24pIHtcbiAgICAgICAgc3dpdGNoIChvdXRNb2RlKSB7XG4gICAgICAgICAgICBjYXNlIEVudW1zXzEuT3V0TW9kZS5ib3VuY2U6XG4gICAgICAgICAgICBjYXNlIEVudW1zXzEuT3V0TW9kZS5ib3VuY2VWZXJ0aWNhbDpcbiAgICAgICAgICAgIGNhc2UgRW51bXNfMS5PdXRNb2RlLmJvdW5jZUhvcml6b250YWw6XG4gICAgICAgICAgICBjYXNlIFwiYm91bmNlVmVydGljYWxcIjpcbiAgICAgICAgICAgIGNhc2UgXCJib3VuY2VIb3Jpem9udGFsXCI6XG4gICAgICAgICAgICBjYXNlIEVudW1zXzEuT3V0TW9kZS5zcGxpdDpcbiAgICAgICAgICAgICAgICB0aGlzLmJvdW5jZShwYXJ0aWNsZSwgZGVsdGEsIGRpcmVjdGlvbiwgb3V0TW9kZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEVudW1zXzEuT3V0TW9kZS5kZXN0cm95OlxuICAgICAgICAgICAgICAgIHRoaXMuZGVzdHJveShwYXJ0aWNsZSwgZGlyZWN0aW9uKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRW51bXNfMS5PdXRNb2RlLm91dDpcbiAgICAgICAgICAgICAgICB0aGlzLm91dChwYXJ0aWNsZSwgZGlyZWN0aW9uKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRW51bXNfMS5PdXRNb2RlLm5vbmU6XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRoaXMubm9uZShwYXJ0aWNsZSwgZGlyZWN0aW9uKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgICBkZXN0cm95KHBhcnRpY2xlLCBkaXJlY3Rpb24pIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXI7XG4gICAgICAgIGlmICgoMCwgVXRpbHNfMS5pc1BvaW50SW5zaWRlKShwYXJ0aWNsZS5wb3NpdGlvbiwgY29udGFpbmVyLmNhbnZhcy5zaXplLCBwYXJ0aWNsZS5nZXRSYWRpdXMoKSwgZGlyZWN0aW9uKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnRhaW5lci5wYXJ0aWNsZXMucmVtb3ZlKHBhcnRpY2xlLCB1bmRlZmluZWQsIHRydWUpO1xuICAgIH1cbiAgICBvdXQocGFydGljbGUsIGRpcmVjdGlvbikge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgaWYgKCgwLCBVdGlsc18xLmlzUG9pbnRJbnNpZGUpKHBhcnRpY2xlLnBvc2l0aW9uLCBjb250YWluZXIuY2FudmFzLnNpemUsIHBhcnRpY2xlLmdldFJhZGl1cygpLCBkaXJlY3Rpb24pKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgd3JhcCA9IHBhcnRpY2xlLm9wdGlvbnMubW92ZS53YXJwLCBjYW52YXNTaXplID0gY29udGFpbmVyLmNhbnZhcy5zaXplLCBuZXdQb3MgPSB7XG4gICAgICAgICAgICBib3R0b206IGNhbnZhc1NpemUuaGVpZ2h0ICsgcGFydGljbGUuZ2V0UmFkaXVzKCkgKyBwYXJ0aWNsZS5vZmZzZXQueSxcbiAgICAgICAgICAgIGxlZnQ6IC1wYXJ0aWNsZS5nZXRSYWRpdXMoKSAtIHBhcnRpY2xlLm9mZnNldC54LFxuICAgICAgICAgICAgcmlnaHQ6IGNhbnZhc1NpemUud2lkdGggKyBwYXJ0aWNsZS5nZXRSYWRpdXMoKSArIHBhcnRpY2xlLm9mZnNldC54LFxuICAgICAgICAgICAgdG9wOiAtcGFydGljbGUuZ2V0UmFkaXVzKCkgLSBwYXJ0aWNsZS5vZmZzZXQueSxcbiAgICAgICAgfSwgc2l6ZVZhbHVlID0gcGFydGljbGUuZ2V0UmFkaXVzKCksIG5leHRCb3VuZHMgPSAoMCwgVXRpbHNfMS5jYWxjdWxhdGVCb3VuZHMpKHBhcnRpY2xlLnBvc2l0aW9uLCBzaXplVmFsdWUpO1xuICAgICAgICBpZiAoZGlyZWN0aW9uID09PSBFbnVtc18xLk91dE1vZGVEaXJlY3Rpb24ucmlnaHQgJiYgbmV4dEJvdW5kcy5sZWZ0ID4gY2FudmFzU2l6ZS53aWR0aCArIHBhcnRpY2xlLm9mZnNldC54KSB7XG4gICAgICAgICAgICBwYXJ0aWNsZS5wb3NpdGlvbi54ID0gbmV3UG9zLmxlZnQ7XG4gICAgICAgICAgICBwYXJ0aWNsZS5pbml0aWFsUG9zaXRpb24ueCA9IHBhcnRpY2xlLnBvc2l0aW9uLng7XG4gICAgICAgICAgICBpZiAoIXdyYXApIHtcbiAgICAgICAgICAgICAgICBwYXJ0aWNsZS5wb3NpdGlvbi55ID0gTWF0aC5yYW5kb20oKSAqIGNhbnZhc1NpemUuaGVpZ2h0O1xuICAgICAgICAgICAgICAgIHBhcnRpY2xlLmluaXRpYWxQb3NpdGlvbi55ID0gcGFydGljbGUucG9zaXRpb24ueTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChkaXJlY3Rpb24gPT09IEVudW1zXzEuT3V0TW9kZURpcmVjdGlvbi5sZWZ0ICYmIG5leHRCb3VuZHMucmlnaHQgPCAtcGFydGljbGUub2Zmc2V0LngpIHtcbiAgICAgICAgICAgIHBhcnRpY2xlLnBvc2l0aW9uLnggPSBuZXdQb3MucmlnaHQ7XG4gICAgICAgICAgICBwYXJ0aWNsZS5pbml0aWFsUG9zaXRpb24ueCA9IHBhcnRpY2xlLnBvc2l0aW9uLng7XG4gICAgICAgICAgICBpZiAoIXdyYXApIHtcbiAgICAgICAgICAgICAgICBwYXJ0aWNsZS5wb3NpdGlvbi55ID0gTWF0aC5yYW5kb20oKSAqIGNhbnZhc1NpemUuaGVpZ2h0O1xuICAgICAgICAgICAgICAgIHBhcnRpY2xlLmluaXRpYWxQb3NpdGlvbi55ID0gcGFydGljbGUucG9zaXRpb24ueTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoZGlyZWN0aW9uID09PSBFbnVtc18xLk91dE1vZGVEaXJlY3Rpb24uYm90dG9tICYmIG5leHRCb3VuZHMudG9wID4gY2FudmFzU2l6ZS5oZWlnaHQgKyBwYXJ0aWNsZS5vZmZzZXQueSkge1xuICAgICAgICAgICAgaWYgKCF3cmFwKSB7XG4gICAgICAgICAgICAgICAgcGFydGljbGUucG9zaXRpb24ueCA9IE1hdGgucmFuZG9tKCkgKiBjYW52YXNTaXplLndpZHRoO1xuICAgICAgICAgICAgICAgIHBhcnRpY2xlLmluaXRpYWxQb3NpdGlvbi54ID0gcGFydGljbGUucG9zaXRpb24ueDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBhcnRpY2xlLnBvc2l0aW9uLnkgPSBuZXdQb3MudG9wO1xuICAgICAgICAgICAgcGFydGljbGUuaW5pdGlhbFBvc2l0aW9uLnkgPSBwYXJ0aWNsZS5wb3NpdGlvbi55O1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGRpcmVjdGlvbiA9PT0gRW51bXNfMS5PdXRNb2RlRGlyZWN0aW9uLnRvcCAmJiBuZXh0Qm91bmRzLmJvdHRvbSA8IC1wYXJ0aWNsZS5vZmZzZXQueSkge1xuICAgICAgICAgICAgaWYgKCF3cmFwKSB7XG4gICAgICAgICAgICAgICAgcGFydGljbGUucG9zaXRpb24ueCA9IE1hdGgucmFuZG9tKCkgKiBjYW52YXNTaXplLndpZHRoO1xuICAgICAgICAgICAgICAgIHBhcnRpY2xlLmluaXRpYWxQb3NpdGlvbi54ID0gcGFydGljbGUucG9zaXRpb24ueDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBhcnRpY2xlLnBvc2l0aW9uLnkgPSBuZXdQb3MuYm90dG9tO1xuICAgICAgICAgICAgcGFydGljbGUuaW5pdGlhbFBvc2l0aW9uLnkgPSBwYXJ0aWNsZS5wb3NpdGlvbi55O1xuICAgICAgICB9XG4gICAgfVxuICAgIGJvdW5jZShwYXJ0aWNsZSwgZGVsdGEsIGRpcmVjdGlvbiwgb3V0TW9kZSkge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgbGV0IGhhbmRsZWQgPSBmYWxzZTtcbiAgICAgICAgZm9yIChjb25zdCBbLCBwbHVnaW5dIG9mIGNvbnRhaW5lci5wbHVnaW5zKSB7XG4gICAgICAgICAgICBpZiAocGx1Z2luLnBhcnRpY2xlQm91bmNlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBoYW5kbGVkID0gcGx1Z2luLnBhcnRpY2xlQm91bmNlKHBhcnRpY2xlLCBkZWx0YSwgZGlyZWN0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChoYW5kbGVkKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGhhbmRsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwb3MgPSBwYXJ0aWNsZS5nZXRQb3NpdGlvbigpLCBvZmZzZXQgPSBwYXJ0aWNsZS5vZmZzZXQsIHNpemUgPSBwYXJ0aWNsZS5nZXRSYWRpdXMoKSwgYm91bmRzID0gKDAsIFV0aWxzXzEuY2FsY3VsYXRlQm91bmRzKShwb3MsIHNpemUpLCBjYW52YXNTaXplID0gY29udGFpbmVyLmNhbnZhcy5zaXplO1xuICAgICAgICAoMCwgVXRpbHNfMi5ib3VuY2VIb3Jpem9udGFsKSh7IHBhcnRpY2xlLCBvdXRNb2RlLCBkaXJlY3Rpb24sIGJvdW5kcywgY2FudmFzU2l6ZSwgb2Zmc2V0LCBzaXplIH0pO1xuICAgICAgICAoMCwgVXRpbHNfMi5ib3VuY2VWZXJ0aWNhbCkoeyBwYXJ0aWNsZSwgb3V0TW9kZSwgZGlyZWN0aW9uLCBib3VuZHMsIGNhbnZhc1NpemUsIG9mZnNldCwgc2l6ZSB9KTtcbiAgICB9XG4gICAgbm9uZShwYXJ0aWNsZSwgZGlyZWN0aW9uKSB7XG4gICAgICAgIGlmICgocGFydGljbGUub3B0aW9ucy5tb3ZlLmRpc3RhbmNlLmhvcml6b250YWwgJiZcbiAgICAgICAgICAgIChkaXJlY3Rpb24gPT09IEVudW1zXzEuT3V0TW9kZURpcmVjdGlvbi5sZWZ0IHx8IGRpcmVjdGlvbiA9PT0gRW51bXNfMS5PdXRNb2RlRGlyZWN0aW9uLnJpZ2h0KSkgfHxcbiAgICAgICAgICAgIChwYXJ0aWNsZS5vcHRpb25zLm1vdmUuZGlzdGFuY2UudmVydGljYWwgJiZcbiAgICAgICAgICAgICAgICAoZGlyZWN0aW9uID09PSBFbnVtc18xLk91dE1vZGVEaXJlY3Rpb24udG9wIHx8IGRpcmVjdGlvbiA9PT0gRW51bXNfMS5PdXRNb2RlRGlyZWN0aW9uLmJvdHRvbSkpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZ3Jhdml0eU9wdGlvbnMgPSBwYXJ0aWNsZS5vcHRpb25zLm1vdmUuZ3Jhdml0eSwgY29udGFpbmVyID0gdGhpcy5jb250YWluZXI7XG4gICAgICAgIGNvbnN0IGNhbnZhc1NpemUgPSBjb250YWluZXIuY2FudmFzLnNpemU7XG4gICAgICAgIGNvbnN0IHBSYWRpdXMgPSBwYXJ0aWNsZS5nZXRSYWRpdXMoKTtcbiAgICAgICAgaWYgKCFncmF2aXR5T3B0aW9ucy5lbmFibGUpIHtcbiAgICAgICAgICAgIGlmICgocGFydGljbGUudmVsb2NpdHkueSA+IDAgJiYgcGFydGljbGUucG9zaXRpb24ueSA8PSBjYW52YXNTaXplLmhlaWdodCArIHBSYWRpdXMpIHx8XG4gICAgICAgICAgICAgICAgKHBhcnRpY2xlLnZlbG9jaXR5LnkgPCAwICYmIHBhcnRpY2xlLnBvc2l0aW9uLnkgPj0gLXBSYWRpdXMpIHx8XG4gICAgICAgICAgICAgICAgKHBhcnRpY2xlLnZlbG9jaXR5LnggPiAwICYmIHBhcnRpY2xlLnBvc2l0aW9uLnggPD0gY2FudmFzU2l6ZS53aWR0aCArIHBSYWRpdXMpIHx8XG4gICAgICAgICAgICAgICAgKHBhcnRpY2xlLnZlbG9jaXR5LnggPCAwICYmIHBhcnRpY2xlLnBvc2l0aW9uLnggPj0gLXBSYWRpdXMpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCEoMCwgVXRpbHNfMS5pc1BvaW50SW5zaWRlKShwYXJ0aWNsZS5wb3NpdGlvbiwgY29udGFpbmVyLmNhbnZhcy5zaXplLCBwUmFkaXVzLCBkaXJlY3Rpb24pKSB7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLnBhcnRpY2xlcy5yZW1vdmUocGFydGljbGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgcG9zaXRpb24gPSBwYXJ0aWNsZS5wb3NpdGlvbjtcbiAgICAgICAgICAgIGlmICgoIWdyYXZpdHlPcHRpb25zLmludmVyc2UgJiZcbiAgICAgICAgICAgICAgICBwb3NpdGlvbi55ID4gY2FudmFzU2l6ZS5oZWlnaHQgKyBwUmFkaXVzICYmXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uID09PSBFbnVtc18xLk91dE1vZGVEaXJlY3Rpb24uYm90dG9tKSB8fFxuICAgICAgICAgICAgICAgIChncmF2aXR5T3B0aW9ucy5pbnZlcnNlICYmIHBvc2l0aW9uLnkgPCAtcFJhZGl1cyAmJiBkaXJlY3Rpb24gPT09IEVudW1zXzEuT3V0TW9kZURpcmVjdGlvbi50b3ApKSB7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLnBhcnRpY2xlcy5yZW1vdmUocGFydGljbGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5PdXRPZkNhbnZhc1VwZGF0ZXIgPSBPdXRPZkNhbnZhc1VwZGF0ZXI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Updaters/OutModes/OutOfCanvasUpdater.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Updaters/OutModes/Utils.js": +/*!*************************************************************!*\ + !*** ./node_modules/tsparticles/Updaters/OutModes/Utils.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.bounceVertical = exports.bounceHorizontal = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nfunction bounceHorizontal(data) {\n if (!(data.outMode === Enums_1.OutMode.bounce ||\n data.outMode === Enums_1.OutMode.bounceHorizontal ||\n data.outMode === \"bounceHorizontal\" ||\n data.outMode === Enums_1.OutMode.split)) {\n return;\n }\n const velocity = data.particle.velocity.x;\n let bounced = false;\n if ((data.direction === Enums_1.OutModeDirection.right && data.bounds.right >= data.canvasSize.width && velocity > 0) ||\n (data.direction === Enums_1.OutModeDirection.left && data.bounds.left <= 0 && velocity < 0)) {\n const newVelocity = (0, Utils_1.getRangeValue)(data.particle.options.bounce.horizontal.value);\n data.particle.velocity.x *= -newVelocity;\n bounced = true;\n }\n if (!bounced) {\n return;\n }\n const minPos = data.offset.x + data.size;\n if (data.bounds.right >= data.canvasSize.width) {\n data.particle.position.x = data.canvasSize.width - minPos;\n }\n else if (data.bounds.left <= 0) {\n data.particle.position.x = minPos;\n }\n if (data.outMode === Enums_1.OutMode.split) {\n data.particle.destroy();\n }\n}\nexports.bounceHorizontal = bounceHorizontal;\nfunction bounceVertical(data) {\n if (data.outMode === Enums_1.OutMode.bounce ||\n data.outMode === Enums_1.OutMode.bounceVertical ||\n data.outMode === \"bounceVertical\" ||\n data.outMode === Enums_1.OutMode.split) {\n const velocity = data.particle.velocity.y;\n let bounced = false;\n if ((data.direction === Enums_1.OutModeDirection.bottom &&\n data.bounds.bottom >= data.canvasSize.height &&\n velocity > 0) ||\n (data.direction === Enums_1.OutModeDirection.top && data.bounds.top <= 0 && velocity < 0)) {\n const newVelocity = (0, Utils_1.getRangeValue)(data.particle.options.bounce.vertical.value);\n data.particle.velocity.y *= -newVelocity;\n bounced = true;\n }\n if (!bounced) {\n return;\n }\n const minPos = data.offset.y + data.size;\n if (data.bounds.bottom >= data.canvasSize.height) {\n data.particle.position.y = data.canvasSize.height - minPos;\n }\n else if (data.bounds.top <= 0) {\n data.particle.position.y = minPos;\n }\n if (data.outMode === Enums_1.OutMode.split) {\n data.particle.destroy();\n }\n }\n}\nexports.bounceVertical = bounceVertical;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvT3V0TW9kZXMvVXRpbHMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsc0JBQXNCLEdBQUcsd0JBQXdCO0FBQ2pELGdCQUFnQixtQkFBTyxDQUFDLDhEQUFhO0FBQ3JDLGdCQUFnQixtQkFBTyxDQUFDLDhEQUFhO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0I7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9VcGRhdGVycy9PdXRNb2Rlcy9VdGlscy5qcz82OTE4Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5ib3VuY2VWZXJ0aWNhbCA9IGV4cG9ydHMuYm91bmNlSG9yaXpvbnRhbCA9IHZvaWQgMDtcbmNvbnN0IEVudW1zXzEgPSByZXF1aXJlKFwiLi4vLi4vRW51bXNcIik7XG5jb25zdCBVdGlsc18xID0gcmVxdWlyZShcIi4uLy4uL1V0aWxzXCIpO1xuZnVuY3Rpb24gYm91bmNlSG9yaXpvbnRhbChkYXRhKSB7XG4gICAgaWYgKCEoZGF0YS5vdXRNb2RlID09PSBFbnVtc18xLk91dE1vZGUuYm91bmNlIHx8XG4gICAgICAgIGRhdGEub3V0TW9kZSA9PT0gRW51bXNfMS5PdXRNb2RlLmJvdW5jZUhvcml6b250YWwgfHxcbiAgICAgICAgZGF0YS5vdXRNb2RlID09PSBcImJvdW5jZUhvcml6b250YWxcIiB8fFxuICAgICAgICBkYXRhLm91dE1vZGUgPT09IEVudW1zXzEuT3V0TW9kZS5zcGxpdCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB2ZWxvY2l0eSA9IGRhdGEucGFydGljbGUudmVsb2NpdHkueDtcbiAgICBsZXQgYm91bmNlZCA9IGZhbHNlO1xuICAgIGlmICgoZGF0YS5kaXJlY3Rpb24gPT09IEVudW1zXzEuT3V0TW9kZURpcmVjdGlvbi5yaWdodCAmJiBkYXRhLmJvdW5kcy5yaWdodCA+PSBkYXRhLmNhbnZhc1NpemUud2lkdGggJiYgdmVsb2NpdHkgPiAwKSB8fFxuICAgICAgICAoZGF0YS5kaXJlY3Rpb24gPT09IEVudW1zXzEuT3V0TW9kZURpcmVjdGlvbi5sZWZ0ICYmIGRhdGEuYm91bmRzLmxlZnQgPD0gMCAmJiB2ZWxvY2l0eSA8IDApKSB7XG4gICAgICAgIGNvbnN0IG5ld1ZlbG9jaXR5ID0gKDAsIFV0aWxzXzEuZ2V0UmFuZ2VWYWx1ZSkoZGF0YS5wYXJ0aWNsZS5vcHRpb25zLmJvdW5jZS5ob3Jpem9udGFsLnZhbHVlKTtcbiAgICAgICAgZGF0YS5wYXJ0aWNsZS52ZWxvY2l0eS54ICo9IC1uZXdWZWxvY2l0eTtcbiAgICAgICAgYm91bmNlZCA9IHRydWU7XG4gICAgfVxuICAgIGlmICghYm91bmNlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG1pblBvcyA9IGRhdGEub2Zmc2V0LnggKyBkYXRhLnNpemU7XG4gICAgaWYgKGRhdGEuYm91bmRzLnJpZ2h0ID49IGRhdGEuY2FudmFzU2l6ZS53aWR0aCkge1xuICAgICAgICBkYXRhLnBhcnRpY2xlLnBvc2l0aW9uLnggPSBkYXRhLmNhbnZhc1NpemUud2lkdGggLSBtaW5Qb3M7XG4gICAgfVxuICAgIGVsc2UgaWYgKGRhdGEuYm91bmRzLmxlZnQgPD0gMCkge1xuICAgICAgICBkYXRhLnBhcnRpY2xlLnBvc2l0aW9uLnggPSBtaW5Qb3M7XG4gICAgfVxuICAgIGlmIChkYXRhLm91dE1vZGUgPT09IEVudW1zXzEuT3V0TW9kZS5zcGxpdCkge1xuICAgICAgICBkYXRhLnBhcnRpY2xlLmRlc3Ryb3koKTtcbiAgICB9XG59XG5leHBvcnRzLmJvdW5jZUhvcml6b250YWwgPSBib3VuY2VIb3Jpem9udGFsO1xuZnVuY3Rpb24gYm91bmNlVmVydGljYWwoZGF0YSkge1xuICAgIGlmIChkYXRhLm91dE1vZGUgPT09IEVudW1zXzEuT3V0TW9kZS5ib3VuY2UgfHxcbiAgICAgICAgZGF0YS5vdXRNb2RlID09PSBFbnVtc18xLk91dE1vZGUuYm91bmNlVmVydGljYWwgfHxcbiAgICAgICAgZGF0YS5vdXRNb2RlID09PSBcImJvdW5jZVZlcnRpY2FsXCIgfHxcbiAgICAgICAgZGF0YS5vdXRNb2RlID09PSBFbnVtc18xLk91dE1vZGUuc3BsaXQpIHtcbiAgICAgICAgY29uc3QgdmVsb2NpdHkgPSBkYXRhLnBhcnRpY2xlLnZlbG9jaXR5Lnk7XG4gICAgICAgIGxldCBib3VuY2VkID0gZmFsc2U7XG4gICAgICAgIGlmICgoZGF0YS5kaXJlY3Rpb24gPT09IEVudW1zXzEuT3V0TW9kZURpcmVjdGlvbi5ib3R0b20gJiZcbiAgICAgICAgICAgIGRhdGEuYm91bmRzLmJvdHRvbSA+PSBkYXRhLmNhbnZhc1NpemUuaGVpZ2h0ICYmXG4gICAgICAgICAgICB2ZWxvY2l0eSA+IDApIHx8XG4gICAgICAgICAgICAoZGF0YS5kaXJlY3Rpb24gPT09IEVudW1zXzEuT3V0TW9kZURpcmVjdGlvbi50b3AgJiYgZGF0YS5ib3VuZHMudG9wIDw9IDAgJiYgdmVsb2NpdHkgPCAwKSkge1xuICAgICAgICAgICAgY29uc3QgbmV3VmVsb2NpdHkgPSAoMCwgVXRpbHNfMS5nZXRSYW5nZVZhbHVlKShkYXRhLnBhcnRpY2xlLm9wdGlvbnMuYm91bmNlLnZlcnRpY2FsLnZhbHVlKTtcbiAgICAgICAgICAgIGRhdGEucGFydGljbGUudmVsb2NpdHkueSAqPSAtbmV3VmVsb2NpdHk7XG4gICAgICAgICAgICBib3VuY2VkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWJvdW5jZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtaW5Qb3MgPSBkYXRhLm9mZnNldC55ICsgZGF0YS5zaXplO1xuICAgICAgICBpZiAoZGF0YS5ib3VuZHMuYm90dG9tID49IGRhdGEuY2FudmFzU2l6ZS5oZWlnaHQpIHtcbiAgICAgICAgICAgIGRhdGEucGFydGljbGUucG9zaXRpb24ueSA9IGRhdGEuY2FudmFzU2l6ZS5oZWlnaHQgLSBtaW5Qb3M7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoZGF0YS5ib3VuZHMudG9wIDw9IDApIHtcbiAgICAgICAgICAgIGRhdGEucGFydGljbGUucG9zaXRpb24ueSA9IG1pblBvcztcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5vdXRNb2RlID09PSBFbnVtc18xLk91dE1vZGUuc3BsaXQpIHtcbiAgICAgICAgICAgIGRhdGEucGFydGljbGUuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5ib3VuY2VWZXJ0aWNhbCA9IGJvdW5jZVZlcnRpY2FsO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Updaters/OutModes/Utils.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Updaters/OutModes/index.js": +/*!*************************************************************!*\ + !*** ./node_modules/tsparticles/Updaters/OutModes/index.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadOutModesUpdater = void 0;\nconst OutOfCanvasUpdater_1 = __webpack_require__(/*! ./OutOfCanvasUpdater */ \"./node_modules/tsparticles/Updaters/OutModes/OutOfCanvasUpdater.js\");\nasync function loadOutModesUpdater(tsParticles) {\n await tsParticles.addParticleUpdater(\"outModes\", (container) => new OutOfCanvasUpdater_1.OutOfCanvasUpdater(container));\n}\nexports.loadOutModesUpdater = loadOutModesUpdater;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvT3V0TW9kZXMvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsMkJBQTJCO0FBQzNCLDZCQUE2QixtQkFBTyxDQUFDLGdHQUFzQjtBQUMzRDtBQUNBO0FBQ0E7QUFDQSwyQkFBMkIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1VwZGF0ZXJzL091dE1vZGVzL2luZGV4LmpzPzQxODkiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmxvYWRPdXRNb2Rlc1VwZGF0ZXIgPSB2b2lkIDA7XG5jb25zdCBPdXRPZkNhbnZhc1VwZGF0ZXJfMSA9IHJlcXVpcmUoXCIuL091dE9mQ2FudmFzVXBkYXRlclwiKTtcbmFzeW5jIGZ1bmN0aW9uIGxvYWRPdXRNb2Rlc1VwZGF0ZXIodHNQYXJ0aWNsZXMpIHtcbiAgICBhd2FpdCB0c1BhcnRpY2xlcy5hZGRQYXJ0aWNsZVVwZGF0ZXIoXCJvdXRNb2Rlc1wiLCAoY29udGFpbmVyKSA9PiBuZXcgT3V0T2ZDYW52YXNVcGRhdGVyXzEuT3V0T2ZDYW52YXNVcGRhdGVyKGNvbnRhaW5lcikpO1xufVxuZXhwb3J0cy5sb2FkT3V0TW9kZXNVcGRhdGVyID0gbG9hZE91dE1vZGVzVXBkYXRlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Updaters/OutModes/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Updaters/Roll/RollUpdater.js": +/*!***************************************************************!*\ + !*** ./node_modules/tsparticles/Updaters/Roll/RollUpdater.js ***! + \***************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.RollUpdater = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Enums_1 = __webpack_require__(/*! ../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nfunction updateRoll(particle, delta) {\n const roll = particle.options.roll;\n if (!particle.roll || !roll.enable) {\n return;\n }\n const speed = particle.roll.speed * delta.factor;\n const max = 2 * Math.PI;\n particle.roll.angle += speed;\n if (particle.roll.angle > max) {\n particle.roll.angle -= max;\n }\n}\nclass RollUpdater {\n init(particle) {\n const rollOpt = particle.options.roll;\n if (rollOpt.enable) {\n particle.roll = {\n angle: Math.random() * Math.PI * 2,\n speed: (0, Utils_1.getRangeValue)(rollOpt.speed) / 360,\n };\n if (rollOpt.backColor) {\n particle.backColor = (0, Utils_1.colorToHsl)(rollOpt.backColor);\n }\n else if (rollOpt.darken.enable && rollOpt.enlighten.enable) {\n const alterType = Math.random() >= 0.5 ? Enums_1.AlterType.darken : Enums_1.AlterType.enlighten;\n particle.roll.alter = {\n type: alterType,\n value: alterType === Enums_1.AlterType.darken ? rollOpt.darken.value : rollOpt.enlighten.value,\n };\n }\n else if (rollOpt.darken.enable) {\n particle.roll.alter = {\n type: Enums_1.AlterType.darken,\n value: rollOpt.darken.value,\n };\n }\n else if (rollOpt.enlighten.enable) {\n particle.roll.alter = {\n type: Enums_1.AlterType.enlighten,\n value: rollOpt.enlighten.value,\n };\n }\n }\n else {\n particle.roll = { angle: 0, speed: 0 };\n }\n }\n isEnabled(particle) {\n const roll = particle.options.roll;\n return !particle.destroyed && !particle.spawning && roll.enable;\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateRoll(particle, delta);\n }\n}\nexports.RollUpdater = RollUpdater;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvUm9sbC9Sb2xsVXBkYXRlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxtQkFBbUI7QUFDbkIsZ0JBQWdCLG1CQUFPLENBQUMsOERBQWE7QUFDckMsZ0JBQWdCLG1CQUFPLENBQUMsOERBQWE7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QjtBQUM5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvUm9sbC9Sb2xsVXBkYXRlci5qcz9lOTAyIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Sb2xsVXBkYXRlciA9IHZvaWQgMDtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vVXRpbHNcIik7XG5jb25zdCBFbnVtc18xID0gcmVxdWlyZShcIi4uLy4uL0VudW1zXCIpO1xuZnVuY3Rpb24gdXBkYXRlUm9sbChwYXJ0aWNsZSwgZGVsdGEpIHtcbiAgICBjb25zdCByb2xsID0gcGFydGljbGUub3B0aW9ucy5yb2xsO1xuICAgIGlmICghcGFydGljbGUucm9sbCB8fCAhcm9sbC5lbmFibGUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBzcGVlZCA9IHBhcnRpY2xlLnJvbGwuc3BlZWQgKiBkZWx0YS5mYWN0b3I7XG4gICAgY29uc3QgbWF4ID0gMiAqIE1hdGguUEk7XG4gICAgcGFydGljbGUucm9sbC5hbmdsZSArPSBzcGVlZDtcbiAgICBpZiAocGFydGljbGUucm9sbC5hbmdsZSA+IG1heCkge1xuICAgICAgICBwYXJ0aWNsZS5yb2xsLmFuZ2xlIC09IG1heDtcbiAgICB9XG59XG5jbGFzcyBSb2xsVXBkYXRlciB7XG4gICAgaW5pdChwYXJ0aWNsZSkge1xuICAgICAgICBjb25zdCByb2xsT3B0ID0gcGFydGljbGUub3B0aW9ucy5yb2xsO1xuICAgICAgICBpZiAocm9sbE9wdC5lbmFibGUpIHtcbiAgICAgICAgICAgIHBhcnRpY2xlLnJvbGwgPSB7XG4gICAgICAgICAgICAgICAgYW5nbGU6IE1hdGgucmFuZG9tKCkgKiBNYXRoLlBJICogMixcbiAgICAgICAgICAgICAgICBzcGVlZDogKDAsIFV0aWxzXzEuZ2V0UmFuZ2VWYWx1ZSkocm9sbE9wdC5zcGVlZCkgLyAzNjAsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHJvbGxPcHQuYmFja0NvbG9yKSB7XG4gICAgICAgICAgICAgICAgcGFydGljbGUuYmFja0NvbG9yID0gKDAsIFV0aWxzXzEuY29sb3JUb0hzbCkocm9sbE9wdC5iYWNrQ29sb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAocm9sbE9wdC5kYXJrZW4uZW5hYmxlICYmIHJvbGxPcHQuZW5saWdodGVuLmVuYWJsZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFsdGVyVHlwZSA9IE1hdGgucmFuZG9tKCkgPj0gMC41ID8gRW51bXNfMS5BbHRlclR5cGUuZGFya2VuIDogRW51bXNfMS5BbHRlclR5cGUuZW5saWdodGVuO1xuICAgICAgICAgICAgICAgIHBhcnRpY2xlLnJvbGwuYWx0ZXIgPSB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IGFsdGVyVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGFsdGVyVHlwZSA9PT0gRW51bXNfMS5BbHRlclR5cGUuZGFya2VuID8gcm9sbE9wdC5kYXJrZW4udmFsdWUgOiByb2xsT3B0LmVubGlnaHRlbi52YWx1ZSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAocm9sbE9wdC5kYXJrZW4uZW5hYmxlKSB7XG4gICAgICAgICAgICAgICAgcGFydGljbGUucm9sbC5hbHRlciA9IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogRW51bXNfMS5BbHRlclR5cGUuZGFya2VuLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcm9sbE9wdC5kYXJrZW4udmFsdWUsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHJvbGxPcHQuZW5saWdodGVuLmVuYWJsZSkge1xuICAgICAgICAgICAgICAgIHBhcnRpY2xlLnJvbGwuYWx0ZXIgPSB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IEVudW1zXzEuQWx0ZXJUeXBlLmVubGlnaHRlbixcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHJvbGxPcHQuZW5saWdodGVuLnZhbHVlLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBwYXJ0aWNsZS5yb2xsID0geyBhbmdsZTogMCwgc3BlZWQ6IDAgfTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpc0VuYWJsZWQocGFydGljbGUpIHtcbiAgICAgICAgY29uc3Qgcm9sbCA9IHBhcnRpY2xlLm9wdGlvbnMucm9sbDtcbiAgICAgICAgcmV0dXJuICFwYXJ0aWNsZS5kZXN0cm95ZWQgJiYgIXBhcnRpY2xlLnNwYXduaW5nICYmIHJvbGwuZW5hYmxlO1xuICAgIH1cbiAgICB1cGRhdGUocGFydGljbGUsIGRlbHRhKSB7XG4gICAgICAgIGlmICghdGhpcy5pc0VuYWJsZWQocGFydGljbGUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdXBkYXRlUm9sbChwYXJ0aWNsZSwgZGVsdGEpO1xuICAgIH1cbn1cbmV4cG9ydHMuUm9sbFVwZGF0ZXIgPSBSb2xsVXBkYXRlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Updaters/Roll/RollUpdater.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Updaters/Roll/index.js": +/*!*********************************************************!*\ + !*** ./node_modules/tsparticles/Updaters/Roll/index.js ***! + \*********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadRollUpdater = void 0;\nconst RollUpdater_1 = __webpack_require__(/*! ./RollUpdater */ \"./node_modules/tsparticles/Updaters/Roll/RollUpdater.js\");\nasync function loadRollUpdater(tsParticles) {\n await tsParticles.addParticleUpdater(\"roll\", () => new RollUpdater_1.RollUpdater());\n}\nexports.loadRollUpdater = loadRollUpdater;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvUm9sbC9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCx1QkFBdUI7QUFDdkIsc0JBQXNCLG1CQUFPLENBQUMsOEVBQWU7QUFDN0M7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9VcGRhdGVycy9Sb2xsL2luZGV4LmpzP2I1OWIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmxvYWRSb2xsVXBkYXRlciA9IHZvaWQgMDtcbmNvbnN0IFJvbGxVcGRhdGVyXzEgPSByZXF1aXJlKFwiLi9Sb2xsVXBkYXRlclwiKTtcbmFzeW5jIGZ1bmN0aW9uIGxvYWRSb2xsVXBkYXRlcih0c1BhcnRpY2xlcykge1xuICAgIGF3YWl0IHRzUGFydGljbGVzLmFkZFBhcnRpY2xlVXBkYXRlcihcInJvbGxcIiwgKCkgPT4gbmV3IFJvbGxVcGRhdGVyXzEuUm9sbFVwZGF0ZXIoKSk7XG59XG5leHBvcnRzLmxvYWRSb2xsVXBkYXRlciA9IGxvYWRSb2xsVXBkYXRlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Updaters/Roll/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Updaters/Size/SizeUpdater.js": +/*!***************************************************************!*\ + !*** ./node_modules/tsparticles/Updaters/Size/SizeUpdater.js ***! + \***************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.SizeUpdater = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nfunction checkDestroy(particle, value, minValue, maxValue) {\n switch (particle.options.size.animation.destroy) {\n case Enums_1.DestroyType.max:\n if (value >= maxValue) {\n particle.destroy();\n }\n break;\n case Enums_1.DestroyType.min:\n if (value <= minValue) {\n particle.destroy();\n }\n break;\n }\n}\nfunction updateSize(particle, delta) {\n var _a, _b, _c, _d;\n const sizeVelocity = ((_a = particle.size.velocity) !== null && _a !== void 0 ? _a : 0) * delta.factor;\n const minValue = particle.size.min;\n const maxValue = particle.size.max;\n if (!(!particle.destroyed &&\n particle.size.enable &&\n (((_b = particle.size.loops) !== null && _b !== void 0 ? _b : 0) <= 0 || ((_c = particle.size.loops) !== null && _c !== void 0 ? _c : 0) < ((_d = particle.size.maxLoops) !== null && _d !== void 0 ? _d : 0)))) {\n return;\n }\n switch (particle.size.status) {\n case Enums_1.AnimationStatus.increasing:\n if (particle.size.value >= maxValue) {\n particle.size.status = Enums_1.AnimationStatus.decreasing;\n if (!particle.size.loops) {\n particle.size.loops = 0;\n }\n particle.size.loops++;\n }\n else {\n particle.size.value += sizeVelocity;\n }\n break;\n case Enums_1.AnimationStatus.decreasing:\n if (particle.size.value <= minValue) {\n particle.size.status = Enums_1.AnimationStatus.increasing;\n if (!particle.size.loops) {\n particle.size.loops = 0;\n }\n particle.size.loops++;\n }\n else {\n particle.size.value -= sizeVelocity;\n }\n }\n checkDestroy(particle, particle.size.value, minValue, maxValue);\n if (!particle.destroyed) {\n particle.size.value = (0, Utils_1.clamp)(particle.size.value, minValue, maxValue);\n }\n}\nclass SizeUpdater {\n init() {\n }\n isEnabled(particle) {\n var _a, _b, _c;\n return (!particle.destroyed &&\n !particle.spawning &&\n particle.size.enable &&\n (((_a = particle.size.loops) !== null && _a !== void 0 ? _a : 0) <= 0 || ((_b = particle.size.loops) !== null && _b !== void 0 ? _b : 0) < ((_c = particle.size.maxLoops) !== null && _c !== void 0 ? _c : 0)));\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateSize(particle, delta);\n }\n}\nexports.SizeUpdater = SizeUpdater;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvU2l6ZS9TaXplVXBkYXRlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxtQkFBbUI7QUFDbkIsZ0JBQWdCLG1CQUFPLENBQUMsOERBQWE7QUFDckMsZ0JBQWdCLG1CQUFPLENBQUMsOERBQWE7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvU2l6ZS9TaXplVXBkYXRlci5qcz84NTJmIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5TaXplVXBkYXRlciA9IHZvaWQgMDtcbmNvbnN0IEVudW1zXzEgPSByZXF1aXJlKFwiLi4vLi4vRW51bXNcIik7XG5jb25zdCBVdGlsc18xID0gcmVxdWlyZShcIi4uLy4uL1V0aWxzXCIpO1xuZnVuY3Rpb24gY2hlY2tEZXN0cm95KHBhcnRpY2xlLCB2YWx1ZSwgbWluVmFsdWUsIG1heFZhbHVlKSB7XG4gICAgc3dpdGNoIChwYXJ0aWNsZS5vcHRpb25zLnNpemUuYW5pbWF0aW9uLmRlc3Ryb3kpIHtcbiAgICAgICAgY2FzZSBFbnVtc18xLkRlc3Ryb3lUeXBlLm1heDpcbiAgICAgICAgICAgIGlmICh2YWx1ZSA+PSBtYXhWYWx1ZSkge1xuICAgICAgICAgICAgICAgIHBhcnRpY2xlLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVudW1zXzEuRGVzdHJveVR5cGUubWluOlxuICAgICAgICAgICAgaWYgKHZhbHVlIDw9IG1pblZhbHVlKSB7XG4gICAgICAgICAgICAgICAgcGFydGljbGUuZGVzdHJveSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgfVxufVxuZnVuY3Rpb24gdXBkYXRlU2l6ZShwYXJ0aWNsZSwgZGVsdGEpIHtcbiAgICB2YXIgX2EsIF9iLCBfYywgX2Q7XG4gICAgY29uc3Qgc2l6ZVZlbG9jaXR5ID0gKChfYSA9IHBhcnRpY2xlLnNpemUudmVsb2NpdHkpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IDApICogZGVsdGEuZmFjdG9yO1xuICAgIGNvbnN0IG1pblZhbHVlID0gcGFydGljbGUuc2l6ZS5taW47XG4gICAgY29uc3QgbWF4VmFsdWUgPSBwYXJ0aWNsZS5zaXplLm1heDtcbiAgICBpZiAoISghcGFydGljbGUuZGVzdHJveWVkICYmXG4gICAgICAgIHBhcnRpY2xlLnNpemUuZW5hYmxlICYmXG4gICAgICAgICgoKF9iID0gcGFydGljbGUuc2l6ZS5sb29wcykgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogMCkgPD0gMCB8fCAoKF9jID0gcGFydGljbGUuc2l6ZS5sb29wcykgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogMCkgPCAoKF9kID0gcGFydGljbGUuc2l6ZS5tYXhMb29wcykgIT09IG51bGwgJiYgX2QgIT09IHZvaWQgMCA/IF9kIDogMCkpKSkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIHN3aXRjaCAocGFydGljbGUuc2l6ZS5zdGF0dXMpIHtcbiAgICAgICAgY2FzZSBFbnVtc18xLkFuaW1hdGlvblN0YXR1cy5pbmNyZWFzaW5nOlxuICAgICAgICAgICAgaWYgKHBhcnRpY2xlLnNpemUudmFsdWUgPj0gbWF4VmFsdWUpIHtcbiAgICAgICAgICAgICAgICBwYXJ0aWNsZS5zaXplLnN0YXR1cyA9IEVudW1zXzEuQW5pbWF0aW9uU3RhdHVzLmRlY3JlYXNpbmc7XG4gICAgICAgICAgICAgICAgaWYgKCFwYXJ0aWNsZS5zaXplLmxvb3BzKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhcnRpY2xlLnNpemUubG9vcHMgPSAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwYXJ0aWNsZS5zaXplLmxvb3BzKys7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBwYXJ0aWNsZS5zaXplLnZhbHVlICs9IHNpemVWZWxvY2l0eTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVudW1zXzEuQW5pbWF0aW9uU3RhdHVzLmRlY3JlYXNpbmc6XG4gICAgICAgICAgICBpZiAocGFydGljbGUuc2l6ZS52YWx1ZSA8PSBtaW5WYWx1ZSkge1xuICAgICAgICAgICAgICAgIHBhcnRpY2xlLnNpemUuc3RhdHVzID0gRW51bXNfMS5BbmltYXRpb25TdGF0dXMuaW5jcmVhc2luZztcbiAgICAgICAgICAgICAgICBpZiAoIXBhcnRpY2xlLnNpemUubG9vcHMpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFydGljbGUuc2l6ZS5sb29wcyA9IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHBhcnRpY2xlLnNpemUubG9vcHMrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHBhcnRpY2xlLnNpemUudmFsdWUgLT0gc2l6ZVZlbG9jaXR5O1xuICAgICAgICAgICAgfVxuICAgIH1cbiAgICBjaGVja0Rlc3Ryb3kocGFydGljbGUsIHBhcnRpY2xlLnNpemUudmFsdWUsIG1pblZhbHVlLCBtYXhWYWx1ZSk7XG4gICAgaWYgKCFwYXJ0aWNsZS5kZXN0cm95ZWQpIHtcbiAgICAgICAgcGFydGljbGUuc2l6ZS52YWx1ZSA9ICgwLCBVdGlsc18xLmNsYW1wKShwYXJ0aWNsZS5zaXplLnZhbHVlLCBtaW5WYWx1ZSwgbWF4VmFsdWUpO1xuICAgIH1cbn1cbmNsYXNzIFNpemVVcGRhdGVyIHtcbiAgICBpbml0KCkge1xuICAgIH1cbiAgICBpc0VuYWJsZWQocGFydGljbGUpIHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgIHJldHVybiAoIXBhcnRpY2xlLmRlc3Ryb3llZCAmJlxuICAgICAgICAgICAgIXBhcnRpY2xlLnNwYXduaW5nICYmXG4gICAgICAgICAgICBwYXJ0aWNsZS5zaXplLmVuYWJsZSAmJlxuICAgICAgICAgICAgKCgoX2EgPSBwYXJ0aWNsZS5zaXplLmxvb3BzKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAwKSA8PSAwIHx8ICgoX2IgPSBwYXJ0aWNsZS5zaXplLmxvb3BzKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiAwKSA8ICgoX2MgPSBwYXJ0aWNsZS5zaXplLm1heExvb3BzKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiAwKSkpO1xuICAgIH1cbiAgICB1cGRhdGUocGFydGljbGUsIGRlbHRhKSB7XG4gICAgICAgIGlmICghdGhpcy5pc0VuYWJsZWQocGFydGljbGUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdXBkYXRlU2l6ZShwYXJ0aWNsZSwgZGVsdGEpO1xuICAgIH1cbn1cbmV4cG9ydHMuU2l6ZVVwZGF0ZXIgPSBTaXplVXBkYXRlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Updaters/Size/SizeUpdater.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Updaters/Size/index.js": +/*!*********************************************************!*\ + !*** ./node_modules/tsparticles/Updaters/Size/index.js ***! + \*********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadSizeUpdater = void 0;\nconst SizeUpdater_1 = __webpack_require__(/*! ./SizeUpdater */ \"./node_modules/tsparticles/Updaters/Size/SizeUpdater.js\");\nasync function loadSizeUpdater(tsParticles) {\n await tsParticles.addParticleUpdater(\"size\", () => new SizeUpdater_1.SizeUpdater());\n}\nexports.loadSizeUpdater = loadSizeUpdater;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvU2l6ZS9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCx1QkFBdUI7QUFDdkIsc0JBQXNCLG1CQUFPLENBQUMsOEVBQWU7QUFDN0M7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9VcGRhdGVycy9TaXplL2luZGV4LmpzP2NmYWIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmxvYWRTaXplVXBkYXRlciA9IHZvaWQgMDtcbmNvbnN0IFNpemVVcGRhdGVyXzEgPSByZXF1aXJlKFwiLi9TaXplVXBkYXRlclwiKTtcbmFzeW5jIGZ1bmN0aW9uIGxvYWRTaXplVXBkYXRlcih0c1BhcnRpY2xlcykge1xuICAgIGF3YWl0IHRzUGFydGljbGVzLmFkZFBhcnRpY2xlVXBkYXRlcihcInNpemVcIiwgKCkgPT4gbmV3IFNpemVVcGRhdGVyXzEuU2l6ZVVwZGF0ZXIoKSk7XG59XG5leHBvcnRzLmxvYWRTaXplVXBkYXRlciA9IGxvYWRTaXplVXBkYXRlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Updaters/Size/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Updaters/StrokeColor/StrokeColorUpdater.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/tsparticles/Updaters/StrokeColor/StrokeColorUpdater.js ***! + \*****************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.StrokeColorUpdater = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Enums_1 = __webpack_require__(/*! ../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nfunction updateColorValue(delta, value, valueAnimation, max, decrease) {\n var _a;\n const colorValue = value;\n if (!colorValue || !colorValue.enable) {\n return;\n }\n const offset = (0, Utils_1.randomInRange)(valueAnimation.offset);\n const velocity = ((_a = value.velocity) !== null && _a !== void 0 ? _a : 0) * delta.factor + offset * 3.6;\n if (!decrease || colorValue.status === Enums_1.AnimationStatus.increasing) {\n colorValue.value += velocity;\n if (decrease && colorValue.value > max) {\n colorValue.status = Enums_1.AnimationStatus.decreasing;\n colorValue.value -= colorValue.value % max;\n }\n }\n else {\n colorValue.value -= velocity;\n if (colorValue.value < 0) {\n colorValue.status = Enums_1.AnimationStatus.increasing;\n colorValue.value += colorValue.value;\n }\n }\n if (colorValue.value > max) {\n colorValue.value %= max;\n }\n}\nfunction updateStrokeColor(particle, delta) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n if (!((_a = particle.stroke) === null || _a === void 0 ? void 0 : _a.color)) {\n return;\n }\n const animationOptions = particle.stroke.color.animation;\n const h = (_c = (_b = particle.strokeColor) === null || _b === void 0 ? void 0 : _b.h) !== null && _c !== void 0 ? _c : (_d = particle.color) === null || _d === void 0 ? void 0 : _d.h;\n if (h) {\n updateColorValue(delta, h, animationOptions.h, 360, false);\n }\n const s = (_f = (_e = particle.strokeColor) === null || _e === void 0 ? void 0 : _e.s) !== null && _f !== void 0 ? _f : (_g = particle.color) === null || _g === void 0 ? void 0 : _g.s;\n if (s) {\n updateColorValue(delta, s, animationOptions.s, 100, true);\n }\n const l = (_j = (_h = particle.strokeColor) === null || _h === void 0 ? void 0 : _h.l) !== null && _j !== void 0 ? _j : (_k = particle.color) === null || _k === void 0 ? void 0 : _k.l;\n if (l) {\n updateColorValue(delta, l, animationOptions.l, 100, true);\n }\n}\nclass StrokeColorUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n var _a, _b;\n const container = this.container;\n particle.stroke =\n particle.options.stroke instanceof Array\n ? (0, Utils_1.itemFromArray)(particle.options.stroke, particle.id, particle.options.reduceDuplicates)\n : particle.options.stroke;\n particle.strokeWidth = particle.stroke.width * container.retina.pixelRatio;\n const strokeHslColor = (_a = (0, Utils_1.colorToHsl)(particle.stroke.color)) !== null && _a !== void 0 ? _a : particle.getFillColor();\n if (strokeHslColor) {\n particle.strokeColor = (0, Utils_1.getHslAnimationFromHsl)(strokeHslColor, (_b = particle.stroke.color) === null || _b === void 0 ? void 0 : _b.animation, container.retina.reduceFactor);\n }\n }\n isEnabled(particle) {\n var _a, _b, _c, _d;\n const color = (_a = particle.stroke) === null || _a === void 0 ? void 0 : _a.color;\n return (!particle.destroyed &&\n !particle.spawning &&\n !!color &&\n ((((_b = particle.strokeColor) === null || _b === void 0 ? void 0 : _b.h.value) !== undefined && color.animation.h.enable) ||\n (((_c = particle.strokeColor) === null || _c === void 0 ? void 0 : _c.s.value) !== undefined && color.animation.s.enable) ||\n (((_d = particle.strokeColor) === null || _d === void 0 ? void 0 : _d.l.value) !== undefined && color.animation.l.enable)));\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateStrokeColor(particle, delta);\n }\n}\nexports.StrokeColorUpdater = StrokeColorUpdater;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvU3Ryb2tlQ29sb3IvU3Ryb2tlQ29sb3JVcGRhdGVyLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELDBCQUEwQjtBQUMxQixnQkFBZ0IsbUJBQU8sQ0FBQyw4REFBYTtBQUNyQyxnQkFBZ0IsbUJBQU8sQ0FBQyw4REFBYTtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvU3Ryb2tlQ29sb3IvU3Ryb2tlQ29sb3JVcGRhdGVyLmpzPzczMTgiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlN0cm9rZUNvbG9yVXBkYXRlciA9IHZvaWQgMDtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vVXRpbHNcIik7XG5jb25zdCBFbnVtc18xID0gcmVxdWlyZShcIi4uLy4uL0VudW1zXCIpO1xuZnVuY3Rpb24gdXBkYXRlQ29sb3JWYWx1ZShkZWx0YSwgdmFsdWUsIHZhbHVlQW5pbWF0aW9uLCBtYXgsIGRlY3JlYXNlKSB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IGNvbG9yVmFsdWUgPSB2YWx1ZTtcbiAgICBpZiAoIWNvbG9yVmFsdWUgfHwgIWNvbG9yVmFsdWUuZW5hYmxlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgb2Zmc2V0ID0gKDAsIFV0aWxzXzEucmFuZG9tSW5SYW5nZSkodmFsdWVBbmltYXRpb24ub2Zmc2V0KTtcbiAgICBjb25zdCB2ZWxvY2l0eSA9ICgoX2EgPSB2YWx1ZS52ZWxvY2l0eSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogMCkgKiBkZWx0YS5mYWN0b3IgKyBvZmZzZXQgKiAzLjY7XG4gICAgaWYgKCFkZWNyZWFzZSB8fCBjb2xvclZhbHVlLnN0YXR1cyA9PT0gRW51bXNfMS5BbmltYXRpb25TdGF0dXMuaW5jcmVhc2luZykge1xuICAgICAgICBjb2xvclZhbHVlLnZhbHVlICs9IHZlbG9jaXR5O1xuICAgICAgICBpZiAoZGVjcmVhc2UgJiYgY29sb3JWYWx1ZS52YWx1ZSA+IG1heCkge1xuICAgICAgICAgICAgY29sb3JWYWx1ZS5zdGF0dXMgPSBFbnVtc18xLkFuaW1hdGlvblN0YXR1cy5kZWNyZWFzaW5nO1xuICAgICAgICAgICAgY29sb3JWYWx1ZS52YWx1ZSAtPSBjb2xvclZhbHVlLnZhbHVlICUgbWF4O1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBjb2xvclZhbHVlLnZhbHVlIC09IHZlbG9jaXR5O1xuICAgICAgICBpZiAoY29sb3JWYWx1ZS52YWx1ZSA8IDApIHtcbiAgICAgICAgICAgIGNvbG9yVmFsdWUuc3RhdHVzID0gRW51bXNfMS5BbmltYXRpb25TdGF0dXMuaW5jcmVhc2luZztcbiAgICAgICAgICAgIGNvbG9yVmFsdWUudmFsdWUgKz0gY29sb3JWYWx1ZS52YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoY29sb3JWYWx1ZS52YWx1ZSA+IG1heCkge1xuICAgICAgICBjb2xvclZhbHVlLnZhbHVlICU9IG1heDtcbiAgICB9XG59XG5mdW5jdGlvbiB1cGRhdGVTdHJva2VDb2xvcihwYXJ0aWNsZSwgZGVsdGEpIHtcbiAgICB2YXIgX2EsIF9iLCBfYywgX2QsIF9lLCBfZiwgX2csIF9oLCBfaiwgX2s7XG4gICAgaWYgKCEoKF9hID0gcGFydGljbGUuc3Ryb2tlKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY29sb3IpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgYW5pbWF0aW9uT3B0aW9ucyA9IHBhcnRpY2xlLnN0cm9rZS5jb2xvci5hbmltYXRpb247XG4gICAgY29uc3QgaCA9IChfYyA9IChfYiA9IHBhcnRpY2xlLnN0cm9rZUNvbG9yKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuaCkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogKF9kID0gcGFydGljbGUuY29sb3IpID09PSBudWxsIHx8IF9kID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZC5oO1xuICAgIGlmIChoKSB7XG4gICAgICAgIHVwZGF0ZUNvbG9yVmFsdWUoZGVsdGEsIGgsIGFuaW1hdGlvbk9wdGlvbnMuaCwgMzYwLCBmYWxzZSk7XG4gICAgfVxuICAgIGNvbnN0IHMgPSAoX2YgPSAoX2UgPSBwYXJ0aWNsZS5zdHJva2VDb2xvcikgPT09IG51bGwgfHwgX2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9lLnMpICE9PSBudWxsICYmIF9mICE9PSB2b2lkIDAgPyBfZiA6IChfZyA9IHBhcnRpY2xlLmNvbG9yKSA9PT0gbnVsbCB8fCBfZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2cucztcbiAgICBpZiAocykge1xuICAgICAgICB1cGRhdGVDb2xvclZhbHVlKGRlbHRhLCBzLCBhbmltYXRpb25PcHRpb25zLnMsIDEwMCwgdHJ1ZSk7XG4gICAgfVxuICAgIGNvbnN0IGwgPSAoX2ogPSAoX2ggPSBwYXJ0aWNsZS5zdHJva2VDb2xvcikgPT09IG51bGwgfHwgX2ggPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9oLmwpICE9PSBudWxsICYmIF9qICE9PSB2b2lkIDAgPyBfaiA6IChfayA9IHBhcnRpY2xlLmNvbG9yKSA9PT0gbnVsbCB8fCBfayA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2subDtcbiAgICBpZiAobCkge1xuICAgICAgICB1cGRhdGVDb2xvclZhbHVlKGRlbHRhLCBsLCBhbmltYXRpb25PcHRpb25zLmwsIDEwMCwgdHJ1ZSk7XG4gICAgfVxufVxuY2xhc3MgU3Ryb2tlQ29sb3JVcGRhdGVyIHtcbiAgICBjb25zdHJ1Y3Rvcihjb250YWluZXIpIHtcbiAgICAgICAgdGhpcy5jb250YWluZXIgPSBjb250YWluZXI7XG4gICAgfVxuICAgIGluaXQocGFydGljbGUpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXI7XG4gICAgICAgIHBhcnRpY2xlLnN0cm9rZSA9XG4gICAgICAgICAgICBwYXJ0aWNsZS5vcHRpb25zLnN0cm9rZSBpbnN0YW5jZW9mIEFycmF5XG4gICAgICAgICAgICAgICAgPyAoMCwgVXRpbHNfMS5pdGVtRnJvbUFycmF5KShwYXJ0aWNsZS5vcHRpb25zLnN0cm9rZSwgcGFydGljbGUuaWQsIHBhcnRpY2xlLm9wdGlvbnMucmVkdWNlRHVwbGljYXRlcylcbiAgICAgICAgICAgICAgICA6IHBhcnRpY2xlLm9wdGlvbnMuc3Ryb2tlO1xuICAgICAgICBwYXJ0aWNsZS5zdHJva2VXaWR0aCA9IHBhcnRpY2xlLnN0cm9rZS53aWR0aCAqIGNvbnRhaW5lci5yZXRpbmEucGl4ZWxSYXRpbztcbiAgICAgICAgY29uc3Qgc3Ryb2tlSHNsQ29sb3IgPSAoX2EgPSAoMCwgVXRpbHNfMS5jb2xvclRvSHNsKShwYXJ0aWNsZS5zdHJva2UuY29sb3IpKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBwYXJ0aWNsZS5nZXRGaWxsQ29sb3IoKTtcbiAgICAgICAgaWYgKHN0cm9rZUhzbENvbG9yKSB7XG4gICAgICAgICAgICBwYXJ0aWNsZS5zdHJva2VDb2xvciA9ICgwLCBVdGlsc18xLmdldEhzbEFuaW1hdGlvbkZyb21Ic2wpKHN0cm9rZUhzbENvbG9yLCAoX2IgPSBwYXJ0aWNsZS5zdHJva2UuY29sb3IpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5hbmltYXRpb24sIGNvbnRhaW5lci5yZXRpbmEucmVkdWNlRmFjdG9yKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpc0VuYWJsZWQocGFydGljbGUpIHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kO1xuICAgICAgICBjb25zdCBjb2xvciA9IChfYSA9IHBhcnRpY2xlLnN0cm9rZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNvbG9yO1xuICAgICAgICByZXR1cm4gKCFwYXJ0aWNsZS5kZXN0cm95ZWQgJiZcbiAgICAgICAgICAgICFwYXJ0aWNsZS5zcGF3bmluZyAmJlxuICAgICAgICAgICAgISFjb2xvciAmJlxuICAgICAgICAgICAgKCgoKF9iID0gcGFydGljbGUuc3Ryb2tlQ29sb3IpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5oLnZhbHVlKSAhPT0gdW5kZWZpbmVkICYmIGNvbG9yLmFuaW1hdGlvbi5oLmVuYWJsZSkgfHxcbiAgICAgICAgICAgICAgICAoKChfYyA9IHBhcnRpY2xlLnN0cm9rZUNvbG9yKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Mucy52YWx1ZSkgIT09IHVuZGVmaW5lZCAmJiBjb2xvci5hbmltYXRpb24ucy5lbmFibGUpIHx8XG4gICAgICAgICAgICAgICAgKCgoX2QgPSBwYXJ0aWNsZS5zdHJva2VDb2xvcikgPT09IG51bGwgfHwgX2QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9kLmwudmFsdWUpICE9PSB1bmRlZmluZWQgJiYgY29sb3IuYW5pbWF0aW9uLmwuZW5hYmxlKSkpO1xuICAgIH1cbiAgICB1cGRhdGUocGFydGljbGUsIGRlbHRhKSB7XG4gICAgICAgIGlmICghdGhpcy5pc0VuYWJsZWQocGFydGljbGUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdXBkYXRlU3Ryb2tlQ29sb3IocGFydGljbGUsIGRlbHRhKTtcbiAgICB9XG59XG5leHBvcnRzLlN0cm9rZUNvbG9yVXBkYXRlciA9IFN0cm9rZUNvbG9yVXBkYXRlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Updaters/StrokeColor/StrokeColorUpdater.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Updaters/StrokeColor/index.js": +/*!****************************************************************!*\ + !*** ./node_modules/tsparticles/Updaters/StrokeColor/index.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadStrokeColorUpdater = void 0;\nconst StrokeColorUpdater_1 = __webpack_require__(/*! ./StrokeColorUpdater */ \"./node_modules/tsparticles/Updaters/StrokeColor/StrokeColorUpdater.js\");\nasync function loadStrokeColorUpdater(tsParticles) {\n await tsParticles.addParticleUpdater(\"strokeColor\", (container) => new StrokeColorUpdater_1.StrokeColorUpdater(container));\n}\nexports.loadStrokeColorUpdater = loadStrokeColorUpdater;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvU3Ryb2tlQ29sb3IvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsOEJBQThCO0FBQzlCLDZCQUE2QixtQkFBTyxDQUFDLG1HQUFzQjtBQUMzRDtBQUNBO0FBQ0E7QUFDQSw4QkFBOEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1VwZGF0ZXJzL1N0cm9rZUNvbG9yL2luZGV4LmpzP2E0ZDIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmxvYWRTdHJva2VDb2xvclVwZGF0ZXIgPSB2b2lkIDA7XG5jb25zdCBTdHJva2VDb2xvclVwZGF0ZXJfMSA9IHJlcXVpcmUoXCIuL1N0cm9rZUNvbG9yVXBkYXRlclwiKTtcbmFzeW5jIGZ1bmN0aW9uIGxvYWRTdHJva2VDb2xvclVwZGF0ZXIodHNQYXJ0aWNsZXMpIHtcbiAgICBhd2FpdCB0c1BhcnRpY2xlcy5hZGRQYXJ0aWNsZVVwZGF0ZXIoXCJzdHJva2VDb2xvclwiLCAoY29udGFpbmVyKSA9PiBuZXcgU3Ryb2tlQ29sb3JVcGRhdGVyXzEuU3Ryb2tlQ29sb3JVcGRhdGVyKGNvbnRhaW5lcikpO1xufVxuZXhwb3J0cy5sb2FkU3Ryb2tlQ29sb3JVcGRhdGVyID0gbG9hZFN0cm9rZUNvbG9yVXBkYXRlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Updaters/StrokeColor/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Updaters/Tilt/TiltUpdater.js": +/*!***************************************************************!*\ + !*** ./node_modules/tsparticles/Updaters/Tilt/TiltUpdater.js ***! + \***************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.TiltUpdater = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nfunction updateTilt(particle, delta) {\n var _a;\n if (!particle.tilt) {\n return;\n }\n const tilt = particle.options.tilt;\n const tiltAnimation = tilt.animation;\n const speed = ((_a = particle.tilt.velocity) !== null && _a !== void 0 ? _a : 0) * delta.factor;\n const max = 2 * Math.PI;\n if (!tiltAnimation.enable) {\n return;\n }\n switch (particle.tilt.status) {\n case Enums_1.AnimationStatus.increasing:\n particle.tilt.value += speed;\n if (particle.tilt.value > max) {\n particle.tilt.value -= max;\n }\n break;\n case Enums_1.AnimationStatus.decreasing:\n default:\n particle.tilt.value -= speed;\n if (particle.tilt.value < 0) {\n particle.tilt.value += max;\n }\n break;\n }\n}\nclass TiltUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n const tiltOptions = particle.options.tilt;\n particle.tilt = {\n enable: tiltOptions.enable,\n value: ((0, Utils_1.getRangeValue)(tiltOptions.value) * Math.PI) / 180,\n sinDirection: Math.random() >= 0.5 ? 1 : -1,\n cosDirection: Math.random() >= 0.5 ? 1 : -1,\n };\n let tiltDirection = tiltOptions.direction;\n if (tiltDirection === Enums_1.TiltDirection.random) {\n const index = Math.floor(Math.random() * 2);\n tiltDirection = index > 0 ? Enums_1.TiltDirection.counterClockwise : Enums_1.TiltDirection.clockwise;\n }\n switch (tiltDirection) {\n case Enums_1.TiltDirection.counterClockwise:\n case \"counterClockwise\":\n particle.tilt.status = Enums_1.AnimationStatus.decreasing;\n break;\n case Enums_1.TiltDirection.clockwise:\n particle.tilt.status = Enums_1.AnimationStatus.increasing;\n break;\n }\n const tiltAnimation = particle.options.tilt.animation;\n if (tiltAnimation.enable) {\n particle.tilt.velocity = (tiltAnimation.speed / 360) * this.container.retina.reduceFactor;\n if (!tiltAnimation.sync) {\n particle.tilt.velocity *= Math.random();\n }\n }\n }\n isEnabled(particle) {\n const tilt = particle.options.tilt;\n const tiltAnimation = tilt.animation;\n return !particle.destroyed && !particle.spawning && tiltAnimation.enable;\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateTilt(particle, delta);\n }\n}\nexports.TiltUpdater = TiltUpdater;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvVGlsdC9UaWx0VXBkYXRlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxtQkFBbUI7QUFDbkIsZ0JBQWdCLG1CQUFPLENBQUMsOERBQWE7QUFDckMsZ0JBQWdCLG1CQUFPLENBQUMsOERBQWE7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvVGlsdC9UaWx0VXBkYXRlci5qcz81MzU5Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5UaWx0VXBkYXRlciA9IHZvaWQgMDtcbmNvbnN0IEVudW1zXzEgPSByZXF1aXJlKFwiLi4vLi4vRW51bXNcIik7XG5jb25zdCBVdGlsc18xID0gcmVxdWlyZShcIi4uLy4uL1V0aWxzXCIpO1xuZnVuY3Rpb24gdXBkYXRlVGlsdChwYXJ0aWNsZSwgZGVsdGEpIHtcbiAgICB2YXIgX2E7XG4gICAgaWYgKCFwYXJ0aWNsZS50aWx0KSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgdGlsdCA9IHBhcnRpY2xlLm9wdGlvbnMudGlsdDtcbiAgICBjb25zdCB0aWx0QW5pbWF0aW9uID0gdGlsdC5hbmltYXRpb247XG4gICAgY29uc3Qgc3BlZWQgPSAoKF9hID0gcGFydGljbGUudGlsdC52ZWxvY2l0eSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogMCkgKiBkZWx0YS5mYWN0b3I7XG4gICAgY29uc3QgbWF4ID0gMiAqIE1hdGguUEk7XG4gICAgaWYgKCF0aWx0QW5pbWF0aW9uLmVuYWJsZSkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIHN3aXRjaCAocGFydGljbGUudGlsdC5zdGF0dXMpIHtcbiAgICAgICAgY2FzZSBFbnVtc18xLkFuaW1hdGlvblN0YXR1cy5pbmNyZWFzaW5nOlxuICAgICAgICAgICAgcGFydGljbGUudGlsdC52YWx1ZSArPSBzcGVlZDtcbiAgICAgICAgICAgIGlmIChwYXJ0aWNsZS50aWx0LnZhbHVlID4gbWF4KSB7XG4gICAgICAgICAgICAgICAgcGFydGljbGUudGlsdC52YWx1ZSAtPSBtYXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFbnVtc18xLkFuaW1hdGlvblN0YXR1cy5kZWNyZWFzaW5nOlxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcGFydGljbGUudGlsdC52YWx1ZSAtPSBzcGVlZDtcbiAgICAgICAgICAgIGlmIChwYXJ0aWNsZS50aWx0LnZhbHVlIDwgMCkge1xuICAgICAgICAgICAgICAgIHBhcnRpY2xlLnRpbHQudmFsdWUgKz0gbWF4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgfVxufVxuY2xhc3MgVGlsdFVwZGF0ZXIge1xuICAgIGNvbnN0cnVjdG9yKGNvbnRhaW5lcikge1xuICAgICAgICB0aGlzLmNvbnRhaW5lciA9IGNvbnRhaW5lcjtcbiAgICB9XG4gICAgaW5pdChwYXJ0aWNsZSkge1xuICAgICAgICBjb25zdCB0aWx0T3B0aW9ucyA9IHBhcnRpY2xlLm9wdGlvbnMudGlsdDtcbiAgICAgICAgcGFydGljbGUudGlsdCA9IHtcbiAgICAgICAgICAgIGVuYWJsZTogdGlsdE9wdGlvbnMuZW5hYmxlLFxuICAgICAgICAgICAgdmFsdWU6ICgoMCwgVXRpbHNfMS5nZXRSYW5nZVZhbHVlKSh0aWx0T3B0aW9ucy52YWx1ZSkgKiBNYXRoLlBJKSAvIDE4MCxcbiAgICAgICAgICAgIHNpbkRpcmVjdGlvbjogTWF0aC5yYW5kb20oKSA+PSAwLjUgPyAxIDogLTEsXG4gICAgICAgICAgICBjb3NEaXJlY3Rpb246IE1hdGgucmFuZG9tKCkgPj0gMC41ID8gMSA6IC0xLFxuICAgICAgICB9O1xuICAgICAgICBsZXQgdGlsdERpcmVjdGlvbiA9IHRpbHRPcHRpb25zLmRpcmVjdGlvbjtcbiAgICAgICAgaWYgKHRpbHREaXJlY3Rpb24gPT09IEVudW1zXzEuVGlsdERpcmVjdGlvbi5yYW5kb20pIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMik7XG4gICAgICAgICAgICB0aWx0RGlyZWN0aW9uID0gaW5kZXggPiAwID8gRW51bXNfMS5UaWx0RGlyZWN0aW9uLmNvdW50ZXJDbG9ja3dpc2UgOiBFbnVtc18xLlRpbHREaXJlY3Rpb24uY2xvY2t3aXNlO1xuICAgICAgICB9XG4gICAgICAgIHN3aXRjaCAodGlsdERpcmVjdGlvbikge1xuICAgICAgICAgICAgY2FzZSBFbnVtc18xLlRpbHREaXJlY3Rpb24uY291bnRlckNsb2Nrd2lzZTpcbiAgICAgICAgICAgIGNhc2UgXCJjb3VudGVyQ2xvY2t3aXNlXCI6XG4gICAgICAgICAgICAgICAgcGFydGljbGUudGlsdC5zdGF0dXMgPSBFbnVtc18xLkFuaW1hdGlvblN0YXR1cy5kZWNyZWFzaW5nO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBFbnVtc18xLlRpbHREaXJlY3Rpb24uY2xvY2t3aXNlOlxuICAgICAgICAgICAgICAgIHBhcnRpY2xlLnRpbHQuc3RhdHVzID0gRW51bXNfMS5BbmltYXRpb25TdGF0dXMuaW5jcmVhc2luZztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0aWx0QW5pbWF0aW9uID0gcGFydGljbGUub3B0aW9ucy50aWx0LmFuaW1hdGlvbjtcbiAgICAgICAgaWYgKHRpbHRBbmltYXRpb24uZW5hYmxlKSB7XG4gICAgICAgICAgICBwYXJ0aWNsZS50aWx0LnZlbG9jaXR5ID0gKHRpbHRBbmltYXRpb24uc3BlZWQgLyAzNjApICogdGhpcy5jb250YWluZXIucmV0aW5hLnJlZHVjZUZhY3RvcjtcbiAgICAgICAgICAgIGlmICghdGlsdEFuaW1hdGlvbi5zeW5jKSB7XG4gICAgICAgICAgICAgICAgcGFydGljbGUudGlsdC52ZWxvY2l0eSAqPSBNYXRoLnJhbmRvbSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGlzRW5hYmxlZChwYXJ0aWNsZSkge1xuICAgICAgICBjb25zdCB0aWx0ID0gcGFydGljbGUub3B0aW9ucy50aWx0O1xuICAgICAgICBjb25zdCB0aWx0QW5pbWF0aW9uID0gdGlsdC5hbmltYXRpb247XG4gICAgICAgIHJldHVybiAhcGFydGljbGUuZGVzdHJveWVkICYmICFwYXJ0aWNsZS5zcGF3bmluZyAmJiB0aWx0QW5pbWF0aW9uLmVuYWJsZTtcbiAgICB9XG4gICAgdXBkYXRlKHBhcnRpY2xlLCBkZWx0YSkge1xuICAgICAgICBpZiAoIXRoaXMuaXNFbmFibGVkKHBhcnRpY2xlKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHVwZGF0ZVRpbHQocGFydGljbGUsIGRlbHRhKTtcbiAgICB9XG59XG5leHBvcnRzLlRpbHRVcGRhdGVyID0gVGlsdFVwZGF0ZXI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Updaters/Tilt/TiltUpdater.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Updaters/Tilt/index.js": +/*!*********************************************************!*\ + !*** ./node_modules/tsparticles/Updaters/Tilt/index.js ***! + \*********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadTiltUpdater = void 0;\nconst TiltUpdater_1 = __webpack_require__(/*! ./TiltUpdater */ \"./node_modules/tsparticles/Updaters/Tilt/TiltUpdater.js\");\nasync function loadTiltUpdater(tsParticles) {\n await tsParticles.addParticleUpdater(\"tilt\", (container) => new TiltUpdater_1.TiltUpdater(container));\n}\nexports.loadTiltUpdater = loadTiltUpdater;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvVGlsdC9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCx1QkFBdUI7QUFDdkIsc0JBQXNCLG1CQUFPLENBQUMsOEVBQWU7QUFDN0M7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9VcGRhdGVycy9UaWx0L2luZGV4LmpzP2RmY2UiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmxvYWRUaWx0VXBkYXRlciA9IHZvaWQgMDtcbmNvbnN0IFRpbHRVcGRhdGVyXzEgPSByZXF1aXJlKFwiLi9UaWx0VXBkYXRlclwiKTtcbmFzeW5jIGZ1bmN0aW9uIGxvYWRUaWx0VXBkYXRlcih0c1BhcnRpY2xlcykge1xuICAgIGF3YWl0IHRzUGFydGljbGVzLmFkZFBhcnRpY2xlVXBkYXRlcihcInRpbHRcIiwgKGNvbnRhaW5lcikgPT4gbmV3IFRpbHRVcGRhdGVyXzEuVGlsdFVwZGF0ZXIoY29udGFpbmVyKSk7XG59XG5leHBvcnRzLmxvYWRUaWx0VXBkYXRlciA9IGxvYWRUaWx0VXBkYXRlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Updaters/Tilt/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Updaters/Wobble/WobbleUpdater.js": +/*!*******************************************************************!*\ + !*** ./node_modules/tsparticles/Updaters/Wobble/WobbleUpdater.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.WobbleUpdater = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nfunction updateWobble(particle, delta) {\n var _a;\n const wobble = particle.options.wobble;\n if (!wobble.enable || !particle.wobble) {\n return;\n }\n const speed = particle.wobble.speed * delta.factor;\n const distance = (((_a = particle.retina.wobbleDistance) !== null && _a !== void 0 ? _a : 0) * delta.factor) / (1000 / 60);\n const max = 2 * Math.PI;\n particle.wobble.angle += speed;\n if (particle.wobble.angle > max) {\n particle.wobble.angle -= max;\n }\n particle.position.x += distance * Math.cos(particle.wobble.angle);\n particle.position.y += distance * Math.abs(Math.sin(particle.wobble.angle));\n}\nclass WobbleUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n const wobbleOpt = particle.options.wobble;\n if (wobbleOpt.enable) {\n particle.wobble = {\n angle: Math.random() * Math.PI * 2,\n speed: (0, Utils_1.getRangeValue)(wobbleOpt.speed) / 360,\n };\n }\n else {\n particle.wobble = {\n angle: 0,\n speed: 0,\n };\n }\n particle.retina.wobbleDistance = (0, Utils_1.getRangeValue)(wobbleOpt.distance) * this.container.retina.pixelRatio;\n }\n isEnabled(particle) {\n return !particle.destroyed && !particle.spawning && particle.options.wobble.enable;\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateWobble(particle, delta);\n }\n}\nexports.WobbleUpdater = WobbleUpdater;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvV29iYmxlL1dvYmJsZVVwZGF0ZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QscUJBQXFCO0FBQ3JCLGdCQUFnQixtQkFBTyxDQUFDLDhEQUFhO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9VcGRhdGVycy9Xb2JibGUvV29iYmxlVXBkYXRlci5qcz8xYWI0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Xb2JibGVVcGRhdGVyID0gdm9pZCAwO1xuY29uc3QgVXRpbHNfMSA9IHJlcXVpcmUoXCIuLi8uLi9VdGlsc1wiKTtcbmZ1bmN0aW9uIHVwZGF0ZVdvYmJsZShwYXJ0aWNsZSwgZGVsdGEpIHtcbiAgICB2YXIgX2E7XG4gICAgY29uc3Qgd29iYmxlID0gcGFydGljbGUub3B0aW9ucy53b2JibGU7XG4gICAgaWYgKCF3b2JibGUuZW5hYmxlIHx8ICFwYXJ0aWNsZS53b2JibGUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBzcGVlZCA9IHBhcnRpY2xlLndvYmJsZS5zcGVlZCAqIGRlbHRhLmZhY3RvcjtcbiAgICBjb25zdCBkaXN0YW5jZSA9ICgoKF9hID0gcGFydGljbGUucmV0aW5hLndvYmJsZURpc3RhbmNlKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAwKSAqIGRlbHRhLmZhY3RvcikgLyAoMTAwMCAvIDYwKTtcbiAgICBjb25zdCBtYXggPSAyICogTWF0aC5QSTtcbiAgICBwYXJ0aWNsZS53b2JibGUuYW5nbGUgKz0gc3BlZWQ7XG4gICAgaWYgKHBhcnRpY2xlLndvYmJsZS5hbmdsZSA+IG1heCkge1xuICAgICAgICBwYXJ0aWNsZS53b2JibGUuYW5nbGUgLT0gbWF4O1xuICAgIH1cbiAgICBwYXJ0aWNsZS5wb3NpdGlvbi54ICs9IGRpc3RhbmNlICogTWF0aC5jb3MocGFydGljbGUud29iYmxlLmFuZ2xlKTtcbiAgICBwYXJ0aWNsZS5wb3NpdGlvbi55ICs9IGRpc3RhbmNlICogTWF0aC5hYnMoTWF0aC5zaW4ocGFydGljbGUud29iYmxlLmFuZ2xlKSk7XG59XG5jbGFzcyBXb2JibGVVcGRhdGVyIHtcbiAgICBjb25zdHJ1Y3Rvcihjb250YWluZXIpIHtcbiAgICAgICAgdGhpcy5jb250YWluZXIgPSBjb250YWluZXI7XG4gICAgfVxuICAgIGluaXQocGFydGljbGUpIHtcbiAgICAgICAgY29uc3Qgd29iYmxlT3B0ID0gcGFydGljbGUub3B0aW9ucy53b2JibGU7XG4gICAgICAgIGlmICh3b2JibGVPcHQuZW5hYmxlKSB7XG4gICAgICAgICAgICBwYXJ0aWNsZS53b2JibGUgPSB7XG4gICAgICAgICAgICAgICAgYW5nbGU6IE1hdGgucmFuZG9tKCkgKiBNYXRoLlBJICogMixcbiAgICAgICAgICAgICAgICBzcGVlZDogKDAsIFV0aWxzXzEuZ2V0UmFuZ2VWYWx1ZSkod29iYmxlT3B0LnNwZWVkKSAvIDM2MCxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBwYXJ0aWNsZS53b2JibGUgPSB7XG4gICAgICAgICAgICAgICAgYW5nbGU6IDAsXG4gICAgICAgICAgICAgICAgc3BlZWQ6IDAsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHBhcnRpY2xlLnJldGluYS53b2JibGVEaXN0YW5jZSA9ICgwLCBVdGlsc18xLmdldFJhbmdlVmFsdWUpKHdvYmJsZU9wdC5kaXN0YW5jZSkgKiB0aGlzLmNvbnRhaW5lci5yZXRpbmEucGl4ZWxSYXRpbztcbiAgICB9XG4gICAgaXNFbmFibGVkKHBhcnRpY2xlKSB7XG4gICAgICAgIHJldHVybiAhcGFydGljbGUuZGVzdHJveWVkICYmICFwYXJ0aWNsZS5zcGF3bmluZyAmJiBwYXJ0aWNsZS5vcHRpb25zLndvYmJsZS5lbmFibGU7XG4gICAgfVxuICAgIHVwZGF0ZShwYXJ0aWNsZSwgZGVsdGEpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzRW5hYmxlZChwYXJ0aWNsZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB1cGRhdGVXb2JibGUocGFydGljbGUsIGRlbHRhKTtcbiAgICB9XG59XG5leHBvcnRzLldvYmJsZVVwZGF0ZXIgPSBXb2JibGVVcGRhdGVyO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Updaters/Wobble/WobbleUpdater.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Updaters/Wobble/index.js": +/*!***********************************************************!*\ + !*** ./node_modules/tsparticles/Updaters/Wobble/index.js ***! + \***********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadWobbleUpdater = void 0;\nconst WobbleUpdater_1 = __webpack_require__(/*! ./WobbleUpdater */ \"./node_modules/tsparticles/Updaters/Wobble/WobbleUpdater.js\");\nasync function loadWobbleUpdater(tsParticles) {\n await tsParticles.addParticleUpdater(\"wobble\", (container) => new WobbleUpdater_1.WobbleUpdater(container));\n}\nexports.loadWobbleUpdater = loadWobbleUpdater;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvV29iYmxlL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHlCQUF5QjtBQUN6Qix3QkFBd0IsbUJBQU8sQ0FBQyxvRkFBaUI7QUFDakQ7QUFDQTtBQUNBO0FBQ0EseUJBQXlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9VcGRhdGVycy9Xb2JibGUvaW5kZXguanM/NjVkNSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMubG9hZFdvYmJsZVVwZGF0ZXIgPSB2b2lkIDA7XG5jb25zdCBXb2JibGVVcGRhdGVyXzEgPSByZXF1aXJlKFwiLi9Xb2JibGVVcGRhdGVyXCIpO1xuYXN5bmMgZnVuY3Rpb24gbG9hZFdvYmJsZVVwZGF0ZXIodHNQYXJ0aWNsZXMpIHtcbiAgICBhd2FpdCB0c1BhcnRpY2xlcy5hZGRQYXJ0aWNsZVVwZGF0ZXIoXCJ3b2JibGVcIiwgKGNvbnRhaW5lcikgPT4gbmV3IFdvYmJsZVVwZGF0ZXJfMS5Xb2JibGVVcGRhdGVyKGNvbnRhaW5lcikpO1xufVxuZXhwb3J0cy5sb2FkV29iYmxlVXBkYXRlciA9IGxvYWRXb2JibGVVcGRhdGVyO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Updaters/Wobble/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Utils/CanvasUtils.js": +/*!*******************************************************!*\ + !*** ./node_modules/tsparticles/Utils/CanvasUtils.js ***! + \*******************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.alterHsl = exports.drawEllipse = exports.drawParticlePlugin = exports.drawPlugin = exports.drawShapeAfterEffect = exports.drawShape = exports.drawParticle = exports.drawGrabLine = exports.gradient = exports.drawConnectLine = exports.drawLinkTriangle = exports.drawLinkLine = exports.clear = exports.paintBase = void 0;\nconst NumberUtils_1 = __webpack_require__(/*! ./NumberUtils */ \"./node_modules/tsparticles/Utils/NumberUtils.js\");\nconst ColorUtils_1 = __webpack_require__(/*! ./ColorUtils */ \"./node_modules/tsparticles/Utils/ColorUtils.js\");\nconst Enums_1 = __webpack_require__(/*! ../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nfunction drawLine(context, begin, end) {\n context.beginPath();\n context.moveTo(begin.x, begin.y);\n context.lineTo(end.x, end.y);\n context.closePath();\n}\nfunction drawTriangle(context, p1, p2, p3) {\n context.beginPath();\n context.moveTo(p1.x, p1.y);\n context.lineTo(p2.x, p2.y);\n context.lineTo(p3.x, p3.y);\n context.closePath();\n}\nfunction paintBase(context, dimension, baseColor) {\n context.save();\n context.fillStyle = baseColor !== null && baseColor !== void 0 ? baseColor : \"rgba(0,0,0,0)\";\n context.fillRect(0, 0, dimension.width, dimension.height);\n context.restore();\n}\nexports.paintBase = paintBase;\nfunction clear(context, dimension) {\n context.clearRect(0, 0, dimension.width, dimension.height);\n}\nexports.clear = clear;\nfunction drawLinkLine(context, width, begin, end, maxDistance, canvasSize, warp, backgroundMask, composite, colorLine, opacity, shadow) {\n let drawn = false;\n if ((0, NumberUtils_1.getDistance)(begin, end) <= maxDistance) {\n drawLine(context, begin, end);\n drawn = true;\n }\n else if (warp) {\n let pi1;\n let pi2;\n const endNE = {\n x: end.x - canvasSize.width,\n y: end.y,\n };\n const d1 = (0, NumberUtils_1.getDistances)(begin, endNE);\n if (d1.distance <= maxDistance) {\n const yi = begin.y - (d1.dy / d1.dx) * begin.x;\n pi1 = { x: 0, y: yi };\n pi2 = { x: canvasSize.width, y: yi };\n }\n else {\n const endSW = {\n x: end.x,\n y: end.y - canvasSize.height,\n };\n const d2 = (0, NumberUtils_1.getDistances)(begin, endSW);\n if (d2.distance <= maxDistance) {\n const yi = begin.y - (d2.dy / d2.dx) * begin.x;\n const xi = -yi / (d2.dy / d2.dx);\n pi1 = { x: xi, y: 0 };\n pi2 = { x: xi, y: canvasSize.height };\n }\n else {\n const endSE = {\n x: end.x - canvasSize.width,\n y: end.y - canvasSize.height,\n };\n const d3 = (0, NumberUtils_1.getDistances)(begin, endSE);\n if (d3.distance <= maxDistance) {\n const yi = begin.y - (d3.dy / d3.dx) * begin.x;\n const xi = -yi / (d3.dy / d3.dx);\n pi1 = { x: xi, y: yi };\n pi2 = { x: pi1.x + canvasSize.width, y: pi1.y + canvasSize.height };\n }\n }\n }\n if (pi1 && pi2) {\n drawLine(context, begin, pi1);\n drawLine(context, end, pi2);\n drawn = true;\n }\n }\n if (!drawn) {\n return;\n }\n context.lineWidth = width;\n if (backgroundMask) {\n context.globalCompositeOperation = composite;\n }\n context.strokeStyle = (0, ColorUtils_1.getStyleFromRgb)(colorLine, opacity);\n if (shadow.enable) {\n const shadowColor = (0, ColorUtils_1.colorToRgb)(shadow.color);\n if (shadowColor) {\n context.shadowBlur = shadow.blur;\n context.shadowColor = (0, ColorUtils_1.getStyleFromRgb)(shadowColor);\n }\n }\n context.stroke();\n}\nexports.drawLinkLine = drawLinkLine;\nfunction drawLinkTriangle(context, pos1, pos2, pos3, backgroundMask, composite, colorTriangle, opacityTriangle) {\n drawTriangle(context, pos1, pos2, pos3);\n if (backgroundMask) {\n context.globalCompositeOperation = composite;\n }\n context.fillStyle = (0, ColorUtils_1.getStyleFromRgb)(colorTriangle, opacityTriangle);\n context.fill();\n}\nexports.drawLinkTriangle = drawLinkTriangle;\nfunction drawConnectLine(context, width, lineStyle, begin, end) {\n context.save();\n drawLine(context, begin, end);\n context.lineWidth = width;\n context.strokeStyle = lineStyle;\n context.stroke();\n context.restore();\n}\nexports.drawConnectLine = drawConnectLine;\nfunction gradient(context, p1, p2, opacity) {\n const gradStop = Math.floor(p2.getRadius() / p1.getRadius());\n const color1 = p1.getFillColor();\n const color2 = p2.getFillColor();\n if (!color1 || !color2) {\n return;\n }\n const sourcePos = p1.getPosition();\n const destPos = p2.getPosition();\n const midRgb = (0, ColorUtils_1.colorMix)(color1, color2, p1.getRadius(), p2.getRadius());\n const grad = context.createLinearGradient(sourcePos.x, sourcePos.y, destPos.x, destPos.y);\n grad.addColorStop(0, (0, ColorUtils_1.getStyleFromHsl)(color1, opacity));\n grad.addColorStop(gradStop > 1 ? 1 : gradStop, (0, ColorUtils_1.getStyleFromRgb)(midRgb, opacity));\n grad.addColorStop(1, (0, ColorUtils_1.getStyleFromHsl)(color2, opacity));\n return grad;\n}\nexports.gradient = gradient;\nfunction drawGrabLine(context, width, begin, end, colorLine, opacity) {\n context.save();\n drawLine(context, begin, end);\n context.strokeStyle = (0, ColorUtils_1.getStyleFromRgb)(colorLine, opacity);\n context.lineWidth = width;\n context.stroke();\n context.restore();\n}\nexports.drawGrabLine = drawGrabLine;\nfunction drawParticle(container, context, particle, delta, fillColorValue, strokeColorValue, backgroundMask, composite, radius, opacity, shadow, gradient) {\n var _a, _b, _c, _d, _e, _f;\n const pos = particle.getPosition();\n const tiltOptions = particle.options.tilt;\n const rollOptions = particle.options.roll;\n context.save();\n if (tiltOptions.enable || rollOptions.enable) {\n const roll = rollOptions.enable && particle.roll;\n const tilt = tiltOptions.enable && particle.tilt;\n const rollHorizontal = roll && (rollOptions.mode === Enums_1.RollMode.horizontal || rollOptions.mode === Enums_1.RollMode.both);\n const rollVertical = roll && (rollOptions.mode === Enums_1.RollMode.vertical || rollOptions.mode === Enums_1.RollMode.both);\n context.setTransform(rollHorizontal ? Math.cos(particle.roll.angle) : 1, tilt ? Math.cos(particle.tilt.value) * particle.tilt.cosDirection : 0, tilt ? Math.sin(particle.tilt.value) * particle.tilt.sinDirection : 0, rollVertical ? Math.sin(particle.roll.angle) : 1, pos.x, pos.y);\n }\n else {\n context.translate(pos.x, pos.y);\n }\n context.beginPath();\n const angle = ((_b = (_a = particle.rotate) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : 0) + (particle.options.rotate.path ? particle.velocity.angle : 0);\n if (angle !== 0) {\n context.rotate(angle);\n }\n if (backgroundMask) {\n context.globalCompositeOperation = composite;\n }\n const shadowColor = particle.shadowColor;\n if (shadow.enable && shadowColor) {\n context.shadowBlur = shadow.blur;\n context.shadowColor = (0, ColorUtils_1.getStyleFromRgb)(shadowColor);\n context.shadowOffsetX = shadow.offset.x;\n context.shadowOffsetY = shadow.offset.y;\n }\n if (gradient) {\n const gradientAngle = gradient.angle.value;\n const fillGradient = gradient.type === Enums_1.GradientType.radial\n ? context.createRadialGradient(0, 0, 0, 0, 0, radius)\n : context.createLinearGradient(Math.cos(gradientAngle) * -radius, Math.sin(gradientAngle) * -radius, Math.cos(gradientAngle) * radius, Math.sin(gradientAngle) * radius);\n for (const color of gradient.colors) {\n fillGradient.addColorStop(color.stop, (0, ColorUtils_1.getStyleFromHsl)({\n h: color.value.h.value,\n s: color.value.s.value,\n l: color.value.l.value,\n }, (_d = (_c = color.opacity) === null || _c === void 0 ? void 0 : _c.value) !== null && _d !== void 0 ? _d : opacity));\n }\n context.fillStyle = fillGradient;\n }\n else {\n if (fillColorValue) {\n context.fillStyle = fillColorValue;\n }\n }\n const stroke = particle.stroke;\n context.lineWidth = (_e = particle.strokeWidth) !== null && _e !== void 0 ? _e : 0;\n if (strokeColorValue) {\n context.strokeStyle = strokeColorValue;\n }\n drawShape(container, context, particle, radius, opacity, delta);\n if (((_f = stroke === null || stroke === void 0 ? void 0 : stroke.width) !== null && _f !== void 0 ? _f : 0) > 0) {\n context.stroke();\n }\n if (particle.close) {\n context.closePath();\n }\n if (particle.fill) {\n context.fill();\n }\n context.restore();\n context.save();\n if (tiltOptions.enable && particle.tilt) {\n context.setTransform(1, Math.cos(particle.tilt.value) * particle.tilt.cosDirection, Math.sin(particle.tilt.value) * particle.tilt.sinDirection, 1, pos.x, pos.y);\n }\n else {\n context.translate(pos.x, pos.y);\n }\n if (angle !== 0) {\n context.rotate(angle);\n }\n if (backgroundMask) {\n context.globalCompositeOperation = composite;\n }\n drawShapeAfterEffect(container, context, particle, radius, opacity, delta);\n context.restore();\n}\nexports.drawParticle = drawParticle;\nfunction drawShape(container, context, particle, radius, opacity, delta) {\n if (!particle.shape) {\n return;\n }\n const drawer = container.drawers.get(particle.shape);\n if (!drawer) {\n return;\n }\n drawer.draw(context, particle, radius, opacity, delta, container.retina.pixelRatio);\n}\nexports.drawShape = drawShape;\nfunction drawShapeAfterEffect(container, context, particle, radius, opacity, delta) {\n if (!particle.shape) {\n return;\n }\n const drawer = container.drawers.get(particle.shape);\n if (!(drawer === null || drawer === void 0 ? void 0 : drawer.afterEffect)) {\n return;\n }\n drawer.afterEffect(context, particle, radius, opacity, delta, container.retina.pixelRatio);\n}\nexports.drawShapeAfterEffect = drawShapeAfterEffect;\nfunction drawPlugin(context, plugin, delta) {\n if (!plugin.draw) {\n return;\n }\n context.save();\n plugin.draw(context, delta);\n context.restore();\n}\nexports.drawPlugin = drawPlugin;\nfunction drawParticlePlugin(context, plugin, particle, delta) {\n if (plugin.drawParticle !== undefined) {\n context.save();\n plugin.drawParticle(context, particle, delta);\n context.restore();\n }\n}\nexports.drawParticlePlugin = drawParticlePlugin;\nfunction drawEllipse(context, particle, fillColorValue, radius, opacity, width, rotation, start, end) {\n const pos = particle.getPosition();\n if (fillColorValue) {\n context.strokeStyle = (0, ColorUtils_1.getStyleFromHsl)(fillColorValue, opacity);\n }\n if (width === 0) {\n return;\n }\n context.lineWidth = width;\n const rotationRadian = (rotation * Math.PI) / 180;\n context.beginPath();\n context.ellipse(pos.x, pos.y, radius / 2, radius * 2, rotationRadian, start, end);\n context.stroke();\n}\nexports.drawEllipse = drawEllipse;\nfunction alterHsl(color, type, value) {\n return {\n h: color.h,\n s: color.s,\n l: color.l + (type === Enums_1.AlterType.darken ? -1 : 1) * value,\n };\n}\nexports.alterHsl = alterHsl;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXRpbHMvQ2FudmFzVXRpbHMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsZ0JBQWdCLEdBQUcsbUJBQW1CLEdBQUcsMEJBQTBCLEdBQUcsa0JBQWtCLEdBQUcsNEJBQTRCLEdBQUcsaUJBQWlCLEdBQUcsb0JBQW9CLEdBQUcsb0JBQW9CLEdBQUcsZ0JBQWdCLEdBQUcsdUJBQXVCLEdBQUcsd0JBQXdCLEdBQUcsb0JBQW9CLEdBQUcsYUFBYSxHQUFHLGlCQUFpQjtBQUM1VCxzQkFBc0IsbUJBQU8sQ0FBQyxzRUFBZTtBQUM3QyxxQkFBcUIsbUJBQU8sQ0FBQyxvRUFBYztBQUMzQyxnQkFBZ0IsbUJBQU8sQ0FBQywyREFBVTtBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0I7QUFDcEIsb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCO0FBQ3hCLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QjtBQUM1Qiw0QkFBNEI7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUI7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEI7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQjtBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXRpbHMvQ2FudmFzVXRpbHMuanM/YTExZiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuYWx0ZXJIc2wgPSBleHBvcnRzLmRyYXdFbGxpcHNlID0gZXhwb3J0cy5kcmF3UGFydGljbGVQbHVnaW4gPSBleHBvcnRzLmRyYXdQbHVnaW4gPSBleHBvcnRzLmRyYXdTaGFwZUFmdGVyRWZmZWN0ID0gZXhwb3J0cy5kcmF3U2hhcGUgPSBleHBvcnRzLmRyYXdQYXJ0aWNsZSA9IGV4cG9ydHMuZHJhd0dyYWJMaW5lID0gZXhwb3J0cy5ncmFkaWVudCA9IGV4cG9ydHMuZHJhd0Nvbm5lY3RMaW5lID0gZXhwb3J0cy5kcmF3TGlua1RyaWFuZ2xlID0gZXhwb3J0cy5kcmF3TGlua0xpbmUgPSBleHBvcnRzLmNsZWFyID0gZXhwb3J0cy5wYWludEJhc2UgPSB2b2lkIDA7XG5jb25zdCBOdW1iZXJVdGlsc18xID0gcmVxdWlyZShcIi4vTnVtYmVyVXRpbHNcIik7XG5jb25zdCBDb2xvclV0aWxzXzEgPSByZXF1aXJlKFwiLi9Db2xvclV0aWxzXCIpO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuLi9FbnVtc1wiKTtcbmZ1bmN0aW9uIGRyYXdMaW5lKGNvbnRleHQsIGJlZ2luLCBlbmQpIHtcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xuICAgIGNvbnRleHQubW92ZVRvKGJlZ2luLngsIGJlZ2luLnkpO1xuICAgIGNvbnRleHQubGluZVRvKGVuZC54LCBlbmQueSk7XG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcbn1cbmZ1bmN0aW9uIGRyYXdUcmlhbmdsZShjb250ZXh0LCBwMSwgcDIsIHAzKSB7XG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcbiAgICBjb250ZXh0Lm1vdmVUbyhwMS54LCBwMS55KTtcbiAgICBjb250ZXh0LmxpbmVUbyhwMi54LCBwMi55KTtcbiAgICBjb250ZXh0LmxpbmVUbyhwMy54LCBwMy55KTtcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xufVxuZnVuY3Rpb24gcGFpbnRCYXNlKGNvbnRleHQsIGRpbWVuc2lvbiwgYmFzZUNvbG9yKSB7XG4gICAgY29udGV4dC5zYXZlKCk7XG4gICAgY29udGV4dC5maWxsU3R5bGUgPSBiYXNlQ29sb3IgIT09IG51bGwgJiYgYmFzZUNvbG9yICE9PSB2b2lkIDAgPyBiYXNlQ29sb3IgOiBcInJnYmEoMCwwLDAsMClcIjtcbiAgICBjb250ZXh0LmZpbGxSZWN0KDAsIDAsIGRpbWVuc2lvbi53aWR0aCwgZGltZW5zaW9uLmhlaWdodCk7XG4gICAgY29udGV4dC5yZXN0b3JlKCk7XG59XG5leHBvcnRzLnBhaW50QmFzZSA9IHBhaW50QmFzZTtcbmZ1bmN0aW9uIGNsZWFyKGNvbnRleHQsIGRpbWVuc2lvbikge1xuICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIGRpbWVuc2lvbi53aWR0aCwgZGltZW5zaW9uLmhlaWdodCk7XG59XG5leHBvcnRzLmNsZWFyID0gY2xlYXI7XG5mdW5jdGlvbiBkcmF3TGlua0xpbmUoY29udGV4dCwgd2lkdGgsIGJlZ2luLCBlbmQsIG1heERpc3RhbmNlLCBjYW52YXNTaXplLCB3YXJwLCBiYWNrZ3JvdW5kTWFzaywgY29tcG9zaXRlLCBjb2xvckxpbmUsIG9wYWNpdHksIHNoYWRvdykge1xuICAgIGxldCBkcmF3biA9IGZhbHNlO1xuICAgIGlmICgoMCwgTnVtYmVyVXRpbHNfMS5nZXREaXN0YW5jZSkoYmVnaW4sIGVuZCkgPD0gbWF4RGlzdGFuY2UpIHtcbiAgICAgICAgZHJhd0xpbmUoY29udGV4dCwgYmVnaW4sIGVuZCk7XG4gICAgICAgIGRyYXduID0gdHJ1ZTtcbiAgICB9XG4gICAgZWxzZSBpZiAod2FycCkge1xuICAgICAgICBsZXQgcGkxO1xuICAgICAgICBsZXQgcGkyO1xuICAgICAgICBjb25zdCBlbmRORSA9IHtcbiAgICAgICAgICAgIHg6IGVuZC54IC0gY2FudmFzU2l6ZS53aWR0aCxcbiAgICAgICAgICAgIHk6IGVuZC55LFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBkMSA9ICgwLCBOdW1iZXJVdGlsc18xLmdldERpc3RhbmNlcykoYmVnaW4sIGVuZE5FKTtcbiAgICAgICAgaWYgKGQxLmRpc3RhbmNlIDw9IG1heERpc3RhbmNlKSB7XG4gICAgICAgICAgICBjb25zdCB5aSA9IGJlZ2luLnkgLSAoZDEuZHkgLyBkMS5keCkgKiBiZWdpbi54O1xuICAgICAgICAgICAgcGkxID0geyB4OiAwLCB5OiB5aSB9O1xuICAgICAgICAgICAgcGkyID0geyB4OiBjYW52YXNTaXplLndpZHRoLCB5OiB5aSB9O1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZW5kU1cgPSB7XG4gICAgICAgICAgICAgICAgeDogZW5kLngsXG4gICAgICAgICAgICAgICAgeTogZW5kLnkgLSBjYW52YXNTaXplLmhlaWdodCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjb25zdCBkMiA9ICgwLCBOdW1iZXJVdGlsc18xLmdldERpc3RhbmNlcykoYmVnaW4sIGVuZFNXKTtcbiAgICAgICAgICAgIGlmIChkMi5kaXN0YW5jZSA8PSBtYXhEaXN0YW5jZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHlpID0gYmVnaW4ueSAtIChkMi5keSAvIGQyLmR4KSAqIGJlZ2luLng7XG4gICAgICAgICAgICAgICAgY29uc3QgeGkgPSAteWkgLyAoZDIuZHkgLyBkMi5keCk7XG4gICAgICAgICAgICAgICAgcGkxID0geyB4OiB4aSwgeTogMCB9O1xuICAgICAgICAgICAgICAgIHBpMiA9IHsgeDogeGksIHk6IGNhbnZhc1NpemUuaGVpZ2h0IH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlbmRTRSA9IHtcbiAgICAgICAgICAgICAgICAgICAgeDogZW5kLnggLSBjYW52YXNTaXplLndpZHRoLFxuICAgICAgICAgICAgICAgICAgICB5OiBlbmQueSAtIGNhbnZhc1NpemUuaGVpZ2h0LFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3QgZDMgPSAoMCwgTnVtYmVyVXRpbHNfMS5nZXREaXN0YW5jZXMpKGJlZ2luLCBlbmRTRSk7XG4gICAgICAgICAgICAgICAgaWYgKGQzLmRpc3RhbmNlIDw9IG1heERpc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHlpID0gYmVnaW4ueSAtIChkMy5keSAvIGQzLmR4KSAqIGJlZ2luLng7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHhpID0gLXlpIC8gKGQzLmR5IC8gZDMuZHgpO1xuICAgICAgICAgICAgICAgICAgICBwaTEgPSB7IHg6IHhpLCB5OiB5aSB9O1xuICAgICAgICAgICAgICAgICAgICBwaTIgPSB7IHg6IHBpMS54ICsgY2FudmFzU2l6ZS53aWR0aCwgeTogcGkxLnkgKyBjYW52YXNTaXplLmhlaWdodCB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAocGkxICYmIHBpMikge1xuICAgICAgICAgICAgZHJhd0xpbmUoY29udGV4dCwgYmVnaW4sIHBpMSk7XG4gICAgICAgICAgICBkcmF3TGluZShjb250ZXh0LCBlbmQsIHBpMik7XG4gICAgICAgICAgICBkcmF3biA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFkcmF3bikge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnRleHQubGluZVdpZHRoID0gd2lkdGg7XG4gICAgaWYgKGJhY2tncm91bmRNYXNrKSB7XG4gICAgICAgIGNvbnRleHQuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uID0gY29tcG9zaXRlO1xuICAgIH1cbiAgICBjb250ZXh0LnN0cm9rZVN0eWxlID0gKDAsIENvbG9yVXRpbHNfMS5nZXRTdHlsZUZyb21SZ2IpKGNvbG9yTGluZSwgb3BhY2l0eSk7XG4gICAgaWYgKHNoYWRvdy5lbmFibGUpIHtcbiAgICAgICAgY29uc3Qgc2hhZG93Q29sb3IgPSAoMCwgQ29sb3JVdGlsc18xLmNvbG9yVG9SZ2IpKHNoYWRvdy5jb2xvcik7XG4gICAgICAgIGlmIChzaGFkb3dDb2xvcikge1xuICAgICAgICAgICAgY29udGV4dC5zaGFkb3dCbHVyID0gc2hhZG93LmJsdXI7XG4gICAgICAgICAgICBjb250ZXh0LnNoYWRvd0NvbG9yID0gKDAsIENvbG9yVXRpbHNfMS5nZXRTdHlsZUZyb21SZ2IpKHNoYWRvd0NvbG9yKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb250ZXh0LnN0cm9rZSgpO1xufVxuZXhwb3J0cy5kcmF3TGlua0xpbmUgPSBkcmF3TGlua0xpbmU7XG5mdW5jdGlvbiBkcmF3TGlua1RyaWFuZ2xlKGNvbnRleHQsIHBvczEsIHBvczIsIHBvczMsIGJhY2tncm91bmRNYXNrLCBjb21wb3NpdGUsIGNvbG9yVHJpYW5nbGUsIG9wYWNpdHlUcmlhbmdsZSkge1xuICAgIGRyYXdUcmlhbmdsZShjb250ZXh0LCBwb3MxLCBwb3MyLCBwb3MzKTtcbiAgICBpZiAoYmFja2dyb3VuZE1hc2spIHtcbiAgICAgICAgY29udGV4dC5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb24gPSBjb21wb3NpdGU7XG4gICAgfVxuICAgIGNvbnRleHQuZmlsbFN0eWxlID0gKDAsIENvbG9yVXRpbHNfMS5nZXRTdHlsZUZyb21SZ2IpKGNvbG9yVHJpYW5nbGUsIG9wYWNpdHlUcmlhbmdsZSk7XG4gICAgY29udGV4dC5maWxsKCk7XG59XG5leHBvcnRzLmRyYXdMaW5rVHJpYW5nbGUgPSBkcmF3TGlua1RyaWFuZ2xlO1xuZnVuY3Rpb24gZHJhd0Nvbm5lY3RMaW5lKGNvbnRleHQsIHdpZHRoLCBsaW5lU3R5bGUsIGJlZ2luLCBlbmQpIHtcbiAgICBjb250ZXh0LnNhdmUoKTtcbiAgICBkcmF3TGluZShjb250ZXh0LCBiZWdpbiwgZW5kKTtcbiAgICBjb250ZXh0LmxpbmVXaWR0aCA9IHdpZHRoO1xuICAgIGNvbnRleHQuc3Ryb2tlU3R5bGUgPSBsaW5lU3R5bGU7XG4gICAgY29udGV4dC5zdHJva2UoKTtcbiAgICBjb250ZXh0LnJlc3RvcmUoKTtcbn1cbmV4cG9ydHMuZHJhd0Nvbm5lY3RMaW5lID0gZHJhd0Nvbm5lY3RMaW5lO1xuZnVuY3Rpb24gZ3JhZGllbnQoY29udGV4dCwgcDEsIHAyLCBvcGFjaXR5KSB7XG4gICAgY29uc3QgZ3JhZFN0b3AgPSBNYXRoLmZsb29yKHAyLmdldFJhZGl1cygpIC8gcDEuZ2V0UmFkaXVzKCkpO1xuICAgIGNvbnN0IGNvbG9yMSA9IHAxLmdldEZpbGxDb2xvcigpO1xuICAgIGNvbnN0IGNvbG9yMiA9IHAyLmdldEZpbGxDb2xvcigpO1xuICAgIGlmICghY29sb3IxIHx8ICFjb2xvcjIpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBzb3VyY2VQb3MgPSBwMS5nZXRQb3NpdGlvbigpO1xuICAgIGNvbnN0IGRlc3RQb3MgPSBwMi5nZXRQb3NpdGlvbigpO1xuICAgIGNvbnN0IG1pZFJnYiA9ICgwLCBDb2xvclV0aWxzXzEuY29sb3JNaXgpKGNvbG9yMSwgY29sb3IyLCBwMS5nZXRSYWRpdXMoKSwgcDIuZ2V0UmFkaXVzKCkpO1xuICAgIGNvbnN0IGdyYWQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KHNvdXJjZVBvcy54LCBzb3VyY2VQb3MueSwgZGVzdFBvcy54LCBkZXN0UG9zLnkpO1xuICAgIGdyYWQuYWRkQ29sb3JTdG9wKDAsICgwLCBDb2xvclV0aWxzXzEuZ2V0U3R5bGVGcm9tSHNsKShjb2xvcjEsIG9wYWNpdHkpKTtcbiAgICBncmFkLmFkZENvbG9yU3RvcChncmFkU3RvcCA+IDEgPyAxIDogZ3JhZFN0b3AsICgwLCBDb2xvclV0aWxzXzEuZ2V0U3R5bGVGcm9tUmdiKShtaWRSZ2IsIG9wYWNpdHkpKTtcbiAgICBncmFkLmFkZENvbG9yU3RvcCgxLCAoMCwgQ29sb3JVdGlsc18xLmdldFN0eWxlRnJvbUhzbCkoY29sb3IyLCBvcGFjaXR5KSk7XG4gICAgcmV0dXJuIGdyYWQ7XG59XG5leHBvcnRzLmdyYWRpZW50ID0gZ3JhZGllbnQ7XG5mdW5jdGlvbiBkcmF3R3JhYkxpbmUoY29udGV4dCwgd2lkdGgsIGJlZ2luLCBlbmQsIGNvbG9yTGluZSwgb3BhY2l0eSkge1xuICAgIGNvbnRleHQuc2F2ZSgpO1xuICAgIGRyYXdMaW5lKGNvbnRleHQsIGJlZ2luLCBlbmQpO1xuICAgIGNvbnRleHQuc3Ryb2tlU3R5bGUgPSAoMCwgQ29sb3JVdGlsc18xLmdldFN0eWxlRnJvbVJnYikoY29sb3JMaW5lLCBvcGFjaXR5KTtcbiAgICBjb250ZXh0LmxpbmVXaWR0aCA9IHdpZHRoO1xuICAgIGNvbnRleHQuc3Ryb2tlKCk7XG4gICAgY29udGV4dC5yZXN0b3JlKCk7XG59XG5leHBvcnRzLmRyYXdHcmFiTGluZSA9IGRyYXdHcmFiTGluZTtcbmZ1bmN0aW9uIGRyYXdQYXJ0aWNsZShjb250YWluZXIsIGNvbnRleHQsIHBhcnRpY2xlLCBkZWx0YSwgZmlsbENvbG9yVmFsdWUsIHN0cm9rZUNvbG9yVmFsdWUsIGJhY2tncm91bmRNYXNrLCBjb21wb3NpdGUsIHJhZGl1cywgb3BhY2l0eSwgc2hhZG93LCBncmFkaWVudCkge1xuICAgIHZhciBfYSwgX2IsIF9jLCBfZCwgX2UsIF9mO1xuICAgIGNvbnN0IHBvcyA9IHBhcnRpY2xlLmdldFBvc2l0aW9uKCk7XG4gICAgY29uc3QgdGlsdE9wdGlvbnMgPSBwYXJ0aWNsZS5vcHRpb25zLnRpbHQ7XG4gICAgY29uc3Qgcm9sbE9wdGlvbnMgPSBwYXJ0aWNsZS5vcHRpb25zLnJvbGw7XG4gICAgY29udGV4dC5zYXZlKCk7XG4gICAgaWYgKHRpbHRPcHRpb25zLmVuYWJsZSB8fCByb2xsT3B0aW9ucy5lbmFibGUpIHtcbiAgICAgICAgY29uc3Qgcm9sbCA9IHJvbGxPcHRpb25zLmVuYWJsZSAmJiBwYXJ0aWNsZS5yb2xsO1xuICAgICAgICBjb25zdCB0aWx0ID0gdGlsdE9wdGlvbnMuZW5hYmxlICYmIHBhcnRpY2xlLnRpbHQ7XG4gICAgICAgIGNvbnN0IHJvbGxIb3Jpem9udGFsID0gcm9sbCAmJiAocm9sbE9wdGlvbnMubW9kZSA9PT0gRW51bXNfMS5Sb2xsTW9kZS5ob3Jpem9udGFsIHx8IHJvbGxPcHRpb25zLm1vZGUgPT09IEVudW1zXzEuUm9sbE1vZGUuYm90aCk7XG4gICAgICAgIGNvbnN0IHJvbGxWZXJ0aWNhbCA9IHJvbGwgJiYgKHJvbGxPcHRpb25zLm1vZGUgPT09IEVudW1zXzEuUm9sbE1vZGUudmVydGljYWwgfHwgcm9sbE9wdGlvbnMubW9kZSA9PT0gRW51bXNfMS5Sb2xsTW9kZS5ib3RoKTtcbiAgICAgICAgY29udGV4dC5zZXRUcmFuc2Zvcm0ocm9sbEhvcml6b250YWwgPyBNYXRoLmNvcyhwYXJ0aWNsZS5yb2xsLmFuZ2xlKSA6IDEsIHRpbHQgPyBNYXRoLmNvcyhwYXJ0aWNsZS50aWx0LnZhbHVlKSAqIHBhcnRpY2xlLnRpbHQuY29zRGlyZWN0aW9uIDogMCwgdGlsdCA/IE1hdGguc2luKHBhcnRpY2xlLnRpbHQudmFsdWUpICogcGFydGljbGUudGlsdC5zaW5EaXJlY3Rpb24gOiAwLCByb2xsVmVydGljYWwgPyBNYXRoLnNpbihwYXJ0aWNsZS5yb2xsLmFuZ2xlKSA6IDEsIHBvcy54LCBwb3MueSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBjb250ZXh0LnRyYW5zbGF0ZShwb3MueCwgcG9zLnkpO1xuICAgIH1cbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xuICAgIGNvbnN0IGFuZ2xlID0gKChfYiA9IChfYSA9IHBhcnRpY2xlLnJvdGF0ZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnZhbHVlKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiAwKSArIChwYXJ0aWNsZS5vcHRpb25zLnJvdGF0ZS5wYXRoID8gcGFydGljbGUudmVsb2NpdHkuYW5nbGUgOiAwKTtcbiAgICBpZiAoYW5nbGUgIT09IDApIHtcbiAgICAgICAgY29udGV4dC5yb3RhdGUoYW5nbGUpO1xuICAgIH1cbiAgICBpZiAoYmFja2dyb3VuZE1hc2spIHtcbiAgICAgICAgY29udGV4dC5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb24gPSBjb21wb3NpdGU7XG4gICAgfVxuICAgIGNvbnN0IHNoYWRvd0NvbG9yID0gcGFydGljbGUuc2hhZG93Q29sb3I7XG4gICAgaWYgKHNoYWRvdy5lbmFibGUgJiYgc2hhZG93Q29sb3IpIHtcbiAgICAgICAgY29udGV4dC5zaGFkb3dCbHVyID0gc2hhZG93LmJsdXI7XG4gICAgICAgIGNvbnRleHQuc2hhZG93Q29sb3IgPSAoMCwgQ29sb3JVdGlsc18xLmdldFN0eWxlRnJvbVJnYikoc2hhZG93Q29sb3IpO1xuICAgICAgICBjb250ZXh0LnNoYWRvd09mZnNldFggPSBzaGFkb3cub2Zmc2V0Lng7XG4gICAgICAgIGNvbnRleHQuc2hhZG93T2Zmc2V0WSA9IHNoYWRvdy5vZmZzZXQueTtcbiAgICB9XG4gICAgaWYgKGdyYWRpZW50KSB7XG4gICAgICAgIGNvbnN0IGdyYWRpZW50QW5nbGUgPSBncmFkaWVudC5hbmdsZS52YWx1ZTtcbiAgICAgICAgY29uc3QgZmlsbEdyYWRpZW50ID0gZ3JhZGllbnQudHlwZSA9PT0gRW51bXNfMS5HcmFkaWVudFR5cGUucmFkaWFsXG4gICAgICAgICAgICA/IGNvbnRleHQuY3JlYXRlUmFkaWFsR3JhZGllbnQoMCwgMCwgMCwgMCwgMCwgcmFkaXVzKVxuICAgICAgICAgICAgOiBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KE1hdGguY29zKGdyYWRpZW50QW5nbGUpICogLXJhZGl1cywgTWF0aC5zaW4oZ3JhZGllbnRBbmdsZSkgKiAtcmFkaXVzLCBNYXRoLmNvcyhncmFkaWVudEFuZ2xlKSAqIHJhZGl1cywgTWF0aC5zaW4oZ3JhZGllbnRBbmdsZSkgKiByYWRpdXMpO1xuICAgICAgICBmb3IgKGNvbnN0IGNvbG9yIG9mIGdyYWRpZW50LmNvbG9ycykge1xuICAgICAgICAgICAgZmlsbEdyYWRpZW50LmFkZENvbG9yU3RvcChjb2xvci5zdG9wLCAoMCwgQ29sb3JVdGlsc18xLmdldFN0eWxlRnJvbUhzbCkoe1xuICAgICAgICAgICAgICAgIGg6IGNvbG9yLnZhbHVlLmgudmFsdWUsXG4gICAgICAgICAgICAgICAgczogY29sb3IudmFsdWUucy52YWx1ZSxcbiAgICAgICAgICAgICAgICBsOiBjb2xvci52YWx1ZS5sLnZhbHVlLFxuICAgICAgICAgICAgfSwgKF9kID0gKF9jID0gY29sb3Iub3BhY2l0eSkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLnZhbHVlKSAhPT0gbnVsbCAmJiBfZCAhPT0gdm9pZCAwID8gX2QgOiBvcGFjaXR5KSk7XG4gICAgICAgIH1cbiAgICAgICAgY29udGV4dC5maWxsU3R5bGUgPSBmaWxsR3JhZGllbnQ7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBpZiAoZmlsbENvbG9yVmFsdWUpIHtcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFN0eWxlID0gZmlsbENvbG9yVmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3Qgc3Ryb2tlID0gcGFydGljbGUuc3Ryb2tlO1xuICAgIGNvbnRleHQubGluZVdpZHRoID0gKF9lID0gcGFydGljbGUuc3Ryb2tlV2lkdGgpICE9PSBudWxsICYmIF9lICE9PSB2b2lkIDAgPyBfZSA6IDA7XG4gICAgaWYgKHN0cm9rZUNvbG9yVmFsdWUpIHtcbiAgICAgICAgY29udGV4dC5zdHJva2VTdHlsZSA9IHN0cm9rZUNvbG9yVmFsdWU7XG4gICAgfVxuICAgIGRyYXdTaGFwZShjb250YWluZXIsIGNvbnRleHQsIHBhcnRpY2xlLCByYWRpdXMsIG9wYWNpdHksIGRlbHRhKTtcbiAgICBpZiAoKChfZiA9IHN0cm9rZSA9PT0gbnVsbCB8fCBzdHJva2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHN0cm9rZS53aWR0aCkgIT09IG51bGwgJiYgX2YgIT09IHZvaWQgMCA/IF9mIDogMCkgPiAwKSB7XG4gICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XG4gICAgfVxuICAgIGlmIChwYXJ0aWNsZS5jbG9zZSkge1xuICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xuICAgIH1cbiAgICBpZiAocGFydGljbGUuZmlsbCkge1xuICAgICAgICBjb250ZXh0LmZpbGwoKTtcbiAgICB9XG4gICAgY29udGV4dC5yZXN0b3JlKCk7XG4gICAgY29udGV4dC5zYXZlKCk7XG4gICAgaWYgKHRpbHRPcHRpb25zLmVuYWJsZSAmJiBwYXJ0aWNsZS50aWx0KSB7XG4gICAgICAgIGNvbnRleHQuc2V0VHJhbnNmb3JtKDEsIE1hdGguY29zKHBhcnRpY2xlLnRpbHQudmFsdWUpICogcGFydGljbGUudGlsdC5jb3NEaXJlY3Rpb24sIE1hdGguc2luKHBhcnRpY2xlLnRpbHQudmFsdWUpICogcGFydGljbGUudGlsdC5zaW5EaXJlY3Rpb24sIDEsIHBvcy54LCBwb3MueSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBjb250ZXh0LnRyYW5zbGF0ZShwb3MueCwgcG9zLnkpO1xuICAgIH1cbiAgICBpZiAoYW5nbGUgIT09IDApIHtcbiAgICAgICAgY29udGV4dC5yb3RhdGUoYW5nbGUpO1xuICAgIH1cbiAgICBpZiAoYmFja2dyb3VuZE1hc2spIHtcbiAgICAgICAgY29udGV4dC5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb24gPSBjb21wb3NpdGU7XG4gICAgfVxuICAgIGRyYXdTaGFwZUFmdGVyRWZmZWN0KGNvbnRhaW5lciwgY29udGV4dCwgcGFydGljbGUsIHJhZGl1cywgb3BhY2l0eSwgZGVsdGEpO1xuICAgIGNvbnRleHQucmVzdG9yZSgpO1xufVxuZXhwb3J0cy5kcmF3UGFydGljbGUgPSBkcmF3UGFydGljbGU7XG5mdW5jdGlvbiBkcmF3U2hhcGUoY29udGFpbmVyLCBjb250ZXh0LCBwYXJ0aWNsZSwgcmFkaXVzLCBvcGFjaXR5LCBkZWx0YSkge1xuICAgIGlmICghcGFydGljbGUuc2hhcGUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBkcmF3ZXIgPSBjb250YWluZXIuZHJhd2Vycy5nZXQocGFydGljbGUuc2hhcGUpO1xuICAgIGlmICghZHJhd2VyKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZHJhd2VyLmRyYXcoY29udGV4dCwgcGFydGljbGUsIHJhZGl1cywgb3BhY2l0eSwgZGVsdGEsIGNvbnRhaW5lci5yZXRpbmEucGl4ZWxSYXRpbyk7XG59XG5leHBvcnRzLmRyYXdTaGFwZSA9IGRyYXdTaGFwZTtcbmZ1bmN0aW9uIGRyYXdTaGFwZUFmdGVyRWZmZWN0KGNvbnRhaW5lciwgY29udGV4dCwgcGFydGljbGUsIHJhZGl1cywgb3BhY2l0eSwgZGVsdGEpIHtcbiAgICBpZiAoIXBhcnRpY2xlLnNoYXBlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZHJhd2VyID0gY29udGFpbmVyLmRyYXdlcnMuZ2V0KHBhcnRpY2xlLnNoYXBlKTtcbiAgICBpZiAoIShkcmF3ZXIgPT09IG51bGwgfHwgZHJhd2VyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkcmF3ZXIuYWZ0ZXJFZmZlY3QpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZHJhd2VyLmFmdGVyRWZmZWN0KGNvbnRleHQsIHBhcnRpY2xlLCByYWRpdXMsIG9wYWNpdHksIGRlbHRhLCBjb250YWluZXIucmV0aW5hLnBpeGVsUmF0aW8pO1xufVxuZXhwb3J0cy5kcmF3U2hhcGVBZnRlckVmZmVjdCA9IGRyYXdTaGFwZUFmdGVyRWZmZWN0O1xuZnVuY3Rpb24gZHJhd1BsdWdpbihjb250ZXh0LCBwbHVnaW4sIGRlbHRhKSB7XG4gICAgaWYgKCFwbHVnaW4uZHJhdykge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnRleHQuc2F2ZSgpO1xuICAgIHBsdWdpbi5kcmF3KGNvbnRleHQsIGRlbHRhKTtcbiAgICBjb250ZXh0LnJlc3RvcmUoKTtcbn1cbmV4cG9ydHMuZHJhd1BsdWdpbiA9IGRyYXdQbHVnaW47XG5mdW5jdGlvbiBkcmF3UGFydGljbGVQbHVnaW4oY29udGV4dCwgcGx1Z2luLCBwYXJ0aWNsZSwgZGVsdGEpIHtcbiAgICBpZiAocGx1Z2luLmRyYXdQYXJ0aWNsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnRleHQuc2F2ZSgpO1xuICAgICAgICBwbHVnaW4uZHJhd1BhcnRpY2xlKGNvbnRleHQsIHBhcnRpY2xlLCBkZWx0YSk7XG4gICAgICAgIGNvbnRleHQucmVzdG9yZSgpO1xuICAgIH1cbn1cbmV4cG9ydHMuZHJhd1BhcnRpY2xlUGx1Z2luID0gZHJhd1BhcnRpY2xlUGx1Z2luO1xuZnVuY3Rpb24gZHJhd0VsbGlwc2UoY29udGV4dCwgcGFydGljbGUsIGZpbGxDb2xvclZhbHVlLCByYWRpdXMsIG9wYWNpdHksIHdpZHRoLCByb3RhdGlvbiwgc3RhcnQsIGVuZCkge1xuICAgIGNvbnN0IHBvcyA9IHBhcnRpY2xlLmdldFBvc2l0aW9uKCk7XG4gICAgaWYgKGZpbGxDb2xvclZhbHVlKSB7XG4gICAgICAgIGNvbnRleHQuc3Ryb2tlU3R5bGUgPSAoMCwgQ29sb3JVdGlsc18xLmdldFN0eWxlRnJvbUhzbCkoZmlsbENvbG9yVmFsdWUsIG9wYWNpdHkpO1xuICAgIH1cbiAgICBpZiAod2lkdGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb250ZXh0LmxpbmVXaWR0aCA9IHdpZHRoO1xuICAgIGNvbnN0IHJvdGF0aW9uUmFkaWFuID0gKHJvdGF0aW9uICogTWF0aC5QSSkgLyAxODA7XG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcbiAgICBjb250ZXh0LmVsbGlwc2UocG9zLngsIHBvcy55LCByYWRpdXMgLyAyLCByYWRpdXMgKiAyLCByb3RhdGlvblJhZGlhbiwgc3RhcnQsIGVuZCk7XG4gICAgY29udGV4dC5zdHJva2UoKTtcbn1cbmV4cG9ydHMuZHJhd0VsbGlwc2UgPSBkcmF3RWxsaXBzZTtcbmZ1bmN0aW9uIGFsdGVySHNsKGNvbG9yLCB0eXBlLCB2YWx1ZSkge1xuICAgIHJldHVybiB7XG4gICAgICAgIGg6IGNvbG9yLmgsXG4gICAgICAgIHM6IGNvbG9yLnMsXG4gICAgICAgIGw6IGNvbG9yLmwgKyAodHlwZSA9PT0gRW51bXNfMS5BbHRlclR5cGUuZGFya2VuID8gLTEgOiAxKSAqIHZhbHVlLFxuICAgIH07XG59XG5leHBvcnRzLmFsdGVySHNsID0gYWx0ZXJIc2w7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Utils/CanvasUtils.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Utils/Circle.js": +/*!**************************************************!*\ + !*** ./node_modules/tsparticles/Utils/Circle.js ***! + \**************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Circle = void 0;\nconst Range_1 = __webpack_require__(/*! ./Range */ \"./node_modules/tsparticles/Utils/Range.js\");\nconst NumberUtils_1 = __webpack_require__(/*! ./NumberUtils */ \"./node_modules/tsparticles/Utils/NumberUtils.js\");\nclass Circle extends Range_1.Range {\n constructor(x, y, radius) {\n super(x, y);\n this.radius = radius;\n }\n contains(point) {\n return (0, NumberUtils_1.getDistance)(point, this.position) <= this.radius;\n }\n intersects(range) {\n const rect = range;\n const circle = range;\n const pos1 = this.position;\n const pos2 = range.position;\n const xDist = Math.abs(pos2.x - pos1.x);\n const yDist = Math.abs(pos2.y - pos1.y);\n const r = this.radius;\n if (circle.radius !== undefined) {\n const rSum = r + circle.radius;\n const dist = Math.sqrt(xDist * xDist + yDist + yDist);\n return rSum > dist;\n }\n else if (rect.size !== undefined) {\n const w = rect.size.width;\n const h = rect.size.height;\n const edges = Math.pow(xDist - w, 2) + Math.pow(yDist - h, 2);\n if (xDist > r + w || yDist > r + h) {\n return false;\n }\n if (xDist <= w || yDist <= h) {\n return true;\n }\n return edges <= r * r;\n }\n return false;\n }\n}\nexports.Circle = Circle;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXRpbHMvQ2lyY2xlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGNBQWM7QUFDZCxnQkFBZ0IsbUJBQU8sQ0FBQywwREFBUztBQUNqQyxzQkFBc0IsbUJBQU8sQ0FBQyxzRUFBZTtBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9VdGlscy9DaXJjbGUuanM/YTdhNiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuQ2lyY2xlID0gdm9pZCAwO1xuY29uc3QgUmFuZ2VfMSA9IHJlcXVpcmUoXCIuL1JhbmdlXCIpO1xuY29uc3QgTnVtYmVyVXRpbHNfMSA9IHJlcXVpcmUoXCIuL051bWJlclV0aWxzXCIpO1xuY2xhc3MgQ2lyY2xlIGV4dGVuZHMgUmFuZ2VfMS5SYW5nZSB7XG4gICAgY29uc3RydWN0b3IoeCwgeSwgcmFkaXVzKSB7XG4gICAgICAgIHN1cGVyKHgsIHkpO1xuICAgICAgICB0aGlzLnJhZGl1cyA9IHJhZGl1cztcbiAgICB9XG4gICAgY29udGFpbnMocG9pbnQpIHtcbiAgICAgICAgcmV0dXJuICgwLCBOdW1iZXJVdGlsc18xLmdldERpc3RhbmNlKShwb2ludCwgdGhpcy5wb3NpdGlvbikgPD0gdGhpcy5yYWRpdXM7XG4gICAgfVxuICAgIGludGVyc2VjdHMocmFuZ2UpIHtcbiAgICAgICAgY29uc3QgcmVjdCA9IHJhbmdlO1xuICAgICAgICBjb25zdCBjaXJjbGUgPSByYW5nZTtcbiAgICAgICAgY29uc3QgcG9zMSA9IHRoaXMucG9zaXRpb247XG4gICAgICAgIGNvbnN0IHBvczIgPSByYW5nZS5wb3NpdGlvbjtcbiAgICAgICAgY29uc3QgeERpc3QgPSBNYXRoLmFicyhwb3MyLnggLSBwb3MxLngpO1xuICAgICAgICBjb25zdCB5RGlzdCA9IE1hdGguYWJzKHBvczIueSAtIHBvczEueSk7XG4gICAgICAgIGNvbnN0IHIgPSB0aGlzLnJhZGl1cztcbiAgICAgICAgaWYgKGNpcmNsZS5yYWRpdXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29uc3QgclN1bSA9IHIgKyBjaXJjbGUucmFkaXVzO1xuICAgICAgICAgICAgY29uc3QgZGlzdCA9IE1hdGguc3FydCh4RGlzdCAqIHhEaXN0ICsgeURpc3QgKyB5RGlzdCk7XG4gICAgICAgICAgICByZXR1cm4gclN1bSA+IGRpc3Q7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAocmVjdC5zaXplICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHcgPSByZWN0LnNpemUud2lkdGg7XG4gICAgICAgICAgICBjb25zdCBoID0gcmVjdC5zaXplLmhlaWdodDtcbiAgICAgICAgICAgIGNvbnN0IGVkZ2VzID0gTWF0aC5wb3coeERpc3QgLSB3LCAyKSArIE1hdGgucG93KHlEaXN0IC0gaCwgMik7XG4gICAgICAgICAgICBpZiAoeERpc3QgPiByICsgdyB8fCB5RGlzdCA+IHIgKyBoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHhEaXN0IDw9IHcgfHwgeURpc3QgPD0gaCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGVkZ2VzIDw9IHIgKiByO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG5leHBvcnRzLkNpcmNsZSA9IENpcmNsZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Utils/Circle.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Utils/CircleWarp.js": +/*!******************************************************!*\ + !*** ./node_modules/tsparticles/Utils/CircleWarp.js ***! + \******************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.CircleWarp = void 0;\nconst Rectangle_1 = __webpack_require__(/*! ./Rectangle */ \"./node_modules/tsparticles/Utils/Rectangle.js\");\nconst Circle_1 = __webpack_require__(/*! ./Circle */ \"./node_modules/tsparticles/Utils/Circle.js\");\nclass CircleWarp extends Circle_1.Circle {\n constructor(x, y, radius, canvasSize) {\n super(x, y, radius);\n this.canvasSize = canvasSize;\n this.canvasSize = {\n height: canvasSize.height,\n width: canvasSize.width,\n };\n }\n contains(point) {\n if (super.contains(point)) {\n return true;\n }\n const posNE = {\n x: point.x - this.canvasSize.width,\n y: point.y,\n };\n if (super.contains(posNE)) {\n return true;\n }\n const posSE = {\n x: point.x - this.canvasSize.width,\n y: point.y - this.canvasSize.height,\n };\n if (super.contains(posSE)) {\n return true;\n }\n const posSW = {\n x: point.x,\n y: point.y - this.canvasSize.height,\n };\n return super.contains(posSW);\n }\n intersects(range) {\n if (super.intersects(range)) {\n return true;\n }\n const rect = range;\n const circle = range;\n const newPos = {\n x: range.position.x - this.canvasSize.width,\n y: range.position.y - this.canvasSize.height,\n };\n if (circle.radius !== undefined) {\n const biggerCircle = new Circle_1.Circle(newPos.x, newPos.y, circle.radius * 2);\n return super.intersects(biggerCircle);\n }\n else if (rect.size !== undefined) {\n const rectSW = new Rectangle_1.Rectangle(newPos.x, newPos.y, rect.size.width * 2, rect.size.height * 2);\n return super.intersects(rectSW);\n }\n return false;\n }\n}\nexports.CircleWarp = CircleWarp;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXRpbHMvQ2lyY2xlV2FycC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxrQkFBa0I7QUFDbEIsb0JBQW9CLG1CQUFPLENBQUMsa0VBQWE7QUFDekMsaUJBQWlCLG1CQUFPLENBQUMsNERBQVU7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9VdGlscy9DaXJjbGVXYXJwLmpzP2E4OTgiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkNpcmNsZVdhcnAgPSB2b2lkIDA7XG5jb25zdCBSZWN0YW5nbGVfMSA9IHJlcXVpcmUoXCIuL1JlY3RhbmdsZVwiKTtcbmNvbnN0IENpcmNsZV8xID0gcmVxdWlyZShcIi4vQ2lyY2xlXCIpO1xuY2xhc3MgQ2lyY2xlV2FycCBleHRlbmRzIENpcmNsZV8xLkNpcmNsZSB7XG4gICAgY29uc3RydWN0b3IoeCwgeSwgcmFkaXVzLCBjYW52YXNTaXplKSB7XG4gICAgICAgIHN1cGVyKHgsIHksIHJhZGl1cyk7XG4gICAgICAgIHRoaXMuY2FudmFzU2l6ZSA9IGNhbnZhc1NpemU7XG4gICAgICAgIHRoaXMuY2FudmFzU2l6ZSA9IHtcbiAgICAgICAgICAgIGhlaWdodDogY2FudmFzU2l6ZS5oZWlnaHQsXG4gICAgICAgICAgICB3aWR0aDogY2FudmFzU2l6ZS53aWR0aCxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgY29udGFpbnMocG9pbnQpIHtcbiAgICAgICAgaWYgKHN1cGVyLmNvbnRhaW5zKHBvaW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcG9zTkUgPSB7XG4gICAgICAgICAgICB4OiBwb2ludC54IC0gdGhpcy5jYW52YXNTaXplLndpZHRoLFxuICAgICAgICAgICAgeTogcG9pbnQueSxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHN1cGVyLmNvbnRhaW5zKHBvc05FKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcG9zU0UgPSB7XG4gICAgICAgICAgICB4OiBwb2ludC54IC0gdGhpcy5jYW52YXNTaXplLndpZHRoLFxuICAgICAgICAgICAgeTogcG9pbnQueSAtIHRoaXMuY2FudmFzU2l6ZS5oZWlnaHQsXG4gICAgICAgIH07XG4gICAgICAgIGlmIChzdXBlci5jb250YWlucyhwb3NTRSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBvc1NXID0ge1xuICAgICAgICAgICAgeDogcG9pbnQueCxcbiAgICAgICAgICAgIHk6IHBvaW50LnkgLSB0aGlzLmNhbnZhc1NpemUuaGVpZ2h0LFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gc3VwZXIuY29udGFpbnMocG9zU1cpO1xuICAgIH1cbiAgICBpbnRlcnNlY3RzKHJhbmdlKSB7XG4gICAgICAgIGlmIChzdXBlci5pbnRlcnNlY3RzKHJhbmdlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVjdCA9IHJhbmdlO1xuICAgICAgICBjb25zdCBjaXJjbGUgPSByYW5nZTtcbiAgICAgICAgY29uc3QgbmV3UG9zID0ge1xuICAgICAgICAgICAgeDogcmFuZ2UucG9zaXRpb24ueCAtIHRoaXMuY2FudmFzU2l6ZS53aWR0aCxcbiAgICAgICAgICAgIHk6IHJhbmdlLnBvc2l0aW9uLnkgLSB0aGlzLmNhbnZhc1NpemUuaGVpZ2h0LFxuICAgICAgICB9O1xuICAgICAgICBpZiAoY2lyY2xlLnJhZGl1cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjb25zdCBiaWdnZXJDaXJjbGUgPSBuZXcgQ2lyY2xlXzEuQ2lyY2xlKG5ld1Bvcy54LCBuZXdQb3MueSwgY2lyY2xlLnJhZGl1cyAqIDIpO1xuICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmludGVyc2VjdHMoYmlnZ2VyQ2lyY2xlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChyZWN0LnNpemUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29uc3QgcmVjdFNXID0gbmV3IFJlY3RhbmdsZV8xLlJlY3RhbmdsZShuZXdQb3MueCwgbmV3UG9zLnksIHJlY3Quc2l6ZS53aWR0aCAqIDIsIHJlY3Quc2l6ZS5oZWlnaHQgKiAyKTtcbiAgICAgICAgICAgIHJldHVybiBzdXBlci5pbnRlcnNlY3RzKHJlY3RTVyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cbmV4cG9ydHMuQ2lyY2xlV2FycCA9IENpcmNsZVdhcnA7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Utils/CircleWarp.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Utils/ColorUtils.js": +/*!******************************************************!*\ + !*** ./node_modules/tsparticles/Utils/ColorUtils.js ***! + \******************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.getHslAnimationFromHsl = exports.getHslFromAnimation = exports.getLinkRandomColor = exports.getLinkColor = exports.colorMix = exports.getStyleFromHsv = exports.getStyleFromHsl = exports.getStyleFromRgb = exports.getRandomRgbColor = exports.rgbaToHsva = exports.rgbToHsv = exports.hsvaToRgba = exports.hsvToRgb = exports.hsvaToHsla = exports.hsvToHsl = exports.hslaToHsva = exports.hslToHsv = exports.hslaToRgba = exports.hslToRgb = exports.stringToRgb = exports.stringToAlpha = exports.rgbToHsl = exports.colorToHsl = exports.colorToRgb = void 0;\nconst Utils_1 = __webpack_require__(/*! ./Utils */ \"./node_modules/tsparticles/Utils/Utils.js\");\nconst Constants_1 = __webpack_require__(/*! ./Constants */ \"./node_modules/tsparticles/Utils/Constants.js\");\nconst NumberUtils_1 = __webpack_require__(/*! ./NumberUtils */ \"./node_modules/tsparticles/Utils/NumberUtils.js\");\nconst Enums_1 = __webpack_require__(/*! ../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nfunction hue2rgb(p, q, t) {\n let tCalc = t;\n if (tCalc < 0) {\n tCalc += 1;\n }\n if (tCalc > 1) {\n tCalc -= 1;\n }\n if (tCalc < 1 / 6) {\n return p + (q - p) * 6 * tCalc;\n }\n if (tCalc < 1 / 2) {\n return q;\n }\n if (tCalc < 2 / 3) {\n return p + (q - p) * (2 / 3 - tCalc) * 6;\n }\n return p;\n}\nfunction stringToRgba(input) {\n if (input.startsWith(\"rgb\")) {\n const regex = /rgba?\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(,\\s*([\\d.]+)\\s*)?\\)/i;\n const result = regex.exec(input);\n return result\n ? {\n a: result.length > 4 ? parseFloat(result[5]) : 1,\n b: parseInt(result[3], 10),\n g: parseInt(result[2], 10),\n r: parseInt(result[1], 10),\n }\n : undefined;\n }\n else if (input.startsWith(\"hsl\")) {\n const regex = /hsla?\\(\\s*(\\d+)\\s*,\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*(,\\s*([\\d.]+)\\s*)?\\)/i;\n const result = regex.exec(input);\n return result\n ? hslaToRgba({\n a: result.length > 4 ? parseFloat(result[5]) : 1,\n h: parseInt(result[1], 10),\n l: parseInt(result[3], 10),\n s: parseInt(result[2], 10),\n })\n : undefined;\n }\n else if (input.startsWith(\"hsv\")) {\n const regex = /hsva?\\(\\s*(\\d+)°\\s*,\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*(,\\s*([\\d.]+)\\s*)?\\)/i;\n const result = regex.exec(input);\n return result\n ? hsvaToRgba({\n a: result.length > 4 ? parseFloat(result[5]) : 1,\n h: parseInt(result[1], 10),\n s: parseInt(result[2], 10),\n v: parseInt(result[3], 10),\n })\n : undefined;\n }\n else {\n const shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])([a-f\\d])?$/i;\n const hexFixed = input.replace(shorthandRegex, (_m, r, g, b, a) => {\n return r + r + g + g + b + b + (a !== undefined ? a + a : \"\");\n });\n const regex = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})?$/i;\n const result = regex.exec(hexFixed);\n return result\n ? {\n a: result[4] !== undefined ? parseInt(result[4], 16) / 0xff : 1,\n b: parseInt(result[3], 16),\n g: parseInt(result[2], 16),\n r: parseInt(result[1], 16),\n }\n : undefined;\n }\n}\nfunction colorToRgb(input, index, useIndex = true) {\n var _a, _b, _c;\n if (input === undefined) {\n return;\n }\n const color = typeof input === \"string\" ? { value: input } : input;\n let res;\n if (typeof color.value === \"string\") {\n if (color.value === Constants_1.Constants.randomColorValue) {\n res = getRandomRgbColor();\n }\n else {\n res = stringToRgb(color.value);\n }\n }\n else {\n if (color.value instanceof Array) {\n const colorSelected = (0, Utils_1.itemFromArray)(color.value, index, useIndex);\n res = colorToRgb({ value: colorSelected });\n }\n else {\n const colorValue = color.value;\n const rgbColor = (_a = colorValue.rgb) !== null && _a !== void 0 ? _a : color.value;\n if (rgbColor.r !== undefined) {\n res = rgbColor;\n }\n else {\n const hslColor = (_b = colorValue.hsl) !== null && _b !== void 0 ? _b : color.value;\n if (hslColor.h !== undefined && hslColor.l !== undefined) {\n res = hslToRgb(hslColor);\n }\n else {\n const hsvColor = (_c = colorValue.hsv) !== null && _c !== void 0 ? _c : color.value;\n if (hsvColor.h !== undefined && hsvColor.v !== undefined) {\n res = hsvToRgb(hsvColor);\n }\n }\n }\n }\n }\n return res;\n}\nexports.colorToRgb = colorToRgb;\nfunction colorToHsl(color, index, useIndex = true) {\n const rgb = colorToRgb(color, index, useIndex);\n return rgb !== undefined ? rgbToHsl(rgb) : undefined;\n}\nexports.colorToHsl = colorToHsl;\nfunction rgbToHsl(color) {\n const r1 = color.r / 255;\n const g1 = color.g / 255;\n const b1 = color.b / 255;\n const max = Math.max(r1, g1, b1);\n const min = Math.min(r1, g1, b1);\n const res = {\n h: 0,\n l: (max + min) / 2,\n s: 0,\n };\n if (max != min) {\n res.s = res.l < 0.5 ? (max - min) / (max + min) : (max - min) / (2.0 - max - min);\n res.h =\n r1 === max\n ? (g1 - b1) / (max - min)\n : (res.h = g1 === max ? 2.0 + (b1 - r1) / (max - min) : 4.0 + (r1 - g1) / (max - min));\n }\n res.l *= 100;\n res.s *= 100;\n res.h *= 60;\n if (res.h < 0) {\n res.h += 360;\n }\n return res;\n}\nexports.rgbToHsl = rgbToHsl;\nfunction stringToAlpha(input) {\n var _a;\n return (_a = stringToRgba(input)) === null || _a === void 0 ? void 0 : _a.a;\n}\nexports.stringToAlpha = stringToAlpha;\nfunction stringToRgb(input) {\n return stringToRgba(input);\n}\nexports.stringToRgb = stringToRgb;\nfunction hslToRgb(hsl) {\n const result = { b: 0, g: 0, r: 0 };\n const hslPercent = {\n h: hsl.h / 360,\n l: hsl.l / 100,\n s: hsl.s / 100,\n };\n if (hslPercent.s === 0) {\n result.b = hslPercent.l;\n result.g = hslPercent.l;\n result.r = hslPercent.l;\n }\n else {\n const q = hslPercent.l < 0.5\n ? hslPercent.l * (1 + hslPercent.s)\n : hslPercent.l + hslPercent.s - hslPercent.l * hslPercent.s;\n const p = 2 * hslPercent.l - q;\n result.r = hue2rgb(p, q, hslPercent.h + 1 / 3);\n result.g = hue2rgb(p, q, hslPercent.h);\n result.b = hue2rgb(p, q, hslPercent.h - 1 / 3);\n }\n result.r = Math.floor(result.r * 255);\n result.g = Math.floor(result.g * 255);\n result.b = Math.floor(result.b * 255);\n return result;\n}\nexports.hslToRgb = hslToRgb;\nfunction hslaToRgba(hsla) {\n const rgbResult = hslToRgb(hsla);\n return {\n a: hsla.a,\n b: rgbResult.b,\n g: rgbResult.g,\n r: rgbResult.r,\n };\n}\nexports.hslaToRgba = hslaToRgba;\nfunction hslToHsv(hsl) {\n const l = hsl.l / 100, sl = hsl.s / 100;\n const v = l + sl * Math.min(l, 1 - l), sv = !v ? 0 : 2 * (1 - l / v);\n return {\n h: hsl.h,\n s: sv * 100,\n v: v * 100,\n };\n}\nexports.hslToHsv = hslToHsv;\nfunction hslaToHsva(hsla) {\n const hsvResult = hslToHsv(hsla);\n return {\n a: hsla.a,\n h: hsvResult.h,\n s: hsvResult.s,\n v: hsvResult.v,\n };\n}\nexports.hslaToHsva = hslaToHsva;\nfunction hsvToHsl(hsv) {\n const v = hsv.v / 100, sv = hsv.s / 100;\n const l = v * (1 - sv / 2), sl = l === 0 || l === 1 ? 0 : (v - l) / Math.min(l, 1 - l);\n return {\n h: hsv.h,\n l: l * 100,\n s: sl * 100,\n };\n}\nexports.hsvToHsl = hsvToHsl;\nfunction hsvaToHsla(hsva) {\n const hslResult = hsvToHsl(hsva);\n return {\n a: hsva.a,\n h: hslResult.h,\n l: hslResult.l,\n s: hslResult.s,\n };\n}\nexports.hsvaToHsla = hsvaToHsla;\nfunction hsvToRgb(hsv) {\n const result = { b: 0, g: 0, r: 0 };\n const hsvPercent = {\n h: hsv.h / 60,\n s: hsv.s / 100,\n v: hsv.v / 100,\n };\n const c = hsvPercent.v * hsvPercent.s, x = c * (1 - Math.abs((hsvPercent.h % 2) - 1));\n let tempRgb;\n if (hsvPercent.h >= 0 && hsvPercent.h <= 1) {\n tempRgb = {\n r: c,\n g: x,\n b: 0,\n };\n }\n else if (hsvPercent.h > 1 && hsvPercent.h <= 2) {\n tempRgb = {\n r: x,\n g: c,\n b: 0,\n };\n }\n else if (hsvPercent.h > 2 && hsvPercent.h <= 3) {\n tempRgb = {\n r: 0,\n g: c,\n b: x,\n };\n }\n else if (hsvPercent.h > 3 && hsvPercent.h <= 4) {\n tempRgb = {\n r: 0,\n g: x,\n b: c,\n };\n }\n else if (hsvPercent.h > 4 && hsvPercent.h <= 5) {\n tempRgb = {\n r: x,\n g: 0,\n b: c,\n };\n }\n else if (hsvPercent.h > 5 && hsvPercent.h <= 6) {\n tempRgb = {\n r: c,\n g: 0,\n b: x,\n };\n }\n if (tempRgb) {\n const m = hsvPercent.v - c;\n result.r = Math.floor((tempRgb.r + m) * 255);\n result.g = Math.floor((tempRgb.g + m) * 255);\n result.b = Math.floor((tempRgb.b + m) * 255);\n }\n return result;\n}\nexports.hsvToRgb = hsvToRgb;\nfunction hsvaToRgba(hsva) {\n const rgbResult = hsvToRgb(hsva);\n return {\n a: hsva.a,\n b: rgbResult.b,\n g: rgbResult.g,\n r: rgbResult.r,\n };\n}\nexports.hsvaToRgba = hsvaToRgba;\nfunction rgbToHsv(rgb) {\n const rgbPercent = {\n r: rgb.r / 255,\n g: rgb.g / 255,\n b: rgb.b / 255,\n }, xMax = Math.max(rgbPercent.r, rgbPercent.g, rgbPercent.b), xMin = Math.min(rgbPercent.r, rgbPercent.g, rgbPercent.b), v = xMax, c = xMax - xMin;\n let h = 0;\n if (v === rgbPercent.r) {\n h = 60 * ((rgbPercent.g - rgbPercent.b) / c);\n }\n else if (v === rgbPercent.g) {\n h = 60 * (2 + (rgbPercent.b - rgbPercent.r) / c);\n }\n else if (v === rgbPercent.b) {\n h = 60 * (4 + (rgbPercent.r - rgbPercent.g) / c);\n }\n const s = !v ? 0 : c / v;\n return {\n h,\n s: s * 100,\n v: v * 100,\n };\n}\nexports.rgbToHsv = rgbToHsv;\nfunction rgbaToHsva(rgba) {\n const hsvResult = rgbToHsv(rgba);\n return {\n a: rgba.a,\n h: hsvResult.h,\n s: hsvResult.s,\n v: hsvResult.v,\n };\n}\nexports.rgbaToHsva = rgbaToHsva;\nfunction getRandomRgbColor(min) {\n const fixedMin = min !== null && min !== void 0 ? min : 0;\n return {\n b: Math.floor((0, NumberUtils_1.randomInRange)((0, NumberUtils_1.setRangeValue)(fixedMin, 256))),\n g: Math.floor((0, NumberUtils_1.randomInRange)((0, NumberUtils_1.setRangeValue)(fixedMin, 256))),\n r: Math.floor((0, NumberUtils_1.randomInRange)((0, NumberUtils_1.setRangeValue)(fixedMin, 256))),\n };\n}\nexports.getRandomRgbColor = getRandomRgbColor;\nfunction getStyleFromRgb(color, opacity) {\n return `rgba(${color.r}, ${color.g}, ${color.b}, ${opacity !== null && opacity !== void 0 ? opacity : 1})`;\n}\nexports.getStyleFromRgb = getStyleFromRgb;\nfunction getStyleFromHsl(color, opacity) {\n return `hsla(${color.h}, ${color.s}%, ${color.l}%, ${opacity !== null && opacity !== void 0 ? opacity : 1})`;\n}\nexports.getStyleFromHsl = getStyleFromHsl;\nfunction getStyleFromHsv(color, opacity) {\n return getStyleFromHsl(hsvToHsl(color), opacity);\n}\nexports.getStyleFromHsv = getStyleFromHsv;\nfunction colorMix(color1, color2, size1, size2) {\n let rgb1 = color1;\n let rgb2 = color2;\n if (rgb1.r === undefined) {\n rgb1 = hslToRgb(color1);\n }\n if (rgb2.r === undefined) {\n rgb2 = hslToRgb(color2);\n }\n return {\n b: (0, NumberUtils_1.mix)(rgb1.b, rgb2.b, size1, size2),\n g: (0, NumberUtils_1.mix)(rgb1.g, rgb2.g, size1, size2),\n r: (0, NumberUtils_1.mix)(rgb1.r, rgb2.r, size1, size2),\n };\n}\nexports.colorMix = colorMix;\nfunction getLinkColor(p1, p2, linkColor) {\n var _a, _b;\n if (linkColor === Constants_1.Constants.randomColorValue) {\n return getRandomRgbColor();\n }\n else if (linkColor === \"mid\") {\n const sourceColor = (_a = p1.getFillColor()) !== null && _a !== void 0 ? _a : p1.getStrokeColor();\n const destColor = (_b = p2 === null || p2 === void 0 ? void 0 : p2.getFillColor()) !== null && _b !== void 0 ? _b : p2 === null || p2 === void 0 ? void 0 : p2.getStrokeColor();\n if (sourceColor && destColor && p2) {\n return colorMix(sourceColor, destColor, p1.getRadius(), p2.getRadius());\n }\n else {\n const hslColor = sourceColor !== null && sourceColor !== void 0 ? sourceColor : destColor;\n if (hslColor) {\n return hslToRgb(hslColor);\n }\n }\n }\n else {\n return linkColor;\n }\n}\nexports.getLinkColor = getLinkColor;\nfunction getLinkRandomColor(optColor, blink, consent) {\n const color = typeof optColor === \"string\" ? optColor : optColor.value;\n if (color === Constants_1.Constants.randomColorValue) {\n if (consent) {\n return colorToRgb({\n value: color,\n });\n }\n else if (blink) {\n return Constants_1.Constants.randomColorValue;\n }\n else {\n return Constants_1.Constants.midColorValue;\n }\n }\n else {\n return colorToRgb({\n value: color,\n });\n }\n}\nexports.getLinkRandomColor = getLinkRandomColor;\nfunction getHslFromAnimation(animation) {\n return animation !== undefined\n ? {\n h: animation.h.value,\n s: animation.s.value,\n l: animation.l.value,\n }\n : undefined;\n}\nexports.getHslFromAnimation = getHslFromAnimation;\nfunction getHslAnimationFromHsl(hsl, animationOptions, reduceFactor) {\n const resColor = {\n h: {\n enable: false,\n value: hsl.h,\n },\n s: {\n enable: false,\n value: hsl.s,\n },\n l: {\n enable: false,\n value: hsl.l,\n },\n };\n if (animationOptions) {\n setColorAnimation(resColor.h, animationOptions.h, reduceFactor);\n setColorAnimation(resColor.s, animationOptions.s, reduceFactor);\n setColorAnimation(resColor.l, animationOptions.l, reduceFactor);\n }\n return resColor;\n}\nexports.getHslAnimationFromHsl = getHslAnimationFromHsl;\nfunction setColorAnimation(colorValue, colorAnimation, reduceFactor) {\n colorValue.enable = colorAnimation.enable;\n if (colorValue.enable) {\n colorValue.velocity = (colorAnimation.speed / 100) * reduceFactor;\n if (colorAnimation.sync) {\n return;\n }\n colorValue.status = Enums_1.AnimationStatus.increasing;\n colorValue.velocity *= Math.random();\n if (colorValue.value) {\n colorValue.value *= Math.random();\n }\n }\n else {\n colorValue.velocity = 0;\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXRpbHMvQ29sb3JVdGlscy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCw4QkFBOEIsR0FBRywyQkFBMkIsR0FBRywwQkFBMEIsR0FBRyxvQkFBb0IsR0FBRyxnQkFBZ0IsR0FBRyx1QkFBdUIsR0FBRyx1QkFBdUIsR0FBRyx1QkFBdUIsR0FBRyx5QkFBeUIsR0FBRyxrQkFBa0IsR0FBRyxnQkFBZ0IsR0FBRyxrQkFBa0IsR0FBRyxnQkFBZ0IsR0FBRyxrQkFBa0IsR0FBRyxnQkFBZ0IsR0FBRyxrQkFBa0IsR0FBRyxnQkFBZ0IsR0FBRyxrQkFBa0IsR0FBRyxnQkFBZ0IsR0FBRyxtQkFBbUIsR0FBRyxxQkFBcUIsR0FBRyxnQkFBZ0IsR0FBRyxrQkFBa0IsR0FBRyxrQkFBa0I7QUFDaGlCLGdCQUFnQixtQkFBTyxDQUFDLDBEQUFTO0FBQ2pDLG9CQUFvQixtQkFBTyxDQUFDLGtFQUFhO0FBQ3pDLHNCQUFzQixtQkFBTyxDQUFDLHNFQUFlO0FBQzdDLGdCQUFnQixtQkFBTyxDQUFDLDJEQUFVO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsbUNBQW1DLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUU7QUFDekU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnREFBZ0QsZUFBZTtBQUMvRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQkFBK0Isc0JBQXNCO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekI7QUFDQSxtQkFBbUIsUUFBUSxJQUFJLFFBQVEsSUFBSSxRQUFRLElBQUkscURBQXFEO0FBQzVHO0FBQ0EsdUJBQXVCO0FBQ3ZCO0FBQ0EsbUJBQW1CLFFBQVEsSUFBSSxRQUFRLEtBQUssUUFBUSxLQUFLLHFEQUFxRDtBQUM5RztBQUNBLHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0E7QUFDQSx1QkFBdUI7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSwwQkFBMEI7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1V0aWxzL0NvbG9yVXRpbHMuanM/NjkzMCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuZ2V0SHNsQW5pbWF0aW9uRnJvbUhzbCA9IGV4cG9ydHMuZ2V0SHNsRnJvbUFuaW1hdGlvbiA9IGV4cG9ydHMuZ2V0TGlua1JhbmRvbUNvbG9yID0gZXhwb3J0cy5nZXRMaW5rQ29sb3IgPSBleHBvcnRzLmNvbG9yTWl4ID0gZXhwb3J0cy5nZXRTdHlsZUZyb21Ic3YgPSBleHBvcnRzLmdldFN0eWxlRnJvbUhzbCA9IGV4cG9ydHMuZ2V0U3R5bGVGcm9tUmdiID0gZXhwb3J0cy5nZXRSYW5kb21SZ2JDb2xvciA9IGV4cG9ydHMucmdiYVRvSHN2YSA9IGV4cG9ydHMucmdiVG9Ic3YgPSBleHBvcnRzLmhzdmFUb1JnYmEgPSBleHBvcnRzLmhzdlRvUmdiID0gZXhwb3J0cy5oc3ZhVG9Ic2xhID0gZXhwb3J0cy5oc3ZUb0hzbCA9IGV4cG9ydHMuaHNsYVRvSHN2YSA9IGV4cG9ydHMuaHNsVG9Ic3YgPSBleHBvcnRzLmhzbGFUb1JnYmEgPSBleHBvcnRzLmhzbFRvUmdiID0gZXhwb3J0cy5zdHJpbmdUb1JnYiA9IGV4cG9ydHMuc3RyaW5nVG9BbHBoYSA9IGV4cG9ydHMucmdiVG9Ic2wgPSBleHBvcnRzLmNvbG9yVG9Ic2wgPSBleHBvcnRzLmNvbG9yVG9SZ2IgPSB2b2lkIDA7XG5jb25zdCBVdGlsc18xID0gcmVxdWlyZShcIi4vVXRpbHNcIik7XG5jb25zdCBDb25zdGFudHNfMSA9IHJlcXVpcmUoXCIuL0NvbnN0YW50c1wiKTtcbmNvbnN0IE51bWJlclV0aWxzXzEgPSByZXF1aXJlKFwiLi9OdW1iZXJVdGlsc1wiKTtcbmNvbnN0IEVudW1zXzEgPSByZXF1aXJlKFwiLi4vRW51bXNcIik7XG5mdW5jdGlvbiBodWUycmdiKHAsIHEsIHQpIHtcbiAgICBsZXQgdENhbGMgPSB0O1xuICAgIGlmICh0Q2FsYyA8IDApIHtcbiAgICAgICAgdENhbGMgKz0gMTtcbiAgICB9XG4gICAgaWYgKHRDYWxjID4gMSkge1xuICAgICAgICB0Q2FsYyAtPSAxO1xuICAgIH1cbiAgICBpZiAodENhbGMgPCAxIC8gNikge1xuICAgICAgICByZXR1cm4gcCArIChxIC0gcCkgKiA2ICogdENhbGM7XG4gICAgfVxuICAgIGlmICh0Q2FsYyA8IDEgLyAyKSB7XG4gICAgICAgIHJldHVybiBxO1xuICAgIH1cbiAgICBpZiAodENhbGMgPCAyIC8gMykge1xuICAgICAgICByZXR1cm4gcCArIChxIC0gcCkgKiAoMiAvIDMgLSB0Q2FsYykgKiA2O1xuICAgIH1cbiAgICByZXR1cm4gcDtcbn1cbmZ1bmN0aW9uIHN0cmluZ1RvUmdiYShpbnB1dCkge1xuICAgIGlmIChpbnB1dC5zdGFydHNXaXRoKFwicmdiXCIpKSB7XG4gICAgICAgIGNvbnN0IHJlZ2V4ID0gL3JnYmE/XFwoXFxzKihcXGQrKVxccyosXFxzKihcXGQrKVxccyosXFxzKihcXGQrKVxccyooLFxccyooW1xcZC5dKylcXHMqKT9cXCkvaTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gcmVnZXguZXhlYyhpbnB1dCk7XG4gICAgICAgIHJldHVybiByZXN1bHRcbiAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgIGE6IHJlc3VsdC5sZW5ndGggPiA0ID8gcGFyc2VGbG9hdChyZXN1bHRbNV0pIDogMSxcbiAgICAgICAgICAgICAgICBiOiBwYXJzZUludChyZXN1bHRbM10sIDEwKSxcbiAgICAgICAgICAgICAgICBnOiBwYXJzZUludChyZXN1bHRbMl0sIDEwKSxcbiAgICAgICAgICAgICAgICByOiBwYXJzZUludChyZXN1bHRbMV0sIDEwKSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgIH1cbiAgICBlbHNlIGlmIChpbnB1dC5zdGFydHNXaXRoKFwiaHNsXCIpKSB7XG4gICAgICAgIGNvbnN0IHJlZ2V4ID0gL2hzbGE/XFwoXFxzKihcXGQrKVxccyosXFxzKihcXGQrKSVcXHMqLFxccyooXFxkKyklXFxzKigsXFxzKihbXFxkLl0rKVxccyopP1xcKS9pO1xuICAgICAgICBjb25zdCByZXN1bHQgPSByZWdleC5leGVjKGlucHV0KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdFxuICAgICAgICAgICAgPyBoc2xhVG9SZ2JhKHtcbiAgICAgICAgICAgICAgICBhOiByZXN1bHQubGVuZ3RoID4gNCA/IHBhcnNlRmxvYXQocmVzdWx0WzVdKSA6IDEsXG4gICAgICAgICAgICAgICAgaDogcGFyc2VJbnQocmVzdWx0WzFdLCAxMCksXG4gICAgICAgICAgICAgICAgbDogcGFyc2VJbnQocmVzdWx0WzNdLCAxMCksXG4gICAgICAgICAgICAgICAgczogcGFyc2VJbnQocmVzdWx0WzJdLCAxMCksXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGVsc2UgaWYgKGlucHV0LnN0YXJ0c1dpdGgoXCJoc3ZcIikpIHtcbiAgICAgICAgY29uc3QgcmVnZXggPSAvaHN2YT9cXChcXHMqKFxcZCspwrBcXHMqLFxccyooXFxkKyklXFxzKixcXHMqKFxcZCspJVxccyooLFxccyooW1xcZC5dKylcXHMqKT9cXCkvaTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gcmVnZXguZXhlYyhpbnB1dCk7XG4gICAgICAgIHJldHVybiByZXN1bHRcbiAgICAgICAgICAgID8gaHN2YVRvUmdiYSh7XG4gICAgICAgICAgICAgICAgYTogcmVzdWx0Lmxlbmd0aCA+IDQgPyBwYXJzZUZsb2F0KHJlc3VsdFs1XSkgOiAxLFxuICAgICAgICAgICAgICAgIGg6IHBhcnNlSW50KHJlc3VsdFsxXSwgMTApLFxuICAgICAgICAgICAgICAgIHM6IHBhcnNlSW50KHJlc3VsdFsyXSwgMTApLFxuICAgICAgICAgICAgICAgIHY6IHBhcnNlSW50KHJlc3VsdFszXSwgMTApLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgY29uc3Qgc2hvcnRoYW5kUmVnZXggPSAvXiM/KFthLWZcXGRdKShbYS1mXFxkXSkoW2EtZlxcZF0pKFthLWZcXGRdKT8kL2k7XG4gICAgICAgIGNvbnN0IGhleEZpeGVkID0gaW5wdXQucmVwbGFjZShzaG9ydGhhbmRSZWdleCwgKF9tLCByLCBnLCBiLCBhKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gciArIHIgKyBnICsgZyArIGIgKyBiICsgKGEgIT09IHVuZGVmaW5lZCA/IGEgKyBhIDogXCJcIik7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCByZWdleCA9IC9eIz8oW2EtZlxcZF17Mn0pKFthLWZcXGRdezJ9KShbYS1mXFxkXXsyfSkoW2EtZlxcZF17Mn0pPyQvaTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gcmVnZXguZXhlYyhoZXhGaXhlZCk7XG4gICAgICAgIHJldHVybiByZXN1bHRcbiAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgIGE6IHJlc3VsdFs0XSAhPT0gdW5kZWZpbmVkID8gcGFyc2VJbnQocmVzdWx0WzRdLCAxNikgLyAweGZmIDogMSxcbiAgICAgICAgICAgICAgICBiOiBwYXJzZUludChyZXN1bHRbM10sIDE2KSxcbiAgICAgICAgICAgICAgICBnOiBwYXJzZUludChyZXN1bHRbMl0sIDE2KSxcbiAgICAgICAgICAgICAgICByOiBwYXJzZUludChyZXN1bHRbMV0sIDE2KSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGNvbG9yVG9SZ2IoaW5wdXQsIGluZGV4LCB1c2VJbmRleCA9IHRydWUpIHtcbiAgICB2YXIgX2EsIF9iLCBfYztcbiAgICBpZiAoaW5wdXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGNvbG9yID0gdHlwZW9mIGlucHV0ID09PSBcInN0cmluZ1wiID8geyB2YWx1ZTogaW5wdXQgfSA6IGlucHV0O1xuICAgIGxldCByZXM7XG4gICAgaWYgKHR5cGVvZiBjb2xvci52YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBpZiAoY29sb3IudmFsdWUgPT09IENvbnN0YW50c18xLkNvbnN0YW50cy5yYW5kb21Db2xvclZhbHVlKSB7XG4gICAgICAgICAgICByZXMgPSBnZXRSYW5kb21SZ2JDb2xvcigpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmVzID0gc3RyaW5nVG9SZ2IoY29sb3IudmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBpZiAoY29sb3IudmFsdWUgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgY29uc3QgY29sb3JTZWxlY3RlZCA9ICgwLCBVdGlsc18xLml0ZW1Gcm9tQXJyYXkpKGNvbG9yLnZhbHVlLCBpbmRleCwgdXNlSW5kZXgpO1xuICAgICAgICAgICAgcmVzID0gY29sb3JUb1JnYih7IHZhbHVlOiBjb2xvclNlbGVjdGVkIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgY29sb3JWYWx1ZSA9IGNvbG9yLnZhbHVlO1xuICAgICAgICAgICAgY29uc3QgcmdiQ29sb3IgPSAoX2EgPSBjb2xvclZhbHVlLnJnYikgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogY29sb3IudmFsdWU7XG4gICAgICAgICAgICBpZiAocmdiQ29sb3IuciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmVzID0gcmdiQ29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBoc2xDb2xvciA9IChfYiA9IGNvbG9yVmFsdWUuaHNsKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBjb2xvci52YWx1ZTtcbiAgICAgICAgICAgICAgICBpZiAoaHNsQ29sb3IuaCAhPT0gdW5kZWZpbmVkICYmIGhzbENvbG9yLmwgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICByZXMgPSBoc2xUb1JnYihoc2xDb2xvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBoc3ZDb2xvciA9IChfYyA9IGNvbG9yVmFsdWUuaHN2KSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiBjb2xvci52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGhzdkNvbG9yLmggIT09IHVuZGVmaW5lZCAmJiBoc3ZDb2xvci52ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IGhzdlRvUmdiKGhzdkNvbG9yKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzO1xufVxuZXhwb3J0cy5jb2xvclRvUmdiID0gY29sb3JUb1JnYjtcbmZ1bmN0aW9uIGNvbG9yVG9Ic2woY29sb3IsIGluZGV4LCB1c2VJbmRleCA9IHRydWUpIHtcbiAgICBjb25zdCByZ2IgPSBjb2xvclRvUmdiKGNvbG9yLCBpbmRleCwgdXNlSW5kZXgpO1xuICAgIHJldHVybiByZ2IgIT09IHVuZGVmaW5lZCA/IHJnYlRvSHNsKHJnYikgOiB1bmRlZmluZWQ7XG59XG5leHBvcnRzLmNvbG9yVG9Ic2wgPSBjb2xvclRvSHNsO1xuZnVuY3Rpb24gcmdiVG9Ic2woY29sb3IpIHtcbiAgICBjb25zdCByMSA9IGNvbG9yLnIgLyAyNTU7XG4gICAgY29uc3QgZzEgPSBjb2xvci5nIC8gMjU1O1xuICAgIGNvbnN0IGIxID0gY29sb3IuYiAvIDI1NTtcbiAgICBjb25zdCBtYXggPSBNYXRoLm1heChyMSwgZzEsIGIxKTtcbiAgICBjb25zdCBtaW4gPSBNYXRoLm1pbihyMSwgZzEsIGIxKTtcbiAgICBjb25zdCByZXMgPSB7XG4gICAgICAgIGg6IDAsXG4gICAgICAgIGw6IChtYXggKyBtaW4pIC8gMixcbiAgICAgICAgczogMCxcbiAgICB9O1xuICAgIGlmIChtYXggIT0gbWluKSB7XG4gICAgICAgIHJlcy5zID0gcmVzLmwgPCAwLjUgPyAobWF4IC0gbWluKSAvIChtYXggKyBtaW4pIDogKG1heCAtIG1pbikgLyAoMi4wIC0gbWF4IC0gbWluKTtcbiAgICAgICAgcmVzLmggPVxuICAgICAgICAgICAgcjEgPT09IG1heFxuICAgICAgICAgICAgICAgID8gKGcxIC0gYjEpIC8gKG1heCAtIG1pbilcbiAgICAgICAgICAgICAgICA6IChyZXMuaCA9IGcxID09PSBtYXggPyAyLjAgKyAoYjEgLSByMSkgLyAobWF4IC0gbWluKSA6IDQuMCArIChyMSAtIGcxKSAvIChtYXggLSBtaW4pKTtcbiAgICB9XG4gICAgcmVzLmwgKj0gMTAwO1xuICAgIHJlcy5zICo9IDEwMDtcbiAgICByZXMuaCAqPSA2MDtcbiAgICBpZiAocmVzLmggPCAwKSB7XG4gICAgICAgIHJlcy5oICs9IDM2MDtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbn1cbmV4cG9ydHMucmdiVG9Ic2wgPSByZ2JUb0hzbDtcbmZ1bmN0aW9uIHN0cmluZ1RvQWxwaGEoaW5wdXQpIHtcbiAgICB2YXIgX2E7XG4gICAgcmV0dXJuIChfYSA9IHN0cmluZ1RvUmdiYShpbnB1dCkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5hO1xufVxuZXhwb3J0cy5zdHJpbmdUb0FscGhhID0gc3RyaW5nVG9BbHBoYTtcbmZ1bmN0aW9uIHN0cmluZ1RvUmdiKGlucHV0KSB7XG4gICAgcmV0dXJuIHN0cmluZ1RvUmdiYShpbnB1dCk7XG59XG5leHBvcnRzLnN0cmluZ1RvUmdiID0gc3RyaW5nVG9SZ2I7XG5mdW5jdGlvbiBoc2xUb1JnYihoc2wpIHtcbiAgICBjb25zdCByZXN1bHQgPSB7IGI6IDAsIGc6IDAsIHI6IDAgfTtcbiAgICBjb25zdCBoc2xQZXJjZW50ID0ge1xuICAgICAgICBoOiBoc2wuaCAvIDM2MCxcbiAgICAgICAgbDogaHNsLmwgLyAxMDAsXG4gICAgICAgIHM6IGhzbC5zIC8gMTAwLFxuICAgIH07XG4gICAgaWYgKGhzbFBlcmNlbnQucyA9PT0gMCkge1xuICAgICAgICByZXN1bHQuYiA9IGhzbFBlcmNlbnQubDtcbiAgICAgICAgcmVzdWx0LmcgPSBoc2xQZXJjZW50Lmw7XG4gICAgICAgIHJlc3VsdC5yID0gaHNsUGVyY2VudC5sO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgY29uc3QgcSA9IGhzbFBlcmNlbnQubCA8IDAuNVxuICAgICAgICAgICAgPyBoc2xQZXJjZW50LmwgKiAoMSArIGhzbFBlcmNlbnQucylcbiAgICAgICAgICAgIDogaHNsUGVyY2VudC5sICsgaHNsUGVyY2VudC5zIC0gaHNsUGVyY2VudC5sICogaHNsUGVyY2VudC5zO1xuICAgICAgICBjb25zdCBwID0gMiAqIGhzbFBlcmNlbnQubCAtIHE7XG4gICAgICAgIHJlc3VsdC5yID0gaHVlMnJnYihwLCBxLCBoc2xQZXJjZW50LmggKyAxIC8gMyk7XG4gICAgICAgIHJlc3VsdC5nID0gaHVlMnJnYihwLCBxLCBoc2xQZXJjZW50LmgpO1xuICAgICAgICByZXN1bHQuYiA9IGh1ZTJyZ2IocCwgcSwgaHNsUGVyY2VudC5oIC0gMSAvIDMpO1xuICAgIH1cbiAgICByZXN1bHQuciA9IE1hdGguZmxvb3IocmVzdWx0LnIgKiAyNTUpO1xuICAgIHJlc3VsdC5nID0gTWF0aC5mbG9vcihyZXN1bHQuZyAqIDI1NSk7XG4gICAgcmVzdWx0LmIgPSBNYXRoLmZsb29yKHJlc3VsdC5iICogMjU1KTtcbiAgICByZXR1cm4gcmVzdWx0O1xufVxuZXhwb3J0cy5oc2xUb1JnYiA9IGhzbFRvUmdiO1xuZnVuY3Rpb24gaHNsYVRvUmdiYShoc2xhKSB7XG4gICAgY29uc3QgcmdiUmVzdWx0ID0gaHNsVG9SZ2IoaHNsYSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYTogaHNsYS5hLFxuICAgICAgICBiOiByZ2JSZXN1bHQuYixcbiAgICAgICAgZzogcmdiUmVzdWx0LmcsXG4gICAgICAgIHI6IHJnYlJlc3VsdC5yLFxuICAgIH07XG59XG5leHBvcnRzLmhzbGFUb1JnYmEgPSBoc2xhVG9SZ2JhO1xuZnVuY3Rpb24gaHNsVG9Ic3YoaHNsKSB7XG4gICAgY29uc3QgbCA9IGhzbC5sIC8gMTAwLCBzbCA9IGhzbC5zIC8gMTAwO1xuICAgIGNvbnN0IHYgPSBsICsgc2wgKiBNYXRoLm1pbihsLCAxIC0gbCksIHN2ID0gIXYgPyAwIDogMiAqICgxIC0gbCAvIHYpO1xuICAgIHJldHVybiB7XG4gICAgICAgIGg6IGhzbC5oLFxuICAgICAgICBzOiBzdiAqIDEwMCxcbiAgICAgICAgdjogdiAqIDEwMCxcbiAgICB9O1xufVxuZXhwb3J0cy5oc2xUb0hzdiA9IGhzbFRvSHN2O1xuZnVuY3Rpb24gaHNsYVRvSHN2YShoc2xhKSB7XG4gICAgY29uc3QgaHN2UmVzdWx0ID0gaHNsVG9Ic3YoaHNsYSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYTogaHNsYS5hLFxuICAgICAgICBoOiBoc3ZSZXN1bHQuaCxcbiAgICAgICAgczogaHN2UmVzdWx0LnMsXG4gICAgICAgIHY6IGhzdlJlc3VsdC52LFxuICAgIH07XG59XG5leHBvcnRzLmhzbGFUb0hzdmEgPSBoc2xhVG9Ic3ZhO1xuZnVuY3Rpb24gaHN2VG9Ic2woaHN2KSB7XG4gICAgY29uc3QgdiA9IGhzdi52IC8gMTAwLCBzdiA9IGhzdi5zIC8gMTAwO1xuICAgIGNvbnN0IGwgPSB2ICogKDEgLSBzdiAvIDIpLCBzbCA9IGwgPT09IDAgfHwgbCA9PT0gMSA/IDAgOiAodiAtIGwpIC8gTWF0aC5taW4obCwgMSAtIGwpO1xuICAgIHJldHVybiB7XG4gICAgICAgIGg6IGhzdi5oLFxuICAgICAgICBsOiBsICogMTAwLFxuICAgICAgICBzOiBzbCAqIDEwMCxcbiAgICB9O1xufVxuZXhwb3J0cy5oc3ZUb0hzbCA9IGhzdlRvSHNsO1xuZnVuY3Rpb24gaHN2YVRvSHNsYShoc3ZhKSB7XG4gICAgY29uc3QgaHNsUmVzdWx0ID0gaHN2VG9Ic2woaHN2YSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYTogaHN2YS5hLFxuICAgICAgICBoOiBoc2xSZXN1bHQuaCxcbiAgICAgICAgbDogaHNsUmVzdWx0LmwsXG4gICAgICAgIHM6IGhzbFJlc3VsdC5zLFxuICAgIH07XG59XG5leHBvcnRzLmhzdmFUb0hzbGEgPSBoc3ZhVG9Ic2xhO1xuZnVuY3Rpb24gaHN2VG9SZ2IoaHN2KSB7XG4gICAgY29uc3QgcmVzdWx0ID0geyBiOiAwLCBnOiAwLCByOiAwIH07XG4gICAgY29uc3QgaHN2UGVyY2VudCA9IHtcbiAgICAgICAgaDogaHN2LmggLyA2MCxcbiAgICAgICAgczogaHN2LnMgLyAxMDAsXG4gICAgICAgIHY6IGhzdi52IC8gMTAwLFxuICAgIH07XG4gICAgY29uc3QgYyA9IGhzdlBlcmNlbnQudiAqIGhzdlBlcmNlbnQucywgeCA9IGMgKiAoMSAtIE1hdGguYWJzKChoc3ZQZXJjZW50LmggJSAyKSAtIDEpKTtcbiAgICBsZXQgdGVtcFJnYjtcbiAgICBpZiAoaHN2UGVyY2VudC5oID49IDAgJiYgaHN2UGVyY2VudC5oIDw9IDEpIHtcbiAgICAgICAgdGVtcFJnYiA9IHtcbiAgICAgICAgICAgIHI6IGMsXG4gICAgICAgICAgICBnOiB4LFxuICAgICAgICAgICAgYjogMCxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZWxzZSBpZiAoaHN2UGVyY2VudC5oID4gMSAmJiBoc3ZQZXJjZW50LmggPD0gMikge1xuICAgICAgICB0ZW1wUmdiID0ge1xuICAgICAgICAgICAgcjogeCxcbiAgICAgICAgICAgIGc6IGMsXG4gICAgICAgICAgICBiOiAwLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBlbHNlIGlmIChoc3ZQZXJjZW50LmggPiAyICYmIGhzdlBlcmNlbnQuaCA8PSAzKSB7XG4gICAgICAgIHRlbXBSZ2IgPSB7XG4gICAgICAgICAgICByOiAwLFxuICAgICAgICAgICAgZzogYyxcbiAgICAgICAgICAgIGI6IHgsXG4gICAgICAgIH07XG4gICAgfVxuICAgIGVsc2UgaWYgKGhzdlBlcmNlbnQuaCA+IDMgJiYgaHN2UGVyY2VudC5oIDw9IDQpIHtcbiAgICAgICAgdGVtcFJnYiA9IHtcbiAgICAgICAgICAgIHI6IDAsXG4gICAgICAgICAgICBnOiB4LFxuICAgICAgICAgICAgYjogYyxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZWxzZSBpZiAoaHN2UGVyY2VudC5oID4gNCAmJiBoc3ZQZXJjZW50LmggPD0gNSkge1xuICAgICAgICB0ZW1wUmdiID0ge1xuICAgICAgICAgICAgcjogeCxcbiAgICAgICAgICAgIGc6IDAsXG4gICAgICAgICAgICBiOiBjLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBlbHNlIGlmIChoc3ZQZXJjZW50LmggPiA1ICYmIGhzdlBlcmNlbnQuaCA8PSA2KSB7XG4gICAgICAgIHRlbXBSZ2IgPSB7XG4gICAgICAgICAgICByOiBjLFxuICAgICAgICAgICAgZzogMCxcbiAgICAgICAgICAgIGI6IHgsXG4gICAgICAgIH07XG4gICAgfVxuICAgIGlmICh0ZW1wUmdiKSB7XG4gICAgICAgIGNvbnN0IG0gPSBoc3ZQZXJjZW50LnYgLSBjO1xuICAgICAgICByZXN1bHQuciA9IE1hdGguZmxvb3IoKHRlbXBSZ2IuciArIG0pICogMjU1KTtcbiAgICAgICAgcmVzdWx0LmcgPSBNYXRoLmZsb29yKCh0ZW1wUmdiLmcgKyBtKSAqIDI1NSk7XG4gICAgICAgIHJlc3VsdC5iID0gTWF0aC5mbG9vcigodGVtcFJnYi5iICsgbSkgKiAyNTUpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuZXhwb3J0cy5oc3ZUb1JnYiA9IGhzdlRvUmdiO1xuZnVuY3Rpb24gaHN2YVRvUmdiYShoc3ZhKSB7XG4gICAgY29uc3QgcmdiUmVzdWx0ID0gaHN2VG9SZ2IoaHN2YSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYTogaHN2YS5hLFxuICAgICAgICBiOiByZ2JSZXN1bHQuYixcbiAgICAgICAgZzogcmdiUmVzdWx0LmcsXG4gICAgICAgIHI6IHJnYlJlc3VsdC5yLFxuICAgIH07XG59XG5leHBvcnRzLmhzdmFUb1JnYmEgPSBoc3ZhVG9SZ2JhO1xuZnVuY3Rpb24gcmdiVG9Ic3YocmdiKSB7XG4gICAgY29uc3QgcmdiUGVyY2VudCA9IHtcbiAgICAgICAgcjogcmdiLnIgLyAyNTUsXG4gICAgICAgIGc6IHJnYi5nIC8gMjU1LFxuICAgICAgICBiOiByZ2IuYiAvIDI1NSxcbiAgICB9LCB4TWF4ID0gTWF0aC5tYXgocmdiUGVyY2VudC5yLCByZ2JQZXJjZW50LmcsIHJnYlBlcmNlbnQuYiksIHhNaW4gPSBNYXRoLm1pbihyZ2JQZXJjZW50LnIsIHJnYlBlcmNlbnQuZywgcmdiUGVyY2VudC5iKSwgdiA9IHhNYXgsIGMgPSB4TWF4IC0geE1pbjtcbiAgICBsZXQgaCA9IDA7XG4gICAgaWYgKHYgPT09IHJnYlBlcmNlbnQucikge1xuICAgICAgICBoID0gNjAgKiAoKHJnYlBlcmNlbnQuZyAtIHJnYlBlcmNlbnQuYikgLyBjKTtcbiAgICB9XG4gICAgZWxzZSBpZiAodiA9PT0gcmdiUGVyY2VudC5nKSB7XG4gICAgICAgIGggPSA2MCAqICgyICsgKHJnYlBlcmNlbnQuYiAtIHJnYlBlcmNlbnQucikgLyBjKTtcbiAgICB9XG4gICAgZWxzZSBpZiAodiA9PT0gcmdiUGVyY2VudC5iKSB7XG4gICAgICAgIGggPSA2MCAqICg0ICsgKHJnYlBlcmNlbnQuciAtIHJnYlBlcmNlbnQuZykgLyBjKTtcbiAgICB9XG4gICAgY29uc3QgcyA9ICF2ID8gMCA6IGMgLyB2O1xuICAgIHJldHVybiB7XG4gICAgICAgIGgsXG4gICAgICAgIHM6IHMgKiAxMDAsXG4gICAgICAgIHY6IHYgKiAxMDAsXG4gICAgfTtcbn1cbmV4cG9ydHMucmdiVG9Ic3YgPSByZ2JUb0hzdjtcbmZ1bmN0aW9uIHJnYmFUb0hzdmEocmdiYSkge1xuICAgIGNvbnN0IGhzdlJlc3VsdCA9IHJnYlRvSHN2KHJnYmEpO1xuICAgIHJldHVybiB7XG4gICAgICAgIGE6IHJnYmEuYSxcbiAgICAgICAgaDogaHN2UmVzdWx0LmgsXG4gICAgICAgIHM6IGhzdlJlc3VsdC5zLFxuICAgICAgICB2OiBoc3ZSZXN1bHQudixcbiAgICB9O1xufVxuZXhwb3J0cy5yZ2JhVG9Ic3ZhID0gcmdiYVRvSHN2YTtcbmZ1bmN0aW9uIGdldFJhbmRvbVJnYkNvbG9yKG1pbikge1xuICAgIGNvbnN0IGZpeGVkTWluID0gbWluICE9PSBudWxsICYmIG1pbiAhPT0gdm9pZCAwID8gbWluIDogMDtcbiAgICByZXR1cm4ge1xuICAgICAgICBiOiBNYXRoLmZsb29yKCgwLCBOdW1iZXJVdGlsc18xLnJhbmRvbUluUmFuZ2UpKCgwLCBOdW1iZXJVdGlsc18xLnNldFJhbmdlVmFsdWUpKGZpeGVkTWluLCAyNTYpKSksXG4gICAgICAgIGc6IE1hdGguZmxvb3IoKDAsIE51bWJlclV0aWxzXzEucmFuZG9tSW5SYW5nZSkoKDAsIE51bWJlclV0aWxzXzEuc2V0UmFuZ2VWYWx1ZSkoZml4ZWRNaW4sIDI1NikpKSxcbiAgICAgICAgcjogTWF0aC5mbG9vcigoMCwgTnVtYmVyVXRpbHNfMS5yYW5kb21JblJhbmdlKSgoMCwgTnVtYmVyVXRpbHNfMS5zZXRSYW5nZVZhbHVlKShmaXhlZE1pbiwgMjU2KSkpLFxuICAgIH07XG59XG5leHBvcnRzLmdldFJhbmRvbVJnYkNvbG9yID0gZ2V0UmFuZG9tUmdiQ29sb3I7XG5mdW5jdGlvbiBnZXRTdHlsZUZyb21SZ2IoY29sb3IsIG9wYWNpdHkpIHtcbiAgICByZXR1cm4gYHJnYmEoJHtjb2xvci5yfSwgJHtjb2xvci5nfSwgJHtjb2xvci5ifSwgJHtvcGFjaXR5ICE9PSBudWxsICYmIG9wYWNpdHkgIT09IHZvaWQgMCA/IG9wYWNpdHkgOiAxfSlgO1xufVxuZXhwb3J0cy5nZXRTdHlsZUZyb21SZ2IgPSBnZXRTdHlsZUZyb21SZ2I7XG5mdW5jdGlvbiBnZXRTdHlsZUZyb21Ic2woY29sb3IsIG9wYWNpdHkpIHtcbiAgICByZXR1cm4gYGhzbGEoJHtjb2xvci5ofSwgJHtjb2xvci5zfSUsICR7Y29sb3IubH0lLCAke29wYWNpdHkgIT09IG51bGwgJiYgb3BhY2l0eSAhPT0gdm9pZCAwID8gb3BhY2l0eSA6IDF9KWA7XG59XG5leHBvcnRzLmdldFN0eWxlRnJvbUhzbCA9IGdldFN0eWxlRnJvbUhzbDtcbmZ1bmN0aW9uIGdldFN0eWxlRnJvbUhzdihjb2xvciwgb3BhY2l0eSkge1xuICAgIHJldHVybiBnZXRTdHlsZUZyb21Ic2woaHN2VG9Ic2woY29sb3IpLCBvcGFjaXR5KTtcbn1cbmV4cG9ydHMuZ2V0U3R5bGVGcm9tSHN2ID0gZ2V0U3R5bGVGcm9tSHN2O1xuZnVuY3Rpb24gY29sb3JNaXgoY29sb3IxLCBjb2xvcjIsIHNpemUxLCBzaXplMikge1xuICAgIGxldCByZ2IxID0gY29sb3IxO1xuICAgIGxldCByZ2IyID0gY29sb3IyO1xuICAgIGlmIChyZ2IxLnIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZ2IxID0gaHNsVG9SZ2IoY29sb3IxKTtcbiAgICB9XG4gICAgaWYgKHJnYjIuciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJnYjIgPSBoc2xUb1JnYihjb2xvcjIpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBiOiAoMCwgTnVtYmVyVXRpbHNfMS5taXgpKHJnYjEuYiwgcmdiMi5iLCBzaXplMSwgc2l6ZTIpLFxuICAgICAgICBnOiAoMCwgTnVtYmVyVXRpbHNfMS5taXgpKHJnYjEuZywgcmdiMi5nLCBzaXplMSwgc2l6ZTIpLFxuICAgICAgICByOiAoMCwgTnVtYmVyVXRpbHNfMS5taXgpKHJnYjEuciwgcmdiMi5yLCBzaXplMSwgc2l6ZTIpLFxuICAgIH07XG59XG5leHBvcnRzLmNvbG9yTWl4ID0gY29sb3JNaXg7XG5mdW5jdGlvbiBnZXRMaW5rQ29sb3IocDEsIHAyLCBsaW5rQ29sb3IpIHtcbiAgICB2YXIgX2EsIF9iO1xuICAgIGlmIChsaW5rQ29sb3IgPT09IENvbnN0YW50c18xLkNvbnN0YW50cy5yYW5kb21Db2xvclZhbHVlKSB7XG4gICAgICAgIHJldHVybiBnZXRSYW5kb21SZ2JDb2xvcigpO1xuICAgIH1cbiAgICBlbHNlIGlmIChsaW5rQ29sb3IgPT09IFwibWlkXCIpIHtcbiAgICAgICAgY29uc3Qgc291cmNlQ29sb3IgPSAoX2EgPSBwMS5nZXRGaWxsQ29sb3IoKSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogcDEuZ2V0U3Ryb2tlQ29sb3IoKTtcbiAgICAgICAgY29uc3QgZGVzdENvbG9yID0gKF9iID0gcDIgPT09IG51bGwgfHwgcDIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHAyLmdldEZpbGxDb2xvcigpKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBwMiA9PT0gbnVsbCB8fCBwMiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcDIuZ2V0U3Ryb2tlQ29sb3IoKTtcbiAgICAgICAgaWYgKHNvdXJjZUNvbG9yICYmIGRlc3RDb2xvciAmJiBwMikge1xuICAgICAgICAgICAgcmV0dXJuIGNvbG9yTWl4KHNvdXJjZUNvbG9yLCBkZXN0Q29sb3IsIHAxLmdldFJhZGl1cygpLCBwMi5nZXRSYWRpdXMoKSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBoc2xDb2xvciA9IHNvdXJjZUNvbG9yICE9PSBudWxsICYmIHNvdXJjZUNvbG9yICE9PSB2b2lkIDAgPyBzb3VyY2VDb2xvciA6IGRlc3RDb2xvcjtcbiAgICAgICAgICAgIGlmIChoc2xDb2xvcikge1xuICAgICAgICAgICAgICAgIHJldHVybiBoc2xUb1JnYihoc2xDb2xvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHJldHVybiBsaW5rQ29sb3I7XG4gICAgfVxufVxuZXhwb3J0cy5nZXRMaW5rQ29sb3IgPSBnZXRMaW5rQ29sb3I7XG5mdW5jdGlvbiBnZXRMaW5rUmFuZG9tQ29sb3Iob3B0Q29sb3IsIGJsaW5rLCBjb25zZW50KSB7XG4gICAgY29uc3QgY29sb3IgPSB0eXBlb2Ygb3B0Q29sb3IgPT09IFwic3RyaW5nXCIgPyBvcHRDb2xvciA6IG9wdENvbG9yLnZhbHVlO1xuICAgIGlmIChjb2xvciA9PT0gQ29uc3RhbnRzXzEuQ29uc3RhbnRzLnJhbmRvbUNvbG9yVmFsdWUpIHtcbiAgICAgICAgaWYgKGNvbnNlbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBjb2xvclRvUmdiKHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogY29sb3IsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChibGluaykge1xuICAgICAgICAgICAgcmV0dXJuIENvbnN0YW50c18xLkNvbnN0YW50cy5yYW5kb21Db2xvclZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIENvbnN0YW50c18xLkNvbnN0YW50cy5taWRDb2xvclZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICByZXR1cm4gY29sb3JUb1JnYih7XG4gICAgICAgICAgICB2YWx1ZTogY29sb3IsXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbmV4cG9ydHMuZ2V0TGlua1JhbmRvbUNvbG9yID0gZ2V0TGlua1JhbmRvbUNvbG9yO1xuZnVuY3Rpb24gZ2V0SHNsRnJvbUFuaW1hdGlvbihhbmltYXRpb24pIHtcbiAgICByZXR1cm4gYW5pbWF0aW9uICE9PSB1bmRlZmluZWRcbiAgICAgICAgPyB7XG4gICAgICAgICAgICBoOiBhbmltYXRpb24uaC52YWx1ZSxcbiAgICAgICAgICAgIHM6IGFuaW1hdGlvbi5zLnZhbHVlLFxuICAgICAgICAgICAgbDogYW5pbWF0aW9uLmwudmFsdWUsXG4gICAgICAgIH1cbiAgICAgICAgOiB1bmRlZmluZWQ7XG59XG5leHBvcnRzLmdldEhzbEZyb21BbmltYXRpb24gPSBnZXRIc2xGcm9tQW5pbWF0aW9uO1xuZnVuY3Rpb24gZ2V0SHNsQW5pbWF0aW9uRnJvbUhzbChoc2wsIGFuaW1hdGlvbk9wdGlvbnMsIHJlZHVjZUZhY3Rvcikge1xuICAgIGNvbnN0IHJlc0NvbG9yID0ge1xuICAgICAgICBoOiB7XG4gICAgICAgICAgICBlbmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgdmFsdWU6IGhzbC5oLFxuICAgICAgICB9LFxuICAgICAgICBzOiB7XG4gICAgICAgICAgICBlbmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgdmFsdWU6IGhzbC5zLFxuICAgICAgICB9LFxuICAgICAgICBsOiB7XG4gICAgICAgICAgICBlbmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgdmFsdWU6IGhzbC5sLFxuICAgICAgICB9LFxuICAgIH07XG4gICAgaWYgKGFuaW1hdGlvbk9wdGlvbnMpIHtcbiAgICAgICAgc2V0Q29sb3JBbmltYXRpb24ocmVzQ29sb3IuaCwgYW5pbWF0aW9uT3B0aW9ucy5oLCByZWR1Y2VGYWN0b3IpO1xuICAgICAgICBzZXRDb2xvckFuaW1hdGlvbihyZXNDb2xvci5zLCBhbmltYXRpb25PcHRpb25zLnMsIHJlZHVjZUZhY3Rvcik7XG4gICAgICAgIHNldENvbG9yQW5pbWF0aW9uKHJlc0NvbG9yLmwsIGFuaW1hdGlvbk9wdGlvbnMubCwgcmVkdWNlRmFjdG9yKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc0NvbG9yO1xufVxuZXhwb3J0cy5nZXRIc2xBbmltYXRpb25Gcm9tSHNsID0gZ2V0SHNsQW5pbWF0aW9uRnJvbUhzbDtcbmZ1bmN0aW9uIHNldENvbG9yQW5pbWF0aW9uKGNvbG9yVmFsdWUsIGNvbG9yQW5pbWF0aW9uLCByZWR1Y2VGYWN0b3IpIHtcbiAgICBjb2xvclZhbHVlLmVuYWJsZSA9IGNvbG9yQW5pbWF0aW9uLmVuYWJsZTtcbiAgICBpZiAoY29sb3JWYWx1ZS5lbmFibGUpIHtcbiAgICAgICAgY29sb3JWYWx1ZS52ZWxvY2l0eSA9IChjb2xvckFuaW1hdGlvbi5zcGVlZCAvIDEwMCkgKiByZWR1Y2VGYWN0b3I7XG4gICAgICAgIGlmIChjb2xvckFuaW1hdGlvbi5zeW5jKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29sb3JWYWx1ZS5zdGF0dXMgPSBFbnVtc18xLkFuaW1hdGlvblN0YXR1cy5pbmNyZWFzaW5nO1xuICAgICAgICBjb2xvclZhbHVlLnZlbG9jaXR5ICo9IE1hdGgucmFuZG9tKCk7XG4gICAgICAgIGlmIChjb2xvclZhbHVlLnZhbHVlKSB7XG4gICAgICAgICAgICBjb2xvclZhbHVlLnZhbHVlICo9IE1hdGgucmFuZG9tKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGNvbG9yVmFsdWUudmVsb2NpdHkgPSAwO1xuICAgIH1cbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Utils/ColorUtils.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Utils/Constants.js": +/*!*****************************************************!*\ + !*** ./node_modules/tsparticles/Utils/Constants.js ***! + \*****************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Constants = void 0;\nclass Constants {\n}\nexports.Constants = Constants;\nConstants.canvasClass = \"tsparticles-canvas-el\";\nConstants.randomColorValue = \"random\";\nConstants.midColorValue = \"mid\";\nConstants.touchEndEvent = \"touchend\";\nConstants.mouseDownEvent = \"mousedown\";\nConstants.mouseUpEvent = \"mouseup\";\nConstants.mouseMoveEvent = \"mousemove\";\nConstants.touchStartEvent = \"touchstart\";\nConstants.touchMoveEvent = \"touchmove\";\nConstants.mouseLeaveEvent = \"mouseleave\";\nConstants.mouseOutEvent = \"mouseout\";\nConstants.touchCancelEvent = \"touchcancel\";\nConstants.resizeEvent = \"resize\";\nConstants.visibilityChangeEvent = \"visibilitychange\";\nConstants.noPolygonDataLoaded = \"No polygon data loaded.\";\nConstants.noPolygonFound = \"No polygon found, you need to specify SVG url in config.\";\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXRpbHMvQ29uc3RhbnRzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9VdGlscy9Db25zdGFudHMuanM/YmYzOCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuQ29uc3RhbnRzID0gdm9pZCAwO1xuY2xhc3MgQ29uc3RhbnRzIHtcbn1cbmV4cG9ydHMuQ29uc3RhbnRzID0gQ29uc3RhbnRzO1xuQ29uc3RhbnRzLmNhbnZhc0NsYXNzID0gXCJ0c3BhcnRpY2xlcy1jYW52YXMtZWxcIjtcbkNvbnN0YW50cy5yYW5kb21Db2xvclZhbHVlID0gXCJyYW5kb21cIjtcbkNvbnN0YW50cy5taWRDb2xvclZhbHVlID0gXCJtaWRcIjtcbkNvbnN0YW50cy50b3VjaEVuZEV2ZW50ID0gXCJ0b3VjaGVuZFwiO1xuQ29uc3RhbnRzLm1vdXNlRG93bkV2ZW50ID0gXCJtb3VzZWRvd25cIjtcbkNvbnN0YW50cy5tb3VzZVVwRXZlbnQgPSBcIm1vdXNldXBcIjtcbkNvbnN0YW50cy5tb3VzZU1vdmVFdmVudCA9IFwibW91c2Vtb3ZlXCI7XG5Db25zdGFudHMudG91Y2hTdGFydEV2ZW50ID0gXCJ0b3VjaHN0YXJ0XCI7XG5Db25zdGFudHMudG91Y2hNb3ZlRXZlbnQgPSBcInRvdWNobW92ZVwiO1xuQ29uc3RhbnRzLm1vdXNlTGVhdmVFdmVudCA9IFwibW91c2VsZWF2ZVwiO1xuQ29uc3RhbnRzLm1vdXNlT3V0RXZlbnQgPSBcIm1vdXNlb3V0XCI7XG5Db25zdGFudHMudG91Y2hDYW5jZWxFdmVudCA9IFwidG91Y2hjYW5jZWxcIjtcbkNvbnN0YW50cy5yZXNpemVFdmVudCA9IFwicmVzaXplXCI7XG5Db25zdGFudHMudmlzaWJpbGl0eUNoYW5nZUV2ZW50ID0gXCJ2aXNpYmlsaXR5Y2hhbmdlXCI7XG5Db25zdGFudHMubm9Qb2x5Z29uRGF0YUxvYWRlZCA9IFwiTm8gcG9seWdvbiBkYXRhIGxvYWRlZC5cIjtcbkNvbnN0YW50cy5ub1BvbHlnb25Gb3VuZCA9IFwiTm8gcG9seWdvbiBmb3VuZCwgeW91IG5lZWQgdG8gc3BlY2lmeSBTVkcgdXJsIGluIGNvbmZpZy5cIjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Utils/Constants.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Utils/EventListeners.js": +/*!**********************************************************!*\ + !*** ./node_modules/tsparticles/Utils/EventListeners.js ***! + \**********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.EventListeners = void 0;\nconst Enums_1 = __webpack_require__(/*! ../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst Constants_1 = __webpack_require__(/*! ./Constants */ \"./node_modules/tsparticles/Utils/Constants.js\");\nconst Utils_1 = __webpack_require__(/*! ./Utils */ \"./node_modules/tsparticles/Utils/Utils.js\");\nfunction manageListener(element, event, handler, add, options) {\n if (add) {\n let addOptions = { passive: true };\n if (typeof options === \"boolean\") {\n addOptions.capture = options;\n }\n else if (options !== undefined) {\n addOptions = options;\n }\n element.addEventListener(event, handler, addOptions);\n }\n else {\n const removeOptions = options;\n element.removeEventListener(event, handler, removeOptions);\n }\n}\nclass EventListeners {\n constructor(container) {\n this.container = container;\n this.canPush = true;\n this.mouseMoveHandler = (e) => this.mouseTouchMove(e);\n this.touchStartHandler = (e) => this.mouseTouchMove(e);\n this.touchMoveHandler = (e) => this.mouseTouchMove(e);\n this.touchEndHandler = () => this.mouseTouchFinish();\n this.mouseLeaveHandler = () => this.mouseTouchFinish();\n this.touchCancelHandler = () => this.mouseTouchFinish();\n this.touchEndClickHandler = (e) => this.mouseTouchClick(e);\n this.mouseUpHandler = (e) => this.mouseTouchClick(e);\n this.mouseDownHandler = () => this.mouseDown();\n this.visibilityChangeHandler = () => this.handleVisibilityChange();\n this.themeChangeHandler = (e) => this.handleThemeChange(e);\n this.oldThemeChangeHandler = (e) => this.handleThemeChange(e);\n this.resizeHandler = () => this.handleWindowResize();\n }\n addListeners() {\n this.manageListeners(true);\n }\n removeListeners() {\n this.manageListeners(false);\n }\n manageListeners(add) {\n var _a;\n const container = this.container;\n const options = container.actualOptions;\n const detectType = options.interactivity.detectsOn;\n let mouseLeaveEvent = Constants_1.Constants.mouseLeaveEvent;\n if (detectType === Enums_1.InteractivityDetect.window) {\n container.interactivity.element = window;\n mouseLeaveEvent = Constants_1.Constants.mouseOutEvent;\n }\n else if (detectType === Enums_1.InteractivityDetect.parent && container.canvas.element) {\n const canvasEl = container.canvas.element;\n container.interactivity.element = (_a = canvasEl.parentElement) !== null && _a !== void 0 ? _a : canvasEl.parentNode;\n }\n else {\n container.interactivity.element = container.canvas.element;\n }\n const mediaMatch = !(0, Utils_1.isSsr)() && typeof matchMedia !== \"undefined\" && matchMedia(\"(prefers-color-scheme: dark)\");\n if (mediaMatch) {\n if (mediaMatch.addEventListener !== undefined) {\n manageListener(mediaMatch, \"change\", this.themeChangeHandler, add);\n }\n else if (mediaMatch.addListener !== undefined) {\n if (add) {\n mediaMatch.addListener(this.oldThemeChangeHandler);\n }\n else {\n mediaMatch.removeListener(this.oldThemeChangeHandler);\n }\n }\n }\n const interactivityEl = container.interactivity.element;\n if (!interactivityEl) {\n return;\n }\n const html = interactivityEl;\n if (options.interactivity.events.onHover.enable || options.interactivity.events.onClick.enable) {\n manageListener(interactivityEl, Constants_1.Constants.mouseMoveEvent, this.mouseMoveHandler, add);\n manageListener(interactivityEl, Constants_1.Constants.touchStartEvent, this.touchStartHandler, add);\n manageListener(interactivityEl, Constants_1.Constants.touchMoveEvent, this.touchMoveHandler, add);\n if (!options.interactivity.events.onClick.enable) {\n manageListener(interactivityEl, Constants_1.Constants.touchEndEvent, this.touchEndHandler, add);\n }\n else {\n manageListener(interactivityEl, Constants_1.Constants.touchEndEvent, this.touchEndClickHandler, add);\n manageListener(interactivityEl, Constants_1.Constants.mouseUpEvent, this.mouseUpHandler, add);\n manageListener(interactivityEl, Constants_1.Constants.mouseDownEvent, this.mouseDownHandler, add);\n }\n manageListener(interactivityEl, mouseLeaveEvent, this.mouseLeaveHandler, add);\n manageListener(interactivityEl, Constants_1.Constants.touchCancelEvent, this.touchCancelHandler, add);\n }\n if (container.canvas.element) {\n container.canvas.element.style.pointerEvents = html === container.canvas.element ? \"initial\" : \"none\";\n }\n if (options.interactivity.events.resize) {\n if (typeof ResizeObserver !== \"undefined\") {\n if (this.resizeObserver && !add) {\n if (container.canvas.element) {\n this.resizeObserver.unobserve(container.canvas.element);\n }\n this.resizeObserver.disconnect();\n delete this.resizeObserver;\n }\n else if (!this.resizeObserver && add && container.canvas.element) {\n this.resizeObserver = new ResizeObserver((entries) => {\n const entry = entries.find((e) => e.target === container.canvas.element);\n if (!entry) {\n return;\n }\n this.handleWindowResize();\n });\n this.resizeObserver.observe(container.canvas.element);\n }\n }\n else {\n manageListener(window, Constants_1.Constants.resizeEvent, this.resizeHandler, add);\n }\n }\n if (document) {\n manageListener(document, Constants_1.Constants.visibilityChangeEvent, this.visibilityChangeHandler, add, false);\n }\n }\n handleWindowResize() {\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n delete this.resizeTimeout;\n }\n this.resizeTimeout = setTimeout(() => { var _a; return (_a = this.container.canvas) === null || _a === void 0 ? void 0 : _a.windowResize(); }, 500);\n }\n handleVisibilityChange() {\n const container = this.container;\n const options = container.actualOptions;\n this.mouseTouchFinish();\n if (!options.pauseOnBlur) {\n return;\n }\n if (document === null || document === void 0 ? void 0 : document.hidden) {\n container.pageHidden = true;\n container.pause();\n }\n else {\n container.pageHidden = false;\n if (container.getAnimationStatus()) {\n container.play(true);\n }\n else {\n container.draw(true);\n }\n }\n }\n mouseDown() {\n const interactivity = this.container.interactivity;\n if (interactivity) {\n const mouse = interactivity.mouse;\n mouse.clicking = true;\n mouse.downPosition = mouse.position;\n }\n }\n mouseTouchMove(e) {\n var _a, _b, _c, _d, _e, _f, _g;\n const container = this.container;\n const options = container.actualOptions;\n if (((_a = container.interactivity) === null || _a === void 0 ? void 0 : _a.element) === undefined) {\n return;\n }\n container.interactivity.mouse.inside = true;\n let pos;\n const canvas = container.canvas.element;\n if (e.type.startsWith(\"mouse\")) {\n this.canPush = true;\n const mouseEvent = e;\n if (container.interactivity.element === window) {\n if (canvas) {\n const clientRect = canvas.getBoundingClientRect();\n pos = {\n x: mouseEvent.clientX - clientRect.left,\n y: mouseEvent.clientY - clientRect.top,\n };\n }\n }\n else if (options.interactivity.detectsOn === Enums_1.InteractivityDetect.parent) {\n const source = mouseEvent.target;\n const target = mouseEvent.currentTarget;\n const canvasEl = container.canvas.element;\n if (source && target && canvasEl) {\n const sourceRect = source.getBoundingClientRect();\n const targetRect = target.getBoundingClientRect();\n const canvasRect = canvasEl.getBoundingClientRect();\n pos = {\n x: mouseEvent.offsetX + 2 * sourceRect.left - (targetRect.left + canvasRect.left),\n y: mouseEvent.offsetY + 2 * sourceRect.top - (targetRect.top + canvasRect.top),\n };\n }\n else {\n pos = {\n x: (_b = mouseEvent.offsetX) !== null && _b !== void 0 ? _b : mouseEvent.clientX,\n y: (_c = mouseEvent.offsetY) !== null && _c !== void 0 ? _c : mouseEvent.clientY,\n };\n }\n }\n else {\n if (mouseEvent.target === container.canvas.element) {\n pos = {\n x: (_d = mouseEvent.offsetX) !== null && _d !== void 0 ? _d : mouseEvent.clientX,\n y: (_e = mouseEvent.offsetY) !== null && _e !== void 0 ? _e : mouseEvent.clientY,\n };\n }\n }\n }\n else {\n this.canPush = e.type !== \"touchmove\";\n const touchEvent = e;\n const lastTouch = touchEvent.touches[touchEvent.touches.length - 1];\n const canvasRect = canvas === null || canvas === void 0 ? void 0 : canvas.getBoundingClientRect();\n pos = {\n x: lastTouch.clientX - ((_f = canvasRect === null || canvasRect === void 0 ? void 0 : canvasRect.left) !== null && _f !== void 0 ? _f : 0),\n y: lastTouch.clientY - ((_g = canvasRect === null || canvasRect === void 0 ? void 0 : canvasRect.top) !== null && _g !== void 0 ? _g : 0),\n };\n }\n const pxRatio = container.retina.pixelRatio;\n if (pos) {\n pos.x *= pxRatio;\n pos.y *= pxRatio;\n }\n container.interactivity.mouse.position = pos;\n container.interactivity.status = Constants_1.Constants.mouseMoveEvent;\n }\n mouseTouchFinish() {\n const interactivity = this.container.interactivity;\n if (interactivity === undefined) {\n return;\n }\n const mouse = interactivity.mouse;\n delete mouse.position;\n delete mouse.clickPosition;\n delete mouse.downPosition;\n interactivity.status = Constants_1.Constants.mouseLeaveEvent;\n mouse.inside = false;\n mouse.clicking = false;\n }\n mouseTouchClick(e) {\n const container = this.container;\n const options = container.actualOptions;\n const mouse = container.interactivity.mouse;\n mouse.inside = true;\n let handled = false;\n const mousePosition = mouse.position;\n if (mousePosition === undefined || !options.interactivity.events.onClick.enable) {\n return;\n }\n for (const [, plugin] of container.plugins) {\n if (plugin.clickPositionValid !== undefined) {\n handled = plugin.clickPositionValid(mousePosition);\n if (handled) {\n break;\n }\n }\n }\n if (!handled) {\n this.doMouseTouchClick(e);\n }\n mouse.clicking = false;\n }\n doMouseTouchClick(e) {\n const container = this.container;\n const options = container.actualOptions;\n if (this.canPush) {\n const mousePos = container.interactivity.mouse.position;\n if (mousePos) {\n container.interactivity.mouse.clickPosition = {\n x: mousePos.x,\n y: mousePos.y,\n };\n }\n else {\n return;\n }\n container.interactivity.mouse.clickTime = new Date().getTime();\n const onClick = options.interactivity.events.onClick;\n if (onClick.mode instanceof Array) {\n for (const mode of onClick.mode) {\n this.handleClickMode(mode);\n }\n }\n else {\n this.handleClickMode(onClick.mode);\n }\n }\n if (e.type === \"touchend\") {\n setTimeout(() => this.mouseTouchFinish(), 500);\n }\n }\n handleThemeChange(e) {\n const mediaEvent = e;\n const themeName = mediaEvent.matches\n ? this.container.options.defaultDarkTheme\n : this.container.options.defaultLightTheme;\n const theme = this.container.options.themes.find((theme) => theme.name === themeName);\n if (theme && theme.default.auto) {\n this.container.loadTheme(themeName);\n }\n }\n handleClickMode(mode) {\n const container = this.container;\n const options = container.actualOptions;\n const pushNb = options.interactivity.modes.push.quantity;\n const removeNb = options.interactivity.modes.remove.quantity;\n switch (mode) {\n case Enums_1.ClickMode.push: {\n if (pushNb > 0) {\n const pushOptions = options.interactivity.modes.push;\n const group = (0, Utils_1.itemFromArray)([undefined, ...pushOptions.groups]);\n const groupOptions = group !== undefined ? container.actualOptions.particles.groups[group] : undefined;\n container.particles.push(pushNb, container.interactivity.mouse, groupOptions, group);\n }\n break;\n }\n case Enums_1.ClickMode.remove:\n container.particles.removeQuantity(removeNb);\n break;\n case Enums_1.ClickMode.bubble:\n container.bubble.clicking = true;\n break;\n case Enums_1.ClickMode.repulse:\n container.repulse.clicking = true;\n container.repulse.count = 0;\n for (const particle of container.repulse.particles) {\n particle.velocity.setTo(particle.initialVelocity);\n }\n container.repulse.particles = [];\n container.repulse.finish = false;\n setTimeout(() => {\n if (!container.destroyed) {\n container.repulse.clicking = false;\n }\n }, options.interactivity.modes.repulse.duration * 1000);\n break;\n case Enums_1.ClickMode.attract:\n container.attract.clicking = true;\n container.attract.count = 0;\n for (const particle of container.attract.particles) {\n particle.velocity.setTo(particle.initialVelocity);\n }\n container.attract.particles = [];\n container.attract.finish = false;\n setTimeout(() => {\n if (!container.destroyed) {\n container.attract.clicking = false;\n }\n }, options.interactivity.modes.attract.duration * 1000);\n break;\n case Enums_1.ClickMode.pause:\n if (container.getAnimationStatus()) {\n container.pause();\n }\n else {\n container.play();\n }\n break;\n }\n for (const [, plugin] of container.plugins) {\n if (plugin.handleClickMode) {\n plugin.handleClickMode(mode);\n }\n }\n }\n}\nexports.EventListeners = EventListeners;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXRpbHMvRXZlbnRMaXN0ZW5lcnMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsc0JBQXNCO0FBQ3RCLGdCQUFnQixtQkFBTyxDQUFDLDJEQUFVO0FBQ2xDLG9CQUFvQixtQkFBTyxDQUFDLGtFQUFhO0FBQ3pDLGdCQUFnQixtQkFBTyxDQUFDLDBEQUFTO0FBQ2pDO0FBQ0E7QUFDQSwyQkFBMkI7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdEQUFnRCxRQUFRLDZGQUE2RjtBQUNySjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXRpbHMvRXZlbnRMaXN0ZW5lcnMuanM/ZDkxMiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuRXZlbnRMaXN0ZW5lcnMgPSB2b2lkIDA7XG5jb25zdCBFbnVtc18xID0gcmVxdWlyZShcIi4uL0VudW1zXCIpO1xuY29uc3QgQ29uc3RhbnRzXzEgPSByZXF1aXJlKFwiLi9Db25zdGFudHNcIik7XG5jb25zdCBVdGlsc18xID0gcmVxdWlyZShcIi4vVXRpbHNcIik7XG5mdW5jdGlvbiBtYW5hZ2VMaXN0ZW5lcihlbGVtZW50LCBldmVudCwgaGFuZGxlciwgYWRkLCBvcHRpb25zKSB7XG4gICAgaWYgKGFkZCkge1xuICAgICAgICBsZXQgYWRkT3B0aW9ucyA9IHsgcGFzc2l2ZTogdHJ1ZSB9O1xuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMgPT09IFwiYm9vbGVhblwiKSB7XG4gICAgICAgICAgICBhZGRPcHRpb25zLmNhcHR1cmUgPSBvcHRpb25zO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG9wdGlvbnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgYWRkT3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgICAgIH1cbiAgICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKGV2ZW50LCBoYW5kbGVyLCBhZGRPcHRpb25zKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGNvbnN0IHJlbW92ZU9wdGlvbnMgPSBvcHRpb25zO1xuICAgICAgICBlbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnQsIGhhbmRsZXIsIHJlbW92ZU9wdGlvbnMpO1xuICAgIH1cbn1cbmNsYXNzIEV2ZW50TGlzdGVuZXJzIHtcbiAgICBjb25zdHJ1Y3Rvcihjb250YWluZXIpIHtcbiAgICAgICAgdGhpcy5jb250YWluZXIgPSBjb250YWluZXI7XG4gICAgICAgIHRoaXMuY2FuUHVzaCA9IHRydWU7XG4gICAgICAgIHRoaXMubW91c2VNb3ZlSGFuZGxlciA9IChlKSA9PiB0aGlzLm1vdXNlVG91Y2hNb3ZlKGUpO1xuICAgICAgICB0aGlzLnRvdWNoU3RhcnRIYW5kbGVyID0gKGUpID0+IHRoaXMubW91c2VUb3VjaE1vdmUoZSk7XG4gICAgICAgIHRoaXMudG91Y2hNb3ZlSGFuZGxlciA9IChlKSA9PiB0aGlzLm1vdXNlVG91Y2hNb3ZlKGUpO1xuICAgICAgICB0aGlzLnRvdWNoRW5kSGFuZGxlciA9ICgpID0+IHRoaXMubW91c2VUb3VjaEZpbmlzaCgpO1xuICAgICAgICB0aGlzLm1vdXNlTGVhdmVIYW5kbGVyID0gKCkgPT4gdGhpcy5tb3VzZVRvdWNoRmluaXNoKCk7XG4gICAgICAgIHRoaXMudG91Y2hDYW5jZWxIYW5kbGVyID0gKCkgPT4gdGhpcy5tb3VzZVRvdWNoRmluaXNoKCk7XG4gICAgICAgIHRoaXMudG91Y2hFbmRDbGlja0hhbmRsZXIgPSAoZSkgPT4gdGhpcy5tb3VzZVRvdWNoQ2xpY2soZSk7XG4gICAgICAgIHRoaXMubW91c2VVcEhhbmRsZXIgPSAoZSkgPT4gdGhpcy5tb3VzZVRvdWNoQ2xpY2soZSk7XG4gICAgICAgIHRoaXMubW91c2VEb3duSGFuZGxlciA9ICgpID0+IHRoaXMubW91c2VEb3duKCk7XG4gICAgICAgIHRoaXMudmlzaWJpbGl0eUNoYW5nZUhhbmRsZXIgPSAoKSA9PiB0aGlzLmhhbmRsZVZpc2liaWxpdHlDaGFuZ2UoKTtcbiAgICAgICAgdGhpcy50aGVtZUNoYW5nZUhhbmRsZXIgPSAoZSkgPT4gdGhpcy5oYW5kbGVUaGVtZUNoYW5nZShlKTtcbiAgICAgICAgdGhpcy5vbGRUaGVtZUNoYW5nZUhhbmRsZXIgPSAoZSkgPT4gdGhpcy5oYW5kbGVUaGVtZUNoYW5nZShlKTtcbiAgICAgICAgdGhpcy5yZXNpemVIYW5kbGVyID0gKCkgPT4gdGhpcy5oYW5kbGVXaW5kb3dSZXNpemUoKTtcbiAgICB9XG4gICAgYWRkTGlzdGVuZXJzKCkge1xuICAgICAgICB0aGlzLm1hbmFnZUxpc3RlbmVycyh0cnVlKTtcbiAgICB9XG4gICAgcmVtb3ZlTGlzdGVuZXJzKCkge1xuICAgICAgICB0aGlzLm1hbmFnZUxpc3RlbmVycyhmYWxzZSk7XG4gICAgfVxuICAgIG1hbmFnZUxpc3RlbmVycyhhZGQpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IGNvbnRhaW5lci5hY3R1YWxPcHRpb25zO1xuICAgICAgICBjb25zdCBkZXRlY3RUeXBlID0gb3B0aW9ucy5pbnRlcmFjdGl2aXR5LmRldGVjdHNPbjtcbiAgICAgICAgbGV0IG1vdXNlTGVhdmVFdmVudCA9IENvbnN0YW50c18xLkNvbnN0YW50cy5tb3VzZUxlYXZlRXZlbnQ7XG4gICAgICAgIGlmIChkZXRlY3RUeXBlID09PSBFbnVtc18xLkludGVyYWN0aXZpdHlEZXRlY3Qud2luZG93KSB7XG4gICAgICAgICAgICBjb250YWluZXIuaW50ZXJhY3Rpdml0eS5lbGVtZW50ID0gd2luZG93O1xuICAgICAgICAgICAgbW91c2VMZWF2ZUV2ZW50ID0gQ29uc3RhbnRzXzEuQ29uc3RhbnRzLm1vdXNlT3V0RXZlbnQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoZGV0ZWN0VHlwZSA9PT0gRW51bXNfMS5JbnRlcmFjdGl2aXR5RGV0ZWN0LnBhcmVudCAmJiBjb250YWluZXIuY2FudmFzLmVsZW1lbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGNhbnZhc0VsID0gY29udGFpbmVyLmNhbnZhcy5lbGVtZW50O1xuICAgICAgICAgICAgY29udGFpbmVyLmludGVyYWN0aXZpdHkuZWxlbWVudCA9IChfYSA9IGNhbnZhc0VsLnBhcmVudEVsZW1lbnQpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGNhbnZhc0VsLnBhcmVudE5vZGU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb250YWluZXIuaW50ZXJhY3Rpdml0eS5lbGVtZW50ID0gY29udGFpbmVyLmNhbnZhcy5lbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1lZGlhTWF0Y2ggPSAhKDAsIFV0aWxzXzEuaXNTc3IpKCkgJiYgdHlwZW9mIG1hdGNoTWVkaWEgIT09IFwidW5kZWZpbmVkXCIgJiYgbWF0Y2hNZWRpYShcIihwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaylcIik7XG4gICAgICAgIGlmIChtZWRpYU1hdGNoKSB7XG4gICAgICAgICAgICBpZiAobWVkaWFNYXRjaC5hZGRFdmVudExpc3RlbmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBtYW5hZ2VMaXN0ZW5lcihtZWRpYU1hdGNoLCBcImNoYW5nZVwiLCB0aGlzLnRoZW1lQ2hhbmdlSGFuZGxlciwgYWRkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKG1lZGlhTWF0Y2guYWRkTGlzdGVuZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGlmIChhZGQpIHtcbiAgICAgICAgICAgICAgICAgICAgbWVkaWFNYXRjaC5hZGRMaXN0ZW5lcih0aGlzLm9sZFRoZW1lQ2hhbmdlSGFuZGxlcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBtZWRpYU1hdGNoLnJlbW92ZUxpc3RlbmVyKHRoaXMub2xkVGhlbWVDaGFuZ2VIYW5kbGVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW50ZXJhY3Rpdml0eUVsID0gY29udGFpbmVyLmludGVyYWN0aXZpdHkuZWxlbWVudDtcbiAgICAgICAgaWYgKCFpbnRlcmFjdGl2aXR5RWwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBodG1sID0gaW50ZXJhY3Rpdml0eUVsO1xuICAgICAgICBpZiAob3B0aW9ucy5pbnRlcmFjdGl2aXR5LmV2ZW50cy5vbkhvdmVyLmVuYWJsZSB8fCBvcHRpb25zLmludGVyYWN0aXZpdHkuZXZlbnRzLm9uQ2xpY2suZW5hYmxlKSB7XG4gICAgICAgICAgICBtYW5hZ2VMaXN0ZW5lcihpbnRlcmFjdGl2aXR5RWwsIENvbnN0YW50c18xLkNvbnN0YW50cy5tb3VzZU1vdmVFdmVudCwgdGhpcy5tb3VzZU1vdmVIYW5kbGVyLCBhZGQpO1xuICAgICAgICAgICAgbWFuYWdlTGlzdGVuZXIoaW50ZXJhY3Rpdml0eUVsLCBDb25zdGFudHNfMS5Db25zdGFudHMudG91Y2hTdGFydEV2ZW50LCB0aGlzLnRvdWNoU3RhcnRIYW5kbGVyLCBhZGQpO1xuICAgICAgICAgICAgbWFuYWdlTGlzdGVuZXIoaW50ZXJhY3Rpdml0eUVsLCBDb25zdGFudHNfMS5Db25zdGFudHMudG91Y2hNb3ZlRXZlbnQsIHRoaXMudG91Y2hNb3ZlSGFuZGxlciwgYWRkKTtcbiAgICAgICAgICAgIGlmICghb3B0aW9ucy5pbnRlcmFjdGl2aXR5LmV2ZW50cy5vbkNsaWNrLmVuYWJsZSkge1xuICAgICAgICAgICAgICAgIG1hbmFnZUxpc3RlbmVyKGludGVyYWN0aXZpdHlFbCwgQ29uc3RhbnRzXzEuQ29uc3RhbnRzLnRvdWNoRW5kRXZlbnQsIHRoaXMudG91Y2hFbmRIYW5kbGVyLCBhZGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgbWFuYWdlTGlzdGVuZXIoaW50ZXJhY3Rpdml0eUVsLCBDb25zdGFudHNfMS5Db25zdGFudHMudG91Y2hFbmRFdmVudCwgdGhpcy50b3VjaEVuZENsaWNrSGFuZGxlciwgYWRkKTtcbiAgICAgICAgICAgICAgICBtYW5hZ2VMaXN0ZW5lcihpbnRlcmFjdGl2aXR5RWwsIENvbnN0YW50c18xLkNvbnN0YW50cy5tb3VzZVVwRXZlbnQsIHRoaXMubW91c2VVcEhhbmRsZXIsIGFkZCk7XG4gICAgICAgICAgICAgICAgbWFuYWdlTGlzdGVuZXIoaW50ZXJhY3Rpdml0eUVsLCBDb25zdGFudHNfMS5Db25zdGFudHMubW91c2VEb3duRXZlbnQsIHRoaXMubW91c2VEb3duSGFuZGxlciwgYWRkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG1hbmFnZUxpc3RlbmVyKGludGVyYWN0aXZpdHlFbCwgbW91c2VMZWF2ZUV2ZW50LCB0aGlzLm1vdXNlTGVhdmVIYW5kbGVyLCBhZGQpO1xuICAgICAgICAgICAgbWFuYWdlTGlzdGVuZXIoaW50ZXJhY3Rpdml0eUVsLCBDb25zdGFudHNfMS5Db25zdGFudHMudG91Y2hDYW5jZWxFdmVudCwgdGhpcy50b3VjaENhbmNlbEhhbmRsZXIsIGFkZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbnRhaW5lci5jYW52YXMuZWxlbWVudCkge1xuICAgICAgICAgICAgY29udGFpbmVyLmNhbnZhcy5lbGVtZW50LnN0eWxlLnBvaW50ZXJFdmVudHMgPSBodG1sID09PSBjb250YWluZXIuY2FudmFzLmVsZW1lbnQgPyBcImluaXRpYWxcIiA6IFwibm9uZVwiO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLmludGVyYWN0aXZpdHkuZXZlbnRzLnJlc2l6ZSkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBSZXNpemVPYnNlcnZlciAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnJlc2l6ZU9ic2VydmVyICYmICFhZGQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRhaW5lci5jYW52YXMuZWxlbWVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlci51bm9ic2VydmUoY29udGFpbmVyLmNhbnZhcy5lbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMucmVzaXplT2JzZXJ2ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKCF0aGlzLnJlc2l6ZU9ic2VydmVyICYmIGFkZCAmJiBjb250YWluZXIuY2FudmFzLmVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoZW50cmllcykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZW50cnkgPSBlbnRyaWVzLmZpbmQoKGUpID0+IGUudGFyZ2V0ID09PSBjb250YWluZXIuY2FudmFzLmVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFlbnRyeSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlV2luZG93UmVzaXplKCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUoY29udGFpbmVyLmNhbnZhcy5lbGVtZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBtYW5hZ2VMaXN0ZW5lcih3aW5kb3csIENvbnN0YW50c18xLkNvbnN0YW50cy5yZXNpemVFdmVudCwgdGhpcy5yZXNpemVIYW5kbGVyLCBhZGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChkb2N1bWVudCkge1xuICAgICAgICAgICAgbWFuYWdlTGlzdGVuZXIoZG9jdW1lbnQsIENvbnN0YW50c18xLkNvbnN0YW50cy52aXNpYmlsaXR5Q2hhbmdlRXZlbnQsIHRoaXMudmlzaWJpbGl0eUNoYW5nZUhhbmRsZXIsIGFkZCwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGhhbmRsZVdpbmRvd1Jlc2l6ZSgpIHtcbiAgICAgICAgaWYgKHRoaXMucmVzaXplVGltZW91dCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMucmVzaXplVGltZW91dCk7XG4gICAgICAgICAgICBkZWxldGUgdGhpcy5yZXNpemVUaW1lb3V0O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVzaXplVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4geyB2YXIgX2E7IHJldHVybiAoX2EgPSB0aGlzLmNvbnRhaW5lci5jYW52YXMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS53aW5kb3dSZXNpemUoKTsgfSwgNTAwKTtcbiAgICB9XG4gICAgaGFuZGxlVmlzaWJpbGl0eUNoYW5nZSgpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXI7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSBjb250YWluZXIuYWN0dWFsT3B0aW9ucztcbiAgICAgICAgdGhpcy5tb3VzZVRvdWNoRmluaXNoKCk7XG4gICAgICAgIGlmICghb3B0aW9ucy5wYXVzZU9uQmx1cikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkb2N1bWVudCA9PT0gbnVsbCB8fCBkb2N1bWVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogZG9jdW1lbnQuaGlkZGVuKSB7XG4gICAgICAgICAgICBjb250YWluZXIucGFnZUhpZGRlbiA9IHRydWU7XG4gICAgICAgICAgICBjb250YWluZXIucGF1c2UoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnRhaW5lci5wYWdlSGlkZGVuID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAoY29udGFpbmVyLmdldEFuaW1hdGlvblN0YXR1cygpKSB7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLnBsYXkodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb250YWluZXIuZHJhdyh0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBtb3VzZURvd24oKSB7XG4gICAgICAgIGNvbnN0IGludGVyYWN0aXZpdHkgPSB0aGlzLmNvbnRhaW5lci5pbnRlcmFjdGl2aXR5O1xuICAgICAgICBpZiAoaW50ZXJhY3Rpdml0eSkge1xuICAgICAgICAgICAgY29uc3QgbW91c2UgPSBpbnRlcmFjdGl2aXR5Lm1vdXNlO1xuICAgICAgICAgICAgbW91c2UuY2xpY2tpbmcgPSB0cnVlO1xuICAgICAgICAgICAgbW91c2UuZG93blBvc2l0aW9uID0gbW91c2UucG9zaXRpb247XG4gICAgICAgIH1cbiAgICB9XG4gICAgbW91c2VUb3VjaE1vdmUoZSkge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2QsIF9lLCBfZiwgX2c7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyO1xuICAgICAgICBjb25zdCBvcHRpb25zID0gY29udGFpbmVyLmFjdHVhbE9wdGlvbnM7XG4gICAgICAgIGlmICgoKF9hID0gY29udGFpbmVyLmludGVyYWN0aXZpdHkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5lbGVtZW50KSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29udGFpbmVyLmludGVyYWN0aXZpdHkubW91c2UuaW5zaWRlID0gdHJ1ZTtcbiAgICAgICAgbGV0IHBvcztcbiAgICAgICAgY29uc3QgY2FudmFzID0gY29udGFpbmVyLmNhbnZhcy5lbGVtZW50O1xuICAgICAgICBpZiAoZS50eXBlLnN0YXJ0c1dpdGgoXCJtb3VzZVwiKSkge1xuICAgICAgICAgICAgdGhpcy5jYW5QdXNoID0gdHJ1ZTtcbiAgICAgICAgICAgIGNvbnN0IG1vdXNlRXZlbnQgPSBlO1xuICAgICAgICAgICAgaWYgKGNvbnRhaW5lci5pbnRlcmFjdGl2aXR5LmVsZW1lbnQgPT09IHdpbmRvdykge1xuICAgICAgICAgICAgICAgIGlmIChjYW52YXMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2xpZW50UmVjdCA9IGNhbnZhcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgICAgICAgICAgcG9zID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgeDogbW91c2VFdmVudC5jbGllbnRYIC0gY2xpZW50UmVjdC5sZWZ0LFxuICAgICAgICAgICAgICAgICAgICAgICAgeTogbW91c2VFdmVudC5jbGllbnRZIC0gY2xpZW50UmVjdC50b3AsXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAob3B0aW9ucy5pbnRlcmFjdGl2aXR5LmRldGVjdHNPbiA9PT0gRW51bXNfMS5JbnRlcmFjdGl2aXR5RGV0ZWN0LnBhcmVudCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNvdXJjZSA9IG1vdXNlRXZlbnQudGFyZ2V0O1xuICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IG1vdXNlRXZlbnQuY3VycmVudFRhcmdldDtcbiAgICAgICAgICAgICAgICBjb25zdCBjYW52YXNFbCA9IGNvbnRhaW5lci5jYW52YXMuZWxlbWVudDtcbiAgICAgICAgICAgICAgICBpZiAoc291cmNlICYmIHRhcmdldCAmJiBjYW52YXNFbCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzb3VyY2VSZWN0ID0gc291cmNlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXRSZWN0ID0gdGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjYW52YXNSZWN0ID0gY2FudmFzRWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgICAgIHBvcyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHg6IG1vdXNlRXZlbnQub2Zmc2V0WCArIDIgKiBzb3VyY2VSZWN0LmxlZnQgLSAodGFyZ2V0UmVjdC5sZWZ0ICsgY2FudmFzUmVjdC5sZWZ0KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHk6IG1vdXNlRXZlbnQub2Zmc2V0WSArIDIgKiBzb3VyY2VSZWN0LnRvcCAtICh0YXJnZXRSZWN0LnRvcCArIGNhbnZhc1JlY3QudG9wKSxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHBvcyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHg6IChfYiA9IG1vdXNlRXZlbnQub2Zmc2V0WCkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogbW91c2VFdmVudC5jbGllbnRYLFxuICAgICAgICAgICAgICAgICAgICAgICAgeTogKF9jID0gbW91c2VFdmVudC5vZmZzZXRZKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiBtb3VzZUV2ZW50LmNsaWVudFksXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKG1vdXNlRXZlbnQudGFyZ2V0ID09PSBjb250YWluZXIuY2FudmFzLmVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgeDogKF9kID0gbW91c2VFdmVudC5vZmZzZXRYKSAhPT0gbnVsbCAmJiBfZCAhPT0gdm9pZCAwID8gX2QgOiBtb3VzZUV2ZW50LmNsaWVudFgsXG4gICAgICAgICAgICAgICAgICAgICAgICB5OiAoX2UgPSBtb3VzZUV2ZW50Lm9mZnNldFkpICE9PSBudWxsICYmIF9lICE9PSB2b2lkIDAgPyBfZSA6IG1vdXNlRXZlbnQuY2xpZW50WSxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNhblB1c2ggPSBlLnR5cGUgIT09IFwidG91Y2htb3ZlXCI7XG4gICAgICAgICAgICBjb25zdCB0b3VjaEV2ZW50ID0gZTtcbiAgICAgICAgICAgIGNvbnN0IGxhc3RUb3VjaCA9IHRvdWNoRXZlbnQudG91Y2hlc1t0b3VjaEV2ZW50LnRvdWNoZXMubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICBjb25zdCBjYW52YXNSZWN0ID0gY2FudmFzID09PSBudWxsIHx8IGNhbnZhcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2FudmFzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgcG9zID0ge1xuICAgICAgICAgICAgICAgIHg6IGxhc3RUb3VjaC5jbGllbnRYIC0gKChfZiA9IGNhbnZhc1JlY3QgPT09IG51bGwgfHwgY2FudmFzUmVjdCA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2FudmFzUmVjdC5sZWZ0KSAhPT0gbnVsbCAmJiBfZiAhPT0gdm9pZCAwID8gX2YgOiAwKSxcbiAgICAgICAgICAgICAgICB5OiBsYXN0VG91Y2guY2xpZW50WSAtICgoX2cgPSBjYW52YXNSZWN0ID09PSBudWxsIHx8IGNhbnZhc1JlY3QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNhbnZhc1JlY3QudG9wKSAhPT0gbnVsbCAmJiBfZyAhPT0gdm9pZCAwID8gX2cgOiAwKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcHhSYXRpbyA9IGNvbnRhaW5lci5yZXRpbmEucGl4ZWxSYXRpbztcbiAgICAgICAgaWYgKHBvcykge1xuICAgICAgICAgICAgcG9zLnggKj0gcHhSYXRpbztcbiAgICAgICAgICAgIHBvcy55ICo9IHB4UmF0aW87XG4gICAgICAgIH1cbiAgICAgICAgY29udGFpbmVyLmludGVyYWN0aXZpdHkubW91c2UucG9zaXRpb24gPSBwb3M7XG4gICAgICAgIGNvbnRhaW5lci5pbnRlcmFjdGl2aXR5LnN0YXR1cyA9IENvbnN0YW50c18xLkNvbnN0YW50cy5tb3VzZU1vdmVFdmVudDtcbiAgICB9XG4gICAgbW91c2VUb3VjaEZpbmlzaCgpIHtcbiAgICAgICAgY29uc3QgaW50ZXJhY3Rpdml0eSA9IHRoaXMuY29udGFpbmVyLmludGVyYWN0aXZpdHk7XG4gICAgICAgIGlmIChpbnRlcmFjdGl2aXR5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtb3VzZSA9IGludGVyYWN0aXZpdHkubW91c2U7XG4gICAgICAgIGRlbGV0ZSBtb3VzZS5wb3NpdGlvbjtcbiAgICAgICAgZGVsZXRlIG1vdXNlLmNsaWNrUG9zaXRpb247XG4gICAgICAgIGRlbGV0ZSBtb3VzZS5kb3duUG9zaXRpb247XG4gICAgICAgIGludGVyYWN0aXZpdHkuc3RhdHVzID0gQ29uc3RhbnRzXzEuQ29uc3RhbnRzLm1vdXNlTGVhdmVFdmVudDtcbiAgICAgICAgbW91c2UuaW5zaWRlID0gZmFsc2U7XG4gICAgICAgIG1vdXNlLmNsaWNraW5nID0gZmFsc2U7XG4gICAgfVxuICAgIG1vdXNlVG91Y2hDbGljayhlKSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyO1xuICAgICAgICBjb25zdCBvcHRpb25zID0gY29udGFpbmVyLmFjdHVhbE9wdGlvbnM7XG4gICAgICAgIGNvbnN0IG1vdXNlID0gY29udGFpbmVyLmludGVyYWN0aXZpdHkubW91c2U7XG4gICAgICAgIG1vdXNlLmluc2lkZSA9IHRydWU7XG4gICAgICAgIGxldCBoYW5kbGVkID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IG1vdXNlUG9zaXRpb24gPSBtb3VzZS5wb3NpdGlvbjtcbiAgICAgICAgaWYgKG1vdXNlUG9zaXRpb24gPT09IHVuZGVmaW5lZCB8fCAhb3B0aW9ucy5pbnRlcmFjdGl2aXR5LmV2ZW50cy5vbkNsaWNrLmVuYWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgWywgcGx1Z2luXSBvZiBjb250YWluZXIucGx1Z2lucykge1xuICAgICAgICAgICAgaWYgKHBsdWdpbi5jbGlja1Bvc2l0aW9uVmFsaWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGhhbmRsZWQgPSBwbHVnaW4uY2xpY2tQb3NpdGlvblZhbGlkKG1vdXNlUG9zaXRpb24pO1xuICAgICAgICAgICAgICAgIGlmIChoYW5kbGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIWhhbmRsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZG9Nb3VzZVRvdWNoQ2xpY2soZSk7XG4gICAgICAgIH1cbiAgICAgICAgbW91c2UuY2xpY2tpbmcgPSBmYWxzZTtcbiAgICB9XG4gICAgZG9Nb3VzZVRvdWNoQ2xpY2soZSkge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IGNvbnRhaW5lci5hY3R1YWxPcHRpb25zO1xuICAgICAgICBpZiAodGhpcy5jYW5QdXNoKSB7XG4gICAgICAgICAgICBjb25zdCBtb3VzZVBvcyA9IGNvbnRhaW5lci5pbnRlcmFjdGl2aXR5Lm1vdXNlLnBvc2l0aW9uO1xuICAgICAgICAgICAgaWYgKG1vdXNlUG9zKSB7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLmludGVyYWN0aXZpdHkubW91c2UuY2xpY2tQb3NpdGlvbiA9IHtcbiAgICAgICAgICAgICAgICAgICAgeDogbW91c2VQb3MueCxcbiAgICAgICAgICAgICAgICAgICAgeTogbW91c2VQb3MueSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29udGFpbmVyLmludGVyYWN0aXZpdHkubW91c2UuY2xpY2tUaW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gICAgICAgICAgICBjb25zdCBvbkNsaWNrID0gb3B0aW9ucy5pbnRlcmFjdGl2aXR5LmV2ZW50cy5vbkNsaWNrO1xuICAgICAgICAgICAgaWYgKG9uQ2xpY2subW9kZSBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBtb2RlIG9mIG9uQ2xpY2subW9kZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUNsaWNrTW9kZShtb2RlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUNsaWNrTW9kZShvbkNsaWNrLm1vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChlLnR5cGUgPT09IFwidG91Y2hlbmRcIikge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLm1vdXNlVG91Y2hGaW5pc2goKSwgNTAwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBoYW5kbGVUaGVtZUNoYW5nZShlKSB7XG4gICAgICAgIGNvbnN0IG1lZGlhRXZlbnQgPSBlO1xuICAgICAgICBjb25zdCB0aGVtZU5hbWUgPSBtZWRpYUV2ZW50Lm1hdGNoZXNcbiAgICAgICAgICAgID8gdGhpcy5jb250YWluZXIub3B0aW9ucy5kZWZhdWx0RGFya1RoZW1lXG4gICAgICAgICAgICA6IHRoaXMuY29udGFpbmVyLm9wdGlvbnMuZGVmYXVsdExpZ2h0VGhlbWU7XG4gICAgICAgIGNvbnN0IHRoZW1lID0gdGhpcy5jb250YWluZXIub3B0aW9ucy50aGVtZXMuZmluZCgodGhlbWUpID0+IHRoZW1lLm5hbWUgPT09IHRoZW1lTmFtZSk7XG4gICAgICAgIGlmICh0aGVtZSAmJiB0aGVtZS5kZWZhdWx0LmF1dG8pIHtcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLmxvYWRUaGVtZSh0aGVtZU5hbWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGhhbmRsZUNsaWNrTW9kZShtb2RlKSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyO1xuICAgICAgICBjb25zdCBvcHRpb25zID0gY29udGFpbmVyLmFjdHVhbE9wdGlvbnM7XG4gICAgICAgIGNvbnN0IHB1c2hOYiA9IG9wdGlvbnMuaW50ZXJhY3Rpdml0eS5tb2Rlcy5wdXNoLnF1YW50aXR5O1xuICAgICAgICBjb25zdCByZW1vdmVOYiA9IG9wdGlvbnMuaW50ZXJhY3Rpdml0eS5tb2Rlcy5yZW1vdmUucXVhbnRpdHk7XG4gICAgICAgIHN3aXRjaCAobW9kZSkge1xuICAgICAgICAgICAgY2FzZSBFbnVtc18xLkNsaWNrTW9kZS5wdXNoOiB7XG4gICAgICAgICAgICAgICAgaWYgKHB1c2hOYiA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHVzaE9wdGlvbnMgPSBvcHRpb25zLmludGVyYWN0aXZpdHkubW9kZXMucHVzaDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSAoMCwgVXRpbHNfMS5pdGVtRnJvbUFycmF5KShbdW5kZWZpbmVkLCAuLi5wdXNoT3B0aW9ucy5ncm91cHNdKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ3JvdXBPcHRpb25zID0gZ3JvdXAgIT09IHVuZGVmaW5lZCA/IGNvbnRhaW5lci5hY3R1YWxPcHRpb25zLnBhcnRpY2xlcy5ncm91cHNbZ3JvdXBdIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICBjb250YWluZXIucGFydGljbGVzLnB1c2gocHVzaE5iLCBjb250YWluZXIuaW50ZXJhY3Rpdml0eS5tb3VzZSwgZ3JvdXBPcHRpb25zLCBncm91cCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBFbnVtc18xLkNsaWNrTW9kZS5yZW1vdmU6XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLnBhcnRpY2xlcy5yZW1vdmVRdWFudGl0eShyZW1vdmVOYik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEVudW1zXzEuQ2xpY2tNb2RlLmJ1YmJsZTpcbiAgICAgICAgICAgICAgICBjb250YWluZXIuYnViYmxlLmNsaWNraW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRW51bXNfMS5DbGlja01vZGUucmVwdWxzZTpcbiAgICAgICAgICAgICAgICBjb250YWluZXIucmVwdWxzZS5jbGlja2luZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLnJlcHVsc2UuY291bnQgPSAwO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcGFydGljbGUgb2YgY29udGFpbmVyLnJlcHVsc2UucGFydGljbGVzKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhcnRpY2xlLnZlbG9jaXR5LnNldFRvKHBhcnRpY2xlLmluaXRpYWxWZWxvY2l0eSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnRhaW5lci5yZXB1bHNlLnBhcnRpY2xlcyA9IFtdO1xuICAgICAgICAgICAgICAgIGNvbnRhaW5lci5yZXB1bHNlLmZpbmlzaCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbnRhaW5lci5kZXN0cm95ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lci5yZXB1bHNlLmNsaWNraW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LCBvcHRpb25zLmludGVyYWN0aXZpdHkubW9kZXMucmVwdWxzZS5kdXJhdGlvbiAqIDEwMDApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBFbnVtc18xLkNsaWNrTW9kZS5hdHRyYWN0OlxuICAgICAgICAgICAgICAgIGNvbnRhaW5lci5hdHRyYWN0LmNsaWNraW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBjb250YWluZXIuYXR0cmFjdC5jb3VudCA9IDA7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBwYXJ0aWNsZSBvZiBjb250YWluZXIuYXR0cmFjdC5wYXJ0aWNsZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFydGljbGUudmVsb2NpdHkuc2V0VG8ocGFydGljbGUuaW5pdGlhbFZlbG9jaXR5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLmF0dHJhY3QucGFydGljbGVzID0gW107XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLmF0dHJhY3QuZmluaXNoID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghY29udGFpbmVyLmRlc3Ryb3llZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyLmF0dHJhY3QuY2xpY2tpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sIG9wdGlvbnMuaW50ZXJhY3Rpdml0eS5tb2Rlcy5hdHRyYWN0LmR1cmF0aW9uICogMTAwMCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEVudW1zXzEuQ2xpY2tNb2RlLnBhdXNlOlxuICAgICAgICAgICAgICAgIGlmIChjb250YWluZXIuZ2V0QW5pbWF0aW9uU3RhdHVzKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyLnBhdXNlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb250YWluZXIucGxheSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IFssIHBsdWdpbl0gb2YgY29udGFpbmVyLnBsdWdpbnMpIHtcbiAgICAgICAgICAgIGlmIChwbHVnaW4uaGFuZGxlQ2xpY2tNb2RlKSB7XG4gICAgICAgICAgICAgICAgcGx1Z2luLmhhbmRsZUNsaWNrTW9kZShtb2RlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuRXZlbnRMaXN0ZW5lcnMgPSBFdmVudExpc3RlbmVycztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Utils/EventListeners.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Utils/NumberUtils.js": +/*!*******************************************************!*\ + !*** ./node_modules/tsparticles/Utils/NumberUtils.js ***! + \*******************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.calcEasing = exports.collisionVelocity = exports.getParticleBaseVelocity = exports.getParticleDirectionAngle = exports.getDistance = exports.getDistances = exports.getValue = exports.setRangeValue = exports.getRangeMax = exports.getRangeMin = exports.getRangeValue = exports.randomInRange = exports.mix = exports.clamp = void 0;\nconst Enums_1 = __webpack_require__(/*! ../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst Vector_1 = __webpack_require__(/*! ../Core/Particle/Vector */ \"./node_modules/tsparticles/Core/Particle/Vector.js\");\nfunction clamp(num, min, max) {\n return Math.min(Math.max(num, min), max);\n}\nexports.clamp = clamp;\nfunction mix(comp1, comp2, weight1, weight2) {\n return Math.floor((comp1 * weight1 + comp2 * weight2) / (weight1 + weight2));\n}\nexports.mix = mix;\nfunction randomInRange(r) {\n const max = getRangeMax(r);\n let min = getRangeMin(r);\n if (max === min) {\n min = 0;\n }\n return Math.random() * (max - min) + min;\n}\nexports.randomInRange = randomInRange;\nfunction getRangeValue(value) {\n return typeof value === \"number\" ? value : randomInRange(value);\n}\nexports.getRangeValue = getRangeValue;\nfunction getRangeMin(value) {\n return typeof value === \"number\" ? value : value.min;\n}\nexports.getRangeMin = getRangeMin;\nfunction getRangeMax(value) {\n return typeof value === \"number\" ? value : value.max;\n}\nexports.getRangeMax = getRangeMax;\nfunction setRangeValue(source, value) {\n if (source === value || (value === undefined && typeof source === \"number\")) {\n return source;\n }\n const min = getRangeMin(source), max = getRangeMax(source);\n return value !== undefined\n ? {\n min: Math.min(min, value),\n max: Math.max(max, value),\n }\n : setRangeValue(min, max);\n}\nexports.setRangeValue = setRangeValue;\nfunction getValue(options) {\n const random = options.random;\n const { enable, minimumValue } = typeof random === \"boolean\" ? { enable: random, minimumValue: 0 } : random;\n return enable ? getRangeValue(setRangeValue(options.value, minimumValue)) : getRangeValue(options.value);\n}\nexports.getValue = getValue;\nfunction getDistances(pointA, pointB) {\n const dx = pointA.x - pointB.x;\n const dy = pointA.y - pointB.y;\n return { dx: dx, dy: dy, distance: Math.sqrt(dx * dx + dy * dy) };\n}\nexports.getDistances = getDistances;\nfunction getDistance(pointA, pointB) {\n return getDistances(pointA, pointB).distance;\n}\nexports.getDistance = getDistance;\nfunction getParticleDirectionAngle(direction) {\n if (typeof direction === \"number\") {\n return (direction * Math.PI) / 180;\n }\n else {\n switch (direction) {\n case Enums_1.MoveDirection.top:\n return -Math.PI / 2;\n case Enums_1.MoveDirection.topRight:\n return -Math.PI / 4;\n case Enums_1.MoveDirection.right:\n return 0;\n case Enums_1.MoveDirection.bottomRight:\n return Math.PI / 4;\n case Enums_1.MoveDirection.bottom:\n return Math.PI / 2;\n case Enums_1.MoveDirection.bottomLeft:\n return (3 * Math.PI) / 4;\n case Enums_1.MoveDirection.left:\n return Math.PI;\n case Enums_1.MoveDirection.topLeft:\n return (-3 * Math.PI) / 4;\n case Enums_1.MoveDirection.none:\n default:\n return Math.random() * Math.PI * 2;\n }\n }\n}\nexports.getParticleDirectionAngle = getParticleDirectionAngle;\nfunction getParticleBaseVelocity(direction) {\n const baseVelocity = Vector_1.Vector.origin;\n baseVelocity.length = 1;\n baseVelocity.angle = direction;\n return baseVelocity;\n}\nexports.getParticleBaseVelocity = getParticleBaseVelocity;\nfunction collisionVelocity(v1, v2, m1, m2) {\n return Vector_1.Vector.create((v1.x * (m1 - m2)) / (m1 + m2) + (v2.x * 2 * m2) / (m1 + m2), v1.y);\n}\nexports.collisionVelocity = collisionVelocity;\nfunction calcEasing(value, type) {\n switch (type) {\n case Enums_1.EasingType.easeOutQuad:\n return 1 - (1 - value) ** 2;\n case Enums_1.EasingType.easeOutCubic:\n return 1 - (1 - value) ** 3;\n case Enums_1.EasingType.easeOutQuart:\n return 1 - (1 - value) ** 4;\n case Enums_1.EasingType.easeOutQuint:\n return 1 - (1 - value) ** 5;\n case Enums_1.EasingType.easeOutExpo:\n return value === 1 ? 1 : 1 - Math.pow(2, -10 * value);\n case Enums_1.EasingType.easeOutSine:\n return Math.sin((value * Math.PI) / 2);\n case Enums_1.EasingType.easeOutBack: {\n const c1 = 1.70158;\n const c3 = c1 + 1;\n return 1 + c3 * Math.pow(value - 1, 3) + c1 * Math.pow(value - 1, 2);\n }\n case Enums_1.EasingType.easeOutCirc:\n return Math.sqrt(1 - Math.pow(value - 1, 2));\n default:\n return value;\n }\n}\nexports.calcEasing = calcEasing;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXRpbHMvTnVtYmVyVXRpbHMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsa0JBQWtCLEdBQUcseUJBQXlCLEdBQUcsK0JBQStCLEdBQUcsaUNBQWlDLEdBQUcsbUJBQW1CLEdBQUcsb0JBQW9CLEdBQUcsZ0JBQWdCLEdBQUcscUJBQXFCLEdBQUcsbUJBQW1CLEdBQUcsbUJBQW1CLEdBQUcscUJBQXFCLEdBQUcscUJBQXFCLEdBQUcsV0FBVyxHQUFHLGFBQWE7QUFDdFUsZ0JBQWdCLG1CQUFPLENBQUMsMkRBQVU7QUFDbEMsaUJBQWlCLG1CQUFPLENBQUMsbUZBQXlCO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CO0FBQ25CO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQjtBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBLFlBQVksdUJBQXVCLGtDQUFrQyxrQ0FBa0M7QUFDdkc7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSxvQkFBb0I7QUFDcEI7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtCQUErQjtBQUMvQjtBQUNBO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1V0aWxzL051bWJlclV0aWxzLmpzP2Q0MmQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmNhbGNFYXNpbmcgPSBleHBvcnRzLmNvbGxpc2lvblZlbG9jaXR5ID0gZXhwb3J0cy5nZXRQYXJ0aWNsZUJhc2VWZWxvY2l0eSA9IGV4cG9ydHMuZ2V0UGFydGljbGVEaXJlY3Rpb25BbmdsZSA9IGV4cG9ydHMuZ2V0RGlzdGFuY2UgPSBleHBvcnRzLmdldERpc3RhbmNlcyA9IGV4cG9ydHMuZ2V0VmFsdWUgPSBleHBvcnRzLnNldFJhbmdlVmFsdWUgPSBleHBvcnRzLmdldFJhbmdlTWF4ID0gZXhwb3J0cy5nZXRSYW5nZU1pbiA9IGV4cG9ydHMuZ2V0UmFuZ2VWYWx1ZSA9IGV4cG9ydHMucmFuZG9tSW5SYW5nZSA9IGV4cG9ydHMubWl4ID0gZXhwb3J0cy5jbGFtcCA9IHZvaWQgMDtcbmNvbnN0IEVudW1zXzEgPSByZXF1aXJlKFwiLi4vRW51bXNcIik7XG5jb25zdCBWZWN0b3JfMSA9IHJlcXVpcmUoXCIuLi9Db3JlL1BhcnRpY2xlL1ZlY3RvclwiKTtcbmZ1bmN0aW9uIGNsYW1wKG51bSwgbWluLCBtYXgpIHtcbiAgICByZXR1cm4gTWF0aC5taW4oTWF0aC5tYXgobnVtLCBtaW4pLCBtYXgpO1xufVxuZXhwb3J0cy5jbGFtcCA9IGNsYW1wO1xuZnVuY3Rpb24gbWl4KGNvbXAxLCBjb21wMiwgd2VpZ2h0MSwgd2VpZ2h0Mikge1xuICAgIHJldHVybiBNYXRoLmZsb29yKChjb21wMSAqIHdlaWdodDEgKyBjb21wMiAqIHdlaWdodDIpIC8gKHdlaWdodDEgKyB3ZWlnaHQyKSk7XG59XG5leHBvcnRzLm1peCA9IG1peDtcbmZ1bmN0aW9uIHJhbmRvbUluUmFuZ2Uocikge1xuICAgIGNvbnN0IG1heCA9IGdldFJhbmdlTWF4KHIpO1xuICAgIGxldCBtaW4gPSBnZXRSYW5nZU1pbihyKTtcbiAgICBpZiAobWF4ID09PSBtaW4pIHtcbiAgICAgICAgbWluID0gMDtcbiAgICB9XG4gICAgcmV0dXJuIE1hdGgucmFuZG9tKCkgKiAobWF4IC0gbWluKSArIG1pbjtcbn1cbmV4cG9ydHMucmFuZG9tSW5SYW5nZSA9IHJhbmRvbUluUmFuZ2U7XG5mdW5jdGlvbiBnZXRSYW5nZVZhbHVlKHZhbHVlKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIiA/IHZhbHVlIDogcmFuZG9tSW5SYW5nZSh2YWx1ZSk7XG59XG5leHBvcnRzLmdldFJhbmdlVmFsdWUgPSBnZXRSYW5nZVZhbHVlO1xuZnVuY3Rpb24gZ2V0UmFuZ2VNaW4odmFsdWUpIHtcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiID8gdmFsdWUgOiB2YWx1ZS5taW47XG59XG5leHBvcnRzLmdldFJhbmdlTWluID0gZ2V0UmFuZ2VNaW47XG5mdW5jdGlvbiBnZXRSYW5nZU1heCh2YWx1ZSkge1xuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIgPyB2YWx1ZSA6IHZhbHVlLm1heDtcbn1cbmV4cG9ydHMuZ2V0UmFuZ2VNYXggPSBnZXRSYW5nZU1heDtcbmZ1bmN0aW9uIHNldFJhbmdlVmFsdWUoc291cmNlLCB2YWx1ZSkge1xuICAgIGlmIChzb3VyY2UgPT09IHZhbHVlIHx8ICh2YWx1ZSA9PT0gdW5kZWZpbmVkICYmIHR5cGVvZiBzb3VyY2UgPT09IFwibnVtYmVyXCIpKSB7XG4gICAgICAgIHJldHVybiBzb3VyY2U7XG4gICAgfVxuICAgIGNvbnN0IG1pbiA9IGdldFJhbmdlTWluKHNvdXJjZSksIG1heCA9IGdldFJhbmdlTWF4KHNvdXJjZSk7XG4gICAgcmV0dXJuIHZhbHVlICE9PSB1bmRlZmluZWRcbiAgICAgICAgPyB7XG4gICAgICAgICAgICBtaW46IE1hdGgubWluKG1pbiwgdmFsdWUpLFxuICAgICAgICAgICAgbWF4OiBNYXRoLm1heChtYXgsIHZhbHVlKSxcbiAgICAgICAgfVxuICAgICAgICA6IHNldFJhbmdlVmFsdWUobWluLCBtYXgpO1xufVxuZXhwb3J0cy5zZXRSYW5nZVZhbHVlID0gc2V0UmFuZ2VWYWx1ZTtcbmZ1bmN0aW9uIGdldFZhbHVlKG9wdGlvbnMpIHtcbiAgICBjb25zdCByYW5kb20gPSBvcHRpb25zLnJhbmRvbTtcbiAgICBjb25zdCB7IGVuYWJsZSwgbWluaW11bVZhbHVlIH0gPSB0eXBlb2YgcmFuZG9tID09PSBcImJvb2xlYW5cIiA/IHsgZW5hYmxlOiByYW5kb20sIG1pbmltdW1WYWx1ZTogMCB9IDogcmFuZG9tO1xuICAgIHJldHVybiBlbmFibGUgPyBnZXRSYW5nZVZhbHVlKHNldFJhbmdlVmFsdWUob3B0aW9ucy52YWx1ZSwgbWluaW11bVZhbHVlKSkgOiBnZXRSYW5nZVZhbHVlKG9wdGlvbnMudmFsdWUpO1xufVxuZXhwb3J0cy5nZXRWYWx1ZSA9IGdldFZhbHVlO1xuZnVuY3Rpb24gZ2V0RGlzdGFuY2VzKHBvaW50QSwgcG9pbnRCKSB7XG4gICAgY29uc3QgZHggPSBwb2ludEEueCAtIHBvaW50Qi54O1xuICAgIGNvbnN0IGR5ID0gcG9pbnRBLnkgLSBwb2ludEIueTtcbiAgICByZXR1cm4geyBkeDogZHgsIGR5OiBkeSwgZGlzdGFuY2U6IE1hdGguc3FydChkeCAqIGR4ICsgZHkgKiBkeSkgfTtcbn1cbmV4cG9ydHMuZ2V0RGlzdGFuY2VzID0gZ2V0RGlzdGFuY2VzO1xuZnVuY3Rpb24gZ2V0RGlzdGFuY2UocG9pbnRBLCBwb2ludEIpIHtcbiAgICByZXR1cm4gZ2V0RGlzdGFuY2VzKHBvaW50QSwgcG9pbnRCKS5kaXN0YW5jZTtcbn1cbmV4cG9ydHMuZ2V0RGlzdGFuY2UgPSBnZXREaXN0YW5jZTtcbmZ1bmN0aW9uIGdldFBhcnRpY2xlRGlyZWN0aW9uQW5nbGUoZGlyZWN0aW9uKSB7XG4gICAgaWYgKHR5cGVvZiBkaXJlY3Rpb24gPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgcmV0dXJuIChkaXJlY3Rpb24gKiBNYXRoLlBJKSAvIDE4MDtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7XG4gICAgICAgICAgICBjYXNlIEVudW1zXzEuTW92ZURpcmVjdGlvbi50b3A6XG4gICAgICAgICAgICAgICAgcmV0dXJuIC1NYXRoLlBJIC8gMjtcbiAgICAgICAgICAgIGNhc2UgRW51bXNfMS5Nb3ZlRGlyZWN0aW9uLnRvcFJpZ2h0OlxuICAgICAgICAgICAgICAgIHJldHVybiAtTWF0aC5QSSAvIDQ7XG4gICAgICAgICAgICBjYXNlIEVudW1zXzEuTW92ZURpcmVjdGlvbi5yaWdodDpcbiAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgIGNhc2UgRW51bXNfMS5Nb3ZlRGlyZWN0aW9uLmJvdHRvbVJpZ2h0OlxuICAgICAgICAgICAgICAgIHJldHVybiBNYXRoLlBJIC8gNDtcbiAgICAgICAgICAgIGNhc2UgRW51bXNfMS5Nb3ZlRGlyZWN0aW9uLmJvdHRvbTpcbiAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5QSSAvIDI7XG4gICAgICAgICAgICBjYXNlIEVudW1zXzEuTW92ZURpcmVjdGlvbi5ib3R0b21MZWZ0OlxuICAgICAgICAgICAgICAgIHJldHVybiAoMyAqIE1hdGguUEkpIC8gNDtcbiAgICAgICAgICAgIGNhc2UgRW51bXNfMS5Nb3ZlRGlyZWN0aW9uLmxlZnQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE1hdGguUEk7XG4gICAgICAgICAgICBjYXNlIEVudW1zXzEuTW92ZURpcmVjdGlvbi50b3BMZWZ0OlxuICAgICAgICAgICAgICAgIHJldHVybiAoLTMgKiBNYXRoLlBJKSAvIDQ7XG4gICAgICAgICAgICBjYXNlIEVudW1zXzEuTW92ZURpcmVjdGlvbi5ub25lOlxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5yYW5kb20oKSAqIE1hdGguUEkgKiAyO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5nZXRQYXJ0aWNsZURpcmVjdGlvbkFuZ2xlID0gZ2V0UGFydGljbGVEaXJlY3Rpb25BbmdsZTtcbmZ1bmN0aW9uIGdldFBhcnRpY2xlQmFzZVZlbG9jaXR5KGRpcmVjdGlvbikge1xuICAgIGNvbnN0IGJhc2VWZWxvY2l0eSA9IFZlY3Rvcl8xLlZlY3Rvci5vcmlnaW47XG4gICAgYmFzZVZlbG9jaXR5Lmxlbmd0aCA9IDE7XG4gICAgYmFzZVZlbG9jaXR5LmFuZ2xlID0gZGlyZWN0aW9uO1xuICAgIHJldHVybiBiYXNlVmVsb2NpdHk7XG59XG5leHBvcnRzLmdldFBhcnRpY2xlQmFzZVZlbG9jaXR5ID0gZ2V0UGFydGljbGVCYXNlVmVsb2NpdHk7XG5mdW5jdGlvbiBjb2xsaXNpb25WZWxvY2l0eSh2MSwgdjIsIG0xLCBtMikge1xuICAgIHJldHVybiBWZWN0b3JfMS5WZWN0b3IuY3JlYXRlKCh2MS54ICogKG0xIC0gbTIpKSAvIChtMSArIG0yKSArICh2Mi54ICogMiAqIG0yKSAvIChtMSArIG0yKSwgdjEueSk7XG59XG5leHBvcnRzLmNvbGxpc2lvblZlbG9jaXR5ID0gY29sbGlzaW9uVmVsb2NpdHk7XG5mdW5jdGlvbiBjYWxjRWFzaW5nKHZhbHVlLCB0eXBlKSB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgRW51bXNfMS5FYXNpbmdUeXBlLmVhc2VPdXRRdWFkOlxuICAgICAgICAgICAgcmV0dXJuIDEgLSAoMSAtIHZhbHVlKSAqKiAyO1xuICAgICAgICBjYXNlIEVudW1zXzEuRWFzaW5nVHlwZS5lYXNlT3V0Q3ViaWM6XG4gICAgICAgICAgICByZXR1cm4gMSAtICgxIC0gdmFsdWUpICoqIDM7XG4gICAgICAgIGNhc2UgRW51bXNfMS5FYXNpbmdUeXBlLmVhc2VPdXRRdWFydDpcbiAgICAgICAgICAgIHJldHVybiAxIC0gKDEgLSB2YWx1ZSkgKiogNDtcbiAgICAgICAgY2FzZSBFbnVtc18xLkVhc2luZ1R5cGUuZWFzZU91dFF1aW50OlxuICAgICAgICAgICAgcmV0dXJuIDEgLSAoMSAtIHZhbHVlKSAqKiA1O1xuICAgICAgICBjYXNlIEVudW1zXzEuRWFzaW5nVHlwZS5lYXNlT3V0RXhwbzpcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZSA9PT0gMSA/IDEgOiAxIC0gTWF0aC5wb3coMiwgLTEwICogdmFsdWUpO1xuICAgICAgICBjYXNlIEVudW1zXzEuRWFzaW5nVHlwZS5lYXNlT3V0U2luZTpcbiAgICAgICAgICAgIHJldHVybiBNYXRoLnNpbigodmFsdWUgKiBNYXRoLlBJKSAvIDIpO1xuICAgICAgICBjYXNlIEVudW1zXzEuRWFzaW5nVHlwZS5lYXNlT3V0QmFjazoge1xuICAgICAgICAgICAgY29uc3QgYzEgPSAxLjcwMTU4O1xuICAgICAgICAgICAgY29uc3QgYzMgPSBjMSArIDE7XG4gICAgICAgICAgICByZXR1cm4gMSArIGMzICogTWF0aC5wb3codmFsdWUgLSAxLCAzKSArIGMxICogTWF0aC5wb3codmFsdWUgLSAxLCAyKTtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIEVudW1zXzEuRWFzaW5nVHlwZS5lYXNlT3V0Q2lyYzpcbiAgICAgICAgICAgIHJldHVybiBNYXRoLnNxcnQoMSAtIE1hdGgucG93KHZhbHVlIC0gMSwgMikpO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbn1cbmV4cG9ydHMuY2FsY0Vhc2luZyA9IGNhbGNFYXNpbmc7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Utils/NumberUtils.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Utils/Plugins.js": +/*!***************************************************!*\ + !*** ./node_modules/tsparticles/Utils/Plugins.js ***! + \***************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Plugins = void 0;\nconst plugins = [];\nconst interactorsInitializers = new Map();\nconst updatersInitializers = new Map();\nconst interactors = new Map();\nconst updaters = new Map();\nconst presets = new Map();\nconst drawers = new Map();\nconst pathGenerators = new Map();\nclass Plugins {\n static getPlugin(plugin) {\n return plugins.find((t) => t.id === plugin);\n }\n static addPlugin(plugin) {\n if (!Plugins.getPlugin(plugin.id)) {\n plugins.push(plugin);\n }\n }\n static getAvailablePlugins(container) {\n const res = new Map();\n for (const plugin of plugins) {\n if (!plugin.needsPlugin(container.actualOptions)) {\n continue;\n }\n res.set(plugin.id, plugin.getPlugin(container));\n }\n return res;\n }\n static loadOptions(options, sourceOptions) {\n for (const plugin of plugins) {\n plugin.loadOptions(options, sourceOptions);\n }\n }\n static getPreset(preset) {\n return presets.get(preset);\n }\n static addPreset(presetKey, options, override = false) {\n if (override || !Plugins.getPreset(presetKey)) {\n presets.set(presetKey, options);\n }\n }\n static addShapeDrawer(type, drawer) {\n if (!Plugins.getShapeDrawer(type)) {\n drawers.set(type, drawer);\n }\n }\n static getShapeDrawer(type) {\n return drawers.get(type);\n }\n static getSupportedShapes() {\n return drawers.keys();\n }\n static getPathGenerator(type) {\n return pathGenerators.get(type);\n }\n static addPathGenerator(type, pathGenerator) {\n if (!Plugins.getPathGenerator(type)) {\n pathGenerators.set(type, pathGenerator);\n }\n }\n static getInteractors(container, force = false) {\n let res = interactors.get(container);\n if (!res || force) {\n res = [...interactorsInitializers.values()].map((t) => t(container));\n interactors.set(container, res);\n }\n return res;\n }\n static addInteractor(name, initInteractor) {\n interactorsInitializers.set(name, initInteractor);\n }\n static getUpdaters(container, force = false) {\n let res = updaters.get(container);\n if (!res || force) {\n res = [...updatersInitializers.values()].map((t) => t(container));\n updaters.set(container, res);\n }\n return res;\n }\n static addParticleUpdater(name, initUpdater) {\n updatersInitializers.set(name, initUpdater);\n }\n}\nexports.Plugins = Plugins;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXRpbHMvUGx1Z2lucy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxlQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9VdGlscy9QbHVnaW5zLmpzP2I2MGIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlBsdWdpbnMgPSB2b2lkIDA7XG5jb25zdCBwbHVnaW5zID0gW107XG5jb25zdCBpbnRlcmFjdG9yc0luaXRpYWxpemVycyA9IG5ldyBNYXAoKTtcbmNvbnN0IHVwZGF0ZXJzSW5pdGlhbGl6ZXJzID0gbmV3IE1hcCgpO1xuY29uc3QgaW50ZXJhY3RvcnMgPSBuZXcgTWFwKCk7XG5jb25zdCB1cGRhdGVycyA9IG5ldyBNYXAoKTtcbmNvbnN0IHByZXNldHMgPSBuZXcgTWFwKCk7XG5jb25zdCBkcmF3ZXJzID0gbmV3IE1hcCgpO1xuY29uc3QgcGF0aEdlbmVyYXRvcnMgPSBuZXcgTWFwKCk7XG5jbGFzcyBQbHVnaW5zIHtcbiAgICBzdGF0aWMgZ2V0UGx1Z2luKHBsdWdpbikge1xuICAgICAgICByZXR1cm4gcGx1Z2lucy5maW5kKCh0KSA9PiB0LmlkID09PSBwbHVnaW4pO1xuICAgIH1cbiAgICBzdGF0aWMgYWRkUGx1Z2luKHBsdWdpbikge1xuICAgICAgICBpZiAoIVBsdWdpbnMuZ2V0UGx1Z2luKHBsdWdpbi5pZCkpIHtcbiAgICAgICAgICAgIHBsdWdpbnMucHVzaChwbHVnaW4pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHN0YXRpYyBnZXRBdmFpbGFibGVQbHVnaW5zKGNvbnRhaW5lcikge1xuICAgICAgICBjb25zdCByZXMgPSBuZXcgTWFwKCk7XG4gICAgICAgIGZvciAoY29uc3QgcGx1Z2luIG9mIHBsdWdpbnMpIHtcbiAgICAgICAgICAgIGlmICghcGx1Z2luLm5lZWRzUGx1Z2luKGNvbnRhaW5lci5hY3R1YWxPcHRpb25zKSkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzLnNldChwbHVnaW4uaWQsIHBsdWdpbi5nZXRQbHVnaW4oY29udGFpbmVyKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG4gICAgc3RhdGljIGxvYWRPcHRpb25zKG9wdGlvbnMsIHNvdXJjZU9wdGlvbnMpIHtcbiAgICAgICAgZm9yIChjb25zdCBwbHVnaW4gb2YgcGx1Z2lucykge1xuICAgICAgICAgICAgcGx1Z2luLmxvYWRPcHRpb25zKG9wdGlvbnMsIHNvdXJjZU9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHN0YXRpYyBnZXRQcmVzZXQocHJlc2V0KSB7XG4gICAgICAgIHJldHVybiBwcmVzZXRzLmdldChwcmVzZXQpO1xuICAgIH1cbiAgICBzdGF0aWMgYWRkUHJlc2V0KHByZXNldEtleSwgb3B0aW9ucywgb3ZlcnJpZGUgPSBmYWxzZSkge1xuICAgICAgICBpZiAob3ZlcnJpZGUgfHwgIVBsdWdpbnMuZ2V0UHJlc2V0KHByZXNldEtleSkpIHtcbiAgICAgICAgICAgIHByZXNldHMuc2V0KHByZXNldEtleSwgb3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3RhdGljIGFkZFNoYXBlRHJhd2VyKHR5cGUsIGRyYXdlcikge1xuICAgICAgICBpZiAoIVBsdWdpbnMuZ2V0U2hhcGVEcmF3ZXIodHlwZSkpIHtcbiAgICAgICAgICAgIGRyYXdlcnMuc2V0KHR5cGUsIGRyYXdlcik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3RhdGljIGdldFNoYXBlRHJhd2VyKHR5cGUpIHtcbiAgICAgICAgcmV0dXJuIGRyYXdlcnMuZ2V0KHR5cGUpO1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0U3VwcG9ydGVkU2hhcGVzKCkge1xuICAgICAgICByZXR1cm4gZHJhd2Vycy5rZXlzKCk7XG4gICAgfVxuICAgIHN0YXRpYyBnZXRQYXRoR2VuZXJhdG9yKHR5cGUpIHtcbiAgICAgICAgcmV0dXJuIHBhdGhHZW5lcmF0b3JzLmdldCh0eXBlKTtcbiAgICB9XG4gICAgc3RhdGljIGFkZFBhdGhHZW5lcmF0b3IodHlwZSwgcGF0aEdlbmVyYXRvcikge1xuICAgICAgICBpZiAoIVBsdWdpbnMuZ2V0UGF0aEdlbmVyYXRvcih0eXBlKSkge1xuICAgICAgICAgICAgcGF0aEdlbmVyYXRvcnMuc2V0KHR5cGUsIHBhdGhHZW5lcmF0b3IpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHN0YXRpYyBnZXRJbnRlcmFjdG9ycyhjb250YWluZXIsIGZvcmNlID0gZmFsc2UpIHtcbiAgICAgICAgbGV0IHJlcyA9IGludGVyYWN0b3JzLmdldChjb250YWluZXIpO1xuICAgICAgICBpZiAoIXJlcyB8fCBmb3JjZSkge1xuICAgICAgICAgICAgcmVzID0gWy4uLmludGVyYWN0b3JzSW5pdGlhbGl6ZXJzLnZhbHVlcygpXS5tYXAoKHQpID0+IHQoY29udGFpbmVyKSk7XG4gICAgICAgICAgICBpbnRlcmFjdG9ycy5zZXQoY29udGFpbmVyLCByZXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuICAgIHN0YXRpYyBhZGRJbnRlcmFjdG9yKG5hbWUsIGluaXRJbnRlcmFjdG9yKSB7XG4gICAgICAgIGludGVyYWN0b3JzSW5pdGlhbGl6ZXJzLnNldChuYW1lLCBpbml0SW50ZXJhY3Rvcik7XG4gICAgfVxuICAgIHN0YXRpYyBnZXRVcGRhdGVycyhjb250YWluZXIsIGZvcmNlID0gZmFsc2UpIHtcbiAgICAgICAgbGV0IHJlcyA9IHVwZGF0ZXJzLmdldChjb250YWluZXIpO1xuICAgICAgICBpZiAoIXJlcyB8fCBmb3JjZSkge1xuICAgICAgICAgICAgcmVzID0gWy4uLnVwZGF0ZXJzSW5pdGlhbGl6ZXJzLnZhbHVlcygpXS5tYXAoKHQpID0+IHQoY29udGFpbmVyKSk7XG4gICAgICAgICAgICB1cGRhdGVycy5zZXQoY29udGFpbmVyLCByZXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuICAgIHN0YXRpYyBhZGRQYXJ0aWNsZVVwZGF0ZXIobmFtZSwgaW5pdFVwZGF0ZXIpIHtcbiAgICAgICAgdXBkYXRlcnNJbml0aWFsaXplcnMuc2V0KG5hbWUsIGluaXRVcGRhdGVyKTtcbiAgICB9XG59XG5leHBvcnRzLlBsdWdpbnMgPSBQbHVnaW5zO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Utils/Plugins.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Utils/Point.js": +/*!*************************************************!*\ + !*** ./node_modules/tsparticles/Utils/Point.js ***! + \*************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Point = void 0;\nclass Point {\n constructor(position, particle) {\n this.position = position;\n this.particle = particle;\n }\n}\nexports.Point = Point;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXRpbHMvUG9pbnQuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1V0aWxzL1BvaW50LmpzP2Q1NTQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlBvaW50ID0gdm9pZCAwO1xuY2xhc3MgUG9pbnQge1xuICAgIGNvbnN0cnVjdG9yKHBvc2l0aW9uLCBwYXJ0aWNsZSkge1xuICAgICAgICB0aGlzLnBvc2l0aW9uID0gcG9zaXRpb247XG4gICAgICAgIHRoaXMucGFydGljbGUgPSBwYXJ0aWNsZTtcbiAgICB9XG59XG5leHBvcnRzLlBvaW50ID0gUG9pbnQ7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Utils/Point.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Utils/QuadTree.js": +/*!****************************************************!*\ + !*** ./node_modules/tsparticles/Utils/QuadTree.js ***! + \****************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.QuadTree = void 0;\nconst Rectangle_1 = __webpack_require__(/*! ./Rectangle */ \"./node_modules/tsparticles/Utils/Rectangle.js\");\nconst Circle_1 = __webpack_require__(/*! ./Circle */ \"./node_modules/tsparticles/Utils/Circle.js\");\nconst CircleWarp_1 = __webpack_require__(/*! ./CircleWarp */ \"./node_modules/tsparticles/Utils/CircleWarp.js\");\nconst NumberUtils_1 = __webpack_require__(/*! ./NumberUtils */ \"./node_modules/tsparticles/Utils/NumberUtils.js\");\nclass QuadTree {\n constructor(rectangle, capacity) {\n this.rectangle = rectangle;\n this.capacity = capacity;\n this.points = [];\n this.divided = false;\n }\n subdivide() {\n const x = this.rectangle.position.x;\n const y = this.rectangle.position.y;\n const w = this.rectangle.size.width;\n const h = this.rectangle.size.height;\n const capacity = this.capacity;\n this.northEast = new QuadTree(new Rectangle_1.Rectangle(x, y, w / 2, h / 2), capacity);\n this.northWest = new QuadTree(new Rectangle_1.Rectangle(x + w / 2, y, w / 2, h / 2), capacity);\n this.southEast = new QuadTree(new Rectangle_1.Rectangle(x, y + h / 2, w / 2, h / 2), capacity);\n this.southWest = new QuadTree(new Rectangle_1.Rectangle(x + w / 2, y + h / 2, w / 2, h / 2), capacity);\n this.divided = true;\n }\n insert(point) {\n var _a, _b, _c, _d, _e;\n if (!this.rectangle.contains(point.position)) {\n return false;\n }\n if (this.points.length < this.capacity) {\n this.points.push(point);\n return true;\n }\n if (!this.divided) {\n this.subdivide();\n }\n return ((_e = (((_a = this.northEast) === null || _a === void 0 ? void 0 : _a.insert(point)) ||\n ((_b = this.northWest) === null || _b === void 0 ? void 0 : _b.insert(point)) ||\n ((_c = this.southEast) === null || _c === void 0 ? void 0 : _c.insert(point)) ||\n ((_d = this.southWest) === null || _d === void 0 ? void 0 : _d.insert(point)))) !== null && _e !== void 0 ? _e : false);\n }\n queryCircle(position, radius) {\n return this.query(new Circle_1.Circle(position.x, position.y, radius));\n }\n queryCircleWarp(position, radius, containerOrSize) {\n const container = containerOrSize;\n const size = containerOrSize;\n return this.query(new CircleWarp_1.CircleWarp(position.x, position.y, radius, container.canvas !== undefined ? container.canvas.size : size));\n }\n queryRectangle(position, size) {\n return this.query(new Rectangle_1.Rectangle(position.x, position.y, size.width, size.height));\n }\n query(range, found) {\n var _a, _b, _c, _d;\n const res = found !== null && found !== void 0 ? found : [];\n if (!range.intersects(this.rectangle)) {\n return [];\n }\n else {\n for (const p of this.points) {\n if (!range.contains(p.position) && (0, NumberUtils_1.getDistance)(range.position, p.position) > p.particle.getRadius()) {\n continue;\n }\n res.push(p.particle);\n }\n if (this.divided) {\n (_a = this.northEast) === null || _a === void 0 ? void 0 : _a.query(range, res);\n (_b = this.northWest) === null || _b === void 0 ? void 0 : _b.query(range, res);\n (_c = this.southEast) === null || _c === void 0 ? void 0 : _c.query(range, res);\n (_d = this.southWest) === null || _d === void 0 ? void 0 : _d.query(range, res);\n }\n }\n return res;\n }\n}\nexports.QuadTree = QuadTree;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXRpbHMvUXVhZFRyZWUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsZ0JBQWdCO0FBQ2hCLG9CQUFvQixtQkFBTyxDQUFDLGtFQUFhO0FBQ3pDLGlCQUFpQixtQkFBTyxDQUFDLDREQUFVO0FBQ25DLHFCQUFxQixtQkFBTyxDQUFDLG9FQUFjO0FBQzNDLHNCQUFzQixtQkFBTyxDQUFDLHNFQUFlO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9VdGlscy9RdWFkVHJlZS5qcz81YWE0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5RdWFkVHJlZSA9IHZvaWQgMDtcbmNvbnN0IFJlY3RhbmdsZV8xID0gcmVxdWlyZShcIi4vUmVjdGFuZ2xlXCIpO1xuY29uc3QgQ2lyY2xlXzEgPSByZXF1aXJlKFwiLi9DaXJjbGVcIik7XG5jb25zdCBDaXJjbGVXYXJwXzEgPSByZXF1aXJlKFwiLi9DaXJjbGVXYXJwXCIpO1xuY29uc3QgTnVtYmVyVXRpbHNfMSA9IHJlcXVpcmUoXCIuL051bWJlclV0aWxzXCIpO1xuY2xhc3MgUXVhZFRyZWUge1xuICAgIGNvbnN0cnVjdG9yKHJlY3RhbmdsZSwgY2FwYWNpdHkpIHtcbiAgICAgICAgdGhpcy5yZWN0YW5nbGUgPSByZWN0YW5nbGU7XG4gICAgICAgIHRoaXMuY2FwYWNpdHkgPSBjYXBhY2l0eTtcbiAgICAgICAgdGhpcy5wb2ludHMgPSBbXTtcbiAgICAgICAgdGhpcy5kaXZpZGVkID0gZmFsc2U7XG4gICAgfVxuICAgIHN1YmRpdmlkZSgpIHtcbiAgICAgICAgY29uc3QgeCA9IHRoaXMucmVjdGFuZ2xlLnBvc2l0aW9uLng7XG4gICAgICAgIGNvbnN0IHkgPSB0aGlzLnJlY3RhbmdsZS5wb3NpdGlvbi55O1xuICAgICAgICBjb25zdCB3ID0gdGhpcy5yZWN0YW5nbGUuc2l6ZS53aWR0aDtcbiAgICAgICAgY29uc3QgaCA9IHRoaXMucmVjdGFuZ2xlLnNpemUuaGVpZ2h0O1xuICAgICAgICBjb25zdCBjYXBhY2l0eSA9IHRoaXMuY2FwYWNpdHk7XG4gICAgICAgIHRoaXMubm9ydGhFYXN0ID0gbmV3IFF1YWRUcmVlKG5ldyBSZWN0YW5nbGVfMS5SZWN0YW5nbGUoeCwgeSwgdyAvIDIsIGggLyAyKSwgY2FwYWNpdHkpO1xuICAgICAgICB0aGlzLm5vcnRoV2VzdCA9IG5ldyBRdWFkVHJlZShuZXcgUmVjdGFuZ2xlXzEuUmVjdGFuZ2xlKHggKyB3IC8gMiwgeSwgdyAvIDIsIGggLyAyKSwgY2FwYWNpdHkpO1xuICAgICAgICB0aGlzLnNvdXRoRWFzdCA9IG5ldyBRdWFkVHJlZShuZXcgUmVjdGFuZ2xlXzEuUmVjdGFuZ2xlKHgsIHkgKyBoIC8gMiwgdyAvIDIsIGggLyAyKSwgY2FwYWNpdHkpO1xuICAgICAgICB0aGlzLnNvdXRoV2VzdCA9IG5ldyBRdWFkVHJlZShuZXcgUmVjdGFuZ2xlXzEuUmVjdGFuZ2xlKHggKyB3IC8gMiwgeSArIGggLyAyLCB3IC8gMiwgaCAvIDIpLCBjYXBhY2l0eSk7XG4gICAgICAgIHRoaXMuZGl2aWRlZCA9IHRydWU7XG4gICAgfVxuICAgIGluc2VydChwb2ludCkge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2QsIF9lO1xuICAgICAgICBpZiAoIXRoaXMucmVjdGFuZ2xlLmNvbnRhaW5zKHBvaW50LnBvc2l0aW9uKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnBvaW50cy5sZW5ndGggPCB0aGlzLmNhcGFjaXR5KSB7XG4gICAgICAgICAgICB0aGlzLnBvaW50cy5wdXNoKHBvaW50KTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5kaXZpZGVkKSB7XG4gICAgICAgICAgICB0aGlzLnN1YmRpdmlkZSgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAoKF9lID0gKCgoX2EgPSB0aGlzLm5vcnRoRWFzdCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmluc2VydChwb2ludCkpIHx8XG4gICAgICAgICAgICAoKF9iID0gdGhpcy5ub3J0aFdlc3QpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5pbnNlcnQocG9pbnQpKSB8fFxuICAgICAgICAgICAgKChfYyA9IHRoaXMuc291dGhFYXN0KSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MuaW5zZXJ0KHBvaW50KSkgfHxcbiAgICAgICAgICAgICgoX2QgPSB0aGlzLnNvdXRoV2VzdCkgPT09IG51bGwgfHwgX2QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9kLmluc2VydChwb2ludCkpKSkgIT09IG51bGwgJiYgX2UgIT09IHZvaWQgMCA/IF9lIDogZmFsc2UpO1xuICAgIH1cbiAgICBxdWVyeUNpcmNsZShwb3NpdGlvbiwgcmFkaXVzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnF1ZXJ5KG5ldyBDaXJjbGVfMS5DaXJjbGUocG9zaXRpb24ueCwgcG9zaXRpb24ueSwgcmFkaXVzKSk7XG4gICAgfVxuICAgIHF1ZXJ5Q2lyY2xlV2FycChwb3NpdGlvbiwgcmFkaXVzLCBjb250YWluZXJPclNpemUpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gY29udGFpbmVyT3JTaXplO1xuICAgICAgICBjb25zdCBzaXplID0gY29udGFpbmVyT3JTaXplO1xuICAgICAgICByZXR1cm4gdGhpcy5xdWVyeShuZXcgQ2lyY2xlV2FycF8xLkNpcmNsZVdhcnAocG9zaXRpb24ueCwgcG9zaXRpb24ueSwgcmFkaXVzLCBjb250YWluZXIuY2FudmFzICE9PSB1bmRlZmluZWQgPyBjb250YWluZXIuY2FudmFzLnNpemUgOiBzaXplKSk7XG4gICAgfVxuICAgIHF1ZXJ5UmVjdGFuZ2xlKHBvc2l0aW9uLCBzaXplKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnF1ZXJ5KG5ldyBSZWN0YW5nbGVfMS5SZWN0YW5nbGUocG9zaXRpb24ueCwgcG9zaXRpb24ueSwgc2l6ZS53aWR0aCwgc2l6ZS5oZWlnaHQpKTtcbiAgICB9XG4gICAgcXVlcnkocmFuZ2UsIGZvdW5kKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZDtcbiAgICAgICAgY29uc3QgcmVzID0gZm91bmQgIT09IG51bGwgJiYgZm91bmQgIT09IHZvaWQgMCA/IGZvdW5kIDogW107XG4gICAgICAgIGlmICghcmFuZ2UuaW50ZXJzZWN0cyh0aGlzLnJlY3RhbmdsZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgcCBvZiB0aGlzLnBvaW50cykge1xuICAgICAgICAgICAgICAgIGlmICghcmFuZ2UuY29udGFpbnMocC5wb3NpdGlvbikgJiYgKDAsIE51bWJlclV0aWxzXzEuZ2V0RGlzdGFuY2UpKHJhbmdlLnBvc2l0aW9uLCBwLnBvc2l0aW9uKSA+IHAucGFydGljbGUuZ2V0UmFkaXVzKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJlcy5wdXNoKHAucGFydGljbGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuZGl2aWRlZCkge1xuICAgICAgICAgICAgICAgIChfYSA9IHRoaXMubm9ydGhFYXN0KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EucXVlcnkocmFuZ2UsIHJlcyk7XG4gICAgICAgICAgICAgICAgKF9iID0gdGhpcy5ub3J0aFdlc3QpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5xdWVyeShyYW5nZSwgcmVzKTtcbiAgICAgICAgICAgICAgICAoX2MgPSB0aGlzLnNvdXRoRWFzdCkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLnF1ZXJ5KHJhbmdlLCByZXMpO1xuICAgICAgICAgICAgICAgIChfZCA9IHRoaXMuc291dGhXZXN0KSA9PT0gbnVsbCB8fCBfZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2QucXVlcnkocmFuZ2UsIHJlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG59XG5leHBvcnRzLlF1YWRUcmVlID0gUXVhZFRyZWU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Utils/QuadTree.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Utils/Range.js": +/*!*************************************************!*\ + !*** ./node_modules/tsparticles/Utils/Range.js ***! + \*************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Range = void 0;\nclass Range {\n constructor(x, y) {\n this.position = {\n x: x,\n y: y,\n };\n }\n}\nexports.Range = Range;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXRpbHMvUmFuZ2UuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9VdGlscy9SYW5nZS5qcz84OGJhIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5SYW5nZSA9IHZvaWQgMDtcbmNsYXNzIFJhbmdlIHtcbiAgICBjb25zdHJ1Y3Rvcih4LCB5KSB7XG4gICAgICAgIHRoaXMucG9zaXRpb24gPSB7XG4gICAgICAgICAgICB4OiB4LFxuICAgICAgICAgICAgeTogeSxcbiAgICAgICAgfTtcbiAgICB9XG59XG5leHBvcnRzLlJhbmdlID0gUmFuZ2U7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Utils/Range.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Utils/Rectangle.js": +/*!*****************************************************!*\ + !*** ./node_modules/tsparticles/Utils/Rectangle.js ***! + \*****************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Rectangle = void 0;\nconst Range_1 = __webpack_require__(/*! ./Range */ \"./node_modules/tsparticles/Utils/Range.js\");\nclass Rectangle extends Range_1.Range {\n constructor(x, y, width, height) {\n super(x, y);\n this.size = {\n height: height,\n width: width,\n };\n }\n contains(point) {\n const w = this.size.width;\n const h = this.size.height;\n const pos = this.position;\n return point.x >= pos.x && point.x <= pos.x + w && point.y >= pos.y && point.y <= pos.y + h;\n }\n intersects(range) {\n const rect = range;\n const circle = range;\n const w = this.size.width;\n const h = this.size.height;\n const pos1 = this.position;\n const pos2 = range.position;\n if (circle.radius !== undefined) {\n return circle.intersects(this);\n }\n else if (rect.size !== undefined) {\n const size2 = rect.size;\n const w2 = size2.width;\n const h2 = size2.height;\n return pos2.x < pos1.x + w && pos2.x + w2 > pos1.x && pos2.y < pos1.y + h && pos2.y + h2 > pos1.y;\n }\n return false;\n }\n}\nexports.Rectangle = Rectangle;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXRpbHMvUmVjdGFuZ2xlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGlCQUFpQjtBQUNqQixnQkFBZ0IsbUJBQU8sQ0FBQywwREFBUztBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1V0aWxzL1JlY3RhbmdsZS5qcz8wM2Y5Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5SZWN0YW5nbGUgPSB2b2lkIDA7XG5jb25zdCBSYW5nZV8xID0gcmVxdWlyZShcIi4vUmFuZ2VcIik7XG5jbGFzcyBSZWN0YW5nbGUgZXh0ZW5kcyBSYW5nZV8xLlJhbmdlIHtcbiAgICBjb25zdHJ1Y3Rvcih4LCB5LCB3aWR0aCwgaGVpZ2h0KSB7XG4gICAgICAgIHN1cGVyKHgsIHkpO1xuICAgICAgICB0aGlzLnNpemUgPSB7XG4gICAgICAgICAgICBoZWlnaHQ6IGhlaWdodCxcbiAgICAgICAgICAgIHdpZHRoOiB3aWR0aCxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgY29udGFpbnMocG9pbnQpIHtcbiAgICAgICAgY29uc3QgdyA9IHRoaXMuc2l6ZS53aWR0aDtcbiAgICAgICAgY29uc3QgaCA9IHRoaXMuc2l6ZS5oZWlnaHQ7XG4gICAgICAgIGNvbnN0IHBvcyA9IHRoaXMucG9zaXRpb247XG4gICAgICAgIHJldHVybiBwb2ludC54ID49IHBvcy54ICYmIHBvaW50LnggPD0gcG9zLnggKyB3ICYmIHBvaW50LnkgPj0gcG9zLnkgJiYgcG9pbnQueSA8PSBwb3MueSArIGg7XG4gICAgfVxuICAgIGludGVyc2VjdHMocmFuZ2UpIHtcbiAgICAgICAgY29uc3QgcmVjdCA9IHJhbmdlO1xuICAgICAgICBjb25zdCBjaXJjbGUgPSByYW5nZTtcbiAgICAgICAgY29uc3QgdyA9IHRoaXMuc2l6ZS53aWR0aDtcbiAgICAgICAgY29uc3QgaCA9IHRoaXMuc2l6ZS5oZWlnaHQ7XG4gICAgICAgIGNvbnN0IHBvczEgPSB0aGlzLnBvc2l0aW9uO1xuICAgICAgICBjb25zdCBwb3MyID0gcmFuZ2UucG9zaXRpb247XG4gICAgICAgIGlmIChjaXJjbGUucmFkaXVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBjaXJjbGUuaW50ZXJzZWN0cyh0aGlzKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChyZWN0LnNpemUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29uc3Qgc2l6ZTIgPSByZWN0LnNpemU7XG4gICAgICAgICAgICBjb25zdCB3MiA9IHNpemUyLndpZHRoO1xuICAgICAgICAgICAgY29uc3QgaDIgPSBzaXplMi5oZWlnaHQ7XG4gICAgICAgICAgICByZXR1cm4gcG9zMi54IDwgcG9zMS54ICsgdyAmJiBwb3MyLnggKyB3MiA+IHBvczEueCAmJiBwb3MyLnkgPCBwb3MxLnkgKyBoICYmIHBvczIueSArIGgyID4gcG9zMS55O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG5leHBvcnRzLlJlY3RhbmdsZSA9IFJlY3RhbmdsZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Utils/Rectangle.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Utils/Utils.js": +/*!*************************************************!*\ + !*** ./node_modules/tsparticles/Utils/Utils.js ***! + \*************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.rectBounce = exports.circleBounce = exports.circleBounceDataFromParticle = exports.divMode = exports.singleDivModeExecute = exports.divModeExecute = exports.isDivModeEnabled = exports.deepExtend = exports.calculateBounds = exports.areBoundsInside = exports.isPointInside = exports.itemFromArray = exports.arrayRandomIndex = exports.loadFont = exports.isInArray = exports.cancelAnimation = exports.animate = exports.isSsr = void 0;\nconst Enums_1 = __webpack_require__(/*! ../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst NumberUtils_1 = __webpack_require__(/*! ./NumberUtils */ \"./node_modules/tsparticles/Utils/NumberUtils.js\");\nconst Vector_1 = __webpack_require__(/*! ../Core/Particle/Vector */ \"./node_modules/tsparticles/Core/Particle/Vector.js\");\nfunction rectSideBounce(pSide, pOtherSide, rectSide, rectOtherSide, velocity, factor) {\n const res = { bounced: false };\n if (pOtherSide.min >= rectOtherSide.min &&\n pOtherSide.min <= rectOtherSide.max &&\n pOtherSide.max >= rectOtherSide.min &&\n pOtherSide.max <= rectOtherSide.max) {\n if ((pSide.max >= rectSide.min && pSide.max <= (rectSide.max + rectSide.min) / 2 && velocity > 0) ||\n (pSide.min <= rectSide.max && pSide.min > (rectSide.max + rectSide.min) / 2 && velocity < 0)) {\n res.velocity = velocity * -factor;\n res.bounced = true;\n }\n }\n return res;\n}\nfunction checkSelector(element, selectors) {\n if (selectors instanceof Array) {\n for (const selector of selectors) {\n if (element.matches(selector)) {\n return true;\n }\n }\n return false;\n }\n else {\n return element.matches(selectors);\n }\n}\nfunction isSsr() {\n return typeof window === \"undefined\" || !window || typeof window.document === \"undefined\" || !window.document;\n}\nexports.isSsr = isSsr;\nfunction animate() {\n return isSsr()\n ? (callback) => setTimeout(callback)\n : (callback) => (window.requestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n window.oRequestAnimationFrame ||\n window.msRequestAnimationFrame ||\n window.setTimeout)(callback);\n}\nexports.animate = animate;\nfunction cancelAnimation() {\n return isSsr()\n ? (handle) => clearTimeout(handle)\n : (handle) => (window.cancelAnimationFrame ||\n window.webkitCancelRequestAnimationFrame ||\n window.mozCancelRequestAnimationFrame ||\n window.oCancelRequestAnimationFrame ||\n window.msCancelRequestAnimationFrame ||\n window.clearTimeout)(handle);\n}\nexports.cancelAnimation = cancelAnimation;\nfunction isInArray(value, array) {\n return value === array || (array instanceof Array && array.indexOf(value) > -1);\n}\nexports.isInArray = isInArray;\nasync function loadFont(character) {\n var _a, _b;\n try {\n await document.fonts.load(`${(_a = character.weight) !== null && _a !== void 0 ? _a : \"400\"} 36px '${(_b = character.font) !== null && _b !== void 0 ? _b : \"Verdana\"}'`);\n }\n catch (_c) {\n }\n}\nexports.loadFont = loadFont;\nfunction arrayRandomIndex(array) {\n return Math.floor(Math.random() * array.length);\n}\nexports.arrayRandomIndex = arrayRandomIndex;\nfunction itemFromArray(array, index, useIndex = true) {\n const fixedIndex = index !== undefined && useIndex ? index % array.length : arrayRandomIndex(array);\n return array[fixedIndex];\n}\nexports.itemFromArray = itemFromArray;\nfunction isPointInside(point, size, radius, direction) {\n return areBoundsInside(calculateBounds(point, radius !== null && radius !== void 0 ? radius : 0), size, direction);\n}\nexports.isPointInside = isPointInside;\nfunction areBoundsInside(bounds, size, direction) {\n let inside = true;\n if (!direction || direction === Enums_1.OutModeDirection.bottom) {\n inside = bounds.top < size.height;\n }\n if (inside && (!direction || direction === Enums_1.OutModeDirection.left)) {\n inside = bounds.right > 0;\n }\n if (inside && (!direction || direction === Enums_1.OutModeDirection.right)) {\n inside = bounds.left < size.width;\n }\n if (inside && (!direction || direction === Enums_1.OutModeDirection.top)) {\n inside = bounds.bottom > 0;\n }\n return inside;\n}\nexports.areBoundsInside = areBoundsInside;\nfunction calculateBounds(point, radius) {\n return {\n bottom: point.y + radius,\n left: point.x - radius,\n right: point.x + radius,\n top: point.y - radius,\n };\n}\nexports.calculateBounds = calculateBounds;\nfunction deepExtend(destination, ...sources) {\n for (const source of sources) {\n if (source === undefined || source === null) {\n continue;\n }\n if (typeof source !== \"object\") {\n destination = source;\n continue;\n }\n const sourceIsArray = Array.isArray(source);\n if (sourceIsArray && (typeof destination !== \"object\" || !destination || !Array.isArray(destination))) {\n destination = [];\n }\n else if (!sourceIsArray && (typeof destination !== \"object\" || !destination || Array.isArray(destination))) {\n destination = {};\n }\n for (const key in source) {\n if (key === \"__proto__\") {\n continue;\n }\n const sourceDict = source;\n const value = sourceDict[key];\n const isObject = typeof value === \"object\";\n const destDict = destination;\n destDict[key] =\n isObject && Array.isArray(value)\n ? value.map((v) => deepExtend(destDict[key], v))\n : deepExtend(destDict[key], value);\n }\n }\n return destination;\n}\nexports.deepExtend = deepExtend;\nfunction isDivModeEnabled(mode, divs) {\n return divs instanceof Array ? !!divs.find((t) => t.enable && isInArray(mode, t.mode)) : isInArray(mode, divs.mode);\n}\nexports.isDivModeEnabled = isDivModeEnabled;\nfunction divModeExecute(mode, divs, callback) {\n if (divs instanceof Array) {\n for (const div of divs) {\n const divMode = div.mode;\n const divEnabled = div.enable;\n if (divEnabled && isInArray(mode, divMode)) {\n singleDivModeExecute(div, callback);\n }\n }\n }\n else {\n const divMode = divs.mode;\n const divEnabled = divs.enable;\n if (divEnabled && isInArray(mode, divMode)) {\n singleDivModeExecute(divs, callback);\n }\n }\n}\nexports.divModeExecute = divModeExecute;\nfunction singleDivModeExecute(div, callback) {\n const selectors = div.selectors;\n if (selectors instanceof Array) {\n for (const selector of selectors) {\n callback(selector, div);\n }\n }\n else {\n callback(selectors, div);\n }\n}\nexports.singleDivModeExecute = singleDivModeExecute;\nfunction divMode(divs, element) {\n if (!element || !divs) {\n return;\n }\n if (divs instanceof Array) {\n return divs.find((d) => checkSelector(element, d.selectors));\n }\n else if (checkSelector(element, divs.selectors)) {\n return divs;\n }\n}\nexports.divMode = divMode;\nfunction circleBounceDataFromParticle(p) {\n return {\n position: p.getPosition(),\n radius: p.getRadius(),\n mass: p.getMass(),\n velocity: p.velocity,\n factor: Vector_1.Vector.create((0, NumberUtils_1.getValue)(p.options.bounce.horizontal), (0, NumberUtils_1.getValue)(p.options.bounce.vertical)),\n };\n}\nexports.circleBounceDataFromParticle = circleBounceDataFromParticle;\nfunction circleBounce(p1, p2) {\n const xVelocityDiff = p1.velocity.x;\n const yVelocityDiff = p1.velocity.y;\n const pos1 = p1.position;\n const pos2 = p2.position;\n const xDist = pos2.x - pos1.x;\n const yDist = pos2.y - pos1.y;\n if (xVelocityDiff * xDist + yVelocityDiff * yDist >= 0) {\n const angle = -Math.atan2(pos2.y - pos1.y, pos2.x - pos1.x);\n const m1 = p1.mass;\n const m2 = p2.mass;\n const u1 = p1.velocity.rotate(angle);\n const u2 = p2.velocity.rotate(angle);\n const v1 = (0, NumberUtils_1.collisionVelocity)(u1, u2, m1, m2);\n const v2 = (0, NumberUtils_1.collisionVelocity)(u2, u1, m1, m2);\n const vFinal1 = v1.rotate(-angle);\n const vFinal2 = v2.rotate(-angle);\n p1.velocity.x = vFinal1.x * p1.factor.x;\n p1.velocity.y = vFinal1.y * p1.factor.y;\n p2.velocity.x = vFinal2.x * p2.factor.x;\n p2.velocity.y = vFinal2.y * p2.factor.y;\n }\n}\nexports.circleBounce = circleBounce;\nfunction rectBounce(particle, divBounds) {\n const pPos = particle.getPosition();\n const size = particle.getRadius();\n const bounds = calculateBounds(pPos, size);\n const resH = rectSideBounce({\n min: bounds.left,\n max: bounds.right,\n }, {\n min: bounds.top,\n max: bounds.bottom,\n }, {\n min: divBounds.left,\n max: divBounds.right,\n }, {\n min: divBounds.top,\n max: divBounds.bottom,\n }, particle.velocity.x, (0, NumberUtils_1.getValue)(particle.options.bounce.horizontal));\n if (resH.bounced) {\n if (resH.velocity !== undefined) {\n particle.velocity.x = resH.velocity;\n }\n if (resH.position !== undefined) {\n particle.position.x = resH.position;\n }\n }\n const resV = rectSideBounce({\n min: bounds.top,\n max: bounds.bottom,\n }, {\n min: bounds.left,\n max: bounds.right,\n }, {\n min: divBounds.top,\n max: divBounds.bottom,\n }, {\n min: divBounds.left,\n max: divBounds.right,\n }, particle.velocity.y, (0, NumberUtils_1.getValue)(particle.options.bounce.vertical));\n if (resV.bounced) {\n if (resV.velocity !== undefined) {\n particle.velocity.y = resV.velocity;\n }\n if (resV.position !== undefined) {\n particle.position.y = resV.position;\n }\n }\n}\nexports.rectBounce = rectBounce;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXRpbHMvVXRpbHMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsa0JBQWtCLEdBQUcsb0JBQW9CLEdBQUcsb0NBQW9DLEdBQUcsZUFBZSxHQUFHLDRCQUE0QixHQUFHLHNCQUFzQixHQUFHLHdCQUF3QixHQUFHLGtCQUFrQixHQUFHLHVCQUF1QixHQUFHLHVCQUF1QixHQUFHLHFCQUFxQixHQUFHLHFCQUFxQixHQUFHLHdCQUF3QixHQUFHLGdCQUFnQixHQUFHLGlCQUFpQixHQUFHLHVCQUF1QixHQUFHLGVBQWUsR0FBRyxhQUFhO0FBQzVhLGdCQUFnQixtQkFBTyxDQUFDLDJEQUFVO0FBQ2xDLHNCQUFzQixtQkFBTyxDQUFDLHNFQUFlO0FBQzdDLGlCQUFpQixtQkFBTyxDQUFDLG1GQUF5QjtBQUNsRDtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EscUNBQXFDLGdFQUFnRSxRQUFRLGlFQUFpRTtBQUM5SztBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQSx3QkFBd0I7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUI7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQSx3QkFBd0I7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEI7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0M7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXRpbHMvVXRpbHMuanM/MWRiZSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMucmVjdEJvdW5jZSA9IGV4cG9ydHMuY2lyY2xlQm91bmNlID0gZXhwb3J0cy5jaXJjbGVCb3VuY2VEYXRhRnJvbVBhcnRpY2xlID0gZXhwb3J0cy5kaXZNb2RlID0gZXhwb3J0cy5zaW5nbGVEaXZNb2RlRXhlY3V0ZSA9IGV4cG9ydHMuZGl2TW9kZUV4ZWN1dGUgPSBleHBvcnRzLmlzRGl2TW9kZUVuYWJsZWQgPSBleHBvcnRzLmRlZXBFeHRlbmQgPSBleHBvcnRzLmNhbGN1bGF0ZUJvdW5kcyA9IGV4cG9ydHMuYXJlQm91bmRzSW5zaWRlID0gZXhwb3J0cy5pc1BvaW50SW5zaWRlID0gZXhwb3J0cy5pdGVtRnJvbUFycmF5ID0gZXhwb3J0cy5hcnJheVJhbmRvbUluZGV4ID0gZXhwb3J0cy5sb2FkRm9udCA9IGV4cG9ydHMuaXNJbkFycmF5ID0gZXhwb3J0cy5jYW5jZWxBbmltYXRpb24gPSBleHBvcnRzLmFuaW1hdGUgPSBleHBvcnRzLmlzU3NyID0gdm9pZCAwO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuLi9FbnVtc1wiKTtcbmNvbnN0IE51bWJlclV0aWxzXzEgPSByZXF1aXJlKFwiLi9OdW1iZXJVdGlsc1wiKTtcbmNvbnN0IFZlY3Rvcl8xID0gcmVxdWlyZShcIi4uL0NvcmUvUGFydGljbGUvVmVjdG9yXCIpO1xuZnVuY3Rpb24gcmVjdFNpZGVCb3VuY2UocFNpZGUsIHBPdGhlclNpZGUsIHJlY3RTaWRlLCByZWN0T3RoZXJTaWRlLCB2ZWxvY2l0eSwgZmFjdG9yKSB7XG4gICAgY29uc3QgcmVzID0geyBib3VuY2VkOiBmYWxzZSB9O1xuICAgIGlmIChwT3RoZXJTaWRlLm1pbiA+PSByZWN0T3RoZXJTaWRlLm1pbiAmJlxuICAgICAgICBwT3RoZXJTaWRlLm1pbiA8PSByZWN0T3RoZXJTaWRlLm1heCAmJlxuICAgICAgICBwT3RoZXJTaWRlLm1heCA+PSByZWN0T3RoZXJTaWRlLm1pbiAmJlxuICAgICAgICBwT3RoZXJTaWRlLm1heCA8PSByZWN0T3RoZXJTaWRlLm1heCkge1xuICAgICAgICBpZiAoKHBTaWRlLm1heCA+PSByZWN0U2lkZS5taW4gJiYgcFNpZGUubWF4IDw9IChyZWN0U2lkZS5tYXggKyByZWN0U2lkZS5taW4pIC8gMiAmJiB2ZWxvY2l0eSA+IDApIHx8XG4gICAgICAgICAgICAocFNpZGUubWluIDw9IHJlY3RTaWRlLm1heCAmJiBwU2lkZS5taW4gPiAocmVjdFNpZGUubWF4ICsgcmVjdFNpZGUubWluKSAvIDIgJiYgdmVsb2NpdHkgPCAwKSkge1xuICAgICAgICAgICAgcmVzLnZlbG9jaXR5ID0gdmVsb2NpdHkgKiAtZmFjdG9yO1xuICAgICAgICAgICAgcmVzLmJvdW5jZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXM7XG59XG5mdW5jdGlvbiBjaGVja1NlbGVjdG9yKGVsZW1lbnQsIHNlbGVjdG9ycykge1xuICAgIGlmIChzZWxlY3RvcnMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICBmb3IgKGNvbnN0IHNlbGVjdG9yIG9mIHNlbGVjdG9ycykge1xuICAgICAgICAgICAgaWYgKGVsZW1lbnQubWF0Y2hlcyhzZWxlY3RvcikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICByZXR1cm4gZWxlbWVudC5tYXRjaGVzKHNlbGVjdG9ycyk7XG4gICAgfVxufVxuZnVuY3Rpb24gaXNTc3IoKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB3aW5kb3cgPT09IFwidW5kZWZpbmVkXCIgfHwgIXdpbmRvdyB8fCB0eXBlb2Ygd2luZG93LmRvY3VtZW50ID09PSBcInVuZGVmaW5lZFwiIHx8ICF3aW5kb3cuZG9jdW1lbnQ7XG59XG5leHBvcnRzLmlzU3NyID0gaXNTc3I7XG5mdW5jdGlvbiBhbmltYXRlKCkge1xuICAgIHJldHVybiBpc1NzcigpXG4gICAgICAgID8gKGNhbGxiYWNrKSA9PiBzZXRUaW1lb3V0KGNhbGxiYWNrKVxuICAgICAgICA6IChjYWxsYmFjaykgPT4gKHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUgfHxcbiAgICAgICAgICAgIHdpbmRvdy53ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUgfHxcbiAgICAgICAgICAgIHdpbmRvdy5tb3pSZXF1ZXN0QW5pbWF0aW9uRnJhbWUgfHxcbiAgICAgICAgICAgIHdpbmRvdy5vUmVxdWVzdEFuaW1hdGlvbkZyYW1lIHx8XG4gICAgICAgICAgICB3aW5kb3cubXNSZXF1ZXN0QW5pbWF0aW9uRnJhbWUgfHxcbiAgICAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KShjYWxsYmFjayk7XG59XG5leHBvcnRzLmFuaW1hdGUgPSBhbmltYXRlO1xuZnVuY3Rpb24gY2FuY2VsQW5pbWF0aW9uKCkge1xuICAgIHJldHVybiBpc1NzcigpXG4gICAgICAgID8gKGhhbmRsZSkgPT4gY2xlYXJUaW1lb3V0KGhhbmRsZSlcbiAgICAgICAgOiAoaGFuZGxlKSA9PiAod2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lIHx8XG4gICAgICAgICAgICB3aW5kb3cud2Via2l0Q2FuY2VsUmVxdWVzdEFuaW1hdGlvbkZyYW1lIHx8XG4gICAgICAgICAgICB3aW5kb3cubW96Q2FuY2VsUmVxdWVzdEFuaW1hdGlvbkZyYW1lIHx8XG4gICAgICAgICAgICB3aW5kb3cub0NhbmNlbFJlcXVlc3RBbmltYXRpb25GcmFtZSB8fFxuICAgICAgICAgICAgd2luZG93Lm1zQ2FuY2VsUmVxdWVzdEFuaW1hdGlvbkZyYW1lIHx8XG4gICAgICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KShoYW5kbGUpO1xufVxuZXhwb3J0cy5jYW5jZWxBbmltYXRpb24gPSBjYW5jZWxBbmltYXRpb247XG5mdW5jdGlvbiBpc0luQXJyYXkodmFsdWUsIGFycmF5KSB7XG4gICAgcmV0dXJuIHZhbHVlID09PSBhcnJheSB8fCAoYXJyYXkgaW5zdGFuY2VvZiBBcnJheSAmJiBhcnJheS5pbmRleE9mKHZhbHVlKSA+IC0xKTtcbn1cbmV4cG9ydHMuaXNJbkFycmF5ID0gaXNJbkFycmF5O1xuYXN5bmMgZnVuY3Rpb24gbG9hZEZvbnQoY2hhcmFjdGVyKSB7XG4gICAgdmFyIF9hLCBfYjtcbiAgICB0cnkge1xuICAgICAgICBhd2FpdCBkb2N1bWVudC5mb250cy5sb2FkKGAkeyhfYSA9IGNoYXJhY3Rlci53ZWlnaHQpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IFwiNDAwXCJ9IDM2cHggJyR7KF9iID0gY2hhcmFjdGVyLmZvbnQpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IFwiVmVyZGFuYVwifSdgKTtcbiAgICB9XG4gICAgY2F0Y2ggKF9jKSB7XG4gICAgfVxufVxuZXhwb3J0cy5sb2FkRm9udCA9IGxvYWRGb250O1xuZnVuY3Rpb24gYXJyYXlSYW5kb21JbmRleChhcnJheSkge1xuICAgIHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBhcnJheS5sZW5ndGgpO1xufVxuZXhwb3J0cy5hcnJheVJhbmRvbUluZGV4ID0gYXJyYXlSYW5kb21JbmRleDtcbmZ1bmN0aW9uIGl0ZW1Gcm9tQXJyYXkoYXJyYXksIGluZGV4LCB1c2VJbmRleCA9IHRydWUpIHtcbiAgICBjb25zdCBmaXhlZEluZGV4ID0gaW5kZXggIT09IHVuZGVmaW5lZCAmJiB1c2VJbmRleCA/IGluZGV4ICUgYXJyYXkubGVuZ3RoIDogYXJyYXlSYW5kb21JbmRleChhcnJheSk7XG4gICAgcmV0dXJuIGFycmF5W2ZpeGVkSW5kZXhdO1xufVxuZXhwb3J0cy5pdGVtRnJvbUFycmF5ID0gaXRlbUZyb21BcnJheTtcbmZ1bmN0aW9uIGlzUG9pbnRJbnNpZGUocG9pbnQsIHNpemUsIHJhZGl1cywgZGlyZWN0aW9uKSB7XG4gICAgcmV0dXJuIGFyZUJvdW5kc0luc2lkZShjYWxjdWxhdGVCb3VuZHMocG9pbnQsIHJhZGl1cyAhPT0gbnVsbCAmJiByYWRpdXMgIT09IHZvaWQgMCA/IHJhZGl1cyA6IDApLCBzaXplLCBkaXJlY3Rpb24pO1xufVxuZXhwb3J0cy5pc1BvaW50SW5zaWRlID0gaXNQb2ludEluc2lkZTtcbmZ1bmN0aW9uIGFyZUJvdW5kc0luc2lkZShib3VuZHMsIHNpemUsIGRpcmVjdGlvbikge1xuICAgIGxldCBpbnNpZGUgPSB0cnVlO1xuICAgIGlmICghZGlyZWN0aW9uIHx8IGRpcmVjdGlvbiA9PT0gRW51bXNfMS5PdXRNb2RlRGlyZWN0aW9uLmJvdHRvbSkge1xuICAgICAgICBpbnNpZGUgPSBib3VuZHMudG9wIDwgc2l6ZS5oZWlnaHQ7XG4gICAgfVxuICAgIGlmIChpbnNpZGUgJiYgKCFkaXJlY3Rpb24gfHwgZGlyZWN0aW9uID09PSBFbnVtc18xLk91dE1vZGVEaXJlY3Rpb24ubGVmdCkpIHtcbiAgICAgICAgaW5zaWRlID0gYm91bmRzLnJpZ2h0ID4gMDtcbiAgICB9XG4gICAgaWYgKGluc2lkZSAmJiAoIWRpcmVjdGlvbiB8fCBkaXJlY3Rpb24gPT09IEVudW1zXzEuT3V0TW9kZURpcmVjdGlvbi5yaWdodCkpIHtcbiAgICAgICAgaW5zaWRlID0gYm91bmRzLmxlZnQgPCBzaXplLndpZHRoO1xuICAgIH1cbiAgICBpZiAoaW5zaWRlICYmICghZGlyZWN0aW9uIHx8IGRpcmVjdGlvbiA9PT0gRW51bXNfMS5PdXRNb2RlRGlyZWN0aW9uLnRvcCkpIHtcbiAgICAgICAgaW5zaWRlID0gYm91bmRzLmJvdHRvbSA+IDA7XG4gICAgfVxuICAgIHJldHVybiBpbnNpZGU7XG59XG5leHBvcnRzLmFyZUJvdW5kc0luc2lkZSA9IGFyZUJvdW5kc0luc2lkZTtcbmZ1bmN0aW9uIGNhbGN1bGF0ZUJvdW5kcyhwb2ludCwgcmFkaXVzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYm90dG9tOiBwb2ludC55ICsgcmFkaXVzLFxuICAgICAgICBsZWZ0OiBwb2ludC54IC0gcmFkaXVzLFxuICAgICAgICByaWdodDogcG9pbnQueCArIHJhZGl1cyxcbiAgICAgICAgdG9wOiBwb2ludC55IC0gcmFkaXVzLFxuICAgIH07XG59XG5leHBvcnRzLmNhbGN1bGF0ZUJvdW5kcyA9IGNhbGN1bGF0ZUJvdW5kcztcbmZ1bmN0aW9uIGRlZXBFeHRlbmQoZGVzdGluYXRpb24sIC4uLnNvdXJjZXMpIHtcbiAgICBmb3IgKGNvbnN0IHNvdXJjZSBvZiBzb3VyY2VzKSB7XG4gICAgICAgIGlmIChzb3VyY2UgPT09IHVuZGVmaW5lZCB8fCBzb3VyY2UgPT09IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2Ygc291cmNlICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICBkZXN0aW5hdGlvbiA9IHNvdXJjZTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNvdXJjZUlzQXJyYXkgPSBBcnJheS5pc0FycmF5KHNvdXJjZSk7XG4gICAgICAgIGlmIChzb3VyY2VJc0FycmF5ICYmICh0eXBlb2YgZGVzdGluYXRpb24gIT09IFwib2JqZWN0XCIgfHwgIWRlc3RpbmF0aW9uIHx8ICFBcnJheS5pc0FycmF5KGRlc3RpbmF0aW9uKSkpIHtcbiAgICAgICAgICAgIGRlc3RpbmF0aW9uID0gW107XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoIXNvdXJjZUlzQXJyYXkgJiYgKHR5cGVvZiBkZXN0aW5hdGlvbiAhPT0gXCJvYmplY3RcIiB8fCAhZGVzdGluYXRpb24gfHwgQXJyYXkuaXNBcnJheShkZXN0aW5hdGlvbikpKSB7XG4gICAgICAgICAgICBkZXN0aW5hdGlvbiA9IHt9O1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIHNvdXJjZSkge1xuICAgICAgICAgICAgaWYgKGtleSA9PT0gXCJfX3Byb3RvX19cIikge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgc291cmNlRGljdCA9IHNvdXJjZTtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gc291cmNlRGljdFtrZXldO1xuICAgICAgICAgICAgY29uc3QgaXNPYmplY3QgPSB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCI7XG4gICAgICAgICAgICBjb25zdCBkZXN0RGljdCA9IGRlc3RpbmF0aW9uO1xuICAgICAgICAgICAgZGVzdERpY3Rba2V5XSA9XG4gICAgICAgICAgICAgICAgaXNPYmplY3QgJiYgQXJyYXkuaXNBcnJheSh2YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgPyB2YWx1ZS5tYXAoKHYpID0+IGRlZXBFeHRlbmQoZGVzdERpY3Rba2V5XSwgdikpXG4gICAgICAgICAgICAgICAgICAgIDogZGVlcEV4dGVuZChkZXN0RGljdFtrZXldLCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGRlc3RpbmF0aW9uO1xufVxuZXhwb3J0cy5kZWVwRXh0ZW5kID0gZGVlcEV4dGVuZDtcbmZ1bmN0aW9uIGlzRGl2TW9kZUVuYWJsZWQobW9kZSwgZGl2cykge1xuICAgIHJldHVybiBkaXZzIGluc3RhbmNlb2YgQXJyYXkgPyAhIWRpdnMuZmluZCgodCkgPT4gdC5lbmFibGUgJiYgaXNJbkFycmF5KG1vZGUsIHQubW9kZSkpIDogaXNJbkFycmF5KG1vZGUsIGRpdnMubW9kZSk7XG59XG5leHBvcnRzLmlzRGl2TW9kZUVuYWJsZWQgPSBpc0Rpdk1vZGVFbmFibGVkO1xuZnVuY3Rpb24gZGl2TW9kZUV4ZWN1dGUobW9kZSwgZGl2cywgY2FsbGJhY2spIHtcbiAgICBpZiAoZGl2cyBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgIGZvciAoY29uc3QgZGl2IG9mIGRpdnMpIHtcbiAgICAgICAgICAgIGNvbnN0IGRpdk1vZGUgPSBkaXYubW9kZTtcbiAgICAgICAgICAgIGNvbnN0IGRpdkVuYWJsZWQgPSBkaXYuZW5hYmxlO1xuICAgICAgICAgICAgaWYgKGRpdkVuYWJsZWQgJiYgaXNJbkFycmF5KG1vZGUsIGRpdk1vZGUpKSB7XG4gICAgICAgICAgICAgICAgc2luZ2xlRGl2TW9kZUV4ZWN1dGUoZGl2LCBjYWxsYmFjayk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGNvbnN0IGRpdk1vZGUgPSBkaXZzLm1vZGU7XG4gICAgICAgIGNvbnN0IGRpdkVuYWJsZWQgPSBkaXZzLmVuYWJsZTtcbiAgICAgICAgaWYgKGRpdkVuYWJsZWQgJiYgaXNJbkFycmF5KG1vZGUsIGRpdk1vZGUpKSB7XG4gICAgICAgICAgICBzaW5nbGVEaXZNb2RlRXhlY3V0ZShkaXZzLCBjYWxsYmFjayk7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLmRpdk1vZGVFeGVjdXRlID0gZGl2TW9kZUV4ZWN1dGU7XG5mdW5jdGlvbiBzaW5nbGVEaXZNb2RlRXhlY3V0ZShkaXYsIGNhbGxiYWNrKSB7XG4gICAgY29uc3Qgc2VsZWN0b3JzID0gZGl2LnNlbGVjdG9ycztcbiAgICBpZiAoc2VsZWN0b3JzIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgZm9yIChjb25zdCBzZWxlY3RvciBvZiBzZWxlY3RvcnMpIHtcbiAgICAgICAgICAgIGNhbGxiYWNrKHNlbGVjdG9yLCBkaXYpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBjYWxsYmFjayhzZWxlY3RvcnMsIGRpdik7XG4gICAgfVxufVxuZXhwb3J0cy5zaW5nbGVEaXZNb2RlRXhlY3V0ZSA9IHNpbmdsZURpdk1vZGVFeGVjdXRlO1xuZnVuY3Rpb24gZGl2TW9kZShkaXZzLCBlbGVtZW50KSB7XG4gICAgaWYgKCFlbGVtZW50IHx8ICFkaXZzKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGRpdnMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICByZXR1cm4gZGl2cy5maW5kKChkKSA9PiBjaGVja1NlbGVjdG9yKGVsZW1lbnQsIGQuc2VsZWN0b3JzKSk7XG4gICAgfVxuICAgIGVsc2UgaWYgKGNoZWNrU2VsZWN0b3IoZWxlbWVudCwgZGl2cy5zZWxlY3RvcnMpKSB7XG4gICAgICAgIHJldHVybiBkaXZzO1xuICAgIH1cbn1cbmV4cG9ydHMuZGl2TW9kZSA9IGRpdk1vZGU7XG5mdW5jdGlvbiBjaXJjbGVCb3VuY2VEYXRhRnJvbVBhcnRpY2xlKHApIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBwb3NpdGlvbjogcC5nZXRQb3NpdGlvbigpLFxuICAgICAgICByYWRpdXM6IHAuZ2V0UmFkaXVzKCksXG4gICAgICAgIG1hc3M6IHAuZ2V0TWFzcygpLFxuICAgICAgICB2ZWxvY2l0eTogcC52ZWxvY2l0eSxcbiAgICAgICAgZmFjdG9yOiBWZWN0b3JfMS5WZWN0b3IuY3JlYXRlKCgwLCBOdW1iZXJVdGlsc18xLmdldFZhbHVlKShwLm9wdGlvbnMuYm91bmNlLmhvcml6b250YWwpLCAoMCwgTnVtYmVyVXRpbHNfMS5nZXRWYWx1ZSkocC5vcHRpb25zLmJvdW5jZS52ZXJ0aWNhbCkpLFxuICAgIH07XG59XG5leHBvcnRzLmNpcmNsZUJvdW5jZURhdGFGcm9tUGFydGljbGUgPSBjaXJjbGVCb3VuY2VEYXRhRnJvbVBhcnRpY2xlO1xuZnVuY3Rpb24gY2lyY2xlQm91bmNlKHAxLCBwMikge1xuICAgIGNvbnN0IHhWZWxvY2l0eURpZmYgPSBwMS52ZWxvY2l0eS54O1xuICAgIGNvbnN0IHlWZWxvY2l0eURpZmYgPSBwMS52ZWxvY2l0eS55O1xuICAgIGNvbnN0IHBvczEgPSBwMS5wb3NpdGlvbjtcbiAgICBjb25zdCBwb3MyID0gcDIucG9zaXRpb247XG4gICAgY29uc3QgeERpc3QgPSBwb3MyLnggLSBwb3MxLng7XG4gICAgY29uc3QgeURpc3QgPSBwb3MyLnkgLSBwb3MxLnk7XG4gICAgaWYgKHhWZWxvY2l0eURpZmYgKiB4RGlzdCArIHlWZWxvY2l0eURpZmYgKiB5RGlzdCA+PSAwKSB7XG4gICAgICAgIGNvbnN0IGFuZ2xlID0gLU1hdGguYXRhbjIocG9zMi55IC0gcG9zMS55LCBwb3MyLnggLSBwb3MxLngpO1xuICAgICAgICBjb25zdCBtMSA9IHAxLm1hc3M7XG4gICAgICAgIGNvbnN0IG0yID0gcDIubWFzcztcbiAgICAgICAgY29uc3QgdTEgPSBwMS52ZWxvY2l0eS5yb3RhdGUoYW5nbGUpO1xuICAgICAgICBjb25zdCB1MiA9IHAyLnZlbG9jaXR5LnJvdGF0ZShhbmdsZSk7XG4gICAgICAgIGNvbnN0IHYxID0gKDAsIE51bWJlclV0aWxzXzEuY29sbGlzaW9uVmVsb2NpdHkpKHUxLCB1MiwgbTEsIG0yKTtcbiAgICAgICAgY29uc3QgdjIgPSAoMCwgTnVtYmVyVXRpbHNfMS5jb2xsaXNpb25WZWxvY2l0eSkodTIsIHUxLCBtMSwgbTIpO1xuICAgICAgICBjb25zdCB2RmluYWwxID0gdjEucm90YXRlKC1hbmdsZSk7XG4gICAgICAgIGNvbnN0IHZGaW5hbDIgPSB2Mi5yb3RhdGUoLWFuZ2xlKTtcbiAgICAgICAgcDEudmVsb2NpdHkueCA9IHZGaW5hbDEueCAqIHAxLmZhY3Rvci54O1xuICAgICAgICBwMS52ZWxvY2l0eS55ID0gdkZpbmFsMS55ICogcDEuZmFjdG9yLnk7XG4gICAgICAgIHAyLnZlbG9jaXR5LnggPSB2RmluYWwyLnggKiBwMi5mYWN0b3IueDtcbiAgICAgICAgcDIudmVsb2NpdHkueSA9IHZGaW5hbDIueSAqIHAyLmZhY3Rvci55O1xuICAgIH1cbn1cbmV4cG9ydHMuY2lyY2xlQm91bmNlID0gY2lyY2xlQm91bmNlO1xuZnVuY3Rpb24gcmVjdEJvdW5jZShwYXJ0aWNsZSwgZGl2Qm91bmRzKSB7XG4gICAgY29uc3QgcFBvcyA9IHBhcnRpY2xlLmdldFBvc2l0aW9uKCk7XG4gICAgY29uc3Qgc2l6ZSA9IHBhcnRpY2xlLmdldFJhZGl1cygpO1xuICAgIGNvbnN0IGJvdW5kcyA9IGNhbGN1bGF0ZUJvdW5kcyhwUG9zLCBzaXplKTtcbiAgICBjb25zdCByZXNIID0gcmVjdFNpZGVCb3VuY2Uoe1xuICAgICAgICBtaW46IGJvdW5kcy5sZWZ0LFxuICAgICAgICBtYXg6IGJvdW5kcy5yaWdodCxcbiAgICB9LCB7XG4gICAgICAgIG1pbjogYm91bmRzLnRvcCxcbiAgICAgICAgbWF4OiBib3VuZHMuYm90dG9tLFxuICAgIH0sIHtcbiAgICAgICAgbWluOiBkaXZCb3VuZHMubGVmdCxcbiAgICAgICAgbWF4OiBkaXZCb3VuZHMucmlnaHQsXG4gICAgfSwge1xuICAgICAgICBtaW46IGRpdkJvdW5kcy50b3AsXG4gICAgICAgIG1heDogZGl2Qm91bmRzLmJvdHRvbSxcbiAgICB9LCBwYXJ0aWNsZS52ZWxvY2l0eS54LCAoMCwgTnVtYmVyVXRpbHNfMS5nZXRWYWx1ZSkocGFydGljbGUub3B0aW9ucy5ib3VuY2UuaG9yaXpvbnRhbCkpO1xuICAgIGlmIChyZXNILmJvdW5jZWQpIHtcbiAgICAgICAgaWYgKHJlc0gudmVsb2NpdHkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcGFydGljbGUudmVsb2NpdHkueCA9IHJlc0gudmVsb2NpdHk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlc0gucG9zaXRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcGFydGljbGUucG9zaXRpb24ueCA9IHJlc0gucG9zaXRpb247XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgcmVzViA9IHJlY3RTaWRlQm91bmNlKHtcbiAgICAgICAgbWluOiBib3VuZHMudG9wLFxuICAgICAgICBtYXg6IGJvdW5kcy5ib3R0b20sXG4gICAgfSwge1xuICAgICAgICBtaW46IGJvdW5kcy5sZWZ0LFxuICAgICAgICBtYXg6IGJvdW5kcy5yaWdodCxcbiAgICB9LCB7XG4gICAgICAgIG1pbjogZGl2Qm91bmRzLnRvcCxcbiAgICAgICAgbWF4OiBkaXZCb3VuZHMuYm90dG9tLFxuICAgIH0sIHtcbiAgICAgICAgbWluOiBkaXZCb3VuZHMubGVmdCxcbiAgICAgICAgbWF4OiBkaXZCb3VuZHMucmlnaHQsXG4gICAgfSwgcGFydGljbGUudmVsb2NpdHkueSwgKDAsIE51bWJlclV0aWxzXzEuZ2V0VmFsdWUpKHBhcnRpY2xlLm9wdGlvbnMuYm91bmNlLnZlcnRpY2FsKSk7XG4gICAgaWYgKHJlc1YuYm91bmNlZCkge1xuICAgICAgICBpZiAocmVzVi52ZWxvY2l0eSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBwYXJ0aWNsZS52ZWxvY2l0eS55ID0gcmVzVi52ZWxvY2l0eTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVzVi5wb3NpdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBwYXJ0aWNsZS5wb3NpdGlvbi55ID0gcmVzVi5wb3NpdGlvbjtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMucmVjdEJvdW5jZSA9IHJlY3RCb3VuY2U7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Utils/Utils.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Utils/index.js": +/*!*************************************************!*\ + !*** ./node_modules/tsparticles/Utils/index.js ***! + \*************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n__exportStar(__webpack_require__(/*! ./CanvasUtils */ \"./node_modules/tsparticles/Utils/CanvasUtils.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Circle */ \"./node_modules/tsparticles/Utils/Circle.js\"), exports);\n__exportStar(__webpack_require__(/*! ./CircleWarp */ \"./node_modules/tsparticles/Utils/CircleWarp.js\"), exports);\n__exportStar(__webpack_require__(/*! ./ColorUtils */ \"./node_modules/tsparticles/Utils/ColorUtils.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Constants */ \"./node_modules/tsparticles/Utils/Constants.js\"), exports);\n__exportStar(__webpack_require__(/*! ./EventListeners */ \"./node_modules/tsparticles/Utils/EventListeners.js\"), exports);\n__exportStar(__webpack_require__(/*! ./NumberUtils */ \"./node_modules/tsparticles/Utils/NumberUtils.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Plugins */ \"./node_modules/tsparticles/Utils/Plugins.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Point */ \"./node_modules/tsparticles/Utils/Point.js\"), exports);\n__exportStar(__webpack_require__(/*! ./QuadTree */ \"./node_modules/tsparticles/Utils/QuadTree.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Range */ \"./node_modules/tsparticles/Utils/Range.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Rectangle */ \"./node_modules/tsparticles/Utils/Rectangle.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Utils */ \"./node_modules/tsparticles/Utils/Utils.js\"), exports);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXRpbHMvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBO0FBQ0EsbUNBQW1DLG9DQUFvQyxnQkFBZ0I7QUFDdkYsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGFBQWEsbUJBQU8sQ0FBQyxzRUFBZTtBQUNwQyxhQUFhLG1CQUFPLENBQUMsNERBQVU7QUFDL0IsYUFBYSxtQkFBTyxDQUFDLG9FQUFjO0FBQ25DLGFBQWEsbUJBQU8sQ0FBQyxvRUFBYztBQUNuQyxhQUFhLG1CQUFPLENBQUMsa0VBQWE7QUFDbEMsYUFBYSxtQkFBTyxDQUFDLDRFQUFrQjtBQUN2QyxhQUFhLG1CQUFPLENBQUMsc0VBQWU7QUFDcEMsYUFBYSxtQkFBTyxDQUFDLDhEQUFXO0FBQ2hDLGFBQWEsbUJBQU8sQ0FBQywwREFBUztBQUM5QixhQUFhLG1CQUFPLENBQUMsZ0VBQVk7QUFDakMsYUFBYSxtQkFBTyxDQUFDLDBEQUFTO0FBQzlCLGFBQWEsbUJBQU8sQ0FBQyxrRUFBYTtBQUNsQyxhQUFhLG1CQUFPLENBQUMsMERBQVMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1V0aWxzL2luZGV4LmpzPzZlZTIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19jcmVhdGVCaW5kaW5nID0gKHRoaXMgJiYgdGhpcy5fX2NyZWF0ZUJpbmRpbmcpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfSk7XG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgb1trMl0gPSBtW2tdO1xufSkpO1xudmFyIF9fZXhwb3J0U3RhciA9ICh0aGlzICYmIHRoaXMuX19leHBvcnRTdGFyKSB8fCBmdW5jdGlvbihtLCBleHBvcnRzKSB7XG4gICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gXCJkZWZhdWx0XCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzLCBwKSkgX19jcmVhdGVCaW5kaW5nKGV4cG9ydHMsIG0sIHApO1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9DYW52YXNVdGlsc1wiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vQ2lyY2xlXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9DaXJjbGVXYXJwXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9Db2xvclV0aWxzXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9Db25zdGFudHNcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0V2ZW50TGlzdGVuZXJzXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9OdW1iZXJVdGlsc1wiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vUGx1Z2luc1wiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vUG9pbnRcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL1F1YWRUcmVlXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9SYW5nZVwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vUmVjdGFuZ2xlXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9VdGlsc1wiKSwgZXhwb3J0cyk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Utils/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/full.js": +/*!******************************************!*\ + !*** ./node_modules/tsparticles/full.js ***! + \******************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadFull = void 0;\nconst slim_1 = __webpack_require__(/*! ./slim */ \"./node_modules/tsparticles/slim.js\");\nconst Trail_1 = __webpack_require__(/*! ./Interactions/External/Trail */ \"./node_modules/tsparticles/Interactions/External/Trail/index.js\");\nconst Tilt_1 = __webpack_require__(/*! ./Updaters/Tilt */ \"./node_modules/tsparticles/Updaters/Tilt/index.js\");\nconst Wobble_1 = __webpack_require__(/*! ./Updaters/Wobble */ \"./node_modules/tsparticles/Updaters/Wobble/index.js\");\nconst plugin_1 = __webpack_require__(/*! ./Plugins/Absorbers/plugin */ \"./node_modules/tsparticles/Plugins/Absorbers/plugin.js\");\nconst plugin_2 = __webpack_require__(/*! ./Plugins/Emitters/plugin */ \"./node_modules/tsparticles/Plugins/Emitters/plugin.js\");\nconst plugin_3 = __webpack_require__(/*! ./Plugins/PolygonMask/plugin */ \"./node_modules/tsparticles/Plugins/PolygonMask/plugin.js\");\nconst Roll_1 = __webpack_require__(/*! ./Updaters/Roll */ \"./node_modules/tsparticles/Updaters/Roll/index.js\");\nasync function loadFull(tsParticles) {\n await (0, slim_1.loadSlim)(tsParticles);\n await (0, Trail_1.loadExternalTrailInteraction)(tsParticles);\n await (0, Roll_1.loadRollUpdater)(tsParticles);\n await (0, Tilt_1.loadTiltUpdater)(tsParticles);\n await (0, Wobble_1.loadWobbleUpdater)(tsParticles);\n await (0, plugin_1.loadAbsorbersPlugin)(tsParticles);\n await (0, plugin_2.loadEmittersPlugin)(tsParticles);\n await (0, plugin_3.loadPolygonMaskPlugin)(tsParticles);\n}\nexports.loadFull = loadFull;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvZnVsbC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxnQkFBZ0I7QUFDaEIsZUFBZSxtQkFBTyxDQUFDLGtEQUFRO0FBQy9CLGdCQUFnQixtQkFBTyxDQUFDLHNHQUErQjtBQUN2RCxlQUFlLG1CQUFPLENBQUMsMEVBQWlCO0FBQ3hDLGlCQUFpQixtQkFBTyxDQUFDLDhFQUFtQjtBQUM1QyxpQkFBaUIsbUJBQU8sQ0FBQywwRkFBNEI7QUFDckQsaUJBQWlCLG1CQUFPLENBQUMsd0ZBQTJCO0FBQ3BELGlCQUFpQixtQkFBTyxDQUFDLDhGQUE4QjtBQUN2RCxlQUFlLG1CQUFPLENBQUMsMEVBQWlCO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9mdWxsLmpzPzcwNjYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmxvYWRGdWxsID0gdm9pZCAwO1xuY29uc3Qgc2xpbV8xID0gcmVxdWlyZShcIi4vc2xpbVwiKTtcbmNvbnN0IFRyYWlsXzEgPSByZXF1aXJlKFwiLi9JbnRlcmFjdGlvbnMvRXh0ZXJuYWwvVHJhaWxcIik7XG5jb25zdCBUaWx0XzEgPSByZXF1aXJlKFwiLi9VcGRhdGVycy9UaWx0XCIpO1xuY29uc3QgV29iYmxlXzEgPSByZXF1aXJlKFwiLi9VcGRhdGVycy9Xb2JibGVcIik7XG5jb25zdCBwbHVnaW5fMSA9IHJlcXVpcmUoXCIuL1BsdWdpbnMvQWJzb3JiZXJzL3BsdWdpblwiKTtcbmNvbnN0IHBsdWdpbl8yID0gcmVxdWlyZShcIi4vUGx1Z2lucy9FbWl0dGVycy9wbHVnaW5cIik7XG5jb25zdCBwbHVnaW5fMyA9IHJlcXVpcmUoXCIuL1BsdWdpbnMvUG9seWdvbk1hc2svcGx1Z2luXCIpO1xuY29uc3QgUm9sbF8xID0gcmVxdWlyZShcIi4vVXBkYXRlcnMvUm9sbFwiKTtcbmFzeW5jIGZ1bmN0aW9uIGxvYWRGdWxsKHRzUGFydGljbGVzKSB7XG4gICAgYXdhaXQgKDAsIHNsaW1fMS5sb2FkU2xpbSkodHNQYXJ0aWNsZXMpO1xuICAgIGF3YWl0ICgwLCBUcmFpbF8xLmxvYWRFeHRlcm5hbFRyYWlsSW50ZXJhY3Rpb24pKHRzUGFydGljbGVzKTtcbiAgICBhd2FpdCAoMCwgUm9sbF8xLmxvYWRSb2xsVXBkYXRlcikodHNQYXJ0aWNsZXMpO1xuICAgIGF3YWl0ICgwLCBUaWx0XzEubG9hZFRpbHRVcGRhdGVyKSh0c1BhcnRpY2xlcyk7XG4gICAgYXdhaXQgKDAsIFdvYmJsZV8xLmxvYWRXb2JibGVVcGRhdGVyKSh0c1BhcnRpY2xlcyk7XG4gICAgYXdhaXQgKDAsIHBsdWdpbl8xLmxvYWRBYnNvcmJlcnNQbHVnaW4pKHRzUGFydGljbGVzKTtcbiAgICBhd2FpdCAoMCwgcGx1Z2luXzIubG9hZEVtaXR0ZXJzUGx1Z2luKSh0c1BhcnRpY2xlcyk7XG4gICAgYXdhaXQgKDAsIHBsdWdpbl8zLmxvYWRQb2x5Z29uTWFza1BsdWdpbikodHNQYXJ0aWNsZXMpO1xufVxuZXhwb3J0cy5sb2FkRnVsbCA9IGxvYWRGdWxsO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/full.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/index.js": +/*!*******************************************!*\ + !*** ./node_modules/tsparticles/index.js ***! + \*******************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.tsParticles = exports.pJSDom = exports.particlesJS = exports.Main = exports.Rectangle = exports.Point = exports.Constants = exports.CircleWarp = exports.Circle = void 0;\nconst pjs_1 = __webpack_require__(/*! ./pjs */ \"./node_modules/tsparticles/pjs.js\");\nconst main_1 = __webpack_require__(/*! ./main */ \"./node_modules/tsparticles/main.js\");\nObject.defineProperty(exports, \"Main\", ({ enumerable: true, get: function () { return main_1.Main; } }));\nconst Utils_1 = __webpack_require__(/*! ./Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nObject.defineProperty(exports, \"Circle\", ({ enumerable: true, get: function () { return Utils_1.Circle; } }));\nObject.defineProperty(exports, \"CircleWarp\", ({ enumerable: true, get: function () { return Utils_1.CircleWarp; } }));\nObject.defineProperty(exports, \"Constants\", ({ enumerable: true, get: function () { return Utils_1.Constants; } }));\nObject.defineProperty(exports, \"Point\", ({ enumerable: true, get: function () { return Utils_1.Point; } }));\nObject.defineProperty(exports, \"Rectangle\", ({ enumerable: true, get: function () { return Utils_1.Rectangle; } }));\nconst full_1 = __webpack_require__(/*! ./full */ \"./node_modules/tsparticles/full.js\");\nconst tsParticles = new main_1.Main();\nexports.tsParticles = tsParticles;\ntsParticles.init();\nconst { particlesJS, pJSDom } = (0, pjs_1.initPjs)(tsParticles);\nexports.particlesJS = particlesJS;\nexports.pJSDom = pJSDom;\n(0, full_1.loadFull)(tsParticles);\n__exportStar(__webpack_require__(/*! ./Core/Particle/Vector */ \"./node_modules/tsparticles/Core/Particle/Vector.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Core/Container */ \"./node_modules/tsparticles/Core/Container.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Enums */ \"./node_modules/tsparticles/Enums/index.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Plugins/Absorbers/Enums */ \"./node_modules/tsparticles/Plugins/Absorbers/Enums/index.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Plugins/Emitters/Enums */ \"./node_modules/tsparticles/Plugins/Emitters/Enums/index.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Plugins/PolygonMask/Enums */ \"./node_modules/tsparticles/Plugins/PolygonMask/Enums/index.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Utils/CanvasUtils */ \"./node_modules/tsparticles/Utils/CanvasUtils.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Utils/ColorUtils */ \"./node_modules/tsparticles/Utils/ColorUtils.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Utils/NumberUtils */ \"./node_modules/tsparticles/Utils/NumberUtils.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Utils/Utils */ \"./node_modules/tsparticles/Utils/Utils.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Types */ \"./node_modules/tsparticles/Types/index.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Core/Interfaces */ \"./node_modules/tsparticles/Core/Interfaces/index.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Core/Particle */ \"./node_modules/tsparticles/Core/Particle.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Core/ExternalInteractorBase */ \"./node_modules/tsparticles/Core/ExternalInteractorBase.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Core/ParticlesInteractorBase */ \"./node_modules/tsparticles/Core/ParticlesInteractorBase.js\"), exports);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBO0FBQ0EsbUNBQW1DLG9DQUFvQyxnQkFBZ0I7QUFDdkYsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELG1CQUFtQixHQUFHLGNBQWMsR0FBRyxtQkFBbUIsR0FBRyxZQUFZLEdBQUcsaUJBQWlCLEdBQUcsYUFBYSxHQUFHLGlCQUFpQixHQUFHLGtCQUFrQixHQUFHLGNBQWM7QUFDdkssY0FBYyxtQkFBTyxDQUFDLGdEQUFPO0FBQzdCLGVBQWUsbUJBQU8sQ0FBQyxrREFBUTtBQUMvQix3Q0FBdUMsRUFBRSxxQ0FBcUMsdUJBQXVCLEVBQUM7QUFDdEcsZ0JBQWdCLG1CQUFPLENBQUMsMERBQVM7QUFDakMsMENBQXlDLEVBQUUscUNBQXFDLDBCQUEwQixFQUFDO0FBQzNHLDhDQUE2QyxFQUFFLHFDQUFxQyw4QkFBOEIsRUFBQztBQUNuSCw2Q0FBNEMsRUFBRSxxQ0FBcUMsNkJBQTZCLEVBQUM7QUFDakgseUNBQXdDLEVBQUUscUNBQXFDLHlCQUF5QixFQUFDO0FBQ3pHLDZDQUE0QyxFQUFFLHFDQUFxQyw2QkFBNkIsRUFBQztBQUNqSCxlQUFlLG1CQUFPLENBQUMsa0RBQVE7QUFDL0I7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQSxRQUFRLHNCQUFzQjtBQUM5QixtQkFBbUI7QUFDbkIsY0FBYztBQUNkO0FBQ0EsYUFBYSxtQkFBTyxDQUFDLGtGQUF3QjtBQUM3QyxhQUFhLG1CQUFPLENBQUMsc0VBQWtCO0FBQ3ZDLGFBQWEsbUJBQU8sQ0FBQywwREFBUztBQUM5QixhQUFhLG1CQUFPLENBQUMsOEZBQTJCO0FBQ2hELGFBQWEsbUJBQU8sQ0FBQyw0RkFBMEI7QUFDL0MsYUFBYSxtQkFBTyxDQUFDLGtHQUE2QjtBQUNsRCxhQUFhLG1CQUFPLENBQUMsNEVBQXFCO0FBQzFDLGFBQWEsbUJBQU8sQ0FBQywwRUFBb0I7QUFDekMsYUFBYSxtQkFBTyxDQUFDLDRFQUFxQjtBQUMxQyxhQUFhLG1CQUFPLENBQUMsZ0VBQWU7QUFDcEMsYUFBYSxtQkFBTyxDQUFDLDBEQUFTO0FBQzlCLGFBQWEsbUJBQU8sQ0FBQyw4RUFBbUI7QUFDeEMsYUFBYSxtQkFBTyxDQUFDLG9FQUFpQjtBQUN0QyxhQUFhLG1CQUFPLENBQUMsZ0dBQStCO0FBQ3BELGFBQWEsbUJBQU8sQ0FBQyxrR0FBZ0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL2luZGV4LmpzP2I1MjEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19jcmVhdGVCaW5kaW5nID0gKHRoaXMgJiYgdGhpcy5fX2NyZWF0ZUJpbmRpbmcpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfSk7XG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgb1trMl0gPSBtW2tdO1xufSkpO1xudmFyIF9fZXhwb3J0U3RhciA9ICh0aGlzICYmIHRoaXMuX19leHBvcnRTdGFyKSB8fCBmdW5jdGlvbihtLCBleHBvcnRzKSB7XG4gICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gXCJkZWZhdWx0XCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzLCBwKSkgX19jcmVhdGVCaW5kaW5nKGV4cG9ydHMsIG0sIHApO1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMudHNQYXJ0aWNsZXMgPSBleHBvcnRzLnBKU0RvbSA9IGV4cG9ydHMucGFydGljbGVzSlMgPSBleHBvcnRzLk1haW4gPSBleHBvcnRzLlJlY3RhbmdsZSA9IGV4cG9ydHMuUG9pbnQgPSBleHBvcnRzLkNvbnN0YW50cyA9IGV4cG9ydHMuQ2lyY2xlV2FycCA9IGV4cG9ydHMuQ2lyY2xlID0gdm9pZCAwO1xuY29uc3QgcGpzXzEgPSByZXF1aXJlKFwiLi9wanNcIik7XG5jb25zdCBtYWluXzEgPSByZXF1aXJlKFwiLi9tYWluXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiTWFpblwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gbWFpbl8xLk1haW47IH0gfSk7XG5jb25zdCBVdGlsc18xID0gcmVxdWlyZShcIi4vVXRpbHNcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJDaXJjbGVcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFV0aWxzXzEuQ2lyY2xlOyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiQ2lyY2xlV2FycFwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gVXRpbHNfMS5DaXJjbGVXYXJwOyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiQ29uc3RhbnRzXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBVdGlsc18xLkNvbnN0YW50czsgfSB9KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlBvaW50XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBVdGlsc18xLlBvaW50OyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiUmVjdGFuZ2xlXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBVdGlsc18xLlJlY3RhbmdsZTsgfSB9KTtcbmNvbnN0IGZ1bGxfMSA9IHJlcXVpcmUoXCIuL2Z1bGxcIik7XG5jb25zdCB0c1BhcnRpY2xlcyA9IG5ldyBtYWluXzEuTWFpbigpO1xuZXhwb3J0cy50c1BhcnRpY2xlcyA9IHRzUGFydGljbGVzO1xudHNQYXJ0aWNsZXMuaW5pdCgpO1xuY29uc3QgeyBwYXJ0aWNsZXNKUywgcEpTRG9tIH0gPSAoMCwgcGpzXzEuaW5pdFBqcykodHNQYXJ0aWNsZXMpO1xuZXhwb3J0cy5wYXJ0aWNsZXNKUyA9IHBhcnRpY2xlc0pTO1xuZXhwb3J0cy5wSlNEb20gPSBwSlNEb207XG4oMCwgZnVsbF8xLmxvYWRGdWxsKSh0c1BhcnRpY2xlcyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vQ29yZS9QYXJ0aWNsZS9WZWN0b3JcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0NvcmUvQ29udGFpbmVyXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9FbnVtc1wiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vUGx1Z2lucy9BYnNvcmJlcnMvRW51bXNcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL1BsdWdpbnMvRW1pdHRlcnMvRW51bXNcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL1BsdWdpbnMvUG9seWdvbk1hc2svRW51bXNcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL1V0aWxzL0NhbnZhc1V0aWxzXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9VdGlscy9Db2xvclV0aWxzXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9VdGlscy9OdW1iZXJVdGlsc1wiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vVXRpbHMvVXRpbHNcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL1R5cGVzXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9Db3JlL0ludGVyZmFjZXNcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0NvcmUvUGFydGljbGVcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0NvcmUvRXh0ZXJuYWxJbnRlcmFjdG9yQmFzZVwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vQ29yZS9QYXJ0aWNsZXNJbnRlcmFjdG9yQmFzZVwiKSwgZXhwb3J0cyk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/main.js": +/*!******************************************!*\ + !*** ./node_modules/tsparticles/main.js ***! + \******************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Main_initialized;\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Main = void 0;\nconst Utils_1 = __webpack_require__(/*! ./Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Loader_1 = __webpack_require__(/*! ./Core/Loader */ \"./node_modules/tsparticles/Core/Loader.js\");\nclass Main {\n constructor() {\n _Main_initialized.set(this, void 0);\n __classPrivateFieldSet(this, _Main_initialized, false, \"f\");\n }\n init() {\n if (!__classPrivateFieldGet(this, _Main_initialized, \"f\")) {\n __classPrivateFieldSet(this, _Main_initialized, true, \"f\");\n }\n }\n async loadFromArray(tagId, options, index) {\n return Loader_1.Loader.load(tagId, options, index);\n }\n async load(tagId, options) {\n return Loader_1.Loader.load(tagId, options);\n }\n async set(id, element, options) {\n return Loader_1.Loader.set(id, element, options);\n }\n async loadJSON(tagId, pathConfigJson, index) {\n return Loader_1.Loader.loadJSON(tagId, pathConfigJson, index);\n }\n async setJSON(id, element, pathConfigJson, index) {\n return Loader_1.Loader.setJSON(id, element, pathConfigJson, index);\n }\n setOnClickHandler(callback) {\n Loader_1.Loader.setOnClickHandler(callback);\n }\n dom() {\n return Loader_1.Loader.dom();\n }\n domItem(index) {\n return Loader_1.Loader.domItem(index);\n }\n async refresh() {\n for (const instance of this.dom()) {\n await instance.refresh();\n }\n }\n async addShape(shape, drawer, init, afterEffect, destroy) {\n let customDrawer;\n if (typeof drawer === \"function\") {\n customDrawer = {\n afterEffect: afterEffect,\n destroy: destroy,\n draw: drawer,\n init: init,\n };\n }\n else {\n customDrawer = drawer;\n }\n Utils_1.Plugins.addShapeDrawer(shape, customDrawer);\n await this.refresh();\n }\n async addPreset(preset, options, override = false) {\n Utils_1.Plugins.addPreset(preset, options, override);\n await this.refresh();\n }\n async addPlugin(plugin) {\n Utils_1.Plugins.addPlugin(plugin);\n await this.refresh();\n }\n async addPathGenerator(name, generator) {\n Utils_1.Plugins.addPathGenerator(name, generator);\n await this.refresh();\n }\n async addInteractor(name, interactorInitializer) {\n Utils_1.Plugins.addInteractor(name, interactorInitializer);\n await this.refresh();\n }\n async addParticleUpdater(name, updaterInitializer) {\n Utils_1.Plugins.addParticleUpdater(name, updaterInitializer);\n await this.refresh();\n }\n}\nexports.Main = Main;\n_Main_initialized = new WeakMap();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvbWFpbi5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxZQUFZO0FBQ1osZ0JBQWdCLG1CQUFPLENBQUMsMERBQVM7QUFDakMsaUJBQWlCLG1CQUFPLENBQUMsZ0VBQWU7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1oiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL21haW4uanM/Y2E2MyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0ID0gKHRoaXMgJiYgdGhpcy5fX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KSB8fCBmdW5jdGlvbiAocmVjZWl2ZXIsIHN0YXRlLCB2YWx1ZSwga2luZCwgZikge1xuICAgIGlmIChraW5kID09PSBcIm1cIikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgbWV0aG9kIGlzIG5vdCB3cml0YWJsZVwiKTtcbiAgICBpZiAoa2luZCA9PT0gXCJhXCIgJiYgIWYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBzZXR0ZXJcIik7XG4gICAgaWYgKHR5cGVvZiBzdGF0ZSA9PT0gXCJmdW5jdGlvblwiID8gcmVjZWl2ZXIgIT09IHN0YXRlIHx8ICFmIDogIXN0YXRlLmhhcyhyZWNlaXZlcikpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3Qgd3JpdGUgcHJpdmF0ZSBtZW1iZXIgdG8gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdFwiKTtcbiAgICByZXR1cm4gKGtpbmQgPT09IFwiYVwiID8gZi5jYWxsKHJlY2VpdmVyLCB2YWx1ZSkgOiBmID8gZi52YWx1ZSA9IHZhbHVlIDogc3RhdGUuc2V0KHJlY2VpdmVyLCB2YWx1ZSkpLCB2YWx1ZTtcbn07XG52YXIgX19jbGFzc1ByaXZhdGVGaWVsZEdldCA9ICh0aGlzICYmIHRoaXMuX19jbGFzc1ByaXZhdGVGaWVsZEdldCkgfHwgZnVuY3Rpb24gKHJlY2VpdmVyLCBzdGF0ZSwga2luZCwgZikge1xuICAgIGlmIChraW5kID09PSBcImFcIiAmJiAhZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIGdldHRlclwiKTtcbiAgICBpZiAodHlwZW9mIHN0YXRlID09PSBcImZ1bmN0aW9uXCIgPyByZWNlaXZlciAhPT0gc3RhdGUgfHwgIWYgOiAhc3RhdGUuaGFzKHJlY2VpdmVyKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCByZWFkIHByaXZhdGUgbWVtYmVyIGZyb20gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdFwiKTtcbiAgICByZXR1cm4ga2luZCA9PT0gXCJtXCIgPyBmIDoga2luZCA9PT0gXCJhXCIgPyBmLmNhbGwocmVjZWl2ZXIpIDogZiA/IGYudmFsdWUgOiBzdGF0ZS5nZXQocmVjZWl2ZXIpO1xufTtcbnZhciBfTWFpbl9pbml0aWFsaXplZDtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuTWFpbiA9IHZvaWQgMDtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi9VdGlsc1wiKTtcbmNvbnN0IExvYWRlcl8xID0gcmVxdWlyZShcIi4vQ29yZS9Mb2FkZXJcIik7XG5jbGFzcyBNYWluIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgX01haW5faW5pdGlhbGl6ZWQuc2V0KHRoaXMsIHZvaWQgMCk7XG4gICAgICAgIF9fY2xhc3NQcml2YXRlRmllbGRTZXQodGhpcywgX01haW5faW5pdGlhbGl6ZWQsIGZhbHNlLCBcImZcIik7XG4gICAgfVxuICAgIGluaXQoKSB7XG4gICAgICAgIGlmICghX19jbGFzc1ByaXZhdGVGaWVsZEdldCh0aGlzLCBfTWFpbl9pbml0aWFsaXplZCwgXCJmXCIpKSB7XG4gICAgICAgICAgICBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KHRoaXMsIF9NYWluX2luaXRpYWxpemVkLCB0cnVlLCBcImZcIik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYXN5bmMgbG9hZEZyb21BcnJheSh0YWdJZCwgb3B0aW9ucywgaW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIExvYWRlcl8xLkxvYWRlci5sb2FkKHRhZ0lkLCBvcHRpb25zLCBpbmRleCk7XG4gICAgfVxuICAgIGFzeW5jIGxvYWQodGFnSWQsIG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIExvYWRlcl8xLkxvYWRlci5sb2FkKHRhZ0lkLCBvcHRpb25zKTtcbiAgICB9XG4gICAgYXN5bmMgc2V0KGlkLCBlbGVtZW50LCBvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiBMb2FkZXJfMS5Mb2FkZXIuc2V0KGlkLCBlbGVtZW50LCBvcHRpb25zKTtcbiAgICB9XG4gICAgYXN5bmMgbG9hZEpTT04odGFnSWQsIHBhdGhDb25maWdKc29uLCBpbmRleCkge1xuICAgICAgICByZXR1cm4gTG9hZGVyXzEuTG9hZGVyLmxvYWRKU09OKHRhZ0lkLCBwYXRoQ29uZmlnSnNvbiwgaW5kZXgpO1xuICAgIH1cbiAgICBhc3luYyBzZXRKU09OKGlkLCBlbGVtZW50LCBwYXRoQ29uZmlnSnNvbiwgaW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIExvYWRlcl8xLkxvYWRlci5zZXRKU09OKGlkLCBlbGVtZW50LCBwYXRoQ29uZmlnSnNvbiwgaW5kZXgpO1xuICAgIH1cbiAgICBzZXRPbkNsaWNrSGFuZGxlcihjYWxsYmFjaykge1xuICAgICAgICBMb2FkZXJfMS5Mb2FkZXIuc2V0T25DbGlja0hhbmRsZXIoY2FsbGJhY2spO1xuICAgIH1cbiAgICBkb20oKSB7XG4gICAgICAgIHJldHVybiBMb2FkZXJfMS5Mb2FkZXIuZG9tKCk7XG4gICAgfVxuICAgIGRvbUl0ZW0oaW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIExvYWRlcl8xLkxvYWRlci5kb21JdGVtKGluZGV4KTtcbiAgICB9XG4gICAgYXN5bmMgcmVmcmVzaCgpIHtcbiAgICAgICAgZm9yIChjb25zdCBpbnN0YW5jZSBvZiB0aGlzLmRvbSgpKSB7XG4gICAgICAgICAgICBhd2FpdCBpbnN0YW5jZS5yZWZyZXNoKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYXN5bmMgYWRkU2hhcGUoc2hhcGUsIGRyYXdlciwgaW5pdCwgYWZ0ZXJFZmZlY3QsIGRlc3Ryb3kpIHtcbiAgICAgICAgbGV0IGN1c3RvbURyYXdlcjtcbiAgICAgICAgaWYgKHR5cGVvZiBkcmF3ZXIgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgY3VzdG9tRHJhd2VyID0ge1xuICAgICAgICAgICAgICAgIGFmdGVyRWZmZWN0OiBhZnRlckVmZmVjdCxcbiAgICAgICAgICAgICAgICBkZXN0cm95OiBkZXN0cm95LFxuICAgICAgICAgICAgICAgIGRyYXc6IGRyYXdlcixcbiAgICAgICAgICAgICAgICBpbml0OiBpbml0LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGN1c3RvbURyYXdlciA9IGRyYXdlcjtcbiAgICAgICAgfVxuICAgICAgICBVdGlsc18xLlBsdWdpbnMuYWRkU2hhcGVEcmF3ZXIoc2hhcGUsIGN1c3RvbURyYXdlcik7XG4gICAgICAgIGF3YWl0IHRoaXMucmVmcmVzaCgpO1xuICAgIH1cbiAgICBhc3luYyBhZGRQcmVzZXQocHJlc2V0LCBvcHRpb25zLCBvdmVycmlkZSA9IGZhbHNlKSB7XG4gICAgICAgIFV0aWxzXzEuUGx1Z2lucy5hZGRQcmVzZXQocHJlc2V0LCBvcHRpb25zLCBvdmVycmlkZSk7XG4gICAgICAgIGF3YWl0IHRoaXMucmVmcmVzaCgpO1xuICAgIH1cbiAgICBhc3luYyBhZGRQbHVnaW4ocGx1Z2luKSB7XG4gICAgICAgIFV0aWxzXzEuUGx1Z2lucy5hZGRQbHVnaW4ocGx1Z2luKTtcbiAgICAgICAgYXdhaXQgdGhpcy5yZWZyZXNoKCk7XG4gICAgfVxuICAgIGFzeW5jIGFkZFBhdGhHZW5lcmF0b3IobmFtZSwgZ2VuZXJhdG9yKSB7XG4gICAgICAgIFV0aWxzXzEuUGx1Z2lucy5hZGRQYXRoR2VuZXJhdG9yKG5hbWUsIGdlbmVyYXRvcik7XG4gICAgICAgIGF3YWl0IHRoaXMucmVmcmVzaCgpO1xuICAgIH1cbiAgICBhc3luYyBhZGRJbnRlcmFjdG9yKG5hbWUsIGludGVyYWN0b3JJbml0aWFsaXplcikge1xuICAgICAgICBVdGlsc18xLlBsdWdpbnMuYWRkSW50ZXJhY3RvcihuYW1lLCBpbnRlcmFjdG9ySW5pdGlhbGl6ZXIpO1xuICAgICAgICBhd2FpdCB0aGlzLnJlZnJlc2goKTtcbiAgICB9XG4gICAgYXN5bmMgYWRkUGFydGljbGVVcGRhdGVyKG5hbWUsIHVwZGF0ZXJJbml0aWFsaXplcikge1xuICAgICAgICBVdGlsc18xLlBsdWdpbnMuYWRkUGFydGljbGVVcGRhdGVyKG5hbWUsIHVwZGF0ZXJJbml0aWFsaXplcik7XG4gICAgICAgIGF3YWl0IHRoaXMucmVmcmVzaCgpO1xuICAgIH1cbn1cbmV4cG9ydHMuTWFpbiA9IE1haW47XG5fTWFpbl9pbml0aWFsaXplZCA9IG5ldyBXZWFrTWFwKCk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/main.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/pjs.js": +/*!*****************************************!*\ + !*** ./node_modules/tsparticles/pjs.js ***! + \*****************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.initPjs = void 0;\nconst initPjs = (main) => {\n const particlesJS = (tagId, options) => {\n return main.load(tagId, options);\n };\n particlesJS.load = (tagId, pathConfigJson, callback) => {\n main.loadJSON(tagId, pathConfigJson)\n .then((container) => {\n if (container) {\n callback(container);\n }\n })\n .catch(() => {\n callback(undefined);\n });\n };\n particlesJS.setOnClickHandler = (callback) => {\n main.setOnClickHandler(callback);\n };\n const pJSDom = main.dom();\n return { particlesJS, pJSDom };\n};\nexports.initPjs = initPjs;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvcGpzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSxlQUFlIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9wanMuanM/NDQ1YSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuaW5pdFBqcyA9IHZvaWQgMDtcbmNvbnN0IGluaXRQanMgPSAobWFpbikgPT4ge1xuICAgIGNvbnN0IHBhcnRpY2xlc0pTID0gKHRhZ0lkLCBvcHRpb25zKSA9PiB7XG4gICAgICAgIHJldHVybiBtYWluLmxvYWQodGFnSWQsIG9wdGlvbnMpO1xuICAgIH07XG4gICAgcGFydGljbGVzSlMubG9hZCA9ICh0YWdJZCwgcGF0aENvbmZpZ0pzb24sIGNhbGxiYWNrKSA9PiB7XG4gICAgICAgIG1haW4ubG9hZEpTT04odGFnSWQsIHBhdGhDb25maWdKc29uKVxuICAgICAgICAgICAgLnRoZW4oKGNvbnRhaW5lcikgPT4ge1xuICAgICAgICAgICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgICAgICAgICAgIGNhbGxiYWNrKGNvbnRhaW5lcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgICAgY2FsbGJhY2sodW5kZWZpbmVkKTtcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBwYXJ0aWNsZXNKUy5zZXRPbkNsaWNrSGFuZGxlciA9IChjYWxsYmFjaykgPT4ge1xuICAgICAgICBtYWluLnNldE9uQ2xpY2tIYW5kbGVyKGNhbGxiYWNrKTtcbiAgICB9O1xuICAgIGNvbnN0IHBKU0RvbSA9IG1haW4uZG9tKCk7XG4gICAgcmV0dXJuIHsgcGFydGljbGVzSlMsIHBKU0RvbSB9O1xufTtcbmV4cG9ydHMuaW5pdFBqcyA9IGluaXRQanM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/pjs.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/slim.js": +/*!******************************************!*\ + !*** ./node_modules/tsparticles/slim.js ***! + \******************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadSlim = void 0;\nconst Circle_1 = __webpack_require__(/*! ./Shapes/Circle */ \"./node_modules/tsparticles/Shapes/Circle/index.js\");\nconst Life_1 = __webpack_require__(/*! ./Updaters/Life */ \"./node_modules/tsparticles/Updaters/Life/index.js\");\nconst Connect_1 = __webpack_require__(/*! ./Interactions/External/Connect */ \"./node_modules/tsparticles/Interactions/External/Connect/index.js\");\nconst Opacity_1 = __webpack_require__(/*! ./Updaters/Opacity */ \"./node_modules/tsparticles/Updaters/Opacity/index.js\");\nconst Image_1 = __webpack_require__(/*! ./Shapes/Image */ \"./node_modules/tsparticles/Shapes/Image/index.js\");\nconst Polygon_1 = __webpack_require__(/*! ./Shapes/Polygon */ \"./node_modules/tsparticles/Shapes/Polygon/index.js\");\nconst Bubble_1 = __webpack_require__(/*! ./Interactions/External/Bubble */ \"./node_modules/tsparticles/Interactions/External/Bubble/index.js\");\nconst Attract_1 = __webpack_require__(/*! ./Interactions/External/Attract */ \"./node_modules/tsparticles/Interactions/External/Attract/index.js\");\nconst Grab_1 = __webpack_require__(/*! ./Interactions/External/Grab */ \"./node_modules/tsparticles/Interactions/External/Grab/index.js\");\nconst Star_1 = __webpack_require__(/*! ./Shapes/Star */ \"./node_modules/tsparticles/Shapes/Star/index.js\");\nconst Attract_2 = __webpack_require__(/*! ./Interactions/Particles/Attract */ \"./node_modules/tsparticles/Interactions/Particles/Attract/index.js\");\nconst Square_1 = __webpack_require__(/*! ./Shapes/Square */ \"./node_modules/tsparticles/Shapes/Square/index.js\");\nconst StrokeColor_1 = __webpack_require__(/*! ./Updaters/StrokeColor */ \"./node_modules/tsparticles/Updaters/StrokeColor/index.js\");\nconst Color_1 = __webpack_require__(/*! ./Updaters/Color */ \"./node_modules/tsparticles/Updaters/Color/index.js\");\nconst Collisions_1 = __webpack_require__(/*! ./Interactions/Particles/Collisions */ \"./node_modules/tsparticles/Interactions/Particles/Collisions/index.js\");\nconst Angle_1 = __webpack_require__(/*! ./Updaters/Angle */ \"./node_modules/tsparticles/Updaters/Angle/index.js\");\nconst OutModes_1 = __webpack_require__(/*! ./Updaters/OutModes */ \"./node_modules/tsparticles/Updaters/OutModes/index.js\");\nconst Repulse_1 = __webpack_require__(/*! ./Interactions/External/Repulse */ \"./node_modules/tsparticles/Interactions/External/Repulse/index.js\");\nconst Line_1 = __webpack_require__(/*! ./Shapes/Line */ \"./node_modules/tsparticles/Shapes/Line/index.js\");\nconst Bounce_1 = __webpack_require__(/*! ./Interactions/External/Bounce */ \"./node_modules/tsparticles/Interactions/External/Bounce/index.js\");\nconst Text_1 = __webpack_require__(/*! ./Shapes/Text */ \"./node_modules/tsparticles/Shapes/Text/index.js\");\nconst Links_1 = __webpack_require__(/*! ./Interactions/Particles/Links */ \"./node_modules/tsparticles/Interactions/Particles/Links/index.js\");\nconst Size_1 = __webpack_require__(/*! ./Updaters/Size */ \"./node_modules/tsparticles/Updaters/Size/index.js\");\nasync function loadSlim(tsParticles) {\n await (0, Attract_1.loadExternalAttractInteraction)(tsParticles);\n await (0, Bounce_1.loadExternalBounceInteraction)(tsParticles);\n await (0, Bubble_1.loadExternalBubbleInteraction)(tsParticles);\n await (0, Connect_1.loadExternalConnectInteraction)(tsParticles);\n await (0, Grab_1.loadExternalGrabInteraction)(tsParticles);\n await (0, Repulse_1.loadExternalRepulseInteraction)(tsParticles);\n await (0, Attract_2.loadParticlesAttractInteraction)(tsParticles);\n await (0, Collisions_1.loadParticlesCollisionsInteraction)(tsParticles);\n await (0, Links_1.loadParticlesLinksInteraction)(tsParticles);\n await (0, Circle_1.loadCircleShape)(tsParticles);\n await (0, Image_1.loadImageShape)(tsParticles);\n await (0, Line_1.loadLineShape)(tsParticles);\n await (0, Polygon_1.loadPolygonShape)(tsParticles);\n await (0, Square_1.loadSquareShape)(tsParticles);\n await (0, Star_1.loadStarShape)(tsParticles);\n await (0, Text_1.loadTextShape)(tsParticles);\n await (0, Life_1.loadLifeUpdater)(tsParticles);\n await (0, Opacity_1.loadOpacityUpdater)(tsParticles);\n await (0, Size_1.loadSizeUpdater)(tsParticles);\n await (0, Angle_1.loadAngleUpdater)(tsParticles);\n await (0, Color_1.loadColorUpdater)(tsParticles);\n await (0, StrokeColor_1.loadStrokeColorUpdater)(tsParticles);\n await (0, OutModes_1.loadOutModesUpdater)(tsParticles);\n}\nexports.loadSlim = loadSlim;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvc2xpbS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxnQkFBZ0I7QUFDaEIsaUJBQWlCLG1CQUFPLENBQUMsMEVBQWlCO0FBQzFDLGVBQWUsbUJBQU8sQ0FBQywwRUFBaUI7QUFDeEMsa0JBQWtCLG1CQUFPLENBQUMsMEdBQWlDO0FBQzNELGtCQUFrQixtQkFBTyxDQUFDLGdGQUFvQjtBQUM5QyxnQkFBZ0IsbUJBQU8sQ0FBQyx3RUFBZ0I7QUFDeEMsa0JBQWtCLG1CQUFPLENBQUMsNEVBQWtCO0FBQzVDLGlCQUFpQixtQkFBTyxDQUFDLHdHQUFnQztBQUN6RCxrQkFBa0IsbUJBQU8sQ0FBQywwR0FBaUM7QUFDM0QsZUFBZSxtQkFBTyxDQUFDLG9HQUE4QjtBQUNyRCxlQUFlLG1CQUFPLENBQUMsc0VBQWU7QUFDdEMsa0JBQWtCLG1CQUFPLENBQUMsNEdBQWtDO0FBQzVELGlCQUFpQixtQkFBTyxDQUFDLDBFQUFpQjtBQUMxQyxzQkFBc0IsbUJBQU8sQ0FBQyx3RkFBd0I7QUFDdEQsZ0JBQWdCLG1CQUFPLENBQUMsNEVBQWtCO0FBQzFDLHFCQUFxQixtQkFBTyxDQUFDLGtIQUFxQztBQUNsRSxnQkFBZ0IsbUJBQU8sQ0FBQyw0RUFBa0I7QUFDMUMsbUJBQW1CLG1CQUFPLENBQUMsa0ZBQXFCO0FBQ2hELGtCQUFrQixtQkFBTyxDQUFDLDBHQUFpQztBQUMzRCxlQUFlLG1CQUFPLENBQUMsc0VBQWU7QUFDdEMsaUJBQWlCLG1CQUFPLENBQUMsd0dBQWdDO0FBQ3pELGVBQWUsbUJBQU8sQ0FBQyxzRUFBZTtBQUN0QyxnQkFBZ0IsbUJBQU8sQ0FBQyx3R0FBZ0M7QUFDeEQsZUFBZSxtQkFBTyxDQUFDLDBFQUFpQjtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvc2xpbS5qcz82ZmM0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5sb2FkU2xpbSA9IHZvaWQgMDtcbmNvbnN0IENpcmNsZV8xID0gcmVxdWlyZShcIi4vU2hhcGVzL0NpcmNsZVwiKTtcbmNvbnN0IExpZmVfMSA9IHJlcXVpcmUoXCIuL1VwZGF0ZXJzL0xpZmVcIik7XG5jb25zdCBDb25uZWN0XzEgPSByZXF1aXJlKFwiLi9JbnRlcmFjdGlvbnMvRXh0ZXJuYWwvQ29ubmVjdFwiKTtcbmNvbnN0IE9wYWNpdHlfMSA9IHJlcXVpcmUoXCIuL1VwZGF0ZXJzL09wYWNpdHlcIik7XG5jb25zdCBJbWFnZV8xID0gcmVxdWlyZShcIi4vU2hhcGVzL0ltYWdlXCIpO1xuY29uc3QgUG9seWdvbl8xID0gcmVxdWlyZShcIi4vU2hhcGVzL1BvbHlnb25cIik7XG5jb25zdCBCdWJibGVfMSA9IHJlcXVpcmUoXCIuL0ludGVyYWN0aW9ucy9FeHRlcm5hbC9CdWJibGVcIik7XG5jb25zdCBBdHRyYWN0XzEgPSByZXF1aXJlKFwiLi9JbnRlcmFjdGlvbnMvRXh0ZXJuYWwvQXR0cmFjdFwiKTtcbmNvbnN0IEdyYWJfMSA9IHJlcXVpcmUoXCIuL0ludGVyYWN0aW9ucy9FeHRlcm5hbC9HcmFiXCIpO1xuY29uc3QgU3Rhcl8xID0gcmVxdWlyZShcIi4vU2hhcGVzL1N0YXJcIik7XG5jb25zdCBBdHRyYWN0XzIgPSByZXF1aXJlKFwiLi9JbnRlcmFjdGlvbnMvUGFydGljbGVzL0F0dHJhY3RcIik7XG5jb25zdCBTcXVhcmVfMSA9IHJlcXVpcmUoXCIuL1NoYXBlcy9TcXVhcmVcIik7XG5jb25zdCBTdHJva2VDb2xvcl8xID0gcmVxdWlyZShcIi4vVXBkYXRlcnMvU3Ryb2tlQ29sb3JcIik7XG5jb25zdCBDb2xvcl8xID0gcmVxdWlyZShcIi4vVXBkYXRlcnMvQ29sb3JcIik7XG5jb25zdCBDb2xsaXNpb25zXzEgPSByZXF1aXJlKFwiLi9JbnRlcmFjdGlvbnMvUGFydGljbGVzL0NvbGxpc2lvbnNcIik7XG5jb25zdCBBbmdsZV8xID0gcmVxdWlyZShcIi4vVXBkYXRlcnMvQW5nbGVcIik7XG5jb25zdCBPdXRNb2Rlc18xID0gcmVxdWlyZShcIi4vVXBkYXRlcnMvT3V0TW9kZXNcIik7XG5jb25zdCBSZXB1bHNlXzEgPSByZXF1aXJlKFwiLi9JbnRlcmFjdGlvbnMvRXh0ZXJuYWwvUmVwdWxzZVwiKTtcbmNvbnN0IExpbmVfMSA9IHJlcXVpcmUoXCIuL1NoYXBlcy9MaW5lXCIpO1xuY29uc3QgQm91bmNlXzEgPSByZXF1aXJlKFwiLi9JbnRlcmFjdGlvbnMvRXh0ZXJuYWwvQm91bmNlXCIpO1xuY29uc3QgVGV4dF8xID0gcmVxdWlyZShcIi4vU2hhcGVzL1RleHRcIik7XG5jb25zdCBMaW5rc18xID0gcmVxdWlyZShcIi4vSW50ZXJhY3Rpb25zL1BhcnRpY2xlcy9MaW5rc1wiKTtcbmNvbnN0IFNpemVfMSA9IHJlcXVpcmUoXCIuL1VwZGF0ZXJzL1NpemVcIik7XG5hc3luYyBmdW5jdGlvbiBsb2FkU2xpbSh0c1BhcnRpY2xlcykge1xuICAgIGF3YWl0ICgwLCBBdHRyYWN0XzEubG9hZEV4dGVybmFsQXR0cmFjdEludGVyYWN0aW9uKSh0c1BhcnRpY2xlcyk7XG4gICAgYXdhaXQgKDAsIEJvdW5jZV8xLmxvYWRFeHRlcm5hbEJvdW5jZUludGVyYWN0aW9uKSh0c1BhcnRpY2xlcyk7XG4gICAgYXdhaXQgKDAsIEJ1YmJsZV8xLmxvYWRFeHRlcm5hbEJ1YmJsZUludGVyYWN0aW9uKSh0c1BhcnRpY2xlcyk7XG4gICAgYXdhaXQgKDAsIENvbm5lY3RfMS5sb2FkRXh0ZXJuYWxDb25uZWN0SW50ZXJhY3Rpb24pKHRzUGFydGljbGVzKTtcbiAgICBhd2FpdCAoMCwgR3JhYl8xLmxvYWRFeHRlcm5hbEdyYWJJbnRlcmFjdGlvbikodHNQYXJ0aWNsZXMpO1xuICAgIGF3YWl0ICgwLCBSZXB1bHNlXzEubG9hZEV4dGVybmFsUmVwdWxzZUludGVyYWN0aW9uKSh0c1BhcnRpY2xlcyk7XG4gICAgYXdhaXQgKDAsIEF0dHJhY3RfMi5sb2FkUGFydGljbGVzQXR0cmFjdEludGVyYWN0aW9uKSh0c1BhcnRpY2xlcyk7XG4gICAgYXdhaXQgKDAsIENvbGxpc2lvbnNfMS5sb2FkUGFydGljbGVzQ29sbGlzaW9uc0ludGVyYWN0aW9uKSh0c1BhcnRpY2xlcyk7XG4gICAgYXdhaXQgKDAsIExpbmtzXzEubG9hZFBhcnRpY2xlc0xpbmtzSW50ZXJhY3Rpb24pKHRzUGFydGljbGVzKTtcbiAgICBhd2FpdCAoMCwgQ2lyY2xlXzEubG9hZENpcmNsZVNoYXBlKSh0c1BhcnRpY2xlcyk7XG4gICAgYXdhaXQgKDAsIEltYWdlXzEubG9hZEltYWdlU2hhcGUpKHRzUGFydGljbGVzKTtcbiAgICBhd2FpdCAoMCwgTGluZV8xLmxvYWRMaW5lU2hhcGUpKHRzUGFydGljbGVzKTtcbiAgICBhd2FpdCAoMCwgUG9seWdvbl8xLmxvYWRQb2x5Z29uU2hhcGUpKHRzUGFydGljbGVzKTtcbiAgICBhd2FpdCAoMCwgU3F1YXJlXzEubG9hZFNxdWFyZVNoYXBlKSh0c1BhcnRpY2xlcyk7XG4gICAgYXdhaXQgKDAsIFN0YXJfMS5sb2FkU3RhclNoYXBlKSh0c1BhcnRpY2xlcyk7XG4gICAgYXdhaXQgKDAsIFRleHRfMS5sb2FkVGV4dFNoYXBlKSh0c1BhcnRpY2xlcyk7XG4gICAgYXdhaXQgKDAsIExpZmVfMS5sb2FkTGlmZVVwZGF0ZXIpKHRzUGFydGljbGVzKTtcbiAgICBhd2FpdCAoMCwgT3BhY2l0eV8xLmxvYWRPcGFjaXR5VXBkYXRlcikodHNQYXJ0aWNsZXMpO1xuICAgIGF3YWl0ICgwLCBTaXplXzEubG9hZFNpemVVcGRhdGVyKSh0c1BhcnRpY2xlcyk7XG4gICAgYXdhaXQgKDAsIEFuZ2xlXzEubG9hZEFuZ2xlVXBkYXRlcikodHNQYXJ0aWNsZXMpO1xuICAgIGF3YWl0ICgwLCBDb2xvcl8xLmxvYWRDb2xvclVwZGF0ZXIpKHRzUGFydGljbGVzKTtcbiAgICBhd2FpdCAoMCwgU3Ryb2tlQ29sb3JfMS5sb2FkU3Ryb2tlQ29sb3JVcGRhdGVyKSh0c1BhcnRpY2xlcyk7XG4gICAgYXdhaXQgKDAsIE91dE1vZGVzXzEubG9hZE91dE1vZGVzVXBkYXRlcikodHNQYXJ0aWNsZXMpO1xufVxuZXhwb3J0cy5sb2FkU2xpbSA9IGxvYWRTbGltO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/slim.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js ***! + \*********************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _asyncToGenerator; }\n/* harmony export */ });\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXN5bmNUb0dlbmVyYXRvci5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsS0FBSztBQUNMO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2FzeW5jVG9HZW5lcmF0b3IuanM/NTc2ZiJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBhc3luY0dlbmVyYXRvclN0ZXAoZ2VuLCByZXNvbHZlLCByZWplY3QsIF9uZXh0LCBfdGhyb3csIGtleSwgYXJnKSB7XG4gIHRyeSB7XG4gICAgdmFyIGluZm8gPSBnZW5ba2V5XShhcmcpO1xuICAgIHZhciB2YWx1ZSA9IGluZm8udmFsdWU7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmVqZWN0KGVycm9yKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoaW5mby5kb25lKSB7XG4gICAgcmVzb2x2ZSh2YWx1ZSk7XG4gIH0gZWxzZSB7XG4gICAgUHJvbWlzZS5yZXNvbHZlKHZhbHVlKS50aGVuKF9uZXh0LCBfdGhyb3cpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9hc3luY1RvR2VuZXJhdG9yKGZuKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzLFxuICAgICAgICBhcmdzID0gYXJndW1lbnRzO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICB2YXIgZ2VuID0gZm4uYXBwbHkoc2VsZiwgYXJncyk7XG5cbiAgICAgIGZ1bmN0aW9uIF9uZXh0KHZhbHVlKSB7XG4gICAgICAgIGFzeW5jR2VuZXJhdG9yU3RlcChnZW4sIHJlc29sdmUsIHJlamVjdCwgX25leHQsIF90aHJvdywgXCJuZXh0XCIsIHZhbHVlKTtcbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gX3Rocm93KGVycikge1xuICAgICAgICBhc3luY0dlbmVyYXRvclN0ZXAoZ2VuLCByZXNvbHZlLCByZWplY3QsIF9uZXh0LCBfdGhyb3csIFwidGhyb3dcIiwgZXJyKTtcbiAgICAgIH1cblxuICAgICAgX25leHQodW5kZWZpbmVkKTtcbiAgICB9KTtcbiAgfTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_DataView.js": +/*!*********************************************!*\ + !*** ./node_modules/lodash-es/_DataView.js ***! + \*********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getNative_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getNative.js */ \"./node_modules/lodash-es/_getNative.js\");\n/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_root.js */ \"./node_modules/lodash-es/_root.js\");\n\n\n\n/* Built-in method references that are verified to be native. */\nvar DataView = (0,_getNative_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_root_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], 'DataView');\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (DataView);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19EYXRhVmlldy5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7QUFBd0M7QUFDVjs7QUFFOUI7QUFDQSxlQUFlLHlEQUFTLENBQUMsZ0RBQUk7O0FBRTdCLCtEQUFlLFFBQVEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19EYXRhVmlldy5qcz9lZTcxIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBnZXROYXRpdmUgZnJvbSAnLi9fZ2V0TmF0aXZlLmpzJztcbmltcG9ydCByb290IGZyb20gJy4vX3Jvb3QuanMnO1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyB0aGF0IGFyZSB2ZXJpZmllZCB0byBiZSBuYXRpdmUuICovXG52YXIgRGF0YVZpZXcgPSBnZXROYXRpdmUocm9vdCwgJ0RhdGFWaWV3Jyk7XG5cbmV4cG9ydCBkZWZhdWx0IERhdGFWaWV3O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_DataView.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_Hash.js": +/*!*****************************************!*\ + !*** ./node_modules/lodash-es/_Hash.js ***! + \*****************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _hashClear_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_hashClear.js */ \"./node_modules/lodash-es/_hashClear.js\");\n/* harmony import */ var _hashDelete_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_hashDelete.js */ \"./node_modules/lodash-es/_hashDelete.js\");\n/* harmony import */ var _hashGet_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_hashGet.js */ \"./node_modules/lodash-es/_hashGet.js\");\n/* harmony import */ var _hashHas_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_hashHas.js */ \"./node_modules/lodash-es/_hashHas.js\");\n/* harmony import */ var _hashSet_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_hashSet.js */ \"./node_modules/lodash-es/_hashSet.js\");\n\n\n\n\n\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = _hashClear_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\nHash.prototype['delete'] = _hashDelete_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\nHash.prototype.get = _hashGet_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\nHash.prototype.has = _hashHas_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"];\nHash.prototype.set = _hashSet_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"];\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Hash);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19IYXNoLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUF3QztBQUNFO0FBQ047QUFDQTtBQUNBOztBQUVwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHVCQUF1QixxREFBUztBQUNoQywyQkFBMkIsc0RBQVU7QUFDckMscUJBQXFCLG1EQUFPO0FBQzVCLHFCQUFxQixtREFBTztBQUM1QixxQkFBcUIsbURBQU87O0FBRTVCLCtEQUFlLElBQUksRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19IYXNoLmpzP2JmZDciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGhhc2hDbGVhciBmcm9tICcuL19oYXNoQ2xlYXIuanMnO1xuaW1wb3J0IGhhc2hEZWxldGUgZnJvbSAnLi9faGFzaERlbGV0ZS5qcyc7XG5pbXBvcnQgaGFzaEdldCBmcm9tICcuL19oYXNoR2V0LmpzJztcbmltcG9ydCBoYXNoSGFzIGZyb20gJy4vX2hhc2hIYXMuanMnO1xuaW1wb3J0IGhhc2hTZXQgZnJvbSAnLi9faGFzaFNldC5qcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGhhc2ggb2JqZWN0LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAY29uc3RydWN0b3JcbiAqIEBwYXJhbSB7QXJyYXl9IFtlbnRyaWVzXSBUaGUga2V5LXZhbHVlIHBhaXJzIHRvIGNhY2hlLlxuICovXG5mdW5jdGlvbiBIYXNoKGVudHJpZXMpIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBlbnRyaWVzID09IG51bGwgPyAwIDogZW50cmllcy5sZW5ndGg7XG5cbiAgdGhpcy5jbGVhcigpO1xuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHZhciBlbnRyeSA9IGVudHJpZXNbaW5kZXhdO1xuICAgIHRoaXMuc2V0KGVudHJ5WzBdLCBlbnRyeVsxXSk7XG4gIH1cbn1cblxuLy8gQWRkIG1ldGhvZHMgdG8gYEhhc2hgLlxuSGFzaC5wcm90b3R5cGUuY2xlYXIgPSBoYXNoQ2xlYXI7XG5IYXNoLnByb3RvdHlwZVsnZGVsZXRlJ10gPSBoYXNoRGVsZXRlO1xuSGFzaC5wcm90b3R5cGUuZ2V0ID0gaGFzaEdldDtcbkhhc2gucHJvdG90eXBlLmhhcyA9IGhhc2hIYXM7XG5IYXNoLnByb3RvdHlwZS5zZXQgPSBoYXNoU2V0O1xuXG5leHBvcnQgZGVmYXVsdCBIYXNoO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_Hash.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_ListCache.js": +/*!**********************************************!*\ + !*** ./node_modules/lodash-es/_ListCache.js ***! + \**********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _listCacheClear_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_listCacheClear.js */ \"./node_modules/lodash-es/_listCacheClear.js\");\n/* harmony import */ var _listCacheDelete_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_listCacheDelete.js */ \"./node_modules/lodash-es/_listCacheDelete.js\");\n/* harmony import */ var _listCacheGet_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_listCacheGet.js */ \"./node_modules/lodash-es/_listCacheGet.js\");\n/* harmony import */ var _listCacheHas_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_listCacheHas.js */ \"./node_modules/lodash-es/_listCacheHas.js\");\n/* harmony import */ var _listCacheSet_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_listCacheSet.js */ \"./node_modules/lodash-es/_listCacheSet.js\");\n\n\n\n\n\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = _listCacheClear_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\nListCache.prototype['delete'] = _listCacheDelete_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\nListCache.prototype.get = _listCacheGet_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\nListCache.prototype.has = _listCacheHas_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"];\nListCache.prototype.set = _listCacheSet_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"];\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (ListCache);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19MaXN0Q2FjaGUuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQWtEO0FBQ0U7QUFDTjtBQUNBO0FBQ0E7O0FBRTlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsNEJBQTRCLDBEQUFjO0FBQzFDLGdDQUFnQywyREFBZTtBQUMvQywwQkFBMEIsd0RBQVk7QUFDdEMsMEJBQTBCLHdEQUFZO0FBQ3RDLDBCQUEwQix3REFBWTs7QUFFdEMsK0RBQWUsU0FBUyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX0xpc3RDYWNoZS5qcz8wOTFmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBsaXN0Q2FjaGVDbGVhciBmcm9tICcuL19saXN0Q2FjaGVDbGVhci5qcyc7XG5pbXBvcnQgbGlzdENhY2hlRGVsZXRlIGZyb20gJy4vX2xpc3RDYWNoZURlbGV0ZS5qcyc7XG5pbXBvcnQgbGlzdENhY2hlR2V0IGZyb20gJy4vX2xpc3RDYWNoZUdldC5qcyc7XG5pbXBvcnQgbGlzdENhY2hlSGFzIGZyb20gJy4vX2xpc3RDYWNoZUhhcy5qcyc7XG5pbXBvcnQgbGlzdENhY2hlU2V0IGZyb20gJy4vX2xpc3RDYWNoZVNldC5qcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBsaXN0IGNhY2hlIG9iamVjdC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQGNvbnN0cnVjdG9yXG4gKiBAcGFyYW0ge0FycmF5fSBbZW50cmllc10gVGhlIGtleS12YWx1ZSBwYWlycyB0byBjYWNoZS5cbiAqL1xuZnVuY3Rpb24gTGlzdENhY2hlKGVudHJpZXMpIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBlbnRyaWVzID09IG51bGwgPyAwIDogZW50cmllcy5sZW5ndGg7XG5cbiAgdGhpcy5jbGVhcigpO1xuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHZhciBlbnRyeSA9IGVudHJpZXNbaW5kZXhdO1xuICAgIHRoaXMuc2V0KGVudHJ5WzBdLCBlbnRyeVsxXSk7XG4gIH1cbn1cblxuLy8gQWRkIG1ldGhvZHMgdG8gYExpc3RDYWNoZWAuXG5MaXN0Q2FjaGUucHJvdG90eXBlLmNsZWFyID0gbGlzdENhY2hlQ2xlYXI7XG5MaXN0Q2FjaGUucHJvdG90eXBlWydkZWxldGUnXSA9IGxpc3RDYWNoZURlbGV0ZTtcbkxpc3RDYWNoZS5wcm90b3R5cGUuZ2V0ID0gbGlzdENhY2hlR2V0O1xuTGlzdENhY2hlLnByb3RvdHlwZS5oYXMgPSBsaXN0Q2FjaGVIYXM7XG5MaXN0Q2FjaGUucHJvdG90eXBlLnNldCA9IGxpc3RDYWNoZVNldDtcblxuZXhwb3J0IGRlZmF1bHQgTGlzdENhY2hlO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_ListCache.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_Map.js": +/*!****************************************!*\ + !*** ./node_modules/lodash-es/_Map.js ***! + \****************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getNative_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getNative.js */ \"./node_modules/lodash-es/_getNative.js\");\n/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_root.js */ \"./node_modules/lodash-es/_root.js\");\n\n\n\n/* Built-in method references that are verified to be native. */\nvar Map = (0,_getNative_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_root_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], 'Map');\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Map);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19NYXAuanMuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQXdDO0FBQ1Y7O0FBRTlCO0FBQ0EsVUFBVSx5REFBUyxDQUFDLGdEQUFJOztBQUV4QiwrREFBZSxHQUFHLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fTWFwLmpzP2Y3YjEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldE5hdGl2ZSBmcm9tICcuL19nZXROYXRpdmUuanMnO1xuaW1wb3J0IHJvb3QgZnJvbSAnLi9fcm9vdC5qcyc7XG5cbi8qIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIHRoYXQgYXJlIHZlcmlmaWVkIHRvIGJlIG5hdGl2ZS4gKi9cbnZhciBNYXAgPSBnZXROYXRpdmUocm9vdCwgJ01hcCcpO1xuXG5leHBvcnQgZGVmYXVsdCBNYXA7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_Map.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_MapCache.js": +/*!*********************************************!*\ + !*** ./node_modules/lodash-es/_MapCache.js ***! + \*********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _mapCacheClear_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_mapCacheClear.js */ \"./node_modules/lodash-es/_mapCacheClear.js\");\n/* harmony import */ var _mapCacheDelete_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_mapCacheDelete.js */ \"./node_modules/lodash-es/_mapCacheDelete.js\");\n/* harmony import */ var _mapCacheGet_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_mapCacheGet.js */ \"./node_modules/lodash-es/_mapCacheGet.js\");\n/* harmony import */ var _mapCacheHas_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_mapCacheHas.js */ \"./node_modules/lodash-es/_mapCacheHas.js\");\n/* harmony import */ var _mapCacheSet_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_mapCacheSet.js */ \"./node_modules/lodash-es/_mapCacheSet.js\");\n\n\n\n\n\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = _mapCacheClear_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\nMapCache.prototype['delete'] = _mapCacheDelete_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\nMapCache.prototype.get = _mapCacheGet_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\nMapCache.prototype.has = _mapCacheHas_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"];\nMapCache.prototype.set = _mapCacheSet_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"];\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (MapCache);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19NYXBDYWNoZS5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBZ0Q7QUFDRTtBQUNOO0FBQ0E7QUFDQTs7QUFFNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSwyQkFBMkIseURBQWE7QUFDeEMsK0JBQStCLDBEQUFjO0FBQzdDLHlCQUF5Qix1REFBVztBQUNwQyx5QkFBeUIsdURBQVc7QUFDcEMseUJBQXlCLHVEQUFXOztBQUVwQywrREFBZSxRQUFRLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fTWFwQ2FjaGUuanM/NWZiZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbWFwQ2FjaGVDbGVhciBmcm9tICcuL19tYXBDYWNoZUNsZWFyLmpzJztcbmltcG9ydCBtYXBDYWNoZURlbGV0ZSBmcm9tICcuL19tYXBDYWNoZURlbGV0ZS5qcyc7XG5pbXBvcnQgbWFwQ2FjaGVHZXQgZnJvbSAnLi9fbWFwQ2FjaGVHZXQuanMnO1xuaW1wb3J0IG1hcENhY2hlSGFzIGZyb20gJy4vX21hcENhY2hlSGFzLmpzJztcbmltcG9ydCBtYXBDYWNoZVNldCBmcm9tICcuL19tYXBDYWNoZVNldC5qcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhIG1hcCBjYWNoZSBvYmplY3QgdG8gc3RvcmUga2V5LXZhbHVlIHBhaXJzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAY29uc3RydWN0b3JcbiAqIEBwYXJhbSB7QXJyYXl9IFtlbnRyaWVzXSBUaGUga2V5LXZhbHVlIHBhaXJzIHRvIGNhY2hlLlxuICovXG5mdW5jdGlvbiBNYXBDYWNoZShlbnRyaWVzKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gZW50cmllcyA9PSBudWxsID8gMCA6IGVudHJpZXMubGVuZ3RoO1xuXG4gIHRoaXMuY2xlYXIoKTtcbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICB2YXIgZW50cnkgPSBlbnRyaWVzW2luZGV4XTtcbiAgICB0aGlzLnNldChlbnRyeVswXSwgZW50cnlbMV0pO1xuICB9XG59XG5cbi8vIEFkZCBtZXRob2RzIHRvIGBNYXBDYWNoZWAuXG5NYXBDYWNoZS5wcm90b3R5cGUuY2xlYXIgPSBtYXBDYWNoZUNsZWFyO1xuTWFwQ2FjaGUucHJvdG90eXBlWydkZWxldGUnXSA9IG1hcENhY2hlRGVsZXRlO1xuTWFwQ2FjaGUucHJvdG90eXBlLmdldCA9IG1hcENhY2hlR2V0O1xuTWFwQ2FjaGUucHJvdG90eXBlLmhhcyA9IG1hcENhY2hlSGFzO1xuTWFwQ2FjaGUucHJvdG90eXBlLnNldCA9IG1hcENhY2hlU2V0O1xuXG5leHBvcnQgZGVmYXVsdCBNYXBDYWNoZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_MapCache.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_Promise.js": +/*!********************************************!*\ + !*** ./node_modules/lodash-es/_Promise.js ***! + \********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getNative_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getNative.js */ \"./node_modules/lodash-es/_getNative.js\");\n/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_root.js */ \"./node_modules/lodash-es/_root.js\");\n\n\n\n/* Built-in method references that are verified to be native. */\nvar Promise = (0,_getNative_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_root_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], 'Promise');\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Promise);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19Qcm9taXNlLmpzLmpzIiwibWFwcGluZ3MiOiI7OztBQUF3QztBQUNWOztBQUU5QjtBQUNBLGNBQWMseURBQVMsQ0FBQyxnREFBSTs7QUFFNUIsK0RBQWUsT0FBTyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX1Byb21pc2UuanM/MWNmNCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0TmF0aXZlIGZyb20gJy4vX2dldE5hdGl2ZS5qcyc7XG5pbXBvcnQgcm9vdCBmcm9tICcuL19yb290LmpzJztcblxuLyogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgdGhhdCBhcmUgdmVyaWZpZWQgdG8gYmUgbmF0aXZlLiAqL1xudmFyIFByb21pc2UgPSBnZXROYXRpdmUocm9vdCwgJ1Byb21pc2UnKTtcblxuZXhwb3J0IGRlZmF1bHQgUHJvbWlzZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_Promise.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_Set.js": +/*!****************************************!*\ + !*** ./node_modules/lodash-es/_Set.js ***! + \****************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getNative_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getNative.js */ \"./node_modules/lodash-es/_getNative.js\");\n/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_root.js */ \"./node_modules/lodash-es/_root.js\");\n\n\n\n/* Built-in method references that are verified to be native. */\nvar Set = (0,_getNative_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_root_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], 'Set');\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Set);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19TZXQuanMuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQXdDO0FBQ1Y7O0FBRTlCO0FBQ0EsVUFBVSx5REFBUyxDQUFDLGdEQUFJOztBQUV4QiwrREFBZSxHQUFHLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fU2V0LmpzP2E0YzEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldE5hdGl2ZSBmcm9tICcuL19nZXROYXRpdmUuanMnO1xuaW1wb3J0IHJvb3QgZnJvbSAnLi9fcm9vdC5qcyc7XG5cbi8qIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIHRoYXQgYXJlIHZlcmlmaWVkIHRvIGJlIG5hdGl2ZS4gKi9cbnZhciBTZXQgPSBnZXROYXRpdmUocm9vdCwgJ1NldCcpO1xuXG5leHBvcnQgZGVmYXVsdCBTZXQ7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_Set.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_Stack.js": +/*!******************************************!*\ + !*** ./node_modules/lodash-es/_Stack.js ***! + \******************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ListCache_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ListCache.js */ \"./node_modules/lodash-es/_ListCache.js\");\n/* harmony import */ var _stackClear_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_stackClear.js */ \"./node_modules/lodash-es/_stackClear.js\");\n/* harmony import */ var _stackDelete_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_stackDelete.js */ \"./node_modules/lodash-es/_stackDelete.js\");\n/* harmony import */ var _stackGet_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_stackGet.js */ \"./node_modules/lodash-es/_stackGet.js\");\n/* harmony import */ var _stackHas_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_stackHas.js */ \"./node_modules/lodash-es/_stackHas.js\");\n/* harmony import */ var _stackSet_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./_stackSet.js */ \"./node_modules/lodash-es/_stackSet.js\");\n\n\n\n\n\n\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new _ListCache_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"](entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = _stackClear_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\nStack.prototype['delete'] = _stackDelete_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\nStack.prototype.get = _stackGet_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"];\nStack.prototype.has = _stackHas_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"];\nStack.prototype.set = _stackSet_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"];\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Stack);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19TdGFjay5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQXdDO0FBQ0U7QUFDRTtBQUNOO0FBQ0E7QUFDQTs7QUFFdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQjtBQUNBO0FBQ0EsaUNBQWlDLHFEQUFTO0FBQzFDO0FBQ0E7O0FBRUE7QUFDQSx3QkFBd0Isc0RBQVU7QUFDbEMsNEJBQTRCLHVEQUFXO0FBQ3ZDLHNCQUFzQixvREFBUTtBQUM5QixzQkFBc0Isb0RBQVE7QUFDOUIsc0JBQXNCLG9EQUFROztBQUU5QiwrREFBZSxLQUFLLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fU3RhY2suanM/NTRhYiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTGlzdENhY2hlIGZyb20gJy4vX0xpc3RDYWNoZS5qcyc7XG5pbXBvcnQgc3RhY2tDbGVhciBmcm9tICcuL19zdGFja0NsZWFyLmpzJztcbmltcG9ydCBzdGFja0RlbGV0ZSBmcm9tICcuL19zdGFja0RlbGV0ZS5qcyc7XG5pbXBvcnQgc3RhY2tHZXQgZnJvbSAnLi9fc3RhY2tHZXQuanMnO1xuaW1wb3J0IHN0YWNrSGFzIGZyb20gJy4vX3N0YWNrSGFzLmpzJztcbmltcG9ydCBzdGFja1NldCBmcm9tICcuL19zdGFja1NldC5qcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhIHN0YWNrIGNhY2hlIG9iamVjdCB0byBzdG9yZSBrZXktdmFsdWUgcGFpcnMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBjb25zdHJ1Y3RvclxuICogQHBhcmFtIHtBcnJheX0gW2VudHJpZXNdIFRoZSBrZXktdmFsdWUgcGFpcnMgdG8gY2FjaGUuXG4gKi9cbmZ1bmN0aW9uIFN0YWNrKGVudHJpZXMpIHtcbiAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fID0gbmV3IExpc3RDYWNoZShlbnRyaWVzKTtcbiAgdGhpcy5zaXplID0gZGF0YS5zaXplO1xufVxuXG4vLyBBZGQgbWV0aG9kcyB0byBgU3RhY2tgLlxuU3RhY2sucHJvdG90eXBlLmNsZWFyID0gc3RhY2tDbGVhcjtcblN0YWNrLnByb3RvdHlwZVsnZGVsZXRlJ10gPSBzdGFja0RlbGV0ZTtcblN0YWNrLnByb3RvdHlwZS5nZXQgPSBzdGFja0dldDtcblN0YWNrLnByb3RvdHlwZS5oYXMgPSBzdGFja0hhcztcblN0YWNrLnByb3RvdHlwZS5zZXQgPSBzdGFja1NldDtcblxuZXhwb3J0IGRlZmF1bHQgU3RhY2s7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_Stack.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_Symbol.js": +/*!*******************************************!*\ + !*** ./node_modules/lodash-es/_Symbol.js ***! + \*******************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_root.js */ \"./node_modules/lodash-es/_root.js\");\n\n\n/** Built-in value references. */\nvar Symbol = _root_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Symbol;\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Symbol);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19TeW1ib2wuanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBOEI7O0FBRTlCO0FBQ0EsYUFBYSx1REFBVzs7QUFFeEIsK0RBQWUsTUFBTSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX1N5bWJvbC5qcz8yYWUzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCByb290IGZyb20gJy4vX3Jvb3QuanMnO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBTeW1ib2wgPSByb290LlN5bWJvbDtcblxuZXhwb3J0IGRlZmF1bHQgU3ltYm9sO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_Symbol.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_Uint8Array.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/_Uint8Array.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_root.js */ \"./node_modules/lodash-es/_root.js\");\n\n\n/** Built-in value references. */\nvar Uint8Array = _root_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Uint8Array;\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Uint8Array);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19VaW50OEFycmF5LmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQThCOztBQUU5QjtBQUNBLGlCQUFpQiwyREFBZTs7QUFFaEMsK0RBQWUsVUFBVSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX1VpbnQ4QXJyYXkuanM/MWVhMiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcm9vdCBmcm9tICcuL19yb290LmpzJztcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgVWludDhBcnJheSA9IHJvb3QuVWludDhBcnJheTtcblxuZXhwb3J0IGRlZmF1bHQgVWludDhBcnJheTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_Uint8Array.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_WeakMap.js": +/*!********************************************!*\ + !*** ./node_modules/lodash-es/_WeakMap.js ***! + \********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getNative_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getNative.js */ \"./node_modules/lodash-es/_getNative.js\");\n/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_root.js */ \"./node_modules/lodash-es/_root.js\");\n\n\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = (0,_getNative_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_root_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], 'WeakMap');\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (WeakMap);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19XZWFrTWFwLmpzLmpzIiwibWFwcGluZ3MiOiI7OztBQUF3QztBQUNWOztBQUU5QjtBQUNBLGNBQWMseURBQVMsQ0FBQyxnREFBSTs7QUFFNUIsK0RBQWUsT0FBTyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX1dlYWtNYXAuanM/NzRiMSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0TmF0aXZlIGZyb20gJy4vX2dldE5hdGl2ZS5qcyc7XG5pbXBvcnQgcm9vdCBmcm9tICcuL19yb290LmpzJztcblxuLyogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgdGhhdCBhcmUgdmVyaWZpZWQgdG8gYmUgbmF0aXZlLiAqL1xudmFyIFdlYWtNYXAgPSBnZXROYXRpdmUocm9vdCwgJ1dlYWtNYXAnKTtcblxuZXhwb3J0IGRlZmF1bHQgV2Vha01hcDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_WeakMap.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_arrayEach.js": +/*!**********************************************!*\ + !*** ./node_modules/lodash-es/_arrayEach.js ***! + \**********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (arrayEach);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hcnJheUVhY2guanMuanMiLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEIsV0FBVyxVQUFVO0FBQ3JCLGFBQWEsT0FBTztBQUNwQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxTQUFTLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYXJyYXlFYWNoLmpzPzYyYTMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8uZm9yRWFjaGAgZm9yIGFycmF5cyB3aXRob3V0IHN1cHBvcnQgZm9yXG4gKiBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBbYXJyYXldIFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBhcnJheWAuXG4gKi9cbmZ1bmN0aW9uIGFycmF5RWFjaChhcnJheSwgaXRlcmF0ZWUpIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIGlmIChpdGVyYXRlZShhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSkgPT09IGZhbHNlKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGFycmF5O1xufVxuXG5leHBvcnQgZGVmYXVsdCBhcnJheUVhY2g7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_arrayEach.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_arrayFilter.js": +/*!************************************************!*\ + !*** ./node_modules/lodash-es/_arrayFilter.js ***! + \************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (arrayFilter);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hcnJheUZpbHRlci5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixXQUFXLFVBQVU7QUFDckIsYUFBYSxPQUFPO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLCtEQUFlLFdBQVcsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hcnJheUZpbHRlci5qcz81Y2M4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLmZpbHRlcmAgZm9yIGFycmF5cyB3aXRob3V0IHN1cHBvcnQgZm9yXG4gKiBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBbYXJyYXldIFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcmVkaWNhdGUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGZpbHRlcmVkIGFycmF5LlxuICovXG5mdW5jdGlvbiBhcnJheUZpbHRlcihhcnJheSwgcHJlZGljYXRlKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGgsXG4gICAgICByZXNJbmRleCA9IDAsXG4gICAgICByZXN1bHQgPSBbXTtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHZhciB2YWx1ZSA9IGFycmF5W2luZGV4XTtcbiAgICBpZiAocHJlZGljYXRlKHZhbHVlLCBpbmRleCwgYXJyYXkpKSB7XG4gICAgICByZXN1bHRbcmVzSW5kZXgrK10gPSB2YWx1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYXJyYXlGaWx0ZXI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_arrayFilter.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_arrayLikeKeys.js": +/*!**************************************************!*\ + !*** ./node_modules/lodash-es/_arrayLikeKeys.js ***! + \**************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseTimes_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_baseTimes.js */ \"./node_modules/lodash-es/_baseTimes.js\");\n/* harmony import */ var _isArguments_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isArguments.js */ \"./node_modules/lodash-es/isArguments.js\");\n/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isArray.js */ \"./node_modules/lodash-es/isArray.js\");\n/* harmony import */ var _isBuffer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isBuffer.js */ \"./node_modules/lodash-es/isBuffer.js\");\n/* harmony import */ var _isIndex_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./_isIndex.js */ \"./node_modules/lodash-es/_isIndex.js\");\n/* harmony import */ var _isTypedArray_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./isTypedArray.js */ \"./node_modules/lodash-es/isTypedArray.js\");\n\n\n\n\n\n\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = (0,_isArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value),\n isArg = !isArr && (0,_isArguments_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value),\n isBuff = !isArr && !isArg && (0,_isBuffer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(value),\n isType = !isArr && !isArg && !isBuff && (0,_isTypedArray_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? (0,_baseTimes_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n (0,_isIndex_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (arrayLikeKeys);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hcnJheUxpa2VLZXlzLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBd0M7QUFDRztBQUNSO0FBQ0U7QUFDRDtBQUNTOztBQUU3QztBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxXQUFXLFNBQVM7QUFDcEIsYUFBYSxPQUFPO0FBQ3BCO0FBQ0E7QUFDQSxjQUFjLHVEQUFPO0FBQ3JCLHdCQUF3QiwyREFBVztBQUNuQyxtQ0FBbUMsd0RBQVE7QUFDM0MsOENBQThDLDREQUFZO0FBQzFEO0FBQ0EsNkJBQTZCLHlEQUFTO0FBQ3RDOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyx1REFBTztBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsYUFBYSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2FycmF5TGlrZUtleXMuanM/ZjEwZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYmFzZVRpbWVzIGZyb20gJy4vX2Jhc2VUaW1lcy5qcyc7XG5pbXBvcnQgaXNBcmd1bWVudHMgZnJvbSAnLi9pc0FyZ3VtZW50cy5qcyc7XG5pbXBvcnQgaXNBcnJheSBmcm9tICcuL2lzQXJyYXkuanMnO1xuaW1wb3J0IGlzQnVmZmVyIGZyb20gJy4vaXNCdWZmZXIuanMnO1xuaW1wb3J0IGlzSW5kZXggZnJvbSAnLi9faXNJbmRleC5qcyc7XG5pbXBvcnQgaXNUeXBlZEFycmF5IGZyb20gJy4vaXNUeXBlZEFycmF5LmpzJztcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IG9mIHRoZSBlbnVtZXJhYmxlIHByb3BlcnR5IG5hbWVzIG9mIHRoZSBhcnJheS1saWtlIGB2YWx1ZWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHF1ZXJ5LlxuICogQHBhcmFtIHtib29sZWFufSBpbmhlcml0ZWQgU3BlY2lmeSByZXR1cm5pbmcgaW5oZXJpdGVkIHByb3BlcnR5IG5hbWVzLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcy5cbiAqL1xuZnVuY3Rpb24gYXJyYXlMaWtlS2V5cyh2YWx1ZSwgaW5oZXJpdGVkKSB7XG4gIHZhciBpc0FyciA9IGlzQXJyYXkodmFsdWUpLFxuICAgICAgaXNBcmcgPSAhaXNBcnIgJiYgaXNBcmd1bWVudHModmFsdWUpLFxuICAgICAgaXNCdWZmID0gIWlzQXJyICYmICFpc0FyZyAmJiBpc0J1ZmZlcih2YWx1ZSksXG4gICAgICBpc1R5cGUgPSAhaXNBcnIgJiYgIWlzQXJnICYmICFpc0J1ZmYgJiYgaXNUeXBlZEFycmF5KHZhbHVlKSxcbiAgICAgIHNraXBJbmRleGVzID0gaXNBcnIgfHwgaXNBcmcgfHwgaXNCdWZmIHx8IGlzVHlwZSxcbiAgICAgIHJlc3VsdCA9IHNraXBJbmRleGVzID8gYmFzZVRpbWVzKHZhbHVlLmxlbmd0aCwgU3RyaW5nKSA6IFtdLFxuICAgICAgbGVuZ3RoID0gcmVzdWx0Lmxlbmd0aDtcblxuICBmb3IgKHZhciBrZXkgaW4gdmFsdWUpIHtcbiAgICBpZiAoKGluaGVyaXRlZCB8fCBoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCBrZXkpKSAmJlxuICAgICAgICAhKHNraXBJbmRleGVzICYmIChcbiAgICAgICAgICAgLy8gU2FmYXJpIDkgaGFzIGVudW1lcmFibGUgYGFyZ3VtZW50cy5sZW5ndGhgIGluIHN0cmljdCBtb2RlLlxuICAgICAgICAgICBrZXkgPT0gJ2xlbmd0aCcgfHxcbiAgICAgICAgICAgLy8gTm9kZS5qcyAwLjEwIGhhcyBlbnVtZXJhYmxlIG5vbi1pbmRleCBwcm9wZXJ0aWVzIG9uIGJ1ZmZlcnMuXG4gICAgICAgICAgIChpc0J1ZmYgJiYgKGtleSA9PSAnb2Zmc2V0JyB8fCBrZXkgPT0gJ3BhcmVudCcpKSB8fFxuICAgICAgICAgICAvLyBQaGFudG9tSlMgMiBoYXMgZW51bWVyYWJsZSBub24taW5kZXggcHJvcGVydGllcyBvbiB0eXBlZCBhcnJheXMuXG4gICAgICAgICAgIChpc1R5cGUgJiYgKGtleSA9PSAnYnVmZmVyJyB8fCBrZXkgPT0gJ2J5dGVMZW5ndGgnIHx8IGtleSA9PSAnYnl0ZU9mZnNldCcpKSB8fFxuICAgICAgICAgICAvLyBTa2lwIGluZGV4IHByb3BlcnRpZXMuXG4gICAgICAgICAgIGlzSW5kZXgoa2V5LCBsZW5ndGgpXG4gICAgICAgICkpKSB7XG4gICAgICByZXN1bHQucHVzaChrZXkpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBhcnJheUxpa2VLZXlzO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_arrayLikeKeys.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_arrayMap.js": +/*!*********************************************!*\ + !*** ./node_modules/lodash-es/_arrayMap.js ***! + \*********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (arrayMap);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hcnJheU1hcC5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixXQUFXLFVBQVU7QUFDckIsYUFBYSxPQUFPO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxRQUFRLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYXJyYXlNYXAuanM/MzEzNiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5tYXBgIGZvciBhcnJheXMgd2l0aG91dCBzdXBwb3J0IGZvciBpdGVyYXRlZVxuICogc2hvcnRoYW5kcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gW2FycmF5XSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IG1hcHBlZCBhcnJheS5cbiAqL1xuZnVuY3Rpb24gYXJyYXlNYXAoYXJyYXksIGl0ZXJhdGVlKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGgsXG4gICAgICByZXN1bHQgPSBBcnJheShsZW5ndGgpO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgcmVzdWx0W2luZGV4XSA9IGl0ZXJhdGVlKGFycmF5W2luZGV4XSwgaW5kZXgsIGFycmF5KTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBhcnJheU1hcDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_arrayMap.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_arrayPush.js": +/*!**********************************************!*\ + !*** ./node_modules/lodash-es/_arrayPush.js ***! + \**********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (arrayPush);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hcnJheVB1c2guanMuanMiLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLFdBQVcsT0FBTztBQUNsQixhQUFhLE9BQU87QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLCtEQUFlLFNBQVMsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hcnJheVB1c2guanM/MGMyNyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEFwcGVuZHMgdGhlIGVsZW1lbnRzIG9mIGB2YWx1ZXNgIHRvIGBhcnJheWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBtb2RpZnkuXG4gKiBAcGFyYW0ge0FycmF5fSB2YWx1ZXMgVGhlIHZhbHVlcyB0byBhcHBlbmQuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cbiAqL1xuZnVuY3Rpb24gYXJyYXlQdXNoKGFycmF5LCB2YWx1ZXMpIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSB2YWx1ZXMubGVuZ3RoLFxuICAgICAgb2Zmc2V0ID0gYXJyYXkubGVuZ3RoO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgYXJyYXlbb2Zmc2V0ICsgaW5kZXhdID0gdmFsdWVzW2luZGV4XTtcbiAgfVxuICByZXR1cm4gYXJyYXk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGFycmF5UHVzaDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_arrayPush.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_assignValue.js": +/*!************************************************!*\ + !*** ./node_modules/lodash-es/_assignValue.js ***! + \************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseAssignValue_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_baseAssignValue.js */ \"./node_modules/lodash-es/_baseAssignValue.js\");\n/* harmony import */ var _eq_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./eq.js */ \"./node_modules/lodash-es/eq.js\");\n\n\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && (0,_eq_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(objValue, value)) ||\n (value === undefined && !(key in object))) {\n (0,_baseAssignValue_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(object, key, value);\n }\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (assignValue);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hc3NpZ25WYWx1ZS5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7QUFBb0Q7QUFDM0I7O0FBRXpCO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsR0FBRztBQUNkO0FBQ0E7QUFDQTtBQUNBLDRDQUE0QyxrREFBRTtBQUM5QztBQUNBLElBQUksK0RBQWU7QUFDbkI7QUFDQTs7QUFFQSwrREFBZSxXQUFXLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYXNzaWduVmFsdWUuanM/OTQ4OCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYmFzZUFzc2lnblZhbHVlIGZyb20gJy4vX2Jhc2VBc3NpZ25WYWx1ZS5qcyc7XG5pbXBvcnQgZXEgZnJvbSAnLi9lcS5qcyc7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogQXNzaWducyBgdmFsdWVgIHRvIGBrZXlgIG9mIGBvYmplY3RgIGlmIHRoZSBleGlzdGluZyB2YWx1ZSBpcyBub3QgZXF1aXZhbGVudFxuICogdXNpbmcgW2BTYW1lVmFsdWVaZXJvYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtc2FtZXZhbHVlemVybylcbiAqIGZvciBlcXVhbGl0eSBjb21wYXJpc29ucy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIG1vZGlmeS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgcHJvcGVydHkgdG8gYXNzaWduLlxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gYXNzaWduLlxuICovXG5mdW5jdGlvbiBhc3NpZ25WYWx1ZShvYmplY3QsIGtleSwgdmFsdWUpIHtcbiAgdmFyIG9ialZhbHVlID0gb2JqZWN0W2tleV07XG4gIGlmICghKGhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpICYmIGVxKG9ialZhbHVlLCB2YWx1ZSkpIHx8XG4gICAgICAodmFsdWUgPT09IHVuZGVmaW5lZCAmJiAhKGtleSBpbiBvYmplY3QpKSkge1xuICAgIGJhc2VBc3NpZ25WYWx1ZShvYmplY3QsIGtleSwgdmFsdWUpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGFzc2lnblZhbHVlO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_assignValue.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_assocIndexOf.js": +/*!*************************************************!*\ + !*** ./node_modules/lodash-es/_assocIndexOf.js ***! + \*************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _eq_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./eq.js */ \"./node_modules/lodash-es/eq.js\");\n\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if ((0,_eq_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (assocIndexOf);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hc3NvY0luZGV4T2YuanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBeUI7O0FBRXpCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLFdBQVcsR0FBRztBQUNkLGFBQWEsUUFBUTtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsa0RBQUU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLCtEQUFlLFlBQVksRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hc3NvY0luZGV4T2YuanM/NWMzMCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZXEgZnJvbSAnLi9lcS5qcyc7XG5cbi8qKlxuICogR2V0cyB0aGUgaW5kZXggYXQgd2hpY2ggdGhlIGBrZXlgIGlzIGZvdW5kIGluIGBhcnJheWAgb2Yga2V5LXZhbHVlIHBhaXJzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAqIEBwYXJhbSB7Kn0ga2V5IFRoZSBrZXkgdG8gc2VhcmNoIGZvci5cbiAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBtYXRjaGVkIHZhbHVlLCBlbHNlIGAtMWAuXG4gKi9cbmZ1bmN0aW9uIGFzc29jSW5kZXhPZihhcnJheSwga2V5KSB7XG4gIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG4gIHdoaWxlIChsZW5ndGgtLSkge1xuICAgIGlmIChlcShhcnJheVtsZW5ndGhdWzBdLCBrZXkpKSB7XG4gICAgICByZXR1cm4gbGVuZ3RoO1xuICAgIH1cbiAgfVxuICByZXR1cm4gLTE7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGFzc29jSW5kZXhPZjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_assocIndexOf.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseAssign.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/_baseAssign.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _copyObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_copyObject.js */ \"./node_modules/lodash-es/_copyObject.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keys.js */ \"./node_modules/lodash-es/keys.js\");\n\n\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && (0,_copyObject_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(source, (0,_keys_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(source), object);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseAssign);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlQXNzaWduLmpzLmpzIiwibWFwcGluZ3MiOiI7OztBQUEwQztBQUNiOztBQUU3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBLG1CQUFtQiwwREFBVSxTQUFTLG9EQUFJO0FBQzFDOztBQUVBLCtEQUFlLFVBQVUsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlQXNzaWduLmpzPzI1MGUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvcHlPYmplY3QgZnJvbSAnLi9fY29weU9iamVjdC5qcyc7XG5pbXBvcnQga2V5cyBmcm9tICcuL2tleXMuanMnO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmFzc2lnbmAgd2l0aG91dCBzdXBwb3J0IGZvciBtdWx0aXBsZSBzb3VyY2VzXG4gKiBvciBgY3VzdG9taXplcmAgZnVuY3Rpb25zLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXG4gKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBzb3VyY2Ugb2JqZWN0LlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAqL1xuZnVuY3Rpb24gYmFzZUFzc2lnbihvYmplY3QsIHNvdXJjZSkge1xuICByZXR1cm4gb2JqZWN0ICYmIGNvcHlPYmplY3Qoc291cmNlLCBrZXlzKHNvdXJjZSksIG9iamVjdCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VBc3NpZ247XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseAssign.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseAssignIn.js": +/*!*************************************************!*\ + !*** ./node_modules/lodash-es/_baseAssignIn.js ***! + \*************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _copyObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_copyObject.js */ \"./node_modules/lodash-es/_copyObject.js\");\n/* harmony import */ var _keysIn_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keysIn.js */ \"./node_modules/lodash-es/keysIn.js\");\n\n\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && (0,_copyObject_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(source, (0,_keysIn_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(source), object);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseAssignIn);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlQXNzaWduSW4uanMuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQTBDO0FBQ1Q7O0FBRWpDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLGFBQWEsUUFBUTtBQUNyQjtBQUNBO0FBQ0EsbUJBQW1CLDBEQUFVLFNBQVMsc0RBQU07QUFDNUM7O0FBRUEsK0RBQWUsWUFBWSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VBc3NpZ25Jbi5qcz9jNDRlIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjb3B5T2JqZWN0IGZyb20gJy4vX2NvcHlPYmplY3QuanMnO1xuaW1wb3J0IGtleXNJbiBmcm9tICcuL2tleXNJbi5qcyc7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uYXNzaWduSW5gIHdpdGhvdXQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgc291cmNlc1xuICogb3IgYGN1c3RvbWl6ZXJgIGZ1bmN0aW9ucy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgZGVzdGluYXRpb24gb2JqZWN0LlxuICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgc291cmNlIG9iamVjdC5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VBc3NpZ25JbihvYmplY3QsIHNvdXJjZSkge1xuICByZXR1cm4gb2JqZWN0ICYmIGNvcHlPYmplY3Qoc291cmNlLCBrZXlzSW4oc291cmNlKSwgb2JqZWN0KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZUFzc2lnbkluO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseAssignIn.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseAssignValue.js": +/*!****************************************************!*\ + !*** ./node_modules/lodash-es/_baseAssignValue.js ***! + \****************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _defineProperty_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_defineProperty.js */ \"./node_modules/lodash-es/_defineProperty.js\");\n\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && _defineProperty_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]) {\n (0,_defineProperty_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseAssignValue);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlQXNzaWduVmFsdWUuanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBa0Q7O0FBRWxEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsR0FBRztBQUNkO0FBQ0E7QUFDQSw0QkFBNEIsMERBQWM7QUFDMUMsSUFBSSw4REFBYztBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBLCtEQUFlLGVBQWUsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlQXNzaWduVmFsdWUuanM/ZmFmNCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZGVmaW5lUHJvcGVydHkgZnJvbSAnLi9fZGVmaW5lUHJvcGVydHkuanMnO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBhc3NpZ25WYWx1ZWAgYW5kIGBhc3NpZ25NZXJnZVZhbHVlYCB3aXRob3V0XG4gKiB2YWx1ZSBjaGVja3MuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBtb2RpZnkuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IHRvIGFzc2lnbi5cbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGFzc2lnbi5cbiAqL1xuZnVuY3Rpb24gYmFzZUFzc2lnblZhbHVlKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICBpZiAoa2V5ID09ICdfX3Byb3RvX18nICYmIGRlZmluZVByb3BlcnR5KSB7XG4gICAgZGVmaW5lUHJvcGVydHkob2JqZWN0LCBrZXksIHtcbiAgICAgICdjb25maWd1cmFibGUnOiB0cnVlLFxuICAgICAgJ2VudW1lcmFibGUnOiB0cnVlLFxuICAgICAgJ3ZhbHVlJzogdmFsdWUsXG4gICAgICAnd3JpdGFibGUnOiB0cnVlXG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0W2tleV0gPSB2YWx1ZTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlQXNzaWduVmFsdWU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseAssignValue.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseClone.js": +/*!**********************************************!*\ + !*** ./node_modules/lodash-es/_baseClone.js ***! + \**********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Stack_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./_Stack.js */ \"./node_modules/lodash-es/_Stack.js\");\n/* harmony import */ var _arrayEach_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./_arrayEach.js */ \"./node_modules/lodash-es/_arrayEach.js\");\n/* harmony import */ var _assignValue_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./_assignValue.js */ \"./node_modules/lodash-es/_assignValue.js\");\n/* harmony import */ var _baseAssign_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./_baseAssign.js */ \"./node_modules/lodash-es/_baseAssign.js\");\n/* harmony import */ var _baseAssignIn_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./_baseAssignIn.js */ \"./node_modules/lodash-es/_baseAssignIn.js\");\n/* harmony import */ var _cloneBuffer_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./_cloneBuffer.js */ \"./node_modules/lodash-es/_cloneBuffer.js\");\n/* harmony import */ var _copyArray_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_copyArray.js */ \"./node_modules/lodash-es/_copyArray.js\");\n/* harmony import */ var _copySymbols_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./_copySymbols.js */ \"./node_modules/lodash-es/_copySymbols.js\");\n/* harmony import */ var _copySymbolsIn_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./_copySymbolsIn.js */ \"./node_modules/lodash-es/_copySymbolsIn.js\");\n/* harmony import */ var _getAllKeys_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./_getAllKeys.js */ \"./node_modules/lodash-es/_getAllKeys.js\");\n/* harmony import */ var _getAllKeysIn_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./_getAllKeysIn.js */ \"./node_modules/lodash-es/_getAllKeysIn.js\");\n/* harmony import */ var _getTag_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_getTag.js */ \"./node_modules/lodash-es/_getTag.js\");\n/* harmony import */ var _initCloneArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_initCloneArray.js */ \"./node_modules/lodash-es/_initCloneArray.js\");\n/* harmony import */ var _initCloneByTag_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./_initCloneByTag.js */ \"./node_modules/lodash-es/_initCloneByTag.js\");\n/* harmony import */ var _initCloneObject_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./_initCloneObject.js */ \"./node_modules/lodash-es/_initCloneObject.js\");\n/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isArray.js */ \"./node_modules/lodash-es/isArray.js\");\n/* harmony import */ var _isBuffer_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./isBuffer.js */ \"./node_modules/lodash-es/isBuffer.js\");\n/* harmony import */ var _isMap_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./isMap.js */ \"./node_modules/lodash-es/isMap.js\");\n/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isObject.js */ \"./node_modules/lodash-es/isObject.js\");\n/* harmony import */ var _isSet_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./isSet.js */ \"./node_modules/lodash-es/isSet.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./keys.js */ \"./node_modules/lodash-es/keys.js\");\n/* harmony import */ var _keysIn_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./keysIn.js */ \"./node_modules/lodash-es/keysIn.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!(0,_isObject_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value)) {\n return value;\n }\n var isArr = (0,_isArray_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value);\n if (isArr) {\n result = (0,_initCloneArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(value);\n if (!isDeep) {\n return (0,_copyArray_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(value, result);\n }\n } else {\n var tag = (0,_getTag_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if ((0,_isBuffer_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(value)) {\n return (0,_cloneBuffer_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : (0,_initCloneObject_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(value);\n if (!isDeep) {\n return isFlat\n ? (0,_copySymbolsIn_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(value, (0,_baseAssignIn_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(result, value))\n : (0,_copySymbols_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(value, (0,_baseAssign_js__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = (0,_initCloneByTag_js__WEBPACK_IMPORTED_MODULE_12__[\"default\"])(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new _Stack_js__WEBPACK_IMPORTED_MODULE_13__[\"default\"]);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if ((0,_isSet_js__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if ((0,_isMap_js__WEBPACK_IMPORTED_MODULE_15__[\"default\"])(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? _getAllKeysIn_js__WEBPACK_IMPORTED_MODULE_16__[\"default\"] : _getAllKeys_js__WEBPACK_IMPORTED_MODULE_17__[\"default\"])\n : (isFlat ? _keysIn_js__WEBPACK_IMPORTED_MODULE_18__[\"default\"] : _keys_js__WEBPACK_IMPORTED_MODULE_19__[\"default\"]);\n\n var props = isArr ? undefined : keysFunc(value);\n (0,_arrayEach_js__WEBPACK_IMPORTED_MODULE_20__[\"default\"])(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n (0,_assignValue_js__WEBPACK_IMPORTED_MODULE_21__[\"default\"])(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseClone);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlQ2xvbmUuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBZ0M7QUFDUTtBQUNJO0FBQ0Y7QUFDSTtBQUNGO0FBQ0o7QUFDSTtBQUNJO0FBQ047QUFDSTtBQUNaO0FBQ2dCO0FBQ0E7QUFDRTtBQUNqQjtBQUNFO0FBQ047QUFDTTtBQUNOO0FBQ0Y7QUFDSTs7QUFFakM7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLFdBQVcsU0FBUztBQUNwQjtBQUNBO0FBQ0E7QUFDQSxXQUFXLFVBQVU7QUFDckIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkIsYUFBYSxHQUFHO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLHdEQUFRO0FBQ2Y7QUFDQTtBQUNBLGNBQWMsdURBQU87QUFDckI7QUFDQSxhQUFhLDhEQUFjO0FBQzNCO0FBQ0EsYUFBYSx5REFBUztBQUN0QjtBQUNBLElBQUk7QUFDSixjQUFjLHNEQUFNO0FBQ3BCOztBQUVBLFFBQVEsd0RBQVE7QUFDaEIsYUFBYSwyREFBVztBQUN4QjtBQUNBO0FBQ0EsdUNBQXVDLEVBQUUsK0RBQWU7QUFDeEQ7QUFDQTtBQUNBLFlBQVksNkRBQWEsUUFBUSw0REFBWTtBQUM3QyxZQUFZLDREQUFXLFFBQVEsMkRBQVU7QUFDekM7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsZUFBZSwrREFBYztBQUM3QjtBQUNBO0FBQ0E7QUFDQSx3QkFBd0Isa0RBQUs7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxNQUFNLHNEQUFLO0FBQ1g7QUFDQTtBQUNBLEtBQUs7QUFDTCxJQUFJLFNBQVMsc0RBQUs7QUFDbEI7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBLGdCQUFnQix5REFBWSxHQUFHLHVEQUFVO0FBQ3pDLGdCQUFnQixtREFBTSxHQUFHLGlEQUFJOztBQUU3QjtBQUNBLEVBQUUsMERBQVM7QUFDWDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSw0REFBVztBQUNmLEdBQUc7QUFDSDtBQUNBOztBQUVBLCtEQUFlLFNBQVMsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlQ2xvbmUuanM/YjEzMSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgU3RhY2sgZnJvbSAnLi9fU3RhY2suanMnO1xuaW1wb3J0IGFycmF5RWFjaCBmcm9tICcuL19hcnJheUVhY2guanMnO1xuaW1wb3J0IGFzc2lnblZhbHVlIGZyb20gJy4vX2Fzc2lnblZhbHVlLmpzJztcbmltcG9ydCBiYXNlQXNzaWduIGZyb20gJy4vX2Jhc2VBc3NpZ24uanMnO1xuaW1wb3J0IGJhc2VBc3NpZ25JbiBmcm9tICcuL19iYXNlQXNzaWduSW4uanMnO1xuaW1wb3J0IGNsb25lQnVmZmVyIGZyb20gJy4vX2Nsb25lQnVmZmVyLmpzJztcbmltcG9ydCBjb3B5QXJyYXkgZnJvbSAnLi9fY29weUFycmF5LmpzJztcbmltcG9ydCBjb3B5U3ltYm9scyBmcm9tICcuL19jb3B5U3ltYm9scy5qcyc7XG5pbXBvcnQgY29weVN5bWJvbHNJbiBmcm9tICcuL19jb3B5U3ltYm9sc0luLmpzJztcbmltcG9ydCBnZXRBbGxLZXlzIGZyb20gJy4vX2dldEFsbEtleXMuanMnO1xuaW1wb3J0IGdldEFsbEtleXNJbiBmcm9tICcuL19nZXRBbGxLZXlzSW4uanMnO1xuaW1wb3J0IGdldFRhZyBmcm9tICcuL19nZXRUYWcuanMnO1xuaW1wb3J0IGluaXRDbG9uZUFycmF5IGZyb20gJy4vX2luaXRDbG9uZUFycmF5LmpzJztcbmltcG9ydCBpbml0Q2xvbmVCeVRhZyBmcm9tICcuL19pbml0Q2xvbmVCeVRhZy5qcyc7XG5pbXBvcnQgaW5pdENsb25lT2JqZWN0IGZyb20gJy4vX2luaXRDbG9uZU9iamVjdC5qcyc7XG5pbXBvcnQgaXNBcnJheSBmcm9tICcuL2lzQXJyYXkuanMnO1xuaW1wb3J0IGlzQnVmZmVyIGZyb20gJy4vaXNCdWZmZXIuanMnO1xuaW1wb3J0IGlzTWFwIGZyb20gJy4vaXNNYXAuanMnO1xuaW1wb3J0IGlzT2JqZWN0IGZyb20gJy4vaXNPYmplY3QuanMnO1xuaW1wb3J0IGlzU2V0IGZyb20gJy4vaXNTZXQuanMnO1xuaW1wb3J0IGtleXMgZnJvbSAnLi9rZXlzLmpzJztcbmltcG9ydCBrZXlzSW4gZnJvbSAnLi9rZXlzSW4uanMnO1xuXG4vKiogVXNlZCB0byBjb21wb3NlIGJpdG1hc2tzIGZvciBjbG9uaW5nLiAqL1xudmFyIENMT05FX0RFRVBfRkxBRyA9IDEsXG4gICAgQ0xPTkVfRkxBVF9GTEFHID0gMixcbiAgICBDTE9ORV9TWU1CT0xTX0ZMQUcgPSA0O1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgYXJnc1RhZyA9ICdbb2JqZWN0IEFyZ3VtZW50c10nLFxuICAgIGFycmF5VGFnID0gJ1tvYmplY3QgQXJyYXldJyxcbiAgICBib29sVGFnID0gJ1tvYmplY3QgQm9vbGVhbl0nLFxuICAgIGRhdGVUYWcgPSAnW29iamVjdCBEYXRlXScsXG4gICAgZXJyb3JUYWcgPSAnW29iamVjdCBFcnJvcl0nLFxuICAgIGZ1bmNUYWcgPSAnW29iamVjdCBGdW5jdGlvbl0nLFxuICAgIGdlblRhZyA9ICdbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXScsXG4gICAgbWFwVGFnID0gJ1tvYmplY3QgTWFwXScsXG4gICAgbnVtYmVyVGFnID0gJ1tvYmplY3QgTnVtYmVyXScsXG4gICAgb2JqZWN0VGFnID0gJ1tvYmplY3QgT2JqZWN0XScsXG4gICAgcmVnZXhwVGFnID0gJ1tvYmplY3QgUmVnRXhwXScsXG4gICAgc2V0VGFnID0gJ1tvYmplY3QgU2V0XScsXG4gICAgc3RyaW5nVGFnID0gJ1tvYmplY3QgU3RyaW5nXScsXG4gICAgc3ltYm9sVGFnID0gJ1tvYmplY3QgU3ltYm9sXScsXG4gICAgd2Vha01hcFRhZyA9ICdbb2JqZWN0IFdlYWtNYXBdJztcblxudmFyIGFycmF5QnVmZmVyVGFnID0gJ1tvYmplY3QgQXJyYXlCdWZmZXJdJyxcbiAgICBkYXRhVmlld1RhZyA9ICdbb2JqZWN0IERhdGFWaWV3XScsXG4gICAgZmxvYXQzMlRhZyA9ICdbb2JqZWN0IEZsb2F0MzJBcnJheV0nLFxuICAgIGZsb2F0NjRUYWcgPSAnW29iamVjdCBGbG9hdDY0QXJyYXldJyxcbiAgICBpbnQ4VGFnID0gJ1tvYmplY3QgSW50OEFycmF5XScsXG4gICAgaW50MTZUYWcgPSAnW29iamVjdCBJbnQxNkFycmF5XScsXG4gICAgaW50MzJUYWcgPSAnW29iamVjdCBJbnQzMkFycmF5XScsXG4gICAgdWludDhUYWcgPSAnW29iamVjdCBVaW50OEFycmF5XScsXG4gICAgdWludDhDbGFtcGVkVGFnID0gJ1tvYmplY3QgVWludDhDbGFtcGVkQXJyYXldJyxcbiAgICB1aW50MTZUYWcgPSAnW29iamVjdCBVaW50MTZBcnJheV0nLFxuICAgIHVpbnQzMlRhZyA9ICdbb2JqZWN0IFVpbnQzMkFycmF5XSc7XG5cbi8qKiBVc2VkIHRvIGlkZW50aWZ5IGB0b1N0cmluZ1RhZ2AgdmFsdWVzIHN1cHBvcnRlZCBieSBgXy5jbG9uZWAuICovXG52YXIgY2xvbmVhYmxlVGFncyA9IHt9O1xuY2xvbmVhYmxlVGFnc1thcmdzVGFnXSA9IGNsb25lYWJsZVRhZ3NbYXJyYXlUYWddID1cbmNsb25lYWJsZVRhZ3NbYXJyYXlCdWZmZXJUYWddID0gY2xvbmVhYmxlVGFnc1tkYXRhVmlld1RhZ10gPVxuY2xvbmVhYmxlVGFnc1tib29sVGFnXSA9IGNsb25lYWJsZVRhZ3NbZGF0ZVRhZ10gPVxuY2xvbmVhYmxlVGFnc1tmbG9hdDMyVGFnXSA9IGNsb25lYWJsZVRhZ3NbZmxvYXQ2NFRhZ10gPVxuY2xvbmVhYmxlVGFnc1tpbnQ4VGFnXSA9IGNsb25lYWJsZVRhZ3NbaW50MTZUYWddID1cbmNsb25lYWJsZVRhZ3NbaW50MzJUYWddID0gY2xvbmVhYmxlVGFnc1ttYXBUYWddID1cbmNsb25lYWJsZVRhZ3NbbnVtYmVyVGFnXSA9IGNsb25lYWJsZVRhZ3Nbb2JqZWN0VGFnXSA9XG5jbG9uZWFibGVUYWdzW3JlZ2V4cFRhZ10gPSBjbG9uZWFibGVUYWdzW3NldFRhZ10gPVxuY2xvbmVhYmxlVGFnc1tzdHJpbmdUYWddID0gY2xvbmVhYmxlVGFnc1tzeW1ib2xUYWddID1cbmNsb25lYWJsZVRhZ3NbdWludDhUYWddID0gY2xvbmVhYmxlVGFnc1t1aW50OENsYW1wZWRUYWddID1cbmNsb25lYWJsZVRhZ3NbdWludDE2VGFnXSA9IGNsb25lYWJsZVRhZ3NbdWludDMyVGFnXSA9IHRydWU7XG5jbG9uZWFibGVUYWdzW2Vycm9yVGFnXSA9IGNsb25lYWJsZVRhZ3NbZnVuY1RhZ10gPVxuY2xvbmVhYmxlVGFnc1t3ZWFrTWFwVGFnXSA9IGZhbHNlO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmNsb25lYCBhbmQgYF8uY2xvbmVEZWVwYCB3aGljaCB0cmFja3NcbiAqIHRyYXZlcnNlZCBvYmplY3RzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjbG9uZS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gYml0bWFzayBUaGUgYml0bWFzayBmbGFncy5cbiAqICAxIC0gRGVlcCBjbG9uZVxuICogIDIgLSBGbGF0dGVuIGluaGVyaXRlZCBwcm9wZXJ0aWVzXG4gKiAgNCAtIENsb25lIHN5bWJvbHNcbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNsb25pbmcuXG4gKiBAcGFyYW0ge3N0cmluZ30gW2tleV0gVGhlIGtleSBvZiBgdmFsdWVgLlxuICogQHBhcmFtIHtPYmplY3R9IFtvYmplY3RdIFRoZSBwYXJlbnQgb2JqZWN0IG9mIGB2YWx1ZWAuXG4gKiBAcGFyYW0ge09iamVjdH0gW3N0YWNrXSBUcmFja3MgdHJhdmVyc2VkIG9iamVjdHMgYW5kIHRoZWlyIGNsb25lIGNvdW50ZXJwYXJ0cy5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBjbG9uZWQgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIGJhc2VDbG9uZSh2YWx1ZSwgYml0bWFzaywgY3VzdG9taXplciwga2V5LCBvYmplY3QsIHN0YWNrKSB7XG4gIHZhciByZXN1bHQsXG4gICAgICBpc0RlZXAgPSBiaXRtYXNrICYgQ0xPTkVfREVFUF9GTEFHLFxuICAgICAgaXNGbGF0ID0gYml0bWFzayAmIENMT05FX0ZMQVRfRkxBRyxcbiAgICAgIGlzRnVsbCA9IGJpdG1hc2sgJiBDTE9ORV9TWU1CT0xTX0ZMQUc7XG5cbiAgaWYgKGN1c3RvbWl6ZXIpIHtcbiAgICByZXN1bHQgPSBvYmplY3QgPyBjdXN0b21pemVyKHZhbHVlLCBrZXksIG9iamVjdCwgc3RhY2spIDogY3VzdG9taXplcih2YWx1ZSk7XG4gIH1cbiAgaWYgKHJlc3VsdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICBpZiAoIWlzT2JqZWN0KHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICB2YXIgaXNBcnIgPSBpc0FycmF5KHZhbHVlKTtcbiAgaWYgKGlzQXJyKSB7XG4gICAgcmVzdWx0ID0gaW5pdENsb25lQXJyYXkodmFsdWUpO1xuICAgIGlmICghaXNEZWVwKSB7XG4gICAgICByZXR1cm4gY29weUFycmF5KHZhbHVlLCByZXN1bHQpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB2YXIgdGFnID0gZ2V0VGFnKHZhbHVlKSxcbiAgICAgICAgaXNGdW5jID0gdGFnID09IGZ1bmNUYWcgfHwgdGFnID09IGdlblRhZztcblxuICAgIGlmIChpc0J1ZmZlcih2YWx1ZSkpIHtcbiAgICAgIHJldHVybiBjbG9uZUJ1ZmZlcih2YWx1ZSwgaXNEZWVwKTtcbiAgICB9XG4gICAgaWYgKHRhZyA9PSBvYmplY3RUYWcgfHwgdGFnID09IGFyZ3NUYWcgfHwgKGlzRnVuYyAmJiAhb2JqZWN0KSkge1xuICAgICAgcmVzdWx0ID0gKGlzRmxhdCB8fCBpc0Z1bmMpID8ge30gOiBpbml0Q2xvbmVPYmplY3QodmFsdWUpO1xuICAgICAgaWYgKCFpc0RlZXApIHtcbiAgICAgICAgcmV0dXJuIGlzRmxhdFxuICAgICAgICAgID8gY29weVN5bWJvbHNJbih2YWx1ZSwgYmFzZUFzc2lnbkluKHJlc3VsdCwgdmFsdWUpKVxuICAgICAgICAgIDogY29weVN5bWJvbHModmFsdWUsIGJhc2VBc3NpZ24ocmVzdWx0LCB2YWx1ZSkpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIWNsb25lYWJsZVRhZ3NbdGFnXSkge1xuICAgICAgICByZXR1cm4gb2JqZWN0ID8gdmFsdWUgOiB7fTtcbiAgICAgIH1cbiAgICAgIHJlc3VsdCA9IGluaXRDbG9uZUJ5VGFnKHZhbHVlLCB0YWcsIGlzRGVlcCk7XG4gICAgfVxuICB9XG4gIC8vIENoZWNrIGZvciBjaXJjdWxhciByZWZlcmVuY2VzIGFuZCByZXR1cm4gaXRzIGNvcnJlc3BvbmRpbmcgY2xvbmUuXG4gIHN0YWNrIHx8IChzdGFjayA9IG5ldyBTdGFjayk7XG4gIHZhciBzdGFja2VkID0gc3RhY2suZ2V0KHZhbHVlKTtcbiAgaWYgKHN0YWNrZWQpIHtcbiAgICByZXR1cm4gc3RhY2tlZDtcbiAgfVxuICBzdGFjay5zZXQodmFsdWUsIHJlc3VsdCk7XG5cbiAgaWYgKGlzU2V0KHZhbHVlKSkge1xuICAgIHZhbHVlLmZvckVhY2goZnVuY3Rpb24oc3ViVmFsdWUpIHtcbiAgICAgIHJlc3VsdC5hZGQoYmFzZUNsb25lKHN1YlZhbHVlLCBiaXRtYXNrLCBjdXN0b21pemVyLCBzdWJWYWx1ZSwgdmFsdWUsIHN0YWNrKSk7XG4gICAgfSk7XG4gIH0gZWxzZSBpZiAoaXNNYXAodmFsdWUpKSB7XG4gICAgdmFsdWUuZm9yRWFjaChmdW5jdGlvbihzdWJWYWx1ZSwga2V5KSB7XG4gICAgICByZXN1bHQuc2V0KGtleSwgYmFzZUNsb25lKHN1YlZhbHVlLCBiaXRtYXNrLCBjdXN0b21pemVyLCBrZXksIHZhbHVlLCBzdGFjaykpO1xuICAgIH0pO1xuICB9XG5cbiAgdmFyIGtleXNGdW5jID0gaXNGdWxsXG4gICAgPyAoaXNGbGF0ID8gZ2V0QWxsS2V5c0luIDogZ2V0QWxsS2V5cylcbiAgICA6IChpc0ZsYXQgPyBrZXlzSW4gOiBrZXlzKTtcblxuICB2YXIgcHJvcHMgPSBpc0FyciA/IHVuZGVmaW5lZCA6IGtleXNGdW5jKHZhbHVlKTtcbiAgYXJyYXlFYWNoKHByb3BzIHx8IHZhbHVlLCBmdW5jdGlvbihzdWJWYWx1ZSwga2V5KSB7XG4gICAgaWYgKHByb3BzKSB7XG4gICAgICBrZXkgPSBzdWJWYWx1ZTtcbiAgICAgIHN1YlZhbHVlID0gdmFsdWVba2V5XTtcbiAgICB9XG4gICAgLy8gUmVjdXJzaXZlbHkgcG9wdWxhdGUgY2xvbmUgKHN1c2NlcHRpYmxlIHRvIGNhbGwgc3RhY2sgbGltaXRzKS5cbiAgICBhc3NpZ25WYWx1ZShyZXN1bHQsIGtleSwgYmFzZUNsb25lKHN1YlZhbHVlLCBiaXRtYXNrLCBjdXN0b21pemVyLCBrZXksIHZhbHVlLCBzdGFjaykpO1xuICB9KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZUNsb25lO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseClone.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseCreate.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/_baseCreate.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isObject.js */ \"./node_modules/lodash-es/isObject.js\");\n\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!(0,_isObject_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseCreate);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlQ3JlYXRlLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQXFDOztBQUVyQztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUyx3REFBUTtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQsK0RBQWUsVUFBVSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VDcmVhdGUuanM/YjJhZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgaXNPYmplY3QgZnJvbSAnLi9pc09iamVjdC5qcyc7XG5cbi8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdENyZWF0ZSA9IE9iamVjdC5jcmVhdGU7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uY3JlYXRlYCB3aXRob3V0IHN1cHBvcnQgZm9yIGFzc2lnbmluZ1xuICogcHJvcGVydGllcyB0byB0aGUgY3JlYXRlZCBvYmplY3QuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm90byBUaGUgb2JqZWN0IHRvIGluaGVyaXQgZnJvbS5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBvYmplY3QuXG4gKi9cbnZhciBiYXNlQ3JlYXRlID0gKGZ1bmN0aW9uKCkge1xuICBmdW5jdGlvbiBvYmplY3QoKSB7fVxuICByZXR1cm4gZnVuY3Rpb24ocHJvdG8pIHtcbiAgICBpZiAoIWlzT2JqZWN0KHByb3RvKSkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgICBpZiAob2JqZWN0Q3JlYXRlKSB7XG4gICAgICByZXR1cm4gb2JqZWN0Q3JlYXRlKHByb3RvKTtcbiAgICB9XG4gICAgb2JqZWN0LnByb3RvdHlwZSA9IHByb3RvO1xuICAgIHZhciByZXN1bHQgPSBuZXcgb2JqZWN0O1xuICAgIG9iamVjdC5wcm90b3R5cGUgPSB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcbn0oKSk7XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VDcmVhdGU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseCreate.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseGetAllKeys.js": +/*!***************************************************!*\ + !*** ./node_modules/lodash-es/_baseGetAllKeys.js ***! + \***************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _arrayPush_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_arrayPush.js */ \"./node_modules/lodash-es/_arrayPush.js\");\n/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isArray.js */ \"./node_modules/lodash-es/isArray.js\");\n\n\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return (0,_isArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object) ? result : (0,_arrayPush_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(result, symbolsFunc(object));\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseGetAllKeys);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlR2V0QWxsS2V5cy5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7QUFBd0M7QUFDTDs7QUFFbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsVUFBVTtBQUNyQixXQUFXLFVBQVU7QUFDckIsYUFBYSxPQUFPO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBLFNBQVMsdURBQU8sb0JBQW9CLHlEQUFTO0FBQzdDOztBQUVBLCtEQUFlLGNBQWMsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlR2V0QWxsS2V5cy5qcz8zZTg1Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhcnJheVB1c2ggZnJvbSAnLi9fYXJyYXlQdXNoLmpzJztcbmltcG9ydCBpc0FycmF5IGZyb20gJy4vaXNBcnJheS5qcyc7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYGdldEFsbEtleXNgIGFuZCBgZ2V0QWxsS2V5c0luYCB3aGljaCB1c2VzXG4gKiBga2V5c0Z1bmNgIGFuZCBgc3ltYm9sc0Z1bmNgIHRvIGdldCB0aGUgZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBhbmRcbiAqIHN5bWJvbHMgb2YgYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGtleXNGdW5jIFRoZSBmdW5jdGlvbiB0byBnZXQgdGhlIGtleXMgb2YgYG9iamVjdGAuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBzeW1ib2xzRnVuYyBUaGUgZnVuY3Rpb24gdG8gZ2V0IHRoZSBzeW1ib2xzIG9mIGBvYmplY3RgLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcyBhbmQgc3ltYm9scy5cbiAqL1xuZnVuY3Rpb24gYmFzZUdldEFsbEtleXMob2JqZWN0LCBrZXlzRnVuYywgc3ltYm9sc0Z1bmMpIHtcbiAgdmFyIHJlc3VsdCA9IGtleXNGdW5jKG9iamVjdCk7XG4gIHJldHVybiBpc0FycmF5KG9iamVjdCkgPyByZXN1bHQgOiBhcnJheVB1c2gocmVzdWx0LCBzeW1ib2xzRnVuYyhvYmplY3QpKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZUdldEFsbEtleXM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseGetAllKeys.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseGetTag.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/_baseGetTag.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Symbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_Symbol.js */ \"./node_modules/lodash-es/_Symbol.js\");\n/* harmony import */ var _getRawTag_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_getRawTag.js */ \"./node_modules/lodash-es/_getRawTag.js\");\n/* harmony import */ var _objectToString_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_objectToString.js */ \"./node_modules/lodash-es/_objectToString.js\");\n\n\n\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = _Symbol_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] ? _Symbol_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? (0,_getRawTag_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value)\n : (0,_objectToString_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(value);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseGetTag);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlR2V0VGFnLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBa0M7QUFDTTtBQUNVOztBQUVsRDtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxxQkFBcUIsa0RBQU0sR0FBRyw4REFBa0I7O0FBRWhEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2QsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0seURBQVM7QUFDZixNQUFNLDhEQUFjO0FBQ3BCOztBQUVBLCtEQUFlLFVBQVUsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlR2V0VGFnLmpzPzVlZWIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFN5bWJvbCBmcm9tICcuL19TeW1ib2wuanMnO1xuaW1wb3J0IGdldFJhd1RhZyBmcm9tICcuL19nZXRSYXdUYWcuanMnO1xuaW1wb3J0IG9iamVjdFRvU3RyaW5nIGZyb20gJy4vX29iamVjdFRvU3RyaW5nLmpzJztcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIG51bGxUYWcgPSAnW29iamVjdCBOdWxsXScsXG4gICAgdW5kZWZpbmVkVGFnID0gJ1tvYmplY3QgVW5kZWZpbmVkXSc7XG5cbi8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqL1xudmFyIHN5bVRvU3RyaW5nVGFnID0gU3ltYm9sID8gU3ltYm9sLnRvU3RyaW5nVGFnIDogdW5kZWZpbmVkO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBnZXRUYWdgIHdpdGhvdXQgZmFsbGJhY2tzIGZvciBidWdneSBlbnZpcm9ubWVudHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHF1ZXJ5LlxuICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgYHRvU3RyaW5nVGFnYC5cbiAqL1xuZnVuY3Rpb24gYmFzZUdldFRhZyh2YWx1ZSkge1xuICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgIHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkVGFnIDogbnVsbFRhZztcbiAgfVxuICByZXR1cm4gKHN5bVRvU3RyaW5nVGFnICYmIHN5bVRvU3RyaW5nVGFnIGluIE9iamVjdCh2YWx1ZSkpXG4gICAgPyBnZXRSYXdUYWcodmFsdWUpXG4gICAgOiBvYmplY3RUb1N0cmluZyh2YWx1ZSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VHZXRUYWc7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseGetTag.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseIsArguments.js": +/*!****************************************************!*\ + !*** ./node_modules/lodash-es/_baseIsArguments.js ***! + \****************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseGetTag_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_baseGetTag.js */ \"./node_modules/lodash-es/_baseGetTag.js\");\n/* harmony import */ var _isObjectLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isObjectLike.js */ \"./node_modules/lodash-es/isObjectLike.js\");\n\n\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return (0,_isObjectLike_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value) && (0,_baseGetTag_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value) == argsTag;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseIsArguments);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlSXNBcmd1bWVudHMuanMuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQTBDO0FBQ0c7O0FBRTdDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBLFNBQVMsNERBQVksV0FBVywwREFBVTtBQUMxQzs7QUFFQSwrREFBZSxlQUFlLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUlzQXJndW1lbnRzLmpzPzFmMTciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGJhc2VHZXRUYWcgZnJvbSAnLi9fYmFzZUdldFRhZy5qcyc7XG5pbXBvcnQgaXNPYmplY3RMaWtlIGZyb20gJy4vaXNPYmplY3RMaWtlLmpzJztcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIGFyZ3NUYWcgPSAnW29iamVjdCBBcmd1bWVudHNdJztcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc0FyZ3VtZW50c2AuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gYGFyZ3VtZW50c2Agb2JqZWN0LFxuICovXG5mdW5jdGlvbiBiYXNlSXNBcmd1bWVudHModmFsdWUpIHtcbiAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT0gYXJnc1RhZztcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZUlzQXJndW1lbnRzO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseIsArguments.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseIsMap.js": +/*!**********************************************!*\ + !*** ./node_modules/lodash-es/_baseIsMap.js ***! + \**********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getTag_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_getTag.js */ \"./node_modules/lodash-es/_getTag.js\");\n/* harmony import */ var _isObjectLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isObjectLike.js */ \"./node_modules/lodash-es/isObjectLike.js\");\n\n\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return (0,_isObjectLike_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value) && (0,_getTag_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value) == mapTag;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseIsMap);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlSXNNYXAuanMuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQWtDO0FBQ1c7O0FBRTdDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBLFNBQVMsNERBQVksV0FBVyxzREFBTTtBQUN0Qzs7QUFFQSwrREFBZSxTQUFTLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUlzTWFwLmpzPzcyMGIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldFRhZyBmcm9tICcuL19nZXRUYWcuanMnO1xuaW1wb3J0IGlzT2JqZWN0TGlrZSBmcm9tICcuL2lzT2JqZWN0TGlrZS5qcyc7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBtYXBUYWcgPSAnW29iamVjdCBNYXBdJztcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc01hcGAgd2l0aG91dCBOb2RlLmpzIG9wdGltaXphdGlvbnMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBtYXAsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gYmFzZUlzTWFwKHZhbHVlKSB7XG4gIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGdldFRhZyh2YWx1ZSkgPT0gbWFwVGFnO1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlSXNNYXA7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseIsMap.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseIsNative.js": +/*!*************************************************!*\ + !*** ./node_modules/lodash-es/_baseIsNative.js ***! + \*************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isFunction.js */ \"./node_modules/lodash-es/isFunction.js\");\n/* harmony import */ var _isMasked_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_isMasked.js */ \"./node_modules/lodash-es/_isMasked.js\");\n/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isObject.js */ \"./node_modules/lodash-es/isObject.js\");\n/* harmony import */ var _toSource_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_toSource.js */ \"./node_modules/lodash-es/_toSource.js\");\n\n\n\n\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!(0,_isObject_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value) || (0,_isMasked_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value)) {\n return false;\n }\n var pattern = (0,_isFunction_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(value) ? reIsNative : reIsHostCtor;\n return pattern.test((0,_toSource_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(value));\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseIsNative);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlSXNOYXRpdmUuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBeUM7QUFDSDtBQUNEO0FBQ0M7O0FBRXRDO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DOztBQUVwQztBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQSxPQUFPLHdEQUFRLFdBQVcsd0RBQVE7QUFDbEM7QUFDQTtBQUNBLGdCQUFnQiwwREFBVTtBQUMxQixzQkFBc0Isd0RBQVE7QUFDOUI7O0FBRUEsK0RBQWUsWUFBWSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VJc05hdGl2ZS5qcz85MjUwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBpc0Z1bmN0aW9uIGZyb20gJy4vaXNGdW5jdGlvbi5qcyc7XG5pbXBvcnQgaXNNYXNrZWQgZnJvbSAnLi9faXNNYXNrZWQuanMnO1xuaW1wb3J0IGlzT2JqZWN0IGZyb20gJy4vaXNPYmplY3QuanMnO1xuaW1wb3J0IHRvU291cmNlIGZyb20gJy4vX3RvU291cmNlLmpzJztcblxuLyoqXG4gKiBVc2VkIHRvIG1hdGNoIGBSZWdFeHBgXG4gKiBbc3ludGF4IGNoYXJhY3RlcnNdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXBhdHRlcm5zKS5cbiAqL1xudmFyIHJlUmVnRXhwQ2hhciA9IC9bXFxcXF4kLiorPygpW1xcXXt9fF0vZztcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IGhvc3QgY29uc3RydWN0b3JzIChTYWZhcmkpLiAqL1xudmFyIHJlSXNIb3N0Q3RvciA9IC9eXFxbb2JqZWN0IC4rP0NvbnN0cnVjdG9yXFxdJC87XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBmdW5jUHJvdG8gPSBGdW5jdGlvbi5wcm90b3R5cGUsXG4gICAgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byByZXNvbHZlIHRoZSBkZWNvbXBpbGVkIHNvdXJjZSBvZiBmdW5jdGlvbnMuICovXG52YXIgZnVuY1RvU3RyaW5nID0gZnVuY1Byb3RvLnRvU3RyaW5nO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKiogVXNlZCB0byBkZXRlY3QgaWYgYSBtZXRob2QgaXMgbmF0aXZlLiAqL1xudmFyIHJlSXNOYXRpdmUgPSBSZWdFeHAoJ14nICtcbiAgZnVuY1RvU3RyaW5nLmNhbGwoaGFzT3duUHJvcGVydHkpLnJlcGxhY2UocmVSZWdFeHBDaGFyLCAnXFxcXCQmJylcbiAgLnJlcGxhY2UoL2hhc093blByb3BlcnR5fChmdW5jdGlvbikuKj8oPz1cXFxcXFwoKXwgZm9yIC4rPyg/PVxcXFxcXF0pL2csICckMS4qPycpICsgJyQnXG4pO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzTmF0aXZlYCB3aXRob3V0IGJhZCBzaGltIGNoZWNrcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIG5hdGl2ZSBmdW5jdGlvbixcbiAqICBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VJc05hdGl2ZSh2YWx1ZSkge1xuICBpZiAoIWlzT2JqZWN0KHZhbHVlKSB8fCBpc01hc2tlZCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdmFyIHBhdHRlcm4gPSBpc0Z1bmN0aW9uKHZhbHVlKSA/IHJlSXNOYXRpdmUgOiByZUlzSG9zdEN0b3I7XG4gIHJldHVybiBwYXR0ZXJuLnRlc3QodG9Tb3VyY2UodmFsdWUpKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZUlzTmF0aXZlO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseIsNative.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseIsSet.js": +/*!**********************************************!*\ + !*** ./node_modules/lodash-es/_baseIsSet.js ***! + \**********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getTag_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_getTag.js */ \"./node_modules/lodash-es/_getTag.js\");\n/* harmony import */ var _isObjectLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isObjectLike.js */ \"./node_modules/lodash-es/isObjectLike.js\");\n\n\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return (0,_isObjectLike_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value) && (0,_getTag_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value) == setTag;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseIsSet);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlSXNTZXQuanMuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQWtDO0FBQ1c7O0FBRTdDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBLFNBQVMsNERBQVksV0FBVyxzREFBTTtBQUN0Qzs7QUFFQSwrREFBZSxTQUFTLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUlzU2V0LmpzP2E2MzciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldFRhZyBmcm9tICcuL19nZXRUYWcuanMnO1xuaW1wb3J0IGlzT2JqZWN0TGlrZSBmcm9tICcuL2lzT2JqZWN0TGlrZS5qcyc7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBzZXRUYWcgPSAnW29iamVjdCBTZXRdJztcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc1NldGAgd2l0aG91dCBOb2RlLmpzIG9wdGltaXphdGlvbnMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBzZXQsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gYmFzZUlzU2V0KHZhbHVlKSB7XG4gIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGdldFRhZyh2YWx1ZSkgPT0gc2V0VGFnO1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlSXNTZXQ7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseIsSet.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseIsTypedArray.js": +/*!*****************************************************!*\ + !*** ./node_modules/lodash-es/_baseIsTypedArray.js ***! + \*****************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseGetTag_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_baseGetTag.js */ \"./node_modules/lodash-es/_baseGetTag.js\");\n/* harmony import */ var _isLength_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isLength.js */ \"./node_modules/lodash-es/isLength.js\");\n/* harmony import */ var _isObjectLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isObjectLike.js */ \"./node_modules/lodash-es/isObjectLike.js\");\n\n\n\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return (0,_isObjectLike_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value) &&\n (0,_isLength_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value.length) && !!typedArrayTags[(0,_baseGetTag_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(value)];\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseIsTypedArray);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlSXNUeXBlZEFycmF5LmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBMEM7QUFDTDtBQUNROztBQUU3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2QsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQSxTQUFTLDREQUFZO0FBQ3JCLElBQUksd0RBQVEsbUNBQW1DLDBEQUFVO0FBQ3pEOztBQUVBLCtEQUFlLGdCQUFnQixFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VJc1R5cGVkQXJyYXkuanM/OWUzZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYmFzZUdldFRhZyBmcm9tICcuL19iYXNlR2V0VGFnLmpzJztcbmltcG9ydCBpc0xlbmd0aCBmcm9tICcuL2lzTGVuZ3RoLmpzJztcbmltcG9ydCBpc09iamVjdExpa2UgZnJvbSAnLi9pc09iamVjdExpa2UuanMnO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgYXJnc1RhZyA9ICdbb2JqZWN0IEFyZ3VtZW50c10nLFxuICAgIGFycmF5VGFnID0gJ1tvYmplY3QgQXJyYXldJyxcbiAgICBib29sVGFnID0gJ1tvYmplY3QgQm9vbGVhbl0nLFxuICAgIGRhdGVUYWcgPSAnW29iamVjdCBEYXRlXScsXG4gICAgZXJyb3JUYWcgPSAnW29iamVjdCBFcnJvcl0nLFxuICAgIGZ1bmNUYWcgPSAnW29iamVjdCBGdW5jdGlvbl0nLFxuICAgIG1hcFRhZyA9ICdbb2JqZWN0IE1hcF0nLFxuICAgIG51bWJlclRhZyA9ICdbb2JqZWN0IE51bWJlcl0nLFxuICAgIG9iamVjdFRhZyA9ICdbb2JqZWN0IE9iamVjdF0nLFxuICAgIHJlZ2V4cFRhZyA9ICdbb2JqZWN0IFJlZ0V4cF0nLFxuICAgIHNldFRhZyA9ICdbb2JqZWN0IFNldF0nLFxuICAgIHN0cmluZ1RhZyA9ICdbb2JqZWN0IFN0cmluZ10nLFxuICAgIHdlYWtNYXBUYWcgPSAnW29iamVjdCBXZWFrTWFwXSc7XG5cbnZhciBhcnJheUJ1ZmZlclRhZyA9ICdbb2JqZWN0IEFycmF5QnVmZmVyXScsXG4gICAgZGF0YVZpZXdUYWcgPSAnW29iamVjdCBEYXRhVmlld10nLFxuICAgIGZsb2F0MzJUYWcgPSAnW29iamVjdCBGbG9hdDMyQXJyYXldJyxcbiAgICBmbG9hdDY0VGFnID0gJ1tvYmplY3QgRmxvYXQ2NEFycmF5XScsXG4gICAgaW50OFRhZyA9ICdbb2JqZWN0IEludDhBcnJheV0nLFxuICAgIGludDE2VGFnID0gJ1tvYmplY3QgSW50MTZBcnJheV0nLFxuICAgIGludDMyVGFnID0gJ1tvYmplY3QgSW50MzJBcnJheV0nLFxuICAgIHVpbnQ4VGFnID0gJ1tvYmplY3QgVWludDhBcnJheV0nLFxuICAgIHVpbnQ4Q2xhbXBlZFRhZyA9ICdbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XScsXG4gICAgdWludDE2VGFnID0gJ1tvYmplY3QgVWludDE2QXJyYXldJyxcbiAgICB1aW50MzJUYWcgPSAnW29iamVjdCBVaW50MzJBcnJheV0nO1xuXG4vKiogVXNlZCB0byBpZGVudGlmeSBgdG9TdHJpbmdUYWdgIHZhbHVlcyBvZiB0eXBlZCBhcnJheXMuICovXG52YXIgdHlwZWRBcnJheVRhZ3MgPSB7fTtcbnR5cGVkQXJyYXlUYWdzW2Zsb2F0MzJUYWddID0gdHlwZWRBcnJheVRhZ3NbZmxvYXQ2NFRhZ10gPVxudHlwZWRBcnJheVRhZ3NbaW50OFRhZ10gPSB0eXBlZEFycmF5VGFnc1tpbnQxNlRhZ10gPVxudHlwZWRBcnJheVRhZ3NbaW50MzJUYWddID0gdHlwZWRBcnJheVRhZ3NbdWludDhUYWddID1cbnR5cGVkQXJyYXlUYWdzW3VpbnQ4Q2xhbXBlZFRhZ10gPSB0eXBlZEFycmF5VGFnc1t1aW50MTZUYWddID1cbnR5cGVkQXJyYXlUYWdzW3VpbnQzMlRhZ10gPSB0cnVlO1xudHlwZWRBcnJheVRhZ3NbYXJnc1RhZ10gPSB0eXBlZEFycmF5VGFnc1thcnJheVRhZ10gPVxudHlwZWRBcnJheVRhZ3NbYXJyYXlCdWZmZXJUYWddID0gdHlwZWRBcnJheVRhZ3NbYm9vbFRhZ10gPVxudHlwZWRBcnJheVRhZ3NbZGF0YVZpZXdUYWddID0gdHlwZWRBcnJheVRhZ3NbZGF0ZVRhZ10gPVxudHlwZWRBcnJheVRhZ3NbZXJyb3JUYWddID0gdHlwZWRBcnJheVRhZ3NbZnVuY1RhZ10gPVxudHlwZWRBcnJheVRhZ3NbbWFwVGFnXSA9IHR5cGVkQXJyYXlUYWdzW251bWJlclRhZ10gPVxudHlwZWRBcnJheVRhZ3Nbb2JqZWN0VGFnXSA9IHR5cGVkQXJyYXlUYWdzW3JlZ2V4cFRhZ10gPVxudHlwZWRBcnJheVRhZ3Nbc2V0VGFnXSA9IHR5cGVkQXJyYXlUYWdzW3N0cmluZ1RhZ10gPVxudHlwZWRBcnJheVRhZ3Nbd2Vha01hcFRhZ10gPSBmYWxzZTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc1R5cGVkQXJyYXlgIHdpdGhvdXQgTm9kZS5qcyBvcHRpbWl6YXRpb25zLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgdHlwZWQgYXJyYXksIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gYmFzZUlzVHlwZWRBcnJheSh2YWx1ZSkge1xuICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJlxuICAgIGlzTGVuZ3RoKHZhbHVlLmxlbmd0aCkgJiYgISF0eXBlZEFycmF5VGFnc1tiYXNlR2V0VGFnKHZhbHVlKV07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VJc1R5cGVkQXJyYXk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseIsTypedArray.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseKeys.js": +/*!*********************************************!*\ + !*** ./node_modules/lodash-es/_baseKeys.js ***! + \*********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _isPrototype_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isPrototype.js */ \"./node_modules/lodash-es/_isPrototype.js\");\n/* harmony import */ var _nativeKeys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_nativeKeys.js */ \"./node_modules/lodash-es/_nativeKeys.js\");\n\n\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!(0,_isPrototype_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object)) {\n return (0,_nativeKeys_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseKeys);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlS2V5cy5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7QUFBNEM7QUFDRjs7QUFFMUM7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsT0FBTztBQUNwQjtBQUNBO0FBQ0EsT0FBTywyREFBVztBQUNsQixXQUFXLDBEQUFVO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxRQUFRLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUtleXMuanM/OTY5OSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgaXNQcm90b3R5cGUgZnJvbSAnLi9faXNQcm90b3R5cGUuanMnO1xuaW1wb3J0IG5hdGl2ZUtleXMgZnJvbSAnLi9fbmF0aXZlS2V5cy5qcyc7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ua2V5c2Agd2hpY2ggZG9lc24ndCB0cmVhdCBzcGFyc2UgYXJyYXlzIGFzIGRlbnNlLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICovXG5mdW5jdGlvbiBiYXNlS2V5cyhvYmplY3QpIHtcbiAgaWYgKCFpc1Byb3RvdHlwZShvYmplY3QpKSB7XG4gICAgcmV0dXJuIG5hdGl2ZUtleXMob2JqZWN0KTtcbiAgfVxuICB2YXIgcmVzdWx0ID0gW107XG4gIGZvciAodmFyIGtleSBpbiBPYmplY3Qob2JqZWN0KSkge1xuICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwga2V5KSAmJiBrZXkgIT0gJ2NvbnN0cnVjdG9yJykge1xuICAgICAgcmVzdWx0LnB1c2goa2V5KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZUtleXM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseKeys.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseKeysIn.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/_baseKeysIn.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isObject.js */ \"./node_modules/lodash-es/isObject.js\");\n/* harmony import */ var _isPrototype_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_isPrototype.js */ \"./node_modules/lodash-es/_isPrototype.js\");\n/* harmony import */ var _nativeKeysIn_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_nativeKeysIn.js */ \"./node_modules/lodash-es/_nativeKeysIn.js\");\n\n\n\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!(0,_isObject_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object)) {\n return (0,_nativeKeysIn_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(object);\n }\n var isProto = (0,_isPrototype_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseKeysIn);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlS2V5c0luLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBcUM7QUFDTztBQUNFOztBQUU5QztBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsYUFBYSxPQUFPO0FBQ3BCO0FBQ0E7QUFDQSxPQUFPLHdEQUFRO0FBQ2YsV0FBVyw0REFBWTtBQUN2QjtBQUNBLGdCQUFnQiwyREFBVztBQUMzQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxVQUFVLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUtleXNJbi5qcz80ODg1Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBpc09iamVjdCBmcm9tICcuL2lzT2JqZWN0LmpzJztcbmltcG9ydCBpc1Byb3RvdHlwZSBmcm9tICcuL19pc1Byb3RvdHlwZS5qcyc7XG5pbXBvcnQgbmF0aXZlS2V5c0luIGZyb20gJy4vX25hdGl2ZUtleXNJbi5qcyc7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ua2V5c0luYCB3aGljaCBkb2Vzbid0IHRyZWF0IHNwYXJzZSBhcnJheXMgYXMgZGVuc2UuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMuXG4gKi9cbmZ1bmN0aW9uIGJhc2VLZXlzSW4ob2JqZWN0KSB7XG4gIGlmICghaXNPYmplY3Qob2JqZWN0KSkge1xuICAgIHJldHVybiBuYXRpdmVLZXlzSW4ob2JqZWN0KTtcbiAgfVxuICB2YXIgaXNQcm90byA9IGlzUHJvdG90eXBlKG9iamVjdCksXG4gICAgICByZXN1bHQgPSBbXTtcblxuICBmb3IgKHZhciBrZXkgaW4gb2JqZWN0KSB7XG4gICAgaWYgKCEoa2V5ID09ICdjb25zdHJ1Y3RvcicgJiYgKGlzUHJvdG8gfHwgIWhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpKSkpIHtcbiAgICAgIHJlc3VsdC5wdXNoKGtleSk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VLZXlzSW47XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseKeysIn.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseTimes.js": +/*!**********************************************!*\ + !*** ./node_modules/lodash-es/_baseTimes.js ***! + \**********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseTimes);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlVGltZXMuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxVQUFVO0FBQ3JCLGFBQWEsT0FBTztBQUNwQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLCtEQUFlLFNBQVMsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlVGltZXMuanM/ZTYwOSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnRpbWVzYCB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlIHNob3J0aGFuZHNcbiAqIG9yIG1heCBhcnJheSBsZW5ndGggY2hlY2tzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge251bWJlcn0gbiBUaGUgbnVtYmVyIG9mIHRpbWVzIHRvIGludm9rZSBgaXRlcmF0ZWVgLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcmVzdWx0cy5cbiAqL1xuZnVuY3Rpb24gYmFzZVRpbWVzKG4sIGl0ZXJhdGVlKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgcmVzdWx0ID0gQXJyYXkobik7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBuKSB7XG4gICAgcmVzdWx0W2luZGV4XSA9IGl0ZXJhdGVlKGluZGV4KTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlVGltZXM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseTimes.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseToString.js": +/*!*************************************************!*\ + !*** ./node_modules/lodash-es/_baseToString.js ***! + \*************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Symbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_Symbol.js */ \"./node_modules/lodash-es/_Symbol.js\");\n/* harmony import */ var _arrayMap_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_arrayMap.js */ \"./node_modules/lodash-es/_arrayMap.js\");\n/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isArray.js */ \"./node_modules/lodash-es/isArray.js\");\n/* harmony import */ var _isSymbol_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./isSymbol.js */ \"./node_modules/lodash-es/isSymbol.js\");\n\n\n\n\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = _Symbol_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] ? _Symbol_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if ((0,_isArray_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return (0,_arrayMap_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(value, baseToString) + '';\n }\n if ((0,_isSymbol_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseToString);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlVG9TdHJpbmcuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBa0M7QUFDSTtBQUNIO0FBQ0U7O0FBRXJDO0FBQ0E7O0FBRUE7QUFDQSxrQkFBa0Isa0RBQU0sR0FBRyw0REFBZ0I7QUFDM0M7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLGFBQWEsUUFBUTtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLHVEQUFPO0FBQ2I7QUFDQSxXQUFXLHdEQUFRO0FBQ25CO0FBQ0EsTUFBTSx3REFBUTtBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsWUFBWSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VUb1N0cmluZy5qcz84OWU4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBTeW1ib2wgZnJvbSAnLi9fU3ltYm9sLmpzJztcbmltcG9ydCBhcnJheU1hcCBmcm9tICcuL19hcnJheU1hcC5qcyc7XG5pbXBvcnQgaXNBcnJheSBmcm9tICcuL2lzQXJyYXkuanMnO1xuaW1wb3J0IGlzU3ltYm9sIGZyb20gJy4vaXNTeW1ib2wuanMnO1xuXG4vKiogVXNlZCBhcyByZWZlcmVuY2VzIGZvciB2YXJpb3VzIGBOdW1iZXJgIGNvbnN0YW50cy4gKi9cbnZhciBJTkZJTklUWSA9IDEgLyAwO1xuXG4vKiogVXNlZCB0byBjb252ZXJ0IHN5bWJvbHMgdG8gcHJpbWl0aXZlcyBhbmQgc3RyaW5ncy4gKi9cbnZhciBzeW1ib2xQcm90byA9IFN5bWJvbCA/IFN5bWJvbC5wcm90b3R5cGUgOiB1bmRlZmluZWQsXG4gICAgc3ltYm9sVG9TdHJpbmcgPSBzeW1ib2xQcm90byA/IHN5bWJvbFByb3RvLnRvU3RyaW5nIDogdW5kZWZpbmVkO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnRvU3RyaW5nYCB3aGljaCBkb2Vzbid0IGNvbnZlcnQgbnVsbGlzaFxuICogdmFsdWVzIHRvIGVtcHR5IHN0cmluZ3MuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHByb2Nlc3MuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBzdHJpbmcuXG4gKi9cbmZ1bmN0aW9uIGJhc2VUb1N0cmluZyh2YWx1ZSkge1xuICAvLyBFeGl0IGVhcmx5IGZvciBzdHJpbmdzIHRvIGF2b2lkIGEgcGVyZm9ybWFuY2UgaGl0IGluIHNvbWUgZW52aXJvbm1lbnRzLlxuICBpZiAodHlwZW9mIHZhbHVlID09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIGlmIChpc0FycmF5KHZhbHVlKSkge1xuICAgIC8vIFJlY3Vyc2l2ZWx5IGNvbnZlcnQgdmFsdWVzIChzdXNjZXB0aWJsZSB0byBjYWxsIHN0YWNrIGxpbWl0cykuXG4gICAgcmV0dXJuIGFycmF5TWFwKHZhbHVlLCBiYXNlVG9TdHJpbmcpICsgJyc7XG4gIH1cbiAgaWYgKGlzU3ltYm9sKHZhbHVlKSkge1xuICAgIHJldHVybiBzeW1ib2xUb1N0cmluZyA/IHN5bWJvbFRvU3RyaW5nLmNhbGwodmFsdWUpIDogJyc7XG4gIH1cbiAgdmFyIHJlc3VsdCA9ICh2YWx1ZSArICcnKTtcbiAgcmV0dXJuIChyZXN1bHQgPT0gJzAnICYmICgxIC8gdmFsdWUpID09IC1JTkZJTklUWSkgPyAnLTAnIDogcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlVG9TdHJpbmc7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseToString.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseUnary.js": +/*!**********************************************!*\ + !*** ./node_modules/lodash-es/_baseUnary.js ***! + \**********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (baseUnary);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlVW5hcnkuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxVQUFVO0FBQ3JCLGFBQWEsVUFBVTtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsU0FBUyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VVbmFyeS5qcz82MzQwIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8udW5hcnlgIHdpdGhvdXQgc3VwcG9ydCBmb3Igc3RvcmluZyBtZXRhZGF0YS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gY2FwIGFyZ3VtZW50cyBmb3IuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBjYXBwZWQgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGJhc2VVbmFyeShmdW5jKSB7XG4gIHJldHVybiBmdW5jdGlvbih2YWx1ZSkge1xuICAgIHJldHVybiBmdW5jKHZhbHVlKTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZVVuYXJ5O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_baseUnary.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_cloneArrayBuffer.js": +/*!*****************************************************!*\ + !*** ./node_modules/lodash-es/_cloneArrayBuffer.js ***! + \*****************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Uint8Array_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_Uint8Array.js */ \"./node_modules/lodash-es/_Uint8Array.js\");\n\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new _Uint8Array_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"](result).set(new _Uint8Array_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"](arrayBuffer));\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (cloneArrayBuffer);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jbG9uZUFycmF5QnVmZmVyLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQTBDOztBQUUxQztBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsYUFBYTtBQUN4QixhQUFhLGFBQWE7QUFDMUI7QUFDQTtBQUNBO0FBQ0EsTUFBTSxzREFBVSxpQkFBaUIsc0RBQVU7QUFDM0M7QUFDQTs7QUFFQSwrREFBZSxnQkFBZ0IsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jbG9uZUFycmF5QnVmZmVyLmpzPzY0ZjQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFVpbnQ4QXJyYXkgZnJvbSAnLi9fVWludDhBcnJheS5qcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGNsb25lIG9mIGBhcnJheUJ1ZmZlcmAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXlCdWZmZXJ9IGFycmF5QnVmZmVyIFRoZSBhcnJheSBidWZmZXIgdG8gY2xvbmUuXG4gKiBAcmV0dXJucyB7QXJyYXlCdWZmZXJ9IFJldHVybnMgdGhlIGNsb25lZCBhcnJheSBidWZmZXIuXG4gKi9cbmZ1bmN0aW9uIGNsb25lQXJyYXlCdWZmZXIoYXJyYXlCdWZmZXIpIHtcbiAgdmFyIHJlc3VsdCA9IG5ldyBhcnJheUJ1ZmZlci5jb25zdHJ1Y3RvcihhcnJheUJ1ZmZlci5ieXRlTGVuZ3RoKTtcbiAgbmV3IFVpbnQ4QXJyYXkocmVzdWx0KS5zZXQobmV3IFVpbnQ4QXJyYXkoYXJyYXlCdWZmZXIpKTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xvbmVBcnJheUJ1ZmZlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_cloneArrayBuffer.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_cloneBuffer.js": +/*!************************************************!*\ + !*** ./node_modules/lodash-es/_cloneBuffer.js ***! + \************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_root.js */ \"./node_modules/lodash-es/_root.js\");\n\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? _root_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (cloneBuffer);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jbG9uZUJ1ZmZlci5qcy5qcyIsIm1hcHBpbmdzIjoiOztBQUE4Qjs7QUFFOUI7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSw2QkFBNkIsdURBQVc7QUFDeEM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxTQUFTO0FBQ3BCLGFBQWEsUUFBUTtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsV0FBVyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Nsb25lQnVmZmVyLmpzP2QyOTIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJvb3QgZnJvbSAnLi9fcm9vdC5qcyc7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgZXhwb3J0c2AuICovXG52YXIgZnJlZUV4cG9ydHMgPSB0eXBlb2YgZXhwb3J0cyA9PSAnb2JqZWN0JyAmJiBleHBvcnRzICYmICFleHBvcnRzLm5vZGVUeXBlICYmIGV4cG9ydHM7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgbW9kdWxlYC4gKi9cbnZhciBmcmVlTW9kdWxlID0gZnJlZUV4cG9ydHMgJiYgdHlwZW9mIG1vZHVsZSA9PSAnb2JqZWN0JyAmJiBtb2R1bGUgJiYgIW1vZHVsZS5ub2RlVHlwZSAmJiBtb2R1bGU7XG5cbi8qKiBEZXRlY3QgdGhlIHBvcHVsYXIgQ29tbW9uSlMgZXh0ZW5zaW9uIGBtb2R1bGUuZXhwb3J0c2AuICovXG52YXIgbW9kdWxlRXhwb3J0cyA9IGZyZWVNb2R1bGUgJiYgZnJlZU1vZHVsZS5leHBvcnRzID09PSBmcmVlRXhwb3J0cztcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgQnVmZmVyID0gbW9kdWxlRXhwb3J0cyA/IHJvb3QuQnVmZmVyIDogdW5kZWZpbmVkLFxuICAgIGFsbG9jVW5zYWZlID0gQnVmZmVyID8gQnVmZmVyLmFsbG9jVW5zYWZlIDogdW5kZWZpbmVkO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBjbG9uZSBvZiAgYGJ1ZmZlcmAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QnVmZmVyfSBidWZmZXIgVGhlIGJ1ZmZlciB0byBjbG9uZS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzRGVlcF0gU3BlY2lmeSBhIGRlZXAgY2xvbmUuXG4gKiBAcmV0dXJucyB7QnVmZmVyfSBSZXR1cm5zIHRoZSBjbG9uZWQgYnVmZmVyLlxuICovXG5mdW5jdGlvbiBjbG9uZUJ1ZmZlcihidWZmZXIsIGlzRGVlcCkge1xuICBpZiAoaXNEZWVwKSB7XG4gICAgcmV0dXJuIGJ1ZmZlci5zbGljZSgpO1xuICB9XG4gIHZhciBsZW5ndGggPSBidWZmZXIubGVuZ3RoLFxuICAgICAgcmVzdWx0ID0gYWxsb2NVbnNhZmUgPyBhbGxvY1Vuc2FmZShsZW5ndGgpIDogbmV3IGJ1ZmZlci5jb25zdHJ1Y3RvcihsZW5ndGgpO1xuXG4gIGJ1ZmZlci5jb3B5KHJlc3VsdCk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsb25lQnVmZmVyO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_cloneBuffer.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_cloneDataView.js": +/*!**************************************************!*\ + !*** ./node_modules/lodash-es/_cloneDataView.js ***! + \**************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _cloneArrayBuffer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_cloneArrayBuffer.js */ \"./node_modules/lodash-es/_cloneArrayBuffer.js\");\n\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? (0,_cloneArrayBuffer_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (cloneDataView);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jbG9uZURhdGFWaWV3LmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQXNEOztBQUV0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLFNBQVM7QUFDcEIsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQSx3QkFBd0IsZ0VBQWdCO0FBQ3hDO0FBQ0E7O0FBRUEsK0RBQWUsYUFBYSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Nsb25lRGF0YVZpZXcuanM/ZGM1MiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY2xvbmVBcnJheUJ1ZmZlciBmcm9tICcuL19jbG9uZUFycmF5QnVmZmVyLmpzJztcblxuLyoqXG4gKiBDcmVhdGVzIGEgY2xvbmUgb2YgYGRhdGFWaWV3YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IGRhdGFWaWV3IFRoZSBkYXRhIHZpZXcgdG8gY2xvbmUuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0RlZXBdIFNwZWNpZnkgYSBkZWVwIGNsb25lLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgY2xvbmVkIGRhdGEgdmlldy5cbiAqL1xuZnVuY3Rpb24gY2xvbmVEYXRhVmlldyhkYXRhVmlldywgaXNEZWVwKSB7XG4gIHZhciBidWZmZXIgPSBpc0RlZXAgPyBjbG9uZUFycmF5QnVmZmVyKGRhdGFWaWV3LmJ1ZmZlcikgOiBkYXRhVmlldy5idWZmZXI7XG4gIHJldHVybiBuZXcgZGF0YVZpZXcuY29uc3RydWN0b3IoYnVmZmVyLCBkYXRhVmlldy5ieXRlT2Zmc2V0LCBkYXRhVmlldy5ieXRlTGVuZ3RoKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xvbmVEYXRhVmlldztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_cloneDataView.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_cloneRegExp.js": +/*!************************************************!*\ + !*** ./node_modules/lodash-es/_cloneRegExp.js ***! + \************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (cloneRegExp);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jbG9uZVJlZ0V4cC5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLCtEQUFlLFdBQVcsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jbG9uZVJlZ0V4cC5qcz81NzhhIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBVc2VkIHRvIG1hdGNoIGBSZWdFeHBgIGZsYWdzIGZyb20gdGhlaXIgY29lcmNlZCBzdHJpbmcgdmFsdWVzLiAqL1xudmFyIHJlRmxhZ3MgPSAvXFx3KiQvO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBjbG9uZSBvZiBgcmVnZXhwYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IHJlZ2V4cCBUaGUgcmVnZXhwIHRvIGNsb25lLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgY2xvbmVkIHJlZ2V4cC5cbiAqL1xuZnVuY3Rpb24gY2xvbmVSZWdFeHAocmVnZXhwKSB7XG4gIHZhciByZXN1bHQgPSBuZXcgcmVnZXhwLmNvbnN0cnVjdG9yKHJlZ2V4cC5zb3VyY2UsIHJlRmxhZ3MuZXhlYyhyZWdleHApKTtcbiAgcmVzdWx0Lmxhc3RJbmRleCA9IHJlZ2V4cC5sYXN0SW5kZXg7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsb25lUmVnRXhwO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_cloneRegExp.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_cloneSymbol.js": +/*!************************************************!*\ + !*** ./node_modules/lodash-es/_cloneSymbol.js ***! + \************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Symbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_Symbol.js */ \"./node_modules/lodash-es/_Symbol.js\");\n\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = _Symbol_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] ? _Symbol_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (cloneSymbol);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jbG9uZVN5bWJvbC5qcy5qcyIsIm1hcHBpbmdzIjoiOztBQUFrQzs7QUFFbEM7QUFDQSxrQkFBa0Isa0RBQU0sR0FBRyw0REFBZ0I7QUFDM0M7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBOztBQUVBLCtEQUFlLFdBQVcsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jbG9uZVN5bWJvbC5qcz9kNzIwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBTeW1ib2wgZnJvbSAnLi9fU3ltYm9sLmpzJztcblxuLyoqIFVzZWQgdG8gY29udmVydCBzeW1ib2xzIHRvIHByaW1pdGl2ZXMgYW5kIHN0cmluZ3MuICovXG52YXIgc3ltYm9sUHJvdG8gPSBTeW1ib2wgPyBTeW1ib2wucHJvdG90eXBlIDogdW5kZWZpbmVkLFxuICAgIHN5bWJvbFZhbHVlT2YgPSBzeW1ib2xQcm90byA/IHN5bWJvbFByb3RvLnZhbHVlT2YgOiB1bmRlZmluZWQ7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGNsb25lIG9mIHRoZSBgc3ltYm9sYCBvYmplY3QuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBzeW1ib2wgVGhlIHN5bWJvbCBvYmplY3QgdG8gY2xvbmUuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBjbG9uZWQgc3ltYm9sIG9iamVjdC5cbiAqL1xuZnVuY3Rpb24gY2xvbmVTeW1ib2woc3ltYm9sKSB7XG4gIHJldHVybiBzeW1ib2xWYWx1ZU9mID8gT2JqZWN0KHN5bWJvbFZhbHVlT2YuY2FsbChzeW1ib2wpKSA6IHt9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbG9uZVN5bWJvbDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_cloneSymbol.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_cloneTypedArray.js": +/*!****************************************************!*\ + !*** ./node_modules/lodash-es/_cloneTypedArray.js ***! + \****************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _cloneArrayBuffer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_cloneArrayBuffer.js */ \"./node_modules/lodash-es/_cloneArrayBuffer.js\");\n\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? (0,_cloneArrayBuffer_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (cloneTypedArray);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jbG9uZVR5cGVkQXJyYXkuanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBc0Q7O0FBRXREO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsU0FBUztBQUNwQixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBLHdCQUF3QixnRUFBZ0I7QUFDeEM7QUFDQTs7QUFFQSwrREFBZSxlQUFlLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fY2xvbmVUeXBlZEFycmF5LmpzPzQ1OTkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNsb25lQXJyYXlCdWZmZXIgZnJvbSAnLi9fY2xvbmVBcnJheUJ1ZmZlci5qcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGNsb25lIG9mIGB0eXBlZEFycmF5YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IHR5cGVkQXJyYXkgVGhlIHR5cGVkIGFycmF5IHRvIGNsb25lLlxuICogQHBhcmFtIHtib29sZWFufSBbaXNEZWVwXSBTcGVjaWZ5IGEgZGVlcCBjbG9uZS5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGNsb25lZCB0eXBlZCBhcnJheS5cbiAqL1xuZnVuY3Rpb24gY2xvbmVUeXBlZEFycmF5KHR5cGVkQXJyYXksIGlzRGVlcCkge1xuICB2YXIgYnVmZmVyID0gaXNEZWVwID8gY2xvbmVBcnJheUJ1ZmZlcih0eXBlZEFycmF5LmJ1ZmZlcikgOiB0eXBlZEFycmF5LmJ1ZmZlcjtcbiAgcmV0dXJuIG5ldyB0eXBlZEFycmF5LmNvbnN0cnVjdG9yKGJ1ZmZlciwgdHlwZWRBcnJheS5ieXRlT2Zmc2V0LCB0eXBlZEFycmF5Lmxlbmd0aCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsb25lVHlwZWRBcnJheTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_cloneTypedArray.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_copyArray.js": +/*!**********************************************!*\ + !*** ./node_modules/lodash-es/_copyArray.js ***! + \**********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (copyArray);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jb3B5QXJyYXkuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLFdBQVcsT0FBTztBQUNsQixhQUFhLE9BQU87QUFDcEI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLCtEQUFlLFNBQVMsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jb3B5QXJyYXkuanM/ZDM4ZiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcGllcyB0aGUgdmFsdWVzIG9mIGBzb3VyY2VgIHRvIGBhcnJheWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IHNvdXJjZSBUaGUgYXJyYXkgdG8gY29weSB2YWx1ZXMgZnJvbS5cbiAqIEBwYXJhbSB7QXJyYXl9IFthcnJheT1bXV0gVGhlIGFycmF5IHRvIGNvcHkgdmFsdWVzIHRvLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBhcnJheWAuXG4gKi9cbmZ1bmN0aW9uIGNvcHlBcnJheShzb3VyY2UsIGFycmF5KSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gc291cmNlLmxlbmd0aDtcblxuICBhcnJheSB8fCAoYXJyYXkgPSBBcnJheShsZW5ndGgpKTtcbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICBhcnJheVtpbmRleF0gPSBzb3VyY2VbaW5kZXhdO1xuICB9XG4gIHJldHVybiBhcnJheTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY29weUFycmF5O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_copyArray.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_copyObject.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/_copyObject.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _assignValue_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_assignValue.js */ \"./node_modules/lodash-es/_assignValue.js\");\n/* harmony import */ var _baseAssignValue_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseAssignValue.js */ \"./node_modules/lodash-es/_baseAssignValue.js\");\n\n\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n (0,_baseAssignValue_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object, key, newValue);\n } else {\n (0,_assignValue_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(object, key, newValue);\n }\n }\n return object;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (copyObject);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jb3B5T2JqZWN0LmpzLmpzIiwibWFwcGluZ3MiOiI7OztBQUE0QztBQUNROztBQUVwRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLE9BQU87QUFDbEIsV0FBVyxRQUFRLFVBQVU7QUFDN0IsV0FBVyxVQUFVO0FBQ3JCLGFBQWEsUUFBUTtBQUNyQjtBQUNBO0FBQ0E7QUFDQSx3QkFBd0I7O0FBRXhCO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLCtEQUFlO0FBQ3JCLE1BQU07QUFDTixNQUFNLDJEQUFXO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBOztBQUVBLCtEQUFlLFVBQVUsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jb3B5T2JqZWN0LmpzPzc1YWUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2lnblZhbHVlIGZyb20gJy4vX2Fzc2lnblZhbHVlLmpzJztcbmltcG9ydCBiYXNlQXNzaWduVmFsdWUgZnJvbSAnLi9fYmFzZUFzc2lnblZhbHVlLmpzJztcblxuLyoqXG4gKiBDb3BpZXMgcHJvcGVydGllcyBvZiBgc291cmNlYCB0byBgb2JqZWN0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IHRvIGNvcHkgcHJvcGVydGllcyBmcm9tLlxuICogQHBhcmFtIHtBcnJheX0gcHJvcHMgVGhlIHByb3BlcnR5IGlkZW50aWZpZXJzIHRvIGNvcHkuXG4gKiBAcGFyYW0ge09iamVjdH0gW29iamVjdD17fV0gVGhlIG9iamVjdCB0byBjb3B5IHByb3BlcnRpZXMgdG8uXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjb3BpZWQgdmFsdWVzLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAqL1xuZnVuY3Rpb24gY29weU9iamVjdChzb3VyY2UsIHByb3BzLCBvYmplY3QsIGN1c3RvbWl6ZXIpIHtcbiAgdmFyIGlzTmV3ID0gIW9iamVjdDtcbiAgb2JqZWN0IHx8IChvYmplY3QgPSB7fSk7XG5cbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBwcm9wcy5sZW5ndGg7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICB2YXIga2V5ID0gcHJvcHNbaW5kZXhdO1xuXG4gICAgdmFyIG5ld1ZhbHVlID0gY3VzdG9taXplclxuICAgICAgPyBjdXN0b21pemVyKG9iamVjdFtrZXldLCBzb3VyY2Vba2V5XSwga2V5LCBvYmplY3QsIHNvdXJjZSlcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgaWYgKG5ld1ZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIG5ld1ZhbHVlID0gc291cmNlW2tleV07XG4gICAgfVxuICAgIGlmIChpc05ldykge1xuICAgICAgYmFzZUFzc2lnblZhbHVlKG9iamVjdCwga2V5LCBuZXdWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFzc2lnblZhbHVlKG9iamVjdCwga2V5LCBuZXdWYWx1ZSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBvYmplY3Q7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNvcHlPYmplY3Q7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_copyObject.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_copySymbols.js": +/*!************************************************!*\ + !*** ./node_modules/lodash-es/_copySymbols.js ***! + \************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _copyObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_copyObject.js */ \"./node_modules/lodash-es/_copyObject.js\");\n/* harmony import */ var _getSymbols_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_getSymbols.js */ \"./node_modules/lodash-es/_getSymbols.js\");\n\n\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return (0,_copyObject_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(source, (0,_getSymbols_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(source), object);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (copySymbols);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jb3B5U3ltYm9scy5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7QUFBMEM7QUFDQTs7QUFFMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRLFVBQVU7QUFDN0IsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQSxTQUFTLDBEQUFVLFNBQVMsMERBQVU7QUFDdEM7O0FBRUEsK0RBQWUsV0FBVyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2NvcHlTeW1ib2xzLmpzPzc5YjYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvcHlPYmplY3QgZnJvbSAnLi9fY29weU9iamVjdC5qcyc7XG5pbXBvcnQgZ2V0U3ltYm9scyBmcm9tICcuL19nZXRTeW1ib2xzLmpzJztcblxuLyoqXG4gKiBDb3BpZXMgb3duIHN5bWJvbHMgb2YgYHNvdXJjZWAgdG8gYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIG9iamVjdCB0byBjb3B5IHN5bWJvbHMgZnJvbS5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0PXt9XSBUaGUgb2JqZWN0IHRvIGNvcHkgc3ltYm9scyB0by5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gKi9cbmZ1bmN0aW9uIGNvcHlTeW1ib2xzKHNvdXJjZSwgb2JqZWN0KSB7XG4gIHJldHVybiBjb3B5T2JqZWN0KHNvdXJjZSwgZ2V0U3ltYm9scyhzb3VyY2UpLCBvYmplY3QpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjb3B5U3ltYm9scztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_copySymbols.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_copySymbolsIn.js": +/*!**************************************************!*\ + !*** ./node_modules/lodash-es/_copySymbolsIn.js ***! + \**************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _copyObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_copyObject.js */ \"./node_modules/lodash-es/_copyObject.js\");\n/* harmony import */ var _getSymbolsIn_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_getSymbolsIn.js */ \"./node_modules/lodash-es/_getSymbolsIn.js\");\n\n\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return (0,_copyObject_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(source, (0,_getSymbolsIn_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(source), object);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (copySymbolsIn);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jb3B5U3ltYm9sc0luLmpzLmpzIiwibWFwcGluZ3MiOiI7OztBQUEwQztBQUNJOztBQUU5QztBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVEsVUFBVTtBQUM3QixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBLFNBQVMsMERBQVUsU0FBUyw0REFBWTtBQUN4Qzs7QUFFQSwrREFBZSxhQUFhLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fY29weVN5bWJvbHNJbi5qcz8wOWNmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjb3B5T2JqZWN0IGZyb20gJy4vX2NvcHlPYmplY3QuanMnO1xuaW1wb3J0IGdldFN5bWJvbHNJbiBmcm9tICcuL19nZXRTeW1ib2xzSW4uanMnO1xuXG4vKipcbiAqIENvcGllcyBvd24gYW5kIGluaGVyaXRlZCBzeW1ib2xzIG9mIGBzb3VyY2VgIHRvIGBvYmplY3RgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBvYmplY3QgdG8gY29weSBzeW1ib2xzIGZyb20uXG4gKiBAcGFyYW0ge09iamVjdH0gW29iamVjdD17fV0gVGhlIG9iamVjdCB0byBjb3B5IHN5bWJvbHMgdG8uXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICovXG5mdW5jdGlvbiBjb3B5U3ltYm9sc0luKHNvdXJjZSwgb2JqZWN0KSB7XG4gIHJldHVybiBjb3B5T2JqZWN0KHNvdXJjZSwgZ2V0U3ltYm9sc0luKHNvdXJjZSksIG9iamVjdCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNvcHlTeW1ib2xzSW47XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_copySymbolsIn.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_coreJsData.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/_coreJsData.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_root.js */ \"./node_modules/lodash-es/_root.js\");\n\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = _root_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"][\"__core-js_shared__\"];\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (coreJsData);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jb3JlSnNEYXRhLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQThCOztBQUU5QjtBQUNBLGlCQUFpQixzRUFBMEI7O0FBRTNDLCtEQUFlLFVBQVUsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jb3JlSnNEYXRhLmpzPzU5OTYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJvb3QgZnJvbSAnLi9fcm9vdC5qcyc7XG5cbi8qKiBVc2VkIHRvIGRldGVjdCBvdmVycmVhY2hpbmcgY29yZS1qcyBzaGltcy4gKi9cbnZhciBjb3JlSnNEYXRhID0gcm9vdFsnX19jb3JlLWpzX3NoYXJlZF9fJ107XG5cbmV4cG9ydCBkZWZhdWx0IGNvcmVKc0RhdGE7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_coreJsData.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_defineProperty.js": +/*!***************************************************!*\ + !*** ./node_modules/lodash-es/_defineProperty.js ***! + \***************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getNative_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getNative.js */ \"./node_modules/lodash-es/_getNative.js\");\n\n\nvar defineProperty = (function() {\n try {\n var func = (0,_getNative_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (defineProperty);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19kZWZpbmVQcm9wZXJ0eS5qcy5qcyIsIm1hcHBpbmdzIjoiOztBQUF3Qzs7QUFFeEM7QUFDQTtBQUNBLGVBQWUseURBQVM7QUFDeEIsV0FBVyxRQUFRO0FBQ25CO0FBQ0EsSUFBSTtBQUNKLENBQUM7O0FBRUQsK0RBQWUsY0FBYyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2RlZmluZVByb3BlcnR5LmpzPzRjM2QiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldE5hdGl2ZSBmcm9tICcuL19nZXROYXRpdmUuanMnO1xuXG52YXIgZGVmaW5lUHJvcGVydHkgPSAoZnVuY3Rpb24oKSB7XG4gIHRyeSB7XG4gICAgdmFyIGZ1bmMgPSBnZXROYXRpdmUoT2JqZWN0LCAnZGVmaW5lUHJvcGVydHknKTtcbiAgICBmdW5jKHt9LCAnJywge30pO1xuICAgIHJldHVybiBmdW5jO1xuICB9IGNhdGNoIChlKSB7fVxufSgpKTtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lUHJvcGVydHk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_defineProperty.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_freeGlobal.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/_freeGlobal.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (freeGlobal);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19mcmVlR2xvYmFsLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBQTtBQUNBOztBQUVBLCtEQUFlLFVBQVUsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19mcmVlR2xvYmFsLmpzPzliMDUiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBnbG9iYWxgIGZyb20gTm9kZS5qcy4gKi9cbnZhciBmcmVlR2xvYmFsID0gdHlwZW9mIGdsb2JhbCA9PSAnb2JqZWN0JyAmJiBnbG9iYWwgJiYgZ2xvYmFsLk9iamVjdCA9PT0gT2JqZWN0ICYmIGdsb2JhbDtcblxuZXhwb3J0IGRlZmF1bHQgZnJlZUdsb2JhbDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_freeGlobal.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_getAllKeys.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/_getAllKeys.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseGetAllKeys_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseGetAllKeys.js */ \"./node_modules/lodash-es/_baseGetAllKeys.js\");\n/* harmony import */ var _getSymbols_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_getSymbols.js */ \"./node_modules/lodash-es/_getSymbols.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keys.js */ \"./node_modules/lodash-es/keys.js\");\n\n\n\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return (0,_baseGetAllKeys_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object, _keys_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], _getSymbols_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (getAllKeys);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRBbGxLZXlzLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBa0Q7QUFDUjtBQUNiOztBQUU3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixhQUFhLE9BQU87QUFDcEI7QUFDQTtBQUNBLFNBQVMsOERBQWMsU0FBUyxnREFBSSxFQUFFLHNEQUFVO0FBQ2hEOztBQUVBLCtEQUFlLFVBQVUsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRBbGxLZXlzLmpzP2JlZjMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGJhc2VHZXRBbGxLZXlzIGZyb20gJy4vX2Jhc2VHZXRBbGxLZXlzLmpzJztcbmltcG9ydCBnZXRTeW1ib2xzIGZyb20gJy4vX2dldFN5bWJvbHMuanMnO1xuaW1wb3J0IGtleXMgZnJvbSAnLi9rZXlzLmpzJztcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IG9mIG93biBlbnVtZXJhYmxlIHByb3BlcnR5IG5hbWVzIGFuZCBzeW1ib2xzIG9mIGBvYmplY3RgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzIGFuZCBzeW1ib2xzLlxuICovXG5mdW5jdGlvbiBnZXRBbGxLZXlzKG9iamVjdCkge1xuICByZXR1cm4gYmFzZUdldEFsbEtleXMob2JqZWN0LCBrZXlzLCBnZXRTeW1ib2xzKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZ2V0QWxsS2V5cztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_getAllKeys.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_getAllKeysIn.js": +/*!*************************************************!*\ + !*** ./node_modules/lodash-es/_getAllKeysIn.js ***! + \*************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseGetAllKeys_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseGetAllKeys.js */ \"./node_modules/lodash-es/_baseGetAllKeys.js\");\n/* harmony import */ var _getSymbolsIn_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_getSymbolsIn.js */ \"./node_modules/lodash-es/_getSymbolsIn.js\");\n/* harmony import */ var _keysIn_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keysIn.js */ \"./node_modules/lodash-es/keysIn.js\");\n\n\n\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return (0,_baseGetAllKeys_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object, _keysIn_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], _getSymbolsIn_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (getAllKeysIn);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRBbGxLZXlzSW4uanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFrRDtBQUNKO0FBQ2I7O0FBRWpDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsYUFBYSxPQUFPO0FBQ3BCO0FBQ0E7QUFDQSxTQUFTLDhEQUFjLFNBQVMsa0RBQU0sRUFBRSx3REFBWTtBQUNwRDs7QUFFQSwrREFBZSxZQUFZLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZ2V0QWxsS2V5c0luLmpzPzYzZDAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGJhc2VHZXRBbGxLZXlzIGZyb20gJy4vX2Jhc2VHZXRBbGxLZXlzLmpzJztcbmltcG9ydCBnZXRTeW1ib2xzSW4gZnJvbSAnLi9fZ2V0U3ltYm9sc0luLmpzJztcbmltcG9ydCBrZXlzSW4gZnJvbSAnLi9rZXlzSW4uanMnO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gYXJyYXkgb2Ygb3duIGFuZCBpbmhlcml0ZWQgZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBhbmRcbiAqIHN5bWJvbHMgb2YgYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMgYW5kIHN5bWJvbHMuXG4gKi9cbmZ1bmN0aW9uIGdldEFsbEtleXNJbihvYmplY3QpIHtcbiAgcmV0dXJuIGJhc2VHZXRBbGxLZXlzKG9iamVjdCwga2V5c0luLCBnZXRTeW1ib2xzSW4pO1xufVxuXG5leHBvcnQgZGVmYXVsdCBnZXRBbGxLZXlzSW47XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_getAllKeysIn.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_getMapData.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/_getMapData.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _isKeyable_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isKeyable.js */ \"./node_modules/lodash-es/_isKeyable.js\");\n\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return (0,_isKeyable_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (getMapData);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRNYXBEYXRhLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQXdDOztBQUV4QztBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkIsYUFBYSxHQUFHO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBLFNBQVMseURBQVM7QUFDbEI7QUFDQTtBQUNBOztBQUVBLCtEQUFlLFVBQVUsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRNYXBEYXRhLmpzP2IzNGIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGlzS2V5YWJsZSBmcm9tICcuL19pc0tleWFibGUuanMnO1xuXG4vKipcbiAqIEdldHMgdGhlIGRhdGEgZm9yIGBtYXBgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gbWFwIFRoZSBtYXAgdG8gcXVlcnkuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSByZWZlcmVuY2Uga2V5LlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIG1hcCBkYXRhLlxuICovXG5mdW5jdGlvbiBnZXRNYXBEYXRhKG1hcCwga2V5KSB7XG4gIHZhciBkYXRhID0gbWFwLl9fZGF0YV9fO1xuICByZXR1cm4gaXNLZXlhYmxlKGtleSlcbiAgICA/IGRhdGFbdHlwZW9mIGtleSA9PSAnc3RyaW5nJyA/ICdzdHJpbmcnIDogJ2hhc2gnXVxuICAgIDogZGF0YS5tYXA7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGdldE1hcERhdGE7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_getMapData.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_getNative.js": +/*!**********************************************!*\ + !*** ./node_modules/lodash-es/_getNative.js ***! + \**********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseIsNative_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_baseIsNative.js */ \"./node_modules/lodash-es/_baseIsNative.js\");\n/* harmony import */ var _getValue_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getValue.js */ \"./node_modules/lodash-es/_getValue.js\");\n\n\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = (0,_getValue_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object, key);\n return (0,_baseIsNative_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value) ? value : undefined;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (getNative);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXROYXRpdmUuanMuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQThDO0FBQ1I7O0FBRXRDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixhQUFhLEdBQUc7QUFDaEI7QUFDQTtBQUNBLGNBQWMsd0RBQVE7QUFDdEIsU0FBUyw0REFBWTtBQUNyQjs7QUFFQSwrREFBZSxTQUFTLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZ2V0TmF0aXZlLmpzPzAzMTAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGJhc2VJc05hdGl2ZSBmcm9tICcuL19iYXNlSXNOYXRpdmUuanMnO1xuaW1wb3J0IGdldFZhbHVlIGZyb20gJy4vX2dldFZhbHVlLmpzJztcblxuLyoqXG4gKiBHZXRzIHRoZSBuYXRpdmUgZnVuY3Rpb24gYXQgYGtleWAgb2YgYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgbWV0aG9kIHRvIGdldC5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBmdW5jdGlvbiBpZiBpdCdzIG5hdGl2ZSwgZWxzZSBgdW5kZWZpbmVkYC5cbiAqL1xuZnVuY3Rpb24gZ2V0TmF0aXZlKG9iamVjdCwga2V5KSB7XG4gIHZhciB2YWx1ZSA9IGdldFZhbHVlKG9iamVjdCwga2V5KTtcbiAgcmV0dXJuIGJhc2VJc05hdGl2ZSh2YWx1ZSkgPyB2YWx1ZSA6IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZ2V0TmF0aXZlO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_getNative.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_getPrototype.js": +/*!*************************************************!*\ + !*** ./node_modules/lodash-es/_getPrototype.js ***! + \*************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _overArg_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_overArg.js */ \"./node_modules/lodash-es/_overArg.js\");\n\n\n/** Built-in value references. */\nvar getPrototype = (0,_overArg_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Object.getPrototypeOf, Object);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (getPrototype);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRQcm90b3R5cGUuanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBb0M7O0FBRXBDO0FBQ0EsbUJBQW1CLHVEQUFPOztBQUUxQiwrREFBZSxZQUFZLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZ2V0UHJvdG90eXBlLmpzPzJiNTMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG92ZXJBcmcgZnJvbSAnLi9fb3ZlckFyZy5qcyc7XG5cbi8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqL1xudmFyIGdldFByb3RvdHlwZSA9IG92ZXJBcmcoT2JqZWN0LmdldFByb3RvdHlwZU9mLCBPYmplY3QpO1xuXG5leHBvcnQgZGVmYXVsdCBnZXRQcm90b3R5cGU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_getPrototype.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_getRawTag.js": +/*!**********************************************!*\ + !*** ./node_modules/lodash-es/_getRawTag.js ***! + \**********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Symbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_Symbol.js */ \"./node_modules/lodash-es/_Symbol.js\");\n\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = _Symbol_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] ? _Symbol_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (getRawTag);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRSYXdUYWcuanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBa0M7O0FBRWxDO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxxQkFBcUIsa0RBQU0sR0FBRyw4REFBa0I7O0FBRWhEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2QsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7O0FBRUo7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxTQUFTLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZ2V0UmF3VGFnLmpzPzIzNGYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFN5bWJvbCBmcm9tICcuL19TeW1ib2wuanMnO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIFVzZWQgdG8gcmVzb2x2ZSB0aGVcbiAqIFtgdG9TdHJpbmdUYWdgXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1vYmplY3QucHJvdG90eXBlLnRvc3RyaW5nKVxuICogb2YgdmFsdWVzLlxuICovXG52YXIgbmF0aXZlT2JqZWN0VG9TdHJpbmcgPSBvYmplY3RQcm90by50b1N0cmluZztcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgc3ltVG9TdHJpbmdUYWcgPSBTeW1ib2wgPyBTeW1ib2wudG9TdHJpbmdUYWcgOiB1bmRlZmluZWQ7XG5cbi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlR2V0VGFnYCB3aGljaCBpZ25vcmVzIGBTeW1ib2wudG9TdHJpbmdUYWdgIHZhbHVlcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSByYXcgYHRvU3RyaW5nVGFnYC5cbiAqL1xuZnVuY3Rpb24gZ2V0UmF3VGFnKHZhbHVlKSB7XG4gIHZhciBpc093biA9IGhhc093blByb3BlcnR5LmNhbGwodmFsdWUsIHN5bVRvU3RyaW5nVGFnKSxcbiAgICAgIHRhZyA9IHZhbHVlW3N5bVRvU3RyaW5nVGFnXTtcblxuICB0cnkge1xuICAgIHZhbHVlW3N5bVRvU3RyaW5nVGFnXSA9IHVuZGVmaW5lZDtcbiAgICB2YXIgdW5tYXNrZWQgPSB0cnVlO1xuICB9IGNhdGNoIChlKSB7fVxuXG4gIHZhciByZXN1bHQgPSBuYXRpdmVPYmplY3RUb1N0cmluZy5jYWxsKHZhbHVlKTtcbiAgaWYgKHVubWFza2VkKSB7XG4gICAgaWYgKGlzT3duKSB7XG4gICAgICB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ10gPSB0YWc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlbGV0ZSB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ107XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGdldFJhd1RhZztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_getRawTag.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_getSymbols.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/_getSymbols.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _arrayFilter_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_arrayFilter.js */ \"./node_modules/lodash-es/_arrayFilter.js\");\n/* harmony import */ var _stubArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./stubArray.js */ \"./node_modules/lodash-es/stubArray.js\");\n\n\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? _stubArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return (0,_arrayFilter_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (getSymbols);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRTeW1ib2xzLmpzLmpzIiwibWFwcGluZ3MiOiI7OztBQUE0QztBQUNMOztBQUV2QztBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixhQUFhLE9BQU87QUFDcEI7QUFDQSxxQ0FBcUMscURBQVM7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTLDJEQUFXO0FBQ3BCO0FBQ0EsR0FBRztBQUNIOztBQUVBLCtEQUFlLFVBQVUsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRTeW1ib2xzLmpzP2I2ZjAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFycmF5RmlsdGVyIGZyb20gJy4vX2FycmF5RmlsdGVyLmpzJztcbmltcG9ydCBzdHViQXJyYXkgZnJvbSAnLi9zdHViQXJyYXkuanMnO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBwcm9wZXJ0eUlzRW51bWVyYWJsZSA9IG9iamVjdFByb3RvLnByb3BlcnR5SXNFbnVtZXJhYmxlO1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlR2V0U3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhcnJheSBvZiB0aGUgb3duIGVudW1lcmFibGUgc3ltYm9scyBvZiBgb2JqZWN0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBzeW1ib2xzLlxuICovXG52YXIgZ2V0U3ltYm9scyA9ICFuYXRpdmVHZXRTeW1ib2xzID8gc3R1YkFycmF5IDogZnVuY3Rpb24ob2JqZWN0KSB7XG4gIGlmIChvYmplY3QgPT0gbnVsbCkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICBvYmplY3QgPSBPYmplY3Qob2JqZWN0KTtcbiAgcmV0dXJuIGFycmF5RmlsdGVyKG5hdGl2ZUdldFN5bWJvbHMob2JqZWN0KSwgZnVuY3Rpb24oc3ltYm9sKSB7XG4gICAgcmV0dXJuIHByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwob2JqZWN0LCBzeW1ib2wpO1xuICB9KTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGdldFN5bWJvbHM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_getSymbols.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_getSymbolsIn.js": +/*!*************************************************!*\ + !*** ./node_modules/lodash-es/_getSymbolsIn.js ***! + \*************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _arrayPush_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_arrayPush.js */ \"./node_modules/lodash-es/_arrayPush.js\");\n/* harmony import */ var _getPrototype_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_getPrototype.js */ \"./node_modules/lodash-es/_getPrototype.js\");\n/* harmony import */ var _getSymbols_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_getSymbols.js */ \"./node_modules/lodash-es/_getSymbols.js\");\n/* harmony import */ var _stubArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./stubArray.js */ \"./node_modules/lodash-es/stubArray.js\");\n\n\n\n\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? _stubArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] : function(object) {\n var result = [];\n while (object) {\n (0,_arrayPush_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(result, (0,_getSymbols_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(object));\n object = (0,_getPrototype_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(object);\n }\n return result;\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (getSymbolsIn);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRTeW1ib2xzSW4uanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBd0M7QUFDTTtBQUNKO0FBQ0g7O0FBRXZDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsYUFBYSxPQUFPO0FBQ3BCO0FBQ0EsdUNBQXVDLHFEQUFTO0FBQ2hEO0FBQ0E7QUFDQSxJQUFJLHlEQUFTLFNBQVMsMERBQVU7QUFDaEMsYUFBYSw0REFBWTtBQUN6QjtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsWUFBWSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2dldFN5bWJvbHNJbi5qcz84ZjM3Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhcnJheVB1c2ggZnJvbSAnLi9fYXJyYXlQdXNoLmpzJztcbmltcG9ydCBnZXRQcm90b3R5cGUgZnJvbSAnLi9fZ2V0UHJvdG90eXBlLmpzJztcbmltcG9ydCBnZXRTeW1ib2xzIGZyb20gJy4vX2dldFN5bWJvbHMuanMnO1xuaW1wb3J0IHN0dWJBcnJheSBmcm9tICcuL3N0dWJBcnJheS5qcyc7XG5cbi8qIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIGZvciB0aG9zZSB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgb3RoZXIgYGxvZGFzaGAgbWV0aG9kcy4gKi9cbnZhciBuYXRpdmVHZXRTeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IG9mIHRoZSBvd24gYW5kIGluaGVyaXRlZCBlbnVtZXJhYmxlIHN5bWJvbHMgb2YgYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2Ygc3ltYm9scy5cbiAqL1xudmFyIGdldFN5bWJvbHNJbiA9ICFuYXRpdmVHZXRTeW1ib2xzID8gc3R1YkFycmF5IDogZnVuY3Rpb24ob2JqZWN0KSB7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgd2hpbGUgKG9iamVjdCkge1xuICAgIGFycmF5UHVzaChyZXN1bHQsIGdldFN5bWJvbHMob2JqZWN0KSk7XG4gICAgb2JqZWN0ID0gZ2V0UHJvdG90eXBlKG9iamVjdCk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGdldFN5bWJvbHNJbjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_getSymbolsIn.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_getTag.js": +/*!*******************************************!*\ + !*** ./node_modules/lodash-es/_getTag.js ***! + \*******************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _DataView_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_DataView.js */ \"./node_modules/lodash-es/_DataView.js\");\n/* harmony import */ var _Map_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_Map.js */ \"./node_modules/lodash-es/_Map.js\");\n/* harmony import */ var _Promise_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_Promise.js */ \"./node_modules/lodash-es/_Promise.js\");\n/* harmony import */ var _Set_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_Set.js */ \"./node_modules/lodash-es/_Set.js\");\n/* harmony import */ var _WeakMap_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./_WeakMap.js */ \"./node_modules/lodash-es/_WeakMap.js\");\n/* harmony import */ var _baseGetTag_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./_baseGetTag.js */ \"./node_modules/lodash-es/_baseGetTag.js\");\n/* harmony import */ var _toSource_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_toSource.js */ \"./node_modules/lodash-es/_toSource.js\");\n\n\n\n\n\n\n\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = (0,_toSource_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_DataView_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]),\n mapCtorString = (0,_toSource_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_Map_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]),\n promiseCtorString = (0,_toSource_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_Promise_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]),\n setCtorString = (0,_toSource_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_Set_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]),\n weakMapCtorString = (0,_toSource_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_WeakMap_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = _baseGetTag_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"];\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((_DataView_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"] && getTag(new _DataView_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"](new ArrayBuffer(1))) != dataViewTag) ||\n (_Map_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"] && getTag(new _Map_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]) != mapTag) ||\n (_Promise_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"] && getTag(_Promise_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].resolve()) != promiseTag) ||\n (_Set_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"] && getTag(new _Set_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]) != setTag) ||\n (_WeakMap_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"] && getTag(new _WeakMap_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]) != weakMapTag)) {\n getTag = function(value) {\n var result = (0,_baseGetTag_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? (0,_toSource_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (getTag);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRUYWcuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBc0M7QUFDVjtBQUNRO0FBQ1I7QUFDUTtBQUNNO0FBQ0o7O0FBRXRDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBLHlCQUF5Qix3REFBUSxDQUFDLG9EQUFRO0FBQzFDLG9CQUFvQix3REFBUSxDQUFDLCtDQUFHO0FBQ2hDLHdCQUF3Qix3REFBUSxDQUFDLG1EQUFPO0FBQ3hDLG9CQUFvQix3REFBUSxDQUFDLCtDQUFHO0FBQ2hDLHdCQUF3Qix3REFBUSxDQUFDLG1EQUFPOztBQUV4QztBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLGFBQWEsUUFBUTtBQUNyQjtBQUNBLGFBQWEsc0RBQVU7O0FBRXZCO0FBQ0EsS0FBSyxvREFBUSxlQUFlLG9EQUFRO0FBQ3BDLEtBQUssK0NBQUcsZUFBZSwrQ0FBRztBQUMxQixLQUFLLG1EQUFPLFdBQVcsMkRBQWU7QUFDdEMsS0FBSywrQ0FBRyxlQUFlLCtDQUFHO0FBQzFCLEtBQUssbURBQU8sZUFBZSxtREFBTztBQUNsQztBQUNBLGlCQUFpQiwwREFBVTtBQUMzQjtBQUNBLDRCQUE0Qix3REFBUTs7QUFFcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLCtEQUFlLE1BQU0sRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRUYWcuanM/ZTMxOSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRGF0YVZpZXcgZnJvbSAnLi9fRGF0YVZpZXcuanMnO1xuaW1wb3J0IE1hcCBmcm9tICcuL19NYXAuanMnO1xuaW1wb3J0IFByb21pc2UgZnJvbSAnLi9fUHJvbWlzZS5qcyc7XG5pbXBvcnQgU2V0IGZyb20gJy4vX1NldC5qcyc7XG5pbXBvcnQgV2Vha01hcCBmcm9tICcuL19XZWFrTWFwLmpzJztcbmltcG9ydCBiYXNlR2V0VGFnIGZyb20gJy4vX2Jhc2VHZXRUYWcuanMnO1xuaW1wb3J0IHRvU291cmNlIGZyb20gJy4vX3RvU291cmNlLmpzJztcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIG1hcFRhZyA9ICdbb2JqZWN0IE1hcF0nLFxuICAgIG9iamVjdFRhZyA9ICdbb2JqZWN0IE9iamVjdF0nLFxuICAgIHByb21pc2VUYWcgPSAnW29iamVjdCBQcm9taXNlXScsXG4gICAgc2V0VGFnID0gJ1tvYmplY3QgU2V0XScsXG4gICAgd2Vha01hcFRhZyA9ICdbb2JqZWN0IFdlYWtNYXBdJztcblxudmFyIGRhdGFWaWV3VGFnID0gJ1tvYmplY3QgRGF0YVZpZXddJztcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IG1hcHMsIHNldHMsIGFuZCB3ZWFrbWFwcy4gKi9cbnZhciBkYXRhVmlld0N0b3JTdHJpbmcgPSB0b1NvdXJjZShEYXRhVmlldyksXG4gICAgbWFwQ3RvclN0cmluZyA9IHRvU291cmNlKE1hcCksXG4gICAgcHJvbWlzZUN0b3JTdHJpbmcgPSB0b1NvdXJjZShQcm9taXNlKSxcbiAgICBzZXRDdG9yU3RyaW5nID0gdG9Tb3VyY2UoU2V0KSxcbiAgICB3ZWFrTWFwQ3RvclN0cmluZyA9IHRvU291cmNlKFdlYWtNYXApO1xuXG4vKipcbiAqIEdldHMgdGhlIGB0b1N0cmluZ1RhZ2Agb2YgYHZhbHVlYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBgdG9TdHJpbmdUYWdgLlxuICovXG52YXIgZ2V0VGFnID0gYmFzZUdldFRhZztcblxuLy8gRmFsbGJhY2sgZm9yIGRhdGEgdmlld3MsIG1hcHMsIHNldHMsIGFuZCB3ZWFrIG1hcHMgaW4gSUUgMTEgYW5kIHByb21pc2VzIGluIE5vZGUuanMgPCA2LlxuaWYgKChEYXRhVmlldyAmJiBnZXRUYWcobmV3IERhdGFWaWV3KG5ldyBBcnJheUJ1ZmZlcigxKSkpICE9IGRhdGFWaWV3VGFnKSB8fFxuICAgIChNYXAgJiYgZ2V0VGFnKG5ldyBNYXApICE9IG1hcFRhZykgfHxcbiAgICAoUHJvbWlzZSAmJiBnZXRUYWcoUHJvbWlzZS5yZXNvbHZlKCkpICE9IHByb21pc2VUYWcpIHx8XG4gICAgKFNldCAmJiBnZXRUYWcobmV3IFNldCkgIT0gc2V0VGFnKSB8fFxuICAgIChXZWFrTWFwICYmIGdldFRhZyhuZXcgV2Vha01hcCkgIT0gd2Vha01hcFRhZykpIHtcbiAgZ2V0VGFnID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgICB2YXIgcmVzdWx0ID0gYmFzZUdldFRhZyh2YWx1ZSksXG4gICAgICAgIEN0b3IgPSByZXN1bHQgPT0gb2JqZWN0VGFnID8gdmFsdWUuY29uc3RydWN0b3IgOiB1bmRlZmluZWQsXG4gICAgICAgIGN0b3JTdHJpbmcgPSBDdG9yID8gdG9Tb3VyY2UoQ3RvcikgOiAnJztcblxuICAgIGlmIChjdG9yU3RyaW5nKSB7XG4gICAgICBzd2l0Y2ggKGN0b3JTdHJpbmcpIHtcbiAgICAgICAgY2FzZSBkYXRhVmlld0N0b3JTdHJpbmc6IHJldHVybiBkYXRhVmlld1RhZztcbiAgICAgICAgY2FzZSBtYXBDdG9yU3RyaW5nOiByZXR1cm4gbWFwVGFnO1xuICAgICAgICBjYXNlIHByb21pc2VDdG9yU3RyaW5nOiByZXR1cm4gcHJvbWlzZVRhZztcbiAgICAgICAgY2FzZSBzZXRDdG9yU3RyaW5nOiByZXR1cm4gc2V0VGFnO1xuICAgICAgICBjYXNlIHdlYWtNYXBDdG9yU3RyaW5nOiByZXR1cm4gd2Vha01hcFRhZztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZ2V0VGFnO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_getTag.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_getValue.js": +/*!*********************************************!*\ + !*** ./node_modules/lodash-es/_getValue.js ***! + \*********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (getValue);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRWYWx1ZS5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLGFBQWEsR0FBRztBQUNoQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxRQUFRLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZ2V0VmFsdWUuanM/NjE1OSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdldHMgdGhlIHZhbHVlIGF0IGBrZXlgIG9mIGBvYmplY3RgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gW29iamVjdF0gVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgcHJvcGVydHkgdG8gZ2V0LlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHByb3BlcnR5IHZhbHVlLlxuICovXG5mdW5jdGlvbiBnZXRWYWx1ZShvYmplY3QsIGtleSkge1xuICByZXR1cm4gb2JqZWN0ID09IG51bGwgPyB1bmRlZmluZWQgOiBvYmplY3Rba2V5XTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZ2V0VmFsdWU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_getValue.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_hashClear.js": +/*!**********************************************!*\ + !*** ./node_modules/lodash-es/_hashClear.js ***! + \**********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nativeCreate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_nativeCreate.js */ \"./node_modules/lodash-es/_nativeCreate.js\");\n\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = _nativeCreate_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] ? (0,_nativeCreate_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(null) : {};\n this.size = 0;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (hashClear);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19oYXNoQ2xlYXIuanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBOEM7O0FBRTlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0Isd0RBQVksR0FBRyw0REFBWTtBQUM3QztBQUNBOztBQUVBLCtEQUFlLFNBQVMsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19oYXNoQ2xlYXIuanM/MGQ4ZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbmF0aXZlQ3JlYXRlIGZyb20gJy4vX25hdGl2ZUNyZWF0ZS5qcyc7XG5cbi8qKlxuICogUmVtb3ZlcyBhbGwga2V5LXZhbHVlIGVudHJpZXMgZnJvbSB0aGUgaGFzaC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgY2xlYXJcbiAqIEBtZW1iZXJPZiBIYXNoXG4gKi9cbmZ1bmN0aW9uIGhhc2hDbGVhcigpIHtcbiAgdGhpcy5fX2RhdGFfXyA9IG5hdGl2ZUNyZWF0ZSA/IG5hdGl2ZUNyZWF0ZShudWxsKSA6IHt9O1xuICB0aGlzLnNpemUgPSAwO1xufVxuXG5leHBvcnQgZGVmYXVsdCBoYXNoQ2xlYXI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_hashClear.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_hashDelete.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/_hashDelete.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (hashDelete);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19oYXNoRGVsZXRlLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsVUFBVSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2hhc2hEZWxldGUuanM/NzNmOCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlbW92ZXMgYGtleWAgYW5kIGl0cyB2YWx1ZSBmcm9tIHRoZSBoYXNoLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBkZWxldGVcbiAqIEBtZW1iZXJPZiBIYXNoXG4gKiBAcGFyYW0ge09iamVjdH0gaGFzaCBUaGUgaGFzaCB0byBtb2RpZnkuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHJlbW92ZS5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgZW50cnkgd2FzIHJlbW92ZWQsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaGFzaERlbGV0ZShrZXkpIHtcbiAgdmFyIHJlc3VsdCA9IHRoaXMuaGFzKGtleSkgJiYgZGVsZXRlIHRoaXMuX19kYXRhX19ba2V5XTtcbiAgdGhpcy5zaXplIC09IHJlc3VsdCA/IDEgOiAwO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBoYXNoRGVsZXRlO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_hashDelete.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_hashGet.js": +/*!********************************************!*\ + !*** ./node_modules/lodash-es/_hashGet.js ***! + \********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nativeCreate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_nativeCreate.js */ \"./node_modules/lodash-es/_nativeCreate.js\");\n\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (_nativeCreate_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (hashGet);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19oYXNoR2V0LmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQThDOztBQUU5QztBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsYUFBYSxHQUFHO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBLE1BQU0sd0RBQVk7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxPQUFPLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9faGFzaEdldC5qcz84OTMzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBuYXRpdmVDcmVhdGUgZnJvbSAnLi9fbmF0aXZlQ3JlYXRlLmpzJztcblxuLyoqIFVzZWQgdG8gc3RhbmQtaW4gZm9yIGB1bmRlZmluZWRgIGhhc2ggdmFsdWVzLiAqL1xudmFyIEhBU0hfVU5ERUZJTkVEID0gJ19fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18nO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIEdldHMgdGhlIGhhc2ggdmFsdWUgZm9yIGBrZXlgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBnZXRcbiAqIEBtZW1iZXJPZiBIYXNoXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIGdldC5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBlbnRyeSB2YWx1ZS5cbiAqL1xuZnVuY3Rpb24gaGFzaEdldChrZXkpIHtcbiAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fO1xuICBpZiAobmF0aXZlQ3JlYXRlKSB7XG4gICAgdmFyIHJlc3VsdCA9IGRhdGFba2V5XTtcbiAgICByZXR1cm4gcmVzdWx0ID09PSBIQVNIX1VOREVGSU5FRCA/IHVuZGVmaW5lZCA6IHJlc3VsdDtcbiAgfVxuICByZXR1cm4gaGFzT3duUHJvcGVydHkuY2FsbChkYXRhLCBrZXkpID8gZGF0YVtrZXldIDogdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZGVmYXVsdCBoYXNoR2V0O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_hashGet.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_hashHas.js": +/*!********************************************!*\ + !*** ./node_modules/lodash-es/_hashHas.js ***! + \********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nativeCreate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_nativeCreate.js */ \"./node_modules/lodash-es/_nativeCreate.js\");\n\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return _nativeCreate_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (hashHas);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19oYXNoSGFzLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQThDOztBQUU5QztBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQSxTQUFTLHdEQUFZO0FBQ3JCOztBQUVBLCtEQUFlLE9BQU8sRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19oYXNoSGFzLmpzPzliMDMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG5hdGl2ZUNyZWF0ZSBmcm9tICcuL19uYXRpdmVDcmVhdGUuanMnO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIENoZWNrcyBpZiBhIGhhc2ggdmFsdWUgZm9yIGBrZXlgIGV4aXN0cy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgaGFzXG4gKiBAbWVtYmVyT2YgSGFzaFxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBlbnRyeSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbiBlbnRyeSBmb3IgYGtleWAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGhhc2hIYXMoa2V5KSB7XG4gIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXztcbiAgcmV0dXJuIG5hdGl2ZUNyZWF0ZSA/IChkYXRhW2tleV0gIT09IHVuZGVmaW5lZCkgOiBoYXNPd25Qcm9wZXJ0eS5jYWxsKGRhdGEsIGtleSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGhhc2hIYXM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_hashHas.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_hashSet.js": +/*!********************************************!*\ + !*** ./node_modules/lodash-es/_hashSet.js ***! + \********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nativeCreate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_nativeCreate.js */ \"./node_modules/lodash-es/_nativeCreate.js\");\n\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (_nativeCreate_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (hashSet);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19oYXNoU2V0LmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQThDOztBQUU5QztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLEdBQUc7QUFDZCxhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLHdEQUFZO0FBQzNCO0FBQ0E7O0FBRUEsK0RBQWUsT0FBTyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2hhc2hTZXQuanM/MDg5ZiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbmF0aXZlQ3JlYXRlIGZyb20gJy4vX25hdGl2ZUNyZWF0ZS5qcyc7XG5cbi8qKiBVc2VkIHRvIHN0YW5kLWluIGZvciBgdW5kZWZpbmVkYCBoYXNoIHZhbHVlcy4gKi9cbnZhciBIQVNIX1VOREVGSU5FRCA9ICdfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fJztcblxuLyoqXG4gKiBTZXRzIHRoZSBoYXNoIGBrZXlgIHRvIGB2YWx1ZWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIHNldFxuICogQG1lbWJlck9mIEhhc2hcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gc2V0LlxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2V0LlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgaGFzaCBpbnN0YW5jZS5cbiAqL1xuZnVuY3Rpb24gaGFzaFNldChrZXksIHZhbHVlKSB7XG4gIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXztcbiAgdGhpcy5zaXplICs9IHRoaXMuaGFzKGtleSkgPyAwIDogMTtcbiAgZGF0YVtrZXldID0gKG5hdGl2ZUNyZWF0ZSAmJiB2YWx1ZSA9PT0gdW5kZWZpbmVkKSA/IEhBU0hfVU5ERUZJTkVEIDogdmFsdWU7XG4gIHJldHVybiB0aGlzO1xufVxuXG5leHBvcnQgZGVmYXVsdCBoYXNoU2V0O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_hashSet.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_initCloneArray.js": +/*!***************************************************!*\ + !*** ./node_modules/lodash-es/_initCloneArray.js ***! + \***************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (initCloneArray);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pbml0Q2xvbmVBcnJheS5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLGFBQWEsT0FBTztBQUNwQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxjQUFjLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9faW5pdENsb25lQXJyYXkuanM/YjAzMCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIEluaXRpYWxpemVzIGFuIGFycmF5IGNsb25lLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gY2xvbmUuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGluaXRpYWxpemVkIGNsb25lLlxuICovXG5mdW5jdGlvbiBpbml0Q2xvbmVBcnJheShhcnJheSkge1xuICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgcmVzdWx0ID0gbmV3IGFycmF5LmNvbnN0cnVjdG9yKGxlbmd0aCk7XG5cbiAgLy8gQWRkIHByb3BlcnRpZXMgYXNzaWduZWQgYnkgYFJlZ0V4cCNleGVjYC5cbiAgaWYgKGxlbmd0aCAmJiB0eXBlb2YgYXJyYXlbMF0gPT0gJ3N0cmluZycgJiYgaGFzT3duUHJvcGVydHkuY2FsbChhcnJheSwgJ2luZGV4JykpIHtcbiAgICByZXN1bHQuaW5kZXggPSBhcnJheS5pbmRleDtcbiAgICByZXN1bHQuaW5wdXQgPSBhcnJheS5pbnB1dDtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBpbml0Q2xvbmVBcnJheTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_initCloneArray.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_initCloneByTag.js": +/*!***************************************************!*\ + !*** ./node_modules/lodash-es/_initCloneByTag.js ***! + \***************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _cloneArrayBuffer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_cloneArrayBuffer.js */ \"./node_modules/lodash-es/_cloneArrayBuffer.js\");\n/* harmony import */ var _cloneDataView_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_cloneDataView.js */ \"./node_modules/lodash-es/_cloneDataView.js\");\n/* harmony import */ var _cloneRegExp_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_cloneRegExp.js */ \"./node_modules/lodash-es/_cloneRegExp.js\");\n/* harmony import */ var _cloneSymbol_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_cloneSymbol.js */ \"./node_modules/lodash-es/_cloneSymbol.js\");\n/* harmony import */ var _cloneTypedArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_cloneTypedArray.js */ \"./node_modules/lodash-es/_cloneTypedArray.js\");\n\n\n\n\n\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return (0,_cloneArrayBuffer_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return (0,_cloneDataView_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return (0,_cloneTypedArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return (0,_cloneRegExp_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return (0,_cloneSymbol_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(object);\n }\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (initCloneByTag);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pbml0Q2xvbmVCeVRhZy5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBc0Q7QUFDTjtBQUNKO0FBQ0E7QUFDUTs7QUFFcEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsU0FBUztBQUNwQixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsZ0VBQWdCOztBQUU3QjtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxhQUFhLDZEQUFhOztBQUUxQjtBQUNBO0FBQ0E7QUFDQSxhQUFhLCtEQUFlOztBQUU1QjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGFBQWEsMkRBQVc7O0FBRXhCO0FBQ0E7O0FBRUE7QUFDQSxhQUFhLDJEQUFXO0FBQ3hCO0FBQ0E7O0FBRUEsK0RBQWUsY0FBYyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2luaXRDbG9uZUJ5VGFnLmpzPzA3OGMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNsb25lQXJyYXlCdWZmZXIgZnJvbSAnLi9fY2xvbmVBcnJheUJ1ZmZlci5qcyc7XG5pbXBvcnQgY2xvbmVEYXRhVmlldyBmcm9tICcuL19jbG9uZURhdGFWaWV3LmpzJztcbmltcG9ydCBjbG9uZVJlZ0V4cCBmcm9tICcuL19jbG9uZVJlZ0V4cC5qcyc7XG5pbXBvcnQgY2xvbmVTeW1ib2wgZnJvbSAnLi9fY2xvbmVTeW1ib2wuanMnO1xuaW1wb3J0IGNsb25lVHlwZWRBcnJheSBmcm9tICcuL19jbG9uZVR5cGVkQXJyYXkuanMnO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgYm9vbFRhZyA9ICdbb2JqZWN0IEJvb2xlYW5dJyxcbiAgICBkYXRlVGFnID0gJ1tvYmplY3QgRGF0ZV0nLFxuICAgIG1hcFRhZyA9ICdbb2JqZWN0IE1hcF0nLFxuICAgIG51bWJlclRhZyA9ICdbb2JqZWN0IE51bWJlcl0nLFxuICAgIHJlZ2V4cFRhZyA9ICdbb2JqZWN0IFJlZ0V4cF0nLFxuICAgIHNldFRhZyA9ICdbb2JqZWN0IFNldF0nLFxuICAgIHN0cmluZ1RhZyA9ICdbb2JqZWN0IFN0cmluZ10nLFxuICAgIHN5bWJvbFRhZyA9ICdbb2JqZWN0IFN5bWJvbF0nO1xuXG52YXIgYXJyYXlCdWZmZXJUYWcgPSAnW29iamVjdCBBcnJheUJ1ZmZlcl0nLFxuICAgIGRhdGFWaWV3VGFnID0gJ1tvYmplY3QgRGF0YVZpZXddJyxcbiAgICBmbG9hdDMyVGFnID0gJ1tvYmplY3QgRmxvYXQzMkFycmF5XScsXG4gICAgZmxvYXQ2NFRhZyA9ICdbb2JqZWN0IEZsb2F0NjRBcnJheV0nLFxuICAgIGludDhUYWcgPSAnW29iamVjdCBJbnQ4QXJyYXldJyxcbiAgICBpbnQxNlRhZyA9ICdbb2JqZWN0IEludDE2QXJyYXldJyxcbiAgICBpbnQzMlRhZyA9ICdbb2JqZWN0IEludDMyQXJyYXldJyxcbiAgICB1aW50OFRhZyA9ICdbb2JqZWN0IFVpbnQ4QXJyYXldJyxcbiAgICB1aW50OENsYW1wZWRUYWcgPSAnW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0nLFxuICAgIHVpbnQxNlRhZyA9ICdbb2JqZWN0IFVpbnQxNkFycmF5XScsXG4gICAgdWludDMyVGFnID0gJ1tvYmplY3QgVWludDMyQXJyYXldJztcblxuLyoqXG4gKiBJbml0aWFsaXplcyBhbiBvYmplY3QgY2xvbmUgYmFzZWQgb24gaXRzIGB0b1N0cmluZ1RhZ2AuXG4gKlxuICogKipOb3RlOioqIFRoaXMgZnVuY3Rpb24gb25seSBzdXBwb3J0cyBjbG9uaW5nIHZhbHVlcyB3aXRoIHRhZ3Mgb2ZcbiAqIGBCb29sZWFuYCwgYERhdGVgLCBgRXJyb3JgLCBgTWFwYCwgYE51bWJlcmAsIGBSZWdFeHBgLCBgU2V0YCwgb3IgYFN0cmluZ2AuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBjbG9uZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSB0YWcgVGhlIGB0b1N0cmluZ1RhZ2Agb2YgdGhlIG9iamVjdCB0byBjbG9uZS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzRGVlcF0gU3BlY2lmeSBhIGRlZXAgY2xvbmUuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBpbml0aWFsaXplZCBjbG9uZS5cbiAqL1xuZnVuY3Rpb24gaW5pdENsb25lQnlUYWcob2JqZWN0LCB0YWcsIGlzRGVlcCkge1xuICB2YXIgQ3RvciA9IG9iamVjdC5jb25zdHJ1Y3RvcjtcbiAgc3dpdGNoICh0YWcpIHtcbiAgICBjYXNlIGFycmF5QnVmZmVyVGFnOlxuICAgICAgcmV0dXJuIGNsb25lQXJyYXlCdWZmZXIob2JqZWN0KTtcblxuICAgIGNhc2UgYm9vbFRhZzpcbiAgICBjYXNlIGRhdGVUYWc6XG4gICAgICByZXR1cm4gbmV3IEN0b3IoK29iamVjdCk7XG5cbiAgICBjYXNlIGRhdGFWaWV3VGFnOlxuICAgICAgcmV0dXJuIGNsb25lRGF0YVZpZXcob2JqZWN0LCBpc0RlZXApO1xuXG4gICAgY2FzZSBmbG9hdDMyVGFnOiBjYXNlIGZsb2F0NjRUYWc6XG4gICAgY2FzZSBpbnQ4VGFnOiBjYXNlIGludDE2VGFnOiBjYXNlIGludDMyVGFnOlxuICAgIGNhc2UgdWludDhUYWc6IGNhc2UgdWludDhDbGFtcGVkVGFnOiBjYXNlIHVpbnQxNlRhZzogY2FzZSB1aW50MzJUYWc6XG4gICAgICByZXR1cm4gY2xvbmVUeXBlZEFycmF5KG9iamVjdCwgaXNEZWVwKTtcblxuICAgIGNhc2UgbWFwVGFnOlxuICAgICAgcmV0dXJuIG5ldyBDdG9yO1xuXG4gICAgY2FzZSBudW1iZXJUYWc6XG4gICAgY2FzZSBzdHJpbmdUYWc6XG4gICAgICByZXR1cm4gbmV3IEN0b3Iob2JqZWN0KTtcblxuICAgIGNhc2UgcmVnZXhwVGFnOlxuICAgICAgcmV0dXJuIGNsb25lUmVnRXhwKG9iamVjdCk7XG5cbiAgICBjYXNlIHNldFRhZzpcbiAgICAgIHJldHVybiBuZXcgQ3RvcjtcblxuICAgIGNhc2Ugc3ltYm9sVGFnOlxuICAgICAgcmV0dXJuIGNsb25lU3ltYm9sKG9iamVjdCk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgaW5pdENsb25lQnlUYWc7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_initCloneByTag.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_initCloneObject.js": +/*!****************************************************!*\ + !*** ./node_modules/lodash-es/_initCloneObject.js ***! + \****************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseCreate_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_baseCreate.js */ \"./node_modules/lodash-es/_baseCreate.js\");\n/* harmony import */ var _getPrototype_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_getPrototype.js */ \"./node_modules/lodash-es/_getPrototype.js\");\n/* harmony import */ var _isPrototype_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isPrototype.js */ \"./node_modules/lodash-es/_isPrototype.js\");\n\n\n\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !(0,_isPrototype_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object))\n ? (0,_baseCreate_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])((0,_getPrototype_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(object))\n : {};\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (initCloneObject);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pbml0Q2xvbmVPYmplY3QuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUEwQztBQUNJO0FBQ0Y7O0FBRTVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsUUFBUTtBQUNyQjtBQUNBO0FBQ0Esc0RBQXNELDJEQUFXO0FBQ2pFLE1BQU0sMERBQVUsQ0FBQyw0REFBWTtBQUM3QjtBQUNBOztBQUVBLCtEQUFlLGVBQWUsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pbml0Q2xvbmVPYmplY3QuanM/NGNjMyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYmFzZUNyZWF0ZSBmcm9tICcuL19iYXNlQ3JlYXRlLmpzJztcbmltcG9ydCBnZXRQcm90b3R5cGUgZnJvbSAnLi9fZ2V0UHJvdG90eXBlLmpzJztcbmltcG9ydCBpc1Byb3RvdHlwZSBmcm9tICcuL19pc1Byb3RvdHlwZS5qcyc7XG5cbi8qKlxuICogSW5pdGlhbGl6ZXMgYW4gb2JqZWN0IGNsb25lLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gY2xvbmUuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBpbml0aWFsaXplZCBjbG9uZS5cbiAqL1xuZnVuY3Rpb24gaW5pdENsb25lT2JqZWN0KG9iamVjdCkge1xuICByZXR1cm4gKHR5cGVvZiBvYmplY3QuY29uc3RydWN0b3IgPT0gJ2Z1bmN0aW9uJyAmJiAhaXNQcm90b3R5cGUob2JqZWN0KSlcbiAgICA/IGJhc2VDcmVhdGUoZ2V0UHJvdG90eXBlKG9iamVjdCkpXG4gICAgOiB7fTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgaW5pdENsb25lT2JqZWN0O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_initCloneObject.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_isIndex.js": +/*!********************************************!*\ + !*** ./node_modules/lodash-es/_isIndex.js ***! + \********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isIndex);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pc0luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxXQUFXLFFBQVE7QUFDbkIsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsT0FBTyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2lzSW5kZXguanM/NmM4ZSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogVXNlZCBhcyByZWZlcmVuY2VzIGZvciB2YXJpb3VzIGBOdW1iZXJgIGNvbnN0YW50cy4gKi9cbnZhciBNQVhfU0FGRV9JTlRFR0VSID0gOTAwNzE5OTI1NDc0MDk5MTtcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IHVuc2lnbmVkIGludGVnZXIgdmFsdWVzLiAqL1xudmFyIHJlSXNVaW50ID0gL14oPzowfFsxLTldXFxkKikkLztcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIHZhbGlkIGFycmF5LWxpa2UgaW5kZXguXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHBhcmFtIHtudW1iZXJ9IFtsZW5ndGg9TUFYX1NBRkVfSU5URUdFUl0gVGhlIHVwcGVyIGJvdW5kcyBvZiBhIHZhbGlkIGluZGV4LlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSB2YWxpZCBpbmRleCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc0luZGV4KHZhbHVlLCBsZW5ndGgpIHtcbiAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gIGxlbmd0aCA9IGxlbmd0aCA9PSBudWxsID8gTUFYX1NBRkVfSU5URUdFUiA6IGxlbmd0aDtcblxuICByZXR1cm4gISFsZW5ndGggJiZcbiAgICAodHlwZSA9PSAnbnVtYmVyJyB8fFxuICAgICAgKHR5cGUgIT0gJ3N5bWJvbCcgJiYgcmVJc1VpbnQudGVzdCh2YWx1ZSkpKSAmJlxuICAgICAgICAodmFsdWUgPiAtMSAmJiB2YWx1ZSAlIDEgPT0gMCAmJiB2YWx1ZSA8IGxlbmd0aCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzSW5kZXg7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_isIndex.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_isKeyable.js": +/*!**********************************************!*\ + !*** ./node_modules/lodash-es/_isKeyable.js ***! + \**********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isKeyable);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pc0tleWFibGUuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2QsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLCtEQUFlLFNBQVMsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pc0tleWFibGUuanM/ZjVkNiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIHN1aXRhYmxlIGZvciB1c2UgYXMgdW5pcXVlIG9iamVjdCBrZXkuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgc3VpdGFibGUsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaXNLZXlhYmxlKHZhbHVlKSB7XG4gIHZhciB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICByZXR1cm4gKHR5cGUgPT0gJ3N0cmluZycgfHwgdHlwZSA9PSAnbnVtYmVyJyB8fCB0eXBlID09ICdzeW1ib2wnIHx8IHR5cGUgPT0gJ2Jvb2xlYW4nKVxuICAgID8gKHZhbHVlICE9PSAnX19wcm90b19fJylcbiAgICA6ICh2YWx1ZSA9PT0gbnVsbCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzS2V5YWJsZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_isKeyable.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_isMasked.js": +/*!*********************************************!*\ + !*** ./node_modules/lodash-es/_isMasked.js ***! + \*********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _coreJsData_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_coreJsData.js */ \"./node_modules/lodash-es/_coreJsData.js\");\n\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(_coreJsData_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] && _coreJsData_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].keys && _coreJsData_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isMasked);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pc01hc2tlZC5qcy5qcyIsIm1hcHBpbmdzIjoiOztBQUEwQzs7QUFFMUM7QUFDQTtBQUNBLDBCQUEwQixzREFBVSxJQUFJLDJEQUFlLElBQUksb0VBQXdCO0FBQ25GO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsVUFBVTtBQUNyQixhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsUUFBUSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2lzTWFza2VkLmpzPzc2YWQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvcmVKc0RhdGEgZnJvbSAnLi9fY29yZUpzRGF0YS5qcyc7XG5cbi8qKiBVc2VkIHRvIGRldGVjdCBtZXRob2RzIG1hc3F1ZXJhZGluZyBhcyBuYXRpdmUuICovXG52YXIgbWFza1NyY0tleSA9IChmdW5jdGlvbigpIHtcbiAgdmFyIHVpZCA9IC9bXi5dKyQvLmV4ZWMoY29yZUpzRGF0YSAmJiBjb3JlSnNEYXRhLmtleXMgJiYgY29yZUpzRGF0YS5rZXlzLklFX1BST1RPIHx8ICcnKTtcbiAgcmV0dXJuIHVpZCA/ICgnU3ltYm9sKHNyYylfMS4nICsgdWlkKSA6ICcnO1xufSgpKTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYGZ1bmNgIGhhcyBpdHMgc291cmNlIG1hc2tlZC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYGZ1bmNgIGlzIG1hc2tlZCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc01hc2tlZChmdW5jKSB7XG4gIHJldHVybiAhIW1hc2tTcmNLZXkgJiYgKG1hc2tTcmNLZXkgaW4gZnVuYyk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzTWFza2VkO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_isMasked.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_isPrototype.js": +/*!************************************************!*\ + !*** ./node_modules/lodash-es/_isPrototype.js ***! + \************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isPrototype);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pc1Byb3RvdHlwZS5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBLCtEQUFlLFdBQVcsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pc1Byb3RvdHlwZS5qcz82NDdmIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgbGlrZWx5IGEgcHJvdG90eXBlIG9iamVjdC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHByb3RvdHlwZSwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc1Byb3RvdHlwZSh2YWx1ZSkge1xuICB2YXIgQ3RvciA9IHZhbHVlICYmIHZhbHVlLmNvbnN0cnVjdG9yLFxuICAgICAgcHJvdG8gPSAodHlwZW9mIEN0b3IgPT0gJ2Z1bmN0aW9uJyAmJiBDdG9yLnByb3RvdHlwZSkgfHwgb2JqZWN0UHJvdG87XG5cbiAgcmV0dXJuIHZhbHVlID09PSBwcm90bztcbn1cblxuZXhwb3J0IGRlZmF1bHQgaXNQcm90b3R5cGU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_isPrototype.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_listCacheClear.js": +/*!***************************************************!*\ + !*** ./node_modules/lodash-es/_listCacheClear.js ***! + \***************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (listCacheClear);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19saXN0Q2FjaGVDbGVhci5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxjQUFjLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fbGlzdENhY2hlQ2xlYXIuanM/YTQ5OCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlbW92ZXMgYWxsIGtleS12YWx1ZSBlbnRyaWVzIGZyb20gdGhlIGxpc3QgY2FjaGUuXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGNsZWFyXG4gKiBAbWVtYmVyT2YgTGlzdENhY2hlXG4gKi9cbmZ1bmN0aW9uIGxpc3RDYWNoZUNsZWFyKCkge1xuICB0aGlzLl9fZGF0YV9fID0gW107XG4gIHRoaXMuc2l6ZSA9IDA7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGxpc3RDYWNoZUNsZWFyO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_listCacheClear.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_listCacheDelete.js": +/*!****************************************************!*\ + !*** ./node_modules/lodash-es/_listCacheDelete.js ***! + \****************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _assocIndexOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_assocIndexOf.js */ \"./node_modules/lodash-es/_assocIndexOf.js\");\n\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = (0,_assocIndexOf_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (listCacheDelete);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19saXN0Q2FjaGVEZWxldGUuanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBOEM7O0FBRTlDO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBLGNBQWMsNERBQVk7O0FBRTFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLCtEQUFlLGVBQWUsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19saXN0Q2FjaGVEZWxldGUuanM/NzVhZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzb2NJbmRleE9mIGZyb20gJy4vX2Fzc29jSW5kZXhPZi5qcyc7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBhcnJheVByb3RvID0gQXJyYXkucHJvdG90eXBlO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBzcGxpY2UgPSBhcnJheVByb3RvLnNwbGljZTtcblxuLyoqXG4gKiBSZW1vdmVzIGBrZXlgIGFuZCBpdHMgdmFsdWUgZnJvbSB0aGUgbGlzdCBjYWNoZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgZGVsZXRlXG4gKiBAbWVtYmVyT2YgTGlzdENhY2hlXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHJlbW92ZS5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgZW50cnkgd2FzIHJlbW92ZWQsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gbGlzdENhY2hlRGVsZXRlKGtleSkge1xuICB2YXIgZGF0YSA9IHRoaXMuX19kYXRhX18sXG4gICAgICBpbmRleCA9IGFzc29jSW5kZXhPZihkYXRhLCBrZXkpO1xuXG4gIGlmIChpbmRleCA8IDApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdmFyIGxhc3RJbmRleCA9IGRhdGEubGVuZ3RoIC0gMTtcbiAgaWYgKGluZGV4ID09IGxhc3RJbmRleCkge1xuICAgIGRhdGEucG9wKCk7XG4gIH0gZWxzZSB7XG4gICAgc3BsaWNlLmNhbGwoZGF0YSwgaW5kZXgsIDEpO1xuICB9XG4gIC0tdGhpcy5zaXplO1xuICByZXR1cm4gdHJ1ZTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgbGlzdENhY2hlRGVsZXRlO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_listCacheDelete.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_listCacheGet.js": +/*!*************************************************!*\ + !*** ./node_modules/lodash-es/_listCacheGet.js ***! + \*************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _assocIndexOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_assocIndexOf.js */ \"./node_modules/lodash-es/_assocIndexOf.js\");\n\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = (0,_assocIndexOf_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (listCacheGet);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19saXN0Q2FjaGVHZXQuanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBOEM7O0FBRTlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixhQUFhLEdBQUc7QUFDaEI7QUFDQTtBQUNBO0FBQ0EsY0FBYyw0REFBWTs7QUFFMUI7QUFDQTs7QUFFQSwrREFBZSxZQUFZLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fbGlzdENhY2hlR2V0LmpzPzg0ZjQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc29jSW5kZXhPZiBmcm9tICcuL19hc3NvY0luZGV4T2YuanMnO1xuXG4vKipcbiAqIEdldHMgdGhlIGxpc3QgY2FjaGUgdmFsdWUgZm9yIGBrZXlgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBnZXRcbiAqIEBtZW1iZXJPZiBMaXN0Q2FjaGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gZ2V0LlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGVudHJ5IHZhbHVlLlxuICovXG5mdW5jdGlvbiBsaXN0Q2FjaGVHZXQoa2V5KSB7XG4gIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXyxcbiAgICAgIGluZGV4ID0gYXNzb2NJbmRleE9mKGRhdGEsIGtleSk7XG5cbiAgcmV0dXJuIGluZGV4IDwgMCA/IHVuZGVmaW5lZCA6IGRhdGFbaW5kZXhdWzFdO1xufVxuXG5leHBvcnQgZGVmYXVsdCBsaXN0Q2FjaGVHZXQ7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_listCacheGet.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_listCacheHas.js": +/*!*************************************************!*\ + !*** ./node_modules/lodash-es/_listCacheHas.js ***! + \*************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _assocIndexOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_assocIndexOf.js */ \"./node_modules/lodash-es/_assocIndexOf.js\");\n\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return (0,_assocIndexOf_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this.__data__, key) > -1;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (listCacheHas);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19saXN0Q2FjaGVIYXMuanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBOEM7O0FBRTlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBLFNBQVMsNERBQVk7QUFDckI7O0FBRUEsK0RBQWUsWUFBWSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2xpc3RDYWNoZUhhcy5qcz8yYjMxIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NvY0luZGV4T2YgZnJvbSAnLi9fYXNzb2NJbmRleE9mLmpzJztcblxuLyoqXG4gKiBDaGVja3MgaWYgYSBsaXN0IGNhY2hlIHZhbHVlIGZvciBga2V5YCBleGlzdHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGhhc1xuICogQG1lbWJlck9mIExpc3RDYWNoZVxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBlbnRyeSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbiBlbnRyeSBmb3IgYGtleWAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGxpc3RDYWNoZUhhcyhrZXkpIHtcbiAgcmV0dXJuIGFzc29jSW5kZXhPZih0aGlzLl9fZGF0YV9fLCBrZXkpID4gLTE7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGxpc3RDYWNoZUhhcztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_listCacheHas.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_listCacheSet.js": +/*!*************************************************!*\ + !*** ./node_modules/lodash-es/_listCacheSet.js ***! + \*************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _assocIndexOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_assocIndexOf.js */ \"./node_modules/lodash-es/_assocIndexOf.js\");\n\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = (0,_assocIndexOf_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (listCacheSet);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19saXN0Q2FjaGVTZXQuanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBOEM7O0FBRTlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLEdBQUc7QUFDZCxhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0EsY0FBYyw0REFBWTs7QUFFMUI7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBOztBQUVBLCtEQUFlLFlBQVksRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19saXN0Q2FjaGVTZXQuanM/MzM0OCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzb2NJbmRleE9mIGZyb20gJy4vX2Fzc29jSW5kZXhPZi5qcyc7XG5cbi8qKlxuICogU2V0cyB0aGUgbGlzdCBjYWNoZSBga2V5YCB0byBgdmFsdWVgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBzZXRcbiAqIEBtZW1iZXJPZiBMaXN0Q2FjaGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gc2V0LlxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2V0LlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbGlzdCBjYWNoZSBpbnN0YW5jZS5cbiAqL1xuZnVuY3Rpb24gbGlzdENhY2hlU2V0KGtleSwgdmFsdWUpIHtcbiAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fLFxuICAgICAgaW5kZXggPSBhc3NvY0luZGV4T2YoZGF0YSwga2V5KTtcblxuICBpZiAoaW5kZXggPCAwKSB7XG4gICAgKyt0aGlzLnNpemU7XG4gICAgZGF0YS5wdXNoKFtrZXksIHZhbHVlXSk7XG4gIH0gZWxzZSB7XG4gICAgZGF0YVtpbmRleF1bMV0gPSB2YWx1ZTtcbiAgfVxuICByZXR1cm4gdGhpcztcbn1cblxuZXhwb3J0IGRlZmF1bHQgbGlzdENhY2hlU2V0O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_listCacheSet.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_mapCacheClear.js": +/*!**************************************************!*\ + !*** ./node_modules/lodash-es/_mapCacheClear.js ***! + \**************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Hash_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_Hash.js */ \"./node_modules/lodash-es/_Hash.js\");\n/* harmony import */ var _ListCache_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_ListCache.js */ \"./node_modules/lodash-es/_ListCache.js\");\n/* harmony import */ var _Map_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_Map.js */ \"./node_modules/lodash-es/_Map.js\");\n\n\n\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new _Hash_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n 'map': new (_Map_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"] || _ListCache_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]),\n 'string': new _Hash_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mapCacheClear);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19tYXBDYWNoZUNsZWFyLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBOEI7QUFDVTtBQUNaOztBQUU1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixnREFBSTtBQUNwQixnQkFBZ0IsK0NBQUcsSUFBSSxxREFBUztBQUNoQyxrQkFBa0IsZ0RBQUk7QUFDdEI7QUFDQTs7QUFFQSwrREFBZSxhQUFhLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fbWFwQ2FjaGVDbGVhci5qcz84NWEzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBIYXNoIGZyb20gJy4vX0hhc2guanMnO1xuaW1wb3J0IExpc3RDYWNoZSBmcm9tICcuL19MaXN0Q2FjaGUuanMnO1xuaW1wb3J0IE1hcCBmcm9tICcuL19NYXAuanMnO1xuXG4vKipcbiAqIFJlbW92ZXMgYWxsIGtleS12YWx1ZSBlbnRyaWVzIGZyb20gdGhlIG1hcC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgY2xlYXJcbiAqIEBtZW1iZXJPZiBNYXBDYWNoZVxuICovXG5mdW5jdGlvbiBtYXBDYWNoZUNsZWFyKCkge1xuICB0aGlzLnNpemUgPSAwO1xuICB0aGlzLl9fZGF0YV9fID0ge1xuICAgICdoYXNoJzogbmV3IEhhc2gsXG4gICAgJ21hcCc6IG5ldyAoTWFwIHx8IExpc3RDYWNoZSksXG4gICAgJ3N0cmluZyc6IG5ldyBIYXNoXG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IG1hcENhY2hlQ2xlYXI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_mapCacheClear.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_mapCacheDelete.js": +/*!***************************************************!*\ + !*** ./node_modules/lodash-es/_mapCacheDelete.js ***! + \***************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getMapData_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getMapData.js */ \"./node_modules/lodash-es/_getMapData.js\");\n\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = (0,_getMapData_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mapCacheDelete);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19tYXBDYWNoZURlbGV0ZS5qcy5qcyIsIm1hcHBpbmdzIjoiOztBQUEwQzs7QUFFMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0EsZUFBZSwwREFBVTtBQUN6QjtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsY0FBYyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX21hcENhY2hlRGVsZXRlLmpzPzAxMjkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldE1hcERhdGEgZnJvbSAnLi9fZ2V0TWFwRGF0YS5qcyc7XG5cbi8qKlxuICogUmVtb3ZlcyBga2V5YCBhbmQgaXRzIHZhbHVlIGZyb20gdGhlIG1hcC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgZGVsZXRlXG4gKiBAbWVtYmVyT2YgTWFwQ2FjaGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gcmVtb3ZlLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBlbnRyeSB3YXMgcmVtb3ZlZCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBtYXBDYWNoZURlbGV0ZShrZXkpIHtcbiAgdmFyIHJlc3VsdCA9IGdldE1hcERhdGEodGhpcywga2V5KVsnZGVsZXRlJ10oa2V5KTtcbiAgdGhpcy5zaXplIC09IHJlc3VsdCA/IDEgOiAwO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBtYXBDYWNoZURlbGV0ZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_mapCacheDelete.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_mapCacheGet.js": +/*!************************************************!*\ + !*** ./node_modules/lodash-es/_mapCacheGet.js ***! + \************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getMapData_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getMapData.js */ \"./node_modules/lodash-es/_getMapData.js\");\n\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return (0,_getMapData_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, key).get(key);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mapCacheGet);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19tYXBDYWNoZUdldC5qcy5qcyIsIm1hcHBpbmdzIjoiOztBQUEwQzs7QUFFMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsR0FBRztBQUNoQjtBQUNBO0FBQ0EsU0FBUywwREFBVTtBQUNuQjs7QUFFQSwrREFBZSxXQUFXLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fbWFwQ2FjaGVHZXQuanM/ZDg1NiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0TWFwRGF0YSBmcm9tICcuL19nZXRNYXBEYXRhLmpzJztcblxuLyoqXG4gKiBHZXRzIHRoZSBtYXAgdmFsdWUgZm9yIGBrZXlgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBnZXRcbiAqIEBtZW1iZXJPZiBNYXBDYWNoZVxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBnZXQuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgZW50cnkgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIG1hcENhY2hlR2V0KGtleSkge1xuICByZXR1cm4gZ2V0TWFwRGF0YSh0aGlzLCBrZXkpLmdldChrZXkpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBtYXBDYWNoZUdldDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_mapCacheGet.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_mapCacheHas.js": +/*!************************************************!*\ + !*** ./node_modules/lodash-es/_mapCacheHas.js ***! + \************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getMapData_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getMapData.js */ \"./node_modules/lodash-es/_getMapData.js\");\n\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return (0,_getMapData_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, key).has(key);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mapCacheHas);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19tYXBDYWNoZUhhcy5qcy5qcyIsIm1hcHBpbmdzIjoiOztBQUEwQzs7QUFFMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0EsU0FBUywwREFBVTtBQUNuQjs7QUFFQSwrREFBZSxXQUFXLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fbWFwQ2FjaGVIYXMuanM/MDdiMiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0TWFwRGF0YSBmcm9tICcuL19nZXRNYXBEYXRhLmpzJztcblxuLyoqXG4gKiBDaGVja3MgaWYgYSBtYXAgdmFsdWUgZm9yIGBrZXlgIGV4aXN0cy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgaGFzXG4gKiBAbWVtYmVyT2YgTWFwQ2FjaGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgZW50cnkgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYW4gZW50cnkgZm9yIGBrZXlgIGV4aXN0cywgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBtYXBDYWNoZUhhcyhrZXkpIHtcbiAgcmV0dXJuIGdldE1hcERhdGEodGhpcywga2V5KS5oYXMoa2V5KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgbWFwQ2FjaGVIYXM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_mapCacheHas.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_mapCacheSet.js": +/*!************************************************!*\ + !*** ./node_modules/lodash-es/_mapCacheSet.js ***! + \************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getMapData_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getMapData.js */ \"./node_modules/lodash-es/_getMapData.js\");\n\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = (0,_getMapData_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mapCacheSet);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19tYXBDYWNoZVNldC5qcy5qcyIsIm1hcHBpbmdzIjoiOztBQUEwQzs7QUFFMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsR0FBRztBQUNkLGFBQWEsUUFBUTtBQUNyQjtBQUNBO0FBQ0EsYUFBYSwwREFBVTtBQUN2Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxXQUFXLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fbWFwQ2FjaGVTZXQuanM/MGM0OSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0TWFwRGF0YSBmcm9tICcuL19nZXRNYXBEYXRhLmpzJztcblxuLyoqXG4gKiBTZXRzIHRoZSBtYXAgYGtleWAgdG8gYHZhbHVlYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgc2V0XG4gKiBAbWVtYmVyT2YgTWFwQ2FjaGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gc2V0LlxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2V0LlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbWFwIGNhY2hlIGluc3RhbmNlLlxuICovXG5mdW5jdGlvbiBtYXBDYWNoZVNldChrZXksIHZhbHVlKSB7XG4gIHZhciBkYXRhID0gZ2V0TWFwRGF0YSh0aGlzLCBrZXkpLFxuICAgICAgc2l6ZSA9IGRhdGEuc2l6ZTtcblxuICBkYXRhLnNldChrZXksIHZhbHVlKTtcbiAgdGhpcy5zaXplICs9IGRhdGEuc2l6ZSA9PSBzaXplID8gMCA6IDE7XG4gIHJldHVybiB0aGlzO1xufVxuXG5leHBvcnQgZGVmYXVsdCBtYXBDYWNoZVNldDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_mapCacheSet.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_memoizeCapped.js": +/*!**************************************************!*\ + !*** ./node_modules/lodash-es/_memoizeCapped.js ***! + \**************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _memoize_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./memoize.js */ \"./node_modules/lodash-es/memoize.js\");\n\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = (0,_memoize_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (memoizeCapped);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19tZW1vaXplQ2FwcGVkLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQW1DOztBQUVuQztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFVBQVU7QUFDckIsYUFBYSxVQUFVO0FBQ3ZCO0FBQ0E7QUFDQSxlQUFlLHVEQUFPO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsYUFBYSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX21lbW9pemVDYXBwZWQuanM/YzQyMyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbWVtb2l6ZSBmcm9tICcuL21lbW9pemUuanMnO1xuXG4vKiogVXNlZCBhcyB0aGUgbWF4aW11bSBtZW1vaXplIGNhY2hlIHNpemUuICovXG52YXIgTUFYX01FTU9JWkVfU0laRSA9IDUwMDtcblxuLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8ubWVtb2l6ZWAgd2hpY2ggY2xlYXJzIHRoZSBtZW1vaXplZCBmdW5jdGlvbidzXG4gKiBjYWNoZSB3aGVuIGl0IGV4Y2VlZHMgYE1BWF9NRU1PSVpFX1NJWkVgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBoYXZlIGl0cyBvdXRwdXQgbWVtb2l6ZWQuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBtZW1vaXplZCBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gbWVtb2l6ZUNhcHBlZChmdW5jKSB7XG4gIHZhciByZXN1bHQgPSBtZW1vaXplKGZ1bmMsIGZ1bmN0aW9uKGtleSkge1xuICAgIGlmIChjYWNoZS5zaXplID09PSBNQVhfTUVNT0laRV9TSVpFKSB7XG4gICAgICBjYWNoZS5jbGVhcigpO1xuICAgIH1cbiAgICByZXR1cm4ga2V5O1xuICB9KTtcblxuICB2YXIgY2FjaGUgPSByZXN1bHQuY2FjaGU7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IG1lbW9pemVDYXBwZWQ7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_memoizeCapped.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_nativeCreate.js": +/*!*************************************************!*\ + !*** ./node_modules/lodash-es/_nativeCreate.js ***! + \*************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getNative_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getNative.js */ \"./node_modules/lodash-es/_getNative.js\");\n\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = (0,_getNative_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Object, 'create');\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (nativeCreate);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19uYXRpdmVDcmVhdGUuanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBd0M7O0FBRXhDO0FBQ0EsbUJBQW1CLHlEQUFTOztBQUU1QiwrREFBZSxZQUFZLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fbmF0aXZlQ3JlYXRlLmpzPzNkYWMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldE5hdGl2ZSBmcm9tICcuL19nZXROYXRpdmUuanMnO1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyB0aGF0IGFyZSB2ZXJpZmllZCB0byBiZSBuYXRpdmUuICovXG52YXIgbmF0aXZlQ3JlYXRlID0gZ2V0TmF0aXZlKE9iamVjdCwgJ2NyZWF0ZScpO1xuXG5leHBvcnQgZGVmYXVsdCBuYXRpdmVDcmVhdGU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_nativeCreate.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_nativeKeys.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/_nativeKeys.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _overArg_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_overArg.js */ \"./node_modules/lodash-es/_overArg.js\");\n\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = (0,_overArg_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Object.keys, Object);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (nativeKeys);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19uYXRpdmVLZXlzLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQW9DOztBQUVwQztBQUNBLGlCQUFpQix1REFBTzs7QUFFeEIsK0RBQWUsVUFBVSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX25hdGl2ZUtleXMuanM/MWU5MiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgb3ZlckFyZyBmcm9tICcuL19vdmVyQXJnLmpzJztcblxuLyogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xudmFyIG5hdGl2ZUtleXMgPSBvdmVyQXJnKE9iamVjdC5rZXlzLCBPYmplY3QpO1xuXG5leHBvcnQgZGVmYXVsdCBuYXRpdmVLZXlzO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_nativeKeys.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_nativeKeysIn.js": +/*!*************************************************!*\ + !*** ./node_modules/lodash-es/_nativeKeysIn.js ***! + \*************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (nativeKeysIn);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19uYXRpdmVLZXlzSW4uanMuanMiLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixhQUFhLE9BQU87QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsWUFBWSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX25hdGl2ZUtleXNJbi5qcz83ZjU5Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhpcyBmdW5jdGlvbiBpcyBsaWtlXG4gKiBbYE9iamVjdC5rZXlzYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtb2JqZWN0LmtleXMpXG4gKiBleGNlcHQgdGhhdCBpdCBpbmNsdWRlcyBpbmhlcml0ZWQgZW51bWVyYWJsZSBwcm9wZXJ0aWVzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICovXG5mdW5jdGlvbiBuYXRpdmVLZXlzSW4ob2JqZWN0KSB7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgaWYgKG9iamVjdCAhPSBudWxsKSB7XG4gICAgZm9yICh2YXIga2V5IGluIE9iamVjdChvYmplY3QpKSB7XG4gICAgICByZXN1bHQucHVzaChrZXkpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBuYXRpdmVLZXlzSW47XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_nativeKeysIn.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_nodeUtil.js": +/*!*********************************************!*\ + !*** ./node_modules/lodash-es/_nodeUtil.js ***! + \*********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _freeGlobal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_freeGlobal.js */ \"./node_modules/lodash-es/_freeGlobal.js\");\n\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && _freeGlobal_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (nodeUtil);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19ub2RlVXRpbC5qcy5qcyIsIm1hcHBpbmdzIjoiOztBQUEwQzs7QUFFMUM7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxtQ0FBbUMsOERBQWtCOztBQUVyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKLENBQUM7O0FBRUQsK0RBQWUsUUFBUSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX25vZGVVdGlsLmpzP2M0MTkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZyZWVHbG9iYWwgZnJvbSAnLi9fZnJlZUdsb2JhbC5qcyc7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgZXhwb3J0c2AuICovXG52YXIgZnJlZUV4cG9ydHMgPSB0eXBlb2YgZXhwb3J0cyA9PSAnb2JqZWN0JyAmJiBleHBvcnRzICYmICFleHBvcnRzLm5vZGVUeXBlICYmIGV4cG9ydHM7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgbW9kdWxlYC4gKi9cbnZhciBmcmVlTW9kdWxlID0gZnJlZUV4cG9ydHMgJiYgdHlwZW9mIG1vZHVsZSA9PSAnb2JqZWN0JyAmJiBtb2R1bGUgJiYgIW1vZHVsZS5ub2RlVHlwZSAmJiBtb2R1bGU7XG5cbi8qKiBEZXRlY3QgdGhlIHBvcHVsYXIgQ29tbW9uSlMgZXh0ZW5zaW9uIGBtb2R1bGUuZXhwb3J0c2AuICovXG52YXIgbW9kdWxlRXhwb3J0cyA9IGZyZWVNb2R1bGUgJiYgZnJlZU1vZHVsZS5leHBvcnRzID09PSBmcmVlRXhwb3J0cztcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBwcm9jZXNzYCBmcm9tIE5vZGUuanMuICovXG52YXIgZnJlZVByb2Nlc3MgPSBtb2R1bGVFeHBvcnRzICYmIGZyZWVHbG9iYWwucHJvY2VzcztcblxuLyoqIFVzZWQgdG8gYWNjZXNzIGZhc3RlciBOb2RlLmpzIGhlbHBlcnMuICovXG52YXIgbm9kZVV0aWwgPSAoZnVuY3Rpb24oKSB7XG4gIHRyeSB7XG4gICAgLy8gVXNlIGB1dGlsLnR5cGVzYCBmb3IgTm9kZS5qcyAxMCsuXG4gICAgdmFyIHR5cGVzID0gZnJlZU1vZHVsZSAmJiBmcmVlTW9kdWxlLnJlcXVpcmUgJiYgZnJlZU1vZHVsZS5yZXF1aXJlKCd1dGlsJykudHlwZXM7XG5cbiAgICBpZiAodHlwZXMpIHtcbiAgICAgIHJldHVybiB0eXBlcztcbiAgICB9XG5cbiAgICAvLyBMZWdhY3kgYHByb2Nlc3MuYmluZGluZygndXRpbCcpYCBmb3IgTm9kZS5qcyA8IDEwLlxuICAgIHJldHVybiBmcmVlUHJvY2VzcyAmJiBmcmVlUHJvY2Vzcy5iaW5kaW5nICYmIGZyZWVQcm9jZXNzLmJpbmRpbmcoJ3V0aWwnKTtcbiAgfSBjYXRjaCAoZSkge31cbn0oKSk7XG5cbmV4cG9ydCBkZWZhdWx0IG5vZGVVdGlsO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_nodeUtil.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_objectToString.js": +/*!***************************************************!*\ + !*** ./node_modules/lodash-es/_objectToString.js ***! + \***************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (objectToString);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19vYmplY3RUb1N0cmluZy5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsY0FBYyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX29iamVjdFRvU3RyaW5nLmpzP2QxOTUiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqXG4gKiBVc2VkIHRvIHJlc29sdmUgdGhlXG4gKiBbYHRvU3RyaW5nVGFnYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtb2JqZWN0LnByb3RvdHlwZS50b3N0cmluZylcbiAqIG9mIHZhbHVlcy5cbiAqL1xudmFyIG5hdGl2ZU9iamVjdFRvU3RyaW5nID0gb2JqZWN0UHJvdG8udG9TdHJpbmc7XG5cbi8qKlxuICogQ29udmVydHMgYHZhbHVlYCB0byBhIHN0cmluZyB1c2luZyBgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZ2AuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgc3RyaW5nLlxuICovXG5mdW5jdGlvbiBvYmplY3RUb1N0cmluZyh2YWx1ZSkge1xuICByZXR1cm4gbmF0aXZlT2JqZWN0VG9TdHJpbmcuY2FsbCh2YWx1ZSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IG9iamVjdFRvU3RyaW5nO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_objectToString.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_overArg.js": +/*!********************************************!*\ + !*** ./node_modules/lodash-es/_overArg.js ***! + \********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (overArg);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19vdmVyQXJnLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsVUFBVTtBQUNyQixXQUFXLFVBQVU7QUFDckIsYUFBYSxVQUFVO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxPQUFPLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fb3ZlckFyZy5qcz8wYmQ3Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ3JlYXRlcyBhIHVuYXJ5IGZ1bmN0aW9uIHRoYXQgaW52b2tlcyBgZnVuY2Agd2l0aCBpdHMgYXJndW1lbnQgdHJhbnNmb3JtZWQuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIHdyYXAuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSB0cmFuc2Zvcm0gVGhlIGFyZ3VtZW50IHRyYW5zZm9ybS5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBvdmVyQXJnKGZ1bmMsIHRyYW5zZm9ybSkge1xuICByZXR1cm4gZnVuY3Rpb24oYXJnKSB7XG4gICAgcmV0dXJuIGZ1bmModHJhbnNmb3JtKGFyZykpO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBvdmVyQXJnO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_overArg.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_root.js": +/*!*****************************************!*\ + !*** ./node_modules/lodash-es/_root.js ***! + \*****************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _freeGlobal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_freeGlobal.js */ \"./node_modules/lodash-es/_freeGlobal.js\");\n\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = _freeGlobal_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] || freeSelf || Function('return this')();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (root);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19yb290LmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQTBDOztBQUUxQztBQUNBOztBQUVBO0FBQ0EsV0FBVyxzREFBVTs7QUFFckIsK0RBQWUsSUFBSSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3Jvb3QuanM/NGZjMSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZnJlZUdsb2JhbCBmcm9tICcuL19mcmVlR2xvYmFsLmpzJztcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBzZWxmYC4gKi9cbnZhciBmcmVlU2VsZiA9IHR5cGVvZiBzZWxmID09ICdvYmplY3QnICYmIHNlbGYgJiYgc2VsZi5PYmplY3QgPT09IE9iamVjdCAmJiBzZWxmO1xuXG4vKiogVXNlZCBhcyBhIHJlZmVyZW5jZSB0byB0aGUgZ2xvYmFsIG9iamVjdC4gKi9cbnZhciByb290ID0gZnJlZUdsb2JhbCB8fCBmcmVlU2VsZiB8fCBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuXG5leHBvcnQgZGVmYXVsdCByb290O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_root.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_stackClear.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/_stackClear.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ListCache_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ListCache.js */ \"./node_modules/lodash-es/_ListCache.js\");\n\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new _ListCache_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\n this.size = 0;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (stackClear);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19zdGFja0NsZWFyLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQXdDOztBQUV4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLHFEQUFTO0FBQy9CO0FBQ0E7O0FBRUEsK0RBQWUsVUFBVSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3N0YWNrQ2xlYXIuanM/MTAxMCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTGlzdENhY2hlIGZyb20gJy4vX0xpc3RDYWNoZS5qcyc7XG5cbi8qKlxuICogUmVtb3ZlcyBhbGwga2V5LXZhbHVlIGVudHJpZXMgZnJvbSB0aGUgc3RhY2suXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGNsZWFyXG4gKiBAbWVtYmVyT2YgU3RhY2tcbiAqL1xuZnVuY3Rpb24gc3RhY2tDbGVhcigpIHtcbiAgdGhpcy5fX2RhdGFfXyA9IG5ldyBMaXN0Q2FjaGU7XG4gIHRoaXMuc2l6ZSA9IDA7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHN0YWNrQ2xlYXI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_stackClear.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_stackDelete.js": +/*!************************************************!*\ + !*** ./node_modules/lodash-es/_stackDelete.js ***! + \************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (stackDelete);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19zdGFja0RlbGV0ZS5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsV0FBVyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3N0YWNrRGVsZXRlLmpzPzI5ZmMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZW1vdmVzIGBrZXlgIGFuZCBpdHMgdmFsdWUgZnJvbSB0aGUgc3RhY2suXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGRlbGV0ZVxuICogQG1lbWJlck9mIFN0YWNrXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHJlbW92ZS5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgZW50cnkgd2FzIHJlbW92ZWQsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gc3RhY2tEZWxldGUoa2V5KSB7XG4gIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXyxcbiAgICAgIHJlc3VsdCA9IGRhdGFbJ2RlbGV0ZSddKGtleSk7XG5cbiAgdGhpcy5zaXplID0gZGF0YS5zaXplO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBzdGFja0RlbGV0ZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_stackDelete.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_stackGet.js": +/*!*********************************************!*\ + !*** ./node_modules/lodash-es/_stackGet.js ***! + \*********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (stackGet);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19zdGFja0dldC5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsR0FBRztBQUNoQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxRQUFRLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fc3RhY2tHZXQuanM/MmRiNiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdldHMgdGhlIHN0YWNrIHZhbHVlIGZvciBga2V5YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgZ2V0XG4gKiBAbWVtYmVyT2YgU3RhY2tcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gZ2V0LlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGVudHJ5IHZhbHVlLlxuICovXG5mdW5jdGlvbiBzdGFja0dldChrZXkpIHtcbiAgcmV0dXJuIHRoaXMuX19kYXRhX18uZ2V0KGtleSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHN0YWNrR2V0O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_stackGet.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_stackHas.js": +/*!*********************************************!*\ + !*** ./node_modules/lodash-es/_stackHas.js ***! + \*********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (stackHas);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19zdGFja0hhcy5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxRQUFRLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fc3RhY2tIYXMuanM/ODg3MSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENoZWNrcyBpZiBhIHN0YWNrIHZhbHVlIGZvciBga2V5YCBleGlzdHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGhhc1xuICogQG1lbWJlck9mIFN0YWNrXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIGVudHJ5IHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGFuIGVudHJ5IGZvciBga2V5YCBleGlzdHMsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gc3RhY2tIYXMoa2V5KSB7XG4gIHJldHVybiB0aGlzLl9fZGF0YV9fLmhhcyhrZXkpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBzdGFja0hhcztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_stackHas.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_stackSet.js": +/*!*********************************************!*\ + !*** ./node_modules/lodash-es/_stackSet.js ***! + \*********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ListCache_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ListCache.js */ \"./node_modules/lodash-es/_ListCache.js\");\n/* harmony import */ var _Map_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_Map.js */ \"./node_modules/lodash-es/_Map.js\");\n/* harmony import */ var _MapCache_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_MapCache.js */ \"./node_modules/lodash-es/_MapCache.js\");\n\n\n\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof _ListCache_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]) {\n var pairs = data.__data__;\n if (!_Map_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"] || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new _MapCache_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"](pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (stackSet);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19zdGFja1NldC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQXdDO0FBQ1o7QUFDVTs7QUFFdEM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxHQUFHO0FBQ2QsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixxREFBUztBQUMvQjtBQUNBLFNBQVMsK0NBQUc7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtCQUErQixvREFBUTtBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLCtEQUFlLFFBQVEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19zdGFja1NldC5qcz9jN2VhIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMaXN0Q2FjaGUgZnJvbSAnLi9fTGlzdENhY2hlLmpzJztcbmltcG9ydCBNYXAgZnJvbSAnLi9fTWFwLmpzJztcbmltcG9ydCBNYXBDYWNoZSBmcm9tICcuL19NYXBDYWNoZS5qcyc7XG5cbi8qKiBVc2VkIGFzIHRoZSBzaXplIHRvIGVuYWJsZSBsYXJnZSBhcnJheSBvcHRpbWl6YXRpb25zLiAqL1xudmFyIExBUkdFX0FSUkFZX1NJWkUgPSAyMDA7XG5cbi8qKlxuICogU2V0cyB0aGUgc3RhY2sgYGtleWAgdG8gYHZhbHVlYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgc2V0XG4gKiBAbWVtYmVyT2YgU3RhY2tcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gc2V0LlxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2V0LlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgc3RhY2sgY2FjaGUgaW5zdGFuY2UuXG4gKi9cbmZ1bmN0aW9uIHN0YWNrU2V0KGtleSwgdmFsdWUpIHtcbiAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fO1xuICBpZiAoZGF0YSBpbnN0YW5jZW9mIExpc3RDYWNoZSkge1xuICAgIHZhciBwYWlycyA9IGRhdGEuX19kYXRhX187XG4gICAgaWYgKCFNYXAgfHwgKHBhaXJzLmxlbmd0aCA8IExBUkdFX0FSUkFZX1NJWkUgLSAxKSkge1xuICAgICAgcGFpcnMucHVzaChba2V5LCB2YWx1ZV0pO1xuICAgICAgdGhpcy5zaXplID0gKytkYXRhLnNpemU7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgZGF0YSA9IHRoaXMuX19kYXRhX18gPSBuZXcgTWFwQ2FjaGUocGFpcnMpO1xuICB9XG4gIGRhdGEuc2V0KGtleSwgdmFsdWUpO1xuICB0aGlzLnNpemUgPSBkYXRhLnNpemU7XG4gIHJldHVybiB0aGlzO1xufVxuXG5leHBvcnQgZGVmYXVsdCBzdGFja1NldDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_stackSet.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_stringToPath.js": +/*!*************************************************!*\ + !*** ./node_modules/lodash-es/_stringToPath.js ***! + \*************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _memoizeCapped_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_memoizeCapped.js */ \"./node_modules/lodash-es/_memoizeCapped.js\");\n\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = (0,_memoizeCapped_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (stringToPath);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19zdHJpbmdUb1BhdGguanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBZ0Q7O0FBRWhEO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixhQUFhLE9BQU87QUFDcEI7QUFDQSxtQkFBbUIsNkRBQWE7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsQ0FBQzs7QUFFRCwrREFBZSxZQUFZLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fc3RyaW5nVG9QYXRoLmpzP2VjN2QiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG1lbW9pemVDYXBwZWQgZnJvbSAnLi9fbWVtb2l6ZUNhcHBlZC5qcyc7XG5cbi8qKiBVc2VkIHRvIG1hdGNoIHByb3BlcnR5IG5hbWVzIHdpdGhpbiBwcm9wZXJ0eSBwYXRocy4gKi9cbnZhciByZVByb3BOYW1lID0gL1teLltcXF1dK3xcXFsoPzooLT9cXGQrKD86XFwuXFxkKyk/KXwoW1wiJ10pKCg/Oig/IVxcMilbXlxcXFxdfFxcXFwuKSo/KVxcMilcXF18KD89KD86XFwufFxcW1xcXSkoPzpcXC58XFxbXFxdfCQpKS9nO1xuXG4vKiogVXNlZCB0byBtYXRjaCBiYWNrc2xhc2hlcyBpbiBwcm9wZXJ0eSBwYXRocy4gKi9cbnZhciByZUVzY2FwZUNoYXIgPSAvXFxcXChcXFxcKT8vZztcblxuLyoqXG4gKiBDb252ZXJ0cyBgc3RyaW5nYCB0byBhIHByb3BlcnR5IHBhdGggYXJyYXkuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmcgVGhlIHN0cmluZyB0byBjb252ZXJ0LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBwcm9wZXJ0eSBwYXRoIGFycmF5LlxuICovXG52YXIgc3RyaW5nVG9QYXRoID0gbWVtb2l6ZUNhcHBlZChmdW5jdGlvbihzdHJpbmcpIHtcbiAgdmFyIHJlc3VsdCA9IFtdO1xuICBpZiAoc3RyaW5nLmNoYXJDb2RlQXQoMCkgPT09IDQ2IC8qIC4gKi8pIHtcbiAgICByZXN1bHQucHVzaCgnJyk7XG4gIH1cbiAgc3RyaW5nLnJlcGxhY2UocmVQcm9wTmFtZSwgZnVuY3Rpb24obWF0Y2gsIG51bWJlciwgcXVvdGUsIHN1YlN0cmluZykge1xuICAgIHJlc3VsdC5wdXNoKHF1b3RlID8gc3ViU3RyaW5nLnJlcGxhY2UocmVFc2NhcGVDaGFyLCAnJDEnKSA6IChudW1iZXIgfHwgbWF0Y2gpKTtcbiAgfSk7XG4gIHJldHVybiByZXN1bHQ7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgc3RyaW5nVG9QYXRoO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_stringToPath.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_toKey.js": +/*!******************************************!*\ + !*** ./node_modules/lodash-es/_toKey.js ***! + \******************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _isSymbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isSymbol.js */ \"./node_modules/lodash-es/isSymbol.js\");\n\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || (0,_isSymbol_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (toKey);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL190b0tleS5qcy5qcyIsIm1hcHBpbmdzIjoiOztBQUFxQzs7QUFFckM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLGFBQWEsZUFBZTtBQUM1QjtBQUNBO0FBQ0Esa0NBQWtDLHdEQUFRO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsS0FBSyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3RvS2V5LmpzPzg3MjQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGlzU3ltYm9sIGZyb20gJy4vaXNTeW1ib2wuanMnO1xuXG4vKiogVXNlZCBhcyByZWZlcmVuY2VzIGZvciB2YXJpb3VzIGBOdW1iZXJgIGNvbnN0YW50cy4gKi9cbnZhciBJTkZJTklUWSA9IDEgLyAwO1xuXG4vKipcbiAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBzdHJpbmcga2V5IGlmIGl0J3Mgbm90IGEgc3RyaW5nIG9yIHN5bWJvbC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIHtzdHJpbmd8c3ltYm9sfSBSZXR1cm5zIHRoZSBrZXkuXG4gKi9cbmZ1bmN0aW9uIHRvS2V5KHZhbHVlKSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT0gJ3N0cmluZycgfHwgaXNTeW1ib2wodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIHZhciByZXN1bHQgPSAodmFsdWUgKyAnJyk7XG4gIHJldHVybiAocmVzdWx0ID09ICcwJyAmJiAoMSAvIHZhbHVlKSA9PSAtSU5GSU5JVFkpID8gJy0wJyA6IHJlc3VsdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgdG9LZXk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_toKey.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/_toSource.js": +/*!*********************************************!*\ + !*** ./node_modules/lodash-es/_toSource.js ***! + \*********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (toSource);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL190b1NvdXJjZS5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxVQUFVO0FBQ3JCLGFBQWEsUUFBUTtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBLCtEQUFlLFFBQVEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL190b1NvdXJjZS5qcz85MjU5Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBmdW5jUHJvdG8gPSBGdW5jdGlvbi5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIHJlc29sdmUgdGhlIGRlY29tcGlsZWQgc291cmNlIG9mIGZ1bmN0aW9ucy4gKi9cbnZhciBmdW5jVG9TdHJpbmcgPSBmdW5jUHJvdG8udG9TdHJpbmc7XG5cbi8qKlxuICogQ29udmVydHMgYGZ1bmNgIHRvIGl0cyBzb3VyY2UgY29kZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gY29udmVydC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHNvdXJjZSBjb2RlLlxuICovXG5mdW5jdGlvbiB0b1NvdXJjZShmdW5jKSB7XG4gIGlmIChmdW5jICE9IG51bGwpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGZ1bmNUb1N0cmluZy5jYWxsKGZ1bmMpO1xuICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiAoZnVuYyArICcnKTtcbiAgICB9IGNhdGNoIChlKSB7fVxuICB9XG4gIHJldHVybiAnJztcbn1cblxuZXhwb3J0IGRlZmF1bHQgdG9Tb3VyY2U7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/_toSource.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/clone.js": +/*!*****************************************!*\ + !*** ./node_modules/lodash-es/clone.js ***! + \*****************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseClone_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseClone.js */ \"./node_modules/lodash-es/_baseClone.js\");\n\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\nfunction clone(value) {\n return (0,_baseClone_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value, CLONE_SYMBOLS_FLAG);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (clone);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2Nsb25lLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQXdDOztBQUV4QztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLGFBQWEsR0FBRztBQUNoQjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsUUFBUSxJQUFJLFFBQVE7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUyx5REFBUztBQUNsQjs7QUFFQSwrREFBZSxLQUFLLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9jbG9uZS5qcz9iZmNmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBiYXNlQ2xvbmUgZnJvbSAnLi9fYmFzZUNsb25lLmpzJztcblxuLyoqIFVzZWQgdG8gY29tcG9zZSBiaXRtYXNrcyBmb3IgY2xvbmluZy4gKi9cbnZhciBDTE9ORV9TWU1CT0xTX0ZMQUcgPSA0O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBzaGFsbG93IGNsb25lIG9mIGB2YWx1ZWAuXG4gKlxuICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGlzIGxvb3NlbHkgYmFzZWQgb24gdGhlXG4gKiBbc3RydWN0dXJlZCBjbG9uZSBhbGdvcml0aG1dKGh0dHBzOi8vbWRuLmlvL1N0cnVjdHVyZWRfY2xvbmVfYWxnb3JpdGhtKVxuICogYW5kIHN1cHBvcnRzIGNsb25pbmcgYXJyYXlzLCBhcnJheSBidWZmZXJzLCBib29sZWFucywgZGF0ZSBvYmplY3RzLCBtYXBzLFxuICogbnVtYmVycywgYE9iamVjdGAgb2JqZWN0cywgcmVnZXhlcywgc2V0cywgc3RyaW5ncywgc3ltYm9scywgYW5kIHR5cGVkXG4gKiBhcnJheXMuIFRoZSBvd24gZW51bWVyYWJsZSBwcm9wZXJ0aWVzIG9mIGBhcmd1bWVudHNgIG9iamVjdHMgYXJlIGNsb25lZFxuICogYXMgcGxhaW4gb2JqZWN0cy4gQW4gZW1wdHkgb2JqZWN0IGlzIHJldHVybmVkIGZvciB1bmNsb25lYWJsZSB2YWx1ZXMgc3VjaFxuICogYXMgZXJyb3Igb2JqZWN0cywgZnVuY3Rpb25zLCBET00gbm9kZXMsIGFuZCBXZWFrTWFwcy5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2xvbmUuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgY2xvbmVkIHZhbHVlLlxuICogQHNlZSBfLmNsb25lRGVlcFxuICogQGV4YW1wbGVcbiAqXG4gKiB2YXIgb2JqZWN0cyA9IFt7ICdhJzogMSB9LCB7ICdiJzogMiB9XTtcbiAqXG4gKiB2YXIgc2hhbGxvdyA9IF8uY2xvbmUob2JqZWN0cyk7XG4gKiBjb25zb2xlLmxvZyhzaGFsbG93WzBdID09PSBvYmplY3RzWzBdKTtcbiAqIC8vID0+IHRydWVcbiAqL1xuZnVuY3Rpb24gY2xvbmUodmFsdWUpIHtcbiAgcmV0dXJuIGJhc2VDbG9uZSh2YWx1ZSwgQ0xPTkVfU1lNQk9MU19GTEFHKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xvbmU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/clone.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/cloneDeep.js": +/*!*********************************************!*\ + !*** ./node_modules/lodash-es/cloneDeep.js ***! + \*********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseClone_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseClone.js */ \"./node_modules/lodash-es/_baseClone.js\");\n\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return (0,_baseClone_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (cloneDeep);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2Nsb25lRGVlcC5qcy5qcyIsIm1hcHBpbmdzIjoiOztBQUF3Qzs7QUFFeEM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2QsYUFBYSxHQUFHO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixRQUFRLElBQUksUUFBUTtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTLHlEQUFTO0FBQ2xCOztBQUVBLCtEQUFlLFNBQVMsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2Nsb25lRGVlcC5qcz83YzhkIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBiYXNlQ2xvbmUgZnJvbSAnLi9fYmFzZUNsb25lLmpzJztcblxuLyoqIFVzZWQgdG8gY29tcG9zZSBiaXRtYXNrcyBmb3IgY2xvbmluZy4gKi9cbnZhciBDTE9ORV9ERUVQX0ZMQUcgPSAxLFxuICAgIENMT05FX1NZTUJPTFNfRkxBRyA9IDQ7XG5cbi8qKlxuICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5jbG9uZWAgZXhjZXB0IHRoYXQgaXQgcmVjdXJzaXZlbHkgY2xvbmVzIGB2YWx1ZWAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHJlY3Vyc2l2ZWx5IGNsb25lLlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGRlZXAgY2xvbmVkIHZhbHVlLlxuICogQHNlZSBfLmNsb25lXG4gKiBAZXhhbXBsZVxuICpcbiAqIHZhciBvYmplY3RzID0gW3sgJ2EnOiAxIH0sIHsgJ2InOiAyIH1dO1xuICpcbiAqIHZhciBkZWVwID0gXy5jbG9uZURlZXAob2JqZWN0cyk7XG4gKiBjb25zb2xlLmxvZyhkZWVwWzBdID09PSBvYmplY3RzWzBdKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGNsb25lRGVlcCh2YWx1ZSkge1xuICByZXR1cm4gYmFzZUNsb25lKHZhbHVlLCBDTE9ORV9ERUVQX0ZMQUcgfCBDTE9ORV9TWU1CT0xTX0ZMQUcpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbG9uZURlZXA7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/cloneDeep.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/eq.js": +/*!**************************************!*\ + !*** ./node_modules/lodash-es/eq.js ***! + \**************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (eq);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2VxLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxXQUFXLEdBQUc7QUFDZCxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQixpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsRUFBRSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvZXEuanM/YjVhOSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFBlcmZvcm1zIGFcbiAqIFtgU2FtZVZhbHVlWmVyb2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXNhbWV2YWx1ZXplcm8pXG4gKiBjb21wYXJpc29uIGJldHdlZW4gdHdvIHZhbHVlcyB0byBkZXRlcm1pbmUgaWYgdGhleSBhcmUgZXF1aXZhbGVudC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29tcGFyZS5cbiAqIEBwYXJhbSB7Kn0gb3RoZXIgVGhlIG90aGVyIHZhbHVlIHRvIGNvbXBhcmUuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHZhbHVlcyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiB2YXIgb2JqZWN0ID0geyAnYSc6IDEgfTtcbiAqIHZhciBvdGhlciA9IHsgJ2EnOiAxIH07XG4gKlxuICogXy5lcShvYmplY3QsIG9iamVjdCk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5lcShvYmplY3QsIG90aGVyKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5lcSgnYScsICdhJyk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5lcSgnYScsIE9iamVjdCgnYScpKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5lcShOYU4sIE5hTik7XG4gKiAvLyA9PiB0cnVlXG4gKi9cbmZ1bmN0aW9uIGVxKHZhbHVlLCBvdGhlcikge1xuICByZXR1cm4gdmFsdWUgPT09IG90aGVyIHx8ICh2YWx1ZSAhPT0gdmFsdWUgJiYgb3RoZXIgIT09IG90aGVyKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZXE7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/eq.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/isArguments.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/isArguments.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseIsArguments_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseIsArguments.js */ \"./node_modules/lodash-es/_baseIsArguments.js\");\n/* harmony import */ var _isObjectLike_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isObjectLike.js */ \"./node_modules/lodash-es/isObjectLike.js\");\n\n\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = (0,_baseIsArguments_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function() { return arguments; }()) ? _baseIsArguments_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] : function(value) {\n return (0,_isObjectLike_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isArguments);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzQXJndW1lbnRzLmpzLmpzIiwibWFwcGluZ3MiOiI7OztBQUFvRDtBQUNQOztBQUU3QztBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQSw4QkFBOEIsbUJBQW1CO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IsK0RBQWUsY0FBYyxtQkFBbUIsTUFBTSwyREFBZTtBQUN2RixTQUFTLDREQUFZO0FBQ3JCO0FBQ0E7O0FBRUEsK0RBQWUsV0FBVyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNBcmd1bWVudHMuanM/ZTJkMCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYmFzZUlzQXJndW1lbnRzIGZyb20gJy4vX2Jhc2VJc0FyZ3VtZW50cy5qcyc7XG5pbXBvcnQgaXNPYmplY3RMaWtlIGZyb20gJy4vaXNPYmplY3RMaWtlLmpzJztcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgcHJvcGVydHlJc0VudW1lcmFibGUgPSBvYmplY3RQcm90by5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBsaWtlbHkgYW4gYGFyZ3VtZW50c2Agb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIGBhcmd1bWVudHNgIG9iamVjdCxcbiAqICBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNBcmd1bWVudHMoZnVuY3Rpb24oKSB7IHJldHVybiBhcmd1bWVudHM7IH0oKSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0FyZ3VtZW50cyhbMSwgMiwgM10pO1xuICogLy8gPT4gZmFsc2VcbiAqL1xudmFyIGlzQXJndW1lbnRzID0gYmFzZUlzQXJndW1lbnRzKGZ1bmN0aW9uKCkgeyByZXR1cm4gYXJndW1lbnRzOyB9KCkpID8gYmFzZUlzQXJndW1lbnRzIDogZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwgJ2NhbGxlZScpICYmXG4gICAgIXByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodmFsdWUsICdjYWxsZWUnKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGlzQXJndW1lbnRzO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/isArguments.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/isArray.js": +/*!*******************************************!*\ + !*** ./node_modules/lodash-es/isArray.js ***! + \*******************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isArray);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzQXJyYXkuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2QsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxPQUFPLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc0FycmF5LmpzPzg2MjIiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGFuIGBBcnJheWAgb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIGFycmF5LCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNBcnJheShbMSwgMiwgM10pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNBcnJheShkb2N1bWVudC5ib2R5LmNoaWxkcmVuKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc0FycmF5KCdhYmMnKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc0FycmF5KF8ubm9vcCk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG52YXIgaXNBcnJheSA9IEFycmF5LmlzQXJyYXk7XG5cbmV4cG9ydCBkZWZhdWx0IGlzQXJyYXk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/isArray.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/isArrayLike.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/isArrayLike.js ***! + \***********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isFunction.js */ \"./node_modules/lodash-es/isFunction.js\");\n/* harmony import */ var _isLength_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isLength.js */ \"./node_modules/lodash-es/isLength.js\");\n\n\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && (0,_isLength_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value.length) && !(0,_isFunction_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isArrayLike);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzQXJyYXlMaWtlLmpzLmpzIiwibWFwcGluZ3MiOiI7OztBQUF5QztBQUNKOztBQUVyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLHdEQUFRLG1CQUFtQiwwREFBVTtBQUMvRDs7QUFFQSwrREFBZSxXQUFXLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc0FycmF5TGlrZS5qcz82Y2QzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBpc0Z1bmN0aW9uIGZyb20gJy4vaXNGdW5jdGlvbi5qcyc7XG5pbXBvcnQgaXNMZW5ndGggZnJvbSAnLi9pc0xlbmd0aC5qcyc7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYXJyYXktbGlrZS4gQSB2YWx1ZSBpcyBjb25zaWRlcmVkIGFycmF5LWxpa2UgaWYgaXQnc1xuICogbm90IGEgZnVuY3Rpb24gYW5kIGhhcyBhIGB2YWx1ZS5sZW5ndGhgIHRoYXQncyBhbiBpbnRlZ2VyIGdyZWF0ZXIgdGhhbiBvclxuICogZXF1YWwgdG8gYDBgIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gYE51bWJlci5NQVhfU0FGRV9JTlRFR0VSYC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhcnJheS1saWtlLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNBcnJheUxpa2UoWzEsIDIsIDNdKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzQXJyYXlMaWtlKGRvY3VtZW50LmJvZHkuY2hpbGRyZW4pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNBcnJheUxpa2UoJ2FiYycpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNBcnJheUxpa2UoXy5ub29wKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzQXJyYXlMaWtlKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSAhPSBudWxsICYmIGlzTGVuZ3RoKHZhbHVlLmxlbmd0aCkgJiYgIWlzRnVuY3Rpb24odmFsdWUpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBpc0FycmF5TGlrZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/isArrayLike.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/isBuffer.js": +/*!********************************************!*\ + !*** ./node_modules/lodash-es/isBuffer.js ***! + \********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_root.js */ \"./node_modules/lodash-es/_root.js\");\n/* harmony import */ var _stubFalse_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./stubFalse.js */ \"./node_modules/lodash-es/stubFalse.js\");\n\n\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? _root_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || _stubFalse_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isBuffer);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzQnVmZmVyLmpzLmpzIiwibWFwcGluZ3MiOiI7OztBQUE4QjtBQUNTOztBQUV2QztBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLDZCQUE2Qix1REFBVzs7QUFFeEM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDLHFEQUFTOztBQUUxQywrREFBZSxRQUFRLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc0J1ZmZlci5qcz8yMDQwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCByb290IGZyb20gJy4vX3Jvb3QuanMnO1xuaW1wb3J0IHN0dWJGYWxzZSBmcm9tICcuL3N0dWJGYWxzZS5qcyc7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgZXhwb3J0c2AuICovXG52YXIgZnJlZUV4cG9ydHMgPSB0eXBlb2YgZXhwb3J0cyA9PSAnb2JqZWN0JyAmJiBleHBvcnRzICYmICFleHBvcnRzLm5vZGVUeXBlICYmIGV4cG9ydHM7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgbW9kdWxlYC4gKi9cbnZhciBmcmVlTW9kdWxlID0gZnJlZUV4cG9ydHMgJiYgdHlwZW9mIG1vZHVsZSA9PSAnb2JqZWN0JyAmJiBtb2R1bGUgJiYgIW1vZHVsZS5ub2RlVHlwZSAmJiBtb2R1bGU7XG5cbi8qKiBEZXRlY3QgdGhlIHBvcHVsYXIgQ29tbW9uSlMgZXh0ZW5zaW9uIGBtb2R1bGUuZXhwb3J0c2AuICovXG52YXIgbW9kdWxlRXhwb3J0cyA9IGZyZWVNb2R1bGUgJiYgZnJlZU1vZHVsZS5leHBvcnRzID09PSBmcmVlRXhwb3J0cztcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgQnVmZmVyID0gbW9kdWxlRXhwb3J0cyA/IHJvb3QuQnVmZmVyIDogdW5kZWZpbmVkO1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlSXNCdWZmZXIgPSBCdWZmZXIgPyBCdWZmZXIuaXNCdWZmZXIgOiB1bmRlZmluZWQ7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSBidWZmZXIuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjMuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBidWZmZXIsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0J1ZmZlcihuZXcgQnVmZmVyKDIpKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzQnVmZmVyKG5ldyBVaW50OEFycmF5KDIpKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbnZhciBpc0J1ZmZlciA9IG5hdGl2ZUlzQnVmZmVyIHx8IHN0dWJGYWxzZTtcblxuZXhwb3J0IGRlZmF1bHQgaXNCdWZmZXI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/isBuffer.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/isFunction.js": +/*!**********************************************!*\ + !*** ./node_modules/lodash-es/isFunction.js ***! + \**********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseGetTag_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_baseGetTag.js */ \"./node_modules/lodash-es/_baseGetTag.js\");\n/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isObject.js */ \"./node_modules/lodash-es/isObject.js\");\n\n\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!(0,_isObject_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = (0,_baseGetTag_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isFunction);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzRnVuY3Rpb24uanMuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQTBDO0FBQ0w7O0FBRXJDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyx3REFBUTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSwwREFBVTtBQUN0QjtBQUNBOztBQUVBLCtEQUFlLFVBQVUsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzRnVuY3Rpb24uanM/ODAyYiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYmFzZUdldFRhZyBmcm9tICcuL19iYXNlR2V0VGFnLmpzJztcbmltcG9ydCBpc09iamVjdCBmcm9tICcuL2lzT2JqZWN0LmpzJztcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIGFzeW5jVGFnID0gJ1tvYmplY3QgQXN5bmNGdW5jdGlvbl0nLFxuICAgIGZ1bmNUYWcgPSAnW29iamVjdCBGdW5jdGlvbl0nLFxuICAgIGdlblRhZyA9ICdbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXScsXG4gICAgcHJveHlUYWcgPSAnW29iamVjdCBQcm94eV0nO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgRnVuY3Rpb25gIG9iamVjdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIGZ1bmN0aW9uLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNGdW5jdGlvbihfKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzRnVuY3Rpb24oL2FiYy8pO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNGdW5jdGlvbih2YWx1ZSkge1xuICBpZiAoIWlzT2JqZWN0KHZhbHVlKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICAvLyBUaGUgdXNlIG9mIGBPYmplY3QjdG9TdHJpbmdgIGF2b2lkcyBpc3N1ZXMgd2l0aCB0aGUgYHR5cGVvZmAgb3BlcmF0b3JcbiAgLy8gaW4gU2FmYXJpIDkgd2hpY2ggcmV0dXJucyAnb2JqZWN0JyBmb3IgdHlwZWQgYXJyYXlzIGFuZCBvdGhlciBjb25zdHJ1Y3RvcnMuXG4gIHZhciB0YWcgPSBiYXNlR2V0VGFnKHZhbHVlKTtcbiAgcmV0dXJuIHRhZyA9PSBmdW5jVGFnIHx8IHRhZyA9PSBnZW5UYWcgfHwgdGFnID09IGFzeW5jVGFnIHx8IHRhZyA9PSBwcm94eVRhZztcbn1cblxuZXhwb3J0IGRlZmF1bHQgaXNGdW5jdGlvbjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/isFunction.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/isLength.js": +/*!********************************************!*\ + !*** ./node_modules/lodash-es/isLength.js ***! + \********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isLength);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzTGVuZ3RoLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2QsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxRQUFRLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc0xlbmd0aC5qcz9iZTk2Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBVc2VkIGFzIHJlZmVyZW5jZXMgZm9yIHZhcmlvdXMgYE51bWJlcmAgY29uc3RhbnRzLiAqL1xudmFyIE1BWF9TQUZFX0lOVEVHRVIgPSA5MDA3MTk5MjU0NzQwOTkxO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGEgdmFsaWQgYXJyYXktbGlrZSBsZW5ndGguXG4gKlxuICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGlzIGxvb3NlbHkgYmFzZWQgb25cbiAqIFtgVG9MZW5ndGhgXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy10b2xlbmd0aCkuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSB2YWxpZCBsZW5ndGgsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0xlbmd0aCgzKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzTGVuZ3RoKE51bWJlci5NSU5fVkFMVUUpO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmlzTGVuZ3RoKEluZmluaXR5KTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc0xlbmd0aCgnMycpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNMZW5ndGgodmFsdWUpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSAnbnVtYmVyJyAmJlxuICAgIHZhbHVlID4gLTEgJiYgdmFsdWUgJSAxID09IDAgJiYgdmFsdWUgPD0gTUFYX1NBRkVfSU5URUdFUjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgaXNMZW5ndGg7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/isLength.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/isMap.js": +/*!*****************************************!*\ + !*** ./node_modules/lodash-es/isMap.js ***! + \*****************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseIsMap_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_baseIsMap.js */ \"./node_modules/lodash-es/_baseIsMap.js\");\n/* harmony import */ var _baseUnary_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_baseUnary.js */ \"./node_modules/lodash-es/_baseUnary.js\");\n/* harmony import */ var _nodeUtil_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_nodeUtil.js */ \"./node_modules/lodash-es/_nodeUtil.js\");\n\n\n\n\n/* Node.js helper references. */\nvar nodeIsMap = _nodeUtil_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] && _nodeUtil_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? (0,_baseUnary_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(nodeIsMap) : _baseIsMap_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isMap);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzTWFwLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBd0M7QUFDQTtBQUNGOztBQUV0QztBQUNBLGdCQUFnQixvREFBUSxJQUFJLDBEQUFjOztBQUUxQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLHlEQUFTLGNBQWMscURBQVM7O0FBRXhELCtEQUFlLEtBQUssRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzTWFwLmpzP2NiZjYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGJhc2VJc01hcCBmcm9tICcuL19iYXNlSXNNYXAuanMnO1xuaW1wb3J0IGJhc2VVbmFyeSBmcm9tICcuL19iYXNlVW5hcnkuanMnO1xuaW1wb3J0IG5vZGVVdGlsIGZyb20gJy4vX25vZGVVdGlsLmpzJztcblxuLyogTm9kZS5qcyBoZWxwZXIgcmVmZXJlbmNlcy4gKi9cbnZhciBub2RlSXNNYXAgPSBub2RlVXRpbCAmJiBub2RlVXRpbC5pc01hcDtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgYE1hcGAgb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4zLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgbWFwLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNNYXAobmV3IE1hcCk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc01hcChuZXcgV2Vha01hcCk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG52YXIgaXNNYXAgPSBub2RlSXNNYXAgPyBiYXNlVW5hcnkobm9kZUlzTWFwKSA6IGJhc2VJc01hcDtcblxuZXhwb3J0IGRlZmF1bHQgaXNNYXA7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/isMap.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/isObject.js": +/*!********************************************!*\ + !*** ./node_modules/lodash-es/isObject.js ***! + \********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isObject);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzT2JqZWN0LmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsUUFBUSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNPYmplY3QuanM/YWJlYSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIHRoZVxuICogW2xhbmd1YWdlIHR5cGVdKGh0dHA6Ly93d3cuZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1lY21hc2NyaXB0LWxhbmd1YWdlLXR5cGVzKVxuICogb2YgYE9iamVjdGAuIChlLmcuIGFycmF5cywgZnVuY3Rpb25zLCBvYmplY3RzLCByZWdleGVzLCBgbmV3IE51bWJlcigwKWAsIGFuZCBgbmV3IFN0cmluZygnJylgKVxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIG9iamVjdCwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzT2JqZWN0KHt9KTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0KFsxLCAyLCAzXSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdChfLm5vb3ApO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3QobnVsbCk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc09iamVjdCh2YWx1ZSkge1xuICB2YXIgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcbiAgcmV0dXJuIHZhbHVlICE9IG51bGwgJiYgKHR5cGUgPT0gJ29iamVjdCcgfHwgdHlwZSA9PSAnZnVuY3Rpb24nKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgaXNPYmplY3Q7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/isObject.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/isObjectLike.js": +/*!************************************************!*\ + !*** ./node_modules/lodash-es/isObjectLike.js ***! + \************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isObjectLike);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzT2JqZWN0TGlrZS5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsWUFBWSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNPYmplY3RMaWtlLmpzP2NhY2EiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBvYmplY3QtbGlrZS4gQSB2YWx1ZSBpcyBvYmplY3QtbGlrZSBpZiBpdCdzIG5vdCBgbnVsbGBcbiAqIGFuZCBoYXMgYSBgdHlwZW9mYCByZXN1bHQgb2YgXCJvYmplY3RcIi5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBvYmplY3QtbGlrZSwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZSh7fSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdExpa2UoWzEsIDIsIDNdKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZShfLm5vb3ApO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZShudWxsKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzT2JqZWN0TGlrZSh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgIT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT0gJ29iamVjdCc7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzT2JqZWN0TGlrZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/isObjectLike.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/isPlainObject.js": +/*!*************************************************!*\ + !*** ./node_modules/lodash-es/isPlainObject.js ***! + \*************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseGetTag_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_baseGetTag.js */ \"./node_modules/lodash-es/_baseGetTag.js\");\n/* harmony import */ var _getPrototype_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_getPrototype.js */ \"./node_modules/lodash-es/_getPrototype.js\");\n/* harmony import */ var _isObjectLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isObjectLike.js */ \"./node_modules/lodash-es/isObjectLike.js\");\n\n\n\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!(0,_isObjectLike_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value) || (0,_baseGetTag_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value) != objectTag) {\n return false;\n }\n var proto = (0,_getPrototype_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isPlainObject);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzUGxhaW5PYmplY3QuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUEwQztBQUNJO0FBQ0Q7O0FBRTdDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLGdCQUFnQjtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLDREQUFZLFdBQVcsMERBQVU7QUFDeEM7QUFDQTtBQUNBLGNBQWMsNERBQVk7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsYUFBYSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNQbGFpbk9iamVjdC5qcz9mNTg5Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBiYXNlR2V0VGFnIGZyb20gJy4vX2Jhc2VHZXRUYWcuanMnO1xuaW1wb3J0IGdldFByb3RvdHlwZSBmcm9tICcuL19nZXRQcm90b3R5cGUuanMnO1xuaW1wb3J0IGlzT2JqZWN0TGlrZSBmcm9tICcuL2lzT2JqZWN0TGlrZS5qcyc7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RUYWcgPSAnW29iamVjdCBPYmplY3RdJztcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIGZ1bmNQcm90byA9IEZ1bmN0aW9uLnByb3RvdHlwZSxcbiAgICBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIHJlc29sdmUgdGhlIGRlY29tcGlsZWQgc291cmNlIG9mIGZ1bmN0aW9ucy4gKi9cbnZhciBmdW5jVG9TdHJpbmcgPSBmdW5jUHJvdG8udG9TdHJpbmc7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKiBVc2VkIHRvIGluZmVyIHRoZSBgT2JqZWN0YCBjb25zdHJ1Y3Rvci4gKi9cbnZhciBvYmplY3RDdG9yU3RyaW5nID0gZnVuY1RvU3RyaW5nLmNhbGwoT2JqZWN0KTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIHBsYWluIG9iamVjdCwgdGhhdCBpcywgYW4gb2JqZWN0IGNyZWF0ZWQgYnkgdGhlXG4gKiBgT2JqZWN0YCBjb25zdHJ1Y3RvciBvciBvbmUgd2l0aCBhIGBbW1Byb3RvdHlwZV1dYCBvZiBgbnVsbGAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjguMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBwbGFpbiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogZnVuY3Rpb24gRm9vKCkge1xuICogICB0aGlzLmEgPSAxO1xuICogfVxuICpcbiAqIF8uaXNQbGFpbk9iamVjdChuZXcgRm9vKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc1BsYWluT2JqZWN0KFsxLCAyLCAzXSk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNQbGFpbk9iamVjdCh7ICd4JzogMCwgJ3knOiAwIH0pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNQbGFpbk9iamVjdChPYmplY3QuY3JlYXRlKG51bGwpKTtcbiAqIC8vID0+IHRydWVcbiAqL1xuZnVuY3Rpb24gaXNQbGFpbk9iamVjdCh2YWx1ZSkge1xuICBpZiAoIWlzT2JqZWN0TGlrZSh2YWx1ZSkgfHwgYmFzZUdldFRhZyh2YWx1ZSkgIT0gb2JqZWN0VGFnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHZhciBwcm90byA9IGdldFByb3RvdHlwZSh2YWx1ZSk7XG4gIGlmIChwcm90byA9PT0gbnVsbCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHZhciBDdG9yID0gaGFzT3duUHJvcGVydHkuY2FsbChwcm90bywgJ2NvbnN0cnVjdG9yJykgJiYgcHJvdG8uY29uc3RydWN0b3I7XG4gIHJldHVybiB0eXBlb2YgQ3RvciA9PSAnZnVuY3Rpb24nICYmIEN0b3IgaW5zdGFuY2VvZiBDdG9yICYmXG4gICAgZnVuY1RvU3RyaW5nLmNhbGwoQ3RvcikgPT0gb2JqZWN0Q3RvclN0cmluZztcbn1cblxuZXhwb3J0IGRlZmF1bHQgaXNQbGFpbk9iamVjdDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/isPlainObject.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/isSet.js": +/*!*****************************************!*\ + !*** ./node_modules/lodash-es/isSet.js ***! + \*****************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseIsSet_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_baseIsSet.js */ \"./node_modules/lodash-es/_baseIsSet.js\");\n/* harmony import */ var _baseUnary_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_baseUnary.js */ \"./node_modules/lodash-es/_baseUnary.js\");\n/* harmony import */ var _nodeUtil_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_nodeUtil.js */ \"./node_modules/lodash-es/_nodeUtil.js\");\n\n\n\n\n/* Node.js helper references. */\nvar nodeIsSet = _nodeUtil_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] && _nodeUtil_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? (0,_baseUnary_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(nodeIsSet) : _baseIsSet_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isSet);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzU2V0LmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBd0M7QUFDQTtBQUNGOztBQUV0QztBQUNBLGdCQUFnQixvREFBUSxJQUFJLDBEQUFjOztBQUUxQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLHlEQUFTLGNBQWMscURBQVM7O0FBRXhELCtEQUFlLEtBQUssRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzU2V0LmpzPzAyZWQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGJhc2VJc1NldCBmcm9tICcuL19iYXNlSXNTZXQuanMnO1xuaW1wb3J0IGJhc2VVbmFyeSBmcm9tICcuL19iYXNlVW5hcnkuanMnO1xuaW1wb3J0IG5vZGVVdGlsIGZyb20gJy4vX25vZGVVdGlsLmpzJztcblxuLyogTm9kZS5qcyBoZWxwZXIgcmVmZXJlbmNlcy4gKi9cbnZhciBub2RlSXNTZXQgPSBub2RlVXRpbCAmJiBub2RlVXRpbC5pc1NldDtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgYFNldGAgb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4zLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgc2V0LCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNTZXQobmV3IFNldCk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc1NldChuZXcgV2Vha1NldCk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG52YXIgaXNTZXQgPSBub2RlSXNTZXQgPyBiYXNlVW5hcnkobm9kZUlzU2V0KSA6IGJhc2VJc1NldDtcblxuZXhwb3J0IGRlZmF1bHQgaXNTZXQ7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/isSet.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/isSymbol.js": +/*!********************************************!*\ + !*** ./node_modules/lodash-es/isSymbol.js ***! + \********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseGetTag_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_baseGetTag.js */ \"./node_modules/lodash-es/_baseGetTag.js\");\n/* harmony import */ var _isObjectLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isObjectLike.js */ \"./node_modules/lodash-es/isObjectLike.js\");\n\n\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n ((0,_isObjectLike_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value) && (0,_baseGetTag_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value) == symbolTag);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isSymbol);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzU3ltYm9sLmpzLmpzIiwibWFwcGluZ3MiOiI7OztBQUEwQztBQUNHOztBQUU3QztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2QsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSyw0REFBWSxXQUFXLDBEQUFVO0FBQ3RDOztBQUVBLCtEQUFlLFFBQVEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzU3ltYm9sLmpzP2E0OTkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGJhc2VHZXRUYWcgZnJvbSAnLi9fYmFzZUdldFRhZy5qcyc7XG5pbXBvcnQgaXNPYmplY3RMaWtlIGZyb20gJy4vaXNPYmplY3RMaWtlLmpzJztcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIHN5bWJvbFRhZyA9ICdbb2JqZWN0IFN5bWJvbF0nO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgU3ltYm9sYCBwcmltaXRpdmUgb3Igb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgc3ltYm9sLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNTeW1ib2woU3ltYm9sLml0ZXJhdG9yKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzU3ltYm9sKCdhYmMnKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzU3ltYm9sKHZhbHVlKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gJ3N5bWJvbCcgfHxcbiAgICAoaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBiYXNlR2V0VGFnKHZhbHVlKSA9PSBzeW1ib2xUYWcpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBpc1N5bWJvbDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/isSymbol.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/isTypedArray.js": +/*!************************************************!*\ + !*** ./node_modules/lodash-es/isTypedArray.js ***! + \************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseIsTypedArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_baseIsTypedArray.js */ \"./node_modules/lodash-es/_baseIsTypedArray.js\");\n/* harmony import */ var _baseUnary_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_baseUnary.js */ \"./node_modules/lodash-es/_baseUnary.js\");\n/* harmony import */ var _nodeUtil_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_nodeUtil.js */ \"./node_modules/lodash-es/_nodeUtil.js\");\n\n\n\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = _nodeUtil_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] && _nodeUtil_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? (0,_baseUnary_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(nodeIsTypedArray) : _baseIsTypedArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isTypedArray);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzVHlwZWRBcnJheS5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQXNEO0FBQ2Q7QUFDRjs7QUFFdEM7QUFDQSx1QkFBdUIsb0RBQVEsSUFBSSxpRUFBcUI7O0FBRXhEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2QsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQ0FBc0MseURBQVMscUJBQXFCLDREQUFnQjs7QUFFcEYsK0RBQWUsWUFBWSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNUeXBlZEFycmF5LmpzPzZmZTMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGJhc2VJc1R5cGVkQXJyYXkgZnJvbSAnLi9fYmFzZUlzVHlwZWRBcnJheS5qcyc7XG5pbXBvcnQgYmFzZVVuYXJ5IGZyb20gJy4vX2Jhc2VVbmFyeS5qcyc7XG5pbXBvcnQgbm9kZVV0aWwgZnJvbSAnLi9fbm9kZVV0aWwuanMnO1xuXG4vKiBOb2RlLmpzIGhlbHBlciByZWZlcmVuY2VzLiAqL1xudmFyIG5vZGVJc1R5cGVkQXJyYXkgPSBub2RlVXRpbCAmJiBub2RlVXRpbC5pc1R5cGVkQXJyYXk7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIHR5cGVkIGFycmF5LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMy4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgdHlwZWQgYXJyYXksIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc1R5cGVkQXJyYXkobmV3IFVpbnQ4QXJyYXkpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNUeXBlZEFycmF5KFtdKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbnZhciBpc1R5cGVkQXJyYXkgPSBub2RlSXNUeXBlZEFycmF5ID8gYmFzZVVuYXJ5KG5vZGVJc1R5cGVkQXJyYXkpIDogYmFzZUlzVHlwZWRBcnJheTtcblxuZXhwb3J0IGRlZmF1bHQgaXNUeXBlZEFycmF5O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/isTypedArray.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/keys.js": +/*!****************************************!*\ + !*** ./node_modules/lodash-es/keys.js ***! + \****************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _arrayLikeKeys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_arrayLikeKeys.js */ \"./node_modules/lodash-es/_arrayLikeKeys.js\");\n/* harmony import */ var _baseKeys_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_baseKeys.js */ \"./node_modules/lodash-es/_baseKeys.js\");\n/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isArrayLike.js */ \"./node_modules/lodash-es/isArrayLike.js\");\n\n\n\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return (0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object) ? (0,_arrayLikeKeys_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(object) : (0,_baseKeys_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(object);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (keys);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2tleXMuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFnRDtBQUNWO0FBQ0s7O0FBRTNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsYUFBYSxPQUFPO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUywyREFBVyxXQUFXLDZEQUFhLFdBQVcsd0RBQVE7QUFDL0Q7O0FBRUEsK0RBQWUsSUFBSSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMva2V5cy5qcz8yNmMwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhcnJheUxpa2VLZXlzIGZyb20gJy4vX2FycmF5TGlrZUtleXMuanMnO1xuaW1wb3J0IGJhc2VLZXlzIGZyb20gJy4vX2Jhc2VLZXlzLmpzJztcbmltcG9ydCBpc0FycmF5TGlrZSBmcm9tICcuL2lzQXJyYXlMaWtlLmpzJztcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IG9mIHRoZSBvd24gZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBvZiBgb2JqZWN0YC5cbiAqXG4gKiAqKk5vdGU6KiogTm9uLW9iamVjdCB2YWx1ZXMgYXJlIGNvZXJjZWQgdG8gb2JqZWN0cy4gU2VlIHRoZVxuICogW0VTIHNwZWNdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLW9iamVjdC5rZXlzKVxuICogZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBAc3RhdGljXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgT2JqZWN0XG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICogQGV4YW1wbGVcbiAqXG4gKiBmdW5jdGlvbiBGb28oKSB7XG4gKiAgIHRoaXMuYSA9IDE7XG4gKiAgIHRoaXMuYiA9IDI7XG4gKiB9XG4gKlxuICogRm9vLnByb3RvdHlwZS5jID0gMztcbiAqXG4gKiBfLmtleXMobmV3IEZvbyk7XG4gKiAvLyA9PiBbJ2EnLCAnYiddIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gKlxuICogXy5rZXlzKCdoaScpO1xuICogLy8gPT4gWycwJywgJzEnXVxuICovXG5mdW5jdGlvbiBrZXlzKG9iamVjdCkge1xuICByZXR1cm4gaXNBcnJheUxpa2Uob2JqZWN0KSA/IGFycmF5TGlrZUtleXMob2JqZWN0KSA6IGJhc2VLZXlzKG9iamVjdCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGtleXM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/keys.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/keysIn.js": +/*!******************************************!*\ + !*** ./node_modules/lodash-es/keysIn.js ***! + \******************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _arrayLikeKeys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_arrayLikeKeys.js */ \"./node_modules/lodash-es/_arrayLikeKeys.js\");\n/* harmony import */ var _baseKeysIn_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_baseKeysIn.js */ \"./node_modules/lodash-es/_baseKeysIn.js\");\n/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isArrayLike.js */ \"./node_modules/lodash-es/isArrayLike.js\");\n\n\n\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return (0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object) ? (0,_arrayLikeKeys_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(object, true) : (0,_baseKeysIn_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(object);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (keysIn);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2tleXNJbi5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQWdEO0FBQ047QUFDQzs7QUFFM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsT0FBTztBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVMsMkRBQVcsV0FBVyw2REFBYSxpQkFBaUIsMERBQVU7QUFDdkU7O0FBRUEsK0RBQWUsTUFBTSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMva2V5c0luLmpzPzFmYjgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFycmF5TGlrZUtleXMgZnJvbSAnLi9fYXJyYXlMaWtlS2V5cy5qcyc7XG5pbXBvcnQgYmFzZUtleXNJbiBmcm9tICcuL19iYXNlS2V5c0luLmpzJztcbmltcG9ydCBpc0FycmF5TGlrZSBmcm9tICcuL2lzQXJyYXlMaWtlLmpzJztcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IG9mIHRoZSBvd24gYW5kIGluaGVyaXRlZCBlbnVtZXJhYmxlIHByb3BlcnR5IG5hbWVzIG9mIGBvYmplY3RgLlxuICpcbiAqICoqTm90ZToqKiBOb24tb2JqZWN0IHZhbHVlcyBhcmUgY29lcmNlZCB0byBvYmplY3RzLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMy4wLjBcbiAqIEBjYXRlZ29yeSBPYmplY3RcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMuXG4gKiBAZXhhbXBsZVxuICpcbiAqIGZ1bmN0aW9uIEZvbygpIHtcbiAqICAgdGhpcy5hID0gMTtcbiAqICAgdGhpcy5iID0gMjtcbiAqIH1cbiAqXG4gKiBGb28ucHJvdG90eXBlLmMgPSAzO1xuICpcbiAqIF8ua2V5c0luKG5ldyBGb28pO1xuICogLy8gPT4gWydhJywgJ2InLCAnYyddIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gKi9cbmZ1bmN0aW9uIGtleXNJbihvYmplY3QpIHtcbiAgcmV0dXJuIGlzQXJyYXlMaWtlKG9iamVjdCkgPyBhcnJheUxpa2VLZXlzKG9iamVjdCwgdHJ1ZSkgOiBiYXNlS2V5c0luKG9iamVjdCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGtleXNJbjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/keysIn.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/memoize.js": +/*!*******************************************!*\ + !*** ./node_modules/lodash-es/memoize.js ***! + \*******************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _MapCache_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_MapCache.js */ \"./node_modules/lodash-es/_MapCache.js\");\n\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || _MapCache_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = _MapCache_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (memoize);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL21lbW9pemUuanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBc0M7O0FBRXRDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsVUFBVTtBQUNyQixXQUFXLFVBQVU7QUFDckIsYUFBYSxVQUFVO0FBQ3ZCO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEIsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUNBQXlDLG9EQUFRO0FBQ2pEO0FBQ0E7O0FBRUE7QUFDQSxnQkFBZ0Isb0RBQVE7O0FBRXhCLCtEQUFlLE9BQU8sRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL21lbW9pemUuanM/ODIwNSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTWFwQ2FjaGUgZnJvbSAnLi9fTWFwQ2FjaGUuanMnO1xuXG4vKiogRXJyb3IgbWVzc2FnZSBjb25zdGFudHMuICovXG52YXIgRlVOQ19FUlJPUl9URVhUID0gJ0V4cGVjdGVkIGEgZnVuY3Rpb24nO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IG1lbW9pemVzIHRoZSByZXN1bHQgb2YgYGZ1bmNgLiBJZiBgcmVzb2x2ZXJgIGlzXG4gKiBwcm92aWRlZCwgaXQgZGV0ZXJtaW5lcyB0aGUgY2FjaGUga2V5IGZvciBzdG9yaW5nIHRoZSByZXN1bHQgYmFzZWQgb24gdGhlXG4gKiBhcmd1bWVudHMgcHJvdmlkZWQgdG8gdGhlIG1lbW9pemVkIGZ1bmN0aW9uLiBCeSBkZWZhdWx0LCB0aGUgZmlyc3QgYXJndW1lbnRcbiAqIHByb3ZpZGVkIHRvIHRoZSBtZW1vaXplZCBmdW5jdGlvbiBpcyB1c2VkIGFzIHRoZSBtYXAgY2FjaGUga2V5LiBUaGUgYGZ1bmNgXG4gKiBpcyBpbnZva2VkIHdpdGggdGhlIGB0aGlzYCBiaW5kaW5nIG9mIHRoZSBtZW1vaXplZCBmdW5jdGlvbi5cbiAqXG4gKiAqKk5vdGU6KiogVGhlIGNhY2hlIGlzIGV4cG9zZWQgYXMgdGhlIGBjYWNoZWAgcHJvcGVydHkgb24gdGhlIG1lbW9pemVkXG4gKiBmdW5jdGlvbi4gSXRzIGNyZWF0aW9uIG1heSBiZSBjdXN0b21pemVkIGJ5IHJlcGxhY2luZyB0aGUgYF8ubWVtb2l6ZS5DYWNoZWBcbiAqIGNvbnN0cnVjdG9yIHdpdGggb25lIHdob3NlIGluc3RhbmNlcyBpbXBsZW1lbnQgdGhlXG4gKiBbYE1hcGBdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXByb3BlcnRpZXMtb2YtdGhlLW1hcC1wcm90b3R5cGUtb2JqZWN0KVxuICogbWV0aG9kIGludGVyZmFjZSBvZiBgY2xlYXJgLCBgZGVsZXRlYCwgYGdldGAsIGBoYXNgLCBhbmQgYHNldGAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBoYXZlIGl0cyBvdXRwdXQgbWVtb2l6ZWQuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbcmVzb2x2ZXJdIFRoZSBmdW5jdGlvbiB0byByZXNvbHZlIHRoZSBjYWNoZSBrZXkuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBtZW1vaXplZCBmdW5jdGlvbi5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdCA9IHsgJ2EnOiAxLCAnYic6IDIgfTtcbiAqIHZhciBvdGhlciA9IHsgJ2MnOiAzLCAnZCc6IDQgfTtcbiAqXG4gKiB2YXIgdmFsdWVzID0gXy5tZW1vaXplKF8udmFsdWVzKTtcbiAqIHZhbHVlcyhvYmplY3QpO1xuICogLy8gPT4gWzEsIDJdXG4gKlxuICogdmFsdWVzKG90aGVyKTtcbiAqIC8vID0+IFszLCA0XVxuICpcbiAqIG9iamVjdC5hID0gMjtcbiAqIHZhbHVlcyhvYmplY3QpO1xuICogLy8gPT4gWzEsIDJdXG4gKlxuICogLy8gTW9kaWZ5IHRoZSByZXN1bHQgY2FjaGUuXG4gKiB2YWx1ZXMuY2FjaGUuc2V0KG9iamVjdCwgWydhJywgJ2InXSk7XG4gKiB2YWx1ZXMob2JqZWN0KTtcbiAqIC8vID0+IFsnYScsICdiJ11cbiAqXG4gKiAvLyBSZXBsYWNlIGBfLm1lbW9pemUuQ2FjaGVgLlxuICogXy5tZW1vaXplLkNhY2hlID0gV2Vha01hcDtcbiAqL1xuZnVuY3Rpb24gbWVtb2l6ZShmdW5jLCByZXNvbHZlcikge1xuICBpZiAodHlwZW9mIGZ1bmMgIT0gJ2Z1bmN0aW9uJyB8fCAocmVzb2x2ZXIgIT0gbnVsbCAmJiB0eXBlb2YgcmVzb2x2ZXIgIT0gJ2Z1bmN0aW9uJykpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEZVTkNfRVJST1JfVEVYVCk7XG4gIH1cbiAgdmFyIG1lbW9pemVkID0gZnVuY3Rpb24oKSB7XG4gICAgdmFyIGFyZ3MgPSBhcmd1bWVudHMsXG4gICAgICAgIGtleSA9IHJlc29sdmVyID8gcmVzb2x2ZXIuYXBwbHkodGhpcywgYXJncykgOiBhcmdzWzBdLFxuICAgICAgICBjYWNoZSA9IG1lbW9pemVkLmNhY2hlO1xuXG4gICAgaWYgKGNhY2hlLmhhcyhrZXkpKSB7XG4gICAgICByZXR1cm4gY2FjaGUuZ2V0KGtleSk7XG4gICAgfVxuICAgIHZhciByZXN1bHQgPSBmdW5jLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgIG1lbW9pemVkLmNhY2hlID0gY2FjaGUuc2V0KGtleSwgcmVzdWx0KSB8fCBjYWNoZTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9O1xuICBtZW1vaXplZC5jYWNoZSA9IG5ldyAobWVtb2l6ZS5DYWNoZSB8fCBNYXBDYWNoZSk7XG4gIHJldHVybiBtZW1vaXplZDtcbn1cblxuLy8gRXhwb3NlIGBNYXBDYWNoZWAuXG5tZW1vaXplLkNhY2hlID0gTWFwQ2FjaGU7XG5cbmV4cG9ydCBkZWZhdWx0IG1lbW9pemU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/memoize.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/stubArray.js": +/*!*********************************************!*\ + !*** ./node_modules/lodash-es/stubArray.js ***! + \*********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (stubArray);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3N0dWJBcnJheS5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLE9BQU87QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWUsU0FBUyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvc3R1YkFycmF5LmpzP2VlYTEiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlzIG1ldGhvZCByZXR1cm5zIGEgbmV3IGVtcHR5IGFycmF5LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4xMy4wXG4gKiBAY2F0ZWdvcnkgVXRpbFxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZW1wdHkgYXJyYXkuXG4gKiBAZXhhbXBsZVxuICpcbiAqIHZhciBhcnJheXMgPSBfLnRpbWVzKDIsIF8uc3R1YkFycmF5KTtcbiAqXG4gKiBjb25zb2xlLmxvZyhhcnJheXMpO1xuICogLy8gPT4gW1tdLCBbXV1cbiAqXG4gKiBjb25zb2xlLmxvZyhhcnJheXNbMF0gPT09IGFycmF5c1sxXSk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBzdHViQXJyYXkoKSB7XG4gIHJldHVybiBbXTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgc3R1YkFycmF5O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/stubArray.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/stubFalse.js": +/*!*********************************************!*\ + !*** ./node_modules/lodash-es/stubFalse.js ***! + \*********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (stubFalse);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3N0dWJGYWxzZS5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZSxTQUFTLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9zdHViRmFsc2UuanM/MGU3ZiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoaXMgbWV0aG9kIHJldHVybnMgYGZhbHNlYC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMTMuMFxuICogQGNhdGVnb3J5IFV0aWxcbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8udGltZXMoMiwgXy5zdHViRmFsc2UpO1xuICogLy8gPT4gW2ZhbHNlLCBmYWxzZV1cbiAqL1xuZnVuY3Rpb24gc3R1YkZhbHNlKCkge1xuICByZXR1cm4gZmFsc2U7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHN0dWJGYWxzZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/stubFalse.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/toPath.js": +/*!******************************************!*\ + !*** ./node_modules/lodash-es/toPath.js ***! + \******************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _arrayMap_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_arrayMap.js */ \"./node_modules/lodash-es/_arrayMap.js\");\n/* harmony import */ var _copyArray_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_copyArray.js */ \"./node_modules/lodash-es/_copyArray.js\");\n/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isArray.js */ \"./node_modules/lodash-es/isArray.js\");\n/* harmony import */ var _isSymbol_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./isSymbol.js */ \"./node_modules/lodash-es/isSymbol.js\");\n/* harmony import */ var _stringToPath_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./_stringToPath.js */ \"./node_modules/lodash-es/_stringToPath.js\");\n/* harmony import */ var _toKey_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_toKey.js */ \"./node_modules/lodash-es/_toKey.js\");\n/* harmony import */ var _toString_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./toString.js */ \"./node_modules/lodash-es/toString.js\");\n\n\n\n\n\n\n\n\n/**\n * Converts `value` to a property path array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {*} value The value to convert.\n * @returns {Array} Returns the new property path array.\n * @example\n *\n * _.toPath('a.b.c');\n * // => ['a', 'b', 'c']\n *\n * _.toPath('a[0].b.c');\n * // => ['a', '0', 'b', 'c']\n */\nfunction toPath(value) {\n if ((0,_isArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value)) {\n return (0,_arrayMap_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value, _toKey_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n }\n return (0,_isSymbol_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(value) ? [value] : (0,_copyArray_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])((0,_stringToPath_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])((0,_toString_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(value)));\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (toPath);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3RvUGF0aC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFzQztBQUNFO0FBQ0w7QUFDRTtBQUNTO0FBQ2Q7QUFDSzs7QUFFckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxhQUFhLE9BQU87QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSx1REFBTztBQUNiLFdBQVcsd0RBQVEsUUFBUSxpREFBSztBQUNoQztBQUNBLFNBQVMsd0RBQVEsb0JBQW9CLHlEQUFTLENBQUMsNERBQVksQ0FBQyx3REFBUTtBQUNwRTs7QUFFQSwrREFBZSxNQUFNLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy90b1BhdGguanM/YjAyZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXJyYXlNYXAgZnJvbSAnLi9fYXJyYXlNYXAuanMnO1xuaW1wb3J0IGNvcHlBcnJheSBmcm9tICcuL19jb3B5QXJyYXkuanMnO1xuaW1wb3J0IGlzQXJyYXkgZnJvbSAnLi9pc0FycmF5LmpzJztcbmltcG9ydCBpc1N5bWJvbCBmcm9tICcuL2lzU3ltYm9sLmpzJztcbmltcG9ydCBzdHJpbmdUb1BhdGggZnJvbSAnLi9fc3RyaW5nVG9QYXRoLmpzJztcbmltcG9ydCB0b0tleSBmcm9tICcuL190b0tleS5qcyc7XG5pbXBvcnQgdG9TdHJpbmcgZnJvbSAnLi90b1N0cmluZy5qcyc7XG5cbi8qKlxuICogQ29udmVydHMgYHZhbHVlYCB0byBhIHByb3BlcnR5IHBhdGggYXJyYXkuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IFV0aWxcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBwcm9wZXJ0eSBwYXRoIGFycmF5LlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLnRvUGF0aCgnYS5iLmMnKTtcbiAqIC8vID0+IFsnYScsICdiJywgJ2MnXVxuICpcbiAqIF8udG9QYXRoKCdhWzBdLmIuYycpO1xuICogLy8gPT4gWydhJywgJzAnLCAnYicsICdjJ11cbiAqL1xuZnVuY3Rpb24gdG9QYXRoKHZhbHVlKSB7XG4gIGlmIChpc0FycmF5KHZhbHVlKSkge1xuICAgIHJldHVybiBhcnJheU1hcCh2YWx1ZSwgdG9LZXkpO1xuICB9XG4gIHJldHVybiBpc1N5bWJvbCh2YWx1ZSkgPyBbdmFsdWVdIDogY29weUFycmF5KHN0cmluZ1RvUGF0aCh0b1N0cmluZyh2YWx1ZSkpKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgdG9QYXRoO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/toPath.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash-es/toString.js": +/*!********************************************!*\ + !*** ./node_modules/lodash-es/toString.js ***! + \********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _baseToString_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseToString.js */ \"./node_modules/lodash-es/_baseToString.js\");\n\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : (0,_baseToString_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (toString);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3RvU3RyaW5nLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQThDOztBQUU5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2QsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4Qiw0REFBWTtBQUMxQzs7QUFFQSwrREFBZSxRQUFRLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy90b1N0cmluZy5qcz81OTEzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBiYXNlVG9TdHJpbmcgZnJvbSAnLi9fYmFzZVRvU3RyaW5nLmpzJztcblxuLyoqXG4gKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGEgc3RyaW5nLiBBbiBlbXB0eSBzdHJpbmcgaXMgcmV0dXJuZWQgZm9yIGBudWxsYFxuICogYW5kIGB1bmRlZmluZWRgIHZhbHVlcy4gVGhlIHNpZ24gb2YgYC0wYCBpcyBwcmVzZXJ2ZWQuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgc3RyaW5nLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLnRvU3RyaW5nKG51bGwpO1xuICogLy8gPT4gJydcbiAqXG4gKiBfLnRvU3RyaW5nKC0wKTtcbiAqIC8vID0+ICctMCdcbiAqXG4gKiBfLnRvU3RyaW5nKFsxLCAyLCAzXSk7XG4gKiAvLyA9PiAnMSwyLDMnXG4gKi9cbmZ1bmN0aW9uIHRvU3RyaW5nKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSA9PSBudWxsID8gJycgOiBiYXNlVG9TdHJpbmcodmFsdWUpO1xufVxuXG5leHBvcnQgZGVmYXVsdCB0b1N0cmluZztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lodash-es/toString.js\n"); + +/***/ }), + +/***/ "./src/data/sections/contact-header.json": +/*!***********************************************!*\ + !*** ./src/data/sections/contact-header.json ***! + \***********************************************/ +/***/ (function(module) { + +"use strict"; +module.exports = JSON.parse('{"id":1,"title":{"first":"Let\'s talk","second":"about your project."},"content":"Feel free to ask me any question or let’s do to talk about our future collaboration."}'); + +/***/ }), + +/***/ "./src/data/sections/form-info.json": +/*!******************************************!*\ + !*** ./src/data/sections/form-info.json ***! + \******************************************/ +/***/ (function(module) { + +"use strict"; +module.exports = JSON.parse('{"id":1,"title":"Let\'s Talk.","email":"hello@businesshub.abudhabi","phone":"+971 26340404","location":{"first":"Abu Dhabi, Baghdad Street","second":"Al Dana area, United Arab Emirates"}}'); + +/***/ }) + +}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); } +/******/ __webpack_require__.O(0, ["pages/_app","main"], function() { return __webpack_exec__("./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2Fcontact%2Fcontact-light&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Ccontact%5Ccontact-light.jsx!"); }); +/******/ var __webpack_exports__ = __webpack_require__.O(); +/******/ _N_E = __webpack_exports__; +/******/ } +]); \ No newline at end of file diff --git a/.next/static/chunks/pages/homepage/home2-light.js b/.next/static/chunks/pages/homepage/home2-light.js new file mode 100644 index 0000000..433f64f --- /dev/null +++ b/.next/static/chunks/pages/homepage/home2-light.js @@ -0,0 +1,893 @@ +/* + * 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/). + */ +(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["pages/homepage/home2-light"],{ + +/***/ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js": +/*!**********************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/interopRequireDefault.js ***! + \**********************************************************************/ +/***/ (function(module) { + +eval("function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHQuanMuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHlCQUF5QixtQkFBbUIseUJBQXlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2ludGVyb3BSZXF1aXJlRGVmYXVsdC5qcz9lZThjIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgXCJkZWZhdWx0XCI6IG9ialxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQ7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/interopRequireDefault.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/link.js": +/*!***********************************************!*\ + !*** ./node_modules/next/dist/client/link.js ***! + \***********************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _slicedToArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nvar _s = $RefreshSig$();\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _router = __webpack_require__(/*! ../shared/lib/router/router */ \"./node_modules/next/dist/shared/lib/router/router.js\");\n\nvar _router1 = __webpack_require__(/*! ./router */ \"./node_modules/next/dist/client/router.js\");\n\nvar _useIntersection = __webpack_require__(/*! ./use-intersection */ \"./node_modules/next/dist/client/use-intersection.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar prefetched = {};\n\nfunction prefetch(router, href, as, options) {\n if ( false || !router) return;\n if (!(0, _router).isLocalURL(href)) return; // Prefetch the JSON 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\n router.prefetch(href, as, options)[\"catch\"](function (err) {\n if (true) {\n // rethrow to show invalid URL errors\n throw err;\n }\n });\n var curLocale = options && typeof options.locale !== 'undefined' ? options.locale : router && router.locale; // Join on an invalid URI character\n\n prefetched[href + '%' + as + (curLocale ? '%' + curLocale : '')] = true;\n}\n\nfunction isModifiedEvent(event) {\n var target = event.currentTarget.target;\n return target && target !== '_self' || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey || event.nativeEvent && event.nativeEvent.which === 2;\n}\n\nfunction linkClicked(e, router, href, as, replace, shallow, scroll, locale) {\n var nodeName = e.currentTarget.nodeName;\n\n if (nodeName === 'A' && (isModifiedEvent(e) || !(0, _router).isLocalURL(href))) {\n // ignore click for browser’s default behavior\n return;\n }\n\n e.preventDefault(); // avoid scroll for urls with anchor refs\n\n if (scroll == null && as.indexOf('#') >= 0) {\n scroll = false;\n } // replace state instead of push if prop is present\n\n\n router[replace ? 'replace' : 'push'](href, as, {\n shallow: shallow,\n locale: locale,\n scroll: scroll\n });\n}\n\nfunction Link(props) {\n _s();\n\n if (true) {\n var createPropError = function createPropError(args) {\n return new Error(\"Failed prop type: The prop `\".concat(args.key, \"` expects a \").concat(args.expected, \" in `<Link>`, but got `\").concat(args.actual, \"` instead.\") + ( true ? \"\\nOpen your browser's console to view the Component stack trace.\" : 0));\n }; // TypeScript trick for type-guarding:\n\n\n var requiredPropsGuard = {\n href: true\n };\n var requiredProps = Object.keys(requiredPropsGuard);\n requiredProps.forEach(function (key) {\n if (key === 'href') {\n if (props[key] == null || typeof props[key] !== 'string' && typeof props[key] !== 'object') {\n throw createPropError({\n key: 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 var _ = key;\n }\n }); // TypeScript trick for type-guarding:\n\n var optionalPropsGuard = {\n as: true,\n replace: true,\n scroll: true,\n shallow: true,\n passHref: true,\n prefetch: true,\n locale: true\n };\n var optionalProps = Object.keys(optionalPropsGuard);\n optionalProps.forEach(function (key) {\n var valType = typeof props[key];\n\n if (key === 'as') {\n if (props[key] && valType !== 'string' && valType !== 'object') {\n throw createPropError({\n key: key,\n expected: '`string` or `object`',\n actual: valType\n });\n }\n } else if (key === 'locale') {\n if (props[key] && valType !== 'string') {\n throw createPropError({\n key: key,\n expected: '`string`',\n actual: valType\n });\n }\n } else if (key === 'replace' || key === 'scroll' || key === 'shallow' || key === 'passHref' || key === 'prefetch') {\n if (props[key] != null && valType !== 'boolean') {\n throw createPropError({\n key: key,\n expected: '`boolean`',\n actual: valType\n });\n }\n } else {\n // TypeScript trick for type-guarding:\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var _ = key;\n }\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\n var hasWarned = _react[\"default\"].useRef(false);\n\n if (props.prefetch && !hasWarned.current) {\n hasWarned.current = true;\n console.warn('Next.js auto-prefetches automatically based on viewport. The prefetch attribute is no longer needed. More: https://nextjs.org/docs/messages/prefetch-true-deprecated');\n }\n }\n\n var p = props.prefetch !== false;\n var router = (0, _router1).useRouter();\n\n var _react$default$useMem = _react[\"default\"].useMemo(function () {\n var _resolveHref = (0, _router).resolveHref(router, props.href, true),\n _resolveHref2 = _slicedToArray(_resolveHref, 2),\n resolvedHref = _resolveHref2[0],\n resolvedAs = _resolveHref2[1];\n\n return {\n href: resolvedHref,\n as: props.as ? (0, _router).resolveHref(router, props.as) : resolvedAs || resolvedHref\n };\n }, [router, props.href, props.as]),\n href = _react$default$useMem.href,\n as = _react$default$useMem.as;\n\n var children = props.children,\n replace = props.replace,\n shallow = props.shallow,\n scroll = props.scroll,\n locale = props.locale; // Deprecated. Warning shown by propType check. If the children provided is a string (<Link>example</Link>) we wrap it in an <a> tag\n\n if (typeof children === 'string') {\n children = /*#__PURE__*/_react[\"default\"].createElement(\"a\", null, children);\n } // This will return the first child, if multiple are provided it will throw an error\n\n\n var child;\n\n if (true) {\n try {\n child = _react[\"default\"].Children.only(children);\n } catch (err) {\n throw new Error(\"Multiple children were passed to <Link> with `href` of `\".concat(props.href, \"` but only one child is supported https://nextjs.org/docs/messages/link-multiple-children\") + ( true ? \" \\nOpen your browser's console to view the Component stack trace.\" : 0));\n }\n } else {}\n\n var childRef = child && typeof child === 'object' && child.ref;\n\n var _useIntersection2 = (0, _useIntersection).useIntersection({\n rootMargin: '200px'\n }),\n _useIntersection3 = _slicedToArray(_useIntersection2, 2),\n setIntersectionRef = _useIntersection3[0],\n isVisible = _useIntersection3[1];\n\n var setRef = _react[\"default\"].useCallback(function (el) {\n setIntersectionRef(el);\n\n if (childRef) {\n if (typeof childRef === 'function') childRef(el);else if (typeof childRef === 'object') {\n childRef.current = el;\n }\n }\n }, [childRef, setIntersectionRef]);\n\n _react[\"default\"].useEffect(function () {\n var shouldPrefetch = isVisible && p && (0, _router).isLocalURL(href);\n var curLocale = typeof locale !== 'undefined' ? locale : router && router.locale;\n var isPrefetched = prefetched[href + '%' + as + (curLocale ? '%' + curLocale : '')];\n\n if (shouldPrefetch && !isPrefetched) {\n prefetch(router, href, as, {\n locale: curLocale\n });\n }\n }, [as, href, isVisible, locale, p, router]);\n\n var childProps = {\n ref: setRef,\n onClick: function onClick(e) {\n if (child.props && typeof child.props.onClick === 'function') {\n child.props.onClick(e);\n }\n\n if (!e.defaultPrevented) {\n linkClicked(e, router, href, as, replace, shallow, scroll, locale);\n }\n }\n };\n\n childProps.onMouseEnter = function (e) {\n if (!(0, _router).isLocalURL(href)) return;\n\n if (child.props && typeof child.props.onMouseEnter === 'function') {\n child.props.onMouseEnter(e);\n }\n\n prefetch(router, href, as, {\n priority: true\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\n\n if (props.passHref || child.type === 'a' && !('href' in child.props)) {\n var curLocale = typeof locale !== 'undefined' ? locale : router && router.locale; // we only render domain locales if we are currently on a domain locale\n // so that locale links are still visitable in development/preview envs\n\n var localeDomain = router && router.isLocaleDomain && (0, _router).getDomainLocale(as, curLocale, router && router.locales, router && router.domainLocales);\n childProps.href = localeDomain || (0, _router).addBasePath((0, _router).addLocale(as, curLocale, router && router.defaultLocale));\n }\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(child, childProps);\n}\n\n_s(Link, \"PYHstBoZE4p1pf5wc1Vw4fTzvCU=\", true);\n\n_c = Link;\nvar _default = Link;\nexports[\"default\"] = _default;\n\nvar _c;\n\n$RefreshReg$(_c, \"Link\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9saW5rLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7Ozs7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELGtCQUFBLEdBQWtCLEtBQUssQ0FBdkI7O0FBQ0EsSUFBSUUsTUFBTSxHQUFHQyxzQkFBc0IsQ0FBQ0MsbUJBQU8sQ0FBQyw0Q0FBRCxDQUFSLENBQW5DOztBQUNBLElBQUlDLE9BQU8sR0FBR0QsbUJBQU8sQ0FBQyx5RkFBRCxDQUFyQjs7QUFDQSxJQUFJRSxRQUFRLEdBQUdGLG1CQUFPLENBQUMsMkRBQUQsQ0FBdEI7O0FBQ0EsSUFBSUcsZ0JBQWdCLEdBQUdILG1CQUFPLENBQUMsK0VBQUQsQ0FBOUI7O0FBQ0EsU0FBU0Qsc0JBQVQsQ0FBZ0NLLEdBQWhDLEVBQXFDO0FBQ2pDLFNBQU9BLEdBQUcsSUFBSUEsR0FBRyxDQUFDQyxVQUFYLEdBQXdCRCxHQUF4QixHQUE4QjtBQUNqQyxlQUFTQTtBQUR3QixHQUFyQztBQUdIOztBQUNELElBQU1FLFVBQVUsR0FBRyxFQUFuQjs7QUFFQSxTQUFTQyxRQUFULENBQWtCQyxNQUFsQixFQUEwQkMsSUFBMUIsRUFBZ0NDLEVBQWhDLEVBQW9DQyxPQUFwQyxFQUE2QztBQUN6QyxNQUFJLFVBQWlDLENBQUNILE1BQXRDLEVBQThDO0FBQzlDLE1BQUksQ0FBQyxDQUFDLEdBQUdQLE9BQUosRUFBYVcsVUFBYixDQUF3QkgsSUFBeEIsQ0FBTCxFQUFvQyxPQUZLLENBR3pDO0FBQ0E7QUFDQTtBQUNBOztBQUNBRCxFQUFBQSxNQUFNLENBQUNELFFBQVAsQ0FBZ0JFLElBQWhCLEVBQXNCQyxFQUF0QixFQUEwQkMsT0FBMUIsV0FBeUMsVUFBQ0UsR0FBRCxFQUFPO0FBQzVDLGNBQTJDO0FBQ3ZDO0FBQ0EsWUFBTUEsR0FBTjtBQUNIO0FBQ0osR0FMRDtBQU1BLE1BQU1DLFNBQVMsR0FBR0gsT0FBTyxJQUFJLE9BQU9B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Q2dGLE9BQTdELEVBQXNFaEYsTUFBTSxJQUFJQSxNQUFNLENBQUNpRixhQUF2RixDQUF4RDtBQUNBVixJQUFBQSxVQUFVLENBQUN0RSxJQUFYLEdBQWtCNEUsWUFBWSxJQUFJLENBQUMsR0FBR3BGLE9BQUosRUFBYXlGLFdBQWIsQ0FBeUIsQ0FBQyxHQUFHekYsT0FBSixFQUFhMEYsU0FBYixDQUF1QmpGLEVBQXZCLEVBQTJCSSxTQUEzQixFQUFzQ04sTUFBTSxJQUFJQSxNQUFNLENBQUNvRixhQUF2RCxDQUF6QixDQUFsQztBQUNIOztBQUNELFNBQU8sYUFBYzlGLE1BQU0sV0FBTixDQUFlK0YsWUFBZixDQUE0QjdCLEtBQTVCLEVBQW1DZSxVQUFuQyxDQUFyQjtBQUNIOztHQXhLUTdDOztLQUFBQTtBQXlLVCxJQUFJNEQsUUFBUSxHQUFHNUQsSUFBZjtBQUNBdEMsa0JBQUEsR0FBa0JrRyxRQUFsQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9saW5rLmpzP2U0ZjkiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7XG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xudmFyIF9yb3V0ZXIgPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9yb3V0ZXIvcm91dGVyXCIpO1xudmFyIF9yb3V0ZXIxID0gcmVxdWlyZShcIi4vcm91dGVyXCIpO1xudmFyIF91c2VJbnRlcnNlY3Rpb24gPSByZXF1aXJlKFwiLi91c2UtaW50ZXJzZWN0aW9uXCIpO1xuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuY29uc3QgcHJlZmV0Y2hlZCA9IHtcbn07XG5mdW5jdGlvbiBwcmVmZXRjaChyb3V0ZXIsIGhyZWYsIGFzLCBvcHRpb25zKSB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8ICFyb3V0ZXIpIHJldHVybjtcbiAgICBpZiAoISgwLCBfcm91dGVyKS5pc0xvY2FsVVJMKGhyZWYpKSByZXR1cm47XG4gICAgLy8gUHJlZmV0Y2ggdGhlIEpTT04gcGFnZSBpZiBhc2tlZCAob25seSBpbiB0aGUgY2xpZW50KVxuICAgIC8vIFdlIG5lZWQgdG8gaGFuZGxlIGEgcHJlZmV0Y2ggZXJyb3IgaGVyZSBzaW5jZSB3ZSBtYXkgYmVcbiAgICAvLyBsb2FkaW5nIHdpdGggcHJpb3JpdHkgd2hpY2ggY2FuIHJlamVjdCBidXQgd2UgZG9uJ3RcbiAgICAvLyB3YW50IHRvIGZvcmNlIG5hdmlnYXRpb24gc2luY2UgdGhpcyBpcyBvbmx5IGEgcHJlZmV0Y2hcbiAgICByb3V0ZXIucHJlZmV0Y2goaHJlZiwgYXMsIG9wdGlvbnMpLmNhdGNoKChlcnIpPT57XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICAvLyByZXRocm93IHRvIHNob3cgaW52YWxpZCBVUkwgZXJyb3JzXG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBjdXJMb2NhbGUgPSBvcHRpb25zICYmIHR5cGVvZiBvcHRpb25zLmxvY2FsZSAhPT0gJ3VuZGVmaW5lZCcgPyBvcHRpb25zLmxvY2FsZSA6IHJvdXRlciAmJiByb3V0ZXIubG9jYWxlO1xuICAgIC8vIEpvaW4gb24gYW4gaW52YWxpZCBVUkkgY2hhcmFjdGVyXG4gICAgcHJlZmV0Y2hlZFtocmVmICsgJyUnICsgYXMgKyAoY3VyTG9jYWxlID8gJyUnICsgY3VyTG9jYWxlIDogJycpXSA9IHRydWU7XG59XG5mdW5jdGlvbiBpc01vZGlmaWVkRXZlbnQoZXZlbnQpIHtcbiAgICBjb25zdCB7IHRhcmdldCAgfSA9IGV2ZW50LmN1cnJlbnRUYXJnZXQ7XG4gICAgcmV0dXJuIHRhcmdldCAmJiB0YXJnZXQgIT09ICdfc2VsZicgfHwgZXZlbnQubWV0YUtleSB8fCBldmVudC5jdHJsS2V5IHx8IGV2ZW50LnNoaWZ0S2V5IHx8IGV2ZW50LmFsdEtleSB8fCBldmVudC5uYXRpdmVFdmVudCAmJiBldmVudC5uYXRpdmVFdmVudC53aGljaCA9PT0gMjtcbn1cbmZ1bmN0aW9uIGxpbmtDbGlja2VkKGUsIHJvdXRlciwgaHJlZiwgYXMsIHJlcGxhY2UsIHNoYWxsb3csIHNjcm9sbCwgbG9jYWxlKSB7XG4gICAgY29uc3QgeyBub2RlTmFtZSAgfSA9IGUuY3VycmVudFRhcmdldDtcbiAgICBpZiAobm9kZU5hbWUgPT09ICdBJyAmJiAoaXNNb2RpZmllZEV2ZW50KGUpIHx8ICEoMCwgX3JvdXRlcikuaXNMb2NhbFVSTChocmVmKSkpIHtcbiAgICAgICAgLy8gaWdub3JlIGNsaWNrIGZvciBicm93c2Vy4oCZcyBkZWZhdWx0IGJlaGF2aW9yXG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIC8vICBhdm9pZCBzY3JvbGwgZm9yIHVybHMgd2l0aCBhbmNob3IgcmVmc1xuICAgIGlmIChzY3JvbGwgPT0gbnVsbCAmJiBhcy5pbmRleE9mKCcjJykgPj0gMCkge1xuICAgICAgICBzY3JvbGwgPSBmYWxzZTtcbiAgICB9XG4gICAgLy8gcmVwbGFjZSBzdGF0ZSBpbnN0ZWFkIG9mIHB1c2ggaWYgcHJvcCBpcyBwcmVzZW50XG4gICAgcm91dGVyW3JlcGxhY2UgPyAncmVwbGFjZScgOiAncHVzaCddKGhyZWYsIGFzLCB7XG4gICAgICAgIHNoYWxsb3csXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgc2Nyb2xsXG4gICAgfSk7XG59XG5mdW5jdGlvbiBMaW5rKHByb3BzKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgZnVuY3Rpb24gY3JlYXRlUHJvcEVycm9yKGFyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgRXJyb3IoYEZhaWxlZCBwcm9wIHR5cGU6IFRoZSBwcm9wIFxcYCR7YXJncy5rZXl9XFxgIGV4cGVjdHMgYSAke2FyZ3MuZXhwZWN0ZWR9IGluIFxcYDxMaW5rPlxcYCwgYnV0IGdvdCBcXGAke2FyZ3MuYWN0dWFsfVxcYCBpbnN0ZWFkLmAgKyAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgPyBcIlxcbk9wZW4geW91ciBicm93c2VyJ3MgY29uc29sZSB0byB2aWV3IHRoZSBDb21wb25lbnQgc3RhY2sgdHJhY2UuXCIgOiAnJykpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFR5cGVTY3JpcHQgdHJpY2sgZm9yIHR5cGUtZ3VhcmRpbmc6XG4gICAgICAgIGNvbnN0IHJlcXVpcmVkUHJvcHNHdWFyZCA9IHtcbiAgICAgICAgICAgIGhyZWY6IHRydWVcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgcmVxdWlyZWRQcm9wcyA9IE9iamVjdC5rZXlzKHJlcXVpcmVkUHJvcHNHdWFyZCk7XG4gICAgICAgIHJlcXVpcmVkUHJvcHMuZm9yRWFjaCgoa2V5KT0+e1xuICAgICAgICAgICAgaWYgKGtleSA9PT0gJ2hyZWYnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHByb3BzW2tleV0gPT0gbnVsbCB8fCB0eXBlb2YgcHJvcHNba2V5XSAhPT0gJ3N0cmluZycgJiYgdHlwZW9mIHByb3BzW2tleV0gIT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGNyZWF0ZVByb3BFcnJvcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZDogJ2BzdHJpbmdgIG9yIGBvYmplY3RgJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbDogcHJvcHNba2V5XSA9PT0gbnVsbCA/ICdudWxsJyA6IHR5cGVvZiBwcm9wc1trZXldXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gVHlwZVNjcmlwdCB0cmljayBmb3IgdHlwZS1ndWFyZGluZzpcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgICAgICAgICAgICAgY29uc3QgXyA9IGtleTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIC8vIFR5cGVTY3JpcHQgdHJpY2sgZm9yIHR5cGUtZ3VhcmRpbmc6XG4gICAgICAgIGNvbnN0IG9wdGlvbmFsUHJvcHNHdWFyZCA9IHtcbiAgICAgICAgICAgIGFzOiB0cnVlLFxuICAgICAgICAgICAgcmVwbGFjZTogdHJ1ZSxcbiAgICAgICAgICAgIHNjcm9sbDogdHJ1ZSxcbiAgICAgICAgICAgIHNoYWxsb3c6IHRydWUsXG4gICAgICAgICAgICBwYXNzSHJlZjogdHJ1ZSxcbiAgICAgICAgICAgIHByZWZldGNoOiB0cnVlLFxuICAgICAgICAgICAgbG9jYWxlOiB0cnVlXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IG9wdGlvbmFsUHJvcHMgPSBPYmplY3Qua2V5cyhvcHRpb25hbFByb3BzR3VhcmQpO1xuICAgICAgICBvcHRpb25hbFByb3BzLmZvckVhY2goKGtleSk9PntcbiAgICAgICAgICAgIGNvbnN0IHZhbFR5cGUgPSB0eXBlb2YgcHJvcHNba2V5XTtcbiAgICAgICAgICAgIGlmIChrZXkgPT09ICdhcycpIHtcbiAgICAgICAgICAgICAgICBpZiAocHJvcHNba2V5XSAmJiB2YWxUeXBlICE9PSAnc3RyaW5nJyAmJiB2YWxUeXBlICE9PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBjcmVhdGVQcm9wRXJyb3Ioe1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQ6ICdgc3RyaW5nYCBvciBgb2JqZWN0YCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWw6IHZhbFR5cGVcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdsb2NhbGUnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHByb3BzW2tleV0gJiYgdmFsVHlwZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgY3JlYXRlUHJvcEVycm9yKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkOiAnYHN0cmluZ2AnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFsOiB2YWxUeXBlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAncmVwbGFjZScgfHwga2V5ID09PSAnc2Nyb2xsJyB8fCBrZXkgPT09ICdzaGFsbG93JyB8fCBrZXkgPT09ICdwYXNzSHJlZicgfHwga2V5ID09PSAncHJlZmV0Y2gnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHByb3BzW2tleV0gIT0gbnVsbCAmJiB2YWxUeXBlICE9PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgY3JlYXRlUHJvcEVycm9yKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkOiAnYGJvb2xlYW5gJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbDogdmFsVHlwZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIFR5cGVTY3JpcHQgdHJpY2sgZm9yIHR5cGUtZ3VhcmRpbmc6XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICAgICAgICAgICAgIGNvbnN0IF8gPSBrZXk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBUaGlzIGhvb2sgaXMgaW4gYSBjb25kaXRpb25hbCBidXQgdGhhdCBpcyBvayBiZWNhdXNlIGBwcm9jZXNzLmVudi5OT0RFX0VOVmAgbmV2ZXIgY2hhbmdlc1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgICAgICAgY29uc3QgaGFzV2FybmVkID0gX3JlYWN0LmRlZmF1bHQudXNlUmVmKGZhbHNlKTtcbiAgICAgICAgaWYgKHByb3BzLnByZWZldGNoICYmICFoYXNXYXJuZWQuY3VycmVudCkge1xuICAgICAgICAgICAgaGFzV2FybmVkLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdOZXh0LmpzIGF1dG8tcHJlZmV0Y2hlcyBhdXRvbWF0aWNhbGx5IGJhc2VkIG9uIHZpZXdwb3J0LiBUaGUgcHJlZmV0Y2ggYXR0cmlidXRlIGlzIG5vIGxvbmdlciBuZWVkZWQuIE1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3ByZWZldGNoLXRydWUtZGVwcmVjYXRlZCcpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHAgPSBwcm9wcy5wcmVmZXRjaCAhPT0gZmFsc2U7XG4gICAgY29uc3Qgcm91dGVyID0gKDAsIF9yb3V0ZXIxKS51c2VSb3V0ZXIoKTtcbiAgICBjb25zdCB7IGhyZWYgLCBhcyAgfSA9IF9yZWFjdC5kZWZhdWx0LnVzZU1lbW8oKCk9PntcbiAgICAgICAgY29uc3QgW3Jlc29sdmVkSHJlZiwgcmVzb2x2ZWRBc10gPSAoMCwgX3JvdXRlcikucmVzb2x2ZUhyZWYocm91dGVyLCBwcm9wcy5ocmVmLCB0cnVlKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGhyZWY6IHJlc29sdmVkSHJlZixcbiAgICAgICAgICAgIGFzOiBwcm9wcy5hcyA/ICgwLCBfcm91dGVyKS5yZXNvbHZlSHJlZihyb3V0ZXIsIHByb3BzLmFzKSA6IHJlc29sdmVkQXMgfHwgcmVzb2x2ZWRIcmVmXG4gICAgICAgIH07XG4gICAgfSwgW1xuICAgICAgICByb3V0ZXIsXG4gICAgICAgIHByb3BzLmhyZWYsXG4gICAgICAgIHByb3BzLmFzXG4gICAgXSk7XG4gICAgbGV0IHsgY2hpbGRyZW4gLCByZXBsYWNlICwgc2hhbGxvdyAsIHNjcm9sbCAsIGxvY2FsZSAgfSA9IHByb3BzO1xuICAgIC8vIERlcHJlY2F0ZWQuIFdhcm5pbmcgc2hvd24gYnkgcHJvcFR5cGUgY2hlY2suIElmIHRoZSBjaGlsZHJlbiBwcm92aWRlZCBpcyBhIHN0cmluZyAoPExpbms+ZXhhbXBsZTwvTGluaz4pIHdlIHdyYXAgaXQgaW4gYW4gPGE+IHRhZ1xuICAgIGlmICh0eXBlb2YgY2hpbGRyZW4gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNoaWxkcmVuID0gLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiYVwiLCBudWxsLCBjaGlsZHJlbik7XG4gICAgfVxuICAgIC8vIFRoaXMgd2lsbCByZXR1cm4gdGhlIGZpcnN0IGNoaWxkLCBpZiBtdWx0aXBsZSBhcmUgcHJvdmlkZWQgaXQgd2lsbCB0aHJvdyBhbiBlcnJvclxuICAgIGxldCBjaGlsZDtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNoaWxkID0gX3JlYWN0LmRlZmF1bHQuQ2hpbGRyZW4ub25seShjaGlsZHJlbik7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBNdWx0aXBsZSBjaGlsZHJlbiB3ZXJlIHBhc3NlZCB0byA8TGluaz4gd2l0aCBcXGBocmVmXFxgIG9mIFxcYCR7cHJvcHMuaHJlZn1cXGAgYnV0IG9ubHkgb25lIGNoaWxkIGlzIHN1cHBvcnRlZCBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9saW5rLW11bHRpcGxlLWNoaWxkcmVuYCArICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyA/IFwiIFxcbk9wZW4geW91ciBicm93c2VyJ3MgY29uc29sZSB0byB2aWV3IHRoZSBDb21wb25lbnQgc3RhY2sgdHJhY2UuXCIgOiAnJykpO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY2hpbGQgPSBfcmVhY3QuZGVmYXVsdC5DaGlsZHJlbi5vbmx5KGNoaWxkcmVuKTtcbiAgICB9XG4gICAgY29uc3QgY2hpbGRSZWYgPSBjaGlsZCAmJiB0eXBlb2YgY2hpbGQgPT09ICdvYmplY3QnICYmIGNoaWxkLnJlZjtcbiAgICBjb25zdCBbc2V0SW50ZXJzZWN0aW9uUmVmLCBpc1Zpc2libGVdID0gKDAsIF91c2VJbnRlcnNlY3Rpb24pLnVzZUludGVyc2VjdGlvbih7XG4gICAgICAgIHJvb3RNYXJnaW46ICcyMDBweCdcbiAgICB9KTtcbiAgICBjb25zdCBzZXRSZWYgPSBfcmVhY3QuZGVmYXVsdC51c2VDYWxsYmFjaygoZWwpPT57XG4gICAgICAgIHNldEludGVyc2VjdGlvblJlZihlbCk7XG4gICAgICAgIGlmIChjaGlsZFJlZikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBjaGlsZFJlZiA9PT0gJ2Z1bmN0aW9uJykgY2hpbGRSZWYoZWwpO1xuICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIGNoaWxkUmVmID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgIGNoaWxkUmVmLmN1cnJlbnQgPSBlbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgY2hpbGRSZWYsXG4gICAgICAgIHNldEludGVyc2VjdGlvblJlZlxuICAgIF0pO1xuICAgIF9yZWFjdC5kZWZhdWx0LnVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBjb25zdCBzaG91bGRQcmVmZXRjaCA9IGlzVmlzaWJsZSAmJiBwICYmICgwLCBfcm91dGVyKS5pc0xvY2FsVVJMKGhyZWYpO1xuICAgICAgICBjb25zdCBjdXJMb2NhbGUgPSB0eXBlb2YgbG9jYWxlICE9PSAndW5kZWZpbmVkJyA/IGxvY2FsZSA6IHJvdXRlciAmJiByb3V0ZXIubG9jYWxlO1xuICAgICAgICBjb25zdCBpc1ByZWZldGNoZWQgPSBwcmVmZXRjaGVkW2hyZWYgKyAnJScgKyBhcyArIChjdXJMb2NhbGUgPyAnJScgKyBjdXJMb2NhbGUgOiAnJyldO1xuICAgICAgICBpZiAoc2hvdWxkUHJlZmV0Y2ggJiYgIWlzUHJlZmV0Y2hlZCkge1xuICAgICAgICAgICAgcHJlZmV0Y2gocm91dGVyLCBocmVmLCBhcywge1xuICAgICAgICAgICAgICAgIGxvY2FsZTogY3VyTG9jYWxlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgYXMsXG4gICAgICAgIGhyZWYsXG4gICAgICAgIGlzVmlzaWJsZSxcbiAgICAgICAgbG9jYWxlLFxuICAgICAgICBwLFxuICAgICAgICByb3V0ZXJcbiAgICBdKTtcbiAgICBjb25zdCBjaGlsZFByb3BzID0ge1xuICAgICAgICByZWY6IHNldFJlZixcbiAgICAgICAgb25DbGljazogKGUpPT57XG4gICAgICAgICAgICBpZiAoY2hpbGQucHJvcHMgJiYgdHlwZW9mIGNoaWxkLnByb3BzLm9uQ2xpY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICBjaGlsZC5wcm9wcy5vbkNsaWNrKGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFlLmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICAgICAgICBsaW5rQ2xpY2tlZChlLCByb3V0ZXIsIGhyZWYsIGFzLCByZXBsYWNlLCBzaGFsbG93LCBzY3JvbGwsIGxvY2FsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGNoaWxkUHJvcHMub25Nb3VzZUVudGVyID0gKGUpPT57XG4gICAgICAgIGlmICghKDAsIF9yb3V0ZXIpLmlzTG9jYWxVUkwoaHJlZikpIHJldHVybjtcbiAgICAgICAgaWYgKGNoaWxkLnByb3BzICYmIHR5cGVvZiBjaGlsZC5wcm9wcy5vbk1vdXNlRW50ZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGNoaWxkLnByb3BzLm9uTW91c2VFbnRlcihlKTtcbiAgICAgICAgfVxuICAgICAgICBwcmVmZXRjaChyb3V0ZXIsIGhyZWYsIGFzLCB7XG4gICAgICAgICAgICBwcmlvcml0eTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIC8vIElmIGNoaWxkIGlzIGFuIDxhPiB0YWcgYW5kIGRvZXNuJ3QgaGF2ZSBhIGhyZWYgYXR0cmlidXRlLCBvciBpZiB0aGUgJ3Bhc3NIcmVmJyBwcm9wZXJ0eSBpc1xuICAgIC8vIGRlZmluZWQsIHdlIHNwZWNpZnkgdGhlIGN1cnJlbnQgJ2hyZWYnLCBzbyB0aGF0IHJlcGV0aXRpb24gaXMgbm90IG5lZWRlZCBieSB0aGUgdXNlclxuICAgIGlmIChwcm9wcy5wYXNzSHJlZiB8fCBjaGlsZC50eXBlID09PSAnYScgJiYgISgnaHJlZicgaW4gY2hpbGQucHJvcHMpKSB7XG4gICAgICAgIGNvbnN0IGN1ckxvY2FsZSA9IHR5cGVvZiBsb2NhbGUgIT09ICd1bmRlZmluZWQnID8gbG9jYWxlIDogcm91dGVyICYmIHJvdXRlci5sb2NhbGU7XG4gICAgICAgIC8vIHdlIG9ubHkgcmVuZGVyIGRvbWFpbiBsb2NhbGVzIGlmIHdlIGFyZSBjdXJyZW50bHkgb24gYSBkb21haW4gbG9jYWxlXG4gICAgICAgIC8vIHNvIHRoYXQgbG9jYWxlIGxpbmtzIGFyZSBzdGlsbCB2aXNpdGFibGUgaW4gZGV2ZWxvcG1lbnQvcHJldmlldyBlbnZzXG4gICAgICAgIGNvbnN0IGxvY2FsZURvbWFpbiA9IHJvdXRlciAmJiByb3V0ZXIuaXNMb2NhbGVEb21haW4gJiYgKDAsIF9yb3V0ZXIpLmdldERvbWFpbkxvY2FsZShhcywgY3VyTG9jYWxlLCByb3V0ZXIgJiYgcm91dGVyLmxvY2FsZXMsIHJvdXRlciAmJiByb3V0ZXIuZG9tYWluTG9jYWxlcyk7XG4gICAgICAgIGNoaWxkUHJvcHMuaHJlZiA9IGxvY2FsZURvbWFpbiB8fCAoMCwgX3JvdXRlcikuYWRkQmFzZVBhdGgoKDAsIF9yb3V0ZXIpLmFkZExvY2FsZShhcywgY3VyTG9jYWxlLCByb3V0ZXIgJiYgcm91dGVyLmRlZmF1bHRMb2NhbGUpKTtcbiAgICB9XG4gICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY2xvbmVFbGVtZW50KGNoaWxkLCBjaGlsZFByb3BzKSk7XG59XG52YXIgX2RlZmF1bHQgPSBMaW5rO1xuZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWxpbmsuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcm91dGVyIiwiX3JvdXRlcjEiLCJfdXNlSW50ZXJzZWN0aW9uIiwib2JqIiwiX19lc01vZHVsZSIsInByZWZldGNoZWQiLCJwcmVmZXRjaCIsInJvdXRlciIsImhyZWYiLCJhcyIsIm9wdGlvbnMiLCJpc0xvY2FsVVJMIiwiZXJyIiwiY3VyTG9jYWxlIiwibG9jYWxlIiwiaXNNb2RpZmllZEV2ZW50IiwiZXZlbnQiLCJ0YXJnZXQiLCJjdXJyZW50VGFyZ2V0IiwibWV0YUtleSIsImN0cmxLZXkiLCJzaGlmdEtleSIsImFsdEtleSIsIm5hdGl2ZUV2ZW50Iiwid2hpY2giLCJsaW5rQ2xpY2tlZCIsImUiLCJyZXBsYWNlIiwic2hhbGxvdyIsInNjcm9sbCIsIm5vZGVOYW1lIiwicHJldmVudERlZmF1bHQiLCJpbmRleE9mIiwiTGluayIsInByb3BzIiwiY3JlYXRlUHJvcEVycm9yIiwiYXJncyIsIkVycm9yIiwia2V5IiwiZXhwZWN0ZWQiLCJhY3R1YWwiLCJyZXF1aXJlZFByb3BzR3VhcmQiLCJyZXF1aXJlZFByb3BzIiwia2V5cyIsImZvckVhY2giLCJfIiwib3B0aW9uYWxQcm9wc0d1YXJkIiwicGFzc0hyZWYiLCJvcHRpb25hbFByb3BzIiwidmFsVHlwZSIsImhhc1dhcm5lZCIsInVzZVJlZiIsImN1cnJlbnQiLCJjb25zb2xlIiwid2FybiIsInAiLCJ1c2VSb3V0ZXIiLCJ1c2VNZW1vIiwicmVzb2x2ZUhyZWYiLCJyZXNvbHZlZEhyZWYiLCJyZXNvbHZlZEFzIiwiY2hpbGRyZW4iLCJjcmVhdGVFbGVtZW50IiwiY2hpbGQiLCJDaGlsZHJlbiIsIm9ubHkiLCJjaGlsZFJlZiIsInJlZiIsInVzZUludGVyc2VjdGlvbiIsInJvb3RNYXJnaW4iLCJzZXRJbnRlcnNlY3Rpb25SZWYiLCJpc1Zpc2libGUiLCJzZXRSZWYiLCJ1c2VDYWxsYmFjayIsImVsIiwidXNlRWZmZWN0Iiwic2hvdWxkUHJlZmV0Y2giLCJpc1ByZWZldGNoZWQiLCJjaGlsZFByb3BzIiwib25DbGljayIsImRlZmF1bHRQcmV2ZW50ZWQiLCJvbk1vdXNlRW50ZXIiLCJwcmlvcml0eSIsInR5cGUiLCJsb2NhbGVEb21haW4iLCJpc0xvY2FsZURvbWFpbiIsImdldERvbWFpbkxvY2FsZSIsImxvY2FsZXMiLCJkb21haW5Mb2NhbGVzIiwiYWRkQmFzZVBhdGgiLCJhZGRMb2NhbGUiLCJkZWZhdWx0TG9jYWxlIiwiY2xvbmVFbGVtZW50IiwiX2RlZmF1bHQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/link.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/use-intersection.js": +/*!***********************************************************!*\ + !*** ./node_modules/next/dist/client/use-intersection.js ***! + \***********************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _slicedToArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nvar _s = $RefreshSig$();\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.useIntersection = useIntersection;\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nvar _requestIdleCallback = __webpack_require__(/*! ./request-idle-callback */ \"./node_modules/next/dist/client/request-idle-callback.js\");\n\nvar hasIntersectionObserver = typeof IntersectionObserver !== 'undefined';\n\nfunction useIntersection(_ref) {\n _s();\n\n var rootMargin = _ref.rootMargin,\n disabled = _ref.disabled;\n var isDisabled = disabled || !hasIntersectionObserver;\n var unobserve = (0, _react).useRef();\n\n var _useState = (0, _react).useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n visible = _useState2[0],\n setVisible = _useState2[1];\n\n var setRef = (0, _react).useCallback(function (el) {\n if (unobserve.current) {\n unobserve.current();\n unobserve.current = undefined;\n }\n\n if (isDisabled || visible) return;\n\n if (el && el.tagName) {\n unobserve.current = observe(el, function (isVisible) {\n return isVisible && setVisible(isVisible);\n }, {\n rootMargin: rootMargin\n });\n }\n }, [isDisabled, rootMargin, visible]);\n (0, _react).useEffect(function () {\n if (!hasIntersectionObserver) {\n if (!visible) {\n var idleCallback = (0, _requestIdleCallback).requestIdleCallback(function () {\n return setVisible(true);\n });\n return function () {\n return (0, _requestIdleCallback).cancelIdleCallback(idleCallback);\n };\n }\n }\n }, [visible]);\n return [setRef, visible];\n}\n\n_s(useIntersection, \"Z6jj7qx+KE6gD9CpC9WlQTha45o=\");\n\nfunction observe(element, callback, options) {\n var _createObserver = createObserver(options),\n id = _createObserver.id,\n observer = _createObserver.observer,\n elements = _createObserver.elements;\n\n elements.set(element, callback);\n observer.observe(element);\n return function unobserve() {\n elements[\"delete\"](element);\n observer.unobserve(element); // Destroy observer when there's nothing left to watch:\n\n if (elements.size === 0) {\n observer.disconnect();\n observers[\"delete\"](id);\n }\n };\n}\n\nvar observers = new Map();\n\nfunction createObserver(options) {\n var id = options.rootMargin || '';\n var instance = observers.get(id);\n\n if (instance) {\n return instance;\n }\n\n var elements = new Map();\n var observer = new IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n var callback = elements.get(entry.target);\n var isVisible = entry.isIntersecting || entry.intersectionRatio > 0;\n\n if (callback && isVisible) {\n callback(isVisible);\n }\n });\n }, options);\n observers.set(id, instance = {\n id: id,\n observer: observer,\n elements: elements\n });\n return instance;\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC91c2UtaW50ZXJzZWN0aW9uLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7Ozs7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELHVCQUFBLEdBQTBCRSxlQUExQjs7QUFDQSxJQUFJQyxNQUFNLEdBQUdDLG1CQUFPLENBQUMsNENBQUQsQ0FBcEI7O0FBQ0EsSUFBSUMsb0JBQW9CLEdBQUdELG1CQUFPLENBQUMseUZBQUQsQ0FBbEM7O0FBQ0EsSUFBTUUsdUJBQXVCLEdBQUcsT0FBT0Msb0JBQVAsS0FBZ0MsV0FBaEU7O0FBQ0EsU0FBU0wsZUFBVCxPQUFxRDtBQUFBOztBQUFBLE1BQTFCTSxVQUEwQixRQUExQkEsVUFBMEI7QUFBQSxNQUFiQyxRQUFhLFFBQWJBLFFBQWE7QUFDakQsTUFBTUMsVUFBVSxHQUFHRCxRQUFRLElBQUksQ0FBQ0gsdUJBQWhDO0FBQ0EsTUFBTUssU0FBUyxHQUFHLENBQUMsR0FBR1IsTUFBSixFQUFZUyxNQUFaLEVBQWxCOztBQUNBLGtCQUE4QixDQUFDLEdBQUdULE1BQUosRUFBWVUsUUFBWixDQUFxQixLQUFyQixDQUE5QjtBQUFBO0FBQUEsTUFBT0MsT0FBUDtBQUFBLE1BQWdCQyxVQUFoQjs7QUFDQSxNQUFNQyxNQUFNLEdBQUcsQ0FBQyxHQUFHYixNQUFKLEVBQVljLFdBQVosQ0FBd0IsVUFBQ0MsRUFBRCxFQUFNO0FBQ3pDLFFBQUlQLFNBQVMsQ0FBQ1EsT0FBZCxFQUF1QjtBQUNuQlIsTUFBQUEsU0FBUyxDQUFDUSxPQUFWO0FBQ0FSLE1BQUFBLFNBQVMsQ0FBQ1EsT0FBVixHQUFvQkMsU0FBcEI7QUFDSDs7QUFDRCxRQUFJVixVQUFVLElBQUlJLE9BQWxCLEVBQTJCOztBQUMzQixRQUFJSSxFQUFFLElBQUlBLEVBQUUsQ0FBQ0csT0FBYixFQUFzQjtBQUNsQlYsTUFBQUEsU0FBUyxDQUFDUSxPQUFWLEdBQW9CRyxPQUFP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QUFBLEVBQUUsRUFBRkEsRUFEeUI7QUFFekJDLElBQUFBLFFBQVEsRUFBUkEsUUFGeUI7QUFHekJDLElBQUFBLFFBQVEsRUFBUkE7QUFIeUIsR0FBN0I7QUFLQSxTQUFPTSxRQUFQO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvdXNlLWludGVyc2VjdGlvbi5qcz9mZDk0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy51c2VJbnRlcnNlY3Rpb24gPSB1c2VJbnRlcnNlY3Rpb247XG52YXIgX3JlYWN0ID0gcmVxdWlyZShcInJlYWN0XCIpO1xudmFyIF9yZXF1ZXN0SWRsZUNhbGxiYWNrID0gcmVxdWlyZShcIi4vcmVxdWVzdC1pZGxlLWNhbGxiYWNrXCIpO1xuY29uc3QgaGFzSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPSB0eXBlb2YgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgIT09ICd1bmRlZmluZWQnO1xuZnVuY3Rpb24gdXNlSW50ZXJzZWN0aW9uKHsgcm9vdE1hcmdpbiAsIGRpc2FibGVkICB9KSB7XG4gICAgY29uc3QgaXNEaXNhYmxlZCA9IGRpc2FibGVkIHx8ICFoYXNJbnRlcnNlY3Rpb25PYnNlcnZlcjtcbiAgICBjb25zdCB1bm9ic2VydmUgPSAoMCwgX3JlYWN0KS51c2VSZWYoKTtcbiAgICBjb25zdCBbdmlzaWJsZSwgc2V0VmlzaWJsZV0gPSAoMCwgX3JlYWN0KS51c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3Qgc2V0UmVmID0gKDAsIF9yZWFjdCkudXNlQ2FsbGJhY2soKGVsKT0+e1xuICAgICAgICBpZiAodW5vYnNlcnZlLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIHVub2JzZXJ2ZS5jdXJyZW50KCk7XG4gICAgICAgICAgICB1bm9ic2VydmUuY3VycmVudCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNEaXNhYmxlZCB8fCB2aXNpYmxlKSByZXR1cm47XG4gICAgICAgIGlmIChlbCAmJiBlbC50YWdOYW1lKSB7XG4gICAgICAgICAgICB1bm9ic2VydmUuY3VycmVudCA9IG9ic2VydmUoZWwsIChpc1Zpc2libGUpPT5pc1Zpc2libGUgJiYgc2V0VmlzaWJsZShpc1Zpc2libGUpXG4gICAgICAgICAgICAsIHtcbiAgICAgICAgICAgICAgICByb290TWFyZ2luXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgaXNEaXNhYmxlZCxcbiAgICAgICAgcm9vdE1hcmdpbixcbiAgICAgICAgdmlzaWJsZVxuICAgIF0pO1xuICAgICgwLCBfcmVhY3QpLnVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBpZiAoIWhhc0ludGVyc2VjdGlvbk9ic2VydmVyKSB7XG4gICAgICAgICAgICBpZiAoIXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpZGxlQ2FsbGJhY2sgPSAoMCwgX3JlcXVlc3RJZGxlQ2FsbGJhY2spLnJlcXVlc3RJZGxlQ2FsbGJhY2soKCk9PnNldFZpc2libGUodHJ1ZSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHJldHVybiAoKT0+KDAsIF9yZXF1ZXN0SWRsZUNhbGxiYWNrKS5jYW5jZWxJZGxlQ2FsbGJhY2soaWRsZUNhbGxiYWNrKVxuICAgICAgICAgICAgICAgIDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgdmlzaWJsZVxuICAgIF0pO1xuICAgIHJldHVybiBbXG4gICAgICAgIHNldFJlZixcbiAgICAgICAgdmlzaWJsZVxuICAgIF07XG59XG5mdW5jdGlvbiBvYnNlcnZlKGVsZW1lbnQsIGNhbGxiYWNrLCBvcHRpb25zKSB7XG4gICAgY29uc3QgeyBpZCAsIG9ic2VydmVyICwgZWxlbWVudHMgIH0gPSBjcmVhdGVPYnNlcnZlcihvcHRpb25zKTtcbiAgICBlbGVtZW50cy5zZXQoZWxlbWVudCwgY2FsbGJhY2spO1xuICAgIG9ic2VydmVyLm9ic2VydmUoZWxlbWVudCk7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIHVub2JzZXJ2ZSgpIHtcbiAgICAgICAgZWxlbWVudHMuZGVsZXRlKGVsZW1lbnQpO1xuICAgICAgICBvYnNlcnZlci51bm9ic2VydmUoZWxlbWVudCk7XG4gICAgICAgIC8vIERlc3Ryb3kgb2JzZXJ2ZXIgd2hlbiB0aGVyZSdzIG5vdGhpbmcgbGVmdCB0byB3YXRjaDpcbiAgICAgICAgaWYgKGVsZW1lbnRzLnNpemUgPT09IDApIHtcbiAgICAgICAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICAgIG9ic2VydmVycy5kZWxldGUoaWQpO1xuICAgICAgICB9XG4gICAgfTtcbn1cbmNvbnN0IG9ic2VydmVycyA9IG5ldyBNYXAoKTtcbmZ1bmN0aW9uIGNyZWF0ZU9ic2VydmVyKG9wdGlvbnMpIHtcbiAgICBjb25zdCBpZCA9IG9wdGlvbnMucm9vdE1hcmdpbiB8fCAnJztcbiAgICBsZXQgaW5zdGFuY2UgPSBvYnNlcnZlcnMuZ2V0KGlkKTtcbiAgICBpZiAoaW5zdGFuY2UpIHtcbiAgICAgICAgcmV0dXJuIGluc3RhbmNlO1xuICAgIH1cbiAgICBjb25zdCBlbGVtZW50cyA9IG5ldyBNYXAoKTtcbiAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZW50cmllcyk9PntcbiAgICAgICAgZW50cmllcy5mb3JFYWNoKChlbnRyeSk9PntcbiAgICAgICAgICAgIGNvbnN0IGNhbGxiYWNrID0gZWxlbWVudHMuZ2V0KGVudHJ5LnRhcmdldCk7XG4gICAgICAgICAgICBjb25zdCBpc1Zpc2libGUgPSBlbnRyeS5pc0ludGVyc2VjdGluZyB8fCBlbnRyeS5pbnRlcnNlY3Rpb25SYXRpbyA+IDA7XG4gICAgICAgICAgICBpZiAoY2FsbGJhY2sgJiYgaXNWaXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2soaXNWaXNpYmxlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSwgb3B0aW9ucyk7XG4gICAgb2JzZXJ2ZXJzLnNldChpZCwgaW5zdGFuY2UgPSB7XG4gICAgICAgIGlkLFxuICAgICAgICBvYnNlcnZlcixcbiAgICAgICAgZWxlbWVudHNcbiAgICB9KTtcbiAgICByZXR1cm4gaW5zdGFuY2U7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVzZS1pbnRlcnNlY3Rpb24uanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwidXNlSW50ZXJzZWN0aW9uIiwiX3JlYWN0IiwicmVxdWlyZSIsIl9yZXF1ZXN0SWRsZUNhbGxiYWNrIiwiaGFzSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiLCJJbnRlcnNlY3Rpb25PYnNlcnZlciIsInJvb3RNYXJnaW4iLCJkaXNhYmxlZCIsImlzRGlzYWJsZWQiLCJ1bm9ic2VydmUiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInZpc2libGUiLCJzZXRWaXNpYmxlIiwic2V0UmVmIiwidXNlQ2FsbGJhY2siLCJlbCIsImN1cnJlbnQiLCJ1bmRlZmluZWQiLCJ0YWdOYW1lIiwib2JzZXJ2ZSIsImlzVmlzaWJsZSIsInVzZUVmZmVjdCIsImlkbGVDYWxsYmFjayIsInJlcXVlc3RJZGxlQ2FsbGJhY2siLCJjYW5jZWxJZGxlQ2FsbGJhY2siLCJlbGVtZW50IiwiY2FsbGJhY2siLCJvcHRpb25zIiwiY3JlYXRlT2JzZXJ2ZXIiLCJpZCIsIm9ic2VydmVyIiwiZWxlbWVudHMiLCJzZXQiLCJzaXplIiwiZGlzY29ubmVjdCIsIm9ic2VydmVycyIsIk1hcCIsImluc3RhbmNlIiwiZ2V0IiwiZW50cmllcyIsImZvckVhY2giLCJlbnRyeSIsInRhcmdldCIsImlzSW50ZXJzZWN0aW5nIiwiaW50ZXJzZWN0aW9uUmF0aW8iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/use-intersection.js\n"); + +/***/ }), + +/***/ "./src/common/getSiblings.js": +/*!***********************************!*\ + !*** ./src/common/getSiblings.js ***! + \***********************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar getSiblings = function getSiblings(e) {\n var siblings = [];\n\n if (!e.parentNode) {\n return siblings;\n }\n\n var sibling = e.parentNode.firstChild;\n\n while (sibling) {\n if (sibling.nodeType === 1 && sibling !== e) {\n siblings.push(sibling);\n }\n\n sibling = sibling.nextSibling;\n }\n\n return siblings;\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (getSiblings);\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL2dldFNpYmxpbmdzLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQUEsSUFBTUEsV0FBVyxHQUFHLFNBQWRBLFdBQWMsQ0FBQ0MsQ0FBRCxFQUFPO0FBQ3pCLE1BQUlDLFFBQVEsR0FBRyxFQUFmOztBQUNBLE1BQUksQ0FBQ0QsQ0FBQyxDQUFDRSxVQUFQLEVBQW1CO0FBQ2pCLFdBQU9ELFFBQVA7QUFDRDs7QUFDRCxNQUFJRSxPQUFPLEdBQUdILENBQUMsQ0FBQ0UsVUFBRixDQUFhRSxVQUEzQjs7QUFDQSxTQUFPRCxPQUFQLEVBQWdCO0FBQ2QsUUFBSUEsT0FBTyxDQUFDRSxRQUFSLEtBQXFCLENBQXJCLElBQTBCRixPQUFPLEtBQUtILENBQTFDLEVBQTZDO0FBQzNDQyxNQUFBQSxRQUFRLENBQUNLLElBQVQsQ0FBY0gsT0FBZDtBQUNEOztBQUNEQSxJQUFBQSxPQUFPLEdBQUdBLE9BQU8sQ0FBQ0ksV0FBbEI7QUFDRDs7QUFDRCxTQUFPTixRQUFQO0FBQ0QsQ0FiRDs7QUFlQSwrREFBZUYsV0FBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tbW9uL2dldFNpYmxpbmdzLmpzPzhlNjUiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZ2V0U2libGluZ3MgPSAoZSkgPT4ge1xyXG4gIGxldCBzaWJsaW5ncyA9IFtdO1xyXG4gIGlmICghZS5wYXJlbnROb2RlKSB7XHJcbiAgICByZXR1cm4gc2libGluZ3M7XHJcbiAgfVxyXG4gIGxldCBzaWJsaW5nID0gZS5wYXJlbnROb2RlLmZpcnN0Q2hpbGQ7XHJcbiAgd2hpbGUgKHNpYmxpbmcpIHtcclxuICAgIGlmIChzaWJsaW5nLm5vZGVUeXBlID09PSAxICYmIHNpYmxpbmcgIT09IGUpIHtcclxuICAgICAgc2libGluZ3MucHVzaChzaWJsaW5nKTtcclxuICAgIH1cclxuICAgIHNpYmxpbmcgPSBzaWJsaW5nLm5leHRTaWJsaW5nO1xyXG4gIH1cclxuICByZXR1cm4gc2libGluZ3M7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBnZXRTaWJsaW5ncztcclxuIl0sIm5hbWVzIjpbImdldFNpYmxpbmdzIiwiZSIsInNpYmxpbmdzIiwicGFyZW50Tm9kZSIsInNpYmxpbmciLCJmaXJzdENoaWxkIiwibm9kZVR5cGUiLCJwdXNoIiwibmV4dFNpYmxpbmciXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/common/getSiblings.js\n"); + +/***/ }), + +/***/ "./src/common/initIsotope.js": +/*!***********************************!*\ + !*** ./src/common/initIsotope.js ***! + \***********************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar initIsotope = function initIsotope() {\n var grid = document.querySelectorAll(\".gallery\");\n var iso;\n\n if (grid.length >= 1) {\n grid.forEach(function (item) {\n iso = new Isotope(item, {\n itemSelector: \".items\"\n });\n });\n }\n\n var gridMons = document.querySelectorAll(\".gallery-mons\");\n\n if (gridMons.length >= 1) {\n gridMons.forEach(function (item) {\n iso = new Isotope(item, {\n itemSelector: \".items\",\n masonry: {\n columnWidth: \".width2\"\n }\n });\n });\n }\n\n var filtersElem = document.querySelector(\".filtering\");\n\n if (filtersElem) {\n var radioButtonGroup = function radioButtonGroup(buttonGroup) {\n buttonGroup.addEventListener(\"click\", function (event) {\n if (!matchesSelector(event.target, \"span\")) {\n return;\n }\n\n buttonGroup.querySelector(\".active\").classList.remove(\"active\");\n event.target.classList.add(\"active\");\n });\n };\n\n filtersElem.addEventListener(\"click\", function (event) {\n if (!matchesSelector(event.target, \"span\")) {\n return;\n }\n\n var filterValue = event.target.getAttribute(\"data-filter\");\n filterValue = filterValue;\n iso.arrange({\n filter: filterValue\n });\n });\n var buttonGroups = document.querySelectorAll(\".filtering\");\n\n for (var i = 0, len = buttonGroups.length; i < len; i++) {\n var buttonGroup = buttonGroups[i];\n radioButtonGroup(buttonGroup);\n }\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (initIsotope);\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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YWVhIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGluaXRJc290b3BlID0gKCkgPT4ge1xyXG4gIHZhciBncmlkID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi5nYWxsZXJ5XCIpO1xyXG4gIHZhciBpc287XHJcbiAgaWYgKGdyaWQubGVuZ3RoID49IDEpIHtcclxuICAgIGdyaWQuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICBpc28gPSBuZXcgSXNvdG9wZShpdGVtLCB7XHJcbiAgICAgICAgaXRlbVNlbGVjdG9yOiBcIi5pdGVtc1wiLFxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdmFyIGdyaWRNb25zID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi5nYWxsZXJ5LW1vbnNcIik7XHJcbiAgaWYgKGdyaWRNb25zLmxlbmd0aCA+PSAxKSB7XHJcbiAgICBncmlkTW9ucy5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgIGlzbyA9IG5ldyBJc290b3BlKGl0ZW0sIHtcclxuICAgICAgICBpdGVtU2VsZWN0b3I6IFwiLml0ZW1zXCIsXHJcbiAgICAgICAgbWFzb25yeToge1xyXG4gICAgICAgICAgY29sdW1uV2lkdGg6IFwiLndpZHRoMlwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB2YXIgZmlsdGVyc0VsZW0gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLmZpbHRlcmluZ1wiKTtcclxuICBpZiAoZmlsdGVyc0VsZW0pIHtcclxuICAgIGZpbHRlcnNFbGVtLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcclxuICAgICAgaWYgKCFtYXRjaGVzU2VsZWN0b3IoZXZlbnQudGFyZ2V0LCBcInNwYW5cIikpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdmFyIGZpbHRlclZhbHVlID0gZXZlbnQudGFyZ2V0LmdldEF0dHJpYnV0ZShcImRhdGEtZmlsdGVyXCIpO1xyXG4gICAgICBmaWx0ZXJWYWx1ZSA9IGZpbHRlclZhbHVlO1xyXG4gICAgICBpc28uYXJyYW5nZSh7IGZpbHRlcjogZmlsdGVyVmFsdWUgfSk7XHJcbiAgICB9KTtcclxuICAgIHZhciBidXR0b25Hcm91cHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLmZpbHRlcmluZ1wiKTtcclxuICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBidXR0b25Hcm91cHMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgdmFyIGJ1dHRvbkdyb3VwID0gYnV0dG9uR3JvdXBzW2ldO1xyXG4gICAgICByYWRpb0J1dHRvbkdyb3VwKGJ1dHRvbkdyb3VwKTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIHJhZGlvQnV0dG9uR3JvdXAoYnV0dG9uR3JvdXApIHtcclxuICAgICAgYnV0dG9uR3JvdXAuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGZ1bmN0aW9uIChldmVudCkge1xyXG4gICAgICAgIGlmICghbWF0Y2hlc1NlbGVjdG9yKGV2ZW50LnRhcmdldCwgXCJzcGFuXCIpKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJ1dHRvbkdyb3VwLnF1ZXJ5U2VsZWN0b3IoXCIuYWN0aXZlXCIpLmNsYXNzTGlzdC5yZW1vdmUoXCJhY3RpdmVcIik7XHJcbiAgICAgICAgZXZlbnQudGFyZ2V0LmNsYXNzTGlzdC5hZGQoXCJhY3RpdmVcIik7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGluaXRJc290b3BlIl0sIm5hbWVzIjpbImluaXRJc290b3BlIiwiZ3JpZCIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvckFsbCIsImlzbyIsImxlbmd0aCIsImZvckVhY2giLCJpdGVtIiwiSXNvdG9wZSIsIml0ZW1TZWxlY3RvciIsImdyaWRNb25zIiwibWFzb25yeSIsImNvbHVtbldpZHRoIiwiZmlsdGVyc0VsZW0iLCJxdWVyeVNlbGVjdG9yIiwicmFkaW9CdXR0b25Hcm91cCIsImJ1dHRvbkdyb3VwIiwiYWRkRXZlbnRMaXN0ZW5lciIsImV2ZW50IiwibWF0Y2hlc1NlbGVjdG9yIiwidGFyZ2V0IiwiY2xhc3NMaXN0IiwicmVtb3ZlIiwiYWRkIiwiZmlsdGVyVmFsdWUiLCJnZXRBdHRyaWJ1dGUiLCJhcnJhbmdlIiwiZmlsdGVyIiwiYnV0dG9uR3JvdXBzIiwiaSIsImxlbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/common/initIsotope.js\n"); + +/***/ }), + +/***/ "./src/common/navbar.js": +/*!******************************!*\ + !*** ./src/common/navbar.js ***! + \******************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"handleDropdown\": function() { return /* binding */ handleDropdown; },\n/* harmony export */ \"handleMobileDropdown\": function() { return /* binding */ handleMobileDropdown; }\n/* harmony export */ });\n/* harmony import */ var _getSiblings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getSiblings */ \"./src/common/getSiblings.js\");\n/* module decorator */ module = __webpack_require__.hmd(module);\n\nvar handleDropdown = function handleDropdown(e) {\n (0,_getSiblings__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(e.target.parentElement).filter(function (item) {\n return item.classList.contains(\"show\");\n }).map(function (item) {\n item.classList.remove(\"show\");\n\n if (item.childNodes[0]) {\n item.childNodes[0].setAttribute(\"aria-expanded\", false);\n }\n\n if (item.childNodes[1]) {\n item.childNodes[1].classList.remove(\"show\");\n }\n });\n e.target.parentElement.classList.toggle(\"show\");\n e.target.setAttribute(\"aria-expanded\", true);\n e.target.parentElement.childNodes[1].classList.toggle(\"show\");\n};\nvar handleMobileDropdown = function handleMobileDropdown(e) {\n document.getElementById(\"navbarSupportedContent\").classList.toggle(\"show-with-trans\");\n};\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL25hdmJhci5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7QUFFTyxJQUFNQyxjQUFjLEdBQUcsU0FBakJBLGNBQWlCLENBQUNDLENBQUQsRUFBTztBQUNuQ0YsRUFBQUEsd0RBQVcsQ0FBQ0UsQ0FBQyxDQUFDQyxNQUFGLENBQVNDLGFBQVYsQ0FBWCxDQUNHQyxNQURILENBQ1UsVUFBQ0MsSUFBRDtBQUFBLFdBQVVBLElBQUksQ0FBQ0MsU0FBTCxDQUFlQyxRQUFmLENBQXdCLE1BQXhCLENBQVY7QUFBQSxHQURWLEVBRUdDLEdBRkgsQ0FFTyxVQUFDSCxJQUFELEVBQVU7QUFDYkEsSUFBQUEsSUFBSSxDQUFDQyxTQUFMLENBQWVHLE1BQWYsQ0FBc0IsTUFBdEI7O0FBQ0EsUUFBSUosSUFBSSxDQUFDSyxVQUFMLENBQWdCLENBQWhCLENBQUosRUFBd0I7QUFDdEJMLE1BQUFBLElBQUksQ0FBQ0ssVUFBTCxDQUFnQixDQUFoQixFQUFtQkMsWUFBbkIsQ0FBZ0MsZUFBaEMsRUFBaUQsS0FBakQ7QUFDRDs7QUFDRCxRQUFJTixJQUFJLENBQUNLLFVBQUwsQ0FBZ0IsQ0FBaEIsQ0FBSixFQUF3QjtBQUN0QkwsTUFBQUEsSUFBSSxDQUFDSyxVQUFMLENBQWdCLENBQWhCLEVBQW1CSixTQUFuQixDQUE2QkcsTUFBN0IsQ0FBb0MsTUFBcEM7QUFDRDtBQUNGLEdBVkg7QUFXQVIsRUFBQUEsQ0FBQyxDQUFDQyxNQUFGLENBQVNDLGFBQVQsQ0FBdUJHLFNBQXZCLENBQWlDTSxNQUFqQyxDQUF3QyxNQUF4QztBQUNBWCxFQUFBQSxDQUFDLENBQUNDLE1BQUYsQ0FBU1MsWUFBVCxDQUFzQixlQUF0QixFQUF1QyxJQUF2QztBQUNBVixFQUFBQSxDQUFDLENBQUNDLE1BQUYsQ0FBU0MsYUFBVCxDQUF1Qk8sVUFBdkIsQ0FBa0MsQ0FBbEMsRUFBcUNKLFNBQXJDLENBQStDTSxNQUEvQyxDQUFzRCxNQUF0RDtBQUNELENBZk07QUFpQkEsSUFBTUMsb0JBQW9CLEdBQUcsU0FBdkJBLG9CQUF1QixDQUFDWixDQUFELEVBQU87QUFDekNhLEVBQUFBLFFBQVEsQ0FDTEMsY0FESCxDQUNrQix3QkFEbEIsRUFFR1QsU0FGSCxDQUVhTSxNQUZiLENBRW9CLGlCQUZwQjtBQUdELENBSk0iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbW1vbi9uYXZiYXIuanM/MWU3NiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0U2libGluZ3MgZnJvbSAnLi9nZXRTaWJsaW5ncydcclxuXHJcbmV4cG9ydCBjb25zdCBoYW5kbGVEcm9wZG93biA9IChlKSA9PiB7XHJcbiAgZ2V0U2libGluZ3MoZS50YXJnZXQucGFyZW50RWxlbWVudClcclxuICAgIC5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uY2xhc3NMaXN0LmNvbnRhaW5zKFwic2hvd1wiKSlcclxuICAgIC5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgaXRlbS5jbGFzc0xpc3QucmVtb3ZlKFwic2hvd1wiKTtcclxuICAgICAgaWYgKGl0ZW0uY2hpbGROb2Rlc1swXSkge1xyXG4gICAgICAgIGl0ZW0uY2hpbGROb2Rlc1swXS5zZXRBdHRyaWJ1dGUoXCJhcmlhLWV4cGFuZGVkXCIsIGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaXRlbS5jaGlsZE5vZGVzWzFdKSB7XHJcbiAgICAgICAgaXRlbS5jaGlsZE5vZGVzWzFdLmNsYXNzTGlzdC5yZW1vdmUoXCJzaG93XCIpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICBlLnRhcmdldC5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoXCJzaG93XCIpO1xyXG4gIGUudGFyZ2V0LnNldEF0dHJpYnV0ZShcImFyaWEtZXhwYW5kZWRcIiwgdHJ1ZSk7XHJcbiAgZS50YXJnZXQucGFyZW50RWxlbWVudC5jaGlsZE5vZGVzWzFdLmNsYXNzTGlzdC50b2dnbGUoXCJzaG93XCIpO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGhhbmRsZU1vYmlsZURyb3Bkb3duID0gKGUpID0+IHtcclxuICBkb2N1bWVudFxyXG4gICAgLmdldEVsZW1lbnRCeUlkKFwibmF2YmFyU3VwcG9ydGVkQ29udGVudFwiKVxyXG4gICAgLmNsYXNzTGlzdC50b2dnbGUoXCJzaG93LXdpdGgtdHJhbnNcIik7XHJcbn07Il0sIm5hbWVzIjpbImdldFNpYmxpbmdzIiwiaGFuZGxlRHJvcGRvd24iLCJlIiwidGFyZ2V0IiwicGFyZW50RWxlbWVudCIsImZpbHRlciIsIml0ZW0iLCJjbGFzc0xpc3QiLCJjb250YWlucyIsIm1hcCIsInJlbW92ZSIsImNoaWxkTm9kZXMiLCJzZXRBdHRyaWJ1dGUiLCJ0b2dnbGUiLCJoYW5kbGVNb2JpbGVEcm9wZG93biIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/common/navbar.js\n"); + +/***/ }), + +/***/ "./src/components/Call-to-action/call-to-action.jsx": +/*!**********************************************************!*\ + !*** ./src/components/Call-to-action/call-to-action.jsx ***! + \**********************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _Split__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Split */ \"./src/components/Split/index.jsx\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Call-to-action\\\\call-to-action.jsx\",\n _this = undefined;\n\n\n\n\n\n\nvar CallToAction = function CallToAction(_ref) {\n var img = _ref.img;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"section\", {\n className: \"call-action section-padding sub-bg bg-img\",\n style: {\n backgroundImage: \"url(\".concat(img ? img : \"/img/patrn.svg\", \")\")\n },\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-md-8 col-lg-9\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"content sm-mb30\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(_Split__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n className: \"wow words chars splitting\",\n \"data-splitting\": true,\n children: \"Let\\u2019s Talk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h2\", {\n className: \"wow words chars splitting\",\n \"data-splitting\": true,\n children: [\"about your \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"br\", {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 30\n }, _this), \" \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"b\", {\n className: \"back-color\",\n children: \"next project\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 37\n }, _this), \".\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-md-4 col-lg-3 valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/contact/contact-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n className: \"butn bord curve wow fadeInUp\",\n \"data-wow-delay\": \".5s\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: \"Get In Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 7,\n columnNumber: 5\n }, _this);\n};\n\n_c = CallToAction;\n/* harmony default export */ __webpack_exports__[\"default\"] = (CallToAction);\n\nvar _c;\n\n$RefreshReg$(_c, \"CallToAction\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9DYWxsLXRvLWFjdGlvbi9jYWxsLXRvLWFjdGlvbi5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBOzs7QUFFQSxJQUFNRyxZQUFZLEdBQUcsU0FBZkEsWUFBZSxPQUFhO0FBQUEsTUFBVkMsR0FBVSxRQUFWQSxHQUFVO0FBQ2hDLHNCQUNFO0FBQ0UsYUFBUyxFQUFDLDJDQURaO0FBRUUsU0FBSyxFQUFFO0FBQUVDLE1BQUFBLGVBQWUsZ0JBQVNELEdBQUcsR0FBR0EsR0FBSCxHQUFTLGdCQUFyQjtBQUFqQixLQUZUO0FBQUEsMkJBSUU7QUFBSyxlQUFTLEVBQUMsV0FBZjtBQUFBLDZCQUNFO0FBQUssaUJBQVMsRUFBQyxLQUFmO0FBQUEsZ0NBQ0U7QUFBSyxtQkFBUyxFQUFDLG1CQUFmO0FBQUEsaUNBQ0U7QUFBSyxxQkFBUyxFQUFDLGlCQUFmO0FBQUEsbUNBQ0UsOERBQUMsOENBQUQ7QUFBQSxzQ0FDRTtBQUFJLHlCQUFTLEVBQUMsMkJBQWQ7QUFBMEMsc0NBQTFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQURGLGVBSUU7QUFBSSx5QkFBUyxFQUFDLDJCQUFkO0FBQTBDLHNDQUExQztBQUFBLHVEQUNhO0FBQUE7QUFBQTtBQUFBO0FBQUEseUJBRGIsb0JBQ29CO0FBQUcsMkJBQVMsRUFBQyxZQUFiO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHlCQURwQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBSkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBREYsZUFjRTtBQUFLLG1CQUFTLEVBQUMsMEJBQWY7QUFBQSxpQ0FDRSw4REFBQyxrREFBRDtBQUFNLGdCQUFJLDBCQUFWO0FBQUEsbUNBQ0U7QUFBRyx1QkFBUyxFQUFDLDhCQUFiO0FBQTRDLGdDQUFlLEtBQTNEO0FBQUEscUNBQ0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBZEY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUpGO0FBQUE7QUFBQTtBQUFBO0FBQUEsV0FERjtBQStCRCxDQWhDRDs7S0FBTUQ7QUFrQ04sK0RBQWVBLFlBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbXBvbmVudHMvQ2FsbC10by1hY3Rpb24vY2FsbC10by1hY3Rpb24uanN4PzFmOTkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgU3BsaXQgZnJvbSBcIi4uL1NwbGl0XCI7XHJcbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcclxuXHJcbmNvbnN0IENhbGxUb0FjdGlvbiA9ICh7IGltZyB9KSA9PiB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uXHJcbiAgICAgIGNsYXNzTmFtZT1cImNhbGwtYWN0aW9uIHNlY3Rpb24tcGFkZGluZyBzdWItYmcgYmctaW1nXCJcclxuICAgICAgc3R5bGU9e3sgYmFja2dyb3VuZEltYWdlOiBgdXJsKCR7aW1nID8gaW1nIDogXCIvaW1nL3BhdHJuLnN2Z1wifSlgIH19XHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLW1kLTggY29sLWxnLTlcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250ZW50IHNtLW1iMzBcIj5cclxuICAgICAgICAgICAgICA8U3BsaXQ+XHJcbiAgICAgICAgICAgICAgICA8aDYgY2xhc3NOYW1lPVwid293IHdvcmRzIGNoYXJzIHNwbGl0dGluZ1wiIGRhdGEtc3BsaXR0aW5nPlxyXG4gICAgICAgICAgICAgICAgICBMZXTigJlzIFRhbGtcclxuICAgICAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgICAgICA8aDIgY2xhc3NOYW1lPVwid293IHdvcmRzIGNoYXJzIHNwbGl0dGluZ1wiIGRhdGEtc3BsaXR0aW5nPlxyXG4gICAgICAgICAgICAgICAgICBhYm91dCB5b3VyIDxiciAvPiA8YiBjbGFzc05hbWU9XCJiYWNrLWNvbG9yXCI+bmV4dCBwcm9qZWN0PC9iPi5cclxuICAgICAgICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICAgICAgPC9TcGxpdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1tZC00IGNvbC1sZy0zIHZhbGlnblwiPlxyXG4gICAgICAgICAgICA8TGluayBocmVmPXtgL2NvbnRhY3QvY29udGFjdC1saWdodGB9PlxyXG4gICAgICAgICAgICAgIDxhIGNsYXNzTmFtZT1cImJ1dG4gYm9yZCBjdXJ2ZSB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi41c1wiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+R2V0IEluIFRvdWNoPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBDYWxsVG9BY3Rpb247XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIlNwbGl0IiwiTGluayIsIkNhbGxUb0FjdGlvbiIsImltZyIsImJhY2tncm91bmRJbWFnZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Call-to-action/call-to-action.jsx\n"); + +/***/ }), + +/***/ "./src/components/Footer/footer.jsx": +/*!******************************************!*\ + !*** ./src/components/Footer/footer.jsx ***! + \******************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _data_app_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../data/app.json */ \"./src/data/app.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Footer\\\\footer.jsx\",\n _this = undefined;\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\nvar Footer = function Footer(_ref) {\n var hideBGCOLOR = _ref.hideBGCOLOR;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"footer\", {\n className: \"\".concat(!hideBGCOLOR ? \"sub-bg\" : \"\"),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item md-mb50\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"title\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h5\", {\n children: \"Contact Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"ul\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-map-marker\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Officeal Address\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"Baghdad Street, Al Dana area, Abu Dhabi, United Arab Emirates\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-mail\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Email Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"hello@businesshub.abudhabi\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-call\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Call Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"+971 26340404\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"logo\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.lightLogo,\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"social\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-facebook-f\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 51,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-twitter\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-instagram\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-youtube\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 61,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 60,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"copy-right\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"\\xA9 2024, 2024 Business HUB international investment - All Rights Reserved.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 5\n }, _this);\n};\n\n_c = Footer;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Footer);\n\nvar _c;\n\n$RefreshReg$(_c, \"Footer\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFQRixlQVVFO0FBQUcsb0JBQUksRUFBQyxJQUFSO0FBQUEsdUNBQ0U7QUFBRywyQkFBUyxFQUFDO0FBQWI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBVkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQUpGLGVBa0JFO0FBQUssdUJBQVMsRUFBQyxZQUFmO0FBQUEscUNBQ0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQWxCRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQW5DRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxXQURGO0FBcUVELENBdEVEOztLQUFNQztBQXdFTiwrREFBZUEsTUFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tcG9uZW50cy9Gb290ZXIvZm9vdGVyLmpzeD9mMzk0Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBuZXh0L25leHQvbm8taW1nLWVsZW1lbnQgKi9cclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgTGluayBmcm9tIFwibmV4dC9saW5rXCI7XHJcbmltcG9ydCBhcHBEYXRhIGZyb20gXCIuLi8uLi9kYXRhL2FwcC5qc29uXCI7XHJcblxyXG5jb25zdCBGb290ZXIgPSAoeyBoaWRlQkdDT0xPUiB9KSA9PiB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxmb290ZXIgY2xhc3NOYW1lPXtgJHshaGlkZUJHQ09MT1IgPyBcInN1Yi1iZ1wiIDogXCJcIn1gfT5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctNFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGl0bGVcIj5cclxuICAgICAgICAgICAgICAgIDxoNT5Db250YWN0IFVzPC9oNT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24gcGUtN3MtbWFwLW1hcmtlclwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg2Pk9mZmljZWFsIEFkZHJlc3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgQmFnaGRhZCBTdHJlZXQsIEFsIERhbmEgYXJlYSwgQWJ1IERoYWJpLCBVbml0ZWQgQXJhYlxyXG4gICAgICAgICAgICAgICAgICAgICAgRW1pcmF0ZXNcclxuICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvbiBwZS03cy1tYWlsXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+RW1haWwgVXM8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPmhlbGxvQGJ1c2luZXNzaHViLmFidWRoYWJpPC9wPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24gcGUtN3MtY2FsbFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg2PkNhbGwgVXM8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPis5NzEgMjYzNDA0MDQ8L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsb2dvXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz17YXBwRGF0YS5saWdodExvZ299IGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzb2NpYWxcIj5cclxuICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYWIgZmEtZmFjZWJvb2stZlwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYWIgZmEtdHdpdHRlclwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYWIgZmEtaW5zdGFncmFtXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgPGEgaHJlZj1cIiMwXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhYiBmYS15b3V0dWJlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29weS1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgIMKpIDIwMjQsIDIwMjQgQnVzaW5lc3MgSFVCIGludGVybmF0aW9uYWwgaW52ZXN0bWVudCAtIEFsbFxyXG4gICAgICAgICAgICAgICAgICBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9mb290ZXI+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IEZvb3RlcjtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiTGluayIsImFwcERhdGEiLCJGb290ZXIiLCJoaWRlQkdDT0xPUiIsImxpZ2h0TG9nbyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Footer/footer.jsx\n"); + +/***/ }), + +/***/ "./src/components/Full-testimonials/full-testimonials.jsx": +/*!****************************************************************!*\ + !*** ./src/components/Full-testimonials/full-testimonials.jsx ***! + \****************************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/classCallCheck */ \"./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/createClass */ \"./node_modules/@babel/runtime/helpers/esm/createClass.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized */ \"./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/inherits */ \"./node_modules/@babel/runtime/helpers/esm/inherits.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn */ \"./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf */ \"./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var react_slick__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react-slick */ \"./node_modules/react-slick/lib/index.js\");\n/* harmony import */ var slick_carousel_slick_slick_css__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! slick-carousel/slick/slick.css */ \"./node_modules/slick-carousel/slick/slick.css\");\n/* harmony import */ var slick_carousel_slick_slick_css__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(slick_carousel_slick_slick_css__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var slick_carousel_slick_slick_theme_css__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! slick-carousel/slick/slick-theme.css */ \"./node_modules/slick-carousel/slick/slick-theme.css\");\n/* harmony import */ var slick_carousel_slick_slick_theme_css__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(slick_carousel_slick_slick_theme_css__WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__);\n/* module decorator */ module = __webpack_require__.hmd(module);\n\n\n\n\n\n\n\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Full-testimonials\\\\full-testimonials.jsx\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nvar FullTestimonials = /*#__PURE__*/function (_React$Component) {\n (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(FullTestimonials, _React$Component);\n\n var _super = _createSuper(FullTestimonials);\n\n function FullTestimonials(props) {\n var _this;\n\n (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, FullTestimonials);\n\n _this = _super.call(this, props);\n\n (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_6__[\"default\"])((0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_this), \"renderArrows\", function () {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"arrows\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"container\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n onClick: function onClick() {\n return _this.slider.slickNext();\n },\n className: \"next cursor-pointer\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"span\", {\n className: \"pe-7s-angle-right\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 13\n }, (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_this))\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 11\n }, (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_this)), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n onClick: function onClick() {\n return _this.slider.slickPrev();\n },\n className: \"prev cursor-pointer\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"span\", {\n className: \"pe-7s-angle-left\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 13\n }, (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_this))\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 11\n }, (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_this))]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 9\n }, (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_this))\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 7\n }, (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_this));\n });\n\n return _this;\n }\n\n (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(FullTestimonials, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"section\", {\n className: \"testimonials \".concat(this.props.withIMG ? \"section-padding bg-img\" : this.props.withCOLOR ? \"section-padding back-color\" : this.props.noPadding ? \"\" : \"section-padding\", \" \").concat(this.props.classText ? this.props.classText : \"\"),\n style: {\n backgroundImage: \"\".concat(this.props.withIMG ? \"url(/img/testim-img.jpg)\" : \"none\")\n },\n children: [this.props.showHead && /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Testimonials\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 19\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: \"We love our clients from all over the world.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 51,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"container-fluid position-re\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"row wow fadeInUp\",\n \"data-wow-delay\": \".5s\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"col-lg-12\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(react_slick__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: \"slic-item\",\n ref: function ref(c) {\n return _this2.slider = c;\n },\n dots: false,\n infinite: true,\n arrows: true,\n centerMode: true,\n autoplay: true,\n rows: 1,\n slidesToScroll: 1,\n slidesToShow: 3,\n responsive: [{\n breakpoint: 1024,\n settings: {\n slidesToShow: 1,\n centerMode: false\n }\n }, {\n breakpoint: 767,\n settings: {\n slidesToShow: 1,\n centerMode: false\n }\n }, {\n breakpoint: 480,\n settings: {\n slidesToShow: 1,\n centerMode: false\n }\n }],\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"info valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"author\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"img\", {\n src: \"/img/clients/1.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 27\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 25\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"h6\", {\n className: \"author-name color-font\",\n children: \"Alex Regelman\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 25\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"span\", {\n className: \"author-details\",\n children: \"Co-founder, Colabrio\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 25\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 108,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 107,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 106,\n columnNumber: 19\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"p\", {\n children: \"I would highly recommend Vie Digital. I worked with the team on an animation for our \\u2018Click & Collect\\u2019 service.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 121,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 105,\n columnNumber: 17\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"info valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"author\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"img\", {\n src: \"/img/clients/1.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 27\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 25\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"h6\", {\n className: \"author-name color-font\",\n children: \"Alex Regelman\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 133,\n columnNumber: 25\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"span\", {\n className: \"author-details\",\n children: \"Co-founder, Colabrio\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 25\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 19\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"p\", {\n children: \"I would highly recommend Vie Digital. I worked with the team on an animation for our \\u2018Click & Collect\\u2019 service.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 142,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 17\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"info valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"author\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"img\", {\n src: \"/img/clients/1.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 152,\n columnNumber: 27\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 151,\n columnNumber: 25\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"h6\", {\n className: \"author-name color-font\",\n children: \"Alex Regelman\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 25\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"span\", {\n className: \"author-details\",\n children: \"Co-founder, Colabrio\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 25\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 150,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 149,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 19\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"p\", {\n children: \"I would highly recommend Vie Digital. I worked with the team on an animation for our \\u2018Click & Collect\\u2019 service.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 163,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 17\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"info valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"author\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"img\", {\n src: \"/img/clients/1.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 27\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 172,\n columnNumber: 25\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"h6\", {\n className: \"author-name color-font\",\n children: \"Alex Regelman\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 25\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"span\", {\n className: \"author-details\",\n children: \"Co-founder, Colabrio\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 25\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 171,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 19\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"p\", {\n children: \"I would highly recommend Vie Digital. I worked with the team on an animation for our \\u2018Click & Collect\\u2019 service.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 11\n }, this), this.renderArrows()]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 7\n }, this);\n }\n }]);\n\n return FullTestimonials;\n}((react__WEBPACK_IMPORTED_MODULE_7___default().Component));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (FullTestimonials);\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9GdWxsLXRlc3RpbW9uaWFscy9mdWxsLXRlc3RpbW9uaWFscy5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztJQUVNRTs7Ozs7QUFDSiw0QkFBWUMsS0FBWixFQUFtQjtBQUFBOztBQUFBOztBQUNqQiw4QkFBTUEsS0FBTjs7QUFEaUIsdVNBR0osWUFBTTtBQUNuQiwwQkFDRTtBQUFLLGlCQUFTLEVBQUMsUUFBZjtBQUFBLCtCQUNFO0FBQUssbUJBQVMsRUFBQyxXQUFmO0FBQUEsa0NBQ0U7QUFDRSxtQkFBTyxFQUFFO0FBQUEscUJBQU0sTUFBS0MsTUFBTCxDQUFZQyxTQUFaLEVBQU47QUFBQSxhQURYO0FBRUUscUJBQVMsRUFBQyxxQkFGWjtBQUFBLG1DQUlFO0FBQU0sdUJBQVMsRUFBQztBQUFoQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSkY7QUFBQTtBQUFBO0FBQUE7QUFBQSw2SkFERixlQU9FO0FBQ0UsbUJBQU8sRUFBRTtBQUFBLHFCQUFNLE1BQUtELE1BQUwsQ0FBWUUsU0FBWixFQUFOO0FBQUEsYUFEWDtBQUVFLHFCQUFTLEVBQUMscUJBRlo7QUFBQSxtQ0FJRTtBQUFNLHVCQUFTLEVBQUM7QUFBaEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUpGO0FBQUE7QUFBQTtBQUFBO0FBQUEsNkpBUEY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSx5SkFERjtBQWtCRCxLQXRCa0I7O0FBQUE7QUFFbEI7Ozs7V0FxQkQsa0JBQVM7QUFBQTs7QUFDUCwwQkFDRTtBQUNFLGlCQUFTLHlCQUNQLEtBQUtILEtBQUwsQ0FBV0ksT0FBWCxHQUNJLHdCQURKLEdBRUksS0FBS0osS0FBTCxDQUFXSyxTQUFYLEdBQ0EsNEJBREEsR0FFQSxLQUFLTCxLQUFMLENBQVdNLFNBQVgsR0FBdUIsRUFBdkIsR0FDQSxp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QWhCRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsd0JBcEdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGtCQURGLEVBK0hHLEtBQUtRLFlBQUwsRUEvSEg7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGdCQWhDRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsY0FERjtBQW9LRDs7OztFQTdMNEIxQjs7QUFnTS9CLCtEQUFlRSxnQkFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tcG9uZW50cy9GdWxsLXRlc3RpbW9uaWFscy9mdWxsLXRlc3RpbW9uaWFscy5qc3g/ZmUwZCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAbmV4dC9uZXh0L25vLWltZy1lbGVtZW50ICovXHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IFNsaWRlciBmcm9tIFwicmVhY3Qtc2xpY2tcIjtcclxuaW1wb3J0IFwic2xpY2stY2Fyb3VzZWwvc2xpY2svc2xpY2suY3NzXCI7XHJcbmltcG9ydCBcInNsaWNrLWNhcm91c2VsL3NsaWNrL3NsaWNrLXRoZW1lLmNzc1wiO1xyXG5cclxuY2xhc3MgRnVsbFRlc3RpbW9uaWFscyBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgIHN1cGVyKHByb3BzKTtcclxuICB9XHJcbiAgcmVuZGVyQXJyb3dzID0gKCkgPT4ge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJhcnJvd3NcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB0aGlzLnNsaWRlci5zbGlja05leHQoKX1cclxuICAgICAgICAgICAgY2xhc3NOYW1lPVwibmV4dCBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInBlLTdzLWFuZ2xlLXJpZ2h0XCI+PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHRoaXMuc2xpZGVyLnNsaWNrUHJldigpfVxyXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJwcmV2IGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwicGUtN3MtYW5nbGUtbGVmdFwiPjwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgfTtcclxuICByZW5kZXIoKSB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8c2VjdGlvblxyXG4gICAgICAgIGNsYXNzTmFtZT17YHRlc3RpbW9uaWFscyAke1xyXG4gICAgICAgICAgdGhpcy5wcm9wcy53aXRoSU1HXHJcbiAgICAgICAgICAgID8gXCJzZWN0aW9uLXBhZGRpbmcgYmctaW1nXCJcclxuICAgICAgICAgICAgOiB0aGlzLnByb3BzLndpdGhDT0xPUlxyXG4gICAgICAgICAgICA/IFwic2VjdGlvbi1wYWRkaW5nIGJhY2stY29sb3JcIlxyXG4gICAgICAgICAgICA6IHRoaXMucHJvcHMubm9QYWRkaW5nID8gXCJcIlxyXG4gICAgICAgICAgICA6IFwic2VjdGlvbi1wYWRkaW5nXCJcclxuICAgICAgICB9ICR7dGhpcy5wcm9wcy5jbGFzc1RleHQgPyB0aGlzLnByb3BzLmNsYXNzVGV4dCA6IFwiXCJ9YH1cclxuICAgICAgICBzdHlsZT17e1xyXG4gICAgICAgICAgYmFja2dyb3VuZEltYWdlOiBgJHtcclxuICAgICAgICAgICAgdGhpcy5wcm9wcy53aXRoSU1HID8gXCJ1cmwoL2ltZy90ZXN0aW0taW1nLmpwZylcIiA6IFwibm9uZVwiXHJcbiAgICAgICAgICB9YCxcclxuICAgICAgICB9fVxyXG4gICAgICA+XHJcbiAgICAgICAge3RoaXMucHJvcHMuc2hvd0hlYWQgJiYgKFxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTggY29sLW1kLTEwXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNlYy1oZWFkICB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8aDYgY2xhc3NOYW1lPVwid293IGZhZGVJblwiIGRhdGEtd293LWRlbGF5PVwiLjVzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgVGVzdGltb25pYWxzXHJcbiAgICAgICAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJ3b3cgY29sb3ItZm9udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIFdlIGxvdmUgb3VyIGNsaWVudHMgZnJvbSBhbGwgb3ZlciB0aGUgd29ybGQuXHJcbiAgICAgICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApfVxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lci1mbHVpZCBwb3NpdGlvbi1yZVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNXNcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMTJcIj5cclxuICAgICAgICAgICAgICA8U2xpZGVyXHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJzbGljLWl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgey4uLntcclxuICAgICAgICAgICAgICAgICAgcmVmOiAoYykgPT4gKHRoaXMuc2xpZGVyID0gYyksXHJcbiAgICAgICAgICAgICAgICAgIGRvdHM6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICBpbmZpbml0ZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgYXJyb3dzOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICBjZW50ZXJNb2RlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICBhdXRvcGxheTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgcm93czogMSxcclxuICAgICAgICAgICAgICAgICAgc2xpZGVzVG9TY3JvbGw6IDEsXHJcbiAgICAgICAgICAgICAgICAgIHNsaWRlc1RvU2hvdzogMyxcclxuICAgICAgICAgICAgICAgICAgcmVzcG9uc2l2ZTogW1xyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgIGJyZWFrcG9pbnQ6IDEwMjQsXHJcbiAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5nczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXNUb1Nob3c6IDEsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNlbnRlck1vZGU6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgIGJyZWFrcG9pbnQ6IDc2NyxcclxuICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlc1RvU2hvdzogMSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2VudGVyTW9kZTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludDogNDgwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3M6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzVG9TaG93OiAxLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjZW50ZXJNb2RlOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW5mbyB2YWxpZ25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYXV0aG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL2NsaWVudHMvMS5qcGdcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGg2IGNsYXNzTmFtZT1cImF1dGhvci1uYW1lIGNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBBbGV4IFJlZ2VsbWFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImF1dGhvci1kZXRhaWxzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ28tZm91bmRlciwgQ29sYWJyaW9cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgICBJIHdvdWxkIGhpZ2hseSByZWNvbW1lbmQgVmllIERpZ2l0YWwuIEkgd29ya2VkIHdpdGggdGhlIHRlYW1cclxuICAgICAgICAgICAgICAgICAgICBvbiBhbiBhbmltYXRpb24gZm9yIG91ciDigJhDbGljayAmYW1wOyBDb2xsZWN04oCZIHNlcnZpY2UuXHJcbiAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW5mbyB2YWxpZ25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYXV0aG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL2NsaWVudHMvMS5qcGdcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGg2IGNsYXNzTmFtZT1cImF1dGhvci1uYW1lIGNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBBbGV4IFJlZ2VsbWFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImF1dGhvci1kZXRhaWxzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ28tZm91bmRlciwgQ29sYWJyaW9cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgICBJIHdvdWxkIGhpZ2hseSByZWNvbW1lbmQgVmllIERpZ2l0YWwuIEkgd29ya2VkIHdpdGggdGhlIHRlYW1cclxuICAgICAgICAgICAgICAgICAgICBvbiBhbiBhbmltYXRpb24gZm9yIG91ciDigJhDbGljayAmYW1wOyBDb2xsZWN04oCZIHNlcnZpY2UuXHJcbiAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW5mbyB2YWxpZ25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYXV0aG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL2NsaWVudHMvMS5qcGdcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGg2IGNsYXNzTmFtZT1cImF1dGhvci1uYW1lIGNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBBbGV4IFJlZ2VsbWFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImF1dGhvci1kZXRhaWxzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ28tZm91bmRlciwgQ29sYWJyaW9cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgICBJIHdvdWxkIGhpZ2hseSByZWNvbW1lbmQgVmllIERpZ2l0YWwuIEkgd29ya2VkIHdpdGggdGhlIHRlYW1cclxuICAgICAgICAgICAgICAgICAgICBvbiBhbiBhbmltYXRpb24gZm9yIG91ciDigJhDbGljayAmYW1wOyBDb2xsZWN04oCZIHNlcnZpY2UuXHJcbiAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW5mbyB2YWxpZ25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYXV0aG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL2NsaWVudHMvMS5qcGdcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGg2IGNsYXNzTmFtZT1cImF1dGhvci1uYW1lIGNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBBbGV4IFJlZ2VsbWFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImF1dGhvci1kZXRhaWxzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ28tZm91bmRlciwgQ29sYWJyaW9cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgICBJIHdvdWxkIGhpZ2hseSByZWNvbW1lbmQgVmllIERpZ2l0YWwuIEkgd29ya2VkIHdpdGggdGhlIHRlYW1cclxuICAgICAgICAgICAgICAgICAgICBvbiBhbiBhbmltYXRpb24gZm9yIG91ciDigJhDbGljayAmYW1wOyBDb2xsZWN04oCZIHNlcnZpY2UuXHJcbiAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvU2xpZGVyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAge3RoaXMucmVuZGVyQXJyb3dzKCl9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvc2VjdGlvbj5cclxuICAgICk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBGdWxsVGVzdGltb25pYWxzO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJTbGlkZXIiLCJGdWxsVGVzdGltb25pYWxzIiwicHJvcHMiLCJzbGlkZXIiLCJzbGlja05leHQiLCJzbGlja1ByZXYiLCJ3aXRoSU1HIiwid2l0aENPTE9SIiwibm9QYWRkaW5nIiwiY2xhc3NUZXh0IiwiYmFja2dyb3VuZEltYWdlIiwic2hvd0hlYWQiLCJyZWYiLCJjIiwiZG90cyIsImluZmluaXRlIiwiYXJyb3dzIiwiY2VudGVyTW9kZSIsImF1dG9wbGF5Iiwicm93cyIsInNsaWRlc1RvU2Nyb2xsIiwic2xpZGVzVG9TaG93IiwicmVzcG9uc2l2ZSIsImJyZWFrcG9pbnQiLCJzZXR0aW5ncyIsInJlbmRlckFycm93cyIsIkNvbXBvbmVudCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Full-testimonials/full-testimonials.jsx\n"); + +/***/ }), + +/***/ "./src/components/Intro2/intro2.jsx": +/*!******************************************!*\ + !*** ./src/components/Intro2/intro2.jsx ***! + \******************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Intro2\\\\intro2.jsx\",\n _this = undefined;\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\nvar Intro2 = function Intro2(_ref) {\n var sliderRef = _ref.sliderRef;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"header\", {\n ref: sliderRef,\n className: \"slider-st valign position-re\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"col-lg-6 valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"cont md-mb50\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"sub-title mb-5\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"h6\", {\n children: \"Digital Consulting Agency\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"h1\", {\n className: \"mb-10 fw-600\",\n children: \"Unique Business Consulting.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"p\", {\n children: \"We help our clients succeed by creating brand identities, digital experiences, and print materials.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/about/about-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"a\", {\n className: \"butn bord curve mt-30\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"span\", {\n children: \"About Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"col-lg-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"img\", {\n src: \"/img/slid/001.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"line bottom left\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 7,\n columnNumber: 5\n }, _this);\n};\n\n_c = Intro2;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Intro2);\n\nvar _c;\n\n$RefreshReg$(_c, \"Intro2\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9JbnRybzIvaW50cm8yLmpzeC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTs7O0FBRUEsSUFBTUUsTUFBTSxHQUFHLFNBQVRBLE1BQVMsT0FBbUI7QUFBQSxNQUFoQkMsU0FBZ0IsUUFBaEJBLFNBQWdCO0FBQ2hDLHNCQUNFO0FBQVEsT0FBRyxFQUFFQSxTQUFiO0FBQXdCLGFBQVMsRUFBQyw4QkFBbEM7QUFBQSw0QkFDRTtBQUFLLGVBQVMsRUFBQyxXQUFmO0FBQUEsNkJBQ0U7QUFBSyxpQkFBUyxFQUFDLEtBQWY7QUFBQSxnQ0FDRTtBQUFLLG1CQUFTLEVBQUMsaUJBQWY7QUFBQSxpQ0FDRTtBQUFLLHFCQUFTLEVBQUMsY0FBZjtBQUFBLG9DQUNFO0FBQUssdUJBQVMsRUFBQyxnQkFBZjtBQUFBLHFDQUNFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxxQkFERixlQUlFO0FBQUksdUJBQVMsRUFBQyxjQUFkO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQUpGLGVBS0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBTEYsZUFTRSw4REFBQyxrREFBRDtBQUNFLGtCQUFJLHFCQUROO0FBQUEscUNBR0U7QUFBRyx5QkFBUyxFQUFDLHVCQUFiO0FBQUEsdUNBQ0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSEY7QUFBQTtBQUFBO0FBQUE7QUFBQSxxQkFURjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQURGLGVBb0JFO0FBQUssbUJBQVMsRUFBQyxVQUFmO0FBQUEsaUNBQ0U7QUFBSyxxQkFBUyxFQUFDLEtBQWY7QUFBQSxtQ0FDRTtBQUFLLGlCQUFHLEVBQUMsbUJBQVQ7QUFBNkIsaUJBQUcsRUFBQztBQUFqQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBcEJGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsYUFERixlQTZCRTtBQUFLLGVBQVMsRUFBQztBQUFmO0FBQUE7QUFBQTtBQUFBO0FBQUEsYUE3QkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBREY7QUFpQ0QsQ0FsQ0Q7O0tBQU1EO0FBb0NOLCtEQUFlQSxNQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL0ludHJvMi9pbnRybzIuanN4PzkwZTAiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXHJcbmltcG9ydCBMaW5rIGZyb20gJ25leHQvbGluaydcclxuXHJcbmNvbnN0IEludHJvMiA9ICh7IHNsaWRlclJlZiB9KSA9PiB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxoZWFkZXIgcmVmPXtzbGlkZXJSZWZ9IGNsYXNzTmFtZT1cInNsaWRlci1zdCB2YWxpZ24gcG9zaXRpb24tcmVcIj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctNiB2YWxpZ25cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250IG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInN1Yi10aXRsZSBtYi01XCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+RGlnaXRhbCBDb25zdWx0aW5nIEFnZW5jeTwvaDY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGgxIGNsYXNzTmFtZT1cIm1iLTEwIGZ3LTYwMFwiPlVuaXF1ZSBCdXNpbmVzcyBDb25zdWx0aW5nLjwvaDE+XHJcbiAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICBXZSBoZWxwIG91ciBjbGllbnRzIHN1Y2NlZWQgYnkgY3JlYXRpbmcgYnJhbmQgaWRlbnRpdGllcyxcclxuICAgICAgICAgICAgICAgIGRpZ2l0YWwgZXhwZXJpZW5jZXMsIGFuZCBwcmludCBtYXRlcmlhbHMuXHJcbiAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgIDxMaW5rXHJcbiAgICAgICAgICAgICAgICBocmVmPXtgL2Fib3V0L2Fib3V0LWRhcmtgfVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxhIGNsYXNzTmFtZT1cImJ1dG4gYm9yZCBjdXJ2ZSBtdC0zMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3Bhbj5BYm91dCBVczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3NsaWQvMDAxLmpwZ1wiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImxpbmUgYm90dG9tIGxlZnRcIj48L2Rpdj5cclxuICAgIDwvaGVhZGVyPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBJbnRybzIiXSwibmFtZXMiOlsiUmVhY3QiLCJMaW5rIiwiSW50cm8yIiwic2xpZGVyUmVmIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Intro2/intro2.jsx\n"); + +/***/ }), + +/***/ "./src/components/Navbar/navbar.jsx": +/*!******************************************!*\ + !*** ./src/components/Navbar/navbar.jsx ***! + \******************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _data_app_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../data/app.json */ \"./src/data/app.json\");\n/* harmony import */ var _common_navbar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/navbar */ \"./src/common/navbar.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Navbar\\\\navbar.jsx\",\n _this = undefined;\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nvar Navbar = function Navbar(_ref) {\n var lr = _ref.lr,\n nr = _ref.nr,\n theme = _ref.theme;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"nav\", {\n ref: nr,\n className: \"navbar navbar-expand-lg change \".concat(theme === \"themeL\" ? \"light\" : \"\"),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"a\", {\n className: \"logo\",\n children: theme ? theme === \"themeL\" ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n ref: lr,\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.darkLogo,\n alt: \"logo\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 17\n }, _this) : /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n ref: lr,\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.lightLogo,\n alt: \"logo\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 17\n }, _this) : /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n ref: lr,\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.lightLogo,\n alt: \"logo\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"button\", {\n className: \"navbar-toggler\",\n type: \"button\",\n onClick: _common_navbar__WEBPACK_IMPORTED_MODULE_3__.handleMobileDropdown,\n \"data-toggle\": \"collapse\",\n \"data-target\": \"#navbarSupportedContent\",\n \"aria-controls\": \"navbarSupportedContent\",\n \"aria-expanded\": \"false\",\n \"aria-label\": \"Toggle navigation\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"icon-bar\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"i\", {\n className: \"fas fa-bars\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"collapse navbar-collapse\",\n id: \"navbarSupportedContent\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"ul\", {\n className: \"navbar-nav ml-auto\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"nav-link \",\n children: \"Home\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/about\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"a\", {\n className: \"nav-link\",\n children: \"Who we are\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/services\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"nav-link\",\n children: \"Our Services\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 59,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/blog/blog-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"nav-link \",\n children: \"Blog\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/contact/contact-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"a\", {\n className: \"nav-link\",\n children: \"Contact\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 13\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, _this);\n};\n\n_c = Navbar;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Navbar);\n\nvar _c;\n\n$RefreshReg$(_c, \"Navbar\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFDLGtEQUFEO0FBQU0sa0JBQUksb0JBQVY7QUFBQSxxQ0FDRTtBQUFNLHlCQUFTLEVBQUMsV0FBaEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxtQkFoQkYsZUFxQkU7QUFBSSxxQkFBUyxFQUFDLFVBQWQ7QUFBQSxtQ0FDRSw4REFBQyxrREFBRDtBQUFNLGtCQUFJLDBCQUFWO0FBQUEscUNBQ0U7QUFBRyx5QkFBUyxFQUFDLFVBQWI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxtQkFyQkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxlQTlCRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFORjtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBREY7QUFxRUQsQ0F0RUQ7O0tBQU1DO0FBd0VOLCtEQUFlQSxNQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL05hdmJhci9uYXZiYXIuanN4PzdhZjAiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcclxuaW1wb3J0IGFwcERhdGEgZnJvbSBcIi4uLy4uL2RhdGEvYXBwLmpzb25cIjtcclxuaW1wb3J0IHsgaGFuZGxlRHJvcGRvd24sIGhhbmRsZU1vYmlsZURyb3Bkb3duIH0gZnJvbSBcIi4uLy4uL2NvbW1vbi9uYXZiYXJcIjtcclxuXHJcbmNvbnN0IE5hdmJhciA9ICh7IGxyLCBuciwgdGhlbWUgfSkgPT4ge1xyXG4gIHJldHVybiAoXHJcbiAgICA8bmF2XHJcbiAgICAgIHJlZj17bnJ9XHJcbiAgICAgIGNsYXNzTmFtZT17YG5hdmJhciBuYXZiYXItZXhwYW5kLWxnIGNoYW5nZSAke1xyXG4gICAgICAgIHRoZW1lID09PSBcInRoZW1lTFwiID8gXCJsaWdodFwiIDogXCJcIlxyXG4gICAgICB9YH1cclxuICAgID5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICA8TGluayBocmVmPVwiL1wiPlxyXG4gICAgICAgICAgPGEgY2xhc3NOYW1lPVwibG9nb1wiPlxyXG4gICAgICAgICAgICB7dGhlbWUgPyAoXHJcbiAgICAgICAgICAgICAgdGhlbWUgPT09IFwidGhlbWVMXCIgPyAoXHJcbiAgICAgICAgICAgICAgICA8aW1nIHJlZj17bHJ9IHNyYz17YXBwRGF0YS5kYXJrTG9nb30gYWx0PVwibG9nb1wiIC8+XHJcbiAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgIDxpbWcgcmVmPXtscn0gc3JjPXthcHBEYXRhLmxpZ2h0TG9nb30gYWx0PVwibG9nb1wiIC8+XHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgIDxpbWcgcmVmPXtscn0gc3JjPXthcHBEYXRhLmxpZ2h0TG9nb30gYWx0PVwibG9nb1wiIC8+XHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgPC9MaW5rPlxyXG5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICBjbGFzc05hbWU9XCJuYXZiYXItdG9nZ2xlclwiXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZU1vYmlsZURyb3Bkb3dufVxyXG4gICAgICAgICAgZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXHJcbiAgICAgICAgICBkYXRhLXRhcmdldD1cIiNuYXZiYXJTdXBwb3J0ZWRDb250ZW50XCJcclxuICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJuYXZiYXJTdXBwb3J0ZWRDb250ZW50XCJcclxuICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiXHJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiVG9nZ2xlIG5hdmlnYXRpb25cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24tYmFyXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhcyBmYS1iYXJzXCI+PC9pPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbGxhcHNlIG5hdmJhci1jb2xsYXBzZVwiIGlkPVwibmF2YmFyU3VwcG9ydGVkQ29udGVudFwiPlxyXG4gICAgICAgICAgPHVsIGNsYXNzTmFtZT1cIm5hdmJhci1uYXYgbWwtYXV0b1wiPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibmF2LWl0ZW0gXCI+XHJcbiAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9cIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm5hdi1saW5rIFwiPkhvbWU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibmF2LWl0ZW1cIj5cclxuICAgICAgICAgICAgICA8TGluayBocmVmPXtgL2Fib3V0YH0+XHJcbiAgICAgICAgICAgICAgICA8YSBjbGFzc05hbWU9XCJuYXYtbGlua1wiPldobyB3ZSBhcmU8L2E+XHJcbiAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibmF2LWl0ZW0gXCI+XHJcbiAgICAgICAgICAgICAgPExpbmsgaHJlZj17YC9zZXJ2aWNlc2B9PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibmF2LWxpbmtcIj5PdXIgU2VydmljZXM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibmF2LWl0ZW0gXCI+XHJcbiAgICAgICAgICAgICAgPExpbmsgaHJlZj17YC9ibG9nL2Jsb2ctbGlnaHRgfT5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm5hdi1saW5rIFwiPkJsb2c8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibmF2LWl0ZW1cIj5cclxuICAgICAgICAgICAgICA8TGluayBocmVmPXtgL2NvbnRhY3QvY29udGFjdC1saWdodGB9PlxyXG4gICAgICAgICAgICAgICAgPGEgY2xhc3NOYW1lPVwibmF2LWxpbmtcIj5Db250YWN0PC9hPlxyXG4gICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uYXY+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IE5hdmJhcjtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiTGluayIsImFwcERhdGEiLCJoYW5kbGVEcm9wZG93biIsImhhbmRsZU1vYmlsZURyb3Bkb3duIiwiTmF2YmFyIiwibHIiLCJuciIsInRoZW1lIiwiZGFya0xvZ28iLCJsaWdodExvZ28iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/components/Navbar/navbar.jsx\n"); + +/***/ }), + +/***/ "./src/components/Portfolio/portfolio.jsx": +/*!************************************************!*\ + !*** ./src/components/Portfolio/portfolio.jsx ***! + \************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _common_initIsotope__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/initIsotope */ \"./src/common/initIsotope.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Portfolio\\\\portfolio.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\nvar Portfolio = function Portfolio(_ref) {\n _s();\n\n var grid = _ref.grid,\n filterPosition = _ref.filterPosition;\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n setTimeout(function () {\n (0,_common_initIsotope__WEBPACK_IMPORTED_MODULE_2__[\"default\"])();\n }, 1000);\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"section\", {\n className: \"portfolio section-padding pb-70\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Portfolio\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: [\"Our Recent Web Design & \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"br\", {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 45\n }, _this), \" Some Past Projects.\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"\".concat(grid === 3 ? \"container-fluid\" : \"container\"),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"filtering \".concat(filterPosition === \"center\" ? \"text-center\" : filterPosition === \"left\" ? \"text-left\" : \"text-right\", \" col-12\"),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"filter\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n \"data-filter\": \"*\",\n className: \"active\",\n children: \"All\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n \"data-filter\": \".brand\",\n children: \"Branding\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n \"data-filter\": \".web\",\n children: \"Mobile App\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 44,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n \"data-filter\": \".graphic\",\n children: \"Creative\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"gallery full-width\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"\".concat(grid === 3 ? \"col-lg-4 col-md-6\" : grid === 2 ? \"col-md-6 lg-mr\" : \"col-12\", \" items graphic wow fadeInUp\"),\n \"data-wow-delay\": \".4s\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item-img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/project-details2/project-details2-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n className: \"imago wow\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: \"/img/portfolio/portfolio/1/1.jpg\",\n alt: \"image\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item-img-overlay\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 61,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 60,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Creativity Demand\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/works/works-dark\",\n children: \"Design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 19\n }, _this), \", \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/works/works-dark\",\n children: \"WordPress\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 65\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"\".concat(grid === 3 ? \"col-lg-4 col-md-6\" : grid === 2 ? \"col-md-6\" : \"col-12\", \" items web wow fadeInUp\"),\n \"data-wow-delay\": \".4s\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item-img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/project-details2/project-details2-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n className: \"imago wow\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: \"/img/portfolio/portfolio/1/2.jpg\",\n alt: \"image\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item-img-overlay\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 87,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 86,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Through The Breaking\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: \"Design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 19\n }, _this), \", \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: \"WordPress\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 44\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"\".concat(grid === 3 ? \"col-lg-4 col-md-6\" : grid === 2 ? \"col-md-6\" : \"col-12\", \" items brand wow fadeInUp\"),\n \"data-wow-delay\": \".4s\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item-img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/project-details2/project-details2-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n className: \"imago wow\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: \"/img/portfolio/portfolio/1/3.jpg\",\n alt: \"image\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item-img-overlay\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Create With Creatives\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 121,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: \"Design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 123,\n columnNumber: 19\n }, _this), \", \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: \"WordPress\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 123,\n columnNumber: 44\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 122,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 102,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"\".concat(grid === 3 ? \"col-lg-4 col-md-6\" : grid === 2 ? \"col-md-6\" : \"col-12\", \" items graphic wow fadeInUp\"),\n \"data-wow-delay\": \".4s\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item-img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/project-details2/project-details2-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n className: \"imago wow\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: \"/img/portfolio/portfolio/1/4.jpg\",\n alt: \"image\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 141,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item-img-overlay\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 142,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 140,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Energies of Love\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: \"Design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 149,\n columnNumber: 19\n }, _this), \", \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: \"WordPress\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 149,\n columnNumber: 44\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 146,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"\".concat(grid === 3 ? \"col-lg-4 col-md-6\" : grid === 2 ? \"col-md-6\" : \"col-12\", \" items web wow fadeInUp\"),\n \"data-wow-delay\": \".4s\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item-img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/project-details2/project-details2-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n className: \"imago wow\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: \"/img/portfolio/portfolio/1/5.jpg\",\n alt: \"image\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item-img-overlay\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 164,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"See It Yourself\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: \"Design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 19\n }, _this), \", \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: \"WordPress\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 44\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 172,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"\".concat(grid === 3 ? \"col-lg-4 col-md-6\" : grid === 2 ? \"col-md-6\" : \"col-12\", \" items brand wow fadeInUp\"),\n \"data-wow-delay\": \".4s\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item-img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/project-details2/project-details2-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n className: \"imago wow\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: \"/img/portfolio/portfolio/1/6.jpg\",\n alt: \"image\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item-img-overlay\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Blast From The Past\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: \"Design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, _this), \", \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: \"WordPress\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 44\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 13\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 5\n }, _this);\n};\n\n_s(Portfolio, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = Portfolio;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Portfolio);\n\nvar _c;\n\n$RefreshReg$(_c, \"Portfolio\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9Qb3J0Zm9saW8vcG9ydGZvbGlvLmpzeC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7OztBQUVBLElBQU1HLFNBQVMsR0FBRyxTQUFaQSxTQUFZLE9BQThCO0FBQUE7O0FBQUEsTUFBM0JDLElBQTJCLFFBQTNCQSxJQUEyQjtBQUFBLE1BQXJCQyxjQUFxQixRQUFyQkEsY0FBcUI7QUFDOUNMLEVBQUFBLHNEQUFBLENBQWdCLFlBQU07QUFDcEJPLElBQUFBLFVBQVUsQ0FBQyxZQUFNO0FBQ2ZMLE1BQUFBLCtEQUFXO0FBQ1osS0FGUyxFQUVQLElBRk8sQ0FBVjtBQUdELEdBSkQsRUFJRyxFQUpIO0FBS0Esc0JBQ0U7QUFBUyxhQUFTLEVBQUMsaUNBQW5CO0FBQUEsNEJBQ0U7QUFBSyxlQUFTLEVBQUMsV0FBZjtBQUFBLDZCQUNFO0FBQUssaUJBQVMsRUFBQyw0QkFBZjtBQUFBLCtCQUNFO0FBQUssbUJBQVMsRUFBQyxvQkFBZjtBQUFBLGlDQUNFO0FBQUsscUJBQVMsRUFBQyxzQkFBZjtBQUFBLG9DQUNFO0FBQUksdUJBQVMsRUFBQyxZQUFkO0FBQTJCLGdDQUFlLEtBQTFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQURGLGVBSUU7QUFBSSx1QkFBUyxFQUFDLGdCQUFkO0FBQUEsa0VBQzhCO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBRDlCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxxQkFKRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsYUFERixlQWVFO0FBQUssZUFBUyxZQUFLRSxJQUFJLEtBQUssQ0FBVCxHQUFhLGlCQUFiLEdBQWlDLFdBQXRDLENBQWQ7QUFBQSw2QkFDRTtBQUFLLGlCQUFTLEVBQUMsS0FBZjtBQUFBLGdDQUNFO0FB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LDZCQUFTLEVBQUM7QUFBZjtBQUFBO0FBQUE7QUFBQTtBQUFBLDJCQUZGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQVZGLGVBa0JFO0FBQUssdUJBQVMsRUFBQyxNQUFmO0FBQUEsc0NBQ0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBREYsZUFFRTtBQUFBLHdDQUNFO0FBQUcsc0JBQUksRUFBQyxJQUFSO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHlCQURGLHFCQUMyQjtBQUFHLHNCQUFJLEVBQUMsSUFBUjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSx5QkFEM0I7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQUZGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxxQkFsQkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLG1CQW5JRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBcEJGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsYUFmRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsV0FERjtBQXNNRCxDQTVNRDs7R0FBTUQ7O0tBQUFBO0FBOE1OLCtEQUFlQSxTQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL1BvcnRmb2xpby9wb3J0Zm9saW8uanN4PzdkMTYiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcclxuaW1wb3J0IGluaXRJc290b3BlIGZyb20gXCIuLi8uLi9jb21tb24vaW5pdElzb3RvcGVcIjtcclxuXHJcbmNvbnN0IFBvcnRmb2xpbyA9ICh7IGdyaWQsIGZpbHRlclBvc2l0aW9uIH0pID0+IHtcclxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGluaXRJc290b3BlKCk7XHJcbiAgICB9LCAxMDAwKTtcclxuICB9LCBbXSk7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInBvcnRmb2xpbyBzZWN0aW9uLXBhZGRpbmcgcGItNzBcIj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy04IGNvbC1tZC0xMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNlYy1oZWFkIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGg2IGNsYXNzTmFtZT1cIndvdyBmYWRlSW5cIiBkYXRhLXdvdy1kZWxheT1cIi41c1wiPlxyXG4gICAgICAgICAgICAgICAgUG9ydGZvbGlvXHJcbiAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwid293IGNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgIE91ciBSZWNlbnQgV2ViIERlc2lnbiAmYW1wOyA8YnIgLz4gU29tZSBQYXN0IFByb2plY3RzLlxyXG4gICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7Z3JpZCA9PT0gMyA/IFwiY29udGFpbmVyLWZsdWlkXCIgOiBcImNvbnRhaW5lclwifWB9PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17YGZpbHRlcmluZyAke1xyXG4gICAgICAgICAgICAgIGZpbHRlclBvc2l0aW9uID09PSBcImNlbnRlclwiXHJcbiAgICAgICAgICAgICAgICA/IFwidGV4dC1jZW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgOiBmaWx0ZXJQb3NpdGlvbiA9PT0gXCJsZWZ0XCJcclxuICAgICAgICAgICAgICAgID8gXCJ0ZXh0LWxlZnRcIlxyXG4gICAgICAgICAgICAgICAgOiBcInRleHQtcmlnaHRcIlxyXG4gICAgICAgICAgICB9IGNvbC0xMmB9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmlsdGVyXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gZGF0YS1maWx0ZXI9XCIqXCIgY2xhc3NOYW1lPVwiYWN0aXZlXCI+XHJcbiAgICAgICAgICAgICAgICBBbGxcclxuICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPHNwYW4gZGF0YS1maWx0ZXI9XCIuYnJhbmRcIj5CcmFuZGluZzwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhbiBkYXRhLWZpbHRlcj1cIi53ZWJcIj5Nb2JpbGUgQXBwPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGRhdGEtZmlsdGVyPVwiLmdyYXBoaWNcIj5DcmVhdGl2ZTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdhbGxlcnkgZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtcclxuICAgICAgICAgICAgICAgIGdyaWQgPT09IDNcclxuICAgICAgICAgICAgICAgICAgPyBcImNvbC1sZy00IGNvbC1tZC02XCJcclxuICAgICAgICAgICAgICAgICAgOiBncmlkID09PSAyXHJcbiAgICAgICAgICAgICAgICAgID8gXCJjb2wtbWQtNiBsZy1tclwiXHJcbiAgICAgICAgICAgICAgICAgIDogXCJjb2wtMTJcIlxyXG4gICAgICAgICAgICAgIH0gaXRlbXMgZ3JhcGhpYyB3b3cgZmFkZUluVXBgfVxyXG4gICAgICAgICAgICAgIGRhdGEtd293LWRlbGF5PVwiLjRzXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWdcIj5cclxuICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9e2AvcHJvamVjdC1kZXRhaWxzMi9wcm9qZWN0LWRldGFpbHMyLWRhcmtgfT5cclxuICAgICAgICAgICAgICAgICAgPGEgY2xhc3NOYW1lPVwiaW1hZ28gd293XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3BvcnRmb2xpby9wb3J0Zm9saW8vMS8xLmpwZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nLW92ZXJsYXlcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgPGg2PkNyZWF0aXZpdHkgRGVtYW5kPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL3dvcmtzL3dvcmtzLWRhcmtcIj5EZXNpZ248L0xpbms+LCA8TGluayBocmVmPVwiL3dvcmtzL3dvcmtzLWRhcmtcIj5Xb3JkUHJlc3M8L0xpbms+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7XHJcbiAgICAgICAgICAgICAgICBncmlkID09PSAzXHJcbiAgICAgICAgICAgICAgICAgID8gXCJjb2wtbGctNCBjb2wtbWQtNlwiXHJcbiAgICAgICAgICAgICAgICAgIDogZ3JpZCA9PT0gMlxyXG4gICAgICAgICAgICAgICAgICA/IFwiY29sLW1kLTZcIlxyXG4gICAgICAgICAgICAgICAgICA6IFwiY29sLTEyXCJcclxuICAgICAgICAgICAgICB9IGl0ZW1zIHdlYiB3b3cgZmFkZUluVXBgfVxyXG4gICAgICAgICAgICAgIGRhdGEtd293LWRlbGF5PVwiLjRzXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWdcIj5cclxuICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9e2AvcHJvamVjdC1kZXRhaWxzMi9wcm9qZWN0LWRldGFpbHMyLWRhcmtgfT5cclxuICAgICAgICAgICAgICAgICAgPGEgY2xhc3NOYW1lPVwiaW1hZ28gd293XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3BvcnRmb2xpby9wb3J0Zm9saW8vMS8yLmpwZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nLW92ZXJsYXlcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlRocm91Z2ggVGhlIEJyZWFraW5nPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8YSBocmVmPVwiIzBcIj5EZXNpZ248L2E+LCA8YSBocmVmPVwiIzBcIj5Xb3JkUHJlc3M8L2E+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7XHJcbiAgICAgICAgICAgICAgICBncmlkID09PSAzXHJcbiAgICAgICAgICAgICAgICAgID8gXCJjb2wtbGctNCBjb2wtbWQtNlwiXHJcbiAgICAgICAgICAgICAgICAgIDogZ3JpZCA9PT0gMlxyXG4gICAgICAgICAgICAgICAgICA/IFwiY29sLW1kLTZcIlxyXG4gICAgICAgICAgICAgICAgICA6IFwiY29sLTEyXCJcclxuICAgICAgICAgICAgICB9IGl0ZW1zIGJyYW5kIHdvdyBmYWRlSW5VcGB9XHJcbiAgICAgICAgICAgICAgZGF0YS13b3ctZGVsYXk9XCIuNHNcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPExpbmsgaHJlZj17YC9wcm9qZWN0LWRldGFpbHMyL3Byb2plY3QtZGV0YWlsczItZGFya2B9PlxyXG4gICAgICAgICAgICAgICAgICA8YSBjbGFzc05hbWU9XCJpbWFnbyB3b3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvcG9ydGZvbGlvL3BvcnRmb2xpby8xLzMuanBnXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWctb3ZlcmxheVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+Q3JlYXRlIFdpdGggQ3JlYXRpdmVzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8YSBocmVmPVwiIzBcIj5EZXNpZ248L2E+LCA8YSBocmVmPVwiIzBcIj5Xb3JkUHJlc3M8L2E+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7XHJcbiAgICAgICAgICAgICAgICBncmlkID09PSAzXHJcbiAgICAgICAgICAgICAgICAgID8gXCJjb2wtbGctNCBjb2wtbWQtNlwiXHJcbiAgICAgICAgICAgICAgICAgIDogZ3JpZCA9PT0gMlxyXG4gICAgICAgICAgICAgICAgICA/IFwiY29sLW1kLTZcIlxyXG4gICAgICAgICAgICAgICAgICA6IFwiY29sLTEyXCJcclxuICAgICAgICAgICAgICB9IGl0ZW1zIGdyYXBoaWMgd293IGZhZGVJblVwYH1cclxuICAgICAgICAgICAgICBkYXRhLXdvdy1kZWxheT1cIi40c1wiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8TGluayBocmVmPXtgL3Byb2plY3QtZGV0YWlsczIvcHJvamVjdC1kZXRhaWxzMi1kYXJrYH0+XHJcbiAgICAgICAgICAgICAgICAgIDxhIGNsYXNzTmFtZT1cImltYWdvIHdvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy9wb3J0Zm9saW8vcG9ydGZvbGlvLzEvNC5qcGdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZy1vdmVybGF5XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgIDxoNj5FbmVyZ2llcyBvZiBMb3ZlPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8YSBocmVmPVwiIzBcIj5EZXNpZ248L2E+LCA8YSBocmVmPVwiIzBcIj5Xb3JkUHJlc3M8L2E+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7XHJcbiAgICAgICAgICAgICAgICBncmlkID09PSAzXHJcbiAgICAgICAgICAgICAgICAgID8gXCJjb2wtbGctNCBjb2wtbWQtNlwiXHJcbiAgICAgICAgICAgICAgICAgIDogZ3JpZCA9PT0gMlxyXG4gICAgICAgICAgICAgICAgICA/IFwiY29sLW1kLTZcIlxyXG4gICAgICAgICAgICAgICAgICA6IFwiY29sLTEyXCJcclxuICAgICAgICAgICAgICB9IGl0ZW1zIHdlYiB3b3cgZmFkZUluVXBgfVxyXG4gICAgICAgICAgICAgIGRhdGEtd293LWRlbGF5PVwiLjRzXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWdcIj5cclxuICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9e2AvcHJvamVjdC1kZXRhaWxzMi9wcm9qZWN0LWRldGFpbHMyLWRhcmtgfT5cclxuICAgICAgICAgICAgICAgICAgPGEgY2xhc3NOYW1lPVwiaW1hZ28gd293XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3BvcnRmb2xpby9wb3J0Zm9saW8vMS81LmpwZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nLW92ZXJsYXlcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlNlZSBJdCBZb3Vyc2VsZjwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiMwXCI+RGVzaWduPC9hPiwgPGEgaHJlZj1cIiMwXCI+V29yZFByZXNzPC9hPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2Ake1xyXG4gICAgICAgICAgICAgICAgZ3JpZCA9PT0gM1xyXG4gICAgICAgICAgICAgICAgICA/IFwiY29sLWxnLTQgY29sLW1kLTZcIlxyXG4gICAgICAgICAgICAgICAgICA6IGdyaWQgPT09IDJcclxuICAgICAgICAgICAgICAgICAgPyBcImNvbC1tZC02XCJcclxuICAgICAgICAgICAgICAgICAgOiBcImNvbC0xMlwiXHJcbiAgICAgICAgICAgICAgfSBpdGVtcyBicmFuZCB3b3cgZmFkZUluVXBgfVxyXG4gICAgICAgICAgICAgIGRhdGEtd293LWRlbGF5PVwiLjRzXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWdcIj5cclxuICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9e2AvcHJvamVjdC1kZXRhaWxzMi9wcm9qZWN0LWRldGFpbHMyLWRhcmtgfT5cclxuICAgICAgICAgICAgICAgICAgPGEgY2xhc3NOYW1lPVwiaW1hZ28gd293XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3BvcnRmb2xpby9wb3J0Zm9saW8vMS82LmpwZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nLW92ZXJsYXlcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgPGg2PkJsYXN0IEZyb20gVGhlIFBhc3Q8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjMFwiPkRlc2lnbjwvYT4sIDxhIGhyZWY9XCIjMFwiPldvcmRQcmVzczwvYT5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L3NlY3Rpb24+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IFBvcnRmb2xpbztcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiTGluayIsImluaXRJc290b3BlIiwiUG9ydGZvbGlvIiwiZ3JpZCIsImZpbHRlclBvc2l0aW9uIiwidXNlRWZmZWN0Iiwic2V0VGltZW91dCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Portfolio/portfolio.jsx\n"); + +/***/ }), + +/***/ "./src/components/Services/services.jsx": +/*!**********************************************!*\ + !*** ./src/components/Services/services.jsx ***! + \**********************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _data_sections_features_json__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../data/sections/features.json */ \"./src/data/sections/features.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Services\\\\services.jsx\",\n _this = undefined;\n\n\n\n\n\n\nvar Services = function Services(_ref) {\n var style = _ref.style,\n lines = _ref.lines;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"section\", {\n className: \"services bords section-padding \".concat(style === \"4item\" ? \"lficon\" : lines ? \"\" : \"pt-0\"),\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"container\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Best Features\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: \"We are a new digital product development agency\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"row\",\n children: style === \"4item\" ? _data_sections_features_json__WEBPACK_IMPORTED_MODULE_1__.map(function (feature) {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"col-lg-6 wow fadeInLeft\",\n \"data-wow-delay\": \"\".concat(feature.id == 1 ? \".5\" : feature.id === 2 ? \".7\" : feature.id === 3 ? \".9\" : \"1.1\", \"s\"),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"item-box\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"span\", {\n className: \"icon \".concat(feature.icon)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"h6\", {\n children: feature.title\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"p\", {\n children: feature.content\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 23\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 44,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 19\n }, _this)\n }, feature.id, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 17\n }, _this);\n }) : // max item 3 in Home page\n _data_sections_features_json__WEBPACK_IMPORTED_MODULE_1__.slice(0, 3).map(function (feature) {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"col-lg-4 wow fadeInLeft\",\n \"data-wow-delay\": \".5s\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"item-box md-mb50\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"span\", {\n className: \"icon \".concat(feature.icon)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 59,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"h6\", {\n children: feature.title\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 60,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"p\", {\n children: feature.content\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 61,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 19\n }, _this)\n }, feature.id, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 17\n }, _this);\n })\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 9\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 7\n }, _this), lines ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"line top left\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"line bottom right\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 11\n }, _this)]\n }, void 0, true) : null]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 6,\n columnNumber: 5\n }, _this);\n};\n\n_c = Services;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Services);\n\nvar _c;\n\n$RefreshReg$(_c, \"Services\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9TZXJ2aWNlcy9zZXJ2aWNlcy5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBO0FBQ0E7Ozs7QUFFQSxJQUFNRSxRQUFRLEdBQUcsU0FBWEEsUUFBVyxPQUFzQjtBQUFBLE1BQW5CQyxLQUFtQixRQUFuQkEsS0FBbUI7QUFBQSxNQUFaQyxLQUFZLFFBQVpBLEtBQVk7QUFDckMsc0JBQ0U7QUFDRSxhQUFTLDJDQUNQRCxLQUFLLEtBQUssT0FBVixHQUFvQixRQUFwQixHQUErQkMsS0FBSyxHQUFHLEVBQUgsR0FBUSxNQURyQyxDQURYO0FBQUEsNEJBS0U7QUFBSyxlQUFTLEVBQUMsV0FBZjtBQUFBLDhCQUNFO0FBQUssaUJBQVMsRUFBQyw0QkFBZjtBQUFBLCtCQUNFO0FBQUssbUJBQVMsRUFBQyxvQkFBZjtBQUFBLGlDQUNFO0FBQUsscUJBQVMsRUFBQyx1QkFBZjtBQUFBLG9DQUNFO0FBQUksdUJBQVMsRUFBQyxZQUFkO0FBQTJCLGdDQUFlLEtBQTFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQURGLGVBSUU7QUFBSSx1QkFBUyxFQUFDLGdCQUFkO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQUpGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGVBREYsZUFhRTtBQUFLLGlCQUFTLEVBQUMsS0FBZjtBQUFBLGtCQUNHRCxLQUFLLEtBQUssT0FBVixHQUNHRiw2REFBQSxDQUFpQixVQUFDSyxPQUFEO0FBQUEsOEJBQ2Y7QUFFRSxxQkFBUyxFQUFDLHlCQUZaO0FBR0Usd0NBQ0VBLE9BQU8sQ0FBQ0MsRUFBUixJQUFjLENBQWQsR0FDSSxJQURKLEdBRUlELE9BQU8sQ0FBQ0MsRUFBUixLQUFlLENBQWYsR0FDQSxJQURBLEdBRUFELE9BQU8sQ0FBQ0MsRUFBUixLQUFlLENBQWYsR0FDQSxJQURBLEdBRUEsS0FQTixNQUhGO0FBQUEsbUNBYUU7QUFBSyx1QkFBUyxFQUFDLFVBQWY7QUFBQSxzQ0FDRTtBQUFBLHVDQUNFO0FBQU0sMkJBQVMsaUJBQVVELE9BQU8sQ0FBQ0UsSUFBbEI7QUFBZjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFERixlQUlFO0FBQUsseUJBQVMsRUFBQyxNQUFmO0FBQUEsd0NBQ0U7QUFBQSw0QkFBS0YsT0FBTyxDQUFDRztBQUFiO0FBQUE7QUFBQTtBQUFBO0FBQUEseUJBREYsZUFFRTtBQUFBLDRCQUFJSCxPQUFPLENBQUNJO0FBQVo7QUFBQTtBQUFBO0FBQUE7QUFBQSx5QkFGRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBSkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBYkYsYUFDT0osT0FBTyxDQUFDQyxFQURmO0FBQUE7QUFBQTtBQUFBO0FBQUEsbUJBRGU7QUFBQSxTQUFqQixDQURILEdBMEJHO0FBQ0FOLFFBQUFBLCtEQUFBLENBQW1CLENBQW5CLEVBQXNCLENBQXRCLEVBQXlCSSxHQUF6QixDQUE2QixVQUFDQyxPQUFEO0FBQUEsOEJBQzNCO0FBRUUscUJBQVMsRUFBQyx5QkFGWjtBQUdFLDhCQUFlLEtBSGpCO0FBQUEsbUNBS0U7QUFBSyx1QkFBUyxFQUFDLGtCQUFmO0FBQUEsc0NBQ0U7QUFBTSx5QkFBUyxpQkFBVUEsT0FBTyxDQUFDRSxJQUFsQjtBQUFmO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBREYsZUFFRTtBQUFBLDBCQUFLRixPQUFPLENBQUNHO0FBQWI7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFGRixlQUdFO0FBQUEsMEJBQUlILE9BQU8sQ0FBQ0k7QUFBWjtBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQUhGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUxGLGFBQ09KLE9BQU8sQ0FBQ0MsRUFEZjtBQUFBO0FBQUE7QUFBQTtBQUFBLG1CQUQyQjtBQUFBLFNBQTdCO0FBNUJOO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFiRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsYUFMRixFQTZER0gsS0FBSyxnQkFDSjtBQUFBLDhCQUNFO0FBQUssaUJBQVMsRUFBQztBQUFmO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFERixlQUVFO0FBQUssaUJBQVMsRUFBQztBQUFmO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFGRjtBQUFBLG9CQURJLEdBS0YsSUFsRU47QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBREY7QUFzRUQsQ0F2RUQ7O0tBQU1GO0FBeUVOLCtEQUFlQSxRQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL1NlcnZpY2VzL3NlcnZpY2VzLmpzeD8yZWU0Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IGZlYXR1cmVzRGF0YSBmcm9tIFwiLi4vLi4vZGF0YS9zZWN0aW9ucy9mZWF0dXJlcy5qc29uXCI7XHJcblxyXG5jb25zdCBTZXJ2aWNlcyA9ICh7IHN0eWxlLCBsaW5lcyB9KSA9PiB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uXHJcbiAgICAgIGNsYXNzTmFtZT17YHNlcnZpY2VzIGJvcmRzIHNlY3Rpb24tcGFkZGluZyAke1xyXG4gICAgICAgIHN0eWxlID09PSBcIjRpdGVtXCIgPyBcImxmaWNvblwiIDogbGluZXMgPyBcIlwiIDogXCJwdC0wXCJcclxuICAgICAgfWB9XHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOCBjb2wtbWQtMTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWMtaGVhZCAgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8aDYgY2xhc3NOYW1lPVwid293IGZhZGVJblwiIGRhdGEtd293LWRlbGF5PVwiLjVzXCI+XHJcbiAgICAgICAgICAgICAgICBCZXN0IEZlYXR1cmVzXHJcbiAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwid293IGNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgIFdlIGFyZSBhIG5ldyBkaWdpdGFsIHByb2R1Y3QgZGV2ZWxvcG1lbnQgYWdlbmN5XHJcbiAgICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAge3N0eWxlID09PSBcIjRpdGVtXCJcclxuICAgICAgICAgICAgPyBmZWF0dXJlc0RhdGEubWFwKChmZWF0dXJlKSA9PiAoXHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgIGtleT17ZmVhdHVyZS5pZH1cclxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiY29sLWxnLTYgd293IGZhZGVJbkxlZnRcIlxyXG4gICAgICAgICAgICAgICAgICBkYXRhLXdvdy1kZWxheT17YCR7XHJcbiAgICAgICAgICAgICAgICAgICAgZmVhdHVyZS5pZCA9PSAxXHJcbiAgICAgICAgICAgICAgICAgICAgICA/IFwiLjVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgOiBmZWF0dXJlLmlkID09PSAyXHJcbiAgICAgICAgICAgICAgICAgICAgICA/IFwiLjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgOiBmZWF0dXJlLmlkID09PSAzXHJcbiAgICAgICAgICAgICAgICAgICAgICA/IFwiLjlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgOiBcIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgIH1zYH1cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWJveFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2BpY29uICR7ZmVhdHVyZS5pY29ufWB9Pjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxoNj57ZmVhdHVyZS50aXRsZX08L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHA+e2ZlYXR1cmUuY29udGVudH08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgKSlcclxuICAgICAgICAgICAgOiAvLyBtYXggaXRlbSAzIGluIEhvbWUgcGFnZVxyXG4gICAgICAgICAgICAgIGZlYXR1cmVzRGF0YS5zbGljZSgwLCAzKS5tYXAoKGZlYXR1cmUpID0+IChcclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAga2V5PXtmZWF0dXJlLmlkfVxyXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJjb2wtbGctNCB3b3cgZmFkZUluTGVmdFwiXHJcbiAgICAgICAgICAgICAgICAgIGRhdGEtd293LWRlbGF5PVwiLjVzXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWJveCBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtgaWNvbiAke2ZlYXR1cmUuaWNvbn1gfT48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg2PntmZWF0dXJlLnRpdGxlfTwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+e2ZlYXR1cmUuY29udGVudH08L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgKSl9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICB7bGluZXMgPyAoXHJcbiAgICAgICAgPD5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGluZSB0b3AgbGVmdFwiPjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsaW5lIGJvdHRvbSByaWdodFwiPjwvZGl2PlxyXG4gICAgICAgIDwvPlxyXG4gICAgICApIDogbnVsbH1cclxuICAgIDwvc2VjdGlvbj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgU2VydmljZXM7XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsImZlYXR1cmVzRGF0YSIsIlNlcnZpY2VzIiwic3R5bGUiLCJsaW5lcyIsIm1hcCIsImZlYXR1cmUiLCJpZCIsImljb24iLCJ0aXRsZSIsImNvbnRlbnQiLCJzbGljZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Services/services.jsx\n"); + +/***/ }), + +/***/ "./src/components/Split/index.jsx": +/*!****************************************!*\ + !*** ./src/components/Split/index.jsx ***! + \****************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/classCallCheck */ \"./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/createClass */ \"./node_modules/@babel/runtime/helpers/esm/createClass.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized */ \"./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/inherits */ \"./node_modules/@babel/runtime/helpers/esm/inherits.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn */ \"./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf */ \"./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__);\n/* module decorator */ module = __webpack_require__.hmd(module);\n\n\n\n\n\n\n\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Split\\\\index.jsx\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\n\n\n\nvar Split = /*#__PURE__*/function (_React$Component) {\n (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(Split, _React$Component);\n\n var _super = _createSuper(Split);\n\n function Split() {\n var _this;\n\n (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, Split);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_6__[\"default\"])((0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_this), \"target\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createRef());\n\n (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_6__[\"default\"])((0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_this), \"split\", function () {\n if (_this.target.current) {\n Splitting({\n target: _this.target.current\n });\n }\n });\n\n (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_6__[\"default\"])((0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_this), \"componentDidMount\", _this.split);\n\n (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_6__[\"default\"])((0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_this), \"componentDidUpdate\", _this.split);\n\n return _this;\n }\n\n (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Split, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n ref: this.target,\n children: this.props.children\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 12\n }, this);\n }\n }]);\n\n return Split;\n}((react__WEBPACK_IMPORTED_MODULE_7___default().Component));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Split);\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9TcGxpdC9pbmRleC5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7O0lBRU1DOzs7Ozs7Ozs7Ozs7Ozs7OzhTQUNLRCxzREFBQTs7Z1NBRUQsWUFBTTtBQUNaLFVBQUksTUFBS0csTUFBTCxDQUFZQyxPQUFoQixFQUF5QjtBQUN2QkMsUUFBQUEsU0FBUyxDQUFDO0FBQUVGLFVBQUFBLE1BQU0sRUFBRSxNQUFLQSxNQUFMLENBQVlDO0FBQXRCLFNBQUQsQ0FBVDtBQUNEO0FBQ0Y7OzRTQUVtQixNQUFLRTs7NlNBQ0osTUFBS0E7Ozs7Ozs7V0FFMUIsa0JBQVM7QUFDUCwwQkFBTztBQUFLLFdBQUcsRUFBRSxLQUFLSCxNQUFmO0FBQUEsa0JBQXdCLEtBQUtJLEtBQUwsQ0FBV0M7QUFBbkM7QUFBQTtBQUFBO0FBQUE7QUFBQSxjQUFQO0FBQ0Q7Ozs7RUFkaUJSOztBQWlCcEIsK0RBQWVDLEtBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbXBvbmVudHMvU3BsaXQvaW5kZXguanN4Pzg3MTAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5cclxuY2xhc3MgU3BsaXQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG4gIHRhcmdldCA9IFJlYWN0LmNyZWF0ZVJlZigpO1xyXG5cclxuICBzcGxpdCA9ICgpID0+IHtcclxuICAgIGlmICh0aGlzLnRhcmdldC5jdXJyZW50KSB7XHJcbiAgICAgIFNwbGl0dGluZyh7IHRhcmdldDogdGhpcy50YXJnZXQuY3VycmVudCB9KTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICBjb21wb25lbnREaWRNb3VudCA9IHRoaXMuc3BsaXQ7XHJcbiAgY29tcG9uZW50RGlkVXBkYXRlID0gdGhpcy5zcGxpdDtcclxuXHJcbiAgcmVuZGVyKCkge1xyXG4gICAgcmV0dXJuIDxkaXYgcmVmPXt0aGlzLnRhcmdldH0+e3RoaXMucHJvcHMuY2hpbGRyZW59PC9kaXY+O1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgU3BsaXQ7XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIlNwbGl0IiwiY3JlYXRlUmVmIiwidGFyZ2V0IiwiY3VycmVudCIsIlNwbGl0dGluZyIsInNwbGl0IiwicHJvcHMiLCJjaGlsZHJlbiIsIkNvbXBvbmVudCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Split/index.jsx\n"); + +/***/ }), + +/***/ "./src/components/Team2/team2.jsx": +/*!****************************************!*\ + !*** ./src/components/Team2/team2.jsx ***! + \****************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Team2\\\\team2.jsx\",\n _this = undefined;\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\nvar Team2 = function Team2() {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"section\", {\n className: \"team section-padding\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Our Team\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: \"An original team of creators designers & dreamers.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 7,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"container-fluid\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"img\", {\n src: \"/img/team/1.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"g\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"text\", {\n fill: \"#fff\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"textPath\", {\n xlinkHref: \"#circlePath1\",\n children: \"CEO Manager CEO Manager CEO Manager\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 23\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"info\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"h6\", {\n children: \"Ryan Hicks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"span\", {\n children: \"Client Manager\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"img\", {\n src: \"/img/team/2.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"g\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 87,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"text\", {\n fill: \"#fff\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"textPath\", {\n xlinkHref: \"#circlePath2\",\n children: \"Interior Designer Interior Designer Interior Designer\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 23\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 86,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"info\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"h6\", {\n children: \"Ryan Hicks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"span\", {\n children: \"Client Manager\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 98,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"img\", {\n src: \"/img/team/3.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 106,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"g\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"text\", {\n fill: \"#fff\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"textPath\", {\n xlinkHref: \"#circlePath3\",\n children: \"Landscape Designer Landscape Designer Landscape Designer\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 23\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 108,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 107,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"info\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"h6\", {\n children: \"Ryan Hicks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"span\", {\n children: \"Client Manager\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 137,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 105,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 104,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 103,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"img\", {\n src: \"/img/team/4.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 161,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 160,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"g\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"text\", {\n fill: \"#fff\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"textPath\", {\n xlinkHref: \"#circlePath4\",\n children: \"Client Manager Client Manager Client Manager\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 23\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 149,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"info\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"h6\", {\n children: \"Ryan Hicks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"span\", {\n children: \"Client Manager\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 146,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 144,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 6,\n columnNumber: 5\n }, _this);\n};\n\n_c = Team2;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Team2);\n\nvar _c;\n\n$RefreshReg$(_c, \"Team2\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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b3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbXBvbmVudHMvVGVhbTIvdGVhbTIuanN4PzA5NmUiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcblxyXG5jb25zdCBUZWFtMiA9ICgpID0+IHtcclxuICByZXR1cm4gKFxyXG4gICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwidGVhbSBzZWN0aW9uLXBhZGRpbmdcIj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy04IGNvbC1tZC0xMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNlYy1oZWFkIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGg2IGNsYXNzTmFtZT1cIndvdyBmYWRlSW5cIiBkYXRhLXdvdy1kZWxheT1cIi41c1wiPlxyXG4gICAgICAgICAgICAgICAgT3VyIFRlYW1cclxuICAgICAgICAgICAgICA8L2g2PlxyXG4gICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJ3b3cgY29sb3ItZm9udFwiPlxyXG4gICAgICAgICAgICAgICAgQW4gb3JpZ2luYWwgdGVhbSBvZiBjcmVhdG9ycyBkZXNpZ25lcnMgJmFtcDsgZHJlYW1lcnMuXHJcbiAgICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyLWZsdWlkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzEuanBnXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUxXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBDRU8gTWFuYWdlciBDRU8gTWFuYWdlciBDRU8gTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8yLmpwZ1wiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlMlwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDJcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJpb3IgRGVzaWduZXIgSW50ZXJpb3IgRGVzaWduZXIgSW50ZXJpb3IgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIHNtLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMy5qcGdcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTNcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzQuanBnXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGU0XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoNFwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBDbGllbnQgTWFuYWdlciBDbGllbnQgTWFuYWdlciBDbGllbnQgTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBUZWFtMjtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiVGVhbTIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/components/Team2/team2.jsx\n"); + +/***/ }), + +/***/ "./src/components/Video2/video2.jsx": +/*!******************************************!*\ + !*** ./src/components/Video2/video2.jsx ***! + \******************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react_modal_video__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-modal-video */ \"./node_modules/react-modal-video/lib/index.js\");\n/* harmony import */ var react_modal_video_css_modal_video_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-modal-video/css/modal-video.css */ \"./node_modules/react-modal-video/css/modal-video.css\");\n/* harmony import */ var react_modal_video_css_modal_video_css__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_modal_video_css_modal_video_css__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\n/* module decorator */ module = __webpack_require__.hmd(module);\n\n\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Video2\\\\video2.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n\n\n\n\n\nvar Video2 = function Video2() {\n _s();\n\n var _React$useState = react__WEBPACK_IMPORTED_MODULE_1___default().useState(false),\n _React$useState2 = (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_React$useState, 2),\n isOpen = _React$useState2[0],\n setOpen = _React$useState2[1];\n\n react__WEBPACK_IMPORTED_MODULE_1___default().useEffect(function () {\n console.clear();\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"section\", {\n className: \"video bg-img parallaxie\",\n style: {\n backgroundImage: \"url(/img/bg-vid.jpg)\"\n },\n children: [ true && /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(react_modal_video__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n channel: \"vimeo\",\n autoplay: true,\n isOpen: isOpen,\n videoId: \"127203262\",\n onClose: function onClose() {\n return setOpen(false);\n }\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"a\", {\n className: \"vid valign\",\n onClick: function onClick(e) {\n e.preventDefault();\n setOpen(true);\n },\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"vid-butn\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"icon\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"i\", {\n className: \"pe-7s-play\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"stauts\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h4\", {\n children: [\"3\", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n children: \"K\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 16\n }, _this), \" +\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n children: \"Happy Clients\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 13\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h4\", {\n children: [\"14\", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n children: \"K\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 17\n }, _this), \" +\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n children: \"Success Projects\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 13\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 5\n }, _this);\n};\n\n_s(Video2, \"qf539F6ReNB0H/JamsCPL0/tKN4=\");\n\n_c = Video2;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Video2);\n\nvar _c;\n\n$RefreshReg$(_c, \"Video2\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9WaWRlbzIvdmlkZW8yLmpzeC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBOzs7QUFFQSxJQUFNRSxNQUFNLEdBQUcsU0FBVEEsTUFBUyxHQUFNO0FBQUE7O0FBQ25CLHdCQUEwQkYscURBQUEsQ0FBZSxLQUFmLENBQTFCO0FBQUE7QUFBQSxNQUFPSSxNQUFQO0FBQUEsTUFBZUMsT0FBZjs7QUFDQUwsRUFBQUEsc0RBQUEsQ0FBZ0IsWUFBTTtBQUNwQk8sSUFBQUEsT0FBTyxDQUFDQyxLQUFSO0FBQ0QsR0FGRCxFQUVHLEVBRkg7QUFHQSxzQkFDRTtBQUNFLGFBQVMsRUFBQyx5QkFEWjtBQUVFLFNBQUssRUFBRTtBQUFFQyxNQUFBQSxlQUFlLEVBQUU7QUFBbkIsS0FGVDtBQUFBLGVBSUcsc0JBQ0MsOERBQUMseURBQUQ7QUFDRSxhQUFPLEVBQUMsT0FEVjtBQUVFLGNBQVEsTUFGVjtBQUdFLFlBQU0sRUFBRUwsTUFIVjtBQUlFLGFBQU8sRUFBQyxXQUpWO0FBS0UsYUFBTyxFQUFFO0FBQUEsZUFBTUMsT0FBTyxDQUFDLEtBQUQsQ0FBYjtBQUFBO0FBTFg7QUFBQTtBQUFBO0FBQUE7QUFBQSxhQUxKLGVBYUU7QUFDRSxlQUFTLEVBQUMsWUFEWjtBQUVFLGFBQU8sRUFBRSxpQkFBQ0ssQ0FBRCxFQUFPO0FBQ2RBLFFBQUFBLENBQUMsQ0FBQ0MsY0FBRjtBQUNBTixRQUFBQSxPQUFPLENBQUMsSUFBRCxDQUFQO0FBQ0QsT0FMSDtBQUFBLDZCQU9FO0FBQUssaUJBQVMsRUFBQyxVQUFmO0FBQUEsK0JBQ0U7QUFBTSxtQkFBUyxFQUFDLE1BQWhCO0FBQUEsaUNBQ0U7QUFBRyxxQkFBUyxFQUFDO0FBQWI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUEY7QUFBQTtBQUFBO0FBQUE7QUFBQSxhQWJGLGVBMEJFO0FBQUssZUFBUyxFQUFDLFdBQWY7QUFBQSw2QkFDRTtBQUFLLGlCQUFTLEVBQUMsUUFBZjtBQUFBLGdDQUNFO0FBQUssbUJBQVMsRUFBQyxNQUFmO0FBQUEsa0NBQ0U7QUFBQSx5Q0FDRztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxxQkFESDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsbUJBREYsZUFJRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxtQkFKRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBREYsZUFPRTtBQUFLLG1CQUFTLEVBQUMsTUFBZjtBQUFBLGtDQUNFO0FBQUEsMENBQ0k7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBREo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLG1CQURGLGVBSUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsbUJBSkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQVBGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsYUExQkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBREY7QUE2Q0QsQ0FsREQ7O0dBQU1IOztLQUFBQTtBQW9ETiwrREFBZUEsTUFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tcG9uZW50cy9WaWRlbzIvdmlkZW8yLmpzeD9mMDg4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IE1vZGFsVmlkZW8gZnJvbSBcInJlYWN0LW1vZGFsLXZpZGVvXCI7XHJcbmltcG9ydCBcInJlYWN0LW1vZGFsLXZpZGVvL2Nzcy9tb2RhbC12aWRlby5jc3NcIjtcclxuXHJcbmNvbnN0IFZpZGVvMiA9ICgpID0+IHtcclxuICBjb25zdCBbaXNPcGVuLCBzZXRPcGVuXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcclxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgY29uc29sZS5jbGVhcigpO1xyXG4gIH0sIFtdKTtcclxuICByZXR1cm4gKFxyXG4gICAgPHNlY3Rpb25cclxuICAgICAgY2xhc3NOYW1lPVwidmlkZW8gYmctaW1nIHBhcmFsbGF4aWVcIlxyXG4gICAgICBzdHlsZT17eyBiYWNrZ3JvdW5kSW1hZ2U6IFwidXJsKC9pbWcvYmctdmlkLmpwZylcIiB9fVxyXG4gICAgPlxyXG4gICAgICB7dHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiAmJiAoXHJcbiAgICAgICAgPE1vZGFsVmlkZW9cclxuICAgICAgICAgIGNoYW5uZWw9XCJ2aW1lb1wiXHJcbiAgICAgICAgICBhdXRvcGxheVxyXG4gICAgICAgICAgaXNPcGVuPXtpc09wZW59XHJcbiAgICAgICAgICB2aWRlb0lkPVwiMTI3MjAzMjYyXCJcclxuICAgICAgICAgIG9uQ2xvc2U9eygpID0+IHNldE9wZW4oZmFsc2UpfVxyXG4gICAgICAgIC8+XHJcbiAgICAgICl9XHJcbiAgICAgIDxhXHJcbiAgICAgICAgY2xhc3NOYW1lPVwidmlkIHZhbGlnblwiXHJcbiAgICAgICAgb25DbGljaz17KGUpID0+IHtcclxuICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgIHNldE9wZW4odHJ1ZSk7XHJcbiAgICAgICAgfX1cclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidmlkLWJ1dG5cIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb25cIj5cclxuICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwicGUtN3MtcGxheVwiPjwvaT5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9hPlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3RhdXRzXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgPGg0PlxyXG4gICAgICAgICAgICAgIDM8c3Bhbj5LPC9zcGFuPiArXHJcbiAgICAgICAgICAgIDwvaDQ+XHJcbiAgICAgICAgICAgIDxoNj5IYXBweSBDbGllbnRzPC9oNj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgIDxoND5cclxuICAgICAgICAgICAgICAxNDxzcGFuPks8L3NwYW4+ICtcclxuICAgICAgICAgICAgPC9oND5cclxuICAgICAgICAgICAgPGg2PlN1Y2Nlc3MgUHJvamVjdHM8L2g2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBWaWRlbzI7XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIk1vZGFsVmlkZW8iLCJWaWRlbzIiLCJ1c2VTdGF0ZSIsImlzT3BlbiIsInNldE9wZW4iLCJ1c2VFZmZlY3QiLCJjb25zb2xlIiwiY2xlYXIiLCJiYWNrZ3JvdW5kSW1hZ2UiLCJlIiwicHJldmVudERlZmF1bHQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/components/Video2/video2.jsx\n"); + +/***/ }), + +/***/ "./src/components/blogs/Blogs2/blogs2.jsx": +/*!************************************************!*\ + !*** ./src/components/blogs/Blogs2/blogs2.jsx ***! + \************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\blogs\\\\Blogs2\\\\blogs2.jsx\",\n _this = undefined;\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\nvar Blogs2 = function Blogs2() {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"section\", {\n className: \"blog-list section-padding sub-bg\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"col-lg-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"head md-mb50\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"h6\", {\n className: \"back-color\",\n children: \"Get The Latest News\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"h3\", {\n children: \"What Our Trending News.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"p\", {\n children: \"We provide company and finance service for startups and company business.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/blog/blog-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"a\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"span\", {\n children: \"More Blog Posts\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"col-lg-7 offset-lg-1\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"item wow fadeInUp\",\n \"data-wow-delay\": \".3s\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"img valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"img\", {\n src: \"/img/blog/1.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"cont valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"info\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/blog/blog-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"a\", {\n className: \"date\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"span\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"i\", {\n children: \"06\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 27\n }, _this), \" August\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"span\", {\n children: \"/\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/blog/blog-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"a\", {\n className: \"tag\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"span\", {\n children: \"WordPress\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"h5\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/blog-details/blog-details-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"a\", {\n children: \"How to use solid color combine with simple furnitures.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 21\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"item wow fadeInUp\",\n \"data-wow-delay\": \".5s\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"img valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"img\", {\n src: \"/img/blog/2.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 59,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"cont valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"info\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/blog/blog-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"a\", {\n className: \"date\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"span\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"i\", {\n children: \"06\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 27\n }, _this), \" August\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"span\", {\n children: \"/\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/blog/blog-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"a\", {\n className: \"tag\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"span\", {\n children: \"WordPress\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"h5\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/blog-details/blog-details-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"a\", {\n children: \"How to use solid color combine with simple furnitures.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 21\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 78,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 61,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"item wow fadeInUp\",\n \"data-wow-delay\": \".3s\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"img valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"img\", {\n src: \"/img/blog/3.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"cont valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"info\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/blog/blog-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"a\", {\n className: \"date\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"span\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"i\", {\n children: \"06\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 98,\n columnNumber: 27\n }, _this), \" August\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"span\", {\n children: \"/\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 102,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/blog/blog-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"a\", {\n className: \"tag\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"span\", {\n children: \"WordPress\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 105,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 104,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 103,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"h5\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/blog-details/blog-details-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"a\", {\n children: \"How to use solid color combine with simple furnitures.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 21\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 13\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 7,\n columnNumber: 5\n }, _this);\n};\n\n_c = Blogs2;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Blogs2);\n\nvar _c;\n\n$RefreshReg$(_c, \"Blogs2\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9ibG9ncy9CbG9nczIvYmxvZ3MyLmpzeC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTs7O0FBRUEsSUFBTUUsTUFBTSxHQUFHLFNBQVRBLE1BQVMsR0FBTTtBQUNuQixzQkFDRTtBQUFTLGFBQVMsRUFBQyxrQ0FBbkI7QUFBQSwyQkFDRTtBQUFLLGVBQVMsRUFBQyxXQUFmO0FBQUEsNkJBQ0U7QUFBSyxpQkFBUyxFQUFDLEtBQWY7QUFBQSxnQ0FDRTtBQUFLLG1CQUFTLEVBQUMsVUFBZjtBQUFBLGlDQUNFO0FBQUsscUJBQVMsRUFBQyxjQUFmO0FBQUEsb0NBQ0U7QUFBSSx1QkFBUyxFQUFDLFlBQWQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBREYsZUFFRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxxQkFGRixlQUdFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQUhGLGVBT0UsOERBQUMsa0RBQUQ7QUFBTSxrQkFBSSxFQUFDLGlCQUFYO0FBQUEscUNBQ0U7QUFBQSx1Q0FDRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQVBGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBREYsZUFnQkU7QUFBSyxtQkFBUyxFQUFDLHNCQUFmO0FBQUEsa0NBQ0U7QUFBSyxxQkFBUyxFQUFDLG1CQUFmO0FBQW1DLDhCQUFlLEtBQWxEO0FBQUEsb0NBQ0U7QUFBSyx1QkFBUyxFQUFDLFlBQWY7QUFBQSxxQ0FDRTtBQUFLLG1CQUFHLEVBQUMsaUJBQVQ7QUFBMkIsbUJBQUcsRUFBQztBQUEvQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxxQkFERixlQUlFO0FBQUssdUJBQVMsRUFBQyxhQUFm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QTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBREY7QUFzSEQsQ0F2SEQ7O0tBQU1BO0FBeUhOLCtEQUFlQSxNQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL2Jsb2dzL0Jsb2dzMi9ibG9nczIuanN4P2RmZDEiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcclxuXHJcbmNvbnN0IEJsb2dzMiA9ICgpID0+IHtcclxuICByZXR1cm4gKFxyXG4gICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwiYmxvZy1saXN0IHNlY3Rpb24tcGFkZGluZyBzdWItYmdcIj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctNFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImhlYWQgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxoNiBjbGFzc05hbWU9XCJiYWNrLWNvbG9yXCI+R2V0IFRoZSBMYXRlc3QgTmV3czwvaDY+XHJcbiAgICAgICAgICAgICAgPGgzPldoYXQgT3VyIFRyZW5kaW5nIE5ld3MuPC9oMz5cclxuICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgIFdlIHByb3ZpZGUgY29tcGFueSBhbmQgZmluYW5jZSBzZXJ2aWNlIGZvciBzdGFydHVwcyBhbmQgY29tcGFueVxyXG4gICAgICAgICAgICAgICAgYnVzaW5lc3MuXHJcbiAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvYmxvZy9ibG9nLWRhcmtcIj5cclxuICAgICAgICAgICAgICAgIDxhPlxyXG4gICAgICAgICAgICAgICAgICA8c3Bhbj5Nb3JlIEJsb2cgUG9zdHM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctNyBvZmZzZXQtbGctMVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuM3NcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZyB2YWxpZ25cIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy9ibG9nLzEuanBnXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnQgdmFsaWduXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2Jsb2cvYmxvZy1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzc05hbWU9XCJkYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpPjA2PC9pPiBBdWd1c3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj4vPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvYmxvZy9ibG9nLWRhcmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzTmFtZT1cInRhZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5Xb3JkUHJlc3M8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGg1PlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvYmxvZy1kZXRhaWxzL2Jsb2ctZGV0YWlscy1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgSG93IHRvIHVzZSBzb2xpZCBjb2xvciBjb21iaW5lIHdpdGggc2ltcGxlIGZ1cm5pdHVyZXMuXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2g1PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNXNcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZyB2YWxpZ25cIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy9ibG9nLzIuanBnXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnQgdmFsaWduXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2Jsb2cvYmxvZy1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzc05hbWU9XCJkYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpPjA2PC9pPiBBdWd1c3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj4vPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvYmxvZy9ibG9nLWRhcmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzTmFtZT1cInRhZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5Xb3JkUHJlc3M8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGg1PlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvYmxvZy1kZXRhaWxzL2Jsb2ctZGV0YWlscy1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgSG93IHRvIHVzZSBzb2xpZCBjb2xvciBjb21iaW5lIHdpdGggc2ltcGxlIGZ1cm5pdHVyZXMuXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2g1PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuM3NcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZyB2YWxpZ25cIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy9ibG9nLzMuanBnXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnQgdmFsaWduXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2Jsb2cvYmxvZy1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzc05hbWU9XCJkYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpPjA2PC9pPiBBdWd1c3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj4vPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvYmxvZy9ibG9nLWRhcmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzTmFtZT1cInRhZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5Xb3JkUHJlc3M8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGg1PlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvYmxvZy1kZXRhaWxzL2Jsb2ctZGV0YWlscy1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgSG93IHRvIHVzZSBzb2xpZCBjb2xvciBjb21iaW5lIHdpdGggc2ltcGxlIGZ1cm5pdHVyZXMuXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2g1PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBCbG9nczI7XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIkxpbmsiLCJCbG9nczIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/components/blogs/Blogs2/blogs2.jsx\n"); + +/***/ }), + +/***/ "./src/layouts/Light.jsx": +/*!*******************************!*\ + !*** ./src/layouts/Light.jsx ***! + \*******************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/head */ \"./node_modules/next/head.js\");\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_head__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\layouts\\\\Light.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n/* eslint-disable @next/next/no-css-tags */\n\n\n\n\n\nvar LightTheme = function LightTheme(_ref) {\n _s();\n\n var children = _ref.children,\n mobileappstyle = _ref.mobileappstyle;\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n window.theme = \"light\";\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)((next_head__WEBPACK_IMPORTED_MODULE_1___default()), {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"link\", {\n rel: \"stylesheet\",\n href: \"/css/light.css\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 9\n }, _this), mobileappstyle ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"link\", {\n href: \"/css/mobile-app-light.css\",\n rel: \"stylesheet\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 28\n }, _this) : null]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 7\n }, _this), children]\n }, void 0, true);\n};\n\n_s(LightTheme, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = LightTheme;\n/* harmony default export */ __webpack_exports__[\"default\"] = (LightTheme);\n\nvar _c;\n\n$RefreshReg$(_c, \"LightTheme\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvbGF5b3V0cy9MaWdodC5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBOzs7O0FBRUEsSUFBTUUsVUFBVSxHQUFHLFNBQWJBLFVBQWEsT0FBa0M7QUFBQTs7QUFBQSxNQUEvQkMsUUFBK0IsUUFBL0JBLFFBQStCO0FBQUEsTUFBckJDLGNBQXFCLFFBQXJCQSxjQUFxQjtBQUNuREosRUFBQUEsc0RBQUEsQ0FBZ0IsWUFBTTtBQUNwQk0sSUFBQUEsTUFBTSxDQUFDQyxLQUFQLEdBQWUsT0FBZjtBQUNELEdBRkQsRUFFRyxFQUZIO0FBR0Esc0JBQ0U7QUFBQSw0QkFDRSw4REFBQyxrREFBRDtBQUFBLDhCQUNFO0FBQU0sV0FBRyxFQUFDLFlBQVY7QUFBdUIsWUFBSSxFQUFDO0FBQTVCO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFERixFQUVHSCxjQUFjLGdCQUFJO0FBQU0sWUFBSSxFQUFDLDJCQUFYO0FBQXVDLFdBQUcsRUFBQztBQUEzQztBQUFBO0FBQUE7QUFBQTtBQUFBLGVBQUosR0FBbUUsSUFGcEY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBREYsRUFLR0QsUUFMSDtBQUFBLGtCQURGO0FBU0QsQ0FiRDs7R0FBTUQ7O0tBQUFBO0FBZU4sK0RBQWVBLFVBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2xheW91dHMvTGlnaHQuanN4PzM5YzIiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1jc3MtdGFncyAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBIZWFkIGZyb20gXCJuZXh0L2hlYWRcIjtcclxuXHJcbmNvbnN0IExpZ2h0VGhlbWUgPSAoeyBjaGlsZHJlbiwgbW9iaWxlYXBwc3R5bGUgfSkgPT4ge1xyXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICB3aW5kb3cudGhlbWUgPSBcImxpZ2h0XCI7XHJcbiAgfSwgW10pO1xyXG4gIHJldHVybiAoXHJcbiAgICA8PlxyXG4gICAgICA8SGVhZD5cclxuICAgICAgICA8bGluayByZWw9XCJzdHlsZXNoZWV0XCIgaHJlZj1cIi9jc3MvbGlnaHQuY3NzXCIgLz5cclxuICAgICAgICB7bW9iaWxlYXBwc3R5bGUgPyAoPGxpbmsgaHJlZj1cIi9jc3MvbW9iaWxlLWFwcC1saWdodC5jc3NcIiByZWw9XCJzdHlsZXNoZWV0XCIgLz4pIDogKG51bGwpfVxyXG4gICAgICA8L0hlYWQ+XHJcbiAgICAgIHtjaGlsZHJlbn1cclxuICAgIDwvPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBMaWdodFRoZW1lO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJIZWFkIiwiTGlnaHRUaGVtZSIsImNoaWxkcmVuIiwibW9iaWxlYXBwc3R5bGUiLCJ1c2VFZmZlY3QiLCJ3aW5kb3ciLCJ0aGVtZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/layouts/Light.jsx\n"); + +/***/ }), + +/***/ "./src/pages/homepage/home2-light.jsx": +/*!********************************************!*\ + !*** ./src/pages/homepage/home2-light.jsx ***! + \********************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _components_Navbar_navbar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../components/Navbar/navbar */ \"./src/components/Navbar/navbar.jsx\");\n/* harmony import */ var _components_Intro2_intro2__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../components/Intro2/intro2 */ \"./src/components/Intro2/intro2.jsx\");\n/* harmony import */ var _components_Services_services__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../components/Services/services */ \"./src/components/Services/services.jsx\");\n/* harmony import */ var _components_Video2_video2__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../components/Video2/video2 */ \"./src/components/Video2/video2.jsx\");\n/* harmony import */ var _components_Call_to_action_call_to_action__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../components/Call-to-action/call-to-action */ \"./src/components/Call-to-action/call-to-action.jsx\");\n/* harmony import */ var _components_Footer_footer__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../components/Footer/footer */ \"./src/components/Footer/footer.jsx\");\n/* harmony import */ var _layouts_Light__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../layouts/Light */ \"./src/layouts/Light.jsx\");\n/* harmony import */ var _components_Portfolio_portfolio__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../components/Portfolio/portfolio */ \"./src/components/Portfolio/portfolio.jsx\");\n/* harmony import */ var _components_Full_testimonials_full_testimonials__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../components/Full-testimonials/full-testimonials */ \"./src/components/Full-testimonials/full-testimonials.jsx\");\n/* harmony import */ var _components_Team2_team2__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../components/Team2/team2 */ \"./src/components/Team2/team2.jsx\");\n/* harmony import */ var _components_blogs_Blogs2_blogs2__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../components/blogs/Blogs2/blogs2 */ \"./src/components/blogs/Blogs2/blogs2.jsx\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\pages\\\\homepage\\\\home2-light.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar Homepage2 = function Homepage2() {\n _s();\n\n var navbarRef = react__WEBPACK_IMPORTED_MODULE_0___default().useRef(null);\n var logoRef = react__WEBPACK_IMPORTED_MODULE_0___default().useRef(null);\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n var navbar = navbarRef.current;\n\n if (window.pageYOffset > 300) {\n navbar.classList.add(\"nav-scroll\");\n } else {\n navbar.classList.remove(\"nav-scroll\");\n }\n\n window.addEventListener(\"scroll\", function () {\n if (window.pageYOffset > 300) {\n navbar.classList.add(\"nav-scroll\");\n } else {\n navbar.classList.remove(\"nav-scroll\");\n }\n });\n }, [navbarRef]);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(_layouts_Light__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(_components_Navbar_navbar__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n nr: navbarRef,\n lr: logoRef,\n theme: \"themeL\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(_components_Intro2_intro2__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(_components_Services_services__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n style: \"4item\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(_components_Video2_video2__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(_components_Portfolio_portfolio__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n grid: 3,\n filterPosition: \"center\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(_components_Full_testimonials_full_testimonials__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n noPadding: true\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(_components_Team2_team2__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(_components_blogs_Blogs2_blogs2__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(_components_Call_to_action_call_to_action__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(_components_Footer_footer__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 44,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 5\n }, _this);\n};\n\n_s(Homepage2, \"NJv/rvX5fPwWhnPtkwq0tuwt7xI=\");\n\n_c = Homepage2;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Homepage2);\n\nvar _c;\n\n$RefreshReg$(_c, \"Homepage2\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvcGFnZXMvaG9tZXBhZ2UvaG9tZTItbGlnaHQuanN4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsSUFBTVksU0FBUyxHQUFHLFNBQVpBLFNBQVksR0FBTTtBQUFBOztBQUN0QixNQUFNQyxTQUFTLEdBQUdiLG1EQUFBLENBQWEsSUFBYixDQUFsQjtBQUNBLE1BQU1lLE9BQU8sR0FBR2YsbURBQUEsQ0FBYSxJQUFiLENBQWhCO0FBRUFBLEVBQUFBLHNEQUFBLENBQWdCLFlBQU07QUFDcEIsUUFBSWlCLE1BQU0sR0FBR0osU0FBUyxDQUFDSyxPQUF2Qjs7QUFDQSxRQUFJQyxNQUFNLENBQUNDLFdBQVAsR0FBcUIsR0FBekIsRUFBOEI7QUFDNUJILE1BQUFBLE1BQU0sQ0FBQ0ksU0FBUCxDQUFpQkMsR0FBakIsQ0FBcUIsWUFBckI7QUFDRCxLQUZELE1BRU87QUFDTEwsTUFBQUEsTUFBTSxDQUFDSSxTQUFQLENBQWlCRSxNQUFqQixDQUF3QixZQUF4QjtBQUNEOztBQUNESixJQUFBQSxNQUFNLENBQUNLLGdCQUFQLENBQXdCLFFBQXhCLEVBQWtDLFlBQU07QUFDdEMsVUFBSUwsTUFBTSxDQUFDQyxXQUFQLEdBQXFCLEdBQXpCLEVBQThCO0FBQzVCSCxRQUFBQSxNQUFNLENBQUNJLFNBQVAsQ0FBaUJDLEdBQWpCLENBQXFCLFlBQXJCO0FBQ0QsT0FGRCxNQUVPO0FBQ0xMLFFBQUFBLE1BQU0sQ0FBQ0ksU0FBUCxDQUFpQkUsTUFBakIsQ0FBd0IsWUFBeEI7QUFDRDtBQUNGLEtBTkQ7QUFPRCxHQWRELEVBY0csQ0FBQ1YsU0FBRCxDQWRIO0FBZUEsc0JBQ0UsK0RBQUMsc0RBQUQ7QUFBQSw0QkFDRSwrREFBQyxpRUFBRDtBQUFRLFFBQUUsRUFBRUEsU0FBWjtBQUF1QixRQUFFLEVBQUVFLE9BQTNCO0FBQW9DLFdBQUssRUFBQztBQUExQztBQUFBO0FBQUE7QUFBQTtBQUFBLGFBREYsZUFFRSwrREFBQyxpRUFBRDtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBRkYsZUFHRSwrREFBQyxxRUFBRDtBQUFVLFdBQUssRUFBQztBQUFoQjtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBSEYsZUFJRSwrREFBQyxpRUFBRDtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBSkYsZUFLRSwrREFBQyx1RUFBRDtBQUFXLFVBQUksRUFBRSxDQUFqQjtBQUFvQixvQkFBYyxFQUFDO0FBQW5DO0FBQUE7QUFBQTtBQUFBO0FBQUEsYUFMRixlQU1FLCtEQUFDLHVGQUFEO0FBQWtCLGVBQVM7QUFBM0I7QUFBQTtBQUFBO0FBQUE7QUFBQSxhQU5GLGVBT0UsK0RBQUMsZ0VBQUQ7QUFBQTtBQUFBO0FBQUE7QUFBQSxhQVBGLGVBUUUsK0RBQUMsd0VBQUQ7QUFBQTtBQUFBO0FBQUE7QUFBQSxhQVJGLGVBU0UsK0RBQUMsaUZBQUQ7QUFBQTtBQUFBO0FBQUE7QUFBQSxhQVRGLGVBVUUsK0RBQUMsaUVBQUQ7QUFBQTtBQUFBO0FBQUE7QUFBQSxhQVZGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxXQURGO0FBY0QsQ0FqQ0Q7O0dBQU1IOztLQUFBQTtBQW1DTiwrREFBZUEsU0FBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvcGFnZXMvaG9tZXBhZ2UvaG9tZTItbGlnaHQuanN4PzFkMDEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgTmF2YmFyIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL05hdmJhci9uYXZiYXJcIjtcclxuaW1wb3J0IEludHJvMiBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9JbnRybzIvaW50cm8yXCI7XHJcbmltcG9ydCBTZXJ2aWNlcyBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9TZXJ2aWNlcy9zZXJ2aWNlc1wiO1xyXG5pbXBvcnQgVmlkZW8yIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL1ZpZGVvMi92aWRlbzJcIjtcclxuaW1wb3J0IENhbGxUb0FjdGlvbiBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9DYWxsLXRvLWFjdGlvbi9jYWxsLXRvLWFjdGlvblwiO1xyXG5pbXBvcnQgRm9vdGVyIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL0Zvb3Rlci9mb290ZXJcIjtcclxuaW1wb3J0IExpZ2h0VGhlbWUgZnJvbSBcIi4uLy4uL2xheW91dHMvTGlnaHRcIjtcclxuaW1wb3J0IFBvcnRmb2xpbyBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9Qb3J0Zm9saW8vcG9ydGZvbGlvXCI7XHJcbmltcG9ydCBGdWxsVGVzdGltb25pYWxzIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL0Z1bGwtdGVzdGltb25pYWxzL2Z1bGwtdGVzdGltb25pYWxzXCI7XHJcbmltcG9ydCBUZWFtMiBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9UZWFtMi90ZWFtMlwiO1xyXG5pbXBvcnQgQmxvZ3MyIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL2Jsb2dzL0Jsb2dzMi9ibG9nczJcIjtcclxuXHJcbmNvbnN0IEhvbWVwYWdlMiA9ICgpID0+IHtcclxuICBjb25zdCBuYXZiYXJSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XHJcbiAgY29uc3QgbG9nb1JlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcclxuXHJcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgIHZhciBuYXZiYXIgPSBuYXZiYXJSZWYuY3VycmVudDtcclxuICAgIGlmICh3aW5kb3cucGFnZVlPZmZzZXQgPiAzMDApIHtcclxuICAgICAgbmF2YmFyLmNsYXNzTGlzdC5hZGQoXCJuYXYtc2Nyb2xsXCIpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbmF2YmFyLmNsYXNzTGlzdC5yZW1vdmUoXCJuYXYtc2Nyb2xsXCIpO1xyXG4gICAgfVxyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgKCkgPT4ge1xyXG4gICAgICBpZiAod2luZG93LnBhZ2VZT2Zmc2V0ID4gMzAwKSB7XHJcbiAgICAgICAgbmF2YmFyLmNsYXNzTGlzdC5hZGQoXCJuYXYtc2Nyb2xsXCIpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG5hdmJhci5jbGFzc0xpc3QucmVtb3ZlKFwibmF2LXNjcm9sbFwiKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfSwgW25hdmJhclJlZl0pO1xyXG4gIHJldHVybiAoXHJcbiAgICA8TGlnaHRUaGVtZT5cclxuICAgICAgPE5hdmJhciBucj17bmF2YmFyUmVmfSBscj17bG9nb1JlZn0gdGhlbWU9XCJ0aGVtZUxcIiAvPlxyXG4gICAgICA8SW50cm8yIC8+XHJcbiAgICAgIDxTZXJ2aWNlcyBzdHlsZT1cIjRpdGVtXCIgLz5cclxuICAgICAgPFZpZGVvMiAvPlxyXG4gICAgICA8UG9ydGZvbGlvIGdyaWQ9ezN9IGZpbHRlclBvc2l0aW9uPVwiY2VudGVyXCIgLz5cclxuICAgICAgPEZ1bGxUZXN0aW1vbmlhbHMgbm9QYWRkaW5nIC8+XHJcbiAgICAgIDxUZWFtMiAvPlxyXG4gICAgICA8QmxvZ3MyIC8+XHJcbiAgICAgIDxDYWxsVG9BY3Rpb24gLz5cclxuICAgICAgPEZvb3RlciAvPlxyXG4gICAgPC9MaWdodFRoZW1lPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBIb21lcGFnZTI7XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIk5hdmJhciIsIkludHJvMiIsIlNlcnZpY2VzIiwiVmlkZW8yIiwiQ2FsbFRvQWN0aW9uIiwiRm9vdGVyIiwiTGlnaHRUaGVtZSIsIlBvcnRmb2xpbyIsIkZ1bGxUZXN0aW1vbmlhbHMiLCJUZWFtMiIsIkJsb2dzMiIsIkhvbWVwYWdlMiIsIm5hdmJhclJlZiIsInVzZVJlZiIsImxvZ29SZWYiLCJ1c2VFZmZlY3QiLCJuYXZiYXIiLCJjdXJyZW50Iiwid2luZG93IiwicGFnZVlPZmZzZXQiLCJjbGFzc0xpc3QiLCJhZGQiLCJyZW1vdmUiLCJhZGRFdmVudExpc3RlbmVyIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/pages/homepage/home2-light.jsx\n"); + +/***/ }), + +/***/ "./node_modules/classnames/index.js": +/*!******************************************!*\ + !*** ./node_modules/classnames/index.js ***! + \******************************************/ +/***/ (function(module, exports) { + +eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif ( true && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (true) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {\n\t\t\treturn classNames;\n\t\t}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else {}\n}());\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvY2xhc3NuYW1lcy9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSxnQkFBZ0I7O0FBRWhCO0FBQ0E7O0FBRUEsa0JBQWtCLHNCQUFzQjtBQUN4QztBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSxLQUFLLEtBQTZCO0FBQ2xDO0FBQ0E7QUFDQSxHQUFHLFNBQVMsSUFBNEU7QUFDeEY7QUFDQSxFQUFFLGlDQUFxQixFQUFFLG1DQUFFO0FBQzNCO0FBQ0EsR0FBRztBQUFBLGtHQUFDO0FBQ0osR0FBRyxLQUFLLEVBRU47QUFDRixDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9jbGFzc25hbWVzL2luZGV4LmpzPzdkNTAiXSwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gIENvcHlyaWdodCAoYykgMjAxNyBKZWQgV2F0c29uLlxuICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UgKE1JVCksIHNlZVxuICBodHRwOi8vamVkd2F0c29uLmdpdGh1Yi5pby9jbGFzc25hbWVzXG4qL1xuLyogZ2xvYmFsIGRlZmluZSAqL1xuXG4oZnVuY3Rpb24gKCkge1xuXHQndXNlIHN0cmljdCc7XG5cblx0dmFyIGhhc093biA9IHt9Lmhhc093blByb3BlcnR5O1xuXG5cdGZ1bmN0aW9uIGNsYXNzTmFtZXMgKCkge1xuXHRcdHZhciBjbGFzc2VzID0gW107XG5cblx0XHRmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuXHRcdFx0dmFyIGFyZyA9IGFyZ3VtZW50c1tpXTtcblx0XHRcdGlmICghYXJnKSBjb250aW51ZTtcblxuXHRcdFx0dmFyIGFyZ1R5cGUgPSB0eXBlb2YgYXJnO1xuXG5cdFx0XHRpZiAoYXJnVHlwZSA9PT0gJ3N0cmluZycgfHwgYXJnVHlwZSA9PT0gJ251bWJlcicpIHtcblx0XHRcdFx0Y2xhc3Nlcy5wdXNoKGFyZyk7XG5cdFx0XHR9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoYXJnKSAmJiBhcmcubGVuZ3RoKSB7XG5cdFx0XHRcdHZhciBpbm5lciA9IGNsYXNzTmFtZXMuYXBwbHkobnVsbCwgYXJnKTtcblx0XHRcdFx0aWYgKGlubmVyKSB7XG5cdFx0XHRcdFx0Y2xhc3Nlcy5wdXNoKGlubmVyKTtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIGlmIChhcmdUeXBlID09PSAnb2JqZWN0Jykge1xuXHRcdFx0XHRmb3IgKHZhciBrZXkgaW4gYXJnKSB7XG5cdFx0XHRcdFx0aWYgKGhhc093bi5jYWxsKGFyZywga2V5KSAmJiBhcmdba2V5XSkge1xuXHRcdFx0XHRcdFx0Y2xhc3Nlcy5wdXNoKGtleSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGNsYXNzZXMuam9pbignICcpO1xuXHR9XG5cblx0aWYgKHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnICYmIG1vZHVsZS5leHBvcnRzKSB7XG5cdFx0Y2xhc3NOYW1lcy5kZWZhdWx0ID0gY2xhc3NOYW1lcztcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGNsYXNzTmFtZXM7XG5cdH0gZWxzZSBpZiAodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgZGVmaW5lLmFtZCA9PT0gJ29iamVjdCcgJiYgZGVmaW5lLmFtZCkge1xuXHRcdC8vIHJlZ2lzdGVyIGFzICdjbGFzc25hbWVzJywgY29uc2lzdGVudCB3aXRoIG5wbSBwYWNrYWdlIG5hbWVcblx0XHRkZWZpbmUoJ2NsYXNzbmFtZXMnLCBbXSwgZnVuY3Rpb24gKCkge1xuXHRcdFx0cmV0dXJuIGNsYXNzTmFtZXM7XG5cdFx0fSk7XG5cdH0gZWxzZSB7XG5cdFx0d2luZG93LmNsYXNzTmFtZXMgPSBjbGFzc05hbWVzO1xuXHR9XG59KCkpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/classnames/index.js\n"); + +/***/ }), + +/***/ "./node_modules/enquire.js/src/MediaQuery.js": +/*!***************************************************!*\ + !*** ./node_modules/enquire.js/src/MediaQuery.js ***! + \***************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var QueryHandler = __webpack_require__(/*! ./QueryHandler */ \"./node_modules/enquire.js/src/QueryHandler.js\");\nvar each = (__webpack_require__(/*! ./Util */ \"./node_modules/enquire.js/src/Util.js\").each);\n\n/**\n * Represents a single media query, manages it's state and registered handlers for this query\n *\n * @constructor\n * @param {string} query the media query string\n * @param {boolean} [isUnconditional=false] whether the media query should run regardless of whether the conditions are met. Primarily for helping older browsers deal with mobile-first design\n */\nfunction MediaQuery(query, isUnconditional) {\n this.query = query;\n this.isUnconditional = isUnconditional;\n this.handlers = [];\n this.mql = window.matchMedia(query);\n\n var self = this;\n this.listener = function(mql) {\n // Chrome passes an MediaQueryListEvent object, while other browsers pass MediaQueryList directly\n self.mql = mql.currentTarget || mql;\n self.assess();\n };\n this.mql.addListener(this.listener);\n}\n\nMediaQuery.prototype = {\n\n constuctor : MediaQuery,\n\n /**\n * add a handler for this query, triggering if already active\n *\n * @param {object} handler\n * @param {function} handler.match callback for when query is activated\n * @param {function} [handler.unmatch] callback for when query is deactivated\n * @param {function} [handler.setup] callback for immediate execution when a query handler is registered\n * @param {boolean} [handler.deferSetup=false] should the setup callback be deferred until the first time the handler is matched?\n */\n addHandler : function(handler) {\n var qh = new QueryHandler(handler);\n this.handlers.push(qh);\n\n this.matches() && qh.on();\n },\n\n /**\n * removes the given handler from the collection, and calls it's destroy methods\n *\n * @param {object || function} handler the handler to remove\n */\n removeHandler : function(handler) {\n var handlers = this.handlers;\n each(handlers, function(h, i) {\n if(h.equals(handler)) {\n h.destroy();\n return !handlers.splice(i,1); //remove from array and exit each early\n }\n });\n },\n\n /**\n * Determine whether the media query should be considered a match\n *\n * @return {Boolean} true if media query can be considered a match, false otherwise\n */\n matches : function() {\n return this.mql.matches || this.isUnconditional;\n },\n\n /**\n * Clears all handlers and unbinds events\n */\n clear : function() {\n each(this.handlers, function(handler) {\n handler.destroy();\n });\n this.mql.removeListener(this.listener);\n this.handlers.length = 0; //clear array\n },\n\n /*\n * Assesses the query, turning on all handlers if it matches, turning them off if it doesn't match\n */\n assess : function() {\n var action = this.matches() ? 'on' : 'off';\n\n each(this.handlers, function(handler) {\n handler[action]();\n });\n }\n};\n\nmodule.exports = MediaQuery;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvZW5xdWlyZS5qcy9zcmMvTWVkaWFRdWVyeS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQSxtQkFBbUIsbUJBQU8sQ0FBQyxxRUFBZ0I7QUFDM0MsV0FBVyxpRkFBc0I7O0FBRWpDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsU0FBUztBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLFFBQVE7QUFDdkIsZUFBZSxVQUFVO0FBQ3pCLGVBQWUsVUFBVTtBQUN6QixlQUFlLFVBQVU7QUFDekIsZUFBZSxTQUFTO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQSxlQUFlLG9CQUFvQjtBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBOEM7QUFDOUM7QUFDQSxTQUFTO0FBQ1QsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsU0FBUztBQUN6QjtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBLGtDQUFrQztBQUNsQyxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9lbnF1aXJlLmpzL3NyYy9NZWRpYVF1ZXJ5LmpzPzM3NzQiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIFF1ZXJ5SGFuZGxlciA9IHJlcXVpcmUoJy4vUXVlcnlIYW5kbGVyJyk7XG52YXIgZWFjaCA9IHJlcXVpcmUoJy4vVXRpbCcpLmVhY2g7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHNpbmdsZSBtZWRpYSBxdWVyeSwgbWFuYWdlcyBpdCdzIHN0YXRlIGFuZCByZWdpc3RlcmVkIGhhbmRsZXJzIGZvciB0aGlzIHF1ZXJ5XG4gKlxuICogQGNvbnN0cnVjdG9yXG4gKiBAcGFyYW0ge3N0cmluZ30gcXVlcnkgdGhlIG1lZGlhIHF1ZXJ5IHN0cmluZ1xuICogQHBhcmFtIHtib29sZWFufSBbaXNVbmNvbmRpdGlvbmFsPWZhbHNlXSB3aGV0aGVyIHRoZSBtZWRpYSBxdWVyeSBzaG91bGQgcnVuIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUgY29uZGl0aW9ucyBhcmUgbWV0LiBQcmltYXJpbHkgZm9yIGhlbHBpbmcgb2xkZXIgYnJvd3NlcnMgZGVhbCB3aXRoIG1vYmlsZS1maXJzdCBkZXNpZ25cbiAqL1xuZnVuY3Rpb24gTWVkaWFRdWVyeShxdWVyeSwgaXNVbmNvbmRpdGlvbmFsKSB7XG4gICAgdGhpcy5xdWVyeSA9IHF1ZXJ5O1xuICAgIHRoaXMuaXNVbmNvbmRpdGlvbmFsID0gaXNVbmNvbmRpdGlvbmFsO1xuICAgIHRoaXMuaGFuZGxlcnMgPSBbXTtcbiAgICB0aGlzLm1xbCA9IHdpbmRvdy5tYXRjaE1lZGlhKHF1ZXJ5KTtcblxuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB0aGlzLmxpc3RlbmVyID0gZnVuY3Rpb24obXFsKSB7XG4gICAgICAgIC8vIENocm9tZSBwYXNzZXMgYW4gTWVkaWFRdWVyeUxpc3RFdmVudCBvYmplY3QsIHdoaWxlIG90aGVyIGJyb3dzZXJzIHBhc3MgTWVkaWFRdWVyeUxpc3QgZGlyZWN0bHlcbiAgICAgICAgc2VsZi5tcWwgPSBtcWwuY3VycmVudFRhcmdldCB8fCBtcWw7XG4gICAgICAgIHNlbGYuYXNzZXNzKCk7XG4gICAgfTtcbiAgICB0aGlzLm1xbC5hZGRMaXN0ZW5lcih0aGlzLmxpc3RlbmVyKTtcbn1cblxuTWVkaWFRdWVyeS5wcm90b3R5cGUgPSB7XG5cbiAgICBjb25zdHVjdG9yIDogTWVkaWFRdWVyeSxcblxuICAgIC8qKlxuICAgICAqIGFkZCBhIGhhbmRsZXIgZm9yIHRoaXMgcXVlcnksIHRyaWdnZXJpbmcgaWYgYWxyZWFkeSBhY3RpdmVcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBoYW5kbGVyXG4gICAgICogQHBhcmFtIHtmdW5jdGlvbn0gaGFuZGxlci5tYXRjaCBjYWxsYmFjayBmb3Igd2hlbiBxdWVyeSBpcyBhY3RpdmF0ZWRcbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBbaGFuZGxlci51bm1hdGNoXSBjYWxsYmFjayBmb3Igd2hlbiBxdWVyeSBpcyBkZWFjdGl2YXRlZFxuICAgICAqIEBwYXJhbSB7ZnVuY3Rpb259IFtoYW5kbGVyLnNldHVwXSBjYWxsYmFjayBmb3IgaW1tZWRpYXRlIGV4ZWN1dGlvbiB3aGVuIGEgcXVlcnkgaGFuZGxlciBpcyByZWdpc3RlcmVkXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbaGFuZGxlci5kZWZlclNldHVwPWZhbHNlXSBzaG91bGQgdGhlIHNldHVwIGNhbGxiYWNrIGJlIGRlZmVycmVkIHVudGlsIHRoZSBmaXJzdCB0aW1lIHRoZSBoYW5kbGVyIGlzIG1hdGNoZWQ/XG4gICAgICovXG4gICAgYWRkSGFuZGxlciA6IGZ1bmN0aW9uKGhhbmRsZXIpIHtcbiAgICAgICAgdmFyIHFoID0gbmV3IFF1ZXJ5SGFuZGxlcihoYW5kbGVyKTtcbiAgICAgICAgdGhpcy5oYW5kbGVycy5wdXNoKHFoKTtcblxuICAgICAgICB0aGlzLm1hdGNoZXMoKSAmJiBxaC5vbigpO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiByZW1vdmVzIHRoZSBnaXZlbiBoYW5kbGVyIGZyb20gdGhlIGNvbGxlY3Rpb24sIGFuZCBjYWxscyBpdCdzIGRlc3Ryb3kgbWV0aG9kc1xuICAgICAqXG4gICAgICogQHBhcmFtIHtvYmplY3QgfHwgZnVuY3Rpb259IGhhbmRsZXIgdGhlIGhhbmRsZXIgdG8gcmVtb3ZlXG4gICAgICovXG4gICAgcmVtb3ZlSGFuZGxlciA6IGZ1bmN0aW9uKGhhbmRsZXIpIHtcbiAgICAgICAgdmFyIGhhbmRsZXJzID0gdGhpcy5oYW5kbGVycztcbiAgICAgICAgZWFjaChoYW5kbGVycywgZnVuY3Rpb24oaCwgaSkge1xuICAgICAgICAgICAgaWYoaC5lcXVhbHMoaGFuZGxlcikpIHtcbiAgICAgICAgICAgICAgICBoLmRlc3Ryb3koKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gIWhhbmRsZXJzLnNwbGljZShpLDEpOyAvL3JlbW92ZSBmcm9tIGFycmF5IGFuZCBleGl0IGVhY2ggZWFybHlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIERldGVybWluZSB3aGV0aGVyIHRoZSBtZWRpYSBxdWVyeSBzaG91bGQgYmUgY29uc2lkZXJlZCBhIG1hdGNoXG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHtCb29sZWFufSB0cnVlIGlmIG1lZGlhIHF1ZXJ5IGNhbiBiZSBjb25zaWRlcmVkIGEgbWF0Y2gsIGZhbHNlIG90aGVyd2lzZVxuICAgICAqL1xuICAgIG1hdGNoZXMgOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubXFsLm1hdGNoZXMgfHwgdGhpcy5pc1VuY29uZGl0aW9uYWw7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIENsZWFycyBhbGwgaGFuZGxlcnMgYW5kIHVuYmluZHMgZXZlbnRzXG4gICAgICovXG4gICAgY2xlYXIgOiBmdW5jdGlvbigpIHtcbiAgICAgICAgZWFjaCh0aGlzLmhhbmRsZXJzLCBmdW5jdGlvbihoYW5kbGVyKSB7XG4gICAgICAgICAgICBoYW5kbGVyLmRlc3Ryb3koKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubXFsLnJlbW92ZUxpc3RlbmVyKHRoaXMubGlzdGVuZXIpO1xuICAgICAgICB0aGlzLmhhbmRsZXJzLmxlbmd0aCA9IDA7IC8vY2xlYXIgYXJyYXlcbiAgICB9LFxuXG4gICAgLypcbiAgICAgICAgKiBBc3Nlc3NlcyB0aGUgcXVlcnksIHR1cm5pbmcgb24gYWxsIGhhbmRsZXJzIGlmIGl0IG1hdGNoZXMsIHR1cm5pbmcgdGhlbSBvZmYgaWYgaXQgZG9lc24ndCBtYXRjaFxuICAgICAgICAqL1xuICAgIGFzc2VzcyA6IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgYWN0aW9uID0gdGhpcy5tYXRjaGVzKCkgPyAnb24nIDogJ29mZic7XG5cbiAgICAgICAgZWFjaCh0aGlzLmhhbmRsZXJzLCBmdW5jdGlvbihoYW5kbGVyKSB7XG4gICAgICAgICAgICBoYW5kbGVyW2FjdGlvbl0oKTtcbiAgICAgICAgfSk7XG4gICAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBNZWRpYVF1ZXJ5O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/enquire.js/src/MediaQuery.js\n"); + +/***/ }), + +/***/ "./node_modules/enquire.js/src/MediaQueryDispatch.js": +/*!***********************************************************!*\ + !*** ./node_modules/enquire.js/src/MediaQueryDispatch.js ***! + \***********************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var MediaQuery = __webpack_require__(/*! ./MediaQuery */ \"./node_modules/enquire.js/src/MediaQuery.js\");\nvar Util = __webpack_require__(/*! ./Util */ \"./node_modules/enquire.js/src/Util.js\");\nvar each = Util.each;\nvar isFunction = Util.isFunction;\nvar isArray = Util.isArray;\n\n/**\n * Allows for registration of query handlers.\n * Manages the query handler's state and is responsible for wiring up browser events\n *\n * @constructor\n */\nfunction MediaQueryDispatch () {\n if(!window.matchMedia) {\n throw new Error('matchMedia not present, legacy browsers require a polyfill');\n }\n\n this.queries = {};\n this.browserIsIncapable = !window.matchMedia('only all').matches;\n}\n\nMediaQueryDispatch.prototype = {\n\n constructor : MediaQueryDispatch,\n\n /**\n * Registers a handler for the given media query\n *\n * @param {string} q the media query\n * @param {object || Array || Function} options either a single query handler object, a function, or an array of query handlers\n * @param {function} options.match fired when query matched\n * @param {function} [options.unmatch] fired when a query is no longer matched\n * @param {function} [options.setup] fired when handler first triggered\n * @param {boolean} [options.deferSetup=false] whether setup should be run immediately or deferred until query is first matched\n * @param {boolean} [shouldDegrade=false] whether this particular media query should always run on incapable browsers\n */\n register : function(q, options, shouldDegrade) {\n var queries = this.queries,\n isUnconditional = shouldDegrade && this.browserIsIncapable;\n\n if(!queries[q]) {\n queries[q] = new MediaQuery(q, isUnconditional);\n }\n\n //normalise to object in an array\n if(isFunction(options)) {\n options = { match : options };\n }\n if(!isArray(options)) {\n options = [options];\n }\n each(options, function(handler) {\n if (isFunction(handler)) {\n handler = { match : handler };\n }\n queries[q].addHandler(handler);\n });\n\n return this;\n },\n\n /**\n * unregisters a query and all it's handlers, or a specific handler for a query\n *\n * @param {string} q the media query to target\n * @param {object || function} [handler] specific handler to unregister\n */\n unregister : function(q, handler) {\n var query = this.queries[q];\n\n if(query) {\n if(handler) {\n query.removeHandler(handler);\n }\n else {\n query.clear();\n delete this.queries[q];\n }\n }\n\n return this;\n }\n};\n\nmodule.exports = MediaQueryDispatch;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvZW5xdWlyZS5qcy9zcmMvTWVkaWFRdWVyeURpc3BhdGNoLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBLGlCQUFpQixtQkFBTyxDQUFDLGlFQUFjO0FBQ3ZDLFdBQVcsbUJBQU8sQ0FBQyxxREFBUTtBQUMzQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsUUFBUTtBQUN2QixlQUFlLDZCQUE2QjtBQUM1QyxlQUFlLFVBQVU7QUFDekIsZUFBZSxVQUFVO0FBQ3pCLGVBQWUsVUFBVTtBQUN6QixlQUFlLFNBQVM7QUFDeEIsZUFBZSxTQUFTO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0Esd0JBQXdCO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QjtBQUM1QjtBQUNBO0FBQ0EsU0FBUzs7QUFFVDtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0EsZUFBZSxRQUFRO0FBQ3ZCLGVBQWUsb0JBQW9CO0FBQ25DO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9lbnF1aXJlLmpzL3NyYy9NZWRpYVF1ZXJ5RGlzcGF0Y2guanM/NDE5OSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgTWVkaWFRdWVyeSA9IHJlcXVpcmUoJy4vTWVkaWFRdWVyeScpO1xudmFyIFV0aWwgPSByZXF1aXJlKCcuL1V0aWwnKTtcbnZhciBlYWNoID0gVXRpbC5lYWNoO1xudmFyIGlzRnVuY3Rpb24gPSBVdGlsLmlzRnVuY3Rpb247XG52YXIgaXNBcnJheSA9IFV0aWwuaXNBcnJheTtcblxuLyoqXG4gKiBBbGxvd3MgZm9yIHJlZ2lzdHJhdGlvbiBvZiBxdWVyeSBoYW5kbGVycy5cbiAqIE1hbmFnZXMgdGhlIHF1ZXJ5IGhhbmRsZXIncyBzdGF0ZSBhbmQgaXMgcmVzcG9uc2libGUgZm9yIHdpcmluZyB1cCBicm93c2VyIGV2ZW50c1xuICpcbiAqIEBjb25zdHJ1Y3RvclxuICovXG5mdW5jdGlvbiBNZWRpYVF1ZXJ5RGlzcGF0Y2ggKCkge1xuICAgIGlmKCF3aW5kb3cubWF0Y2hNZWRpYSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ21hdGNoTWVkaWEgbm90IHByZXNlbnQsIGxlZ2FjeSBicm93c2VycyByZXF1aXJlIGEgcG9seWZpbGwnKTtcbiAgICB9XG5cbiAgICB0aGlzLnF1ZXJpZXMgPSB7fTtcbiAgICB0aGlzLmJyb3dzZXJJc0luY2FwYWJsZSA9ICF3aW5kb3cubWF0Y2hNZWRpYSgnb25seSBhbGwnKS5tYXRjaGVzO1xufVxuXG5NZWRpYVF1ZXJ5RGlzcGF0Y2gucHJvdG90eXBlID0ge1xuXG4gICAgY29uc3RydWN0b3IgOiBNZWRpYVF1ZXJ5RGlzcGF0Y2gsXG5cbiAgICAvKipcbiAgICAgKiBSZWdpc3RlcnMgYSBoYW5kbGVyIGZvciB0aGUgZ2l2ZW4gbWVkaWEgcXVlcnlcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBxIHRoZSBtZWRpYSBxdWVyeVxuICAgICAqIEBwYXJhbSB7b2JqZWN0IHx8IEFycmF5IHx8IEZ1bmN0aW9ufSBvcHRpb25zIGVpdGhlciBhIHNpbmdsZSBxdWVyeSBoYW5kbGVyIG9iamVjdCwgYSBmdW5jdGlvbiwgb3IgYW4gYXJyYXkgb2YgcXVlcnkgaGFuZGxlcnNcbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBvcHRpb25zLm1hdGNoIGZpcmVkIHdoZW4gcXVlcnkgbWF0Y2hlZFxuICAgICAqIEBwYXJhbSB7ZnVuY3Rpb259IFtvcHRpb25zLnVubWF0Y2hdIGZpcmVkIHdoZW4gYSBxdWVyeSBpcyBubyBsb25nZXIgbWF0Y2hlZFxuICAgICAqIEBwYXJhbSB7ZnVuY3Rpb259IFtvcHRpb25zLnNldHVwXSBmaXJlZCB3aGVuIGhhbmRsZXIgZmlyc3QgdHJpZ2dlcmVkXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5kZWZlclNldHVwPWZhbHNlXSB3aGV0aGVyIHNldHVwIHNob3VsZCBiZSBydW4gaW1tZWRpYXRlbHkgb3IgZGVmZXJyZWQgdW50aWwgcXVlcnkgaXMgZmlyc3QgbWF0Y2hlZFxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW3Nob3VsZERlZ3JhZGU9ZmFsc2VdIHdoZXRoZXIgdGhpcyBwYXJ0aWN1bGFyIG1lZGlhIHF1ZXJ5IHNob3VsZCBhbHdheXMgcnVuIG9uIGluY2FwYWJsZSBicm93c2Vyc1xuICAgICAqL1xuICAgIHJlZ2lzdGVyIDogZnVuY3Rpb24ocSwgb3B0aW9ucywgc2hvdWxkRGVncmFkZSkge1xuICAgICAgICB2YXIgcXVlcmllcyAgICAgICAgID0gdGhpcy5xdWVyaWVzLFxuICAgICAgICAgICAgaXNVbmNvbmRpdGlvbmFsID0gc2hvdWxkRGVncmFkZSAmJiB0aGlzLmJyb3dzZXJJc0luY2FwYWJsZTtcblxuICAgICAgICBpZighcXVlcmllc1txXSkge1xuICAgICAgICAgICAgcXVlcmllc1txXSA9IG5ldyBNZWRpYVF1ZXJ5KHEsIGlzVW5jb25kaXRpb25hbCk7XG4gICAgICAgIH1cblxuICAgICAgICAvL25vcm1hbGlzZSB0byBvYmplY3QgaW4gYW4gYXJyYXlcbiAgICAgICAgaWYoaXNGdW5jdGlvbihvcHRpb25zKSkge1xuICAgICAgICAgICAgb3B0aW9ucyA9IHsgbWF0Y2ggOiBvcHRpb25zIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYoIWlzQXJyYXkob3B0aW9ucykpIHtcbiAgICAgICAgICAgIG9wdGlvbnMgPSBbb3B0aW9uc107XG4gICAgICAgIH1cbiAgICAgICAgZWFjaChvcHRpb25zLCBmdW5jdGlvbihoYW5kbGVyKSB7XG4gICAgICAgICAgICBpZiAoaXNGdW5jdGlvbihoYW5kbGVyKSkge1xuICAgICAgICAgICAgICAgIGhhbmRsZXIgPSB7IG1hdGNoIDogaGFuZGxlciB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcXVlcmllc1txXS5hZGRIYW5kbGVyKGhhbmRsZXIpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogdW5yZWdpc3RlcnMgYSBxdWVyeSBhbmQgYWxsIGl0J3MgaGFuZGxlcnMsIG9yIGEgc3BlY2lmaWMgaGFuZGxlciBmb3IgYSBxdWVyeVxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHEgdGhlIG1lZGlhIHF1ZXJ5IHRvIHRhcmdldFxuICAgICAqIEBwYXJhbSB7b2JqZWN0IHx8IGZ1bmN0aW9ufSBbaGFuZGxlcl0gc3BlY2lmaWMgaGFuZGxlciB0byB1bnJlZ2lzdGVyXG4gICAgICovXG4gICAgdW5yZWdpc3RlciA6IGZ1bmN0aW9uKHEsIGhhbmRsZXIpIHtcbiAgICAgICAgdmFyIHF1ZXJ5ID0gdGhpcy5xdWVyaWVzW3FdO1xuXG4gICAgICAgIGlmKHF1ZXJ5KSB7XG4gICAgICAgICAgICBpZihoYW5kbGVyKSB7XG4gICAgICAgICAgICAgICAgcXVlcnkucmVtb3ZlSGFuZGxlcihoYW5kbGVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHF1ZXJ5LmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMucXVlcmllc1txXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gTWVkaWFRdWVyeURpc3BhdGNoO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/enquire.js/src/MediaQueryDispatch.js\n"); + +/***/ }), + +/***/ "./node_modules/enquire.js/src/QueryHandler.js": +/*!*****************************************************!*\ + !*** ./node_modules/enquire.js/src/QueryHandler.js ***! + \*****************************************************/ +/***/ (function(module) { + +eval("/**\n * Delegate to handle a media query being matched and unmatched.\n *\n * @param {object} options\n * @param {function} options.match callback for when the media query is matched\n * @param {function} [options.unmatch] callback for when the media query is unmatched\n * @param {function} [options.setup] one-time callback triggered the first time a query is matched\n * @param {boolean} [options.deferSetup=false] should the setup callback be run immediately, rather than first time query is matched?\n * @constructor\n */\nfunction QueryHandler(options) {\n this.options = options;\n !options.deferSetup && this.setup();\n}\n\nQueryHandler.prototype = {\n\n constructor : QueryHandler,\n\n /**\n * coordinates setup of the handler\n *\n * @function\n */\n setup : function() {\n if(this.options.setup) {\n this.options.setup();\n }\n this.initialised = true;\n },\n\n /**\n * coordinates setup and triggering of the handler\n *\n * @function\n */\n on : function() {\n !this.initialised && this.setup();\n this.options.match && this.options.match();\n },\n\n /**\n * coordinates the unmatch event for the handler\n *\n * @function\n */\n off : function() {\n this.options.unmatch && this.options.unmatch();\n },\n\n /**\n * called when a handler is to be destroyed.\n * delegates to the destroy or unmatch callbacks, depending on availability.\n *\n * @function\n */\n destroy : function() {\n this.options.destroy ? this.options.destroy() : this.off();\n },\n\n /**\n * determines equality by reference.\n * if object is supplied compare options, if function, compare match callback\n *\n * @function\n * @param {object || function} [target] the target for comparison\n */\n equals : function(target) {\n return this.options === target || this.options.match === target;\n }\n\n};\n\nmodule.exports = QueryHandler;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvZW5xdWlyZS5qcy9zcmMvUXVlcnlIYW5kbGVyLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLFVBQVU7QUFDckIsV0FBVyxVQUFVO0FBQ3JCLFdBQVcsVUFBVTtBQUNyQixXQUFXLFNBQVM7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsb0JBQW9CO0FBQ25DO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9lbnF1aXJlLmpzL3NyYy9RdWVyeUhhbmRsZXIuanM/NjQwMyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERlbGVnYXRlIHRvIGhhbmRsZSBhIG1lZGlhIHF1ZXJ5IGJlaW5nIG1hdGNoZWQgYW5kIHVubWF0Y2hlZC5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gb3B0aW9uc1xuICogQHBhcmFtIHtmdW5jdGlvbn0gb3B0aW9ucy5tYXRjaCBjYWxsYmFjayBmb3Igd2hlbiB0aGUgbWVkaWEgcXVlcnkgaXMgbWF0Y2hlZFxuICogQHBhcmFtIHtmdW5jdGlvbn0gW29wdGlvbnMudW5tYXRjaF0gY2FsbGJhY2sgZm9yIHdoZW4gdGhlIG1lZGlhIHF1ZXJ5IGlzIHVubWF0Y2hlZFxuICogQHBhcmFtIHtmdW5jdGlvbn0gW29wdGlvbnMuc2V0dXBdIG9uZS10aW1lIGNhbGxiYWNrIHRyaWdnZXJlZCB0aGUgZmlyc3QgdGltZSBhIHF1ZXJ5IGlzIG1hdGNoZWRcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuZGVmZXJTZXR1cD1mYWxzZV0gc2hvdWxkIHRoZSBzZXR1cCBjYWxsYmFjayBiZSBydW4gaW1tZWRpYXRlbHksIHJhdGhlciB0aGFuIGZpcnN0IHRpbWUgcXVlcnkgaXMgbWF0Y2hlZD9cbiAqIEBjb25zdHJ1Y3RvclxuICovXG5mdW5jdGlvbiBRdWVyeUhhbmRsZXIob3B0aW9ucykge1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgIW9wdGlvbnMuZGVmZXJTZXR1cCAmJiB0aGlzLnNldHVwKCk7XG59XG5cblF1ZXJ5SGFuZGxlci5wcm90b3R5cGUgPSB7XG5cbiAgICBjb25zdHJ1Y3RvciA6IFF1ZXJ5SGFuZGxlcixcblxuICAgIC8qKlxuICAgICAqIGNvb3JkaW5hdGVzIHNldHVwIG9mIHRoZSBoYW5kbGVyXG4gICAgICpcbiAgICAgKiBAZnVuY3Rpb25cbiAgICAgKi9cbiAgICBzZXR1cCA6IGZ1bmN0aW9uKCkge1xuICAgICAgICBpZih0aGlzLm9wdGlvbnMuc2V0dXApIHtcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucy5zZXR1cCgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW5pdGlhbGlzZWQgPSB0cnVlO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBjb29yZGluYXRlcyBzZXR1cCBhbmQgdHJpZ2dlcmluZyBvZiB0aGUgaGFuZGxlclxuICAgICAqXG4gICAgICogQGZ1bmN0aW9uXG4gICAgICovXG4gICAgb24gOiBmdW5jdGlvbigpIHtcbiAgICAgICAgIXRoaXMuaW5pdGlhbGlzZWQgJiYgdGhpcy5zZXR1cCgpO1xuICAgICAgICB0aGlzLm9wdGlvbnMubWF0Y2ggJiYgdGhpcy5vcHRpb25zLm1hdGNoKCk7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIGNvb3JkaW5hdGVzIHRoZSB1bm1hdGNoIGV2ZW50IGZvciB0aGUgaGFuZGxlclxuICAgICAqXG4gICAgICogQGZ1bmN0aW9uXG4gICAgICovXG4gICAgb2ZmIDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHRoaXMub3B0aW9ucy51bm1hdGNoICYmIHRoaXMub3B0aW9ucy51bm1hdGNoKCk7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIGNhbGxlZCB3aGVuIGEgaGFuZGxlciBpcyB0byBiZSBkZXN0cm95ZWQuXG4gICAgICogZGVsZWdhdGVzIHRvIHRoZSBkZXN0cm95IG9yIHVubWF0Y2ggY2FsbGJhY2tzLCBkZXBlbmRpbmcgb24gYXZhaWxhYmlsaXR5LlxuICAgICAqXG4gICAgICogQGZ1bmN0aW9uXG4gICAgICovXG4gICAgZGVzdHJveSA6IGZ1bmN0aW9uKCkge1xuICAgICAgICB0aGlzLm9wdGlvbnMuZGVzdHJveSA/IHRoaXMub3B0aW9ucy5kZXN0cm95KCkgOiB0aGlzLm9mZigpO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBkZXRlcm1pbmVzIGVxdWFsaXR5IGJ5IHJlZmVyZW5jZS5cbiAgICAgKiBpZiBvYmplY3QgaXMgc3VwcGxpZWQgY29tcGFyZSBvcHRpb25zLCBpZiBmdW5jdGlvbiwgY29tcGFyZSBtYXRjaCBjYWxsYmFja1xuICAgICAqXG4gICAgICogQGZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtvYmplY3QgfHwgZnVuY3Rpb259IFt0YXJnZXRdIHRoZSB0YXJnZXQgZm9yIGNvbXBhcmlzb25cbiAgICAgKi9cbiAgICBlcXVhbHMgOiBmdW5jdGlvbih0YXJnZXQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucyA9PT0gdGFyZ2V0IHx8IHRoaXMub3B0aW9ucy5tYXRjaCA9PT0gdGFyZ2V0O1xuICAgIH1cblxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBRdWVyeUhhbmRsZXI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/enquire.js/src/QueryHandler.js\n"); + +/***/ }), + +/***/ "./node_modules/enquire.js/src/Util.js": +/*!*********************************************!*\ + !*** ./node_modules/enquire.js/src/Util.js ***! + \*********************************************/ +/***/ (function(module) { + +eval("/**\n * Helper function for iterating over a collection\n *\n * @param collection\n * @param fn\n */\nfunction each(collection, fn) {\n var i = 0,\n length = collection.length,\n cont;\n\n for(i; i < length; i++) {\n cont = fn(collection[i], i);\n if(cont === false) {\n break; //allow early exit\n }\n }\n}\n\n/**\n * Helper function for determining whether target object is an array\n *\n * @param target the object under test\n * @return {Boolean} true if array, false otherwise\n */\nfunction isArray(target) {\n return Object.prototype.toString.apply(target) === '[object Array]';\n}\n\n/**\n * Helper function for determining whether target object is a function\n *\n * @param target the object under test\n * @return {Boolean} true if function, false otherwise\n */\nfunction isFunction(target) {\n return typeof target === 'function';\n}\n\nmodule.exports = {\n isFunction : isFunction,\n isArray : isArray,\n each : each\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvZW5xdWlyZS5qcy9zcmMvVXRpbC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxXQUFXLFlBQVk7QUFDdkI7QUFDQTtBQUNBLG1CQUFtQjtBQUNuQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLFNBQVM7QUFDckI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLFNBQVM7QUFDckI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZW5xdWlyZS5qcy9zcmMvVXRpbC5qcz8wMTA1Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIGZvciBpdGVyYXRpbmcgb3ZlciBhIGNvbGxlY3Rpb25cbiAqXG4gKiBAcGFyYW0gY29sbGVjdGlvblxuICogQHBhcmFtIGZuXG4gKi9cbmZ1bmN0aW9uIGVhY2goY29sbGVjdGlvbiwgZm4pIHtcbiAgICB2YXIgaSAgICAgID0gMCxcbiAgICAgICAgbGVuZ3RoID0gY29sbGVjdGlvbi5sZW5ndGgsXG4gICAgICAgIGNvbnQ7XG5cbiAgICBmb3IoaTsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnQgPSBmbihjb2xsZWN0aW9uW2ldLCBpKTtcbiAgICAgICAgaWYoY29udCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGJyZWFrOyAvL2FsbG93IGVhcmx5IGV4aXRcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gZm9yIGRldGVybWluaW5nIHdoZXRoZXIgdGFyZ2V0IG9iamVjdCBpcyBhbiBhcnJheVxuICpcbiAqIEBwYXJhbSB0YXJnZXQgdGhlIG9iamVjdCB1bmRlciB0ZXN0XG4gKiBAcmV0dXJuIHtCb29sZWFufSB0cnVlIGlmIGFycmF5LCBmYWxzZSBvdGhlcndpc2VcbiAqL1xuZnVuY3Rpb24gaXNBcnJheSh0YXJnZXQpIHtcbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5hcHBseSh0YXJnZXQpID09PSAnW29iamVjdCBBcnJheV0nO1xufVxuXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiBmb3IgZGV0ZXJtaW5pbmcgd2hldGhlciB0YXJnZXQgb2JqZWN0IGlzIGEgZnVuY3Rpb25cbiAqXG4gKiBAcGFyYW0gdGFyZ2V0IHRoZSBvYmplY3QgdW5kZXIgdGVzdFxuICogQHJldHVybiB7Qm9vbGVhbn0gdHJ1ZSBpZiBmdW5jdGlvbiwgZmFsc2Ugb3RoZXJ3aXNlXG4gKi9cbmZ1bmN0aW9uIGlzRnVuY3Rpb24odGFyZ2V0KSB7XG4gICAgcmV0dXJuIHR5cGVvZiB0YXJnZXQgPT09ICdmdW5jdGlvbic7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIGlzRnVuY3Rpb24gOiBpc0Z1bmN0aW9uLFxuICAgIGlzQXJyYXkgOiBpc0FycmF5LFxuICAgIGVhY2ggOiBlYWNoXG59O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/enquire.js/src/Util.js\n"); + +/***/ }), + +/***/ "./node_modules/enquire.js/src/index.js": +/*!**********************************************!*\ + !*** ./node_modules/enquire.js/src/index.js ***! + \**********************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var MediaQueryDispatch = __webpack_require__(/*! ./MediaQueryDispatch */ \"./node_modules/enquire.js/src/MediaQueryDispatch.js\");\nmodule.exports = new MediaQueryDispatch();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvZW5xdWlyZS5qcy9zcmMvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQUEseUJBQXlCLG1CQUFPLENBQUMsaUZBQXNCO0FBQ3ZEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9lbnF1aXJlLmpzL3NyYy9pbmRleC5qcz83YjFiIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBNZWRpYVF1ZXJ5RGlzcGF0Y2ggPSByZXF1aXJlKCcuL01lZGlhUXVlcnlEaXNwYXRjaCcpO1xubW9kdWxlLmV4cG9ydHMgPSBuZXcgTWVkaWFRdWVyeURpc3BhdGNoKCk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/enquire.js/src/index.js\n"); + +/***/ }), + +/***/ "./node_modules/json2mq/index.js": +/*!***************************************!*\ + !*** ./node_modules/json2mq/index.js ***! + \***************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var camel2hyphen = __webpack_require__(/*! string-convert/camel2hyphen */ \"./node_modules/string-convert/camel2hyphen.js\");\n\nvar isDimension = function (feature) {\n var re = /[height|width]$/;\n return re.test(feature);\n};\n\nvar obj2mq = function (obj) {\n var mq = '';\n var features = Object.keys(obj);\n features.forEach(function (feature, index) {\n var value = obj[feature];\n feature = camel2hyphen(feature);\n // Add px to dimension features\n if (isDimension(feature) && typeof value === 'number') {\n value = value + 'px';\n }\n if (value === true) {\n mq += feature;\n } else if (value === false) {\n mq += 'not ' + feature;\n } else {\n mq += '(' + feature + ': ' + value + ')';\n }\n if (index < features.length-1) {\n mq += ' and '\n }\n });\n return mq;\n};\n\nvar json2mq = function (query) {\n var mq = '';\n if (typeof query === 'string') {\n return query;\n }\n // Handling array of media queries\n if (query instanceof Array) {\n query.forEach(function (q, index) {\n mq += obj2mq(q);\n if (index < query.length-1) {\n mq += ', '\n }\n });\n return mq;\n }\n // Handling single media query\n return obj2mq(query);\n};\n\nmodule.exports = json2mq;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvanNvbjJtcS9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQSxtQkFBbUIsbUJBQU8sQ0FBQyxrRkFBNkI7O0FBRXhEO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2pzb24ybXEvaW5kZXguanM/YTRkZSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgY2FtZWwyaHlwaGVuID0gcmVxdWlyZSgnc3RyaW5nLWNvbnZlcnQvY2FtZWwyaHlwaGVuJyk7XG5cbnZhciBpc0RpbWVuc2lvbiA9IGZ1bmN0aW9uIChmZWF0dXJlKSB7XG4gIHZhciByZSA9IC9baGVpZ2h0fHdpZHRoXSQvO1xuICByZXR1cm4gcmUudGVzdChmZWF0dXJlKTtcbn07XG5cbnZhciBvYmoybXEgPSBmdW5jdGlvbiAob2JqKSB7XG4gIHZhciBtcSA9ICcnO1xuICB2YXIgZmVhdHVyZXMgPSBPYmplY3Qua2V5cyhvYmopO1xuICBmZWF0dXJlcy5mb3JFYWNoKGZ1bmN0aW9uIChmZWF0dXJlLCBpbmRleCkge1xuICAgIHZhciB2YWx1ZSA9IG9ialtmZWF0dXJlXTtcbiAgICBmZWF0dXJlID0gY2FtZWwyaHlwaGVuKGZlYXR1cmUpO1xuICAgIC8vIEFkZCBweCB0byBkaW1lbnNpb24gZmVhdHVyZXNcbiAgICBpZiAoaXNEaW1lbnNpb24oZmVhdHVyZSkgJiYgdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgdmFsdWUgPSB2YWx1ZSArICdweCc7XG4gICAgfVxuICAgIGlmICh2YWx1ZSA9PT0gdHJ1ZSkge1xuICAgICAgbXEgKz0gZmVhdHVyZTtcbiAgICB9IGVsc2UgaWYgKHZhbHVlID09PSBmYWxzZSkge1xuICAgICAgbXEgKz0gJ25vdCAnICsgZmVhdHVyZTtcbiAgICB9IGVsc2Uge1xuICAgICAgbXEgKz0gJygnICsgZmVhdHVyZSArICc6ICcgKyB2YWx1ZSArICcpJztcbiAgICB9XG4gICAgaWYgKGluZGV4IDwgZmVhdHVyZXMubGVuZ3RoLTEpIHtcbiAgICAgIG1xICs9ICcgYW5kICdcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gbXE7XG59O1xuXG52YXIganNvbjJtcSA9IGZ1bmN0aW9uIChxdWVyeSkge1xuICB2YXIgbXEgPSAnJztcbiAgaWYgKHR5cGVvZiBxdWVyeSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gcXVlcnk7XG4gIH1cbiAgLy8gSGFuZGxpbmcgYXJyYXkgb2YgbWVkaWEgcXVlcmllc1xuICBpZiAocXVlcnkgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgIHF1ZXJ5LmZvckVhY2goZnVuY3Rpb24gKHEsIGluZGV4KSB7XG4gICAgICBtcSArPSBvYmoybXEocSk7XG4gICAgICBpZiAoaW5kZXggPCBxdWVyeS5sZW5ndGgtMSkge1xuICAgICAgICBtcSArPSAnLCAnXG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIG1xO1xuICB9XG4gIC8vIEhhbmRsaW5nIHNpbmdsZSBtZWRpYSBxdWVyeVxuICByZXR1cm4gb2JqMm1xKHF1ZXJ5KTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ganNvbjJtcTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/json2mq/index.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash.debounce/index.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash.debounce/index.js ***! + \***********************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof __webpack_require__.g == 'object' && __webpack_require__.g && __webpack_require__.g.Object === Object && __webpack_require__.g;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLmRlYm91bmNlL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0Esd0JBQXdCLHFCQUFNLGdCQUFnQixxQkFBTSxJQUFJLHFCQUFNLHNCQUFzQixxQkFBTTs7QUFFMUY7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFVBQVU7QUFDckIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUSxXQUFXO0FBQzlCLFdBQVcsU0FBUztBQUNwQjtBQUNBLFdBQVcsUUFBUTtBQUNuQjtBQUNBLFdBQVcsU0FBUztBQUNwQjtBQUNBLGFBQWEsVUFBVTtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLCtDQUErQyxpQkFBaUI7QUFDaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2QsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2guZGVib3VuY2UvaW5kZXguanM/ODlhOCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGxvZGFzaCAoQ3VzdG9tIEJ1aWxkKSA8aHR0cHM6Ly9sb2Rhc2guY29tLz5cbiAqIEJ1aWxkOiBgbG9kYXNoIG1vZHVsYXJpemUgZXhwb3J0cz1cIm5wbVwiIC1vIC4vYFxuICogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMgPGh0dHBzOi8vanF1ZXJ5Lm9yZy8+XG4gKiBSZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZSA8aHR0cHM6Ly9sb2Rhc2guY29tL2xpY2Vuc2U+XG4gKiBCYXNlZCBvbiBVbmRlcnNjb3JlLmpzIDEuOC4zIDxodHRwOi8vdW5kZXJzY29yZWpzLm9yZy9MSUNFTlNFPlxuICogQ29weXJpZ2h0IEplcmVteSBBc2hrZW5hcywgRG9jdW1lbnRDbG91ZCBhbmQgSW52ZXN0aWdhdGl2ZSBSZXBvcnRlcnMgJiBFZGl0b3JzXG4gKi9cblxuLyoqIFVzZWQgYXMgdGhlIGBUeXBlRXJyb3JgIG1lc3NhZ2UgZm9yIFwiRnVuY3Rpb25zXCIgbWV0aG9kcy4gKi9cbnZhciBGVU5DX0VSUk9SX1RFWFQgPSAnRXhwZWN0ZWQgYSBmdW5jdGlvbic7XG5cbi8qKiBVc2VkIGFzIHJlZmVyZW5jZXMgZm9yIHZhcmlvdXMgYE51bWJlcmAgY29uc3RhbnRzLiAqL1xudmFyIE5BTiA9IDAgLyAwO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgc3ltYm9sVGFnID0gJ1tvYmplY3QgU3ltYm9sXSc7XG5cbi8qKiBVc2VkIHRvIG1hdGNoIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2UuICovXG52YXIgcmVUcmltID0gL15cXHMrfFxccyskL2c7XG5cbi8qKiBVc2VkIHRvIGRldGVjdCBiYWQgc2lnbmVkIGhleGFkZWNpbWFsIHN0cmluZyB2YWx1ZXMuICovXG52YXIgcmVJc0JhZEhleCA9IC9eWy0rXTB4WzAtOWEtZl0rJC9pO1xuXG4vKiogVXNlZCB0byBkZXRlY3QgYmluYXJ5IHN0cmluZyB2YWx1ZXMuICovXG52YXIgcmVJc0JpbmFyeSA9IC9eMGJbMDFdKyQvaTtcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IG9jdGFsIHN0cmluZyB2YWx1ZXMuICovXG52YXIgcmVJc09jdGFsID0gL14wb1swLTddKyQvaTtcblxuLyoqIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIHdpdGhvdXQgYSBkZXBlbmRlbmN5IG9uIGByb290YC4gKi9cbnZhciBmcmVlUGFyc2VJbnQgPSBwYXJzZUludDtcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBnbG9iYWxgIGZyb20gTm9kZS5qcy4gKi9cbnZhciBmcmVlR2xvYmFsID0gdHlwZW9mIGdsb2JhbCA9PSAnb2JqZWN0JyAmJiBnbG9iYWwgJiYgZ2xvYmFsLk9iamVjdCA9PT0gT2JqZWN0ICYmIGdsb2JhbDtcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBzZWxmYC4gKi9cbnZhciBmcmVlU2VsZiA9IHR5cGVvZiBzZWxmID09ICdvYmplY3QnICYmIHNlbGYgJiYgc2VsZi5PYmplY3QgPT09IE9iamVjdCAmJiBzZWxmO1xuXG4vKiogVXNlZCBhcyBhIHJlZmVyZW5jZSB0byB0aGUgZ2xvYmFsIG9iamVjdC4gKi9cbnZhciByb290ID0gZnJlZUdsb2JhbCB8fCBmcmVlU2VsZiB8fCBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKipcbiAqIFVzZWQgdG8gcmVzb2x2ZSB0aGVcbiAqIFtgdG9TdHJpbmdUYWdgXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1vYmplY3QucHJvdG90eXBlLnRvc3RyaW5nKVxuICogb2YgdmFsdWVzLlxuICovXG52YXIgb2JqZWN0VG9TdHJpbmcgPSBvYmplY3RQcm90by50b1N0cmluZztcblxuLyogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xudmFyIG5hdGl2ZU1heCA9IE1hdGgubWF4LFxuICAgIG5hdGl2ZU1pbiA9IE1hdGgubWluO1xuXG4vKipcbiAqIEdldHMgdGhlIHRpbWVzdGFtcCBvZiB0aGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0aGF0IGhhdmUgZWxhcHNlZCBzaW5jZVxuICogdGhlIFVuaXggZXBvY2ggKDEgSmFudWFyeSAxOTcwIDAwOjAwOjAwIFVUQykuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAyLjQuMFxuICogQGNhdGVnb3J5IERhdGVcbiAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHRpbWVzdGFtcC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5kZWZlcihmdW5jdGlvbihzdGFtcCkge1xuICogICBjb25zb2xlLmxvZyhfLm5vdygpIC0gc3RhbXApO1xuICogfSwgXy5ub3coKSk7XG4gKiAvLyA9PiBMb2dzIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGl0IHRvb2sgZm9yIHRoZSBkZWZlcnJlZCBpbnZvY2F0aW9uLlxuICovXG52YXIgbm93ID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiByb290LkRhdGUubm93KCk7XG59O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBkZWJvdW5jZWQgZnVuY3Rpb24gdGhhdCBkZWxheXMgaW52b2tpbmcgYGZ1bmNgIHVudGlsIGFmdGVyIGB3YWl0YFxuICogbWlsbGlzZWNvbmRzIGhhdmUgZWxhcHNlZCBzaW5jZSB0aGUgbGFzdCB0aW1lIHRoZSBkZWJvdW5jZWQgZnVuY3Rpb24gd2FzXG4gKiBpbnZva2VkLiBUaGUgZGVib3VuY2VkIGZ1bmN0aW9uIGNvbWVzIHdpdGggYSBgY2FuY2VsYCBtZXRob2QgdG8gY2FuY2VsXG4gKiBkZWxheWVkIGBmdW5jYCBpbnZvY2F0aW9ucyBhbmQgYSBgZmx1c2hgIG1ldGhvZCB0byBpbW1lZGlhdGVseSBpbnZva2UgdGhlbS5cbiAqIFByb3ZpZGUgYG9wdGlvbnNgIHRvIGluZGljYXRlIHdoZXRoZXIgYGZ1bmNgIHNob3VsZCBiZSBpbnZva2VkIG9uIHRoZVxuICogbGVhZGluZyBhbmQvb3IgdHJhaWxpbmcgZWRnZSBvZiB0aGUgYHdhaXRgIHRpbWVvdXQuIFRoZSBgZnVuY2AgaXMgaW52b2tlZFxuICogd2l0aCB0aGUgbGFzdCBhcmd1bWVudHMgcHJvdmlkZWQgdG8gdGhlIGRlYm91bmNlZCBmdW5jdGlvbi4gU3Vic2VxdWVudFxuICogY2FsbHMgdG8gdGhlIGRlYm91bmNlZCBmdW5jdGlvbiByZXR1cm4gdGhlIHJlc3VsdCBvZiB0aGUgbGFzdCBgZnVuY2BcbiAqIGludm9jYXRpb24uXG4gKlxuICogKipOb3RlOioqIElmIGBsZWFkaW5nYCBhbmQgYHRyYWlsaW5nYCBvcHRpb25zIGFyZSBgdHJ1ZWAsIGBmdW5jYCBpc1xuICogaW52b2tlZCBvbiB0aGUgdHJhaWxpbmcgZWRnZSBvZiB0aGUgdGltZW91dCBvbmx5IGlmIHRoZSBkZWJvdW5jZWQgZnVuY3Rpb25cbiAqIGlzIGludm9rZWQgbW9yZSB0aGFuIG9uY2UgZHVyaW5nIHRoZSBgd2FpdGAgdGltZW91dC5cbiAqXG4gKiBJZiBgd2FpdGAgaXMgYDBgIGFuZCBgbGVhZGluZ2AgaXMgYGZhbHNlYCwgYGZ1bmNgIGludm9jYXRpb24gaXMgZGVmZXJyZWRcbiAqIHVudGlsIHRvIHRoZSBuZXh0IHRpY2ssIHNpbWlsYXIgdG8gYHNldFRpbWVvdXRgIHdpdGggYSB0aW1lb3V0IG9mIGAwYC5cbiAqXG4gKiBTZWUgW0RhdmlkIENvcmJhY2hvJ3MgYXJ0aWNsZV0oaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS9kZWJvdW5jaW5nLXRocm90dGxpbmctZXhwbGFpbmVkLWV4YW1wbGVzLylcbiAqIGZvciBkZXRhaWxzIG92ZXIgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gYF8uZGVib3VuY2VgIGFuZCBgXy50aHJvdHRsZWAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBkZWJvdW5jZS5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbd2FpdD0wXSBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byBkZWxheS5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9ucz17fV0gVGhlIG9wdGlvbnMgb2JqZWN0LlxuICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWFkaW5nPWZhbHNlXVxuICogIFNwZWNpZnkgaW52b2tpbmcgb24gdGhlIGxlYWRpbmcgZWRnZSBvZiB0aGUgdGltZW91dC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5tYXhXYWl0XVxuICogIFRoZSBtYXhpbXVtIHRpbWUgYGZ1bmNgIGlzIGFsbG93ZWQgdG8gYmUgZGVsYXllZCBiZWZvcmUgaXQncyBpbnZva2VkLlxuICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy50cmFpbGluZz10cnVlXVxuICogIFNwZWNpZnkgaW52b2tpbmcgb24gdGhlIHRyYWlsaW5nIGVkZ2Ugb2YgdGhlIHRpbWVvdXQuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBkZWJvdW5jZWQgZnVuY3Rpb24uXG4gKiBAZXhhbXBsZVxuICpcbiAqIC8vIEF2b2lkIGNvc3RseSBjYWxjdWxhdGlvbnMgd2hpbGUgdGhlIHdpbmRvdyBzaXplIGlzIGluIGZsdXguXG4gKiBqUXVlcnkod2luZG93KS5vbigncmVzaXplJywgXy5kZWJvdW5jZShjYWxjdWxhdGVMYXlvdXQsIDE1MCkpO1xuICpcbiAqIC8vIEludm9rZSBgc2VuZE1haWxgIHdoZW4gY2xpY2tlZCwgZGVib3VuY2luZyBzdWJzZXF1ZW50IGNhbGxzLlxuICogalF1ZXJ5KGVsZW1lbnQpLm9uKCdjbGljaycsIF8uZGVib3VuY2Uoc2VuZE1haWwsIDMwMCwge1xuICogICAnbGVhZGluZyc6IHRydWUsXG4gKiAgICd0cmFpbGluZyc6IGZhbHNlXG4gKiB9KSk7XG4gKlxuICogLy8gRW5zdXJlIGBiYXRjaExvZ2AgaXMgaW52b2tlZCBvbmNlIGFmdGVyIDEgc2Vjb25kIG9mIGRlYm91bmNlZCBjYWxscy5cbiAqIHZhciBkZWJvdW5jZWQgPSBfLmRlYm91bmNlKGJhdGNoTG9nLCAyNTAsIHsgJ21heFdhaXQnOiAxMDAwIH0pO1xuICogdmFyIHNvdXJjZSA9IG5ldyBFdmVudFNvdXJjZSgnL3N0cmVhbScpO1xuICogalF1ZXJ5KHNvdXJjZSkub24oJ21lc3NhZ2UnLCBkZWJvdW5jZWQpO1xuICpcbiAqIC8vIENhbmNlbCB0aGUgdHJhaWxpbmcgZGVib3VuY2VkIGludm9jYXRpb24uXG4gKiBqUXVlcnkod2luZG93KS5vbigncG9wc3RhdGUnLCBkZWJvdW5jZWQuY2FuY2VsKTtcbiAqL1xuZnVuY3Rpb24gZGVib3VuY2UoZnVuYywgd2FpdCwgb3B0aW9ucykge1xuICB2YXIgbGFzdEFyZ3MsXG4gICAgICBsYXN0VGhpcyxcbiAgICAgIG1heFdhaXQsXG4gICAgICByZXN1bHQsXG4gICAgICB0aW1lcklkLFxuICAgICAgbGFzdENhbGxUaW1lLFxuICAgICAgbGFzdEludm9rZVRpbWUgPSAwLFxuICAgICAgbGVhZGluZyA9IGZhbHNlLFxuICAgICAgbWF4aW5nID0gZmFsc2UsXG4gICAgICB0cmFpbGluZyA9IHRydWU7XG5cbiAgaWYgKHR5cGVvZiBmdW5jICE9ICdmdW5jdGlvbicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEZVTkNfRVJST1JfVEVYVCk7XG4gIH1cbiAgd2FpdCA9IHRvTnVtYmVyKHdhaXQpIHx8IDA7XG4gIGlmIChpc09iamVjdChvcHRpb25zKSkge1xuICAgIGxlYWRpbmcgPSAhIW9wdGlvbnMubGVhZGluZztcbiAgICBtYXhpbmcgPSAnbWF4V2FpdCcgaW4gb3B0aW9ucztcbiAgICBtYXhXYWl0ID0gbWF4aW5nID8gbmF0aXZlTWF4KHRvTnVtYmVyKG9wdGlvbnMubWF4V2FpdCkgfHwgMCwgd2FpdCkgOiBtYXhXYWl0O1xuICAgIHRyYWlsaW5nID0gJ3RyYWlsaW5nJyBpbiBvcHRpb25zID8gISFvcHRpb25zLnRyYWlsaW5nIDogdHJhaWxpbmc7XG4gIH1cblxuICBmdW5jdGlvbiBpbnZva2VGdW5jKHRpbWUpIHtcbiAgICB2YXIgYXJncyA9IGxhc3RBcmdzLFxuICAgICAgICB0aGlzQXJnID0gbGFzdFRoaXM7XG5cbiAgICBsYXN0QXJncyA9IGxhc3RUaGlzID0gdW5kZWZpbmVkO1xuICAgIGxhc3RJbnZva2VUaW1lID0gdGltZTtcbiAgICByZXN1bHQgPSBmdW5jLmFwcGx5KHRoaXNBcmcsIGFyZ3MpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBmdW5jdGlvbiBsZWFkaW5nRWRnZSh0aW1lKSB7XG4gICAgLy8gUmVzZXQgYW55IGBtYXhXYWl0YCB0aW1lci5cbiAgICBsYXN0SW52b2tlVGltZSA9IHRpbWU7XG4gICAgLy8gU3RhcnQgdGhlIHRpbWVyIGZvciB0aGUgdHJhaWxpbmcgZWRnZS5cbiAgICB0aW1lcklkID0gc2V0VGltZW91dCh0aW1lckV4cGlyZWQsIHdhaXQpO1xuICAgIC8vIEludm9rZSB0aGUgbGVhZGluZyBlZGdlLlxuICAgIHJldHVybiBsZWFkaW5nID8gaW52b2tlRnVuYyh0aW1lKSA6IHJlc3VsdDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlbWFpbmluZ1dhaXQodGltZSkge1xuICAgIHZhciB0aW1lU2luY2VMYXN0Q2FsbCA9IHRpbWUgLSBsYXN0Q2FsbFRpbWUsXG4gICAgICAgIHRpbWVTaW5jZUxhc3RJbnZva2UgPSB0aW1lIC0gbGFzdEludm9rZVRpbWUsXG4gICAgICAgIHJlc3VsdCA9IHdhaXQgLSB0aW1lU2luY2VMYXN0Q2FsbDtcblxuICAgIHJldHVybiBtYXhpbmcgPyBuYXRpdmVNaW4ocmVzdWx0LCBtYXhXYWl0IC0gdGltZVNpbmNlTGFzdEludm9rZSkgOiByZXN1bHQ7XG4gIH1cblxuICBmdW5jdGlvbiBzaG91bGRJbnZva2UodGltZSkge1xuICAgIHZhciB0aW1lU2luY2VMYXN0Q2FsbCA9IHRpbWUgLSBsYXN0Q2FsbFRpbWUsXG4gICAgICAgIHRpbWVTaW5jZUxhc3RJbnZva2UgPSB0aW1lIC0gbGFzdEludm9rZVRpbWU7XG5cbiAgICAvLyBFaXRoZXIgdGhpcyBpcyB0aGUgZmlyc3QgY2FsbCwgYWN0aXZpdHkgaGFzIHN0b3BwZWQgYW5kIHdlJ3JlIGF0IHRoZVxuICAgIC8vIHRyYWlsaW5nIGVkZ2UsIHRoZSBzeXN0ZW0gdGltZSBoYXMgZ29uZSBiYWNrd2FyZHMgYW5kIHdlJ3JlIHRyZWF0aW5nXG4gICAgLy8gaXQgYXMgdGhlIHRyYWlsaW5nIGVkZ2UsIG9yIHdlJ3ZlIGhpdCB0aGUgYG1heFdhaXRgIGxpbWl0LlxuICAgIHJldHVybiAobGFzdENhbGxUaW1lID09PSB1bmRlZmluZWQgfHwgKHRpbWVTaW5jZUxhc3RDYWxsID49IHdhaXQpIHx8XG4gICAgICAodGltZVNpbmNlTGFzdENhbGwgPCAwKSB8fCAobWF4aW5nICYmIHRpbWVTaW5jZUxhc3RJbnZva2UgPj0gbWF4V2FpdCkpO1xuICB9XG5cbiAgZnVuY3Rpb24gdGltZXJFeHBpcmVkKCkge1xuICAgIHZhciB0aW1lID0gbm93KCk7XG4gICAgaWYgKHNob3VsZEludm9rZSh0aW1lKSkge1xuICAgICAgcmV0dXJuIHRyYWlsaW5nRWRnZSh0aW1lKTtcbiAgICB9XG4gICAgLy8gUmVzdGFydCB0aGUgdGltZXIuXG4gICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCByZW1haW5pbmdXYWl0KHRpbWUpKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHRyYWlsaW5nRWRnZSh0aW1lKSB7XG4gICAgdGltZXJJZCA9IHVuZGVmaW5lZDtcblxuICAgIC8vIE9ubHkgaW52b2tlIGlmIHdlIGhhdmUgYGxhc3RBcmdzYCB3aGljaCBtZWFucyBgZnVuY2AgaGFzIGJlZW5cbiAgICAvLyBkZWJvdW5jZWQgYXQgbGVhc3Qgb25jZS5cbiAgICBpZiAodHJhaWxpbmcgJiYgbGFzdEFyZ3MpIHtcbiAgICAgIHJldHVybiBpbnZva2VGdW5jKHRpbWUpO1xuICAgIH1cbiAgICBsYXN0QXJncyA9IGxhc3RUaGlzID0gdW5kZWZpbmVkO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBmdW5jdGlvbiBjYW5jZWwoKSB7XG4gICAgaWYgKHRpbWVySWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRpbWVySWQpO1xuICAgIH1cbiAgICBsYXN0SW52b2tlVGltZSA9IDA7XG4gICAgbGFzdEFyZ3MgPSBsYXN0Q2FsbFRpbWUgPSBsYXN0VGhpcyA9IHRpbWVySWQgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBmdW5jdGlvbiBmbHVzaCgpIHtcbiAgICByZXR1cm4gdGltZXJJZCA9PT0gdW5kZWZpbmVkID8gcmVzdWx0IDogdHJhaWxpbmdFZGdlKG5vdygpKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGRlYm91bmNlZCgpIHtcbiAgICB2YXIgdGltZSA9IG5vdygpLFxuICAgICAgICBpc0ludm9raW5nID0gc2hvdWxkSW52b2tlKHRpbWUpO1xuXG4gICAgbGFzdEFyZ3MgPSBhcmd1bWVudHM7XG4gICAgbGFzdFRoaXMgPSB0aGlzO1xuICAgIGxhc3RDYWxsVGltZSA9IHRpbWU7XG5cbiAgICBpZiAoaXNJbnZva2luZykge1xuICAgICAgaWYgKHRpbWVySWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gbGVhZGluZ0VkZ2UobGFzdENhbGxUaW1lKTtcbiAgICAgIH1cbiAgICAgIGlmIChtYXhpbmcpIHtcbiAgICAgICAgLy8gSGFuZGxlIGludm9jYXRpb25zIGluIGEgdGlnaHQgbG9vcC5cbiAgICAgICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCB3YWl0KTtcbiAgICAgICAgcmV0dXJuIGludm9rZUZ1bmMobGFzdENhbGxUaW1lKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRpbWVySWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCB3YWl0KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICBkZWJvdW5jZWQuY2FuY2VsID0gY2FuY2VsO1xuICBkZWJvdW5jZWQuZmx1c2ggPSBmbHVzaDtcbiAgcmV0dXJuIGRlYm91bmNlZDtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyB0aGVcbiAqIFtsYW5ndWFnZSB0eXBlXShodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtZWNtYXNjcmlwdC1sYW5ndWFnZS10eXBlcylcbiAqIG9mIGBPYmplY3RgLiAoZS5nLiBhcnJheXMsIGZ1bmN0aW9ucywgb2JqZWN0cywgcmVnZXhlcywgYG5ldyBOdW1iZXIoMClgLCBhbmQgYG5ldyBTdHJpbmcoJycpYClcbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc09iamVjdCh7fSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdChbMSwgMiwgM10pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3QoXy5ub29wKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0KG51bGwpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNPYmplY3QodmFsdWUpIHtcbiAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gIHJldHVybiAhIXZhbHVlICYmICh0eXBlID09ICdvYmplY3QnIHx8IHR5cGUgPT0gJ2Z1bmN0aW9uJyk7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgb2JqZWN0LWxpa2UuIEEgdmFsdWUgaXMgb2JqZWN0LWxpa2UgaWYgaXQncyBub3QgYG51bGxgXG4gKiBhbmQgaGFzIGEgYHR5cGVvZmAgcmVzdWx0IG9mIFwib2JqZWN0XCIuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgb2JqZWN0LWxpa2UsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc09iamVjdExpa2Uoe30pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3RMaWtlKFsxLCAyLCAzXSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdExpa2UoXy5ub29wKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc09iamVjdExpa2UobnVsbCk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc09iamVjdExpa2UodmFsdWUpIHtcbiAgcmV0dXJuICEhdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09ICdvYmplY3QnO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgU3ltYm9sYCBwcmltaXRpdmUgb3Igb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgc3ltYm9sLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNTeW1ib2woU3ltYm9sLml0ZXJhdG9yKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzU3ltYm9sKCdhYmMnKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzU3ltYm9sKHZhbHVlKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gJ3N5bWJvbCcgfHxcbiAgICAoaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBvYmplY3RUb1N0cmluZy5jYWxsKHZhbHVlKSA9PSBzeW1ib2xUYWcpO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBudW1iZXIuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHByb2Nlc3MuXG4gKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBudW1iZXIuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8udG9OdW1iZXIoMy4yKTtcbiAqIC8vID0+IDMuMlxuICpcbiAqIF8udG9OdW1iZXIoTnVtYmVyLk1JTl9WQUxVRSk7XG4gKiAvLyA9PiA1ZS0zMjRcbiAqXG4gKiBfLnRvTnVtYmVyKEluZmluaXR5KTtcbiAqIC8vID0+IEluZmluaXR5XG4gKlxuICogXy50b051bWJlcignMy4yJyk7XG4gKiAvLyA9PiAzLjJcbiAqL1xuZnVuY3Rpb24gdG9OdW1iZXIodmFsdWUpIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnbnVtYmVyJykge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICBpZiAoaXNTeW1ib2wodmFsdWUpKSB7XG4gICAgcmV0dXJuIE5BTjtcbiAgfVxuICBpZiAoaXNPYmplY3QodmFsdWUpKSB7XG4gICAgdmFyIG90aGVyID0gdHlwZW9mIHZhbHVlLnZhbHVlT2YgPT0gJ2Z1bmN0aW9uJyA/IHZhbHVlLnZhbHVlT2YoKSA6IHZhbHVlO1xuICAgIHZhbHVlID0gaXNPYmplY3Qob3RoZXIpID8gKG90aGVyICsgJycpIDogb3RoZXI7XG4gIH1cbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPSAnc3RyaW5nJykge1xuICAgIHJldHVybiB2YWx1ZSA9PT0gMCA/IHZhbHVlIDogK3ZhbHVlO1xuICB9XG4gIHZhbHVlID0gdmFsdWUucmVwbGFjZShyZVRyaW0sICcnKTtcbiAgdmFyIGlzQmluYXJ5ID0gcmVJc0JpbmFyeS50ZXN0KHZhbHVlKTtcbiAgcmV0dXJuIChpc0JpbmFyeSB8fCByZUlzT2N0YWwudGVzdCh2YWx1ZSkpXG4gICAgPyBmcmVlUGFyc2VJbnQodmFsdWUuc2xpY2UoMiksIGlzQmluYXJ5ID8gMiA6IDgpXG4gICAgOiAocmVJc0JhZEhleC50ZXN0KHZhbHVlKSA/IE5BTiA6ICt2YWx1ZSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZGVib3VuY2U7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash.debounce/index.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/react-modal-video/css/modal-video.css": +/*!****************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/react-modal-video/css/modal-video.css ***! + \****************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../next/dist/build/webpack/loaders/css-loader/src/runtime/api.js */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js\");\n/* harmony import */ var _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);\n// Imports\n\nvar ___CSS_LOADER_EXPORT___ = _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"@keyframes modal-video {\\n from {\\n opacity: 0;\\n }\\n to {\\n opacity: 1;\\n }\\n}\\n\\n@keyframes modal-video-inner {\\n from {\\n transform: translate(0, 100px);\\n }\\n to {\\n transform: translate(0, 0);\\n }\\n}\\n\\n.modal-video {\\n position: fixed;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n background-color: rgba(0, 0, 0, 0.5);\\n z-index: 1000000;\\n cursor: pointer;\\n opacity: 1;\\n animation-timing-function: ease-out;\\n animation-duration: 0.3s;\\n animation-name: modal-video;\\n transition: opacity 0.3s ease-out;\\n}\\n\\n.modal-video-effect-exit {\\n opacity: 0;\\n}\\n\\n.modal-video-effect-exit .modal-video-movie-wrap {\\n transform: translate(0, 100px);\\n}\\n\\n.modal-video-body {\\n max-width: 960px;\\n width: 100%;\\n height: 100%;\\n margin: 0 auto;\\n padding: 0 10px;\\n display: flex;\\n justify-content: center;\\n box-sizing: border-box;\\n}\\n\\n.modal-video-inner {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n width: 100%;\\n height: 100%;\\n}\\n\\n@media (orientation: landscape) {\\n .modal-video-inner {\\n padding: 10px 60px;\\n box-sizing: border-box;\\n }\\n}\\n\\n.modal-video-movie-wrap {\\n width: 100%;\\n height: 0;\\n position: relative;\\n padding-bottom: 56.25%;\\n background-color: #333;\\n animation-timing-function: ease-out;\\n animation-duration: 0.3s;\\n animation-name: modal-video-inner;\\n transform: translate(0, 0);\\n transition: transform 0.3s ease-out;\\n}\\n\\n.modal-video-movie-wrap iframe {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n}\\n\\n.modal-video-close-btn {\\n position: absolute;\\n z-index: 2;\\n top: -45px;\\n right: 0px;\\n display: inline-block;\\n width: 35px;\\n height: 35px;\\n overflow: hidden;\\n border: none;\\n background: transparent;\\n}\\n\\n@media (orientation: landscape) {\\n .modal-video-close-btn {\\n top: 0;\\n right: -45px;\\n }\\n}\\n\\n.modal-video-close-btn:before {\\n transform: rotate(45deg);\\n}\\n\\n.modal-video-close-btn:after {\\n transform: rotate(-45deg);\\n}\\n\\n.modal-video-close-btn:before, .modal-video-close-btn:after {\\n content: '';\\n position: absolute;\\n height: 2px;\\n width: 100%;\\n top: 50%;\\n left: 0;\\n margin-top: -1px;\\n background: #fff;\\n border-radius: 5px;\\n margin-top: -6px;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://node_modules/react-modal-video/css/modal-video.css\"],\"names\":[],\"mappings\":\"AAAA;EACE;IACE,UAAU;EACZ;EACA;IACE,UAAU;EACZ;AACF;;AAEA;EACE;IACE,8BAA8B;EAChC;EACA;IACE,0BAA0B;EAC5B;AACF;;AAEA;EACE,eAAe;EACf,MAAM;EACN,OAAO;EACP,WAAW;EACX,YAAY;EACZ,oCAAoC;EACpC,gBAAgB;EAChB,eAAe;EACf,UAAU;EACV,mCAAmC;EACnC,wBAAwB;EACxB,2BAA2B;EAK3B,iCAAiC;AACnC;;AAEA;EACE,UAAU;AACZ;;AAEA;EAKE,8BAA8B;AAChC;;AAEA;EACE,gBAAgB;EAChB,WAAW;EACX,YAAY;EACZ,cAAc;EACd,eAAe;EACf,aAAa;EACb,uBAAuB;EACvB,sBAAsB;AACxB;;AAEA;EACE,aAAa;EACb,uBAAuB;EACvB,mBAAmB;EACnB,WAAW;EACX,YAAY;AACd;;AAEA;EACE;IACE,kBAAkB;IAClB,sBAAsB;EACxB;AACF;;AAEA;EACE,WAAW;EACX,SAAS;EACT,kBAAkB;EAClB,sBAAsB;EACtB,sBAAsB;EACtB,mCAAmC;EACnC,wBAAwB;EACxB,iCAAiC;EAKjC,0BAA0B;EAK1B,mCAAmC;AACrC;;AAEA;EACE,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,WAAW;EACX,YAAY;AACd;;AAEA;EACE,kBAAkB;EAClB,UAAU;EACV,UAAU;EACV,UAAU;EACV,qBAAqB;EACrB,WAAW;EACX,YAAY;EACZ,gBAAgB;EAChB,YAAY;EACZ,uBAAuB;AACzB;;AAEA;EACE;IACE,MAAM;IACN,YAAY;EACd;AACF;;AAEA;EACE,wBAAwB;AAC1B;;AAEA;EACE,yBAAyB;AAC3B;;AAEA;EACE,WAAW;EACX,kBAAkB;EAClB,WAAW;EACX,WAAW;EACX,QAAQ;EACR,OAAO;EACP,gBAAgB;EAChB,gBAAgB;EAChB,kBAAkB;EAClB,gBAAgB;AAClB\",\"sourcesContent\":[\"@keyframes modal-video {\\n from {\\n opacity: 0;\\n }\\n to {\\n opacity: 1;\\n }\\n}\\n\\n@keyframes modal-video-inner {\\n from {\\n transform: translate(0, 100px);\\n }\\n to {\\n transform: translate(0, 0);\\n }\\n}\\n\\n.modal-video {\\n position: fixed;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n background-color: rgba(0, 0, 0, 0.5);\\n z-index: 1000000;\\n cursor: pointer;\\n opacity: 1;\\n animation-timing-function: ease-out;\\n animation-duration: 0.3s;\\n animation-name: modal-video;\\n -webkit-transition: opacity 0.3s ease-out;\\n -moz-transition: opacity 0.3s ease-out;\\n -ms-transition: opacity 0.3s ease-out;\\n -o-transition: opacity 0.3s ease-out;\\n transition: opacity 0.3s ease-out;\\n}\\n\\n.modal-video-effect-exit {\\n opacity: 0;\\n}\\n\\n.modal-video-effect-exit .modal-video-movie-wrap {\\n -webkit-transform: translate(0, 100px);\\n -moz-transform: translate(0, 100px);\\n -ms-transform: translate(0, 100px);\\n -o-transform: translate(0, 100px);\\n transform: translate(0, 100px);\\n}\\n\\n.modal-video-body {\\n max-width: 960px;\\n width: 100%;\\n height: 100%;\\n margin: 0 auto;\\n padding: 0 10px;\\n display: flex;\\n justify-content: center;\\n box-sizing: border-box;\\n}\\n\\n.modal-video-inner {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n width: 100%;\\n height: 100%;\\n}\\n\\n@media (orientation: landscape) {\\n .modal-video-inner {\\n padding: 10px 60px;\\n box-sizing: border-box;\\n }\\n}\\n\\n.modal-video-movie-wrap {\\n width: 100%;\\n height: 0;\\n position: relative;\\n padding-bottom: 56.25%;\\n background-color: #333;\\n animation-timing-function: ease-out;\\n animation-duration: 0.3s;\\n animation-name: modal-video-inner;\\n -webkit-transform: translate(0, 0);\\n -moz-transform: translate(0, 0);\\n -ms-transform: translate(0, 0);\\n -o-transform: translate(0, 0);\\n transform: translate(0, 0);\\n -webkit-transition: -webkit-transform 0.3s ease-out;\\n -moz-transition: -moz-transform 0.3s ease-out;\\n -ms-transition: -ms-transform 0.3s ease-out;\\n -o-transition: -o-transform 0.3s ease-out;\\n transition: transform 0.3s ease-out;\\n}\\n\\n.modal-video-movie-wrap iframe {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n}\\n\\n.modal-video-close-btn {\\n position: absolute;\\n z-index: 2;\\n top: -45px;\\n right: 0px;\\n display: inline-block;\\n width: 35px;\\n height: 35px;\\n overflow: hidden;\\n border: none;\\n background: transparent;\\n}\\n\\n@media (orientation: landscape) {\\n .modal-video-close-btn {\\n top: 0;\\n right: -45px;\\n }\\n}\\n\\n.modal-video-close-btn:before {\\n transform: rotate(45deg);\\n}\\n\\n.modal-video-close-btn:after {\\n transform: rotate(-45deg);\\n}\\n\\n.modal-video-close-btn:before, .modal-video-close-btn:after {\\n content: '';\\n position: absolute;\\n height: 2px;\\n width: 100%;\\n top: 50%;\\n left: 0;\\n margin-top: -1px;\\n background: #fff;\\n border-radius: 5px;\\n margin-top: -6px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMV0hLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3JlYWN0LW1vZGFsLXZpZGVvL2Nzcy9tb2RhbC12aWRlby5jc3MuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQUE7QUFDOEc7QUFDOUcsOEJBQThCLHFHQUEyQjtBQUN6RDtBQUNBLGtFQUFrRSxVQUFVLGlCQUFpQixLQUFLLFFBQVEsaUJBQWlCLEtBQUssR0FBRyxrQ0FBa0MsVUFBVSxxQ0FBcUMsS0FBSyxRQUFRLGlDQUFpQyxLQUFLLEdBQUcsa0JBQWtCLG9CQUFvQixXQUFXLFlBQVksZ0JBQWdCLGlCQUFpQix5Q0FBeUMscUJBQXFCLG9CQUFvQixlQUFlLHdDQUF3Qyw2QkFBNkIsZ0NBQWdDLHNDQUFzQyxHQUFHLDhCQUE4QixlQUFlLEdBQUcsc0RBQXNELG1DQUFtQyxHQUFHLHVCQUF1QixxQkFBcUIsZ0JBQWdCLGlCQUFpQixtQkFBbUIsb0JBQW9CLGtCQUFrQiw0QkFBNEIsMkJBQTJCLEdBQUcsd0JBQXdCLGtCQUFrQiw0QkFBNEIsd0JBQXdCLGdCQUFnQixpQkFBaUIsR0FBRyxxQ0FBcUMsd0JBQXdCLHlCQUF5Qiw2QkFBNkIsS0FBSyxHQUFHLDZCQUE2QixnQkFBZ0IsY0FBYyx1QkFBdUIsMkJBQTJCLDJCQUEyQix3Q0FBd0MsNkJBQTZCLHNDQUFzQywrQkFBK0Isd0NBQXdDLEdBQUcsb0NBQW9DLHVCQUF1QixXQUFXLFlBQVksZ0JBQWdCLGlCQUFpQixHQUFHLDRCQUE0Qix1QkFBdUIsZUFBZSxlQUFlLGVBQWUsMEJBQTBCLGdCQUFnQixpQkFBaUIscUJBQXFCLGlCQUFpQiw0QkFBNEIsR0FBRyxxQ0FBcUMsNEJBQTRCLGFBQWEsbUJBQW1CLEtBQUssR0FBRyxtQ0FBbUMsNkJBQTZCLEdBQUcsa0NBQWtDLDhCQUE4QixHQUFHLGlFQUFpRSxnQkFBZ0IsdUJBQXVCLGdCQUFnQixnQkFBZ0IsYUFBYSxZQUFZLHFCQUFxQixxQkFBcUIsdUJBQXVCLHFCQUFxQixHQUFHLFNBQVMsbUhBQW1ILEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLE1BQU0sS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLEtBQUssVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxXQUFXLFVBQVUsWUFBWSxhQUFhLGFBQWEsYUFBYSxPQUFPLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxPQUFPLEtBQUssWUFBWSxXQUFXLFVBQVUsVUFBVSxVQUFVLFVBQVUsWUFBWSxhQUFhLE9BQU8sS0FBSyxVQUFVLFlBQVksYUFBYSxXQUFXLFVBQVUsTUFBTSxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sTUFBTSxLQUFLLFVBQVUsVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsT0FBTyxLQUFLLFlBQVksV0FBVyxVQUFVLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxXQUFXLFVBQVUsVUFBVSxZQUFZLFdBQVcsVUFBVSxZQUFZLFdBQVcsWUFBWSxPQUFPLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxNQUFNLEtBQUssWUFBWSxPQUFPLEtBQUssWUFBWSxPQUFPLEtBQUssVUFBVSxZQUFZLFdBQVcsVUFBVSxVQUFVLFVBQVUsWUFBWSxhQUFhLGFBQWEsYUFBYSxrREFBa0QsVUFBVSxpQkFBaUIsS0FBSyxRQUFRLGlCQUFpQixLQUFLLEdBQUcsa0NBQWtDLFVBQVUscUNBQXFDLEtBQUssUUFBUSxpQ0FBaUMsS0FBSyxHQUFHLGtCQUFrQixvQkFBb0IsV0FBVyxZQUFZLGdCQUFnQixpQkFBaUIseUNBQXlDLHFCQUFxQixvQkFBb0IsZUFBZSx3Q0FBd0MsNkJBQTZCLGdDQUFnQyw4Q0FBOEMsMkNBQTJDLDBDQUEwQyx5Q0FBeUMsc0NBQXNDLEdBQUcsOEJBQThCLGVBQWUsR0FBRyxzREFBc0QsMkNBQTJDLHdDQUF3Qyx1Q0FBdUMsc0NBQXNDLG1DQUFtQyxHQUFHLHVCQUF1QixxQkFBcUIsZ0JBQWdCLGlCQUFpQixtQkFBbUIsb0JBQW9CLGtCQUFrQiw0QkFBNEIsMkJBQTJCLEdBQUcsd0JBQXdCLGtCQUFrQiw0QkFBNEIsd0JBQXdCLGdCQUFnQixpQkFBaUIsR0FBRyxxQ0FBcUMsd0JBQXdCLHlCQUF5Qiw2QkFBNkIsS0FBSyxHQUFHLDZCQUE2QixnQkFBZ0IsY0FBYyx1QkFBdUIsMkJBQTJCLDJCQUEyQix3Q0FBd0MsNkJBQTZCLHNDQUFzQyx1Q0FBdUMsb0NBQW9DLG1DQUFtQyxrQ0FBa0MsK0JBQStCLHdEQUF3RCxrREFBa0QsZ0RBQWdELDhDQUE4Qyx3Q0FBd0MsR0FBRyxvQ0FBb0MsdUJBQXVCLFdBQVcsWUFBWSxnQkFBZ0IsaUJBQWlCLEdBQUcsNEJBQTRCLHVCQUF1QixlQUFlLGVBQWUsZUFBZSwwQkFBMEIsZ0JBQWdCLGlCQUFpQixxQkFBcUIsaUJBQWlCLDRCQUE0QixHQUFHLHFDQUFxQyw0QkFBNEIsYUFBYSxtQkFBbUIsS0FBSyxHQUFHLG1DQUFtQyw2QkFBNkIsR0FBRyxrQ0FBa0MsOEJBQThCLEdBQUcsaUVBQWlFLGdCQUFnQix1QkFBdUIsZ0JBQWdCLGdCQUFnQixhQUFhLFlBQVkscUJBQXFCLHFCQUFxQix1QkFBdUIscUJBQXFCLEdBQUcscUJBQXFCO0FBQ3gzTTtBQUNBLCtEQUFlLHVCQUF1QixFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9yZWFjdC1tb2RhbC12aWRlby9jc3MvbW9kYWwtdmlkZW8uY3NzPzc3MDYiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKHRydWUpO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiQGtleWZyYW1lcyBtb2RhbC12aWRlbyB7XFxuICBmcm9tIHtcXG4gICAgb3BhY2l0eTogMDtcXG4gIH1cXG4gIHRvIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gIH1cXG59XFxuXFxuQGtleWZyYW1lcyBtb2RhbC12aWRlby1pbm5lciB7XFxuICBmcm9tIHtcXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTAwcHgpO1xcbiAgfVxcbiAgdG8ge1xcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcXG4gIH1cXG59XFxuXFxuLm1vZGFsLXZpZGVvIHtcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMTAwJTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcXG4gIHotaW5kZXg6IDEwMDAwMDA7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxuICBvcGFjaXR5OiAxO1xcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XFxuICBhbmltYXRpb24tZHVyYXRpb246IDAuM3M7XFxuICBhbmltYXRpb24tbmFtZTogbW9kYWwtdmlkZW87XFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZS1vdXQ7XFxufVxcblxcbi5tb2RhbC12aWRlby1lZmZlY3QtZXhpdCB7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG5cXG4ubW9kYWwtdmlkZW8tZWZmZWN0LWV4aXQgLm1vZGFsLXZpZGVvLW1vdmllLXdyYXAge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTAwcHgpO1xcbn1cXG5cXG4ubW9kYWwtdmlkZW8tYm9keSB7XFxuICBtYXgtd2lkdGg6IDk2MHB4O1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICBtYXJnaW46IDAgYXV0bztcXG4gIHBhZGRpbmc6IDAgMTBweDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxufVxcblxcbi5tb2RhbC12aWRlby1pbm5lciB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEwMCU7XFxufVxcblxcbkBtZWRpYSAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xcbiAgLm1vZGFsLXZpZGVvLWlubmVyIHtcXG4gICAgcGFkZGluZzogMTBweCA2MHB4O1xcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgfVxcbn1cXG5cXG4ubW9kYWwtdmlkZW8tbW92aWUtd3JhcCB7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMDtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XFxuICBhbmltYXRpb24tZHVyYXRpb246IDAuM3M7XFxuICBhbmltYXRpb24tbmFtZTogbW9kYWwtdmlkZW8taW5uZXI7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2Utb3V0O1xcbn1cXG5cXG4ubW9kYWwtdmlkZW8tbW92aWUtd3JhcCBpZnJhbWUge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbn1cXG5cXG4ubW9kYWwtdmlkZW8tY2xvc2UtYnRuIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHotaW5kZXg6IDI7XFxuICB0b3A6IC00NXB4O1xcbiAgcmlnaHQ6IDBweDtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIHdpZHRoOiAzNXB4O1xcbiAgaGVpZ2h0OiAzNXB4O1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIGJvcmRlcjogbm9uZTtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbn1cXG5cXG5AbWVkaWEgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHtcXG4gIC5tb2RhbC12aWRlby1jbG9zZS1idG4ge1xcbiAgICB0b3A6IDA7XFxuICAgIHJpZ2h0OiAtNDVweDtcXG4gIH1cXG59XFxuXFxuLm1vZGFsLXZpZGVvLWNsb3NlLWJ0bjpiZWZvcmUge1xcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xcbn1cXG5cXG4ubW9kYWwtdmlkZW8tY2xvc2UtYnRuOmFmdGVyIHtcXG4gIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XFxufVxcblxcbi5tb2RhbC12aWRlby1jbG9zZS1idG46YmVmb3JlLCAubW9kYWwtdmlkZW8tY2xvc2UtYnRuOmFmdGVyIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgaGVpZ2h0OiAycHg7XFxuICB3aWR0aDogMTAwJTtcXG4gIHRvcDogNTAlO1xcbiAgbGVmdDogMDtcXG4gIG1hcmdpbi10b3A6IC0xcHg7XFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xcbiAgbWFyZ2luLXRvcDogLTZweDtcXG59XFxuXCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovL25vZGVfbW9kdWxlcy9yZWFjdC1tb2RhbC12aWRlby9jc3MvbW9kYWwtdmlkZW8uY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBO0VBQ0U7SUFDRSxVQUFVO0VBQ1o7RUFDQTtJQUNFLFVBQVU7RUFDWjtBQUNGOztBQUVBO0VBQ0U7SUFDRSw4QkFBOEI7RUFDaEM7RUFDQTtJQUNFLDBCQUEwQjtFQUM1QjtBQUNGOztBQUVBO0VBQ0UsZUFBZTtFQUNmLE1BQU07RUFDTixPQUFPO0VBQ1AsV0FBVztFQUNYLFlBQVk7RUFDWixvQ0FBb0M7RUFDcEMsZ0JBQWdCO0VBQ2hCLGVBQWU7RUFDZixVQUFVO0VBQ1YsbUNBQW1DO0VBQ25DLHdCQUF3QjtFQUN4QiwyQkFBMkI7RUFLM0IsaUNBQWlDO0FBQ25DOztBQUVBO0VBQ0UsVUFBVTtBQUNaOztBQUVBO0VBS0UsOEJBQThCO0FBQ2hDOztBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLFdBQVc7RUFDWCxZQUFZO0VBQ1osY0FBYztFQUNkLGVBQWU7RUFDZixhQUFhO0VBQ2IsdUJBQXVCO0VBQ3ZCLHNCQUFzQjtBQUN4Qjs7QUFFQTtFQUNFLGFBQWE7RUFDYix1QkFBdUI7RUFDdkIsbUJBQW1CO0VBQ25CLFdBQVc7RUFDWCxZQUFZO0FBQ2Q7O0FBRUE7RUFDRTtJQUNFLGtCQUFrQjtJQUNsQixzQkFBc0I7RUFDeEI7QUFDRjs7QUFFQTtFQUNFLFdBQVc7RUFDWCxTQUFTO0VBQ1Qsa0JBQWtCO0VBQ2xCLHNCQUFzQjtFQUN0QixzQkFBc0I7RUFDdEIsbUNBQW1DO0VBQ25DLHdCQUF3QjtFQUN4QixpQ0FBaUM7RUFLakMsMEJBQTBCO0VBSzFCLG1DQUFtQztBQUNyQzs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixNQUFNO0VBQ04sT0FBTztFQUNQLFdBQVc7RUFDWCxZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsVUFBVTtFQUNWLFVBQVU7RUFDVixVQUFVO0VBQ1YscUJBQXFCO0VBQ3JCLFdBQVc7RUFDWCxZQUFZO0VBQ1osZ0JBQWdCO0VBQ2hCLFlBQVk7RUFDWix1QkFBdUI7QUFDekI7O0FBRUE7RUFDRTtJQUNFLE1BQU07SUFDTixZQUFZO0VBQ2Q7QUFDRjs7QUFFQTtFQUNFLHdCQUF3QjtBQUMxQjs7QUFFQTtFQUNFLHlCQUF5QjtBQUMzQjs7QUFFQTtFQUNFLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsV0FBVztFQUNYLFdBQVc7RUFDWCxRQUFRO0VBQ1IsT0FBTztFQUNQLGdCQUFnQjtFQUNoQixnQkFBZ0I7RUFDaEIsa0JBQWtCO0VBQ2xCLGdCQUFnQjtBQUNsQlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCJAa2V5ZnJhbWVzIG1vZGFsLXZpZGVvIHtcXG4gIGZyb20ge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgfVxcbiAgdG8ge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgfVxcbn1cXG5cXG5Aa2V5ZnJhbWVzIG1vZGFsLXZpZGVvLWlubmVyIHtcXG4gIGZyb20ge1xcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxMDBweCk7XFxuICB9XFxuICB0byB7XFxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xcbiAgfVxcbn1cXG5cXG4ubW9kYWwtdmlkZW8ge1xcbiAgcG9zaXRpb246IGZpeGVkO1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xcbiAgei1pbmRleDogMTAwMDAwMDtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIG9wYWNpdHk6IDE7XFxuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcXG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMC4zcztcXG4gIGFuaW1hdGlvbi1uYW1lOiBtb2RhbC12aWRlbztcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2Utb3V0O1xcbiAgLW1vei10cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZS1vdXQ7XFxuICAtbXMtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2Utb3V0O1xcbiAgLW8tdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2Utb3V0O1xcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2Utb3V0O1xcbn1cXG5cXG4ubW9kYWwtdmlkZW8tZWZmZWN0LWV4aXQge1xcbiAgb3BhY2l0eTogMDtcXG59XFxuXFxuLm1vZGFsLXZpZGVvLWVmZmVjdC1leGl0IC5tb2RhbC12aWRlby1tb3ZpZS13cmFwIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTAwcHgpO1xcbiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxMDBweCk7XFxuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTAwcHgpO1xcbiAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTAwcHgpO1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTAwcHgpO1xcbn1cXG5cXG4ubW9kYWwtdmlkZW8tYm9keSB7XFxuICBtYXgtd2lkdGg6IDk2MHB4O1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICBtYXJnaW46IDAgYXV0bztcXG4gIHBhZGRpbmc6IDAgMTBweDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxufVxcblxcbi5tb2RhbC12aWRlby1pbm5lciB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEwMCU7XFxufVxcblxcbkBtZWRpYSAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xcbiAgLm1vZGFsLXZpZGVvLWlubmVyIHtcXG4gICAgcGFkZGluZzogMTBweCA2MHB4O1xcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgfVxcbn1cXG5cXG4ubW9kYWwtdmlkZW8tbW92aWUtd3JhcCB7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMDtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XFxuICBhbmltYXRpb24tZHVyYXRpb246IDAuM3M7XFxuICBhbmltYXRpb24tbmFtZTogbW9kYWwtdmlkZW8taW5uZXI7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xcbiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcXG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcXG4gIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQ7XFxuICAtbW96LXRyYW5zaXRpb246IC1tb3otdHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQ7XFxuICAtbXMtdHJhbnNpdGlvbjogLW1zLXRyYW5zZm9ybSAwLjNzIGVhc2Utb3V0O1xcbiAgLW8tdHJhbnNpdGlvbjogLW8tdHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQ7XFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlLW91dDtcXG59XFxuXFxuLm1vZGFsLXZpZGVvLW1vdmllLXdyYXAgaWZyYW1lIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMTAwJTtcXG59XFxuXFxuLm1vZGFsLXZpZGVvLWNsb3NlLWJ0biB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB6LWluZGV4OiAyO1xcbiAgdG9wOiAtNDVweDtcXG4gIHJpZ2h0OiAwcHg7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICB3aWR0aDogMzVweDtcXG4gIGhlaWdodDogMzVweDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBib3JkZXI6IG5vbmU7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG59XFxuXFxuQG1lZGlhIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7XFxuICAubW9kYWwtdmlkZW8tY2xvc2UtYnRuIHtcXG4gICAgdG9wOiAwO1xcbiAgICByaWdodDogLTQ1cHg7XFxuICB9XFxufVxcblxcbi5tb2RhbC12aWRlby1jbG9zZS1idG46YmVmb3JlIHtcXG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcXG59XFxuXFxuLm1vZGFsLXZpZGVvLWNsb3NlLWJ0bjphZnRlciB7XFxuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xcbn1cXG5cXG4ubW9kYWwtdmlkZW8tY2xvc2UtYnRuOmJlZm9yZSwgLm1vZGFsLXZpZGVvLWNsb3NlLWJ0bjphZnRlciB7XFxuICBjb250ZW50OiAnJztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGhlaWdodDogMnB4O1xcbiAgd2lkdGg6IDEwMCU7XFxuICB0b3A6IDUwJTtcXG4gIGxlZnQ6IDA7XFxuICBtYXJnaW4tdG9wOiAtMXB4O1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcXG4gIG1hcmdpbi10b3A6IC02cHg7XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/react-modal-video/css/modal-video.css\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick-theme.css": +/*!***************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick-theme.css ***! + \***************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../next/dist/build/webpack/loaders/css-loader/src/runtime/api.js */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js\");\n/* harmony import */ var _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _next_dist_build_webpack_loaders_css_loader_src_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../next/dist/build/webpack/loaders/css-loader/src/runtime/getUrl.js */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/getUrl.js\");\n/* harmony import */ var _next_dist_build_webpack_loaders_css_loader_src_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_next_dist_build_webpack_loaders_css_loader_src_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _ajax_loader_gif__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ajax-loader.gif */ \"./node_modules/slick-carousel/slick/ajax-loader.gif\");\n/* harmony import */ var _fonts_slick_eot__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./fonts/slick.eot */ \"./node_modules/slick-carousel/slick/fonts/slick.eot\");\n/* harmony import */ var _fonts_slick_woff__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./fonts/slick.woff */ \"./node_modules/slick-carousel/slick/fonts/slick.woff\");\n/* harmony import */ var _fonts_slick_ttf__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./fonts/slick.ttf */ \"./node_modules/slick-carousel/slick/fonts/slick.ttf\");\n/* harmony import */ var _fonts_slick_svg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./fonts/slick.svg */ \"./node_modules/slick-carousel/slick/fonts/slick.svg\");\n// Imports\n\n\n\n\n\n\n\nvar ___CSS_LOADER_EXPORT___ = _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(true);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = _next_dist_build_webpack_loaders_css_loader_src_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1___default()(_ajax_loader_gif__WEBPACK_IMPORTED_MODULE_2__);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = _next_dist_build_webpack_loaders_css_loader_src_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1___default()(_fonts_slick_eot__WEBPACK_IMPORTED_MODULE_3__);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = _next_dist_build_webpack_loaders_css_loader_src_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1___default()(_fonts_slick_eot__WEBPACK_IMPORTED_MODULE_3__, { hash: \"?#iefix\" });\nvar ___CSS_LOADER_URL_REPLACEMENT_3___ = _next_dist_build_webpack_loaders_css_loader_src_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1___default()(_fonts_slick_woff__WEBPACK_IMPORTED_MODULE_4__);\nvar ___CSS_LOADER_URL_REPLACEMENT_4___ = _next_dist_build_webpack_loaders_css_loader_src_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1___default()(_fonts_slick_ttf__WEBPACK_IMPORTED_MODULE_5__);\nvar ___CSS_LOADER_URL_REPLACEMENT_5___ = _next_dist_build_webpack_loaders_css_loader_src_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1___default()(_fonts_slick_svg__WEBPACK_IMPORTED_MODULE_6__, { hash: \"#slick\" });\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"@charset 'UTF-8';\\n/* Slider */\\n.slick-loading .slick-list\\n{\\n background: #fff url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \") center center no-repeat;\\n}\\n\\n/* Icons */\\n@font-face\\n{\\n font-family: 'slick';\\n font-weight: normal;\\n font-style: normal;\\n\\n src: url(\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \");\\n src: url(\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \") format('embedded-opentype'), url(\" + ___CSS_LOADER_URL_REPLACEMENT_3___ + \") format('woff'), url(\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \") format('truetype'), url(\" + ___CSS_LOADER_URL_REPLACEMENT_5___ + \") format('svg');\\n}\\n/* Arrows */\\n.slick-prev,\\n.slick-next\\n{\\n font-size: 0;\\n line-height: 0;\\n\\n position: absolute;\\n top: 50%;\\n\\n display: block;\\n\\n width: 20px;\\n height: 20px;\\n padding: 0;\\n transform: translate(0, -50%);\\n\\n cursor: pointer;\\n\\n color: transparent;\\n border: none;\\n outline: none;\\n background: transparent;\\n}\\n.slick-prev:hover,\\n.slick-prev:focus,\\n.slick-next:hover,\\n.slick-next:focus\\n{\\n color: transparent;\\n outline: none;\\n background: transparent;\\n}\\n.slick-prev:hover:before,\\n.slick-prev:focus:before,\\n.slick-next:hover:before,\\n.slick-next:focus:before\\n{\\n opacity: 1;\\n}\\n.slick-prev.slick-disabled:before,\\n.slick-next.slick-disabled:before\\n{\\n opacity: .25;\\n}\\n\\n.slick-prev:before,\\n.slick-next:before\\n{\\n font-family: 'slick';\\n font-size: 20px;\\n line-height: 1;\\n\\n opacity: .75;\\n color: white;\\n\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.slick-prev\\n{\\n left: -25px;\\n}\\n[dir='rtl'] .slick-prev\\n{\\n right: -25px;\\n left: auto;\\n}\\n.slick-prev:before\\n{\\n content: '←';\\n}\\n[dir='rtl'] .slick-prev:before\\n{\\n content: '→';\\n}\\n\\n.slick-next\\n{\\n right: -25px;\\n}\\n[dir='rtl'] .slick-next\\n{\\n right: auto;\\n left: -25px;\\n}\\n.slick-next:before\\n{\\n content: '→';\\n}\\n[dir='rtl'] .slick-next:before\\n{\\n content: '←';\\n}\\n\\n/* Dots */\\n.slick-dotted.slick-slider\\n{\\n margin-bottom: 30px;\\n}\\n\\n.slick-dots\\n{\\n position: absolute;\\n bottom: -25px;\\n\\n display: block;\\n\\n width: 100%;\\n padding: 0;\\n margin: 0;\\n\\n list-style: none;\\n\\n text-align: center;\\n}\\n.slick-dots li\\n{\\n position: relative;\\n\\n display: inline-block;\\n\\n width: 20px;\\n height: 20px;\\n margin: 0 5px;\\n padding: 0;\\n\\n cursor: pointer;\\n}\\n.slick-dots li button\\n{\\n font-size: 0;\\n line-height: 0;\\n\\n display: block;\\n\\n width: 20px;\\n height: 20px;\\n padding: 5px;\\n\\n cursor: pointer;\\n\\n color: transparent;\\n border: 0;\\n outline: none;\\n background: transparent;\\n}\\n.slick-dots li button:hover,\\n.slick-dots li button:focus\\n{\\n outline: none;\\n}\\n.slick-dots li button:hover:before,\\n.slick-dots li button:focus:before\\n{\\n opacity: 1;\\n}\\n.slick-dots li button:before\\n{\\n font-family: 'slick';\\n font-size: 6px;\\n line-height: 20px;\\n\\n position: absolute;\\n top: 0;\\n left: 0;\\n\\n width: 20px;\\n height: 20px;\\n\\n content: '•';\\n text-align: center;\\n\\n opacity: .25;\\n color: black;\\n\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n.slick-dots li.slick-active button:before\\n{\\n opacity: .75;\\n color: black;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://node_modules/slick-carousel/slick/slick-theme.css\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;AAChB,WAAW;AACX;;IAEI,gFAAiE;AACrE;;AAEA,UAAU;AACV;;IAEI,oBAAoB;IACpB,mBAAmB;IACnB,kBAAkB;;IAElB,4CAA6B;IAC7B,mPAAqM;AACzM;AACA,WAAW;AACX;;;IAGI,YAAY;IACZ,cAAc;;IAEd,kBAAkB;IAClB,QAAQ;;IAER,cAAc;;IAEd,WAAW;IACX,YAAY;IACZ,UAAU;IAGV,6BAA6B;;IAE7B,eAAe;;IAEf,kBAAkB;IAClB,YAAY;IACZ,aAAa;IACb,uBAAuB;AAC3B;AACA;;;;;IAKI,kBAAkB;IAClB,aAAa;IACb,uBAAuB;AAC3B;AACA;;;;;IAKI,UAAU;AACd;AACA;;;IAGI,YAAY;AAChB;;AAEA;;;IAGI,oBAAoB;IACpB,eAAe;IACf,cAAc;;IAEd,YAAY;IACZ,YAAY;;IAEZ,mCAAmC;IACnC,kCAAkC;AACtC;;AAEA;;IAEI,WAAW;AACf;AACA;;IAEI,YAAY;IACZ,UAAU;AACd;AACA;;IAEI,YAAY;AAChB;AACA;;IAEI,YAAY;AAChB;;AAEA;;IAEI,YAAY;AAChB;AACA;;IAEI,WAAW;IACX,WAAW;AACf;AACA;;IAEI,YAAY;AAChB;AACA;;IAEI,YAAY;AAChB;;AAEA,SAAS;AACT;;IAEI,mBAAmB;AACvB;;AAEA;;IAEI,kBAAkB;IAClB,aAAa;;IAEb,cAAc;;IAEd,WAAW;IACX,UAAU;IACV,SAAS;;IAET,gBAAgB;;IAEhB,kBAAkB;AACtB;AACA;;IAEI,kBAAkB;;IAElB,qBAAqB;;IAErB,WAAW;IACX,YAAY;IACZ,aAAa;IACb,UAAU;;IAEV,eAAe;AACnB;AACA;;IAEI,YAAY;IACZ,cAAc;;IAEd,cAAc;;IAEd,WAAW;IACX,YAAY;IACZ,YAAY;;IAEZ,eAAe;;IAEf,kBAAkB;IAClB,SAAS;IACT,aAAa;IACb,uBAAuB;AAC3B;AACA;;;IAGI,aAAa;AACjB;AACA;;;IAGI,UAAU;AACd;AACA;;IAEI,oBAAoB;IACpB,cAAc;IACd,iBAAiB;;IAEjB,kBAAkB;IAClB,MAAM;IACN,OAAO;;IAEP,WAAW;IACX,YAAY;;IAEZ,YAAY;IACZ,kBAAkB;;IAElB,YAAY;IACZ,YAAY;;IAEZ,mCAAmC;IACnC,kCAAkC;AACtC;AACA;;IAEI,YAAY;IACZ,YAAY;AAChB\",\"sourcesContent\":[\"@charset 'UTF-8';\\n/* Slider */\\n.slick-loading .slick-list\\n{\\n background: #fff url('./ajax-loader.gif') center center no-repeat;\\n}\\n\\n/* Icons */\\n@font-face\\n{\\n font-family: 'slick';\\n font-weight: normal;\\n font-style: normal;\\n\\n src: url('./fonts/slick.eot');\\n src: url('./fonts/slick.eot?#iefix') format('embedded-opentype'), url('./fonts/slick.woff') format('woff'), url('./fonts/slick.ttf') format('truetype'), url('./fonts/slick.svg#slick') format('svg');\\n}\\n/* Arrows */\\n.slick-prev,\\n.slick-next\\n{\\n font-size: 0;\\n line-height: 0;\\n\\n position: absolute;\\n top: 50%;\\n\\n display: block;\\n\\n width: 20px;\\n height: 20px;\\n padding: 0;\\n -webkit-transform: translate(0, -50%);\\n -ms-transform: translate(0, -50%);\\n transform: translate(0, -50%);\\n\\n cursor: pointer;\\n\\n color: transparent;\\n border: none;\\n outline: none;\\n background: transparent;\\n}\\n.slick-prev:hover,\\n.slick-prev:focus,\\n.slick-next:hover,\\n.slick-next:focus\\n{\\n color: transparent;\\n outline: none;\\n background: transparent;\\n}\\n.slick-prev:hover:before,\\n.slick-prev:focus:before,\\n.slick-next:hover:before,\\n.slick-next:focus:before\\n{\\n opacity: 1;\\n}\\n.slick-prev.slick-disabled:before,\\n.slick-next.slick-disabled:before\\n{\\n opacity: .25;\\n}\\n\\n.slick-prev:before,\\n.slick-next:before\\n{\\n font-family: 'slick';\\n font-size: 20px;\\n line-height: 1;\\n\\n opacity: .75;\\n color: white;\\n\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.slick-prev\\n{\\n left: -25px;\\n}\\n[dir='rtl'] .slick-prev\\n{\\n right: -25px;\\n left: auto;\\n}\\n.slick-prev:before\\n{\\n content: '←';\\n}\\n[dir='rtl'] .slick-prev:before\\n{\\n content: '→';\\n}\\n\\n.slick-next\\n{\\n right: -25px;\\n}\\n[dir='rtl'] .slick-next\\n{\\n right: auto;\\n left: -25px;\\n}\\n.slick-next:before\\n{\\n content: '→';\\n}\\n[dir='rtl'] .slick-next:before\\n{\\n content: '←';\\n}\\n\\n/* Dots */\\n.slick-dotted.slick-slider\\n{\\n margin-bottom: 30px;\\n}\\n\\n.slick-dots\\n{\\n position: absolute;\\n bottom: -25px;\\n\\n display: block;\\n\\n width: 100%;\\n padding: 0;\\n margin: 0;\\n\\n list-style: none;\\n\\n text-align: center;\\n}\\n.slick-dots li\\n{\\n position: relative;\\n\\n display: inline-block;\\n\\n width: 20px;\\n height: 20px;\\n margin: 0 5px;\\n padding: 0;\\n\\n cursor: pointer;\\n}\\n.slick-dots li button\\n{\\n font-size: 0;\\n line-height: 0;\\n\\n display: block;\\n\\n width: 20px;\\n height: 20px;\\n padding: 5px;\\n\\n cursor: pointer;\\n\\n color: transparent;\\n border: 0;\\n outline: none;\\n background: transparent;\\n}\\n.slick-dots li button:hover,\\n.slick-dots li button:focus\\n{\\n outline: none;\\n}\\n.slick-dots li button:hover:before,\\n.slick-dots li button:focus:before\\n{\\n opacity: 1;\\n}\\n.slick-dots li button:before\\n{\\n font-family: 'slick';\\n font-size: 6px;\\n line-height: 20px;\\n\\n position: absolute;\\n top: 0;\\n left: 0;\\n\\n width: 20px;\\n height: 20px;\\n\\n content: '•';\\n text-align: center;\\n\\n opacity: .25;\\n color: black;\\n\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n.slick-dots li.slick-active button:before\\n{\\n opacity: .75;\\n color: black;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMV0hLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3NsaWNrLWNhcm91c2VsL3NsaWNrL3NsaWNrLXRoZW1lLmNzcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7QUFDOEc7QUFDTztBQUN2RDtBQUNBO0FBQ0M7QUFDRDtBQUNBO0FBQzlELDhCQUE4QixxR0FBMkI7QUFDekQseUNBQXlDLHdHQUErQixDQUFDLDZDQUE2QjtBQUN0Ryx5Q0FBeUMsd0dBQStCLENBQUMsNkNBQTZCO0FBQ3RHLHlDQUF5Qyx3R0FBK0IsQ0FBQyw2Q0FBNkIsSUFBSSxpQkFBaUI7QUFDM0gseUNBQXlDLHdHQUErQixDQUFDLDhDQUE2QjtBQUN0Ryx5Q0FBeUMsd0dBQStCLENBQUMsNkNBQTZCO0FBQ3RHLHlDQUF5Qyx3R0FBK0IsQ0FBQyw2Q0FBNkIsSUFBSSxnQkFBZ0I7QUFDMUg7QUFDQSwyREFBMkQsNkNBQTZDLCtGQUErRixHQUFHLDhCQUE4QiwyQkFBMkIsMEJBQTBCLHlCQUF5Qiw2REFBNkQsMFJBQTBSLEdBQUcsNENBQTRDLG1CQUFtQixxQkFBcUIsMkJBQTJCLGVBQWUsdUJBQXVCLG9CQUFvQixtQkFBbUIsaUJBQWlCLG9DQUFvQyx3QkFBd0IsMkJBQTJCLG1CQUFtQixvQkFBb0IsOEJBQThCLEdBQUcsa0ZBQWtGLHlCQUF5QixvQkFBb0IsOEJBQThCLEdBQUcsOEdBQThHLGlCQUFpQixHQUFHLDBFQUEwRSxtQkFBbUIsR0FBRyw4Q0FBOEMsMkJBQTJCLHNCQUFzQixxQkFBcUIscUJBQXFCLG1CQUFt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QUFrQix5QkFBeUIsb0JBQW9CLHVCQUF1QixvQkFBb0IsaUJBQWlCLGdCQUFnQix5QkFBeUIsMkJBQTJCLEdBQUcsbUJBQW1CLHlCQUF5Qiw4QkFBOEIsb0JBQW9CLG1CQUFtQixvQkFBb0IsaUJBQWlCLHdCQUF3QixHQUFHLDBCQUEwQixtQkFBbUIscUJBQXFCLHVCQUF1QixvQkFBb0IsbUJBQW1CLG1CQUFtQix3QkFBd0IsMkJBQTJCLGdCQUFnQixvQkFBb0IsOEJBQThCLEdBQUcsOERBQThELG9CQUFvQixHQUFHLDRFQUE0RSxpQkFBaUIsR0FBRyxpQ0FBaUMsMkJBQTJCLHFCQUFxQix3QkFBd0IsMkJBQTJCLGFBQWEsY0FBYyxvQkFBb0IsbUJBQW1CLHFCQUFxQix5QkFBeUIscUJBQXFCLG1CQUFtQiw0Q0FBNEMseUNBQXlDLEdBQUcsOENBQThDLG1CQUFtQixtQkFBbUIsR0FBRyxxQkFBcUI7QUFDcGlRO0FBQ0EsK0RBQWUsdUJBQXVCLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3NsaWNrLWNhcm91c2VsL3NsaWNrL3NsaWNrLXRoZW1lLmNzcz8xOWQ2Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvY3NzLWxvYWRlci9zcmMvcnVudGltZS9hcGkuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0dFVF9VUkxfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL2Nzcy1sb2FkZXIvc3JjL3J1bnRpbWUvZ2V0VXJsLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9VUkxfSU1QT1JUXzBfX18gZnJvbSBcIi4vYWpheC1sb2FkZXIuZ2lmXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9VUkxfSU1QT1JUXzFfX18gZnJvbSBcIi4vZm9udHMvc2xpY2suZW90XCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9VUkxfSU1QT1JUXzJfX18gZnJvbSBcIi4vZm9udHMvc2xpY2sud29mZlwiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF8zX19fIGZyb20gXCIuL2ZvbnRzL3NsaWNrLnR0ZlwiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF80X19fIGZyb20gXCIuL2ZvbnRzL3NsaWNrLnN2Z1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKHRydWUpO1xudmFyIF9fX0NTU19MT0FERVJfVVJMX1JFUExBQ0VNRU5UXzBfX18gPSBfX19DU1NfTE9BREVSX0dFVF9VUkxfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF8wX19fKTtcbnZhciBfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8xX19fID0gX19fQ1NTX0xPQURFUl9HRVRfVVJMX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX1VSTF9JTVBPUlRfMV9fXyk7XG52YXIgX19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfMl9fXyA9IF9fX0NTU19MT0FERVJfR0VUX1VSTF9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9VUkxfSU1QT1JUXzFfX18sIHsgaGFzaDogXCI/I2llZml4XCIgfSk7XG52YXIgX19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfM19fXyA9IF9fX0NTU19MT0FERVJfR0VUX1VSTF9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9VUkxfSU1QT1JUXzJfX18pO1xudmFyIF9fX0NTU19MT0FERVJfVVJMX1JFUExBQ0VNRU5UXzRfX18gPSBfX19DU1NfTE9BREVSX0dFVF9VUkxfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF8zX19fKTtcbnZhciBfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF81X19fID0gX19fQ1NTX0xPQURFUl9HRVRfVVJMX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX1VSTF9JTVBPUlRfNF9fXywgeyBoYXNoOiBcIiNzbGlja1wiIH0pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiQGNoYXJzZXQgJ1VURi04JztcXG4vKiBTbGlkZXIgKi9cXG4uc2xpY2stbG9hZGluZyAuc2xpY2stbGlzdFxcbntcXG4gICAgYmFja2dyb3VuZDogI2ZmZiB1cmwoXCIgKyBfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8wX19fICsgXCIpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0O1xcbn1cXG5cXG4vKiBJY29ucyAqL1xcbkBmb250LWZhY2VcXG57XFxuICAgIGZvbnQtZmFtaWx5OiAnc2xpY2snO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XFxuXFxuICAgIHNyYzogdXJsKFwiICsgX19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfMV9fXyArIFwiKTtcXG4gICAgc3JjOiB1cmwoXCIgKyBfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8yX19fICsgXCIpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKFwiICsgX19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfM19fXyArIFwiKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKFwiICsgX19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfNF9fXyArIFwiKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybChcIiArIF9fX0NTU19MT0FERVJfVVJMX1JFUExBQ0VNRU5UXzVfX18gKyBcIikgZm9ybWF0KCdzdmcnKTtcXG59XFxuLyogQXJyb3dzICovXFxuLnNsaWNrLXByZXYsXFxuLnNsaWNrLW5leHRcXG57XFxuICAgIGZvbnQtc2l6ZTogMDtcXG4gICAgbGluZS1oZWlnaHQ6IDA7XFxuXFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdG9wOiA1MCU7XFxuXFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcblxcbiAgICB3aWR0aDogMjBweDtcXG4gICAgaGVpZ2h0OiAyMHB4O1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTtcXG5cXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcblxcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAgIGJvcmRlcjogbm9uZTtcXG4gICAgb3V0bGluZTogbm9uZTtcXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxufVxcbi5zbGljay1wcmV2OmhvdmVyLFxcbi5zbGljay1wcmV2OmZvY3VzLFxcbi5zbGljay1uZXh0OmhvdmVyLFxcbi5zbGljay1uZXh0OmZvY3VzXFxue1xcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAgIG91dGxpbmU6IG5vbmU7XFxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbn1cXG4uc2xpY2stcHJldjpob3ZlcjpiZWZvcmUsXFxuLnNsaWNrLXByZXY6Zm9jdXM6YmVmb3JlLFxcbi5zbGljay1uZXh0OmhvdmVyOmJlZm9yZSxcXG4uc2xpY2stbmV4dDpmb2N1czpiZWZvcmVcXG57XFxuICAgIG9wYWNpdHk6IDE7XFxufVxcbi5zbGljay1wcmV2LnNsaWNrLWRpc2FibGVkOmJlZm9yZSxcXG4uc2xpY2stbmV4dC5zbGljay1kaXNhYmxlZDpiZWZvcmVcXG57XFxuICAgIG9wYWNpdHk6IC4yNTtcXG59XFxuXFxuLnNsaWNrLXByZXY6YmVmb3JlLFxcbi5zbGljay1uZXh0OmJlZm9yZVxcbntcXG4gICAgZm9udC1mYW1pbHk6ICdzbGljayc7XFxuICAgIGZvbnQtc2l6ZTogMjBweDtcXG4gICAgbGluZS1oZWlnaHQ6IDE7XFxuXFxuICAgIG9wYWNpdHk6IC43NTtcXG4gICAgY29sb3I6IHdoaXRlO1xcblxcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG59XFxuXFxuLnNsaWNrLXByZXZcXG57XFxuICAgIGxlZnQ6IC0yNXB4O1xcbn1cXG5bZGlyPSdydGwnXSAuc2xpY2stcHJldlxcbntcXG4gICAgcmlnaHQ6IC0yNXB4O1xcbiAgICBsZWZ0OiBhdXRvO1xcbn1cXG4uc2xpY2stcHJldjpiZWZvcmVcXG57XFxuICAgIGNvbnRlbnQ6ICfihpAnO1xcbn1cXG5bZGlyPSdydGwnXSAuc2xpY2stcHJldjpiZWZvcmVcXG57XFxuICAgIGNvbnRlbnQ6ICfihpInO1xcbn1cXG5cXG4uc2xpY2stbmV4dFxcbntcXG4gICAgcmlnaHQ6IC0yNXB4O1xcbn1cXG5bZGlyPSdydGwnXSAuc2xpY2stbmV4dFxcbntcXG4gICAgcmlnaHQ6IGF1dG87XFxuICAgIGxlZnQ6IC0yNXB4O1xcbn1cXG4uc2xpY2stbmV4dDpiZWZvcmVcXG57XFxuICAgIGNvbnRlbnQ6ICfihpInO1xcbn1cXG5bZGlyPSdydGwnXSAuc2xpY2stbmV4dDpiZWZvcmVcXG57XFxuICAgIGNvbnRlbnQ6ICfihpAnO1xcbn1cXG5cXG4vKiBEb3RzICovXFxuLnNsaWNrLWRvdHRlZC5zbGljay1zbGlkZXJcXG57XFxuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XFxufVxcblxcbi5zbGljay1kb3RzXFxue1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIGJvdHRvbTogLTI1cHg7XFxuXFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcblxcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgbWFyZ2luOiAwO1xcblxcbiAgICBsaXN0LXN0eWxlOiBub25lO1xcblxcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxufVxcbi5zbGljay1kb3RzIGxpXFxue1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuXFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG5cXG4gICAgd2lkdGg6IDIwcHg7XFxuICAgIGhlaWdodDogMjBweDtcXG4gICAgbWFyZ2luOiAwIDVweDtcXG4gICAgcGFkZGluZzogMDtcXG5cXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG4uc2xpY2stZG90cyBsaSBidXR0b25cXG57XFxuICAgIGZvbnQtc2l6ZTogMDtcXG4gICAgbGluZS1oZWlnaHQ6IDA7XFxuXFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcblxcbiAgICB3aWR0aDogMjBweDtcXG4gICAgaGVpZ2h0OiAyMHB4O1xcbiAgICBwYWRkaW5nOiA1cHg7XFxuXFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG5cXG4gICAgY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICBib3JkZXI6IDA7XFxuICAgIG91dGxpbmU6IG5vbmU7XFxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbn1cXG4uc2xpY2stZG90cyBsaSBidXR0b246aG92ZXIsXFxuLnNsaWNrLWRvdHMgbGkgYnV0dG9uOmZvY3VzXFxue1xcbiAgICBvdXRsaW5lOiBub25lO1xcbn1cXG4uc2xpY2stZG90cyBsaSBidXR0b246aG92ZXI6YmVmb3JlLFxcbi5zbGljay1kb3RzIGxpIGJ1dHRvbjpmb2N1czpiZWZvcmVcXG57XFxuICAgIG9wYWNpdHk6IDE7XFxufVxcbi5zbGljay1kb3RzIGxpIGJ1dHRvbjpiZWZvcmVcXG57XFxuICAgIGZvbnQtZmFtaWx5OiAnc2xpY2snO1xcbiAgICBmb250LXNpemU6IDZweDtcXG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XFxuXFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdG9wOiAwO1xcbiAgICBsZWZ0OiAwO1xcblxcbiAgICB3aWR0aDogMjBweDtcXG4gICAgaGVpZ2h0OiAyMHB4O1xcblxcbiAgICBjb250ZW50OiAn4oCiJztcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xcblxcbiAgICBvcGFjaXR5OiAuMjU7XFxuICAgIGNvbG9yOiBibGFjaztcXG5cXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxufVxcbi5zbGljay1kb3RzIGxpLnNsaWNrLWFjdGl2ZSBidXR0b246YmVmb3JlXFxue1xcbiAgICBvcGFjaXR5OiAuNzU7XFxuICAgIGNvbG9yOiBibGFjaztcXG59XFxuXCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovL25vZGVfbW9kdWxlcy9zbGljay1jYXJvdXNlbC9zbGljay9zbGljay10aGVtZS5jc3NcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBQUEsZ0JBQWdCO0FBQ2hCLFdBQVc7QUFDWDs7SUFFSSxnRkFBaUU7QUFDckU7O0FBRUEsVUFBVTtBQUNWOztJQUVJLG9CQUFvQjtJQUNwQixtQkFBbUI7SUFDbkIsa0JBQWtCOztJQUVsQiw0Q0FBNkI7SUFDN0IsbVBBQXFNO0FBQ3pNO0FBQ0EsV0FBVztBQUNYOzs7SUFHSSxZQUFZO0lBQ1osY0FBYzs7SUFFZCxrQkFBa0I7SUFDbEIsUUFBUTs7SUFFUixjQUFjOztJQUVkLFdBQVc7SUFDWCxZQUFZO0lBQ1osVUFBVTtJQUdWLDZCQUE2Qjs7SUFFN0IsZUFBZTs7SUFFZixrQkFBa0I7SUFDbEIsWUFBWTtJQUNaLGFBQWE7SUFDYix1QkFBdUI7QUFDM0I7QUFDQTs7Ozs7SUFLSSxrQkFBa0I7SUFDbEIsYUFBYTtJQUNiLHVCQUF1QjtBQUMzQjtBQUNBOzs7OztJQUtJLFVBQVU7QUFDZDtBQUNBOzs7SUFHSSxZQUFZO0FBQ2hCOztBQUVBOzs7SUFHSSxvQkFBb0I7SUFDcEIsZUFBZTtJQUNmLGNBQWM7O0lBRWQsWUFBWTtJQUNaLFlBQVk7O0lBRVosbUNBQW1DO0lBQ25DLGtDQUFrQztBQUN0Qzs7QUFFQTs7SUFFSSxXQUFXO0FBQ2Y7QUFDQTs7SUFFSSxZQUFZO0lBQ1osVUFBVTtBQUNkO0FBQ0E7O0lBRUksWUFBWTtBQUNoQjtBQUNBOztJQUVJLFlBQVk7QUFDaEI7O0FBRUE7O0lBRUksWUFBWTtBQUNoQjtBQUNBOztJQUVJLFdBQVc7SUFDWCxXQUFXO0FBQ2Y7QUFDQTs7SUFFSSxZQUFZO0FBQ2hCO0FBQ0E7O0lBRUksWUFBWTtBQUNoQjs7QUFFQSxTQUFTO0FBQ1Q7O0lBRUksbUJBQW1CO0FBQ3ZCOztBQUVBOztJQUVJLGtCQUFrQjtJQUNsQixhQUFhOztJQUViLGNBQWM7O0lBRWQsV0FBVztJQUNYLFVBQVU7SUFDVixTQUFTOztJQUVULGdCQUFnQjs7SUFFaEIsa0JBQWtCO0FBQ3RCO0FBQ0E7O0lBRUksa0JBQWtCOztJQUVsQixxQkFBcUI7O0lBRXJCLFdBQVc7SUFDWCxZQUFZO0lBQ1osYUFBYTtJQUNiLFVBQVU7O0lBRVYsZUFBZTtBQUNuQjtBQUNBOztJQUVJLFlBQVk7SUFDWixjQUFjOztJQUVkLGNBQWM7O0lBRWQsV0FBVztJQUNYLFlBQVk7SUFDWixZQUFZOztJQUVaLGVBQWU7O0lBRWYsa0JBQWtCO0lBQ2xCLFNBQVM7SUFDVCxhQUFhO0lBQ2IsdUJBQXVCO0FBQzNCO0FBQ0E7OztJQUdJLGFBQWE7QUFDakI7QUFDQTs7O0lBR0ksVUFBVTtBQUNkO0FBQ0E7O0lBRUksb0JBQW9CO0lBQ3BCLGNBQWM7SUFDZCxpQkFBaUI7O0lBRWpCLGtCQUFrQjtJQUNsQixNQUFNO0lBQ04sT0FBTzs7SUFFUCxXQUFXO0lBQ1gsWUFBWTs7SUFFWixZQUFZO0lBQ1osa0JBQWtCOztJQUVsQixZQUFZO0lBQ1osWUFBWTs7SUFFWixtQ0FBbUM7SUFDbkMsa0NBQWtDO0FBQ3RDO0FBQ0E7O0lBRUksWUFBWTtJQUNaLFlBQVk7QUFDaEJcIixcInNvdXJjZXNDb250ZW50XCI6W1wiQGNoYXJzZXQgJ1VURi04JztcXG4vKiBTbGlkZXIgKi9cXG4uc2xpY2stbG9hZGluZyAuc2xpY2stbGlzdFxcbntcXG4gICAgYmFja2dyb3VuZDogI2ZmZiB1cmwoJy4vYWpheC1sb2FkZXIuZ2lmJykgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7XFxufVxcblxcbi8qIEljb25zICovXFxuQGZvbnQtZmFjZVxcbntcXG4gICAgZm9udC1mYW1pbHk6ICdzbGljayc7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcXG5cXG4gICAgc3JjOiB1cmwoJy4vZm9udHMvc2xpY2suZW90Jyk7XFxuICAgIHNyYzogdXJsKCcuL2ZvbnRzL3NsaWNrLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnLi9mb250cy9zbGljay53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnLi9mb250cy9zbGljay50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnLi9mb250cy9zbGljay5zdmcjc2xpY2snKSBmb3JtYXQoJ3N2ZycpO1xcbn1cXG4vKiBBcnJvd3MgKi9cXG4uc2xpY2stcHJldixcXG4uc2xpY2stbmV4dFxcbntcXG4gICAgZm9udC1zaXplOiAwO1xcbiAgICBsaW5lLWhlaWdodDogMDtcXG5cXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0b3A6IDUwJTtcXG5cXG4gICAgZGlzcGxheTogYmxvY2s7XFxuXFxuICAgIHdpZHRoOiAyMHB4O1xcbiAgICBoZWlnaHQ6IDIwcHg7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XFxuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTtcXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XFxuXFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG5cXG4gICAgY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICBib3JkZXI6IG5vbmU7XFxuICAgIG91dGxpbmU6IG5vbmU7XFxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbn1cXG4uc2xpY2stcHJldjpob3ZlcixcXG4uc2xpY2stcHJldjpmb2N1cyxcXG4uc2xpY2stbmV4dDpob3ZlcixcXG4uc2xpY2stbmV4dDpmb2N1c1xcbntcXG4gICAgY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICBvdXRsaW5lOiBub25lO1xcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG59XFxuLnNsaWNrLXByZXY6aG92ZXI6YmVmb3JlLFxcbi5zbGljay1wcmV2OmZvY3VzOmJlZm9yZSxcXG4uc2xpY2stbmV4dDpob3ZlcjpiZWZvcmUsXFxuLnNsaWNrLW5leHQ6Zm9jdXM6YmVmb3JlXFxue1xcbiAgICBvcGFjaXR5OiAxO1xcbn1cXG4uc2xpY2stcHJldi5zbGljay1kaXNhYmxlZDpiZWZvcmUsXFxuLnNsaWNrLW5leHQuc2xpY2stZGlzYWJsZWQ6YmVmb3JlXFxue1xcbiAgICBvcGFjaXR5OiAuMjU7XFxufVxcblxcbi5zbGljay1wcmV2OmJlZm9yZSxcXG4uc2xpY2stbmV4dDpiZWZvcmVcXG57XFxuICAgIGZvbnQtZmFtaWx5OiAnc2xpY2snO1xcbiAgICBmb250LXNpemU6IDIwcHg7XFxuICAgIGxpbmUtaGVpZ2h0OiAxO1xcblxcbiAgICBvcGFjaXR5OiAuNzU7XFxuICAgIGNvbG9yOiB3aGl0ZTtcXG5cXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxufVxcblxcbi5zbGljay1wcmV2XFxue1xcbiAgICBsZWZ0OiAtMjVweDtcXG59XFxuW2Rpcj0ncnRsJ10gLnNsaWNrLXByZXZcXG57XFxuICAgIHJpZ2h0OiAtMjVweDtcXG4gICAgbGVmdDogYXV0bztcXG59XFxuLnNsaWNrLXByZXY6YmVmb3JlXFxue1xcbiAgICBjb250ZW50OiAn4oaQJztcXG59XFxuW2Rpcj0ncnRsJ10gLnNsaWNrLXByZXY6YmVmb3JlXFxue1xcbiAgICBjb250ZW50OiAn4oaSJztcXG59XFxuXFxuLnNsaWNrLW5leHRcXG57XFxuICAgIHJpZ2h0OiAtMjVweDtcXG59XFxuW2Rpcj0ncnRsJ10gLnNsaWNrLW5leHRcXG57XFxuICAgIHJpZ2h0OiBhdXRvO1xcbiAgICBsZWZ0OiAtMjVweDtcXG59XFxuLnNsaWNrLW5leHQ6YmVmb3JlXFxue1xcbiAgICBjb250ZW50OiAn4oaSJztcXG59XFxuW2Rpcj0ncnRsJ10gLnNsaWNrLW5leHQ6YmVmb3JlXFxue1xcbiAgICBjb250ZW50OiAn4oaQJztcXG59XFxuXFxuLyogRG90cyAqL1xcbi5zbGljay1kb3R0ZWQuc2xpY2stc2xpZGVyXFxue1xcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xcbn1cXG5cXG4uc2xpY2stZG90c1xcbntcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICBib3R0b206IC0yNXB4O1xcblxcbiAgICBkaXNwbGF5OiBibG9jaztcXG5cXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIG1hcmdpbjogMDtcXG5cXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcXG5cXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xcbn1cXG4uc2xpY2stZG90cyBsaVxcbntcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcblxcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuXFxuICAgIHdpZHRoOiAyMHB4O1xcbiAgICBoZWlnaHQ6IDIwcHg7XFxuICAgIG1hcmdpbjogMCA1cHg7XFxuICAgIHBhZGRpbmc6IDA7XFxuXFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuLnNsaWNrLWRvdHMgbGkgYnV0dG9uXFxue1xcbiAgICBmb250LXNpemU6IDA7XFxuICAgIGxpbmUtaGVpZ2h0OiAwO1xcblxcbiAgICBkaXNwbGF5OiBibG9jaztcXG5cXG4gICAgd2lkdGg6IDIwcHg7XFxuICAgIGhlaWdodDogMjBweDtcXG4gICAgcGFkZGluZzogNXB4O1xcblxcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuXFxuICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBvdXRsaW5lOiBub25lO1xcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG59XFxuLnNsaWNrLWRvdHMgbGkgYnV0dG9uOmhvdmVyLFxcbi5zbGljay1kb3RzIGxpIGJ1dHRvbjpmb2N1c1xcbntcXG4gICAgb3V0bGluZTogbm9uZTtcXG59XFxuLnNsaWNrLWRvdHMgbGkgYnV0dG9uOmhvdmVyOmJlZm9yZSxcXG4uc2xpY2stZG90cyBsaSBidXR0b246Zm9jdXM6YmVmb3JlXFxue1xcbiAgICBvcGFjaXR5OiAxO1xcbn1cXG4uc2xpY2stZG90cyBsaSBidXR0b246YmVmb3JlXFxue1xcbiAgICBmb250LWZhbWlseTogJ3NsaWNrJztcXG4gICAgZm9udC1zaXplOiA2cHg7XFxuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xcblxcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHRvcDogMDtcXG4gICAgbGVmdDogMDtcXG5cXG4gICAgd2lkdGg6IDIwcHg7XFxuICAgIGhlaWdodDogMjBweDtcXG5cXG4gICAgY29udGVudDogJ+KAoic7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG5cXG4gICAgb3BhY2l0eTogLjI1O1xcbiAgICBjb2xvcjogYmxhY2s7XFxuXFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbn1cXG4uc2xpY2stZG90cyBsaS5zbGljay1hY3RpdmUgYnV0dG9uOmJlZm9yZVxcbntcXG4gICAgb3BhY2l0eTogLjc1O1xcbiAgICBjb2xvcjogYmxhY2s7XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick-theme.css\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick.css": +/*!*********************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick.css ***! + \*********************************************************************************************************************************************************************************************************************************************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../next/dist/build/webpack/loaders/css-loader/src/runtime/api.js */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js\");\n/* harmony import */ var _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);\n// Imports\n\nvar ___CSS_LOADER_EXPORT___ = _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/* Slider */\\n.slick-slider\\n{\\n position: relative;\\n\\n display: block;\\n box-sizing: border-box;\\n\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n\\n -webkit-touch-callout: none;\\n -khtml-user-select: none;\\n touch-action: pan-y;\\n -webkit-tap-highlight-color: transparent;\\n}\\n\\n.slick-list\\n{\\n position: relative;\\n\\n display: block;\\n overflow: hidden;\\n\\n margin: 0;\\n padding: 0;\\n}\\n.slick-list:focus\\n{\\n outline: none;\\n}\\n.slick-list.dragging\\n{\\n cursor: pointer;\\n cursor: hand;\\n}\\n\\n.slick-slider .slick-track,\\n.slick-slider .slick-list\\n{\\n transform: translate3d(0, 0, 0);\\n}\\n\\n.slick-track\\n{\\n position: relative;\\n top: 0;\\n left: 0;\\n\\n display: block;\\n margin-left: auto;\\n margin-right: auto;\\n}\\n.slick-track:before,\\n.slick-track:after\\n{\\n display: table;\\n\\n content: '';\\n}\\n.slick-track:after\\n{\\n clear: both;\\n}\\n.slick-loading .slick-track\\n{\\n visibility: hidden;\\n}\\n\\n.slick-slide\\n{\\n display: none;\\n float: left;\\n\\n height: 100%;\\n min-height: 1px;\\n}\\n[dir='rtl'] .slick-slide\\n{\\n float: right;\\n}\\n.slick-slide img\\n{\\n display: block;\\n}\\n.slick-slide.slick-loading img\\n{\\n display: none;\\n}\\n.slick-slide.dragging img\\n{\\n pointer-events: none;\\n}\\n.slick-initialized .slick-slide\\n{\\n display: block;\\n}\\n.slick-loading .slick-slide\\n{\\n visibility: hidden;\\n}\\n.slick-vertical .slick-slide\\n{\\n display: block;\\n\\n height: auto;\\n\\n border: 1px solid transparent;\\n}\\n.slick-arrow.slick-hidden {\\n display: none;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://node_modules/slick-carousel/slick/slick.css\"],\"names\":[],\"mappings\":\"AAAA,WAAW;AACX;;IAEI,kBAAkB;;IAElB,cAAc;IACd,sBAAsB;;IAEtB,yBAAyB;OACtB,sBAAsB;QACrB,qBAAqB;YACjB,iBAAiB;;IAEzB,2BAA2B;IAC3B,wBAAwB;IAEpB,mBAAmB;IACvB,wCAAwC;AAC5C;;AAEA;;IAEI,kBAAkB;;IAElB,cAAc;IACd,gBAAgB;;IAEhB,SAAS;IACT,UAAU;AACd;AACA;;IAEI,aAAa;AACjB;AACA;;IAEI,eAAe;IACf,YAAY;AAChB;;AAEA;;;IAOY,+BAA+B;AAC3C;;AAEA;;IAEI,kBAAkB;IAClB,MAAM;IACN,OAAO;;IAEP,cAAc;IACd,iBAAiB;IACjB,kBAAkB;AACtB;AACA;;;IAGI,cAAc;;IAEd,WAAW;AACf;AACA;;IAEI,WAAW;AACf;AACA;;IAEI,kBAAkB;AACtB;;AAEA;;IAEI,aAAa;IACb,WAAW;;IAEX,YAAY;IACZ,eAAe;AACnB;AACA;;IAEI,YAAY;AAChB;AACA;;IAEI,cAAc;AAClB;AACA;;IAEI,aAAa;AACjB;AACA;;IAEI,oBAAoB;AACxB;AACA;;IAEI,cAAc;AAClB;AACA;;IAEI,kBAAkB;AACtB;AACA;;IAEI,cAAc;;IAEd,YAAY;;IAEZ,6BAA6B;AACjC;AACA;IACI,aAAa;AACjB\",\"sourcesContent\":[\"/* Slider */\\n.slick-slider\\n{\\n position: relative;\\n\\n display: block;\\n box-sizing: border-box;\\n\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n\\n -webkit-touch-callout: none;\\n -khtml-user-select: none;\\n -ms-touch-action: pan-y;\\n touch-action: pan-y;\\n -webkit-tap-highlight-color: transparent;\\n}\\n\\n.slick-list\\n{\\n position: relative;\\n\\n display: block;\\n overflow: hidden;\\n\\n margin: 0;\\n padding: 0;\\n}\\n.slick-list:focus\\n{\\n outline: none;\\n}\\n.slick-list.dragging\\n{\\n cursor: pointer;\\n cursor: hand;\\n}\\n\\n.slick-slider .slick-track,\\n.slick-slider .slick-list\\n{\\n -webkit-transform: translate3d(0, 0, 0);\\n -moz-transform: translate3d(0, 0, 0);\\n -ms-transform: translate3d(0, 0, 0);\\n -o-transform: translate3d(0, 0, 0);\\n transform: translate3d(0, 0, 0);\\n}\\n\\n.slick-track\\n{\\n position: relative;\\n top: 0;\\n left: 0;\\n\\n display: block;\\n margin-left: auto;\\n margin-right: auto;\\n}\\n.slick-track:before,\\n.slick-track:after\\n{\\n display: table;\\n\\n content: '';\\n}\\n.slick-track:after\\n{\\n clear: both;\\n}\\n.slick-loading .slick-track\\n{\\n visibility: hidden;\\n}\\n\\n.slick-slide\\n{\\n display: none;\\n float: left;\\n\\n height: 100%;\\n min-height: 1px;\\n}\\n[dir='rtl'] .slick-slide\\n{\\n float: right;\\n}\\n.slick-slide img\\n{\\n display: block;\\n}\\n.slick-slide.slick-loading img\\n{\\n display: none;\\n}\\n.slick-slide.dragging img\\n{\\n pointer-events: none;\\n}\\n.slick-initialized .slick-slide\\n{\\n display: block;\\n}\\n.slick-loading .slick-slide\\n{\\n visibility: hidden;\\n}\\n.slick-vertical .slick-slide\\n{\\n display: block;\\n\\n height: auto;\\n\\n border: 1px solid transparent;\\n}\\n.slick-arrow.slick-hidden {\\n display: none;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMV0hLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3NsaWNrLWNhcm91c2VsL3NsaWNrL3NsaWNrLmNzcy5qcyIsIm1hcHBpbmdzIjoiOzs7QUFBQTtBQUM4RztBQUM5Ryw4QkFBOEIscUdBQTJCO0FBQ3pEO0FBQ0Esd0VBQXdFLHlCQUF5Qix1QkFBdUIsNkJBQTZCLGtDQUFrQyxnQ0FBZ0MsZ0NBQWdDLGdDQUFnQyxvQ0FBb0MsK0JBQStCLDBCQUEwQiwrQ0FBK0MsR0FBRyxrQkFBa0IseUJBQXlCLHVCQUF1Qix1QkFBdUIsa0JBQWtCLGlCQUFpQixHQUFHLHNCQUFzQixvQkFBb0IsR0FBRyx5QkFBeUIsc0JBQXNCLG1CQUFtQixHQUFHLDZEQUE2RCxzQ0FBc0MsR0FBRyxtQkFBbUIseUJBQXlCLGFBQWEsY0FBYyx1QkFBdUIsd0JBQXdCLHlCQUF5QixHQUFHLDZDQUE2QyxxQkFBcUIsb0JBQW9CLEdBQUcsdUJBQXVCLGtCQUFrQixHQUFHLGdDQUFnQyx5QkFBeUIsR0FBRyxtQkFBbUIsb0JBQW9CLGtCQUFrQixxQkFBcUIsc0JBQXNCLEdBQUcsNkJBQTZCLG1CQUFtQixHQUFHLHFCQUFxQixxQkFBcUIsR0FBRyxtQ0FBbUMsb0JBQW9CLEdBQUcsOEJBQThCLDJCQUEyQixHQUFHLG9DQUFvQyxxQkFBcUIsR0FBRyxnQ0FBZ0MseUJBQXlCLEdBQUcsaUNBQWlDLHFCQUFxQixxQkFBcUIsc0NBQXNDLEdBQUcsNkJBQTZCLG9CQUFvQixHQUFHLFNBQVMsaUhBQWlILE1BQU0sYUFBYSxXQUFXLGFBQWEsYUFBYSxhQUFhLGFBQWEsY0FBYyxhQUFhLGFBQWEsYUFBYSxhQUFhLE9BQU8sTUFBTSxhQUFhLFdBQVcsYUFBYSxXQUFXLFVBQVUsS0FBSyxNQUFNLFVBQVUsTUFBTSxNQUFNLFVBQVUsVUFBVSxPQUFPLE9BQU8sWUFBWSxPQUFPLE1BQU0sWUFBWSxXQUFXLFdBQVcsVUFBVSxZQUFZLGFBQWEsTUFBTSxPQUFPLFdBQVcsVUFBVSxLQUFLLE1BQU0sVUFBVSxLQUFLLE1BQU0sWUFBWSxPQUFPLE1BQU0sVUFBVSxXQUFXLFVBQVUsVUFBVSxNQUFNLE1BQU0sVUFBVSxNQUFNLE1BQU0sVUFBVSxNQUFNLE1BQU0sVUFBVSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sVUFBVSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sV0FBVyxXQUFXLFlBQVksTUFBTSxLQUFLLFVBQVUsd0RBQXdELHlCQUF5Qix1QkFBdUIsNkJBQTZCLGtDQUFrQyxnQ0FBZ0MsZ0NBQWdDLGdDQUFnQyxvQ0FBb0MsK0JBQStCLDhCQUE4Qiw4QkFBOEIsK0NBQStDLEdBQUcsa0JBQWtCLHlCQUF5Qix1QkFBdUIsdUJBQXVCLGtCQUFrQixpQkFBaUIsR0FBRyxzQkFBc0Isb0JBQW9CLEdBQUcseUJBQXlCLHNCQUFzQixtQkFBbUIsR0FBRyw2REFBNkQsOENBQThDLDhDQUE4Qyw4Q0FBOEMsOENBQThDLDhDQUE4QyxHQUFHLG1CQUFtQix5QkFBeUIsYUFBYSxjQUFjLHVCQUF1Qix3QkFBd0IseUJBQXlCLEdBQUcsNkNBQTZDLHFCQUFxQixvQkFBb0IsR0FBRyx1QkFBdUIsa0JBQWtCLEdBQUcsZ0NBQWdDLHlCQUF5QixHQUFHLG1CQUFtQixvQkFBb0Isa0JBQWtCLHFCQUFxQixzQkFBc0IsR0FBRyw2QkFBNkIsbUJBQW1CLEdBQUcscUJBQXFCLHFCQUFxQixHQUFHLG1DQUFtQyxvQkFBb0IsR0FBRyw4QkFBOEIsMkJBQTJCLEdBQUcsb0NBQW9DLHFCQUFxQixHQUFHLGdDQUFnQyx5QkFBeUIsR0FBRyxpQ0FBaUMscUJBQXFCLHFCQUFxQixzQ0FBc0MsR0FBRyw2QkFBNkIsb0JBQW9CLEdBQUcscUJBQXFCO0FBQ3Q0STtBQUNBLCtEQUFlLHVCQUF1QixFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zbGljay1jYXJvdXNlbC9zbGljay9zbGljay5jc3M/NDZmMyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL2Nzcy1sb2FkZXIvc3JjL3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18odHJ1ZSk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCIvKiBTbGlkZXIgKi9cXG4uc2xpY2stc2xpZGVyXFxue1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuXFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcblxcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xcblxcbiAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XFxuICAgIC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgdG91Y2gtYWN0aW9uOiBwYW4teTtcXG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuXFxuLnNsaWNrLWxpc3RcXG57XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG5cXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuXFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogMDtcXG59XFxuLnNsaWNrLWxpc3Q6Zm9jdXNcXG57XFxuICAgIG91dGxpbmU6IG5vbmU7XFxufVxcbi5zbGljay1saXN0LmRyYWdnaW5nXFxue1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgIGN1cnNvcjogaGFuZDtcXG59XFxuXFxuLnNsaWNrLXNsaWRlciAuc2xpY2stdHJhY2ssXFxuLnNsaWNrLXNsaWRlciAuc2xpY2stbGlzdFxcbntcXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcXG59XFxuXFxuLnNsaWNrLXRyYWNrXFxue1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIHRvcDogMDtcXG4gICAgbGVmdDogMDtcXG5cXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XFxufVxcbi5zbGljay10cmFjazpiZWZvcmUsXFxuLnNsaWNrLXRyYWNrOmFmdGVyXFxue1xcbiAgICBkaXNwbGF5OiB0YWJsZTtcXG5cXG4gICAgY29udGVudDogJyc7XFxufVxcbi5zbGljay10cmFjazphZnRlclxcbntcXG4gICAgY2xlYXI6IGJvdGg7XFxufVxcbi5zbGljay1sb2FkaW5nIC5zbGljay10cmFja1xcbntcXG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xcbn1cXG5cXG4uc2xpY2stc2xpZGVcXG57XFxuICAgIGRpc3BsYXk6IG5vbmU7XFxuICAgIGZsb2F0OiBsZWZ0O1xcblxcbiAgICBoZWlnaHQ6IDEwMCU7XFxuICAgIG1pbi1oZWlnaHQ6IDFweDtcXG59XFxuW2Rpcj0ncnRsJ10gLnNsaWNrLXNsaWRlXFxue1xcbiAgICBmbG9hdDogcmlnaHQ7XFxufVxcbi5zbGljay1zbGlkZSBpbWdcXG57XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbn1cXG4uc2xpY2stc2xpZGUuc2xpY2stbG9hZGluZyBpbWdcXG57XFxuICAgIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5zbGljay1zbGlkZS5kcmFnZ2luZyBpbWdcXG57XFxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbn1cXG4uc2xpY2staW5pdGlhbGl6ZWQgLnNsaWNrLXNsaWRlXFxue1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG59XFxuLnNsaWNrLWxvYWRpbmcgLnNsaWNrLXNsaWRlXFxue1xcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XFxufVxcbi5zbGljay12ZXJ0aWNhbCAuc2xpY2stc2xpZGVcXG57XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcblxcbiAgICBoZWlnaHQ6IGF1dG87XFxuXFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xcbn1cXG4uc2xpY2stYXJyb3cuc2xpY2staGlkZGVuIHtcXG4gICAgZGlzcGxheTogbm9uZTtcXG59XFxuXCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovL25vZGVfbW9kdWxlcy9zbGljay1jYXJvdXNlbC9zbGljay9zbGljay5jc3NcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBQUEsV0FBVztBQUNYOztJQUVJLGtCQUFrQjs7SUFFbEIsY0FBYztJQUNkLHNCQUFzQjs7SUFFdEIseUJBQXlCO09BQ3RCLHNCQUFzQjtRQUNyQixxQkFBcUI7WUFDakIsaUJBQWlCOztJQUV6QiwyQkFBMkI7SUFDM0Isd0JBQXdCO0lBRXBCLG1CQUFtQjtJQUN2Qix3Q0FBd0M7QUFDNUM7O0FBRUE7O0lBRUksa0JBQWtCOztJQUVsQixjQUFjO0lBQ2QsZ0JBQWdCOztJQUVoQixTQUFTO0lBQ1QsVUFBVTtBQUNkO0FBQ0E7O0lBRUksYUFBYTtBQUNqQjtBQUNBOztJQUVJLGVBQWU7SUFDZixZQUFZO0FBQ2hCOztBQUVBOzs7SUFPWSwrQkFBK0I7QUFDM0M7O0FBRUE7O0lBRUksa0JBQWtCO0lBQ2xCLE1BQU07SUFDTixPQUFPOztJQUVQLGNBQWM7SUFDZCxpQkFBaUI7SUFDakIsa0JBQWtCO0FBQ3RCO0FBQ0E7OztJQUdJLGNBQWM7O0lBRWQsV0FBVztBQUNmO0FBQ0E7O0lBRUksV0FBVztBQUNmO0FBQ0E7O0lBRUksa0JBQWtCO0FBQ3RCOztBQUVBOztJQUVJLGFBQWE7SUFDYixXQUFXOztJQUVYLFlBQVk7SUFDWixlQUFlO0FBQ25CO0FBQ0E7O0lBRUksWUFBWTtBQUNoQjtBQUNBOztJQUVJLGNBQWM7QUFDbEI7QUFDQTs7SUFFSSxhQUFhO0FBQ2pCO0FBQ0E7O0lBRUksb0JBQW9CO0FBQ3hCO0FBQ0E7O0lBRUksY0FBYztBQUNsQjtBQUNBOztJQUVJLGtCQUFrQjtBQUN0QjtBQUNBOztJQUVJLGNBQWM7O0lBRWQsWUFBWTs7SUFFWiw2QkFBNkI7QUFDakM7QUFDQTtJQUNJLGFBQWE7QUFDakJcIixcInNvdXJjZXNDb250ZW50XCI6W1wiLyogU2xpZGVyICovXFxuLnNsaWNrLXNsaWRlclxcbntcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcblxcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG5cXG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG5cXG4gICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xcbiAgICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgIC1tcy10b3VjaC1hY3Rpb246IHBhbi15O1xcbiAgICAgICAgdG91Y2gtYWN0aW9uOiBwYW4teTtcXG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuXFxuLnNsaWNrLWxpc3RcXG57XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG5cXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuXFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogMDtcXG59XFxuLnNsaWNrLWxpc3Q6Zm9jdXNcXG57XFxuICAgIG91dGxpbmU6IG5vbmU7XFxufVxcbi5zbGljay1saXN0LmRyYWdnaW5nXFxue1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgIGN1cnNvcjogaGFuZDtcXG59XFxuXFxuLnNsaWNrLXNsaWRlciAuc2xpY2stdHJhY2ssXFxuLnNsaWNrLXNsaWRlciAuc2xpY2stbGlzdFxcbntcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xcbiAgICAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XFxuICAgICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcXG4gICAgICAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XFxufVxcblxcbi5zbGljay10cmFja1xcbntcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICB0b3A6IDA7XFxuICAgIGxlZnQ6IDA7XFxuXFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcXG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xcbn1cXG4uc2xpY2stdHJhY2s6YmVmb3JlLFxcbi5zbGljay10cmFjazphZnRlclxcbntcXG4gICAgZGlzcGxheTogdGFibGU7XFxuXFxuICAgIGNvbnRlbnQ6ICcnO1xcbn1cXG4uc2xpY2stdHJhY2s6YWZ0ZXJcXG57XFxuICAgIGNsZWFyOiBib3RoO1xcbn1cXG4uc2xpY2stbG9hZGluZyAuc2xpY2stdHJhY2tcXG57XFxuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcXG59XFxuXFxuLnNsaWNrLXNsaWRlXFxue1xcbiAgICBkaXNwbGF5OiBub25lO1xcbiAgICBmbG9hdDogbGVmdDtcXG5cXG4gICAgaGVpZ2h0OiAxMDAlO1xcbiAgICBtaW4taGVpZ2h0OiAxcHg7XFxufVxcbltkaXI9J3J0bCddIC5zbGljay1zbGlkZVxcbntcXG4gICAgZmxvYXQ6IHJpZ2h0O1xcbn1cXG4uc2xpY2stc2xpZGUgaW1nXFxue1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG59XFxuLnNsaWNrLXNsaWRlLnNsaWNrLWxvYWRpbmcgaW1nXFxue1xcbiAgICBkaXNwbGF5OiBub25lO1xcbn1cXG4uc2xpY2stc2xpZGUuZHJhZ2dpbmcgaW1nXFxue1xcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG59XFxuLnNsaWNrLWluaXRpYWxpemVkIC5zbGljay1zbGlkZVxcbntcXG4gICAgZGlzcGxheTogYmxvY2s7XFxufVxcbi5zbGljay1sb2FkaW5nIC5zbGljay1zbGlkZVxcbntcXG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xcbn1cXG4uc2xpY2stdmVydGljYWwgLnNsaWNrLXNsaWRlXFxue1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG5cXG4gICAgaGVpZ2h0OiBhdXRvO1xcblxcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcXG59XFxuLnNsaWNrLWFycm93LnNsaWNrLWhpZGRlbiB7XFxuICAgIGRpc3BsYXk6IG5vbmU7XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick.css\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/getUrl.js": +/*!***************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/getUrl.js ***! + \***************************************************************************************/ +/***/ (function(module) { + +"use strict"; +eval("\nmodule.exports = function(url, options) {\n if (!options) {\n // eslint-disable-next-line no-param-reassign\n options = {\n };\n } // eslint-disable-next-line no-underscore-dangle, no-param-reassign\n url = url && url.__esModule ? url.default : url;\n if (typeof url !== 'string') {\n return url;\n } // If url is already wrapped in quotes, remove them\n if (/^['\"].*['\"]$/.test(url)) {\n // eslint-disable-next-line no-param-reassign\n url = url.slice(1, -1);\n }\n if (options.hash) {\n // eslint-disable-next-line no-param-reassign\n url += options.hash;\n } // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n if (/[\"'() \\t\\n]/.test(url) || options.needQuotes) {\n return '\"'.concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, '\\\\n'), '\"');\n }\n return url;\n};\n\n//# sourceMappingURL=getUrl.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9ydW50aW1lL2dldFVybC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9ydW50aW1lL2dldFVybC5qcz8wZTcxIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbih1cmwsIG9wdGlvbnMpIHtcbiAgICBpZiAoIW9wdGlvbnMpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgIG9wdGlvbnMgPSB7XG4gICAgICAgIH07XG4gICAgfSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZXJzY29yZS1kYW5nbGUsIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgdXJsID0gdXJsICYmIHVybC5fX2VzTW9kdWxlID8gdXJsLmRlZmF1bHQgOiB1cmw7XG4gICAgaWYgKHR5cGVvZiB1cmwgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiB1cmw7XG4gICAgfSAvLyBJZiB1cmwgaXMgYWxyZWFkeSB3cmFwcGVkIGluIHF1b3RlcywgcmVtb3ZlIHRoZW1cbiAgICBpZiAoL15bJ1wiXS4qWydcIl0kLy50ZXN0KHVybCkpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgIHVybCA9IHVybC5zbGljZSgxLCAtMSk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLmhhc2gpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgIHVybCArPSBvcHRpb25zLmhhc2g7XG4gICAgfSAvLyBTaG91bGQgdXJsIGJlIHdyYXBwZWQ/XG4gICAgLy8gU2VlIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtdmFsdWVzLTMvI3VybHNcbiAgICBpZiAoL1tcIicoKSBcXHRcXG5dLy50ZXN0KHVybCkgfHwgb3B0aW9ucy5uZWVkUXVvdGVzKSB7XG4gICAgICAgIHJldHVybiAnXCInLmNvbmNhdCh1cmwucmVwbGFjZSgvXCIvZywgJ1xcXFxcIicpLnJlcGxhY2UoL1xcbi9nLCAnXFxcXG4nKSwgJ1wiJyk7XG4gICAgfVxuICAgIHJldHVybiB1cmw7XG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1nZXRVcmwuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/getUrl.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2Fhomepage%2Fhome2-light&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Chomepage%5Chome2-light.jsx!": +/*!*************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2Fhomepage%2Fhome2-light&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Chomepage%5Chome2-light.jsx! ***! + \*************************************************************************************************************************************************************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/homepage/home2-light\",\n function () {\n return __webpack_require__(/*! ./src/pages/homepage/home2-light.jsx */ \"./src/pages/homepage/home2-light.jsx\");\n }\n ]);\n if(true) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/homepage/home2-light\"])\n });\n }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWNsaWVudC1wYWdlcy1sb2FkZXIuanM/cGFnZT0lMkZob21lcGFnZSUyRmhvbWUyLWxpZ2h0JmFic29sdXRlUGFnZVBhdGg9QyUzQSU1Q1VzZXJzJTVDaHAlNUNEZXNrdG9wJTVDYnVzaW5lc3MtaHViJTVDc3JjJTVDcGFnZXMlNUNob21lcGFnZSU1Q2hvbWUyLWxpZ2h0LmpzeCEuanMiLCJtYXBwaW5ncyI6IjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsbUJBQU8sQ0FBQyxrRkFBc0M7QUFDN0Q7QUFDQTtBQUNBLE9BQU8sSUFBVTtBQUNqQixNQUFNLFVBQVU7QUFDaEI7QUFDQSxPQUFPO0FBQ1A7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvPzdlODciXSwic291cmNlc0NvbnRlbnQiOlsiXG4gICAgKHdpbmRvdy5fX05FWFRfUCA9IHdpbmRvdy5fX05FWFRfUCB8fCBbXSkucHVzaChbXG4gICAgICBcIi9ob21lcGFnZS9ob21lMi1saWdodFwiLFxuICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gcmVxdWlyZShcIi4vc3JjL3BhZ2VzL2hvbWVwYWdlL2hvbWUyLWxpZ2h0LmpzeFwiKTtcbiAgICAgIH1cbiAgICBdKTtcbiAgICBpZihtb2R1bGUuaG90KSB7XG4gICAgICBtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24gKCkge1xuICAgICAgICB3aW5kb3cuX19ORVhUX1AucHVzaChbXCIvaG9tZXBhZ2UvaG9tZTItbGlnaHRcIl0pXG4gICAgICB9KTtcbiAgICB9XG4gICJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2Fhomepage%2Fhome2-light&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Chomepage%5Chome2-light.jsx!\n"); + +/***/ }), + +/***/ "./node_modules/react-modal-video/css/modal-video.css": +/*!************************************************************!*\ + !*** ./node_modules/react-modal-video/css/modal-video.css ***! + \************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var api = __webpack_require__(/*! !../../next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js */ \"./node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js\");\n var content = __webpack_require__(/*! !!../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./modal-video.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/react-modal-video/css/modal-video.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = function(element) {\n // These elements should always exist. If they do not,\n // this code should fail.\n var anchorElement = document.querySelector('#__next_css__DO_NOT_USE__');\n var parentNode = anchorElement.parentNode// Normally <head>\n ;\n // Each style tag should be placed right before our\n // anchor. By inserting before and not after, we do not\n // need to track the last inserted element.\n parentNode.insertBefore(element, anchorElement);\n };\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\nif (true) {\n if (!content.locals || module.hot.invalidate) {\n var isEqualLocals = function isEqualLocals(a, b, isNamedExport) {\n if (!a && b || a && !b) {\n return false;\n }\n let p;\n for(p in a){\n if (isNamedExport && p === 'default') {\n continue;\n }\n if (a[p] !== b[p]) {\n return false;\n }\n }\n for(p in b){\n if (isNamedExport && p === 'default') {\n continue;\n }\n if (!a[p]) {\n return false;\n }\n }\n return true;\n};\n var oldLocals = content.locals;\n\n module.hot.accept(\n /*! !!../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./modal-video.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/react-modal-video/css/modal-video.css\",\n function () {\n content = __webpack_require__(/*! !!../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./modal-video.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/react-modal-video/css/modal-video.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\n if (!isEqualLocals(oldLocals, content.locals)) {\n module.hot.invalidate();\n\n return;\n }\n\n oldLocals = content.locals;\n\n update(content);\n }\n )\n }\n\n module.hot.dispose(function() {\n update();\n });\n}\n\nmodule.exports = content.locals || {};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtbW9kYWwtdmlkZW8vY3NzL21vZGFsLXZpZGVvLmNzcy5qcyIsIm1hcHBpbmdzIjoiQUFBQSxVQUFVLG1CQUFPLENBQUMsME1BQThGO0FBQ2hILDBCQUEwQixtQkFBTyxDQUFDLHVmQUErTjs7QUFFalE7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7O0FBR0EsSUFBSSxJQUFVO0FBQ2QseUJBQXlCLFVBQVU7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLElBQUksaUJBQWlCO0FBQ3JCLE1BQU0sdWZBQStOO0FBQ3JPO0FBQ0Esa0JBQWtCLG1CQUFPLENBQUMsdWZBQStOOztBQUV6UDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxnQkFBZ0IsVUFBVTs7QUFFMUI7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxFQUFFLFVBQVU7QUFDWjtBQUNBLEdBQUc7QUFDSDs7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmVhY3QtbW9kYWwtdmlkZW8vY3NzL21vZGFsLXZpZGVvLmNzcz80YzUxIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBhcGkgPSByZXF1aXJlKFwiIS4uLy4uL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvbmV4dC1zdHlsZS1sb2FkZXIvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIik7XG4gICAgICAgICAgICB2YXIgY29udGVudCA9IHJlcXVpcmUoXCIhIS4uLy4uL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvY3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzFdIS4uLy4uL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzhdLnVzZVsyXSEuL21vZGFsLXZpZGVvLmNzc1wiKTtcblxuICAgICAgICAgICAgY29udGVudCA9IGNvbnRlbnQuX19lc01vZHVsZSA/IGNvbnRlbnQuZGVmYXVsdCA6IGNvbnRlbnQ7XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgY29udGVudCA9IFtbbW9kdWxlLmlkLCBjb250ZW50LCAnJ11dO1xuICAgICAgICAgICAgfVxuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLmluc2VydCA9IGZ1bmN0aW9uKGVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAvLyBUaGVzZSBlbGVtZW50cyBzaG91bGQgYWx3YXlzIGV4aXN0LiBJZiB0aGV5IGRvIG5vdCxcbiAgICAgICAgICAgICAgICAvLyB0aGlzIGNvZGUgc2hvdWxkIGZhaWwuXG4gICAgICAgICAgICAgICAgdmFyIGFuY2hvckVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjX19uZXh0X2Nzc19fRE9fTk9UX1VTRV9fJyk7XG4gICAgICAgICAgICAgICAgdmFyIHBhcmVudE5vZGUgPSBhbmNob3JFbGVtZW50LnBhcmVudE5vZGUvLyBOb3JtYWxseSA8aGVhZD5cbiAgICAgICAgICAgICAgICA7XG4gICAgICAgICAgICAgICAgLy8gRWFjaCBzdHlsZSB0YWcgc2hvdWxkIGJlIHBsYWNlZCByaWdodCBiZWZvcmUgb3VyXG4gICAgICAgICAgICAgICAgLy8gYW5jaG9yLiBCeSBpbnNlcnRpbmcgYmVmb3JlIGFuZCBub3QgYWZ0ZXIsIHdlIGRvIG5vdFxuICAgICAgICAgICAgICAgIC8vIG5lZWQgdG8gdHJhY2sgdGhlIGxhc3QgaW5zZXJ0ZWQgZWxlbWVudC5cbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlLmluc2VydEJlZm9yZShlbGVtZW50LCBhbmNob3JFbGVtZW50KTtcbiAgICAgICAgICAgIH07XG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xuXG52YXIgdXBkYXRlID0gYXBpKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cbmlmIChtb2R1bGUuaG90KSB7XG4gIGlmICghY29udGVudC5sb2NhbHMgfHwgbW9kdWxlLmhvdC5pbnZhbGlkYXRlKSB7XG4gICAgdmFyIGlzRXF1YWxMb2NhbHMgPSBmdW5jdGlvbiBpc0VxdWFsTG9jYWxzKGEsIGIsIGlzTmFtZWRFeHBvcnQpIHtcbiAgICBpZiAoIWEgJiYgYiB8fCBhICYmICFiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgbGV0IHA7XG4gICAgZm9yKHAgaW4gYSl7XG4gICAgICAgIGlmIChpc05hbWVkRXhwb3J0ICYmIHAgPT09ICdkZWZhdWx0Jykge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFbcF0gIT09IGJbcF0pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmb3IocCBpbiBiKXtcbiAgICAgICAgaWYgKGlzTmFtZWRFeHBvcnQgJiYgcCA9PT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWFbcF0pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn07XG4gICAgdmFyIG9sZExvY2FscyA9IGNvbnRlbnQubG9jYWxzO1xuXG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoXG4gICAgICBcIiEhLi4vLi4vbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMV0hLi4vLi4vbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzJdIS4vbW9kYWwtdmlkZW8uY3NzXCIsXG4gICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNvbnRlbnQgPSByZXF1aXJlKFwiISEuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL2Nzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzhdLnVzZVsxXSEuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMl0hLi9tb2RhbC12aWRlby5jc3NcIik7XG5cbiAgICAgICAgICAgICAgY29udGVudCA9IGNvbnRlbnQuX19lc01vZHVsZSA/IGNvbnRlbnQuZGVmYXVsdCA6IGNvbnRlbnQ7XG5cbiAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmICghaXNFcXVhbExvY2FscyhvbGRMb2NhbHMsIGNvbnRlbnQubG9jYWxzKSkge1xuICAgICAgICAgICAgICAgIG1vZHVsZS5ob3QuaW52YWxpZGF0ZSgpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgb2xkTG9jYWxzID0gY29udGVudC5sb2NhbHM7XG5cbiAgICAgICAgICAgICAgdXBkYXRlKGNvbnRlbnQpO1xuICAgICAgfVxuICAgIClcbiAgfVxuXG4gIG1vZHVsZS5ob3QuZGlzcG9zZShmdW5jdGlvbigpIHtcbiAgICB1cGRhdGUoKTtcbiAgfSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY29udGVudC5sb2NhbHMgfHwge307Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/react-modal-video/css/modal-video.css\n"); + +/***/ }), + +/***/ "./node_modules/slick-carousel/slick/slick-theme.css": +/*!***********************************************************!*\ + !*** ./node_modules/slick-carousel/slick/slick-theme.css ***! + \***********************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var api = __webpack_require__(/*! !../../next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js */ \"./node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js\");\n var content = __webpack_require__(/*! !!../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./slick-theme.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick-theme.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = function(element) {\n // These elements should always exist. If they do not,\n // this code should fail.\n var anchorElement = document.querySelector('#__next_css__DO_NOT_USE__');\n var parentNode = anchorElement.parentNode// Normally <head>\n ;\n // Each style tag should be placed right before our\n // anchor. By inserting before and not after, we do not\n // need to track the last inserted element.\n parentNode.insertBefore(element, anchorElement);\n };\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\nif (true) {\n if (!content.locals || module.hot.invalidate) {\n var isEqualLocals = function isEqualLocals(a, b, isNamedExport) {\n if (!a && b || a && !b) {\n return false;\n }\n let p;\n for(p in a){\n if (isNamedExport && p === 'default') {\n continue;\n }\n if (a[p] !== b[p]) {\n return false;\n }\n }\n for(p in b){\n if (isNamedExport && p === 'default') {\n continue;\n }\n if (!a[p]) {\n return false;\n }\n }\n return true;\n};\n var oldLocals = content.locals;\n\n module.hot.accept(\n /*! !!../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./slick-theme.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick-theme.css\",\n function () {\n content = __webpack_require__(/*! !!../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./slick-theme.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick-theme.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\n if (!isEqualLocals(oldLocals, content.locals)) {\n module.hot.invalidate();\n\n return;\n }\n\n oldLocals = content.locals;\n\n update(content);\n }\n )\n }\n\n module.hot.dispose(function() {\n update();\n });\n}\n\nmodule.exports = content.locals || {};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc2xpY2stY2Fyb3VzZWwvc2xpY2svc2xpY2stdGhlbWUuY3NzLmpzIiwibWFwcGluZ3MiOiJBQUFBLFVBQVUsbUJBQU8sQ0FBQywwTUFBOEY7QUFDaEgsMEJBQTBCLG1CQUFPLENBQUMsc2ZBQStOOztBQUVqUTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOzs7QUFHQSxJQUFJLElBQVU7QUFDZCx5QkFBeUIsVUFBVTtBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsSUFBSSxpQkFBaUI7QUFDckIsTUFBTSxzZkFBK047QUFDck87QUFDQSxrQkFBa0IsbUJBQU8sQ0FBQyxzZkFBK047O0FBRXpQOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGdCQUFnQixVQUFVOztBQUUxQjtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLEVBQUUsVUFBVTtBQUNaO0FBQ0EsR0FBRztBQUNIOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zbGljay1jYXJvdXNlbC9zbGljay9zbGljay10aGVtZS5jc3M/NzcyOCJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgYXBpID0gcmVxdWlyZShcIiEuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtc3R5bGUtbG9hZGVyL3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCIpO1xuICAgICAgICAgICAgdmFyIGNvbnRlbnQgPSByZXF1aXJlKFwiISEuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL2Nzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzhdLnVzZVsxXSEuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMl0hLi9zbGljay10aGVtZS5jc3NcIik7XG5cbiAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50Ll9fZXNNb2R1bGUgPyBjb250ZW50LmRlZmF1bHQgOiBjb250ZW50O1xuXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcbiAgICAgICAgICAgIH1cblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5pbnNlcnQgPSBmdW5jdGlvbihlbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgLy8gVGhlc2UgZWxlbWVudHMgc2hvdWxkIGFsd2F5cyBleGlzdC4gSWYgdGhleSBkbyBub3QsXG4gICAgICAgICAgICAgICAgLy8gdGhpcyBjb2RlIHNob3VsZCBmYWlsLlxuICAgICAgICAgICAgICAgIHZhciBhbmNob3JFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI19fbmV4dF9jc3NfX0RPX05PVF9VU0VfXycpO1xuICAgICAgICAgICAgICAgIHZhciBwYXJlbnROb2RlID0gYW5jaG9yRWxlbWVudC5wYXJlbnROb2RlLy8gTm9ybWFsbHkgPGhlYWQ+XG4gICAgICAgICAgICAgICAgO1xuICAgICAgICAgICAgICAgIC8vIEVhY2ggc3R5bGUgdGFnIHNob3VsZCBiZSBwbGFjZWQgcmlnaHQgYmVmb3JlIG91clxuICAgICAgICAgICAgICAgIC8vIGFuY2hvci4gQnkgaW5zZXJ0aW5nIGJlZm9yZSBhbmQgbm90IGFmdGVyLCB3ZSBkbyBub3RcbiAgICAgICAgICAgICAgICAvLyBuZWVkIHRvIHRyYWNrIHRoZSBsYXN0IGluc2VydGVkIGVsZW1lbnQuXG4gICAgICAgICAgICAgICAgcGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZWxlbWVudCwgYW5jaG9yRWxlbWVudCk7XG4gICAgICAgICAgICB9O1xub3B0aW9ucy5zaW5nbGV0b24gPSBmYWxzZTtcblxudmFyIHVwZGF0ZSA9IGFwaShjb250ZW50LCBvcHRpb25zKTtcblxuXG5pZiAobW9kdWxlLmhvdCkge1xuICBpZiAoIWNvbnRlbnQubG9jYWxzIHx8IG1vZHVsZS5ob3QuaW52YWxpZGF0ZSkge1xuICAgIHZhciBpc0VxdWFsTG9jYWxzID0gZnVuY3Rpb24gaXNFcXVhbExvY2FscyhhLCBiLCBpc05hbWVkRXhwb3J0KSB7XG4gICAgaWYgKCFhICYmIGIgfHwgYSAmJiAhYikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGxldCBwO1xuICAgIGZvcihwIGluIGEpe1xuICAgICAgICBpZiAoaXNOYW1lZEV4cG9ydCAmJiBwID09PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhW3BdICE9PSBiW3BdKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZm9yKHAgaW4gYil7XG4gICAgICAgIGlmIChpc05hbWVkRXhwb3J0ICYmIHAgPT09ICdkZWZhdWx0Jykge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFhW3BdKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG59O1xuICAgIHZhciBvbGRMb2NhbHMgPSBjb250ZW50LmxvY2FscztcblxuICAgIG1vZHVsZS5ob3QuYWNjZXB0KFxuICAgICAgXCIhIS4uLy4uL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvY3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzFdIS4uLy4uL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzhdLnVzZVsyXSEuL3NsaWNrLXRoZW1lLmNzc1wiLFxuICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICBjb250ZW50ID0gcmVxdWlyZShcIiEhLi4vLi4vbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMV0hLi4vLi4vbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzJdIS4vc2xpY2stdGhlbWUuY3NzXCIpO1xuXG4gICAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50Ll9fZXNNb2R1bGUgPyBjb250ZW50LmRlZmF1bHQgOiBjb250ZW50O1xuXG4gICAgICAgICAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBjb250ZW50ID0gW1ttb2R1bGUuaWQsIGNvbnRlbnQsICcnXV07XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBpZiAoIWlzRXF1YWxMb2NhbHMob2xkTG9jYWxzLCBjb250ZW50LmxvY2FscykpIHtcbiAgICAgICAgICAgICAgICBtb2R1bGUuaG90LmludmFsaWRhdGUoKTtcblxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIG9sZExvY2FscyA9IGNvbnRlbnQubG9jYWxzO1xuXG4gICAgICAgICAgICAgIHVwZGF0ZShjb250ZW50KTtcbiAgICAgIH1cbiAgICApXG4gIH1cblxuICBtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24oKSB7XG4gICAgdXBkYXRlKCk7XG4gIH0pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNvbnRlbnQubG9jYWxzIHx8IHt9OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/slick-carousel/slick/slick-theme.css\n"); + +/***/ }), + +/***/ "./node_modules/slick-carousel/slick/slick.css": +/*!*****************************************************!*\ + !*** ./node_modules/slick-carousel/slick/slick.css ***! + \*****************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var api = __webpack_require__(/*! !../../next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js */ \"./node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js\");\n var content = __webpack_require__(/*! !!../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./slick.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = function(element) {\n // These elements should always exist. If they do not,\n // this code should fail.\n var anchorElement = document.querySelector('#__next_css__DO_NOT_USE__');\n var parentNode = anchorElement.parentNode// Normally <head>\n ;\n // Each style tag should be placed right before our\n // anchor. By inserting before and not after, we do not\n // need to track the last inserted element.\n parentNode.insertBefore(element, anchorElement);\n };\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\nif (true) {\n if (!content.locals || module.hot.invalidate) {\n var isEqualLocals = function isEqualLocals(a, b, isNamedExport) {\n if (!a && b || a && !b) {\n return false;\n }\n let p;\n for(p in a){\n if (isNamedExport && p === 'default') {\n continue;\n }\n if (a[p] !== b[p]) {\n return false;\n }\n }\n for(p in b){\n if (isNamedExport && p === 'default') {\n continue;\n }\n if (!a[p]) {\n return false;\n }\n }\n return true;\n};\n var oldLocals = content.locals;\n\n module.hot.accept(\n /*! !!../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./slick.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick.css\",\n function () {\n content = __webpack_require__(/*! !!../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./slick.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\n if (!isEqualLocals(oldLocals, content.locals)) {\n module.hot.invalidate();\n\n return;\n }\n\n oldLocals = content.locals;\n\n update(content);\n }\n )\n }\n\n module.hot.dispose(function() {\n update();\n });\n}\n\nmodule.exports = content.locals || {};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc2xpY2stY2Fyb3VzZWwvc2xpY2svc2xpY2suY3NzLmpzIiwibWFwcGluZ3MiOiJBQUFBLFVBQVUsbUJBQU8sQ0FBQywwTUFBOEY7QUFDaEgsMEJBQTBCLG1CQUFPLENBQUMsMGVBQXlOOztBQUUzUDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOzs7QUFHQSxJQUFJLElBQVU7QUFDZCx5QkFBeUIsVUFBVTtBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsSUFBSSxpQkFBaUI7QUFDckIsTUFBTSwwZUFBeU47QUFDL047QUFDQSxrQkFBa0IsbUJBQU8sQ0FBQywwZUFBeU47O0FBRW5QOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGdCQUFnQixVQUFVOztBQUUxQjtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLEVBQUUsVUFBVTtBQUNaO0FBQ0EsR0FBRztBQUNIOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zbGljay1jYXJvdXNlbC9zbGljay9zbGljay5jc3M/NGM1YiJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgYXBpID0gcmVxdWlyZShcIiEuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtc3R5bGUtbG9hZGVyL3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCIpO1xuICAgICAgICAgICAgdmFyIGNvbnRlbnQgPSByZXF1aXJlKFwiISEuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL2Nzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzhdLnVzZVsxXSEuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMl0hLi9zbGljay5jc3NcIik7XG5cbiAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50Ll9fZXNNb2R1bGUgPyBjb250ZW50LmRlZmF1bHQgOiBjb250ZW50O1xuXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcbiAgICAgICAgICAgIH1cblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5pbnNlcnQgPSBmdW5jdGlvbihlbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgLy8gVGhlc2UgZWxlbWVudHMgc2hvdWxkIGFsd2F5cyBleGlzdC4gSWYgdGhleSBkbyBub3QsXG4gICAgICAgICAgICAgICAgLy8gdGhpcyBjb2RlIHNob3VsZCBmYWlsLlxuICAgICAgICAgICAgICAgIHZhciBhbmNob3JFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI19fbmV4dF9jc3NfX0RPX05PVF9VU0VfXycpO1xuICAgICAgICAgICAgICAgIHZhciBwYXJlbnROb2RlID0gYW5jaG9yRWxlbWVudC5wYXJlbnROb2RlLy8gTm9ybWFsbHkgPGhlYWQ+XG4gICAgICAgICAgICAgICAgO1xuICAgICAgICAgICAgICAgIC8vIEVhY2ggc3R5bGUgdGFnIHNob3VsZCBiZSBwbGFjZWQgcmlnaHQgYmVmb3JlIG91clxuICAgICAgICAgICAgICAgIC8vIGFuY2hvci4gQnkgaW5zZXJ0aW5nIGJlZm9yZSBhbmQgbm90IGFmdGVyLCB3ZSBkbyBub3RcbiAgICAgICAgICAgICAgICAvLyBuZWVkIHRvIHRyYWNrIHRoZSBsYXN0IGluc2VydGVkIGVsZW1lbnQuXG4gICAgICAgICAgICAgICAgcGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZWxlbWVudCwgYW5jaG9yRWxlbWVudCk7XG4gICAgICAgICAgICB9O1xub3B0aW9ucy5zaW5nbGV0b24gPSBmYWxzZTtcblxudmFyIHVwZGF0ZSA9IGFwaShjb250ZW50LCBvcHRpb25zKTtcblxuXG5pZiAobW9kdWxlLmhvdCkge1xuICBpZiAoIWNvbnRlbnQubG9jYWxzIHx8IG1vZHVsZS5ob3QuaW52YWxpZGF0ZSkge1xuICAgIHZhciBpc0VxdWFsTG9jYWxzID0gZnVuY3Rpb24gaXNFcXVhbExvY2FscyhhLCBiLCBpc05hbWVkRXhwb3J0KSB7XG4gICAgaWYgKCFhICYmIGIgfHwgYSAmJiAhYikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGxldCBwO1xuICAgIGZvcihwIGluIGEpe1xuICAgICAgICBpZiAoaXNOYW1lZEV4cG9ydCAmJiBwID09PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhW3BdICE9PSBiW3BdKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZm9yKHAgaW4gYil7XG4gICAgICAgIGlmIChpc05hbWVkRXhwb3J0ICYmIHAgPT09ICdkZWZhdWx0Jykge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFhW3BdKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG59O1xuICAgIHZhciBvbGRMb2NhbHMgPSBjb250ZW50LmxvY2FscztcblxuICAgIG1vZHVsZS5ob3QuYWNjZXB0KFxuICAgICAgXCIhIS4uLy4uL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvY3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzFdIS4uLy4uL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzhdLnVzZVsyXSEuL3NsaWNrLmNzc1wiLFxuICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICBjb250ZW50ID0gcmVxdWlyZShcIiEhLi4vLi4vbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMV0hLi4vLi4vbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzJdIS4vc2xpY2suY3NzXCIpO1xuXG4gICAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50Ll9fZXNNb2R1bGUgPyBjb250ZW50LmRlZmF1bHQgOiBjb250ZW50O1xuXG4gICAgICAgICAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBjb250ZW50ID0gW1ttb2R1bGUuaWQsIGNvbnRlbnQsICcnXV07XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBpZiAoIWlzRXF1YWxMb2NhbHMob2xkTG9jYWxzLCBjb250ZW50LmxvY2FscykpIHtcbiAgICAgICAgICAgICAgICBtb2R1bGUuaG90LmludmFsaWRhdGUoKTtcblxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIG9sZExvY2FscyA9IGNvbnRlbnQubG9jYWxzO1xuXG4gICAgICAgICAgICAgIHVwZGF0ZShjb250ZW50KTtcbiAgICAgIH1cbiAgICApXG4gIH1cblxuICBtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24oKSB7XG4gICAgdXBkYXRlKCk7XG4gIH0pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNvbnRlbnQubG9jYWxzIHx8IHt9OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/slick-carousel/slick/slick.css\n"); + +/***/ }), + +/***/ "./node_modules/next/link.js": +/*!***********************************!*\ + !*** ./node_modules/next/link.js ***! + \***********************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("module.exports = __webpack_require__(/*! ./dist/client/link */ \"./node_modules/next/dist/client/link.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9saW5rLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBLHlHQUE4QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9saW5rLmpzPzc1YjMiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Rpc3QvY2xpZW50L2xpbmsnKVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/link.js\n"); + +/***/ }), + +/***/ "./node_modules/prop-types/checkPropTypes.js": +/*!***************************************************!*\ + !*** ./node_modules/prop-types/checkPropTypes.js ***! + \***************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\n\n\nvar printWarning = function() {};\n\nif (true) {\n var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ \"./node_modules/prop-types/lib/ReactPropTypesSecret.js\");\n var loggedTypeFailures = {};\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (true) {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (true) {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9jaGVja1Byb3BUeXBlcy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWE7O0FBRWI7O0FBRUEsSUFBSSxJQUFxQztBQUN6Qyw2QkFBNkIsbUJBQU8sQ0FBQyx5RkFBNEI7QUFDakU7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsV0FBVztBQUN0QjtBQUNBO0FBQ0E7QUFDQSxNQUFNLElBQXFDO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2R0FBNkc7QUFDN0c7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0REFBNEQ7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLElBQXFDO0FBQzNDO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9jaGVja1Byb3BUeXBlcy5qcz8yNjI2Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgcHJpbnRXYXJuaW5nID0gZnVuY3Rpb24oKSB7fTtcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgdmFyIFJlYWN0UHJvcFR5cGVzU2VjcmV0ID0gcmVxdWlyZSgnLi9saWIvUmVhY3RQcm9wVHlwZXNTZWNyZXQnKTtcbiAgdmFyIGxvZ2dlZFR5cGVGYWlsdXJlcyA9IHt9O1xuICB2YXIgaGFzID0gRnVuY3Rpb24uY2FsbC5iaW5kKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkpO1xuXG4gIHByaW50V2FybmluZyA9IGZ1bmN0aW9uKHRleHQpIHtcbiAgICB2YXIgbWVzc2FnZSA9ICdXYXJuaW5nOiAnICsgdGV4dDtcbiAgICBpZiAodHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBjb25zb2xlLmVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgLy8gLS0tIFdlbGNvbWUgdG8gZGVidWdnaW5nIFJlYWN0IC0tLVxuICAgICAgLy8gVGhpcyBlcnJvciB3YXMgdGhyb3duIGFzIGEgY29udmVuaWVuY2Ugc28gdGhhdCB5b3UgY2FuIHVzZSB0aGlzIHN0YWNrXG4gICAgICAvLyB0byBmaW5kIHRoZSBjYWxsc2l0ZSB0aGF0IGNhdXNlZCB0aGlzIHdhcm5pbmcgdG8gZmlyZS5cbiAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgICB9IGNhdGNoICh4KSB7fVxuICB9O1xufVxuXG4vKipcbiAqIEFzc2VydCB0aGF0IHRoZSB2YWx1ZXMgbWF0Y2ggd2l0aCB0aGUgdHlwZSBzcGVjcy5cbiAqIEVycm9yIG1lc3NhZ2VzIGFyZSBtZW1vcml6ZWQgYW5kIHdpbGwgb25seSBiZSBzaG93biBvbmNlLlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSB0eXBlU3BlY3MgTWFwIG9mIG5hbWUgdG8gYSBSZWFjdFByb3BUeXBlXG4gKiBAcGFyYW0ge29iamVjdH0gdmFsdWVzIFJ1bnRpbWUgdmFsdWVzIHRoYXQgbmVlZCB0byBiZSB0eXBlLWNoZWNrZWRcbiAqIEBwYXJhbSB7c3RyaW5nfSBsb2NhdGlvbiBlLmcuIFwicHJvcFwiLCBcImNvbnRleHRcIiwgXCJjaGlsZCBjb250ZXh0XCJcbiAqIEBwYXJhbSB7c3RyaW5nfSBjb21wb25lbnROYW1lIE5hbWUgb2YgdGhlIGNvbXBvbmVudCBmb3IgZXJyb3IgbWVzc2FnZXMuXG4gKiBAcGFyYW0gez9GdW5jdGlvbn0gZ2V0U3RhY2sgUmV0dXJucyB0aGUgY29tcG9uZW50IHN0YWNrLlxuICogQHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gY2hlY2tQcm9wVHlwZXModHlwZVNwZWNzLCB2YWx1ZXMsIGxvY2F0aW9uLCBjb21wb25lbnROYW1lLCBnZXRTdGFjaykge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGZvciAodmFyIHR5cGVTcGVjTmFtZSBpbiB0eXBlU3BlY3MpIHtcbiAgICAgIGlmIChoYXModHlwZVNwZWNzLCB0eXBlU3BlY05hbWUpKSB7XG4gICAgICAgIHZhciBlcnJvcjtcbiAgICAgICAgLy8gUHJvcCB0eXBlIHZhbGlkYXRpb24gbWF5IHRocm93LiBJbiBjYXNlIHRoZXkgZG8sIHdlIGRvbid0IHdhbnQgdG9cbiAgICAgICAgLy8gZmFpbCB0aGUgcmVuZGVyIHBoYXNlIHdoZXJlIGl0IGRpZG4ndCBmYWlsIGJlZm9yZS4gU28gd2UgbG9nIGl0LlxuICAgICAgICAvLyBBZnRlciB0aGVzZSBoYXZlIGJlZW4gY2xlYW5lZCB1cCwgd2UnbGwgbGV0IHRoZW0gdGhyb3cuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgLy8gVGhpcyBpcyBpbnRlbnRpb25hbGx5IGFuIGludmFyaWFudCB0aGF0IGdldHMgY2F1Z2h0LiBJdCdzIHRoZSBzYW1lXG4gICAgICAgICAgLy8gYmVoYXZpb3IgYXMgd2l0aG91dCB0aGlzIHN0YXRlbWVudCBleGNlcHQgd2l0aCBhIGJldHRlciBtZXNzYWdlLlxuICAgICAgICAgIGlmICh0eXBlb2YgdHlwZVNwZWNzW3R5cGVTcGVjTmFtZV0gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHZhciBlcnIgPSBFcnJvcihcbiAgICAgICAgICAgICAgKGNvbXBvbmVudE5hbWUgfHwgJ1JlYWN0IGNsYXNzJykgKyAnOiAnICsgbG9jYXRpb24gKyAnIHR5cGUgYCcgKyB0eXBlU3BlY05hbWUgKyAnYCBpcyBpbnZhbGlkOyAnICtcbiAgICAgICAgICAgICAgJ2l0IG11c3QgYmUgYSBmdW5jdGlvbiwgdXN1YWxseSBmcm9tIHRoZSBgcHJvcC10eXBlc2AgcGFja2FnZSwgYnV0IHJlY2VpdmVkIGAnICsgdHlwZW9mIHR5cGVTcGVjc1t0eXBlU3BlY05hbWVdICsgJ2AuJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGVyci5uYW1lID0gJ0ludmFyaWFudCBWaW9sYXRpb24nO1xuICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlcnJvciA9IHR5cGVTcGVjc1t0eXBlU3BlY05hbWVdKHZhbHVlcywgdHlwZVNwZWNOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgbnVsbCwgUmVhY3RQcm9wVHlwZXNTZWNyZXQpO1xuICAgICAgICB9IGNhdGNoIChleCkge1xuICAgICAgICAgIGVycm9yID0gZXg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVycm9yICYmICEoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikpIHtcbiAgICAgICAgICBwcmludFdhcm5pbmcoXG4gICAgICAgICAgICAoY29tcG9uZW50TmFtZSB8fCAnUmVhY3QgY2xhc3MnKSArICc6IHR5cGUgc3BlY2lmaWNhdGlvbiBvZiAnICtcbiAgICAgICAgICAgIGxvY2F0aW9uICsgJyBgJyArIHR5cGVTcGVjTmFtZSArICdgIGlzIGludmFsaWQ7IHRoZSB0eXBlIGNoZWNrZXIgJyArXG4gICAgICAgICAgICAnZnVuY3Rpb24gbXVzdCByZXR1cm4gYG51bGxgIG9yIGFuIGBFcnJvcmAgYnV0IHJldHVybmVkIGEgJyArIHR5cGVvZiBlcnJvciArICcuICcgK1xuICAgICAgICAgICAgJ1lvdSBtYXkgaGF2ZSBmb3Jnb3R0ZW4gdG8gcGFzcyBhbiBhcmd1bWVudCB0byB0aGUgdHlwZSBjaGVja2VyICcgK1xuICAgICAgICAgICAgJ2NyZWF0b3IgKGFycmF5T2YsIGluc3RhbmNlT2YsIG9iamVjdE9mLCBvbmVPZiwgb25lT2ZUeXBlLCBhbmQgJyArXG4gICAgICAgICAgICAnc2hhcGUgYWxsIHJlcXVpcmUgYW4gYXJndW1lbnQpLidcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yICYmICEoZXJyb3IubWVzc2FnZSBpbiBsb2dnZWRUeXBlRmFpbHVyZXMpKSB7XG4gICAgICAgICAgLy8gT25seSBtb25pdG9yIHRoaXMgZmFpbHVyZSBvbmNlIGJlY2F1c2UgdGhlcmUgdGVuZHMgdG8gYmUgYSBsb3Qgb2YgdGhlXG4gICAgICAgICAgLy8gc2FtZSBlcnJvci5cbiAgICAgICAgICBsb2dnZWRUeXBlRmFpbHVyZXNbZXJyb3IubWVzc2FnZV0gPSB0cnVlO1xuXG4gICAgICAgICAgdmFyIHN0YWNrID0gZ2V0U3RhY2sgPyBnZXRTdGFjaygpIDogJyc7XG5cbiAgICAgICAgICBwcmludFdhcm5pbmcoXG4gICAgICAgICAgICAnRmFpbGVkICcgKyBsb2NhdGlvbiArICcgdHlwZTogJyArIGVycm9yLm1lc3NhZ2UgKyAoc3RhY2sgIT0gbnVsbCA/IHN0YWNrIDogJycpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFJlc2V0cyB3YXJuaW5nIGNhY2hlIHdoZW4gdGVzdGluZy5cbiAqXG4gKiBAcHJpdmF0ZVxuICovXG5jaGVja1Byb3BUeXBlcy5yZXNldFdhcm5pbmdDYWNoZSA9IGZ1bmN0aW9uKCkge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGxvZ2dlZFR5cGVGYWlsdXJlcyA9IHt9O1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY2hlY2tQcm9wVHlwZXM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/prop-types/checkPropTypes.js\n"); + +/***/ }), + +/***/ "./node_modules/prop-types/factoryWithTypeCheckers.js": +/*!************************************************************!*\ + !*** ./node_modules/prop-types/factoryWithTypeCheckers.js ***! + \************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\n\n\nvar ReactIs = __webpack_require__(/*! react-is */ \"./node_modules/prop-types/node_modules/react-is/index.js\");\nvar assign = __webpack_require__(/*! object-assign */ \"./node_modules/next/dist/build/polyfills/object-assign.js\");\n\nvar ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ \"./node_modules/prop-types/lib/ReactPropTypesSecret.js\");\nvar checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ \"./node_modules/prop-types/checkPropTypes.js\");\n\nvar has = Function.call.bind(Object.prototype.hasOwnProperty);\nvar printWarning = function() {};\n\nif (true) {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (true) {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if ( true && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (true) {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n true ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9mYWN0b3J5V2l0aFR5cGVDaGVja2Vycy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWE7O0FBRWIsY0FBYyxtQkFBTyxDQUFDLDBFQUFVO0FBQ2hDLGFBQWEsbUJBQU8sQ0FBQyxnRkFBZTs7QUFFcEMsMkJBQTJCLG1CQUFPLENBQUMseUZBQTRCO0FBQy9ELHFCQUFxQixtQkFBTyxDQUFDLHFFQUFrQjs7QUFFL0M7QUFDQTs7QUFFQSxJQUFJLElBQXFDO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQzs7QUFFM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsU0FBUztBQUN0QixjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWLDhCQUE4QjtBQUM5QixRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQkFBK0IsS0FBSztBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULDRCQUE0QjtBQUM1QixPQUFPO0FBQ1A7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxRQUFRLElBQXFDO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVUsU0FBUyxLQUFxQztBQUN4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixzQkFBc0I7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxVQUFVLElBQXFDO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0Esc0JBQXNCLDJCQUEyQjtBQUNqRDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU0sS0FBcUMsNEZBQTRGLENBQU07QUFDN0k7QUFDQTs7QUFFQSxvQkFBb0IsZ0NBQWdDO0FBQ3BEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHNCQUFzQixnQ0FBZ0M7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QjtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9mYWN0b3J5V2l0aFR5cGVDaGVja2Vycy5qcz9iNzZiIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUmVhY3RJcyA9IHJlcXVpcmUoJ3JlYWN0LWlzJyk7XG52YXIgYXNzaWduID0gcmVxdWlyZSgnb2JqZWN0LWFzc2lnbicpO1xuXG52YXIgUmVhY3RQcm9wVHlwZXNTZWNyZXQgPSByZXF1aXJlKCcuL2xpYi9SZWFjdFByb3BUeXBlc1NlY3JldCcpO1xudmFyIGNoZWNrUHJvcFR5cGVzID0gcmVxdWlyZSgnLi9jaGVja1Byb3BUeXBlcycpO1xuXG52YXIgaGFzID0gRnVuY3Rpb24uY2FsbC5iaW5kKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkpO1xudmFyIHByaW50V2FybmluZyA9IGZ1bmN0aW9uKCkge307XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIHByaW50V2FybmluZyA9IGZ1bmN0aW9uKHRleHQpIHtcbiAgICB2YXIgbWVzc2FnZSA9ICdXYXJuaW5nOiAnICsgdGV4dDtcbiAgICBpZiAodHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBjb25zb2xlLmVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgLy8gLS0tIFdlbGNvbWUgdG8gZGVidWdnaW5nIFJlYWN0IC0tLVxuICAgICAgLy8gVGhpcyBlcnJvciB3YXMgdGhyb3duIGFzIGEgY29udmVuaWVuY2Ugc28gdGhhdCB5b3UgY2FuIHVzZSB0aGlzIHN0YWNrXG4gICAgICAvLyB0byBmaW5kIHRoZSBjYWxsc2l0ZSB0aGF0IGNhdXNlZCB0aGlzIHdhcm5pbmcgdG8gZmlyZS5cbiAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgICB9IGNhdGNoICh4KSB7fVxuICB9O1xufVxuXG5mdW5jdGlvbiBlbXB0eUZ1bmN0aW9uVGhhdFJldHVybnNOdWxsKCkge1xuICByZXR1cm4gbnVsbDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihpc1ZhbGlkRWxlbWVudCwgdGhyb3dPbkRpcmVjdEFjY2Vzcykge1xuICAvKiBnbG9iYWwgU3ltYm9sICovXG4gIHZhciBJVEVSQVRPUl9TWU1CT0wgPSB0eXBlb2YgU3ltYm9sID09PSAnZnVuY3Rpb24nICYmIFN5bWJvbC5pdGVyYXRvcjtcbiAgdmFyIEZBVVhfSVRFUkFUT1JfU1lNQk9MID0gJ0BAaXRlcmF0b3InOyAvLyBCZWZvcmUgU3ltYm9sIHNwZWMuXG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGl0ZXJhdG9yIG1ldGhvZCBmdW5jdGlvbiBjb250YWluZWQgb24gdGhlIGl0ZXJhYmxlIG9iamVjdC5cbiAgICpcbiAgICogQmUgc3VyZSB0byBpbnZva2UgdGhlIGZ1bmN0aW9uIHdpdGggdGhlIGl0ZXJhYmxlIGFzIGNvbnRleHQ6XG4gICAqXG4gICAqICAgICB2YXIgaXRlcmF0b3JGbiA9IGdldEl0ZXJhdG9yRm4obXlJdGVyYWJsZSk7XG4gICAqICAgICBpZiAoaXRlcmF0b3JGbikge1xuICAgKiAgICAgICB2YXIgaXRlcmF0b3IgPSBpdGVyYXRvckZuLmNhbGwobXlJdGVyYWJsZSk7XG4gICAqICAgICAgIC4uLlxuICAgKiAgICAgfVxuICAgKlxuICAgKiBAcGFyYW0gez9vYmplY3R9IG1heWJlSXRlcmFibGVcbiAgICogQHJldHVybiB7P2Z1bmN0aW9ufVxuICAgKi9cbiAgZnVuY3Rpb24gZ2V0SXRlcmF0b3JGbihtYXliZUl0ZXJhYmxlKSB7XG4gICAgdmFyIGl0ZXJhdG9yRm4gPSBtYXliZUl0ZXJhYmxlICYmIChJVEVSQVRPUl9TWU1CT0wgJiYgbWF5YmVJdGVyYWJsZVtJVEVSQVRPUl9TWU1CT0xdIHx8IG1heWJlSXRlcmFibGVbRkFVWF9JVEVSQVRPUl9TWU1CT0xdKTtcbiAgICBpZiAodHlwZW9mIGl0ZXJhdG9yRm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiBpdGVyYXRvckZuO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDb2xsZWN0aW9uIG9mIG1ldGhvZHMgdGhhdCBhbGxvdyBkZWNsYXJhdGlvbiBhbmQgdmFsaWRhdGlvbiBvZiBwcm9wcyB0aGF0IGFyZVxuICAgKiBzdXBwbGllZCB0byBSZWFjdCBjb21wb25lbnRzLiBFeGFtcGxlIHVzYWdlOlxuICAgKlxuICAgKiAgIHZhciBQcm9wcyA9IHJlcXVpcmUoJ1JlYWN0UHJvcFR5cGVzJyk7XG4gICAqICAgdmFyIE15QXJ0aWNsZSA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtcbiAgICogICAgIHByb3BUeXBlczoge1xuICAgKiAgICAgICAvLyBBbiBvcHRpb25hbCBzdHJpbmcgcHJvcCBuYW1lZCBcImRlc2NyaXB0aW9uXCIuXG4gICAqICAgICAgIGRlc2NyaXB0aW9uOiBQcm9wcy5zdHJpbmcsXG4gICAqXG4gICAqICAgICAgIC8vIEEgcmVxdWlyZWQgZW51bSBwcm9wIG5hbWVkIFwiY2F0ZWdvcnlcIi5cbiAgICogICAgICAgY2F0ZWdvcnk6IFByb3BzLm9uZU9mKFsnTmV3cycsJ1Bob3RvcyddKS5pc1JlcXVpcmVkLFxuICAgKlxuICAgKiAgICAgICAvLyBBIHByb3AgbmFtZWQgXCJkaWFsb2dcIiB0aGF0IHJlcXVpcmVzIGFuIGluc3RhbmNlIG9mIERpYWxvZy5cbiAgICogICAgICAgZGlhbG9nOiBQcm9wcy5pbnN0YW5jZU9mKERpYWxvZykuaXNSZXF1aXJlZFxuICAgKiAgICAgfSxcbiAgICogICAgIHJlbmRlcjogZnVuY3Rpb24oKSB7IC4uLiB9XG4gICAqICAgfSk7XG4gICAqXG4gICAqIEEgbW9yZSBmb3JtYWwgc3BlY2lmaWNhdGlvbiBvZiBob3cgdGhlc2UgbWV0aG9kcyBhcmUgdXNlZDpcbiAgICpcbiAgICogICB0eXBlIDo9IGFycmF5fGJvb2x8ZnVuY3xvYmplY3R8bnVtYmVyfHN0cmluZ3xvbmVPZihbLi4uXSl8aW5zdGFuY2VPZiguLi4pXG4gICAqICAgZGVjbCA6PSBSZWFjdFByb3BUeXBlcy57dHlwZX0oLmlzUmVxdWlyZWQpP1xuICAgKlxuICAgKiBFYWNoIGFuZCBldmVyeSBkZWNsYXJhdGlvbiBwcm9kdWNlcyBhIGZ1bmN0aW9uIHdpdGggdGhlIHNhbWUgc2lnbmF0dXJlLiBUaGlzXG4gICAqIGFsbG93cyB0aGUgY3JlYXRpb24gb2YgY3VzdG9tIHZhbGlkYXRpb24gZnVuY3Rpb25zLiBGb3IgZXhhbXBsZTpcbiAgICpcbiAgICogIHZhciBNeUxpbmsgPSBSZWFjdC5jcmVhdGVDbGFzcyh7XG4gICAqICAgIHByb3BUeXBlczoge1xuICAgKiAgICAgIC8vIEFuIG9wdGlvbmFsIHN0cmluZyBvciBVUkkgcHJvcCBuYW1lZCBcImhyZWZcIi5cbiAgICogICAgICBocmVmOiBmdW5jdGlvbihwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUpIHtcbiAgICogICAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wTmFtZV07XG4gICAqICAgICAgICBpZiAocHJvcFZhbHVlICE9IG51bGwgJiYgdHlwZW9mIHByb3BWYWx1ZSAhPT0gJ3N0cmluZycgJiZcbiAgICogICAgICAgICAgICAhKHByb3BWYWx1ZSBpbnN0YW5jZW9mIFVSSSkpIHtcbiAgICogICAgICAgICAgcmV0dXJuIG5ldyBFcnJvcihcbiAgICogICAgICAgICAgICAnRXhwZWN0ZWQgYSBzdHJpbmcgb3IgYW4gVVJJIGZvciAnICsgcHJvcE5hbWUgKyAnIGluICcgK1xuICAgKiAgICAgICAgICAgIGNvbXBvbmVudE5hbWVcbiAgICogICAgICAgICAgKTtcbiAgICogICAgICAgIH1cbiAgICogICAgICB9XG4gICAqICAgIH0sXG4gICAqICAgIHJlbmRlcjogZnVuY3Rpb24oKSB7Li4ufVxuICAgKiAgfSk7XG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cblxuICB2YXIgQU5PTllNT1VTID0gJzw8YW5vbnltb3VzPj4nO1xuXG4gIC8vIEltcG9ydGFudCFcbiAgLy8gS2VlcCB0aGlzIGxpc3QgaW4gc3luYyB3aXRoIHByb2R1Y3Rpb24gdmVyc2lvbiBpbiBgLi9mYWN0b3J5V2l0aFRocm93aW5nU2hpbXMuanNgLlxuICB2YXIgUmVhY3RQcm9wVHlwZXMgPSB7XG4gICAgYXJyYXk6IGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyKCdhcnJheScpLFxuICAgIGJvb2w6IGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyKCdib29sZWFuJyksXG4gICAgZnVuYzogY3JlYXRlUHJpbWl0aXZlVHlwZUNoZWNrZXIoJ2Z1bmN0aW9uJyksXG4gICAgbnVtYmVyOiBjcmVhdGVQcmltaXRpdmVUeXBlQ2hlY2tlcignbnVtYmVyJyksXG4gICAgb2JqZWN0OiBjcmVhdGVQcmltaXRpdmVUeXBlQ2hlY2tlcignb2JqZWN0JyksXG4gICAgc3RyaW5nOiBjcmVhdGVQcmltaXRpdmVUeXBlQ2hlY2tlcignc3RyaW5nJyksXG4gICAgc3ltYm9sOiBjcmVhdGVQcmltaXRpdmVUeXBlQ2hlY2tlcignc3ltYm9sJyksXG5cbiAgICBhbnk6IGNyZWF0ZUFueVR5cGVDaGVja2VyKCksXG4gICAgYXJyYXlPZjogY3JlYXRlQXJyYXlPZlR5cGVDaGVja2VyLFxuICAgIGVsZW1lbnQ6IGNyZWF0ZUVsZW1lbnRUeXBlQ2hlY2tlcigpLFxuICAgIGVsZW1lbnRUeXBlOiBjcmVhdGVFbGVtZW50VHlwZVR5cGVDaGVja2VyKCksXG4gICAgaW5zdGFuY2VPZjogY3JlYXRlSW5zdGFuY2VUeXBlQ2hlY2tlcixcbiAgICBub2RlOiBjcmVhdGVOb2RlQ2hlY2tlcigpLFxuICAgIG9iamVjdE9mOiBjcmVhdGVPYmplY3RPZlR5cGVDaGVja2VyLFxuICAgIG9uZU9mOiBjcmVhdGVFbnVtVHlwZUNoZWNrZXIsXG4gICAgb25lT2ZUeXBlOiBjcmVhdGVVbmlvblR5cGVDaGVja2VyLFxuICAgIHNoYXBlOiBjcmVhdGVTaGFwZVR5cGVDaGVja2VyLFxuICAgIGV4YWN0OiBjcmVhdGVTdHJpY3RTaGFwZVR5cGVDaGVja2VyLFxuICB9O1xuXG4gIC8qKlxuICAgKiBpbmxpbmVkIE9iamVjdC5pcyBwb2x5ZmlsbCB0byBhdm9pZCByZXF1aXJpbmcgY29uc3VtZXJzIHNoaXAgdGhlaXIgb3duXG4gICAqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL09iamVjdC9pc1xuICAgKi9cbiAgLyplc2xpbnQtZGlzYWJsZSBuby1zZWxmLWNvbXBhcmUqL1xuICBmdW5jdGlvbiBpcyh4LCB5KSB7XG4gICAgLy8gU2FtZVZhbHVlIGFsZ29yaXRobVxuICAgIGlmICh4ID09PSB5KSB7XG4gICAgICAvLyBTdGVwcyAxLTUsIDctMTBcbiAgICAgIC8vIFN0ZXBzIDYuYi02LmU6ICswICE9IC0wXG4gICAgICByZXR1cm4geCAhPT0gMCB8fCAxIC8geCA9PT0gMSAvIHk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFN0ZXAgNi5hOiBOYU4gPT0gTmFOXG4gICAgICByZXR1cm4geCAhPT0geCAmJiB5ICE9PSB5O1xuICAgIH1cbiAgfVxuICAvKmVzbGludC1lbmFibGUgbm8tc2VsZi1jb21wYXJlKi9cblxuICAvKipcbiAgICogV2UgdXNlIGFuIEVycm9yLWxpa2Ugb2JqZWN0IGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGFzIHBlb3BsZSBtYXkgY2FsbFxuICAgKiBQcm9wVHlwZXMgZGlyZWN0bHkgYW5kIGluc3BlY3QgdGhlaXIgb3V0cHV0LiBIb3dldmVyLCB3ZSBkb24ndCB1c2UgcmVhbFxuICAgKiBFcnJvcnMgYW55bW9yZS4gV2UgZG9uJ3QgaW5zcGVjdCB0aGVpciBzdGFjayBhbnl3YXksIGFuZCBjcmVhdGluZyB0aGVtXG4gICAqIGlzIHByb2hpYml0aXZlbHkgZXhwZW5zaXZlIGlmIHRoZXkgYXJlIGNyZWF0ZWQgdG9vIG9mdGVuLCBzdWNoIGFzIHdoYXRcbiAgICogaGFwcGVucyBpbiBvbmVPZlR5cGUoKSBmb3IgYW55IHR5cGUgYmVmb3JlIHRoZSBvbmUgdGhhdCBtYXRjaGVkLlxuICAgKi9cbiAgZnVuY3Rpb24gUHJvcFR5cGVFcnJvcihtZXNzYWdlKSB7XG4gICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZTtcbiAgICB0aGlzLnN0YWNrID0gJyc7XG4gIH1cbiAgLy8gTWFrZSBgaW5zdGFuY2VvZiBFcnJvcmAgc3RpbGwgd29yayBmb3IgcmV0dXJuZWQgZXJyb3JzLlxuICBQcm9wVHlwZUVycm9yLnByb3RvdHlwZSA9IEVycm9yLnByb3RvdHlwZTtcblxuICBmdW5jdGlvbiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSkge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICB2YXIgbWFudWFsUHJvcFR5cGVDYWxsQ2FjaGUgPSB7fTtcbiAgICAgIHZhciBtYW51YWxQcm9wVHlwZVdhcm5pbmdDb3VudCA9IDA7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNoZWNrVHlwZShpc1JlcXVpcmVkLCBwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUsIHNlY3JldCkge1xuICAgICAgY29tcG9uZW50TmFtZSA9IGNvbXBvbmVudE5hbWUgfHwgQU5PTllNT1VTO1xuICAgICAgcHJvcEZ1bGxOYW1lID0gcHJvcEZ1bGxOYW1lIHx8IHByb3BOYW1lO1xuXG4gICAgICBpZiAoc2VjcmV0ICE9PSBSZWFjdFByb3BUeXBlc1NlY3JldCkge1xuICAgICAgICBpZiAodGhyb3dPbkRpcmVjdEFjY2Vzcykge1xuICAgICAgICAgIC8vIE5ldyBiZWhhdmlvciBvbmx5IGZvciB1c2VycyBvZiBgcHJvcC10eXBlc2AgcGFja2FnZVxuICAgICAgICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoXG4gICAgICAgICAgICAnQ2FsbGluZyBQcm9wVHlwZXMgdmFsaWRhdG9ycyBkaXJlY3RseSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBgcHJvcC10eXBlc2AgcGFja2FnZS4gJyArXG4gICAgICAgICAgICAnVXNlIGBQcm9wVHlwZXMuY2hlY2tQcm9wVHlwZXMoKWAgdG8gY2FsbCB0aGVtLiAnICtcbiAgICAgICAgICAgICdSZWFkIG1vcmUgYXQgaHR0cDovL2ZiLm1lL3VzZS1jaGVjay1wcm9wLXR5cGVzJ1xuICAgICAgICAgICk7XG4gICAgICAgICAgZXJyLm5hbWUgPSAnSW52YXJpYW50IFZpb2xhdGlvbic7XG4gICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICB9IGVsc2UgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgdHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgLy8gT2xkIGJlaGF2aW9yIGZvciBwZW9wbGUgdXNpbmcgUmVhY3QuUHJvcFR5cGVzXG4gICAgICAgICAgdmFyIGNhY2hlS2V5ID0gY29tcG9uZW50TmFtZSArICc6JyArIHByb3BOYW1lO1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICFtYW51YWxQcm9wVHlwZUNhbGxDYWNoZVtjYWNoZUtleV0gJiZcbiAgICAgICAgICAgIC8vIEF2b2lkIHNwYW1taW5nIHRoZSBjb25zb2xlIGJlY2F1c2UgdGhleSBhcmUgb2Z0ZW4gbm90IGFjdGlvbmFibGUgZXhjZXB0IGZvciBsaWIgYXV0aG9yc1xuICAgICAgICAgICAgbWFudWFsUHJvcFR5cGVXYXJuaW5nQ291bnQgPCAzXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBwcmludFdhcm5pbmcoXG4gICAgICAgICAgICAgICdZb3UgYXJlIG1hbnVhbGx5IGNhbGxpbmcgYSBSZWFjdC5Qcm9wVHlwZXMgdmFsaWRhdGlvbiAnICtcbiAgICAgICAgICAgICAgJ2Z1bmN0aW9uIGZvciB0aGUgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBwcm9wIG9uIGAnICsgY29tcG9uZW50TmFtZSAgKyAnYC4gVGhpcyBpcyBkZXByZWNhdGVkICcgK1xuICAgICAgICAgICAgICAnYW5kIHdpbGwgdGhyb3cgaW4gdGhlIHN0YW5kYWxvbmUgYHByb3AtdHlwZXNgIHBhY2thZ2UuICcgK1xuICAgICAgICAgICAgICAnWW91IG1heSBiZSBzZWVpbmcgdGhpcyB3YXJuaW5nIGR1ZSB0byBhIHRoaXJkLXBhcnR5IFByb3BUeXBlcyAnICtcbiAgICAgICAgICAgICAgJ2xpYnJhcnkuIFNlZSBodHRwczovL2ZiLm1lL3JlYWN0LXdhcm5pbmctZG9udC1jYWxsLXByb3B0eXBlcyAnICsgJ2ZvciBkZXRhaWxzLidcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBtYW51YWxQcm9wVHlwZUNhbGxDYWNoZVtjYWNoZUtleV0gPSB0cnVlO1xuICAgICAgICAgICAgbWFudWFsUHJvcFR5cGVXYXJuaW5nQ291bnQrKztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChwcm9wc1twcm9wTmFtZV0gPT0gbnVsbCkge1xuICAgICAgICBpZiAoaXNSZXF1aXJlZCkge1xuICAgICAgICAgIGlmIChwcm9wc1twcm9wTmFtZV0gPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignVGhlICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBpcyBtYXJrZWQgYXMgcmVxdWlyZWQgJyArICgnaW4gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGJ1dCBpdHMgdmFsdWUgaXMgYG51bGxgLicpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdUaGUgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIGlzIG1hcmtlZCBhcyByZXF1aXJlZCBpbiAnICsgKCdgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgYnV0IGl0cyB2YWx1ZSBpcyBgdW5kZWZpbmVkYC4nKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdmFsaWRhdGUocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgY2hhaW5lZENoZWNrVHlwZSA9IGNoZWNrVHlwZS5iaW5kKG51bGwsIGZhbHNlKTtcbiAgICBjaGFpbmVkQ2hlY2tUeXBlLmlzUmVxdWlyZWQgPSBjaGVja1R5cGUuYmluZChudWxsLCB0cnVlKTtcblxuICAgIHJldHVybiBjaGFpbmVkQ2hlY2tUeXBlO1xuICB9XG5cbiAgZnVuY3Rpb24gY3JlYXRlUHJpbWl0aXZlVHlwZUNoZWNrZXIoZXhwZWN0ZWRUeXBlKSB7XG4gICAgZnVuY3Rpb24gdmFsaWRhdGUocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lLCBzZWNyZXQpIHtcbiAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wTmFtZV07XG4gICAgICB2YXIgcHJvcFR5cGUgPSBnZXRQcm9wVHlwZShwcm9wVmFsdWUpO1xuICAgICAgaWYgKHByb3BUeXBlICE9PSBleHBlY3RlZFR5cGUpIHtcbiAgICAgICAgLy8gYHByb3BWYWx1ZWAgYmVpbmcgaW5zdGFuY2Ugb2YsIHNheSwgZGF0ZS9yZWdleHAsIHBhc3MgdGhlICdvYmplY3QnXG4gICAgICAgIC8vIGNoZWNrLCBidXQgd2UgY2FuIG9mZmVyIGEgbW9yZSBwcmVjaXNlIGVycm9yIG1lc3NhZ2UgaGVyZSByYXRoZXIgdGhhblxuICAgICAgICAvLyAnb2YgdHlwZSBgb2JqZWN0YCcuXG4gICAgICAgIHZhciBwcmVjaXNlVHlwZSA9IGdldFByZWNpc2VUeXBlKHByb3BWYWx1ZSk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB0eXBlICcgKyAoJ2AnICsgcHJlY2lzZVR5cGUgKyAnYCBzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgJykgKyAoJ2AnICsgZXhwZWN0ZWRUeXBlICsgJ2AuJykpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVBbnlUeXBlQ2hlY2tlcigpIHtcbiAgICByZXR1cm4gY3JlYXRlQ2hhaW5hYmxlVHlwZUNoZWNrZXIoZW1wdHlGdW5jdGlvblRoYXRSZXR1cm5zTnVsbCk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVBcnJheU9mVHlwZUNoZWNrZXIodHlwZUNoZWNrZXIpIHtcbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIGlmICh0eXBlb2YgdHlwZUNoZWNrZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdQcm9wZXJ0eSBgJyArIHByb3BGdWxsTmFtZSArICdgIG9mIGNvbXBvbmVudCBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCBoYXMgaW52YWxpZCBQcm9wVHlwZSBub3RhdGlvbiBpbnNpZGUgYXJyYXlPZi4nKTtcbiAgICAgIH1cbiAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wTmFtZV07XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkocHJvcFZhbHVlKSkge1xuICAgICAgICB2YXIgcHJvcFR5cGUgPSBnZXRQcm9wVHlwZShwcm9wVmFsdWUpO1xuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIG9mIHR5cGUgJyArICgnYCcgKyBwcm9wVHlwZSArICdgIHN1cHBsaWVkIHRvIGAnICsgY29tcG9uZW50TmFtZSArICdgLCBleHBlY3RlZCBhbiBhcnJheS4nKSk7XG4gICAgICB9XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BWYWx1ZS5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgZXJyb3IgPSB0eXBlQ2hlY2tlcihwcm9wVmFsdWUsIGksIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUgKyAnWycgKyBpICsgJ10nLCBSZWFjdFByb3BUeXBlc1NlY3JldCk7XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnRUeXBlQ2hlY2tlcigpIHtcbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wTmFtZV07XG4gICAgICBpZiAoIWlzVmFsaWRFbGVtZW50KHByb3BWYWx1ZSkpIHtcbiAgICAgICAgdmFyIHByb3BUeXBlID0gZ2V0UHJvcFR5cGUocHJvcFZhbHVlKTtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB0eXBlICcgKyAoJ2AnICsgcHJvcFR5cGUgKyAnYCBzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgYSBzaW5nbGUgUmVhY3RFbGVtZW50LicpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gY3JlYXRlQ2hhaW5hYmxlVHlwZUNoZWNrZXIodmFsaWRhdGUpO1xuICB9XG5cbiAgZnVuY3Rpb24gY3JlYXRlRWxlbWVudFR5cGVUeXBlQ2hlY2tlcigpIHtcbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wTmFtZV07XG4gICAgICBpZiAoIVJlYWN0SXMuaXNWYWxpZEVsZW1lbnRUeXBlKHByb3BWYWx1ZSkpIHtcbiAgICAgICAgdmFyIHByb3BUeXBlID0gZ2V0UHJvcFR5cGUocHJvcFZhbHVlKTtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB0eXBlICcgKyAoJ2AnICsgcHJvcFR5cGUgKyAnYCBzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgYSBzaW5nbGUgUmVhY3RFbGVtZW50IHR5cGUuJykpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVJbnN0YW5jZVR5cGVDaGVja2VyKGV4cGVjdGVkQ2xhc3MpIHtcbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIGlmICghKHByb3BzW3Byb3BOYW1lXSBpbnN0YW5jZW9mIGV4cGVjdGVkQ2xhc3MpKSB7XG4gICAgICAgIHZhciBleHBlY3RlZENsYXNzTmFtZSA9IGV4cGVjdGVkQ2xhc3MubmFtZSB8fCBBTk9OWU1PVVM7XG4gICAgICAgIHZhciBhY3R1YWxDbGFzc05hbWUgPSBnZXRDbGFzc05hbWUocHJvcHNbcHJvcE5hbWVdKTtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB0eXBlICcgKyAoJ2AnICsgYWN0dWFsQ2xhc3NOYW1lICsgJ2Agc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkICcpICsgKCdpbnN0YW5jZSBvZiBgJyArIGV4cGVjdGVkQ2xhc3NOYW1lICsgJ2AuJykpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVFbnVtVHlwZUNoZWNrZXIoZXhwZWN0ZWRWYWx1ZXMpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoZXhwZWN0ZWRWYWx1ZXMpKSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICBwcmludFdhcm5pbmcoXG4gICAgICAgICAgICAnSW52YWxpZCBhcmd1bWVudHMgc3VwcGxpZWQgdG8gb25lT2YsIGV4cGVjdGVkIGFuIGFycmF5LCBnb3QgJyArIGFyZ3VtZW50cy5sZW5ndGggKyAnIGFyZ3VtZW50cy4gJyArXG4gICAgICAgICAgICAnQSBjb21tb24gbWlzdGFrZSBpcyB0byB3cml0ZSBvbmVPZih4LCB5LCB6KSBpbnN0ZWFkIG9mIG9uZU9mKFt4LCB5LCB6XSkuJ1xuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcHJpbnRXYXJuaW5nKCdJbnZhbGlkIGFyZ3VtZW50IHN1cHBsaWVkIHRvIG9uZU9mLCBleHBlY3RlZCBhbiBhcnJheS4nKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGVtcHR5RnVuY3Rpb25UaGF0UmV0dXJuc051bGw7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdmFsaWRhdGUocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lKSB7XG4gICAgICB2YXIgcHJvcFZhbHVlID0gcHJvcHNbcHJvcE5hbWVdO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBleHBlY3RlZFZhbHVlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoaXMocHJvcFZhbHVlLCBleHBlY3RlZFZhbHVlc1tpXSkpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB2YXIgdmFsdWVzU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoZXhwZWN0ZWRWYWx1ZXMsIGZ1bmN0aW9uIHJlcGxhY2VyKGtleSwgdmFsdWUpIHtcbiAgICAgICAgdmFyIHR5cGUgPSBnZXRQcmVjaXNlVHlwZSh2YWx1ZSk7XG4gICAgICAgIGlmICh0eXBlID09PSAnc3ltYm9sJykge1xuICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB2YWx1ZSBgJyArIFN0cmluZyhwcm9wVmFsdWUpICsgJ2AgJyArICgnc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkIG9uZSBvZiAnICsgdmFsdWVzU3RyaW5nICsgJy4nKSk7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVPYmplY3RPZlR5cGVDaGVja2VyKHR5cGVDaGVja2VyKSB7XG4gICAgZnVuY3Rpb24gdmFsaWRhdGUocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lKSB7XG4gICAgICBpZiAodHlwZW9mIHR5cGVDaGVja2VyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignUHJvcGVydHkgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiBjb21wb25lbnQgYCcgKyBjb21wb25lbnROYW1lICsgJ2AgaGFzIGludmFsaWQgUHJvcFR5cGUgbm90YXRpb24gaW5zaWRlIG9iamVjdE9mLicpO1xuICAgICAgfVxuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICAgIHZhciBwcm9wVHlwZSA9IGdldFByb3BUeXBlKHByb3BWYWx1ZSk7XG4gICAgICBpZiAocHJvcFR5cGUgIT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignSW52YWxpZCAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Agb2YgdHlwZSAnICsgKCdgJyArIHByb3BUeXBlICsgJ2Agc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkIGFuIG9iamVjdC4nKSk7XG4gICAgICB9XG4gICAgICBmb3IgKHZhciBrZXkgaW4gcHJvcFZhbHVlKSB7XG4gICAgICAgIGlmIChoYXMocHJvcFZhbHVlLCBrZXkpKSB7XG4gICAgICAgICAgdmFyIGVycm9yID0gdHlwZUNoZWNrZXIocHJvcFZhbHVlLCBrZXksIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUgKyAnLicgKyBrZXksIFJlYWN0UHJvcFR5cGVzU2VjcmV0KTtcbiAgICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVVbmlvblR5cGVDaGVja2VyKGFycmF5T2ZUeXBlQ2hlY2tlcnMpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoYXJyYXlPZlR5cGVDaGVja2VycykpIHtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBwcmludFdhcm5pbmcoJ0ludmFsaWQgYXJndW1lbnQgc3VwcGxpZWQgdG8gb25lT2ZUeXBlLCBleHBlY3RlZCBhbiBpbnN0YW5jZSBvZiBhcnJheS4nKSA6IHZvaWQgMDtcbiAgICAgIHJldHVybiBlbXB0eUZ1bmN0aW9uVGhhdFJldHVybnNOdWxsO1xuICAgIH1cblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXlPZlR5cGVDaGVja2Vycy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGNoZWNrZXIgPSBhcnJheU9mVHlwZUNoZWNrZXJzW2ldO1xuICAgICAgaWYgKHR5cGVvZiBjaGVja2VyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHByaW50V2FybmluZyhcbiAgICAgICAgICAnSW52YWxpZCBhcmd1bWVudCBzdXBwbGllZCB0byBvbmVPZlR5cGUuIEV4cGVjdGVkIGFuIGFycmF5IG9mIGNoZWNrIGZ1bmN0aW9ucywgYnV0ICcgK1xuICAgICAgICAgICdyZWNlaXZlZCAnICsgZ2V0UG9zdGZpeEZvclR5cGVXYXJuaW5nKGNoZWNrZXIpICsgJyBhdCBpbmRleCAnICsgaSArICcuJ1xuICAgICAgICApO1xuICAgICAgICByZXR1cm4gZW1wdHlGdW5jdGlvblRoYXRSZXR1cm5zTnVsbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXlPZlR5cGVDaGVja2Vycy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgY2hlY2tlciA9IGFycmF5T2ZUeXBlQ2hlY2tlcnNbaV07XG4gICAgICAgIGlmIChjaGVja2VyKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSwgUmVhY3RQcm9wVHlwZXNTZWNyZXQpID09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIHN1cHBsaWVkIHRvICcgKyAoJ2AnICsgY29tcG9uZW50TmFtZSArICdgLicpKTtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZU5vZGVDaGVja2VyKCkge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgaWYgKCFpc05vZGUocHJvcHNbcHJvcE5hbWVdKSkge1xuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIHN1cHBsaWVkIHRvICcgKyAoJ2AnICsgY29tcG9uZW50TmFtZSArICdgLCBleHBlY3RlZCBhIFJlYWN0Tm9kZS4nKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZVNoYXBlVHlwZUNoZWNrZXIoc2hhcGVUeXBlcykge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICAgIHZhciBwcm9wVHlwZSA9IGdldFByb3BUeXBlKHByb3BWYWx1ZSk7XG4gICAgICBpZiAocHJvcFR5cGUgIT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignSW52YWxpZCAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Agb2YgdHlwZSBgJyArIHByb3BUeXBlICsgJ2AgJyArICgnc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkIGBvYmplY3RgLicpKTtcbiAgICAgIH1cbiAgICAgIGZvciAodmFyIGtleSBpbiBzaGFwZVR5cGVzKSB7XG4gICAgICAgIHZhciBjaGVja2VyID0gc2hhcGVUeXBlc1trZXldO1xuICAgICAgICBpZiAoIWNoZWNrZXIpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZXJyb3IgPSBjaGVja2VyKHByb3BWYWx1ZSwga2V5LCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lICsgJy4nICsga2V5LCBSZWFjdFByb3BUeXBlc1NlY3JldCk7XG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgIHJldHVybiBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVTdHJpY3RTaGFwZVR5cGVDaGVja2VyKHNoYXBlVHlwZXMpIHtcbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wTmFtZV07XG4gICAgICB2YXIgcHJvcFR5cGUgPSBnZXRQcm9wVHlwZShwcm9wVmFsdWUpO1xuICAgICAgaWYgKHByb3BUeXBlICE9PSAnb2JqZWN0Jykge1xuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIG9mIHR5cGUgYCcgKyBwcm9wVHlwZSArICdgICcgKyAoJ3N1cHBsaWVkIHRvIGAnICsgY29tcG9uZW50TmFtZSArICdgLCBleHBlY3RlZCBgb2JqZWN0YC4nKSk7XG4gICAgICB9XG4gICAgICAvLyBXZSBuZWVkIHRvIGNoZWNrIGFsbCBrZXlzIGluIGNhc2Ugc29tZSBhcmUgcmVxdWlyZWQgYnV0IG1pc3NpbmcgZnJvbVxuICAgICAgLy8gcHJvcHMuXG4gICAgICB2YXIgYWxsS2V5cyA9IGFzc2lnbih7fSwgcHJvcHNbcHJvcE5hbWVdLCBzaGFwZVR5cGVzKTtcbiAgICAgIGZvciAodmFyIGtleSBpbiBhbGxLZXlzKSB7XG4gICAgICAgIHZhciBjaGVja2VyID0gc2hhcGVUeXBlc1trZXldO1xuICAgICAgICBpZiAoIWNoZWNrZXIpIHtcbiAgICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoXG4gICAgICAgICAgICAnSW52YWxpZCAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Aga2V5IGAnICsga2V5ICsgJ2Agc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AuJyArXG4gICAgICAgICAgICAnXFxuQmFkIG9iamVjdDogJyArIEpTT04uc3RyaW5naWZ5KHByb3BzW3Byb3BOYW1lXSwgbnVsbCwgJyAgJykgK1xuICAgICAgICAgICAgJ1xcblZhbGlkIGtleXM6ICcgKyAgSlNPTi5zdHJpbmdpZnkoT2JqZWN0LmtleXMoc2hhcGVUeXBlcyksIG51bGwsICcgICcpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZXJyb3IgPSBjaGVja2VyKHByb3BWYWx1ZSwga2V5LCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lICsgJy4nICsga2V5LCBSZWFjdFByb3BUeXBlc1NlY3JldCk7XG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgIHJldHVybiBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGlzTm9kZShwcm9wVmFsdWUpIHtcbiAgICBzd2l0Y2ggKHR5cGVvZiBwcm9wVmFsdWUpIHtcbiAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgY2FzZSAndW5kZWZpbmVkJzpcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICBjYXNlICdib29sZWFuJzpcbiAgICAgICAgcmV0dXJuICFwcm9wVmFsdWU7XG4gICAgICBjYXNlICdvYmplY3QnOlxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShwcm9wVmFsdWUpKSB7XG4gICAgICAgICAgcmV0dXJuIHByb3BWYWx1ZS5ldmVyeShpc05vZGUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwcm9wVmFsdWUgPT09IG51bGwgfHwgaXNWYWxpZEVsZW1lbnQocHJvcFZhbHVlKSkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGl0ZXJhdG9yRm4gPSBnZXRJdGVyYXRvckZuKHByb3BWYWx1ZSk7XG4gICAgICAgIGlmIChpdGVyYXRvckZuKSB7XG4gICAgICAgICAgdmFyIGl0ZXJhdG9yID0gaXRlcmF0b3JGbi5jYWxsKHByb3BWYWx1ZSk7XG4gICAgICAgICAgdmFyIHN0ZXA7XG4gICAgICAgICAgaWYgKGl0ZXJhdG9yRm4gIT09IHByb3BWYWx1ZS5lbnRyaWVzKSB7XG4gICAgICAgICAgICB3aGlsZSAoIShzdGVwID0gaXRlcmF0b3IubmV4dCgpKS5kb25lKSB7XG4gICAgICAgICAgICAgIGlmICghaXNOb2RlKHN0ZXAudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEl0ZXJhdG9yIHdpbGwgcHJvdmlkZSBlbnRyeSBbayx2XSB0dXBsZXMgcmF0aGVyIHRoYW4gdmFsdWVzLlxuICAgICAgICAgICAgd2hpbGUgKCEoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSkuZG9uZSkge1xuICAgICAgICAgICAgICB2YXIgZW50cnkgPSBzdGVwLnZhbHVlO1xuICAgICAgICAgICAgICBpZiAoZW50cnkpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWlzTm9kZShlbnRyeVsxXSkpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gaXNTeW1ib2wocHJvcFR5cGUsIHByb3BWYWx1ZSkge1xuICAgIC8vIE5hdGl2ZSBTeW1ib2wuXG4gICAgaWYgKHByb3BUeXBlID09PSAnc3ltYm9sJykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gZmFsc3kgdmFsdWUgY2FuJ3QgYmUgYSBTeW1ib2xcbiAgICBpZiAoIXByb3BWYWx1ZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIDE5LjQuMy41IFN5bWJvbC5wcm90b3R5cGVbQEB0b1N0cmluZ1RhZ10gPT09ICdTeW1ib2wnXG4gICAgaWYgKHByb3BWYWx1ZVsnQEB0b1N0cmluZ1RhZyddID09PSAnU3ltYm9sJykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gRmFsbGJhY2sgZm9yIG5vbi1zcGVjIGNvbXBsaWFudCBTeW1ib2xzIHdoaWNoIGFyZSBwb2x5ZmlsbGVkLlxuICAgIGlmICh0eXBlb2YgU3ltYm9sID09PSAnZnVuY3Rpb24nICYmIHByb3BWYWx1ZSBpbnN0YW5jZW9mIFN5bWJvbCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gRXF1aXZhbGVudCBvZiBgdHlwZW9mYCBidXQgd2l0aCBzcGVjaWFsIGhhbmRsaW5nIGZvciBhcnJheSBhbmQgcmVnZXhwLlxuICBmdW5jdGlvbiBnZXRQcm9wVHlwZShwcm9wVmFsdWUpIHtcbiAgICB2YXIgcHJvcFR5cGUgPSB0eXBlb2YgcHJvcFZhbHVlO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHByb3BWYWx1ZSkpIHtcbiAgICAgIHJldHVybiAnYXJyYXknO1xuICAgIH1cbiAgICBpZiAocHJvcFZhbHVlIGluc3RhbmNlb2YgUmVnRXhwKSB7XG4gICAgICAvLyBPbGQgd2Via2l0cyAoYXQgbGVhc3QgdW50aWwgQW5kcm9pZCA0LjApIHJldHVybiAnZnVuY3Rpb24nIHJhdGhlciB0aGFuXG4gICAgICAvLyAnb2JqZWN0JyBmb3IgdHlwZW9mIGEgUmVnRXhwLiBXZSdsbCBub3JtYWxpemUgdGhpcyBoZXJlIHNvIHRoYXQgL2JsYS9cbiAgICAgIC8vIHBhc3NlcyBQcm9wVHlwZXMub2JqZWN0LlxuICAgICAgcmV0dXJuICdvYmplY3QnO1xuICAgIH1cbiAgICBpZiAoaXNTeW1ib2wocHJvcFR5cGUsIHByb3BWYWx1ZSkpIHtcbiAgICAgIHJldHVybiAnc3ltYm9sJztcbiAgICB9XG4gICAgcmV0dXJuIHByb3BUeXBlO1xuICB9XG5cbiAgLy8gVGhpcyBoYW5kbGVzIG1vcmUgdHlwZXMgdGhhbiBgZ2V0UHJvcFR5cGVgLiBPbmx5IHVzZWQgZm9yIGVycm9yIG1lc3NhZ2VzLlxuICAvLyBTZWUgYGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyYC5cbiAgZnVuY3Rpb24gZ2V0UHJlY2lzZVR5cGUocHJvcFZhbHVlKSB7XG4gICAgaWYgKHR5cGVvZiBwcm9wVmFsdWUgPT09ICd1bmRlZmluZWQnIHx8IHByb3BWYWx1ZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuICcnICsgcHJvcFZhbHVlO1xuICAgIH1cbiAgICB2YXIgcHJvcFR5cGUgPSBnZXRQcm9wVHlwZShwcm9wVmFsdWUpO1xuICAgIGlmIChwcm9wVHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGlmIChwcm9wVmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgIHJldHVybiAnZGF0ZSc7XG4gICAgICB9IGVsc2UgaWYgKHByb3BWYWx1ZSBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgICByZXR1cm4gJ3JlZ2V4cCc7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwcm9wVHlwZTtcbiAgfVxuXG4gIC8vIFJldHVybnMgYSBzdHJpbmcgdGhhdCBpcyBwb3N0Zml4ZWQgdG8gYSB3YXJuaW5nIGFib3V0IGFuIGludmFsaWQgdHlwZS5cbiAgLy8gRm9yIGV4YW1wbGUsIFwidW5kZWZpbmVkXCIgb3IgXCJvZiB0eXBlIGFycmF5XCJcbiAgZnVuY3Rpb24gZ2V0UG9zdGZpeEZvclR5cGVXYXJuaW5nKHZhbHVlKSB7XG4gICAgdmFyIHR5cGUgPSBnZXRQcmVjaXNlVHlwZSh2YWx1ZSk7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdhcnJheSc6XG4gICAgICBjYXNlICdvYmplY3QnOlxuICAgICAgICByZXR1cm4gJ2FuICcgKyB0eXBlO1xuICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICBjYXNlICdkYXRlJzpcbiAgICAgIGNhc2UgJ3JlZ2V4cCc6XG4gICAgICAgIHJldHVybiAnYSAnICsgdHlwZTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB0eXBlO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJldHVybnMgY2xhc3MgbmFtZSBvZiB0aGUgb2JqZWN0LCBpZiBhbnkuXG4gIGZ1bmN0aW9uIGdldENsYXNzTmFtZShwcm9wVmFsdWUpIHtcbiAgICBpZiAoIXByb3BWYWx1ZS5jb25zdHJ1Y3RvciB8fCAhcHJvcFZhbHVlLmNvbnN0cnVjdG9yLm5hbWUpIHtcbiAgICAgIHJldHVybiBBTk9OWU1PVVM7XG4gICAgfVxuICAgIHJldHVybiBwcm9wVmFsdWUuY29uc3RydWN0b3IubmFtZTtcbiAgfVxuXG4gIFJlYWN0UHJvcFR5cGVzLmNoZWNrUHJvcFR5cGVzID0gY2hlY2tQcm9wVHlwZXM7XG4gIFJlYWN0UHJvcFR5cGVzLnJlc2V0V2FybmluZ0NhY2hlID0gY2hlY2tQcm9wVHlwZXMucmVzZXRXYXJuaW5nQ2FjaGU7XG4gIFJlYWN0UHJvcFR5cGVzLlByb3BUeXBlcyA9IFJlYWN0UHJvcFR5cGVzO1xuXG4gIHJldHVybiBSZWFjdFByb3BUeXBlcztcbn07XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/prop-types/factoryWithTypeCheckers.js\n"); + +/***/ }), + +/***/ "./node_modules/prop-types/index.js": +/*!******************************************!*\ + !*** ./node_modules/prop-types/index.js ***! + \******************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\nif (true) {\n var ReactIs = __webpack_require__(/*! react-is */ \"./node_modules/prop-types/node_modules/react-is/index.js\");\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = __webpack_require__(/*! ./factoryWithTypeCheckers */ \"./node_modules/prop-types/factoryWithTypeCheckers.js\")(ReactIs.isElement, throwOnDirectAccess);\n} else {}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsSUFBSSxJQUFxQztBQUN6QyxnQkFBZ0IsbUJBQU8sQ0FBQywwRUFBVTs7QUFFbEM7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLG1CQUFPLENBQUMsdUZBQTJCO0FBQ3RELEVBQUUsS0FBSyxFQUlOIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2luZGV4LmpzP2JkZTEiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICB2YXIgUmVhY3RJcyA9IHJlcXVpcmUoJ3JlYWN0LWlzJyk7XG5cbiAgLy8gQnkgZXhwbGljaXRseSB1c2luZyBgcHJvcC10eXBlc2AgeW91IGFyZSBvcHRpbmcgaW50byBuZXcgZGV2ZWxvcG1lbnQgYmVoYXZpb3IuXG4gIC8vIGh0dHA6Ly9mYi5tZS9wcm9wLXR5cGVzLWluLXByb2RcbiAgdmFyIHRocm93T25EaXJlY3RBY2Nlc3MgPSB0cnVlO1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vZmFjdG9yeVdpdGhUeXBlQ2hlY2tlcnMnKShSZWFjdElzLmlzRWxlbWVudCwgdGhyb3dPbkRpcmVjdEFjY2Vzcyk7XG59IGVsc2Uge1xuICAvLyBCeSBleHBsaWNpdGx5IHVzaW5nIGBwcm9wLXR5cGVzYCB5b3UgYXJlIG9wdGluZyBpbnRvIG5ldyBwcm9kdWN0aW9uIGJlaGF2aW9yLlxuICAvLyBodHRwOi8vZmIubWUvcHJvcC10eXBlcy1pbi1wcm9kXG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9mYWN0b3J5V2l0aFRocm93aW5nU2hpbXMnKSgpO1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/prop-types/index.js\n"); + +/***/ }), + +/***/ "./node_modules/prop-types/lib/ReactPropTypesSecret.js": +/*!*************************************************************!*\ + !*** ./node_modules/prop-types/lib/ReactPropTypesSecret.js ***! + \*************************************************************/ +/***/ (function(module) { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\n\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9saWIvUmVhY3RQcm9wVHlwZXNTZWNyZXQuanMuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVhOztBQUViOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2xpYi9SZWFjdFByb3BUeXBlc1NlY3JldC5qcz9lMDk4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUmVhY3RQcm9wVHlwZXNTZWNyZXQgPSAnU0VDUkVUX0RPX05PVF9QQVNTX1RISVNfT1JfWU9VX1dJTExfQkVfRklSRUQnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0UHJvcFR5cGVzU2VjcmV0O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/prop-types/lib/ReactPropTypesSecret.js\n"); + +/***/ }), + +/***/ "./node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js ***! + \***********************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its 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\n\n\n\n\nif (true) {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9ub2RlX21vZHVsZXMvcmVhY3QtaXMvY2pzL3JlYWN0LWlzLmRldmVsb3BtZW50LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWE7Ozs7QUFJYixJQUFJLElBQXFDO0FBQ3pDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkVBQTJFO0FBQzNFOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlEQUFpRDs7QUFFakQ7QUFDQTtBQUNBO0FBQ0Esa0RBQWtEOztBQUVsRDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxpQkFBaUI7QUFDakIsc0JBQXNCO0FBQ3RCLHVCQUF1QjtBQUN2Qix1QkFBdUI7QUFDdkIsZUFBZTtBQUNmLGtCQUFrQjtBQUNsQixnQkFBZ0I7QUFDaEIsWUFBWTtBQUNaLFlBQVk7QUFDWixjQUFjO0FBQ2QsZ0JBQWdCO0FBQ2hCLGtCQUFrQjtBQUNsQixnQkFBZ0I7QUFDaEIsbUJBQW1CO0FBQ25CLHdCQUF3QjtBQUN4Qix5QkFBeUI7QUFDekIseUJBQXlCO0FBQ3pCLGlCQUFpQjtBQUNqQixvQkFBb0I7QUFDcEIsa0JBQWtCO0FBQ2xCLGNBQWM7QUFDZCxjQUFjO0FBQ2QsZ0JBQWdCO0FBQ2hCLGtCQUFrQjtBQUNsQixvQkFBb0I7QUFDcEIsa0JBQWtCO0FBQ2xCLDBCQUEwQjtBQUMxQixjQUFjO0FBQ2QsR0FBRztBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL25vZGVfbW9kdWxlcy9yZWFjdC1pcy9janMvcmVhY3QtaXMuZGV2ZWxvcG1lbnQuanM/Yzk1NyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQGxpY2Vuc2UgUmVhY3QgdjE2LjEzLjFcbiAqIHJlYWN0LWlzLmRldmVsb3BtZW50LmpzXG4gKlxuICogQ29weXJpZ2h0IChjKSBGYWNlYm9vaywgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5cblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAoZnVuY3Rpb24oKSB7XG4ndXNlIHN0cmljdCc7XG5cbi8vIFRoZSBTeW1ib2wgdXNlZCB0byB0YWcgdGhlIFJlYWN0RWxlbWVudC1saWtlIHR5cGVzLiBJZiB0aGVyZSBpcyBubyBuYXRpdmUgU3ltYm9sXG4vLyBub3IgcG9seWZpbGwsIHRoZW4gYSBwbGFpbiBudW1iZXIgaXMgdXNlZCBmb3IgcGVyZm9ybWFuY2UuXG52YXIgaGFzU3ltYm9sID0gdHlwZW9mIFN5bWJvbCA9PT0gJ2Z1bmN0aW9uJyAmJiBTeW1ib2wuZm9yO1xudmFyIFJFQUNUX0VMRU1FTlRfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmVsZW1lbnQnKSA6IDB4ZWFjNztcbnZhciBSRUFDVF9QT1JUQUxfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LnBvcnRhbCcpIDogMHhlYWNhO1xudmFyIFJFQUNUX0ZSQUdNRU5UX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5mcmFnbWVudCcpIDogMHhlYWNiO1xudmFyIFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5zdHJpY3RfbW9kZScpIDogMHhlYWNjO1xudmFyIFJFQUNUX1BST0ZJTEVSX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5wcm9maWxlcicpIDogMHhlYWQyO1xudmFyIFJFQUNUX1BST1ZJREVSX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5wcm92aWRlcicpIDogMHhlYWNkO1xudmFyIFJFQUNUX0NPTlRFWFRfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmNvbnRleHQnKSA6IDB4ZWFjZTsgLy8gVE9ETzogV2UgZG9uJ3QgdXNlIEFzeW5jTW9kZSBvciBDb25jdXJyZW50TW9kZSBhbnltb3JlLiBUaGV5IHdlcmUgdGVtcG9yYXJ5XG4vLyAodW5zdGFibGUpIEFQSXMgdGhhdCBoYXZlIGJlZW4gcmVtb3ZlZC4gQ2FuIHdlIHJlbW92ZSB0aGUgc3ltYm9scz9cblxudmFyIFJFQUNUX0FTWU5DX01PREVfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmFzeW5jX21vZGUnKSA6IDB4ZWFjZjtcbnZhciBSRUFDVF9DT05DVVJSRU5UX01PREVfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmNvbmN1cnJlbnRfbW9kZScpIDogMHhlYWNmO1xudmFyIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5mb3J3YXJkX3JlZicpIDogMHhlYWQwO1xudmFyIFJFQUNUX1NVU1BFTlNFX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5zdXNwZW5zZScpIDogMHhlYWQxO1xudmFyIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LnN1c3BlbnNlX2xpc3QnKSA6IDB4ZWFkODtcbnZhciBSRUFDVF9NRU1PX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5tZW1vJykgOiAweGVhZDM7XG52YXIgUkVBQ1RfTEFaWV9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3QubGF6eScpIDogMHhlYWQ0O1xudmFyIFJFQUNUX0JMT0NLX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5ibG9jaycpIDogMHhlYWQ5O1xudmFyIFJFQUNUX0ZVTkRBTUVOVEFMX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5mdW5kYW1lbnRhbCcpIDogMHhlYWQ1O1xudmFyIFJFQUNUX1JFU1BPTkRFUl9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3QucmVzcG9uZGVyJykgOiAweGVhZDY7XG52YXIgUkVBQ1RfU0NPUEVfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LnNjb3BlJykgOiAweGVhZDc7XG5cbmZ1bmN0aW9uIGlzVmFsaWRFbGVtZW50VHlwZSh0eXBlKSB7XG4gIHJldHVybiB0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicgfHwgLy8gTm90ZTogaXRzIHR5cGVvZiBtaWdodCBiZSBvdGhlciB0aGFuICdzeW1ib2wnIG9yICdudW1iZXInIGlmIGl0J3MgYSBwb2x5ZmlsbC5cbiAgdHlwZSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9DT05DVVJSRU5UX01PREVfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9QUk9GSUxFUl9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgfHwgdHlwZSA9PT0gUkVBQ1RfU1VTUEVOU0VfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUgfHwgdHlwZW9mIHR5cGUgPT09ICdvYmplY3QnICYmIHR5cGUgIT09IG51bGwgJiYgKHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0xBWllfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9NRU1PX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfUFJPVklERVJfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9DT05URVhUX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9GVU5EQU1FTlRBTF9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX1JFU1BPTkRFUl9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX1NDT1BFX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQkxPQ0tfVFlQRSk7XG59XG5cbmZ1bmN0aW9uIHR5cGVPZihvYmplY3QpIHtcbiAgaWYgKHR5cGVvZiBvYmplY3QgPT09ICdvYmplY3QnICYmIG9iamVjdCAhPT0gbnVsbCkge1xuICAgIHZhciAkJHR5cGVvZiA9IG9iamVjdC4kJHR5cGVvZjtcblxuICAgIHN3aXRjaCAoJCR0eXBlb2YpIHtcbiAgICAgIGNhc2UgUkVBQ1RfRUxFTUVOVF9UWVBFOlxuICAgICAgICB2YXIgdHlwZSA9IG9iamVjdC50eXBlO1xuXG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgIGNhc2UgUkVBQ1RfQVNZTkNfTU9ERV9UWVBFOlxuICAgICAgICAgIGNhc2UgUkVBQ1RfQ09OQ1VSUkVOVF9NT0RFX1RZUEU6XG4gICAgICAgICAgY2FzZSBSRUFDVF9GUkFHTUVOVF9UWVBFOlxuICAgICAgICAgIGNhc2UgUkVBQ1RfUFJPRklMRVJfVFlQRTpcbiAgICAgICAgICBjYXNlIFJFQUNUX1NUUklDVF9NT0RFX1RZUEU6XG4gICAgICAgICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9UWVBFOlxuICAgICAgICAgICAgcmV0dXJuIHR5cGU7XG5cbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdmFyICQkdHlwZW9mVHlwZSA9IHR5cGUgJiYgdHlwZS4kJHR5cGVvZjtcblxuICAgICAgICAgICAgc3dpdGNoICgkJHR5cGVvZlR5cGUpIHtcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9DT05URVhUX1RZUEU6XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTpcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOlxuICAgICAgICAgICAgICBjYXNlIFJFQUNUX1BST1ZJREVSX1RZUEU6XG4gICAgICAgICAgICAgICAgcmV0dXJuICQkdHlwZW9mVHlwZTtcblxuICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiAkJHR5cGVvZjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgIGNhc2UgUkVBQ1RfUE9SVEFMX1RZUEU6XG4gICAgICAgIHJldHVybiAkJHR5cGVvZjtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufSAvLyBBc3luY01vZGUgaXMgZGVwcmVjYXRlZCBhbG9uZyB3aXRoIGlzQXN5bmNNb2RlXG5cbnZhciBBc3luY01vZGUgPSBSRUFDVF9BU1lOQ19NT0RFX1RZUEU7XG52YXIgQ29uY3VycmVudE1vZGUgPSBSRUFDVF9DT05DVVJSRU5UX01PREVfVFlQRTtcbnZhciBDb250ZXh0Q29uc3VtZXIgPSBSRUFDVF9DT05URVhUX1RZUEU7XG52YXIgQ29udGV4dFByb3ZpZGVyID0gUkVBQ1RfUFJPVklERVJfVFlQRTtcbnZhciBFbGVtZW50ID0gUkVBQ1RfRUxFTUVOVF9UWVBFO1xudmFyIEZvcndhcmRSZWYgPSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFO1xudmFyIEZyYWdtZW50ID0gUkVBQ1RfRlJBR01FTlRfVFlQRTtcbnZhciBMYXp5ID0gUkVBQ1RfTEFaWV9UWVBFO1xudmFyIE1lbW8gPSBSRUFDVF9NRU1PX1RZUEU7XG52YXIgUG9ydGFsID0gUkVBQ1RfUE9SVEFMX1RZUEU7XG52YXIgUHJvZmlsZXIgPSBSRUFDVF9QUk9GSUxFUl9UWVBFO1xudmFyIFN0cmljdE1vZGUgPSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFO1xudmFyIFN1c3BlbnNlID0gUkVBQ1RfU1VTUEVOU0VfVFlQRTtcbnZhciBoYXNXYXJuZWRBYm91dERlcHJlY2F0ZWRJc0FzeW5jTW9kZSA9IGZhbHNlOyAvLyBBc3luY01vZGUgc2hvdWxkIGJlIGRlcHJlY2F0ZWRcblxuZnVuY3Rpb24gaXNBc3luY01vZGUob2JqZWN0KSB7XG4gIHtcbiAgICBpZiAoIWhhc1dhcm5lZEFib3V0RGVwcmVjYXRlZElzQXN5bmNNb2RlKSB7XG4gICAgICBoYXNXYXJuZWRBYm91dERlcHJlY2F0ZWRJc0FzeW5jTW9kZSA9IHRydWU7IC8vIFVzaW5nIGNvbnNvbGVbJ3dhcm4nXSB0byBldmFkZSBCYWJlbCBhbmQgRVNMaW50XG5cbiAgICAgIGNvbnNvbGVbJ3dhcm4nXSgnVGhlIFJlYWN0SXMuaXNBc3luY01vZGUoKSBhbGlhcyBoYXMgYmVlbiBkZXByZWNhdGVkLCAnICsgJ2FuZCB3aWxsIGJlIHJlbW92ZWQgaW4gUmVhY3QgMTcrLiBVcGRhdGUgeW91ciBjb2RlIHRvIHVzZSAnICsgJ1JlYWN0SXMuaXNDb25jdXJyZW50TW9kZSgpIGluc3RlYWQuIEl0IGhhcyB0aGUgZXhhY3Qgc2FtZSBBUEkuJyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGlzQ29uY3VycmVudE1vZGUob2JqZWN0KSB8fCB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfQVNZTkNfTU9ERV9UWVBFO1xufVxuZnVuY3Rpb24gaXNDb25jdXJyZW50TW9kZShvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9DT05DVVJSRU5UX01PREVfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzQ29udGV4dENvbnN1bWVyKG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX0NPTlRFWFRfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzQ29udGV4dFByb3ZpZGVyKG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX1BST1ZJREVSX1RZUEU7XG59XG5mdW5jdGlvbiBpc0VsZW1lbnQob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlb2Ygb2JqZWN0ID09PSAnb2JqZWN0JyAmJiBvYmplY3QgIT09IG51bGwgJiYgb2JqZWN0LiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEU7XG59XG5mdW5jdGlvbiBpc0ZvcndhcmRSZWYob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzRnJhZ21lbnQob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzTGF6eShvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9MQVpZX1RZUEU7XG59XG5mdW5jdGlvbiBpc01lbW8ob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfTUVNT19UWVBFO1xufVxuZnVuY3Rpb24gaXNQb3J0YWwob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfUE9SVEFMX1RZUEU7XG59XG5mdW5jdGlvbiBpc1Byb2ZpbGVyKG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX1BST0ZJTEVSX1RZUEU7XG59XG5mdW5jdGlvbiBpc1N0cmljdE1vZGUob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfU1RSSUNUX01PREVfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzU3VzcGVuc2Uob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfU1VTUEVOU0VfVFlQRTtcbn1cblxuZXhwb3J0cy5Bc3luY01vZGUgPSBBc3luY01vZGU7XG5leHBvcnRzLkNvbmN1cnJlbnRNb2RlID0gQ29uY3VycmVudE1vZGU7XG5leHBvcnRzLkNvbnRleHRDb25zdW1lciA9IENvbnRleHRDb25zdW1lcjtcbmV4cG9ydHMuQ29udGV4dFByb3ZpZGVyID0gQ29udGV4dFByb3ZpZGVyO1xuZXhwb3J0cy5FbGVtZW50ID0gRWxlbWVudDtcbmV4cG9ydHMuRm9yd2FyZFJlZiA9IEZvcndhcmRSZWY7XG5leHBvcnRzLkZyYWdtZW50ID0gRnJhZ21lbnQ7XG5leHBvcnRzLkxhenkgPSBMYXp5O1xuZXhwb3J0cy5NZW1vID0gTWVtbztcbmV4cG9ydHMuUG9ydGFsID0gUG9ydGFsO1xuZXhwb3J0cy5Qcm9maWxlciA9IFByb2ZpbGVyO1xuZXhwb3J0cy5TdHJpY3RNb2RlID0gU3RyaWN0TW9kZTtcbmV4cG9ydHMuU3VzcGVuc2UgPSBTdXNwZW5zZTtcbmV4cG9ydHMuaXNBc3luY01vZGUgPSBpc0FzeW5jTW9kZTtcbmV4cG9ydHMuaXNDb25jdXJyZW50TW9kZSA9IGlzQ29uY3VycmVudE1vZGU7XG5leHBvcnRzLmlzQ29udGV4dENvbnN1bWVyID0gaXNDb250ZXh0Q29uc3VtZXI7XG5leHBvcnRzLmlzQ29udGV4dFByb3ZpZGVyID0gaXNDb250ZXh0UHJvdmlkZXI7XG5leHBvcnRzLmlzRWxlbWVudCA9IGlzRWxlbWVudDtcbmV4cG9ydHMuaXNGb3J3YXJkUmVmID0gaXNGb3J3YXJkUmVmO1xuZXhwb3J0cy5pc0ZyYWdtZW50ID0gaXNGcmFnbWVudDtcbmV4cG9ydHMuaXNMYXp5ID0gaXNMYXp5O1xuZXhwb3J0cy5pc01lbW8gPSBpc01lbW87XG5leHBvcnRzLmlzUG9ydGFsID0gaXNQb3J0YWw7XG5leHBvcnRzLmlzUHJvZmlsZXIgPSBpc1Byb2ZpbGVyO1xuZXhwb3J0cy5pc1N0cmljdE1vZGUgPSBpc1N0cmljdE1vZGU7XG5leHBvcnRzLmlzU3VzcGVuc2UgPSBpc1N1c3BlbnNlO1xuZXhwb3J0cy5pc1ZhbGlkRWxlbWVudFR5cGUgPSBpc1ZhbGlkRWxlbWVudFR5cGU7XG5leHBvcnRzLnR5cGVPZiA9IHR5cGVPZjtcbiAgfSkoKTtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js\n"); + +/***/ }), + +/***/ "./node_modules/prop-types/node_modules/react-is/index.js": +/*!****************************************************************!*\ + !*** ./node_modules/prop-types/node_modules/react-is/index.js ***! + \****************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ \"./node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9ub2RlX21vZHVsZXMvcmVhY3QtaXMvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsSUFBSSxLQUFxQyxFQUFFLEVBRTFDLENBQUM7QUFDRixFQUFFLHdKQUF5RDtBQUMzRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9ub2RlX21vZHVsZXMvcmVhY3QtaXMvaW5kZXguanM/NWQ1MCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtaXMucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtaXMuZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/prop-types/node_modules/react-is/index.js\n"); + +/***/ }), + +/***/ "./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js": +/*!****************************************************************************!*\ + !*** ./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js ***! + \****************************************************************************/ +/***/ (function(__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 */ \"polyfill\": function() { return /* binding */ polyfill; }\n/* harmony export */ });\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtbGlmZWN5Y2xlcy1jb21wYXQvcmVhY3QtbGlmZWN5Y2xlcy1jb21wYXQuZXMuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRW9CIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9yZWFjdC1saWZlY3ljbGVzLWNvbXBhdC9yZWFjdC1saWZlY3ljbGVzLWNvbXBhdC5lcy5qcz81MzY5Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuZnVuY3Rpb24gY29tcG9uZW50V2lsbE1vdW50KCkge1xuICAvLyBDYWxsIHRoaXMuY29uc3RydWN0b3IuZ0RTRlAgdG8gc3VwcG9ydCBzdWItY2xhc3Nlcy5cbiAgdmFyIHN0YXRlID0gdGhpcy5jb25zdHJ1Y3Rvci5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHModGhpcy5wcm9wcywgdGhpcy5zdGF0ZSk7XG4gIGlmIChzdGF0ZSAhPT0gbnVsbCAmJiBzdGF0ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5zZXRTdGF0ZShzdGF0ZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMpIHtcbiAgLy8gQ2FsbCB0aGlzLmNvbnN0cnVjdG9yLmdEU0ZQIHRvIHN1cHBvcnQgc3ViLWNsYXNzZXMuXG4gIC8vIFVzZSB0aGUgc2V0U3RhdGUoKSB1cGRhdGVyIHRvIGVuc3VyZSBzdGF0ZSBpc24ndCBzdGFsZSBpbiBjZXJ0YWluIGVkZ2UgY2FzZXMuXG4gIGZ1bmN0aW9uIHVwZGF0ZXIocHJldlN0YXRlKSB7XG4gICAgdmFyIHN0YXRlID0gdGhpcy5jb25zdHJ1Y3Rvci5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMobmV4dFByb3BzLCBwcmV2U3RhdGUpO1xuICAgIHJldHVybiBzdGF0ZSAhPT0gbnVsbCAmJiBzdGF0ZSAhPT0gdW5kZWZpbmVkID8gc3RhdGUgOiBudWxsO1xuICB9XG4gIC8vIEJpbmRpbmcgXCJ0aGlzXCIgaXMgaW1wb3J0YW50IGZvciBzaGFsbG93IHJlbmRlcmVyIHN1cHBvcnQuXG4gIHRoaXMuc2V0U3RhdGUodXBkYXRlci5iaW5kKHRoaXMpKTtcbn1cblxuZnVuY3Rpb24gY29tcG9uZW50V2lsbFVwZGF0ZShuZXh0UHJvcHMsIG5leHRTdGF0ZSkge1xuICB0cnkge1xuICAgIHZhciBwcmV2UHJvcHMgPSB0aGlzLnByb3BzO1xuICAgIHZhciBwcmV2U3RhdGUgPSB0aGlzLnN0YXRlO1xuICAgIHRoaXMucHJvcHMgPSBuZXh0UHJvcHM7XG4gICAgdGhpcy5zdGF0ZSA9IG5leHRTdGF0ZTtcbiAgICB0aGlzLl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90RmxhZyA9IHRydWU7XG4gICAgdGhpcy5fX3JlYWN0SW50ZXJuYWxTbmFwc2hvdCA9IHRoaXMuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUoXG4gICAgICBwcmV2UHJvcHMsXG4gICAgICBwcmV2U3RhdGVcbiAgICApO1xuICB9IGZpbmFsbHkge1xuICAgIHRoaXMucHJvcHMgPSBwcmV2UHJvcHM7XG4gICAgdGhpcy5zdGF0ZSA9IHByZXZTdGF0ZTtcbiAgfVxufVxuXG4vLyBSZWFjdCBtYXkgd2FybiBhYm91dCBjV00vY1dSUC9jV1UgbWV0aG9kcyBiZWluZyBkZXByZWNhdGVkLlxuLy8gQWRkIGEgZmxhZyB0byBzdXBwcmVzcyB0aGVzZSB3YXJuaW5ncyBmb3IgdGhpcyBzcGVjaWFsIGNhc2UuXG5jb21wb25lbnRXaWxsTW91bnQuX19zdXBwcmVzc0RlcHJlY2F0aW9uV2FybmluZyA9IHRydWU7XG5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzLl9fc3VwcHJlc3NEZXByZWNhdGlvbldhcm5pbmcgPSB0cnVlO1xuY29tcG9uZW50V2lsbFVwZGF0ZS5fX3N1cHByZXNzRGVwcmVjYXRpb25XYXJuaW5nID0gdHJ1ZTtcblxuZnVuY3Rpb24gcG9seWZpbGwoQ29tcG9uZW50KSB7XG4gIHZhciBwcm90b3R5cGUgPSBDb21wb25lbnQucHJvdG90eXBlO1xuXG4gIGlmICghcHJvdG90eXBlIHx8ICFwcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudCkge1xuICAgIHRocm93IG5ldyBFcnJvcignQ2FuIG9ubHkgcG9seWZpbGwgY2xhc3MgY29tcG9uZW50cycpO1xuICB9XG5cbiAgaWYgKFxuICAgIHR5cGVvZiBDb21wb25lbnQuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzICE9PSAnZnVuY3Rpb24nICYmXG4gICAgdHlwZW9mIHByb3RvdHlwZS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSAhPT0gJ2Z1bmN0aW9uJ1xuICApIHtcbiAgICByZXR1cm4gQ29tcG9uZW50O1xuICB9XG5cbiAgLy8gSWYgbmV3IGNvbXBvbmVudCBBUElzIGFyZSBkZWZpbmVkLCBcInVuc2FmZVwiIGxpZmVjeWNsZXMgd29uJ3QgYmUgY2FsbGVkLlxuICAvLyBFcnJvciBpZiBhbnkgb2YgdGhlc2UgbGlmZWN5Y2xlcyBhcmUgcHJlc2VudCxcbiAgLy8gQmVjYXVzZSB0aGV5IHdvdWxkIHdvcmsgZGlmZmVyZW50bHkgYmV0d2VlbiBvbGRlciBhbmQgbmV3ZXIgKDE2LjMrKSB2ZXJzaW9ucyBvZiBSZWFjdC5cbiAgdmFyIGZvdW5kV2lsbE1vdW50TmFtZSA9IG51bGw7XG4gIHZhciBmb3VuZFdpbGxSZWNlaXZlUHJvcHNOYW1lID0gbnVsbDtcbiAgdmFyIGZvdW5kV2lsbFVwZGF0ZU5hbWUgPSBudWxsO1xuICBpZiAodHlwZW9mIHByb3RvdHlwZS5jb21wb25lbnRXaWxsTW91bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICBmb3VuZFdpbGxNb3VudE5hbWUgPSAnY29tcG9uZW50V2lsbE1vdW50JztcbiAgfSBlbHNlIGlmICh0eXBlb2YgcHJvdG90eXBlLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICBmb3VuZFdpbGxNb3VudE5hbWUgPSAnVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCc7XG4gIH1cbiAgaWYgKHR5cGVvZiBwcm90b3R5cGUuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGZvdW5kV2lsbFJlY2VpdmVQcm9wc05hbWUgPSAnY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyc7XG4gIH0gZWxzZSBpZiAodHlwZW9mIHByb3RvdHlwZS5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGZvdW5kV2lsbFJlY2VpdmVQcm9wc05hbWUgPSAnVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMnO1xuICB9XG4gIGlmICh0eXBlb2YgcHJvdG90eXBlLmNvbXBvbmVudFdpbGxVcGRhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICBmb3VuZFdpbGxVcGRhdGVOYW1lID0gJ2NvbXBvbmVudFdpbGxVcGRhdGUnO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBwcm90b3R5cGUuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICBmb3VuZFdpbGxVcGRhdGVOYW1lID0gJ1VOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlJztcbiAgfVxuICBpZiAoXG4gICAgZm91bmRXaWxsTW91bnROYW1lICE9PSBudWxsIHx8XG4gICAgZm91bmRXaWxsUmVjZWl2ZVByb3BzTmFtZSAhPT0gbnVsbCB8fFxuICAgIGZvdW5kV2lsbFVwZGF0ZU5hbWUgIT09IG51bGxcbiAgKSB7XG4gICAgdmFyIGNvbXBvbmVudE5hbWUgPSBDb21wb25lbnQuZGlzcGxheU5hbWUgfHwgQ29tcG9uZW50Lm5hbWU7XG4gICAgdmFyIG5ld0FwaU5hbWUgPVxuICAgICAgdHlwZW9mIENvbXBvbmVudC5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgPT09ICdmdW5jdGlvbidcbiAgICAgICAgPyAnZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKCknXG4gICAgICAgIDogJ2dldFNuYXBzaG90QmVmb3JlVXBkYXRlKCknO1xuXG4gICAgdGhyb3cgRXJyb3IoXG4gICAgICAnVW5zYWZlIGxlZ2FjeSBsaWZlY3ljbGVzIHdpbGwgbm90IGJlIGNhbGxlZCBmb3IgY29tcG9uZW50cyB1c2luZyBuZXcgY29tcG9uZW50IEFQSXMuXFxuXFxuJyArXG4gICAgICAgIGNvbXBvbmVudE5hbWUgK1xuICAgICAgICAnIHVzZXMgJyArXG4gICAgICAgIG5ld0FwaU5hbWUgK1xuICAgICAgICAnIGJ1dCBhbHNvIGNvbnRhaW5zIHRoZSBmb2xsb3dpbmcgbGVnYWN5IGxpZmVjeWNsZXM6JyArXG4gICAgICAgIChmb3VuZFdpbGxNb3VudE5hbWUgIT09IG51bGwgPyAnXFxuICAnICsgZm91bmRXaWxsTW91bnROYW1lIDogJycpICtcbiAgICAgICAgKGZvdW5kV2lsbFJlY2VpdmVQcm9wc05hbWUgIT09IG51bGxcbiAgICAgICAgICA/ICdcXG4gICcgKyBmb3VuZFdpbGxSZWNlaXZlUHJvcHNOYW1lXG4gICAgICAgICAgOiAnJykgK1xuICAgICAgICAoZm91bmRXaWxsVXBkYXRlTmFtZSAhPT0gbnVsbCA/ICdcXG4gICcgKyBmb3VuZFdpbGxVcGRhdGVOYW1lIDogJycpICtcbiAgICAgICAgJ1xcblxcblRoZSBhYm92ZSBsaWZlY3ljbGVzIHNob3VsZCBiZSByZW1vdmVkLiBMZWFybiBtb3JlIGFib3V0IHRoaXMgd2FybmluZyBoZXJlOlxcbicgK1xuICAgICAgICAnaHR0cHM6Ly9mYi5tZS9yZWFjdC1hc3luYy1jb21wb25lbnQtbGlmZWN5Y2xlLWhvb2tzJ1xuICAgICk7XG4gIH1cblxuICAvLyBSZWFjdCA8PSAxNi4yIGRvZXMgbm90IHN1cHBvcnQgc3RhdGljIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcy5cbiAgLy8gQXMgYSB3b3JrYXJvdW5kLCB1c2UgY1dNIGFuZCBjV1JQIHRvIGludm9rZSB0aGUgbmV3IHN0YXRpYyBsaWZlY3ljbGUuXG4gIC8vIE5ld2VyIHZlcnNpb25zIG9mIFJlYWN0IHdpbGwgaWdub3JlIHRoZXNlIGxpZmVjeWNsZXMgaWYgZ0RTRlAgZXhpc3RzLlxuICBpZiAodHlwZW9mIENvbXBvbmVudC5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICBwcm90b3R5cGUuY29tcG9uZW50V2lsbE1vdW50ID0gY29tcG9uZW50V2lsbE1vdW50O1xuICAgIHByb3RvdHlwZS5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzID0gY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcztcbiAgfVxuXG4gIC8vIFJlYWN0IDw9IDE2LjIgZG9lcyBub3Qgc3VwcG9ydCBnZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZS5cbiAgLy8gQXMgYSB3b3JrYXJvdW5kLCB1c2UgY1dVIHRvIGludm9rZSB0aGUgbmV3IGxpZmVjeWNsZS5cbiAgLy8gTmV3ZXIgdmVyc2lvbnMgb2YgUmVhY3Qgd2lsbCBpZ25vcmUgdGhhdCBsaWZlY3ljbGUgaWYgZ1NCVSBleGlzdHMuXG4gIGlmICh0eXBlb2YgcHJvdG90eXBlLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgaWYgKHR5cGVvZiBwcm90b3R5cGUuY29tcG9uZW50RGlkVXBkYXRlICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdDYW5ub3QgcG9seWZpbGwgZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUoKSBmb3IgY29tcG9uZW50cyB0aGF0IGRvIG5vdCBkZWZpbmUgY29tcG9uZW50RGlkVXBkYXRlKCkgb24gdGhlIHByb3RvdHlwZSdcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdG90eXBlLmNvbXBvbmVudFdpbGxVcGRhdGUgPSBjb21wb25lbnRXaWxsVXBkYXRlO1xuXG4gICAgdmFyIGNvbXBvbmVudERpZFVwZGF0ZSA9IHByb3RvdHlwZS5jb21wb25lbnREaWRVcGRhdGU7XG5cbiAgICBwcm90b3R5cGUuY29tcG9uZW50RGlkVXBkYXRlID0gZnVuY3Rpb24gY29tcG9uZW50RGlkVXBkYXRlUG9seWZpbGwoXG4gICAgICBwcmV2UHJvcHMsXG4gICAgICBwcmV2U3RhdGUsXG4gICAgICBtYXliZVNuYXBzaG90XG4gICAgKSB7XG4gICAgICAvLyAxNi4zKyB3aWxsIG5vdCBleGVjdXRlIG91ciB3aWxsLXVwZGF0ZSBtZXRob2Q7XG4gICAgICAvLyBJdCB3aWxsIHBhc3MgYSBzbmFwc2hvdCB2YWx1ZSB0byBkaWQtdXBkYXRlIHRob3VnaC5cbiAgICAgIC8vIE9sZGVyIHZlcnNpb25zIHdpbGwgcmVxdWlyZSBvdXIgcG9seWZpbGxlZCB3aWxsLXVwZGF0ZSB2YWx1ZS5cbiAgICAgIC8vIFdlIG5lZWQgdG8gaGFuZGxlIGJvdGggY2FzZXMsIGJ1dCBjYW4ndCBqdXN0IGNoZWNrIGZvciB0aGUgcHJlc2VuY2Ugb2YgXCJtYXliZVNuYXBzaG90XCIsXG4gICAgICAvLyBCZWNhdXNlIGZvciA8PSAxNS54IHZlcnNpb25zIHRoaXMgbWlnaHQgYmUgYSBcInByZXZDb250ZXh0XCIgb2JqZWN0LlxuICAgICAgLy8gV2UgYWxzbyBjYW4ndCBqdXN0IGNoZWNrIFwiX19yZWFjdEludGVybmFsU25hcHNob3RcIixcbiAgICAgIC8vIEJlY2F1c2UgZ2V0LXNuYXBzaG90IG1pZ2h0IHJldHVybiBhIGZhbHN5IHZhbHVlLlxuICAgICAgLy8gU28gY2hlY2sgZm9yIHRoZSBleHBsaWNpdCBfX3JlYWN0SW50ZXJuYWxTbmFwc2hvdEZsYWcgZmxhZyB0byBkZXRlcm1pbmUgYmVoYXZpb3IuXG4gICAgICB2YXIgc25hcHNob3QgPSB0aGlzLl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90RmxhZ1xuICAgICAgICA/IHRoaXMuX19yZWFjdEludGVybmFsU25hcHNob3RcbiAgICAgICAgOiBtYXliZVNuYXBzaG90O1xuXG4gICAgICBjb21wb25lbnREaWRVcGRhdGUuY2FsbCh0aGlzLCBwcmV2UHJvcHMsIHByZXZTdGF0ZSwgc25hcHNob3QpO1xuICAgIH07XG4gIH1cblxuICByZXR1cm4gQ29tcG9uZW50O1xufVxuXG5leHBvcnQgeyBwb2x5ZmlsbCB9O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js\n"); + +/***/ }), + +/***/ "./node_modules/react-modal-video/lib/index.js": +/*!*****************************************************!*\ + !*** ./node_modules/react-modal-video/lib/index.js ***! + \*****************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _CSSTransition = __webpack_require__(/*! react-transition-group/CSSTransition */ \"./node_modules/react-modal-video/node_modules/react-transition-group/CSSTransition.js\");\n\nvar _CSSTransition2 = _interopRequireDefault(_CSSTransition);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ModalVideo = function (_React$Component) {\n _inherits(ModalVideo, _React$Component);\n\n function ModalVideo(props) {\n _classCallCheck(this, ModalVideo);\n\n var _this = _possibleConstructorReturn(this, (ModalVideo.__proto__ || Object.getPrototypeOf(ModalVideo)).call(this, props));\n\n _this.state = {\n isOpen: false,\n modalVideoWidth: _this.getWidthFulfillAspectRatio(_this.props.ratio, window.innerHeight, window.innerWidth)\n };\n _this.closeModal = _this.closeModal.bind(_this);\n _this.updateFocus = _this.updateFocus.bind(_this);\n\n _this.timeout; // used for resizing video.\n return _this;\n }\n\n _createClass(ModalVideo, [{\n key: 'openModal',\n value: function openModal() {\n this.setState({ isOpen: true });\n }\n }, {\n key: 'closeModal',\n value: function closeModal() {\n this.setState({ isOpen: false });\n if (typeof this.props.onClose === 'function') {\n this.props.onClose();\n }\n }\n }, {\n key: 'keydownHandler',\n value: function keydownHandler(e) {\n if (e.keyCode === 27) {\n this.closeModal();\n }\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n document.addEventListener('keydown', this.keydownHandler.bind(this));\n window.addEventListener('resize', this.resizeModalVideoWhenHeightGreaterThanWindowHeight.bind(this));\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n document.removeEventListener('keydown', this.keydownHandler.bind(this));\n window.removeEventListener('resize', this.resizeModalVideoWhenHeightGreaterThanWindowHeight.bind(this));\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n if (this.state.isOpen && this.modal) {\n this.modal.focus();\n }\n }\n }, {\n key: 'updateFocus',\n value: function updateFocus(e) {\n if (e.keyCode === 9) {\n e.preventDefault();\n e.stopPropagation();\n if (this.modal === document.activeElement) {\n this.modalbtn.focus();\n } else {\n this.modal.focus();\n }\n }\n }\n\n /**\n * Resize modal-video-iframe-wrap when window size changed when the height of the video is greater than the height of the window.\n */\n\n }, {\n key: 'resizeModalVideoWhenHeightGreaterThanWindowHeight',\n value: function resizeModalVideoWhenHeightGreaterThanWindowHeight() {\n var _this2 = this;\n\n clearTimeout(this.timeout);\n\n this.timeout = setTimeout(function () {\n var width = _this2.getWidthFulfillAspectRatio(_this2.props.ratio, window.innerHeight, window.innerWidth);\n if (_this2.state.modalVideoWidth != width) {\n _this2.setState({\n modalVideoWidth: width\n });\n }\n }, 10);\n }\n }, {\n key: 'getQueryString',\n value: function getQueryString(obj) {\n var url = '';\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n if (obj[key] !== null) {\n url += key + '=' + obj[key] + '&';\n }\n }\n }\n return url.substr(0, url.length - 1);\n }\n }, {\n key: 'getYoutubeUrl',\n value: function getYoutubeUrl(youtube, videoId) {\n var query = this.getQueryString(youtube);\n return '//www.youtube.com/embed/' + videoId + '?' + query;\n }\n }, {\n key: 'getVimeoUrl',\n value: function getVimeoUrl(vimeo, videoId) {\n var query = this.getQueryString(vimeo);\n return '//player.vimeo.com/video/' + videoId + '?' + query;\n }\n }, {\n key: 'getYoukuUrl',\n value: function getYoukuUrl(youku, videoId) {\n var query = this.getQueryString(youku);\n return '//player.youku.com/embed/' + videoId + '?' + query;\n }\n }, {\n key: 'getVideoUrl',\n value: function getVideoUrl(opt, videoId) {\n if (opt.channel === 'youtube') {\n return this.getYoutubeUrl(opt.youtube, videoId);\n } else if (opt.channel === 'vimeo') {\n return this.getVimeoUrl(opt.vimeo, videoId);\n } else if (opt.channel === 'youku') {\n return this.getYoukuUrl(opt.youku, videoId);\n } else if (opt.channel === 'custom') {\n return opt.url;\n }\n }\n }, {\n key: 'getPadding',\n value: function getPadding(ratio) {\n var arr = ratio.split(':');\n var width = Number(arr[0]);\n var height = Number(arr[1]);\n var padding = height * 100 / width;\n return padding + '%';\n }\n\n /**\n * Calculate the width of the video fulfill aspect ratio.\n * When the height of the video is greater than the height of the window,\n * this function return the width that fulfill the aspect ratio for the height of the window.\n * In other cases, this function return '100%'(the height relative to the width is determined by css).\n * \n * @param string ratio\n * @param number maxWidth\n * @returns number | '100%'\n */\n\n }, {\n key: 'getWidthFulfillAspectRatio',\n value: function getWidthFulfillAspectRatio(ratio, maxHeight, maxWidth) {\n var arr = ratio.split(':');\n var width = Number(arr[0]);\n var height = Number(arr[1]);\n\n // Height that fulfill the aspect ratio for maxWidth.\n var videoHeight = maxWidth * (height / width);\n\n if (maxHeight < videoHeight) {\n // when the height of the video is greater than the height of the window.\n // calculate the width that fulfill the aspect ratio for the height of the window.\n\n // ex: 16:9 aspect ratio\n // 16:9 = width : height\n // → width = 16 / 9 * height\n return Math.floor(width / height * maxHeight);\n }\n\n return '100%';\n }\n }, {\n key: 'render',\n value: function render() {\n var _this3 = this;\n\n var modalVideoInnerStyle = {\n width: this.state.modalVideoWidth\n };\n\n var modalVideoIframeWrapStyle = {\n paddingBottom: this.getPadding(this.props.ratio)\n };\n\n return _react2.default.createElement(\n _CSSTransition2.default,\n {\n classNames: this.props.classNames.modalVideoEffect,\n timeout: this.props.animationSpeed\n },\n function () {\n if (!_this3.state.isOpen) {\n return null;\n }\n\n return _react2.default.createElement(\n 'div',\n { className: _this3.props.classNames.modalVideo, tabIndex: '-1', role: 'dialog',\n 'aria-label': _this3.props.aria.openMessage, onClick: _this3.closeModal, ref: function ref(node) {\n _this3.modal = node;\n }, onKeyDown: _this3.updateFocus },\n _react2.default.createElement(\n 'div',\n { className: _this3.props.classNames.modalVideoBody },\n _react2.default.createElement(\n 'div',\n { className: _this3.props.classNames.modalVideoInner, style: modalVideoInnerStyle },\n _react2.default.createElement(\n 'div',\n { className: _this3.props.classNames.modalVideoIframeWrap, style: modalVideoIframeWrapStyle },\n _react2.default.createElement('button', { className: _this3.props.classNames.modalVideoCloseBtn, 'aria-label': _this3.props.aria.dismissBtnMessage, ref: function ref(node) {\n _this3.modalbtn = node;\n }, onKeyDown: _this3.updateFocus }),\n _this3.props.children || _react2.default.createElement('iframe', { width: '460', height: '230', src: _this3.getVideoUrl(_this3.props, _this3.props.videoId), frameBorder: '0', allow: 'accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture', allowFullScreen: _this3.props.allowFullScreen, tabIndex: '-1' })\n )\n )\n )\n );\n }\n );\n }\n }], [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(props) {\n return { isOpen: props.isOpen };\n }\n }]);\n\n return ModalVideo;\n}(_react2.default.Component);\n\nexports[\"default\"] = ModalVideo;\n\n\nModalVideo.defaultProps = {\n channel: 'youtube',\n isOpen: false,\n youtube: {\n autoplay: 1,\n cc_load_policy: 1,\n color: null,\n controls: 1,\n disablekb: 0,\n enablejsapi: 0,\n end: null,\n fs: 1,\n h1: null,\n iv_load_policy: 1,\n list: null,\n listType: null,\n loop: 0,\n modestbranding: null,\n origin: null,\n playlist: null,\n playsinline: null,\n rel: 0,\n showinfo: 1,\n start: 0,\n wmode: 'transparent',\n theme: 'dark',\n mute: 0\n },\n ratio: '16:9',\n vimeo: {\n api: false,\n autopause: true,\n autoplay: true,\n byline: true,\n callback: null,\n color: null,\n height: null,\n loop: false,\n maxheight: null,\n maxwidth: null,\n player_id: null,\n portrait: true,\n title: true,\n width: null,\n xhtml: false\n },\n youku: {\n autoplay: 1,\n show_related: 0\n },\n allowFullScreen: true,\n animationSpeed: 300,\n classNames: {\n modalVideoEffect: 'modal-video-effect',\n modalVideo: 'modal-video',\n modalVideoClose: 'modal-video-close',\n modalVideoBody: 'modal-video-body',\n modalVideoInner: 'modal-video-inner',\n modalVideoIframeWrap: 'modal-video-movie-wrap',\n modalVideoCloseBtn: 'modal-video-close-btn'\n },\n aria: {\n openMessage: 'You just opened the modal video',\n dismissBtnMessage: 'Close the modal by clicking here'\n }\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtbW9kYWwtdmlkZW8vbGliL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQzs7QUFFRixpQ0FBaUMsMkNBQTJDLGdCQUFnQixrQkFBa0IsT0FBTywyQkFBMkIsd0RBQXdELGdDQUFnQyx1REFBdUQsK0RBQStELHlEQUF5RCxxRUFBcUUsNkRBQTZELHdCQUF3Qjs7QUFFampCLGFBQWEsbUJBQU8sQ0FBQyw0Q0FBTzs7QUFFNUI7O0FBRUEscUJBQXFCLG1CQUFPLENBQUMsbUlBQXNDOztBQUVuRTs7QUFFQSx1Q0FBdUMsdUNBQXVDOztBQUU5RSxrREFBa0QsMENBQTBDOztBQUU1RixrREFBa0QsYUFBYSx5RkFBeUY7O0FBRXhKLDJDQUEyQywrREFBK0QsdUdBQXVHLHlFQUF5RSxlQUFlLDBFQUEwRSxHQUFHOztBQUV0WDtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLG1CQUFtQjtBQUNuQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixjQUFjO0FBQ3BDO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxzQkFBc0IsZUFBZTtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0EsT0FBTztBQUNQO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBLFFBQVE7QUFDUjtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQSxlQUFlLGlDQUFpQztBQUNoRDtBQUNBO0FBQ0EsZ0JBQWdCLG1EQUFtRDtBQUNuRTtBQUNBO0FBQ0Esa0JBQWtCLGlGQUFpRjtBQUNuRztBQUNBO0FBQ0Esb0JBQW9CLDJGQUEyRjtBQUMvRyw0REFBNEQ7QUFDNUQ7QUFDQSxxQkFBcUIsaUNBQWlDO0FBQ3RELHFGQUFxRixtSUFBbUksVUFBVSxpQkFBaUIsV0FBVyxvRkFBb0Y7QUFDbFY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLGVBQWU7QUFDZjtBQUNBLEdBQUc7O0FBRUg7QUFDQSxDQUFDOztBQUVELGtCQUFlOzs7QUFHZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmVhY3QtbW9kYWwtdmlkZW8vbGliL2luZGV4LmpzP2M2OTAiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuXG52YXIgX2NyZWF0ZUNsYXNzID0gZnVuY3Rpb24gKCkgeyBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH0gcmV0dXJuIGZ1bmN0aW9uIChDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfTsgfSgpO1xuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfQ1NTVHJhbnNpdGlvbiA9IHJlcXVpcmUoJ3JlYWN0LXRyYW5zaXRpb24tZ3JvdXAvQ1NTVHJhbnNpdGlvbicpO1xuXG52YXIgX0NTU1RyYW5zaXRpb24yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQ1NTVHJhbnNpdGlvbik7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHNlbGYsIGNhbGwpIHsgaWYgKCFzZWxmKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gY2FsbCAmJiAodHlwZW9mIGNhbGwgPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGNhbGwgPT09IFwiZnVuY3Rpb25cIikgPyBjYWxsIDogc2VsZjsgfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCBcIiArIHR5cGVvZiBzdXBlckNsYXNzKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7IH1cblxudmFyIE1vZGFsVmlkZW8gPSBmdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoTW9kYWxWaWRlbywgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgZnVuY3Rpb24gTW9kYWxWaWRlbyhwcm9wcykge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBNb2RhbFZpZGVvKTtcblxuICAgIHZhciBfdGhpcyA9IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIChNb2RhbFZpZGVvLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2YoTW9kYWxWaWRlbykpLmNhbGwodGhpcywgcHJvcHMpKTtcblxuICAgIF90aGlzLnN0YXRlID0ge1xuICAgICAgaXNPcGVuOiBmYWxzZSxcbiAgICAgIG1vZGFsVmlkZW9XaWR0aDogX3RoaXMuZ2V0V2lkdGhGdWxmaWxsQXNwZWN0UmF0aW8oX3RoaXMucHJvcHMucmF0aW8sIHdpbmRvdy5pbm5lckhlaWdodCwgd2luZG93LmlubmVyV2lkdGgpXG4gICAgfTtcbiAgICBfdGhpcy5jbG9zZU1vZGFsID0gX3RoaXMuY2xvc2VNb2RhbC5iaW5kKF90aGlzKTtcbiAgICBfdGhpcy51cGRhdGVGb2N1cyA9IF90aGlzLnVwZGF0ZUZvY3VzLmJpbmQoX3RoaXMpO1xuXG4gICAgX3RoaXMudGltZW91dDsgLy8gdXNlZCBmb3IgcmVzaXppbmcgdmlkZW8uXG4gICAgcmV0dXJuIF90aGlzO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKE1vZGFsVmlkZW8sIFt7XG4gICAga2V5OiAnb3Blbk1vZGFsJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gb3Blbk1vZGFsKCkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGlzT3BlbjogdHJ1ZSB9KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdjbG9zZU1vZGFsJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gY2xvc2VNb2RhbCgpIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyBpc09wZW46IGZhbHNlIH0pO1xuICAgICAgaWYgKHR5cGVvZiB0aGlzLnByb3BzLm9uQ2xvc2UgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhpcy5wcm9wcy5vbkNsb3NlKCk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAna2V5ZG93bkhhbmRsZXInLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBrZXlkb3duSGFuZGxlcihlKSB7XG4gICAgICBpZiAoZS5rZXlDb2RlID09PSAyNykge1xuICAgICAgICB0aGlzLmNsb3NlTW9kYWwoKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdjb21wb25lbnREaWRNb3VudCcsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMua2V5ZG93bkhhbmRsZXIuYmluZCh0aGlzKSk7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5yZXNpemVNb2RhbFZpZGVvV2hlbkhlaWdodEdyZWF0ZXJUaGFuV2luZG93SGVpZ2h0LmJpbmQodGhpcykpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ2NvbXBvbmVudFdpbGxVbm1vdW50JyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5rZXlkb3duSGFuZGxlci5iaW5kKHRoaXMpKTtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLnJlc2l6ZU1vZGFsVmlkZW9XaGVuSGVpZ2h0R3JlYXRlclRoYW5XaW5kb3dIZWlnaHQuYmluZCh0aGlzKSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnY29tcG9uZW50RGlkVXBkYXRlJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkVXBkYXRlKCkge1xuICAgICAgaWYgKHRoaXMuc3RhdGUuaXNPcGVuICYmIHRoaXMubW9kYWwpIHtcbiAgICAgICAgdGhpcy5tb2RhbC5mb2N1cygpO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ3VwZGF0ZUZvY3VzJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gdXBkYXRlRm9jdXMoZSkge1xuICAgICAgaWYgKGUua2V5Q29kZSA9PT0gOSkge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGlmICh0aGlzLm1vZGFsID09PSBkb2N1bWVudC5hY3RpdmVFbGVtZW50KSB7XG4gICAgICAgICAgdGhpcy5tb2RhbGJ0bi5mb2N1cygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMubW9kYWwuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlc2l6ZSBtb2RhbC12aWRlby1pZnJhbWUtd3JhcCB3aGVuIHdpbmRvdyBzaXplIGNoYW5nZWQgd2hlbiB0aGUgaGVpZ2h0IG9mIHRoZSB2aWRlbyBpcyBncmVhdGVyIHRoYW4gdGhlIGhlaWdodCBvZiB0aGUgd2luZG93LlxuICAgICAqL1xuXG4gIH0sIHtcbiAgICBrZXk6ICdyZXNpemVNb2RhbFZpZGVvV2hlbkhlaWdodEdyZWF0ZXJUaGFuV2luZG93SGVpZ2h0JyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVzaXplTW9kYWxWaWRlb1doZW5IZWlnaHRHcmVhdGVyVGhhbldpbmRvd0hlaWdodCgpIHtcbiAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0KTtcblxuICAgICAgdGhpcy50aW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciB3aWR0aCA9IF90aGlzMi5nZXRXaWR0aEZ1bGZpbGxBc3BlY3RSYXRpbyhfdGhpczIucHJvcHMucmF0aW8sIHdpbmRvdy5pbm5lckhlaWdodCwgd2luZG93LmlubmVyV2lkdGgpO1xuICAgICAgICBpZiAoX3RoaXMyLnN0YXRlLm1vZGFsVmlkZW9XaWR0aCAhPSB3aWR0aCkge1xuICAgICAgICAgIF90aGlzMi5zZXRTdGF0ZSh7XG4gICAgICAgICAgICBtb2RhbFZpZGVvV2lkdGg6IHdpZHRoXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sIDEwKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdnZXRRdWVyeVN0cmluZycsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldFF1ZXJ5U3RyaW5nKG9iaikge1xuICAgICAgdmFyIHVybCA9ICcnO1xuICAgICAgZm9yICh2YXIga2V5IGluIG9iaikge1xuICAgICAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICBpZiAob2JqW2tleV0gIT09IG51bGwpIHtcbiAgICAgICAgICAgIHVybCArPSBrZXkgKyAnPScgKyBvYmpba2V5XSArICcmJztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB1cmwuc3Vic3RyKDAsIHVybC5sZW5ndGggLSAxKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdnZXRZb3V0dWJlVXJsJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0WW91dHViZVVybCh5b3V0dWJlLCB2aWRlb0lkKSB7XG4gICAgICB2YXIgcXVlcnkgPSB0aGlzLmdldFF1ZXJ5U3RyaW5nKHlvdXR1YmUpO1xuICAgICAgcmV0dXJuICcvL3d3dy55b3V0dWJlLmNvbS9lbWJlZC8nICsgdmlkZW9JZCArICc/JyArIHF1ZXJ5O1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ2dldFZpbWVvVXJsJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0VmltZW9VcmwodmltZW8sIHZpZGVvSWQpIHtcbiAgICAgIHZhciBxdWVyeSA9IHRoaXMuZ2V0UXVlcnlTdHJpbmcodmltZW8pO1xuICAgICAgcmV0dXJuICcvL3BsYXllci52aW1lby5jb20vdmlkZW8vJyArIHZpZGVvSWQgKyAnPycgKyBxdWVyeTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdnZXRZb3VrdVVybCcsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldFlvdWt1VXJsKHlvdWt1LCB2aWRlb0lkKSB7XG4gICAgICB2YXIgcXVlcnkgPSB0aGlzLmdldFF1ZXJ5U3RyaW5nKHlvdWt1KTtcbiAgICAgIHJldHVybiAnLy9wbGF5ZXIueW91a3UuY29tL2VtYmVkLycgKyB2aWRlb0lkICsgJz8nICsgcXVlcnk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnZ2V0VmlkZW9VcmwnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRWaWRlb1VybChvcHQsIHZpZGVvSWQpIHtcbiAgICAgIGlmIChvcHQuY2hhbm5lbCA9PT0gJ3lvdXR1YmUnKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFlvdXR1YmVVcmwob3B0LnlvdXR1YmUsIHZpZGVvSWQpO1xuICAgICAgfSBlbHNlIGlmIChvcHQuY2hhbm5lbCA9PT0gJ3ZpbWVvJykge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRWaW1lb1VybChvcHQudmltZW8sIHZpZGVvSWQpO1xuICAgICAgfSBlbHNlIGlmIChvcHQuY2hhbm5lbCA9PT0gJ3lvdWt1Jykge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRZb3VrdVVybChvcHQueW91a3UsIHZpZGVvSWQpO1xuICAgICAgfSBlbHNlIGlmIChvcHQuY2hhbm5lbCA9PT0gJ2N1c3RvbScpIHtcbiAgICAgICAgcmV0dXJuIG9wdC51cmw7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnZ2V0UGFkZGluZycsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldFBhZGRpbmcocmF0aW8pIHtcbiAgICAgIHZhciBhcnIgPSByYXRpby5zcGxpdCgnOicpO1xuICAgICAgdmFyIHdpZHRoID0gTnVtYmVyKGFyclswXSk7XG4gICAgICB2YXIgaGVpZ2h0ID0gTnVtYmVyKGFyclsxXSk7XG4gICAgICB2YXIgcGFkZGluZyA9IGhlaWdodCAqIDEwMCAvIHdpZHRoO1xuICAgICAgcmV0dXJuIHBhZGRpbmcgKyAnJSc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlIHRoZSB3aWR0aCBvZiB0aGUgdmlkZW8gZnVsZmlsbCBhc3BlY3QgcmF0aW8uXG4gICAgICogV2hlbiB0aGUgaGVpZ2h0IG9mIHRoZSB2aWRlbyBpcyBncmVhdGVyIHRoYW4gdGhlIGhlaWdodCBvZiB0aGUgd2luZG93LFxuICAgICAqIHRoaXMgZnVuY3Rpb24gcmV0dXJuIHRoZSB3aWR0aCB0aGF0IGZ1bGZpbGwgdGhlIGFzcGVjdCByYXRpbyBmb3IgdGhlIGhlaWdodCBvZiB0aGUgd2luZG93LlxuICAgICAqIEluIG90aGVyIGNhc2VzLCB0aGlzIGZ1bmN0aW9uIHJldHVybiAnMTAwJScodGhlIGhlaWdodCByZWxhdGl2ZSB0byB0aGUgd2lkdGggaXMgZGV0ZXJtaW5lZCBieSBjc3MpLlxuICAgICAqIFxuICAgICAqIEBwYXJhbSBzdHJpbmcgcmF0aW9cbiAgICAgKiBAcGFyYW0gbnVtYmVyIG1heFdpZHRoXG4gICAgICogQHJldHVybnMgbnVtYmVyIHwgJzEwMCUnXG4gICAgICovXG5cbiAgfSwge1xuICAgIGtleTogJ2dldFdpZHRoRnVsZmlsbEFzcGVjdFJhdGlvJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0V2lkdGhGdWxmaWxsQXNwZWN0UmF0aW8ocmF0aW8sIG1heEhlaWdodCwgbWF4V2lkdGgpIHtcbiAgICAgIHZhciBhcnIgPSByYXRpby5zcGxpdCgnOicpO1xuICAgICAgdmFyIHdpZHRoID0gTnVtYmVyKGFyclswXSk7XG4gICAgICB2YXIgaGVpZ2h0ID0gTnVtYmVyKGFyclsxXSk7XG5cbiAgICAgIC8vIEhlaWdodCB0aGF0IGZ1bGZpbGwgdGhlIGFzcGVjdCByYXRpbyBmb3IgbWF4V2lkdGguXG4gICAgICB2YXIgdmlkZW9IZWlnaHQgPSBtYXhXaWR0aCAqIChoZWlnaHQgLyB3aWR0aCk7XG5cbiAgICAgIGlmIChtYXhIZWlnaHQgPCB2aWRlb0hlaWdodCkge1xuICAgICAgICAvLyB3aGVuIHRoZSBoZWlnaHQgb2YgdGhlIHZpZGVvIGlzIGdyZWF0ZXIgdGhhbiB0aGUgaGVpZ2h0IG9mIHRoZSB3aW5kb3cuXG4gICAgICAgIC8vIGNhbGN1bGF0ZSB0aGUgd2lkdGggdGhhdCBmdWxmaWxsIHRoZSBhc3BlY3QgcmF0aW8gZm9yIHRoZSBoZWlnaHQgb2YgdGhlIHdpbmRvdy5cblxuICAgICAgICAvLyBleDogMTY6OSBhc3BlY3QgcmF0aW9cbiAgICAgICAgLy8gMTY6OSA9IHdpZHRoIDogaGVpZ2h0XG4gICAgICAgIC8vIOKGkiB3aWR0aCA9IDE2IC8gOSAqIGhlaWdodFxuICAgICAgICByZXR1cm4gTWF0aC5mbG9vcih3aWR0aCAvIGhlaWdodCAqIG1heEhlaWdodCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnMTAwJSc7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAncmVuZGVyJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgdmFyIF90aGlzMyA9IHRoaXM7XG5cbiAgICAgIHZhciBtb2RhbFZpZGVvSW5uZXJTdHlsZSA9IHtcbiAgICAgICAgd2lkdGg6IHRoaXMuc3RhdGUubW9kYWxWaWRlb1dpZHRoXG4gICAgICB9O1xuXG4gICAgICB2YXIgbW9kYWxWaWRlb0lmcmFtZVdyYXBTdHlsZSA9IHtcbiAgICAgICAgcGFkZGluZ0JvdHRvbTogdGhpcy5nZXRQYWRkaW5nKHRoaXMucHJvcHMucmF0aW8pXG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gX3JlYWN0Mi5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgIF9DU1NUcmFuc2l0aW9uMi5kZWZhdWx0LFxuICAgICAgICB7XG4gICAgICAgICAgY2xhc3NOYW1lczogdGhpcy5wcm9wcy5jbGFzc05hbWVzLm1vZGFsVmlkZW9FZmZlY3QsXG4gICAgICAgICAgdGltZW91dDogdGhpcy5wcm9wcy5hbmltYXRpb25TcGVlZFxuICAgICAgICB9LFxuICAgICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgaWYgKCFfdGhpczMuc3RhdGUuaXNPcGVuKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gX3JlYWN0Mi5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgIHsgY2xhc3NOYW1lOiBfdGhpczMucHJvcHMuY2xhc3NOYW1lcy5tb2RhbFZpZGVvLCB0YWJJbmRleDogJy0xJywgcm9sZTogJ2RpYWxvZycsXG4gICAgICAgICAgICAgICdhcmlhLWxhYmVsJzogX3RoaXMzLnByb3BzLmFyaWEub3Blbk1lc3NhZ2UsIG9uQ2xpY2s6IF90aGlzMy5jbG9zZU1vZGFsLCByZWY6IGZ1bmN0aW9uIHJlZihub2RlKSB7XG4gICAgICAgICAgICAgICAgX3RoaXMzLm1vZGFsID0gbm9kZTtcbiAgICAgICAgICAgICAgfSwgb25LZXlEb3duOiBfdGhpczMudXBkYXRlRm9jdXMgfSxcbiAgICAgICAgICAgIF9yZWFjdDIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgeyBjbGFzc05hbWU6IF90aGlzMy5wcm9wcy5jbGFzc05hbWVzLm1vZGFsVmlkZW9Cb2R5IH0sXG4gICAgICAgICAgICAgIF9yZWFjdDIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgIHsgY2xhc3NOYW1lOiBfdGhpczMucHJvcHMuY2xhc3NOYW1lcy5tb2RhbFZpZGVvSW5uZXIsIHN0eWxlOiBtb2RhbFZpZGVvSW5uZXJTdHlsZSB9LFxuICAgICAgICAgICAgICAgIF9yZWFjdDIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgICB7IGNsYXNzTmFtZTogX3RoaXMzLnByb3BzLmNsYXNzTmFtZXMubW9kYWxWaWRlb0lmcmFtZVdyYXAsIHN0eWxlOiBtb2RhbFZpZGVvSWZyYW1lV3JhcFN0eWxlIH0sXG4gICAgICAgICAgICAgICAgICBfcmVhY3QyLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJywgeyBjbGFzc05hbWU6IF90aGlzMy5wcm9wcy5jbGFzc05hbWVzLm1vZGFsVmlkZW9DbG9zZUJ0biwgJ2FyaWEtbGFiZWwnOiBfdGhpczMucHJvcHMuYXJpYS5kaXNtaXNzQnRuTWVzc2FnZSwgcmVmOiBmdW5jdGlvbiByZWYobm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgIF90aGlzMy5tb2RhbGJ0biA9IG5vZGU7XG4gICAgICAgICAgICAgICAgICAgIH0sIG9uS2V5RG93bjogX3RoaXMzLnVwZGF0ZUZvY3VzIH0pLFxuICAgICAgICAgICAgICAgICAgX3RoaXMzLnByb3BzLmNoaWxkcmVuIHx8IF9yZWFjdDIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnLCB7IHdpZHRoOiAnNDYwJywgaGVpZ2h0OiAnMjMwJywgc3JjOiBfdGhpczMuZ2V0VmlkZW9VcmwoX3RoaXMzLnByb3BzLCBfdGhpczMucHJvcHMudmlkZW9JZCksIGZyYW1lQm9yZGVyOiAnMCcsIGFsbG93OiAnYWNjZWxlcm9tZXRlcjsgYXV0b3BsYXk7IGVuY3J5cHRlZC1tZWRpYTsgZ3lyb3Njb3BlOyBwaWN0dXJlLWluLXBpY3R1cmUnLCBhbGxvd0Z1bGxTY3JlZW46IF90aGlzMy5wcm9wcy5hbGxvd0Z1bGxTY3JlZW4sIHRhYkluZGV4OiAnLTEnIH0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gIH1dLCBbe1xuICAgIGtleTogJ2dldERlcml2ZWRTdGF0ZUZyb21Qcm9wcycsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyhwcm9wcykge1xuICAgICAgcmV0dXJuIHsgaXNPcGVuOiBwcm9wcy5pc09wZW4gfTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gTW9kYWxWaWRlbztcbn0oX3JlYWN0Mi5kZWZhdWx0LkNvbXBvbmVudCk7XG5cbmV4cG9ydHMuZGVmYXVsdCA9IE1vZGFsVmlkZW87XG5cblxuTW9kYWxWaWRlby5kZWZhdWx0UHJvcHMgPSB7XG4gIGNoYW5uZWw6ICd5b3V0dWJlJyxcbiAgaXNPcGVuOiBmYWxzZSxcbiAgeW91dHViZToge1xuICAgIGF1dG9wbGF5OiAxLFxuICAgIGNjX2xvYWRfcG9saWN5OiAxLFxuICAgIGNvbG9yOiBudWxsLFxuICAgIGNvbnRyb2xzOiAxLFxuICAgIGRpc2FibGVrYjogMCxcbiAgICBlbmFibGVqc2FwaTogMCxcbiAgICBlbmQ6IG51bGwsXG4gICAgZnM6IDEsXG4gICAgaDE6IG51bGwsXG4gICAgaXZfbG9hZF9wb2xpY3k6IDEsXG4gICAgbGlzdDogbnVsbCxcbiAgICBsaXN0VHlwZTogbnVsbCxcbiAgICBsb29wOiAwLFxuICAgIG1vZGVzdGJyYW5kaW5nOiBudWxsLFxuICAgIG9yaWdpbjogbnVsbCxcbiAgICBwbGF5bGlzdDogbnVsbCxcbiAgICBwbGF5c2lubGluZTogbnVsbCxcbiAgICByZWw6IDAsXG4gICAgc2hvd2luZm86IDEsXG4gICAgc3RhcnQ6IDAsXG4gICAgd21vZGU6ICd0cmFuc3BhcmVudCcsXG4gICAgdGhlbWU6ICdkYXJrJyxcbiAgICBtdXRlOiAwXG4gIH0sXG4gIHJhdGlvOiAnMTY6OScsXG4gIHZpbWVvOiB7XG4gICAgYXBpOiBmYWxzZSxcbiAgICBhdXRvcGF1c2U6IHRydWUsXG4gICAgYXV0b3BsYXk6IHRydWUsXG4gICAgYnlsaW5lOiB0cnVlLFxuICAgIGNhbGxiYWNrOiBudWxsLFxuICAgIGNvbG9yOiBudWxsLFxuICAgIGhlaWdodDogbnVsbCxcbiAgICBsb29wOiBmYWxzZSxcbiAgICBtYXhoZWlnaHQ6IG51bGwsXG4gICAgbWF4d2lkdGg6IG51bGwsXG4gICAgcGxheWVyX2lkOiBudWxsLFxuICAgIHBvcnRyYWl0OiB0cnVlLFxuICAgIHRpdGxlOiB0cnVlLFxuICAgIHdpZHRoOiBudWxsLFxuICAgIHhodG1sOiBmYWxzZVxuICB9LFxuICB5b3VrdToge1xuICAgIGF1dG9wbGF5OiAxLFxuICAgIHNob3dfcmVsYXRlZDogMFxuICB9LFxuICBhbGxvd0Z1bGxTY3JlZW46IHRydWUsXG4gIGFuaW1hdGlvblNwZWVkOiAzMDAsXG4gIGNsYXNzTmFtZXM6IHtcbiAgICBtb2RhbFZpZGVvRWZmZWN0OiAnbW9kYWwtdmlkZW8tZWZmZWN0JyxcbiAgICBtb2RhbFZpZGVvOiAnbW9kYWwtdmlkZW8nLFxuICAgIG1vZGFsVmlkZW9DbG9zZTogJ21vZGFsLXZpZGVvLWNsb3NlJyxcbiAgICBtb2RhbFZpZGVvQm9keTogJ21vZGFsLXZpZGVvLWJvZHknLFxuICAgIG1vZGFsVmlkZW9Jbm5lcjogJ21vZGFsLXZpZGVvLWlubmVyJyxcbiAgICBtb2RhbFZpZGVvSWZyYW1lV3JhcDogJ21vZGFsLXZpZGVvLW1vdmllLXdyYXAnLFxuICAgIG1vZGFsVmlkZW9DbG9zZUJ0bjogJ21vZGFsLXZpZGVvLWNsb3NlLWJ0bidcbiAgfSxcbiAgYXJpYToge1xuICAgIG9wZW5NZXNzYWdlOiAnWW91IGp1c3Qgb3BlbmVkIHRoZSBtb2RhbCB2aWRlbycsXG4gICAgZGlzbWlzc0J0bk1lc3NhZ2U6ICdDbG9zZSB0aGUgbW9kYWwgYnkgY2xpY2tpbmcgaGVyZSdcbiAgfVxufTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-modal-video/lib/index.js\n"); + +/***/ }), + +/***/ "./node_modules/react-modal-video/node_modules/dom-helpers/class/addClass.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/react-modal-video/node_modules/dom-helpers/class/addClass.js ***! + \***********************************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nexports.__esModule = true;\nexports[\"default\"] = addClass;\n\nvar _hasClass = _interopRequireDefault(__webpack_require__(/*! ./hasClass */ \"./node_modules/react-modal-video/node_modules/dom-helpers/class/hasClass.js\"));\n\nfunction addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!(0, _hasClass.default)(element, className)) if (typeof element.className === 'string') element.className = element.className + ' ' + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + ' ' + className);\n}\n\nmodule.exports = exports[\"default\"];//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtbW9kYWwtdmlkZW8vbm9kZV9tb2R1bGVzL2RvbS1oZWxwZXJzL2NsYXNzL2FkZENsYXNzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDZCQUE2QixtQkFBTyxDQUFDLG9IQUE4Qzs7QUFFbkYsa0JBQWtCO0FBQ2xCLGtCQUFlOztBQUVmLHVDQUF1QyxtQkFBTyxDQUFDLCtGQUFZOztBQUUzRDtBQUNBLDBEQUEwRCx5SkFBeUo7QUFDbk47O0FBRUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LW1vZGFsLXZpZGVvL25vZGVfbW9kdWxlcy9kb20taGVscGVycy9jbGFzcy9hZGRDbGFzcy5qcz80ZTY3Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG52YXIgX2ludGVyb3BSZXF1aXJlRGVmYXVsdCA9IHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2ludGVyb3BSZXF1aXJlRGVmYXVsdFwiKTtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHMuZGVmYXVsdCA9IGFkZENsYXNzO1xuXG52YXIgX2hhc0NsYXNzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9oYXNDbGFzc1wiKSk7XG5cbmZ1bmN0aW9uIGFkZENsYXNzKGVsZW1lbnQsIGNsYXNzTmFtZSkge1xuICBpZiAoZWxlbWVudC5jbGFzc0xpc3QpIGVsZW1lbnQuY2xhc3NMaXN0LmFkZChjbGFzc05hbWUpO2Vsc2UgaWYgKCEoMCwgX2hhc0NsYXNzLmRlZmF1bHQpKGVsZW1lbnQsIGNsYXNzTmFtZSkpIGlmICh0eXBlb2YgZWxlbWVudC5jbGFzc05hbWUgPT09ICdzdHJpbmcnKSBlbGVtZW50LmNsYXNzTmFtZSA9IGVsZW1lbnQuY2xhc3NOYW1lICsgJyAnICsgY2xhc3NOYW1lO2Vsc2UgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgKGVsZW1lbnQuY2xhc3NOYW1lICYmIGVsZW1lbnQuY2xhc3NOYW1lLmJhc2VWYWwgfHwgJycpICsgJyAnICsgY2xhc3NOYW1lKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzW1wiZGVmYXVsdFwiXTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-modal-video/node_modules/dom-helpers/class/addClass.js\n"); + +/***/ }), + +/***/ "./node_modules/react-modal-video/node_modules/dom-helpers/class/hasClass.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/react-modal-video/node_modules/dom-helpers/class/hasClass.js ***! + \***********************************************************************************/ +/***/ (function(module, exports) { + +"use strict"; +eval("\n\nexports.__esModule = true;\nexports[\"default\"] = hasClass;\n\nfunction hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);else return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}\n\nmodule.exports = exports[\"default\"];//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtbW9kYWwtdmlkZW8vbm9kZV9tb2R1bGVzL2RvbS1oZWxwZXJzL2NsYXNzL2hhc0NsYXNzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLGtCQUFrQjtBQUNsQixrQkFBZTs7QUFFZjtBQUNBLHFGQUFxRjtBQUNyRjs7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmVhY3QtbW9kYWwtdmlkZW8vbm9kZV9tb2R1bGVzL2RvbS1oZWxwZXJzL2NsYXNzL2hhc0NsYXNzLmpzPzc1ZjgiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLmRlZmF1bHQgPSBoYXNDbGFzcztcblxuZnVuY3Rpb24gaGFzQ2xhc3MoZWxlbWVudCwgY2xhc3NOYW1lKSB7XG4gIGlmIChlbGVtZW50LmNsYXNzTGlzdCkgcmV0dXJuICEhY2xhc3NOYW1lICYmIGVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKGNsYXNzTmFtZSk7ZWxzZSByZXR1cm4gKFwiIFwiICsgKGVsZW1lbnQuY2xhc3NOYW1lLmJhc2VWYWwgfHwgZWxlbWVudC5jbGFzc05hbWUpICsgXCIgXCIpLmluZGV4T2YoXCIgXCIgKyBjbGFzc05hbWUgKyBcIiBcIikgIT09IC0xO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbXCJkZWZhdWx0XCJdOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-modal-video/node_modules/dom-helpers/class/hasClass.js\n"); + +/***/ }), + +/***/ "./node_modules/react-modal-video/node_modules/dom-helpers/class/removeClass.js": +/*!**************************************************************************************!*\ + !*** ./node_modules/react-modal-video/node_modules/dom-helpers/class/removeClass.js ***! + \**************************************************************************************/ +/***/ (function(module) { + +"use strict"; +eval("\n\nfunction replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp('(^|\\\\s)' + classToRemove + '(?:\\\\s|$)', 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n\nmodule.exports = function removeClass(element, className) {\n if (element.classList) element.classList.remove(className);else if (typeof element.className === 'string') element.className = replaceClassName(element.className, className);else element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtbW9kYWwtdmlkZW8vbm9kZV9tb2R1bGVzL2RvbS1oZWxwZXJzL2NsYXNzL3JlbW92ZUNsYXNzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDZEQUE2RCxtSEFBbUg7QUFDaEwiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LW1vZGFsLXZpZGVvL25vZGVfbW9kdWxlcy9kb20taGVscGVycy9jbGFzcy9yZW1vdmVDbGFzcy5qcz85YzIxIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuZnVuY3Rpb24gcmVwbGFjZUNsYXNzTmFtZShvcmlnQ2xhc3MsIGNsYXNzVG9SZW1vdmUpIHtcbiAgcmV0dXJuIG9yaWdDbGFzcy5yZXBsYWNlKG5ldyBSZWdFeHAoJyhefFxcXFxzKScgKyBjbGFzc1RvUmVtb3ZlICsgJyg/OlxcXFxzfCQpJywgJ2cnKSwgJyQxJykucmVwbGFjZSgvXFxzKy9nLCAnICcpLnJlcGxhY2UoL15cXHMqfFxccyokL2csICcnKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiByZW1vdmVDbGFzcyhlbGVtZW50LCBjbGFzc05hbWUpIHtcbiAgaWYgKGVsZW1lbnQuY2xhc3NMaXN0KSBlbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoY2xhc3NOYW1lKTtlbHNlIGlmICh0eXBlb2YgZWxlbWVudC5jbGFzc05hbWUgPT09ICdzdHJpbmcnKSBlbGVtZW50LmNsYXNzTmFtZSA9IHJlcGxhY2VDbGFzc05hbWUoZWxlbWVudC5jbGFzc05hbWUsIGNsYXNzTmFtZSk7ZWxzZSBlbGVtZW50LnNldEF0dHJpYnV0ZSgnY2xhc3MnLCByZXBsYWNlQ2xhc3NOYW1lKGVsZW1lbnQuY2xhc3NOYW1lICYmIGVsZW1lbnQuY2xhc3NOYW1lLmJhc2VWYWwgfHwgJycsIGNsYXNzTmFtZSkpO1xufTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-modal-video/node_modules/dom-helpers/class/removeClass.js\n"); + +/***/ }), + +/***/ "./node_modules/react-modal-video/node_modules/react-transition-group/CSSTransition.js": +/*!*********************************************************************************************!*\ + !*** ./node_modules/react-modal-video/node_modules/react-transition-group/CSSTransition.js ***! + \*********************************************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar PropTypes = _interopRequireWildcard(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\n\nvar _addClass = _interopRequireDefault(__webpack_require__(/*! dom-helpers/class/addClass */ \"./node_modules/react-modal-video/node_modules/dom-helpers/class/addClass.js\"));\n\nvar _removeClass = _interopRequireDefault(__webpack_require__(/*! dom-helpers/class/removeClass */ \"./node_modules/react-modal-video/node_modules/dom-helpers/class/removeClass.js\"));\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _Transition = _interopRequireDefault(__webpack_require__(/*! ./Transition */ \"./node_modules/react-modal-video/node_modules/react-transition-group/Transition.js\"));\n\nvar _PropTypes = __webpack_require__(/*! ./utils/PropTypes */ \"./node_modules/react-modal-video/node_modules/react-transition-group/utils/PropTypes.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return (0, _addClass.default)(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return (0, _removeClass.default)(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](http://www.nganimate.org/) library, you should use it if you're\n * using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n * <div>\n * <CSSTransition in={inProp} timeout={200} classNames=\"my-node\">\n * <div>\n * {\"I'll receive my-node-* classes\"}\n * </div>\n * </CSSTransition>\n * <button type=\"button\" onClick={() => setInProp(true)}>\n * Click to Enter\n * </button>\n * </div>\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity: 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**.\n */\n\n\nvar CSSTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.onEnter = function (node, appearing) {\n var _this$getClassNames = _this.getClassNames(appearing ? 'appear' : 'enter'),\n className = _this$getClassNames.className;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, className);\n\n if (_this.props.onEnter) {\n _this.props.onEnter(node, appearing);\n }\n };\n\n _this.onEntering = function (node, appearing) {\n var _this$getClassNames2 = _this.getClassNames(appearing ? 'appear' : 'enter'),\n activeClassName = _this$getClassNames2.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onEntering) {\n _this.props.onEntering(node, appearing);\n }\n };\n\n _this.onEntered = function (node, appearing) {\n var appearClassName = _this.getClassNames('appear').doneClassName;\n\n var enterClassName = _this.getClassNames('enter').doneClassName;\n\n var doneClassName = appearing ? appearClassName + \" \" + enterClassName : enterClassName;\n\n _this.removeClasses(node, appearing ? 'appear' : 'enter');\n\n addClass(node, doneClassName);\n\n if (_this.props.onEntered) {\n _this.props.onEntered(node, appearing);\n }\n };\n\n _this.onExit = function (node) {\n var _this$getClassNames3 = _this.getClassNames('exit'),\n className = _this$getClassNames3.className;\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n addClass(node, className);\n\n if (_this.props.onExit) {\n _this.props.onExit(node);\n }\n };\n\n _this.onExiting = function (node) {\n var _this$getClassNames4 = _this.getClassNames('exit'),\n activeClassName = _this$getClassNames4.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onExiting) {\n _this.props.onExiting(node);\n }\n };\n\n _this.onExited = function (node) {\n var _this$getClassNames5 = _this.getClassNames('exit'),\n doneClassName = _this$getClassNames5.doneClassName;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, doneClassName);\n\n if (_this.props.onExited) {\n _this.props.onExited(node);\n }\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + '-' : '';\n var className = isStringClassNames ? prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? className + '-active' : classNames[type + 'Active'];\n var doneClassName = isStringClassNames ? className + '-done' : classNames[type + 'Done'];\n return {\n className: className,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$getClassNames6 = this.getClassNames(type),\n className = _this$getClassNames6.className,\n activeClassName = _this$getClassNames6.activeClassName,\n doneClassName = _this$getClassNames6.doneClassName;\n\n className && removeClass(node, className);\n activeClassName && removeClass(node, activeClassName);\n doneClassName && removeClass(node, doneClassName);\n };\n\n _proto.reflowAndAddClass = function reflowAndAddClass(node, className) {\n // This is for to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n if (className) {\n /* eslint-disable no-unused-expressions */\n node && node.scrollTop;\n /* eslint-enable no-unused-expressions */\n\n addClass(node, className);\n }\n };\n\n _proto.render = function render() {\n var props = _extends({}, this.props);\n\n delete props.classNames;\n return _react.default.createElement(_Transition.default, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(_react.default.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = true ? _extends({}, _Transition.default.propTypes, {\n /**\n * The animation classNames applied to the component as it enters, exits or\n * has finished the transition. A single name can be provided and it will be\n * suffixed for each stage: e.g.\n *\n * `classNames=\"fade\"` applies `fade-enter`, `fade-enter-active`,\n * `fade-enter-done`, `fade-exit`, `fade-exit-active`, `fade-exit-done`,\n * `fade-appear`, `fade-appear-active`, and `fade-appear-done`.\n *\n * **Note**: `fade-appear-done` and `fade-enter-done` will _both_ be applied.\n * This allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply an\n * epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: _PropTypes.classNamesShape,\n\n /**\n * A `<Transition>` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'exit' class is\n * applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'exit-active' is applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : 0;\nvar _default = CSSTransition;\nexports[\"default\"] = _default;\nmodule.exports = exports[\"default\"];//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtbW9kYWwtdmlkZW8vbm9kZV9tb2R1bGVzL3JlYWN0LXRyYW5zaXRpb24tZ3JvdXAvQ1NTVHJhbnNpdGlvbi5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYixrQkFBa0I7QUFDbEIsa0JBQWU7O0FBRWYsd0NBQXdDLG1CQUFPLENBQUMsc0RBQVk7O0FBRTVELHVDQUF1QyxtQkFBTyxDQUFDLCtHQUE0Qjs7QUFFM0UsMENBQTBDLG1CQUFPLENBQUMscUhBQStCOztBQUVqRixvQ0FBb0MsbUJBQU8sQ0FBQyw0Q0FBTzs7QUFFbkQseUNBQXlDLG1CQUFPLENBQUMsd0dBQWM7O0FBRS9ELGlCQUFpQixtQkFBTyxDQUFDLGtIQUFtQjs7QUFFNUMsdUNBQXVDLHVDQUF1Qzs7QUFFOUUsd0NBQXdDLDZCQUE2QixjQUFjLE9BQU8saUJBQWlCLG1CQUFtQix1QkFBdUIsc0RBQXNELHNIQUFzSCw0QkFBNEIsNENBQTRDLE9BQU8sZ0NBQWdDLHNCQUFzQjs7QUFFdGMsc0JBQXNCLGdEQUFnRCxnQkFBZ0Isc0JBQXNCLE9BQU8sMkJBQTJCLDBCQUEwQix5REFBeUQsaUNBQWlDLGtCQUFrQjs7QUFFcFIsZ0RBQWdELDBEQUEwRCwyQ0FBMkM7O0FBRXJKO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIsUUFBUSxTQUFTLEtBQUs7QUFDbEQ7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBLHdDQUF3QyxzQkFBc0I7QUFDOUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBLHdFQUF3RSxhQUFhO0FBQ3JGO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSwyQkFBMkI7O0FBRTNCO0FBQ0Esd0VBQXdFO0FBQ3hFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLEtBQXFDLGNBQWM7QUFDN0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxJQUFJLENBQUU7QUFDUDtBQUNBLGtCQUFlO0FBQ2YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LW1vZGFsLXZpZGVvL25vZGVfbW9kdWxlcy9yZWFjdC10cmFuc2l0aW9uLWdyb3VwL0NTU1RyYW5zaXRpb24uanM/OTVhOSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHMuZGVmYXVsdCA9IHZvaWQgMDtcblxudmFyIFByb3BUeXBlcyA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJwcm9wLXR5cGVzXCIpKTtcblxudmFyIF9hZGRDbGFzcyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcImRvbS1oZWxwZXJzL2NsYXNzL2FkZENsYXNzXCIpKTtcblxudmFyIF9yZW1vdmVDbGFzcyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcImRvbS1oZWxwZXJzL2NsYXNzL3JlbW92ZUNsYXNzXCIpKTtcblxudmFyIF9yZWFjdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJlYWN0XCIpKTtcblxudmFyIF9UcmFuc2l0aW9uID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9UcmFuc2l0aW9uXCIpKTtcblxudmFyIF9Qcm9wVHlwZXMgPSByZXF1aXJlKFwiLi91dGlscy9Qcm9wVHlwZXNcIik7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKG9iaikgeyBpZiAob2JqICYmIG9iai5fX2VzTW9kdWxlKSB7IHJldHVybiBvYmo7IH0gZWxzZSB7IHZhciBuZXdPYmogPSB7fTsgaWYgKG9iaiAhPSBudWxsKSB7IGZvciAodmFyIGtleSBpbiBvYmopIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHsgdmFyIGRlc2MgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDoge307IGlmIChkZXNjLmdldCB8fCBkZXNjLnNldCkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpOyB9IGVsc2UgeyBuZXdPYmpba2V5XSA9IG9ialtrZXldOyB9IH0gfSB9IG5ld09iai5kZWZhdWx0ID0gb2JqOyByZXR1cm4gbmV3T2JqOyB9IH1cblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzTG9vc2Uoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzLnByb3RvdHlwZSk7IHN1YkNsYXNzLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IHN1YkNsYXNzOyBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBhZGRDbGFzcyA9IGZ1bmN0aW9uIGFkZENsYXNzKG5vZGUsIGNsYXNzZXMpIHtcbiAgcmV0dXJuIG5vZGUgJiYgY2xhc3NlcyAmJiBjbGFzc2VzLnNwbGl0KCcgJykuZm9yRWFjaChmdW5jdGlvbiAoYykge1xuICAgIHJldHVybiAoMCwgX2FkZENsYXNzLmRlZmF1bHQpKG5vZGUsIGMpO1xuICB9KTtcbn07XG5cbnZhciByZW1vdmVDbGFzcyA9IGZ1bmN0aW9uIHJlbW92ZUNsYXNzKG5vZGUsIGNsYXNzZXMpIHtcbiAgcmV0dXJuIG5vZGUgJiYgY2xhc3NlcyAmJiBjbGFzc2VzLnNwbGl0KCcgJykuZm9yRWFjaChmdW5jdGlvbiAoYykge1xuICAgIHJldHVybiAoMCwgX3JlbW92ZUNsYXNzLmRlZmF1bHQpKG5vZGUsIGMpO1xuICB9KTtcbn07XG4vKipcbiAqIEEgdHJhbnNpdGlvbiBjb21wb25lbnQgaW5zcGlyZWQgYnkgdGhlIGV4Y2VsbGVudFxuICogW25nLWFuaW1hdGVdKGh0dHA6Ly93d3cubmdhbmltYXRlLm9yZy8pIGxpYnJhcnksIHlvdSBzaG91bGQgdXNlIGl0IGlmIHlvdSdyZVxuICogdXNpbmcgQ1NTIHRyYW5zaXRpb25zIG9yIGFuaW1hdGlvbnMuIEl0J3MgYnVpbHQgdXBvbiB0aGVcbiAqIFtgVHJhbnNpdGlvbmBdKGh0dHBzOi8vcmVhY3Rjb21tdW5pdHkub3JnL3JlYWN0LXRyYW5zaXRpb24tZ3JvdXAvdHJhbnNpdGlvbilcbiAqIGNvbXBvbmVudCwgc28gaXQgaW5oZXJpdHMgYWxsIG9mIGl0cyBwcm9wcy5cbiAqXG4gKiBgQ1NTVHJhbnNpdGlvbmAgYXBwbGllcyBhIHBhaXIgb2YgY2xhc3MgbmFtZXMgZHVyaW5nIHRoZSBgYXBwZWFyYCwgYGVudGVyYCxcbiAqIGFuZCBgZXhpdGAgc3RhdGVzIG9mIHRoZSB0cmFuc2l0aW9uLiBUaGUgZmlyc3QgY2xhc3MgaXMgYXBwbGllZCBhbmQgdGhlbiBhXG4gKiBzZWNvbmQgYCotYWN0aXZlYCBjbGFzcyBpbiBvcmRlciB0byBhY3RpdmF0ZSB0aGUgQ1NTUyB0cmFuc2l0aW9uLiBBZnRlciB0aGVcbiAqIHRyYW5zaXRpb24sIG1hdGNoaW5nIGAqLWRvbmVgIGNsYXNzIG5hbWVzIGFyZSBhcHBsaWVkIHRvIHBlcnNpc3QgdGhlXG4gKiB0cmFuc2l0aW9uIHN0YXRlLlxuICpcbiAqIGBgYGpzeFxuICogZnVuY3Rpb24gQXBwKCkge1xuICogICBjb25zdCBbaW5Qcm9wLCBzZXRJblByb3BdID0gdXNlU3RhdGUoZmFsc2UpO1xuICogICByZXR1cm4gKFxuICogICAgIDxkaXY+XG4gKiAgICAgICA8Q1NTVHJhbnNpdGlvbiBpbj17aW5Qcm9wfSB0aW1lb3V0PXsyMDB9IGNsYXNzTmFtZXM9XCJteS1ub2RlXCI+XG4gKiAgICAgICAgIDxkaXY+XG4gKiAgICAgICAgICAge1wiSSdsbCByZWNlaXZlIG15LW5vZGUtKiBjbGFzc2VzXCJ9XG4gKiAgICAgICAgIDwvZGl2PlxuICogICAgICAgPC9DU1NUcmFuc2l0aW9uPlxuICogICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgb25DbGljaz17KCkgPT4gc2V0SW5Qcm9wKHRydWUpfT5cbiAqICAgICAgICAgQ2xpY2sgdG8gRW50ZXJcbiAqICAgICAgIDwvYnV0dG9uPlxuICogICAgIDwvZGl2PlxuICogICApO1xuICogfVxuICogYGBgXG4gKlxuICogV2hlbiB0aGUgYGluYCBwcm9wIGlzIHNldCB0byBgdHJ1ZWAsIHRoZSBjaGlsZCBjb21wb25lbnQgd2lsbCBmaXJzdCByZWNlaXZlXG4gKiB0aGUgY2xhc3MgYGV4YW1wbGUtZW50ZXJgLCB0aGVuIHRoZSBgZXhhbXBsZS1lbnRlci1hY3RpdmVgIHdpbGwgYmUgYWRkZWQgaW5cbiAqIHRoZSBuZXh0IHRpY2suIGBDU1NUcmFuc2l0aW9uYCBbZm9yY2VzIGFcbiAqIHJlZmxvd10oaHR0cHM6Ly9naXRodWIuY29tL3JlYWN0anMvcmVhY3QtdHJhbnNpdGlvbi1ncm91cC9ibG9iLzUwMDczMDNlNzI5YTc0YmU2NmEyMWMzZTIyMDVlNDkxNjgyMTUyNGIvc3JjL0NTU1RyYW5zaXRpb24uanMjTDIwOC1MMjE1KVxuICogYmV0d2VlbiBiZWZvcmUgYWRkaW5nIHRoZSBgZXhhbXBsZS1lbnRlci1hY3RpdmVgLiBUaGlzIGlzIGFuIGltcG9ydGFudCB0cmlja1xuICogYmVjYXVzZSBpdCBhbGxvd3MgdXMgdG8gdHJhbnNpdGlvbiBiZXR3ZWVuIGBleGFtcGxlLWVudGVyYCBhbmRcbiAqIGBleGFtcGxlLWVudGVyLWFjdGl2ZWAgZXZlbiB0aG91Z2ggdGhleSB3ZXJlIGFkZGVkIGltbWVkaWF0ZWx5IG9uZSBhZnRlclxuICogYW5vdGhlci4gTW9zdCBub3RhYmx5LCB0aGlzIGlzIHdoYXQgbWFrZXMgaXQgcG9zc2libGUgZm9yIHVzIHRvIGFuaW1hdGVcbiAqIF9hcHBlYXJhbmNlXy5cbiAqXG4gKiBgYGBjc3NcbiAqIC5teS1ub2RlLWVudGVyIHtcbiAqICAgb3BhY2l0eTogMDtcbiAqIH1cbiAqIC5teS1ub2RlLWVudGVyLWFjdGl2ZSB7XG4gKiAgIG9wYWNpdHk6IDE7XG4gKiAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXM7XG4gKiB9XG4gKiAubXktbm9kZS1leGl0IHtcbiAqICAgb3BhY2l0eTogMTtcbiAqIH1cbiAqIC5teS1ub2RlLWV4aXQtYWN0aXZlIHtcbiAqICAgb3BhY2l0eTogMDtcbiAqICAgdHJhbnNpdGlvbjogb3BhY2l0eTogMjAwbXM7XG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBgKi1hY3RpdmVgIGNsYXNzZXMgcmVwcmVzZW50IHdoaWNoIHN0eWxlcyB5b3Ugd2FudCB0byBhbmltYXRlICoqdG8qKi5cbiAqL1xuXG5cbnZhciBDU1NUcmFuc2l0aW9uID1cbi8qI19fUFVSRV9fKi9cbmZ1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0c0xvb3NlKENTU1RyYW5zaXRpb24sIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIGZ1bmN0aW9uIENTU1RyYW5zaXRpb24oKSB7XG4gICAgdmFyIF90aGlzO1xuXG4gICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICBhcmdzW19rZXldID0gYXJndW1lbnRzW19rZXldO1xuICAgIH1cblxuICAgIF90aGlzID0gX1JlYWN0JENvbXBvbmVudC5jYWxsLmFwcGx5KF9SZWFjdCRDb21wb25lbnQsIFt0aGlzXS5jb25jYXQoYXJncykpIHx8IHRoaXM7XG5cbiAgICBfdGhpcy5vbkVudGVyID0gZnVuY3Rpb24gKG5vZGUsIGFwcGVhcmluZykge1xuICAgICAgdmFyIF90aGlzJGdldENsYXNzTmFtZXMgPSBfdGhpcy5nZXRDbGFzc05hbWVzKGFwcGVhcmluZyA/ICdhcHBlYXInIDogJ2VudGVyJyksXG4gICAgICAgICAgY2xhc3NOYW1lID0gX3RoaXMkZ2V0Q2xhc3NOYW1lcy5jbGFzc05hbWU7XG5cbiAgICAgIF90aGlzLnJlbW92ZUNsYXNzZXMobm9kZSwgJ2V4aXQnKTtcblxuICAgICAgYWRkQ2xhc3Mobm9kZSwgY2xhc3NOYW1lKTtcblxuICAgICAgaWYgKF90aGlzLnByb3BzLm9uRW50ZXIpIHtcbiAgICAgICAgX3RoaXMucHJvcHMub25FbnRlcihub2RlLCBhcHBlYXJpbmcpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBfdGhpcy5vbkVudGVyaW5nID0gZnVuY3Rpb24gKG5vZGUsIGFwcGVhcmluZykge1xuICAgICAgdmFyIF90aGlzJGdldENsYXNzTmFtZXMyID0gX3RoaXMuZ2V0Q2xhc3NOYW1lcyhhcHBlYXJpbmcgPyAnYXBwZWFyJyA6ICdlbnRlcicpLFxuICAgICAgICAgIGFjdGl2ZUNsYXNzTmFtZSA9IF90aGlzJGdldENsYXNzTmFtZXMyLmFjdGl2ZUNsYXNzTmFtZTtcblxuICAgICAgX3RoaXMucmVmbG93QW5kQWRkQ2xhc3Mobm9kZSwgYWN0aXZlQ2xhc3NOYW1lKTtcblxuICAgICAgaWYgKF90aGlzLnByb3BzLm9uRW50ZXJpbmcpIHtcbiAgICAgICAgX3RoaXMucHJvcHMub25FbnRlcmluZyhub2RlLCBhcHBlYXJpbmcpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBfdGhpcy5vbkVudGVyZWQgPSBmdW5jdGlvbiAobm9kZSwgYXBwZWFyaW5nKSB7XG4gICAgICB2YXIgYXBwZWFyQ2xhc3NOYW1lID0gX3RoaXMuZ2V0Q2xhc3NOYW1lcygnYXBwZWFyJykuZG9uZUNsYXNzTmFtZTtcblxuICAgICAgdmFyIGVudGVyQ2xhc3NOYW1lID0gX3RoaXMuZ2V0Q2xhc3NOYW1lcygnZW50ZXInKS5kb25lQ2xhc3NOYW1lO1xuXG4gICAgICB2YXIgZG9uZUNsYXNzTmFtZSA9IGFwcGVhcmluZyA/IGFwcGVhckNsYXNzTmFtZSArIFwiIFwiICsgZW50ZXJDbGFzc05hbWUgOiBlbnRlckNsYXNzTmFtZTtcblxuICAgICAgX3RoaXMucmVtb3ZlQ2xhc3Nlcyhub2RlLCBhcHBlYXJpbmcgPyAnYXBwZWFyJyA6ICdlbnRlcicpO1xuXG4gICAgICBhZGRDbGFzcyhub2RlLCBkb25lQ2xhc3NOYW1lKTtcblxuICAgICAgaWYgKF90aGlzLnByb3BzLm9uRW50ZXJlZCkge1xuICAgICAgICBfdGhpcy5wcm9wcy5vbkVudGVyZWQobm9kZSwgYXBwZWFyaW5nKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX3RoaXMub25FeGl0ID0gZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgIHZhciBfdGhpcyRnZXRDbGFzc05hbWVzMyA9IF90aGlzLmdldENsYXNzTmFtZXMoJ2V4aXQnKSxcbiAgICAgICAgICBjbGFzc05hbWUgPSBfdGhpcyRnZXRDbGFzc05hbWVzMy5jbGFzc05hbWU7XG5cbiAgICAgIF90aGlzLnJlbW92ZUNsYXNzZXMobm9kZSwgJ2FwcGVhcicpO1xuXG4gICAgICBfdGhpcy5yZW1vdmVDbGFzc2VzKG5vZGUsICdlbnRlcicpO1xuXG4gICAgICBhZGRDbGFzcyhub2RlLCBjbGFzc05hbWUpO1xuXG4gICAgICBpZiAoX3RoaXMucHJvcHMub25FeGl0KSB7XG4gICAgICAgIF90aGlzLnByb3BzLm9uRXhpdChub2RlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX3RoaXMub25FeGl0aW5nID0gZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgIHZhciBfdGhpcyRnZXRDbGFzc05hbWVzNCA9IF90aGlzLmdldENsYXNzTmFtZXMoJ2V4aXQnKSxcbiAgICAgICAgICBhY3RpdmVDbGFzc05hbWUgPSBfdGhpcyRnZXRDbGFzc05hbWVzNC5hY3RpdmVDbGFzc05hbWU7XG5cbiAgICAgIF90aGlzLnJlZmxvd0FuZEFkZENsYXNzKG5vZGUsIGFjdGl2ZUNsYXNzTmFtZSk7XG5cbiAgICAgIGlmIChfdGhpcy5wcm9wcy5vbkV4aXRpbmcpIHtcbiAgICAgICAgX3RoaXMucHJvcHMub25FeGl0aW5nKG5vZGUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBfdGhpcy5vbkV4aXRlZCA9IGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICB2YXIgX3RoaXMkZ2V0Q2xhc3NOYW1lczUgPSBfdGhpcy5nZXRDbGFzc05hbWVzKCdleGl0JyksXG4gICAgICAgICAgZG9uZUNsYXNzTmFtZSA9IF90aGlzJGdldENsYXNzTmFtZXM1LmRvbmVDbGFzc05hbWU7XG5cbiAgICAgIF90aGlzLnJlbW92ZUNsYXNzZXMobm9kZSwgJ2V4aXQnKTtcblxuICAgICAgYWRkQ2xhc3Mobm9kZSwgZG9uZUNsYXNzTmFtZSk7XG5cbiAgICAgIGlmIChfdGhpcy5wcm9wcy5vbkV4aXRlZCkge1xuICAgICAgICBfdGhpcy5wcm9wcy5vbkV4aXRlZChub2RlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX3RoaXMuZ2V0Q2xhc3NOYW1lcyA9IGZ1bmN0aW9uICh0eXBlKSB7XG4gICAgICB2YXIgY2xhc3NOYW1lcyA9IF90aGlzLnByb3BzLmNsYXNzTmFtZXM7XG4gICAgICB2YXIgaXNTdHJpbmdDbGFzc05hbWVzID0gdHlwZW9mIGNsYXNzTmFtZXMgPT09ICdzdHJpbmcnO1xuICAgICAgdmFyIHByZWZpeCA9IGlzU3RyaW5nQ2xhc3NOYW1lcyAmJiBjbGFzc05hbWVzID8gY2xhc3NOYW1lcyArICctJyA6ICcnO1xuICAgICAgdmFyIGNsYXNzTmFtZSA9IGlzU3RyaW5nQ2xhc3NOYW1lcyA/IHByZWZpeCArIHR5cGUgOiBjbGFzc05hbWVzW3R5cGVdO1xuICAgICAgdmFyIGFjdGl2ZUNsYXNzTmFtZSA9IGlzU3RyaW5nQ2xhc3NOYW1lcyA/IGNsYXNzTmFtZSArICctYWN0aXZlJyA6IGNsYXNzTmFtZXNbdHlwZSArICdBY3RpdmUnXTtcbiAgICAgIHZhciBkb25lQ2xhc3NOYW1lID0gaXNTdHJpbmdDbGFzc05hbWVzID8gY2xhc3NOYW1lICsgJy1kb25lJyA6IGNsYXNzTmFtZXNbdHlwZSArICdEb25lJ107XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjbGFzc05hbWU6IGNsYXNzTmFtZSxcbiAgICAgICAgYWN0aXZlQ2xhc3NOYW1lOiBhY3RpdmVDbGFzc05hbWUsXG4gICAgICAgIGRvbmVDbGFzc05hbWU6IGRvbmVDbGFzc05hbWVcbiAgICAgIH07XG4gICAgfTtcblxuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIHZhciBfcHJvdG8gPSBDU1NUcmFuc2l0aW9uLnByb3RvdHlwZTtcblxuICBfcHJvdG8ucmVtb3ZlQ2xhc3NlcyA9IGZ1bmN0aW9uIHJlbW92ZUNsYXNzZXMobm9kZSwgdHlwZSkge1xuICAgIHZhciBfdGhpcyRnZXRDbGFzc05hbWVzNiA9IHRoaXMuZ2V0Q2xhc3NOYW1lcyh0eXBlKSxcbiAgICAgICAgY2xhc3NOYW1lID0gX3RoaXMkZ2V0Q2xhc3NOYW1lczYuY2xhc3NOYW1lLFxuICAgICAgICBhY3RpdmVDbGFzc05hbWUgPSBfdGhpcyRnZXRDbGFzc05hbWVzNi5hY3RpdmVDbGFzc05hbWUsXG4gICAgICAgIGRvbmVDbGFzc05hbWUgPSBfdGhpcyRnZXRDbGFzc05hbWVzNi5kb25lQ2xhc3NOYW1lO1xuXG4gICAgY2xhc3NOYW1lICYmIHJlbW92ZUNsYXNzKG5vZGUsIGNsYXNzTmFtZSk7XG4gICAgYWN0aXZlQ2xhc3NOYW1lICYmIHJlbW92ZUNsYXNzKG5vZGUsIGFjdGl2ZUNsYXNzTmFtZSk7XG4gICAgZG9uZUNsYXNzTmFtZSAmJiByZW1vdmVDbGFzcyhub2RlLCBkb25lQ2xhc3NOYW1lKTtcbiAgfTtcblxuICBfcHJvdG8ucmVmbG93QW5kQWRkQ2xhc3MgPSBmdW5jdGlvbiByZWZsb3dBbmRBZGRDbGFzcyhub2RlLCBjbGFzc05hbWUpIHtcbiAgICAvLyBUaGlzIGlzIGZvciB0byBmb3JjZSBhIHJlcGFpbnQsXG4gICAgLy8gd2hpY2ggaXMgbmVjZXNzYXJ5IGluIG9yZGVyIHRvIHRyYW5zaXRpb24gc3R5bGVzIHdoZW4gYWRkaW5nIGEgY2xhc3MgbmFtZS5cbiAgICBpZiAoY2xhc3NOYW1lKSB7XG4gICAgICAvKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtZXhwcmVzc2lvbnMgKi9cbiAgICAgIG5vZGUgJiYgbm9kZS5zY3JvbGxUb3A7XG4gICAgICAvKiBlc2xpbnQtZW5hYmxlIG5vLXVudXNlZC1leHByZXNzaW9ucyAqL1xuXG4gICAgICBhZGRDbGFzcyhub2RlLCBjbGFzc05hbWUpO1xuICAgIH1cbiAgfTtcblxuICBfcHJvdG8ucmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgIHZhciBwcm9wcyA9IF9leHRlbmRzKHt9LCB0aGlzLnByb3BzKTtcblxuICAgIGRlbGV0ZSBwcm9wcy5jbGFzc05hbWVzO1xuICAgIHJldHVybiBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KF9UcmFuc2l0aW9uLmRlZmF1bHQsIF9leHRlbmRzKHt9LCBwcm9wcywge1xuICAgICAgb25FbnRlcjogdGhpcy5vbkVudGVyLFxuICAgICAgb25FbnRlcmVkOiB0aGlzLm9uRW50ZXJlZCxcbiAgICAgIG9uRW50ZXJpbmc6IHRoaXMub25FbnRlcmluZyxcbiAgICAgIG9uRXhpdDogdGhpcy5vbkV4aXQsXG4gICAgICBvbkV4aXRpbmc6IHRoaXMub25FeGl0aW5nLFxuICAgICAgb25FeGl0ZWQ6IHRoaXMub25FeGl0ZWRcbiAgICB9KSk7XG4gIH07XG5cbiAgcmV0dXJuIENTU1RyYW5zaXRpb247XG59KF9yZWFjdC5kZWZhdWx0LkNvbXBvbmVudCk7XG5cbkNTU1RyYW5zaXRpb24uZGVmYXVsdFByb3BzID0ge1xuICBjbGFzc05hbWVzOiAnJ1xufTtcbkNTU1RyYW5zaXRpb24ucHJvcFR5cGVzID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gX2V4dGVuZHMoe30sIF9UcmFuc2l0aW9uLmRlZmF1bHQucHJvcFR5cGVzLCB7XG4gIC8qKlxuICAgKiBUaGUgYW5pbWF0aW9uIGNsYXNzTmFtZXMgYXBwbGllZCB0byB0aGUgY29tcG9uZW50IGFzIGl0IGVudGVycywgZXhpdHMgb3JcbiAgICogaGFzIGZpbmlzaGVkIHRoZSB0cmFuc2l0aW9uLiBBIHNpbmdsZSBuYW1lIGNhbiBiZSBwcm92aWRlZCBhbmQgaXQgd2lsbCBiZVxuICAgKiBzdWZmaXhlZCBmb3IgZWFjaCBzdGFnZTogZS5nLlxuICAgKlxuICAgKiBgY2xhc3NOYW1lcz1cImZhZGVcImAgYXBwbGllcyBgZmFkZS1lbnRlcmAsIGBmYWRlLWVudGVyLWFjdGl2ZWAsXG4gICAqIGBmYWRlLWVudGVyLWRvbmVgLCBgZmFkZS1leGl0YCwgYGZhZGUtZXhpdC1hY3RpdmVgLCBgZmFkZS1leGl0LWRvbmVgLFxuICAgKiBgZmFkZS1hcHBlYXJgLCBgZmFkZS1hcHBlYXItYWN0aXZlYCwgYW5kIGBmYWRlLWFwcGVhci1kb25lYC5cbiAgICpcbiAgICogKipOb3RlKio6IGBmYWRlLWFwcGVhci1kb25lYCBhbmQgYGZhZGUtZW50ZXItZG9uZWAgd2lsbCBfYm90aF8gYmUgYXBwbGllZC5cbiAgICogVGhpcyBhbGxvd3MgeW91IHRvIGRlZmluZSBkaWZmZXJlbnQgYmVoYXZpb3IgZm9yIHdoZW4gYXBwZWFyaW5nIGlzIGRvbmUgYW5kXG4gICAqIHdoZW4gcmVndWxhciBlbnRlcmluZyBpcyBkb25lLCB1c2luZyBzZWxlY3RvcnMgbGlrZVxuICAgKiBgLmZhZGUtZW50ZXItZG9uZTpub3QoLmZhZGUtYXBwZWFyLWRvbmUpYC4gRm9yIGV4YW1wbGUsIHlvdSBjb3VsZCBhcHBseSBhblxuICAgKiBlcGljIGVudHJhbmNlIGFuaW1hdGlvbiB3aGVuIGVsZW1lbnQgZmlyc3QgYXBwZWFycyBpbiB0aGUgRE9NIHVzaW5nXG4gICAqIFtBbmltYXRlLmNzc10oaHR0cHM6Ly9kYW5lZGVuLmdpdGh1Yi5pby9hbmltYXRlLmNzcy8pLiBPdGhlcndpc2UgeW91IGNhblxuICAgKiBzaW1wbHkgdXNlIGBmYWRlLWVudGVyLWRvbmVgIGZvciBkZWZpbmluZyBib3RoIGNhc2VzLlxuICAgKlxuICAgKiBFYWNoIGluZGl2aWR1YWwgY2xhc3NOYW1lcyBjYW4gYWxzbyBiZSBzcGVjaWZpZWQgaW5kZXBlbmRlbnRseSBsaWtlOlxuICAgKlxuICAgKiBgYGBqc1xuICAgKiBjbGFzc05hbWVzPXt7XG4gICAqICBhcHBlYXI6ICdteS1hcHBlYXInLFxuICAgKiAgYXBwZWFyQWN0aXZlOiAnbXktYWN0aXZlLWFwcGVhcicsXG4gICAqICBhcHBlYXJEb25lOiAnbXktZG9uZS1hcHBlYXInLFxuICAgKiAgZW50ZXI6ICdteS1lbnRlcicsXG4gICAqICBlbnRlckFjdGl2ZTogJ215LWFjdGl2ZS1lbnRlcicsXG4gICAqICBlbnRlckRvbmU6ICdteS1kb25lLWVudGVyJyxcbiAgICogIGV4aXQ6ICdteS1leGl0JyxcbiAgICogIGV4aXRBY3RpdmU6ICdteS1hY3RpdmUtZXhpdCcsXG4gICAqICBleGl0RG9uZTogJ215LWRvbmUtZXhpdCcsXG4gICAqIH19XG4gICAqIGBgYFxuICAgKlxuICAgKiBJZiB5b3Ugd2FudCB0byBzZXQgdGhlc2UgY2xhc3NlcyB1c2luZyBDU1MgTW9kdWxlczpcbiAgICpcbiAgICogYGBganNcbiAgICogaW1wb3J0IHN0eWxlcyBmcm9tICcuL3N0eWxlcy5jc3MnO1xuICAgKiBgYGBcbiAgICpcbiAgICogeW91IG1pZ2h0IHdhbnQgdG8gdXNlIGNhbWVsQ2FzZSBpbiB5b3VyIENTUyBmaWxlLCB0aGF0IHdheSBjb3VsZCBzaW1wbHlcbiAgICogc3ByZWFkIHRoZW0gaW5zdGVhZCBvZiBsaXN0aW5nIHRoZW0gb25lIGJ5IG9uZTpcbiAgICpcbiAgICogYGBganNcbiAgICogY2xhc3NOYW1lcz17eyAuLi5zdHlsZXMgfX1cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmcgfCB7XG4gICAqICBhcHBlYXI/OiBzdHJpbmcsXG4gICAqICBhcHBlYXJBY3RpdmU/OiBzdHJpbmcsXG4gICAqICBhcHBlYXJEb25lPzogc3RyaW5nLFxuICAgKiAgZW50ZXI/OiBzdHJpbmcsXG4gICAqICBlbnRlckFjdGl2ZT86IHN0cmluZyxcbiAgICogIGVudGVyRG9uZT86IHN0cmluZyxcbiAgICogIGV4aXQ/OiBzdHJpbmcsXG4gICAqICBleGl0QWN0aXZlPzogc3RyaW5nLFxuICAgKiAgZXhpdERvbmU/OiBzdHJpbmcsXG4gICAqIH19XG4gICAqL1xuICBjbGFzc05hbWVzOiBfUHJvcFR5cGVzLmNsYXNzTmFtZXNTaGFwZSxcblxuICAvKipcbiAgICogQSBgPFRyYW5zaXRpb24+YCBjYWxsYmFjayBmaXJlZCBpbW1lZGlhdGVseSBhZnRlciB0aGUgJ2VudGVyJyBvciAnYXBwZWFyJyBjbGFzcyBpc1xuICAgKiBhcHBsaWVkLlxuICAgKlxuICAgKiBAdHlwZSBGdW5jdGlvbihub2RlOiBIdG1sRWxlbWVudCwgaXNBcHBlYXJpbmc6IGJvb2wpXG4gICAqL1xuICBvbkVudGVyOiBQcm9wVHlwZXMuZnVuYyxcblxuICAvKipcbiAgICogQSBgPFRyYW5zaXRpb24+YCBjYWxsYmFjayBmaXJlZCBpbW1lZGlhdGVseSBhZnRlciB0aGUgJ2VudGVyLWFjdGl2ZScgb3JcbiAgICogJ2FwcGVhci1hY3RpdmUnIGNsYXNzIGlzIGFwcGxpZWQuXG4gICAqXG4gICAqIEB0eXBlIEZ1bmN0aW9uKG5vZGU6IEh0bWxFbGVtZW50LCBpc0FwcGVhcmluZzogYm9vbClcbiAgICovXG4gIG9uRW50ZXJpbmc6IFByb3BUeXBlcy5mdW5jLFxuXG4gIC8qKlxuICAgKiBBIGA8VHJhbnNpdGlvbj5gIGNhbGxiYWNrIGZpcmVkIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSAnZW50ZXInIG9yXG4gICAqICdhcHBlYXInIGNsYXNzZXMgYXJlICoqcmVtb3ZlZCoqIGFuZCB0aGUgYGRvbmVgIGNsYXNzIGlzIGFkZGVkIHRvIHRoZSBET00gbm9kZS5cbiAgICpcbiAgICogQHR5cGUgRnVuY3Rpb24obm9kZTogSHRtbEVsZW1lbnQsIGlzQXBwZWFyaW5nOiBib29sKVxuICAgKi9cbiAgb25FbnRlcmVkOiBQcm9wVHlwZXMuZnVuYyxcblxuICAvKipcbiAgICogQSBgPFRyYW5zaXRpb24+YCBjYWxsYmFjayBmaXJlZCBpbW1lZGlhdGVseSBhZnRlciB0aGUgJ2V4aXQnIGNsYXNzIGlzXG4gICAqIGFwcGxpZWQuXG4gICAqXG4gICAqIEB0eXBlIEZ1bmN0aW9uKG5vZGU6IEh0bWxFbGVtZW50KVxuICAgKi9cbiAgb25FeGl0OiBQcm9wVHlwZXMuZnVuYyxcblxuICAvKipcbiAgICogQSBgPFRyYW5zaXRpb24+YCBjYWxsYmFjayBmaXJlZCBpbW1lZGlhdGVseSBhZnRlciB0aGUgJ2V4aXQtYWN0aXZlJyBpcyBhcHBsaWVkLlxuICAgKlxuICAgKiBAdHlwZSBGdW5jdGlvbihub2RlOiBIdG1sRWxlbWVudClcbiAgICovXG4gIG9uRXhpdGluZzogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgLyoqXG4gICAqIEEgYDxUcmFuc2l0aW9uPmAgY2FsbGJhY2sgZmlyZWQgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlICdleGl0JyBjbGFzc2VzXG4gICAqIGFyZSAqKnJlbW92ZWQqKiBhbmQgdGhlIGBleGl0LWRvbmVgIGNsYXNzIGlzIGFkZGVkIHRvIHRoZSBET00gbm9kZS5cbiAgICpcbiAgICogQHR5cGUgRnVuY3Rpb24obm9kZTogSHRtbEVsZW1lbnQpXG4gICAqL1xuICBvbkV4aXRlZDogUHJvcFR5cGVzLmZ1bmNcbn0pIDoge307XG52YXIgX2RlZmF1bHQgPSBDU1NUcmFuc2l0aW9uO1xuZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbXCJkZWZhdWx0XCJdOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-modal-video/node_modules/react-transition-group/CSSTransition.js\n"); + +/***/ }), + +/***/ "./node_modules/react-modal-video/node_modules/react-transition-group/Transition.js": +/*!******************************************************************************************!*\ + !*** ./node_modules/react-modal-video/node_modules/react-transition-group/Transition.js ***! + \******************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nexports.__esModule = true;\nexports[\"default\"] = exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = void 0;\n\nvar PropTypes = _interopRequireWildcard(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _reactDom = _interopRequireDefault(__webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\"));\n\nvar _reactLifecyclesCompat = __webpack_require__(/*! react-lifecycles-compat */ \"./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js\");\n\nvar _PropTypes = __webpack_require__(/*! ./utils/PropTypes */ \"./node_modules/react-modal-video/node_modules/react-transition-group/utils/PropTypes.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar UNMOUNTED = 'unmounted';\nexports.UNMOUNTED = UNMOUNTED;\nvar EXITED = 'exited';\nexports.EXITED = EXITED;\nvar ENTERING = 'entering';\nexports.ENTERING = ENTERING;\nvar ENTERED = 'entered';\nexports.ENTERED = ENTERED;\nvar EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 0 },\n * entered: { opacity: 1 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * <Transition in={inProp} timeout={duration}>\n * {state => (\n * <div style={{\n * ...defaultStyle,\n * ...transitionStyles[state]\n * }}>\n * I'm a fade Transition!\n * </div>\n * )}\n * </Transition>\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n * <div>\n * <Transition in={inProp} timeout={500}>\n * {state => (\n * // ...\n * )}\n * </Transition>\n * <button onClick={() => setInProp(true)}>\n * Click to Enter\n * </button>\n * </div>\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nexports.EXITING = EXITING;\n\nvar Transition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context.transitionGroup; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n var _proto = Transition.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: null // allows for nested Transitions\n\n };\n };\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n }; // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n var node = _reactDom.default.findDOMNode(this);\n\n if (nextStatus === ENTERING) {\n this.performEnter(node, mounting);\n } else {\n this.performExit(node);\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(node, mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting;\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node);\n });\n return;\n }\n\n this.props.onEnter(node, appearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(node, appearing);\n\n _this2.onTransitionEnd(node, enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node, appearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit(node) {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED\n\n if (!exit) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n return;\n }\n\n this.props.onExit(node);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(node);\n\n _this3.onTransitionEnd(node, timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {\n this.setNextCallback(handler);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n this.props.addEndListener(node, this.nextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\"]); // filter props for Transtition\n\n\n delete childProps.in;\n delete childProps.mountOnEnter;\n delete childProps.unmountOnExit;\n delete childProps.appear;\n delete childProps.enter;\n delete childProps.exit;\n delete childProps.timeout;\n delete childProps.addEndListener;\n delete childProps.onEnter;\n delete childProps.onEntering;\n delete childProps.onEntered;\n delete childProps.onExit;\n delete childProps.onExiting;\n delete childProps.onExited;\n\n if (typeof children === 'function') {\n return children(status, childProps);\n }\n\n var child = _react.default.Children.only(children);\n\n return _react.default.cloneElement(child, childProps);\n };\n\n return Transition;\n}(_react.default.Component);\n\nTransition.contextTypes = {\n transitionGroup: PropTypes.object\n};\nTransition.childContextTypes = {\n transitionGroup: function transitionGroup() {}\n};\nTransition.propTypes = true ? {\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`, `'unmounted'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * <Transition in={this.state.in} timeout={150}>\n * {state => (\n * <MyComponent className={`fade fade-${state}`} />\n * )}\n * </Transition>\n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * Normally a component is not transitioned if it is shown when the `<Transition>` component mounts.\n * If you want to transition on the first mount set `appear` to `true`, and the\n * component will transition in as soon as the `<Transition>` mounts.\n *\n * > Note: there are no specific \"appear\" states. `appear` only adds an additional `enter` transition.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = _PropTypes.timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\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\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. **Note:** Timeouts are still used as a fallback if provided.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func // Name the function so it is clearer in the documentation\n\n} : 0;\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = 0;\nTransition.EXITED = 1;\nTransition.ENTERING = 2;\nTransition.ENTERED = 3;\nTransition.EXITING = 4;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(Transition);\n\nexports[\"default\"] = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtbW9kYWwtdmlkZW8vbm9kZV9tb2R1bGVzL3JlYWN0LXRyYW5zaXRpb24tZ3JvdXAvVHJhbnNpdGlvbi5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYixrQkFBa0I7QUFDbEIsa0JBQWUsR0FBRyxlQUFlLEdBQUcsZUFBZSxHQUFHLGdCQUFnQixHQUFHLGNBQWMsR0FBRyxpQkFBaUI7O0FBRTNHLHdDQUF3QyxtQkFBTyxDQUFDLHNEQUFZOztBQUU1RCxvQ0FBb0MsbUJBQU8sQ0FBQyw0Q0FBTzs7QUFFbkQsdUNBQXVDLG1CQUFPLENBQUMsb0RBQVc7O0FBRTFELDZCQUE2QixtQkFBTyxDQUFDLHFHQUF5Qjs7QUFFOUQsaUJBQWlCLG1CQUFPLENBQUMsa0hBQW1COztBQUU1Qyx1Q0FBdUMsdUNBQXVDOztBQUU5RSx3Q0FBd0MsNkJBQTZCLGNBQWMsT0FBTyxpQkFBaUIsbUJBQW1CLHVCQUF1QixzREFBc0Qsc0hBQXNILDRCQUE0Qiw0Q0FBNEMsT0FBTyxnQ0FBZ0Msc0JBQXNCOztBQUV0YywyREFBMkQsK0JBQStCLGlCQUFpQixzQ0FBc0MsWUFBWSxZQUFZLHVCQUF1QixPQUFPLHFCQUFxQiwwQ0FBMEMsNkJBQTZCOztBQUVuUyxnREFBZ0QsMERBQTBELDJDQUEyQzs7QUFFcko7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxjQUFjO0FBQ2Q7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQSxlQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxhQUFhO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLFNBQVM7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsWUFBWTtBQUM3QixpQkFBaUIsWUFBWTtBQUM3QjtBQUNBO0FBQ0EsbUJBQW1CLFlBQVk7QUFDL0IscUJBQXFCLFFBQVEsU0FBUyxTQUFTO0FBQy9DLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsUUFBUSxTQUFTLElBQUk7QUFDOUMsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQixzQkFBc0I7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxlQUFlOztBQUVmO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSwrQ0FBK0M7O0FBRS9DO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLGlCQUFpQixTQUFTO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7OztBQUdBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsNkJBQTZCOztBQUU3QjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHFFQUFxRTtBQUNyRTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSxPQUFPO0FBQ1A7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EsU0FBUztBQUNULE9BQU87QUFDUCxLQUFLO0FBQ0w7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLHVDQUF1Qzs7QUFFdkM7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EsT0FBTztBQUNQO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBLFNBQVM7QUFDVCxPQUFPO0FBQ1AsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLCtFQUErRTs7O0FBRy9FO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QixLQUFxQztBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQixlQUFlLFNBQVMsSUFBSTtBQUNqRCxRQUFRO0FBQ1IsaUNBQWlDLGFBQWEsTUFBTSxHQUFHO0FBQ3ZEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSx5QkFBeUI7QUFDekI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsS0FBSztBQUNyQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxXQUFXO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBOztBQUVBLDJGQUEyRixhQUFhO0FBQ3hHO0FBQ0E7O0FBRUE7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsRUFBRSxFQUFFLENBQUU7O0FBRU47O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUEsa0JBQWUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LW1vZGFsLXZpZGVvL25vZGVfbW9kdWxlcy9yZWFjdC10cmFuc2l0aW9uLWdyb3VwL1RyYW5zaXRpb24uanM/ODE3MSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHMuZGVmYXVsdCA9IGV4cG9ydHMuRVhJVElORyA9IGV4cG9ydHMuRU5URVJFRCA9IGV4cG9ydHMuRU5URVJJTkcgPSBleHBvcnRzLkVYSVRFRCA9IGV4cG9ydHMuVU5NT1VOVEVEID0gdm9pZCAwO1xuXG52YXIgUHJvcFR5cGVzID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInByb3AtdHlwZXNcIikpO1xuXG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX3JlYWN0RG9tID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3QtZG9tXCIpKTtcblxudmFyIF9yZWFjdExpZmVjeWNsZXNDb21wYXQgPSByZXF1aXJlKFwicmVhY3QtbGlmZWN5Y2xlcy1jb21wYXRcIik7XG5cbnZhciBfUHJvcFR5cGVzID0gcmVxdWlyZShcIi4vdXRpbHMvUHJvcFR5cGVzXCIpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHsgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkgeyByZXR1cm4gb2JqOyB9IGVsc2UgeyB2YXIgbmV3T2JqID0ge307IGlmIChvYmogIT0gbnVsbCkgeyBmb3IgKHZhciBrZXkgaW4gb2JqKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7IHZhciBkZXNjID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IHt9OyBpZiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTsgfSBlbHNlIHsgbmV3T2JqW2tleV0gPSBvYmpba2V5XTsgfSB9IH0gfSBuZXdPYmouZGVmYXVsdCA9IG9iajsgcmV0dXJuIG5ld09iajsgfSB9XG5cbmZ1bmN0aW9uIF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKHNvdXJjZSwgZXhjbHVkZWQpIHsgaWYgKHNvdXJjZSA9PSBudWxsKSByZXR1cm4ge307IHZhciB0YXJnZXQgPSB7fTsgdmFyIHNvdXJjZUtleXMgPSBPYmplY3Qua2V5cyhzb3VyY2UpOyB2YXIga2V5LCBpOyBmb3IgKGkgPSAwOyBpIDwgc291cmNlS2V5cy5sZW5ndGg7IGkrKykgeyBrZXkgPSBzb3VyY2VLZXlzW2ldOyBpZiAoZXhjbHVkZWQuaW5kZXhPZihrZXkpID49IDApIGNvbnRpbnVlOyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IHJldHVybiB0YXJnZXQ7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzTG9vc2Uoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzLnByb3RvdHlwZSk7IHN1YkNsYXNzLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IHN1YkNsYXNzOyBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBVTk1PVU5URUQgPSAndW5tb3VudGVkJztcbmV4cG9ydHMuVU5NT1VOVEVEID0gVU5NT1VOVEVEO1xudmFyIEVYSVRFRCA9ICdleGl0ZWQnO1xuZXhwb3J0cy5FWElURUQgPSBFWElURUQ7XG52YXIgRU5URVJJTkcgPSAnZW50ZXJpbmcnO1xuZXhwb3J0cy5FTlRFUklORyA9IEVOVEVSSU5HO1xudmFyIEVOVEVSRUQgPSAnZW50ZXJlZCc7XG5leHBvcnRzLkVOVEVSRUQgPSBFTlRFUkVEO1xudmFyIEVYSVRJTkcgPSAnZXhpdGluZyc7XG4vKipcbiAqIFRoZSBUcmFuc2l0aW9uIGNvbXBvbmVudCBsZXRzIHlvdSBkZXNjcmliZSBhIHRyYW5zaXRpb24gZnJvbSBvbmUgY29tcG9uZW50XG4gKiBzdGF0ZSB0byBhbm90aGVyIF9vdmVyIHRpbWVfIHdpdGggYSBzaW1wbGUgZGVjbGFyYXRpdmUgQVBJLiBNb3N0IGNvbW1vbmx5XG4gKiBpdCdzIHVzZWQgdG8gYW5pbWF0ZSB0aGUgbW91bnRpbmcgYW5kIHVubW91bnRpbmcgb2YgYSBjb21wb25lbnQsIGJ1dCBjYW4gYWxzb1xuICogYmUgdXNlZCB0byBkZXNjcmliZSBpbi1wbGFjZSB0cmFuc2l0aW9uIHN0YXRlcyBhcyB3ZWxsLlxuICpcbiAqIC0tLVxuICpcbiAqICoqTm90ZSoqOiBgVHJhbnNpdGlvbmAgaXMgYSBwbGF0Zm9ybS1hZ25vc3RpYyBiYXNlIGNvbXBvbmVudC4gSWYgeW91J3JlIHVzaW5nXG4gKiB0cmFuc2l0aW9ucyBpbiBDU1MsIHlvdSdsbCBwcm9iYWJseSB3YW50IHRvIHVzZVxuICogW2BDU1NUcmFuc2l0aW9uYF0oaHR0cHM6Ly9yZWFjdGNvbW11bml0eS5vcmcvcmVhY3QtdHJhbnNpdGlvbi1ncm91cC9jc3MtdHJhbnNpdGlvbilcbiAqIGluc3RlYWQuIEl0IGluaGVyaXRzIGFsbCB0aGUgZmVhdHVyZXMgb2YgYFRyYW5zaXRpb25gLCBidXQgY29udGFpbnNcbiAqIGFkZGl0aW9uYWwgZmVhdHVyZXMgbmVjZXNzYXJ5IHRvIHBsYXkgbmljZSB3aXRoIENTUyB0cmFuc2l0aW9ucyAoaGVuY2UgdGhlXG4gKiBuYW1lIG9mIHRoZSBjb21wb25lbnQpLlxuICpcbiAqIC0tLVxuICpcbiAqIEJ5IGRlZmF1bHQgdGhlIGBUcmFuc2l0aW9uYCBjb21wb25lbnQgZG9lcyBub3QgYWx0ZXIgdGhlIGJlaGF2aW9yIG9mIHRoZVxuICogY29tcG9uZW50IGl0IHJlbmRlcnMsIGl0IG9ubHkgdHJhY2tzIFwiZW50ZXJcIiBhbmQgXCJleGl0XCIgc3RhdGVzIGZvciB0aGVcbiAqIGNvbXBvbmVudHMuIEl0J3MgdXAgdG8geW91IHRvIGdpdmUgbWVhbmluZyBhbmQgZWZmZWN0IHRvIHRob3NlIHN0YXRlcy4gRm9yXG4gKiBleGFtcGxlIHdlIGNhbiBhZGQgc3R5bGVzIHRvIGEgY29tcG9uZW50IHdoZW4gaXQgZW50ZXJzIG9yIGV4aXRzOlxuICpcbiAqIGBgYGpzeFxuICogaW1wb3J0IHsgVHJhbnNpdGlvbiB9IGZyb20gJ3JlYWN0LXRyYW5zaXRpb24tZ3JvdXAnO1xuICpcbiAqIGNvbnN0IGR1cmF0aW9uID0gMzAwO1xuICpcbiAqIGNvbnN0IGRlZmF1bHRTdHlsZSA9IHtcbiAqICAgdHJhbnNpdGlvbjogYG9wYWNpdHkgJHtkdXJhdGlvbn1tcyBlYXNlLWluLW91dGAsXG4gKiAgIG9wYWNpdHk6IDAsXG4gKiB9XG4gKlxuICogY29uc3QgdHJhbnNpdGlvblN0eWxlcyA9IHtcbiAqICAgZW50ZXJpbmc6IHsgb3BhY2l0eTogMCB9LFxuICogICBlbnRlcmVkOiAgeyBvcGFjaXR5OiAxIH0sXG4gKiB9O1xuICpcbiAqIGNvbnN0IEZhZGUgPSAoeyBpbjogaW5Qcm9wIH0pID0+IChcbiAqICAgPFRyYW5zaXRpb24gaW49e2luUHJvcH0gdGltZW91dD17ZHVyYXRpb259PlxuICogICAgIHtzdGF0ZSA9PiAoXG4gKiAgICAgICA8ZGl2IHN0eWxlPXt7XG4gKiAgICAgICAgIC4uLmRlZmF1bHRTdHlsZSxcbiAqICAgICAgICAgLi4udHJhbnNpdGlvblN0eWxlc1tzdGF0ZV1cbiAqICAgICAgIH19PlxuICogICAgICAgICBJJ20gYSBmYWRlIFRyYW5zaXRpb24hXG4gKiAgICAgICA8L2Rpdj5cbiAqICAgICApfVxuICogICA8L1RyYW5zaXRpb24+XG4gKiApO1xuICogYGBgXG4gKlxuICogVGhlcmUgYXJlIDQgbWFpbiBzdGF0ZXMgYSBUcmFuc2l0aW9uIGNhbiBiZSBpbjpcbiAqICAtIGAnZW50ZXJpbmcnYFxuICogIC0gYCdlbnRlcmVkJ2BcbiAqICAtIGAnZXhpdGluZydgXG4gKiAgLSBgJ2V4aXRlZCdgXG4gKlxuICogVHJhbnNpdGlvbiBzdGF0ZSBpcyB0b2dnbGVkIHZpYSB0aGUgYGluYCBwcm9wLiBXaGVuIGB0cnVlYCB0aGUgY29tcG9uZW50XG4gKiBiZWdpbnMgdGhlIFwiRW50ZXJcIiBzdGFnZS4gRHVyaW5nIHRoaXMgc3RhZ2UsIHRoZSBjb21wb25lbnQgd2lsbCBzaGlmdCBmcm9tXG4gKiBpdHMgY3VycmVudCB0cmFuc2l0aW9uIHN0YXRlLCB0byBgJ2VudGVyaW5nJ2AgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGVcbiAqIHRyYW5zaXRpb24gYW5kIHRoZW4gdG8gdGhlIGAnZW50ZXJlZCdgIHN0YWdlIG9uY2UgaXQncyBjb21wbGV0ZS4gTGV0J3MgdGFrZVxuICogdGhlIGZvbGxvd2luZyBleGFtcGxlICh3ZSdsbCB1c2UgdGhlXG4gKiBbdXNlU3RhdGVdKGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9ob29rcy1yZWZlcmVuY2UuaHRtbCN1c2VzdGF0ZSkgaG9vayk6XG4gKlxuICogYGBganN4XG4gKiBmdW5jdGlvbiBBcHAoKSB7XG4gKiAgIGNvbnN0IFtpblByb3AsIHNldEluUHJvcF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gKiAgIHJldHVybiAoXG4gKiAgICAgPGRpdj5cbiAqICAgICAgIDxUcmFuc2l0aW9uIGluPXtpblByb3B9IHRpbWVvdXQ9ezUwMH0+XG4gKiAgICAgICAgIHtzdGF0ZSA9PiAoXG4gKiAgICAgICAgICAgLy8gLi4uXG4gKiAgICAgICAgICl9XG4gKiAgICAgICA8L1RyYW5zaXRpb24+XG4gKiAgICAgICA8YnV0dG9uIG9uQ2xpY2s9eygpID0+IHNldEluUHJvcCh0cnVlKX0+XG4gKiAgICAgICAgIENsaWNrIHRvIEVudGVyXG4gKiAgICAgICA8L2J1dHRvbj5cbiAqICAgICA8L2Rpdj5cbiAqICAgKTtcbiAqIH1cbiAqIGBgYFxuICpcbiAqIFdoZW4gdGhlIGJ1dHRvbiBpcyBjbGlja2VkIHRoZSBjb21wb25lbnQgd2lsbCBzaGlmdCB0byB0aGUgYCdlbnRlcmluZydgIHN0YXRlXG4gKiBhbmQgc3RheSB0aGVyZSBmb3IgNTAwbXMgKHRoZSB2YWx1ZSBvZiBgdGltZW91dGApIGJlZm9yZSBpdCBmaW5hbGx5IHN3aXRjaGVzXG4gKiB0byBgJ2VudGVyZWQnYC5cbiAqXG4gKiBXaGVuIGBpbmAgaXMgYGZhbHNlYCB0aGUgc2FtZSB0aGluZyBoYXBwZW5zIGV4Y2VwdCB0aGUgc3RhdGUgbW92ZXMgZnJvbVxuICogYCdleGl0aW5nJ2AgdG8gYCdleGl0ZWQnYC5cbiAqL1xuXG5leHBvcnRzLkVYSVRJTkcgPSBFWElUSU5HO1xuXG52YXIgVHJhbnNpdGlvbiA9XG4vKiNfX1BVUkVfXyovXG5mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHNMb29zZShUcmFuc2l0aW9uLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICBmdW5jdGlvbiBUcmFuc2l0aW9uKHByb3BzLCBjb250ZXh0KSB7XG4gICAgdmFyIF90aGlzO1xuXG4gICAgX3RoaXMgPSBfUmVhY3QkQ29tcG9uZW50LmNhbGwodGhpcywgcHJvcHMsIGNvbnRleHQpIHx8IHRoaXM7XG4gICAgdmFyIHBhcmVudEdyb3VwID0gY29udGV4dC50cmFuc2l0aW9uR3JvdXA7IC8vIEluIHRoZSBjb250ZXh0IG9mIGEgVHJhbnNpdGlvbkdyb3VwIGFsbCBlbnRlcnMgYXJlIHJlYWxseSBhcHBlYXJzXG5cbiAgICB2YXIgYXBwZWFyID0gcGFyZW50R3JvdXAgJiYgIXBhcmVudEdyb3VwLmlzTW91bnRpbmcgPyBwcm9wcy5lbnRlciA6IHByb3BzLmFwcGVhcjtcbiAgICB2YXIgaW5pdGlhbFN0YXR1cztcbiAgICBfdGhpcy5hcHBlYXJTdGF0dXMgPSBudWxsO1xuXG4gICAgaWYgKHByb3BzLmluKSB7XG4gICAgICBpZiAoYXBwZWFyKSB7XG4gICAgICAgIGluaXRpYWxTdGF0dXMgPSBFWElURUQ7XG4gICAgICAgIF90aGlzLmFwcGVhclN0YXR1cyA9IEVOVEVSSU5HO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaW5pdGlhbFN0YXR1cyA9IEVOVEVSRUQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChwcm9wcy51bm1vdW50T25FeGl0IHx8IHByb3BzLm1vdW50T25FbnRlcikge1xuICAgICAgICBpbml0aWFsU3RhdHVzID0gVU5NT1VOVEVEO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaW5pdGlhbFN0YXR1cyA9IEVYSVRFRDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBfdGhpcy5zdGF0ZSA9IHtcbiAgICAgIHN0YXR1czogaW5pdGlhbFN0YXR1c1xuICAgIH07XG4gICAgX3RoaXMubmV4dENhbGxiYWNrID0gbnVsbDtcbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICB2YXIgX3Byb3RvID0gVHJhbnNpdGlvbi5wcm90b3R5cGU7XG5cbiAgX3Byb3RvLmdldENoaWxkQ29udGV4dCA9IGZ1bmN0aW9uIGdldENoaWxkQ29udGV4dCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHJhbnNpdGlvbkdyb3VwOiBudWxsIC8vIGFsbG93cyBmb3IgbmVzdGVkIFRyYW5zaXRpb25zXG5cbiAgICB9O1xuICB9O1xuXG4gIFRyYW5zaXRpb24uZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzID0gZnVuY3Rpb24gZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKF9yZWYsIHByZXZTdGF0ZSkge1xuICAgIHZhciBuZXh0SW4gPSBfcmVmLmluO1xuXG4gICAgaWYgKG5leHRJbiAmJiBwcmV2U3RhdGUuc3RhdHVzID09PSBVTk1PVU5URUQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN0YXR1czogRVhJVEVEXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9OyAvLyBnZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgLy8gICBsZXQgbmV4dFN0YXR1cyA9IG51bGxcbiAgLy8gICBpZiAocHJldlByb3BzICE9PSB0aGlzLnByb3BzKSB7XG4gIC8vICAgICBjb25zdCB7IHN0YXR1cyB9ID0gdGhpcy5zdGF0ZVxuICAvLyAgICAgaWYgKHRoaXMucHJvcHMuaW4pIHtcbiAgLy8gICAgICAgaWYgKHN0YXR1cyAhPT0gRU5URVJJTkcgJiYgc3RhdHVzICE9PSBFTlRFUkVEKSB7XG4gIC8vICAgICAgICAgbmV4dFN0YXR1cyA9IEVOVEVSSU5HXG4gIC8vICAgICAgIH1cbiAgLy8gICAgIH0gZWxzZSB7XG4gIC8vICAgICAgIGlmIChzdGF0dXMgPT09IEVOVEVSSU5HIHx8IHN0YXR1cyA9PT0gRU5URVJFRCkge1xuICAvLyAgICAgICAgIG5leHRTdGF0dXMgPSBFWElUSU5HXG4gIC8vICAgICAgIH1cbiAgLy8gICAgIH1cbiAgLy8gICB9XG4gIC8vICAgcmV0dXJuIHsgbmV4dFN0YXR1cyB9XG4gIC8vIH1cblxuXG4gIF9wcm90by5jb21wb25lbnREaWRNb3VudCA9IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIHRoaXMudXBkYXRlU3RhdHVzKHRydWUsIHRoaXMuYXBwZWFyU3RhdHVzKTtcbiAgfTtcblxuICBfcHJvdG8uY29tcG9uZW50RGlkVXBkYXRlID0gZnVuY3Rpb24gY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcykge1xuICAgIHZhciBuZXh0U3RhdHVzID0gbnVsbDtcblxuICAgIGlmIChwcmV2UHJvcHMgIT09IHRoaXMucHJvcHMpIHtcbiAgICAgIHZhciBzdGF0dXMgPSB0aGlzLnN0YXRlLnN0YXR1cztcblxuICAgICAgaWYgKHRoaXMucHJvcHMuaW4pIHtcbiAgICAgICAgaWYgKHN0YXR1cyAhPT0gRU5URVJJTkcgJiYgc3RhdHVzICE9PSBFTlRFUkVEKSB7XG4gICAgICAgICAgbmV4dFN0YXR1cyA9IEVOVEVSSU5HO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoc3RhdHVzID09PSBFTlRFUklORyB8fCBzdGF0dXMgPT09IEVOVEVSRUQpIHtcbiAgICAgICAgICBuZXh0U3RhdHVzID0gRVhJVElORztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMudXBkYXRlU3RhdHVzKGZhbHNlLCBuZXh0U3RhdHVzKTtcbiAgfTtcblxuICBfcHJvdG8uY29tcG9uZW50V2lsbFVubW91bnQgPSBmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICB0aGlzLmNhbmNlbE5leHRDYWxsYmFjaygpO1xuICB9O1xuXG4gIF9wcm90by5nZXRUaW1lb3V0cyA9IGZ1bmN0aW9uIGdldFRpbWVvdXRzKCkge1xuICAgIHZhciB0aW1lb3V0ID0gdGhpcy5wcm9wcy50aW1lb3V0O1xuICAgIHZhciBleGl0LCBlbnRlciwgYXBwZWFyO1xuICAgIGV4aXQgPSBlbnRlciA9IGFwcGVhciA9IHRpbWVvdXQ7XG5cbiAgICBpZiAodGltZW91dCAhPSBudWxsICYmIHR5cGVvZiB0aW1lb3V0ICE9PSAnbnVtYmVyJykge1xuICAgICAgZXhpdCA9IHRpbWVvdXQuZXhpdDtcbiAgICAgIGVudGVyID0gdGltZW91dC5lbnRlcjsgLy8gVE9ETzogcmVtb3ZlIGZhbGxiYWNrIGZvciBuZXh0IG1ham9yXG5cbiAgICAgIGFwcGVhciA9IHRpbWVvdXQuYXBwZWFyICE9PSB1bmRlZmluZWQgPyB0aW1lb3V0LmFwcGVhciA6IGVudGVyO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBleGl0OiBleGl0LFxuICAgICAgZW50ZXI6IGVudGVyLFxuICAgICAgYXBwZWFyOiBhcHBlYXJcbiAgICB9O1xuICB9O1xuXG4gIF9wcm90by51cGRhdGVTdGF0dXMgPSBmdW5jdGlvbiB1cGRhdGVTdGF0dXMobW91bnRpbmcsIG5leHRTdGF0dXMpIHtcbiAgICBpZiAobW91bnRpbmcgPT09IHZvaWQgMCkge1xuICAgICAgbW91bnRpbmcgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAobmV4dFN0YXR1cyAhPT0gbnVsbCkge1xuICAgICAgLy8gbmV4dFN0YXR1cyB3aWxsIGFsd2F5cyBiZSBFTlRFUklORyBvciBFWElUSU5HLlxuICAgICAgdGhpcy5jYW5jZWxOZXh0Q2FsbGJhY2soKTtcblxuICAgICAgdmFyIG5vZGUgPSBfcmVhY3REb20uZGVmYXVsdC5maW5kRE9NTm9kZSh0aGlzKTtcblxuICAgICAgaWYgKG5leHRTdGF0dXMgPT09IEVOVEVSSU5HKSB7XG4gICAgICAgIHRoaXMucGVyZm9ybUVudGVyKG5vZGUsIG1vdW50aW5nKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucGVyZm9ybUV4aXQobm9kZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLnByb3BzLnVubW91bnRPbkV4aXQgJiYgdGhpcy5zdGF0ZS5zdGF0dXMgPT09IEVYSVRFRCkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIHN0YXR1czogVU5NT1VOVEVEXG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgX3Byb3RvLnBlcmZvcm1FbnRlciA9IGZ1bmN0aW9uIHBlcmZvcm1FbnRlcihub2RlLCBtb3VudGluZykge1xuICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgdmFyIGVudGVyID0gdGhpcy5wcm9wcy5lbnRlcjtcbiAgICB2YXIgYXBwZWFyaW5nID0gdGhpcy5jb250ZXh0LnRyYW5zaXRpb25Hcm91cCA/IHRoaXMuY29udGV4dC50cmFuc2l0aW9uR3JvdXAuaXNNb3VudGluZyA6IG1vdW50aW5nO1xuICAgIHZhciB0aW1lb3V0cyA9IHRoaXMuZ2V0VGltZW91dHMoKTtcbiAgICB2YXIgZW50ZXJUaW1lb3V0ID0gYXBwZWFyaW5nID8gdGltZW91dHMuYXBwZWFyIDogdGltZW91dHMuZW50ZXI7IC8vIG5vIGVudGVyIGFuaW1hdGlvbiBza2lwIHJpZ2h0IHRvIEVOVEVSRURcbiAgICAvLyBpZiB3ZSBhcmUgbW91bnRpbmcgYW5kIHJ1bm5pbmcgdGhpcyBpdCBtZWFucyBhcHBlYXIgX211c3RfIGJlIHNldFxuXG4gICAgaWYgKCFtb3VudGluZyAmJiAhZW50ZXIpIHtcbiAgICAgIHRoaXMuc2FmZVNldFN0YXRlKHtcbiAgICAgICAgc3RhdHVzOiBFTlRFUkVEXG4gICAgICB9LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIF90aGlzMi5wcm9wcy5vbkVudGVyZWQobm9kZSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnByb3BzLm9uRW50ZXIobm9kZSwgYXBwZWFyaW5nKTtcbiAgICB0aGlzLnNhZmVTZXRTdGF0ZSh7XG4gICAgICBzdGF0dXM6IEVOVEVSSU5HXG4gICAgfSwgZnVuY3Rpb24gKCkge1xuICAgICAgX3RoaXMyLnByb3BzLm9uRW50ZXJpbmcobm9kZSwgYXBwZWFyaW5nKTtcblxuICAgICAgX3RoaXMyLm9uVHJhbnNpdGlvbkVuZChub2RlLCBlbnRlclRpbWVvdXQsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgX3RoaXMyLnNhZmVTZXRTdGF0ZSh7XG4gICAgICAgICAgc3RhdHVzOiBFTlRFUkVEXG4gICAgICAgIH0sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBfdGhpczIucHJvcHMub25FbnRlcmVkKG5vZGUsIGFwcGVhcmluZyk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH07XG5cbiAgX3Byb3RvLnBlcmZvcm1FeGl0ID0gZnVuY3Rpb24gcGVyZm9ybUV4aXQobm9kZSkge1xuICAgIHZhciBfdGhpczMgPSB0aGlzO1xuXG4gICAgdmFyIGV4aXQgPSB0aGlzLnByb3BzLmV4aXQ7XG4gICAgdmFyIHRpbWVvdXRzID0gdGhpcy5nZXRUaW1lb3V0cygpOyAvLyBubyBleGl0IGFuaW1hdGlvbiBza2lwIHJpZ2h0IHRvIEVYSVRFRFxuXG4gICAgaWYgKCFleGl0KSB7XG4gICAgICB0aGlzLnNhZmVTZXRTdGF0ZSh7XG4gICAgICAgIHN0YXR1czogRVhJVEVEXG4gICAgICB9LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIF90aGlzMy5wcm9wcy5vbkV4aXRlZChub2RlKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucHJvcHMub25FeGl0KG5vZGUpO1xuICAgIHRoaXMuc2FmZVNldFN0YXRlKHtcbiAgICAgIHN0YXR1czogRVhJVElOR1xuICAgIH0sIGZ1bmN0aW9uICgpIHtcbiAgICAgIF90aGlzMy5wcm9wcy5vbkV4aXRpbmcobm9kZSk7XG5cbiAgICAgIF90aGlzMy5vblRyYW5zaXRpb25FbmQobm9kZSwgdGltZW91dHMuZXhpdCwgZnVuY3Rpb24gKCkge1xuICAgICAgICBfdGhpczMuc2FmZVNldFN0YXRlKHtcbiAgICAgICAgICBzdGF0dXM6IEVYSVRFRFxuICAgICAgICB9LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgX3RoaXMzLnByb3BzLm9uRXhpdGVkKG5vZGUpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9O1xuXG4gIF9wcm90by5jYW5jZWxOZXh0Q2FsbGJhY2sgPSBmdW5jdGlvbiBjYW5jZWxOZXh0Q2FsbGJhY2soKSB7XG4gICAgaWYgKHRoaXMubmV4dENhbGxiYWNrICE9PSBudWxsKSB7XG4gICAgICB0aGlzLm5leHRDYWxsYmFjay5jYW5jZWwoKTtcbiAgICAgIHRoaXMubmV4dENhbGxiYWNrID0gbnVsbDtcbiAgICB9XG4gIH07XG5cbiAgX3Byb3RvLnNhZmVTZXRTdGF0ZSA9IGZ1bmN0aW9uIHNhZmVTZXRTdGF0ZShuZXh0U3RhdGUsIGNhbGxiYWNrKSB7XG4gICAgLy8gVGhpcyBzaG91bGRuJ3QgYmUgbmVjZXNzYXJ5LCBidXQgdGhlcmUgYXJlIHdlaXJkIHJhY2UgY29uZGl0aW9ucyB3aXRoXG4gICAgLy8gc2V0U3RhdGUgY2FsbGJhY2tzIGFuZCB1bm1vdW50aW5nIGluIHRlc3RpbmcsIHNvIGFsd2F5cyBtYWtlIHN1cmUgdGhhdFxuICAgIC8vIHdlIGNhbiBjYW5jZWwgYW55IHBlbmRpbmcgc2V0U3RhdGUgY2FsbGJhY2tzIGFmdGVyIHdlIHVubW91bnQuXG4gICAgY2FsbGJhY2sgPSB0aGlzLnNldE5leHRDYWxsYmFjayhjYWxsYmFjayk7XG4gICAgdGhpcy5zZXRTdGF0ZShuZXh0U3RhdGUsIGNhbGxiYWNrKTtcbiAgfTtcblxuICBfcHJvdG8uc2V0TmV4dENhbGxiYWNrID0gZnVuY3Rpb24gc2V0TmV4dENhbGxiYWNrKGNhbGxiYWNrKSB7XG4gICAgdmFyIF90aGlzNCA9IHRoaXM7XG5cbiAgICB2YXIgYWN0aXZlID0gdHJ1ZTtcblxuICAgIHRoaXMubmV4dENhbGxiYWNrID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICBpZiAoYWN0aXZlKSB7XG4gICAgICAgIGFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICBfdGhpczQubmV4dENhbGxiYWNrID0gbnVsbDtcbiAgICAgICAgY2FsbGJhY2soZXZlbnQpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB0aGlzLm5leHRDYWxsYmFjay5jYW5jZWwgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBhY3RpdmUgPSBmYWxzZTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMubmV4dENhbGxiYWNrO1xuICB9O1xuXG4gIF9wcm90by5vblRyYW5zaXRpb25FbmQgPSBmdW5jdGlvbiBvblRyYW5zaXRpb25FbmQobm9kZSwgdGltZW91dCwgaGFuZGxlcikge1xuICAgIHRoaXMuc2V0TmV4dENhbGxiYWNrKGhhbmRsZXIpO1xuICAgIHZhciBkb2VzTm90SGF2ZVRpbWVvdXRPckxpc3RlbmVyID0gdGltZW91dCA9PSBudWxsICYmICF0aGlzLnByb3BzLmFkZEVuZExpc3RlbmVyO1xuXG4gICAgaWYgKCFub2RlIHx8IGRvZXNOb3RIYXZlVGltZW91dE9yTGlzdGVuZXIpIHtcbiAgICAgIHNldFRpbWVvdXQodGhpcy5uZXh0Q2FsbGJhY2ssIDApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByb3BzLmFkZEVuZExpc3RlbmVyKSB7XG4gICAgICB0aGlzLnByb3BzLmFkZEVuZExpc3RlbmVyKG5vZGUsIHRoaXMubmV4dENhbGxiYWNrKTtcbiAgICB9XG5cbiAgICBpZiAodGltZW91dCAhPSBudWxsKSB7XG4gICAgICBzZXRUaW1lb3V0KHRoaXMubmV4dENhbGxiYWNrLCB0aW1lb3V0KTtcbiAgICB9XG4gIH07XG5cbiAgX3Byb3RvLnJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICB2YXIgc3RhdHVzID0gdGhpcy5zdGF0ZS5zdGF0dXM7XG5cbiAgICBpZiAoc3RhdHVzID09PSBVTk1PVU5URUQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHZhciBfdGhpcyRwcm9wcyA9IHRoaXMucHJvcHMsXG4gICAgICAgIGNoaWxkcmVuID0gX3RoaXMkcHJvcHMuY2hpbGRyZW4sXG4gICAgICAgIGNoaWxkUHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShfdGhpcyRwcm9wcywgW1wiY2hpbGRyZW5cIl0pOyAvLyBmaWx0ZXIgcHJvcHMgZm9yIFRyYW5zdGl0aW9uXG5cblxuICAgIGRlbGV0ZSBjaGlsZFByb3BzLmluO1xuICAgIGRlbGV0ZSBjaGlsZFByb3BzLm1vdW50T25FbnRlcjtcbiAgICBkZWxldGUgY2hpbGRQcm9wcy51bm1vdW50T25FeGl0O1xuICAgIGRlbGV0ZSBjaGlsZFByb3BzLmFwcGVhcjtcbiAgICBkZWxldGUgY2hpbGRQcm9wcy5lbnRlcjtcbiAgICBkZWxldGUgY2hpbGRQcm9wcy5leGl0O1xuICAgIGRlbGV0ZSBjaGlsZFByb3BzLnRpbWVvdXQ7XG4gICAgZGVsZXRlIGNoaWxkUHJvcHMuYWRkRW5kTGlzdGVuZXI7XG4gICAgZGVsZXRlIGNoaWxkUHJvcHMub25FbnRlcjtcbiAgICBkZWxldGUgY2hpbGRQcm9wcy5vbkVudGVyaW5nO1xuICAgIGRlbGV0ZSBjaGlsZFByb3BzLm9uRW50ZXJlZDtcbiAgICBkZWxldGUgY2hpbGRQcm9wcy5vbkV4aXQ7XG4gICAgZGVsZXRlIGNoaWxkUHJvcHMub25FeGl0aW5nO1xuICAgIGRlbGV0ZSBjaGlsZFByb3BzLm9uRXhpdGVkO1xuXG4gICAgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIGNoaWxkcmVuKHN0YXR1cywgY2hpbGRQcm9wcyk7XG4gICAgfVxuXG4gICAgdmFyIGNoaWxkID0gX3JlYWN0LmRlZmF1bHQuQ2hpbGRyZW4ub25seShjaGlsZHJlbik7XG5cbiAgICByZXR1cm4gX3JlYWN0LmRlZmF1bHQuY2xvbmVFbGVtZW50KGNoaWxkLCBjaGlsZFByb3BzKTtcbiAgfTtcblxuICByZXR1cm4gVHJhbnNpdGlvbjtcbn0oX3JlYWN0LmRlZmF1bHQuQ29tcG9uZW50KTtcblxuVHJhbnNpdGlvbi5jb250ZXh0VHlwZXMgPSB7XG4gIHRyYW5zaXRpb25Hcm91cDogUHJvcFR5cGVzLm9iamVjdFxufTtcblRyYW5zaXRpb24uY2hpbGRDb250ZXh0VHlwZXMgPSB7XG4gIHRyYW5zaXRpb25Hcm91cDogZnVuY3Rpb24gdHJhbnNpdGlvbkdyb3VwKCkge31cbn07XG5UcmFuc2l0aW9uLnByb3BUeXBlcyA9IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IHtcbiAgLyoqXG4gICAqIEEgYGZ1bmN0aW9uYCBjaGlsZCBjYW4gYmUgdXNlZCBpbnN0ZWFkIG9mIGEgUmVhY3QgZWxlbWVudC4gVGhpcyBmdW5jdGlvbiBpc1xuICAgKiBjYWxsZWQgd2l0aCB0aGUgY3VycmVudCB0cmFuc2l0aW9uIHN0YXR1cyAoYCdlbnRlcmluZydgLCBgJ2VudGVyZWQnYCxcbiAgICogYCdleGl0aW5nJ2AsIGAnZXhpdGVkJ2AsIGAndW5tb3VudGVkJ2ApLCB3aGljaCBjYW4gYmUgdXNlZCB0byBhcHBseSBjb250ZXh0XG4gICAqIHNwZWNpZmljIHByb3BzIHRvIGEgY29tcG9uZW50LlxuICAgKlxuICAgKiBgYGBqc3hcbiAgICogPFRyYW5zaXRpb24gaW49e3RoaXMuc3RhdGUuaW59IHRpbWVvdXQ9ezE1MH0+XG4gICAqICAge3N0YXRlID0+IChcbiAgICogICAgIDxNeUNvbXBvbmVudCBjbGFzc05hbWU9e2BmYWRlIGZhZGUtJHtzdGF0ZX1gfSAvPlxuICAgKiAgICl9XG4gICAqIDwvVHJhbnNpdGlvbj5cbiAgICogYGBgXG4gICAqL1xuICBjaGlsZHJlbjogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCwgUHJvcFR5cGVzLmVsZW1lbnQuaXNSZXF1aXJlZF0pLmlzUmVxdWlyZWQsXG5cbiAgLyoqXG4gICAqIFNob3cgdGhlIGNvbXBvbmVudDsgdHJpZ2dlcnMgdGhlIGVudGVyIG9yIGV4aXQgc3RhdGVzXG4gICAqL1xuICBpbjogUHJvcFR5cGVzLmJvb2wsXG5cbiAgLyoqXG4gICAqIEJ5IGRlZmF1bHQgdGhlIGNoaWxkIGNvbXBvbmVudCBpcyBtb3VudGVkIGltbWVkaWF0ZWx5IGFsb25nIHdpdGhcbiAgICogdGhlIHBhcmVudCBgVHJhbnNpdGlvbmAgY29tcG9uZW50LiBJZiB5b3Ugd2FudCB0byBcImxhenkgbW91bnRcIiB0aGUgY29tcG9uZW50IG9uIHRoZVxuICAgKiBmaXJzdCBgaW49e3RydWV9YCB5b3UgY2FuIHNldCBgbW91bnRPbkVudGVyYC4gQWZ0ZXIgdGhlIGZpcnN0IGVudGVyIHRyYW5zaXRpb24gdGhlIGNvbXBvbmVudCB3aWxsIHN0YXlcbiAgICogbW91bnRlZCwgZXZlbiBvbiBcImV4aXRlZFwiLCB1bmxlc3MgeW91IGFsc28gc3BlY2lmeSBgdW5tb3VudE9uRXhpdGAuXG4gICAqL1xuICBtb3VudE9uRW50ZXI6IFByb3BUeXBlcy5ib29sLFxuXG4gIC8qKlxuICAgKiBCeSBkZWZhdWx0IHRoZSBjaGlsZCBjb21wb25lbnQgc3RheXMgbW91bnRlZCBhZnRlciBpdCByZWFjaGVzIHRoZSBgJ2V4aXRlZCdgIHN0YXRlLlxuICAgKiBTZXQgYHVubW91bnRPbkV4aXRgIGlmIHlvdSdkIHByZWZlciB0byB1bm1vdW50IHRoZSBjb21wb25lbnQgYWZ0ZXIgaXQgZmluaXNoZXMgZXhpdGluZy5cbiAgICovXG4gIHVubW91bnRPbkV4aXQ6IFByb3BUeXBlcy5ib29sLFxuXG4gIC8qKlxuICAgKiBOb3JtYWxseSBhIGNvbXBvbmVudCBpcyBub3QgdHJhbnNpdGlvbmVkIGlmIGl0IGlzIHNob3duIHdoZW4gdGhlIGA8VHJhbnNpdGlvbj5gIGNvbXBvbmVudCBtb3VudHMuXG4gICAqIElmIHlvdSB3YW50IHRvIHRyYW5zaXRpb24gb24gdGhlIGZpcnN0IG1vdW50IHNldCBgYXBwZWFyYCB0byBgdHJ1ZWAsIGFuZCB0aGVcbiAgICogY29tcG9uZW50IHdpbGwgdHJhbnNpdGlvbiBpbiBhcyBzb29uIGFzIHRoZSBgPFRyYW5zaXRpb24+YCBtb3VudHMuXG4gICAqXG4gICAqID4gTm90ZTogdGhlcmUgYXJlIG5vIHNwZWNpZmljIFwiYXBwZWFyXCIgc3RhdGVzLiBgYXBwZWFyYCBvbmx5IGFkZHMgYW4gYWRkaXRpb25hbCBgZW50ZXJgIHRyYW5zaXRpb24uXG4gICAqL1xuICBhcHBlYXI6IFByb3BUeXBlcy5ib29sLFxuXG4gIC8qKlxuICAgKiBFbmFibGUgb3IgZGlzYWJsZSBlbnRlciB0cmFuc2l0aW9ucy5cbiAgICovXG4gIGVudGVyOiBQcm9wVHlwZXMuYm9vbCxcblxuICAvKipcbiAgICogRW5hYmxlIG9yIGRpc2FibGUgZXhpdCB0cmFuc2l0aW9ucy5cbiAgICovXG4gIGV4aXQ6IFByb3BUeXBlcy5ib29sLFxuXG4gIC8qKlxuICAgKiBUaGUgZHVyYXRpb24gb2YgdGhlIHRyYW5zaXRpb24sIGluIG1pbGxpc2Vjb25kcy5cbiAgICogUmVxdWlyZWQgdW5sZXNzIGBhZGRFbmRMaXN0ZW5lcmAgaXMgcHJvdmlkZWQuXG4gICAqXG4gICAqIFlvdSBtYXkgc3BlY2lmeSBhIHNpbmdsZSB0aW1lb3V0IGZvciBhbGwgdHJhbnNpdGlvbnM6XG4gICAqXG4gICAqIGBgYGpzeFxuICAgKiB0aW1lb3V0PXs1MDB9XG4gICAqIGBgYFxuICAgKlxuICAgKiBvciBpbmRpdmlkdWFsbHk6XG4gICAqXG4gICAqIGBgYGpzeFxuICAgKiB0aW1lb3V0PXt7XG4gICAqICBhcHBlYXI6IDUwMCxcbiAgICogIGVudGVyOiAzMDAsXG4gICAqICBleGl0OiA1MDAsXG4gICAqIH19XG4gICAqIGBgYFxuICAgKlxuICAgKiAtIGBhcHBlYXJgIGRlZmF1bHRzIHRvIHRoZSB2YWx1ZSBvZiBgZW50ZXJgXG4gICAqIC0gYGVudGVyYCBkZWZhdWx0cyB0byBgMGBcbiAgICogLSBgZXhpdGAgZGVmYXVsdHMgdG8gYDBgXG4gICAqXG4gICAqIEB0eXBlIHtudW1iZXIgfCB7IGVudGVyPzogbnVtYmVyLCBleGl0PzogbnVtYmVyLCBhcHBlYXI/OiBudW1iZXIgfX1cbiAgICovXG4gIHRpbWVvdXQ6IGZ1bmN0aW9uIHRpbWVvdXQocHJvcHMpIHtcbiAgICB2YXIgcHQgPSBfUHJvcFR5cGVzLnRpbWVvdXRzU2hhcGU7XG4gICAgaWYgKCFwcm9wcy5hZGRFbmRMaXN0ZW5lcikgcHQgPSBwdC5pc1JlcXVpcmVkO1xuXG4gICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiA+IDEgPyBfbGVuIC0gMSA6IDApLCBfa2V5ID0gMTsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgICAgYXJnc1tfa2V5IC0gMV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgfVxuXG4gICAgcmV0dXJuIHB0LmFwcGx5KHZvaWQgMCwgW3Byb3BzXS5jb25jYXQoYXJncykpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBBZGQgYSBjdXN0b20gdHJhbnNpdGlvbiBlbmQgdHJpZ2dlci4gQ2FsbGVkIHdpdGggdGhlIHRyYW5zaXRpb25pbmdcbiAgICogRE9NIG5vZGUgYW5kIGEgYGRvbmVgIGNhbGxiYWNrLiBBbGxvd3MgZm9yIG1vcmUgZmluZSBncmFpbmVkIHRyYW5zaXRpb24gZW5kXG4gICAqIGxvZ2ljLiAqKk5vdGU6KiogVGltZW91dHMgYXJlIHN0aWxsIHVzZWQgYXMgYSBmYWxsYmFjayBpZiBwcm92aWRlZC5cbiAgICpcbiAgICogYGBganN4XG4gICAqIGFkZEVuZExpc3RlbmVyPXsobm9kZSwgZG9uZSkgPT4ge1xuICAgKiAgIC8vIHVzZSB0aGUgY3NzIHRyYW5zaXRpb25lbmQgZXZlbnQgdG8gbWFyayB0aGUgZmluaXNoIG9mIGEgdHJhbnNpdGlvblxuICAgKiAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcigndHJhbnNpdGlvbmVuZCcsIGRvbmUsIGZhbHNlKTtcbiAgICogfX1cbiAgICogYGBgXG4gICAqL1xuICBhZGRFbmRMaXN0ZW5lcjogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIGZpcmVkIGJlZm9yZSB0aGUgXCJlbnRlcmluZ1wiIHN0YXR1cyBpcyBhcHBsaWVkLiBBbiBleHRyYSBwYXJhbWV0ZXJcbiAgICogYGlzQXBwZWFyaW5nYCBpcyBzdXBwbGllZCB0byBpbmRpY2F0ZSBpZiB0aGUgZW50ZXIgc3RhZ2UgaXMgb2NjdXJyaW5nIG9uIHRoZSBpbml0aWFsIG1vdW50XG4gICAqXG4gICAqIEB0eXBlIEZ1bmN0aW9uKG5vZGU6IEh0bWxFbGVtZW50LCBpc0FwcGVhcmluZzogYm9vbCkgLT4gdm9pZFxuICAgKi9cbiAgb25FbnRlcjogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIGZpcmVkIGFmdGVyIHRoZSBcImVudGVyaW5nXCIgc3RhdHVzIGlzIGFwcGxpZWQuIEFuIGV4dHJhIHBhcmFtZXRlclxuICAgKiBgaXNBcHBlYXJpbmdgIGlzIHN1cHBsaWVkIHRvIGluZGljYXRlIGlmIHRoZSBlbnRlciBzdGFnZSBpcyBvY2N1cnJpbmcgb24gdGhlIGluaXRpYWwgbW91bnRcbiAgICpcbiAgICogQHR5cGUgRnVuY3Rpb24obm9kZTogSHRtbEVsZW1lbnQsIGlzQXBwZWFyaW5nOiBib29sKVxuICAgKi9cbiAgb25FbnRlcmluZzogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIGZpcmVkIGFmdGVyIHRoZSBcImVudGVyZWRcIiBzdGF0dXMgaXMgYXBwbGllZC4gQW4gZXh0cmEgcGFyYW1ldGVyXG4gICAqIGBpc0FwcGVhcmluZ2AgaXMgc3VwcGxpZWQgdG8gaW5kaWNhdGUgaWYgdGhlIGVudGVyIHN0YWdlIGlzIG9jY3VycmluZyBvbiB0aGUgaW5pdGlhbCBtb3VudFxuICAgKlxuICAgKiBAdHlwZSBGdW5jdGlvbihub2RlOiBIdG1sRWxlbWVudCwgaXNBcHBlYXJpbmc6IGJvb2wpIC0+IHZvaWRcbiAgICovXG4gIG9uRW50ZXJlZDogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIGZpcmVkIGJlZm9yZSB0aGUgXCJleGl0aW5nXCIgc3RhdHVzIGlzIGFwcGxpZWQuXG4gICAqXG4gICAqIEB0eXBlIEZ1bmN0aW9uKG5vZGU6IEh0bWxFbGVtZW50KSAtPiB2b2lkXG4gICAqL1xuICBvbkV4aXQ6IFByb3BUeXBlcy5mdW5jLFxuXG4gIC8qKlxuICAgKiBDYWxsYmFjayBmaXJlZCBhZnRlciB0aGUgXCJleGl0aW5nXCIgc3RhdHVzIGlzIGFwcGxpZWQuXG4gICAqXG4gICAqIEB0eXBlIEZ1bmN0aW9uKG5vZGU6IEh0bWxFbGVtZW50KSAtPiB2b2lkXG4gICAqL1xuICBvbkV4aXRpbmc6IFByb3BUeXBlcy5mdW5jLFxuXG4gIC8qKlxuICAgKiBDYWxsYmFjayBmaXJlZCBhZnRlciB0aGUgXCJleGl0ZWRcIiBzdGF0dXMgaXMgYXBwbGllZC5cbiAgICpcbiAgICogQHR5cGUgRnVuY3Rpb24obm9kZTogSHRtbEVsZW1lbnQpIC0+IHZvaWRcbiAgICovXG4gIG9uRXhpdGVkOiBQcm9wVHlwZXMuZnVuYyAvLyBOYW1lIHRoZSBmdW5jdGlvbiBzbyBpdCBpcyBjbGVhcmVyIGluIHRoZSBkb2N1bWVudGF0aW9uXG5cbn0gOiB7fTtcblxuZnVuY3Rpb24gbm9vcCgpIHt9XG5cblRyYW5zaXRpb24uZGVmYXVsdFByb3BzID0ge1xuICBpbjogZmFsc2UsXG4gIG1vdW50T25FbnRlcjogZmFsc2UsXG4gIHVubW91bnRPbkV4aXQ6IGZhbHNlLFxuICBhcHBlYXI6IGZhbHNlLFxuICBlbnRlcjogdHJ1ZSxcbiAgZXhpdDogdHJ1ZSxcbiAgb25FbnRlcjogbm9vcCxcbiAgb25FbnRlcmluZzogbm9vcCxcbiAgb25FbnRlcmVkOiBub29wLFxuICBvbkV4aXQ6IG5vb3AsXG4gIG9uRXhpdGluZzogbm9vcCxcbiAgb25FeGl0ZWQ6IG5vb3Bcbn07XG5UcmFuc2l0aW9uLlVOTU9VTlRFRCA9IDA7XG5UcmFuc2l0aW9uLkVYSVRFRCA9IDE7XG5UcmFuc2l0aW9uLkVOVEVSSU5HID0gMjtcblRyYW5zaXRpb24uRU5URVJFRCA9IDM7XG5UcmFuc2l0aW9uLkVYSVRJTkcgPSA0O1xuXG52YXIgX2RlZmF1bHQgPSAoMCwgX3JlYWN0TGlmZWN5Y2xlc0NvbXBhdC5wb2x5ZmlsbCkoVHJhbnNpdGlvbik7XG5cbmV4cG9ydHMuZGVmYXVsdCA9IF9kZWZhdWx0OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-modal-video/node_modules/react-transition-group/Transition.js\n"); + +/***/ }), + +/***/ "./node_modules/react-modal-video/node_modules/react-transition-group/utils/PropTypes.js": +/*!***********************************************************************************************!*\ + !*** ./node_modules/react-modal-video/node_modules/react-transition-group/utils/PropTypes.js ***! + \***********************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nexports.__esModule = true;\nexports.classNamesShape = exports.timeoutsShape = void 0;\n\nvar _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar timeoutsShape = true ? _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n enter: _propTypes.default.number,\n exit: _propTypes.default.number,\n appear: _propTypes.default.number\n}).isRequired]) : 0;\nexports.timeoutsShape = timeoutsShape;\nvar classNamesShape = true ? _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.shape({\n enter: _propTypes.default.string,\n exit: _propTypes.default.string,\n active: _propTypes.default.string\n}), _propTypes.default.shape({\n enter: _propTypes.default.string,\n enterDone: _propTypes.default.string,\n enterActive: _propTypes.default.string,\n exit: _propTypes.default.string,\n exitDone: _propTypes.default.string,\n exitActive: _propTypes.default.string\n})]) : 0;\nexports.classNamesShape = classNamesShape;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtbW9kYWwtdmlkZW8vbm9kZV9tb2R1bGVzL3JlYWN0LXRyYW5zaXRpb24tZ3JvdXAvdXRpbHMvUHJvcFR5cGVzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLGtCQUFrQjtBQUNsQix1QkFBdUIsR0FBRyxxQkFBcUI7O0FBRS9DLHdDQUF3QyxtQkFBTyxDQUFDLHNEQUFZOztBQUU1RCx1Q0FBdUMsdUNBQXVDOztBQUU5RSxvQkFBb0IsS0FBcUM7QUFDekQ7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxpQkFBaUIsQ0FBSTtBQUN0QixxQkFBcUI7QUFDckIsc0JBQXNCLEtBQXFDO0FBQzNEO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLE1BQU0sQ0FBSTtBQUNYLHVCQUF1QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmVhY3QtbW9kYWwtdmlkZW8vbm9kZV9tb2R1bGVzL3JlYWN0LXRyYW5zaXRpb24tZ3JvdXAvdXRpbHMvUHJvcFR5cGVzLmpzP2M5ZWIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLmNsYXNzTmFtZXNTaGFwZSA9IGV4cG9ydHMudGltZW91dHNTaGFwZSA9IHZvaWQgMDtcblxudmFyIF9wcm9wVHlwZXMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJwcm9wLXR5cGVzXCIpKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxudmFyIHRpbWVvdXRzU2hhcGUgPSBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gX3Byb3BUeXBlcy5kZWZhdWx0Lm9uZU9mVHlwZShbX3Byb3BUeXBlcy5kZWZhdWx0Lm51bWJlciwgX3Byb3BUeXBlcy5kZWZhdWx0LnNoYXBlKHtcbiAgZW50ZXI6IF9wcm9wVHlwZXMuZGVmYXVsdC5udW1iZXIsXG4gIGV4aXQ6IF9wcm9wVHlwZXMuZGVmYXVsdC5udW1iZXIsXG4gIGFwcGVhcjogX3Byb3BUeXBlcy5kZWZhdWx0Lm51bWJlclxufSkuaXNSZXF1aXJlZF0pIDogbnVsbDtcbmV4cG9ydHMudGltZW91dHNTaGFwZSA9IHRpbWVvdXRzU2hhcGU7XG52YXIgY2xhc3NOYW1lc1NoYXBlID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IF9wcm9wVHlwZXMuZGVmYXVsdC5vbmVPZlR5cGUoW19wcm9wVHlwZXMuZGVmYXVsdC5zdHJpbmcsIF9wcm9wVHlwZXMuZGVmYXVsdC5zaGFwZSh7XG4gIGVudGVyOiBfcHJvcFR5cGVzLmRlZmF1bHQuc3RyaW5nLFxuICBleGl0OiBfcHJvcFR5cGVzLmRlZmF1bHQuc3RyaW5nLFxuICBhY3RpdmU6IF9wcm9wVHlwZXMuZGVmYXVsdC5zdHJpbmdcbn0pLCBfcHJvcFR5cGVzLmRlZmF1bHQuc2hhcGUoe1xuICBlbnRlcjogX3Byb3BUeXBlcy5kZWZhdWx0LnN0cmluZyxcbiAgZW50ZXJEb25lOiBfcHJvcFR5cGVzLmRlZmF1bHQuc3RyaW5nLFxuICBlbnRlckFjdGl2ZTogX3Byb3BUeXBlcy5kZWZhdWx0LnN0cmluZyxcbiAgZXhpdDogX3Byb3BUeXBlcy5kZWZhdWx0LnN0cmluZyxcbiAgZXhpdERvbmU6IF9wcm9wVHlwZXMuZGVmYXVsdC5zdHJpbmcsXG4gIGV4aXRBY3RpdmU6IF9wcm9wVHlwZXMuZGVmYXVsdC5zdHJpbmdcbn0pXSkgOiBudWxsO1xuZXhwb3J0cy5jbGFzc05hbWVzU2hhcGUgPSBjbGFzc05hbWVzU2hhcGU7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/react-modal-video/node_modules/react-transition-group/utils/PropTypes.js\n"); + +/***/ }), + +/***/ "./node_modules/react-slick/lib/arrows.js": +/*!************************************************!*\ + !*** ./node_modules/react-slick/lib/arrows.js ***! + \************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.NextArrow = exports.PrevArrow = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _classnames = _interopRequireDefault(__webpack_require__(/*! classnames */ \"./node_modules/classnames/index.js\"));\n\nvar _innerSliderUtils = __webpack_require__(/*! ./utils/innerSliderUtils */ \"./node_modules/react-slick/lib/utils/innerSliderUtils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar PrevArrow = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(PrevArrow, _React$PureComponent);\n\n var _super = _createSuper(PrevArrow);\n\n function PrevArrow() {\n _classCallCheck(this, PrevArrow);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(PrevArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var prevClasses = {\n \"slick-arrow\": true,\n \"slick-prev\": true\n };\n var prevHandler = this.clickHandler.bind(this, {\n message: \"previous\"\n });\n\n if (!this.props.infinite && (this.props.currentSlide === 0 || this.props.slideCount <= this.props.slidesToShow)) {\n prevClasses[\"slick-disabled\"] = true;\n prevHandler = null;\n }\n\n var prevArrowProps = {\n key: \"0\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(prevClasses),\n style: {\n display: \"block\"\n },\n onClick: prevHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var prevArrow;\n\n if (this.props.prevArrow) {\n prevArrow = /*#__PURE__*/_react[\"default\"].cloneElement(this.props.prevArrow, _objectSpread(_objectSpread({}, prevArrowProps), customProps));\n } else {\n prevArrow = /*#__PURE__*/_react[\"default\"].createElement(\"button\", _extends({\n key: \"0\",\n type: \"button\"\n }, prevArrowProps), \" \", \"Previous\");\n }\n\n return prevArrow;\n }\n }]);\n\n return PrevArrow;\n}(_react[\"default\"].PureComponent);\n\nexports.PrevArrow = PrevArrow;\n\nvar NextArrow = /*#__PURE__*/function (_React$PureComponent2) {\n _inherits(NextArrow, _React$PureComponent2);\n\n var _super2 = _createSuper(NextArrow);\n\n function NextArrow() {\n _classCallCheck(this, NextArrow);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(NextArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var nextClasses = {\n \"slick-arrow\": true,\n \"slick-next\": true\n };\n var nextHandler = this.clickHandler.bind(this, {\n message: \"next\"\n });\n\n if (!(0, _innerSliderUtils.canGoNext)(this.props)) {\n nextClasses[\"slick-disabled\"] = true;\n nextHandler = null;\n }\n\n var nextArrowProps = {\n key: \"1\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(nextClasses),\n style: {\n display: \"block\"\n },\n onClick: nextHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var nextArrow;\n\n if (this.props.nextArrow) {\n nextArrow = /*#__PURE__*/_react[\"default\"].cloneElement(this.props.nextArrow, _objectSpread(_objectSpread({}, nextArrowProps), customProps));\n } else {\n nextArrow = /*#__PURE__*/_react[\"default\"].createElement(\"button\", _extends({\n key: \"1\",\n type: \"button\"\n }, nextArrowProps), \" \", \"Next\");\n }\n\n return nextArrow;\n }\n }]);\n\n return NextArrow;\n}(_react[\"default\"].PureComponent);\n\nexports.NextArrow = NextArrow;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2xpY2svbGliL2Fycm93cy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixpQkFBaUIsR0FBRyxpQkFBaUI7O0FBRXJDLG9DQUFvQyxtQkFBTyxDQUFDLDRDQUFPOztBQUVuRCx5Q0FBeUMsbUJBQU8sQ0FBQyxzREFBWTs7QUFFN0Qsd0JBQXdCLG1CQUFPLENBQUMsMEZBQTBCOztBQUUxRCx1Q0FBdUMsdUNBQXVDOztBQUU5RSx3QkFBd0IsMkJBQTJCLDJFQUEyRSxrQ0FBa0Msd0JBQXdCLE9BQU8sa0NBQWtDLG1JQUFtSTs7QUFFcFcsc0JBQXNCLGdEQUFnRCxnQkFBZ0Isc0JBQXNCLE9BQU8sMkJBQTJCLDBCQUEwQix5REFBeUQsaUNBQWlDLGtCQUFrQjs7QUFFcFIsMkNBQTJDLGdDQUFnQyxvQ0FBb0Msb0RBQW9ELDhEQUE4RCxpRUFBaUUsR0FBRyxrQ0FBa0M7O0FBRXZVLGlDQUFpQyxnQkFBZ0Isc0JBQXNCLE9BQU8sdURBQXVELGFBQWEsdURBQXVELDRDQUE0QyxLQUFLLDZDQUE2Qyw2RUFBNkUsT0FBTyxpREFBaUQsbUZBQW1GLE9BQU87O0FBRXRnQiw0Q0FBNEMsa0JBQWtCLGtDQUFrQyxvRUFBb0UsS0FBSyxPQUFPLG9CQUFvQjs7QUFFcE0sa0RBQWtELDBDQUEwQzs7QUFFNUYsNENBQTRDLGdCQUFnQixrQkFBa0IsT0FBTywyQkFBMkIsd0RBQXdELGdDQUFnQyx1REFBdUQ7O0FBRS9QLDhEQUE4RCxzRUFBc0UsOERBQThEOztBQUVsTSwyQ0FBMkMsK0RBQStELDZFQUE2RSx5RUFBeUUsZUFBZSx1REFBdUQsR0FBRzs7QUFFelUsaUNBQWlDLDRFQUE0RSxpQkFBaUIsYUFBYTs7QUFFM0ksaUNBQWlDLDZEQUE2RCx5Q0FBeUMsOENBQThDLGlDQUFpQyxtREFBbUQsMkRBQTJELE9BQU8seUNBQXlDOztBQUVwWCxrREFBa0QsMEVBQTBFLGVBQWU7O0FBRTNJLHdDQUF3Qyx1QkFBdUIseUZBQXlGOztBQUV4Six1Q0FBdUMsd0VBQXdFLDBDQUEwQyw4Q0FBOEMsTUFBTSx1RUFBdUUsSUFBSSxlQUFlLFlBQVk7O0FBRW5ULDhCQUE4QixnR0FBZ0csbURBQW1EOztBQUVqTDtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTzs7QUFFUDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxvSEFBb0g7QUFDcEgsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDs7QUFFQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBLENBQUM7O0FBRUQsaUJBQWlCOztBQUVqQjtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTzs7QUFFUDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxvSEFBb0g7QUFDcEgsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDs7QUFFQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBLENBQUM7O0FBRUQsaUJBQWlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zbGljay9saWIvYXJyb3dzLmpzPzY2ODciXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLk5leHRBcnJvdyA9IGV4cG9ydHMuUHJldkFycm93ID0gdm9pZCAwO1xuXG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX2NsYXNzbmFtZXMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJjbGFzc25hbWVzXCIpKTtcblxudmFyIF9pbm5lclNsaWRlclV0aWxzID0gcmVxdWlyZShcIi4vdXRpbHMvaW5uZXJTbGlkZXJVdGlsc1wiKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjsgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiKSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfTsgfSBlbHNlIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9OyB9IHJldHVybiBfdHlwZW9mKG9iaik7IH1cblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cblxuZnVuY3Rpb24gb3duS2V5cyhvYmplY3QsIGVudW1lcmFibGVPbmx5KSB7IHZhciBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KTsgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHsgdmFyIHN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG9iamVjdCk7IGlmIChlbnVtZXJhYmxlT25seSkgc3ltYm9scyA9IHN5bWJvbHMuZmlsdGVyKGZ1bmN0aW9uIChzeW0pIHsgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LCBzeW0pLmVudW1lcmFibGU7IH0pOyBrZXlzLnB1c2guYXBwbHkoa2V5cywgc3ltYm9scyk7IH0gcmV0dXJuIGtleXM7IH1cblxuZnVuY3Rpb24gX29iamVjdFNwcmVhZCh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXSAhPSBudWxsID8gYXJndW1lbnRzW2ldIDoge307IGlmIChpICUgMikgeyBvd25LZXlzKE9iamVjdChzb3VyY2UpLCB0cnVlKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsgX2RlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBzb3VyY2Vba2V5XSk7IH0pOyB9IGVsc2UgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoc291cmNlKSk7IH0gZWxzZSB7IG93bktleXMoT2JqZWN0KHNvdXJjZSkpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc291cmNlLCBrZXkpKTsgfSk7IH0gfSByZXR1cm4gdGFyZ2V0OyB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsgaWYgKGtleSBpbiBvYmopIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsgfSBlbHNlIHsgb2JqW2tleV0gPSB2YWx1ZTsgfSByZXR1cm4gb2JqOyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH1cblxuZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIF9zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcyk7IH1cblxuZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgX3NldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IG8uX19wcm90b19fID0gcDsgcmV0dXJuIG87IH07IHJldHVybiBfc2V0UHJvdG90eXBlT2YobywgcCk7IH1cblxuZnVuY3Rpb24gX2NyZWF0ZVN1cGVyKERlcml2ZWQpIHsgdmFyIGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCk7IHJldHVybiBmdW5jdGlvbiBfY3JlYXRlU3VwZXJJbnRlcm5hbCgpIHsgdmFyIFN1cGVyID0gX2dldFByb3RvdHlwZU9mKERlcml2ZWQpLCByZXN1bHQ7IGlmIChoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KSB7IHZhciBOZXdUYXJnZXQgPSBfZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3I7IHJlc3VsdCA9IFJlZmxlY3QuY29uc3RydWN0KFN1cGVyLCBhcmd1bWVudHMsIE5ld1RhcmdldCk7IH0gZWxzZSB7IHJlc3VsdCA9IFN1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH0gcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIHJlc3VsdCk7IH07IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoY2FsbCAmJiAoX3R5cGVvZihjYWxsKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkgeyByZXR1cm4gY2FsbDsgfSByZXR1cm4gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKTsgfVxuXG5mdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpIHsgaWYgKHNlbGYgPT09IHZvaWQgMCkgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIHNlbGY7IH1cblxuZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHsgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiIHx8ICFSZWZsZWN0LmNvbnN0cnVjdCkgcmV0dXJuIGZhbHNlOyBpZiAoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSkgcmV0dXJuIGZhbHNlOyBpZiAodHlwZW9mIFByb3h5ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB0cnVlOyB0cnkgeyBEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFJlZmxlY3QuY29uc3RydWN0KERhdGUsIFtdLCBmdW5jdGlvbiAoKSB7fSkpOyByZXR1cm4gdHJ1ZTsgfSBjYXRjaCAoZSkgeyByZXR1cm4gZmFsc2U7IH0gfVxuXG5mdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyByZXR1cm4gby5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pOyB9OyByZXR1cm4gX2dldFByb3RvdHlwZU9mKG8pOyB9XG5cbnZhciBQcmV2QXJyb3cgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9SZWFjdCRQdXJlQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhQcmV2QXJyb3csIF9SZWFjdCRQdXJlQ29tcG9uZW50KTtcblxuICB2YXIgX3N1cGVyID0gX2NyZWF0ZVN1cGVyKFByZXZBcnJvdyk7XG5cbiAgZnVuY3Rpb24gUHJldkFycm93KCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBQcmV2QXJyb3cpO1xuXG4gICAgcmV0dXJuIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKFByZXZBcnJvdywgW3tcbiAgICBrZXk6IFwiY2xpY2tIYW5kbGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNsaWNrSGFuZGxlcihvcHRpb25zLCBlKSB7XG4gICAgICBpZiAoZSkge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMucHJvcHMuY2xpY2tIYW5kbGVyKG9wdGlvbnMsIGUpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW5kZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgdmFyIHByZXZDbGFzc2VzID0ge1xuICAgICAgICBcInNsaWNrLWFycm93XCI6IHRydWUsXG4gICAgICAgIFwic2xpY2stcHJldlwiOiB0cnVlXG4gICAgICB9O1xuICAgICAgdmFyIHByZXZIYW5kbGVyID0gdGhpcy5jbGlja0hhbmRsZXIuYmluZCh0aGlzLCB7XG4gICAgICAgIG1lc3NhZ2U6IFwicHJldmlvdXNcIlxuICAgICAgfSk7XG5cbiAgICAgIGlmICghdGhpcy5wcm9wcy5pbmZpbml0ZSAmJiAodGhpcy5wcm9wcy5jdXJyZW50U2xpZGUgPT09IDAgfHwgdGhpcy5wcm9wcy5zbGlkZUNvdW50IDw9IHRoaXMucHJvcHMuc2xpZGVzVG9TaG93KSkge1xuICAgICAgICBwcmV2Q2xhc3Nlc1tcInNsaWNrLWRpc2FibGVkXCJdID0gdHJ1ZTtcbiAgICAgICAgcHJldkhhbmRsZXIgPSBudWxsO1xuICAgICAgfVxuXG4gICAgICB2YXIgcHJldkFycm93UHJvcHMgPSB7XG4gICAgICAgIGtleTogXCIwXCIsXG4gICAgICAgIFwiZGF0YS1yb2xlXCI6IFwibm9uZVwiLFxuICAgICAgICBjbGFzc05hbWU6ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKHByZXZDbGFzc2VzKSxcbiAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICBkaXNwbGF5OiBcImJsb2NrXCJcbiAgICAgICAgfSxcbiAgICAgICAgb25DbGljazogcHJldkhhbmRsZXJcbiAgICAgIH07XG4gICAgICB2YXIgY3VzdG9tUHJvcHMgPSB7XG4gICAgICAgIGN1cnJlbnRTbGlkZTogdGhpcy5wcm9wcy5jdXJyZW50U2xpZGUsXG4gICAgICAgIHNsaWRlQ291bnQ6IHRoaXMucHJvcHMuc2xpZGVDb3VudFxuICAgICAgfTtcbiAgICAgIHZhciBwcmV2QXJyb3c7XG5cbiAgICAgIGlmICh0aGlzLnByb3BzLnByZXZBcnJvdykge1xuICAgICAgICBwcmV2QXJyb3cgPSAvKiNfX1BVUkVfXyovX3JlYWN0W1wiZGVmYXVsdFwiXS5jbG9uZUVsZW1lbnQodGhpcy5wcm9wcy5wcmV2QXJyb3csIF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgcHJldkFycm93UHJvcHMpLCBjdXN0b21Qcm9wcykpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcHJldkFycm93ID0gLyojX19QVVJFX18qL19yZWFjdFtcImRlZmF1bHRcIl0uY3JlYXRlRWxlbWVudChcImJ1dHRvblwiLCBfZXh0ZW5kcyh7XG4gICAgICAgICAga2V5OiBcIjBcIixcbiAgICAgICAgICB0eXBlOiBcImJ1dHRvblwiXG4gICAgICAgIH0sIHByZXZBcnJvd1Byb3BzKSwgXCIgXCIsIFwiUHJldmlvdXNcIik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBwcmV2QXJyb3c7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIFByZXZBcnJvdztcbn0oX3JlYWN0W1wiZGVmYXVsdFwiXS5QdXJlQ29tcG9uZW50KTtcblxuZXhwb3J0cy5QcmV2QXJyb3cgPSBQcmV2QXJyb3c7XG5cbnZhciBOZXh0QXJyb3cgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9SZWFjdCRQdXJlQ29tcG9uZW50Mikge1xuICBfaW5oZXJpdHMoTmV4dEFycm93LCBfUmVhY3QkUHVyZUNvbXBvbmVudDIpO1xuXG4gIHZhciBfc3VwZXIyID0gX2NyZWF0ZVN1cGVyKE5leHRBcnJvdyk7XG5cbiAgZnVuY3Rpb24gTmV4dEFycm93KCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBOZXh0QXJyb3cpO1xuXG4gICAgcmV0dXJuIF9zdXBlcjIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhOZXh0QXJyb3csIFt7XG4gICAga2V5OiBcImNsaWNrSGFuZGxlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjbGlja0hhbmRsZXIob3B0aW9ucywgZSkge1xuICAgICAgaWYgKGUpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnByb3BzLmNsaWNrSGFuZGxlcihvcHRpb25zLCBlKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHZhciBuZXh0Q2xhc3NlcyA9IHtcbiAgICAgICAgXCJzbGljay1hcnJvd1wiOiB0cnVlLFxuICAgICAgICBcInNsaWNrLW5leHRcIjogdHJ1ZVxuICAgICAgfTtcbiAgICAgIHZhciBuZXh0SGFuZGxlciA9IHRoaXMuY2xpY2tIYW5kbGVyLmJpbmQodGhpcywge1xuICAgICAgICBtZXNzYWdlOiBcIm5leHRcIlxuICAgICAgfSk7XG5cbiAgICAgIGlmICghKDAsIF9pbm5lclNsaWRlclV0aWxzLmNhbkdvTmV4dCkodGhpcy5wcm9wcykpIHtcbiAgICAgICAgbmV4dENsYXNzZXNbXCJzbGljay1kaXNhYmxlZFwiXSA9IHRydWU7XG4gICAgICAgIG5leHRIYW5kbGVyID0gbnVsbDtcbiAgICAgIH1cblxuICAgICAgdmFyIG5leHRBcnJvd1Byb3BzID0ge1xuICAgICAgICBrZXk6IFwiMVwiLFxuICAgICAgICBcImRhdGEtcm9sZVwiOiBcIm5vbmVcIixcbiAgICAgICAgY2xhc3NOYW1lOiAoMCwgX2NsYXNzbmFtZXNbXCJkZWZhdWx0XCJdKShuZXh0Q2xhc3NlcyksXG4gICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgZGlzcGxheTogXCJibG9ja1wiXG4gICAgICAgIH0sXG4gICAgICAgIG9uQ2xpY2s6IG5leHRIYW5kbGVyXG4gICAgICB9O1xuICAgICAgdmFyIGN1c3RvbVByb3BzID0ge1xuICAgICAgICBjdXJyZW50U2xpZGU6IHRoaXMucHJvcHMuY3VycmVudFNsaWRlLFxuICAgICAgICBzbGlkZUNvdW50OiB0aGlzLnByb3BzLnNsaWRlQ291bnRcbiAgICAgIH07XG4gICAgICB2YXIgbmV4dEFycm93O1xuXG4gICAgICBpZiAodGhpcy5wcm9wcy5uZXh0QXJyb3cpIHtcbiAgICAgICAgbmV4dEFycm93ID0gLyojX19QVVJFX18qL19yZWFjdFtcImRlZmF1bHRcIl0uY2xvbmVFbGVtZW50KHRoaXMucHJvcHMubmV4dEFycm93LCBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIG5leHRBcnJvd1Byb3BzKSwgY3VzdG9tUHJvcHMpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5leHRBcnJvdyA9IC8qI19fUFVSRV9fKi9fcmVhY3RbXCJkZWZhdWx0XCJdLmNyZWF0ZUVsZW1lbnQoXCJidXR0b25cIiwgX2V4dGVuZHMoe1xuICAgICAgICAgIGtleTogXCIxXCIsXG4gICAgICAgICAgdHlwZTogXCJidXR0b25cIlxuICAgICAgICB9LCBuZXh0QXJyb3dQcm9wcyksIFwiIFwiLCBcIk5leHRcIik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBuZXh0QXJyb3c7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIE5leHRBcnJvdztcbn0oX3JlYWN0W1wiZGVmYXVsdFwiXS5QdXJlQ29tcG9uZW50KTtcblxuZXhwb3J0cy5OZXh0QXJyb3cgPSBOZXh0QXJyb3c7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/react-slick/lib/arrows.js\n"); + +/***/ }), + +/***/ "./node_modules/react-slick/lib/default-props.js": +/*!*******************************************************!*\ + !*** ./node_modules/react-slick/lib/default-props.js ***! + \*******************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar defaultProps = {\n accessibility: true,\n adaptiveHeight: false,\n afterChange: null,\n appendDots: function appendDots(dots) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"ul\", {\n style: {\n display: \"block\"\n }\n }, dots);\n },\n arrows: true,\n autoplay: false,\n autoplaySpeed: 3000,\n beforeChange: null,\n centerMode: false,\n centerPadding: \"50px\",\n className: \"\",\n cssEase: \"ease\",\n customPaging: function customPaging(i) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"button\", null, i + 1);\n },\n dots: false,\n dotsClass: \"slick-dots\",\n draggable: true,\n easing: \"linear\",\n edgeFriction: 0.35,\n fade: false,\n focusOnSelect: false,\n infinite: true,\n initialSlide: 0,\n lazyLoad: null,\n nextArrow: null,\n onEdge: null,\n onInit: null,\n onLazyLoadError: null,\n onReInit: null,\n pauseOnDotsHover: false,\n pauseOnFocus: false,\n pauseOnHover: true,\n prevArrow: null,\n responsive: null,\n rows: 1,\n rtl: false,\n slide: \"div\",\n slidesPerRow: 1,\n slidesToScroll: 1,\n slidesToShow: 1,\n speed: 500,\n swipe: true,\n swipeEvent: null,\n swipeToSlide: false,\n touchMove: true,\n touchThreshold: 5,\n useCSS: true,\n useTransform: true,\n variableWidth: false,\n vertical: false,\n waitForAnimate: true\n};\nvar _default = defaultProps;\nexports[\"default\"] = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2xpY2svbGliL2RlZmF1bHQtcHJvcHMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Ysa0JBQWtCOztBQUVsQixvQ0FBb0MsbUJBQU8sQ0FBQyw0Q0FBTzs7QUFFbkQsdUNBQXVDLHVDQUF1Qzs7QUFFOUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXNsaWNrL2xpYi9kZWZhdWx0LXByb3BzLmpzP2M5NTciXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcblxudmFyIF9yZWFjdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJlYWN0XCIpKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbnZhciBkZWZhdWx0UHJvcHMgPSB7XG4gIGFjY2Vzc2liaWxpdHk6IHRydWUsXG4gIGFkYXB0aXZlSGVpZ2h0OiBmYWxzZSxcbiAgYWZ0ZXJDaGFuZ2U6IG51bGwsXG4gIGFwcGVuZERvdHM6IGZ1bmN0aW9uIGFwcGVuZERvdHMoZG90cykge1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovX3JlYWN0W1wiZGVmYXVsdFwiXS5jcmVhdGVFbGVtZW50KFwidWxcIiwge1xuICAgICAgc3R5bGU6IHtcbiAgICAgICAgZGlzcGxheTogXCJibG9ja1wiXG4gICAgICB9XG4gICAgfSwgZG90cyk7XG4gIH0sXG4gIGFycm93czogdHJ1ZSxcbiAgYXV0b3BsYXk6IGZhbHNlLFxuICBhdXRvcGxheVNwZWVkOiAzMDAwLFxuICBiZWZvcmVDaGFuZ2U6IG51bGwsXG4gIGNlbnRlck1vZGU6IGZhbHNlLFxuICBjZW50ZXJQYWRkaW5nOiBcIjUwcHhcIixcbiAgY2xhc3NOYW1lOiBcIlwiLFxuICBjc3NFYXNlOiBcImVhc2VcIixcbiAgY3VzdG9tUGFnaW5nOiBmdW5jdGlvbiBjdXN0b21QYWdpbmcoaSkge1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovX3JlYWN0W1wiZGVmYXVsdFwiXS5jcmVhdGVFbGVtZW50KFwiYnV0dG9uXCIsIG51bGwsIGkgKyAxKTtcbiAgfSxcbiAgZG90czogZmFsc2UsXG4gIGRvdHNDbGFzczogXCJzbGljay1kb3RzXCIsXG4gIGRyYWdnYWJsZTogdHJ1ZSxcbiAgZWFzaW5nOiBcImxpbmVhclwiLFxuICBlZGdlRnJpY3Rpb246IDAuMzUsXG4gIGZhZGU6IGZhbHNlLFxuICBmb2N1c09uU2VsZWN0OiBmYWxzZSxcbiAgaW5maW5pdGU6IHRydWUsXG4gIGluaXRpYWxTbGlkZTogMCxcbiAgbGF6eUxvYWQ6IG51bGwsXG4gIG5leHRBcnJvdzogbnVsbCxcbiAgb25FZGdlOiBudWxsLFxuICBvbkluaXQ6IG51bGwsXG4gIG9uTGF6eUxvYWRFcnJvcjogbnVsbCxcbiAgb25SZUluaXQ6IG51bGwsXG4gIHBhdXNlT25Eb3RzSG92ZXI6IGZhbHNlLFxuICBwYXVzZU9uRm9jdXM6IGZhbHNlLFxuICBwYXVzZU9uSG92ZXI6IHRydWUsXG4gIHByZXZBcnJvdzogbnVsbCxcbiAgcmVzcG9uc2l2ZTogbnVsbCxcbiAgcm93czogMSxcbiAgcnRsOiBmYWxzZSxcbiAgc2xpZGU6IFwiZGl2XCIsXG4gIHNsaWRlc1BlclJvdzogMSxcbiAgc2xpZGVzVG9TY3JvbGw6IDEsXG4gIHNsaWRlc1RvU2hvdzogMSxcbiAgc3BlZWQ6IDUwMCxcbiAgc3dpcGU6IHRydWUsXG4gIHN3aXBlRXZlbnQ6IG51bGwsXG4gIHN3aXBlVG9TbGlkZTogZmFsc2UsXG4gIHRvdWNoTW92ZTogdHJ1ZSxcbiAgdG91Y2hUaHJlc2hvbGQ6IDUsXG4gIHVzZUNTUzogdHJ1ZSxcbiAgdXNlVHJhbnNmb3JtOiB0cnVlLFxuICB2YXJpYWJsZVdpZHRoOiBmYWxzZSxcbiAgdmVydGljYWw6IGZhbHNlLFxuICB3YWl0Rm9yQW5pbWF0ZTogdHJ1ZVxufTtcbnZhciBfZGVmYXVsdCA9IGRlZmF1bHRQcm9wcztcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gX2RlZmF1bHQ7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/react-slick/lib/default-props.js\n"); + +/***/ }), + +/***/ "./node_modules/react-slick/lib/dots.js": +/*!**********************************************!*\ + !*** ./node_modules/react-slick/lib/dots.js ***! + \**********************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.Dots = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _classnames = _interopRequireDefault(__webpack_require__(/*! classnames */ \"./node_modules/classnames/index.js\"));\n\nvar _innerSliderUtils = __webpack_require__(/*! ./utils/innerSliderUtils */ \"./node_modules/react-slick/lib/utils/innerSliderUtils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar getDotCount = function getDotCount(spec) {\n var dots;\n\n if (spec.infinite) {\n dots = Math.ceil(spec.slideCount / spec.slidesToScroll);\n } else {\n dots = Math.ceil((spec.slideCount - spec.slidesToShow) / spec.slidesToScroll) + 1;\n }\n\n return dots;\n};\n\nvar Dots = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Dots, _React$PureComponent);\n\n var _super = _createSuper(Dots);\n\n function Dots() {\n _classCallCheck(this, Dots);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Dots, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n // In Autoplay the focus stays on clicked button even after transition\n // to next slide. That only goes away by click somewhere outside\n e.preventDefault();\n this.props.clickHandler(options);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave,\n infinite = _this$props.infinite,\n slidesToScroll = _this$props.slidesToScroll,\n slidesToShow = _this$props.slidesToShow,\n slideCount = _this$props.slideCount,\n currentSlide = _this$props.currentSlide;\n var dotCount = getDotCount({\n slideCount: slideCount,\n slidesToScroll: slidesToScroll,\n slidesToShow: slidesToShow,\n infinite: infinite\n });\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n var dots = [];\n\n for (var i = 0; i < dotCount; i++) {\n var _rightBound = (i + 1) * slidesToScroll - 1;\n\n var rightBound = infinite ? _rightBound : (0, _innerSliderUtils.clamp)(_rightBound, 0, slideCount - 1);\n\n var _leftBound = rightBound - (slidesToScroll - 1);\n\n var leftBound = infinite ? _leftBound : (0, _innerSliderUtils.clamp)(_leftBound, 0, slideCount - 1);\n var className = (0, _classnames[\"default\"])({\n \"slick-active\": infinite ? currentSlide >= leftBound && currentSlide <= rightBound : currentSlide === leftBound\n });\n var dotOptions = {\n message: \"dots\",\n index: i,\n slidesToScroll: slidesToScroll,\n currentSlide: currentSlide\n };\n var onClick = this.clickHandler.bind(this, dotOptions);\n dots = dots.concat( /*#__PURE__*/_react[\"default\"].createElement(\"li\", {\n key: i,\n className: className\n }, /*#__PURE__*/_react[\"default\"].cloneElement(this.props.customPaging(i), {\n onClick: onClick\n })));\n }\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(this.props.appendDots(dots), _objectSpread({\n className: this.props.dotsClass\n }, mouseEvents));\n }\n }]);\n\n return Dots;\n}(_react[\"default\"].PureComponent);\n\nexports.Dots = Dots;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2xpY2svbGliL2RvdHMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsWUFBWTs7QUFFWixvQ0FBb0MsbUJBQU8sQ0FBQyw0Q0FBTzs7QUFFbkQseUNBQXlDLG1CQUFPLENBQUMsc0RBQVk7O0FBRTdELHdCQUF3QixtQkFBTyxDQUFDLDBGQUEwQjs7QUFFMUQsdUNBQXVDLHVDQUF1Qzs7QUFFOUUsd0JBQXdCLDJCQUEyQiwyRUFBMkUsa0NBQWtDLHdCQUF3QixPQUFPLGtDQUFrQyxtSUFBbUk7O0FBRXBXLDJDQUEyQyxnQ0FBZ0Msb0NBQW9DLG9EQUFvRCw4REFBOEQsaUVBQWlFLEdBQUcsa0NBQWtDOztBQUV2VSxpQ0FBaUMsZ0JBQWdCLHNCQUFzQixPQUFPLHVEQUF1RCxhQUFhLHVEQUF1RCw0Q0FBNEMsS0FBSyw2Q0FBNkMsNkVBQTZFLE9BQU8saURBQWlELG1GQUFtRixPQUFPOztBQUV0Z0IsNENBQTRDLGtCQUFrQixrQ0FBa0Msb0VBQW9FLEtBQUssT0FBTyxvQkFBb0I7O0FBRXBNLGtEQUFrRCwwQ0FBMEM7O0FBRTVGLDRDQUE0QyxnQkFBZ0Isa0JBQWtCLE9BQU8sMkJBQTJCLHdEQUF3RCxnQ0FBZ0MsdURBQXVEOztBQUUvUCw4REFBOEQsc0VBQXNFLDhEQUE4RDs7QUFFbE0sMkNBQTJDLCtEQUErRCw2RUFBNkUseUVBQXlFLGVBQWUsdURBQXVELEdBQUc7O0FBRXpVLGlDQUFpQyw0RUFBNEUsaUJBQWlCLGFBQWE7O0FBRTNJLGlDQUFpQyw2REFBNkQseUNBQXlDLDhDQUE4QyxpQ0FBaUMsbURBQW1ELDJEQUEyRCxPQUFPLHlDQUF5Qzs7QUFFcFgsa0RBQWtELDBFQUEwRSxlQUFlOztBQUUzSSx3Q0FBd0MsdUJBQXVCLHlGQUF5Rjs7QUFFeEosdUNBQXVDLHdFQUF3RSwwQ0FBMEMsOENBQThDLE1BQU0sdUVBQXVFLElBQUksZUFBZSxZQUFZOztBQUVuVCw4QkFBOEIsZ0dBQWdHLG1EQUFtRDs7QUFFakw7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxzQkFBc0IsY0FBYztBQUNwQzs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQSxTQUFTO0FBQ1Q7O0FBRUE7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLEdBQUc7O0FBRUg7QUFDQSxDQUFDOztBQUVELFlBQVkiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXNsaWNrL2xpYi9kb3RzLmpzP2VmYjMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLkRvdHMgPSB2b2lkIDA7XG5cbnZhciBfcmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbnZhciBfY2xhc3NuYW1lcyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcImNsYXNzbmFtZXNcIikpO1xuXG52YXIgX2lubmVyU2xpZGVyVXRpbHMgPSByZXF1aXJlKFwiLi91dGlscy9pbm5lclNsaWRlclV0aWxzXCIpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiOyBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiB0eXBlb2Ygb2JqOyB9OyB9IGVsc2UgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7IH07IH0gcmV0dXJuIF90eXBlb2Yob2JqKTsgfVxuXG5mdW5jdGlvbiBvd25LZXlzKG9iamVjdCwgZW51bWVyYWJsZU9ubHkpIHsgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhvYmplY3QpOyBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scykgeyB2YXIgc3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMob2JqZWN0KTsgaWYgKGVudW1lcmFibGVPbmx5KSBzeW1ib2xzID0gc3ltYm9scy5maWx0ZXIoZnVuY3Rpb24gKHN5bSkgeyByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmplY3QsIHN5bSkuZW51bWVyYWJsZTsgfSk7IGtleXMucHVzaC5hcHBseShrZXlzLCBzeW1ib2xzKTsgfSByZXR1cm4ga2V5czsgfVxuXG5mdW5jdGlvbiBfb2JqZWN0U3ByZWFkKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldICE9IG51bGwgPyBhcmd1bWVudHNbaV0gOiB7fTsgaWYgKGkgJSAyKSB7IG93bktleXMoT2JqZWN0KHNvdXJjZSksIHRydWUpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgeyBfZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHNvdXJjZVtrZXldKTsgfSk7IH0gZWxzZSBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMpIHsgT2JqZWN0LmRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhzb3VyY2UpKTsgfSBlbHNlIHsgb3duS2V5cyhPYmplY3Qoc291cmNlKSkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzb3VyY2UsIGtleSkpOyB9KTsgfSB9IHJldHVybiB0YXJnZXQ7IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KG9iaiwga2V5LCB2YWx1ZSkgeyBpZiAoa2V5IGluIG9iaikgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHsgdmFsdWU6IHZhbHVlLCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlIH0pOyB9IGVsc2UgeyBvYmpba2V5XSA9IHZhbHVlOyB9IHJldHVybiBvYmo7IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfVxuXG5mdW5jdGlvbiBfY3JlYXRlQ2xhc3MoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgX3NldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKTsgfVxuXG5mdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBfc2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgby5fX3Byb3RvX18gPSBwOyByZXR1cm4gbzsgfTsgcmV0dXJuIF9zZXRQcm90b3R5cGVPZihvLCBwKTsgfVxuXG5mdW5jdGlvbiBfY3JlYXRlU3VwZXIoRGVyaXZlZCkgeyB2YXIgaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCA9IF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKTsgcmV0dXJuIGZ1bmN0aW9uIF9jcmVhdGVTdXBlckludGVybmFsKCkgeyB2YXIgU3VwZXIgPSBfZ2V0UHJvdG90eXBlT2YoRGVyaXZlZCksIHJlc3VsdDsgaWYgKGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QpIHsgdmFyIE5ld1RhcmdldCA9IF9nZXRQcm90b3R5cGVPZih0aGlzKS5jb25zdHJ1Y3RvcjsgcmVzdWx0ID0gUmVmbGVjdC5jb25zdHJ1Y3QoU3VwZXIsIGFyZ3VtZW50cywgTmV3VGFyZ2V0KTsgfSBlbHNlIHsgcmVzdWx0ID0gU3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfSByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgcmVzdWx0KTsgfTsgfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmIChjYWxsICYmIChfdHlwZW9mKGNhbGwpID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpKSB7IHJldHVybiBjYWxsOyB9IHJldHVybiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpOyB9XG5cbmZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikgeyBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gc2VsZjsgfVxuXG5mdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkgeyBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwidW5kZWZpbmVkXCIgfHwgIVJlZmxlY3QuY29uc3RydWN0KSByZXR1cm4gZmFsc2U7IGlmIChSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKSByZXR1cm4gZmFsc2U7IGlmICh0eXBlb2YgUHJveHkgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHRydWU7IHRyeSB7IERhdGUucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoRGF0ZSwgW10sIGZ1bmN0aW9uICgpIHt9KSk7IHJldHVybiB0cnVlOyB9IGNhdGNoIChlKSB7IHJldHVybiBmYWxzZTsgfSB9XG5cbmZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IF9nZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5nZXRQcm90b3R5cGVPZiA6IGZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IHJldHVybiBvLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2Yobyk7IH07IHJldHVybiBfZ2V0UHJvdG90eXBlT2Yobyk7IH1cblxudmFyIGdldERvdENvdW50ID0gZnVuY3Rpb24gZ2V0RG90Q291bnQoc3BlYykge1xuICB2YXIgZG90cztcblxuICBpZiAoc3BlYy5pbmZpbml0ZSkge1xuICAgIGRvdHMgPSBNYXRoLmNlaWwoc3BlYy5zbGlkZUNvdW50IC8gc3BlYy5zbGlkZXNUb1Njcm9sbCk7XG4gIH0gZWxzZSB7XG4gICAgZG90cyA9IE1hdGguY2VpbCgoc3BlYy5zbGlkZUNvdW50IC0gc3BlYy5zbGlkZXNUb1Nob3cpIC8gc3BlYy5zbGlkZXNUb1Njcm9sbCkgKyAxO1xuICB9XG5cbiAgcmV0dXJuIGRvdHM7XG59O1xuXG52YXIgRG90cyA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX1JlYWN0JFB1cmVDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKERvdHMsIF9SZWFjdCRQdXJlQ29tcG9uZW50KTtcblxuICB2YXIgX3N1cGVyID0gX2NyZWF0ZVN1cGVyKERvdHMpO1xuXG4gIGZ1bmN0aW9uIERvdHMoKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIERvdHMpO1xuXG4gICAgcmV0dXJuIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKERvdHMsIFt7XG4gICAga2V5OiBcImNsaWNrSGFuZGxlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjbGlja0hhbmRsZXIob3B0aW9ucywgZSkge1xuICAgICAgLy8gSW4gQXV0b3BsYXkgdGhlIGZvY3VzIHN0YXlzIG9uIGNsaWNrZWQgYnV0dG9uIGV2ZW4gYWZ0ZXIgdHJhbnNpdGlvblxuICAgICAgLy8gdG8gbmV4dCBzbGlkZS4gVGhhdCBvbmx5IGdvZXMgYXdheSBieSBjbGljayBzb21ld2hlcmUgb3V0c2lkZVxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5wcm9wcy5jbGlja0hhbmRsZXIob3B0aW9ucyk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgX3RoaXMkcHJvcHMgPSB0aGlzLnByb3BzLFxuICAgICAgICAgIG9uTW91c2VFbnRlciA9IF90aGlzJHByb3BzLm9uTW91c2VFbnRlcixcbiAgICAgICAgICBvbk1vdXNlT3ZlciA9IF90aGlzJHByb3BzLm9uTW91c2VPdmVyLFxuICAgICAgICAgIG9uTW91c2VMZWF2ZSA9IF90aGlzJHByb3BzLm9uTW91c2VMZWF2ZSxcbiAgICAgICAgICBpbmZpbml0ZSA9IF90aGlzJHByb3BzLmluZmluaXRlLFxuICAgICAgICAgIHNsaWRlc1RvU2Nyb2xsID0gX3RoaXMkcHJvcHMuc2xpZGVzVG9TY3JvbGwsXG4gICAgICAgICAgc2xpZGVzVG9TaG93ID0gX3RoaXMkcHJvcHMuc2xpZGVzVG9TaG93LFxuICAgICAgICAgIHNsaWRlQ291bnQgPSBfdGhpcyRwcm9wcy5zbGlkZUNvdW50LFxuICAgICAgICAgIGN1cnJlbnRTbGlkZSA9IF90aGlzJHByb3BzLmN1cnJlbnRTbGlkZTtcbiAgICAgIHZhciBkb3RDb3VudCA9IGdldERvdENvdW50KHtcbiAgICAgICAgc2xpZGVDb3VudDogc2xpZGVDb3VudCxcbiAgICAgICAgc2xpZGVzVG9TY3JvbGw6IHNsaWRlc1RvU2Nyb2xsLFxuICAgICAgICBzbGlkZXNUb1Nob3c6IHNsaWRlc1RvU2hvdyxcbiAgICAgICAgaW5maW5pdGU6IGluZmluaXRlXG4gICAgICB9KTtcbiAgICAgIHZhciBtb3VzZUV2ZW50cyA9IHtcbiAgICAgICAgb25Nb3VzZUVudGVyOiBvbk1vdXNlRW50ZXIsXG4gICAgICAgIG9uTW91c2VPdmVyOiBvbk1vdXNlT3ZlcixcbiAgICAgICAgb25Nb3VzZUxlYXZlOiBvbk1vdXNlTGVhdmVcbiAgICAgIH07XG4gICAgICB2YXIgZG90cyA9IFtdO1xuXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRvdENvdW50OyBpKyspIHtcbiAgICAgICAgdmFyIF9yaWdodEJvdW5kID0gKGkgKyAxKSAqIHNsaWRlc1RvU2Nyb2xsIC0gMTtcblxuICAgICAgICB2YXIgcmlnaHRCb3VuZCA9IGluZmluaXRlID8gX3JpZ2h0Qm91bmQgOiAoMCwgX2lubmVyU2xpZGVyVXRpbHMuY2xhbXApKF9yaWdodEJvdW5kLCAwLCBzbGlkZUNvdW50IC0gMSk7XG5cbiAgICAgICAgdmFyIF9sZWZ0Qm91bmQgPSByaWdodEJvdW5kIC0gKHNsaWRlc1RvU2Nyb2xsIC0gMSk7XG5cbiAgICAgICAgdmFyIGxlZnRCb3VuZCA9IGluZmluaXRlID8gX2xlZnRCb3VuZCA6ICgwLCBfaW5uZXJTbGlkZXJVdGlscy5jbGFtcCkoX2xlZnRCb3VuZCwgMCwgc2xpZGVDb3VudCAtIDEpO1xuICAgICAgICB2YXIgY2xhc3NOYW1lID0gKDAsIF9jbGFzc25hbWVzW1wiZGVmYXVsdFwiXSkoe1xuICAgICAgICAgIFwic2xpY2stYWN0aXZlXCI6IGluZmluaXRlID8gY3VycmVudFNsaWRlID49IGxlZnRCb3VuZCAmJiBjdXJyZW50U2xpZGUgPD0gcmlnaHRCb3VuZCA6IGN1cnJlbnRTbGlkZSA9PT0gbGVmdEJvdW5kXG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgZG90T3B0aW9ucyA9IHtcbiAgICAgICAgICBtZXNzYWdlOiBcImRvdHNcIixcbiAgICAgICAgICBpbmRleDogaSxcbiAgICAgICAgICBzbGlkZXNUb1Njcm9sbDogc2xpZGVzVG9TY3JvbGwsXG4gICAgICAgICAgY3VycmVudFNsaWRlOiBjdXJyZW50U2xpZGVcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIG9uQ2xpY2sgPSB0aGlzLmNsaWNrSGFuZGxlci5iaW5kKHRoaXMsIGRvdE9wdGlvbnMpO1xuICAgICAgICBkb3RzID0gZG90cy5jb25jYXQoIC8qI19fUFVSRV9fKi9fcmVhY3RbXCJkZWZhdWx0XCJdLmNyZWF0ZUVsZW1lbnQoXCJsaVwiLCB7XG4gICAgICAgICAga2V5OiBpLFxuICAgICAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lXG4gICAgICAgIH0sIC8qI19fUFVSRV9fKi9fcmVhY3RbXCJkZWZhdWx0XCJdLmNsb25lRWxlbWVudCh0aGlzLnByb3BzLmN1c3RvbVBhZ2luZyhpKSwge1xuICAgICAgICAgIG9uQ2xpY2s6IG9uQ2xpY2tcbiAgICAgICAgfSkpKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9fcmVhY3RbXCJkZWZhdWx0XCJdLmNsb25lRWxlbWVudCh0aGlzLnByb3BzLmFwcGVuZERvdHMoZG90cyksIF9vYmplY3RTcHJlYWQoe1xuICAgICAgICBjbGFzc05hbWU6IHRoaXMucHJvcHMuZG90c0NsYXNzXG4gICAgICB9LCBtb3VzZUV2ZW50cykpO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBEb3RzO1xufShfcmVhY3RbXCJkZWZhdWx0XCJdLlB1cmVDb21wb25lbnQpO1xuXG5leHBvcnRzLkRvdHMgPSBEb3RzOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-slick/lib/dots.js\n"); + +/***/ }), + +/***/ "./node_modules/react-slick/lib/index.js": +/*!***********************************************!*\ + !*** ./node_modules/react-slick/lib/index.js ***! + \***********************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _slider = _interopRequireDefault(__webpack_require__(/*! ./slider */ \"./node_modules/react-slick/lib/slider.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _default = _slider[\"default\"];\nexports[\"default\"] = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2xpY2svbGliL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGtCQUFrQjs7QUFFbEIscUNBQXFDLG1CQUFPLENBQUMsMERBQVU7O0FBRXZELHVDQUF1Qyx1Q0FBdUM7O0FBRTlFO0FBQ0Esa0JBQWtCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zbGljay9saWIvaW5kZXguanM/YTA3NCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xuXG52YXIgX3NsaWRlciA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vc2xpZGVyXCIpKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbnZhciBfZGVmYXVsdCA9IF9zbGlkZXJbXCJkZWZhdWx0XCJdO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-slick/lib/index.js\n"); + +/***/ }), + +/***/ "./node_modules/react-slick/lib/initial-state.js": +/*!*******************************************************!*\ + !*** ./node_modules/react-slick/lib/initial-state.js ***! + \*******************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\nvar initialState = {\n animating: false,\n autoplaying: null,\n currentDirection: 0,\n currentLeft: null,\n currentSlide: 0,\n direction: 1,\n dragging: false,\n edgeDragged: false,\n initialized: false,\n lazyLoadedList: [],\n listHeight: null,\n listWidth: null,\n scrolling: false,\n slideCount: null,\n slideHeight: null,\n slideWidth: null,\n swipeLeft: null,\n swiped: false,\n // used by swipeEvent. differentites between touch and swipe.\n swiping: false,\n touchObject: {\n startX: 0,\n startY: 0,\n curX: 0,\n curY: 0\n },\n trackStyle: {},\n trackWidth: 0,\n targetSlide: 0\n};\nvar _default = initialState;\nexports[\"default\"] = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2xpY2svbGliL2luaXRpYWwtc3RhdGUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Ysa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0gsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zbGljay9saWIvaW5pdGlhbC1zdGF0ZS5qcz82MzU2Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG52YXIgaW5pdGlhbFN0YXRlID0ge1xuICBhbmltYXRpbmc6IGZhbHNlLFxuICBhdXRvcGxheWluZzogbnVsbCxcbiAgY3VycmVudERpcmVjdGlvbjogMCxcbiAgY3VycmVudExlZnQ6IG51bGwsXG4gIGN1cnJlbnRTbGlkZTogMCxcbiAgZGlyZWN0aW9uOiAxLFxuICBkcmFnZ2luZzogZmFsc2UsXG4gIGVkZ2VEcmFnZ2VkOiBmYWxzZSxcbiAgaW5pdGlhbGl6ZWQ6IGZhbHNlLFxuICBsYXp5TG9hZGVkTGlzdDogW10sXG4gIGxpc3RIZWlnaHQ6IG51bGwsXG4gIGxpc3RXaWR0aDogbnVsbCxcbiAgc2Nyb2xsaW5nOiBmYWxzZSxcbiAgc2xpZGVDb3VudDogbnVsbCxcbiAgc2xpZGVIZWlnaHQ6IG51bGwsXG4gIHNsaWRlV2lkdGg6IG51bGwsXG4gIHN3aXBlTGVmdDogbnVsbCxcbiAgc3dpcGVkOiBmYWxzZSxcbiAgLy8gdXNlZCBieSBzd2lwZUV2ZW50LiBkaWZmZXJlbnRpdGVzIGJldHdlZW4gdG91Y2ggYW5kIHN3aXBlLlxuICBzd2lwaW5nOiBmYWxzZSxcbiAgdG91Y2hPYmplY3Q6IHtcbiAgICBzdGFydFg6IDAsXG4gICAgc3RhcnRZOiAwLFxuICAgIGN1clg6IDAsXG4gICAgY3VyWTogMFxuICB9LFxuICB0cmFja1N0eWxlOiB7fSxcbiAgdHJhY2tXaWR0aDogMCxcbiAgdGFyZ2V0U2xpZGU6IDBcbn07XG52YXIgX2RlZmF1bHQgPSBpbml0aWFsU3RhdGU7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IF9kZWZhdWx0OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-slick/lib/initial-state.js\n"); + +/***/ }), + +/***/ "./node_modules/react-slick/lib/inner-slider.js": +/*!******************************************************!*\ + !*** ./node_modules/react-slick/lib/inner-slider.js ***! + \******************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.InnerSlider = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _initialState = _interopRequireDefault(__webpack_require__(/*! ./initial-state */ \"./node_modules/react-slick/lib/initial-state.js\"));\n\nvar _lodash = _interopRequireDefault(__webpack_require__(/*! lodash.debounce */ \"./node_modules/lodash.debounce/index.js\"));\n\nvar _classnames = _interopRequireDefault(__webpack_require__(/*! classnames */ \"./node_modules/classnames/index.js\"));\n\nvar _innerSliderUtils = __webpack_require__(/*! ./utils/innerSliderUtils */ \"./node_modules/react-slick/lib/utils/innerSliderUtils.js\");\n\nvar _track = __webpack_require__(/*! ./track */ \"./node_modules/react-slick/lib/track.js\");\n\nvar _dots = __webpack_require__(/*! ./dots */ \"./node_modules/react-slick/lib/dots.js\");\n\nvar _arrows = __webpack_require__(/*! ./arrows */ \"./node_modules/react-slick/lib/arrows.js\");\n\nvar _resizeObserverPolyfill = _interopRequireDefault(__webpack_require__(/*! resize-observer-polyfill */ \"./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar InnerSlider = /*#__PURE__*/function (_React$Component) {\n _inherits(InnerSlider, _React$Component);\n\n var _super = _createSuper(InnerSlider);\n\n function InnerSlider(props) {\n var _this;\n\n _classCallCheck(this, InnerSlider);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"listRefHandler\", function (ref) {\n return _this.list = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"trackRefHandler\", function (ref) {\n return _this.track = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"adaptHeight\", function () {\n if (_this.props.adaptiveHeight && _this.list) {\n var elem = _this.list.querySelector(\"[data-index=\\\"\".concat(_this.state.currentSlide, \"\\\"]\"));\n\n _this.list.style.height = (0, _innerSliderUtils.getHeight)(elem) + \"px\";\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentDidMount\", function () {\n _this.props.onInit && _this.props.onInit();\n\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n }\n\n var spec = _objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props);\n\n _this.updateState(spec, true, function () {\n _this.adaptHeight();\n\n _this.props.autoplay && _this.autoPlay(\"update\");\n });\n\n if (_this.props.lazyLoad === \"progressive\") {\n _this.lazyLoadTimer = setInterval(_this.progressiveLazyLoad, 1000);\n }\n\n _this.ro = new _resizeObserverPolyfill[\"default\"](function () {\n if (_this.state.animating) {\n _this.onWindowResized(false); // don't set trackStyle hence don't break animation\n\n\n _this.callbackTimers.push(setTimeout(function () {\n return _this.onWindowResized();\n }, _this.props.speed));\n } else {\n _this.onWindowResized();\n }\n });\n\n _this.ro.observe(_this.list);\n\n document.querySelectorAll && Array.prototype.forEach.call(document.querySelectorAll(\".slick-slide\"), function (slide) {\n slide.onfocus = _this.props.pauseOnFocus ? _this.onSlideFocus : null;\n slide.onblur = _this.props.pauseOnFocus ? _this.onSlideBlur : null;\n });\n\n if (window.addEventListener) {\n window.addEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.attachEvent(\"onresize\", _this.onWindowResized);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentWillUnmount\", function () {\n if (_this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n }\n\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n }\n\n if (_this.callbackTimers.length) {\n _this.callbackTimers.forEach(function (timer) {\n return clearTimeout(timer);\n });\n\n _this.callbackTimers = [];\n }\n\n if (window.addEventListener) {\n window.removeEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.detachEvent(\"onresize\", _this.onWindowResized);\n }\n\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n\n _this.ro.disconnect();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentDidUpdate\", function (prevProps) {\n _this.checkImagesLoad();\n\n _this.props.onReInit && _this.props.onReInit();\n\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n } // if (this.props.onLazyLoad) {\n // this.props.onLazyLoad([leftMostSlide])\n // }\n\n\n _this.adaptHeight();\n\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n\n var setTrackStyle = _this.didPropsChange(prevProps);\n\n setTrackStyle && _this.updateState(spec, setTrackStyle, function () {\n if (_this.state.currentSlide >= _react[\"default\"].Children.count(_this.props.children)) {\n _this.changeSlide({\n message: \"index\",\n index: _react[\"default\"].Children.count(_this.props.children) - _this.props.slidesToShow,\n currentSlide: _this.state.currentSlide\n });\n }\n\n if (_this.props.autoplay) {\n _this.autoPlay(\"update\");\n } else {\n _this.pause(\"paused\");\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onWindowResized\", function (setTrackStyle) {\n if (_this.debouncedResize) _this.debouncedResize.cancel();\n _this.debouncedResize = (0, _lodash[\"default\"])(function () {\n return _this.resizeWindow(setTrackStyle);\n }, 50);\n\n _this.debouncedResize();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"resizeWindow\", function () {\n var setTrackStyle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var isTrackMounted = Boolean(_this.track && _this.track.node); // prevent warning: setting state on unmounted component (server side rendering)\n\n if (!isTrackMounted) return;\n\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n\n _this.updateState(spec, setTrackStyle, function () {\n if (_this.props.autoplay) _this.autoPlay(\"update\");else _this.pause(\"paused\");\n }); // animating state should be cleared while resizing, otherwise autoplay stops working\n\n\n _this.setState({\n animating: false\n });\n\n clearTimeout(_this.animationEndCallback);\n delete _this.animationEndCallback;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updateState\", function (spec, setTrackStyle, callback) {\n var updatedState = (0, _innerSliderUtils.initializedState)(spec);\n spec = _objectSpread(_objectSpread(_objectSpread({}, spec), updatedState), {}, {\n slideIndex: updatedState.currentSlide\n });\n var targetLeft = (0, _innerSliderUtils.getTrackLeft)(spec);\n spec = _objectSpread(_objectSpread({}, spec), {}, {\n left: targetLeft\n });\n var trackStyle = (0, _innerSliderUtils.getTrackCSS)(spec);\n\n if (setTrackStyle || _react[\"default\"].Children.count(_this.props.children) !== _react[\"default\"].Children.count(spec.children)) {\n updatedState[\"trackStyle\"] = trackStyle;\n }\n\n _this.setState(updatedState, callback);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ssrInit\", function () {\n if (_this.props.variableWidth) {\n var _trackWidth = 0,\n _trackLeft = 0;\n var childrenWidths = [];\n var preClones = (0, _innerSliderUtils.getPreClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n var postClones = (0, _innerSliderUtils.getPostClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n\n _this.props.children.forEach(function (child) {\n childrenWidths.push(child.props.style.width);\n _trackWidth += child.props.style.width;\n });\n\n for (var i = 0; i < preClones; i++) {\n _trackLeft += childrenWidths[childrenWidths.length - 1 - i];\n _trackWidth += childrenWidths[childrenWidths.length - 1 - i];\n }\n\n for (var _i = 0; _i < postClones; _i++) {\n _trackWidth += childrenWidths[_i];\n }\n\n for (var _i2 = 0; _i2 < _this.state.currentSlide; _i2++) {\n _trackLeft += childrenWidths[_i2];\n }\n\n var _trackStyle = {\n width: _trackWidth + \"px\",\n left: -_trackLeft + \"px\"\n };\n\n if (_this.props.centerMode) {\n var currentWidth = \"\".concat(childrenWidths[_this.state.currentSlide], \"px\");\n _trackStyle.left = \"calc(\".concat(_trackStyle.left, \" + (100% - \").concat(currentWidth, \") / 2 ) \");\n }\n\n return {\n trackStyle: _trackStyle\n };\n }\n\n var childrenCount = _react[\"default\"].Children.count(_this.props.children);\n\n var spec = _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: childrenCount\n });\n\n var slideCount = (0, _innerSliderUtils.getPreClones)(spec) + (0, _innerSliderUtils.getPostClones)(spec) + childrenCount;\n var trackWidth = 100 / _this.props.slidesToShow * slideCount;\n var slideWidth = 100 / slideCount;\n var trackLeft = -slideWidth * ((0, _innerSliderUtils.getPreClones)(spec) + _this.state.currentSlide) * trackWidth / 100;\n\n if (_this.props.centerMode) {\n trackLeft += (100 - slideWidth * trackWidth / 100) / 2;\n }\n\n var trackStyle = {\n width: trackWidth + \"%\",\n left: trackLeft + \"%\"\n };\n return {\n slideWidth: slideWidth + \"%\",\n trackStyle: trackStyle\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), \"checkImagesLoad\", function () {\n var images = _this.list && _this.list.querySelectorAll && _this.list.querySelectorAll(\".slick-slide img\") || [];\n var imagesCount = images.length,\n loadedCount = 0;\n Array.prototype.forEach.call(images, function (image) {\n var handler = function handler() {\n return ++loadedCount && loadedCount >= imagesCount && _this.onWindowResized();\n };\n\n if (!image.onclick) {\n image.onclick = function () {\n return image.parentNode.focus();\n };\n } else {\n var prevClickHandler = image.onclick;\n\n image.onclick = function () {\n prevClickHandler();\n image.parentNode.focus();\n };\n }\n\n if (!image.onload) {\n if (_this.props.lazyLoad) {\n image.onload = function () {\n _this.adaptHeight();\n\n _this.callbackTimers.push(setTimeout(_this.onWindowResized, _this.props.speed));\n };\n } else {\n image.onload = handler;\n\n image.onerror = function () {\n handler();\n _this.props.onLazyLoadError && _this.props.onLazyLoadError();\n };\n }\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"progressiveLazyLoad\", function () {\n var slidesToLoad = [];\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n for (var index = _this.state.currentSlide; index < _this.state.slideCount + (0, _innerSliderUtils.getPostClones)(spec); index++) {\n if (_this.state.lazyLoadedList.indexOf(index) < 0) {\n slidesToLoad.push(index);\n break;\n }\n }\n\n for (var _index = _this.state.currentSlide - 1; _index >= -(0, _innerSliderUtils.getPreClones)(spec); _index--) {\n if (_this.state.lazyLoadedList.indexOf(_index) < 0) {\n slidesToLoad.push(_index);\n break;\n }\n }\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (state) {\n return {\n lazyLoadedList: state.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n } else {\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n delete _this.lazyLoadTimer;\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slideHandler\", function (index) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var _this$props = _this.props,\n asNavFor = _this$props.asNavFor,\n beforeChange = _this$props.beforeChange,\n onLazyLoad = _this$props.onLazyLoad,\n speed = _this$props.speed,\n afterChange = _this$props.afterChange; // capture currentslide before state is updated\n\n var currentSlide = _this.state.currentSlide;\n\n var _slideHandler = (0, _innerSliderUtils.slideHandler)(_objectSpread(_objectSpread(_objectSpread({\n index: index\n }, _this.props), _this.state), {}, {\n trackRef: _this.track,\n useCSS: _this.props.useCSS && !dontAnimate\n })),\n state = _slideHandler.state,\n nextState = _slideHandler.nextState;\n\n if (!state) return;\n beforeChange && beforeChange(currentSlide, state.currentSlide);\n var slidesToLoad = state.lazyLoadedList.filter(function (value) {\n return _this.state.lazyLoadedList.indexOf(value) < 0;\n });\n onLazyLoad && slidesToLoad.length > 0 && onLazyLoad(slidesToLoad);\n\n if (!_this.props.waitForAnimate && _this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n afterChange && afterChange(currentSlide);\n delete _this.animationEndCallback;\n }\n\n _this.setState(state, function () {\n // asNavForIndex check is to avoid recursive calls of slideHandler in waitForAnimate=false mode\n if (asNavFor && _this.asNavForIndex !== index) {\n _this.asNavForIndex = index;\n asNavFor.innerSlider.slideHandler(index);\n }\n\n if (!nextState) return;\n _this.animationEndCallback = setTimeout(function () {\n var animating = nextState.animating,\n firstBatch = _objectWithoutProperties(nextState, [\"animating\"]);\n\n _this.setState(firstBatch, function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.setState({\n animating: animating\n });\n }, 10));\n\n afterChange && afterChange(state.currentSlide);\n delete _this.animationEndCallback;\n });\n }, speed);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"changeSlide\", function (options) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n var targetSlide = (0, _innerSliderUtils.changeSlide)(spec, options);\n if (targetSlide !== 0 && !targetSlide) return;\n\n if (dontAnimate === true) {\n _this.slideHandler(targetSlide, dontAnimate);\n } else {\n _this.slideHandler(targetSlide);\n }\n\n _this.props.autoplay && _this.autoPlay(\"update\");\n\n if (_this.props.focusOnSelect) {\n var nodes = _this.list.querySelectorAll(\".slick-current\");\n\n nodes[0] && nodes[0].focus();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"clickHandler\", function (e) {\n if (_this.clickable === false) {\n e.stopPropagation();\n e.preventDefault();\n }\n\n _this.clickable = true;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"keyHandler\", function (e) {\n var dir = (0, _innerSliderUtils.keyHandler)(e, _this.props.accessibility, _this.props.rtl);\n dir !== \"\" && _this.changeSlide({\n message: dir\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"selectHandler\", function (options) {\n _this.changeSlide(options);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"disableBodyScroll\", function () {\n var preventDefault = function preventDefault(e) {\n e = e || window.event;\n if (e.preventDefault) e.preventDefault();\n e.returnValue = false;\n };\n\n window.ontouchmove = preventDefault;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"enableBodyScroll\", function () {\n window.ontouchmove = null;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeStart\", function (e) {\n if (_this.props.verticalSwiping) {\n _this.disableBodyScroll();\n }\n\n var state = (0, _innerSliderUtils.swipeStart)(e, _this.props.swipe, _this.props.draggable);\n state !== \"\" && _this.setState(state);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeMove\", function (e) {\n var state = (0, _innerSliderUtils.swipeMove)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n\n if (state[\"swiping\"]) {\n _this.clickable = false;\n }\n\n _this.setState(state);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeEnd\", function (e) {\n var state = (0, _innerSliderUtils.swipeEnd)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n var triggerSlideHandler = state[\"triggerSlideHandler\"];\n delete state[\"triggerSlideHandler\"];\n\n _this.setState(state);\n\n if (triggerSlideHandler === undefined) return;\n\n _this.slideHandler(triggerSlideHandler);\n\n if (_this.props.verticalSwiping) {\n _this.enableBodyScroll();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"touchEnd\", function (e) {\n _this.swipeEnd(e);\n\n _this.clickable = true;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n // this and fellow methods are wrapped in setTimeout\n // to make sure initialize setState has happened before\n // any of such methods are called\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"previous\"\n });\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"next\"\n });\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n slide = Number(slide);\n if (isNaN(slide)) return \"\";\n\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"index\",\n index: slide,\n currentSlide: _this.state.currentSlide\n }, dontAnimate);\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"play\", function () {\n var nextIndex;\n\n if (_this.props.rtl) {\n nextIndex = _this.state.currentSlide - _this.props.slidesToScroll;\n } else {\n if ((0, _innerSliderUtils.canGoNext)(_objectSpread(_objectSpread({}, _this.props), _this.state))) {\n nextIndex = _this.state.currentSlide + _this.props.slidesToScroll;\n } else {\n return false;\n }\n }\n\n _this.slideHandler(nextIndex);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"autoPlay\", function (playType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n\n var autoplaying = _this.state.autoplaying;\n\n if (playType === \"update\") {\n if (autoplaying === \"hovered\" || autoplaying === \"focused\" || autoplaying === \"paused\") {\n return;\n }\n } else if (playType === \"leave\") {\n if (autoplaying === \"paused\" || autoplaying === \"focused\") {\n return;\n }\n } else if (playType === \"blur\") {\n if (autoplaying === \"paused\" || autoplaying === \"hovered\") {\n return;\n }\n }\n\n _this.autoplayTimer = setInterval(_this.play, _this.props.autoplaySpeed + 50);\n\n _this.setState({\n autoplaying: \"playing\"\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"pause\", function (pauseType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n _this.autoplayTimer = null;\n }\n\n var autoplaying = _this.state.autoplaying;\n\n if (pauseType === \"paused\") {\n _this.setState({\n autoplaying: \"paused\"\n });\n } else if (pauseType === \"focused\") {\n if (autoplaying === \"hovered\" || autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"focused\"\n });\n }\n } else {\n // pauseType is 'hovered'\n if (autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"hovered\"\n });\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDotsOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDotsLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTrackOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTrackLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSlideFocus\", function () {\n return _this.props.autoplay && _this.pause(\"focused\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSlideBlur\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"focused\" && _this.autoPlay(\"blur\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"render\", function () {\n var className = (0, _classnames[\"default\"])(\"slick-slider\", _this.props.className, {\n \"slick-vertical\": _this.props.vertical,\n \"slick-initialized\": true\n });\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n var trackProps = (0, _innerSliderUtils.extractObject)(spec, [\"fade\", \"cssEase\", \"speed\", \"infinite\", \"centerMode\", \"focusOnSelect\", \"currentSlide\", \"lazyLoad\", \"lazyLoadedList\", \"rtl\", \"slideWidth\", \"slideHeight\", \"listHeight\", \"vertical\", \"slidesToShow\", \"slidesToScroll\", \"slideCount\", \"trackStyle\", \"variableWidth\", \"unslick\", \"centerPadding\", \"targetSlide\", \"useCSS\"]);\n var pauseOnHover = _this.props.pauseOnHover;\n trackProps = _objectSpread(_objectSpread({}, trackProps), {}, {\n onMouseEnter: pauseOnHover ? _this.onTrackOver : null,\n onMouseLeave: pauseOnHover ? _this.onTrackLeave : null,\n onMouseOver: pauseOnHover ? _this.onTrackOver : null,\n focusOnSelect: _this.props.focusOnSelect && _this.clickable ? _this.selectHandler : null\n });\n var dots;\n\n if (_this.props.dots === true && _this.state.slideCount >= _this.props.slidesToShow) {\n var dotProps = (0, _innerSliderUtils.extractObject)(spec, [\"dotsClass\", \"slideCount\", \"slidesToShow\", \"currentSlide\", \"slidesToScroll\", \"clickHandler\", \"children\", \"customPaging\", \"infinite\", \"appendDots\"]);\n var pauseOnDotsHover = _this.props.pauseOnDotsHover;\n dotProps = _objectSpread(_objectSpread({}, dotProps), {}, {\n clickHandler: _this.changeSlide,\n onMouseEnter: pauseOnDotsHover ? _this.onDotsLeave : null,\n onMouseOver: pauseOnDotsHover ? _this.onDotsOver : null,\n onMouseLeave: pauseOnDotsHover ? _this.onDotsLeave : null\n });\n dots = /*#__PURE__*/_react[\"default\"].createElement(_dots.Dots, dotProps);\n }\n\n var prevArrow, nextArrow;\n var arrowProps = (0, _innerSliderUtils.extractObject)(spec, [\"infinite\", \"centerMode\", \"currentSlide\", \"slideCount\", \"slidesToShow\", \"prevArrow\", \"nextArrow\"]);\n arrowProps.clickHandler = _this.changeSlide;\n\n if (_this.props.arrows) {\n prevArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.PrevArrow, arrowProps);\n nextArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.NextArrow, arrowProps);\n }\n\n var verticalHeightStyle = null;\n\n if (_this.props.vertical) {\n verticalHeightStyle = {\n height: _this.state.listHeight\n };\n }\n\n var centerPaddingStyle = null;\n\n if (_this.props.vertical === false) {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: \"0px \" + _this.props.centerPadding\n };\n }\n } else {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: _this.props.centerPadding + \" 0px\"\n };\n }\n }\n\n var listStyle = _objectSpread(_objectSpread({}, verticalHeightStyle), centerPaddingStyle);\n\n var touchMove = _this.props.touchMove;\n var listProps = {\n className: \"slick-list\",\n style: listStyle,\n onClick: _this.clickHandler,\n onMouseDown: touchMove ? _this.swipeStart : null,\n onMouseMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onMouseUp: touchMove ? _this.swipeEnd : null,\n onMouseLeave: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onTouchStart: touchMove ? _this.swipeStart : null,\n onTouchMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onTouchEnd: touchMove ? _this.touchEnd : null,\n onTouchCancel: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onKeyDown: _this.props.accessibility ? _this.keyHandler : null\n };\n var innerSliderProps = {\n className: className,\n dir: \"ltr\",\n style: _this.props.style\n };\n\n if (_this.props.unslick) {\n listProps = {\n className: \"slick-list\"\n };\n innerSliderProps = {\n className: className\n };\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", innerSliderProps, !_this.props.unslick ? prevArrow : \"\", /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: _this.listRefHandler\n }, listProps), /*#__PURE__*/_react[\"default\"].createElement(_track.Track, _extends({\n ref: _this.trackRefHandler\n }, trackProps), _this.props.children)), !_this.props.unslick ? nextArrow : \"\", !_this.props.unslick ? dots : \"\");\n });\n\n _this.list = null;\n _this.track = null;\n _this.state = _objectSpread(_objectSpread({}, _initialState[\"default\"]), {}, {\n currentSlide: _this.props.initialSlide,\n slideCount: _react[\"default\"].Children.count(_this.props.children)\n });\n _this.callbackTimers = [];\n _this.clickable = true;\n _this.debouncedResize = null;\n\n var ssrState = _this.ssrInit();\n\n _this.state = _objectSpread(_objectSpread({}, _this.state), ssrState);\n return _this;\n }\n\n _createClass(InnerSlider, [{\n key: \"didPropsChange\",\n value: function didPropsChange(prevProps) {\n var setTrackStyle = false;\n\n for (var _i3 = 0, _Object$keys = Object.keys(this.props); _i3 < _Object$keys.length; _i3++) {\n var key = _Object$keys[_i3];\n\n if (!prevProps.hasOwnProperty(key)) {\n setTrackStyle = true;\n break;\n }\n\n if (_typeof(prevProps[key]) === \"object\" || typeof prevProps[key] === \"function\") {\n continue;\n }\n\n if (prevProps[key] !== this.props[key]) {\n setTrackStyle = true;\n break;\n }\n }\n\n return setTrackStyle || _react[\"default\"].Children.count(this.props.children) !== _react[\"default\"].Children.count(prevProps.children);\n }\n }]);\n\n return InnerSlider;\n}(_react[\"default\"].Component);\n\nexports.InnerSlider = InnerSlider;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2xpY2svbGliL2lubmVyLXNsaWRlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixtQkFBbUI7O0FBRW5CLG9DQUFvQyxtQkFBTyxDQUFDLDRDQUFPOztBQUVuRCwyQ0FBMkMsbUJBQU8sQ0FBQyx3RUFBaUI7O0FBRXBFLHFDQUFxQyxtQkFBTyxDQUFDLGdFQUFpQjs7QUFFOUQseUNBQXlDLG1CQUFPLENBQUMsc0RBQVk7O0FBRTdELHdCQUF3QixtQkFBTyxDQUFDLDBGQUEwQjs7QUFFMUQsYUFBYSxtQkFBTyxDQUFDLHdEQUFTOztBQUU5QixZQUFZLG1CQUFPLENBQUMsc0RBQVE7O0FBRTVCLGNBQWMsbUJBQU8sQ0FBQywwREFBVTs7QUFFaEMscURBQXFELG1CQUFPLENBQUMsbUdBQTBCOztBQUV2Rix1Q0FBdUMsdUNBQXVDOztBQUU5RSx3QkFBd0IsMkJBQTJCLDJFQUEyRSxrQ0FBa0Msd0JBQXdCLE9BQU8sa0NBQWtDLG1JQUFtSTs7QUFFcFcsc0JBQXNCLGdEQUFnRCxnQkFBZ0Isc0JBQXNCLE9BQU8sMkJBQTJCLDBCQUEwQix5REFBeUQsaUNBQWlDLGtCQUFrQjs7QUFFcFIsc0RBQXNELCtCQUErQiw4REFBOEQsWUFBWSxvQ0FBb0MsNkRBQTZELFlBQVksNkJBQTZCLE9BQU8sMkJBQTJCLDBDQUEwQyx3RUFBd0UsK0JBQStCOztBQUU1ZCwyREFBMkQsK0JBQStCLGlCQUFpQixzQ0FBc0MsWUFBWSxZQUFZLHVCQUF1QixPQUFPLHFCQUFxQiwwQ0FBMEMsNkJBQTZCOztBQUVuUywyQ0FBMkMsZ0NBQWdDLG9DQUFvQyxvREFBb0QsOERBQThELGlFQUFpRSxHQUFHLGtDQUFrQzs7QUFFdlUsaUNBQWlDLGdCQUFnQixzQkFBc0IsT0FBTyx1REFBdUQsYUFBYSx1REFBdUQsNENBQTRDLEtBQUssNkNBQTZDLDZFQUE2RSxPQUFPLGlEQUFpRCxtRkFBbUYsT0FB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O0FBQ1AsS0FBSzs7QUFFTDtBQUNBO0FBQ0EsZ0RBQWdELCtCQUErQjtBQUMvRTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQSxnREFBZ0Q7QUFDaEQ7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxnRUFBZ0UsMkJBQTJCO0FBQzNGOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0EsQ0FBQzs7QUFFRCxtQkFBbUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXNsaWNrL2xpYi9pbm5lci1zbGlkZXIuanM/ZThhZCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuSW5uZXJTbGlkZXIgPSB2b2lkIDA7XG5cbnZhciBfcmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbnZhciBfaW5pdGlhbFN0YXRlID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9pbml0aWFsLXN0YXRlXCIpKTtcblxudmFyIF9sb2Rhc2ggPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJsb2Rhc2guZGVib3VuY2VcIikpO1xuXG52YXIgX2NsYXNzbmFtZXMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJjbGFzc25hbWVzXCIpKTtcblxudmFyIF9pbm5lclNsaWRlclV0aWxzID0gcmVxdWlyZShcIi4vdXRpbHMvaW5uZXJTbGlkZXJVdGlsc1wiKTtcblxudmFyIF90cmFjayA9IHJlcXVpcmUoXCIuL3RyYWNrXCIpO1xuXG52YXIgX2RvdHMgPSByZXF1aXJlKFwiLi9kb3RzXCIpO1xuXG52YXIgX2Fycm93cyA9IHJlcXVpcmUoXCIuL2Fycm93c1wiKTtcblxudmFyIF9yZXNpemVPYnNlcnZlclBvbHlmaWxsID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVzaXplLW9ic2VydmVyLXBvbHlmaWxsXCIpKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjsgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiKSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfTsgfSBlbHNlIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9OyB9IHJldHVybiBfdHlwZW9mKG9iaik7IH1cblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cblxuZnVuY3Rpb24gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKHNvdXJjZSwgZXhjbHVkZWQpIHsgaWYgKHNvdXJjZSA9PSBudWxsKSByZXR1cm4ge307IHZhciB0YXJnZXQgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShzb3VyY2UsIGV4Y2x1ZGVkKTsgdmFyIGtleSwgaTsgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHsgdmFyIHNvdXJjZVN5bWJvbEtleXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHNvdXJjZSk7IGZvciAoaSA9IDA7IGkgPCBzb3VyY2VTeW1ib2xLZXlzLmxlbmd0aDsgaSsrKSB7IGtleSA9IHNvdXJjZVN5bWJvbEtleXNbaV07IGlmIChleGNsdWRlZC5pbmRleE9mKGtleSkgPj0gMCkgY29udGludWU7IGlmICghT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHNvdXJjZSwga2V5KSkgY29udGludWU7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSByZXR1cm4gdGFyZ2V0OyB9XG5cbmZ1bmN0aW9uIF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKHNvdXJjZSwgZXhjbHVkZWQpIHsgaWYgKHNvdXJjZSA9PSBudWxsKSByZXR1cm4ge307IHZhciB0YXJnZXQgPSB7fTsgdmFyIHNvdXJjZUtleXMgPSBPYmplY3Qua2V5cyhzb3VyY2UpOyB2YXIga2V5LCBpOyBmb3IgKGkgPSAwOyBpIDwgc291cmNlS2V5cy5sZW5ndGg7IGkrKykgeyBrZXkgPSBzb3VyY2VLZXlzW2ldOyBpZiAoZXhjbHVkZWQuaW5kZXhPZihrZXkpID49IDApIGNvbnRpbnVlOyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IHJldHVybiB0YXJnZXQ7IH1cblxuZnVuY3Rpb24gb3duS2V5cyhvYmplY3QsIGVudW1lcmFibGVPbmx5KSB7IHZhciBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KTsgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHsgdmFyIHN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG9iamVjdCk7IGlmIChlbnVtZXJhYmxlT25seSkgc3ltYm9scyA9IHN5bWJvbHMuZmlsdGVyKGZ1bmN0aW9uIChzeW0pIHsgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LCBzeW0pLmVudW1lcmFibGU7IH0pOyBrZXlzLnB1c2guYXBwbHkoa2V5cywgc3ltYm9scyk7IH0gcmV0dXJuIGtleXM7IH1cblxuZnVuY3Rpb24gX29iamVjdFNwcmVhZCh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXSAhPSBudWxsID8gYXJndW1lbnRzW2ldIDoge307IGlmIChpICUgMikgeyBvd25LZXlzKE9iamVjdChzb3VyY2UpLCB0cnVlKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsgX2RlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBzb3VyY2Vba2V5XSk7IH0pOyB9IGVsc2UgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoc291cmNlKSk7IH0gZWxzZSB7IG93bktleXMoT2JqZWN0KHNvdXJjZSkpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc291cmNlLCBrZXkpKTsgfSk7IH0gfSByZXR1cm4gdGFyZ2V0OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH1cblxuZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIF9zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcyk7IH1cblxuZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgX3NldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IG8uX19wcm90b19fID0gcDsgcmV0dXJuIG87IH07IHJldHVybiBfc2V0UHJvdG90eXBlT2YobywgcCk7IH1cblxuZnVuY3Rpb24gX2NyZWF0ZVN1cGVyKERlcml2ZWQpIHsgdmFyIGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCk7IHJldHVybiBmdW5jdGlvbiBfY3JlYXRlU3VwZXJJbnRlcm5hbCgpIHsgdmFyIFN1cGVyID0gX2dldFByb3RvdHlwZU9mKERlcml2ZWQpLCByZXN1bHQ7IGlmIChoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KSB7IHZhciBOZXdUYXJnZXQgPSBfZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3I7IHJlc3VsdCA9IFJlZmxlY3QuY29uc3RydWN0KFN1cGVyLCBhcmd1bWVudHMsIE5ld1RhcmdldCk7IH0gZWxzZSB7IHJlc3VsdCA9IFN1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH0gcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIHJlc3VsdCk7IH07IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoY2FsbCAmJiAoX3R5cGVvZihjYWxsKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkgeyByZXR1cm4gY2FsbDsgfSByZXR1cm4gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKTsgfVxuXG5mdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpIHsgaWYgKHNlbGYgPT09IHZvaWQgMCkgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIHNlbGY7IH1cblxuZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHsgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiIHx8ICFSZWZsZWN0LmNvbnN0cnVjdCkgcmV0dXJuIGZhbHNlOyBpZiAoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSkgcmV0dXJuIGZhbHNlOyBpZiAodHlwZW9mIFByb3h5ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB0cnVlOyB0cnkgeyBEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFJlZmxlY3QuY29uc3RydWN0KERhdGUsIFtdLCBmdW5jdGlvbiAoKSB7fSkpOyByZXR1cm4gdHJ1ZTsgfSBjYXRjaCAoZSkgeyByZXR1cm4gZmFsc2U7IH0gfVxuXG5mdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyByZXR1cm4gby5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pOyB9OyByZXR1cm4gX2dldFByb3RvdHlwZU9mKG8pOyB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsgaWYgKGtleSBpbiBvYmopIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsgfSBlbHNlIHsgb2JqW2tleV0gPSB2YWx1ZTsgfSByZXR1cm4gb2JqOyB9XG5cbnZhciBJbm5lclNsaWRlciA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoSW5uZXJTbGlkZXIsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIHZhciBfc3VwZXIgPSBfY3JlYXRlU3VwZXIoSW5uZXJTbGlkZXIpO1xuXG4gIGZ1bmN0aW9uIElubmVyU2xpZGVyKHByb3BzKSB7XG4gICAgdmFyIF90aGlzO1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIElubmVyU2xpZGVyKTtcblxuICAgIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgcHJvcHMpO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcImxpc3RSZWZIYW5kbGVyXCIsIGZ1bmN0aW9uIChyZWYpIHtcbiAgICAgIHJldHVybiBfdGhpcy5saXN0ID0gcmVmO1xuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcInRyYWNrUmVmSGFuZGxlclwiLCBmdW5jdGlvbiAocmVmKSB7XG4gICAgICByZXR1cm4gX3RoaXMudHJhY2sgPSByZWY7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwiYWRhcHRIZWlnaHRcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKF90aGlzLnByb3BzLmFkYXB0aXZlSGVpZ2h0ICYmIF90aGlzLmxpc3QpIHtcbiAgICAgICAgdmFyIGVsZW0gPSBfdGhpcy5saXN0LnF1ZXJ5U2VsZWN0b3IoXCJbZGF0YS1pbmRleD1cXFwiXCIuY29uY2F0KF90aGlzLnN0YXRlLmN1cnJlbnRTbGlkZSwgXCJcXFwiXVwiKSk7XG5cbiAgICAgICAgX3RoaXMubGlzdC5zdHlsZS5oZWlnaHQgPSAoMCwgX2lubmVyU2xpZGVyVXRpbHMuZ2V0SGVpZ2h0KShlbGVtKSArIFwicHhcIjtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJjb21wb25lbnREaWRNb3VudFwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICBfdGhpcy5wcm9wcy5vbkluaXQgJiYgX3RoaXMucHJvcHMub25Jbml0KCk7XG5cbiAgICAgIGlmIChfdGhpcy5wcm9wcy5sYXp5TG9hZCkge1xuICAgICAgICB2YXIgc2xpZGVzVG9Mb2FkID0gKDAsIF9pbm5lclNsaWRlclV0aWxzLmdldE9uRGVtYW5kTGF6eVNsaWRlcykoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBfdGhpcy5wcm9wcyksIF90aGlzLnN0YXRlKSk7XG5cbiAgICAgICAgaWYgKHNsaWRlc1RvTG9hZC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgX3RoaXMuc2V0U3RhdGUoZnVuY3Rpb24gKHByZXZTdGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgbGF6eUxvYWRlZExpc3Q6IHByZXZTdGF0ZS5sYXp5TG9hZGVkTGlzdC5jb25jYXQoc2xpZGVzVG9Mb2FkKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGlmIChfdGhpcy5wcm9wcy5vbkxhenlMb2FkKSB7XG4gICAgICAgICAgICBfdGhpcy5wcm9wcy5vbkxhenlMb2FkKHNsaWRlc1RvTG9hZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHZhciBzcGVjID0gX29iamVjdFNwcmVhZCh7XG4gICAgICAgIGxpc3RSZWY6IF90aGlzLmxpc3QsXG4gICAgICAgIHRyYWNrUmVmOiBfdGhpcy50cmFja1xuICAgICAgfSwgX3RoaXMucHJvcHMpO1xuXG4gICAgICBfdGhpcy51cGRhdGVTdGF0ZShzcGVjLCB0cnVlLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIF90aGlzLmFkYXB0SGVpZ2h0KCk7XG5cbiAgICAgICAgX3RoaXMucHJvcHMuYXV0b3BsYXkgJiYgX3RoaXMuYXV0b1BsYXkoXCJ1cGRhdGVcIik7XG4gICAgICB9KTtcblxuICAgICAgaWYgKF90aGlzLnByb3BzLmxhenlMb2FkID09PSBcInByb2dyZXNzaXZlXCIpIHtcbiAgICAgICAgX3RoaXMubGF6eUxvYWRUaW1lciA9IHNldEludGVydmFsKF90aGlzLnByb2dyZXNzaXZlTGF6eUxvYWQsIDEwMDApO1xuICAgICAgfVxuXG4gICAgICBfdGhpcy5ybyA9IG5ldyBfcmVzaXplT2JzZXJ2ZXJQb2x5ZmlsbFtcImRlZmF1bHRcIl0oZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoX3RoaXMuc3RhdGUuYW5pbWF0aW5nKSB7XG4gICAgICAgICAgX3RoaXMub25XaW5kb3dSZXNpemVkKGZhbHNlKTsgLy8gZG9uJ3Qgc2V0IHRyYWNrU3R5bGUgaGVuY2UgZG9uJ3QgYnJlYWsgYW5pbWF0aW9uXG5cblxuICAgICAgICAgIF90aGlzLmNhbGxiYWNrVGltZXJzLnB1c2goc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gX3RoaXMub25XaW5kb3dSZXNpemVkKCk7XG4gICAgICAgICAgfSwgX3RoaXMucHJvcHMuc3BlZWQpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBfdGhpcy5vbldpbmRvd1Jlc2l6ZWQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIF90aGlzLnJvLm9ic2VydmUoX3RoaXMubGlzdCk7XG5cbiAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwgJiYgQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLnNsaWNrLXNsaWRlXCIpLCBmdW5jdGlvbiAoc2xpZGUpIHtcbiAgICAgICAgc2xpZGUub25mb2N1cyA9IF90aGlzLnByb3BzLnBhdXNlT25Gb2N1cyA/IF90aGlzLm9uU2xpZGVGb2N1cyA6IG51bGw7XG4gICAgICAgIHNsaWRlLm9uYmx1ciA9IF90aGlzLnByb3BzLnBhdXNlT25Gb2N1cyA/IF90aGlzLm9uU2xpZGVCbHVyIDogbnVsbDtcbiAgICAgIH0pO1xuXG4gICAgICBpZiAod2luZG93LmFkZEV2ZW50TGlzdGVuZXIpIHtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgX3RoaXMub25XaW5kb3dSZXNpemVkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHdpbmRvdy5hdHRhY2hFdmVudChcIm9ucmVzaXplXCIsIF90aGlzLm9uV2luZG93UmVzaXplZCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwiY29tcG9uZW50V2lsbFVubW91bnRcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKF90aGlzLmFuaW1hdGlvbkVuZENhbGxiYWNrKSB7XG4gICAgICAgIGNsZWFyVGltZW91dChfdGhpcy5hbmltYXRpb25FbmRDYWxsYmFjayk7XG4gICAgICB9XG5cbiAgICAgIGlmIChfdGhpcy5sYXp5TG9hZFRpbWVyKSB7XG4gICAgICAgIGNsZWFySW50ZXJ2YWwoX3RoaXMubGF6eUxvYWRUaW1lcik7XG4gICAgICB9XG5cbiAgICAgIGlmIChfdGhpcy5jYWxsYmFja1RpbWVycy5sZW5ndGgpIHtcbiAgICAgICAgX3RoaXMuY2FsbGJhY2tUaW1lcnMuZm9yRWFjaChmdW5jdGlvbiAodGltZXIpIHtcbiAgICAgICAgICByZXR1cm4gY2xlYXJUaW1lb3V0KHRpbWVyKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgX3RoaXMuY2FsbGJhY2tUaW1lcnMgPSBbXTtcbiAgICAgIH1cblxuICAgICAgaWYgKHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKSB7XG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIF90aGlzLm9uV2luZG93UmVzaXplZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB3aW5kb3cuZGV0YWNoRXZlbnQoXCJvbnJlc2l6ZVwiLCBfdGhpcy5vbldpbmRvd1Jlc2l6ZWQpO1xuICAgICAgfVxuXG4gICAgICBpZiAoX3RoaXMuYXV0b3BsYXlUaW1lcikge1xuICAgICAgICBjbGVhckludGVydmFsKF90aGlzLmF1dG9wbGF5VGltZXIpO1xuICAgICAgfVxuXG4gICAgICBfdGhpcy5yby5kaXNjb25uZWN0KCk7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwiY29tcG9uZW50RGlkVXBkYXRlXCIsIGZ1bmN0aW9uIChwcmV2UHJvcHMpIHtcbiAgICAgIF90aGlzLmNoZWNrSW1hZ2VzTG9hZCgpO1xuXG4gICAgICBfdGhpcy5wcm9wcy5vblJlSW5pdCAmJiBfdGhpcy5wcm9wcy5vblJlSW5pdCgpO1xuXG4gICAgICBpZiAoX3RoaXMucHJvcHMubGF6eUxvYWQpIHtcbiAgICAgICAgdmFyIHNsaWRlc1RvTG9hZCA9ICgwLCBfaW5uZXJTbGlkZXJVdGlscy5nZXRPbkRlbWFuZExhenlTbGlkZXMpKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgX3RoaXMucHJvcHMpLCBfdGhpcy5zdGF0ZSkpO1xuXG4gICAgICAgIGlmIChzbGlkZXNUb0xvYWQubGVuZ3RoID4gMCkge1xuICAgICAgICAgIF90aGlzLnNldFN0YXRlKGZ1bmN0aW9uIChwcmV2U3RhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGxhenlMb2FkZWRMaXN0OiBwcmV2U3RhdGUubGF6eUxvYWRlZExpc3QuY29uY2F0KHNsaWRlc1RvTG9hZClcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBpZiAoX3RoaXMucHJvcHMub25MYXp5TG9hZCkge1xuICAgICAgICAgICAgX3RoaXMucHJvcHMub25MYXp5TG9hZChzbGlkZXNUb0xvYWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSAvLyBpZiAodGhpcy5wcm9wcy5vbkxhenlMb2FkKSB7XG4gICAgICAvLyAgIHRoaXMucHJvcHMub25MYXp5TG9hZChbbGVmdE1vc3RTbGlkZV0pXG4gICAgICAvLyB9XG5cblxuICAgICAgX3RoaXMuYWRhcHRIZWlnaHQoKTtcblxuICAgICAgdmFyIHNwZWMgPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe1xuICAgICAgICBsaXN0UmVmOiBfdGhpcy5saXN0LFxuICAgICAgICB0cmFja1JlZjogX3RoaXMudHJhY2tcbiAgICAgIH0sIF90aGlzLnByb3BzKSwgX3RoaXMuc3RhdGUpO1xuXG4gICAgICB2YXIgc2V0VHJhY2tTdHlsZSA9IF90aGlzLmRpZFByb3BzQ2hhbmdlKHByZXZQcm9wcyk7XG5cbiAgICAgIHNldFRyYWNrU3R5bGUgJiYgX3RoaXMudXBkYXRlU3RhdGUoc3BlYywgc2V0VHJhY2tTdHlsZSwgZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoX3RoaXMuc3RhdGUuY3VycmVudFNsaWRlID49IF9yZWFjdFtcImRlZmF1bHRcIl0uQ2hpbGRyZW4uY291bnQoX3RoaXMucHJvcHMuY2hpbGRyZW4pKSB7XG4gICAgICAgICAgX3RoaXMuY2hhbmdlU2xpZGUoe1xuICAgICAgICAgICAgbWVzc2FnZTogXCJpbmRleFwiLFxuICAgICAgICAgICAgaW5kZXg6IF9yZWFjdFtcImRlZmF1bHRcIl0uQ2hpbGRyZW4uY291bnQoX3RoaXMucHJvcHMuY2hpbGRyZW4pIC0gX3RoaXMucHJvcHMuc2xpZGVzVG9TaG93LFxuICAgICAgICAgICAgY3VycmVudFNsaWRlOiBfdGhpcy5zdGF0ZS5jdXJyZW50U2xpZGVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChfdGhpcy5wcm9wcy5hdXRvcGxheSkge1xuICAgICAgICAgIF90aGlzLmF1dG9QbGF5KFwidXBkYXRlXCIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIF90aGlzLnBhdXNlKFwicGF1c2VkXCIpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJvbldpbmRvd1Jlc2l6ZWRcIiwgZnVuY3Rpb24gKHNldFRyYWNrU3R5bGUpIHtcbiAgICAgIGlmIChfdGhpcy5kZWJvdW5jZWRSZXNpemUpIF90aGlzLmRlYm91bmNlZFJlc2l6ZS5jYW5jZWwoKTtcbiAgICAgIF90aGlzLmRlYm91bmNlZFJlc2l6ZSA9ICgwLCBfbG9kYXNoW1wiZGVmYXVsdFwiXSkoZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gX3RoaXMucmVzaXplV2luZG93KHNldFRyYWNrU3R5bGUpO1xuICAgICAgfSwgNTApO1xuXG4gICAgICBfdGhpcy5kZWJvdW5jZWRSZXNpemUoKTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJyZXNpemVXaW5kb3dcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIHNldFRyYWNrU3R5bGUgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHRydWU7XG4gICAgICB2YXIgaXNUcmFja01vdW50ZWQgPSBCb29sZWFuKF90aGlzLnRyYWNrICYmIF90aGlzLnRyYWNrLm5vZGUpOyAvLyBwcmV2ZW50IHdhcm5pbmc6IHNldHRpbmcgc3RhdGUgb24gdW5tb3VudGVkIGNvbXBvbmVudCAoc2VydmVyIHNpZGUgcmVuZGVyaW5nKVxuXG4gICAgICBpZiAoIWlzVHJhY2tNb3VudGVkKSByZXR1cm47XG5cbiAgICAgIHZhciBzcGVjID0gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHtcbiAgICAgICAgbGlzdFJlZjogX3RoaXMubGlzdCxcbiAgICAgICAgdHJhY2tSZWY6IF90aGlzLnRyYWNrXG4gICAgICB9LCBfdGhpcy5wcm9wcyksIF90aGlzLnN0YXRlKTtcblxuICAgICAgX3RoaXMudXBkYXRlU3RhdGUoc3BlYywgc2V0VHJhY2tTdHlsZSwgZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoX3RoaXMucHJvcHMuYXV0b3BsYXkpIF90aGlzLmF1dG9QbGF5KFwidXBkYXRlXCIpO2Vsc2UgX3RoaXMucGF1c2UoXCJwYXVzZWRcIik7XG4gICAgICB9KTsgLy8gYW5pbWF0aW5nIHN0YXRlIHNob3VsZCBiZSBjbGVhcmVkIHdoaWxlIHJlc2l6aW5nLCBvdGhlcndpc2UgYXV0b3BsYXkgc3RvcHMgd29ya2luZ1xuXG5cbiAgICAgIF90aGlzLnNldFN0YXRlKHtcbiAgICAgICAgYW5pbWF0aW5nOiBmYWxzZVxuICAgICAgfSk7XG5cbiAgICAgIGNsZWFyVGltZW91dChfdGhpcy5hbmltYXRpb25FbmRDYWxsYmFjayk7XG4gICAgICBkZWxldGUgX3RoaXMuYW5pbWF0aW9uRW5kQ2FsbGJhY2s7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwidXBkYXRlU3RhdGVcIiwgZnVuY3Rpb24gKHNwZWMsIHNldFRyYWNrU3R5bGUsIGNhbGxiYWNrKSB7XG4gICAgICB2YXIgdXBkYXRlZFN0YXRlID0gKDAsIF9pbm5lclNsaWRlclV0aWxzLmluaXRpYWxpemVkU3RhdGUpKHNwZWMpO1xuICAgICAgc3BlYyA9IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzcGVjKSwgdXBkYXRlZFN0YXRlKSwge30sIHtcbiAgICAgICAgc2xpZGVJbmRleDogdXBkYXRlZFN0YXRlLmN1cnJlbnRTbGlkZVxuICAgICAgfSk7XG4gICAgICB2YXIgdGFyZ2V0TGVmdCA9ICgwLCBfaW5uZXJTbGlkZXJVdGlscy5nZXRUcmFja0xlZnQpKHNwZWMpO1xuICAgICAgc3BlYyA9IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgc3BlYyksIHt9LCB7XG4gICAgICAgIGxlZnQ6IHRhcmdldExlZnRcbiAgICAgIH0pO1xuICAgICAgdmFyIHRyYWNrU3R5bGUgPSAoMCwgX2lubmVyU2xpZGVyVXRpbHMuZ2V0VHJhY2tDU1MpKHNwZWMpO1xuXG4gICAgICBpZiAoc2V0VHJhY2tTdHlsZSB8fCBfcmVhY3RbXCJkZWZhdWx0XCJdLkNoaWxkcmVuLmNvdW50KF90aGlzLnByb3BzLmNoaWxkcmVuKSAhPT0gX3JlYWN0W1wiZGVmYXVsdFwiXS5DaGlsZHJlbi5jb3VudChzcGVjLmNoaWxkcmVuKSkge1xuICAgICAgICB1cGRhdGVkU3RhdGVbXCJ0cmFja1N0eWxlXCJdID0gdHJhY2tTdHlsZTtcbiAgICAgIH1cblxuICAgICAgX3RoaXMuc2V0U3RhdGUodXBkYXRlZFN0YXRlLCBjYWxsYmFjayk7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwic3NySW5pdFwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAoX3RoaXMucHJvcHMudmFyaWFibGVXaWR0aCkge1xuICAgICAgICB2YXIgX3RyYWNrV2lkdGggPSAwLFxuICAgICAgICAgICAgX3RyYWNrTGVmdCA9IDA7XG4gICAgICAgIHZhciBjaGlsZHJlbldpZHRocyA9IFtdO1xuICAgICAgICB2YXIgcHJlQ2xvbmVzID0gKDAsIF9pbm5lclNsaWRlclV0aWxzLmdldFByZUNsb25lcykoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIF90aGlzLnByb3BzKSwgX3RoaXMuc3RhdGUpLCB7fSwge1xuICAgICAgICAgIHNsaWRlQ291bnQ6IF90aGlzLnByb3BzLmNoaWxkcmVuLmxlbmd0aFxuICAgICAgICB9KSk7XG4gICAgICAgIHZhciBwb3N0Q2xvbmVzID0gKDAsIF9pbm5lclNsaWRlclV0aWxzLmdldFBvc3RDbG9uZXMpKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBfdGhpcy5wcm9wcyksIF90aGlzLnN0YXRlKSwge30sIHtcbiAgICAgICAgICBzbGlkZUNvdW50OiBfdGhpcy5wcm9wcy5jaGlsZHJlbi5sZW5ndGhcbiAgICAgICAgfSkpO1xuXG4gICAgICAgIF90aGlzLnByb3BzLmNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgICAgICAgY2hpbGRyZW5XaWR0aHMucHVzaChjaGlsZC5wcm9wcy5zdHlsZS53aWR0aCk7XG4gICAgICAgICAgX3RyYWNrV2lkdGggKz0gY2hpbGQucHJvcHMuc3R5bGUud2lkdGg7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJlQ2xvbmVzOyBpKyspIHtcbiAgICAgICAgICBfdHJhY2tMZWZ0ICs9IGNoaWxkcmVuV2lkdGhzW2NoaWxkcmVuV2lkdGhzLmxlbmd0aCAtIDEgLSBpXTtcbiAgICAgICAgICBfdHJhY2tXaWR0aCArPSBjaGlsZHJlbldpZHRoc1tjaGlsZHJlbldpZHRocy5sZW5ndGggLSAxIC0gaV07XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgcG9zdENsb25lczsgX2krKykge1xuICAgICAgICAgIF90cmFja1dpZHRoICs9IGNoaWxkcmVuV2lkdGhzW19pXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAodmFyIF9pMiA9IDA7IF9pMiA8IF90aGlzLnN0YXRlLmN1cnJlbnRTbGlkZTsgX2kyKyspIHtcbiAgICAgICAgICBfdHJhY2tMZWZ0ICs9IGNoaWxkcmVuV2lkdGhzW19pMl07XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgX3RyYWNrU3R5bGUgPSB7XG4gICAgICAgICAgd2lkdGg6IF90cmFja1dpZHRoICsgXCJweFwiLFxuICAgICAgICAgIGxlZnQ6IC1fdHJhY2tMZWZ0ICsgXCJweFwiXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKF90aGlzLnByb3BzLmNlbnRlck1vZGUpIHtcbiAgICAgICAgICB2YXIgY3VycmVudFdpZHRoID0gXCJcIi5jb25jYXQoY2hpbGRyZW5XaWR0aHNbX3RoaXMuc3RhdGUuY3VycmVudFNsaWRlXSwgXCJweFwiKTtcbiAgICAgICAgICBfdHJhY2tTdHlsZS5sZWZ0ID0gXCJjYWxjKFwiLmNvbmNhdChfdHJhY2tTdHlsZS5sZWZ0LCBcIiArICgxMDAlIC0gXCIpLmNvbmNhdChjdXJyZW50V2lkdGgsIFwiKSAvIDIgKSBcIik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHRyYWNrU3R5bGU6IF90cmFja1N0eWxlXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHZhciBjaGlsZHJlbkNvdW50ID0gX3JlYWN0W1wiZGVmYXVsdFwiXS5DaGlsZHJlbi5jb3VudChfdGhpcy5wcm9wcy5jaGlsZHJlbik7XG5cbiAgICAgIHZhciBzcGVjID0gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIF90aGlzLnByb3BzKSwgX3RoaXMuc3RhdGUpLCB7fSwge1xuICAgICAgICBzbGlkZUNvdW50OiBjaGlsZHJlbkNvdW50XG4gICAgICB9KTtcblxuICAgICAgdmFyIHNsaWRlQ291bnQgPSAoMCwgX2lubmVyU2xpZGVyVXRpbHMuZ2V0UHJlQ2xvbmVzKShzcGVjKSArICgwLCBfaW5uZXJTbGlkZXJVdGlscy5nZXRQb3N0Q2xvbmVzKShzcGVjKSArIGNoaWxkcmVuQ291bnQ7XG4gICAgICB2YXIgdHJhY2tXaWR0aCA9IDEwMCAvIF90aGlzLnByb3BzLnNsaWRlc1RvU2hvdyAqIHNsaWRlQ291bnQ7XG4gICAgICB2YXIgc2xpZGVXaWR0aCA9IDEwMCAvIHNsaWRlQ291bnQ7XG4gICAgICB2YXIgdHJhY2tMZWZ0ID0gLXNsaWRlV2lkdGggKiAoKDAsIF9pbm5lclNsaWRlclV0aWxzLmdldFByZUNsb25lcykoc3BlYykgKyBfdGhpcy5zdGF0ZS5jdXJyZW50U2xpZGUpICogdHJhY2tXaWR0aCAvIDEwMDtcblxuICAgICAgaWYgKF90aGlzLnByb3BzLmNlbnRlck1vZGUpIHtcbiAgICAgICAgdHJhY2tMZWZ0ICs9ICgxMDAgLSBzbGlkZVdpZHRoICogdHJhY2tXaWR0aCAvIDEwMCkgLyAyO1xuICAgICAgfVxuXG4gICAgICB2YXIgdHJhY2tTdHlsZSA9IHtcbiAgICAgICAgd2lkdGg6IHRyYWNrV2lkdGggKyBcIiVcIixcbiAgICAgICAgbGVmdDogdHJhY2tMZWZ0ICsgXCIlXCJcbiAgICAgIH07XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzbGlkZVdpZHRoOiBzbGlkZVdpZHRoICsgXCIlXCIsXG4gICAgICAgIHRyYWNrU3R5bGU6IHRyYWNrU3R5bGVcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwiY2hlY2tJbWFnZXNMb2FkXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBpbWFnZXMgPSBfdGhpcy5saXN0ICYmIF90aGlzLmxpc3QucXVlcnlTZWxlY3RvckFsbCAmJiBfdGhpcy5saXN0LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuc2xpY2stc2xpZGUgaW1nXCIpIHx8IFtdO1xuICAgICAgdmFyIGltYWdlc0NvdW50ID0gaW1hZ2VzLmxlbmd0aCxcbiAgICAgICAgICBsb2FkZWRDb3VudCA9IDA7XG4gICAgICBBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGltYWdlcywgZnVuY3Rpb24gKGltYWdlKSB7XG4gICAgICAgIHZhciBoYW5kbGVyID0gZnVuY3Rpb24gaGFuZGxlcigpIHtcbiAgICAgICAgICByZXR1cm4gKytsb2FkZWRDb3VudCAmJiBsb2FkZWRDb3VudCA+PSBpbWFnZXNDb3VudCAmJiBfdGhpcy5vbldpbmRvd1Jlc2l6ZWQoKTtcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoIWltYWdlLm9uY2xpY2spIHtcbiAgICAgICAgICBpbWFnZS5vbmNsaWNrID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIGltYWdlLnBhcmVudE5vZGUuZm9jdXMoKTtcbiAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhciBwcmV2Q2xpY2tIYW5kbGVyID0gaW1hZ2Uub25jbGljaztcblxuICAgICAgICAgIGltYWdlLm9uY2xpY2sgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBwcmV2Q2xpY2tIYW5kbGVyKCk7XG4gICAgICAgICAgICBpbWFnZS5wYXJlbnROb2RlLmZvY3VzKCk7XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaW1hZ2Uub25sb2FkKSB7XG4gICAgICAgICAgaWYgKF90aGlzLnByb3BzLmxhenlMb2FkKSB7XG4gICAgICAgICAgICBpbWFnZS5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIF90aGlzLmFkYXB0SGVpZ2h0KCk7XG5cbiAgICAgICAgICAgICAgX3RoaXMuY2FsbGJhY2tUaW1lcnMucHVzaChzZXRUaW1lb3V0KF90aGlzLm9uV2luZG93UmVzaXplZCwgX3RoaXMucHJvcHMuc3BlZWQpKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGltYWdlLm9ubG9hZCA9IGhhbmRsZXI7XG5cbiAgICAgICAgICAgIGltYWdlLm9uZXJyb3IgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIGhhbmRsZXIoKTtcbiAgICAgICAgICAgICAgX3RoaXMucHJvcHMub25MYXp5TG9hZEVycm9yICYmIF90aGlzLnByb3BzLm9uTGF6eUxvYWRFcnJvcigpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcInByb2dyZXNzaXZlTGF6eUxvYWRcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIHNsaWRlc1RvTG9hZCA9IFtdO1xuXG4gICAgICB2YXIgc3BlYyA9IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgX3RoaXMucHJvcHMpLCBfdGhpcy5zdGF0ZSk7XG5cbiAgICAgIGZvciAodmFyIGluZGV4ID0gX3RoaXMuc3RhdGUuY3VycmVudFNsaWRlOyBpbmRleCA8IF90aGlzLnN0YXRlLnNsaWRlQ291bnQgKyAoMCwgX2lubmVyU2xpZGVyVXRpbHMuZ2V0UG9zdENsb25lcykoc3BlYyk7IGluZGV4KyspIHtcbiAgICAgICAgaWYgKF90aGlzLnN0YXRlLmxhenlMb2FkZWRMaXN0LmluZGV4T2YoaW5kZXgpIDwgMCkge1xuICAgICAgICAgIHNsaWRlc1RvTG9hZC5wdXNoKGluZGV4KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBmb3IgKHZhciBfaW5kZXggPSBfdGhpcy5zdGF0ZS5jdXJyZW50U2xpZGUgLSAxOyBfaW5kZXggPj0gLSgwLCBfaW5uZXJTbGlkZXJVdGlscy5nZXRQcmVDbG9uZXMpKHNwZWMpOyBfaW5kZXgtLSkge1xuICAgICAgICBpZiAoX3RoaXMuc3RhdGUubGF6eUxvYWRlZExpc3QuaW5kZXhPZihfaW5kZXgpIDwgMCkge1xuICAgICAgICAgIHNsaWRlc1RvTG9hZC5wdXNoKF9pbmRleCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHNsaWRlc1RvTG9hZC5sZW5ndGggPiAwKSB7XG4gICAgICAgIF90aGlzLnNldFN0YXRlKGZ1bmN0aW9uIChzdGF0ZSkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBsYXp5TG9hZGVkTGlzdDogc3RhdGUubGF6eUxvYWRlZExpc3QuY29uY2F0KHNsaWRlc1RvTG9hZClcbiAgICAgICAgICB9O1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoX3RoaXMucHJvcHMub25MYXp5TG9hZCkge1xuICAgICAgICAgIF90aGlzLnByb3BzLm9uTGF6eUxvYWQoc2xpZGVzVG9Mb2FkKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKF90aGlzLmxhenlMb2FkVGltZXIpIHtcbiAgICAgICAgICBjbGVhckludGVydmFsKF90aGlzLmxhenlMb2FkVGltZXIpO1xuICAgICAgICAgIGRlbGV0ZSBfdGhpcy5sYXp5TG9hZFRpbWVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwic2xpZGVIYW5kbGVyXCIsIGZ1bmN0aW9uIChpbmRleCkge1xuICAgICAgdmFyIGRvbnRBbmltYXRlID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiBmYWxzZTtcbiAgICAgIHZhciBfdGhpcyRwcm9wcyA9IF90aGlzLnByb3BzLFxuICAgICAgICAgIGFzTmF2Rm9yID0gX3RoaXMkcHJvcHMuYXNOYXZGb3IsXG4gICAgICAgICAgYmVmb3JlQ2hhbmdlID0gX3RoaXMkcHJvcHMuYmVmb3JlQ2hhbmdlLFxuICAgICAgICAgIG9uTGF6eUxvYWQgPSBfdGhpcyRwcm9wcy5vbkxhenlMb2FkLFxuICAgICAgICAgIHNwZWVkID0gX3RoaXMkcHJvcHMuc3BlZWQsXG4gICAgICAgICAgYWZ0ZXJDaGFuZ2UgPSBfdGhpcyRwcm9wcy5hZnRlckNoYW5nZTsgLy8gY2FwdHVyZSBjdXJyZW50c2xpZGUgYmVmb3JlIHN0YXRlIGlzIHVwZGF0ZWRcblxuICAgICAgdmFyIGN1cnJlbnRTbGlkZSA9IF90aGlzLnN0YXRlLmN1cnJlbnRTbGlkZTtcblxuICAgICAgdmFyIF9zbGlkZUhhbmRsZXIgPSAoMCwgX2lubmVyU2xpZGVyVXRpbHMuc2xpZGVIYW5kbGVyKShfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7XG4gICAgICAgIGluZGV4OiBpbmRleFxuICAgICAgfSwgX3RoaXMucHJvcHMpLCBfdGhpcy5zdGF0ZSksIHt9LCB7XG4gICAgICAgIHRyYWNrUmVmOiBfdGhpcy50cmFjayxcbiAgICAgICAgdXNlQ1NTOiBfdGhpcy5wcm9wcy51c2VDU1MgJiYgIWRvbnRBbmltYXRlXG4gICAgICB9KSksXG4gICAgICAgICAgc3RhdGUgPSBfc2xpZGVIYW5kbGVyLnN0YXRlLFxuICAgICAgICAgIG5leHRTdGF0ZSA9IF9zbGlkZUhhbmRsZXIubmV4dFN0YXRlO1xuXG4gICAgICBpZiAoIXN0YXRlKSByZXR1cm47XG4gICAgICBiZWZvcmVDaGFuZ2UgJiYgYmVmb3JlQ2hhbmdlKGN1cnJlbnRTbGlkZSwgc3RhdGUuY3VycmVudFNsaWRlKTtcbiAgICAgIHZhciBzbGlkZXNUb0xvYWQgPSBzdGF0ZS5sYXp5TG9hZGVkTGlzdC5maWx0ZXIoZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBfdGhpcy5zdGF0ZS5sYXp5TG9hZGVkTGlzdC5pbmRleE9mKHZhbHVlKSA8IDA7XG4gICAgICB9KTtcbiAgICAgIG9uTGF6eUxvYWQgJiYgc2xpZGVzVG9Mb2FkLmxlbmd0aCA+IDAgJiYgb25MYXp5TG9hZChzbGlkZXNUb0xvYWQpO1xuXG4gICAgICBpZiAoIV90aGlzLnByb3BzLndhaXRGb3JBbmltYXRlICYmIF90aGlzLmFuaW1hdGlvbkVuZENhbGxiYWNrKSB7XG4gICAgICAgIGNsZWFyVGltZW91dChfdGhpcy5hbmltYXRpb25FbmRDYWxsYmFjayk7XG4gICAgICAgIGFmdGVyQ2hhbmdlICYmIGFmdGVyQ2hhbmdlKGN1cnJlbnRTbGlkZSk7XG4gICAgICAgIGRlbGV0ZSBfdGhpcy5hbmltYXRpb25FbmRDYWxsYmFjaztcbiAgICAgIH1cblxuICAgICAgX3RoaXMuc2V0U3RhdGUoc3RhdGUsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgLy8gYXNOYXZGb3JJbmRleCBjaGVjayBpcyB0byBhdm9pZCByZWN1cnNpdmUgY2FsbHMgb2Ygc2xpZGVIYW5kbGVyIGluIHdhaXRGb3JBbmltYXRlPWZhbHNlIG1vZGVcbiAgICAgICAgaWYgKGFzTmF2Rm9yICYmIF90aGlzLmFzTmF2Rm9ySW5kZXggIT09IGluZGV4KSB7XG4gICAgICAgICAgX3RoaXMuYXNOYXZGb3JJbmRleCA9IGluZGV4O1xuICAgICAgICAgIGFzTmF2Rm9yLmlubmVyU2xpZGVyLnNsaWRlSGFuZGxlcihpbmRleCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIW5leHRTdGF0ZSkgcmV0dXJuO1xuICAgICAgICBfdGhpcy5hbmltYXRpb25FbmRDYWxsYmFjayA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHZhciBhbmltYXRpbmcgPSBuZXh0U3RhdGUuYW5pbWF0aW5nLFxuICAgICAgICAgICAgICBmaXJzdEJhdGNoID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKG5leHRTdGF0ZSwgW1wiYW5pbWF0aW5nXCJdKTtcblxuICAgICAgICAgIF90aGlzLnNldFN0YXRlKGZpcnN0QmF0Y2gsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIF90aGlzLmNhbGxiYWNrVGltZXJzLnB1c2goc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIHJldHVybiBfdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW5nOiBhbmltYXRpbmdcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LCAxMCkpO1xuXG4gICAgICAgICAgICBhZnRlckNoYW5nZSAmJiBhZnRlckNoYW5nZShzdGF0ZS5jdXJyZW50U2xpZGUpO1xuICAgICAgICAgICAgZGVsZXRlIF90aGlzLmFuaW1hdGlvbkVuZENhbGxiYWNrO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9LCBzcGVlZCk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJjaGFuZ2VTbGlkZVwiLCBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgdmFyIGRvbnRBbmltYXRlID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiBmYWxzZTtcblxuICAgICAgdmFyIHNwZWMgPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIF90aGlzLnByb3BzKSwgX3RoaXMuc3RhdGUpO1xuXG4gICAgICB2YXIgdGFyZ2V0U2xpZGUgPSAoMCwgX2lubmVyU2xpZGVyVXRpbHMuY2hhbmdlU2xpZGUpKHNwZWMsIG9wdGlvbnMpO1xuICAgICAgaWYgKHRhcmdldFNsaWRlICE9PSAwICYmICF0YXJnZXRTbGlkZSkgcmV0dXJuO1xuXG4gICAgICBpZiAoZG9udEFuaW1hdGUgPT09IHRydWUpIHtcbiAgICAgICAgX3RoaXMuc2xpZGVIYW5kbGVyKHRhcmdldFNsaWRlLCBkb250QW5pbWF0ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBfdGhpcy5zbGlkZUhhbmRsZXIodGFyZ2V0U2xpZGUpO1xuICAgICAgfVxuXG4gICAgICBfdGhpcy5wcm9wcy5hdXRvcGxheSAmJiBfdGhpcy5hdXRvUGxheShcInVwZGF0ZVwiKTtcblxuICAgICAgaWYgKF90aGlzLnByb3BzLmZvY3VzT25TZWxlY3QpIHtcbiAgICAgICAgdmFyIG5vZGVzID0gX3RoaXMubGlzdC5xdWVyeVNlbGVjdG9yQWxsKFwiLnNsaWNrLWN1cnJlbnRcIik7XG5cbiAgICAgICAgbm9kZXNbMF0gJiYgbm9kZXNbMF0uZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJjbGlja0hhbmRsZXJcIiwgZnVuY3Rpb24gKGUpIHtcbiAgICAgIGlmIChfdGhpcy5jbGlja2FibGUgPT09IGZhbHNlKSB7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cblxuICAgICAgX3RoaXMuY2xpY2thYmxlID0gdHJ1ZTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJrZXlIYW5kbGVyXCIsIGZ1bmN0aW9uIChlKSB7XG4gICAgICB2YXIgZGlyID0gKDAsIF9pbm5lclNsaWRlclV0aWxzLmtleUhhbmRsZXIpKGUsIF90aGlzLnByb3BzLmFjY2Vzc2liaWxpdHksIF90aGlzLnByb3BzLnJ0bCk7XG4gICAgICBkaXIgIT09IFwiXCIgJiYgX3RoaXMuY2hhbmdlU2xpZGUoe1xuICAgICAgICBtZXNzYWdlOiBkaXJcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcInNlbGVjdEhhbmRsZXJcIiwgZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgIF90aGlzLmNoYW5nZVNsaWRlKG9wdGlvbnMpO1xuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcImRpc2FibGVCb2R5U2Nyb2xsXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBwcmV2ZW50RGVmYXVsdCA9IGZ1bmN0aW9uIHByZXZlbnREZWZhdWx0KGUpIHtcbiAgICAgICAgZSA9IGUgfHwgd2luZG93LmV2ZW50O1xuICAgICAgICBpZiAoZS5wcmV2ZW50RGVmYXVsdCkgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBlLnJldHVyblZhbHVlID0gZmFsc2U7XG4gICAgICB9O1xuXG4gICAgICB3aW5kb3cub250b3VjaG1vdmUgPSBwcmV2ZW50RGVmYXVsdDtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJlbmFibGVCb2R5U2Nyb2xsXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHdpbmRvdy5vbnRvdWNobW92ZSA9IG51bGw7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwic3dpcGVTdGFydFwiLCBmdW5jdGlvbiAoZSkge1xuICAgICAgaWYgKF90aGlzLnByb3BzLnZlcnRpY2FsU3dpcGluZykge1xuICAgICAgICBfdGhpcy5kaXNhYmxlQm9keVNjcm9sbCgpO1xuICAgICAgfVxuXG4gICAgICB2YXIgc3RhdGUgPSAoMCwgX2lubmVyU2xpZGVyVXRpbHMuc3dpcGVTdGFydCkoZSwgX3RoaXMucHJvcHMuc3dpcGUsIF90aGlzLnByb3BzLmRyYWdnYWJsZSk7XG4gICAgICBzdGF0ZSAhPT0gXCJcIiAmJiBfdGhpcy5zZXRTdGF0ZShzdGF0ZSk7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwic3dpcGVNb3ZlXCIsIGZ1bmN0aW9uIChlKSB7XG4gICAgICB2YXIgc3RhdGUgPSAoMCwgX2lubmVyU2xpZGVyVXRpbHMuc3dpcGVNb3ZlKShlLCBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgX3RoaXMucHJvcHMpLCBfdGhpcy5zdGF0ZSksIHt9LCB7XG4gICAgICAgIHRyYWNrUmVmOiBfdGhpcy50cmFjayxcbiAgICAgICAgbGlzdFJlZjogX3RoaXMubGlzdCxcbiAgICAgICAgc2xpZGVJbmRleDogX3RoaXMuc3RhdGUuY3VycmVudFNsaWRlXG4gICAgICB9KSk7XG4gICAgICBpZiAoIXN0YXRlKSByZXR1cm47XG5cbiAgICAgIGlmIChzdGF0ZVtcInN3aXBpbmdcIl0pIHtcbiAgICAgICAgX3RoaXMuY2xpY2thYmxlID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIF90aGlzLnNldFN0YXRlKHN0YXRlKTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJzd2lwZUVuZFwiLCBmdW5jdGlvbiAoZSkge1xuICAgICAgdmFyIHN0YXRlID0gKDAsIF9pbm5lclNsaWRlclV0aWxzLnN3aXBlRW5kKShlLCBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgX3RoaXMucHJvcHMpLCBfdGhpcy5zdGF0ZSksIHt9LCB7XG4gICAgICAgIHRyYWNrUmVmOiBfdGhpcy50cmFjayxcbiAgICAgICAgbGlzdFJlZjogX3RoaXMubGlzdCxcbiAgICAgICAgc2xpZGVJbmRleDogX3RoaXMuc3RhdGUuY3VycmVudFNsaWRlXG4gICAgICB9KSk7XG4gICAgICBpZiAoIXN0YXRlKSByZXR1cm47XG4gICAgICB2YXIgdHJpZ2dlclNsaWRlSGFuZGxlciA9IHN0YXRlW1widHJpZ2dlclNsaWRlSGFuZGxlclwiXTtcbiAgICAgIGRlbGV0ZSBzdGF0ZVtcInRyaWdnZXJTbGlkZUhhbmRsZXJcIl07XG5cbiAgICAgIF90aGlzLnNldFN0YXRlKHN0YXRlKTtcblxuICAgICAgaWYgKHRyaWdnZXJTbGlkZUhhbmRsZXIgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuXG4gICAgICBfdGhpcy5zbGlkZUhhbmRsZXIodHJpZ2dlclNsaWRlSGFuZGxlcik7XG5cbiAgICAgIGlmIChfdGhpcy5wcm9wcy52ZXJ0aWNhbFN3aXBpbmcpIHtcbiAgICAgICAgX3RoaXMuZW5hYmxlQm9keVNjcm9sbCgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcInRvdWNoRW5kXCIsIGZ1bmN0aW9uIChlKSB7XG4gICAgICBfdGhpcy5zd2lwZUVuZChlKTtcblxuICAgICAgX3RoaXMuY2xpY2thYmxlID0gdHJ1ZTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJzbGlja1ByZXZcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgLy8gdGhpcyBhbmQgZmVsbG93IG1ldGhvZHMgYXJlIHdyYXBwZWQgaW4gc2V0VGltZW91dFxuICAgICAgLy8gdG8gbWFrZSBzdXJlIGluaXRpYWxpemUgc2V0U3RhdGUgaGFzIGhhcHBlbmVkIGJlZm9yZVxuICAgICAgLy8gYW55IG9mIHN1Y2ggbWV0aG9kcyBhcmUgY2FsbGVkXG4gICAgICBfdGhpcy5jYWxsYmFja1RpbWVycy5wdXNoKHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gX3RoaXMuY2hhbmdlU2xpZGUoe1xuICAgICAgICAgIG1lc3NhZ2U6IFwicHJldmlvdXNcIlxuICAgICAgICB9KTtcbiAgICAgIH0sIDApKTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJzbGlja05leHRcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgX3RoaXMuY2FsbGJhY2tUaW1lcnMucHVzaChzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIF90aGlzLmNoYW5nZVNsaWRlKHtcbiAgICAgICAgICBtZXNzYWdlOiBcIm5leHRcIlxuICAgICAgICB9KTtcbiAgICAgIH0sIDApKTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJzbGlja0dvVG9cIiwgZnVuY3Rpb24gKHNsaWRlKSB7XG4gICAgICB2YXIgZG9udEFuaW1hdGUgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IGZhbHNlO1xuICAgICAgc2xpZGUgPSBOdW1iZXIoc2xpZGUpO1xuICAgICAgaWYgKGlzTmFOKHNsaWRlKSkgcmV0dXJuIFwiXCI7XG5cbiAgICAgIF90aGlzLmNhbGxiYWNrVGltZXJzLnB1c2goc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBfdGhpcy5jaGFuZ2VTbGlkZSh7XG4gICAgICAgICAgbWVzc2FnZTogXCJpbmRleFwiLFxuICAgICAgICAgIGluZGV4OiBzbGlkZSxcbiAgICAgICAgICBjdXJyZW50U2xpZGU6IF90aGlzLnN0YXRlLmN1cnJlbnRTbGlkZVxuICAgICAgICB9LCBkb250QW5pbWF0ZSk7XG4gICAgICB9LCAwKSk7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwicGxheVwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgbmV4dEluZGV4O1xuXG4gICAgICBpZiAoX3RoaXMucHJvcHMucnRsKSB7XG4gICAgICAgIG5leHRJbmRleCA9IF90aGlzLnN0YXRlLmN1cnJlbnRTbGlkZSAtIF90aGlzLnByb3BzLnNsaWRlc1RvU2Nyb2xsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCgwLCBfaW5uZXJTbGlkZXJVdGlscy5jYW5Hb05leHQpKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgX3RoaXMucHJvcHMpLCBfdGhpcy5zdGF0ZSkpKSB7XG4gICAgICAgICAgbmV4dEluZGV4ID0gX3RoaXMuc3RhdGUuY3VycmVudFNsaWRlICsgX3RoaXMucHJvcHMuc2xpZGVzVG9TY3JvbGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIF90aGlzLnNsaWRlSGFuZGxlcihuZXh0SW5kZXgpO1xuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcImF1dG9QbGF5XCIsIGZ1bmN0aW9uIChwbGF5VHlwZSkge1xuICAgICAgaWYgKF90aGlzLmF1dG9wbGF5VGltZXIpIHtcbiAgICAgICAgY2xlYXJJbnRlcnZhbChfdGhpcy5hdXRvcGxheVRpbWVyKTtcbiAgICAgIH1cblxuICAgICAgdmFyIGF1dG9wbGF5aW5nID0gX3RoaXMuc3RhdGUuYXV0b3BsYXlpbmc7XG5cbiAgICAgIGlmIChwbGF5VHlwZSA9PT0gXCJ1cGRhdGVcIikge1xuICAgICAgICBpZiAoYXV0b3BsYXlpbmcgPT09IFwiaG92ZXJlZFwiIHx8IGF1dG9wbGF5aW5nID09PSBcImZvY3VzZWRcIiB8fCBhdXRvcGxheWluZyA9PT0gXCJwYXVzZWRcIikge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChwbGF5VHlwZSA9PT0gXCJsZWF2ZVwiKSB7XG4gICAgICAgIGlmIChhdXRvcGxheWluZyA9PT0gXCJwYXVzZWRcIiB8fCBhdXRvcGxheWluZyA9PT0gXCJmb2N1c2VkXCIpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAocGxheVR5cGUgPT09IFwiYmx1clwiKSB7XG4gICAgICAgIGlmIChhdXRvcGxheWluZyA9PT0gXCJwYXVzZWRcIiB8fCBhdXRvcGxheWluZyA9PT0gXCJob3ZlcmVkXCIpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgX3RoaXMuYXV0b3BsYXlUaW1lciA9IHNldEludGVydmFsKF90aGlzLnBsYXksIF90aGlzLnByb3BzLmF1dG9wbGF5U3BlZWQgKyA1MCk7XG5cbiAgICAgIF90aGlzLnNldFN0YXRlKHtcbiAgICAgICAgYXV0b3BsYXlpbmc6IFwicGxheWluZ1wiXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJwYXVzZVwiLCBmdW5jdGlvbiAocGF1c2VUeXBlKSB7XG4gICAgICBpZiAoX3RoaXMuYXV0b3BsYXlUaW1lcikge1xuICAgICAgICBjbGVhckludGVydmFsKF90aGlzLmF1dG9wbGF5VGltZXIpO1xuICAgICAgICBfdGhpcy5hdXRvcGxheVRpbWVyID0gbnVsbDtcbiAgICAgIH1cblxuICAgICAgdmFyIGF1dG9wbGF5aW5nID0gX3RoaXMuc3RhdGUuYXV0b3BsYXlpbmc7XG5cbiAgICAgIGlmIChwYXVzZVR5cGUgPT09IFwicGF1c2VkXCIpIHtcbiAgICAgICAgX3RoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgIGF1dG9wbGF5aW5nOiBcInBhdXNlZFwiXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmIChwYXVzZVR5cGUgPT09IFwiZm9jdXNlZFwiKSB7XG4gICAgICAgIGlmIChhdXRvcGxheWluZyA9PT0gXCJob3ZlcmVkXCIgfHwgYXV0b3BsYXlpbmcgPT09IFwicGxheWluZ1wiKSB7XG4gICAgICAgICAgX3RoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgYXV0b3BsYXlpbmc6IFwiZm9jdXNlZFwiXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIHBhdXNlVHlwZSAgaXMgJ2hvdmVyZWQnXG4gICAgICAgIGlmIChhdXRvcGxheWluZyA9PT0gXCJwbGF5aW5nXCIpIHtcbiAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICBhdXRvcGxheWluZzogXCJob3ZlcmVkXCJcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcIm9uRG90c092ZXJcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIF90aGlzLnByb3BzLmF1dG9wbGF5ICYmIF90aGlzLnBhdXNlKFwiaG92ZXJlZFwiKTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJvbkRvdHNMZWF2ZVwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gX3RoaXMucHJvcHMuYXV0b3BsYXkgJiYgX3RoaXMuc3RhdGUuYXV0b3BsYXlpbmcgPT09IFwiaG92ZXJlZFwiICYmIF90aGlzLmF1dG9QbGF5KFwibGVhdmVcIik7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwib25UcmFja092ZXJcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIF90aGlzLnByb3BzLmF1dG9wbGF5ICYmIF90aGlzLnBhdXNlKFwiaG92ZXJlZFwiKTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJvblRyYWNrTGVhdmVcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIF90aGlzLnByb3BzLmF1dG9wbGF5ICYmIF90aGlzLnN0YXRlLmF1dG9wbGF5aW5nID09PSBcImhvdmVyZWRcIiAmJiBfdGhpcy5hdXRvUGxheShcImxlYXZlXCIpO1xuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcIm9uU2xpZGVGb2N1c1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gX3RoaXMucHJvcHMuYXV0b3BsYXkgJiYgX3RoaXMucGF1c2UoXCJmb2N1c2VkXCIpO1xuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcIm9uU2xpZGVCbHVyXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBfdGhpcy5wcm9wcy5hdXRvcGxheSAmJiBfdGhpcy5zdGF0ZS5hdXRvcGxheWluZyA9PT0gXCJmb2N1c2VkXCIgJiYgX3RoaXMuYXV0b1BsYXkoXCJibHVyXCIpO1xuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcInJlbmRlclwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgY2xhc3NOYW1lID0gKDAsIF9jbGFzc25hbWVzW1wiZGVmYXVsdFwiXSkoXCJzbGljay1zbGlkZXJcIiwgX3RoaXMucHJvcHMuY2xhc3NOYW1lLCB7XG4gICAgICAgIFwic2xpY2stdmVydGljYWxcIjogX3RoaXMucHJvcHMudmVydGljYWwsXG4gICAgICAgIFwic2xpY2staW5pdGlhbGl6ZWRcIjogdHJ1ZVxuICAgICAgfSk7XG5cbiAgICAgIHZhciBzcGVjID0gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBfdGhpcy5wcm9wcyksIF90aGlzLnN0YXRlKTtcblxuICAgICAgdmFyIHRyYWNrUHJvcHMgPSAoMCwgX2lubmVyU2xpZGVyVXRpbHMuZXh0cmFjdE9iamVjdCkoc3BlYywgW1wiZmFkZVwiLCBcImNzc0Vhc2VcIiwgXCJzcGVlZFwiLCBcImluZmluaXRlXCIsIFwiY2VudGVyTW9kZVwiLCBcImZvY3VzT25TZWxlY3RcIiwgXCJjdXJyZW50U2xpZGVcIiwgXCJsYXp5TG9hZFwiLCBcImxhenlMb2FkZWRMaXN0XCIsIFwicnRsXCIsIFwic2xpZGVXaWR0aFwiLCBcInNsaWRlSGVpZ2h0XCIsIFwibGlzdEhlaWdodFwiLCBcInZlcnRpY2FsXCIsIFwic2xpZGVzVG9TaG93XCIsIFwic2xpZGVzVG9TY3JvbGxcIiwgXCJzbGlkZUNvdW50XCIsIFwidHJhY2tTdHlsZVwiLCBcInZhcmlhYmxlV2lkdGhcIiwgXCJ1bnNsaWNrXCIsIFwiY2VudGVyUGFkZGluZ1wiLCBcInRhcmdldFNsaWRlXCIsIFwidXNlQ1NTXCJdKTtcbiAgICAgIHZhciBwYXVzZU9uSG92ZXIgPSBfdGhpcy5wcm9wcy5wYXVzZU9uSG92ZXI7XG4gICAgICB0cmFja1Byb3BzID0gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCB0cmFja1Byb3BzKSwge30sIHtcbiAgICAgICAgb25Nb3VzZUVudGVyOiBwYXVzZU9uSG92ZXIgPyBfdGhpcy5vblRyYWNrT3ZlciA6IG51bGwsXG4gICAgICAgIG9uTW91c2VMZWF2ZTogcGF1c2VPbkhvdmVyID8gX3RoaXMub25UcmFja0xlYXZlIDogbnVsbCxcbiAgICAgICAgb25Nb3VzZU92ZXI6IHBhdXNlT25Ib3ZlciA/IF90aGlzLm9uVHJhY2tPdmVyIDogbnVsbCxcbiAgICAgICAgZm9jdXNPblNlbGVjdDogX3RoaXMucHJvcHMuZm9jdXNPblNlbGVjdCAmJiBfdGhpcy5jbGlja2FibGUgPyBfdGhpcy5zZWxlY3RIYW5kbGVyIDogbnVsbFxuICAgICAgfSk7XG4gICAgICB2YXIgZG90cztcblxuICAgICAgaWYgKF90aGlzLnByb3BzLmRvdHMgPT09IHRydWUgJiYgX3RoaXMuc3RhdGUuc2xpZGVDb3VudCA+PSBfdGhpcy5wcm9wcy5zbGlkZXNUb1Nob3cpIHtcbiAgICAgICAgdmFyIGRvdFByb3BzID0gKDAsIF9pbm5lclNsaWRlclV0aWxzLmV4dHJhY3RPYmplY3QpKHNwZWMsIFtcImRvdHNDbGFzc1wiLCBcInNsaWRlQ291bnRcIiwgXCJzbGlkZXNUb1Nob3dcIiwgXCJjdXJyZW50U2xpZGVcIiwgXCJzbGlkZXNUb1Njcm9sbFwiLCBcImNsaWNrSGFuZGxlclwiLCBcImNoaWxkcmVuXCIsIFwiY3VzdG9tUGFnaW5nXCIsIFwiaW5maW5pdGVcIiwgXCJhcHBlbmREb3RzXCJdKTtcbiAgICAgICAgdmFyIHBhdXNlT25Eb3RzSG92ZXIgPSBfdGhpcy5wcm9wcy5wYXVzZU9uRG90c0hvdmVyO1xuICAgICAgICBkb3RQcm9wcyA9IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgZG90UHJvcHMpLCB7fSwge1xuICAgICAgICAgIGNsaWNrSGFuZGxlcjogX3RoaXMuY2hhbmdlU2xpZGUsXG4gICAgICAgICAgb25Nb3VzZUVudGVyOiBwYXVzZU9uRG90c0hvdmVyID8gX3RoaXMub25Eb3RzTGVhdmUgOiBudWxsLFxuICAgICAgICAgIG9uTW91c2VPdmVyOiBwYXVzZU9uRG90c0hvdmVyID8gX3RoaXMub25Eb3RzT3ZlciA6IG51bGwsXG4gICAgICAgICAgb25Nb3VzZUxlYXZlOiBwYXVzZU9uRG90c0hvdmVyID8gX3RoaXMub25Eb3RzTGVhdmUgOiBudWxsXG4gICAgICAgIH0pO1xuICAgICAgICBkb3RzID0gLyojX19QVVJFX18qL19yZWFjdFtcImRlZmF1bHRcIl0uY3JlYXRlRWxlbWVudChfZG90cy5Eb3RzLCBkb3RQcm9wcyk7XG4gICAgICB9XG5cbiAgICAgIHZhciBwcmV2QXJyb3csIG5leHRBcnJvdztcbiAgICAgIHZhciBhcnJvd1Byb3BzID0gKDAsIF9pbm5lclNsaWRlclV0aWxzLmV4dHJhY3RPYmplY3QpKHNwZWMsIFtcImluZmluaXRlXCIsIFwiY2VudGVyTW9kZVwiLCBcImN1cnJlbnRTbGlkZVwiLCBcInNsaWRlQ291bnRcIiwgXCJzbGlkZXNUb1Nob3dcIiwgXCJwcmV2QXJyb3dcIiwgXCJuZXh0QXJyb3dcIl0pO1xuICAgICAgYXJyb3dQcm9wcy5jbGlja0hhbmRsZXIgPSBfdGhpcy5jaGFuZ2VTbGlkZTtcblxuICAgICAgaWYgKF90aGlzLnByb3BzLmFycm93cykge1xuICAgICAgICBwcmV2QXJyb3cgPSAvKiNfX1BVUkVfXyovX3JlYWN0W1wiZGVmYXVsdFwiXS5jcmVhdGVFbGVtZW50KF9hcnJvd3MuUHJldkFycm93LCBhcnJvd1Byb3BzKTtcbiAgICAgICAgbmV4dEFycm93ID0gLyojX19QVVJFX18qL19yZWFjdFtcImRlZmF1bHRcIl0uY3JlYXRlRWxlbWVudChfYXJyb3dzLk5leHRBcnJvdywgYXJyb3dQcm9wcyk7XG4gICAgICB9XG5cbiAgICAgIHZhciB2ZXJ0aWNhbEhlaWdodFN0eWxlID0gbnVsbDtcblxuICAgICAgaWYgKF90aGlzLnByb3BzLnZlcnRpY2FsKSB7XG4gICAgICAgIHZlcnRpY2FsSGVpZ2h0U3R5bGUgPSB7XG4gICAgICAgICAgaGVpZ2h0OiBfdGhpcy5zdGF0ZS5saXN0SGVpZ2h0XG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHZhciBjZW50ZXJQYWRkaW5nU3R5bGUgPSBudWxsO1xuXG4gICAgICBpZiAoX3RoaXMucHJvcHMudmVydGljYWwgPT09IGZhbHNlKSB7XG4gICAgICAgIGlmIChfdGhpcy5wcm9wcy5jZW50ZXJNb2RlID09PSB0cnVlKSB7XG4gICAgICAgICAgY2VudGVyUGFkZGluZ1N0eWxlID0ge1xuICAgICAgICAgICAgcGFkZGluZzogXCIwcHggXCIgKyBfdGhpcy5wcm9wcy5jZW50ZXJQYWRkaW5nXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKF90aGlzLnByb3BzLmNlbnRlck1vZGUgPT09IHRydWUpIHtcbiAgICAgICAgICBjZW50ZXJQYWRkaW5nU3R5bGUgPSB7XG4gICAgICAgICAgICBwYWRkaW5nOiBfdGhpcy5wcm9wcy5jZW50ZXJQYWRkaW5nICsgXCIgMHB4XCJcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHZhciBsaXN0U3R5bGUgPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHZlcnRpY2FsSGVpZ2h0U3R5bGUpLCBjZW50ZXJQYWRkaW5nU3R5bGUpO1xuXG4gICAgICB2YXIgdG91Y2hNb3ZlID0gX3RoaXMucHJvcHMudG91Y2hNb3ZlO1xuICAgICAgdmFyIGxpc3RQcm9wcyA9IHtcbiAgICAgICAgY2xhc3NOYW1lOiBcInNsaWNrLWxpc3RcIixcbiAgICAgICAgc3R5bGU6IGxpc3RTdHlsZSxcbiAgICAgICAgb25DbGljazogX3RoaXMuY2xpY2tIYW5kbGVyLFxuICAgICAgICBvbk1vdXNlRG93bjogdG91Y2hNb3ZlID8gX3RoaXMuc3dpcGVTdGFydCA6IG51bGwsXG4gICAgICAgIG9uTW91c2VNb3ZlOiBfdGhpcy5zdGF0ZS5kcmFnZ2luZyAmJiB0b3VjaE1vdmUgPyBfdGhpcy5zd2lwZU1vdmUgOiBudWxsLFxuICAgICAgICBvbk1vdXNlVXA6IHRvdWNoTW92ZSA/IF90aGlzLnN3aXBlRW5kIDogbnVsbCxcbiAgICAgICAgb25Nb3VzZUxlYXZlOiBfdGhpcy5zdGF0ZS5kcmFnZ2luZyAmJiB0b3VjaE1vdmUgPyBfdGhpcy5zd2lwZUVuZCA6IG51bGwsXG4gICAgICAgIG9uVG91Y2hTdGFydDogdG91Y2hNb3ZlID8gX3RoaXMuc3dpcGVTdGFydCA6IG51bGwsXG4gICAgICAgIG9uVG91Y2hNb3ZlOiBfdGhpcy5zdGF0ZS5kcmFnZ2luZyAmJiB0b3VjaE1vdmUgPyBfdGhpcy5zd2lwZU1vdmUgOiBudWxsLFxuICAgICAgICBvblRvdWNoRW5kOiB0b3VjaE1vdmUgPyBfdGhpcy50b3VjaEVuZCA6IG51bGwsXG4gICAgICAgIG9uVG91Y2hDYW5jZWw6IF90aGlzLnN0YXRlLmRyYWdnaW5nICYmIHRvdWNoTW92ZSA/IF90aGlzLnN3aXBlRW5kIDogbnVsbCxcbiAgICAgICAgb25LZXlEb3duOiBfdGhpcy5wcm9wcy5hY2Nlc3NpYmlsaXR5ID8gX3RoaXMua2V5SGFuZGxlciA6IG51bGxcbiAgICAgIH07XG4gICAgICB2YXIgaW5uZXJTbGlkZXJQcm9wcyA9IHtcbiAgICAgICAgY2xhc3NOYW1lOiBjbGFzc05hbWUsXG4gICAgICAgIGRpcjogXCJsdHJcIixcbiAgICAgICAgc3R5bGU6IF90aGlzLnByb3BzLnN0eWxlXG4gICAgICB9O1xuXG4gICAgICBpZiAoX3RoaXMucHJvcHMudW5zbGljaykge1xuICAgICAgICBsaXN0UHJvcHMgPSB7XG4gICAgICAgICAgY2xhc3NOYW1lOiBcInNsaWNrLWxpc3RcIlxuICAgICAgICB9O1xuICAgICAgICBpbm5lclNsaWRlclByb3BzID0ge1xuICAgICAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovX3JlYWN0W1wiZGVmYXVsdFwiXS5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIGlubmVyU2xpZGVyUHJvcHMsICFfdGhpcy5wcm9wcy51bnNsaWNrID8gcHJldkFycm93IDogXCJcIiwgLyojX19QVVJFX18qL19yZWFjdFtcImRlZmF1bHRcIl0uY3JlYXRlRWxlbWVudChcImRpdlwiLCBfZXh0ZW5kcyh7XG4gICAgICAgIHJlZjogX3RoaXMubGlzdFJlZkhhbmRsZXJcbiAgICAgIH0sIGxpc3RQcm9wcyksIC8qI19fUFVSRV9fKi9fcmVhY3RbXCJkZWZhdWx0XCJdLmNyZWF0ZUVsZW1lbnQoX3RyYWNrLlRyYWNrLCBfZXh0ZW5kcyh7XG4gICAgICAgIHJlZjogX3RoaXMudHJhY2tSZWZIYW5kbGVyXG4gICAgICB9LCB0cmFja1Byb3BzKSwgX3RoaXMucHJvcHMuY2hpbGRyZW4pKSwgIV90aGlzLnByb3BzLnVuc2xpY2sgPyBuZXh0QXJyb3cgOiBcIlwiLCAhX3RoaXMucHJvcHMudW5zbGljayA/IGRvdHMgOiBcIlwiKTtcbiAgICB9KTtcblxuICAgIF90aGlzLmxpc3QgPSBudWxsO1xuICAgIF90aGlzLnRyYWNrID0gbnVsbDtcbiAgICBfdGhpcy5zdGF0ZSA9IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgX2luaXRpYWxTdGF0ZVtcImRlZmF1bHRcIl0pLCB7fSwge1xuICAgICAgY3VycmVudFNsaWRlOiBfdGhpcy5wcm9wcy5pbml0aWFsU2xpZGUsXG4gICAgICBzbGlkZUNvdW50OiBfcmVhY3RbXCJkZWZhdWx0XCJdLkNoaWxkcmVuLmNvdW50KF90aGlzLnByb3BzLmNoaWxkcmVuKVxuICAgIH0pO1xuICAgIF90aGlzLmNhbGxiYWNrVGltZXJzID0gW107XG4gICAgX3RoaXMuY2xpY2thYmxlID0gdHJ1ZTtcbiAgICBfdGhpcy5kZWJvdW5jZWRSZXNpemUgPSBudWxsO1xuXG4gICAgdmFyIHNzclN0YXRlID0gX3RoaXMuc3NySW5pdCgpO1xuXG4gICAgX3RoaXMuc3RhdGUgPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIF90aGlzLnN0YXRlKSwgc3NyU3RhdGUpO1xuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhJbm5lclNsaWRlciwgW3tcbiAgICBrZXk6IFwiZGlkUHJvcHNDaGFuZ2VcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZGlkUHJvcHNDaGFuZ2UocHJldlByb3BzKSB7XG4gICAgICB2YXIgc2V0VHJhY2tTdHlsZSA9IGZhbHNlO1xuXG4gICAgICBmb3IgKHZhciBfaTMgPSAwLCBfT2JqZWN0JGtleXMgPSBPYmplY3Qua2V5cyh0aGlzLnByb3BzKTsgX2kzIDwgX09iamVjdCRrZXlzLmxlbmd0aDsgX2kzKyspIHtcbiAgICAgICAgdmFyIGtleSA9IF9PYmplY3Qka2V5c1tfaTNdO1xuXG4gICAgICAgIGlmICghcHJldlByb3BzLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICBzZXRUcmFja1N0eWxlID0gdHJ1ZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChfdHlwZW9mKHByZXZQcm9wc1trZXldKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgcHJldlByb3BzW2tleV0gPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHByZXZQcm9wc1trZXldICE9PSB0aGlzLnByb3BzW2tleV0pIHtcbiAgICAgICAgICBzZXRUcmFja1N0eWxlID0gdHJ1ZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gc2V0VHJhY2tTdHlsZSB8fCBfcmVhY3RbXCJkZWZhdWx0XCJdLkNoaWxkcmVuLmNvdW50KHRoaXMucHJvcHMuY2hpbGRyZW4pICE9PSBfcmVhY3RbXCJkZWZhdWx0XCJdLkNoaWxkcmVuLmNvdW50KHByZXZQcm9wcy5jaGlsZHJlbik7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIElubmVyU2xpZGVyO1xufShfcmVhY3RbXCJkZWZhdWx0XCJdLkNvbXBvbmVudCk7XG5cbmV4cG9ydHMuSW5uZXJTbGlkZXIgPSBJbm5lclNsaWRlcjsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-slick/lib/inner-slider.js\n"); + +/***/ }), + +/***/ "./node_modules/react-slick/lib/slider.js": +/*!************************************************!*\ + !*** ./node_modules/react-slick/lib/slider.js ***! + \************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _innerSlider = __webpack_require__(/*! ./inner-slider */ \"./node_modules/react-slick/lib/inner-slider.js\");\n\nvar _json2mq = _interopRequireDefault(__webpack_require__(/*! json2mq */ \"./node_modules/json2mq/index.js\"));\n\nvar _defaultProps = _interopRequireDefault(__webpack_require__(/*! ./default-props */ \"./node_modules/react-slick/lib/default-props.js\"));\n\nvar _innerSliderUtils = __webpack_require__(/*! ./utils/innerSliderUtils */ \"./node_modules/react-slick/lib/utils/innerSliderUtils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar enquire = (0, _innerSliderUtils.canUseDOM)() && __webpack_require__(/*! enquire.js */ \"./node_modules/enquire.js/src/index.js\");\n\nvar Slider = /*#__PURE__*/function (_React$Component) {\n _inherits(Slider, _React$Component);\n\n var _super = _createSuper(Slider);\n\n function Slider(props) {\n var _this;\n\n _classCallCheck(this, Slider);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"innerSliderRefHandler\", function (ref) {\n return _this.innerSlider = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n return _this.innerSlider.slickPrev();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n return _this.innerSlider.slickNext();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return _this.innerSlider.slickGoTo(slide, dontAnimate);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPause\", function () {\n return _this.innerSlider.pause(\"paused\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPlay\", function () {\n return _this.innerSlider.autoPlay(\"play\");\n });\n\n _this.state = {\n breakpoint: null\n };\n _this._responsiveMediaHandlers = [];\n return _this;\n }\n\n _createClass(Slider, [{\n key: \"media\",\n value: function media(query, handler) {\n // javascript handler for css media query\n enquire.register(query, handler);\n\n this._responsiveMediaHandlers.push({\n query: query,\n handler: handler\n });\n } // handles responsive breakpoints\n\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n // performance monitoring\n //if (process.env.NODE_ENV !== 'production') {\n //const { whyDidYouUpdate } = require('why-did-you-update')\n //whyDidYouUpdate(React)\n //}\n if (this.props.responsive) {\n var breakpoints = this.props.responsive.map(function (breakpt) {\n return breakpt.breakpoint;\n }); // sort them in increasing order of their numerical value\n\n breakpoints.sort(function (x, y) {\n return x - y;\n });\n breakpoints.forEach(function (breakpoint, index) {\n // media query for each breakpoint\n var bQuery;\n\n if (index === 0) {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: 0,\n maxWidth: breakpoint\n });\n } else {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: breakpoints[index - 1] + 1,\n maxWidth: breakpoint\n });\n } // when not using server side rendering\n\n\n (0, _innerSliderUtils.canUseDOM)() && _this2.media(bQuery, function () {\n _this2.setState({\n breakpoint: breakpoint\n });\n });\n }); // Register media query for full screen. Need to support resize from small to large\n // convert javascript object to media query string\n\n var query = (0, _json2mq[\"default\"])({\n minWidth: breakpoints.slice(-1)[0]\n });\n (0, _innerSliderUtils.canUseDOM)() && this.media(query, function () {\n _this2.setState({\n breakpoint: null\n });\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._responsiveMediaHandlers.forEach(function (obj) {\n enquire.unregister(obj.query, obj.handler);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var settings;\n var newProps;\n\n if (this.state.breakpoint) {\n newProps = this.props.responsive.filter(function (resp) {\n return resp.breakpoint === _this3.state.breakpoint;\n });\n settings = newProps[0].settings === \"unslick\" ? \"unslick\" : _objectSpread(_objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props), newProps[0].settings);\n } else {\n settings = _objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props);\n } // force scrolling by one if centerMode is on\n\n\n if (settings.centerMode) {\n if (settings.slidesToScroll > 1 && \"development\" !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 in centerMode, you are using \".concat(settings.slidesToScroll));\n }\n\n settings.slidesToScroll = 1;\n } // force showing one slide and scrolling by one if the fade mode is on\n\n\n if (settings.fade) {\n if (settings.slidesToShow > 1 && \"development\" !== \"production\") {\n console.warn(\"slidesToShow should be equal to 1 when fade is true, you're using \".concat(settings.slidesToShow));\n }\n\n if (settings.slidesToScroll > 1 && \"development\" !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 when fade is true, you're using \".concat(settings.slidesToScroll));\n }\n\n settings.slidesToShow = 1;\n settings.slidesToScroll = 1;\n } // makes sure that children is an array, even when there is only 1 child\n\n\n var children = _react[\"default\"].Children.toArray(this.props.children); // Children may contain false or null, so we should filter them\n // children may also contain string filled with spaces (in certain cases where we use jsx strings)\n\n\n children = children.filter(function (child) {\n if (typeof child === \"string\") {\n return !!child.trim();\n }\n\n return !!child;\n }); // rows and slidesPerRow logic is handled here\n\n if (settings.variableWidth && (settings.rows > 1 || settings.slidesPerRow > 1)) {\n console.warn(\"variableWidth is not supported in case of rows > 1 or slidesPerRow > 1\");\n settings.variableWidth = false;\n }\n\n var newChildren = [];\n var currentWidth = null;\n\n for (var i = 0; i < children.length; i += settings.rows * settings.slidesPerRow) {\n var newSlide = [];\n\n for (var j = i; j < i + settings.rows * settings.slidesPerRow; j += settings.slidesPerRow) {\n var row = [];\n\n for (var k = j; k < j + settings.slidesPerRow; k += 1) {\n if (settings.variableWidth && children[k].props.style) {\n currentWidth = children[k].props.style.width;\n }\n\n if (k >= children.length) break;\n row.push( /*#__PURE__*/_react[\"default\"].cloneElement(children[k], {\n key: 100 * i + 10 * j + k,\n tabIndex: -1,\n style: {\n width: \"\".concat(100 / settings.slidesPerRow, \"%\"),\n display: \"inline-block\"\n }\n }));\n }\n\n newSlide.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: 10 * i + j\n }, row));\n }\n\n if (settings.variableWidth) {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i,\n style: {\n width: currentWidth\n }\n }, newSlide));\n } else {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i\n }, newSlide));\n }\n }\n\n if (settings === \"unslick\") {\n var className = \"regular slider \" + (this.props.className || \"\");\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: className\n }, children);\n } else if (newChildren.length <= settings.slidesToShow) {\n settings.unslick = true;\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(_innerSlider.InnerSlider, _extends({\n style: this.props.style,\n ref: this.innerSliderRefHandler\n }, settings), newChildren);\n }\n }]);\n\n return Slider;\n}(_react[\"default\"].Component);\n\nexports[\"default\"] = Slider;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2xpY2svbGliL3NsaWRlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixrQkFBa0I7O0FBRWxCLG9DQUFvQyxtQkFBTyxDQUFDLDRDQUFPOztBQUVuRCxtQkFBbUIsbUJBQU8sQ0FBQyxzRUFBZ0I7O0FBRTNDLHNDQUFzQyxtQkFBTyxDQUFDLGdEQUFTOztBQUV2RCwyQ0FBMkMsbUJBQU8sQ0FBQyx3RUFBaUI7O0FBRXBFLHdCQUF3QixtQkFBTyxDQUFDLDBGQUEwQjs7QUFFMUQsdUNBQXVDLHVDQUF1Qzs7QUFFOUUsd0JBQXdCLDJCQUEyQiwyRUFBMkUsa0NBQWtDLHdCQUF3QixPQUFPLGtDQUFrQyxtSUFBbUk7O0FBRXBXLHNCQUFzQixnREFBZ0QsZ0JBQWdCLHNCQUFzQixPQUFPLDJCQUEyQiwwQkFBMEIseURBQXlELGlDQUFpQyxrQkFBa0I7O0FBRXBSLDJDQUEyQyxnQ0FBZ0Msb0NBQW9DLG9EQUFvRCw4REFBOEQsaUVBQWlFLEdBQUcsa0NBQWtDOztBQUV2VSxpQ0FBaUMsZ0JBQWdCLHNCQUFzQixPQUFPLHVEQUF1RCxhQUFhLHVEQUF1RCw0Q0FBNEMsS0FBSyw2Q0FBNkMsNkVBQTZFLE9BQU8saURBQWlELG1GQUFtRixPQUFPOztBQUV0Z0Isa0RBQWtELDBDQUEwQzs7QUFFNUYsNENBQTRDLGdCQUFnQixrQkFBa0IsT0FBTywyQkFBMkIsd0RBQXdELGdDQUFnQyx1REFBdUQ7O0FBRS9QLDhEQUE4RCxzRUFBc0UsOERBQThEOztBQUVsTSwyQ0FBMkMsK0RBQStELDZFQUE2RSx5RUFBeUUsZUFBZSx1REFBdUQsR0FBRzs7QUFFelUsaUNBQWlDLDRFQUE0RSxpQkFBaUIsYUFBYTs7QUFFM0ksaUNBQWlDLDZEQUE2RCx5Q0FBeUMsOENBQThDLGlDQUFpQyxtREFBbUQsMkRBQTJELE9BQU8seUNBQXlDOztBQUVwWCxrREFBa0QsMEVBQTBFLGVBQWU7O0FBRTNJLHdDQUF3Qyx1QkFBdUIseUZBQXlGOztBQUV4Six1Q0FBdUMsd0VBQXdFLDBDQUEwQyw4Q0FBOEMsTUFBTSx1RUFBdUUsSUFBSSxlQUFlLFlBQVk7O0FBRW5ULDhCQUE4QixnR0FBZ0csbURBQW1EOztBQUVqTCw0Q0FBNEMsa0JBQWtCLGtDQUFrQyxvRUFBb0UsS0FBSyxPQUFPLG9CQUFvQjs7QUFFcE0sb0RBQW9ELG1CQUFPLENBQUMsMERBQVk7O0FBRXhFO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxNQUFNOztBQUVOLEdBQUc7QUFDSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGdCQUFnQixrQkFBa0I7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVMsR0FBRzs7QUFFWjtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYixZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiLFlBQVk7OztBQUdaO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYixXQUFXO0FBQ1gsU0FBUyxHQUFHO0FBQ1o7O0FBRUE7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1gsU0FBUztBQUNUO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULGdIQUFnSDtBQUNoSCxRQUFRO0FBQ1IsaURBQWlEO0FBQ2pELFFBQVE7OztBQUdSO0FBQ0EsMkNBQTJDLGFBQW9CO0FBQy9EO0FBQ0E7O0FBRUE7QUFDQSxRQUFROzs7QUFHUjtBQUNBLHlDQUF5QyxhQUFvQjtBQUM3RDtBQUNBOztBQUVBLDJDQUEyQyxhQUFvQjtBQUMvRDtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFROzs7QUFHUiw4RUFBOEU7QUFDOUU7OztBQUdBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsT0FBTyxHQUFHOztBQUVWO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEsc0JBQXNCLHFCQUFxQjtBQUMzQzs7QUFFQSx3QkFBd0IsK0NBQStDO0FBQ3ZFOztBQUVBLDBCQUEwQiwrQkFBK0I7QUFDekQ7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7O0FBRUE7QUFDQTtBQUNBLFdBQVc7QUFDWDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1gsVUFBVTtBQUNWO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxRQUFRO0FBQ1I7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSxHQUFHOztBQUVIO0FBQ0EsQ0FBQzs7QUFFRCxrQkFBa0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXNsaWNrL2xpYi9zbGlkZXIuanM/ZDRhYSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xuXG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX2lubmVyU2xpZGVyID0gcmVxdWlyZShcIi4vaW5uZXItc2xpZGVyXCIpO1xuXG52YXIgX2pzb24ybXEgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJqc29uMm1xXCIpKTtcblxudmFyIF9kZWZhdWx0UHJvcHMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL2RlZmF1bHQtcHJvcHNcIikpO1xuXG52YXIgX2lubmVyU2xpZGVyVXRpbHMgPSByZXF1aXJlKFwiLi91dGlscy9pbm5lclNsaWRlclV0aWxzXCIpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiOyBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiB0eXBlb2Ygb2JqOyB9OyB9IGVsc2UgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7IH07IH0gcmV0dXJuIF90eXBlb2Yob2JqKTsgfVxuXG5mdW5jdGlvbiBfZXh0ZW5kcygpIHsgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9OyByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfVxuXG5mdW5jdGlvbiBvd25LZXlzKG9iamVjdCwgZW51bWVyYWJsZU9ubHkpIHsgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhvYmplY3QpOyBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scykgeyB2YXIgc3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMob2JqZWN0KTsgaWYgKGVudW1lcmFibGVPbmx5KSBzeW1ib2xzID0gc3ltYm9scy5maWx0ZXIoZnVuY3Rpb24gKHN5bSkgeyByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmplY3QsIHN5bSkuZW51bWVyYWJsZTsgfSk7IGtleXMucHVzaC5hcHBseShrZXlzLCBzeW1ib2xzKTsgfSByZXR1cm4ga2V5czsgfVxuXG5mdW5jdGlvbiBfb2JqZWN0U3ByZWFkKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldICE9IG51bGwgPyBhcmd1bWVudHNbaV0gOiB7fTsgaWYgKGkgJSAyKSB7IG93bktleXMoT2JqZWN0KHNvdXJjZSksIHRydWUpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgeyBfZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHNvdXJjZVtrZXldKTsgfSk7IH0gZWxzZSBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMpIHsgT2JqZWN0LmRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhzb3VyY2UpKTsgfSBlbHNlIHsgb3duS2V5cyhPYmplY3Qoc291cmNlKSkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzb3VyY2UsIGtleSkpOyB9KTsgfSB9IHJldHVybiB0YXJnZXQ7IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfVxuXG5mdW5jdGlvbiBfY3JlYXRlQ2xhc3MoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgX3NldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKTsgfVxuXG5mdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBfc2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgby5fX3Byb3RvX18gPSBwOyByZXR1cm4gbzsgfTsgcmV0dXJuIF9zZXRQcm90b3R5cGVPZihvLCBwKTsgfVxuXG5mdW5jdGlvbiBfY3JlYXRlU3VwZXIoRGVyaXZlZCkgeyB2YXIgaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCA9IF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKTsgcmV0dXJuIGZ1bmN0aW9uIF9jcmVhdGVTdXBlckludGVybmFsKCkgeyB2YXIgU3VwZXIgPSBfZ2V0UHJvdG90eXBlT2YoRGVyaXZlZCksIHJlc3VsdDsgaWYgKGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QpIHsgdmFyIE5ld1RhcmdldCA9IF9nZXRQcm90b3R5cGVPZih0aGlzKS5jb25zdHJ1Y3RvcjsgcmVzdWx0ID0gUmVmbGVjdC5jb25zdHJ1Y3QoU3VwZXIsIGFyZ3VtZW50cywgTmV3VGFyZ2V0KTsgfSBlbHNlIHsgcmVzdWx0ID0gU3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfSByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgcmVzdWx0KTsgfTsgfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmIChjYWxsICYmIChfdHlwZW9mKGNhbGwpID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpKSB7IHJldHVybiBjYWxsOyB9IHJldHVybiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpOyB9XG5cbmZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikgeyBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gc2VsZjsgfVxuXG5mdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkgeyBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwidW5kZWZpbmVkXCIgfHwgIVJlZmxlY3QuY29uc3RydWN0KSByZXR1cm4gZmFsc2U7IGlmIChSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKSByZXR1cm4gZmFsc2U7IGlmICh0eXBlb2YgUHJveHkgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHRydWU7IHRyeSB7IERhdGUucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoRGF0ZSwgW10sIGZ1bmN0aW9uICgpIHt9KSk7IHJldHVybiB0cnVlOyB9IGNhdGNoIChlKSB7IHJldHVybiBmYWxzZTsgfSB9XG5cbmZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IF9nZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5nZXRQcm90b3R5cGVPZiA6IGZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IHJldHVybiBvLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2Yobyk7IH07IHJldHVybiBfZ2V0UHJvdG90eXBlT2Yobyk7IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KG9iaiwga2V5LCB2YWx1ZSkgeyBpZiAoa2V5IGluIG9iaikgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHsgdmFsdWU6IHZhbHVlLCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlIH0pOyB9IGVsc2UgeyBvYmpba2V5XSA9IHZhbHVlOyB9IHJldHVybiBvYmo7IH1cblxudmFyIGVucXVpcmUgPSAoMCwgX2lubmVyU2xpZGVyVXRpbHMuY2FuVXNlRE9NKSgpICYmIHJlcXVpcmUoXCJlbnF1aXJlLmpzXCIpO1xuXG52YXIgU2xpZGVyID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhTbGlkZXIsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIHZhciBfc3VwZXIgPSBfY3JlYXRlU3VwZXIoU2xpZGVyKTtcblxuICBmdW5jdGlvbiBTbGlkZXIocHJvcHMpIHtcbiAgICB2YXIgX3RoaXM7XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgU2xpZGVyKTtcblxuICAgIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgcHJvcHMpO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcImlubmVyU2xpZGVyUmVmSGFuZGxlclwiLCBmdW5jdGlvbiAocmVmKSB7XG4gICAgICByZXR1cm4gX3RoaXMuaW5uZXJTbGlkZXIgPSByZWY7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwic2xpY2tQcmV2XCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBfdGhpcy5pbm5lclNsaWRlci5zbGlja1ByZXYoKTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJzbGlja05leHRcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIF90aGlzLmlubmVyU2xpZGVyLnNsaWNrTmV4dCgpO1xuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcInNsaWNrR29Ub1wiLCBmdW5jdGlvbiAoc2xpZGUpIHtcbiAgICAgIHZhciBkb250QW5pbWF0ZSA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogZmFsc2U7XG4gICAgICByZXR1cm4gX3RoaXMuaW5uZXJTbGlkZXIuc2xpY2tHb1RvKHNsaWRlLCBkb250QW5pbWF0ZSk7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwic2xpY2tQYXVzZVwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gX3RoaXMuaW5uZXJTbGlkZXIucGF1c2UoXCJwYXVzZWRcIik7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwic2xpY2tQbGF5XCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBfdGhpcy5pbm5lclNsaWRlci5hdXRvUGxheShcInBsYXlcIik7XG4gICAgfSk7XG5cbiAgICBfdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGJyZWFrcG9pbnQ6IG51bGxcbiAgICB9O1xuICAgIF90aGlzLl9yZXNwb25zaXZlTWVkaWFIYW5kbGVycyA9IFtdO1xuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhTbGlkZXIsIFt7XG4gICAga2V5OiBcIm1lZGlhXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIG1lZGlhKHF1ZXJ5LCBoYW5kbGVyKSB7XG4gICAgICAvLyBqYXZhc2NyaXB0IGhhbmRsZXIgZm9yICBjc3MgbWVkaWEgcXVlcnlcbiAgICAgIGVucXVpcmUucmVnaXN0ZXIocXVlcnksIGhhbmRsZXIpO1xuXG4gICAgICB0aGlzLl9yZXNwb25zaXZlTWVkaWFIYW5kbGVycy5wdXNoKHtcbiAgICAgICAgcXVlcnk6IHF1ZXJ5LFxuICAgICAgICBoYW5kbGVyOiBoYW5kbGVyXG4gICAgICB9KTtcbiAgICB9IC8vIGhhbmRsZXMgcmVzcG9uc2l2ZSBicmVha3BvaW50c1xuXG4gIH0sIHtcbiAgICBrZXk6IFwiY29tcG9uZW50RGlkTW91bnRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgLy8gcGVyZm9ybWFuY2UgbW9uaXRvcmluZ1xuICAgICAgLy9pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgLy9jb25zdCB7IHdoeURpZFlvdVVwZGF0ZSB9ID0gcmVxdWlyZSgnd2h5LWRpZC15b3UtdXBkYXRlJylcbiAgICAgIC8vd2h5RGlkWW91VXBkYXRlKFJlYWN0KVxuICAgICAgLy99XG4gICAgICBpZiAodGhpcy5wcm9wcy5yZXNwb25zaXZlKSB7XG4gICAgICAgIHZhciBicmVha3BvaW50cyA9IHRoaXMucHJvcHMucmVzcG9uc2l2ZS5tYXAoZnVuY3Rpb24gKGJyZWFrcHQpIHtcbiAgICAgICAgICByZXR1cm4gYnJlYWtwdC5icmVha3BvaW50O1xuICAgICAgICB9KTsgLy8gc29ydCB0aGVtIGluIGluY3JlYXNpbmcgb3JkZXIgb2YgdGhlaXIgbnVtZXJpY2FsIHZhbHVlXG5cbiAgICAgICAgYnJlYWtwb2ludHMuc29ydChmdW5jdGlvbiAoeCwgeSkge1xuICAgICAgICAgIHJldHVybiB4IC0geTtcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrcG9pbnRzLmZvckVhY2goZnVuY3Rpb24gKGJyZWFrcG9pbnQsIGluZGV4KSB7XG4gICAgICAgICAgLy8gbWVkaWEgcXVlcnkgZm9yIGVhY2ggYnJlYWtwb2ludFxuICAgICAgICAgIHZhciBiUXVlcnk7XG5cbiAgICAgICAgICBpZiAoaW5kZXggPT09IDApIHtcbiAgICAgICAgICAgIGJRdWVyeSA9ICgwLCBfanNvbjJtcVtcImRlZmF1bHRcIl0pKHtcbiAgICAgICAgICAgICAgbWluV2lkdGg6IDAsXG4gICAgICAgICAgICAgIG1heFdpZHRoOiBicmVha3BvaW50XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYlF1ZXJ5ID0gKDAsIF9qc29uMm1xW1wiZGVmYXVsdFwiXSkoe1xuICAgICAgICAgICAgICBtaW5XaWR0aDogYnJlYWtwb2ludHNbaW5kZXggLSAxXSArIDEsXG4gICAgICAgICAgICAgIG1heFdpZHRoOiBicmVha3BvaW50XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IC8vIHdoZW4gbm90IHVzaW5nIHNlcnZlciBzaWRlIHJlbmRlcmluZ1xuXG5cbiAgICAgICAgICAoMCwgX2lubmVyU2xpZGVyVXRpbHMuY2FuVXNlRE9NKSgpICYmIF90aGlzMi5tZWRpYShiUXVlcnksIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIF90aGlzMi5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAgIGJyZWFrcG9pbnQ6IGJyZWFrcG9pbnRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTsgLy8gUmVnaXN0ZXIgbWVkaWEgcXVlcnkgZm9yIGZ1bGwgc2NyZWVuLiBOZWVkIHRvIHN1cHBvcnQgcmVzaXplIGZyb20gc21hbGwgdG8gbGFyZ2VcbiAgICAgICAgLy8gY29udmVydCBqYXZhc2NyaXB0IG9iamVjdCB0byBtZWRpYSBxdWVyeSBzdHJpbmdcblxuICAgICAgICB2YXIgcXVlcnkgPSAoMCwgX2pzb24ybXFbXCJkZWZhdWx0XCJdKSh7XG4gICAgICAgICAgbWluV2lkdGg6IGJyZWFrcG9pbnRzLnNsaWNlKC0xKVswXVxuICAgICAgICB9KTtcbiAgICAgICAgKDAsIF9pbm5lclNsaWRlclV0aWxzLmNhblVzZURPTSkoKSAmJiB0aGlzLm1lZGlhKHF1ZXJ5LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgX3RoaXMyLnNldFN0YXRlKHtcbiAgICAgICAgICAgIGJyZWFrcG9pbnQ6IG51bGxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImNvbXBvbmVudFdpbGxVbm1vdW50XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgdGhpcy5fcmVzcG9uc2l2ZU1lZGlhSGFuZGxlcnMuZm9yRWFjaChmdW5jdGlvbiAob2JqKSB7XG4gICAgICAgIGVucXVpcmUudW5yZWdpc3RlcihvYmoucXVlcnksIG9iai5oYW5kbGVyKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW5kZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgdmFyIF90aGlzMyA9IHRoaXM7XG5cbiAgICAgIHZhciBzZXR0aW5ncztcbiAgICAgIHZhciBuZXdQcm9wcztcblxuICAgICAgaWYgKHRoaXMuc3RhdGUuYnJlYWtwb2ludCkge1xuICAgICAgICBuZXdQcm9wcyA9IHRoaXMucHJvcHMucmVzcG9uc2l2ZS5maWx0ZXIoZnVuY3Rpb24gKHJlc3ApIHtcbiAgICAgICAgICByZXR1cm4gcmVzcC5icmVha3BvaW50ID09PSBfdGhpczMuc3RhdGUuYnJlYWtwb2ludDtcbiAgICAgICAgfSk7XG4gICAgICAgIHNldHRpbmdzID0gbmV3UHJvcHNbMF0uc2V0dGluZ3MgPT09IFwidW5zbGlja1wiID8gXCJ1bnNsaWNrXCIgOiBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgX2RlZmF1bHRQcm9wc1tcImRlZmF1bHRcIl0pLCB0aGlzLnByb3BzKSwgbmV3UHJvcHNbMF0uc2V0dGluZ3MpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0dGluZ3MgPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIF9kZWZhdWx0UHJvcHNbXCJkZWZhdWx0XCJdKSwgdGhpcy5wcm9wcyk7XG4gICAgICB9IC8vIGZvcmNlIHNjcm9sbGluZyBieSBvbmUgaWYgY2VudGVyTW9kZSBpcyBvblxuXG5cbiAgICAgIGlmIChzZXR0aW5ncy5jZW50ZXJNb2RlKSB7XG4gICAgICAgIGlmIChzZXR0aW5ncy5zbGlkZXNUb1Njcm9sbCA+IDEgJiYgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFwic2xpZGVzVG9TY3JvbGwgc2hvdWxkIGJlIGVxdWFsIHRvIDEgaW4gY2VudGVyTW9kZSwgeW91IGFyZSB1c2luZyBcIi5jb25jYXQoc2V0dGluZ3Muc2xpZGVzVG9TY3JvbGwpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldHRpbmdzLnNsaWRlc1RvU2Nyb2xsID0gMTtcbiAgICAgIH0gLy8gZm9yY2Ugc2hvd2luZyBvbmUgc2xpZGUgYW5kIHNjcm9sbGluZyBieSBvbmUgaWYgdGhlIGZhZGUgbW9kZSBpcyBvblxuXG5cbiAgICAgIGlmIChzZXR0aW5ncy5mYWRlKSB7XG4gICAgICAgIGlmIChzZXR0aW5ncy5zbGlkZXNUb1Nob3cgPiAxICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcInNsaWRlc1RvU2hvdyBzaG91bGQgYmUgZXF1YWwgdG8gMSB3aGVuIGZhZGUgaXMgdHJ1ZSwgeW91J3JlIHVzaW5nIFwiLmNvbmNhdChzZXR0aW5ncy5zbGlkZXNUb1Nob3cpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzZXR0aW5ncy5zbGlkZXNUb1Njcm9sbCA+IDEgJiYgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFwic2xpZGVzVG9TY3JvbGwgc2hvdWxkIGJlIGVxdWFsIHRvIDEgd2hlbiBmYWRlIGlzIHRydWUsIHlvdSdyZSB1c2luZyBcIi5jb25jYXQoc2V0dGluZ3Muc2xpZGVzVG9TY3JvbGwpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldHRpbmdzLnNsaWRlc1RvU2hvdyA9IDE7XG4gICAgICAgIHNldHRpbmdzLnNsaWRlc1RvU2Nyb2xsID0gMTtcbiAgICAgIH0gLy8gbWFrZXMgc3VyZSB0aGF0IGNoaWxkcmVuIGlzIGFuIGFycmF5LCBldmVuIHdoZW4gdGhlcmUgaXMgb25seSAxIGNoaWxkXG5cblxuICAgICAgdmFyIGNoaWxkcmVuID0gX3JlYWN0W1wiZGVmYXVsdFwiXS5DaGlsZHJlbi50b0FycmF5KHRoaXMucHJvcHMuY2hpbGRyZW4pOyAvLyBDaGlsZHJlbiBtYXkgY29udGFpbiBmYWxzZSBvciBudWxsLCBzbyB3ZSBzaG91bGQgZmlsdGVyIHRoZW1cbiAgICAgIC8vIGNoaWxkcmVuIG1heSBhbHNvIGNvbnRhaW4gc3RyaW5nIGZpbGxlZCB3aXRoIHNwYWNlcyAoaW4gY2VydGFpbiBjYXNlcyB3aGVyZSB3ZSB1c2UganN4IHN0cmluZ3MpXG5cblxuICAgICAgY2hpbGRyZW4gPSBjaGlsZHJlbi5maWx0ZXIoZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgICAgIGlmICh0eXBlb2YgY2hpbGQgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICByZXR1cm4gISFjaGlsZC50cmltKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gISFjaGlsZDtcbiAgICAgIH0pOyAvLyByb3dzIGFuZCBzbGlkZXNQZXJSb3cgbG9naWMgaXMgaGFuZGxlZCBoZXJlXG5cbiAgICAgIGlmIChzZXR0aW5ncy52YXJpYWJsZVdpZHRoICYmIChzZXR0aW5ncy5yb3dzID4gMSB8fCBzZXR0aW5ncy5zbGlkZXNQZXJSb3cgPiAxKSkge1xuICAgICAgICBjb25zb2xlLndhcm4oXCJ2YXJpYWJsZVdpZHRoIGlzIG5vdCBzdXBwb3J0ZWQgaW4gY2FzZSBvZiByb3dzID4gMSBvciBzbGlkZXNQZXJSb3cgPiAxXCIpO1xuICAgICAgICBzZXR0aW5ncy52YXJpYWJsZVdpZHRoID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIHZhciBuZXdDaGlsZHJlbiA9IFtdO1xuICAgICAgdmFyIGN1cnJlbnRXaWR0aCA9IG51bGw7XG5cbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpICs9IHNldHRpbmdzLnJvd3MgKiBzZXR0aW5ncy5zbGlkZXNQZXJSb3cpIHtcbiAgICAgICAgdmFyIG5ld1NsaWRlID0gW107XG5cbiAgICAgICAgZm9yICh2YXIgaiA9IGk7IGogPCBpICsgc2V0dGluZ3Mucm93cyAqIHNldHRpbmdzLnNsaWRlc1BlclJvdzsgaiArPSBzZXR0aW5ncy5zbGlkZXNQZXJSb3cpIHtcbiAgICAgICAgICB2YXIgcm93ID0gW107XG5cbiAgICAgICAgICBmb3IgKHZhciBrID0gajsgayA8IGogKyBzZXR0aW5ncy5zbGlkZXNQZXJSb3c7IGsgKz0gMSkge1xuICAgICAgICAgICAgaWYgKHNldHRpbmdzLnZhcmlhYmxlV2lkdGggJiYgY2hpbGRyZW5ba10ucHJvcHMuc3R5bGUpIHtcbiAgICAgICAgICAgICAgY3VycmVudFdpZHRoID0gY2hpbGRyZW5ba10ucHJvcHMuc3R5bGUud2lkdGg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChrID49IGNoaWxkcmVuLmxlbmd0aCkgYnJlYWs7XG4gICAgICAgICAgICByb3cucHVzaCggLyojX19QVVJFX18qL19yZWFjdFtcImRlZmF1bHRcIl0uY2xvbmVFbGVtZW50KGNoaWxkcmVuW2tdLCB7XG4gICAgICAgICAgICAgIGtleTogMTAwICogaSArIDEwICogaiArIGssXG4gICAgICAgICAgICAgIHRhYkluZGV4OiAtMSxcbiAgICAgICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogXCJcIi5jb25jYXQoMTAwIC8gc2V0dGluZ3Muc2xpZGVzUGVyUm93LCBcIiVcIiksXG4gICAgICAgICAgICAgICAgZGlzcGxheTogXCJpbmxpbmUtYmxvY2tcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbmV3U2xpZGUucHVzaCggLyojX19QVVJFX18qL19yZWFjdFtcImRlZmF1bHRcIl0uY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgICAgICBrZXk6IDEwICogaSArIGpcbiAgICAgICAgICB9LCByb3cpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzZXR0aW5ncy52YXJpYWJsZVdpZHRoKSB7XG4gICAgICAgICAgbmV3Q2hpbGRyZW4ucHVzaCggLyojX19QVVJFX18qL19yZWFjdFtcImRlZmF1bHRcIl0uY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgICAgICBrZXk6IGksXG4gICAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgICB3aWR0aDogY3VycmVudFdpZHRoXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSwgbmV3U2xpZGUpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBuZXdDaGlsZHJlbi5wdXNoKCAvKiNfX1BVUkVfXyovX3JlYWN0W1wiZGVmYXVsdFwiXS5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgICAgICAgIGtleTogaVxuICAgICAgICAgIH0sIG5ld1NsaWRlKSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHNldHRpbmdzID09PSBcInVuc2xpY2tcIikge1xuICAgICAgICB2YXIgY2xhc3NOYW1lID0gXCJyZWd1bGFyIHNsaWRlciBcIiArICh0aGlzLnByb3BzLmNsYXNzTmFtZSB8fCBcIlwiKTtcbiAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9fcmVhY3RbXCJkZWZhdWx0XCJdLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lXG4gICAgICAgIH0sIGNoaWxkcmVuKTtcbiAgICAgIH0gZWxzZSBpZiAobmV3Q2hpbGRyZW4ubGVuZ3RoIDw9IHNldHRpbmdzLnNsaWRlc1RvU2hvdykge1xuICAgICAgICBzZXR0aW5ncy51bnNsaWNrID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9fcmVhY3RbXCJkZWZhdWx0XCJdLmNyZWF0ZUVsZW1lbnQoX2lubmVyU2xpZGVyLklubmVyU2xpZGVyLCBfZXh0ZW5kcyh7XG4gICAgICAgIHN0eWxlOiB0aGlzLnByb3BzLnN0eWxlLFxuICAgICAgICByZWY6IHRoaXMuaW5uZXJTbGlkZXJSZWZIYW5kbGVyXG4gICAgICB9LCBzZXR0aW5ncyksIG5ld0NoaWxkcmVuKTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gU2xpZGVyO1xufShfcmVhY3RbXCJkZWZhdWx0XCJdLkNvbXBvbmVudCk7XG5cbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gU2xpZGVyOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-slick/lib/slider.js\n"); + +/***/ }), + +/***/ "./node_modules/react-slick/lib/track.js": +/*!***********************************************!*\ + !*** ./node_modules/react-slick/lib/track.js ***! + \***********************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.Track = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _classnames = _interopRequireDefault(__webpack_require__(/*! classnames */ \"./node_modules/classnames/index.js\"));\n\nvar _innerSliderUtils = __webpack_require__(/*! ./utils/innerSliderUtils */ \"./node_modules/react-slick/lib/utils/innerSliderUtils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// given specifications/props for a slide, fetch all the classes that need to be applied to the slide\nvar getSlideClasses = function getSlideClasses(spec) {\n var slickActive, slickCenter, slickCloned;\n var centerOffset, index;\n\n if (spec.rtl) {\n index = spec.slideCount - 1 - spec.index;\n } else {\n index = spec.index;\n }\n\n slickCloned = index < 0 || index >= spec.slideCount;\n\n if (spec.centerMode) {\n centerOffset = Math.floor(spec.slidesToShow / 2);\n slickCenter = (index - spec.currentSlide) % spec.slideCount === 0;\n\n if (index > spec.currentSlide - centerOffset - 1 && index <= spec.currentSlide + centerOffset) {\n slickActive = true;\n }\n } else {\n slickActive = spec.currentSlide <= index && index < spec.currentSlide + spec.slidesToShow;\n }\n\n var focusedSlide;\n\n if (spec.targetSlide < 0) {\n focusedSlide = spec.targetSlide + spec.slideCount;\n } else if (spec.targetSlide >= spec.slideCount) {\n focusedSlide = spec.targetSlide - spec.slideCount;\n } else {\n focusedSlide = spec.targetSlide;\n }\n\n var slickCurrent = index === focusedSlide;\n return {\n \"slick-slide\": true,\n \"slick-active\": slickActive,\n \"slick-center\": slickCenter,\n \"slick-cloned\": slickCloned,\n \"slick-current\": slickCurrent // dubious in case of RTL\n\n };\n};\n\nvar getSlideStyle = function getSlideStyle(spec) {\n var style = {};\n\n if (spec.variableWidth === undefined || spec.variableWidth === false) {\n style.width = spec.slideWidth;\n }\n\n if (spec.fade) {\n style.position = \"relative\";\n\n if (spec.vertical) {\n style.top = -spec.index * parseInt(spec.slideHeight);\n } else {\n style.left = -spec.index * parseInt(spec.slideWidth);\n }\n\n style.opacity = spec.currentSlide === spec.index ? 1 : 0;\n\n if (spec.useCSS) {\n style.transition = \"opacity \" + spec.speed + \"ms \" + spec.cssEase + \", \" + \"visibility \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n\n return style;\n};\n\nvar getKey = function getKey(child, fallbackKey) {\n return child.key || fallbackKey;\n};\n\nvar renderSlides = function renderSlides(spec) {\n var key;\n var slides = [];\n var preCloneSlides = [];\n var postCloneSlides = [];\n\n var childrenCount = _react[\"default\"].Children.count(spec.children);\n\n var startIndex = (0, _innerSliderUtils.lazyStartIndex)(spec);\n var endIndex = (0, _innerSliderUtils.lazyEndIndex)(spec);\n\n _react[\"default\"].Children.forEach(spec.children, function (elem, index) {\n var child;\n var childOnClickOptions = {\n message: \"children\",\n index: index,\n slidesToScroll: spec.slidesToScroll,\n currentSlide: spec.currentSlide\n }; // in case of lazyLoad, whether or not we want to fetch the slide\n\n if (!spec.lazyLoad || spec.lazyLoad && spec.lazyLoadedList.indexOf(index) >= 0) {\n child = elem;\n } else {\n child = /*#__PURE__*/_react[\"default\"].createElement(\"div\", null);\n }\n\n var childStyle = getSlideStyle(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n }));\n var slideClass = child.props.className || \"\";\n var slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n })); // push a cloned element of the desired slide\n\n slides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"original\" + getKey(child, index),\n \"data-index\": index,\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n tabIndex: \"-1\",\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({\n outline: \"none\"\n }, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n })); // if slide needs to be precloned or postcloned\n\n if (spec.infinite && spec.fade === false) {\n var preCloneNo = childrenCount - index;\n\n if (preCloneNo <= (0, _innerSliderUtils.getPreClones)(spec) && childrenCount !== spec.slidesToShow) {\n key = -preCloneNo;\n\n if (key >= startIndex) {\n child = elem;\n }\n\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n preCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"precloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n\n if (childrenCount !== spec.slidesToShow) {\n key = childrenCount + index;\n\n if (key < endIndex) {\n child = elem;\n }\n\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n postCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"postcloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n }\n });\n\n if (spec.rtl) {\n return preCloneSlides.concat(slides, postCloneSlides).reverse();\n } else {\n return preCloneSlides.concat(slides, postCloneSlides);\n }\n};\n\nvar Track = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Track, _React$PureComponent);\n\n var _super = _createSuper(Track);\n\n function Track() {\n var _this;\n\n _classCallCheck(this, Track);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"node\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"handleRef\", function (ref) {\n _this.node = ref;\n });\n\n return _this;\n }\n\n _createClass(Track, [{\n key: \"render\",\n value: function render() {\n var slides = renderSlides(this.props);\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave;\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: this.handleRef,\n className: \"slick-track\",\n style: this.props.trackStyle\n }, mouseEvents), slides);\n }\n }]);\n\n return Track;\n}(_react[\"default\"].PureComponent);\n\nexports.Track = Track;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2xpY2svbGliL3RyYWNrLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGFBQWE7O0FBRWIsb0NBQW9DLG1CQUFPLENBQUMsNENBQU87O0FBRW5ELHlDQUF5QyxtQkFBTyxDQUFDLHNEQUFZOztBQUU3RCx3QkFBd0IsbUJBQU8sQ0FBQywwRkFBMEI7O0FBRTFELHVDQUF1Qyx1Q0FBdUM7O0FBRTlFLHdCQUF3QiwyQkFBMkIsMkVBQTJFLGtDQUFrQyx3QkFBd0IsT0FBTyxrQ0FBa0MsbUlBQW1JOztBQUVwVyxzQkFBc0IsZ0RBQWdELGdCQUFnQixzQkFBc0IsT0FBTywyQkFBMkIsMEJBQTBCLHlEQUF5RCxpQ0FBaUMsa0JBQWtCOztBQUVwUixrREFBa0QsMENBQTBDOztBQUU1Riw0Q0FBNEMsZ0JBQWdCLGtCQUFrQixPQUFPLDJCQUEyQix3REFBd0QsZ0NBQWdDLHVEQUF1RDs7QUFFL1AsOERBQThELHNFQUFzRSw4REFBOEQ7O0FBRWxNLDJDQUEyQywrREFBK0QsNkVBQTZFLHlFQUF5RSxlQUFlLHVEQUF1RCxHQUFHOztBQUV6VSxpQ0FBaUMsNEVBQTRFLGlCQUFpQixhQUFhOztBQUUzSSxpQ0FBaUMsNkRBQTZELHlDQUF5Qyw4Q0FBOEMsaUNBQWlDLG1EQUFtRCwyREFBMkQsT0FBTyx5Q0FBeUM7O0FBRXBYLGtEQUFrRCwwRUFBMEUsZUFBZTs7QUFFM0ksd0NBQXdDLHVCQUF1Qix5RkFBeUY7O0FBRXhKLHVDQUF1Qyx3RUFBd0UsMENBQTBDLDhDQUE4QyxNQUFNLHVFQUF1RSxJQUFJLGVBQWUsWUFBWTs7QUFFblQsOEJBQThCLGdHQUFnRyxtREFBbUQ7O0FBRWpMLDJDQUEyQyxnQ0FBZ0Msb0NBQW9DLG9EQUFvRCw4REFBOEQsaUVBQWlFLEdBQUcsa0NBQWtDOztBQUV2VSxpQ0FBaUMsZ0JBQWdCLHNCQUFzQixPQUFPLHVEQUF1RCxhQUFhLHVEQUF1RCw0Q0FBNEMsS0FBSyw2Q0FBNkMsNkVBQTZFLE9BQU8saURBQWlELG1GQUFtRixPQUFPOztBQUV0Z0IsNENBQTRDLGtCQUFrQixrQ0FBa0Msb0VBQW9FLEtBQUssT0FBTyxvQkFBb0I7O0FBRXBNO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTzs7QUFFUDtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUEsaUVBQWlFLFdBQVc7QUFDNUU7QUFDQSxLQUFLO0FBQ0w7QUFDQSxxRUFBcUUsV0FBVztBQUNoRjtBQUNBLEtBQUssSUFBSTs7QUFFVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyx5QkFBeUI7QUFDaEM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUssSUFBSTs7QUFFVDtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLHFFQUFxRSxXQUFXO0FBQ2hGO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtDQUErQyx5QkFBeUI7QUFDeEU7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSxxRUFBcUUsV0FBVztBQUNoRjtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0MseUJBQXlCO0FBQ3hFO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBLHdFQUF3RSxhQUFhO0FBQ3JGO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EsR0FBRzs7QUFFSDtBQUNBLENBQUM7O0FBRUQsYUFBYSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2xpY2svbGliL3RyYWNrLmpzP2MwZmYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLlRyYWNrID0gdm9pZCAwO1xuXG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX2NsYXNzbmFtZXMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJjbGFzc25hbWVzXCIpKTtcblxudmFyIF9pbm5lclNsaWRlclV0aWxzID0gcmVxdWlyZShcIi4vdXRpbHMvaW5uZXJTbGlkZXJVdGlsc1wiKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjsgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiKSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfTsgfSBlbHNlIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9OyB9IHJldHVybiBfdHlwZW9mKG9iaik7IH1cblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfVxuXG5mdW5jdGlvbiBfY3JlYXRlQ2xhc3MoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgX3NldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKTsgfVxuXG5mdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBfc2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgby5fX3Byb3RvX18gPSBwOyByZXR1cm4gbzsgfTsgcmV0dXJuIF9zZXRQcm90b3R5cGVPZihvLCBwKTsgfVxuXG5mdW5jdGlvbiBfY3JlYXRlU3VwZXIoRGVyaXZlZCkgeyB2YXIgaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCA9IF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKTsgcmV0dXJuIGZ1bmN0aW9uIF9jcmVhdGVTdXBlckludGVybmFsKCkgeyB2YXIgU3VwZXIgPSBfZ2V0UHJvdG90eXBlT2YoRGVyaXZlZCksIHJlc3VsdDsgaWYgKGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QpIHsgdmFyIE5ld1RhcmdldCA9IF9nZXRQcm90b3R5cGVPZih0aGlzKS5jb25zdHJ1Y3RvcjsgcmVzdWx0ID0gUmVmbGVjdC5jb25zdHJ1Y3QoU3VwZXIsIGFyZ3VtZW50cywgTmV3VGFyZ2V0KTsgfSBlbHNlIHsgcmVzdWx0ID0gU3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfSByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgcmVzdWx0KTsgfTsgfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmIChjYWxsICYmIChfdHlwZW9mKGNhbGwpID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpKSB7IHJldHVybiBjYWxsOyB9IHJldHVybiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpOyB9XG5cbmZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikgeyBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gc2VsZjsgfVxuXG5mdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkgeyBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwidW5kZWZpbmVkXCIgfHwgIVJlZmxlY3QuY29uc3RydWN0KSByZXR1cm4gZmFsc2U7IGlmIChSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKSByZXR1cm4gZmFsc2U7IGlmICh0eXBlb2YgUHJveHkgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHRydWU7IHRyeSB7IERhdGUucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoRGF0ZSwgW10sIGZ1bmN0aW9uICgpIHt9KSk7IHJldHVybiB0cnVlOyB9IGNhdGNoIChlKSB7IHJldHVybiBmYWxzZTsgfSB9XG5cbmZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IF9nZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5nZXRQcm90b3R5cGVPZiA6IGZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IHJldHVybiBvLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2Yobyk7IH07IHJldHVybiBfZ2V0UHJvdG90eXBlT2Yobyk7IH1cblxuZnVuY3Rpb24gb3duS2V5cyhvYmplY3QsIGVudW1lcmFibGVPbmx5KSB7IHZhciBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KTsgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHsgdmFyIHN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG9iamVjdCk7IGlmIChlbnVtZXJhYmxlT25seSkgc3ltYm9scyA9IHN5bWJvbHMuZmlsdGVyKGZ1bmN0aW9uIChzeW0pIHsgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LCBzeW0pLmVudW1lcmFibGU7IH0pOyBrZXlzLnB1c2guYXBwbHkoa2V5cywgc3ltYm9scyk7IH0gcmV0dXJuIGtleXM7IH1cblxuZnVuY3Rpb24gX29iamVjdFNwcmVhZCh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXSAhPSBudWxsID8gYXJndW1lbnRzW2ldIDoge307IGlmIChpICUgMikgeyBvd25LZXlzKE9iamVjdChzb3VyY2UpLCB0cnVlKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsgX2RlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBzb3VyY2Vba2V5XSk7IH0pOyB9IGVsc2UgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoc291cmNlKSk7IH0gZWxzZSB7IG93bktleXMoT2JqZWN0KHNvdXJjZSkpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc291cmNlLCBrZXkpKTsgfSk7IH0gfSByZXR1cm4gdGFyZ2V0OyB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsgaWYgKGtleSBpbiBvYmopIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsgfSBlbHNlIHsgb2JqW2tleV0gPSB2YWx1ZTsgfSByZXR1cm4gb2JqOyB9XG5cbi8vIGdpdmVuIHNwZWNpZmljYXRpb25zL3Byb3BzIGZvciBhIHNsaWRlLCBmZXRjaCBhbGwgdGhlIGNsYXNzZXMgdGhhdCBuZWVkIHRvIGJlIGFwcGxpZWQgdG8gdGhlIHNsaWRlXG52YXIgZ2V0U2xpZGVDbGFzc2VzID0gZnVuY3Rpb24gZ2V0U2xpZGVDbGFzc2VzKHNwZWMpIHtcbiAgdmFyIHNsaWNrQWN0aXZlLCBzbGlja0NlbnRlciwgc2xpY2tDbG9uZWQ7XG4gIHZhciBjZW50ZXJPZmZzZXQsIGluZGV4O1xuXG4gIGlmIChzcGVjLnJ0bCkge1xuICAgIGluZGV4ID0gc3BlYy5zbGlkZUNvdW50IC0gMSAtIHNwZWMuaW5kZXg7XG4gIH0gZWxzZSB7XG4gICAgaW5kZXggPSBzcGVjLmluZGV4O1xuICB9XG5cbiAgc2xpY2tDbG9uZWQgPSBpbmRleCA8IDAgfHwgaW5kZXggPj0gc3BlYy5zbGlkZUNvdW50O1xuXG4gIGlmIChzcGVjLmNlbnRlck1vZGUpIHtcbiAgICBjZW50ZXJPZmZzZXQgPSBNYXRoLmZsb29yKHNwZWMuc2xpZGVzVG9TaG93IC8gMik7XG4gICAgc2xpY2tDZW50ZXIgPSAoaW5kZXggLSBzcGVjLmN1cnJlbnRTbGlkZSkgJSBzcGVjLnNsaWRlQ291bnQgPT09IDA7XG5cbiAgICBpZiAoaW5kZXggPiBzcGVjLmN1cnJlbnRTbGlkZSAtIGNlbnRlck9mZnNldCAtIDEgJiYgaW5kZXggPD0gc3BlYy5jdXJyZW50U2xpZGUgKyBjZW50ZXJPZmZzZXQpIHtcbiAgICAgIHNsaWNrQWN0aXZlID0gdHJ1ZTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgc2xpY2tBY3RpdmUgPSBzcGVjLmN1cnJlbnRTbGlkZSA8PSBpbmRleCAmJiBpbmRleCA8IHNwZWMuY3VycmVudFNsaWRlICsgc3BlYy5zbGlkZXNUb1Nob3c7XG4gIH1cblxuICB2YXIgZm9jdXNlZFNsaWRlO1xuXG4gIGlmIChzcGVjLnRhcmdldFNsaWRlIDwgMCkge1xuICAgIGZvY3VzZWRTbGlkZSA9IHNwZWMudGFyZ2V0U2xpZGUgKyBzcGVjLnNsaWRlQ291bnQ7XG4gIH0gZWxzZSBpZiAoc3BlYy50YXJnZXRTbGlkZSA+PSBzcGVjLnNsaWRlQ291bnQpIHtcbiAgICBmb2N1c2VkU2xpZGUgPSBzcGVjLnRhcmdldFNsaWRlIC0gc3BlYy5zbGlkZUNvdW50O1xuICB9IGVsc2Uge1xuICAgIGZvY3VzZWRTbGlkZSA9IHNwZWMudGFyZ2V0U2xpZGU7XG4gIH1cblxuICB2YXIgc2xpY2tDdXJyZW50ID0gaW5kZXggPT09IGZvY3VzZWRTbGlkZTtcbiAgcmV0dXJuIHtcbiAgICBcInNsaWNrLXNsaWRlXCI6IHRydWUsXG4gICAgXCJzbGljay1hY3RpdmVcIjogc2xpY2tBY3RpdmUsXG4gICAgXCJzbGljay1jZW50ZXJcIjogc2xpY2tDZW50ZXIsXG4gICAgXCJzbGljay1jbG9uZWRcIjogc2xpY2tDbG9uZWQsXG4gICAgXCJzbGljay1jdXJyZW50XCI6IHNsaWNrQ3VycmVudCAvLyBkdWJpb3VzIGluIGNhc2Ugb2YgUlRMXG5cbiAgfTtcbn07XG5cbnZhciBnZXRTbGlkZVN0eWxlID0gZnVuY3Rpb24gZ2V0U2xpZGVTdHlsZShzcGVjKSB7XG4gIHZhciBzdHlsZSA9IHt9O1xuXG4gIGlmIChzcGVjLnZhcmlhYmxlV2lkdGggPT09IHVuZGVmaW5lZCB8fCBzcGVjLnZhcmlhYmxlV2lkdGggPT09IGZhbHNlKSB7XG4gICAgc3R5bGUud2lkdGggPSBzcGVjLnNsaWRlV2lkdGg7XG4gIH1cblxuICBpZiAoc3BlYy5mYWRlKSB7XG4gICAgc3R5bGUucG9zaXRpb24gPSBcInJlbGF0aXZlXCI7XG5cbiAgICBpZiAoc3BlYy52ZXJ0aWNhbCkge1xuICAgICAgc3R5bGUudG9wID0gLXNwZWMuaW5kZXggKiBwYXJzZUludChzcGVjLnNsaWRlSGVpZ2h0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3R5bGUubGVmdCA9IC1zcGVjLmluZGV4ICogcGFyc2VJbnQoc3BlYy5zbGlkZVdpZHRoKTtcbiAgICB9XG5cbiAgICBzdHlsZS5vcGFjaXR5ID0gc3BlYy5jdXJyZW50U2xpZGUgPT09IHNwZWMuaW5kZXggPyAxIDogMDtcblxuICAgIGlmIChzcGVjLnVzZUNTUykge1xuICAgICAgc3R5bGUudHJhbnNpdGlvbiA9IFwib3BhY2l0eSBcIiArIHNwZWMuc3BlZWQgKyBcIm1zIFwiICsgc3BlYy5jc3NFYXNlICsgXCIsIFwiICsgXCJ2aXNpYmlsaXR5IFwiICsgc3BlYy5zcGVlZCArIFwibXMgXCIgKyBzcGVjLmNzc0Vhc2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0eWxlO1xufTtcblxudmFyIGdldEtleSA9IGZ1bmN0aW9uIGdldEtleShjaGlsZCwgZmFsbGJhY2tLZXkpIHtcbiAgcmV0dXJuIGNoaWxkLmtleSB8fCBmYWxsYmFja0tleTtcbn07XG5cbnZhciByZW5kZXJTbGlkZXMgPSBmdW5jdGlvbiByZW5kZXJTbGlkZXMoc3BlYykge1xuICB2YXIga2V5O1xuICB2YXIgc2xpZGVzID0gW107XG4gIHZhciBwcmVDbG9uZVNsaWRlcyA9IFtdO1xuICB2YXIgcG9zdENsb25lU2xpZGVzID0gW107XG5cbiAgdmFyIGNoaWxkcmVuQ291bnQgPSBfcmVhY3RbXCJkZWZhdWx0XCJdLkNoaWxkcmVuLmNvdW50KHNwZWMuY2hpbGRyZW4pO1xuXG4gIHZhciBzdGFydEluZGV4ID0gKDAsIF9pbm5lclNsaWRlclV0aWxzLmxhenlTdGFydEluZGV4KShzcGVjKTtcbiAgdmFyIGVuZEluZGV4ID0gKDAsIF9pbm5lclNsaWRlclV0aWxzLmxhenlFbmRJbmRleCkoc3BlYyk7XG5cbiAgX3JlYWN0W1wiZGVmYXVsdFwiXS5DaGlsZHJlbi5mb3JFYWNoKHNwZWMuY2hpbGRyZW4sIGZ1bmN0aW9uIChlbGVtLCBpbmRleCkge1xuICAgIHZhciBjaGlsZDtcbiAgICB2YXIgY2hpbGRPbkNsaWNrT3B0aW9ucyA9IHtcbiAgICAgIG1lc3NhZ2U6IFwiY2hpbGRyZW5cIixcbiAgICAgIGluZGV4OiBpbmRleCxcbiAgICAgIHNsaWRlc1RvU2Nyb2xsOiBzcGVjLnNsaWRlc1RvU2Nyb2xsLFxuICAgICAgY3VycmVudFNsaWRlOiBzcGVjLmN1cnJlbnRTbGlkZVxuICAgIH07IC8vIGluIGNhc2Ugb2YgbGF6eUxvYWQsIHdoZXRoZXIgb3Igbm90IHdlIHdhbnQgdG8gZmV0Y2ggdGhlIHNsaWRlXG5cbiAgICBpZiAoIXNwZWMubGF6eUxvYWQgfHwgc3BlYy5sYXp5TG9hZCAmJiBzcGVjLmxhenlMb2FkZWRMaXN0LmluZGV4T2YoaW5kZXgpID49IDApIHtcbiAgICAgIGNoaWxkID0gZWxlbTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2hpbGQgPSAvKiNfX1BVUkVfXyovX3JlYWN0W1wiZGVmYXVsdFwiXS5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIG51bGwpO1xuICAgIH1cblxuICAgIHZhciBjaGlsZFN0eWxlID0gZ2V0U2xpZGVTdHlsZShfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHNwZWMpLCB7fSwge1xuICAgICAgaW5kZXg6IGluZGV4XG4gICAgfSkpO1xuICAgIHZhciBzbGlkZUNsYXNzID0gY2hpbGQucHJvcHMuY2xhc3NOYW1lIHx8IFwiXCI7XG4gICAgdmFyIHNsaWRlQ2xhc3NlcyA9IGdldFNsaWRlQ2xhc3Nlcyhfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHNwZWMpLCB7fSwge1xuICAgICAgaW5kZXg6IGluZGV4XG4gICAgfSkpOyAvLyBwdXNoIGEgY2xvbmVkIGVsZW1lbnQgb2YgdGhlIGRlc2lyZWQgc2xpZGVcblxuICAgIHNsaWRlcy5wdXNoKCAvKiNfX1BVUkVfXyovX3JlYWN0W1wiZGVmYXVsdFwiXS5jbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgIGtleTogXCJvcmlnaW5hbFwiICsgZ2V0S2V5KGNoaWxkLCBpbmRleCksXG4gICAgICBcImRhdGEtaW5kZXhcIjogaW5kZXgsXG4gICAgICBjbGFzc05hbWU6ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKHNsaWRlQ2xhc3Nlcywgc2xpZGVDbGFzcyksXG4gICAgICB0YWJJbmRleDogXCItMVwiLFxuICAgICAgXCJhcmlhLWhpZGRlblwiOiAhc2xpZGVDbGFzc2VzW1wic2xpY2stYWN0aXZlXCJdLFxuICAgICAgc3R5bGU6IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7XG4gICAgICAgIG91dGxpbmU6IFwibm9uZVwiXG4gICAgICB9LCBjaGlsZC5wcm9wcy5zdHlsZSB8fCB7fSksIGNoaWxkU3R5bGUpLFxuICAgICAgb25DbGljazogZnVuY3Rpb24gb25DbGljayhlKSB7XG4gICAgICAgIGNoaWxkLnByb3BzICYmIGNoaWxkLnByb3BzLm9uQ2xpY2sgJiYgY2hpbGQucHJvcHMub25DbGljayhlKTtcblxuICAgICAgICBpZiAoc3BlYy5mb2N1c09uU2VsZWN0KSB7XG4gICAgICAgICAgc3BlYy5mb2N1c09uU2VsZWN0KGNoaWxkT25DbGlja09wdGlvbnMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSkpOyAvLyBpZiBzbGlkZSBuZWVkcyB0byBiZSBwcmVjbG9uZWQgb3IgcG9zdGNsb25lZFxuXG4gICAgaWYgKHNwZWMuaW5maW5pdGUgJiYgc3BlYy5mYWRlID09PSBmYWxzZSkge1xuICAgICAgdmFyIHByZUNsb25lTm8gPSBjaGlsZHJlbkNvdW50IC0gaW5kZXg7XG5cbiAgICAgIGlmIChwcmVDbG9uZU5vIDw9ICgwLCBfaW5uZXJTbGlkZXJVdGlscy5nZXRQcmVDbG9uZXMpKHNwZWMpICYmIGNoaWxkcmVuQ291bnQgIT09IHNwZWMuc2xpZGVzVG9TaG93KSB7XG4gICAgICAgIGtleSA9IC1wcmVDbG9uZU5vO1xuXG4gICAgICAgIGlmIChrZXkgPj0gc3RhcnRJbmRleCkge1xuICAgICAgICAgIGNoaWxkID0gZWxlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNsaWRlQ2xhc3NlcyA9IGdldFNsaWRlQ2xhc3Nlcyhfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHNwZWMpLCB7fSwge1xuICAgICAgICAgIGluZGV4OiBrZXlcbiAgICAgICAgfSkpO1xuICAgICAgICBwcmVDbG9uZVNsaWRlcy5wdXNoKCAvKiNfX1BVUkVfXyovX3JlYWN0W1wiZGVmYXVsdFwiXS5jbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICBrZXk6IFwicHJlY2xvbmVkXCIgKyBnZXRLZXkoY2hpbGQsIGtleSksXG4gICAgICAgICAgXCJkYXRhLWluZGV4XCI6IGtleSxcbiAgICAgICAgICB0YWJJbmRleDogXCItMVwiLFxuICAgICAgICAgIGNsYXNzTmFtZTogKDAsIF9jbGFzc25hbWVzW1wiZGVmYXVsdFwiXSkoc2xpZGVDbGFzc2VzLCBzbGlkZUNsYXNzKSxcbiAgICAgICAgICBcImFyaWEtaGlkZGVuXCI6ICFzbGlkZUNsYXNzZXNbXCJzbGljay1hY3RpdmVcIl0sXG4gICAgICAgICAgc3R5bGU6IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgY2hpbGQucHJvcHMuc3R5bGUgfHwge30pLCBjaGlsZFN0eWxlKSxcbiAgICAgICAgICBvbkNsaWNrOiBmdW5jdGlvbiBvbkNsaWNrKGUpIHtcbiAgICAgICAgICAgIGNoaWxkLnByb3BzICYmIGNoaWxkLnByb3BzLm9uQ2xpY2sgJiYgY2hpbGQucHJvcHMub25DbGljayhlKTtcblxuICAgICAgICAgICAgaWYgKHNwZWMuZm9jdXNPblNlbGVjdCkge1xuICAgICAgICAgICAgICBzcGVjLmZvY3VzT25TZWxlY3QoY2hpbGRPbkNsaWNrT3B0aW9ucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChjaGlsZHJlbkNvdW50ICE9PSBzcGVjLnNsaWRlc1RvU2hvdykge1xuICAgICAgICBrZXkgPSBjaGlsZHJlbkNvdW50ICsgaW5kZXg7XG5cbiAgICAgICAgaWYgKGtleSA8IGVuZEluZGV4KSB7XG4gICAgICAgICAgY2hpbGQgPSBlbGVtO1xuICAgICAgICB9XG5cbiAgICAgICAgc2xpZGVDbGFzc2VzID0gZ2V0U2xpZGVDbGFzc2VzKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgc3BlYyksIHt9LCB7XG4gICAgICAgICAgaW5kZXg6IGtleVxuICAgICAgICB9KSk7XG4gICAgICAgIHBvc3RDbG9uZVNsaWRlcy5wdXNoKCAvKiNfX1BVUkVfXyovX3JlYWN0W1wiZGVmYXVsdFwiXS5jbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICBrZXk6IFwicG9zdGNsb25lZFwiICsgZ2V0S2V5KGNoaWxkLCBrZXkpLFxuICAgICAgICAgIFwiZGF0YS1pbmRleFwiOiBrZXksXG4gICAgICAgICAgdGFiSW5kZXg6IFwiLTFcIixcbiAgICAgICAgICBjbGFzc05hbWU6ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKHNsaWRlQ2xhc3Nlcywgc2xpZGVDbGFzcyksXG4gICAgICAgICAgXCJhcmlhLWhpZGRlblwiOiAhc2xpZGVDbGFzc2VzW1wic2xpY2stYWN0aXZlXCJdLFxuICAgICAgICAgIHN0eWxlOiBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIGNoaWxkLnByb3BzLnN0eWxlIHx8IHt9KSwgY2hpbGRTdHlsZSksXG4gICAgICAgICAgb25DbGljazogZnVuY3Rpb24gb25DbGljayhlKSB7XG4gICAgICAgICAgICBjaGlsZC5wcm9wcyAmJiBjaGlsZC5wcm9wcy5vbkNsaWNrICYmIGNoaWxkLnByb3BzLm9uQ2xpY2soZSk7XG5cbiAgICAgICAgICAgIGlmIChzcGVjLmZvY3VzT25TZWxlY3QpIHtcbiAgICAgICAgICAgICAgc3BlYy5mb2N1c09uU2VsZWN0KGNoaWxkT25DbGlja09wdGlvbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSkpO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgaWYgKHNwZWMucnRsKSB7XG4gICAgcmV0dXJuIHByZUNsb25lU2xpZGVzLmNvbmNhdChzbGlkZXMsIHBvc3RDbG9uZVNsaWRlcykucmV2ZXJzZSgpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBwcmVDbG9uZVNsaWRlcy5jb25jYXQoc2xpZGVzLCBwb3N0Q2xvbmVTbGlkZXMpO1xuICB9XG59O1xuXG52YXIgVHJhY2sgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9SZWFjdCRQdXJlQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhUcmFjaywgX1JlYWN0JFB1cmVDb21wb25lbnQpO1xuXG4gIHZhciBfc3VwZXIgPSBfY3JlYXRlU3VwZXIoVHJhY2spO1xuXG4gIGZ1bmN0aW9uIFRyYWNrKCkge1xuICAgIHZhciBfdGhpcztcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBUcmFjayk7XG5cbiAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgIGFyZ3NbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgfVxuXG4gICAgX3RoaXMgPSBfc3VwZXIuY2FsbC5hcHBseShfc3VwZXIsIFt0aGlzXS5jb25jYXQoYXJncykpO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcIm5vZGVcIiwgbnVsbCk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwiaGFuZGxlUmVmXCIsIGZ1bmN0aW9uIChyZWYpIHtcbiAgICAgIF90aGlzLm5vZGUgPSByZWY7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoVHJhY2ssIFt7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgc2xpZGVzID0gcmVuZGVyU2xpZGVzKHRoaXMucHJvcHMpO1xuICAgICAgdmFyIF90aGlzJHByb3BzID0gdGhpcy5wcm9wcyxcbiAgICAgICAgICBvbk1vdXNlRW50ZXIgPSBfdGhpcyRwcm9wcy5vbk1vdXNlRW50ZXIsXG4gICAgICAgICAgb25Nb3VzZU92ZXIgPSBfdGhpcyRwcm9wcy5vbk1vdXNlT3ZlcixcbiAgICAgICAgICBvbk1vdXNlTGVhdmUgPSBfdGhpcyRwcm9wcy5vbk1vdXNlTGVhdmU7XG4gICAgICB2YXIgbW91c2VFdmVudHMgPSB7XG4gICAgICAgIG9uTW91c2VFbnRlcjogb25Nb3VzZUVudGVyLFxuICAgICAgICBvbk1vdXNlT3Zlcjogb25Nb3VzZU92ZXIsXG4gICAgICAgIG9uTW91c2VMZWF2ZTogb25Nb3VzZUxlYXZlXG4gICAgICB9O1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9fcmVhY3RbXCJkZWZhdWx0XCJdLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgX2V4dGVuZHMoe1xuICAgICAgICByZWY6IHRoaXMuaGFuZGxlUmVmLFxuICAgICAgICBjbGFzc05hbWU6IFwic2xpY2stdHJhY2tcIixcbiAgICAgICAgc3R5bGU6IHRoaXMucHJvcHMudHJhY2tTdHlsZVxuICAgICAgfSwgbW91c2VFdmVudHMpLCBzbGlkZXMpO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBUcmFjaztcbn0oX3JlYWN0W1wiZGVmYXVsdFwiXS5QdXJlQ29tcG9uZW50KTtcblxuZXhwb3J0cy5UcmFjayA9IFRyYWNrOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-slick/lib/track.js\n"); + +/***/ }), + +/***/ "./node_modules/react-slick/lib/utils/innerSliderUtils.js": +/*!****************************************************************!*\ + !*** ./node_modules/react-slick/lib/utils/innerSliderUtils.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.clamp = clamp;\nexports.canUseDOM = exports.slidesOnLeft = exports.slidesOnRight = exports.siblingDirection = exports.getTotalSlides = exports.getPostClones = exports.getPreClones = exports.getTrackLeft = exports.getTrackAnimateCSS = exports.getTrackCSS = exports.checkSpecKeys = exports.getSlideCount = exports.checkNavigable = exports.getNavigableIndexes = exports.swipeEnd = exports.swipeMove = exports.swipeStart = exports.keyHandler = exports.changeSlide = exports.slideHandler = exports.initializedState = exports.extractObject = exports.canGoNext = exports.getSwipeDirection = exports.getHeight = exports.getWidth = exports.lazySlidesOnRight = exports.lazySlidesOnLeft = exports.lazyEndIndex = exports.lazyStartIndex = exports.getRequiredLazySlides = exports.getOnDemandLazySlides = exports.safePreventDefault = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction clamp(number, lowerBound, upperBound) {\n return Math.max(lowerBound, Math.min(number, upperBound));\n}\n\nvar safePreventDefault = function safePreventDefault(event) {\n var passiveEvents = [\"onTouchStart\", \"onTouchMove\", \"onWheel\"];\n\n if (!passiveEvents.includes(event._reactName)) {\n event.preventDefault();\n }\n};\n\nexports.safePreventDefault = safePreventDefault;\n\nvar getOnDemandLazySlides = function getOnDemandLazySlides(spec) {\n var onDemandSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n if (spec.lazyLoadedList.indexOf(slideIndex) < 0) {\n onDemandSlides.push(slideIndex);\n }\n }\n\n return onDemandSlides;\n}; // return list of slides that need to be present\n\n\nexports.getOnDemandLazySlides = getOnDemandLazySlides;\n\nvar getRequiredLazySlides = function getRequiredLazySlides(spec) {\n var requiredSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n requiredSlides.push(slideIndex);\n }\n\n return requiredSlides;\n}; // startIndex that needs to be present\n\n\nexports.getRequiredLazySlides = getRequiredLazySlides;\n\nvar lazyStartIndex = function lazyStartIndex(spec) {\n return spec.currentSlide - lazySlidesOnLeft(spec);\n};\n\nexports.lazyStartIndex = lazyStartIndex;\n\nvar lazyEndIndex = function lazyEndIndex(spec) {\n return spec.currentSlide + lazySlidesOnRight(spec);\n};\n\nexports.lazyEndIndex = lazyEndIndex;\n\nvar lazySlidesOnLeft = function lazySlidesOnLeft(spec) {\n return spec.centerMode ? Math.floor(spec.slidesToShow / 2) + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : 0;\n};\n\nexports.lazySlidesOnLeft = lazySlidesOnLeft;\n\nvar lazySlidesOnRight = function lazySlidesOnRight(spec) {\n return spec.centerMode ? Math.floor((spec.slidesToShow - 1) / 2) + 1 + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : spec.slidesToShow;\n}; // get width of an element\n\n\nexports.lazySlidesOnRight = lazySlidesOnRight;\n\nvar getWidth = function getWidth(elem) {\n return elem && elem.offsetWidth || 0;\n};\n\nexports.getWidth = getWidth;\n\nvar getHeight = function getHeight(elem) {\n return elem && elem.offsetHeight || 0;\n};\n\nexports.getHeight = getHeight;\n\nvar getSwipeDirection = function getSwipeDirection(touchObject) {\n var verticalSwiping = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var xDist, yDist, r, swipeAngle;\n xDist = touchObject.startX - touchObject.curX;\n yDist = touchObject.startY - touchObject.curY;\n r = Math.atan2(yDist, xDist);\n swipeAngle = Math.round(r * 180 / Math.PI);\n\n if (swipeAngle < 0) {\n swipeAngle = 360 - Math.abs(swipeAngle);\n }\n\n if (swipeAngle <= 45 && swipeAngle >= 0 || swipeAngle <= 360 && swipeAngle >= 315) {\n return \"left\";\n }\n\n if (swipeAngle >= 135 && swipeAngle <= 225) {\n return \"right\";\n }\n\n if (verticalSwiping === true) {\n if (swipeAngle >= 35 && swipeAngle <= 135) {\n return \"up\";\n } else {\n return \"down\";\n }\n }\n\n return \"vertical\";\n}; // whether or not we can go next\n\n\nexports.getSwipeDirection = getSwipeDirection;\n\nvar canGoNext = function canGoNext(spec) {\n var canGo = true;\n\n if (!spec.infinite) {\n if (spec.centerMode && spec.currentSlide >= spec.slideCount - 1) {\n canGo = false;\n } else if (spec.slideCount <= spec.slidesToShow || spec.currentSlide >= spec.slideCount - spec.slidesToShow) {\n canGo = false;\n }\n }\n\n return canGo;\n}; // given an object and a list of keys, return new object with given keys\n\n\nexports.canGoNext = canGoNext;\n\nvar extractObject = function extractObject(spec, keys) {\n var newObject = {};\n keys.forEach(function (key) {\n return newObject[key] = spec[key];\n });\n return newObject;\n}; // get initialized state\n\n\nexports.extractObject = extractObject;\n\nvar initializedState = function initializedState(spec) {\n // spec also contains listRef, trackRef\n var slideCount = _react[\"default\"].Children.count(spec.children);\n\n var listNode = spec.listRef;\n var listWidth = Math.ceil(getWidth(listNode));\n var trackNode = spec.trackRef && spec.trackRef.node;\n var trackWidth = Math.ceil(getWidth(trackNode));\n var slideWidth;\n\n if (!spec.vertical) {\n var centerPaddingAdj = spec.centerMode && parseInt(spec.centerPadding) * 2;\n\n if (typeof spec.centerPadding === \"string\" && spec.centerPadding.slice(-1) === \"%\") {\n centerPaddingAdj *= listWidth / 100;\n }\n\n slideWidth = Math.ceil((listWidth - centerPaddingAdj) / spec.slidesToShow);\n } else {\n slideWidth = listWidth;\n }\n\n var slideHeight = listNode && getHeight(listNode.querySelector('[data-index=\"0\"]'));\n var listHeight = slideHeight * spec.slidesToShow;\n var currentSlide = spec.currentSlide === undefined ? spec.initialSlide : spec.currentSlide;\n\n if (spec.rtl && spec.currentSlide === undefined) {\n currentSlide = slideCount - 1 - spec.initialSlide;\n }\n\n var lazyLoadedList = spec.lazyLoadedList || [];\n var slidesToLoad = getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: currentSlide,\n lazyLoadedList: lazyLoadedList\n }));\n lazyLoadedList = lazyLoadedList.concat(slidesToLoad);\n var state = {\n slideCount: slideCount,\n slideWidth: slideWidth,\n listWidth: listWidth,\n trackWidth: trackWidth,\n currentSlide: currentSlide,\n slideHeight: slideHeight,\n listHeight: listHeight,\n lazyLoadedList: lazyLoadedList\n };\n\n if (spec.autoplaying === null && spec.autoplay) {\n state[\"autoplaying\"] = \"playing\";\n }\n\n return state;\n};\n\nexports.initializedState = initializedState;\n\nvar slideHandler = function slideHandler(spec) {\n var waitForAnimate = spec.waitForAnimate,\n animating = spec.animating,\n fade = spec.fade,\n infinite = spec.infinite,\n index = spec.index,\n slideCount = spec.slideCount,\n lazyLoad = spec.lazyLoad,\n currentSlide = spec.currentSlide,\n centerMode = spec.centerMode,\n slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n useCSS = spec.useCSS;\n var lazyLoadedList = spec.lazyLoadedList;\n if (waitForAnimate && animating) return {};\n var animationSlide = index,\n finalSlide,\n animationLeft,\n finalLeft;\n var state = {},\n nextState = {};\n var targetSlide = infinite ? index : clamp(index, 0, slideCount - 1);\n\n if (fade) {\n if (!infinite && (index < 0 || index >= slideCount)) return {};\n\n if (index < 0) {\n animationSlide = index + slideCount;\n } else if (index >= slideCount) {\n animationSlide = index - slideCount;\n }\n\n if (lazyLoad && lazyLoadedList.indexOf(animationSlide) < 0) {\n lazyLoadedList = lazyLoadedList.concat(animationSlide);\n }\n\n state = {\n animating: true,\n currentSlide: animationSlide,\n lazyLoadedList: lazyLoadedList,\n targetSlide: animationSlide\n };\n nextState = {\n animating: false,\n targetSlide: animationSlide\n };\n } else {\n finalSlide = animationSlide;\n\n if (animationSlide < 0) {\n finalSlide = animationSlide + slideCount;\n if (!infinite) finalSlide = 0;else if (slideCount % slidesToScroll !== 0) finalSlide = slideCount - slideCount % slidesToScroll;\n } else if (!canGoNext(spec) && animationSlide > currentSlide) {\n animationSlide = finalSlide = currentSlide;\n } else if (centerMode && animationSlide >= slideCount) {\n animationSlide = infinite ? slideCount : slideCount - 1;\n finalSlide = infinite ? 0 : slideCount - 1;\n } else if (animationSlide >= slideCount) {\n finalSlide = animationSlide - slideCount;\n if (!infinite) finalSlide = slideCount - slidesToShow;else if (slideCount % slidesToScroll !== 0) finalSlide = 0;\n }\n\n if (!infinite && animationSlide + slidesToShow >= slideCount) {\n finalSlide = slideCount - slidesToShow;\n }\n\n animationLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: animationSlide\n }));\n finalLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: finalSlide\n }));\n\n if (!infinite) {\n if (animationLeft === finalLeft) animationSlide = finalSlide;\n animationLeft = finalLeft;\n }\n\n if (lazyLoad) {\n lazyLoadedList = lazyLoadedList.concat(getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: animationSlide\n })));\n }\n\n if (!useCSS) {\n state = {\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n } else {\n state = {\n animating: true,\n currentSlide: finalSlide,\n trackStyle: getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: animationLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n nextState = {\n animating: false,\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n swipeLeft: null,\n targetSlide: targetSlide\n };\n }\n }\n\n return {\n state: state,\n nextState: nextState\n };\n};\n\nexports.slideHandler = slideHandler;\n\nvar changeSlide = function changeSlide(spec, options) {\n var indexOffset, previousInt, slideOffset, unevenOffset, targetSlide;\n var slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n slideCount = spec.slideCount,\n currentSlide = spec.currentSlide,\n previousTargetSlide = spec.targetSlide,\n lazyLoad = spec.lazyLoad,\n infinite = spec.infinite;\n unevenOffset = slideCount % slidesToScroll !== 0;\n indexOffset = unevenOffset ? 0 : (slideCount - currentSlide) % slidesToScroll;\n\n if (options.message === \"previous\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : slidesToShow - indexOffset;\n targetSlide = currentSlide - slideOffset;\n\n if (lazyLoad && !infinite) {\n previousInt = currentSlide - slideOffset;\n targetSlide = previousInt === -1 ? slideCount - 1 : previousInt;\n }\n\n if (!infinite) {\n targetSlide = previousTargetSlide - slidesToScroll;\n }\n } else if (options.message === \"next\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : indexOffset;\n targetSlide = currentSlide + slideOffset;\n\n if (lazyLoad && !infinite) {\n targetSlide = (currentSlide + slidesToScroll) % slideCount + indexOffset;\n }\n\n if (!infinite) {\n targetSlide = previousTargetSlide + slidesToScroll;\n }\n } else if (options.message === \"dots\") {\n // Click on dots\n targetSlide = options.index * options.slidesToScroll;\n } else if (options.message === \"children\") {\n // Click on the slides\n targetSlide = options.index;\n\n if (infinite) {\n var direction = siblingDirection(_objectSpread(_objectSpread({}, spec), {}, {\n targetSlide: targetSlide\n }));\n\n if (targetSlide > options.currentSlide && direction === \"left\") {\n targetSlide = targetSlide - slideCount;\n } else if (targetSlide < options.currentSlide && direction === \"right\") {\n targetSlide = targetSlide + slideCount;\n }\n }\n } else if (options.message === \"index\") {\n targetSlide = Number(options.index);\n }\n\n return targetSlide;\n};\n\nexports.changeSlide = changeSlide;\n\nvar keyHandler = function keyHandler(e, accessibility, rtl) {\n if (e.target.tagName.match(\"TEXTAREA|INPUT|SELECT\") || !accessibility) return \"\";\n if (e.keyCode === 37) return rtl ? \"next\" : \"previous\";\n if (e.keyCode === 39) return rtl ? \"previous\" : \"next\";\n return \"\";\n};\n\nexports.keyHandler = keyHandler;\n\nvar swipeStart = function swipeStart(e, swipe, draggable) {\n e.target.tagName === \"IMG\" && safePreventDefault(e);\n if (!swipe || !draggable && e.type.indexOf(\"mouse\") !== -1) return \"\";\n return {\n dragging: true,\n touchObject: {\n startX: e.touches ? e.touches[0].pageX : e.clientX,\n startY: e.touches ? e.touches[0].pageY : e.clientY,\n curX: e.touches ? e.touches[0].pageX : e.clientX,\n curY: e.touches ? e.touches[0].pageY : e.clientY\n }\n };\n};\n\nexports.swipeStart = swipeStart;\n\nvar swipeMove = function swipeMove(e, spec) {\n // spec also contains, trackRef and slideIndex\n var scrolling = spec.scrolling,\n animating = spec.animating,\n vertical = spec.vertical,\n swipeToSlide = spec.swipeToSlide,\n verticalSwiping = spec.verticalSwiping,\n rtl = spec.rtl,\n currentSlide = spec.currentSlide,\n edgeFriction = spec.edgeFriction,\n edgeDragged = spec.edgeDragged,\n onEdge = spec.onEdge,\n swiped = spec.swiped,\n swiping = spec.swiping,\n slideCount = spec.slideCount,\n slidesToScroll = spec.slidesToScroll,\n infinite = spec.infinite,\n touchObject = spec.touchObject,\n swipeEvent = spec.swipeEvent,\n listHeight = spec.listHeight,\n listWidth = spec.listWidth;\n if (scrolling) return;\n if (animating) return safePreventDefault(e);\n if (vertical && swipeToSlide && verticalSwiping) safePreventDefault(e);\n var swipeLeft,\n state = {};\n var curLeft = getTrackLeft(spec);\n touchObject.curX = e.touches ? e.touches[0].pageX : e.clientX;\n touchObject.curY = e.touches ? e.touches[0].pageY : e.clientY;\n touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curX - touchObject.startX, 2)));\n var verticalSwipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curY - touchObject.startY, 2)));\n\n if (!verticalSwiping && !swiping && verticalSwipeLength > 10) {\n return {\n scrolling: true\n };\n }\n\n if (verticalSwiping) touchObject.swipeLength = verticalSwipeLength;\n var positionOffset = (!rtl ? 1 : -1) * (touchObject.curX > touchObject.startX ? 1 : -1);\n if (verticalSwiping) positionOffset = touchObject.curY > touchObject.startY ? 1 : -1;\n var dotCount = Math.ceil(slideCount / slidesToScroll);\n var swipeDirection = getSwipeDirection(spec.touchObject, verticalSwiping);\n var touchSwipeLength = touchObject.swipeLength;\n\n if (!infinite) {\n if (currentSlide === 0 && (swipeDirection === \"right\" || swipeDirection === \"down\") || currentSlide + 1 >= dotCount && (swipeDirection === \"left\" || swipeDirection === \"up\") || !canGoNext(spec) && (swipeDirection === \"left\" || swipeDirection === \"up\")) {\n touchSwipeLength = touchObject.swipeLength * edgeFriction;\n\n if (edgeDragged === false && onEdge) {\n onEdge(swipeDirection);\n state[\"edgeDragged\"] = true;\n }\n }\n }\n\n if (!swiped && swipeEvent) {\n swipeEvent(swipeDirection);\n state[\"swiped\"] = true;\n }\n\n if (!vertical) {\n if (!rtl) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n } else {\n swipeLeft = curLeft - touchSwipeLength * positionOffset;\n }\n } else {\n swipeLeft = curLeft + touchSwipeLength * (listHeight / listWidth) * positionOffset;\n }\n\n if (verticalSwiping) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n }\n\n state = _objectSpread(_objectSpread({}, state), {}, {\n touchObject: touchObject,\n swipeLeft: swipeLeft,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: swipeLeft\n }))\n });\n\n if (Math.abs(touchObject.curX - touchObject.startX) < Math.abs(touchObject.curY - touchObject.startY) * 0.8) {\n return state;\n }\n\n if (touchObject.swipeLength > 10) {\n state[\"swiping\"] = true;\n safePreventDefault(e);\n }\n\n return state;\n};\n\nexports.swipeMove = swipeMove;\n\nvar swipeEnd = function swipeEnd(e, spec) {\n var dragging = spec.dragging,\n swipe = spec.swipe,\n touchObject = spec.touchObject,\n listWidth = spec.listWidth,\n touchThreshold = spec.touchThreshold,\n verticalSwiping = spec.verticalSwiping,\n listHeight = spec.listHeight,\n swipeToSlide = spec.swipeToSlide,\n scrolling = spec.scrolling,\n onSwipe = spec.onSwipe,\n targetSlide = spec.targetSlide,\n currentSlide = spec.currentSlide,\n infinite = spec.infinite;\n\n if (!dragging) {\n if (swipe) safePreventDefault(e);\n return {};\n }\n\n var minSwipe = verticalSwiping ? listHeight / touchThreshold : listWidth / touchThreshold;\n var swipeDirection = getSwipeDirection(touchObject, verticalSwiping); // reset the state of touch related state variables.\n\n var state = {\n dragging: false,\n edgeDragged: false,\n scrolling: false,\n swiping: false,\n swiped: false,\n swipeLeft: null,\n touchObject: {}\n };\n\n if (scrolling) {\n return state;\n }\n\n if (!touchObject.swipeLength) {\n return state;\n }\n\n if (touchObject.swipeLength > minSwipe) {\n safePreventDefault(e);\n\n if (onSwipe) {\n onSwipe(swipeDirection);\n }\n\n var slideCount, newSlide;\n var activeSlide = infinite ? currentSlide : targetSlide;\n\n switch (swipeDirection) {\n case \"left\":\n case \"up\":\n newSlide = activeSlide + getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 0;\n break;\n\n case \"right\":\n case \"down\":\n newSlide = activeSlide - getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 1;\n break;\n\n default:\n slideCount = activeSlide;\n }\n\n state[\"triggerSlideHandler\"] = slideCount;\n } else {\n // Adjust the track back to it's original position.\n var currentLeft = getTrackLeft(spec);\n state[\"trackStyle\"] = getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: currentLeft\n }));\n }\n\n return state;\n};\n\nexports.swipeEnd = swipeEnd;\n\nvar getNavigableIndexes = function getNavigableIndexes(spec) {\n var max = spec.infinite ? spec.slideCount * 2 : spec.slideCount;\n var breakpoint = spec.infinite ? spec.slidesToShow * -1 : 0;\n var counter = spec.infinite ? spec.slidesToShow * -1 : 0;\n var indexes = [];\n\n while (breakpoint < max) {\n indexes.push(breakpoint);\n breakpoint = counter + spec.slidesToScroll;\n counter += Math.min(spec.slidesToScroll, spec.slidesToShow);\n }\n\n return indexes;\n};\n\nexports.getNavigableIndexes = getNavigableIndexes;\n\nvar checkNavigable = function checkNavigable(spec, index) {\n var navigables = getNavigableIndexes(spec);\n var prevNavigable = 0;\n\n if (index > navigables[navigables.length - 1]) {\n index = navigables[navigables.length - 1];\n } else {\n for (var n in navigables) {\n if (index < navigables[n]) {\n index = prevNavigable;\n break;\n }\n\n prevNavigable = navigables[n];\n }\n }\n\n return index;\n};\n\nexports.checkNavigable = checkNavigable;\n\nvar getSlideCount = function getSlideCount(spec) {\n var centerOffset = spec.centerMode ? spec.slideWidth * Math.floor(spec.slidesToShow / 2) : 0;\n\n if (spec.swipeToSlide) {\n var swipedSlide;\n var slickList = spec.listRef;\n var slides = slickList.querySelectorAll && slickList.querySelectorAll(\".slick-slide\") || [];\n Array.from(slides).every(function (slide) {\n if (!spec.vertical) {\n if (slide.offsetLeft - centerOffset + getWidth(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n } else {\n if (slide.offsetTop + getHeight(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n }\n\n return true;\n });\n\n if (!swipedSlide) {\n return 0;\n }\n\n var currentIndex = spec.rtl === true ? spec.slideCount - spec.currentSlide : spec.currentSlide;\n var slidesTraversed = Math.abs(swipedSlide.dataset.index - currentIndex) || 1;\n return slidesTraversed;\n } else {\n return spec.slidesToScroll;\n }\n};\n\nexports.getSlideCount = getSlideCount;\n\nvar checkSpecKeys = function checkSpecKeys(spec, keysArray) {\n return keysArray.reduce(function (value, key) {\n return value && spec.hasOwnProperty(key);\n }, true) ? null : console.error(\"Keys Missing:\", spec);\n};\n\nexports.checkSpecKeys = checkSpecKeys;\n\nvar getTrackCSS = function getTrackCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\"]);\n var trackWidth, trackHeight;\n var trackChildren = spec.slideCount + 2 * spec.slidesToShow;\n\n if (!spec.vertical) {\n trackWidth = getTotalSlides(spec) * spec.slideWidth;\n } else {\n trackHeight = trackChildren * spec.slideHeight;\n }\n\n var style = {\n opacity: 1,\n transition: \"\",\n WebkitTransition: \"\"\n };\n\n if (spec.useTransform) {\n var WebkitTransform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var transform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var msTransform = !spec.vertical ? \"translateX(\" + spec.left + \"px)\" : \"translateY(\" + spec.left + \"px)\";\n style = _objectSpread(_objectSpread({}, style), {}, {\n WebkitTransform: WebkitTransform,\n transform: transform,\n msTransform: msTransform\n });\n } else {\n if (spec.vertical) {\n style[\"top\"] = spec.left;\n } else {\n style[\"left\"] = spec.left;\n }\n }\n\n if (spec.fade) style = {\n opacity: 1\n };\n if (trackWidth) style.width = trackWidth;\n if (trackHeight) style.height = trackHeight; // Fallback for IE8\n\n if (window && !window.addEventListener && window.attachEvent) {\n if (!spec.vertical) {\n style.marginLeft = spec.left + \"px\";\n } else {\n style.marginTop = spec.left + \"px\";\n }\n }\n\n return style;\n};\n\nexports.getTrackCSS = getTrackCSS;\n\nvar getTrackAnimateCSS = function getTrackAnimateCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\", \"speed\", \"cssEase\"]);\n var style = getTrackCSS(spec); // useCSS is true by default so it can be undefined\n\n if (spec.useTransform) {\n style.WebkitTransition = \"-webkit-transform \" + spec.speed + \"ms \" + spec.cssEase;\n style.transition = \"transform \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n if (spec.vertical) {\n style.transition = \"top \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n style.transition = \"left \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n\n return style;\n};\n\nexports.getTrackAnimateCSS = getTrackAnimateCSS;\n\nvar getTrackLeft = function getTrackLeft(spec) {\n if (spec.unslick) {\n return 0;\n }\n\n checkSpecKeys(spec, [\"slideIndex\", \"trackRef\", \"infinite\", \"centerMode\", \"slideCount\", \"slidesToShow\", \"slidesToScroll\", \"slideWidth\", \"listWidth\", \"variableWidth\", \"slideHeight\"]);\n var slideIndex = spec.slideIndex,\n trackRef = spec.trackRef,\n infinite = spec.infinite,\n centerMode = spec.centerMode,\n slideCount = spec.slideCount,\n slidesToShow = spec.slidesToShow,\n slidesToScroll = spec.slidesToScroll,\n slideWidth = spec.slideWidth,\n listWidth = spec.listWidth,\n variableWidth = spec.variableWidth,\n slideHeight = spec.slideHeight,\n fade = spec.fade,\n vertical = spec.vertical;\n var slideOffset = 0;\n var targetLeft;\n var targetSlide;\n var verticalOffset = 0;\n\n if (fade || spec.slideCount === 1) {\n return 0;\n }\n\n var slidesToOffset = 0;\n\n if (infinite) {\n slidesToOffset = -getPreClones(spec); // bring active slide to the beginning of visual area\n // if next scroll doesn't have enough children, just reach till the end of original slides instead of shifting slidesToScroll children\n\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = -(slideIndex > slideCount ? slidesToShow - (slideIndex - slideCount) : slideCount % slidesToScroll);\n } // shift current slide to center of the frame\n\n\n if (centerMode) {\n slidesToOffset += parseInt(slidesToShow / 2);\n }\n } else {\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = slidesToShow - slideCount % slidesToScroll;\n }\n\n if (centerMode) {\n slidesToOffset = parseInt(slidesToShow / 2);\n }\n }\n\n slideOffset = slidesToOffset * slideWidth;\n verticalOffset = slidesToOffset * slideHeight;\n\n if (!vertical) {\n targetLeft = slideIndex * slideWidth * -1 + slideOffset;\n } else {\n targetLeft = slideIndex * slideHeight * -1 + verticalOffset;\n }\n\n if (variableWidth === true) {\n var targetSlideIndex;\n var trackElem = trackRef && trackRef.node;\n targetSlideIndex = slideIndex + getPreClones(spec);\n targetSlide = trackElem && trackElem.childNodes[targetSlideIndex];\n targetLeft = targetSlide ? targetSlide.offsetLeft * -1 : 0;\n\n if (centerMode === true) {\n targetSlideIndex = infinite ? slideIndex + getPreClones(spec) : slideIndex;\n targetSlide = trackElem && trackElem.children[targetSlideIndex];\n targetLeft = 0;\n\n for (var slide = 0; slide < targetSlideIndex; slide++) {\n targetLeft -= trackElem && trackElem.children[slide] && trackElem.children[slide].offsetWidth;\n }\n\n targetLeft -= parseInt(spec.centerPadding);\n targetLeft += targetSlide && (listWidth - targetSlide.offsetWidth) / 2;\n }\n }\n\n return targetLeft;\n};\n\nexports.getTrackLeft = getTrackLeft;\n\nvar getPreClones = function getPreClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n\n if (spec.variableWidth) {\n return spec.slideCount;\n }\n\n return spec.slidesToShow + (spec.centerMode ? 1 : 0);\n};\n\nexports.getPreClones = getPreClones;\n\nvar getPostClones = function getPostClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n\n return spec.slideCount;\n};\n\nexports.getPostClones = getPostClones;\n\nvar getTotalSlides = function getTotalSlides(spec) {\n return spec.slideCount === 1 ? 1 : getPreClones(spec) + spec.slideCount + getPostClones(spec);\n};\n\nexports.getTotalSlides = getTotalSlides;\n\nvar siblingDirection = function siblingDirection(spec) {\n if (spec.targetSlide > spec.currentSlide) {\n if (spec.targetSlide > spec.currentSlide + slidesOnRight(spec)) {\n return \"left\";\n }\n\n return \"right\";\n } else {\n if (spec.targetSlide < spec.currentSlide - slidesOnLeft(spec)) {\n return \"right\";\n }\n\n return \"left\";\n }\n};\n\nexports.siblingDirection = siblingDirection;\n\nvar slidesOnRight = function slidesOnRight(_ref) {\n var slidesToShow = _ref.slidesToShow,\n centerMode = _ref.centerMode,\n rtl = _ref.rtl,\n centerPadding = _ref.centerPadding;\n\n // returns no of slides on the right of active slide\n if (centerMode) {\n var right = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) right += 1;\n if (rtl && slidesToShow % 2 === 0) right += 1;\n return right;\n }\n\n if (rtl) {\n return 0;\n }\n\n return slidesToShow - 1;\n};\n\nexports.slidesOnRight = slidesOnRight;\n\nvar slidesOnLeft = function slidesOnLeft(_ref2) {\n var slidesToShow = _ref2.slidesToShow,\n centerMode = _ref2.centerMode,\n rtl = _ref2.rtl,\n centerPadding = _ref2.centerPadding;\n\n // returns no of slides on the left of active slide\n if (centerMode) {\n var left = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) left += 1;\n if (!rtl && slidesToShow % 2 === 0) left += 1;\n return left;\n }\n\n if (rtl) {\n return slidesToShow - 1;\n }\n\n return 0;\n};\n\nexports.slidesOnLeft = slidesOnLeft;\n\nvar canUseDOM = function canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n};\n\nexports.canUseDOM = canUseDOM;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2xpY2svbGliL3V0aWxzL2lubmVyU2xpZGVyVXRpbHMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsYUFBYTtBQUNiLGlCQUFpQixHQUFHLG9CQUFvQixHQUFHLHFCQUFxQixHQUFHLHdCQUF3QixHQUFHLHNCQUFzQixHQUFHLHFCQUFxQixHQUFHLG9CQUFvQixHQUFHLG9CQUFvQixHQUFHLDBCQUEwQixHQUFHLG1CQUFtQixHQUFHLHFCQUFxQixHQUFHLHFCQUFxQixHQUFHLHNCQUFzQixHQUFHLDJCQUEyQixHQUFHLGdCQUFnQixHQUFHLGlCQUFpQixHQUFHLGtCQUFrQixHQUFHLGtCQUFrQixHQUFHLG1CQUFtQixHQUFHLG9CQUFvQixHQUFHLHdCQUF3QixHQUFHLHFCQUFxQixHQUFHLGlCQUFpQixHQUFHLHlCQUF5QixHQUFHLGlCQUFpQixHQUFHLGdCQUFnQixHQUFHLHlCQUF5QixHQUFHLHdCQUF3QixHQUFHLG9CQUFvQixHQUFHLHNCQUFzQixHQUFHLDZCQUE2QixHQUFHLDZCQUE2QixHQUFHLDBCQUEwQjs7QUFFaHlCLG9DQUFvQyxtQkFBTyxDQUFDLDRDQUFPOztBQUVuRCx1Q0FBdUMsdUNBQXVDOztBQUU5RSwyQ0FBMkMsZ0NBQWdDLG9DQUFvQyxvREFBb0QsOERBQThELGlFQUFpRSxHQUFHLGtDQUFrQzs7QUFFdlUsaUNBQWlDLGdCQUFnQixzQkFBc0IsT0FBTyx1REFBdUQsYUFBYSx1REFBdUQsNENBQTRDLEtBQUssNkNBQTZDLDZFQUE2RSxPQUFPLGlEQUFpRCxtRkFBbUYsT0FBTzs7QUFFdGdCLDRDQUE0QyxrQkFBa0Isa0NBQWtDLG9FQUFvRSxLQUFLLE9BQU8sb0JBQW9COztBQUVwTTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwwQkFBMEI7O0FBRTFCO0FBQ0E7QUFDQTtBQUNBOztBQUVBLG9D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QUVBLHFCQUFxQjs7QUFFckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSxvQkFBb0I7O0FBRXBCO0FBQ0E7QUFDQTs7QUFFQSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXNsaWNrL2xpYi91dGlscy9pbm5lclNsaWRlclV0aWxzLmpzP2E5OWEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmNsYW1wID0gY2xhbXA7XG5leHBvcnRzLmNhblVzZURPTSA9IGV4cG9ydHMuc2xpZGVzT25MZWZ0ID0gZXhwb3J0cy5zbGlkZXNPblJpZ2h0ID0gZXhwb3J0cy5zaWJsaW5nRGlyZWN0aW9uID0gZXhwb3J0cy5nZXRUb3RhbFNsaWRlcyA9IGV4cG9ydHMuZ2V0UG9zdENsb25lcyA9IGV4cG9ydHMuZ2V0UHJlQ2xvbmVzID0gZXhwb3J0cy5nZXRUcmFja0xlZnQgPSBleHBvcnRzLmdldFRyYWNrQW5pbWF0ZUNTUyA9IGV4cG9ydHMuZ2V0VHJhY2tDU1MgPSBleHBvcnRzLmNoZWNrU3BlY0tleXMgPSBleHBvcnRzLmdldFNsaWRlQ291bnQgPSBleHBvcnRzLmNoZWNrTmF2aWdhYmxlID0gZXhwb3J0cy5nZXROYXZpZ2FibGVJbmRleGVzID0gZXhwb3J0cy5zd2lwZUVuZCA9IGV4cG9ydHMuc3dpcGVNb3ZlID0gZXhwb3J0cy5zd2lwZVN0YXJ0ID0gZXhwb3J0cy5rZXlIYW5kbGVyID0gZXhwb3J0cy5jaGFuZ2VTbGlkZSA9IGV4cG9ydHMuc2xpZGVIYW5kbGVyID0gZXhwb3J0cy5pbml0aWFsaXplZFN0YXRlID0gZXhwb3J0cy5leHRyYWN0T2JqZWN0ID0gZXhwb3J0cy5jYW5Hb05leHQgPSBleHBvcnRzLmdldFN3aXBlRGlyZWN0aW9uID0gZXhwb3J0cy5nZXRIZWlnaHQgPSBleHBvcnRzLmdldFdpZHRoID0gZXhwb3J0cy5sYXp5U2xpZGVzT25SaWdodCA9IGV4cG9ydHMubGF6eVNsaWRlc09uTGVmdCA9IGV4cG9ydHMubGF6eUVuZEluZGV4ID0gZXhwb3J0cy5sYXp5U3RhcnRJbmRleCA9IGV4cG9ydHMuZ2V0UmVxdWlyZWRMYXp5U2xpZGVzID0gZXhwb3J0cy5nZXRPbkRlbWFuZExhenlTbGlkZXMgPSBleHBvcnRzLnNhZmVQcmV2ZW50RGVmYXVsdCA9IHZvaWQgMDtcblxudmFyIF9yZWFjdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJlYWN0XCIpKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIG93bktleXMob2JqZWN0LCBlbnVtZXJhYmxlT25seSkgeyB2YXIga2V5cyA9IE9iamVjdC5rZXlzKG9iamVjdCk7IGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7IHZhciBzeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhvYmplY3QpOyBpZiAoZW51bWVyYWJsZU9ubHkpIHN5bWJvbHMgPSBzeW1ib2xzLmZpbHRlcihmdW5jdGlvbiAoc3ltKSB7IHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iamVjdCwgc3ltKS5lbnVtZXJhYmxlOyB9KTsga2V5cy5wdXNoLmFwcGx5KGtleXMsIHN5bWJvbHMpOyB9IHJldHVybiBrZXlzOyB9XG5cbmZ1bmN0aW9uIF9vYmplY3RTcHJlYWQodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV0gIT0gbnVsbCA/IGFyZ3VtZW50c1tpXSA6IHt9OyBpZiAoaSAlIDIpIHsgb3duS2V5cyhPYmplY3Qoc291cmNlKSwgdHJ1ZSkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7IF9kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgc291cmNlW2tleV0pOyB9KTsgfSBlbHNlIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycykgeyBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHNvdXJjZSkpOyB9IGVsc2UgeyBvd25LZXlzKE9iamVjdChzb3VyY2UpKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNvdXJjZSwga2V5KSk7IH0pOyB9IH0gcmV0dXJuIHRhcmdldDsgfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHZhbHVlKSB7IGlmIChrZXkgaW4gb2JqKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgeyB2YWx1ZTogdmFsdWUsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUgfSk7IH0gZWxzZSB7IG9ialtrZXldID0gdmFsdWU7IH0gcmV0dXJuIG9iajsgfVxuXG5mdW5jdGlvbiBjbGFtcChudW1iZXIsIGxvd2VyQm91bmQsIHVwcGVyQm91bmQpIHtcbiAgcmV0dXJuIE1hdGgubWF4KGxvd2VyQm91bmQsIE1hdGgubWluKG51bWJlciwgdXBwZXJCb3VuZCkpO1xufVxuXG52YXIgc2FmZVByZXZlbnREZWZhdWx0ID0gZnVuY3Rpb24gc2FmZVByZXZlbnREZWZhdWx0KGV2ZW50KSB7XG4gIHZhciBwYXNzaXZlRXZlbnRzID0gW1wib25Ub3VjaFN0YXJ0XCIsIFwib25Ub3VjaE1vdmVcIiwgXCJvbldoZWVsXCJdO1xuXG4gIGlmICghcGFzc2l2ZUV2ZW50cy5pbmNsdWRlcyhldmVudC5fcmVhY3ROYW1lKSkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cbn07XG5cbmV4cG9ydHMuc2FmZVByZXZlbnREZWZhdWx0ID0gc2FmZVByZXZlbnREZWZhdWx0O1xuXG52YXIgZ2V0T25EZW1hbmRMYXp5U2xpZGVzID0gZnVuY3Rpb24gZ2V0T25EZW1hbmRMYXp5U2xpZGVzKHNwZWMpIHtcbiAgdmFyIG9uRGVtYW5kU2xpZGVzID0gW107XG4gIHZhciBzdGFydEluZGV4ID0gbGF6eVN0YXJ0SW5kZXgoc3BlYyk7XG4gIHZhciBlbmRJbmRleCA9IGxhenlFbmRJbmRleChzcGVjKTtcblxuICBmb3IgKHZhciBzbGlkZUluZGV4ID0gc3RhcnRJbmRleDsgc2xpZGVJbmRleCA8IGVuZEluZGV4OyBzbGlkZUluZGV4KyspIHtcbiAgICBpZiAoc3BlYy5sYXp5TG9hZGVkTGlzdC5pbmRleE9mKHNsaWRlSW5kZXgpIDwgMCkge1xuICAgICAgb25EZW1hbmRTbGlkZXMucHVzaChzbGlkZUluZGV4KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gb25EZW1hbmRTbGlkZXM7XG59OyAvLyByZXR1cm4gbGlzdCBvZiBzbGlkZXMgdGhhdCBuZWVkIHRvIGJlIHByZXNlbnRcblxuXG5leHBvcnRzLmdldE9uRGVtYW5kTGF6eVNsaWRlcyA9IGdldE9uRGVtYW5kTGF6eVNsaWRlcztcblxudmFyIGdldFJlcXVpcmVkTGF6eVNsaWRlcyA9IGZ1bmN0aW9uIGdldFJlcXVpcmVkTGF6eVNsaWRlcyhzcGVjKSB7XG4gIHZhciByZXF1aXJlZFNsaWRlcyA9IFtdO1xuICB2YXIgc3RhcnRJbmRleCA9IGxhenlTdGFydEluZGV4KHNwZWMpO1xuICB2YXIgZW5kSW5kZXggPSBsYXp5RW5kSW5kZXgoc3BlYyk7XG5cbiAgZm9yICh2YXIgc2xpZGVJbmRleCA9IHN0YXJ0SW5kZXg7IHNsaWRlSW5kZXggPCBlbmRJbmRleDsgc2xpZGVJbmRleCsrKSB7XG4gICAgcmVxdWlyZWRTbGlkZXMucHVzaChzbGlkZUluZGV4KTtcbiAgfVxuXG4gIHJldHVybiByZXF1aXJlZFNsaWRlcztcbn07IC8vIHN0YXJ0SW5kZXggdGhhdCBuZWVkcyB0byBiZSBwcmVzZW50XG5cblxuZXhwb3J0cy5nZXRSZXF1aXJlZExhenlTbGlkZXMgPSBnZXRSZXF1aXJlZExhenlTbGlkZXM7XG5cbnZhciBsYXp5U3RhcnRJbmRleCA9IGZ1bmN0aW9uIGxhenlTdGFydEluZGV4KHNwZWMpIHtcbiAgcmV0dXJuIHNwZWMuY3VycmVudFNsaWRlIC0gbGF6eVNsaWRlc09uTGVmdChzcGVjKTtcbn07XG5cbmV4cG9ydHMubGF6eVN0YXJ0SW5kZXggPSBsYXp5U3RhcnRJbmRleDtcblxudmFyIGxhenlFbmRJbmRleCA9IGZ1bmN0aW9uIGxhenlFbmRJbmRleChzcGVjKSB7XG4gIHJldHVybiBzcGVjLmN1cnJlbnRTbGlkZSArIGxhenlTbGlkZXNPblJpZ2h0KHNwZWMpO1xufTtcblxuZXhwb3J0cy5sYXp5RW5kSW5kZXggPSBsYXp5RW5kSW5kZXg7XG5cbnZhciBsYXp5U2xpZGVzT25MZWZ0ID0gZnVuY3Rpb24gbGF6eVNsaWRlc09uTGVmdChzcGVjKSB7XG4gIHJldHVybiBzcGVjLmNlbnRlck1vZGUgPyBNYXRoLmZsb29yKHNwZWMuc2xpZGVzVG9TaG93IC8gMikgKyAocGFyc2VJbnQoc3BlYy5jZW50ZXJQYWRkaW5nKSA+IDAgPyAxIDogMCkgOiAwO1xufTtcblxuZXhwb3J0cy5sYXp5U2xpZGVzT25MZWZ0ID0gbGF6eVNsaWRlc09uTGVmdDtcblxudmFyIGxhenlTbGlkZXNPblJpZ2h0ID0gZnVuY3Rpb24gbGF6eVNsaWRlc09uUmlnaHQoc3BlYykge1xuICByZXR1cm4gc3BlYy5jZW50ZXJNb2RlID8gTWF0aC5mbG9vcigoc3BlYy5zbGlkZXNUb1Nob3cgLSAxKSAvIDIpICsgMSArIChwYXJzZUludChzcGVjLmNlbnRlclBhZGRpbmcpID4gMCA/IDEgOiAwKSA6IHNwZWMuc2xpZGVzVG9TaG93O1xufTsgLy8gZ2V0IHdpZHRoIG9mIGFuIGVsZW1lbnRcblxuXG5leHBvcnRzLmxhenlTbGlkZXNPblJpZ2h0ID0gbGF6eVNsaWRlc09uUmlnaHQ7XG5cbnZhciBnZXRXaWR0aCA9IGZ1bmN0aW9uIGdldFdpZHRoKGVsZW0pIHtcbiAgcmV0dXJuIGVsZW0gJiYgZWxlbS5vZmZzZXRXaWR0aCB8fCAwO1xufTtcblxuZXhwb3J0cy5nZXRXaWR0aCA9IGdldFdpZHRoO1xuXG52YXIgZ2V0SGVpZ2h0ID0gZnVuY3Rpb24gZ2V0SGVpZ2h0KGVsZW0pIHtcbiAgcmV0dXJuIGVsZW0gJiYgZWxlbS5vZmZzZXRIZWlnaHQgfHwgMDtcbn07XG5cbmV4cG9ydHMuZ2V0SGVpZ2h0ID0gZ2V0SGVpZ2h0O1xuXG52YXIgZ2V0U3dpcGVEaXJlY3Rpb24gPSBmdW5jdGlvbiBnZXRTd2lwZURpcmVjdGlvbih0b3VjaE9iamVjdCkge1xuICB2YXIgdmVydGljYWxTd2lwaW5nID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiBmYWxzZTtcbiAgdmFyIHhEaXN0LCB5RGlzdCwgciwgc3dpcGVBbmdsZTtcbiAgeERpc3QgPSB0b3VjaE9iamVjdC5zdGFydFggLSB0b3VjaE9iamVjdC5jdXJYO1xuICB5RGlzdCA9IHRvdWNoT2JqZWN0LnN0YXJ0WSAtIHRvdWNoT2JqZWN0LmN1clk7XG4gIHIgPSBNYXRoLmF0YW4yKHlEaXN0LCB4RGlzdCk7XG4gIHN3aXBlQW5nbGUgPSBNYXRoLnJvdW5kKHIgKiAxODAgLyBNYXRoLlBJKTtcblxuICBpZiAoc3dpcGVBbmdsZSA8IDApIHtcbiAgICBzd2lwZUFuZ2xlID0gMzYwIC0gTWF0aC5hYnMoc3dpcGVBbmdsZSk7XG4gIH1cblxuICBpZiAoc3dpcGVBbmdsZSA8PSA0NSAmJiBzd2lwZUFuZ2xlID49IDAgfHwgc3dpcGVBbmdsZSA8PSAzNjAgJiYgc3dpcGVBbmdsZSA+PSAzMTUpIHtcbiAgICByZXR1cm4gXCJsZWZ0XCI7XG4gIH1cblxuICBpZiAoc3dpcGVBbmdsZSA+PSAxMzUgJiYgc3dpcGVBbmdsZSA8PSAyMjUpIHtcbiAgICByZXR1cm4gXCJyaWdodFwiO1xuICB9XG5cbiAgaWYgKHZlcnRpY2FsU3dpcGluZyA9PT0gdHJ1ZSkge1xuICAgIGlmIChzd2lwZUFuZ2xlID49IDM1ICYmIHN3aXBlQW5nbGUgPD0gMTM1KSB7XG4gICAgICByZXR1cm4gXCJ1cFwiO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gXCJkb3duXCI7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFwidmVydGljYWxcIjtcbn07IC8vIHdoZXRoZXIgb3Igbm90IHdlIGNhbiBnbyBuZXh0XG5cblxuZXhwb3J0cy5nZXRTd2lwZURpcmVjdGlvbiA9IGdldFN3aXBlRGlyZWN0aW9uO1xuXG52YXIgY2FuR29OZXh0ID0gZnVuY3Rpb24gY2FuR29OZXh0KHNwZWMpIHtcbiAgdmFyIGNhbkdvID0gdHJ1ZTtcblxuICBpZiAoIXNwZWMuaW5maW5pdGUpIHtcbiAgICBpZiAoc3BlYy5jZW50ZXJNb2RlICYmIHNwZWMuY3VycmVudFNsaWRlID49IHNwZWMuc2xpZGVDb3VudCAtIDEpIHtcbiAgICAgIGNhbkdvID0gZmFsc2U7XG4gICAgfSBlbHNlIGlmIChzcGVjLnNsaWRlQ291bnQgPD0gc3BlYy5zbGlkZXNUb1Nob3cgfHwgc3BlYy5jdXJyZW50U2xpZGUgPj0gc3BlYy5zbGlkZUNvdW50IC0gc3BlYy5zbGlkZXNUb1Nob3cpIHtcbiAgICAgIGNhbkdvID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNhbkdvO1xufTsgLy8gZ2l2ZW4gYW4gb2JqZWN0IGFuZCBhIGxpc3Qgb2Yga2V5cywgcmV0dXJuIG5ldyBvYmplY3Qgd2l0aCBnaXZlbiBrZXlzXG5cblxuZXhwb3J0cy5jYW5Hb05leHQgPSBjYW5Hb05leHQ7XG5cbnZhciBleHRyYWN0T2JqZWN0ID0gZnVuY3Rpb24gZXh0cmFjdE9iamVjdChzcGVjLCBrZXlzKSB7XG4gIHZhciBuZXdPYmplY3QgPSB7fTtcbiAga2V5cy5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICByZXR1cm4gbmV3T2JqZWN0W2tleV0gPSBzcGVjW2tleV07XG4gIH0pO1xuICByZXR1cm4gbmV3T2JqZWN0O1xufTsgLy8gZ2V0IGluaXRpYWxpemVkIHN0YXRlXG5cblxuZXhwb3J0cy5leHRyYWN0T2JqZWN0ID0gZXh0cmFjdE9iamVjdDtcblxudmFyIGluaXRpYWxpemVkU3RhdGUgPSBmdW5jdGlvbiBpbml0aWFsaXplZFN0YXRlKHNwZWMpIHtcbiAgLy8gc3BlYyBhbHNvIGNvbnRhaW5zIGxpc3RSZWYsIHRyYWNrUmVmXG4gIHZhciBzbGlkZUNvdW50ID0gX3JlYWN0W1wiZGVmYXVsdFwiXS5DaGlsZHJlbi5jb3VudChzcGVjLmNoaWxkcmVuKTtcblxuICB2YXIgbGlzdE5vZGUgPSBzcGVjLmxpc3RSZWY7XG4gIHZhciBsaXN0V2lkdGggPSBNYXRoLmNlaWwoZ2V0V2lkdGgobGlzdE5vZGUpKTtcbiAgdmFyIHRyYWNrTm9kZSA9IHNwZWMudHJhY2tSZWYgJiYgc3BlYy50cmFja1JlZi5ub2RlO1xuICB2YXIgdHJhY2tXaWR0aCA9IE1hdGguY2VpbChnZXRXaWR0aCh0cmFja05vZGUpKTtcbiAgdmFyIHNsaWRlV2lkdGg7XG5cbiAgaWYgKCFzcGVjLnZlcnRpY2FsKSB7XG4gICAgdmFyIGNlbnRlclBhZGRpbmdBZGogPSBzcGVjLmNlbnRlck1vZGUgJiYgcGFyc2VJbnQoc3BlYy5jZW50ZXJQYWRkaW5nKSAqIDI7XG5cbiAgICBpZiAodHlwZW9mIHNwZWMuY2VudGVyUGFkZGluZyA9PT0gXCJzdHJpbmdcIiAmJiBzcGVjLmNlbnRlclBhZGRpbmcuc2xpY2UoLTEpID09PSBcIiVcIikge1xuICAgICAgY2VudGVyUGFkZGluZ0FkaiAqPSBsaXN0V2lkdGggLyAxMDA7XG4gICAgfVxuXG4gICAgc2xpZGVXaWR0aCA9IE1hdGguY2VpbCgobGlzdFdpZHRoIC0gY2VudGVyUGFkZGluZ0FkaikgLyBzcGVjLnNsaWRlc1RvU2hvdyk7XG4gIH0gZWxzZSB7XG4gICAgc2xpZGVXaWR0aCA9IGxpc3RXaWR0aDtcbiAgfVxuXG4gIHZhciBzbGlkZUhlaWdodCA9IGxpc3ROb2RlICYmIGdldEhlaWdodChsaXN0Tm9kZS5xdWVyeVNlbGVjdG9yKCdbZGF0YS1pbmRleD1cIjBcIl0nKSk7XG4gIHZhciBsaXN0SGVpZ2h0ID0gc2xpZGVIZWlnaHQgKiBzcGVjLnNsaWRlc1RvU2hvdztcbiAgdmFyIGN1cnJlbnRTbGlkZSA9IHNwZWMuY3VycmVudFNsaWRlID09PSB1bmRlZmluZWQgPyBzcGVjLmluaXRpYWxTbGlkZSA6IHNwZWMuY3VycmVudFNsaWRlO1xuXG4gIGlmIChzcGVjLnJ0bCAmJiBzcGVjLmN1cnJlbnRTbGlkZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgY3VycmVudFNsaWRlID0gc2xpZGVDb3VudCAtIDEgLSBzcGVjLmluaXRpYWxTbGlkZTtcbiAgfVxuXG4gIHZhciBsYXp5TG9hZGVkTGlzdCA9IHNwZWMubGF6eUxvYWRlZExpc3QgfHwgW107XG4gIHZhciBzbGlkZXNUb0xvYWQgPSBnZXRPbkRlbWFuZExhenlTbGlkZXMoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzcGVjKSwge30sIHtcbiAgICBjdXJyZW50U2xpZGU6IGN1cnJlbnRTbGlkZSxcbiAgICBsYXp5TG9hZGVkTGlzdDogbGF6eUxvYWRlZExpc3RcbiAgfSkpO1xuICBsYXp5TG9hZGVkTGlzdCA9IGxhenlMb2FkZWRMaXN0LmNvbmNhdChzbGlkZXNUb0xvYWQpO1xuICB2YXIgc3RhdGUgPSB7XG4gICAgc2xpZGVDb3VudDogc2xpZGVDb3VudCxcbiAgICBzbGlkZVdpZHRoOiBzbGlkZVdpZHRoLFxuICAgIGxpc3RXaWR0aDogbGlzdFdpZHRoLFxuICAgIHRyYWNrV2lkdGg6IHRyYWNrV2lkdGgsXG4gICAgY3VycmVudFNsaWRlOiBjdXJyZW50U2xpZGUsXG4gICAgc2xpZGVIZWlnaHQ6IHNsaWRlSGVpZ2h0LFxuICAgIGxpc3RIZWlnaHQ6IGxpc3RIZWlnaHQsXG4gICAgbGF6eUxvYWRlZExpc3Q6IGxhenlMb2FkZWRMaXN0XG4gIH07XG5cbiAgaWYgKHNwZWMuYXV0b3BsYXlpbmcgPT09IG51bGwgJiYgc3BlYy5hdXRvcGxheSkge1xuICAgIHN0YXRlW1wiYXV0b3BsYXlpbmdcIl0gPSBcInBsYXlpbmdcIjtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZTtcbn07XG5cbmV4cG9ydHMuaW5pdGlhbGl6ZWRTdGF0ZSA9IGluaXRpYWxpemVkU3RhdGU7XG5cbnZhciBzbGlkZUhhbmRsZXIgPSBmdW5jdGlvbiBzbGlkZUhhbmRsZXIoc3BlYykge1xuICB2YXIgd2FpdEZvckFuaW1hdGUgPSBzcGVjLndhaXRGb3JBbmltYXRlLFxuICAgICAgYW5pbWF0aW5nID0gc3BlYy5hbmltYXRpbmcsXG4gICAgICBmYWRlID0gc3BlYy5mYWRlLFxuICAgICAgaW5maW5pdGUgPSBzcGVjLmluZmluaXRlLFxuICAgICAgaW5kZXggPSBzcGVjLmluZGV4LFxuICAgICAgc2xpZGVDb3VudCA9IHNwZWMuc2xpZGVDb3VudCxcbiAgICAgIGxhenlMb2FkID0gc3BlYy5sYXp5TG9hZCxcbiAgICAgIGN1cnJlbnRTbGlkZSA9IHNwZWMuY3VycmVudFNsaWRlLFxuICAgICAgY2VudGVyTW9kZSA9IHNwZWMuY2VudGVyTW9kZSxcbiAgICAgIHNsaWRlc1RvU2Nyb2xsID0gc3BlYy5zbGlkZXNUb1Njcm9sbCxcbiAgICAgIHNsaWRlc1RvU2hvdyA9IHNwZWMuc2xpZGVzVG9TaG93LFxuICAgICAgdXNlQ1NTID0gc3BlYy51c2VDU1M7XG4gIHZhciBsYXp5TG9hZGVkTGlzdCA9IHNwZWMubGF6eUxvYWRlZExpc3Q7XG4gIGlmICh3YWl0Rm9yQW5pbWF0ZSAmJiBhbmltYXRpbmcpIHJldHVybiB7fTtcbiAgdmFyIGFuaW1hdGlvblNsaWRlID0gaW5kZXgsXG4gICAgICBmaW5hbFNsaWRlLFxuICAgICAgYW5pbWF0aW9uTGVmdCxcbiAgICAgIGZpbmFsTGVmdDtcbiAgdmFyIHN0YXRlID0ge30sXG4gICAgICBuZXh0U3RhdGUgPSB7fTtcbiAgdmFyIHRhcmdldFNsaWRlID0gaW5maW5pdGUgPyBpbmRleCA6IGNsYW1wKGluZGV4LCAwLCBzbGlkZUNvdW50IC0gMSk7XG5cbiAgaWYgKGZhZGUpIHtcbiAgICBpZiAoIWluZmluaXRlICYmIChpbmRleCA8IDAgfHwgaW5kZXggPj0gc2xpZGVDb3VudCkpIHJldHVybiB7fTtcblxuICAgIGlmIChpbmRleCA8IDApIHtcbiAgICAgIGFuaW1hdGlvblNsaWRlID0gaW5kZXggKyBzbGlkZUNvdW50O1xuICAgIH0gZWxzZSBpZiAoaW5kZXggPj0gc2xpZGVDb3VudCkge1xuICAgICAgYW5pbWF0aW9uU2xpZGUgPSBpbmRleCAtIHNsaWRlQ291bnQ7XG4gICAgfVxuXG4gICAgaWYgKGxhenlMb2FkICYmIGxhenlMb2FkZWRMaXN0LmluZGV4T2YoYW5pbWF0aW9uU2xpZGUpIDwgMCkge1xuICAgICAgbGF6eUxvYWRlZExpc3QgPSBsYXp5TG9hZGVkTGlzdC5jb25jYXQoYW5pbWF0aW9uU2xpZGUpO1xuICAgIH1cblxuICAgIHN0YXRlID0ge1xuICAgICAgYW5pbWF0aW5nOiB0cnVlLFxuICAgICAgY3VycmVudFNsaWRlOiBhbmltYXRpb25TbGlkZSxcbiAgICAgIGxhenlMb2FkZWRMaXN0OiBsYXp5TG9hZGVkTGlzdCxcbiAgICAgIHRhcmdldFNsaWRlOiBhbmltYXRpb25TbGlkZVxuICAgIH07XG4gICAgbmV4dFN0YXRlID0ge1xuICAgICAgYW5pbWF0aW5nOiBmYWxzZSxcbiAgICAgIHRhcmdldFNsaWRlOiBhbmltYXRpb25TbGlkZVxuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgZmluYWxTbGlkZSA9IGFuaW1hdGlvblNsaWRlO1xuXG4gICAgaWYgKGFuaW1hdGlvblNsaWRlIDwgMCkge1xuICAgICAgZmluYWxTbGlkZSA9IGFuaW1hdGlvblNsaWRlICsgc2xpZGVDb3VudDtcbiAgICAgIGlmICghaW5maW5pdGUpIGZpbmFsU2xpZGUgPSAwO2Vsc2UgaWYgKHNsaWRlQ291bnQgJSBzbGlkZXNUb1Njcm9sbCAhPT0gMCkgZmluYWxTbGlkZSA9IHNsaWRlQ291bnQgLSBzbGlkZUNvdW50ICUgc2xpZGVzVG9TY3JvbGw7XG4gICAgfSBlbHNlIGlmICghY2FuR29OZXh0KHNwZWMpICYmIGFuaW1hdGlvblNsaWRlID4gY3VycmVudFNsaWRlKSB7XG4gICAgICBhbmltYXRpb25TbGlkZSA9IGZpbmFsU2xpZGUgPSBjdXJyZW50U2xpZGU7XG4gICAgfSBlbHNlIGlmIChjZW50ZXJNb2RlICYmIGFuaW1hdGlvblNsaWRlID49IHNsaWRlQ291bnQpIHtcbiAgICAgIGFuaW1hdGlvblNsaWRlID0gaW5maW5pdGUgPyBzbGlkZUNvdW50IDogc2xpZGVDb3VudCAtIDE7XG4gICAgICBmaW5hbFNsaWRlID0gaW5maW5pdGUgPyAwIDogc2xpZGVDb3VudCAtIDE7XG4gICAgfSBlbHNlIGlmIChhbmltYXRpb25TbGlkZSA+PSBzbGlkZUNvdW50KSB7XG4gICAgICBmaW5hbFNsaWRlID0gYW5pbWF0aW9uU2xpZGUgLSBzbGlkZUNvdW50O1xuICAgICAgaWYgKCFpbmZpbml0ZSkgZmluYWxTbGlkZSA9IHNsaWRlQ291bnQgLSBzbGlkZXNUb1Nob3c7ZWxzZSBpZiAoc2xpZGVDb3VudCAlIHNsaWRlc1RvU2Nyb2xsICE9PSAwKSBmaW5hbFNsaWRlID0gMDtcbiAgICB9XG5cbiAgICBpZiAoIWluZmluaXRlICYmIGFuaW1hdGlvblNsaWRlICsgc2xpZGVzVG9TaG93ID49IHNsaWRlQ291bnQpIHtcbiAgICAgIGZpbmFsU2xpZGUgPSBzbGlkZUNvdW50IC0gc2xpZGVzVG9TaG93O1xuICAgIH1cblxuICAgIGFuaW1hdGlvbkxlZnQgPSBnZXRUcmFja0xlZnQoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzcGVjKSwge30sIHtcbiAgICAgIHNsaWRlSW5kZXg6IGFuaW1hdGlvblNsaWRlXG4gICAgfSkpO1xuICAgIGZpbmFsTGVmdCA9IGdldFRyYWNrTGVmdChfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHNwZWMpLCB7fSwge1xuICAgICAgc2xpZGVJbmRleDogZmluYWxTbGlkZVxuICAgIH0pKTtcblxuICAgIGlmICghaW5maW5pdGUpIHtcbiAgICAgIGlmIChhbmltYXRpb25MZWZ0ID09PSBmaW5hbExlZnQpIGFuaW1hdGlvblNsaWRlID0gZmluYWxTbGlkZTtcbiAgICAgIGFuaW1hdGlvbkxlZnQgPSBmaW5hbExlZnQ7XG4gICAgfVxuXG4gICAgaWYgKGxhenlMb2FkKSB7XG4gICAgICBsYXp5TG9hZGVkTGlzdCA9IGxhenlMb2FkZWRMaXN0LmNvbmNhdChnZXRPbkRlbWFuZExhenlTbGlkZXMoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzcGVjKSwge30sIHtcbiAgICAgICAgY3VycmVudFNsaWRlOiBhbmltYXRpb25TbGlkZVxuICAgICAgfSkpKTtcbiAgICB9XG5cbiAgICBpZiAoIXVzZUNTUykge1xuICAgICAgc3RhdGUgPSB7XG4gICAgICAgIGN1cnJlbnRTbGlkZTogZmluYWxTbGlkZSxcbiAgICAgICAgdHJhY2tTdHlsZTogZ2V0VHJhY2tDU1MoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzcGVjKSwge30sIHtcbiAgICAgICAgICBsZWZ0OiBmaW5hbExlZnRcbiAgICAgICAgfSkpLFxuICAgICAgICBsYXp5TG9hZGVkTGlzdDogbGF6eUxvYWRlZExpc3QsXG4gICAgICAgIHRhcmdldFNsaWRlOiB0YXJnZXRTbGlkZVxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RhdGUgPSB7XG4gICAgICAgIGFuaW1hdGluZzogdHJ1ZSxcbiAgICAgICAgY3VycmVudFNsaWRlOiBmaW5hbFNsaWRlLFxuICAgICAgICB0cmFja1N0eWxlOiBnZXRUcmFja0FuaW1hdGVDU1MoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzcGVjKSwge30sIHtcbiAgICAgICAgICBsZWZ0OiBhbmltYXRpb25MZWZ0XG4gICAgICAgIH0pKSxcbiAgICAgICAgbGF6eUxvYWRlZExpc3Q6IGxhenlMb2FkZWRMaXN0LFxuICAgICAgICB0YXJnZXRTbGlkZTogdGFyZ2V0U2xpZGVcbiAgICAgIH07XG4gICAgICBuZXh0U3RhdGUgPSB7XG4gICAgICAgIGFuaW1hdGluZzogZmFsc2UsXG4gICAgICAgIGN1cnJlbnRTbGlkZTogZmluYWxTbGlkZSxcbiAgICAgICAgdHJhY2tTdHlsZTogZ2V0VHJhY2tDU1MoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzcGVjKSwge30sIHtcbiAgICAgICAgICBsZWZ0OiBmaW5hbExlZnRcbiAgICAgICAgfSkpLFxuICAgICAgICBzd2lwZUxlZnQ6IG51bGwsXG4gICAgICAgIHRhcmdldFNsaWRlOiB0YXJnZXRTbGlkZVxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHN0YXRlOiBzdGF0ZSxcbiAgICBuZXh0U3RhdGU6IG5leHRTdGF0ZVxuICB9O1xufTtcblxuZXhwb3J0cy5zbGlkZUhhbmRsZXIgPSBzbGlkZUhhbmRsZXI7XG5cbnZhciBjaGFuZ2VTbGlkZSA9IGZ1bmN0aW9uIGNoYW5nZVNsaWRlKHNwZWMsIG9wdGlvbnMpIHtcbiAgdmFyIGluZGV4T2Zmc2V0LCBwcmV2aW91c0ludCwgc2xpZGVPZmZzZXQsIHVuZXZlbk9mZnNldCwgdGFyZ2V0U2xpZGU7XG4gIHZhciBzbGlkZXNUb1Njcm9sbCA9IHNwZWMuc2xpZGVzVG9TY3JvbGwsXG4gICAgICBzbGlkZXNUb1Nob3cgPSBzcGVjLnNsaWRlc1RvU2hvdyxcbiAgICAgIHNsaWRlQ291bnQgPSBzcGVjLnNsaWRlQ291bnQsXG4gICAgICBjdXJyZW50U2xpZGUgPSBzcGVjLmN1cnJlbnRTbGlkZSxcbiAgICAgIHByZXZpb3VzVGFyZ2V0U2xpZGUgPSBzcGVjLnRhcmdldFNsaWRlLFxuICAgICAgbGF6eUxvYWQgPSBzcGVjLmxhenlMb2FkLFxuICAgICAgaW5maW5pdGUgPSBzcGVjLmluZmluaXRlO1xuICB1bmV2ZW5PZmZzZXQgPSBzbGlkZUNvdW50ICUgc2xpZGVzVG9TY3JvbGwgIT09IDA7XG4gIGluZGV4T2Zmc2V0ID0gdW5ldmVuT2Zmc2V0ID8gMCA6IChzbGlkZUNvdW50IC0gY3VycmVudFNsaWRlKSAlIHNsaWRlc1RvU2Nyb2xsO1xuXG4gIGlmIChvcHRpb25zLm1lc3NhZ2UgPT09IFwicHJldmlvdXNcIikge1xuICAgIHNsaWRlT2Zmc2V0ID0gaW5kZXhPZmZzZXQgPT09IDAgPyBzbGlkZXNUb1Njcm9sbCA6IHNsaWRlc1RvU2hvdyAtIGluZGV4T2Zmc2V0O1xuICAgIHRhcmdldFNsaWRlID0gY3VycmVudFNsaWRlIC0gc2xpZGVPZmZzZXQ7XG5cbiAgICBpZiAobGF6eUxvYWQgJiYgIWluZmluaXRlKSB7XG4gICAgICBwcmV2aW91c0ludCA9IGN1cnJlbnRTbGlkZSAtIHNsaWRlT2Zmc2V0O1xuICAgICAgdGFyZ2V0U2xpZGUgPSBwcmV2aW91c0ludCA9PT0gLTEgPyBzbGlkZUNvdW50IC0gMSA6IHByZXZpb3VzSW50O1xuICAgIH1cblxuICAgIGlmICghaW5maW5pdGUpIHtcbiAgICAgIHRhcmdldFNsaWRlID0gcHJldmlvdXNUYXJnZXRTbGlkZSAtIHNsaWRlc1RvU2Nyb2xsO1xuICAgIH1cbiAgfSBlbHNlIGlmIChvcHRpb25zLm1lc3NhZ2UgPT09IFwibmV4dFwiKSB7XG4gICAgc2xpZGVPZmZzZXQgPSBpbmRleE9mZnNldCA9PT0gMCA/IHNsaWRlc1RvU2Nyb2xsIDogaW5kZXhPZmZzZXQ7XG4gICAgdGFyZ2V0U2xpZGUgPSBjdXJyZW50U2xpZGUgKyBzbGlkZU9mZnNldDtcblxuICAgIGlmIChsYXp5TG9hZCAmJiAhaW5maW5pdGUpIHtcbiAgICAgIHRhcmdldFNsaWRlID0gKGN1cnJlbnRTbGlkZSArIHNsaWRlc1RvU2Nyb2xsKSAlIHNsaWRlQ291bnQgKyBpbmRleE9mZnNldDtcbiAgICB9XG5cbiAgICBpZiAoIWluZmluaXRlKSB7XG4gICAgICB0YXJnZXRTbGlkZSA9IHByZXZpb3VzVGFyZ2V0U2xpZGUgKyBzbGlkZXNUb1Njcm9sbDtcbiAgICB9XG4gIH0gZWxzZSBpZiAob3B0aW9ucy5tZXNzYWdlID09PSBcImRvdHNcIikge1xuICAgIC8vIENsaWNrIG9uIGRvdHNcbiAgICB0YXJnZXRTbGlkZSA9IG9wdGlvbnMuaW5kZXggKiBvcHRpb25zLnNsaWRlc1RvU2Nyb2xsO1xuICB9IGVsc2UgaWYgKG9wdGlvbnMubWVzc2FnZSA9PT0gXCJjaGlsZHJlblwiKSB7XG4gICAgLy8gQ2xpY2sgb24gdGhlIHNsaWRlc1xuICAgIHRhcmdldFNsaWRlID0gb3B0aW9ucy5pbmRleDtcblxuICAgIGlmIChpbmZpbml0ZSkge1xuICAgICAgdmFyIGRpcmVjdGlvbiA9IHNpYmxpbmdEaXJlY3Rpb24oX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzcGVjKSwge30sIHtcbiAgICAgICAgdGFyZ2V0U2xpZGU6IHRhcmdldFNsaWRlXG4gICAgICB9KSk7XG5cbiAgICAgIGlmICh0YXJnZXRTbGlkZSA+IG9wdGlvbnMuY3VycmVudFNsaWRlICYmIGRpcmVjdGlvbiA9PT0gXCJsZWZ0XCIpIHtcbiAgICAgICAgdGFyZ2V0U2xpZGUgPSB0YXJnZXRTbGlkZSAtIHNsaWRlQ291bnQ7XG4gICAgICB9IGVsc2UgaWYgKHRhcmdldFNsaWRlIDwgb3B0aW9ucy5jdXJyZW50U2xpZGUgJiYgZGlyZWN0aW9uID09PSBcInJpZ2h0XCIpIHtcbiAgICAgICAgdGFyZ2V0U2xpZGUgPSB0YXJnZXRTbGlkZSArIHNsaWRlQ291bnQ7XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2UgaWYgKG9wdGlvbnMubWVzc2FnZSA9PT0gXCJpbmRleFwiKSB7XG4gICAgdGFyZ2V0U2xpZGUgPSBOdW1iZXIob3B0aW9ucy5pbmRleCk7XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0U2xpZGU7XG59O1xuXG5leHBvcnRzLmNoYW5nZVNsaWRlID0gY2hhbmdlU2xpZGU7XG5cbnZhciBrZXlIYW5kbGVyID0gZnVuY3Rpb24ga2V5SGFuZGxlcihlLCBhY2Nlc3NpYmlsaXR5LCBydGwpIHtcbiAgaWYgKGUudGFyZ2V0LnRhZ05hbWUubWF0Y2goXCJURVhUQVJFQXxJTlBVVHxTRUxFQ1RcIikgfHwgIWFjY2Vzc2liaWxpdHkpIHJldHVybiBcIlwiO1xuICBpZiAoZS5rZXlDb2RlID09PSAzNykgcmV0dXJuIHJ0bCA/IFwibmV4dFwiIDogXCJwcmV2aW91c1wiO1xuICBpZiAoZS5rZXlDb2RlID09PSAzOSkgcmV0dXJuIHJ0bCA/IFwicHJldmlvdXNcIiA6IFwibmV4dFwiO1xuICByZXR1cm4gXCJcIjtcbn07XG5cbmV4cG9ydHMua2V5SGFuZGxlciA9IGtleUhhbmRsZXI7XG5cbnZhciBzd2lwZVN0YXJ0ID0gZnVuY3Rpb24gc3dpcGVTdGFydChlLCBzd2lwZSwgZHJhZ2dhYmxlKSB7XG4gIGUudGFyZ2V0LnRhZ05hbWUgPT09IFwiSU1HXCIgJiYgc2FmZVByZXZlbnREZWZhdWx0KGUpO1xuICBpZiAoIXN3aXBlIHx8ICFkcmFnZ2FibGUgJiYgZS50eXBlLmluZGV4T2YoXCJtb3VzZVwiKSAhPT0gLTEpIHJldHVybiBcIlwiO1xuICByZXR1cm4ge1xuICAgIGRyYWdnaW5nOiB0cnVlLFxuICAgIHRvdWNoT2JqZWN0OiB7XG4gICAgICBzdGFydFg6IGUudG91Y2hlcyA/IGUudG91Y2hlc1swXS5wYWdlWCA6IGUuY2xpZW50WCxcbiAgICAgIHN0YXJ0WTogZS50b3VjaGVzID8gZS50b3VjaGVzWzBdLnBhZ2VZIDogZS5jbGllbnRZLFxuICAgICAgY3VyWDogZS50b3VjaGVzID8gZS50b3VjaGVzWzBdLnBhZ2VYIDogZS5jbGllbnRYLFxuICAgICAgY3VyWTogZS50b3VjaGVzID8gZS50b3VjaGVzWzBdLnBhZ2VZIDogZS5jbGllbnRZXG4gICAgfVxuICB9O1xufTtcblxuZXhwb3J0cy5zd2lwZVN0YXJ0ID0gc3dpcGVTdGFydDtcblxudmFyIHN3aXBlTW92ZSA9IGZ1bmN0aW9uIHN3aXBlTW92ZShlLCBzcGVjKSB7XG4gIC8vIHNwZWMgYWxzbyBjb250YWlucywgdHJhY2tSZWYgYW5kIHNsaWRlSW5kZXhcbiAgdmFyIHNjcm9sbGluZyA9IHNwZWMuc2Nyb2xsaW5nLFxuICAgICAgYW5pbWF0aW5nID0gc3BlYy5hbmltYXRpbmcsXG4gICAgICB2ZXJ0aWNhbCA9IHNwZWMudmVydGljYWwsXG4gICAgICBzd2lwZVRvU2xpZGUgPSBzcGVjLnN3aXBlVG9TbGlkZSxcbiAgICAgIHZlcnRpY2FsU3dpcGluZyA9IHNwZWMudmVydGljYWxTd2lwaW5nLFxuICAgICAgcnRsID0gc3BlYy5ydGwsXG4gICAgICBjdXJyZW50U2xpZGUgPSBzcGVjLmN1cnJlbnRTbGlkZSxcbiAgICAgIGVkZ2VGcmljdGlvbiA9IHNwZWMuZWRnZUZyaWN0aW9uLFxuICAgICAgZWRnZURyYWdnZWQgPSBzcGVjLmVkZ2VEcmFnZ2VkLFxuICAgICAgb25FZGdlID0gc3BlYy5vbkVkZ2UsXG4gICAgICBzd2lwZWQgPSBzcGVjLnN3aXBlZCxcbiAgICAgIHN3aXBpbmcgPSBzcGVjLnN3aXBpbmcsXG4gICAgICBzbGlkZUNvdW50ID0gc3BlYy5zbGlkZUNvdW50LFxuICAgICAgc2xpZGVzVG9TY3JvbGwgPSBzcGVjLnNsaWRlc1RvU2Nyb2xsLFxuICAgICAgaW5maW5pdGUgPSBzcGVjLmluZmluaXRlLFxuICAgICAgdG91Y2hPYmplY3QgPSBzcGVjLnRvdWNoT2JqZWN0LFxuICAgICAgc3dpcGVFdmVudCA9IHNwZWMuc3dpcGVFdmVudCxcbiAgICAgIGxpc3RIZWlnaHQgPSBzcGVjLmxpc3RIZWlnaHQsXG4gICAgICBsaXN0V2lkdGggPSBzcGVjLmxpc3RXaWR0aDtcbiAgaWYgKHNjcm9sbGluZykgcmV0dXJuO1xuICBpZiAoYW5pbWF0aW5nKSByZXR1cm4gc2FmZVByZXZlbnREZWZhdWx0KGUpO1xuICBpZiAodmVydGljYWwgJiYgc3dpcGVUb1NsaWRlICYmIHZlcnRpY2FsU3dpcGluZykgc2FmZVByZXZlbnREZWZhdWx0KGUpO1xuICB2YXIgc3dpcGVMZWZ0LFxuICAgICAgc3RhdGUgPSB7fTtcbiAgdmFyIGN1ckxlZnQgPSBnZXRUcmFja0xlZnQoc3BlYyk7XG4gIHRvdWNoT2JqZWN0LmN1clggPSBlLnRvdWNoZXMgPyBlLnRvdWNoZXNbMF0ucGFnZVggOiBlLmNsaWVudFg7XG4gIHRvdWNoT2JqZWN0LmN1clkgPSBlLnRvdWNoZXMgPyBlLnRvdWNoZXNbMF0ucGFnZVkgOiBlLmNsaWVudFk7XG4gIHRvdWNoT2JqZWN0LnN3aXBlTGVuZ3RoID0gTWF0aC5yb3VuZChNYXRoLnNxcnQoTWF0aC5wb3codG91Y2hPYmplY3QuY3VyWCAtIHRvdWNoT2JqZWN0LnN0YXJ0WCwgMikpKTtcbiAgdmFyIHZlcnRpY2FsU3dpcGVMZW5ndGggPSBNYXRoLnJvdW5kKE1hdGguc3FydChNYXRoLnBvdyh0b3VjaE9iamVjdC5jdXJZIC0gdG91Y2hPYmplY3Quc3RhcnRZLCAyKSkpO1xuXG4gIGlmICghdmVydGljYWxTd2lwaW5nICYmICFzd2lwaW5nICYmIHZlcnRpY2FsU3dpcGVMZW5ndGggPiAxMCkge1xuICAgIHJldHVybiB7XG4gICAgICBzY3JvbGxpbmc6IHRydWVcbiAgICB9O1xuICB9XG5cbiAgaWYgKHZlcnRpY2FsU3dpcGluZykgdG91Y2hPYmplY3Quc3dpcGVMZW5ndGggPSB2ZXJ0aWNhbFN3aXBlTGVuZ3RoO1xuICB2YXIgcG9zaXRpb25PZmZzZXQgPSAoIXJ0bCA/IDEgOiAtMSkgKiAodG91Y2hPYmplY3QuY3VyWCA+IHRvdWNoT2JqZWN0LnN0YXJ0WCA/IDEgOiAtMSk7XG4gIGlmICh2ZXJ0aWNhbFN3aXBpbmcpIHBvc2l0aW9uT2Zmc2V0ID0gdG91Y2hPYmplY3QuY3VyWSA+IHRvdWNoT2JqZWN0LnN0YXJ0WSA/IDEgOiAtMTtcbiAgdmFyIGRvdENvdW50ID0gTWF0aC5jZWlsKHNsaWRlQ291bnQgLyBzbGlkZXNUb1Njcm9sbCk7XG4gIHZhciBzd2lwZURpcmVjdGlvbiA9IGdldFN3aXBlRGlyZWN0aW9uKHNwZWMudG91Y2hPYmplY3QsIHZlcnRpY2FsU3dpcGluZyk7XG4gIHZhciB0b3VjaFN3aXBlTGVuZ3RoID0gdG91Y2hPYmplY3Quc3dpcGVMZW5ndGg7XG5cbiAgaWYgKCFpbmZpbml0ZSkge1xuICAgIGlmIChjdXJyZW50U2xpZGUgPT09IDAgJiYgKHN3aXBlRGlyZWN0aW9uID09PSBcInJpZ2h0XCIgfHwgc3dpcGVEaXJlY3Rpb24gPT09IFwiZG93blwiKSB8fCBjdXJyZW50U2xpZGUgKyAxID49IGRvdENvdW50ICYmIChzd2lwZURpcmVjdGlvbiA9PT0gXCJsZWZ0XCIgfHwgc3dpcGVEaXJlY3Rpb24gPT09IFwidXBcIikgfHwgIWNhbkdvTmV4dChzcGVjKSAmJiAoc3dpcGVEaXJlY3Rpb24gPT09IFwibGVmdFwiIHx8IHN3aXBlRGlyZWN0aW9uID09PSBcInVwXCIpKSB7XG4gICAgICB0b3VjaFN3aXBlTGVuZ3RoID0gdG91Y2hPYmplY3Quc3dpcGVMZW5ndGggKiBlZGdlRnJpY3Rpb247XG5cbiAgICAgIGlmIChlZGdlRHJhZ2dlZCA9PT0gZmFsc2UgJiYgb25FZGdlKSB7XG4gICAgICAgIG9uRWRnZShzd2lwZURpcmVjdGlvbik7XG4gICAgICAgIHN0YXRlW1wiZWRnZURyYWdnZWRcIl0gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmICghc3dpcGVkICYmIHN3aXBlRXZlbnQpIHtcbiAgICBzd2lwZUV2ZW50KHN3aXBlRGlyZWN0aW9uKTtcbiAgICBzdGF0ZVtcInN3aXBlZFwiXSA9IHRydWU7XG4gIH1cblxuICBpZiAoIXZlcnRpY2FsKSB7XG4gICAgaWYgKCFydGwpIHtcbiAgICAgIHN3aXBlTGVmdCA9IGN1ckxlZnQgKyB0b3VjaFN3aXBlTGVuZ3RoICogcG9zaXRpb25PZmZzZXQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN3aXBlTGVmdCA9IGN1ckxlZnQgLSB0b3VjaFN3aXBlTGVuZ3RoICogcG9zaXRpb25PZmZzZXQ7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHN3aXBlTGVmdCA9IGN1ckxlZnQgKyB0b3VjaFN3aXBlTGVuZ3RoICogKGxpc3RIZWlnaHQgLyBsaXN0V2lkdGgpICogcG9zaXRpb25PZmZzZXQ7XG4gIH1cblxuICBpZiAodmVydGljYWxTd2lwaW5nKSB7XG4gICAgc3dpcGVMZWZ0ID0gY3VyTGVmdCArIHRvdWNoU3dpcGVMZW5ndGggKiBwb3NpdGlvbk9mZnNldDtcbiAgfVxuXG4gIHN0YXRlID0gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzdGF0ZSksIHt9LCB7XG4gICAgdG91Y2hPYmplY3Q6IHRvdWNoT2JqZWN0LFxuICAgIHN3aXBlTGVmdDogc3dpcGVMZWZ0LFxuICAgIHRyYWNrU3R5bGU6IGdldFRyYWNrQ1NTKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgc3BlYyksIHt9LCB7XG4gICAgICBsZWZ0OiBzd2lwZUxlZnRcbiAgICB9KSlcbiAgfSk7XG5cbiAgaWYgKE1hdGguYWJzKHRvdWNoT2JqZWN0LmN1clggLSB0b3VjaE9iamVjdC5zdGFydFgpIDwgTWF0aC5hYnModG91Y2hPYmplY3QuY3VyWSAtIHRvdWNoT2JqZWN0LnN0YXJ0WSkgKiAwLjgpIHtcbiAgICByZXR1cm4gc3RhdGU7XG4gIH1cblxuICBpZiAodG91Y2hPYmplY3Quc3dpcGVMZW5ndGggPiAxMCkge1xuICAgIHN0YXRlW1wic3dpcGluZ1wiXSA9IHRydWU7XG4gICAgc2FmZVByZXZlbnREZWZhdWx0KGUpO1xuICB9XG5cbiAgcmV0dXJuIHN0YXRlO1xufTtcblxuZXhwb3J0cy5zd2lwZU1vdmUgPSBzd2lwZU1vdmU7XG5cbnZhciBzd2lwZUVuZCA9IGZ1bmN0aW9uIHN3aXBlRW5kKGUsIHNwZWMpIHtcbiAgdmFyIGRyYWdnaW5nID0gc3BlYy5kcmFnZ2luZyxcbiAgICAgIHN3aXBlID0gc3BlYy5zd2lwZSxcbiAgICAgIHRvdWNoT2JqZWN0ID0gc3BlYy50b3VjaE9iamVjdCxcbiAgICAgIGxpc3RXaWR0aCA9IHNwZWMubGlzdFdpZHRoLFxuICAgICAgdG91Y2hUaHJlc2hvbGQgPSBzcGVjLnRvdWNoVGhyZXNob2xkLFxuICAgICAgdmVydGljYWxTd2lwaW5nID0gc3BlYy52ZXJ0aWNhbFN3aXBpbmcsXG4gICAgICBsaXN0SGVpZ2h0ID0gc3BlYy5saXN0SGVpZ2h0LFxuICAgICAgc3dpcGVUb1NsaWRlID0gc3BlYy5zd2lwZVRvU2xpZGUsXG4gICAgICBzY3JvbGxpbmcgPSBzcGVjLnNjcm9sbGluZyxcbiAgICAgIG9uU3dpcGUgPSBzcGVjLm9uU3dpcGUsXG4gICAgICB0YXJnZXRTbGlkZSA9IHNwZWMudGFyZ2V0U2xpZGUsXG4gICAgICBjdXJyZW50U2xpZGUgPSBzcGVjLmN1cnJlbnRTbGlkZSxcbiAgICAgIGluZmluaXRlID0gc3BlYy5pbmZpbml0ZTtcblxuICBpZiAoIWRyYWdnaW5nKSB7XG4gICAgaWYgKHN3aXBlKSBzYWZlUHJldmVudERlZmF1bHQoZSk7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgdmFyIG1pblN3aXBlID0gdmVydGljYWxTd2lwaW5nID8gbGlzdEhlaWdodCAvIHRvdWNoVGhyZXNob2xkIDogbGlzdFdpZHRoIC8gdG91Y2hUaHJlc2hvbGQ7XG4gIHZhciBzd2lwZURpcmVjdGlvbiA9IGdldFN3aXBlRGlyZWN0aW9uKHRvdWNoT2JqZWN0LCB2ZXJ0aWNhbFN3aXBpbmcpOyAvLyByZXNldCB0aGUgc3RhdGUgb2YgdG91Y2ggcmVsYXRlZCBzdGF0ZSB2YXJpYWJsZXMuXG5cbiAgdmFyIHN0YXRlID0ge1xuICAgIGRyYWdnaW5nOiBmYWxzZSxcbiAgICBlZGdlRHJhZ2dlZDogZmFsc2UsXG4gICAgc2Nyb2xsaW5nOiBmYWxzZSxcbiAgICBzd2lwaW5nOiBmYWxzZSxcbiAgICBzd2lwZWQ6IGZhbHNlLFxuICAgIHN3aXBlTGVmdDogbnVsbCxcbiAgICB0b3VjaE9iamVjdDoge31cbiAgfTtcblxuICBpZiAoc2Nyb2xsaW5nKSB7XG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG5cbiAgaWYgKCF0b3VjaE9iamVjdC5zd2lwZUxlbmd0aCkge1xuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuXG4gIGlmICh0b3VjaE9iamVjdC5zd2lwZUxlbmd0aCA+IG1pblN3aXBlKSB7XG4gICAgc2FmZVByZXZlbnREZWZhdWx0KGUpO1xuXG4gICAgaWYgKG9uU3dpcGUpIHtcbiAgICAgIG9uU3dpcGUoc3dpcGVEaXJlY3Rpb24pO1xuICAgIH1cblxuICAgIHZhciBzbGlkZUNvdW50LCBuZXdTbGlkZTtcbiAgICB2YXIgYWN0aXZlU2xpZGUgPSBpbmZpbml0ZSA/IGN1cnJlbnRTbGlkZSA6IHRhcmdldFNsaWRlO1xuXG4gICAgc3dpdGNoIChzd2lwZURpcmVjdGlvbikge1xuICAgICAgY2FzZSBcImxlZnRcIjpcbiAgICAgIGNhc2UgXCJ1cFwiOlxuICAgICAgICBuZXdTbGlkZSA9IGFjdGl2ZVNsaWRlICsgZ2V0U2xpZGVDb3VudChzcGVjKTtcbiAgICAgICAgc2xpZGVDb3VudCA9IHN3aXBlVG9TbGlkZSA/IGNoZWNrTmF2aWdhYmxlKHNwZWMsIG5ld1NsaWRlKSA6IG5ld1NsaWRlO1xuICAgICAgICBzdGF0ZVtcImN1cnJlbnREaXJlY3Rpb25cIl0gPSAwO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBcInJpZ2h0XCI6XG4gICAgICBjYXNlIFwiZG93blwiOlxuICAgICAgICBuZXdTbGlkZSA9IGFjdGl2ZVNsaWRlIC0gZ2V0U2xpZGVDb3VudChzcGVjKTtcbiAgICAgICAgc2xpZGVDb3VudCA9IHN3aXBlVG9TbGlkZSA/IGNoZWNrTmF2aWdhYmxlKHNwZWMsIG5ld1NsaWRlKSA6IG5ld1NsaWRlO1xuICAgICAgICBzdGF0ZVtcImN1cnJlbnREaXJlY3Rpb25cIl0gPSAxO1xuICAgICAgICBicmVhaztcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgc2xpZGVDb3VudCA9IGFjdGl2ZVNsaWRlO1xuICAgIH1cblxuICAgIHN0YXRlW1widHJpZ2dlclNsaWRlSGFuZGxlclwiXSA9IHNsaWRlQ291bnQ7XG4gIH0gZWxzZSB7XG4gICAgLy8gQWRqdXN0IHRoZSB0cmFjayBiYWNrIHRvIGl0J3Mgb3JpZ2luYWwgcG9zaXRpb24uXG4gICAgdmFyIGN1cnJlbnRMZWZ0ID0gZ2V0VHJhY2tMZWZ0KHNwZWMpO1xuICAgIHN0YXRlW1widHJhY2tTdHlsZVwiXSA9IGdldFRyYWNrQW5pbWF0ZUNTUyhfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHNwZWMpLCB7fSwge1xuICAgICAgbGVmdDogY3VycmVudExlZnRcbiAgICB9KSk7XG4gIH1cblxuICByZXR1cm4gc3RhdGU7XG59O1xuXG5leHBvcnRzLnN3aXBlRW5kID0gc3dpcGVFbmQ7XG5cbnZhciBnZXROYXZpZ2FibGVJbmRleGVzID0gZnVuY3Rpb24gZ2V0TmF2aWdhYmxlSW5kZXhlcyhzcGVjKSB7XG4gIHZhciBtYXggPSBzcGVjLmluZmluaXRlID8gc3BlYy5zbGlkZUNvdW50ICogMiA6IHNwZWMuc2xpZGVDb3VudDtcbiAgdmFyIGJyZWFrcG9pbnQgPSBzcGVjLmluZmluaXRlID8gc3BlYy5zbGlkZXNUb1Nob3cgKiAtMSA6IDA7XG4gIHZhciBjb3VudGVyID0gc3BlYy5pbmZpbml0ZSA/IHNwZWMuc2xpZGVzVG9TaG93ICogLTEgOiAwO1xuICB2YXIgaW5kZXhlcyA9IFtdO1xuXG4gIHdoaWxlIChicmVha3BvaW50IDwgbWF4KSB7XG4gICAgaW5kZXhlcy5wdXNoKGJyZWFrcG9pbnQpO1xuICAgIGJyZWFrcG9pbnQgPSBjb3VudGVyICsgc3BlYy5zbGlkZXNUb1Njcm9sbDtcbiAgICBjb3VudGVyICs9IE1hdGgubWluKHNwZWMuc2xpZGVzVG9TY3JvbGwsIHNwZWMuc2xpZGVzVG9TaG93KTtcbiAgfVxuXG4gIHJldHVybiBpbmRleGVzO1xufTtcblxuZXhwb3J0cy5nZXROYXZpZ2FibGVJbmRleGVzID0gZ2V0TmF2aWdhYmxlSW5kZXhlcztcblxudmFyIGNoZWNrTmF2aWdhYmxlID0gZnVuY3Rpb24gY2hlY2tOYXZpZ2FibGUoc3BlYywgaW5kZXgpIHtcbiAgdmFyIG5hdmlnYWJsZXMgPSBnZXROYXZpZ2FibGVJbmRleGVzKHNwZWMpO1xuICB2YXIgcHJldk5hdmlnYWJsZSA9IDA7XG5cbiAgaWYgKGluZGV4ID4gbmF2aWdhYmxlc1tuYXZpZ2FibGVzLmxlbmd0aCAtIDFdKSB7XG4gICAgaW5kZXggPSBuYXZpZ2FibGVzW25hdmlnYWJsZXMubGVuZ3RoIC0gMV07XG4gIH0gZWxzZSB7XG4gICAgZm9yICh2YXIgbiBpbiBuYXZpZ2FibGVzKSB7XG4gICAgICBpZiAoaW5kZXggPCBuYXZpZ2FibGVzW25dKSB7XG4gICAgICAgIGluZGV4ID0gcHJldk5hdmlnYWJsZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIHByZXZOYXZpZ2FibGUgPSBuYXZpZ2FibGVzW25dO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBpbmRleDtcbn07XG5cbmV4cG9ydHMuY2hlY2tOYXZpZ2FibGUgPSBjaGVja05hdmlnYWJsZTtcblxudmFyIGdldFNsaWRlQ291bnQgPSBmdW5jdGlvbiBnZXRTbGlkZUNvdW50KHNwZWMpIHtcbiAgdmFyIGNlbnRlck9mZnNldCA9IHNwZWMuY2VudGVyTW9kZSA/IHNwZWMuc2xpZGVXaWR0aCAqIE1hdGguZmxvb3Ioc3BlYy5zbGlkZXNUb1Nob3cgLyAyKSA6IDA7XG5cbiAgaWYgKHNwZWMuc3dpcGVUb1NsaWRlKSB7XG4gICAgdmFyIHN3aXBlZFNsaWRlO1xuICAgIHZhciBzbGlja0xpc3QgPSBzcGVjLmxpc3RSZWY7XG4gICAgdmFyIHNsaWRlcyA9IHNsaWNrTGlzdC5xdWVyeVNlbGVjdG9yQWxsICYmIHNsaWNrTGlzdC5xdWVyeVNlbGVjdG9yQWxsKFwiLnNsaWNrLXNsaWRlXCIpIHx8IFtdO1xuICAgIEFycmF5LmZyb20oc2xpZGVzKS5ldmVyeShmdW5jdGlvbiAoc2xpZGUpIHtcbiAgICAgIGlmICghc3BlYy52ZXJ0aWNhbCkge1xuICAgICAgICBpZiAoc2xpZGUub2Zmc2V0TGVmdCAtIGNlbnRlck9mZnNldCArIGdldFdpZHRoKHNsaWRlKSAvIDIgPiBzcGVjLnN3aXBlTGVmdCAqIC0xKSB7XG4gICAgICAgICAgc3dpcGVkU2xpZGUgPSBzbGlkZTtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChzbGlkZS5vZmZzZXRUb3AgKyBnZXRIZWlnaHQoc2xpZGUpIC8gMiA+IHNwZWMuc3dpcGVMZWZ0ICogLTEpIHtcbiAgICAgICAgICBzd2lwZWRTbGlkZSA9IHNsaWRlO1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9KTtcblxuICAgIGlmICghc3dpcGVkU2xpZGUpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIHZhciBjdXJyZW50SW5kZXggPSBzcGVjLnJ0bCA9PT0gdHJ1ZSA/IHNwZWMuc2xpZGVDb3VudCAtIHNwZWMuY3VycmVudFNsaWRlIDogc3BlYy5jdXJyZW50U2xpZGU7XG4gICAgdmFyIHNsaWRlc1RyYXZlcnNlZCA9IE1hdGguYWJzKHN3aXBlZFNsaWRlLmRhdGFzZXQuaW5kZXggLSBjdXJyZW50SW5kZXgpIHx8IDE7XG4gICAgcmV0dXJuIHNsaWRlc1RyYXZlcnNlZDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gc3BlYy5zbGlkZXNUb1Njcm9sbDtcbiAgfVxufTtcblxuZXhwb3J0cy5nZXRTbGlkZUNvdW50ID0gZ2V0U2xpZGVDb3VudDtcblxudmFyIGNoZWNrU3BlY0tleXMgPSBmdW5jdGlvbiBjaGVja1NwZWNLZXlzKHNwZWMsIGtleXNBcnJheSkge1xuICByZXR1cm4ga2V5c0FycmF5LnJlZHVjZShmdW5jdGlvbiAodmFsdWUsIGtleSkge1xuICAgIHJldHVybiB2YWx1ZSAmJiBzcGVjLmhhc093blByb3BlcnR5KGtleSk7XG4gIH0sIHRydWUpID8gbnVsbCA6IGNvbnNvbGUuZXJyb3IoXCJLZXlzIE1pc3Npbmc6XCIsIHNwZWMpO1xufTtcblxuZXhwb3J0cy5jaGVja1NwZWNLZXlzID0gY2hlY2tTcGVjS2V5cztcblxudmFyIGdldFRyYWNrQ1NTID0gZnVuY3Rpb24gZ2V0VHJhY2tDU1Moc3BlYykge1xuICBjaGVja1NwZWNLZXlzKHNwZWMsIFtcImxlZnRcIiwgXCJ2YXJpYWJsZVdpZHRoXCIsIFwic2xpZGVDb3VudFwiLCBcInNsaWRlc1RvU2hvd1wiLCBcInNsaWRlV2lkdGhcIl0pO1xuICB2YXIgdHJhY2tXaWR0aCwgdHJhY2tIZWlnaHQ7XG4gIHZhciB0cmFja0NoaWxkcmVuID0gc3BlYy5zbGlkZUNvdW50ICsgMiAqIHNwZWMuc2xpZGVzVG9TaG93O1xuXG4gIGlmICghc3BlYy52ZXJ0aWNhbCkge1xuICAgIHRyYWNrV2lkdGggPSBnZXRUb3RhbFNsaWRlcyhzcGVjKSAqIHNwZWMuc2xpZGVXaWR0aDtcbiAgfSBlbHNlIHtcbiAgICB0cmFja0hlaWdodCA9IHRyYWNrQ2hpbGRyZW4gKiBzcGVjLnNsaWRlSGVpZ2h0O1xuICB9XG5cbiAgdmFyIHN0eWxlID0ge1xuICAgIG9wYWNpdHk6IDEsXG4gICAgdHJhbnNpdGlvbjogXCJcIixcbiAgICBXZWJraXRUcmFuc2l0aW9uOiBcIlwiXG4gIH07XG5cbiAgaWYgKHNwZWMudXNlVHJhbnNmb3JtKSB7XG4gICAgdmFyIFdlYmtpdFRyYW5zZm9ybSA9ICFzcGVjLnZlcnRpY2FsID8gXCJ0cmFuc2xhdGUzZChcIiArIHNwZWMubGVmdCArIFwicHgsIDBweCwgMHB4KVwiIDogXCJ0cmFuc2xhdGUzZCgwcHgsIFwiICsgc3BlYy5sZWZ0ICsgXCJweCwgMHB4KVwiO1xuICAgIHZhciB0cmFuc2Zvcm0gPSAhc3BlYy52ZXJ0aWNhbCA/IFwidHJhbnNsYXRlM2QoXCIgKyBzcGVjLmxlZnQgKyBcInB4LCAwcHgsIDBweClcIiA6IFwidHJhbnNsYXRlM2QoMHB4LCBcIiArIHNwZWMubGVmdCArIFwicHgsIDBweClcIjtcbiAgICB2YXIgbXNUcmFuc2Zvcm0gPSAhc3BlYy52ZXJ0aWNhbCA/IFwidHJhbnNsYXRlWChcIiArIHNwZWMubGVmdCArIFwicHgpXCIgOiBcInRyYW5zbGF0ZVkoXCIgKyBzcGVjLmxlZnQgKyBcInB4KVwiO1xuICAgIHN0eWxlID0gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzdHlsZSksIHt9LCB7XG4gICAgICBXZWJraXRUcmFuc2Zvcm06IFdlYmtpdFRyYW5zZm9ybSxcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNmb3JtLFxuICAgICAgbXNUcmFuc2Zvcm06IG1zVHJhbnNmb3JtXG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgaWYgKHNwZWMudmVydGljYWwpIHtcbiAgICAgIHN0eWxlW1widG9wXCJdID0gc3BlYy5sZWZ0O1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHlsZVtcImxlZnRcIl0gPSBzcGVjLmxlZnQ7XG4gICAgfVxuICB9XG5cbiAgaWYgKHNwZWMuZmFkZSkgc3R5bGUgPSB7XG4gICAgb3BhY2l0eTogMVxuICB9O1xuICBpZiAodHJhY2tXaWR0aCkgc3R5bGUud2lkdGggPSB0cmFja1dpZHRoO1xuICBpZiAodHJhY2tIZWlnaHQpIHN0eWxlLmhlaWdodCA9IHRyYWNrSGVpZ2h0OyAvLyBGYWxsYmFjayBmb3IgSUU4XG5cbiAgaWYgKHdpbmRvdyAmJiAhd2luZG93LmFkZEV2ZW50TGlzdGVuZXIgJiYgd2luZG93LmF0dGFjaEV2ZW50KSB7XG4gICAgaWYgKCFzcGVjLnZlcnRpY2FsKSB7XG4gICAgICBzdHlsZS5tYXJnaW5MZWZ0ID0gc3BlYy5sZWZ0ICsgXCJweFwiO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHlsZS5tYXJnaW5Ub3AgPSBzcGVjLmxlZnQgKyBcInB4XCI7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0eWxlO1xufTtcblxuZXhwb3J0cy5nZXRUcmFja0NTUyA9IGdldFRyYWNrQ1NTO1xuXG52YXIgZ2V0VHJhY2tBbmltYXRlQ1NTID0gZnVuY3Rpb24gZ2V0VHJhY2tBbmltYXRlQ1NTKHNwZWMpIHtcbiAgY2hlY2tTcGVjS2V5cyhzcGVjLCBbXCJsZWZ0XCIsIFwidmFyaWFibGVXaWR0aFwiLCBcInNsaWRlQ291bnRcIiwgXCJzbGlkZXNUb1Nob3dcIiwgXCJzbGlkZVdpZHRoXCIsIFwic3BlZWRcIiwgXCJjc3NFYXNlXCJdKTtcbiAgdmFyIHN0eWxlID0gZ2V0VHJhY2tDU1Moc3BlYyk7IC8vIHVzZUNTUyBpcyB0cnVlIGJ5IGRlZmF1bHQgc28gaXQgY2FuIGJlIHVuZGVmaW5lZFxuXG4gIGlmIChzcGVjLnVzZVRyYW5zZm9ybSkge1xuICAgIHN0eWxlLldlYmtpdFRyYW5zaXRpb24gPSBcIi13ZWJraXQtdHJhbnNmb3JtIFwiICsgc3BlYy5zcGVlZCArIFwibXMgXCIgKyBzcGVjLmNzc0Vhc2U7XG4gICAgc3R5bGUudHJhbnNpdGlvbiA9IFwidHJhbnNmb3JtIFwiICsgc3BlYy5zcGVlZCArIFwibXMgXCIgKyBzcGVjLmNzc0Vhc2U7XG4gIH0gZWxzZSB7XG4gICAgaWYgKHNwZWMudmVydGljYWwpIHtcbiAgICAgIHN0eWxlLnRyYW5zaXRpb24gPSBcInRvcCBcIiArIHNwZWMuc3BlZWQgKyBcIm1zIFwiICsgc3BlYy5jc3NFYXNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHlsZS50cmFuc2l0aW9uID0gXCJsZWZ0IFwiICsgc3BlYy5zcGVlZCArIFwibXMgXCIgKyBzcGVjLmNzc0Vhc2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0eWxlO1xufTtcblxuZXhwb3J0cy5nZXRUcmFja0FuaW1hdGVDU1MgPSBnZXRUcmFja0FuaW1hdGVDU1M7XG5cbnZhciBnZXRUcmFja0xlZnQgPSBmdW5jdGlvbiBnZXRUcmFja0xlZnQoc3BlYykge1xuICBpZiAoc3BlYy51bnNsaWNrKSB7XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICBjaGVja1NwZWNLZXlzKHNwZWMsIFtcInNsaWRlSW5kZXhcIiwgXCJ0cmFja1JlZlwiLCBcImluZmluaXRlXCIsIFwiY2VudGVyTW9kZVwiLCBcInNsaWRlQ291bnRcIiwgXCJzbGlkZXNUb1Nob3dcIiwgXCJzbGlkZXNUb1Njcm9sbFwiLCBcInNsaWRlV2lkdGhcIiwgXCJsaXN0V2lkdGhcIiwgXCJ2YXJpYWJsZVdpZHRoXCIsIFwic2xpZGVIZWlnaHRcIl0pO1xuICB2YXIgc2xpZGVJbmRleCA9IHNwZWMuc2xpZGVJbmRleCxcbiAgICAgIHRyYWNrUmVmID0gc3BlYy50cmFja1JlZixcbiAgICAgIGluZmluaXRlID0gc3BlYy5pbmZpbml0ZSxcbiAgICAgIGNlbnRlck1vZGUgPSBzcGVjLmNlbnRlck1vZGUsXG4gICAgICBzbGlkZUNvdW50ID0gc3BlYy5zbGlkZUNvdW50LFxuICAgICAgc2xpZGVzVG9TaG93ID0gc3BlYy5zbGlkZXNUb1Nob3csXG4gICAgICBzbGlkZXNUb1Njcm9sbCA9IHNwZWMuc2xpZGVzVG9TY3JvbGwsXG4gICAgICBzbGlkZVdpZHRoID0gc3BlYy5zbGlkZVdpZHRoLFxuICAgICAgbGlzdFdpZHRoID0gc3BlYy5saXN0V2lkdGgsXG4gICAgICB2YXJpYWJsZVdpZHRoID0gc3BlYy52YXJpYWJsZVdpZHRoLFxuICAgICAgc2xpZGVIZWlnaHQgPSBzcGVjLnNsaWRlSGVpZ2h0LFxuICAgICAgZmFkZSA9IHNwZWMuZmFkZSxcbiAgICAgIHZlcnRpY2FsID0gc3BlYy52ZXJ0aWNhbDtcbiAgdmFyIHNsaWRlT2Zmc2V0ID0gMDtcbiAgdmFyIHRhcmdldExlZnQ7XG4gIHZhciB0YXJnZXRTbGlkZTtcbiAgdmFyIHZlcnRpY2FsT2Zmc2V0ID0gMDtcblxuICBpZiAoZmFkZSB8fCBzcGVjLnNsaWRlQ291bnQgPT09IDEpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHZhciBzbGlkZXNUb09mZnNldCA9IDA7XG5cbiAgaWYgKGluZmluaXRlKSB7XG4gICAgc2xpZGVzVG9PZmZzZXQgPSAtZ2V0UHJlQ2xvbmVzKHNwZWMpOyAvLyBicmluZyBhY3RpdmUgc2xpZGUgdG8gdGhlIGJlZ2lubmluZyBvZiB2aXN1YWwgYXJlYVxuICAgIC8vIGlmIG5leHQgc2Nyb2xsIGRvZXNuJ3QgaGF2ZSBlbm91Z2ggY2hpbGRyZW4sIGp1c3QgcmVhY2ggdGlsbCB0aGUgZW5kIG9mIG9yaWdpbmFsIHNsaWRlcyBpbnN0ZWFkIG9mIHNoaWZ0aW5nIHNsaWRlc1RvU2Nyb2xsIGNoaWxkcmVuXG5cbiAgICBpZiAoc2xpZGVDb3VudCAlIHNsaWRlc1RvU2Nyb2xsICE9PSAwICYmIHNsaWRlSW5kZXggKyBzbGlkZXNUb1Njcm9sbCA+IHNsaWRlQ291bnQpIHtcbiAgICAgIHNsaWRlc1RvT2Zmc2V0ID0gLShzbGlkZUluZGV4ID4gc2xpZGVDb3VudCA/IHNsaWRlc1RvU2hvdyAtIChzbGlkZUluZGV4IC0gc2xpZGVDb3VudCkgOiBzbGlkZUNvdW50ICUgc2xpZGVzVG9TY3JvbGwpO1xuICAgIH0gLy8gc2hpZnQgY3VycmVudCBzbGlkZSB0byBjZW50ZXIgb2YgdGhlIGZyYW1lXG5cblxuICAgIGlmIChjZW50ZXJNb2RlKSB7XG4gICAgICBzbGlkZXNUb09mZnNldCArPSBwYXJzZUludChzbGlkZXNUb1Nob3cgLyAyKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgaWYgKHNsaWRlQ291bnQgJSBzbGlkZXNUb1Njcm9sbCAhPT0gMCAmJiBzbGlkZUluZGV4ICsgc2xpZGVzVG9TY3JvbGwgPiBzbGlkZUNvdW50KSB7XG4gICAgICBzbGlkZXNUb09mZnNldCA9IHNsaWRlc1RvU2hvdyAtIHNsaWRlQ291bnQgJSBzbGlkZXNUb1Njcm9sbDtcbiAgICB9XG5cbiAgICBpZiAoY2VudGVyTW9kZSkge1xuICAgICAgc2xpZGVzVG9PZmZzZXQgPSBwYXJzZUludChzbGlkZXNUb1Nob3cgLyAyKTtcbiAgICB9XG4gIH1cblxuICBzbGlkZU9mZnNldCA9IHNsaWRlc1RvT2Zmc2V0ICogc2xpZGVXaWR0aDtcbiAgdmVydGljYWxPZmZzZXQgPSBzbGlkZXNUb09mZnNldCAqIHNsaWRlSGVpZ2h0O1xuXG4gIGlmICghdmVydGljYWwpIHtcbiAgICB0YXJnZXRMZWZ0ID0gc2xpZGVJbmRleCAqIHNsaWRlV2lkdGggKiAtMSArIHNsaWRlT2Zmc2V0O1xuICB9IGVsc2Uge1xuICAgIHRhcmdldExlZnQgPSBzbGlkZUluZGV4ICogc2xpZGVIZWlnaHQgKiAtMSArIHZlcnRpY2FsT2Zmc2V0O1xuICB9XG5cbiAgaWYgKHZhcmlhYmxlV2lkdGggPT09IHRydWUpIHtcbiAgICB2YXIgdGFyZ2V0U2xpZGVJbmRleDtcbiAgICB2YXIgdHJhY2tFbGVtID0gdHJhY2tSZWYgJiYgdHJhY2tSZWYubm9kZTtcbiAgICB0YXJnZXRTbGlkZUluZGV4ID0gc2xpZGVJbmRleCArIGdldFByZUNsb25lcyhzcGVjKTtcbiAgICB0YXJnZXRTbGlkZSA9IHRyYWNrRWxlbSAmJiB0cmFja0VsZW0uY2hpbGROb2Rlc1t0YXJnZXRTbGlkZUluZGV4XTtcbiAgICB0YXJnZXRMZWZ0ID0gdGFyZ2V0U2xpZGUgPyB0YXJnZXRTbGlkZS5vZmZzZXRMZWZ0ICogLTEgOiAwO1xuXG4gICAgaWYgKGNlbnRlck1vZGUgPT09IHRydWUpIHtcbiAgICAgIHRhcmdldFNsaWRlSW5kZXggPSBpbmZpbml0ZSA/IHNsaWRlSW5kZXggKyBnZXRQcmVDbG9uZXMoc3BlYykgOiBzbGlkZUluZGV4O1xuICAgICAgdGFyZ2V0U2xpZGUgPSB0cmFja0VsZW0gJiYgdHJhY2tFbGVtLmNoaWxkcmVuW3RhcmdldFNsaWRlSW5kZXhdO1xuICAgICAgdGFyZ2V0TGVmdCA9IDA7XG5cbiAgICAgIGZvciAodmFyIHNsaWRlID0gMDsgc2xpZGUgPCB0YXJnZXRTbGlkZUluZGV4OyBzbGlkZSsrKSB7XG4gICAgICAgIHRhcmdldExlZnQgLT0gdHJhY2tFbGVtICYmIHRyYWNrRWxlbS5jaGlsZHJlbltzbGlkZV0gJiYgdHJhY2tFbGVtLmNoaWxkcmVuW3NsaWRlXS5vZmZzZXRXaWR0aDtcbiAgICAgIH1cblxuICAgICAgdGFyZ2V0TGVmdCAtPSBwYXJzZUludChzcGVjLmNlbnRlclBhZGRpbmcpO1xuICAgICAgdGFyZ2V0TGVmdCArPSB0YXJnZXRTbGlkZSAmJiAobGlzdFdpZHRoIC0gdGFyZ2V0U2xpZGUub2Zmc2V0V2lkdGgpIC8gMjtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0TGVmdDtcbn07XG5cbmV4cG9ydHMuZ2V0VHJhY2tMZWZ0ID0gZ2V0VHJhY2tMZWZ0O1xuXG52YXIgZ2V0UHJlQ2xvbmVzID0gZnVuY3Rpb24gZ2V0UHJlQ2xvbmVzKHNwZWMpIHtcbiAgaWYgKHNwZWMudW5zbGljayB8fCAhc3BlYy5pbmZpbml0ZSkge1xuICAgIHJldHVybiAwO1xuICB9XG5cbiAgaWYgKHNwZWMudmFyaWFibGVXaWR0aCkge1xuICAgIHJldHVybiBzcGVjLnNsaWRlQ291bnQ7XG4gIH1cblxuICByZXR1cm4gc3BlYy5zbGlkZXNUb1Nob3cgKyAoc3BlYy5jZW50ZXJNb2RlID8gMSA6IDApO1xufTtcblxuZXhwb3J0cy5nZXRQcmVDbG9uZXMgPSBnZXRQcmVDbG9uZXM7XG5cbnZhciBnZXRQb3N0Q2xvbmVzID0gZnVuY3Rpb24gZ2V0UG9zdENsb25lcyhzcGVjKSB7XG4gIGlmIChzcGVjLnVuc2xpY2sgfHwgIXNwZWMuaW5maW5pdGUpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHJldHVybiBzcGVjLnNsaWRlQ291bnQ7XG59O1xuXG5leHBvcnRzLmdldFBvc3RDbG9uZXMgPSBnZXRQb3N0Q2xvbmVzO1xuXG52YXIgZ2V0VG90YWxTbGlkZXMgPSBmdW5jdGlvbiBnZXRUb3RhbFNsaWRlcyhzcGVjKSB7XG4gIHJldHVybiBzcGVjLnNsaWRlQ291bnQgPT09IDEgPyAxIDogZ2V0UHJlQ2xvbmVzKHNwZWMpICsgc3BlYy5zbGlkZUNvdW50ICsgZ2V0UG9zdENsb25lcyhzcGVjKTtcbn07XG5cbmV4cG9ydHMuZ2V0VG90YWxTbGlkZXMgPSBnZXRUb3RhbFNsaWRlcztcblxudmFyIHNpYmxpbmdEaXJlY3Rpb24gPSBmdW5jdGlvbiBzaWJsaW5nRGlyZWN0aW9uKHNwZWMpIHtcbiAgaWYgKHNwZWMudGFyZ2V0U2xpZGUgPiBzcGVjLmN1cnJlbnRTbGlkZSkge1xuICAgIGlmIChzcGVjLnRhcmdldFNsaWRlID4gc3BlYy5jdXJyZW50U2xpZGUgKyBzbGlkZXNPblJpZ2h0KHNwZWMpKSB7XG4gICAgICByZXR1cm4gXCJsZWZ0XCI7XG4gICAgfVxuXG4gICAgcmV0dXJuIFwicmlnaHRcIjtcbiAgfSBlbHNlIHtcbiAgICBpZiAoc3BlYy50YXJnZXRTbGlkZSA8IHNwZWMuY3VycmVudFNsaWRlIC0gc2xpZGVzT25MZWZ0KHNwZWMpKSB7XG4gICAgICByZXR1cm4gXCJyaWdodFwiO1xuICAgIH1cblxuICAgIHJldHVybiBcImxlZnRcIjtcbiAgfVxufTtcblxuZXhwb3J0cy5zaWJsaW5nRGlyZWN0aW9uID0gc2libGluZ0RpcmVjdGlvbjtcblxudmFyIHNsaWRlc09uUmlnaHQgPSBmdW5jdGlvbiBzbGlkZXNPblJpZ2h0KF9yZWYpIHtcbiAgdmFyIHNsaWRlc1RvU2hvdyA9IF9yZWYuc2xpZGVzVG9TaG93LFxuICAgICAgY2VudGVyTW9kZSA9IF9yZWYuY2VudGVyTW9kZSxcbiAgICAgIHJ0bCA9IF9yZWYucnRsLFxuICAgICAgY2VudGVyUGFkZGluZyA9IF9yZWYuY2VudGVyUGFkZGluZztcblxuICAvLyByZXR1cm5zIG5vIG9mIHNsaWRlcyBvbiB0aGUgcmlnaHQgb2YgYWN0aXZlIHNsaWRlXG4gIGlmIChjZW50ZXJNb2RlKSB7XG4gICAgdmFyIHJpZ2h0ID0gKHNsaWRlc1RvU2hvdyAtIDEpIC8gMiArIDE7XG4gICAgaWYgKHBhcnNlSW50KGNlbnRlclBhZGRpbmcpID4gMCkgcmlnaHQgKz0gMTtcbiAgICBpZiAocnRsICYmIHNsaWRlc1RvU2hvdyAlIDIgPT09IDApIHJpZ2h0ICs9IDE7XG4gICAgcmV0dXJuIHJpZ2h0O1xuICB9XG5cbiAgaWYgKHJ0bCkge1xuICAgIHJldHVybiAwO1xuICB9XG5cbiAgcmV0dXJuIHNsaWRlc1RvU2hvdyAtIDE7XG59O1xuXG5leHBvcnRzLnNsaWRlc09uUmlnaHQgPSBzbGlkZXNPblJpZ2h0O1xuXG52YXIgc2xpZGVzT25MZWZ0ID0gZnVuY3Rpb24gc2xpZGVzT25MZWZ0KF9yZWYyKSB7XG4gIHZhciBzbGlkZXNUb1Nob3cgPSBfcmVmMi5zbGlkZXNUb1Nob3csXG4gICAgICBjZW50ZXJNb2RlID0gX3JlZjIuY2VudGVyTW9kZSxcbiAgICAgIHJ0bCA9IF9yZWYyLnJ0bCxcbiAgICAgIGNlbnRlclBhZGRpbmcgPSBfcmVmMi5jZW50ZXJQYWRkaW5nO1xuXG4gIC8vIHJldHVybnMgbm8gb2Ygc2xpZGVzIG9uIHRoZSBsZWZ0IG9mIGFjdGl2ZSBzbGlkZVxuICBpZiAoY2VudGVyTW9kZSkge1xuICAgIHZhciBsZWZ0ID0gKHNsaWRlc1RvU2hvdyAtIDEpIC8gMiArIDE7XG4gICAgaWYgKHBhcnNlSW50KGNlbnRlclBhZGRpbmcpID4gMCkgbGVmdCArPSAxO1xuICAgIGlmICghcnRsICYmIHNsaWRlc1RvU2hvdyAlIDIgPT09IDApIGxlZnQgKz0gMTtcbiAgICByZXR1cm4gbGVmdDtcbiAgfVxuXG4gIGlmIChydGwpIHtcbiAgICByZXR1cm4gc2xpZGVzVG9TaG93IC0gMTtcbiAgfVxuXG4gIHJldHVybiAwO1xufTtcblxuZXhwb3J0cy5zbGlkZXNPbkxlZnQgPSBzbGlkZXNPbkxlZnQ7XG5cbnZhciBjYW5Vc2VET00gPSBmdW5jdGlvbiBjYW5Vc2VET00oKSB7XG4gIHJldHVybiAhISh0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiICYmIHdpbmRvdy5kb2N1bWVudCAmJiB3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCk7XG59O1xuXG5leHBvcnRzLmNhblVzZURPTSA9IGNhblVzZURPTTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-slick/lib/utils/innerSliderUtils.js\n"); + +/***/ }), + +/***/ "./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js": +/*!*************************************************************************!*\ + !*** ./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array<Array>} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof __webpack_require__.g !== 'undefined' && __webpack_require__.g.Math === Math) {\r\n return __webpack_require__.g;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array<ResizeObserverSPI>}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the <html> itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element (<html>).\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array<ResizeObservation>}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map<Element, ResizeObservation>}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (index);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVzaXplLW9ic2VydmVyLXBvbHlmaWxsL2Rpc3QvUmVzaXplT2JzZXJ2ZXIuZXMuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLGNBQWM7QUFDN0IsZUFBZSxHQUFHO0FBQ2xCLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBLG1CQUFtQixHQUFHO0FBQ3RCLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixHQUFHO0FBQ3RCLG1CQUFtQixHQUFHO0FBQ3RCLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLEdBQUc7QUFDdEIscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixHQUFHO0FBQ3RCLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUIsVUFBVTtBQUM3QixtQkFBbUIsR0FBRztBQUN0QixxQkFBcUI7QUFDckI7QUFDQTtBQUNBLGtDQUFrQztBQUNsQyxvREFBb0QsZ0JBQWdCO0FBQ3BFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsZUFBZSxxQkFB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QTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSx3QkFBd0I7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRCwrREFBZSxLQUFLLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3Jlc2l6ZS1vYnNlcnZlci1wb2x5ZmlsbC9kaXN0L1Jlc2l6ZU9ic2VydmVyLmVzLmpzP2YzNDciXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEEgY29sbGVjdGlvbiBvZiBzaGltcyB0aGF0IHByb3ZpZGUgbWluaW1hbCBmdW5jdGlvbmFsaXR5IG9mIHRoZSBFUzYgY29sbGVjdGlvbnMuXHJcbiAqXHJcbiAqIFRoZXNlIGltcGxlbWVudGF0aW9ucyBhcmUgbm90IG1lYW50IHRvIGJlIHVzZWQgb3V0c2lkZSBvZiB0aGUgUmVzaXplT2JzZXJ2ZXJcclxuICogbW9kdWxlcyBhcyB0aGV5IGNvdmVyIG9ubHkgYSBsaW1pdGVkIHJhbmdlIG9mIHVzZSBjYXNlcy5cclxuICovXHJcbi8qIGVzbGludC1kaXNhYmxlIHJlcXVpcmUtanNkb2MsIHZhbGlkLWpzZG9jICovXHJcbnZhciBNYXBTaGltID0gKGZ1bmN0aW9uICgpIHtcclxuICAgIGlmICh0eXBlb2YgTWFwICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgIHJldHVybiBNYXA7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgaW5kZXggaW4gcHJvdmlkZWQgYXJyYXkgdGhhdCBtYXRjaGVzIHRoZSBzcGVjaWZpZWQga2V5LlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7QXJyYXk8QXJyYXk+fSBhcnJcclxuICAgICAqIEBwYXJhbSB7Kn0ga2V5XHJcbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfVxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiBnZXRJbmRleChhcnIsIGtleSkge1xyXG4gICAgICAgIHZhciByZXN1bHQgPSAtMTtcclxuICAgICAgICBhcnIuc29tZShmdW5jdGlvbiAoZW50cnksIGluZGV4KSB7XHJcbiAgICAgICAgICAgIGlmIChlbnRyeVswXSA9PT0ga2V5KSB7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQgPSBpbmRleDtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBmdW5jdGlvbiBjbGFzc18xKCkge1xyXG4gICAgICAgICAgICB0aGlzLl9fZW50cmllc19fID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjbGFzc18xLnByb3RvdHlwZSwgXCJzaXplXCIsIHtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIEByZXR1cm5zIHtib29sZWFufVxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fX2VudHJpZXNfXy5sZW5ndGg7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXHJcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBwYXJhbSB7Kn0ga2V5XHJcbiAgICAgICAgICogQHJldHVybnMgeyp9XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgY2xhc3NfMS5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24gKGtleSkge1xyXG4gICAgICAgICAgICB2YXIgaW5kZXggPSBnZXRJbmRleCh0aGlzLl9fZW50cmllc19fLCBrZXkpO1xyXG4gICAgICAgICAgICB2YXIgZW50cnkgPSB0aGlzLl9fZW50cmllc19fW2luZGV4XTtcclxuICAgICAgICAgICAgcmV0dXJuIGVudHJ5ICYmIGVudHJ5WzFdO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQHBhcmFtIHsqfSBrZXlcclxuICAgICAgICAgKiBAcGFyYW0geyp9IHZhbHVlXHJcbiAgICAgICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgY2xhc3NfMS5wcm90b3R5cGUuc2V0ID0gZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcclxuICAgICAgICAgICAgdmFyIGluZGV4ID0gZ2V0SW5kZXgodGhpcy5fX2VudHJpZXNfXywga2V5KTtcclxuICAgICAgICAgICAgaWYgKH5pbmRleCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fX2VudHJpZXNfX1tpbmRleF1bMV0gPSB2YWx1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX19lbnRyaWVzX18ucHVzaChba2V5LCB2YWx1ZV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAcGFyYW0geyp9IGtleVxyXG4gICAgICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGNsYXNzXzEucHJvdG90eXBlLmRlbGV0ZSA9IGZ1bmN0aW9uIChrZXkpIHtcclxuICAgICAgICAgICAgdmFyIGVudHJpZXMgPSB0aGlzLl9fZW50cmllc19fO1xyXG4gICAgICAgICAgICB2YXIgaW5kZXggPSBnZXRJbmRleChlbnRyaWVzLCBrZXkpO1xyXG4gICAgICAgICAgICBpZiAofmluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICBlbnRyaWVzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBwYXJhbSB7Kn0ga2V5XHJcbiAgICAgICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgY2xhc3NfMS5wcm90b3R5cGUuaGFzID0gZnVuY3Rpb24gKGtleSkge1xyXG4gICAgICAgICAgICByZXR1cm4gISF+Z2V0SW5kZXgodGhpcy5fX2VudHJpZXNfXywga2V5KTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGNsYXNzXzEucHJvdG90eXBlLmNsZWFyID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICB0aGlzLl9fZW50cmllc19fLnNwbGljZSgwKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrXHJcbiAgICAgICAgICogQHBhcmFtIHsqfSBbY3R4PW51bGxdXHJcbiAgICAgICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgY2xhc3NfMS5wcm90b3R5cGUuZm9yRWFjaCA9IGZ1bmN0aW9uIChjYWxsYmFjaywgY3R4KSB7XHJcbiAgICAgICAgICAgIGlmIChjdHggPT09IHZvaWQgMCkgeyBjdHggPSBudWxsOyB9XHJcbiAgICAgICAgICAgIGZvciAodmFyIF9pID0gMCwgX2EgPSB0aGlzLl9fZW50cmllc19fOyBfaSA8IF9hLmxlbmd0aDsgX2krKykge1xyXG4gICAgICAgICAgICAgICAgdmFyIGVudHJ5ID0gX2FbX2ldO1xyXG4gICAgICAgICAgICAgICAgY2FsbGJhY2suY2FsbChjdHgsIGVudHJ5WzFdLCBlbnRyeVswXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiBjbGFzc18xO1xyXG4gICAgfSgpKTtcclxufSkoKTtcblxuLyoqXHJcbiAqIERldGVjdHMgd2hldGhlciB3aW5kb3cgYW5kIGRvY3VtZW50IG9iamVjdHMgYXJlIGF2YWlsYWJsZSBpbiBjdXJyZW50IGVudmlyb25tZW50LlxyXG4gKi9cclxudmFyIGlzQnJvd3NlciA9IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LmRvY3VtZW50ID09PSBkb2N1bWVudDtcblxuLy8gUmV0dXJucyBnbG9iYWwgb2JqZWN0IG9mIGEgY3VycmVudCBlbnZpcm9ubWVudC5cclxudmFyIGdsb2JhbCQxID0gKGZ1bmN0aW9uICgpIHtcclxuICAgIGlmICh0eXBlb2YgZ2xvYmFsICE9PSAndW5kZWZpbmVkJyAmJiBnbG9iYWwuTWF0aCA9PT0gTWF0aCkge1xyXG4gICAgICAgIHJldHVybiBnbG9iYWw7XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZW9mIHNlbGYgIT09ICd1bmRlZmluZWQnICYmIHNlbGYuTWF0aCA9PT0gTWF0aCkge1xyXG4gICAgICAgIHJldHVybiBzZWxmO1xyXG4gICAgfVxyXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5NYXRoID09PSBNYXRoKSB7XHJcbiAgICAgICAgcmV0dXJuIHdpbmRvdztcclxuICAgIH1cclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1uZXctZnVuY1xyXG4gICAgcmV0dXJuIEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XHJcbn0pKCk7XG5cbi8qKlxyXG4gKiBBIHNoaW0gZm9yIHRoZSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgd2hpY2ggZmFsbHMgYmFjayB0byB0aGUgc2V0VGltZW91dCBpZlxyXG4gKiBmaXJzdCBvbmUgaXMgbm90IHN1cHBvcnRlZC5cclxuICpcclxuICogQHJldHVybnMge251bWJlcn0gUmVxdWVzdHMnIGlkZW50aWZpZXIuXHJcbiAqL1xyXG52YXIgcmVxdWVzdEFuaW1hdGlvbkZyYW1lJDEgPSAoZnVuY3Rpb24gKCkge1xyXG4gICAgaWYgKHR5cGVvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAvLyBJdCdzIHJlcXVpcmVkIHRvIHVzZSBhIGJvdW5kZWQgZnVuY3Rpb24gYmVjYXVzZSBJRSBzb21ldGltZXMgdGhyb3dzXHJcbiAgICAgICAgLy8gYW4gXCJJbnZhbGlkIGNhbGxpbmcgb2JqZWN0XCIgZXJyb3IgaWYgckFGIGlzIGludm9rZWQgd2l0aG91dCB0aGUgZ2xvYmFsXHJcbiAgICAgICAgLy8gb2JqZWN0IG9uIHRoZSBsZWZ0IGhhbmQgc2lkZS5cclxuICAgICAgICByZXR1cm4gcmVxdWVzdEFuaW1hdGlvbkZyYW1lLmJpbmQoZ2xvYmFsJDEpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZ1bmN0aW9uIChjYWxsYmFjaykgeyByZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7IHJldHVybiBjYWxsYmFjayhEYXRlLm5vdygpKTsgfSwgMTAwMCAvIDYwKTsgfTtcclxufSkoKTtcblxuLy8gRGVmaW5lcyBtaW5pbXVtIHRpbWVvdXQgYmVmb3JlIGFkZGluZyBhIHRyYWlsaW5nIGNhbGwuXHJcbnZhciB0cmFpbGluZ1RpbWVvdXQgPSAyO1xyXG4vKipcclxuICogQ3JlYXRlcyBhIHdyYXBwZXIgZnVuY3Rpb24gd2hpY2ggZW5zdXJlcyB0aGF0IHByb3ZpZGVkIGNhbGxiYWNrIHdpbGwgYmVcclxuICogaW52b2tlZCBvbmx5IG9uY2UgZHVyaW5nIHRoZSBzcGVjaWZpZWQgZGVsYXkgcGVyaW9kLlxyXG4gKlxyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFjayAtIEZ1bmN0aW9uIHRvIGJlIGludm9rZWQgYWZ0ZXIgdGhlIGRlbGF5IHBlcmlvZC5cclxuICogQHBhcmFtIHtudW1iZXJ9IGRlbGF5IC0gRGVsYXkgYWZ0ZXIgd2hpY2ggdG8gaW52b2tlIGNhbGxiYWNrLlxyXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259XHJcbiAqL1xyXG5mdW5jdGlvbiB0aHJvdHRsZSAoY2FsbGJhY2ssIGRlbGF5KSB7XHJcbiAgICB2YXIgbGVhZGluZ0NhbGwgPSBmYWxzZSwgdHJhaWxpbmdDYWxsID0gZmFsc2UsIGxhc3RDYWxsVGltZSA9IDA7XHJcbiAgICAvKipcclxuICAgICAqIEludm9rZXMgdGhlIG9yaWdpbmFsIGNhbGxiYWNrIGZ1bmN0aW9uIGFuZCBzY2hlZHVsZXMgbmV3IGludm9jYXRpb24gaWZcclxuICAgICAqIHRoZSBcInByb3h5XCIgd2FzIGNhbGxlZCBkdXJpbmcgY3VycmVudCByZXF1ZXN0LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiByZXNvbHZlUGVuZGluZygpIHtcclxuICAgICAgICBpZiAobGVhZGluZ0NhbGwpIHtcclxuICAgICAgICAgICAgbGVhZGluZ0NhbGwgPSBmYWxzZTtcclxuICAgICAgICAgICAgY2FsbGJhY2soKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRyYWlsaW5nQ2FsbCkge1xyXG4gICAgICAgICAgICBwcm94eSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGJhY2sgaW52b2tlZCBhZnRlciB0aGUgc3BlY2lmaWVkIGRlbGF5LiBJdCB3aWxsIGZ1cnRoZXIgcG9zdHBvbmVcclxuICAgICAqIGludm9jYXRpb24gb2YgdGhlIG9yaWdpbmFsIGZ1bmN0aW9uIGRlbGVnYXRpbmcgaXQgdG8gdGhlXHJcbiAgICAgKiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgKi9cclxuICAgIGZ1bmN0aW9uIHRpbWVvdXRDYWxsYmFjaygpIHtcclxuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUkMShyZXNvbHZlUGVuZGluZyk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFNjaGVkdWxlcyBpbnZvY2F0aW9uIG9mIHRoZSBvcmlnaW5hbCBmdW5jdGlvbi5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgZnVuY3Rpb24gcHJveHkoKSB7XHJcbiAgICAgICAgdmFyIHRpbWVTdGFtcCA9IERhdGUubm93KCk7XHJcbiAgICAgICAgaWYgKGxlYWRpbmdDYWxsKSB7XHJcbiAgICAgICAgICAgIC8vIFJlamVjdCBpbW1lZGlhdGVseSBmb2xsb3dpbmcgY2FsbHMuXHJcbiAgICAgICAgICAgIGlmICh0aW1lU3RhbXAgLSBsYXN0Q2FsbFRpbWUgPCB0cmFpbGluZ1RpbWVvdXQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBTY2hlZHVsZSBuZXcgY2FsbCB0byBiZSBpbiBpbnZva2VkIHdoZW4gdGhlIHBlbmRpbmcgb25lIGlzIHJlc29sdmVkLlxyXG4gICAgICAgICAgICAvLyBUaGlzIGlzIGltcG9ydGFudCBmb3IgXCJ0cmFuc2l0aW9uc1wiIHdoaWNoIG5ldmVyIGFjdHVhbGx5IHN0YXJ0XHJcbiAgICAgICAgICAgIC8vIGltbWVkaWF0ZWx5IHNvIHRoZXJlIGlzIGEgY2hhbmNlIHRoYXQgd2UgbWlnaHQgbWlzcyBvbmUgaWYgY2hhbmdlXHJcbiAgICAgICAgICAgIC8vIGhhcHBlbnMgYW1pZHMgdGhlIHBlbmRpbmcgaW52b2NhdGlvbi5cclxuICAgICAgICAgICAgdHJhaWxpbmdDYWxsID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGxlYWRpbmdDYWxsID0gdHJ1ZTtcclxuICAgICAgICAgICAgdHJhaWxpbmdDYWxsID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQodGltZW91dENhbGxiYWNrLCBkZWxheSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxhc3RDYWxsVGltZSA9IHRpbWVTdGFtcDtcclxuICAgIH1cclxuICAgIHJldHVybiBwcm94eTtcclxufVxuXG4vLyBNaW5pbXVtIGRlbGF5IGJlZm9yZSBpbnZva2luZyB0aGUgdXBkYXRlIG9mIG9ic2VydmVycy5cclxudmFyIFJFRlJFU0hfREVMQVkgPSAyMDtcclxuLy8gQSBsaXN0IG9mIHN1YnN0cmluZ3Mgb2YgQ1NTIHByb3BlcnRpZXMgdXNlZCB0byBmaW5kIHRyYW5zaXRpb24gZXZlbnRzIHRoYXRcclxuLy8gbWlnaHQgYWZmZWN0IGRpbWVuc2lvbnMgb2Ygb2JzZXJ2ZWQgZWxlbWVudHMuXHJcbnZhciB0cmFuc2l0aW9uS2V5cyA9IFsndG9wJywgJ3JpZ2h0JywgJ2JvdHRvbScsICdsZWZ0JywgJ3dpZHRoJywgJ2hlaWdodCcsICdzaXplJywgJ3dlaWdodCddO1xyXG4vLyBDaGVjayBpZiBNdXRhdGlvbk9ic2VydmVyIGlzIGF2YWlsYWJsZS5cclxudmFyIG11dGF0aW9uT2JzZXJ2ZXJTdXBwb3J0ZWQgPSB0eXBlb2YgTXV0YXRpb25PYnNlcnZlciAhPT0gJ3VuZGVmaW5lZCc7XHJcbi8qKlxyXG4gKiBTaW5nbGV0b24gY29udHJvbGxlciBjbGFzcyB3aGljaCBoYW5kbGVzIHVwZGF0ZXMgb2YgUmVzaXplT2JzZXJ2ZXIgaW5zdGFuY2VzLlxyXG4gKi9cclxudmFyIFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlciA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiBSZXNpemVPYnNlcnZlckNvbnRyb2xsZXIuXHJcbiAgICAgKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgZnVuY3Rpb24gUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyKCkge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEluZGljYXRlcyB3aGV0aGVyIERPTSBsaXN0ZW5lcnMgaGF2ZSBiZWVuIGFkZGVkLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHByaXZhdGUge2Jvb2xlYW59XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5jb25uZWN0ZWRfID0gZmFsc2U7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGVsbHMgdGhhdCBjb250cm9sbGVyIGhhcyBzdWJzY3JpYmVkIGZvciBNdXRhdGlvbiBFdmVudHMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAcHJpdmF0ZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLm11dGF0aW9uRXZlbnRzQWRkZWRfID0gZmFsc2U7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogS2VlcHMgcmVmZXJlbmNlIHRvIHRoZSBpbnN0YW5jZSBvZiBNdXRhdGlvbk9ic2VydmVyLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHByaXZhdGUge011dGF0aW9uT2JzZXJ2ZXJ9XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5tdXRhdGlvbnNPYnNlcnZlcl8gPSBudWxsO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEEgbGlzdCBvZiBjb25uZWN0ZWQgb2JzZXJ2ZXJzLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHByaXZhdGUge0FycmF5PFJlc2l6ZU9ic2VydmVyU1BJPn1cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLm9ic2VydmVyc18gPSBbXTtcclxuICAgICAgICB0aGlzLm9uVHJhbnNpdGlvbkVuZF8gPSB0aGlzLm9uVHJhbnNpdGlvbkVuZF8uYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLnJlZnJlc2ggPSB0aHJvdHRsZSh0aGlzLnJlZnJlc2guYmluZCh0aGlzKSwgUkVGUkVTSF9ERUxBWSk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIEFkZHMgb2JzZXJ2ZXIgdG8gb2JzZXJ2ZXJzIGxpc3QuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtSZXNpemVPYnNlcnZlclNQSX0gb2JzZXJ2ZXIgLSBPYnNlcnZlciB0byBiZSBhZGRlZC5cclxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZlckNvbnRyb2xsZXIucHJvdG90eXBlLmFkZE9ic2VydmVyID0gZnVuY3Rpb24gKG9ic2VydmVyKSB7XHJcbiAgICAgICAgaWYgKCF+dGhpcy5vYnNlcnZlcnNfLmluZGV4T2Yob2JzZXJ2ZXIpKSB7XHJcbiAgICAgICAgICAgIHRoaXMub2JzZXJ2ZXJzXy5wdXNoKG9ic2VydmVyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gQWRkIGxpc3RlbmVycyBpZiB0aGV5IGhhdmVuJ3QgYmVlbiBhZGRlZCB5ZXQuXHJcbiAgICAgICAgaWYgKCF0aGlzLmNvbm5lY3RlZF8pIHtcclxuICAgICAgICAgICAgdGhpcy5jb25uZWN0XygpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIFJlbW92ZXMgb2JzZXJ2ZXIgZnJvbSBvYnNlcnZlcnMgbGlzdC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1Jlc2l6ZU9ic2VydmVyU1BJfSBvYnNlcnZlciAtIE9ic2VydmVyIHRvIGJlIHJlbW92ZWQuXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyLnByb3RvdHlwZS5yZW1vdmVPYnNlcnZlciA9IGZ1bmN0aW9uIChvYnNlcnZlcikge1xyXG4gICAgICAgIHZhciBvYnNlcnZlcnMgPSB0aGlzLm9ic2VydmVyc187XHJcbiAgICAgICAgdmFyIGluZGV4ID0gb2JzZXJ2ZXJzLmluZGV4T2Yob2JzZXJ2ZXIpO1xyXG4gICAgICAgIC8vIFJlbW92ZSBvYnNlcnZlciBpZiBpdCdzIHByZXNlbnQgaW4gcmVnaXN0cnkuXHJcbiAgICAgICAgaWYgKH5pbmRleCkge1xyXG4gICAgICAgICAgICBvYnNlcnZlcnMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gUmVtb3ZlIGxpc3RlbmVycyBpZiBjb250cm9sbGVyIGhhcyBubyBjb25uZWN0ZWQgb2JzZXJ2ZXJzLlxyXG4gICAgICAgIGlmICghb2JzZXJ2ZXJzLmxlbmd0aCAmJiB0aGlzLmNvbm5lY3RlZF8pIHtcclxuICAgICAgICAgICAgdGhpcy5kaXNjb25uZWN0XygpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIEludm9rZXMgdGhlIHVwZGF0ZSBvZiBvYnNlcnZlcnMuIEl0IHdpbGwgY29udGludWUgcnVubmluZyB1cGRhdGVzIGluc29mYXJcclxuICAgICAqIGl0IGRldGVjdHMgY2hhbmdlcy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyLnByb3RvdHlwZS5yZWZyZXNoID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHZhciBjaGFuZ2VzRGV0ZWN0ZWQgPSB0aGlzLnVwZGF0ZU9ic2VydmVyc18oKTtcclxuICAgICAgICAvLyBDb250aW51ZSBydW5uaW5nIHVwZGF0ZXMgaWYgY2hhbmdlcyBoYXZlIGJlZW4gZGV0ZWN0ZWQgYXMgdGhlcmUgbWlnaHRcclxuICAgICAgICAvLyBiZSBmdXR1cmUgb25lcyBjYXVzZWQgYnkgQ1NTIHRyYW5zaXRpb25zLlxyXG4gICAgICAgIGlmIChjaGFuZ2VzRGV0ZWN0ZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlcyBldmVyeSBvYnNlcnZlciBmcm9tIG9ic2VydmVycyBsaXN0IGFuZCBub3RpZmllcyB0aGVtIG9mIHF1ZXVlZFxyXG4gICAgICogZW50cmllcy5cclxuICAgICAqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgXCJ0cnVlXCIgaWYgYW55IG9ic2VydmVyIGhhcyBkZXRlY3RlZCBjaGFuZ2VzIGluXHJcbiAgICAgKiAgICAgIGRpbWVuc2lvbnMgb2YgaXQncyBlbGVtZW50cy5cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyLnByb3RvdHlwZS51cGRhdGVPYnNlcnZlcnNfID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIC8vIENvbGxlY3Qgb2JzZXJ2ZXJzIHRoYXQgaGF2ZSBhY3RpdmUgb2JzZXJ2YXRpb25zLlxyXG4gICAgICAgIHZhciBhY3RpdmVPYnNlcnZlcnMgPSB0aGlzLm9ic2VydmVyc18uZmlsdGVyKGZ1bmN0aW9uIChvYnNlcnZlcikge1xyXG4gICAgICAgICAgICByZXR1cm4gb2JzZXJ2ZXIuZ2F0aGVyQWN0aXZlKCksIG9ic2VydmVyLmhhc0FjdGl2ZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8vIERlbGl2ZXIgbm90aWZpY2F0aW9ucyBpbiBhIHNlcGFyYXRlIGN5Y2xlIGluIG9yZGVyIHRvIGF2b2lkIGFueVxyXG4gICAgICAgIC8vIGNvbGxpc2lvbnMgYmV0d2VlbiBvYnNlcnZlcnMsIGUuZy4gd2hlbiBtdWx0aXBsZSBpbnN0YW5jZXMgb2ZcclxuICAgICAgICAvLyBSZXNpemVPYnNlcnZlciBhcmUgdHJhY2tpbmcgdGhlIHNhbWUgZWxlbWVudCBhbmQgdGhlIGNhbGxiYWNrIG9mIG9uZVxyXG4gICAgICAgIC8vIG9mIHRoZW0gY2hhbmdlcyBjb250ZW50IGRpbWVuc2lvbnMgb2YgdGhlIG9ic2VydmVkIHRhcmdldC4gU29tZXRpbWVzXHJcbiAgICAgICAgLy8gdGhpcyBtYXkgcmVzdWx0IGluIG5vdGlmaWNhdGlvbnMgYmVpbmcgYmxvY2tlZCBmb3IgdGhlIHJlc3Qgb2Ygb2JzZXJ2ZXJzLlxyXG4gICAgICAgIGFjdGl2ZU9ic2VydmVycy5mb3JFYWNoKGZ1bmN0aW9uIChvYnNlcnZlcikgeyByZXR1cm4gb2JzZXJ2ZXIuYnJvYWRjYXN0QWN0aXZlKCk7IH0pO1xyXG4gICAgICAgIHJldHVybiBhY3RpdmVPYnNlcnZlcnMubGVuZ3RoID4gMDtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemVzIERPTSBsaXN0ZW5lcnMuXHJcbiAgICAgKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZlckNvbnRyb2xsZXIucHJvdG90eXBlLmNvbm5lY3RfID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIC8vIERvIG5vdGhpbmcgaWYgcnVubmluZyBpbiBhIG5vbi1icm93c2VyIGVudmlyb25tZW50IG9yIGlmIGxpc3RlbmVyc1xyXG4gICAgICAgIC8vIGhhdmUgYmVlbiBhbHJlYWR5IGFkZGVkLlxyXG4gICAgICAgIGlmICghaXNCcm93c2VyIHx8IHRoaXMuY29ubmVjdGVkXykge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFN1YnNjcmlwdGlvbiB0byB0aGUgXCJUcmFuc2l0aW9uZW5kXCIgZXZlbnQgaXMgdXNlZCBhcyBhIHdvcmthcm91bmQgZm9yXHJcbiAgICAgICAgLy8gZGVsYXllZCB0cmFuc2l0aW9ucy4gVGhpcyB3YXkgaXQncyBwb3NzaWJsZSB0byBjYXB0dXJlIGF0IGxlYXN0IHRoZVxyXG4gICAgICAgIC8vIGZpbmFsIHN0YXRlIG9mIGFuIGVsZW1lbnQuXHJcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndHJhbnNpdGlvbmVuZCcsIHRoaXMub25UcmFuc2l0aW9uRW5kXyk7XHJcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMucmVmcmVzaCk7XHJcbiAgICAgICAgaWYgKG11dGF0aW9uT2JzZXJ2ZXJTdXBwb3J0ZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5tdXRhdGlvbnNPYnNlcnZlcl8gPSBuZXcgTXV0YXRpb25PYnNlcnZlcih0aGlzLnJlZnJlc2gpO1xyXG4gICAgICAgICAgICB0aGlzLm11dGF0aW9uc09ic2VydmVyXy5vYnNlcnZlKGRvY3VtZW50LCB7XHJcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgY2hpbGRMaXN0OiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgY2hhcmFjdGVyRGF0YTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIHN1YnRyZWU6IHRydWVcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01TdWJ0cmVlTW9kaWZpZWQnLCB0aGlzLnJlZnJlc2gpO1xyXG4gICAgICAgICAgICB0aGlzLm11dGF0aW9uRXZlbnRzQWRkZWRfID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jb25uZWN0ZWRfID0gdHJ1ZTtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIFJlbW92ZXMgRE9NIGxpc3RlbmVycy5cclxuICAgICAqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgKi9cclxuICAgIFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlci5wcm90b3R5cGUuZGlzY29ubmVjdF8gPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgLy8gRG8gbm90aGluZyBpZiBydW5uaW5nIGluIGEgbm9uLWJyb3dzZXIgZW52aXJvbm1lbnQgb3IgaWYgbGlzdGVuZXJzXHJcbiAgICAgICAgLy8gaGF2ZSBiZWVuIGFscmVhZHkgcmVtb3ZlZC5cclxuICAgICAgICBpZiAoIWlzQnJvd3NlciB8fCAhdGhpcy5jb25uZWN0ZWRfKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndHJhbnNpdGlvbmVuZCcsIHRoaXMub25UcmFuc2l0aW9uRW5kXyk7XHJcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMucmVmcmVzaCk7XHJcbiAgICAgICAgaWYgKHRoaXMubXV0YXRpb25zT2JzZXJ2ZXJfKSB7XHJcbiAgICAgICAgICAgIHRoaXMubXV0YXRpb25zT2JzZXJ2ZXJfLmRpc2Nvbm5lY3QoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMubXV0YXRpb25FdmVudHNBZGRlZF8pIHtcclxuICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignRE9NU3VidHJlZU1vZGlmaWVkJywgdGhpcy5yZWZyZXNoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5tdXRhdGlvbnNPYnNlcnZlcl8gPSBudWxsO1xyXG4gICAgICAgIHRoaXMubXV0YXRpb25FdmVudHNBZGRlZF8gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmNvbm5lY3RlZF8gPSBmYWxzZTtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIFwiVHJhbnNpdGlvbmVuZFwiIGV2ZW50IGhhbmRsZXIuXHJcbiAgICAgKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEBwYXJhbSB7VHJhbnNpdGlvbkV2ZW50fSBldmVudFxyXG4gICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgKi9cclxuICAgIFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlci5wcm90b3R5cGUub25UcmFuc2l0aW9uRW5kXyA9IGZ1bmN0aW9uIChfYSkge1xyXG4gICAgICAgIHZhciBfYiA9IF9hLnByb3BlcnR5TmFtZSwgcHJvcGVydHlOYW1lID0gX2IgPT09IHZvaWQgMCA/ICcnIDogX2I7XHJcbiAgICAgICAgLy8gRGV0ZWN0IHdoZXRoZXIgdHJhbnNpdGlvbiBtYXkgYWZmZWN0IGRpbWVuc2lvbnMgb2YgYW4gZWxlbWVudC5cclxuICAgICAgICB2YXIgaXNSZWZsb3dQcm9wZXJ0eSA9IHRyYW5zaXRpb25LZXlzLnNvbWUoZnVuY3Rpb24gKGtleSkge1xyXG4gICAgICAgICAgICByZXR1cm4gISF+cHJvcGVydHlOYW1lLmluZGV4T2Yoa2V5KTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAoaXNSZWZsb3dQcm9wZXJ0eSkge1xyXG4gICAgICAgICAgICB0aGlzLnJlZnJlc2goKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIGluc3RhbmNlIG9mIHRoZSBSZXNpemVPYnNlcnZlckNvbnRyb2xsZXIuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMge1Jlc2l6ZU9ic2VydmVyQ29udHJvbGxlcn1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyLmdldEluc3RhbmNlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5pbnN0YW5jZV8pIHtcclxuICAgICAgICAgICAgdGhpcy5pbnN0YW5jZV8gPSBuZXcgUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmluc3RhbmNlXztcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIEhvbGRzIHJlZmVyZW5jZSB0byB0aGUgY29udHJvbGxlcidzIGluc3RhbmNlLlxyXG4gICAgICpcclxuICAgICAqIEBwcml2YXRlIHtSZXNpemVPYnNlcnZlckNvbnRyb2xsZXJ9XHJcbiAgICAgKi9cclxuICAgIFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlci5pbnN0YW5jZV8gPSBudWxsO1xyXG4gICAgcmV0dXJuIFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlcjtcclxufSgpKTtcblxuLyoqXHJcbiAqIERlZmluZXMgbm9uLXdyaXRhYmxlL2VudW1lcmFibGUgcHJvcGVydGllcyBvZiB0aGUgcHJvdmlkZWQgdGFyZ2V0IG9iamVjdC5cclxuICpcclxuICogQHBhcmFtIHtPYmplY3R9IHRhcmdldCAtIE9iamVjdCBmb3Igd2hpY2ggdG8gZGVmaW5lIHByb3BlcnRpZXMuXHJcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIFByb3BlcnRpZXMgdG8gYmUgZGVmaW5lZC5cclxuICogQHJldHVybnMge09iamVjdH0gVGFyZ2V0IG9iamVjdC5cclxuICovXHJcbnZhciBkZWZpbmVDb25maWd1cmFibGUgPSAoZnVuY3Rpb24gKHRhcmdldCwgcHJvcHMpIHtcclxuICAgIGZvciAodmFyIF9pID0gMCwgX2EgPSBPYmplY3Qua2V5cyhwcm9wcyk7IF9pIDwgX2EubGVuZ3RoOyBfaSsrKSB7XHJcbiAgICAgICAgdmFyIGtleSA9IF9hW19pXTtcclxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHtcclxuICAgICAgICAgICAgdmFsdWU6IHByb3BzW2tleV0sXHJcbiAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxyXG4gICAgICAgICAgICB3cml0YWJsZTogZmFsc2UsXHJcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRhcmdldDtcclxufSk7XG5cbi8qKlxyXG4gKiBSZXR1cm5zIHRoZSBnbG9iYWwgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCBwcm92aWRlZCBlbGVtZW50LlxyXG4gKlxyXG4gKiBAcGFyYW0ge09iamVjdH0gdGFyZ2V0XHJcbiAqIEByZXR1cm5zIHtPYmplY3R9XHJcbiAqL1xyXG52YXIgZ2V0V2luZG93T2YgPSAoZnVuY3Rpb24gKHRhcmdldCkge1xyXG4gICAgLy8gQXNzdW1lIHRoYXQgdGhlIGVsZW1lbnQgaXMgYW4gaW5zdGFuY2Ugb2YgTm9kZSwgd2hpY2ggbWVhbnMgdGhhdCBpdFxyXG4gICAgLy8gaGFzIHRoZSBcIm93bmVyRG9jdW1lbnRcIiBwcm9wZXJ0eSBmcm9tIHdoaWNoIHdlIGNhbiByZXRyaWV2ZSBhXHJcbiAgICAvLyBjb3JyZXNwb25kaW5nIGdsb2JhbCBvYmplY3QuXHJcbiAgICB2YXIgb3duZXJHbG9iYWwgPSB0YXJnZXQgJiYgdGFyZ2V0Lm93bmVyRG9jdW1lbnQgJiYgdGFyZ2V0Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc7XHJcbiAgICAvLyBSZXR1cm4gdGhlIGxvY2FsIGdsb2JhbCBvYmplY3QgaWYgaXQncyBub3QgcG9zc2libGUgZXh0cmFjdCBvbmUgZnJvbVxyXG4gICAgLy8gcHJvdmlkZWQgZWxlbWVudC5cclxuICAgIHJldHVybiBvd25lckdsb2JhbCB8fCBnbG9iYWwkMTtcclxufSk7XG5cbi8vIFBsYWNlaG9sZGVyIG9mIGFuIGVtcHR5IGNvbnRlbnQgcmVjdGFuZ2xlLlxyXG52YXIgZW1wdHlSZWN0ID0gY3JlYXRlUmVjdEluaXQoMCwgMCwgMCwgMCk7XHJcbi8qKlxyXG4gKiBDb252ZXJ0cyBwcm92aWRlZCBzdHJpbmcgdG8gYSBudW1iZXIuXHJcbiAqXHJcbiAqIEBwYXJhbSB7bnVtYmVyfHN0cmluZ30gdmFsdWVcclxuICogQHJldHVybnMge251bWJlcn1cclxuICovXHJcbmZ1bmN0aW9uIHRvRmxvYXQodmFsdWUpIHtcclxuICAgIHJldHVybiBwYXJzZUZsb2F0KHZhbHVlKSB8fCAwO1xyXG59XHJcbi8qKlxyXG4gKiBFeHRyYWN0cyBib3JkZXJzIHNpemUgZnJvbSBwcm92aWRlZCBzdHlsZXMuXHJcbiAqXHJcbiAqIEBwYXJhbSB7Q1NTU3R5bGVEZWNsYXJhdGlvbn0gc3R5bGVzXHJcbiAqIEBwYXJhbSB7Li4uc3RyaW5nfSBwb3NpdGlvbnMgLSBCb3JkZXJzIHBvc2l0aW9ucyAodG9wLCByaWdodCwgLi4uKVxyXG4gKiBAcmV0dXJucyB7bnVtYmVyfVxyXG4gKi9cclxuZnVuY3Rpb24gZ2V0Qm9yZGVyc1NpemUoc3R5bGVzKSB7XHJcbiAgICB2YXIgcG9zaXRpb25zID0gW107XHJcbiAgICBmb3IgKHZhciBfaSA9IDE7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykge1xyXG4gICAgICAgIHBvc2l0aW9uc1tfaSAtIDFdID0gYXJndW1lbnRzW19pXTtcclxuICAgIH1cclxuICAgIHJldHVybiBwb3NpdGlvbnMucmVkdWNlKGZ1bmN0aW9uIChzaXplLCBwb3NpdGlvbikge1xyXG4gICAgICAgIHZhciB2YWx1ZSA9IHN0eWxlc1snYm9yZGVyLScgKyBwb3NpdGlvbiArICctd2lkdGgnXTtcclxuICAgICAgICByZXR1cm4gc2l6ZSArIHRvRmxvYXQodmFsdWUpO1xyXG4gICAgfSwgMCk7XHJcbn1cclxuLyoqXHJcbiAqIEV4dHJhY3RzIHBhZGRpbmdzIHNpemVzIGZyb20gcHJvdmlkZWQgc3R5bGVzLlxyXG4gKlxyXG4gKiBAcGFyYW0ge0NTU1N0eWxlRGVjbGFyYXRpb259IHN0eWxlc1xyXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBQYWRkaW5ncyBib3guXHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRQYWRkaW5ncyhzdHlsZXMpIHtcclxuICAgIHZhciBwb3NpdGlvbnMgPSBbJ3RvcCcsICdyaWdodCcsICdib3R0b20nLCAnbGVmdCddO1xyXG4gICAgdmFyIHBhZGRpbmdzID0ge307XHJcbiAgICBmb3IgKHZhciBfaSA9IDAsIHBvc2l0aW9uc18xID0gcG9zaXRpb25zOyBfaSA8IHBvc2l0aW9uc18xLmxlbmd0aDsgX2krKykge1xyXG4gICAgICAgIHZhciBwb3NpdGlvbiA9IHBvc2l0aW9uc18xW19pXTtcclxuICAgICAgICB2YXIgdmFsdWUgPSBzdHlsZXNbJ3BhZGRpbmctJyArIHBvc2l0aW9uXTtcclxuICAgICAgICBwYWRkaW5nc1twb3NpdGlvbl0gPSB0b0Zsb2F0KHZhbHVlKTtcclxuICAgIH1cclxuICAgIHJldHVybiBwYWRkaW5ncztcclxufVxyXG4vKipcclxuICogQ2FsY3VsYXRlcyBjb250ZW50IHJlY3RhbmdsZSBvZiBwcm92aWRlZCBTVkcgZWxlbWVudC5cclxuICpcclxuICogQHBhcmFtIHtTVkdHcmFwaGljc0VsZW1lbnR9IHRhcmdldCAtIEVsZW1lbnQgY29udGVudCByZWN0YW5nbGUgb2Ygd2hpY2ggbmVlZHNcclxuICogICAgICB0byBiZSBjYWxjdWxhdGVkLlxyXG4gKiBAcmV0dXJucyB7RE9NUmVjdEluaXR9XHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRTVkdDb250ZW50UmVjdCh0YXJnZXQpIHtcclxuICAgIHZhciBiYm94ID0gdGFyZ2V0LmdldEJCb3goKTtcclxuICAgIHJldHVybiBjcmVhdGVSZWN0SW5pdCgwLCAwLCBiYm94LndpZHRoLCBiYm94LmhlaWdodCk7XHJcbn1cclxuLyoqXHJcbiAqIENhbGN1bGF0ZXMgY29udGVudCByZWN0YW5nbGUgb2YgcHJvdmlkZWQgSFRNTEVsZW1lbnQuXHJcbiAqXHJcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IHRhcmdldCAtIEVsZW1lbnQgZm9yIHdoaWNoIHRvIGNhbGN1bGF0ZSB0aGUgY29udGVudCByZWN0YW5nbGUuXHJcbiAqIEByZXR1cm5zIHtET01SZWN0SW5pdH1cclxuICovXHJcbmZ1bmN0aW9uIGdldEhUTUxFbGVtZW50Q29udGVudFJlY3QodGFyZ2V0KSB7XHJcbiAgICAvLyBDbGllbnQgd2lkdGggJiBoZWlnaHQgcHJvcGVydGllcyBjYW4ndCBiZVxyXG4gICAgLy8gdXNlZCBleGNsdXNpdmVseSBhcyB0aGV5IHByb3ZpZGUgcm91bmRlZCB2YWx1ZXMuXHJcbiAgICB2YXIgY2xpZW50V2lkdGggPSB0YXJnZXQuY2xpZW50V2lkdGgsIGNsaWVudEhlaWdodCA9IHRhcmdldC5jbGllbnRIZWlnaHQ7XHJcbiAgICAvLyBCeSB0aGlzIGNvbmRpdGlvbiB3ZSBjYW4gY2F0Y2ggYWxsIG5vbi1yZXBsYWNlZCBpbmxpbmUsIGhpZGRlbiBhbmRcclxuICAgIC8vIGRldGFjaGVkIGVsZW1lbnRzLiBUaG91Z2ggZWxlbWVudHMgd2l0aCB3aWR0aCAmIGhlaWdodCBwcm9wZXJ0aWVzIGxlc3NcclxuICAgIC8vIHRoYW4gMC41IHdpbGwgYmUgZGlzY2FyZGVkIGFzIHdlbGwuXHJcbiAgICAvL1xyXG4gICAgLy8gV2l0aG91dCBpdCB3ZSB3b3VsZCBuZWVkIHRvIGltcGxlbWVudCBzZXBhcmF0ZSBtZXRob2RzIGZvciBlYWNoIG9mXHJcbiAgICAvLyB0aG9zZSBjYXNlcyBhbmQgaXQncyBub3QgcG9zc2libGUgdG8gcGVyZm9ybSBhIHByZWNpc2UgYW5kIHBlcmZvcm1hbmNlXHJcbiAgICAvLyBlZmZlY3RpdmUgdGVzdCBmb3IgaGlkZGVuIGVsZW1lbnRzLiBFLmcuIGV2ZW4galF1ZXJ5J3MgJzp2aXNpYmxlJyBmaWx0ZXJcclxuICAgIC8vIGdpdmVzIHdyb25nIHJlc3VsdHMgZm9yIGVsZW1lbnRzIHdpdGggd2lkdGggJiBoZWlnaHQgbGVzcyB0aGFuIDAuNS5cclxuICAgIGlmICghY2xpZW50V2lkdGggJiYgIWNsaWVudEhlaWdodCkge1xyXG4gICAgICAgIHJldHVybiBlbXB0eVJlY3Q7XHJcbiAgICB9XHJcbiAgICB2YXIgc3R5bGVzID0gZ2V0V2luZG93T2YodGFyZ2V0KS5nZXRDb21wdXRlZFN0eWxlKHRhcmdldCk7XHJcbiAgICB2YXIgcGFkZGluZ3MgPSBnZXRQYWRkaW5ncyhzdHlsZXMpO1xyXG4gICAgdmFyIGhvcml6UGFkID0gcGFkZGluZ3MubGVmdCArIHBhZGRpbmdzLnJpZ2h0O1xyXG4gICAgdmFyIHZlcnRQYWQgPSBwYWRkaW5ncy50b3AgKyBwYWRkaW5ncy5ib3R0b207XHJcbiAgICAvLyBDb21wdXRlZCBzdHlsZXMgb2Ygd2lkdGggJiBoZWlnaHQgYXJlIGJlaW5nIHVzZWQgYmVjYXVzZSB0aGV5IGFyZSB0aGVcclxuICAgIC8vIG9ubHkgZGltZW5zaW9ucyBhdmFpbGFibGUgdG8gSlMgdGhhdCBjb250YWluIG5vbi1yb3VuZGVkIHZhbHVlcy4gSXQgY291bGRcclxuICAgIC8vIGJlIHBvc3NpYmxlIHRvIHV0aWxpemUgdGhlIGdldEJvdW5kaW5nQ2xpZW50UmVjdCBpZiBvbmx5IGl0J3MgZGF0YSB3YXNuJ3RcclxuICAgIC8vIGFmZmVjdGVkIGJ5IENTUyB0cmFuc2Zvcm1hdGlvbnMgbGV0IGFsb25lIHBhZGRpbmdzLCBib3JkZXJzIGFuZCBzY3JvbGwgYmFycy5cclxuICAgIHZhciB3aWR0aCA9IHRvRmxvYXQoc3R5bGVzLndpZHRoKSwgaGVpZ2h0ID0gdG9GbG9hdChzdHlsZXMuaGVpZ2h0KTtcclxuICAgIC8vIFdpZHRoICYgaGVpZ2h0IGluY2x1ZGUgcGFkZGluZ3MgYW5kIGJvcmRlcnMgd2hlbiB0aGUgJ2JvcmRlci1ib3gnIGJveFxyXG4gICAgLy8gbW9kZWwgaXMgYXBwbGllZCAoZXhjZXB0IGZvciBJRSkuXHJcbiAgICBpZiAoc3R5bGVzLmJveFNpemluZyA9PT0gJ2JvcmRlci1ib3gnKSB7XHJcbiAgICAgICAgLy8gRm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIHJlcXVpcmVkIHRvIGhhbmRsZSBJbnRlcm5ldCBFeHBsb3JlciB3aGljaFxyXG4gICAgICAgIC8vIGRvZXNuJ3QgaW5jbHVkZSBwYWRkaW5ncyBhbmQgYm9yZGVycyB0byBjb21wdXRlZCBDU1MgZGltZW5zaW9ucy5cclxuICAgICAgICAvL1xyXG4gICAgICAgIC8vIFdlIGNhbiBzYXkgdGhhdCBpZiBDU1MgZGltZW5zaW9ucyArIHBhZGRpbmdzIGFyZSBlcXVhbCB0byB0aGUgXCJjbGllbnRcIlxyXG4gICAgICAgIC8vIHByb3BlcnRpZXMgdGhlbiBpdCdzIGVpdGhlciBJRSwgYW5kIHRodXMgd2UgZG9uJ3QgbmVlZCB0byBzdWJ0cmFjdFxyXG4gICAgICAgIC8vIGFueXRoaW5nLCBvciBhbiBlbGVtZW50IG1lcmVseSBkb2Vzbid0IGhhdmUgcGFkZGluZ3MvYm9yZGVycyBzdHlsZXMuXHJcbiAgICAgICAgaWYgKE1hdGgucm91bmQod2lkdGggKyBob3JpelBhZCkgIT09IGNsaWVudFdpZHRoKSB7XHJcbiAgICAgICAgICAgIHdpZHRoIC09IGdldEJvcmRlcnNTaXplKHN0eWxlcywgJ2xlZnQnLCAncmlnaHQnKSArIGhvcml6UGFkO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoTWF0aC5yb3VuZChoZWlnaHQgKyB2ZXJ0UGFkKSAhPT0gY2xpZW50SGVpZ2h0KSB7XHJcbiAgICAgICAgICAgIGhlaWdodCAtPSBnZXRCb3JkZXJzU2l6ZShzdHlsZXMsICd0b3AnLCAnYm90dG9tJykgKyB2ZXJ0UGFkO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIEZvbGxvd2luZyBzdGVwcyBjYW4ndCBiZSBhcHBsaWVkIHRvIHRoZSBkb2N1bWVudCdzIHJvb3QgZWxlbWVudCBhcyBpdHNcclxuICAgIC8vIGNsaWVudFtXaWR0aC9IZWlnaHRdIHByb3BlcnRpZXMgcmVwcmVzZW50IHZpZXdwb3J0IGFyZWEgb2YgdGhlIHdpbmRvdy5cclxuICAgIC8vIEJlc2lkZXMsIGl0J3MgYXMgd2VsbCBub3QgbmVjZXNzYXJ5IGFzIHRoZSA8aHRtbD4gaXRzZWxmIG5laXRoZXIgaGFzXHJcbiAgICAvLyByZW5kZXJlZCBzY3JvbGwgYmFycyBub3IgaXQgY2FuIGJlIGNsaXBwZWQuXHJcbiAgICBpZiAoIWlzRG9jdW1lbnRFbGVtZW50KHRhcmdldCkpIHtcclxuICAgICAgICAvLyBJbiBzb21lIGJyb3dzZXJzIChvbmx5IGluIEZpcmVmb3gsIGFjdHVhbGx5KSBDU1Mgd2lkdGggJiBoZWlnaHRcclxuICAgICAgICAvLyBpbmNsdWRlIHNjcm9sbCBiYXJzIHNpemUgd2hpY2ggY2FuIGJlIHJlbW92ZWQgYXQgdGhpcyBzdGVwIGFzIHNjcm9sbFxyXG4gICAgICAgIC8vIGJhcnMgYXJlIHRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiByb3VuZGVkIGRpbWVuc2lvbnMgKyBwYWRkaW5nc1xyXG4gICAgICAgIC8vIGFuZCBcImNsaWVudFwiIHByb3BlcnRpZXMsIHRob3VnaCB0aGF0IGlzIG5vdCBhbHdheXMgdHJ1ZSBpbiBDaHJvbWUuXHJcbiAgICAgICAgdmFyIHZlcnRTY3JvbGxiYXIgPSBNYXRoLnJvdW5kKHdpZHRoICsgaG9yaXpQYWQpIC0gY2xpZW50V2lkdGg7XHJcbiAgICAgICAgdmFyIGhvcml6U2Nyb2xsYmFyID0gTWF0aC5yb3VuZChoZWlnaHQgKyB2ZXJ0UGFkKSAtIGNsaWVudEhlaWdodDtcclxuICAgICAgICAvLyBDaHJvbWUgaGFzIGEgcmF0aGVyIHdlaXJkIHJvdW5kaW5nIG9mIFwiY2xpZW50XCIgcHJvcGVydGllcy5cclxuICAgICAgICAvLyBFLmcuIGZvciBhbiBlbGVtZW50IHdpdGggY29udGVudCB3aWR0aCBvZiAzMTQuMnB4IGl0IHNvbWV0aW1lcyBnaXZlc1xyXG4gICAgICAgIC8vIHRoZSBjbGllbnQgd2lkdGggb2YgMzE1cHggYW5kIGZvciB0aGUgd2lkdGggb2YgMzE0LjdweCBpdCBtYXkgZ2l2ZVxyXG4gICAgICAgIC8vIDMxNHB4LiBBbmQgaXQgZG9lc24ndCBoYXBwZW4gYWxsIHRoZSB0aW1lLiBTbyBqdXN0IGlnbm9yZSB0aGlzIGRlbHRhXHJcbiAgICAgICAgLy8gYXMgYSBub24tcmVsZXZhbnQuXHJcbiAgICAgICAgaWYgKE1hdGguYWJzKHZlcnRTY3JvbGxiYXIpICE9PSAxKSB7XHJcbiAgICAgICAgICAgIHdpZHRoIC09IHZlcnRTY3JvbGxiYXI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChNYXRoLmFicyhob3JpelNjcm9sbGJhcikgIT09IDEpIHtcclxuICAgICAgICAgICAgaGVpZ2h0IC09IGhvcml6U2Nyb2xsYmFyO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBjcmVhdGVSZWN0SW5pdChwYWRkaW5ncy5sZWZ0LCBwYWRkaW5ncy50b3AsIHdpZHRoLCBoZWlnaHQpO1xyXG59XHJcbi8qKlxyXG4gKiBDaGVja3Mgd2hldGhlciBwcm92aWRlZCBlbGVtZW50IGlzIGFuIGluc3RhbmNlIG9mIHRoZSBTVkdHcmFwaGljc0VsZW1lbnQuXHJcbiAqXHJcbiAqIEBwYXJhbSB7RWxlbWVudH0gdGFyZ2V0IC0gRWxlbWVudCB0byBiZSBjaGVja2VkLlxyXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cclxuICovXHJcbnZhciBpc1NWR0dyYXBoaWNzRWxlbWVudCA9IChmdW5jdGlvbiAoKSB7XHJcbiAgICAvLyBTb21lIGJyb3dzZXJzLCBuYW1lbHkgSUUgYW5kIEVkZ2UsIGRvbid0IGhhdmUgdGhlIFNWR0dyYXBoaWNzRWxlbWVudFxyXG4gICAgLy8gaW50ZXJmYWNlLlxyXG4gICAgaWYgKHR5cGVvZiBTVkdHcmFwaGljc0VsZW1lbnQgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQpIHsgcmV0dXJuIHRhcmdldCBpbnN0YW5jZW9mIGdldFdpbmRvd09mKHRhcmdldCkuU1ZHR3JhcGhpY3NFbGVtZW50OyB9O1xyXG4gICAgfVxyXG4gICAgLy8gSWYgaXQncyBzbywgdGhlbiBjaGVjayB0aGF0IGVsZW1lbnQgaXMgYXQgbGVhc3QgYW4gaW5zdGFuY2Ugb2YgdGhlXHJcbiAgICAvLyBTVkdFbGVtZW50IGFuZCB0aGF0IGl0IGhhcyB0aGUgXCJnZXRCQm94XCIgbWV0aG9kLlxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWV4dHJhLXBhcmVuc1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQpIHsgcmV0dXJuICh0YXJnZXQgaW5zdGFuY2VvZiBnZXRXaW5kb3dPZih0YXJnZXQpLlNWR0VsZW1lbnQgJiZcclxuICAgICAgICB0eXBlb2YgdGFyZ2V0LmdldEJCb3ggPT09ICdmdW5jdGlvbicpOyB9O1xyXG59KSgpO1xyXG4vKipcclxuICogQ2hlY2tzIHdoZXRoZXIgcHJvdmlkZWQgZWxlbWVudCBpcyBhIGRvY3VtZW50IGVsZW1lbnQgKDxodG1sPikuXHJcbiAqXHJcbiAqIEBwYXJhbSB7RWxlbWVudH0gdGFyZ2V0IC0gRWxlbWVudCB0byBiZSBjaGVja2VkLlxyXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cclxuICovXHJcbmZ1bmN0aW9uIGlzRG9jdW1lbnRFbGVtZW50KHRhcmdldCkge1xyXG4gICAgcmV0dXJuIHRhcmdldCA9PT0gZ2V0V2luZG93T2YodGFyZ2V0KS5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XHJcbn1cclxuLyoqXHJcbiAqIENhbGN1bGF0ZXMgYW4gYXBwcm9wcmlhdGUgY29udGVudCByZWN0YW5nbGUgZm9yIHByb3ZpZGVkIGh0bWwgb3Igc3ZnIGVsZW1lbnQuXHJcbiAqXHJcbiAqIEBwYXJhbSB7RWxlbWVudH0gdGFyZ2V0IC0gRWxlbWVudCBjb250ZW50IHJlY3RhbmdsZSBvZiB3aGljaCBuZWVkcyB0byBiZSBjYWxjdWxhdGVkLlxyXG4gKiBAcmV0dXJucyB7RE9NUmVjdEluaXR9XHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRDb250ZW50UmVjdCh0YXJnZXQpIHtcclxuICAgIGlmICghaXNCcm93c2VyKSB7XHJcbiAgICAgICAgcmV0dXJuIGVtcHR5UmVjdDtcclxuICAgIH1cclxuICAgIGlmIChpc1NWR0dyYXBoaWNzRWxlbWVudCh0YXJnZXQpKSB7XHJcbiAgICAgICAgcmV0dXJuIGdldFNWR0NvbnRlbnRSZWN0KHRhcmdldCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZ2V0SFRNTEVsZW1lbnRDb250ZW50UmVjdCh0YXJnZXQpO1xyXG59XHJcbi8qKlxyXG4gKiBDcmVhdGVzIHJlY3RhbmdsZSB3aXRoIGFuIGludGVyZmFjZSBvZiB0aGUgRE9NUmVjdFJlYWRPbmx5LlxyXG4gKiBTcGVjOiBodHRwczovL2RyYWZ0cy5meHRmLm9yZy9nZW9tZXRyeS8jZG9tcmVjdHJlYWRvbmx5XHJcbiAqXHJcbiAqIEBwYXJhbSB7RE9NUmVjdEluaXR9IHJlY3RJbml0IC0gT2JqZWN0IHdpdGggcmVjdGFuZ2xlJ3MgeC95IGNvb3JkaW5hdGVzIGFuZCBkaW1lbnNpb25zLlxyXG4gKiBAcmV0dXJucyB7RE9NUmVjdFJlYWRPbmx5fVxyXG4gKi9cclxuZnVuY3Rpb24gY3JlYXRlUmVhZE9ubHlSZWN0KF9hKSB7XHJcbiAgICB2YXIgeCA9IF9hLngsIHkgPSBfYS55LCB3aWR0aCA9IF9hLndpZHRoLCBoZWlnaHQgPSBfYS5oZWlnaHQ7XHJcbiAgICAvLyBJZiBET01SZWN0UmVhZE9ubHkgaXMgYXZhaWxhYmxlIHVzZSBpdCBhcyBhIHByb3RvdHlwZSBmb3IgdGhlIHJlY3RhbmdsZS5cclxuICAgIHZhciBDb25zdHIgPSB0eXBlb2YgRE9NUmVjdFJlYWRPbmx5ICE9PSAndW5kZWZpbmVkJyA/IERPTVJlY3RSZWFkT25seSA6IE9iamVjdDtcclxuICAgIHZhciByZWN0ID0gT2JqZWN0LmNyZWF0ZShDb25zdHIucHJvdG90eXBlKTtcclxuICAgIC8vIFJlY3RhbmdsZSdzIHByb3BlcnRpZXMgYXJlIG5vdCB3cml0YWJsZSBhbmQgbm9uLWVudW1lcmFibGUuXHJcbiAgICBkZWZpbmVDb25maWd1cmFibGUocmVjdCwge1xyXG4gICAgICAgIHg6IHgsIHk6IHksIHdpZHRoOiB3aWR0aCwgaGVpZ2h0OiBoZWlnaHQsXHJcbiAgICAgICAgdG9wOiB5LFxyXG4gICAgICAgIHJpZ2h0OiB4ICsgd2lkdGgsXHJcbiAgICAgICAgYm90dG9tOiBoZWlnaHQgKyB5LFxyXG4gICAgICAgIGxlZnQ6IHhcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHJlY3Q7XHJcbn1cclxuLyoqXHJcbiAqIENyZWF0ZXMgRE9NUmVjdEluaXQgb2JqZWN0IGJhc2VkIG9uIHRoZSBwcm92aWRlZCBkaW1lbnNpb25zIGFuZCB0aGUgeC95IGNvb3JkaW5hdGVzLlxyXG4gKiBTcGVjOiBodHRwczovL2RyYWZ0cy5meHRmLm9yZy9nZW9tZXRyeS8jZGljdGRlZi1kb21yZWN0aW5pdFxyXG4gKlxyXG4gKiBAcGFyYW0ge251bWJlcn0geCAtIFggY29vcmRpbmF0ZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IHkgLSBZIGNvb3JkaW5hdGUuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSB3aWR0aCAtIFJlY3RhbmdsZSdzIHdpZHRoLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gaGVpZ2h0IC0gUmVjdGFuZ2xlJ3MgaGVpZ2h0LlxyXG4gKiBAcmV0dXJucyB7RE9NUmVjdEluaXR9XHJcbiAqL1xyXG5mdW5jdGlvbiBjcmVhdGVSZWN0SW5pdCh4LCB5LCB3aWR0aCwgaGVpZ2h0KSB7XHJcbiAgICByZXR1cm4geyB4OiB4LCB5OiB5LCB3aWR0aDogd2lkdGgsIGhlaWdodDogaGVpZ2h0IH07XHJcbn1cblxuLyoqXHJcbiAqIENsYXNzIHRoYXQgaXMgcmVzcG9uc2libGUgZm9yIGNvbXB1dGF0aW9ucyBvZiB0aGUgY29udGVudCByZWN0YW5nbGUgb2ZcclxuICogcHJvdmlkZWQgRE9NIGVsZW1lbnQgYW5kIGZvciBrZWVwaW5nIHRyYWNrIG9mIGl0J3MgY2hhbmdlcy5cclxuICovXHJcbnZhciBSZXNpemVPYnNlcnZhdGlvbiA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBSZXNpemVPYnNlcnZhdGlvbi5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge0VsZW1lbnR9IHRhcmdldCAtIEVsZW1lbnQgdG8gYmUgb2JzZXJ2ZWQuXHJcbiAgICAgKi9cclxuICAgIGZ1bmN0aW9uIFJlc2l6ZU9ic2VydmF0aW9uKHRhcmdldCkge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEJyb2FkY2FzdGVkIHdpZHRoIG9mIGNvbnRlbnQgcmVjdGFuZ2xlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmJyb2FkY2FzdFdpZHRoID0gMDtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBCcm9hZGNhc3RlZCBoZWlnaHQgb2YgY29udGVudCByZWN0YW5nbGUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuYnJvYWRjYXN0SGVpZ2h0ID0gMDtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBSZWZlcmVuY2UgdG8gdGhlIGxhc3Qgb2JzZXJ2ZWQgY29udGVudCByZWN0YW5nbGUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAcHJpdmF0ZSB7RE9NUmVjdEluaXR9XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5jb250ZW50UmVjdF8gPSBjcmVhdGVSZWN0SW5pdCgwLCAwLCAwLCAwKTtcclxuICAgICAgICB0aGlzLnRhcmdldCA9IHRhcmdldDtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlcyBjb250ZW50IHJlY3RhbmdsZSBhbmQgdGVsbHMgd2hldGhlciBpdCdzIHdpZHRoIG9yIGhlaWdodCBwcm9wZXJ0aWVzXHJcbiAgICAgKiBoYXZlIGNoYW5nZWQgc2luY2UgdGhlIGxhc3QgYnJvYWRjYXN0LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHtib29sZWFufVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZhdGlvbi5wcm90b3R5cGUuaXNBY3RpdmUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdmFyIHJlY3QgPSBnZXRDb250ZW50UmVjdCh0aGlzLnRhcmdldCk7XHJcbiAgICAgICAgdGhpcy5jb250ZW50UmVjdF8gPSByZWN0O1xyXG4gICAgICAgIHJldHVybiAocmVjdC53aWR0aCAhPT0gdGhpcy5icm9hZGNhc3RXaWR0aCB8fFxyXG4gICAgICAgICAgICByZWN0LmhlaWdodCAhPT0gdGhpcy5icm9hZGNhc3RIZWlnaHQpO1xyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlcyAnYnJvYWRjYXN0V2lkdGgnIGFuZCAnYnJvYWRjYXN0SGVpZ2h0JyBwcm9wZXJ0aWVzIHdpdGggYSBkYXRhXHJcbiAgICAgKiBmcm9tIHRoZSBjb3JyZXNwb25kaW5nIHByb3BlcnRpZXMgb2YgdGhlIGxhc3Qgb2JzZXJ2ZWQgY29udGVudCByZWN0YW5nbGUuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMge0RPTVJlY3RJbml0fSBMYXN0IG9ic2VydmVkIGNvbnRlbnQgcmVjdGFuZ2xlLlxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZhdGlvbi5wcm90b3R5cGUuYnJvYWRjYXN0UmVjdCA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB2YXIgcmVjdCA9IHRoaXMuY29udGVudFJlY3RfO1xyXG4gICAgICAgIHRoaXMuYnJvYWRjYXN0V2lkdGggPSByZWN0LndpZHRoO1xyXG4gICAgICAgIHRoaXMuYnJvYWRjYXN0SGVpZ2h0ID0gcmVjdC5oZWlnaHQ7XHJcbiAgICAgICAgcmV0dXJuIHJlY3Q7XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIFJlc2l6ZU9ic2VydmF0aW9uO1xyXG59KCkpO1xuXG52YXIgUmVzaXplT2JzZXJ2ZXJFbnRyeSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBSZXNpemVPYnNlcnZlckVudHJ5LlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7RWxlbWVudH0gdGFyZ2V0IC0gRWxlbWVudCB0aGF0IGlzIGJlaW5nIG9ic2VydmVkLlxyXG4gICAgICogQHBhcmFtIHtET01SZWN0SW5pdH0gcmVjdEluaXQgLSBEYXRhIG9mIHRoZSBlbGVtZW50J3MgY29udGVudCByZWN0YW5nbGUuXHJcbiAgICAgKi9cclxuICAgIGZ1bmN0aW9uIFJlc2l6ZU9ic2VydmVyRW50cnkodGFyZ2V0LCByZWN0SW5pdCkge1xyXG4gICAgICAgIHZhciBjb250ZW50UmVjdCA9IGNyZWF0ZVJlYWRPbmx5UmVjdChyZWN0SW5pdCk7XHJcbiAgICAgICAgLy8gQWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpY2F0aW9uIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBub3Qgd3JpdGFibGVcclxuICAgICAgICAvLyBhbmQgYXJlIGFsc28gbm90IGVudW1lcmFibGUgaW4gdGhlIG5hdGl2ZSBpbXBsZW1lbnRhdGlvbi5cclxuICAgICAgICAvL1xyXG4gICAgICAgIC8vIFByb3BlcnR5IGFjY2Vzc29ycyBhcmUgbm90IGJlaW5nIHVzZWQgYXMgdGhleSdkIHJlcXVpcmUgdG8gZGVmaW5lIGFcclxuICAgICAgICAvLyBwcml2YXRlIFdlYWtNYXAgc3RvcmFnZSB3aGljaCBtYXkgY2F1c2UgbWVtb3J5IGxlYWtzIGluIGJyb3dzZXJzIHRoYXRcclxuICAgICAgICAvLyBkb24ndCBzdXBwb3J0IHRoaXMgdHlwZSBvZiBjb2xsZWN0aW9ucy5cclxuICAgICAgICBkZWZpbmVDb25maWd1cmFibGUodGhpcywgeyB0YXJnZXQ6IHRhcmdldCwgY29udGVudFJlY3Q6IGNvbnRlbnRSZWN0IH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFJlc2l6ZU9ic2VydmVyRW50cnk7XHJcbn0oKSk7XG5cbnZhciBSZXNpemVPYnNlcnZlclNQSSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiBSZXNpemVPYnNlcnZlci5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1Jlc2l6ZU9ic2VydmVyQ2FsbGJhY2t9IGNhbGxiYWNrIC0gQ2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBpcyBpbnZva2VkXHJcbiAgICAgKiAgICAgIHdoZW4gb25lIG9mIHRoZSBvYnNlcnZlZCBlbGVtZW50cyBjaGFuZ2VzIGl0J3MgY29udGVudCBkaW1lbnNpb25zLlxyXG4gICAgICogQHBhcmFtIHtSZXNpemVPYnNlcnZlckNvbnRyb2xsZXJ9IGNvbnRyb2xsZXIgLSBDb250cm9sbGVyIGluc3RhbmNlIHdoaWNoXHJcbiAgICAgKiAgICAgIGlzIHJlc3BvbnNpYmxlIGZvciB0aGUgdXBkYXRlcyBvZiBvYnNlcnZlci5cclxuICAgICAqIEBwYXJhbSB7UmVzaXplT2JzZXJ2ZXJ9IGNhbGxiYWNrQ3R4IC0gUmVmZXJlbmNlIHRvIHRoZSBwdWJsaWNcclxuICAgICAqICAgICAgUmVzaXplT2JzZXJ2ZXIgaW5zdGFuY2Ugd2hpY2ggd2lsbCBiZSBwYXNzZWQgdG8gY2FsbGJhY2sgZnVuY3Rpb24uXHJcbiAgICAgKi9cclxuICAgIGZ1bmN0aW9uIFJlc2l6ZU9ic2VydmVyU1BJKGNhbGxiYWNrLCBjb250cm9sbGVyLCBjYWxsYmFja0N0eCkge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIENvbGxlY3Rpb24gb2YgcmVzaXplIG9ic2VydmF0aW9ucyB0aGF0IGhhdmUgZGV0ZWN0ZWQgY2hhbmdlcyBpbiBkaW1lbnNpb25zXHJcbiAgICAgICAgICogb2YgZWxlbWVudHMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAcHJpdmF0ZSB7QXJyYXk8UmVzaXplT2JzZXJ2YXRpb24+fVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuYWN0aXZlT2JzZXJ2YXRpb25zXyA9IFtdO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFJlZ2lzdHJ5IG9mIHRoZSBSZXNpemVPYnNlcnZhdGlvbiBpbnN0YW5jZXMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAcHJpdmF0ZSB7TWFwPEVsZW1lbnQsIFJlc2l6ZU9ic2VydmF0aW9uPn1cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLm9ic2VydmF0aW9uc18gPSBuZXcgTWFwU2hpbSgpO1xyXG4gICAgICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIGNhbGxiYWNrIHByb3ZpZGVkIGFzIHBhcmFtZXRlciAxIGlzIG5vdCBhIGZ1bmN0aW9uLicpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNhbGxiYWNrXyA9IGNhbGxiYWNrO1xyXG4gICAgICAgIHRoaXMuY29udHJvbGxlcl8gPSBjb250cm9sbGVyO1xyXG4gICAgICAgIHRoaXMuY2FsbGJhY2tDdHhfID0gY2FsbGJhY2tDdHg7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFN0YXJ0cyBvYnNlcnZpbmcgcHJvdmlkZWQgZWxlbWVudC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge0VsZW1lbnR9IHRhcmdldCAtIEVsZW1lbnQgdG8gYmUgb2JzZXJ2ZWQuXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJTUEkucHJvdG90eXBlLm9ic2VydmUgPSBmdW5jdGlvbiAodGFyZ2V0KSB7XHJcbiAgICAgICAgaWYgKCFhcmd1bWVudHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJzEgYXJndW1lbnQgcmVxdWlyZWQsIGJ1dCBvbmx5IDAgcHJlc2VudC4nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gRG8gbm90aGluZyBpZiBjdXJyZW50IGVudmlyb25tZW50IGRvZXNuJ3QgaGF2ZSB0aGUgRWxlbWVudCBpbnRlcmZhY2UuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBFbGVtZW50ID09PSAndW5kZWZpbmVkJyB8fCAhKEVsZW1lbnQgaW5zdGFuY2VvZiBPYmplY3QpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCEodGFyZ2V0IGluc3RhbmNlb2YgZ2V0V2luZG93T2YodGFyZ2V0KS5FbGVtZW50KSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdwYXJhbWV0ZXIgMSBpcyBub3Qgb2YgdHlwZSBcIkVsZW1lbnRcIi4nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIG9ic2VydmF0aW9ucyA9IHRoaXMub2JzZXJ2YXRpb25zXztcclxuICAgICAgICAvLyBEbyBub3RoaW5nIGlmIGVsZW1lbnQgaXMgYWxyZWFkeSBiZWluZyBvYnNlcnZlZC5cclxuICAgICAgICBpZiAob2JzZXJ2YXRpb25zLmhhcyh0YXJnZXQpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgb2JzZXJ2YXRpb25zLnNldCh0YXJnZXQsIG5ldyBSZXNpemVPYnNlcnZhdGlvbih0YXJnZXQpKTtcclxuICAgICAgICB0aGlzLmNvbnRyb2xsZXJfLmFkZE9ic2VydmVyKHRoaXMpO1xyXG4gICAgICAgIC8vIEZvcmNlIHRoZSB1cGRhdGUgb2Ygb2JzZXJ2YXRpb25zLlxyXG4gICAgICAgIHRoaXMuY29udHJvbGxlcl8ucmVmcmVzaCgpO1xyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogU3RvcHMgb2JzZXJ2aW5nIHByb3ZpZGVkIGVsZW1lbnQuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtFbGVtZW50fSB0YXJnZXQgLSBFbGVtZW50IHRvIHN0b3Agb2JzZXJ2aW5nLlxyXG4gICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgKi9cclxuICAgIFJlc2l6ZU9ic2VydmVyU1BJLnByb3RvdHlwZS51bm9ic2VydmUgPSBmdW5jdGlvbiAodGFyZ2V0KSB7XHJcbiAgICAgICAgaWYgKCFhcmd1bWVudHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJzEgYXJndW1lbnQgcmVxdWlyZWQsIGJ1dCBvbmx5IDAgcHJlc2VudC4nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gRG8gbm90aGluZyBpZiBjdXJyZW50IGVudmlyb25tZW50IGRvZXNuJ3QgaGF2ZSB0aGUgRWxlbWVudCBpbnRlcmZhY2UuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBFbGVtZW50ID09PSAndW5kZWZpbmVkJyB8fCAhKEVsZW1lbnQgaW5zdGFuY2VvZiBPYmplY3QpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCEodGFyZ2V0IGluc3RhbmNlb2YgZ2V0V2luZG93T2YodGFyZ2V0KS5FbGVtZW50KSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdwYXJhbWV0ZXIgMSBpcyBub3Qgb2YgdHlwZSBcIkVsZW1lbnRcIi4nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIG9ic2VydmF0aW9ucyA9IHRoaXMub2JzZXJ2YXRpb25zXztcclxuICAgICAgICAvLyBEbyBub3RoaW5nIGlmIGVsZW1lbnQgaXMgbm90IGJlaW5nIG9ic2VydmVkLlxyXG4gICAgICAgIGlmICghb2JzZXJ2YXRpb25zLmhhcyh0YXJnZXQpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgb2JzZXJ2YXRpb25zLmRlbGV0ZSh0YXJnZXQpO1xyXG4gICAgICAgIGlmICghb2JzZXJ2YXRpb25zLnNpemUpIHtcclxuICAgICAgICAgICAgdGhpcy5jb250cm9sbGVyXy5yZW1vdmVPYnNlcnZlcih0aGlzKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBTdG9wcyBvYnNlcnZpbmcgYWxsIGVsZW1lbnRzLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZlclNQSS5wcm90b3R5cGUuZGlzY29ubmVjdCA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB0aGlzLmNsZWFyQWN0aXZlKCk7XHJcbiAgICAgICAgdGhpcy5vYnNlcnZhdGlvbnNfLmNsZWFyKCk7XHJcbiAgICAgICAgdGhpcy5jb250cm9sbGVyXy5yZW1vdmVPYnNlcnZlcih0aGlzKTtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIENvbGxlY3RzIG9ic2VydmF0aW9uIGluc3RhbmNlcyB0aGUgYXNzb2NpYXRlZCBlbGVtZW50IG9mIHdoaWNoIGhhcyBjaGFuZ2VkXHJcbiAgICAgKiBpdCdzIGNvbnRlbnQgcmVjdGFuZ2xlLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZlclNQSS5wcm90b3R5cGUuZ2F0aGVyQWN0aXZlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XHJcbiAgICAgICAgdGhpcy5jbGVhckFjdGl2ZSgpO1xyXG4gICAgICAgIHRoaXMub2JzZXJ2YXRpb25zXy5mb3JFYWNoKGZ1bmN0aW9uIChvYnNlcnZhdGlvbikge1xyXG4gICAgICAgICAgICBpZiAob2JzZXJ2YXRpb24uaXNBY3RpdmUoKSkge1xyXG4gICAgICAgICAgICAgICAgX3RoaXMuYWN0aXZlT2JzZXJ2YXRpb25zXy5wdXNoKG9ic2VydmF0aW9uKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogSW52b2tlcyBpbml0aWFsIGNhbGxiYWNrIGZ1bmN0aW9uIHdpdGggYSBsaXN0IG9mIFJlc2l6ZU9ic2VydmVyRW50cnlcclxuICAgICAqIGluc3RhbmNlcyBjb2xsZWN0ZWQgZnJvbSBhY3RpdmUgcmVzaXplIG9ic2VydmF0aW9ucy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJTUEkucHJvdG90eXBlLmJyb2FkY2FzdEFjdGl2ZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAvLyBEbyBub3RoaW5nIGlmIG9ic2VydmVyIGRvZXNuJ3QgaGF2ZSBhY3RpdmUgb2JzZXJ2YXRpb25zLlxyXG4gICAgICAgIGlmICghdGhpcy5oYXNBY3RpdmUoKSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBjdHggPSB0aGlzLmNhbGxiYWNrQ3R4XztcclxuICAgICAgICAvLyBDcmVhdGUgUmVzaXplT2JzZXJ2ZXJFbnRyeSBpbnN0YW5jZSBmb3IgZXZlcnkgYWN0aXZlIG9ic2VydmF0aW9uLlxyXG4gICAgICAgIHZhciBlbnRyaWVzID0gdGhpcy5hY3RpdmVPYnNlcnZhdGlvbnNfLm1hcChmdW5jdGlvbiAob2JzZXJ2YXRpb24pIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBSZXNpemVPYnNlcnZlckVudHJ5KG9ic2VydmF0aW9uLnRhcmdldCwgb2JzZXJ2YXRpb24uYnJvYWRjYXN0UmVjdCgpKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmNhbGxiYWNrXy5jYWxsKGN0eCwgZW50cmllcywgY3R4KTtcclxuICAgICAgICB0aGlzLmNsZWFyQWN0aXZlKCk7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBDbGVhcnMgdGhlIGNvbGxlY3Rpb24gb2YgYWN0aXZlIG9ic2VydmF0aW9ucy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJTUEkucHJvdG90eXBlLmNsZWFyQWN0aXZlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHRoaXMuYWN0aXZlT2JzZXJ2YXRpb25zXy5zcGxpY2UoMCk7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBUZWxscyB3aGV0aGVyIG9ic2VydmVyIGhhcyBhY3RpdmUgb2JzZXJ2YXRpb25zLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHtib29sZWFufVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZlclNQSS5wcm90b3R5cGUuaGFzQWN0aXZlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFjdGl2ZU9ic2VydmF0aW9uc18ubGVuZ3RoID4gMDtcclxuICAgIH07XHJcbiAgICByZXR1cm4gUmVzaXplT2JzZXJ2ZXJTUEk7XHJcbn0oKSk7XG5cbi8vIFJlZ2lzdHJ5IG9mIGludGVybmFsIG9ic2VydmVycy4gSWYgV2Vha01hcCBpcyBub3QgYXZhaWxhYmxlIHVzZSBjdXJyZW50IHNoaW1cclxuLy8gZm9yIHRoZSBNYXAgY29sbGVjdGlvbiBhcyBpdCBoYXMgYWxsIHJlcXVpcmVkIG1ldGhvZHMgYW5kIGJlY2F1c2UgV2Vha01hcFxyXG4vLyBjYW4ndCBiZSBmdWxseSBwb2x5ZmlsbGVkIGFueXdheS5cclxudmFyIG9ic2VydmVycyA9IHR5cGVvZiBXZWFrTWFwICE9PSAndW5kZWZpbmVkJyA/IG5ldyBXZWFrTWFwKCkgOiBuZXcgTWFwU2hpbSgpO1xyXG4vKipcclxuICogUmVzaXplT2JzZXJ2ZXIgQVBJLiBFbmNhcHN1bGF0ZXMgdGhlIFJlc2l6ZU9ic2VydmVyIFNQSSBpbXBsZW1lbnRhdGlvblxyXG4gKiBleHBvc2luZyBvbmx5IHRob3NlIG1ldGhvZHMgYW5kIHByb3BlcnRpZXMgdGhhdCBhcmUgZGVmaW5lZCBpbiB0aGUgc3BlYy5cclxuICovXHJcbnZhciBSZXNpemVPYnNlcnZlciA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiBSZXNpemVPYnNlcnZlci5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1Jlc2l6ZU9ic2VydmVyQ2FsbGJhY2t9IGNhbGxiYWNrIC0gQ2FsbGJhY2sgdGhhdCBpcyBpbnZva2VkIHdoZW5cclxuICAgICAqICAgICAgZGltZW5zaW9ucyBvZiB0aGUgb2JzZXJ2ZWQgZWxlbWVudHMgY2hhbmdlLlxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiBSZXNpemVPYnNlcnZlcihjYWxsYmFjaykge1xyXG4gICAgICAgIGlmICghKHRoaXMgaW5zdGFuY2VvZiBSZXNpemVPYnNlcnZlcikpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uLicpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIWFyZ3VtZW50cy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignMSBhcmd1bWVudCByZXF1aXJlZCwgYnV0IG9ubHkgMCBwcmVzZW50LicpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgY29udHJvbGxlciA9IFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpO1xyXG4gICAgICAgIHZhciBvYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlclNQSShjYWxsYmFjaywgY29udHJvbGxlciwgdGhpcyk7XHJcbiAgICAgICAgb2JzZXJ2ZXJzLnNldCh0aGlzLCBvYnNlcnZlcik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gUmVzaXplT2JzZXJ2ZXI7XHJcbn0oKSk7XHJcbi8vIEV4cG9zZSBwdWJsaWMgbWV0aG9kcyBvZiBSZXNpemVPYnNlcnZlci5cclxuW1xyXG4gICAgJ29ic2VydmUnLFxyXG4gICAgJ3Vub2JzZXJ2ZScsXHJcbiAgICAnZGlzY29ubmVjdCdcclxuXS5mb3JFYWNoKGZ1bmN0aW9uIChtZXRob2QpIHtcclxuICAgIFJlc2l6ZU9ic2VydmVyLnByb3RvdHlwZVttZXRob2RdID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHZhciBfYTtcclxuICAgICAgICByZXR1cm4gKF9hID0gb2JzZXJ2ZXJzLmdldCh0aGlzKSlbbWV0aG9kXS5hcHBseShfYSwgYXJndW1lbnRzKTtcclxuICAgIH07XHJcbn0pO1xuXG52YXIgaW5kZXggPSAoZnVuY3Rpb24gKCkge1xyXG4gICAgLy8gRXhwb3J0IGV4aXN0aW5nIGltcGxlbWVudGF0aW9uIGlmIGF2YWlsYWJsZS5cclxuICAgIGlmICh0eXBlb2YgZ2xvYmFsJDEuUmVzaXplT2JzZXJ2ZXIgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgcmV0dXJuIGdsb2JhbCQxLlJlc2l6ZU9ic2VydmVyO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFJlc2l6ZU9ic2VydmVyO1xyXG59KSgpO1xuXG5leHBvcnQgZGVmYXVsdCBpbmRleDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js\n"); + +/***/ }), + +/***/ "./node_modules/string-convert/camel2hyphen.js": +/*!*****************************************************!*\ + !*** ./node_modules/string-convert/camel2hyphen.js ***! + \*****************************************************/ +/***/ (function(module) { + +eval("var camel2hyphen = function (str) {\n return str\n .replace(/[A-Z]/g, function (match) {\n return '-' + match.toLowerCase();\n })\n .toLowerCase();\n};\n\nmodule.exports = camel2hyphen;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3RyaW5nLWNvbnZlcnQvY2FtZWwyaHlwaGVuLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N0cmluZy1jb252ZXJ0L2NhbWVsMmh5cGhlbi5qcz82ZTgwIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBjYW1lbDJoeXBoZW4gPSBmdW5jdGlvbiAoc3RyKSB7XG4gIHJldHVybiBzdHJcbiAgICAgICAgICAucmVwbGFjZSgvW0EtWl0vZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICByZXR1cm4gJy0nICsgbWF0Y2gudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC50b0xvd2VyQ2FzZSgpO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBjYW1lbDJoeXBoZW47Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/string-convert/camel2hyphen.js\n"); + +/***/ }), + +/***/ "./node_modules/slick-carousel/slick/ajax-loader.gif": +/*!***********************************************************!*\ + !*** ./node_modules/slick-carousel/slick/ajax-loader.gif ***! + \***********************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +module.exports = __webpack_require__.p + "static/media/ajax-loader.0b80f665.gif"; + +/***/ }), + +/***/ "./node_modules/slick-carousel/slick/fonts/slick.eot": +/*!***********************************************************!*\ + !*** ./node_modules/slick-carousel/slick/fonts/slick.eot ***! + \***********************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +module.exports = __webpack_require__.p + "static/media/slick.25572f22.eot"; + +/***/ }), + +/***/ "./node_modules/slick-carousel/slick/fonts/slick.svg": +/*!***********************************************************!*\ + !*** ./node_modules/slick-carousel/slick/fonts/slick.svg ***! + \***********************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +module.exports = __webpack_require__.p + "static/media/slick.f895cfdf.svg"; + +/***/ }), + +/***/ "./node_modules/slick-carousel/slick/fonts/slick.ttf": +/*!***********************************************************!*\ + !*** ./node_modules/slick-carousel/slick/fonts/slick.ttf ***! + \***********************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +module.exports = __webpack_require__.p + "static/media/slick.6aa1ee46.ttf"; + +/***/ }), + +/***/ "./node_modules/slick-carousel/slick/fonts/slick.woff": +/*!************************************************************!*\ + !*** ./node_modules/slick-carousel/slick/fonts/slick.woff ***! + \************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +module.exports = __webpack_require__.p + "static/media/slick.653a4cbb.woff"; + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js ***! + \*********************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _arrayLikeToArray; }\n/* harmony export */ });\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXJyYXlMaWtlVG9BcnJheS5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQWU7QUFDZjs7QUFFQSx5Q0FBeUMsU0FBUztBQUNsRDtBQUNBOztBQUVBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2FycmF5TGlrZVRvQXJyYXkuanM/MTkxYiJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfYXJyYXlMaWtlVG9BcnJheShhcnIsIGxlbikge1xuICBpZiAobGVuID09IG51bGwgfHwgbGVuID4gYXJyLmxlbmd0aCkgbGVuID0gYXJyLmxlbmd0aDtcblxuICBmb3IgKHZhciBpID0gMCwgYXJyMiA9IG5ldyBBcnJheShsZW4pOyBpIDwgbGVuOyBpKyspIHtcbiAgICBhcnIyW2ldID0gYXJyW2ldO1xuICB9XG5cbiAgcmV0dXJuIGFycjI7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _arrayWithHoles; }\n/* harmony export */ });\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXJyYXlXaXRoSG9sZXMuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFlO0FBQ2Y7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXJyYXlXaXRoSG9sZXMuanM/M2VlMSJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfYXJyYXlXaXRoSG9sZXMoYXJyKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGFycikpIHJldHVybiBhcnI7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js": +/*!**************************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js ***! + \**************************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _assertThisInitialized; }\n/* harmony export */ });\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXNzZXJ0VGhpc0luaXRpYWxpemVkLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBZTtBQUNmO0FBQ0E7QUFDQTs7QUFFQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQuanM/ZWMyZCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpIHtcbiAgaWYgKHNlbGYgPT09IHZvaWQgMCkge1xuICAgIHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTtcbiAgfVxuXG4gIHJldHVybiBzZWxmO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _classCallCheck; }\n/* harmony export */ });\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY2xhc3NDYWxsQ2hlY2suanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2NsYXNzQ2FsbENoZWNrLmpzP2UyZDAiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3Rvcikge1xuICBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7XG4gIH1cbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/createClass.js": +/*!****************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/createClass.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _createClass; }\n/* harmony export */ });\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY3JlYXRlQ2xhc3MuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0Esa0JBQWtCLGtCQUFrQjtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFZTtBQUNmO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jcmVhdGVDbGFzcy5qcz8xNDgwIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07XG4gICAgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlO1xuICAgIGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTtcbiAgICBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfY3JlYXRlQ2xhc3MoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7XG4gIGlmIChwcm90b1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpO1xuICBpZiAoc3RhdGljUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7XG4gIHJldHVybiBDb25zdHJ1Y3Rvcjtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/createClass.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _getPrototypeOf; }\n/* harmony export */ });\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZ2V0UHJvdG90eXBlT2YuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZ2V0UHJvdG90eXBlT2YuanM/NjYyOCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2Yobykge1xuICBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2Yobykge1xuICAgIHJldHVybiBvLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2Yobyk7XG4gIH07XG4gIHJldHVybiBfZ2V0UHJvdG90eXBlT2Yobyk7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/inherits.js": +/*!*************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/inherits.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _inherits; }\n/* harmony export */ });\n/* harmony import */ var _setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setPrototypeOf.js */ \"./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) (0,_setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(subClass, superClass);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaW5oZXJpdHMuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBaUQ7QUFDbEM7QUFDZjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNILGtCQUFrQiw4REFBYztBQUNoQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaW5oZXJpdHMuanM/NmRmMyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc2V0UHJvdG90eXBlT2YgZnJvbSBcIi4vc2V0UHJvdG90eXBlT2YuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykge1xuICBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpO1xuICB9XG5cbiAgc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7XG4gICAgY29uc3RydWN0b3I6IHtcbiAgICAgIHZhbHVlOiBzdWJDbGFzcyxcbiAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfVxuICB9KTtcbiAgaWYgKHN1cGVyQ2xhc3MpIHNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/inherits.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js": +/*!*************************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _iterableToArrayLimit; }\n/* harmony export */ });\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaXRlcmFibGVUb0FycmF5TGltaXQuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFlO0FBQ2Y7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQSw0QkFBNEIsK0JBQStCO0FBQzNEOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTs7QUFFQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9pdGVyYWJsZVRvQXJyYXlMaW1pdC5qcz8yZjBlIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9pdGVyYWJsZVRvQXJyYXlMaW1pdChhcnIsIGkpIHtcbiAgdmFyIF9pID0gYXJyID09IG51bGwgPyBudWxsIDogdHlwZW9mIFN5bWJvbCAhPT0gXCJ1bmRlZmluZWRcIiAmJiBhcnJbU3ltYm9sLml0ZXJhdG9yXSB8fCBhcnJbXCJAQGl0ZXJhdG9yXCJdO1xuXG4gIGlmIChfaSA9PSBudWxsKSByZXR1cm47XG4gIHZhciBfYXJyID0gW107XG4gIHZhciBfbiA9IHRydWU7XG4gIHZhciBfZCA9IGZhbHNlO1xuXG4gIHZhciBfcywgX2U7XG5cbiAgdHJ5IHtcbiAgICBmb3IgKF9pID0gX2kuY2FsbChhcnIpOyAhKF9uID0gKF9zID0gX2kubmV4dCgpKS5kb25lKTsgX24gPSB0cnVlKSB7XG4gICAgICBfYXJyLnB1c2goX3MudmFsdWUpO1xuXG4gICAgICBpZiAoaSAmJiBfYXJyLmxlbmd0aCA9PT0gaSkgYnJlYWs7XG4gICAgfVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICBfZCA9IHRydWU7XG4gICAgX2UgPSBlcnI7XG4gIH0gZmluYWxseSB7XG4gICAgdHJ5IHtcbiAgICAgIGlmICghX24gJiYgX2lbXCJyZXR1cm5cIl0gIT0gbnVsbCkgX2lbXCJyZXR1cm5cIl0oKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgaWYgKF9kKSB0aHJvdyBfZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gX2Fycjtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js": +/*!********************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _nonIterableRest; }\n/* harmony export */ });\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vbm9uSXRlcmFibGVSZXN0LmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBZTtBQUNmO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL25vbkl0ZXJhYmxlUmVzdC5qcz8xODYyIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9ub25JdGVyYWJsZVJlc3QoKSB7XG4gIHRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIik7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js": +/*!******************************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js ***! + \******************************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _possibleConstructorReturn; }\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/typeof */ \"./node_modules/@babel/runtime/helpers/esm/typeof.js\");\n/* harmony import */ var _assertThisInitialized_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./assertThisInitialized.js */ \"./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js\");\n\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && ((0,_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return (0,_assertThisInitialized_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(self);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vcG9zc2libGVDb25zdHJ1Y3RvclJldHVybi5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBb0Q7QUFDVztBQUNoRDtBQUNmLGVBQWUseUVBQU87QUFDdEI7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQSxTQUFTLHFFQUFxQjtBQUM5QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vcG9zc2libGVDb25zdHJ1Y3RvclJldHVybi5qcz8zOWZkIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfdHlwZW9mIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL3R5cGVvZlwiO1xuaW1wb3J0IGFzc2VydFRoaXNJbml0aWFsaXplZCBmcm9tIFwiLi9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHNlbGYsIGNhbGwpIHtcbiAgaWYgKGNhbGwgJiYgKF90eXBlb2YoY2FsbCkgPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGNhbGwgPT09IFwiZnVuY3Rpb25cIikpIHtcbiAgICByZXR1cm4gY2FsbDtcbiAgfSBlbHNlIGlmIChjYWxsICE9PSB2b2lkIDApIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWRcIik7XG4gIH1cblxuICByZXR1cm4gYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _setPrototypeOf; }\n/* harmony export */ });\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vc2V0UHJvdG90eXBlT2YuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vc2V0UHJvdG90eXBlT2YuanM/MmM2OSJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkge1xuICBfc2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHtcbiAgICBvLl9fcHJvdG9fXyA9IHA7XG4gICAgcmV0dXJuIG87XG4gIH07XG5cbiAgcmV0dXJuIF9zZXRQcm90b3R5cGVPZihvLCBwKTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/slicedToArray.js": +/*!******************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js ***! + \******************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _slicedToArray; }\n/* harmony export */ });\n/* harmony import */ var _arrayWithHoles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayWithHoles.js */ \"./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\");\n/* harmony import */ var _iterableToArrayLimit_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iterableToArrayLimit.js */ \"./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\");\n/* harmony import */ var _unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./unsupportedIterableToArray.js */ \"./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\");\n/* harmony import */ var _nonIterableRest_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nonIterableRest.js */ \"./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\");\n\n\n\n\nfunction _slicedToArray(arr, i) {\n return (0,_arrayWithHoles_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(arr) || (0,_iterableToArrayLimit_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(arr, i) || (0,_unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(arr, i) || (0,_nonIterableRest_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])();\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vc2xpY2VkVG9BcnJheS5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFpRDtBQUNZO0FBQ1k7QUFDdEI7QUFDcEM7QUFDZixTQUFTLDhEQUFjLFNBQVMsb0VBQW9CLFlBQVksMEVBQTBCLFlBQVksK0RBQWU7QUFDckgiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3NsaWNlZFRvQXJyYXkuanM/Y2Y4OCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXJyYXlXaXRoSG9sZXMgZnJvbSBcIi4vYXJyYXlXaXRoSG9sZXMuanNcIjtcbmltcG9ydCBpdGVyYWJsZVRvQXJyYXlMaW1pdCBmcm9tIFwiLi9pdGVyYWJsZVRvQXJyYXlMaW1pdC5qc1wiO1xuaW1wb3J0IHVuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IGZyb20gXCIuL3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5LmpzXCI7XG5pbXBvcnQgbm9uSXRlcmFibGVSZXN0IGZyb20gXCIuL25vbkl0ZXJhYmxlUmVzdC5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX3NsaWNlZFRvQXJyYXkoYXJyLCBpKSB7XG4gIHJldHVybiBhcnJheVdpdGhIb2xlcyhhcnIpIHx8IGl0ZXJhYmxlVG9BcnJheUxpbWl0KGFyciwgaSkgfHwgdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkoYXJyLCBpKSB8fCBub25JdGVyYWJsZVJlc3QoKTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/typeof.js": +/*!***********************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/typeof.js ***! + \***********************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _typeof; }\n/* harmony export */ });\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdHlwZW9mLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBZTtBQUNmOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3R5cGVvZi5qcz9hZDE5Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7XG4gIFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjtcblxuICBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHtcbiAgICBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHtcbiAgICAgIHJldHVybiB0eXBlb2Ygb2JqO1xuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7XG4gICAgICByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIF90eXBlb2Yob2JqKTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/typeof.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js ***! + \*******************************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _unsupportedIterableToArray; }\n/* harmony export */ });\n/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ \"./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(o, minLen);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBcUQ7QUFDdEM7QUFDZjtBQUNBLG9DQUFvQyxnRUFBZ0I7QUFDcEQ7QUFDQTtBQUNBO0FBQ0Esc0ZBQXNGLGdFQUFnQjtBQUN0RyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkuanM/ODliMyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXJyYXlMaWtlVG9BcnJheSBmcm9tIFwiLi9hcnJheUxpa2VUb0FycmF5LmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkobywgbWluTGVuKSB7XG4gIGlmICghbykgcmV0dXJuO1xuICBpZiAodHlwZW9mIG8gPT09IFwic3RyaW5nXCIpIHJldHVybiBhcnJheUxpa2VUb0FycmF5KG8sIG1pbkxlbik7XG4gIHZhciBuID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pLnNsaWNlKDgsIC0xKTtcbiAgaWYgKG4gPT09IFwiT2JqZWN0XCIgJiYgby5jb25zdHJ1Y3RvcikgbiA9IG8uY29uc3RydWN0b3IubmFtZTtcbiAgaWYgKG4gPT09IFwiTWFwXCIgfHwgbiA9PT0gXCJTZXRcIikgcmV0dXJuIEFycmF5LmZyb20obyk7XG4gIGlmIChuID09PSBcIkFyZ3VtZW50c1wiIHx8IC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKSByZXR1cm4gYXJyYXlMaWtlVG9BcnJheShvLCBtaW5MZW4pO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\n"); + +/***/ }), + +/***/ "./src/data/sections/features.json": +/*!*****************************************!*\ + !*** ./src/data/sections/features.json ***! + \*****************************************/ +/***/ (function(module) { + +"use strict"; +module.exports = JSON.parse('[{"id":1,"icon":"pe-7s-paint-bucket","title":"Marketing services","content":"To achieve success in the local market, it requires effective marketing, whether through electronic or non-electronic media"},{"id":2,"icon":"pe-7s-phone","title":"Restructuring projects","content":"Business Hub offers restructuring projects in a way that serves the interest of business continuity by reducing expenses and reemploying the workforce correctly."},{"id":3,"icon":"pe-7s-display1","title":"Commercial brokerage","content":"Mediation in buying and selling operations: We mediate between sellers and buyers to ensure that deals are achieved in a profitable manner for both parties."},{"id":4,"icon":"pe-7s-diskette","title":"Commercial representation","content":"Business Hub provides commercial representation services to companies inside and outside the UAE, provided that our role is limited to representing other companies."}]'); + +/***/ }) + +}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); } +/******/ __webpack_require__.O(0, ["pages/_app","main"], function() { return __webpack_exec__("./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2Fhomepage%2Fhome2-light&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Chomepage%5Chome2-light.jsx!"); }); +/******/ var __webpack_exports__ = __webpack_require__.O(); +/******/ _N_E = __webpack_exports__; +/******/ } +]); \ No newline at end of file diff --git a/.next/static/chunks/pages/index.js b/.next/static/chunks/pages/index.js new file mode 100644 index 0000000..f6073d7 --- /dev/null +++ b/.next/static/chunks/pages/index.js @@ -0,0 +1,5465 @@ +/* + * 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/). + */ +(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["pages/index"],{ + +/***/ "./node_modules/next/dist/client/link.js": +/*!***********************************************!*\ + !*** ./node_modules/next/dist/client/link.js ***! + \***********************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _slicedToArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nvar _s = $RefreshSig$();\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _router = __webpack_require__(/*! ../shared/lib/router/router */ \"./node_modules/next/dist/shared/lib/router/router.js\");\n\nvar _router1 = __webpack_require__(/*! ./router */ \"./node_modules/next/dist/client/router.js\");\n\nvar _useIntersection = __webpack_require__(/*! ./use-intersection */ \"./node_modules/next/dist/client/use-intersection.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar prefetched = {};\n\nfunction prefetch(router, href, as, options) {\n if ( false || !router) return;\n if (!(0, _router).isLocalURL(href)) return; // Prefetch the JSON 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\n router.prefetch(href, as, options)[\"catch\"](function (err) {\n if (true) {\n // rethrow to show invalid URL errors\n throw err;\n }\n });\n var curLocale = options && typeof options.locale !== 'undefined' ? options.locale : router && router.locale; // Join on an invalid URI character\n\n prefetched[href + '%' + as + (curLocale ? '%' + curLocale : '')] = true;\n}\n\nfunction isModifiedEvent(event) {\n var target = event.currentTarget.target;\n return target && target !== '_self' || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey || event.nativeEvent && event.nativeEvent.which === 2;\n}\n\nfunction linkClicked(e, router, href, as, replace, shallow, scroll, locale) {\n var nodeName = e.currentTarget.nodeName;\n\n if (nodeName === 'A' && (isModifiedEvent(e) || !(0, _router).isLocalURL(href))) {\n // ignore click for browser’s default behavior\n return;\n }\n\n e.preventDefault(); // avoid scroll for urls with anchor refs\n\n if (scroll == null && as.indexOf('#') >= 0) {\n scroll = false;\n } // replace state instead of push if prop is present\n\n\n router[replace ? 'replace' : 'push'](href, as, {\n shallow: shallow,\n locale: locale,\n scroll: scroll\n });\n}\n\nfunction Link(props) {\n _s();\n\n if (true) {\n var createPropError = function createPropError(args) {\n return new Error(\"Failed prop type: The prop `\".concat(args.key, \"` expects a \").concat(args.expected, \" in `<Link>`, but got `\").concat(args.actual, \"` instead.\") + ( true ? \"\\nOpen your browser's console to view the Component stack trace.\" : 0));\n }; // TypeScript trick for type-guarding:\n\n\n var requiredPropsGuard = {\n href: true\n };\n var requiredProps = Object.keys(requiredPropsGuard);\n requiredProps.forEach(function (key) {\n if (key === 'href') {\n if (props[key] == null || typeof props[key] !== 'string' && typeof props[key] !== 'object') {\n throw createPropError({\n key: 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 var _ = key;\n }\n }); // TypeScript trick for type-guarding:\n\n var optionalPropsGuard = {\n as: true,\n replace: true,\n scroll: true,\n shallow: true,\n passHref: true,\n prefetch: true,\n locale: true\n };\n var optionalProps = Object.keys(optionalPropsGuard);\n optionalProps.forEach(function (key) {\n var valType = typeof props[key];\n\n if (key === 'as') {\n if (props[key] && valType !== 'string' && valType !== 'object') {\n throw createPropError({\n key: key,\n expected: '`string` or `object`',\n actual: valType\n });\n }\n } else if (key === 'locale') {\n if (props[key] && valType !== 'string') {\n throw createPropError({\n key: key,\n expected: '`string`',\n actual: valType\n });\n }\n } else if (key === 'replace' || key === 'scroll' || key === 'shallow' || key === 'passHref' || key === 'prefetch') {\n if (props[key] != null && valType !== 'boolean') {\n throw createPropError({\n key: key,\n expected: '`boolean`',\n actual: valType\n });\n }\n } else {\n // TypeScript trick for type-guarding:\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var _ = key;\n }\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\n var hasWarned = _react[\"default\"].useRef(false);\n\n if (props.prefetch && !hasWarned.current) {\n hasWarned.current = true;\n console.warn('Next.js auto-prefetches automatically based on viewport. The prefetch attribute is no longer needed. More: https://nextjs.org/docs/messages/prefetch-true-deprecated');\n }\n }\n\n var p = props.prefetch !== false;\n var router = (0, _router1).useRouter();\n\n var _react$default$useMem = _react[\"default\"].useMemo(function () {\n var _resolveHref = (0, _router).resolveHref(router, props.href, true),\n _resolveHref2 = _slicedToArray(_resolveHref, 2),\n resolvedHref = _resolveHref2[0],\n resolvedAs = _resolveHref2[1];\n\n return {\n href: resolvedHref,\n as: props.as ? (0, _router).resolveHref(router, props.as) : resolvedAs || resolvedHref\n };\n }, [router, props.href, props.as]),\n href = _react$default$useMem.href,\n as = _react$default$useMem.as;\n\n var children = props.children,\n replace = props.replace,\n shallow = props.shallow,\n scroll = props.scroll,\n locale = props.locale; // Deprecated. Warning shown by propType check. If the children provided is a string (<Link>example</Link>) we wrap it in an <a> tag\n\n if (typeof children === 'string') {\n children = /*#__PURE__*/_react[\"default\"].createElement(\"a\", null, children);\n } // This will return the first child, if multiple are provided it will throw an error\n\n\n var child;\n\n if (true) {\n try {\n child = _react[\"default\"].Children.only(children);\n } catch (err) {\n throw new Error(\"Multiple children were passed to <Link> with `href` of `\".concat(props.href, \"` but only one child is supported https://nextjs.org/docs/messages/link-multiple-children\") + ( true ? \" \\nOpen your browser's console to view the Component stack trace.\" : 0));\n }\n } else {}\n\n var childRef = child && typeof child === 'object' && child.ref;\n\n var _useIntersection2 = (0, _useIntersection).useIntersection({\n rootMargin: '200px'\n }),\n _useIntersection3 = _slicedToArray(_useIntersection2, 2),\n setIntersectionRef = _useIntersection3[0],\n isVisible = _useIntersection3[1];\n\n var setRef = _react[\"default\"].useCallback(function (el) {\n setIntersectionRef(el);\n\n if (childRef) {\n if (typeof childRef === 'function') childRef(el);else if (typeof childRef === 'object') {\n childRef.current = el;\n }\n }\n }, [childRef, setIntersectionRef]);\n\n _react[\"default\"].useEffect(function () {\n var shouldPrefetch = isVisible && p && (0, _router).isLocalURL(href);\n var curLocale = typeof locale !== 'undefined' ? locale : router && router.locale;\n var isPrefetched = prefetched[href + '%' + as + (curLocale ? '%' + curLocale : '')];\n\n if (shouldPrefetch && !isPrefetched) {\n prefetch(router, href, as, {\n locale: curLocale\n });\n }\n }, [as, href, isVisible, locale, p, router]);\n\n var childProps = {\n ref: setRef,\n onClick: function onClick(e) {\n if (child.props && typeof child.props.onClick === 'function') {\n child.props.onClick(e);\n }\n\n if (!e.defaultPrevented) {\n linkClicked(e, router, href, as, replace, shallow, scroll, locale);\n }\n }\n };\n\n childProps.onMouseEnter = function (e) {\n if (!(0, _router).isLocalURL(href)) return;\n\n if (child.props && typeof child.props.onMouseEnter === 'function') {\n child.props.onMouseEnter(e);\n }\n\n prefetch(router, href, as, {\n priority: true\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\n\n if (props.passHref || child.type === 'a' && !('href' in child.props)) {\n var curLocale = typeof locale !== 'undefined' ? locale : router && router.locale; // we only render domain locales if we are currently on a domain locale\n // so that locale links are still visitable in development/preview envs\n\n var localeDomain = router && router.isLocaleDomain && (0, _router).getDomainLocale(as, curLocale, router && router.locales, router && router.domainLocales);\n childProps.href = localeDomain || (0, _router).addBasePath((0, _router).addLocale(as, curLocale, router && router.defaultLocale));\n }\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(child, childProps);\n}\n\n_s(Link, \"PYHstBoZE4p1pf5wc1Vw4fTzvCU=\", true);\n\n_c = Link;\nvar _default = Link;\nexports[\"default\"] = _default;\n\nvar _c;\n\n$RefreshReg$(_c, \"Link\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9saW5rLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7Ozs7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELGtCQUFBLEdBQWtCLEtBQUssQ0FBdkI7O0FBQ0EsSUFBSUUsTUFBTSxHQUFHQyxzQkFBc0IsQ0FBQ0MsbUJBQU8sQ0FBQyw0Q0FBRCxDQUFSLENBQW5DOztBQUNBLElBQUlDLE9BQU8sR0FBR0QsbUJBQU8sQ0FBQyx5RkFBRCxDQUFyQjs7QUFDQSxJQUFJRSxRQUFRLEdBQUdGLG1CQUFPLENBQUMsMkRBQUQsQ0FBdEI7O0FBQ0EsSUFBSUcsZ0JBQWdCLEdBQUdILG1CQUFPLENBQUMsK0VBQUQsQ0FBOUI7O0FBQ0EsU0FBU0Qsc0JBQVQsQ0FBZ0NLLEdBQWhDLEVBQXFDO0FBQ2pDLFNBQU9BLEdBQUcsSUFBSUEsR0FBRyxDQUFDQyxVQUFYLEdBQXdCRCxHQUF4QixHQUE4QjtBQUNqQyxlQUFTQTtBQUR3QixHQUFyQztBQUdIOztBQUNELElBQU1FLFVBQVUsR0FBRyxFQUFuQjs7QUFFQSxTQUFTQyxRQUFULENBQWtCQyxNQUFsQixFQUEwQkMsSUFBMUIsRUFBZ0NDLEVBQWhDLEVBQW9DQyxPQUFwQyxFQUE2QztBQUN6QyxNQUFJLFVBQWlDLENBQUNILE1BQXRDLEVBQThDO0FBQzlDLE1BQUksQ0FBQyxDQUFDLEdBQUdQLE9BQUosRUFBYVcsVUFBYixDQUF3QkgsSUFBeEIsQ0FBTCxFQUFvQyxPQUZLLENBR3pDO0FBQ0E7QUFDQTtBQUNBOztBQUNBRCxFQUFBQSxNQUFNLENBQUNELFFBQVAsQ0FBZ0JFLElBQWhCLEVBQXNCQyxFQUF0QixFQUEwQkMsT0FBMUIsV0FBeUMsVUFBQ0UsR0FBRCxFQUFPO0FBQzVDLGNBQTJDO0FBQ3ZDO0FBQ0EsWUFBTUEsR0FBTjtBQUNIO0FBQ0osR0FMRDtBQU1BLE1BQU1DLFNBQVMsR0FBR0gsT0FBTyxJQUFJLE9BQU9B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Q2dGLE9BQTdELEVBQXNFaEYsTUFBTSxJQUFJQSxNQUFNLENBQUNpRixhQUF2RixDQUF4RDtBQUNBVixJQUFBQSxVQUFVLENBQUN0RSxJQUFYLEdBQWtCNEUsWUFBWSxJQUFJLENBQUMsR0FBR3BGLE9BQUosRUFBYXlGLFdBQWIsQ0FBeUIsQ0FBQyxHQUFHekYsT0FBSixFQUFhMEYsU0FBYixDQUF1QmpGLEVBQXZCLEVBQTJCSSxTQUEzQixFQUFzQ04sTUFBTSxJQUFJQSxNQUFNLENBQUNvRixhQUF2RCxDQUF6QixDQUFsQztBQUNIOztBQUNELFNBQU8sYUFBYzlGLE1BQU0sV0FBTixDQUFlK0YsWUFBZixDQUE0QjdCLEtBQTVCLEVBQW1DZSxVQUFuQyxDQUFyQjtBQUNIOztHQXhLUTdDOztLQUFBQTtBQXlLVCxJQUFJNEQsUUFBUSxHQUFHNUQsSUFBZjtBQUNBdEMsa0JBQUEsR0FBa0JrRyxRQUFsQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9saW5rLmpzP2U0ZjkiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7XG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xudmFyIF9yb3V0ZXIgPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9yb3V0ZXIvcm91dGVyXCIpO1xudmFyIF9yb3V0ZXIxID0gcmVxdWlyZShcIi4vcm91dGVyXCIpO1xudmFyIF91c2VJbnRlcnNlY3Rpb24gPSByZXF1aXJlKFwiLi91c2UtaW50ZXJzZWN0aW9uXCIpO1xuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuY29uc3QgcHJlZmV0Y2hlZCA9IHtcbn07XG5mdW5jdGlvbiBwcmVmZXRjaChyb3V0ZXIsIGhyZWYsIGFzLCBvcHRpb25zKSB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8ICFyb3V0ZXIpIHJldHVybjtcbiAgICBpZiAoISgwLCBfcm91dGVyKS5pc0xvY2FsVVJMKGhyZWYpKSByZXR1cm47XG4gICAgLy8gUHJlZmV0Y2ggdGhlIEpTT04gcGFnZSBpZiBhc2tlZCAob25seSBpbiB0aGUgY2xpZW50KVxuICAgIC8vIFdlIG5lZWQgdG8gaGFuZGxlIGEgcHJlZmV0Y2ggZXJyb3IgaGVyZSBzaW5jZSB3ZSBtYXkgYmVcbiAgICAvLyBsb2FkaW5nIHdpdGggcHJpb3JpdHkgd2hpY2ggY2FuIHJlamVjdCBidXQgd2UgZG9uJ3RcbiAgICAvLyB3YW50IHRvIGZvcmNlIG5hdmlnYXRpb24gc2luY2UgdGhpcyBpcyBvbmx5IGEgcHJlZmV0Y2hcbiAgICByb3V0ZXIucHJlZmV0Y2goaHJlZiwgYXMsIG9wdGlvbnMpLmNhdGNoKChlcnIpPT57XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICAvLyByZXRocm93IHRvIHNob3cgaW52YWxpZCBVUkwgZXJyb3JzXG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBjdXJMb2NhbGUgPSBvcHRpb25zICYmIHR5cGVvZiBvcHRpb25zLmxvY2FsZSAhPT0gJ3VuZGVmaW5lZCcgPyBvcHRpb25zLmxvY2FsZSA6IHJvdXRlciAmJiByb3V0ZXIubG9jYWxlO1xuICAgIC8vIEpvaW4gb24gYW4gaW52YWxpZCBVUkkgY2hhcmFjdGVyXG4gICAgcHJlZmV0Y2hlZFtocmVmICsgJyUnICsgYXMgKyAoY3VyTG9jYWxlID8gJyUnICsgY3VyTG9jYWxlIDogJycpXSA9IHRydWU7XG59XG5mdW5jdGlvbiBpc01vZGlmaWVkRXZlbnQoZXZlbnQpIHtcbiAgICBjb25zdCB7IHRhcmdldCAgfSA9IGV2ZW50LmN1cnJlbnRUYXJnZXQ7XG4gICAgcmV0dXJuIHRhcmdldCAmJiB0YXJnZXQgIT09ICdfc2VsZicgfHwgZXZlbnQubWV0YUtleSB8fCBldmVudC5jdHJsS2V5IHx8IGV2ZW50LnNoaWZ0S2V5IHx8IGV2ZW50LmFsdEtleSB8fCBldmVudC5uYXRpdmVFdmVudCAmJiBldmVudC5uYXRpdmVFdmVudC53aGljaCA9PT0gMjtcbn1cbmZ1bmN0aW9uIGxpbmtDbGlja2VkKGUsIHJvdXRlciwgaHJlZiwgYXMsIHJlcGxhY2UsIHNoYWxsb3csIHNjcm9sbCwgbG9jYWxlKSB7XG4gICAgY29uc3QgeyBub2RlTmFtZSAgfSA9IGUuY3VycmVudFRhcmdldDtcbiAgICBpZiAobm9kZU5hbWUgPT09ICdBJyAmJiAoaXNNb2RpZmllZEV2ZW50KGUpIHx8ICEoMCwgX3JvdXRlcikuaXNMb2NhbFVSTChocmVmKSkpIHtcbiAgICAgICAgLy8gaWdub3JlIGNsaWNrIGZvciBicm93c2Vy4oCZcyBkZWZhdWx0IGJlaGF2aW9yXG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIC8vICBhdm9pZCBzY3JvbGwgZm9yIHVybHMgd2l0aCBhbmNob3IgcmVmc1xuICAgIGlmIChzY3JvbGwgPT0gbnVsbCAmJiBhcy5pbmRleE9mKCcjJykgPj0gMCkge1xuICAgICAgICBzY3JvbGwgPSBmYWxzZTtcbiAgICB9XG4gICAgLy8gcmVwbGFjZSBzdGF0ZSBpbnN0ZWFkIG9mIHB1c2ggaWYgcHJvcCBpcyBwcmVzZW50XG4gICAgcm91dGVyW3JlcGxhY2UgPyAncmVwbGFjZScgOiAncHVzaCddKGhyZWYsIGFzLCB7XG4gICAgICAgIHNoYWxsb3csXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgc2Nyb2xsXG4gICAgfSk7XG59XG5mdW5jdGlvbiBMaW5rKHByb3BzKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgZnVuY3Rpb24gY3JlYXRlUHJvcEVycm9yKGFyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgRXJyb3IoYEZhaWxlZCBwcm9wIHR5cGU6IFRoZSBwcm9wIFxcYCR7YXJncy5rZXl9XFxgIGV4cGVjdHMgYSAke2FyZ3MuZXhwZWN0ZWR9IGluIFxcYDxMaW5rPlxcYCwgYnV0IGdvdCBcXGAke2FyZ3MuYWN0dWFsfVxcYCBpbnN0ZWFkLmAgKyAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgPyBcIlxcbk9wZW4geW91ciBicm93c2VyJ3MgY29uc29sZSB0byB2aWV3IHRoZSBDb21wb25lbnQgc3RhY2sgdHJhY2UuXCIgOiAnJykpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFR5cGVTY3JpcHQgdHJpY2sgZm9yIHR5cGUtZ3VhcmRpbmc6XG4gICAgICAgIGNvbnN0IHJlcXVpcmVkUHJvcHNHdWFyZCA9IHtcbiAgICAgICAgICAgIGhyZWY6IHRydWVcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgcmVxdWlyZWRQcm9wcyA9IE9iamVjdC5rZXlzKHJlcXVpcmVkUHJvcHNHdWFyZCk7XG4gICAgICAgIHJlcXVpcmVkUHJvcHMuZm9yRWFjaCgoa2V5KT0+e1xuICAgICAgICAgICAgaWYgKGtleSA9PT0gJ2hyZWYnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHByb3BzW2tleV0gPT0gbnVsbCB8fCB0eXBlb2YgcHJvcHNba2V5XSAhPT0gJ3N0cmluZycgJiYgdHlwZW9mIHByb3BzW2tleV0gIT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGNyZWF0ZVByb3BFcnJvcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZDogJ2BzdHJpbmdgIG9yIGBvYmplY3RgJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbDogcHJvcHNba2V5XSA9PT0gbnVsbCA/ICdudWxsJyA6IHR5cGVvZiBwcm9wc1trZXldXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gVHlwZVNjcmlwdCB0cmljayBmb3IgdHlwZS1ndWFyZGluZzpcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgICAgICAgICAgICAgY29uc3QgXyA9IGtleTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIC8vIFR5cGVTY3JpcHQgdHJpY2sgZm9yIHR5cGUtZ3VhcmRpbmc6XG4gICAgICAgIGNvbnN0IG9wdGlvbmFsUHJvcHNHdWFyZCA9IHtcbiAgICAgICAgICAgIGFzOiB0cnVlLFxuICAgICAgICAgICAgcmVwbGFjZTogdHJ1ZSxcbiAgICAgICAgICAgIHNjcm9sbDogdHJ1ZSxcbiAgICAgICAgICAgIHNoYWxsb3c6IHRydWUsXG4gICAgICAgICAgICBwYXNzSHJlZjogdHJ1ZSxcbiAgICAgICAgICAgIHByZWZldGNoOiB0cnVlLFxuICAgICAgICAgICAgbG9jYWxlOiB0cnVlXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IG9wdGlvbmFsUHJvcHMgPSBPYmplY3Qua2V5cyhvcHRpb25hbFByb3BzR3VhcmQpO1xuICAgICAgICBvcHRpb25hbFByb3BzLmZvckVhY2goKGtleSk9PntcbiAgICAgICAgICAgIGNvbnN0IHZhbFR5cGUgPSB0eXBlb2YgcHJvcHNba2V5XTtcbiAgICAgICAgICAgIGlmIChrZXkgPT09ICdhcycpIHtcbiAgICAgICAgICAgICAgICBpZiAocHJvcHNba2V5XSAmJiB2YWxUeXBlICE9PSAnc3RyaW5nJyAmJiB2YWxUeXBlICE9PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBjcmVhdGVQcm9wRXJyb3Ioe1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQ6ICdgc3RyaW5nYCBvciBgb2JqZWN0YCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWw6IHZhbFR5cGVcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdsb2NhbGUnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHByb3BzW2tleV0gJiYgdmFsVHlwZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgY3JlYXRlUHJvcEVycm9yKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkOiAnYHN0cmluZ2AnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFsOiB2YWxUeXBlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAncmVwbGFjZScgfHwga2V5ID09PSAnc2Nyb2xsJyB8fCBrZXkgPT09ICdzaGFsbG93JyB8fCBrZXkgPT09ICdwYXNzSHJlZicgfHwga2V5ID09PSAncHJlZmV0Y2gnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHByb3BzW2tleV0gIT0gbnVsbCAmJiB2YWxUeXBlICE9PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgY3JlYXRlUHJvcEVycm9yKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkOiAnYGJvb2xlYW5gJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbDogdmFsVHlwZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIFR5cGVTY3JpcHQgdHJpY2sgZm9yIHR5cGUtZ3VhcmRpbmc6XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICAgICAgICAgICAgIGNvbnN0IF8gPSBrZXk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBUaGlzIGhvb2sgaXMgaW4gYSBjb25kaXRpb25hbCBidXQgdGhhdCBpcyBvayBiZWNhdXNlIGBwcm9jZXNzLmVudi5OT0RFX0VOVmAgbmV2ZXIgY2hhbmdlc1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgICAgICAgY29uc3QgaGFzV2FybmVkID0gX3JlYWN0LmRlZmF1bHQudXNlUmVmKGZhbHNlKTtcbiAgICAgICAgaWYgKHByb3BzLnByZWZldGNoICYmICFoYXNXYXJuZWQuY3VycmVudCkge1xuICAgICAgICAgICAgaGFzV2FybmVkLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdOZXh0LmpzIGF1dG8tcHJlZmV0Y2hlcyBhdXRvbWF0aWNhbGx5IGJhc2VkIG9uIHZpZXdwb3J0LiBUaGUgcHJlZmV0Y2ggYXR0cmlidXRlIGlzIG5vIGxvbmdlciBuZWVkZWQuIE1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3ByZWZldGNoLXRydWUtZGVwcmVjYXRlZCcpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHAgPSBwcm9wcy5wcmVmZXRjaCAhPT0gZmFsc2U7XG4gICAgY29uc3Qgcm91dGVyID0gKDAsIF9yb3V0ZXIxKS51c2VSb3V0ZXIoKTtcbiAgICBjb25zdCB7IGhyZWYgLCBhcyAgfSA9IF9yZWFjdC5kZWZhdWx0LnVzZU1lbW8oKCk9PntcbiAgICAgICAgY29uc3QgW3Jlc29sdmVkSHJlZiwgcmVzb2x2ZWRBc10gPSAoMCwgX3JvdXRlcikucmVzb2x2ZUhyZWYocm91dGVyLCBwcm9wcy5ocmVmLCB0cnVlKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGhyZWY6IHJlc29sdmVkSHJlZixcbiAgICAgICAgICAgIGFzOiBwcm9wcy5hcyA/ICgwLCBfcm91dGVyKS5yZXNvbHZlSHJlZihyb3V0ZXIsIHByb3BzLmFzKSA6IHJlc29sdmVkQXMgfHwgcmVzb2x2ZWRIcmVmXG4gICAgICAgIH07XG4gICAgfSwgW1xuICAgICAgICByb3V0ZXIsXG4gICAgICAgIHByb3BzLmhyZWYsXG4gICAgICAgIHByb3BzLmFzXG4gICAgXSk7XG4gICAgbGV0IHsgY2hpbGRyZW4gLCByZXBsYWNlICwgc2hhbGxvdyAsIHNjcm9sbCAsIGxvY2FsZSAgfSA9IHByb3BzO1xuICAgIC8vIERlcHJlY2F0ZWQuIFdhcm5pbmcgc2hvd24gYnkgcHJvcFR5cGUgY2hlY2suIElmIHRoZSBjaGlsZHJlbiBwcm92aWRlZCBpcyBhIHN0cmluZyAoPExpbms+ZXhhbXBsZTwvTGluaz4pIHdlIHdyYXAgaXQgaW4gYW4gPGE+IHRhZ1xuICAgIGlmICh0eXBlb2YgY2hpbGRyZW4gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNoaWxkcmVuID0gLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiYVwiLCBudWxsLCBjaGlsZHJlbik7XG4gICAgfVxuICAgIC8vIFRoaXMgd2lsbCByZXR1cm4gdGhlIGZpcnN0IGNoaWxkLCBpZiBtdWx0aXBsZSBhcmUgcHJvdmlkZWQgaXQgd2lsbCB0aHJvdyBhbiBlcnJvclxuICAgIGxldCBjaGlsZDtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNoaWxkID0gX3JlYWN0LmRlZmF1bHQuQ2hpbGRyZW4ub25seShjaGlsZHJlbik7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBNdWx0aXBsZSBjaGlsZHJlbiB3ZXJlIHBhc3NlZCB0byA8TGluaz4gd2l0aCBcXGBocmVmXFxgIG9mIFxcYCR7cHJvcHMuaHJlZn1cXGAgYnV0IG9ubHkgb25lIGNoaWxkIGlzIHN1cHBvcnRlZCBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9saW5rLW11bHRpcGxlLWNoaWxkcmVuYCArICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyA/IFwiIFxcbk9wZW4geW91ciBicm93c2VyJ3MgY29uc29sZSB0byB2aWV3IHRoZSBDb21wb25lbnQgc3RhY2sgdHJhY2UuXCIgOiAnJykpO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY2hpbGQgPSBfcmVhY3QuZGVmYXVsdC5DaGlsZHJlbi5vbmx5KGNoaWxkcmVuKTtcbiAgICB9XG4gICAgY29uc3QgY2hpbGRSZWYgPSBjaGlsZCAmJiB0eXBlb2YgY2hpbGQgPT09ICdvYmplY3QnICYmIGNoaWxkLnJlZjtcbiAgICBjb25zdCBbc2V0SW50ZXJzZWN0aW9uUmVmLCBpc1Zpc2libGVdID0gKDAsIF91c2VJbnRlcnNlY3Rpb24pLnVzZUludGVyc2VjdGlvbih7XG4gICAgICAgIHJvb3RNYXJnaW46ICcyMDBweCdcbiAgICB9KTtcbiAgICBjb25zdCBzZXRSZWYgPSBfcmVhY3QuZGVmYXVsdC51c2VDYWxsYmFjaygoZWwpPT57XG4gICAgICAgIHNldEludGVyc2VjdGlvblJlZihlbCk7XG4gICAgICAgIGlmIChjaGlsZFJlZikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBjaGlsZFJlZiA9PT0gJ2Z1bmN0aW9uJykgY2hpbGRSZWYoZWwpO1xuICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIGNoaWxkUmVmID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgIGNoaWxkUmVmLmN1cnJlbnQgPSBlbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgY2hpbGRSZWYsXG4gICAgICAgIHNldEludGVyc2VjdGlvblJlZlxuICAgIF0pO1xuICAgIF9yZWFjdC5kZWZhdWx0LnVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBjb25zdCBzaG91bGRQcmVmZXRjaCA9IGlzVmlzaWJsZSAmJiBwICYmICgwLCBfcm91dGVyKS5pc0xvY2FsVVJMKGhyZWYpO1xuICAgICAgICBjb25zdCBjdXJMb2NhbGUgPSB0eXBlb2YgbG9jYWxlICE9PSAndW5kZWZpbmVkJyA/IGxvY2FsZSA6IHJvdXRlciAmJiByb3V0ZXIubG9jYWxlO1xuICAgICAgICBjb25zdCBpc1ByZWZldGNoZWQgPSBwcmVmZXRjaGVkW2hyZWYgKyAnJScgKyBhcyArIChjdXJMb2NhbGUgPyAnJScgKyBjdXJMb2NhbGUgOiAnJyldO1xuICAgICAgICBpZiAoc2hvdWxkUHJlZmV0Y2ggJiYgIWlzUHJlZmV0Y2hlZCkge1xuICAgICAgICAgICAgcHJlZmV0Y2gocm91dGVyLCBocmVmLCBhcywge1xuICAgICAgICAgICAgICAgIGxvY2FsZTogY3VyTG9jYWxlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgYXMsXG4gICAgICAgIGhyZWYsXG4gICAgICAgIGlzVmlzaWJsZSxcbiAgICAgICAgbG9jYWxlLFxuICAgICAgICBwLFxuICAgICAgICByb3V0ZXJcbiAgICBdKTtcbiAgICBjb25zdCBjaGlsZFByb3BzID0ge1xuICAgICAgICByZWY6IHNldFJlZixcbiAgICAgICAgb25DbGljazogKGUpPT57XG4gICAgICAgICAgICBpZiAoY2hpbGQucHJvcHMgJiYgdHlwZW9mIGNoaWxkLnByb3BzLm9uQ2xpY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICBjaGlsZC5wcm9wcy5vbkNsaWNrKGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFlLmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICAgICAgICBsaW5rQ2xpY2tlZChlLCByb3V0ZXIsIGhyZWYsIGFzLCByZXBsYWNlLCBzaGFsbG93LCBzY3JvbGwsIGxvY2FsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGNoaWxkUHJvcHMub25Nb3VzZUVudGVyID0gKGUpPT57XG4gICAgICAgIGlmICghKDAsIF9yb3V0ZXIpLmlzTG9jYWxVUkwoaHJlZikpIHJldHVybjtcbiAgICAgICAgaWYgKGNoaWxkLnByb3BzICYmIHR5cGVvZiBjaGlsZC5wcm9wcy5vbk1vdXNlRW50ZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGNoaWxkLnByb3BzLm9uTW91c2VFbnRlcihlKTtcbiAgICAgICAgfVxuICAgICAgICBwcmVmZXRjaChyb3V0ZXIsIGhyZWYsIGFzLCB7XG4gICAgICAgICAgICBwcmlvcml0eTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIC8vIElmIGNoaWxkIGlzIGFuIDxhPiB0YWcgYW5kIGRvZXNuJ3QgaGF2ZSBhIGhyZWYgYXR0cmlidXRlLCBvciBpZiB0aGUgJ3Bhc3NIcmVmJyBwcm9wZXJ0eSBpc1xuICAgIC8vIGRlZmluZWQsIHdlIHNwZWNpZnkgdGhlIGN1cnJlbnQgJ2hyZWYnLCBzbyB0aGF0IHJlcGV0aXRpb24gaXMgbm90IG5lZWRlZCBieSB0aGUgdXNlclxuICAgIGlmIChwcm9wcy5wYXNzSHJlZiB8fCBjaGlsZC50eXBlID09PSAnYScgJiYgISgnaHJlZicgaW4gY2hpbGQucHJvcHMpKSB7XG4gICAgICAgIGNvbnN0IGN1ckxvY2FsZSA9IHR5cGVvZiBsb2NhbGUgIT09ICd1bmRlZmluZWQnID8gbG9jYWxlIDogcm91dGVyICYmIHJvdXRlci5sb2NhbGU7XG4gICAgICAgIC8vIHdlIG9ubHkgcmVuZGVyIGRvbWFpbiBsb2NhbGVzIGlmIHdlIGFyZSBjdXJyZW50bHkgb24gYSBkb21haW4gbG9jYWxlXG4gICAgICAgIC8vIHNvIHRoYXQgbG9jYWxlIGxpbmtzIGFyZSBzdGlsbCB2aXNpdGFibGUgaW4gZGV2ZWxvcG1lbnQvcHJldmlldyBlbnZzXG4gICAgICAgIGNvbnN0IGxvY2FsZURvbWFpbiA9IHJvdXRlciAmJiByb3V0ZXIuaXNMb2NhbGVEb21haW4gJiYgKDAsIF9yb3V0ZXIpLmdldERvbWFpbkxvY2FsZShhcywgY3VyTG9jYWxlLCByb3V0ZXIgJiYgcm91dGVyLmxvY2FsZXMsIHJvdXRlciAmJiByb3V0ZXIuZG9tYWluTG9jYWxlcyk7XG4gICAgICAgIGNoaWxkUHJvcHMuaHJlZiA9IGxvY2FsZURvbWFpbiB8fCAoMCwgX3JvdXRlcikuYWRkQmFzZVBhdGgoKDAsIF9yb3V0ZXIpLmFkZExvY2FsZShhcywgY3VyTG9jYWxlLCByb3V0ZXIgJiYgcm91dGVyLmRlZmF1bHRMb2NhbGUpKTtcbiAgICB9XG4gICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY2xvbmVFbGVtZW50KGNoaWxkLCBjaGlsZFByb3BzKSk7XG59XG52YXIgX2RlZmF1bHQgPSBMaW5rO1xuZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWxpbmsuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcm91dGVyIiwiX3JvdXRlcjEiLCJfdXNlSW50ZXJzZWN0aW9uIiwib2JqIiwiX19lc01vZHVsZSIsInByZWZldGNoZWQiLCJwcmVmZXRjaCIsInJvdXRlciIsImhyZWYiLCJhcyIsIm9wdGlvbnMiLCJpc0xvY2FsVVJMIiwiZXJyIiwiY3VyTG9jYWxlIiwibG9jYWxlIiwiaXNNb2RpZmllZEV2ZW50IiwiZXZlbnQiLCJ0YXJnZXQiLCJjdXJyZW50VGFyZ2V0IiwibWV0YUtleSIsImN0cmxLZXkiLCJzaGlmdEtleSIsImFsdEtleSIsIm5hdGl2ZUV2ZW50Iiwid2hpY2giLCJsaW5rQ2xpY2tlZCIsImUiLCJyZXBsYWNlIiwic2hhbGxvdyIsInNjcm9sbCIsIm5vZGVOYW1lIiwicHJldmVudERlZmF1bHQiLCJpbmRleE9mIiwiTGluayIsInByb3BzIiwiY3JlYXRlUHJvcEVycm9yIiwiYXJncyIsIkVycm9yIiwia2V5IiwiZXhwZWN0ZWQiLCJhY3R1YWwiLCJyZXF1aXJlZFByb3BzR3VhcmQiLCJyZXF1aXJlZFByb3BzIiwia2V5cyIsImZvckVhY2giLCJfIiwib3B0aW9uYWxQcm9wc0d1YXJkIiwicGFzc0hyZWYiLCJvcHRpb25hbFByb3BzIiwidmFsVHlwZSIsImhhc1dhcm5lZCIsInVzZVJlZiIsImN1cnJlbnQiLCJjb25zb2xlIiwid2FybiIsInAiLCJ1c2VSb3V0ZXIiLCJ1c2VNZW1vIiwicmVzb2x2ZUhyZWYiLCJyZXNvbHZlZEhyZWYiLCJyZXNvbHZlZEFzIiwiY2hpbGRyZW4iLCJjcmVhdGVFbGVtZW50IiwiY2hpbGQiLCJDaGlsZHJlbiIsIm9ubHkiLCJjaGlsZFJlZiIsInJlZiIsInVzZUludGVyc2VjdGlvbiIsInJvb3RNYXJnaW4iLCJzZXRJbnRlcnNlY3Rpb25SZWYiLCJpc1Zpc2libGUiLCJzZXRSZWYiLCJ1c2VDYWxsYmFjayIsImVsIiwidXNlRWZmZWN0Iiwic2hvdWxkUHJlZmV0Y2giLCJpc1ByZWZldGNoZWQiLCJjaGlsZFByb3BzIiwib25DbGljayIsImRlZmF1bHRQcmV2ZW50ZWQiLCJvbk1vdXNlRW50ZXIiLCJwcmlvcml0eSIsInR5cGUiLCJsb2NhbGVEb21haW4iLCJpc0xvY2FsZURvbWFpbiIsImdldERvbWFpbkxvY2FsZSIsImxvY2FsZXMiLCJkb21haW5Mb2NhbGVzIiwiYWRkQmFzZVBhdGgiLCJhZGRMb2NhbGUiLCJkZWZhdWx0TG9jYWxlIiwiY2xvbmVFbGVtZW50IiwiX2RlZmF1bHQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/link.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/use-intersection.js": +/*!***********************************************************!*\ + !*** ./node_modules/next/dist/client/use-intersection.js ***! + \***********************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _slicedToArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nvar _s = $RefreshSig$();\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.useIntersection = useIntersection;\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nvar _requestIdleCallback = __webpack_require__(/*! ./request-idle-callback */ \"./node_modules/next/dist/client/request-idle-callback.js\");\n\nvar hasIntersectionObserver = typeof IntersectionObserver !== 'undefined';\n\nfunction useIntersection(_ref) {\n _s();\n\n var rootMargin = _ref.rootMargin,\n disabled = _ref.disabled;\n var isDisabled = disabled || !hasIntersectionObserver;\n var unobserve = (0, _react).useRef();\n\n var _useState = (0, _react).useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n visible = _useState2[0],\n setVisible = _useState2[1];\n\n var setRef = (0, _react).useCallback(function (el) {\n if (unobserve.current) {\n unobserve.current();\n unobserve.current = undefined;\n }\n\n if (isDisabled || visible) return;\n\n if (el && el.tagName) {\n unobserve.current = observe(el, function (isVisible) {\n return isVisible && setVisible(isVisible);\n }, {\n rootMargin: rootMargin\n });\n }\n }, [isDisabled, rootMargin, visible]);\n (0, _react).useEffect(function () {\n if (!hasIntersectionObserver) {\n if (!visible) {\n var idleCallback = (0, _requestIdleCallback).requestIdleCallback(function () {\n return setVisible(true);\n });\n return function () {\n return (0, _requestIdleCallback).cancelIdleCallback(idleCallback);\n };\n }\n }\n }, [visible]);\n return [setRef, visible];\n}\n\n_s(useIntersection, \"Z6jj7qx+KE6gD9CpC9WlQTha45o=\");\n\nfunction observe(element, callback, options) {\n var _createObserver = createObserver(options),\n id = _createObserver.id,\n observer = _createObserver.observer,\n elements = _createObserver.elements;\n\n elements.set(element, callback);\n observer.observe(element);\n return function unobserve() {\n elements[\"delete\"](element);\n observer.unobserve(element); // Destroy observer when there's nothing left to watch:\n\n if (elements.size === 0) {\n observer.disconnect();\n observers[\"delete\"](id);\n }\n };\n}\n\nvar observers = new Map();\n\nfunction createObserver(options) {\n var id = options.rootMargin || '';\n var instance = observers.get(id);\n\n if (instance) {\n return instance;\n }\n\n var elements = new Map();\n var observer = new IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n var callback = elements.get(entry.target);\n var isVisible = entry.isIntersecting || entry.intersectionRatio > 0;\n\n if (callback && isVisible) {\n callback(isVisible);\n }\n });\n }, options);\n observers.set(id, instance = {\n id: id,\n observer: observer,\n elements: elements\n });\n return instance;\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC91c2UtaW50ZXJzZWN0aW9uLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7Ozs7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELHVCQUFBLEdBQTBCRSxlQUExQjs7QUFDQSxJQUFJQyxNQUFNLEdBQUdDLG1CQUFPLENBQUMsNENBQUQsQ0FBcEI7O0FBQ0EsSUFBSUMsb0JBQW9CLEdBQUdELG1CQUFPLENBQUMseUZBQUQsQ0FBbEM7O0FBQ0EsSUFBTUUsdUJBQXVCLEdBQUcsT0FBT0Msb0JBQVAsS0FBZ0MsV0FBaEU7O0FBQ0EsU0FBU0wsZUFBVCxPQUFxRDtBQUFBOztBQUFBLE1BQTFCTSxVQUEwQixRQUExQkEsVUFBMEI7QUFBQSxNQUFiQyxRQUFhLFFBQWJBLFFBQWE7QUFDakQsTUFBTUMsVUFBVSxHQUFHRCxRQUFRLElBQUksQ0FBQ0gsdUJBQWhDO0FBQ0EsTUFBTUssU0FBUyxHQUFHLENBQUMsR0FBR1IsTUFBSixFQUFZUyxNQUFaLEVBQWxCOztBQUNBLGtCQUE4QixDQUFDLEdBQUdULE1BQUosRUFBWVUsUUFBWixDQUFxQixLQUFyQixDQUE5QjtBQUFBO0FBQUEsTUFBT0MsT0FBUDtBQUFBLE1BQWdCQyxVQUFoQjs7QUFDQSxNQUFNQyxNQUFNLEdBQUcsQ0FBQyxHQUFHYixNQUFKLEVBQVljLFdBQVosQ0FBd0IsVUFBQ0MsRUFBRCxFQUFNO0FBQ3pDLFFBQUlQLFNBQVMsQ0FBQ1EsT0FBZCxFQUF1QjtBQUNuQlIsTUFBQUEsU0FBUyxDQUFDUSxPQUFWO0FBQ0FSLE1BQUFBLFNBQVMsQ0FBQ1EsT0FBVixHQUFvQkMsU0FBcEI7QUFDSDs7QUFDRCxRQUFJVixVQUFVLElBQUlJLE9BQWxCLEVBQTJCOztBQUMzQixRQUFJSSxFQUFFLElBQUlBLEVBQUUsQ0FBQ0csT0FBYixFQUFzQjtBQUNsQlYsTUFBQUEsU0FBUyxDQUFDUSxPQUFWLEdBQW9CRyxPQUFP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QUFBLEVBQUUsRUFBRkEsRUFEeUI7QUFFekJDLElBQUFBLFFBQVEsRUFBUkEsUUFGeUI7QUFHekJDLElBQUFBLFFBQVEsRUFBUkE7QUFIeUIsR0FBN0I7QUFLQSxTQUFPTSxRQUFQO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvdXNlLWludGVyc2VjdGlvbi5qcz9mZDk0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy51c2VJbnRlcnNlY3Rpb24gPSB1c2VJbnRlcnNlY3Rpb247XG52YXIgX3JlYWN0ID0gcmVxdWlyZShcInJlYWN0XCIpO1xudmFyIF9yZXF1ZXN0SWRsZUNhbGxiYWNrID0gcmVxdWlyZShcIi4vcmVxdWVzdC1pZGxlLWNhbGxiYWNrXCIpO1xuY29uc3QgaGFzSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPSB0eXBlb2YgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgIT09ICd1bmRlZmluZWQnO1xuZnVuY3Rpb24gdXNlSW50ZXJzZWN0aW9uKHsgcm9vdE1hcmdpbiAsIGRpc2FibGVkICB9KSB7XG4gICAgY29uc3QgaXNEaXNhYmxlZCA9IGRpc2FibGVkIHx8ICFoYXNJbnRlcnNlY3Rpb25PYnNlcnZlcjtcbiAgICBjb25zdCB1bm9ic2VydmUgPSAoMCwgX3JlYWN0KS51c2VSZWYoKTtcbiAgICBjb25zdCBbdmlzaWJsZSwgc2V0VmlzaWJsZV0gPSAoMCwgX3JlYWN0KS51c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3Qgc2V0UmVmID0gKDAsIF9yZWFjdCkudXNlQ2FsbGJhY2soKGVsKT0+e1xuICAgICAgICBpZiAodW5vYnNlcnZlLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIHVub2JzZXJ2ZS5jdXJyZW50KCk7XG4gICAgICAgICAgICB1bm9ic2VydmUuY3VycmVudCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNEaXNhYmxlZCB8fCB2aXNpYmxlKSByZXR1cm47XG4gICAgICAgIGlmIChlbCAmJiBlbC50YWdOYW1lKSB7XG4gICAgICAgICAgICB1bm9ic2VydmUuY3VycmVudCA9IG9ic2VydmUoZWwsIChpc1Zpc2libGUpPT5pc1Zpc2libGUgJiYgc2V0VmlzaWJsZShpc1Zpc2libGUpXG4gICAgICAgICAgICAsIHtcbiAgICAgICAgICAgICAgICByb290TWFyZ2luXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgaXNEaXNhYmxlZCxcbiAgICAgICAgcm9vdE1hcmdpbixcbiAgICAgICAgdmlzaWJsZVxuICAgIF0pO1xuICAgICgwLCBfcmVhY3QpLnVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBpZiAoIWhhc0ludGVyc2VjdGlvbk9ic2VydmVyKSB7XG4gICAgICAgICAgICBpZiAoIXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpZGxlQ2FsbGJhY2sgPSAoMCwgX3JlcXVlc3RJZGxlQ2FsbGJhY2spLnJlcXVlc3RJZGxlQ2FsbGJhY2soKCk9PnNldFZpc2libGUodHJ1ZSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHJldHVybiAoKT0+KDAsIF9yZXF1ZXN0SWRsZUNhbGxiYWNrKS5jYW5jZWxJZGxlQ2FsbGJhY2soaWRsZUNhbGxiYWNrKVxuICAgICAgICAgICAgICAgIDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgdmlzaWJsZVxuICAgIF0pO1xuICAgIHJldHVybiBbXG4gICAgICAgIHNldFJlZixcbiAgICAgICAgdmlzaWJsZVxuICAgIF07XG59XG5mdW5jdGlvbiBvYnNlcnZlKGVsZW1lbnQsIGNhbGxiYWNrLCBvcHRpb25zKSB7XG4gICAgY29uc3QgeyBpZCAsIG9ic2VydmVyICwgZWxlbWVudHMgIH0gPSBjcmVhdGVPYnNlcnZlcihvcHRpb25zKTtcbiAgICBlbGVtZW50cy5zZXQoZWxlbWVudCwgY2FsbGJhY2spO1xuICAgIG9ic2VydmVyLm9ic2VydmUoZWxlbWVudCk7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIHVub2JzZXJ2ZSgpIHtcbiAgICAgICAgZWxlbWVudHMuZGVsZXRlKGVsZW1lbnQpO1xuICAgICAgICBvYnNlcnZlci51bm9ic2VydmUoZWxlbWVudCk7XG4gICAgICAgIC8vIERlc3Ryb3kgb2JzZXJ2ZXIgd2hlbiB0aGVyZSdzIG5vdGhpbmcgbGVmdCB0byB3YXRjaDpcbiAgICAgICAgaWYgKGVsZW1lbnRzLnNpemUgPT09IDApIHtcbiAgICAgICAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICAgIG9ic2VydmVycy5kZWxldGUoaWQpO1xuICAgICAgICB9XG4gICAgfTtcbn1cbmNvbnN0IG9ic2VydmVycyA9IG5ldyBNYXAoKTtcbmZ1bmN0aW9uIGNyZWF0ZU9ic2VydmVyKG9wdGlvbnMpIHtcbiAgICBjb25zdCBpZCA9IG9wdGlvbnMucm9vdE1hcmdpbiB8fCAnJztcbiAgICBsZXQgaW5zdGFuY2UgPSBvYnNlcnZlcnMuZ2V0KGlkKTtcbiAgICBpZiAoaW5zdGFuY2UpIHtcbiAgICAgICAgcmV0dXJuIGluc3RhbmNlO1xuICAgIH1cbiAgICBjb25zdCBlbGVtZW50cyA9IG5ldyBNYXAoKTtcbiAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZW50cmllcyk9PntcbiAgICAgICAgZW50cmllcy5mb3JFYWNoKChlbnRyeSk9PntcbiAgICAgICAgICAgIGNvbnN0IGNhbGxiYWNrID0gZWxlbWVudHMuZ2V0KGVudHJ5LnRhcmdldCk7XG4gICAgICAgICAgICBjb25zdCBpc1Zpc2libGUgPSBlbnRyeS5pc0ludGVyc2VjdGluZyB8fCBlbnRyeS5pbnRlcnNlY3Rpb25SYXRpbyA+IDA7XG4gICAgICAgICAgICBpZiAoY2FsbGJhY2sgJiYgaXNWaXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2soaXNWaXNpYmxlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSwgb3B0aW9ucyk7XG4gICAgb2JzZXJ2ZXJzLnNldChpZCwgaW5zdGFuY2UgPSB7XG4gICAgICAgIGlkLFxuICAgICAgICBvYnNlcnZlcixcbiAgICAgICAgZWxlbWVudHNcbiAgICB9KTtcbiAgICByZXR1cm4gaW5zdGFuY2U7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVzZS1pbnRlcnNlY3Rpb24uanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwidXNlSW50ZXJzZWN0aW9uIiwiX3JlYWN0IiwicmVxdWlyZSIsIl9yZXF1ZXN0SWRsZUNhbGxiYWNrIiwiaGFzSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiLCJJbnRlcnNlY3Rpb25PYnNlcnZlciIsInJvb3RNYXJnaW4iLCJkaXNhYmxlZCIsImlzRGlzYWJsZWQiLCJ1bm9ic2VydmUiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInZpc2libGUiLCJzZXRWaXNpYmxlIiwic2V0UmVmIiwidXNlQ2FsbGJhY2siLCJlbCIsImN1cnJlbnQiLCJ1bmRlZmluZWQiLCJ0YWdOYW1lIiwib2JzZXJ2ZSIsImlzVmlzaWJsZSIsInVzZUVmZmVjdCIsImlkbGVDYWxsYmFjayIsInJlcXVlc3RJZGxlQ2FsbGJhY2siLCJjYW5jZWxJZGxlQ2FsbGJhY2siLCJlbGVtZW50IiwiY2FsbGJhY2siLCJvcHRpb25zIiwiY3JlYXRlT2JzZXJ2ZXIiLCJpZCIsIm9ic2VydmVyIiwiZWxlbWVudHMiLCJzZXQiLCJzaXplIiwiZGlzY29ubmVjdCIsIm9ic2VydmVycyIsIk1hcCIsImluc3RhbmNlIiwiZ2V0IiwiZW50cmllcyIsImZvckVhY2giLCJlbnRyeSIsInRhcmdldCIsImlzSW50ZXJzZWN0aW5nIiwiaW50ZXJzZWN0aW9uUmF0aW8iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/use-intersection.js\n"); + +/***/ }), + +/***/ "./src/common/cardMouseEffect.js": +/*!***************************************!*\ + !*** ./src/common/cardMouseEffect.js ***! + \***************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getSiblings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getSiblings */ \"./src/common/getSiblings.js\");\n/* module decorator */ module = __webpack_require__.hmd(module);\n\n\nvar cardMouseEffect = function cardMouseEffect(featureEl) {\n var featuresitems = featureEl;\n\n if (featuresitems) {\n featuresitems.forEach(function (item) {\n item.onmouseover = function (event) {\n item.classList.add(\"active\");\n var siblings = (0,_getSiblings__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(item),\n siblingEl = siblings.map(function (e) {\n return e.classList.remove(\"active\");\n });\n };\n });\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (cardMouseEffect);\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL2NhcmRNb3VzZUVmZmVjdC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7QUFBQTs7QUFFQSxJQUFNQyxlQUFlLEdBQUcsU0FBbEJBLGVBQWtCLENBQUNDLFNBQUQsRUFBZTtBQUNyQyxNQUFJQyxhQUFhLEdBQUdELFNBQXBCOztBQUNBLE1BQUlDLGFBQUosRUFBbUI7QUFDakJBLElBQUFBLGFBQWEsQ0FBQ0MsT0FBZCxDQUFzQixVQUFDQyxJQUFELEVBQVU7QUFDOUJBLE1BQUFBLElBQUksQ0FBQ0MsV0FBTCxHQUFtQixVQUFVQyxLQUFWLEVBQWlCO0FBQ2xDRixRQUFBQSxJQUFJLENBQUNHLFNBQUwsQ0FBZUMsR0FBZixDQUFtQixRQUFuQjtBQUNBLFlBQUlDLFFBQVEsR0FBR1Ysd0RBQVcsQ0FBQ0ssSUFBRCxDQUExQjtBQUFBLFlBQ0VNLFNBQVMsR0FBR0QsUUFBUSxDQUFDRSxHQUFULENBQWEsVUFBQ0MsQ0FBRDtBQUFBLGlCQUFPQSxDQUFDLENBQUNMLFNBQUYsQ0FBWU0sTUFBWixDQUFtQixRQUFuQixDQUFQO0FBQUEsU0FBYixDQURkO0FBRUQsT0FKRDtBQUtELEtBTkQ7QUFPRDtBQUNGLENBWEQ7O0FBYUEsK0RBQWViLGVBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbW1vbi9jYXJkTW91c2VFZmZlY3QuanM/MmFlYyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0U2libGluZ3MgZnJvbSAnLi9nZXRTaWJsaW5ncydcclxuXHJcbmNvbnN0IGNhcmRNb3VzZUVmZmVjdCA9IChmZWF0dXJlRWwpID0+IHtcclxuICB2YXIgZmVhdHVyZXNpdGVtcyA9IGZlYXR1cmVFbDtcclxuICBpZiAoZmVhdHVyZXNpdGVtcykge1xyXG4gICAgZmVhdHVyZXNpdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgIGl0ZW0ub25tb3VzZW92ZXIgPSBmdW5jdGlvbiAoZXZlbnQpIHtcclxuICAgICAgICBpdGVtLmNsYXNzTGlzdC5hZGQoXCJhY3RpdmVcIik7XHJcbiAgICAgICAgbGV0IHNpYmxpbmdzID0gZ2V0U2libGluZ3MoaXRlbSksXHJcbiAgICAgICAgICBzaWJsaW5nRWwgPSBzaWJsaW5ncy5tYXAoKGUpID0+IGUuY2xhc3NMaXN0LnJlbW92ZShcImFjdGl2ZVwiKSk7XHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICB9XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjYXJkTW91c2VFZmZlY3Q7XHJcbiJdLCJuYW1lcyI6WyJnZXRTaWJsaW5ncyIsImNhcmRNb3VzZUVmZmVjdCIsImZlYXR1cmVFbCIsImZlYXR1cmVzaXRlbXMiLCJmb3JFYWNoIiwiaXRlbSIsIm9ubW91c2VvdmVyIiwiZXZlbnQiLCJjbGFzc0xpc3QiLCJhZGQiLCJzaWJsaW5ncyIsInNpYmxpbmdFbCIsIm1hcCIsImUiLCJyZW1vdmUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/common/cardMouseEffect.js\n"); + +/***/ }), + +/***/ "./src/common/fadeInFadeOut.js": +/*!*************************************!*\ + !*** ./src/common/fadeInFadeOut.js ***! + \*************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"fadeIn\": function() { return /* binding */ fadeIn; },\n/* harmony export */ \"fadeOut\": function() { return /* binding */ fadeOut; }\n/* harmony export */ });\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar opacity = 0;\nvar intervalID = 0;\nvar fadeIn = function fadeIn(el, time) {\n setInterval(show(el), time);\n};\n\nfunction show(el) {\n opacity = Number(window.getComputedStyle(el).getPropertyValue(\"opacity\"));\n\n if (opacity < 1) {\n opacity = opacity + 1;\n el.style.opacity = opacity;\n } else {\n clearInterval(intervalID);\n }\n}\n\nvar fadeOut = function fadeOut(el, time) {\n setInterval(hide(el), time);\n};\n\nfunction hide(el) {\n opacity = Number(window.getComputedStyle(el).getPropertyValue(\"opacity\"));\n\n if (opacity > 0) {\n opacity = 0;\n el.style.opacity = opacity;\n } else {\n clearInterval(intervalID);\n }\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL2ZhZGVJbkZhZGVPdXQuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBSUEsT0FBTyxHQUFHLENBQWQ7QUFDQSxJQUFJQyxVQUFVLEdBQUcsQ0FBakI7QUFDTyxJQUFNQyxNQUFNLEdBQUcsU0FBVEEsTUFBUyxDQUFDQyxFQUFELEVBQUtDLElBQUwsRUFBYztBQUNsQ0MsRUFBQUEsV0FBVyxDQUFDQyxJQUFJLENBQUNILEVBQUQsQ0FBTCxFQUFXQyxJQUFYLENBQVg7QUFDRCxDQUZNOztBQUdQLFNBQVNFLElBQVQsQ0FBY0gsRUFBZCxFQUFrQjtBQUNoQkgsRUFBQUEsT0FBTyxHQUFHTyxNQUFNLENBQUNDLE1BQU0sQ0FBQ0MsZ0JBQVAsQ0FBd0JOLEVBQXhCLEVBQTRCTyxnQkFBNUIsQ0FBNkMsU0FBN0MsQ0FBRCxDQUFoQjs7QUFDQSxNQUFJVixPQUFPLEdBQUcsQ0FBZCxFQUFpQjtBQUNmQSxJQUFBQSxPQUFPLEdBQUdBLE9BQU8sR0FBRyxDQUFwQjtBQUNBRyxJQUFBQSxFQUFFLENBQUNRLEtBQUgsQ0FBU1gsT0FBVCxHQUFtQkEsT0FBbkI7QUFDRCxHQUhELE1BR087QUFDTFksSUFBQUEsYUFBYSxDQUFDWCxVQUFELENBQWI7QUFDRDtBQUNGOztBQUNNLElBQU1ZLE9BQU8sR0FBRyxTQUFWQSxPQUFVLENBQUNWLEVBQUQsRUFBS0MsSUFBTCxFQUFjO0FBQ25DQyxFQUFBQSxXQUFXLENBQUNTLElBQUksQ0FBQ1gsRUFBRCxDQUFMLEVBQVdDLElBQVgsQ0FBWDtBQUNELENBRk07O0FBR1AsU0FBU1UsSUFBVCxDQUFjWCxFQUFkLEVBQWtCO0FBQ2hCSCxFQUFBQSxPQUFPLEdBQUdPLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDQyxnQkFBUCxDQUF3Qk4sRUFBeEIsRUFBNEJPLGdCQUE1QixDQUE2QyxTQUE3QyxDQUFELENBQWhCOztBQUNBLE1BQUlWLE9BQU8sR0FBRyxDQUFkLEVBQWlCO0FBQ2ZBLElBQUFBLE9BQU8sR0FBRyxDQUFWO0FBQ0FHLElBQUFBLEVBQUUsQ0FBQ1EsS0FBSCxDQUFTWCxPQUFULEdBQW1CQSxPQUFuQjtBQUNELEdBSEQsTUFHTztBQUNMWSxJQUFBQSxhQUFhLENBQUNYLFVBQUQsQ0FBYjtBQUNEO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbW1vbi9mYWRlSW5GYWRlT3V0LmpzPzc0MzYiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIG9wYWNpdHkgPSAwO1xyXG52YXIgaW50ZXJ2YWxJRCA9IDA7XHJcbmV4cG9ydCBjb25zdCBmYWRlSW4gPSAoZWwsIHRpbWUpID0+IHtcclxuICBzZXRJbnRlcnZhbChzaG93KGVsKSwgdGltZSk7XHJcbn07XHJcbmZ1bmN0aW9uIHNob3coZWwpIHtcclxuICBvcGFjaXR5ID0gTnVtYmVyKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsKS5nZXRQcm9wZXJ0eVZhbHVlKFwib3BhY2l0eVwiKSk7XHJcbiAgaWYgKG9wYWNpdHkgPCAxKSB7XHJcbiAgICBvcGFjaXR5ID0gb3BhY2l0eSArIDE7XHJcbiAgICBlbC5zdHlsZS5vcGFjaXR5ID0gb3BhY2l0eTtcclxuICB9IGVsc2Uge1xyXG4gICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbElEKTtcclxuICB9XHJcbn1cclxuZXhwb3J0IGNvbnN0IGZhZGVPdXQgPSAoZWwsIHRpbWUpID0+IHtcclxuICBzZXRJbnRlcnZhbChoaWRlKGVsKSwgdGltZSk7XHJcbn07XHJcbmZ1bmN0aW9uIGhpZGUoZWwpIHtcclxuICBvcGFjaXR5ID0gTnVtYmVyKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsKS5nZXRQcm9wZXJ0eVZhbHVlKFwib3BhY2l0eVwiKSk7XHJcbiAgaWYgKG9wYWNpdHkgPiAwKSB7XHJcbiAgICBvcGFjaXR5ID0gMDtcclxuICAgIGVsLnN0eWxlLm9wYWNpdHkgPSBvcGFjaXR5O1xyXG4gIH0gZWxzZSB7XHJcbiAgICBjbGVhckludGVydmFsKGludGVydmFsSUQpO1xyXG4gIH1cclxufVxyXG4iXSwibmFtZXMiOlsib3BhY2l0eSIsImludGVydmFsSUQiLCJmYWRlSW4iLCJlbCIsInRpbWUiLCJzZXRJbnRlcnZhbCIsInNob3ciLCJOdW1iZXIiLCJ3aW5kb3ciLCJnZXRDb21wdXRlZFN0eWxlIiwiZ2V0UHJvcGVydHlWYWx1ZSIsInN0eWxlIiwiY2xlYXJJbnRlcnZhbCIsImZhZGVPdXQiLCJoaWRlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/common/fadeInFadeOut.js\n"); + +/***/ }), + +/***/ "./src/common/getSiblings.js": +/*!***********************************!*\ + !*** ./src/common/getSiblings.js ***! + \***********************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar getSiblings = function getSiblings(e) {\n var siblings = [];\n\n if (!e.parentNode) {\n return siblings;\n }\n\n var sibling = e.parentNode.firstChild;\n\n while (sibling) {\n if (sibling.nodeType === 1 && sibling !== e) {\n siblings.push(sibling);\n }\n\n sibling = sibling.nextSibling;\n }\n\n return siblings;\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (getSiblings);\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL2dldFNpYmxpbmdzLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQUEsSUFBTUEsV0FBVyxHQUFHLFNBQWRBLFdBQWMsQ0FBQ0MsQ0FBRCxFQUFPO0FBQ3pCLE1BQUlDLFFBQVEsR0FBRyxFQUFmOztBQUNBLE1BQUksQ0FBQ0QsQ0FBQyxDQUFDRSxVQUFQLEVBQW1CO0FBQ2pCLFdBQU9ELFFBQVA7QUFDRDs7QUFDRCxNQUFJRSxPQUFPLEdBQUdILENBQUMsQ0FBQ0UsVUFBRixDQUFhRSxVQUEzQjs7QUFDQSxTQUFPRCxPQUFQLEVBQWdCO0FBQ2QsUUFBSUEsT0FBTyxDQUFDRSxRQUFSLEtBQXFCLENBQXJCLElBQTBCRixPQUFPLEtBQUtILENBQTFDLEVBQTZDO0FBQzNDQyxNQUFBQSxRQUFRLENBQUNLLElBQVQsQ0FBY0gsT0FBZDtBQUNEOztBQUNEQSxJQUFBQSxPQUFPLEdBQUdBLE9BQU8sQ0FBQ0ksV0FBbEI7QUFDRDs7QUFDRCxTQUFPTixRQUFQO0FBQ0QsQ0FiRDs7QUFlQSwrREFBZUYsV0FBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tbW9uL2dldFNpYmxpbmdzLmpzPzhlNjUiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZ2V0U2libGluZ3MgPSAoZSkgPT4ge1xyXG4gIGxldCBzaWJsaW5ncyA9IFtdO1xyXG4gIGlmICghZS5wYXJlbnROb2RlKSB7XHJcbiAgICByZXR1cm4gc2libGluZ3M7XHJcbiAgfVxyXG4gIGxldCBzaWJsaW5nID0gZS5wYXJlbnROb2RlLmZpcnN0Q2hpbGQ7XHJcbiAgd2hpbGUgKHNpYmxpbmcpIHtcclxuICAgIGlmIChzaWJsaW5nLm5vZGVUeXBlID09PSAxICYmIHNpYmxpbmcgIT09IGUpIHtcclxuICAgICAgc2libGluZ3MucHVzaChzaWJsaW5nKTtcclxuICAgIH1cclxuICAgIHNpYmxpbmcgPSBzaWJsaW5nLm5leHRTaWJsaW5nO1xyXG4gIH1cclxuICByZXR1cm4gc2libGluZ3M7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBnZXRTaWJsaW5ncztcclxuIl0sIm5hbWVzIjpbImdldFNpYmxpbmdzIiwiZSIsInNpYmxpbmdzIiwicGFyZW50Tm9kZSIsInNpYmxpbmciLCJmaXJzdENoaWxkIiwibm9kZVR5cGUiLCJwdXNoIiwibmV4dFNpYmxpbmciXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/common/getSiblings.js\n"); + +/***/ }), + +/***/ "./src/common/initIsotope.js": +/*!***********************************!*\ + !*** ./src/common/initIsotope.js ***! + \***********************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar initIsotope = function initIsotope() {\n var grid = document.querySelectorAll(\".gallery\");\n var iso;\n\n if (grid.length >= 1) {\n grid.forEach(function (item) {\n iso = new Isotope(item, {\n itemSelector: \".items\"\n });\n });\n }\n\n var gridMons = document.querySelectorAll(\".gallery-mons\");\n\n if (gridMons.length >= 1) {\n gridMons.forEach(function (item) {\n iso = new Isotope(item, {\n itemSelector: \".items\",\n masonry: {\n columnWidth: \".width2\"\n }\n });\n });\n }\n\n var filtersElem = document.querySelector(\".filtering\");\n\n if (filtersElem) {\n var radioButtonGroup = function radioButtonGroup(buttonGroup) {\n buttonGroup.addEventListener(\"click\", function (event) {\n if (!matchesSelector(event.target, \"span\")) {\n return;\n }\n\n buttonGroup.querySelector(\".active\").classList.remove(\"active\");\n event.target.classList.add(\"active\");\n });\n };\n\n filtersElem.addEventListener(\"click\", function (event) {\n if (!matchesSelector(event.target, \"span\")) {\n return;\n }\n\n var filterValue = event.target.getAttribute(\"data-filter\");\n filterValue = filterValue;\n iso.arrange({\n filter: filterValue\n });\n });\n var buttonGroups = document.querySelectorAll(\".filtering\");\n\n for (var i = 0, len = buttonGroups.length; i < len; i++) {\n var buttonGroup = buttonGroups[i];\n radioButtonGroup(buttonGroup);\n }\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (initIsotope);\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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YWVhIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGluaXRJc290b3BlID0gKCkgPT4ge1xyXG4gIHZhciBncmlkID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi5nYWxsZXJ5XCIpO1xyXG4gIHZhciBpc287XHJcbiAgaWYgKGdyaWQubGVuZ3RoID49IDEpIHtcclxuICAgIGdyaWQuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICBpc28gPSBuZXcgSXNvdG9wZShpdGVtLCB7XHJcbiAgICAgICAgaXRlbVNlbGVjdG9yOiBcIi5pdGVtc1wiLFxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdmFyIGdyaWRNb25zID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi5nYWxsZXJ5LW1vbnNcIik7XHJcbiAgaWYgKGdyaWRNb25zLmxlbmd0aCA+PSAxKSB7XHJcbiAgICBncmlkTW9ucy5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgIGlzbyA9IG5ldyBJc290b3BlKGl0ZW0sIHtcclxuICAgICAgICBpdGVtU2VsZWN0b3I6IFwiLml0ZW1zXCIsXHJcbiAgICAgICAgbWFzb25yeToge1xyXG4gICAgICAgICAgY29sdW1uV2lkdGg6IFwiLndpZHRoMlwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB2YXIgZmlsdGVyc0VsZW0gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLmZpbHRlcmluZ1wiKTtcclxuICBpZiAoZmlsdGVyc0VsZW0pIHtcclxuICAgIGZpbHRlcnNFbGVtLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcclxuICAgICAgaWYgKCFtYXRjaGVzU2VsZWN0b3IoZXZlbnQudGFyZ2V0LCBcInNwYW5cIikpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdmFyIGZpbHRlclZhbHVlID0gZXZlbnQudGFyZ2V0LmdldEF0dHJpYnV0ZShcImRhdGEtZmlsdGVyXCIpO1xyXG4gICAgICBmaWx0ZXJWYWx1ZSA9IGZpbHRlclZhbHVlO1xyXG4gICAgICBpc28uYXJyYW5nZSh7IGZpbHRlcjogZmlsdGVyVmFsdWUgfSk7XHJcbiAgICB9KTtcclxuICAgIHZhciBidXR0b25Hcm91cHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLmZpbHRlcmluZ1wiKTtcclxuICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBidXR0b25Hcm91cHMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgdmFyIGJ1dHRvbkdyb3VwID0gYnV0dG9uR3JvdXBzW2ldO1xyXG4gICAgICByYWRpb0J1dHRvbkdyb3VwKGJ1dHRvbkdyb3VwKTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIHJhZGlvQnV0dG9uR3JvdXAoYnV0dG9uR3JvdXApIHtcclxuICAgICAgYnV0dG9uR3JvdXAuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGZ1bmN0aW9uIChldmVudCkge1xyXG4gICAgICAgIGlmICghbWF0Y2hlc1NlbGVjdG9yKGV2ZW50LnRhcmdldCwgXCJzcGFuXCIpKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJ1dHRvbkdyb3VwLnF1ZXJ5U2VsZWN0b3IoXCIuYWN0aXZlXCIpLmNsYXNzTGlzdC5yZW1vdmUoXCJhY3RpdmVcIik7XHJcbiAgICAgICAgZXZlbnQudGFyZ2V0LmNsYXNzTGlzdC5hZGQoXCJhY3RpdmVcIik7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGluaXRJc290b3BlIl0sIm5hbWVzIjpbImluaXRJc290b3BlIiwiZ3JpZCIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvckFsbCIsImlzbyIsImxlbmd0aCIsImZvckVhY2giLCJpdGVtIiwiSXNvdG9wZSIsIml0ZW1TZWxlY3RvciIsImdyaWRNb25zIiwibWFzb25yeSIsImNvbHVtbldpZHRoIiwiZmlsdGVyc0VsZW0iLCJxdWVyeVNlbGVjdG9yIiwicmFkaW9CdXR0b25Hcm91cCIsImJ1dHRvbkdyb3VwIiwiYWRkRXZlbnRMaXN0ZW5lciIsImV2ZW50IiwibWF0Y2hlc1NlbGVjdG9yIiwidGFyZ2V0IiwiY2xhc3NMaXN0IiwicmVtb3ZlIiwiYWRkIiwiZmlsdGVyVmFsdWUiLCJnZXRBdHRyaWJ1dGUiLCJhcnJhbmdlIiwiZmlsdGVyIiwiYnV0dG9uR3JvdXBzIiwiaSIsImxlbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/common/initIsotope.js\n"); + +/***/ }), + +/***/ "./src/common/navbar.js": +/*!******************************!*\ + !*** ./src/common/navbar.js ***! + \******************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"handleDropdown\": function() { return /* binding */ handleDropdown; },\n/* harmony export */ \"handleMobileDropdown\": function() { return /* binding */ handleMobileDropdown; }\n/* harmony export */ });\n/* harmony import */ var _getSiblings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getSiblings */ \"./src/common/getSiblings.js\");\n/* module decorator */ module = __webpack_require__.hmd(module);\n\nvar handleDropdown = function handleDropdown(e) {\n (0,_getSiblings__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(e.target.parentElement).filter(function (item) {\n return item.classList.contains(\"show\");\n }).map(function (item) {\n item.classList.remove(\"show\");\n\n if (item.childNodes[0]) {\n item.childNodes[0].setAttribute(\"aria-expanded\", false);\n }\n\n if (item.childNodes[1]) {\n item.childNodes[1].classList.remove(\"show\");\n }\n });\n e.target.parentElement.classList.toggle(\"show\");\n e.target.setAttribute(\"aria-expanded\", true);\n e.target.parentElement.childNodes[1].classList.toggle(\"show\");\n};\nvar handleMobileDropdown = function handleMobileDropdown(e) {\n document.getElementById(\"navbarSupportedContent\").classList.toggle(\"show-with-trans\");\n};\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL25hdmJhci5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7QUFFTyxJQUFNQyxjQUFjLEdBQUcsU0FBakJBLGNBQWlCLENBQUNDLENBQUQsRUFBTztBQUNuQ0YsRUFBQUEsd0RBQVcsQ0FBQ0UsQ0FBQyxDQUFDQyxNQUFGLENBQVNDLGFBQVYsQ0FBWCxDQUNHQyxNQURILENBQ1UsVUFBQ0MsSUFBRDtBQUFBLFdBQVVBLElBQUksQ0FBQ0MsU0FBTCxDQUFlQyxRQUFmLENBQXdCLE1BQXhCLENBQVY7QUFBQSxHQURWLEVBRUdDLEdBRkgsQ0FFTyxVQUFDSCxJQUFELEVBQVU7QUFDYkEsSUFBQUEsSUFBSSxDQUFDQyxTQUFMLENBQWVHLE1BQWYsQ0FBc0IsTUFBdEI7O0FBQ0EsUUFBSUosSUFBSSxDQUFDSyxVQUFMLENBQWdCLENBQWhCLENBQUosRUFBd0I7QUFDdEJMLE1BQUFBLElBQUksQ0FBQ0ssVUFBTCxDQUFnQixDQUFoQixFQUFtQkMsWUFBbkIsQ0FBZ0MsZUFBaEMsRUFBaUQsS0FBakQ7QUFDRDs7QUFDRCxRQUFJTixJQUFJLENBQUNLLFVBQUwsQ0FBZ0IsQ0FBaEIsQ0FBSixFQUF3QjtBQUN0QkwsTUFBQUEsSUFBSSxDQUFDSyxVQUFMLENBQWdCLENBQWhCLEVBQW1CSixTQUFuQixDQUE2QkcsTUFBN0IsQ0FBb0MsTUFBcEM7QUFDRDtBQUNGLEdBVkg7QUFXQVIsRUFBQUEsQ0FBQyxDQUFDQyxNQUFGLENBQVNDLGFBQVQsQ0FBdUJHLFNBQXZCLENBQWlDTSxNQUFqQyxDQUF3QyxNQUF4QztBQUNBWCxFQUFBQSxDQUFDLENBQUNDLE1BQUYsQ0FBU1MsWUFBVCxDQUFzQixlQUF0QixFQUF1QyxJQUF2QztBQUNBVixFQUFBQSxDQUFDLENBQUNDLE1BQUYsQ0FBU0MsYUFBVCxDQUF1Qk8sVUFBdkIsQ0FBa0MsQ0FBbEMsRUFBcUNKLFNBQXJDLENBQStDTSxNQUEvQyxDQUFzRCxNQUF0RDtBQUNELENBZk07QUFpQkEsSUFBTUMsb0JBQW9CLEdBQUcsU0FBdkJBLG9CQUF1QixDQUFDWixDQUFELEVBQU87QUFDekNhLEVBQUFBLFFBQVEsQ0FDTEMsY0FESCxDQUNrQix3QkFEbEIsRUFFR1QsU0FGSCxDQUVhTSxNQUZiLENBRW9CLGlCQUZwQjtBQUdELENBSk0iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbW1vbi9uYXZiYXIuanM/MWU3NiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0U2libGluZ3MgZnJvbSAnLi9nZXRTaWJsaW5ncydcclxuXHJcbmV4cG9ydCBjb25zdCBoYW5kbGVEcm9wZG93biA9IChlKSA9PiB7XHJcbiAgZ2V0U2libGluZ3MoZS50YXJnZXQucGFyZW50RWxlbWVudClcclxuICAgIC5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uY2xhc3NMaXN0LmNvbnRhaW5zKFwic2hvd1wiKSlcclxuICAgIC5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgaXRlbS5jbGFzc0xpc3QucmVtb3ZlKFwic2hvd1wiKTtcclxuICAgICAgaWYgKGl0ZW0uY2hpbGROb2Rlc1swXSkge1xyXG4gICAgICAgIGl0ZW0uY2hpbGROb2Rlc1swXS5zZXRBdHRyaWJ1dGUoXCJhcmlhLWV4cGFuZGVkXCIsIGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaXRlbS5jaGlsZE5vZGVzWzFdKSB7XHJcbiAgICAgICAgaXRlbS5jaGlsZE5vZGVzWzFdLmNsYXNzTGlzdC5yZW1vdmUoXCJzaG93XCIpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICBlLnRhcmdldC5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoXCJzaG93XCIpO1xyXG4gIGUudGFyZ2V0LnNldEF0dHJpYnV0ZShcImFyaWEtZXhwYW5kZWRcIiwgdHJ1ZSk7XHJcbiAgZS50YXJnZXQucGFyZW50RWxlbWVudC5jaGlsZE5vZGVzWzFdLmNsYXNzTGlzdC50b2dnbGUoXCJzaG93XCIpO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGhhbmRsZU1vYmlsZURyb3Bkb3duID0gKGUpID0+IHtcclxuICBkb2N1bWVudFxyXG4gICAgLmdldEVsZW1lbnRCeUlkKFwibmF2YmFyU3VwcG9ydGVkQ29udGVudFwiKVxyXG4gICAgLmNsYXNzTGlzdC50b2dnbGUoXCJzaG93LXdpdGgtdHJhbnNcIik7XHJcbn07Il0sIm5hbWVzIjpbImdldFNpYmxpbmdzIiwiaGFuZGxlRHJvcGRvd24iLCJlIiwidGFyZ2V0IiwicGFyZW50RWxlbWVudCIsImZpbHRlciIsIml0ZW0iLCJjbGFzc0xpc3QiLCJjb250YWlucyIsIm1hcCIsInJlbW92ZSIsImNoaWxkTm9kZXMiLCJzZXRBdHRyaWJ1dGUiLCJ0b2dnbGUiLCJoYW5kbGVNb2JpbGVEcm9wZG93biIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/common/navbar.js\n"); + +/***/ }), + +/***/ "./src/common/removeSlashpagination.js": +/*!*********************************************!*\ + !*** ./src/common/removeSlashpagination.js ***! + \*********************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar removeSlashFromPagination = function removeSlashFromPagination() {\n if (document.querySelectorAll(\".swiper-pagination\")) {\n document.querySelectorAll(\".swiper-pagination\").forEach(function (item) {\n item.innerHTML = item.innerHTML.replace(\" / \", \"\");\n });\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (removeSlashFromPagination);\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL3JlbW92ZVNsYXNocGFnaW5hdGlvbi5qcy5qcyIsIm1hcHBpbmdzIjoiOztBQUFBLElBQU1BLHlCQUF5QixHQUFHLFNBQTVCQSx5QkFBNEIsR0FBTTtBQUN0QyxNQUFJQyxRQUFRLENBQUNDLGdCQUFULENBQTBCLG9CQUExQixDQUFKLEVBQXFEO0FBQ25ERCxJQUFBQSxRQUFRLENBQUNDLGdCQUFULENBQTBCLG9CQUExQixFQUFnREMsT0FBaEQsQ0FBd0QsVUFBQ0MsSUFBRCxFQUFVO0FBQ2hFQSxNQUFBQSxJQUFJLENBQUNDLFNBQUwsR0FBaUJELElBQUksQ0FBQ0MsU0FBTCxDQUFlQyxPQUFmLENBQXVCLEtBQXZCLEVBQThCLEVBQTlCLENBQWpCO0FBQ0QsS0FGRDtBQUdEO0FBQ0YsQ0FORDs7QUFPQSwrREFBZU4seUJBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbW1vbi9yZW1vdmVTbGFzaHBhZ2luYXRpb24uanM/YjA0OCJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCByZW1vdmVTbGFzaEZyb21QYWdpbmF0aW9uID0gKCkgPT4ge1xyXG4gIGlmIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLnN3aXBlci1wYWdpbmF0aW9uXCIpKSB7XHJcbiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLnN3aXBlci1wYWdpbmF0aW9uXCIpLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgaXRlbS5pbm5lckhUTUwgPSBpdGVtLmlubmVySFRNTC5yZXBsYWNlKFwiIC8gXCIsIFwiXCIpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59O1xyXG5leHBvcnQgZGVmYXVsdCByZW1vdmVTbGFzaEZyb21QYWdpbmF0aW9uO1xyXG4iXSwibmFtZXMiOlsicmVtb3ZlU2xhc2hGcm9tUGFnaW5hdGlvbiIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvckFsbCIsImZvckVhY2giLCJpdGVtIiwiaW5uZXJIVE1MIiwicmVwbGFjZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/common/removeSlashpagination.js\n"); + +/***/ }), + +/***/ "./src/common/teamSkillsProgress.js": +/*!******************************************!*\ + !*** ./src/common/teamSkillsProgress.js ***! + \******************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar teamSkillsProgress = function teamSkillsProgress() {\n var teamSection = document.querySelector(\".team-crv\");\n\n if (teamSection) {\n window.addEventListener(\"scroll\", function () {\n document.querySelectorAll(\".skill-progress .progres\").forEach(function (item) {\n var myVal = item.getAttribute(\"data-value\");\n\n if (window.pageYOffset > teamSection.offsetTop - 200) {\n item.style.width = myVal;\n }\n });\n });\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (teamSkillsProgress);\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL3RlYW1Ta2lsbHNQcm9ncmVzcy5qcy5qcyIsIm1hcHBpbmdzIjoiOztBQUFBLElBQU1BLGtCQUFrQixHQUFHLFNBQXJCQSxrQkFBcUIsR0FBTTtBQUMvQixNQUFJQyxXQUFXLEdBQUdDLFFBQVEsQ0FBQ0MsYUFBVCxDQUF1QixXQUF2QixDQUFsQjs7QUFDQSxNQUFJRixXQUFKLEVBQWlCO0FBQ2ZHLElBQUFBLE1BQU0sQ0FBQ0MsZ0JBQVAsQ0FBd0IsUUFBeEIsRUFBa0MsWUFBTTtBQUN0Q0gsTUFBQUEsUUFBUSxDQUFDSSxnQkFBVCxDQUEwQiwwQkFBMUIsRUFBc0RDLE9BQXRELENBQThELFVBQUNDLElBQUQsRUFBVTtBQUN0RSxZQUFJQyxLQUFLLEdBQUdELElBQUksQ0FBQ0UsWUFBTCxDQUFrQixZQUFsQixDQUFaOztBQUNBLFlBQUlOLE1BQU0sQ0FBQ08sV0FBUCxHQUFxQlYsV0FBVyxDQUFDVyxTQUFaLEdBQXdCLEdBQWpELEVBQXNEO0FBQ3BESixVQUFBQSxJQUFJLENBQUNLLEtBQUwsQ0FBV0MsS0FBWCxHQUFtQkwsS0FBbkI7QUFDRDtBQUNGLE9BTEQ7QUFNRCxLQVBEO0FBUUQ7QUFDRixDQVpEOztBQWNBLCtEQUFlVCxrQkFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tbW9uL3RlYW1Ta2lsbHNQcm9ncmVzcy5qcz8xYTlhIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHRlYW1Ta2lsbHNQcm9ncmVzcyA9ICgpID0+IHtcclxuICBsZXQgdGVhbVNlY3Rpb24gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLnRlYW0tY3J2XCIpO1xyXG4gIGlmICh0ZWFtU2VjdGlvbikge1xyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgKCkgPT4ge1xyXG4gICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLnNraWxsLXByb2dyZXNzIC5wcm9ncmVzXCIpLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgICBsZXQgbXlWYWwgPSBpdGVtLmdldEF0dHJpYnV0ZShcImRhdGEtdmFsdWVcIik7XHJcbiAgICAgICAgaWYgKHdpbmRvdy5wYWdlWU9mZnNldCA+IHRlYW1TZWN0aW9uLm9mZnNldFRvcCAtIDIwMCkge1xyXG4gICAgICAgICAgaXRlbS5zdHlsZS53aWR0aCA9IG15VmFsO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCB0ZWFtU2tpbGxzUHJvZ3Jlc3M7XHJcbiJdLCJuYW1lcyI6WyJ0ZWFtU2tpbGxzUHJvZ3Jlc3MiLCJ0ZWFtU2VjdGlvbiIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJxdWVyeVNlbGVjdG9yQWxsIiwiZm9yRWFjaCIsIml0ZW0iLCJteVZhbCIsImdldEF0dHJpYnV0ZSIsInBhZ2VZT2Zmc2V0Iiwib2Zmc2V0VG9wIiwic3R5bGUiLCJ3aWR0aCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/common/teamSkillsProgress.js\n"); + +/***/ }), + +/***/ "./src/common/thumparallax.js": +/*!************************************!*\ + !*** ./src/common/thumparallax.js ***! + \************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"thumparallax\": function() { return /* binding */ thumparallax; },\n/* harmony export */ \"thumparallaxDown\": function() { return /* binding */ thumparallaxDown; }\n/* harmony export */ });\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar thumparallax = function thumparallax() {\n var imageUp = document.getElementsByClassName(\"thumparallax\");\n\n if (imageUp) {\n new simpleParallax(imageUp, {\n delay: 1,\n scale: 1.1\n });\n }\n};\nvar thumparallaxDown = function thumparallaxDown() {\n var imageDown = document.getElementsByClassName(\"thumparallax-down\");\n\n if (imageDown) {\n new simpleParallax(imageDown, {\n orientation: \"down\",\n delay: 1,\n scale: 1.1\n });\n }\n};\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL3RodW1wYXJhbGxheC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBTyxJQUFNQSxZQUFZLEdBQUcsU0FBZkEsWUFBZSxHQUFNO0FBQ2hDLE1BQUlDLE9BQU8sR0FBR0MsUUFBUSxDQUFDQyxzQkFBVCxDQUFnQyxjQUFoQyxDQUFkOztBQUNBLE1BQUlGLE9BQUosRUFBYTtBQUNYLFFBQUlHLGNBQUosQ0FBbUJILE9BQW5CLEVBQTRCO0FBQzFCSSxNQUFBQSxLQUFLLEVBQUUsQ0FEbUI7QUFFMUJDLE1BQUFBLEtBQUssRUFBRTtBQUZtQixLQUE1QjtBQUlEO0FBQ0YsQ0FSTTtBQVNBLElBQU1DLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBbUIsR0FBTTtBQUNwQyxNQUFJQyxTQUFTLEdBQUdOLFFBQVEsQ0FBQ0Msc0JBQVQsQ0FBZ0MsbUJBQWhDLENBQWhCOztBQUNBLE1BQUlLLFNBQUosRUFBZTtBQUNiLFFBQUlKLGNBQUosQ0FBbUJJLFNBQW5CLEVBQThCO0FBQzVCQyxNQUFBQSxXQUFXLEVBQUUsTUFEZTtBQUU1QkosTUFBQUEsS0FBSyxFQUFFLENBRnFCO0FBRzVCQyxNQUFBQSxLQUFLLEVBQUU7QUFIcUIsS0FBOUI7QUFLRDtBQUNGLENBVE0iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbW1vbi90aHVtcGFyYWxsYXguanM/YjZjYyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgdGh1bXBhcmFsbGF4ID0gKCkgPT4ge1xyXG4gIHZhciBpbWFnZVVwID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcInRodW1wYXJhbGxheFwiKTtcclxuICBpZiAoaW1hZ2VVcCkge1xyXG4gICAgbmV3IHNpbXBsZVBhcmFsbGF4KGltYWdlVXAsIHtcclxuICAgICAgZGVsYXk6IDEsXHJcbiAgICAgIHNjYWxlOiAxLjEsXHJcbiAgICB9KTtcclxuICB9XHJcbn07XHJcbmV4cG9ydCBjb25zdCB0aHVtcGFyYWxsYXhEb3duID0gKCkgPT4ge1xyXG4gIHZhciBpbWFnZURvd24gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwidGh1bXBhcmFsbGF4LWRvd25cIik7XHJcbiAgaWYgKGltYWdlRG93bikge1xyXG4gICAgbmV3IHNpbXBsZVBhcmFsbGF4KGltYWdlRG93biwge1xyXG4gICAgICBvcmllbnRhdGlvbjogXCJkb3duXCIsXHJcbiAgICAgIGRlbGF5OiAxLFxyXG4gICAgICBzY2FsZTogMS4xLFxyXG4gICAgfSk7XHJcbiAgfVxyXG59O1xyXG4iXSwibmFtZXMiOlsidGh1bXBhcmFsbGF4IiwiaW1hZ2VVcCIsImRvY3VtZW50IiwiZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSIsInNpbXBsZVBhcmFsbGF4IiwiZGVsYXkiLCJzY2FsZSIsInRodW1wYXJhbGxheERvd24iLCJpbWFnZURvd24iLCJvcmllbnRhdGlvbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/common/thumparallax.js\n"); + +/***/ }), + +/***/ "./src/common/tooltipEffect.js": +/*!*************************************!*\ + !*** ./src/common/tooltipEffect.js ***! + \*************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _fadeInFadeOut__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./fadeInFadeOut */ \"./src/common/fadeInFadeOut.js\");\n/* module decorator */ module = __webpack_require__.hmd(module);\n\n\nvar tooltipEffect = function tooltipEffect() {\n var template1 = document.createElement(\"div\");\n template1.classList.add(\"div-tooltip-tit\");\n document.body.appendChild(template1);\n var template2 = document.createElement(\"div\");\n template2.classList.add(\"div-tooltip-sub\");\n document.body.appendChild(template2);\n document.querySelectorAll(\"[data-tooltip-tit]\").forEach(function (item) {\n template1 = document.querySelector(\".div-tooltip-tit\");\n item.addEventListener(\"mouseover\", function () {\n template1.innerText = item.getAttribute(\"data-tooltip-tit\");\n });\n item.addEventListener(\"mousemove\", function (e) {\n (0,_fadeInFadeOut__WEBPACK_IMPORTED_MODULE_0__.fadeIn)(template1, 800);\n template1.style.top = e.pageY + 10 + \"px\";\n template1.style.left = e.pageX + 20 + \"px\";\n template1.style.padding = \"0px 10px\";\n });\n item.addEventListener(\"mouseleave\", function () {\n (0,_fadeInFadeOut__WEBPACK_IMPORTED_MODULE_0__.fadeOut)(template1, 800);\n template1.style.padding = 0;\n });\n });\n document.querySelectorAll(\"[data-tooltip-sub]\").forEach(function (item) {\n template2 = document.querySelector(\".div-tooltip-sub\");\n item.addEventListener(\"mouseover\", function () {\n template2.innerText = item.getAttribute(\"data-tooltip-sub\");\n });\n item.addEventListener(\"mousemove\", function (e) {\n (0,_fadeInFadeOut__WEBPACK_IMPORTED_MODULE_0__.fadeIn)(template2, 800);\n template2.style.top = e.pageY - 15 + \"px\";\n template2.style.left = e.pageX + 30 + \"px\";\n template2.style.padding = \"5px 10px\";\n });\n item.addEventListener(\"mouseleave\", function () {\n (0,_fadeInFadeOut__WEBPACK_IMPORTED_MODULE_0__.fadeOut)(template2, 800);\n template2.style.padding = 0;\n });\n });\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (tooltipEffect);\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL3Rvb2x0aXBFZmZlY3QuanMuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0FBRUEsSUFBTUUsYUFBYSxHQUFHLFNBQWhCQSxhQUFnQixHQUFNO0FBQzFCLE1BQUlDLFNBQVMsR0FBR0MsUUFBUSxDQUFDQyxhQUFULENBQXVCLEtBQXZCLENBQWhCO0FBQ0FGLEVBQUFBLFNBQVMsQ0FBQ0csU0FBVixDQUFvQkMsR0FBcEIsQ0FBd0IsaUJBQXhCO0FBQ0FILEVBQUFBLFFBQVEsQ0FBQ0ksSUFBVCxDQUFjQyxXQUFkLENBQTBCTixTQUExQjtBQUNBLE1BQUlPLFNBQVMsR0FBR04sUUFBUSxDQUFDQyxhQUFULENBQXVCLEtBQXZCLENBQWhCO0FBQ0FLLEVBQUFBLFNBQVMsQ0FBQ0osU0FBVixDQUFvQkMsR0FBcEIsQ0FBd0IsaUJBQXhCO0FBQ0FILEVBQUFBLFFBQVEsQ0FBQ0ksSUFBVCxDQUFjQyxXQUFkLENBQTBCQyxTQUExQjtBQUNBTixFQUFBQSxRQUFRLENBQUNPLGdCQUFULENBQTBCLG9CQUExQixFQUFnREMsT0FBaEQsQ0FBd0QsVUFBQ0MsSUFBRCxFQUFVO0FBQ2hFVixJQUFBQSxTQUFTLEdBQUdDLFFBQVEsQ0FBQ1UsYUFBVCxDQUF1QixrQkFBdkIsQ0FBWjtBQUNBRCxJQUFBQSxJQUFJLENBQUNFLGdCQUFMLENBQXNCLFdBQXRCLEVBQW1DLFlBQU07QUFDdkNaLE1BQUFBLFNBQVMsQ0FBQ2EsU0FBVixHQUFzQkgsSUFBSSxDQUFDSSxZQUFMLENBQWtCLGtCQUFsQixDQUF0QjtBQUNELEtBRkQ7QUFHQUosSUFBQUEsSUFBSSxDQUFDRSxnQkFBTCxDQUFzQixXQUF0QixFQUFtQyxVQUFDRyxDQUFELEVBQU87QUFDeENsQixNQUFBQSxzREFBTSxDQUFDRyxTQUFELEVBQVksR0FBWixDQUFOO0FBQ0FBLE1BQUFBLFNBQVMsQ0FBQ2dCLEtBQVYsQ0FBZ0JDLEdBQWhCLEdBQXNCRixDQUFDLENBQUNHLEtBQUYsR0FBVSxFQUFWLEdBQWUsSUFBckM7QUFDQWxCLE1BQUFBLFNBQVMsQ0FBQ2dCLEtBQVYsQ0FBZ0JHLElBQWhCLEdBQXVCSixDQUFDLENBQUNLLEtBQUYsR0FBVSxFQUFWLEdBQWUsSUFBdEM7QUFDQXBCLE1BQUFBLFNBQVMsQ0FBQ2dCLEtBQVYsQ0FBZ0JLLE9BQWhCLEdBQTBCLFVBQTFCO0FBQ0QsS0FMRDtBQU1BWCxJQUFBQSxJQUFJLENBQUNFLGdCQUFMLENBQXNCLFlBQXRCLEVBQW9DLFlBQU07QUFDeENkLE1BQUFBLHVEQUFPLENBQUNFLFNBQUQsRUFBWSxHQUFaLENBQVA7QUFDQUEsTUFBQUEsU0FBUyxDQUFDZ0IsS0FBVixDQUFnQkssT0FBaEIsR0FBMEIsQ0FBMUI7QUFDRCxLQUhEO0FBSUQsR0FmRDtBQWdCQXBCLEVBQUFBLFFBQVEsQ0FBQ08sZ0JBQVQsQ0FBMEIsb0JBQTFCLEVBQWdEQyxPQUFoRCxDQUF3RCxVQUFDQyxJQUFELEVBQVU7QUFDaEVILElBQUFBLFNBQVMsR0FBR04sUUFBUSxDQUFDVSxhQUFULENBQXVCLGtCQUF2QixDQUFaO0FBQ0FELElBQUFBLElBQUksQ0FBQ0UsZ0JBQUwsQ0FBc0IsV0FBdEIsRUFBbUMsWUFBTTtBQUN2Q0wsTUFBQUEsU0FBUyxDQUFDTSxTQUFWLEdBQXNCSCxJQUFJLENBQUNJLFlBQUwsQ0FBa0Isa0JBQWxCLENBQXRCO0FBQ0QsS0FGRDtBQUlBSixJQUFBQSxJQUFJLENBQUNFLGdCQUFMLENBQXNCLFdBQXRCLEVBQW1DLFVBQUNHLENBQUQsRUFBTztBQUN4Q2xCLE1BQUFBLHNEQUFNLENBQUNVLFNBQUQsRUFBWSxHQUFaLENBQU47QUFDQUEsTUFBQUEsU0FBUyxDQUFDUyxLQUFWLENBQWdCQyxHQUFoQixHQUFzQkYsQ0FBQyxDQUFDRyxLQUFGLEdBQVUsRUFBVixHQUFlLElBQXJDO0FBQ0FYLE1BQUFBLFNBQVMsQ0FBQ1MsS0FBVixDQUFnQkcsSUFBaEIsR0FBdUJKLENBQUMsQ0FBQ0ssS0FBRixHQUFVLEVBQVYsR0FBZSxJQUF0QztBQUNBYixNQUFBQSxTQUFTLENBQUNTLEtBQVYsQ0FBZ0JLLE9BQWhCLEdBQTBCLFVBQTFCO0FBQ0QsS0FMRDtBQU1BWCxJQUFBQSxJQUFJLENBQUNFLGdCQUFMLENBQXNCLFlBQXRCLEVBQW9DLFlBQU07QUFDeENkLE1BQUFBLHVEQUFPLENBQUNTLFNBQUQsRUFBWSxHQUFaLENBQVA7QUFDQUEsTUFBQUEsU0FBUyxDQUFDUyxLQUFWLENBQWdCSyxPQUFoQixHQUEwQixDQUExQjtBQUNELEtBSEQ7QUFJRCxHQWhCRDtBQWlCRCxDQXhDRDs7QUF5Q0EsK0RBQWV0QixhQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21tb24vdG9vbHRpcEVmZmVjdC5qcz84ZjZjIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZhZGVJbiwgZmFkZU91dCB9IGZyb20gXCIuL2ZhZGVJbkZhZGVPdXRcIjtcclxuXHJcbmNvbnN0IHRvb2x0aXBFZmZlY3QgPSAoKSA9PiB7XHJcbiAgbGV0IHRlbXBsYXRlMSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XHJcbiAgdGVtcGxhdGUxLmNsYXNzTGlzdC5hZGQoXCJkaXYtdG9vbHRpcC10aXRcIik7XHJcbiAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0ZW1wbGF0ZTEpO1xyXG4gIGxldCB0ZW1wbGF0ZTIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xyXG4gIHRlbXBsYXRlMi5jbGFzc0xpc3QuYWRkKFwiZGl2LXRvb2x0aXAtc3ViXCIpO1xyXG4gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGVtcGxhdGUyKTtcclxuICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiW2RhdGEtdG9vbHRpcC10aXRdXCIpLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgIHRlbXBsYXRlMSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIuZGl2LXRvb2x0aXAtdGl0XCIpO1xyXG4gICAgaXRlbS5hZGRFdmVudExpc3RlbmVyKFwibW91c2VvdmVyXCIsICgpID0+IHtcclxuICAgICAgdGVtcGxhdGUxLmlubmVyVGV4dCA9IGl0ZW0uZ2V0QXR0cmlidXRlKFwiZGF0YS10b29sdGlwLXRpdFwiKTtcclxuICAgIH0pO1xyXG4gICAgaXRlbS5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsIChlKSA9PiB7XHJcbiAgICAgIGZhZGVJbih0ZW1wbGF0ZTEsIDgwMCk7XHJcbiAgICAgIHRlbXBsYXRlMS5zdHlsZS50b3AgPSBlLnBhZ2VZICsgMTAgKyBcInB4XCI7XHJcbiAgICAgIHRlbXBsYXRlMS5zdHlsZS5sZWZ0ID0gZS5wYWdlWCArIDIwICsgXCJweFwiO1xyXG4gICAgICB0ZW1wbGF0ZTEuc3R5bGUucGFkZGluZyA9IFwiMHB4IDEwcHhcIjtcclxuICAgIH0pO1xyXG4gICAgaXRlbS5hZGRFdmVudExpc3RlbmVyKFwibW91c2VsZWF2ZVwiLCAoKSA9PiB7XHJcbiAgICAgIGZhZGVPdXQodGVtcGxhdGUxLCA4MDApO1xyXG4gICAgICB0ZW1wbGF0ZTEuc3R5bGUucGFkZGluZyA9IDA7XHJcbiAgICB9KTtcclxuICB9KTtcclxuICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiW2RhdGEtdG9vbHRpcC1zdWJdXCIpLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgIHRlbXBsYXRlMiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIuZGl2LXRvb2x0aXAtc3ViXCIpO1xyXG4gICAgaXRlbS5hZGRFdmVudExpc3RlbmVyKFwibW91c2VvdmVyXCIsICgpID0+IHtcclxuICAgICAgdGVtcGxhdGUyLmlubmVyVGV4dCA9IGl0ZW0uZ2V0QXR0cmlidXRlKFwiZGF0YS10b29sdGlwLXN1YlwiKTtcclxuICAgIH0pO1xyXG5cclxuICAgIGl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLCAoZSkgPT4ge1xyXG4gICAgICBmYWRlSW4odGVtcGxhdGUyLCA4MDApO1xyXG4gICAgICB0ZW1wbGF0ZTIuc3R5bGUudG9wID0gZS5wYWdlWSAtIDE1ICsgXCJweFwiO1xyXG4gICAgICB0ZW1wbGF0ZTIuc3R5bGUubGVmdCA9IGUucGFnZVggKyAzMCArIFwicHhcIjtcclxuICAgICAgdGVtcGxhdGUyLnN0eWxlLnBhZGRpbmcgPSBcIjVweCAxMHB4XCI7XHJcbiAgICB9KTtcclxuICAgIGl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIiwgKCkgPT4ge1xyXG4gICAgICBmYWRlT3V0KHRlbXBsYXRlMiwgODAwKTtcclxuICAgICAgdGVtcGxhdGUyLnN0eWxlLnBhZGRpbmcgPSAwO1xyXG4gICAgfSk7XHJcbiAgfSk7XHJcbn07XHJcbmV4cG9ydCBkZWZhdWx0IHRvb2x0aXBFZmZlY3Q7XHJcbiJdLCJuYW1lcyI6WyJmYWRlSW4iLCJmYWRlT3V0IiwidG9vbHRpcEVmZmVjdCIsInRlbXBsYXRlMSIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTGlzdCIsImFkZCIsImJvZHkiLCJhcHBlbmRDaGlsZCIsInRlbXBsYXRlMiIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJmb3JFYWNoIiwiaXRlbSIsInF1ZXJ5U2VsZWN0b3IiLCJhZGRFdmVudExpc3RlbmVyIiwiaW5uZXJUZXh0IiwiZ2V0QXR0cmlidXRlIiwiZSIsInN0eWxlIiwidG9wIiwicGFnZVkiLCJsZWZ0IiwicGFnZVgiLCJwYWRkaW5nIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/common/tooltipEffect.js\n"); + +/***/ }), + +/***/ "./src/components/About-us3/about-us3.jsx": +/*!************************************************!*\ + !*** ./src/components/About-us3/about-us3.jsx ***! + \************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _Split__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Split */ \"./src/components/Split/index.jsx\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _data_sections_about_us3_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../data/sections/about-us3.json */ \"./src/data/sections/about-us3.json\");\n/* harmony import */ var _common_thumparallax__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../common/thumparallax */ \"./src/common/thumparallax.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\About-us3\\\\about-us3.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\n\nvar AboutUs3 = function AboutUs3() {\n _s();\n\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n setTimeout(function () {\n (0,_common_thumparallax__WEBPACK_IMPORTED_MODULE_4__.thumparallax)();\n (0,_common_thumparallax__WEBPACK_IMPORTED_MODULE_4__.thumparallaxDown)();\n }, 1000);\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"section\", {\n className: \"agency section-padding position-re\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"col-lg-7\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"imgsec md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"imgone big-bord wow fadeInDown\",\n \"data-wow-delay\": \".8s\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"img\", {\n className: \"thumparallax-down\",\n src: _data_sections_about_us3_json__WEBPACK_IMPORTED_MODULE_3__.image1,\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"exp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"h2\", {\n className: \"nmb-font\",\n children: _data_sections_about_us3_json__WEBPACK_IMPORTED_MODULE_3__.exp.nmb\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"h6\", {\n children: _data_sections_about_us3_json__WEBPACK_IMPORTED_MODULE_3__.exp.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 23\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"item\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"imgtwo big-bord wow fadeInUp\",\n \"data-wow-delay\": \".6s\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"img\", {\n className: \"thumparallax\",\n src: _data_sections_about_us3_json__WEBPACK_IMPORTED_MODULE_3__.image2,\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 21\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"col-lg-5 valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"content\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(_Split__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"h4\", {\n className: \"wow words chars splitting\",\n \"data-splitting\": true,\n children: [_data_sections_about_us3_json__WEBPACK_IMPORTED_MODULE_3__.title.first, \" \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"br\", {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 61,\n columnNumber: 46\n }, _this), \" \", _data_sections_about_us3_json__WEBPACK_IMPORTED_MODULE_3__.title.second]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 60,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 59,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(_Split__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"p\", {\n className: \"wow txt words chars splitting\",\n \"data-splitting\": true,\n children: [_data_sections_about_us3_json__WEBPACK_IMPORTED_MODULE_3__.content.first, \" \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"br\", {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 48\n }, _this), _data_sections_about_us3_json__WEBPACK_IMPORTED_MODULE_3__.content.second]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/about\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"a\", {\n className: \"butn bord curve mt-40 wow fadeInUp\",\n \"data-wow-delay\": \".8s\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"span\", {\n children: _data_sections_about_us3_json__WEBPACK_IMPORTED_MODULE_3__.smallTitle\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"br\", {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 78,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"line bottom right\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, _this);\n};\n\n_s(AboutUs3, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = AboutUs3;\n/* harmony default export */ __webpack_exports__[\"default\"] = (AboutUs3);\n\nvar _c;\n\n$RefreshReg$(_c, \"AboutUs3\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9BYm91dC11czMvYWJvdXQtdXMzLmpzeC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUVBLElBQU1NLFFBQVEsR0FBRyxTQUFYQSxRQUFXLEdBQU07QUFBQTs7QUFDckJOLEVBQUFBLHNEQUFBLENBQWdCLFlBQU07QUFDcEJRLElBQUFBLFVBQVUsQ0FBQyxZQUFNO0FBQ2ZKLE1BQUFBLGtFQUFZO0FBQ1pDLE1BQUFBLHNFQUFnQjtBQUNqQixLQUhTLEVBR1AsSUFITyxDQUFWO0FBSUQsR0FMRCxFQUtHLEVBTEg7QUFNQSxzQkFDRTtBQUFTLGFBQVMsRUFBQyxvQ0FBbkI7QUFBQSw0QkFDRTtBQUFLLGVBQVMsRUFBQyxXQUFmO0FBQUEsNkJBQ0U7QUFBSyxpQkFBUyxFQUFDLEtBQWY7QUFBQSxnQ0FDRTtBQUFLLG1CQUFTLEVBQUMsVUFBZjtBQUFBLGlDQUNFO0FBQUsscUJBQVMsRUFBQyxnQkFBZjtBQUFBLG1DQUNFO0FBQUssdUJBQVMsRUFBQyxLQUFmO0FBQUEsc0NBQ0U7QUFBSyx5QkFBUyxFQUFDLFVBQWY7QUFBQSx1Q0FDRTtBQUFLLDJCQUFTLEVBQUMsTUFBZjtBQUFBLDBDQUNFO0FBQ0UsNkJBQVMsRUFBQyxnQ0FEWjtBQUVFLHNDQUFlLEtBRmpCO0FBQUEsMkNBSUU7QUFDRSwrQkFBUyxFQUFDLG1CQURaO0FBRUUseUJBQUcsRUFBRUYsaUVBRlA7QUFHRSx5QkFBRyxFQUFDO0FBSE47QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUpGO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBREYsZUFXRTtBQUFLLDZCQUFTLEVBQUMsS0FBZjtBQUFBLDRDQUNFO0FBQUksK0JBQVMsRUFBQyxVQUFkO0FBQUEsZ0NBQTBCQSxrRUFBb0JRO0FBQTlDO0FBQUE7QUFBQTtBQUFBO0FBQUEsNkJBREYsZUFFRTtBQUFBLGdDQUFLUixtRUFBcUJTO0FBQTFCO0FBQUE7QUFBQTtBQUFBO0FBQUEsNkJBRkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLDJCQVhGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBREYsZUFtQkU7QUFBSyx5QkFBUyxFQUFDLFVBQWY7QUFBQSx1Q0FDRTtBQUFLLDJCQUFTLEVBQUMsTUFBZjtBQUFBLHlDQUNFO0FBQ0UsNkJBQVMsRUFBQyw4QkFEWjtBQUVFLHNDQUFlLEtBRmpCO0FBQUEsMkNBSUU7QUFDRSwrQkFBUyxFQUFDLGNBRFo7QUFFRSx5QkFBRyxFQUFFVCxpRUFGUDtBQUdFLHlCQUFHLEVBQUM7QUFITjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQW5CRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFERixlQXVDRTtBQUFLLG1CQUFTLEVBQUMsaUJBQWY7QUFBQSxpQ0FDRTtBQUFLLHFCQUFTLEVBQUMsU0FBZjtBQUFBLG9DQUNFLDhEQUFDLDhDQUFEO0FBQUEscUNBQ0U7QUFBSSx5QkFBUyxFQUFDLDJCQUFkO0FBQTBDLHNDQUExQztBQUFBLDJCQUNHQSxzRUFESCxvQkFDNkI7QUFBQTtBQUFBO0FBQUE7QUFBQSx5QkFEN0IsT0FDcUNBLHVFQURyQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQURGLGVBTUUsOERBQUMsOENBQUQ7QUFBQSxxQ0FDRTtBQUFHLHlCQUFTLEVBQUMsK0JBQWI7QUFBNkMsc0NBQTdDO0FBQUEsMkJBQ0dBLHdFQURILG9CQUMrQjtBQUFBO0FBQUE7QUFBQTtBQUFBLHlCQUQvQixFQUVHQSx5RUFGSDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQU5GLGVBWUUsOERBQUMsa0RBQUQ7QUFBTSxrQkFBSSxVQUFWO0FBQUEscUNBQ0U7QUFDRSx5QkFBUyxFQUFDLG9DQURaO0FBRUUsa0NBQWUsS0FGakI7QUFBQSx1Q0FJRTtBQUFBLDRCQUFPQSxxRUFBdUJlO0FBQTlCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFKRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxxQkFaRixlQW9CRTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQXBCRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQXZDRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBREYsZUFtRUU7QUFBSyxlQUFTLEVBQUM7QUFBZjtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBbkVGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxXQURGO0FBdUVELENBOUVEOztHQUFNWjs7S0FBQUE7QUFnRk4sK0RBQWVBLFFBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbXBvbmVudHMvQWJvdXQtdXMzL2Fib3V0LXVzMy5qc3g/OGQ1OSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAbmV4dC9uZXh0L25vLWltZy1lbGVtZW50ICovXHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IFNwbGl0IGZyb20gXCIuLi9TcGxpdFwiO1xyXG5pbXBvcnQgTGluayBmcm9tIFwibmV4dC9saW5rXCI7XHJcbmltcG9ydCBBYm91dFVzM2RhdGUgZnJvbSBcIi4uLy4uL2RhdGEvc2VjdGlvbnMvYWJvdXQtdXMzLmpzb25cIjtcclxuaW1wb3J0IHsgdGh1bXBhcmFsbGF4LCB0aHVtcGFyYWxsYXhEb3duIH0gZnJvbSBcIi4uLy4uL2NvbW1vbi90aHVtcGFyYWxsYXhcIjtcclxuXHJcbmNvbnN0IEFib3V0VXMzID0gKCkgPT4ge1xyXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGh1bXBhcmFsbGF4KCk7XHJcbiAgICAgIHRodW1wYXJhbGxheERvd24oKTtcclxuICAgIH0sIDEwMDApO1xyXG4gIH0sIFtdKTtcclxuICByZXR1cm4gKFxyXG4gICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwiYWdlbmN5IHNlY3Rpb24tcGFkZGluZyBwb3NpdGlvbi1yZVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy03XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nc2VjIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJpbWdvbmUgYmlnLWJvcmQgd293IGZhZGVJbkRvd25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgZGF0YS13b3ctZGVsYXk9XCIuOHNcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGh1bXBhcmFsbGF4LWRvd25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzcmM9e0Fib3V0VXMzZGF0ZS5pbWFnZTF9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZXhwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3NOYW1lPVwibm1iLWZvbnRcIj57QWJvdXRVczNkYXRlLmV4cC5ubWJ9PC9oMj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxoNj57QWJvdXRVczNkYXRlLmV4cC5uYW1lfTwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImltZ3R3byBiaWctYm9yZCB3b3cgZmFkZUluVXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgZGF0YS13b3ctZGVsYXk9XCIuNnNcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGh1bXBhcmFsbGF4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3JjPXtBYm91dFVzM2RhdGUuaW1hZ2UyfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTUgdmFsaWduXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGVudFwiPlxyXG4gICAgICAgICAgICAgIDxTcGxpdD5cclxuICAgICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJ3b3cgd29yZHMgY2hhcnMgc3BsaXR0aW5nXCIgZGF0YS1zcGxpdHRpbmc+XHJcbiAgICAgICAgICAgICAgICAgIHtBYm91dFVzM2RhdGUudGl0bGUuZmlyc3R9IDxiciAvPiB7QWJvdXRVczNkYXRlLnRpdGxlLnNlY29uZH1cclxuICAgICAgICAgICAgICAgIDwvaDQ+XHJcbiAgICAgICAgICAgICAgPC9TcGxpdD5cclxuICAgICAgICAgICAgICA8U3BsaXQ+XHJcbiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ3b3cgdHh0IHdvcmRzIGNoYXJzIHNwbGl0dGluZ1wiIGRhdGEtc3BsaXR0aW5nPlxyXG4gICAgICAgICAgICAgICAgICB7QWJvdXRVczNkYXRlLmNvbnRlbnQuZmlyc3R9IDxiciAvPlxyXG4gICAgICAgICAgICAgICAgICB7QWJvdXRVczNkYXRlLmNvbnRlbnQuc2Vjb25kfVxyXG4gICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgIDwvU3BsaXQ+XHJcbiAgICAgICAgICAgICAgPExpbmsgaHJlZj17YC9hYm91dGB9PlxyXG4gICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYnV0biBib3JkIGN1cnZlIG10LTQwIHdvdyBmYWRlSW5VcFwiXHJcbiAgICAgICAgICAgICAgICAgIGRhdGEtd293LWRlbGF5PVwiLjhzXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4+e0Fib3V0VXMzZGF0ZS5zbWFsbFRpdGxlfTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgPGJyIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImxpbmUgYm90dG9tIHJpZ2h0XCI+PC9kaXY+XHJcbiAgICA8L3NlY3Rpb24+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IEFib3V0VXMzO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJTcGxpdCIsIkxpbmsiLCJBYm91dFVzM2RhdGUiLCJ0aHVtcGFyYWxsYXgiLCJ0aHVtcGFyYWxsYXhEb3duIiwiQWJvdXRVczMiLCJ1c2VFZmZlY3QiLCJzZXRUaW1lb3V0IiwiaW1hZ2UxIiwiZXhwIiwibm1iIiwibmFtZSIsImltYWdlMiIsInRpdGxlIiwiZmlyc3QiLCJzZWNvbmQiLCJjb250ZW50Iiwic21hbGxUaXRsZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/About-us3/about-us3.jsx\n"); + +/***/ }), + +/***/ "./src/components/Call-to-action/call-to-action.jsx": +/*!**********************************************************!*\ + !*** ./src/components/Call-to-action/call-to-action.jsx ***! + \**********************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _Split__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Split */ \"./src/components/Split/index.jsx\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Call-to-action\\\\call-to-action.jsx\",\n _this = undefined;\n\n\n\n\n\n\nvar CallToAction = function CallToAction(_ref) {\n var img = _ref.img;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"section\", {\n className: \"call-action section-padding sub-bg bg-img\",\n style: {\n backgroundImage: \"url(\".concat(img ? img : \"/img/patrn.svg\", \")\")\n },\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-md-8 col-lg-9\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"content sm-mb30\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(_Split__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n className: \"wow words chars splitting\",\n \"data-splitting\": true,\n children: \"Let\\u2019s Talk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h2\", {\n className: \"wow words chars splitting\",\n \"data-splitting\": true,\n children: [\"about your \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"br\", {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 30\n }, _this), \" \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"b\", {\n className: \"back-color\",\n children: \"next project\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 37\n }, _this), \".\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-md-4 col-lg-3 valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/contact/contact-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n className: \"butn bord curve wow fadeInUp\",\n \"data-wow-delay\": \".5s\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: \"Get In Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 7,\n columnNumber: 5\n }, _this);\n};\n\n_c = CallToAction;\n/* harmony default export */ __webpack_exports__[\"default\"] = (CallToAction);\n\nvar _c;\n\n$RefreshReg$(_c, \"CallToAction\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9DYWxsLXRvLWFjdGlvbi9jYWxsLXRvLWFjdGlvbi5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBOzs7QUFFQSxJQUFNRyxZQUFZLEdBQUcsU0FBZkEsWUFBZSxPQUFhO0FBQUEsTUFBVkMsR0FBVSxRQUFWQSxHQUFVO0FBQ2hDLHNCQUNFO0FBQ0UsYUFBUyxFQUFDLDJDQURaO0FBRUUsU0FBSyxFQUFFO0FBQUVDLE1BQUFBLGVBQWUsZ0JBQVNELEdBQUcsR0FBR0EsR0FBSCxHQUFTLGdCQUFyQjtBQUFqQixLQUZUO0FBQUEsMkJBSUU7QUFBSyxlQUFTLEVBQUMsV0FBZjtBQUFBLDZCQUNFO0FBQUssaUJBQVMsRUFBQyxLQUFmO0FBQUEsZ0NBQ0U7QUFBSyxtQkFBUyxFQUFDLG1CQUFmO0FBQUEsaUNBQ0U7QUFBSyxxQkFBUyxFQUFDLGlCQUFmO0FBQUEsbUNBQ0UsOERBQUMsOENBQUQ7QUFBQSxzQ0FDRTtBQUFJLHlCQUFTLEVBQUMsMkJBQWQ7QUFBMEMsc0NBQTFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQURGLGVBSUU7QUFBSSx5QkFBUyxFQUFDLDJCQUFkO0FBQTBDLHNDQUExQztBQUFBLHVEQUNhO0FBQUE7QUFBQTtBQUFBO0FBQUEseUJBRGIsb0JBQ29CO0FBQUcsMkJBQVMsRUFBQyxZQUFiO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHlCQURwQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBSkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBREYsZUFjRTtBQUFLLG1CQUFTLEVBQUMsMEJBQWY7QUFBQSxpQ0FDRSw4REFBQyxrREFBRDtBQUFNLGdCQUFJLDBCQUFWO0FBQUEsbUNBQ0U7QUFBRyx1QkFBUyxFQUFDLDhCQUFiO0FBQTRDLGdDQUFlLEtBQTNEO0FBQUEscUNBQ0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBZEY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUpGO0FBQUE7QUFBQTtBQUFBO0FBQUEsV0FERjtBQStCRCxDQWhDRDs7S0FBTUQ7QUFrQ04sK0RBQWVBLFlBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbXBvbmVudHMvQ2FsbC10by1hY3Rpb24vY2FsbC10by1hY3Rpb24uanN4PzFmOTkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgU3BsaXQgZnJvbSBcIi4uL1NwbGl0XCI7XHJcbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcclxuXHJcbmNvbnN0IENhbGxUb0FjdGlvbiA9ICh7IGltZyB9KSA9PiB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uXHJcbiAgICAgIGNsYXNzTmFtZT1cImNhbGwtYWN0aW9uIHNlY3Rpb24tcGFkZGluZyBzdWItYmcgYmctaW1nXCJcclxuICAgICAgc3R5bGU9e3sgYmFja2dyb3VuZEltYWdlOiBgdXJsKCR7aW1nID8gaW1nIDogXCIvaW1nL3BhdHJuLnN2Z1wifSlgIH19XHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLW1kLTggY29sLWxnLTlcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250ZW50IHNtLW1iMzBcIj5cclxuICAgICAgICAgICAgICA8U3BsaXQ+XHJcbiAgICAgICAgICAgICAgICA8aDYgY2xhc3NOYW1lPVwid293IHdvcmRzIGNoYXJzIHNwbGl0dGluZ1wiIGRhdGEtc3BsaXR0aW5nPlxyXG4gICAgICAgICAgICAgICAgICBMZXTigJlzIFRhbGtcclxuICAgICAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgICAgICA8aDIgY2xhc3NOYW1lPVwid293IHdvcmRzIGNoYXJzIHNwbGl0dGluZ1wiIGRhdGEtc3BsaXR0aW5nPlxyXG4gICAgICAgICAgICAgICAgICBhYm91dCB5b3VyIDxiciAvPiA8YiBjbGFzc05hbWU9XCJiYWNrLWNvbG9yXCI+bmV4dCBwcm9qZWN0PC9iPi5cclxuICAgICAgICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICAgICAgPC9TcGxpdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1tZC00IGNvbC1sZy0zIHZhbGlnblwiPlxyXG4gICAgICAgICAgICA8TGluayBocmVmPXtgL2NvbnRhY3QvY29udGFjdC1saWdodGB9PlxyXG4gICAgICAgICAgICAgIDxhIGNsYXNzTmFtZT1cImJ1dG4gYm9yZCBjdXJ2ZSB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi41c1wiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+R2V0IEluIFRvdWNoPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBDYWxsVG9BY3Rpb247XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIlNwbGl0IiwiTGluayIsIkNhbGxUb0FjdGlvbiIsImltZyIsImJhY2tncm91bmRJbWFnZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Call-to-action/call-to-action.jsx\n"); + +/***/ }), + +/***/ "./src/components/Footer/footer.jsx": +/*!******************************************!*\ + !*** ./src/components/Footer/footer.jsx ***! + \******************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _data_app_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../data/app.json */ \"./src/data/app.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Footer\\\\footer.jsx\",\n _this = undefined;\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\nvar Footer = function Footer(_ref) {\n var hideBGCOLOR = _ref.hideBGCOLOR;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"footer\", {\n className: \"\".concat(!hideBGCOLOR ? \"sub-bg\" : \"\"),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item md-mb50\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"title\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h5\", {\n children: \"Contact Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"ul\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-map-marker\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Officeal Address\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"Baghdad Street, Al Dana area, Abu Dhabi, United Arab Emirates\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-mail\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Email Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"hello@businesshub.abudhabi\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-call\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Call Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"+971 26340404\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"logo\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.footerLogo,\n style: {\n width: \"150px\"\n },\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"social\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"https://www.facebook.com/profile.php?id=100057392223857 \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-facebook-f\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"https://www.linkedin.com/company/business-hub-international-investment\\r\\n\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-linkedin\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"https://www.instagram.com/businesshubi/?igsh=MTJ3ejZneWdmbTM3bQ%3D%3D \\r\\n\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-instagram\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"copy-right\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"\\xA9 2024, 2024 Business HUB international investment - All Rights Reserved.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 5\n }, _this);\n};\n\n_c = Footer;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Footer);\n\nvar _c;\n\n$RefreshReg$(_c, \"Footer\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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LG9CQUFJLEVBQUMsNEVBRFA7QUFBQSx1Q0FJRTtBQUFHLDJCQUFTLEVBQUM7QUFBYjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSkY7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFWRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBUkYsZUF5QkU7QUFBSyx1QkFBUyxFQUFDLFlBQWY7QUFBQSxxQ0FDRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBekJGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBbkNGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBREY7QUE0RUQsQ0E3RUQ7O0tBQU1IO0FBK0VOLCtEQUFlQSxNQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL0Zvb3Rlci9mb290ZXIuanN4P2YzOTQiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcclxuaW1wb3J0IGFwcERhdGEgZnJvbSBcIi4uLy4uL2RhdGEvYXBwLmpzb25cIjtcclxuXHJcbmNvbnN0IEZvb3RlciA9ICh7IGhpZGVCR0NPTE9SIH0pID0+IHtcclxuICByZXR1cm4gKFxyXG4gICAgPGZvb3RlciBjbGFzc05hbWU9e2AkeyFoaWRlQkdDT0xPUiA/IFwic3ViLWJnXCIgOiBcIlwifWB9PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy00XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgPGg1PkNvbnRhY3QgVXM8L2g1PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDx1bD5cclxuICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvbiBwZS03cy1tYXAtbWFya2VyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+T2ZmaWNlYWwgQWRkcmVzczwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICBCYWdoZGFkIFN0cmVldCwgQWwgRGFuYSBhcmVhLCBBYnUgRGhhYmksIFVuaXRlZCBBcmFiXHJcbiAgICAgICAgICAgICAgICAgICAgICBFbWlyYXRlc1xyXG4gICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJpY29uIHBlLTdzLW1haWxcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoNj5FbWFpbCBVczwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+aGVsbG9AYnVzaW5lc3NodWIuYWJ1ZGhhYmk8L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvbiBwZS03cy1jYWxsXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+Q2FsbCBVczwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+Kzk3MSAyNjM0MDQwNDwvcD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctNFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxvZ29cIj5cclxuICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgc3JjPXthcHBEYXRhLmZvb3RlckxvZ299XHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IHdpZHRoOiBcIjE1MHB4XCIgfX1cclxuICAgICAgICAgICAgICAgICAgYWx0PVwiXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzb2NpYWxcIj5cclxuICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJodHRwczovL3d3dy5mYWNlYm9vay5jb20vcHJvZmlsZS5waHA/aWQ9MTAwMDU3MzkyMjIzODU3IFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYWIgZmEtZmFjZWJvb2stZlwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL3d3dy5saW5rZWRpbi5jb20vY29tcGFueS9idXNpbmVzcy1odWItaW50ZXJuYXRpb25hbC1pbnZlc3RtZW50XHJcblwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhYiBmYS1saW5rZWRpblwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL3d3dy5pbnN0YWdyYW0uY29tL2J1c2luZXNzaHViaS8/aWdzaD1NVEozZWpabmVXZG1iVE0zYlElM0QlM0QgXHJcblwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhYiBmYS1pbnN0YWdyYW1cIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb3B5LXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgwqkgMjAyNCwgMjAyNCBCdXNpbmVzcyBIVUIgaW50ZXJuYXRpb25hbCBpbnZlc3RtZW50IC0gQWxsXHJcbiAgICAgICAgICAgICAgICAgIFJpZ2h0cyBSZXNlcnZlZC5cclxuICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Zvb3Rlcj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgRm9vdGVyO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJMaW5rIiwiYXBwRGF0YSIsIkZvb3RlciIsImhpZGVCR0NPTE9SIiwiZm9vdGVyTG9nbyIsIndpZHRoIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Footer/footer.jsx\n"); + +/***/ }), + +/***/ "./src/components/Full-testimonials/full-testimonials.jsx": +/*!****************************************************************!*\ + !*** ./src/components/Full-testimonials/full-testimonials.jsx ***! + \****************************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/classCallCheck */ \"./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/createClass */ \"./node_modules/@babel/runtime/helpers/esm/createClass.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized */ \"./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/inherits */ \"./node_modules/@babel/runtime/helpers/esm/inherits.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn */ \"./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf */ \"./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var react_slick__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react-slick */ \"./node_modules/react-slick/lib/index.js\");\n/* harmony import */ var slick_carousel_slick_slick_css__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! slick-carousel/slick/slick.css */ \"./node_modules/slick-carousel/slick/slick.css\");\n/* harmony import */ var slick_carousel_slick_slick_css__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(slick_carousel_slick_slick_css__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var slick_carousel_slick_slick_theme_css__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! slick-carousel/slick/slick-theme.css */ \"./node_modules/slick-carousel/slick/slick-theme.css\");\n/* harmony import */ var slick_carousel_slick_slick_theme_css__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(slick_carousel_slick_slick_theme_css__WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__);\n/* module decorator */ module = __webpack_require__.hmd(module);\n\n\n\n\n\n\n\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Full-testimonials\\\\full-testimonials.jsx\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nvar FullTestimonials = /*#__PURE__*/function (_React$Component) {\n (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(FullTestimonials, _React$Component);\n\n var _super = _createSuper(FullTestimonials);\n\n function FullTestimonials(props) {\n var _this;\n\n (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, FullTestimonials);\n\n _this = _super.call(this, props);\n\n (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_6__[\"default\"])((0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_this), \"renderArrows\", function () {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"arrows\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"container\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n onClick: function onClick() {\n return _this.slider.slickNext();\n },\n className: \"next cursor-pointer\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"span\", {\n className: \"pe-7s-angle-right\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 13\n }, (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_this))\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 11\n }, (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_this)), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n onClick: function onClick() {\n return _this.slider.slickPrev();\n },\n className: \"prev cursor-pointer\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"span\", {\n className: \"pe-7s-angle-left\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 13\n }, (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_this))\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 11\n }, (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_this))]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 9\n }, (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_this))\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 7\n }, (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_this));\n });\n\n return _this;\n }\n\n (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(FullTestimonials, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"section\", {\n className: \"testimonials \".concat(this.props.withIMG ? \"section-padding bg-img\" : this.props.withCOLOR ? \"section-padding back-color\" : this.props.noPadding ? \"\" : \"section-padding\", \" \").concat(this.props.classText ? this.props.classText : \"\"),\n style: {\n backgroundImage: \"\".concat(this.props.withIMG ? \"url(/img/testim-img.jpg)\" : \"none\")\n },\n children: [this.props.showHead && /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Testimonials\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 19\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: \"We love our clients from all over the world.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 51,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"container-fluid position-re\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"row wow fadeInUp\",\n \"data-wow-delay\": \".5s\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"col-lg-12\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(react_slick__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: \"slic-item\",\n ref: function ref(c) {\n return _this2.slider = c;\n },\n dots: false,\n infinite: true,\n arrows: true,\n centerMode: true,\n autoplay: true,\n rows: 1,\n slidesToScroll: 1,\n slidesToShow: 3,\n responsive: [{\n breakpoint: 1024,\n settings: {\n slidesToShow: 1,\n centerMode: false\n }\n }, {\n breakpoint: 767,\n settings: {\n slidesToShow: 1,\n centerMode: false\n }\n }, {\n breakpoint: 480,\n settings: {\n slidesToShow: 1,\n centerMode: false\n }\n }],\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"info valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"author\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"img\", {\n src: \"/img/clients/1.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 27\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 25\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"h6\", {\n className: \"author-name color-font\",\n children: \"Alex Regelman\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 25\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"span\", {\n className: \"author-details\",\n children: \"Co-founder, Colabrio\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 25\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 108,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 107,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 106,\n columnNumber: 19\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"p\", {\n children: \"I would highly recommend Vie Digital. I worked with the team on an animation for our \\u2018Click & Collect\\u2019 service.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 121,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 105,\n columnNumber: 17\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"info valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"author\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"img\", {\n src: \"/img/clients/1.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 27\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 25\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"h6\", {\n className: \"author-name color-font\",\n children: \"Alex Regelman\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 133,\n columnNumber: 25\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"span\", {\n className: \"author-details\",\n children: \"Co-founder, Colabrio\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 25\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 19\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"p\", {\n children: \"I would highly recommend Vie Digital. I worked with the team on an animation for our \\u2018Click & Collect\\u2019 service.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 142,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 17\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"info valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"author\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"img\", {\n src: \"/img/clients/1.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 152,\n columnNumber: 27\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 151,\n columnNumber: 25\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"h6\", {\n className: \"author-name color-font\",\n children: \"Alex Regelman\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 25\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"span\", {\n className: \"author-details\",\n children: \"Co-founder, Colabrio\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 25\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 150,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 149,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 19\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"p\", {\n children: \"I would highly recommend Vie Digital. I worked with the team on an animation for our \\u2018Click & Collect\\u2019 service.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 163,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 17\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"info valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"author\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"img\", {\n src: \"/img/clients/1.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 27\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 172,\n columnNumber: 25\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"h6\", {\n className: \"author-name color-font\",\n children: \"Alex Regelman\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 25\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"span\", {\n className: \"author-details\",\n children: \"Co-founder, Colabrio\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 25\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 171,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 19\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"p\", {\n children: \"I would highly recommend Vie Digital. I worked with the team on an animation for our \\u2018Click & Collect\\u2019 service.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 11\n }, this), this.renderArrows()]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 7\n }, this);\n }\n }]);\n\n return FullTestimonials;\n}((react__WEBPACK_IMPORTED_MODULE_7___default().Component));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (FullTestimonials);\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9GdWxsLXRlc3RpbW9uaWFscy9mdWxsLXRlc3RpbW9uaWFscy5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztJQUVNRTs7Ozs7QUFDSiw0QkFBWUMsS0FBWixFQUFtQjtBQUFBOztBQUFBOztBQUNqQiw4QkFBTUEsS0FBTjs7QUFEaUIsdVNBR0osWUFBTTtBQUNuQiwwQkFDRTtBQUFLLGlCQUFTLEVBQUMsUUFBZjtBQUFBLCtCQUNFO0FBQUssbUJBQVMsRUFBQyxXQUFmO0FBQUEsa0NBQ0U7QUFDRSxtQkFBTyxFQUFFO0FBQUEscUJBQU0sTUFBS0MsTUFBTCxDQUFZQyxTQUFaLEVBQU47QUFBQSxhQURYO0FBRUUscUJBQVMsRUFBQyxxQkFGWjtBQUFBLG1DQUlFO0FBQU0sdUJBQVMsRUFBQztBQUFoQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSkY7QUFBQTtBQUFBO0FBQUE7QUFBQSw2SkFERixlQU9FO0FBQ0UsbUJBQU8sRUFBRTtBQUFBLHFCQUFNLE1BQUtELE1BQUwsQ0FBWUUsU0FBWixFQUFOO0FBQUEsYUFEWDtBQUVFLHFCQUFTLEVBQUMscUJBRlo7QUFBQSxtQ0FJRTtBQUFNLHVCQUFTLEVBQUM7QUFBaEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUpGO0FBQUE7QUFBQTtBQUFBO0FBQUEsNkpBUEY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSx5SkFERjtBQWtCRCxLQXRCa0I7O0FBQUE7QUFFbEI7Ozs7V0FxQkQsa0JBQVM7QUFBQTs7QUFDUCwwQkFDRTtBQUNFLGlCQUFTLHlCQUNQLEtBQUtILEtBQUwsQ0FBV0ksT0FBWCxHQUNJLHdCQURKLEdBRUksS0FBS0osS0FBTCxDQUFXSyxTQUFYLEdBQ0EsNEJBREEsR0FFQSxLQUFLTCxLQUFMLENBQVdNLFNBQVgsR0FBdUIsRUFBdkIsR0FDQSxpQkFORyxjQU9MLEtBQUtOLEtBQUwsQ0FBV08sU0FBWCxHQUF1QixLQUFLUCxLQUFMLENBQVdPLFNBQWxDLEdBQThDLEVBUHpDLENBRFg7QUFTRSxhQUFLLEVBQUU7QUFDTEMsVUFBQUEsZUFBZSxZQUNiLEtBQUtSLEtBQUwsQ0FBV0ksT0FBWCxHQUFxQiwwQkFBckIsR0FBa0QsTUFEckM7QUFEVixTQVRUO0FBQUEsbUJBZUcsS0FBS0osS0FBTCxDQUFXUyxRQUFYLGlCQUNDO0FBQUssbUJBQVMsRUFBQyxXQUFmO0FBQUEsaUNBQ0U7QUFBSyxxQkFBUyxFQUFDLDRCQUFmO0FBQUEsbUNBQ0U7QUFBSyx1QkFBUyxFQUFDLG9CQUFmO0FBQUEscUNBQ0U7QUFBSyx5QkFBUyxFQUFDLHVCQUFmO0FBQUEsd0NBQ0U7QUFBSSwyQkFBUyxFQUFDLFlBQWQ7QUFBMkIsb0NBQWUsS0FBMUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsd0JBREYsZUFJRTtBQUFJLDJCQUFTLEVBQUMsZ0JBQWQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsd0JBSkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGdCQWhCSixlQWdDRTtBQUFLLG1CQUFTLEVBQUMsNkJBQWY7QUFBQSxrQ0FDRTtBQUFLLHFCQUFTLEVBQUMsa0JBQWY7QUFBa0MsOEJBQWUsS0FBakQ7QUFBQSxtQ0FDRTtBQUFLLHVCQUFTLEVBQUMsV0FBZjtBQUFBLHFDQUNFLCtEQUFDLG1EQUFEO0FBQ0UseUJBQVMsRUFBQyxXQURaO0FBR0lDLGdCQUFBQSxHQUFHLEVBQUUsYUFBQ0MsQ0FBRDtBQUFBLHlCQUFRLE1BQUksQ0FBQ1YsTUFBTCxHQUFjVSxDQUF0QjtBQUFBLGlCQUhUO0FBSUlDLGdCQUFBQSxJQUFJLEVBQUUsS0FKVjtBQUtJQyxnQkFBQUEsUUFBUSxFQUFFLElBTGQ7QUFNSUMsZ0JBQUFBLE1BQU0sRUFBRSxJQU5aO0FBT0lDLGdCQUFBQSxVQUFVLEVBQUUsSUFQaEI7QUFRSUMsZ0JBQUFBLFFBQVEsRUFBRSxJQVJkO0FBU0lDLGdCQUFBQSxJQUFJLEVBQUUsQ0FUVjtBQVVJQyxnQkFBQUEsY0FBYyxFQUFFLENBVnBCO0FBV0lDLGdCQUFBQSxZQUFZLEVBQUUsQ0FYbEI7QUFZSUMsZ0JBQUFBLFVBQVUsRUFBRSxDQUNWO0FBQ0VDLGtCQUFBQSxVQUFVLEVBQUUsSUFEZDtBQUVFQyxrQkFBQUEsUUFBUSxFQUFFO0FBQ1JILG9CQUFBQSxZQUFZLEVBQUUsQ0FETjtBQUVSSixvQkFBQUEsVUFBVSxFQUFFO0FBRko7QUFGWixpQkFEVSxFQVFWO0FBQ0VNLGtCQUFBQSxVQUFVLEVBQUUsR0FEZDtBQUVFQyxrQkFBQUEsUUFBUSxFQUFFO0FBQ1JILG9CQUFBQSxZQUFZLEVBQUUsQ0FETjtBQUVSSixvQkFBQUEsVUFBVSxFQUFFO0FBRko7QUFGWixpQkFSVSxFQWVWO0FBQ0VNLGtCQUFBQSxVQUFVLEVBQUUsR0FEZDtBQUVFQyxrQkFBQUEsUUFBUSxFQUFFO0FBQ1JILG9CQUFBQSxZQUFZLEVBQUUsQ0FETjtBQUVSSixvQkFBQUEsVUFBVSxFQUFFO0FBRko7QUFGWixpQkFmVSxDQVpoQjtBQUFBLHdDQXFDRTtBQUFLLDJCQUFTLEVBQUMsTUFBZjtBQUFBLDBDQUNFO0FBQUssNkJBQVMsRUFBQyxhQUFmO0FBQUEsMkNBQ0U7QUFBSywrQkFBUyxFQUFDLE1BQWY7QUFBQSw2Q0FDRTtBQUFLLGlDQUFTLEVBQUMsUUFBZjtBQUFBLGdEQUNFO0FBQUssbUNBQVMsRUFBQyxLQUFmO0FBQUEsaURBQ0U7QUFBSywrQkFBRyxFQUFDLG9CQUFUO0FBQThCLCtCQUFHLEVBQUM7QUFBbEM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsZ0NBREYsZUFJRTtBQUFJLG1DQUFTLEVBQUMsd0JBQWQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsZ0NBSkYsZUFPRTtBQUFNLG1DQUFTLEVBQUMsZ0JBQWhCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGdDQVBGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLDBCQURGLGVBZ0JFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLDBCQWhCRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsd0JBckNGLGVBMERFO0FBQUssMkJBQVMsRUFBQyxNQUFmO0FBQUEsMENBQ0U7QUFBSyw2QkFBUyxFQUFDLGFBQWY7QUFBQSwyQ0FDRTtBQUFLLCtCQUFTLEVBQUMsTUFBZjtBQUFBLDZDQUNFO0FBQUssaUNBQVMsRUFBQyxRQUFmO0FBQUEsZ0RBQ0U7QUFBSyxtQ0FBUyxFQUFDLEtBQWY7QUFBQSxpREFDRTtBQUFLLCtCQUFHLEVBQUMsb0JBQVQ7QUFBOEIsK0JBQUcsRUFBQztBQUFsQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxnQ0FERixlQUlFO0FBQUksbUNBQVMsRUFBQyx3QkFBZDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxnQ0FKRixlQU9FO0FBQU0sbUNBQVMsRUFBQyxnQkFBaEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsZ0NBUEY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsMEJBREYsZUFnQkU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsMEJBaEJGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSx3QkExREYsZUErRUU7QUFBSywyQkFBUyxFQUFDLE1BQWY7QUFBQSwwQ0FDRTtBQUFLLDZCQUFTLEVBQUMsYUFBZjtBQUFBLDJDQUNFO0FBQUssK0JBQVMsRUFBQyxNQUFmO0FBQUEsNkNBQ0U7QUFBSyxpQ0FBUyxFQUFDLFFBQWY7QUFBQSxnREFDRTtBQUFLLG1DQUFTLEVBQUMsS0FBZjtBQUFBLGlEQUNFO0FBQUssK0JBQUcsRUFBQyxvQkFBVDtBQUE4QiwrQkFBRyxFQUFDO0FBQWxDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGdDQURGLGVBSUU7QUFBSSxtQ0FBUyxFQUFDLHdCQUFkO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGdDQUpGLGVBT0U7QUFBTSxtQ0FBUyxFQUFDLGdCQUFoQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxnQ0FQRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSwwQkFERixlQWdCRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSwwQkFoQkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHdCQS9FRixlQW9HRTtBQUFLLDJCQUFTLEVBQUMsTUFBZjtBQUFBLDBDQUNFO0FBQUssNkJBQVMsRUFBQyxhQUFmO0FBQUEsMkNBQ0U7QUFBSywrQkFBUyxFQUFDLE1BQWY7QUFBQSw2Q0FDRTtBQUFLLGlDQUFTLEVBQUMsUUFBZjtBQUFBLGdEQUNFO0FBQUssbUNBQVMsRUFBQyxLQUFmO0FBQUEsaURBQ0U7QUFBSywrQkFBRyxFQUFDLG9CQUFUO0FBQThCLCtCQUFHLEVBQUM7QUFBbEM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsZ0NBREYsZUFJRTtBQUFJLG1DQUFTLEVBQUMsd0JBQWQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsZ0NBSkYsZUFPRTtBQUFNLG1DQUFTLEVBQUMsZ0JBQWhCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGdDQVBGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLDBCQURGLGVBZ0JFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLDBCQWhCRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsd0JBcEdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGtCQURGLEVBK0hHLEtBQUtRLFlBQUwsRUEvSEg7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGdCQWhDRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsY0FERjtBQW9LRDs7OztFQTdMNEIxQjs7QUFnTS9CLCtEQUFlRSxnQkFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tcG9uZW50cy9GdWxsLXRlc3RpbW9uaWFscy9mdWxsLXRlc3RpbW9uaWFscy5qc3g/ZmUwZCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAbmV4dC9uZXh0L25vLWltZy1lbGVtZW50ICovXHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IFNsaWRlciBmcm9tIFwicmVhY3Qtc2xpY2tcIjtcclxuaW1wb3J0IFwic2xpY2stY2Fyb3VzZWwvc2xpY2svc2xpY2suY3NzXCI7XHJcbmltcG9ydCBcInNsaWNrLWNhcm91c2VsL3NsaWNrL3NsaWNrLXRoZW1lLmNzc1wiO1xyXG5cclxuY2xhc3MgRnVsbFRlc3RpbW9uaWFscyBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgIHN1cGVyKHByb3BzKTtcclxuICB9XHJcbiAgcmVuZGVyQXJyb3dzID0gKCkgPT4ge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJhcnJvd3NcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB0aGlzLnNsaWRlci5zbGlja05leHQoKX1cclxuICAgICAgICAgICAgY2xhc3NOYW1lPVwibmV4dCBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInBlLTdzLWFuZ2xlLXJpZ2h0XCI+PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHRoaXMuc2xpZGVyLnNsaWNrUHJldigpfVxyXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJwcmV2IGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwicGUtN3MtYW5nbGUtbGVmdFwiPjwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgfTtcclxuICByZW5kZXIoKSB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8c2VjdGlvblxyXG4gICAgICAgIGNsYXNzTmFtZT17YHRlc3RpbW9uaWFscyAke1xyXG4gICAgICAgICAgdGhpcy5wcm9wcy53aXRoSU1HXHJcbiAgICAgICAgICAgID8gXCJzZWN0aW9uLXBhZGRpbmcgYmctaW1nXCJcclxuICAgICAgICAgICAgOiB0aGlzLnByb3BzLndpdGhDT0xPUlxyXG4gICAgICAgICAgICA/IFwic2VjdGlvbi1wYWRkaW5nIGJhY2stY29sb3JcIlxyXG4gICAgICAgICAgICA6IHRoaXMucHJvcHMubm9QYWRkaW5nID8gXCJcIlxyXG4gICAgICAgICAgICA6IFwic2VjdGlvbi1wYWRkaW5nXCJcclxuICAgICAgICB9ICR7dGhpcy5wcm9wcy5jbGFzc1RleHQgPyB0aGlzLnByb3BzLmNsYXNzVGV4dCA6IFwiXCJ9YH1cclxuICAgICAgICBzdHlsZT17e1xyXG4gICAgICAgICAgYmFja2dyb3VuZEltYWdlOiBgJHtcclxuICAgICAgICAgICAgdGhpcy5wcm9wcy53aXRoSU1HID8gXCJ1cmwoL2ltZy90ZXN0aW0taW1nLmpwZylcIiA6IFwibm9uZVwiXHJcbiAgICAgICAgICB9YCxcclxuICAgICAgICB9fVxyXG4gICAgICA+XHJcbiAgICAgICAge3RoaXMucHJvcHMuc2hvd0hlYWQgJiYgKFxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTggY29sLW1kLTEwXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNlYy1oZWFkICB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8aDYgY2xhc3NOYW1lPVwid293IGZhZGVJblwiIGRhdGEtd293LWRlbGF5PVwiLjVzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgVGVzdGltb25pYWxzXHJcbiAgICAgICAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJ3b3cgY29sb3ItZm9udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIFdlIGxvdmUgb3VyIGNsaWVudHMgZnJvbSBhbGwgb3ZlciB0aGUgd29ybGQuXHJcbiAgICAgICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApfVxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lci1mbHVpZCBwb3NpdGlvbi1yZVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNXNcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMTJcIj5cclxuICAgICAgICAgICAgICA8U2xpZGVyXHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJzbGljLWl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgey4uLntcclxuICAgICAgICAgICAgICAgICAgcmVmOiAoYykgPT4gKHRoaXMuc2xpZGVyID0gYyksXHJcbiAgICAgICAgICAgICAgICAgIGRvdHM6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICBpbmZpbml0ZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgYXJyb3dzOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICBjZW50ZXJNb2RlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICBhdXRvcGxheTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgcm93czogMSxcclxuICAgICAgICAgICAgICAgICAgc2xpZGVzVG9TY3JvbGw6IDEsXHJcbiAgICAgICAgICAgICAgICAgIHNsaWRlc1RvU2hvdzogMyxcclxuICAgICAgICAgICAgICAgICAgcmVzcG9uc2l2ZTogW1xyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgIGJyZWFrcG9pbnQ6IDEwMjQsXHJcbiAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5nczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXNUb1Nob3c6IDEsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNlbnRlck1vZGU6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgIGJyZWFrcG9pbnQ6IDc2NyxcclxuICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlc1RvU2hvdzogMSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2VudGVyTW9kZTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludDogNDgwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3M6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzVG9TaG93OiAxLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjZW50ZXJNb2RlOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW5mbyB2YWxpZ25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYXV0aG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL2NsaWVudHMvMS5qcGdcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGg2IGNsYXNzTmFtZT1cImF1dGhvci1uYW1lIGNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBBbGV4IFJlZ2VsbWFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImF1dGhvci1kZXRhaWxzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ28tZm91bmRlciwgQ29sYWJyaW9cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgICBJIHdvdWxkIGhpZ2hseSByZWNvbW1lbmQgVmllIERpZ2l0YWwuIEkgd29ya2VkIHdpdGggdGhlIHRlYW1cclxuICAgICAgICAgICAgICAgICAgICBvbiBhbiBhbmltYXRpb24gZm9yIG91ciDigJhDbGljayAmYW1wOyBDb2xsZWN04oCZIHNlcnZpY2UuXHJcbiAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW5mbyB2YWxpZ25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYXV0aG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL2NsaWVudHMvMS5qcGdcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGg2IGNsYXNzTmFtZT1cImF1dGhvci1uYW1lIGNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBBbGV4IFJlZ2VsbWFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImF1dGhvci1kZXRhaWxzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ28tZm91bmRlciwgQ29sYWJyaW9cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgICBJIHdvdWxkIGhpZ2hseSByZWNvbW1lbmQgVmllIERpZ2l0YWwuIEkgd29ya2VkIHdpdGggdGhlIHRlYW1cclxuICAgICAgICAgICAgICAgICAgICBvbiBhbiBhbmltYXRpb24gZm9yIG91ciDigJhDbGljayAmYW1wOyBDb2xsZWN04oCZIHNlcnZpY2UuXHJcbiAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW5mbyB2YWxpZ25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYXV0aG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL2NsaWVudHMvMS5qcGdcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGg2IGNsYXNzTmFtZT1cImF1dGhvci1uYW1lIGNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBBbGV4IFJlZ2VsbWFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImF1dGhvci1kZXRhaWxzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ28tZm91bmRlciwgQ29sYWJyaW9cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgICBJIHdvdWxkIGhpZ2hseSByZWNvbW1lbmQgVmllIERpZ2l0YWwuIEkgd29ya2VkIHdpdGggdGhlIHRlYW1cclxuICAgICAgICAgICAgICAgICAgICBvbiBhbiBhbmltYXRpb24gZm9yIG91ciDigJhDbGljayAmYW1wOyBDb2xsZWN04oCZIHNlcnZpY2UuXHJcbiAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW5mbyB2YWxpZ25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYXV0aG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL2NsaWVudHMvMS5qcGdcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGg2IGNsYXNzTmFtZT1cImF1dGhvci1uYW1lIGNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBBbGV4IFJlZ2VsbWFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImF1dGhvci1kZXRhaWxzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ28tZm91bmRlciwgQ29sYWJyaW9cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgICBJIHdvdWxkIGhpZ2hseSByZWNvbW1lbmQgVmllIERpZ2l0YWwuIEkgd29ya2VkIHdpdGggdGhlIHRlYW1cclxuICAgICAgICAgICAgICAgICAgICBvbiBhbiBhbmltYXRpb24gZm9yIG91ciDigJhDbGljayAmYW1wOyBDb2xsZWN04oCZIHNlcnZpY2UuXHJcbiAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvU2xpZGVyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAge3RoaXMucmVuZGVyQXJyb3dzKCl9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvc2VjdGlvbj5cclxuICAgICk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBGdWxsVGVzdGltb25pYWxzO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJTbGlkZXIiLCJGdWxsVGVzdGltb25pYWxzIiwicHJvcHMiLCJzbGlkZXIiLCJzbGlja05leHQiLCJzbGlja1ByZXYiLCJ3aXRoSU1HIiwid2l0aENPTE9SIiwibm9QYWRkaW5nIiwiY2xhc3NUZXh0IiwiYmFja2dyb3VuZEltYWdlIiwic2hvd0hlYWQiLCJyZWYiLCJjIiwiZG90cyIsImluZmluaXRlIiwiYXJyb3dzIiwiY2VudGVyTW9kZSIsImF1dG9wbGF5Iiwicm93cyIsInNsaWRlc1RvU2Nyb2xsIiwic2xpZGVzVG9TaG93IiwicmVzcG9uc2l2ZSIsImJyZWFrcG9pbnQiLCJzZXR0aW5ncyIsInJlbmRlckFycm93cyIsIkNvbXBvbmVudCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Full-testimonials/full-testimonials.jsx\n"); + +/***/ }), + +/***/ "./src/components/Intro4/intro4.jsx": +/*!******************************************!*\ + !*** ./src/components/Intro4/intro4.jsx ***! + \******************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _config_particle_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../config/particle-config */ \"./src/config/particle-config.js\");\n/* harmony import */ var _config_pr_s_black__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../config/pr-s-black */ \"./src/config/pr-s-black.js\");\n/* harmony import */ var react_tsparticles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-tsparticles */ \"./node_modules/react-tsparticles/index.js\");\n/* harmony import */ var react_tsparticles__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_tsparticles__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Intro4\\\\intro4.jsx\",\n _this = undefined;\n\n\n\n\n\n\n\nvar Intro4 = function Intro4(_ref) {\n var sliderRef = _ref.sliderRef,\n blackStar = _ref.blackStar;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"header\", {\n ref: sliderRef,\n className: \"particles circle-bg valign\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"cont text-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h1\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"color-font\",\n children: \"Begin \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 17\n }, _this), \" your UAE project with\", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"color-font\",\n children: \"Business Hub\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 17\n }, _this), \".\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((react_tsparticles__WEBPACK_IMPORTED_MODULE_3___default()), {\n id: \"particles-js\",\n options: blackStar ? _config_pr_s_black__WEBPACK_IMPORTED_MODULE_2__[\"default\"] : _config_particle_config__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"gradient-circle\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"gradient-circle two\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"line bottom left\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 5\n }, _this);\n};\n\n_c = Intro4;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Intro4);\n\nvar _c;\n\n$RefreshReg$(_c, \"Intro4\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9JbnRybzQvaW50cm80LmpzeC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7OztBQUVBLElBQU1JLE1BQU0sR0FBRyxTQUFUQSxNQUFTLE9BQThCO0FBQUEsTUFBM0JDLFNBQTJCLFFBQTNCQSxTQUEyQjtBQUFBLE1BQWhCQyxTQUFnQixRQUFoQkEsU0FBZ0I7QUFDM0Msc0JBQ0U7QUFBUSxPQUFHLEVBQUVELFNBQWI7QUFBd0IsYUFBUyxFQUFDLDRCQUFsQztBQUFBLDRCQUNFO0FBQUssZUFBUyxFQUFDLFdBQWY7QUFBQSw2QkFDRTtBQUFLLGlCQUFTLEVBQUMsNEJBQWY7QUFBQSwrQkFDRTtBQUFLLG1CQUFTLEVBQUMsV0FBZjtBQUFBLGlDQUNFO0FBQUsscUJBQVMsRUFBQyxrQkFBZjtBQUFBLG1DQUNFO0FBQUEsc0NBQ0U7QUFBTSx5QkFBUyxFQUFDLFlBQWhCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQURGLHlDQUVFO0FBQU0seUJBQVMsRUFBQyxZQUFoQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFGRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBREYsZUFjRSw4REFBQywwREFBRDtBQUNFLFFBQUUsRUFBQyxjQURMO0FBRUUsYUFBTyxFQUFFQyxTQUFTLEdBQUdKLDBEQUFILEdBQTBCRCwrREFBZUE7QUFGN0Q7QUFBQTtBQUFBO0FBQUE7QUFBQSxhQWRGLGVBbUJFO0FBQUssZUFBUyxFQUFDO0FBQWY7QUFBQTtBQUFBO0FBQUE7QUFBQSxhQW5CRixlQW9CRTtBQUFLLGVBQVMsRUFBQztBQUFmO0FBQUE7QUFBQTtBQUFBO0FBQUEsYUFwQkYsZUFxQkU7QUFBSyxlQUFTLEVBQUM7QUFBZjtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBckJGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxXQURGO0FBeUJELENBMUJEOztLQUFNRztBQTRCTiwrREFBZUEsTUFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tcG9uZW50cy9JbnRybzQvaW50cm80LmpzeD80ODBlIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHBhcnRpY2xlc0NvbmZpZyBmcm9tIFwiLi4vLi4vY29uZmlnL3BhcnRpY2xlLWNvbmZpZ1wiO1xyXG5pbXBvcnQgcGFydGljbGVzQmxhY2tDb25maWcgZnJvbSBcIi4uLy4uL2NvbmZpZy9wci1zLWJsYWNrXCI7XHJcbmltcG9ydCBQYXJ0aWNsZXMgZnJvbSBcInJlYWN0LXRzcGFydGljbGVzXCI7XHJcblxyXG5jb25zdCBJbnRybzQgPSAoeyBzbGlkZXJSZWYsIGJsYWNrU3RhciB9KSA9PiB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxoZWFkZXIgcmVmPXtzbGlkZXJSZWZ9IGNsYXNzTmFtZT1cInBhcnRpY2xlcyBjaXJjbGUtYmcgdmFsaWduXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250IHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGgxPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiY29sb3ItZm9udFwiPkJlZ2luIDwvc3Bhbj4geW91ciBVQUUgcHJvamVjdCB3aXRoXHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJjb2xvci1mb250XCI+QnVzaW5lc3MgSHViPC9zcGFuPi5cclxuICAgICAgICAgICAgICA8L2gxPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxQYXJ0aWNsZXNcclxuICAgICAgICBpZD1cInBhcnRpY2xlcy1qc1wiXHJcbiAgICAgICAgb3B0aW9ucz17YmxhY2tTdGFyID8gcGFydGljbGVzQmxhY2tDb25maWcgOiBwYXJ0aWNsZXNDb25maWd9XHJcbiAgICAgIC8+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyYWRpZW50LWNpcmNsZVwiPjwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyYWRpZW50LWNpcmNsZSB0d29cIj48L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJsaW5lIGJvdHRvbSBsZWZ0XCI+PC9kaXY+XHJcbiAgICA8L2hlYWRlcj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgSW50cm80O1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJwYXJ0aWNsZXNDb25maWciLCJwYXJ0aWNsZXNCbGFja0NvbmZpZyIsIlBhcnRpY2xlcyIsIkludHJvNCIsInNsaWRlclJlZiIsImJsYWNrU3RhciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Intro4/intro4.jsx\n"); + +/***/ }), + +/***/ "./src/components/Minimal-Area2/minimal-area2.jsx": +/*!********************************************************!*\ + !*** ./src/components/Minimal-Area2/minimal-area2.jsx ***! + \********************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _Split__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Split */ \"./src/components/Split/index.jsx\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _common_thumparallax__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/thumparallax */ \"./src/common/thumparallax.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Minimal-Area2\\\\minimal-area2.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nvar MinimalArea2 = function MinimalArea2() {\n _s();\n\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n setTimeout(function () {\n (0,_common_thumparallax__WEBPACK_IMPORTED_MODULE_3__.thumparallaxDown)();\n }, 1000);\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"section\", {\n className: \"min-area\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n className: \"thumparallax-down\",\n src: \"/img/min-area.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-6 valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"content\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h4\", {\n className: \"color-font\",\n children: \"Dream. Innovate. Implement.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(_Split__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"p\", {\n className: \"wow txt words chars splitting\",\n \"data-splitting\": true,\n children: \"Boost your business affordably with our virtual company service. Say goodbye to unnecessary costs and hello to streamlined operations. Our expert team handles everything from accounting to project management, helping you achieve more while spending less. Let's grow your business together!\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"ul\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"wow fadeInUp\",\n \"data-wow-delay\": \".4s\",\n children: \"Reducing operational costs\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"wow fadeInUp\",\n \"data-wow-delay\": \".6s\",\n children: \"Providing flexibility\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"wow fadeInUp\",\n \"data-wow-delay\": \".8s\",\n children: \"Administrative efficiency\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/about/about-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"a\", {\n className: \"butn bord curve mt-40 wow fadeInUp\",\n \"data-wow-delay\": \".8s\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n children: \"Discover\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 51,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"br\", {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 59,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 5\n }, _this);\n};\n\n_s(MinimalArea2, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = MinimalArea2;\n/* harmony default export */ __webpack_exports__[\"default\"] = (MinimalArea2);\n\nvar _c;\n\n$RefreshReg$(_c, \"MinimalArea2\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9NaW5pbWFsLUFyZWEyL21pbmltYWwtYXJlYTIuanN4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsSUFBTUksWUFBWSxHQUFHLFNBQWZBLFlBQWUsR0FBTTtBQUFBOztBQUN6QkosRUFBQUEsc0RBQUEsQ0FBZ0IsWUFBTTtBQUNwQk0sSUFBQUEsVUFBVSxDQUFDLFlBQU07QUFDZkgsTUFBQUEsc0VBQWdCO0FBQ2pCLEtBRlMsRUFFUCxJQUZPLENBQVY7QUFHRCxHQUpELEVBSUcsRUFKSDtBQUtBLHNCQUNFO0FBQVMsYUFBUyxFQUFDLFVBQW5CO0FBQUEsMkJBQ0U7QUFBSyxlQUFTLEVBQUMsV0FBZjtBQUFBLDZCQUNFO0FBQUssaUJBQVMsRUFBQyxLQUFmO0FBQUEsZ0NBQ0U7QUFBSyxtQkFBUyxFQUFDLFVBQWY7QUFBQSxpQ0FDRTtBQUFLLHFCQUFTLEVBQUMsS0FBZjtBQUFBLG1DQUNFO0FBQ0UsdUJBQVMsRUFBQyxtQkFEWjtBQUVFLGlCQUFHLEVBQUMsbUJBRk47QUFHRSxpQkFBRyxFQUFDO0FBSE47QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQURGLGVBVUU7QUFBSyxtQkFBUyxFQUFDLGlCQUFmO0FBQUEsaUNBQ0U7QUFBSyxxQkFBUyxFQUFDLFNBQWY7QUFBQSxvQ0FDRTtBQUFJLHVCQUFTLEVBQUMsWUFBZDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxxQkFERixlQUVFLDhEQUFDLDhDQUFEO0FBQUEscUNBQ0U7QUFBRyx5QkFBUyxFQUFDLCtCQUFiO0FBQTZDLHNDQUE3QztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBRkYsZUFZRTtBQUFBLHNDQUNFO0FBQUkseUJBQVMsRUFBQyxjQUFkO0FBQTZCLGtDQUFlLEtBQTVDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQURGLGVBSUU7QUFBSSx5QkFBUyxFQUFDLGNBQWQ7QUFBNkIsa0NBQWUsS0FBNUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBSkYsZUFPRTtBQUFJLHlCQUFTLEVBQUMsY0FBZDtBQUE2QixrQ0FBZSxLQUE1QztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFQRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBWkYsZUF1QkUsOERBQUMsa0RBQUQ7QUFBTSxrQkFBSSxzQkFBVjtBQUFBLHFDQUNFO0FBQ0UseUJBQVMsRUFBQyxvQ0FEWjtBQUVFLGtDQUFlLEtBRmpCO0FBQUEsdUNBSUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFKRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxxQkF2QkYsZUFnQ0U7QUFBQTtBQUFBO0FBQUE7QUFBQSxxQkFoQ0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFWRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxXQURGO0FBcURELENBM0REOztHQUFNQzs7S0FBQUE7QUE2RE4sK0RBQWVBLFlBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbXBvbmVudHMvTWluaW1hbC1BcmVhMi9taW5pbWFsLWFyZWEyLmpzeD9lYjVlIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBuZXh0L25leHQvbm8taW1nLWVsZW1lbnQgKi9cclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgU3BsaXQgZnJvbSBcIi4uL1NwbGl0XCI7XHJcbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcclxuaW1wb3J0IHsgdGh1bXBhcmFsbGF4RG93biB9IGZyb20gXCIuLi8uLi9jb21tb24vdGh1bXBhcmFsbGF4XCI7XHJcblxyXG5jb25zdCBNaW5pbWFsQXJlYTIgPSAoKSA9PiB7XHJcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aHVtcGFyYWxsYXhEb3duKCk7XHJcbiAgICB9LCAxMDAwKTtcclxuICB9LCBbXSk7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cIm1pbi1hcmVhXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0aHVtcGFyYWxsYXgtZG93blwiXHJcbiAgICAgICAgICAgICAgICBzcmM9XCIvaW1nL21pbi1hcmVhLmpwZ1wiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJcIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy02IHZhbGlnblwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwiY29sb3ItZm9udFwiPkRyZWFtLiBJbm5vdmF0ZS4gSW1wbGVtZW50LjwvaDQ+XHJcbiAgICAgICAgICAgICAgPFNwbGl0PlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwid293IHR4dCB3b3JkcyBjaGFycyBzcGxpdHRpbmdcIiBkYXRhLXNwbGl0dGluZz5cclxuICAgICAgICAgICAgICAgICAgQm9vc3QgeW91ciBidXNpbmVzcyBhZmZvcmRhYmx5IHdpdGggb3VyIHZpcnR1YWwgY29tcGFueVxyXG4gICAgICAgICAgICAgICAgICBzZXJ2aWNlLiBTYXkgZ29vZGJ5ZSB0byB1bm5lY2Vzc2FyeSBjb3N0cyBhbmQgaGVsbG8gdG9cclxuICAgICAgICAgICAgICAgICAgc3RyZWFtbGluZWQgb3BlcmF0aW9ucy4gT3VyIGV4cGVydCB0ZWFtIGhhbmRsZXMgZXZlcnl0aGluZ1xyXG4gICAgICAgICAgICAgICAgICBmcm9tIGFjY291bnRpbmcgdG8gcHJvamVjdCBtYW5hZ2VtZW50LCBoZWxwaW5nIHlvdSBhY2hpZXZlXHJcbiAgICAgICAgICAgICAgICAgIG1vcmUgd2hpbGUgc3BlbmRpbmcgbGVzcy4gTGV0JmFwb3M7cyBncm93IHlvdXIgYnVzaW5lc3NcclxuICAgICAgICAgICAgICAgICAgdG9nZXRoZXIhXHJcbiAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgPC9TcGxpdD5cclxuICAgICAgICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwid293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgUmVkdWNpbmcgb3BlcmF0aW9uYWwgY29zdHNcclxuICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwid293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNnNcIj5cclxuICAgICAgICAgICAgICAgICAgUHJvdmlkaW5nIGZsZXhpYmlsaXR5XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgPGxpIGNsYXNzTmFtZT1cIndvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjhzXCI+XHJcbiAgICAgICAgICAgICAgICAgIEFkbWluaXN0cmF0aXZlIGVmZmljaWVuY3lcclxuICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICA8TGluayBocmVmPXtgL2Fib3V0L2Fib3V0LWxpZ2h0YH0+XHJcbiAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJidXRuIGJvcmQgY3VydmUgbXQtNDAgd293IGZhZGVJblVwXCJcclxuICAgICAgICAgICAgICAgICAgZGF0YS13b3ctZGVsYXk9XCIuOHNcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8c3Bhbj5EaXNjb3Zlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICA8L0xpbms+XHJcblxyXG4gICAgICAgICAgICAgIDxiciAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvc2VjdGlvbj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgTWluaW1hbEFyZWEyO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJTcGxpdCIsIkxpbmsiLCJ0aHVtcGFyYWxsYXhEb3duIiwiTWluaW1hbEFyZWEyIiwidXNlRWZmZWN0Iiwic2V0VGltZW91dCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Minimal-Area2/minimal-area2.jsx\n"); + +/***/ }), + +/***/ "./src/components/Navbar/navbar.jsx": +/*!******************************************!*\ + !*** ./src/components/Navbar/navbar.jsx ***! + \******************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _data_app_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../data/app.json */ \"./src/data/app.json\");\n/* harmony import */ var _common_navbar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/navbar */ \"./src/common/navbar.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Navbar\\\\navbar.jsx\",\n _this = undefined;\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nvar Navbar = function Navbar(_ref) {\n var lr = _ref.lr,\n nr = _ref.nr,\n theme = _ref.theme;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"nav\", {\n ref: nr,\n className: \"navbar navbar-expand-lg change \".concat(theme === \"themeL\" ? \"light\" : \"\"),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"a\", {\n className: \"logo\",\n children: theme ? theme === \"themeL\" ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n ref: lr,\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.darkLogo,\n alt: \"logo\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 17\n }, _this) : /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n ref: lr,\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.lightLogo,\n alt: \"logo\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 17\n }, _this) : /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n ref: lr,\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.lightLogo,\n alt: \"logo\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"button\", {\n className: \"navbar-toggler\",\n type: \"button\",\n onClick: _common_navbar__WEBPACK_IMPORTED_MODULE_3__.handleMobileDropdown,\n \"data-toggle\": \"collapse\",\n \"data-target\": \"#navbarSupportedContent\",\n \"aria-controls\": \"navbarSupportedContent\",\n \"aria-expanded\": \"false\",\n \"aria-label\": \"Toggle navigation\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"icon-bar\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"i\", {\n className: \"fas fa-bars\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"collapse navbar-collapse\",\n id: \"navbarSupportedContent\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"ul\", {\n className: \"navbar-nav ml-auto\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"nav-link \",\n children: \"Home\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/about\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"a\", {\n className: \"nav-link\",\n children: \"Who we are\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/services\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"nav-link\",\n children: \"Our Services\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 59,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/blog/blog-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"nav-link \",\n children: \"Blog\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/contact/contact-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"a\", {\n className: \"nav-link\",\n children: \"Contact\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 13\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, _this);\n};\n\n_c = Navbar;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Navbar);\n\nvar _c;\n\n$RefreshReg$(_c, \"Navbar\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9OYXZiYXIvbmF2YmFyLmpzeC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsSUFBTUssTUFBTSxHQUFHLFNBQVRBLE1BQVMsT0FBdUI7QUFBQSxNQUFwQkMsRUFBb0IsUUFBcEJBLEVBQW9CO0FBQUEsTUFBaEJDLEVBQWdCLFFBQWhCQSxFQUFnQjtBQUFBLE1BQVpDLEtBQVksUUFBWkEsS0FBWTtBQUNwQyxzQkFDRTtBQUNFLE9BQUcsRUFBRUQsRUFEUDtBQUVFLGFBQVMsMkNBQ1BDLEtBQUssS0FBSyxRQUFWLEdBQXFCLE9BQXJCLEdBQStCLEVBRHhCLENBRlg7QUFBQSwyQkFNRTtBQUFLLGVBQVMsRUFBQyxXQUFmO0FBQUEsOEJBQ0UsOERBQUMsa0RBQUQ7QUFBTSxZQUFJLEVBQUMsR0FBWDtBQUFBLCtCQUNFO0FBQUcsbUJBQVMsRUFBQyxNQUFiO0FBQUEsb0JBQ0dBLEtBQUssR0FDSkEsS0FBSyxLQUFLLFFBQVYsZ0JBQ0U7QUFBSyxlQUFHLEVBQUVGLEVBQVY7QUFBYyxlQUFHLEVBQUVKLG9EQUFuQjtBQUFxQyxlQUFHLEVBQUM7QUFBekM7QUFBQTtBQUFBO0FBQUE7QUFBQSxtQkFERixnQkFHRTtBQUFLLGVBQUcsRUFBRUksRUFBVjtBQUFjLGVBQUcsRUFBRUoscURBQW5CO0FBQXNDLGVBQUcsRUFBQztBQUExQztBQUFBO0FBQUE7QUFBQTtBQUFBLG1CQUpFLGdCQU9KO0FBQUssZUFBRyxFQUFFSSxFQUFWO0FBQWMsZUFBRyxFQUFFSixxREFBbkI7QUFBc0MsZUFBRyxFQUFDO0FBQTFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFSSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxlQURGLGVBZUU7QUFDRSxpQkFBUyxFQUFDLGdCQURaO0FBRUUsWUFBSSxFQUFDLFFBRlA7QUFHRSxlQUFPLEVBQUVFLGdFQUhYO0FBSUUsdUJBQVksVUFKZDtBQUtFLHVCQUFZLHlCQUxkO0FBTUUseUJBQWMsd0JBTmhCO0FBT0UseUJBQWMsT0FQaEI7QUFRRSxzQkFBVyxtQkFSYjtBQUFBLCtCQVVFO0FBQU0sbUJBQVMsRUFBQyxVQUFoQjtBQUFBLGlDQUNFO0FBQUcscUJBQVMsRUFBQztBQUFiO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBVkY7QUFBQTtBQUFBO0FBQUE7QUFBQSxlQWZGLGVBOEJFO0FBQUssaUJBQVMsRUFBQywwQkFBZjtBQUEwQyxVQUFFLEVBQUMsd0JBQTdDO0FBQUEsK0JBQ0U7QUFBSSxtQkFBUyxFQUFDLG9CQUFkO0FBQUEsa0NBQ0U7QUFBSSxxQkFBUyxFQUFDLFdBQWQ7QUFBQSxtQ0FDRSw4REFBQyxrREFBRDtBQUFNLGtCQUFJLEVBQUMsR0FBWDtBQUFBLHFDQUNFO0FBQU0seUJBQVMsRUFBQyxXQUFoQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLG1CQURGLGVBTUU7QUFBSSxxQkFBUyxFQUFDLFVBQWQ7QUFBQSxtQ0FDRSw4REFBQyxrREFBRDtBQUFNLGtCQUFJLFVBQVY7QUFBQSxxQ0FDRTtBQUFHLHlCQUFTLEVBQUMsVUFBYjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLG1CQU5GLGVBV0U7QUFBSSxxQkFBUyxFQUFDLFdBQWQ7QUFBQSxtQ0FDRSw4REFBQyxrREFBRDtBQUFNLGtCQUFJLGFBQVY7QUFBQSxxQ0FDRTtBQUFNLHlCQUFTLEVBQUMsVUFBaEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxtQkFYRixlQWdCRTtBQUFJLHFCQUFTLEVBQUMsV0FBZDtBQUFBLG1DQUNFLDhEQUFDLGtEQUFEO0FBQU0sa0JBQUksb0JBQVY7QUFBQSxxQ0FDRTtBQUFNLHlCQUFTLEVBQUMsV0FBaEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxtQkFoQkYsZUFxQkU7QUFBSSxxQkFBUyxFQUFDLFVBQWQ7QUFBQSxtQ0FDRSw4REFBQyxrREFBRDtBQUFNLGtCQUFJLDBCQUFWO0FBQUEscUNBQ0U7QUFBRyx5QkFBUyxFQUFDLFVBQWI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxtQkFyQkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxlQTlCRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFORjtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBREY7QUFxRUQsQ0F0RUQ7O0tBQU1DO0FBd0VOLCtEQUFlQSxNQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL05hdmJhci9uYXZiYXIuanN4PzdhZjAiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcclxuaW1wb3J0IGFwcERhdGEgZnJvbSBcIi4uLy4uL2RhdGEvYXBwLmpzb25cIjtcclxuaW1wb3J0IHsgaGFuZGxlRHJvcGRvd24sIGhhbmRsZU1vYmlsZURyb3Bkb3duIH0gZnJvbSBcIi4uLy4uL2NvbW1vbi9uYXZiYXJcIjtcclxuXHJcbmNvbnN0IE5hdmJhciA9ICh7IGxyLCBuciwgdGhlbWUgfSkgPT4ge1xyXG4gIHJldHVybiAoXHJcbiAgICA8bmF2XHJcbiAgICAgIHJlZj17bnJ9XHJcbiAgICAgIGNsYXNzTmFtZT17YG5hdmJhciBuYXZiYXItZXhwYW5kLWxnIGNoYW5nZSAke1xyXG4gICAgICAgIHRoZW1lID09PSBcInRoZW1lTFwiID8gXCJsaWdodFwiIDogXCJcIlxyXG4gICAgICB9YH1cclxuICAgID5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICA8TGluayBocmVmPVwiL1wiPlxyXG4gICAgICAgICAgPGEgY2xhc3NOYW1lPVwibG9nb1wiPlxyXG4gICAgICAgICAgICB7dGhlbWUgPyAoXHJcbiAgICAgICAgICAgICAgdGhlbWUgPT09IFwidGhlbWVMXCIgPyAoXHJcbiAgICAgICAgICAgICAgICA8aW1nIHJlZj17bHJ9IHNyYz17YXBwRGF0YS5kYXJrTG9nb30gYWx0PVwibG9nb1wiIC8+XHJcbiAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgIDxpbWcgcmVmPXtscn0gc3JjPXthcHBEYXRhLmxpZ2h0TG9nb30gYWx0PVwibG9nb1wiIC8+XHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgIDxpbWcgcmVmPXtscn0gc3JjPXthcHBEYXRhLmxpZ2h0TG9nb30gYWx0PVwibG9nb1wiIC8+XHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgPC9MaW5rPlxyXG5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICBjbGFzc05hbWU9XCJuYXZiYXItdG9nZ2xlclwiXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZU1vYmlsZURyb3Bkb3dufVxyXG4gICAgICAgICAgZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXHJcbiAgICAgICAgICBkYXRhLXRhcmdldD1cIiNuYXZiYXJTdXBwb3J0ZWRDb250ZW50XCJcclxuICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJuYXZiYXJTdXBwb3J0ZWRDb250ZW50XCJcclxuICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiXHJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiVG9nZ2xlIG5hdmlnYXRpb25cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24tYmFyXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhcyBmYS1iYXJzXCI+PC9pPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbGxhcHNlIG5hdmJhci1jb2xsYXBzZVwiIGlkPVwibmF2YmFyU3VwcG9ydGVkQ29udGVudFwiPlxyXG4gICAgICAgICAgPHVsIGNsYXNzTmFtZT1cIm5hdmJhci1uYXYgbWwtYXV0b1wiPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibmF2LWl0ZW0gXCI+XHJcbiAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9cIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm5hdi1saW5rIFwiPkhvbWU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibmF2LWl0ZW1cIj5cclxuICAgICAgICAgICAgICA8TGluayBocmVmPXtgL2Fib3V0YH0+XHJcbiAgICAgICAgICAgICAgICA8YSBjbGFzc05hbWU9XCJuYXYtbGlua1wiPldobyB3ZSBhcmU8L2E+XHJcbiAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibmF2LWl0ZW0gXCI+XHJcbiAgICAgICAgICAgICAgPExpbmsgaHJlZj17YC9zZXJ2aWNlc2B9PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibmF2LWxpbmtcIj5PdXIgU2VydmljZXM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibmF2LWl0ZW0gXCI+XHJcbiAgICAgICAgICAgICAgPExpbmsgaHJlZj17YC9ibG9nL2Jsb2ctbGlnaHRgfT5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm5hdi1saW5rIFwiPkJsb2c8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibmF2LWl0ZW1cIj5cclxuICAgICAgICAgICAgICA8TGluayBocmVmPXtgL2NvbnRhY3QvY29udGFjdC1saWdodGB9PlxyXG4gICAgICAgICAgICAgICAgPGEgY2xhc3NOYW1lPVwibmF2LWxpbmtcIj5Db250YWN0PC9hPlxyXG4gICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uYXY+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IE5hdmJhcjtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiTGluayIsImFwcERhdGEiLCJoYW5kbGVEcm9wZG93biIsImhhbmRsZU1vYmlsZURyb3Bkb3duIiwiTmF2YmFyIiwibHIiLCJuciIsInRoZW1lIiwiZGFya0xvZ28iLCJsaWdodExvZ28iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/components/Navbar/navbar.jsx\n"); + +/***/ }), + +/***/ "./src/components/Services3/services3.jsx": +/*!************************************************!*\ + !*** ./src/components/Services3/services3.jsx ***! + \************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _common_cardMouseEffect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/cardMouseEffect */ \"./src/common/cardMouseEffect.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Services3\\\\services3.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n\n\n\n\n\nvar Services3 = function Services3() {\n _s();\n\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n (0,_common_cardMouseEffect__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(document.querySelectorAll(\".feat .items\"));\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"section\", {\n className: \"feat sub-bg section-padding\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"container\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"sec-head\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Best Services\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: \"We help to create strategies, design & development.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6 items md-mb30\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item wow fadeIn\",\n \"data-wow-delay\": \".3s\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"ion-ios-monitor\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h5\", {\n children: \"Strategic consulting\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"We listen to you, figure out what your project requires, and then craft a business plan just for you that works well in the UAE.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/about/about-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n className: \"more-stroke\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6 items active md-mb30\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item wow fadeIn\",\n \"data-wow-delay\": \".3s\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"ion-ios-bolt-outline\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h5\", {\n children: \"Preparing and submitting legal documents\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"We handle everything from registering and getting licenses to making sure your project follows all the rules, so you can start smoothly without any issues.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/about/about-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n className: \"more-stroke\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 44,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6 items sm-mb30\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item wow fadeIn\",\n \"data-wow-delay\": \".3s\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"ion-cube\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h5\", {\n children: \"Ongoing support\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"Once your business is up and running, we keep supporting you to help you adjust to the market and make sure you keep succeeding in the long run.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/about/about-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n className: \"more-stroke\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 61,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item wow fadeIn\",\n \"data-wow-delay\": \".3s\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"ion-ios-color-wand\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 82,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 81,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h5\", {\n children: \"Communication with government agencies\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 84,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"We take care of all the paperwork and dealings with government agencies to set up your project, so you can start your business smoothly and without delays.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/about/about-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n className: \"more-stroke\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 9\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 5\n }, _this);\n};\n\n_s(Services3, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = Services3;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Services3);\n\nvar _c;\n\n$RefreshReg$(_c, \"Services3\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9TZXJ2aWNlczMvc2VydmljZXMzLmpzeC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBOzs7QUFFQSxJQUFNRyxTQUFTLEdBQUcsU0FBWkEsU0FBWSxHQUFNO0FBQUE7O0FBQ3RCSCxFQUFBQSxzREFBQSxDQUFnQixZQUFNO0FBQ3BCRSxJQUFBQSxtRUFBZSxDQUFDRyxRQUFRLENBQUNDLGdCQUFULENBQTBCLGNBQTFCLENBQUQsQ0FBZjtBQUNELEdBRkQsRUFFRyxFQUZIO0FBR0Esc0JBQ0U7QUFBUyxhQUFTLEVBQUMsNkJBQW5CO0FBQUEsMkJBQ0U7QUFBSyxlQUFTLEVBQUMsV0FBZjtBQUFBLDhCQUNFO0FBQUssaUJBQVMsRUFBQyxLQUFmO0FBQUEsK0JBQ0U7QUFBSyxtQkFBUyxFQUFDLG9CQUFmO0FBQUEsaUNBQ0U7QUFBSyxxQkFBUyxFQUFDLFVBQWY7QUFBQSxvQ0FDRTtBQUFJLHVCQUFTLEVBQUMsWUFBZDtBQUEyQixnQ0FBZSxLQUExQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxxQkFERixlQUlFO0FBQUksdUJBQVMsRUFBQyxnQkFBZDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxxQkFKRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxlQURGLGVBYUU7QUFBSyxpQkFBUyxFQUFDLEtBQWY7QUFBQSxnQ0FDRTtBQUFLLG1CQUFTLEVBQUMsaUNBQWY7QUFBQSxpQ0FDRTtBQUFLLHFCQUFTLEVBQUMsaUJBQWY7QUFBaUMsOEJBQWUsS0FBaEQ7QUFBQSxvQ0FDRTtBQUFNLHVCQUFTLEVBQUMsTUFBaEI7QUFBQSxxQ0FDRTtBQUFHLHlCQUFTLEVBQUM7QUFBYjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxxQkFERixlQUlFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQUpGLGVBS0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBTEYsZUFVRSw4REFBQyxrREFBRDtBQUFNLGtCQUFJLEVBQUMsb0JBQVg7QUFBQSxxQ0FDRTtBQUFHLHlCQUFTLEVBQUMsYUFBYjtBQUFBLHVDQUNFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxxQkFWRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQURGLGVBbUJFO0FBQUssbUJBQVMsRUFBQyx3Q0FBZjtBQUFBLGlDQUNFO0FBQUsscUJBQVMsRUFBQyxpQkFBZjtBQUFpQyw4QkFBZSxLQUFoRDtBQUFBLG9DQUNFO0FBQU0sdUJBQVMsRUFBQyxNQUFoQjtBQUFBLHFDQUNFO0FBQUcseUJBQVMsRUFBQztBQUFiO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQURGLGVBSUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBSkYsZUFLRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxxQkFMRixlQVVFLDhEQUFDLGtEQUFEO0FBQU0sa0JBQUksRUFBQyxvQkFBWDtBQUFBLHFDQUNFO0FBQUcseUJBQVMsRUFBQyxhQUFiO0FBQUEsdUNBQ0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQVZGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBbkJGLGVBcUNFO0FBQUssbUJBQVMsRUFBQyxpQ0FBZjtBQUFBLGlDQUNFO0FBQUsscUJBQVMsRUFBQyxpQkFBZjtBQUFpQyw4QkFBZSxLQUFoRDtBQUFBLG9DQUNFO0FBQU0sdUJBQVMsRUFBQyxNQUFoQjtBQUFBLHFDQUNFO0FBQUcseUJBQVMsRUFBQztBQUFiO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQURGLGVBSUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBSkYsZUFLRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxxQkFMRixlQVVFLDhEQUFDLGtEQUFEO0FBQU0sa0JBQUksRUFBQyxvQkFBWDtBQUFBLHFDQUNFO0FBQUcseUJBQVMsRUFBQyxhQUFiO0FBQUEsdUNBQ0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQVZGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBckNGLGVBdURFO0FBQUssbUJBQVMsRUFBQyx5QkFBZjtBQUFBLGlDQUNFO0FBQUsscUJBQVMsRUFBQyxpQkFBZjtBQUFpQyw4QkFBZSxLQUFoRDtBQUFBLG9DQUNFO0FBQU0sdUJBQVMsRUFBQyxNQUFoQjtBQUFBLHFDQUNFO0FBQUcseUJBQVMsRUFBQztBQUFiO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQURGLGVBSUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBSkYsZUFLRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxxQkFMRixlQVVFLDhEQUFDLGtEQUFEO0FBQU0sa0JBQUksRUFBQyxvQkFBWDtBQUFBLHFDQUNFO0FBQUcseUJBQVMsRUFBQyxhQUFiO0FBQUEsdUNBQ0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQVZGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBdkRGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxlQWJGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsV0FERjtBQTRGRCxDQWhHRDs7R0FBTUg7O0tBQUFBO0FBa0dOLCtEQUFlQSxTQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL1NlcnZpY2VzMy9zZXJ2aWNlczMuanN4PzQ4ODQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgTGluayBmcm9tIFwibmV4dC9saW5rXCI7XHJcbmltcG9ydCBjYXJkTW91c2VFZmZlY3QgZnJvbSBcIi4uLy4uL2NvbW1vbi9jYXJkTW91c2VFZmZlY3RcIjtcclxuXHJcbmNvbnN0IFNlcnZpY2VzMyA9ICgpID0+IHtcclxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgY2FyZE1vdXNlRWZmZWN0KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuZmVhdCAuaXRlbXNcIikpO1xyXG4gIH0sIFtdKTtcclxuICByZXR1cm4gKFxyXG4gICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwiZmVhdCBzdWItYmcgc2VjdGlvbi1wYWRkaW5nXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTggY29sLW1kLTEwXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2VjLWhlYWRcIj5cclxuICAgICAgICAgICAgICA8aDYgY2xhc3NOYW1lPVwid293IGZhZGVJblwiIGRhdGEtd293LWRlbGF5PVwiLjVzXCI+XHJcbiAgICAgICAgICAgICAgICBCZXN0IFNlcnZpY2VzXHJcbiAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwid293IGNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgIFdlIGhlbHAgdG8gY3JlYXRlIHN0cmF0ZWdpZXMsIGRlc2lnbiAmYW1wOyBkZXZlbG9wbWVudC5cclxuICAgICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zIG1kLW1iMzBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIHdvdyBmYWRlSW5cIiBkYXRhLXdvdy1kZWxheT1cIi4zc1wiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb25cIj5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImlvbi1pb3MtbW9uaXRvclwiPjwvaT5cclxuICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPGg1PlN0cmF0ZWdpYyBjb25zdWx0aW5nPC9oNT5cclxuICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgIFdlIGxpc3RlbiB0byB5b3UsIGZpZ3VyZSBvdXQgd2hhdCB5b3VyIHByb2plY3QgcmVxdWlyZXMsIGFuZFxyXG4gICAgICAgICAgICAgICAgdGhlbiBjcmFmdCBhIGJ1c2luZXNzIHBsYW4ganVzdCBmb3IgeW91IHRoYXQgd29ya3Mgd2VsbCBpbiB0aGVcclxuICAgICAgICAgICAgICAgIFVBRS5cclxuICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9hYm91dC9hYm91dC1saWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPGEgY2xhc3NOYW1lPVwibW9yZS1zdHJva2VcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXMgYWN0aXZlIG1kLW1iMzBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIHdvdyBmYWRlSW5cIiBkYXRhLXdvdy1kZWxheT1cIi4zc1wiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb25cIj5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImlvbi1pb3MtYm9sdC1vdXRsaW5lXCI+PC9pPlxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8aDU+UHJlcGFyaW5nIGFuZCBzdWJtaXR0aW5nIGxlZ2FsIGRvY3VtZW50czwvaDU+XHJcbiAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICBXZSBoYW5kbGUgZXZlcnl0aGluZyBmcm9tIHJlZ2lzdGVyaW5nIGFuZCBnZXR0aW5nIGxpY2Vuc2VzIHRvXHJcbiAgICAgICAgICAgICAgICBtYWtpbmcgc3VyZSB5b3VyIHByb2plY3QgZm9sbG93cyBhbGwgdGhlIHJ1bGVzLCBzbyB5b3UgY2FuIHN0YXJ0XHJcbiAgICAgICAgICAgICAgICBzbW9vdGhseSB3aXRob3V0IGFueSBpc3N1ZXMuXHJcbiAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvYWJvdXQvYWJvdXQtbGlnaHRcIj5cclxuICAgICAgICAgICAgICAgIDxhIGNsYXNzTmFtZT1cIm1vcmUtc3Ryb2tlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zIHNtLW1iMzBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIHdvdyBmYWRlSW5cIiBkYXRhLXdvdy1kZWxheT1cIi4zc1wiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb25cIj5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImlvbi1jdWJlXCI+PC9pPlxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8aDU+T25nb2luZyBzdXBwb3J0PC9oNT5cclxuICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgIE9uY2UgeW91ciBidXNpbmVzcyBpcyB1cCBhbmQgcnVubmluZywgd2Uga2VlcCBzdXBwb3J0aW5nIHlvdSB0b1xyXG4gICAgICAgICAgICAgICAgaGVscCB5b3UgYWRqdXN0IHRvIHRoZSBtYXJrZXQgYW5kIG1ha2Ugc3VyZSB5b3Uga2VlcCBzdWNjZWVkaW5nXHJcbiAgICAgICAgICAgICAgICBpbiB0aGUgbG9uZyBydW4uXHJcbiAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvYWJvdXQvYWJvdXQtbGlnaHRcIj5cclxuICAgICAgICAgICAgICAgIDxhIGNsYXNzTmFtZT1cIm1vcmUtc3Ryb2tlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSB3b3cgZmFkZUluXCIgZGF0YS13b3ctZGVsYXk9XCIuM3NcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJpY29uXCI+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJpb24taW9zLWNvbG9yLXdhbmRcIj48L2k+XHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxoNT5Db21tdW5pY2F0aW9uIHdpdGggZ292ZXJubWVudCBhZ2VuY2llczwvaDU+XHJcbiAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICBXZSB0YWtlIGNhcmUgb2YgYWxsIHRoZSBwYXBlcndvcmsgYW5kIGRlYWxpbmdzIHdpdGggZ292ZXJubWVudFxyXG4gICAgICAgICAgICAgICAgYWdlbmNpZXMgdG8gc2V0IHVwIHlvdXIgcHJvamVjdCwgc28geW91IGNhbiBzdGFydCB5b3VyIGJ1c2luZXNzXHJcbiAgICAgICAgICAgICAgICBzbW9vdGhseSBhbmQgd2l0aG91dCBkZWxheXMuXHJcbiAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvYWJvdXQvYWJvdXQtbGlnaHRcIj5cclxuICAgICAgICAgICAgICAgIDxhIGNsYXNzTmFtZT1cIm1vcmUtc3Ryb2tlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBTZXJ2aWNlczM7XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIkxpbmsiLCJjYXJkTW91c2VFZmZlY3QiLCJTZXJ2aWNlczMiLCJ1c2VFZmZlY3QiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3JBbGwiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/components/Services3/services3.jsx\n"); + +/***/ }), + +/***/ "./src/components/Split/index.jsx": +/*!****************************************!*\ + !*** ./src/components/Split/index.jsx ***! + \****************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/classCallCheck */ \"./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/createClass */ \"./node_modules/@babel/runtime/helpers/esm/createClass.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized */ \"./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/inherits */ \"./node_modules/@babel/runtime/helpers/esm/inherits.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn */ \"./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf */ \"./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__);\n/* module decorator */ module = __webpack_require__.hmd(module);\n\n\n\n\n\n\n\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Split\\\\index.jsx\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\n\n\n\nvar Split = /*#__PURE__*/function (_React$Component) {\n (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(Split, _React$Component);\n\n var _super = _createSuper(Split);\n\n function Split() {\n var _this;\n\n (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, Split);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_6__[\"default\"])((0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_this), \"target\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createRef());\n\n (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_6__[\"default\"])((0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_this), \"split\", function () {\n if (_this.target.current) {\n Splitting({\n target: _this.target.current\n });\n }\n });\n\n (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_6__[\"default\"])((0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_this), \"componentDidMount\", _this.split);\n\n (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_6__[\"default\"])((0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_this), \"componentDidUpdate\", _this.split);\n\n return _this;\n }\n\n (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Split, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n ref: this.target,\n children: this.props.children\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 12\n }, this);\n }\n }]);\n\n return Split;\n}((react__WEBPACK_IMPORTED_MODULE_7___default().Component));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Split);\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9TcGxpdC9pbmRleC5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7O0lBRU1DOzs7Ozs7Ozs7Ozs7Ozs7OzhTQUNLRCxzREFBQTs7Z1NBRUQsWUFBTTtBQUNaLFVBQUksTUFBS0csTUFBTCxDQUFZQyxPQUFoQixFQUF5QjtBQUN2QkMsUUFBQUEsU0FBUyxDQUFDO0FBQUVGLFVBQUFBLE1BQU0sRUFBRSxNQUFLQSxNQUFMLENBQVlDO0FBQXRCLFNBQUQsQ0FBVDtBQUNEO0FBQ0Y7OzRTQUVtQixNQUFLRTs7NlNBQ0osTUFBS0E7Ozs7Ozs7V0FFMUIsa0JBQVM7QUFDUCwwQkFBTztBQUFLLFdBQUcsRUFBRSxLQUFLSCxNQUFmO0FBQUEsa0JBQXdCLEtBQUtJLEtBQUwsQ0FBV0M7QUFBbkM7QUFBQTtBQUFBO0FBQUE7QUFBQSxjQUFQO0FBQ0Q7Ozs7RUFkaUJSOztBQWlCcEIsK0RBQWVDLEtBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbXBvbmVudHMvU3BsaXQvaW5kZXguanN4Pzg3MTAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5cclxuY2xhc3MgU3BsaXQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG4gIHRhcmdldCA9IFJlYWN0LmNyZWF0ZVJlZigpO1xyXG5cclxuICBzcGxpdCA9ICgpID0+IHtcclxuICAgIGlmICh0aGlzLnRhcmdldC5jdXJyZW50KSB7XHJcbiAgICAgIFNwbGl0dGluZyh7IHRhcmdldDogdGhpcy50YXJnZXQuY3VycmVudCB9KTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICBjb21wb25lbnREaWRNb3VudCA9IHRoaXMuc3BsaXQ7XHJcbiAgY29tcG9uZW50RGlkVXBkYXRlID0gdGhpcy5zcGxpdDtcclxuXHJcbiAgcmVuZGVyKCkge1xyXG4gICAgcmV0dXJuIDxkaXYgcmVmPXt0aGlzLnRhcmdldH0+e3RoaXMucHJvcHMuY2hpbGRyZW59PC9kaXY+O1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgU3BsaXQ7XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIlNwbGl0IiwiY3JlYXRlUmVmIiwidGFyZ2V0IiwiY3VycmVudCIsIlNwbGl0dGluZyIsInNwbGl0IiwicHJvcHMiLCJjaGlsZHJlbiIsIkNvbXBvbmVudCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Split/index.jsx\n"); + +/***/ }), + +/***/ "./src/components/Team/team.jsx": +/*!**************************************!*\ + !*** ./src/components/Team/team.jsx ***! + \**************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/teamSkillsProgress */ \"./src/common/teamSkillsProgress.js\");\n/* harmony import */ var _common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/tooltipEffect */ \"./src/common/tooltipEffect.js\");\n/* harmony import */ var _data_sections_team_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../data/sections/team.json */ \"./src/data/sections/team.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Team\\\\team.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nvar Team = function Team() {\n _s();\n\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n (0,_common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n setTimeout(function () {\n (0,_common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__[\"default\"])();\n }, 1000);\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"section\", {\n className: \"team section-padding\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Our Team\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: \"Our team will simplify business setup in the UAE\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container-fluid\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/01.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/02.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/03.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 117,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/04.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/05.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/06.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/07.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 292,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 291,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 297,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 299,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 298,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 280,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 275,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/08.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 319,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 333,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 332,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 338,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 340,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 339,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 321,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 320,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 318,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 317,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 316,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/09.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 361,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 375,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 374,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 380,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 382,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 381,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 363,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 362,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 360,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 359,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 358,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/10.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 401,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 415,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 414,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 420,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 422,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 421,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 403,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 402,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 400,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 399,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 398,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/11.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 441,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 455,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 454,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 460,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 462,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 461,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 443,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 442,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 440,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 439,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 438,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/12.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 482,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 496,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 495,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 501,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 503,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 502,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 484,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 483,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 481,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 480,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 479,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 357,\n columnNumber: 9\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 5\n }, _this);\n};\n\n_s(Team, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = Team;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Team);\n\nvar _c;\n\n$RefreshReg$(_c, \"Team\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFBQSxXQURGO0FBNmZELENBcGdCRDs7R0FBTUU7O0tBQUFBO0FBc2dCTiwrREFBZUEsSUFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tcG9uZW50cy9UZWFtL3RlYW0uanN4P2I2OGUiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB0ZWFtU2tpbGxzUHJvZ3Jlc3MgZnJvbSBcIi4uLy4uL2NvbW1vbi90ZWFtU2tpbGxzUHJvZ3Jlc3NcIjtcclxuaW1wb3J0IHRvb2x0aXBFZmZlY3QgZnJvbSBcIi4uLy4uL2NvbW1vbi90b29sdGlwRWZmZWN0XCI7XHJcbmltcG9ydCB0ZWFtc0RhdGUgZnJvbSBcIi4uLy4uL2RhdGEvc2VjdGlvbnMvdGVhbS5qc29uXCI7XHJcblxyXG5jb25zdCBUZWFtID0gKCkgPT4ge1xyXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICB0ZWFtU2tpbGxzUHJvZ3Jlc3MoKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0b29sdGlwRWZmZWN0KCk7XHJcbiAgICB9LCAxMDAwKTtcclxuICB9LCBbXSk7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInRlYW0gc2VjdGlvbi1wYWRkaW5nXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOCBjb2wtbWQtMTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWMtaGVhZCB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNiBjbGFzc05hbWU9XCJ3b3cgZmFkZUluXCIgZGF0YS13b3ctZGVsYXk9XCIuNXNcIj5cclxuICAgICAgICAgICAgICAgIE91ciBUZWFtXHJcbiAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwid293IGNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgIE91ciB0ZWFtIHdpbGwgc2ltcGxpZnkgYnVzaW5lc3Mgc2V0dXAgaW4gdGhlIFVBRVxyXG4gICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wMS53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUxXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDRU8gTWFuYWdlciBDRU8gTWFuYWdlciBDRU8gTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzAyLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTJcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIHNtLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDMud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlM1wiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDQud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlNFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzA1LndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTFcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgxXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENFTyBNYW5hZ2VyIENFTyBNYW5hZ2VyIENFTyBNYW5hZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDYud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlMlwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDJcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJpb3IgRGVzaWduZXIgSW50ZXJpb3IgRGVzaWduZXIgSW50ZXJpb3IgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgc20tbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wNy53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUzXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wOC53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGU0XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoNFwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDbGllbnQgTWFuYWdlciBDbGllbnQgTWFuYWdlciBDbGllbnQgTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDkud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlMVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ0VPIE1hbmFnZXIgQ0VPIE1hbmFnZXIgQ0VPIE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8xMC53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMlwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBJbnRlcmlvciBEZXNpZ25lciBJbnRlcmlvciBEZXNpZ25lciBJbnRlcmlvciBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBzbS1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzExLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTNcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzEyLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTRcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGg0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGg0XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGg0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENsaWVudCBNYW5hZ2VyIENsaWVudCBNYW5hZ2VyIENsaWVudCBNYW5hZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvc2VjdGlvbj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgVGVhbTtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwidGVhbVNraWxsc1Byb2dyZXNzIiwidG9vbHRpcEVmZmVjdCIsInRlYW1zRGF0ZSIsIlRlYW0iLCJ1c2VFZmZlY3QiLCJzZXRUaW1lb3V0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Team/team.jsx\n"); + +/***/ }), + +/***/ "./src/components/Works3/works3.jsx": +/*!******************************************!*\ + !*** ./src/components/Works3/works3.jsx ***! + \******************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/head */ \"./node_modules/next/head.js\");\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_head__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _data_sections_works_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../data/sections/works.json */ \"./src/data/sections/works.json\");\n/* harmony import */ var swiper_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! swiper/react */ \"./node_modules/swiper/react/swiper-react.js\");\n/* harmony import */ var swiper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! swiper */ \"./node_modules/swiper/swiper.esm.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var swiper_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! swiper/css */ \"./node_modules/swiper/swiper.min.css\");\n/* harmony import */ var swiper_css__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(swiper_css__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var swiper_css_pagination__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! swiper/css/pagination */ \"./node_modules/swiper/modules/pagination/pagination.min.css\");\n/* harmony import */ var swiper_css_pagination__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(swiper_css_pagination__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var swiper_css_navigation__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! swiper/css/navigation */ \"./node_modules/swiper/modules/navigation/navigation.min.css\");\n/* harmony import */ var swiper_css_navigation__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(swiper_css_navigation__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Works3\\\\works3.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n/* eslint-disable @next/next/no-css-tags */\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n // import Swiper core and required modules\n\n\n\n\n\n\n\n\nswiper__WEBPACK_IMPORTED_MODULE_4__[\"default\"].use([swiper__WEBPACK_IMPORTED_MODULE_4__.Autoplay, swiper__WEBPACK_IMPORTED_MODULE_4__.Pagination, swiper__WEBPACK_IMPORTED_MODULE_4__.Navigation]);\n\nvar Works3 = function Works3() {\n _s();\n\n var navigationPrevRef = react__WEBPACK_IMPORTED_MODULE_0___default().useRef(null);\n var navigationNextRef = react__WEBPACK_IMPORTED_MODULE_0___default().useRef(null);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.Fragment, {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_head__WEBPACK_IMPORTED_MODULE_1___default()), {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"link\", {\n rel: \"stylesheet\",\n href: \"/css/ionicons.min.css\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"section\", {\n className: \"work-carousel2 metro section-padding\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"row\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"sec-head\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Portfolio\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: [\"Our Recent Web Design & \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"br\", {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 47\n }, _this), \" Some Past Projects.\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"container-fluid\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"row\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"col-lg-12 no-padding\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"swiper-container\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(swiper_react__WEBPACK_IMPORTED_MODULE_3__.Swiper, {\n className: \"swiper-wrapper\",\n slidesPerView: 2,\n centeredSlides: true,\n autoplay: {\n delay: 2500,\n disableOnInteraction: false\n },\n loop: true,\n navigation: {\n prevEl: navigationPrevRef.current,\n nextEl: navigationNextRef.current\n },\n onBeforeInit: function onBeforeInit(swiper) {\n swiper.params.navigation.prevEl = navigationPrevRef.current;\n swiper.params.navigation.nextEl = navigationNextRef.current;\n },\n onSwiper: function onSwiper(swiper) {\n setTimeout(function () {\n swiper.params.navigation.prevEl = navigationPrevRef.current;\n swiper.params.navigation.nextEl = navigationNextRef.current;\n swiper.navigation.destroy();\n swiper.navigation.init();\n swiper.navigation.update();\n });\n },\n speed: 1000,\n breakpoints: {\n 320: {\n slidesPerView: 1,\n spaceBetween: 0\n },\n 640: {\n slidesPerView: 1,\n spaceBetween: 0\n },\n 767: {\n slidesPerView: 1,\n spaceBetween: 0,\n centeredSlides: false\n },\n 991: {\n slidesPerView: 2\n }\n },\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(swiper_react__WEBPACK_IMPORTED_MODULE_3__.SwiperSlide, {\n className: \"swiper-slide\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"content\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"imgio\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"wow cimgio\",\n \"data-delay\": \"500\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 27\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/img/portfolio/2.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 27\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n children: \"art & illustration\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 101,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h4\", {\n children: \"Inspiring new space\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 106,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 100,\n columnNumber: 23\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 21\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(swiper_react__WEBPACK_IMPORTED_MODULE_3__.SwiperSlide, {\n className: \"swiper-slide\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"content\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"imgio\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"wow cimgio\",\n \"data-delay\": \"500\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 27\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/img/portfolio/1.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 121,\n columnNumber: 27\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n children: \"art & illustration\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h4\", {\n children: \"Inspiring new space\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 23\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 117,\n columnNumber: 21\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(swiper_react__WEBPACK_IMPORTED_MODULE_3__.SwiperSlide, {\n className: \"swiper-slide\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"content\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"imgio\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"wow cimgio\",\n \"data-delay\": \"500\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 27\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/img/portfolio/4.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 146,\n columnNumber: 27\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 144,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 143,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n children: \"art & illustration\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 150,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h4\", {\n children: \"Inspiring new space\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 149,\n columnNumber: 23\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 142,\n columnNumber: 21\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 141,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(swiper_react__WEBPACK_IMPORTED_MODULE_3__.SwiperSlide, {\n className: \"swiper-slide\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"content\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"imgio\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"wow cimgio\",\n \"data-delay\": \"500\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 27\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/img/portfolio/5.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 27\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n children: \"art & illustration\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h4\", {\n children: \"Inspiring new space\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 23\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 21\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(swiper_react__WEBPACK_IMPORTED_MODULE_3__.SwiperSlide, {\n className: \"swiper-slide\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"content\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"imgio\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"wow cimgio\",\n \"data-delay\": \"500\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 27\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/img/portfolio/6.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 27\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n children: \"art & illustration\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h4\", {\n children: \"Inspiring new space\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 23\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 21\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n ref: navigationNextRef,\n className: \"swiper-button-next swiper-nav-ctrl next-ctrl cursor-pointer\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"i\", {\n className: \"ion-ios-arrow-right\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n ref: navigationPrevRef,\n className: \"swiper-button-prev swiper-nav-ctrl prev-ctrl cursor-pointer\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"i\", {\n className: \"ion-ios-arrow-left\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 7\n }, _this)]\n }, void 0, true);\n};\n\n_s(Works3, \"bb8nXxlPHXqtz4fbTCx14vuH4yE=\");\n\n_c = Works3;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Works3);\n\nvar _c;\n\n$RefreshReg$(_c, \"Works3\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9Xb3JrczMvd29ya3MzLmpzeC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBO0FBQ0E7QUFDQTtBQUNBO0NBRUE7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0FLLGtEQUFBLENBQWUsQ0FBQ0MsNENBQUQsRUFBV0MsOENBQVgsRUFBdUJDLDhDQUF2QixDQUFmOztBQUVBLElBQU1HLE1BQU0sR0FBRyxTQUFUQSxNQUFTLEdBQU07QUFBQTs7QUFDbkIsTUFBTUMsaUJBQWlCLEdBQUdaLG1EQUFBLENBQWEsSUFBYixDQUExQjtBQUNBLE1BQU1jLGlCQUFpQixHQUFHZCxtREFBQSxDQUFhLElBQWIsQ0FBMUI7QUFDQSxzQkFDRTtBQUFBLDRCQUNFLDhEQUFDLGtEQUFEO0FBQUEsNkJBQ0U7QUFBTSxXQUFHLEVBQUMsWUFBVjtBQUF1QixZQUFJLEVBQUM7QUFBNUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsYUFERixlQUlFO0FBQVMsZUFBUyxFQUFDLHNDQUFuQjtBQUFBLDhCQUNFO0FBQUssaUJBQVMsRUFBQyxXQUFmO0FBQUEsK0JBQ0U7QUFBSyxtQkFBUyxFQUFDLEtBQWY7QUFBQSxpQ0FDRTtBQUFLLHFCQUFTLEVBQUMsb0JBQWY7QUFBQSxtQ0FDRTtBQUFLLHVCQUFTLEVBQUMsVUFBZjtBQUFBLHNDQUNFO0FBQUkseUJBQVMsRUFBQyxZQUFkO0FBQTJCLGtDQUFlLEtBQTFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQURGLGVBSUU7QUFBSSx5QkFBUyxFQUFDLGdCQUFkO0FBQUEsb0VBQzhCO0FBQUE7QUFBQTtBQUFBO0FBQUEseUJBRDlCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFKRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFB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QUE7QUFBQTtBQUFBO0FBQUEsZUFoQkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBSkY7QUFBQSxrQkFERjtBQXdORCxDQTNORDs7R0FBTUQ7O0tBQUFBO0FBNk5OLCtEQUFlQSxNQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL1dvcmtzMy93b3JrczMuanN4PzY3YTEiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1jc3MtdGFncyAqL1xyXG4vKiBlc2xpbnQtZGlzYWJsZSBAbmV4dC9uZXh0L25vLWltZy1lbGVtZW50ICovXHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IEhlYWQgZnJvbSBcIm5leHQvaGVhZFwiO1xyXG5pbXBvcnQgd29ya3NEYXRhIGZyb20gXCIuLi8uLi9kYXRhL3NlY3Rpb25zL3dvcmtzLmpzb25cIjtcclxuaW1wb3J0IHsgU3dpcGVyLCBTd2lwZXJTbGlkZSB9IGZyb20gXCJzd2lwZXIvcmVhY3RcIjtcclxuLy8gaW1wb3J0IFN3aXBlciBjb3JlIGFuZCByZXF1aXJlZCBtb2R1bGVzXHJcbmltcG9ydCBTd2lwZXJDb3JlLCB7IEF1dG9wbGF5LCBQYWdpbmF0aW9uLCBOYXZpZ2F0aW9uIH0gZnJvbSBcInN3aXBlclwiO1xyXG5pbXBvcnQgTGluayBmcm9tIFwibmV4dC9saW5rXCI7XHJcbmltcG9ydCBcInN3aXBlci9jc3NcIjtcclxuaW1wb3J0IFwic3dpcGVyL2Nzcy9wYWdpbmF0aW9uXCI7XHJcbmltcG9ydCBcInN3aXBlci9jc3MvbmF2aWdhdGlvblwiO1xyXG5Td2lwZXJDb3JlLnVzZShbQXV0b3BsYXksIFBhZ2luYXRpb24sIE5hdmlnYXRpb25dKTtcclxuXHJcbmNvbnN0IFdvcmtzMyA9ICgpID0+IHtcclxuICBjb25zdCBuYXZpZ2F0aW9uUHJldlJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcclxuICBjb25zdCBuYXZpZ2F0aW9uTmV4dFJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcclxuICByZXR1cm4gKFxyXG4gICAgPD5cclxuICAgICAgPEhlYWQ+XHJcbiAgICAgICAgPGxpbmsgcmVsPVwic3R5bGVzaGVldFwiIGhyZWY9XCIvY3NzL2lvbmljb25zLm1pbi5jc3NcIiAvPlxyXG4gICAgICA8L0hlYWQ+XHJcbiAgICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cIndvcmstY2Fyb3VzZWwyIG1ldHJvIHNlY3Rpb24tcGFkZGluZ1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy04IGNvbC1tZC0xMFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2VjLWhlYWRcIj5cclxuICAgICAgICAgICAgICAgIDxoNiBjbGFzc05hbWU9XCJ3b3cgZmFkZUluXCIgZGF0YS13b3ctZGVsYXk9XCIuNXNcIj5cclxuICAgICAgICAgICAgICAgICAgUG9ydGZvbGlvXHJcbiAgICAgICAgICAgICAgICA8L2g2PlxyXG4gICAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cIndvdyBjb2xvci1mb250XCI+XHJcbiAgICAgICAgICAgICAgICAgIE91ciBSZWNlbnQgV2ViIERlc2lnbiAmYW1wOyA8YnIgLz4gU29tZSBQYXN0IFByb2plY3RzLlxyXG4gICAgICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXItZmx1aWRcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTEyIG5vLXBhZGRpbmdcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInN3aXBlci1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgIDxTd2lwZXJcclxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwic3dpcGVyLXdyYXBwZXJcIlxyXG4gICAgICAgICAgICAgICAgICBzbGlkZXNQZXJWaWV3PXsyfVxyXG4gICAgICAgICAgICAgICAgICBjZW50ZXJlZFNsaWRlcz17dHJ1ZX1cclxuICAgICAgICAgICAgICAgICAgYXV0b3BsYXk9e3tcclxuICAgICAgICAgICAgICAgICAgICBkZWxheTogMjUwMCxcclxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlT25JbnRlcmFjdGlvbjogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgIGxvb3A9e3RydWV9XHJcbiAgICAgICAgICAgICAgICAgIG5hdmlnYXRpb249e3tcclxuICAgICAgICAgICAgICAgICAgICBwcmV2RWw6IG5hdmlnYXRpb25QcmV2UmVmLmN1cnJlbnQsXHJcbiAgICAgICAgICAgICAgICAgICAgbmV4dEVsOiBuYXZpZ2F0aW9uTmV4dFJlZi5jdXJyZW50LFxyXG4gICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICBvbkJlZm9yZUluaXQ9eyhzd2lwZXIpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBzd2lwZXIucGFyYW1zLm5hdmlnYXRpb24ucHJldkVsID0gbmF2aWdhdGlvblByZXZSZWYuY3VycmVudDtcclxuICAgICAgICAgICAgICAgICAgICBzd2lwZXIucGFyYW1zLm5hdmlnYXRpb24ubmV4dEVsID0gbmF2aWdhdGlvbk5leHRSZWYuY3VycmVudDtcclxuICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgb25Td2lwZXI9eyhzd2lwZXIpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgIHN3aXBlci5wYXJhbXMubmF2aWdhdGlvbi5wcmV2RWwgPVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0aW9uUHJldlJlZi5jdXJyZW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgc3dpcGVyLnBhcmFtcy5uYXZpZ2F0aW9uLm5leHRFbCA9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRpb25OZXh0UmVmLmN1cnJlbnQ7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgc3dpcGVyLm5hdmlnYXRpb24uZGVzdHJveSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgc3dpcGVyLm5hdmlnYXRpb24uaW5pdCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgc3dpcGVyLm5hdmlnYXRpb24udXBkYXRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgIHNwZWVkPXsxMDAwfVxyXG4gICAgICAgICAgICAgICAgICBicmVha3BvaW50cz17e1xyXG4gICAgICAgICAgICAgICAgICAgIDMyMDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogMSxcclxuICAgICAgICAgICAgICAgICAgICAgIHNwYWNlQmV0d2VlbjogMCxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIDY0MDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogMSxcclxuICAgICAgICAgICAgICAgICAgICAgIHNwYWNlQmV0d2VlbjogMCxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIDc2Nzoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogMSxcclxuICAgICAgICAgICAgICAgICAgICAgIHNwYWNlQmV0d2VlbjogMCxcclxuICAgICAgICAgICAgICAgICAgICAgIGNlbnRlcmVkU2xpZGVzOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIDk5MToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogMixcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8U3dpcGVyU2xpZGUgY2xhc3NOYW1lPVwic3dpcGVyLXNsaWRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJpbWdpb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIndvdyBjaW1naW9cIiBkYXRhLWRlbGF5PVwiNTAwXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy9wb3J0Zm9saW8vMi5qcGdcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgey8qIDxMaW5rIGhyZWY9e2Avd29ya3MzL3dvcmtzMy1kYXJrYH0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9MaW5rPiAqL31cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcnQgJmFtcDsgaWxsdXN0cmF0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoND5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB7LyogPExpbmtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9e2AvcHJvamVjdC1kZXRhaWxzMi9wcm9qZWN0LWRldGFpbHMyLWRhcmtgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGlyaW5nIG5ldyBzcGFjZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHsvKiA8L0xpbms+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2g0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvU3dpcGVyU2xpZGU+XHJcbiAgICAgICAgICAgICAgICAgIDxTd2lwZXJTbGlkZSBjbGFzc05hbWU9XCJzd2lwZXItc2xpZGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImltZ2lvXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwid293IGNpbWdpb1wiIGRhdGEtZGVsYXk9XCI1MDBcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3BvcnRmb2xpby8xLmpwZ1wiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB7LyogPExpbmsgaHJlZj17YC93b3JrczMvd29ya3MzLWRhcmtgfT4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYXJ0ICZhbXA7IGlsbHVzdHJhdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHsvKiA8L0xpbms+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgey8qIDxMaW5rXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPXtgL3Byb2plY3QtZGV0YWlsczIvcHJvamVjdC1kZXRhaWxzMi1kYXJrYH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEluc3BpcmluZyBuZXcgc3BhY2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB7LyogPC9MaW5rPiAqL31cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9oND5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L1N3aXBlclNsaWRlPlxyXG5cclxuICAgICAgICAgICAgICAgICAgPFN3aXBlclNsaWRlIGNsYXNzTmFtZT1cInN3aXBlci1zbGlkZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaW1naW9cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ3b3cgY2ltZ2lvXCIgZGF0YS1kZWxheT1cIjUwMFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvcG9ydGZvbGlvLzQuanBnXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGg2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHsvKiA8TGluayBocmVmPXtgL3dvcmtzMy93b3JrczMtZGFya2B9PiAqL31cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcnQgJmFtcDsgaWxsdXN0cmF0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgey8qIDwvTGluaz4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoND5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB7LyogPExpbmtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9e2AvcHJvamVjdC1kZXRhaWxzMi9wcm9qZWN0LWRldGFpbHMyLWRhcmtgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGlyaW5nIG5ldyBzcGFjZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHsvKiA8L0xpbms+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2g0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvU3dpcGVyU2xpZGU+XHJcbiAgICAgICAgICAgICAgICAgIDxTd2lwZXJTbGlkZSBjbGFzc05hbWU9XCJzd2lwZXItc2xpZGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImltZ2lvXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwid293IGNpbWdpb1wiIGRhdGEtZGVsYXk9XCI1MDBcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3BvcnRmb2xpby81LmpwZ1wiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB7LyogPExpbmsgaHJlZj17YC93b3JrczMvd29ya3MzLWRhcmtgfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xpbms+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFydCAmYW1wOyBpbGx1c3RyYXRpb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHsvKiA8TGlua1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj17YC9wcm9qZWN0LWRldGFpbHMyL3Byb2plY3QtZGV0YWlsczItZGFya2B9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvTGluaz4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGlyaW5nIG5ldyBzcGFjZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2g0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvU3dpcGVyU2xpZGU+XHJcbiAgICAgICAgICAgICAgICAgIDxTd2lwZXJTbGlkZSBjbGFzc05hbWU9XCJzd2lwZXItc2xpZGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImltZ2lvXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwid293IGNpbWdpb1wiIGRhdGEtZGVsYXk9XCI1MDBcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3BvcnRmb2xpby82LmpwZ1wiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB7LyogPExpbmsgaHJlZj17YC93b3JrczMvd29ya3MzLWRhcmtgfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xpbms+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFydCAmYW1wOyBpbGx1c3RyYXRpb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHsvKiA8TGlua1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj17YC9wcm9qZWN0LWRldGFpbHMyL3Byb2plY3QtZGV0YWlsczItZGFya2B9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvTGluaz4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGlyaW5nIG5ldyBzcGFjZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2g0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvU3dpcGVyU2xpZGU+XHJcbiAgICAgICAgICAgICAgICA8L1N3aXBlcj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgIHJlZj17bmF2aWdhdGlvbk5leHRSZWZ9XHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInN3aXBlci1idXR0b24tbmV4dCBzd2lwZXItbmF2LWN0cmwgbmV4dC1jdHJsIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwiaW9uLWlvcy1hcnJvdy1yaWdodFwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICByZWY9e25hdmlnYXRpb25QcmV2UmVmfVxyXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJzd2lwZXItYnV0dG9uLXByZXYgc3dpcGVyLW5hdi1jdHJsIHByZXYtY3RybCBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImlvbi1pb3MtYXJyb3ctbGVmdFwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L3NlY3Rpb24+XHJcbiAgICA8Lz5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgV29ya3MzO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJIZWFkIiwid29ya3NEYXRhIiwiU3dpcGVyIiwiU3dpcGVyU2xpZGUiLCJTd2lwZXJDb3JlIiwiQXV0b3BsYXkiLCJQYWdpbmF0aW9uIiwiTmF2aWdhdGlvbiIsIkxpbmsiLCJ1c2UiLCJXb3JrczMiLCJuYXZpZ2F0aW9uUHJldlJlZiIsInVzZVJlZiIsIm5hdmlnYXRpb25OZXh0UmVmIiwiZGVsYXkiLCJkaXNhYmxlT25JbnRlcmFjdGlvbiIsInByZXZFbCIsImN1cnJlbnQiLCJuZXh0RWwiLCJzd2lwZXIiLCJwYXJhbXMiLCJuYXZpZ2F0aW9uIiwic2V0VGltZW91dCIsImRlc3Ryb3kiLCJpbml0IiwidXBkYXRlIiwic2xpZGVzUGVyVmlldyIsInNwYWNlQmV0d2VlbiIsImNlbnRlcmVkU2xpZGVzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Works3/works3.jsx\n"); + +/***/ }), + +/***/ "./src/components/blogs/Blogs4/blogs4.jsx": +/*!************************************************!*\ + !*** ./src/components/blogs/Blogs4/blogs4.jsx ***! + \************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var swiper_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! swiper/react */ \"./node_modules/swiper/react/swiper-react.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var swiper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! swiper */ \"./node_modules/swiper/swiper.esm.js\");\n/* harmony import */ var swiper_css__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! swiper/css */ \"./node_modules/swiper/swiper.min.css\");\n/* harmony import */ var swiper_css__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(swiper_css__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var swiper_css_pagination__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! swiper/css/pagination */ \"./node_modules/swiper/modules/pagination/pagination.min.css\");\n/* harmony import */ var swiper_css_pagination__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(swiper_css_pagination__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var swiper_css_navigation__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! swiper/css/navigation */ \"./node_modules/swiper/modules/navigation/navigation.min.css\");\n/* harmony import */ var swiper_css_navigation__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(swiper_css_navigation__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var swiper_css_effect_fade__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! swiper/css/effect-fade */ \"./node_modules/swiper/modules/effect-fade/effect-fade.min.css\");\n/* harmony import */ var swiper_css_effect_fade__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(swiper_css_effect_fade__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _common_thumparallax__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../common/thumparallax */ \"./src/common/thumparallax.js\");\n/* harmony import */ var _common_removeSlashpagination__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../../common/removeSlashpagination */ \"./src/common/removeSlashpagination.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__);\n/* module decorator */ module = __webpack_require__.hmd(module);\n\n\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\blogs\\\\Blogs4\\\\blogs4.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\n\n\n\n\n\nswiper__WEBPACK_IMPORTED_MODULE_4__[\"default\"].use([swiper__WEBPACK_IMPORTED_MODULE_4__.Navigation, swiper__WEBPACK_IMPORTED_MODULE_4__.Pagination, swiper__WEBPACK_IMPORTED_MODULE_4__.Parallax, swiper__WEBPACK_IMPORTED_MODULE_4__.EffectFade]);\n\nvar Blogs4 = function Blogs4() {\n _s();\n\n var _React$useState = react__WEBPACK_IMPORTED_MODULE_1___default().useState(true),\n _React$useState2 = (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_React$useState, 2),\n load = _React$useState2[0],\n setLoad = _React$useState2[1];\n\n react__WEBPACK_IMPORTED_MODULE_1___default().useEffect(function () {\n setTimeout(function () {\n setLoad(false);\n (0,_common_removeSlashpagination__WEBPACK_IMPORTED_MODULE_10__[\"default\"])();\n (0,_common_thumparallax__WEBPACK_IMPORTED_MODULE_9__.thumparallax)();\n }, 1000);\n }, []);\n var navigationPrevRef = react__WEBPACK_IMPORTED_MODULE_1___default().useRef(null);\n var navigationNextRef = react__WEBPACK_IMPORTED_MODULE_1___default().useRef(null);\n var paginationRef = react__WEBPACK_IMPORTED_MODULE_1___default().useRef(null);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"section\", {\n className: \"blog-crv sub-bg\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"h2\", {\n style: {\n display: \"none\"\n },\n children: \"\\xA0\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"stories\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"container-fluid\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"col-lg-6 no-padding\",\n children: !load ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(swiper_react__WEBPACK_IMPORTED_MODULE_2__.Swiper, {\n speed: 800,\n effect: \"fade\",\n spaceBetween: 0,\n loop: true,\n parallax: true,\n navigation: {\n prevEl: navigationPrevRef.current,\n nextEl: navigationNextRef.current\n },\n pagination: {\n type: \"fraction\",\n clickable: true,\n el: paginationRef.current\n },\n onBeforeInit: function onBeforeInit(swiper) {\n swiper.params.navigation.prevEl = navigationPrevRef.current;\n swiper.params.navigation.nextEl = navigationNextRef.current;\n swiper.params.pagination.el = paginationRef.current;\n },\n onSwiper: function onSwiper(swiper) {\n setTimeout(function () {\n for (var i = 0; i < swiper.slides.length; i++) {\n swiper.slides[i].childNodes[0].setAttribute(\"data-swiper-parallax\", 0.75 * swiper.width);\n }\n\n swiper.params.navigation.prevEl = navigationPrevRef.current;\n swiper.params.navigation.nextEl = navigationNextRef.current;\n swiper.params.pagination.el = paginationRef.current;\n swiper.navigation.destroy();\n swiper.navigation.init();\n swiper.navigation.update();\n swiper.pagination.destroy();\n swiper.pagination.init();\n swiper.pagination.update();\n });\n },\n className: \"swiper-wrapper swiper-container swiper-img\",\n slidesPerView: 1,\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(swiper_react__WEBPACK_IMPORTED_MODULE_2__.SwiperSlide, {\n className: \"swiper-slide\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"item wow fadeIn\",\n \"data-wow-delay\": \".3s\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"img\", {\n className: \"thumparallax\",\n src: \"/img/blog/blog img1.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 21\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(swiper_react__WEBPACK_IMPORTED_MODULE_2__.SwiperSlide, {\n className: \"swiper-slide\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"item wow fadeIn\",\n \"data-wow-delay\": \".3s\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"img\", {\n className: \"thumparallax\",\n src: \"/img/blog/blog img2.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 105,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 104,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 103,\n columnNumber: 21\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 102,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(swiper_react__WEBPACK_IMPORTED_MODULE_2__.SwiperSlide, {\n className: \"swiper-slide\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"item wow fadeIn\",\n \"data-wow-delay\": \".3s\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"img\", {\n className: \"thumparallax\",\n src: \"/img/blog/blog img3.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 21\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 17\n }, _this) : null\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"col-lg-6 no-padding valign\",\n children: !load ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(swiper_react__WEBPACK_IMPORTED_MODULE_2__.Swiper, {\n speed: 800,\n spaceBetween: 0,\n loop: true,\n navigation: {\n prevEl: navigationPrevRef.current,\n nextEl: navigationNextRef.current\n },\n pagination: {\n type: \"fraction\",\n clickable: true,\n el: paginationRef.current\n },\n onBeforeInit: function onBeforeInit(swiper) {\n swiper.params.navigation.prevEl = navigationPrevRef.current;\n swiper.params.navigation.nextEl = navigationNextRef.current;\n swiper.params.pagination.el = paginationRef.current;\n },\n onSwiper: function onSwiper(swiper) {\n setTimeout(function () {\n for (var i = 0; i < swiper.slides.length; i++) {\n swiper.slides[i].childNodes[0].setAttribute(\"data-swiper-parallax\", 0.75 * swiper.width);\n }\n\n swiper.params.navigation.prevEl = navigationPrevRef.current;\n swiper.params.navigation.nextEl = navigationNextRef.current;\n swiper.params.pagination.el = paginationRef.current;\n swiper.navigation.destroy();\n swiper.navigation.init();\n swiper.navigation.update();\n swiper.pagination.destroy();\n swiper.pagination.init();\n swiper.pagination.update();\n });\n },\n className: \"swiper-wrapper swiper-container swiper-content\",\n slidesPerView: 1,\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(swiper_react__WEBPACK_IMPORTED_MODULE_2__.SwiperSlide, {\n className: \"swiper-slide\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"item wow fadeIn\",\n \"data-wow-delay\": \".6s\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"content\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"tags\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_3___default()), {\n href: \"/blog/blog-dark\",\n children: \"Trending\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"info\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_3___default()), {\n href: \"/blog/blog-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"a\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"i\", {\n className: \"far fa-clock\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 31\n }, _this), \"01 April 2024\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 29\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"title\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"h4\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_3___default()), {\n href: \"/blog-details/blog-details-dark\",\n children: \"Business Hub: Its role in supporting companies in the stages of establishment, development, and...\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 29\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"text\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"p\", {\n children: \"In a rapidly evolving and competitive business landscape, companies often need specialized support and guidance to meet challenges, exploit opportunities, and achieve sustainable growth.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"more\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_3___default()), {\n href: \"/blog-details/blog-details-dark\",\n children: \"Read More\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 21\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(swiper_react__WEBPACK_IMPORTED_MODULE_2__.SwiperSlide, {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"item wow fadeIn\",\n \"data-wow-delay\": \".6s\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"content\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"tags\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_3___default()), {\n href: \"/blog/blog-dark\",\n children: \"Trending\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"info\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_3___default()), {\n href: \"/blog/blog-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"a\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"i\", {\n className: \"far fa-clock\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 31\n }, _this), \"01 April 2024\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 29\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"title\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"h4\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_3___default()), {\n href: \"/blog-details/blog-details-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"a\", {\n children: \"Business Hub: Empowering Companies through Establishment\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 230,\n columnNumber: 31\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 29\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"text\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"p\", {\n children: \"n the fast-paced and competitive business landscape, companies often require specialized support and guidance to navigate challenges, capitalize on opportunities, and achieve sustainable growth.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"more\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_3___default()), {\n href: \"/blog-details/blog-details-dark\",\n children: \"Read More\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 21\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(swiper_react__WEBPACK_IMPORTED_MODULE_2__.SwiperSlide, {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"item wow fadeIn\",\n \"data-wow-delay\": \".6s\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"content\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"tags\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_3___default()), {\n href: \"/blog/blog-dark\",\n children: \"Trending\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 256,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"info\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_3___default()), {\n href: \"/blog/blog-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"a\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"i\", {\n className: \"far fa-clock\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 262,\n columnNumber: 31\n }, _this), \"01 April 2024\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 29\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"title\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"h4\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_3___default()), {\n href: \"/blog-details/blog-details-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"a\", {\n children: \"The Importance of Consulting\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 270,\n columnNumber: 31\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 29\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"text\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"p\", {\n children: \"In today's fast-paced and competitive business world, seeking advice and guidance from consultants has become increasingly crucial for companies aiming to thrive and succeed.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 275,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 274,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"more\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_3___default()), {\n href: \"/blog-details/blog-details-dark\",\n children: \"Read More\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 283,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 282,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 255,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 254,\n columnNumber: 21\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 253,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 17\n }, _this) : null\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"controls\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n ref: navigationNextRef,\n className: \"swiper-button-next swiper-nav-ctrl next-ctrl\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"i\", {\n className: \"fas fa-caret-up\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 300,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 296,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n ref: navigationPrevRef,\n className: \"swiper-button-prev swiper-nav-ctrl prev-ctrl\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"i\", {\n className: \"fas fa-caret-down\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 306,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 302,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(\"div\", {\n className: \"swiper-pagination\",\n ref: paginationRef\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 308,\n columnNumber: 13\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 295,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 5\n }, _this);\n};\n\n_s(Blogs4, \"YbbpLk4SWaLFZ9AtkCChqgzqMUo=\");\n\n_c = Blogs4;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Blogs4);\n\nvar _c;\n\n$RefreshReg$(_c, \"Blogs4\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9ibG9ncy9CbG9nczQvYmxvZ3M0LmpzeC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBSSxrREFBQSxDQUFlLENBQUNDLDhDQUFELEVBQWFDLDhDQUFiLEVBQXlCQyw0Q0FBekIsRUFBbUNDLDhDQUFuQyxDQUFmOztBQUVBLElBQU1JLE1BQU0sR0FBRyxTQUFUQSxNQUFTLEdBQU07QUFBQTs7QUFDbkIsd0JBQXdCWixxREFBQSxDQUFlLElBQWYsQ0FBeEI7QUFBQTtBQUFBLE1BQU9jLElBQVA7QUFBQSxNQUFhQyxPQUFiOztBQUNBZixFQUFBQSxzREFBQSxDQUFnQixZQUFNO0FBQ3BCaUIsSUFBQUEsVUFBVSxDQUFDLFlBQU07QUFDZkYsTUFBQUEsT0FBTyxDQUFDLEtBQUQsQ0FBUDtBQUNBTCxNQUFBQSwwRUFBeUI7QUFDekJELE1BQUFBLGtFQUFZO0FBQ2IsS0FKUyxFQUlQLElBSk8sQ0FBVjtBQUtELEdBTkQsRUFNRyxFQU5IO0FBUUEsTUFBTVMsaUJBQWlCLEdBQUdsQixtREFBQSxDQUFhLElBQWIsQ0FBMUI7QUFDQSxNQUFNb0IsaUJBQWlCLEdBQUdwQixtREFBQSxDQUFhLElBQWIsQ0FBMUI7QUFDQSxNQUFNcUIsYUFBYSxHQUFHckIsbURBQUEsQ0FBYSxJQUFiLENBQXRCO0FBRUEsc0JBQ0U7QUFBUyxhQUFTLEVBQUMsaUJBQW5CO0FBQUEsNEJBQ0U7QUFBSSxXQUFLLEVBQUU7QUFBRXNCLFFBQUFBLE9BQU8sRUFBRTtBQUFYLE9BQVg7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsYUFERixlQUVFO0FBQUssZUFBUyxFQUFDLFNBQWY7QUFBQSw2QkFDRTtBQUFLLGlCQUFTLEVBQUMsaUJBQWY7QUFBQSxnQ0FDRTtBQUFLLG1CQUFTLEVBQUMsS0FBZjtBQUFBLGtDQUNFO0FBQUss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QkFBUyxFQUFDLDhDQUZaO0FBQUEsbUNBSUU7QUFBRyx1QkFBUyxFQUFDO0FBQWI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUpGO0FBQUE7QUFBQTtBQUFBO0FBQUEsbUJBUEYsZUFhRTtBQUFLLHFCQUFTLEVBQUMsbUJBQWY7QUFBbUMsZUFBRyxFQUFFRztBQUF4QztBQUFBO0FBQUE7QUFBQTtBQUFBLG1CQWJGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFoUUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxhQUZGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxXQURGO0FBdVJELENBclNEOztHQUFNVDs7S0FBQUE7QUF1U04sK0RBQWVBLE1BQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbXBvbmVudHMvYmxvZ3MvQmxvZ3M0L2Jsb2dzNC5qc3g/YmYyMCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAbmV4dC9uZXh0L25vLWltZy1lbGVtZW50ICovXHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgU3dpcGVyLCBTd2lwZXJTbGlkZSB9IGZyb20gXCJzd2lwZXIvcmVhY3RcIjtcclxuaW1wb3J0IExpbmsgZnJvbSBcIm5leHQvbGlua1wiO1xyXG5pbXBvcnQgU3dpcGVyQ29yZSwge1xyXG4gIE5hdmlnYXRpb24sXHJcbiAgUGFnaW5hdGlvbixcclxuICBQYXJhbGxheCxcclxuICBFZmZlY3RGYWRlLFxyXG59IGZyb20gXCJzd2lwZXJcIjtcclxuXHJcbmltcG9ydCBcInN3aXBlci9jc3NcIjtcclxuaW1wb3J0IFwic3dpcGVyL2Nzcy9wYWdpbmF0aW9uXCI7XHJcbmltcG9ydCBcInN3aXBlci9jc3MvbmF2aWdhdGlvblwiO1xyXG5pbXBvcnQgXCJzd2lwZXIvY3NzL2VmZmVjdC1mYWRlXCI7XHJcbmltcG9ydCB7IHRodW1wYXJhbGxheCB9IGZyb20gXCIuLi8uLi8uLi9jb21tb24vdGh1bXBhcmFsbGF4XCI7XHJcbmltcG9ydCByZW1vdmVTbGFzaEZyb21QYWdpbmF0aW9uIGZyb20gXCIuLi8uLi8uLi9jb21tb24vcmVtb3ZlU2xhc2hwYWdpbmF0aW9uXCI7XHJcblxyXG5Td2lwZXJDb3JlLnVzZShbTmF2aWdhdGlvbiwgUGFnaW5hdGlvbiwgUGFyYWxsYXgsIEVmZmVjdEZhZGVdKTtcclxuXHJcbmNvbnN0IEJsb2dzNCA9ICgpID0+IHtcclxuICBjb25zdCBbbG9hZCwgc2V0TG9hZF0gPSBSZWFjdC51c2VTdGF0ZSh0cnVlKTtcclxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHNldExvYWQoZmFsc2UpO1xyXG4gICAgICByZW1vdmVTbGFzaEZyb21QYWdpbmF0aW9uKCk7XHJcbiAgICAgIHRodW1wYXJhbGxheCgpO1xyXG4gICAgfSwgMTAwMCk7XHJcbiAgfSwgW10pO1xyXG5cclxuICBjb25zdCBuYXZpZ2F0aW9uUHJldlJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcclxuICBjb25zdCBuYXZpZ2F0aW9uTmV4dFJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcclxuICBjb25zdCBwYWdpbmF0aW9uUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwiYmxvZy1jcnYgc3ViLWJnXCI+XHJcbiAgICAgIDxoMiBzdHlsZT17eyBkaXNwbGF5OiBcIm5vbmVcIiB9fT4mbmJzcDs8L2gyPlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInN0b3JpZXNcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctNiBuby1wYWRkaW5nXCI+XHJcbiAgICAgICAgICAgICAgeyFsb2FkID8gKFxyXG4gICAgICAgICAgICAgICAgPFN3aXBlclxyXG4gICAgICAgICAgICAgICAgICBzcGVlZD17ODAwfVxyXG4gICAgICAgICAgICAgICAgICBlZmZlY3Q9XCJmYWRlXCJcclxuICAgICAgICAgICAgICAgICAgc3BhY2VCZXR3ZWVuPXswfVxyXG4gICAgICAgICAgICAgICAgICBsb29wPXt0cnVlfVxyXG4gICAgICAgICAgICAgICAgICBwYXJhbGxheD17dHJ1ZX1cclxuICAgICAgICAgICAgICAgICAgbmF2aWdhdGlvbj17e1xyXG4gICAgICAgICAgICAgICAgICAgIHByZXZFbDogbmF2aWdhdGlvblByZXZSZWYuY3VycmVudCxcclxuICAgICAgICAgICAgICAgICAgICBuZXh0RWw6IG5hdmlnYXRpb25OZXh0UmVmLmN1cnJlbnQsXHJcbiAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgIHBhZ2luYXRpb249e3tcclxuICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImZyYWN0aW9uXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgY2xpY2thYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIGVsOiBwYWdpbmF0aW9uUmVmLmN1cnJlbnQsXHJcbiAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgIG9uQmVmb3JlSW5pdD17KHN3aXBlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHN3aXBlci5wYXJhbXMubmF2aWdhdGlvbi5wcmV2RWwgPSBuYXZpZ2F0aW9uUHJldlJlZi5jdXJyZW50O1xyXG4gICAgICAgICAgICAgICAgICAgIHN3aXBlci5wYXJhbXMubmF2aWdhdGlvbi5uZXh0RWwgPSBuYXZpZ2F0aW9uTmV4dFJlZi5jdXJyZW50O1xyXG4gICAgICAgICAgICAgICAgICAgIHN3aXBlci5wYXJhbXMucGFnaW5hdGlvbi5lbCA9IHBhZ2luYXRpb25SZWYuY3VycmVudDtcclxuICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgb25Td2lwZXI9eyhzd2lwZXIpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3dpcGVyLnNsaWRlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzd2lwZXIuc2xpZGVzW2ldLmNoaWxkTm9kZXNbMF0uc2V0QXR0cmlidXRlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGF0YS1zd2lwZXItcGFyYWxsYXhcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAwLjc1ICogc3dpcGVyLndpZHRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgc3dpcGVyLnBhcmFtcy5uYXZpZ2F0aW9uLnByZXZFbCA9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRpb25QcmV2UmVmLmN1cnJlbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICBzd2lwZXIucGFyYW1zLm5hdmlnYXRpb24ubmV4dEVsID1cclxuICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGlvbk5leHRSZWYuY3VycmVudDtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICBzd2lwZXIucGFyYW1zLnBhZ2luYXRpb24uZWwgPSBwYWdpbmF0aW9uUmVmLmN1cnJlbnQ7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgc3dpcGVyLm5hdmlnYXRpb24uZGVzdHJveSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgc3dpcGVyLm5hdmlnYXRpb24uaW5pdCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgc3dpcGVyLm5hdmlnYXRpb24udXBkYXRlKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgc3dpcGVyLnBhZ2luYXRpb24uZGVzdHJveSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgc3dpcGVyLnBhZ2luYXRpb24uaW5pdCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgc3dpcGVyLnBhZ2luYXRpb24udXBkYXRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInN3aXBlci13cmFwcGVyIHN3aXBlci1jb250YWluZXIgc3dpcGVyLWltZ1wiXHJcbiAgICAgICAgICAgICAgICAgIHNsaWRlc1BlclZpZXc9ezF9XHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxTd2lwZXJTbGlkZSBjbGFzc05hbWU9XCJzd2lwZXItc2xpZGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gd293IGZhZGVJblwiIGRhdGEtd293LWRlbGF5PVwiLjNzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGh1bXBhcmFsbGF4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCIvaW1nL2Jsb2cvYmxvZyBpbWcxLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9Td2lwZXJTbGlkZT5cclxuICAgICAgICAgICAgICAgICAgPFN3aXBlclNsaWRlIGNsYXNzTmFtZT1cInN3aXBlci1zbGlkZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSB3b3cgZmFkZUluXCIgZGF0YS13b3ctZGVsYXk9XCIuM3NcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0aHVtcGFyYWxsYXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cIi9pbWcvYmxvZy9ibG9nIGltZzIud2VicFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L1N3aXBlclNsaWRlPlxyXG4gICAgICAgICAgICAgICAgICA8U3dpcGVyU2xpZGUgY2xhc3NOYW1lPVwic3dpcGVyLXNsaWRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIHdvdyBmYWRlSW5cIiBkYXRhLXdvdy1kZWxheT1cIi4zc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRodW1wYXJhbGxheFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPVwiL2ltZy9ibG9nL2Jsb2cgaW1nMy53ZWJwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvU3dpcGVyU2xpZGU+XHJcbiAgICAgICAgICAgICAgICA8L1N3aXBlcj5cclxuICAgICAgICAgICAgICApIDogbnVsbH1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTYgbm8tcGFkZGluZyB2YWxpZ25cIj5cclxuICAgICAgICAgICAgICB7IWxvYWQgPyAoXHJcbiAgICAgICAgICAgICAgICA8U3dpcGVyXHJcbiAgICAgICAgICAgICAgICAgIHNwZWVkPXs4MDB9XHJcbiAgICAgICAgICAgICAgICAgIHNwYWNlQmV0d2Vlbj17MH1cclxuICAgICAgICAgICAgICAgICAgbG9vcD17dHJ1ZX1cclxuICAgICAgICAgICAgICAgICAgbmF2aWdhdGlvbj17e1xyXG4gICAgICAgICAgICAgICAgICAgIHByZXZFbDogbmF2aWdhdGlvblByZXZSZWYuY3VycmVudCxcclxuICAgICAgICAgICAgICAgICAgICBuZXh0RWw6IG5hdmlnYXRpb25OZXh0UmVmLmN1cnJlbnQsXHJcbiAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgIHBhZ2luYXRpb249e3tcclxuICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImZyYWN0aW9uXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgY2xpY2thYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIGVsOiBwYWdpbmF0aW9uUmVmLmN1cnJlbnQsXHJcbiAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgIG9uQmVmb3JlSW5pdD17KHN3aXBlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHN3aXBlci5wYXJhbXMubmF2aWdhdGlvbi5wcmV2RWwgPSBuYXZpZ2F0aW9uUHJldlJlZi5jdXJyZW50O1xyXG4gICAgICAgICAgICAgICAgICAgIHN3aXBlci5wYXJhbXMubmF2aWdhdGlvbi5uZXh0RWwgPSBuYXZpZ2F0aW9uTmV4dFJlZi5jdXJyZW50O1xyXG4gICAgICAgICAgICAgICAgICAgIHN3aXBlci5wYXJhbXMucGFnaW5hdGlvbi5lbCA9IHBhZ2luYXRpb25SZWYuY3VycmVudDtcclxuICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgb25Td2lwZXI9eyhzd2lwZXIpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3dpcGVyLnNsaWRlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzd2lwZXIuc2xpZGVzW2ldLmNoaWxkTm9kZXNbMF0uc2V0QXR0cmlidXRlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGF0YS1zd2lwZXItcGFyYWxsYXhcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAwLjc1ICogc3dpcGVyLndpZHRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgc3dpcGVyLnBhcmFtcy5uYXZpZ2F0aW9uLnByZXZFbCA9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRpb25QcmV2UmVmLmN1cnJlbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICBzd2lwZXIucGFyYW1zLm5hdmlnYXRpb24ubmV4dEVsID1cclxuICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGlvbk5leHRSZWYuY3VycmVudDtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICBzd2lwZXIucGFyYW1zLnBhZ2luYXRpb24uZWwgPSBwYWdpbmF0aW9uUmVmLmN1cnJlbnQ7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgc3dpcGVyLm5hdmlnYXRpb24uZGVzdHJveSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgc3dpcGVyLm5hdmlnYXRpb24uaW5pdCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgc3dpcGVyLm5hdmlnYXRpb24udXBkYXRlKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgc3dpcGVyLnBhZ2luYXRpb24uZGVzdHJveSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgc3dpcGVyLnBhZ2luYXRpb24uaW5pdCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgc3dpcGVyLnBhZ2luYXRpb24udXBkYXRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInN3aXBlci13cmFwcGVyIHN3aXBlci1jb250YWluZXIgc3dpcGVyLWNvbnRlbnRcIlxyXG4gICAgICAgICAgICAgICAgICBzbGlkZXNQZXJWaWV3PXsxfVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8U3dpcGVyU2xpZGUgY2xhc3NOYW1lPVwic3dpcGVyLXNsaWRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIHdvdyBmYWRlSW5cIiBkYXRhLXdvdy1kZWxheT1cIi42c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGFnc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvYmxvZy9ibG9nLWRhcmtcIj5UcmVuZGluZzwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvYmxvZy9ibG9nLWRhcmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYXIgZmEtY2xvY2tcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAxIEFwcmlsIDIwMjRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9ibG9nLWRldGFpbHMvYmxvZy1kZXRhaWxzLWRhcmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVzaW5lc3MgSHViOiBJdHMgcm9sZSBpbiBzdXBwb3J0aW5nIGNvbXBhbmllcyBpblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgc3RhZ2VzIG9mIGVzdGFibGlzaG1lbnQsIGRldmVsb3BtZW50LCBhbmQuLi5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2g0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbiBhIHJhcGlkbHkgZXZvbHZpbmcgYW5kIGNvbXBldGl0aXZlIGJ1c2luZXNzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYW5kc2NhcGUsIGNvbXBhbmllcyBvZnRlbiBuZWVkIHNwZWNpYWxpemVkIHN1cHBvcnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBndWlkYW5jZSB0byBtZWV0IGNoYWxsZW5nZXMsIGV4cGxvaXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wcG9ydHVuaXRpZXMsIGFuZCBhY2hpZXZlIHN1c3RhaW5hYmxlIGdyb3d0aC5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1vcmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPXtgL2Jsb2ctZGV0YWlscy9ibG9nLWRldGFpbHMtZGFya2B9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVhZCBNb3JlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L1N3aXBlclNsaWRlPlxyXG4gICAgICAgICAgICAgICAgICA8U3dpcGVyU2xpZGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIHdvdyBmYWRlSW5cIiBkYXRhLXdvdy1kZWxheT1cIi42c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGFnc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvYmxvZy9ibG9nLWRhcmtcIj5UcmVuZGluZzwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvYmxvZy9ibG9nLWRhcmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYXIgZmEtY2xvY2tcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAxIEFwcmlsIDIwMjRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9ibG9nLWRldGFpbHMvYmxvZy1kZXRhaWxzLWRhcmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVzaW5lc3MgSHViOiBFbXBvd2VyaW5nIENvbXBhbmllcyB0aHJvdWdoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXN0YWJsaXNobWVudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oND5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbiB0aGUgZmFzdC1wYWNlZCBhbmQgY29tcGV0aXRpdmUgYnVzaW5lc3MgbGFuZHNjYXBlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcGFuaWVzIG9mdGVuIHJlcXVpcmUgc3BlY2lhbGl6ZWQgc3VwcG9ydCBhbmRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aWRhbmNlIHRvIG5hdmlnYXRlIGNoYWxsZW5nZXMsIGNhcGl0YWxpemUgb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wcG9ydHVuaXRpZXMsIGFuZCBhY2hpZXZlIHN1c3RhaW5hYmxlIGdyb3d0aC5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1vcmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPXtgL2Jsb2ctZGV0YWlscy9ibG9nLWRldGFpbHMtZGFya2B9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVhZCBNb3JlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L1N3aXBlclNsaWRlPlxyXG4gICAgICAgICAgICAgICAgICA8U3dpcGVyU2xpZGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIHdvdyBmYWRlSW5cIiBkYXRhLXdvdy1kZWxheT1cIi42c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGFnc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvYmxvZy9ibG9nLWRhcmtcIj5UcmVuZGluZzwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvYmxvZy9ibG9nLWRhcmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYXIgZmEtY2xvY2tcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAxIEFwcmlsIDIwMjRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9ibG9nLWRldGFpbHMvYmxvZy1kZXRhaWxzLWRhcmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE+VGhlIEltcG9ydGFuY2Ugb2YgQ29uc3VsdGluZzwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2g0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbiB0b2RheSZhcG9zO3MgZmFzdC1wYWNlZCBhbmQgY29tcGV0aXRpdmUgYnVzaW5lc3NcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmxkLCBzZWVraW5nIGFkdmljZSBhbmQgZ3VpZGFuY2UgZnJvbSBjb25zdWx0YW50c1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzIGJlY29tZSBpbmNyZWFzaW5nbHkgY3J1Y2lhbCBmb3IgY29tcGFuaWVzIGFpbWluZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8gdGhyaXZlIGFuZCBzdWNjZWVkLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibW9yZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9e2AvYmxvZy1kZXRhaWxzL2Jsb2ctZGV0YWlscy1kYXJrYH0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWFkIE1vcmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvU3dpcGVyU2xpZGU+XHJcbiAgICAgICAgICAgICAgICA8L1N3aXBlcj5cclxuICAgICAgICAgICAgICApIDogbnVsbH1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRyb2xzXCI+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICByZWY9e25hdmlnYXRpb25OZXh0UmVmfVxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cInN3aXBlci1idXR0b24tbmV4dCBzd2lwZXItbmF2LWN0cmwgbmV4dC1jdHJsXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhcyBmYS1jYXJldC11cFwiPjwvaT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICByZWY9e25hdmlnYXRpb25QcmV2UmVmfVxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cInN3aXBlci1idXR0b24tcHJldiBzd2lwZXItbmF2LWN0cmwgcHJldi1jdHJsXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhcyBmYS1jYXJldC1kb3duXCI+PC9pPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzd2lwZXItcGFnaW5hdGlvblwiIHJlZj17cGFnaW5hdGlvblJlZn0+PC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L3NlY3Rpb24+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IEJsb2dzNDtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiU3dpcGVyIiwiU3dpcGVyU2xpZGUiLCJMaW5rIiwiU3dpcGVyQ29yZSIsIk5hdmlnYXRpb24iLCJQYWdpbmF0aW9uIiwiUGFyYWxsYXgiLCJFZmZlY3RGYWRlIiwidGh1bXBhcmFsbGF4IiwicmVtb3ZlU2xhc2hGcm9tUGFnaW5hdGlvbiIsInVzZSIsIkJsb2dzNCIsInVzZVN0YXRlIiwibG9hZCIsInNldExvYWQiLCJ1c2VFZmZlY3QiLCJzZXRUaW1lb3V0IiwibmF2aWdhdGlvblByZXZSZWYiLCJ1c2VSZWYiLCJuYXZpZ2F0aW9uTmV4dFJlZiIsInBhZ2luYXRpb25SZWYiLCJkaXNwbGF5IiwicHJldkVsIiwiY3VycmVudCIsIm5leHRFbCIsInR5cGUiLCJjbGlja2FibGUiLCJlbCIsInN3aXBlciIsInBhcmFtcyIsIm5hdmlnYXRpb24iLCJwYWdpbmF0aW9uIiwiaSIsInNsaWRlcyIsImxlbmd0aCIsImNoaWxkTm9kZXMiLCJzZXRBdHRyaWJ1dGUiLCJ3aWR0aCIsImRlc3Ryb3kiLCJpbml0IiwidXBkYXRlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/blogs/Blogs4/blogs4.jsx\n"); + +/***/ }), + +/***/ "./src/config/particle-config.js": +/*!***************************************!*\ + !*** ./src/config/particle-config.js ***! + \***************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar particlesConfig = {\n particles: {\n number: {\n value: 130,\n density: {\n enable: true,\n value_area: 900\n }\n },\n color: {\n value: \"#ffffff\"\n },\n shape: {\n type: \"circle\",\n stroke: {\n width: 0,\n color: \"#000000\"\n },\n polygon: {\n nb_sides: 5\n },\n image: {\n src: \"/img/github.svg\",\n width: 100,\n height: 100\n }\n },\n opacity: {\n value: 0.2,\n random: true,\n anim: {\n enable: true,\n speed: 1,\n opacity_min: 0.3,\n sync: false\n }\n },\n size: {\n value: 1.8,\n random: true,\n anim: {\n enable: false,\n speed: 4,\n size_min: 0.4,\n sync: false\n }\n },\n line_linked: {\n enable: false,\n distance: 150,\n color: \"#ffffff\",\n opacity: 0.4,\n width: 1\n },\n move: {\n enable: true,\n speed: 1,\n direction: \"none\",\n random: true,\n straight: false,\n out_mode: \"out\",\n bounce: false,\n attract: {\n enable: false,\n rotateX: 600,\n rotateY: 600\n }\n }\n },\n interactivity: {\n detect_on: \"canvas\",\n events: {\n onhover: {\n enable: true,\n mode: \"bubble\"\n },\n onclick: {\n enable: true,\n mode: \"repulse\"\n },\n resize: true\n },\n modes: {\n grab: {\n distance: 400,\n line_linked: {\n opacity: 1\n }\n },\n bubble: {\n distance: 250,\n size: 0,\n duration: 2,\n opacity: 0,\n speed: 3\n },\n repulse: {\n distance: 400,\n duration: 0.4\n },\n push: {\n particles_nb: 4\n },\n remove: {\n particles_nb: 2\n }\n }\n },\n retina_detect: true\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (particlesConfig);\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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RTtBQVRGLEtBRks7QUFhYkMsSUFBQUEsS0FBSyxFQUFFO0FBQ0xDLE1BQUFBLElBQUksRUFBRTtBQUNKakIsUUFBQUEsUUFBUSxFQUFFLEdBRE47QUFFSkQsUUFBQUEsV0FBVyxFQUFFO0FBQ1hSLFVBQUFBLE9BQU8sRUFBRTtBQURFO0FBRlQsT0FERDtBQU9MMkIsTUFBQUEsTUFBTSxFQUFFO0FBQ05sQixRQUFBQSxRQUFRLEVBQUUsR0FESjtBQUVOSCxRQUFBQSxJQUFJLEVBQUUsQ0FGQTtBQUdOc0IsUUFBQUEsUUFBUSxFQUFFLENBSEo7QUFJTjVCLFFBQUFBLE9BQU8sRUFBRSxDQUpIO0FBS05HLFFBQUFBLEtBQUssRUFBRTtBQUxELE9BUEg7QUFjTDBCLE1BQUFBLE9BQU8sRUFBRTtBQUNQcEIsUUFBQUEsUUFBUSxFQUFFLEdBREg7QUFFUG1CLFFBQUFBLFFBQVEsRUFBRTtBQUZILE9BZEo7QUFrQkxFLE1BQUFBLElBQUksRUFBRTtBQUNKQyxRQUFBQSxZQUFZLEVBQUU7QUFEVixPQWxCRDtBQXFCTEMsTUFBQUEsTUFBTSxFQUFFO0FBQ05ELFFBQUFBLFlBQVksRUFBRTtBQURSO0FBckJIO0FBYk0sR0FyRU87QUE0R3RCRSxFQUFBQSxhQUFhLEVBQUU7QUE1R08sQ0FBeEI7QUErR0EsK0RBQWVsRCxlQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb25maWcvcGFydGljbGUtY29uZmlnLmpzPzA3OWQiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgcGFydGljbGVzQ29uZmlnID0ge1xyXG4gIHBhcnRpY2xlczoge1xyXG4gICAgbnVtYmVyOiB7XHJcbiAgICAgIHZhbHVlOiAxMzAsXHJcbiAgICAgIGRlbnNpdHk6IHtcclxuICAgICAgICBlbmFibGU6IHRydWUsXHJcbiAgICAgICAgdmFsdWVfYXJlYTogOTAwLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIGNvbG9yOiB7XHJcbiAgICAgIHZhbHVlOiBcIiNmZmZmZmZcIixcclxuICAgIH0sXHJcbiAgICBzaGFwZToge1xyXG4gICAgICB0eXBlOiBcImNpcmNsZVwiLFxyXG4gICAgICBzdHJva2U6IHtcclxuICAgICAgICB3aWR0aDogMCxcclxuICAgICAgICBjb2xvcjogXCIjMDAwMDAwXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIHBvbHlnb246IHtcclxuICAgICAgICBuYl9zaWRlczogNSxcclxuICAgICAgfSxcclxuICAgICAgaW1hZ2U6IHtcclxuICAgICAgICBzcmM6IFwiL2ltZy9naXRodWIuc3ZnXCIsXHJcbiAgICAgICAgd2lkdGg6IDEwMCxcclxuICAgICAgICBoZWlnaHQ6IDEwMCxcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICBvcGFjaXR5OiB7XHJcbiAgICAgIHZhbHVlOiAwLjIsXHJcbiAgICAgIHJhbmRvbTogdHJ1ZSxcclxuICAgICAgYW5pbToge1xyXG4gICAgICAgIGVuYWJsZTogdHJ1ZSxcclxuICAgICAgICBzcGVlZDogMSxcclxuICAgICAgICBvcGFjaXR5X21pbjogMC4zLFxyXG4gICAgICAgIHN5bmM6IGZhbHNlLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIHNpemU6IHtcclxuICAgICAgdmFsdWU6IDEuOCxcclxuICAgICAgcmFuZG9tOiB0cnVlLFxyXG4gICAgICBhbmltOiB7XHJcbiAgICAgICAgZW5hYmxlOiBmYWxzZSxcclxuICAgICAgICBzcGVlZDogNCxcclxuICAgICAgICBzaXplX21pbjogMC40LFxyXG4gICAgICAgIHN5bmM6IGZhbHNlLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIGxpbmVfbGlua2VkOiB7XHJcbiAgICAgIGVuYWJsZTogZmFsc2UsXHJcbiAgICAgIGRpc3RhbmNlOiAxNTAsXHJcbiAgICAgIGNvbG9yOiBcIiNmZmZmZmZcIixcclxuICAgICAgb3BhY2l0eTogMC40LFxyXG4gICAgICB3aWR0aDogMSxcclxuICAgIH0sXHJcbiAgICBtb3ZlOiB7XHJcbiAgICAgIGVuYWJsZTogdHJ1ZSxcclxuICAgICAgc3BlZWQ6IDEsXHJcbiAgICAgIGRpcmVjdGlvbjogXCJub25lXCIsXHJcbiAgICAgIHJhbmRvbTogdHJ1ZSxcclxuICAgICAgc3RyYWlnaHQ6IGZhbHNlLFxyXG4gICAgICBvdXRfbW9kZTogXCJvdXRcIixcclxuICAgICAgYm91bmNlOiBmYWxzZSxcclxuICAgICAgYXR0cmFjdDoge1xyXG4gICAgICAgIGVuYWJsZTogZmFsc2UsXHJcbiAgICAgICAgcm90YXRlWDogNjAwLFxyXG4gICAgICAgIHJvdGF0ZVk6IDYwMCxcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgfSxcclxuICBpbnRlcmFjdGl2aXR5OiB7XHJcbiAgICBkZXRlY3Rfb246IFwiY2FudmFzXCIsXHJcbiAgICBldmVudHM6IHtcclxuICAgICAgb25ob3Zlcjoge1xyXG4gICAgICAgIGVuYWJsZTogdHJ1ZSxcclxuICAgICAgICBtb2RlOiBcImJ1YmJsZVwiLFxyXG4gICAgICB9LFxyXG4gICAgICBvbmNsaWNrOiB7XHJcbiAgICAgICAgZW5hYmxlOiB0cnVlLFxyXG4gICAgICAgIG1vZGU6IFwicmVwdWxzZVwiLFxyXG4gICAgICB9LFxyXG4gICAgICByZXNpemU6IHRydWUsXHJcbiAgICB9LFxyXG4gICAgbW9kZXM6IHtcclxuICAgICAgZ3JhYjoge1xyXG4gICAgICAgIGRpc3RhbmNlOiA0MDAsXHJcbiAgICAgICAgbGluZV9saW5rZWQ6IHtcclxuICAgICAgICAgIG9wYWNpdHk6IDEsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgYnViYmxlOiB7XHJcbiAgICAgICAgZGlzdGFuY2U6IDI1MCxcclxuICAgICAgICBzaXplOiAwLFxyXG4gICAgICAgIGR1cmF0aW9uOiAyLFxyXG4gICAgICAgIG9wYWNpdHk6IDAsXHJcbiAgICAgICAgc3BlZWQ6IDMsXHJcbiAgICAgIH0sXHJcbiAgICAgIHJlcHVsc2U6IHtcclxuICAgICAgICBkaXN0YW5jZTogNDAwLFxyXG4gICAgICAgIGR1cmF0aW9uOiAwLjQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHB1c2g6IHtcclxuICAgICAgICBwYXJ0aWNsZXNfbmI6IDQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHJlbW92ZToge1xyXG4gICAgICAgIHBhcnRpY2xlc19uYjogMixcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgfSxcclxuICByZXRpbmFfZGV0ZWN0OiB0cnVlLFxyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgcGFydGljbGVzQ29uZmlnO1xyXG4iXSwibmFtZXMiOlsicGFydGljbGVzQ29uZmlnIiwicGFydGljbGVzIiwibnVtYmVyIiwidmFsdWUiLCJkZW5zaXR5IiwiZW5hYmxlIiwidmFsdWVfYXJlYSIsImNvbG9yIiwic2hhcGUiLCJ0eXBlIiwic3Ryb2tlIiwid2lkdGgiLCJwb2x5Z29uIiwibmJfc2lkZXMiLCJpbWFnZSIsInNyYyIsImhlaWdodCIsIm9wYWNpdHkiLCJyYW5kb20iLCJhbmltIiwic3BlZWQiLCJvcGFjaXR5X21pbiIsInN5bmMiLCJzaXplIiwic2l6ZV9taW4iLCJsaW5lX2xpbmtlZCIsImRpc3RhbmNlIiwibW92ZSIsImRpcmVjdGlvbiIsInN0cmFpZ2h0Iiwib3V0X21vZGUiLCJib3VuY2UiLCJhdHRyYWN0Iiwicm90YXRlWCIsInJvdGF0ZVkiLCJpbnRlcmFjdGl2aXR5IiwiZGV0ZWN0X29uIiwiZXZlbnRzIiwib25ob3ZlciIsIm1vZGUiLCJvbmNsaWNrIiwicmVzaXplIiwibW9kZXMiLCJncmFiIiwiYnViYmxlIiwiZHVyYXRpb24iLCJyZXB1bHNlIiwicHVzaCIsInBhcnRpY2xlc19uYiIsInJlbW92ZSIsInJldGluYV9kZXRlY3QiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/config/particle-config.js\n"); + +/***/ }), + +/***/ "./src/config/pr-s-black.js": +/*!**********************************!*\ + !*** ./src/config/pr-s-black.js ***! + \**********************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar particlesBlackConfig = {\n particles: {\n number: {\n value: 130,\n density: {\n enable: true,\n value_area: 900\n }\n },\n color: {\n value: \"#000000\"\n },\n shape: {\n type: \"circle\",\n stroke: {\n width: 0,\n color: \"#000000\"\n },\n polygon: {\n nb_sides: 5\n },\n image: {\n src: \"/img/github.svg\",\n width: 100,\n height: 100\n }\n },\n opacity: {\n value: 0.2,\n random: true,\n anim: {\n enable: true,\n speed: 1,\n opacity_min: 0.3,\n sync: false\n }\n },\n size: {\n value: 1.8,\n random: true,\n anim: {\n enable: false,\n speed: 4,\n size_min: 0.4,\n sync: false\n }\n },\n line_linked: {\n enable: false,\n distance: 150,\n color: \"#ffffff\",\n opacity: 0.4,\n width: 1\n },\n move: {\n enable: true,\n speed: 1,\n direction: \"none\",\n random: true,\n straight: false,\n out_mode: \"out\",\n bounce: false,\n attract: {\n enable: false,\n rotateX: 600,\n rotateY: 600\n }\n }\n },\n interactivity: {\n detect_on: \"canvas\",\n events: {\n onhover: {\n enable: true,\n mode: \"bubble\"\n },\n onclick: {\n enable: true,\n mode: \"repulse\"\n },\n resize: true\n },\n modes: {\n grab: {\n distance: 400,\n line_linked: {\n opacity: 1\n }\n },\n bubble: {\n distance: 250,\n size: 0,\n duration: 2,\n opacity: 0,\n speed: 3\n },\n repulse: {\n distance: 400,\n duration: 0.4\n },\n push: {\n particles_nb: 4\n },\n remove: {\n particles_nb: 2\n }\n }\n },\n retina_detect: true\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (particlesBlackConfig);\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFURixLQUZLO0FBYWJDLElBQUFBLEtBQUssRUFBRTtBQUNMQyxNQUFBQSxJQUFJLEVBQUU7QUFDSmpCLFFBQUFBLFFBQVEsRUFBRSxHQUROO0FBRUpELFFBQUFBLFdBQVcsRUFBRTtBQUNYUixVQUFBQSxPQUFPLEVBQUU7QUFERTtBQUZULE9BREQ7QUFPTDJCLE1BQUFBLE1BQU0sRUFBRTtBQUNObEIsUUFBQUEsUUFBUSxFQUFFLEdBREo7QUFFTkgsUUFBQUEsSUFBSSxFQUFFLENBRkE7QUFHTnNCLFFBQUFBLFFBQVEsRUFBRSxDQUhKO0FBSU41QixRQUFBQSxPQUFPLEVBQUUsQ0FKSDtBQUtORyxRQUFBQSxLQUFLLEVBQUU7QUFMRCxPQVBIO0FBY0wwQixNQUFBQSxPQUFPLEVBQUU7QUFDUHBCLFFBQUFBLFFBQVEsRUFBRSxHQURIO0FBRVBtQixRQUFBQSxRQUFRLEVBQUU7QUFGSCxPQWRKO0FBa0JMRSxNQUFBQSxJQUFJLEVBQUU7QUFDSkMsUUFBQUEsWUFBWSxFQUFFO0FBRFYsT0FsQkQ7QUFxQkxDLE1BQUFBLE1BQU0sRUFBRTtBQUNORCxRQUFBQSxZQUFZLEVBQUU7QUFEUjtBQXJCSDtBQWJNLEdBckVZO0FBNEczQkUsRUFBQUEsYUFBYSxFQUFFO0FBNUdZLENBQTdCO0FBK0dBLCtEQUFlbEQsb0JBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbmZpZy9wci1zLWJsYWNrLmpzP2MyMDgiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgcGFydGljbGVzQmxhY2tDb25maWcgPSB7XHJcbiAgcGFydGljbGVzOiB7XHJcbiAgICBudW1iZXI6IHtcclxuICAgICAgdmFsdWU6IDEzMCxcclxuICAgICAgZGVuc2l0eToge1xyXG4gICAgICAgIGVuYWJsZTogdHJ1ZSxcclxuICAgICAgICB2YWx1ZV9hcmVhOiA5MDAsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgY29sb3I6IHtcclxuICAgICAgdmFsdWU6IFwiIzAwMDAwMFwiLFxyXG4gICAgfSxcclxuICAgIHNoYXBlOiB7XHJcbiAgICAgIHR5cGU6IFwiY2lyY2xlXCIsXHJcbiAgICAgIHN0cm9rZToge1xyXG4gICAgICAgIHdpZHRoOiAwLFxyXG4gICAgICAgIGNvbG9yOiBcIiMwMDAwMDBcIixcclxuICAgICAgfSxcclxuICAgICAgcG9seWdvbjoge1xyXG4gICAgICAgIG5iX3NpZGVzOiA1LFxyXG4gICAgICB9LFxyXG4gICAgICBpbWFnZToge1xyXG4gICAgICAgIHNyYzogXCIvaW1nL2dpdGh1Yi5zdmdcIixcclxuICAgICAgICB3aWR0aDogMTAwLFxyXG4gICAgICAgIGhlaWdodDogMTAwLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIG9wYWNpdHk6IHtcclxuICAgICAgdmFsdWU6IDAuMixcclxuICAgICAgcmFuZG9tOiB0cnVlLFxyXG4gICAgICBhbmltOiB7XHJcbiAgICAgICAgZW5hYmxlOiB0cnVlLFxyXG4gICAgICAgIHNwZWVkOiAxLFxyXG4gICAgICAgIG9wYWNpdHlfbWluOiAwLjMsXHJcbiAgICAgICAgc3luYzogZmFsc2UsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgc2l6ZToge1xyXG4gICAgICB2YWx1ZTogMS44LFxyXG4gICAgICByYW5kb206IHRydWUsXHJcbiAgICAgIGFuaW06IHtcclxuICAgICAgICBlbmFibGU6IGZhbHNlLFxyXG4gICAgICAgIHNwZWVkOiA0LFxyXG4gICAgICAgIHNpemVfbWluOiAwLjQsXHJcbiAgICAgICAgc3luYzogZmFsc2UsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgbGluZV9saW5rZWQ6IHtcclxuICAgICAgZW5hYmxlOiBmYWxzZSxcclxuICAgICAgZGlzdGFuY2U6IDE1MCxcclxuICAgICAgY29sb3I6IFwiI2ZmZmZmZlwiLFxyXG4gICAgICBvcGFjaXR5OiAwLjQsXHJcbiAgICAgIHdpZHRoOiAxLFxyXG4gICAgfSxcclxuICAgIG1vdmU6IHtcclxuICAgICAgZW5hYmxlOiB0cnVlLFxyXG4gICAgICBzcGVlZDogMSxcclxuICAgICAgZGlyZWN0aW9uOiBcIm5vbmVcIixcclxuICAgICAgcmFuZG9tOiB0cnVlLFxyXG4gICAgICBzdHJhaWdodDogZmFsc2UsXHJcbiAgICAgIG91dF9tb2RlOiBcIm91dFwiLFxyXG4gICAgICBib3VuY2U6IGZhbHNlLFxyXG4gICAgICBhdHRyYWN0OiB7XHJcbiAgICAgICAgZW5hYmxlOiBmYWxzZSxcclxuICAgICAgICByb3RhdGVYOiA2MDAsXHJcbiAgICAgICAgcm90YXRlWTogNjAwLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICB9LFxyXG4gIGludGVyYWN0aXZpdHk6IHtcclxuICAgIGRldGVjdF9vbjogXCJjYW52YXNcIixcclxuICAgIGV2ZW50czoge1xyXG4gICAgICBvbmhvdmVyOiB7XHJcbiAgICAgICAgZW5hYmxlOiB0cnVlLFxyXG4gICAgICAgIG1vZGU6IFwiYnViYmxlXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIG9uY2xpY2s6IHtcclxuICAgICAgICBlbmFibGU6IHRydWUsXHJcbiAgICAgICAgbW9kZTogXCJyZXB1bHNlXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIHJlc2l6ZTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBtb2Rlczoge1xyXG4gICAgICBncmFiOiB7XHJcbiAgICAgICAgZGlzdGFuY2U6IDQwMCxcclxuICAgICAgICBsaW5lX2xpbmtlZDoge1xyXG4gICAgICAgICAgb3BhY2l0eTogMSxcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBidWJibGU6IHtcclxuICAgICAgICBkaXN0YW5jZTogMjUwLFxyXG4gICAgICAgIHNpemU6IDAsXHJcbiAgICAgICAgZHVyYXRpb246IDIsXHJcbiAgICAgICAgb3BhY2l0eTogMCxcclxuICAgICAgICBzcGVlZDogMyxcclxuICAgICAgfSxcclxuICAgICAgcmVwdWxzZToge1xyXG4gICAgICAgIGRpc3RhbmNlOiA0MDAsXHJcbiAgICAgICAgZHVyYXRpb246IDAuNCxcclxuICAgICAgfSxcclxuICAgICAgcHVzaDoge1xyXG4gICAgICAgIHBhcnRpY2xlc19uYjogNCxcclxuICAgICAgfSxcclxuICAgICAgcmVtb3ZlOiB7XHJcbiAgICAgICAgcGFydGljbGVzX25iOiAyLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICB9LFxyXG4gIHJldGluYV9kZXRlY3Q6IHRydWUsXHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBwYXJ0aWNsZXNCbGFja0NvbmZpZyJdLCJuYW1lcyI6WyJwYXJ0aWNsZXNCbGFja0NvbmZpZyIsInBhcnRpY2xlcyIsIm51bWJlciIsInZhbHVlIiwiZGVuc2l0eSIsImVuYWJsZSIsInZhbHVlX2FyZWEiLCJjb2xvciIsInNoYXBlIiwidHlwZSIsInN0cm9rZSIsIndpZHRoIiwicG9seWdvbiIsIm5iX3NpZGVzIiwiaW1hZ2UiLCJzcmMiLCJoZWlnaHQiLCJvcGFjaXR5IiwicmFuZG9tIiwiYW5pbSIsInNwZWVkIiwib3BhY2l0eV9taW4iLCJzeW5jIiwic2l6ZSIsInNpemVfbWluIiwibGluZV9saW5rZWQiLCJkaXN0YW5jZSIsIm1vdmUiLCJkaXJlY3Rpb24iLCJzdHJhaWdodCIsIm91dF9tb2RlIiwiYm91bmNlIiwiYXR0cmFjdCIsInJvdGF0ZVgiLCJyb3RhdGVZIiwiaW50ZXJhY3Rpdml0eSIsImRldGVjdF9vbiIsImV2ZW50cyIsIm9uaG92ZXIiLCJtb2RlIiwib25jbGljayIsInJlc2l6ZSIsIm1vZGVzIiwiZ3JhYiIsImJ1YmJsZSIsImR1cmF0aW9uIiwicmVwdWxzZSIsInB1c2giLCJwYXJ0aWNsZXNfbmIiLCJyZW1vdmUiLCJyZXRpbmFfZGV0ZWN0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/config/pr-s-black.js\n"); + +/***/ }), + +/***/ "./src/layouts/Dark.jsx": +/*!******************************!*\ + !*** ./src/layouts/Dark.jsx ***! + \******************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/head */ \"./node_modules/next/head.js\");\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_head__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\layouts\\\\Dark.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n/* eslint-disable @next/next/no-css-tags */\n\n\n\n\n\nvar DarkTheme = function DarkTheme(_ref) {\n _s();\n\n var children = _ref.children,\n useSkin = _ref.useSkin,\n mobileappstyle = _ref.mobileappstyle;\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n window.theme = \"dark\";\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)((next_head__WEBPACK_IMPORTED_MODULE_1___default()), {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"link\", {\n rel: \"stylesheet\",\n href: \"/css/dark.css\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 9\n }, _this), useSkin ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"link\", {\n rel: \"stylesheet\",\n href: \"/css/arch-skin-dark.css\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 21\n }, _this) : null, mobileappstyle ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"link\", {\n href: \"/css/mobile-app-dark.css\",\n rel: \"stylesheet\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 28\n }, _this) : null]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 7\n }, _this), children]\n }, void 0, true);\n};\n\n_s(DarkTheme, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = DarkTheme;\n/* harmony default export */ __webpack_exports__[\"default\"] = (DarkTheme);\n\nvar _c;\n\n$RefreshReg$(_c, \"DarkTheme\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvbGF5b3V0cy9EYXJrLmpzeC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7Ozs7QUFFQSxJQUFNRSxTQUFTLEdBQUcsU0FBWkEsU0FBWSxPQUEyQztBQUFBOztBQUFBLE1BQXhDQyxRQUF3QyxRQUF4Q0EsUUFBd0M7QUFBQSxNQUE5QkMsT0FBOEIsUUFBOUJBLE9BQThCO0FBQUEsTUFBckJDLGNBQXFCLFFBQXJCQSxjQUFxQjtBQUMzREwsRUFBQUEsc0RBQUEsQ0FBZ0IsWUFBTTtBQUNwQk8sSUFBQUEsTUFBTSxDQUFDQyxLQUFQLEdBQWUsTUFBZjtBQUNELEdBRkQsRUFFRyxFQUZIO0FBR0Esc0JBQ0U7QUFBQSw0QkFDRSw4REFBQyxrREFBRDtBQUFBLDhCQUNFO0FBQU0sV0FBRyxFQUFDLFlBQVY7QUFBdUIsWUFBSSxFQUFDO0FBQTVCO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFERixFQUVHSixPQUFPLGdCQUFJO0FBQU0sV0FBRyxFQUFDLFlBQVY7QUFBdUIsWUFBSSxFQUFDO0FBQTVCO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFBSixHQUFpRSxJQUYzRSxFQUdHQyxjQUFjLGdCQUFJO0FBQU0sWUFBSSxFQUFDLDBCQUFYO0FBQXNDLFdBQUcsRUFBQztBQUExQztBQUFBO0FBQUE7QUFBQTtBQUFBLGVBQUosR0FBa0UsSUFIbkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBREYsRUFNR0YsUUFOSDtBQUFBLGtCQURGO0FBVUQsQ0FkRDs7R0FBTUQ7O0tBQUFBO0FBZ0JOLCtEQUFlQSxTQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9sYXlvdXRzL0RhcmsuanN4PzEwOWMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1jc3MtdGFncyAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBIZWFkIGZyb20gXCJuZXh0L2hlYWRcIjtcclxuXHJcbmNvbnN0IERhcmtUaGVtZSA9ICh7IGNoaWxkcmVuLCB1c2VTa2luLCBtb2JpbGVhcHBzdHlsZSB9KSA9PiB7XHJcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgIHdpbmRvdy50aGVtZSA9IFwiZGFya1wiO1xyXG4gIH0sIFtdKTtcclxuICByZXR1cm4gKFxyXG4gICAgPD5cclxuICAgICAgPEhlYWQ+XHJcbiAgICAgICAgPGxpbmsgcmVsPVwic3R5bGVzaGVldFwiIGhyZWY9XCIvY3NzL2RhcmsuY3NzXCIgLz5cclxuICAgICAgICB7dXNlU2tpbiA/ICg8bGluayByZWw9XCJzdHlsZXNoZWV0XCIgaHJlZj1cIi9jc3MvYXJjaC1za2luLWRhcmsuY3NzXCIgLz4pIDogKG51bGwpfVxyXG4gICAgICAgIHttb2JpbGVhcHBzdHlsZSA/ICg8bGluayBocmVmPVwiL2Nzcy9tb2JpbGUtYXBwLWRhcmsuY3NzXCIgcmVsPVwic3R5bGVzaGVldFwiIC8+KSA6IChudWxsKX1cclxuICAgICAgPC9IZWFkPlxyXG4gICAgICB7Y2hpbGRyZW59XHJcbiAgICA8Lz5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgRGFya1RoZW1lO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJIZWFkIiwiRGFya1RoZW1lIiwiY2hpbGRyZW4iLCJ1c2VTa2luIiwibW9iaWxlYXBwc3R5bGUiLCJ1c2VFZmZlY3QiLCJ3aW5kb3ciLCJ0aGVtZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/layouts/Dark.jsx\n"); + +/***/ }), + +/***/ "./src/layouts/Light.jsx": +/*!*******************************!*\ + !*** ./src/layouts/Light.jsx ***! + \*******************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/head */ \"./node_modules/next/head.js\");\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_head__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\layouts\\\\Light.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n/* eslint-disable @next/next/no-css-tags */\n\n\n\n\n\nvar LightTheme = function LightTheme(_ref) {\n _s();\n\n var children = _ref.children,\n mobileappstyle = _ref.mobileappstyle;\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n window.theme = \"light\";\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)((next_head__WEBPACK_IMPORTED_MODULE_1___default()), {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"link\", {\n rel: \"stylesheet\",\n href: \"/css/light.css\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 9\n }, _this), mobileappstyle ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"link\", {\n href: \"/css/mobile-app-light.css\",\n rel: \"stylesheet\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 28\n }, _this) : null]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 7\n }, _this), children]\n }, void 0, true);\n};\n\n_s(LightTheme, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = LightTheme;\n/* harmony default export */ __webpack_exports__[\"default\"] = (LightTheme);\n\nvar _c;\n\n$RefreshReg$(_c, \"LightTheme\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvbGF5b3V0cy9MaWdodC5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBOzs7O0FBRUEsSUFBTUUsVUFBVSxHQUFHLFNBQWJBLFVBQWEsT0FBa0M7QUFBQTs7QUFBQSxNQUEvQkMsUUFBK0IsUUFBL0JBLFFBQStCO0FBQUEsTUFBckJDLGNBQXFCLFFBQXJCQSxjQUFxQjtBQUNuREosRUFBQUEsc0RBQUEsQ0FBZ0IsWUFBTTtBQUNwQk0sSUFBQUEsTUFBTSxDQUFDQyxLQUFQLEdBQWUsT0FBZjtBQUNELEdBRkQsRUFFRyxFQUZIO0FBR0Esc0JBQ0U7QUFBQSw0QkFDRSw4REFBQyxrREFBRDtBQUFBLDhCQUNFO0FBQU0sV0FBRyxFQUFDLFlBQVY7QUFBdUIsWUFBSSxFQUFDO0FBQTVCO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFERixFQUVHSCxjQUFjLGdCQUFJO0FBQU0sWUFBSSxFQUFDLDJCQUFYO0FBQXVDLFdBQUcsRUFBQztBQUEzQztBQUFBO0FBQUE7QUFBQTtBQUFBLGVBQUosR0FBbUUsSUFGcEY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBREYsRUFLR0QsUUFMSDtBQUFBLGtCQURGO0FBU0QsQ0FiRDs7R0FBTUQ7O0tBQUFBO0FBZU4sK0RBQWVBLFVBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2xheW91dHMvTGlnaHQuanN4PzM5YzIiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1jc3MtdGFncyAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBIZWFkIGZyb20gXCJuZXh0L2hlYWRcIjtcclxuXHJcbmNvbnN0IExpZ2h0VGhlbWUgPSAoeyBjaGlsZHJlbiwgbW9iaWxlYXBwc3R5bGUgfSkgPT4ge1xyXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICB3aW5kb3cudGhlbWUgPSBcImxpZ2h0XCI7XHJcbiAgfSwgW10pO1xyXG4gIHJldHVybiAoXHJcbiAgICA8PlxyXG4gICAgICA8SGVhZD5cclxuICAgICAgICA8bGluayByZWw9XCJzdHlsZXNoZWV0XCIgaHJlZj1cIi9jc3MvbGlnaHQuY3NzXCIgLz5cclxuICAgICAgICB7bW9iaWxlYXBwc3R5bGUgPyAoPGxpbmsgaHJlZj1cIi9jc3MvbW9iaWxlLWFwcC1saWdodC5jc3NcIiByZWw9XCJzdHlsZXNoZWV0XCIgLz4pIDogKG51bGwpfVxyXG4gICAgICA8L0hlYWQ+XHJcbiAgICAgIHtjaGlsZHJlbn1cclxuICAgIDwvPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBMaWdodFRoZW1lO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJIZWFkIiwiTGlnaHRUaGVtZSIsImNoaWxkcmVuIiwibW9iaWxlYXBwc3R5bGUiLCJ1c2VFZmZlY3QiLCJ3aW5kb3ciLCJ0aGVtZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/layouts/Light.jsx\n"); + +/***/ }), + +/***/ "./src/pages/demos/demos.jsx": +/*!***********************************!*\ + !*** ./src/pages/demos/demos.jsx ***! + \***********************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var styled_jsx_style__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! styled-jsx/style */ \"./node_modules/styled-jsx/style.js\");\n/* harmony import */ var styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(styled_jsx_style__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _config_particle_config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../config/particle-config */ \"./src/config/particle-config.js\");\n/* harmony import */ var react_tsparticles__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-tsparticles */ \"./node_modules/react-tsparticles/index.js\");\n/* harmony import */ var react_tsparticles__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_tsparticles__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _components_Split__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../components/Split */ \"./src/components/Split/index.jsx\");\n/* harmony import */ var _layouts_Dark__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../layouts/Dark */ \"./src/layouts/Dark.jsx\");\n/* harmony import */ var _common_initIsotope__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../common/initIsotope */ \"./src/common/initIsotope.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__);\n/* module decorator */ module = __webpack_require__.hmd(module);\n\n\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\pages\\\\demos\\\\demos.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\n\n\n\nvar Demos = function Demos() {\n _s();\n\n var _React$useState = react__WEBPACK_IMPORTED_MODULE_2___default().useState(false),\n _React$useState2 = (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_React$useState, 2),\n pageLoaded = _React$useState2[0],\n setPageLoaded = _React$useState2[1];\n\n react__WEBPACK_IMPORTED_MODULE_2___default().useEffect(function () {\n setPageLoaded(true);\n\n if (pageLoaded) {\n window.addEventListener(\"load\", function () {\n setTimeout(function () {\n if (pageLoaded) {\n (0,_common_initIsotope__WEBPACK_IMPORTED_MODULE_8__[\"default\"])();\n }\n }, 1000);\n });\n }\n\n setTimeout(function () {\n if (pageLoaded) {\n (0,_common_initIsotope__WEBPACK_IMPORTED_MODULE_8__[\"default\"])();\n }\n }, 1000);\n }, [pageLoaded]);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(_layouts_Dark__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default()), {\n id: \"575932941\",\n children: \".sec-head.jsx-575932941 h3.jsx-575932941{font-size:60px;font-weight:700;position:relative;}.sec-head.jsx-575932941 .tbg.jsx-575932941{position:absolute;top:-120px;left:0;width:100%;font-size:15vw;font-weight:900;line-height:1;background:linear-gradient( 180deg, #fff 0%, rgba(17,18,21,0.2) 70% );-webkit-background-clip:text;-webkit-text-fill-color:transparent;opacity:0.1;}.sec-head.jsx-575932941 .tbg.jsx-575932941 b.jsx-575932941{font-weight:500;font-size:12vw;}.main-content.jsx-575932941{position:relative;z-index:999999;background:transparent;}.masonery.jsx-575932941 .gallery.jsx-575932941 .items.jsx-575932941{margin-top:30px;}.masonery.jsx-575932941 .container-fluid.jsx-575932941{padding:0 100px;}@media (max-width:768px){.masonery.jsx-575932941 .container-fluid.jsx-575932941{padding:0 20px;}.sec-head.jsx-575932941 h3.jsx-575932941{font-size:34px;}.sec-head.jsx-575932941{margin:0 auto 30px;}}.masonery.jsx-575932941 .item-img.jsx-575932941{padding:5px 15px 20px;border-radius:10px;background:#18191d;position:relative;}.masonery.jsx-575932941 .item-img.jsx-575932941 .dot.jsx-575932941{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,0.05);}.masonery.jsx-575932941 .item-img.jsx-575932941 .img.jsx-575932941{border-radius:10px;overflow:hidden;}.masonery.jsx-575932941 .item-img.jsx-575932941 .img.jsx-575932941 img.jsx-575932941{-webkit-transition:all 0.4s;transition:all 0.4s;}.masonery.jsx-575932941 .item-img.jsx-575932941 .img.jsx-575932941:hover img.jsx-575932941{-webkit-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1);}.masonery.jsx-575932941 .item-img.jsx-575932941 .cont.jsx-575932941{margin-top:20px;text-align:center;position:relative;}.masonery.jsx-575932941 .item-img.jsx-575932941 .cont.jsx-575932941 h6.jsx-575932941{font-size:16px;font-weight:500;-webkit-letter-spacing:1px;-moz-letter-spacing:1px;-ms-letter-spacing:1px;letter-spacing:1px;}.masonery.jsx-575932941 .item-img.jsx-575932941 .cont.jsx-575932941 .sta.jsx-575932941{position:absolute;top:-47px;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);padding:5px 10px;border-radius:30px;box-shadow:0px 5px 20px rgba(255,255,255,0.05);font-size:12px;}.masonery.jsx-575932941 .item-img.jsx-575932941 .cont.jsx-575932941 .sta.coming.jsx-575932941{background:#03be5f;}.masonery.jsx-575932941 .item-img.jsx-575932941 .cont.jsx-575932941 .sta.new.jsx-575932941{background:#ff4b4b;}\\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkM6XFxVc2Vyc1xcaHBcXERlc2t0b3BcXGJ1c2luZXNzLWh1Ylxcc3JjXFxwYWdlc1xcZGVtb3NcXGRlbW9zLmpzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE4QmtCLEFBRzBCLEFBTUcsQUFrQkYsQUFLRSxBQU1GLEFBSUEsQUFLQyxBQUdBLEFBR0ksQUFLQyxBQU9aLEFBT1MsQUFLQyxBQUlDLEFBSUwsQUFNRCxBQU1HLEFBV0MsQUFJQSxVQTlDUixLQTlESyxBQTRDaEIsQUFHQSxBQXlDZ0IsQ0FoRUQsQUFXakIsQUFJQSxBQTJDb0IsRUE1RVAsQUF1QkksQUFpRUwsQ0E1Q1YsQUFtQmdCLEFBb0NsQixBQUlBLEVBOUNvQixDQVJDLE1Bd0NWLENBeEZGLEVBTlcsQUF3QnBCLEFBZ0VxQixFQTNESSxDQXFETCxDQWJwQixDQTlEYSxDQXdGZ0IsRUFoQ1UsRUFSbEIsTUEvQ0osQ0FpRWpCLENBeEVBLEdBa0ZBLElBckRBLElBMEJvQixFQS9DRixXQXVEbEIsRUFhQSxHQW5FZ0IsQUErQ2hCLGNBMUNHLGdDQTBFSCxNQU9tQixpQkFDRSxlQWpGVSxJQWtGcUIseUJBakZkLHNCQWtGckIsY0FqRkgsQ0FrRmQsV0FqRkEiLCJmaWxlIjoiQzpcXFVzZXJzXFxocFxcRGVza3RvcFxcYnVzaW5lc3MtaHViXFxzcmNcXHBhZ2VzXFxkZW1vc1xcZGVtb3MuanN4Iiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBwYXJ0aWNsZXNDb25maWcgZnJvbSBcIi4uLy4uL2NvbmZpZy9wYXJ0aWNsZS1jb25maWdcIjtcclxuaW1wb3J0IFBhcnRpY2xlcyBmcm9tIFwicmVhY3QtdHNwYXJ0aWNsZXNcIjtcclxuaW1wb3J0IExpbmsgZnJvbSBcIm5leHQvbGlua1wiO1xyXG5pbXBvcnQgU3BsaXQgZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvU3BsaXRcIjtcclxuaW1wb3J0IERhcmtUaGVtZSBmcm9tIFwiLi4vLi4vbGF5b3V0cy9EYXJrXCI7XHJcbmltcG9ydCBpbml0SXNvdG9wZSBmcm9tIFwiLi4vLi4vY29tbW9uL2luaXRJc290b3BlXCI7XHJcblxyXG5jb25zdCBEZW1vcyA9ICgpID0+IHtcclxuICBjb25zdCBbcGFnZUxvYWRlZCwgc2V0UGFnZUxvYWRlZF0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XHJcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgIHNldFBhZ2VMb2FkZWQodHJ1ZSk7XHJcbiAgICBpZiAocGFnZUxvYWRlZCkge1xyXG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImxvYWRcIiwgKCkgPT4ge1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHBhZ2VMb2FkZWQpIHtcclxuICAgICAgICAgICAgaW5pdElzb3RvcGUoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LCAxMDAwKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgaWYgKHBhZ2VMb2FkZWQpIHtcclxuICAgICAgICBpbml0SXNvdG9wZSgpO1xyXG4gICAgICB9XHJcbiAgICB9LCAxMDAwKTtcclxuICB9LCBbcGFnZUxvYWRlZF0pO1xyXG4gIHJldHVybiAoXHJcbiAgICA8RGFya1RoZW1lPlxyXG4gICAgICA8c3R5bGUganN4PntgXHJcbiAgICAgICAgLnNlYy1oZWFkIGgzIHtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogNjBweDtcclxuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuc2VjLWhlYWQgLnRiZyB7XHJcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICB0b3A6IC0xMjBweDtcclxuICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMTV2dztcclxuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XHJcbiAgICAgICAgICBsaW5lLWhlaWdodDogMTtcclxuICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcclxuICAgICAgICAgICAgMTgwZGVnLFxyXG4gICAgICAgICAgICAjZmZmIDAlLFxyXG4gICAgICAgICAgICByZ2JhKDE3LCAxOCwgMjEsIDAuMikgNzAlXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XHJcbiAgICAgICAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICBvcGFjaXR5OiAwLjE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuc2VjLWhlYWQgLnRiZyBiIHtcclxuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICAgICAgICBmb250LXNpemU6IDEydnc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAubWFpbi1jb250ZW50IHtcclxuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgIHotaW5kZXg6IDk5OTk5OTtcclxuICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLm1hc29uZXJ5IC5nYWxsZXJ5IC5pdGVtcyB7XHJcbiAgICAgICAgICBtYXJnaW4tdG9wOiAzMHB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLm1hc29uZXJ5IC5jb250YWluZXItZmx1aWQge1xyXG4gICAgICAgICAgcGFkZGluZzogMCAxMDBweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgICAgICAgLm1hc29uZXJ5IC5jb250YWluZXItZmx1aWQge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwIDIwcHg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAuc2VjLWhlYWQgaDMge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDM0cHg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAuc2VjLWhlYWQge1xyXG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0byAzMHB4O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLm1hc29uZXJ5IC5pdGVtLWltZyB7XHJcbiAgICAgICAgICBwYWRkaW5nOiA1cHggMTVweCAyMHB4O1xyXG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcclxuICAgICAgICAgIGJhY2tncm91bmQ6ICMxODE5MWQ7XHJcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAubWFzb25lcnkgLml0ZW0taW1nIC5kb3Qge1xyXG4gICAgICAgICAgd2lkdGg6IDdweDtcclxuICAgICAgICAgIGhlaWdodDogN3B4O1xyXG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5tYXNvbmVyeSAuaXRlbS1pbWcgLmltZyB7XHJcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5tYXNvbmVyeSAuaXRlbS1pbWcgLmltZyBpbWcge1xyXG4gICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuNHM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAubWFzb25lcnkgLml0ZW0taW1nIC5pbWc6aG92ZXIgaW1nIHtcclxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5tYXNvbmVyeSAuaXRlbS1pbWcgLmNvbnQge1xyXG4gICAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcclxuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5tYXNvbmVyeSAuaXRlbS1pbWcgLmNvbnQgaDYge1xyXG4gICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAubWFzb25lcnkgLml0ZW0taW1nIC5jb250IC5zdGEge1xyXG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgdG9wOiAtNDdweDtcclxuICAgICAgICAgIGxlZnQ6IDUwJTtcclxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcclxuICAgICAgICAgIHBhZGRpbmc6IDVweCAxMHB4O1xyXG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMzBweDtcclxuICAgICAgICAgIGJveC1zaGFkb3c6IDBweCA1cHggMjBweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpO1xyXG4gICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLm1hc29uZXJ5IC5pdGVtLWltZyAuY29udCAuc3RhLmNvbWluZyB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAjMDNiZTVmO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLm1hc29uZXJ5IC5pdGVtLWltZyAuY29udCAuc3RhLm5ldyB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmY0YjRiO1xyXG4gICAgICAgIH1cclxuICAgICAgYH08L3N0eWxlPlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNpcmNsZS1iZ1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2lyY2xlLWNvbG9yIGZpeGVkXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyYWRpZW50LWNpcmNsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmFkaWVudC1jaXJjbGUgdHdvXCI+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8aGVhZGVyXHJcbiAgICAgICAgY2xhc3NOYW1lPVwid29ya3MtaGVhZGVyIHBhcnRpY2xlcyB2YWxpZ24gYmctaW1nIHBhcmFsbGF4aWVcIlxyXG4gICAgICAgIGRhdGEtb3ZlcmxheS1kYXJrPVwiNFwiXHJcbiAgICAgICAgc3R5bGU9e3tcclxuICAgICAgICAgIGJhY2tncm91bmRJbWFnZTogXCJ1cmwoL2RlbW8taW1nL2JnLnBuZylcIixcclxuICAgICAgICAgIG1pbkhlaWdodDogXCIxMDB2aFwiLFxyXG4gICAgICAgICAgekluZGV4OiA5OTk5OSxcclxuICAgICAgICB9fVxyXG4gICAgICA+XHJcbiAgICAgICAgPFBhcnRpY2xlcyBpZD1cInBhcnRpY2xlcy1qc1wiIG9wdGlvbnM9e3BhcnRpY2xlc0NvbmZpZ30gLz5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy05IGNvbC1tZC0xMSBzdGF0aWNcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNhcHQgbXQtNTBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmFjdHh0IGN1c3RvbS1mb250IHZhbGlnblwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJmdWxsLXdpZHRoXCIgc3R5bGU9e3sgY29sb3I6IFwidHJhbnNwYXJlbnRcIiB9fT5cclxuICAgICAgICAgICAgICAgICAgICB2aWVcclxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvaGVhZGVyPlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1haW4tY29udGVudCBzZWN0aW9uLXBhZGRpbmcgcGItMFwiPlxyXG4gICAgICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cIm1hc29uZXJ5IHNlY3Rpb24tcGFkZGluZ1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTggY29sLW1kLTEwXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNlYy1oZWFkIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJjb2xvci1mb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgNDkrIHN0dW5uaW5nIHVuaXF1ZSByZWFkeSB0ZW1wbGF0ZVxyXG4gICAgICAgICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0YmdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8Yj4rPC9iPjQ5XHJcbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXItZmx1aWRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdhbGxlcnkgZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9ob21lcGFnZS9ob21lMS1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy8xLnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5NYWluIERlbW88L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9ob21lcGFnZS9ob21lMS1saWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvMDEucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2Pk1haW4gRGVtbzwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2hvbWVwYWdlL2hvbWUyLWRhcmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nLzIucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PkNyZWF0aXZlIEFnZW5jeTwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2hvbWVwYWdlL2hvbWUyLWxpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy8wMi5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+Q3JlYXRpdmUgQWdlbmN5PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdhbGxlcnkgZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9tb2JpbGUtYXBwL21vYmlsZS1hcHAtZGFya1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvbW9iaWxlMS5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+TW9iaWxlIGFwcDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzdGEgbmV3XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5OZXcgRGVtbzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvbW9iaWxlLWFwcC9tb2JpbGUtYXBwLWxpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy9tb2JpbGUyLnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5Nb2JpbGUgYXBwPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInN0YSBuZXdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPk5ldyBEZW1vPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2hvbWVwYWdlL2hvbWU3LWRhcmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nL24yLnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5GcmVlbGFuY2VyPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvaG9tZXBhZ2UvaG9tZTctbGlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nL24wMi5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+RnJlZWxhbmNlcjwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2hvbWVwYWdlL2hvbWU4LWRhcmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nL24zLnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5BcmNoaXRlY3R1cmU8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9ob21lcGFnZS9ob21lOC1saWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvbjAzLnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5BcmNoaXRlY3R1cmU8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2hvbWVwYWdlL2hvbWU1LWRhcmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nLzMucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PkRpZ2l0YWwgQWdlbmN5PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvaG9tZXBhZ2UvaG9tZTUtbGlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nLzAzLnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5EaWdpdGFsIEFnZW5jeTwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJnYWxsZXJ5IGZ1bGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvaG9tZXBhZ2UvaG9tZTQtZGFya1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvNC5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+QnVzaW5lc3MgT25lIFBhZ2U8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9ob21lcGFnZS9ob21lNC1saWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvMDQucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PkJ1c2luZXNzIE9uZSBQYWdlPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9ob21lcGFnZS9ob21lMy1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy81LnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5Db3Jwb3JhdGUgQnVzaW5lc3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9ob21lcGFnZS9ob21lMy1saWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvMDUucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PkNvcnBvcmF0ZSBCdXNpbmVzczwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJnYWxsZXJ5IGZ1bGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvaG9tZXBhZ2UvaG9tZTYtZGFya1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvbjEucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2Pk1vZGVybiBBZ2VuY3k8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9ob21lcGFnZS9ob21lNi1saWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvbjAxLnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5Nb2Rlcm4gQWdlbmN5PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nL2MzLnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxoNj5SZXN0YXVyYW50PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3RhIGNvbWluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5Db21pbmcgU29vbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy9jNC5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aDY+TXVsdGlwdXJwb3NlPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3RhIGNvbWluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5Db21pbmcgU29vbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuXHJcbiAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwibWFzb25lcnkgc2VjdGlvbi1wYWRkaW5nIHBvc2l0aW9uLXJlXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOCBjb2wtbWQtMTBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2VjLWhlYWQgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cImNvbG9yLWZvbnRcIj5TaG93Y2FzZXM8L2gzPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ2FsbGVyeSBmdWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL3Nob3djYXNlL3Nob3djYXNlLWRhcmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nL3MxLnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5GdWxsIFNjcmVlbjwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL3Nob3djYXNlL3Nob3djYXNlLWxpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy9zMDEucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PkZ1bGwgU2NyZWVuPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvc2hvd2Nhc2U0L3Nob3djYXNlNC1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy9zMi5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+U2hvd2Nhc2UgQ2Fyb3VzZWw8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9zaG93Y2FzZTQvc2hvd2Nhc2U0LWxpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy9zMDIucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PlNob3djYXNlIENhcm91c2VsPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvc2hvd2Nhc2UzL3Nob3djYXNlMy1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy9zMy5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+U2hvd2Nhc2UgQ2lyY2xlPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvc2hvd2Nhc2UzL3Nob3djYXNlMy1saWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvczAzLnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5TaG93Y2FzZSBDaXJjbGU8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi93b3Jrcy93b3Jrcy1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy93MS5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+V29ya3MgMyBjb2x1bW48L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi93b3Jrcy93b3Jrcy1saWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvdzAxLnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5Xb3JrcyAzIGNvbHVtbjwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL3dvcmtzMi93b3JrczItZGFya1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvdzIucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PldvcmtzIEZpbHRlcmluZzwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL3dvcmtzMi93b3JrczItbGlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nL3cwMi5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+V29ya3MgRmlsdGVyaW5nPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvd29ya3MzL3dvcmtzMy1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy93My5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+V29ya3MgR2FsbGVyeTwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL3dvcmtzMy93b3JrczMtbGlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nL3cwMy5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+V29ya3MgR2FsbGVyeTwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxpbmUgdG9wIGxlZnRcIj48L2Rpdj5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcblxyXG4gICAgICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cIm1hc29uZXJ5IHNlY3Rpb24tcGFkZGluZyBwb3NpdGlvbi1yZVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTggY29sLW1kLTEwXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNlYy1oZWFkIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJjb2xvci1mb250XCI+SW5uZXIgUGFnZXM8L2gzPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ2FsbGVyeSBmdWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2Jsb2cvYmxvZy1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCIvZGVtby1pbWcvc3RhbmRlcmQtYmxvZy1kYXJrLnBuZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJpbWFnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5TdGFuZGVyZCBCbG9nPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvYmxvZy9ibG9nLWxpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCIvZGVtby1pbWcvc3RhbmRlcmQtYmxvZy1saWdodC5wbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiaW1hZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+U3RhbmRlcmQgQmxvZzwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2Jsb2ctbGlzdC9ibG9nLWxpc3QtZGFya1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvYmxvZy1saXN0LWRhcmsucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PkJsb2cgTGlzdDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2Jsb2ctbGlzdC9ibG9nLWxpc3QtbGlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cIi9kZW1vLWltZy9ibG9nLWxpc3QtbGlnaHQucG5nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cImltYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PkJsb2cgTGlzdDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2Jsb2ctZ3JpZC9ibG9nLWdyaWQtZGFya1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvYmxvZy1ncmlkLWRhcmsucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PkJsb2cgR3JpZDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2Jsb2ctZ3JpZC9ibG9nLWdyaWQtbGlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cIi9kZW1vLWltZy9ibG9nLWdyaWQtbGlnaHQucG5nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cImltYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PkJsb2cgR3JpZDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2Jsb2ctZGV0YWlscy9ibG9nLWRldGFpbHMtZGFya1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPVwiL2RlbW8taW1nL2Jsb2ctZGV0YWlscy1kYXJrLnBuZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJpbWFnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5CbG9nIERldGFpbHM8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9ibG9nLWRldGFpbHMvYmxvZy1kZXRhaWxzLWxpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCIvZGVtby1pbWcvYmxvZy1kZXRhaWxzLWxpZ2h0LnBuZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJpbWFnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5CbG9nIERldGFpbHM8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9hYm91dC9hYm91dC1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy9hYm91dC5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+QWJvdXQgVXM8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9hYm91dC9hYm91dC1saWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvYWJvdXQxLnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5BYm91dCBVczwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvY29udGFjdC9jb250YWN0LWRhcmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nL2NvbnRhY3QtZGFyay5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+Q29udGFjdDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2NvbnRhY3QvY29udGFjdC1saWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvY29udGFjdC1saWdodC5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+Q29udGFjdDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxpbmUgdG9wIGxlZnRcIj48L2Rpdj5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcblxyXG4gICAgICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInNlcnZpY2VzIGJvcmRzIGxmaWNvbiBzZWN0aW9uLXBhZGRpbmcgcG9zaXRpb24tcmVcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy04IGNvbC1tZC0xMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWMtaGVhZCAgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGg2IGNsYXNzTmFtZT1cIndvdyBmYWRlSW5cIiBkYXRhLXdvdy1kZWxheT1cIi41c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIEJlc3QgRmVhdHVyZXNcclxuICAgICAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cIndvdyBjb2xvci1mb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgQ3JlYXRpdmUgQWdlbmN5LCBDb3Jwb3JhdGUgYW5kIFBvcnRmb2xpbyBUZW1wbGF0ZVxyXG4gICAgICAgICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTYgd293IGZhZGVJbkxlZnRcIiBkYXRhLXdvdy1kZWxheT1cIi41c1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWJveFwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24gcGUtN3MtcGFpbnQtYnVja2V0XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg2PlVJL1VYIERlc2lnbjwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICBXZSBwcm92aWRlIHRoZSBiZXN0IGRlc2lnbiBieSBmb2xsb3dpbmcgdGhlIGxhdGVzdCB0cmVuZHMuXHJcbiAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTYgd293IGZhZGVJbkxlZnRcIiBkYXRhLXdvdy1kZWxheT1cIi43c1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWJveFwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24gcGUtN3MtcGhvbmVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+RWFzaWx5IEN1c3RvbWl6YWJsZTwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+QnVpbGQgYW5kIGN1c3RvbWl6ZSBzdHVubmluZyBwYWdlcyBpbiBtaW51dGVzLjwvcD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy02IHdvdyBmYWRlSW5MZWZ0XCIgZGF0YS13b3ctZGVsYXk9XCIuOXNcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1ib3hcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJpY29uIHBlLTdzLWRpc3BsYXkxXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg2Pk9uZSAvIE11bHRpIFBhZ2U8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPkNob29zZSB0aGUgbGF5b3V0IHN0eWxlIHRoYXQgZml0cyB5b3VyIG5lZWQuPC9wPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTYgd293IGZhZGVJbkxlZnRcIiBkYXRhLXdvdy1kZWxheT1cIi41c1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWJveFwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24gcGUtN3MtZGlza2V0dGVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+MjQvNyBTdXBwb3J0PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICA8cD5XZSBjb21taXQgdG8ga2VlcCB5b3VyIHNpdGUgdXAtdG8tZGF0ZS48L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxpbmUgdG9wIHJpZ2h0XCI+PC9kaXY+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG5cclxuICAgICAgICA8c2VjdGlvblxyXG4gICAgICAgICAgY2xhc3NOYW1lPVwiY2FsbC1hY3Rpb24gc2VjdGlvbi1wYWRkaW5nIGJnLWltZ1wiXHJcbiAgICAgICAgICBzdHlsZT17eyBiYWNrZ3JvdW5kSW1hZ2U6IFwidXJsKC9pbWcvcGF0cm4uc3ZnKVwiIH19XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1tZC04IGNvbC1sZy05XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRlbnQgc20tbWIzMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8U3BsaXQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg2IGNsYXNzTmFtZT1cIndvdyB3b3JkcyBjaGFycyBzcGxpdHRpbmdcIiBkYXRhLXNwbGl0dGluZz5cclxuICAgICAgICAgICAgICAgICAgICAgIFB1cmNoYXNlIFRoZSBWaWVcclxuICAgICAgICAgICAgICAgICAgICA8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJ3b3cgd29yZHMgY2hhcnMgc3BsaXR0aW5nXCIgZGF0YS1zcGxpdHRpbmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICBhbmQgTWFrZSA8YnIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxiIGNsYXNzTmFtZT1cImJhY2stY29sb3JcIj5Zb3VyIExpZmUgRWFzaWVyPC9iPi5cclxuICAgICAgICAgICAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgICAgICAgICA8L1NwbGl0PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLW1kLTQgY29sLWxnLTMgdmFsaWduXCI+XHJcbiAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICBocmVmPVwiIzBcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJidXRuIGJvcmQgY3VydmUgd293IGZhZGVJblVwXCJcclxuICAgICAgICAgICAgICAgICAgZGF0YS13b3ctZGVsYXk9XCIuNXNcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8c3Bhbj5QdXJjaGFzZSBOb3c8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvRGFya1RoZW1lPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBEZW1vcztcclxuIl19 */\\n/*@ sourceURL=C:\\\\\\\\Users\\\\\\\\hp\\\\\\\\Desktop\\\\\\\\business-hub\\\\\\\\src\\\\\\\\pages\\\\\\\\demos\\\\\\\\demos.jsx */\"\n }, void 0, false, void 0, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"circle-bg\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"circle-color fixed\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"gradient-circle\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"gradient-circle two\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 146,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"header\", {\n \"data-overlay-dark\": \"4\",\n style: {\n backgroundImage: \"url(/demo-img/bg.png)\",\n minHeight: \"100vh\",\n zIndex: 99999\n },\n className: \"jsx-575932941\" + \" \" + \"works-header particles valign bg-img parallaxie\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((react_tsparticles__WEBPACK_IMPORTED_MODULE_4___default()), {\n id: \"particles-js\",\n options: _config_particle_config__WEBPACK_IMPORTED_MODULE_3__[\"default\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 160,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-9 col-md-11 static\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"capt mt-50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"bactxt custom-font valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n style: {\n color: \"transparent\"\n },\n className: \"jsx-575932941\" + \" \" + \"full-width\",\n children: \"vie\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 164,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 163,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 162,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 161,\n columnNumber: 9\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 151,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"main-content section-padding pb-0\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"section\", {\n className: \"jsx-575932941\" + \" \" + \"masonery section-padding\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h3\", {\n className: \"jsx-575932941\" + \" \" + \"color-font\",\n children: \"49+ stunning unique ready template\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"tbg\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"b\", {\n className: \"jsx-575932941\",\n children: \"+\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 21\n }, _this), \"49\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"container-fluid\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"gallery full-width\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_5___default()), {\n href: \"/homepage/home1-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/demo-img/1.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Main Demo\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_5___default()), {\n href: \"/homepage/home1-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/demo-img/01.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Main Demo\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_5___default()), {\n href: \"/homepage/home2-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/demo-img/2.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Creative Agency\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 241,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 230,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 250,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_5___default()), {\n href: \"/homepage/home2-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/demo-img/02.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 256,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 255,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Creative Agency\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 254,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 253,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"gallery full-width\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 270,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 271,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 272,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_5___default()), {\n href: \"/mobile-app/mobile-app-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/demo-img/mobile1.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 275,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Mobile app\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 27\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"sta new\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\",\n children: \"New Demo\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 281,\n columnNumber: 29\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 280,\n columnNumber: 27\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 274,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 273,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 291,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 292,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 293,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_5___default()), {\n href: \"/mobile-app/mobile-app-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/demo-img/mobile2.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 297,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 296,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Mobile app\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 300,\n columnNumber: 27\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"sta new\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\",\n children: \"New Demo\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 302,\n columnNumber: 29\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 301,\n columnNumber: 27\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 299,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 295,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 294,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 290,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 289,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 312,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 313,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_5___default()), {\n href: \"/homepage/home7-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/demo-img/n2.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 317,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 316,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Freelancer\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 320,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 319,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 315,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 314,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 310,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 309,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 329,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 330,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 331,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_5___default()), {\n href: \"/homepage/home7-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/demo-img/n02.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 335,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 334,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Freelancer\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 338,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 337,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 333,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 332,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 328,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 327,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 347,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 348,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 349,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_5___default()), {\n href: \"/homepage/home8-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/demo-img/n3.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 353,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 352,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Architecture\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 356,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 355,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 351,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 350,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 346,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 345,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 365,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 366,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 367,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_5___default()), {\n href: \"/homepage/home8-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/demo-img/n03.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 371,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 370,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Architecture\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 374,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 373,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 369,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 368,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 364,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 363,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 382,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 383,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 384,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_5___default()), {\n href: \"/homepage/home5-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/demo-img/3.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 388,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 387,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Digital Agency\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 391,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 390,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 386,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 385,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 381,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 380,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 400,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 401,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 402,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_5___default()), {\n href: \"/homepage/home5-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/demo-img/03.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 406,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 405,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Digital Agency\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 409,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 408,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 404,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 403,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 399,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 398,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"gallery full-width\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 420,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 421,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 422,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_5___default()), {\n href: \"/homepage/home4-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/demo-img/4.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 426,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 425,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Business One Page\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 429,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 428,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 424,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 423,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 419,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 418,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 438,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 439,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 440,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_5___default()), {\n href: \"/homepage/home4-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/demo-img/04.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 444,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 443,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Business One Page\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 447,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 446,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 442,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 441,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 437,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 436,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 455,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 456,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 457,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_5___default()), {\n href: \"/homepage/home3-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/demo-img/5.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 461,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 460,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Corporate Business\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 464,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 463,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 459,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 458,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 454,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 453,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 473,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 474,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 475,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_5___default()), {\n href: \"/homepage/home3-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/demo-img/05.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 479,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 478,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Corporate Business\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 482,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 481,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 477,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 476,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 472,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 471,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 417,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"gallery full-width\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 493,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 494,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 495,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_5___default()), {\n href: \"/homepage/home6-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/demo-img/n1.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 499,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 498,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Modern Agency\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 502,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 501,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 497,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 496,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 492,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 491,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 511,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 512,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 513,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_5___default()), {\n href: \"/homepage/home6-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/demo-img/n01.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 517,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 516,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Modern Agency\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 520,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 519,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 515,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 514,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 510,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 509,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 528,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 529,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 530,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/demo-img/c3.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 532,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 531,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Restaurant\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 535,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"sta coming\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\",\n children: \"Coming Soon\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 537,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 536,\n columnNumber: 23\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 534,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 527,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 526,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 545,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 546,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 547,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/demo-img/c4.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 549,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 548,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Multipurpose\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 552,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"sta coming\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\",\n children: \"Coming Soon\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 554,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 553,\n columnNumber: 23\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 551,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 544,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 543,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 490,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"section\", {\n className: \"jsx-575932941\" + \" \" + \"masonery section-padding position-re\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"sec-head text-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h3\", {\n className: \"jsx-575932941\" + \" \" + \"color-font\",\n children: \"Showcases\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 569,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 568,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 567,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 566,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 565,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"container-fluid\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"row\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"gallery full-width\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 579,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 580,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 581,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_5___default()), {\n href: \"/showcase/showcase-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/demo-img/s1.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 585,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 584,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Full Screen\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 588,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 587,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 583,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 582,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 578,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 577,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 597,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 598,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 599,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_5___default()), {\n href: \"/showcase/showcase-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/demo-img/s01.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 603,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 602,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Full Screen\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 606,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 605,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 601,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 600,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 596,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 595,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 615,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 616,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 617,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_5___default()), {\n href: \"/showcase4/showcase4-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/demo-img/s2.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 621,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 620,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Showcase Carousel\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 624,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 623,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 619,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 618,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 614,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 613,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 633,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 634,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 635,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_5___default()), {\n href: \"/showcase4/showcase4-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/demo-img/s02.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 639,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 638,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Showcase Carousel\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 642,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 641,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 637,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 636,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 632,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 631,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 651,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 652,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 653,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_5___default()), {\n href: \"/showcase3/showcase3-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/demo-img/s3.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 657,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 656,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Showcase Circle\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 660,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 659,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 655,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 654,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 650,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 649,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 669,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 670,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 671,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_5___default()), {\n href: \"/showcase3/showcase3-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/demo-img/s03.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 675,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 674,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Showcase Circle\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 678,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 677,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 673,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 672,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 668,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 667,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 687,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 688,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 689,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_5___default()), {\n href: \"/works/works-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/demo-img/w1.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 693,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 692,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Works 3 column\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 696,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 695,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 691,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 690,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 686,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 685,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 705,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 706,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 707,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_5___default()), {\n href: \"/works/works-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/demo-img/w01.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 711,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 710,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Works 3 column\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 714,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 713,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 709,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 708,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 704,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 703,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 723,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 724,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 725,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_5___default()), {\n href: \"/works2/works2-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/demo-img/w2.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 729,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 728,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Works Filtering\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 732,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 731,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 727,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 726,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 722,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 721,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 741,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 742,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 743,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_5___default()), {\n href: \"/works2/works2-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/demo-img/w02.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 747,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 746,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Works Filtering\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 750,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 749,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 745,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 744,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 740,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 739,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 759,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 760,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 761,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_5___default()), {\n href: \"/works3/works3-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/demo-img/w3.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 765,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 764,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Works Gallery\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 768,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 767,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 763,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 762,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 758,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 757,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 777,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 778,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 779,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_5___default()), {\n href: \"/works3/works3-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/demo-img/w03.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 783,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 782,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Works Gallery\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 786,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 785,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 781,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 780,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 776,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 775,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 576,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 575,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 574,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"line top left\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 796,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 564,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"section\", {\n className: \"jsx-575932941\" + \" \" + \"masonery section-padding position-re\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"sec-head text-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h3\", {\n className: \"jsx-575932941\" + \" \" + \"color-font\",\n children: \"Inner Pages\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 804,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 803,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 802,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 801,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 800,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"container-fluid\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"row\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"gallery full-width\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 814,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 815,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 816,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_5___default()), {\n href: \"/blog/blog-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/demo-img/standerd-blog-dark.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 820,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 819,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Standerd Blog\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 826,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 825,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 818,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 817,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 813,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 812,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 835,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 836,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 837,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_5___default()), {\n href: \"/blog/blog-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/demo-img/standerd-blog-light.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 841,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 840,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Standerd Blog\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 847,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 846,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 839,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 838,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 834,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 833,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 856,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 857,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 858,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_5___default()), {\n href: \"/blog-list/blog-list-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/demo-img/blog-list-dark.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 862,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 861,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Blog List\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 865,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 864,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 860,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 859,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 855,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 854,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 874,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 875,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 876,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_5___default()), {\n href: \"/blog-list/blog-list-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/demo-img/blog-list-light.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 880,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 879,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Blog List\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 886,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 885,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 878,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 877,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 873,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 872,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 895,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 896,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 897,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_5___default()), {\n href: \"/blog-grid/blog-grid-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/demo-img/blog-grid-dark.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 901,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 900,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Blog Grid\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 904,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 903,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 899,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 898,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 894,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 893,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 913,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 914,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 915,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_5___default()), {\n href: \"/blog-grid/blog-grid-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/demo-img/blog-grid-light.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 919,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 918,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Blog Grid\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 925,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 924,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 917,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 916,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 912,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 911,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 934,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 935,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 936,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_5___default()), {\n href: \"/blog-details/blog-details-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/demo-img/blog-details-dark.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 940,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 939,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Blog Details\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 946,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 945,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 938,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 937,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 933,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 932,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 955,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 956,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 957,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_5___default()), {\n href: \"/blog-details/blog-details-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/demo-img/blog-details-light.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 961,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 960,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Blog Details\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 967,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 966,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 959,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 958,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 954,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 953,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 976,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 977,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 978,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_5___default()), {\n href: \"/about/about-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/demo-img/about.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 982,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 981,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"About Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 985,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 984,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 980,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 979,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 975,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 974,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 994,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 995,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 996,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_5___default()), {\n href: \"/about/about-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/demo-img/about1.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1000,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 999,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"About Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1003,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1002,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 998,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 997,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 993,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 992,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1011,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1012,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1013,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_5___default()), {\n href: \"/contact/contact-dark\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/demo-img/contact-dark.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1017,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1016,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Contact\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1020,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1019,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 1015,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1014,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 1010,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1009,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-3 col-md-6 items\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".4s\",\n className: \"jsx-575932941\" + \" \" + \"item-img wow fadeInUp\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1029,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1030,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"dot\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1031,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_5___default()), {\n href: \"/contact/contact-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"a\", {\n target: \"_blank\",\n className: \"jsx-575932941\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"img\", {\n src: \"/demo-img/contact-light.png\",\n alt: \"image\",\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1035,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1034,\n columnNumber: 25\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Contact\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1038,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1037,\n columnNumber: 25\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 1033,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1032,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 1028,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1027,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 811,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 810,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 809,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"line top left\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1048,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 799,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"section\", {\n className: \"jsx-575932941\" + \" \" + \"services bords lficon section-padding position-re\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"container\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n \"data-wow-delay\": \".5s\",\n className: \"jsx-575932941\" + \" \" + \"wow fadeIn\",\n children: \"Best Features\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1056,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h3\", {\n className: \"jsx-575932941\" + \" \" + \"wow color-font\",\n children: \"Creative Agency, Corporate and Portfolio Template\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1059,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 1055,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1054,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1053,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".5s\",\n className: \"jsx-575932941\" + \" \" + \"col-lg-6 wow fadeInLeft\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"item-box\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"icon pe-7s-paint-bucket\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1069,\n columnNumber: 21\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1068,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"UI/UX Design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1072,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"p\", {\n className: \"jsx-575932941\",\n children: \"We provide the best design by following the latest trends.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1073,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 1071,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 1067,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1066,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".7s\",\n className: \"jsx-575932941\" + \" \" + \"col-lg-6 wow fadeInLeft\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"item-box\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"icon pe-7s-phone\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1082,\n columnNumber: 21\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1081,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"Easily Customizable\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1085,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"p\", {\n className: \"jsx-575932941\",\n children: \"Build and customize stunning pages in minutes.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1086,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 1084,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 1080,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1079,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".9s\",\n className: \"jsx-575932941\" + \" \" + \"col-lg-6 wow fadeInLeft\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"item-box\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"icon pe-7s-display1\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1093,\n columnNumber: 21\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1092,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"One / Multi Page\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1096,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"p\", {\n className: \"jsx-575932941\",\n children: \"Choose the layout style that fits your need.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1097,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 1095,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 1091,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1090,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n \"data-wow-delay\": \".5s\",\n className: \"jsx-575932941\" + \" \" + \"col-lg-6 wow fadeInLeft\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"item-box\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\" + \" \" + \"icon pe-7s-diskette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1104,\n columnNumber: 21\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1103,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n className: \"jsx-575932941\",\n children: \"24/7 Support\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1107,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"p\", {\n className: \"jsx-575932941\",\n children: \"We commit to keep your site up-to-date.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1108,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 1106,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 1102,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1101,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 1065,\n columnNumber: 13\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 1052,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"line top right\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1114,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 1051,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"section\", {\n style: {\n backgroundImage: \"url(/img/patrn.svg)\"\n },\n className: \"jsx-575932941\" + \" \" + \"call-action section-padding bg-img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-md-8 col-lg-9\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"content sm-mb30\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(_components_Split__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h6\", {\n \"data-splitting\": true,\n className: \"jsx-575932941\" + \" \" + \"wow words chars splitting\",\n children: \"Purchase The Vie\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1126,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"h2\", {\n \"data-splitting\": true,\n className: \"jsx-575932941\" + \" \" + \"wow words chars splitting\",\n children: [\"and Make \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"br\", {\n className: \"jsx-575932941\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1130,\n columnNumber: 32\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"b\", {\n className: \"jsx-575932941\" + \" \" + \"back-color\",\n children: \"Your Life Easier\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1131,\n columnNumber: 23\n }, _this), \".\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 1129,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 1125,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1124,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1123,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"div\", {\n className: \"jsx-575932941\" + \" \" + \"col-md-4 col-lg-3 valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"a\", {\n href: \"#0\",\n \"data-wow-delay\": \".5s\",\n className: \"jsx-575932941\" + \" \" + \"butn bord curve wow fadeInUp\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"span\", {\n className: \"jsx-575932941\",\n children: \"Purchase Now\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1143,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1138,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1137,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 1122,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1121,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 1117,\n columnNumber: 9\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 5\n }, _this);\n};\n\n_s(Demos, \"q1loMTjWIGqRxbY/STi3tagwwmE=\");\n\n_c = Demos;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Demos);\n\nvar _c;\n\n$RefreshReg$(_c, \"Demos\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxhQWpKRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsV0FERjtBQW1tQ0QsQ0F0bkNEOztHQUFNUjs7S0FBQUE7QUF3bkNOLCtEQUFlQSxLQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9wYWdlcy9kZW1vcy9kZW1vcy5qc3g/OWMyNyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAbmV4dC9uZXh0L25vLWltZy1lbGVtZW50ICovXHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHBhcnRpY2xlc0NvbmZpZyBmcm9tIFwiLi4vLi4vY29uZmlnL3BhcnRpY2xlLWNvbmZpZ1wiO1xyXG5pbXBvcnQgUGFydGljbGVzIGZyb20gXCJyZWFjdC10c3BhcnRpY2xlc1wiO1xyXG5pbXBvcnQgTGluayBmcm9tIFwibmV4dC9saW5rXCI7XHJcbmltcG9ydCBTcGxpdCBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9TcGxpdFwiO1xyXG5pbXBvcnQgRGFya1RoZW1lIGZyb20gXCIuLi8uLi9sYXlvdXRzL0RhcmtcIjtcclxuaW1wb3J0IGluaXRJc290b3BlIGZyb20gXCIuLi8uLi9jb21tb24vaW5pdElzb3RvcGVcIjtcclxuXHJcbmNvbnN0IERlbW9zID0gKCkgPT4ge1xyXG4gIGNvbnN0IFtwYWdlTG9hZGVkLCBzZXRQYWdlTG9hZGVkXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcclxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgc2V0UGFnZUxvYWRlZCh0cnVlKTtcclxuICAgIGlmIChwYWdlTG9hZGVkKSB7XHJcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwibG9hZFwiLCAoKSA9PiB7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICBpZiAocGFnZUxvYWRlZCkge1xyXG4gICAgICAgICAgICBpbml0SXNvdG9wZSgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sIDEwMDApO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiAocGFnZUxvYWRlZCkge1xyXG4gICAgICAgIGluaXRJc290b3BlKCk7XHJcbiAgICAgIH1cclxuICAgIH0sIDEwMDApO1xyXG4gIH0sIFtwYWdlTG9hZGVkXSk7XHJcbiAgcmV0dXJuIChcclxuICAgIDxEYXJrVGhlbWU+XHJcbiAgICAgIDxzdHlsZSBqc3g+e2BcclxuICAgICAgICAuc2VjLWhlYWQgaDMge1xyXG4gICAgICAgICAgZm9udC1zaXplOiA2MHB4O1xyXG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5zZWMtaGVhZCAudGJnIHtcclxuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgIHRvcDogLTEyMHB4O1xyXG4gICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgZm9udC1zaXplOiAxNXZ3O1xyXG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcclxuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxyXG4gICAgICAgICAgICAxODBkZWcsXHJcbiAgICAgICAgICAgICNmZmYgMCUsXHJcbiAgICAgICAgICAgIHJnYmEoMTcsIDE4LCAyMSwgMC4yKSA3MCVcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDtcclxuICAgICAgICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgIG9wYWNpdHk6IDAuMTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5zZWMtaGVhZCAudGJnIGIge1xyXG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMTJ2dztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5tYWluLWNvbnRlbnQge1xyXG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgei1pbmRleDogOTk5OTk5O1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAubWFzb25lcnkgLmdhbGxlcnkgLml0ZW1zIHtcclxuICAgICAgICAgIG1hcmdpbi10b3A6IDMwcHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAubWFzb25lcnkgLmNvbnRhaW5lci1mbHVpZCB7XHJcbiAgICAgICAgICBwYWRkaW5nOiAwIDEwMHB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgICAgICAubWFzb25lcnkgLmNvbnRhaW5lci1mbHVpZCB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMjBweDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC5zZWMtaGVhZCBoMyB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMzRweDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC5zZWMtaGVhZCB7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvIDMwcHg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAubWFzb25lcnkgLml0ZW0taW1nIHtcclxuICAgICAgICAgIHBhZGRpbmc6IDVweCAxNXB4IDIwcHg7XHJcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogIzE4MTkxZDtcclxuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5tYXNvbmVyeSAuaXRlbS1pbWcgLmRvdCB7XHJcbiAgICAgICAgICB3aWR0aDogN3B4O1xyXG4gICAgICAgICAgaGVpZ2h0OiA3cHg7XHJcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLm1hc29uZXJ5IC5pdGVtLWltZyAuaW1nIHtcclxuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLm1hc29uZXJ5IC5pdGVtLWltZyAuaW1nIGltZyB7XHJcbiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC40cztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5tYXNvbmVyeSAuaXRlbS1pbWcgLmltZzpob3ZlciBpbWcge1xyXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLm1hc29uZXJ5IC5pdGVtLWltZyAuY29udCB7XHJcbiAgICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xyXG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLm1hc29uZXJ5IC5pdGVtLWltZyAuY29udCBoNiB7XHJcbiAgICAgICAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5tYXNvbmVyeSAuaXRlbS1pbWcgLmNvbnQgLnN0YSB7XHJcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICB0b3A6IC00N3B4O1xyXG4gICAgICAgICAgbGVmdDogNTAlO1xyXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xyXG4gICAgICAgICAgcGFkZGluZzogNXB4IDEwcHg7XHJcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAzMHB4O1xyXG4gICAgICAgICAgYm94LXNoYWRvdzogMHB4IDVweCAyMHB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSk7XHJcbiAgICAgICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAubWFzb25lcnkgLml0ZW0taW1nIC5jb250IC5zdGEuY29taW5nIHtcclxuICAgICAgICAgIGJhY2tncm91bmQ6ICMwM2JlNWY7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAubWFzb25lcnkgLml0ZW0taW1nIC5jb250IC5zdGEubmV3IHtcclxuICAgICAgICAgIGJhY2tncm91bmQ6ICNmZjRiNGI7XHJcbiAgICAgICAgfVxyXG4gICAgICBgfTwvc3R5bGU+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2lyY2xlLWJnXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjaXJjbGUtY29sb3IgZml4ZWRcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JhZGllbnQtY2lyY2xlXCI+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyYWRpZW50LWNpcmNsZSB0d29cIj48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxoZWFkZXJcclxuICAgICAgICBjbGFzc05hbWU9XCJ3b3Jrcy1oZWFkZXIgcGFydGljbGVzIHZhbGlnbiBiZy1pbWcgcGFyYWxsYXhpZVwiXHJcbiAgICAgICAgZGF0YS1vdmVybGF5LWRhcms9XCI0XCJcclxuICAgICAgICBzdHlsZT17e1xyXG4gICAgICAgICAgYmFja2dyb3VuZEltYWdlOiBcInVybCgvZGVtby1pbWcvYmcucG5nKVwiLFxyXG4gICAgICAgICAgbWluSGVpZ2h0OiBcIjEwMHZoXCIsXHJcbiAgICAgICAgICB6SW5kZXg6IDk5OTk5LFxyXG4gICAgICAgIH19XHJcbiAgICAgID5cclxuICAgICAgICA8UGFydGljbGVzIGlkPVwicGFydGljbGVzLWpzXCIgb3B0aW9ucz17cGFydGljbGVzQ29uZmlnfSAvPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTkgY29sLW1kLTExIHN0YXRpY1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FwdCBtdC01MFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiYWN0eHQgY3VzdG9tLWZvbnQgdmFsaWduXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImZ1bGwtd2lkdGhcIiBzdHlsZT17eyBjb2xvcjogXCJ0cmFuc3BhcmVudFwiIH19PlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZVxyXG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9oZWFkZXI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWFpbi1jb250ZW50IHNlY3Rpb24tcGFkZGluZyBwYi0wXCI+XHJcbiAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwibWFzb25lcnkgc2VjdGlvbi1wYWRkaW5nXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOCBjb2wtbWQtMTBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2VjLWhlYWQgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cImNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA0OSsgc3R1bm5pbmcgdW5pcXVlIHJlYWR5IHRlbXBsYXRlXHJcbiAgICAgICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRiZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxiPis8L2I+NDlcclxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ2FsbGVyeSBmdWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2hvbWVwYWdlL2hvbWUxLWRhcmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nLzEucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2Pk1haW4gRGVtbzwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2hvbWVwYWdlL2hvbWUxLWxpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy8wMS5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+TWFpbiBEZW1vPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvaG9tZXBhZ2UvaG9tZTItZGFya1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvMi5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+Q3JlYXRpdmUgQWdlbmN5PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvaG9tZXBhZ2UvaG9tZTItbGlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nLzAyLnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5DcmVhdGl2ZSBBZ2VuY3k8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ2FsbGVyeSBmdWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL21vYmlsZS1hcHAvbW9iaWxlLWFwcC1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy9tb2JpbGUxLnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5Nb2JpbGUgYXBwPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInN0YSBuZXdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPk5ldyBEZW1vPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9tb2JpbGUtYXBwL21vYmlsZS1hcHAtbGlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nL21vYmlsZTIucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2Pk1vYmlsZSBhcHA8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3RhIG5ld1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+TmV3IERlbW88L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvaG9tZXBhZ2UvaG9tZTctZGFya1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvbjIucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PkZyZWVsYW5jZXI8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9ob21lcGFnZS9ob21lNy1saWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvbjAyLnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5GcmVlbGFuY2VyPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvaG9tZXBhZ2UvaG9tZTgtZGFya1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvbjMucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PkFyY2hpdGVjdHVyZTwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2hvbWVwYWdlL2hvbWU4LWxpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy9uMDMucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PkFyY2hpdGVjdHVyZTwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvaG9tZXBhZ2UvaG9tZTUtZGFya1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvMy5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+RGlnaXRhbCBBZ2VuY3k8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9ob21lcGFnZS9ob21lNS1saWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvMDMucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PkRpZ2l0YWwgQWdlbmN5PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdhbGxlcnkgZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9ob21lcGFnZS9ob21lNC1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy80LnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5CdXNpbmVzcyBPbmUgUGFnZTwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2hvbWVwYWdlL2hvbWU0LWxpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy8wNC5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+QnVzaW5lc3MgT25lIFBhZ2U8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2hvbWVwYWdlL2hvbWUzLWRhcmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nLzUucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PkNvcnBvcmF0ZSBCdXNpbmVzczwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2hvbWVwYWdlL2hvbWUzLWxpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy8wNS5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+Q29ycG9yYXRlIEJ1c2luZXNzPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdhbGxlcnkgZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9ob21lcGFnZS9ob21lNi1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy9uMS5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+TW9kZXJuIEFnZW5jeTwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2hvbWVwYWdlL2hvbWU2LWxpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy9uMDEucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2Pk1vZGVybiBBZ2VuY3k8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvYzMucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGg2PlJlc3RhdXJhbnQ8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzdGEgY29taW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPkNvbWluZyBTb29uPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nL2M0LnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxoNj5NdWx0aXB1cnBvc2U8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzdGEgY29taW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPkNvbWluZyBTb29uPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG5cclxuICAgICAgICA8c2VjdGlvbiBjbGFzc05hbWU9XCJtYXNvbmVyeSBzZWN0aW9uLXBhZGRpbmcgcG9zaXRpb24tcmVcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy04IGNvbC1tZC0xMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWMtaGVhZCB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwiY29sb3ItZm9udFwiPlNob3djYXNlczwvaDM+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyLWZsdWlkXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJnYWxsZXJ5IGZ1bGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvc2hvd2Nhc2Uvc2hvd2Nhc2UtZGFya1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvczEucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PkZ1bGwgU2NyZWVuPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvc2hvd2Nhc2Uvc2hvd2Nhc2UtbGlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nL3MwMS5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+RnVsbCBTY3JlZW48L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9zaG93Y2FzZTQvc2hvd2Nhc2U0LWRhcmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nL3MyLnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5TaG93Y2FzZSBDYXJvdXNlbDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL3Nob3djYXNlNC9zaG93Y2FzZTQtbGlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nL3MwMi5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+U2hvd2Nhc2UgQ2Fyb3VzZWw8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9zaG93Y2FzZTMvc2hvd2Nhc2UzLWRhcmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nL3MzLnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5TaG93Y2FzZSBDaXJjbGU8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9zaG93Y2FzZTMvc2hvd2Nhc2UzLWxpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy9zMDMucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PlNob3djYXNlIENpcmNsZTwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL3dvcmtzL3dvcmtzLWRhcmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nL3cxLnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5Xb3JrcyAzIGNvbHVtbjwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL3dvcmtzL3dvcmtzLWxpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy93MDEucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PldvcmtzIDMgY29sdW1uPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvd29ya3MyL3dvcmtzMi1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy93Mi5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+V29ya3MgRmlsdGVyaW5nPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvd29ya3MyL3dvcmtzMi1saWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvdzAyLnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5Xb3JrcyBGaWx0ZXJpbmc8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi93b3JrczMvd29ya3MzLWRhcmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nL3czLnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5Xb3JrcyBHYWxsZXJ5PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvd29ya3MzL3dvcmtzMy1saWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvdzAzLnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5Xb3JrcyBHYWxsZXJ5PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGluZSB0b3AgbGVmdFwiPjwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuXHJcbiAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwibWFzb25lcnkgc2VjdGlvbi1wYWRkaW5nIHBvc2l0aW9uLXJlXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOCBjb2wtbWQtMTBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2VjLWhlYWQgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cImNvbG9yLWZvbnRcIj5Jbm5lciBQYWdlczwvaDM+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyLWZsdWlkXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJnYWxsZXJ5IGZ1bGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvYmxvZy9ibG9nLWRhcmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cIi9kZW1vLWltZy9zdGFuZGVyZC1ibG9nLWRhcmsucG5nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cImltYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PlN0YW5kZXJkIEJsb2c8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9ibG9nL2Jsb2ctbGlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cIi9kZW1vLWltZy9zdGFuZGVyZC1ibG9nLWxpZ2h0LnBuZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJpbWFnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5TdGFuZGVyZCBCbG9nPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvYmxvZy1saXN0L2Jsb2ctbGlzdC1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy9ibG9nLWxpc3QtZGFyay5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+QmxvZyBMaXN0PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvYmxvZy1saXN0L2Jsb2ctbGlzdC1saWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPVwiL2RlbW8taW1nL2Jsb2ctbGlzdC1saWdodC5wbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiaW1hZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+QmxvZyBMaXN0PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvYmxvZy1ncmlkL2Jsb2ctZ3JpZC1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy9ibG9nLWdyaWQtZGFyay5wbmdcIiBhbHQ9XCJpbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+QmxvZyBHcmlkPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvYmxvZy1ncmlkL2Jsb2ctZ3JpZC1saWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPVwiL2RlbW8taW1nL2Jsb2ctZ3JpZC1saWdodC5wbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiaW1hZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+QmxvZyBHcmlkPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvYmxvZy1kZXRhaWxzL2Jsb2ctZGV0YWlscy1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCIvZGVtby1pbWcvYmxvZy1kZXRhaWxzLWRhcmsucG5nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cImltYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PkJsb2cgRGV0YWlsczwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2Jsb2ctZGV0YWlscy9ibG9nLWRldGFpbHMtbGlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cIi9kZW1vLWltZy9ibG9nLWRldGFpbHMtbGlnaHQucG5nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cImltYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PkJsb2cgRGV0YWlsczwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2Fib3V0L2Fib3V0LWRhcmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2RlbW8taW1nL2Fib3V0LnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5BYm91dCBVczwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02IGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1pbWcgd293IGZhZGVJblVwXCIgZGF0YS13b3ctZGVsYXk9XCIuNHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2Fib3V0L2Fib3V0LWxpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy9hYm91dDEucG5nXCIgYWx0PVwiaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PkFib3V0IFVzPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0taW1nIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWRlbGF5PVwiLjRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9jb250YWN0L2NvbnRhY3QtZGFya1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvZGVtby1pbWcvY29udGFjdC1kYXJrLnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5Db250YWN0PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTYgaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWltZyB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi40c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvY29udGFjdC9jb250YWN0LWxpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9kZW1vLWltZy9jb250YWN0LWxpZ2h0LnBuZ1wiIGFsdD1cImltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5Db250YWN0PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGluZSB0b3AgbGVmdFwiPjwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuXHJcbiAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwic2VydmljZXMgYm9yZHMgbGZpY29uIHNlY3Rpb24tcGFkZGluZyBwb3NpdGlvbi1yZVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTggY29sLW1kLTEwXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNlYy1oZWFkICB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8aDYgY2xhc3NOYW1lPVwid293IGZhZGVJblwiIGRhdGEtd293LWRlbGF5PVwiLjVzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgQmVzdCBGZWF0dXJlc1xyXG4gICAgICAgICAgICAgICAgICA8L2g2PlxyXG4gICAgICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwid293IGNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICBDcmVhdGl2ZSBBZ2VuY3ksIENvcnBvcmF0ZSBhbmQgUG9ydGZvbGlvIFRlbXBsYXRlXHJcbiAgICAgICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctNiB3b3cgZmFkZUluTGVmdFwiIGRhdGEtd293LWRlbGF5PVwiLjVzXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0tYm94XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvbiBwZS03cy1wYWludC1idWNrZXRcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+VUkvVVggRGVzaWduPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgICAgIFdlIHByb3ZpZGUgdGhlIGJlc3QgZGVzaWduIGJ5IGZvbGxvd2luZyB0aGUgbGF0ZXN0IHRyZW5kcy5cclxuICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctNiB3b3cgZmFkZUluTGVmdFwiIGRhdGEtd293LWRlbGF5PVwiLjdzXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0tYm94XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvbiBwZS03cy1waG9uZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoNj5FYXNpbHkgQ3VzdG9taXphYmxlPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICA8cD5CdWlsZCBhbmQgY3VzdG9taXplIHN0dW5uaW5nIHBhZ2VzIGluIG1pbnV0ZXMuPC9wPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTYgd293IGZhZGVJbkxlZnRcIiBkYXRhLXdvdy1kZWxheT1cIi45c1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWJveFwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24gcGUtN3MtZGlzcGxheTFcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+T25lIC8gTXVsdGkgUGFnZTwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+Q2hvb3NlIHRoZSBsYXlvdXQgc3R5bGUgdGhhdCBmaXRzIHlvdXIgbmVlZC48L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctNiB3b3cgZmFkZUluTGVmdFwiIGRhdGEtd293LWRlbGF5PVwiLjVzXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0tYm94XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvbiBwZS03cy1kaXNrZXR0ZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoNj4yNC83IFN1cHBvcnQ8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPldlIGNvbW1pdCB0byBrZWVwIHlvdXIgc2l0ZSB1cC10by1kYXRlLjwvcD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGluZSB0b3AgcmlnaHRcIj48L2Rpdj5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcblxyXG4gICAgICAgIDxzZWN0aW9uXHJcbiAgICAgICAgICBjbGFzc05hbWU9XCJjYWxsLWFjdGlvbiBzZWN0aW9uLXBhZGRpbmcgYmctaW1nXCJcclxuICAgICAgICAgIHN0eWxlPXt7IGJhY2tncm91bmRJbWFnZTogXCJ1cmwoL2ltZy9wYXRybi5zdmcpXCIgfX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLW1kLTggY29sLWxnLTlcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGVudCBzbS1tYjMwXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxTcGxpdD5cclxuICAgICAgICAgICAgICAgICAgICA8aDYgY2xhc3NOYW1lPVwid293IHdvcmRzIGNoYXJzIHNwbGl0dGluZ1wiIGRhdGEtc3BsaXR0aW5nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgUHVyY2hhc2UgVGhlIFZpZVxyXG4gICAgICAgICAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzTmFtZT1cIndvdyB3b3JkcyBjaGFycyBzcGxpdHRpbmdcIiBkYXRhLXNwbGl0dGluZz5cclxuICAgICAgICAgICAgICAgICAgICAgIGFuZCBNYWtlIDxiciAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGIgY2xhc3NOYW1lPVwiYmFjay1jb2xvclwiPllvdXIgTGlmZSBFYXNpZXI8L2I+LlxyXG4gICAgICAgICAgICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICAgICAgICAgIDwvU3BsaXQ+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbWQtNCBjb2wtbGctMyB2YWxpZ25cIj5cclxuICAgICAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICAgIGhyZWY9XCIjMFwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJ1dG4gYm9yZCBjdXJ2ZSB3b3cgZmFkZUluVXBcIlxyXG4gICAgICAgICAgICAgICAgICBkYXRhLXdvdy1kZWxheT1cIi41c1wiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuPlB1cmNoYXNlIE5vdzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9EYXJrVGhlbWU+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IERlbW9zO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJwYXJ0aWNsZXNDb25maWciLCJQYXJ0aWNsZXMiLCJMaW5rIiwiU3BsaXQiLCJEYXJrVGhlbWUiLCJpbml0SXNvdG9wZSIsIkRlbW9zIiwidXNlU3RhdGUiLCJwYWdlTG9hZGVkIiwic2V0UGFnZUxvYWRlZCIsInVzZUVmZmVjdCIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJzZXRUaW1lb3V0IiwiYmFja2dyb3VuZEltYWdlIiwibWluSGVpZ2h0IiwiekluZGV4IiwiY29sb3IiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/pages/demos/demos.jsx\n"); + +/***/ }), + +/***/ "./src/pages/index.jsx": +/*!*****************************!*\ + !*** ./src/pages/index.jsx ***! + \*****************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _demos_demos__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./demos/demos */ \"./src/pages/demos/demos.jsx\");\n/* harmony import */ var _components_Navbar_navbar__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../components/Navbar/navbar */ \"./src/components/Navbar/navbar.jsx\");\n/* harmony import */ var _components_Full_testimonials_full_testimonials__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../components/Full-testimonials/full-testimonials */ \"./src/components/Full-testimonials/full-testimonials.jsx\");\n/* harmony import */ var _components_Call_to_action_call_to_action__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../components/Call-to-action/call-to-action */ \"./src/components/Call-to-action/call-to-action.jsx\");\n/* harmony import */ var _components_Footer_footer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../components/Footer/footer */ \"./src/components/Footer/footer.jsx\");\n/* harmony import */ var _components_Team_team__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../components/Team/team */ \"./src/components/Team/team.jsx\");\n/* harmony import */ var _layouts_Light__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../layouts/Light */ \"./src/layouts/Light.jsx\");\n/* harmony import */ var _components_Works3_works3__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../components/Works3/works3 */ \"./src/components/Works3/works3.jsx\");\n/* harmony import */ var _components_blogs_Blogs4_blogs4__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../components/blogs/Blogs4/blogs4 */ \"./src/components/blogs/Blogs4/blogs4.jsx\");\n/* harmony import */ var _components_Intro4_intro4__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../components/Intro4/intro4 */ \"./src/components/Intro4/intro4.jsx\");\n/* harmony import */ var _components_About_us3_about_us3__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../components/About-us3/about-us3 */ \"./src/components/About-us3/about-us3.jsx\");\n/* harmony import */ var _components_Services3_services3__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../components/Services3/services3 */ \"./src/components/Services3/services3.jsx\");\n/* harmony import */ var _components_Minimal_Area2_minimal_area2__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../components/Minimal-Area2/minimal-area2 */ \"./src/components/Minimal-Area2/minimal-area2.jsx\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_14__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\pages\\\\index.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar Home = function Home() {\n _s();\n\n var navbarRef = react__WEBPACK_IMPORTED_MODULE_0___default().useRef(null);\n var logoRef = react__WEBPACK_IMPORTED_MODULE_0___default().useRef(null);\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n var navbar = navbarRef.current;\n\n if (window.pageYOffset > 300) {\n navbar.classList.add(\"nav-scroll\");\n } else {\n navbar.classList.remove(\"nav-scroll\");\n }\n\n window.addEventListener(\"scroll\", function () {\n if (window.pageYOffset > 300) {\n navbar.classList.add(\"nav-scroll\");\n } else {\n navbar.classList.remove(\"nav-scroll\");\n }\n });\n }, [navbarRef]);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_14__.jsxDEV)(_layouts_Light__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_14__.jsxDEV)(_components_Navbar_navbar__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n nr: navbarRef,\n lr: logoRef,\n theme: \"themeL\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_14__.jsxDEV)(_components_Intro4_intro4__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n blackStar: true\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_14__.jsxDEV)(_components_About_us3_about_us3__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_14__.jsxDEV)(_components_Works3_works3__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_14__.jsxDEV)(_components_Services3_services3__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_14__.jsxDEV)(_components_Minimal_Area2_minimal_area2__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_14__.jsxDEV)(_components_Team_team__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 44,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_14__.jsxDEV)(_components_blogs_Blogs4_blogs4__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_14__.jsxDEV)(_components_Call_to_action_call_to_action__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_14__.jsxDEV)(_components_Footer_footer__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 5\n }, _this);\n};\n\n_s(Home, \"NJv/rvX5fPwWhnPtkwq0tuwt7xI=\");\n\n_c = Home;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Home);\n\nvar _c;\n\n$RefreshReg$(_c, \"Home\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvcGFnZXMvaW5kZXguanN4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsSUFBTWMsSUFBSSxHQUFHLFNBQVBBLElBQU8sR0FBTTtBQUFBOztBQUNqQixNQUFNQyxTQUFTLEdBQUdmLG1EQUFBLENBQWEsSUFBYixDQUFsQjtBQUNBLE1BQU1pQixPQUFPLEdBQUdqQixtREFBQSxDQUFhLElBQWIsQ0FBaEI7QUFFQUEsRUFBQUEsc0RBQUEsQ0FBZ0IsWUFBTTtBQUNwQixRQUFJbUIsTUFBTSxHQUFHSixTQUFTLENBQUNLLE9BQXZCOztBQUNBLFFBQUlDLE1BQU0sQ0FBQ0MsV0FBUCxHQUFxQixHQUF6QixFQUE4QjtBQUM1QkgsTUFBQUEsTUFBTSxDQUFDSSxTQUFQLENBQWlCQyxHQUFqQixDQUFxQixZQUFyQjtBQUNELEtBRkQsTUFFTztBQUNMTCxNQUFBQSxNQUFNLENBQUNJLFNBQVAsQ0FBaUJFLE1BQWpCLENBQXdCLFlBQXhCO0FBQ0Q7O0FBQ0RKLElBQUFBLE1BQU0sQ0FBQ0ssZ0JBQVAsQ0FBd0IsUUFBeEIsRUFBa0MsWUFBTTtBQUN0QyxVQUFJTCxNQUFNLENBQUNDLFdBQVAsR0FBcUIsR0FBekIsRUFBOEI7QUFDNUJILFFBQUFBLE1BQU0sQ0FBQ0ksU0FBUCxDQUFpQkMsR0FBakIsQ0FBcUIsWUFBckI7QUFDRCxPQUZELE1BRU87QUFDTEwsUUFBQUEsTUFBTSxDQUFDSSxTQUFQLENBQWlCRSxNQUFqQixDQUF3QixZQUF4QjtBQUNEO0FBQ0YsS0FORDtBQU9ELEdBZEQsRUFjRyxDQUFDVixTQUFELENBZEg7QUFlQSxzQkFDRSwrREFBQyxzREFBRDtBQUFBLDRCQUNFLCtEQUFDLGlFQUFEO0FBQVEsUUFBRSxFQUFFQSxTQUFaO0FBQXVCLFFBQUUsRUFBRUUsT0FBM0I7QUFBb0MsV0FBSyxFQUFDO0FBQTFDO0FBQUE7QUFBQTtBQUFBO0FBQUEsYUFERixlQUVFLCtEQUFDLGtFQUFEO0FBQVEsZUFBUztBQUFqQjtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBRkYsZUFHRSwrREFBQyx3RUFBRDtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBSEYsZUFJRSwrREFBQyxpRUFBRDtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBSkYsZUFLRSwrREFBQyx3RUFBRDtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBTEYsZUFNRSwrREFBQyxnRkFBRDtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBTkYsZUFRRSwrREFBQyw2REFBRDtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBUkYsZUFTRSwrREFBQyx1RUFBRDtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBVEYsZUFVRSwrREFBQyxpRkFBRDtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBVkYsZUFXRSwrREFBQyxpRUFBRDtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBWEY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBREY7QUFlRCxDQWxDRDs7R0FBTUg7O0tBQUFBO0FBb0NOLCtEQUFlQSxJQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9wYWdlcy9pbmRleC5qc3g/ZDM1YyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBEZW1vcyBmcm9tIFwiLi9kZW1vcy9kZW1vc1wiO1xyXG5pbXBvcnQgTmF2YmFyIGZyb20gXCIuLi9jb21wb25lbnRzL05hdmJhci9uYXZiYXJcIjtcclxuaW1wb3J0IEZ1bGxUZXN0aW1vbmlhbHMgZnJvbSBcIi4uL2NvbXBvbmVudHMvRnVsbC10ZXN0aW1vbmlhbHMvZnVsbC10ZXN0aW1vbmlhbHNcIjtcclxuaW1wb3J0IENhbGxUb0FjdGlvbiBmcm9tIFwiLi4vY29tcG9uZW50cy9DYWxsLXRvLWFjdGlvbi9jYWxsLXRvLWFjdGlvblwiO1xyXG5pbXBvcnQgRm9vdGVyIGZyb20gXCIuLi9jb21wb25lbnRzL0Zvb3Rlci9mb290ZXJcIjtcclxuaW1wb3J0IFRlYW0gZnJvbSBcIi4uL2NvbXBvbmVudHMvVGVhbS90ZWFtXCI7XHJcbmltcG9ydCBMaWdodFRoZW1lIGZyb20gXCIuLi9sYXlvdXRzL0xpZ2h0XCI7XHJcbmltcG9ydCBXb3JrczMgZnJvbSBcIi4uL2NvbXBvbmVudHMvV29ya3MzL3dvcmtzM1wiO1xyXG5pbXBvcnQgQmxvZ3M0IGZyb20gXCIuLi9jb21wb25lbnRzL2Jsb2dzL0Jsb2dzNC9ibG9nczRcIjtcclxuaW1wb3J0IEludHJvNCBmcm9tIFwiLi4vY29tcG9uZW50cy9JbnRybzQvaW50cm80XCI7XHJcbmltcG9ydCBBYm91dFVzMyBmcm9tIFwiLi4vY29tcG9uZW50cy9BYm91dC11czMvYWJvdXQtdXMzXCI7XHJcbmltcG9ydCBTZXJ2aWNlczMgZnJvbSBcIi4uL2NvbXBvbmVudHMvU2VydmljZXMzL3NlcnZpY2VzM1wiO1xyXG5pbXBvcnQgTWluaW1hbEFyZWEyIGZyb20gXCIuLi9jb21wb25lbnRzL01pbmltYWwtQXJlYTIvbWluaW1hbC1hcmVhMlwiO1xyXG5cclxuY29uc3QgSG9tZSA9ICgpID0+IHtcclxuICBjb25zdCBuYXZiYXJSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XHJcbiAgY29uc3QgbG9nb1JlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcclxuXHJcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgIHZhciBuYXZiYXIgPSBuYXZiYXJSZWYuY3VycmVudDtcclxuICAgIGlmICh3aW5kb3cucGFnZVlPZmZzZXQgPiAzMDApIHtcclxuICAgICAgbmF2YmFyLmNsYXNzTGlzdC5hZGQoXCJuYXYtc2Nyb2xsXCIpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbmF2YmFyLmNsYXNzTGlzdC5yZW1vdmUoXCJuYXYtc2Nyb2xsXCIpO1xyXG4gICAgfVxyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgKCkgPT4ge1xyXG4gICAgICBpZiAod2luZG93LnBhZ2VZT2Zmc2V0ID4gMzAwKSB7XHJcbiAgICAgICAgbmF2YmFyLmNsYXNzTGlzdC5hZGQoXCJuYXYtc2Nyb2xsXCIpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG5hdmJhci5jbGFzc0xpc3QucmVtb3ZlKFwibmF2LXNjcm9sbFwiKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfSwgW25hdmJhclJlZl0pO1xyXG4gIHJldHVybiAoXHJcbiAgICA8TGlnaHRUaGVtZT5cclxuICAgICAgPE5hdmJhciBucj17bmF2YmFyUmVmfSBscj17bG9nb1JlZn0gdGhlbWU9XCJ0aGVtZUxcIiAvPlxyXG4gICAgICA8SW50cm80IGJsYWNrU3RhciAvPlxyXG4gICAgICA8QWJvdXRVczMgLz5cclxuICAgICAgPFdvcmtzMyAvPlxyXG4gICAgICA8U2VydmljZXMzIC8+XHJcbiAgICAgIDxNaW5pbWFsQXJlYTIgLz5cclxuICAgICAgey8qIDxGdWxsVGVzdGltb25pYWxzIGNsYXNzVGV4dD1cInBiLTBcIiAvPiAqL31cclxuICAgICAgPFRlYW0gLz5cclxuICAgICAgPEJsb2dzNCAvPlxyXG4gICAgICA8Q2FsbFRvQWN0aW9uIC8+XHJcbiAgICAgIDxGb290ZXIgLz5cclxuICAgIDwvTGlnaHRUaGVtZT5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgSG9tZTtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiRGVtb3MiLCJOYXZiYXIiLCJGdWxsVGVzdGltb25pYWxzIiwiQ2FsbFRvQWN0aW9uIiwiRm9vdGVyIiwiVGVhbSIsIkxpZ2h0VGhlbWUiLCJXb3JrczMiLCJCbG9nczQiLCJJbnRybzQiLCJBYm91dFVzMyIsIlNlcnZpY2VzMyIsIk1pbmltYWxBcmVhMiIsIkhvbWUiLCJuYXZiYXJSZWYiLCJ1c2VSZWYiLCJsb2dvUmVmIiwidXNlRWZmZWN0IiwibmF2YmFyIiwiY3VycmVudCIsIndpbmRvdyIsInBhZ2VZT2Zmc2V0IiwiY2xhc3NMaXN0IiwiYWRkIiwicmVtb3ZlIiwiYWRkRXZlbnRMaXN0ZW5lciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/pages/index.jsx\n"); + +/***/ }), + +/***/ "./node_modules/classnames/index.js": +/*!******************************************!*\ + !*** ./node_modules/classnames/index.js ***! + \******************************************/ +/***/ (function(module, exports) { + +eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif ( true && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (true) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {\n\t\t\treturn classNames;\n\t\t}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else {}\n}());\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvY2xhc3NuYW1lcy9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSxnQkFBZ0I7O0FBRWhCO0FBQ0E7O0FBRUEsa0JBQWtCLHNCQUFzQjtBQUN4QztBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSxLQUFLLEtBQTZCO0FBQ2xDO0FBQ0E7QUFDQSxHQUFHLFNBQVMsSUFBNEU7QUFDeEY7QUFDQSxFQUFFLGlDQUFxQixFQUFFLG1DQUFFO0FBQzNCO0FBQ0EsR0FBRztBQUFBLGtHQUFDO0FBQ0osR0FBRyxLQUFLLEVBRU47QUFDRixDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9jbGFzc25hbWVzL2luZGV4LmpzPzdkNTAiXSwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gIENvcHlyaWdodCAoYykgMjAxNyBKZWQgV2F0c29uLlxuICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UgKE1JVCksIHNlZVxuICBodHRwOi8vamVkd2F0c29uLmdpdGh1Yi5pby9jbGFzc25hbWVzXG4qL1xuLyogZ2xvYmFsIGRlZmluZSAqL1xuXG4oZnVuY3Rpb24gKCkge1xuXHQndXNlIHN0cmljdCc7XG5cblx0dmFyIGhhc093biA9IHt9Lmhhc093blByb3BlcnR5O1xuXG5cdGZ1bmN0aW9uIGNsYXNzTmFtZXMgKCkge1xuXHRcdHZhciBjbGFzc2VzID0gW107XG5cblx0XHRmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuXHRcdFx0dmFyIGFyZyA9IGFyZ3VtZW50c1tpXTtcblx0XHRcdGlmICghYXJnKSBjb250aW51ZTtcblxuXHRcdFx0dmFyIGFyZ1R5cGUgPSB0eXBlb2YgYXJnO1xuXG5cdFx0XHRpZiAoYXJnVHlwZSA9PT0gJ3N0cmluZycgfHwgYXJnVHlwZSA9PT0gJ251bWJlcicpIHtcblx0XHRcdFx0Y2xhc3Nlcy5wdXNoKGFyZyk7XG5cdFx0XHR9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoYXJnKSAmJiBhcmcubGVuZ3RoKSB7XG5cdFx0XHRcdHZhciBpbm5lciA9IGNsYXNzTmFtZXMuYXBwbHkobnVsbCwgYXJnKTtcblx0XHRcdFx0aWYgKGlubmVyKSB7XG5cdFx0XHRcdFx0Y2xhc3Nlcy5wdXNoKGlubmVyKTtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIGlmIChhcmdUeXBlID09PSAnb2JqZWN0Jykge1xuXHRcdFx0XHRmb3IgKHZhciBrZXkgaW4gYXJnKSB7XG5cdFx0XHRcdFx0aWYgKGhhc093bi5jYWxsKGFyZywga2V5KSAmJiBhcmdba2V5XSkge1xuXHRcdFx0XHRcdFx0Y2xhc3Nlcy5wdXNoKGtleSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGNsYXNzZXMuam9pbignICcpO1xuXHR9XG5cblx0aWYgKHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnICYmIG1vZHVsZS5leHBvcnRzKSB7XG5cdFx0Y2xhc3NOYW1lcy5kZWZhdWx0ID0gY2xhc3NOYW1lcztcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGNsYXNzTmFtZXM7XG5cdH0gZWxzZSBpZiAodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgZGVmaW5lLmFtZCA9PT0gJ29iamVjdCcgJiYgZGVmaW5lLmFtZCkge1xuXHRcdC8vIHJlZ2lzdGVyIGFzICdjbGFzc25hbWVzJywgY29uc2lzdGVudCB3aXRoIG5wbSBwYWNrYWdlIG5hbWVcblx0XHRkZWZpbmUoJ2NsYXNzbmFtZXMnLCBbXSwgZnVuY3Rpb24gKCkge1xuXHRcdFx0cmV0dXJuIGNsYXNzTmFtZXM7XG5cdFx0fSk7XG5cdH0gZWxzZSB7XG5cdFx0d2luZG93LmNsYXNzTmFtZXMgPSBjbGFzc05hbWVzO1xuXHR9XG59KCkpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/classnames/index.js\n"); + +/***/ }), + +/***/ "./node_modules/enquire.js/src/MediaQuery.js": +/*!***************************************************!*\ + !*** ./node_modules/enquire.js/src/MediaQuery.js ***! + \***************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var QueryHandler = __webpack_require__(/*! ./QueryHandler */ \"./node_modules/enquire.js/src/QueryHandler.js\");\nvar each = (__webpack_require__(/*! ./Util */ \"./node_modules/enquire.js/src/Util.js\").each);\n\n/**\n * Represents a single media query, manages it's state and registered handlers for this query\n *\n * @constructor\n * @param {string} query the media query string\n * @param {boolean} [isUnconditional=false] whether the media query should run regardless of whether the conditions are met. Primarily for helping older browsers deal with mobile-first design\n */\nfunction MediaQuery(query, isUnconditional) {\n this.query = query;\n this.isUnconditional = isUnconditional;\n this.handlers = [];\n this.mql = window.matchMedia(query);\n\n var self = this;\n this.listener = function(mql) {\n // Chrome passes an MediaQueryListEvent object, while other browsers pass MediaQueryList directly\n self.mql = mql.currentTarget || mql;\n self.assess();\n };\n this.mql.addListener(this.listener);\n}\n\nMediaQuery.prototype = {\n\n constuctor : MediaQuery,\n\n /**\n * add a handler for this query, triggering if already active\n *\n * @param {object} handler\n * @param {function} handler.match callback for when query is activated\n * @param {function} [handler.unmatch] callback for when query is deactivated\n * @param {function} [handler.setup] callback for immediate execution when a query handler is registered\n * @param {boolean} [handler.deferSetup=false] should the setup callback be deferred until the first time the handler is matched?\n */\n addHandler : function(handler) {\n var qh = new QueryHandler(handler);\n this.handlers.push(qh);\n\n this.matches() && qh.on();\n },\n\n /**\n * removes the given handler from the collection, and calls it's destroy methods\n *\n * @param {object || function} handler the handler to remove\n */\n removeHandler : function(handler) {\n var handlers = this.handlers;\n each(handlers, function(h, i) {\n if(h.equals(handler)) {\n h.destroy();\n return !handlers.splice(i,1); //remove from array and exit each early\n }\n });\n },\n\n /**\n * Determine whether the media query should be considered a match\n *\n * @return {Boolean} true if media query can be considered a match, false otherwise\n */\n matches : function() {\n return this.mql.matches || this.isUnconditional;\n },\n\n /**\n * Clears all handlers and unbinds events\n */\n clear : function() {\n each(this.handlers, function(handler) {\n handler.destroy();\n });\n this.mql.removeListener(this.listener);\n this.handlers.length = 0; //clear array\n },\n\n /*\n * Assesses the query, turning on all handlers if it matches, turning them off if it doesn't match\n */\n assess : function() {\n var action = this.matches() ? 'on' : 'off';\n\n each(this.handlers, function(handler) {\n handler[action]();\n });\n }\n};\n\nmodule.exports = MediaQuery;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvZW5xdWlyZS5qcy9zcmMvTWVkaWFRdWVyeS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQSxtQkFBbUIsbUJBQU8sQ0FBQyxxRUFBZ0I7QUFDM0MsV0FBVyxpRkFBc0I7O0FBRWpDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsU0FBUztBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLFFBQVE7QUFDdkIsZUFBZSxVQUFVO0FBQ3pCLGVBQWUsVUFBVTtBQUN6QixlQUFlLFVBQVU7QUFDekIsZUFBZSxTQUFTO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQSxlQUFlLG9CQUFvQjtBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBOEM7QUFDOUM7QUFDQSxTQUFTO0FBQ1QsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsU0FBUztBQUN6QjtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBLGtDQUFrQztBQUNsQyxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9lbnF1aXJlLmpzL3NyYy9NZWRpYVF1ZXJ5LmpzPzM3NzQiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIFF1ZXJ5SGFuZGxlciA9IHJlcXVpcmUoJy4vUXVlcnlIYW5kbGVyJyk7XG52YXIgZWFjaCA9IHJlcXVpcmUoJy4vVXRpbCcpLmVhY2g7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHNpbmdsZSBtZWRpYSBxdWVyeSwgbWFuYWdlcyBpdCdzIHN0YXRlIGFuZCByZWdpc3RlcmVkIGhhbmRsZXJzIGZvciB0aGlzIHF1ZXJ5XG4gKlxuICogQGNvbnN0cnVjdG9yXG4gKiBAcGFyYW0ge3N0cmluZ30gcXVlcnkgdGhlIG1lZGlhIHF1ZXJ5IHN0cmluZ1xuICogQHBhcmFtIHtib29sZWFufSBbaXNVbmNvbmRpdGlvbmFsPWZhbHNlXSB3aGV0aGVyIHRoZSBtZWRpYSBxdWVyeSBzaG91bGQgcnVuIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUgY29uZGl0aW9ucyBhcmUgbWV0LiBQcmltYXJpbHkgZm9yIGhlbHBpbmcgb2xkZXIgYnJvd3NlcnMgZGVhbCB3aXRoIG1vYmlsZS1maXJzdCBkZXNpZ25cbiAqL1xuZnVuY3Rpb24gTWVkaWFRdWVyeShxdWVyeSwgaXNVbmNvbmRpdGlvbmFsKSB7XG4gICAgdGhpcy5xdWVyeSA9IHF1ZXJ5O1xuICAgIHRoaXMuaXNVbmNvbmRpdGlvbmFsID0gaXNVbmNvbmRpdGlvbmFsO1xuICAgIHRoaXMuaGFuZGxlcnMgPSBbXTtcbiAgICB0aGlzLm1xbCA9IHdpbmRvdy5tYXRjaE1lZGlhKHF1ZXJ5KTtcblxuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB0aGlzLmxpc3RlbmVyID0gZnVuY3Rpb24obXFsKSB7XG4gICAgICAgIC8vIENocm9tZSBwYXNzZXMgYW4gTWVkaWFRdWVyeUxpc3RFdmVudCBvYmplY3QsIHdoaWxlIG90aGVyIGJyb3dzZXJzIHBhc3MgTWVkaWFRdWVyeUxpc3QgZGlyZWN0bHlcbiAgICAgICAgc2VsZi5tcWwgPSBtcWwuY3VycmVudFRhcmdldCB8fCBtcWw7XG4gICAgICAgIHNlbGYuYXNzZXNzKCk7XG4gICAgfTtcbiAgICB0aGlzLm1xbC5hZGRMaXN0ZW5lcih0aGlzLmxpc3RlbmVyKTtcbn1cblxuTWVkaWFRdWVyeS5wcm90b3R5cGUgPSB7XG5cbiAgICBjb25zdHVjdG9yIDogTWVkaWFRdWVyeSxcblxuICAgIC8qKlxuICAgICAqIGFkZCBhIGhhbmRsZXIgZm9yIHRoaXMgcXVlcnksIHRyaWdnZXJpbmcgaWYgYWxyZWFkeSBhY3RpdmVcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBoYW5kbGVyXG4gICAgICogQHBhcmFtIHtmdW5jdGlvbn0gaGFuZGxlci5tYXRjaCBjYWxsYmFjayBmb3Igd2hlbiBxdWVyeSBpcyBhY3RpdmF0ZWRcbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBbaGFuZGxlci51bm1hdGNoXSBjYWxsYmFjayBmb3Igd2hlbiBxdWVyeSBpcyBkZWFjdGl2YXRlZFxuICAgICAqIEBwYXJhbSB7ZnVuY3Rpb259IFtoYW5kbGVyLnNldHVwXSBjYWxsYmFjayBmb3IgaW1tZWRpYXRlIGV4ZWN1dGlvbiB3aGVuIGEgcXVlcnkgaGFuZGxlciBpcyByZWdpc3RlcmVkXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbaGFuZGxlci5kZWZlclNldHVwPWZhbHNlXSBzaG91bGQgdGhlIHNldHVwIGNhbGxiYWNrIGJlIGRlZmVycmVkIHVudGlsIHRoZSBmaXJzdCB0aW1lIHRoZSBoYW5kbGVyIGlzIG1hdGNoZWQ/XG4gICAgICovXG4gICAgYWRkSGFuZGxlciA6IGZ1bmN0aW9uKGhhbmRsZXIpIHtcbiAgICAgICAgdmFyIHFoID0gbmV3IFF1ZXJ5SGFuZGxlcihoYW5kbGVyKTtcbiAgICAgICAgdGhpcy5oYW5kbGVycy5wdXNoKHFoKTtcblxuICAgICAgICB0aGlzLm1hdGNoZXMoKSAmJiBxaC5vbigpO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiByZW1vdmVzIHRoZSBnaXZlbiBoYW5kbGVyIGZyb20gdGhlIGNvbGxlY3Rpb24sIGFuZCBjYWxscyBpdCdzIGRlc3Ryb3kgbWV0aG9kc1xuICAgICAqXG4gICAgICogQHBhcmFtIHtvYmplY3QgfHwgZnVuY3Rpb259IGhhbmRsZXIgdGhlIGhhbmRsZXIgdG8gcmVtb3ZlXG4gICAgICovXG4gICAgcmVtb3ZlSGFuZGxlciA6IGZ1bmN0aW9uKGhhbmRsZXIpIHtcbiAgICAgICAgdmFyIGhhbmRsZXJzID0gdGhpcy5oYW5kbGVycztcbiAgICAgICAgZWFjaChoYW5kbGVycywgZnVuY3Rpb24oaCwgaSkge1xuICAgICAgICAgICAgaWYoaC5lcXVhbHMoaGFuZGxlcikpIHtcbiAgICAgICAgICAgICAgICBoLmRlc3Ryb3koKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gIWhhbmRsZXJzLnNwbGljZShpLDEpOyAvL3JlbW92ZSBmcm9tIGFycmF5IGFuZCBleGl0IGVhY2ggZWFybHlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIERldGVybWluZSB3aGV0aGVyIHRoZSBtZWRpYSBxdWVyeSBzaG91bGQgYmUgY29uc2lkZXJlZCBhIG1hdGNoXG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHtCb29sZWFufSB0cnVlIGlmIG1lZGlhIHF1ZXJ5IGNhbiBiZSBjb25zaWRlcmVkIGEgbWF0Y2gsIGZhbHNlIG90aGVyd2lzZVxuICAgICAqL1xuICAgIG1hdGNoZXMgOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubXFsLm1hdGNoZXMgfHwgdGhpcy5pc1VuY29uZGl0aW9uYWw7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIENsZWFycyBhbGwgaGFuZGxlcnMgYW5kIHVuYmluZHMgZXZlbnRzXG4gICAgICovXG4gICAgY2xlYXIgOiBmdW5jdGlvbigpIHtcbiAgICAgICAgZWFjaCh0aGlzLmhhbmRsZXJzLCBmdW5jdGlvbihoYW5kbGVyKSB7XG4gICAgICAgICAgICBoYW5kbGVyLmRlc3Ryb3koKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubXFsLnJlbW92ZUxpc3RlbmVyKHRoaXMubGlzdGVuZXIpO1xuICAgICAgICB0aGlzLmhhbmRsZXJzLmxlbmd0aCA9IDA7IC8vY2xlYXIgYXJyYXlcbiAgICB9LFxuXG4gICAgLypcbiAgICAgICAgKiBBc3Nlc3NlcyB0aGUgcXVlcnksIHR1cm5pbmcgb24gYWxsIGhhbmRsZXJzIGlmIGl0IG1hdGNoZXMsIHR1cm5pbmcgdGhlbSBvZmYgaWYgaXQgZG9lc24ndCBtYXRjaFxuICAgICAgICAqL1xuICAgIGFzc2VzcyA6IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgYWN0aW9uID0gdGhpcy5tYXRjaGVzKCkgPyAnb24nIDogJ29mZic7XG5cbiAgICAgICAgZWFjaCh0aGlzLmhhbmRsZXJzLCBmdW5jdGlvbihoYW5kbGVyKSB7XG4gICAgICAgICAgICBoYW5kbGVyW2FjdGlvbl0oKTtcbiAgICAgICAgfSk7XG4gICAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBNZWRpYVF1ZXJ5O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/enquire.js/src/MediaQuery.js\n"); + +/***/ }), + +/***/ "./node_modules/enquire.js/src/MediaQueryDispatch.js": +/*!***********************************************************!*\ + !*** ./node_modules/enquire.js/src/MediaQueryDispatch.js ***! + \***********************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var MediaQuery = __webpack_require__(/*! ./MediaQuery */ \"./node_modules/enquire.js/src/MediaQuery.js\");\nvar Util = __webpack_require__(/*! ./Util */ \"./node_modules/enquire.js/src/Util.js\");\nvar each = Util.each;\nvar isFunction = Util.isFunction;\nvar isArray = Util.isArray;\n\n/**\n * Allows for registration of query handlers.\n * Manages the query handler's state and is responsible for wiring up browser events\n *\n * @constructor\n */\nfunction MediaQueryDispatch () {\n if(!window.matchMedia) {\n throw new Error('matchMedia not present, legacy browsers require a polyfill');\n }\n\n this.queries = {};\n this.browserIsIncapable = !window.matchMedia('only all').matches;\n}\n\nMediaQueryDispatch.prototype = {\n\n constructor : MediaQueryDispatch,\n\n /**\n * Registers a handler for the given media query\n *\n * @param {string} q the media query\n * @param {object || Array || Function} options either a single query handler object, a function, or an array of query handlers\n * @param {function} options.match fired when query matched\n * @param {function} [options.unmatch] fired when a query is no longer matched\n * @param {function} [options.setup] fired when handler first triggered\n * @param {boolean} [options.deferSetup=false] whether setup should be run immediately or deferred until query is first matched\n * @param {boolean} [shouldDegrade=false] whether this particular media query should always run on incapable browsers\n */\n register : function(q, options, shouldDegrade) {\n var queries = this.queries,\n isUnconditional = shouldDegrade && this.browserIsIncapable;\n\n if(!queries[q]) {\n queries[q] = new MediaQuery(q, isUnconditional);\n }\n\n //normalise to object in an array\n if(isFunction(options)) {\n options = { match : options };\n }\n if(!isArray(options)) {\n options = [options];\n }\n each(options, function(handler) {\n if (isFunction(handler)) {\n handler = { match : handler };\n }\n queries[q].addHandler(handler);\n });\n\n return this;\n },\n\n /**\n * unregisters a query and all it's handlers, or a specific handler for a query\n *\n * @param {string} q the media query to target\n * @param {object || function} [handler] specific handler to unregister\n */\n unregister : function(q, handler) {\n var query = this.queries[q];\n\n if(query) {\n if(handler) {\n query.removeHandler(handler);\n }\n else {\n query.clear();\n delete this.queries[q];\n }\n }\n\n return this;\n }\n};\n\nmodule.exports = MediaQueryDispatch;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvZW5xdWlyZS5qcy9zcmMvTWVkaWFRdWVyeURpc3BhdGNoLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBLGlCQUFpQixtQkFBTyxDQUFDLGlFQUFjO0FBQ3ZDLFdBQVcsbUJBQU8sQ0FBQyxxREFBUTtBQUMzQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsUUFBUTtBQUN2QixlQUFlLDZCQUE2QjtBQUM1QyxlQUFlLFVBQVU7QUFDekIsZUFBZSxVQUFVO0FBQ3pCLGVBQWUsVUFBVTtBQUN6QixlQUFlLFNBQVM7QUFDeEIsZUFBZSxTQUFTO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0Esd0JBQXdCO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QjtBQUM1QjtBQUNBO0FBQ0EsU0FBUzs7QUFFVDtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0EsZUFBZSxRQUFRO0FBQ3ZCLGVBQWUsb0JBQW9CO0FBQ25DO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9lbnF1aXJlLmpzL3NyYy9NZWRpYVF1ZXJ5RGlzcGF0Y2guanM/NDE5OSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgTWVkaWFRdWVyeSA9IHJlcXVpcmUoJy4vTWVkaWFRdWVyeScpO1xudmFyIFV0aWwgPSByZXF1aXJlKCcuL1V0aWwnKTtcbnZhciBlYWNoID0gVXRpbC5lYWNoO1xudmFyIGlzRnVuY3Rpb24gPSBVdGlsLmlzRnVuY3Rpb247XG52YXIgaXNBcnJheSA9IFV0aWwuaXNBcnJheTtcblxuLyoqXG4gKiBBbGxvd3MgZm9yIHJlZ2lzdHJhdGlvbiBvZiBxdWVyeSBoYW5kbGVycy5cbiAqIE1hbmFnZXMgdGhlIHF1ZXJ5IGhhbmRsZXIncyBzdGF0ZSBhbmQgaXMgcmVzcG9uc2libGUgZm9yIHdpcmluZyB1cCBicm93c2VyIGV2ZW50c1xuICpcbiAqIEBjb25zdHJ1Y3RvclxuICovXG5mdW5jdGlvbiBNZWRpYVF1ZXJ5RGlzcGF0Y2ggKCkge1xuICAgIGlmKCF3aW5kb3cubWF0Y2hNZWRpYSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ21hdGNoTWVkaWEgbm90IHByZXNlbnQsIGxlZ2FjeSBicm93c2VycyByZXF1aXJlIGEgcG9seWZpbGwnKTtcbiAgICB9XG5cbiAgICB0aGlzLnF1ZXJpZXMgPSB7fTtcbiAgICB0aGlzLmJyb3dzZXJJc0luY2FwYWJsZSA9ICF3aW5kb3cubWF0Y2hNZWRpYSgnb25seSBhbGwnKS5tYXRjaGVzO1xufVxuXG5NZWRpYVF1ZXJ5RGlzcGF0Y2gucHJvdG90eXBlID0ge1xuXG4gICAgY29uc3RydWN0b3IgOiBNZWRpYVF1ZXJ5RGlzcGF0Y2gsXG5cbiAgICAvKipcbiAgICAgKiBSZWdpc3RlcnMgYSBoYW5kbGVyIGZvciB0aGUgZ2l2ZW4gbWVkaWEgcXVlcnlcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBxIHRoZSBtZWRpYSBxdWVyeVxuICAgICAqIEBwYXJhbSB7b2JqZWN0IHx8IEFycmF5IHx8IEZ1bmN0aW9ufSBvcHRpb25zIGVpdGhlciBhIHNpbmdsZSBxdWVyeSBoYW5kbGVyIG9iamVjdCwgYSBmdW5jdGlvbiwgb3IgYW4gYXJyYXkgb2YgcXVlcnkgaGFuZGxlcnNcbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBvcHRpb25zLm1hdGNoIGZpcmVkIHdoZW4gcXVlcnkgbWF0Y2hlZFxuICAgICAqIEBwYXJhbSB7ZnVuY3Rpb259IFtvcHRpb25zLnVubWF0Y2hdIGZpcmVkIHdoZW4gYSBxdWVyeSBpcyBubyBsb25nZXIgbWF0Y2hlZFxuICAgICAqIEBwYXJhbSB7ZnVuY3Rpb259IFtvcHRpb25zLnNldHVwXSBmaXJlZCB3aGVuIGhhbmRsZXIgZmlyc3QgdHJpZ2dlcmVkXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5kZWZlclNldHVwPWZhbHNlXSB3aGV0aGVyIHNldHVwIHNob3VsZCBiZSBydW4gaW1tZWRpYXRlbHkgb3IgZGVmZXJyZWQgdW50aWwgcXVlcnkgaXMgZmlyc3QgbWF0Y2hlZFxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW3Nob3VsZERlZ3JhZGU9ZmFsc2VdIHdoZXRoZXIgdGhpcyBwYXJ0aWN1bGFyIG1lZGlhIHF1ZXJ5IHNob3VsZCBhbHdheXMgcnVuIG9uIGluY2FwYWJsZSBicm93c2Vyc1xuICAgICAqL1xuICAgIHJlZ2lzdGVyIDogZnVuY3Rpb24ocSwgb3B0aW9ucywgc2hvdWxkRGVncmFkZSkge1xuICAgICAgICB2YXIgcXVlcmllcyAgICAgICAgID0gdGhpcy5xdWVyaWVzLFxuICAgICAgICAgICAgaXNVbmNvbmRpdGlvbmFsID0gc2hvdWxkRGVncmFkZSAmJiB0aGlzLmJyb3dzZXJJc0luY2FwYWJsZTtcblxuICAgICAgICBpZighcXVlcmllc1txXSkge1xuICAgICAgICAgICAgcXVlcmllc1txXSA9IG5ldyBNZWRpYVF1ZXJ5KHEsIGlzVW5jb25kaXRpb25hbCk7XG4gICAgICAgIH1cblxuICAgICAgICAvL25vcm1hbGlzZSB0byBvYmplY3QgaW4gYW4gYXJyYXlcbiAgICAgICAgaWYoaXNGdW5jdGlvbihvcHRpb25zKSkge1xuICAgICAgICAgICAgb3B0aW9ucyA9IHsgbWF0Y2ggOiBvcHRpb25zIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYoIWlzQXJyYXkob3B0aW9ucykpIHtcbiAgICAgICAgICAgIG9wdGlvbnMgPSBbb3B0aW9uc107XG4gICAgICAgIH1cbiAgICAgICAgZWFjaChvcHRpb25zLCBmdW5jdGlvbihoYW5kbGVyKSB7XG4gICAgICAgICAgICBpZiAoaXNGdW5jdGlvbihoYW5kbGVyKSkge1xuICAgICAgICAgICAgICAgIGhhbmRsZXIgPSB7IG1hdGNoIDogaGFuZGxlciB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcXVlcmllc1txXS5hZGRIYW5kbGVyKGhhbmRsZXIpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogdW5yZWdpc3RlcnMgYSBxdWVyeSBhbmQgYWxsIGl0J3MgaGFuZGxlcnMsIG9yIGEgc3BlY2lmaWMgaGFuZGxlciBmb3IgYSBxdWVyeVxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHEgdGhlIG1lZGlhIHF1ZXJ5IHRvIHRhcmdldFxuICAgICAqIEBwYXJhbSB7b2JqZWN0IHx8IGZ1bmN0aW9ufSBbaGFuZGxlcl0gc3BlY2lmaWMgaGFuZGxlciB0byB1bnJlZ2lzdGVyXG4gICAgICovXG4gICAgdW5yZWdpc3RlciA6IGZ1bmN0aW9uKHEsIGhhbmRsZXIpIHtcbiAgICAgICAgdmFyIHF1ZXJ5ID0gdGhpcy5xdWVyaWVzW3FdO1xuXG4gICAgICAgIGlmKHF1ZXJ5KSB7XG4gICAgICAgICAgICBpZihoYW5kbGVyKSB7XG4gICAgICAgICAgICAgICAgcXVlcnkucmVtb3ZlSGFuZGxlcihoYW5kbGVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHF1ZXJ5LmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMucXVlcmllc1txXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gTWVkaWFRdWVyeURpc3BhdGNoO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/enquire.js/src/MediaQueryDispatch.js\n"); + +/***/ }), + +/***/ "./node_modules/enquire.js/src/QueryHandler.js": +/*!*****************************************************!*\ + !*** ./node_modules/enquire.js/src/QueryHandler.js ***! + \*****************************************************/ +/***/ (function(module) { + +eval("/**\n * Delegate to handle a media query being matched and unmatched.\n *\n * @param {object} options\n * @param {function} options.match callback for when the media query is matched\n * @param {function} [options.unmatch] callback for when the media query is unmatched\n * @param {function} [options.setup] one-time callback triggered the first time a query is matched\n * @param {boolean} [options.deferSetup=false] should the setup callback be run immediately, rather than first time query is matched?\n * @constructor\n */\nfunction QueryHandler(options) {\n this.options = options;\n !options.deferSetup && this.setup();\n}\n\nQueryHandler.prototype = {\n\n constructor : QueryHandler,\n\n /**\n * coordinates setup of the handler\n *\n * @function\n */\n setup : function() {\n if(this.options.setup) {\n this.options.setup();\n }\n this.initialised = true;\n },\n\n /**\n * coordinates setup and triggering of the handler\n *\n * @function\n */\n on : function() {\n !this.initialised && this.setup();\n this.options.match && this.options.match();\n },\n\n /**\n * coordinates the unmatch event for the handler\n *\n * @function\n */\n off : function() {\n this.options.unmatch && this.options.unmatch();\n },\n\n /**\n * called when a handler is to be destroyed.\n * delegates to the destroy or unmatch callbacks, depending on availability.\n *\n * @function\n */\n destroy : function() {\n this.options.destroy ? this.options.destroy() : this.off();\n },\n\n /**\n * determines equality by reference.\n * if object is supplied compare options, if function, compare match callback\n *\n * @function\n * @param {object || function} [target] the target for comparison\n */\n equals : function(target) {\n return this.options === target || this.options.match === target;\n }\n\n};\n\nmodule.exports = QueryHandler;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvZW5xdWlyZS5qcy9zcmMvUXVlcnlIYW5kbGVyLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLFVBQVU7QUFDckIsV0FBVyxVQUFVO0FBQ3JCLFdBQVcsVUFBVTtBQUNyQixXQUFXLFNBQVM7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsb0JBQW9CO0FBQ25DO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9lbnF1aXJlLmpzL3NyYy9RdWVyeUhhbmRsZXIuanM/NjQwMyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERlbGVnYXRlIHRvIGhhbmRsZSBhIG1lZGlhIHF1ZXJ5IGJlaW5nIG1hdGNoZWQgYW5kIHVubWF0Y2hlZC5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gb3B0aW9uc1xuICogQHBhcmFtIHtmdW5jdGlvbn0gb3B0aW9ucy5tYXRjaCBjYWxsYmFjayBmb3Igd2hlbiB0aGUgbWVkaWEgcXVlcnkgaXMgbWF0Y2hlZFxuICogQHBhcmFtIHtmdW5jdGlvbn0gW29wdGlvbnMudW5tYXRjaF0gY2FsbGJhY2sgZm9yIHdoZW4gdGhlIG1lZGlhIHF1ZXJ5IGlzIHVubWF0Y2hlZFxuICogQHBhcmFtIHtmdW5jdGlvbn0gW29wdGlvbnMuc2V0dXBdIG9uZS10aW1lIGNhbGxiYWNrIHRyaWdnZXJlZCB0aGUgZmlyc3QgdGltZSBhIHF1ZXJ5IGlzIG1hdGNoZWRcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuZGVmZXJTZXR1cD1mYWxzZV0gc2hvdWxkIHRoZSBzZXR1cCBjYWxsYmFjayBiZSBydW4gaW1tZWRpYXRlbHksIHJhdGhlciB0aGFuIGZpcnN0IHRpbWUgcXVlcnkgaXMgbWF0Y2hlZD9cbiAqIEBjb25zdHJ1Y3RvclxuICovXG5mdW5jdGlvbiBRdWVyeUhhbmRsZXIob3B0aW9ucykge1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgIW9wdGlvbnMuZGVmZXJTZXR1cCAmJiB0aGlzLnNldHVwKCk7XG59XG5cblF1ZXJ5SGFuZGxlci5wcm90b3R5cGUgPSB7XG5cbiAgICBjb25zdHJ1Y3RvciA6IFF1ZXJ5SGFuZGxlcixcblxuICAgIC8qKlxuICAgICAqIGNvb3JkaW5hdGVzIHNldHVwIG9mIHRoZSBoYW5kbGVyXG4gICAgICpcbiAgICAgKiBAZnVuY3Rpb25cbiAgICAgKi9cbiAgICBzZXR1cCA6IGZ1bmN0aW9uKCkge1xuICAgICAgICBpZih0aGlzLm9wdGlvbnMuc2V0dXApIHtcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucy5zZXR1cCgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW5pdGlhbGlzZWQgPSB0cnVlO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBjb29yZGluYXRlcyBzZXR1cCBhbmQgdHJpZ2dlcmluZyBvZiB0aGUgaGFuZGxlclxuICAgICAqXG4gICAgICogQGZ1bmN0aW9uXG4gICAgICovXG4gICAgb24gOiBmdW5jdGlvbigpIHtcbiAgICAgICAgIXRoaXMuaW5pdGlhbGlzZWQgJiYgdGhpcy5zZXR1cCgpO1xuICAgICAgICB0aGlzLm9wdGlvbnMubWF0Y2ggJiYgdGhpcy5vcHRpb25zLm1hdGNoKCk7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIGNvb3JkaW5hdGVzIHRoZSB1bm1hdGNoIGV2ZW50IGZvciB0aGUgaGFuZGxlclxuICAgICAqXG4gICAgICogQGZ1bmN0aW9uXG4gICAgICovXG4gICAgb2ZmIDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHRoaXMub3B0aW9ucy51bm1hdGNoICYmIHRoaXMub3B0aW9ucy51bm1hdGNoKCk7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIGNhbGxlZCB3aGVuIGEgaGFuZGxlciBpcyB0byBiZSBkZXN0cm95ZWQuXG4gICAgICogZGVsZWdhdGVzIHRvIHRoZSBkZXN0cm95IG9yIHVubWF0Y2ggY2FsbGJhY2tzLCBkZXBlbmRpbmcgb24gYXZhaWxhYmlsaXR5LlxuICAgICAqXG4gICAgICogQGZ1bmN0aW9uXG4gICAgICovXG4gICAgZGVzdHJveSA6IGZ1bmN0aW9uKCkge1xuICAgICAgICB0aGlzLm9wdGlvbnMuZGVzdHJveSA/IHRoaXMub3B0aW9ucy5kZXN0cm95KCkgOiB0aGlzLm9mZigpO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBkZXRlcm1pbmVzIGVxdWFsaXR5IGJ5IHJlZmVyZW5jZS5cbiAgICAgKiBpZiBvYmplY3QgaXMgc3VwcGxpZWQgY29tcGFyZSBvcHRpb25zLCBpZiBmdW5jdGlvbiwgY29tcGFyZSBtYXRjaCBjYWxsYmFja1xuICAgICAqXG4gICAgICogQGZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtvYmplY3QgfHwgZnVuY3Rpb259IFt0YXJnZXRdIHRoZSB0YXJnZXQgZm9yIGNvbXBhcmlzb25cbiAgICAgKi9cbiAgICBlcXVhbHMgOiBmdW5jdGlvbih0YXJnZXQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucyA9PT0gdGFyZ2V0IHx8IHRoaXMub3B0aW9ucy5tYXRjaCA9PT0gdGFyZ2V0O1xuICAgIH1cblxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBRdWVyeUhhbmRsZXI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/enquire.js/src/QueryHandler.js\n"); + +/***/ }), + +/***/ "./node_modules/enquire.js/src/Util.js": +/*!*********************************************!*\ + !*** ./node_modules/enquire.js/src/Util.js ***! + \*********************************************/ +/***/ (function(module) { + +eval("/**\n * Helper function for iterating over a collection\n *\n * @param collection\n * @param fn\n */\nfunction each(collection, fn) {\n var i = 0,\n length = collection.length,\n cont;\n\n for(i; i < length; i++) {\n cont = fn(collection[i], i);\n if(cont === false) {\n break; //allow early exit\n }\n }\n}\n\n/**\n * Helper function for determining whether target object is an array\n *\n * @param target the object under test\n * @return {Boolean} true if array, false otherwise\n */\nfunction isArray(target) {\n return Object.prototype.toString.apply(target) === '[object Array]';\n}\n\n/**\n * Helper function for determining whether target object is a function\n *\n * @param target the object under test\n * @return {Boolean} true if function, false otherwise\n */\nfunction isFunction(target) {\n return typeof target === 'function';\n}\n\nmodule.exports = {\n isFunction : isFunction,\n isArray : isArray,\n each : each\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvZW5xdWlyZS5qcy9zcmMvVXRpbC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxXQUFXLFlBQVk7QUFDdkI7QUFDQTtBQUNBLG1CQUFtQjtBQUNuQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLFNBQVM7QUFDckI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLFNBQVM7QUFDckI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZW5xdWlyZS5qcy9zcmMvVXRpbC5qcz8wMTA1Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIGZvciBpdGVyYXRpbmcgb3ZlciBhIGNvbGxlY3Rpb25cbiAqXG4gKiBAcGFyYW0gY29sbGVjdGlvblxuICogQHBhcmFtIGZuXG4gKi9cbmZ1bmN0aW9uIGVhY2goY29sbGVjdGlvbiwgZm4pIHtcbiAgICB2YXIgaSAgICAgID0gMCxcbiAgICAgICAgbGVuZ3RoID0gY29sbGVjdGlvbi5sZW5ndGgsXG4gICAgICAgIGNvbnQ7XG5cbiAgICBmb3IoaTsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnQgPSBmbihjb2xsZWN0aW9uW2ldLCBpKTtcbiAgICAgICAgaWYoY29udCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGJyZWFrOyAvL2FsbG93IGVhcmx5IGV4aXRcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gZm9yIGRldGVybWluaW5nIHdoZXRoZXIgdGFyZ2V0IG9iamVjdCBpcyBhbiBhcnJheVxuICpcbiAqIEBwYXJhbSB0YXJnZXQgdGhlIG9iamVjdCB1bmRlciB0ZXN0XG4gKiBAcmV0dXJuIHtCb29sZWFufSB0cnVlIGlmIGFycmF5LCBmYWxzZSBvdGhlcndpc2VcbiAqL1xuZnVuY3Rpb24gaXNBcnJheSh0YXJnZXQpIHtcbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5hcHBseSh0YXJnZXQpID09PSAnW29iamVjdCBBcnJheV0nO1xufVxuXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiBmb3IgZGV0ZXJtaW5pbmcgd2hldGhlciB0YXJnZXQgb2JqZWN0IGlzIGEgZnVuY3Rpb25cbiAqXG4gKiBAcGFyYW0gdGFyZ2V0IHRoZSBvYmplY3QgdW5kZXIgdGVzdFxuICogQHJldHVybiB7Qm9vbGVhbn0gdHJ1ZSBpZiBmdW5jdGlvbiwgZmFsc2Ugb3RoZXJ3aXNlXG4gKi9cbmZ1bmN0aW9uIGlzRnVuY3Rpb24odGFyZ2V0KSB7XG4gICAgcmV0dXJuIHR5cGVvZiB0YXJnZXQgPT09ICdmdW5jdGlvbic7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIGlzRnVuY3Rpb24gOiBpc0Z1bmN0aW9uLFxuICAgIGlzQXJyYXkgOiBpc0FycmF5LFxuICAgIGVhY2ggOiBlYWNoXG59O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/enquire.js/src/Util.js\n"); + +/***/ }), + +/***/ "./node_modules/enquire.js/src/index.js": +/*!**********************************************!*\ + !*** ./node_modules/enquire.js/src/index.js ***! + \**********************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var MediaQueryDispatch = __webpack_require__(/*! ./MediaQueryDispatch */ \"./node_modules/enquire.js/src/MediaQueryDispatch.js\");\nmodule.exports = new MediaQueryDispatch();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvZW5xdWlyZS5qcy9zcmMvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQUEseUJBQXlCLG1CQUFPLENBQUMsaUZBQXNCO0FBQ3ZEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9lbnF1aXJlLmpzL3NyYy9pbmRleC5qcz83YjFiIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBNZWRpYVF1ZXJ5RGlzcGF0Y2ggPSByZXF1aXJlKCcuL01lZGlhUXVlcnlEaXNwYXRjaCcpO1xubW9kdWxlLmV4cG9ydHMgPSBuZXcgTWVkaWFRdWVyeURpc3BhdGNoKCk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/enquire.js/src/index.js\n"); + +/***/ }), + +/***/ "./node_modules/fast-deep-equal/react.js": +/*!***********************************************!*\ + !*** ./node_modules/fast-deep-equal/react.js ***! + \***********************************************/ +/***/ (function(module) { + +"use strict"; +eval("\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n continue;\n }\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvZmFzdC1kZWVwLWVxdWFsL3JlYWN0LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViOzs7O0FBSUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLFVBQVU7QUFDakM7QUFDQTtBQUNBOzs7O0FBSUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSxxQkFBcUIsVUFBVTtBQUMvQjs7QUFFQSxxQkFBcUIsVUFBVTtBQUMvQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZmFzdC1kZWVwLWVxdWFsL3JlYWN0LmpzP2JiNDgiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG4vLyBkbyBub3QgZWRpdCAuanMgZmlsZXMgZGlyZWN0bHkgLSBlZGl0IHNyYy9pbmRleC5qc3RcblxuXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gZXF1YWwoYSwgYikge1xuICBpZiAoYSA9PT0gYikgcmV0dXJuIHRydWU7XG5cbiAgaWYgKGEgJiYgYiAmJiB0eXBlb2YgYSA9PSAnb2JqZWN0JyAmJiB0eXBlb2YgYiA9PSAnb2JqZWN0Jykge1xuICAgIGlmIChhLmNvbnN0cnVjdG9yICE9PSBiLmNvbnN0cnVjdG9yKSByZXR1cm4gZmFsc2U7XG5cbiAgICB2YXIgbGVuZ3RoLCBpLCBrZXlzO1xuICAgIGlmIChBcnJheS5pc0FycmF5KGEpKSB7XG4gICAgICBsZW5ndGggPSBhLmxlbmd0aDtcbiAgICAgIGlmIChsZW5ndGggIT0gYi5sZW5ndGgpIHJldHVybiBmYWxzZTtcbiAgICAgIGZvciAoaSA9IGxlbmd0aDsgaS0tICE9PSAwOylcbiAgICAgICAgaWYgKCFlcXVhbChhW2ldLCBiW2ldKSkgcmV0dXJuIGZhbHNlO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG5cblxuICAgIGlmIChhLmNvbnN0cnVjdG9yID09PSBSZWdFeHApIHJldHVybiBhLnNvdXJjZSA9PT0gYi5zb3VyY2UgJiYgYS5mbGFncyA9PT0gYi5mbGFncztcbiAgICBpZiAoYS52YWx1ZU9mICE9PSBPYmplY3QucHJvdG90eXBlLnZhbHVlT2YpIHJldHVybiBhLnZhbHVlT2YoKSA9PT0gYi52YWx1ZU9mKCk7XG4gICAgaWYgKGEudG9TdHJpbmcgIT09IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcpIHJldHVybiBhLnRvU3RyaW5nKCkgPT09IGIudG9TdHJpbmcoKTtcblxuICAgIGtleXMgPSBPYmplY3Qua2V5cyhhKTtcbiAgICBsZW5ndGggPSBrZXlzLmxlbmd0aDtcbiAgICBpZiAobGVuZ3RoICE9PSBPYmplY3Qua2V5cyhiKS5sZW5ndGgpIHJldHVybiBmYWxzZTtcblxuICAgIGZvciAoaSA9IGxlbmd0aDsgaS0tICE9PSAwOylcbiAgICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIsIGtleXNbaV0pKSByZXR1cm4gZmFsc2U7XG5cbiAgICBmb3IgKGkgPSBsZW5ndGg7IGktLSAhPT0gMDspIHtcbiAgICAgIHZhciBrZXkgPSBrZXlzW2ldO1xuXG4gICAgICBpZiAoa2V5ID09PSAnX293bmVyJyAmJiBhLiQkdHlwZW9mKSB7XG4gICAgICAgIC8vIFJlYWN0LXNwZWNpZmljOiBhdm9pZCB0cmF2ZXJzaW5nIFJlYWN0IGVsZW1lbnRzJyBfb3duZXIuXG4gICAgICAgIC8vICBfb3duZXIgY29udGFpbnMgY2lyY3VsYXIgcmVmZXJlbmNlc1xuICAgICAgICAvLyBhbmQgaXMgbm90IG5lZWRlZCB3aGVuIGNvbXBhcmluZyB0aGUgYWN0dWFsIGVsZW1lbnRzIChhbmQgbm90IHRoZWlyIG93bmVycylcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmICghZXF1YWwoYVtrZXldLCBiW2tleV0pKSByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvLyB0cnVlIGlmIGJvdGggTmFOLCBmYWxzZSBvdGhlcndpc2VcbiAgcmV0dXJuIGEhPT1hICYmIGIhPT1iO1xufTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/fast-deep-equal/react.js\n"); + +/***/ }), + +/***/ "./node_modules/json2mq/index.js": +/*!***************************************!*\ + !*** ./node_modules/json2mq/index.js ***! + \***************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var camel2hyphen = __webpack_require__(/*! string-convert/camel2hyphen */ \"./node_modules/string-convert/camel2hyphen.js\");\n\nvar isDimension = function (feature) {\n var re = /[height|width]$/;\n return re.test(feature);\n};\n\nvar obj2mq = function (obj) {\n var mq = '';\n var features = Object.keys(obj);\n features.forEach(function (feature, index) {\n var value = obj[feature];\n feature = camel2hyphen(feature);\n // Add px to dimension features\n if (isDimension(feature) && typeof value === 'number') {\n value = value + 'px';\n }\n if (value === true) {\n mq += feature;\n } else if (value === false) {\n mq += 'not ' + feature;\n } else {\n mq += '(' + feature + ': ' + value + ')';\n }\n if (index < features.length-1) {\n mq += ' and '\n }\n });\n return mq;\n};\n\nvar json2mq = function (query) {\n var mq = '';\n if (typeof query === 'string') {\n return query;\n }\n // Handling array of media queries\n if (query instanceof Array) {\n query.forEach(function (q, index) {\n mq += obj2mq(q);\n if (index < query.length-1) {\n mq += ', '\n }\n });\n return mq;\n }\n // Handling single media query\n return obj2mq(query);\n};\n\nmodule.exports = json2mq;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvanNvbjJtcS9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQSxtQkFBbUIsbUJBQU8sQ0FBQyxrRkFBNkI7O0FBRXhEO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2pzb24ybXEvaW5kZXguanM/YTRkZSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgY2FtZWwyaHlwaGVuID0gcmVxdWlyZSgnc3RyaW5nLWNvbnZlcnQvY2FtZWwyaHlwaGVuJyk7XG5cbnZhciBpc0RpbWVuc2lvbiA9IGZ1bmN0aW9uIChmZWF0dXJlKSB7XG4gIHZhciByZSA9IC9baGVpZ2h0fHdpZHRoXSQvO1xuICByZXR1cm4gcmUudGVzdChmZWF0dXJlKTtcbn07XG5cbnZhciBvYmoybXEgPSBmdW5jdGlvbiAob2JqKSB7XG4gIHZhciBtcSA9ICcnO1xuICB2YXIgZmVhdHVyZXMgPSBPYmplY3Qua2V5cyhvYmopO1xuICBmZWF0dXJlcy5mb3JFYWNoKGZ1bmN0aW9uIChmZWF0dXJlLCBpbmRleCkge1xuICAgIHZhciB2YWx1ZSA9IG9ialtmZWF0dXJlXTtcbiAgICBmZWF0dXJlID0gY2FtZWwyaHlwaGVuKGZlYXR1cmUpO1xuICAgIC8vIEFkZCBweCB0byBkaW1lbnNpb24gZmVhdHVyZXNcbiAgICBpZiAoaXNEaW1lbnNpb24oZmVhdHVyZSkgJiYgdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgdmFsdWUgPSB2YWx1ZSArICdweCc7XG4gICAgfVxuICAgIGlmICh2YWx1ZSA9PT0gdHJ1ZSkge1xuICAgICAgbXEgKz0gZmVhdHVyZTtcbiAgICB9IGVsc2UgaWYgKHZhbHVlID09PSBmYWxzZSkge1xuICAgICAgbXEgKz0gJ25vdCAnICsgZmVhdHVyZTtcbiAgICB9IGVsc2Uge1xuICAgICAgbXEgKz0gJygnICsgZmVhdHVyZSArICc6ICcgKyB2YWx1ZSArICcpJztcbiAgICB9XG4gICAgaWYgKGluZGV4IDwgZmVhdHVyZXMubGVuZ3RoLTEpIHtcbiAgICAgIG1xICs9ICcgYW5kICdcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gbXE7XG59O1xuXG52YXIganNvbjJtcSA9IGZ1bmN0aW9uIChxdWVyeSkge1xuICB2YXIgbXEgPSAnJztcbiAgaWYgKHR5cGVvZiBxdWVyeSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gcXVlcnk7XG4gIH1cbiAgLy8gSGFuZGxpbmcgYXJyYXkgb2YgbWVkaWEgcXVlcmllc1xuICBpZiAocXVlcnkgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgIHF1ZXJ5LmZvckVhY2goZnVuY3Rpb24gKHEsIGluZGV4KSB7XG4gICAgICBtcSArPSBvYmoybXEocSk7XG4gICAgICBpZiAoaW5kZXggPCBxdWVyeS5sZW5ndGgtMSkge1xuICAgICAgICBtcSArPSAnLCAnXG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIG1xO1xuICB9XG4gIC8vIEhhbmRsaW5nIHNpbmdsZSBtZWRpYSBxdWVyeVxuICByZXR1cm4gb2JqMm1xKHF1ZXJ5KTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ganNvbjJtcTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/json2mq/index.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash.debounce/index.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash.debounce/index.js ***! + \***********************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof __webpack_require__.g == 'object' && __webpack_require__.g && __webpack_require__.g.Object === Object && __webpack_require__.g;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLmRlYm91bmNlL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0Esd0JBQXdCLHFCQUFNLGdCQUFnQixxQkFBTSxJQUFJLHFCQUFNLHNCQUFzQixxQkFBTTs7QUFFMUY7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFVBQVU7QUFDckIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUSxXQUFXO0FBQzlCLFdBQVcsU0FBUztBQUNwQjtBQUNBLFdBQVcsUUFBUTtBQUNuQjtBQUNBLFdBQVcsU0FBUztBQUNwQjtBQUNBLGFBQWEsVUFBVTtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLCtDQUErQyxpQkFBaUI7QUFDaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2QsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2guZGVib3VuY2UvaW5kZXguanM/ODlhOCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGxvZGFzaCAoQ3VzdG9tIEJ1aWxkKSA8aHR0cHM6Ly9sb2Rhc2guY29tLz5cbiAqIEJ1aWxkOiBgbG9kYXNoIG1vZHVsYXJpemUgZXhwb3J0cz1cIm5wbVwiIC1vIC4vYFxuICogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMgPGh0dHBzOi8vanF1ZXJ5Lm9yZy8+XG4gKiBSZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZSA8aHR0cHM6Ly9sb2Rhc2guY29tL2xpY2Vuc2U+XG4gKiBCYXNlZCBvbiBVbmRlcnNjb3JlLmpzIDEuOC4zIDxodHRwOi8vdW5kZXJzY29yZWpzLm9yZy9MSUNFTlNFPlxuICogQ29weXJpZ2h0IEplcmVteSBBc2hrZW5hcywgRG9jdW1lbnRDbG91ZCBhbmQgSW52ZXN0aWdhdGl2ZSBSZXBvcnRlcnMgJiBFZGl0b3JzXG4gKi9cblxuLyoqIFVzZWQgYXMgdGhlIGBUeXBlRXJyb3JgIG1lc3NhZ2UgZm9yIFwiRnVuY3Rpb25zXCIgbWV0aG9kcy4gKi9cbnZhciBGVU5DX0VSUk9SX1RFWFQgPSAnRXhwZWN0ZWQgYSBmdW5jdGlvbic7XG5cbi8qKiBVc2VkIGFzIHJlZmVyZW5jZXMgZm9yIHZhcmlvdXMgYE51bWJlcmAgY29uc3RhbnRzLiAqL1xudmFyIE5BTiA9IDAgLyAwO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgc3ltYm9sVGFnID0gJ1tvYmplY3QgU3ltYm9sXSc7XG5cbi8qKiBVc2VkIHRvIG1hdGNoIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2UuICovXG52YXIgcmVUcmltID0gL15cXHMrfFxccyskL2c7XG5cbi8qKiBVc2VkIHRvIGRldGVjdCBiYWQgc2lnbmVkIGhleGFkZWNpbWFsIHN0cmluZyB2YWx1ZXMuICovXG52YXIgcmVJc0JhZEhleCA9IC9eWy0rXTB4WzAtOWEtZl0rJC9pO1xuXG4vKiogVXNlZCB0byBkZXRlY3QgYmluYXJ5IHN0cmluZyB2YWx1ZXMuICovXG52YXIgcmVJc0JpbmFyeSA9IC9eMGJbMDFdKyQvaTtcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IG9jdGFsIHN0cmluZyB2YWx1ZXMuICovXG52YXIgcmVJc09jdGFsID0gL14wb1swLTddKyQvaTtcblxuLyoqIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIHdpdGhvdXQgYSBkZXBlbmRlbmN5IG9uIGByb290YC4gKi9cbnZhciBmcmVlUGFyc2VJbnQgPSBwYXJzZUludDtcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBnbG9iYWxgIGZyb20gTm9kZS5qcy4gKi9cbnZhciBmcmVlR2xvYmFsID0gdHlwZW9mIGdsb2JhbCA9PSAnb2JqZWN0JyAmJiBnbG9iYWwgJiYgZ2xvYmFsLk9iamVjdCA9PT0gT2JqZWN0ICYmIGdsb2JhbDtcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBzZWxmYC4gKi9cbnZhciBmcmVlU2VsZiA9IHR5cGVvZiBzZWxmID09ICdvYmplY3QnICYmIHNlbGYgJiYgc2VsZi5PYmplY3QgPT09IE9iamVjdCAmJiBzZWxmO1xuXG4vKiogVXNlZCBhcyBhIHJlZmVyZW5jZSB0byB0aGUgZ2xvYmFsIG9iamVjdC4gKi9cbnZhciByb290ID0gZnJlZUdsb2JhbCB8fCBmcmVlU2VsZiB8fCBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKipcbiAqIFVzZWQgdG8gcmVzb2x2ZSB0aGVcbiAqIFtgdG9TdHJpbmdUYWdgXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1vYmplY3QucHJvdG90eXBlLnRvc3RyaW5nKVxuICogb2YgdmFsdWVzLlxuICovXG52YXIgb2JqZWN0VG9TdHJpbmcgPSBvYmplY3RQcm90by50b1N0cmluZztcblxuLyogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xudmFyIG5hdGl2ZU1heCA9IE1hdGgubWF4LFxuICAgIG5hdGl2ZU1pbiA9IE1hdGgubWluO1xuXG4vKipcbiAqIEdldHMgdGhlIHRpbWVzdGFtcCBvZiB0aGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0aGF0IGhhdmUgZWxhcHNlZCBzaW5jZVxuICogdGhlIFVuaXggZXBvY2ggKDEgSmFudWFyeSAxOTcwIDAwOjAwOjAwIFVUQykuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAyLjQuMFxuICogQGNhdGVnb3J5IERhdGVcbiAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHRpbWVzdGFtcC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5kZWZlcihmdW5jdGlvbihzdGFtcCkge1xuICogICBjb25zb2xlLmxvZyhfLm5vdygpIC0gc3RhbXApO1xuICogfSwgXy5ub3coKSk7XG4gKiAvLyA9PiBMb2dzIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGl0IHRvb2sgZm9yIHRoZSBkZWZlcnJlZCBpbnZvY2F0aW9uLlxuICovXG52YXIgbm93ID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiByb290LkRhdGUubm93KCk7XG59O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBkZWJvdW5jZWQgZnVuY3Rpb24gdGhhdCBkZWxheXMgaW52b2tpbmcgYGZ1bmNgIHVudGlsIGFmdGVyIGB3YWl0YFxuICogbWlsbGlzZWNvbmRzIGhhdmUgZWxhcHNlZCBzaW5jZSB0aGUgbGFzdCB0aW1lIHRoZSBkZWJvdW5jZWQgZnVuY3Rpb24gd2FzXG4gKiBpbnZva2VkLiBUaGUgZGVib3VuY2VkIGZ1bmN0aW9uIGNvbWVzIHdpdGggYSBgY2FuY2VsYCBtZXRob2QgdG8gY2FuY2VsXG4gKiBkZWxheWVkIGBmdW5jYCBpbnZvY2F0aW9ucyBhbmQgYSBgZmx1c2hgIG1ldGhvZCB0byBpbW1lZGlhdGVseSBpbnZva2UgdGhlbS5cbiAqIFByb3ZpZGUgYG9wdGlvbnNgIHRvIGluZGljYXRlIHdoZXRoZXIgYGZ1bmNgIHNob3VsZCBiZSBpbnZva2VkIG9uIHRoZVxuICogbGVhZGluZyBhbmQvb3IgdHJhaWxpbmcgZWRnZSBvZiB0aGUgYHdhaXRgIHRpbWVvdXQuIFRoZSBgZnVuY2AgaXMgaW52b2tlZFxuICogd2l0aCB0aGUgbGFzdCBhcmd1bWVudHMgcHJvdmlkZWQgdG8gdGhlIGRlYm91bmNlZCBmdW5jdGlvbi4gU3Vic2VxdWVudFxuICogY2FsbHMgdG8gdGhlIGRlYm91bmNlZCBmdW5jdGlvbiByZXR1cm4gdGhlIHJlc3VsdCBvZiB0aGUgbGFzdCBgZnVuY2BcbiAqIGludm9jYXRpb24uXG4gKlxuICogKipOb3RlOioqIElmIGBsZWFkaW5nYCBhbmQgYHRyYWlsaW5nYCBvcHRpb25zIGFyZSBgdHJ1ZWAsIGBmdW5jYCBpc1xuICogaW52b2tlZCBvbiB0aGUgdHJhaWxpbmcgZWRnZSBvZiB0aGUgdGltZW91dCBvbmx5IGlmIHRoZSBkZWJvdW5jZWQgZnVuY3Rpb25cbiAqIGlzIGludm9rZWQgbW9yZSB0aGFuIG9uY2UgZHVyaW5nIHRoZSBgd2FpdGAgdGltZW91dC5cbiAqXG4gKiBJZiBgd2FpdGAgaXMgYDBgIGFuZCBgbGVhZGluZ2AgaXMgYGZhbHNlYCwgYGZ1bmNgIGludm9jYXRpb24gaXMgZGVmZXJyZWRcbiAqIHVudGlsIHRvIHRoZSBuZXh0IHRpY2ssIHNpbWlsYXIgdG8gYHNldFRpbWVvdXRgIHdpdGggYSB0aW1lb3V0IG9mIGAwYC5cbiAqXG4gKiBTZWUgW0RhdmlkIENvcmJhY2hvJ3MgYXJ0aWNsZV0oaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS9kZWJvdW5jaW5nLXRocm90dGxpbmctZXhwbGFpbmVkLWV4YW1wbGVzLylcbiAqIGZvciBkZXRhaWxzIG92ZXIgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gYF8uZGVib3VuY2VgIGFuZCBgXy50aHJvdHRsZWAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBkZWJvdW5jZS5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbd2FpdD0wXSBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byBkZWxheS5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9ucz17fV0gVGhlIG9wdGlvbnMgb2JqZWN0LlxuICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWFkaW5nPWZhbHNlXVxuICogIFNwZWNpZnkgaW52b2tpbmcgb24gdGhlIGxlYWRpbmcgZWRnZSBvZiB0aGUgdGltZW91dC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5tYXhXYWl0XVxuICogIFRoZSBtYXhpbXVtIHRpbWUgYGZ1bmNgIGlzIGFsbG93ZWQgdG8gYmUgZGVsYXllZCBiZWZvcmUgaXQncyBpbnZva2VkLlxuICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy50cmFpbGluZz10cnVlXVxuICogIFNwZWNpZnkgaW52b2tpbmcgb24gdGhlIHRyYWlsaW5nIGVkZ2Ugb2YgdGhlIHRpbWVvdXQuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBkZWJvdW5jZWQgZnVuY3Rpb24uXG4gKiBAZXhhbXBsZVxuICpcbiAqIC8vIEF2b2lkIGNvc3RseSBjYWxjdWxhdGlvbnMgd2hpbGUgdGhlIHdpbmRvdyBzaXplIGlzIGluIGZsdXguXG4gKiBqUXVlcnkod2luZG93KS5vbigncmVzaXplJywgXy5kZWJvdW5jZShjYWxjdWxhdGVMYXlvdXQsIDE1MCkpO1xuICpcbiAqIC8vIEludm9rZSBgc2VuZE1haWxgIHdoZW4gY2xpY2tlZCwgZGVib3VuY2luZyBzdWJzZXF1ZW50IGNhbGxzLlxuICogalF1ZXJ5KGVsZW1lbnQpLm9uKCdjbGljaycsIF8uZGVib3VuY2Uoc2VuZE1haWwsIDMwMCwge1xuICogICAnbGVhZGluZyc6IHRydWUsXG4gKiAgICd0cmFpbGluZyc6IGZhbHNlXG4gKiB9KSk7XG4gKlxuICogLy8gRW5zdXJlIGBiYXRjaExvZ2AgaXMgaW52b2tlZCBvbmNlIGFmdGVyIDEgc2Vjb25kIG9mIGRlYm91bmNlZCBjYWxscy5cbiAqIHZhciBkZWJvdW5jZWQgPSBfLmRlYm91bmNlKGJhdGNoTG9nLCAyNTAsIHsgJ21heFdhaXQnOiAxMDAwIH0pO1xuICogdmFyIHNvdXJjZSA9IG5ldyBFdmVudFNvdXJjZSgnL3N0cmVhbScpO1xuICogalF1ZXJ5KHNvdXJjZSkub24oJ21lc3NhZ2UnLCBkZWJvdW5jZWQpO1xuICpcbiAqIC8vIENhbmNlbCB0aGUgdHJhaWxpbmcgZGVib3VuY2VkIGludm9jYXRpb24uXG4gKiBqUXVlcnkod2luZG93KS5vbigncG9wc3RhdGUnLCBkZWJvdW5jZWQuY2FuY2VsKTtcbiAqL1xuZnVuY3Rpb24gZGVib3VuY2UoZnVuYywgd2FpdCwgb3B0aW9ucykge1xuICB2YXIgbGFzdEFyZ3MsXG4gICAgICBsYXN0VGhpcyxcbiAgICAgIG1heFdhaXQsXG4gICAgICByZXN1bHQsXG4gICAgICB0aW1lcklkLFxuICAgICAgbGFzdENhbGxUaW1lLFxuICAgICAgbGFzdEludm9rZVRpbWUgPSAwLFxuICAgICAgbGVhZGluZyA9IGZhbHNlLFxuICAgICAgbWF4aW5nID0gZmFsc2UsXG4gICAgICB0cmFpbGluZyA9IHRydWU7XG5cbiAgaWYgKHR5cGVvZiBmdW5jICE9ICdmdW5jdGlvbicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEZVTkNfRVJST1JfVEVYVCk7XG4gIH1cbiAgd2FpdCA9IHRvTnVtYmVyKHdhaXQpIHx8IDA7XG4gIGlmIChpc09iamVjdChvcHRpb25zKSkge1xuICAgIGxlYWRpbmcgPSAhIW9wdGlvbnMubGVhZGluZztcbiAgICBtYXhpbmcgPSAnbWF4V2FpdCcgaW4gb3B0aW9ucztcbiAgICBtYXhXYWl0ID0gbWF4aW5nID8gbmF0aXZlTWF4KHRvTnVtYmVyKG9wdGlvbnMubWF4V2FpdCkgfHwgMCwgd2FpdCkgOiBtYXhXYWl0O1xuICAgIHRyYWlsaW5nID0gJ3RyYWlsaW5nJyBpbiBvcHRpb25zID8gISFvcHRpb25zLnRyYWlsaW5nIDogdHJhaWxpbmc7XG4gIH1cblxuICBmdW5jdGlvbiBpbnZva2VGdW5jKHRpbWUpIHtcbiAgICB2YXIgYXJncyA9IGxhc3RBcmdzLFxuICAgICAgICB0aGlzQXJnID0gbGFzdFRoaXM7XG5cbiAgICBsYXN0QXJncyA9IGxhc3RUaGlzID0gdW5kZWZpbmVkO1xuICAgIGxhc3RJbnZva2VUaW1lID0gdGltZTtcbiAgICByZXN1bHQgPSBmdW5jLmFwcGx5KHRoaXNBcmcsIGFyZ3MpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBmdW5jdGlvbiBsZWFkaW5nRWRnZSh0aW1lKSB7XG4gICAgLy8gUmVzZXQgYW55IGBtYXhXYWl0YCB0aW1lci5cbiAgICBsYXN0SW52b2tlVGltZSA9IHRpbWU7XG4gICAgLy8gU3RhcnQgdGhlIHRpbWVyIGZvciB0aGUgdHJhaWxpbmcgZWRnZS5cbiAgICB0aW1lcklkID0gc2V0VGltZW91dCh0aW1lckV4cGlyZWQsIHdhaXQpO1xuICAgIC8vIEludm9rZSB0aGUgbGVhZGluZyBlZGdlLlxuICAgIHJldHVybiBsZWFkaW5nID8gaW52b2tlRnVuYyh0aW1lKSA6IHJlc3VsdDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlbWFpbmluZ1dhaXQodGltZSkge1xuICAgIHZhciB0aW1lU2luY2VMYXN0Q2FsbCA9IHRpbWUgLSBsYXN0Q2FsbFRpbWUsXG4gICAgICAgIHRpbWVTaW5jZUxhc3RJbnZva2UgPSB0aW1lIC0gbGFzdEludm9rZVRpbWUsXG4gICAgICAgIHJlc3VsdCA9IHdhaXQgLSB0aW1lU2luY2VMYXN0Q2FsbDtcblxuICAgIHJldHVybiBtYXhpbmcgPyBuYXRpdmVNaW4ocmVzdWx0LCBtYXhXYWl0IC0gdGltZVNpbmNlTGFzdEludm9rZSkgOiByZXN1bHQ7XG4gIH1cblxuICBmdW5jdGlvbiBzaG91bGRJbnZva2UodGltZSkge1xuICAgIHZhciB0aW1lU2luY2VMYXN0Q2FsbCA9IHRpbWUgLSBsYXN0Q2FsbFRpbWUsXG4gICAgICAgIHRpbWVTaW5jZUxhc3RJbnZva2UgPSB0aW1lIC0gbGFzdEludm9rZVRpbWU7XG5cbiAgICAvLyBFaXRoZXIgdGhpcyBpcyB0aGUgZmlyc3QgY2FsbCwgYWN0aXZpdHkgaGFzIHN0b3BwZWQgYW5kIHdlJ3JlIGF0IHRoZVxuICAgIC8vIHRyYWlsaW5nIGVkZ2UsIHRoZSBzeXN0ZW0gdGltZSBoYXMgZ29uZSBiYWNrd2FyZHMgYW5kIHdlJ3JlIHRyZWF0aW5nXG4gICAgLy8gaXQgYXMgdGhlIHRyYWlsaW5nIGVkZ2UsIG9yIHdlJ3ZlIGhpdCB0aGUgYG1heFdhaXRgIGxpbWl0LlxuICAgIHJldHVybiAobGFzdENhbGxUaW1lID09PSB1bmRlZmluZWQgfHwgKHRpbWVTaW5jZUxhc3RDYWxsID49IHdhaXQpIHx8XG4gICAgICAodGltZVNpbmNlTGFzdENhbGwgPCAwKSB8fCAobWF4aW5nICYmIHRpbWVTaW5jZUxhc3RJbnZva2UgPj0gbWF4V2FpdCkpO1xuICB9XG5cbiAgZnVuY3Rpb24gdGltZXJFeHBpcmVkKCkge1xuICAgIHZhciB0aW1lID0gbm93KCk7XG4gICAgaWYgKHNob3VsZEludm9rZSh0aW1lKSkge1xuICAgICAgcmV0dXJuIHRyYWlsaW5nRWRnZSh0aW1lKTtcbiAgICB9XG4gICAgLy8gUmVzdGFydCB0aGUgdGltZXIuXG4gICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCByZW1haW5pbmdXYWl0KHRpbWUpKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHRyYWlsaW5nRWRnZSh0aW1lKSB7XG4gICAgdGltZXJJZCA9IHVuZGVmaW5lZDtcblxuICAgIC8vIE9ubHkgaW52b2tlIGlmIHdlIGhhdmUgYGxhc3RBcmdzYCB3aGljaCBtZWFucyBgZnVuY2AgaGFzIGJlZW5cbiAgICAvLyBkZWJvdW5jZWQgYXQgbGVhc3Qgb25jZS5cbiAgICBpZiAodHJhaWxpbmcgJiYgbGFzdEFyZ3MpIHtcbiAgICAgIHJldHVybiBpbnZva2VGdW5jKHRpbWUpO1xuICAgIH1cbiAgICBsYXN0QXJncyA9IGxhc3RUaGlzID0gdW5kZWZpbmVkO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBmdW5jdGlvbiBjYW5jZWwoKSB7XG4gICAgaWYgKHRpbWVySWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRpbWVySWQpO1xuICAgIH1cbiAgICBsYXN0SW52b2tlVGltZSA9IDA7XG4gICAgbGFzdEFyZ3MgPSBsYXN0Q2FsbFRpbWUgPSBsYXN0VGhpcyA9IHRpbWVySWQgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBmdW5jdGlvbiBmbHVzaCgpIHtcbiAgICByZXR1cm4gdGltZXJJZCA9PT0gdW5kZWZpbmVkID8gcmVzdWx0IDogdHJhaWxpbmdFZGdlKG5vdygpKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGRlYm91bmNlZCgpIHtcbiAgICB2YXIgdGltZSA9IG5vdygpLFxuICAgICAgICBpc0ludm9raW5nID0gc2hvdWxkSW52b2tlKHRpbWUpO1xuXG4gICAgbGFzdEFyZ3MgPSBhcmd1bWVudHM7XG4gICAgbGFzdFRoaXMgPSB0aGlzO1xuICAgIGxhc3RDYWxsVGltZSA9IHRpbWU7XG5cbiAgICBpZiAoaXNJbnZva2luZykge1xuICAgICAgaWYgKHRpbWVySWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gbGVhZGluZ0VkZ2UobGFzdENhbGxUaW1lKTtcbiAgICAgIH1cbiAgICAgIGlmIChtYXhpbmcpIHtcbiAgICAgICAgLy8gSGFuZGxlIGludm9jYXRpb25zIGluIGEgdGlnaHQgbG9vcC5cbiAgICAgICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCB3YWl0KTtcbiAgICAgICAgcmV0dXJuIGludm9rZUZ1bmMobGFzdENhbGxUaW1lKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRpbWVySWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCB3YWl0KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICBkZWJvdW5jZWQuY2FuY2VsID0gY2FuY2VsO1xuICBkZWJvdW5jZWQuZmx1c2ggPSBmbHVzaDtcbiAgcmV0dXJuIGRlYm91bmNlZDtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyB0aGVcbiAqIFtsYW5ndWFnZSB0eXBlXShodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtZWNtYXNjcmlwdC1sYW5ndWFnZS10eXBlcylcbiAqIG9mIGBPYmplY3RgLiAoZS5nLiBhcnJheXMsIGZ1bmN0aW9ucywgb2JqZWN0cywgcmVnZXhlcywgYG5ldyBOdW1iZXIoMClgLCBhbmQgYG5ldyBTdHJpbmcoJycpYClcbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc09iamVjdCh7fSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdChbMSwgMiwgM10pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3QoXy5ub29wKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0KG51bGwpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNPYmplY3QodmFsdWUpIHtcbiAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gIHJldHVybiAhIXZhbHVlICYmICh0eXBlID09ICdvYmplY3QnIHx8IHR5cGUgPT0gJ2Z1bmN0aW9uJyk7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgb2JqZWN0LWxpa2UuIEEgdmFsdWUgaXMgb2JqZWN0LWxpa2UgaWYgaXQncyBub3QgYG51bGxgXG4gKiBhbmQgaGFzIGEgYHR5cGVvZmAgcmVzdWx0IG9mIFwib2JqZWN0XCIuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgb2JqZWN0LWxpa2UsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc09iamVjdExpa2Uoe30pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3RMaWtlKFsxLCAyLCAzXSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdExpa2UoXy5ub29wKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc09iamVjdExpa2UobnVsbCk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc09iamVjdExpa2UodmFsdWUpIHtcbiAgcmV0dXJuICEhdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09ICdvYmplY3QnO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgU3ltYm9sYCBwcmltaXRpdmUgb3Igb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgc3ltYm9sLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNTeW1ib2woU3ltYm9sLml0ZXJhdG9yKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzU3ltYm9sKCdhYmMnKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzU3ltYm9sKHZhbHVlKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gJ3N5bWJvbCcgfHxcbiAgICAoaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBvYmplY3RUb1N0cmluZy5jYWxsKHZhbHVlKSA9PSBzeW1ib2xUYWcpO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBudW1iZXIuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHByb2Nlc3MuXG4gKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBudW1iZXIuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8udG9OdW1iZXIoMy4yKTtcbiAqIC8vID0+IDMuMlxuICpcbiAqIF8udG9OdW1iZXIoTnVtYmVyLk1JTl9WQUxVRSk7XG4gKiAvLyA9PiA1ZS0zMjRcbiAqXG4gKiBfLnRvTnVtYmVyKEluZmluaXR5KTtcbiAqIC8vID0+IEluZmluaXR5XG4gKlxuICogXy50b051bWJlcignMy4yJyk7XG4gKiAvLyA9PiAzLjJcbiAqL1xuZnVuY3Rpb24gdG9OdW1iZXIodmFsdWUpIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnbnVtYmVyJykge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICBpZiAoaXNTeW1ib2wodmFsdWUpKSB7XG4gICAgcmV0dXJuIE5BTjtcbiAgfVxuICBpZiAoaXNPYmplY3QodmFsdWUpKSB7XG4gICAgdmFyIG90aGVyID0gdHlwZW9mIHZhbHVlLnZhbHVlT2YgPT0gJ2Z1bmN0aW9uJyA/IHZhbHVlLnZhbHVlT2YoKSA6IHZhbHVlO1xuICAgIHZhbHVlID0gaXNPYmplY3Qob3RoZXIpID8gKG90aGVyICsgJycpIDogb3RoZXI7XG4gIH1cbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPSAnc3RyaW5nJykge1xuICAgIHJldHVybiB2YWx1ZSA9PT0gMCA/IHZhbHVlIDogK3ZhbHVlO1xuICB9XG4gIHZhbHVlID0gdmFsdWUucmVwbGFjZShyZVRyaW0sICcnKTtcbiAgdmFyIGlzQmluYXJ5ID0gcmVJc0JpbmFyeS50ZXN0KHZhbHVlKTtcbiAgcmV0dXJuIChpc0JpbmFyeSB8fCByZUlzT2N0YWwudGVzdCh2YWx1ZSkpXG4gICAgPyBmcmVlUGFyc2VJbnQodmFsdWUuc2xpY2UoMiksIGlzQmluYXJ5ID8gMiA6IDgpXG4gICAgOiAocmVJc0JhZEhleC50ZXN0KHZhbHVlKSA/IE5BTiA6ICt2YWx1ZSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZGVib3VuY2U7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash.debounce/index.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick-theme.css": +/*!***************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick-theme.css ***! + \***************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../next/dist/build/webpack/loaders/css-loader/src/runtime/api.js */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js\");\n/* harmony import */ var _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _next_dist_build_webpack_loaders_css_loader_src_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../next/dist/build/webpack/loaders/css-loader/src/runtime/getUrl.js */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/getUrl.js\");\n/* harmony import */ var _next_dist_build_webpack_loaders_css_loader_src_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_next_dist_build_webpack_loaders_css_loader_src_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _ajax_loader_gif__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ajax-loader.gif */ \"./node_modules/slick-carousel/slick/ajax-loader.gif\");\n/* harmony import */ var _fonts_slick_eot__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./fonts/slick.eot */ \"./node_modules/slick-carousel/slick/fonts/slick.eot\");\n/* harmony import */ var _fonts_slick_woff__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./fonts/slick.woff */ \"./node_modules/slick-carousel/slick/fonts/slick.woff\");\n/* harmony import */ var _fonts_slick_ttf__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./fonts/slick.ttf */ \"./node_modules/slick-carousel/slick/fonts/slick.ttf\");\n/* harmony import */ var _fonts_slick_svg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./fonts/slick.svg */ \"./node_modules/slick-carousel/slick/fonts/slick.svg\");\n// Imports\n\n\n\n\n\n\n\nvar ___CSS_LOADER_EXPORT___ = _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(true);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = _next_dist_build_webpack_loaders_css_loader_src_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1___default()(_ajax_loader_gif__WEBPACK_IMPORTED_MODULE_2__);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = _next_dist_build_webpack_loaders_css_loader_src_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1___default()(_fonts_slick_eot__WEBPACK_IMPORTED_MODULE_3__);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = _next_dist_build_webpack_loaders_css_loader_src_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1___default()(_fonts_slick_eot__WEBPACK_IMPORTED_MODULE_3__, { hash: \"?#iefix\" });\nvar ___CSS_LOADER_URL_REPLACEMENT_3___ = _next_dist_build_webpack_loaders_css_loader_src_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1___default()(_fonts_slick_woff__WEBPACK_IMPORTED_MODULE_4__);\nvar ___CSS_LOADER_URL_REPLACEMENT_4___ = _next_dist_build_webpack_loaders_css_loader_src_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1___default()(_fonts_slick_ttf__WEBPACK_IMPORTED_MODULE_5__);\nvar ___CSS_LOADER_URL_REPLACEMENT_5___ = _next_dist_build_webpack_loaders_css_loader_src_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1___default()(_fonts_slick_svg__WEBPACK_IMPORTED_MODULE_6__, { hash: \"#slick\" });\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"@charset 'UTF-8';\\n/* Slider */\\n.slick-loading .slick-list\\n{\\n background: #fff url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \") center center no-repeat;\\n}\\n\\n/* Icons */\\n@font-face\\n{\\n font-family: 'slick';\\n font-weight: normal;\\n font-style: normal;\\n\\n src: url(\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \");\\n src: url(\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \") format('embedded-opentype'), url(\" + ___CSS_LOADER_URL_REPLACEMENT_3___ + \") format('woff'), url(\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \") format('truetype'), url(\" + ___CSS_LOADER_URL_REPLACEMENT_5___ + \") format('svg');\\n}\\n/* Arrows */\\n.slick-prev,\\n.slick-next\\n{\\n font-size: 0;\\n line-height: 0;\\n\\n position: absolute;\\n top: 50%;\\n\\n display: block;\\n\\n width: 20px;\\n height: 20px;\\n padding: 0;\\n transform: translate(0, -50%);\\n\\n cursor: pointer;\\n\\n color: transparent;\\n border: none;\\n outline: none;\\n background: transparent;\\n}\\n.slick-prev:hover,\\n.slick-prev:focus,\\n.slick-next:hover,\\n.slick-next:focus\\n{\\n color: transparent;\\n outline: none;\\n background: transparent;\\n}\\n.slick-prev:hover:before,\\n.slick-prev:focus:before,\\n.slick-next:hover:before,\\n.slick-next:focus:before\\n{\\n opacity: 1;\\n}\\n.slick-prev.slick-disabled:before,\\n.slick-next.slick-disabled:before\\n{\\n opacity: .25;\\n}\\n\\n.slick-prev:before,\\n.slick-next:before\\n{\\n font-family: 'slick';\\n font-size: 20px;\\n line-height: 1;\\n\\n opacity: .75;\\n color: white;\\n\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.slick-prev\\n{\\n left: -25px;\\n}\\n[dir='rtl'] .slick-prev\\n{\\n right: -25px;\\n left: auto;\\n}\\n.slick-prev:before\\n{\\n content: '←';\\n}\\n[dir='rtl'] .slick-prev:before\\n{\\n content: '→';\\n}\\n\\n.slick-next\\n{\\n right: -25px;\\n}\\n[dir='rtl'] .slick-next\\n{\\n right: auto;\\n left: -25px;\\n}\\n.slick-next:before\\n{\\n content: '→';\\n}\\n[dir='rtl'] .slick-next:before\\n{\\n content: '←';\\n}\\n\\n/* Dots */\\n.slick-dotted.slick-slider\\n{\\n margin-bottom: 30px;\\n}\\n\\n.slick-dots\\n{\\n position: absolute;\\n bottom: -25px;\\n\\n display: block;\\n\\n width: 100%;\\n padding: 0;\\n margin: 0;\\n\\n list-style: none;\\n\\n text-align: center;\\n}\\n.slick-dots li\\n{\\n position: relative;\\n\\n display: inline-block;\\n\\n width: 20px;\\n height: 20px;\\n margin: 0 5px;\\n padding: 0;\\n\\n cursor: pointer;\\n}\\n.slick-dots li button\\n{\\n font-size: 0;\\n line-height: 0;\\n\\n display: block;\\n\\n width: 20px;\\n height: 20px;\\n padding: 5px;\\n\\n cursor: pointer;\\n\\n color: transparent;\\n border: 0;\\n outline: none;\\n background: transparent;\\n}\\n.slick-dots li button:hover,\\n.slick-dots li button:focus\\n{\\n outline: none;\\n}\\n.slick-dots li button:hover:before,\\n.slick-dots li button:focus:before\\n{\\n opacity: 1;\\n}\\n.slick-dots li button:before\\n{\\n font-family: 'slick';\\n font-size: 6px;\\n line-height: 20px;\\n\\n position: absolute;\\n top: 0;\\n left: 0;\\n\\n width: 20px;\\n height: 20px;\\n\\n content: '•';\\n text-align: center;\\n\\n opacity: .25;\\n color: black;\\n\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n.slick-dots li.slick-active button:before\\n{\\n opacity: .75;\\n color: black;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://node_modules/slick-carousel/slick/slick-theme.css\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;AAChB,WAAW;AACX;;IAEI,gFAAiE;AACrE;;AAEA,UAAU;AACV;;IAEI,oBAAoB;IACpB,mBAAmB;IACnB,kBAAkB;;IAElB,4CAA6B;IAC7B,mPAAqM;AACzM;AACA,WAAW;AACX;;;IAGI,YAAY;IACZ,cAAc;;IAEd,kBAAkB;IAClB,QAAQ;;IAER,cAAc;;IAEd,WAAW;IACX,YAAY;IACZ,UAAU;IAGV,6BAA6B;;IAE7B,eAAe;;IAEf,kBAAkB;IAClB,YAAY;IACZ,aAAa;IACb,uBAAuB;AAC3B;AACA;;;;;IAKI,kBAAkB;IAClB,aAAa;IACb,uBAAuB;AAC3B;AACA;;;;;IAKI,UAAU;AACd;AACA;;;IAGI,YAAY;AAChB;;AAEA;;;IAGI,oBAAoB;IACpB,eAAe;IACf,cAAc;;IAEd,YAAY;IACZ,YAAY;;IAEZ,mCAAmC;IACnC,kCAAkC;AACtC;;AAEA;;IAEI,WAAW;AACf;AACA;;IAEI,YAAY;IACZ,UAAU;AACd;AACA;;IAEI,YAAY;AAChB;AACA;;IAEI,YAAY;AAChB;;AAEA;;IAEI,YAAY;AAChB;AACA;;IAEI,WAAW;IACX,WAAW;AACf;AACA;;IAEI,YAAY;AAChB;AACA;;IAEI,YAAY;AAChB;;AAEA,SAAS;AACT;;IAEI,mBAAmB;AACvB;;AAEA;;IAEI,kBAAkB;IAClB,aAAa;;IAEb,cAAc;;IAEd,WAAW;IACX,UAAU;IACV,SAAS;;IAET,gBAAgB;;IAEhB,kBAAkB;AACtB;AACA;;IAEI,kBAAkB;;IAElB,qBAAqB;;IAErB,WAAW;IACX,YAAY;IACZ,aAAa;IACb,UAAU;;IAEV,eAAe;AACnB;AACA;;IAEI,YAAY;IACZ,cAAc;;IAEd,cAAc;;IAEd,WAAW;IACX,YAAY;IACZ,YAAY;;IAEZ,eAAe;;IAEf,kBAAkB;IAClB,SAAS;IACT,aAAa;IACb,uBAAuB;AAC3B;AACA;;;IAGI,aAAa;AACjB;AACA;;;IAGI,UAAU;AACd;AACA;;IAEI,oBAAoB;IACpB,cAAc;IACd,iBAAiB;;IAEjB,kBAAkB;IAClB,MAAM;IACN,OAAO;;IAEP,WAAW;IACX,YAAY;;IAEZ,YAAY;IACZ,kBAAkB;;IAElB,YAAY;IACZ,YAAY;;IAEZ,mCAAmC;IACnC,kCAAkC;AACtC;AACA;;IAEI,YAAY;IACZ,YAAY;AAChB\",\"sourcesContent\":[\"@charset 'UTF-8';\\n/* Slider */\\n.slick-loading .slick-list\\n{\\n background: #fff url('./ajax-loader.gif') center center no-repeat;\\n}\\n\\n/* Icons */\\n@font-face\\n{\\n font-family: 'slick';\\n font-weight: normal;\\n font-style: normal;\\n\\n src: url('./fonts/slick.eot');\\n src: url('./fonts/slick.eot?#iefix') format('embedded-opentype'), url('./fonts/slick.woff') format('woff'), url('./fonts/slick.ttf') format('truetype'), url('./fonts/slick.svg#slick') format('svg');\\n}\\n/* Arrows */\\n.slick-prev,\\n.slick-next\\n{\\n font-size: 0;\\n line-height: 0;\\n\\n position: absolute;\\n top: 50%;\\n\\n display: block;\\n\\n width: 20px;\\n height: 20px;\\n padding: 0;\\n -webkit-transform: translate(0, -50%);\\n -ms-transform: translate(0, -50%);\\n transform: translate(0, -50%);\\n\\n cursor: pointer;\\n\\n color: transparent;\\n border: none;\\n outline: none;\\n background: transparent;\\n}\\n.slick-prev:hover,\\n.slick-prev:focus,\\n.slick-next:hover,\\n.slick-next:focus\\n{\\n color: transparent;\\n outline: none;\\n background: transparent;\\n}\\n.slick-prev:hover:before,\\n.slick-prev:focus:before,\\n.slick-next:hover:before,\\n.slick-next:focus:before\\n{\\n opacity: 1;\\n}\\n.slick-prev.slick-disabled:before,\\n.slick-next.slick-disabled:before\\n{\\n opacity: .25;\\n}\\n\\n.slick-prev:before,\\n.slick-next:before\\n{\\n font-family: 'slick';\\n font-size: 20px;\\n line-height: 1;\\n\\n opacity: .75;\\n color: white;\\n\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.slick-prev\\n{\\n left: -25px;\\n}\\n[dir='rtl'] .slick-prev\\n{\\n right: -25px;\\n left: auto;\\n}\\n.slick-prev:before\\n{\\n content: '←';\\n}\\n[dir='rtl'] .slick-prev:before\\n{\\n content: '→';\\n}\\n\\n.slick-next\\n{\\n right: -25px;\\n}\\n[dir='rtl'] .slick-next\\n{\\n right: auto;\\n left: -25px;\\n}\\n.slick-next:before\\n{\\n content: '→';\\n}\\n[dir='rtl'] .slick-next:before\\n{\\n content: '←';\\n}\\n\\n/* Dots */\\n.slick-dotted.slick-slider\\n{\\n margin-bottom: 30px;\\n}\\n\\n.slick-dots\\n{\\n position: absolute;\\n bottom: -25px;\\n\\n display: block;\\n\\n width: 100%;\\n padding: 0;\\n margin: 0;\\n\\n list-style: none;\\n\\n text-align: center;\\n}\\n.slick-dots li\\n{\\n position: relative;\\n\\n display: inline-block;\\n\\n width: 20px;\\n height: 20px;\\n margin: 0 5px;\\n padding: 0;\\n\\n cursor: pointer;\\n}\\n.slick-dots li button\\n{\\n font-size: 0;\\n line-height: 0;\\n\\n display: block;\\n\\n width: 20px;\\n height: 20px;\\n padding: 5px;\\n\\n cursor: pointer;\\n\\n color: transparent;\\n border: 0;\\n outline: none;\\n background: transparent;\\n}\\n.slick-dots li button:hover,\\n.slick-dots li button:focus\\n{\\n outline: none;\\n}\\n.slick-dots li button:hover:before,\\n.slick-dots li button:focus:before\\n{\\n opacity: 1;\\n}\\n.slick-dots li button:before\\n{\\n font-family: 'slick';\\n font-size: 6px;\\n line-height: 20px;\\n\\n position: absolute;\\n top: 0;\\n left: 0;\\n\\n width: 20px;\\n height: 20px;\\n\\n content: '•';\\n text-align: center;\\n\\n opacity: .25;\\n color: black;\\n\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n.slick-dots li.slick-active button:before\\n{\\n opacity: .75;\\n color: black;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMV0hLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3NsaWNrLWNhcm91c2VsL3NsaWNrL3NsaWNrLXRoZW1lLmNzcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7QUFDOEc7QUFDTztBQUN2RDtBQUNBO0FBQ0M7QUFDRDtBQUNBO0FBQzlELDhCQUE4QixxR0FBMkI7QUFDekQseUNBQXlDLHdHQUErQixDQUFDLDZDQUE2QjtBQUN0Ryx5Q0FBeUMsd0dBQStCLENBQUMsNkNBQTZCO0FBQ3RHLHlDQUF5Qyx3R0FBK0IsQ0FBQyw2Q0FBNkIsSUFBSSxpQkFBaUI7QUFDM0gseUNBQXlDLHdHQUErQixDQUFDLDhDQUE2QjtBQUN0Ryx5Q0FBeUMsd0dBQStCLENBQUMsNkNBQTZCO0FBQ3RHLHlDQUF5Qyx3R0FBK0IsQ0FBQyw2Q0FBNkIsSUFBSSxnQkFBZ0I7QUFDMUg7QUFDQSwyREFBMkQsNkNBQTZDLCtGQUErRixHQUFHLDhCQUE4QiwyQkFBMkIsMEJBQTBCLHlCQUF5Qiw2REFBNkQsMFJBQTBSLEdBQUcsNENBQTRDLG1CQUFtQixxQkFBcUIsMkJBQTJCLGVBQWUsdUJBQXVCLG9CQUFvQixtQkFBbUIsaUJBQWlCLG9DQUFvQyx3QkFBd0IsMkJBQTJCLG1CQUFtQixvQkFBb0IsOEJBQThCLEdBQUcsa0ZBQWtGLHlCQUF5QixvQkFBb0IsOEJBQThCLEdBQUcsOEdBQThHLGlCQUFpQixHQUFHLDBFQUEwRSxtQkFBbUIsR0FBRyw4Q0FBOEMsMkJBQTJCLHNCQUFzQixxQkFBcUIscUJBQXFCLG1CQUFtQiw0Q0FBNEMseUNBQXlDLEdBQUcsa0JBQWtCLGtCQUFrQixHQUFHLDRCQUE0QixtQkFBbUIsaUJBQWlCLEdBQUcsdUJBQXVCLG1CQUFtQixHQUFHLG1DQUFtQyxtQkFBbUIsR0FBRyxrQkFBa0IsbUJBQW1CLEdBQUcsNEJBQTRCLGtCQUFrQixrQkFBa0IsR0FBRyx1QkFBdUIsbUJBQW1CLEdBQUcsbUNBQW1DLG1CQUFtQixHQUFHLDZDQUE2QywwQkFBMEIsR0FBRyxrQkFBa0IseUJBQXlCLG9CQUFvQix1QkFBdUIsb0JBQW9CLGlCQUFpQixnQkFBZ0IseUJBQXlCLDJCQUEyQixHQUFHLG1CQUFtQix5QkFBeUIsOEJBQThCLG9CQUFvQixtQkFBbUIsb0JBQW9CLGlCQUFpQix3QkFBd0IsR0FBRywwQkFBMEIsbUJBQW1CLHFCQUFxQix1QkFBdUIsb0JBQW9CLG1CQUFtQixtQkFBbUIsd0JBQXdCLDJCQUEyQixnQkFBZ0Isb0JBQW9CLDhCQUE4QixHQUFHLDhEQUE4RCxvQkFBb0IsR0FBRyw0RUFBNEUsaUJBQWlCLEdBQUcsaUNBQWlDLDJCQUEyQixxQkFBcUIsd0JBQXdCLDJCQUEyQixhQUFhLGNBQWMsb0JBQW9CLG1CQUFtQixxQkFBcUIseUJBQXlCLHFCQUFxQixtQkFBbUIsNENBQTRDLHlDQUF5QyxHQUFHLDhDQUE4QyxtQkFBbUIsbUJBQW1CLEdBQUcsU0FBUyx5SEFBeUgsV0FBVyxNQUFNLFlBQVksT0FBTyxVQUFVLE1BQU0sWUFBWSxhQUFhLGNBQWMsYUFBYSxhQUFhLE1BQU0sVUFBVSxPQUFPLFVBQVUsV0FBVyxZQUFZLFlBQVksV0FBVyxVQUFVLFVBQVUsVUFBVSxhQUFhLFlBQVksWUFBWSxXQUFXLFVBQVUsWUFBWSxNQUFNLFNBQVMsWUFBWSxXQUFXLFlBQVksTUFBTSxTQUFTLFVBQVUsS0FBSyxPQUFPLFVBQVUsT0FBTyxPQUFPLFlBQVksV0FBVyxXQUFXLFVBQVUsV0FBVyxZQUFZLGFBQWEsT0FBTyxNQUFNLFVBQVUsS0FBSyxNQUFNLFVBQVUsVUFBVSxLQUFLLE1BQU0sVUFBVSxNQUFNLE1BQU0sVUFBVSxPQUFPLE1BQU0sVUFBVSxNQUFNLE1BQU0sVUFBVSxVQUFVLEtBQUssTUFBTSxVQUFVLE1BQU0sTUFBTSxVQUFVLE9BQU8sVUFBVSxNQUFNLFlBQVksT0FBTyxNQUFNLFlBQVksWUFBWSxXQUFXLFVBQVUsVUFBVSxXQUFXLGFBQWEsYUFBYSxNQUFNLE1BQU0sYUFBYSxjQUFjLFdBQVcsVUFBVSxVQUFVLFdBQVcsVUFBVSxNQUFNLE1BQU0sVUFBVSxXQUFXLFdBQVcsVUFBVSxVQUFVLFdBQVcsV0FBVyxZQUFZLFdBQVcsVUFBVSxZQUFZLE1BQU0sT0FBTyxVQUFVLE1BQU0sT0FBTyxVQUFVLEtBQUssTUFBTSxZQUFZLFdBQVcsYUFBYSxhQUFhLFdBQVcsV0FBVyxVQUFVLFdBQVcsVUFBVSxhQUFhLFdBQVcsV0FBVyxZQUFZLGFBQWEsTUFBTSxNQUFNLFVBQVUsVUFBVSwyQ0FBMkMsNkNBQTZDLHdFQUF3RSxHQUFHLDhCQUE4QiwyQkFBMkIsMEJBQTBCLHlCQUF5QixzQ0FBc0MsNE1BQTRNLEdBQUcsNENBQTRDLG1CQUFtQixxQkFBcUIsMkJBQTJCLGVBQWUsdUJBQXVCLG9CQUFvQixtQkFBbUIsaUJBQWlCLDRDQUE0Qyx3Q0FBd0Msb0NBQW9DLHdCQUF3QiwyQkFBMkIsbUJBQW1CLG9CQUFvQiw4QkFBOEIsR0FBRyxrRkFBa0YseUJBQXlCLG9CQUFvQiw4QkFBOEIsR0FBRyw4R0FBOEcsaUJBQWlCLEdBQUcsMEVBQTBFLG1CQUFtQixHQUFHLDhDQUE4QywyQkFBMkIsc0JBQXNCLHFCQUFxQixxQkFBcUIsbUJBQW1CLDRDQUE0Qyx5Q0FBeUMsR0FBRyxrQkFBa0Isa0JBQWtCLEdBQUcsNEJBQTRCLG1CQUFtQixpQkFBaUIsR0FBRyx1QkFBdUIsbUJBQW1CLEdBQUcsbUNBQW1DLG1CQUFtQixHQUFHLGtCQUFrQixtQkFBbUIsR0FBRyw0QkFBNEIsa0JBQWtCLGtCQUFrQixHQUFHLHVCQUF1QixtQkFBbUIsR0FBRyxtQ0FBbUMsbUJBQW1CLEdBQUcsNkNBQTZDLDBCQUEwQixHQUFHLGtCQUFrQix5QkFBeUIsb0JBQW9CLHVCQUF1QixvQkFBb0IsaUJBQWlCLGdCQUFnQix5QkFBeUIsMkJBQTJCLEdBQUcsbUJBQW1CLHlCQUF5Qiw4QkFBOEIsb0JBQW9CLG1CQUFtQixvQkFBb0IsaUJBQWlCLHdCQUF3QixHQUFHLDBCQUEwQixtQkFBbUIscUJBQXFCLHVCQUF1QixvQkFBb0IsbUJBQW1CLG1CQUFtQix3QkFBd0IsMkJBQTJCLGdCQUFnQixvQkFBb0IsOEJBQThCLEdBQUcsOERBQThELG9CQUFvQixHQUFHLDRFQUE0RSxpQkFBaUIsR0FBRyxpQ0FBaUMsMkJBQTJCLHFCQUFxQix3QkFBd0IsMkJBQTJCLGFBQWEsY0FBYyxvQkFBb0IsbUJBQW1CLHFCQUFxQix5QkFBeUIscUJBQXFCLG1CQUFtQiw0Q0FBNEMseUNBQXlDLEdBQUcsOENBQThDLG1CQUFtQixtQkFBbUIsR0FBRyxxQkFBcUI7QUFDcGlRO0FBQ0EsK0RBQWUsdUJBQXVCLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3NsaWNrLWNhcm91c2VsL3NsaWNrL3NsaWNrLXRoZW1lLmNzcz8xOWQ2Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvY3NzLWxvYWRlci9zcmMvcnVudGltZS9hcGkuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0dFVF9VUkxfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL2Nzcy1sb2FkZXIvc3JjL3J1bnRpbWUvZ2V0VXJsLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9VUkxfSU1QT1JUXzBfX18gZnJvbSBcIi4vYWpheC1sb2FkZXIuZ2lmXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9VUkxfSU1QT1JUXzFfX18gZnJvbSBcIi4vZm9udHMvc2xpY2suZW90XCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9VUkxfSU1QT1JUXzJfX18gZnJvbSBcIi4vZm9udHMvc2xpY2sud29mZlwiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF8zX19fIGZyb20gXCIuL2ZvbnRzL3NsaWNrLnR0ZlwiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF80X19fIGZyb20gXCIuL2ZvbnRzL3NsaWNrLnN2Z1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKHRydWUpO1xudmFyIF9fX0NTU19MT0FERVJfVVJMX1JFUExBQ0VNRU5UXzBfX18gPSBfX19DU1NfTE9BREVSX0dFVF9VUkxfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF8wX19fKTtcbnZhciBfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8xX19fID0gX19fQ1NTX0xPQURFUl9HRVRfVVJMX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX1VSTF9JTVBPUlRfMV9fXyk7XG52YXIgX19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfMl9fXyA9IF9fX0NTU19MT0FERVJfR0VUX1VSTF9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9VUkxfSU1QT1JUXzFfX18sIHsgaGFzaDogXCI/I2llZml4XCIgfSk7XG52YXIgX19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfM19fXyA9IF9fX0NTU19MT0FERVJfR0VUX1VSTF9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9VUkxfSU1QT1JUXzJfX18pO1xudmFyIF9fX0NTU19MT0FERVJfVVJMX1JFUExBQ0VNRU5UXzRfX18gPSBfX19DU1NfTE9BREVSX0dFVF9VUkxfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF8zX19fKTtcbnZhciBfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF81X19fID0gX19fQ1NTX0xPQURFUl9HRVRfVVJMX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX1VSTF9JTVBPUlRfNF9fXywgeyBoYXNoOiBcIiNzbGlja1wiIH0pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiQGNoYXJzZXQgJ1VURi04JztcXG4vKiBTbGlkZXIgKi9cXG4uc2xpY2stbG9hZGluZyAuc2xpY2stbGlzdFxcbntcXG4gICAgYmFja2dyb3VuZDogI2ZmZiB1cmwoXCIgKyBfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8wX19fICsgXCIpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0O1xcbn1cXG5cXG4vKiBJY29ucyAqL1xcbkBmb250LWZhY2VcXG57XFxuICAgIGZvbnQtZmFtaWx5OiAnc2xpY2snO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XFxuXFxuICAgIHNyYzogdXJsKFwiICsgX19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfMV9fXyArIFwiKTtcXG4gICAgc3JjOiB1cmwoXCIgKyBfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8yX19fICsgXCIpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKFwiICsgX19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfM19fXyArIFwiKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKFwiICsgX19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfNF9fXyArIFwiKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybChcIiArIF9fX0NTU19MT0FERVJfVVJMX1JFUExBQ0VNRU5UXzVfX18gKyBcIikgZm9ybWF0KCdzdmcnKTtcXG59XFxuLyogQXJyb3dzICovXFxuLnNsaWNrLXByZXYsXFxuLnNsaWNrLW5leHRcXG57XFxuICAgIGZvbnQtc2l6ZTogMDtcXG4gICAgbGluZS1oZWlnaHQ6IDA7XFxuXFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdG9wOiA1MCU7XFxuXFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcblxcbiAgICB3aWR0aDogMjBweDtcXG4gICAgaGVpZ2h0OiAyMHB4O1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTtcXG5cXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcblxcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAgIGJvcmRlcjogbm9uZTtcXG4gICAgb3V0bGluZTogbm9uZTtcXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxufVxcbi5zbGljay1wcmV2OmhvdmVyLFxcbi5zbGljay1wcmV2OmZvY3VzLFxcbi5zbGljay1uZXh0OmhvdmVyLFxcbi5zbGljay1uZXh0OmZvY3VzXFxue1xcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAgIG91dGxpbmU6IG5vbmU7XFxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbn1cXG4uc2xpY2stcHJldjpob3ZlcjpiZWZvcmUsXFxuLnNsaWNrLXByZXY6Zm9jdXM6YmVmb3JlLFxcbi5zbGljay1uZXh0OmhvdmVyOmJlZm9yZSxcXG4uc2xpY2stbmV4dDpmb2N1czpiZWZvcmVcXG57XFxuICAgIG9wYWNpdHk6IDE7XFxufVxcbi5zbGljay1wcmV2LnNsaWNrLWRpc2FibGVkOmJlZm9yZSxcXG4uc2xpY2stbmV4dC5zbGljay1kaXNhYmxlZDpiZWZvcmVcXG57XFxuICAgIG9wYWNpdHk6IC4yNTtcXG59XFxuXFxuLnNsaWNrLXByZXY6YmVmb3JlLFxcbi5zbGljay1uZXh0OmJlZm9yZVxcbntcXG4gICAgZm9udC1mYW1pbHk6ICdzbGljayc7XFxuICAgIGZvbnQtc2l6ZTogMjBweDtcXG4gICAgbGluZS1oZWlnaHQ6IDE7XFxuXFxuICAgIG9wYWNpdHk6IC43NTtcXG4gICAgY29sb3I6IHdoaXRlO1xcblxcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG59XFxuXFxuLnNsaWNrLXByZXZcXG57XFxuICAgIGxlZnQ6IC0yNXB4O1xcbn1cXG5bZGlyPSdydGwnXSAuc2xpY2stcHJldlxcbntcXG4gICAgcmlnaHQ6IC0yNXB4O1xcbiAgICBsZWZ0OiBhdXRvO1xcbn1cXG4uc2xpY2stcHJldjpiZWZvcmVcXG57XFxuICAgIGNvbnRlbnQ6ICfihpAnO1xcbn1cXG5bZGlyPSdydGwnXSAuc2xpY2stcHJldjpiZWZvcmVcXG57XFxuICAgIGNvbnRlbnQ6ICfihpInO1xcbn1cXG5cXG4uc2xpY2stbmV4dFxcbntcXG4gICAgcmlnaHQ6IC0yNXB4O1xcbn1cXG5bZGlyPSdydGwnXSAuc2xpY2stbmV4dFxcbntcXG4gICAgcmlnaHQ6IGF1dG87XFxuICAgIGxlZnQ6IC0yNXB4O1xcbn1cXG4uc2xpY2stbmV4dDpiZWZvcmVcXG57XFxuICAgIGNvbnRlbnQ6ICfihpInO1xcbn1cXG5bZGlyPSdydGwnXSAuc2xpY2stbmV4dDpiZWZvcmVcXG57XFxuICAgIGNvbnRlbnQ6ICfihpAnO1xcbn1cXG5cXG4vKiBEb3RzICovXFxuLnNsaWNrLWRvdHRlZC5zbGljay1zbGlkZXJcXG57XFxuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XFxufVxcblxcbi5zbGljay1kb3RzXFxue1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIGJvdHRvbTogLTI1cHg7XFxuXFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcblxcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgbWFyZ2luOiAwO1xcblxcbiAgICBsaXN0LXN0eWxlOiBub25lO1xcblxcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxufVxcbi5zbGljay1kb3RzIGxpXFxue1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuXFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG5cXG4gICAgd2lkdGg6IDIwcHg7XFxuICAgIGhlaWdodDogMjBweDtcXG4gICAgbWFyZ2luOiAwIDVweDtcXG4gICAgcGFkZGluZzogMDtcXG5cXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG4uc2xpY2stZG90cyBsaSBidXR0b25cXG57XFxuICAgIGZvbnQtc2l6ZTogMDtcXG4gICAgbGluZS1oZWlnaHQ6IDA7XFxuXFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcblxcbiAgICB3aWR0aDogMjBweDtcXG4gICAgaGVpZ2h0OiAyMHB4O1xcbiAgICBwYWRkaW5nOiA1cHg7XFxuXFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG5cXG4gICAgY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICBib3JkZXI6IDA7XFxuICAgIG91dGxpbmU6IG5vbmU7XFxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbn1cXG4uc2xpY2stZG90cyBsaSBidXR0b246aG92ZXIsXFxuLnNsaWNrLWRvdHMgbGkgYnV0dG9uOmZvY3VzXFxue1xcbiAgICBvdXRsaW5lOiBub25lO1xcbn1cXG4uc2xpY2stZG90cyBsaSBidXR0b246aG92ZXI6YmVmb3JlLFxcbi5zbGljay1kb3RzIGxpIGJ1dHRvbjpmb2N1czpiZWZvcmVcXG57XFxuICAgIG9wYWNpdHk6IDE7XFxufVxcbi5zbGljay1kb3RzIGxpIGJ1dHRvbjpiZWZvcmVcXG57XFxuICAgIGZvbnQtZmFtaWx5OiAnc2xpY2snO1xcbiAgICBmb250LXNpemU6IDZweDtcXG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XFxuXFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdG9wOiAwO1xcbiAgICBsZWZ0OiAwO1xcblxcbiAgICB3aWR0aDogMjBweDtcXG4gICAgaGVpZ2h0OiAyMHB4O1xcblxcbiAgICBjb250ZW50OiAn4oCiJztcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xcblxcbiAgICBvcGFjaXR5OiAuMjU7XFxuICAgIGNvbG9yOiBibGFjaztcXG5cXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxufVxcbi5zbGljay1kb3RzIGxpLnNsaWNrLWFjdGl2ZSBidXR0b246YmVmb3JlXFxue1xcbiAgICBvcGFjaXR5OiAuNzU7XFxuICAgIGNvbG9yOiBibGFjaztcXG59XFxuXCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovL25vZGVfbW9kdWxlcy9zbGljay1jYXJvdXNlbC9zbGljay9zbGljay10aGVtZS5jc3NcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBQUEsZ0JBQWdCO0FBQ2hCLFdBQVc7QUFDWDs7SUFFSSxnRkFBaUU7QUFDckU7O0FBRUEsVUFBVTtBQUNWOztJQUVJLG9CQUFvQjtJQUNwQixtQkFBbUI7SUFDbkIsa0JBQWtCOztJQUVsQiw0Q0FBNkI7SUFDN0IsbVBBQXFNO0FBQ3pNO0FBQ0EsV0FBVztBQUNYOzs7SUFHSSxZQUFZO0lBQ1osY0FBYzs7SUFFZCxrQkFBa0I7SUFDbEIsUUFBUTs7SUFFUixjQUFjOztJQUVkLFdBQVc7SUFDWCxZQUFZO0lBQ1osVUFBVTtJQUdWLDZCQUE2Qjs7SUFFN0IsZUFBZTs7SUFFZixrQkFBa0I7SUFDbEIsWUFBWTtJQUNaLGFBQWE7SUFDYix1QkFBdUI7QUFDM0I7QUFDQTs7Ozs7SUFLSSxrQkFBa0I7SUFDbEIsYUFBYTtJQUNiLHVCQUF1QjtBQUMzQjtBQUNBOzs7OztJQUtJLFVBQVU7QUFDZDtBQUNBOzs7SUFHSSxZQUFZO0FBQ2hCOztBQUVBOzs7SUFHSSxvQkFBb0I7SUFDcEIsZUFBZTtJQUNmLGNBQWM7O0lBRWQsWUFBWTtJQUNaLFlBQVk7O0lBRVosbUNBQW1DO0lBQ25DLGtDQUFrQztBQUN0Qzs7QUFFQTs7SUFFSSxXQUFXO0FBQ2Y7QUFDQTs7SUFFSSxZQUFZO0lBQ1osVUFBVTtBQUNkO0FBQ0E7O0lBRUksWUFBWTtBQUNoQjtBQUNBOztJQUVJLFlBQVk7QUFDaEI7O0FBRUE7O0lBRUksWUFBWTtBQUNoQjtBQUNBOztJQUVJLFdBQVc7SUFDWCxXQUFXO0FBQ2Y7QUFDQTs7SUFFSSxZQUFZO0FBQ2hCO0FBQ0E7O0lBRUksWUFBWTtBQUNoQjs7QUFFQSxTQUFTO0FBQ1Q7O0lBRUksbUJBQW1CO0FBQ3ZCOztBQUVBOztJQUVJLGtCQUFrQjtJQUNsQixhQUFhOztJQUViLGNBQWM7O0lBRWQsV0FBVztJQUNYLFVBQVU7SUFDVixTQUFTOztJQUVULGdCQUFnQjs7SUFFaEIsa0JBQWtCO0FBQ3RCO0FBQ0E7O0lBRUksa0JBQWtCOztJQUVsQixxQkFBcUI7O0lBRXJCLFdBQVc7SUFDWCxZQUFZO0lBQ1osYUFBYTtJQUNiLFVBQVU7O0lBRVYsZUFBZTtBQUNuQjtBQUNBOztJQUVJLFlBQVk7SUFDWixjQUFjOztJQUVkLGNBQWM7O0lBRWQsV0FBVztJQUNYLFlBQVk7SUFDWixZQUFZOztJQUVaLGVBQWU7O0lBRWYsa0JBQWtCO0lBQ2xCLFNBQVM7SUFDVCxhQUFhO0lBQ2IsdUJBQXVCO0FBQzNCO0FBQ0E7OztJQUdJLGFBQWE7QUFDakI7QUFDQTs7O0lBR0ksVUFBVTtBQUNkO0FBQ0E7O0lBRUksb0JBQW9CO0lBQ3BCLGNBQWM7SUFDZCxpQkFBaUI7O0lBRWpCLGtCQUFrQjtJQUNsQixNQUFNO0lBQ04sT0FBTzs7SUFFUCxXQUFXO0lBQ1gsWUFBWTs7SUFFWixZQUFZO0lBQ1osa0JBQWtCOztJQUVsQixZQUFZO0lBQ1osWUFBWTs7SUFFWixtQ0FBbUM7SUFDbkMsa0NBQWtDO0FBQ3RDO0FBQ0E7O0lBRUksWUFBWTtJQUNaLFlBQVk7QUFDaEJcIixcInNvdXJjZXNDb250ZW50XCI6W1wiQGNoYXJzZXQgJ1VURi04JztcXG4vKiBTbGlkZXIgKi9cXG4uc2xpY2stbG9hZGluZyAuc2xpY2stbGlzdFxcbntcXG4gICAgYmFja2dyb3VuZDogI2ZmZiB1cmwoJy4vYWpheC1sb2FkZXIuZ2lmJykgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7XFxufVxcblxcbi8qIEljb25zICovXFxuQGZvbnQtZmFjZVxcbntcXG4gICAgZm9udC1mYW1pbHk6ICdzbGljayc7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcXG5cXG4gICAgc3JjOiB1cmwoJy4vZm9udHMvc2xpY2suZW90Jyk7XFxuICAgIHNyYzogdXJsKCcuL2ZvbnRzL3NsaWNrLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnLi9mb250cy9zbGljay53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnLi9mb250cy9zbGljay50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnLi9mb250cy9zbGljay5zdmcjc2xpY2snKSBmb3JtYXQoJ3N2ZycpO1xcbn1cXG4vKiBBcnJvd3MgKi9cXG4uc2xpY2stcHJldixcXG4uc2xpY2stbmV4dFxcbntcXG4gICAgZm9udC1zaXplOiAwO1xcbiAgICBsaW5lLWhlaWdodDogMDtcXG5cXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0b3A6IDUwJTtcXG5cXG4gICAgZGlzcGxheTogYmxvY2s7XFxuXFxuICAgIHdpZHRoOiAyMHB4O1xcbiAgICBoZWlnaHQ6IDIwcHg7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XFxuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTtcXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XFxuXFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG5cXG4gICAgY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICBib3JkZXI6IG5vbmU7XFxuICAgIG91dGxpbmU6IG5vbmU7XFxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbn1cXG4uc2xpY2stcHJldjpob3ZlcixcXG4uc2xpY2stcHJldjpmb2N1cyxcXG4uc2xpY2stbmV4dDpob3ZlcixcXG4uc2xpY2stbmV4dDpmb2N1c1xcbntcXG4gICAgY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICBvdXRsaW5lOiBub25lO1xcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG59XFxuLnNsaWNrLXByZXY6aG92ZXI6YmVmb3JlLFxcbi5zbGljay1wcmV2OmZvY3VzOmJlZm9yZSxcXG4uc2xpY2stbmV4dDpob3ZlcjpiZWZvcmUsXFxuLnNsaWNrLW5leHQ6Zm9jdXM6YmVmb3JlXFxue1xcbiAgICBvcGFjaXR5OiAxO1xcbn1cXG4uc2xpY2stcHJldi5zbGljay1kaXNhYmxlZDpiZWZvcmUsXFxuLnNsaWNrLW5leHQuc2xpY2stZGlzYWJsZWQ6YmVmb3JlXFxue1xcbiAgICBvcGFjaXR5OiAuMjU7XFxufVxcblxcbi5zbGljay1wcmV2OmJlZm9yZSxcXG4uc2xpY2stbmV4dDpiZWZvcmVcXG57XFxuICAgIGZvbnQtZmFtaWx5OiAnc2xpY2snO1xcbiAgICBmb250LXNpemU6IDIwcHg7XFxuICAgIGxpbmUtaGVpZ2h0OiAxO1xcblxcbiAgICBvcGFjaXR5OiAuNzU7XFxuICAgIGNvbG9yOiB3aGl0ZTtcXG5cXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxufVxcblxcbi5zbGljay1wcmV2XFxue1xcbiAgICBsZWZ0OiAtMjVweDtcXG59XFxuW2Rpcj0ncnRsJ10gLnNsaWNrLXByZXZcXG57XFxuICAgIHJpZ2h0OiAtMjVweDtcXG4gICAgbGVmdDogYXV0bztcXG59XFxuLnNsaWNrLXByZXY6YmVmb3JlXFxue1xcbiAgICBjb250ZW50OiAn4oaQJztcXG59XFxuW2Rpcj0ncnRsJ10gLnNsaWNrLXByZXY6YmVmb3JlXFxue1xcbiAgICBjb250ZW50OiAn4oaSJztcXG59XFxuXFxuLnNsaWNrLW5leHRcXG57XFxuICAgIHJpZ2h0OiAtMjVweDtcXG59XFxuW2Rpcj0ncnRsJ10gLnNsaWNrLW5leHRcXG57XFxuICAgIHJpZ2h0OiBhdXRvO1xcbiAgICBsZWZ0OiAtMjVweDtcXG59XFxuLnNsaWNrLW5leHQ6YmVmb3JlXFxue1xcbiAgICBjb250ZW50OiAn4oaSJztcXG59XFxuW2Rpcj0ncnRsJ10gLnNsaWNrLW5leHQ6YmVmb3JlXFxue1xcbiAgICBjb250ZW50OiAn4oaQJztcXG59XFxuXFxuLyogRG90cyAqL1xcbi5zbGljay1kb3R0ZWQuc2xpY2stc2xpZGVyXFxue1xcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xcbn1cXG5cXG4uc2xpY2stZG90c1xcbntcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICBib3R0b206IC0yNXB4O1xcblxcbiAgICBkaXNwbGF5OiBibG9jaztcXG5cXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIG1hcmdpbjogMDtcXG5cXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcXG5cXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xcbn1cXG4uc2xpY2stZG90cyBsaVxcbntcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcblxcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuXFxuICAgIHdpZHRoOiAyMHB4O1xcbiAgICBoZWlnaHQ6IDIwcHg7XFxuICAgIG1hcmdpbjogMCA1cHg7XFxuICAgIHBhZGRpbmc6IDA7XFxuXFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuLnNsaWNrLWRvdHMgbGkgYnV0dG9uXFxue1xcbiAgICBmb250LXNpemU6IDA7XFxuICAgIGxpbmUtaGVpZ2h0OiAwO1xcblxcbiAgICBkaXNwbGF5OiBibG9jaztcXG5cXG4gICAgd2lkdGg6IDIwcHg7XFxuICAgIGhlaWdodDogMjBweDtcXG4gICAgcGFkZGluZzogNXB4O1xcblxcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuXFxuICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBvdXRsaW5lOiBub25lO1xcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG59XFxuLnNsaWNrLWRvdHMgbGkgYnV0dG9uOmhvdmVyLFxcbi5zbGljay1kb3RzIGxpIGJ1dHRvbjpmb2N1c1xcbntcXG4gICAgb3V0bGluZTogbm9uZTtcXG59XFxuLnNsaWNrLWRvdHMgbGkgYnV0dG9uOmhvdmVyOmJlZm9yZSxcXG4uc2xpY2stZG90cyBsaSBidXR0b246Zm9jdXM6YmVmb3JlXFxue1xcbiAgICBvcGFjaXR5OiAxO1xcbn1cXG4uc2xpY2stZG90cyBsaSBidXR0b246YmVmb3JlXFxue1xcbiAgICBmb250LWZhbWlseTogJ3NsaWNrJztcXG4gICAgZm9udC1zaXplOiA2cHg7XFxuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xcblxcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHRvcDogMDtcXG4gICAgbGVmdDogMDtcXG5cXG4gICAgd2lkdGg6IDIwcHg7XFxuICAgIGhlaWdodDogMjBweDtcXG5cXG4gICAgY29udGVudDogJ+KAoic7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG5cXG4gICAgb3BhY2l0eTogLjI1O1xcbiAgICBjb2xvcjogYmxhY2s7XFxuXFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbn1cXG4uc2xpY2stZG90cyBsaS5zbGljay1hY3RpdmUgYnV0dG9uOmJlZm9yZVxcbntcXG4gICAgb3BhY2l0eTogLjc1O1xcbiAgICBjb2xvcjogYmxhY2s7XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick-theme.css\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick.css": +/*!*********************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick.css ***! + \*********************************************************************************************************************************************************************************************************************************************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../next/dist/build/webpack/loaders/css-loader/src/runtime/api.js */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js\");\n/* harmony import */ var _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);\n// Imports\n\nvar ___CSS_LOADER_EXPORT___ = _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/* Slider */\\n.slick-slider\\n{\\n position: relative;\\n\\n display: block;\\n box-sizing: border-box;\\n\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n\\n -webkit-touch-callout: none;\\n -khtml-user-select: none;\\n touch-action: pan-y;\\n -webkit-tap-highlight-color: transparent;\\n}\\n\\n.slick-list\\n{\\n position: relative;\\n\\n display: block;\\n overflow: hidden;\\n\\n margin: 0;\\n padding: 0;\\n}\\n.slick-list:focus\\n{\\n outline: none;\\n}\\n.slick-list.dragging\\n{\\n cursor: pointer;\\n cursor: hand;\\n}\\n\\n.slick-slider .slick-track,\\n.slick-slider .slick-list\\n{\\n transform: translate3d(0, 0, 0);\\n}\\n\\n.slick-track\\n{\\n position: relative;\\n top: 0;\\n left: 0;\\n\\n display: block;\\n margin-left: auto;\\n margin-right: auto;\\n}\\n.slick-track:before,\\n.slick-track:after\\n{\\n display: table;\\n\\n content: '';\\n}\\n.slick-track:after\\n{\\n clear: both;\\n}\\n.slick-loading .slick-track\\n{\\n visibility: hidden;\\n}\\n\\n.slick-slide\\n{\\n display: none;\\n float: left;\\n\\n height: 100%;\\n min-height: 1px;\\n}\\n[dir='rtl'] .slick-slide\\n{\\n float: right;\\n}\\n.slick-slide img\\n{\\n display: block;\\n}\\n.slick-slide.slick-loading img\\n{\\n display: none;\\n}\\n.slick-slide.dragging img\\n{\\n pointer-events: none;\\n}\\n.slick-initialized .slick-slide\\n{\\n display: block;\\n}\\n.slick-loading .slick-slide\\n{\\n visibility: hidden;\\n}\\n.slick-vertical .slick-slide\\n{\\n display: block;\\n\\n height: auto;\\n\\n border: 1px solid transparent;\\n}\\n.slick-arrow.slick-hidden {\\n display: none;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://node_modules/slick-carousel/slick/slick.css\"],\"names\":[],\"mappings\":\"AAAA,WAAW;AACX;;IAEI,kBAAkB;;IAElB,cAAc;IACd,sBAAsB;;IAEtB,yBAAyB;OACtB,sBAAsB;QACrB,qBAAqB;YACjB,iBAAiB;;IAEzB,2BAA2B;IAC3B,wBAAwB;IAEpB,mBAAmB;IACvB,wCAAwC;AAC5C;;AAEA;;IAEI,kBAAkB;;IAElB,cAAc;IACd,gBAAgB;;IAEhB,SAAS;IACT,UAAU;AACd;AACA;;IAEI,aAAa;AACjB;AACA;;IAEI,eAAe;IACf,YAAY;AAChB;;AAEA;;;IAOY,+BAA+B;AAC3C;;AAEA;;IAEI,kBAAkB;IAClB,MAAM;IACN,OAAO;;IAEP,cAAc;IACd,iBAAiB;IACjB,kBAAkB;AACtB;AACA;;;IAGI,cAAc;;IAEd,WAAW;AACf;AACA;;IAEI,WAAW;AACf;AACA;;IAEI,kBAAkB;AACtB;;AAEA;;IAEI,aAAa;IACb,WAAW;;IAEX,YAAY;IACZ,eAAe;AACnB;AACA;;IAEI,YAAY;AAChB;AACA;;IAEI,cAAc;AAClB;AACA;;IAEI,aAAa;AACjB;AACA;;IAEI,oBAAoB;AACxB;AACA;;IAEI,cAAc;AAClB;AACA;;IAEI,kBAAkB;AACtB;AACA;;IAEI,cAAc;;IAEd,YAAY;;IAEZ,6BAA6B;AACjC;AACA;IACI,aAAa;AACjB\",\"sourcesContent\":[\"/* Slider */\\n.slick-slider\\n{\\n position: relative;\\n\\n display: block;\\n box-sizing: border-box;\\n\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n\\n -webkit-touch-callout: none;\\n -khtml-user-select: none;\\n -ms-touch-action: pan-y;\\n touch-action: pan-y;\\n -webkit-tap-highlight-color: transparent;\\n}\\n\\n.slick-list\\n{\\n position: relative;\\n\\n display: block;\\n overflow: hidden;\\n\\n margin: 0;\\n padding: 0;\\n}\\n.slick-list:focus\\n{\\n outline: none;\\n}\\n.slick-list.dragging\\n{\\n cursor: pointer;\\n cursor: hand;\\n}\\n\\n.slick-slider .slick-track,\\n.slick-slider .slick-list\\n{\\n -webkit-transform: translate3d(0, 0, 0);\\n -moz-transform: translate3d(0, 0, 0);\\n -ms-transform: translate3d(0, 0, 0);\\n -o-transform: translate3d(0, 0, 0);\\n transform: translate3d(0, 0, 0);\\n}\\n\\n.slick-track\\n{\\n position: relative;\\n top: 0;\\n left: 0;\\n\\n display: block;\\n margin-left: auto;\\n margin-right: auto;\\n}\\n.slick-track:before,\\n.slick-track:after\\n{\\n display: table;\\n\\n content: '';\\n}\\n.slick-track:after\\n{\\n clear: both;\\n}\\n.slick-loading .slick-track\\n{\\n visibility: hidden;\\n}\\n\\n.slick-slide\\n{\\n display: none;\\n float: left;\\n\\n height: 100%;\\n min-height: 1px;\\n}\\n[dir='rtl'] .slick-slide\\n{\\n float: right;\\n}\\n.slick-slide img\\n{\\n display: block;\\n}\\n.slick-slide.slick-loading img\\n{\\n display: none;\\n}\\n.slick-slide.dragging img\\n{\\n pointer-events: none;\\n}\\n.slick-initialized .slick-slide\\n{\\n display: block;\\n}\\n.slick-loading .slick-slide\\n{\\n visibility: hidden;\\n}\\n.slick-vertical .slick-slide\\n{\\n display: block;\\n\\n height: auto;\\n\\n border: 1px solid transparent;\\n}\\n.slick-arrow.slick-hidden {\\n display: none;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMV0hLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3NsaWNrLWNhcm91c2VsL3NsaWNrL3NsaWNrLmNzcy5qcyIsIm1hcHBpbmdzIjoiOzs7QUFBQTtBQUM4RztBQUM5Ryw4QkFBOEIscUdBQTJCO0FBQ3pEO0FBQ0Esd0VBQXdFLHlCQUF5Qix1QkFBdUIsNkJBQTZCLGtDQUFrQyxnQ0FBZ0MsZ0NBQWdDLGdDQUFnQyxvQ0FBb0MsK0JBQStCLDBCQUEwQiwrQ0FBK0MsR0FBRyxrQkFBa0IseUJBQXlCLHVCQUF1Qix1QkFBdUIsa0JBQWtCLGlCQUFpQixHQUFHLHNCQUFzQixvQkFBb0IsR0FBRyx5QkFBeUIsc0JBQXNCLG1CQUFtQixHQUFHLDZEQUE2RCxzQ0FBc0MsR0FBRyxtQkFBbUIseUJBQXlCLGFBQWEsY0FBYyx1QkFBdUIsd0JBQXdCLHlCQUF5QixHQUFHLDZDQUE2QyxxQkFBcUIsb0JBQW9CLEdBQUcsdUJBQXVCLGtCQUFrQixHQUFHLGdDQUFnQyx5QkFBeUIsR0FBRyxtQkFBbUIsb0JBQW9CLGtCQUFrQixxQkFBcUIsc0JBQXNCLEdBQUcsNkJBQTZCLG1CQUFtQixHQUFHLHFCQUFxQixxQkFBcUIsR0FBRyxtQ0FBbUMsb0JBQW9CLEdBQUcsOEJBQThCLDJCQUEyQixHQUFHLG9DQUFvQyxxQkFBcUIsR0FBRyxnQ0FBZ0MseUJBQXlCLEdBQUcsaUNBQWlDLHFCQUFxQixxQkFBcUIsc0NBQXNDLEdBQUcsNkJBQTZCLG9CQUFvQixHQUFHLFNBQVMsaUhBQWlILE1BQU0sYUFBYSxXQUFXLGFBQWEsYUFBYSxhQUFhLGFBQWEsY0FBYyxhQUFhLGFBQWEsYUFBYSxhQUFhLE9BQU8sTUFBTSxhQUFhLFdBQVcsYUFBYSxXQUFXLFVBQVUsS0FBSyxNQUFNLFVBQVUsTUFBTSxNQUFNLFVBQVUsVUFBVSxPQUFPLE9BQU8sWUFBWSxPQUFPLE1BQU0sWUFBWSxXQUFXLFdBQVcsVUFBVSxZQUFZLGFBQWEsTUFBTSxPQUFPLFdBQVcsVUFBVSxLQUFLLE1BQU0sVUFBVSxLQUFLLE1BQU0sWUFBWSxPQUFPLE1BQU0sVUFBVSxXQUFXLFVBQVUsVUFBVSxNQUFNLE1BQU0sVUFBVSxNQUFNLE1BQU0sVUFBVSxNQUFNLE1BQU0sVUFBVSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sVUFBVSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sV0FBVyxXQUFXLFlBQVksTUFBTSxLQUFLLFVBQVUsd0RBQXdELHlCQUF5Qix1QkFBdUIsNkJBQTZCLGtDQUFrQyxnQ0FBZ0MsZ0NBQWdDLGdDQUFnQyxvQ0FBb0MsK0JBQStCLDhCQUE4Qiw4QkFBOEIsK0NBQStDLEdBQUcsa0JBQWtCLHlCQUF5Qix1QkFBdUIsdUJBQXVCLGtCQUFrQixpQkFBaUIsR0FBRyxzQkFBc0Isb0JBQW9CLEdBQUcseUJBQXlCLHNCQUFzQixtQkFBbUIsR0FBRyw2REFBNkQsOENBQThDLDhDQUE4Qyw4Q0FBOEMsOENBQThDLDhDQUE4QyxHQUFHLG1CQUFtQix5QkFBeUIsYUFBYSxjQUFjLHVCQUF1Qix3QkFBd0IseUJBQXlCLEdBQUcsNkNBQTZDLHFCQUFxQixvQkFBb0IsR0FBRyx1QkFBdUIsa0JBQWtCLEdBQUcsZ0NBQWdDLHlCQUF5QixHQUFHLG1CQUFtQixvQkFBb0Isa0JBQWtCLHFCQUFxQixzQkFBc0IsR0FBRyw2QkFBNkIsbUJBQW1CLEdBQUcscUJBQXFCLHFCQUFxQixHQUFHLG1DQUFtQyxvQkFBb0IsR0FBRyw4QkFBOEIsMkJBQTJCLEdBQUcsb0NBQW9DLHFCQUFxQixHQUFHLGdDQUFnQyx5QkFBeUIsR0FBRyxpQ0FBaUMscUJBQXFCLHFCQUFxQixzQ0FBc0MsR0FBRyw2QkFBNkIsb0JBQW9CLEdBQUcscUJBQXFCO0FBQ3Q0STtBQUNBLCtEQUFlLHVCQUF1QixFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zbGljay1jYXJvdXNlbC9zbGljay9zbGljay5jc3M/NDZmMyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL2Nzcy1sb2FkZXIvc3JjL3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18odHJ1ZSk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCIvKiBTbGlkZXIgKi9cXG4uc2xpY2stc2xpZGVyXFxue1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuXFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcblxcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xcblxcbiAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XFxuICAgIC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgdG91Y2gtYWN0aW9uOiBwYW4teTtcXG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuXFxuLnNsaWNrLWxpc3RcXG57XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG5cXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuXFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogMDtcXG59XFxuLnNsaWNrLWxpc3Q6Zm9jdXNcXG57XFxuICAgIG91dGxpbmU6IG5vbmU7XFxufVxcbi5zbGljay1saXN0LmRyYWdnaW5nXFxue1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgIGN1cnNvcjogaGFuZDtcXG59XFxuXFxuLnNsaWNrLXNsaWRlciAuc2xpY2stdHJhY2ssXFxuLnNsaWNrLXNsaWRlciAuc2xpY2stbGlzdFxcbntcXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcXG59XFxuXFxuLnNsaWNrLXRyYWNrXFxue1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIHRvcDogMDtcXG4gICAgbGVmdDogMDtcXG5cXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XFxufVxcbi5zbGljay10cmFjazpiZWZvcmUsXFxuLnNsaWNrLXRyYWNrOmFmdGVyXFxue1xcbiAgICBkaXNwbGF5OiB0YWJsZTtcXG5cXG4gICAgY29udGVudDogJyc7XFxufVxcbi5zbGljay10cmFjazphZnRlclxcbntcXG4gICAgY2xlYXI6IGJvdGg7XFxufVxcbi5zbGljay1sb2FkaW5nIC5zbGljay10cmFja1xcbntcXG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xcbn1cXG5cXG4uc2xpY2stc2xpZGVcXG57XFxuICAgIGRpc3BsYXk6IG5vbmU7XFxuICAgIGZsb2F0OiBsZWZ0O1xcblxcbiAgICBoZWlnaHQ6IDEwMCU7XFxuICAgIG1pbi1oZWlnaHQ6IDFweDtcXG59XFxuW2Rpcj0ncnRsJ10gLnNsaWNrLXNsaWRlXFxue1xcbiAgICBmbG9hdDogcmlnaHQ7XFxufVxcbi5zbGljay1zbGlkZSBpbWdcXG57XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbn1cXG4uc2xpY2stc2xpZGUuc2xpY2stbG9hZGluZyBpbWdcXG57XFxuICAgIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5zbGljay1zbGlkZS5kcmFnZ2luZyBpbWdcXG57XFxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbn1cXG4uc2xpY2staW5pdGlhbGl6ZWQgLnNsaWNrLXNsaWRlXFxue1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG59XFxuLnNsaWNrLWxvYWRpbmcgLnNsaWNrLXNsaWRlXFxue1xcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XFxufVxcbi5zbGljay12ZXJ0aWNhbCAuc2xpY2stc2xpZGVcXG57XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcblxcbiAgICBoZWlnaHQ6IGF1dG87XFxuXFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xcbn1cXG4uc2xpY2stYXJyb3cuc2xpY2staGlkZGVuIHtcXG4gICAgZGlzcGxheTogbm9uZTtcXG59XFxuXCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovL25vZGVfbW9kdWxlcy9zbGljay1jYXJvdXNlbC9zbGljay9zbGljay5jc3NcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBQUEsV0FBVztBQUNYOztJQUVJLGtCQUFrQjs7SUFFbEIsY0FBYztJQUNkLHNCQUFzQjs7SUFFdEIseUJBQXlCO09BQ3RCLHNCQUFzQjtRQUNyQixxQkFBcUI7WUFDakIsaUJBQWlCOztJQUV6QiwyQkFBMkI7SUFDM0Isd0JBQXdCO0lBRXBCLG1CQUFtQjtJQUN2Qix3Q0FBd0M7QUFDNUM7O0FBRUE7O0lBRUksa0JBQWtCOztJQUVsQixjQUFjO0lBQ2QsZ0JBQWdCOztJQUVoQixTQUFTO0lBQ1QsVUFBVTtBQUNkO0FBQ0E7O0lBRUksYUFBYTtBQUNqQjtBQUNBOztJQUVJLGVBQWU7SUFDZixZQUFZO0FBQ2hCOztBQUVBOzs7SUFPWSwrQkFBK0I7QUFDM0M7O0FBRUE7O0lBRUksa0JBQWtCO0lBQ2xCLE1BQU07SUFDTixPQUFPOztJQUVQLGNBQWM7SUFDZCxpQkFBaUI7SUFDakIsa0JBQWtCO0FBQ3RCO0FBQ0E7OztJQUdJLGNBQWM7O0lBRWQsV0FBVztBQUNmO0FBQ0E7O0lBRUksV0FBVztBQUNmO0FBQ0E7O0lBRUksa0JBQWtCO0FBQ3RCOztBQUVBOztJQUVJLGFBQWE7SUFDYixXQUFXOztJQUVYLFlBQVk7SUFDWixlQUFlO0FBQ25CO0FBQ0E7O0lBRUksWUFBWTtBQUNoQjtBQUNBOztJQUVJLGNBQWM7QUFDbEI7QUFDQTs7SUFFSSxhQUFhO0FBQ2pCO0FBQ0E7O0lBRUksb0JBQW9CO0FBQ3hCO0FBQ0E7O0lBRUksY0FBYztBQUNsQjtBQUNBOztJQUVJLGtCQUFrQjtBQUN0QjtBQUNBOztJQUVJLGNBQWM7O0lBRWQsWUFBWTs7SUFFWiw2QkFBNkI7QUFDakM7QUFDQTtJQUNJLGFBQWE7QUFDakJcIixcInNvdXJjZXNDb250ZW50XCI6W1wiLyogU2xpZGVyICovXFxuLnNsaWNrLXNsaWRlclxcbntcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcblxcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG5cXG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG5cXG4gICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xcbiAgICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgIC1tcy10b3VjaC1hY3Rpb246IHBhbi15O1xcbiAgICAgICAgdG91Y2gtYWN0aW9uOiBwYW4teTtcXG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuXFxuLnNsaWNrLWxpc3RcXG57XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG5cXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuXFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogMDtcXG59XFxuLnNsaWNrLWxpc3Q6Zm9jdXNcXG57XFxuICAgIG91dGxpbmU6IG5vbmU7XFxufVxcbi5zbGljay1saXN0LmRyYWdnaW5nXFxue1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgIGN1cnNvcjogaGFuZDtcXG59XFxuXFxuLnNsaWNrLXNsaWRlciAuc2xpY2stdHJhY2ssXFxuLnNsaWNrLXNsaWRlciAuc2xpY2stbGlzdFxcbntcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xcbiAgICAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XFxuICAgICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcXG4gICAgICAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XFxufVxcblxcbi5zbGljay10cmFja1xcbntcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICB0b3A6IDA7XFxuICAgIGxlZnQ6IDA7XFxuXFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcXG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xcbn1cXG4uc2xpY2stdHJhY2s6YmVmb3JlLFxcbi5zbGljay10cmFjazphZnRlclxcbntcXG4gICAgZGlzcGxheTogdGFibGU7XFxuXFxuICAgIGNvbnRlbnQ6ICcnO1xcbn1cXG4uc2xpY2stdHJhY2s6YWZ0ZXJcXG57XFxuICAgIGNsZWFyOiBib3RoO1xcbn1cXG4uc2xpY2stbG9hZGluZyAuc2xpY2stdHJhY2tcXG57XFxuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcXG59XFxuXFxuLnNsaWNrLXNsaWRlXFxue1xcbiAgICBkaXNwbGF5OiBub25lO1xcbiAgICBmbG9hdDogbGVmdDtcXG5cXG4gICAgaGVpZ2h0OiAxMDAlO1xcbiAgICBtaW4taGVpZ2h0OiAxcHg7XFxufVxcbltkaXI9J3J0bCddIC5zbGljay1zbGlkZVxcbntcXG4gICAgZmxvYXQ6IHJpZ2h0O1xcbn1cXG4uc2xpY2stc2xpZGUgaW1nXFxue1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG59XFxuLnNsaWNrLXNsaWRlLnNsaWNrLWxvYWRpbmcgaW1nXFxue1xcbiAgICBkaXNwbGF5OiBub25lO1xcbn1cXG4uc2xpY2stc2xpZGUuZHJhZ2dpbmcgaW1nXFxue1xcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG59XFxuLnNsaWNrLWluaXRpYWxpemVkIC5zbGljay1zbGlkZVxcbntcXG4gICAgZGlzcGxheTogYmxvY2s7XFxufVxcbi5zbGljay1sb2FkaW5nIC5zbGljay1zbGlkZVxcbntcXG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xcbn1cXG4uc2xpY2stdmVydGljYWwgLnNsaWNrLXNsaWRlXFxue1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG5cXG4gICAgaGVpZ2h0OiBhdXRvO1xcblxcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcXG59XFxuLnNsaWNrLWFycm93LnNsaWNrLWhpZGRlbiB7XFxuICAgIGRpc3BsYXk6IG5vbmU7XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick.css\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/swiper/modules/effect-fade/effect-fade.min.css": +/*!*************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/swiper/modules/effect-fade/effect-fade.min.css ***! + \*************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../next/dist/build/webpack/loaders/css-loader/src/runtime/api.js */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js\");\n/* harmony import */ var _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);\n// Imports\n\nvar ___CSS_LOADER_EXPORT___ = _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".swiper-fade.swiper-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-fade .swiper-slide-active,.swiper-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}\", \"\",{\"version\":3,\"sources\":[\"webpack://node_modules/swiper/modules/effect-fade/effect-fade.min.css\"],\"names\":[],\"mappings\":\"AAAA,4CAA4C,mCAAmC,CAAC,2BAA2B,mBAAmB,CAAC,2BAA2B,CAAC,yCAAyC,mBAAmB,CAAC,yFAAyF,mBAAmB\",\"sourcesContent\":[\".swiper-fade.swiper-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-fade .swiper-slide-active,.swiper-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMV0hLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3N3aXBlci9tb2R1bGVzL2VmZmVjdC1mYWRlL2VmZmVjdC1mYWRlLm1pbi5jc3MuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQUE7QUFDaUg7QUFDakgsOEJBQThCLHFHQUEyQjtBQUN6RDtBQUNBLHNGQUFzRixvQ0FBb0MsMkJBQTJCLG9CQUFvQiw0QkFBNEIseUNBQXlDLG9CQUFvQix5RkFBeUYsb0JBQW9CLE9BQU8sK1FBQStRLG9DQUFvQywyQkFBMkIsb0JBQW9CLDRCQUE0Qix5Q0FBeUMsb0JBQW9CLHlGQUF5RixvQkFBb0IsbUJBQW1CO0FBQ2o3QjtBQUNBLCtEQUFlLHVCQUF1QixFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zd2lwZXIvbW9kdWxlcy9lZmZlY3QtZmFkZS9lZmZlY3QtZmFkZS5taW4uY3NzP2VkMWQiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKHRydWUpO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiLnN3aXBlci1mYWRlLnN3aXBlci1mcmVlLW1vZGUgLnN3aXBlci1zbGlkZXt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLW91dH0uc3dpcGVyLWZhZGUgLnN3aXBlci1zbGlkZXtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb24tcHJvcGVydHk6b3BhY2l0eX0uc3dpcGVyLWZhZGUgLnN3aXBlci1zbGlkZSAuc3dpcGVyLXNsaWRle3BvaW50ZXItZXZlbnRzOm5vbmV9LnN3aXBlci1mYWRlIC5zd2lwZXItc2xpZGUtYWN0aXZlLC5zd2lwZXItZmFkZSAuc3dpcGVyLXNsaWRlLWFjdGl2ZSAuc3dpcGVyLXNsaWRlLWFjdGl2ZXtwb2ludGVyLWV2ZW50czphdXRvfVwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMvZWZmZWN0LWZhZGUvZWZmZWN0LWZhZGUubWluLmNzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQSw0Q0FBNEMsbUNBQW1DLENBQUMsMkJBQTJCLG1CQUFtQixDQUFDLDJCQUEyQixDQUFDLHlDQUF5QyxtQkFBbUIsQ0FBQyx5RkFBeUYsbUJBQW1CXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIi5zd2lwZXItZmFkZS5zd2lwZXItZnJlZS1tb2RlIC5zd2lwZXItc2xpZGV7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1vdXR9LnN3aXBlci1mYWRlIC5zd2lwZXItc2xpZGV7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uLXByb3BlcnR5Om9wYWNpdHl9LnN3aXBlci1mYWRlIC5zd2lwZXItc2xpZGUgLnN3aXBlci1zbGlkZXtwb2ludGVyLWV2ZW50czpub25lfS5zd2lwZXItZmFkZSAuc3dpcGVyLXNsaWRlLWFjdGl2ZSwuc3dpcGVyLWZhZGUgLnN3aXBlci1zbGlkZS1hY3RpdmUgLnN3aXBlci1zbGlkZS1hY3RpdmV7cG9pbnRlci1ldmVudHM6YXV0b31cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/swiper/modules/effect-fade/effect-fade.min.css\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/swiper/modules/navigation/navigation.min.css": +/*!***********************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/swiper/modules/navigation/navigation.min.css ***! + \***********************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../next/dist/build/webpack/loaders/css-loader/src/runtime/api.js */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js\");\n/* harmony import */ var _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);\n// Imports\n\nvar ___CSS_LOADER_EXPORT___ = _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:50%;width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size)/ 2));z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next:after,.swiper-button-prev:after{font-family:swiper-icons;font-size:var(--swiper-navigation-size);text-transform:none!important;letter-spacing:0;text-transform:none;font-feature-settings:normal, ;font-variant:normal;font-variant:initial;line-height:1}.swiper-button-prev,.swiper-rtl .swiper-button-next{left:10px;right:auto}.swiper-button-prev:after,.swiper-rtl .swiper-button-next:after{content:'prev'}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:10px;left:auto}.swiper-button-next:after,.swiper-rtl .swiper-button-prev:after{content:'next'}.swiper-button-lock{display:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://node_modules/swiper/modules/navigation/navigation.min.css\"],\"names\":[],\"mappings\":\"AAAA,MAAM,6BAA6B,CAAC,wCAAwC,iBAAiB,CAAC,OAAO,CAAC,kDAAkD,CAAC,oCAAoC,CAAC,yDAAyD,CAAC,UAAU,CAAC,cAAc,CAAC,YAAY,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,8DAA8D,CAAC,sFAAsF,WAAW,CAAC,WAAW,CAAC,mBAAmB,CAAC,oDAAoD,wBAAwB,CAAC,uCAAuC,CAAC,6BAA6B,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,8BAAoB,CAApB,mBAAoB,CAApB,oBAAoB,CAAC,aAAa,CAAC,oDAAoD,SAAS,CAAC,UAAU,CAAC,gEAAgE,cAAc,CAAC,oDAAoD,UAAU,CAAC,SAAS,CAAC,gEAAgE,cAAc,CAAC,oBAAoB,YAAY\",\"sourcesContent\":[\":root{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:50%;width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size)/ 2));z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next:after,.swiper-button-prev:after{font-family:swiper-icons;font-size:var(--swiper-navigation-size);text-transform:none!important;letter-spacing:0;text-transform:none;font-variant:initial;line-height:1}.swiper-button-prev,.swiper-rtl .swiper-button-next{left:10px;right:auto}.swiper-button-prev:after,.swiper-rtl .swiper-button-next:after{content:'prev'}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:10px;left:auto}.swiper-button-next:after,.swiper-rtl .swiper-button-prev:after{content:'next'}.swiper-button-lock{display:none}\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMV0hLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3N3aXBlci9tb2R1bGVzL25hdmlnYXRpb24vbmF2aWdhdGlvbi5taW4uY3NzLmpzIiwibWFwcGluZ3MiOiI7OztBQUFBO0FBQ2lIO0FBQ2pILDhCQUE4QixxR0FBMkI7QUFDekQ7QUFDQSxnREFBZ0QsOEJBQThCLHdDQUF3QyxrQkFBa0IsUUFBUSxtREFBbUQscUNBQXFDLDBEQUEwRCxXQUFXLGVBQWUsYUFBYSxtQkFBbUIsdUJBQXVCLCtEQUErRCxzRkFBc0YsWUFBWSxZQUFZLG9CQUFvQixvREFBb0QseUJBQXlCLHdDQUF3Qyw4QkFBOEIsaUJBQWlCLG9CQUFvQiwrQkFBK0Isb0JBQW9CLHFCQUFxQixjQUFjLG9EQUFvRCxVQUFVLFdBQVcsZ0VBQWdFLGVBQWUsb0RBQW9ELFdBQVcsVUFBVSxnRUFBZ0UsZUFBZSxvQkFBb0IsYUFBYSxPQUFPLHNpQkFBc2lCLDhCQUE4Qix3Q0FBd0Msa0JBQWtCLFFBQVEsbURBQW1ELHFDQUFxQywwREFBMEQsV0FBVyxlQUFlLGFBQWEsbUJBQW1CLHVCQUF1QiwrREFBK0Qsc0ZBQXNGLFlBQVksWUFBWSxvQkFBb0Isb0RBQW9ELHlCQUF5Qix3Q0FBd0MsOEJBQThCLGlCQUFpQixvQkFBb0IscUJBQXFCLGNBQWMsb0RBQW9ELFVBQVUsV0FBVyxnRUFBZ0UsZUFBZSxvREFBb0QsV0FBVyxVQUFVLGdFQUFnRSxlQUFlLG9CQUFvQixhQUFhLG1CQUFtQjtBQUNud0Y7QUFDQSwrREFBZSx1QkFBdUIsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLm1pbi5jc3M/NTZiMyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL2Nzcy1sb2FkZXIvc3JjL3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18odHJ1ZSk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCI6cm9vdHstLXN3aXBlci1uYXZpZ2F0aW9uLXNpemU6NDRweH0uc3dpcGVyLWJ1dHRvbi1uZXh0LC5zd2lwZXItYnV0dG9uLXByZXZ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTt3aWR0aDpjYWxjKHZhcigtLXN3aXBlci1uYXZpZ2F0aW9uLXNpemUpLyA0NCAqIDI3KTtoZWlnaHQ6dmFyKC0tc3dpcGVyLW5hdmlnYXRpb24tc2l6ZSk7bWFyZ2luLXRvcDpjYWxjKDBweCAtICh2YXIoLS1zd2lwZXItbmF2aWdhdGlvbi1zaXplKS8gMikpO3otaW5kZXg6MTA7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2NvbG9yOnZhcigtLXN3aXBlci1uYXZpZ2F0aW9uLWNvbG9yLHZhcigtLXN3aXBlci10aGVtZS1jb2xvcikpfS5zd2lwZXItYnV0dG9uLW5leHQuc3dpcGVyLWJ1dHRvbi1kaXNhYmxlZCwuc3dpcGVyLWJ1dHRvbi1wcmV2LnN3aXBlci1idXR0b24tZGlzYWJsZWR7b3BhY2l0eTouMzU7Y3Vyc29yOmF1dG87cG9pbnRlci1ldmVudHM6bm9uZX0uc3dpcGVyLWJ1dHRvbi1uZXh0OmFmdGVyLC5zd2lwZXItYnV0dG9uLXByZXY6YWZ0ZXJ7Zm9udC1mYW1pbHk6c3dpcGVyLWljb25zO2ZvbnQtc2l6ZTp2YXIoLS1zd2lwZXItbmF2aWdhdGlvbi1zaXplKTt0ZXh0LXRyYW5zZm9ybTpub25lIWltcG9ydGFudDtsZXR0ZXItc3BhY2luZzowO3RleHQtdHJhbnNmb3JtOm5vbmU7Zm9udC1mZWF0dXJlLXNldHRpbmdzOm5vcm1hbCwgO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC12YXJpYW50OmluaXRpYWw7bGluZS1oZWlnaHQ6MX0uc3dpcGVyLWJ1dHRvbi1wcmV2LC5zd2lwZXItcnRsIC5zd2lwZXItYnV0dG9uLW5leHR7bGVmdDoxMHB4O3JpZ2h0OmF1dG99LnN3aXBlci1idXR0b24tcHJldjphZnRlciwuc3dpcGVyLXJ0bCAuc3dpcGVyLWJ1dHRvbi1uZXh0OmFmdGVye2NvbnRlbnQ6J3ByZXYnfS5zd2lwZXItYnV0dG9uLW5leHQsLnN3aXBlci1ydGwgLnN3aXBlci1idXR0b24tcHJldntyaWdodDoxMHB4O2xlZnQ6YXV0b30uc3dpcGVyLWJ1dHRvbi1uZXh0OmFmdGVyLC5zd2lwZXItcnRsIC5zd2lwZXItYnV0dG9uLXByZXY6YWZ0ZXJ7Y29udGVudDonbmV4dCd9LnN3aXBlci1idXR0b24tbG9ja3tkaXNwbGF5Om5vbmV9XCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovL25vZGVfbW9kdWxlcy9zd2lwZXIvbW9kdWxlcy9uYXZpZ2F0aW9uL25hdmlnYXRpb24ubWluLmNzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQSxNQUFNLDZCQUE2QixDQUFDLHdDQUF3QyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsa0RBQWtELENBQUMsb0NBQW9DLENBQUMseURBQXlELENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsc0JBQXNCLENBQUMsOERBQThELENBQUMsc0ZBQXNGLFdBQVcsQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUMsb0RBQW9ELHdCQUF3QixDQUFDLHVDQUF1QyxDQUFDLDZCQUE2QixDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLDhCQUFvQixDQUFwQixtQkFBb0IsQ0FBcEIsb0JBQW9CLENBQUMsYUFBYSxDQUFDLG9EQUFvRCxTQUFTLENBQUMsVUFBVSxDQUFDLGdFQUFnRSxjQUFjLENBQUMsb0RBQW9ELFVBQVUsQ0FBQyxTQUFTLENBQUMsZ0VBQWdFLGNBQWMsQ0FBQyxvQkFBb0IsWUFBWVwiLFwic291cmNlc0NvbnRlbnRcIjpbXCI6cm9vdHstLXN3aXBlci1uYXZpZ2F0aW9uLXNpemU6NDRweH0uc3dpcGVyLWJ1dHRvbi1uZXh0LC5zd2lwZXItYnV0dG9uLXByZXZ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTt3aWR0aDpjYWxjKHZhcigtLXN3aXBlci1uYXZpZ2F0aW9uLXNpemUpLyA0NCAqIDI3KTtoZWlnaHQ6dmFyKC0tc3dpcGVyLW5hdmlnYXRpb24tc2l6ZSk7bWFyZ2luLXRvcDpjYWxjKDBweCAtICh2YXIoLS1zd2lwZXItbmF2aWdhdGlvbi1zaXplKS8gMikpO3otaW5kZXg6MTA7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2NvbG9yOnZhcigtLXN3aXBlci1uYXZpZ2F0aW9uLWNvbG9yLHZhcigtLXN3aXBlci10aGVtZS1jb2xvcikpfS5zd2lwZXItYnV0dG9uLW5leHQuc3dpcGVyLWJ1dHRvbi1kaXNhYmxlZCwuc3dpcGVyLWJ1dHRvbi1wcmV2LnN3aXBlci1idXR0b24tZGlzYWJsZWR7b3BhY2l0eTouMzU7Y3Vyc29yOmF1dG87cG9pbnRlci1ldmVudHM6bm9uZX0uc3dpcGVyLWJ1dHRvbi1uZXh0OmFmdGVyLC5zd2lwZXItYnV0dG9uLXByZXY6YWZ0ZXJ7Zm9udC1mYW1pbHk6c3dpcGVyLWljb25zO2ZvbnQtc2l6ZTp2YXIoLS1zd2lwZXItbmF2aWdhdGlvbi1zaXplKTt0ZXh0LXRyYW5zZm9ybTpub25lIWltcG9ydGFudDtsZXR0ZXItc3BhY2luZzowO3RleHQtdHJhbnNmb3JtOm5vbmU7Zm9udC12YXJpYW50OmluaXRpYWw7bGluZS1oZWlnaHQ6MX0uc3dpcGVyLWJ1dHRvbi1wcmV2LC5zd2lwZXItcnRsIC5zd2lwZXItYnV0dG9uLW5leHR7bGVmdDoxMHB4O3JpZ2h0OmF1dG99LnN3aXBlci1idXR0b24tcHJldjphZnRlciwuc3dpcGVyLXJ0bCAuc3dpcGVyLWJ1dHRvbi1uZXh0OmFmdGVye2NvbnRlbnQ6J3ByZXYnfS5zd2lwZXItYnV0dG9uLW5leHQsLnN3aXBlci1ydGwgLnN3aXBlci1idXR0b24tcHJldntyaWdodDoxMHB4O2xlZnQ6YXV0b30uc3dpcGVyLWJ1dHRvbi1uZXh0OmFmdGVyLC5zd2lwZXItcnRsIC5zd2lwZXItYnV0dG9uLXByZXY6YWZ0ZXJ7Y29udGVudDonbmV4dCd9LnN3aXBlci1idXR0b24tbG9ja3tkaXNwbGF5Om5vbmV9XCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/swiper/modules/navigation/navigation.min.css\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/swiper/modules/pagination/pagination.min.css": +/*!***********************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/swiper/modules/pagination/pagination.min.css ***! + \***********************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../next/dist/build/webpack/loaders/css-loader/src/runtime/api.js */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js\");\n/* harmony import */ var _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);\n// Imports\n\nvar ___CSS_LOADER_EXPORT___ = _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:10px;left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));display:inline-block;border-radius:50%;background:var(--swiper-pagination-bullet-inactive-color,#000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{right:10px;top:50%;transform:translate3d(0px,-50%,0)}.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0;display:block}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-progressbar{background:rgba(0,0,0,.25);position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:4px;left:0;top:0}.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{width:4px;height:100%;left:0;top:0}.swiper-pagination-lock{display:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://node_modules/swiper/modules/pagination/pagination.min.css\"],\"names\":[],\"mappings\":\"AAAA,mBAAmB,iBAAiB,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,4BAA4B,CAAC,UAAU,CAAC,4CAA4C,SAAS,CAAC,4JAA4J,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,mCAAmC,eAAe,CAAC,WAAW,CAAC,6DAA6D,oBAAoB,CAAC,iBAAiB,CAAC,oEAAoE,kBAAkB,CAAC,yEAAyE,kBAAkB,CAAC,yEAAyE,oBAAoB,CAAC,8EAA8E,oBAAoB,CAAC,yEAAyE,oBAAoB,CAAC,8EAA8E,oBAAoB,CAAC,0BAA0B,oFAAoF,CAAC,sFAAsF,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,8DAA8D,CAAC,4DAA4D,CAAC,gCAAgC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,eAAe,CAAC,uBAAuB,CAAC,oBAAc,CAAd,eAAe,CAAC,uDAAuD,cAAc,CAAC,qCAAqC,sBAAsB,CAAC,iCAAiC,kDAAkD,CAAC,mEAAmE,CAAC,kGAAkG,UAAU,CAAC,OAAO,CAAC,iCAAiC,CAAC,sJAAsJ,yDAAyD,CAAC,aAAa,CAAC,sKAAsK,OAAO,CAAC,0BAA0B,CAAC,SAAS,CAAC,0NAA0N,oBAAoB,CAAC,gCAAgC,CAAC,0JAA0J,2DAA2D,CAAC,0KAA0K,QAAQ,CAAC,0BAA0B,CAAC,kBAAkB,CAAC,8NAA8N,iCAAiC,CAAC,2FAA2F,kCAAkC,CAAC,+BAA+B,0BAA0B,CAAC,iBAAiB,CAAC,mEAAmE,mEAAmE,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,kBAAkB,CAAC,yBAAyB,CAAC,+EAA+E,0BAA0B,CAAC,sSAAsS,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,sSAAsS,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,YAAY\",\"sourcesContent\":[\".swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:10px;left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));display:inline-block;border-radius:50%;background:var(--swiper-pagination-bullet-inactive-color,#000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{right:10px;top:50%;transform:translate3d(0px,-50%,0)}.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0;display:block}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-progressbar{background:rgba(0,0,0,.25);position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:4px;left:0;top:0}.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{width:4px;height:100%;left:0;top:0}.swiper-pagination-lock{display:none}\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMV0hLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3N3aXBlci9tb2R1bGVzL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5taW4uY3NzLmpzIiwibWFwcGluZ3MiOiI7OztBQUFBO0FBQ2lIO0FBQ2pILDhCQUE4QixxR0FBMkI7QUFDekQ7QUFDQSw2REFBNkQsa0JBQWtCLGtCQUFrQix1QkFBdUIsNkJBQTZCLFdBQVcsNENBQTRDLFVBQVUsNEpBQTRKLFlBQVksT0FBTyxXQUFXLG1DQUFtQyxnQkFBZ0IsWUFBWSw2REFBNkQscUJBQXFCLGtCQUFrQixvRUFBb0UsbUJBQW1CLHlFQUF5RSxtQkFBbUIseUVBQXlFLHFCQUFxQiw4RUFBOEUscUJBQXFCLHlFQUF5RSxxQkFBcUIsOEVBQThFLHFCQUFxQiwwQkFBMEIscUZBQXFGLHVGQUF1RixxQkFBcUIsa0JBQWtCLCtEQUErRCw2REFBNkQsZ0NBQWdDLFlBQVksU0FBUyxVQUFVLGdCQUFnQix3QkFBd0IscUJBQXFCLGdCQUFnQix1REFBdUQsZUFBZSxxQ0FBcUMsdUJBQXVCLGlDQUFpQyxtREFBbUQsb0VBQW9FLGtHQUFrRyxXQUFXLFFBQVEsa0NBQWtDLHNKQUFzSiwwREFBMEQsY0FBYyxzS0FBc0ssUUFBUSwyQkFBMkIsVUFBVSwwTkFBME4scUJBQXFCLGlDQUFpQywwSkFBMEosNERBQTRELDBLQUEwSyxTQUFTLDJCQUEyQixtQkFBbUIsOE5BQThOLGtDQUFrQywyRkFBMkYsbUNBQW1DLCtCQUErQiwyQkFBMkIsa0JBQWtCLG1FQUFtRSxvRUFBb0Usa0JBQWtCLE9BQU8sTUFBTSxXQUFXLFlBQVksbUJBQW1CLDBCQUEwQiwrRUFBK0UsMkJBQTJCLHNTQUFzUyxXQUFXLFdBQVcsT0FBTyxNQUFNLHNTQUFzUyxVQUFVLFlBQVksT0FBTyxNQUFNLHdCQUF3QixhQUFhLE9BQU8sNm9DQUE2b0Msa0JBQWtCLGtCQUFrQix1QkFBdUIsNkJBQTZCLFdBQVcsNENBQTRDLFVBQVUsNEpBQTRKLFlBQVksT0FBTyxXQUFXLG1DQUFtQyxnQkFBZ0IsWUFBWSw2REFBNkQscUJBQXFCLGtCQUFrQixvRUFBb0UsbUJBQW1CLHlFQUF5RSxtQkFBbUIseUVBQXlFLHFCQUFxQiw4RUFBOEUscUJBQXFCLHlFQUF5RSxxQkFBcUIsOEVBQThFLHFCQUFxQiwwQkFBMEIscUZBQXFGLHVGQUF1RixxQkFBcUIsa0JBQWtCLCtEQUErRCw2REFBNkQsZ0NBQWdDLFlBQVksU0FBUyxVQUFVLGdCQUFnQix3QkFBd0IsZ0JBQWdCLHVEQUF1RCxlQUFlLHFDQUFxQyx1QkFBdUIsaUNBQWlDLG1EQUFtRCxvRUFBb0Usa0dBQWtHLFdBQVcsUUFBUSxrQ0FBa0Msc0pBQXNKLDBEQUEwRCxjQUFjLHNLQUFzSyxRQUFRLDJCQUEyQixVQUFVLDBOQUEwTixxQkFBcUIsaUNBQWlDLDBKQUEwSiw0REFBNEQsMEtBQTBLLFNBQVMsMkJBQTJCLG1CQUFtQiw4TkFBOE4sa0NBQWtDLDJGQUEyRixtQ0FBbUMsK0JBQStCLDJCQUEyQixrQkFBa0IsbUVBQW1FLG9FQUFvRSxrQkFBa0IsT0FBTyxNQUFNLFdBQVcsWUFBWSxtQkFBbUIsMEJBQTBCLCtFQUErRSwyQkFBMkIsc1NBQXNTLFdBQVcsV0FBVyxPQUFPLE1BQU0sc1NBQXNTLFVBQVUsWUFBWSxPQUFPLE1BQU0sd0JBQXdCLGFBQWEsbUJBQW1CO0FBQzN3VTtBQUNBLCtEQUFlLHVCQUF1QixFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zd2lwZXIvbW9kdWxlcy9wYWdpbmF0aW9uL3BhZ2luYXRpb24ubWluLmNzcz9mNzUzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvY3NzLWxvYWRlci9zcmMvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyh0cnVlKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIi5zd2lwZXItcGFnaW5hdGlvbntwb3NpdGlvbjphYnNvbHV0ZTt0ZXh0LWFsaWduOmNlbnRlcjt0cmFuc2l0aW9uOi4zcyBvcGFjaXR5O3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7ei1pbmRleDoxMH0uc3dpcGVyLXBhZ2luYXRpb24uc3dpcGVyLXBhZ2luYXRpb24taGlkZGVue29wYWNpdHk6MH0uc3dpcGVyLWhvcml6b250YWw+LnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMsLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMuc3dpcGVyLXBhZ2luYXRpb24taG9yaXpvbnRhbCwuc3dpcGVyLXBhZ2luYXRpb24tY3VzdG9tLC5zd2lwZXItcGFnaW5hdGlvbi1mcmFjdGlvbntib3R0b206MTBweDtsZWZ0OjA7d2lkdGg6MTAwJX0uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWlje292ZXJmbG93OmhpZGRlbjtmb250LXNpemU6MH0uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXR7dHJhbnNmb3JtOnNjYWxlKC4zMyk7cG9zaXRpb246cmVsYXRpdmV9LnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWFjdGl2ZXt0cmFuc2Zvcm06c2NhbGUoMSl9LnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWFjdGl2ZS1tYWlue3RyYW5zZm9ybTpzY2FsZSgxKX0uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtYWN0aXZlLXByZXZ7dHJhbnNmb3JtOnNjYWxlKC42Nil9LnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWFjdGl2ZS1wcmV2LXByZXZ7dHJhbnNmb3JtOnNjYWxlKC4zMyl9LnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWFjdGl2ZS1uZXh0e3RyYW5zZm9ybTpzY2FsZSguNjYpfS5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLWR5bmFtaWMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1hY3RpdmUtbmV4dC1uZXh0e3RyYW5zZm9ybTpzY2FsZSguMzMpfS5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXR7d2lkdGg6dmFyKC0tc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LXdpZHRoLHZhcigtLXN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1zaXplLDhweCkpO2hlaWdodDp2YXIoLS1zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtaGVpZ2h0LHZhcigtLXN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1zaXplLDhweCkpO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6dmFyKC0tc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWluYWN0aXZlLWNvbG9yLCMwMDApO29wYWNpdHk6dmFyKC0tc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWluYWN0aXZlLW9wYWNpdHksIC4yKX1idXR0b24uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0e2JvcmRlcjpub25lO21hcmdpbjowO3BhZGRpbmc6MDtib3gtc2hhZG93Om5vbmU7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmU7YXBwZWFyYW5jZTpub25lfS5zd2lwZXItcGFnaW5hdGlvbi1jbGlja2FibGUgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHtjdXJzb3I6cG9pbnRlcn0uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0Om9ubHktY2hpbGR7ZGlzcGxheTpub25lIWltcG9ydGFudH0uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWFjdGl2ZXtvcGFjaXR5OnZhcigtLXN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1vcGFjaXR5LCAxKTtiYWNrZ3JvdW5kOnZhcigtLXN3aXBlci1wYWdpbmF0aW9uLWNvbG9yLHZhcigtLXN3aXBlci10aGVtZS1jb2xvcikpfS5zd2lwZXItcGFnaW5hdGlvbi12ZXJ0aWNhbC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLC5zd2lwZXItdmVydGljYWw+LnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHN7cmlnaHQ6MTBweDt0b3A6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwcHgsLTUwJSwwKX0uc3dpcGVyLXBhZ2luYXRpb24tdmVydGljYWwuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LC5zd2lwZXItdmVydGljYWw+LnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHttYXJnaW46dmFyKC0tc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LXZlcnRpY2FsLWdhcCw2cHgpIDA7ZGlzcGxheTpibG9ja30uc3dpcGVyLXBhZ2luYXRpb24tdmVydGljYWwuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLWR5bmFtaWMsLnN3aXBlci12ZXJ0aWNhbD4uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLWR5bmFtaWN7dG9wOjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTt3aWR0aDo4cHh9LnN3aXBlci1wYWdpbmF0aW9uLXZlcnRpY2FsLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQsLnN3aXBlci12ZXJ0aWNhbD4uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLWR5bmFtaWMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHtkaXNwbGF5OmlubGluZS1ibG9jazt0cmFuc2l0aW9uOi4ycyB0cmFuc2Zvcm0sLjJzIHRvcH0uc3dpcGVyLWhvcml6b250YWw+LnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldCwuc3dpcGVyLXBhZ2luYXRpb24taG9yaXpvbnRhbC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXR7bWFyZ2luOjAgdmFyKC0tc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWhvcml6b250YWwtZ2FwLDRweCl9LnN3aXBlci1ob3Jpem9udGFsPi5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYywuc3dpcGVyLXBhZ2luYXRpb24taG9yaXpvbnRhbC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pY3tsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTt3aGl0ZS1zcGFjZTpub3dyYXB9LnN3aXBlci1ob3Jpem9udGFsPi5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LC5zd2lwZXItcGFnaW5hdGlvbi1ob3Jpem9udGFsLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXR7dHJhbnNpdGlvbjouMnMgdHJhbnNmb3JtLC4ycyBsZWZ0fS5zd2lwZXItaG9yaXpvbnRhbC5zd2lwZXItcnRsPi5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLWR5bmFtaWMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHt0cmFuc2l0aW9uOi4ycyB0cmFuc2Zvcm0sLjJzIHJpZ2h0fS5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2JhcntiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjI1KTtwb3NpdGlvbjphYnNvbHV0ZX0uc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXIgLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyLWZpbGx7YmFja2dyb3VuZDp2YXIoLS1zd2lwZXItcGFnaW5hdGlvbi1jb2xvcix2YXIoLS1zd2lwZXItdGhlbWUtY29sb3IpKTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTt0cmFuc2Zvcm06c2NhbGUoMCk7dHJhbnNmb3JtLW9yaWdpbjpsZWZ0IHRvcH0uc3dpcGVyLXJ0bCAuc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXIgLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyLWZpbGx7dHJhbnNmb3JtLW9yaWdpbjpyaWdodCB0b3B9LnN3aXBlci1ob3Jpem9udGFsPi5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhciwuc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXIuc3dpcGVyLXBhZ2luYXRpb24taG9yaXpvbnRhbCwuc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXIuc3dpcGVyLXBhZ2luYXRpb24tdmVydGljYWwuc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXItb3Bwb3NpdGUsLnN3aXBlci12ZXJ0aWNhbD4uc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXIuc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXItb3Bwb3NpdGV7d2lkdGg6MTAwJTtoZWlnaHQ6NHB4O2xlZnQ6MDt0b3A6MH0uc3dpcGVyLWhvcml6b250YWw+LnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyLW9wcG9zaXRlLC5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci5zd2lwZXItcGFnaW5hdGlvbi1ob3Jpem9udGFsLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyLW9wcG9zaXRlLC5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci5zd2lwZXItcGFnaW5hdGlvbi12ZXJ0aWNhbCwuc3dpcGVyLXZlcnRpY2FsPi5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhcnt3aWR0aDo0cHg7aGVpZ2h0OjEwMCU7bGVmdDowO3RvcDowfS5zd2lwZXItcGFnaW5hdGlvbi1sb2Nre2Rpc3BsYXk6bm9uZX1cIiwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vbm9kZV9tb2R1bGVzL3N3aXBlci9tb2R1bGVzL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5taW4uY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBLG1CQUFtQixpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxzQkFBc0IsQ0FBQyw0QkFBNEIsQ0FBQyxVQUFVLENBQUMsNENBQTRDLFNBQVMsQ0FBQyw0SkFBNEosV0FBVyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsbUNBQW1DLGVBQWUsQ0FBQyxXQUFXLENBQUMsNkRBQTZELG9CQUFvQixDQUFDLGlCQUFpQixDQUFDLG9FQUFvRSxrQkFBa0IsQ0FBQyx5RUFBeUUsa0JBQWtCLENBQUMseUVBQXlFLG9CQUFvQixDQUFDLDhFQUE4RSxvQkFBb0IsQ0FBQyx5RUFBeUUsb0JBQW9CLENBQUMsOEVBQThFLG9CQUFvQixDQUFDLDBCQUEwQixvRkFBb0YsQ0FBQyxzRkFBc0YsQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyw4REFBOEQsQ0FBQyw0REFBNEQsQ0FBQyxnQ0FBZ0MsV0FBVyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLHVCQUF1QixDQUFDLG9CQUFjLENBQWQsZUFBZSxDQUFDLHVEQUF1RCxjQUFjLENBQUMscUNBQXFDLHNCQUFzQixDQUFDLGlDQUFpQyxrREFBa0QsQ0FBQyxtRUFBbUUsQ0FBQyxrR0FBa0csVUFBVSxDQUFDLE9BQU8sQ0FBQyxpQ0FBaUMsQ0FBQyxzSkFBc0oseURBQXlELENBQUMsYUFBYSxDQUFDLHNLQUFzSyxPQUFPLENBQUMsMEJBQTBCLENBQUMsU0FBUyxDQUFDLDBOQUEwTixvQkFBb0IsQ0FBQyxnQ0FBZ0MsQ0FBQywwSkFBMEosMkRBQTJELENBQUMsMEtBQTBLLFFBQVEsQ0FBQywwQkFBMEIsQ0FBQyxrQkFBa0IsQ0FBQyw4TkFBOE4saUNBQWlDLENBQUMsMkZBQTJGLGtDQUFrQyxDQUFDLCtCQUErQiwwQkFBMEIsQ0FBQyxpQkFBaUIsQ0FBQyxtRUFBbUUsbUVBQW1FLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLHlCQUF5QixDQUFDLCtFQUErRSwwQkFBMEIsQ0FBQyxzU0FBc1MsVUFBVSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHNTQUFzUyxTQUFTLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsd0JBQXdCLFlBQVlcIixcInNvdXJjZXNDb250ZW50XCI6W1wiLnN3aXBlci1wYWdpbmF0aW9ue3Bvc2l0aW9uOmFic29sdXRlO3RleHQtYWxpZ246Y2VudGVyO3RyYW5zaXRpb246LjNzIG9wYWNpdHk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKTt6LWluZGV4OjEwfS5zd2lwZXItcGFnaW5hdGlvbi5zd2lwZXItcGFnaW5hdGlvbi1oaWRkZW57b3BhY2l0eTowfS5zd2lwZXItaG9yaXpvbnRhbD4uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cywuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy5zd2lwZXItcGFnaW5hdGlvbi1ob3Jpem9udGFsLC5zd2lwZXItcGFnaW5hdGlvbi1jdXN0b20sLnN3aXBlci1wYWdpbmF0aW9uLWZyYWN0aW9ue2JvdHRvbToxMHB4O2xlZnQ6MDt3aWR0aDoxMDAlfS5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLWR5bmFtaWN7b3ZlcmZsb3c6aGlkZGVuO2ZvbnQtc2l6ZTowfS5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLWR5bmFtaWMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHt0cmFuc2Zvcm06c2NhbGUoLjMzKTtwb3NpdGlvbjpyZWxhdGl2ZX0uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtYWN0aXZle3RyYW5zZm9ybTpzY2FsZSgxKX0uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtYWN0aXZlLW1haW57dHJhbnNmb3JtOnNjYWxlKDEpfS5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLWR5bmFtaWMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1hY3RpdmUtcHJldnt0cmFuc2Zvcm06c2NhbGUoLjY2KX0uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtYWN0aXZlLXByZXYtcHJldnt0cmFuc2Zvcm06c2NhbGUoLjMzKX0uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtYWN0aXZlLW5leHR7dHJhbnNmb3JtOnNjYWxlKC42Nil9LnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWFjdGl2ZS1uZXh0LW5leHR7dHJhbnNmb3JtOnNjYWxlKC4zMyl9LnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHt3aWR0aDp2YXIoLS1zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtd2lkdGgsdmFyKC0tc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LXNpemUsOHB4KSk7aGVpZ2h0OnZhcigtLXN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1oZWlnaHQsdmFyKC0tc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LXNpemUsOHB4KSk7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDp2YXIoLS1zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtaW5hY3RpdmUtY29sb3IsIzAwMCk7b3BhY2l0eTp2YXIoLS1zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtaW5hY3RpdmUtb3BhY2l0eSwgLjIpfWJ1dHRvbi5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXR7Ym9yZGVyOm5vbmU7bWFyZ2luOjA7cGFkZGluZzowO2JveC1zaGFkb3c6bm9uZTstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTthcHBlYXJhbmNlOm5vbmV9LnN3aXBlci1wYWdpbmF0aW9uLWNsaWNrYWJsZSAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0e2N1cnNvcjpwb2ludGVyfS5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQ6b25seS1jaGlsZHtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fS5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtYWN0aXZle29wYWNpdHk6dmFyKC0tc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LW9wYWNpdHksIDEpO2JhY2tncm91bmQ6dmFyKC0tc3dpcGVyLXBhZ2luYXRpb24tY29sb3IsdmFyKC0tc3dpcGVyLXRoZW1lLWNvbG9yKSl9LnN3aXBlci1wYWdpbmF0aW9uLXZlcnRpY2FsLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMsLnN3aXBlci12ZXJ0aWNhbD4uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0c3tyaWdodDoxMHB4O3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDBweCwtNTAlLDApfS5zd2lwZXItcGFnaW5hdGlvbi12ZXJ0aWNhbC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQsLnN3aXBlci12ZXJ0aWNhbD4uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0e21hcmdpbjp2YXIoLS1zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtdmVydGljYWwtZ2FwLDZweCkgMDtkaXNwbGF5OmJsb2NrfS5zd2lwZXItcGFnaW5hdGlvbi12ZXJ0aWNhbC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYywuc3dpcGVyLXZlcnRpY2FsPi5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pY3t0b3A6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO3dpZHRoOjhweH0uc3dpcGVyLXBhZ2luYXRpb24tdmVydGljYWwuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLWR5bmFtaWMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldCwuc3dpcGVyLXZlcnRpY2FsPi5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0e2Rpc3BsYXk6aW5saW5lLWJsb2NrO3RyYW5zaXRpb246LjJzIHRyYW5zZm9ybSwuMnMgdG9wfS5zd2lwZXItaG9yaXpvbnRhbD4uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LC5zd2lwZXItcGFnaW5hdGlvbi1ob3Jpem9udGFsLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHttYXJnaW46MCB2YXIoLS1zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtaG9yaXpvbnRhbC1nYXAsNHB4KX0uc3dpcGVyLWhvcml6b250YWw+LnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljLC5zd2lwZXItcGFnaW5hdGlvbi1ob3Jpem9udGFsLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWlje2xlZnQ6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpO3doaXRlLXNwYWNlOm5vd3JhcH0uc3dpcGVyLWhvcml6b250YWw+LnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQsLnN3aXBlci1wYWdpbmF0aW9uLWhvcml6b250YWwuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLWR5bmFtaWMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHt0cmFuc2l0aW9uOi4ycyB0cmFuc2Zvcm0sLjJzIGxlZnR9LnN3aXBlci1ob3Jpem9udGFsLnN3aXBlci1ydGw+LnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0e3RyYW5zaXRpb246LjJzIHRyYW5zZm9ybSwuMnMgcmlnaHR9LnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFye2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMjUpO3Bvc2l0aW9uOmFic29sdXRlfS5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2JhciAuc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXItZmlsbHtiYWNrZ3JvdW5kOnZhcigtLXN3aXBlci1wYWdpbmF0aW9uLWNvbG9yLHZhcigtLXN3aXBlci10aGVtZS1jb2xvcikpO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3RyYW5zZm9ybTpzY2FsZSgwKTt0cmFuc2Zvcm0tb3JpZ2luOmxlZnQgdG9wfS5zd2lwZXItcnRsIC5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2JhciAuc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXItZmlsbHt0cmFuc2Zvcm0tb3JpZ2luOnJpZ2h0IHRvcH0uc3dpcGVyLWhvcml6b250YWw+LnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyLC5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci5zd2lwZXItcGFnaW5hdGlvbi1ob3Jpem9udGFsLC5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci5zd2lwZXItcGFnaW5hdGlvbi12ZXJ0aWNhbC5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci1vcHBvc2l0ZSwuc3dpcGVyLXZlcnRpY2FsPi5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci1vcHBvc2l0ZXt3aWR0aDoxMDAlO2hlaWdodDo0cHg7bGVmdDowO3RvcDowfS5zd2lwZXItaG9yaXpvbnRhbD4uc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXIuc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXItb3Bwb3NpdGUsLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyLnN3aXBlci1wYWdpbmF0aW9uLWhvcml6b250YWwuc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXItb3Bwb3NpdGUsLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyLnN3aXBlci1wYWdpbmF0aW9uLXZlcnRpY2FsLC5zd2lwZXItdmVydGljYWw+LnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFye3dpZHRoOjRweDtoZWlnaHQ6MTAwJTtsZWZ0OjA7dG9wOjB9LnN3aXBlci1wYWdpbmF0aW9uLWxvY2t7ZGlzcGxheTpub25lfVwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/swiper/modules/pagination/pagination.min.css\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/swiper/swiper.min.css": +/*!************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/swiper/swiper.min.css ***! + \************************************************************************************************************************************************************************************************************************************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../next/dist/build/webpack/loaders/css-loader/src/runtime/api.js */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js\");\n/* harmony import */ var _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);\n// Imports\n\nvar ___CSS_LOADER_EXPORT___ = _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/**\\n * Swiper 7.3.0\\n * Most modern mobile touch slider and framework with hardware accelerated transitions\\n * https://swiperjs.com\\n *\\n * Copyright 2014-2021 Vladimir Kharlampidi\\n *\\n * Released under the MIT License\\n *\\n * Released on: November 18, 2021\\n */\\n\\n@font-face{font-family:swiper-icons;src:url('data:application/font-woff;charset=utf-8;base64, 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');font-weight:400;font-style:normal}:root{--swiper-theme-color:#007aff}.swiper{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;box-sizing:content-box}.swiper-android .swiper-slide,.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-pointer-events{touch-action:pan-y}.swiper-pointer-events.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-3d,.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d .swiper-slide,.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:rgba(0,0,0,.15)}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-horizontal.swiper-css-mode>.swiper-wrapper{-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory}.swiper-vertical.swiper-css-mode>.swiper-wrapper{-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory}.swiper-centered>.swiper-wrapper::before{content:'';flex-shrink:0;order:9999}.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{-webkit-margin-start:var(--swiper-centered-offset-before);margin-inline-start:var(--swiper-centered-offset-before)}.swiper-centered.swiper-horizontal>.swiper-wrapper::before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{-webkit-margin-before:var(--swiper-centered-offset-before);margin-block-start:var(--swiper-centered-offset-before)}.swiper-centered.swiper-vertical>.swiper-wrapper::before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center}\", \"\",{\"version\":3,\"sources\":[\"webpack://node_modules/swiper/swiper.min.css\"],\"names\":[],\"mappings\":\"AAAA;;;;;;;;;;EAUE;;AAEF,WAAW,wBAAwB,CAAC,4rEAA4rE,CAAC,eAAe,CAAC,iBAAiB,CAAC,MAAM,4BAA4B,CAAC,QAAQ,gBAAgB,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,eAAe,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,iCAAiC,qBAAqB,CAAC,gBAAgB,iBAAiB,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,YAAY,CAAC,6BAA6B,CAAC,sBAAsB,CAAC,8CAA8C,8BAA8B,CAAC,uBAAuB,kBAAkB,CAAC,uCAAuC,kBAAkB,CAAC,cAAc,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,iBAAiB,CAAC,6BAA6B,CAAC,8BAA8B,iBAAiB,CAAC,oDAAoD,WAAW,CAAC,mCAAmC,sBAAsB,CAAC,oCAAoC,CAAC,sDAAsD,kBAAkB,CAAC,yQAAyQ,2BAA2B,CAAC,sLAAsL,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,mBAAmB,CAAC,UAAU,CAAC,gCAAgC,0BAA0B,CAAC,qCAAqC,sEAAsE,CAAC,sCAAsC,uEAAuE,CAAC,oCAAoC,qEAAqE,CAAC,uCAAuC,wEAAwE,CAAC,iCAAiC,aAAa,CAAC,oBAAoB,CAAC,uBAAuB,CAAC,oDAAoD,YAAY,CAAC,+CAA+C,6BAA6B,CAAC,mDAAmD,gCAA2B,CAA3B,4BAA4B,CAAC,iDAAiD,gCAA2B,CAA3B,4BAA4B,CAAC,yCAAyC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,6EAA6E,yDAAuD,CAAvD,wDAAwD,CAAC,2DAA2D,WAAW,CAAC,cAAc,CAAC,yCAAyC,CAAC,2EAA2E,0DAAsD,CAAtD,uDAAuD,CAAC,yDAAyD,UAAU,CAAC,aAAa,CAAC,0CAA0C,CAAC,+CAA+C,+BAA+B\",\"sourcesContent\":[\"/**\\n * Swiper 7.3.0\\n * Most modern mobile touch slider and framework with hardware accelerated transitions\\n * https://swiperjs.com\\n *\\n * Copyright 2014-2021 Vladimir Kharlampidi\\n *\\n * Released under the MIT License\\n *\\n * Released on: November 18, 2021\\n */\\n\\n@font-face{font-family:swiper-icons;src:url('data:application/font-woff;charset=utf-8;base64, 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');font-weight:400;font-style:normal}:root{--swiper-theme-color:#007aff}.swiper{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;box-sizing:content-box}.swiper-android .swiper-slide,.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-pointer-events{touch-action:pan-y}.swiper-pointer-events.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-3d,.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d .swiper-slide,.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:rgba(0,0,0,.15)}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-horizontal.swiper-css-mode>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-vertical.swiper-css-mode>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-centered>.swiper-wrapper::before{content:'';flex-shrink:0;order:9999}.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-centered.swiper-horizontal>.swiper-wrapper::before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-centered.swiper-vertical>.swiper-wrapper::before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center}\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMV0hLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3N3aXBlci9zd2lwZXIubWluLmNzcy5qcyIsIm1hcHBpbmdzIjoiOzs7QUFBQTtBQUMyRztBQUMzRyw4QkFBOEIscUdBQTJCO0FBQ3pEO0FBQ0Esa1VBQWtVLHlCQUF5QixvQ0FBb0MsY0FBYywyb0VBQTJvRSxnQkFBZ0Isa0JBQWtCLE1BQU0sNkJBQTZCLFFBQVEsaUJBQWlCLGtCQUFrQixrQkFBa0IsZ0JBQWdCLGdCQUFnQixVQUFVLFVBQVUsaUNBQWlDLHNCQUFzQixnQkFBZ0Isa0JBQWtCLFdBQVcsWUFBWSxVQUFVLGFBQWEsOEJBQThCLHVCQUF1Qiw4Q0FBOEMsK0JBQStCLHVCQUF1QixtQkFBbUIsdUNBQXVDLG1CQUFtQixjQUFjLGNBQWMsV0FBVyxZQUFZLGtCQUFrQiw4QkFBOEIsOEJBQThCLGtCQUFrQixvREFBb0QsWUFBWSxtQ0FBbUMsdUJBQXVCLHFDQUFxQyxzREFBc0QsbUJBQW1CLHlRQUF5USw0QkFBNEIsc0xBQXNMLGtCQUFrQixPQUFPLE1BQU0sV0FBVyxZQUFZLG9CQUFvQixXQUFXLGdDQUFnQywyQkFBMkIscUNBQXFDLHVFQUF1RSxzQ0FBc0Msd0VBQXdFLG9DQUFvQyxzRUFBc0UsdUNBQXVDLHlFQUF5RSxpQ0FBaUMsY0FBYyxxQkFBcUIsd0JBQXdCLG9EQUFvRCxhQUFhLCtDQUErQyw4QkFBOEIsbURBQW1ELGlDQUFpQyw2QkFBNkIsaURBQWlELGlDQUFpQyw2QkFBNkIseUNBQXlDLFdBQVcsY0FBYyxXQUFXLDZFQUE2RSwwREFBMEQseURBQXlELDJEQUEyRCxZQUFZLGVBQWUsMENBQTBDLDJFQUEyRSwyREFBMkQsd0RBQXdELHlEQUF5RCxXQUFXLGNBQWMsMkNBQTJDLCtDQUErQyxnQ0FBZ0MsT0FBTyw0R0FBNEcsTUFBTSx5d0NBQXl3Qyx5QkFBeUIsb0NBQW9DLGNBQWMsMm9FQUEyb0UsZ0JBQWdCLGtCQUFrQixNQUFNLDZCQUE2QixRQUFRLGlCQUFpQixrQkFBa0Isa0JBQWtCLGdCQUFnQixnQkFBZ0IsVUFBVSxVQUFVLGlDQUFpQyxzQkFBc0IsZ0JBQWdCLGtCQUFrQixXQUFXLFlBQVksVUFBVSxhQUFhLDhCQUE4Qix1QkFBdUIsOENBQThDLCtCQUErQix1QkFBdUIsbUJBQW1CLHVDQUF1QyxtQkFBbUIsY0FBYyxjQUFjLFdBQVcsWUFBWSxrQkFBa0IsOEJBQThCLDhCQUE4QixrQkFBa0Isb0RBQW9ELFlBQVksbUNBQW1DLHVCQUF1QixxQ0FBcUMsc0RBQXNELG1CQUFtQix5UUFBeVEsNEJBQTRCLHNMQUFzTCxrQkFBa0IsT0FBTyxNQUFNLFdBQVcsWUFBWSxvQkFBb0IsV0FBVyxnQ0FBZ0MsMkJBQTJCLHFDQUFxQyx1RUFBdUUsc0NBQXNDLHdFQUF3RSxvQ0FBb0Msc0VBQXNFLHVDQUF1Qyx5RUFBeUUsaUNBQWlDLGNBQWMscUJBQXFCLHdCQUF3QixvREFBb0QsYUFBYSwrQ0FBK0MsOEJBQThCLG1EQUFtRCw2QkFBNkIsaURBQWlELDZCQUE2Qix5Q0FBeUMsV0FBVyxjQUFjLFdBQVcsNkVBQTZFLHlEQUF5RCwyREFBMkQsWUFBWSxlQUFlLDBDQUEwQywyRUFBMkUsd0RBQXdELHlEQUF5RCxXQUFXLGNBQWMsMkNBQTJDLCtDQUErQyxnQ0FBZ0MsbUJBQW1CO0FBQ3h3WTtBQUNBLCtEQUFlLHVCQUF1QixFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zd2lwZXIvc3dpcGVyLm1pbi5jc3M/NjFlOSJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL2Nzcy1sb2FkZXIvc3JjL3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18odHJ1ZSk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCIvKipcXG4gKiBTd2lwZXIgNy4zLjBcXG4gKiBNb3N0IG1vZGVybiBtb2JpbGUgdG91Y2ggc2xpZGVyIGFuZCBmcmFtZXdvcmsgd2l0aCBoYXJkd2FyZSBhY2NlbGVyYXRlZCB0cmFuc2l0aW9uc1xcbiAqIGh0dHBzOi8vc3dpcGVyanMuY29tXFxuICpcXG4gKiBDb3B5cmlnaHQgMjAxNC0yMDIxIFZsYWRpbWlyIEtoYXJsYW1waWRpXFxuICpcXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2VcXG4gKlxcbiAqIFJlbGVhc2VkIG9uOiBOb3ZlbWJlciAxOCwgMjAyMVxcbiAqL1xcblxcbkBmb250LWZhY2V7Zm9udC1mYW1pbHk6c3dpcGVyLWljb25zO3NyYzp1cmwoJ2RhdGE6YXBwbGljYXRpb24vZm9udC13b2ZmO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCBkMDlHUmdBQkFBQUFBQVpnQUJBQUFBQUFEQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkdSbFJOQUFBR1JBQUFBQm9BQUFBY2k2cUhrVWRFUlVZQUFBV2dBQUFBSXdBQUFDUUFZQUJYUjFCUFV3QUFCaFFBQUFBdUFBQUFOdUFZNyt4SFUxVkNBQUFGeEFBQUFGQUFBQUJtMmZQY3pVOVRMeklBQUFIY0FBQUFTZ0FBQUdCUDlWNVJZMjFoY0FBQUFrUUFBQUNJQUFBQll0NkYwY0JqZG5RZ0FBQUN6QUFBQUFRQUFBQUVBQkVCUkdkaGMzQUFBQVdZQUFBQUNBQUFBQWovL3dBRFoyeDVaZ0FBQXl3QUFBRE1BQUFEMk1IdHJ5Vm9aV0ZrQUFBQmJBQUFBREFBQUFBMkUyK2VvV2hvWldFQUFBR2NBQUFBSHdBQUFDUUM5Z0R6YUcxMGVBQUFBaWdBQUFBWkFBQUFyZ0prQUJGc2IyTmhBQUFDMEFBQUFGb0FBQUJhRlFBVUdHMWhlSEFBQUFHOEFBQUFId0FBQUNBQWNBQkFibUZ0WlFBQUEvZ0FBQUU1QUFBQ1h2RmRCd2x3YjNOMEFBQUZOQUFBQUdJQUFBQ0U1czc0aFhqYVkyQmtZR0FBWXBmNUh1L2orVzIrTW5Bek1ZREF6YVg2UWpENi80Ly9CeGo1R0E4QXVSd01ZR2tBUHl3TDEzamFZMkJrWUdBODhQOEFneDRqKy84ZlFEWWZBMUFFQldnREFJQjJCT29BZU5wallHUmdZTkJoNEdkZ1lnQUJFTW5JQUJKellOQURDUUFBQ1dnQXNRQjQybU5nWWZ6Q09JR0JsWUdCMFljeGpZR0J3UjFLZjJXUVpHaGhZR0JpWUdWbWdBRkdCaVFRa09hYXd0REFvTUJReFhqZy93RUdQY1lEREE0d05VQTJDQ2d3c0FBQU80RUw2Z0FBZU5wajJNMGd5QUFDcXhnR05XQmtaMkQ0L3dNQSt4a0RkZ0FBQUhqYVkyQmdZR2FBWUJrR1JnWVFpQUh5R01GOEZnWUhJTTNEd01IQUJHUXJNT2d5V0RMRU0xVDkvdzhVQmZFTWdMekUvLy8vUC81Ly9mL1YveHYrcjRlYUFBZU1iQXh3SVVZbUlNSEVnS1lBWWpVY3NEQXdzTEt4YzNCeWNmUHc4akVRQS9nWkJBU0ZoRVZFeGNRbEpLV2taV1RsNUJVVWxaUlZWTlhVTlRRWkJnTUFBTVIrRStnQUVRRkVBQUFBS2dBcUFDb0FOQUErQUVnQVVnQmNBR1lBY0FCNkFJUUFqZ0NZQUtJQXJBQzJBTUFBeWdEVUFONEE2QUR5QVB3QkJnRVFBUm9CSkFFdUFUZ0JRZ0ZNQVZZQllBRnFBWFFCZmdHSUFaSUJuQUdtQWJJQnpnSHNBQUI0MnUyTk1RNkNVQXlHVzU2OHg5QW5lWVlnbTRNSmJoS0ZhRXhJT0FWWDhBcGV3U3Q0QmljNEFmZUFpZDNWT0JpeER4ZlBZRXphNU8rWGZpMDRZQURnZ2lVSVVMQ3VFSks4VmhPNGJTdnBkbmt0SEk1UUNZdGRpMnNsOFpuWGFIbHFVck5LemRLY1Q4Y2pscStyd1pTdklWY3pOaWV6c2ZuUC91em5tZlBGQk5PRE0ySzdNVFE0NVlFQVpxR1A4MUFtR0djRjNpUHFPb3AwcjFTUFRhVGJWa2ZVZTRIWGo5N3dZRSt5TndXWXh3V3U0djF1Z1dIZ28zUzFYZFpFVnFXTTdFVDBjZm5MR3hXZmtnUjQybzJQdldyRE1CU0ZqL0lITGFGMHpLalJnZGlWTXdTY05SQW9XVW9INzhZMmljQi95SVkwOUFuNkFIMkJkdS9VQit5eG9wWXNoUWlFdm52dTBkVVJnRHQ4UWVDOFBEdzdGcGppM2ZFQTR6L1BFSjZZT0I1aEtoNGRqM0V2WGh4UHFIL1NLVVkzcko3c3JaNEZabmgxUE1BdFBod1A2ZmwyUE1KTVBEZ2VRNHJZOFlUNkd6YW8wZUFFQTQwOUR1Z2dtVG5Gbk9jU0NpRWlMTWd4Q2lUSTZDcTVEWlVkM1FtcDEwdk8wTGFMVGQyY2pONGZPdW1sYzdsVVliU1FjWkZrdXRSRzdnNkpLWkt5MFJtZExZNjgwQ0RuRUorVU1rcEZGZTFSTjdueGRWcFhyQzRhVHRuYXVyT25ZZXJjWmcyWVZtTE4vZC9nY3pmRWltckUvZnMvYk91cTI5Wm1uOHRsb09SYVhnWmdHYTc4eU85L2NuWG0yQnBhR3ZxMjVEdjlTNEU5KzVTSWM5UHF1cEpLaFlGU1NsNDcrUWNyMW1ZTkFBQUFlTnB0dzBjS3drQUFBTURaSkE4UTdPVUp2a0xzUGZaNnpGVkVSUHk4cUhoMllFUiszaS9CUDgzdklCTEx5U3NvS2ltcnFLcXBhMmhwNitqcTZSc1lHaG1ibUpxWlN5MHNyYXh0Yk8zc0hSeWRuRU1VNHVSNnl4N0pKWHZlUDdXckR5Y0FBQUFBQUFILy93QUNlTnBqWUdSZ1lPQUJZaGtnWmdKQ1pnWk5Ca1lHTFFadElKc0ZMTVlBQUF3M0FMZ0FlTm9saXpFS2dEQVFCQ2NoUmJDMnNGRVIwWUQ2cVZRaUJDdi9IOWV6R0k2WjVYQkF3OENCSy9tNWlRUVZhdVZiWExuT3JNWnYyb0xkS0ZhOFBqdXJ1MmhKekdhYm1PU0x6Tk16dnV0cEIzTjQybU5nWkdCZzRHS1FZekJoWU14SkxNbGo0R0JnQVlvdy9QL1BBSkpoTE02c1NvV0tmV0NBQXdEQWpnYlJBQUI0Mm1OZ1lHQmtBSUliQ1pvNUlQcm1VbjBoR0EwQU84RUZUUUFBJyk7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsfTpyb290ey0tc3dpcGVyLXRoZW1lLWNvbG9yOiMwMDdhZmZ9LnN3aXBlcnttYXJnaW4tbGVmdDphdXRvO21hcmdpbi1yaWdodDphdXRvO3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbjtsaXN0LXN0eWxlOm5vbmU7cGFkZGluZzowO3otaW5kZXg6MX0uc3dpcGVyLXZlcnRpY2FsPi5zd2lwZXItd3JhcHBlcntmbGV4LWRpcmVjdGlvbjpjb2x1bW59LnN3aXBlci13cmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7ei1pbmRleDoxO2Rpc3BsYXk6ZmxleDt0cmFuc2l0aW9uLXByb3BlcnR5OnRyYW5zZm9ybTtib3gtc2l6aW5nOmNvbnRlbnQtYm94fS5zd2lwZXItYW5kcm9pZCAuc3dpcGVyLXNsaWRlLC5zd2lwZXItd3JhcHBlcnt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMHB4LDAsMCl9LnN3aXBlci1wb2ludGVyLWV2ZW50c3t0b3VjaC1hY3Rpb246cGFuLXl9LnN3aXBlci1wb2ludGVyLWV2ZW50cy5zd2lwZXItdmVydGljYWx7dG91Y2gtYWN0aW9uOnBhbi14fS5zd2lwZXItc2xpZGV7ZmxleC1zaHJpbms6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3Bvc2l0aW9uOnJlbGF0aXZlO3RyYW5zaXRpb24tcHJvcGVydHk6dHJhbnNmb3JtfS5zd2lwZXItc2xpZGUtaW52aXNpYmxlLWJsYW5re3Zpc2liaWxpdHk6aGlkZGVufS5zd2lwZXItYXV0b2hlaWdodCwuc3dpcGVyLWF1dG9oZWlnaHQgLnN3aXBlci1zbGlkZXtoZWlnaHQ6YXV0b30uc3dpcGVyLWF1dG9oZWlnaHQgLnN3aXBlci13cmFwcGVye2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7dHJhbnNpdGlvbi1wcm9wZXJ0eTp0cmFuc2Zvcm0saGVpZ2h0fS5zd2lwZXItM2QsLnN3aXBlci0zZC5zd2lwZXItY3NzLW1vZGUgLnN3aXBlci13cmFwcGVye3BlcnNwZWN0aXZlOjEyMDBweH0uc3dpcGVyLTNkIC5zd2lwZXItY3ViZS1zaGFkb3csLnN3aXBlci0zZCAuc3dpcGVyLXNsaWRlLC5zd2lwZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3csLnN3aXBlci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1ib3R0b20sLnN3aXBlci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1sZWZ0LC5zd2lwZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctcmlnaHQsLnN3aXBlci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy10b3AsLnN3aXBlci0zZCAuc3dpcGVyLXdyYXBwZXJ7dHJhbnNmb3JtLXN0eWxlOnByZXNlcnZlLTNkfS5zd2lwZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3csLnN3aXBlci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1ib3R0b20sLnN3aXBlci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1sZWZ0LC5zd2lwZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctcmlnaHQsLnN3aXBlci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy10b3B7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7cG9pbnRlci1ldmVudHM6bm9uZTt6LWluZGV4OjEwfS5zd2lwZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3d7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4xNSl9LnN3aXBlci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1sZWZ0e2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIGxlZnQscmdiYSgwLDAsMCwuNSkscmdiYSgwLDAsMCwwKSl9LnN3aXBlci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1yaWdodHtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byByaWdodCxyZ2JhKDAsMCwwLC41KSxyZ2JhKDAsMCwwLDApKX0uc3dpcGVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LXRvcHtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byB0b3AscmdiYSgwLDAsMCwuNSkscmdiYSgwLDAsMCwwKSl9LnN3aXBlci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1ib3R0b217YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLHJnYmEoMCwwLDAsLjUpLHJnYmEoMCwwLDAsMCkpfS5zd2lwZXItY3NzLW1vZGU+LnN3aXBlci13cmFwcGVye292ZXJmbG93OmF1dG87c2Nyb2xsYmFyLXdpZHRoOm5vbmU7LW1zLW92ZXJmbG93LXN0eWxlOm5vbmV9LnN3aXBlci1jc3MtbW9kZT4uc3dpcGVyLXdyYXBwZXI6Oi13ZWJraXQtc2Nyb2xsYmFye2Rpc3BsYXk6bm9uZX0uc3dpcGVyLWNzcy1tb2RlPi5zd2lwZXItd3JhcHBlcj4uc3dpcGVyLXNsaWRle3Njcm9sbC1zbmFwLWFsaWduOnN0YXJ0IHN0YXJ0fS5zd2lwZXItaG9yaXpvbnRhbC5zd2lwZXItY3NzLW1vZGU+LnN3aXBlci13cmFwcGVyey1tcy1zY3JvbGwtc25hcC10eXBlOnggbWFuZGF0b3J5O3Njcm9sbC1zbmFwLXR5cGU6eCBtYW5kYXRvcnl9LnN3aXBlci12ZXJ0aWNhbC5zd2lwZXItY3NzLW1vZGU+LnN3aXBlci13cmFwcGVyey1tcy1zY3JvbGwtc25hcC10eXBlOnkgbWFuZGF0b3J5O3Njcm9sbC1zbmFwLXR5cGU6eSBtYW5kYXRvcnl9LnN3aXBlci1jZW50ZXJlZD4uc3dpcGVyLXdyYXBwZXI6OmJlZm9yZXtjb250ZW50OicnO2ZsZXgtc2hyaW5rOjA7b3JkZXI6OTk5OX0uc3dpcGVyLWNlbnRlcmVkLnN3aXBlci1ob3Jpem9udGFsPi5zd2lwZXItd3JhcHBlcj4uc3dpcGVyLXNsaWRlOmZpcnN0LWNoaWxkey13ZWJraXQtbWFyZ2luLXN0YXJ0OnZhcigtLXN3aXBlci1jZW50ZXJlZC1vZmZzZXQtYmVmb3JlKTttYXJnaW4taW5saW5lLXN0YXJ0OnZhcigtLXN3aXBlci1jZW50ZXJlZC1vZmZzZXQtYmVmb3JlKX0uc3dpcGVyLWNlbnRlcmVkLnN3aXBlci1ob3Jpem9udGFsPi5zd2lwZXItd3JhcHBlcjo6YmVmb3Jle2hlaWdodDoxMDAlO21pbi1oZWlnaHQ6MXB4O3dpZHRoOnZhcigtLXN3aXBlci1jZW50ZXJlZC1vZmZzZXQtYWZ0ZXIpfS5zd2lwZXItY2VudGVyZWQuc3dpcGVyLXZlcnRpY2FsPi5zd2lwZXItd3JhcHBlcj4uc3dpcGVyLXNsaWRlOmZpcnN0LWNoaWxkey13ZWJraXQtbWFyZ2luLWJlZm9yZTp2YXIoLS1zd2lwZXItY2VudGVyZWQtb2Zmc2V0LWJlZm9yZSk7bWFyZ2luLWJsb2NrLXN0YXJ0OnZhcigtLXN3aXBlci1jZW50ZXJlZC1vZmZzZXQtYmVmb3JlKX0uc3dpcGVyLWNlbnRlcmVkLnN3aXBlci12ZXJ0aWNhbD4uc3dpcGVyLXdyYXBwZXI6OmJlZm9yZXt3aWR0aDoxMDAlO21pbi13aWR0aDoxcHg7aGVpZ2h0OnZhcigtLXN3aXBlci1jZW50ZXJlZC1vZmZzZXQtYWZ0ZXIpfS5zd2lwZXItY2VudGVyZWQ+LnN3aXBlci13cmFwcGVyPi5zd2lwZXItc2xpZGV7c2Nyb2xsLXNuYXAtYWxpZ246Y2VudGVyIGNlbnRlcn1cIiwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vbm9kZV9tb2R1bGVzL3N3aXBlci9zd2lwZXIubWluLmNzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQTs7Ozs7Ozs7OztFQVVFOztBQUVGLFdBQVcsd0JBQXdCLENBQUMsNHJFQUE0ckUsQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsTUFBTSw0QkFBNEIsQ0FBQyxRQUFRLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxpQ0FBaUMscUJBQXFCLENBQUMsZ0JBQWdCLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyw2QkFBNkIsQ0FBQyxzQkFBc0IsQ0FBQyw4Q0FBOEMsOEJBQThCLENBQUMsdUJBQXVCLGtCQUFrQixDQUFDLHVDQUF1QyxrQkFBa0IsQ0FBQyxjQUFjLGFBQWEsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLDZCQUE2QixDQUFDLDhCQUE4QixpQkFBaUIsQ0FBQyxvREFBb0QsV0FBVyxDQUFDLG1DQUFtQyxzQkFBc0IsQ0FBQyxvQ0FBb0MsQ0FBQyxzREFBc0Qsa0JBQWtCLENBQUMseVFBQXlRLDJCQUEyQixDQUFDLHNMQUFzTCxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLGdDQUFnQywwQkFBMEIsQ0FBQyxxQ0FBcUMsc0VBQXNFLENBQUMsc0NBQXNDLHVFQUF1RSxDQUFDLG9DQUFvQyxxRUFBcUUsQ0FBQyx1Q0FBdUMsd0VBQXdFLENBQUMsaUNBQWlDLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyx1QkFBdUIsQ0FBQyxvREFBb0QsWUFBWSxDQUFDLCtDQUErQyw2QkFBNkIsQ0FBQyxtREFBbUQsZ0NBQTJCLENBQTNCLDRCQUE0QixDQUFDLGlEQUFpRCxnQ0FBMkIsQ0FBM0IsNEJBQTRCLENBQUMseUNBQXlDLFVBQVUsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLDZFQUE2RSx5REFBdUQsQ0FBdkQsd0RBQXdELENBQUMsMkRBQTJELFdBQVcsQ0FBQyxjQUFjLENBQUMseUNBQXlDLENBQUMsMkVBQTJFLDBEQUFzRCxDQUF0RCx1REFBdUQsQ0FBQyx5REFBeUQsVUFBVSxDQUFDLGFBQWEsQ0FBQywwQ0FBMEMsQ0FBQywrQ0FBK0MsK0JBQStCXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIi8qKlxcbiAqIFN3aXBlciA3LjMuMFxcbiAqIE1vc3QgbW9kZXJuIG1vYmlsZSB0b3VjaCBzbGlkZXIgYW5kIGZyYW1ld29yayB3aXRoIGhhcmR3YXJlIGFjY2VsZXJhdGVkIHRyYW5zaXRpb25zXFxuICogaHR0cHM6Ly9zd2lwZXJqcy5jb21cXG4gKlxcbiAqIENvcHlyaWdodCAyMDE0LTIwMjEgVmxhZGltaXIgS2hhcmxhbXBpZGlcXG4gKlxcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZVxcbiAqXFxuICogUmVsZWFzZWQgb246IE5vdmVtYmVyIDE4LCAyMDIxXFxuICovXFxuXFxuQGZvbnQtZmFjZXtmb250LWZhbWlseTpzd2lwZXItaWNvbnM7c3JjOnVybCgnZGF0YTphcHBsaWNhdGlvbi9mb250LXdvZmY7Y2hhcnNldD11dGYtODtiYXNlNjQsIGQwOUdSZ0FCQUFBQUFBWmdBQkFBQUFBQURBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCR1JsUk5BQUFHUkFBQUFCb0FBQUFjaTZxSGtVZEVSVVlBQUFXZ0FBQUFJd0FBQUNRQVlBQlhSMUJQVXdBQUJoUUFBQUF1QUFBQU51QVk3K3hIVTFWQ0FBQUZ4QUFBQUZBQUFBQm0yZlBjelU5VEx6SUFBQUhjQUFBQVNnQUFBR0JQOVY1UlkyMWhjQUFBQWtRQUFBQ0lBQUFCWXQ2RjBjQmpkblFnQUFBQ3pBQUFBQVFBQUFBRUFCRUJSR2RoYzNBQUFBV1lBQUFBQ0FBQUFBai8vd0FEWjJ4NVpnQUFBeXdBQUFETUFBQUQyTUh0cnlWb1pXRmtBQUFCYkFBQUFEQUFBQUEyRTIrZW9XaG9aV0VBQUFHY0FBQUFId0FBQUNRQzlnRHphRzEwZUFBQUFpZ0FBQUFaQUFBQXJnSmtBQkZzYjJOaEFBQUMwQUFBQUZvQUFBQmFGUUFVR0cxaGVIQUFBQUc4QUFBQUh3QUFBQ0FBY0FCQWJtRnRaUUFBQS9nQUFBRTVBQUFDWHZGZEJ3bHdiM04wQUFBRk5BQUFBR0lBQUFDRTVzNzRoWGphWTJCa1lHQUFZcGY1SHUvaitXMitNbkF6TVlEQXphWDZRakQ2LzQvL0J4ajVHQThBdVJ3TVlHa0FQeXdMMTNqYVkyQmtZR0E4OFA4QWd4NGorLzhmUURZZkExQUVCV2dEQUlCMkJPb0FlTnBqWUdSZ1lOQmg0R2RnWWdBQkVNbklBQkp6WU5BRENRQUFDV2dBc1FCNDJtTmdZZnpDT0lHQmxZR0IwWWN4allHQndSMUtmMldRWkdoaFlHQmlZR1ZtZ0FGR0JpUVFrT2Fhd3REQW9NQlF4WGpnL3dFR1BjWUREQTR3TlVBMkNDZ3dzQUFBTzRFTDZnQUFlTnBqMk0wZ3lBQUNxeGdHTldCa1oyRDQvd01BK3hrRGRnQUFBSGphWTJCZ1lHYUFZQmtHUmdZUWlBSHlHTUY4RmdZSElNM0R3TUhBQkdRck1PZ3lXRExFTTFUOS93OFVCZkVNZ0x6RS8vLy9QLzUvL2YvVi94dityNGVhQUFlTWJBeHdJVVltSU1IRWdLWUFZalVjc0RBd3NMS3hjM0J5Y2ZQdzhqRVFBL2daQkFTRmhFVkV4Y1FsSktXa1pXVGw1QlVVbFpSVlZOWFVOVFFaQmdNQUFNUitFK2dBRVFGRUFBQUFLZ0FxQUNvQU5BQStBRWdBVWdCY0FHWUFjQUI2QUlRQWpnQ1lBS0lBckFDMkFNQUF5Z0RVQU40QTZBRHlBUHdCQmdFUUFSb0JKQUV1QVRnQlFnRk1BVllCWUFGcUFYUUJmZ0dJQVpJQm5BR21BYklCemdIc0FBQjQydTJOTVE2Q1VBeUdXNTY4eDlBbmVZWWdtNE1KYmhLRmFFeElPQVZYOEFwZXdTdDRCaWM0QWZlQWlkM1ZPQml4RHhmUFlFemE1TytYZmkwNFlBRGdnaVVJVUxDdUVKSzhWaE80YlN2cGRua3RISTVRQ1l0ZGkyc2w4Wm5YYUhscVVyTkt6ZEtjVDhjamxxK3J3WlN2SVZjek5pZXpzZm5QL3V6bm1mUEZCTk9ETTJLN01UUTQ1WUVBWnFHUDgxQW1HR2NGM2lQcU9vcDByMVNQVGFUYlZrZlVlNEhYajk3d1lFK3lOd1dZeHdXdTR2MXVnV0hnbzNTMVhkWkVWcVdNN0VUMGNmbkxHeFdma2dSNDJvMlB2V3JETUJTRmovSUhMYUYwektqUmdkaVZNd1NjTlJBb1dVb0g3OFkyaWNCL3lJWTA5QW42QUgyQmR1L1VCK3l4b3BZc2hRaUV2bnZ1MGRVUmdEdDhRZUM4UER3N0ZwamkzZkVBNHovUEVKNllPQjVoS2g0ZGozRXZYaHhQcUgvU0tVWTNySjdzclo0RlpuaDFQTUF0UGh3UDZmbDJQTUpNUERnZVE0clk4WVQ2R3phbzBlQUVBNDA5RHVnZ21UbkZuT2NTQ2lFaUxNZ3hDaVRJNkNxNURaVWQzUW1wMTB2TzBMYUxUZDJjak40Zk91bWxjN2xVWWJTUWNaRmt1dFJHN2c2SktaS3kwUm1kTFk2ODBDRG5FSitVTWtwRkZlMVJON254ZFZwWHJDNGFUdG5hdXJPblllcmNaZzJZVm1MTi9kL2djemZFaW1yRS9mcy9iT3VxMjlabW44dGxvT1JhWGdaZ0dhNzh5TzkvY25YbTJCcGFHdnEyNUR2OVM0RTkrNVNJYzlQcXVwSktoWUZTU2w0NytRY3IxbVlOQUFBQWVOcHR3MGNLd2tBQUFNRFpKQThRN09VSnZrTHNQZlo2ekZWRVJQeThxSGgyWUVSKzNpL0JQODN2SUJMTHlTc29LaW1ycUtxcGEyaHA2K2pxNlJzWUdobWJtSnFaU3kwc3JheHRiTzNzSFJ5ZG5FTVU0dVI2eXg3SkpYdmVQN1dyRHljQUFBQUFBQUgvL3dBQ2VOcGpZR1JnWU9BQlloa2daZ0pDWmdaTkJrWUdMUVp0SUpzRkxNWUFBQXczQUxnQWVOb2xpekVLZ0RBUUJDY2hSYkMyc0ZFUjBZRDZxVlFpQkN2L0g5ZXpHSTZaNVhCQXc4Q0JLL201aVFRVmF1VmJYTG5Pck1adjJvTGRLRmE4UGp1cnUyaEp6R2FibU9TTHpOTXp2dXRwQjNONDJtTmdaR0JnNEdLUVl6QmhZTXhKTE1sajRHQmdBWW93L1AvUEFKSmhMTTZzU29XS2ZXQ0FBd0RBamdiUkFBQjQybU5nWUdCa0FJSWJDWm81SVBybVVuMGhHQTBBTzhFRlRRQUEnKTtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWx9OnJvb3R7LS1zd2lwZXItdGhlbWUtY29sb3I6IzAwN2FmZn0uc3dpcGVye21hcmdpbi1sZWZ0OmF1dG87bWFyZ2luLXJpZ2h0OmF1dG87cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVuO2xpc3Qtc3R5bGU6bm9uZTtwYWRkaW5nOjA7ei1pbmRleDoxfS5zd2lwZXItdmVydGljYWw+LnN3aXBlci13cmFwcGVye2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uc3dpcGVyLXdyYXBwZXJ7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTt6LWluZGV4OjE7ZGlzcGxheTpmbGV4O3RyYW5zaXRpb24tcHJvcGVydHk6dHJhbnNmb3JtO2JveC1zaXppbmc6Y29udGVudC1ib3h9LnN3aXBlci1hbmRyb2lkIC5zd2lwZXItc2xpZGUsLnN3aXBlci13cmFwcGVye3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwcHgsMCwwKX0uc3dpcGVyLXBvaW50ZXItZXZlbnRze3RvdWNoLWFjdGlvbjpwYW4teX0uc3dpcGVyLXBvaW50ZXItZXZlbnRzLnN3aXBlci12ZXJ0aWNhbHt0b3VjaC1hY3Rpb246cGFuLXh9LnN3aXBlci1zbGlkZXtmbGV4LXNocmluazowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7cG9zaXRpb246cmVsYXRpdmU7dHJhbnNpdGlvbi1wcm9wZXJ0eTp0cmFuc2Zvcm19LnN3aXBlci1zbGlkZS1pbnZpc2libGUtYmxhbmt7dmlzaWJpbGl0eTpoaWRkZW59LnN3aXBlci1hdXRvaGVpZ2h0LC5zd2lwZXItYXV0b2hlaWdodCAuc3dpcGVyLXNsaWRle2hlaWdodDphdXRvfS5zd2lwZXItYXV0b2hlaWdodCAuc3dpcGVyLXdyYXBwZXJ7YWxpZ24taXRlbXM6ZmxleC1zdGFydDt0cmFuc2l0aW9uLXByb3BlcnR5OnRyYW5zZm9ybSxoZWlnaHR9LnN3aXBlci0zZCwuc3dpcGVyLTNkLnN3aXBlci1jc3MtbW9kZSAuc3dpcGVyLXdyYXBwZXJ7cGVyc3BlY3RpdmU6MTIwMHB4fS5zd2lwZXItM2QgLnN3aXBlci1jdWJlLXNoYWRvdywuc3dpcGVyLTNkIC5zd2lwZXItc2xpZGUsLnN3aXBlci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdywuc3dpcGVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LWJvdHRvbSwuc3dpcGVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LWxlZnQsLnN3aXBlci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1yaWdodCwuc3dpcGVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LXRvcCwuc3dpcGVyLTNkIC5zd2lwZXItd3JhcHBlcnt0cmFuc2Zvcm0tc3R5bGU6cHJlc2VydmUtM2R9LnN3aXBlci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdywuc3dpcGVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LWJvdHRvbSwuc3dpcGVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LWxlZnQsLnN3aXBlci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1yaWdodCwuc3dpcGVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LXRvcHtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtwb2ludGVyLWV2ZW50czpub25lO3otaW5kZXg6MTB9LnN3aXBlci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvd3tiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjE1KX0uc3dpcGVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LWxlZnR7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gbGVmdCxyZ2JhKDAsMCwwLC41KSxyZ2JhKDAsMCwwLDApKX0uc3dpcGVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LXJpZ2h0e2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LHJnYmEoMCwwLDAsLjUpLHJnYmEoMCwwLDAsMCkpfS5zd2lwZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctdG9we2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHRvcCxyZ2JhKDAsMCwwLC41KSxyZ2JhKDAsMCwwLDApKX0uc3dpcGVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LWJvdHRvbXtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20scmdiYSgwLDAsMCwuNSkscmdiYSgwLDAsMCwwKSl9LnN3aXBlci1jc3MtbW9kZT4uc3dpcGVyLXdyYXBwZXJ7b3ZlcmZsb3c6YXV0bztzY3JvbGxiYXItd2lkdGg6bm9uZTstbXMtb3ZlcmZsb3ctc3R5bGU6bm9uZX0uc3dpcGVyLWNzcy1tb2RlPi5zd2lwZXItd3JhcHBlcjo6LXdlYmtpdC1zY3JvbGxiYXJ7ZGlzcGxheTpub25lfS5zd2lwZXItY3NzLW1vZGU+LnN3aXBlci13cmFwcGVyPi5zd2lwZXItc2xpZGV7c2Nyb2xsLXNuYXAtYWxpZ246c3RhcnQgc3RhcnR9LnN3aXBlci1ob3Jpem9udGFsLnN3aXBlci1jc3MtbW9kZT4uc3dpcGVyLXdyYXBwZXJ7c2Nyb2xsLXNuYXAtdHlwZTp4IG1hbmRhdG9yeX0uc3dpcGVyLXZlcnRpY2FsLnN3aXBlci1jc3MtbW9kZT4uc3dpcGVyLXdyYXBwZXJ7c2Nyb2xsLXNuYXAtdHlwZTp5IG1hbmRhdG9yeX0uc3dpcGVyLWNlbnRlcmVkPi5zd2lwZXItd3JhcHBlcjo6YmVmb3Jle2NvbnRlbnQ6Jyc7ZmxleC1zaHJpbms6MDtvcmRlcjo5OTk5fS5zd2lwZXItY2VudGVyZWQuc3dpcGVyLWhvcml6b250YWw+LnN3aXBlci13cmFwcGVyPi5zd2lwZXItc2xpZGU6Zmlyc3QtY2hpbGR7bWFyZ2luLWlubGluZS1zdGFydDp2YXIoLS1zd2lwZXItY2VudGVyZWQtb2Zmc2V0LWJlZm9yZSl9LnN3aXBlci1jZW50ZXJlZC5zd2lwZXItaG9yaXpvbnRhbD4uc3dpcGVyLXdyYXBwZXI6OmJlZm9yZXtoZWlnaHQ6MTAwJTttaW4taGVpZ2h0OjFweDt3aWR0aDp2YXIoLS1zd2lwZXItY2VudGVyZWQtb2Zmc2V0LWFmdGVyKX0uc3dpcGVyLWNlbnRlcmVkLnN3aXBlci12ZXJ0aWNhbD4uc3dpcGVyLXdyYXBwZXI+LnN3aXBlci1zbGlkZTpmaXJzdC1jaGlsZHttYXJnaW4tYmxvY2stc3RhcnQ6dmFyKC0tc3dpcGVyLWNlbnRlcmVkLW9mZnNldC1iZWZvcmUpfS5zd2lwZXItY2VudGVyZWQuc3dpcGVyLXZlcnRpY2FsPi5zd2lwZXItd3JhcHBlcjo6YmVmb3Jle3dpZHRoOjEwMCU7bWluLXdpZHRoOjFweDtoZWlnaHQ6dmFyKC0tc3dpcGVyLWNlbnRlcmVkLW9mZnNldC1hZnRlcil9LnN3aXBlci1jZW50ZXJlZD4uc3dpcGVyLXdyYXBwZXI+LnN3aXBlci1zbGlkZXtzY3JvbGwtc25hcC1hbGlnbjpjZW50ZXIgY2VudGVyfVwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/swiper/swiper.min.css\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/getUrl.js": +/*!***************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/getUrl.js ***! + \***************************************************************************************/ +/***/ (function(module) { + +"use strict"; +eval("\nmodule.exports = function(url, options) {\n if (!options) {\n // eslint-disable-next-line no-param-reassign\n options = {\n };\n } // eslint-disable-next-line no-underscore-dangle, no-param-reassign\n url = url && url.__esModule ? url.default : url;\n if (typeof url !== 'string') {\n return url;\n } // If url is already wrapped in quotes, remove them\n if (/^['\"].*['\"]$/.test(url)) {\n // eslint-disable-next-line no-param-reassign\n url = url.slice(1, -1);\n }\n if (options.hash) {\n // eslint-disable-next-line no-param-reassign\n url += options.hash;\n } // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n if (/[\"'() \\t\\n]/.test(url) || options.needQuotes) {\n return '\"'.concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, '\\\\n'), '\"');\n }\n return url;\n};\n\n//# sourceMappingURL=getUrl.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9ydW50aW1lL2dldFVybC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9ydW50aW1lL2dldFVybC5qcz8wZTcxIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbih1cmwsIG9wdGlvbnMpIHtcbiAgICBpZiAoIW9wdGlvbnMpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgIG9wdGlvbnMgPSB7XG4gICAgICAgIH07XG4gICAgfSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZXJzY29yZS1kYW5nbGUsIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgdXJsID0gdXJsICYmIHVybC5fX2VzTW9kdWxlID8gdXJsLmRlZmF1bHQgOiB1cmw7XG4gICAgaWYgKHR5cGVvZiB1cmwgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiB1cmw7XG4gICAgfSAvLyBJZiB1cmwgaXMgYWxyZWFkeSB3cmFwcGVkIGluIHF1b3RlcywgcmVtb3ZlIHRoZW1cbiAgICBpZiAoL15bJ1wiXS4qWydcIl0kLy50ZXN0KHVybCkpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgIHVybCA9IHVybC5zbGljZSgxLCAtMSk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLmhhc2gpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgIHVybCArPSBvcHRpb25zLmhhc2g7XG4gICAgfSAvLyBTaG91bGQgdXJsIGJlIHdyYXBwZWQ/XG4gICAgLy8gU2VlIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtdmFsdWVzLTMvI3VybHNcbiAgICBpZiAoL1tcIicoKSBcXHRcXG5dLy50ZXN0KHVybCkgfHwgb3B0aW9ucy5uZWVkUXVvdGVzKSB7XG4gICAgICAgIHJldHVybiAnXCInLmNvbmNhdCh1cmwucmVwbGFjZSgvXCIvZywgJ1xcXFxcIicpLnJlcGxhY2UoL1xcbi9nLCAnXFxcXG4nKSwgJ1wiJyk7XG4gICAgfVxuICAgIHJldHVybiB1cmw7XG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1nZXRVcmwuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/getUrl.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2F&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cindex.jsx!": +/*!**********************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2F&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cindex.jsx! ***! + \**********************************************************************************************************************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/\",\n function () {\n return __webpack_require__(/*! ./src/pages/index.jsx */ \"./src/pages/index.jsx\");\n }\n ]);\n if(true) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/\"])\n });\n }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWNsaWVudC1wYWdlcy1sb2FkZXIuanM/cGFnZT0lMkYmYWJzb2x1dGVQYWdlUGF0aD1DJTNBJTVDVXNlcnMlNUNocCU1Q0Rlc2t0b3AlNUNidXNpbmVzcy1odWIlNUNzcmMlNUNwYWdlcyU1Q2luZGV4LmpzeCEuanMiLCJtYXBwaW5ncyI6IjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsbUJBQU8sQ0FBQyxvREFBdUI7QUFDOUM7QUFDQTtBQUNBLE9BQU8sSUFBVTtBQUNqQixNQUFNLFVBQVU7QUFDaEI7QUFDQSxPQUFPO0FBQ1A7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvPzhhZGMiXSwic291cmNlc0NvbnRlbnQiOlsiXG4gICAgKHdpbmRvdy5fX05FWFRfUCA9IHdpbmRvdy5fX05FWFRfUCB8fCBbXSkucHVzaChbXG4gICAgICBcIi9cIixcbiAgICAgIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHJlcXVpcmUoXCIuL3NyYy9wYWdlcy9pbmRleC5qc3hcIik7XG4gICAgICB9XG4gICAgXSk7XG4gICAgaWYobW9kdWxlLmhvdCkge1xuICAgICAgbW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgd2luZG93Ll9fTkVYVF9QLnB1c2goW1wiL1wiXSlcbiAgICAgIH0pO1xuICAgIH1cbiAgIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2F&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cindex.jsx!\n"); + +/***/ }), + +/***/ "./node_modules/slick-carousel/slick/slick-theme.css": +/*!***********************************************************!*\ + !*** ./node_modules/slick-carousel/slick/slick-theme.css ***! + \***********************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var api = __webpack_require__(/*! !../../next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js */ \"./node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js\");\n var content = __webpack_require__(/*! !!../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./slick-theme.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick-theme.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = function(element) {\n // These elements should always exist. If they do not,\n // this code should fail.\n var anchorElement = document.querySelector('#__next_css__DO_NOT_USE__');\n var parentNode = anchorElement.parentNode// Normally <head>\n ;\n // Each style tag should be placed right before our\n // anchor. By inserting before and not after, we do not\n // need to track the last inserted element.\n parentNode.insertBefore(element, anchorElement);\n };\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\nif (true) {\n if (!content.locals || module.hot.invalidate) {\n var isEqualLocals = function isEqualLocals(a, b, isNamedExport) {\n if (!a && b || a && !b) {\n return false;\n }\n let p;\n for(p in a){\n if (isNamedExport && p === 'default') {\n continue;\n }\n if (a[p] !== b[p]) {\n return false;\n }\n }\n for(p in b){\n if (isNamedExport && p === 'default') {\n continue;\n }\n if (!a[p]) {\n return false;\n }\n }\n return true;\n};\n var oldLocals = content.locals;\n\n module.hot.accept(\n /*! !!../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./slick-theme.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick-theme.css\",\n function () {\n content = __webpack_require__(/*! !!../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./slick-theme.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick-theme.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\n if (!isEqualLocals(oldLocals, content.locals)) {\n module.hot.invalidate();\n\n return;\n }\n\n oldLocals = content.locals;\n\n update(content);\n }\n )\n }\n\n module.hot.dispose(function() {\n update();\n });\n}\n\nmodule.exports = content.locals || {};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc2xpY2stY2Fyb3VzZWwvc2xpY2svc2xpY2stdGhlbWUuY3NzLmpzIiwibWFwcGluZ3MiOiJBQUFBLFVBQVUsbUJBQU8sQ0FBQywwTUFBOEY7QUFDaEgsMEJBQTBCLG1CQUFPLENBQUMsc2ZBQStOOztBQUVqUTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOzs7QUFHQSxJQUFJLElBQVU7QUFDZCx5QkFBeUIsVUFBVTtBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsSUFBSSxpQkFBaUI7QUFDckIsTUFBTSxzZkFBK047QUFDck87QUFDQSxrQkFBa0IsbUJBQU8sQ0FBQyxzZkFBK047O0FBRXpQOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGdCQUFnQixVQUFVOztBQUUxQjtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLEVBQUUsVUFBVTtBQUNaO0FBQ0EsR0FBRztBQUNIOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zbGljay1jYXJvdXNlbC9zbGljay9zbGljay10aGVtZS5jc3M/NzcyOCJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgYXBpID0gcmVxdWlyZShcIiEuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtc3R5bGUtbG9hZGVyL3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCIpO1xuICAgICAgICAgICAgdmFyIGNvbnRlbnQgPSByZXF1aXJlKFwiISEuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL2Nzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzhdLnVzZVsxXSEuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMl0hLi9zbGljay10aGVtZS5jc3NcIik7XG5cbiAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50Ll9fZXNNb2R1bGUgPyBjb250ZW50LmRlZmF1bHQgOiBjb250ZW50O1xuXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcbiAgICAgICAgICAgIH1cblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5pbnNlcnQgPSBmdW5jdGlvbihlbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgLy8gVGhlc2UgZWxlbWVudHMgc2hvdWxkIGFsd2F5cyBleGlzdC4gSWYgdGhleSBkbyBub3QsXG4gICAgICAgICAgICAgICAgLy8gdGhpcyBjb2RlIHNob3VsZCBmYWlsLlxuICAgICAgICAgICAgICAgIHZhciBhbmNob3JFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI19fbmV4dF9jc3NfX0RPX05PVF9VU0VfXycpO1xuICAgICAgICAgICAgICAgIHZhciBwYXJlbnROb2RlID0gYW5jaG9yRWxlbWVudC5wYXJlbnROb2RlLy8gTm9ybWFsbHkgPGhlYWQ+XG4gICAgICAgICAgICAgICAgO1xuICAgICAgICAgICAgICAgIC8vIEVhY2ggc3R5bGUgdGFnIHNob3VsZCBiZSBwbGFjZWQgcmlnaHQgYmVmb3JlIG91clxuICAgICAgICAgICAgICAgIC8vIGFuY2hvci4gQnkgaW5zZXJ0aW5nIGJlZm9yZSBhbmQgbm90IGFmdGVyLCB3ZSBkbyBub3RcbiAgICAgICAgICAgICAgICAvLyBuZWVkIHRvIHRyYWNrIHRoZSBsYXN0IGluc2VydGVkIGVsZW1lbnQuXG4gICAgICAgICAgICAgICAgcGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZWxlbWVudCwgYW5jaG9yRWxlbWVudCk7XG4gICAgICAgICAgICB9O1xub3B0aW9ucy5zaW5nbGV0b24gPSBmYWxzZTtcblxudmFyIHVwZGF0ZSA9IGFwaShjb250ZW50LCBvcHRpb25zKTtcblxuXG5pZiAobW9kdWxlLmhvdCkge1xuICBpZiAoIWNvbnRlbnQubG9jYWxzIHx8IG1vZHVsZS5ob3QuaW52YWxpZGF0ZSkge1xuICAgIHZhciBpc0VxdWFsTG9jYWxzID0gZnVuY3Rpb24gaXNFcXVhbExvY2FscyhhLCBiLCBpc05hbWVkRXhwb3J0KSB7XG4gICAgaWYgKCFhICYmIGIgfHwgYSAmJiAhYikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGxldCBwO1xuICAgIGZvcihwIGluIGEpe1xuICAgICAgICBpZiAoaXNOYW1lZEV4cG9ydCAmJiBwID09PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhW3BdICE9PSBiW3BdKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZm9yKHAgaW4gYil7XG4gICAgICAgIGlmIChpc05hbWVkRXhwb3J0ICYmIHAgPT09ICdkZWZhdWx0Jykge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFhW3BdKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG59O1xuICAgIHZhciBvbGRMb2NhbHMgPSBjb250ZW50LmxvY2FscztcblxuICAgIG1vZHVsZS5ob3QuYWNjZXB0KFxuICAgICAgXCIhIS4uLy4uL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvY3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzFdIS4uLy4uL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzhdLnVzZVsyXSEuL3NsaWNrLXRoZW1lLmNzc1wiLFxuICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICBjb250ZW50ID0gcmVxdWlyZShcIiEhLi4vLi4vbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMV0hLi4vLi4vbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzJdIS4vc2xpY2stdGhlbWUuY3NzXCIpO1xuXG4gICAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50Ll9fZXNNb2R1bGUgPyBjb250ZW50LmRlZmF1bHQgOiBjb250ZW50O1xuXG4gICAgICAgICAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBjb250ZW50ID0gW1ttb2R1bGUuaWQsIGNvbnRlbnQsICcnXV07XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBpZiAoIWlzRXF1YWxMb2NhbHMob2xkTG9jYWxzLCBjb250ZW50LmxvY2FscykpIHtcbiAgICAgICAgICAgICAgICBtb2R1bGUuaG90LmludmFsaWRhdGUoKTtcblxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIG9sZExvY2FscyA9IGNvbnRlbnQubG9jYWxzO1xuXG4gICAgICAgICAgICAgIHVwZGF0ZShjb250ZW50KTtcbiAgICAgIH1cbiAgICApXG4gIH1cblxuICBtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24oKSB7XG4gICAgdXBkYXRlKCk7XG4gIH0pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNvbnRlbnQubG9jYWxzIHx8IHt9OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/slick-carousel/slick/slick-theme.css\n"); + +/***/ }), + +/***/ "./node_modules/slick-carousel/slick/slick.css": +/*!*****************************************************!*\ + !*** ./node_modules/slick-carousel/slick/slick.css ***! + \*****************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var api = __webpack_require__(/*! !../../next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js */ \"./node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js\");\n var content = __webpack_require__(/*! !!../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./slick.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = function(element) {\n // These elements should always exist. If they do not,\n // this code should fail.\n var anchorElement = document.querySelector('#__next_css__DO_NOT_USE__');\n var parentNode = anchorElement.parentNode// Normally <head>\n ;\n // Each style tag should be placed right before our\n // anchor. By inserting before and not after, we do not\n // need to track the last inserted element.\n parentNode.insertBefore(element, anchorElement);\n };\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\nif (true) {\n if (!content.locals || module.hot.invalidate) {\n var isEqualLocals = function isEqualLocals(a, b, isNamedExport) {\n if (!a && b || a && !b) {\n return false;\n }\n let p;\n for(p in a){\n if (isNamedExport && p === 'default') {\n continue;\n }\n if (a[p] !== b[p]) {\n return false;\n }\n }\n for(p in b){\n if (isNamedExport && p === 'default') {\n continue;\n }\n if (!a[p]) {\n return false;\n }\n }\n return true;\n};\n var oldLocals = content.locals;\n\n module.hot.accept(\n /*! !!../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./slick.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick.css\",\n function () {\n content = __webpack_require__(/*! !!../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./slick.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\n if (!isEqualLocals(oldLocals, content.locals)) {\n module.hot.invalidate();\n\n return;\n }\n\n oldLocals = content.locals;\n\n update(content);\n }\n )\n }\n\n module.hot.dispose(function() {\n update();\n });\n}\n\nmodule.exports = content.locals || {};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc2xpY2stY2Fyb3VzZWwvc2xpY2svc2xpY2suY3NzLmpzIiwibWFwcGluZ3MiOiJBQUFBLFVBQVUsbUJBQU8sQ0FBQywwTUFBOEY7QUFDaEgsMEJBQTBCLG1CQUFPLENBQUMsMGVBQXlOOztBQUUzUDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOzs7QUFHQSxJQUFJLElBQVU7QUFDZCx5QkFBeUIsVUFBVTtBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsSUFBSSxpQkFBaUI7QUFDckIsTUFBTSwwZUFBeU47QUFDL047QUFDQSxrQkFBa0IsbUJBQU8sQ0FBQywwZUFBeU47O0FBRW5QOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGdCQUFnQixVQUFVOztBQUUxQjtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLEVBQUUsVUFBVTtBQUNaO0FBQ0EsR0FBRztBQUNIOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zbGljay1jYXJvdXNlbC9zbGljay9zbGljay5jc3M/NGM1YiJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgYXBpID0gcmVxdWlyZShcIiEuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtc3R5bGUtbG9hZGVyL3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCIpO1xuICAgICAgICAgICAgdmFyIGNvbnRlbnQgPSByZXF1aXJlKFwiISEuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL2Nzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzhdLnVzZVsxXSEuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMl0hLi9zbGljay5jc3NcIik7XG5cbiAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50Ll9fZXNNb2R1bGUgPyBjb250ZW50LmRlZmF1bHQgOiBjb250ZW50O1xuXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcbiAgICAgICAgICAgIH1cblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5pbnNlcnQgPSBmdW5jdGlvbihlbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgLy8gVGhlc2UgZWxlbWVudHMgc2hvdWxkIGFsd2F5cyBleGlzdC4gSWYgdGhleSBkbyBub3QsXG4gICAgICAgICAgICAgICAgLy8gdGhpcyBjb2RlIHNob3VsZCBmYWlsLlxuICAgICAgICAgICAgICAgIHZhciBhbmNob3JFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI19fbmV4dF9jc3NfX0RPX05PVF9VU0VfXycpO1xuICAgICAgICAgICAgICAgIHZhciBwYXJlbnROb2RlID0gYW5jaG9yRWxlbWVudC5wYXJlbnROb2RlLy8gTm9ybWFsbHkgPGhlYWQ+XG4gICAgICAgICAgICAgICAgO1xuICAgICAgICAgICAgICAgIC8vIEVhY2ggc3R5bGUgdGFnIHNob3VsZCBiZSBwbGFjZWQgcmlnaHQgYmVmb3JlIG91clxuICAgICAgICAgICAgICAgIC8vIGFuY2hvci4gQnkgaW5zZXJ0aW5nIGJlZm9yZSBhbmQgbm90IGFmdGVyLCB3ZSBkbyBub3RcbiAgICAgICAgICAgICAgICAvLyBuZWVkIHRvIHRyYWNrIHRoZSBsYXN0IGluc2VydGVkIGVsZW1lbnQuXG4gICAgICAgICAgICAgICAgcGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZWxlbWVudCwgYW5jaG9yRWxlbWVudCk7XG4gICAgICAgICAgICB9O1xub3B0aW9ucy5zaW5nbGV0b24gPSBmYWxzZTtcblxudmFyIHVwZGF0ZSA9IGFwaShjb250ZW50LCBvcHRpb25zKTtcblxuXG5pZiAobW9kdWxlLmhvdCkge1xuICBpZiAoIWNvbnRlbnQubG9jYWxzIHx8IG1vZHVsZS5ob3QuaW52YWxpZGF0ZSkge1xuICAgIHZhciBpc0VxdWFsTG9jYWxzID0gZnVuY3Rpb24gaXNFcXVhbExvY2FscyhhLCBiLCBpc05hbWVkRXhwb3J0KSB7XG4gICAgaWYgKCFhICYmIGIgfHwgYSAmJiAhYikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGxldCBwO1xuICAgIGZvcihwIGluIGEpe1xuICAgICAgICBpZiAoaXNOYW1lZEV4cG9ydCAmJiBwID09PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhW3BdICE9PSBiW3BdKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZm9yKHAgaW4gYil7XG4gICAgICAgIGlmIChpc05hbWVkRXhwb3J0ICYmIHAgPT09ICdkZWZhdWx0Jykge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFhW3BdKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG59O1xuICAgIHZhciBvbGRMb2NhbHMgPSBjb250ZW50LmxvY2FscztcblxuICAgIG1vZHVsZS5ob3QuYWNjZXB0KFxuICAgICAgXCIhIS4uLy4uL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvY3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzFdIS4uLy4uL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzhdLnVzZVsyXSEuL3NsaWNrLmNzc1wiLFxuICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICBjb250ZW50ID0gcmVxdWlyZShcIiEhLi4vLi4vbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMV0hLi4vLi4vbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzJdIS4vc2xpY2suY3NzXCIpO1xuXG4gICAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50Ll9fZXNNb2R1bGUgPyBjb250ZW50LmRlZmF1bHQgOiBjb250ZW50O1xuXG4gICAgICAgICAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBjb250ZW50ID0gW1ttb2R1bGUuaWQsIGNvbnRlbnQsICcnXV07XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBpZiAoIWlzRXF1YWxMb2NhbHMob2xkTG9jYWxzLCBjb250ZW50LmxvY2FscykpIHtcbiAgICAgICAgICAgICAgICBtb2R1bGUuaG90LmludmFsaWRhdGUoKTtcblxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIG9sZExvY2FscyA9IGNvbnRlbnQubG9jYWxzO1xuXG4gICAgICAgICAgICAgIHVwZGF0ZShjb250ZW50KTtcbiAgICAgIH1cbiAgICApXG4gIH1cblxuICBtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24oKSB7XG4gICAgdXBkYXRlKCk7XG4gIH0pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNvbnRlbnQubG9jYWxzIHx8IHt9OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/slick-carousel/slick/slick.css\n"); + +/***/ }), + +/***/ "./node_modules/swiper/modules/effect-fade/effect-fade.min.css": +/*!*********************************************************************!*\ + !*** ./node_modules/swiper/modules/effect-fade/effect-fade.min.css ***! + \*********************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var api = __webpack_require__(/*! !../../../next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js */ \"./node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js\");\n var content = __webpack_require__(/*! !!../../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./effect-fade.min.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/swiper/modules/effect-fade/effect-fade.min.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = function(element) {\n // These elements should always exist. If they do not,\n // this code should fail.\n var anchorElement = document.querySelector('#__next_css__DO_NOT_USE__');\n var parentNode = anchorElement.parentNode// Normally <head>\n ;\n // Each style tag should be placed right before our\n // anchor. By inserting before and not after, we do not\n // need to track the last inserted element.\n parentNode.insertBefore(element, anchorElement);\n };\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\nif (true) {\n if (!content.locals || module.hot.invalidate) {\n var isEqualLocals = function isEqualLocals(a, b, isNamedExport) {\n if (!a && b || a && !b) {\n return false;\n }\n let p;\n for(p in a){\n if (isNamedExport && p === 'default') {\n continue;\n }\n if (a[p] !== b[p]) {\n return false;\n }\n }\n for(p in b){\n if (isNamedExport && p === 'default') {\n continue;\n }\n if (!a[p]) {\n return false;\n }\n }\n return true;\n};\n var oldLocals = content.locals;\n\n module.hot.accept(\n /*! !!../../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./effect-fade.min.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/swiper/modules/effect-fade/effect-fade.min.css\",\n function () {\n content = __webpack_require__(/*! !!../../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./effect-fade.min.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/swiper/modules/effect-fade/effect-fade.min.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\n if (!isEqualLocals(oldLocals, content.locals)) {\n module.hot.invalidate();\n\n return;\n }\n\n oldLocals = content.locals;\n\n update(content);\n }\n )\n }\n\n module.hot.dispose(function() {\n update();\n });\n}\n\nmodule.exports = content.locals || {};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMvZWZmZWN0LWZhZGUvZWZmZWN0LWZhZGUubWluLmNzcy5qcyIsIm1hcHBpbmdzIjoiQUFBQSxVQUFVLG1CQUFPLENBQUMsNk1BQWlHO0FBQ25ILDBCQUEwQixtQkFBTyxDQUFDLDBnQkFBeU87O0FBRTNROztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7OztBQUdBLElBQUksSUFBVTtBQUNkLHlCQUF5QixVQUFVO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxJQUFJLGlCQUFpQjtBQUNyQixNQUFNLDBnQkFBeU87QUFDL087QUFDQSxrQkFBa0IsbUJBQU8sQ0FBQywwZ0JBQXlPOztBQUVuUTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxnQkFBZ0IsVUFBVTs7QUFFMUI7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxFQUFFLFVBQVU7QUFDWjtBQUNBLEdBQUc7QUFDSDs7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMvZWZmZWN0LWZhZGUvZWZmZWN0LWZhZGUubWluLmNzcz85NzhmIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBhcGkgPSByZXF1aXJlKFwiIS4uLy4uLy4uL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvbmV4dC1zdHlsZS1sb2FkZXIvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIik7XG4gICAgICAgICAgICB2YXIgY29udGVudCA9IHJlcXVpcmUoXCIhIS4uLy4uLy4uL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvY3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzFdIS4uLy4uLy4uL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzhdLnVzZVsyXSEuL2VmZmVjdC1mYWRlLm1pbi5jc3NcIik7XG5cbiAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50Ll9fZXNNb2R1bGUgPyBjb250ZW50LmRlZmF1bHQgOiBjb250ZW50O1xuXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcbiAgICAgICAgICAgIH1cblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5pbnNlcnQgPSBmdW5jdGlvbihlbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgLy8gVGhlc2UgZWxlbWVudHMgc2hvdWxkIGFsd2F5cyBleGlzdC4gSWYgdGhleSBkbyBub3QsXG4gICAgICAgICAgICAgICAgLy8gdGhpcyBjb2RlIHNob3VsZCBmYWlsLlxuICAgICAgICAgICAgICAgIHZhciBhbmNob3JFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI19fbmV4dF9jc3NfX0RPX05PVF9VU0VfXycpO1xuICAgICAgICAgICAgICAgIHZhciBwYXJlbnROb2RlID0gYW5jaG9yRWxlbWVudC5wYXJlbnROb2RlLy8gTm9ybWFsbHkgPGhlYWQ+XG4gICAgICAgICAgICAgICAgO1xuICAgICAgICAgICAgICAgIC8vIEVhY2ggc3R5bGUgdGFnIHNob3VsZCBiZSBwbGFjZWQgcmlnaHQgYmVmb3JlIG91clxuICAgICAgICAgICAgICAgIC8vIGFuY2hvci4gQnkgaW5zZXJ0aW5nIGJlZm9yZSBhbmQgbm90IGFmdGVyLCB3ZSBkbyBub3RcbiAgICAgICAgICAgICAgICAvLyBuZWVkIHRvIHRyYWNrIHRoZSBsYXN0IGluc2VydGVkIGVsZW1lbnQuXG4gICAgICAgICAgICAgICAgcGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZWxlbWVudCwgYW5jaG9yRWxlbWVudCk7XG4gICAgICAgICAgICB9O1xub3B0aW9ucy5zaW5nbGV0b24gPSBmYWxzZTtcblxudmFyIHVwZGF0ZSA9IGFwaShjb250ZW50LCBvcHRpb25zKTtcblxuXG5pZiAobW9kdWxlLmhvdCkge1xuICBpZiAoIWNvbnRlbnQubG9jYWxzIHx8IG1vZHVsZS5ob3QuaW52YWxpZGF0ZSkge1xuICAgIHZhciBpc0VxdWFsTG9jYWxzID0gZnVuY3Rpb24gaXNFcXVhbExvY2FscyhhLCBiLCBpc05hbWVkRXhwb3J0KSB7XG4gICAgaWYgKCFhICYmIGIgfHwgYSAmJiAhYikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGxldCBwO1xuICAgIGZvcihwIGluIGEpe1xuICAgICAgICBpZiAoaXNOYW1lZEV4cG9ydCAmJiBwID09PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhW3BdICE9PSBiW3BdKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZm9yKHAgaW4gYil7XG4gICAgICAgIGlmIChpc05hbWVkRXhwb3J0ICYmIHAgPT09ICdkZWZhdWx0Jykge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFhW3BdKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG59O1xuICAgIHZhciBvbGRMb2NhbHMgPSBjb250ZW50LmxvY2FscztcblxuICAgIG1vZHVsZS5ob3QuYWNjZXB0KFxuICAgICAgXCIhIS4uLy4uLy4uL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvY3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzFdIS4uLy4uLy4uL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzhdLnVzZVsyXSEuL2VmZmVjdC1mYWRlLm1pbi5jc3NcIixcbiAgICAgIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29udGVudCA9IHJlcXVpcmUoXCIhIS4uLy4uLy4uL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvY3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzFdIS4uLy4uLy4uL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzhdLnVzZVsyXSEuL2VmZmVjdC1mYWRlLm1pbi5jc3NcIik7XG5cbiAgICAgICAgICAgICAgY29udGVudCA9IGNvbnRlbnQuX19lc01vZHVsZSA/IGNvbnRlbnQuZGVmYXVsdCA6IGNvbnRlbnQ7XG5cbiAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmICghaXNFcXVhbExvY2FscyhvbGRMb2NhbHMsIGNvbnRlbnQubG9jYWxzKSkge1xuICAgICAgICAgICAgICAgIG1vZHVsZS5ob3QuaW52YWxpZGF0ZSgpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgb2xkTG9jYWxzID0gY29udGVudC5sb2NhbHM7XG5cbiAgICAgICAgICAgICAgdXBkYXRlKGNvbnRlbnQpO1xuICAgICAgfVxuICAgIClcbiAgfVxuXG4gIG1vZHVsZS5ob3QuZGlzcG9zZShmdW5jdGlvbigpIHtcbiAgICB1cGRhdGUoKTtcbiAgfSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY29udGVudC5sb2NhbHMgfHwge307Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/swiper/modules/effect-fade/effect-fade.min.css\n"); + +/***/ }), + +/***/ "./node_modules/swiper/modules/navigation/navigation.min.css": +/*!*******************************************************************!*\ + !*** ./node_modules/swiper/modules/navigation/navigation.min.css ***! + \*******************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var api = __webpack_require__(/*! !../../../next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js */ \"./node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js\");\n var content = __webpack_require__(/*! !!../../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./navigation.min.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/swiper/modules/navigation/navigation.min.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = function(element) {\n // These elements should always exist. If they do not,\n // this code should fail.\n var anchorElement = document.querySelector('#__next_css__DO_NOT_USE__');\n var parentNode = anchorElement.parentNode// Normally <head>\n ;\n // Each style tag should be placed right before our\n // anchor. By inserting before and not after, we do not\n // need to track the last inserted element.\n parentNode.insertBefore(element, anchorElement);\n };\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\nif (true) {\n if (!content.locals || module.hot.invalidate) {\n var isEqualLocals = function isEqualLocals(a, b, isNamedExport) {\n if (!a && b || a && !b) {\n return false;\n }\n let p;\n for(p in a){\n if (isNamedExport && p === 'default') {\n continue;\n }\n if (a[p] !== b[p]) {\n return false;\n }\n }\n for(p in b){\n if (isNamedExport && p === 'default') {\n continue;\n }\n if (!a[p]) {\n return false;\n }\n }\n return true;\n};\n var oldLocals = content.locals;\n\n module.hot.accept(\n /*! !!../../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./navigation.min.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/swiper/modules/navigation/navigation.min.css\",\n function () {\n content = __webpack_require__(/*! !!../../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./navigation.min.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/swiper/modules/navigation/navigation.min.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\n if (!isEqualLocals(oldLocals, content.locals)) {\n module.hot.invalidate();\n\n return;\n }\n\n oldLocals = content.locals;\n\n update(content);\n }\n )\n }\n\n module.hot.dispose(function() {\n update();\n });\n}\n\nmodule.exports = content.locals || {};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLm1pbi5jc3MuanMiLCJtYXBwaW5ncyI6IkFBQUEsVUFBVSxtQkFBTyxDQUFDLDZNQUFpRztBQUNuSCwwQkFBMEIsbUJBQU8sQ0FBQyx1Z0JBQXdPOztBQUUxUTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOzs7QUFHQSxJQUFJLElBQVU7QUFDZCx5QkFBeUIsVUFBVTtBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsSUFBSSxpQkFBaUI7QUFDckIsTUFBTSx1Z0JBQXdPO0FBQzlPO0FBQ0Esa0JBQWtCLG1CQUFPLENBQUMsdWdCQUF3Tzs7QUFFbFE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsZ0JBQWdCLFVBQVU7O0FBRTFCO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsRUFBRSxVQUFVO0FBQ1o7QUFDQSxHQUFHO0FBQ0g7O0FBRUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N3aXBlci9tb2R1bGVzL25hdmlnYXRpb24vbmF2aWdhdGlvbi5taW4uY3NzPzg2ODYiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGFwaSA9IHJlcXVpcmUoXCIhLi4vLi4vLi4vbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LXN0eWxlLWxvYWRlci9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiKTtcbiAgICAgICAgICAgIHZhciBjb250ZW50ID0gcmVxdWlyZShcIiEhLi4vLi4vLi4vbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMV0hLi4vLi4vLi4vbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzJdIS4vbmF2aWdhdGlvbi5taW4uY3NzXCIpO1xuXG4gICAgICAgICAgICBjb250ZW50ID0gY29udGVudC5fX2VzTW9kdWxlID8gY29udGVudC5kZWZhdWx0IDogY29udGVudDtcblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICBjb250ZW50ID0gW1ttb2R1bGUuaWQsIGNvbnRlbnQsICcnXV07XG4gICAgICAgICAgICB9XG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuaW5zZXJ0ID0gZnVuY3Rpb24oZWxlbWVudCkge1xuICAgICAgICAgICAgICAgIC8vIFRoZXNlIGVsZW1lbnRzIHNob3VsZCBhbHdheXMgZXhpc3QuIElmIHRoZXkgZG8gbm90LFxuICAgICAgICAgICAgICAgIC8vIHRoaXMgY29kZSBzaG91bGQgZmFpbC5cbiAgICAgICAgICAgICAgICB2YXIgYW5jaG9yRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNfX25leHRfY3NzX19ET19OT1RfVVNFX18nKTtcbiAgICAgICAgICAgICAgICB2YXIgcGFyZW50Tm9kZSA9IGFuY2hvckVsZW1lbnQucGFyZW50Tm9kZS8vIE5vcm1hbGx5IDxoZWFkPlxuICAgICAgICAgICAgICAgIDtcbiAgICAgICAgICAgICAgICAvLyBFYWNoIHN0eWxlIHRhZyBzaG91bGQgYmUgcGxhY2VkIHJpZ2h0IGJlZm9yZSBvdXJcbiAgICAgICAgICAgICAgICAvLyBhbmNob3IuIEJ5IGluc2VydGluZyBiZWZvcmUgYW5kIG5vdCBhZnRlciwgd2UgZG8gbm90XG4gICAgICAgICAgICAgICAgLy8gbmVlZCB0byB0cmFjayB0aGUgbGFzdCBpbnNlcnRlZCBlbGVtZW50LlxuICAgICAgICAgICAgICAgIHBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGVsZW1lbnQsIGFuY2hvckVsZW1lbnQpO1xuICAgICAgICAgICAgfTtcbm9wdGlvbnMuc2luZ2xldG9uID0gZmFsc2U7XG5cbnZhciB1cGRhdGUgPSBhcGkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuaWYgKG1vZHVsZS5ob3QpIHtcbiAgaWYgKCFjb250ZW50LmxvY2FscyB8fCBtb2R1bGUuaG90LmludmFsaWRhdGUpIHtcbiAgICB2YXIgaXNFcXVhbExvY2FscyA9IGZ1bmN0aW9uIGlzRXF1YWxMb2NhbHMoYSwgYiwgaXNOYW1lZEV4cG9ydCkge1xuICAgIGlmICghYSAmJiBiIHx8IGEgJiYgIWIpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBsZXQgcDtcbiAgICBmb3IocCBpbiBhKXtcbiAgICAgICAgaWYgKGlzTmFtZWRFeHBvcnQgJiYgcCA9PT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYVtwXSAhPT0gYltwXSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZvcihwIGluIGIpe1xuICAgICAgICBpZiAoaXNOYW1lZEV4cG9ydCAmJiBwID09PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghYVtwXSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufTtcbiAgICB2YXIgb2xkTG9jYWxzID0gY29udGVudC5sb2NhbHM7XG5cbiAgICBtb2R1bGUuaG90LmFjY2VwdChcbiAgICAgIFwiISEuLi8uLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL2Nzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzhdLnVzZVsxXSEuLi8uLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMl0hLi9uYXZpZ2F0aW9uLm1pbi5jc3NcIixcbiAgICAgIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29udGVudCA9IHJlcXVpcmUoXCIhIS4uLy4uLy4uL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvY3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzFdIS4uLy4uLy4uL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzhdLnVzZVsyXSEuL25hdmlnYXRpb24ubWluLmNzc1wiKTtcblxuICAgICAgICAgICAgICBjb250ZW50ID0gY29udGVudC5fX2VzTW9kdWxlID8gY29udGVudC5kZWZhdWx0IDogY29udGVudDtcblxuICAgICAgICAgICAgICBpZiAodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgY29udGVudCA9IFtbbW9kdWxlLmlkLCBjb250ZW50LCAnJ11dO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgaWYgKCFpc0VxdWFsTG9jYWxzKG9sZExvY2FscywgY29udGVudC5sb2NhbHMpKSB7XG4gICAgICAgICAgICAgICAgbW9kdWxlLmhvdC5pbnZhbGlkYXRlKCk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBvbGRMb2NhbHMgPSBjb250ZW50LmxvY2FscztcblxuICAgICAgICAgICAgICB1cGRhdGUoY29udGVudCk7XG4gICAgICB9XG4gICAgKVxuICB9XG5cbiAgbW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uKCkge1xuICAgIHVwZGF0ZSgpO1xuICB9KTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjb250ZW50LmxvY2FscyB8fCB7fTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/swiper/modules/navigation/navigation.min.css\n"); + +/***/ }), + +/***/ "./node_modules/swiper/modules/pagination/pagination.min.css": +/*!*******************************************************************!*\ + !*** ./node_modules/swiper/modules/pagination/pagination.min.css ***! + \*******************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var api = __webpack_require__(/*! !../../../next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js */ \"./node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js\");\n var content = __webpack_require__(/*! !!../../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./pagination.min.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/swiper/modules/pagination/pagination.min.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = function(element) {\n // These elements should always exist. If they do not,\n // this code should fail.\n var anchorElement = document.querySelector('#__next_css__DO_NOT_USE__');\n var parentNode = anchorElement.parentNode// Normally <head>\n ;\n // Each style tag should be placed right before our\n // anchor. By inserting before and not after, we do not\n // need to track the last inserted element.\n parentNode.insertBefore(element, anchorElement);\n };\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\nif (true) {\n if (!content.locals || module.hot.invalidate) {\n var isEqualLocals = function isEqualLocals(a, b, isNamedExport) {\n if (!a && b || a && !b) {\n return false;\n }\n let p;\n for(p in a){\n if (isNamedExport && p === 'default') {\n continue;\n }\n if (a[p] !== b[p]) {\n return false;\n }\n }\n for(p in b){\n if (isNamedExport && p === 'default') {\n continue;\n }\n if (!a[p]) {\n return false;\n }\n }\n return true;\n};\n var oldLocals = content.locals;\n\n module.hot.accept(\n /*! !!../../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./pagination.min.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/swiper/modules/pagination/pagination.min.css\",\n function () {\n content = __webpack_require__(/*! !!../../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./pagination.min.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/swiper/modules/pagination/pagination.min.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\n if (!isEqualLocals(oldLocals, content.locals)) {\n module.hot.invalidate();\n\n return;\n }\n\n oldLocals = content.locals;\n\n update(content);\n }\n )\n }\n\n module.hot.dispose(function() {\n update();\n });\n}\n\nmodule.exports = content.locals || {};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLm1pbi5jc3MuanMiLCJtYXBwaW5ncyI6IkFBQUEsVUFBVSxtQkFBTyxDQUFDLDZNQUFpRztBQUNuSCwwQkFBMEIsbUJBQU8sQ0FBQyx1Z0JBQXdPOztBQUUxUTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOzs7QUFHQSxJQUFJLElBQVU7QUFDZCx5QkFBeUIsVUFBVTtBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsSUFBSSxpQkFBaUI7QUFDckIsTUFBTSx1Z0JBQXdPO0FBQzlPO0FBQ0Esa0JBQWtCLG1CQUFPLENBQUMsdWdCQUF3Tzs7QUFFbFE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsZ0JBQWdCLFVBQVU7O0FBRTFCO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsRUFBRSxVQUFVO0FBQ1o7QUFDQSxHQUFHO0FBQ0g7O0FBRUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N3aXBlci9tb2R1bGVzL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5taW4uY3NzP2Q4MjUiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGFwaSA9IHJlcXVpcmUoXCIhLi4vLi4vLi4vbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LXN0eWxlLWxvYWRlci9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiKTtcbiAgICAgICAgICAgIHZhciBjb250ZW50ID0gcmVxdWlyZShcIiEhLi4vLi4vLi4vbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMV0hLi4vLi4vLi4vbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzJdIS4vcGFnaW5hdGlvbi5taW4uY3NzXCIpO1xuXG4gICAgICAgICAgICBjb250ZW50ID0gY29udGVudC5fX2VzTW9kdWxlID8gY29udGVudC5kZWZhdWx0IDogY29udGVudDtcblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICBjb250ZW50ID0gW1ttb2R1bGUuaWQsIGNvbnRlbnQsICcnXV07XG4gICAgICAgICAgICB9XG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuaW5zZXJ0ID0gZnVuY3Rpb24oZWxlbWVudCkge1xuICAgICAgICAgICAgICAgIC8vIFRoZXNlIGVsZW1lbnRzIHNob3VsZCBhbHdheXMgZXhpc3QuIElmIHRoZXkgZG8gbm90LFxuICAgICAgICAgICAgICAgIC8vIHRoaXMgY29kZSBzaG91bGQgZmFpbC5cbiAgICAgICAgICAgICAgICB2YXIgYW5jaG9yRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNfX25leHRfY3NzX19ET19OT1RfVVNFX18nKTtcbiAgICAgICAgICAgICAgICB2YXIgcGFyZW50Tm9kZSA9IGFuY2hvckVsZW1lbnQucGFyZW50Tm9kZS8vIE5vcm1hbGx5IDxoZWFkPlxuICAgICAgICAgICAgICAgIDtcbiAgICAgICAgICAgICAgICAvLyBFYWNoIHN0eWxlIHRhZyBzaG91bGQgYmUgcGxhY2VkIHJpZ2h0IGJlZm9yZSBvdXJcbiAgICAgICAgICAgICAgICAvLyBhbmNob3IuIEJ5IGluc2VydGluZyBiZWZvcmUgYW5kIG5vdCBhZnRlciwgd2UgZG8gbm90XG4gICAgICAgICAgICAgICAgLy8gbmVlZCB0byB0cmFjayB0aGUgbGFzdCBpbnNlcnRlZCBlbGVtZW50LlxuICAgICAgICAgICAgICAgIHBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGVsZW1lbnQsIGFuY2hvckVsZW1lbnQpO1xuICAgICAgICAgICAgfTtcbm9wdGlvbnMuc2luZ2xldG9uID0gZmFsc2U7XG5cbnZhciB1cGRhdGUgPSBhcGkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuaWYgKG1vZHVsZS5ob3QpIHtcbiAgaWYgKCFjb250ZW50LmxvY2FscyB8fCBtb2R1bGUuaG90LmludmFsaWRhdGUpIHtcbiAgICB2YXIgaXNFcXVhbExvY2FscyA9IGZ1bmN0aW9uIGlzRXF1YWxMb2NhbHMoYSwgYiwgaXNOYW1lZEV4cG9ydCkge1xuICAgIGlmICghYSAmJiBiIHx8IGEgJiYgIWIpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBsZXQgcDtcbiAgICBmb3IocCBpbiBhKXtcbiAgICAgICAgaWYgKGlzTmFtZWRFeHBvcnQgJiYgcCA9PT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYVtwXSAhPT0gYltwXSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZvcihwIGluIGIpe1xuICAgICAgICBpZiAoaXNOYW1lZEV4cG9ydCAmJiBwID09PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghYVtwXSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufTtcbiAgICB2YXIgb2xkTG9jYWxzID0gY29udGVudC5sb2NhbHM7XG5cbiAgICBtb2R1bGUuaG90LmFjY2VwdChcbiAgICAgIFwiISEuLi8uLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL2Nzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzhdLnVzZVsxXSEuLi8uLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMl0hLi9wYWdpbmF0aW9uLm1pbi5jc3NcIixcbiAgICAgIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29udGVudCA9IHJlcXVpcmUoXCIhIS4uLy4uLy4uL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvY3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzFdIS4uLy4uLy4uL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzhdLnVzZVsyXSEuL3BhZ2luYXRpb24ubWluLmNzc1wiKTtcblxuICAgICAgICAgICAgICBjb250ZW50ID0gY29udGVudC5fX2VzTW9kdWxlID8gY29udGVudC5kZWZhdWx0IDogY29udGVudDtcblxuICAgICAgICAgICAgICBpZiAodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgY29udGVudCA9IFtbbW9kdWxlLmlkLCBjb250ZW50LCAnJ11dO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgaWYgKCFpc0VxdWFsTG9jYWxzKG9sZExvY2FscywgY29udGVudC5sb2NhbHMpKSB7XG4gICAgICAgICAgICAgICAgbW9kdWxlLmhvdC5pbnZhbGlkYXRlKCk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBvbGRMb2NhbHMgPSBjb250ZW50LmxvY2FscztcblxuICAgICAgICAgICAgICB1cGRhdGUoY29udGVudCk7XG4gICAgICB9XG4gICAgKVxuICB9XG5cbiAgbW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uKCkge1xuICAgIHVwZGF0ZSgpO1xuICB9KTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjb250ZW50LmxvY2FscyB8fCB7fTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/swiper/modules/pagination/pagination.min.css\n"); + +/***/ }), + +/***/ "./node_modules/swiper/swiper.min.css": +/*!********************************************!*\ + !*** ./node_modules/swiper/swiper.min.css ***! + \********************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var api = __webpack_require__(/*! !../next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js */ \"./node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js\");\n var content = __webpack_require__(/*! !!../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./swiper.min.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/swiper/swiper.min.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = function(element) {\n // These elements should always exist. If they do not,\n // this code should fail.\n var anchorElement = document.querySelector('#__next_css__DO_NOT_USE__');\n var parentNode = anchorElement.parentNode// Normally <head>\n ;\n // Each style tag should be placed right before our\n // anchor. By inserting before and not after, we do not\n // need to track the last inserted element.\n parentNode.insertBefore(element, anchorElement);\n };\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\nif (true) {\n if (!content.locals || module.hot.invalidate) {\n var isEqualLocals = function isEqualLocals(a, b, isNamedExport) {\n if (!a && b || a && !b) {\n return false;\n }\n let p;\n for(p in a){\n if (isNamedExport && p === 'default') {\n continue;\n }\n if (a[p] !== b[p]) {\n return false;\n }\n }\n for(p in b){\n if (isNamedExport && p === 'default') {\n continue;\n }\n if (!a[p]) {\n return false;\n }\n }\n return true;\n};\n var oldLocals = content.locals;\n\n module.hot.accept(\n /*! !!../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./swiper.min.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/swiper/swiper.min.css\",\n function () {\n content = __webpack_require__(/*! !!../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./swiper.min.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/swiper/swiper.min.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\n if (!isEqualLocals(oldLocals, content.locals)) {\n module.hot.invalidate();\n\n return;\n }\n\n oldLocals = content.locals;\n\n update(content);\n }\n )\n }\n\n module.hot.dispose(function() {\n update();\n });\n}\n\nmodule.exports = content.locals || {};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL3N3aXBlci5taW4uY3NzLmpzIiwibWFwcGluZ3MiOiJBQUFBLFVBQVUsbUJBQU8sQ0FBQyx1TUFBMkY7QUFDN0csMEJBQTBCLG1CQUFPLENBQUMsZ2VBQXdOOztBQUUxUDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOzs7QUFHQSxJQUFJLElBQVU7QUFDZCx5QkFBeUIsVUFBVTtBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsSUFBSSxpQkFBaUI7QUFDckIsTUFBTSxnZUFBd047QUFDOU47QUFDQSxrQkFBa0IsbUJBQU8sQ0FBQyxnZUFBd047O0FBRWxQOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGdCQUFnQixVQUFVOztBQUUxQjtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLEVBQUUsVUFBVTtBQUNaO0FBQ0EsR0FBRztBQUNIOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zd2lwZXIvc3dpcGVyLm1pbi5jc3M/OWU0MCJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgYXBpID0gcmVxdWlyZShcIiEuLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtc3R5bGUtbG9hZGVyL3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCIpO1xuICAgICAgICAgICAgdmFyIGNvbnRlbnQgPSByZXF1aXJlKFwiISEuLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL2Nzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzhdLnVzZVsxXSEuLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMl0hLi9zd2lwZXIubWluLmNzc1wiKTtcblxuICAgICAgICAgICAgY29udGVudCA9IGNvbnRlbnQuX19lc01vZHVsZSA/IGNvbnRlbnQuZGVmYXVsdCA6IGNvbnRlbnQ7XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgY29udGVudCA9IFtbbW9kdWxlLmlkLCBjb250ZW50LCAnJ11dO1xuICAgICAgICAgICAgfVxuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLmluc2VydCA9IGZ1bmN0aW9uKGVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAvLyBUaGVzZSBlbGVtZW50cyBzaG91bGQgYWx3YXlzIGV4aXN0LiBJZiB0aGV5IGRvIG5vdCxcbiAgICAgICAgICAgICAgICAvLyB0aGlzIGNvZGUgc2hvdWxkIGZhaWwuXG4gICAgICAgICAgICAgICAgdmFyIGFuY2hvckVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjX19uZXh0X2Nzc19fRE9fTk9UX1VTRV9fJyk7XG4gICAgICAgICAgICAgICAgdmFyIHBhcmVudE5vZGUgPSBhbmNob3JFbGVtZW50LnBhcmVudE5vZGUvLyBOb3JtYWxseSA8aGVhZD5cbiAgICAgICAgICAgICAgICA7XG4gICAgICAgICAgICAgICAgLy8gRWFjaCBzdHlsZSB0YWcgc2hvdWxkIGJlIHBsYWNlZCByaWdodCBiZWZvcmUgb3VyXG4gICAgICAgICAgICAgICAgLy8gYW5jaG9yLiBCeSBpbnNlcnRpbmcgYmVmb3JlIGFuZCBub3QgYWZ0ZXIsIHdlIGRvIG5vdFxuICAgICAgICAgICAgICAgIC8vIG5lZWQgdG8gdHJhY2sgdGhlIGxhc3QgaW5zZXJ0ZWQgZWxlbWVudC5cbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlLmluc2VydEJlZm9yZShlbGVtZW50LCBhbmNob3JFbGVtZW50KTtcbiAgICAgICAgICAgIH07XG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xuXG52YXIgdXBkYXRlID0gYXBpKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cbmlmIChtb2R1bGUuaG90KSB7XG4gIGlmICghY29udGVudC5sb2NhbHMgfHwgbW9kdWxlLmhvdC5pbnZhbGlkYXRlKSB7XG4gICAgdmFyIGlzRXF1YWxMb2NhbHMgPSBmdW5jdGlvbiBpc0VxdWFsTG9jYWxzKGEsIGIsIGlzTmFtZWRFeHBvcnQpIHtcbiAgICBpZiAoIWEgJiYgYiB8fCBhICYmICFiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgbGV0IHA7XG4gICAgZm9yKHAgaW4gYSl7XG4gICAgICAgIGlmIChpc05hbWVkRXhwb3J0ICYmIHAgPT09ICdkZWZhdWx0Jykge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFbcF0gIT09IGJbcF0pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmb3IocCBpbiBiKXtcbiAgICAgICAgaWYgKGlzTmFtZWRFeHBvcnQgJiYgcCA9PT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWFbcF0pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn07XG4gICAgdmFyIG9sZExvY2FscyA9IGNvbnRlbnQubG9jYWxzO1xuXG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoXG4gICAgICBcIiEhLi4vbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMV0hLi4vbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzJdIS4vc3dpcGVyLm1pbi5jc3NcIixcbiAgICAgIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29udGVudCA9IHJlcXVpcmUoXCIhIS4uL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvY3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzFdIS4uL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzhdLnVzZVsyXSEuL3N3aXBlci5taW4uY3NzXCIpO1xuXG4gICAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50Ll9fZXNNb2R1bGUgPyBjb250ZW50LmRlZmF1bHQgOiBjb250ZW50O1xuXG4gICAgICAgICAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBjb250ZW50ID0gW1ttb2R1bGUuaWQsIGNvbnRlbnQsICcnXV07XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBpZiAoIWlzRXF1YWxMb2NhbHMob2xkTG9jYWxzLCBjb250ZW50LmxvY2FscykpIHtcbiAgICAgICAgICAgICAgICBtb2R1bGUuaG90LmludmFsaWRhdGUoKTtcblxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIG9sZExvY2FscyA9IGNvbnRlbnQubG9jYWxzO1xuXG4gICAgICAgICAgICAgIHVwZGF0ZShjb250ZW50KTtcbiAgICAgIH1cbiAgICApXG4gIH1cblxuICBtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24oKSB7XG4gICAgdXBkYXRlKCk7XG4gIH0pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNvbnRlbnQubG9jYWxzIHx8IHt9OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/swiper/swiper.min.css\n"); + +/***/ }), + +/***/ "./node_modules/next/link.js": +/*!***********************************!*\ + !*** ./node_modules/next/link.js ***! + \***********************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("module.exports = __webpack_require__(/*! ./dist/client/link */ \"./node_modules/next/dist/client/link.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9saW5rLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBLHlHQUE4QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9saW5rLmpzPzc1YjMiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Rpc3QvY2xpZW50L2xpbmsnKVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/link.js\n"); + +/***/ }), + +/***/ "./node_modules/react-slick/lib/arrows.js": +/*!************************************************!*\ + !*** ./node_modules/react-slick/lib/arrows.js ***! + \************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.NextArrow = exports.PrevArrow = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _classnames = _interopRequireDefault(__webpack_require__(/*! classnames */ \"./node_modules/classnames/index.js\"));\n\nvar _innerSliderUtils = __webpack_require__(/*! ./utils/innerSliderUtils */ \"./node_modules/react-slick/lib/utils/innerSliderUtils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar PrevArrow = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(PrevArrow, _React$PureComponent);\n\n var _super = _createSuper(PrevArrow);\n\n function PrevArrow() {\n _classCallCheck(this, PrevArrow);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(PrevArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var prevClasses = {\n \"slick-arrow\": true,\n \"slick-prev\": true\n };\n var prevHandler = this.clickHandler.bind(this, {\n message: \"previous\"\n });\n\n if (!this.props.infinite && (this.props.currentSlide === 0 || this.props.slideCount <= this.props.slidesToShow)) {\n prevClasses[\"slick-disabled\"] = true;\n prevHandler = null;\n }\n\n var prevArrowProps = {\n key: \"0\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(prevClasses),\n style: {\n display: \"block\"\n },\n onClick: prevHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var prevArrow;\n\n if (this.props.prevArrow) {\n prevArrow = /*#__PURE__*/_react[\"default\"].cloneElement(this.props.prevArrow, _objectSpread(_objectSpread({}, prevArrowProps), customProps));\n } else {\n prevArrow = /*#__PURE__*/_react[\"default\"].createElement(\"button\", _extends({\n key: \"0\",\n type: \"button\"\n }, prevArrowProps), \" \", \"Previous\");\n }\n\n return prevArrow;\n }\n }]);\n\n return PrevArrow;\n}(_react[\"default\"].PureComponent);\n\nexports.PrevArrow = PrevArrow;\n\nvar NextArrow = /*#__PURE__*/function (_React$PureComponent2) {\n _inherits(NextArrow, _React$PureComponent2);\n\n var _super2 = _createSuper(NextArrow);\n\n function NextArrow() {\n _classCallCheck(this, NextArrow);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(NextArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var nextClasses = {\n \"slick-arrow\": true,\n \"slick-next\": true\n };\n var nextHandler = this.clickHandler.bind(this, {\n message: \"next\"\n });\n\n if (!(0, _innerSliderUtils.canGoNext)(this.props)) {\n nextClasses[\"slick-disabled\"] = true;\n nextHandler = null;\n }\n\n var nextArrowProps = {\n key: \"1\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(nextClasses),\n style: {\n display: \"block\"\n },\n onClick: nextHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var nextArrow;\n\n if (this.props.nextArrow) {\n nextArrow = /*#__PURE__*/_react[\"default\"].cloneElement(this.props.nextArrow, _objectSpread(_objectSpread({}, nextArrowProps), customProps));\n } else {\n nextArrow = /*#__PURE__*/_react[\"default\"].createElement(\"button\", _extends({\n key: \"1\",\n type: \"button\"\n }, nextArrowProps), \" \", \"Next\");\n }\n\n return nextArrow;\n }\n }]);\n\n return NextArrow;\n}(_react[\"default\"].PureComponent);\n\nexports.NextArrow = NextArrow;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2xpY2svbGliL2Fycm93cy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixpQkFBaUIsR0FBRyxpQkFBaUI7O0FBRXJDLG9DQUFvQyxtQkFBTyxDQUFDLDRDQUFPOztBQUVuRCx5Q0FBeUMsbUJBQU8sQ0FBQyxzREFBWTs7QUFFN0Qsd0JBQXdCLG1CQUFPLENBQUMsMEZBQTBCOztBQUUxRCx1Q0FBdUMsdUNBQXVDOztBQUU5RSx3QkFBd0IsMkJBQTJCLDJFQUEyRSxrQ0FBa0Msd0JBQXdCLE9BQU8sa0NBQWtDLG1JQUFtSTs7QUFFcFcsc0JBQXNCLGdEQUFnRCxnQkFBZ0Isc0JBQXNCLE9BQU8sMkJBQTJCLDBCQUEwQix5REFBeUQsaUNBQWlDLGtCQUFrQjs7QUFFcFIsMkNBQTJDLGdDQUFnQyxvQ0FBb0Msb0RBQW9ELDhEQUE4RCxpRUFBaUUsR0FBRyxrQ0FBa0M7O0FBRXZVLGlDQUFpQyxnQkFBZ0Isc0JBQXNCLE9BQU8sdURBQXVELGFBQWEsdURBQXVELDRDQUE0QyxLQUFLLDZDQUE2Qyw2RUFBNkUsT0FBTyxpREFBaUQsbUZBQW1GLE9BQU87O0FBRXRnQiw0Q0FBNEMsa0JBQWtCLGtDQUFrQyxvRUFBb0UsS0FBSyxPQUFPLG9CQUFvQjs7QUFFcE0sa0RBQWtELDBDQUEwQzs7QUFFNUYsNENBQTRDLGdCQUFnQixrQkFBa0IsT0FBTywyQkFBMkIsd0RBQXdELGdDQUFnQyx1REFBdUQ7O0FBRS9QLDhEQUE4RCxzRUFBc0UsOERBQThEOztBQUVsTSwyQ0FBMkMsK0RBQStELDZFQUE2RSx5RUFBeUUsZUFBZSx1REFBdUQsR0FBRzs7QUFFelUsaUNBQWlDLDRFQUE0RSxpQkFBaUIsYUFBYTs7QUFFM0ksaUNBQWlDLDZEQUE2RCx5Q0FBeUMsOENBQThDLGlDQUFpQyxtREFBbUQsMkRBQTJELE9BQU8seUNBQXlDOztBQUVwWCxrREFBa0QsMEVBQTBFLGVBQWU7O0FBRTNJLHdDQUF3Qyx1QkFBdUIseUZBQXlGOztBQUV4Six1Q0FBdUMsd0VBQXdFLDBDQUEwQyw4Q0FBOEMsTUFBTSx1RUFBdUUsSUFBSSxlQUFlLFlBQVk7O0FBRW5ULDhCQUE4QixnR0FBZ0csbURBQW1EOztBQUVqTDtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTzs7QUFFUDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxvSEFBb0g7QUFDcEgsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDs7QUFFQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBLENBQUM7O0FBRUQsaUJBQWlCOztBQUVqQjtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTzs7QUFFUDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxvSEFBb0g7QUFDcEgsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDs7QUFFQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBLENBQUM7O0FBRUQsaUJBQWlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zbGljay9saWIvYXJyb3dzLmpzPzY2ODciXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLk5leHRBcnJvdyA9IGV4cG9ydHMuUHJldkFycm93ID0gdm9pZCAwO1xuXG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX2NsYXNzbmFtZXMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJjbGFzc25hbWVzXCIpKTtcblxudmFyIF9pbm5lclNsaWRlclV0aWxzID0gcmVxdWlyZShcIi4vdXRpbHMvaW5uZXJTbGlkZXJVdGlsc1wiKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjsgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiKSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfTsgfSBlbHNlIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9OyB9IHJldHVybiBfdHlwZW9mKG9iaik7IH1cblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cblxuZnVuY3Rpb24gb3duS2V5cyhvYmplY3QsIGVudW1lcmFibGVPbmx5KSB7IHZhciBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KTsgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHsgdmFyIHN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG9iamVjdCk7IGlmIChlbnVtZXJhYmxlT25seSkgc3ltYm9scyA9IHN5bWJvbHMuZmlsdGVyKGZ1bmN0aW9uIChzeW0pIHsgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LCBzeW0pLmVudW1lcmFibGU7IH0pOyBrZXlzLnB1c2guYXBwbHkoa2V5cywgc3ltYm9scyk7IH0gcmV0dXJuIGtleXM7IH1cblxuZnVuY3Rpb24gX29iamVjdFNwcmVhZCh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXSAhPSBudWxsID8gYXJndW1lbnRzW2ldIDoge307IGlmIChpICUgMikgeyBvd25LZXlzKE9iamVjdChzb3VyY2UpLCB0cnVlKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsgX2RlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBzb3VyY2Vba2V5XSk7IH0pOyB9IGVsc2UgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoc291cmNlKSk7IH0gZWxzZSB7IG93bktleXMoT2JqZWN0KHNvdXJjZSkpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc291cmNlLCBrZXkpKTsgfSk7IH0gfSByZXR1cm4gdGFyZ2V0OyB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsgaWYgKGtleSBpbiBvYmopIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsgfSBlbHNlIHsgb2JqW2tleV0gPSB2YWx1ZTsgfSByZXR1cm4gb2JqOyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH1cblxuZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIF9zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcyk7IH1cblxuZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgX3NldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IG8uX19wcm90b19fID0gcDsgcmV0dXJuIG87IH07IHJldHVybiBfc2V0UHJvdG90eXBlT2YobywgcCk7IH1cblxuZnVuY3Rpb24gX2NyZWF0ZVN1cGVyKERlcml2ZWQpIHsgdmFyIGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCk7IHJldHVybiBmdW5jdGlvbiBfY3JlYXRlU3VwZXJJbnRlcm5hbCgpIHsgdmFyIFN1cGVyID0gX2dldFByb3RvdHlwZU9mKERlcml2ZWQpLCByZXN1bHQ7IGlmIChoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KSB7IHZhciBOZXdUYXJnZXQgPSBfZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3I7IHJlc3VsdCA9IFJlZmxlY3QuY29uc3RydWN0KFN1cGVyLCBhcmd1bWVudHMsIE5ld1RhcmdldCk7IH0gZWxzZSB7IHJlc3VsdCA9IFN1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH0gcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIHJlc3VsdCk7IH07IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoY2FsbCAmJiAoX3R5cGVvZihjYWxsKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkgeyByZXR1cm4gY2FsbDsgfSByZXR1cm4gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKTsgfVxuXG5mdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpIHsgaWYgKHNlbGYgPT09IHZvaWQgMCkgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIHNlbGY7IH1cblxuZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHsgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiIHx8ICFSZWZsZWN0LmNvbnN0cnVjdCkgcmV0dXJuIGZhbHNlOyBpZiAoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSkgcmV0dXJuIGZhbHNlOyBpZiAodHlwZW9mIFByb3h5ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB0cnVlOyB0cnkgeyBEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFJlZmxlY3QuY29uc3RydWN0KERhdGUsIFtdLCBmdW5jdGlvbiAoKSB7fSkpOyByZXR1cm4gdHJ1ZTsgfSBjYXRjaCAoZSkgeyByZXR1cm4gZmFsc2U7IH0gfVxuXG5mdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyByZXR1cm4gby5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pOyB9OyByZXR1cm4gX2dldFByb3RvdHlwZU9mKG8pOyB9XG5cbnZhciBQcmV2QXJyb3cgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9SZWFjdCRQdXJlQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhQcmV2QXJyb3csIF9SZWFjdCRQdXJlQ29tcG9uZW50KTtcblxuICB2YXIgX3N1cGVyID0gX2NyZWF0ZVN1cGVyKFByZXZBcnJvdyk7XG5cbiAgZnVuY3Rpb24gUHJldkFycm93KCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBQcmV2QXJyb3cpO1xuXG4gICAgcmV0dXJuIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKFByZXZBcnJvdywgW3tcbiAgICBrZXk6IFwiY2xpY2tIYW5kbGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNsaWNrSGFuZGxlcihvcHRpb25zLCBlKSB7XG4gICAgICBpZiAoZSkge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMucHJvcHMuY2xpY2tIYW5kbGVyKG9wdGlvbnMsIGUpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW5kZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgdmFyIHByZXZDbGFzc2VzID0ge1xuICAgICAgICBcInNsaWNrLWFycm93XCI6IHRydWUsXG4gICAgICAgIFwic2xpY2stcHJldlwiOiB0cnVlXG4gICAgICB9O1xuICAgICAgdmFyIHByZXZIYW5kbGVyID0gdGhpcy5jbGlja0hhbmRsZXIuYmluZCh0aGlzLCB7XG4gICAgICAgIG1lc3NhZ2U6IFwicHJldmlvdXNcIlxuICAgICAgfSk7XG5cbiAgICAgIGlmICghdGhpcy5wcm9wcy5pbmZpbml0ZSAmJiAodGhpcy5wcm9wcy5jdXJyZW50U2xpZGUgPT09IDAgfHwgdGhpcy5wcm9wcy5zbGlkZUNvdW50IDw9IHRoaXMucHJvcHMuc2xpZGVzVG9TaG93KSkge1xuICAgICAgICBwcmV2Q2xhc3Nlc1tcInNsaWNrLWRpc2FibGVkXCJdID0gdHJ1ZTtcbiAgICAgICAgcHJldkhhbmRsZXIgPSBudWxsO1xuICAgICAgfVxuXG4gICAgICB2YXIgcHJldkFycm93UHJvcHMgPSB7XG4gICAgICAgIGtleTogXCIwXCIsXG4gICAgICAgIFwiZGF0YS1yb2xlXCI6IFwibm9uZVwiLFxuICAgICAgICBjbGFzc05hbWU6ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKHByZXZDbGFzc2VzKSxcbiAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICBkaXNwbGF5OiBcImJsb2NrXCJcbiAgICAgICAgfSxcbiAgICAgICAgb25DbGljazogcHJldkhhbmRsZXJcbiAgICAgIH07XG4gICAgICB2YXIgY3VzdG9tUHJvcHMgPSB7XG4gICAgICAgIGN1cnJlbnRTbGlkZTogdGhpcy5wcm9wcy5jdXJyZW50U2xpZGUsXG4gICAgICAgIHNsaWRlQ291bnQ6IHRoaXMucHJvcHMuc2xpZGVDb3VudFxuICAgICAgfTtcbiAgICAgIHZhciBwcmV2QXJyb3c7XG5cbiAgICAgIGlmICh0aGlzLnByb3BzLnByZXZBcnJvdykge1xuICAgICAgICBwcmV2QXJyb3cgPSAvKiNfX1BVUkVfXyovX3JlYWN0W1wiZGVmYXVsdFwiXS5jbG9uZUVsZW1lbnQodGhpcy5wcm9wcy5wcmV2QXJyb3csIF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgcHJldkFycm93UHJvcHMpLCBjdXN0b21Qcm9wcykpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcHJldkFycm93ID0gLyojX19QVVJFX18qL19yZWFjdFtcImRlZmF1bHRcIl0uY3JlYXRlRWxlbWVudChcImJ1dHRvblwiLCBfZXh0ZW5kcyh7XG4gICAgICAgICAga2V5OiBcIjBcIixcbiAgICAgICAgICB0eXBlOiBcImJ1dHRvblwiXG4gICAgICAgIH0sIHByZXZBcnJvd1Byb3BzKSwgXCIgXCIsIFwiUHJldmlvdXNcIik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBwcmV2QXJyb3c7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIFByZXZBcnJvdztcbn0oX3JlYWN0W1wiZGVmYXVsdFwiXS5QdXJlQ29tcG9uZW50KTtcblxuZXhwb3J0cy5QcmV2QXJyb3cgPSBQcmV2QXJyb3c7XG5cbnZhciBOZXh0QXJyb3cgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9SZWFjdCRQdXJlQ29tcG9uZW50Mikge1xuICBfaW5oZXJpdHMoTmV4dEFycm93LCBfUmVhY3QkUHVyZUNvbXBvbmVudDIpO1xuXG4gIHZhciBfc3VwZXIyID0gX2NyZWF0ZVN1cGVyKE5leHRBcnJvdyk7XG5cbiAgZnVuY3Rpb24gTmV4dEFycm93KCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBOZXh0QXJyb3cpO1xuXG4gICAgcmV0dXJuIF9zdXBlcjIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhOZXh0QXJyb3csIFt7XG4gICAga2V5OiBcImNsaWNrSGFuZGxlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjbGlja0hhbmRsZXIob3B0aW9ucywgZSkge1xuICAgICAgaWYgKGUpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnByb3BzLmNsaWNrSGFuZGxlcihvcHRpb25zLCBlKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHZhciBuZXh0Q2xhc3NlcyA9IHtcbiAgICAgICAgXCJzbGljay1hcnJvd1wiOiB0cnVlLFxuICAgICAgICBcInNsaWNrLW5leHRcIjogdHJ1ZVxuICAgICAgfTtcbiAgICAgIHZhciBuZXh0SGFuZGxlciA9IHRoaXMuY2xpY2tIYW5kbGVyLmJpbmQodGhpcywge1xuICAgICAgICBtZXNzYWdlOiBcIm5leHRcIlxuICAgICAgfSk7XG5cbiAgICAgIGlmICghKDAsIF9pbm5lclNsaWRlclV0aWxzLmNhbkdvTmV4dCkodGhpcy5wcm9wcykpIHtcbiAgICAgICAgbmV4dENsYXNzZXNbXCJzbGljay1kaXNhYmxlZFwiXSA9IHRydWU7XG4gICAgICAgIG5leHRIYW5kbGVyID0gbnVsbDtcbiAgICAgIH1cblxuICAgICAgdmFyIG5leHRBcnJvd1Byb3BzID0ge1xuICAgICAgICBrZXk6IFwiMVwiLFxuICAgICAgICBcImRhdGEtcm9sZVwiOiBcIm5vbmVcIixcbiAgICAgICAgY2xhc3NOYW1lOiAoMCwgX2NsYXNzbmFtZXNbXCJkZWZhdWx0XCJdKShuZXh0Q2xhc3NlcyksXG4gICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgZGlzcGxheTogXCJibG9ja1wiXG4gICAgICAgIH0sXG4gICAgICAgIG9uQ2xpY2s6IG5leHRIYW5kbGVyXG4gICAgICB9O1xuICAgICAgdmFyIGN1c3RvbVByb3BzID0ge1xuICAgICAgICBjdXJyZW50U2xpZGU6IHRoaXMucHJvcHMuY3VycmVudFNsaWRlLFxuICAgICAgICBzbGlkZUNvdW50OiB0aGlzLnByb3BzLnNsaWRlQ291bnRcbiAgICAgIH07XG4gICAgICB2YXIgbmV4dEFycm93O1xuXG4gICAgICBpZiAodGhpcy5wcm9wcy5uZXh0QXJyb3cpIHtcbiAgICAgICAgbmV4dEFycm93ID0gLyojX19QVVJFX18qL19yZWFjdFtcImRlZmF1bHRcIl0uY2xvbmVFbGVtZW50KHRoaXMucHJvcHMubmV4dEFycm93LCBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIG5leHRBcnJvd1Byb3BzKSwgY3VzdG9tUHJvcHMpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5leHRBcnJvdyA9IC8qI19fUFVSRV9fKi9fcmVhY3RbXCJkZWZhdWx0XCJdLmNyZWF0ZUVsZW1lbnQoXCJidXR0b25cIiwgX2V4dGVuZHMoe1xuICAgICAgICAgIGtleTogXCIxXCIsXG4gICAgICAgICAgdHlwZTogXCJidXR0b25cIlxuICAgICAgICB9LCBuZXh0QXJyb3dQcm9wcyksIFwiIFwiLCBcIk5leHRcIik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBuZXh0QXJyb3c7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIE5leHRBcnJvdztcbn0oX3JlYWN0W1wiZGVmYXVsdFwiXS5QdXJlQ29tcG9uZW50KTtcblxuZXhwb3J0cy5OZXh0QXJyb3cgPSBOZXh0QXJyb3c7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/react-slick/lib/arrows.js\n"); + +/***/ }), + +/***/ "./node_modules/react-slick/lib/default-props.js": +/*!*******************************************************!*\ + !*** ./node_modules/react-slick/lib/default-props.js ***! + \*******************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar defaultProps = {\n accessibility: true,\n adaptiveHeight: false,\n afterChange: null,\n appendDots: function appendDots(dots) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"ul\", {\n style: {\n display: \"block\"\n }\n }, dots);\n },\n arrows: true,\n autoplay: false,\n autoplaySpeed: 3000,\n beforeChange: null,\n centerMode: false,\n centerPadding: \"50px\",\n className: \"\",\n cssEase: \"ease\",\n customPaging: function customPaging(i) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"button\", null, i + 1);\n },\n dots: false,\n dotsClass: \"slick-dots\",\n draggable: true,\n easing: \"linear\",\n edgeFriction: 0.35,\n fade: false,\n focusOnSelect: false,\n infinite: true,\n initialSlide: 0,\n lazyLoad: null,\n nextArrow: null,\n onEdge: null,\n onInit: null,\n onLazyLoadError: null,\n onReInit: null,\n pauseOnDotsHover: false,\n pauseOnFocus: false,\n pauseOnHover: true,\n prevArrow: null,\n responsive: null,\n rows: 1,\n rtl: false,\n slide: \"div\",\n slidesPerRow: 1,\n slidesToScroll: 1,\n slidesToShow: 1,\n speed: 500,\n swipe: true,\n swipeEvent: null,\n swipeToSlide: false,\n touchMove: true,\n touchThreshold: 5,\n useCSS: true,\n useTransform: true,\n variableWidth: false,\n vertical: false,\n waitForAnimate: true\n};\nvar _default = defaultProps;\nexports[\"default\"] = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2xpY2svbGliL2RlZmF1bHQtcHJvcHMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Ysa0JBQWtCOztBQUVsQixvQ0FBb0MsbUJBQU8sQ0FBQyw0Q0FBTzs7QUFFbkQsdUNBQXVDLHVDQUF1Qzs7QUFFOUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXNsaWNrL2xpYi9kZWZhdWx0LXByb3BzLmpzP2M5NTciXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcblxudmFyIF9yZWFjdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJlYWN0XCIpKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbnZhciBkZWZhdWx0UHJvcHMgPSB7XG4gIGFjY2Vzc2liaWxpdHk6IHRydWUsXG4gIGFkYXB0aXZlSGVpZ2h0OiBmYWxzZSxcbiAgYWZ0ZXJDaGFuZ2U6IG51bGwsXG4gIGFwcGVuZERvdHM6IGZ1bmN0aW9uIGFwcGVuZERvdHMoZG90cykge1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovX3JlYWN0W1wiZGVmYXVsdFwiXS5jcmVhdGVFbGVtZW50KFwidWxcIiwge1xuICAgICAgc3R5bGU6IHtcbiAgICAgICAgZGlzcGxheTogXCJibG9ja1wiXG4gICAgICB9XG4gICAgfSwgZG90cyk7XG4gIH0sXG4gIGFycm93czogdHJ1ZSxcbiAgYXV0b3BsYXk6IGZhbHNlLFxuICBhdXRvcGxheVNwZWVkOiAzMDAwLFxuICBiZWZvcmVDaGFuZ2U6IG51bGwsXG4gIGNlbnRlck1vZGU6IGZhbHNlLFxuICBjZW50ZXJQYWRkaW5nOiBcIjUwcHhcIixcbiAgY2xhc3NOYW1lOiBcIlwiLFxuICBjc3NFYXNlOiBcImVhc2VcIixcbiAgY3VzdG9tUGFnaW5nOiBmdW5jdGlvbiBjdXN0b21QYWdpbmcoaSkge1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovX3JlYWN0W1wiZGVmYXVsdFwiXS5jcmVhdGVFbGVtZW50KFwiYnV0dG9uXCIsIG51bGwsIGkgKyAxKTtcbiAgfSxcbiAgZG90czogZmFsc2UsXG4gIGRvdHNDbGFzczogXCJzbGljay1kb3RzXCIsXG4gIGRyYWdnYWJsZTogdHJ1ZSxcbiAgZWFzaW5nOiBcImxpbmVhclwiLFxuICBlZGdlRnJpY3Rpb246IDAuMzUsXG4gIGZhZGU6IGZhbHNlLFxuICBmb2N1c09uU2VsZWN0OiBmYWxzZSxcbiAgaW5maW5pdGU6IHRydWUsXG4gIGluaXRpYWxTbGlkZTogMCxcbiAgbGF6eUxvYWQ6IG51bGwsXG4gIG5leHRBcnJvdzogbnVsbCxcbiAgb25FZGdlOiBudWxsLFxuICBvbkluaXQ6IG51bGwsXG4gIG9uTGF6eUxvYWRFcnJvcjogbnVsbCxcbiAgb25SZUluaXQ6IG51bGwsXG4gIHBhdXNlT25Eb3RzSG92ZXI6IGZhbHNlLFxuICBwYXVzZU9uRm9jdXM6IGZhbHNlLFxuICBwYXVzZU9uSG92ZXI6IHRydWUsXG4gIHByZXZBcnJvdzogbnVsbCxcbiAgcmVzcG9uc2l2ZTogbnVsbCxcbiAgcm93czogMSxcbiAgcnRsOiBmYWxzZSxcbiAgc2xpZGU6IFwiZGl2XCIsXG4gIHNsaWRlc1BlclJvdzogMSxcbiAgc2xpZGVzVG9TY3JvbGw6IDEsXG4gIHNsaWRlc1RvU2hvdzogMSxcbiAgc3BlZWQ6IDUwMCxcbiAgc3dpcGU6IHRydWUsXG4gIHN3aXBlRXZlbnQ6IG51bGwsXG4gIHN3aXBlVG9TbGlkZTogZmFsc2UsXG4gIHRvdWNoTW92ZTogdHJ1ZSxcbiAgdG91Y2hUaHJlc2hvbGQ6IDUsXG4gIHVzZUNTUzogdHJ1ZSxcbiAgdXNlVHJhbnNmb3JtOiB0cnVlLFxuICB2YXJpYWJsZVdpZHRoOiBmYWxzZSxcbiAgdmVydGljYWw6IGZhbHNlLFxuICB3YWl0Rm9yQW5pbWF0ZTogdHJ1ZVxufTtcbnZhciBfZGVmYXVsdCA9IGRlZmF1bHRQcm9wcztcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gX2RlZmF1bHQ7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/react-slick/lib/default-props.js\n"); + +/***/ }), + +/***/ "./node_modules/react-slick/lib/dots.js": +/*!**********************************************!*\ + !*** ./node_modules/react-slick/lib/dots.js ***! + \**********************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.Dots = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _classnames = _interopRequireDefault(__webpack_require__(/*! classnames */ \"./node_modules/classnames/index.js\"));\n\nvar _innerSliderUtils = __webpack_require__(/*! ./utils/innerSliderUtils */ \"./node_modules/react-slick/lib/utils/innerSliderUtils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar getDotCount = function getDotCount(spec) {\n var dots;\n\n if (spec.infinite) {\n dots = Math.ceil(spec.slideCount / spec.slidesToScroll);\n } else {\n dots = Math.ceil((spec.slideCount - spec.slidesToShow) / spec.slidesToScroll) + 1;\n }\n\n return dots;\n};\n\nvar Dots = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Dots, _React$PureComponent);\n\n var _super = _createSuper(Dots);\n\n function Dots() {\n _classCallCheck(this, Dots);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Dots, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n // In Autoplay the focus stays on clicked button even after transition\n // to next slide. That only goes away by click somewhere outside\n e.preventDefault();\n this.props.clickHandler(options);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave,\n infinite = _this$props.infinite,\n slidesToScroll = _this$props.slidesToScroll,\n slidesToShow = _this$props.slidesToShow,\n slideCount = _this$props.slideCount,\n currentSlide = _this$props.currentSlide;\n var dotCount = getDotCount({\n slideCount: slideCount,\n slidesToScroll: slidesToScroll,\n slidesToShow: slidesToShow,\n infinite: infinite\n });\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n var dots = [];\n\n for (var i = 0; i < dotCount; i++) {\n var _rightBound = (i + 1) * slidesToScroll - 1;\n\n var rightBound = infinite ? _rightBound : (0, _innerSliderUtils.clamp)(_rightBound, 0, slideCount - 1);\n\n var _leftBound = rightBound - (slidesToScroll - 1);\n\n var leftBound = infinite ? _leftBound : (0, _innerSliderUtils.clamp)(_leftBound, 0, slideCount - 1);\n var className = (0, _classnames[\"default\"])({\n \"slick-active\": infinite ? currentSlide >= leftBound && currentSlide <= rightBound : currentSlide === leftBound\n });\n var dotOptions = {\n message: \"dots\",\n index: i,\n slidesToScroll: slidesToScroll,\n currentSlide: currentSlide\n };\n var onClick = this.clickHandler.bind(this, dotOptions);\n dots = dots.concat( /*#__PURE__*/_react[\"default\"].createElement(\"li\", {\n key: i,\n className: className\n }, /*#__PURE__*/_react[\"default\"].cloneElement(this.props.customPaging(i), {\n onClick: onClick\n })));\n }\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(this.props.appendDots(dots), _objectSpread({\n className: this.props.dotsClass\n }, mouseEvents));\n }\n }]);\n\n return Dots;\n}(_react[\"default\"].PureComponent);\n\nexports.Dots = Dots;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2xpY2svbGliL2RvdHMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsWUFBWTs7QUFFWixvQ0FBb0MsbUJBQU8sQ0FBQyw0Q0FBTzs7QUFFbkQseUNBQXlDLG1CQUFPLENBQUMsc0RBQVk7O0FBRTdELHdCQUF3QixtQkFBTyxDQUFDLDBGQUEwQjs7QUFFMUQsdUNBQXVDLHVDQUF1Qzs7QUFFOUUsd0JBQXdCLDJCQUEyQiwyRUFBMkUsa0NBQWtDLHdCQUF3QixPQUFPLGtDQUFrQyxtSUFBbUk7O0FBRXBXLDJDQUEyQyxnQ0FBZ0Msb0NBQW9DLG9EQUFvRCw4REFBOEQsaUVBQWlFLEdBQUcsa0NBQWtDOztBQUV2VSxpQ0FBaUMsZ0JBQWdCLHNCQUFzQixPQUFPLHVEQUF1RCxhQUFhLHVEQUF1RCw0Q0FBNEMsS0FBSyw2Q0FBNkMsNkVBQTZFLE9BQU8saURBQWlELG1GQUFtRixPQUFPOztBQUV0Z0IsNENBQTRDLGtCQUFrQixrQ0FBa0Msb0VBQW9FLEtBQUssT0FBTyxvQkFBb0I7O0FBRXBNLGtEQUFrRCwwQ0FBMEM7O0FBRTVGLDRDQUE0QyxnQkFBZ0Isa0JBQWtCLE9BQU8sMkJBQTJCLHdEQUF3RCxnQ0FBZ0MsdURBQXVEOztBQUUvUCw4REFBOEQsc0VBQXNFLDhEQUE4RDs7QUFFbE0sMkNBQTJDLCtEQUErRCw2RUFBNkUseUVBQXlFLGVBQWUsdURBQXVELEdBQUc7O0FBRXpVLGlDQUFpQyw0RUFBNEUsaUJBQWlCLGFBQWE7O0FBRTNJLGlDQUFpQyw2REFBNkQseUNBQXlDLDhDQUE4QyxpQ0FBaUMsbURBQW1ELDJEQUEyRCxPQUFPLHlDQUF5Qzs7QUFFcFgsa0RBQWtELDBFQUEwRSxlQUFlOztBQUUzSSx3Q0FBd0MsdUJBQXVCLHlGQUF5Rjs7QUFFeEosdUNBQXVDLHdFQUF3RSwwQ0FBMEMsOENBQThDLE1BQU0sdUVBQXVFLElBQUksZUFBZSxZQUFZOztBQUVuVCw4QkFBOEIsZ0dBQWdHLG1EQUFtRDs7QUFFakw7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxzQkFBc0IsY0FBYztBQUNwQzs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQSxTQUFTO0FBQ1Q7O0FBRUE7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLEdBQUc7O0FBRUg7QUFDQSxDQUFDOztBQUVELFlBQVkiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXNsaWNrL2xpYi9kb3RzLmpzP2VmYjMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLkRvdHMgPSB2b2lkIDA7XG5cbnZhciBfcmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbnZhciBfY2xhc3NuYW1lcyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcImNsYXNzbmFtZXNcIikpO1xuXG52YXIgX2lubmVyU2xpZGVyVXRpbHMgPSByZXF1aXJlKFwiLi91dGlscy9pbm5lclNsaWRlclV0aWxzXCIpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiOyBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiB0eXBlb2Ygb2JqOyB9OyB9IGVsc2UgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7IH07IH0gcmV0dXJuIF90eXBlb2Yob2JqKTsgfVxuXG5mdW5jdGlvbiBvd25LZXlzKG9iamVjdCwgZW51bWVyYWJsZU9ubHkpIHsgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhvYmplY3QpOyBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scykgeyB2YXIgc3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMob2JqZWN0KTsgaWYgKGVudW1lcmFibGVPbmx5KSBzeW1ib2xzID0gc3ltYm9scy5maWx0ZXIoZnVuY3Rpb24gKHN5bSkgeyByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmplY3QsIHN5bSkuZW51bWVyYWJsZTsgfSk7IGtleXMucHVzaC5hcHBseShrZXlzLCBzeW1ib2xzKTsgfSByZXR1cm4ga2V5czsgfVxuXG5mdW5jdGlvbiBfb2JqZWN0U3ByZWFkKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldICE9IG51bGwgPyBhcmd1bWVudHNbaV0gOiB7fTsgaWYgKGkgJSAyKSB7IG93bktleXMoT2JqZWN0KHNvdXJjZSksIHRydWUpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgeyBfZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHNvdXJjZVtrZXldKTsgfSk7IH0gZWxzZSBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMpIHsgT2JqZWN0LmRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhzb3VyY2UpKTsgfSBlbHNlIHsgb3duS2V5cyhPYmplY3Qoc291cmNlKSkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzb3VyY2UsIGtleSkpOyB9KTsgfSB9IHJldHVybiB0YXJnZXQ7IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KG9iaiwga2V5LCB2YWx1ZSkgeyBpZiAoa2V5IGluIG9iaikgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHsgdmFsdWU6IHZhbHVlLCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlIH0pOyB9IGVsc2UgeyBvYmpba2V5XSA9IHZhbHVlOyB9IHJldHVybiBvYmo7IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfVxuXG5mdW5jdGlvbiBfY3JlYXRlQ2xhc3MoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgX3NldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKTsgfVxuXG5mdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBfc2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgby5fX3Byb3RvX18gPSBwOyByZXR1cm4gbzsgfTsgcmV0dXJuIF9zZXRQcm90b3R5cGVPZihvLCBwKTsgfVxuXG5mdW5jdGlvbiBfY3JlYXRlU3VwZXIoRGVyaXZlZCkgeyB2YXIgaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCA9IF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKTsgcmV0dXJuIGZ1bmN0aW9uIF9jcmVhdGVTdXBlckludGVybmFsKCkgeyB2YXIgU3VwZXIgPSBfZ2V0UHJvdG90eXBlT2YoRGVyaXZlZCksIHJlc3VsdDsgaWYgKGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QpIHsgdmFyIE5ld1RhcmdldCA9IF9nZXRQcm90b3R5cGVPZih0aGlzKS5jb25zdHJ1Y3RvcjsgcmVzdWx0ID0gUmVmbGVjdC5jb25zdHJ1Y3QoU3VwZXIsIGFyZ3VtZW50cywgTmV3VGFyZ2V0KTsgfSBlbHNlIHsgcmVzdWx0ID0gU3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfSByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgcmVzdWx0KTsgfTsgfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmIChjYWxsICYmIChfdHlwZW9mKGNhbGwpID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpKSB7IHJldHVybiBjYWxsOyB9IHJldHVybiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpOyB9XG5cbmZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikgeyBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gc2VsZjsgfVxuXG5mdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkgeyBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwidW5kZWZpbmVkXCIgfHwgIVJlZmxlY3QuY29uc3RydWN0KSByZXR1cm4gZmFsc2U7IGlmIChSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKSByZXR1cm4gZmFsc2U7IGlmICh0eXBlb2YgUHJveHkgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHRydWU7IHRyeSB7IERhdGUucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoRGF0ZSwgW10sIGZ1bmN0aW9uICgpIHt9KSk7IHJldHVybiB0cnVlOyB9IGNhdGNoIChlKSB7IHJldHVybiBmYWxzZTsgfSB9XG5cbmZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IF9nZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5nZXRQcm90b3R5cGVPZiA6IGZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IHJldHVybiBvLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2Yobyk7IH07IHJldHVybiBfZ2V0UHJvdG90eXBlT2Yobyk7IH1cblxudmFyIGdldERvdENvdW50ID0gZnVuY3Rpb24gZ2V0RG90Q291bnQoc3BlYykge1xuICB2YXIgZG90cztcblxuICBpZiAoc3BlYy5pbmZpbml0ZSkge1xuICAgIGRvdHMgPSBNYXRoLmNlaWwoc3BlYy5zbGlkZUNvdW50IC8gc3BlYy5zbGlkZXNUb1Njcm9sbCk7XG4gIH0gZWxzZSB7XG4gICAgZG90cyA9IE1hdGguY2VpbCgoc3BlYy5zbGlkZUNvdW50IC0gc3BlYy5zbGlkZXNUb1Nob3cpIC8gc3BlYy5zbGlkZXNUb1Njcm9sbCkgKyAxO1xuICB9XG5cbiAgcmV0dXJuIGRvdHM7XG59O1xuXG52YXIgRG90cyA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX1JlYWN0JFB1cmVDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKERvdHMsIF9SZWFjdCRQdXJlQ29tcG9uZW50KTtcblxuICB2YXIgX3N1cGVyID0gX2NyZWF0ZVN1cGVyKERvdHMpO1xuXG4gIGZ1bmN0aW9uIERvdHMoKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIERvdHMpO1xuXG4gICAgcmV0dXJuIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKERvdHMsIFt7XG4gICAga2V5OiBcImNsaWNrSGFuZGxlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjbGlja0hhbmRsZXIob3B0aW9ucywgZSkge1xuICAgICAgLy8gSW4gQXV0b3BsYXkgdGhlIGZvY3VzIHN0YXlzIG9uIGNsaWNrZWQgYnV0dG9uIGV2ZW4gYWZ0ZXIgdHJhbnNpdGlvblxuICAgICAgLy8gdG8gbmV4dCBzbGlkZS4gVGhhdCBvbmx5IGdvZXMgYXdheSBieSBjbGljayBzb21ld2hlcmUgb3V0c2lkZVxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5wcm9wcy5jbGlja0hhbmRsZXIob3B0aW9ucyk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgX3RoaXMkcHJvcHMgPSB0aGlzLnByb3BzLFxuICAgICAgICAgIG9uTW91c2VFbnRlciA9IF90aGlzJHByb3BzLm9uTW91c2VFbnRlcixcbiAgICAgICAgICBvbk1vdXNlT3ZlciA9IF90aGlzJHByb3BzLm9uTW91c2VPdmVyLFxuICAgICAgICAgIG9uTW91c2VMZWF2ZSA9IF90aGlzJHByb3BzLm9uTW91c2VMZWF2ZSxcbiAgICAgICAgICBpbmZpbml0ZSA9IF90aGlzJHByb3BzLmluZmluaXRlLFxuICAgICAgICAgIHNsaWRlc1RvU2Nyb2xsID0gX3RoaXMkcHJvcHMuc2xpZGVzVG9TY3JvbGwsXG4gICAgICAgICAgc2xpZGVzVG9TaG93ID0gX3RoaXMkcHJvcHMuc2xpZGVzVG9TaG93LFxuICAgICAgICAgIHNsaWRlQ291bnQgPSBfdGhpcyRwcm9wcy5zbGlkZUNvdW50LFxuICAgICAgICAgIGN1cnJlbnRTbGlkZSA9IF90aGlzJHByb3BzLmN1cnJlbnRTbGlkZTtcbiAgICAgIHZhciBkb3RDb3VudCA9IGdldERvdENvdW50KHtcbiAgICAgICAgc2xpZGVDb3VudDogc2xpZGVDb3VudCxcbiAgICAgICAgc2xpZGVzVG9TY3JvbGw6IHNsaWRlc1RvU2Nyb2xsLFxuICAgICAgICBzbGlkZXNUb1Nob3c6IHNsaWRlc1RvU2hvdyxcbiAgICAgICAgaW5maW5pdGU6IGluZmluaXRlXG4gICAgICB9KTtcbiAgICAgIHZhciBtb3VzZUV2ZW50cyA9IHtcbiAgICAgICAgb25Nb3VzZUVudGVyOiBvbk1vdXNlRW50ZXIsXG4gICAgICAgIG9uTW91c2VPdmVyOiBvbk1vdXNlT3ZlcixcbiAgICAgICAgb25Nb3VzZUxlYXZlOiBvbk1vdXNlTGVhdmVcbiAgICAgIH07XG4gICAgICB2YXIgZG90cyA9IFtdO1xuXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRvdENvdW50OyBpKyspIHtcbiAgICAgICAgdmFyIF9yaWdodEJvdW5kID0gKGkgKyAxKSAqIHNsaWRlc1RvU2Nyb2xsIC0gMTtcblxuICAgICAgICB2YXIgcmlnaHRCb3VuZCA9IGluZmluaXRlID8gX3JpZ2h0Qm91bmQgOiAoMCwgX2lubmVyU2xpZGVyVXRpbHMuY2xhbXApKF9yaWdodEJvdW5kLCAwLCBzbGlkZUNvdW50IC0gMSk7XG5cbiAgICAgICAgdmFyIF9sZWZ0Qm91bmQgPSByaWdodEJvdW5kIC0gKHNsaWRlc1RvU2Nyb2xsIC0gMSk7XG5cbiAgICAgICAgdmFyIGxlZnRCb3VuZCA9IGluZmluaXRlID8gX2xlZnRCb3VuZCA6ICgwLCBfaW5uZXJTbGlkZXJVdGlscy5jbGFtcCkoX2xlZnRCb3VuZCwgMCwgc2xpZGVDb3VudCAtIDEpO1xuICAgICAgICB2YXIgY2xhc3NOYW1lID0gKDAsIF9jbGFzc25hbWVzW1wiZGVmYXVsdFwiXSkoe1xuICAgICAgICAgIFwic2xpY2stYWN0aXZlXCI6IGluZmluaXRlID8gY3VycmVudFNsaWRlID49IGxlZnRCb3VuZCAmJiBjdXJyZW50U2xpZGUgPD0gcmlnaHRCb3VuZCA6IGN1cnJlbnRTbGlkZSA9PT0gbGVmdEJvdW5kXG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgZG90T3B0aW9ucyA9IHtcbiAgICAgICAgICBtZXNzYWdlOiBcImRvdHNcIixcbiAgICAgICAgICBpbmRleDogaSxcbiAgICAgICAgICBzbGlkZXNUb1Njcm9sbDogc2xpZGVzVG9TY3JvbGwsXG4gICAgICAgICAgY3VycmVudFNsaWRlOiBjdXJyZW50U2xpZGVcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIG9uQ2xpY2sgPSB0aGlzLmNsaWNrSGFuZGxlci5iaW5kKHRoaXMsIGRvdE9wdGlvbnMpO1xuICAgICAgICBkb3RzID0gZG90cy5jb25jYXQoIC8qI19fUFVSRV9fKi9fcmVhY3RbXCJkZWZhdWx0XCJdLmNyZWF0ZUVsZW1lbnQoXCJsaVwiLCB7XG4gICAgICAgICAga2V5OiBpLFxuICAgICAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lXG4gICAgICAgIH0sIC8qI19fUFVSRV9fKi9fcmVhY3RbXCJkZWZhdWx0XCJdLmNsb25lRWxlbWVudCh0aGlzLnByb3BzLmN1c3RvbVBhZ2luZyhpKSwge1xuICAgICAgICAgIG9uQ2xpY2s6IG9uQ2xpY2tcbiAgICAgICAgfSkpKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9fcmVhY3RbXCJkZWZhdWx0XCJdLmNsb25lRWxlbWVudCh0aGlzLnByb3BzLmFwcGVuZERvdHMoZG90cyksIF9vYmplY3RTcHJlYWQoe1xuICAgICAgICBjbGFzc05hbWU6IHRoaXMucHJvcHMuZG90c0NsYXNzXG4gICAgICB9LCBtb3VzZUV2ZW50cykpO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBEb3RzO1xufShfcmVhY3RbXCJkZWZhdWx0XCJdLlB1cmVDb21wb25lbnQpO1xuXG5leHBvcnRzLkRvdHMgPSBEb3RzOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-slick/lib/dots.js\n"); + +/***/ }), + +/***/ "./node_modules/react-slick/lib/index.js": +/*!***********************************************!*\ + !*** ./node_modules/react-slick/lib/index.js ***! + \***********************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _slider = _interopRequireDefault(__webpack_require__(/*! ./slider */ \"./node_modules/react-slick/lib/slider.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _default = _slider[\"default\"];\nexports[\"default\"] = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2xpY2svbGliL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGtCQUFrQjs7QUFFbEIscUNBQXFDLG1CQUFPLENBQUMsMERBQVU7O0FBRXZELHVDQUF1Qyx1Q0FBdUM7O0FBRTlFO0FBQ0Esa0JBQWtCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zbGljay9saWIvaW5kZXguanM/YTA3NCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xuXG52YXIgX3NsaWRlciA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vc2xpZGVyXCIpKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbnZhciBfZGVmYXVsdCA9IF9zbGlkZXJbXCJkZWZhdWx0XCJdO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-slick/lib/index.js\n"); + +/***/ }), + +/***/ "./node_modules/react-slick/lib/initial-state.js": +/*!*******************************************************!*\ + !*** ./node_modules/react-slick/lib/initial-state.js ***! + \*******************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\nvar initialState = {\n animating: false,\n autoplaying: null,\n currentDirection: 0,\n currentLeft: null,\n currentSlide: 0,\n direction: 1,\n dragging: false,\n edgeDragged: false,\n initialized: false,\n lazyLoadedList: [],\n listHeight: null,\n listWidth: null,\n scrolling: false,\n slideCount: null,\n slideHeight: null,\n slideWidth: null,\n swipeLeft: null,\n swiped: false,\n // used by swipeEvent. differentites between touch and swipe.\n swiping: false,\n touchObject: {\n startX: 0,\n startY: 0,\n curX: 0,\n curY: 0\n },\n trackStyle: {},\n trackWidth: 0,\n targetSlide: 0\n};\nvar _default = initialState;\nexports[\"default\"] = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2xpY2svbGliL2luaXRpYWwtc3RhdGUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Ysa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0gsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zbGljay9saWIvaW5pdGlhbC1zdGF0ZS5qcz82MzU2Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG52YXIgaW5pdGlhbFN0YXRlID0ge1xuICBhbmltYXRpbmc6IGZhbHNlLFxuICBhdXRvcGxheWluZzogbnVsbCxcbiAgY3VycmVudERpcmVjdGlvbjogMCxcbiAgY3VycmVudExlZnQ6IG51bGwsXG4gIGN1cnJlbnRTbGlkZTogMCxcbiAgZGlyZWN0aW9uOiAxLFxuICBkcmFnZ2luZzogZmFsc2UsXG4gIGVkZ2VEcmFnZ2VkOiBmYWxzZSxcbiAgaW5pdGlhbGl6ZWQ6IGZhbHNlLFxuICBsYXp5TG9hZGVkTGlzdDogW10sXG4gIGxpc3RIZWlnaHQ6IG51bGwsXG4gIGxpc3RXaWR0aDogbnVsbCxcbiAgc2Nyb2xsaW5nOiBmYWxzZSxcbiAgc2xpZGVDb3VudDogbnVsbCxcbiAgc2xpZGVIZWlnaHQ6IG51bGwsXG4gIHNsaWRlV2lkdGg6IG51bGwsXG4gIHN3aXBlTGVmdDogbnVsbCxcbiAgc3dpcGVkOiBmYWxzZSxcbiAgLy8gdXNlZCBieSBzd2lwZUV2ZW50LiBkaWZmZXJlbnRpdGVzIGJldHdlZW4gdG91Y2ggYW5kIHN3aXBlLlxuICBzd2lwaW5nOiBmYWxzZSxcbiAgdG91Y2hPYmplY3Q6IHtcbiAgICBzdGFydFg6IDAsXG4gICAgc3RhcnRZOiAwLFxuICAgIGN1clg6IDAsXG4gICAgY3VyWTogMFxuICB9LFxuICB0cmFja1N0eWxlOiB7fSxcbiAgdHJhY2tXaWR0aDogMCxcbiAgdGFyZ2V0U2xpZGU6IDBcbn07XG52YXIgX2RlZmF1bHQgPSBpbml0aWFsU3RhdGU7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IF9kZWZhdWx0OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-slick/lib/initial-state.js\n"); + +/***/ }), + +/***/ "./node_modules/react-slick/lib/inner-slider.js": +/*!******************************************************!*\ + !*** ./node_modules/react-slick/lib/inner-slider.js ***! + \******************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.InnerSlider = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _initialState = _interopRequireDefault(__webpack_require__(/*! ./initial-state */ \"./node_modules/react-slick/lib/initial-state.js\"));\n\nvar _lodash = _interopRequireDefault(__webpack_require__(/*! lodash.debounce */ \"./node_modules/lodash.debounce/index.js\"));\n\nvar _classnames = _interopRequireDefault(__webpack_require__(/*! classnames */ \"./node_modules/classnames/index.js\"));\n\nvar _innerSliderUtils = __webpack_require__(/*! ./utils/innerSliderUtils */ \"./node_modules/react-slick/lib/utils/innerSliderUtils.js\");\n\nvar _track = __webpack_require__(/*! ./track */ \"./node_modules/react-slick/lib/track.js\");\n\nvar _dots = __webpack_require__(/*! ./dots */ \"./node_modules/react-slick/lib/dots.js\");\n\nvar _arrows = __webpack_require__(/*! ./arrows */ \"./node_modules/react-slick/lib/arrows.js\");\n\nvar _resizeObserverPolyfill = _interopRequireDefault(__webpack_require__(/*! resize-observer-polyfill */ \"./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar InnerSlider = /*#__PURE__*/function (_React$Component) {\n _inherits(InnerSlider, _React$Component);\n\n var _super = _createSuper(InnerSlider);\n\n function InnerSlider(props) {\n var _this;\n\n _classCallCheck(this, InnerSlider);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"listRefHandler\", function (ref) {\n return _this.list = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"trackRefHandler\", function (ref) {\n return _this.track = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"adaptHeight\", function () {\n if (_this.props.adaptiveHeight && _this.list) {\n var elem = _this.list.querySelector(\"[data-index=\\\"\".concat(_this.state.currentSlide, \"\\\"]\"));\n\n _this.list.style.height = (0, _innerSliderUtils.getHeight)(elem) + \"px\";\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentDidMount\", function () {\n _this.props.onInit && _this.props.onInit();\n\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n }\n\n var spec = _objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props);\n\n _this.updateState(spec, true, function () {\n _this.adaptHeight();\n\n _this.props.autoplay && _this.autoPlay(\"update\");\n });\n\n if (_this.props.lazyLoad === \"progressive\") {\n _this.lazyLoadTimer = setInterval(_this.progressiveLazyLoad, 1000);\n }\n\n _this.ro = new _resizeObserverPolyfill[\"default\"](function () {\n if (_this.state.animating) {\n _this.onWindowResized(false); // don't set trackStyle hence don't break animation\n\n\n _this.callbackTimers.push(setTimeout(function () {\n return _this.onWindowResized();\n }, _this.props.speed));\n } else {\n _this.onWindowResized();\n }\n });\n\n _this.ro.observe(_this.list);\n\n document.querySelectorAll && Array.prototype.forEach.call(document.querySelectorAll(\".slick-slide\"), function (slide) {\n slide.onfocus = _this.props.pauseOnFocus ? _this.onSlideFocus : null;\n slide.onblur = _this.props.pauseOnFocus ? _this.onSlideBlur : null;\n });\n\n if (window.addEventListener) {\n window.addEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.attachEvent(\"onresize\", _this.onWindowResized);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentWillUnmount\", function () {\n if (_this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n }\n\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n }\n\n if (_this.callbackTimers.length) {\n _this.callbackTimers.forEach(function (timer) {\n return clearTimeout(timer);\n });\n\n _this.callbackTimers = [];\n }\n\n if (window.addEventListener) {\n window.removeEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.detachEvent(\"onresize\", _this.onWindowResized);\n }\n\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n\n _this.ro.disconnect();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentDidUpdate\", function (prevProps) {\n _this.checkImagesLoad();\n\n _this.props.onReInit && _this.props.onReInit();\n\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n } // if (this.props.onLazyLoad) {\n // this.props.onLazyLoad([leftMostSlide])\n // }\n\n\n _this.adaptHeight();\n\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n\n var setTrackStyle = _this.didPropsChange(prevProps);\n\n setTrackStyle && _this.updateState(spec, setTrackStyle, function () {\n if (_this.state.currentSlide >= _react[\"default\"].Children.count(_this.props.children)) {\n _this.changeSlide({\n message: \"index\",\n index: _react[\"default\"].Children.count(_this.props.children) - _this.props.slidesToShow,\n currentSlide: _this.state.currentSlide\n });\n }\n\n if (_this.props.autoplay) {\n _this.autoPlay(\"update\");\n } else {\n _this.pause(\"paused\");\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onWindowResized\", function (setTrackStyle) {\n if (_this.debouncedResize) _this.debouncedResize.cancel();\n _this.debouncedResize = (0, _lodash[\"default\"])(function () {\n return _this.resizeWindow(setTrackStyle);\n }, 50);\n\n _this.debouncedResize();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"resizeWindow\", function () {\n var setTrackStyle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var isTrackMounted = Boolean(_this.track && _this.track.node); // prevent warning: setting state on unmounted component (server side rendering)\n\n if (!isTrackMounted) return;\n\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n\n _this.updateState(spec, setTrackStyle, function () {\n if (_this.props.autoplay) _this.autoPlay(\"update\");else _this.pause(\"paused\");\n }); // animating state should be cleared while resizing, otherwise autoplay stops working\n\n\n _this.setState({\n animating: false\n });\n\n clearTimeout(_this.animationEndCallback);\n delete _this.animationEndCallback;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updateState\", function (spec, setTrackStyle, callback) {\n var updatedState = (0, _innerSliderUtils.initializedState)(spec);\n spec = _objectSpread(_objectSpread(_objectSpread({}, spec), updatedState), {}, {\n slideIndex: updatedState.currentSlide\n });\n var targetLeft = (0, _innerSliderUtils.getTrackLeft)(spec);\n spec = _objectSpread(_objectSpread({}, spec), {}, {\n left: targetLeft\n });\n var trackStyle = (0, _innerSliderUtils.getTrackCSS)(spec);\n\n if (setTrackStyle || _react[\"default\"].Children.count(_this.props.children) !== _react[\"default\"].Children.count(spec.children)) {\n updatedState[\"trackStyle\"] = trackStyle;\n }\n\n _this.setState(updatedState, callback);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ssrInit\", function () {\n if (_this.props.variableWidth) {\n var _trackWidth = 0,\n _trackLeft = 0;\n var childrenWidths = [];\n var preClones = (0, _innerSliderUtils.getPreClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n var postClones = (0, _innerSliderUtils.getPostClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n\n _this.props.children.forEach(function (child) {\n childrenWidths.push(child.props.style.width);\n _trackWidth += child.props.style.width;\n });\n\n for (var i = 0; i < preClones; i++) {\n _trackLeft += childrenWidths[childrenWidths.length - 1 - i];\n _trackWidth += childrenWidths[childrenWidths.length - 1 - i];\n }\n\n for (var _i = 0; _i < postClones; _i++) {\n _trackWidth += childrenWidths[_i];\n }\n\n for (var _i2 = 0; _i2 < _this.state.currentSlide; _i2++) {\n _trackLeft += childrenWidths[_i2];\n }\n\n var _trackStyle = {\n width: _trackWidth + \"px\",\n left: -_trackLeft + \"px\"\n };\n\n if (_this.props.centerMode) {\n var currentWidth = \"\".concat(childrenWidths[_this.state.currentSlide], \"px\");\n _trackStyle.left = \"calc(\".concat(_trackStyle.left, \" + (100% - \").concat(currentWidth, \") / 2 ) \");\n }\n\n return {\n trackStyle: _trackStyle\n };\n }\n\n var childrenCount = _react[\"default\"].Children.count(_this.props.children);\n\n var spec = _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: childrenCount\n });\n\n var slideCount = (0, _innerSliderUtils.getPreClones)(spec) + (0, _innerSliderUtils.getPostClones)(spec) + childrenCount;\n var trackWidth = 100 / _this.props.slidesToShow * slideCount;\n var slideWidth = 100 / slideCount;\n var trackLeft = -slideWidth * ((0, _innerSliderUtils.getPreClones)(spec) + _this.state.currentSlide) * trackWidth / 100;\n\n if (_this.props.centerMode) {\n trackLeft += (100 - slideWidth * trackWidth / 100) / 2;\n }\n\n var trackStyle = {\n width: trackWidth + \"%\",\n left: trackLeft + \"%\"\n };\n return {\n slideWidth: slideWidth + \"%\",\n trackStyle: trackStyle\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), \"checkImagesLoad\", function () {\n var images = _this.list && _this.list.querySelectorAll && _this.list.querySelectorAll(\".slick-slide img\") || [];\n var imagesCount = images.length,\n loadedCount = 0;\n Array.prototype.forEach.call(images, function (image) {\n var handler = function handler() {\n return ++loadedCount && loadedCount >= imagesCount && _this.onWindowResized();\n };\n\n if (!image.onclick) {\n image.onclick = function () {\n return image.parentNode.focus();\n };\n } else {\n var prevClickHandler = image.onclick;\n\n image.onclick = function () {\n prevClickHandler();\n image.parentNode.focus();\n };\n }\n\n if (!image.onload) {\n if (_this.props.lazyLoad) {\n image.onload = function () {\n _this.adaptHeight();\n\n _this.callbackTimers.push(setTimeout(_this.onWindowResized, _this.props.speed));\n };\n } else {\n image.onload = handler;\n\n image.onerror = function () {\n handler();\n _this.props.onLazyLoadError && _this.props.onLazyLoadError();\n };\n }\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"progressiveLazyLoad\", function () {\n var slidesToLoad = [];\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n for (var index = _this.state.currentSlide; index < _this.state.slideCount + (0, _innerSliderUtils.getPostClones)(spec); index++) {\n if (_this.state.lazyLoadedList.indexOf(index) < 0) {\n slidesToLoad.push(index);\n break;\n }\n }\n\n for (var _index = _this.state.currentSlide - 1; _index >= -(0, _innerSliderUtils.getPreClones)(spec); _index--) {\n if (_this.state.lazyLoadedList.indexOf(_index) < 0) {\n slidesToLoad.push(_index);\n break;\n }\n }\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (state) {\n return {\n lazyLoadedList: state.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n } else {\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n delete _this.lazyLoadTimer;\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slideHandler\", function (index) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var _this$props = _this.props,\n asNavFor = _this$props.asNavFor,\n beforeChange = _this$props.beforeChange,\n onLazyLoad = _this$props.onLazyLoad,\n speed = _this$props.speed,\n afterChange = _this$props.afterChange; // capture currentslide before state is updated\n\n var currentSlide = _this.state.currentSlide;\n\n var _slideHandler = (0, _innerSliderUtils.slideHandler)(_objectSpread(_objectSpread(_objectSpread({\n index: index\n }, _this.props), _this.state), {}, {\n trackRef: _this.track,\n useCSS: _this.props.useCSS && !dontAnimate\n })),\n state = _slideHandler.state,\n nextState = _slideHandler.nextState;\n\n if (!state) return;\n beforeChange && beforeChange(currentSlide, state.currentSlide);\n var slidesToLoad = state.lazyLoadedList.filter(function (value) {\n return _this.state.lazyLoadedList.indexOf(value) < 0;\n });\n onLazyLoad && slidesToLoad.length > 0 && onLazyLoad(slidesToLoad);\n\n if (!_this.props.waitForAnimate && _this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n afterChange && afterChange(currentSlide);\n delete _this.animationEndCallback;\n }\n\n _this.setState(state, function () {\n // asNavForIndex check is to avoid recursive calls of slideHandler in waitForAnimate=false mode\n if (asNavFor && _this.asNavForIndex !== index) {\n _this.asNavForIndex = index;\n asNavFor.innerSlider.slideHandler(index);\n }\n\n if (!nextState) return;\n _this.animationEndCallback = setTimeout(function () {\n var animating = nextState.animating,\n firstBatch = _objectWithoutProperties(nextState, [\"animating\"]);\n\n _this.setState(firstBatch, function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.setState({\n animating: animating\n });\n }, 10));\n\n afterChange && afterChange(state.currentSlide);\n delete _this.animationEndCallback;\n });\n }, speed);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"changeSlide\", function (options) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n var targetSlide = (0, _innerSliderUtils.changeSlide)(spec, options);\n if (targetSlide !== 0 && !targetSlide) return;\n\n if (dontAnimate === true) {\n _this.slideHandler(targetSlide, dontAnimate);\n } else {\n _this.slideHandler(targetSlide);\n }\n\n _this.props.autoplay && _this.autoPlay(\"update\");\n\n if (_this.props.focusOnSelect) {\n var nodes = _this.list.querySelectorAll(\".slick-current\");\n\n nodes[0] && nodes[0].focus();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"clickHandler\", function (e) {\n if (_this.clickable === false) {\n e.stopPropagation();\n e.preventDefault();\n }\n\n _this.clickable = true;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"keyHandler\", function (e) {\n var dir = (0, _innerSliderUtils.keyHandler)(e, _this.props.accessibility, _this.props.rtl);\n dir !== \"\" && _this.changeSlide({\n message: dir\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"selectHandler\", function (options) {\n _this.changeSlide(options);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"disableBodyScroll\", function () {\n var preventDefault = function preventDefault(e) {\n e = e || window.event;\n if (e.preventDefault) e.preventDefault();\n e.returnValue = false;\n };\n\n window.ontouchmove = preventDefault;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"enableBodyScroll\", function () {\n window.ontouchmove = null;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeStart\", function (e) {\n if (_this.props.verticalSwiping) {\n _this.disableBodyScroll();\n }\n\n var state = (0, _innerSliderUtils.swipeStart)(e, _this.props.swipe, _this.props.draggable);\n state !== \"\" && _this.setState(state);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeMove\", function (e) {\n var state = (0, _innerSliderUtils.swipeMove)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n\n if (state[\"swiping\"]) {\n _this.clickable = false;\n }\n\n _this.setState(state);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeEnd\", function (e) {\n var state = (0, _innerSliderUtils.swipeEnd)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n var triggerSlideHandler = state[\"triggerSlideHandler\"];\n delete state[\"triggerSlideHandler\"];\n\n _this.setState(state);\n\n if (triggerSlideHandler === undefined) return;\n\n _this.slideHandler(triggerSlideHandler);\n\n if (_this.props.verticalSwiping) {\n _this.enableBodyScroll();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"touchEnd\", function (e) {\n _this.swipeEnd(e);\n\n _this.clickable = true;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n // this and fellow methods are wrapped in setTimeout\n // to make sure initialize setState has happened before\n // any of such methods are called\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"previous\"\n });\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"next\"\n });\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n slide = Number(slide);\n if (isNaN(slide)) return \"\";\n\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"index\",\n index: slide,\n currentSlide: _this.state.currentSlide\n }, dontAnimate);\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"play\", function () {\n var nextIndex;\n\n if (_this.props.rtl) {\n nextIndex = _this.state.currentSlide - _this.props.slidesToScroll;\n } else {\n if ((0, _innerSliderUtils.canGoNext)(_objectSpread(_objectSpread({}, _this.props), _this.state))) {\n nextIndex = _this.state.currentSlide + _this.props.slidesToScroll;\n } else {\n return false;\n }\n }\n\n _this.slideHandler(nextIndex);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"autoPlay\", function (playType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n\n var autoplaying = _this.state.autoplaying;\n\n if (playType === \"update\") {\n if (autoplaying === \"hovered\" || autoplaying === \"focused\" || autoplaying === \"paused\") {\n return;\n }\n } else if (playType === \"leave\") {\n if (autoplaying === \"paused\" || autoplaying === \"focused\") {\n return;\n }\n } else if (playType === \"blur\") {\n if (autoplaying === \"paused\" || autoplaying === \"hovered\") {\n return;\n }\n }\n\n _this.autoplayTimer = setInterval(_this.play, _this.props.autoplaySpeed + 50);\n\n _this.setState({\n autoplaying: \"playing\"\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"pause\", function (pauseType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n _this.autoplayTimer = null;\n }\n\n var autoplaying = _this.state.autoplaying;\n\n if (pauseType === \"paused\") {\n _this.setState({\n autoplaying: \"paused\"\n });\n } else if (pauseType === \"focused\") {\n if (autoplaying === \"hovered\" || autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"focused\"\n });\n }\n } else {\n // pauseType is 'hovered'\n if (autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"hovered\"\n });\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDotsOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDotsLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTrackOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTrackLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSlideFocus\", function () {\n return _this.props.autoplay && _this.pause(\"focused\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSlideBlur\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"focused\" && _this.autoPlay(\"blur\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"render\", function () {\n var className = (0, _classnames[\"default\"])(\"slick-slider\", _this.props.className, {\n \"slick-vertical\": _this.props.vertical,\n \"slick-initialized\": true\n });\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n var trackProps = (0, _innerSliderUtils.extractObject)(spec, [\"fade\", \"cssEase\", \"speed\", \"infinite\", \"centerMode\", \"focusOnSelect\", \"currentSlide\", \"lazyLoad\", \"lazyLoadedList\", \"rtl\", \"slideWidth\", \"slideHeight\", \"listHeight\", \"vertical\", \"slidesToShow\", \"slidesToScroll\", \"slideCount\", \"trackStyle\", \"variableWidth\", \"unslick\", \"centerPadding\", \"targetSlide\", \"useCSS\"]);\n var pauseOnHover = _this.props.pauseOnHover;\n trackProps = _objectSpread(_objectSpread({}, trackProps), {}, {\n onMouseEnter: pauseOnHover ? _this.onTrackOver : null,\n onMouseLeave: pauseOnHover ? _this.onTrackLeave : null,\n onMouseOver: pauseOnHover ? _this.onTrackOver : null,\n focusOnSelect: _this.props.focusOnSelect && _this.clickable ? _this.selectHandler : null\n });\n var dots;\n\n if (_this.props.dots === true && _this.state.slideCount >= _this.props.slidesToShow) {\n var dotProps = (0, _innerSliderUtils.extractObject)(spec, [\"dotsClass\", \"slideCount\", \"slidesToShow\", \"currentSlide\", \"slidesToScroll\", \"clickHandler\", \"children\", \"customPaging\", \"infinite\", \"appendDots\"]);\n var pauseOnDotsHover = _this.props.pauseOnDotsHover;\n dotProps = _objectSpread(_objectSpread({}, dotProps), {}, {\n clickHandler: _this.changeSlide,\n onMouseEnter: pauseOnDotsHover ? _this.onDotsLeave : null,\n onMouseOver: pauseOnDotsHover ? _this.onDotsOver : null,\n onMouseLeave: pauseOnDotsHover ? _this.onDotsLeave : null\n });\n dots = /*#__PURE__*/_react[\"default\"].createElement(_dots.Dots, dotProps);\n }\n\n var prevArrow, nextArrow;\n var arrowProps = (0, _innerSliderUtils.extractObject)(spec, [\"infinite\", \"centerMode\", \"currentSlide\", \"slideCount\", \"slidesToShow\", \"prevArrow\", \"nextArrow\"]);\n arrowProps.clickHandler = _this.changeSlide;\n\n if (_this.props.arrows) {\n prevArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.PrevArrow, arrowProps);\n nextArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.NextArrow, arrowProps);\n }\n\n var verticalHeightStyle = null;\n\n if (_this.props.vertical) {\n verticalHeightStyle = {\n height: _this.state.listHeight\n };\n }\n\n var centerPaddingStyle = null;\n\n if (_this.props.vertical === false) {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: \"0px \" + _this.props.centerPadding\n };\n }\n } else {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: _this.props.centerPadding + \" 0px\"\n };\n }\n }\n\n var listStyle = _objectSpread(_objectSpread({}, verticalHeightStyle), centerPaddingStyle);\n\n var touchMove = _this.props.touchMove;\n var listProps = {\n className: \"slick-list\",\n style: listStyle,\n onClick: _this.clickHandler,\n onMouseDown: touchMove ? _this.swipeStart : null,\n onMouseMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onMouseUp: touchMove ? _this.swipeEnd : null,\n onMouseLeave: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onTouchStart: touchMove ? _this.swipeStart : null,\n onTouchMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onTouchEnd: touchMove ? _this.touchEnd : null,\n onTouchCancel: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onKeyDown: _this.props.accessibility ? _this.keyHandler : null\n };\n var innerSliderProps = {\n className: className,\n dir: \"ltr\",\n style: _this.props.style\n };\n\n if (_this.props.unslick) {\n listProps = {\n className: \"slick-list\"\n };\n innerSliderProps = {\n className: className\n };\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", innerSliderProps, !_this.props.unslick ? prevArrow : \"\", /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: _this.listRefHandler\n }, listProps), /*#__PURE__*/_react[\"default\"].createElement(_track.Track, _extends({\n ref: _this.trackRefHandler\n }, trackProps), _this.props.children)), !_this.props.unslick ? nextArrow : \"\", !_this.props.unslick ? dots : \"\");\n });\n\n _this.list = null;\n _this.track = null;\n _this.state = _objectSpread(_objectSpread({}, _initialState[\"default\"]), {}, {\n currentSlide: _this.props.initialSlide,\n slideCount: _react[\"default\"].Children.count(_this.props.children)\n });\n _this.callbackTimers = [];\n _this.clickable = true;\n _this.debouncedResize = null;\n\n var ssrState = _this.ssrInit();\n\n _this.state = _objectSpread(_objectSpread({}, _this.state), ssrState);\n return _this;\n }\n\n _createClass(InnerSlider, [{\n key: \"didPropsChange\",\n value: function didPropsChange(prevProps) {\n var setTrackStyle = false;\n\n for (var _i3 = 0, _Object$keys = Object.keys(this.props); _i3 < _Object$keys.length; _i3++) {\n var key = _Object$keys[_i3];\n\n if (!prevProps.hasOwnProperty(key)) {\n setTrackStyle = true;\n break;\n }\n\n if (_typeof(prevProps[key]) === \"object\" || typeof prevProps[key] === \"function\") {\n continue;\n }\n\n if (prevProps[key] !== this.props[key]) {\n setTrackStyle = true;\n break;\n }\n }\n\n return setTrackStyle || _react[\"default\"].Children.count(this.props.children) !== _react[\"default\"].Children.count(prevProps.children);\n }\n }]);\n\n return InnerSlider;\n}(_react[\"default\"].Component);\n\nexports.InnerSlider = InnerSlider;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2xpY2svbGliL2lubmVyLXNsaWRlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixtQkFBbUI7O0FBRW5CLG9DQUFvQyxtQkFBTyxDQUFDLDRDQUFPOztBQUVuRCwyQ0FBMkMsbUJBQU8sQ0FBQyx3RUFBaUI7O0FBRXBFLHFDQUFxQyxtQkFBTyxDQUFDLGdFQUFpQjs7QUFFOUQseUNBQXlDLG1CQUFPLENBQUMsc0RBQVk7O0FBRTdELHdCQUF3QixtQkFBTyxDQUFDLDBGQUEwQjs7QUFFMUQsYUFBYSxtQkFBTyxDQUFDLHdEQUFTOztBQUU5QixZQUFZLG1CQUFPLENBQUMsc0RBQVE7O0FBRTVCLGNBQWMsbUJBQU8sQ0FBQywwREFBVTs7QUFFaEMscURBQXFELG1CQUFPLENBQUMsbUdBQTBCOztBQUV2Rix1Q0FBdUMsdUNBQXVDOztBQUU5RSx3QkFBd0IsMkJBQTJCLDJFQUEyRSxrQ0FBa0Msd0JBQXdCLE9BQU8sa0NBQWtDLG1JQUFtSTs7QUFFcFcsc0JBQXNCLGdEQUFnRCxnQkFBZ0Isc0JBQXNCLE9BQU8sMkJBQTJCLDBCQUEwQix5REFBeUQsaUNBQWlDLGtCQUFrQjs7QUFFcFIsc0RBQXNELCtCQUErQiw4REFBOEQsWUFBWSxvQ0FBb0MsNkRBQTZELFlBQVksNkJBQTZCLE9BQU8sMkJBQTJCLDBDQUEwQyx3RUFBd0UsK0JBQStCOztBQUU1ZCwyREFBMkQsK0JBQStCLGlCQUFpQixzQ0FBc0MsWUFBWSxZQUFZLHVCQUF1QixPQUFPLHFCQUFxQiwwQ0FBMEMsNkJBQTZCOztBQUVuUywyQ0FBMkMsZ0NBQWdDLG9DQUFvQyxvREFBb0QsOERBQThELGlFQUFpRSxHQUFHLGtDQUFrQzs7QUFFdlUsaUNBQWlDLGdCQUFnQixzQkFBc0IsT0FBTyx1REFBdUQsYUFBYSx1REFBdUQsNENBQTRDLEtBQUssNkNBQTZDLDZFQUE2RSxPQUFPLGlEQUFpRCxtRkFBbUYsT0FB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O0FBQ1AsS0FBSzs7QUFFTDtBQUNBO0FBQ0EsZ0RBQWdELCtCQUErQjtBQUMvRTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQSxnREFBZ0Q7QUFDaEQ7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxnRUFBZ0UsMkJBQTJCO0FBQzNGOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0EsQ0FBQzs7QUFFRCxtQkFBbUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXNsaWNrL2xpYi9pbm5lci1zbGlkZXIuanM/ZThhZCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuSW5uZXJTbGlkZXIgPSB2b2lkIDA7XG5cbnZhciBfcmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbnZhciBfaW5pdGlhbFN0YXRlID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9pbml0aWFsLXN0YXRlXCIpKTtcblxudmFyIF9sb2Rhc2ggPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJsb2Rhc2guZGVib3VuY2VcIikpO1xuXG52YXIgX2NsYXNzbmFtZXMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJjbGFzc25hbWVzXCIpKTtcblxudmFyIF9pbm5lclNsaWRlclV0aWxzID0gcmVxdWlyZShcIi4vdXRpbHMvaW5uZXJTbGlkZXJVdGlsc1wiKTtcblxudmFyIF90cmFjayA9IHJlcXVpcmUoXCIuL3RyYWNrXCIpO1xuXG52YXIgX2RvdHMgPSByZXF1aXJlKFwiLi9kb3RzXCIpO1xuXG52YXIgX2Fycm93cyA9IHJlcXVpcmUoXCIuL2Fycm93c1wiKTtcblxudmFyIF9yZXNpemVPYnNlcnZlclBvbHlmaWxsID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVzaXplLW9ic2VydmVyLXBvbHlmaWxsXCIpKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjsgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiKSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfTsgfSBlbHNlIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9OyB9IHJldHVybiBfdHlwZW9mKG9iaik7IH1cblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cblxuZnVuY3Rpb24gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKHNvdXJjZSwgZXhjbHVkZWQpIHsgaWYgKHNvdXJjZSA9PSBudWxsKSByZXR1cm4ge307IHZhciB0YXJnZXQgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShzb3VyY2UsIGV4Y2x1ZGVkKTsgdmFyIGtleSwgaTsgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHsgdmFyIHNvdXJjZVN5bWJvbEtleXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHNvdXJjZSk7IGZvciAoaSA9IDA7IGkgPCBzb3VyY2VTeW1ib2xLZXlzLmxlbmd0aDsgaSsrKSB7IGtleSA9IHNvdXJjZVN5bWJvbEtleXNbaV07IGlmIChleGNsdWRlZC5pbmRleE9mKGtleSkgPj0gMCkgY29udGludWU7IGlmICghT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHNvdXJjZSwga2V5KSkgY29udGludWU7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSByZXR1cm4gdGFyZ2V0OyB9XG5cbmZ1bmN0aW9uIF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKHNvdXJjZSwgZXhjbHVkZWQpIHsgaWYgKHNvdXJjZSA9PSBudWxsKSByZXR1cm4ge307IHZhciB0YXJnZXQgPSB7fTsgdmFyIHNvdXJjZUtleXMgPSBPYmplY3Qua2V5cyhzb3VyY2UpOyB2YXIga2V5LCBpOyBmb3IgKGkgPSAwOyBpIDwgc291cmNlS2V5cy5sZW5ndGg7IGkrKykgeyBrZXkgPSBzb3VyY2VLZXlzW2ldOyBpZiAoZXhjbHVkZWQuaW5kZXhPZihrZXkpID49IDApIGNvbnRpbnVlOyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IHJldHVybiB0YXJnZXQ7IH1cblxuZnVuY3Rpb24gb3duS2V5cyhvYmplY3QsIGVudW1lcmFibGVPbmx5KSB7IHZhciBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KTsgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHsgdmFyIHN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG9iamVjdCk7IGlmIChlbnVtZXJhYmxlT25seSkgc3ltYm9scyA9IHN5bWJvbHMuZmlsdGVyKGZ1bmN0aW9uIChzeW0pIHsgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LCBzeW0pLmVudW1lcmFibGU7IH0pOyBrZXlzLnB1c2guYXBwbHkoa2V5cywgc3ltYm9scyk7IH0gcmV0dXJuIGtleXM7IH1cblxuZnVuY3Rpb24gX29iamVjdFNwcmVhZCh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXSAhPSBudWxsID8gYXJndW1lbnRzW2ldIDoge307IGlmIChpICUgMikgeyBvd25LZXlzKE9iamVjdChzb3VyY2UpLCB0cnVlKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsgX2RlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBzb3VyY2Vba2V5XSk7IH0pOyB9IGVsc2UgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoc291cmNlKSk7IH0gZWxzZSB7IG93bktleXMoT2JqZWN0KHNvdXJjZSkpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc291cmNlLCBrZXkpKTsgfSk7IH0gfSByZXR1cm4gdGFyZ2V0OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH1cblxuZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIF9zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcyk7IH1cblxuZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgX3NldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IG8uX19wcm90b19fID0gcDsgcmV0dXJuIG87IH07IHJldHVybiBfc2V0UHJvdG90eXBlT2YobywgcCk7IH1cblxuZnVuY3Rpb24gX2NyZWF0ZVN1cGVyKERlcml2ZWQpIHsgdmFyIGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCk7IHJldHVybiBmdW5jdGlvbiBfY3JlYXRlU3VwZXJJbnRlcm5hbCgpIHsgdmFyIFN1cGVyID0gX2dldFByb3RvdHlwZU9mKERlcml2ZWQpLCByZXN1bHQ7IGlmIChoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KSB7IHZhciBOZXdUYXJnZXQgPSBfZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3I7IHJlc3VsdCA9IFJlZmxlY3QuY29uc3RydWN0KFN1cGVyLCBhcmd1bWVudHMsIE5ld1RhcmdldCk7IH0gZWxzZSB7IHJlc3VsdCA9IFN1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH0gcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIHJlc3VsdCk7IH07IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoY2FsbCAmJiAoX3R5cGVvZihjYWxsKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkgeyByZXR1cm4gY2FsbDsgfSByZXR1cm4gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKTsgfVxuXG5mdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpIHsgaWYgKHNlbGYgPT09IHZvaWQgMCkgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIHNlbGY7IH1cblxuZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHsgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiIHx8ICFSZWZsZWN0LmNvbnN0cnVjdCkgcmV0dXJuIGZhbHNlOyBpZiAoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSkgcmV0dXJuIGZhbHNlOyBpZiAodHlwZW9mIFByb3h5ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB0cnVlOyB0cnkgeyBEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFJlZmxlY3QuY29uc3RydWN0KERhdGUsIFtdLCBmdW5jdGlvbiAoKSB7fSkpOyByZXR1cm4gdHJ1ZTsgfSBjYXRjaCAoZSkgeyByZXR1cm4gZmFsc2U7IH0gfVxuXG5mdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyByZXR1cm4gby5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pOyB9OyByZXR1cm4gX2dldFByb3RvdHlwZU9mKG8pOyB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsgaWYgKGtleSBpbiBvYmopIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsgfSBlbHNlIHsgb2JqW2tleV0gPSB2YWx1ZTsgfSByZXR1cm4gb2JqOyB9XG5cbnZhciBJbm5lclNsaWRlciA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoSW5uZXJTbGlkZXIsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIHZhciBfc3VwZXIgPSBfY3JlYXRlU3VwZXIoSW5uZXJTbGlkZXIpO1xuXG4gIGZ1bmN0aW9uIElubmVyU2xpZGVyKHByb3BzKSB7XG4gICAgdmFyIF90aGlzO1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIElubmVyU2xpZGVyKTtcblxuICAgIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgcHJvcHMpO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcImxpc3RSZWZIYW5kbGVyXCIsIGZ1bmN0aW9uIChyZWYpIHtcbiAgICAgIHJldHVybiBfdGhpcy5saXN0ID0gcmVmO1xuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcInRyYWNrUmVmSGFuZGxlclwiLCBmdW5jdGlvbiAocmVmKSB7XG4gICAgICByZXR1cm4gX3RoaXMudHJhY2sgPSByZWY7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwiYWRhcHRIZWlnaHRcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKF90aGlzLnByb3BzLmFkYXB0aXZlSGVpZ2h0ICYmIF90aGlzLmxpc3QpIHtcbiAgICAgICAgdmFyIGVsZW0gPSBfdGhpcy5saXN0LnF1ZXJ5U2VsZWN0b3IoXCJbZGF0YS1pbmRleD1cXFwiXCIuY29uY2F0KF90aGlzLnN0YXRlLmN1cnJlbnRTbGlkZSwgXCJcXFwiXVwiKSk7XG5cbiAgICAgICAgX3RoaXMubGlzdC5zdHlsZS5oZWlnaHQgPSAoMCwgX2lubmVyU2xpZGVyVXRpbHMuZ2V0SGVpZ2h0KShlbGVtKSArIFwicHhcIjtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJjb21wb25lbnREaWRNb3VudFwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICBfdGhpcy5wcm9wcy5vbkluaXQgJiYgX3RoaXMucHJvcHMub25Jbml0KCk7XG5cbiAgICAgIGlmIChfdGhpcy5wcm9wcy5sYXp5TG9hZCkge1xuICAgICAgICB2YXIgc2xpZGVzVG9Mb2FkID0gKDAsIF9pbm5lclNsaWRlclV0aWxzLmdldE9uRGVtYW5kTGF6eVNsaWRlcykoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBfdGhpcy5wcm9wcyksIF90aGlzLnN0YXRlKSk7XG5cbiAgICAgICAgaWYgKHNsaWRlc1RvTG9hZC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgX3RoaXMuc2V0U3RhdGUoZnVuY3Rpb24gKHByZXZTdGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgbGF6eUxvYWRlZExpc3Q6IHByZXZTdGF0ZS5sYXp5TG9hZGVkTGlzdC5jb25jYXQoc2xpZGVzVG9Mb2FkKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGlmIChfdGhpcy5wcm9wcy5vbkxhenlMb2FkKSB7XG4gICAgICAgICAgICBfdGhpcy5wcm9wcy5vbkxhenlMb2FkKHNsaWRlc1RvTG9hZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHZhciBzcGVjID0gX29iamVjdFNwcmVhZCh7XG4gICAgICAgIGxpc3RSZWY6IF90aGlzLmxpc3QsXG4gICAgICAgIHRyYWNrUmVmOiBfdGhpcy50cmFja1xuICAgICAgfSwgX3RoaXMucHJvcHMpO1xuXG4gICAgICBfdGhpcy51cGRhdGVTdGF0ZShzcGVjLCB0cnVlLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIF90aGlzLmFkYXB0SGVpZ2h0KCk7XG5cbiAgICAgICAgX3RoaXMucHJvcHMuYXV0b3BsYXkgJiYgX3RoaXMuYXV0b1BsYXkoXCJ1cGRhdGVcIik7XG4gICAgICB9KTtcblxuICAgICAgaWYgKF90aGlzLnByb3BzLmxhenlMb2FkID09PSBcInByb2dyZXNzaXZlXCIpIHtcbiAgICAgICAgX3RoaXMubGF6eUxvYWRUaW1lciA9IHNldEludGVydmFsKF90aGlzLnByb2dyZXNzaXZlTGF6eUxvYWQsIDEwMDApO1xuICAgICAgfVxuXG4gICAgICBfdGhpcy5ybyA9IG5ldyBfcmVzaXplT2JzZXJ2ZXJQb2x5ZmlsbFtcImRlZmF1bHRcIl0oZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoX3RoaXMuc3RhdGUuYW5pbWF0aW5nKSB7XG4gICAgICAgICAgX3RoaXMub25XaW5kb3dSZXNpemVkKGZhbHNlKTsgLy8gZG9uJ3Qgc2V0IHRyYWNrU3R5bGUgaGVuY2UgZG9uJ3QgYnJlYWsgYW5pbWF0aW9uXG5cblxuICAgICAgICAgIF90aGlzLmNhbGxiYWNrVGltZXJzLnB1c2goc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gX3RoaXMub25XaW5kb3dSZXNpemVkKCk7XG4gICAgICAgICAgfSwgX3RoaXMucHJvcHMuc3BlZWQpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBfdGhpcy5vbldpbmRvd1Jlc2l6ZWQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIF90aGlzLnJvLm9ic2VydmUoX3RoaXMubGlzdCk7XG5cbiAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwgJiYgQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLnNsaWNrLXNsaWRlXCIpLCBmdW5jdGlvbiAoc2xpZGUpIHtcbiAgICAgICAgc2xpZGUub25mb2N1cyA9IF90aGlzLnByb3BzLnBhdXNlT25Gb2N1cyA/IF90aGlzLm9uU2xpZGVGb2N1cyA6IG51bGw7XG4gICAgICAgIHNsaWRlLm9uYmx1ciA9IF90aGlzLnByb3BzLnBhdXNlT25Gb2N1cyA/IF90aGlzLm9uU2xpZGVCbHVyIDogbnVsbDtcbiAgICAgIH0pO1xuXG4gICAgICBpZiAod2luZG93LmFkZEV2ZW50TGlzdGVuZXIpIHtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgX3RoaXMub25XaW5kb3dSZXNpemVkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHdpbmRvdy5hdHRhY2hFdmVudChcIm9ucmVzaXplXCIsIF90aGlzLm9uV2luZG93UmVzaXplZCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwiY29tcG9uZW50V2lsbFVubW91bnRcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKF90aGlzLmFuaW1hdGlvbkVuZENhbGxiYWNrKSB7XG4gICAgICAgIGNsZWFyVGltZW91dChfdGhpcy5hbmltYXRpb25FbmRDYWxsYmFjayk7XG4gICAgICB9XG5cbiAgICAgIGlmIChfdGhpcy5sYXp5TG9hZFRpbWVyKSB7XG4gICAgICAgIGNsZWFySW50ZXJ2YWwoX3RoaXMubGF6eUxvYWRUaW1lcik7XG4gICAgICB9XG5cbiAgICAgIGlmIChfdGhpcy5jYWxsYmFja1RpbWVycy5sZW5ndGgpIHtcbiAgICAgICAgX3RoaXMuY2FsbGJhY2tUaW1lcnMuZm9yRWFjaChmdW5jdGlvbiAodGltZXIpIHtcbiAgICAgICAgICByZXR1cm4gY2xlYXJUaW1lb3V0KHRpbWVyKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgX3RoaXMuY2FsbGJhY2tUaW1lcnMgPSBbXTtcbiAgICAgIH1cblxuICAgICAgaWYgKHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKSB7XG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIF90aGlzLm9uV2luZG93UmVzaXplZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB3aW5kb3cuZGV0YWNoRXZlbnQoXCJvbnJlc2l6ZVwiLCBfdGhpcy5vbldpbmRvd1Jlc2l6ZWQpO1xuICAgICAgfVxuXG4gICAgICBpZiAoX3RoaXMuYXV0b3BsYXlUaW1lcikge1xuICAgICAgICBjbGVhckludGVydmFsKF90aGlzLmF1dG9wbGF5VGltZXIpO1xuICAgICAgfVxuXG4gICAgICBfdGhpcy5yby5kaXNjb25uZWN0KCk7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwiY29tcG9uZW50RGlkVXBkYXRlXCIsIGZ1bmN0aW9uIChwcmV2UHJvcHMpIHtcbiAgICAgIF90aGlzLmNoZWNrSW1hZ2VzTG9hZCgpO1xuXG4gICAgICBfdGhpcy5wcm9wcy5vblJlSW5pdCAmJiBfdGhpcy5wcm9wcy5vblJlSW5pdCgpO1xuXG4gICAgICBpZiAoX3RoaXMucHJvcHMubGF6eUxvYWQpIHtcbiAgICAgICAgdmFyIHNsaWRlc1RvTG9hZCA9ICgwLCBfaW5uZXJTbGlkZXJVdGlscy5nZXRPbkRlbWFuZExhenlTbGlkZXMpKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgX3RoaXMucHJvcHMpLCBfdGhpcy5zdGF0ZSkpO1xuXG4gICAgICAgIGlmIChzbGlkZXNUb0xvYWQubGVuZ3RoID4gMCkge1xuICAgICAgICAgIF90aGlzLnNldFN0YXRlKGZ1bmN0aW9uIChwcmV2U3RhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGxhenlMb2FkZWRMaXN0OiBwcmV2U3RhdGUubGF6eUxvYWRlZExpc3QuY29uY2F0KHNsaWRlc1RvTG9hZClcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBpZiAoX3RoaXMucHJvcHMub25MYXp5TG9hZCkge1xuICAgICAgICAgICAgX3RoaXMucHJvcHMub25MYXp5TG9hZChzbGlkZXNUb0xvYWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSAvLyBpZiAodGhpcy5wcm9wcy5vbkxhenlMb2FkKSB7XG4gICAgICAvLyAgIHRoaXMucHJvcHMub25MYXp5TG9hZChbbGVmdE1vc3RTbGlkZV0pXG4gICAgICAvLyB9XG5cblxuICAgICAgX3RoaXMuYWRhcHRIZWlnaHQoKTtcblxuICAgICAgdmFyIHNwZWMgPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe1xuICAgICAgICBsaXN0UmVmOiBfdGhpcy5saXN0LFxuICAgICAgICB0cmFja1JlZjogX3RoaXMudHJhY2tcbiAgICAgIH0sIF90aGlzLnByb3BzKSwgX3RoaXMuc3RhdGUpO1xuXG4gICAgICB2YXIgc2V0VHJhY2tTdHlsZSA9IF90aGlzLmRpZFByb3BzQ2hhbmdlKHByZXZQcm9wcyk7XG5cbiAgICAgIHNldFRyYWNrU3R5bGUgJiYgX3RoaXMudXBkYXRlU3RhdGUoc3BlYywgc2V0VHJhY2tTdHlsZSwgZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoX3RoaXMuc3RhdGUuY3VycmVudFNsaWRlID49IF9yZWFjdFtcImRlZmF1bHRcIl0uQ2hpbGRyZW4uY291bnQoX3RoaXMucHJvcHMuY2hpbGRyZW4pKSB7XG4gICAgICAgICAgX3RoaXMuY2hhbmdlU2xpZGUoe1xuICAgICAgICAgICAgbWVzc2FnZTogXCJpbmRleFwiLFxuICAgICAgICAgICAgaW5kZXg6IF9yZWFjdFtcImRlZmF1bHRcIl0uQ2hpbGRyZW4uY291bnQoX3RoaXMucHJvcHMuY2hpbGRyZW4pIC0gX3RoaXMucHJvcHMuc2xpZGVzVG9TaG93LFxuICAgICAgICAgICAgY3VycmVudFNsaWRlOiBfdGhpcy5zdGF0ZS5jdXJyZW50U2xpZGVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChfdGhpcy5wcm9wcy5hdXRvcGxheSkge1xuICAgICAgICAgIF90aGlzLmF1dG9QbGF5KFwidXBkYXRlXCIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIF90aGlzLnBhdXNlKFwicGF1c2VkXCIpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJvbldpbmRvd1Jlc2l6ZWRcIiwgZnVuY3Rpb24gKHNldFRyYWNrU3R5bGUpIHtcbiAgICAgIGlmIChfdGhpcy5kZWJvdW5jZWRSZXNpemUpIF90aGlzLmRlYm91bmNlZFJlc2l6ZS5jYW5jZWwoKTtcbiAgICAgIF90aGlzLmRlYm91bmNlZFJlc2l6ZSA9ICgwLCBfbG9kYXNoW1wiZGVmYXVsdFwiXSkoZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gX3RoaXMucmVzaXplV2luZG93KHNldFRyYWNrU3R5bGUpO1xuICAgICAgfSwgNTApO1xuXG4gICAgICBfdGhpcy5kZWJvdW5jZWRSZXNpemUoKTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJyZXNpemVXaW5kb3dcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIHNldFRyYWNrU3R5bGUgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHRydWU7XG4gICAgICB2YXIgaXNUcmFja01vdW50ZWQgPSBCb29sZWFuKF90aGlzLnRyYWNrICYmIF90aGlzLnRyYWNrLm5vZGUpOyAvLyBwcmV2ZW50IHdhcm5pbmc6IHNldHRpbmcgc3RhdGUgb24gdW5tb3VudGVkIGNvbXBvbmVudCAoc2VydmVyIHNpZGUgcmVuZGVyaW5nKVxuXG4gICAgICBpZiAoIWlzVHJhY2tNb3VudGVkKSByZXR1cm47XG5cbiAgICAgIHZhciBzcGVjID0gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHtcbiAgICAgICAgbGlzdFJlZjogX3RoaXMubGlzdCxcbiAgICAgICAgdHJhY2tSZWY6IF90aGlzLnRyYWNrXG4gICAgICB9LCBfdGhpcy5wcm9wcyksIF90aGlzLnN0YXRlKTtcblxuICAgICAgX3RoaXMudXBkYXRlU3RhdGUoc3BlYywgc2V0VHJhY2tTdHlsZSwgZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoX3RoaXMucHJvcHMuYXV0b3BsYXkpIF90aGlzLmF1dG9QbGF5KFwidXBkYXRlXCIpO2Vsc2UgX3RoaXMucGF1c2UoXCJwYXVzZWRcIik7XG4gICAgICB9KTsgLy8gYW5pbWF0aW5nIHN0YXRlIHNob3VsZCBiZSBjbGVhcmVkIHdoaWxlIHJlc2l6aW5nLCBvdGhlcndpc2UgYXV0b3BsYXkgc3RvcHMgd29ya2luZ1xuXG5cbiAgICAgIF90aGlzLnNldFN0YXRlKHtcbiAgICAgICAgYW5pbWF0aW5nOiBmYWxzZVxuICAgICAgfSk7XG5cbiAgICAgIGNsZWFyVGltZW91dChfdGhpcy5hbmltYXRpb25FbmRDYWxsYmFjayk7XG4gICAgICBkZWxldGUgX3RoaXMuYW5pbWF0aW9uRW5kQ2FsbGJhY2s7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwidXBkYXRlU3RhdGVcIiwgZnVuY3Rpb24gKHNwZWMsIHNldFRyYWNrU3R5bGUsIGNhbGxiYWNrKSB7XG4gICAgICB2YXIgdXBkYXRlZFN0YXRlID0gKDAsIF9pbm5lclNsaWRlclV0aWxzLmluaXRpYWxpemVkU3RhdGUpKHNwZWMpO1xuICAgICAgc3BlYyA9IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzcGVjKSwgdXBkYXRlZFN0YXRlKSwge30sIHtcbiAgICAgICAgc2xpZGVJbmRleDogdXBkYXRlZFN0YXRlLmN1cnJlbnRTbGlkZVxuICAgICAgfSk7XG4gICAgICB2YXIgdGFyZ2V0TGVmdCA9ICgwLCBfaW5uZXJTbGlkZXJVdGlscy5nZXRUcmFja0xlZnQpKHNwZWMpO1xuICAgICAgc3BlYyA9IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgc3BlYyksIHt9LCB7XG4gICAgICAgIGxlZnQ6IHRhcmdldExlZnRcbiAgICAgIH0pO1xuICAgICAgdmFyIHRyYWNrU3R5bGUgPSAoMCwgX2lubmVyU2xpZGVyVXRpbHMuZ2V0VHJhY2tDU1MpKHNwZWMpO1xuXG4gICAgICBpZiAoc2V0VHJhY2tTdHlsZSB8fCBfcmVhY3RbXCJkZWZhdWx0XCJdLkNoaWxkcmVuLmNvdW50KF90aGlzLnByb3BzLmNoaWxkcmVuKSAhPT0gX3JlYWN0W1wiZGVmYXVsdFwiXS5DaGlsZHJlbi5jb3VudChzcGVjLmNoaWxkcmVuKSkge1xuICAgICAgICB1cGRhdGVkU3RhdGVbXCJ0cmFja1N0eWxlXCJdID0gdHJhY2tTdHlsZTtcbiAgICAgIH1cblxuICAgICAgX3RoaXMuc2V0U3RhdGUodXBkYXRlZFN0YXRlLCBjYWxsYmFjayk7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwic3NySW5pdFwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAoX3RoaXMucHJvcHMudmFyaWFibGVXaWR0aCkge1xuICAgICAgICB2YXIgX3RyYWNrV2lkdGggPSAwLFxuICAgICAgICAgICAgX3RyYWNrTGVmdCA9IDA7XG4gICAgICAgIHZhciBjaGlsZHJlbldpZHRocyA9IFtdO1xuICAgICAgICB2YXIgcHJlQ2xvbmVzID0gKDAsIF9pbm5lclNsaWRlclV0aWxzLmdldFByZUNsb25lcykoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIF90aGlzLnByb3BzKSwgX3RoaXMuc3RhdGUpLCB7fSwge1xuICAgICAgICAgIHNsaWRlQ291bnQ6IF90aGlzLnByb3BzLmNoaWxkcmVuLmxlbmd0aFxuICAgICAgICB9KSk7XG4gICAgICAgIHZhciBwb3N0Q2xvbmVzID0gKDAsIF9pbm5lclNsaWRlclV0aWxzLmdldFBvc3RDbG9uZXMpKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBfdGhpcy5wcm9wcyksIF90aGlzLnN0YXRlKSwge30sIHtcbiAgICAgICAgICBzbGlkZUNvdW50OiBfdGhpcy5wcm9wcy5jaGlsZHJlbi5sZW5ndGhcbiAgICAgICAgfSkpO1xuXG4gICAgICAgIF90aGlzLnByb3BzLmNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgICAgICAgY2hpbGRyZW5XaWR0aHMucHVzaChjaGlsZC5wcm9wcy5zdHlsZS53aWR0aCk7XG4gICAgICAgICAgX3RyYWNrV2lkdGggKz0gY2hpbGQucHJvcHMuc3R5bGUud2lkdGg7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJlQ2xvbmVzOyBpKyspIHtcbiAgICAgICAgICBfdHJhY2tMZWZ0ICs9IGNoaWxkcmVuV2lkdGhzW2NoaWxkcmVuV2lkdGhzLmxlbmd0aCAtIDEgLSBpXTtcbiAgICAgICAgICBfdHJhY2tXaWR0aCArPSBjaGlsZHJlbldpZHRoc1tjaGlsZHJlbldpZHRocy5sZW5ndGggLSAxIC0gaV07XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgcG9zdENsb25lczsgX2krKykge1xuICAgICAgICAgIF90cmFja1dpZHRoICs9IGNoaWxkcmVuV2lkdGhzW19pXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAodmFyIF9pMiA9IDA7IF9pMiA8IF90aGlzLnN0YXRlLmN1cnJlbnRTbGlkZTsgX2kyKyspIHtcbiAgICAgICAgICBfdHJhY2tMZWZ0ICs9IGNoaWxkcmVuV2lkdGhzW19pMl07XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgX3RyYWNrU3R5bGUgPSB7XG4gICAgICAgICAgd2lkdGg6IF90cmFja1dpZHRoICsgXCJweFwiLFxuICAgICAgICAgIGxlZnQ6IC1fdHJhY2tMZWZ0ICsgXCJweFwiXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKF90aGlzLnByb3BzLmNlbnRlck1vZGUpIHtcbiAgICAgICAgICB2YXIgY3VycmVudFdpZHRoID0gXCJcIi5jb25jYXQoY2hpbGRyZW5XaWR0aHNbX3RoaXMuc3RhdGUuY3VycmVudFNsaWRlXSwgXCJweFwiKTtcbiAgICAgICAgICBfdHJhY2tTdHlsZS5sZWZ0ID0gXCJjYWxjKFwiLmNvbmNhdChfdHJhY2tTdHlsZS5sZWZ0LCBcIiArICgxMDAlIC0gXCIpLmNvbmNhdChjdXJyZW50V2lkdGgsIFwiKSAvIDIgKSBcIik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHRyYWNrU3R5bGU6IF90cmFja1N0eWxlXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHZhciBjaGlsZHJlbkNvdW50ID0gX3JlYWN0W1wiZGVmYXVsdFwiXS5DaGlsZHJlbi5jb3VudChfdGhpcy5wcm9wcy5jaGlsZHJlbik7XG5cbiAgICAgIHZhciBzcGVjID0gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIF90aGlzLnByb3BzKSwgX3RoaXMuc3RhdGUpLCB7fSwge1xuICAgICAgICBzbGlkZUNvdW50OiBjaGlsZHJlbkNvdW50XG4gICAgICB9KTtcblxuICAgICAgdmFyIHNsaWRlQ291bnQgPSAoMCwgX2lubmVyU2xpZGVyVXRpbHMuZ2V0UHJlQ2xvbmVzKShzcGVjKSArICgwLCBfaW5uZXJTbGlkZXJVdGlscy5nZXRQb3N0Q2xvbmVzKShzcGVjKSArIGNoaWxkcmVuQ291bnQ7XG4gICAgICB2YXIgdHJhY2tXaWR0aCA9IDEwMCAvIF90aGlzLnByb3BzLnNsaWRlc1RvU2hvdyAqIHNsaWRlQ291bnQ7XG4gICAgICB2YXIgc2xpZGVXaWR0aCA9IDEwMCAvIHNsaWRlQ291bnQ7XG4gICAgICB2YXIgdHJhY2tMZWZ0ID0gLXNsaWRlV2lkdGggKiAoKDAsIF9pbm5lclNsaWRlclV0aWxzLmdldFByZUNsb25lcykoc3BlYykgKyBfdGhpcy5zdGF0ZS5jdXJyZW50U2xpZGUpICogdHJhY2tXaWR0aCAvIDEwMDtcblxuICAgICAgaWYgKF90aGlzLnByb3BzLmNlbnRlck1vZGUpIHtcbiAgICAgICAgdHJhY2tMZWZ0ICs9ICgxMDAgLSBzbGlkZVdpZHRoICogdHJhY2tXaWR0aCAvIDEwMCkgLyAyO1xuICAgICAgfVxuXG4gICAgICB2YXIgdHJhY2tTdHlsZSA9IHtcbiAgICAgICAgd2lkdGg6IHRyYWNrV2lkdGggKyBcIiVcIixcbiAgICAgICAgbGVmdDogdHJhY2tMZWZ0ICsgXCIlXCJcbiAgICAgIH07XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzbGlkZVdpZHRoOiBzbGlkZVdpZHRoICsgXCIlXCIsXG4gICAgICAgIHRyYWNrU3R5bGU6IHRyYWNrU3R5bGVcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwiY2hlY2tJbWFnZXNMb2FkXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBpbWFnZXMgPSBfdGhpcy5saXN0ICYmIF90aGlzLmxpc3QucXVlcnlTZWxlY3RvckFsbCAmJiBfdGhpcy5saXN0LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuc2xpY2stc2xpZGUgaW1nXCIpIHx8IFtdO1xuICAgICAgdmFyIGltYWdlc0NvdW50ID0gaW1hZ2VzLmxlbmd0aCxcbiAgICAgICAgICBsb2FkZWRDb3VudCA9IDA7XG4gICAgICBBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGltYWdlcywgZnVuY3Rpb24gKGltYWdlKSB7XG4gICAgICAgIHZhciBoYW5kbGVyID0gZnVuY3Rpb24gaGFuZGxlcigpIHtcbiAgICAgICAgICByZXR1cm4gKytsb2FkZWRDb3VudCAmJiBsb2FkZWRDb3VudCA+PSBpbWFnZXNDb3VudCAmJiBfdGhpcy5vbldpbmRvd1Jlc2l6ZWQoKTtcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoIWltYWdlLm9uY2xpY2spIHtcbiAgICAgICAgICBpbWFnZS5vbmNsaWNrID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIGltYWdlLnBhcmVudE5vZGUuZm9jdXMoKTtcbiAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhciBwcmV2Q2xpY2tIYW5kbGVyID0gaW1hZ2Uub25jbGljaztcblxuICAgICAgICAgIGltYWdlLm9uY2xpY2sgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBwcmV2Q2xpY2tIYW5kbGVyKCk7XG4gICAgICAgICAgICBpbWFnZS5wYXJlbnROb2RlLmZvY3VzKCk7XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaW1hZ2Uub25sb2FkKSB7XG4gICAgICAgICAgaWYgKF90aGlzLnByb3BzLmxhenlMb2FkKSB7XG4gICAgICAgICAgICBpbWFnZS5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIF90aGlzLmFkYXB0SGVpZ2h0KCk7XG5cbiAgICAgICAgICAgICAgX3RoaXMuY2FsbGJhY2tUaW1lcnMucHVzaChzZXRUaW1lb3V0KF90aGlzLm9uV2luZG93UmVzaXplZCwgX3RoaXMucHJvcHMuc3BlZWQpKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGltYWdlLm9ubG9hZCA9IGhhbmRsZXI7XG5cbiAgICAgICAgICAgIGltYWdlLm9uZXJyb3IgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIGhhbmRsZXIoKTtcbiAgICAgICAgICAgICAgX3RoaXMucHJvcHMub25MYXp5TG9hZEVycm9yICYmIF90aGlzLnByb3BzLm9uTGF6eUxvYWRFcnJvcigpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcInByb2dyZXNzaXZlTGF6eUxvYWRcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIHNsaWRlc1RvTG9hZCA9IFtdO1xuXG4gICAgICB2YXIgc3BlYyA9IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgX3RoaXMucHJvcHMpLCBfdGhpcy5zdGF0ZSk7XG5cbiAgICAgIGZvciAodmFyIGluZGV4ID0gX3RoaXMuc3RhdGUuY3VycmVudFNsaWRlOyBpbmRleCA8IF90aGlzLnN0YXRlLnNsaWRlQ291bnQgKyAoMCwgX2lubmVyU2xpZGVyVXRpbHMuZ2V0UG9zdENsb25lcykoc3BlYyk7IGluZGV4KyspIHtcbiAgICAgICAgaWYgKF90aGlzLnN0YXRlLmxhenlMb2FkZWRMaXN0LmluZGV4T2YoaW5kZXgpIDwgMCkge1xuICAgICAgICAgIHNsaWRlc1RvTG9hZC5wdXNoKGluZGV4KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBmb3IgKHZhciBfaW5kZXggPSBfdGhpcy5zdGF0ZS5jdXJyZW50U2xpZGUgLSAxOyBfaW5kZXggPj0gLSgwLCBfaW5uZXJTbGlkZXJVdGlscy5nZXRQcmVDbG9uZXMpKHNwZWMpOyBfaW5kZXgtLSkge1xuICAgICAgICBpZiAoX3RoaXMuc3RhdGUubGF6eUxvYWRlZExpc3QuaW5kZXhPZihfaW5kZXgpIDwgMCkge1xuICAgICAgICAgIHNsaWRlc1RvTG9hZC5wdXNoKF9pbmRleCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHNsaWRlc1RvTG9hZC5sZW5ndGggPiAwKSB7XG4gICAgICAgIF90aGlzLnNldFN0YXRlKGZ1bmN0aW9uIChzdGF0ZSkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBsYXp5TG9hZGVkTGlzdDogc3RhdGUubGF6eUxvYWRlZExpc3QuY29uY2F0KHNsaWRlc1RvTG9hZClcbiAgICAgICAgICB9O1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoX3RoaXMucHJvcHMub25MYXp5TG9hZCkge1xuICAgICAgICAgIF90aGlzLnByb3BzLm9uTGF6eUxvYWQoc2xpZGVzVG9Mb2FkKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKF90aGlzLmxhenlMb2FkVGltZXIpIHtcbiAgICAgICAgICBjbGVhckludGVydmFsKF90aGlzLmxhenlMb2FkVGltZXIpO1xuICAgICAgICAgIGRlbGV0ZSBfdGhpcy5sYXp5TG9hZFRpbWVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwic2xpZGVIYW5kbGVyXCIsIGZ1bmN0aW9uIChpbmRleCkge1xuICAgICAgdmFyIGRvbnRBbmltYXRlID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiBmYWxzZTtcbiAgICAgIHZhciBfdGhpcyRwcm9wcyA9IF90aGlzLnByb3BzLFxuICAgICAgICAgIGFzTmF2Rm9yID0gX3RoaXMkcHJvcHMuYXNOYXZGb3IsXG4gICAgICAgICAgYmVmb3JlQ2hhbmdlID0gX3RoaXMkcHJvcHMuYmVmb3JlQ2hhbmdlLFxuICAgICAgICAgIG9uTGF6eUxvYWQgPSBfdGhpcyRwcm9wcy5vbkxhenlMb2FkLFxuICAgICAgICAgIHNwZWVkID0gX3RoaXMkcHJvcHMuc3BlZWQsXG4gICAgICAgICAgYWZ0ZXJDaGFuZ2UgPSBfdGhpcyRwcm9wcy5hZnRlckNoYW5nZTsgLy8gY2FwdHVyZSBjdXJyZW50c2xpZGUgYmVmb3JlIHN0YXRlIGlzIHVwZGF0ZWRcblxuICAgICAgdmFyIGN1cnJlbnRTbGlkZSA9IF90aGlzLnN0YXRlLmN1cnJlbnRTbGlkZTtcblxuICAgICAgdmFyIF9zbGlkZUhhbmRsZXIgPSAoMCwgX2lubmVyU2xpZGVyVXRpbHMuc2xpZGVIYW5kbGVyKShfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7XG4gICAgICAgIGluZGV4OiBpbmRleFxuICAgICAgfSwgX3RoaXMucHJvcHMpLCBfdGhpcy5zdGF0ZSksIHt9LCB7XG4gICAgICAgIHRyYWNrUmVmOiBfdGhpcy50cmFjayxcbiAgICAgICAgdXNlQ1NTOiBfdGhpcy5wcm9wcy51c2VDU1MgJiYgIWRvbnRBbmltYXRlXG4gICAgICB9KSksXG4gICAgICAgICAgc3RhdGUgPSBfc2xpZGVIYW5kbGVyLnN0YXRlLFxuICAgICAgICAgIG5leHRTdGF0ZSA9IF9zbGlkZUhhbmRsZXIubmV4dFN0YXRlO1xuXG4gICAgICBpZiAoIXN0YXRlKSByZXR1cm47XG4gICAgICBiZWZvcmVDaGFuZ2UgJiYgYmVmb3JlQ2hhbmdlKGN1cnJlbnRTbGlkZSwgc3RhdGUuY3VycmVudFNsaWRlKTtcbiAgICAgIHZhciBzbGlkZXNUb0xvYWQgPSBzdGF0ZS5sYXp5TG9hZGVkTGlzdC5maWx0ZXIoZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBfdGhpcy5zdGF0ZS5sYXp5TG9hZGVkTGlzdC5pbmRleE9mKHZhbHVlKSA8IDA7XG4gICAgICB9KTtcbiAgICAgIG9uTGF6eUxvYWQgJiYgc2xpZGVzVG9Mb2FkLmxlbmd0aCA+IDAgJiYgb25MYXp5TG9hZChzbGlkZXNUb0xvYWQpO1xuXG4gICAgICBpZiAoIV90aGlzLnByb3BzLndhaXRGb3JBbmltYXRlICYmIF90aGlzLmFuaW1hdGlvbkVuZENhbGxiYWNrKSB7XG4gICAgICAgIGNsZWFyVGltZW91dChfdGhpcy5hbmltYXRpb25FbmRDYWxsYmFjayk7XG4gICAgICAgIGFmdGVyQ2hhbmdlICYmIGFmdGVyQ2hhbmdlKGN1cnJlbnRTbGlkZSk7XG4gICAgICAgIGRlbGV0ZSBfdGhpcy5hbmltYXRpb25FbmRDYWxsYmFjaztcbiAgICAgIH1cblxuICAgICAgX3RoaXMuc2V0U3RhdGUoc3RhdGUsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgLy8gYXNOYXZGb3JJbmRleCBjaGVjayBpcyB0byBhdm9pZCByZWN1cnNpdmUgY2FsbHMgb2Ygc2xpZGVIYW5kbGVyIGluIHdhaXRGb3JBbmltYXRlPWZhbHNlIG1vZGVcbiAgICAgICAgaWYgKGFzTmF2Rm9yICYmIF90aGlzLmFzTmF2Rm9ySW5kZXggIT09IGluZGV4KSB7XG4gICAgICAgICAgX3RoaXMuYXNOYXZGb3JJbmRleCA9IGluZGV4O1xuICAgICAgICAgIGFzTmF2Rm9yLmlubmVyU2xpZGVyLnNsaWRlSGFuZGxlcihpbmRleCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIW5leHRTdGF0ZSkgcmV0dXJuO1xuICAgICAgICBfdGhpcy5hbmltYXRpb25FbmRDYWxsYmFjayA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHZhciBhbmltYXRpbmcgPSBuZXh0U3RhdGUuYW5pbWF0aW5nLFxuICAgICAgICAgICAgICBmaXJzdEJhdGNoID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKG5leHRTdGF0ZSwgW1wiYW5pbWF0aW5nXCJdKTtcblxuICAgICAgICAgIF90aGlzLnNldFN0YXRlKGZpcnN0QmF0Y2gsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIF90aGlzLmNhbGxiYWNrVGltZXJzLnB1c2goc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIHJldHVybiBfdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW5nOiBhbmltYXRpbmdcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LCAxMCkpO1xuXG4gICAgICAgICAgICBhZnRlckNoYW5nZSAmJiBhZnRlckNoYW5nZShzdGF0ZS5jdXJyZW50U2xpZGUpO1xuICAgICAgICAgICAgZGVsZXRlIF90aGlzLmFuaW1hdGlvbkVuZENhbGxiYWNrO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9LCBzcGVlZCk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJjaGFuZ2VTbGlkZVwiLCBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgdmFyIGRvbnRBbmltYXRlID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiBmYWxzZTtcblxuICAgICAgdmFyIHNwZWMgPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIF90aGlzLnByb3BzKSwgX3RoaXMuc3RhdGUpO1xuXG4gICAgICB2YXIgdGFyZ2V0U2xpZGUgPSAoMCwgX2lubmVyU2xpZGVyVXRpbHMuY2hhbmdlU2xpZGUpKHNwZWMsIG9wdGlvbnMpO1xuICAgICAgaWYgKHRhcmdldFNsaWRlICE9PSAwICYmICF0YXJnZXRTbGlkZSkgcmV0dXJuO1xuXG4gICAgICBpZiAoZG9udEFuaW1hdGUgPT09IHRydWUpIHtcbiAgICAgICAgX3RoaXMuc2xpZGVIYW5kbGVyKHRhcmdldFNsaWRlLCBkb250QW5pbWF0ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBfdGhpcy5zbGlkZUhhbmRsZXIodGFyZ2V0U2xpZGUpO1xuICAgICAgfVxuXG4gICAgICBfdGhpcy5wcm9wcy5hdXRvcGxheSAmJiBfdGhpcy5hdXRvUGxheShcInVwZGF0ZVwiKTtcblxuICAgICAgaWYgKF90aGlzLnByb3BzLmZvY3VzT25TZWxlY3QpIHtcbiAgICAgICAgdmFyIG5vZGVzID0gX3RoaXMubGlzdC5xdWVyeVNlbGVjdG9yQWxsKFwiLnNsaWNrLWN1cnJlbnRcIik7XG5cbiAgICAgICAgbm9kZXNbMF0gJiYgbm9kZXNbMF0uZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJjbGlja0hhbmRsZXJcIiwgZnVuY3Rpb24gKGUpIHtcbiAgICAgIGlmIChfdGhpcy5jbGlja2FibGUgPT09IGZhbHNlKSB7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cblxuICAgICAgX3RoaXMuY2xpY2thYmxlID0gdHJ1ZTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJrZXlIYW5kbGVyXCIsIGZ1bmN0aW9uIChlKSB7XG4gICAgICB2YXIgZGlyID0gKDAsIF9pbm5lclNsaWRlclV0aWxzLmtleUhhbmRsZXIpKGUsIF90aGlzLnByb3BzLmFjY2Vzc2liaWxpdHksIF90aGlzLnByb3BzLnJ0bCk7XG4gICAgICBkaXIgIT09IFwiXCIgJiYgX3RoaXMuY2hhbmdlU2xpZGUoe1xuICAgICAgICBtZXNzYWdlOiBkaXJcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcInNlbGVjdEhhbmRsZXJcIiwgZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgIF90aGlzLmNoYW5nZVNsaWRlKG9wdGlvbnMpO1xuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcImRpc2FibGVCb2R5U2Nyb2xsXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBwcmV2ZW50RGVmYXVsdCA9IGZ1bmN0aW9uIHByZXZlbnREZWZhdWx0KGUpIHtcbiAgICAgICAgZSA9IGUgfHwgd2luZG93LmV2ZW50O1xuICAgICAgICBpZiAoZS5wcmV2ZW50RGVmYXVsdCkgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBlLnJldHVyblZhbHVlID0gZmFsc2U7XG4gICAgICB9O1xuXG4gICAgICB3aW5kb3cub250b3VjaG1vdmUgPSBwcmV2ZW50RGVmYXVsdDtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJlbmFibGVCb2R5U2Nyb2xsXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHdpbmRvdy5vbnRvdWNobW92ZSA9IG51bGw7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwic3dpcGVTdGFydFwiLCBmdW5jdGlvbiAoZSkge1xuICAgICAgaWYgKF90aGlzLnByb3BzLnZlcnRpY2FsU3dpcGluZykge1xuICAgICAgICBfdGhpcy5kaXNhYmxlQm9keVNjcm9sbCgpO1xuICAgICAgfVxuXG4gICAgICB2YXIgc3RhdGUgPSAoMCwgX2lubmVyU2xpZGVyVXRpbHMuc3dpcGVTdGFydCkoZSwgX3RoaXMucHJvcHMuc3dpcGUsIF90aGlzLnByb3BzLmRyYWdnYWJsZSk7XG4gICAgICBzdGF0ZSAhPT0gXCJcIiAmJiBfdGhpcy5zZXRTdGF0ZShzdGF0ZSk7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwic3dpcGVNb3ZlXCIsIGZ1bmN0aW9uIChlKSB7XG4gICAgICB2YXIgc3RhdGUgPSAoMCwgX2lubmVyU2xpZGVyVXRpbHMuc3dpcGVNb3ZlKShlLCBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgX3RoaXMucHJvcHMpLCBfdGhpcy5zdGF0ZSksIHt9LCB7XG4gICAgICAgIHRyYWNrUmVmOiBfdGhpcy50cmFjayxcbiAgICAgICAgbGlzdFJlZjogX3RoaXMubGlzdCxcbiAgICAgICAgc2xpZGVJbmRleDogX3RoaXMuc3RhdGUuY3VycmVudFNsaWRlXG4gICAgICB9KSk7XG4gICAgICBpZiAoIXN0YXRlKSByZXR1cm47XG5cbiAgICAgIGlmIChzdGF0ZVtcInN3aXBpbmdcIl0pIHtcbiAgICAgICAgX3RoaXMuY2xpY2thYmxlID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIF90aGlzLnNldFN0YXRlKHN0YXRlKTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJzd2lwZUVuZFwiLCBmdW5jdGlvbiAoZSkge1xuICAgICAgdmFyIHN0YXRlID0gKDAsIF9pbm5lclNsaWRlclV0aWxzLnN3aXBlRW5kKShlLCBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgX3RoaXMucHJvcHMpLCBfdGhpcy5zdGF0ZSksIHt9LCB7XG4gICAgICAgIHRyYWNrUmVmOiBfdGhpcy50cmFjayxcbiAgICAgICAgbGlzdFJlZjogX3RoaXMubGlzdCxcbiAgICAgICAgc2xpZGVJbmRleDogX3RoaXMuc3RhdGUuY3VycmVudFNsaWRlXG4gICAgICB9KSk7XG4gICAgICBpZiAoIXN0YXRlKSByZXR1cm47XG4gICAgICB2YXIgdHJpZ2dlclNsaWRlSGFuZGxlciA9IHN0YXRlW1widHJpZ2dlclNsaWRlSGFuZGxlclwiXTtcbiAgICAgIGRlbGV0ZSBzdGF0ZVtcInRyaWdnZXJTbGlkZUhhbmRsZXJcIl07XG5cbiAgICAgIF90aGlzLnNldFN0YXRlKHN0YXRlKTtcblxuICAgICAgaWYgKHRyaWdnZXJTbGlkZUhhbmRsZXIgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuXG4gICAgICBfdGhpcy5zbGlkZUhhbmRsZXIodHJpZ2dlclNsaWRlSGFuZGxlcik7XG5cbiAgICAgIGlmIChfdGhpcy5wcm9wcy52ZXJ0aWNhbFN3aXBpbmcpIHtcbiAgICAgICAgX3RoaXMuZW5hYmxlQm9keVNjcm9sbCgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcInRvdWNoRW5kXCIsIGZ1bmN0aW9uIChlKSB7XG4gICAgICBfdGhpcy5zd2lwZUVuZChlKTtcblxuICAgICAgX3RoaXMuY2xpY2thYmxlID0gdHJ1ZTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJzbGlja1ByZXZcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgLy8gdGhpcyBhbmQgZmVsbG93IG1ldGhvZHMgYXJlIHdyYXBwZWQgaW4gc2V0VGltZW91dFxuICAgICAgLy8gdG8gbWFrZSBzdXJlIGluaXRpYWxpemUgc2V0U3RhdGUgaGFzIGhhcHBlbmVkIGJlZm9yZVxuICAgICAgLy8gYW55IG9mIHN1Y2ggbWV0aG9kcyBhcmUgY2FsbGVkXG4gICAgICBfdGhpcy5jYWxsYmFja1RpbWVycy5wdXNoKHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gX3RoaXMuY2hhbmdlU2xpZGUoe1xuICAgICAgICAgIG1lc3NhZ2U6IFwicHJldmlvdXNcIlxuICAgICAgICB9KTtcbiAgICAgIH0sIDApKTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJzbGlja05leHRcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgX3RoaXMuY2FsbGJhY2tUaW1lcnMucHVzaChzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIF90aGlzLmNoYW5nZVNsaWRlKHtcbiAgICAgICAgICBtZXNzYWdlOiBcIm5leHRcIlxuICAgICAgICB9KTtcbiAgICAgIH0sIDApKTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJzbGlja0dvVG9cIiwgZnVuY3Rpb24gKHNsaWRlKSB7XG4gICAgICB2YXIgZG9udEFuaW1hdGUgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IGZhbHNlO1xuICAgICAgc2xpZGUgPSBOdW1iZXIoc2xpZGUpO1xuICAgICAgaWYgKGlzTmFOKHNsaWRlKSkgcmV0dXJuIFwiXCI7XG5cbiAgICAgIF90aGlzLmNhbGxiYWNrVGltZXJzLnB1c2goc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBfdGhpcy5jaGFuZ2VTbGlkZSh7XG4gICAgICAgICAgbWVzc2FnZTogXCJpbmRleFwiLFxuICAgICAgICAgIGluZGV4OiBzbGlkZSxcbiAgICAgICAgICBjdXJyZW50U2xpZGU6IF90aGlzLnN0YXRlLmN1cnJlbnRTbGlkZVxuICAgICAgICB9LCBkb250QW5pbWF0ZSk7XG4gICAgICB9LCAwKSk7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwicGxheVwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgbmV4dEluZGV4O1xuXG4gICAgICBpZiAoX3RoaXMucHJvcHMucnRsKSB7XG4gICAgICAgIG5leHRJbmRleCA9IF90aGlzLnN0YXRlLmN1cnJlbnRTbGlkZSAtIF90aGlzLnByb3BzLnNsaWRlc1RvU2Nyb2xsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCgwLCBfaW5uZXJTbGlkZXJVdGlscy5jYW5Hb05leHQpKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgX3RoaXMucHJvcHMpLCBfdGhpcy5zdGF0ZSkpKSB7XG4gICAgICAgICAgbmV4dEluZGV4ID0gX3RoaXMuc3RhdGUuY3VycmVudFNsaWRlICsgX3RoaXMucHJvcHMuc2xpZGVzVG9TY3JvbGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIF90aGlzLnNsaWRlSGFuZGxlcihuZXh0SW5kZXgpO1xuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcImF1dG9QbGF5XCIsIGZ1bmN0aW9uIChwbGF5VHlwZSkge1xuICAgICAgaWYgKF90aGlzLmF1dG9wbGF5VGltZXIpIHtcbiAgICAgICAgY2xlYXJJbnRlcnZhbChfdGhpcy5hdXRvcGxheVRpbWVyKTtcbiAgICAgIH1cblxuICAgICAgdmFyIGF1dG9wbGF5aW5nID0gX3RoaXMuc3RhdGUuYXV0b3BsYXlpbmc7XG5cbiAgICAgIGlmIChwbGF5VHlwZSA9PT0gXCJ1cGRhdGVcIikge1xuICAgICAgICBpZiAoYXV0b3BsYXlpbmcgPT09IFwiaG92ZXJlZFwiIHx8IGF1dG9wbGF5aW5nID09PSBcImZvY3VzZWRcIiB8fCBhdXRvcGxheWluZyA9PT0gXCJwYXVzZWRcIikge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChwbGF5VHlwZSA9PT0gXCJsZWF2ZVwiKSB7XG4gICAgICAgIGlmIChhdXRvcGxheWluZyA9PT0gXCJwYXVzZWRcIiB8fCBhdXRvcGxheWluZyA9PT0gXCJmb2N1c2VkXCIpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAocGxheVR5cGUgPT09IFwiYmx1clwiKSB7XG4gICAgICAgIGlmIChhdXRvcGxheWluZyA9PT0gXCJwYXVzZWRcIiB8fCBhdXRvcGxheWluZyA9PT0gXCJob3ZlcmVkXCIpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgX3RoaXMuYXV0b3BsYXlUaW1lciA9IHNldEludGVydmFsKF90aGlzLnBsYXksIF90aGlzLnByb3BzLmF1dG9wbGF5U3BlZWQgKyA1MCk7XG5cbiAgICAgIF90aGlzLnNldFN0YXRlKHtcbiAgICAgICAgYXV0b3BsYXlpbmc6IFwicGxheWluZ1wiXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJwYXVzZVwiLCBmdW5jdGlvbiAocGF1c2VUeXBlKSB7XG4gICAgICBpZiAoX3RoaXMuYXV0b3BsYXlUaW1lcikge1xuICAgICAgICBjbGVhckludGVydmFsKF90aGlzLmF1dG9wbGF5VGltZXIpO1xuICAgICAgICBfdGhpcy5hdXRvcGxheVRpbWVyID0gbnVsbDtcbiAgICAgIH1cblxuICAgICAgdmFyIGF1dG9wbGF5aW5nID0gX3RoaXMuc3RhdGUuYXV0b3BsYXlpbmc7XG5cbiAgICAgIGlmIChwYXVzZVR5cGUgPT09IFwicGF1c2VkXCIpIHtcbiAgICAgICAgX3RoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgIGF1dG9wbGF5aW5nOiBcInBhdXNlZFwiXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmIChwYXVzZVR5cGUgPT09IFwiZm9jdXNlZFwiKSB7XG4gICAgICAgIGlmIChhdXRvcGxheWluZyA9PT0gXCJob3ZlcmVkXCIgfHwgYXV0b3BsYXlpbmcgPT09IFwicGxheWluZ1wiKSB7XG4gICAgICAgICAgX3RoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgYXV0b3BsYXlpbmc6IFwiZm9jdXNlZFwiXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIHBhdXNlVHlwZSAgaXMgJ2hvdmVyZWQnXG4gICAgICAgIGlmIChhdXRvcGxheWluZyA9PT0gXCJwbGF5aW5nXCIpIHtcbiAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICBhdXRvcGxheWluZzogXCJob3ZlcmVkXCJcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcIm9uRG90c092ZXJcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIF90aGlzLnByb3BzLmF1dG9wbGF5ICYmIF90aGlzLnBhdXNlKFwiaG92ZXJlZFwiKTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJvbkRvdHNMZWF2ZVwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gX3RoaXMucHJvcHMuYXV0b3BsYXkgJiYgX3RoaXMuc3RhdGUuYXV0b3BsYXlpbmcgPT09IFwiaG92ZXJlZFwiICYmIF90aGlzLmF1dG9QbGF5KFwibGVhdmVcIik7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwib25UcmFja092ZXJcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIF90aGlzLnByb3BzLmF1dG9wbGF5ICYmIF90aGlzLnBhdXNlKFwiaG92ZXJlZFwiKTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJvblRyYWNrTGVhdmVcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIF90aGlzLnByb3BzLmF1dG9wbGF5ICYmIF90aGlzLnN0YXRlLmF1dG9wbGF5aW5nID09PSBcImhvdmVyZWRcIiAmJiBfdGhpcy5hdXRvUGxheShcImxlYXZlXCIpO1xuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcIm9uU2xpZGVGb2N1c1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gX3RoaXMucHJvcHMuYXV0b3BsYXkgJiYgX3RoaXMucGF1c2UoXCJmb2N1c2VkXCIpO1xuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcIm9uU2xpZGVCbHVyXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBfdGhpcy5wcm9wcy5hdXRvcGxheSAmJiBfdGhpcy5zdGF0ZS5hdXRvcGxheWluZyA9PT0gXCJmb2N1c2VkXCIgJiYgX3RoaXMuYXV0b1BsYXkoXCJibHVyXCIpO1xuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcInJlbmRlclwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgY2xhc3NOYW1lID0gKDAsIF9jbGFzc25hbWVzW1wiZGVmYXVsdFwiXSkoXCJzbGljay1zbGlkZXJcIiwgX3RoaXMucHJvcHMuY2xhc3NOYW1lLCB7XG4gICAgICAgIFwic2xpY2stdmVydGljYWxcIjogX3RoaXMucHJvcHMudmVydGljYWwsXG4gICAgICAgIFwic2xpY2staW5pdGlhbGl6ZWRcIjogdHJ1ZVxuICAgICAgfSk7XG5cbiAgICAgIHZhciBzcGVjID0gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBfdGhpcy5wcm9wcyksIF90aGlzLnN0YXRlKTtcblxuICAgICAgdmFyIHRyYWNrUHJvcHMgPSAoMCwgX2lubmVyU2xpZGVyVXRpbHMuZXh0cmFjdE9iamVjdCkoc3BlYywgW1wiZmFkZVwiLCBcImNzc0Vhc2VcIiwgXCJzcGVlZFwiLCBcImluZmluaXRlXCIsIFwiY2VudGVyTW9kZVwiLCBcImZvY3VzT25TZWxlY3RcIiwgXCJjdXJyZW50U2xpZGVcIiwgXCJsYXp5TG9hZFwiLCBcImxhenlMb2FkZWRMaXN0XCIsIFwicnRsXCIsIFwic2xpZGVXaWR0aFwiLCBcInNsaWRlSGVpZ2h0XCIsIFwibGlzdEhlaWdodFwiLCBcInZlcnRpY2FsXCIsIFwic2xpZGVzVG9TaG93XCIsIFwic2xpZGVzVG9TY3JvbGxcIiwgXCJzbGlkZUNvdW50XCIsIFwidHJhY2tTdHlsZVwiLCBcInZhcmlhYmxlV2lkdGhcIiwgXCJ1bnNsaWNrXCIsIFwiY2VudGVyUGFkZGluZ1wiLCBcInRhcmdldFNsaWRlXCIsIFwidXNlQ1NTXCJdKTtcbiAgICAgIHZhciBwYXVzZU9uSG92ZXIgPSBfdGhpcy5wcm9wcy5wYXVzZU9uSG92ZXI7XG4gICAgICB0cmFja1Byb3BzID0gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCB0cmFja1Byb3BzKSwge30sIHtcbiAgICAgICAgb25Nb3VzZUVudGVyOiBwYXVzZU9uSG92ZXIgPyBfdGhpcy5vblRyYWNrT3ZlciA6IG51bGwsXG4gICAgICAgIG9uTW91c2VMZWF2ZTogcGF1c2VPbkhvdmVyID8gX3RoaXMub25UcmFja0xlYXZlIDogbnVsbCxcbiAgICAgICAgb25Nb3VzZU92ZXI6IHBhdXNlT25Ib3ZlciA/IF90aGlzLm9uVHJhY2tPdmVyIDogbnVsbCxcbiAgICAgICAgZm9jdXNPblNlbGVjdDogX3RoaXMucHJvcHMuZm9jdXNPblNlbGVjdCAmJiBfdGhpcy5jbGlja2FibGUgPyBfdGhpcy5zZWxlY3RIYW5kbGVyIDogbnVsbFxuICAgICAgfSk7XG4gICAgICB2YXIgZG90cztcblxuICAgICAgaWYgKF90aGlzLnByb3BzLmRvdHMgPT09IHRydWUgJiYgX3RoaXMuc3RhdGUuc2xpZGVDb3VudCA+PSBfdGhpcy5wcm9wcy5zbGlkZXNUb1Nob3cpIHtcbiAgICAgICAgdmFyIGRvdFByb3BzID0gKDAsIF9pbm5lclNsaWRlclV0aWxzLmV4dHJhY3RPYmplY3QpKHNwZWMsIFtcImRvdHNDbGFzc1wiLCBcInNsaWRlQ291bnRcIiwgXCJzbGlkZXNUb1Nob3dcIiwgXCJjdXJyZW50U2xpZGVcIiwgXCJzbGlkZXNUb1Njcm9sbFwiLCBcImNsaWNrSGFuZGxlclwiLCBcImNoaWxkcmVuXCIsIFwiY3VzdG9tUGFnaW5nXCIsIFwiaW5maW5pdGVcIiwgXCJhcHBlbmREb3RzXCJdKTtcbiAgICAgICAgdmFyIHBhdXNlT25Eb3RzSG92ZXIgPSBfdGhpcy5wcm9wcy5wYXVzZU9uRG90c0hvdmVyO1xuICAgICAgICBkb3RQcm9wcyA9IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgZG90UHJvcHMpLCB7fSwge1xuICAgICAgICAgIGNsaWNrSGFuZGxlcjogX3RoaXMuY2hhbmdlU2xpZGUsXG4gICAgICAgICAgb25Nb3VzZUVudGVyOiBwYXVzZU9uRG90c0hvdmVyID8gX3RoaXMub25Eb3RzTGVhdmUgOiBudWxsLFxuICAgICAgICAgIG9uTW91c2VPdmVyOiBwYXVzZU9uRG90c0hvdmVyID8gX3RoaXMub25Eb3RzT3ZlciA6IG51bGwsXG4gICAgICAgICAgb25Nb3VzZUxlYXZlOiBwYXVzZU9uRG90c0hvdmVyID8gX3RoaXMub25Eb3RzTGVhdmUgOiBudWxsXG4gICAgICAgIH0pO1xuICAgICAgICBkb3RzID0gLyojX19QVVJFX18qL19yZWFjdFtcImRlZmF1bHRcIl0uY3JlYXRlRWxlbWVudChfZG90cy5Eb3RzLCBkb3RQcm9wcyk7XG4gICAgICB9XG5cbiAgICAgIHZhciBwcmV2QXJyb3csIG5leHRBcnJvdztcbiAgICAgIHZhciBhcnJvd1Byb3BzID0gKDAsIF9pbm5lclNsaWRlclV0aWxzLmV4dHJhY3RPYmplY3QpKHNwZWMsIFtcImluZmluaXRlXCIsIFwiY2VudGVyTW9kZVwiLCBcImN1cnJlbnRTbGlkZVwiLCBcInNsaWRlQ291bnRcIiwgXCJzbGlkZXNUb1Nob3dcIiwgXCJwcmV2QXJyb3dcIiwgXCJuZXh0QXJyb3dcIl0pO1xuICAgICAgYXJyb3dQcm9wcy5jbGlja0hhbmRsZXIgPSBfdGhpcy5jaGFuZ2VTbGlkZTtcblxuICAgICAgaWYgKF90aGlzLnByb3BzLmFycm93cykge1xuICAgICAgICBwcmV2QXJyb3cgPSAvKiNfX1BVUkVfXyovX3JlYWN0W1wiZGVmYXVsdFwiXS5jcmVhdGVFbGVtZW50KF9hcnJvd3MuUHJldkFycm93LCBhcnJvd1Byb3BzKTtcbiAgICAgICAgbmV4dEFycm93ID0gLyojX19QVVJFX18qL19yZWFjdFtcImRlZmF1bHRcIl0uY3JlYXRlRWxlbWVudChfYXJyb3dzLk5leHRBcnJvdywgYXJyb3dQcm9wcyk7XG4gICAgICB9XG5cbiAgICAgIHZhciB2ZXJ0aWNhbEhlaWdodFN0eWxlID0gbnVsbDtcblxuICAgICAgaWYgKF90aGlzLnByb3BzLnZlcnRpY2FsKSB7XG4gICAgICAgIHZlcnRpY2FsSGVpZ2h0U3R5bGUgPSB7XG4gICAgICAgICAgaGVpZ2h0OiBfdGhpcy5zdGF0ZS5saXN0SGVpZ2h0XG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHZhciBjZW50ZXJQYWRkaW5nU3R5bGUgPSBudWxsO1xuXG4gICAgICBpZiAoX3RoaXMucHJvcHMudmVydGljYWwgPT09IGZhbHNlKSB7XG4gICAgICAgIGlmIChfdGhpcy5wcm9wcy5jZW50ZXJNb2RlID09PSB0cnVlKSB7XG4gICAgICAgICAgY2VudGVyUGFkZGluZ1N0eWxlID0ge1xuICAgICAgICAgICAgcGFkZGluZzogXCIwcHggXCIgKyBfdGhpcy5wcm9wcy5jZW50ZXJQYWRkaW5nXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKF90aGlzLnByb3BzLmNlbnRlck1vZGUgPT09IHRydWUpIHtcbiAgICAgICAgICBjZW50ZXJQYWRkaW5nU3R5bGUgPSB7XG4gICAgICAgICAgICBwYWRkaW5nOiBfdGhpcy5wcm9wcy5jZW50ZXJQYWRkaW5nICsgXCIgMHB4XCJcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHZhciBsaXN0U3R5bGUgPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHZlcnRpY2FsSGVpZ2h0U3R5bGUpLCBjZW50ZXJQYWRkaW5nU3R5bGUpO1xuXG4gICAgICB2YXIgdG91Y2hNb3ZlID0gX3RoaXMucHJvcHMudG91Y2hNb3ZlO1xuICAgICAgdmFyIGxpc3RQcm9wcyA9IHtcbiAgICAgICAgY2xhc3NOYW1lOiBcInNsaWNrLWxpc3RcIixcbiAgICAgICAgc3R5bGU6IGxpc3RTdHlsZSxcbiAgICAgICAgb25DbGljazogX3RoaXMuY2xpY2tIYW5kbGVyLFxuICAgICAgICBvbk1vdXNlRG93bjogdG91Y2hNb3ZlID8gX3RoaXMuc3dpcGVTdGFydCA6IG51bGwsXG4gICAgICAgIG9uTW91c2VNb3ZlOiBfdGhpcy5zdGF0ZS5kcmFnZ2luZyAmJiB0b3VjaE1vdmUgPyBfdGhpcy5zd2lwZU1vdmUgOiBudWxsLFxuICAgICAgICBvbk1vdXNlVXA6IHRvdWNoTW92ZSA/IF90aGlzLnN3aXBlRW5kIDogbnVsbCxcbiAgICAgICAgb25Nb3VzZUxlYXZlOiBfdGhpcy5zdGF0ZS5kcmFnZ2luZyAmJiB0b3VjaE1vdmUgPyBfdGhpcy5zd2lwZUVuZCA6IG51bGwsXG4gICAgICAgIG9uVG91Y2hTdGFydDogdG91Y2hNb3ZlID8gX3RoaXMuc3dpcGVTdGFydCA6IG51bGwsXG4gICAgICAgIG9uVG91Y2hNb3ZlOiBfdGhpcy5zdGF0ZS5kcmFnZ2luZyAmJiB0b3VjaE1vdmUgPyBfdGhpcy5zd2lwZU1vdmUgOiBudWxsLFxuICAgICAgICBvblRvdWNoRW5kOiB0b3VjaE1vdmUgPyBfdGhpcy50b3VjaEVuZCA6IG51bGwsXG4gICAgICAgIG9uVG91Y2hDYW5jZWw6IF90aGlzLnN0YXRlLmRyYWdnaW5nICYmIHRvdWNoTW92ZSA/IF90aGlzLnN3aXBlRW5kIDogbnVsbCxcbiAgICAgICAgb25LZXlEb3duOiBfdGhpcy5wcm9wcy5hY2Nlc3NpYmlsaXR5ID8gX3RoaXMua2V5SGFuZGxlciA6IG51bGxcbiAgICAgIH07XG4gICAgICB2YXIgaW5uZXJTbGlkZXJQcm9wcyA9IHtcbiAgICAgICAgY2xhc3NOYW1lOiBjbGFzc05hbWUsXG4gICAgICAgIGRpcjogXCJsdHJcIixcbiAgICAgICAgc3R5bGU6IF90aGlzLnByb3BzLnN0eWxlXG4gICAgICB9O1xuXG4gICAgICBpZiAoX3RoaXMucHJvcHMudW5zbGljaykge1xuICAgICAgICBsaXN0UHJvcHMgPSB7XG4gICAgICAgICAgY2xhc3NOYW1lOiBcInNsaWNrLWxpc3RcIlxuICAgICAgICB9O1xuICAgICAgICBpbm5lclNsaWRlclByb3BzID0ge1xuICAgICAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovX3JlYWN0W1wiZGVmYXVsdFwiXS5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIGlubmVyU2xpZGVyUHJvcHMsICFfdGhpcy5wcm9wcy51bnNsaWNrID8gcHJldkFycm93IDogXCJcIiwgLyojX19QVVJFX18qL19yZWFjdFtcImRlZmF1bHRcIl0uY3JlYXRlRWxlbWVudChcImRpdlwiLCBfZXh0ZW5kcyh7XG4gICAgICAgIHJlZjogX3RoaXMubGlzdFJlZkhhbmRsZXJcbiAgICAgIH0sIGxpc3RQcm9wcyksIC8qI19fUFVSRV9fKi9fcmVhY3RbXCJkZWZhdWx0XCJdLmNyZWF0ZUVsZW1lbnQoX3RyYWNrLlRyYWNrLCBfZXh0ZW5kcyh7XG4gICAgICAgIHJlZjogX3RoaXMudHJhY2tSZWZIYW5kbGVyXG4gICAgICB9LCB0cmFja1Byb3BzKSwgX3RoaXMucHJvcHMuY2hpbGRyZW4pKSwgIV90aGlzLnByb3BzLnVuc2xpY2sgPyBuZXh0QXJyb3cgOiBcIlwiLCAhX3RoaXMucHJvcHMudW5zbGljayA/IGRvdHMgOiBcIlwiKTtcbiAgICB9KTtcblxuICAgIF90aGlzLmxpc3QgPSBudWxsO1xuICAgIF90aGlzLnRyYWNrID0gbnVsbDtcbiAgICBfdGhpcy5zdGF0ZSA9IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgX2luaXRpYWxTdGF0ZVtcImRlZmF1bHRcIl0pLCB7fSwge1xuICAgICAgY3VycmVudFNsaWRlOiBfdGhpcy5wcm9wcy5pbml0aWFsU2xpZGUsXG4gICAgICBzbGlkZUNvdW50OiBfcmVhY3RbXCJkZWZhdWx0XCJdLkNoaWxkcmVuLmNvdW50KF90aGlzLnByb3BzLmNoaWxkcmVuKVxuICAgIH0pO1xuICAgIF90aGlzLmNhbGxiYWNrVGltZXJzID0gW107XG4gICAgX3RoaXMuY2xpY2thYmxlID0gdHJ1ZTtcbiAgICBfdGhpcy5kZWJvdW5jZWRSZXNpemUgPSBudWxsO1xuXG4gICAgdmFyIHNzclN0YXRlID0gX3RoaXMuc3NySW5pdCgpO1xuXG4gICAgX3RoaXMuc3RhdGUgPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIF90aGlzLnN0YXRlKSwgc3NyU3RhdGUpO1xuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhJbm5lclNsaWRlciwgW3tcbiAgICBrZXk6IFwiZGlkUHJvcHNDaGFuZ2VcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZGlkUHJvcHNDaGFuZ2UocHJldlByb3BzKSB7XG4gICAgICB2YXIgc2V0VHJhY2tTdHlsZSA9IGZhbHNlO1xuXG4gICAgICBmb3IgKHZhciBfaTMgPSAwLCBfT2JqZWN0JGtleXMgPSBPYmplY3Qua2V5cyh0aGlzLnByb3BzKTsgX2kzIDwgX09iamVjdCRrZXlzLmxlbmd0aDsgX2kzKyspIHtcbiAgICAgICAgdmFyIGtleSA9IF9PYmplY3Qka2V5c1tfaTNdO1xuXG4gICAgICAgIGlmICghcHJldlByb3BzLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICBzZXRUcmFja1N0eWxlID0gdHJ1ZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChfdHlwZW9mKHByZXZQcm9wc1trZXldKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgcHJldlByb3BzW2tleV0gPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHByZXZQcm9wc1trZXldICE9PSB0aGlzLnByb3BzW2tleV0pIHtcbiAgICAgICAgICBzZXRUcmFja1N0eWxlID0gdHJ1ZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gc2V0VHJhY2tTdHlsZSB8fCBfcmVhY3RbXCJkZWZhdWx0XCJdLkNoaWxkcmVuLmNvdW50KHRoaXMucHJvcHMuY2hpbGRyZW4pICE9PSBfcmVhY3RbXCJkZWZhdWx0XCJdLkNoaWxkcmVuLmNvdW50KHByZXZQcm9wcy5jaGlsZHJlbik7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIElubmVyU2xpZGVyO1xufShfcmVhY3RbXCJkZWZhdWx0XCJdLkNvbXBvbmVudCk7XG5cbmV4cG9ydHMuSW5uZXJTbGlkZXIgPSBJbm5lclNsaWRlcjsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-slick/lib/inner-slider.js\n"); + +/***/ }), + +/***/ "./node_modules/react-slick/lib/slider.js": +/*!************************************************!*\ + !*** ./node_modules/react-slick/lib/slider.js ***! + \************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _innerSlider = __webpack_require__(/*! ./inner-slider */ \"./node_modules/react-slick/lib/inner-slider.js\");\n\nvar _json2mq = _interopRequireDefault(__webpack_require__(/*! json2mq */ \"./node_modules/json2mq/index.js\"));\n\nvar _defaultProps = _interopRequireDefault(__webpack_require__(/*! ./default-props */ \"./node_modules/react-slick/lib/default-props.js\"));\n\nvar _innerSliderUtils = __webpack_require__(/*! ./utils/innerSliderUtils */ \"./node_modules/react-slick/lib/utils/innerSliderUtils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar enquire = (0, _innerSliderUtils.canUseDOM)() && __webpack_require__(/*! enquire.js */ \"./node_modules/enquire.js/src/index.js\");\n\nvar Slider = /*#__PURE__*/function (_React$Component) {\n _inherits(Slider, _React$Component);\n\n var _super = _createSuper(Slider);\n\n function Slider(props) {\n var _this;\n\n _classCallCheck(this, Slider);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"innerSliderRefHandler\", function (ref) {\n return _this.innerSlider = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n return _this.innerSlider.slickPrev();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n return _this.innerSlider.slickNext();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return _this.innerSlider.slickGoTo(slide, dontAnimate);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPause\", function () {\n return _this.innerSlider.pause(\"paused\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPlay\", function () {\n return _this.innerSlider.autoPlay(\"play\");\n });\n\n _this.state = {\n breakpoint: null\n };\n _this._responsiveMediaHandlers = [];\n return _this;\n }\n\n _createClass(Slider, [{\n key: \"media\",\n value: function media(query, handler) {\n // javascript handler for css media query\n enquire.register(query, handler);\n\n this._responsiveMediaHandlers.push({\n query: query,\n handler: handler\n });\n } // handles responsive breakpoints\n\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n // performance monitoring\n //if (process.env.NODE_ENV !== 'production') {\n //const { whyDidYouUpdate } = require('why-did-you-update')\n //whyDidYouUpdate(React)\n //}\n if (this.props.responsive) {\n var breakpoints = this.props.responsive.map(function (breakpt) {\n return breakpt.breakpoint;\n }); // sort them in increasing order of their numerical value\n\n breakpoints.sort(function (x, y) {\n return x - y;\n });\n breakpoints.forEach(function (breakpoint, index) {\n // media query for each breakpoint\n var bQuery;\n\n if (index === 0) {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: 0,\n maxWidth: breakpoint\n });\n } else {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: breakpoints[index - 1] + 1,\n maxWidth: breakpoint\n });\n } // when not using server side rendering\n\n\n (0, _innerSliderUtils.canUseDOM)() && _this2.media(bQuery, function () {\n _this2.setState({\n breakpoint: breakpoint\n });\n });\n }); // Register media query for full screen. Need to support resize from small to large\n // convert javascript object to media query string\n\n var query = (0, _json2mq[\"default\"])({\n minWidth: breakpoints.slice(-1)[0]\n });\n (0, _innerSliderUtils.canUseDOM)() && this.media(query, function () {\n _this2.setState({\n breakpoint: null\n });\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._responsiveMediaHandlers.forEach(function (obj) {\n enquire.unregister(obj.query, obj.handler);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var settings;\n var newProps;\n\n if (this.state.breakpoint) {\n newProps = this.props.responsive.filter(function (resp) {\n return resp.breakpoint === _this3.state.breakpoint;\n });\n settings = newProps[0].settings === \"unslick\" ? \"unslick\" : _objectSpread(_objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props), newProps[0].settings);\n } else {\n settings = _objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props);\n } // force scrolling by one if centerMode is on\n\n\n if (settings.centerMode) {\n if (settings.slidesToScroll > 1 && \"development\" !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 in centerMode, you are using \".concat(settings.slidesToScroll));\n }\n\n settings.slidesToScroll = 1;\n } // force showing one slide and scrolling by one if the fade mode is on\n\n\n if (settings.fade) {\n if (settings.slidesToShow > 1 && \"development\" !== \"production\") {\n console.warn(\"slidesToShow should be equal to 1 when fade is true, you're using \".concat(settings.slidesToShow));\n }\n\n if (settings.slidesToScroll > 1 && \"development\" !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 when fade is true, you're using \".concat(settings.slidesToScroll));\n }\n\n settings.slidesToShow = 1;\n settings.slidesToScroll = 1;\n } // makes sure that children is an array, even when there is only 1 child\n\n\n var children = _react[\"default\"].Children.toArray(this.props.children); // Children may contain false or null, so we should filter them\n // children may also contain string filled with spaces (in certain cases where we use jsx strings)\n\n\n children = children.filter(function (child) {\n if (typeof child === \"string\") {\n return !!child.trim();\n }\n\n return !!child;\n }); // rows and slidesPerRow logic is handled here\n\n if (settings.variableWidth && (settings.rows > 1 || settings.slidesPerRow > 1)) {\n console.warn(\"variableWidth is not supported in case of rows > 1 or slidesPerRow > 1\");\n settings.variableWidth = false;\n }\n\n var newChildren = [];\n var currentWidth = null;\n\n for (var i = 0; i < children.length; i += settings.rows * settings.slidesPerRow) {\n var newSlide = [];\n\n for (var j = i; j < i + settings.rows * settings.slidesPerRow; j += settings.slidesPerRow) {\n var row = [];\n\n for (var k = j; k < j + settings.slidesPerRow; k += 1) {\n if (settings.variableWidth && children[k].props.style) {\n currentWidth = children[k].props.style.width;\n }\n\n if (k >= children.length) break;\n row.push( /*#__PURE__*/_react[\"default\"].cloneElement(children[k], {\n key: 100 * i + 10 * j + k,\n tabIndex: -1,\n style: {\n width: \"\".concat(100 / settings.slidesPerRow, \"%\"),\n display: \"inline-block\"\n }\n }));\n }\n\n newSlide.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: 10 * i + j\n }, row));\n }\n\n if (settings.variableWidth) {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i,\n style: {\n width: currentWidth\n }\n }, newSlide));\n } else {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i\n }, newSlide));\n }\n }\n\n if (settings === \"unslick\") {\n var className = \"regular slider \" + (this.props.className || \"\");\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: className\n }, children);\n } else if (newChildren.length <= settings.slidesToShow) {\n settings.unslick = true;\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(_innerSlider.InnerSlider, _extends({\n style: this.props.style,\n ref: this.innerSliderRefHandler\n }, settings), newChildren);\n }\n }]);\n\n return Slider;\n}(_react[\"default\"].Component);\n\nexports[\"default\"] = Slider;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2xpY2svbGliL3NsaWRlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixrQkFBa0I7O0FBRWxCLG9DQUFvQyxtQkFBTyxDQUFDLDRDQUFPOztBQUVuRCxtQkFBbUIsbUJBQU8sQ0FBQyxzRUFBZ0I7O0FBRTNDLHNDQUFzQyxtQkFBTyxDQUFDLGdEQUFTOztBQUV2RCwyQ0FBMkMsbUJBQU8sQ0FBQyx3RUFBaUI7O0FBRXBFLHdCQUF3QixtQkFBTyxDQUFDLDBGQUEwQjs7QUFFMUQsdUNBQXVDLHVDQUF1Qzs7QUFFOUUsd0JBQXdCLDJCQUEyQiwyRUFBMkUsa0NBQWtDLHdCQUF3QixPQUFPLGtDQUFrQyxtSUFBbUk7O0FBRXBXLHNCQUFzQixnREFBZ0QsZ0JBQWdCLHNCQUFzQixPQUFPLDJCQUEyQiwwQkFBMEIseURBQXlELGlDQUFpQyxrQkFBa0I7O0FBRXBSLDJDQUEyQyxnQ0FBZ0Msb0NBQW9DLG9EQUFvRCw4REFBOEQsaUVBQWlFLEdBQUcsa0NBQWtDOztBQUV2VSxpQ0FBaUMsZ0JBQWdCLHNCQUFzQixPQUFPLHVEQUF1RCxhQUFhLHVEQUF1RCw0Q0FBNEMsS0FBSyw2Q0FBNkMsNkVBQTZFLE9BQU8saURBQWlELG1GQUFtRixPQUFPOztBQUV0Z0Isa0RBQWtELDBDQUEwQzs7QUFFNUYsNENBQTRDLGdCQUFnQixrQkFBa0IsT0FBTywyQkFBMkIsd0RBQXdELGdDQUFnQyx1REFBdUQ7O0FBRS9QLDhEQUE4RCxzRUFBc0UsOERBQThEOztBQUVsTSwyQ0FBMkMsK0RBQStELDZFQUE2RSx5RUFBeUUsZUFBZSx1REFBdUQsR0FBRzs7QUFFelUsaUNBQWlDLDRFQUE0RSxpQkFBaUIsYUFBYTs7QUFFM0ksaUNBQWlDLDZEQUE2RCx5Q0FBeUMsOENBQThDLGlDQUFpQyxtREFBbUQsMkRBQTJELE9BQU8seUNBQXlDOztBQUVwWCxrREFBa0QsMEVBQTBFLGVBQWU7O0FBRTNJLHdDQUF3Qyx1QkFBdUIseUZBQXlGOztBQUV4Six1Q0FBdUMsd0VBQXdFLDBDQUEwQyw4Q0FBOEMsTUFBTSx1RUFBdUUsSUFBSSxlQUFlLFlBQVk7O0FBRW5ULDhCQUE4QixnR0FBZ0csbURBQW1EOztBQUVqTCw0Q0FBNEMsa0JBQWtCLGtDQUFrQyxvRUFBb0UsS0FBSyxPQUFPLG9CQUFvQjs7QUFFcE0sb0RBQW9ELG1CQUFPLENBQUMsMERBQVk7O0FBRXhFO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxNQUFNOztBQUVOLEdBQUc7QUFDSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGdCQUFnQixrQkFBa0I7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVMsR0FBRzs7QUFFWjtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYixZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiLFlBQVk7OztBQUdaO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYixXQUFXO0FBQ1gsU0FBUyxHQUFHO0FBQ1o7O0FBRUE7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1gsU0FBUztBQUNUO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULGdIQUFnSDtBQUNoSCxRQUFRO0FBQ1IsaURBQWlEO0FBQ2pELFFBQVE7OztBQUdSO0FBQ0EsMkNBQTJDLGFBQW9CO0FBQy9EO0FBQ0E7O0FBRUE7QUFDQSxRQUFROzs7QUFHUjtBQUNBLHlDQUF5QyxhQUFvQjtBQUM3RDtBQUNBOztBQUVBLDJDQUEyQyxhQUFvQjtBQUMvRDtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFROzs7QUFHUiw4RUFBOEU7QUFDOUU7OztBQUdBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsT0FBTyxHQUFHOztBQUVWO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEsc0JBQXNCLHFCQUFxQjtBQUMzQzs7QUFFQSx3QkFBd0IsK0NBQStDO0FBQ3ZFOztBQUVBLDBCQUEwQiwrQkFBK0I7QUFDekQ7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7O0FBRUE7QUFDQTtBQUNBLFdBQVc7QUFDWDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1gsVUFBVTtBQUNWO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxRQUFRO0FBQ1I7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSxHQUFHOztBQUVIO0FBQ0EsQ0FBQzs7QUFFRCxrQkFBa0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXNsaWNrL2xpYi9zbGlkZXIuanM/ZDRhYSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xuXG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX2lubmVyU2xpZGVyID0gcmVxdWlyZShcIi4vaW5uZXItc2xpZGVyXCIpO1xuXG52YXIgX2pzb24ybXEgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJqc29uMm1xXCIpKTtcblxudmFyIF9kZWZhdWx0UHJvcHMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL2RlZmF1bHQtcHJvcHNcIikpO1xuXG52YXIgX2lubmVyU2xpZGVyVXRpbHMgPSByZXF1aXJlKFwiLi91dGlscy9pbm5lclNsaWRlclV0aWxzXCIpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiOyBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiB0eXBlb2Ygb2JqOyB9OyB9IGVsc2UgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7IH07IH0gcmV0dXJuIF90eXBlb2Yob2JqKTsgfVxuXG5mdW5jdGlvbiBfZXh0ZW5kcygpIHsgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9OyByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfVxuXG5mdW5jdGlvbiBvd25LZXlzKG9iamVjdCwgZW51bWVyYWJsZU9ubHkpIHsgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhvYmplY3QpOyBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scykgeyB2YXIgc3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMob2JqZWN0KTsgaWYgKGVudW1lcmFibGVPbmx5KSBzeW1ib2xzID0gc3ltYm9scy5maWx0ZXIoZnVuY3Rpb24gKHN5bSkgeyByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmplY3QsIHN5bSkuZW51bWVyYWJsZTsgfSk7IGtleXMucHVzaC5hcHBseShrZXlzLCBzeW1ib2xzKTsgfSByZXR1cm4ga2V5czsgfVxuXG5mdW5jdGlvbiBfb2JqZWN0U3ByZWFkKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldICE9IG51bGwgPyBhcmd1bWVudHNbaV0gOiB7fTsgaWYgKGkgJSAyKSB7IG93bktleXMoT2JqZWN0KHNvdXJjZSksIHRydWUpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgeyBfZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHNvdXJjZVtrZXldKTsgfSk7IH0gZWxzZSBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMpIHsgT2JqZWN0LmRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhzb3VyY2UpKTsgfSBlbHNlIHsgb3duS2V5cyhPYmplY3Qoc291cmNlKSkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzb3VyY2UsIGtleSkpOyB9KTsgfSB9IHJldHVybiB0YXJnZXQ7IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfVxuXG5mdW5jdGlvbiBfY3JlYXRlQ2xhc3MoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgX3NldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKTsgfVxuXG5mdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBfc2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgby5fX3Byb3RvX18gPSBwOyByZXR1cm4gbzsgfTsgcmV0dXJuIF9zZXRQcm90b3R5cGVPZihvLCBwKTsgfVxuXG5mdW5jdGlvbiBfY3JlYXRlU3VwZXIoRGVyaXZlZCkgeyB2YXIgaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCA9IF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKTsgcmV0dXJuIGZ1bmN0aW9uIF9jcmVhdGVTdXBlckludGVybmFsKCkgeyB2YXIgU3VwZXIgPSBfZ2V0UHJvdG90eXBlT2YoRGVyaXZlZCksIHJlc3VsdDsgaWYgKGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QpIHsgdmFyIE5ld1RhcmdldCA9IF9nZXRQcm90b3R5cGVPZih0aGlzKS5jb25zdHJ1Y3RvcjsgcmVzdWx0ID0gUmVmbGVjdC5jb25zdHJ1Y3QoU3VwZXIsIGFyZ3VtZW50cywgTmV3VGFyZ2V0KTsgfSBlbHNlIHsgcmVzdWx0ID0gU3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfSByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgcmVzdWx0KTsgfTsgfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmIChjYWxsICYmIChfdHlwZW9mKGNhbGwpID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpKSB7IHJldHVybiBjYWxsOyB9IHJldHVybiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpOyB9XG5cbmZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikgeyBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gc2VsZjsgfVxuXG5mdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkgeyBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwidW5kZWZpbmVkXCIgfHwgIVJlZmxlY3QuY29uc3RydWN0KSByZXR1cm4gZmFsc2U7IGlmIChSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKSByZXR1cm4gZmFsc2U7IGlmICh0eXBlb2YgUHJveHkgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHRydWU7IHRyeSB7IERhdGUucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoRGF0ZSwgW10sIGZ1bmN0aW9uICgpIHt9KSk7IHJldHVybiB0cnVlOyB9IGNhdGNoIChlKSB7IHJldHVybiBmYWxzZTsgfSB9XG5cbmZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IF9nZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5nZXRQcm90b3R5cGVPZiA6IGZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IHJldHVybiBvLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2Yobyk7IH07IHJldHVybiBfZ2V0UHJvdG90eXBlT2Yobyk7IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KG9iaiwga2V5LCB2YWx1ZSkgeyBpZiAoa2V5IGluIG9iaikgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHsgdmFsdWU6IHZhbHVlLCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlIH0pOyB9IGVsc2UgeyBvYmpba2V5XSA9IHZhbHVlOyB9IHJldHVybiBvYmo7IH1cblxudmFyIGVucXVpcmUgPSAoMCwgX2lubmVyU2xpZGVyVXRpbHMuY2FuVXNlRE9NKSgpICYmIHJlcXVpcmUoXCJlbnF1aXJlLmpzXCIpO1xuXG52YXIgU2xpZGVyID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhTbGlkZXIsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIHZhciBfc3VwZXIgPSBfY3JlYXRlU3VwZXIoU2xpZGVyKTtcblxuICBmdW5jdGlvbiBTbGlkZXIocHJvcHMpIHtcbiAgICB2YXIgX3RoaXM7XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgU2xpZGVyKTtcblxuICAgIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgcHJvcHMpO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcImlubmVyU2xpZGVyUmVmSGFuZGxlclwiLCBmdW5jdGlvbiAocmVmKSB7XG4gICAgICByZXR1cm4gX3RoaXMuaW5uZXJTbGlkZXIgPSByZWY7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwic2xpY2tQcmV2XCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBfdGhpcy5pbm5lclNsaWRlci5zbGlja1ByZXYoKTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJzbGlja05leHRcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIF90aGlzLmlubmVyU2xpZGVyLnNsaWNrTmV4dCgpO1xuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcInNsaWNrR29Ub1wiLCBmdW5jdGlvbiAoc2xpZGUpIHtcbiAgICAgIHZhciBkb250QW5pbWF0ZSA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogZmFsc2U7XG4gICAgICByZXR1cm4gX3RoaXMuaW5uZXJTbGlkZXIuc2xpY2tHb1RvKHNsaWRlLCBkb250QW5pbWF0ZSk7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwic2xpY2tQYXVzZVwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gX3RoaXMuaW5uZXJTbGlkZXIucGF1c2UoXCJwYXVzZWRcIik7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwic2xpY2tQbGF5XCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBfdGhpcy5pbm5lclNsaWRlci5hdXRvUGxheShcInBsYXlcIik7XG4gICAgfSk7XG5cbiAgICBfdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGJyZWFrcG9pbnQ6IG51bGxcbiAgICB9O1xuICAgIF90aGlzLl9yZXNwb25zaXZlTWVkaWFIYW5kbGVycyA9IFtdO1xuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhTbGlkZXIsIFt7XG4gICAga2V5OiBcIm1lZGlhXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIG1lZGlhKHF1ZXJ5LCBoYW5kbGVyKSB7XG4gICAgICAvLyBqYXZhc2NyaXB0IGhhbmRsZXIgZm9yICBjc3MgbWVkaWEgcXVlcnlcbiAgICAgIGVucXVpcmUucmVnaXN0ZXIocXVlcnksIGhhbmRsZXIpO1xuXG4gICAgICB0aGlzLl9yZXNwb25zaXZlTWVkaWFIYW5kbGVycy5wdXNoKHtcbiAgICAgICAgcXVlcnk6IHF1ZXJ5LFxuICAgICAgICBoYW5kbGVyOiBoYW5kbGVyXG4gICAgICB9KTtcbiAgICB9IC8vIGhhbmRsZXMgcmVzcG9uc2l2ZSBicmVha3BvaW50c1xuXG4gIH0sIHtcbiAgICBrZXk6IFwiY29tcG9uZW50RGlkTW91bnRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgLy8gcGVyZm9ybWFuY2UgbW9uaXRvcmluZ1xuICAgICAgLy9pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgLy9jb25zdCB7IHdoeURpZFlvdVVwZGF0ZSB9ID0gcmVxdWlyZSgnd2h5LWRpZC15b3UtdXBkYXRlJylcbiAgICAgIC8vd2h5RGlkWW91VXBkYXRlKFJlYWN0KVxuICAgICAgLy99XG4gICAgICBpZiAodGhpcy5wcm9wcy5yZXNwb25zaXZlKSB7XG4gICAgICAgIHZhciBicmVha3BvaW50cyA9IHRoaXMucHJvcHMucmVzcG9uc2l2ZS5tYXAoZnVuY3Rpb24gKGJyZWFrcHQpIHtcbiAgICAgICAgICByZXR1cm4gYnJlYWtwdC5icmVha3BvaW50O1xuICAgICAgICB9KTsgLy8gc29ydCB0aGVtIGluIGluY3JlYXNpbmcgb3JkZXIgb2YgdGhlaXIgbnVtZXJpY2FsIHZhbHVlXG5cbiAgICAgICAgYnJlYWtwb2ludHMuc29ydChmdW5jdGlvbiAoeCwgeSkge1xuICAgICAgICAgIHJldHVybiB4IC0geTtcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrcG9pbnRzLmZvckVhY2goZnVuY3Rpb24gKGJyZWFrcG9pbnQsIGluZGV4KSB7XG4gICAgICAgICAgLy8gbWVkaWEgcXVlcnkgZm9yIGVhY2ggYnJlYWtwb2ludFxuICAgICAgICAgIHZhciBiUXVlcnk7XG5cbiAgICAgICAgICBpZiAoaW5kZXggPT09IDApIHtcbiAgICAgICAgICAgIGJRdWVyeSA9ICgwLCBfanNvbjJtcVtcImRlZmF1bHRcIl0pKHtcbiAgICAgICAgICAgICAgbWluV2lkdGg6IDAsXG4gICAgICAgICAgICAgIG1heFdpZHRoOiBicmVha3BvaW50XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYlF1ZXJ5ID0gKDAsIF9qc29uMm1xW1wiZGVmYXVsdFwiXSkoe1xuICAgICAgICAgICAgICBtaW5XaWR0aDogYnJlYWtwb2ludHNbaW5kZXggLSAxXSArIDEsXG4gICAgICAgICAgICAgIG1heFdpZHRoOiBicmVha3BvaW50XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IC8vIHdoZW4gbm90IHVzaW5nIHNlcnZlciBzaWRlIHJlbmRlcmluZ1xuXG5cbiAgICAgICAgICAoMCwgX2lubmVyU2xpZGVyVXRpbHMuY2FuVXNlRE9NKSgpICYmIF90aGlzMi5tZWRpYShiUXVlcnksIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIF90aGlzMi5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAgIGJyZWFrcG9pbnQ6IGJyZWFrcG9pbnRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTsgLy8gUmVnaXN0ZXIgbWVkaWEgcXVlcnkgZm9yIGZ1bGwgc2NyZWVuLiBOZWVkIHRvIHN1cHBvcnQgcmVzaXplIGZyb20gc21hbGwgdG8gbGFyZ2VcbiAgICAgICAgLy8gY29udmVydCBqYXZhc2NyaXB0IG9iamVjdCB0byBtZWRpYSBxdWVyeSBzdHJpbmdcblxuICAgICAgICB2YXIgcXVlcnkgPSAoMCwgX2pzb24ybXFbXCJkZWZhdWx0XCJdKSh7XG4gICAgICAgICAgbWluV2lkdGg6IGJyZWFrcG9pbnRzLnNsaWNlKC0xKVswXVxuICAgICAgICB9KTtcbiAgICAgICAgKDAsIF9pbm5lclNsaWRlclV0aWxzLmNhblVzZURPTSkoKSAmJiB0aGlzLm1lZGlhKHF1ZXJ5LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgX3RoaXMyLnNldFN0YXRlKHtcbiAgICAgICAgICAgIGJyZWFrcG9pbnQ6IG51bGxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImNvbXBvbmVudFdpbGxVbm1vdW50XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgdGhpcy5fcmVzcG9uc2l2ZU1lZGlhSGFuZGxlcnMuZm9yRWFjaChmdW5jdGlvbiAob2JqKSB7XG4gICAgICAgIGVucXVpcmUudW5yZWdpc3RlcihvYmoucXVlcnksIG9iai5oYW5kbGVyKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW5kZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgdmFyIF90aGlzMyA9IHRoaXM7XG5cbiAgICAgIHZhciBzZXR0aW5ncztcbiAgICAgIHZhciBuZXdQcm9wcztcblxuICAgICAgaWYgKHRoaXMuc3RhdGUuYnJlYWtwb2ludCkge1xuICAgICAgICBuZXdQcm9wcyA9IHRoaXMucHJvcHMucmVzcG9uc2l2ZS5maWx0ZXIoZnVuY3Rpb24gKHJlc3ApIHtcbiAgICAgICAgICByZXR1cm4gcmVzcC5icmVha3BvaW50ID09PSBfdGhpczMuc3RhdGUuYnJlYWtwb2ludDtcbiAgICAgICAgfSk7XG4gICAgICAgIHNldHRpbmdzID0gbmV3UHJvcHNbMF0uc2V0dGluZ3MgPT09IFwidW5zbGlja1wiID8gXCJ1bnNsaWNrXCIgOiBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgX2RlZmF1bHRQcm9wc1tcImRlZmF1bHRcIl0pLCB0aGlzLnByb3BzKSwgbmV3UHJvcHNbMF0uc2V0dGluZ3MpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0dGluZ3MgPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIF9kZWZhdWx0UHJvcHNbXCJkZWZhdWx0XCJdKSwgdGhpcy5wcm9wcyk7XG4gICAgICB9IC8vIGZvcmNlIHNjcm9sbGluZyBieSBvbmUgaWYgY2VudGVyTW9kZSBpcyBvblxuXG5cbiAgICAgIGlmIChzZXR0aW5ncy5jZW50ZXJNb2RlKSB7XG4gICAgICAgIGlmIChzZXR0aW5ncy5zbGlkZXNUb1Njcm9sbCA+IDEgJiYgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFwic2xpZGVzVG9TY3JvbGwgc2hvdWxkIGJlIGVxdWFsIHRvIDEgaW4gY2VudGVyTW9kZSwgeW91IGFyZSB1c2luZyBcIi5jb25jYXQoc2V0dGluZ3Muc2xpZGVzVG9TY3JvbGwpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldHRpbmdzLnNsaWRlc1RvU2Nyb2xsID0gMTtcbiAgICAgIH0gLy8gZm9yY2Ugc2hvd2luZyBvbmUgc2xpZGUgYW5kIHNjcm9sbGluZyBieSBvbmUgaWYgdGhlIGZhZGUgbW9kZSBpcyBvblxuXG5cbiAgICAgIGlmIChzZXR0aW5ncy5mYWRlKSB7XG4gICAgICAgIGlmIChzZXR0aW5ncy5zbGlkZXNUb1Nob3cgPiAxICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcInNsaWRlc1RvU2hvdyBzaG91bGQgYmUgZXF1YWwgdG8gMSB3aGVuIGZhZGUgaXMgdHJ1ZSwgeW91J3JlIHVzaW5nIFwiLmNvbmNhdChzZXR0aW5ncy5zbGlkZXNUb1Nob3cpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzZXR0aW5ncy5zbGlkZXNUb1Njcm9sbCA+IDEgJiYgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFwic2xpZGVzVG9TY3JvbGwgc2hvdWxkIGJlIGVxdWFsIHRvIDEgd2hlbiBmYWRlIGlzIHRydWUsIHlvdSdyZSB1c2luZyBcIi5jb25jYXQoc2V0dGluZ3Muc2xpZGVzVG9TY3JvbGwpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldHRpbmdzLnNsaWRlc1RvU2hvdyA9IDE7XG4gICAgICAgIHNldHRpbmdzLnNsaWRlc1RvU2Nyb2xsID0gMTtcbiAgICAgIH0gLy8gbWFrZXMgc3VyZSB0aGF0IGNoaWxkcmVuIGlzIGFuIGFycmF5LCBldmVuIHdoZW4gdGhlcmUgaXMgb25seSAxIGNoaWxkXG5cblxuICAgICAgdmFyIGNoaWxkcmVuID0gX3JlYWN0W1wiZGVmYXVsdFwiXS5DaGlsZHJlbi50b0FycmF5KHRoaXMucHJvcHMuY2hpbGRyZW4pOyAvLyBDaGlsZHJlbiBtYXkgY29udGFpbiBmYWxzZSBvciBudWxsLCBzbyB3ZSBzaG91bGQgZmlsdGVyIHRoZW1cbiAgICAgIC8vIGNoaWxkcmVuIG1heSBhbHNvIGNvbnRhaW4gc3RyaW5nIGZpbGxlZCB3aXRoIHNwYWNlcyAoaW4gY2VydGFpbiBjYXNlcyB3aGVyZSB3ZSB1c2UganN4IHN0cmluZ3MpXG5cblxuICAgICAgY2hpbGRyZW4gPSBjaGlsZHJlbi5maWx0ZXIoZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgICAgIGlmICh0eXBlb2YgY2hpbGQgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICByZXR1cm4gISFjaGlsZC50cmltKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gISFjaGlsZDtcbiAgICAgIH0pOyAvLyByb3dzIGFuZCBzbGlkZXNQZXJSb3cgbG9naWMgaXMgaGFuZGxlZCBoZXJlXG5cbiAgICAgIGlmIChzZXR0aW5ncy52YXJpYWJsZVdpZHRoICYmIChzZXR0aW5ncy5yb3dzID4gMSB8fCBzZXR0aW5ncy5zbGlkZXNQZXJSb3cgPiAxKSkge1xuICAgICAgICBjb25zb2xlLndhcm4oXCJ2YXJpYWJsZVdpZHRoIGlzIG5vdCBzdXBwb3J0ZWQgaW4gY2FzZSBvZiByb3dzID4gMSBvciBzbGlkZXNQZXJSb3cgPiAxXCIpO1xuICAgICAgICBzZXR0aW5ncy52YXJpYWJsZVdpZHRoID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIHZhciBuZXdDaGlsZHJlbiA9IFtdO1xuICAgICAgdmFyIGN1cnJlbnRXaWR0aCA9IG51bGw7XG5cbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpICs9IHNldHRpbmdzLnJvd3MgKiBzZXR0aW5ncy5zbGlkZXNQZXJSb3cpIHtcbiAgICAgICAgdmFyIG5ld1NsaWRlID0gW107XG5cbiAgICAgICAgZm9yICh2YXIgaiA9IGk7IGogPCBpICsgc2V0dGluZ3Mucm93cyAqIHNldHRpbmdzLnNsaWRlc1BlclJvdzsgaiArPSBzZXR0aW5ncy5zbGlkZXNQZXJSb3cpIHtcbiAgICAgICAgICB2YXIgcm93ID0gW107XG5cbiAgICAgICAgICBmb3IgKHZhciBrID0gajsgayA8IGogKyBzZXR0aW5ncy5zbGlkZXNQZXJSb3c7IGsgKz0gMSkge1xuICAgICAgICAgICAgaWYgKHNldHRpbmdzLnZhcmlhYmxlV2lkdGggJiYgY2hpbGRyZW5ba10ucHJvcHMuc3R5bGUpIHtcbiAgICAgICAgICAgICAgY3VycmVudFdpZHRoID0gY2hpbGRyZW5ba10ucHJvcHMuc3R5bGUud2lkdGg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChrID49IGNoaWxkcmVuLmxlbmd0aCkgYnJlYWs7XG4gICAgICAgICAgICByb3cucHVzaCggLyojX19QVVJFX18qL19yZWFjdFtcImRlZmF1bHRcIl0uY2xvbmVFbGVtZW50KGNoaWxkcmVuW2tdLCB7XG4gICAgICAgICAgICAgIGtleTogMTAwICogaSArIDEwICogaiArIGssXG4gICAgICAgICAgICAgIHRhYkluZGV4OiAtMSxcbiAgICAgICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogXCJcIi5jb25jYXQoMTAwIC8gc2V0dGluZ3Muc2xpZGVzUGVyUm93LCBcIiVcIiksXG4gICAgICAgICAgICAgICAgZGlzcGxheTogXCJpbmxpbmUtYmxvY2tcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbmV3U2xpZGUucHVzaCggLyojX19QVVJFX18qL19yZWFjdFtcImRlZmF1bHRcIl0uY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgICAgICBrZXk6IDEwICogaSArIGpcbiAgICAgICAgICB9LCByb3cpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzZXR0aW5ncy52YXJpYWJsZVdpZHRoKSB7XG4gICAgICAgICAgbmV3Q2hpbGRyZW4ucHVzaCggLyojX19QVVJFX18qL19yZWFjdFtcImRlZmF1bHRcIl0uY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgICAgICBrZXk6IGksXG4gICAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgICB3aWR0aDogY3VycmVudFdpZHRoXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSwgbmV3U2xpZGUpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBuZXdDaGlsZHJlbi5wdXNoKCAvKiNfX1BVUkVfXyovX3JlYWN0W1wiZGVmYXVsdFwiXS5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgICAgICAgIGtleTogaVxuICAgICAgICAgIH0sIG5ld1NsaWRlKSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHNldHRpbmdzID09PSBcInVuc2xpY2tcIikge1xuICAgICAgICB2YXIgY2xhc3NOYW1lID0gXCJyZWd1bGFyIHNsaWRlciBcIiArICh0aGlzLnByb3BzLmNsYXNzTmFtZSB8fCBcIlwiKTtcbiAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9fcmVhY3RbXCJkZWZhdWx0XCJdLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lXG4gICAgICAgIH0sIGNoaWxkcmVuKTtcbiAgICAgIH0gZWxzZSBpZiAobmV3Q2hpbGRyZW4ubGVuZ3RoIDw9IHNldHRpbmdzLnNsaWRlc1RvU2hvdykge1xuICAgICAgICBzZXR0aW5ncy51bnNsaWNrID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9fcmVhY3RbXCJkZWZhdWx0XCJdLmNyZWF0ZUVsZW1lbnQoX2lubmVyU2xpZGVyLklubmVyU2xpZGVyLCBfZXh0ZW5kcyh7XG4gICAgICAgIHN0eWxlOiB0aGlzLnByb3BzLnN0eWxlLFxuICAgICAgICByZWY6IHRoaXMuaW5uZXJTbGlkZXJSZWZIYW5kbGVyXG4gICAgICB9LCBzZXR0aW5ncyksIG5ld0NoaWxkcmVuKTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gU2xpZGVyO1xufShfcmVhY3RbXCJkZWZhdWx0XCJdLkNvbXBvbmVudCk7XG5cbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gU2xpZGVyOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-slick/lib/slider.js\n"); + +/***/ }), + +/***/ "./node_modules/react-slick/lib/track.js": +/*!***********************************************!*\ + !*** ./node_modules/react-slick/lib/track.js ***! + \***********************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.Track = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _classnames = _interopRequireDefault(__webpack_require__(/*! classnames */ \"./node_modules/classnames/index.js\"));\n\nvar _innerSliderUtils = __webpack_require__(/*! ./utils/innerSliderUtils */ \"./node_modules/react-slick/lib/utils/innerSliderUtils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// given specifications/props for a slide, fetch all the classes that need to be applied to the slide\nvar getSlideClasses = function getSlideClasses(spec) {\n var slickActive, slickCenter, slickCloned;\n var centerOffset, index;\n\n if (spec.rtl) {\n index = spec.slideCount - 1 - spec.index;\n } else {\n index = spec.index;\n }\n\n slickCloned = index < 0 || index >= spec.slideCount;\n\n if (spec.centerMode) {\n centerOffset = Math.floor(spec.slidesToShow / 2);\n slickCenter = (index - spec.currentSlide) % spec.slideCount === 0;\n\n if (index > spec.currentSlide - centerOffset - 1 && index <= spec.currentSlide + centerOffset) {\n slickActive = true;\n }\n } else {\n slickActive = spec.currentSlide <= index && index < spec.currentSlide + spec.slidesToShow;\n }\n\n var focusedSlide;\n\n if (spec.targetSlide < 0) {\n focusedSlide = spec.targetSlide + spec.slideCount;\n } else if (spec.targetSlide >= spec.slideCount) {\n focusedSlide = spec.targetSlide - spec.slideCount;\n } else {\n focusedSlide = spec.targetSlide;\n }\n\n var slickCurrent = index === focusedSlide;\n return {\n \"slick-slide\": true,\n \"slick-active\": slickActive,\n \"slick-center\": slickCenter,\n \"slick-cloned\": slickCloned,\n \"slick-current\": slickCurrent // dubious in case of RTL\n\n };\n};\n\nvar getSlideStyle = function getSlideStyle(spec) {\n var style = {};\n\n if (spec.variableWidth === undefined || spec.variableWidth === false) {\n style.width = spec.slideWidth;\n }\n\n if (spec.fade) {\n style.position = \"relative\";\n\n if (spec.vertical) {\n style.top = -spec.index * parseInt(spec.slideHeight);\n } else {\n style.left = -spec.index * parseInt(spec.slideWidth);\n }\n\n style.opacity = spec.currentSlide === spec.index ? 1 : 0;\n\n if (spec.useCSS) {\n style.transition = \"opacity \" + spec.speed + \"ms \" + spec.cssEase + \", \" + \"visibility \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n\n return style;\n};\n\nvar getKey = function getKey(child, fallbackKey) {\n return child.key || fallbackKey;\n};\n\nvar renderSlides = function renderSlides(spec) {\n var key;\n var slides = [];\n var preCloneSlides = [];\n var postCloneSlides = [];\n\n var childrenCount = _react[\"default\"].Children.count(spec.children);\n\n var startIndex = (0, _innerSliderUtils.lazyStartIndex)(spec);\n var endIndex = (0, _innerSliderUtils.lazyEndIndex)(spec);\n\n _react[\"default\"].Children.forEach(spec.children, function (elem, index) {\n var child;\n var childOnClickOptions = {\n message: \"children\",\n index: index,\n slidesToScroll: spec.slidesToScroll,\n currentSlide: spec.currentSlide\n }; // in case of lazyLoad, whether or not we want to fetch the slide\n\n if (!spec.lazyLoad || spec.lazyLoad && spec.lazyLoadedList.indexOf(index) >= 0) {\n child = elem;\n } else {\n child = /*#__PURE__*/_react[\"default\"].createElement(\"div\", null);\n }\n\n var childStyle = getSlideStyle(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n }));\n var slideClass = child.props.className || \"\";\n var slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n })); // push a cloned element of the desired slide\n\n slides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"original\" + getKey(child, index),\n \"data-index\": index,\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n tabIndex: \"-1\",\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({\n outline: \"none\"\n }, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n })); // if slide needs to be precloned or postcloned\n\n if (spec.infinite && spec.fade === false) {\n var preCloneNo = childrenCount - index;\n\n if (preCloneNo <= (0, _innerSliderUtils.getPreClones)(spec) && childrenCount !== spec.slidesToShow) {\n key = -preCloneNo;\n\n if (key >= startIndex) {\n child = elem;\n }\n\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n preCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"precloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n\n if (childrenCount !== spec.slidesToShow) {\n key = childrenCount + index;\n\n if (key < endIndex) {\n child = elem;\n }\n\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n postCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"postcloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n }\n });\n\n if (spec.rtl) {\n return preCloneSlides.concat(slides, postCloneSlides).reverse();\n } else {\n return preCloneSlides.concat(slides, postCloneSlides);\n }\n};\n\nvar Track = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Track, _React$PureComponent);\n\n var _super = _createSuper(Track);\n\n function Track() {\n var _this;\n\n _classCallCheck(this, Track);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"node\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"handleRef\", function (ref) {\n _this.node = ref;\n });\n\n return _this;\n }\n\n _createClass(Track, [{\n key: \"render\",\n value: function render() {\n var slides = renderSlides(this.props);\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave;\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: this.handleRef,\n className: \"slick-track\",\n style: this.props.trackStyle\n }, mouseEvents), slides);\n }\n }]);\n\n return Track;\n}(_react[\"default\"].PureComponent);\n\nexports.Track = Track;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2xpY2svbGliL3RyYWNrLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGFBQWE7O0FBRWIsb0NBQW9DLG1CQUFPLENBQUMsNENBQU87O0FBRW5ELHlDQUF5QyxtQkFBTyxDQUFDLHNEQUFZOztBQUU3RCx3QkFBd0IsbUJBQU8sQ0FBQywwRkFBMEI7O0FBRTFELHVDQUF1Qyx1Q0FBdUM7O0FBRTlFLHdCQUF3QiwyQkFBMkIsMkVBQTJFLGtDQUFrQyx3QkFBd0IsT0FBTyxrQ0FBa0MsbUlBQW1JOztBQUVwVyxzQkFBc0IsZ0RBQWdELGdCQUFnQixzQkFBc0IsT0FBTywyQkFBMkIsMEJBQTBCLHlEQUF5RCxpQ0FBaUMsa0JBQWtCOztBQUVwUixrREFBa0QsMENBQTBDOztBQUU1Riw0Q0FBNEMsZ0JBQWdCLGtCQUFrQixPQUFPLDJCQUEyQix3REFBd0QsZ0NBQWdDLHVEQUF1RDs7QUFFL1AsOERBQThELHNFQUFzRSw4REFBOEQ7O0FBRWxNLDJDQUEyQywrREFBK0QsNkVBQTZFLHlFQUF5RSxlQUFlLHVEQUF1RCxHQUFHOztBQUV6VSxpQ0FBaUMsNEVBQTRFLGlCQUFpQixhQUFhOztBQUUzSSxpQ0FBaUMsNkRBQTZELHlDQUF5Qyw4Q0FBOEMsaUNBQWlDLG1EQUFtRCwyREFBMkQsT0FBTyx5Q0FBeUM7O0FBRXBYLGtEQUFrRCwwRUFBMEUsZUFBZTs7QUFFM0ksd0NBQXdDLHVCQUF1Qix5RkFBeUY7O0FBRXhKLHVDQUF1Qyx3RUFBd0UsMENBQTBDLDhDQUE4QyxNQUFNLHVFQUF1RSxJQUFJLGVBQWUsWUFBWTs7QUFFblQsOEJBQThCLGdHQUFnRyxtREFBbUQ7O0FBRWpMLDJDQUEyQyxnQ0FBZ0Msb0NBQW9DLG9EQUFvRCw4REFBOEQsaUVBQWlFLEdBQUcsa0NBQWtDOztBQUV2VSxpQ0FBaUMsZ0JBQWdCLHNCQUFzQixPQUFPLHVEQUF1RCxhQUFhLHVEQUF1RCw0Q0FBNEMsS0FBSyw2Q0FBNkMsNkVBQTZFLE9BQU8saURBQWlELG1GQUFtRixPQUFPOztBQUV0Z0IsNENBQTRDLGtCQUFrQixrQ0FBa0Msb0VBQW9FLEtBQUssT0FBTyxvQkFBb0I7O0FBRXBNO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTzs7QUFFUDtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUEsaUVBQWlFLFdBQVc7QUFDNUU7QUFDQSxLQUFLO0FBQ0w7QUFDQSxxRUFBcUUsV0FBVztBQUNoRjtBQUNBLEtBQUssSUFBSTs7QUFFVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyx5QkFBeUI7QUFDaEM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUssSUFBSTs7QUFFVDtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLHFFQUFxRSxXQUFXO0FBQ2hGO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtDQUErQyx5QkFBeUI7QUFDeEU7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSxxRUFBcUUsV0FBVztBQUNoRjtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0MseUJBQXlCO0FBQ3hFO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBLHdFQUF3RSxhQUFhO0FBQ3JGO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EsR0FBRzs7QUFFSDtBQUNBLENBQUM7O0FBRUQsYUFBYSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2xpY2svbGliL3RyYWNrLmpzP2MwZmYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLlRyYWNrID0gdm9pZCAwO1xuXG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX2NsYXNzbmFtZXMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJjbGFzc25hbWVzXCIpKTtcblxudmFyIF9pbm5lclNsaWRlclV0aWxzID0gcmVxdWlyZShcIi4vdXRpbHMvaW5uZXJTbGlkZXJVdGlsc1wiKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjsgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiKSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfTsgfSBlbHNlIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9OyB9IHJldHVybiBfdHlwZW9mKG9iaik7IH1cblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfVxuXG5mdW5jdGlvbiBfY3JlYXRlQ2xhc3MoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgX3NldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKTsgfVxuXG5mdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBfc2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgby5fX3Byb3RvX18gPSBwOyByZXR1cm4gbzsgfTsgcmV0dXJuIF9zZXRQcm90b3R5cGVPZihvLCBwKTsgfVxuXG5mdW5jdGlvbiBfY3JlYXRlU3VwZXIoRGVyaXZlZCkgeyB2YXIgaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCA9IF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKTsgcmV0dXJuIGZ1bmN0aW9uIF9jcmVhdGVTdXBlckludGVybmFsKCkgeyB2YXIgU3VwZXIgPSBfZ2V0UHJvdG90eXBlT2YoRGVyaXZlZCksIHJlc3VsdDsgaWYgKGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QpIHsgdmFyIE5ld1RhcmdldCA9IF9nZXRQcm90b3R5cGVPZih0aGlzKS5jb25zdHJ1Y3RvcjsgcmVzdWx0ID0gUmVmbGVjdC5jb25zdHJ1Y3QoU3VwZXIsIGFyZ3VtZW50cywgTmV3VGFyZ2V0KTsgfSBlbHNlIHsgcmVzdWx0ID0gU3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfSByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgcmVzdWx0KTsgfTsgfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmIChjYWxsICYmIChfdHlwZW9mKGNhbGwpID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpKSB7IHJldHVybiBjYWxsOyB9IHJldHVybiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpOyB9XG5cbmZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikgeyBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gc2VsZjsgfVxuXG5mdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkgeyBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwidW5kZWZpbmVkXCIgfHwgIVJlZmxlY3QuY29uc3RydWN0KSByZXR1cm4gZmFsc2U7IGlmIChSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKSByZXR1cm4gZmFsc2U7IGlmICh0eXBlb2YgUHJveHkgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHRydWU7IHRyeSB7IERhdGUucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoRGF0ZSwgW10sIGZ1bmN0aW9uICgpIHt9KSk7IHJldHVybiB0cnVlOyB9IGNhdGNoIChlKSB7IHJldHVybiBmYWxzZTsgfSB9XG5cbmZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IF9nZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5nZXRQcm90b3R5cGVPZiA6IGZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IHJldHVybiBvLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2Yobyk7IH07IHJldHVybiBfZ2V0UHJvdG90eXBlT2Yobyk7IH1cblxuZnVuY3Rpb24gb3duS2V5cyhvYmplY3QsIGVudW1lcmFibGVPbmx5KSB7IHZhciBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KTsgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHsgdmFyIHN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG9iamVjdCk7IGlmIChlbnVtZXJhYmxlT25seSkgc3ltYm9scyA9IHN5bWJvbHMuZmlsdGVyKGZ1bmN0aW9uIChzeW0pIHsgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LCBzeW0pLmVudW1lcmFibGU7IH0pOyBrZXlzLnB1c2guYXBwbHkoa2V5cywgc3ltYm9scyk7IH0gcmV0dXJuIGtleXM7IH1cblxuZnVuY3Rpb24gX29iamVjdFNwcmVhZCh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXSAhPSBudWxsID8gYXJndW1lbnRzW2ldIDoge307IGlmIChpICUgMikgeyBvd25LZXlzKE9iamVjdChzb3VyY2UpLCB0cnVlKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsgX2RlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBzb3VyY2Vba2V5XSk7IH0pOyB9IGVsc2UgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoc291cmNlKSk7IH0gZWxzZSB7IG93bktleXMoT2JqZWN0KHNvdXJjZSkpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc291cmNlLCBrZXkpKTsgfSk7IH0gfSByZXR1cm4gdGFyZ2V0OyB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsgaWYgKGtleSBpbiBvYmopIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsgfSBlbHNlIHsgb2JqW2tleV0gPSB2YWx1ZTsgfSByZXR1cm4gb2JqOyB9XG5cbi8vIGdpdmVuIHNwZWNpZmljYXRpb25zL3Byb3BzIGZvciBhIHNsaWRlLCBmZXRjaCBhbGwgdGhlIGNsYXNzZXMgdGhhdCBuZWVkIHRvIGJlIGFwcGxpZWQgdG8gdGhlIHNsaWRlXG52YXIgZ2V0U2xpZGVDbGFzc2VzID0gZnVuY3Rpb24gZ2V0U2xpZGVDbGFzc2VzKHNwZWMpIHtcbiAgdmFyIHNsaWNrQWN0aXZlLCBzbGlja0NlbnRlciwgc2xpY2tDbG9uZWQ7XG4gIHZhciBjZW50ZXJPZmZzZXQsIGluZGV4O1xuXG4gIGlmIChzcGVjLnJ0bCkge1xuICAgIGluZGV4ID0gc3BlYy5zbGlkZUNvdW50IC0gMSAtIHNwZWMuaW5kZXg7XG4gIH0gZWxzZSB7XG4gICAgaW5kZXggPSBzcGVjLmluZGV4O1xuICB9XG5cbiAgc2xpY2tDbG9uZWQgPSBpbmRleCA8IDAgfHwgaW5kZXggPj0gc3BlYy5zbGlkZUNvdW50O1xuXG4gIGlmIChzcGVjLmNlbnRlck1vZGUpIHtcbiAgICBjZW50ZXJPZmZzZXQgPSBNYXRoLmZsb29yKHNwZWMuc2xpZGVzVG9TaG93IC8gMik7XG4gICAgc2xpY2tDZW50ZXIgPSAoaW5kZXggLSBzcGVjLmN1cnJlbnRTbGlkZSkgJSBzcGVjLnNsaWRlQ291bnQgPT09IDA7XG5cbiAgICBpZiAoaW5kZXggPiBzcGVjLmN1cnJlbnRTbGlkZSAtIGNlbnRlck9mZnNldCAtIDEgJiYgaW5kZXggPD0gc3BlYy5jdXJyZW50U2xpZGUgKyBjZW50ZXJPZmZzZXQpIHtcbiAgICAgIHNsaWNrQWN0aXZlID0gdHJ1ZTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgc2xpY2tBY3RpdmUgPSBzcGVjLmN1cnJlbnRTbGlkZSA8PSBpbmRleCAmJiBpbmRleCA8IHNwZWMuY3VycmVudFNsaWRlICsgc3BlYy5zbGlkZXNUb1Nob3c7XG4gIH1cblxuICB2YXIgZm9jdXNlZFNsaWRlO1xuXG4gIGlmIChzcGVjLnRhcmdldFNsaWRlIDwgMCkge1xuICAgIGZvY3VzZWRTbGlkZSA9IHNwZWMudGFyZ2V0U2xpZGUgKyBzcGVjLnNsaWRlQ291bnQ7XG4gIH0gZWxzZSBpZiAoc3BlYy50YXJnZXRTbGlkZSA+PSBzcGVjLnNsaWRlQ291bnQpIHtcbiAgICBmb2N1c2VkU2xpZGUgPSBzcGVjLnRhcmdldFNsaWRlIC0gc3BlYy5zbGlkZUNvdW50O1xuICB9IGVsc2Uge1xuICAgIGZvY3VzZWRTbGlkZSA9IHNwZWMudGFyZ2V0U2xpZGU7XG4gIH1cblxuICB2YXIgc2xpY2tDdXJyZW50ID0gaW5kZXggPT09IGZvY3VzZWRTbGlkZTtcbiAgcmV0dXJuIHtcbiAgICBcInNsaWNrLXNsaWRlXCI6IHRydWUsXG4gICAgXCJzbGljay1hY3RpdmVcIjogc2xpY2tBY3RpdmUsXG4gICAgXCJzbGljay1jZW50ZXJcIjogc2xpY2tDZW50ZXIsXG4gICAgXCJzbGljay1jbG9uZWRcIjogc2xpY2tDbG9uZWQsXG4gICAgXCJzbGljay1jdXJyZW50XCI6IHNsaWNrQ3VycmVudCAvLyBkdWJpb3VzIGluIGNhc2Ugb2YgUlRMXG5cbiAgfTtcbn07XG5cbnZhciBnZXRTbGlkZVN0eWxlID0gZnVuY3Rpb24gZ2V0U2xpZGVTdHlsZShzcGVjKSB7XG4gIHZhciBzdHlsZSA9IHt9O1xuXG4gIGlmIChzcGVjLnZhcmlhYmxlV2lkdGggPT09IHVuZGVmaW5lZCB8fCBzcGVjLnZhcmlhYmxlV2lkdGggPT09IGZhbHNlKSB7XG4gICAgc3R5bGUud2lkdGggPSBzcGVjLnNsaWRlV2lkdGg7XG4gIH1cblxuICBpZiAoc3BlYy5mYWRlKSB7XG4gICAgc3R5bGUucG9zaXRpb24gPSBcInJlbGF0aXZlXCI7XG5cbiAgICBpZiAoc3BlYy52ZXJ0aWNhbCkge1xuICAgICAgc3R5bGUudG9wID0gLXNwZWMuaW5kZXggKiBwYXJzZUludChzcGVjLnNsaWRlSGVpZ2h0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3R5bGUubGVmdCA9IC1zcGVjLmluZGV4ICogcGFyc2VJbnQoc3BlYy5zbGlkZVdpZHRoKTtcbiAgICB9XG5cbiAgICBzdHlsZS5vcGFjaXR5ID0gc3BlYy5jdXJyZW50U2xpZGUgPT09IHNwZWMuaW5kZXggPyAxIDogMDtcblxuICAgIGlmIChzcGVjLnVzZUNTUykge1xuICAgICAgc3R5bGUudHJhbnNpdGlvbiA9IFwib3BhY2l0eSBcIiArIHNwZWMuc3BlZWQgKyBcIm1zIFwiICsgc3BlYy5jc3NFYXNlICsgXCIsIFwiICsgXCJ2aXNpYmlsaXR5IFwiICsgc3BlYy5zcGVlZCArIFwibXMgXCIgKyBzcGVjLmNzc0Vhc2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0eWxlO1xufTtcblxudmFyIGdldEtleSA9IGZ1bmN0aW9uIGdldEtleShjaGlsZCwgZmFsbGJhY2tLZXkpIHtcbiAgcmV0dXJuIGNoaWxkLmtleSB8fCBmYWxsYmFja0tleTtcbn07XG5cbnZhciByZW5kZXJTbGlkZXMgPSBmdW5jdGlvbiByZW5kZXJTbGlkZXMoc3BlYykge1xuICB2YXIga2V5O1xuICB2YXIgc2xpZGVzID0gW107XG4gIHZhciBwcmVDbG9uZVNsaWRlcyA9IFtdO1xuICB2YXIgcG9zdENsb25lU2xpZGVzID0gW107XG5cbiAgdmFyIGNoaWxkcmVuQ291bnQgPSBfcmVhY3RbXCJkZWZhdWx0XCJdLkNoaWxkcmVuLmNvdW50KHNwZWMuY2hpbGRyZW4pO1xuXG4gIHZhciBzdGFydEluZGV4ID0gKDAsIF9pbm5lclNsaWRlclV0aWxzLmxhenlTdGFydEluZGV4KShzcGVjKTtcbiAgdmFyIGVuZEluZGV4ID0gKDAsIF9pbm5lclNsaWRlclV0aWxzLmxhenlFbmRJbmRleCkoc3BlYyk7XG5cbiAgX3JlYWN0W1wiZGVmYXVsdFwiXS5DaGlsZHJlbi5mb3JFYWNoKHNwZWMuY2hpbGRyZW4sIGZ1bmN0aW9uIChlbGVtLCBpbmRleCkge1xuICAgIHZhciBjaGlsZDtcbiAgICB2YXIgY2hpbGRPbkNsaWNrT3B0aW9ucyA9IHtcbiAgICAgIG1lc3NhZ2U6IFwiY2hpbGRyZW5cIixcbiAgICAgIGluZGV4OiBpbmRleCxcbiAgICAgIHNsaWRlc1RvU2Nyb2xsOiBzcGVjLnNsaWRlc1RvU2Nyb2xsLFxuICAgICAgY3VycmVudFNsaWRlOiBzcGVjLmN1cnJlbnRTbGlkZVxuICAgIH07IC8vIGluIGNhc2Ugb2YgbGF6eUxvYWQsIHdoZXRoZXIgb3Igbm90IHdlIHdhbnQgdG8gZmV0Y2ggdGhlIHNsaWRlXG5cbiAgICBpZiAoIXNwZWMubGF6eUxvYWQgfHwgc3BlYy5sYXp5TG9hZCAmJiBzcGVjLmxhenlMb2FkZWRMaXN0LmluZGV4T2YoaW5kZXgpID49IDApIHtcbiAgICAgIGNoaWxkID0gZWxlbTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2hpbGQgPSAvKiNfX1BVUkVfXyovX3JlYWN0W1wiZGVmYXVsdFwiXS5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIG51bGwpO1xuICAgIH1cblxuICAgIHZhciBjaGlsZFN0eWxlID0gZ2V0U2xpZGVTdHlsZShfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHNwZWMpLCB7fSwge1xuICAgICAgaW5kZXg6IGluZGV4XG4gICAgfSkpO1xuICAgIHZhciBzbGlkZUNsYXNzID0gY2hpbGQucHJvcHMuY2xhc3NOYW1lIHx8IFwiXCI7XG4gICAgdmFyIHNsaWRlQ2xhc3NlcyA9IGdldFNsaWRlQ2xhc3Nlcyhfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHNwZWMpLCB7fSwge1xuICAgICAgaW5kZXg6IGluZGV4XG4gICAgfSkpOyAvLyBwdXNoIGEgY2xvbmVkIGVsZW1lbnQgb2YgdGhlIGRlc2lyZWQgc2xpZGVcblxuICAgIHNsaWRlcy5wdXNoKCAvKiNfX1BVUkVfXyovX3JlYWN0W1wiZGVmYXVsdFwiXS5jbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgIGtleTogXCJvcmlnaW5hbFwiICsgZ2V0S2V5KGNoaWxkLCBpbmRleCksXG4gICAgICBcImRhdGEtaW5kZXhcIjogaW5kZXgsXG4gICAgICBjbGFzc05hbWU6ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKHNsaWRlQ2xhc3Nlcywgc2xpZGVDbGFzcyksXG4gICAgICB0YWJJbmRleDogXCItMVwiLFxuICAgICAgXCJhcmlhLWhpZGRlblwiOiAhc2xpZGVDbGFzc2VzW1wic2xpY2stYWN0aXZlXCJdLFxuICAgICAgc3R5bGU6IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7XG4gICAgICAgIG91dGxpbmU6IFwibm9uZVwiXG4gICAgICB9LCBjaGlsZC5wcm9wcy5zdHlsZSB8fCB7fSksIGNoaWxkU3R5bGUpLFxuICAgICAgb25DbGljazogZnVuY3Rpb24gb25DbGljayhlKSB7XG4gICAgICAgIGNoaWxkLnByb3BzICYmIGNoaWxkLnByb3BzLm9uQ2xpY2sgJiYgY2hpbGQucHJvcHMub25DbGljayhlKTtcblxuICAgICAgICBpZiAoc3BlYy5mb2N1c09uU2VsZWN0KSB7XG4gICAgICAgICAgc3BlYy5mb2N1c09uU2VsZWN0KGNoaWxkT25DbGlja09wdGlvbnMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSkpOyAvLyBpZiBzbGlkZSBuZWVkcyB0byBiZSBwcmVjbG9uZWQgb3IgcG9zdGNsb25lZFxuXG4gICAgaWYgKHNwZWMuaW5maW5pdGUgJiYgc3BlYy5mYWRlID09PSBmYWxzZSkge1xuICAgICAgdmFyIHByZUNsb25lTm8gPSBjaGlsZHJlbkNvdW50IC0gaW5kZXg7XG5cbiAgICAgIGlmIChwcmVDbG9uZU5vIDw9ICgwLCBfaW5uZXJTbGlkZXJVdGlscy5nZXRQcmVDbG9uZXMpKHNwZWMpICYmIGNoaWxkcmVuQ291bnQgIT09IHNwZWMuc2xpZGVzVG9TaG93KSB7XG4gICAgICAgIGtleSA9IC1wcmVDbG9uZU5vO1xuXG4gICAgICAgIGlmIChrZXkgPj0gc3RhcnRJbmRleCkge1xuICAgICAgICAgIGNoaWxkID0gZWxlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNsaWRlQ2xhc3NlcyA9IGdldFNsaWRlQ2xhc3Nlcyhfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHNwZWMpLCB7fSwge1xuICAgICAgICAgIGluZGV4OiBrZXlcbiAgICAgICAgfSkpO1xuICAgICAgICBwcmVDbG9uZVNsaWRlcy5wdXNoKCAvKiNfX1BVUkVfXyovX3JlYWN0W1wiZGVmYXVsdFwiXS5jbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICBrZXk6IFwicHJlY2xvbmVkXCIgKyBnZXRLZXkoY2hpbGQsIGtleSksXG4gICAgICAgICAgXCJkYXRhLWluZGV4XCI6IGtleSxcbiAgICAgICAgICB0YWJJbmRleDogXCItMVwiLFxuICAgICAgICAgIGNsYXNzTmFtZTogKDAsIF9jbGFzc25hbWVzW1wiZGVmYXVsdFwiXSkoc2xpZGVDbGFzc2VzLCBzbGlkZUNsYXNzKSxcbiAgICAgICAgICBcImFyaWEtaGlkZGVuXCI6ICFzbGlkZUNsYXNzZXNbXCJzbGljay1hY3RpdmVcIl0sXG4gICAgICAgICAgc3R5bGU6IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgY2hpbGQucHJvcHMuc3R5bGUgfHwge30pLCBjaGlsZFN0eWxlKSxcbiAgICAgICAgICBvbkNsaWNrOiBmdW5jdGlvbiBvbkNsaWNrKGUpIHtcbiAgICAgICAgICAgIGNoaWxkLnByb3BzICYmIGNoaWxkLnByb3BzLm9uQ2xpY2sgJiYgY2hpbGQucHJvcHMub25DbGljayhlKTtcblxuICAgICAgICAgICAgaWYgKHNwZWMuZm9jdXNPblNlbGVjdCkge1xuICAgICAgICAgICAgICBzcGVjLmZvY3VzT25TZWxlY3QoY2hpbGRPbkNsaWNrT3B0aW9ucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChjaGlsZHJlbkNvdW50ICE9PSBzcGVjLnNsaWRlc1RvU2hvdykge1xuICAgICAgICBrZXkgPSBjaGlsZHJlbkNvdW50ICsgaW5kZXg7XG5cbiAgICAgICAgaWYgKGtleSA8IGVuZEluZGV4KSB7XG4gICAgICAgICAgY2hpbGQgPSBlbGVtO1xuICAgICAgICB9XG5cbiAgICAgICAgc2xpZGVDbGFzc2VzID0gZ2V0U2xpZGVDbGFzc2VzKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgc3BlYyksIHt9LCB7XG4gICAgICAgICAgaW5kZXg6IGtleVxuICAgICAgICB9KSk7XG4gICAgICAgIHBvc3RDbG9uZVNsaWRlcy5wdXNoKCAvKiNfX1BVUkVfXyovX3JlYWN0W1wiZGVmYXVsdFwiXS5jbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICBrZXk6IFwicG9zdGNsb25lZFwiICsgZ2V0S2V5KGNoaWxkLCBrZXkpLFxuICAgICAgICAgIFwiZGF0YS1pbmRleFwiOiBrZXksXG4gICAgICAgICAgdGFiSW5kZXg6IFwiLTFcIixcbiAgICAgICAgICBjbGFzc05hbWU6ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKHNsaWRlQ2xhc3Nlcywgc2xpZGVDbGFzcyksXG4gICAgICAgICAgXCJhcmlhLWhpZGRlblwiOiAhc2xpZGVDbGFzc2VzW1wic2xpY2stYWN0aXZlXCJdLFxuICAgICAgICAgIHN0eWxlOiBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIGNoaWxkLnByb3BzLnN0eWxlIHx8IHt9KSwgY2hpbGRTdHlsZSksXG4gICAgICAgICAgb25DbGljazogZnVuY3Rpb24gb25DbGljayhlKSB7XG4gICAgICAgICAgICBjaGlsZC5wcm9wcyAmJiBjaGlsZC5wcm9wcy5vbkNsaWNrICYmIGNoaWxkLnByb3BzLm9uQ2xpY2soZSk7XG5cbiAgICAgICAgICAgIGlmIChzcGVjLmZvY3VzT25TZWxlY3QpIHtcbiAgICAgICAgICAgICAgc3BlYy5mb2N1c09uU2VsZWN0KGNoaWxkT25DbGlja09wdGlvbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSkpO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgaWYgKHNwZWMucnRsKSB7XG4gICAgcmV0dXJuIHByZUNsb25lU2xpZGVzLmNvbmNhdChzbGlkZXMsIHBvc3RDbG9uZVNsaWRlcykucmV2ZXJzZSgpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBwcmVDbG9uZVNsaWRlcy5jb25jYXQoc2xpZGVzLCBwb3N0Q2xvbmVTbGlkZXMpO1xuICB9XG59O1xuXG52YXIgVHJhY2sgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9SZWFjdCRQdXJlQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhUcmFjaywgX1JlYWN0JFB1cmVDb21wb25lbnQpO1xuXG4gIHZhciBfc3VwZXIgPSBfY3JlYXRlU3VwZXIoVHJhY2spO1xuXG4gIGZ1bmN0aW9uIFRyYWNrKCkge1xuICAgIHZhciBfdGhpcztcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBUcmFjayk7XG5cbiAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgIGFyZ3NbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgfVxuXG4gICAgX3RoaXMgPSBfc3VwZXIuY2FsbC5hcHBseShfc3VwZXIsIFt0aGlzXS5jb25jYXQoYXJncykpO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcIm5vZGVcIiwgbnVsbCk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwiaGFuZGxlUmVmXCIsIGZ1bmN0aW9uIChyZWYpIHtcbiAgICAgIF90aGlzLm5vZGUgPSByZWY7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoVHJhY2ssIFt7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgc2xpZGVzID0gcmVuZGVyU2xpZGVzKHRoaXMucHJvcHMpO1xuICAgICAgdmFyIF90aGlzJHByb3BzID0gdGhpcy5wcm9wcyxcbiAgICAgICAgICBvbk1vdXNlRW50ZXIgPSBfdGhpcyRwcm9wcy5vbk1vdXNlRW50ZXIsXG4gICAgICAgICAgb25Nb3VzZU92ZXIgPSBfdGhpcyRwcm9wcy5vbk1vdXNlT3ZlcixcbiAgICAgICAgICBvbk1vdXNlTGVhdmUgPSBfdGhpcyRwcm9wcy5vbk1vdXNlTGVhdmU7XG4gICAgICB2YXIgbW91c2VFdmVudHMgPSB7XG4gICAgICAgIG9uTW91c2VFbnRlcjogb25Nb3VzZUVudGVyLFxuICAgICAgICBvbk1vdXNlT3Zlcjogb25Nb3VzZU92ZXIsXG4gICAgICAgIG9uTW91c2VMZWF2ZTogb25Nb3VzZUxlYXZlXG4gICAgICB9O1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9fcmVhY3RbXCJkZWZhdWx0XCJdLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgX2V4dGVuZHMoe1xuICAgICAgICByZWY6IHRoaXMuaGFuZGxlUmVmLFxuICAgICAgICBjbGFzc05hbWU6IFwic2xpY2stdHJhY2tcIixcbiAgICAgICAgc3R5bGU6IHRoaXMucHJvcHMudHJhY2tTdHlsZVxuICAgICAgfSwgbW91c2VFdmVudHMpLCBzbGlkZXMpO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBUcmFjaztcbn0oX3JlYWN0W1wiZGVmYXVsdFwiXS5QdXJlQ29tcG9uZW50KTtcblxuZXhwb3J0cy5UcmFjayA9IFRyYWNrOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-slick/lib/track.js\n"); + +/***/ }), + +/***/ "./node_modules/react-slick/lib/utils/innerSliderUtils.js": +/*!****************************************************************!*\ + !*** ./node_modules/react-slick/lib/utils/innerSliderUtils.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.clamp = clamp;\nexports.canUseDOM = exports.slidesOnLeft = exports.slidesOnRight = exports.siblingDirection = exports.getTotalSlides = exports.getPostClones = exports.getPreClones = exports.getTrackLeft = exports.getTrackAnimateCSS = exports.getTrackCSS = exports.checkSpecKeys = exports.getSlideCount = exports.checkNavigable = exports.getNavigableIndexes = exports.swipeEnd = exports.swipeMove = exports.swipeStart = exports.keyHandler = exports.changeSlide = exports.slideHandler = exports.initializedState = exports.extractObject = exports.canGoNext = exports.getSwipeDirection = exports.getHeight = exports.getWidth = exports.lazySlidesOnRight = exports.lazySlidesOnLeft = exports.lazyEndIndex = exports.lazyStartIndex = exports.getRequiredLazySlides = exports.getOnDemandLazySlides = exports.safePreventDefault = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction clamp(number, lowerBound, upperBound) {\n return Math.max(lowerBound, Math.min(number, upperBound));\n}\n\nvar safePreventDefault = function safePreventDefault(event) {\n var passiveEvents = [\"onTouchStart\", \"onTouchMove\", \"onWheel\"];\n\n if (!passiveEvents.includes(event._reactName)) {\n event.preventDefault();\n }\n};\n\nexports.safePreventDefault = safePreventDefault;\n\nvar getOnDemandLazySlides = function getOnDemandLazySlides(spec) {\n var onDemandSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n if (spec.lazyLoadedList.indexOf(slideIndex) < 0) {\n onDemandSlides.push(slideIndex);\n }\n }\n\n return onDemandSlides;\n}; // return list of slides that need to be present\n\n\nexports.getOnDemandLazySlides = getOnDemandLazySlides;\n\nvar getRequiredLazySlides = function getRequiredLazySlides(spec) {\n var requiredSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n requiredSlides.push(slideIndex);\n }\n\n return requiredSlides;\n}; // startIndex that needs to be present\n\n\nexports.getRequiredLazySlides = getRequiredLazySlides;\n\nvar lazyStartIndex = function lazyStartIndex(spec) {\n return spec.currentSlide - lazySlidesOnLeft(spec);\n};\n\nexports.lazyStartIndex = lazyStartIndex;\n\nvar lazyEndIndex = function lazyEndIndex(spec) {\n return spec.currentSlide + lazySlidesOnRight(spec);\n};\n\nexports.lazyEndIndex = lazyEndIndex;\n\nvar lazySlidesOnLeft = function lazySlidesOnLeft(spec) {\n return spec.centerMode ? Math.floor(spec.slidesToShow / 2) + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : 0;\n};\n\nexports.lazySlidesOnLeft = lazySlidesOnLeft;\n\nvar lazySlidesOnRight = function lazySlidesOnRight(spec) {\n return spec.centerMode ? Math.floor((spec.slidesToShow - 1) / 2) + 1 + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : spec.slidesToShow;\n}; // get width of an element\n\n\nexports.lazySlidesOnRight = lazySlidesOnRight;\n\nvar getWidth = function getWidth(elem) {\n return elem && elem.offsetWidth || 0;\n};\n\nexports.getWidth = getWidth;\n\nvar getHeight = function getHeight(elem) {\n return elem && elem.offsetHeight || 0;\n};\n\nexports.getHeight = getHeight;\n\nvar getSwipeDirection = function getSwipeDirection(touchObject) {\n var verticalSwiping = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var xDist, yDist, r, swipeAngle;\n xDist = touchObject.startX - touchObject.curX;\n yDist = touchObject.startY - touchObject.curY;\n r = Math.atan2(yDist, xDist);\n swipeAngle = Math.round(r * 180 / Math.PI);\n\n if (swipeAngle < 0) {\n swipeAngle = 360 - Math.abs(swipeAngle);\n }\n\n if (swipeAngle <= 45 && swipeAngle >= 0 || swipeAngle <= 360 && swipeAngle >= 315) {\n return \"left\";\n }\n\n if (swipeAngle >= 135 && swipeAngle <= 225) {\n return \"right\";\n }\n\n if (verticalSwiping === true) {\n if (swipeAngle >= 35 && swipeAngle <= 135) {\n return \"up\";\n } else {\n return \"down\";\n }\n }\n\n return \"vertical\";\n}; // whether or not we can go next\n\n\nexports.getSwipeDirection = getSwipeDirection;\n\nvar canGoNext = function canGoNext(spec) {\n var canGo = true;\n\n if (!spec.infinite) {\n if (spec.centerMode && spec.currentSlide >= spec.slideCount - 1) {\n canGo = false;\n } else if (spec.slideCount <= spec.slidesToShow || spec.currentSlide >= spec.slideCount - spec.slidesToShow) {\n canGo = false;\n }\n }\n\n return canGo;\n}; // given an object and a list of keys, return new object with given keys\n\n\nexports.canGoNext = canGoNext;\n\nvar extractObject = function extractObject(spec, keys) {\n var newObject = {};\n keys.forEach(function (key) {\n return newObject[key] = spec[key];\n });\n return newObject;\n}; // get initialized state\n\n\nexports.extractObject = extractObject;\n\nvar initializedState = function initializedState(spec) {\n // spec also contains listRef, trackRef\n var slideCount = _react[\"default\"].Children.count(spec.children);\n\n var listNode = spec.listRef;\n var listWidth = Math.ceil(getWidth(listNode));\n var trackNode = spec.trackRef && spec.trackRef.node;\n var trackWidth = Math.ceil(getWidth(trackNode));\n var slideWidth;\n\n if (!spec.vertical) {\n var centerPaddingAdj = spec.centerMode && parseInt(spec.centerPadding) * 2;\n\n if (typeof spec.centerPadding === \"string\" && spec.centerPadding.slice(-1) === \"%\") {\n centerPaddingAdj *= listWidth / 100;\n }\n\n slideWidth = Math.ceil((listWidth - centerPaddingAdj) / spec.slidesToShow);\n } else {\n slideWidth = listWidth;\n }\n\n var slideHeight = listNode && getHeight(listNode.querySelector('[data-index=\"0\"]'));\n var listHeight = slideHeight * spec.slidesToShow;\n var currentSlide = spec.currentSlide === undefined ? spec.initialSlide : spec.currentSlide;\n\n if (spec.rtl && spec.currentSlide === undefined) {\n currentSlide = slideCount - 1 - spec.initialSlide;\n }\n\n var lazyLoadedList = spec.lazyLoadedList || [];\n var slidesToLoad = getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: currentSlide,\n lazyLoadedList: lazyLoadedList\n }));\n lazyLoadedList = lazyLoadedList.concat(slidesToLoad);\n var state = {\n slideCount: slideCount,\n slideWidth: slideWidth,\n listWidth: listWidth,\n trackWidth: trackWidth,\n currentSlide: currentSlide,\n slideHeight: slideHeight,\n listHeight: listHeight,\n lazyLoadedList: lazyLoadedList\n };\n\n if (spec.autoplaying === null && spec.autoplay) {\n state[\"autoplaying\"] = \"playing\";\n }\n\n return state;\n};\n\nexports.initializedState = initializedState;\n\nvar slideHandler = function slideHandler(spec) {\n var waitForAnimate = spec.waitForAnimate,\n animating = spec.animating,\n fade = spec.fade,\n infinite = spec.infinite,\n index = spec.index,\n slideCount = spec.slideCount,\n lazyLoad = spec.lazyLoad,\n currentSlide = spec.currentSlide,\n centerMode = spec.centerMode,\n slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n useCSS = spec.useCSS;\n var lazyLoadedList = spec.lazyLoadedList;\n if (waitForAnimate && animating) return {};\n var animationSlide = index,\n finalSlide,\n animationLeft,\n finalLeft;\n var state = {},\n nextState = {};\n var targetSlide = infinite ? index : clamp(index, 0, slideCount - 1);\n\n if (fade) {\n if (!infinite && (index < 0 || index >= slideCount)) return {};\n\n if (index < 0) {\n animationSlide = index + slideCount;\n } else if (index >= slideCount) {\n animationSlide = index - slideCount;\n }\n\n if (lazyLoad && lazyLoadedList.indexOf(animationSlide) < 0) {\n lazyLoadedList = lazyLoadedList.concat(animationSlide);\n }\n\n state = {\n animating: true,\n currentSlide: animationSlide,\n lazyLoadedList: lazyLoadedList,\n targetSlide: animationSlide\n };\n nextState = {\n animating: false,\n targetSlide: animationSlide\n };\n } else {\n finalSlide = animationSlide;\n\n if (animationSlide < 0) {\n finalSlide = animationSlide + slideCount;\n if (!infinite) finalSlide = 0;else if (slideCount % slidesToScroll !== 0) finalSlide = slideCount - slideCount % slidesToScroll;\n } else if (!canGoNext(spec) && animationSlide > currentSlide) {\n animationSlide = finalSlide = currentSlide;\n } else if (centerMode && animationSlide >= slideCount) {\n animationSlide = infinite ? slideCount : slideCount - 1;\n finalSlide = infinite ? 0 : slideCount - 1;\n } else if (animationSlide >= slideCount) {\n finalSlide = animationSlide - slideCount;\n if (!infinite) finalSlide = slideCount - slidesToShow;else if (slideCount % slidesToScroll !== 0) finalSlide = 0;\n }\n\n if (!infinite && animationSlide + slidesToShow >= slideCount) {\n finalSlide = slideCount - slidesToShow;\n }\n\n animationLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: animationSlide\n }));\n finalLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: finalSlide\n }));\n\n if (!infinite) {\n if (animationLeft === finalLeft) animationSlide = finalSlide;\n animationLeft = finalLeft;\n }\n\n if (lazyLoad) {\n lazyLoadedList = lazyLoadedList.concat(getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: animationSlide\n })));\n }\n\n if (!useCSS) {\n state = {\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n } else {\n state = {\n animating: true,\n currentSlide: finalSlide,\n trackStyle: getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: animationLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n nextState = {\n animating: false,\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n swipeLeft: null,\n targetSlide: targetSlide\n };\n }\n }\n\n return {\n state: state,\n nextState: nextState\n };\n};\n\nexports.slideHandler = slideHandler;\n\nvar changeSlide = function changeSlide(spec, options) {\n var indexOffset, previousInt, slideOffset, unevenOffset, targetSlide;\n var slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n slideCount = spec.slideCount,\n currentSlide = spec.currentSlide,\n previousTargetSlide = spec.targetSlide,\n lazyLoad = spec.lazyLoad,\n infinite = spec.infinite;\n unevenOffset = slideCount % slidesToScroll !== 0;\n indexOffset = unevenOffset ? 0 : (slideCount - currentSlide) % slidesToScroll;\n\n if (options.message === \"previous\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : slidesToShow - indexOffset;\n targetSlide = currentSlide - slideOffset;\n\n if (lazyLoad && !infinite) {\n previousInt = currentSlide - slideOffset;\n targetSlide = previousInt === -1 ? slideCount - 1 : previousInt;\n }\n\n if (!infinite) {\n targetSlide = previousTargetSlide - slidesToScroll;\n }\n } else if (options.message === \"next\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : indexOffset;\n targetSlide = currentSlide + slideOffset;\n\n if (lazyLoad && !infinite) {\n targetSlide = (currentSlide + slidesToScroll) % slideCount + indexOffset;\n }\n\n if (!infinite) {\n targetSlide = previousTargetSlide + slidesToScroll;\n }\n } else if (options.message === \"dots\") {\n // Click on dots\n targetSlide = options.index * options.slidesToScroll;\n } else if (options.message === \"children\") {\n // Click on the slides\n targetSlide = options.index;\n\n if (infinite) {\n var direction = siblingDirection(_objectSpread(_objectSpread({}, spec), {}, {\n targetSlide: targetSlide\n }));\n\n if (targetSlide > options.currentSlide && direction === \"left\") {\n targetSlide = targetSlide - slideCount;\n } else if (targetSlide < options.currentSlide && direction === \"right\") {\n targetSlide = targetSlide + slideCount;\n }\n }\n } else if (options.message === \"index\") {\n targetSlide = Number(options.index);\n }\n\n return targetSlide;\n};\n\nexports.changeSlide = changeSlide;\n\nvar keyHandler = function keyHandler(e, accessibility, rtl) {\n if (e.target.tagName.match(\"TEXTAREA|INPUT|SELECT\") || !accessibility) return \"\";\n if (e.keyCode === 37) return rtl ? \"next\" : \"previous\";\n if (e.keyCode === 39) return rtl ? \"previous\" : \"next\";\n return \"\";\n};\n\nexports.keyHandler = keyHandler;\n\nvar swipeStart = function swipeStart(e, swipe, draggable) {\n e.target.tagName === \"IMG\" && safePreventDefault(e);\n if (!swipe || !draggable && e.type.indexOf(\"mouse\") !== -1) return \"\";\n return {\n dragging: true,\n touchObject: {\n startX: e.touches ? e.touches[0].pageX : e.clientX,\n startY: e.touches ? e.touches[0].pageY : e.clientY,\n curX: e.touches ? e.touches[0].pageX : e.clientX,\n curY: e.touches ? e.touches[0].pageY : e.clientY\n }\n };\n};\n\nexports.swipeStart = swipeStart;\n\nvar swipeMove = function swipeMove(e, spec) {\n // spec also contains, trackRef and slideIndex\n var scrolling = spec.scrolling,\n animating = spec.animating,\n vertical = spec.vertical,\n swipeToSlide = spec.swipeToSlide,\n verticalSwiping = spec.verticalSwiping,\n rtl = spec.rtl,\n currentSlide = spec.currentSlide,\n edgeFriction = spec.edgeFriction,\n edgeDragged = spec.edgeDragged,\n onEdge = spec.onEdge,\n swiped = spec.swiped,\n swiping = spec.swiping,\n slideCount = spec.slideCount,\n slidesToScroll = spec.slidesToScroll,\n infinite = spec.infinite,\n touchObject = spec.touchObject,\n swipeEvent = spec.swipeEvent,\n listHeight = spec.listHeight,\n listWidth = spec.listWidth;\n if (scrolling) return;\n if (animating) return safePreventDefault(e);\n if (vertical && swipeToSlide && verticalSwiping) safePreventDefault(e);\n var swipeLeft,\n state = {};\n var curLeft = getTrackLeft(spec);\n touchObject.curX = e.touches ? e.touches[0].pageX : e.clientX;\n touchObject.curY = e.touches ? e.touches[0].pageY : e.clientY;\n touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curX - touchObject.startX, 2)));\n var verticalSwipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curY - touchObject.startY, 2)));\n\n if (!verticalSwiping && !swiping && verticalSwipeLength > 10) {\n return {\n scrolling: true\n };\n }\n\n if (verticalSwiping) touchObject.swipeLength = verticalSwipeLength;\n var positionOffset = (!rtl ? 1 : -1) * (touchObject.curX > touchObject.startX ? 1 : -1);\n if (verticalSwiping) positionOffset = touchObject.curY > touchObject.startY ? 1 : -1;\n var dotCount = Math.ceil(slideCount / slidesToScroll);\n var swipeDirection = getSwipeDirection(spec.touchObject, verticalSwiping);\n var touchSwipeLength = touchObject.swipeLength;\n\n if (!infinite) {\n if (currentSlide === 0 && (swipeDirection === \"right\" || swipeDirection === \"down\") || currentSlide + 1 >= dotCount && (swipeDirection === \"left\" || swipeDirection === \"up\") || !canGoNext(spec) && (swipeDirection === \"left\" || swipeDirection === \"up\")) {\n touchSwipeLength = touchObject.swipeLength * edgeFriction;\n\n if (edgeDragged === false && onEdge) {\n onEdge(swipeDirection);\n state[\"edgeDragged\"] = true;\n }\n }\n }\n\n if (!swiped && swipeEvent) {\n swipeEvent(swipeDirection);\n state[\"swiped\"] = true;\n }\n\n if (!vertical) {\n if (!rtl) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n } else {\n swipeLeft = curLeft - touchSwipeLength * positionOffset;\n }\n } else {\n swipeLeft = curLeft + touchSwipeLength * (listHeight / listWidth) * positionOffset;\n }\n\n if (verticalSwiping) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n }\n\n state = _objectSpread(_objectSpread({}, state), {}, {\n touchObject: touchObject,\n swipeLeft: swipeLeft,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: swipeLeft\n }))\n });\n\n if (Math.abs(touchObject.curX - touchObject.startX) < Math.abs(touchObject.curY - touchObject.startY) * 0.8) {\n return state;\n }\n\n if (touchObject.swipeLength > 10) {\n state[\"swiping\"] = true;\n safePreventDefault(e);\n }\n\n return state;\n};\n\nexports.swipeMove = swipeMove;\n\nvar swipeEnd = function swipeEnd(e, spec) {\n var dragging = spec.dragging,\n swipe = spec.swipe,\n touchObject = spec.touchObject,\n listWidth = spec.listWidth,\n touchThreshold = spec.touchThreshold,\n verticalSwiping = spec.verticalSwiping,\n listHeight = spec.listHeight,\n swipeToSlide = spec.swipeToSlide,\n scrolling = spec.scrolling,\n onSwipe = spec.onSwipe,\n targetSlide = spec.targetSlide,\n currentSlide = spec.currentSlide,\n infinite = spec.infinite;\n\n if (!dragging) {\n if (swipe) safePreventDefault(e);\n return {};\n }\n\n var minSwipe = verticalSwiping ? listHeight / touchThreshold : listWidth / touchThreshold;\n var swipeDirection = getSwipeDirection(touchObject, verticalSwiping); // reset the state of touch related state variables.\n\n var state = {\n dragging: false,\n edgeDragged: false,\n scrolling: false,\n swiping: false,\n swiped: false,\n swipeLeft: null,\n touchObject: {}\n };\n\n if (scrolling) {\n return state;\n }\n\n if (!touchObject.swipeLength) {\n return state;\n }\n\n if (touchObject.swipeLength > minSwipe) {\n safePreventDefault(e);\n\n if (onSwipe) {\n onSwipe(swipeDirection);\n }\n\n var slideCount, newSlide;\n var activeSlide = infinite ? currentSlide : targetSlide;\n\n switch (swipeDirection) {\n case \"left\":\n case \"up\":\n newSlide = activeSlide + getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 0;\n break;\n\n case \"right\":\n case \"down\":\n newSlide = activeSlide - getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 1;\n break;\n\n default:\n slideCount = activeSlide;\n }\n\n state[\"triggerSlideHandler\"] = slideCount;\n } else {\n // Adjust the track back to it's original position.\n var currentLeft = getTrackLeft(spec);\n state[\"trackStyle\"] = getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: currentLeft\n }));\n }\n\n return state;\n};\n\nexports.swipeEnd = swipeEnd;\n\nvar getNavigableIndexes = function getNavigableIndexes(spec) {\n var max = spec.infinite ? spec.slideCount * 2 : spec.slideCount;\n var breakpoint = spec.infinite ? spec.slidesToShow * -1 : 0;\n var counter = spec.infinite ? spec.slidesToShow * -1 : 0;\n var indexes = [];\n\n while (breakpoint < max) {\n indexes.push(breakpoint);\n breakpoint = counter + spec.slidesToScroll;\n counter += Math.min(spec.slidesToScroll, spec.slidesToShow);\n }\n\n return indexes;\n};\n\nexports.getNavigableIndexes = getNavigableIndexes;\n\nvar checkNavigable = function checkNavigable(spec, index) {\n var navigables = getNavigableIndexes(spec);\n var prevNavigable = 0;\n\n if (index > navigables[navigables.length - 1]) {\n index = navigables[navigables.length - 1];\n } else {\n for (var n in navigables) {\n if (index < navigables[n]) {\n index = prevNavigable;\n break;\n }\n\n prevNavigable = navigables[n];\n }\n }\n\n return index;\n};\n\nexports.checkNavigable = checkNavigable;\n\nvar getSlideCount = function getSlideCount(spec) {\n var centerOffset = spec.centerMode ? spec.slideWidth * Math.floor(spec.slidesToShow / 2) : 0;\n\n if (spec.swipeToSlide) {\n var swipedSlide;\n var slickList = spec.listRef;\n var slides = slickList.querySelectorAll && slickList.querySelectorAll(\".slick-slide\") || [];\n Array.from(slides).every(function (slide) {\n if (!spec.vertical) {\n if (slide.offsetLeft - centerOffset + getWidth(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n } else {\n if (slide.offsetTop + getHeight(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n }\n\n return true;\n });\n\n if (!swipedSlide) {\n return 0;\n }\n\n var currentIndex = spec.rtl === true ? spec.slideCount - spec.currentSlide : spec.currentSlide;\n var slidesTraversed = Math.abs(swipedSlide.dataset.index - currentIndex) || 1;\n return slidesTraversed;\n } else {\n return spec.slidesToScroll;\n }\n};\n\nexports.getSlideCount = getSlideCount;\n\nvar checkSpecKeys = function checkSpecKeys(spec, keysArray) {\n return keysArray.reduce(function (value, key) {\n return value && spec.hasOwnProperty(key);\n }, true) ? null : console.error(\"Keys Missing:\", spec);\n};\n\nexports.checkSpecKeys = checkSpecKeys;\n\nvar getTrackCSS = function getTrackCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\"]);\n var trackWidth, trackHeight;\n var trackChildren = spec.slideCount + 2 * spec.slidesToShow;\n\n if (!spec.vertical) {\n trackWidth = getTotalSlides(spec) * spec.slideWidth;\n } else {\n trackHeight = trackChildren * spec.slideHeight;\n }\n\n var style = {\n opacity: 1,\n transition: \"\",\n WebkitTransition: \"\"\n };\n\n if (spec.useTransform) {\n var WebkitTransform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var transform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var msTransform = !spec.vertical ? \"translateX(\" + spec.left + \"px)\" : \"translateY(\" + spec.left + \"px)\";\n style = _objectSpread(_objectSpread({}, style), {}, {\n WebkitTransform: WebkitTransform,\n transform: transform,\n msTransform: msTransform\n });\n } else {\n if (spec.vertical) {\n style[\"top\"] = spec.left;\n } else {\n style[\"left\"] = spec.left;\n }\n }\n\n if (spec.fade) style = {\n opacity: 1\n };\n if (trackWidth) style.width = trackWidth;\n if (trackHeight) style.height = trackHeight; // Fallback for IE8\n\n if (window && !window.addEventListener && window.attachEvent) {\n if (!spec.vertical) {\n style.marginLeft = spec.left + \"px\";\n } else {\n style.marginTop = spec.left + \"px\";\n }\n }\n\n return style;\n};\n\nexports.getTrackCSS = getTrackCSS;\n\nvar getTrackAnimateCSS = function getTrackAnimateCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\", \"speed\", \"cssEase\"]);\n var style = getTrackCSS(spec); // useCSS is true by default so it can be undefined\n\n if (spec.useTransform) {\n style.WebkitTransition = \"-webkit-transform \" + spec.speed + \"ms \" + spec.cssEase;\n style.transition = \"transform \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n if (spec.vertical) {\n style.transition = \"top \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n style.transition = \"left \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n\n return style;\n};\n\nexports.getTrackAnimateCSS = getTrackAnimateCSS;\n\nvar getTrackLeft = function getTrackLeft(spec) {\n if (spec.unslick) {\n return 0;\n }\n\n checkSpecKeys(spec, [\"slideIndex\", \"trackRef\", \"infinite\", \"centerMode\", \"slideCount\", \"slidesToShow\", \"slidesToScroll\", \"slideWidth\", \"listWidth\", \"variableWidth\", \"slideHeight\"]);\n var slideIndex = spec.slideIndex,\n trackRef = spec.trackRef,\n infinite = spec.infinite,\n centerMode = spec.centerMode,\n slideCount = spec.slideCount,\n slidesToShow = spec.slidesToShow,\n slidesToScroll = spec.slidesToScroll,\n slideWidth = spec.slideWidth,\n listWidth = spec.listWidth,\n variableWidth = spec.variableWidth,\n slideHeight = spec.slideHeight,\n fade = spec.fade,\n vertical = spec.vertical;\n var slideOffset = 0;\n var targetLeft;\n var targetSlide;\n var verticalOffset = 0;\n\n if (fade || spec.slideCount === 1) {\n return 0;\n }\n\n var slidesToOffset = 0;\n\n if (infinite) {\n slidesToOffset = -getPreClones(spec); // bring active slide to the beginning of visual area\n // if next scroll doesn't have enough children, just reach till the end of original slides instead of shifting slidesToScroll children\n\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = -(slideIndex > slideCount ? slidesToShow - (slideIndex - slideCount) : slideCount % slidesToScroll);\n } // shift current slide to center of the frame\n\n\n if (centerMode) {\n slidesToOffset += parseInt(slidesToShow / 2);\n }\n } else {\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = slidesToShow - slideCount % slidesToScroll;\n }\n\n if (centerMode) {\n slidesToOffset = parseInt(slidesToShow / 2);\n }\n }\n\n slideOffset = slidesToOffset * slideWidth;\n verticalOffset = slidesToOffset * slideHeight;\n\n if (!vertical) {\n targetLeft = slideIndex * slideWidth * -1 + slideOffset;\n } else {\n targetLeft = slideIndex * slideHeight * -1 + verticalOffset;\n }\n\n if (variableWidth === true) {\n var targetSlideIndex;\n var trackElem = trackRef && trackRef.node;\n targetSlideIndex = slideIndex + getPreClones(spec);\n targetSlide = trackElem && trackElem.childNodes[targetSlideIndex];\n targetLeft = targetSlide ? targetSlide.offsetLeft * -1 : 0;\n\n if (centerMode === true) {\n targetSlideIndex = infinite ? slideIndex + getPreClones(spec) : slideIndex;\n targetSlide = trackElem && trackElem.children[targetSlideIndex];\n targetLeft = 0;\n\n for (var slide = 0; slide < targetSlideIndex; slide++) {\n targetLeft -= trackElem && trackElem.children[slide] && trackElem.children[slide].offsetWidth;\n }\n\n targetLeft -= parseInt(spec.centerPadding);\n targetLeft += targetSlide && (listWidth - targetSlide.offsetWidth) / 2;\n }\n }\n\n return targetLeft;\n};\n\nexports.getTrackLeft = getTrackLeft;\n\nvar getPreClones = function getPreClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n\n if (spec.variableWidth) {\n return spec.slideCount;\n }\n\n return spec.slidesToShow + (spec.centerMode ? 1 : 0);\n};\n\nexports.getPreClones = getPreClones;\n\nvar getPostClones = function getPostClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n\n return spec.slideCount;\n};\n\nexports.getPostClones = getPostClones;\n\nvar getTotalSlides = function getTotalSlides(spec) {\n return spec.slideCount === 1 ? 1 : getPreClones(spec) + spec.slideCount + getPostClones(spec);\n};\n\nexports.getTotalSlides = getTotalSlides;\n\nvar siblingDirection = function siblingDirection(spec) {\n if (spec.targetSlide > spec.currentSlide) {\n if (spec.targetSlide > spec.currentSlide + slidesOnRight(spec)) {\n return \"left\";\n }\n\n return \"right\";\n } else {\n if (spec.targetSlide < spec.currentSlide - slidesOnLeft(spec)) {\n return \"right\";\n }\n\n return \"left\";\n }\n};\n\nexports.siblingDirection = siblingDirection;\n\nvar slidesOnRight = function slidesOnRight(_ref) {\n var slidesToShow = _ref.slidesToShow,\n centerMode = _ref.centerMode,\n rtl = _ref.rtl,\n centerPadding = _ref.centerPadding;\n\n // returns no of slides on the right of active slide\n if (centerMode) {\n var right = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) right += 1;\n if (rtl && slidesToShow % 2 === 0) right += 1;\n return right;\n }\n\n if (rtl) {\n return 0;\n }\n\n return slidesToShow - 1;\n};\n\nexports.slidesOnRight = slidesOnRight;\n\nvar slidesOnLeft = function slidesOnLeft(_ref2) {\n var slidesToShow = _ref2.slidesToShow,\n centerMode = _ref2.centerMode,\n rtl = _ref2.rtl,\n centerPadding = _ref2.centerPadding;\n\n // returns no of slides on the left of active slide\n if (centerMode) {\n var left = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) left += 1;\n if (!rtl && slidesToShow % 2 === 0) left += 1;\n return left;\n }\n\n if (rtl) {\n return slidesToShow - 1;\n }\n\n return 0;\n};\n\nexports.slidesOnLeft = slidesOnLeft;\n\nvar canUseDOM = function canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n};\n\nexports.canUseDOM = canUseDOM;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2xpY2svbGliL3V0aWxzL2lubmVyU2xpZGVyVXRpbHMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsYUFBYTtBQUNiLGlCQUFpQixHQUFHLG9CQUFvQixHQUFHLHFCQUFxQixHQUFHLHdCQUF3QixHQUFHLHNCQUFzQixHQUFHLHFCQUFxQixHQUFHLG9CQUFvQixHQUFHLG9CQUFvQixHQUFHLDBCQUEwQixHQUFHLG1CQUFtQixHQUFHLHFCQUFxQixHQUFHLHFCQUFxQixHQUFHLHNCQUFzQixHQUFHLDJCQUEyQixHQUFHLGdCQUFnQixHQUFHLGlCQUFpQixHQUFHLGtCQUFrQixHQUFHLGtCQUFrQixHQUFHLG1CQUFtQixHQUFHLG9CQUFvQixHQUFHLHdCQUF3QixHQUFHLHFCQUFxQixHQUFHLGlCQUFpQixHQUFHLHlCQUF5QixHQUFHLGlCQUFpQixHQUFHLGdCQUFnQixHQUFHLHlCQUF5QixHQUFHLHdCQUF3QixHQUFHLG9CQUFvQixHQUFHLHNCQUFzQixHQUFHLDZCQUE2QixHQUFHLDZCQUE2QixHQUFHLDBCQUEwQjs7QUFFaHlCLG9DQUFvQyxtQkFBTyxDQUFDLDRDQUFPOztBQUVuRCx1Q0FBdUMsdUNBQXVDOztBQUU5RSwyQ0FBMkMsZ0NBQWdDLG9DQUFvQyxvREFBb0QsOERBQThELGlFQUFpRSxHQUFHLGtDQUFrQzs7QUFFdlUsaUNBQWlDLGdCQUFnQixzQkFBc0IsT0FBTyx1REFBdUQsYUFBYSx1REFBdUQsNENBQTRDLEtBQUssNkNBQTZDLDZFQUE2RSxPQUFPLGlEQUFpRCxtRkFBbUYsT0FBTzs7QUFFdGdCLDRDQUE0QyxrQkFBa0Isa0NBQWtDLG9FQUFvRSxLQUFLLE9BQU8sb0JBQW9COztBQUVwTTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwwQkFBMEI7O0FBRTFCO0FBQ0E7QUFDQTtBQUNBOztBQUVBLG9D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QUVBLHFCQUFxQjs7QUFFckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSxvQkFBb0I7O0FBRXBCO0FBQ0E7QUFDQTs7QUFFQSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXNsaWNrL2xpYi91dGlscy9pbm5lclNsaWRlclV0aWxzLmpzP2E5OWEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmNsYW1wID0gY2xhbXA7XG5leHBvcnRzLmNhblVzZURPTSA9IGV4cG9ydHMuc2xpZGVzT25MZWZ0ID0gZXhwb3J0cy5zbGlkZXNPblJpZ2h0ID0gZXhwb3J0cy5zaWJsaW5nRGlyZWN0aW9uID0gZXhwb3J0cy5nZXRUb3RhbFNsaWRlcyA9IGV4cG9ydHMuZ2V0UG9zdENsb25lcyA9IGV4cG9ydHMuZ2V0UHJlQ2xvbmVzID0gZXhwb3J0cy5nZXRUcmFja0xlZnQgPSBleHBvcnRzLmdldFRyYWNrQW5pbWF0ZUNTUyA9IGV4cG9ydHMuZ2V0VHJhY2tDU1MgPSBleHBvcnRzLmNoZWNrU3BlY0tleXMgPSBleHBvcnRzLmdldFNsaWRlQ291bnQgPSBleHBvcnRzLmNoZWNrTmF2aWdhYmxlID0gZXhwb3J0cy5nZXROYXZpZ2FibGVJbmRleGVzID0gZXhwb3J0cy5zd2lwZUVuZCA9IGV4cG9ydHMuc3dpcGVNb3ZlID0gZXhwb3J0cy5zd2lwZVN0YXJ0ID0gZXhwb3J0cy5rZXlIYW5kbGVyID0gZXhwb3J0cy5jaGFuZ2VTbGlkZSA9IGV4cG9ydHMuc2xpZGVIYW5kbGVyID0gZXhwb3J0cy5pbml0aWFsaXplZFN0YXRlID0gZXhwb3J0cy5leHRyYWN0T2JqZWN0ID0gZXhwb3J0cy5jYW5Hb05leHQgPSBleHBvcnRzLmdldFN3aXBlRGlyZWN0aW9uID0gZXhwb3J0cy5nZXRIZWlnaHQgPSBleHBvcnRzLmdldFdpZHRoID0gZXhwb3J0cy5sYXp5U2xpZGVzT25SaWdodCA9IGV4cG9ydHMubGF6eVNsaWRlc09uTGVmdCA9IGV4cG9ydHMubGF6eUVuZEluZGV4ID0gZXhwb3J0cy5sYXp5U3RhcnRJbmRleCA9IGV4cG9ydHMuZ2V0UmVxdWlyZWRMYXp5U2xpZGVzID0gZXhwb3J0cy5nZXRPbkRlbWFuZExhenlTbGlkZXMgPSBleHBvcnRzLnNhZmVQcmV2ZW50RGVmYXVsdCA9IHZvaWQgMDtcblxudmFyIF9yZWFjdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJlYWN0XCIpKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIG93bktleXMob2JqZWN0LCBlbnVtZXJhYmxlT25seSkgeyB2YXIga2V5cyA9IE9iamVjdC5rZXlzKG9iamVjdCk7IGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7IHZhciBzeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhvYmplY3QpOyBpZiAoZW51bWVyYWJsZU9ubHkpIHN5bWJvbHMgPSBzeW1ib2xzLmZpbHRlcihmdW5jdGlvbiAoc3ltKSB7IHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iamVjdCwgc3ltKS5lbnVtZXJhYmxlOyB9KTsga2V5cy5wdXNoLmFwcGx5KGtleXMsIHN5bWJvbHMpOyB9IHJldHVybiBrZXlzOyB9XG5cbmZ1bmN0aW9uIF9vYmplY3RTcHJlYWQodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV0gIT0gbnVsbCA/IGFyZ3VtZW50c1tpXSA6IHt9OyBpZiAoaSAlIDIpIHsgb3duS2V5cyhPYmplY3Qoc291cmNlKSwgdHJ1ZSkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7IF9kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgc291cmNlW2tleV0pOyB9KTsgfSBlbHNlIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycykgeyBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHNvdXJjZSkpOyB9IGVsc2UgeyBvd25LZXlzKE9iamVjdChzb3VyY2UpKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNvdXJjZSwga2V5KSk7IH0pOyB9IH0gcmV0dXJuIHRhcmdldDsgfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHZhbHVlKSB7IGlmIChrZXkgaW4gb2JqKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgeyB2YWx1ZTogdmFsdWUsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUgfSk7IH0gZWxzZSB7IG9ialtrZXldID0gdmFsdWU7IH0gcmV0dXJuIG9iajsgfVxuXG5mdW5jdGlvbiBjbGFtcChudW1iZXIsIGxvd2VyQm91bmQsIHVwcGVyQm91bmQpIHtcbiAgcmV0dXJuIE1hdGgubWF4KGxvd2VyQm91bmQsIE1hdGgubWluKG51bWJlciwgdXBwZXJCb3VuZCkpO1xufVxuXG52YXIgc2FmZVByZXZlbnREZWZhdWx0ID0gZnVuY3Rpb24gc2FmZVByZXZlbnREZWZhdWx0KGV2ZW50KSB7XG4gIHZhciBwYXNzaXZlRXZlbnRzID0gW1wib25Ub3VjaFN0YXJ0XCIsIFwib25Ub3VjaE1vdmVcIiwgXCJvbldoZWVsXCJdO1xuXG4gIGlmICghcGFzc2l2ZUV2ZW50cy5pbmNsdWRlcyhldmVudC5fcmVhY3ROYW1lKSkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cbn07XG5cbmV4cG9ydHMuc2FmZVByZXZlbnREZWZhdWx0ID0gc2FmZVByZXZlbnREZWZhdWx0O1xuXG52YXIgZ2V0T25EZW1hbmRMYXp5U2xpZGVzID0gZnVuY3Rpb24gZ2V0T25EZW1hbmRMYXp5U2xpZGVzKHNwZWMpIHtcbiAgdmFyIG9uRGVtYW5kU2xpZGVzID0gW107XG4gIHZhciBzdGFydEluZGV4ID0gbGF6eVN0YXJ0SW5kZXgoc3BlYyk7XG4gIHZhciBlbmRJbmRleCA9IGxhenlFbmRJbmRleChzcGVjKTtcblxuICBmb3IgKHZhciBzbGlkZUluZGV4ID0gc3RhcnRJbmRleDsgc2xpZGVJbmRleCA8IGVuZEluZGV4OyBzbGlkZUluZGV4KyspIHtcbiAgICBpZiAoc3BlYy5sYXp5TG9hZGVkTGlzdC5pbmRleE9mKHNsaWRlSW5kZXgpIDwgMCkge1xuICAgICAgb25EZW1hbmRTbGlkZXMucHVzaChzbGlkZUluZGV4KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gb25EZW1hbmRTbGlkZXM7XG59OyAvLyByZXR1cm4gbGlzdCBvZiBzbGlkZXMgdGhhdCBuZWVkIHRvIGJlIHByZXNlbnRcblxuXG5leHBvcnRzLmdldE9uRGVtYW5kTGF6eVNsaWRlcyA9IGdldE9uRGVtYW5kTGF6eVNsaWRlcztcblxudmFyIGdldFJlcXVpcmVkTGF6eVNsaWRlcyA9IGZ1bmN0aW9uIGdldFJlcXVpcmVkTGF6eVNsaWRlcyhzcGVjKSB7XG4gIHZhciByZXF1aXJlZFNsaWRlcyA9IFtdO1xuICB2YXIgc3RhcnRJbmRleCA9IGxhenlTdGFydEluZGV4KHNwZWMpO1xuICB2YXIgZW5kSW5kZXggPSBsYXp5RW5kSW5kZXgoc3BlYyk7XG5cbiAgZm9yICh2YXIgc2xpZGVJbmRleCA9IHN0YXJ0SW5kZXg7IHNsaWRlSW5kZXggPCBlbmRJbmRleDsgc2xpZGVJbmRleCsrKSB7XG4gICAgcmVxdWlyZWRTbGlkZXMucHVzaChzbGlkZUluZGV4KTtcbiAgfVxuXG4gIHJldHVybiByZXF1aXJlZFNsaWRlcztcbn07IC8vIHN0YXJ0SW5kZXggdGhhdCBuZWVkcyB0byBiZSBwcmVzZW50XG5cblxuZXhwb3J0cy5nZXRSZXF1aXJlZExhenlTbGlkZXMgPSBnZXRSZXF1aXJlZExhenlTbGlkZXM7XG5cbnZhciBsYXp5U3RhcnRJbmRleCA9IGZ1bmN0aW9uIGxhenlTdGFydEluZGV4KHNwZWMpIHtcbiAgcmV0dXJuIHNwZWMuY3VycmVudFNsaWRlIC0gbGF6eVNsaWRlc09uTGVmdChzcGVjKTtcbn07XG5cbmV4cG9ydHMubGF6eVN0YXJ0SW5kZXggPSBsYXp5U3RhcnRJbmRleDtcblxudmFyIGxhenlFbmRJbmRleCA9IGZ1bmN0aW9uIGxhenlFbmRJbmRleChzcGVjKSB7XG4gIHJldHVybiBzcGVjLmN1cnJlbnRTbGlkZSArIGxhenlTbGlkZXNPblJpZ2h0KHNwZWMpO1xufTtcblxuZXhwb3J0cy5sYXp5RW5kSW5kZXggPSBsYXp5RW5kSW5kZXg7XG5cbnZhciBsYXp5U2xpZGVzT25MZWZ0ID0gZnVuY3Rpb24gbGF6eVNsaWRlc09uTGVmdChzcGVjKSB7XG4gIHJldHVybiBzcGVjLmNlbnRlck1vZGUgPyBNYXRoLmZsb29yKHNwZWMuc2xpZGVzVG9TaG93IC8gMikgKyAocGFyc2VJbnQoc3BlYy5jZW50ZXJQYWRkaW5nKSA+IDAgPyAxIDogMCkgOiAwO1xufTtcblxuZXhwb3J0cy5sYXp5U2xpZGVzT25MZWZ0ID0gbGF6eVNsaWRlc09uTGVmdDtcblxudmFyIGxhenlTbGlkZXNPblJpZ2h0ID0gZnVuY3Rpb24gbGF6eVNsaWRlc09uUmlnaHQoc3BlYykge1xuICByZXR1cm4gc3BlYy5jZW50ZXJNb2RlID8gTWF0aC5mbG9vcigoc3BlYy5zbGlkZXNUb1Nob3cgLSAxKSAvIDIpICsgMSArIChwYXJzZUludChzcGVjLmNlbnRlclBhZGRpbmcpID4gMCA/IDEgOiAwKSA6IHNwZWMuc2xpZGVzVG9TaG93O1xufTsgLy8gZ2V0IHdpZHRoIG9mIGFuIGVsZW1lbnRcblxuXG5leHBvcnRzLmxhenlTbGlkZXNPblJpZ2h0ID0gbGF6eVNsaWRlc09uUmlnaHQ7XG5cbnZhciBnZXRXaWR0aCA9IGZ1bmN0aW9uIGdldFdpZHRoKGVsZW0pIHtcbiAgcmV0dXJuIGVsZW0gJiYgZWxlbS5vZmZzZXRXaWR0aCB8fCAwO1xufTtcblxuZXhwb3J0cy5nZXRXaWR0aCA9IGdldFdpZHRoO1xuXG52YXIgZ2V0SGVpZ2h0ID0gZnVuY3Rpb24gZ2V0SGVpZ2h0KGVsZW0pIHtcbiAgcmV0dXJuIGVsZW0gJiYgZWxlbS5vZmZzZXRIZWlnaHQgfHwgMDtcbn07XG5cbmV4cG9ydHMuZ2V0SGVpZ2h0ID0gZ2V0SGVpZ2h0O1xuXG52YXIgZ2V0U3dpcGVEaXJlY3Rpb24gPSBmdW5jdGlvbiBnZXRTd2lwZURpcmVjdGlvbih0b3VjaE9iamVjdCkge1xuICB2YXIgdmVydGljYWxTd2lwaW5nID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiBmYWxzZTtcbiAgdmFyIHhEaXN0LCB5RGlzdCwgciwgc3dpcGVBbmdsZTtcbiAgeERpc3QgPSB0b3VjaE9iamVjdC5zdGFydFggLSB0b3VjaE9iamVjdC5jdXJYO1xuICB5RGlzdCA9IHRvdWNoT2JqZWN0LnN0YXJ0WSAtIHRvdWNoT2JqZWN0LmN1clk7XG4gIHIgPSBNYXRoLmF0YW4yKHlEaXN0LCB4RGlzdCk7XG4gIHN3aXBlQW5nbGUgPSBNYXRoLnJvdW5kKHIgKiAxODAgLyBNYXRoLlBJKTtcblxuICBpZiAoc3dpcGVBbmdsZSA8IDApIHtcbiAgICBzd2lwZUFuZ2xlID0gMzYwIC0gTWF0aC5hYnMoc3dpcGVBbmdsZSk7XG4gIH1cblxuICBpZiAoc3dpcGVBbmdsZSA8PSA0NSAmJiBzd2lwZUFuZ2xlID49IDAgfHwgc3dpcGVBbmdsZSA8PSAzNjAgJiYgc3dpcGVBbmdsZSA+PSAzMTUpIHtcbiAgICByZXR1cm4gXCJsZWZ0XCI7XG4gIH1cblxuICBpZiAoc3dpcGVBbmdsZSA+PSAxMzUgJiYgc3dpcGVBbmdsZSA8PSAyMjUpIHtcbiAgICByZXR1cm4gXCJyaWdodFwiO1xuICB9XG5cbiAgaWYgKHZlcnRpY2FsU3dpcGluZyA9PT0gdHJ1ZSkge1xuICAgIGlmIChzd2lwZUFuZ2xlID49IDM1ICYmIHN3aXBlQW5nbGUgPD0gMTM1KSB7XG4gICAgICByZXR1cm4gXCJ1cFwiO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gXCJkb3duXCI7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFwidmVydGljYWxcIjtcbn07IC8vIHdoZXRoZXIgb3Igbm90IHdlIGNhbiBnbyBuZXh0XG5cblxuZXhwb3J0cy5nZXRTd2lwZURpcmVjdGlvbiA9IGdldFN3aXBlRGlyZWN0aW9uO1xuXG52YXIgY2FuR29OZXh0ID0gZnVuY3Rpb24gY2FuR29OZXh0KHNwZWMpIHtcbiAgdmFyIGNhbkdvID0gdHJ1ZTtcblxuICBpZiAoIXNwZWMuaW5maW5pdGUpIHtcbiAgICBpZiAoc3BlYy5jZW50ZXJNb2RlICYmIHNwZWMuY3VycmVudFNsaWRlID49IHNwZWMuc2xpZGVDb3VudCAtIDEpIHtcbiAgICAgIGNhbkdvID0gZmFsc2U7XG4gICAgfSBlbHNlIGlmIChzcGVjLnNsaWRlQ291bnQgPD0gc3BlYy5zbGlkZXNUb1Nob3cgfHwgc3BlYy5jdXJyZW50U2xpZGUgPj0gc3BlYy5zbGlkZUNvdW50IC0gc3BlYy5zbGlkZXNUb1Nob3cpIHtcbiAgICAgIGNhbkdvID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNhbkdvO1xufTsgLy8gZ2l2ZW4gYW4gb2JqZWN0IGFuZCBhIGxpc3Qgb2Yga2V5cywgcmV0dXJuIG5ldyBvYmplY3Qgd2l0aCBnaXZlbiBrZXlzXG5cblxuZXhwb3J0cy5jYW5Hb05leHQgPSBjYW5Hb05leHQ7XG5cbnZhciBleHRyYWN0T2JqZWN0ID0gZnVuY3Rpb24gZXh0cmFjdE9iamVjdChzcGVjLCBrZXlzKSB7XG4gIHZhciBuZXdPYmplY3QgPSB7fTtcbiAga2V5cy5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICByZXR1cm4gbmV3T2JqZWN0W2tleV0gPSBzcGVjW2tleV07XG4gIH0pO1xuICByZXR1cm4gbmV3T2JqZWN0O1xufTsgLy8gZ2V0IGluaXRpYWxpemVkIHN0YXRlXG5cblxuZXhwb3J0cy5leHRyYWN0T2JqZWN0ID0gZXh0cmFjdE9iamVjdDtcblxudmFyIGluaXRpYWxpemVkU3RhdGUgPSBmdW5jdGlvbiBpbml0aWFsaXplZFN0YXRlKHNwZWMpIHtcbiAgLy8gc3BlYyBhbHNvIGNvbnRhaW5zIGxpc3RSZWYsIHRyYWNrUmVmXG4gIHZhciBzbGlkZUNvdW50ID0gX3JlYWN0W1wiZGVmYXVsdFwiXS5DaGlsZHJlbi5jb3VudChzcGVjLmNoaWxkcmVuKTtcblxuICB2YXIgbGlzdE5vZGUgPSBzcGVjLmxpc3RSZWY7XG4gIHZhciBsaXN0V2lkdGggPSBNYXRoLmNlaWwoZ2V0V2lkdGgobGlzdE5vZGUpKTtcbiAgdmFyIHRyYWNrTm9kZSA9IHNwZWMudHJhY2tSZWYgJiYgc3BlYy50cmFja1JlZi5ub2RlO1xuICB2YXIgdHJhY2tXaWR0aCA9IE1hdGguY2VpbChnZXRXaWR0aCh0cmFja05vZGUpKTtcbiAgdmFyIHNsaWRlV2lkdGg7XG5cbiAgaWYgKCFzcGVjLnZlcnRpY2FsKSB7XG4gICAgdmFyIGNlbnRlclBhZGRpbmdBZGogPSBzcGVjLmNlbnRlck1vZGUgJiYgcGFyc2VJbnQoc3BlYy5jZW50ZXJQYWRkaW5nKSAqIDI7XG5cbiAgICBpZiAodHlwZW9mIHNwZWMuY2VudGVyUGFkZGluZyA9PT0gXCJzdHJpbmdcIiAmJiBzcGVjLmNlbnRlclBhZGRpbmcuc2xpY2UoLTEpID09PSBcIiVcIikge1xuICAgICAgY2VudGVyUGFkZGluZ0FkaiAqPSBsaXN0V2lkdGggLyAxMDA7XG4gICAgfVxuXG4gICAgc2xpZGVXaWR0aCA9IE1hdGguY2VpbCgobGlzdFdpZHRoIC0gY2VudGVyUGFkZGluZ0FkaikgLyBzcGVjLnNsaWRlc1RvU2hvdyk7XG4gIH0gZWxzZSB7XG4gICAgc2xpZGVXaWR0aCA9IGxpc3RXaWR0aDtcbiAgfVxuXG4gIHZhciBzbGlkZUhlaWdodCA9IGxpc3ROb2RlICYmIGdldEhlaWdodChsaXN0Tm9kZS5xdWVyeVNlbGVjdG9yKCdbZGF0YS1pbmRleD1cIjBcIl0nKSk7XG4gIHZhciBsaXN0SGVpZ2h0ID0gc2xpZGVIZWlnaHQgKiBzcGVjLnNsaWRlc1RvU2hvdztcbiAgdmFyIGN1cnJlbnRTbGlkZSA9IHNwZWMuY3VycmVudFNsaWRlID09PSB1bmRlZmluZWQgPyBzcGVjLmluaXRpYWxTbGlkZSA6IHNwZWMuY3VycmVudFNsaWRlO1xuXG4gIGlmIChzcGVjLnJ0bCAmJiBzcGVjLmN1cnJlbnRTbGlkZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgY3VycmVudFNsaWRlID0gc2xpZGVDb3VudCAtIDEgLSBzcGVjLmluaXRpYWxTbGlkZTtcbiAgfVxuXG4gIHZhciBsYXp5TG9hZGVkTGlzdCA9IHNwZWMubGF6eUxvYWRlZExpc3QgfHwgW107XG4gIHZhciBzbGlkZXNUb0xvYWQgPSBnZXRPbkRlbWFuZExhenlTbGlkZXMoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzcGVjKSwge30sIHtcbiAgICBjdXJyZW50U2xpZGU6IGN1cnJlbnRTbGlkZSxcbiAgICBsYXp5TG9hZGVkTGlzdDogbGF6eUxvYWRlZExpc3RcbiAgfSkpO1xuICBsYXp5TG9hZGVkTGlzdCA9IGxhenlMb2FkZWRMaXN0LmNvbmNhdChzbGlkZXNUb0xvYWQpO1xuICB2YXIgc3RhdGUgPSB7XG4gICAgc2xpZGVDb3VudDogc2xpZGVDb3VudCxcbiAgICBzbGlkZVdpZHRoOiBzbGlkZVdpZHRoLFxuICAgIGxpc3RXaWR0aDogbGlzdFdpZHRoLFxuICAgIHRyYWNrV2lkdGg6IHRyYWNrV2lkdGgsXG4gICAgY3VycmVudFNsaWRlOiBjdXJyZW50U2xpZGUsXG4gICAgc2xpZGVIZWlnaHQ6IHNsaWRlSGVpZ2h0LFxuICAgIGxpc3RIZWlnaHQ6IGxpc3RIZWlnaHQsXG4gICAgbGF6eUxvYWRlZExpc3Q6IGxhenlMb2FkZWRMaXN0XG4gIH07XG5cbiAgaWYgKHNwZWMuYXV0b3BsYXlpbmcgPT09IG51bGwgJiYgc3BlYy5hdXRvcGxheSkge1xuICAgIHN0YXRlW1wiYXV0b3BsYXlpbmdcIl0gPSBcInBsYXlpbmdcIjtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZTtcbn07XG5cbmV4cG9ydHMuaW5pdGlhbGl6ZWRTdGF0ZSA9IGluaXRpYWxpemVkU3RhdGU7XG5cbnZhciBzbGlkZUhhbmRsZXIgPSBmdW5jdGlvbiBzbGlkZUhhbmRsZXIoc3BlYykge1xuICB2YXIgd2FpdEZvckFuaW1hdGUgPSBzcGVjLndhaXRGb3JBbmltYXRlLFxuICAgICAgYW5pbWF0aW5nID0gc3BlYy5hbmltYXRpbmcsXG4gICAgICBmYWRlID0gc3BlYy5mYWRlLFxuICAgICAgaW5maW5pdGUgPSBzcGVjLmluZmluaXRlLFxuICAgICAgaW5kZXggPSBzcGVjLmluZGV4LFxuICAgICAgc2xpZGVDb3VudCA9IHNwZWMuc2xpZGVDb3VudCxcbiAgICAgIGxhenlMb2FkID0gc3BlYy5sYXp5TG9hZCxcbiAgICAgIGN1cnJlbnRTbGlkZSA9IHNwZWMuY3VycmVudFNsaWRlLFxuICAgICAgY2VudGVyTW9kZSA9IHNwZWMuY2VudGVyTW9kZSxcbiAgICAgIHNsaWRlc1RvU2Nyb2xsID0gc3BlYy5zbGlkZXNUb1Njcm9sbCxcbiAgICAgIHNsaWRlc1RvU2hvdyA9IHNwZWMuc2xpZGVzVG9TaG93LFxuICAgICAgdXNlQ1NTID0gc3BlYy51c2VDU1M7XG4gIHZhciBsYXp5TG9hZGVkTGlzdCA9IHNwZWMubGF6eUxvYWRlZExpc3Q7XG4gIGlmICh3YWl0Rm9yQW5pbWF0ZSAmJiBhbmltYXRpbmcpIHJldHVybiB7fTtcbiAgdmFyIGFuaW1hdGlvblNsaWRlID0gaW5kZXgsXG4gICAgICBmaW5hbFNsaWRlLFxuICAgICAgYW5pbWF0aW9uTGVmdCxcbiAgICAgIGZpbmFsTGVmdDtcbiAgdmFyIHN0YXRlID0ge30sXG4gICAgICBuZXh0U3RhdGUgPSB7fTtcbiAgdmFyIHRhcmdldFNsaWRlID0gaW5maW5pdGUgPyBpbmRleCA6IGNsYW1wKGluZGV4LCAwLCBzbGlkZUNvdW50IC0gMSk7XG5cbiAgaWYgKGZhZGUpIHtcbiAgICBpZiAoIWluZmluaXRlICYmIChpbmRleCA8IDAgfHwgaW5kZXggPj0gc2xpZGVDb3VudCkpIHJldHVybiB7fTtcblxuICAgIGlmIChpbmRleCA8IDApIHtcbiAgICAgIGFuaW1hdGlvblNsaWRlID0gaW5kZXggKyBzbGlkZUNvdW50O1xuICAgIH0gZWxzZSBpZiAoaW5kZXggPj0gc2xpZGVDb3VudCkge1xuICAgICAgYW5pbWF0aW9uU2xpZGUgPSBpbmRleCAtIHNsaWRlQ291bnQ7XG4gICAgfVxuXG4gICAgaWYgKGxhenlMb2FkICYmIGxhenlMb2FkZWRMaXN0LmluZGV4T2YoYW5pbWF0aW9uU2xpZGUpIDwgMCkge1xuICAgICAgbGF6eUxvYWRlZExpc3QgPSBsYXp5TG9hZGVkTGlzdC5jb25jYXQoYW5pbWF0aW9uU2xpZGUpO1xuICAgIH1cblxuICAgIHN0YXRlID0ge1xuICAgICAgYW5pbWF0aW5nOiB0cnVlLFxuICAgICAgY3VycmVudFNsaWRlOiBhbmltYXRpb25TbGlkZSxcbiAgICAgIGxhenlMb2FkZWRMaXN0OiBsYXp5TG9hZGVkTGlzdCxcbiAgICAgIHRhcmdldFNsaWRlOiBhbmltYXRpb25TbGlkZVxuICAgIH07XG4gICAgbmV4dFN0YXRlID0ge1xuICAgICAgYW5pbWF0aW5nOiBmYWxzZSxcbiAgICAgIHRhcmdldFNsaWRlOiBhbmltYXRpb25TbGlkZVxuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgZmluYWxTbGlkZSA9IGFuaW1hdGlvblNsaWRlO1xuXG4gICAgaWYgKGFuaW1hdGlvblNsaWRlIDwgMCkge1xuICAgICAgZmluYWxTbGlkZSA9IGFuaW1hdGlvblNsaWRlICsgc2xpZGVDb3VudDtcbiAgICAgIGlmICghaW5maW5pdGUpIGZpbmFsU2xpZGUgPSAwO2Vsc2UgaWYgKHNsaWRlQ291bnQgJSBzbGlkZXNUb1Njcm9sbCAhPT0gMCkgZmluYWxTbGlkZSA9IHNsaWRlQ291bnQgLSBzbGlkZUNvdW50ICUgc2xpZGVzVG9TY3JvbGw7XG4gICAgfSBlbHNlIGlmICghY2FuR29OZXh0KHNwZWMpICYmIGFuaW1hdGlvblNsaWRlID4gY3VycmVudFNsaWRlKSB7XG4gICAgICBhbmltYXRpb25TbGlkZSA9IGZpbmFsU2xpZGUgPSBjdXJyZW50U2xpZGU7XG4gICAgfSBlbHNlIGlmIChjZW50ZXJNb2RlICYmIGFuaW1hdGlvblNsaWRlID49IHNsaWRlQ291bnQpIHtcbiAgICAgIGFuaW1hdGlvblNsaWRlID0gaW5maW5pdGUgPyBzbGlkZUNvdW50IDogc2xpZGVDb3VudCAtIDE7XG4gICAgICBmaW5hbFNsaWRlID0gaW5maW5pdGUgPyAwIDogc2xpZGVDb3VudCAtIDE7XG4gICAgfSBlbHNlIGlmIChhbmltYXRpb25TbGlkZSA+PSBzbGlkZUNvdW50KSB7XG4gICAgICBmaW5hbFNsaWRlID0gYW5pbWF0aW9uU2xpZGUgLSBzbGlkZUNvdW50O1xuICAgICAgaWYgKCFpbmZpbml0ZSkgZmluYWxTbGlkZSA9IHNsaWRlQ291bnQgLSBzbGlkZXNUb1Nob3c7ZWxzZSBpZiAoc2xpZGVDb3VudCAlIHNsaWRlc1RvU2Nyb2xsICE9PSAwKSBmaW5hbFNsaWRlID0gMDtcbiAgICB9XG5cbiAgICBpZiAoIWluZmluaXRlICYmIGFuaW1hdGlvblNsaWRlICsgc2xpZGVzVG9TaG93ID49IHNsaWRlQ291bnQpIHtcbiAgICAgIGZpbmFsU2xpZGUgPSBzbGlkZUNvdW50IC0gc2xpZGVzVG9TaG93O1xuICAgIH1cblxuICAgIGFuaW1hdGlvbkxlZnQgPSBnZXRUcmFja0xlZnQoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzcGVjKSwge30sIHtcbiAgICAgIHNsaWRlSW5kZXg6IGFuaW1hdGlvblNsaWRlXG4gICAgfSkpO1xuICAgIGZpbmFsTGVmdCA9IGdldFRyYWNrTGVmdChfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHNwZWMpLCB7fSwge1xuICAgICAgc2xpZGVJbmRleDogZmluYWxTbGlkZVxuICAgIH0pKTtcblxuICAgIGlmICghaW5maW5pdGUpIHtcbiAgICAgIGlmIChhbmltYXRpb25MZWZ0ID09PSBmaW5hbExlZnQpIGFuaW1hdGlvblNsaWRlID0gZmluYWxTbGlkZTtcbiAgICAgIGFuaW1hdGlvbkxlZnQgPSBmaW5hbExlZnQ7XG4gICAgfVxuXG4gICAgaWYgKGxhenlMb2FkKSB7XG4gICAgICBsYXp5TG9hZGVkTGlzdCA9IGxhenlMb2FkZWRMaXN0LmNvbmNhdChnZXRPbkRlbWFuZExhenlTbGlkZXMoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzcGVjKSwge30sIHtcbiAgICAgICAgY3VycmVudFNsaWRlOiBhbmltYXRpb25TbGlkZVxuICAgICAgfSkpKTtcbiAgICB9XG5cbiAgICBpZiAoIXVzZUNTUykge1xuICAgICAgc3RhdGUgPSB7XG4gICAgICAgIGN1cnJlbnRTbGlkZTogZmluYWxTbGlkZSxcbiAgICAgICAgdHJhY2tTdHlsZTogZ2V0VHJhY2tDU1MoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzcGVjKSwge30sIHtcbiAgICAgICAgICBsZWZ0OiBmaW5hbExlZnRcbiAgICAgICAgfSkpLFxuICAgICAgICBsYXp5TG9hZGVkTGlzdDogbGF6eUxvYWRlZExpc3QsXG4gICAgICAgIHRhcmdldFNsaWRlOiB0YXJnZXRTbGlkZVxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RhdGUgPSB7XG4gICAgICAgIGFuaW1hdGluZzogdHJ1ZSxcbiAgICAgICAgY3VycmVudFNsaWRlOiBmaW5hbFNsaWRlLFxuICAgICAgICB0cmFja1N0eWxlOiBnZXRUcmFja0FuaW1hdGVDU1MoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzcGVjKSwge30sIHtcbiAgICAgICAgICBsZWZ0OiBhbmltYXRpb25MZWZ0XG4gICAgICAgIH0pKSxcbiAgICAgICAgbGF6eUxvYWRlZExpc3Q6IGxhenlMb2FkZWRMaXN0LFxuICAgICAgICB0YXJnZXRTbGlkZTogdGFyZ2V0U2xpZGVcbiAgICAgIH07XG4gICAgICBuZXh0U3RhdGUgPSB7XG4gICAgICAgIGFuaW1hdGluZzogZmFsc2UsXG4gICAgICAgIGN1cnJlbnRTbGlkZTogZmluYWxTbGlkZSxcbiAgICAgICAgdHJhY2tTdHlsZTogZ2V0VHJhY2tDU1MoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzcGVjKSwge30sIHtcbiAgICAgICAgICBsZWZ0OiBmaW5hbExlZnRcbiAgICAgICAgfSkpLFxuICAgICAgICBzd2lwZUxlZnQ6IG51bGwsXG4gICAgICAgIHRhcmdldFNsaWRlOiB0YXJnZXRTbGlkZVxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHN0YXRlOiBzdGF0ZSxcbiAgICBuZXh0U3RhdGU6IG5leHRTdGF0ZVxuICB9O1xufTtcblxuZXhwb3J0cy5zbGlkZUhhbmRsZXIgPSBzbGlkZUhhbmRsZXI7XG5cbnZhciBjaGFuZ2VTbGlkZSA9IGZ1bmN0aW9uIGNoYW5nZVNsaWRlKHNwZWMsIG9wdGlvbnMpIHtcbiAgdmFyIGluZGV4T2Zmc2V0LCBwcmV2aW91c0ludCwgc2xpZGVPZmZzZXQsIHVuZXZlbk9mZnNldCwgdGFyZ2V0U2xpZGU7XG4gIHZhciBzbGlkZXNUb1Njcm9sbCA9IHNwZWMuc2xpZGVzVG9TY3JvbGwsXG4gICAgICBzbGlkZXNUb1Nob3cgPSBzcGVjLnNsaWRlc1RvU2hvdyxcbiAgICAgIHNsaWRlQ291bnQgPSBzcGVjLnNsaWRlQ291bnQsXG4gICAgICBjdXJyZW50U2xpZGUgPSBzcGVjLmN1cnJlbnRTbGlkZSxcbiAgICAgIHByZXZpb3VzVGFyZ2V0U2xpZGUgPSBzcGVjLnRhcmdldFNsaWRlLFxuICAgICAgbGF6eUxvYWQgPSBzcGVjLmxhenlMb2FkLFxuICAgICAgaW5maW5pdGUgPSBzcGVjLmluZmluaXRlO1xuICB1bmV2ZW5PZmZzZXQgPSBzbGlkZUNvdW50ICUgc2xpZGVzVG9TY3JvbGwgIT09IDA7XG4gIGluZGV4T2Zmc2V0ID0gdW5ldmVuT2Zmc2V0ID8gMCA6IChzbGlkZUNvdW50IC0gY3VycmVudFNsaWRlKSAlIHNsaWRlc1RvU2Nyb2xsO1xuXG4gIGlmIChvcHRpb25zLm1lc3NhZ2UgPT09IFwicHJldmlvdXNcIikge1xuICAgIHNsaWRlT2Zmc2V0ID0gaW5kZXhPZmZzZXQgPT09IDAgPyBzbGlkZXNUb1Njcm9sbCA6IHNsaWRlc1RvU2hvdyAtIGluZGV4T2Zmc2V0O1xuICAgIHRhcmdldFNsaWRlID0gY3VycmVudFNsaWRlIC0gc2xpZGVPZmZzZXQ7XG5cbiAgICBpZiAobGF6eUxvYWQgJiYgIWluZmluaXRlKSB7XG4gICAgICBwcmV2aW91c0ludCA9IGN1cnJlbnRTbGlkZSAtIHNsaWRlT2Zmc2V0O1xuICAgICAgdGFyZ2V0U2xpZGUgPSBwcmV2aW91c0ludCA9PT0gLTEgPyBzbGlkZUNvdW50IC0gMSA6IHByZXZpb3VzSW50O1xuICAgIH1cblxuICAgIGlmICghaW5maW5pdGUpIHtcbiAgICAgIHRhcmdldFNsaWRlID0gcHJldmlvdXNUYXJnZXRTbGlkZSAtIHNsaWRlc1RvU2Nyb2xsO1xuICAgIH1cbiAgfSBlbHNlIGlmIChvcHRpb25zLm1lc3NhZ2UgPT09IFwibmV4dFwiKSB7XG4gICAgc2xpZGVPZmZzZXQgPSBpbmRleE9mZnNldCA9PT0gMCA/IHNsaWRlc1RvU2Nyb2xsIDogaW5kZXhPZmZzZXQ7XG4gICAgdGFyZ2V0U2xpZGUgPSBjdXJyZW50U2xpZGUgKyBzbGlkZU9mZnNldDtcblxuICAgIGlmIChsYXp5TG9hZCAmJiAhaW5maW5pdGUpIHtcbiAgICAgIHRhcmdldFNsaWRlID0gKGN1cnJlbnRTbGlkZSArIHNsaWRlc1RvU2Nyb2xsKSAlIHNsaWRlQ291bnQgKyBpbmRleE9mZnNldDtcbiAgICB9XG5cbiAgICBpZiAoIWluZmluaXRlKSB7XG4gICAgICB0YXJnZXRTbGlkZSA9IHByZXZpb3VzVGFyZ2V0U2xpZGUgKyBzbGlkZXNUb1Njcm9sbDtcbiAgICB9XG4gIH0gZWxzZSBpZiAob3B0aW9ucy5tZXNzYWdlID09PSBcImRvdHNcIikge1xuICAgIC8vIENsaWNrIG9uIGRvdHNcbiAgICB0YXJnZXRTbGlkZSA9IG9wdGlvbnMuaW5kZXggKiBvcHRpb25zLnNsaWRlc1RvU2Nyb2xsO1xuICB9IGVsc2UgaWYgKG9wdGlvbnMubWVzc2FnZSA9PT0gXCJjaGlsZHJlblwiKSB7XG4gICAgLy8gQ2xpY2sgb24gdGhlIHNsaWRlc1xuICAgIHRhcmdldFNsaWRlID0gb3B0aW9ucy5pbmRleDtcblxuICAgIGlmIChpbmZpbml0ZSkge1xuICAgICAgdmFyIGRpcmVjdGlvbiA9IHNpYmxpbmdEaXJlY3Rpb24oX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzcGVjKSwge30sIHtcbiAgICAgICAgdGFyZ2V0U2xpZGU6IHRhcmdldFNsaWRlXG4gICAgICB9KSk7XG5cbiAgICAgIGlmICh0YXJnZXRTbGlkZSA+IG9wdGlvbnMuY3VycmVudFNsaWRlICYmIGRpcmVjdGlvbiA9PT0gXCJsZWZ0XCIpIHtcbiAgICAgICAgdGFyZ2V0U2xpZGUgPSB0YXJnZXRTbGlkZSAtIHNsaWRlQ291bnQ7XG4gICAgICB9IGVsc2UgaWYgKHRhcmdldFNsaWRlIDwgb3B0aW9ucy5jdXJyZW50U2xpZGUgJiYgZGlyZWN0aW9uID09PSBcInJpZ2h0XCIpIHtcbiAgICAgICAgdGFyZ2V0U2xpZGUgPSB0YXJnZXRTbGlkZSArIHNsaWRlQ291bnQ7XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2UgaWYgKG9wdGlvbnMubWVzc2FnZSA9PT0gXCJpbmRleFwiKSB7XG4gICAgdGFyZ2V0U2xpZGUgPSBOdW1iZXIob3B0aW9ucy5pbmRleCk7XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0U2xpZGU7XG59O1xuXG5leHBvcnRzLmNoYW5nZVNsaWRlID0gY2hhbmdlU2xpZGU7XG5cbnZhciBrZXlIYW5kbGVyID0gZnVuY3Rpb24ga2V5SGFuZGxlcihlLCBhY2Nlc3NpYmlsaXR5LCBydGwpIHtcbiAgaWYgKGUudGFyZ2V0LnRhZ05hbWUubWF0Y2goXCJURVhUQVJFQXxJTlBVVHxTRUxFQ1RcIikgfHwgIWFjY2Vzc2liaWxpdHkpIHJldHVybiBcIlwiO1xuICBpZiAoZS5rZXlDb2RlID09PSAzNykgcmV0dXJuIHJ0bCA/IFwibmV4dFwiIDogXCJwcmV2aW91c1wiO1xuICBpZiAoZS5rZXlDb2RlID09PSAzOSkgcmV0dXJuIHJ0bCA/IFwicHJldmlvdXNcIiA6IFwibmV4dFwiO1xuICByZXR1cm4gXCJcIjtcbn07XG5cbmV4cG9ydHMua2V5SGFuZGxlciA9IGtleUhhbmRsZXI7XG5cbnZhciBzd2lwZVN0YXJ0ID0gZnVuY3Rpb24gc3dpcGVTdGFydChlLCBzd2lwZSwgZHJhZ2dhYmxlKSB7XG4gIGUudGFyZ2V0LnRhZ05hbWUgPT09IFwiSU1HXCIgJiYgc2FmZVByZXZlbnREZWZhdWx0KGUpO1xuICBpZiAoIXN3aXBlIHx8ICFkcmFnZ2FibGUgJiYgZS50eXBlLmluZGV4T2YoXCJtb3VzZVwiKSAhPT0gLTEpIHJldHVybiBcIlwiO1xuICByZXR1cm4ge1xuICAgIGRyYWdnaW5nOiB0cnVlLFxuICAgIHRvdWNoT2JqZWN0OiB7XG4gICAgICBzdGFydFg6IGUudG91Y2hlcyA/IGUudG91Y2hlc1swXS5wYWdlWCA6IGUuY2xpZW50WCxcbiAgICAgIHN0YXJ0WTogZS50b3VjaGVzID8gZS50b3VjaGVzWzBdLnBhZ2VZIDogZS5jbGllbnRZLFxuICAgICAgY3VyWDogZS50b3VjaGVzID8gZS50b3VjaGVzWzBdLnBhZ2VYIDogZS5jbGllbnRYLFxuICAgICAgY3VyWTogZS50b3VjaGVzID8gZS50b3VjaGVzWzBdLnBhZ2VZIDogZS5jbGllbnRZXG4gICAgfVxuICB9O1xufTtcblxuZXhwb3J0cy5zd2lwZVN0YXJ0ID0gc3dpcGVTdGFydDtcblxudmFyIHN3aXBlTW92ZSA9IGZ1bmN0aW9uIHN3aXBlTW92ZShlLCBzcGVjKSB7XG4gIC8vIHNwZWMgYWxzbyBjb250YWlucywgdHJhY2tSZWYgYW5kIHNsaWRlSW5kZXhcbiAgdmFyIHNjcm9sbGluZyA9IHNwZWMuc2Nyb2xsaW5nLFxuICAgICAgYW5pbWF0aW5nID0gc3BlYy5hbmltYXRpbmcsXG4gICAgICB2ZXJ0aWNhbCA9IHNwZWMudmVydGljYWwsXG4gICAgICBzd2lwZVRvU2xpZGUgPSBzcGVjLnN3aXBlVG9TbGlkZSxcbiAgICAgIHZlcnRpY2FsU3dpcGluZyA9IHNwZWMudmVydGljYWxTd2lwaW5nLFxuICAgICAgcnRsID0gc3BlYy5ydGwsXG4gICAgICBjdXJyZW50U2xpZGUgPSBzcGVjLmN1cnJlbnRTbGlkZSxcbiAgICAgIGVkZ2VGcmljdGlvbiA9IHNwZWMuZWRnZUZyaWN0aW9uLFxuICAgICAgZWRnZURyYWdnZWQgPSBzcGVjLmVkZ2VEcmFnZ2VkLFxuICAgICAgb25FZGdlID0gc3BlYy5vbkVkZ2UsXG4gICAgICBzd2lwZWQgPSBzcGVjLnN3aXBlZCxcbiAgICAgIHN3aXBpbmcgPSBzcGVjLnN3aXBpbmcsXG4gICAgICBzbGlkZUNvdW50ID0gc3BlYy5zbGlkZUNvdW50LFxuICAgICAgc2xpZGVzVG9TY3JvbGwgPSBzcGVjLnNsaWRlc1RvU2Nyb2xsLFxuICAgICAgaW5maW5pdGUgPSBzcGVjLmluZmluaXRlLFxuICAgICAgdG91Y2hPYmplY3QgPSBzcGVjLnRvdWNoT2JqZWN0LFxuICAgICAgc3dpcGVFdmVudCA9IHNwZWMuc3dpcGVFdmVudCxcbiAgICAgIGxpc3RIZWlnaHQgPSBzcGVjLmxpc3RIZWlnaHQsXG4gICAgICBsaXN0V2lkdGggPSBzcGVjLmxpc3RXaWR0aDtcbiAgaWYgKHNjcm9sbGluZykgcmV0dXJuO1xuICBpZiAoYW5pbWF0aW5nKSByZXR1cm4gc2FmZVByZXZlbnREZWZhdWx0KGUpO1xuICBpZiAodmVydGljYWwgJiYgc3dpcGVUb1NsaWRlICYmIHZlcnRpY2FsU3dpcGluZykgc2FmZVByZXZlbnREZWZhdWx0KGUpO1xuICB2YXIgc3dpcGVMZWZ0LFxuICAgICAgc3RhdGUgPSB7fTtcbiAgdmFyIGN1ckxlZnQgPSBnZXRUcmFja0xlZnQoc3BlYyk7XG4gIHRvdWNoT2JqZWN0LmN1clggPSBlLnRvdWNoZXMgPyBlLnRvdWNoZXNbMF0ucGFnZVggOiBlLmNsaWVudFg7XG4gIHRvdWNoT2JqZWN0LmN1clkgPSBlLnRvdWNoZXMgPyBlLnRvdWNoZXNbMF0ucGFnZVkgOiBlLmNsaWVudFk7XG4gIHRvdWNoT2JqZWN0LnN3aXBlTGVuZ3RoID0gTWF0aC5yb3VuZChNYXRoLnNxcnQoTWF0aC5wb3codG91Y2hPYmplY3QuY3VyWCAtIHRvdWNoT2JqZWN0LnN0YXJ0WCwgMikpKTtcbiAgdmFyIHZlcnRpY2FsU3dpcGVMZW5ndGggPSBNYXRoLnJvdW5kKE1hdGguc3FydChNYXRoLnBvdyh0b3VjaE9iamVjdC5jdXJZIC0gdG91Y2hPYmplY3Quc3RhcnRZLCAyKSkpO1xuXG4gIGlmICghdmVydGljYWxTd2lwaW5nICYmICFzd2lwaW5nICYmIHZlcnRpY2FsU3dpcGVMZW5ndGggPiAxMCkge1xuICAgIHJldHVybiB7XG4gICAgICBzY3JvbGxpbmc6IHRydWVcbiAgICB9O1xuICB9XG5cbiAgaWYgKHZlcnRpY2FsU3dpcGluZykgdG91Y2hPYmplY3Quc3dpcGVMZW5ndGggPSB2ZXJ0aWNhbFN3aXBlTGVuZ3RoO1xuICB2YXIgcG9zaXRpb25PZmZzZXQgPSAoIXJ0bCA/IDEgOiAtMSkgKiAodG91Y2hPYmplY3QuY3VyWCA+IHRvdWNoT2JqZWN0LnN0YXJ0WCA/IDEgOiAtMSk7XG4gIGlmICh2ZXJ0aWNhbFN3aXBpbmcpIHBvc2l0aW9uT2Zmc2V0ID0gdG91Y2hPYmplY3QuY3VyWSA+IHRvdWNoT2JqZWN0LnN0YXJ0WSA/IDEgOiAtMTtcbiAgdmFyIGRvdENvdW50ID0gTWF0aC5jZWlsKHNsaWRlQ291bnQgLyBzbGlkZXNUb1Njcm9sbCk7XG4gIHZhciBzd2lwZURpcmVjdGlvbiA9IGdldFN3aXBlRGlyZWN0aW9uKHNwZWMudG91Y2hPYmplY3QsIHZlcnRpY2FsU3dpcGluZyk7XG4gIHZhciB0b3VjaFN3aXBlTGVuZ3RoID0gdG91Y2hPYmplY3Quc3dpcGVMZW5ndGg7XG5cbiAgaWYgKCFpbmZpbml0ZSkge1xuICAgIGlmIChjdXJyZW50U2xpZGUgPT09IDAgJiYgKHN3aXBlRGlyZWN0aW9uID09PSBcInJpZ2h0XCIgfHwgc3dpcGVEaXJlY3Rpb24gPT09IFwiZG93blwiKSB8fCBjdXJyZW50U2xpZGUgKyAxID49IGRvdENvdW50ICYmIChzd2lwZURpcmVjdGlvbiA9PT0gXCJsZWZ0XCIgfHwgc3dpcGVEaXJlY3Rpb24gPT09IFwidXBcIikgfHwgIWNhbkdvTmV4dChzcGVjKSAmJiAoc3dpcGVEaXJlY3Rpb24gPT09IFwibGVmdFwiIHx8IHN3aXBlRGlyZWN0aW9uID09PSBcInVwXCIpKSB7XG4gICAgICB0b3VjaFN3aXBlTGVuZ3RoID0gdG91Y2hPYmplY3Quc3dpcGVMZW5ndGggKiBlZGdlRnJpY3Rpb247XG5cbiAgICAgIGlmIChlZGdlRHJhZ2dlZCA9PT0gZmFsc2UgJiYgb25FZGdlKSB7XG4gICAgICAgIG9uRWRnZShzd2lwZURpcmVjdGlvbik7XG4gICAgICAgIHN0YXRlW1wiZWRnZURyYWdnZWRcIl0gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmICghc3dpcGVkICYmIHN3aXBlRXZlbnQpIHtcbiAgICBzd2lwZUV2ZW50KHN3aXBlRGlyZWN0aW9uKTtcbiAgICBzdGF0ZVtcInN3aXBlZFwiXSA9IHRydWU7XG4gIH1cblxuICBpZiAoIXZlcnRpY2FsKSB7XG4gICAgaWYgKCFydGwpIHtcbiAgICAgIHN3aXBlTGVmdCA9IGN1ckxlZnQgKyB0b3VjaFN3aXBlTGVuZ3RoICogcG9zaXRpb25PZmZzZXQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN3aXBlTGVmdCA9IGN1ckxlZnQgLSB0b3VjaFN3aXBlTGVuZ3RoICogcG9zaXRpb25PZmZzZXQ7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHN3aXBlTGVmdCA9IGN1ckxlZnQgKyB0b3VjaFN3aXBlTGVuZ3RoICogKGxpc3RIZWlnaHQgLyBsaXN0V2lkdGgpICogcG9zaXRpb25PZmZzZXQ7XG4gIH1cblxuICBpZiAodmVydGljYWxTd2lwaW5nKSB7XG4gICAgc3dpcGVMZWZ0ID0gY3VyTGVmdCArIHRvdWNoU3dpcGVMZW5ndGggKiBwb3NpdGlvbk9mZnNldDtcbiAgfVxuXG4gIHN0YXRlID0gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzdGF0ZSksIHt9LCB7XG4gICAgdG91Y2hPYmplY3Q6IHRvdWNoT2JqZWN0LFxuICAgIHN3aXBlTGVmdDogc3dpcGVMZWZ0LFxuICAgIHRyYWNrU3R5bGU6IGdldFRyYWNrQ1NTKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgc3BlYyksIHt9LCB7XG4gICAgICBsZWZ0OiBzd2lwZUxlZnRcbiAgICB9KSlcbiAgfSk7XG5cbiAgaWYgKE1hdGguYWJzKHRvdWNoT2JqZWN0LmN1clggLSB0b3VjaE9iamVjdC5zdGFydFgpIDwgTWF0aC5hYnModG91Y2hPYmplY3QuY3VyWSAtIHRvdWNoT2JqZWN0LnN0YXJ0WSkgKiAwLjgpIHtcbiAgICByZXR1cm4gc3RhdGU7XG4gIH1cblxuICBpZiAodG91Y2hPYmplY3Quc3dpcGVMZW5ndGggPiAxMCkge1xuICAgIHN0YXRlW1wic3dpcGluZ1wiXSA9IHRydWU7XG4gICAgc2FmZVByZXZlbnREZWZhdWx0KGUpO1xuICB9XG5cbiAgcmV0dXJuIHN0YXRlO1xufTtcblxuZXhwb3J0cy5zd2lwZU1vdmUgPSBzd2lwZU1vdmU7XG5cbnZhciBzd2lwZUVuZCA9IGZ1bmN0aW9uIHN3aXBlRW5kKGUsIHNwZWMpIHtcbiAgdmFyIGRyYWdnaW5nID0gc3BlYy5kcmFnZ2luZyxcbiAgICAgIHN3aXBlID0gc3BlYy5zd2lwZSxcbiAgICAgIHRvdWNoT2JqZWN0ID0gc3BlYy50b3VjaE9iamVjdCxcbiAgICAgIGxpc3RXaWR0aCA9IHNwZWMubGlzdFdpZHRoLFxuICAgICAgdG91Y2hUaHJlc2hvbGQgPSBzcGVjLnRvdWNoVGhyZXNob2xkLFxuICAgICAgdmVydGljYWxTd2lwaW5nID0gc3BlYy52ZXJ0aWNhbFN3aXBpbmcsXG4gICAgICBsaXN0SGVpZ2h0ID0gc3BlYy5saXN0SGVpZ2h0LFxuICAgICAgc3dpcGVUb1NsaWRlID0gc3BlYy5zd2lwZVRvU2xpZGUsXG4gICAgICBzY3JvbGxpbmcgPSBzcGVjLnNjcm9sbGluZyxcbiAgICAgIG9uU3dpcGUgPSBzcGVjLm9uU3dpcGUsXG4gICAgICB0YXJnZXRTbGlkZSA9IHNwZWMudGFyZ2V0U2xpZGUsXG4gICAgICBjdXJyZW50U2xpZGUgPSBzcGVjLmN1cnJlbnRTbGlkZSxcbiAgICAgIGluZmluaXRlID0gc3BlYy5pbmZpbml0ZTtcblxuICBpZiAoIWRyYWdnaW5nKSB7XG4gICAgaWYgKHN3aXBlKSBzYWZlUHJldmVudERlZmF1bHQoZSk7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgdmFyIG1pblN3aXBlID0gdmVydGljYWxTd2lwaW5nID8gbGlzdEhlaWdodCAvIHRvdWNoVGhyZXNob2xkIDogbGlzdFdpZHRoIC8gdG91Y2hUaHJlc2hvbGQ7XG4gIHZhciBzd2lwZURpcmVjdGlvbiA9IGdldFN3aXBlRGlyZWN0aW9uKHRvdWNoT2JqZWN0LCB2ZXJ0aWNhbFN3aXBpbmcpOyAvLyByZXNldCB0aGUgc3RhdGUgb2YgdG91Y2ggcmVsYXRlZCBzdGF0ZSB2YXJpYWJsZXMuXG5cbiAgdmFyIHN0YXRlID0ge1xuICAgIGRyYWdnaW5nOiBmYWxzZSxcbiAgICBlZGdlRHJhZ2dlZDogZmFsc2UsXG4gICAgc2Nyb2xsaW5nOiBmYWxzZSxcbiAgICBzd2lwaW5nOiBmYWxzZSxcbiAgICBzd2lwZWQ6IGZhbHNlLFxuICAgIHN3aXBlTGVmdDogbnVsbCxcbiAgICB0b3VjaE9iamVjdDoge31cbiAgfTtcblxuICBpZiAoc2Nyb2xsaW5nKSB7XG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG5cbiAgaWYgKCF0b3VjaE9iamVjdC5zd2lwZUxlbmd0aCkge1xuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuXG4gIGlmICh0b3VjaE9iamVjdC5zd2lwZUxlbmd0aCA+IG1pblN3aXBlKSB7XG4gICAgc2FmZVByZXZlbnREZWZhdWx0KGUpO1xuXG4gICAgaWYgKG9uU3dpcGUpIHtcbiAgICAgIG9uU3dpcGUoc3dpcGVEaXJlY3Rpb24pO1xuICAgIH1cblxuICAgIHZhciBzbGlkZUNvdW50LCBuZXdTbGlkZTtcbiAgICB2YXIgYWN0aXZlU2xpZGUgPSBpbmZpbml0ZSA/IGN1cnJlbnRTbGlkZSA6IHRhcmdldFNsaWRlO1xuXG4gICAgc3dpdGNoIChzd2lwZURpcmVjdGlvbikge1xuICAgICAgY2FzZSBcImxlZnRcIjpcbiAgICAgIGNhc2UgXCJ1cFwiOlxuICAgICAgICBuZXdTbGlkZSA9IGFjdGl2ZVNsaWRlICsgZ2V0U2xpZGVDb3VudChzcGVjKTtcbiAgICAgICAgc2xpZGVDb3VudCA9IHN3aXBlVG9TbGlkZSA/IGNoZWNrTmF2aWdhYmxlKHNwZWMsIG5ld1NsaWRlKSA6IG5ld1NsaWRlO1xuICAgICAgICBzdGF0ZVtcImN1cnJlbnREaXJlY3Rpb25cIl0gPSAwO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBcInJpZ2h0XCI6XG4gICAgICBjYXNlIFwiZG93blwiOlxuICAgICAgICBuZXdTbGlkZSA9IGFjdGl2ZVNsaWRlIC0gZ2V0U2xpZGVDb3VudChzcGVjKTtcbiAgICAgICAgc2xpZGVDb3VudCA9IHN3aXBlVG9TbGlkZSA/IGNoZWNrTmF2aWdhYmxlKHNwZWMsIG5ld1NsaWRlKSA6IG5ld1NsaWRlO1xuICAgICAgICBzdGF0ZVtcImN1cnJlbnREaXJlY3Rpb25cIl0gPSAxO1xuICAgICAgICBicmVhaztcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgc2xpZGVDb3VudCA9IGFjdGl2ZVNsaWRlO1xuICAgIH1cblxuICAgIHN0YXRlW1widHJpZ2dlclNsaWRlSGFuZGxlclwiXSA9IHNsaWRlQ291bnQ7XG4gIH0gZWxzZSB7XG4gICAgLy8gQWRqdXN0IHRoZSB0cmFjayBiYWNrIHRvIGl0J3Mgb3JpZ2luYWwgcG9zaXRpb24uXG4gICAgdmFyIGN1cnJlbnRMZWZ0ID0gZ2V0VHJhY2tMZWZ0KHNwZWMpO1xuICAgIHN0YXRlW1widHJhY2tTdHlsZVwiXSA9IGdldFRyYWNrQW5pbWF0ZUNTUyhfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHNwZWMpLCB7fSwge1xuICAgICAgbGVmdDogY3VycmVudExlZnRcbiAgICB9KSk7XG4gIH1cblxuICByZXR1cm4gc3RhdGU7XG59O1xuXG5leHBvcnRzLnN3aXBlRW5kID0gc3dpcGVFbmQ7XG5cbnZhciBnZXROYXZpZ2FibGVJbmRleGVzID0gZnVuY3Rpb24gZ2V0TmF2aWdhYmxlSW5kZXhlcyhzcGVjKSB7XG4gIHZhciBtYXggPSBzcGVjLmluZmluaXRlID8gc3BlYy5zbGlkZUNvdW50ICogMiA6IHNwZWMuc2xpZGVDb3VudDtcbiAgdmFyIGJyZWFrcG9pbnQgPSBzcGVjLmluZmluaXRlID8gc3BlYy5zbGlkZXNUb1Nob3cgKiAtMSA6IDA7XG4gIHZhciBjb3VudGVyID0gc3BlYy5pbmZpbml0ZSA/IHNwZWMuc2xpZGVzVG9TaG93ICogLTEgOiAwO1xuICB2YXIgaW5kZXhlcyA9IFtdO1xuXG4gIHdoaWxlIChicmVha3BvaW50IDwgbWF4KSB7XG4gICAgaW5kZXhlcy5wdXNoKGJyZWFrcG9pbnQpO1xuICAgIGJyZWFrcG9pbnQgPSBjb3VudGVyICsgc3BlYy5zbGlkZXNUb1Njcm9sbDtcbiAgICBjb3VudGVyICs9IE1hdGgubWluKHNwZWMuc2xpZGVzVG9TY3JvbGwsIHNwZWMuc2xpZGVzVG9TaG93KTtcbiAgfVxuXG4gIHJldHVybiBpbmRleGVzO1xufTtcblxuZXhwb3J0cy5nZXROYXZpZ2FibGVJbmRleGVzID0gZ2V0TmF2aWdhYmxlSW5kZXhlcztcblxudmFyIGNoZWNrTmF2aWdhYmxlID0gZnVuY3Rpb24gY2hlY2tOYXZpZ2FibGUoc3BlYywgaW5kZXgpIHtcbiAgdmFyIG5hdmlnYWJsZXMgPSBnZXROYXZpZ2FibGVJbmRleGVzKHNwZWMpO1xuICB2YXIgcHJldk5hdmlnYWJsZSA9IDA7XG5cbiAgaWYgKGluZGV4ID4gbmF2aWdhYmxlc1tuYXZpZ2FibGVzLmxlbmd0aCAtIDFdKSB7XG4gICAgaW5kZXggPSBuYXZpZ2FibGVzW25hdmlnYWJsZXMubGVuZ3RoIC0gMV07XG4gIH0gZWxzZSB7XG4gICAgZm9yICh2YXIgbiBpbiBuYXZpZ2FibGVzKSB7XG4gICAgICBpZiAoaW5kZXggPCBuYXZpZ2FibGVzW25dKSB7XG4gICAgICAgIGluZGV4ID0gcHJldk5hdmlnYWJsZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIHByZXZOYXZpZ2FibGUgPSBuYXZpZ2FibGVzW25dO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBpbmRleDtcbn07XG5cbmV4cG9ydHMuY2hlY2tOYXZpZ2FibGUgPSBjaGVja05hdmlnYWJsZTtcblxudmFyIGdldFNsaWRlQ291bnQgPSBmdW5jdGlvbiBnZXRTbGlkZUNvdW50KHNwZWMpIHtcbiAgdmFyIGNlbnRlck9mZnNldCA9IHNwZWMuY2VudGVyTW9kZSA/IHNwZWMuc2xpZGVXaWR0aCAqIE1hdGguZmxvb3Ioc3BlYy5zbGlkZXNUb1Nob3cgLyAyKSA6IDA7XG5cbiAgaWYgKHNwZWMuc3dpcGVUb1NsaWRlKSB7XG4gICAgdmFyIHN3aXBlZFNsaWRlO1xuICAgIHZhciBzbGlja0xpc3QgPSBzcGVjLmxpc3RSZWY7XG4gICAgdmFyIHNsaWRlcyA9IHNsaWNrTGlzdC5xdWVyeVNlbGVjdG9yQWxsICYmIHNsaWNrTGlzdC5xdWVyeVNlbGVjdG9yQWxsKFwiLnNsaWNrLXNsaWRlXCIpIHx8IFtdO1xuICAgIEFycmF5LmZyb20oc2xpZGVzKS5ldmVyeShmdW5jdGlvbiAoc2xpZGUpIHtcbiAgICAgIGlmICghc3BlYy52ZXJ0aWNhbCkge1xuICAgICAgICBpZiAoc2xpZGUub2Zmc2V0TGVmdCAtIGNlbnRlck9mZnNldCArIGdldFdpZHRoKHNsaWRlKSAvIDIgPiBzcGVjLnN3aXBlTGVmdCAqIC0xKSB7XG4gICAgICAgICAgc3dpcGVkU2xpZGUgPSBzbGlkZTtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChzbGlkZS5vZmZzZXRUb3AgKyBnZXRIZWlnaHQoc2xpZGUpIC8gMiA+IHNwZWMuc3dpcGVMZWZ0ICogLTEpIHtcbiAgICAgICAgICBzd2lwZWRTbGlkZSA9IHNsaWRlO1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9KTtcblxuICAgIGlmICghc3dpcGVkU2xpZGUpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIHZhciBjdXJyZW50SW5kZXggPSBzcGVjLnJ0bCA9PT0gdHJ1ZSA/IHNwZWMuc2xpZGVDb3VudCAtIHNwZWMuY3VycmVudFNsaWRlIDogc3BlYy5jdXJyZW50U2xpZGU7XG4gICAgdmFyIHNsaWRlc1RyYXZlcnNlZCA9IE1hdGguYWJzKHN3aXBlZFNsaWRlLmRhdGFzZXQuaW5kZXggLSBjdXJyZW50SW5kZXgpIHx8IDE7XG4gICAgcmV0dXJuIHNsaWRlc1RyYXZlcnNlZDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gc3BlYy5zbGlkZXNUb1Njcm9sbDtcbiAgfVxufTtcblxuZXhwb3J0cy5nZXRTbGlkZUNvdW50ID0gZ2V0U2xpZGVDb3VudDtcblxudmFyIGNoZWNrU3BlY0tleXMgPSBmdW5jdGlvbiBjaGVja1NwZWNLZXlzKHNwZWMsIGtleXNBcnJheSkge1xuICByZXR1cm4ga2V5c0FycmF5LnJlZHVjZShmdW5jdGlvbiAodmFsdWUsIGtleSkge1xuICAgIHJldHVybiB2YWx1ZSAmJiBzcGVjLmhhc093blByb3BlcnR5KGtleSk7XG4gIH0sIHRydWUpID8gbnVsbCA6IGNvbnNvbGUuZXJyb3IoXCJLZXlzIE1pc3Npbmc6XCIsIHNwZWMpO1xufTtcblxuZXhwb3J0cy5jaGVja1NwZWNLZXlzID0gY2hlY2tTcGVjS2V5cztcblxudmFyIGdldFRyYWNrQ1NTID0gZnVuY3Rpb24gZ2V0VHJhY2tDU1Moc3BlYykge1xuICBjaGVja1NwZWNLZXlzKHNwZWMsIFtcImxlZnRcIiwgXCJ2YXJpYWJsZVdpZHRoXCIsIFwic2xpZGVDb3VudFwiLCBcInNsaWRlc1RvU2hvd1wiLCBcInNsaWRlV2lkdGhcIl0pO1xuICB2YXIgdHJhY2tXaWR0aCwgdHJhY2tIZWlnaHQ7XG4gIHZhciB0cmFja0NoaWxkcmVuID0gc3BlYy5zbGlkZUNvdW50ICsgMiAqIHNwZWMuc2xpZGVzVG9TaG93O1xuXG4gIGlmICghc3BlYy52ZXJ0aWNhbCkge1xuICAgIHRyYWNrV2lkdGggPSBnZXRUb3RhbFNsaWRlcyhzcGVjKSAqIHNwZWMuc2xpZGVXaWR0aDtcbiAgfSBlbHNlIHtcbiAgICB0cmFja0hlaWdodCA9IHRyYWNrQ2hpbGRyZW4gKiBzcGVjLnNsaWRlSGVpZ2h0O1xuICB9XG5cbiAgdmFyIHN0eWxlID0ge1xuICAgIG9wYWNpdHk6IDEsXG4gICAgdHJhbnNpdGlvbjogXCJcIixcbiAgICBXZWJraXRUcmFuc2l0aW9uOiBcIlwiXG4gIH07XG5cbiAgaWYgKHNwZWMudXNlVHJhbnNmb3JtKSB7XG4gICAgdmFyIFdlYmtpdFRyYW5zZm9ybSA9ICFzcGVjLnZlcnRpY2FsID8gXCJ0cmFuc2xhdGUzZChcIiArIHNwZWMubGVmdCArIFwicHgsIDBweCwgMHB4KVwiIDogXCJ0cmFuc2xhdGUzZCgwcHgsIFwiICsgc3BlYy5sZWZ0ICsgXCJweCwgMHB4KVwiO1xuICAgIHZhciB0cmFuc2Zvcm0gPSAhc3BlYy52ZXJ0aWNhbCA/IFwidHJhbnNsYXRlM2QoXCIgKyBzcGVjLmxlZnQgKyBcInB4LCAwcHgsIDBweClcIiA6IFwidHJhbnNsYXRlM2QoMHB4LCBcIiArIHNwZWMubGVmdCArIFwicHgsIDBweClcIjtcbiAgICB2YXIgbXNUcmFuc2Zvcm0gPSAhc3BlYy52ZXJ0aWNhbCA/IFwidHJhbnNsYXRlWChcIiArIHNwZWMubGVmdCArIFwicHgpXCIgOiBcInRyYW5zbGF0ZVkoXCIgKyBzcGVjLmxlZnQgKyBcInB4KVwiO1xuICAgIHN0eWxlID0gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzdHlsZSksIHt9LCB7XG4gICAgICBXZWJraXRUcmFuc2Zvcm06IFdlYmtpdFRyYW5zZm9ybSxcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNmb3JtLFxuICAgICAgbXNUcmFuc2Zvcm06IG1zVHJhbnNmb3JtXG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgaWYgKHNwZWMudmVydGljYWwpIHtcbiAgICAgIHN0eWxlW1widG9wXCJdID0gc3BlYy5sZWZ0O1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHlsZVtcImxlZnRcIl0gPSBzcGVjLmxlZnQ7XG4gICAgfVxuICB9XG5cbiAgaWYgKHNwZWMuZmFkZSkgc3R5bGUgPSB7XG4gICAgb3BhY2l0eTogMVxuICB9O1xuICBpZiAodHJhY2tXaWR0aCkgc3R5bGUud2lkdGggPSB0cmFja1dpZHRoO1xuICBpZiAodHJhY2tIZWlnaHQpIHN0eWxlLmhlaWdodCA9IHRyYWNrSGVpZ2h0OyAvLyBGYWxsYmFjayBmb3IgSUU4XG5cbiAgaWYgKHdpbmRvdyAmJiAhd2luZG93LmFkZEV2ZW50TGlzdGVuZXIgJiYgd2luZG93LmF0dGFjaEV2ZW50KSB7XG4gICAgaWYgKCFzcGVjLnZlcnRpY2FsKSB7XG4gICAgICBzdHlsZS5tYXJnaW5MZWZ0ID0gc3BlYy5sZWZ0ICsgXCJweFwiO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHlsZS5tYXJnaW5Ub3AgPSBzcGVjLmxlZnQgKyBcInB4XCI7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0eWxlO1xufTtcblxuZXhwb3J0cy5nZXRUcmFja0NTUyA9IGdldFRyYWNrQ1NTO1xuXG52YXIgZ2V0VHJhY2tBbmltYXRlQ1NTID0gZnVuY3Rpb24gZ2V0VHJhY2tBbmltYXRlQ1NTKHNwZWMpIHtcbiAgY2hlY2tTcGVjS2V5cyhzcGVjLCBbXCJsZWZ0XCIsIFwidmFyaWFibGVXaWR0aFwiLCBcInNsaWRlQ291bnRcIiwgXCJzbGlkZXNUb1Nob3dcIiwgXCJzbGlkZVdpZHRoXCIsIFwic3BlZWRcIiwgXCJjc3NFYXNlXCJdKTtcbiAgdmFyIHN0eWxlID0gZ2V0VHJhY2tDU1Moc3BlYyk7IC8vIHVzZUNTUyBpcyB0cnVlIGJ5IGRlZmF1bHQgc28gaXQgY2FuIGJlIHVuZGVmaW5lZFxuXG4gIGlmIChzcGVjLnVzZVRyYW5zZm9ybSkge1xuICAgIHN0eWxlLldlYmtpdFRyYW5zaXRpb24gPSBcIi13ZWJraXQtdHJhbnNmb3JtIFwiICsgc3BlYy5zcGVlZCArIFwibXMgXCIgKyBzcGVjLmNzc0Vhc2U7XG4gICAgc3R5bGUudHJhbnNpdGlvbiA9IFwidHJhbnNmb3JtIFwiICsgc3BlYy5zcGVlZCArIFwibXMgXCIgKyBzcGVjLmNzc0Vhc2U7XG4gIH0gZWxzZSB7XG4gICAgaWYgKHNwZWMudmVydGljYWwpIHtcbiAgICAgIHN0eWxlLnRyYW5zaXRpb24gPSBcInRvcCBcIiArIHNwZWMuc3BlZWQgKyBcIm1zIFwiICsgc3BlYy5jc3NFYXNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHlsZS50cmFuc2l0aW9uID0gXCJsZWZ0IFwiICsgc3BlYy5zcGVlZCArIFwibXMgXCIgKyBzcGVjLmNzc0Vhc2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0eWxlO1xufTtcblxuZXhwb3J0cy5nZXRUcmFja0FuaW1hdGVDU1MgPSBnZXRUcmFja0FuaW1hdGVDU1M7XG5cbnZhciBnZXRUcmFja0xlZnQgPSBmdW5jdGlvbiBnZXRUcmFja0xlZnQoc3BlYykge1xuICBpZiAoc3BlYy51bnNsaWNrKSB7XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICBjaGVja1NwZWNLZXlzKHNwZWMsIFtcInNsaWRlSW5kZXhcIiwgXCJ0cmFja1JlZlwiLCBcImluZmluaXRlXCIsIFwiY2VudGVyTW9kZVwiLCBcInNsaWRlQ291bnRcIiwgXCJzbGlkZXNUb1Nob3dcIiwgXCJzbGlkZXNUb1Njcm9sbFwiLCBcInNsaWRlV2lkdGhcIiwgXCJsaXN0V2lkdGhcIiwgXCJ2YXJpYWJsZVdpZHRoXCIsIFwic2xpZGVIZWlnaHRcIl0pO1xuICB2YXIgc2xpZGVJbmRleCA9IHNwZWMuc2xpZGVJbmRleCxcbiAgICAgIHRyYWNrUmVmID0gc3BlYy50cmFja1JlZixcbiAgICAgIGluZmluaXRlID0gc3BlYy5pbmZpbml0ZSxcbiAgICAgIGNlbnRlck1vZGUgPSBzcGVjLmNlbnRlck1vZGUsXG4gICAgICBzbGlkZUNvdW50ID0gc3BlYy5zbGlkZUNvdW50LFxuICAgICAgc2xpZGVzVG9TaG93ID0gc3BlYy5zbGlkZXNUb1Nob3csXG4gICAgICBzbGlkZXNUb1Njcm9sbCA9IHNwZWMuc2xpZGVzVG9TY3JvbGwsXG4gICAgICBzbGlkZVdpZHRoID0gc3BlYy5zbGlkZVdpZHRoLFxuICAgICAgbGlzdFdpZHRoID0gc3BlYy5saXN0V2lkdGgsXG4gICAgICB2YXJpYWJsZVdpZHRoID0gc3BlYy52YXJpYWJsZVdpZHRoLFxuICAgICAgc2xpZGVIZWlnaHQgPSBzcGVjLnNsaWRlSGVpZ2h0LFxuICAgICAgZmFkZSA9IHNwZWMuZmFkZSxcbiAgICAgIHZlcnRpY2FsID0gc3BlYy52ZXJ0aWNhbDtcbiAgdmFyIHNsaWRlT2Zmc2V0ID0gMDtcbiAgdmFyIHRhcmdldExlZnQ7XG4gIHZhciB0YXJnZXRTbGlkZTtcbiAgdmFyIHZlcnRpY2FsT2Zmc2V0ID0gMDtcblxuICBpZiAoZmFkZSB8fCBzcGVjLnNsaWRlQ291bnQgPT09IDEpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHZhciBzbGlkZXNUb09mZnNldCA9IDA7XG5cbiAgaWYgKGluZmluaXRlKSB7XG4gICAgc2xpZGVzVG9PZmZzZXQgPSAtZ2V0UHJlQ2xvbmVzKHNwZWMpOyAvLyBicmluZyBhY3RpdmUgc2xpZGUgdG8gdGhlIGJlZ2lubmluZyBvZiB2aXN1YWwgYXJlYVxuICAgIC8vIGlmIG5leHQgc2Nyb2xsIGRvZXNuJ3QgaGF2ZSBlbm91Z2ggY2hpbGRyZW4sIGp1c3QgcmVhY2ggdGlsbCB0aGUgZW5kIG9mIG9yaWdpbmFsIHNsaWRlcyBpbnN0ZWFkIG9mIHNoaWZ0aW5nIHNsaWRlc1RvU2Nyb2xsIGNoaWxkcmVuXG5cbiAgICBpZiAoc2xpZGVDb3VudCAlIHNsaWRlc1RvU2Nyb2xsICE9PSAwICYmIHNsaWRlSW5kZXggKyBzbGlkZXNUb1Njcm9sbCA+IHNsaWRlQ291bnQpIHtcbiAgICAgIHNsaWRlc1RvT2Zmc2V0ID0gLShzbGlkZUluZGV4ID4gc2xpZGVDb3VudCA/IHNsaWRlc1RvU2hvdyAtIChzbGlkZUluZGV4IC0gc2xpZGVDb3VudCkgOiBzbGlkZUNvdW50ICUgc2xpZGVzVG9TY3JvbGwpO1xuICAgIH0gLy8gc2hpZnQgY3VycmVudCBzbGlkZSB0byBjZW50ZXIgb2YgdGhlIGZyYW1lXG5cblxuICAgIGlmIChjZW50ZXJNb2RlKSB7XG4gICAgICBzbGlkZXNUb09mZnNldCArPSBwYXJzZUludChzbGlkZXNUb1Nob3cgLyAyKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgaWYgKHNsaWRlQ291bnQgJSBzbGlkZXNUb1Njcm9sbCAhPT0gMCAmJiBzbGlkZUluZGV4ICsgc2xpZGVzVG9TY3JvbGwgPiBzbGlkZUNvdW50KSB7XG4gICAgICBzbGlkZXNUb09mZnNldCA9IHNsaWRlc1RvU2hvdyAtIHNsaWRlQ291bnQgJSBzbGlkZXNUb1Njcm9sbDtcbiAgICB9XG5cbiAgICBpZiAoY2VudGVyTW9kZSkge1xuICAgICAgc2xpZGVzVG9PZmZzZXQgPSBwYXJzZUludChzbGlkZXNUb1Nob3cgLyAyKTtcbiAgICB9XG4gIH1cblxuICBzbGlkZU9mZnNldCA9IHNsaWRlc1RvT2Zmc2V0ICogc2xpZGVXaWR0aDtcbiAgdmVydGljYWxPZmZzZXQgPSBzbGlkZXNUb09mZnNldCAqIHNsaWRlSGVpZ2h0O1xuXG4gIGlmICghdmVydGljYWwpIHtcbiAgICB0YXJnZXRMZWZ0ID0gc2xpZGVJbmRleCAqIHNsaWRlV2lkdGggKiAtMSArIHNsaWRlT2Zmc2V0O1xuICB9IGVsc2Uge1xuICAgIHRhcmdldExlZnQgPSBzbGlkZUluZGV4ICogc2xpZGVIZWlnaHQgKiAtMSArIHZlcnRpY2FsT2Zmc2V0O1xuICB9XG5cbiAgaWYgKHZhcmlhYmxlV2lkdGggPT09IHRydWUpIHtcbiAgICB2YXIgdGFyZ2V0U2xpZGVJbmRleDtcbiAgICB2YXIgdHJhY2tFbGVtID0gdHJhY2tSZWYgJiYgdHJhY2tSZWYubm9kZTtcbiAgICB0YXJnZXRTbGlkZUluZGV4ID0gc2xpZGVJbmRleCArIGdldFByZUNsb25lcyhzcGVjKTtcbiAgICB0YXJnZXRTbGlkZSA9IHRyYWNrRWxlbSAmJiB0cmFja0VsZW0uY2hpbGROb2Rlc1t0YXJnZXRTbGlkZUluZGV4XTtcbiAgICB0YXJnZXRMZWZ0ID0gdGFyZ2V0U2xpZGUgPyB0YXJnZXRTbGlkZS5vZmZzZXRMZWZ0ICogLTEgOiAwO1xuXG4gICAgaWYgKGNlbnRlck1vZGUgPT09IHRydWUpIHtcbiAgICAgIHRhcmdldFNsaWRlSW5kZXggPSBpbmZpbml0ZSA/IHNsaWRlSW5kZXggKyBnZXRQcmVDbG9uZXMoc3BlYykgOiBzbGlkZUluZGV4O1xuICAgICAgdGFyZ2V0U2xpZGUgPSB0cmFja0VsZW0gJiYgdHJhY2tFbGVtLmNoaWxkcmVuW3RhcmdldFNsaWRlSW5kZXhdO1xuICAgICAgdGFyZ2V0TGVmdCA9IDA7XG5cbiAgICAgIGZvciAodmFyIHNsaWRlID0gMDsgc2xpZGUgPCB0YXJnZXRTbGlkZUluZGV4OyBzbGlkZSsrKSB7XG4gICAgICAgIHRhcmdldExlZnQgLT0gdHJhY2tFbGVtICYmIHRyYWNrRWxlbS5jaGlsZHJlbltzbGlkZV0gJiYgdHJhY2tFbGVtLmNoaWxkcmVuW3NsaWRlXS5vZmZzZXRXaWR0aDtcbiAgICAgIH1cblxuICAgICAgdGFyZ2V0TGVmdCAtPSBwYXJzZUludChzcGVjLmNlbnRlclBhZGRpbmcpO1xuICAgICAgdGFyZ2V0TGVmdCArPSB0YXJnZXRTbGlkZSAmJiAobGlzdFdpZHRoIC0gdGFyZ2V0U2xpZGUub2Zmc2V0V2lkdGgpIC8gMjtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0TGVmdDtcbn07XG5cbmV4cG9ydHMuZ2V0VHJhY2tMZWZ0ID0gZ2V0VHJhY2tMZWZ0O1xuXG52YXIgZ2V0UHJlQ2xvbmVzID0gZnVuY3Rpb24gZ2V0UHJlQ2xvbmVzKHNwZWMpIHtcbiAgaWYgKHNwZWMudW5zbGljayB8fCAhc3BlYy5pbmZpbml0ZSkge1xuICAgIHJldHVybiAwO1xuICB9XG5cbiAgaWYgKHNwZWMudmFyaWFibGVXaWR0aCkge1xuICAgIHJldHVybiBzcGVjLnNsaWRlQ291bnQ7XG4gIH1cblxuICByZXR1cm4gc3BlYy5zbGlkZXNUb1Nob3cgKyAoc3BlYy5jZW50ZXJNb2RlID8gMSA6IDApO1xufTtcblxuZXhwb3J0cy5nZXRQcmVDbG9uZXMgPSBnZXRQcmVDbG9uZXM7XG5cbnZhciBnZXRQb3N0Q2xvbmVzID0gZnVuY3Rpb24gZ2V0UG9zdENsb25lcyhzcGVjKSB7XG4gIGlmIChzcGVjLnVuc2xpY2sgfHwgIXNwZWMuaW5maW5pdGUpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHJldHVybiBzcGVjLnNsaWRlQ291bnQ7XG59O1xuXG5leHBvcnRzLmdldFBvc3RDbG9uZXMgPSBnZXRQb3N0Q2xvbmVzO1xuXG52YXIgZ2V0VG90YWxTbGlkZXMgPSBmdW5jdGlvbiBnZXRUb3RhbFNsaWRlcyhzcGVjKSB7XG4gIHJldHVybiBzcGVjLnNsaWRlQ291bnQgPT09IDEgPyAxIDogZ2V0UHJlQ2xvbmVzKHNwZWMpICsgc3BlYy5zbGlkZUNvdW50ICsgZ2V0UG9zdENsb25lcyhzcGVjKTtcbn07XG5cbmV4cG9ydHMuZ2V0VG90YWxTbGlkZXMgPSBnZXRUb3RhbFNsaWRlcztcblxudmFyIHNpYmxpbmdEaXJlY3Rpb24gPSBmdW5jdGlvbiBzaWJsaW5nRGlyZWN0aW9uKHNwZWMpIHtcbiAgaWYgKHNwZWMudGFyZ2V0U2xpZGUgPiBzcGVjLmN1cnJlbnRTbGlkZSkge1xuICAgIGlmIChzcGVjLnRhcmdldFNsaWRlID4gc3BlYy5jdXJyZW50U2xpZGUgKyBzbGlkZXNPblJpZ2h0KHNwZWMpKSB7XG4gICAgICByZXR1cm4gXCJsZWZ0XCI7XG4gICAgfVxuXG4gICAgcmV0dXJuIFwicmlnaHRcIjtcbiAgfSBlbHNlIHtcbiAgICBpZiAoc3BlYy50YXJnZXRTbGlkZSA8IHNwZWMuY3VycmVudFNsaWRlIC0gc2xpZGVzT25MZWZ0KHNwZWMpKSB7XG4gICAgICByZXR1cm4gXCJyaWdodFwiO1xuICAgIH1cblxuICAgIHJldHVybiBcImxlZnRcIjtcbiAgfVxufTtcblxuZXhwb3J0cy5zaWJsaW5nRGlyZWN0aW9uID0gc2libGluZ0RpcmVjdGlvbjtcblxudmFyIHNsaWRlc09uUmlnaHQgPSBmdW5jdGlvbiBzbGlkZXNPblJpZ2h0KF9yZWYpIHtcbiAgdmFyIHNsaWRlc1RvU2hvdyA9IF9yZWYuc2xpZGVzVG9TaG93LFxuICAgICAgY2VudGVyTW9kZSA9IF9yZWYuY2VudGVyTW9kZSxcbiAgICAgIHJ0bCA9IF9yZWYucnRsLFxuICAgICAgY2VudGVyUGFkZGluZyA9IF9yZWYuY2VudGVyUGFkZGluZztcblxuICAvLyByZXR1cm5zIG5vIG9mIHNsaWRlcyBvbiB0aGUgcmlnaHQgb2YgYWN0aXZlIHNsaWRlXG4gIGlmIChjZW50ZXJNb2RlKSB7XG4gICAgdmFyIHJpZ2h0ID0gKHNsaWRlc1RvU2hvdyAtIDEpIC8gMiArIDE7XG4gICAgaWYgKHBhcnNlSW50KGNlbnRlclBhZGRpbmcpID4gMCkgcmlnaHQgKz0gMTtcbiAgICBpZiAocnRsICYmIHNsaWRlc1RvU2hvdyAlIDIgPT09IDApIHJpZ2h0ICs9IDE7XG4gICAgcmV0dXJuIHJpZ2h0O1xuICB9XG5cbiAgaWYgKHJ0bCkge1xuICAgIHJldHVybiAwO1xuICB9XG5cbiAgcmV0dXJuIHNsaWRlc1RvU2hvdyAtIDE7XG59O1xuXG5leHBvcnRzLnNsaWRlc09uUmlnaHQgPSBzbGlkZXNPblJpZ2h0O1xuXG52YXIgc2xpZGVzT25MZWZ0ID0gZnVuY3Rpb24gc2xpZGVzT25MZWZ0KF9yZWYyKSB7XG4gIHZhciBzbGlkZXNUb1Nob3cgPSBfcmVmMi5zbGlkZXNUb1Nob3csXG4gICAgICBjZW50ZXJNb2RlID0gX3JlZjIuY2VudGVyTW9kZSxcbiAgICAgIHJ0bCA9IF9yZWYyLnJ0bCxcbiAgICAgIGNlbnRlclBhZGRpbmcgPSBfcmVmMi5jZW50ZXJQYWRkaW5nO1xuXG4gIC8vIHJldHVybnMgbm8gb2Ygc2xpZGVzIG9uIHRoZSBsZWZ0IG9mIGFjdGl2ZSBzbGlkZVxuICBpZiAoY2VudGVyTW9kZSkge1xuICAgIHZhciBsZWZ0ID0gKHNsaWRlc1RvU2hvdyAtIDEpIC8gMiArIDE7XG4gICAgaWYgKHBhcnNlSW50KGNlbnRlclBhZGRpbmcpID4gMCkgbGVmdCArPSAxO1xuICAgIGlmICghcnRsICYmIHNsaWRlc1RvU2hvdyAlIDIgPT09IDApIGxlZnQgKz0gMTtcbiAgICByZXR1cm4gbGVmdDtcbiAgfVxuXG4gIGlmIChydGwpIHtcbiAgICByZXR1cm4gc2xpZGVzVG9TaG93IC0gMTtcbiAgfVxuXG4gIHJldHVybiAwO1xufTtcblxuZXhwb3J0cy5zbGlkZXNPbkxlZnQgPSBzbGlkZXNPbkxlZnQ7XG5cbnZhciBjYW5Vc2VET00gPSBmdW5jdGlvbiBjYW5Vc2VET00oKSB7XG4gIHJldHVybiAhISh0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiICYmIHdpbmRvdy5kb2N1bWVudCAmJiB3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCk7XG59O1xuXG5leHBvcnRzLmNhblVzZURPTSA9IGNhblVzZURPTTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-slick/lib/utils/innerSliderUtils.js\n"); + +/***/ }), + +/***/ "./node_modules/react-tsparticles/cjs/particles.js": +/*!*********************************************************!*\ + !*** ./node_modules/react-tsparticles/cjs/particles.js ***! + \*********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +eval("(()=>{\"use strict\";var e={904:(e,t,o)=>{o.d(t,{Z:()=>v});const r=__webpack_require__(/*! react */ \"./node_modules/react/index.js\");var n=o.n(r);const i=__webpack_require__(/*! tsparticles */ \"./node_modules/tsparticles/index.js\"),a=__webpack_require__(/*! fast-deep-equal/react */ \"./node_modules/fast-deep-equal/react.js\");var c=o.n(a);function l(e){return(l=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function u(e,t){for(var o=0;o<t.length;o++){var r=t[o];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function s(e,t,o){return(s=\"undefined\"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,o){var r=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=f(e)););return e}(e,t);if(r){var n=Object.getOwnPropertyDescriptor(r,t);return n.get?n.get.call(o):n.value}})(e,t,o||e)}function d(e,t){return(d=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function p(e,t){if(t&&(\"object\"===l(t)||\"function\"==typeof t))return t;if(void 0!==t)throw new TypeError(\"Derived constructors may only return object or undefined\");return function(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}(e)}function f(e){return(f=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var v=function(e){!function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&d(e,t)}(v,e);var t,o,r,a,l=(r=v,a=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=f(r);if(a){var o=f(this).constructor;e=Reflect.construct(t,arguments,o)}else e=t.apply(this,arguments);return p(this,e)});function v(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,v),(t=l.call(this,e)).state={library:void 0},t}return t=v,(o=[{key:\"destroy\",value:function(){this.state.library&&(this.state.library.destroy(),this.setState({library:void 0}))}},{key:\"shouldComponentUpdate\",value:function(e){return!c()(e,this.props)}},{key:\"componentDidUpdate\",value:function(){this.refresh()}},{key:\"forceUpdate\",value:function(){this.refresh(),s(f(v.prototype),\"forceUpdate\",this).call(this)}},{key:\"componentDidMount\",value:function(){this.props.init&&this.props.init(i.tsParticles),this.loadParticles()}},{key:\"componentWillUnmount\",value:function(){this.destroy()}},{key:\"render\",value:function(){var e=this.props,t=e.width,o=e.height,r=e.className,i=e.canvasClassName,a=e.id;return n().createElement(\"div\",{className:r,id:a},n().createElement(\"canvas\",{className:i,style:Object.assign(Object.assign({},this.props.style),{width:t,height:o})}))}},{key:\"refresh\",value:function(){this.destroy(),this.loadParticles()}},{key:\"loadParticles\",value:function(){var e,t=this,o=function(e){t.props.container&&(t.props.container.current=e),t.setState({library:e}),t.props.loaded&&t.props.loaded(e)};this.props.url?i.tsParticles.loadJSON(this.props.id,this.props.url).then(o):i.tsParticles.load(this.props.id,null!==(e=this.props.params)&&void 0!==e?e:this.props.options).then(o)}}])&&u(t.prototype,o),v}(r.Component);v.defaultProps={width:\"100%\",height:\"100%\",options:{},style:{},url:void 0,id:\"tsparticles\"}},868:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.AnimationStatus=void 0,(o=t.AnimationStatus||(t.AnimationStatus={}))[o.increasing=0]=\"increasing\",o[o.decreasing=1]=\"decreasing\"},300:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.MoveDirection=void 0,(o=t.MoveDirection||(t.MoveDirection={})).bottom=\"bottom\",o.bottomLeft=\"bottom-left\",o.bottomRight=\"bottom-right\",o.left=\"left\",o.none=\"none\",o.right=\"right\",o.top=\"top\",o.topLeft=\"top-left\",o.topRight=\"top-right\"},264:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.OutModeDirection=void 0,(o=t.OutModeDirection||(t.OutModeDirection={})).bottom=\"bottom\",o.left=\"left\",o.right=\"right\",o.top=\"top\"},329:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.RotateDirection=void 0,(o=t.RotateDirection||(t.RotateDirection={})).clockwise=\"clockwise\",o.counterClockwise=\"counter-clockwise\",o.random=\"random\"},469:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.TiltDirection=void 0,(o=t.TiltDirection||(t.TiltDirection={})).clockwise=\"clockwise\",o.counterClockwise=\"counter-clockwise\",o.random=\"random\"},961:function(e,t,o){var r=this&&this.__createBinding||(Object.create?function(e,t,o,r){void 0===r&&(r=o),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[o]}})}:function(e,t,o,r){void 0===r&&(r=o),e[r]=t[o]}),n=this&&this.__exportStar||function(e,t){for(var o in e)\"default\"===o||Object.prototype.hasOwnProperty.call(t,o)||r(t,e,o)};Object.defineProperty(t,\"__esModule\",{value:!0}),n(o(300),t),n(o(329),t),n(o(264),t),n(o(469),t)},974:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.InteractivityDetect=void 0,(o=t.InteractivityDetect||(t.InteractivityDetect={})).canvas=\"canvas\",o.parent=\"parent\",o.window=\"window\"},252:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.ClickMode=void 0,(o=t.ClickMode||(t.ClickMode={})).attract=\"attract\",o.bubble=\"bubble\",o.push=\"push\",o.remove=\"remove\",o.repulse=\"repulse\",o.pause=\"pause\",o.trail=\"trail\"},130:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.CollisionMode=void 0,(o=t.CollisionMode||(t.CollisionMode={})).absorb=\"absorb\",o.bounce=\"bounce\",o.destroy=\"destroy\"},330:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.DestroyMode=void 0,(o=t.DestroyMode||(t.DestroyMode={})).none=\"none\",o.split=\"split\"},208:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.DivMode=void 0,(o=t.DivMode||(t.DivMode={})).bounce=\"bounce\",o.bubble=\"bubble\",o.repulse=\"repulse\"},349:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.HoverMode=void 0,(o=t.HoverMode||(t.HoverMode={})).attract=\"attract\",o.bounce=\"bounce\",o.bubble=\"bubble\",o.connect=\"connect\",o.grab=\"grab\",o.light=\"light\",o.repulse=\"repulse\",o.slow=\"slow\",o.trail=\"trail\"},581:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.OutMode=void 0,(o=t.OutMode||(t.OutMode={})).bounce=\"bounce\",o.bounceHorizontal=\"bounce-horizontal\",o.bounceVertical=\"bounce-vertical\",o.none=\"none\",o.out=\"out\",o.destroy=\"destroy\",o.split=\"split\"},164:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.ResponsiveMode=void 0,(o=t.ResponsiveMode||(t.ResponsiveMode={})).screen=\"screen\",o.canvas=\"canvas\"},667:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.RollMode=void 0,(o=t.RollMode||(t.RollMode={})).both=\"both\",o.horizontal=\"horizontal\",o.vertical=\"vertical\"},855:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.SizeMode=void 0,(o=t.SizeMode||(t.SizeMode={})).precise=\"precise\",o.percent=\"percent\"},702:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.ThemeMode=void 0,(o=t.ThemeMode||(t.ThemeMode={})).any=\"any\",o.dark=\"dark\",o.light=\"light\"},515:function(e,t,o){var r=this&&this.__createBinding||(Object.create?function(e,t,o,r){void 0===r&&(r=o),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[o]}})}:function(e,t,o,r){void 0===r&&(r=o),e[r]=t[o]}),n=this&&this.__exportStar||function(e,t){for(var o in e)\"default\"===o||Object.prototype.hasOwnProperty.call(t,o)||r(t,e,o)};Object.defineProperty(t,\"__esModule\",{value:!0}),n(o(252),t),n(o(330),t),n(o(208),t),n(o(349),t),n(o(130),t),n(o(581),t),n(o(667),t),n(o(855),t),n(o(702),t),n(o(164),t)},47:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.AlterType=void 0,(o=t.AlterType||(t.AlterType={})).darken=\"darken\",o.enlighten=\"enlighten\"},64:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.DestroyType=void 0,(o=t.DestroyType||(t.DestroyType={})).none=\"none\",o.max=\"max\",o.min=\"min\"},712:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.DivType=void 0,(o=t.DivType||(t.DivType={})).circle=\"circle\",o.rectangle=\"rectangle\"},77:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.EasingType=void 0,(o=t.EasingType||(t.EasingType={})).easeOutBack=\"ease-out-back\",o.easeOutCirc=\"ease-out-circ\",o.easeOutCubic=\"ease-out-cubic\",o.easeOutQuad=\"ease-out-quad\",o.easeOutQuart=\"ease-out-quart\",o.easeOutQuint=\"ease-out-quint\",o.easeOutExpo=\"ease-out-expo\",o.easeOutSine=\"ease-out-sine\"},589:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.GradientType=void 0,(o=t.GradientType||(t.GradientType={})).linear=\"linear\",o.radial=\"radial\",o.random=\"random\"},457:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.InteractorType=void 0,(o=t.InteractorType||(t.InteractorType={}))[o.External=0]=\"External\",o[o.Particles=1]=\"Particles\"},796:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.OrbitType=void 0,(o=t.OrbitType||(t.OrbitType={})).front=\"front\",o.back=\"back\"},247:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.ShapeType=void 0,(o=t.ShapeType||(t.ShapeType={})).char=\"char\",o.character=\"character\",o.circle=\"circle\",o.edge=\"edge\",o.image=\"image\",o.images=\"images\",o.line=\"line\",o.polygon=\"polygon\",o.square=\"square\",o.star=\"star\",o.triangle=\"triangle\"},676:(e,t)=>{var o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.StartValueType=void 0,(o=t.StartValueType||(t.StartValueType={})).max=\"max\",o.min=\"min\",o.random=\"random\"},799:function(e,t,o){var r=this&&this.__createBinding||(Object.create?function(e,t,o,r){void 0===r&&(r=o),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[o]}})}:function(e,t,o,r){void 0===r&&(r=o),e[r]=t[o]}),n=this&&this.__exportStar||function(e,t){for(var o in e)\"default\"===o||Object.prototype.hasOwnProperty.call(t,o)||r(t,e,o)};Object.defineProperty(t,\"__esModule\",{value:!0}),n(o(47),t),n(o(64),t),n(o(589),t),n(o(457),t),n(o(247),t),n(o(676),t),n(o(712),t),n(o(77),t),n(o(796),t)},717:function(e,t,o){var r=this&&this.__createBinding||(Object.create?function(e,t,o,r){void 0===r&&(r=o),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[o]}})}:function(e,t,o,r){void 0===r&&(r=o),e[r]=t[o]}),n=this&&this.__exportStar||function(e,t){for(var o in e)\"default\"===o||Object.prototype.hasOwnProperty.call(t,o)||r(t,e,o)};Object.defineProperty(t,\"__esModule\",{value:!0}),n(o(961),t),n(o(515),t),n(o(868),t),n(o(799),t),n(o(974),t)}},t={};function o(r){var n=t[r];if(void 0!==n)return n.exports;var i=t[r]={exports:{}};return e[r].call(i.exports,i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o.r=e=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})};var r={};(()=>{o.r(r),o.d(r,{default:()=>i,Particles:()=>e.Z});var e=o(904),t=o(717),n={};for(const e in t)[\"default\",\"Particles\"].indexOf(e)<0&&(n[e]=()=>t[e]);o.d(r,n);const i=e.Z})();var n=exports;for(var i in r)n[i]=r[i];r.__esModule&&Object.defineProperty(n,\"__esModule\",{value:!0})})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtdHNwYXJ0aWNsZXMvY2pzL3BhcnRpY2xlcy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQSxNQUFNLGFBQWEsT0FBTyxjQUFjLE9BQU8sUUFBUSxFQUFFLFFBQVEsbUJBQU8sQ0FBQyw0Q0FBTyxFQUFFLGFBQWEsUUFBUSxtQkFBTyxDQUFDLHdEQUFhLElBQUksbUJBQU8sQ0FBQyxzRUFBdUIsRUFBRSxhQUFhLGNBQWMsaUZBQWlGLGdCQUFnQixhQUFhLG9HQUFvRyxLQUFLLGdCQUFnQixZQUFZLFdBQVcsS0FBSyxXQUFXLCtHQUErRyxrQkFBa0IsOEVBQThFLG9CQUFvQixLQUFLLDREQUE0RCxFQUFFLFNBQVMsTUFBTSxNQUFNLDJDQUEyQyxvQ0FBb0MsWUFBWSxnQkFBZ0IsOENBQThDLHVCQUF1QixPQUFPLGdCQUFnQix1REFBdUQsOEZBQThGLG1CQUFtQixvR0FBb0csU0FBUyxJQUFJLGNBQWMsaUVBQWlFLDZDQUE2QyxLQUFLLGtCQUFrQixlQUFlLDRHQUE0RywwQ0FBMEMsYUFBYSxxQ0FBcUMsWUFBWSxNQUFNLGdDQUFnQyw0REFBNEQsbUNBQW1DLHFDQUFxQyxJQUFJLGdGQUFnRixPQUFPLFNBQVMsVUFBVSxjQUFjLGFBQWEsTUFBTSwwQkFBMEIsbUNBQW1DLCtCQUErQixpQkFBaUIsRUFBRSxjQUFjLE1BQU0scUJBQXFCLDhFQUE4RSxtQ0FBbUMsZUFBZSxHQUFHLGdCQUFnQiwrQkFBK0IsaUVBQWlFLGVBQWUsSUFBSSxFQUFFLDhDQUE4QywwQkFBMEIsRUFBRSwwQ0FBMEMsZ0JBQWdCLEVBQUUsbUNBQW1DLGdFQUFnRSxFQUFFLHlDQUF5QyxzRUFBc0UsRUFBRSw0Q0FBNEMsZ0JBQWdCLEVBQUUsOEJBQThCLCtFQUErRSxnQ0FBZ0MsaUJBQWlCLDZCQUE2QixnREFBZ0Qsb0JBQW9CLGlCQUFpQixFQUFFLElBQUksRUFBRSwrQkFBK0IscUNBQXFDLEVBQUUscUNBQXFDLDJCQUEyQiw2REFBNkQsVUFBVSxxQ0FBcUMscUxBQXFMLHVCQUF1QixjQUFjLGdCQUFnQixxQ0FBcUMsU0FBUyw4QkFBOEIsYUFBYSxNQUFNLHNDQUFzQyxTQUFTLHNFQUFzRSwrREFBK0QsYUFBYSxNQUFNLHNDQUFzQyxTQUFTLGdFQUFnRSwrS0FBK0ssYUFBYSxNQUFNLHNDQUFzQyxTQUFTLHlFQUF5RSw2REFBNkQsYUFBYSxNQUFNLHNDQUFzQyxTQUFTLHNFQUFzRSxrRkFBa0YsYUFBYSxNQUFNLHNDQUFzQyxTQUFTLGdFQUFnRSxrRkFBa0YscUJBQXFCLG1FQUFtRSw2Q0FBNkMsNkJBQTZCLGFBQWEsRUFBRSxtQkFBbUIsNEJBQTRCLDJDQUEyQyxtRkFBbUYsc0NBQXNDLFNBQVMsa0RBQWtELGFBQWEsTUFBTSxzQ0FBc0MsU0FBUyxrRkFBa0YsdURBQXVELGFBQWEsTUFBTSxzQ0FBc0MsU0FBUyxvREFBb0QsMkhBQTJILGFBQWEsTUFBTSxzQ0FBc0MsU0FBUyxnRUFBZ0UseURBQXlELGFBQWEsTUFBTSxzQ0FBc0MsU0FBUywwREFBMEQsK0JBQStCLGFBQWEsTUFBTSxzQ0FBc0MsU0FBUyw4Q0FBOEMseURBQXlELGFBQWEsTUFBTSxzQ0FBc0MsU0FBUyxvREFBb0QsNkpBQTZKLGFBQWEsTUFBTSxzQ0FBc0MsU0FBUyw4Q0FBOEMsMkpBQTJKLGFBQWEsTUFBTSxzQ0FBc0MsU0FBUyxtRUFBbUUscUNBQXFDLGFBQWEsTUFBTSxzQ0FBc0MsU0FBUyxpREFBaUQsK0RBQStELGFBQWEsTUFBTSxzQ0FBc0MsU0FBUyxpREFBaUQseUNBQXlDLGFBQWEsTUFBTSxzQ0FBc0MsU0FBUyxvREFBb0QsMkNBQTJDLHFCQUFxQixtRUFBbUUsNkNBQTZDLDZCQUE2QixhQUFhLEVBQUUsbUJBQW1CLDRCQUE0QiwyQ0FBMkMsbUZBQW1GLHNDQUFzQyxTQUFTLDBIQUEwSCxZQUFZLE1BQU0sc0NBQXNDLFNBQVMsb0RBQW9ELDJDQUEyQyxZQUFZLE1BQU0sc0NBQXNDLFNBQVMsMERBQTBELHVDQUF1QyxhQUFhLE1BQU0sc0NBQXNDLFNBQVMsOENBQThDLDJDQUEyQyxZQUFZLE1BQU0sc0NBQXNDLFNBQVMsdURBQXVELHVQQUF1UCxhQUFhLE1BQU0sc0NBQXNDLFNBQVMsNkRBQTZELHVEQUF1RCxhQUFhLE1BQU0sc0NBQXNDLFNBQVMsbUVBQW1FLHlEQUF5RCxhQUFhLE1BQU0sc0NBQXNDLFNBQVMsb0RBQW9ELCtCQUErQixhQUFhLE1BQU0sc0NBQXNDLFNBQVMsb0RBQW9ELGlNQUFpTSxhQUFhLE1BQU0sc0NBQXNDLFNBQVMsbUVBQW1FLDJDQUEyQyxxQkFBcUIsbUVBQW1FLDZDQUE2Qyw2QkFBNkIsYUFBYSxFQUFFLG1CQUFtQiw0QkFBNEIsMkNBQTJDLG1GQUFtRixzQ0FBc0MsU0FBUywyR0FBMkcscUJBQXFCLG1FQUFtRSw2Q0FBNkMsNkJBQTZCLGFBQWEsRUFBRSxtQkFBbUIsNEJBQTRCLDJDQUEyQyxtRkFBbUYsc0NBQXNDLFNBQVMsK0RBQStELE1BQU0sY0FBYyxXQUFXLCtCQUErQixZQUFZLFlBQVksb0RBQW9ELFFBQVEsMENBQTBDLGNBQWMsSUFBSSxJQUFJLGFBQWEsK0RBQStELHVCQUF1QixFQUFFLDhEQUE4RCw0RkFBNEYsZUFBZSx3Q0FBd0MsU0FBUyxHQUFHLFNBQVMsTUFBTSxjQUFjLGdDQUFnQyxFQUFFLDJCQUEyQix1RUFBdUUsU0FBUyxZQUFZLElBQUksY0FBYyx5QkFBeUIsb0RBQW9ELFNBQVMsRUFBRSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmVhY3QtdHNwYXJ0aWNsZXMvY2pzL3BhcnRpY2xlcy5qcz8zNmFmIl0sInNvdXJjZXNDb250ZW50IjpbIigoKT0+e1widXNlIHN0cmljdFwiO3ZhciBlPXs5MDQ6KGUsdCxvKT0+e28uZCh0LHtaOigpPT52fSk7Y29uc3Qgcj1yZXF1aXJlKFwicmVhY3RcIik7dmFyIG49by5uKHIpO2NvbnN0IGk9cmVxdWlyZShcInRzcGFydGljbGVzXCIpLGE9cmVxdWlyZShcImZhc3QtZGVlcC1lcXVhbC9yZWFjdFwiKTt2YXIgYz1vLm4oYSk7ZnVuY3Rpb24gbChlKXtyZXR1cm4obD1cImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmXCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZlIT09U3ltYm9sLnByb3RvdHlwZT9cInN5bWJvbFwiOnR5cGVvZiBlfSkoZSl9ZnVuY3Rpb24gdShlLHQpe2Zvcih2YXIgbz0wO288dC5sZW5ndGg7bysrKXt2YXIgcj10W29dO3IuZW51bWVyYWJsZT1yLmVudW1lcmFibGV8fCExLHIuY29uZmlndXJhYmxlPSEwLFwidmFsdWVcImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLmtleSxyKX19ZnVuY3Rpb24gcyhlLHQsbyl7cmV0dXJuKHM9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0OmZ1bmN0aW9uKGUsdCxvKXt2YXIgcj1mdW5jdGlvbihlLHQpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHQpJiZudWxsIT09KGU9ZihlKSk7KTtyZXR1cm4gZX0oZSx0KTtpZihyKXt2YXIgbj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIsdCk7cmV0dXJuIG4uZ2V0P24uZ2V0LmNhbGwobyk6bi52YWx1ZX19KShlLHQsb3x8ZSl9ZnVuY3Rpb24gZChlLHQpe3JldHVybihkPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5fX3Byb3RvX189dCxlfSkoZSx0KX1mdW5jdGlvbiBwKGUsdCl7aWYodCYmKFwib2JqZWN0XCI9PT1sKHQpfHxcImZ1bmN0aW9uXCI9PXR5cGVvZiB0KSlyZXR1cm4gdDtpZih2b2lkIDAhPT10KXRocm93IG5ldyBUeXBlRXJyb3IoXCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZFwiKTtyZXR1cm4gZnVuY3Rpb24oZSl7aWYodm9pZCAwPT09ZSl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7cmV0dXJuIGV9KGUpfWZ1bmN0aW9uIGYoZSl7cmV0dXJuKGY9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZjpmdW5jdGlvbihlKXtyZXR1cm4gZS5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihlKX0pKGUpfXZhciB2PWZ1bmN0aW9uKGUpeyFmdW5jdGlvbihlLHQpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIHQmJm51bGwhPT10KXRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvblwiKTtlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksdCYmZChlLHQpfSh2LGUpO3ZhciB0LG8scixhLGw9KHI9dixhPWZ1bmN0aW9uKCl7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdClyZXR1cm4hMTtpZihSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sKGZ1bmN0aW9uKCl7fSkpKSwhMH1jYXRjaChlKXtyZXR1cm4hMX19KCksZnVuY3Rpb24oKXt2YXIgZSx0PWYocik7aWYoYSl7dmFyIG89Zih0aGlzKS5jb25zdHJ1Y3RvcjtlPVJlZmxlY3QuY29uc3RydWN0KHQsYXJndW1lbnRzLG8pfWVsc2UgZT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gcCh0aGlzLGUpfSk7ZnVuY3Rpb24gdihlKXt2YXIgdDtyZXR1cm4gZnVuY3Rpb24oZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpfSh0aGlzLHYpLCh0PWwuY2FsbCh0aGlzLGUpKS5zdGF0ZT17bGlicmFyeTp2b2lkIDB9LHR9cmV0dXJuIHQ9diwobz1be2tleTpcImRlc3Ryb3lcIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuc3RhdGUubGlicmFyeSYmKHRoaXMuc3RhdGUubGlicmFyeS5kZXN0cm95KCksdGhpcy5zZXRTdGF0ZSh7bGlicmFyeTp2b2lkIDB9KSl9fSx7a2V5Olwic2hvdWxkQ29tcG9uZW50VXBkYXRlXCIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIWMoKShlLHRoaXMucHJvcHMpfX0se2tleTpcImNvbXBvbmVudERpZFVwZGF0ZVwiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5yZWZyZXNoKCl9fSx7a2V5OlwiZm9yY2VVcGRhdGVcIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMucmVmcmVzaCgpLHMoZih2LnByb3RvdHlwZSksXCJmb3JjZVVwZGF0ZVwiLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OlwiY29tcG9uZW50RGlkTW91bnRcIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMucHJvcHMuaW5pdCYmdGhpcy5wcm9wcy5pbml0KGkudHNQYXJ0aWNsZXMpLHRoaXMubG9hZFBhcnRpY2xlcygpfX0se2tleTpcImNvbXBvbmVudFdpbGxVbm1vdW50XCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmRlc3Ryb3koKX19LHtrZXk6XCJyZW5kZXJcIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMucHJvcHMsdD1lLndpZHRoLG89ZS5oZWlnaHQscj1lLmNsYXNzTmFtZSxpPWUuY2FudmFzQ2xhc3NOYW1lLGE9ZS5pZDtyZXR1cm4gbigpLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOnIsaWQ6YX0sbigpLmNyZWF0ZUVsZW1lbnQoXCJjYW52YXNcIix7Y2xhc3NOYW1lOmksc3R5bGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHRoaXMucHJvcHMuc3R5bGUpLHt3aWR0aDp0LGhlaWdodDpvfSl9KSl9fSx7a2V5OlwicmVmcmVzaFwiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5kZXN0cm95KCksdGhpcy5sb2FkUGFydGljbGVzKCl9fSx7a2V5OlwibG9hZFBhcnRpY2xlc1wiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGUsdD10aGlzLG89ZnVuY3Rpb24oZSl7dC5wcm9wcy5jb250YWluZXImJih0LnByb3BzLmNvbnRhaW5lci5jdXJyZW50PWUpLHQuc2V0U3RhdGUoe2xpYnJhcnk6ZX0pLHQucHJvcHMubG9hZGVkJiZ0LnByb3BzLmxvYWRlZChlKX07dGhpcy5wcm9wcy51cmw/aS50c1BhcnRpY2xlcy5sb2FkSlNPTih0aGlzLnByb3BzLmlkLHRoaXMucHJvcHMudXJsKS50aGVuKG8pOmkudHNQYXJ0aWNsZXMubG9hZCh0aGlzLnByb3BzLmlkLG51bGwhPT0oZT10aGlzLnByb3BzLnBhcmFtcykmJnZvaWQgMCE9PWU/ZTp0aGlzLnByb3BzLm9wdGlvbnMpLnRoZW4obyl9fV0pJiZ1KHQucHJvdG90eXBlLG8pLHZ9KHIuQ29tcG9uZW50KTt2LmRlZmF1bHRQcm9wcz17d2lkdGg6XCIxMDAlXCIsaGVpZ2h0OlwiMTAwJVwiLG9wdGlvbnM6e30sc3R5bGU6e30sdXJsOnZvaWQgMCxpZDpcInRzcGFydGljbGVzXCJ9fSw4Njg6KGUsdCk9Pnt2YXIgbztPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LkFuaW1hdGlvblN0YXR1cz12b2lkIDAsKG89dC5BbmltYXRpb25TdGF0dXN8fCh0LkFuaW1hdGlvblN0YXR1cz17fSkpW28uaW5jcmVhc2luZz0wXT1cImluY3JlYXNpbmdcIixvW28uZGVjcmVhc2luZz0xXT1cImRlY3JlYXNpbmdcIn0sMzAwOihlLHQpPT57dmFyIG87T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5Nb3ZlRGlyZWN0aW9uPXZvaWQgMCwobz10Lk1vdmVEaXJlY3Rpb258fCh0Lk1vdmVEaXJlY3Rpb249e30pKS5ib3R0b209XCJib3R0b21cIixvLmJvdHRvbUxlZnQ9XCJib3R0b20tbGVmdFwiLG8uYm90dG9tUmlnaHQ9XCJib3R0b20tcmlnaHRcIixvLmxlZnQ9XCJsZWZ0XCIsby5ub25lPVwibm9uZVwiLG8ucmlnaHQ9XCJyaWdodFwiLG8udG9wPVwidG9wXCIsby50b3BMZWZ0PVwidG9wLWxlZnRcIixvLnRvcFJpZ2h0PVwidG9wLXJpZ2h0XCJ9LDI2NDooZSx0KT0+e3ZhciBvO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuT3V0TW9kZURpcmVjdGlvbj12b2lkIDAsKG89dC5PdXRNb2RlRGlyZWN0aW9ufHwodC5PdXRNb2RlRGlyZWN0aW9uPXt9KSkuYm90dG9tPVwiYm90dG9tXCIsby5sZWZ0PVwibGVmdFwiLG8ucmlnaHQ9XCJyaWdodFwiLG8udG9wPVwidG9wXCJ9LDMyOTooZSx0KT0+e3ZhciBvO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuUm90YXRlRGlyZWN0aW9uPXZvaWQgMCwobz10LlJvdGF0ZURpcmVjdGlvbnx8KHQuUm90YXRlRGlyZWN0aW9uPXt9KSkuY2xvY2t3aXNlPVwiY2xvY2t3aXNlXCIsby5jb3VudGVyQ2xvY2t3aXNlPVwiY291bnRlci1jbG9ja3dpc2VcIixvLnJhbmRvbT1cInJhbmRvbVwifSw0Njk6KGUsdCk9Pnt2YXIgbztPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LlRpbHREaXJlY3Rpb249dm9pZCAwLChvPXQuVGlsdERpcmVjdGlvbnx8KHQuVGlsdERpcmVjdGlvbj17fSkpLmNsb2Nrd2lzZT1cImNsb2Nrd2lzZVwiLG8uY291bnRlckNsb2Nrd2lzZT1cImNvdW50ZXItY2xvY2t3aXNlXCIsby5yYW5kb209XCJyYW5kb21cIn0sOTYxOmZ1bmN0aW9uKGUsdCxvKXt2YXIgcj10aGlzJiZ0aGlzLl9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oZSx0LG8scil7dm9pZCAwPT09ciYmKHI9byksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUscix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdFtvXX19KX06ZnVuY3Rpb24oZSx0LG8scil7dm9pZCAwPT09ciYmKHI9byksZVtyXT10W29dfSksbj10aGlzJiZ0aGlzLl9fZXhwb3J0U3Rhcnx8ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG8gaW4gZSlcImRlZmF1bHRcIj09PW98fE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LG8pfHxyKHQsZSxvKX07T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksbihvKDMwMCksdCksbihvKDMyOSksdCksbihvKDI2NCksdCksbihvKDQ2OSksdCl9LDk3NDooZSx0KT0+e3ZhciBvO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuSW50ZXJhY3Rpdml0eURldGVjdD12b2lkIDAsKG89dC5JbnRlcmFjdGl2aXR5RGV0ZWN0fHwodC5JbnRlcmFjdGl2aXR5RGV0ZWN0PXt9KSkuY2FudmFzPVwiY2FudmFzXCIsby5wYXJlbnQ9XCJwYXJlbnRcIixvLndpbmRvdz1cIndpbmRvd1wifSwyNTI6KGUsdCk9Pnt2YXIgbztPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LkNsaWNrTW9kZT12b2lkIDAsKG89dC5DbGlja01vZGV8fCh0LkNsaWNrTW9kZT17fSkpLmF0dHJhY3Q9XCJhdHRyYWN0XCIsby5idWJibGU9XCJidWJibGVcIixvLnB1c2g9XCJwdXNoXCIsby5yZW1vdmU9XCJyZW1vdmVcIixvLnJlcHVsc2U9XCJyZXB1bHNlXCIsby5wYXVzZT1cInBhdXNlXCIsby50cmFpbD1cInRyYWlsXCJ9LDEzMDooZSx0KT0+e3ZhciBvO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuQ29sbGlzaW9uTW9kZT12b2lkIDAsKG89dC5Db2xsaXNpb25Nb2RlfHwodC5Db2xsaXNpb25Nb2RlPXt9KSkuYWJzb3JiPVwiYWJzb3JiXCIsby5ib3VuY2U9XCJib3VuY2VcIixvLmRlc3Ryb3k9XCJkZXN0cm95XCJ9LDMzMDooZSx0KT0+e3ZhciBvO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuRGVzdHJveU1vZGU9dm9pZCAwLChvPXQuRGVzdHJveU1vZGV8fCh0LkRlc3Ryb3lNb2RlPXt9KSkubm9uZT1cIm5vbmVcIixvLnNwbGl0PVwic3BsaXRcIn0sMjA4OihlLHQpPT57dmFyIG87T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5EaXZNb2RlPXZvaWQgMCwobz10LkRpdk1vZGV8fCh0LkRpdk1vZGU9e30pKS5ib3VuY2U9XCJib3VuY2VcIixvLmJ1YmJsZT1cImJ1YmJsZVwiLG8ucmVwdWxzZT1cInJlcHVsc2VcIn0sMzQ5OihlLHQpPT57dmFyIG87T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5Ib3Zlck1vZGU9dm9pZCAwLChvPXQuSG92ZXJNb2RlfHwodC5Ib3Zlck1vZGU9e30pKS5hdHRyYWN0PVwiYXR0cmFjdFwiLG8uYm91bmNlPVwiYm91bmNlXCIsby5idWJibGU9XCJidWJibGVcIixvLmNvbm5lY3Q9XCJjb25uZWN0XCIsby5ncmFiPVwiZ3JhYlwiLG8ubGlnaHQ9XCJsaWdodFwiLG8ucmVwdWxzZT1cInJlcHVsc2VcIixvLnNsb3c9XCJzbG93XCIsby50cmFpbD1cInRyYWlsXCJ9LDU4MTooZSx0KT0+e3ZhciBvO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuT3V0TW9kZT12b2lkIDAsKG89dC5PdXRNb2RlfHwodC5PdXRNb2RlPXt9KSkuYm91bmNlPVwiYm91bmNlXCIsby5ib3VuY2VIb3Jpem9udGFsPVwiYm91bmNlLWhvcml6b250YWxcIixvLmJvdW5jZVZlcnRpY2FsPVwiYm91bmNlLXZlcnRpY2FsXCIsby5ub25lPVwibm9uZVwiLG8ub3V0PVwib3V0XCIsby5kZXN0cm95PVwiZGVzdHJveVwiLG8uc3BsaXQ9XCJzcGxpdFwifSwxNjQ6KGUsdCk9Pnt2YXIgbztPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LlJlc3BvbnNpdmVNb2RlPXZvaWQgMCwobz10LlJlc3BvbnNpdmVNb2RlfHwodC5SZXNwb25zaXZlTW9kZT17fSkpLnNjcmVlbj1cInNjcmVlblwiLG8uY2FudmFzPVwiY2FudmFzXCJ9LDY2NzooZSx0KT0+e3ZhciBvO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuUm9sbE1vZGU9dm9pZCAwLChvPXQuUm9sbE1vZGV8fCh0LlJvbGxNb2RlPXt9KSkuYm90aD1cImJvdGhcIixvLmhvcml6b250YWw9XCJob3Jpem9udGFsXCIsby52ZXJ0aWNhbD1cInZlcnRpY2FsXCJ9LDg1NTooZSx0KT0+e3ZhciBvO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuU2l6ZU1vZGU9dm9pZCAwLChvPXQuU2l6ZU1vZGV8fCh0LlNpemVNb2RlPXt9KSkucHJlY2lzZT1cInByZWNpc2VcIixvLnBlcmNlbnQ9XCJwZXJjZW50XCJ9LDcwMjooZSx0KT0+e3ZhciBvO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuVGhlbWVNb2RlPXZvaWQgMCwobz10LlRoZW1lTW9kZXx8KHQuVGhlbWVNb2RlPXt9KSkuYW55PVwiYW55XCIsby5kYXJrPVwiZGFya1wiLG8ubGlnaHQ9XCJsaWdodFwifSw1MTU6ZnVuY3Rpb24oZSx0LG8pe3ZhciByPXRoaXMmJnRoaXMuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihlLHQsbyxyKXt2b2lkIDA9PT1yJiYocj1vKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0W29dfX0pfTpmdW5jdGlvbihlLHQsbyxyKXt2b2lkIDA9PT1yJiYocj1vKSxlW3JdPXRbb119KSxuPXRoaXMmJnRoaXMuX19leHBvcnRTdGFyfHxmdW5jdGlvbihlLHQpe2Zvcih2YXIgbyBpbiBlKVwiZGVmYXVsdFwiPT09b3x8T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsbyl8fHIodCxlLG8pfTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxuKG8oMjUyKSx0KSxuKG8oMzMwKSx0KSxuKG8oMjA4KSx0KSxuKG8oMzQ5KSx0KSxuKG8oMTMwKSx0KSxuKG8oNTgxKSx0KSxuKG8oNjY3KSx0KSxuKG8oODU1KSx0KSxuKG8oNzAyKSx0KSxuKG8oMTY0KSx0KX0sNDc6KGUsdCk9Pnt2YXIgbztPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LkFsdGVyVHlwZT12b2lkIDAsKG89dC5BbHRlclR5cGV8fCh0LkFsdGVyVHlwZT17fSkpLmRhcmtlbj1cImRhcmtlblwiLG8uZW5saWdodGVuPVwiZW5saWdodGVuXCJ9LDY0OihlLHQpPT57dmFyIG87T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5EZXN0cm95VHlwZT12b2lkIDAsKG89dC5EZXN0cm95VHlwZXx8KHQuRGVzdHJveVR5cGU9e30pKS5ub25lPVwibm9uZVwiLG8ubWF4PVwibWF4XCIsby5taW49XCJtaW5cIn0sNzEyOihlLHQpPT57dmFyIG87T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5EaXZUeXBlPXZvaWQgMCwobz10LkRpdlR5cGV8fCh0LkRpdlR5cGU9e30pKS5jaXJjbGU9XCJjaXJjbGVcIixvLnJlY3RhbmdsZT1cInJlY3RhbmdsZVwifSw3NzooZSx0KT0+e3ZhciBvO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuRWFzaW5nVHlwZT12b2lkIDAsKG89dC5FYXNpbmdUeXBlfHwodC5FYXNpbmdUeXBlPXt9KSkuZWFzZU91dEJhY2s9XCJlYXNlLW91dC1iYWNrXCIsby5lYXNlT3V0Q2lyYz1cImVhc2Utb3V0LWNpcmNcIixvLmVhc2VPdXRDdWJpYz1cImVhc2Utb3V0LWN1YmljXCIsby5lYXNlT3V0UXVhZD1cImVhc2Utb3V0LXF1YWRcIixvLmVhc2VPdXRRdWFydD1cImVhc2Utb3V0LXF1YXJ0XCIsby5lYXNlT3V0UXVpbnQ9XCJlYXNlLW91dC1xdWludFwiLG8uZWFzZU91dEV4cG89XCJlYXNlLW91dC1leHBvXCIsby5lYXNlT3V0U2luZT1cImVhc2Utb3V0LXNpbmVcIn0sNTg5OihlLHQpPT57dmFyIG87T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5HcmFkaWVudFR5cGU9dm9pZCAwLChvPXQuR3JhZGllbnRUeXBlfHwodC5HcmFkaWVudFR5cGU9e30pKS5saW5lYXI9XCJsaW5lYXJcIixvLnJhZGlhbD1cInJhZGlhbFwiLG8ucmFuZG9tPVwicmFuZG9tXCJ9LDQ1NzooZSx0KT0+e3ZhciBvO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuSW50ZXJhY3RvclR5cGU9dm9pZCAwLChvPXQuSW50ZXJhY3RvclR5cGV8fCh0LkludGVyYWN0b3JUeXBlPXt9KSlbby5FeHRlcm5hbD0wXT1cIkV4dGVybmFsXCIsb1tvLlBhcnRpY2xlcz0xXT1cIlBhcnRpY2xlc1wifSw3OTY6KGUsdCk9Pnt2YXIgbztPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0Lk9yYml0VHlwZT12b2lkIDAsKG89dC5PcmJpdFR5cGV8fCh0Lk9yYml0VHlwZT17fSkpLmZyb250PVwiZnJvbnRcIixvLmJhY2s9XCJiYWNrXCJ9LDI0NzooZSx0KT0+e3ZhciBvO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuU2hhcGVUeXBlPXZvaWQgMCwobz10LlNoYXBlVHlwZXx8KHQuU2hhcGVUeXBlPXt9KSkuY2hhcj1cImNoYXJcIixvLmNoYXJhY3Rlcj1cImNoYXJhY3RlclwiLG8uY2lyY2xlPVwiY2lyY2xlXCIsby5lZGdlPVwiZWRnZVwiLG8uaW1hZ2U9XCJpbWFnZVwiLG8uaW1hZ2VzPVwiaW1hZ2VzXCIsby5saW5lPVwibGluZVwiLG8ucG9seWdvbj1cInBvbHlnb25cIixvLnNxdWFyZT1cInNxdWFyZVwiLG8uc3Rhcj1cInN0YXJcIixvLnRyaWFuZ2xlPVwidHJpYW5nbGVcIn0sNjc2OihlLHQpPT57dmFyIG87T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5TdGFydFZhbHVlVHlwZT12b2lkIDAsKG89dC5TdGFydFZhbHVlVHlwZXx8KHQuU3RhcnRWYWx1ZVR5cGU9e30pKS5tYXg9XCJtYXhcIixvLm1pbj1cIm1pblwiLG8ucmFuZG9tPVwicmFuZG9tXCJ9LDc5OTpmdW5jdGlvbihlLHQsbyl7dmFyIHI9dGhpcyYmdGhpcy5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKGUsdCxvLHIpe3ZvaWQgMD09PXImJihyPW8pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRbb119fSl9OmZ1bmN0aW9uKGUsdCxvLHIpe3ZvaWQgMD09PXImJihyPW8pLGVbcl09dFtvXX0pLG49dGhpcyYmdGhpcy5fX2V4cG9ydFN0YXJ8fGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBvIGluIGUpXCJkZWZhdWx0XCI9PT1vfHxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxvKXx8cih0LGUsbyl9O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLG4obyg0NyksdCksbihvKDY0KSx0KSxuKG8oNTg5KSx0KSxuKG8oNDU3KSx0KSxuKG8oMjQ3KSx0KSxuKG8oNjc2KSx0KSxuKG8oNzEyKSx0KSxuKG8oNzcpLHQpLG4obyg3OTYpLHQpfSw3MTc6ZnVuY3Rpb24oZSx0LG8pe3ZhciByPXRoaXMmJnRoaXMuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihlLHQsbyxyKXt2b2lkIDA9PT1yJiYocj1vKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0W29dfX0pfTpmdW5jdGlvbihlLHQsbyxyKXt2b2lkIDA9PT1yJiYocj1vKSxlW3JdPXRbb119KSxuPXRoaXMmJnRoaXMuX19leHBvcnRTdGFyfHxmdW5jdGlvbihlLHQpe2Zvcih2YXIgbyBpbiBlKVwiZGVmYXVsdFwiPT09b3x8T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsbyl8fHIodCxlLG8pfTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxuKG8oOTYxKSx0KSxuKG8oNTE1KSx0KSxuKG8oODY4KSx0KSxuKG8oNzk5KSx0KSxuKG8oOTc0KSx0KX19LHQ9e307ZnVuY3Rpb24gbyhyKXt2YXIgbj10W3JdO2lmKHZvaWQgMCE9PW4pcmV0dXJuIG4uZXhwb3J0czt2YXIgaT10W3JdPXtleHBvcnRzOnt9fTtyZXR1cm4gZVtyXS5jYWxsKGkuZXhwb3J0cyxpLGkuZXhwb3J0cyxvKSxpLmV4cG9ydHN9by5uPWU9Pnt2YXIgdD1lJiZlLl9fZXNNb2R1bGU/KCk9PmUuZGVmYXVsdDooKT0+ZTtyZXR1cm4gby5kKHQse2E6dH0pLHR9LG8uZD0oZSx0KT0+e2Zvcih2YXIgciBpbiB0KW8ubyh0LHIpJiYhby5vKGUscikmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHIse2VudW1lcmFibGU6ITAsZ2V0OnRbcl19KX0sby5vPShlLHQpPT5PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSx0KSxvLnI9ZT0+e1widW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC50b1N0cmluZ1RhZyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsU3ltYm9sLnRvU3RyaW5nVGFnLHt2YWx1ZTpcIk1vZHVsZVwifSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSl9O3ZhciByPXt9OygoKT0+e28ucihyKSxvLmQocix7ZGVmYXVsdDooKT0+aSxQYXJ0aWNsZXM6KCk9PmUuWn0pO3ZhciBlPW8oOTA0KSx0PW8oNzE3KSxuPXt9O2Zvcihjb25zdCBlIGluIHQpW1wiZGVmYXVsdFwiLFwiUGFydGljbGVzXCJdLmluZGV4T2YoZSk8MCYmKG5bZV09KCk9PnRbZV0pO28uZChyLG4pO2NvbnN0IGk9ZS5afSkoKTt2YXIgbj1leHBvcnRzO2Zvcih2YXIgaSBpbiByKW5baV09cltpXTtyLl9fZXNNb2R1bGUmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pfSkoKTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-tsparticles/cjs/particles.js\n"); + +/***/ }), + +/***/ "./node_modules/react-tsparticles/index.js": +/*!*************************************************!*\ + !*** ./node_modules/react-tsparticles/index.js ***! + \*************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("const ReactParticles = __webpack_require__(/*! ./cjs/particles */ \"./node_modules/react-tsparticles/cjs/particles.js\");\n\nfor (let key in ReactParticles) {\n ReactParticles.default[key] = ReactParticles[key];\n}\n\nmodule.exports = ReactParticles.default;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtdHNwYXJ0aWNsZXMvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQUEsdUJBQXVCLG1CQUFPLENBQUMsMEVBQWlCOztBQUVoRDtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXRzcGFydGljbGVzL2luZGV4LmpzPzMwZjQiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgUmVhY3RQYXJ0aWNsZXMgPSByZXF1aXJlKFwiLi9janMvcGFydGljbGVzXCIpO1xuXG5mb3IgKGxldCBrZXkgaW4gUmVhY3RQYXJ0aWNsZXMpIHtcbiAgICBSZWFjdFBhcnRpY2xlcy5kZWZhdWx0W2tleV0gPSBSZWFjdFBhcnRpY2xlc1trZXldO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0UGFydGljbGVzLmRlZmF1bHQ7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-tsparticles/index.js\n"); + +/***/ }), + +/***/ "./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js": +/*!*************************************************************************!*\ + !*** ./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array<Array>} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof __webpack_require__.g !== 'undefined' && __webpack_require__.g.Math === Math) {\r\n return __webpack_require__.g;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array<ResizeObserverSPI>}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the <html> itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element (<html>).\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array<ResizeObservation>}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map<Element, ResizeObservation>}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (index);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVzaXplLW9ic2VydmVyLXBvbHlmaWxsL2Rpc3QvUmVzaXplT2JzZXJ2ZXIuZXMuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLGNBQWM7QUFDN0IsZUFBZSxHQUFHO0FBQ2xCLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBLG1CQUFtQixHQUFHO0FBQ3RCLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixHQUFHO0FBQ3RCLG1CQUFtQixHQUFHO0FBQ3RCLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLEdBQUc7QUFDdEIscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixHQUFHO0FBQ3RCLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUIsVUFBVTtBQUM3QixtQkFBbUIsR0FBRztBQUN0QixxQkFBcUI7QUFDckI7QUFDQTtBQUNBLGtDQUFrQztBQUNsQyxvREFBb0QsZ0JBQWdCO0FBQ3BFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsZUFBZSxxQkFB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QTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSx3QkFBd0I7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRCwrREFBZSxLQUFLLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3Jlc2l6ZS1vYnNlcnZlci1wb2x5ZmlsbC9kaXN0L1Jlc2l6ZU9ic2VydmVyLmVzLmpzP2YzNDciXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEEgY29sbGVjdGlvbiBvZiBzaGltcyB0aGF0IHByb3ZpZGUgbWluaW1hbCBmdW5jdGlvbmFsaXR5IG9mIHRoZSBFUzYgY29sbGVjdGlvbnMuXHJcbiAqXHJcbiAqIFRoZXNlIGltcGxlbWVudGF0aW9ucyBhcmUgbm90IG1lYW50IHRvIGJlIHVzZWQgb3V0c2lkZSBvZiB0aGUgUmVzaXplT2JzZXJ2ZXJcclxuICogbW9kdWxlcyBhcyB0aGV5IGNvdmVyIG9ubHkgYSBsaW1pdGVkIHJhbmdlIG9mIHVzZSBjYXNlcy5cclxuICovXHJcbi8qIGVzbGludC1kaXNhYmxlIHJlcXVpcmUtanNkb2MsIHZhbGlkLWpzZG9jICovXHJcbnZhciBNYXBTaGltID0gKGZ1bmN0aW9uICgpIHtcclxuICAgIGlmICh0eXBlb2YgTWFwICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgIHJldHVybiBNYXA7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgaW5kZXggaW4gcHJvdmlkZWQgYXJyYXkgdGhhdCBtYXRjaGVzIHRoZSBzcGVjaWZpZWQga2V5LlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7QXJyYXk8QXJyYXk+fSBhcnJcclxuICAgICAqIEBwYXJhbSB7Kn0ga2V5XHJcbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfVxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiBnZXRJbmRleChhcnIsIGtleSkge1xyXG4gICAgICAgIHZhciByZXN1bHQgPSAtMTtcclxuICAgICAgICBhcnIuc29tZShmdW5jdGlvbiAoZW50cnksIGluZGV4KSB7XHJcbiAgICAgICAgICAgIGlmIChlbnRyeVswXSA9PT0ga2V5KSB7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQgPSBpbmRleDtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBmdW5jdGlvbiBjbGFzc18xKCkge1xyXG4gICAgICAgICAgICB0aGlzLl9fZW50cmllc19fID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjbGFzc18xLnByb3RvdHlwZSwgXCJzaXplXCIsIHtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIEByZXR1cm5zIHtib29sZWFufVxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fX2VudHJpZXNfXy5sZW5ndGg7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXHJcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBwYXJhbSB7Kn0ga2V5XHJcbiAgICAgICAgICogQHJldHVybnMgeyp9XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgY2xhc3NfMS5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24gKGtleSkge1xyXG4gICAgICAgICAgICB2YXIgaW5kZXggPSBnZXRJbmRleCh0aGlzLl9fZW50cmllc19fLCBrZXkpO1xyXG4gICAgICAgICAgICB2YXIgZW50cnkgPSB0aGlzLl9fZW50cmllc19fW2luZGV4XTtcclxuICAgICAgICAgICAgcmV0dXJuIGVudHJ5ICYmIGVudHJ5WzFdO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQHBhcmFtIHsqfSBrZXlcclxuICAgICAgICAgKiBAcGFyYW0geyp9IHZhbHVlXHJcbiAgICAgICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgY2xhc3NfMS5wcm90b3R5cGUuc2V0ID0gZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcclxuICAgICAgICAgICAgdmFyIGluZGV4ID0gZ2V0SW5kZXgodGhpcy5fX2VudHJpZXNfXywga2V5KTtcclxuICAgICAgICAgICAgaWYgKH5pbmRleCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fX2VudHJpZXNfX1tpbmRleF1bMV0gPSB2YWx1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX19lbnRyaWVzX18ucHVzaChba2V5LCB2YWx1ZV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAcGFyYW0geyp9IGtleVxyXG4gICAgICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGNsYXNzXzEucHJvdG90eXBlLmRlbGV0ZSA9IGZ1bmN0aW9uIChrZXkpIHtcclxuICAgICAgICAgICAgdmFyIGVudHJpZXMgPSB0aGlzLl9fZW50cmllc19fO1xyXG4gICAgICAgICAgICB2YXIgaW5kZXggPSBnZXRJbmRleChlbnRyaWVzLCBrZXkpO1xyXG4gICAgICAgICAgICBpZiAofmluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICBlbnRyaWVzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBwYXJhbSB7Kn0ga2V5XHJcbiAgICAgICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgY2xhc3NfMS5wcm90b3R5cGUuaGFzID0gZnVuY3Rpb24gKGtleSkge1xyXG4gICAgICAgICAgICByZXR1cm4gISF+Z2V0SW5kZXgodGhpcy5fX2VudHJpZXNfXywga2V5KTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGNsYXNzXzEucHJvdG90eXBlLmNsZWFyID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICB0aGlzLl9fZW50cmllc19fLnNwbGljZSgwKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrXHJcbiAgICAgICAgICogQHBhcmFtIHsqfSBbY3R4PW51bGxdXHJcbiAgICAgICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgY2xhc3NfMS5wcm90b3R5cGUuZm9yRWFjaCA9IGZ1bmN0aW9uIChjYWxsYmFjaywgY3R4KSB7XHJcbiAgICAgICAgICAgIGlmIChjdHggPT09IHZvaWQgMCkgeyBjdHggPSBudWxsOyB9XHJcbiAgICAgICAgICAgIGZvciAodmFyIF9pID0gMCwgX2EgPSB0aGlzLl9fZW50cmllc19fOyBfaSA8IF9hLmxlbmd0aDsgX2krKykge1xyXG4gICAgICAgICAgICAgICAgdmFyIGVudHJ5ID0gX2FbX2ldO1xyXG4gICAgICAgICAgICAgICAgY2FsbGJhY2suY2FsbChjdHgsIGVudHJ5WzFdLCBlbnRyeVswXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiBjbGFzc18xO1xyXG4gICAgfSgpKTtcclxufSkoKTtcblxuLyoqXHJcbiAqIERldGVjdHMgd2hldGhlciB3aW5kb3cgYW5kIGRvY3VtZW50IG9iamVjdHMgYXJlIGF2YWlsYWJsZSBpbiBjdXJyZW50IGVudmlyb25tZW50LlxyXG4gKi9cclxudmFyIGlzQnJvd3NlciA9IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LmRvY3VtZW50ID09PSBkb2N1bWVudDtcblxuLy8gUmV0dXJucyBnbG9iYWwgb2JqZWN0IG9mIGEgY3VycmVudCBlbnZpcm9ubWVudC5cclxudmFyIGdsb2JhbCQxID0gKGZ1bmN0aW9uICgpIHtcclxuICAgIGlmICh0eXBlb2YgZ2xvYmFsICE9PSAndW5kZWZpbmVkJyAmJiBnbG9iYWwuTWF0aCA9PT0gTWF0aCkge1xyXG4gICAgICAgIHJldHVybiBnbG9iYWw7XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZW9mIHNlbGYgIT09ICd1bmRlZmluZWQnICYmIHNlbGYuTWF0aCA9PT0gTWF0aCkge1xyXG4gICAgICAgIHJldHVybiBzZWxmO1xyXG4gICAgfVxyXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5NYXRoID09PSBNYXRoKSB7XHJcbiAgICAgICAgcmV0dXJuIHdpbmRvdztcclxuICAgIH1cclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1uZXctZnVuY1xyXG4gICAgcmV0dXJuIEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XHJcbn0pKCk7XG5cbi8qKlxyXG4gKiBBIHNoaW0gZm9yIHRoZSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgd2hpY2ggZmFsbHMgYmFjayB0byB0aGUgc2V0VGltZW91dCBpZlxyXG4gKiBmaXJzdCBvbmUgaXMgbm90IHN1cHBvcnRlZC5cclxuICpcclxuICogQHJldHVybnMge251bWJlcn0gUmVxdWVzdHMnIGlkZW50aWZpZXIuXHJcbiAqL1xyXG52YXIgcmVxdWVzdEFuaW1hdGlvbkZyYW1lJDEgPSAoZnVuY3Rpb24gKCkge1xyXG4gICAgaWYgKHR5cGVvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAvLyBJdCdzIHJlcXVpcmVkIHRvIHVzZSBhIGJvdW5kZWQgZnVuY3Rpb24gYmVjYXVzZSBJRSBzb21ldGltZXMgdGhyb3dzXHJcbiAgICAgICAgLy8gYW4gXCJJbnZhbGlkIGNhbGxpbmcgb2JqZWN0XCIgZXJyb3IgaWYgckFGIGlzIGludm9rZWQgd2l0aG91dCB0aGUgZ2xvYmFsXHJcbiAgICAgICAgLy8gb2JqZWN0IG9uIHRoZSBsZWZ0IGhhbmQgc2lkZS5cclxuICAgICAgICByZXR1cm4gcmVxdWVzdEFuaW1hdGlvbkZyYW1lLmJpbmQoZ2xvYmFsJDEpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZ1bmN0aW9uIChjYWxsYmFjaykgeyByZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7IHJldHVybiBjYWxsYmFjayhEYXRlLm5vdygpKTsgfSwgMTAwMCAvIDYwKTsgfTtcclxufSkoKTtcblxuLy8gRGVmaW5lcyBtaW5pbXVtIHRpbWVvdXQgYmVmb3JlIGFkZGluZyBhIHRyYWlsaW5nIGNhbGwuXHJcbnZhciB0cmFpbGluZ1RpbWVvdXQgPSAyO1xyXG4vKipcclxuICogQ3JlYXRlcyBhIHdyYXBwZXIgZnVuY3Rpb24gd2hpY2ggZW5zdXJlcyB0aGF0IHByb3ZpZGVkIGNhbGxiYWNrIHdpbGwgYmVcclxuICogaW52b2tlZCBvbmx5IG9uY2UgZHVyaW5nIHRoZSBzcGVjaWZpZWQgZGVsYXkgcGVyaW9kLlxyXG4gKlxyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFjayAtIEZ1bmN0aW9uIHRvIGJlIGludm9rZWQgYWZ0ZXIgdGhlIGRlbGF5IHBlcmlvZC5cclxuICogQHBhcmFtIHtudW1iZXJ9IGRlbGF5IC0gRGVsYXkgYWZ0ZXIgd2hpY2ggdG8gaW52b2tlIGNhbGxiYWNrLlxyXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259XHJcbiAqL1xyXG5mdW5jdGlvbiB0aHJvdHRsZSAoY2FsbGJhY2ssIGRlbGF5KSB7XHJcbiAgICB2YXIgbGVhZGluZ0NhbGwgPSBmYWxzZSwgdHJhaWxpbmdDYWxsID0gZmFsc2UsIGxhc3RDYWxsVGltZSA9IDA7XHJcbiAgICAvKipcclxuICAgICAqIEludm9rZXMgdGhlIG9yaWdpbmFsIGNhbGxiYWNrIGZ1bmN0aW9uIGFuZCBzY2hlZHVsZXMgbmV3IGludm9jYXRpb24gaWZcclxuICAgICAqIHRoZSBcInByb3h5XCIgd2FzIGNhbGxlZCBkdXJpbmcgY3VycmVudCByZXF1ZXN0LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiByZXNvbHZlUGVuZGluZygpIHtcclxuICAgICAgICBpZiAobGVhZGluZ0NhbGwpIHtcclxuICAgICAgICAgICAgbGVhZGluZ0NhbGwgPSBmYWxzZTtcclxuICAgICAgICAgICAgY2FsbGJhY2soKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRyYWlsaW5nQ2FsbCkge1xyXG4gICAgICAgICAgICBwcm94eSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGJhY2sgaW52b2tlZCBhZnRlciB0aGUgc3BlY2lmaWVkIGRlbGF5LiBJdCB3aWxsIGZ1cnRoZXIgcG9zdHBvbmVcclxuICAgICAqIGludm9jYXRpb24gb2YgdGhlIG9yaWdpbmFsIGZ1bmN0aW9uIGRlbGVnYXRpbmcgaXQgdG8gdGhlXHJcbiAgICAgKiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgKi9cclxuICAgIGZ1bmN0aW9uIHRpbWVvdXRDYWxsYmFjaygpIHtcclxuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUkMShyZXNvbHZlUGVuZGluZyk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFNjaGVkdWxlcyBpbnZvY2F0aW9uIG9mIHRoZSBvcmlnaW5hbCBmdW5jdGlvbi5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgZnVuY3Rpb24gcHJveHkoKSB7XHJcbiAgICAgICAgdmFyIHRpbWVTdGFtcCA9IERhdGUubm93KCk7XHJcbiAgICAgICAgaWYgKGxlYWRpbmdDYWxsKSB7XHJcbiAgICAgICAgICAgIC8vIFJlamVjdCBpbW1lZGlhdGVseSBmb2xsb3dpbmcgY2FsbHMuXHJcbiAgICAgICAgICAgIGlmICh0aW1lU3RhbXAgLSBsYXN0Q2FsbFRpbWUgPCB0cmFpbGluZ1RpbWVvdXQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBTY2hlZHVsZSBuZXcgY2FsbCB0byBiZSBpbiBpbnZva2VkIHdoZW4gdGhlIHBlbmRpbmcgb25lIGlzIHJlc29sdmVkLlxyXG4gICAgICAgICAgICAvLyBUaGlzIGlzIGltcG9ydGFudCBmb3IgXCJ0cmFuc2l0aW9uc1wiIHdoaWNoIG5ldmVyIGFjdHVhbGx5IHN0YXJ0XHJcbiAgICAgICAgICAgIC8vIGltbWVkaWF0ZWx5IHNvIHRoZXJlIGlzIGEgY2hhbmNlIHRoYXQgd2UgbWlnaHQgbWlzcyBvbmUgaWYgY2hhbmdlXHJcbiAgICAgICAgICAgIC8vIGhhcHBlbnMgYW1pZHMgdGhlIHBlbmRpbmcgaW52b2NhdGlvbi5cclxuICAgICAgICAgICAgdHJhaWxpbmdDYWxsID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGxlYWRpbmdDYWxsID0gdHJ1ZTtcclxuICAgICAgICAgICAgdHJhaWxpbmdDYWxsID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQodGltZW91dENhbGxiYWNrLCBkZWxheSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxhc3RDYWxsVGltZSA9IHRpbWVTdGFtcDtcclxuICAgIH1cclxuICAgIHJldHVybiBwcm94eTtcclxufVxuXG4vLyBNaW5pbXVtIGRlbGF5IGJlZm9yZSBpbnZva2luZyB0aGUgdXBkYXRlIG9mIG9ic2VydmVycy5cclxudmFyIFJFRlJFU0hfREVMQVkgPSAyMDtcclxuLy8gQSBsaXN0IG9mIHN1YnN0cmluZ3Mgb2YgQ1NTIHByb3BlcnRpZXMgdXNlZCB0byBmaW5kIHRyYW5zaXRpb24gZXZlbnRzIHRoYXRcclxuLy8gbWlnaHQgYWZmZWN0IGRpbWVuc2lvbnMgb2Ygb2JzZXJ2ZWQgZWxlbWVudHMuXHJcbnZhciB0cmFuc2l0aW9uS2V5cyA9IFsndG9wJywgJ3JpZ2h0JywgJ2JvdHRvbScsICdsZWZ0JywgJ3dpZHRoJywgJ2hlaWdodCcsICdzaXplJywgJ3dlaWdodCddO1xyXG4vLyBDaGVjayBpZiBNdXRhdGlvbk9ic2VydmVyIGlzIGF2YWlsYWJsZS5cclxudmFyIG11dGF0aW9uT2JzZXJ2ZXJTdXBwb3J0ZWQgPSB0eXBlb2YgTXV0YXRpb25PYnNlcnZlciAhPT0gJ3VuZGVmaW5lZCc7XHJcbi8qKlxyXG4gKiBTaW5nbGV0b24gY29udHJvbGxlciBjbGFzcyB3aGljaCBoYW5kbGVzIHVwZGF0ZXMgb2YgUmVzaXplT2JzZXJ2ZXIgaW5zdGFuY2VzLlxyXG4gKi9cclxudmFyIFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlciA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiBSZXNpemVPYnNlcnZlckNvbnRyb2xsZXIuXHJcbiAgICAgKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgZnVuY3Rpb24gUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyKCkge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEluZGljYXRlcyB3aGV0aGVyIERPTSBsaXN0ZW5lcnMgaGF2ZSBiZWVuIGFkZGVkLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHByaXZhdGUge2Jvb2xlYW59XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5jb25uZWN0ZWRfID0gZmFsc2U7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGVsbHMgdGhhdCBjb250cm9sbGVyIGhhcyBzdWJzY3JpYmVkIGZvciBNdXRhdGlvbiBFdmVudHMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAcHJpdmF0ZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLm11dGF0aW9uRXZlbnRzQWRkZWRfID0gZmFsc2U7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogS2VlcHMgcmVmZXJlbmNlIHRvIHRoZSBpbnN0YW5jZSBvZiBNdXRhdGlvbk9ic2VydmVyLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHByaXZhdGUge011dGF0aW9uT2JzZXJ2ZXJ9XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5tdXRhdGlvbnNPYnNlcnZlcl8gPSBudWxsO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEEgbGlzdCBvZiBjb25uZWN0ZWQgb2JzZXJ2ZXJzLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHByaXZhdGUge0FycmF5PFJlc2l6ZU9ic2VydmVyU1BJPn1cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLm9ic2VydmVyc18gPSBbXTtcclxuICAgICAgICB0aGlzLm9uVHJhbnNpdGlvbkVuZF8gPSB0aGlzLm9uVHJhbnNpdGlvbkVuZF8uYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLnJlZnJlc2ggPSB0aHJvdHRsZSh0aGlzLnJlZnJlc2guYmluZCh0aGlzKSwgUkVGUkVTSF9ERUxBWSk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIEFkZHMgb2JzZXJ2ZXIgdG8gb2JzZXJ2ZXJzIGxpc3QuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtSZXNpemVPYnNlcnZlclNQSX0gb2JzZXJ2ZXIgLSBPYnNlcnZlciB0byBiZSBhZGRlZC5cclxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZlckNvbnRyb2xsZXIucHJvdG90eXBlLmFkZE9ic2VydmVyID0gZnVuY3Rpb24gKG9ic2VydmVyKSB7XHJcbiAgICAgICAgaWYgKCF+dGhpcy5vYnNlcnZlcnNfLmluZGV4T2Yob2JzZXJ2ZXIpKSB7XHJcbiAgICAgICAgICAgIHRoaXMub2JzZXJ2ZXJzXy5wdXNoKG9ic2VydmVyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gQWRkIGxpc3RlbmVycyBpZiB0aGV5IGhhdmVuJ3QgYmVlbiBhZGRlZCB5ZXQuXHJcbiAgICAgICAgaWYgKCF0aGlzLmNvbm5lY3RlZF8pIHtcclxuICAgICAgICAgICAgdGhpcy5jb25uZWN0XygpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIFJlbW92ZXMgb2JzZXJ2ZXIgZnJvbSBvYnNlcnZlcnMgbGlzdC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1Jlc2l6ZU9ic2VydmVyU1BJfSBvYnNlcnZlciAtIE9ic2VydmVyIHRvIGJlIHJlbW92ZWQuXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyLnByb3RvdHlwZS5yZW1vdmVPYnNlcnZlciA9IGZ1bmN0aW9uIChvYnNlcnZlcikge1xyXG4gICAgICAgIHZhciBvYnNlcnZlcnMgPSB0aGlzLm9ic2VydmVyc187XHJcbiAgICAgICAgdmFyIGluZGV4ID0gb2JzZXJ2ZXJzLmluZGV4T2Yob2JzZXJ2ZXIpO1xyXG4gICAgICAgIC8vIFJlbW92ZSBvYnNlcnZlciBpZiBpdCdzIHByZXNlbnQgaW4gcmVnaXN0cnkuXHJcbiAgICAgICAgaWYgKH5pbmRleCkge1xyXG4gICAgICAgICAgICBvYnNlcnZlcnMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gUmVtb3ZlIGxpc3RlbmVycyBpZiBjb250cm9sbGVyIGhhcyBubyBjb25uZWN0ZWQgb2JzZXJ2ZXJzLlxyXG4gICAgICAgIGlmICghb2JzZXJ2ZXJzLmxlbmd0aCAmJiB0aGlzLmNvbm5lY3RlZF8pIHtcclxuICAgICAgICAgICAgdGhpcy5kaXNjb25uZWN0XygpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIEludm9rZXMgdGhlIHVwZGF0ZSBvZiBvYnNlcnZlcnMuIEl0IHdpbGwgY29udGludWUgcnVubmluZyB1cGRhdGVzIGluc29mYXJcclxuICAgICAqIGl0IGRldGVjdHMgY2hhbmdlcy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyLnByb3RvdHlwZS5yZWZyZXNoID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHZhciBjaGFuZ2VzRGV0ZWN0ZWQgPSB0aGlzLnVwZGF0ZU9ic2VydmVyc18oKTtcclxuICAgICAgICAvLyBDb250aW51ZSBydW5uaW5nIHVwZGF0ZXMgaWYgY2hhbmdlcyBoYXZlIGJlZW4gZGV0ZWN0ZWQgYXMgdGhlcmUgbWlnaHRcclxuICAgICAgICAvLyBiZSBmdXR1cmUgb25lcyBjYXVzZWQgYnkgQ1NTIHRyYW5zaXRpb25zLlxyXG4gICAgICAgIGlmIChjaGFuZ2VzRGV0ZWN0ZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlcyBldmVyeSBvYnNlcnZlciBmcm9tIG9ic2VydmVycyBsaXN0IGFuZCBub3RpZmllcyB0aGVtIG9mIHF1ZXVlZFxyXG4gICAgICogZW50cmllcy5cclxuICAgICAqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgXCJ0cnVlXCIgaWYgYW55IG9ic2VydmVyIGhhcyBkZXRlY3RlZCBjaGFuZ2VzIGluXHJcbiAgICAgKiAgICAgIGRpbWVuc2lvbnMgb2YgaXQncyBlbGVtZW50cy5cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyLnByb3RvdHlwZS51cGRhdGVPYnNlcnZlcnNfID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIC8vIENvbGxlY3Qgb2JzZXJ2ZXJzIHRoYXQgaGF2ZSBhY3RpdmUgb2JzZXJ2YXRpb25zLlxyXG4gICAgICAgIHZhciBhY3RpdmVPYnNlcnZlcnMgPSB0aGlzLm9ic2VydmVyc18uZmlsdGVyKGZ1bmN0aW9uIChvYnNlcnZlcikge1xyXG4gICAgICAgICAgICByZXR1cm4gb2JzZXJ2ZXIuZ2F0aGVyQWN0aXZlKCksIG9ic2VydmVyLmhhc0FjdGl2ZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8vIERlbGl2ZXIgbm90aWZpY2F0aW9ucyBpbiBhIHNlcGFyYXRlIGN5Y2xlIGluIG9yZGVyIHRvIGF2b2lkIGFueVxyXG4gICAgICAgIC8vIGNvbGxpc2lvbnMgYmV0d2VlbiBvYnNlcnZlcnMsIGUuZy4gd2hlbiBtdWx0aXBsZSBpbnN0YW5jZXMgb2ZcclxuICAgICAgICAvLyBSZXNpemVPYnNlcnZlciBhcmUgdHJhY2tpbmcgdGhlIHNhbWUgZWxlbWVudCBhbmQgdGhlIGNhbGxiYWNrIG9mIG9uZVxyXG4gICAgICAgIC8vIG9mIHRoZW0gY2hhbmdlcyBjb250ZW50IGRpbWVuc2lvbnMgb2YgdGhlIG9ic2VydmVkIHRhcmdldC4gU29tZXRpbWVzXHJcbiAgICAgICAgLy8gdGhpcyBtYXkgcmVzdWx0IGluIG5vdGlmaWNhdGlvbnMgYmVpbmcgYmxvY2tlZCBmb3IgdGhlIHJlc3Qgb2Ygb2JzZXJ2ZXJzLlxyXG4gICAgICAgIGFjdGl2ZU9ic2VydmVycy5mb3JFYWNoKGZ1bmN0aW9uIChvYnNlcnZlcikgeyByZXR1cm4gb2JzZXJ2ZXIuYnJvYWRjYXN0QWN0aXZlKCk7IH0pO1xyXG4gICAgICAgIHJldHVybiBhY3RpdmVPYnNlcnZlcnMubGVuZ3RoID4gMDtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemVzIERPTSBsaXN0ZW5lcnMuXHJcbiAgICAgKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZlckNvbnRyb2xsZXIucHJvdG90eXBlLmNvbm5lY3RfID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIC8vIERvIG5vdGhpbmcgaWYgcnVubmluZyBpbiBhIG5vbi1icm93c2VyIGVudmlyb25tZW50IG9yIGlmIGxpc3RlbmVyc1xyXG4gICAgICAgIC8vIGhhdmUgYmVlbiBhbHJlYWR5IGFkZGVkLlxyXG4gICAgICAgIGlmICghaXNCcm93c2VyIHx8IHRoaXMuY29ubmVjdGVkXykge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFN1YnNjcmlwdGlvbiB0byB0aGUgXCJUcmFuc2l0aW9uZW5kXCIgZXZlbnQgaXMgdXNlZCBhcyBhIHdvcmthcm91bmQgZm9yXHJcbiAgICAgICAgLy8gZGVsYXllZCB0cmFuc2l0aW9ucy4gVGhpcyB3YXkgaXQncyBwb3NzaWJsZSB0byBjYXB0dXJlIGF0IGxlYXN0IHRoZVxyXG4gICAgICAgIC8vIGZpbmFsIHN0YXRlIG9mIGFuIGVsZW1lbnQuXHJcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndHJhbnNpdGlvbmVuZCcsIHRoaXMub25UcmFuc2l0aW9uRW5kXyk7XHJcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMucmVmcmVzaCk7XHJcbiAgICAgICAgaWYgKG11dGF0aW9uT2JzZXJ2ZXJTdXBwb3J0ZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5tdXRhdGlvbnNPYnNlcnZlcl8gPSBuZXcgTXV0YXRpb25PYnNlcnZlcih0aGlzLnJlZnJlc2gpO1xyXG4gICAgICAgICAgICB0aGlzLm11dGF0aW9uc09ic2VydmVyXy5vYnNlcnZlKGRvY3VtZW50LCB7XHJcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgY2hpbGRMaXN0OiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgY2hhcmFjdGVyRGF0YTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIHN1YnRyZWU6IHRydWVcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01TdWJ0cmVlTW9kaWZpZWQnLCB0aGlzLnJlZnJlc2gpO1xyXG4gICAgICAgICAgICB0aGlzLm11dGF0aW9uRXZlbnRzQWRkZWRfID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jb25uZWN0ZWRfID0gdHJ1ZTtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIFJlbW92ZXMgRE9NIGxpc3RlbmVycy5cclxuICAgICAqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgKi9cclxuICAgIFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlci5wcm90b3R5cGUuZGlzY29ubmVjdF8gPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgLy8gRG8gbm90aGluZyBpZiBydW5uaW5nIGluIGEgbm9uLWJyb3dzZXIgZW52aXJvbm1lbnQgb3IgaWYgbGlzdGVuZXJzXHJcbiAgICAgICAgLy8gaGF2ZSBiZWVuIGFscmVhZHkgcmVtb3ZlZC5cclxuICAgICAgICBpZiAoIWlzQnJvd3NlciB8fCAhdGhpcy5jb25uZWN0ZWRfKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndHJhbnNpdGlvbmVuZCcsIHRoaXMub25UcmFuc2l0aW9uRW5kXyk7XHJcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMucmVmcmVzaCk7XHJcbiAgICAgICAgaWYgKHRoaXMubXV0YXRpb25zT2JzZXJ2ZXJfKSB7XHJcbiAgICAgICAgICAgIHRoaXMubXV0YXRpb25zT2JzZXJ2ZXJfLmRpc2Nvbm5lY3QoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMubXV0YXRpb25FdmVudHNBZGRlZF8pIHtcclxuICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignRE9NU3VidHJlZU1vZGlmaWVkJywgdGhpcy5yZWZyZXNoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5tdXRhdGlvbnNPYnNlcnZlcl8gPSBudWxsO1xyXG4gICAgICAgIHRoaXMubXV0YXRpb25FdmVudHNBZGRlZF8gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmNvbm5lY3RlZF8gPSBmYWxzZTtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIFwiVHJhbnNpdGlvbmVuZFwiIGV2ZW50IGhhbmRsZXIuXHJcbiAgICAgKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEBwYXJhbSB7VHJhbnNpdGlvbkV2ZW50fSBldmVudFxyXG4gICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgKi9cclxuICAgIFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlci5wcm90b3R5cGUub25UcmFuc2l0aW9uRW5kXyA9IGZ1bmN0aW9uIChfYSkge1xyXG4gICAgICAgIHZhciBfYiA9IF9hLnByb3BlcnR5TmFtZSwgcHJvcGVydHlOYW1lID0gX2IgPT09IHZvaWQgMCA/ICcnIDogX2I7XHJcbiAgICAgICAgLy8gRGV0ZWN0IHdoZXRoZXIgdHJhbnNpdGlvbiBtYXkgYWZmZWN0IGRpbWVuc2lvbnMgb2YgYW4gZWxlbWVudC5cclxuICAgICAgICB2YXIgaXNSZWZsb3dQcm9wZXJ0eSA9IHRyYW5zaXRpb25LZXlzLnNvbWUoZnVuY3Rpb24gKGtleSkge1xyXG4gICAgICAgICAgICByZXR1cm4gISF+cHJvcGVydHlOYW1lLmluZGV4T2Yoa2V5KTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAoaXNSZWZsb3dQcm9wZXJ0eSkge1xyXG4gICAgICAgICAgICB0aGlzLnJlZnJlc2goKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIGluc3RhbmNlIG9mIHRoZSBSZXNpemVPYnNlcnZlckNvbnRyb2xsZXIuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMge1Jlc2l6ZU9ic2VydmVyQ29udHJvbGxlcn1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyLmdldEluc3RhbmNlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5pbnN0YW5jZV8pIHtcclxuICAgICAgICAgICAgdGhpcy5pbnN0YW5jZV8gPSBuZXcgUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmluc3RhbmNlXztcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIEhvbGRzIHJlZmVyZW5jZSB0byB0aGUgY29udHJvbGxlcidzIGluc3RhbmNlLlxyXG4gICAgICpcclxuICAgICAqIEBwcml2YXRlIHtSZXNpemVPYnNlcnZlckNvbnRyb2xsZXJ9XHJcbiAgICAgKi9cclxuICAgIFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlci5pbnN0YW5jZV8gPSBudWxsO1xyXG4gICAgcmV0dXJuIFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlcjtcclxufSgpKTtcblxuLyoqXHJcbiAqIERlZmluZXMgbm9uLXdyaXRhYmxlL2VudW1lcmFibGUgcHJvcGVydGllcyBvZiB0aGUgcHJvdmlkZWQgdGFyZ2V0IG9iamVjdC5cclxuICpcclxuICogQHBhcmFtIHtPYmplY3R9IHRhcmdldCAtIE9iamVjdCBmb3Igd2hpY2ggdG8gZGVmaW5lIHByb3BlcnRpZXMuXHJcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIFByb3BlcnRpZXMgdG8gYmUgZGVmaW5lZC5cclxuICogQHJldHVybnMge09iamVjdH0gVGFyZ2V0IG9iamVjdC5cclxuICovXHJcbnZhciBkZWZpbmVDb25maWd1cmFibGUgPSAoZnVuY3Rpb24gKHRhcmdldCwgcHJvcHMpIHtcclxuICAgIGZvciAodmFyIF9pID0gMCwgX2EgPSBPYmplY3Qua2V5cyhwcm9wcyk7IF9pIDwgX2EubGVuZ3RoOyBfaSsrKSB7XHJcbiAgICAgICAgdmFyIGtleSA9IF9hW19pXTtcclxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHtcclxuICAgICAgICAgICAgdmFsdWU6IHByb3BzW2tleV0sXHJcbiAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxyXG4gICAgICAgICAgICB3cml0YWJsZTogZmFsc2UsXHJcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRhcmdldDtcclxufSk7XG5cbi8qKlxyXG4gKiBSZXR1cm5zIHRoZSBnbG9iYWwgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCBwcm92aWRlZCBlbGVtZW50LlxyXG4gKlxyXG4gKiBAcGFyYW0ge09iamVjdH0gdGFyZ2V0XHJcbiAqIEByZXR1cm5zIHtPYmplY3R9XHJcbiAqL1xyXG52YXIgZ2V0V2luZG93T2YgPSAoZnVuY3Rpb24gKHRhcmdldCkge1xyXG4gICAgLy8gQXNzdW1lIHRoYXQgdGhlIGVsZW1lbnQgaXMgYW4gaW5zdGFuY2Ugb2YgTm9kZSwgd2hpY2ggbWVhbnMgdGhhdCBpdFxyXG4gICAgLy8gaGFzIHRoZSBcIm93bmVyRG9jdW1lbnRcIiBwcm9wZXJ0eSBmcm9tIHdoaWNoIHdlIGNhbiByZXRyaWV2ZSBhXHJcbiAgICAvLyBjb3JyZXNwb25kaW5nIGdsb2JhbCBvYmplY3QuXHJcbiAgICB2YXIgb3duZXJHbG9iYWwgPSB0YXJnZXQgJiYgdGFyZ2V0Lm93bmVyRG9jdW1lbnQgJiYgdGFyZ2V0Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc7XHJcbiAgICAvLyBSZXR1cm4gdGhlIGxvY2FsIGdsb2JhbCBvYmplY3QgaWYgaXQncyBub3QgcG9zc2libGUgZXh0cmFjdCBvbmUgZnJvbVxyXG4gICAgLy8gcHJvdmlkZWQgZWxlbWVudC5cclxuICAgIHJldHVybiBvd25lckdsb2JhbCB8fCBnbG9iYWwkMTtcclxufSk7XG5cbi8vIFBsYWNlaG9sZGVyIG9mIGFuIGVtcHR5IGNvbnRlbnQgcmVjdGFuZ2xlLlxyXG52YXIgZW1wdHlSZWN0ID0gY3JlYXRlUmVjdEluaXQoMCwgMCwgMCwgMCk7XHJcbi8qKlxyXG4gKiBDb252ZXJ0cyBwcm92aWRlZCBzdHJpbmcgdG8gYSBudW1iZXIuXHJcbiAqXHJcbiAqIEBwYXJhbSB7bnVtYmVyfHN0cmluZ30gdmFsdWVcclxuICogQHJldHVybnMge251bWJlcn1cclxuICovXHJcbmZ1bmN0aW9uIHRvRmxvYXQodmFsdWUpIHtcclxuICAgIHJldHVybiBwYXJzZUZsb2F0KHZhbHVlKSB8fCAwO1xyXG59XHJcbi8qKlxyXG4gKiBFeHRyYWN0cyBib3JkZXJzIHNpemUgZnJvbSBwcm92aWRlZCBzdHlsZXMuXHJcbiAqXHJcbiAqIEBwYXJhbSB7Q1NTU3R5bGVEZWNsYXJhdGlvbn0gc3R5bGVzXHJcbiAqIEBwYXJhbSB7Li4uc3RyaW5nfSBwb3NpdGlvbnMgLSBCb3JkZXJzIHBvc2l0aW9ucyAodG9wLCByaWdodCwgLi4uKVxyXG4gKiBAcmV0dXJucyB7bnVtYmVyfVxyXG4gKi9cclxuZnVuY3Rpb24gZ2V0Qm9yZGVyc1NpemUoc3R5bGVzKSB7XHJcbiAgICB2YXIgcG9zaXRpb25zID0gW107XHJcbiAgICBmb3IgKHZhciBfaSA9IDE7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykge1xyXG4gICAgICAgIHBvc2l0aW9uc1tfaSAtIDFdID0gYXJndW1lbnRzW19pXTtcclxuICAgIH1cclxuICAgIHJldHVybiBwb3NpdGlvbnMucmVkdWNlKGZ1bmN0aW9uIChzaXplLCBwb3NpdGlvbikge1xyXG4gICAgICAgIHZhciB2YWx1ZSA9IHN0eWxlc1snYm9yZGVyLScgKyBwb3NpdGlvbiArICctd2lkdGgnXTtcclxuICAgICAgICByZXR1cm4gc2l6ZSArIHRvRmxvYXQodmFsdWUpO1xyXG4gICAgfSwgMCk7XHJcbn1cclxuLyoqXHJcbiAqIEV4dHJhY3RzIHBhZGRpbmdzIHNpemVzIGZyb20gcHJvdmlkZWQgc3R5bGVzLlxyXG4gKlxyXG4gKiBAcGFyYW0ge0NTU1N0eWxlRGVjbGFyYXRpb259IHN0eWxlc1xyXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBQYWRkaW5ncyBib3guXHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRQYWRkaW5ncyhzdHlsZXMpIHtcclxuICAgIHZhciBwb3NpdGlvbnMgPSBbJ3RvcCcsICdyaWdodCcsICdib3R0b20nLCAnbGVmdCddO1xyXG4gICAgdmFyIHBhZGRpbmdzID0ge307XHJcbiAgICBmb3IgKHZhciBfaSA9IDAsIHBvc2l0aW9uc18xID0gcG9zaXRpb25zOyBfaSA8IHBvc2l0aW9uc18xLmxlbmd0aDsgX2krKykge1xyXG4gICAgICAgIHZhciBwb3NpdGlvbiA9IHBvc2l0aW9uc18xW19pXTtcclxuICAgICAgICB2YXIgdmFsdWUgPSBzdHlsZXNbJ3BhZGRpbmctJyArIHBvc2l0aW9uXTtcclxuICAgICAgICBwYWRkaW5nc1twb3NpdGlvbl0gPSB0b0Zsb2F0KHZhbHVlKTtcclxuICAgIH1cclxuICAgIHJldHVybiBwYWRkaW5ncztcclxufVxyXG4vKipcclxuICogQ2FsY3VsYXRlcyBjb250ZW50IHJlY3RhbmdsZSBvZiBwcm92aWRlZCBTVkcgZWxlbWVudC5cclxuICpcclxuICogQHBhcmFtIHtTVkdHcmFwaGljc0VsZW1lbnR9IHRhcmdldCAtIEVsZW1lbnQgY29udGVudCByZWN0YW5nbGUgb2Ygd2hpY2ggbmVlZHNcclxuICogICAgICB0byBiZSBjYWxjdWxhdGVkLlxyXG4gKiBAcmV0dXJucyB7RE9NUmVjdEluaXR9XHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRTVkdDb250ZW50UmVjdCh0YXJnZXQpIHtcclxuICAgIHZhciBiYm94ID0gdGFyZ2V0LmdldEJCb3goKTtcclxuICAgIHJldHVybiBjcmVhdGVSZWN0SW5pdCgwLCAwLCBiYm94LndpZHRoLCBiYm94LmhlaWdodCk7XHJcbn1cclxuLyoqXHJcbiAqIENhbGN1bGF0ZXMgY29udGVudCByZWN0YW5nbGUgb2YgcHJvdmlkZWQgSFRNTEVsZW1lbnQuXHJcbiAqXHJcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IHRhcmdldCAtIEVsZW1lbnQgZm9yIHdoaWNoIHRvIGNhbGN1bGF0ZSB0aGUgY29udGVudCByZWN0YW5nbGUuXHJcbiAqIEByZXR1cm5zIHtET01SZWN0SW5pdH1cclxuICovXHJcbmZ1bmN0aW9uIGdldEhUTUxFbGVtZW50Q29udGVudFJlY3QodGFyZ2V0KSB7XHJcbiAgICAvLyBDbGllbnQgd2lkdGggJiBoZWlnaHQgcHJvcGVydGllcyBjYW4ndCBiZVxyXG4gICAgLy8gdXNlZCBleGNsdXNpdmVseSBhcyB0aGV5IHByb3ZpZGUgcm91bmRlZCB2YWx1ZXMuXHJcbiAgICB2YXIgY2xpZW50V2lkdGggPSB0YXJnZXQuY2xpZW50V2lkdGgsIGNsaWVudEhlaWdodCA9IHRhcmdldC5jbGllbnRIZWlnaHQ7XHJcbiAgICAvLyBCeSB0aGlzIGNvbmRpdGlvbiB3ZSBjYW4gY2F0Y2ggYWxsIG5vbi1yZXBsYWNlZCBpbmxpbmUsIGhpZGRlbiBhbmRcclxuICAgIC8vIGRldGFjaGVkIGVsZW1lbnRzLiBUaG91Z2ggZWxlbWVudHMgd2l0aCB3aWR0aCAmIGhlaWdodCBwcm9wZXJ0aWVzIGxlc3NcclxuICAgIC8vIHRoYW4gMC41IHdpbGwgYmUgZGlzY2FyZGVkIGFzIHdlbGwuXHJcbiAgICAvL1xyXG4gICAgLy8gV2l0aG91dCBpdCB3ZSB3b3VsZCBuZWVkIHRvIGltcGxlbWVudCBzZXBhcmF0ZSBtZXRob2RzIGZvciBlYWNoIG9mXHJcbiAgICAvLyB0aG9zZSBjYXNlcyBhbmQgaXQncyBub3QgcG9zc2libGUgdG8gcGVyZm9ybSBhIHByZWNpc2UgYW5kIHBlcmZvcm1hbmNlXHJcbiAgICAvLyBlZmZlY3RpdmUgdGVzdCBmb3IgaGlkZGVuIGVsZW1lbnRzLiBFLmcuIGV2ZW4galF1ZXJ5J3MgJzp2aXNpYmxlJyBmaWx0ZXJcclxuICAgIC8vIGdpdmVzIHdyb25nIHJlc3VsdHMgZm9yIGVsZW1lbnRzIHdpdGggd2lkdGggJiBoZWlnaHQgbGVzcyB0aGFuIDAuNS5cclxuICAgIGlmICghY2xpZW50V2lkdGggJiYgIWNsaWVudEhlaWdodCkge1xyXG4gICAgICAgIHJldHVybiBlbXB0eVJlY3Q7XHJcbiAgICB9XHJcbiAgICB2YXIgc3R5bGVzID0gZ2V0V2luZG93T2YodGFyZ2V0KS5nZXRDb21wdXRlZFN0eWxlKHRhcmdldCk7XHJcbiAgICB2YXIgcGFkZGluZ3MgPSBnZXRQYWRkaW5ncyhzdHlsZXMpO1xyXG4gICAgdmFyIGhvcml6UGFkID0gcGFkZGluZ3MubGVmdCArIHBhZGRpbmdzLnJpZ2h0O1xyXG4gICAgdmFyIHZlcnRQYWQgPSBwYWRkaW5ncy50b3AgKyBwYWRkaW5ncy5ib3R0b207XHJcbiAgICAvLyBDb21wdXRlZCBzdHlsZXMgb2Ygd2lkdGggJiBoZWlnaHQgYXJlIGJlaW5nIHVzZWQgYmVjYXVzZSB0aGV5IGFyZSB0aGVcclxuICAgIC8vIG9ubHkgZGltZW5zaW9ucyBhdmFpbGFibGUgdG8gSlMgdGhhdCBjb250YWluIG5vbi1yb3VuZGVkIHZhbHVlcy4gSXQgY291bGRcclxuICAgIC8vIGJlIHBvc3NpYmxlIHRvIHV0aWxpemUgdGhlIGdldEJvdW5kaW5nQ2xpZW50UmVjdCBpZiBvbmx5IGl0J3MgZGF0YSB3YXNuJ3RcclxuICAgIC8vIGFmZmVjdGVkIGJ5IENTUyB0cmFuc2Zvcm1hdGlvbnMgbGV0IGFsb25lIHBhZGRpbmdzLCBib3JkZXJzIGFuZCBzY3JvbGwgYmFycy5cclxuICAgIHZhciB3aWR0aCA9IHRvRmxvYXQoc3R5bGVzLndpZHRoKSwgaGVpZ2h0ID0gdG9GbG9hdChzdHlsZXMuaGVpZ2h0KTtcclxuICAgIC8vIFdpZHRoICYgaGVpZ2h0IGluY2x1ZGUgcGFkZGluZ3MgYW5kIGJvcmRlcnMgd2hlbiB0aGUgJ2JvcmRlci1ib3gnIGJveFxyXG4gICAgLy8gbW9kZWwgaXMgYXBwbGllZCAoZXhjZXB0IGZvciBJRSkuXHJcbiAgICBpZiAoc3R5bGVzLmJveFNpemluZyA9PT0gJ2JvcmRlci1ib3gnKSB7XHJcbiAgICAgICAgLy8gRm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIHJlcXVpcmVkIHRvIGhhbmRsZSBJbnRlcm5ldCBFeHBsb3JlciB3aGljaFxyXG4gICAgICAgIC8vIGRvZXNuJ3QgaW5jbHVkZSBwYWRkaW5ncyBhbmQgYm9yZGVycyB0byBjb21wdXRlZCBDU1MgZGltZW5zaW9ucy5cclxuICAgICAgICAvL1xyXG4gICAgICAgIC8vIFdlIGNhbiBzYXkgdGhhdCBpZiBDU1MgZGltZW5zaW9ucyArIHBhZGRpbmdzIGFyZSBlcXVhbCB0byB0aGUgXCJjbGllbnRcIlxyXG4gICAgICAgIC8vIHByb3BlcnRpZXMgdGhlbiBpdCdzIGVpdGhlciBJRSwgYW5kIHRodXMgd2UgZG9uJ3QgbmVlZCB0byBzdWJ0cmFjdFxyXG4gICAgICAgIC8vIGFueXRoaW5nLCBvciBhbiBlbGVtZW50IG1lcmVseSBkb2Vzbid0IGhhdmUgcGFkZGluZ3MvYm9yZGVycyBzdHlsZXMuXHJcbiAgICAgICAgaWYgKE1hdGgucm91bmQod2lkdGggKyBob3JpelBhZCkgIT09IGNsaWVudFdpZHRoKSB7XHJcbiAgICAgICAgICAgIHdpZHRoIC09IGdldEJvcmRlcnNTaXplKHN0eWxlcywgJ2xlZnQnLCAncmlnaHQnKSArIGhvcml6UGFkO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoTWF0aC5yb3VuZChoZWlnaHQgKyB2ZXJ0UGFkKSAhPT0gY2xpZW50SGVpZ2h0KSB7XHJcbiAgICAgICAgICAgIGhlaWdodCAtPSBnZXRCb3JkZXJzU2l6ZShzdHlsZXMsICd0b3AnLCAnYm90dG9tJykgKyB2ZXJ0UGFkO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIEZvbGxvd2luZyBzdGVwcyBjYW4ndCBiZSBhcHBsaWVkIHRvIHRoZSBkb2N1bWVudCdzIHJvb3QgZWxlbWVudCBhcyBpdHNcclxuICAgIC8vIGNsaWVudFtXaWR0aC9IZWlnaHRdIHByb3BlcnRpZXMgcmVwcmVzZW50IHZpZXdwb3J0IGFyZWEgb2YgdGhlIHdpbmRvdy5cclxuICAgIC8vIEJlc2lkZXMsIGl0J3MgYXMgd2VsbCBub3QgbmVjZXNzYXJ5IGFzIHRoZSA8aHRtbD4gaXRzZWxmIG5laXRoZXIgaGFzXHJcbiAgICAvLyByZW5kZXJlZCBzY3JvbGwgYmFycyBub3IgaXQgY2FuIGJlIGNsaXBwZWQuXHJcbiAgICBpZiAoIWlzRG9jdW1lbnRFbGVtZW50KHRhcmdldCkpIHtcclxuICAgICAgICAvLyBJbiBzb21lIGJyb3dzZXJzIChvbmx5IGluIEZpcmVmb3gsIGFjdHVhbGx5KSBDU1Mgd2lkdGggJiBoZWlnaHRcclxuICAgICAgICAvLyBpbmNsdWRlIHNjcm9sbCBiYXJzIHNpemUgd2hpY2ggY2FuIGJlIHJlbW92ZWQgYXQgdGhpcyBzdGVwIGFzIHNjcm9sbFxyXG4gICAgICAgIC8vIGJhcnMgYXJlIHRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiByb3VuZGVkIGRpbWVuc2lvbnMgKyBwYWRkaW5nc1xyXG4gICAgICAgIC8vIGFuZCBcImNsaWVudFwiIHByb3BlcnRpZXMsIHRob3VnaCB0aGF0IGlzIG5vdCBhbHdheXMgdHJ1ZSBpbiBDaHJvbWUuXHJcbiAgICAgICAgdmFyIHZlcnRTY3JvbGxiYXIgPSBNYXRoLnJvdW5kKHdpZHRoICsgaG9yaXpQYWQpIC0gY2xpZW50V2lkdGg7XHJcbiAgICAgICAgdmFyIGhvcml6U2Nyb2xsYmFyID0gTWF0aC5yb3VuZChoZWlnaHQgKyB2ZXJ0UGFkKSAtIGNsaWVudEhlaWdodDtcclxuICAgICAgICAvLyBDaHJvbWUgaGFzIGEgcmF0aGVyIHdlaXJkIHJvdW5kaW5nIG9mIFwiY2xpZW50XCIgcHJvcGVydGllcy5cclxuICAgICAgICAvLyBFLmcuIGZvciBhbiBlbGVtZW50IHdpdGggY29udGVudCB3aWR0aCBvZiAzMTQuMnB4IGl0IHNvbWV0aW1lcyBnaXZlc1xyXG4gICAgICAgIC8vIHRoZSBjbGllbnQgd2lkdGggb2YgMzE1cHggYW5kIGZvciB0aGUgd2lkdGggb2YgMzE0LjdweCBpdCBtYXkgZ2l2ZVxyXG4gICAgICAgIC8vIDMxNHB4LiBBbmQgaXQgZG9lc24ndCBoYXBwZW4gYWxsIHRoZSB0aW1lLiBTbyBqdXN0IGlnbm9yZSB0aGlzIGRlbHRhXHJcbiAgICAgICAgLy8gYXMgYSBub24tcmVsZXZhbnQuXHJcbiAgICAgICAgaWYgKE1hdGguYWJzKHZlcnRTY3JvbGxiYXIpICE9PSAxKSB7XHJcbiAgICAgICAgICAgIHdpZHRoIC09IHZlcnRTY3JvbGxiYXI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChNYXRoLmFicyhob3JpelNjcm9sbGJhcikgIT09IDEpIHtcclxuICAgICAgICAgICAgaGVpZ2h0IC09IGhvcml6U2Nyb2xsYmFyO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBjcmVhdGVSZWN0SW5pdChwYWRkaW5ncy5sZWZ0LCBwYWRkaW5ncy50b3AsIHdpZHRoLCBoZWlnaHQpO1xyXG59XHJcbi8qKlxyXG4gKiBDaGVja3Mgd2hldGhlciBwcm92aWRlZCBlbGVtZW50IGlzIGFuIGluc3RhbmNlIG9mIHRoZSBTVkdHcmFwaGljc0VsZW1lbnQuXHJcbiAqXHJcbiAqIEBwYXJhbSB7RWxlbWVudH0gdGFyZ2V0IC0gRWxlbWVudCB0byBiZSBjaGVja2VkLlxyXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cclxuICovXHJcbnZhciBpc1NWR0dyYXBoaWNzRWxlbWVudCA9IChmdW5jdGlvbiAoKSB7XHJcbiAgICAvLyBTb21lIGJyb3dzZXJzLCBuYW1lbHkgSUUgYW5kIEVkZ2UsIGRvbid0IGhhdmUgdGhlIFNWR0dyYXBoaWNzRWxlbWVudFxyXG4gICAgLy8gaW50ZXJmYWNlLlxyXG4gICAgaWYgKHR5cGVvZiBTVkdHcmFwaGljc0VsZW1lbnQgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQpIHsgcmV0dXJuIHRhcmdldCBpbnN0YW5jZW9mIGdldFdpbmRvd09mKHRhcmdldCkuU1ZHR3JhcGhpY3NFbGVtZW50OyB9O1xyXG4gICAgfVxyXG4gICAgLy8gSWYgaXQncyBzbywgdGhlbiBjaGVjayB0aGF0IGVsZW1lbnQgaXMgYXQgbGVhc3QgYW4gaW5zdGFuY2Ugb2YgdGhlXHJcbiAgICAvLyBTVkdFbGVtZW50IGFuZCB0aGF0IGl0IGhhcyB0aGUgXCJnZXRCQm94XCIgbWV0aG9kLlxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWV4dHJhLXBhcmVuc1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQpIHsgcmV0dXJuICh0YXJnZXQgaW5zdGFuY2VvZiBnZXRXaW5kb3dPZih0YXJnZXQpLlNWR0VsZW1lbnQgJiZcclxuICAgICAgICB0eXBlb2YgdGFyZ2V0LmdldEJCb3ggPT09ICdmdW5jdGlvbicpOyB9O1xyXG59KSgpO1xyXG4vKipcclxuICogQ2hlY2tzIHdoZXRoZXIgcHJvdmlkZWQgZWxlbWVudCBpcyBhIGRvY3VtZW50IGVsZW1lbnQgKDxodG1sPikuXHJcbiAqXHJcbiAqIEBwYXJhbSB7RWxlbWVudH0gdGFyZ2V0IC0gRWxlbWVudCB0byBiZSBjaGVja2VkLlxyXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cclxuICovXHJcbmZ1bmN0aW9uIGlzRG9jdW1lbnRFbGVtZW50KHRhcmdldCkge1xyXG4gICAgcmV0dXJuIHRhcmdldCA9PT0gZ2V0V2luZG93T2YodGFyZ2V0KS5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XHJcbn1cclxuLyoqXHJcbiAqIENhbGN1bGF0ZXMgYW4gYXBwcm9wcmlhdGUgY29udGVudCByZWN0YW5nbGUgZm9yIHByb3ZpZGVkIGh0bWwgb3Igc3ZnIGVsZW1lbnQuXHJcbiAqXHJcbiAqIEBwYXJhbSB7RWxlbWVudH0gdGFyZ2V0IC0gRWxlbWVudCBjb250ZW50IHJlY3RhbmdsZSBvZiB3aGljaCBuZWVkcyB0byBiZSBjYWxjdWxhdGVkLlxyXG4gKiBAcmV0dXJucyB7RE9NUmVjdEluaXR9XHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRDb250ZW50UmVjdCh0YXJnZXQpIHtcclxuICAgIGlmICghaXNCcm93c2VyKSB7XHJcbiAgICAgICAgcmV0dXJuIGVtcHR5UmVjdDtcclxuICAgIH1cclxuICAgIGlmIChpc1NWR0dyYXBoaWNzRWxlbWVudCh0YXJnZXQpKSB7XHJcbiAgICAgICAgcmV0dXJuIGdldFNWR0NvbnRlbnRSZWN0KHRhcmdldCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZ2V0SFRNTEVsZW1lbnRDb250ZW50UmVjdCh0YXJnZXQpO1xyXG59XHJcbi8qKlxyXG4gKiBDcmVhdGVzIHJlY3RhbmdsZSB3aXRoIGFuIGludGVyZmFjZSBvZiB0aGUgRE9NUmVjdFJlYWRPbmx5LlxyXG4gKiBTcGVjOiBodHRwczovL2RyYWZ0cy5meHRmLm9yZy9nZW9tZXRyeS8jZG9tcmVjdHJlYWRvbmx5XHJcbiAqXHJcbiAqIEBwYXJhbSB7RE9NUmVjdEluaXR9IHJlY3RJbml0IC0gT2JqZWN0IHdpdGggcmVjdGFuZ2xlJ3MgeC95IGNvb3JkaW5hdGVzIGFuZCBkaW1lbnNpb25zLlxyXG4gKiBAcmV0dXJucyB7RE9NUmVjdFJlYWRPbmx5fVxyXG4gKi9cclxuZnVuY3Rpb24gY3JlYXRlUmVhZE9ubHlSZWN0KF9hKSB7XHJcbiAgICB2YXIgeCA9IF9hLngsIHkgPSBfYS55LCB3aWR0aCA9IF9hLndpZHRoLCBoZWlnaHQgPSBfYS5oZWlnaHQ7XHJcbiAgICAvLyBJZiBET01SZWN0UmVhZE9ubHkgaXMgYXZhaWxhYmxlIHVzZSBpdCBhcyBhIHByb3RvdHlwZSBmb3IgdGhlIHJlY3RhbmdsZS5cclxuICAgIHZhciBDb25zdHIgPSB0eXBlb2YgRE9NUmVjdFJlYWRPbmx5ICE9PSAndW5kZWZpbmVkJyA/IERPTVJlY3RSZWFkT25seSA6IE9iamVjdDtcclxuICAgIHZhciByZWN0ID0gT2JqZWN0LmNyZWF0ZShDb25zdHIucHJvdG90eXBlKTtcclxuICAgIC8vIFJlY3RhbmdsZSdzIHByb3BlcnRpZXMgYXJlIG5vdCB3cml0YWJsZSBhbmQgbm9uLWVudW1lcmFibGUuXHJcbiAgICBkZWZpbmVDb25maWd1cmFibGUocmVjdCwge1xyXG4gICAgICAgIHg6IHgsIHk6IHksIHdpZHRoOiB3aWR0aCwgaGVpZ2h0OiBoZWlnaHQsXHJcbiAgICAgICAgdG9wOiB5LFxyXG4gICAgICAgIHJpZ2h0OiB4ICsgd2lkdGgsXHJcbiAgICAgICAgYm90dG9tOiBoZWlnaHQgKyB5LFxyXG4gICAgICAgIGxlZnQ6IHhcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHJlY3Q7XHJcbn1cclxuLyoqXHJcbiAqIENyZWF0ZXMgRE9NUmVjdEluaXQgb2JqZWN0IGJhc2VkIG9uIHRoZSBwcm92aWRlZCBkaW1lbnNpb25zIGFuZCB0aGUgeC95IGNvb3JkaW5hdGVzLlxyXG4gKiBTcGVjOiBodHRwczovL2RyYWZ0cy5meHRmLm9yZy9nZW9tZXRyeS8jZGljdGRlZi1kb21yZWN0aW5pdFxyXG4gKlxyXG4gKiBAcGFyYW0ge251bWJlcn0geCAtIFggY29vcmRpbmF0ZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IHkgLSBZIGNvb3JkaW5hdGUuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSB3aWR0aCAtIFJlY3RhbmdsZSdzIHdpZHRoLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gaGVpZ2h0IC0gUmVjdGFuZ2xlJ3MgaGVpZ2h0LlxyXG4gKiBAcmV0dXJucyB7RE9NUmVjdEluaXR9XHJcbiAqL1xyXG5mdW5jdGlvbiBjcmVhdGVSZWN0SW5pdCh4LCB5LCB3aWR0aCwgaGVpZ2h0KSB7XHJcbiAgICByZXR1cm4geyB4OiB4LCB5OiB5LCB3aWR0aDogd2lkdGgsIGhlaWdodDogaGVpZ2h0IH07XHJcbn1cblxuLyoqXHJcbiAqIENsYXNzIHRoYXQgaXMgcmVzcG9uc2libGUgZm9yIGNvbXB1dGF0aW9ucyBvZiB0aGUgY29udGVudCByZWN0YW5nbGUgb2ZcclxuICogcHJvdmlkZWQgRE9NIGVsZW1lbnQgYW5kIGZvciBrZWVwaW5nIHRyYWNrIG9mIGl0J3MgY2hhbmdlcy5cclxuICovXHJcbnZhciBSZXNpemVPYnNlcnZhdGlvbiA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBSZXNpemVPYnNlcnZhdGlvbi5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge0VsZW1lbnR9IHRhcmdldCAtIEVsZW1lbnQgdG8gYmUgb2JzZXJ2ZWQuXHJcbiAgICAgKi9cclxuICAgIGZ1bmN0aW9uIFJlc2l6ZU9ic2VydmF0aW9uKHRhcmdldCkge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEJyb2FkY2FzdGVkIHdpZHRoIG9mIGNvbnRlbnQgcmVjdGFuZ2xlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmJyb2FkY2FzdFdpZHRoID0gMDtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBCcm9hZGNhc3RlZCBoZWlnaHQgb2YgY29udGVudCByZWN0YW5nbGUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuYnJvYWRjYXN0SGVpZ2h0ID0gMDtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBSZWZlcmVuY2UgdG8gdGhlIGxhc3Qgb2JzZXJ2ZWQgY29udGVudCByZWN0YW5nbGUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAcHJpdmF0ZSB7RE9NUmVjdEluaXR9XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5jb250ZW50UmVjdF8gPSBjcmVhdGVSZWN0SW5pdCgwLCAwLCAwLCAwKTtcclxuICAgICAgICB0aGlzLnRhcmdldCA9IHRhcmdldDtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlcyBjb250ZW50IHJlY3RhbmdsZSBhbmQgdGVsbHMgd2hldGhlciBpdCdzIHdpZHRoIG9yIGhlaWdodCBwcm9wZXJ0aWVzXHJcbiAgICAgKiBoYXZlIGNoYW5nZWQgc2luY2UgdGhlIGxhc3QgYnJvYWRjYXN0LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHtib29sZWFufVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZhdGlvbi5wcm90b3R5cGUuaXNBY3RpdmUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdmFyIHJlY3QgPSBnZXRDb250ZW50UmVjdCh0aGlzLnRhcmdldCk7XHJcbiAgICAgICAgdGhpcy5jb250ZW50UmVjdF8gPSByZWN0O1xyXG4gICAgICAgIHJldHVybiAocmVjdC53aWR0aCAhPT0gdGhpcy5icm9hZGNhc3RXaWR0aCB8fFxyXG4gICAgICAgICAgICByZWN0LmhlaWdodCAhPT0gdGhpcy5icm9hZGNhc3RIZWlnaHQpO1xyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlcyAnYnJvYWRjYXN0V2lkdGgnIGFuZCAnYnJvYWRjYXN0SGVpZ2h0JyBwcm9wZXJ0aWVzIHdpdGggYSBkYXRhXHJcbiAgICAgKiBmcm9tIHRoZSBjb3JyZXNwb25kaW5nIHByb3BlcnRpZXMgb2YgdGhlIGxhc3Qgb2JzZXJ2ZWQgY29udGVudCByZWN0YW5nbGUuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMge0RPTVJlY3RJbml0fSBMYXN0IG9ic2VydmVkIGNvbnRlbnQgcmVjdGFuZ2xlLlxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZhdGlvbi5wcm90b3R5cGUuYnJvYWRjYXN0UmVjdCA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB2YXIgcmVjdCA9IHRoaXMuY29udGVudFJlY3RfO1xyXG4gICAgICAgIHRoaXMuYnJvYWRjYXN0V2lkdGggPSByZWN0LndpZHRoO1xyXG4gICAgICAgIHRoaXMuYnJvYWRjYXN0SGVpZ2h0ID0gcmVjdC5oZWlnaHQ7XHJcbiAgICAgICAgcmV0dXJuIHJlY3Q7XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIFJlc2l6ZU9ic2VydmF0aW9uO1xyXG59KCkpO1xuXG52YXIgUmVzaXplT2JzZXJ2ZXJFbnRyeSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBSZXNpemVPYnNlcnZlckVudHJ5LlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7RWxlbWVudH0gdGFyZ2V0IC0gRWxlbWVudCB0aGF0IGlzIGJlaW5nIG9ic2VydmVkLlxyXG4gICAgICogQHBhcmFtIHtET01SZWN0SW5pdH0gcmVjdEluaXQgLSBEYXRhIG9mIHRoZSBlbGVtZW50J3MgY29udGVudCByZWN0YW5nbGUuXHJcbiAgICAgKi9cclxuICAgIGZ1bmN0aW9uIFJlc2l6ZU9ic2VydmVyRW50cnkodGFyZ2V0LCByZWN0SW5pdCkge1xyXG4gICAgICAgIHZhciBjb250ZW50UmVjdCA9IGNyZWF0ZVJlYWRPbmx5UmVjdChyZWN0SW5pdCk7XHJcbiAgICAgICAgLy8gQWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpY2F0aW9uIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBub3Qgd3JpdGFibGVcclxuICAgICAgICAvLyBhbmQgYXJlIGFsc28gbm90IGVudW1lcmFibGUgaW4gdGhlIG5hdGl2ZSBpbXBsZW1lbnRhdGlvbi5cclxuICAgICAgICAvL1xyXG4gICAgICAgIC8vIFByb3BlcnR5IGFjY2Vzc29ycyBhcmUgbm90IGJlaW5nIHVzZWQgYXMgdGhleSdkIHJlcXVpcmUgdG8gZGVmaW5lIGFcclxuICAgICAgICAvLyBwcml2YXRlIFdlYWtNYXAgc3RvcmFnZSB3aGljaCBtYXkgY2F1c2UgbWVtb3J5IGxlYWtzIGluIGJyb3dzZXJzIHRoYXRcclxuICAgICAgICAvLyBkb24ndCBzdXBwb3J0IHRoaXMgdHlwZSBvZiBjb2xsZWN0aW9ucy5cclxuICAgICAgICBkZWZpbmVDb25maWd1cmFibGUodGhpcywgeyB0YXJnZXQ6IHRhcmdldCwgY29udGVudFJlY3Q6IGNvbnRlbnRSZWN0IH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFJlc2l6ZU9ic2VydmVyRW50cnk7XHJcbn0oKSk7XG5cbnZhciBSZXNpemVPYnNlcnZlclNQSSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiBSZXNpemVPYnNlcnZlci5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1Jlc2l6ZU9ic2VydmVyQ2FsbGJhY2t9IGNhbGxiYWNrIC0gQ2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBpcyBpbnZva2VkXHJcbiAgICAgKiAgICAgIHdoZW4gb25lIG9mIHRoZSBvYnNlcnZlZCBlbGVtZW50cyBjaGFuZ2VzIGl0J3MgY29udGVudCBkaW1lbnNpb25zLlxyXG4gICAgICogQHBhcmFtIHtSZXNpemVPYnNlcnZlckNvbnRyb2xsZXJ9IGNvbnRyb2xsZXIgLSBDb250cm9sbGVyIGluc3RhbmNlIHdoaWNoXHJcbiAgICAgKiAgICAgIGlzIHJlc3BvbnNpYmxlIGZvciB0aGUgdXBkYXRlcyBvZiBvYnNlcnZlci5cclxuICAgICAqIEBwYXJhbSB7UmVzaXplT2JzZXJ2ZXJ9IGNhbGxiYWNrQ3R4IC0gUmVmZXJlbmNlIHRvIHRoZSBwdWJsaWNcclxuICAgICAqICAgICAgUmVzaXplT2JzZXJ2ZXIgaW5zdGFuY2Ugd2hpY2ggd2lsbCBiZSBwYXNzZWQgdG8gY2FsbGJhY2sgZnVuY3Rpb24uXHJcbiAgICAgKi9cclxuICAgIGZ1bmN0aW9uIFJlc2l6ZU9ic2VydmVyU1BJKGNhbGxiYWNrLCBjb250cm9sbGVyLCBjYWxsYmFja0N0eCkge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIENvbGxlY3Rpb24gb2YgcmVzaXplIG9ic2VydmF0aW9ucyB0aGF0IGhhdmUgZGV0ZWN0ZWQgY2hhbmdlcyBpbiBkaW1lbnNpb25zXHJcbiAgICAgICAgICogb2YgZWxlbWVudHMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAcHJpdmF0ZSB7QXJyYXk8UmVzaXplT2JzZXJ2YXRpb24+fVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuYWN0aXZlT2JzZXJ2YXRpb25zXyA9IFtdO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFJlZ2lzdHJ5IG9mIHRoZSBSZXNpemVPYnNlcnZhdGlvbiBpbnN0YW5jZXMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAcHJpdmF0ZSB7TWFwPEVsZW1lbnQsIFJlc2l6ZU9ic2VydmF0aW9uPn1cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLm9ic2VydmF0aW9uc18gPSBuZXcgTWFwU2hpbSgpO1xyXG4gICAgICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIGNhbGxiYWNrIHByb3ZpZGVkIGFzIHBhcmFtZXRlciAxIGlzIG5vdCBhIGZ1bmN0aW9uLicpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNhbGxiYWNrXyA9IGNhbGxiYWNrO1xyXG4gICAgICAgIHRoaXMuY29udHJvbGxlcl8gPSBjb250cm9sbGVyO1xyXG4gICAgICAgIHRoaXMuY2FsbGJhY2tDdHhfID0gY2FsbGJhY2tDdHg7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFN0YXJ0cyBvYnNlcnZpbmcgcHJvdmlkZWQgZWxlbWVudC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge0VsZW1lbnR9IHRhcmdldCAtIEVsZW1lbnQgdG8gYmUgb2JzZXJ2ZWQuXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJTUEkucHJvdG90eXBlLm9ic2VydmUgPSBmdW5jdGlvbiAodGFyZ2V0KSB7XHJcbiAgICAgICAgaWYgKCFhcmd1bWVudHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJzEgYXJndW1lbnQgcmVxdWlyZWQsIGJ1dCBvbmx5IDAgcHJlc2VudC4nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gRG8gbm90aGluZyBpZiBjdXJyZW50IGVudmlyb25tZW50IGRvZXNuJ3QgaGF2ZSB0aGUgRWxlbWVudCBpbnRlcmZhY2UuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBFbGVtZW50ID09PSAndW5kZWZpbmVkJyB8fCAhKEVsZW1lbnQgaW5zdGFuY2VvZiBPYmplY3QpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCEodGFyZ2V0IGluc3RhbmNlb2YgZ2V0V2luZG93T2YodGFyZ2V0KS5FbGVtZW50KSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdwYXJhbWV0ZXIgMSBpcyBub3Qgb2YgdHlwZSBcIkVsZW1lbnRcIi4nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIG9ic2VydmF0aW9ucyA9IHRoaXMub2JzZXJ2YXRpb25zXztcclxuICAgICAgICAvLyBEbyBub3RoaW5nIGlmIGVsZW1lbnQgaXMgYWxyZWFkeSBiZWluZyBvYnNlcnZlZC5cclxuICAgICAgICBpZiAob2JzZXJ2YXRpb25zLmhhcyh0YXJnZXQpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgb2JzZXJ2YXRpb25zLnNldCh0YXJnZXQsIG5ldyBSZXNpemVPYnNlcnZhdGlvbih0YXJnZXQpKTtcclxuICAgICAgICB0aGlzLmNvbnRyb2xsZXJfLmFkZE9ic2VydmVyKHRoaXMpO1xyXG4gICAgICAgIC8vIEZvcmNlIHRoZSB1cGRhdGUgb2Ygb2JzZXJ2YXRpb25zLlxyXG4gICAgICAgIHRoaXMuY29udHJvbGxlcl8ucmVmcmVzaCgpO1xyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogU3RvcHMgb2JzZXJ2aW5nIHByb3ZpZGVkIGVsZW1lbnQuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtFbGVtZW50fSB0YXJnZXQgLSBFbGVtZW50IHRvIHN0b3Agb2JzZXJ2aW5nLlxyXG4gICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgKi9cclxuICAgIFJlc2l6ZU9ic2VydmVyU1BJLnByb3RvdHlwZS51bm9ic2VydmUgPSBmdW5jdGlvbiAodGFyZ2V0KSB7XHJcbiAgICAgICAgaWYgKCFhcmd1bWVudHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJzEgYXJndW1lbnQgcmVxdWlyZWQsIGJ1dCBvbmx5IDAgcHJlc2VudC4nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gRG8gbm90aGluZyBpZiBjdXJyZW50IGVudmlyb25tZW50IGRvZXNuJ3QgaGF2ZSB0aGUgRWxlbWVudCBpbnRlcmZhY2UuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBFbGVtZW50ID09PSAndW5kZWZpbmVkJyB8fCAhKEVsZW1lbnQgaW5zdGFuY2VvZiBPYmplY3QpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCEodGFyZ2V0IGluc3RhbmNlb2YgZ2V0V2luZG93T2YodGFyZ2V0KS5FbGVtZW50KSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdwYXJhbWV0ZXIgMSBpcyBub3Qgb2YgdHlwZSBcIkVsZW1lbnRcIi4nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIG9ic2VydmF0aW9ucyA9IHRoaXMub2JzZXJ2YXRpb25zXztcclxuICAgICAgICAvLyBEbyBub3RoaW5nIGlmIGVsZW1lbnQgaXMgbm90IGJlaW5nIG9ic2VydmVkLlxyXG4gICAgICAgIGlmICghb2JzZXJ2YXRpb25zLmhhcyh0YXJnZXQpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgb2JzZXJ2YXRpb25zLmRlbGV0ZSh0YXJnZXQpO1xyXG4gICAgICAgIGlmICghb2JzZXJ2YXRpb25zLnNpemUpIHtcclxuICAgICAgICAgICAgdGhpcy5jb250cm9sbGVyXy5yZW1vdmVPYnNlcnZlcih0aGlzKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBTdG9wcyBvYnNlcnZpbmcgYWxsIGVsZW1lbnRzLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZlclNQSS5wcm90b3R5cGUuZGlzY29ubmVjdCA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB0aGlzLmNsZWFyQWN0aXZlKCk7XHJcbiAgICAgICAgdGhpcy5vYnNlcnZhdGlvbnNfLmNsZWFyKCk7XHJcbiAgICAgICAgdGhpcy5jb250cm9sbGVyXy5yZW1vdmVPYnNlcnZlcih0aGlzKTtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIENvbGxlY3RzIG9ic2VydmF0aW9uIGluc3RhbmNlcyB0aGUgYXNzb2NpYXRlZCBlbGVtZW50IG9mIHdoaWNoIGhhcyBjaGFuZ2VkXHJcbiAgICAgKiBpdCdzIGNvbnRlbnQgcmVjdGFuZ2xlLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZlclNQSS5wcm90b3R5cGUuZ2F0aGVyQWN0aXZlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XHJcbiAgICAgICAgdGhpcy5jbGVhckFjdGl2ZSgpO1xyXG4gICAgICAgIHRoaXMub2JzZXJ2YXRpb25zXy5mb3JFYWNoKGZ1bmN0aW9uIChvYnNlcnZhdGlvbikge1xyXG4gICAgICAgICAgICBpZiAob2JzZXJ2YXRpb24uaXNBY3RpdmUoKSkge1xyXG4gICAgICAgICAgICAgICAgX3RoaXMuYWN0aXZlT2JzZXJ2YXRpb25zXy5wdXNoKG9ic2VydmF0aW9uKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogSW52b2tlcyBpbml0aWFsIGNhbGxiYWNrIGZ1bmN0aW9uIHdpdGggYSBsaXN0IG9mIFJlc2l6ZU9ic2VydmVyRW50cnlcclxuICAgICAqIGluc3RhbmNlcyBjb2xsZWN0ZWQgZnJvbSBhY3RpdmUgcmVzaXplIG9ic2VydmF0aW9ucy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJTUEkucHJvdG90eXBlLmJyb2FkY2FzdEFjdGl2ZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAvLyBEbyBub3RoaW5nIGlmIG9ic2VydmVyIGRvZXNuJ3QgaGF2ZSBhY3RpdmUgb2JzZXJ2YXRpb25zLlxyXG4gICAgICAgIGlmICghdGhpcy5oYXNBY3RpdmUoKSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBjdHggPSB0aGlzLmNhbGxiYWNrQ3R4XztcclxuICAgICAgICAvLyBDcmVhdGUgUmVzaXplT2JzZXJ2ZXJFbnRyeSBpbnN0YW5jZSBmb3IgZXZlcnkgYWN0aXZlIG9ic2VydmF0aW9uLlxyXG4gICAgICAgIHZhciBlbnRyaWVzID0gdGhpcy5hY3RpdmVPYnNlcnZhdGlvbnNfLm1hcChmdW5jdGlvbiAob2JzZXJ2YXRpb24pIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBSZXNpemVPYnNlcnZlckVudHJ5KG9ic2VydmF0aW9uLnRhcmdldCwgb2JzZXJ2YXRpb24uYnJvYWRjYXN0UmVjdCgpKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmNhbGxiYWNrXy5jYWxsKGN0eCwgZW50cmllcywgY3R4KTtcclxuICAgICAgICB0aGlzLmNsZWFyQWN0aXZlKCk7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBDbGVhcnMgdGhlIGNvbGxlY3Rpb24gb2YgYWN0aXZlIG9ic2VydmF0aW9ucy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJTUEkucHJvdG90eXBlLmNsZWFyQWN0aXZlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHRoaXMuYWN0aXZlT2JzZXJ2YXRpb25zXy5zcGxpY2UoMCk7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBUZWxscyB3aGV0aGVyIG9ic2VydmVyIGhhcyBhY3RpdmUgb2JzZXJ2YXRpb25zLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHtib29sZWFufVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZlclNQSS5wcm90b3R5cGUuaGFzQWN0aXZlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFjdGl2ZU9ic2VydmF0aW9uc18ubGVuZ3RoID4gMDtcclxuICAgIH07XHJcbiAgICByZXR1cm4gUmVzaXplT2JzZXJ2ZXJTUEk7XHJcbn0oKSk7XG5cbi8vIFJlZ2lzdHJ5IG9mIGludGVybmFsIG9ic2VydmVycy4gSWYgV2Vha01hcCBpcyBub3QgYXZhaWxhYmxlIHVzZSBjdXJyZW50IHNoaW1cclxuLy8gZm9yIHRoZSBNYXAgY29sbGVjdGlvbiBhcyBpdCBoYXMgYWxsIHJlcXVpcmVkIG1ldGhvZHMgYW5kIGJlY2F1c2UgV2Vha01hcFxyXG4vLyBjYW4ndCBiZSBmdWxseSBwb2x5ZmlsbGVkIGFueXdheS5cclxudmFyIG9ic2VydmVycyA9IHR5cGVvZiBXZWFrTWFwICE9PSAndW5kZWZpbmVkJyA/IG5ldyBXZWFrTWFwKCkgOiBuZXcgTWFwU2hpbSgpO1xyXG4vKipcclxuICogUmVzaXplT2JzZXJ2ZXIgQVBJLiBFbmNhcHN1bGF0ZXMgdGhlIFJlc2l6ZU9ic2VydmVyIFNQSSBpbXBsZW1lbnRhdGlvblxyXG4gKiBleHBvc2luZyBvbmx5IHRob3NlIG1ldGhvZHMgYW5kIHByb3BlcnRpZXMgdGhhdCBhcmUgZGVmaW5lZCBpbiB0aGUgc3BlYy5cclxuICovXHJcbnZhciBSZXNpemVPYnNlcnZlciA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiBSZXNpemVPYnNlcnZlci5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1Jlc2l6ZU9ic2VydmVyQ2FsbGJhY2t9IGNhbGxiYWNrIC0gQ2FsbGJhY2sgdGhhdCBpcyBpbnZva2VkIHdoZW5cclxuICAgICAqICAgICAgZGltZW5zaW9ucyBvZiB0aGUgb2JzZXJ2ZWQgZWxlbWVudHMgY2hhbmdlLlxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiBSZXNpemVPYnNlcnZlcihjYWxsYmFjaykge1xyXG4gICAgICAgIGlmICghKHRoaXMgaW5zdGFuY2VvZiBSZXNpemVPYnNlcnZlcikpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uLicpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIWFyZ3VtZW50cy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignMSBhcmd1bWVudCByZXF1aXJlZCwgYnV0IG9ubHkgMCBwcmVzZW50LicpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgY29udHJvbGxlciA9IFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpO1xyXG4gICAgICAgIHZhciBvYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlclNQSShjYWxsYmFjaywgY29udHJvbGxlciwgdGhpcyk7XHJcbiAgICAgICAgb2JzZXJ2ZXJzLnNldCh0aGlzLCBvYnNlcnZlcik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gUmVzaXplT2JzZXJ2ZXI7XHJcbn0oKSk7XHJcbi8vIEV4cG9zZSBwdWJsaWMgbWV0aG9kcyBvZiBSZXNpemVPYnNlcnZlci5cclxuW1xyXG4gICAgJ29ic2VydmUnLFxyXG4gICAgJ3Vub2JzZXJ2ZScsXHJcbiAgICAnZGlzY29ubmVjdCdcclxuXS5mb3JFYWNoKGZ1bmN0aW9uIChtZXRob2QpIHtcclxuICAgIFJlc2l6ZU9ic2VydmVyLnByb3RvdHlwZVttZXRob2RdID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHZhciBfYTtcclxuICAgICAgICByZXR1cm4gKF9hID0gb2JzZXJ2ZXJzLmdldCh0aGlzKSlbbWV0aG9kXS5hcHBseShfYSwgYXJndW1lbnRzKTtcclxuICAgIH07XHJcbn0pO1xuXG52YXIgaW5kZXggPSAoZnVuY3Rpb24gKCkge1xyXG4gICAgLy8gRXhwb3J0IGV4aXN0aW5nIGltcGxlbWVudGF0aW9uIGlmIGF2YWlsYWJsZS5cclxuICAgIGlmICh0eXBlb2YgZ2xvYmFsJDEuUmVzaXplT2JzZXJ2ZXIgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgcmV0dXJuIGdsb2JhbCQxLlJlc2l6ZU9ic2VydmVyO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFJlc2l6ZU9ic2VydmVyO1xyXG59KSgpO1xuXG5leHBvcnQgZGVmYXVsdCBpbmRleDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js\n"); + +/***/ }), + +/***/ "./node_modules/string-convert/camel2hyphen.js": +/*!*****************************************************!*\ + !*** ./node_modules/string-convert/camel2hyphen.js ***! + \*****************************************************/ +/***/ (function(module) { + +eval("var camel2hyphen = function (str) {\n return str\n .replace(/[A-Z]/g, function (match) {\n return '-' + match.toLowerCase();\n })\n .toLowerCase();\n};\n\nmodule.exports = camel2hyphen;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3RyaW5nLWNvbnZlcnQvY2FtZWwyaHlwaGVuLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N0cmluZy1jb252ZXJ0L2NhbWVsMmh5cGhlbi5qcz82ZTgwIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBjYW1lbDJoeXBoZW4gPSBmdW5jdGlvbiAoc3RyKSB7XG4gIHJldHVybiBzdHJcbiAgICAgICAgICAucmVwbGFjZSgvW0EtWl0vZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICByZXR1cm4gJy0nICsgbWF0Y2gudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC50b0xvd2VyQ2FzZSgpO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBjYW1lbDJoeXBoZW47Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/string-convert/camel2hyphen.js\n"); + +/***/ }), + +/***/ "./node_modules/styled-jsx/dist/style.js": +/*!***********************************************!*\ + !*** ./node_modules/styled-jsx/dist/style.js ***! + \***********************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nexports.__esModule = true;\nexports[\"default\"] = JSXStyle;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _stylesheetRegistry = __webpack_require__(/*! ./stylesheet-registry */ \"./node_modules/styled-jsx/dist/stylesheet-registry.js\");\n\nvar _hash = __webpack_require__(/*! ./lib/hash */ \"./node_modules/styled-jsx/dist/lib/hash.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n// Opt-into the new `useInsertionEffect` API in React 18, fallback to `useLayoutEffect`.\n// https://github.com/reactwg/react-18/discussions/110\nvar useInsertionEffect = _react[\"default\"].useInsertionEffect || _react[\"default\"].useLayoutEffect;\n\nfunction JSXStyle(props) {\n var registry = (0, _stylesheetRegistry.useStyleRegistry)(); // If `registry` does not exist, we do nothing here.\n\n if (!registry) {\n return null;\n }\n\n if (typeof window === 'undefined') {\n registry.add(props);\n return null;\n }\n\n useInsertionEffect(function () {\n registry.add(props);\n return function () {\n registry.remove(props);\n }; // props.children can be string[], will be striped since id is identical\n }, [props.id, String(props.dynamic)]);\n return null;\n}\n\nJSXStyle.dynamic = function (info) {\n return info.map(function (tagInfo) {\n var baseId = tagInfo[0];\n var props = tagInfo[1];\n return (0, _hash.computeId)(baseId, props);\n }).join(' ');\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3R5bGVkLWpzeC9kaXN0L3N0eWxlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLGtCQUFrQjtBQUNsQixrQkFBa0I7O0FBRWxCLG9DQUFvQyxtQkFBTyxDQUFDLDRDQUFPOztBQUVuRCwwQkFBMEIsbUJBQU8sQ0FBQyxvRkFBdUI7O0FBRXpELFlBQVksbUJBQU8sQ0FBQyw4REFBWTs7QUFFaEMsdUNBQXVDLHVDQUF1Qzs7QUFFOUU7QUFDQTtBQUNBOztBQUVBO0FBQ0EsOERBQThEOztBQUU5RDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsR0FBRztBQUNIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc3R5bGVkLWpzeC9kaXN0L3N0eWxlLmpzPzM2ZjIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IEpTWFN0eWxlO1xuXG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX3N0eWxlc2hlZXRSZWdpc3RyeSA9IHJlcXVpcmUoXCIuL3N0eWxlc2hlZXQtcmVnaXN0cnlcIik7XG5cbnZhciBfaGFzaCA9IHJlcXVpcmUoXCIuL2xpYi9oYXNoXCIpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuLy8gT3B0LWludG8gdGhlIG5ldyBgdXNlSW5zZXJ0aW9uRWZmZWN0YCBBUEkgaW4gUmVhY3QgMTgsIGZhbGxiYWNrIHRvIGB1c2VMYXlvdXRFZmZlY3RgLlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3JlYWN0d2cvcmVhY3QtMTgvZGlzY3Vzc2lvbnMvMTEwXG52YXIgdXNlSW5zZXJ0aW9uRWZmZWN0ID0gX3JlYWN0W1wiZGVmYXVsdFwiXS51c2VJbnNlcnRpb25FZmZlY3QgfHwgX3JlYWN0W1wiZGVmYXVsdFwiXS51c2VMYXlvdXRFZmZlY3Q7XG5cbmZ1bmN0aW9uIEpTWFN0eWxlKHByb3BzKSB7XG4gIHZhciByZWdpc3RyeSA9ICgwLCBfc3R5bGVzaGVldFJlZ2lzdHJ5LnVzZVN0eWxlUmVnaXN0cnkpKCk7IC8vIElmIGByZWdpc3RyeWAgZG9lcyBub3QgZXhpc3QsIHdlIGRvIG5vdGhpbmcgaGVyZS5cblxuICBpZiAoIXJlZ2lzdHJ5KSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZWdpc3RyeS5hZGQocHJvcHMpO1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgdXNlSW5zZXJ0aW9uRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICByZWdpc3RyeS5hZGQocHJvcHMpO1xuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICByZWdpc3RyeS5yZW1vdmUocHJvcHMpO1xuICAgIH07IC8vIHByb3BzLmNoaWxkcmVuIGNhbiBiZSBzdHJpbmdbXSwgd2lsbCBiZSBzdHJpcGVkIHNpbmNlIGlkIGlzIGlkZW50aWNhbFxuICB9LCBbcHJvcHMuaWQsIFN0cmluZyhwcm9wcy5keW5hbWljKV0pO1xuICByZXR1cm4gbnVsbDtcbn1cblxuSlNYU3R5bGUuZHluYW1pYyA9IGZ1bmN0aW9uIChpbmZvKSB7XG4gIHJldHVybiBpbmZvLm1hcChmdW5jdGlvbiAodGFnSW5mbykge1xuICAgIHZhciBiYXNlSWQgPSB0YWdJbmZvWzBdO1xuICAgIHZhciBwcm9wcyA9IHRhZ0luZm9bMV07XG4gICAgcmV0dXJuICgwLCBfaGFzaC5jb21wdXRlSWQpKGJhc2VJZCwgcHJvcHMpO1xuICB9KS5qb2luKCcgJyk7XG59OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/styled-jsx/dist/style.js\n"); + +/***/ }), + +/***/ "./node_modules/styled-jsx/style.js": +/*!******************************************!*\ + !*** ./node_modules/styled-jsx/style.js ***! + \******************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("module.exports = __webpack_require__(/*! ./dist/style */ \"./node_modules/styled-jsx/dist/style.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3R5bGVkLWpzeC9zdHlsZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQSxtR0FBd0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N0eWxlZC1qc3gvc3R5bGUuanM/MzcwYiJdLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vZGlzdC9zdHlsZScpXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/styled-jsx/style.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Canvas.js": +/*!*************************************************!*\ + !*** ./node_modules/tsparticles/Core/Canvas.js ***! + \*************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Canvas = void 0;\nconst Utils_1 = __webpack_require__(/*! ../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Utils_2 = __webpack_require__(/*! ../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass Canvas {\n constructor(container) {\n this.container = container;\n this.size = {\n height: 0,\n width: 0,\n };\n this.context = null;\n this.generatedCanvas = false;\n }\n init() {\n this.resize();\n this.initStyle();\n this.initCover();\n this.initTrail();\n this.initBackground();\n this.paint();\n }\n loadCanvas(canvas, generatedCanvas) {\n var _a;\n if (!canvas.className) {\n canvas.className = Utils_1.Constants.canvasClass;\n }\n if (this.generatedCanvas) {\n (_a = this.element) === null || _a === void 0 ? void 0 : _a.remove();\n }\n this.generatedCanvas = generatedCanvas !== null && generatedCanvas !== void 0 ? generatedCanvas : this.generatedCanvas;\n this.element = canvas;\n this.originalStyle = (0, Utils_1.deepExtend)({}, this.element.style);\n this.size.height = canvas.offsetHeight;\n this.size.width = canvas.offsetWidth;\n this.context = this.element.getContext(\"2d\");\n this.container.retina.init();\n this.initBackground();\n }\n destroy() {\n var _a;\n if (this.generatedCanvas) {\n (_a = this.element) === null || _a === void 0 ? void 0 : _a.remove();\n }\n this.draw((ctx) => {\n (0, Utils_2.clear)(ctx, this.size);\n });\n }\n paint() {\n const options = this.container.actualOptions;\n this.draw((ctx) => {\n if (options.backgroundMask.enable && options.backgroundMask.cover && this.coverColor) {\n (0, Utils_2.clear)(ctx, this.size);\n this.paintBase((0, Utils_1.getStyleFromRgb)(this.coverColor, this.coverColor.a));\n }\n else {\n this.paintBase();\n }\n });\n }\n clear() {\n const options = this.container.actualOptions;\n const trail = options.particles.move.trail;\n if (options.backgroundMask.enable) {\n this.paint();\n }\n else if (trail.enable && trail.length > 0 && this.trailFillColor) {\n this.paintBase((0, Utils_1.getStyleFromRgb)(this.trailFillColor, 1 / trail.length));\n }\n else {\n this.draw((ctx) => {\n (0, Utils_2.clear)(ctx, this.size);\n });\n }\n }\n windowResize() {\n if (!this.element) {\n return;\n }\n const container = this.container;\n this.resize();\n const needsRefresh = container.updateActualOptions();\n container.particles.setDensity();\n for (const [, plugin] of container.plugins) {\n if (plugin.resize !== undefined) {\n plugin.resize();\n }\n }\n if (needsRefresh) {\n container.refresh();\n }\n }\n resize() {\n if (!this.element) {\n return;\n }\n const container = this.container;\n const pxRatio = container.retina.pixelRatio;\n const size = container.canvas.size;\n const oldSize = {\n width: size.width,\n height: size.height,\n };\n size.width = this.element.offsetWidth * pxRatio;\n size.height = this.element.offsetHeight * pxRatio;\n this.element.width = size.width;\n this.element.height = size.height;\n if (this.container.started) {\n this.resizeFactor = {\n width: size.width / oldSize.width,\n height: size.height / oldSize.height,\n };\n }\n }\n drawConnectLine(p1, p2) {\n this.draw((ctx) => {\n var _a;\n const lineStyle = this.lineStyle(p1, p2);\n if (!lineStyle) {\n return;\n }\n const pos1 = p1.getPosition();\n const pos2 = p2.getPosition();\n (0, Utils_1.drawConnectLine)(ctx, (_a = p1.retina.linksWidth) !== null && _a !== void 0 ? _a : this.container.retina.linksWidth, lineStyle, pos1, pos2);\n });\n }\n drawGrabLine(particle, lineColor, opacity, mousePos) {\n const container = this.container;\n this.draw((ctx) => {\n var _a;\n const beginPos = particle.getPosition();\n (0, Utils_1.drawGrabLine)(ctx, (_a = particle.retina.linksWidth) !== null && _a !== void 0 ? _a : container.retina.linksWidth, beginPos, mousePos, lineColor, opacity);\n });\n }\n drawParticle(particle, delta) {\n var _a, _b, _c, _d, _e, _f;\n if (particle.spawning || particle.destroyed) {\n return;\n }\n const pfColor = particle.getFillColor();\n const psColor = (_a = particle.getStrokeColor()) !== null && _a !== void 0 ? _a : pfColor;\n if (!pfColor && !psColor) {\n return;\n }\n let [fColor, sColor] = this.getPluginParticleColors(particle);\n const pOptions = particle.options;\n const twinkle = pOptions.twinkle.particles;\n const twinkling = twinkle.enable && Math.random() < twinkle.frequency;\n if (!fColor || !sColor) {\n const twinkleRgb = (0, Utils_1.colorToHsl)(twinkle.color);\n if (!fColor) {\n fColor = twinkling && twinkleRgb !== undefined ? twinkleRgb : pfColor ? pfColor : undefined;\n }\n if (!sColor) {\n sColor = twinkling && twinkleRgb !== undefined ? twinkleRgb : psColor ? psColor : undefined;\n }\n }\n const options = this.container.actualOptions;\n const zIndexOptions = particle.options.zIndex;\n const zOpacityFactor = (1 - particle.zIndexFactor) ** zIndexOptions.opacityRate;\n const radius = particle.getRadius();\n const opacity = twinkling ? twinkle.opacity : (_d = (_b = particle.bubble.opacity) !== null && _b !== void 0 ? _b : (_c = particle.opacity) === null || _c === void 0 ? void 0 : _c.value) !== null && _d !== void 0 ? _d : 1;\n const strokeOpacity = (_f = (_e = particle.stroke) === null || _e === void 0 ? void 0 : _e.opacity) !== null && _f !== void 0 ? _f : opacity;\n const zOpacity = opacity * zOpacityFactor;\n const fillColorValue = fColor ? (0, Utils_1.getStyleFromHsl)(fColor, zOpacity) : undefined;\n if (!fillColorValue && !sColor) {\n return;\n }\n this.draw((ctx) => {\n const zSizeFactor = (1 - particle.zIndexFactor) ** zIndexOptions.sizeRate;\n const zStrokeOpacity = strokeOpacity * zOpacityFactor;\n const strokeColorValue = sColor ? (0, Utils_1.getStyleFromHsl)(sColor, zStrokeOpacity) : fillColorValue;\n if (radius <= 0) {\n return;\n }\n const container = this.container;\n for (const updater of container.particles.updaters) {\n if (updater.beforeDraw) {\n updater.beforeDraw(particle);\n }\n }\n (0, Utils_1.drawParticle)(this.container, ctx, particle, delta, fillColorValue, strokeColorValue, options.backgroundMask.enable, options.backgroundMask.composite, radius * zSizeFactor, zOpacity, particle.options.shadow, particle.gradient);\n for (const updater of container.particles.updaters) {\n if (updater.afterDraw) {\n updater.afterDraw(particle);\n }\n }\n });\n }\n drawPlugin(plugin, delta) {\n this.draw((ctx) => {\n (0, Utils_1.drawPlugin)(ctx, plugin, delta);\n });\n }\n drawParticlePlugin(plugin, particle, delta) {\n this.draw((ctx) => {\n (0, Utils_1.drawParticlePlugin)(ctx, plugin, particle, delta);\n });\n }\n initBackground() {\n const options = this.container.actualOptions;\n const background = options.background;\n const element = this.element;\n const elementStyle = element === null || element === void 0 ? void 0 : element.style;\n if (!elementStyle) {\n return;\n }\n if (background.color) {\n const color = (0, Utils_1.colorToRgb)(background.color);\n elementStyle.backgroundColor = color ? (0, Utils_1.getStyleFromRgb)(color, background.opacity) : \"\";\n }\n else {\n elementStyle.backgroundColor = \"\";\n }\n elementStyle.backgroundImage = background.image || \"\";\n elementStyle.backgroundPosition = background.position || \"\";\n elementStyle.backgroundRepeat = background.repeat || \"\";\n elementStyle.backgroundSize = background.size || \"\";\n }\n draw(cb) {\n if (!this.context) {\n return;\n }\n return cb(this.context);\n }\n initCover() {\n const options = this.container.actualOptions;\n const cover = options.backgroundMask.cover;\n const color = cover.color;\n const coverRgb = (0, Utils_1.colorToRgb)(color);\n if (coverRgb) {\n this.coverColor = {\n r: coverRgb.r,\n g: coverRgb.g,\n b: coverRgb.b,\n a: cover.opacity,\n };\n }\n }\n initTrail() {\n const options = this.container.actualOptions;\n const trail = options.particles.move.trail;\n const fillColor = (0, Utils_1.colorToRgb)(trail.fillColor);\n if (fillColor) {\n const trail = options.particles.move.trail;\n this.trailFillColor = {\n r: fillColor.r,\n g: fillColor.g,\n b: fillColor.b,\n a: 1 / trail.length,\n };\n }\n }\n getPluginParticleColors(particle) {\n let fColor;\n let sColor;\n for (const [, plugin] of this.container.plugins) {\n if (!fColor && plugin.particleFillColor) {\n fColor = (0, Utils_1.colorToHsl)(plugin.particleFillColor(particle));\n }\n if (!sColor && plugin.particleStrokeColor) {\n sColor = (0, Utils_1.colorToHsl)(plugin.particleStrokeColor(particle));\n }\n if (fColor && sColor) {\n break;\n }\n }\n return [fColor, sColor];\n }\n initStyle() {\n const element = this.element, options = this.container.actualOptions;\n if (!element) {\n return;\n }\n const originalStyle = this.originalStyle;\n if (options.fullScreen.enable) {\n this.originalStyle = (0, Utils_1.deepExtend)({}, element.style);\n element.style.position = \"fixed\";\n element.style.zIndex = options.fullScreen.zIndex.toString(10);\n element.style.top = \"0\";\n element.style.left = \"0\";\n element.style.width = \"100%\";\n element.style.height = \"100%\";\n }\n else if (originalStyle) {\n element.style.position = originalStyle.position;\n element.style.zIndex = originalStyle.zIndex;\n element.style.top = originalStyle.top;\n element.style.left = originalStyle.left;\n element.style.width = originalStyle.width;\n element.style.height = originalStyle.height;\n }\n }\n paintBase(baseColor) {\n this.draw((ctx) => {\n (0, Utils_1.paintBase)(ctx, this.size, baseColor);\n });\n }\n lineStyle(p1, p2) {\n return this.draw((ctx) => {\n const options = this.container.actualOptions;\n const connectOptions = options.interactivity.modes.connect;\n return (0, Utils_1.gradient)(ctx, p1, p2, connectOptions.links.opacity);\n });\n }\n}\nexports.Canvas = Canvas;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9DYW52YXMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsY0FBYztBQUNkLGdCQUFnQixtQkFBTyxDQUFDLDJEQUFVO0FBQ2xDLGdCQUFnQixtQkFBTyxDQUFDLDJEQUFVO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdURBQXVEO0FBQ3ZEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyREFBMkQ7QUFDM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxjQUFjIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9Db3JlL0NhbnZhcy5qcz82MzU0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5DYW52YXMgPSB2b2lkIDA7XG5jb25zdCBVdGlsc18xID0gcmVxdWlyZShcIi4uL1V0aWxzXCIpO1xuY29uc3QgVXRpbHNfMiA9IHJlcXVpcmUoXCIuLi9VdGlsc1wiKTtcbmNsYXNzIENhbnZhcyB7XG4gICAgY29uc3RydWN0b3IoY29udGFpbmVyKSB7XG4gICAgICAgIHRoaXMuY29udGFpbmVyID0gY29udGFpbmVyO1xuICAgICAgICB0aGlzLnNpemUgPSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDAsXG4gICAgICAgICAgICB3aWR0aDogMCxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5jb250ZXh0ID0gbnVsbDtcbiAgICAgICAgdGhpcy5nZW5lcmF0ZWRDYW52YXMgPSBmYWxzZTtcbiAgICB9XG4gICAgaW5pdCgpIHtcbiAgICAgICAgdGhpcy5yZXNpemUoKTtcbiAgICAgICAgdGhpcy5pbml0U3R5bGUoKTtcbiAgICAgICAgdGhpcy5pbml0Q292ZXIoKTtcbiAgICAgICAgdGhpcy5pbml0VHJhaWwoKTtcbiAgICAgICAgdGhpcy5pbml0QmFja2dyb3VuZCgpO1xuICAgICAgICB0aGlzLnBhaW50KCk7XG4gICAgfVxuICAgIGxvYWRDYW52YXMoY2FudmFzLCBnZW5lcmF0ZWRDYW52YXMpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoIWNhbnZhcy5jbGFzc05hbWUpIHtcbiAgICAgICAgICAgIGNhbnZhcy5jbGFzc05hbWUgPSBVdGlsc18xLkNvbnN0YW50cy5jYW52YXNDbGFzcztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5nZW5lcmF0ZWRDYW52YXMpIHtcbiAgICAgICAgICAgIChfYSA9IHRoaXMuZWxlbWVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnJlbW92ZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZ2VuZXJhdGVkQ2FudmFzID0gZ2VuZXJhdGVkQ2FudmFzICE9PSBudWxsICYmIGdlbmVyYXRlZENhbnZhcyAhPT0gdm9pZCAwID8gZ2VuZXJhdGVkQ2FudmFzIDogdGhpcy5nZW5lcmF0ZWRDYW52YXM7XG4gICAgICAgIHRoaXMuZWxlbWVudCA9IGNhbnZhcztcbiAgICAgICAgdGhpcy5vcmlnaW5hbFN0eWxlID0gKDAsIFV0aWxzXzEuZGVlcEV4dGVuZCkoe30sIHRoaXMuZWxlbWVudC5zdHlsZSk7XG4gICAgICAgIHRoaXMuc2l6ZS5oZWlnaHQgPSBjYW52YXMub2Zmc2V0SGVpZ2h0O1xuICAgICAgICB0aGlzLnNpemUud2lkdGggPSBjYW52YXMub2Zmc2V0V2lkdGg7XG4gICAgICAgIHRoaXMuY29udGV4dCA9IHRoaXMuZWxlbWVudC5nZXRDb250ZXh0KFwiMmRcIik7XG4gICAgICAgIHRoaXMuY29udGFpbmVyLnJldGluYS5pbml0KCk7XG4gICAgICAgIHRoaXMuaW5pdEJhY2tncm91bmQoKTtcbiAgICB9XG4gICAgZGVzdHJveSgpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAodGhpcy5nZW5lcmF0ZWRDYW52YXMpIHtcbiAgICAgICAgICAgIChfYSA9IHRoaXMuZWxlbWVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnJlbW92ZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZHJhdygoY3R4KSA9PiB7XG4gICAgICAgICAgICAoMCwgVXRpbHNfMi5jbGVhcikoY3R4LCB0aGlzLnNpemUpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgcGFpbnQoKSB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmNvbnRhaW5lci5hY3R1YWxPcHRpb25zO1xuICAgICAgICB0aGlzLmRyYXcoKGN0eCkgPT4ge1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMuYmFja2dyb3VuZE1hc2suZW5hYmxlICYmIG9wdGlvbnMuYmFja2dyb3VuZE1hc2suY292ZXIgJiYgdGhpcy5jb3ZlckNvbG9yKSB7XG4gICAgICAgICAgICAgICAgKDAsIFV0aWxzXzIuY2xlYXIpKGN0eCwgdGhpcy5zaXplKTtcbiAgICAgICAgICAgICAgICB0aGlzLnBhaW50QmFzZSgoMCwgVXRpbHNfMS5nZXRTdHlsZUZyb21SZ2IpKHRoaXMuY292ZXJDb2xvciwgdGhpcy5jb3ZlckNvbG9yLmEpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMucGFpbnRCYXNlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjbGVhcigpIHtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuY29udGFpbmVyLmFjdHVhbE9wdGlvbnM7XG4gICAgICAgIGNvbnN0IHRyYWlsID0gb3B0aW9ucy5wYXJ0aWNsZXMubW92ZS50cmFpbDtcbiAgICAgICAgaWYgKG9wdGlvbnMuYmFja2dyb3VuZE1hc2suZW5hYmxlKSB7XG4gICAgICAgICAgICB0aGlzLnBhaW50KCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodHJhaWwuZW5hYmxlICYmIHRyYWlsLmxlbmd0aCA+IDAgJiYgdGhpcy50cmFpbEZpbGxDb2xvcikge1xuICAgICAgICAgICAgdGhpcy5wYWludEJhc2UoKDAsIFV0aWxzXzEuZ2V0U3R5bGVGcm9tUmdiKSh0aGlzLnRyYWlsRmlsbENvbG9yLCAxIC8gdHJhaWwubGVuZ3RoKSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRyYXcoKGN0eCkgPT4ge1xuICAgICAgICAgICAgICAgICgwLCBVdGlsc18yLmNsZWFyKShjdHgsIHRoaXMuc2l6ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB3aW5kb3dSZXNpemUoKSB7XG4gICAgICAgIGlmICghdGhpcy5lbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXI7XG4gICAgICAgIHRoaXMucmVzaXplKCk7XG4gICAgICAgIGNvbnN0IG5lZWRzUmVmcmVzaCA9IGNvbnRhaW5lci51cGRhdGVBY3R1YWxPcHRpb25zKCk7XG4gICAgICAgIGNvbnRhaW5lci5wYXJ0aWNsZXMuc2V0RGVuc2l0eSgpO1xuICAgICAgICBmb3IgKGNvbnN0IFssIHBsdWdpbl0gb2YgY29udGFpbmVyLnBsdWdpbnMpIHtcbiAgICAgICAgICAgIGlmIChwbHVnaW4ucmVzaXplICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBwbHVnaW4ucmVzaXplKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5lZWRzUmVmcmVzaCkge1xuICAgICAgICAgICAgY29udGFpbmVyLnJlZnJlc2goKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXNpemUoKSB7XG4gICAgICAgIGlmICghdGhpcy5lbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXI7XG4gICAgICAgIGNvbnN0IHB4UmF0aW8gPSBjb250YWluZXIucmV0aW5hLnBpeGVsUmF0aW87XG4gICAgICAgIGNvbnN0IHNpemUgPSBjb250YWluZXIuY2FudmFzLnNpemU7XG4gICAgICAgIGNvbnN0IG9sZFNpemUgPSB7XG4gICAgICAgICAgICB3aWR0aDogc2l6ZS53aWR0aCxcbiAgICAgICAgICAgIGhlaWdodDogc2l6ZS5oZWlnaHQsXG4gICAgICAgIH07XG4gICAgICAgIHNpemUud2lkdGggPSB0aGlzLmVsZW1lbnQub2Zmc2V0V2lkdGggKiBweFJhdGlvO1xuICAgICAgICBzaXplLmhlaWdodCA9IHRoaXMuZWxlbWVudC5vZmZzZXRIZWlnaHQgKiBweFJhdGlvO1xuICAgICAgICB0aGlzLmVsZW1lbnQud2lkdGggPSBzaXplLndpZHRoO1xuICAgICAgICB0aGlzLmVsZW1lbnQuaGVpZ2h0ID0gc2l6ZS5oZWlnaHQ7XG4gICAgICAgIGlmICh0aGlzLmNvbnRhaW5lci5zdGFydGVkKSB7XG4gICAgICAgICAgICB0aGlzLnJlc2l6ZUZhY3RvciA9IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogc2l6ZS53aWR0aCAvIG9sZFNpemUud2lkdGgsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBzaXplLmhlaWdodCAvIG9sZFNpemUuaGVpZ2h0LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBkcmF3Q29ubmVjdExpbmUocDEsIHAyKSB7XG4gICAgICAgIHRoaXMuZHJhdygoY3R4KSA9PiB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICBjb25zdCBsaW5lU3R5bGUgPSB0aGlzLmxpbmVTdHlsZShwMSwgcDIpO1xuICAgICAgICAgICAgaWYgKCFsaW5lU3R5bGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBwb3MxID0gcDEuZ2V0UG9zaXRpb24oKTtcbiAgICAgICAgICAgIGNvbnN0IHBvczIgPSBwMi5nZXRQb3NpdGlvbigpO1xuICAgICAgICAgICAgKDAsIFV0aWxzXzEuZHJhd0Nvbm5lY3RMaW5lKShjdHgsIChfYSA9IHAxLnJldGluYS5saW5rc1dpZHRoKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB0aGlzLmNvbnRhaW5lci5yZXRpbmEubGlua3NXaWR0aCwgbGluZVN0eWxlLCBwb3MxLCBwb3MyKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGRyYXdHcmFiTGluZShwYXJ0aWNsZSwgbGluZUNvbG9yLCBvcGFjaXR5LCBtb3VzZVBvcykge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgdGhpcy5kcmF3KChjdHgpID0+IHtcbiAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgIGNvbnN0IGJlZ2luUG9zID0gcGFydGljbGUuZ2V0UG9zaXRpb24oKTtcbiAgICAgICAgICAgICgwLCBVdGlsc18xLmRyYXdHcmFiTGluZSkoY3R4LCAoX2EgPSBwYXJ0aWNsZS5yZXRpbmEubGlua3NXaWR0aCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogY29udGFpbmVyLnJldGluYS5saW5rc1dpZHRoLCBiZWdpblBvcywgbW91c2VQb3MsIGxpbmVDb2xvciwgb3BhY2l0eSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBkcmF3UGFydGljbGUocGFydGljbGUsIGRlbHRhKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZCwgX2UsIF9mO1xuICAgICAgICBpZiAocGFydGljbGUuc3Bhd25pbmcgfHwgcGFydGljbGUuZGVzdHJveWVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGZDb2xvciA9IHBhcnRpY2xlLmdldEZpbGxDb2xvcigpO1xuICAgICAgICBjb25zdCBwc0NvbG9yID0gKF9hID0gcGFydGljbGUuZ2V0U3Ryb2tlQ29sb3IoKSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogcGZDb2xvcjtcbiAgICAgICAgaWYgKCFwZkNvbG9yICYmICFwc0NvbG9yKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbGV0IFtmQ29sb3IsIHNDb2xvcl0gPSB0aGlzLmdldFBsdWdpblBhcnRpY2xlQ29sb3JzKHBhcnRpY2xlKTtcbiAgICAgICAgY29uc3QgcE9wdGlvbnMgPSBwYXJ0aWNsZS5vcHRpb25zO1xuICAgICAgICBjb25zdCB0d2lua2xlID0gcE9wdGlvbnMudHdpbmtsZS5wYXJ0aWNsZXM7XG4gICAgICAgIGNvbnN0IHR3aW5rbGluZyA9IHR3aW5rbGUuZW5hYmxlICYmIE1hdGgucmFuZG9tKCkgPCB0d2lua2xlLmZyZXF1ZW5jeTtcbiAgICAgICAgaWYgKCFmQ29sb3IgfHwgIXNDb2xvcikge1xuICAgICAgICAgICAgY29uc3QgdHdpbmtsZVJnYiA9ICgwLCBVdGlsc18xLmNvbG9yVG9Ic2wpKHR3aW5rbGUuY29sb3IpO1xuICAgICAgICAgICAgaWYgKCFmQ29sb3IpIHtcbiAgICAgICAgICAgICAgICBmQ29sb3IgPSB0d2lua2xpbmcgJiYgdHdpbmtsZVJnYiAhPT0gdW5kZWZpbmVkID8gdHdpbmtsZVJnYiA6IHBmQ29sb3IgPyBwZkNvbG9yIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFzQ29sb3IpIHtcbiAgICAgICAgICAgICAgICBzQ29sb3IgPSB0d2lua2xpbmcgJiYgdHdpbmtsZVJnYiAhPT0gdW5kZWZpbmVkID8gdHdpbmtsZVJnYiA6IHBzQ29sb3IgPyBwc0NvbG9yIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmNvbnRhaW5lci5hY3R1YWxPcHRpb25zO1xuICAgICAgICBjb25zdCB6SW5kZXhPcHRpb25zID0gcGFydGljbGUub3B0aW9ucy56SW5kZXg7XG4gICAgICAgIGNvbnN0IHpPcGFjaXR5RmFjdG9yID0gKDEgLSBwYXJ0aWNsZS56SW5kZXhGYWN0b3IpICoqIHpJbmRleE9wdGlvbnMub3BhY2l0eVJhdGU7XG4gICAgICAgIGNvbnN0IHJhZGl1cyA9IHBhcnRpY2xlLmdldFJhZGl1cygpO1xuICAgICAgICBjb25zdCBvcGFjaXR5ID0gdHdpbmtsaW5nID8gdHdpbmtsZS5vcGFjaXR5IDogKF9kID0gKF9iID0gcGFydGljbGUuYnViYmxlLm9wYWNpdHkpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IChfYyA9IHBhcnRpY2xlLm9wYWNpdHkpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy52YWx1ZSkgIT09IG51bGwgJiYgX2QgIT09IHZvaWQgMCA/IF9kIDogMTtcbiAgICAgICAgY29uc3Qgc3Ryb2tlT3BhY2l0eSA9IChfZiA9IChfZSA9IHBhcnRpY2xlLnN0cm9rZSkgPT09IG51bGwgfHwgX2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9lLm9wYWNpdHkpICE9PSBudWxsICYmIF9mICE9PSB2b2lkIDAgPyBfZiA6IG9wYWNpdHk7XG4gICAgICAgIGNvbnN0IHpPcGFjaXR5ID0gb3BhY2l0eSAqIHpPcGFjaXR5RmFjdG9yO1xuICAgICAgICBjb25zdCBmaWxsQ29sb3JWYWx1ZSA9IGZDb2xvciA/ICgwLCBVdGlsc18xLmdldFN0eWxlRnJvbUhzbCkoZkNvbG9yLCB6T3BhY2l0eSkgOiB1bmRlZmluZWQ7XG4gICAgICAgIGlmICghZmlsbENvbG9yVmFsdWUgJiYgIXNDb2xvcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZHJhdygoY3R4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB6U2l6ZUZhY3RvciA9ICgxIC0gcGFydGljbGUuekluZGV4RmFjdG9yKSAqKiB6SW5kZXhPcHRpb25zLnNpemVSYXRlO1xuICAgICAgICAgICAgY29uc3QgelN0cm9rZU9wYWNpdHkgPSBzdHJva2VPcGFjaXR5ICogek9wYWNpdHlGYWN0b3I7XG4gICAgICAgICAgICBjb25zdCBzdHJva2VDb2xvclZhbHVlID0gc0NvbG9yID8gKDAsIFV0aWxzXzEuZ2V0U3R5bGVGcm9tSHNsKShzQ29sb3IsIHpTdHJva2VPcGFjaXR5KSA6IGZpbGxDb2xvclZhbHVlO1xuICAgICAgICAgICAgaWYgKHJhZGl1cyA8PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXI7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHVwZGF0ZXIgb2YgY29udGFpbmVyLnBhcnRpY2xlcy51cGRhdGVycykge1xuICAgICAgICAgICAgICAgIGlmICh1cGRhdGVyLmJlZm9yZURyYXcpIHtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlci5iZWZvcmVEcmF3KHBhcnRpY2xlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAoMCwgVXRpbHNfMS5kcmF3UGFydGljbGUpKHRoaXMuY29udGFpbmVyLCBjdHgsIHBhcnRpY2xlLCBkZWx0YSwgZmlsbENvbG9yVmFsdWUsIHN0cm9rZUNvbG9yVmFsdWUsIG9wdGlvbnMuYmFja2dyb3VuZE1hc2suZW5hYmxlLCBvcHRpb25zLmJhY2tncm91bmRNYXNrLmNvbXBvc2l0ZSwgcmFkaXVzICogelNpemVGYWN0b3IsIHpPcGFjaXR5LCBwYXJ0aWNsZS5vcHRpb25zLnNoYWRvdywgcGFydGljbGUuZ3JhZGllbnQpO1xuICAgICAgICAgICAgZm9yIChjb25zdCB1cGRhdGVyIG9mIGNvbnRhaW5lci5wYXJ0aWNsZXMudXBkYXRlcnMpIHtcbiAgICAgICAgICAgICAgICBpZiAodXBkYXRlci5hZnRlckRyYXcpIHtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlci5hZnRlckRyYXcocGFydGljbGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGRyYXdQbHVnaW4ocGx1Z2luLCBkZWx0YSkge1xuICAgICAgICB0aGlzLmRyYXcoKGN0eCkgPT4ge1xuICAgICAgICAgICAgKDAsIFV0aWxzXzEuZHJhd1BsdWdpbikoY3R4LCBwbHVnaW4sIGRlbHRhKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGRyYXdQYXJ0aWNsZVBsdWdpbihwbHVnaW4sIHBhcnRpY2xlLCBkZWx0YSkge1xuICAgICAgICB0aGlzLmRyYXcoKGN0eCkgPT4ge1xuICAgICAgICAgICAgKDAsIFV0aWxzXzEuZHJhd1BhcnRpY2xlUGx1Z2luKShjdHgsIHBsdWdpbiwgcGFydGljbGUsIGRlbHRhKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGluaXRCYWNrZ3JvdW5kKCkge1xuICAgICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5jb250YWluZXIuYWN0dWFsT3B0aW9ucztcbiAgICAgICAgY29uc3QgYmFja2dyb3VuZCA9IG9wdGlvbnMuYmFja2dyb3VuZDtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgY29uc3QgZWxlbWVudFN0eWxlID0gZWxlbWVudCA9PT0gbnVsbCB8fCBlbGVtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlbGVtZW50LnN0eWxlO1xuICAgICAgICBpZiAoIWVsZW1lbnRTdHlsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChiYWNrZ3JvdW5kLmNvbG9yKSB7XG4gICAgICAgICAgICBjb25zdCBjb2xvciA9ICgwLCBVdGlsc18xLmNvbG9yVG9SZ2IpKGJhY2tncm91bmQuY29sb3IpO1xuICAgICAgICAgICAgZWxlbWVudFN0eWxlLmJhY2tncm91bmRDb2xvciA9IGNvbG9yID8gKDAsIFV0aWxzXzEuZ2V0U3R5bGVGcm9tUmdiKShjb2xvciwgYmFja2dyb3VuZC5vcGFjaXR5KSA6IFwiXCI7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBlbGVtZW50U3R5bGUuYmFja2dyb3VuZENvbG9yID0gXCJcIjtcbiAgICAgICAgfVxuICAgICAgICBlbGVtZW50U3R5bGUuYmFja2dyb3VuZEltYWdlID0gYmFja2dyb3VuZC5pbWFnZSB8fCBcIlwiO1xuICAgICAgICBlbGVtZW50U3R5bGUuYmFja2dyb3VuZFBvc2l0aW9uID0gYmFja2dyb3VuZC5wb3NpdGlvbiB8fCBcIlwiO1xuICAgICAgICBlbGVtZW50U3R5bGUuYmFja2dyb3VuZFJlcGVhdCA9IGJhY2tncm91bmQucmVwZWF0IHx8IFwiXCI7XG4gICAgICAgIGVsZW1lbnRTdHlsZS5iYWNrZ3JvdW5kU2l6ZSA9IGJhY2tncm91bmQuc2l6ZSB8fCBcIlwiO1xuICAgIH1cbiAgICBkcmF3KGNiKSB7XG4gICAgICAgIGlmICghdGhpcy5jb250ZXh0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNiKHRoaXMuY29udGV4dCk7XG4gICAgfVxuICAgIGluaXRDb3ZlcigpIHtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuY29udGFpbmVyLmFjdHVhbE9wdGlvbnM7XG4gICAgICAgIGNvbnN0IGNvdmVyID0gb3B0aW9ucy5iYWNrZ3JvdW5kTWFzay5jb3ZlcjtcbiAgICAgICAgY29uc3QgY29sb3IgPSBjb3Zlci5jb2xvcjtcbiAgICAgICAgY29uc3QgY292ZXJSZ2IgPSAoMCwgVXRpbHNfMS5jb2xvclRvUmdiKShjb2xvcik7XG4gICAgICAgIGlmIChjb3ZlclJnYikge1xuICAgICAgICAgICAgdGhpcy5jb3ZlckNvbG9yID0ge1xuICAgICAgICAgICAgICAgIHI6IGNvdmVyUmdiLnIsXG4gICAgICAgICAgICAgICAgZzogY292ZXJSZ2IuZyxcbiAgICAgICAgICAgICAgICBiOiBjb3ZlclJnYi5iLFxuICAgICAgICAgICAgICAgIGE6IGNvdmVyLm9wYWNpdHksXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuICAgIGluaXRUcmFpbCgpIHtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuY29udGFpbmVyLmFjdHVhbE9wdGlvbnM7XG4gICAgICAgIGNvbnN0IHRyYWlsID0gb3B0aW9ucy5wYXJ0aWNsZXMubW92ZS50cmFpbDtcbiAgICAgICAgY29uc3QgZmlsbENvbG9yID0gKDAsIFV0aWxzXzEuY29sb3JUb1JnYikodHJhaWwuZmlsbENvbG9yKTtcbiAgICAgICAgaWYgKGZpbGxDb2xvcikge1xuICAgICAgICAgICAgY29uc3QgdHJhaWwgPSBvcHRpb25zLnBhcnRpY2xlcy5tb3ZlLnRyYWlsO1xuICAgICAgICAgICAgdGhpcy50cmFpbEZpbGxDb2xvciA9IHtcbiAgICAgICAgICAgICAgICByOiBmaWxsQ29sb3IucixcbiAgICAgICAgICAgICAgICBnOiBmaWxsQ29sb3IuZyxcbiAgICAgICAgICAgICAgICBiOiBmaWxsQ29sb3IuYixcbiAgICAgICAgICAgICAgICBhOiAxIC8gdHJhaWwubGVuZ3RoLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXRQbHVnaW5QYXJ0aWNsZUNvbG9ycyhwYXJ0aWNsZSkge1xuICAgICAgICBsZXQgZkNvbG9yO1xuICAgICAgICBsZXQgc0NvbG9yO1xuICAgICAgICBmb3IgKGNvbnN0IFssIHBsdWdpbl0gb2YgdGhpcy5jb250YWluZXIucGx1Z2lucykge1xuICAgICAgICAgICAgaWYgKCFmQ29sb3IgJiYgcGx1Z2luLnBhcnRpY2xlRmlsbENvbG9yKSB7XG4gICAgICAgICAgICAgICAgZkNvbG9yID0gKDAsIFV0aWxzXzEuY29sb3JUb0hzbCkocGx1Z2luLnBhcnRpY2xlRmlsbENvbG9yKHBhcnRpY2xlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXNDb2xvciAmJiBwbHVnaW4ucGFydGljbGVTdHJva2VDb2xvcikge1xuICAgICAgICAgICAgICAgIHNDb2xvciA9ICgwLCBVdGlsc18xLmNvbG9yVG9Ic2wpKHBsdWdpbi5wYXJ0aWNsZVN0cm9rZUNvbG9yKHBhcnRpY2xlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZkNvbG9yICYmIHNDb2xvcikge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbZkNvbG9yLCBzQ29sb3JdO1xuICAgIH1cbiAgICBpbml0U3R5bGUoKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmVsZW1lbnQsIG9wdGlvbnMgPSB0aGlzLmNvbnRhaW5lci5hY3R1YWxPcHRpb25zO1xuICAgICAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvcmlnaW5hbFN0eWxlID0gdGhpcy5vcmlnaW5hbFN0eWxlO1xuICAgICAgICBpZiAob3B0aW9ucy5mdWxsU2NyZWVuLmVuYWJsZSkge1xuICAgICAgICAgICAgdGhpcy5vcmlnaW5hbFN0eWxlID0gKDAsIFV0aWxzXzEuZGVlcEV4dGVuZCkoe30sIGVsZW1lbnQuc3R5bGUpO1xuICAgICAgICAgICAgZWxlbWVudC5zdHlsZS5wb3NpdGlvbiA9IFwiZml4ZWRcIjtcbiAgICAgICAgICAgIGVsZW1lbnQuc3R5bGUuekluZGV4ID0gb3B0aW9ucy5mdWxsU2NyZWVuLnpJbmRleC50b1N0cmluZygxMCk7XG4gICAgICAgICAgICBlbGVtZW50LnN0eWxlLnRvcCA9IFwiMFwiO1xuICAgICAgICAgICAgZWxlbWVudC5zdHlsZS5sZWZ0ID0gXCIwXCI7XG4gICAgICAgICAgICBlbGVtZW50LnN0eWxlLndpZHRoID0gXCIxMDAlXCI7XG4gICAgICAgICAgICBlbGVtZW50LnN0eWxlLmhlaWdodCA9IFwiMTAwJVwiO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG9yaWdpbmFsU3R5bGUpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuc3R5bGUucG9zaXRpb24gPSBvcmlnaW5hbFN0eWxlLnBvc2l0aW9uO1xuICAgICAgICAgICAgZWxlbWVudC5zdHlsZS56SW5kZXggPSBvcmlnaW5hbFN0eWxlLnpJbmRleDtcbiAgICAgICAgICAgIGVsZW1lbnQuc3R5bGUudG9wID0gb3JpZ2luYWxTdHlsZS50b3A7XG4gICAgICAgICAgICBlbGVtZW50LnN0eWxlLmxlZnQgPSBvcmlnaW5hbFN0eWxlLmxlZnQ7XG4gICAgICAgICAgICBlbGVtZW50LnN0eWxlLndpZHRoID0gb3JpZ2luYWxTdHlsZS53aWR0aDtcbiAgICAgICAgICAgIGVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gb3JpZ2luYWxTdHlsZS5oZWlnaHQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcGFpbnRCYXNlKGJhc2VDb2xvcikge1xuICAgICAgICB0aGlzLmRyYXcoKGN0eCkgPT4ge1xuICAgICAgICAgICAgKDAsIFV0aWxzXzEucGFpbnRCYXNlKShjdHgsIHRoaXMuc2l6ZSwgYmFzZUNvbG9yKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGxpbmVTdHlsZShwMSwgcDIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZHJhdygoY3R4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5jb250YWluZXIuYWN0dWFsT3B0aW9ucztcbiAgICAgICAgICAgIGNvbnN0IGNvbm5lY3RPcHRpb25zID0gb3B0aW9ucy5pbnRlcmFjdGl2aXR5Lm1vZGVzLmNvbm5lY3Q7XG4gICAgICAgICAgICByZXR1cm4gKDAsIFV0aWxzXzEuZ3JhZGllbnQpKGN0eCwgcDEsIHAyLCBjb25uZWN0T3B0aW9ucy5saW5rcy5vcGFjaXR5KTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuZXhwb3J0cy5DYW52YXMgPSBDYW52YXM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Canvas.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Container.js": +/*!****************************************************!*\ + !*** ./node_modules/tsparticles/Core/Container.js ***! + \****************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Container = void 0;\nconst Canvas_1 = __webpack_require__(/*! ./Canvas */ \"./node_modules/tsparticles/Core/Canvas.js\");\nconst Particles_1 = __webpack_require__(/*! ./Particles */ \"./node_modules/tsparticles/Core/Particles.js\");\nconst Retina_1 = __webpack_require__(/*! ./Retina */ \"./node_modules/tsparticles/Core/Retina.js\");\nconst FrameManager_1 = __webpack_require__(/*! ./FrameManager */ \"./node_modules/tsparticles/Core/FrameManager.js\");\nconst Options_1 = __webpack_require__(/*! ../Options/Classes/Options */ \"./node_modules/tsparticles/Options/Classes/Options.js\");\nconst Utils_1 = __webpack_require__(/*! ../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Vector_1 = __webpack_require__(/*! ./Particle/Vector */ \"./node_modules/tsparticles/Core/Particle/Vector.js\");\nclass Container {\n constructor(id, sourceOptions, ...presets) {\n this.id = id;\n this.fpsLimit = 60;\n this.duration = 0;\n this.lifeTime = 0;\n this.firstStart = true;\n this.started = false;\n this.destroyed = false;\n this.paused = true;\n this.lastFrameTime = 0;\n this.zLayers = 100;\n this.pageHidden = false;\n this._sourceOptions = sourceOptions;\n this._initialSourceOptions = sourceOptions;\n this.retina = new Retina_1.Retina(this);\n this.canvas = new Canvas_1.Canvas(this);\n this.particles = new Particles_1.Particles(this);\n this.drawer = new FrameManager_1.FrameManager(this);\n this.presets = presets;\n this.pathGenerator = {\n generate: () => {\n const v = Vector_1.Vector.create(0, 0);\n v.length = Math.random();\n v.angle = Math.random() * Math.PI * 2;\n return v;\n },\n init: () => {\n },\n update: () => {\n },\n };\n this.interactivity = {\n mouse: {\n clicking: false,\n inside: false,\n },\n };\n this.bubble = {};\n this.repulse = { particles: [] };\n this.attract = { particles: [] };\n this.plugins = new Map();\n this.drawers = new Map();\n this.density = 1;\n this._options = new Options_1.Options();\n this.actualOptions = new Options_1.Options();\n this.eventListeners = new Utils_1.EventListeners(this);\n if (typeof IntersectionObserver !== \"undefined\" && IntersectionObserver) {\n this.intersectionObserver = new IntersectionObserver((entries) => this.intersectionManager(entries));\n }\n }\n get options() {\n return this._options;\n }\n get sourceOptions() {\n return this._sourceOptions;\n }\n play(force) {\n const needsUpdate = this.paused || force;\n if (this.firstStart && !this.actualOptions.autoPlay) {\n this.firstStart = false;\n return;\n }\n if (this.paused) {\n this.paused = false;\n }\n if (needsUpdate) {\n for (const [, plugin] of this.plugins) {\n if (plugin.play) {\n plugin.play();\n }\n }\n }\n this.draw(needsUpdate || false);\n }\n pause() {\n if (this.drawAnimationFrame !== undefined) {\n (0, Utils_1.cancelAnimation)()(this.drawAnimationFrame);\n delete this.drawAnimationFrame;\n }\n if (this.paused) {\n return;\n }\n for (const [, plugin] of this.plugins) {\n if (plugin.pause) {\n plugin.pause();\n }\n }\n if (!this.pageHidden) {\n this.paused = true;\n }\n }\n draw(force) {\n let refreshTime = force;\n this.drawAnimationFrame = (0, Utils_1.animate)()((timestamp) => {\n if (refreshTime) {\n this.lastFrameTime = undefined;\n refreshTime = false;\n }\n this.drawer.nextFrame(timestamp);\n });\n }\n getAnimationStatus() {\n return !this.paused && !this.pageHidden;\n }\n setNoise(noiseOrGenerator, init, update) {\n this.setPath(noiseOrGenerator, init, update);\n }\n setPath(pathOrGenerator, init, update) {\n if (!pathOrGenerator) {\n return;\n }\n if (typeof pathOrGenerator === \"function\") {\n this.pathGenerator.generate = pathOrGenerator;\n if (init) {\n this.pathGenerator.init = init;\n }\n if (update) {\n this.pathGenerator.update = update;\n }\n }\n else {\n if (pathOrGenerator.generate) {\n this.pathGenerator.generate = pathOrGenerator.generate;\n }\n if (pathOrGenerator.init) {\n this.pathGenerator.init = pathOrGenerator.init;\n }\n if (pathOrGenerator.update) {\n this.pathGenerator.update = pathOrGenerator.update;\n }\n }\n }\n destroy() {\n this.stop();\n this.canvas.destroy();\n for (const [, drawer] of this.drawers) {\n if (drawer.destroy) {\n drawer.destroy(this);\n }\n }\n for (const key of this.drawers.keys()) {\n this.drawers.delete(key);\n }\n this.destroyed = true;\n }\n exportImg(callback) {\n this.exportImage(callback);\n }\n exportImage(callback, type, quality) {\n var _a;\n return (_a = this.canvas.element) === null || _a === void 0 ? void 0 : _a.toBlob(callback, type !== null && type !== void 0 ? type : \"image/png\", quality);\n }\n exportConfiguration() {\n return JSON.stringify(this.actualOptions, undefined, 2);\n }\n refresh() {\n this.stop();\n return this.start();\n }\n reset() {\n this._options = new Options_1.Options();\n return this.refresh();\n }\n stop() {\n if (!this.started) {\n return;\n }\n this.firstStart = true;\n this.started = false;\n this.eventListeners.removeListeners();\n this.pause();\n this.particles.clear();\n this.canvas.clear();\n if (this.interactivity.element instanceof HTMLElement && this.intersectionObserver) {\n this.intersectionObserver.observe(this.interactivity.element);\n }\n for (const [, plugin] of this.plugins) {\n if (plugin.stop) {\n plugin.stop();\n }\n }\n for (const key of this.plugins.keys()) {\n this.plugins.delete(key);\n }\n this.particles.linksColors = new Map();\n delete this.particles.grabLineColor;\n delete this.particles.linksColor;\n this._sourceOptions = this._options;\n }\n async loadTheme(name) {\n this.currentTheme = name;\n await this.refresh();\n }\n async start() {\n if (this.started) {\n return;\n }\n await this.init();\n this.started = true;\n this.eventListeners.addListeners();\n if (this.interactivity.element instanceof HTMLElement && this.intersectionObserver) {\n this.intersectionObserver.observe(this.interactivity.element);\n }\n for (const [, plugin] of this.plugins) {\n if (plugin.startAsync !== undefined) {\n await plugin.startAsync();\n }\n else if (plugin.start !== undefined) {\n plugin.start();\n }\n }\n this.play();\n }\n addClickHandler(callback) {\n const el = this.interactivity.element;\n if (!el) {\n return;\n }\n const clickOrTouchHandler = (e, pos, radius) => {\n if (this.destroyed) {\n return;\n }\n const pxRatio = this.retina.pixelRatio, posRetina = {\n x: pos.x * pxRatio,\n y: pos.y * pxRatio,\n }, particles = this.particles.quadTree.queryCircle(posRetina, radius * pxRatio);\n callback(e, particles);\n };\n const clickHandler = (e) => {\n if (this.destroyed) {\n return;\n }\n const mouseEvent = e;\n const pos = {\n x: mouseEvent.offsetX || mouseEvent.clientX,\n y: mouseEvent.offsetY || mouseEvent.clientY,\n };\n clickOrTouchHandler(e, pos, 1);\n };\n const touchStartHandler = () => {\n if (this.destroyed) {\n return;\n }\n touched = true;\n touchMoved = false;\n };\n const touchMoveHandler = () => {\n if (this.destroyed) {\n return;\n }\n touchMoved = true;\n };\n const touchEndHandler = (e) => {\n var _a, _b, _c;\n if (this.destroyed) {\n return;\n }\n if (touched && !touchMoved) {\n const touchEvent = e;\n let lastTouch = touchEvent.touches[touchEvent.touches.length - 1];\n if (!lastTouch) {\n lastTouch = touchEvent.changedTouches[touchEvent.changedTouches.length - 1];\n if (!lastTouch) {\n return;\n }\n }\n const canvasRect = (_a = this.canvas.element) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();\n const pos = {\n x: lastTouch.clientX - ((_b = canvasRect === null || canvasRect === void 0 ? void 0 : canvasRect.left) !== null && _b !== void 0 ? _b : 0),\n y: lastTouch.clientY - ((_c = canvasRect === null || canvasRect === void 0 ? void 0 : canvasRect.top) !== null && _c !== void 0 ? _c : 0),\n };\n clickOrTouchHandler(e, pos, Math.max(lastTouch.radiusX, lastTouch.radiusY));\n }\n touched = false;\n touchMoved = false;\n };\n const touchCancelHandler = () => {\n if (this.destroyed) {\n return;\n }\n touched = false;\n touchMoved = false;\n };\n let touched = false;\n let touchMoved = false;\n el.addEventListener(\"click\", clickHandler);\n el.addEventListener(\"touchstart\", touchStartHandler);\n el.addEventListener(\"touchmove\", touchMoveHandler);\n el.addEventListener(\"touchend\", touchEndHandler);\n el.addEventListener(\"touchcancel\", touchCancelHandler);\n }\n updateActualOptions() {\n this.actualOptions.responsive = [];\n const newMaxWidth = this.actualOptions.setResponsive(this.canvas.size.width, this.retina.pixelRatio, this._options);\n this.actualOptions.setTheme(this.currentTheme);\n if (this.responsiveMaxWidth != newMaxWidth) {\n this.responsiveMaxWidth = newMaxWidth;\n return true;\n }\n return false;\n }\n async init() {\n this._options = new Options_1.Options();\n for (const preset of this.presets) {\n this._options.load(Utils_1.Plugins.getPreset(preset));\n }\n const shapes = Utils_1.Plugins.getSupportedShapes();\n for (const type of shapes) {\n const drawer = Utils_1.Plugins.getShapeDrawer(type);\n if (drawer) {\n this.drawers.set(type, drawer);\n }\n }\n this._options.load(this._initialSourceOptions);\n this._options.load(this._sourceOptions);\n this.actualOptions = new Options_1.Options();\n this.actualOptions.load(this._options);\n this.retina.init();\n this.canvas.init();\n this.updateActualOptions();\n this.canvas.initBackground();\n this.canvas.resize();\n this.zLayers = this.actualOptions.zLayers;\n this.duration = (0, Utils_1.getRangeValue)(this.actualOptions.duration);\n this.lifeTime = 0;\n this.fpsLimit = this.actualOptions.fpsLimit > 0 ? this.actualOptions.fpsLimit : 60;\n const availablePlugins = Utils_1.Plugins.getAvailablePlugins(this);\n for (const [id, plugin] of availablePlugins) {\n this.plugins.set(id, plugin);\n }\n for (const [, drawer] of this.drawers) {\n if (drawer.init) {\n await drawer.init(this);\n }\n }\n for (const [, plugin] of this.plugins) {\n if (plugin.init) {\n plugin.init(this.actualOptions);\n }\n else if (plugin.initAsync !== undefined) {\n await plugin.initAsync(this.actualOptions);\n }\n }\n const pathOptions = this.actualOptions.particles.move.path;\n if (pathOptions.generator) {\n const customGenerator = Utils_1.Plugins.getPathGenerator(pathOptions.generator);\n if (customGenerator) {\n if (customGenerator.init) {\n this.pathGenerator.init = customGenerator.init;\n }\n if (customGenerator.generate) {\n this.pathGenerator.generate = customGenerator.generate;\n }\n if (customGenerator.update) {\n this.pathGenerator.update = customGenerator.update;\n }\n }\n }\n this.particles.init();\n this.particles.setDensity();\n for (const [, plugin] of this.plugins) {\n if (plugin.particlesSetup !== undefined) {\n plugin.particlesSetup();\n }\n }\n }\n intersectionManager(entries) {\n if (!this.actualOptions.pauseOnOutsideViewport) {\n return;\n }\n for (const entry of entries) {\n if (entry.target !== this.interactivity.element) {\n continue;\n }\n if (entry.isIntersecting) {\n this.play();\n }\n else {\n this.pause();\n }\n }\n }\n}\nexports.Container = Container;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9Db250YWluZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsaUJBQWlCO0FBQ2pCLGlCQUFpQixtQkFBTyxDQUFDLDJEQUFVO0FBQ25DLG9CQUFvQixtQkFBTyxDQUFDLGlFQUFhO0FBQ3pDLGlCQUFpQixtQkFBTyxDQUFDLDJEQUFVO0FBQ25DLHVCQUF1QixtQkFBTyxDQUFDLHVFQUFnQjtBQUMvQyxrQkFBa0IsbUJBQU8sQ0FBQyx5RkFBNEI7QUFDdEQsZ0JBQWdCLG1CQUFPLENBQUMsMkRBQVU7QUFDbEMsaUJBQWlCLG1CQUFPLENBQUMsNkVBQW1CO0FBQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSxhQUFhO0FBQ2I7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0NvcmUvQ29udGFpbmVyLmpzP2ZkN2QiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkNvbnRhaW5lciA9IHZvaWQgMDtcbmNvbnN0IENhbnZhc18xID0gcmVxdWlyZShcIi4vQ2FudmFzXCIpO1xuY29uc3QgUGFydGljbGVzXzEgPSByZXF1aXJlKFwiLi9QYXJ0aWNsZXNcIik7XG5jb25zdCBSZXRpbmFfMSA9IHJlcXVpcmUoXCIuL1JldGluYVwiKTtcbmNvbnN0IEZyYW1lTWFuYWdlcl8xID0gcmVxdWlyZShcIi4vRnJhbWVNYW5hZ2VyXCIpO1xuY29uc3QgT3B0aW9uc18xID0gcmVxdWlyZShcIi4uL09wdGlvbnMvQ2xhc3Nlcy9PcHRpb25zXCIpO1xuY29uc3QgVXRpbHNfMSA9IHJlcXVpcmUoXCIuLi9VdGlsc1wiKTtcbmNvbnN0IFZlY3Rvcl8xID0gcmVxdWlyZShcIi4vUGFydGljbGUvVmVjdG9yXCIpO1xuY2xhc3MgQ29udGFpbmVyIHtcbiAgICBjb25zdHJ1Y3RvcihpZCwgc291cmNlT3B0aW9ucywgLi4ucHJlc2V0cykge1xuICAgICAgICB0aGlzLmlkID0gaWQ7XG4gICAgICAgIHRoaXMuZnBzTGltaXQgPSA2MDtcbiAgICAgICAgdGhpcy5kdXJhdGlvbiA9IDA7XG4gICAgICAgIHRoaXMubGlmZVRpbWUgPSAwO1xuICAgICAgICB0aGlzLmZpcnN0U3RhcnQgPSB0cnVlO1xuICAgICAgICB0aGlzLnN0YXJ0ZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5kZXN0cm95ZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5wYXVzZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmxhc3RGcmFtZVRpbWUgPSAwO1xuICAgICAgICB0aGlzLnpMYXllcnMgPSAxMDA7XG4gICAgICAgIHRoaXMucGFnZUhpZGRlbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9zb3VyY2VPcHRpb25zID0gc291cmNlT3B0aW9ucztcbiAgICAgICAgdGhpcy5faW5pdGlhbFNvdXJjZU9wdGlvbnMgPSBzb3VyY2VPcHRpb25zO1xuICAgICAgICB0aGlzLnJldGluYSA9IG5ldyBSZXRpbmFfMS5SZXRpbmEodGhpcyk7XG4gICAgICAgIHRoaXMuY2FudmFzID0gbmV3IENhbnZhc18xLkNhbnZhcyh0aGlzKTtcbiAgICAgICAgdGhpcy5wYXJ0aWNsZXMgPSBuZXcgUGFydGljbGVzXzEuUGFydGljbGVzKHRoaXMpO1xuICAgICAgICB0aGlzLmRyYXdlciA9IG5ldyBGcmFtZU1hbmFnZXJfMS5GcmFtZU1hbmFnZXIodGhpcyk7XG4gICAgICAgIHRoaXMucHJlc2V0cyA9IHByZXNldHM7XG4gICAgICAgIHRoaXMucGF0aEdlbmVyYXRvciA9IHtcbiAgICAgICAgICAgIGdlbmVyYXRlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdiA9IFZlY3Rvcl8xLlZlY3Rvci5jcmVhdGUoMCwgMCk7XG4gICAgICAgICAgICAgICAgdi5sZW5ndGggPSBNYXRoLnJhbmRvbSgpO1xuICAgICAgICAgICAgICAgIHYuYW5nbGUgPSBNYXRoLnJhbmRvbSgpICogTWF0aC5QSSAqIDI7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaW5pdDogKCkgPT4ge1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHVwZGF0ZTogKCkgPT4ge1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5pbnRlcmFjdGl2aXR5ID0ge1xuICAgICAgICAgICAgbW91c2U6IHtcbiAgICAgICAgICAgICAgICBjbGlja2luZzogZmFsc2UsXG4gICAgICAgICAgICAgICAgaW5zaWRlOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuYnViYmxlID0ge307XG4gICAgICAgIHRoaXMucmVwdWxzZSA9IHsgcGFydGljbGVzOiBbXSB9O1xuICAgICAgICB0aGlzLmF0dHJhY3QgPSB7IHBhcnRpY2xlczogW10gfTtcbiAgICAgICAgdGhpcy5wbHVnaW5zID0gbmV3IE1hcCgpO1xuICAgICAgICB0aGlzLmRyYXdlcnMgPSBuZXcgTWFwKCk7XG4gICAgICAgIHRoaXMuZGVuc2l0eSA9IDE7XG4gICAgICAgIHRoaXMuX29wdGlvbnMgPSBuZXcgT3B0aW9uc18xLk9wdGlvbnMoKTtcbiAgICAgICAgdGhpcy5hY3R1YWxPcHRpb25zID0gbmV3IE9wdGlvbnNfMS5PcHRpb25zKCk7XG4gICAgICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMgPSBuZXcgVXRpbHNfMS5FdmVudExpc3RlbmVycyh0aGlzKTtcbiAgICAgICAgaWYgKHR5cGVvZiBJbnRlcnNlY3Rpb25PYnNlcnZlciAhPT0gXCJ1bmRlZmluZWRcIiAmJiBJbnRlcnNlY3Rpb25PYnNlcnZlcikge1xuICAgICAgICAgICAgdGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZW50cmllcykgPT4gdGhpcy5pbnRlcnNlY3Rpb25NYW5hZ2VyKGVudHJpZXMpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgb3B0aW9ucygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29wdGlvbnM7XG4gICAgfVxuICAgIGdldCBzb3VyY2VPcHRpb25zKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc291cmNlT3B0aW9ucztcbiAgICB9XG4gICAgcGxheShmb3JjZSkge1xuICAgICAgICBjb25zdCBuZWVkc1VwZGF0ZSA9IHRoaXMucGF1c2VkIHx8IGZvcmNlO1xuICAgICAgICBpZiAodGhpcy5maXJzdFN0YXJ0ICYmICF0aGlzLmFjdHVhbE9wdGlvbnMuYXV0b1BsYXkpIHtcbiAgICAgICAgICAgIHRoaXMuZmlyc3RTdGFydCA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnBhdXNlZCkge1xuICAgICAgICAgICAgdGhpcy5wYXVzZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobmVlZHNVcGRhdGUpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgWywgcGx1Z2luXSBvZiB0aGlzLnBsdWdpbnMpIHtcbiAgICAgICAgICAgICAgICBpZiAocGx1Z2luLnBsYXkpIHtcbiAgICAgICAgICAgICAgICAgICAgcGx1Z2luLnBsYXkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kcmF3KG5lZWRzVXBkYXRlIHx8IGZhbHNlKTtcbiAgICB9XG4gICAgcGF1c2UoKSB7XG4gICAgICAgIGlmICh0aGlzLmRyYXdBbmltYXRpb25GcmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAoMCwgVXRpbHNfMS5jYW5jZWxBbmltYXRpb24pKCkodGhpcy5kcmF3QW5pbWF0aW9uRnJhbWUpO1xuICAgICAgICAgICAgZGVsZXRlIHRoaXMuZHJhd0FuaW1hdGlvbkZyYW1lO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnBhdXNlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgWywgcGx1Z2luXSBvZiB0aGlzLnBsdWdpbnMpIHtcbiAgICAgICAgICAgIGlmIChwbHVnaW4ucGF1c2UpIHtcbiAgICAgICAgICAgICAgICBwbHVnaW4ucGF1c2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMucGFnZUhpZGRlbikge1xuICAgICAgICAgICAgdGhpcy5wYXVzZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIGRyYXcoZm9yY2UpIHtcbiAgICAgICAgbGV0IHJlZnJlc2hUaW1lID0gZm9yY2U7XG4gICAgICAgIHRoaXMuZHJhd0FuaW1hdGlvbkZyYW1lID0gKDAsIFV0aWxzXzEuYW5pbWF0ZSkoKSgodGltZXN0YW1wKSA9PiB7XG4gICAgICAgICAgICBpZiAocmVmcmVzaFRpbWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhc3RGcmFtZVRpbWUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgcmVmcmVzaFRpbWUgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZHJhd2VyLm5leHRGcmFtZSh0aW1lc3RhbXApO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgZ2V0QW5pbWF0aW9uU3RhdHVzKCkge1xuICAgICAgICByZXR1cm4gIXRoaXMucGF1c2VkICYmICF0aGlzLnBhZ2VIaWRkZW47XG4gICAgfVxuICAgIHNldE5vaXNlKG5vaXNlT3JHZW5lcmF0b3IsIGluaXQsIHVwZGF0ZSkge1xuICAgICAgICB0aGlzLnNldFBhdGgobm9pc2VPckdlbmVyYXRvciwgaW5pdCwgdXBkYXRlKTtcbiAgICB9XG4gICAgc2V0UGF0aChwYXRoT3JHZW5lcmF0b3IsIGluaXQsIHVwZGF0ZSkge1xuICAgICAgICBpZiAoIXBhdGhPckdlbmVyYXRvcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgcGF0aE9yR2VuZXJhdG9yID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIHRoaXMucGF0aEdlbmVyYXRvci5nZW5lcmF0ZSA9IHBhdGhPckdlbmVyYXRvcjtcbiAgICAgICAgICAgIGlmIChpbml0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYXRoR2VuZXJhdG9yLmluaXQgPSBpbml0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHVwZGF0ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMucGF0aEdlbmVyYXRvci51cGRhdGUgPSB1cGRhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAocGF0aE9yR2VuZXJhdG9yLmdlbmVyYXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYXRoR2VuZXJhdG9yLmdlbmVyYXRlID0gcGF0aE9yR2VuZXJhdG9yLmdlbmVyYXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHBhdGhPckdlbmVyYXRvci5pbml0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYXRoR2VuZXJhdG9yLmluaXQgPSBwYXRoT3JHZW5lcmF0b3IuaW5pdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwYXRoT3JHZW5lcmF0b3IudXBkYXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYXRoR2VuZXJhdG9yLnVwZGF0ZSA9IHBhdGhPckdlbmVyYXRvci51cGRhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgZGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5zdG9wKCk7XG4gICAgICAgIHRoaXMuY2FudmFzLmRlc3Ryb3koKTtcbiAgICAgICAgZm9yIChjb25zdCBbLCBkcmF3ZXJdIG9mIHRoaXMuZHJhd2Vycykge1xuICAgICAgICAgICAgaWYgKGRyYXdlci5kZXN0cm95KSB7XG4gICAgICAgICAgICAgICAgZHJhd2VyLmRlc3Ryb3kodGhpcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgdGhpcy5kcmF3ZXJzLmtleXMoKSkge1xuICAgICAgICAgICAgdGhpcy5kcmF3ZXJzLmRlbGV0ZShrZXkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGVzdHJveWVkID0gdHJ1ZTtcbiAgICB9XG4gICAgZXhwb3J0SW1nKGNhbGxiYWNrKSB7XG4gICAgICAgIHRoaXMuZXhwb3J0SW1hZ2UoY2FsbGJhY2spO1xuICAgIH1cbiAgICBleHBvcnRJbWFnZShjYWxsYmFjaywgdHlwZSwgcXVhbGl0eSkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIHJldHVybiAoX2EgPSB0aGlzLmNhbnZhcy5lbGVtZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudG9CbG9iKGNhbGxiYWNrLCB0eXBlICE9PSBudWxsICYmIHR5cGUgIT09IHZvaWQgMCA/IHR5cGUgOiBcImltYWdlL3BuZ1wiLCBxdWFsaXR5KTtcbiAgICB9XG4gICAgZXhwb3J0Q29uZmlndXJhdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMuYWN0dWFsT3B0aW9ucywgdW5kZWZpbmVkLCAyKTtcbiAgICB9XG4gICAgcmVmcmVzaCgpIHtcbiAgICAgICAgdGhpcy5zdG9wKCk7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXJ0KCk7XG4gICAgfVxuICAgIHJlc2V0KCkge1xuICAgICAgICB0aGlzLl9vcHRpb25zID0gbmV3IE9wdGlvbnNfMS5PcHRpb25zKCk7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZnJlc2goKTtcbiAgICB9XG4gICAgc3RvcCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLnN0YXJ0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZpcnN0U3RhcnQgPSB0cnVlO1xuICAgICAgICB0aGlzLnN0YXJ0ZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5ldmVudExpc3RlbmVycy5yZW1vdmVMaXN0ZW5lcnMoKTtcbiAgICAgICAgdGhpcy5wYXVzZSgpO1xuICAgICAgICB0aGlzLnBhcnRpY2xlcy5jbGVhcigpO1xuICAgICAgICB0aGlzLmNhbnZhcy5jbGVhcigpO1xuICAgICAgICBpZiAodGhpcy5pbnRlcmFjdGl2aXR5LmVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCAmJiB0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyKSB7XG4gICAgICAgICAgICB0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyLm9ic2VydmUodGhpcy5pbnRlcmFjdGl2aXR5LmVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgWywgcGx1Z2luXSBvZiB0aGlzLnBsdWdpbnMpIHtcbiAgICAgICAgICAgIGlmIChwbHVnaW4uc3RvcCkge1xuICAgICAgICAgICAgICAgIHBsdWdpbi5zdG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgdGhpcy5wbHVnaW5zLmtleXMoKSkge1xuICAgICAgICAgICAgdGhpcy5wbHVnaW5zLmRlbGV0ZShrZXkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucGFydGljbGVzLmxpbmtzQ29sb3JzID0gbmV3IE1hcCgpO1xuICAgICAgICBkZWxldGUgdGhpcy5wYXJ0aWNsZXMuZ3JhYkxpbmVDb2xvcjtcbiAgICAgICAgZGVsZXRlIHRoaXMucGFydGljbGVzLmxpbmtzQ29sb3I7XG4gICAgICAgIHRoaXMuX3NvdXJjZU9wdGlvbnMgPSB0aGlzLl9vcHRpb25zO1xuICAgIH1cbiAgICBhc3luYyBsb2FkVGhlbWUobmFtZSkge1xuICAgICAgICB0aGlzLmN1cnJlbnRUaGVtZSA9IG5hbWU7XG4gICAgICAgIGF3YWl0IHRoaXMucmVmcmVzaCgpO1xuICAgIH1cbiAgICBhc3luYyBzdGFydCgpIHtcbiAgICAgICAgaWYgKHRoaXMuc3RhcnRlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IHRoaXMuaW5pdCgpO1xuICAgICAgICB0aGlzLnN0YXJ0ZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmV2ZW50TGlzdGVuZXJzLmFkZExpc3RlbmVycygpO1xuICAgICAgICBpZiAodGhpcy5pbnRlcmFjdGl2aXR5LmVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCAmJiB0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyKSB7XG4gICAgICAgICAgICB0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyLm9ic2VydmUodGhpcy5pbnRlcmFjdGl2aXR5LmVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgWywgcGx1Z2luXSBvZiB0aGlzLnBsdWdpbnMpIHtcbiAgICAgICAgICAgIGlmIChwbHVnaW4uc3RhcnRBc3luYyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgcGx1Z2luLnN0YXJ0QXN5bmMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHBsdWdpbi5zdGFydCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcGx1Z2luLnN0YXJ0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wbGF5KCk7XG4gICAgfVxuICAgIGFkZENsaWNrSGFuZGxlcihjYWxsYmFjaykge1xuICAgICAgICBjb25zdCBlbCA9IHRoaXMuaW50ZXJhY3Rpdml0eS5lbGVtZW50O1xuICAgICAgICBpZiAoIWVsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2xpY2tPclRvdWNoSGFuZGxlciA9IChlLCBwb3MsIHJhZGl1cykgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuZGVzdHJveWVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgcHhSYXRpbyA9IHRoaXMucmV0aW5hLnBpeGVsUmF0aW8sIHBvc1JldGluYSA9IHtcbiAgICAgICAgICAgICAgICB4OiBwb3MueCAqIHB4UmF0aW8sXG4gICAgICAgICAgICAgICAgeTogcG9zLnkgKiBweFJhdGlvLFxuICAgICAgICAgICAgfSwgcGFydGljbGVzID0gdGhpcy5wYXJ0aWNsZXMucXVhZFRyZWUucXVlcnlDaXJjbGUocG9zUmV0aW5hLCByYWRpdXMgKiBweFJhdGlvKTtcbiAgICAgICAgICAgIGNhbGxiYWNrKGUsIHBhcnRpY2xlcyk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGNsaWNrSGFuZGxlciA9IChlKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5kZXN0cm95ZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBtb3VzZUV2ZW50ID0gZTtcbiAgICAgICAgICAgIGNvbnN0IHBvcyA9IHtcbiAgICAgICAgICAgICAgICB4OiBtb3VzZUV2ZW50Lm9mZnNldFggfHwgbW91c2VFdmVudC5jbGllbnRYLFxuICAgICAgICAgICAgICAgIHk6IG1vdXNlRXZlbnQub2Zmc2V0WSB8fCBtb3VzZUV2ZW50LmNsaWVudFksXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY2xpY2tPclRvdWNoSGFuZGxlcihlLCBwb3MsIDEpO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCB0b3VjaFN0YXJ0SGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmRlc3Ryb3llZCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRvdWNoZWQgPSB0cnVlO1xuICAgICAgICAgICAgdG91Y2hNb3ZlZCA9IGZhbHNlO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCB0b3VjaE1vdmVIYW5kbGVyID0gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuZGVzdHJveWVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdG91Y2hNb3ZlZCA9IHRydWU7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHRvdWNoRW5kSGFuZGxlciA9IChlKSA9PiB7XG4gICAgICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgICAgIGlmICh0aGlzLmRlc3Ryb3llZCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0b3VjaGVkICYmICF0b3VjaE1vdmVkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdG91Y2hFdmVudCA9IGU7XG4gICAgICAgICAgICAgICAgbGV0IGxhc3RUb3VjaCA9IHRvdWNoRXZlbnQudG91Y2hlc1t0b3VjaEV2ZW50LnRvdWNoZXMubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICAgICAgaWYgKCFsYXN0VG91Y2gpIHtcbiAgICAgICAgICAgICAgICAgICAgbGFzdFRvdWNoID0gdG91Y2hFdmVudC5jaGFuZ2VkVG91Y2hlc1t0b3VjaEV2ZW50LmNoYW5nZWRUb3VjaGVzLmxlbmd0aCAtIDFdO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWxhc3RUb3VjaCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGNhbnZhc1JlY3QgPSAoX2EgPSB0aGlzLmNhbnZhcy5lbGVtZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcG9zID0ge1xuICAgICAgICAgICAgICAgICAgICB4OiBsYXN0VG91Y2guY2xpZW50WCAtICgoX2IgPSBjYW52YXNSZWN0ID09PSBudWxsIHx8IGNhbnZhc1JlY3QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNhbnZhc1JlY3QubGVmdCkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogMCksXG4gICAgICAgICAgICAgICAgICAgIHk6IGxhc3RUb3VjaC5jbGllbnRZIC0gKChfYyA9IGNhbnZhc1JlY3QgPT09IG51bGwgfHwgY2FudmFzUmVjdCA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2FudmFzUmVjdC50b3ApICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IDApLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY2xpY2tPclRvdWNoSGFuZGxlcihlLCBwb3MsIE1hdGgubWF4KGxhc3RUb3VjaC5yYWRpdXNYLCBsYXN0VG91Y2gucmFkaXVzWSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdG91Y2hlZCA9IGZhbHNlO1xuICAgICAgICAgICAgdG91Y2hNb3ZlZCA9IGZhbHNlO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCB0b3VjaENhbmNlbEhhbmRsZXIgPSAoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5kZXN0cm95ZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0b3VjaGVkID0gZmFsc2U7XG4gICAgICAgICAgICB0b3VjaE1vdmVkID0gZmFsc2U7XG4gICAgICAgIH07XG4gICAgICAgIGxldCB0b3VjaGVkID0gZmFsc2U7XG4gICAgICAgIGxldCB0b3VjaE1vdmVkID0gZmFsc2U7XG4gICAgICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBjbGlja0hhbmRsZXIpO1xuICAgICAgICBlbC5hZGRFdmVudExpc3RlbmVyKFwidG91Y2hzdGFydFwiLCB0b3VjaFN0YXJ0SGFuZGxlcik7XG4gICAgICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaG1vdmVcIiwgdG91Y2hNb3ZlSGFuZGxlcik7XG4gICAgICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaGVuZFwiLCB0b3VjaEVuZEhhbmRsZXIpO1xuICAgICAgICBlbC5hZGRFdmVudExpc3RlbmVyKFwidG91Y2hjYW5jZWxcIiwgdG91Y2hDYW5jZWxIYW5kbGVyKTtcbiAgICB9XG4gICAgdXBkYXRlQWN0dWFsT3B0aW9ucygpIHtcbiAgICAgICAgdGhpcy5hY3R1YWxPcHRpb25zLnJlc3BvbnNpdmUgPSBbXTtcbiAgICAgICAgY29uc3QgbmV3TWF4V2lkdGggPSB0aGlzLmFjdHVhbE9wdGlvbnMuc2V0UmVzcG9uc2l2ZSh0aGlzLmNhbnZhcy5zaXplLndpZHRoLCB0aGlzLnJldGluYS5waXhlbFJhdGlvLCB0aGlzLl9vcHRpb25zKTtcbiAgICAgICAgdGhpcy5hY3R1YWxPcHRpb25zLnNldFRoZW1lKHRoaXMuY3VycmVudFRoZW1lKTtcbiAgICAgICAgaWYgKHRoaXMucmVzcG9uc2l2ZU1heFdpZHRoICE9IG5ld01heFdpZHRoKSB7XG4gICAgICAgICAgICB0aGlzLnJlc3BvbnNpdmVNYXhXaWR0aCA9IG5ld01heFdpZHRoO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBhc3luYyBpbml0KCkge1xuICAgICAgICB0aGlzLl9vcHRpb25zID0gbmV3IE9wdGlvbnNfMS5PcHRpb25zKCk7XG4gICAgICAgIGZvciAoY29uc3QgcHJlc2V0IG9mIHRoaXMucHJlc2V0cykge1xuICAgICAgICAgICAgdGhpcy5fb3B0aW9ucy5sb2FkKFV0aWxzXzEuUGx1Z2lucy5nZXRQcmVzZXQocHJlc2V0KSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2hhcGVzID0gVXRpbHNfMS5QbHVnaW5zLmdldFN1cHBvcnRlZFNoYXBlcygpO1xuICAgICAgICBmb3IgKGNvbnN0IHR5cGUgb2Ygc2hhcGVzKSB7XG4gICAgICAgICAgICBjb25zdCBkcmF3ZXIgPSBVdGlsc18xLlBsdWdpbnMuZ2V0U2hhcGVEcmF3ZXIodHlwZSk7XG4gICAgICAgICAgICBpZiAoZHJhd2VyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kcmF3ZXJzLnNldCh0eXBlLCBkcmF3ZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuX29wdGlvbnMubG9hZCh0aGlzLl9pbml0aWFsU291cmNlT3B0aW9ucyk7XG4gICAgICAgIHRoaXMuX29wdGlvbnMubG9hZCh0aGlzLl9zb3VyY2VPcHRpb25zKTtcbiAgICAgICAgdGhpcy5hY3R1YWxPcHRpb25zID0gbmV3IE9wdGlvbnNfMS5PcHRpb25zKCk7XG4gICAgICAgIHRoaXMuYWN0dWFsT3B0aW9ucy5sb2FkKHRoaXMuX29wdGlvbnMpO1xuICAgICAgICB0aGlzLnJldGluYS5pbml0KCk7XG4gICAgICAgIHRoaXMuY2FudmFzLmluaXQoKTtcbiAgICAgICAgdGhpcy51cGRhdGVBY3R1YWxPcHRpb25zKCk7XG4gICAgICAgIHRoaXMuY2FudmFzLmluaXRCYWNrZ3JvdW5kKCk7XG4gICAgICAgIHRoaXMuY2FudmFzLnJlc2l6ZSgpO1xuICAgICAgICB0aGlzLnpMYXllcnMgPSB0aGlzLmFjdHVhbE9wdGlvbnMuekxheWVycztcbiAgICAgICAgdGhpcy5kdXJhdGlvbiA9ICgwLCBVdGlsc18xLmdldFJhbmdlVmFsdWUpKHRoaXMuYWN0dWFsT3B0aW9ucy5kdXJhdGlvbik7XG4gICAgICAgIHRoaXMubGlmZVRpbWUgPSAwO1xuICAgICAgICB0aGlzLmZwc0xpbWl0ID0gdGhpcy5hY3R1YWxPcHRpb25zLmZwc0xpbWl0ID4gMCA/IHRoaXMuYWN0dWFsT3B0aW9ucy5mcHNMaW1pdCA6IDYwO1xuICAgICAgICBjb25zdCBhdmFpbGFibGVQbHVnaW5zID0gVXRpbHNfMS5QbHVnaW5zLmdldEF2YWlsYWJsZVBsdWdpbnModGhpcyk7XG4gICAgICAgIGZvciAoY29uc3QgW2lkLCBwbHVnaW5dIG9mIGF2YWlsYWJsZVBsdWdpbnMpIHtcbiAgICAgICAgICAgIHRoaXMucGx1Z2lucy5zZXQoaWQsIHBsdWdpbik7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBbLCBkcmF3ZXJdIG9mIHRoaXMuZHJhd2Vycykge1xuICAgICAgICAgICAgaWYgKGRyYXdlci5pbml0KSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgZHJhd2VyLmluaXQodGhpcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBbLCBwbHVnaW5dIG9mIHRoaXMucGx1Z2lucykge1xuICAgICAgICAgICAgaWYgKHBsdWdpbi5pbml0KSB7XG4gICAgICAgICAgICAgICAgcGx1Z2luLmluaXQodGhpcy5hY3R1YWxPcHRpb25zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHBsdWdpbi5pbml0QXN5bmMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGF3YWl0IHBsdWdpbi5pbml0QXN5bmModGhpcy5hY3R1YWxPcHRpb25zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYXRoT3B0aW9ucyA9IHRoaXMuYWN0dWFsT3B0aW9ucy5wYXJ0aWNsZXMubW92ZS5wYXRoO1xuICAgICAgICBpZiAocGF0aE9wdGlvbnMuZ2VuZXJhdG9yKSB7XG4gICAgICAgICAgICBjb25zdCBjdXN0b21HZW5lcmF0b3IgPSBVdGlsc18xLlBsdWdpbnMuZ2V0UGF0aEdlbmVyYXRvcihwYXRoT3B0aW9ucy5nZW5lcmF0b3IpO1xuICAgICAgICAgICAgaWYgKGN1c3RvbUdlbmVyYXRvcikge1xuICAgICAgICAgICAgICAgIGlmIChjdXN0b21HZW5lcmF0b3IuaW5pdCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhdGhHZW5lcmF0b3IuaW5pdCA9IGN1c3RvbUdlbmVyYXRvci5pbml0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoY3VzdG9tR2VuZXJhdG9yLmdlbmVyYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGF0aEdlbmVyYXRvci5nZW5lcmF0ZSA9IGN1c3RvbUdlbmVyYXRvci5nZW5lcmF0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGN1c3RvbUdlbmVyYXRvci51cGRhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXRoR2VuZXJhdG9yLnVwZGF0ZSA9IGN1c3RvbUdlbmVyYXRvci51cGRhdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMucGFydGljbGVzLmluaXQoKTtcbiAgICAgICAgdGhpcy5wYXJ0aWNsZXMuc2V0RGVuc2l0eSgpO1xuICAgICAgICBmb3IgKGNvbnN0IFssIHBsdWdpbl0gb2YgdGhpcy5wbHVnaW5zKSB7XG4gICAgICAgICAgICBpZiAocGx1Z2luLnBhcnRpY2xlc1NldHVwICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBwbHVnaW4ucGFydGljbGVzU2V0dXAoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBpbnRlcnNlY3Rpb25NYW5hZ2VyKGVudHJpZXMpIHtcbiAgICAgICAgaWYgKCF0aGlzLmFjdHVhbE9wdGlvbnMucGF1c2VPbk91dHNpZGVWaWV3cG9ydCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgZW50cmllcykge1xuICAgICAgICAgICAgaWYgKGVudHJ5LnRhcmdldCAhPT0gdGhpcy5pbnRlcmFjdGl2aXR5LmVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChlbnRyeS5pc0ludGVyc2VjdGluZykge1xuICAgICAgICAgICAgICAgIHRoaXMucGxheSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYXVzZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5Db250YWluZXIgPSBDb250YWluZXI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Container.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/ExternalInteractorBase.js": +/*!*****************************************************************!*\ + !*** ./node_modules/tsparticles/Core/ExternalInteractorBase.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ExternalInteractorBase = void 0;\nconst Enums_1 = __webpack_require__(/*! ../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nclass ExternalInteractorBase {\n constructor(container) {\n this.container = container;\n this.type = Enums_1.InteractorType.External;\n }\n}\nexports.ExternalInteractorBase = ExternalInteractorBase;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9FeHRlcm5hbEludGVyYWN0b3JCYXNlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELDhCQUE4QjtBQUM5QixnQkFBZ0IsbUJBQU8sQ0FBQywyREFBVTtBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4QkFBOEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0NvcmUvRXh0ZXJuYWxJbnRlcmFjdG9yQmFzZS5qcz8xYWZiIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5FeHRlcm5hbEludGVyYWN0b3JCYXNlID0gdm9pZCAwO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuLi9FbnVtc1wiKTtcbmNsYXNzIEV4dGVybmFsSW50ZXJhY3RvckJhc2Uge1xuICAgIGNvbnN0cnVjdG9yKGNvbnRhaW5lcikge1xuICAgICAgICB0aGlzLmNvbnRhaW5lciA9IGNvbnRhaW5lcjtcbiAgICAgICAgdGhpcy50eXBlID0gRW51bXNfMS5JbnRlcmFjdG9yVHlwZS5FeHRlcm5hbDtcbiAgICB9XG59XG5leHBvcnRzLkV4dGVybmFsSW50ZXJhY3RvckJhc2UgPSBFeHRlcm5hbEludGVyYWN0b3JCYXNlO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/ExternalInteractorBase.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/FrameManager.js": +/*!*******************************************************!*\ + !*** ./node_modules/tsparticles/Core/FrameManager.js ***! + \*******************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.FrameManager = void 0;\nclass FrameManager {\n constructor(container) {\n this.container = container;\n }\n nextFrame(timestamp) {\n var _a;\n try {\n const container = this.container;\n if (container.lastFrameTime !== undefined &&\n timestamp < container.lastFrameTime + 1000 / container.fpsLimit) {\n container.draw(false);\n return;\n }\n (_a = container.lastFrameTime) !== null && _a !== void 0 ? _a : (container.lastFrameTime = timestamp);\n const deltaValue = timestamp - container.lastFrameTime;\n const delta = {\n value: deltaValue,\n factor: (60 * deltaValue) / 1000,\n };\n container.lifeTime += delta.value;\n container.lastFrameTime = timestamp;\n if (deltaValue > 1000) {\n container.draw(false);\n return;\n }\n container.particles.draw(delta);\n if (container.duration > 0 && container.lifeTime > container.duration) {\n container.destroy();\n return;\n }\n if (container.getAnimationStatus()) {\n container.draw(false);\n }\n }\n catch (e) {\n console.error(\"tsParticles error in animation loop\", e);\n }\n }\n}\nexports.FrameManager = FrameManager;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9GcmFtZU1hbmFnZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9GcmFtZU1hbmFnZXIuanM/OThjYiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuRnJhbWVNYW5hZ2VyID0gdm9pZCAwO1xuY2xhc3MgRnJhbWVNYW5hZ2VyIHtcbiAgICBjb25zdHJ1Y3Rvcihjb250YWluZXIpIHtcbiAgICAgICAgdGhpcy5jb250YWluZXIgPSBjb250YWluZXI7XG4gICAgfVxuICAgIG5leHRGcmFtZSh0aW1lc3RhbXApIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXI7XG4gICAgICAgICAgICBpZiAoY29udGFpbmVyLmxhc3RGcmFtZVRpbWUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgICAgIHRpbWVzdGFtcCA8IGNvbnRhaW5lci5sYXN0RnJhbWVUaW1lICsgMTAwMCAvIGNvbnRhaW5lci5mcHNMaW1pdCkge1xuICAgICAgICAgICAgICAgIGNvbnRhaW5lci5kcmF3KGZhbHNlKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAoX2EgPSBjb250YWluZXIubGFzdEZyYW1lVGltZSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogKGNvbnRhaW5lci5sYXN0RnJhbWVUaW1lID0gdGltZXN0YW1wKTtcbiAgICAgICAgICAgIGNvbnN0IGRlbHRhVmFsdWUgPSB0aW1lc3RhbXAgLSBjb250YWluZXIubGFzdEZyYW1lVGltZTtcbiAgICAgICAgICAgIGNvbnN0IGRlbHRhID0ge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBkZWx0YVZhbHVlLFxuICAgICAgICAgICAgICAgIGZhY3RvcjogKDYwICogZGVsdGFWYWx1ZSkgLyAxMDAwLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnRhaW5lci5saWZlVGltZSArPSBkZWx0YS52YWx1ZTtcbiAgICAgICAgICAgIGNvbnRhaW5lci5sYXN0RnJhbWVUaW1lID0gdGltZXN0YW1wO1xuICAgICAgICAgICAgaWYgKGRlbHRhVmFsdWUgPiAxMDAwKSB7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLmRyYXcoZmFsc2UpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnRhaW5lci5wYXJ0aWNsZXMuZHJhdyhkZWx0YSk7XG4gICAgICAgICAgICBpZiAoY29udGFpbmVyLmR1cmF0aW9uID4gMCAmJiBjb250YWluZXIubGlmZVRpbWUgPiBjb250YWluZXIuZHVyYXRpb24pIHtcbiAgICAgICAgICAgICAgICBjb250YWluZXIuZGVzdHJveSgpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjb250YWluZXIuZ2V0QW5pbWF0aW9uU3RhdHVzKCkpIHtcbiAgICAgICAgICAgICAgICBjb250YWluZXIuZHJhdyhmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJ0c1BhcnRpY2xlcyBlcnJvciBpbiBhbmltYXRpb24gbG9vcFwiLCBlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuRnJhbWVNYW5hZ2VyID0gRnJhbWVNYW5hZ2VyO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/FrameManager.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/InteractionManager.js": +/*!*************************************************************!*\ + !*** ./node_modules/tsparticles/Core/InteractionManager.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.InteractionManager = void 0;\nconst Utils_1 = __webpack_require__(/*! ../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Enums_1 = __webpack_require__(/*! ../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nclass InteractionManager {\n constructor(container) {\n this.container = container;\n this.externalInteractors = [];\n this.particleInteractors = [];\n this.init();\n }\n init() {\n const interactors = Utils_1.Plugins.getInteractors(this.container, true);\n for (const interactor of interactors) {\n switch (interactor.type) {\n case Enums_1.InteractorType.External:\n this.externalInteractors.push(interactor);\n break;\n case Enums_1.InteractorType.Particles:\n this.particleInteractors.push(interactor);\n break;\n }\n }\n }\n externalInteract(delta) {\n for (const interactor of this.externalInteractors) {\n if (interactor.isEnabled()) {\n interactor.interact(delta);\n }\n }\n }\n particlesInteract(particle, delta) {\n for (const interactor of this.externalInteractors) {\n interactor.reset(particle);\n }\n for (const interactor of this.particleInteractors) {\n if (interactor.isEnabled(particle)) {\n interactor.interact(particle, delta);\n }\n }\n }\n}\nexports.InteractionManager = InteractionManager;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmFjdGlvbk1hbmFnZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsMEJBQTBCO0FBQzFCLGdCQUFnQixtQkFBTyxDQUFDLDJEQUFVO0FBQ2xDLGdCQUFnQixtQkFBTyxDQUFDLDJEQUFVO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0NvcmUvSW50ZXJhY3Rpb25NYW5hZ2VyLmpzP2FmNmMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkludGVyYWN0aW9uTWFuYWdlciA9IHZvaWQgMDtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vVXRpbHNcIik7XG5jb25zdCBFbnVtc18xID0gcmVxdWlyZShcIi4uL0VudW1zXCIpO1xuY2xhc3MgSW50ZXJhY3Rpb25NYW5hZ2VyIHtcbiAgICBjb25zdHJ1Y3Rvcihjb250YWluZXIpIHtcbiAgICAgICAgdGhpcy5jb250YWluZXIgPSBjb250YWluZXI7XG4gICAgICAgIHRoaXMuZXh0ZXJuYWxJbnRlcmFjdG9ycyA9IFtdO1xuICAgICAgICB0aGlzLnBhcnRpY2xlSW50ZXJhY3RvcnMgPSBbXTtcbiAgICAgICAgdGhpcy5pbml0KCk7XG4gICAgfVxuICAgIGluaXQoKSB7XG4gICAgICAgIGNvbnN0IGludGVyYWN0b3JzID0gVXRpbHNfMS5QbHVnaW5zLmdldEludGVyYWN0b3JzKHRoaXMuY29udGFpbmVyLCB0cnVlKTtcbiAgICAgICAgZm9yIChjb25zdCBpbnRlcmFjdG9yIG9mIGludGVyYWN0b3JzKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKGludGVyYWN0b3IudHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgRW51bXNfMS5JbnRlcmFjdG9yVHlwZS5FeHRlcm5hbDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5leHRlcm5hbEludGVyYWN0b3JzLnB1c2goaW50ZXJhY3Rvcik7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgRW51bXNfMS5JbnRlcmFjdG9yVHlwZS5QYXJ0aWNsZXM6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFydGljbGVJbnRlcmFjdG9ycy5wdXNoKGludGVyYWN0b3IpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBleHRlcm5hbEludGVyYWN0KGRlbHRhKSB7XG4gICAgICAgIGZvciAoY29uc3QgaW50ZXJhY3RvciBvZiB0aGlzLmV4dGVybmFsSW50ZXJhY3RvcnMpIHtcbiAgICAgICAgICAgIGlmIChpbnRlcmFjdG9yLmlzRW5hYmxlZCgpKSB7XG4gICAgICAgICAgICAgICAgaW50ZXJhY3Rvci5pbnRlcmFjdChkZWx0YSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcGFydGljbGVzSW50ZXJhY3QocGFydGljbGUsIGRlbHRhKSB7XG4gICAgICAgIGZvciAoY29uc3QgaW50ZXJhY3RvciBvZiB0aGlzLmV4dGVybmFsSW50ZXJhY3RvcnMpIHtcbiAgICAgICAgICAgIGludGVyYWN0b3IucmVzZXQocGFydGljbGUpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgaW50ZXJhY3RvciBvZiB0aGlzLnBhcnRpY2xlSW50ZXJhY3RvcnMpIHtcbiAgICAgICAgICAgIGlmIChpbnRlcmFjdG9yLmlzRW5hYmxlZChwYXJ0aWNsZSkpIHtcbiAgICAgICAgICAgICAgICBpbnRlcmFjdG9yLmludGVyYWN0KHBhcnRpY2xlLCBkZWx0YSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkludGVyYWN0aW9uTWFuYWdlciA9IEludGVyYWN0aW9uTWFuYWdlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/InteractionManager.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/Colors.js": +/*!************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/Colors.js ***! + \************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0NvbG9ycy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0NvbG9ycy5qcz85ZjU1Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/Colors.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/Gradients.js": +/*!***************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/Gradients.js ***! + \***************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0dyYWRpZW50cy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0dyYWRpZW50cy5qcz9mNDFiIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/Gradients.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IAttract.js": +/*!**************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IAttract.js ***! + \**************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lBdHRyYWN0LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9Db3JlL0ludGVyZmFjZXMvSUF0dHJhY3QuanM/NWViOSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IAttract.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IBounds.js": +/*!*************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IBounds.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lCb3VuZHMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0NvcmUvSW50ZXJmYWNlcy9JQm91bmRzLmpzPzQ1MGUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IBounds.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IBubble.js": +/*!*************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IBubble.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lCdWJibGUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0NvcmUvSW50ZXJmYWNlcy9JQnViYmxlLmpzPzlhNzYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IBubble.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IBubbleParticleData.js": +/*!*************************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IBubbleParticleData.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lCdWJibGVQYXJ0aWNsZURhdGEuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0NvcmUvSW50ZXJmYWNlcy9JQnViYmxlUGFydGljbGVEYXRhLmpzPzcwYmYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IBubbleParticleData.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/ICircleBouncer.js": +/*!********************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/ICircleBouncer.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lDaXJjbGVCb3VuY2VyLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9Db3JlL0ludGVyZmFjZXMvSUNpcmNsZUJvdW5jZXIuanM/NjMzYyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/ICircleBouncer.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IContainerInteractivity.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IContainerInteractivity.js ***! + \*****************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lDb250YWluZXJJbnRlcmFjdGl2aXR5LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9Db3JlL0ludGVyZmFjZXMvSUNvbnRhaW5lckludGVyYWN0aXZpdHkuanM/ZDdjMSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IContainerInteractivity.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IContainerPlugin.js": +/*!**********************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IContainerPlugin.js ***! + \**********************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lDb250YWluZXJQbHVnaW4uanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0NvcmUvSW50ZXJmYWNlcy9JQ29udGFpbmVyUGx1Z2luLmpzPzAyMTAiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IContainerPlugin.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/ICoordinates.js": +/*!******************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/ICoordinates.js ***! + \******************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lDb29yZGluYXRlcy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lDb29yZGluYXRlcy5qcz8zNTY1Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/ICoordinates.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IDelta.js": +/*!************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IDelta.js ***! + \************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lEZWx0YS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lEZWx0YS5qcz85MWU3Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IDelta.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IDimension.js": +/*!****************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IDimension.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lEaW1lbnNpb24uanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0NvcmUvSW50ZXJmYWNlcy9JRGltZW5zaW9uLmpzPzQ2Y2IiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IDimension.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IDistance.js": +/*!***************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IDistance.js ***! + \***************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lEaXN0YW5jZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lEaXN0YW5jZS5qcz9jNTlkIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IDistance.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IExternalInteractor.js": +/*!*************************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IExternalInteractor.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lFeHRlcm5hbEludGVyYWN0b3IuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0NvcmUvSW50ZXJmYWNlcy9JRXh0ZXJuYWxJbnRlcmFjdG9yLmpzP2Q3ZTAiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IExternalInteractor.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IInteractor.js": +/*!*****************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IInteractor.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lJbnRlcmFjdG9yLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9Db3JlL0ludGVyZmFjZXMvSUludGVyYWN0b3IuanM/N2I4YyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IInteractor.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IMouseData.js": +/*!****************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IMouseData.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lNb3VzZURhdGEuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0NvcmUvSW50ZXJmYWNlcy9JTW91c2VEYXRhLmpzP2RmZDQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IMouseData.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IMovePathGenerator.js": +/*!************************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IMovePathGenerator.js ***! + \************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lNb3ZlUGF0aEdlbmVyYXRvci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lNb3ZlUGF0aEdlbmVyYXRvci5qcz8xNmUyIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IMovePathGenerator.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IParticle.js": +/*!***************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IParticle.js ***! + \***************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lQYXJ0aWNsZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lQYXJ0aWNsZS5qcz9kZWEyIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IParticle.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IParticleGradientAnimation.js": +/*!********************************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IParticleGradientAnimation.js ***! + \********************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lQYXJ0aWNsZUdyYWRpZW50QW5pbWF0aW9uLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9Db3JlL0ludGVyZmFjZXMvSVBhcnRpY2xlR3JhZGllbnRBbmltYXRpb24uanM/YzlhMSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IParticleGradientAnimation.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IParticleGradientColorAnimation.js": +/*!*************************************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IParticleGradientColorAnimation.js ***! + \*************************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lQYXJ0aWNsZUdyYWRpZW50Q29sb3JBbmltYXRpb24uanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0NvcmUvSW50ZXJmYWNlcy9JUGFydGljbGVHcmFkaWVudENvbG9yQW5pbWF0aW9uLmpzPzM0ZjYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IParticleGradientColorAnimation.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IParticleHslAnimation.js": +/*!***************************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IParticleHslAnimation.js ***! + \***************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lQYXJ0aWNsZUhzbEFuaW1hdGlvbi5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lQYXJ0aWNsZUhzbEFuaW1hdGlvbi5qcz8zNDhiIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IParticleHslAnimation.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IParticleLife.js": +/*!*******************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IParticleLife.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lQYXJ0aWNsZUxpZmUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0NvcmUvSW50ZXJmYWNlcy9JUGFydGljbGVMaWZlLmpzPzY5NTAiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IParticleLife.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IParticleLoops.js": +/*!********************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IParticleLoops.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lQYXJ0aWNsZUxvb3BzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9Db3JlL0ludGVyZmFjZXMvSVBhcnRpY2xlTG9vcHMuanM/ZmMxNyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IParticleLoops.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IParticleRetinaProps.js": +/*!**************************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IParticleRetinaProps.js ***! + \**************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lQYXJ0aWNsZVJldGluYVByb3BzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9Db3JlL0ludGVyZmFjZXMvSVBhcnRpY2xlUmV0aW5hUHJvcHMuanM/YmY4MCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IParticleRetinaProps.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IParticleSpin.js": +/*!*******************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IParticleSpin.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lQYXJ0aWNsZVNwaW4uanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0NvcmUvSW50ZXJmYWNlcy9JUGFydGljbGVTcGluLmpzP2ZlODUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IParticleSpin.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IParticleUpdater.js": +/*!**********************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IParticleUpdater.js ***! + \**********************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lQYXJ0aWNsZVVwZGF0ZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0NvcmUvSW50ZXJmYWNlcy9JUGFydGljbGVVcGRhdGVyLmpzPzM5MjEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IParticleUpdater.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IParticleValueAnimation.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IParticleValueAnimation.js ***! + \*****************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lQYXJ0aWNsZVZhbHVlQW5pbWF0aW9uLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9Db3JlL0ludGVyZmFjZXMvSVBhcnRpY2xlVmFsdWVBbmltYXRpb24uanM/ODUxMiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IParticleValueAnimation.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IParticlesInteractor.js": +/*!**************************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IParticlesInteractor.js ***! + \**************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lQYXJ0aWNsZXNJbnRlcmFjdG9yLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9Db3JlL0ludGVyZmFjZXMvSVBhcnRpY2xlc0ludGVyYWN0b3IuanM/NzNmMSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IParticlesInteractor.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IPlugin.js": +/*!*************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IPlugin.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lQbHVnaW4uanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0NvcmUvSW50ZXJmYWNlcy9JUGx1Z2luLmpzPzdhZjMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IPlugin.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IRangeValue.js": +/*!*****************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IRangeValue.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lSYW5nZVZhbHVlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9Db3JlL0ludGVyZmFjZXMvSVJhbmdlVmFsdWUuanM/NThjOSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IRangeValue.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IRectSideResult.js": +/*!*********************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IRectSideResult.js ***! + \*********************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lSZWN0U2lkZVJlc3VsdC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lSZWN0U2lkZVJlc3VsdC5qcz9hM2E5Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IRectSideResult.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IRepulse.js": +/*!**************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IRepulse.js ***! + \**************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lSZXB1bHNlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9Db3JlL0ludGVyZmFjZXMvSVJlcHVsc2UuanM/ZDA5ZSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IRepulse.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IShapeDrawer.js": +/*!******************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IShapeDrawer.js ***! + \******************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lTaGFwZURyYXdlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lTaGFwZURyYXdlci5qcz9kYTA2Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IShapeDrawer.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/IShapeValues.js": +/*!******************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/IShapeValues.js ***! + \******************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lTaGFwZVZhbHVlcy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL0lTaGFwZVZhbHVlcy5qcz82ZjI2Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/IShapeValues.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Interfaces/index.js": +/*!***********************************************************!*\ + !*** ./node_modules/tsparticles/Core/Interfaces/index.js ***! + \***********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n__exportStar(__webpack_require__(/*! ./Colors */ \"./node_modules/tsparticles/Core/Interfaces/Colors.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Gradients */ \"./node_modules/tsparticles/Core/Interfaces/Gradients.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IAttract */ \"./node_modules/tsparticles/Core/Interfaces/IAttract.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IBounds */ \"./node_modules/tsparticles/Core/Interfaces/IBounds.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IBubble */ \"./node_modules/tsparticles/Core/Interfaces/IBubble.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IBubbleParticleData */ \"./node_modules/tsparticles/Core/Interfaces/IBubbleParticleData.js\"), exports);\n__exportStar(__webpack_require__(/*! ./ICircleBouncer */ \"./node_modules/tsparticles/Core/Interfaces/ICircleBouncer.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IContainerInteractivity */ \"./node_modules/tsparticles/Core/Interfaces/IContainerInteractivity.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IContainerPlugin */ \"./node_modules/tsparticles/Core/Interfaces/IContainerPlugin.js\"), exports);\n__exportStar(__webpack_require__(/*! ./ICoordinates */ \"./node_modules/tsparticles/Core/Interfaces/ICoordinates.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IDelta */ \"./node_modules/tsparticles/Core/Interfaces/IDelta.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IDimension */ \"./node_modules/tsparticles/Core/Interfaces/IDimension.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IDistance */ \"./node_modules/tsparticles/Core/Interfaces/IDistance.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IExternalInteractor */ \"./node_modules/tsparticles/Core/Interfaces/IExternalInteractor.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IInteractor */ \"./node_modules/tsparticles/Core/Interfaces/IInteractor.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IMouseData */ \"./node_modules/tsparticles/Core/Interfaces/IMouseData.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IMovePathGenerator */ \"./node_modules/tsparticles/Core/Interfaces/IMovePathGenerator.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IParticle */ \"./node_modules/tsparticles/Core/Interfaces/IParticle.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IParticleGradientAnimation */ \"./node_modules/tsparticles/Core/Interfaces/IParticleGradientAnimation.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IParticleGradientColorAnimation */ \"./node_modules/tsparticles/Core/Interfaces/IParticleGradientColorAnimation.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IParticleHslAnimation */ \"./node_modules/tsparticles/Core/Interfaces/IParticleHslAnimation.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IParticleLife */ \"./node_modules/tsparticles/Core/Interfaces/IParticleLife.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IParticleLoops */ \"./node_modules/tsparticles/Core/Interfaces/IParticleLoops.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IParticleRetinaProps */ \"./node_modules/tsparticles/Core/Interfaces/IParticleRetinaProps.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IParticleSpin */ \"./node_modules/tsparticles/Core/Interfaces/IParticleSpin.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IParticleUpdater */ \"./node_modules/tsparticles/Core/Interfaces/IParticleUpdater.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IParticleValueAnimation */ \"./node_modules/tsparticles/Core/Interfaces/IParticleValueAnimation.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IParticlesInteractor */ \"./node_modules/tsparticles/Core/Interfaces/IParticlesInteractor.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IPlugin */ \"./node_modules/tsparticles/Core/Interfaces/IPlugin.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IRangeValue */ \"./node_modules/tsparticles/Core/Interfaces/IRangeValue.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IRectSideResult */ \"./node_modules/tsparticles/Core/Interfaces/IRectSideResult.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IRepulse */ \"./node_modules/tsparticles/Core/Interfaces/IRepulse.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IShapeDrawer */ \"./node_modules/tsparticles/Core/Interfaces/IShapeDrawer.js\"), exports);\n__exportStar(__webpack_require__(/*! ./IShapeValues */ \"./node_modules/tsparticles/Core/Interfaces/IShapeValues.js\"), exports);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQTtBQUNBLG1DQUFtQyxvQ0FBb0MsZ0JBQWdCO0FBQ3ZGLENBQUM7QUFDRDtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxhQUFhLG1CQUFPLENBQUMsc0VBQVU7QUFDL0IsYUFBYSxtQkFBTyxDQUFDLDRFQUFhO0FBQ2xDLGFBQWEsbUJBQU8sQ0FBQywwRUFBWTtBQUNqQyxhQUFhLG1CQUFPLENBQUMsd0VBQVc7QUFDaEMsYUFBYSxtQkFBTyxDQUFDLHdFQUFXO0FBQ2hDLGFBQWEsbUJBQU8sQ0FBQyxnR0FBdUI7QUFDNUMsYUFBYSxtQkFBTyxDQUFDLHNGQUFrQjtBQUN2QyxhQUFhLG1CQUFPLENBQUMsd0dBQTJCO0FBQ2hELGFBQWEsbUJBQU8sQ0FBQywwRkFBb0I7QUFDekMsYUFBYSxtQkFBTyxDQUFDLGtGQUFnQjtBQUNyQyxhQUFhLG1CQUFPLENBQUMsc0VBQVU7QUFDL0IsYUFBYSxtQkFBTyxDQUFDLDhFQUFjO0FBQ25DLGFBQWEsbUJBQU8sQ0FBQyw0RUFBYTtBQUNsQyxhQUFhLG1CQUFPLENBQUMsZ0dBQXVCO0FBQzVDLGFBQWEsbUJBQU8sQ0FBQyxnRkFBZTtBQUNwQyxhQUFhLG1CQUFPLENBQUMsOEVBQWM7QUFDbkMsYUFBYSxtQkFBTyxDQUFDLDhGQUFzQjtBQUMzQyxhQUFhLG1CQUFPLENBQUMsNEVBQWE7QUFDbEMsYUFBYSxtQkFBTyxDQUFDLDhHQUE4QjtBQUNuRCxhQUFhLG1CQUFPLENBQUMsd0hBQW1DO0FBQ3hELGFBQWEsbUJBQU8sQ0FBQyxvR0FBeUI7QUFDOUMsYUFBYSxtQkFBTyxDQUFDLG9GQUFpQjtBQUN0QyxhQUFhLG1CQUFPLENBQUMsc0ZBQWtCO0FBQ3ZDLGFBQWEsbUJBQU8sQ0FBQyxrR0FBd0I7QUFDN0MsYUFBYSxtQkFBTyxDQUFDLG9GQUFpQjtBQUN0QyxhQUFhLG1CQUFPLENBQUMsMEZBQW9CO0FBQ3pDLGFBQWEsbUJBQU8sQ0FBQyx3R0FBMkI7QUFDaEQsYUFBYSxtQkFBTyxDQUFDLGtHQUF3QjtBQUM3QyxhQUFhLG1CQUFPLENBQUMsd0VBQVc7QUFDaEMsYUFBYSxtQkFBTyxDQUFDLGdGQUFlO0FBQ3BDLGFBQWEsbUJBQU8sQ0FBQyx3RkFBbUI7QUFDeEMsYUFBYSxtQkFBTyxDQUFDLDBFQUFZO0FBQ2pDLGFBQWEsbUJBQU8sQ0FBQyxrRkFBZ0I7QUFDckMsYUFBYSxtQkFBTyxDQUFDLGtGQUFnQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9JbnRlcmZhY2VzL2luZGV4LmpzP2Q3MjEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19jcmVhdGVCaW5kaW5nID0gKHRoaXMgJiYgdGhpcy5fX2NyZWF0ZUJpbmRpbmcpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfSk7XG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgb1trMl0gPSBtW2tdO1xufSkpO1xudmFyIF9fZXhwb3J0U3RhciA9ICh0aGlzICYmIHRoaXMuX19leHBvcnRTdGFyKSB8fCBmdW5jdGlvbihtLCBleHBvcnRzKSB7XG4gICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gXCJkZWZhdWx0XCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzLCBwKSkgX19jcmVhdGVCaW5kaW5nKGV4cG9ydHMsIG0sIHApO1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9Db2xvcnNcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0dyYWRpZW50c1wiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vSUF0dHJhY3RcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0lCb3VuZHNcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0lCdWJibGVcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0lCdWJibGVQYXJ0aWNsZURhdGFcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0lDaXJjbGVCb3VuY2VyXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9JQ29udGFpbmVySW50ZXJhY3Rpdml0eVwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vSUNvbnRhaW5lclBsdWdpblwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vSUNvb3JkaW5hdGVzXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9JRGVsdGFcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0lEaW1lbnNpb25cIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0lEaXN0YW5jZVwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vSUV4dGVybmFsSW50ZXJhY3RvclwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vSUludGVyYWN0b3JcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0lNb3VzZURhdGFcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0lNb3ZlUGF0aEdlbmVyYXRvclwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vSVBhcnRpY2xlXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9JUGFydGljbGVHcmFkaWVudEFuaW1hdGlvblwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vSVBhcnRpY2xlR3JhZGllbnRDb2xvckFuaW1hdGlvblwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vSVBhcnRpY2xlSHNsQW5pbWF0aW9uXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9JUGFydGljbGVMaWZlXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9JUGFydGljbGVMb29wc1wiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vSVBhcnRpY2xlUmV0aW5hUHJvcHNcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0lQYXJ0aWNsZVNwaW5cIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0lQYXJ0aWNsZVVwZGF0ZXJcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0lQYXJ0aWNsZVZhbHVlQW5pbWF0aW9uXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9JUGFydGljbGVzSW50ZXJhY3RvclwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vSVBsdWdpblwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vSVJhbmdlVmFsdWVcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0lSZWN0U2lkZVJlc3VsdFwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vSVJlcHVsc2VcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0lTaGFwZURyYXdlclwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vSVNoYXBlVmFsdWVzXCIpLCBleHBvcnRzKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Interfaces/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Loader.js": +/*!*************************************************!*\ + !*** ./node_modules/tsparticles/Core/Loader.js ***! + \*************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Loader = void 0;\nconst Container_1 = __webpack_require__(/*! ./Container */ \"./node_modules/tsparticles/Core/Container.js\");\nconst Utils_1 = __webpack_require__(/*! ../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst tsParticlesDom = [];\nfunction fetchError(statusCode) {\n console.error(`Error tsParticles - fetch status: ${statusCode}`);\n console.error(\"Error tsParticles - File config not found\");\n}\nclass Loader {\n static dom() {\n return tsParticlesDom;\n }\n static domItem(index) {\n const dom = Loader.dom();\n const item = dom[index];\n if (item && !item.destroyed) {\n return item;\n }\n dom.splice(index, 1);\n }\n static async loadOptions(params) {\n var _a, _b, _c;\n const tagId = (_a = params.tagId) !== null && _a !== void 0 ? _a : `tsparticles${Math.floor(Math.random() * 10000)}`;\n const { options, index } = params;\n let domContainer = (_b = params.element) !== null && _b !== void 0 ? _b : document.getElementById(tagId);\n if (!domContainer) {\n domContainer = document.createElement(\"div\");\n domContainer.id = tagId;\n (_c = document.querySelector(\"body\")) === null || _c === void 0 ? void 0 : _c.append(domContainer);\n }\n const currentOptions = options instanceof Array ? (0, Utils_1.itemFromArray)(options, index) : options;\n const dom = Loader.dom();\n const oldIndex = dom.findIndex((v) => v.id === tagId);\n if (oldIndex >= 0) {\n const old = Loader.domItem(oldIndex);\n if (old && !old.destroyed) {\n old.destroy();\n dom.splice(oldIndex, 1);\n }\n }\n let canvasEl;\n let generatedCanvas;\n if (domContainer.tagName.toLowerCase() === \"canvas\") {\n canvasEl = domContainer;\n generatedCanvas = false;\n }\n else {\n const existingCanvases = domContainer.getElementsByTagName(\"canvas\");\n if (existingCanvases.length) {\n canvasEl = existingCanvases[0];\n if (!canvasEl.className) {\n canvasEl.className = Utils_1.Constants.canvasClass;\n }\n generatedCanvas = false;\n }\n else {\n generatedCanvas = true;\n canvasEl = document.createElement(\"canvas\");\n canvasEl.className = Utils_1.Constants.canvasClass;\n canvasEl.style.width = \"100%\";\n canvasEl.style.height = \"100%\";\n domContainer.appendChild(canvasEl);\n }\n }\n const newItem = new Container_1.Container(tagId, currentOptions);\n if (oldIndex >= 0) {\n dom.splice(oldIndex, 0, newItem);\n }\n else {\n dom.push(newItem);\n }\n newItem.canvas.loadCanvas(canvasEl, generatedCanvas);\n await newItem.start();\n return newItem;\n }\n static async loadRemoteOptions(params) {\n const { url: jsonUrl, index } = params;\n const url = jsonUrl instanceof Array ? (0, Utils_1.itemFromArray)(jsonUrl, index) : jsonUrl;\n if (!url) {\n return;\n }\n const response = await fetch(url);\n if (!response.ok) {\n fetchError(response.status);\n return;\n }\n const data = await response.json();\n return await Loader.loadOptions({\n tagId: params.tagId,\n element: params.element,\n index,\n options: data,\n });\n }\n static load(tagId, options, index) {\n const params = { index };\n if (typeof tagId === \"string\") {\n params.tagId = tagId;\n }\n else {\n params.options = tagId;\n }\n if (typeof options === \"number\") {\n params.index = options !== null && options !== void 0 ? options : params.index;\n }\n else {\n params.options = options !== null && options !== void 0 ? options : params.options;\n }\n return this.loadOptions(params);\n }\n static async set(id, domContainer, options, index) {\n const params = { index };\n if (typeof id === \"string\") {\n params.tagId = id;\n }\n else {\n params.element = id;\n }\n if (domContainer instanceof HTMLElement) {\n params.element = domContainer;\n }\n else {\n params.options = domContainer;\n }\n if (typeof options === \"number\") {\n params.index = options;\n }\n else {\n params.options = options !== null && options !== void 0 ? options : params.options;\n }\n return this.loadOptions(params);\n }\n static async loadJSON(tagId, jsonUrl, index) {\n let url, id;\n if (typeof jsonUrl === \"number\" || jsonUrl === undefined) {\n url = tagId;\n }\n else {\n id = tagId;\n url = jsonUrl;\n }\n return await Loader.loadRemoteOptions({ tagId: id, url, index });\n }\n static async setJSON(id, domContainer, jsonUrl, index) {\n let url, newId, newIndex, element;\n if (id instanceof HTMLElement) {\n element = id;\n url = domContainer;\n newIndex = jsonUrl;\n }\n else {\n newId = id;\n element = domContainer;\n url = jsonUrl;\n newIndex = index;\n }\n return await Loader.loadRemoteOptions({ tagId: newId, url, index: newIndex, element });\n }\n static setOnClickHandler(callback) {\n const dom = Loader.dom();\n if (dom.length === 0) {\n throw new Error(\"Can only set click handlers after calling tsParticles.load() or tsParticles.loadJSON()\");\n }\n for (const domItem of dom) {\n domItem.addClickHandler(callback);\n }\n }\n}\nexports.Loader = Loader;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9Mb2FkZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsY0FBYztBQUNkLG9CQUFvQixtQkFBTyxDQUFDLGlFQUFhO0FBQ3pDLGdCQUFnQixtQkFBTyxDQUFDLDJEQUFVO0FBQ2xDO0FBQ0E7QUFDQSx1REFBdUQsV0FBVztBQUNsRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlGQUF5RixrQ0FBa0M7QUFDM0gsZ0JBQWdCLGlCQUFpQjtBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixzQkFBc0I7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnREFBZ0QsdUJBQXVCO0FBQ3ZFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnREFBZ0QsNkNBQTZDO0FBQzdGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9Db3JlL0xvYWRlci5qcz9kMTBjIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Mb2FkZXIgPSB2b2lkIDA7XG5jb25zdCBDb250YWluZXJfMSA9IHJlcXVpcmUoXCIuL0NvbnRhaW5lclwiKTtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vVXRpbHNcIik7XG5jb25zdCB0c1BhcnRpY2xlc0RvbSA9IFtdO1xuZnVuY3Rpb24gZmV0Y2hFcnJvcihzdGF0dXNDb2RlKSB7XG4gICAgY29uc29sZS5lcnJvcihgRXJyb3IgdHNQYXJ0aWNsZXMgLSBmZXRjaCBzdGF0dXM6ICR7c3RhdHVzQ29kZX1gKTtcbiAgICBjb25zb2xlLmVycm9yKFwiRXJyb3IgdHNQYXJ0aWNsZXMgLSBGaWxlIGNvbmZpZyBub3QgZm91bmRcIik7XG59XG5jbGFzcyBMb2FkZXIge1xuICAgIHN0YXRpYyBkb20oKSB7XG4gICAgICAgIHJldHVybiB0c1BhcnRpY2xlc0RvbTtcbiAgICB9XG4gICAgc3RhdGljIGRvbUl0ZW0oaW5kZXgpIHtcbiAgICAgICAgY29uc3QgZG9tID0gTG9hZGVyLmRvbSgpO1xuICAgICAgICBjb25zdCBpdGVtID0gZG9tW2luZGV4XTtcbiAgICAgICAgaWYgKGl0ZW0gJiYgIWl0ZW0uZGVzdHJveWVkKSB7XG4gICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgfVxuICAgICAgICBkb20uc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9XG4gICAgc3RhdGljIGFzeW5jIGxvYWRPcHRpb25zKHBhcmFtcykge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgY29uc3QgdGFnSWQgPSAoX2EgPSBwYXJhbXMudGFnSWQpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGB0c3BhcnRpY2xlcyR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwMDApfWA7XG4gICAgICAgIGNvbnN0IHsgb3B0aW9ucywgaW5kZXggfSA9IHBhcmFtcztcbiAgICAgICAgbGV0IGRvbUNvbnRhaW5lciA9IChfYiA9IHBhcmFtcy5lbGVtZW50KSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0YWdJZCk7XG4gICAgICAgIGlmICghZG9tQ29udGFpbmVyKSB7XG4gICAgICAgICAgICBkb21Db250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuICAgICAgICAgICAgZG9tQ29udGFpbmVyLmlkID0gdGFnSWQ7XG4gICAgICAgICAgICAoX2MgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiYm9keVwiKSkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLmFwcGVuZChkb21Db250YWluZXIpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGN1cnJlbnRPcHRpb25zID0gb3B0aW9ucyBpbnN0YW5jZW9mIEFycmF5ID8gKDAsIFV0aWxzXzEuaXRlbUZyb21BcnJheSkob3B0aW9ucywgaW5kZXgpIDogb3B0aW9ucztcbiAgICAgICAgY29uc3QgZG9tID0gTG9hZGVyLmRvbSgpO1xuICAgICAgICBjb25zdCBvbGRJbmRleCA9IGRvbS5maW5kSW5kZXgoKHYpID0+IHYuaWQgPT09IHRhZ0lkKTtcbiAgICAgICAgaWYgKG9sZEluZGV4ID49IDApIHtcbiAgICAgICAgICAgIGNvbnN0IG9sZCA9IExvYWRlci5kb21JdGVtKG9sZEluZGV4KTtcbiAgICAgICAgICAgIGlmIChvbGQgJiYgIW9sZC5kZXN0cm95ZWQpIHtcbiAgICAgICAgICAgICAgICBvbGQuZGVzdHJveSgpO1xuICAgICAgICAgICAgICAgIGRvbS5zcGxpY2Uob2xkSW5kZXgsIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGxldCBjYW52YXNFbDtcbiAgICAgICAgbGV0IGdlbmVyYXRlZENhbnZhcztcbiAgICAgICAgaWYgKGRvbUNvbnRhaW5lci50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09IFwiY2FudmFzXCIpIHtcbiAgICAgICAgICAgIGNhbnZhc0VsID0gZG9tQ29udGFpbmVyO1xuICAgICAgICAgICAgZ2VuZXJhdGVkQ2FudmFzID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBleGlzdGluZ0NhbnZhc2VzID0gZG9tQ29udGFpbmVyLmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiY2FudmFzXCIpO1xuICAgICAgICAgICAgaWYgKGV4aXN0aW5nQ2FudmFzZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgY2FudmFzRWwgPSBleGlzdGluZ0NhbnZhc2VzWzBdO1xuICAgICAgICAgICAgICAgIGlmICghY2FudmFzRWwuY2xhc3NOYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhbnZhc0VsLmNsYXNzTmFtZSA9IFV0aWxzXzEuQ29uc3RhbnRzLmNhbnZhc0NsYXNzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBnZW5lcmF0ZWRDYW52YXMgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGdlbmVyYXRlZENhbnZhcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgY2FudmFzRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiY2FudmFzXCIpO1xuICAgICAgICAgICAgICAgIGNhbnZhc0VsLmNsYXNzTmFtZSA9IFV0aWxzXzEuQ29uc3RhbnRzLmNhbnZhc0NsYXNzO1xuICAgICAgICAgICAgICAgIGNhbnZhc0VsLnN0eWxlLndpZHRoID0gXCIxMDAlXCI7XG4gICAgICAgICAgICAgICAgY2FudmFzRWwuc3R5bGUuaGVpZ2h0ID0gXCIxMDAlXCI7XG4gICAgICAgICAgICAgICAgZG9tQ29udGFpbmVyLmFwcGVuZENoaWxkKGNhbnZhc0VsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXdJdGVtID0gbmV3IENvbnRhaW5lcl8xLkNvbnRhaW5lcih0YWdJZCwgY3VycmVudE9wdGlvbnMpO1xuICAgICAgICBpZiAob2xkSW5kZXggPj0gMCkge1xuICAgICAgICAgICAgZG9tLnNwbGljZShvbGRJbmRleCwgMCwgbmV3SXRlbSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBkb20ucHVzaChuZXdJdGVtKTtcbiAgICAgICAgfVxuICAgICAgICBuZXdJdGVtLmNhbnZhcy5sb2FkQ2FudmFzKGNhbnZhc0VsLCBnZW5lcmF0ZWRDYW52YXMpO1xuICAgICAgICBhd2FpdCBuZXdJdGVtLnN0YXJ0KCk7XG4gICAgICAgIHJldHVybiBuZXdJdGVtO1xuICAgIH1cbiAgICBzdGF0aWMgYXN5bmMgbG9hZFJlbW90ZU9wdGlvbnMocGFyYW1zKSB7XG4gICAgICAgIGNvbnN0IHsgdXJsOiBqc29uVXJsLCBpbmRleCB9ID0gcGFyYW1zO1xuICAgICAgICBjb25zdCB1cmwgPSBqc29uVXJsIGluc3RhbmNlb2YgQXJyYXkgPyAoMCwgVXRpbHNfMS5pdGVtRnJvbUFycmF5KShqc29uVXJsLCBpbmRleCkgOiBqc29uVXJsO1xuICAgICAgICBpZiAoIXVybCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsKTtcbiAgICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICAgICAgZmV0Y2hFcnJvcihyZXNwb25zZS5zdGF0dXMpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgICAgIHJldHVybiBhd2FpdCBMb2FkZXIubG9hZE9wdGlvbnMoe1xuICAgICAgICAgICAgdGFnSWQ6IHBhcmFtcy50YWdJZCxcbiAgICAgICAgICAgIGVsZW1lbnQ6IHBhcmFtcy5lbGVtZW50LFxuICAgICAgICAgICAgaW5kZXgsXG4gICAgICAgICAgICBvcHRpb25zOiBkYXRhLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgc3RhdGljIGxvYWQodGFnSWQsIG9wdGlvbnMsIGluZGV4KSB7XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHsgaW5kZXggfTtcbiAgICAgICAgaWYgKHR5cGVvZiB0YWdJZCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcGFyYW1zLnRhZ0lkID0gdGFnSWQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBwYXJhbXMub3B0aW9ucyA9IHRhZ0lkO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgcGFyYW1zLmluZGV4ID0gb3B0aW9ucyAhPT0gbnVsbCAmJiBvcHRpb25zICE9PSB2b2lkIDAgPyBvcHRpb25zIDogcGFyYW1zLmluZGV4O1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcGFyYW1zLm9wdGlvbnMgPSBvcHRpb25zICE9PSBudWxsICYmIG9wdGlvbnMgIT09IHZvaWQgMCA/IG9wdGlvbnMgOiBwYXJhbXMub3B0aW9ucztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5sb2FkT3B0aW9ucyhwYXJhbXMpO1xuICAgIH1cbiAgICBzdGF0aWMgYXN5bmMgc2V0KGlkLCBkb21Db250YWluZXIsIG9wdGlvbnMsIGluZGV4KSB7XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHsgaW5kZXggfTtcbiAgICAgICAgaWYgKHR5cGVvZiBpZCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcGFyYW1zLnRhZ0lkID0gaWQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBwYXJhbXMuZWxlbWVudCA9IGlkO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkb21Db250YWluZXIgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgICAgICAgcGFyYW1zLmVsZW1lbnQgPSBkb21Db250YWluZXI7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBwYXJhbXMub3B0aW9ucyA9IGRvbUNvbnRhaW5lcjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIHBhcmFtcy5pbmRleCA9IG9wdGlvbnM7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBwYXJhbXMub3B0aW9ucyA9IG9wdGlvbnMgIT09IG51bGwgJiYgb3B0aW9ucyAhPT0gdm9pZCAwID8gb3B0aW9ucyA6IHBhcmFtcy5vcHRpb25zO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRPcHRpb25zKHBhcmFtcyk7XG4gICAgfVxuICAgIHN0YXRpYyBhc3luYyBsb2FkSlNPTih0YWdJZCwganNvblVybCwgaW5kZXgpIHtcbiAgICAgICAgbGV0IHVybCwgaWQ7XG4gICAgICAgIGlmICh0eXBlb2YganNvblVybCA9PT0gXCJudW1iZXJcIiB8fCBqc29uVXJsID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHVybCA9IHRhZ0lkO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWQgPSB0YWdJZDtcbiAgICAgICAgICAgIHVybCA9IGpzb25Vcmw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGF3YWl0IExvYWRlci5sb2FkUmVtb3RlT3B0aW9ucyh7IHRhZ0lkOiBpZCwgdXJsLCBpbmRleCB9KTtcbiAgICB9XG4gICAgc3RhdGljIGFzeW5jIHNldEpTT04oaWQsIGRvbUNvbnRhaW5lciwganNvblVybCwgaW5kZXgpIHtcbiAgICAgICAgbGV0IHVybCwgbmV3SWQsIG5ld0luZGV4LCBlbGVtZW50O1xuICAgICAgICBpZiAoaWQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgICAgICAgZWxlbWVudCA9IGlkO1xuICAgICAgICAgICAgdXJsID0gZG9tQ29udGFpbmVyO1xuICAgICAgICAgICAgbmV3SW5kZXggPSBqc29uVXJsO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbmV3SWQgPSBpZDtcbiAgICAgICAgICAgIGVsZW1lbnQgPSBkb21Db250YWluZXI7XG4gICAgICAgICAgICB1cmwgPSBqc29uVXJsO1xuICAgICAgICAgICAgbmV3SW5kZXggPSBpbmRleDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXdhaXQgTG9hZGVyLmxvYWRSZW1vdGVPcHRpb25zKHsgdGFnSWQ6IG5ld0lkLCB1cmwsIGluZGV4OiBuZXdJbmRleCwgZWxlbWVudCB9KTtcbiAgICB9XG4gICAgc3RhdGljIHNldE9uQ2xpY2tIYW5kbGVyKGNhbGxiYWNrKSB7XG4gICAgICAgIGNvbnN0IGRvbSA9IExvYWRlci5kb20oKTtcbiAgICAgICAgaWYgKGRvbS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbiBvbmx5IHNldCBjbGljayBoYW5kbGVycyBhZnRlciBjYWxsaW5nIHRzUGFydGljbGVzLmxvYWQoKSBvciB0c1BhcnRpY2xlcy5sb2FkSlNPTigpXCIpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgZG9tSXRlbSBvZiBkb20pIHtcbiAgICAgICAgICAgIGRvbUl0ZW0uYWRkQ2xpY2tIYW5kbGVyKGNhbGxiYWNrKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuTG9hZGVyID0gTG9hZGVyO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Loader.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Particle.js": +/*!***************************************************!*\ + !*** ./node_modules/tsparticles/Core/Particle.js ***! + \***************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Particle = void 0;\nconst ParticlesOptions_1 = __webpack_require__(/*! ../Options/Classes/Particles/ParticlesOptions */ \"./node_modules/tsparticles/Options/Classes/Particles/ParticlesOptions.js\");\nconst Shape_1 = __webpack_require__(/*! ../Options/Classes/Particles/Shape/Shape */ \"./node_modules/tsparticles/Options/Classes/Particles/Shape/Shape.js\");\nconst Enums_1 = __webpack_require__(/*! ../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst Utils_1 = __webpack_require__(/*! ../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Vector_1 = __webpack_require__(/*! ./Particle/Vector */ \"./node_modules/tsparticles/Core/Particle/Vector.js\");\nconst Vector3d_1 = __webpack_require__(/*! ./Particle/Vector3d */ \"./node_modules/tsparticles/Core/Particle/Vector3d.js\");\nconst fixOutMode = (data) => {\n if ((0, Utils_1.isInArray)(data.outMode, data.checkModes) || (0, Utils_1.isInArray)(data.outMode, data.checkModes)) {\n if (data.coord > data.maxCoord - data.radius * 2) {\n data.setCb(-data.radius);\n }\n else if (data.coord < data.radius * 2) {\n data.setCb(data.radius);\n }\n }\n};\nclass Particle {\n constructor(id, container, position, overrideOptions, group) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n this.id = id;\n this.container = container;\n this.group = group;\n this.fill = true;\n this.close = true;\n this.lastPathTime = 0;\n this.destroyed = false;\n this.unbreakable = false;\n this.splitCount = 0;\n this.misplaced = false;\n this.retina = {\n maxDistance: {},\n };\n const pxRatio = container.retina.pixelRatio;\n const mainOptions = container.actualOptions;\n const particlesOptions = new ParticlesOptions_1.ParticlesOptions();\n particlesOptions.load(mainOptions.particles);\n const shapeType = particlesOptions.shape.type;\n const reduceDuplicates = particlesOptions.reduceDuplicates;\n this.shape = shapeType instanceof Array ? (0, Utils_1.itemFromArray)(shapeType, this.id, reduceDuplicates) : shapeType;\n if (overrideOptions === null || overrideOptions === void 0 ? void 0 : overrideOptions.shape) {\n if (overrideOptions.shape.type) {\n const overrideShapeType = overrideOptions.shape.type;\n this.shape =\n overrideShapeType instanceof Array\n ? (0, Utils_1.itemFromArray)(overrideShapeType, this.id, reduceDuplicates)\n : overrideShapeType;\n }\n const shapeOptions = new Shape_1.Shape();\n shapeOptions.load(overrideOptions.shape);\n if (this.shape) {\n this.shapeData = this.loadShapeData(shapeOptions, reduceDuplicates);\n }\n }\n else {\n this.shapeData = this.loadShapeData(particlesOptions.shape, reduceDuplicates);\n }\n if (overrideOptions !== undefined) {\n particlesOptions.load(overrideOptions);\n }\n if (((_a = this.shapeData) === null || _a === void 0 ? void 0 : _a.particles) !== undefined) {\n particlesOptions.load((_b = this.shapeData) === null || _b === void 0 ? void 0 : _b.particles);\n }\n this.fill = (_d = (_c = this.shapeData) === null || _c === void 0 ? void 0 : _c.fill) !== null && _d !== void 0 ? _d : this.fill;\n this.close = (_f = (_e = this.shapeData) === null || _e === void 0 ? void 0 : _e.close) !== null && _f !== void 0 ? _f : this.close;\n this.options = particlesOptions;\n this.pathDelay = (0, Utils_1.getValue)(this.options.move.path.delay) * 1000;\n const zIndexValue = (0, Utils_1.getRangeValue)(this.options.zIndex.value);\n container.retina.initParticle(this);\n const sizeOptions = this.options.size, sizeRange = sizeOptions.value;\n this.size = {\n enable: sizeOptions.animation.enable,\n value: (0, Utils_1.getValue)(sizeOptions) * container.retina.pixelRatio,\n max: (0, Utils_1.getRangeMax)(sizeRange) * pxRatio,\n min: (0, Utils_1.getRangeMin)(sizeRange) * pxRatio,\n loops: 0,\n maxLoops: sizeOptions.animation.count,\n };\n const sizeAnimation = sizeOptions.animation;\n if (sizeAnimation.enable) {\n this.size.status = Enums_1.AnimationStatus.increasing;\n switch (sizeAnimation.startValue) {\n case Enums_1.StartValueType.min:\n this.size.value = this.size.min;\n this.size.status = Enums_1.AnimationStatus.increasing;\n break;\n case Enums_1.StartValueType.random:\n this.size.value = (0, Utils_1.randomInRange)(this.size) * pxRatio;\n this.size.status = Math.random() >= 0.5 ? Enums_1.AnimationStatus.increasing : Enums_1.AnimationStatus.decreasing;\n break;\n case Enums_1.StartValueType.max:\n default:\n this.size.value = this.size.max;\n this.size.status = Enums_1.AnimationStatus.decreasing;\n break;\n }\n this.size.velocity =\n (((_g = this.retina.sizeAnimationSpeed) !== null && _g !== void 0 ? _g : container.retina.sizeAnimationSpeed) / 100) *\n container.retina.reduceFactor;\n if (!sizeAnimation.sync) {\n this.size.velocity *= Math.random();\n }\n }\n this.direction = (0, Utils_1.getParticleDirectionAngle)(this.options.move.direction);\n this.bubble = {\n inRange: false,\n };\n this.initialVelocity = this.calculateVelocity();\n this.velocity = this.initialVelocity.copy();\n this.moveDecay = 1 - (0, Utils_1.getRangeValue)(this.options.move.decay);\n this.position = this.calcPosition(container, position, (0, Utils_1.clamp)(zIndexValue, 0, container.zLayers));\n this.initialPosition = this.position.copy();\n this.offset = Vector_1.Vector.origin;\n const particles = container.particles;\n particles.needsSort = particles.needsSort || particles.lastZIndex < this.position.z;\n particles.lastZIndex = this.position.z;\n this.zIndexFactor = this.position.z / container.zLayers;\n this.sides = 24;\n let drawer = container.drawers.get(this.shape);\n if (!drawer) {\n drawer = Utils_1.Plugins.getShapeDrawer(this.shape);\n if (drawer) {\n container.drawers.set(this.shape, drawer);\n }\n }\n if (drawer === null || drawer === void 0 ? void 0 : drawer.loadShape) {\n drawer === null || drawer === void 0 ? void 0 : drawer.loadShape(this);\n }\n const sideCountFunc = drawer === null || drawer === void 0 ? void 0 : drawer.getSidesCount;\n if (sideCountFunc) {\n this.sides = sideCountFunc(this);\n }\n this.life = this.loadLife();\n this.spawning = this.life.delay > 0;\n if (this.options.move.spin.enable) {\n const spinPos = (_h = this.options.move.spin.position) !== null && _h !== void 0 ? _h : { x: 50, y: 50 };\n const spinCenter = {\n x: (spinPos.x / 100) * container.canvas.size.width,\n y: (spinPos.y / 100) * container.canvas.size.height,\n };\n const pos = this.getPosition();\n const distance = (0, Utils_1.getDistance)(pos, spinCenter);\n this.spin = {\n center: spinCenter,\n direction: this.velocity.x >= 0 ? Enums_1.RotateDirection.clockwise : Enums_1.RotateDirection.counterClockwise,\n angle: this.velocity.angle,\n radius: distance,\n acceleration: (_j = this.retina.spinAcceleration) !== null && _j !== void 0 ? _j : (0, Utils_1.getRangeValue)(this.options.move.spin.acceleration),\n };\n }\n this.shadowColor = (0, Utils_1.colorToRgb)(this.options.shadow.color);\n for (const updater of container.particles.updaters) {\n if (updater.init) {\n updater.init(this);\n }\n }\n if (drawer && drawer.particleInit) {\n drawer.particleInit(container, this);\n }\n for (const [, plugin] of container.plugins) {\n if (plugin.particleCreated) {\n plugin.particleCreated(this);\n }\n }\n }\n isVisible() {\n return !this.destroyed && !this.spawning && this.isInsideCanvas();\n }\n isInsideCanvas() {\n const radius = this.getRadius();\n const canvasSize = this.container.canvas.size;\n return (this.position.x >= -radius &&\n this.position.y >= -radius &&\n this.position.y <= canvasSize.height + radius &&\n this.position.x <= canvasSize.width + radius);\n }\n draw(delta) {\n const container = this.container;\n for (const [, plugin] of container.plugins) {\n container.canvas.drawParticlePlugin(plugin, this, delta);\n }\n container.canvas.drawParticle(this, delta);\n }\n getPosition() {\n return {\n x: this.position.x + this.offset.x,\n y: this.position.y + this.offset.y,\n z: this.position.z,\n };\n }\n getRadius() {\n var _a;\n return (_a = this.bubble.radius) !== null && _a !== void 0 ? _a : this.size.value;\n }\n getMass() {\n return (this.getRadius() ** 2 * Math.PI) / 2;\n }\n getFillColor() {\n var _a, _b, _c;\n const color = (_a = this.bubble.color) !== null && _a !== void 0 ? _a : (0, Utils_1.getHslFromAnimation)(this.color);\n if (color && this.roll && (this.backColor || this.roll.alter)) {\n const rolled = Math.floor(((_c = (_b = this.roll) === null || _b === void 0 ? void 0 : _b.angle) !== null && _c !== void 0 ? _c : 0) / (Math.PI / 2)) % 2;\n if (rolled) {\n if (this.backColor) {\n return this.backColor;\n }\n if (this.roll.alter) {\n return (0, Utils_1.alterHsl)(color, this.roll.alter.type, this.roll.alter.value);\n }\n }\n }\n return color;\n }\n getStrokeColor() {\n var _a, _b;\n return (_b = (_a = this.bubble.color) !== null && _a !== void 0 ? _a : (0, Utils_1.getHslFromAnimation)(this.strokeColor)) !== null && _b !== void 0 ? _b : this.getFillColor();\n }\n destroy(override) {\n this.destroyed = true;\n this.bubble.inRange = false;\n if (this.unbreakable) {\n return;\n }\n this.destroyed = true;\n this.bubble.inRange = false;\n for (const [, plugin] of this.container.plugins) {\n if (plugin.particleDestroyed) {\n plugin.particleDestroyed(this, override);\n }\n }\n if (override) {\n return;\n }\n const destroyOptions = this.options.destroy;\n if (destroyOptions.mode === Enums_1.DestroyMode.split) {\n this.split();\n }\n }\n reset() {\n if (this.opacity) {\n this.opacity.loops = 0;\n }\n this.size.loops = 0;\n }\n split() {\n const splitOptions = this.options.destroy.split;\n if (splitOptions.count >= 0 && this.splitCount++ > splitOptions.count) {\n return;\n }\n const rate = (0, Utils_1.getRangeValue)(splitOptions.rate.value);\n for (let i = 0; i < rate; i++) {\n this.container.particles.addSplitParticle(this);\n }\n }\n calcPosition(container, position, zIndex, tryCount = 0) {\n var _a, _b, _c, _d, _e, _f;\n for (const [, plugin] of container.plugins) {\n const pluginPos = plugin.particlePosition !== undefined ? plugin.particlePosition(position, this) : undefined;\n if (pluginPos !== undefined) {\n return Vector3d_1.Vector3d.create(pluginPos.x, pluginPos.y, zIndex);\n }\n }\n const canvasSize = container.canvas.size;\n const pos = Vector3d_1.Vector3d.create((_a = position === null || position === void 0 ? void 0 : position.x) !== null && _a !== void 0 ? _a : Math.random() * canvasSize.width, (_b = position === null || position === void 0 ? void 0 : position.y) !== null && _b !== void 0 ? _b : Math.random() * canvasSize.height, zIndex);\n const radius = this.getRadius();\n const outModes = this.options.move.outModes, fixHorizontal = (outMode) => {\n fixOutMode({\n outMode,\n checkModes: [Enums_1.OutMode.bounce, Enums_1.OutMode.bounceHorizontal],\n coord: pos.x,\n maxCoord: container.canvas.size.width,\n setCb: (value) => (pos.x += value),\n radius,\n });\n }, fixVertical = (outMode) => {\n fixOutMode({\n outMode,\n checkModes: [Enums_1.OutMode.bounce, Enums_1.OutMode.bounceVertical],\n coord: pos.y,\n maxCoord: container.canvas.size.height,\n setCb: (value) => (pos.y += value),\n radius,\n });\n };\n fixHorizontal((_c = outModes.left) !== null && _c !== void 0 ? _c : outModes.default);\n fixHorizontal((_d = outModes.right) !== null && _d !== void 0 ? _d : outModes.default);\n fixVertical((_e = outModes.top) !== null && _e !== void 0 ? _e : outModes.default);\n fixVertical((_f = outModes.bottom) !== null && _f !== void 0 ? _f : outModes.default);\n if (this.checkOverlap(pos, tryCount)) {\n return this.calcPosition(container, undefined, zIndex, tryCount + 1);\n }\n return pos;\n }\n checkOverlap(pos, tryCount = 0) {\n const collisionsOptions = this.options.collisions;\n const radius = this.getRadius();\n if (!collisionsOptions.enable) {\n return false;\n }\n const overlapOptions = collisionsOptions.overlap;\n if (overlapOptions.enable) {\n return false;\n }\n const retries = overlapOptions.retries;\n if (retries >= 0 && tryCount > retries) {\n throw new Error(\"Particle is overlapping and can't be placed\");\n }\n let overlaps = false;\n for (const particle of this.container.particles.array) {\n if ((0, Utils_1.getDistance)(pos, particle.position) < radius + particle.getRadius()) {\n overlaps = true;\n break;\n }\n }\n return overlaps;\n }\n calculateVelocity() {\n const baseVelocity = (0, Utils_1.getParticleBaseVelocity)(this.direction);\n const res = baseVelocity.copy();\n const moveOptions = this.options.move;\n const rad = (Math.PI / 180) * moveOptions.angle.value;\n const radOffset = (Math.PI / 180) * moveOptions.angle.offset;\n const range = {\n left: radOffset - rad / 2,\n right: radOffset + rad / 2,\n };\n if (!moveOptions.straight) {\n res.angle += (0, Utils_1.randomInRange)((0, Utils_1.setRangeValue)(range.left, range.right));\n }\n if (moveOptions.random && typeof moveOptions.speed === \"number\") {\n res.length *= Math.random();\n }\n return res;\n }\n loadShapeData(shapeOptions, reduceDuplicates) {\n const shapeData = shapeOptions.options[this.shape];\n if (shapeData) {\n return (0, Utils_1.deepExtend)({}, shapeData instanceof Array ? (0, Utils_1.itemFromArray)(shapeData, this.id, reduceDuplicates) : shapeData);\n }\n }\n loadLife() {\n const container = this.container;\n const particlesOptions = this.options;\n const lifeOptions = particlesOptions.life;\n const life = {\n delay: container.retina.reduceFactor\n ? (((0, Utils_1.getRangeValue)(lifeOptions.delay.value) * (lifeOptions.delay.sync ? 1 : Math.random())) /\n container.retina.reduceFactor) *\n 1000\n : 0,\n delayTime: 0,\n duration: container.retina.reduceFactor\n ? (((0, Utils_1.getRangeValue)(lifeOptions.duration.value) * (lifeOptions.duration.sync ? 1 : Math.random())) /\n container.retina.reduceFactor) *\n 1000\n : 0,\n time: 0,\n count: particlesOptions.life.count,\n };\n if (life.duration <= 0) {\n life.duration = -1;\n }\n if (life.count <= 0) {\n life.count = -1;\n }\n return life;\n }\n}\nexports.Particle = Particle;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9QYXJ0aWNsZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxnQkFBZ0I7QUFDaEIsMkJBQTJCLG1CQUFPLENBQUMsK0hBQStDO0FBQ2xGLGdCQUFnQixtQkFBTyxDQUFDLHFIQUEwQztBQUNsRSxnQkFBZ0IsbUJBQU8sQ0FBQywyREFBVTtBQUNsQyxnQkFBZ0IsbUJBQU8sQ0FBQywyREFBVTtBQUNsQyxpQkFBaUIsbUJBQU8sQ0FBQyw2RUFBbUI7QUFDNUMsbUJBQW1CLG1CQUFPLENBQUMsaUZBQXFCO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJCQUEyQjtBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNHQUFzRztBQUN0RztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsVUFBVTtBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYixTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkNBQTZDO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9QYXJ0aWNsZS5qcz8xYzRkIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5QYXJ0aWNsZSA9IHZvaWQgMDtcbmNvbnN0IFBhcnRpY2xlc09wdGlvbnNfMSA9IHJlcXVpcmUoXCIuLi9PcHRpb25zL0NsYXNzZXMvUGFydGljbGVzL1BhcnRpY2xlc09wdGlvbnNcIik7XG5jb25zdCBTaGFwZV8xID0gcmVxdWlyZShcIi4uL09wdGlvbnMvQ2xhc3Nlcy9QYXJ0aWNsZXMvU2hhcGUvU2hhcGVcIik7XG5jb25zdCBFbnVtc18xID0gcmVxdWlyZShcIi4uL0VudW1zXCIpO1xuY29uc3QgVXRpbHNfMSA9IHJlcXVpcmUoXCIuLi9VdGlsc1wiKTtcbmNvbnN0IFZlY3Rvcl8xID0gcmVxdWlyZShcIi4vUGFydGljbGUvVmVjdG9yXCIpO1xuY29uc3QgVmVjdG9yM2RfMSA9IHJlcXVpcmUoXCIuL1BhcnRpY2xlL1ZlY3RvcjNkXCIpO1xuY29uc3QgZml4T3V0TW9kZSA9IChkYXRhKSA9PiB7XG4gICAgaWYgKCgwLCBVdGlsc18xLmlzSW5BcnJheSkoZGF0YS5vdXRNb2RlLCBkYXRhLmNoZWNrTW9kZXMpIHx8ICgwLCBVdGlsc18xLmlzSW5BcnJheSkoZGF0YS5vdXRNb2RlLCBkYXRhLmNoZWNrTW9kZXMpKSB7XG4gICAgICAgIGlmIChkYXRhLmNvb3JkID4gZGF0YS5tYXhDb29yZCAtIGRhdGEucmFkaXVzICogMikge1xuICAgICAgICAgICAgZGF0YS5zZXRDYigtZGF0YS5yYWRpdXMpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGRhdGEuY29vcmQgPCBkYXRhLnJhZGl1cyAqIDIpIHtcbiAgICAgICAgICAgIGRhdGEuc2V0Q2IoZGF0YS5yYWRpdXMpO1xuICAgICAgICB9XG4gICAgfVxufTtcbmNsYXNzIFBhcnRpY2xlIHtcbiAgICBjb25zdHJ1Y3RvcihpZCwgY29udGFpbmVyLCBwb3NpdGlvbiwgb3ZlcnJpZGVPcHRpb25zLCBncm91cCkge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2QsIF9lLCBfZiwgX2csIF9oLCBfajtcbiAgICAgICAgdGhpcy5pZCA9IGlkO1xuICAgICAgICB0aGlzLmNvbnRhaW5lciA9IGNvbnRhaW5lcjtcbiAgICAgICAgdGhpcy5ncm91cCA9IGdyb3VwO1xuICAgICAgICB0aGlzLmZpbGwgPSB0cnVlO1xuICAgICAgICB0aGlzLmNsb3NlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5sYXN0UGF0aFRpbWUgPSAwO1xuICAgICAgICB0aGlzLmRlc3Ryb3llZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnVuYnJlYWthYmxlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc3BsaXRDb3VudCA9IDA7XG4gICAgICAgIHRoaXMubWlzcGxhY2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMucmV0aW5hID0ge1xuICAgICAgICAgICAgbWF4RGlzdGFuY2U6IHt9LFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBweFJhdGlvID0gY29udGFpbmVyLnJldGluYS5waXhlbFJhdGlvO1xuICAgICAgICBjb25zdCBtYWluT3B0aW9ucyA9IGNvbnRhaW5lci5hY3R1YWxPcHRpb25zO1xuICAgICAgICBjb25zdCBwYXJ0aWNsZXNPcHRpb25zID0gbmV3IFBhcnRpY2xlc09wdGlvbnNfMS5QYXJ0aWNsZXNPcHRpb25zKCk7XG4gICAgICAgIHBhcnRpY2xlc09wdGlvbnMubG9hZChtYWluT3B0aW9ucy5wYXJ0aWNsZXMpO1xuICAgICAgICBjb25zdCBzaGFwZVR5cGUgPSBwYXJ0aWNsZXNPcHRpb25zLnNoYXBlLnR5cGU7XG4gICAgICAgIGNvbnN0IHJlZHVjZUR1cGxpY2F0ZXMgPSBwYXJ0aWNsZXNPcHRpb25zLnJlZHVjZUR1cGxpY2F0ZXM7XG4gICAgICAgIHRoaXMuc2hhcGUgPSBzaGFwZVR5cGUgaW5zdGFuY2VvZiBBcnJheSA/ICgwLCBVdGlsc18xLml0ZW1Gcm9tQXJyYXkpKHNoYXBlVHlwZSwgdGhpcy5pZCwgcmVkdWNlRHVwbGljYXRlcykgOiBzaGFwZVR5cGU7XG4gICAgICAgIGlmIChvdmVycmlkZU9wdGlvbnMgPT09IG51bGwgfHwgb3ZlcnJpZGVPcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvdmVycmlkZU9wdGlvbnMuc2hhcGUpIHtcbiAgICAgICAgICAgIGlmIChvdmVycmlkZU9wdGlvbnMuc2hhcGUudHlwZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG92ZXJyaWRlU2hhcGVUeXBlID0gb3ZlcnJpZGVPcHRpb25zLnNoYXBlLnR5cGU7XG4gICAgICAgICAgICAgICAgdGhpcy5zaGFwZSA9XG4gICAgICAgICAgICAgICAgICAgIG92ZXJyaWRlU2hhcGVUeXBlIGluc3RhbmNlb2YgQXJyYXlcbiAgICAgICAgICAgICAgICAgICAgICAgID8gKDAsIFV0aWxzXzEuaXRlbUZyb21BcnJheSkob3ZlcnJpZGVTaGFwZVR5cGUsIHRoaXMuaWQsIHJlZHVjZUR1cGxpY2F0ZXMpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IG92ZXJyaWRlU2hhcGVUeXBlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgc2hhcGVPcHRpb25zID0gbmV3IFNoYXBlXzEuU2hhcGUoKTtcbiAgICAgICAgICAgIHNoYXBlT3B0aW9ucy5sb2FkKG92ZXJyaWRlT3B0aW9ucy5zaGFwZSk7XG4gICAgICAgICAgICBpZiAodGhpcy5zaGFwZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2hhcGVEYXRhID0gdGhpcy5sb2FkU2hhcGVEYXRhKHNoYXBlT3B0aW9ucywgcmVkdWNlRHVwbGljYXRlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNoYXBlRGF0YSA9IHRoaXMubG9hZFNoYXBlRGF0YShwYXJ0aWNsZXNPcHRpb25zLnNoYXBlLCByZWR1Y2VEdXBsaWNhdGVzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3ZlcnJpZGVPcHRpb25zICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHBhcnRpY2xlc09wdGlvbnMubG9hZChvdmVycmlkZU9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgICAgIGlmICgoKF9hID0gdGhpcy5zaGFwZURhdGEpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5wYXJ0aWNsZXMpICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHBhcnRpY2xlc09wdGlvbnMubG9hZCgoX2IgPSB0aGlzLnNoYXBlRGF0YSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLnBhcnRpY2xlcyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5maWxsID0gKF9kID0gKF9jID0gdGhpcy5zaGFwZURhdGEpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5maWxsKSAhPT0gbnVsbCAmJiBfZCAhPT0gdm9pZCAwID8gX2QgOiB0aGlzLmZpbGw7XG4gICAgICAgIHRoaXMuY2xvc2UgPSAoX2YgPSAoX2UgPSB0aGlzLnNoYXBlRGF0YSkgPT09IG51bGwgfHwgX2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9lLmNsb3NlKSAhPT0gbnVsbCAmJiBfZiAhPT0gdm9pZCAwID8gX2YgOiB0aGlzLmNsb3NlO1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBwYXJ0aWNsZXNPcHRpb25zO1xuICAgICAgICB0aGlzLnBhdGhEZWxheSA9ICgwLCBVdGlsc18xLmdldFZhbHVlKSh0aGlzLm9wdGlvbnMubW92ZS5wYXRoLmRlbGF5KSAqIDEwMDA7XG4gICAgICAgIGNvbnN0IHpJbmRleFZhbHVlID0gKDAsIFV0aWxzXzEuZ2V0UmFuZ2VWYWx1ZSkodGhpcy5vcHRpb25zLnpJbmRleC52YWx1ZSk7XG4gICAgICAgIGNvbnRhaW5lci5yZXRpbmEuaW5pdFBhcnRpY2xlKHRoaXMpO1xuICAgICAgICBjb25zdCBzaXplT3B0aW9ucyA9IHRoaXMub3B0aW9ucy5zaXplLCBzaXplUmFuZ2UgPSBzaXplT3B0aW9ucy52YWx1ZTtcbiAgICAgICAgdGhpcy5zaXplID0ge1xuICAgICAgICAgICAgZW5hYmxlOiBzaXplT3B0aW9ucy5hbmltYXRpb24uZW5hYmxlLFxuICAgICAgICAgICAgdmFsdWU6ICgwLCBVdGlsc18xLmdldFZhbHVlKShzaXplT3B0aW9ucykgKiBjb250YWluZXIucmV0aW5hLnBpeGVsUmF0aW8sXG4gICAgICAgICAgICBtYXg6ICgwLCBVdGlsc18xLmdldFJhbmdlTWF4KShzaXplUmFuZ2UpICogcHhSYXRpbyxcbiAgICAgICAgICAgIG1pbjogKDAsIFV0aWxzXzEuZ2V0UmFuZ2VNaW4pKHNpemVSYW5nZSkgKiBweFJhdGlvLFxuICAgICAgICAgICAgbG9vcHM6IDAsXG4gICAgICAgICAgICBtYXhMb29wczogc2l6ZU9wdGlvbnMuYW5pbWF0aW9uLmNvdW50LFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBzaXplQW5pbWF0aW9uID0gc2l6ZU9wdGlvbnMuYW5pbWF0aW9uO1xuICAgICAgICBpZiAoc2l6ZUFuaW1hdGlvbi5lbmFibGUpIHtcbiAgICAgICAgICAgIHRoaXMuc2l6ZS5zdGF0dXMgPSBFbnVtc18xLkFuaW1hdGlvblN0YXR1cy5pbmNyZWFzaW5nO1xuICAgICAgICAgICAgc3dpdGNoIChzaXplQW5pbWF0aW9uLnN0YXJ0VmFsdWUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIEVudW1zXzEuU3RhcnRWYWx1ZVR5cGUubWluOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNpemUudmFsdWUgPSB0aGlzLnNpemUubWluO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNpemUuc3RhdHVzID0gRW51bXNfMS5BbmltYXRpb25TdGF0dXMuaW5jcmVhc2luZztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBFbnVtc18xLlN0YXJ0VmFsdWVUeXBlLnJhbmRvbTpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaXplLnZhbHVlID0gKDAsIFV0aWxzXzEucmFuZG9tSW5SYW5nZSkodGhpcy5zaXplKSAqIHB4UmF0aW87XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2l6ZS5zdGF0dXMgPSBNYXRoLnJhbmRvbSgpID49IDAuNSA/IEVudW1zXzEuQW5pbWF0aW9uU3RhdHVzLmluY3JlYXNpbmcgOiBFbnVtc18xLkFuaW1hdGlvblN0YXR1cy5kZWNyZWFzaW5nO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIEVudW1zXzEuU3RhcnRWYWx1ZVR5cGUubWF4OlxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2l6ZS52YWx1ZSA9IHRoaXMuc2l6ZS5tYXg7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2l6ZS5zdGF0dXMgPSBFbnVtc18xLkFuaW1hdGlvblN0YXR1cy5kZWNyZWFzaW5nO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc2l6ZS52ZWxvY2l0eSA9XG4gICAgICAgICAgICAgICAgKCgoX2cgPSB0aGlzLnJldGluYS5zaXplQW5pbWF0aW9uU3BlZWQpICE9PSBudWxsICYmIF9nICE9PSB2b2lkIDAgPyBfZyA6IGNvbnRhaW5lci5yZXRpbmEuc2l6ZUFuaW1hdGlvblNwZWVkKSAvIDEwMCkgKlxuICAgICAgICAgICAgICAgICAgICBjb250YWluZXIucmV0aW5hLnJlZHVjZUZhY3RvcjtcbiAgICAgICAgICAgIGlmICghc2l6ZUFuaW1hdGlvbi5zeW5jKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zaXplLnZlbG9jaXR5ICo9IE1hdGgucmFuZG9tKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kaXJlY3Rpb24gPSAoMCwgVXRpbHNfMS5nZXRQYXJ0aWNsZURpcmVjdGlvbkFuZ2xlKSh0aGlzLm9wdGlvbnMubW92ZS5kaXJlY3Rpb24pO1xuICAgICAgICB0aGlzLmJ1YmJsZSA9IHtcbiAgICAgICAgICAgIGluUmFuZ2U6IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmluaXRpYWxWZWxvY2l0eSA9IHRoaXMuY2FsY3VsYXRlVmVsb2NpdHkoKTtcbiAgICAgICAgdGhpcy52ZWxvY2l0eSA9IHRoaXMuaW5pdGlhbFZlbG9jaXR5LmNvcHkoKTtcbiAgICAgICAgdGhpcy5tb3ZlRGVjYXkgPSAxIC0gKDAsIFV0aWxzXzEuZ2V0UmFuZ2VWYWx1ZSkodGhpcy5vcHRpb25zLm1vdmUuZGVjYXkpO1xuICAgICAgICB0aGlzLnBvc2l0aW9uID0gdGhpcy5jYWxjUG9zaXRpb24oY29udGFpbmVyLCBwb3NpdGlvbiwgKDAsIFV0aWxzXzEuY2xhbXApKHpJbmRleFZhbHVlLCAwLCBjb250YWluZXIuekxheWVycykpO1xuICAgICAgICB0aGlzLmluaXRpYWxQb3NpdGlvbiA9IHRoaXMucG9zaXRpb24uY29weSgpO1xuICAgICAgICB0aGlzLm9mZnNldCA9IFZlY3Rvcl8xLlZlY3Rvci5vcmlnaW47XG4gICAgICAgIGNvbnN0IHBhcnRpY2xlcyA9IGNvbnRhaW5lci5wYXJ0aWNsZXM7XG4gICAgICAgIHBhcnRpY2xlcy5uZWVkc1NvcnQgPSBwYXJ0aWNsZXMubmVlZHNTb3J0IHx8IHBhcnRpY2xlcy5sYXN0WkluZGV4IDwgdGhpcy5wb3NpdGlvbi56O1xuICAgICAgICBwYXJ0aWNsZXMubGFzdFpJbmRleCA9IHRoaXMucG9zaXRpb24uejtcbiAgICAgICAgdGhpcy56SW5kZXhGYWN0b3IgPSB0aGlzLnBvc2l0aW9uLnogLyBjb250YWluZXIuekxheWVycztcbiAgICAgICAgdGhpcy5zaWRlcyA9IDI0O1xuICAgICAgICBsZXQgZHJhd2VyID0gY29udGFpbmVyLmRyYXdlcnMuZ2V0KHRoaXMuc2hhcGUpO1xuICAgICAgICBpZiAoIWRyYXdlcikge1xuICAgICAgICAgICAgZHJhd2VyID0gVXRpbHNfMS5QbHVnaW5zLmdldFNoYXBlRHJhd2VyKHRoaXMuc2hhcGUpO1xuICAgICAgICAgICAgaWYgKGRyYXdlcikge1xuICAgICAgICAgICAgICAgIGNvbnRhaW5lci5kcmF3ZXJzLnNldCh0aGlzLnNoYXBlLCBkcmF3ZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChkcmF3ZXIgPT09IG51bGwgfHwgZHJhd2VyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkcmF3ZXIubG9hZFNoYXBlKSB7XG4gICAgICAgICAgICBkcmF3ZXIgPT09IG51bGwgfHwgZHJhd2VyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkcmF3ZXIubG9hZFNoYXBlKHRoaXMpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNpZGVDb3VudEZ1bmMgPSBkcmF3ZXIgPT09IG51bGwgfHwgZHJhd2VyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkcmF3ZXIuZ2V0U2lkZXNDb3VudDtcbiAgICAgICAgaWYgKHNpZGVDb3VudEZ1bmMpIHtcbiAgICAgICAgICAgIHRoaXMuc2lkZXMgPSBzaWRlQ291bnRGdW5jKHRoaXMpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubGlmZSA9IHRoaXMubG9hZExpZmUoKTtcbiAgICAgICAgdGhpcy5zcGF3bmluZyA9IHRoaXMubGlmZS5kZWxheSA+IDA7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMubW92ZS5zcGluLmVuYWJsZSkge1xuICAgICAgICAgICAgY29uc3Qgc3BpblBvcyA9IChfaCA9IHRoaXMub3B0aW9ucy5tb3ZlLnNwaW4ucG9zaXRpb24pICE9PSBudWxsICYmIF9oICE9PSB2b2lkIDAgPyBfaCA6IHsgeDogNTAsIHk6IDUwIH07XG4gICAgICAgICAgICBjb25zdCBzcGluQ2VudGVyID0ge1xuICAgICAgICAgICAgICAgIHg6IChzcGluUG9zLnggLyAxMDApICogY29udGFpbmVyLmNhbnZhcy5zaXplLndpZHRoLFxuICAgICAgICAgICAgICAgIHk6IChzcGluUG9zLnkgLyAxMDApICogY29udGFpbmVyLmNhbnZhcy5zaXplLmhlaWdodCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjb25zdCBwb3MgPSB0aGlzLmdldFBvc2l0aW9uKCk7XG4gICAgICAgICAgICBjb25zdCBkaXN0YW5jZSA9ICgwLCBVdGlsc18xLmdldERpc3RhbmNlKShwb3MsIHNwaW5DZW50ZXIpO1xuICAgICAgICAgICAgdGhpcy5zcGluID0ge1xuICAgICAgICAgICAgICAgIGNlbnRlcjogc3BpbkNlbnRlcixcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb246IHRoaXMudmVsb2NpdHkueCA+PSAwID8gRW51bXNfMS5Sb3RhdGVEaXJlY3Rpb24uY2xvY2t3aXNlIDogRW51bXNfMS5Sb3RhdGVEaXJlY3Rpb24uY291bnRlckNsb2Nrd2lzZSxcbiAgICAgICAgICAgICAgICBhbmdsZTogdGhpcy52ZWxvY2l0eS5hbmdsZSxcbiAgICAgICAgICAgICAgICByYWRpdXM6IGRpc3RhbmNlLFxuICAgICAgICAgICAgICAgIGFjY2VsZXJhdGlvbjogKF9qID0gdGhpcy5yZXRpbmEuc3BpbkFjY2VsZXJhdGlvbikgIT09IG51bGwgJiYgX2ogIT09IHZvaWQgMCA/IF9qIDogKDAsIFV0aWxzXzEuZ2V0UmFuZ2VWYWx1ZSkodGhpcy5vcHRpb25zLm1vdmUuc3Bpbi5hY2NlbGVyYXRpb24pLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNoYWRvd0NvbG9yID0gKDAsIFV0aWxzXzEuY29sb3JUb1JnYikodGhpcy5vcHRpb25zLnNoYWRvdy5jb2xvcik7XG4gICAgICAgIGZvciAoY29uc3QgdXBkYXRlciBvZiBjb250YWluZXIucGFydGljbGVzLnVwZGF0ZXJzKSB7XG4gICAgICAgICAgICBpZiAodXBkYXRlci5pbml0KSB7XG4gICAgICAgICAgICAgICAgdXBkYXRlci5pbml0KHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChkcmF3ZXIgJiYgZHJhd2VyLnBhcnRpY2xlSW5pdCkge1xuICAgICAgICAgICAgZHJhd2VyLnBhcnRpY2xlSW5pdChjb250YWluZXIsIHRoaXMpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgWywgcGx1Z2luXSBvZiBjb250YWluZXIucGx1Z2lucykge1xuICAgICAgICAgICAgaWYgKHBsdWdpbi5wYXJ0aWNsZUNyZWF0ZWQpIHtcbiAgICAgICAgICAgICAgICBwbHVnaW4ucGFydGljbGVDcmVhdGVkKHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGlzVmlzaWJsZSgpIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmRlc3Ryb3llZCAmJiAhdGhpcy5zcGF3bmluZyAmJiB0aGlzLmlzSW5zaWRlQ2FudmFzKCk7XG4gICAgfVxuICAgIGlzSW5zaWRlQ2FudmFzKCkge1xuICAgICAgICBjb25zdCByYWRpdXMgPSB0aGlzLmdldFJhZGl1cygpO1xuICAgICAgICBjb25zdCBjYW52YXNTaXplID0gdGhpcy5jb250YWluZXIuY2FudmFzLnNpemU7XG4gICAgICAgIHJldHVybiAodGhpcy5wb3NpdGlvbi54ID49IC1yYWRpdXMgJiZcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24ueSA+PSAtcmFkaXVzICYmXG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uLnkgPD0gY2FudmFzU2l6ZS5oZWlnaHQgKyByYWRpdXMgJiZcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24ueCA8PSBjYW52YXNTaXplLndpZHRoICsgcmFkaXVzKTtcbiAgICB9XG4gICAgZHJhdyhkZWx0YSkge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgZm9yIChjb25zdCBbLCBwbHVnaW5dIG9mIGNvbnRhaW5lci5wbHVnaW5zKSB7XG4gICAgICAgICAgICBjb250YWluZXIuY2FudmFzLmRyYXdQYXJ0aWNsZVBsdWdpbihwbHVnaW4sIHRoaXMsIGRlbHRhKTtcbiAgICAgICAgfVxuICAgICAgICBjb250YWluZXIuY2FudmFzLmRyYXdQYXJ0aWNsZSh0aGlzLCBkZWx0YSk7XG4gICAgfVxuICAgIGdldFBvc2l0aW9uKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgeDogdGhpcy5wb3NpdGlvbi54ICsgdGhpcy5vZmZzZXQueCxcbiAgICAgICAgICAgIHk6IHRoaXMucG9zaXRpb24ueSArIHRoaXMub2Zmc2V0LnksXG4gICAgICAgICAgICB6OiB0aGlzLnBvc2l0aW9uLnosXG4gICAgICAgIH07XG4gICAgfVxuICAgIGdldFJhZGl1cygpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICByZXR1cm4gKF9hID0gdGhpcy5idWJibGUucmFkaXVzKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB0aGlzLnNpemUudmFsdWU7XG4gICAgfVxuICAgIGdldE1hc3MoKSB7XG4gICAgICAgIHJldHVybiAodGhpcy5nZXRSYWRpdXMoKSAqKiAyICogTWF0aC5QSSkgLyAyO1xuICAgIH1cbiAgICBnZXRGaWxsQ29sb3IoKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICBjb25zdCBjb2xvciA9IChfYSA9IHRoaXMuYnViYmxlLmNvbG9yKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAoMCwgVXRpbHNfMS5nZXRIc2xGcm9tQW5pbWF0aW9uKSh0aGlzLmNvbG9yKTtcbiAgICAgICAgaWYgKGNvbG9yICYmIHRoaXMucm9sbCAmJiAodGhpcy5iYWNrQ29sb3IgfHwgdGhpcy5yb2xsLmFsdGVyKSkge1xuICAgICAgICAgICAgY29uc3Qgcm9sbGVkID0gTWF0aC5mbG9vcigoKF9jID0gKF9iID0gdGhpcy5yb2xsKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuYW5nbGUpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IDApIC8gKE1hdGguUEkgLyAyKSkgJSAyO1xuICAgICAgICAgICAgaWYgKHJvbGxlZCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmJhY2tDb2xvcikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5iYWNrQ29sb3I7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnJvbGwuYWx0ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgwLCBVdGlsc18xLmFsdGVySHNsKShjb2xvciwgdGhpcy5yb2xsLmFsdGVyLnR5cGUsIHRoaXMucm9sbC5hbHRlci52YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb2xvcjtcbiAgICB9XG4gICAgZ2V0U3Ryb2tlQ29sb3IoKSB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIHJldHVybiAoX2IgPSAoX2EgPSB0aGlzLmJ1YmJsZS5jb2xvcikgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogKDAsIFV0aWxzXzEuZ2V0SHNsRnJvbUFuaW1hdGlvbikodGhpcy5zdHJva2VDb2xvcikpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IHRoaXMuZ2V0RmlsbENvbG9yKCk7XG4gICAgfVxuICAgIGRlc3Ryb3kob3ZlcnJpZGUpIHtcbiAgICAgICAgdGhpcy5kZXN0cm95ZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmJ1YmJsZS5pblJhbmdlID0gZmFsc2U7XG4gICAgICAgIGlmICh0aGlzLnVuYnJlYWthYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kZXN0cm95ZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmJ1YmJsZS5pblJhbmdlID0gZmFsc2U7XG4gICAgICAgIGZvciAoY29uc3QgWywgcGx1Z2luXSBvZiB0aGlzLmNvbnRhaW5lci5wbHVnaW5zKSB7XG4gICAgICAgICAgICBpZiAocGx1Z2luLnBhcnRpY2xlRGVzdHJveWVkKSB7XG4gICAgICAgICAgICAgICAgcGx1Z2luLnBhcnRpY2xlRGVzdHJveWVkKHRoaXMsIG92ZXJyaWRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAob3ZlcnJpZGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkZXN0cm95T3B0aW9ucyA9IHRoaXMub3B0aW9ucy5kZXN0cm95O1xuICAgICAgICBpZiAoZGVzdHJveU9wdGlvbnMubW9kZSA9PT0gRW51bXNfMS5EZXN0cm95TW9kZS5zcGxpdCkge1xuICAgICAgICAgICAgdGhpcy5zcGxpdCgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJlc2V0KCkge1xuICAgICAgICBpZiAodGhpcy5vcGFjaXR5KSB7XG4gICAgICAgICAgICB0aGlzLm9wYWNpdHkubG9vcHMgPSAwO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2l6ZS5sb29wcyA9IDA7XG4gICAgfVxuICAgIHNwbGl0KCkge1xuICAgICAgICBjb25zdCBzcGxpdE9wdGlvbnMgPSB0aGlzLm9wdGlvbnMuZGVzdHJveS5zcGxpdDtcbiAgICAgICAgaWYgKHNwbGl0T3B0aW9ucy5jb3VudCA+PSAwICYmIHRoaXMuc3BsaXRDb3VudCsrID4gc3BsaXRPcHRpb25zLmNvdW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmF0ZSA9ICgwLCBVdGlsc18xLmdldFJhbmdlVmFsdWUpKHNwbGl0T3B0aW9ucy5yYXRlLnZhbHVlKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByYXRlOyBpKyspIHtcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLnBhcnRpY2xlcy5hZGRTcGxpdFBhcnRpY2xlKHRoaXMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNhbGNQb3NpdGlvbihjb250YWluZXIsIHBvc2l0aW9uLCB6SW5kZXgsIHRyeUNvdW50ID0gMCkge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2QsIF9lLCBfZjtcbiAgICAgICAgZm9yIChjb25zdCBbLCBwbHVnaW5dIG9mIGNvbnRhaW5lci5wbHVnaW5zKSB7XG4gICAgICAgICAgICBjb25zdCBwbHVnaW5Qb3MgPSBwbHVnaW4ucGFydGljbGVQb3NpdGlvbiAhPT0gdW5kZWZpbmVkID8gcGx1Z2luLnBhcnRpY2xlUG9zaXRpb24ocG9zaXRpb24sIHRoaXMpIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgaWYgKHBsdWdpblBvcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFZlY3RvcjNkXzEuVmVjdG9yM2QuY3JlYXRlKHBsdWdpblBvcy54LCBwbHVnaW5Qb3MueSwgekluZGV4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjYW52YXNTaXplID0gY29udGFpbmVyLmNhbnZhcy5zaXplO1xuICAgICAgICBjb25zdCBwb3MgPSBWZWN0b3IzZF8xLlZlY3RvcjNkLmNyZWF0ZSgoX2EgPSBwb3NpdGlvbiA9PT0gbnVsbCB8fCBwb3NpdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcG9zaXRpb24ueCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogTWF0aC5yYW5kb20oKSAqIGNhbnZhc1NpemUud2lkdGgsIChfYiA9IHBvc2l0aW9uID09PSBudWxsIHx8IHBvc2l0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwb3NpdGlvbi55KSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBNYXRoLnJhbmRvbSgpICogY2FudmFzU2l6ZS5oZWlnaHQsIHpJbmRleCk7XG4gICAgICAgIGNvbnN0IHJhZGl1cyA9IHRoaXMuZ2V0UmFkaXVzKCk7XG4gICAgICAgIGNvbnN0IG91dE1vZGVzID0gdGhpcy5vcHRpb25zLm1vdmUub3V0TW9kZXMsIGZpeEhvcml6b250YWwgPSAob3V0TW9kZSkgPT4ge1xuICAgICAgICAgICAgZml4T3V0TW9kZSh7XG4gICAgICAgICAgICAgICAgb3V0TW9kZSxcbiAgICAgICAgICAgICAgICBjaGVja01vZGVzOiBbRW51bXNfMS5PdXRNb2RlLmJvdW5jZSwgRW51bXNfMS5PdXRNb2RlLmJvdW5jZUhvcml6b250YWxdLFxuICAgICAgICAgICAgICAgIGNvb3JkOiBwb3MueCxcbiAgICAgICAgICAgICAgICBtYXhDb29yZDogY29udGFpbmVyLmNhbnZhcy5zaXplLndpZHRoLFxuICAgICAgICAgICAgICAgIHNldENiOiAodmFsdWUpID0+IChwb3MueCArPSB2YWx1ZSksXG4gICAgICAgICAgICAgICAgcmFkaXVzLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sIGZpeFZlcnRpY2FsID0gKG91dE1vZGUpID0+IHtcbiAgICAgICAgICAgIGZpeE91dE1vZGUoe1xuICAgICAgICAgICAgICAgIG91dE1vZGUsXG4gICAgICAgICAgICAgICAgY2hlY2tNb2RlczogW0VudW1zXzEuT3V0TW9kZS5ib3VuY2UsIEVudW1zXzEuT3V0TW9kZS5ib3VuY2VWZXJ0aWNhbF0sXG4gICAgICAgICAgICAgICAgY29vcmQ6IHBvcy55LFxuICAgICAgICAgICAgICAgIG1heENvb3JkOiBjb250YWluZXIuY2FudmFzLnNpemUuaGVpZ2h0LFxuICAgICAgICAgICAgICAgIHNldENiOiAodmFsdWUpID0+IChwb3MueSArPSB2YWx1ZSksXG4gICAgICAgICAgICAgICAgcmFkaXVzLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICAgIGZpeEhvcml6b250YWwoKF9jID0gb3V0TW9kZXMubGVmdCkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogb3V0TW9kZXMuZGVmYXVsdCk7XG4gICAgICAgIGZpeEhvcml6b250YWwoKF9kID0gb3V0TW9kZXMucmlnaHQpICE9PSBudWxsICYmIF9kICE9PSB2b2lkIDAgPyBfZCA6IG91dE1vZGVzLmRlZmF1bHQpO1xuICAgICAgICBmaXhWZXJ0aWNhbCgoX2UgPSBvdXRNb2Rlcy50b3ApICE9PSBudWxsICYmIF9lICE9PSB2b2lkIDAgPyBfZSA6IG91dE1vZGVzLmRlZmF1bHQpO1xuICAgICAgICBmaXhWZXJ0aWNhbCgoX2YgPSBvdXRNb2Rlcy5ib3R0b20pICE9PSBudWxsICYmIF9mICE9PSB2b2lkIDAgPyBfZiA6IG91dE1vZGVzLmRlZmF1bHQpO1xuICAgICAgICBpZiAodGhpcy5jaGVja092ZXJsYXAocG9zLCB0cnlDb3VudCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNhbGNQb3NpdGlvbihjb250YWluZXIsIHVuZGVmaW5lZCwgekluZGV4LCB0cnlDb3VudCArIDEpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwb3M7XG4gICAgfVxuICAgIGNoZWNrT3ZlcmxhcChwb3MsIHRyeUNvdW50ID0gMCkge1xuICAgICAgICBjb25zdCBjb2xsaXNpb25zT3B0aW9ucyA9IHRoaXMub3B0aW9ucy5jb2xsaXNpb25zO1xuICAgICAgICBjb25zdCByYWRpdXMgPSB0aGlzLmdldFJhZGl1cygpO1xuICAgICAgICBpZiAoIWNvbGxpc2lvbnNPcHRpb25zLmVuYWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG92ZXJsYXBPcHRpb25zID0gY29sbGlzaW9uc09wdGlvbnMub3ZlcmxhcDtcbiAgICAgICAgaWYgKG92ZXJsYXBPcHRpb25zLmVuYWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJldHJpZXMgPSBvdmVybGFwT3B0aW9ucy5yZXRyaWVzO1xuICAgICAgICBpZiAocmV0cmllcyA+PSAwICYmIHRyeUNvdW50ID4gcmV0cmllcykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUGFydGljbGUgaXMgb3ZlcmxhcHBpbmcgYW5kIGNhbid0IGJlIHBsYWNlZFwiKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgb3ZlcmxhcHMgPSBmYWxzZTtcbiAgICAgICAgZm9yIChjb25zdCBwYXJ0aWNsZSBvZiB0aGlzLmNvbnRhaW5lci5wYXJ0aWNsZXMuYXJyYXkpIHtcbiAgICAgICAgICAgIGlmICgoMCwgVXRpbHNfMS5nZXREaXN0YW5jZSkocG9zLCBwYXJ0aWNsZS5wb3NpdGlvbikgPCByYWRpdXMgKyBwYXJ0aWNsZS5nZXRSYWRpdXMoKSkge1xuICAgICAgICAgICAgICAgIG92ZXJsYXBzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3ZlcmxhcHM7XG4gICAgfVxuICAgIGNhbGN1bGF0ZVZlbG9jaXR5KCkge1xuICAgICAgICBjb25zdCBiYXNlVmVsb2NpdHkgPSAoMCwgVXRpbHNfMS5nZXRQYXJ0aWNsZUJhc2VWZWxvY2l0eSkodGhpcy5kaXJlY3Rpb24pO1xuICAgICAgICBjb25zdCByZXMgPSBiYXNlVmVsb2NpdHkuY29weSgpO1xuICAgICAgICBjb25zdCBtb3ZlT3B0aW9ucyA9IHRoaXMub3B0aW9ucy5tb3ZlO1xuICAgICAgICBjb25zdCByYWQgPSAoTWF0aC5QSSAvIDE4MCkgKiBtb3ZlT3B0aW9ucy5hbmdsZS52YWx1ZTtcbiAgICAgICAgY29uc3QgcmFkT2Zmc2V0ID0gKE1hdGguUEkgLyAxODApICogbW92ZU9wdGlvbnMuYW5nbGUub2Zmc2V0O1xuICAgICAgICBjb25zdCByYW5nZSA9IHtcbiAgICAgICAgICAgIGxlZnQ6IHJhZE9mZnNldCAtIHJhZCAvIDIsXG4gICAgICAgICAgICByaWdodDogcmFkT2Zmc2V0ICsgcmFkIC8gMixcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKCFtb3ZlT3B0aW9ucy5zdHJhaWdodCkge1xuICAgICAgICAgICAgcmVzLmFuZ2xlICs9ICgwLCBVdGlsc18xLnJhbmRvbUluUmFuZ2UpKCgwLCBVdGlsc18xLnNldFJhbmdlVmFsdWUpKHJhbmdlLmxlZnQsIHJhbmdlLnJpZ2h0KSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1vdmVPcHRpb25zLnJhbmRvbSAmJiB0eXBlb2YgbW92ZU9wdGlvbnMuc3BlZWQgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIHJlcy5sZW5ndGggKj0gTWF0aC5yYW5kb20oKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cbiAgICBsb2FkU2hhcGVEYXRhKHNoYXBlT3B0aW9ucywgcmVkdWNlRHVwbGljYXRlcykge1xuICAgICAgICBjb25zdCBzaGFwZURhdGEgPSBzaGFwZU9wdGlvbnMub3B0aW9uc1t0aGlzLnNoYXBlXTtcbiAgICAgICAgaWYgKHNoYXBlRGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuICgwLCBVdGlsc18xLmRlZXBFeHRlbmQpKHt9LCBzaGFwZURhdGEgaW5zdGFuY2VvZiBBcnJheSA/ICgwLCBVdGlsc18xLml0ZW1Gcm9tQXJyYXkpKHNoYXBlRGF0YSwgdGhpcy5pZCwgcmVkdWNlRHVwbGljYXRlcykgOiBzaGFwZURhdGEpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGxvYWRMaWZlKCkge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgY29uc3QgcGFydGljbGVzT3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgICAgICAgY29uc3QgbGlmZU9wdGlvbnMgPSBwYXJ0aWNsZXNPcHRpb25zLmxpZmU7XG4gICAgICAgIGNvbnN0IGxpZmUgPSB7XG4gICAgICAgICAgICBkZWxheTogY29udGFpbmVyLnJldGluYS5yZWR1Y2VGYWN0b3JcbiAgICAgICAgICAgICAgICA/ICgoKDAsIFV0aWxzXzEuZ2V0UmFuZ2VWYWx1ZSkobGlmZU9wdGlvbnMuZGVsYXkudmFsdWUpICogKGxpZmVPcHRpb25zLmRlbGF5LnN5bmMgPyAxIDogTWF0aC5yYW5kb20oKSkpIC9cbiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyLnJldGluYS5yZWR1Y2VGYWN0b3IpICpcbiAgICAgICAgICAgICAgICAgICAgMTAwMFxuICAgICAgICAgICAgICAgIDogMCxcbiAgICAgICAgICAgIGRlbGF5VGltZTogMCxcbiAgICAgICAgICAgIGR1cmF0aW9uOiBjb250YWluZXIucmV0aW5hLnJlZHVjZUZhY3RvclxuICAgICAgICAgICAgICAgID8gKCgoMCwgVXRpbHNfMS5nZXRSYW5nZVZhbHVlKShsaWZlT3B0aW9ucy5kdXJhdGlvbi52YWx1ZSkgKiAobGlmZU9wdGlvbnMuZHVyYXRpb24uc3luYyA/IDEgOiBNYXRoLnJhbmRvbSgpKSkgL1xuICAgICAgICAgICAgICAgICAgICBjb250YWluZXIucmV0aW5hLnJlZHVjZUZhY3RvcikgKlxuICAgICAgICAgICAgICAgICAgICAxMDAwXG4gICAgICAgICAgICAgICAgOiAwLFxuICAgICAgICAgICAgdGltZTogMCxcbiAgICAgICAgICAgIGNvdW50OiBwYXJ0aWNsZXNPcHRpb25zLmxpZmUuY291bnQsXG4gICAgICAgIH07XG4gICAgICAgIGlmIChsaWZlLmR1cmF0aW9uIDw9IDApIHtcbiAgICAgICAgICAgIGxpZmUuZHVyYXRpb24gPSAtMTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobGlmZS5jb3VudCA8PSAwKSB7XG4gICAgICAgICAgICBsaWZlLmNvdW50ID0gLTE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxpZmU7XG4gICAgfVxufVxuZXhwb3J0cy5QYXJ0aWNsZSA9IFBhcnRpY2xlO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Particle.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Particle/Mover.js": +/*!*********************************************************!*\ + !*** ./node_modules/tsparticles/Core/Particle/Mover.js ***! + \*********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Mover = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Enums_1 = __webpack_require__(/*! ../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nfunction applyDistance(particle) {\n const initialPosition = particle.initialPosition;\n const { dx, dy } = (0, Utils_1.getDistances)(initialPosition, particle.position);\n const dxFixed = Math.abs(dx), dyFixed = Math.abs(dy);\n const hDistance = particle.retina.maxDistance.horizontal;\n const vDistance = particle.retina.maxDistance.vertical;\n if (!hDistance && !vDistance) {\n return;\n }\n if (((hDistance && dxFixed >= hDistance) || (vDistance && dyFixed >= vDistance)) && !particle.misplaced) {\n particle.misplaced = (!!hDistance && dxFixed > hDistance) || (!!vDistance && dyFixed > vDistance);\n if (hDistance) {\n particle.velocity.x = particle.velocity.y / 2 - particle.velocity.x;\n }\n if (vDistance) {\n particle.velocity.y = particle.velocity.x / 2 - particle.velocity.y;\n }\n }\n else if ((!hDistance || dxFixed < hDistance) && (!vDistance || dyFixed < vDistance) && particle.misplaced) {\n particle.misplaced = false;\n }\n else if (particle.misplaced) {\n const pos = particle.position, vel = particle.velocity;\n if (hDistance && ((pos.x < initialPosition.x && vel.x < 0) || (pos.x > initialPosition.x && vel.x > 0))) {\n vel.x *= -Math.random();\n }\n if (vDistance && ((pos.y < initialPosition.y && vel.y < 0) || (pos.y > initialPosition.y && vel.y > 0))) {\n vel.y *= -Math.random();\n }\n }\n}\nclass Mover {\n constructor(container) {\n this.container = container;\n }\n move(particle, delta) {\n if (particle.destroyed) {\n return;\n }\n this.moveParticle(particle, delta);\n this.moveParallax(particle);\n }\n moveParticle(particle, delta) {\n var _a, _b, _c;\n var _d, _e;\n const particleOptions = particle.options;\n const moveOptions = particleOptions.move;\n if (!moveOptions.enable) {\n return;\n }\n const container = this.container, slowFactor = this.getProximitySpeedFactor(particle), baseSpeed = ((_a = (_d = particle.retina).moveSpeed) !== null && _a !== void 0 ? _a : (_d.moveSpeed = (0, Utils_1.getRangeValue)(moveOptions.speed) * container.retina.pixelRatio)) *\n container.retina.reduceFactor, moveDrift = ((_b = (_e = particle.retina).moveDrift) !== null && _b !== void 0 ? _b : (_e.moveDrift = (0, Utils_1.getRangeValue)(particle.options.move.drift) * container.retina.pixelRatio)), maxSize = (0, Utils_1.getRangeMax)(particleOptions.size.value) * container.retina.pixelRatio, sizeFactor = moveOptions.size ? particle.getRadius() / maxSize : 1, diffFactor = 2, speedFactor = (sizeFactor * slowFactor * (delta.factor || 1)) / diffFactor, moveSpeed = baseSpeed * speedFactor;\n this.applyPath(particle, delta);\n const gravityOptions = moveOptions.gravity;\n const gravityFactor = gravityOptions.enable && gravityOptions.inverse ? -1 : 1;\n if (gravityOptions.enable && moveSpeed) {\n particle.velocity.y += (gravityFactor * (gravityOptions.acceleration * delta.factor)) / (60 * moveSpeed);\n }\n if (moveDrift && moveSpeed) {\n particle.velocity.x += (moveDrift * delta.factor) / (60 * moveSpeed);\n }\n const decay = particle.moveDecay;\n if (decay != 1) {\n particle.velocity.multTo(decay);\n }\n const velocity = particle.velocity.mult(moveSpeed);\n const maxSpeed = (_c = particle.retina.maxSpeed) !== null && _c !== void 0 ? _c : container.retina.maxSpeed;\n if (gravityOptions.enable &&\n gravityOptions.maxSpeed > 0 &&\n ((!gravityOptions.inverse && velocity.y >= 0 && velocity.y >= maxSpeed) ||\n (gravityOptions.inverse && velocity.y <= 0 && velocity.y <= -maxSpeed))) {\n velocity.y = gravityFactor * maxSpeed;\n if (moveSpeed) {\n particle.velocity.y = velocity.y / moveSpeed;\n }\n }\n const zIndexOptions = particle.options.zIndex, zVelocityFactor = (1 - particle.zIndexFactor) ** zIndexOptions.velocityRate;\n if (moveOptions.spin.enable) {\n this.spin(particle, moveSpeed);\n }\n else {\n if (zVelocityFactor != 1) {\n velocity.multTo(zVelocityFactor);\n }\n particle.position.addTo(velocity);\n if (moveOptions.vibrate) {\n particle.position.x += Math.sin(particle.position.x * Math.cos(particle.position.y));\n particle.position.y += Math.cos(particle.position.y * Math.sin(particle.position.x));\n }\n }\n applyDistance(particle);\n }\n spin(particle, moveSpeed) {\n const container = this.container;\n if (!particle.spin) {\n return;\n }\n const updateFunc = {\n x: particle.spin.direction === Enums_1.RotateDirection.clockwise ? Math.cos : Math.sin,\n y: particle.spin.direction === Enums_1.RotateDirection.clockwise ? Math.sin : Math.cos,\n };\n particle.position.x = particle.spin.center.x + particle.spin.radius * updateFunc.x(particle.spin.angle);\n particle.position.y = particle.spin.center.y + particle.spin.radius * updateFunc.y(particle.spin.angle);\n particle.spin.radius += particle.spin.acceleration;\n const maxCanvasSize = Math.max(container.canvas.size.width, container.canvas.size.height);\n if (particle.spin.radius > maxCanvasSize / 2) {\n particle.spin.radius = maxCanvasSize / 2;\n particle.spin.acceleration *= -1;\n }\n else if (particle.spin.radius < 0) {\n particle.spin.radius = 0;\n particle.spin.acceleration *= -1;\n }\n particle.spin.angle += (moveSpeed / 100) * (1 - particle.spin.radius / maxCanvasSize);\n }\n applyPath(particle, delta) {\n const particlesOptions = particle.options;\n const pathOptions = particlesOptions.move.path;\n const pathEnabled = pathOptions.enable;\n if (!pathEnabled) {\n return;\n }\n const container = this.container;\n if (particle.lastPathTime <= particle.pathDelay) {\n particle.lastPathTime += delta.value;\n return;\n }\n const path = container.pathGenerator.generate(particle);\n particle.velocity.addTo(path);\n if (pathOptions.clamp) {\n particle.velocity.x = (0, Utils_1.clamp)(particle.velocity.x, -1, 1);\n particle.velocity.y = (0, Utils_1.clamp)(particle.velocity.y, -1, 1);\n }\n particle.lastPathTime -= particle.pathDelay;\n }\n moveParallax(particle) {\n const container = this.container;\n const options = container.actualOptions;\n if ((0, Utils_1.isSsr)() || !options.interactivity.events.onHover.parallax.enable) {\n return;\n }\n const parallaxForce = options.interactivity.events.onHover.parallax.force;\n const mousePos = container.interactivity.mouse.position;\n if (!mousePos) {\n return;\n }\n const canvasCenter = {\n x: container.canvas.size.width / 2,\n y: container.canvas.size.height / 2,\n };\n const parallaxSmooth = options.interactivity.events.onHover.parallax.smooth;\n const factor = particle.getRadius() / parallaxForce;\n const tmp = {\n x: (mousePos.x - canvasCenter.x) * factor,\n y: (mousePos.y - canvasCenter.y) * factor,\n };\n particle.offset.x += (tmp.x - particle.offset.x) / parallaxSmooth;\n particle.offset.y += (tmp.y - particle.offset.y) / parallaxSmooth;\n }\n getProximitySpeedFactor(particle) {\n const container = this.container;\n const options = container.actualOptions;\n const active = (0, Utils_1.isInArray)(Enums_1.HoverMode.slow, options.interactivity.events.onHover.mode);\n if (!active) {\n return 1;\n }\n const mousePos = this.container.interactivity.mouse.position;\n if (!mousePos) {\n return 1;\n }\n const particlePos = particle.getPosition();\n const dist = (0, Utils_1.getDistance)(mousePos, particlePos);\n const radius = container.retina.slowModeRadius;\n if (dist > radius) {\n return 1;\n }\n const proximityFactor = dist / radius || 0;\n const slowFactor = options.interactivity.modes.slow.factor;\n return proximityFactor / slowFactor;\n }\n}\nexports.Mover = Mover;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9QYXJ0aWNsZS9Nb3Zlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxhQUFhO0FBQ2IsZ0JBQWdCLG1CQUFPLENBQUMsOERBQWE7QUFDckMsZ0JBQWdCLG1CQUFPLENBQUMsOERBQWE7QUFDckM7QUFDQTtBQUNBLFlBQVksU0FBUztBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0NvcmUvUGFydGljbGUvTW92ZXIuanM/Y2ZjNiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuTW92ZXIgPSB2b2lkIDA7XG5jb25zdCBVdGlsc18xID0gcmVxdWlyZShcIi4uLy4uL1V0aWxzXCIpO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuLi8uLi9FbnVtc1wiKTtcbmZ1bmN0aW9uIGFwcGx5RGlzdGFuY2UocGFydGljbGUpIHtcbiAgICBjb25zdCBpbml0aWFsUG9zaXRpb24gPSBwYXJ0aWNsZS5pbml0aWFsUG9zaXRpb247XG4gICAgY29uc3QgeyBkeCwgZHkgfSA9ICgwLCBVdGlsc18xLmdldERpc3RhbmNlcykoaW5pdGlhbFBvc2l0aW9uLCBwYXJ0aWNsZS5wb3NpdGlvbik7XG4gICAgY29uc3QgZHhGaXhlZCA9IE1hdGguYWJzKGR4KSwgZHlGaXhlZCA9IE1hdGguYWJzKGR5KTtcbiAgICBjb25zdCBoRGlzdGFuY2UgPSBwYXJ0aWNsZS5yZXRpbmEubWF4RGlzdGFuY2UuaG9yaXpvbnRhbDtcbiAgICBjb25zdCB2RGlzdGFuY2UgPSBwYXJ0aWNsZS5yZXRpbmEubWF4RGlzdGFuY2UudmVydGljYWw7XG4gICAgaWYgKCFoRGlzdGFuY2UgJiYgIXZEaXN0YW5jZSkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICgoKGhEaXN0YW5jZSAmJiBkeEZpeGVkID49IGhEaXN0YW5jZSkgfHwgKHZEaXN0YW5jZSAmJiBkeUZpeGVkID49IHZEaXN0YW5jZSkpICYmICFwYXJ0aWNsZS5taXNwbGFjZWQpIHtcbiAgICAgICAgcGFydGljbGUubWlzcGxhY2VkID0gKCEhaERpc3RhbmNlICYmIGR4Rml4ZWQgPiBoRGlzdGFuY2UpIHx8ICghIXZEaXN0YW5jZSAmJiBkeUZpeGVkID4gdkRpc3RhbmNlKTtcbiAgICAgICAgaWYgKGhEaXN0YW5jZSkge1xuICAgICAgICAgICAgcGFydGljbGUudmVsb2NpdHkueCA9IHBhcnRpY2xlLnZlbG9jaXR5LnkgLyAyIC0gcGFydGljbGUudmVsb2NpdHkueDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodkRpc3RhbmNlKSB7XG4gICAgICAgICAgICBwYXJ0aWNsZS52ZWxvY2l0eS55ID0gcGFydGljbGUudmVsb2NpdHkueCAvIDIgLSBwYXJ0aWNsZS52ZWxvY2l0eS55O1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2UgaWYgKCghaERpc3RhbmNlIHx8IGR4Rml4ZWQgPCBoRGlzdGFuY2UpICYmICghdkRpc3RhbmNlIHx8IGR5Rml4ZWQgPCB2RGlzdGFuY2UpICYmIHBhcnRpY2xlLm1pc3BsYWNlZCkge1xuICAgICAgICBwYXJ0aWNsZS5taXNwbGFjZWQgPSBmYWxzZTtcbiAgICB9XG4gICAgZWxzZSBpZiAocGFydGljbGUubWlzcGxhY2VkKSB7XG4gICAgICAgIGNvbnN0IHBvcyA9IHBhcnRpY2xlLnBvc2l0aW9uLCB2ZWwgPSBwYXJ0aWNsZS52ZWxvY2l0eTtcbiAgICAgICAgaWYgKGhEaXN0YW5jZSAmJiAoKHBvcy54IDwgaW5pdGlhbFBvc2l0aW9uLnggJiYgdmVsLnggPCAwKSB8fCAocG9zLnggPiBpbml0aWFsUG9zaXRpb24ueCAmJiB2ZWwueCA+IDApKSkge1xuICAgICAgICAgICAgdmVsLnggKj0gLU1hdGgucmFuZG9tKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZEaXN0YW5jZSAmJiAoKHBvcy55IDwgaW5pdGlhbFBvc2l0aW9uLnkgJiYgdmVsLnkgPCAwKSB8fCAocG9zLnkgPiBpbml0aWFsUG9zaXRpb24ueSAmJiB2ZWwueSA+IDApKSkge1xuICAgICAgICAgICAgdmVsLnkgKj0gLU1hdGgucmFuZG9tKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5jbGFzcyBNb3ZlciB7XG4gICAgY29uc3RydWN0b3IoY29udGFpbmVyKSB7XG4gICAgICAgIHRoaXMuY29udGFpbmVyID0gY29udGFpbmVyO1xuICAgIH1cbiAgICBtb3ZlKHBhcnRpY2xlLCBkZWx0YSkge1xuICAgICAgICBpZiAocGFydGljbGUuZGVzdHJveWVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5tb3ZlUGFydGljbGUocGFydGljbGUsIGRlbHRhKTtcbiAgICAgICAgdGhpcy5tb3ZlUGFyYWxsYXgocGFydGljbGUpO1xuICAgIH1cbiAgICBtb3ZlUGFydGljbGUocGFydGljbGUsIGRlbHRhKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICB2YXIgX2QsIF9lO1xuICAgICAgICBjb25zdCBwYXJ0aWNsZU9wdGlvbnMgPSBwYXJ0aWNsZS5vcHRpb25zO1xuICAgICAgICBjb25zdCBtb3ZlT3B0aW9ucyA9IHBhcnRpY2xlT3B0aW9ucy5tb3ZlO1xuICAgICAgICBpZiAoIW1vdmVPcHRpb25zLmVuYWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyLCBzbG93RmFjdG9yID0gdGhpcy5nZXRQcm94aW1pdHlTcGVlZEZhY3RvcihwYXJ0aWNsZSksIGJhc2VTcGVlZCA9ICgoX2EgPSAoX2QgPSBwYXJ0aWNsZS5yZXRpbmEpLm1vdmVTcGVlZCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogKF9kLm1vdmVTcGVlZCA9ICgwLCBVdGlsc18xLmdldFJhbmdlVmFsdWUpKG1vdmVPcHRpb25zLnNwZWVkKSAqIGNvbnRhaW5lci5yZXRpbmEucGl4ZWxSYXRpbykpICpcbiAgICAgICAgICAgIGNvbnRhaW5lci5yZXRpbmEucmVkdWNlRmFjdG9yLCBtb3ZlRHJpZnQgPSAoKF9iID0gKF9lID0gcGFydGljbGUucmV0aW5hKS5tb3ZlRHJpZnQpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IChfZS5tb3ZlRHJpZnQgPSAoMCwgVXRpbHNfMS5nZXRSYW5nZVZhbHVlKShwYXJ0aWNsZS5vcHRpb25zLm1vdmUuZHJpZnQpICogY29udGFpbmVyLnJldGluYS5waXhlbFJhdGlvKSksIG1heFNpemUgPSAoMCwgVXRpbHNfMS5nZXRSYW5nZU1heCkocGFydGljbGVPcHRpb25zLnNpemUudmFsdWUpICogY29udGFpbmVyLnJldGluYS5waXhlbFJhdGlvLCBzaXplRmFjdG9yID0gbW92ZU9wdGlvbnMuc2l6ZSA/IHBhcnRpY2xlLmdldFJhZGl1cygpIC8gbWF4U2l6ZSA6IDEsIGRpZmZGYWN0b3IgPSAyLCBzcGVlZEZhY3RvciA9IChzaXplRmFjdG9yICogc2xvd0ZhY3RvciAqIChkZWx0YS5mYWN0b3IgfHwgMSkpIC8gZGlmZkZhY3RvciwgbW92ZVNwZWVkID0gYmFzZVNwZWVkICogc3BlZWRGYWN0b3I7XG4gICAgICAgIHRoaXMuYXBwbHlQYXRoKHBhcnRpY2xlLCBkZWx0YSk7XG4gICAgICAgIGNvbnN0IGdyYXZpdHlPcHRpb25zID0gbW92ZU9wdGlvbnMuZ3Jhdml0eTtcbiAgICAgICAgY29uc3QgZ3Jhdml0eUZhY3RvciA9IGdyYXZpdHlPcHRpb25zLmVuYWJsZSAmJiBncmF2aXR5T3B0aW9ucy5pbnZlcnNlID8gLTEgOiAxO1xuICAgICAgICBpZiAoZ3Jhdml0eU9wdGlvbnMuZW5hYmxlICYmIG1vdmVTcGVlZCkge1xuICAgICAgICAgICAgcGFydGljbGUudmVsb2NpdHkueSArPSAoZ3Jhdml0eUZhY3RvciAqIChncmF2aXR5T3B0aW9ucy5hY2NlbGVyYXRpb24gKiBkZWx0YS5mYWN0b3IpKSAvICg2MCAqIG1vdmVTcGVlZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1vdmVEcmlmdCAmJiBtb3ZlU3BlZWQpIHtcbiAgICAgICAgICAgIHBhcnRpY2xlLnZlbG9jaXR5LnggKz0gKG1vdmVEcmlmdCAqIGRlbHRhLmZhY3RvcikgLyAoNjAgKiBtb3ZlU3BlZWQpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRlY2F5ID0gcGFydGljbGUubW92ZURlY2F5O1xuICAgICAgICBpZiAoZGVjYXkgIT0gMSkge1xuICAgICAgICAgICAgcGFydGljbGUudmVsb2NpdHkubXVsdFRvKGRlY2F5KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB2ZWxvY2l0eSA9IHBhcnRpY2xlLnZlbG9jaXR5Lm11bHQobW92ZVNwZWVkKTtcbiAgICAgICAgY29uc3QgbWF4U3BlZWQgPSAoX2MgPSBwYXJ0aWNsZS5yZXRpbmEubWF4U3BlZWQpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IGNvbnRhaW5lci5yZXRpbmEubWF4U3BlZWQ7XG4gICAgICAgIGlmIChncmF2aXR5T3B0aW9ucy5lbmFibGUgJiZcbiAgICAgICAgICAgIGdyYXZpdHlPcHRpb25zLm1heFNwZWVkID4gMCAmJlxuICAgICAgICAgICAgKCghZ3Jhdml0eU9wdGlvbnMuaW52ZXJzZSAmJiB2ZWxvY2l0eS55ID49IDAgJiYgdmVsb2NpdHkueSA+PSBtYXhTcGVlZCkgfHxcbiAgICAgICAgICAgICAgICAoZ3Jhdml0eU9wdGlvbnMuaW52ZXJzZSAmJiB2ZWxvY2l0eS55IDw9IDAgJiYgdmVsb2NpdHkueSA8PSAtbWF4U3BlZWQpKSkge1xuICAgICAgICAgICAgdmVsb2NpdHkueSA9IGdyYXZpdHlGYWN0b3IgKiBtYXhTcGVlZDtcbiAgICAgICAgICAgIGlmIChtb3ZlU3BlZWQpIHtcbiAgICAgICAgICAgICAgICBwYXJ0aWNsZS52ZWxvY2l0eS55ID0gdmVsb2NpdHkueSAvIG1vdmVTcGVlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCB6SW5kZXhPcHRpb25zID0gcGFydGljbGUub3B0aW9ucy56SW5kZXgsIHpWZWxvY2l0eUZhY3RvciA9ICgxIC0gcGFydGljbGUuekluZGV4RmFjdG9yKSAqKiB6SW5kZXhPcHRpb25zLnZlbG9jaXR5UmF0ZTtcbiAgICAgICAgaWYgKG1vdmVPcHRpb25zLnNwaW4uZW5hYmxlKSB7XG4gICAgICAgICAgICB0aGlzLnNwaW4ocGFydGljbGUsIG1vdmVTcGVlZCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoelZlbG9jaXR5RmFjdG9yICE9IDEpIHtcbiAgICAgICAgICAgICAgICB2ZWxvY2l0eS5tdWx0VG8oelZlbG9jaXR5RmFjdG9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBhcnRpY2xlLnBvc2l0aW9uLmFkZFRvKHZlbG9jaXR5KTtcbiAgICAgICAgICAgIGlmIChtb3ZlT3B0aW9ucy52aWJyYXRlKSB7XG4gICAgICAgICAgICAgICAgcGFydGljbGUucG9zaXRpb24ueCArPSBNYXRoLnNpbihwYXJ0aWNsZS5wb3NpdGlvbi54ICogTWF0aC5jb3MocGFydGljbGUucG9zaXRpb24ueSkpO1xuICAgICAgICAgICAgICAgIHBhcnRpY2xlLnBvc2l0aW9uLnkgKz0gTWF0aC5jb3MocGFydGljbGUucG9zaXRpb24ueSAqIE1hdGguc2luKHBhcnRpY2xlLnBvc2l0aW9uLngpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBhcHBseURpc3RhbmNlKHBhcnRpY2xlKTtcbiAgICB9XG4gICAgc3BpbihwYXJ0aWNsZSwgbW92ZVNwZWVkKSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyO1xuICAgICAgICBpZiAoIXBhcnRpY2xlLnNwaW4pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB1cGRhdGVGdW5jID0ge1xuICAgICAgICAgICAgeDogcGFydGljbGUuc3Bpbi5kaXJlY3Rpb24gPT09IEVudW1zXzEuUm90YXRlRGlyZWN0aW9uLmNsb2Nrd2lzZSA/IE1hdGguY29zIDogTWF0aC5zaW4sXG4gICAgICAgICAgICB5OiBwYXJ0aWNsZS5zcGluLmRpcmVjdGlvbiA9PT0gRW51bXNfMS5Sb3RhdGVEaXJlY3Rpb24uY2xvY2t3aXNlID8gTWF0aC5zaW4gOiBNYXRoLmNvcyxcbiAgICAgICAgfTtcbiAgICAgICAgcGFydGljbGUucG9zaXRpb24ueCA9IHBhcnRpY2xlLnNwaW4uY2VudGVyLnggKyBwYXJ0aWNsZS5zcGluLnJhZGl1cyAqIHVwZGF0ZUZ1bmMueChwYXJ0aWNsZS5zcGluLmFuZ2xlKTtcbiAgICAgICAgcGFydGljbGUucG9zaXRpb24ueSA9IHBhcnRpY2xlLnNwaW4uY2VudGVyLnkgKyBwYXJ0aWNsZS5zcGluLnJhZGl1cyAqIHVwZGF0ZUZ1bmMueShwYXJ0aWNsZS5zcGluLmFuZ2xlKTtcbiAgICAgICAgcGFydGljbGUuc3Bpbi5yYWRpdXMgKz0gcGFydGljbGUuc3Bpbi5hY2NlbGVyYXRpb247XG4gICAgICAgIGNvbnN0IG1heENhbnZhc1NpemUgPSBNYXRoLm1heChjb250YWluZXIuY2FudmFzLnNpemUud2lkdGgsIGNvbnRhaW5lci5jYW52YXMuc2l6ZS5oZWlnaHQpO1xuICAgICAgICBpZiAocGFydGljbGUuc3Bpbi5yYWRpdXMgPiBtYXhDYW52YXNTaXplIC8gMikge1xuICAgICAgICAgICAgcGFydGljbGUuc3Bpbi5yYWRpdXMgPSBtYXhDYW52YXNTaXplIC8gMjtcbiAgICAgICAgICAgIHBhcnRpY2xlLnNwaW4uYWNjZWxlcmF0aW9uICo9IC0xO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHBhcnRpY2xlLnNwaW4ucmFkaXVzIDwgMCkge1xuICAgICAgICAgICAgcGFydGljbGUuc3Bpbi5yYWRpdXMgPSAwO1xuICAgICAgICAgICAgcGFydGljbGUuc3Bpbi5hY2NlbGVyYXRpb24gKj0gLTE7XG4gICAgICAgIH1cbiAgICAgICAgcGFydGljbGUuc3Bpbi5hbmdsZSArPSAobW92ZVNwZWVkIC8gMTAwKSAqICgxIC0gcGFydGljbGUuc3Bpbi5yYWRpdXMgLyBtYXhDYW52YXNTaXplKTtcbiAgICB9XG4gICAgYXBwbHlQYXRoKHBhcnRpY2xlLCBkZWx0YSkge1xuICAgICAgICBjb25zdCBwYXJ0aWNsZXNPcHRpb25zID0gcGFydGljbGUub3B0aW9ucztcbiAgICAgICAgY29uc3QgcGF0aE9wdGlvbnMgPSBwYXJ0aWNsZXNPcHRpb25zLm1vdmUucGF0aDtcbiAgICAgICAgY29uc3QgcGF0aEVuYWJsZWQgPSBwYXRoT3B0aW9ucy5lbmFibGU7XG4gICAgICAgIGlmICghcGF0aEVuYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgaWYgKHBhcnRpY2xlLmxhc3RQYXRoVGltZSA8PSBwYXJ0aWNsZS5wYXRoRGVsYXkpIHtcbiAgICAgICAgICAgIHBhcnRpY2xlLmxhc3RQYXRoVGltZSArPSBkZWx0YS52YWx1ZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYXRoID0gY29udGFpbmVyLnBhdGhHZW5lcmF0b3IuZ2VuZXJhdGUocGFydGljbGUpO1xuICAgICAgICBwYXJ0aWNsZS52ZWxvY2l0eS5hZGRUbyhwYXRoKTtcbiAgICAgICAgaWYgKHBhdGhPcHRpb25zLmNsYW1wKSB7XG4gICAgICAgICAgICBwYXJ0aWNsZS52ZWxvY2l0eS54ID0gKDAsIFV0aWxzXzEuY2xhbXApKHBhcnRpY2xlLnZlbG9jaXR5LngsIC0xLCAxKTtcbiAgICAgICAgICAgIHBhcnRpY2xlLnZlbG9jaXR5LnkgPSAoMCwgVXRpbHNfMS5jbGFtcCkocGFydGljbGUudmVsb2NpdHkueSwgLTEsIDEpO1xuICAgICAgICB9XG4gICAgICAgIHBhcnRpY2xlLmxhc3RQYXRoVGltZSAtPSBwYXJ0aWNsZS5wYXRoRGVsYXk7XG4gICAgfVxuICAgIG1vdmVQYXJhbGxheChwYXJ0aWNsZSkge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IGNvbnRhaW5lci5hY3R1YWxPcHRpb25zO1xuICAgICAgICBpZiAoKDAsIFV0aWxzXzEuaXNTc3IpKCkgfHwgIW9wdGlvbnMuaW50ZXJhY3Rpdml0eS5ldmVudHMub25Ib3Zlci5wYXJhbGxheC5lbmFibGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYXJhbGxheEZvcmNlID0gb3B0aW9ucy5pbnRlcmFjdGl2aXR5LmV2ZW50cy5vbkhvdmVyLnBhcmFsbGF4LmZvcmNlO1xuICAgICAgICBjb25zdCBtb3VzZVBvcyA9IGNvbnRhaW5lci5pbnRlcmFjdGl2aXR5Lm1vdXNlLnBvc2l0aW9uO1xuICAgICAgICBpZiAoIW1vdXNlUG9zKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2FudmFzQ2VudGVyID0ge1xuICAgICAgICAgICAgeDogY29udGFpbmVyLmNhbnZhcy5zaXplLndpZHRoIC8gMixcbiAgICAgICAgICAgIHk6IGNvbnRhaW5lci5jYW52YXMuc2l6ZS5oZWlnaHQgLyAyLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBwYXJhbGxheFNtb290aCA9IG9wdGlvbnMuaW50ZXJhY3Rpdml0eS5ldmVudHMub25Ib3Zlci5wYXJhbGxheC5zbW9vdGg7XG4gICAgICAgIGNvbnN0IGZhY3RvciA9IHBhcnRpY2xlLmdldFJhZGl1cygpIC8gcGFyYWxsYXhGb3JjZTtcbiAgICAgICAgY29uc3QgdG1wID0ge1xuICAgICAgICAgICAgeDogKG1vdXNlUG9zLnggLSBjYW52YXNDZW50ZXIueCkgKiBmYWN0b3IsXG4gICAgICAgICAgICB5OiAobW91c2VQb3MueSAtIGNhbnZhc0NlbnRlci55KSAqIGZhY3RvcixcbiAgICAgICAgfTtcbiAgICAgICAgcGFydGljbGUub2Zmc2V0LnggKz0gKHRtcC54IC0gcGFydGljbGUub2Zmc2V0LngpIC8gcGFyYWxsYXhTbW9vdGg7XG4gICAgICAgIHBhcnRpY2xlLm9mZnNldC55ICs9ICh0bXAueSAtIHBhcnRpY2xlLm9mZnNldC55KSAvIHBhcmFsbGF4U21vb3RoO1xuICAgIH1cbiAgICBnZXRQcm94aW1pdHlTcGVlZEZhY3RvcihwYXJ0aWNsZSkge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IGNvbnRhaW5lci5hY3R1YWxPcHRpb25zO1xuICAgICAgICBjb25zdCBhY3RpdmUgPSAoMCwgVXRpbHNfMS5pc0luQXJyYXkpKEVudW1zXzEuSG92ZXJNb2RlLnNsb3csIG9wdGlvbnMuaW50ZXJhY3Rpdml0eS5ldmVudHMub25Ib3Zlci5tb2RlKTtcbiAgICAgICAgaWYgKCFhY3RpdmUpIHtcbiAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1vdXNlUG9zID0gdGhpcy5jb250YWluZXIuaW50ZXJhY3Rpdml0eS5tb3VzZS5wb3NpdGlvbjtcbiAgICAgICAgaWYgKCFtb3VzZVBvcykge1xuICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGFydGljbGVQb3MgPSBwYXJ0aWNsZS5nZXRQb3NpdGlvbigpO1xuICAgICAgICBjb25zdCBkaXN0ID0gKDAsIFV0aWxzXzEuZ2V0RGlzdGFuY2UpKG1vdXNlUG9zLCBwYXJ0aWNsZVBvcyk7XG4gICAgICAgIGNvbnN0IHJhZGl1cyA9IGNvbnRhaW5lci5yZXRpbmEuc2xvd01vZGVSYWRpdXM7XG4gICAgICAgIGlmIChkaXN0ID4gcmFkaXVzKSB7XG4gICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwcm94aW1pdHlGYWN0b3IgPSBkaXN0IC8gcmFkaXVzIHx8IDA7XG4gICAgICAgIGNvbnN0IHNsb3dGYWN0b3IgPSBvcHRpb25zLmludGVyYWN0aXZpdHkubW9kZXMuc2xvdy5mYWN0b3I7XG4gICAgICAgIHJldHVybiBwcm94aW1pdHlGYWN0b3IgLyBzbG93RmFjdG9yO1xuICAgIH1cbn1cbmV4cG9ydHMuTW92ZXIgPSBNb3ZlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Particle/Mover.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Particle/Vector.js": +/*!**********************************************************!*\ + !*** ./node_modules/tsparticles/Core/Particle/Vector.js ***! + \**********************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Vector = void 0;\nclass Vector {\n constructor(x, y) {\n let defX, defY;\n if (y === undefined) {\n if (typeof x === \"number\") {\n throw new Error(\"tsParticles - Vector not initialized correctly\");\n }\n const coords = x;\n [defX, defY] = [coords.x, coords.y];\n }\n else {\n [defX, defY] = [x, y];\n }\n this.x = defX;\n this.y = defY;\n }\n static clone(source) {\n return Vector.create(source.x, source.y);\n }\n static create(x, y) {\n return new Vector(x, y);\n }\n static get origin() {\n return Vector.create(0, 0);\n }\n get angle() {\n return Math.atan2(this.y, this.x);\n }\n set angle(angle) {\n this.updateFromAngle(angle, this.length);\n }\n get length() {\n return Math.sqrt(this.x ** 2 + this.y ** 2);\n }\n set length(length) {\n this.updateFromAngle(this.angle, length);\n }\n add(v) {\n return Vector.create(this.x + v.x, this.y + v.y);\n }\n addTo(v) {\n this.x += v.x;\n this.y += v.y;\n }\n sub(v) {\n return Vector.create(this.x - v.x, this.y - v.y);\n }\n subFrom(v) {\n this.x -= v.x;\n this.y -= v.y;\n }\n mult(n) {\n return Vector.create(this.x * n, this.y * n);\n }\n multTo(n) {\n this.x *= n;\n this.y *= n;\n }\n div(n) {\n return Vector.create(this.x / n, this.y / n);\n }\n divTo(n) {\n this.x /= n;\n this.y /= n;\n }\n distanceTo(v) {\n return this.sub(v).length;\n }\n getLengthSq() {\n return this.x ** 2 + this.y ** 2;\n }\n distanceToSq(v) {\n return this.sub(v).getLengthSq();\n }\n manhattanDistanceTo(v) {\n return Math.abs(v.x - this.x) + Math.abs(v.y - this.y);\n }\n copy() {\n return Vector.clone(this);\n }\n setTo(velocity) {\n this.x = velocity.x;\n this.y = velocity.y;\n }\n rotate(angle) {\n return Vector.create(this.x * Math.cos(angle) - this.y * Math.sin(angle), this.x * Math.sin(angle) + this.y * Math.cos(angle));\n }\n updateFromAngle(angle, length) {\n this.x = Math.cos(angle) * length;\n this.y = Math.sin(angle) * length;\n }\n}\nexports.Vector = Vector;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9QYXJ0aWNsZS9WZWN0b3IuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9Db3JlL1BhcnRpY2xlL1ZlY3Rvci5qcz8xMjY1Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5WZWN0b3IgPSB2b2lkIDA7XG5jbGFzcyBWZWN0b3Ige1xuICAgIGNvbnN0cnVjdG9yKHgsIHkpIHtcbiAgICAgICAgbGV0IGRlZlgsIGRlZlk7XG4gICAgICAgIGlmICh5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgeCA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcInRzUGFydGljbGVzIC0gVmVjdG9yIG5vdCBpbml0aWFsaXplZCBjb3JyZWN0bHlcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBjb29yZHMgPSB4O1xuICAgICAgICAgICAgW2RlZlgsIGRlZlldID0gW2Nvb3Jkcy54LCBjb29yZHMueV07XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBbZGVmWCwgZGVmWV0gPSBbeCwgeV07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy54ID0gZGVmWDtcbiAgICAgICAgdGhpcy55ID0gZGVmWTtcbiAgICB9XG4gICAgc3RhdGljIGNsb25lKHNvdXJjZSkge1xuICAgICAgICByZXR1cm4gVmVjdG9yLmNyZWF0ZShzb3VyY2UueCwgc291cmNlLnkpO1xuICAgIH1cbiAgICBzdGF0aWMgY3JlYXRlKHgsIHkpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBWZWN0b3IoeCwgeSk7XG4gICAgfVxuICAgIHN0YXRpYyBnZXQgb3JpZ2luKCkge1xuICAgICAgICByZXR1cm4gVmVjdG9yLmNyZWF0ZSgwLCAwKTtcbiAgICB9XG4gICAgZ2V0IGFuZ2xlKCkge1xuICAgICAgICByZXR1cm4gTWF0aC5hdGFuMih0aGlzLnksIHRoaXMueCk7XG4gICAgfVxuICAgIHNldCBhbmdsZShhbmdsZSkge1xuICAgICAgICB0aGlzLnVwZGF0ZUZyb21BbmdsZShhbmdsZSwgdGhpcy5sZW5ndGgpO1xuICAgIH1cbiAgICBnZXQgbGVuZ3RoKCkge1xuICAgICAgICByZXR1cm4gTWF0aC5zcXJ0KHRoaXMueCAqKiAyICsgdGhpcy55ICoqIDIpO1xuICAgIH1cbiAgICBzZXQgbGVuZ3RoKGxlbmd0aCkge1xuICAgICAgICB0aGlzLnVwZGF0ZUZyb21BbmdsZSh0aGlzLmFuZ2xlLCBsZW5ndGgpO1xuICAgIH1cbiAgICBhZGQodikge1xuICAgICAgICByZXR1cm4gVmVjdG9yLmNyZWF0ZSh0aGlzLnggKyB2LngsIHRoaXMueSArIHYueSk7XG4gICAgfVxuICAgIGFkZFRvKHYpIHtcbiAgICAgICAgdGhpcy54ICs9IHYueDtcbiAgICAgICAgdGhpcy55ICs9IHYueTtcbiAgICB9XG4gICAgc3ViKHYpIHtcbiAgICAgICAgcmV0dXJuIFZlY3Rvci5jcmVhdGUodGhpcy54IC0gdi54LCB0aGlzLnkgLSB2LnkpO1xuICAgIH1cbiAgICBzdWJGcm9tKHYpIHtcbiAgICAgICAgdGhpcy54IC09IHYueDtcbiAgICAgICAgdGhpcy55IC09IHYueTtcbiAgICB9XG4gICAgbXVsdChuKSB7XG4gICAgICAgIHJldHVybiBWZWN0b3IuY3JlYXRlKHRoaXMueCAqIG4sIHRoaXMueSAqIG4pO1xuICAgIH1cbiAgICBtdWx0VG8obikge1xuICAgICAgICB0aGlzLnggKj0gbjtcbiAgICAgICAgdGhpcy55ICo9IG47XG4gICAgfVxuICAgIGRpdihuKSB7XG4gICAgICAgIHJldHVybiBWZWN0b3IuY3JlYXRlKHRoaXMueCAvIG4sIHRoaXMueSAvIG4pO1xuICAgIH1cbiAgICBkaXZUbyhuKSB7XG4gICAgICAgIHRoaXMueCAvPSBuO1xuICAgICAgICB0aGlzLnkgLz0gbjtcbiAgICB9XG4gICAgZGlzdGFuY2VUbyh2KSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN1Yih2KS5sZW5ndGg7XG4gICAgfVxuICAgIGdldExlbmd0aFNxKCkge1xuICAgICAgICByZXR1cm4gdGhpcy54ICoqIDIgKyB0aGlzLnkgKiogMjtcbiAgICB9XG4gICAgZGlzdGFuY2VUb1NxKHYpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3ViKHYpLmdldExlbmd0aFNxKCk7XG4gICAgfVxuICAgIG1hbmhhdHRhbkRpc3RhbmNlVG8odikge1xuICAgICAgICByZXR1cm4gTWF0aC5hYnModi54IC0gdGhpcy54KSArIE1hdGguYWJzKHYueSAtIHRoaXMueSk7XG4gICAgfVxuICAgIGNvcHkoKSB7XG4gICAgICAgIHJldHVybiBWZWN0b3IuY2xvbmUodGhpcyk7XG4gICAgfVxuICAgIHNldFRvKHZlbG9jaXR5KSB7XG4gICAgICAgIHRoaXMueCA9IHZlbG9jaXR5Lng7XG4gICAgICAgIHRoaXMueSA9IHZlbG9jaXR5Lnk7XG4gICAgfVxuICAgIHJvdGF0ZShhbmdsZSkge1xuICAgICAgICByZXR1cm4gVmVjdG9yLmNyZWF0ZSh0aGlzLnggKiBNYXRoLmNvcyhhbmdsZSkgLSB0aGlzLnkgKiBNYXRoLnNpbihhbmdsZSksIHRoaXMueCAqIE1hdGguc2luKGFuZ2xlKSArIHRoaXMueSAqIE1hdGguY29zKGFuZ2xlKSk7XG4gICAgfVxuICAgIHVwZGF0ZUZyb21BbmdsZShhbmdsZSwgbGVuZ3RoKSB7XG4gICAgICAgIHRoaXMueCA9IE1hdGguY29zKGFuZ2xlKSAqIGxlbmd0aDtcbiAgICAgICAgdGhpcy55ID0gTWF0aC5zaW4oYW5nbGUpICogbGVuZ3RoO1xuICAgIH1cbn1cbmV4cG9ydHMuVmVjdG9yID0gVmVjdG9yO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Particle/Vector.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Particle/Vector3d.js": +/*!************************************************************!*\ + !*** ./node_modules/tsparticles/Core/Particle/Vector3d.js ***! + \************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Vector3d = void 0;\nconst Vector_1 = __webpack_require__(/*! ./Vector */ \"./node_modules/tsparticles/Core/Particle/Vector.js\");\nclass Vector3d extends Vector_1.Vector {\n constructor(x, y, z) {\n super(x, y);\n this.z = z === undefined ? x.z : z;\n }\n static clone(source) {\n return Vector3d.create(source.x, source.y, source.z);\n }\n static create(x, y, z) {\n return new Vector3d(x, y, z);\n }\n add(v) {\n return v instanceof Vector3d ? Vector3d.create(this.x + v.x, this.y + v.y, this.z + v.z) : super.add(v);\n }\n addTo(v) {\n super.addTo(v);\n if (v instanceof Vector3d) {\n this.z += v.z;\n }\n }\n sub(v) {\n return v instanceof Vector3d ? Vector3d.create(this.x - v.x, this.y - v.y, this.z - v.z) : super.sub(v);\n }\n subFrom(v) {\n super.subFrom(v);\n if (v instanceof Vector3d) {\n this.z -= v.z;\n }\n }\n mult(n) {\n return Vector3d.create(this.x * n, this.y * n, this.z * n);\n }\n multTo(n) {\n super.multTo(n);\n this.z *= n;\n }\n div(n) {\n return Vector3d.create(this.x / n, this.y / n, this.z / n);\n }\n divTo(n) {\n super.divTo(n);\n this.z /= n;\n }\n copy() {\n return Vector3d.clone(this);\n }\n setTo(v) {\n super.setTo(v);\n if (v instanceof Vector3d) {\n this.z = v.z;\n }\n }\n}\nexports.Vector3d = Vector3d;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9QYXJ0aWNsZS9WZWN0b3IzZC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxnQkFBZ0I7QUFDaEIsaUJBQWlCLG1CQUFPLENBQUMsb0VBQVU7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9QYXJ0aWNsZS9WZWN0b3IzZC5qcz9hODI2Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5WZWN0b3IzZCA9IHZvaWQgMDtcbmNvbnN0IFZlY3Rvcl8xID0gcmVxdWlyZShcIi4vVmVjdG9yXCIpO1xuY2xhc3MgVmVjdG9yM2QgZXh0ZW5kcyBWZWN0b3JfMS5WZWN0b3Ige1xuICAgIGNvbnN0cnVjdG9yKHgsIHksIHopIHtcbiAgICAgICAgc3VwZXIoeCwgeSk7XG4gICAgICAgIHRoaXMueiA9IHogPT09IHVuZGVmaW5lZCA/IHgueiA6IHo7XG4gICAgfVxuICAgIHN0YXRpYyBjbG9uZShzb3VyY2UpIHtcbiAgICAgICAgcmV0dXJuIFZlY3RvcjNkLmNyZWF0ZShzb3VyY2UueCwgc291cmNlLnksIHNvdXJjZS56KTtcbiAgICB9XG4gICAgc3RhdGljIGNyZWF0ZSh4LCB5LCB6KSB7XG4gICAgICAgIHJldHVybiBuZXcgVmVjdG9yM2QoeCwgeSwgeik7XG4gICAgfVxuICAgIGFkZCh2KSB7XG4gICAgICAgIHJldHVybiB2IGluc3RhbmNlb2YgVmVjdG9yM2QgPyBWZWN0b3IzZC5jcmVhdGUodGhpcy54ICsgdi54LCB0aGlzLnkgKyB2LnksIHRoaXMueiArIHYueikgOiBzdXBlci5hZGQodik7XG4gICAgfVxuICAgIGFkZFRvKHYpIHtcbiAgICAgICAgc3VwZXIuYWRkVG8odik7XG4gICAgICAgIGlmICh2IGluc3RhbmNlb2YgVmVjdG9yM2QpIHtcbiAgICAgICAgICAgIHRoaXMueiArPSB2Lno7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3ViKHYpIHtcbiAgICAgICAgcmV0dXJuIHYgaW5zdGFuY2VvZiBWZWN0b3IzZCA/IFZlY3RvcjNkLmNyZWF0ZSh0aGlzLnggLSB2LngsIHRoaXMueSAtIHYueSwgdGhpcy56IC0gdi56KSA6IHN1cGVyLnN1Yih2KTtcbiAgICB9XG4gICAgc3ViRnJvbSh2KSB7XG4gICAgICAgIHN1cGVyLnN1YkZyb20odik7XG4gICAgICAgIGlmICh2IGluc3RhbmNlb2YgVmVjdG9yM2QpIHtcbiAgICAgICAgICAgIHRoaXMueiAtPSB2Lno7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbXVsdChuKSB7XG4gICAgICAgIHJldHVybiBWZWN0b3IzZC5jcmVhdGUodGhpcy54ICogbiwgdGhpcy55ICogbiwgdGhpcy56ICogbik7XG4gICAgfVxuICAgIG11bHRUbyhuKSB7XG4gICAgICAgIHN1cGVyLm11bHRUbyhuKTtcbiAgICAgICAgdGhpcy56ICo9IG47XG4gICAgfVxuICAgIGRpdihuKSB7XG4gICAgICAgIHJldHVybiBWZWN0b3IzZC5jcmVhdGUodGhpcy54IC8gbiwgdGhpcy55IC8gbiwgdGhpcy56IC8gbik7XG4gICAgfVxuICAgIGRpdlRvKG4pIHtcbiAgICAgICAgc3VwZXIuZGl2VG8obik7XG4gICAgICAgIHRoaXMueiAvPSBuO1xuICAgIH1cbiAgICBjb3B5KCkge1xuICAgICAgICByZXR1cm4gVmVjdG9yM2QuY2xvbmUodGhpcyk7XG4gICAgfVxuICAgIHNldFRvKHYpIHtcbiAgICAgICAgc3VwZXIuc2V0VG8odik7XG4gICAgICAgIGlmICh2IGluc3RhbmNlb2YgVmVjdG9yM2QpIHtcbiAgICAgICAgICAgIHRoaXMueiA9IHYuejtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuVmVjdG9yM2QgPSBWZWN0b3IzZDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Particle/Vector3d.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Particles.js": +/*!****************************************************!*\ + !*** ./node_modules/tsparticles/Core/Particles.js ***! + \****************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Particles = void 0;\nconst Particle_1 = __webpack_require__(/*! ./Particle */ \"./node_modules/tsparticles/Core/Particle.js\");\nconst Utils_1 = __webpack_require__(/*! ../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst InteractionManager_1 = __webpack_require__(/*! ./InteractionManager */ \"./node_modules/tsparticles/Core/InteractionManager.js\");\nconst ParticlesOptions_1 = __webpack_require__(/*! ../Options/Classes/Particles/ParticlesOptions */ \"./node_modules/tsparticles/Options/Classes/Particles/ParticlesOptions.js\");\nconst Mover_1 = __webpack_require__(/*! ./Particle/Mover */ \"./node_modules/tsparticles/Core/Particle/Mover.js\");\nclass Particles {\n constructor(container) {\n this.container = container;\n this.nextId = 0;\n this.array = [];\n this.zArray = [];\n this.mover = new Mover_1.Mover(container);\n this.limit = 0;\n this.needsSort = false;\n this.lastZIndex = 0;\n this.freqs = {\n links: new Map(),\n triangles: new Map(),\n };\n this.interactionManager = new InteractionManager_1.InteractionManager(container);\n const canvasSize = this.container.canvas.size;\n this.linksColors = new Map();\n this.quadTree = new Utils_1.QuadTree(new Utils_1.Rectangle(-canvasSize.width / 4, -canvasSize.height / 4, (canvasSize.width * 3) / 2, (canvasSize.height * 3) / 2), 4);\n this.updaters = Utils_1.Plugins.getUpdaters(container, true);\n }\n get count() {\n return this.array.length;\n }\n init() {\n var _a;\n const container = this.container;\n const options = container.actualOptions;\n this.lastZIndex = 0;\n this.needsSort = false;\n this.freqs.links = new Map();\n this.freqs.triangles = new Map();\n let handled = false;\n this.updaters = Utils_1.Plugins.getUpdaters(container, true);\n this.interactionManager.init();\n for (const [, plugin] of container.plugins) {\n if (plugin.particlesInitialization !== undefined) {\n handled = plugin.particlesInitialization();\n }\n if (handled) {\n break;\n }\n }\n this.addManualParticles();\n if (!handled) {\n for (const group in options.particles.groups) {\n const groupOptions = options.particles.groups[group];\n for (let i = this.count, j = 0; j < ((_a = groupOptions.number) === null || _a === void 0 ? void 0 : _a.value) && i < options.particles.number.value; i++, j++) {\n this.addParticle(undefined, groupOptions, group);\n }\n }\n for (let i = this.count; i < options.particles.number.value; i++) {\n this.addParticle();\n }\n }\n container.pathGenerator.init(container);\n }\n redraw() {\n this.clear();\n this.init();\n this.draw({ value: 0, factor: 0 });\n }\n removeAt(index, quantity = 1, group, override) {\n if (!(index >= 0 && index <= this.count)) {\n return;\n }\n let deleted = 0;\n for (let i = index; deleted < quantity && i < this.count; i++) {\n const particle = this.array[i];\n if (!particle || particle.group !== group) {\n continue;\n }\n particle.destroy(override);\n this.array.splice(i--, 1);\n const zIdx = this.zArray.indexOf(particle);\n this.zArray.splice(zIdx, 1);\n deleted++;\n }\n }\n remove(particle, group, override) {\n this.removeAt(this.array.indexOf(particle), undefined, group, override);\n }\n update(delta) {\n const container = this.container;\n const particlesToDelete = [];\n container.pathGenerator.update();\n for (const [, plugin] of container.plugins) {\n if (plugin.update !== undefined) {\n plugin.update(delta);\n }\n }\n for (const particle of this.array) {\n const resizeFactor = container.canvas.resizeFactor;\n if (resizeFactor) {\n particle.position.x *= resizeFactor.width;\n particle.position.y *= resizeFactor.height;\n }\n particle.bubble.inRange = false;\n for (const [, plugin] of this.container.plugins) {\n if (particle.destroyed) {\n break;\n }\n if (plugin.particleUpdate) {\n plugin.particleUpdate(particle, delta);\n }\n }\n this.mover.move(particle, delta);\n if (particle.destroyed) {\n particlesToDelete.push(particle);\n continue;\n }\n this.quadTree.insert(new Utils_1.Point(particle.getPosition(), particle));\n }\n for (const particle of particlesToDelete) {\n this.remove(particle);\n }\n this.interactionManager.externalInteract(delta);\n for (const particle of container.particles.array) {\n for (const updater of this.updaters) {\n updater.update(particle, delta);\n }\n if (!particle.destroyed && !particle.spawning) {\n this.interactionManager.particlesInteract(particle, delta);\n }\n }\n delete container.canvas.resizeFactor;\n }\n draw(delta) {\n const container = this.container;\n container.canvas.clear();\n const canvasSize = this.container.canvas.size;\n this.quadTree = new Utils_1.QuadTree(new Utils_1.Rectangle(-canvasSize.width / 4, -canvasSize.height / 4, (canvasSize.width * 3) / 2, (canvasSize.height * 3) / 2), 4);\n this.update(delta);\n if (this.needsSort) {\n this.zArray.sort((a, b) => b.position.z - a.position.z || a.id - b.id);\n this.lastZIndex = this.zArray[this.zArray.length - 1].position.z;\n this.needsSort = false;\n }\n for (const [, plugin] of container.plugins) {\n container.canvas.drawPlugin(plugin, delta);\n }\n for (const p of this.zArray) {\n p.draw(delta);\n }\n }\n clear() {\n this.array = [];\n this.zArray = [];\n }\n push(nb, mouse, overrideOptions, group) {\n this.pushing = true;\n for (let i = 0; i < nb; i++) {\n this.addParticle(mouse === null || mouse === void 0 ? void 0 : mouse.position, overrideOptions, group);\n }\n this.pushing = false;\n }\n addParticle(position, overrideOptions, group) {\n const container = this.container;\n const options = container.actualOptions;\n const limit = options.particles.number.limit * container.density;\n if (limit > 0) {\n const countToRemove = this.count + 1 - limit;\n if (countToRemove > 0) {\n this.removeQuantity(countToRemove);\n }\n }\n return this.pushParticle(position, overrideOptions, group);\n }\n addSplitParticle(parent) {\n const splitOptions = parent.options.destroy.split;\n const options = new ParticlesOptions_1.ParticlesOptions();\n options.load(parent.options);\n const factor = (0, Utils_1.getRangeValue)(splitOptions.factor.value);\n options.color.load({\n value: {\n hsl: parent.getFillColor(),\n },\n });\n if (typeof options.size.value === \"number\") {\n options.size.value /= factor;\n }\n else {\n options.size.value.min /= factor;\n options.size.value.max /= factor;\n }\n options.load(splitOptions.particles);\n const offset = splitOptions.sizeOffset ? (0, Utils_1.setRangeValue)(-parent.size.value, parent.size.value) : 0;\n const position = {\n x: parent.position.x + (0, Utils_1.randomInRange)(offset),\n y: parent.position.y + (0, Utils_1.randomInRange)(offset),\n };\n return this.pushParticle(position, options, parent.group, (particle) => {\n if (particle.size.value < 0.5) {\n return false;\n }\n particle.velocity.length = (0, Utils_1.randomInRange)((0, Utils_1.setRangeValue)(parent.velocity.length, particle.velocity.length));\n particle.splitCount = parent.splitCount + 1;\n particle.unbreakable = true;\n setTimeout(() => {\n particle.unbreakable = false;\n }, 500);\n return true;\n });\n }\n removeQuantity(quantity, group) {\n this.removeAt(0, quantity, group);\n }\n getLinkFrequency(p1, p2) {\n const key = `${Math.min(p1.id, p2.id)}_${Math.max(p1.id, p2.id)}`;\n let res = this.freqs.links.get(key);\n if (res === undefined) {\n res = Math.random();\n this.freqs.links.set(key, res);\n }\n return res;\n }\n getTriangleFrequency(p1, p2, p3) {\n let [id1, id2, id3] = [p1.id, p2.id, p3.id];\n if (id1 > id2) {\n [id2, id1] = [id1, id2];\n }\n if (id2 > id3) {\n [id3, id2] = [id2, id3];\n }\n if (id1 > id3) {\n [id3, id1] = [id1, id3];\n }\n const key = `${id1}_${id2}_${id3}`;\n let res = this.freqs.triangles.get(key);\n if (res === undefined) {\n res = Math.random();\n this.freqs.triangles.set(key, res);\n }\n return res;\n }\n addManualParticles() {\n const container = this.container;\n const options = container.actualOptions;\n for (const particle of options.manualParticles) {\n const pos = particle.position\n ? {\n x: (particle.position.x * container.canvas.size.width) / 100,\n y: (particle.position.y * container.canvas.size.height) / 100,\n }\n : undefined;\n this.addParticle(pos, particle.options);\n }\n }\n setDensity() {\n const options = this.container.actualOptions;\n for (const group in options.particles.groups) {\n this.applyDensity(options.particles.groups[group], 0, group);\n }\n this.applyDensity(options.particles, options.manualParticles.length);\n }\n applyDensity(options, manualCount, group) {\n var _a;\n if (!((_a = options.number.density) === null || _a === void 0 ? void 0 : _a.enable)) {\n return;\n }\n const numberOptions = options.number;\n const densityFactor = this.initDensityFactor(numberOptions.density);\n const optParticlesNumber = numberOptions.value;\n const optParticlesLimit = numberOptions.limit > 0 ? numberOptions.limit : optParticlesNumber;\n const particlesNumber = Math.min(optParticlesNumber, optParticlesLimit) * densityFactor + manualCount;\n const particlesCount = Math.min(this.count, this.array.filter((t) => t.group === group).length);\n this.limit = numberOptions.limit * densityFactor;\n if (particlesCount < particlesNumber) {\n this.push(Math.abs(particlesNumber - particlesCount), undefined, options, group);\n }\n else if (particlesCount > particlesNumber) {\n this.removeQuantity(particlesCount - particlesNumber, group);\n }\n }\n initDensityFactor(densityOptions) {\n const container = this.container;\n if (!container.canvas.element || !densityOptions.enable) {\n return 1;\n }\n const canvas = container.canvas.element;\n const pxRatio = container.retina.pixelRatio;\n return (canvas.width * canvas.height) / (densityOptions.factor * pxRatio ** 2 * densityOptions.area);\n }\n pushParticle(position, overrideOptions, group, initializer) {\n try {\n const particle = new Particle_1.Particle(this.nextId, this.container, position, overrideOptions, group);\n let canAdd = true;\n if (initializer) {\n canAdd = initializer(particle);\n }\n if (!canAdd) {\n return;\n }\n this.array.push(particle);\n this.zArray.push(particle);\n this.nextId++;\n return particle;\n }\n catch (e) {\n console.warn(`error adding particle: ${e}`);\n return;\n }\n }\n}\nexports.Particles = Particles;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9QYXJ0aWNsZXMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsaUJBQWlCO0FBQ2pCLG1CQUFtQixtQkFBTyxDQUFDLCtEQUFZO0FBQ3ZDLGdCQUFnQixtQkFBTyxDQUFDLDJEQUFVO0FBQ2xDLDZCQUE2QixtQkFBTyxDQUFDLG1GQUFzQjtBQUMzRCwyQkFBMkIsbUJBQU8sQ0FBQywrSEFBK0M7QUFDbEYsZ0JBQWdCLG1CQUFPLENBQUMsMkVBQWtCO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0RBQWdELHNIQUFzSDtBQUN0SztBQUNBO0FBQ0E7QUFDQSxxQ0FBcUMsb0NBQW9DO0FBQ3pFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IscUJBQXFCO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QixzQ0FBc0M7QUFDbEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixRQUFRO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYixTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1Qix1QkFBdUIsR0FBRyx1QkFBdUI7QUFDeEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSTtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbURBQW1ELEVBQUU7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0NvcmUvUGFydGljbGVzLmpzPzlhMTkiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlBhcnRpY2xlcyA9IHZvaWQgMDtcbmNvbnN0IFBhcnRpY2xlXzEgPSByZXF1aXJlKFwiLi9QYXJ0aWNsZVwiKTtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vVXRpbHNcIik7XG5jb25zdCBJbnRlcmFjdGlvbk1hbmFnZXJfMSA9IHJlcXVpcmUoXCIuL0ludGVyYWN0aW9uTWFuYWdlclwiKTtcbmNvbnN0IFBhcnRpY2xlc09wdGlvbnNfMSA9IHJlcXVpcmUoXCIuLi9PcHRpb25zL0NsYXNzZXMvUGFydGljbGVzL1BhcnRpY2xlc09wdGlvbnNcIik7XG5jb25zdCBNb3Zlcl8xID0gcmVxdWlyZShcIi4vUGFydGljbGUvTW92ZXJcIik7XG5jbGFzcyBQYXJ0aWNsZXMge1xuICAgIGNvbnN0cnVjdG9yKGNvbnRhaW5lcikge1xuICAgICAgICB0aGlzLmNvbnRhaW5lciA9IGNvbnRhaW5lcjtcbiAgICAgICAgdGhpcy5uZXh0SWQgPSAwO1xuICAgICAgICB0aGlzLmFycmF5ID0gW107XG4gICAgICAgIHRoaXMuekFycmF5ID0gW107XG4gICAgICAgIHRoaXMubW92ZXIgPSBuZXcgTW92ZXJfMS5Nb3Zlcihjb250YWluZXIpO1xuICAgICAgICB0aGlzLmxpbWl0ID0gMDtcbiAgICAgICAgdGhpcy5uZWVkc1NvcnQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5sYXN0WkluZGV4ID0gMDtcbiAgICAgICAgdGhpcy5mcmVxcyA9IHtcbiAgICAgICAgICAgIGxpbmtzOiBuZXcgTWFwKCksXG4gICAgICAgICAgICB0cmlhbmdsZXM6IG5ldyBNYXAoKSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5pbnRlcmFjdGlvbk1hbmFnZXIgPSBuZXcgSW50ZXJhY3Rpb25NYW5hZ2VyXzEuSW50ZXJhY3Rpb25NYW5hZ2VyKGNvbnRhaW5lcik7XG4gICAgICAgIGNvbnN0IGNhbnZhc1NpemUgPSB0aGlzLmNvbnRhaW5lci5jYW52YXMuc2l6ZTtcbiAgICAgICAgdGhpcy5saW5rc0NvbG9ycyA9IG5ldyBNYXAoKTtcbiAgICAgICAgdGhpcy5xdWFkVHJlZSA9IG5ldyBVdGlsc18xLlF1YWRUcmVlKG5ldyBVdGlsc18xLlJlY3RhbmdsZSgtY2FudmFzU2l6ZS53aWR0aCAvIDQsIC1jYW52YXNTaXplLmhlaWdodCAvIDQsIChjYW52YXNTaXplLndpZHRoICogMykgLyAyLCAoY2FudmFzU2l6ZS5oZWlnaHQgKiAzKSAvIDIpLCA0KTtcbiAgICAgICAgdGhpcy51cGRhdGVycyA9IFV0aWxzXzEuUGx1Z2lucy5nZXRVcGRhdGVycyhjb250YWluZXIsIHRydWUpO1xuICAgIH1cbiAgICBnZXQgY291bnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFycmF5Lmxlbmd0aDtcbiAgICB9XG4gICAgaW5pdCgpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IGNvbnRhaW5lci5hY3R1YWxPcHRpb25zO1xuICAgICAgICB0aGlzLmxhc3RaSW5kZXggPSAwO1xuICAgICAgICB0aGlzLm5lZWRzU29ydCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmZyZXFzLmxpbmtzID0gbmV3IE1hcCgpO1xuICAgICAgICB0aGlzLmZyZXFzLnRyaWFuZ2xlcyA9IG5ldyBNYXAoKTtcbiAgICAgICAgbGV0IGhhbmRsZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy51cGRhdGVycyA9IFV0aWxzXzEuUGx1Z2lucy5nZXRVcGRhdGVycyhjb250YWluZXIsIHRydWUpO1xuICAgICAgICB0aGlzLmludGVyYWN0aW9uTWFuYWdlci5pbml0KCk7XG4gICAgICAgIGZvciAoY29uc3QgWywgcGx1Z2luXSBvZiBjb250YWluZXIucGx1Z2lucykge1xuICAgICAgICAgICAgaWYgKHBsdWdpbi5wYXJ0aWNsZXNJbml0aWFsaXphdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgaGFuZGxlZCA9IHBsdWdpbi5wYXJ0aWNsZXNJbml0aWFsaXphdGlvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGhhbmRsZWQpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFkZE1hbnVhbFBhcnRpY2xlcygpO1xuICAgICAgICBpZiAoIWhhbmRsZWQpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZ3JvdXAgaW4gb3B0aW9ucy5wYXJ0aWNsZXMuZ3JvdXBzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZ3JvdXBPcHRpb25zID0gb3B0aW9ucy5wYXJ0aWNsZXMuZ3JvdXBzW2dyb3VwXTtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5jb3VudCwgaiA9IDA7IGogPCAoKF9hID0gZ3JvdXBPcHRpb25zLm51bWJlcikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnZhbHVlKSAmJiBpIDwgb3B0aW9ucy5wYXJ0aWNsZXMubnVtYmVyLnZhbHVlOyBpKyssIGorKykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZFBhcnRpY2xlKHVuZGVmaW5lZCwgZ3JvdXBPcHRpb25zLCBncm91cCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuY291bnQ7IGkgPCBvcHRpb25zLnBhcnRpY2xlcy5udW1iZXIudmFsdWU7IGkrKykge1xuICAgICAgICAgICAgICAgIHRoaXMuYWRkUGFydGljbGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb250YWluZXIucGF0aEdlbmVyYXRvci5pbml0KGNvbnRhaW5lcik7XG4gICAgfVxuICAgIHJlZHJhdygpIHtcbiAgICAgICAgdGhpcy5jbGVhcigpO1xuICAgICAgICB0aGlzLmluaXQoKTtcbiAgICAgICAgdGhpcy5kcmF3KHsgdmFsdWU6IDAsIGZhY3RvcjogMCB9KTtcbiAgICB9XG4gICAgcmVtb3ZlQXQoaW5kZXgsIHF1YW50aXR5ID0gMSwgZ3JvdXAsIG92ZXJyaWRlKSB7XG4gICAgICAgIGlmICghKGluZGV4ID49IDAgJiYgaW5kZXggPD0gdGhpcy5jb3VudCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgZGVsZXRlZCA9IDA7XG4gICAgICAgIGZvciAobGV0IGkgPSBpbmRleDsgZGVsZXRlZCA8IHF1YW50aXR5ICYmIGkgPCB0aGlzLmNvdW50OyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcnRpY2xlID0gdGhpcy5hcnJheVtpXTtcbiAgICAgICAgICAgIGlmICghcGFydGljbGUgfHwgcGFydGljbGUuZ3JvdXAgIT09IGdyb3VwKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwYXJ0aWNsZS5kZXN0cm95KG92ZXJyaWRlKTtcbiAgICAgICAgICAgIHRoaXMuYXJyYXkuc3BsaWNlKGktLSwgMSk7XG4gICAgICAgICAgICBjb25zdCB6SWR4ID0gdGhpcy56QXJyYXkuaW5kZXhPZihwYXJ0aWNsZSk7XG4gICAgICAgICAgICB0aGlzLnpBcnJheS5zcGxpY2UoeklkeCwgMSk7XG4gICAgICAgICAgICBkZWxldGVkKys7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmVtb3ZlKHBhcnRpY2xlLCBncm91cCwgb3ZlcnJpZGUpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVBdCh0aGlzLmFycmF5LmluZGV4T2YocGFydGljbGUpLCB1bmRlZmluZWQsIGdyb3VwLCBvdmVycmlkZSk7XG4gICAgfVxuICAgIHVwZGF0ZShkZWx0YSkge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgY29uc3QgcGFydGljbGVzVG9EZWxldGUgPSBbXTtcbiAgICAgICAgY29udGFpbmVyLnBhdGhHZW5lcmF0b3IudXBkYXRlKCk7XG4gICAgICAgIGZvciAoY29uc3QgWywgcGx1Z2luXSBvZiBjb250YWluZXIucGx1Z2lucykge1xuICAgICAgICAgICAgaWYgKHBsdWdpbi51cGRhdGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHBsdWdpbi51cGRhdGUoZGVsdGEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgcGFydGljbGUgb2YgdGhpcy5hcnJheSkge1xuICAgICAgICAgICAgY29uc3QgcmVzaXplRmFjdG9yID0gY29udGFpbmVyLmNhbnZhcy5yZXNpemVGYWN0b3I7XG4gICAgICAgICAgICBpZiAocmVzaXplRmFjdG9yKSB7XG4gICAgICAgICAgICAgICAgcGFydGljbGUucG9zaXRpb24ueCAqPSByZXNpemVGYWN0b3Iud2lkdGg7XG4gICAgICAgICAgICAgICAgcGFydGljbGUucG9zaXRpb24ueSAqPSByZXNpemVGYWN0b3IuaGVpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGFydGljbGUuYnViYmxlLmluUmFuZ2UgPSBmYWxzZTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgWywgcGx1Z2luXSBvZiB0aGlzLmNvbnRhaW5lci5wbHVnaW5zKSB7XG4gICAgICAgICAgICAgICAgaWYgKHBhcnRpY2xlLmRlc3Ryb3llZCkge1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHBsdWdpbi5wYXJ0aWNsZVVwZGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICBwbHVnaW4ucGFydGljbGVVcGRhdGUocGFydGljbGUsIGRlbHRhKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLm1vdmVyLm1vdmUocGFydGljbGUsIGRlbHRhKTtcbiAgICAgICAgICAgIGlmIChwYXJ0aWNsZS5kZXN0cm95ZWQpIHtcbiAgICAgICAgICAgICAgICBwYXJ0aWNsZXNUb0RlbGV0ZS5wdXNoKHBhcnRpY2xlKTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMucXVhZFRyZWUuaW5zZXJ0KG5ldyBVdGlsc18xLlBvaW50KHBhcnRpY2xlLmdldFBvc2l0aW9uKCksIHBhcnRpY2xlKSk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBwYXJ0aWNsZSBvZiBwYXJ0aWNsZXNUb0RlbGV0ZSkge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmUocGFydGljbGUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW50ZXJhY3Rpb25NYW5hZ2VyLmV4dGVybmFsSW50ZXJhY3QoZGVsdGEpO1xuICAgICAgICBmb3IgKGNvbnN0IHBhcnRpY2xlIG9mIGNvbnRhaW5lci5wYXJ0aWNsZXMuYXJyYXkpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgdXBkYXRlciBvZiB0aGlzLnVwZGF0ZXJzKSB7XG4gICAgICAgICAgICAgICAgdXBkYXRlci51cGRhdGUocGFydGljbGUsIGRlbHRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghcGFydGljbGUuZGVzdHJveWVkICYmICFwYXJ0aWNsZS5zcGF3bmluZykge1xuICAgICAgICAgICAgICAgIHRoaXMuaW50ZXJhY3Rpb25NYW5hZ2VyLnBhcnRpY2xlc0ludGVyYWN0KHBhcnRpY2xlLCBkZWx0YSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZGVsZXRlIGNvbnRhaW5lci5jYW52YXMucmVzaXplRmFjdG9yO1xuICAgIH1cbiAgICBkcmF3KGRlbHRhKSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyO1xuICAgICAgICBjb250YWluZXIuY2FudmFzLmNsZWFyKCk7XG4gICAgICAgIGNvbnN0IGNhbnZhc1NpemUgPSB0aGlzLmNvbnRhaW5lci5jYW52YXMuc2l6ZTtcbiAgICAgICAgdGhpcy5xdWFkVHJlZSA9IG5ldyBVdGlsc18xLlF1YWRUcmVlKG5ldyBVdGlsc18xLlJlY3RhbmdsZSgtY2FudmFzU2l6ZS53aWR0aCAvIDQsIC1jYW52YXNTaXplLmhlaWdodCAvIDQsIChjYW52YXNTaXplLndpZHRoICogMykgLyAyLCAoY2FudmFzU2l6ZS5oZWlnaHQgKiAzKSAvIDIpLCA0KTtcbiAgICAgICAgdGhpcy51cGRhdGUoZGVsdGEpO1xuICAgICAgICBpZiAodGhpcy5uZWVkc1NvcnQpIHtcbiAgICAgICAgICAgIHRoaXMuekFycmF5LnNvcnQoKGEsIGIpID0+IGIucG9zaXRpb24ueiAtIGEucG9zaXRpb24ueiB8fCBhLmlkIC0gYi5pZCk7XG4gICAgICAgICAgICB0aGlzLmxhc3RaSW5kZXggPSB0aGlzLnpBcnJheVt0aGlzLnpBcnJheS5sZW5ndGggLSAxXS5wb3NpdGlvbi56O1xuICAgICAgICAgICAgdGhpcy5uZWVkc1NvcnQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IFssIHBsdWdpbl0gb2YgY29udGFpbmVyLnBsdWdpbnMpIHtcbiAgICAgICAgICAgIGNvbnRhaW5lci5jYW52YXMuZHJhd1BsdWdpbihwbHVnaW4sIGRlbHRhKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IHAgb2YgdGhpcy56QXJyYXkpIHtcbiAgICAgICAgICAgIHAuZHJhdyhkZWx0YSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY2xlYXIoKSB7XG4gICAgICAgIHRoaXMuYXJyYXkgPSBbXTtcbiAgICAgICAgdGhpcy56QXJyYXkgPSBbXTtcbiAgICB9XG4gICAgcHVzaChuYiwgbW91c2UsIG92ZXJyaWRlT3B0aW9ucywgZ3JvdXApIHtcbiAgICAgICAgdGhpcy5wdXNoaW5nID0gdHJ1ZTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuYjsgaSsrKSB7XG4gICAgICAgICAgICB0aGlzLmFkZFBhcnRpY2xlKG1vdXNlID09PSBudWxsIHx8IG1vdXNlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBtb3VzZS5wb3NpdGlvbiwgb3ZlcnJpZGVPcHRpb25zLCBncm91cCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wdXNoaW5nID0gZmFsc2U7XG4gICAgfVxuICAgIGFkZFBhcnRpY2xlKHBvc2l0aW9uLCBvdmVycmlkZU9wdGlvbnMsIGdyb3VwKSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyO1xuICAgICAgICBjb25zdCBvcHRpb25zID0gY29udGFpbmVyLmFjdHVhbE9wdGlvbnM7XG4gICAgICAgIGNvbnN0IGxpbWl0ID0gb3B0aW9ucy5wYXJ0aWNsZXMubnVtYmVyLmxpbWl0ICogY29udGFpbmVyLmRlbnNpdHk7XG4gICAgICAgIGlmIChsaW1pdCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGNvdW50VG9SZW1vdmUgPSB0aGlzLmNvdW50ICsgMSAtIGxpbWl0O1xuICAgICAgICAgICAgaWYgKGNvdW50VG9SZW1vdmUgPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVRdWFudGl0eShjb3VudFRvUmVtb3ZlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5wdXNoUGFydGljbGUocG9zaXRpb24sIG92ZXJyaWRlT3B0aW9ucywgZ3JvdXApO1xuICAgIH1cbiAgICBhZGRTcGxpdFBhcnRpY2xlKHBhcmVudCkge1xuICAgICAgICBjb25zdCBzcGxpdE9wdGlvbnMgPSBwYXJlbnQub3B0aW9ucy5kZXN0cm95LnNwbGl0O1xuICAgICAgICBjb25zdCBvcHRpb25zID0gbmV3IFBhcnRpY2xlc09wdGlvbnNfMS5QYXJ0aWNsZXNPcHRpb25zKCk7XG4gICAgICAgIG9wdGlvbnMubG9hZChwYXJlbnQub3B0aW9ucyk7XG4gICAgICAgIGNvbnN0IGZhY3RvciA9ICgwLCBVdGlsc18xLmdldFJhbmdlVmFsdWUpKHNwbGl0T3B0aW9ucy5mYWN0b3IudmFsdWUpO1xuICAgICAgICBvcHRpb25zLmNvbG9yLmxvYWQoe1xuICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICBoc2w6IHBhcmVudC5nZXRGaWxsQ29sb3IoKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMuc2l6ZS52YWx1ZSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgb3B0aW9ucy5zaXplLnZhbHVlIC89IGZhY3RvcjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIG9wdGlvbnMuc2l6ZS52YWx1ZS5taW4gLz0gZmFjdG9yO1xuICAgICAgICAgICAgb3B0aW9ucy5zaXplLnZhbHVlLm1heCAvPSBmYWN0b3I7XG4gICAgICAgIH1cbiAgICAgICAgb3B0aW9ucy5sb2FkKHNwbGl0T3B0aW9ucy5wYXJ0aWNsZXMpO1xuICAgICAgICBjb25zdCBvZmZzZXQgPSBzcGxpdE9wdGlvbnMuc2l6ZU9mZnNldCA/ICgwLCBVdGlsc18xLnNldFJhbmdlVmFsdWUpKC1wYXJlbnQuc2l6ZS52YWx1ZSwgcGFyZW50LnNpemUudmFsdWUpIDogMDtcbiAgICAgICAgY29uc3QgcG9zaXRpb24gPSB7XG4gICAgICAgICAgICB4OiBwYXJlbnQucG9zaXRpb24ueCArICgwLCBVdGlsc18xLnJhbmRvbUluUmFuZ2UpKG9mZnNldCksXG4gICAgICAgICAgICB5OiBwYXJlbnQucG9zaXRpb24ueSArICgwLCBVdGlsc18xLnJhbmRvbUluUmFuZ2UpKG9mZnNldCksXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiB0aGlzLnB1c2hQYXJ0aWNsZShwb3NpdGlvbiwgb3B0aW9ucywgcGFyZW50Lmdyb3VwLCAocGFydGljbGUpID0+IHtcbiAgICAgICAgICAgIGlmIChwYXJ0aWNsZS5zaXplLnZhbHVlIDwgMC41KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGFydGljbGUudmVsb2NpdHkubGVuZ3RoID0gKDAsIFV0aWxzXzEucmFuZG9tSW5SYW5nZSkoKDAsIFV0aWxzXzEuc2V0UmFuZ2VWYWx1ZSkocGFyZW50LnZlbG9jaXR5Lmxlbmd0aCwgcGFydGljbGUudmVsb2NpdHkubGVuZ3RoKSk7XG4gICAgICAgICAgICBwYXJ0aWNsZS5zcGxpdENvdW50ID0gcGFyZW50LnNwbGl0Q291bnQgKyAxO1xuICAgICAgICAgICAgcGFydGljbGUudW5icmVha2FibGUgPSB0cnVlO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgcGFydGljbGUudW5icmVha2FibGUgPSBmYWxzZTtcbiAgICAgICAgICAgIH0sIDUwMCk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJlbW92ZVF1YW50aXR5KHF1YW50aXR5LCBncm91cCkge1xuICAgICAgICB0aGlzLnJlbW92ZUF0KDAsIHF1YW50aXR5LCBncm91cCk7XG4gICAgfVxuICAgIGdldExpbmtGcmVxdWVuY3kocDEsIHAyKSB7XG4gICAgICAgIGNvbnN0IGtleSA9IGAke01hdGgubWluKHAxLmlkLCBwMi5pZCl9XyR7TWF0aC5tYXgocDEuaWQsIHAyLmlkKX1gO1xuICAgICAgICBsZXQgcmVzID0gdGhpcy5mcmVxcy5saW5rcy5nZXQoa2V5KTtcbiAgICAgICAgaWYgKHJlcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXMgPSBNYXRoLnJhbmRvbSgpO1xuICAgICAgICAgICAgdGhpcy5mcmVxcy5saW5rcy5zZXQoa2V5LCByZXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuICAgIGdldFRyaWFuZ2xlRnJlcXVlbmN5KHAxLCBwMiwgcDMpIHtcbiAgICAgICAgbGV0IFtpZDEsIGlkMiwgaWQzXSA9IFtwMS5pZCwgcDIuaWQsIHAzLmlkXTtcbiAgICAgICAgaWYgKGlkMSA+IGlkMikge1xuICAgICAgICAgICAgW2lkMiwgaWQxXSA9IFtpZDEsIGlkMl07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlkMiA+IGlkMykge1xuICAgICAgICAgICAgW2lkMywgaWQyXSA9IFtpZDIsIGlkM107XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlkMSA+IGlkMykge1xuICAgICAgICAgICAgW2lkMywgaWQxXSA9IFtpZDEsIGlkM107XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qga2V5ID0gYCR7aWQxfV8ke2lkMn1fJHtpZDN9YDtcbiAgICAgICAgbGV0IHJlcyA9IHRoaXMuZnJlcXMudHJpYW5nbGVzLmdldChrZXkpO1xuICAgICAgICBpZiAocmVzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJlcyA9IE1hdGgucmFuZG9tKCk7XG4gICAgICAgICAgICB0aGlzLmZyZXFzLnRyaWFuZ2xlcy5zZXQoa2V5LCByZXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuICAgIGFkZE1hbnVhbFBhcnRpY2xlcygpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXI7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSBjb250YWluZXIuYWN0dWFsT3B0aW9ucztcbiAgICAgICAgZm9yIChjb25zdCBwYXJ0aWNsZSBvZiBvcHRpb25zLm1hbnVhbFBhcnRpY2xlcykge1xuICAgICAgICAgICAgY29uc3QgcG9zID0gcGFydGljbGUucG9zaXRpb25cbiAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgeDogKHBhcnRpY2xlLnBvc2l0aW9uLnggKiBjb250YWluZXIuY2FudmFzLnNpemUud2lkdGgpIC8gMTAwLFxuICAgICAgICAgICAgICAgICAgICB5OiAocGFydGljbGUucG9zaXRpb24ueSAqIGNvbnRhaW5lci5jYW52YXMuc2l6ZS5oZWlnaHQpIC8gMTAwLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHRoaXMuYWRkUGFydGljbGUocG9zLCBwYXJ0aWNsZS5vcHRpb25zKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzZXREZW5zaXR5KCkge1xuICAgICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5jb250YWluZXIuYWN0dWFsT3B0aW9ucztcbiAgICAgICAgZm9yIChjb25zdCBncm91cCBpbiBvcHRpb25zLnBhcnRpY2xlcy5ncm91cHMpIHtcbiAgICAgICAgICAgIHRoaXMuYXBwbHlEZW5zaXR5KG9wdGlvbnMucGFydGljbGVzLmdyb3Vwc1tncm91cF0sIDAsIGdyb3VwKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFwcGx5RGVuc2l0eShvcHRpb25zLnBhcnRpY2xlcywgb3B0aW9ucy5tYW51YWxQYXJ0aWNsZXMubGVuZ3RoKTtcbiAgICB9XG4gICAgYXBwbHlEZW5zaXR5KG9wdGlvbnMsIG1hbnVhbENvdW50LCBncm91cCkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICghKChfYSA9IG9wdGlvbnMubnVtYmVyLmRlbnNpdHkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5lbmFibGUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbnVtYmVyT3B0aW9ucyA9IG9wdGlvbnMubnVtYmVyO1xuICAgICAgICBjb25zdCBkZW5zaXR5RmFjdG9yID0gdGhpcy5pbml0RGVuc2l0eUZhY3RvcihudW1iZXJPcHRpb25zLmRlbnNpdHkpO1xuICAgICAgICBjb25zdCBvcHRQYXJ0aWNsZXNOdW1iZXIgPSBudW1iZXJPcHRpb25zLnZhbHVlO1xuICAgICAgICBjb25zdCBvcHRQYXJ0aWNsZXNMaW1pdCA9IG51bWJlck9wdGlvbnMubGltaXQgPiAwID8gbnVtYmVyT3B0aW9ucy5saW1pdCA6IG9wdFBhcnRpY2xlc051bWJlcjtcbiAgICAgICAgY29uc3QgcGFydGljbGVzTnVtYmVyID0gTWF0aC5taW4ob3B0UGFydGljbGVzTnVtYmVyLCBvcHRQYXJ0aWNsZXNMaW1pdCkgKiBkZW5zaXR5RmFjdG9yICsgbWFudWFsQ291bnQ7XG4gICAgICAgIGNvbnN0IHBhcnRpY2xlc0NvdW50ID0gTWF0aC5taW4odGhpcy5jb3VudCwgdGhpcy5hcnJheS5maWx0ZXIoKHQpID0+IHQuZ3JvdXAgPT09IGdyb3VwKS5sZW5ndGgpO1xuICAgICAgICB0aGlzLmxpbWl0ID0gbnVtYmVyT3B0aW9ucy5saW1pdCAqIGRlbnNpdHlGYWN0b3I7XG4gICAgICAgIGlmIChwYXJ0aWNsZXNDb3VudCA8IHBhcnRpY2xlc051bWJlcikge1xuICAgICAgICAgICAgdGhpcy5wdXNoKE1hdGguYWJzKHBhcnRpY2xlc051bWJlciAtIHBhcnRpY2xlc0NvdW50KSwgdW5kZWZpbmVkLCBvcHRpb25zLCBncm91cCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAocGFydGljbGVzQ291bnQgPiBwYXJ0aWNsZXNOdW1iZXIpIHtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlUXVhbnRpdHkocGFydGljbGVzQ291bnQgLSBwYXJ0aWNsZXNOdW1iZXIsIGdyb3VwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpbml0RGVuc2l0eUZhY3RvcihkZW5zaXR5T3B0aW9ucykge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgaWYgKCFjb250YWluZXIuY2FudmFzLmVsZW1lbnQgfHwgIWRlbnNpdHlPcHRpb25zLmVuYWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2FudmFzID0gY29udGFpbmVyLmNhbnZhcy5lbGVtZW50O1xuICAgICAgICBjb25zdCBweFJhdGlvID0gY29udGFpbmVyLnJldGluYS5waXhlbFJhdGlvO1xuICAgICAgICByZXR1cm4gKGNhbnZhcy53aWR0aCAqIGNhbnZhcy5oZWlnaHQpIC8gKGRlbnNpdHlPcHRpb25zLmZhY3RvciAqIHB4UmF0aW8gKiogMiAqIGRlbnNpdHlPcHRpb25zLmFyZWEpO1xuICAgIH1cbiAgICBwdXNoUGFydGljbGUocG9zaXRpb24sIG92ZXJyaWRlT3B0aW9ucywgZ3JvdXAsIGluaXRpYWxpemVyKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBwYXJ0aWNsZSA9IG5ldyBQYXJ0aWNsZV8xLlBhcnRpY2xlKHRoaXMubmV4dElkLCB0aGlzLmNvbnRhaW5lciwgcG9zaXRpb24sIG92ZXJyaWRlT3B0aW9ucywgZ3JvdXApO1xuICAgICAgICAgICAgbGV0IGNhbkFkZCA9IHRydWU7XG4gICAgICAgICAgICBpZiAoaW5pdGlhbGl6ZXIpIHtcbiAgICAgICAgICAgICAgICBjYW5BZGQgPSBpbml0aWFsaXplcihwYXJ0aWNsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWNhbkFkZCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuYXJyYXkucHVzaChwYXJ0aWNsZSk7XG4gICAgICAgICAgICB0aGlzLnpBcnJheS5wdXNoKHBhcnRpY2xlKTtcbiAgICAgICAgICAgIHRoaXMubmV4dElkKys7XG4gICAgICAgICAgICByZXR1cm4gcGFydGljbGU7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgZXJyb3IgYWRkaW5nIHBhcnRpY2xlOiAke2V9YCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLlBhcnRpY2xlcyA9IFBhcnRpY2xlcztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Particles.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/ParticlesInteractorBase.js": +/*!******************************************************************!*\ + !*** ./node_modules/tsparticles/Core/ParticlesInteractorBase.js ***! + \******************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ParticlesInteractorBase = void 0;\nconst Enums_1 = __webpack_require__(/*! ../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nclass ParticlesInteractorBase {\n constructor(container) {\n this.container = container;\n this.type = Enums_1.InteractorType.Particles;\n }\n}\nexports.ParticlesInteractorBase = ParticlesInteractorBase;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9QYXJ0aWNsZXNJbnRlcmFjdG9yQmFzZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCwrQkFBK0I7QUFDL0IsZ0JBQWdCLG1CQUFPLENBQUMsMkRBQVU7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQStCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9Db3JlL1BhcnRpY2xlc0ludGVyYWN0b3JCYXNlLmpzP2EzMjkiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlBhcnRpY2xlc0ludGVyYWN0b3JCYXNlID0gdm9pZCAwO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuLi9FbnVtc1wiKTtcbmNsYXNzIFBhcnRpY2xlc0ludGVyYWN0b3JCYXNlIHtcbiAgICBjb25zdHJ1Y3Rvcihjb250YWluZXIpIHtcbiAgICAgICAgdGhpcy5jb250YWluZXIgPSBjb250YWluZXI7XG4gICAgICAgIHRoaXMudHlwZSA9IEVudW1zXzEuSW50ZXJhY3RvclR5cGUuUGFydGljbGVzO1xuICAgIH1cbn1cbmV4cG9ydHMuUGFydGljbGVzSW50ZXJhY3RvckJhc2UgPSBQYXJ0aWNsZXNJbnRlcmFjdG9yQmFzZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/ParticlesInteractorBase.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Core/Retina.js": +/*!*************************************************!*\ + !*** ./node_modules/tsparticles/Core/Retina.js ***! + \*************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Retina = void 0;\nconst Utils_1 = __webpack_require__(/*! ../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass Retina {\n constructor(container) {\n this.container = container;\n }\n init() {\n const container = this.container;\n const options = container.actualOptions;\n this.pixelRatio = !options.detectRetina || (0, Utils_1.isSsr)() ? 1 : window.devicePixelRatio;\n const motionOptions = this.container.actualOptions.motion;\n if (motionOptions && (motionOptions.disable || motionOptions.reduce.value)) {\n if ((0, Utils_1.isSsr)() || typeof matchMedia === \"undefined\" || !matchMedia) {\n this.reduceFactor = 1;\n }\n else {\n const mediaQuery = matchMedia(\"(prefers-reduced-motion: reduce)\");\n if (mediaQuery) {\n this.handleMotionChange(mediaQuery);\n const handleChange = () => {\n this.handleMotionChange(mediaQuery);\n container.refresh().catch(() => {\n });\n };\n if (mediaQuery.addEventListener !== undefined) {\n mediaQuery.addEventListener(\"change\", handleChange);\n }\n else if (mediaQuery.addListener !== undefined) {\n mediaQuery.addListener(handleChange);\n }\n }\n }\n }\n else {\n this.reduceFactor = 1;\n }\n const ratio = this.pixelRatio;\n if (container.canvas.element) {\n const element = container.canvas.element;\n container.canvas.size.width = element.offsetWidth * ratio;\n container.canvas.size.height = element.offsetHeight * ratio;\n }\n const particles = options.particles;\n this.attractDistance = particles.move.attract.distance * ratio;\n this.linksDistance = particles.links.distance * ratio;\n this.linksWidth = particles.links.width * ratio;\n this.sizeAnimationSpeed = particles.size.animation.speed * ratio;\n this.maxSpeed = particles.move.gravity.maxSpeed * ratio;\n if (particles.orbit.radius !== undefined) {\n this.orbitRadius = particles.orbit.radius * this.container.retina.pixelRatio;\n }\n const modes = options.interactivity.modes;\n this.connectModeDistance = modes.connect.distance * ratio;\n this.connectModeRadius = modes.connect.radius * ratio;\n this.grabModeDistance = modes.grab.distance * ratio;\n this.repulseModeDistance = modes.repulse.distance * ratio;\n this.bounceModeDistance = modes.bounce.distance * ratio;\n this.attractModeDistance = modes.attract.distance * ratio;\n this.slowModeRadius = modes.slow.radius * ratio;\n this.bubbleModeDistance = modes.bubble.distance * ratio;\n if (modes.bubble.size) {\n this.bubbleModeSize = modes.bubble.size * ratio;\n }\n }\n initParticle(particle) {\n const options = particle.options;\n const ratio = this.pixelRatio;\n const moveDistance = options.move.distance;\n const props = particle.retina;\n props.attractDistance = options.move.attract.distance * ratio;\n props.linksDistance = options.links.distance * ratio;\n props.linksWidth = options.links.width * ratio;\n props.moveDrift = (0, Utils_1.getRangeValue)(options.move.drift) * ratio;\n props.moveSpeed = (0, Utils_1.getRangeValue)(options.move.speed) * ratio;\n props.sizeAnimationSpeed = options.size.animation.speed * ratio;\n if (particle.spin) {\n props.spinAcceleration = (0, Utils_1.getRangeValue)(options.move.spin.acceleration) * ratio;\n }\n const maxDistance = props.maxDistance;\n maxDistance.horizontal = moveDistance.horizontal !== undefined ? moveDistance.horizontal * ratio : undefined;\n maxDistance.vertical = moveDistance.vertical !== undefined ? moveDistance.vertical * ratio : undefined;\n props.maxSpeed = options.move.gravity.maxSpeed * ratio;\n }\n handleMotionChange(mediaQuery) {\n const options = this.container.actualOptions;\n if (mediaQuery.matches) {\n const motion = options.motion;\n this.reduceFactor = motion.disable ? 0 : motion.reduce.value ? 1 / motion.reduce.factor : 1;\n }\n else {\n this.reduceFactor = 1;\n }\n }\n}\nexports.Retina = Retina;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvQ29yZS9SZXRpbmEuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsY0FBYztBQUNkLGdCQUFnQixtQkFBTyxDQUFDLDJEQUFVO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0NvcmUvUmV0aW5hLmpzPzU4NzAiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlJldGluYSA9IHZvaWQgMDtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vVXRpbHNcIik7XG5jbGFzcyBSZXRpbmEge1xuICAgIGNvbnN0cnVjdG9yKGNvbnRhaW5lcikge1xuICAgICAgICB0aGlzLmNvbnRhaW5lciA9IGNvbnRhaW5lcjtcbiAgICB9XG4gICAgaW5pdCgpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXI7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSBjb250YWluZXIuYWN0dWFsT3B0aW9ucztcbiAgICAgICAgdGhpcy5waXhlbFJhdGlvID0gIW9wdGlvbnMuZGV0ZWN0UmV0aW5hIHx8ICgwLCBVdGlsc18xLmlzU3NyKSgpID8gMSA6IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvO1xuICAgICAgICBjb25zdCBtb3Rpb25PcHRpb25zID0gdGhpcy5jb250YWluZXIuYWN0dWFsT3B0aW9ucy5tb3Rpb247XG4gICAgICAgIGlmIChtb3Rpb25PcHRpb25zICYmIChtb3Rpb25PcHRpb25zLmRpc2FibGUgfHwgbW90aW9uT3B0aW9ucy5yZWR1Y2UudmFsdWUpKSB7XG4gICAgICAgICAgICBpZiAoKDAsIFV0aWxzXzEuaXNTc3IpKCkgfHwgdHlwZW9mIG1hdGNoTWVkaWEgPT09IFwidW5kZWZpbmVkXCIgfHwgIW1hdGNoTWVkaWEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlZHVjZUZhY3RvciA9IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtZWRpYVF1ZXJ5ID0gbWF0Y2hNZWRpYShcIihwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpXCIpO1xuICAgICAgICAgICAgICAgIGlmIChtZWRpYVF1ZXJ5KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlTW90aW9uQ2hhbmdlKG1lZGlhUXVlcnkpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBoYW5kbGVDaGFuZ2UgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZU1vdGlvbkNoYW5nZShtZWRpYVF1ZXJ5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lci5yZWZyZXNoKCkuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGlmIChtZWRpYVF1ZXJ5LmFkZEV2ZW50TGlzdGVuZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWVkaWFRdWVyeS5hZGRFdmVudExpc3RlbmVyKFwiY2hhbmdlXCIsIGhhbmRsZUNoYW5nZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAobWVkaWFRdWVyeS5hZGRMaXN0ZW5lciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtZWRpYVF1ZXJ5LmFkZExpc3RlbmVyKGhhbmRsZUNoYW5nZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJlZHVjZUZhY3RvciA9IDE7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmF0aW8gPSB0aGlzLnBpeGVsUmF0aW87XG4gICAgICAgIGlmIChjb250YWluZXIuY2FudmFzLmVsZW1lbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBjb250YWluZXIuY2FudmFzLmVsZW1lbnQ7XG4gICAgICAgICAgICBjb250YWluZXIuY2FudmFzLnNpemUud2lkdGggPSBlbGVtZW50Lm9mZnNldFdpZHRoICogcmF0aW87XG4gICAgICAgICAgICBjb250YWluZXIuY2FudmFzLnNpemUuaGVpZ2h0ID0gZWxlbWVudC5vZmZzZXRIZWlnaHQgKiByYXRpbztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYXJ0aWNsZXMgPSBvcHRpb25zLnBhcnRpY2xlcztcbiAgICAgICAgdGhpcy5hdHRyYWN0RGlzdGFuY2UgPSBwYXJ0aWNsZXMubW92ZS5hdHRyYWN0LmRpc3RhbmNlICogcmF0aW87XG4gICAgICAgIHRoaXMubGlua3NEaXN0YW5jZSA9IHBhcnRpY2xlcy5saW5rcy5kaXN0YW5jZSAqIHJhdGlvO1xuICAgICAgICB0aGlzLmxpbmtzV2lkdGggPSBwYXJ0aWNsZXMubGlua3Mud2lkdGggKiByYXRpbztcbiAgICAgICAgdGhpcy5zaXplQW5pbWF0aW9uU3BlZWQgPSBwYXJ0aWNsZXMuc2l6ZS5hbmltYXRpb24uc3BlZWQgKiByYXRpbztcbiAgICAgICAgdGhpcy5tYXhTcGVlZCA9IHBhcnRpY2xlcy5tb3ZlLmdyYXZpdHkubWF4U3BlZWQgKiByYXRpbztcbiAgICAgICAgaWYgKHBhcnRpY2xlcy5vcmJpdC5yYWRpdXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5vcmJpdFJhZGl1cyA9IHBhcnRpY2xlcy5vcmJpdC5yYWRpdXMgKiB0aGlzLmNvbnRhaW5lci5yZXRpbmEucGl4ZWxSYXRpbztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtb2RlcyA9IG9wdGlvbnMuaW50ZXJhY3Rpdml0eS5tb2RlcztcbiAgICAgICAgdGhpcy5jb25uZWN0TW9kZURpc3RhbmNlID0gbW9kZXMuY29ubmVjdC5kaXN0YW5jZSAqIHJhdGlvO1xuICAgICAgICB0aGlzLmNvbm5lY3RNb2RlUmFkaXVzID0gbW9kZXMuY29ubmVjdC5yYWRpdXMgKiByYXRpbztcbiAgICAgICAgdGhpcy5ncmFiTW9kZURpc3RhbmNlID0gbW9kZXMuZ3JhYi5kaXN0YW5jZSAqIHJhdGlvO1xuICAgICAgICB0aGlzLnJlcHVsc2VNb2RlRGlzdGFuY2UgPSBtb2Rlcy5yZXB1bHNlLmRpc3RhbmNlICogcmF0aW87XG4gICAgICAgIHRoaXMuYm91bmNlTW9kZURpc3RhbmNlID0gbW9kZXMuYm91bmNlLmRpc3RhbmNlICogcmF0aW87XG4gICAgICAgIHRoaXMuYXR0cmFjdE1vZGVEaXN0YW5jZSA9IG1vZGVzLmF0dHJhY3QuZGlzdGFuY2UgKiByYXRpbztcbiAgICAgICAgdGhpcy5zbG93TW9kZVJhZGl1cyA9IG1vZGVzLnNsb3cucmFkaXVzICogcmF0aW87XG4gICAgICAgIHRoaXMuYnViYmxlTW9kZURpc3RhbmNlID0gbW9kZXMuYnViYmxlLmRpc3RhbmNlICogcmF0aW87XG4gICAgICAgIGlmIChtb2Rlcy5idWJibGUuc2l6ZSkge1xuICAgICAgICAgICAgdGhpcy5idWJibGVNb2RlU2l6ZSA9IG1vZGVzLmJ1YmJsZS5zaXplICogcmF0aW87XG4gICAgICAgIH1cbiAgICB9XG4gICAgaW5pdFBhcnRpY2xlKHBhcnRpY2xlKSB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSBwYXJ0aWNsZS5vcHRpb25zO1xuICAgICAgICBjb25zdCByYXRpbyA9IHRoaXMucGl4ZWxSYXRpbztcbiAgICAgICAgY29uc3QgbW92ZURpc3RhbmNlID0gb3B0aW9ucy5tb3ZlLmRpc3RhbmNlO1xuICAgICAgICBjb25zdCBwcm9wcyA9IHBhcnRpY2xlLnJldGluYTtcbiAgICAgICAgcHJvcHMuYXR0cmFjdERpc3RhbmNlID0gb3B0aW9ucy5tb3ZlLmF0dHJhY3QuZGlzdGFuY2UgKiByYXRpbztcbiAgICAgICAgcHJvcHMubGlua3NEaXN0YW5jZSA9IG9wdGlvbnMubGlua3MuZGlzdGFuY2UgKiByYXRpbztcbiAgICAgICAgcHJvcHMubGlua3NXaWR0aCA9IG9wdGlvbnMubGlua3Mud2lkdGggKiByYXRpbztcbiAgICAgICAgcHJvcHMubW92ZURyaWZ0ID0gKDAsIFV0aWxzXzEuZ2V0UmFuZ2VWYWx1ZSkob3B0aW9ucy5tb3ZlLmRyaWZ0KSAqIHJhdGlvO1xuICAgICAgICBwcm9wcy5tb3ZlU3BlZWQgPSAoMCwgVXRpbHNfMS5nZXRSYW5nZVZhbHVlKShvcHRpb25zLm1vdmUuc3BlZWQpICogcmF0aW87XG4gICAgICAgIHByb3BzLnNpemVBbmltYXRpb25TcGVlZCA9IG9wdGlvbnMuc2l6ZS5hbmltYXRpb24uc3BlZWQgKiByYXRpbztcbiAgICAgICAgaWYgKHBhcnRpY2xlLnNwaW4pIHtcbiAgICAgICAgICAgIHByb3BzLnNwaW5BY2NlbGVyYXRpb24gPSAoMCwgVXRpbHNfMS5nZXRSYW5nZVZhbHVlKShvcHRpb25zLm1vdmUuc3Bpbi5hY2NlbGVyYXRpb24pICogcmF0aW87XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbWF4RGlzdGFuY2UgPSBwcm9wcy5tYXhEaXN0YW5jZTtcbiAgICAgICAgbWF4RGlzdGFuY2UuaG9yaXpvbnRhbCA9IG1vdmVEaXN0YW5jZS5ob3Jpem9udGFsICE9PSB1bmRlZmluZWQgPyBtb3ZlRGlzdGFuY2UuaG9yaXpvbnRhbCAqIHJhdGlvIDogdW5kZWZpbmVkO1xuICAgICAgICBtYXhEaXN0YW5jZS52ZXJ0aWNhbCA9IG1vdmVEaXN0YW5jZS52ZXJ0aWNhbCAhPT0gdW5kZWZpbmVkID8gbW92ZURpc3RhbmNlLnZlcnRpY2FsICogcmF0aW8gOiB1bmRlZmluZWQ7XG4gICAgICAgIHByb3BzLm1heFNwZWVkID0gb3B0aW9ucy5tb3ZlLmdyYXZpdHkubWF4U3BlZWQgKiByYXRpbztcbiAgICB9XG4gICAgaGFuZGxlTW90aW9uQ2hhbmdlKG1lZGlhUXVlcnkpIHtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuY29udGFpbmVyLmFjdHVhbE9wdGlvbnM7XG4gICAgICAgIGlmIChtZWRpYVF1ZXJ5Lm1hdGNoZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IG1vdGlvbiA9IG9wdGlvbnMubW90aW9uO1xuICAgICAgICAgICAgdGhpcy5yZWR1Y2VGYWN0b3IgPSBtb3Rpb24uZGlzYWJsZSA/IDAgOiBtb3Rpb24ucmVkdWNlLnZhbHVlID8gMSAvIG1vdGlvbi5yZWR1Y2UuZmFjdG9yIDogMTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucmVkdWNlRmFjdG9yID0gMTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuUmV0aW5hID0gUmV0aW5hO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Core/Retina.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/AnimationStatus.js": +/*!***********************************************************!*\ + !*** ./node_modules/tsparticles/Enums/AnimationStatus.js ***! + \***********************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.AnimationStatus = void 0;\nvar AnimationStatus;\n(function (AnimationStatus) {\n AnimationStatus[AnimationStatus[\"increasing\"] = 0] = \"increasing\";\n AnimationStatus[AnimationStatus[\"decreasing\"] = 1] = \"decreasing\";\n})(AnimationStatus = exports.AnimationStatus || (exports.AnimationStatus = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvQW5pbWF0aW9uU3RhdHVzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsZ0RBQWdELHVCQUF1QixLQUFLIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9FbnVtcy9BbmltYXRpb25TdGF0dXMuanM/MjYxMyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuQW5pbWF0aW9uU3RhdHVzID0gdm9pZCAwO1xudmFyIEFuaW1hdGlvblN0YXR1cztcbihmdW5jdGlvbiAoQW5pbWF0aW9uU3RhdHVzKSB7XG4gICAgQW5pbWF0aW9uU3RhdHVzW0FuaW1hdGlvblN0YXR1c1tcImluY3JlYXNpbmdcIl0gPSAwXSA9IFwiaW5jcmVhc2luZ1wiO1xuICAgIEFuaW1hdGlvblN0YXR1c1tBbmltYXRpb25TdGF0dXNbXCJkZWNyZWFzaW5nXCJdID0gMV0gPSBcImRlY3JlYXNpbmdcIjtcbn0pKEFuaW1hdGlvblN0YXR1cyA9IGV4cG9ydHMuQW5pbWF0aW9uU3RhdHVzIHx8IChleHBvcnRzLkFuaW1hdGlvblN0YXR1cyA9IHt9KSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/AnimationStatus.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Directions/MoveDirection.js": +/*!********************************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Directions/MoveDirection.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.MoveDirection = void 0;\nvar MoveDirection;\n(function (MoveDirection) {\n MoveDirection[\"bottom\"] = \"bottom\";\n MoveDirection[\"bottomLeft\"] = \"bottom-left\";\n MoveDirection[\"bottomRight\"] = \"bottom-right\";\n MoveDirection[\"left\"] = \"left\";\n MoveDirection[\"none\"] = \"none\";\n MoveDirection[\"right\"] = \"right\";\n MoveDirection[\"top\"] = \"top\";\n MoveDirection[\"topLeft\"] = \"top-left\";\n MoveDirection[\"topRight\"] = \"top-right\";\n})(MoveDirection = exports.MoveDirection || (exports.MoveDirection = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvRGlyZWN0aW9ucy9Nb3ZlRGlyZWN0aW9uLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyw0Q0FBNEMscUJBQXFCLEtBQUsiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0VudW1zL0RpcmVjdGlvbnMvTW92ZURpcmVjdGlvbi5qcz9jZWQ4Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Nb3ZlRGlyZWN0aW9uID0gdm9pZCAwO1xudmFyIE1vdmVEaXJlY3Rpb247XG4oZnVuY3Rpb24gKE1vdmVEaXJlY3Rpb24pIHtcbiAgICBNb3ZlRGlyZWN0aW9uW1wiYm90dG9tXCJdID0gXCJib3R0b21cIjtcbiAgICBNb3ZlRGlyZWN0aW9uW1wiYm90dG9tTGVmdFwiXSA9IFwiYm90dG9tLWxlZnRcIjtcbiAgICBNb3ZlRGlyZWN0aW9uW1wiYm90dG9tUmlnaHRcIl0gPSBcImJvdHRvbS1yaWdodFwiO1xuICAgIE1vdmVEaXJlY3Rpb25bXCJsZWZ0XCJdID0gXCJsZWZ0XCI7XG4gICAgTW92ZURpcmVjdGlvbltcIm5vbmVcIl0gPSBcIm5vbmVcIjtcbiAgICBNb3ZlRGlyZWN0aW9uW1wicmlnaHRcIl0gPSBcInJpZ2h0XCI7XG4gICAgTW92ZURpcmVjdGlvbltcInRvcFwiXSA9IFwidG9wXCI7XG4gICAgTW92ZURpcmVjdGlvbltcInRvcExlZnRcIl0gPSBcInRvcC1sZWZ0XCI7XG4gICAgTW92ZURpcmVjdGlvbltcInRvcFJpZ2h0XCJdID0gXCJ0b3AtcmlnaHRcIjtcbn0pKE1vdmVEaXJlY3Rpb24gPSBleHBvcnRzLk1vdmVEaXJlY3Rpb24gfHwgKGV4cG9ydHMuTW92ZURpcmVjdGlvbiA9IHt9KSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Directions/MoveDirection.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Directions/OutModeDirection.js": +/*!***********************************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Directions/OutModeDirection.js ***! + \***********************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.OutModeDirection = void 0;\nvar OutModeDirection;\n(function (OutModeDirection) {\n OutModeDirection[\"bottom\"] = \"bottom\";\n OutModeDirection[\"left\"] = \"left\";\n OutModeDirection[\"right\"] = \"right\";\n OutModeDirection[\"top\"] = \"top\";\n})(OutModeDirection = exports.OutModeDirection || (exports.OutModeDirection = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvRGlyZWN0aW9ucy9PdXRNb2RlRGlyZWN0aW9uLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLGtEQUFrRCx3QkFBd0IsS0FBSyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvRGlyZWN0aW9ucy9PdXRNb2RlRGlyZWN0aW9uLmpzP2E3YTUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLk91dE1vZGVEaXJlY3Rpb24gPSB2b2lkIDA7XG52YXIgT3V0TW9kZURpcmVjdGlvbjtcbihmdW5jdGlvbiAoT3V0TW9kZURpcmVjdGlvbikge1xuICAgIE91dE1vZGVEaXJlY3Rpb25bXCJib3R0b21cIl0gPSBcImJvdHRvbVwiO1xuICAgIE91dE1vZGVEaXJlY3Rpb25bXCJsZWZ0XCJdID0gXCJsZWZ0XCI7XG4gICAgT3V0TW9kZURpcmVjdGlvbltcInJpZ2h0XCJdID0gXCJyaWdodFwiO1xuICAgIE91dE1vZGVEaXJlY3Rpb25bXCJ0b3BcIl0gPSBcInRvcFwiO1xufSkoT3V0TW9kZURpcmVjdGlvbiA9IGV4cG9ydHMuT3V0TW9kZURpcmVjdGlvbiB8fCAoZXhwb3J0cy5PdXRNb2RlRGlyZWN0aW9uID0ge30pKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Directions/OutModeDirection.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Directions/RotateDirection.js": +/*!**********************************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Directions/RotateDirection.js ***! + \**********************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.RotateDirection = void 0;\nvar RotateDirection;\n(function (RotateDirection) {\n RotateDirection[\"clockwise\"] = \"clockwise\";\n RotateDirection[\"counterClockwise\"] = \"counter-clockwise\";\n RotateDirection[\"random\"] = \"random\";\n})(RotateDirection = exports.RotateDirection || (exports.RotateDirection = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvRGlyZWN0aW9ucy9Sb3RhdGVEaXJlY3Rpb24uanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsdUJBQXVCO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLGdEQUFnRCx1QkFBdUIsS0FBSyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvRGlyZWN0aW9ucy9Sb3RhdGVEaXJlY3Rpb24uanM/N2JjOCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuUm90YXRlRGlyZWN0aW9uID0gdm9pZCAwO1xudmFyIFJvdGF0ZURpcmVjdGlvbjtcbihmdW5jdGlvbiAoUm90YXRlRGlyZWN0aW9uKSB7XG4gICAgUm90YXRlRGlyZWN0aW9uW1wiY2xvY2t3aXNlXCJdID0gXCJjbG9ja3dpc2VcIjtcbiAgICBSb3RhdGVEaXJlY3Rpb25bXCJjb3VudGVyQ2xvY2t3aXNlXCJdID0gXCJjb3VudGVyLWNsb2Nrd2lzZVwiO1xuICAgIFJvdGF0ZURpcmVjdGlvbltcInJhbmRvbVwiXSA9IFwicmFuZG9tXCI7XG59KShSb3RhdGVEaXJlY3Rpb24gPSBleHBvcnRzLlJvdGF0ZURpcmVjdGlvbiB8fCAoZXhwb3J0cy5Sb3RhdGVEaXJlY3Rpb24gPSB7fSkpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Directions/RotateDirection.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Directions/TiltDirection.js": +/*!********************************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Directions/TiltDirection.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.TiltDirection = void 0;\nvar TiltDirection;\n(function (TiltDirection) {\n TiltDirection[\"clockwise\"] = \"clockwise\";\n TiltDirection[\"counterClockwise\"] = \"counter-clockwise\";\n TiltDirection[\"random\"] = \"random\";\n})(TiltDirection = exports.TiltDirection || (exports.TiltDirection = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvRGlyZWN0aW9ucy9UaWx0RGlyZWN0aW9uLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyw0Q0FBNEMscUJBQXFCLEtBQUsiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0VudW1zL0RpcmVjdGlvbnMvVGlsdERpcmVjdGlvbi5qcz8xNGE1Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5UaWx0RGlyZWN0aW9uID0gdm9pZCAwO1xudmFyIFRpbHREaXJlY3Rpb247XG4oZnVuY3Rpb24gKFRpbHREaXJlY3Rpb24pIHtcbiAgICBUaWx0RGlyZWN0aW9uW1wiY2xvY2t3aXNlXCJdID0gXCJjbG9ja3dpc2VcIjtcbiAgICBUaWx0RGlyZWN0aW9uW1wiY291bnRlckNsb2Nrd2lzZVwiXSA9IFwiY291bnRlci1jbG9ja3dpc2VcIjtcbiAgICBUaWx0RGlyZWN0aW9uW1wicmFuZG9tXCJdID0gXCJyYW5kb21cIjtcbn0pKFRpbHREaXJlY3Rpb24gPSBleHBvcnRzLlRpbHREaXJlY3Rpb24gfHwgKGV4cG9ydHMuVGlsdERpcmVjdGlvbiA9IHt9KSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Directions/TiltDirection.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Directions/index.js": +/*!************************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Directions/index.js ***! + \************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n__exportStar(__webpack_require__(/*! ./MoveDirection */ \"./node_modules/tsparticles/Enums/Directions/MoveDirection.js\"), exports);\n__exportStar(__webpack_require__(/*! ./RotateDirection */ \"./node_modules/tsparticles/Enums/Directions/RotateDirection.js\"), exports);\n__exportStar(__webpack_require__(/*! ./OutModeDirection */ \"./node_modules/tsparticles/Enums/Directions/OutModeDirection.js\"), exports);\n__exportStar(__webpack_require__(/*! ./TiltDirection */ \"./node_modules/tsparticles/Enums/Directions/TiltDirection.js\"), exports);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvRGlyZWN0aW9ucy9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0E7QUFDQSxtQ0FBbUMsb0NBQW9DLGdCQUFnQjtBQUN2RixDQUFDO0FBQ0Q7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQSw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsYUFBYSxtQkFBTyxDQUFDLHFGQUFpQjtBQUN0QyxhQUFhLG1CQUFPLENBQUMseUZBQW1CO0FBQ3hDLGFBQWEsbUJBQU8sQ0FBQywyRkFBb0I7QUFDekMsYUFBYSxtQkFBTyxDQUFDLHFGQUFpQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvRGlyZWN0aW9ucy9pbmRleC5qcz9iNTFlIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9fY3JlYXRlQmluZGluZyA9ICh0aGlzICYmIHRoaXMuX19jcmVhdGVCaW5kaW5nKSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH0pO1xufSkgOiAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIG9bazJdID0gbVtrXTtcbn0pKTtcbnZhciBfX2V4cG9ydFN0YXIgPSAodGhpcyAmJiB0aGlzLl9fZXhwb3J0U3RhcikgfHwgZnVuY3Rpb24obSwgZXhwb3J0cykge1xuICAgIGZvciAodmFyIHAgaW4gbSkgaWYgKHAgIT09IFwiZGVmYXVsdFwiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0cywgcCkpIF9fY3JlYXRlQmluZGluZyhleHBvcnRzLCBtLCBwKTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vTW92ZURpcmVjdGlvblwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vUm90YXRlRGlyZWN0aW9uXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9PdXRNb2RlRGlyZWN0aW9uXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9UaWx0RGlyZWN0aW9uXCIpLCBleHBvcnRzKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Directions/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/InteractivityDetect.js": +/*!***************************************************************!*\ + !*** ./node_modules/tsparticles/Enums/InteractivityDetect.js ***! + \***************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.InteractivityDetect = void 0;\nvar InteractivityDetect;\n(function (InteractivityDetect) {\n InteractivityDetect[\"canvas\"] = \"canvas\";\n InteractivityDetect[\"parent\"] = \"parent\";\n InteractivityDetect[\"window\"] = \"window\";\n})(InteractivityDetect = exports.InteractivityDetect || (exports.InteractivityDetect = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvSW50ZXJhY3Rpdml0eURldGVjdC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCwyQkFBMkI7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsd0RBQXdELDJCQUEyQixLQUFLIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9FbnVtcy9JbnRlcmFjdGl2aXR5RGV0ZWN0LmpzPzExZjUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkludGVyYWN0aXZpdHlEZXRlY3QgPSB2b2lkIDA7XG52YXIgSW50ZXJhY3Rpdml0eURldGVjdDtcbihmdW5jdGlvbiAoSW50ZXJhY3Rpdml0eURldGVjdCkge1xuICAgIEludGVyYWN0aXZpdHlEZXRlY3RbXCJjYW52YXNcIl0gPSBcImNhbnZhc1wiO1xuICAgIEludGVyYWN0aXZpdHlEZXRlY3RbXCJwYXJlbnRcIl0gPSBcInBhcmVudFwiO1xuICAgIEludGVyYWN0aXZpdHlEZXRlY3RbXCJ3aW5kb3dcIl0gPSBcIndpbmRvd1wiO1xufSkoSW50ZXJhY3Rpdml0eURldGVjdCA9IGV4cG9ydHMuSW50ZXJhY3Rpdml0eURldGVjdCB8fCAoZXhwb3J0cy5JbnRlcmFjdGl2aXR5RGV0ZWN0ID0ge30pKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/InteractivityDetect.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Modes/ClickMode.js": +/*!***********************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Modes/ClickMode.js ***! + \***********************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ClickMode = void 0;\nvar ClickMode;\n(function (ClickMode) {\n ClickMode[\"attract\"] = \"attract\";\n ClickMode[\"bubble\"] = \"bubble\";\n ClickMode[\"push\"] = \"push\";\n ClickMode[\"remove\"] = \"remove\";\n ClickMode[\"repulse\"] = \"repulse\";\n ClickMode[\"pause\"] = \"pause\";\n ClickMode[\"trail\"] = \"trail\";\n})(ClickMode = exports.ClickMode || (exports.ClickMode = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvTW9kZXMvQ2xpY2tNb2RlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLG9DQUFvQyxpQkFBaUIsS0FBSyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvTW9kZXMvQ2xpY2tNb2RlLmpzP2VkODUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkNsaWNrTW9kZSA9IHZvaWQgMDtcbnZhciBDbGlja01vZGU7XG4oZnVuY3Rpb24gKENsaWNrTW9kZSkge1xuICAgIENsaWNrTW9kZVtcImF0dHJhY3RcIl0gPSBcImF0dHJhY3RcIjtcbiAgICBDbGlja01vZGVbXCJidWJibGVcIl0gPSBcImJ1YmJsZVwiO1xuICAgIENsaWNrTW9kZVtcInB1c2hcIl0gPSBcInB1c2hcIjtcbiAgICBDbGlja01vZGVbXCJyZW1vdmVcIl0gPSBcInJlbW92ZVwiO1xuICAgIENsaWNrTW9kZVtcInJlcHVsc2VcIl0gPSBcInJlcHVsc2VcIjtcbiAgICBDbGlja01vZGVbXCJwYXVzZVwiXSA9IFwicGF1c2VcIjtcbiAgICBDbGlja01vZGVbXCJ0cmFpbFwiXSA9IFwidHJhaWxcIjtcbn0pKENsaWNrTW9kZSA9IGV4cG9ydHMuQ2xpY2tNb2RlIHx8IChleHBvcnRzLkNsaWNrTW9kZSA9IHt9KSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Modes/ClickMode.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Modes/CollisionMode.js": +/*!***************************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Modes/CollisionMode.js ***! + \***************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.CollisionMode = void 0;\nvar CollisionMode;\n(function (CollisionMode) {\n CollisionMode[\"absorb\"] = \"absorb\";\n CollisionMode[\"bounce\"] = \"bounce\";\n CollisionMode[\"destroy\"] = \"destroy\";\n})(CollisionMode = exports.CollisionMode || (exports.CollisionMode = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvTW9kZXMvQ29sbGlzaW9uTW9kZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsNENBQTRDLHFCQUFxQixLQUFLIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9FbnVtcy9Nb2Rlcy9Db2xsaXNpb25Nb2RlLmpzPzM1NjMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkNvbGxpc2lvbk1vZGUgPSB2b2lkIDA7XG52YXIgQ29sbGlzaW9uTW9kZTtcbihmdW5jdGlvbiAoQ29sbGlzaW9uTW9kZSkge1xuICAgIENvbGxpc2lvbk1vZGVbXCJhYnNvcmJcIl0gPSBcImFic29yYlwiO1xuICAgIENvbGxpc2lvbk1vZGVbXCJib3VuY2VcIl0gPSBcImJvdW5jZVwiO1xuICAgIENvbGxpc2lvbk1vZGVbXCJkZXN0cm95XCJdID0gXCJkZXN0cm95XCI7XG59KShDb2xsaXNpb25Nb2RlID0gZXhwb3J0cy5Db2xsaXNpb25Nb2RlIHx8IChleHBvcnRzLkNvbGxpc2lvbk1vZGUgPSB7fSkpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Modes/CollisionMode.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Modes/DestroyMode.js": +/*!*************************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Modes/DestroyMode.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.DestroyMode = void 0;\nvar DestroyMode;\n(function (DestroyMode) {\n DestroyMode[\"none\"] = \"none\";\n DestroyMode[\"split\"] = \"split\";\n})(DestroyMode = exports.DestroyMode || (exports.DestroyMode = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvTW9kZXMvRGVzdHJveU1vZGUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsbUJBQW1CO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyx3Q0FBd0MsbUJBQW1CLEtBQUsiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0VudW1zL01vZGVzL0Rlc3Ryb3lNb2RlLmpzP2ZjNzkiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkRlc3Ryb3lNb2RlID0gdm9pZCAwO1xudmFyIERlc3Ryb3lNb2RlO1xuKGZ1bmN0aW9uIChEZXN0cm95TW9kZSkge1xuICAgIERlc3Ryb3lNb2RlW1wibm9uZVwiXSA9IFwibm9uZVwiO1xuICAgIERlc3Ryb3lNb2RlW1wic3BsaXRcIl0gPSBcInNwbGl0XCI7XG59KShEZXN0cm95TW9kZSA9IGV4cG9ydHMuRGVzdHJveU1vZGUgfHwgKGV4cG9ydHMuRGVzdHJveU1vZGUgPSB7fSkpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Modes/DestroyMode.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Modes/DivMode.js": +/*!*********************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Modes/DivMode.js ***! + \*********************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.DivMode = void 0;\nvar DivMode;\n(function (DivMode) {\n DivMode[\"bounce\"] = \"bounce\";\n DivMode[\"bubble\"] = \"bubble\";\n DivMode[\"repulse\"] = \"repulse\";\n})(DivMode = exports.DivMode || (exports.DivMode = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvTW9kZXMvRGl2TW9kZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxlQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsZ0NBQWdDLGVBQWUsS0FBSyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvTW9kZXMvRGl2TW9kZS5qcz9jYWU1Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5EaXZNb2RlID0gdm9pZCAwO1xudmFyIERpdk1vZGU7XG4oZnVuY3Rpb24gKERpdk1vZGUpIHtcbiAgICBEaXZNb2RlW1wiYm91bmNlXCJdID0gXCJib3VuY2VcIjtcbiAgICBEaXZNb2RlW1wiYnViYmxlXCJdID0gXCJidWJibGVcIjtcbiAgICBEaXZNb2RlW1wicmVwdWxzZVwiXSA9IFwicmVwdWxzZVwiO1xufSkoRGl2TW9kZSA9IGV4cG9ydHMuRGl2TW9kZSB8fCAoZXhwb3J0cy5EaXZNb2RlID0ge30pKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Modes/DivMode.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Modes/HoverMode.js": +/*!***********************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Modes/HoverMode.js ***! + \***********************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.HoverMode = void 0;\nvar HoverMode;\n(function (HoverMode) {\n HoverMode[\"attract\"] = \"attract\";\n HoverMode[\"bounce\"] = \"bounce\";\n HoverMode[\"bubble\"] = \"bubble\";\n HoverMode[\"connect\"] = \"connect\";\n HoverMode[\"grab\"] = \"grab\";\n HoverMode[\"light\"] = \"light\";\n HoverMode[\"repulse\"] = \"repulse\";\n HoverMode[\"slow\"] = \"slow\";\n HoverMode[\"trail\"] = \"trail\";\n})(HoverMode = exports.HoverMode || (exports.HoverMode = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvTW9kZXMvSG92ZXJNb2RlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxvQ0FBb0MsaUJBQWlCLEtBQUsiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0VudW1zL01vZGVzL0hvdmVyTW9kZS5qcz8xMTBlIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Ib3Zlck1vZGUgPSB2b2lkIDA7XG52YXIgSG92ZXJNb2RlO1xuKGZ1bmN0aW9uIChIb3Zlck1vZGUpIHtcbiAgICBIb3Zlck1vZGVbXCJhdHRyYWN0XCJdID0gXCJhdHRyYWN0XCI7XG4gICAgSG92ZXJNb2RlW1wiYm91bmNlXCJdID0gXCJib3VuY2VcIjtcbiAgICBIb3Zlck1vZGVbXCJidWJibGVcIl0gPSBcImJ1YmJsZVwiO1xuICAgIEhvdmVyTW9kZVtcImNvbm5lY3RcIl0gPSBcImNvbm5lY3RcIjtcbiAgICBIb3Zlck1vZGVbXCJncmFiXCJdID0gXCJncmFiXCI7XG4gICAgSG92ZXJNb2RlW1wibGlnaHRcIl0gPSBcImxpZ2h0XCI7XG4gICAgSG92ZXJNb2RlW1wicmVwdWxzZVwiXSA9IFwicmVwdWxzZVwiO1xuICAgIEhvdmVyTW9kZVtcInNsb3dcIl0gPSBcInNsb3dcIjtcbiAgICBIb3Zlck1vZGVbXCJ0cmFpbFwiXSA9IFwidHJhaWxcIjtcbn0pKEhvdmVyTW9kZSA9IGV4cG9ydHMuSG92ZXJNb2RlIHx8IChleHBvcnRzLkhvdmVyTW9kZSA9IHt9KSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Modes/HoverMode.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Modes/OutMode.js": +/*!*********************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Modes/OutMode.js ***! + \*********************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.OutMode = void 0;\nvar OutMode;\n(function (OutMode) {\n OutMode[\"bounce\"] = \"bounce\";\n OutMode[\"bounceHorizontal\"] = \"bounce-horizontal\";\n OutMode[\"bounceVertical\"] = \"bounce-vertical\";\n OutMode[\"none\"] = \"none\";\n OutMode[\"out\"] = \"out\";\n OutMode[\"destroy\"] = \"destroy\";\n OutMode[\"split\"] = \"split\";\n})(OutMode = exports.OutMode || (exports.OutMode = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvTW9kZXMvT3V0TW9kZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxlQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxnQ0FBZ0MsZUFBZSxLQUFLIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9FbnVtcy9Nb2Rlcy9PdXRNb2RlLmpzPzI4ZGYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLk91dE1vZGUgPSB2b2lkIDA7XG52YXIgT3V0TW9kZTtcbihmdW5jdGlvbiAoT3V0TW9kZSkge1xuICAgIE91dE1vZGVbXCJib3VuY2VcIl0gPSBcImJvdW5jZVwiO1xuICAgIE91dE1vZGVbXCJib3VuY2VIb3Jpem9udGFsXCJdID0gXCJib3VuY2UtaG9yaXpvbnRhbFwiO1xuICAgIE91dE1vZGVbXCJib3VuY2VWZXJ0aWNhbFwiXSA9IFwiYm91bmNlLXZlcnRpY2FsXCI7XG4gICAgT3V0TW9kZVtcIm5vbmVcIl0gPSBcIm5vbmVcIjtcbiAgICBPdXRNb2RlW1wib3V0XCJdID0gXCJvdXRcIjtcbiAgICBPdXRNb2RlW1wiZGVzdHJveVwiXSA9IFwiZGVzdHJveVwiO1xuICAgIE91dE1vZGVbXCJzcGxpdFwiXSA9IFwic3BsaXRcIjtcbn0pKE91dE1vZGUgPSBleHBvcnRzLk91dE1vZGUgfHwgKGV4cG9ydHMuT3V0TW9kZSA9IHt9KSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Modes/OutMode.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Modes/ResponsiveMode.js": +/*!****************************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Modes/ResponsiveMode.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ResponsiveMode = void 0;\nvar ResponsiveMode;\n(function (ResponsiveMode) {\n ResponsiveMode[\"screen\"] = \"screen\";\n ResponsiveMode[\"canvas\"] = \"canvas\";\n})(ResponsiveMode = exports.ResponsiveMode || (exports.ResponsiveMode = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvTW9kZXMvUmVzcG9uc2l2ZU1vZGUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyw4Q0FBOEMsc0JBQXNCLEtBQUsiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0VudW1zL01vZGVzL1Jlc3BvbnNpdmVNb2RlLmpzP2ZlOGYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlJlc3BvbnNpdmVNb2RlID0gdm9pZCAwO1xudmFyIFJlc3BvbnNpdmVNb2RlO1xuKGZ1bmN0aW9uIChSZXNwb25zaXZlTW9kZSkge1xuICAgIFJlc3BvbnNpdmVNb2RlW1wic2NyZWVuXCJdID0gXCJzY3JlZW5cIjtcbiAgICBSZXNwb25zaXZlTW9kZVtcImNhbnZhc1wiXSA9IFwiY2FudmFzXCI7XG59KShSZXNwb25zaXZlTW9kZSA9IGV4cG9ydHMuUmVzcG9uc2l2ZU1vZGUgfHwgKGV4cG9ydHMuUmVzcG9uc2l2ZU1vZGUgPSB7fSkpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Modes/ResponsiveMode.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Modes/RollMode.js": +/*!**********************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Modes/RollMode.js ***! + \**********************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.RollMode = void 0;\nvar RollMode;\n(function (RollMode) {\n RollMode[\"both\"] = \"both\";\n RollMode[\"horizontal\"] = \"horizontal\";\n RollMode[\"vertical\"] = \"vertical\";\n})(RollMode = exports.RollMode || (exports.RollMode = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvTW9kZXMvUm9sbE1vZGUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLGtDQUFrQyxnQkFBZ0IsS0FBSyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvTW9kZXMvUm9sbE1vZGUuanM/MWFlOSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuUm9sbE1vZGUgPSB2b2lkIDA7XG52YXIgUm9sbE1vZGU7XG4oZnVuY3Rpb24gKFJvbGxNb2RlKSB7XG4gICAgUm9sbE1vZGVbXCJib3RoXCJdID0gXCJib3RoXCI7XG4gICAgUm9sbE1vZGVbXCJob3Jpem9udGFsXCJdID0gXCJob3Jpem9udGFsXCI7XG4gICAgUm9sbE1vZGVbXCJ2ZXJ0aWNhbFwiXSA9IFwidmVydGljYWxcIjtcbn0pKFJvbGxNb2RlID0gZXhwb3J0cy5Sb2xsTW9kZSB8fCAoZXhwb3J0cy5Sb2xsTW9kZSA9IHt9KSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Modes/RollMode.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Modes/SizeMode.js": +/*!**********************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Modes/SizeMode.js ***! + \**********************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.SizeMode = void 0;\nvar SizeMode;\n(function (SizeMode) {\n SizeMode[\"precise\"] = \"precise\";\n SizeMode[\"percent\"] = \"percent\";\n})(SizeMode = exports.SizeMode || (exports.SizeMode = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvTW9kZXMvU2l6ZU1vZGUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxrQ0FBa0MsZ0JBQWdCLEtBQUsiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0VudW1zL01vZGVzL1NpemVNb2RlLmpzPzU4Y2UiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlNpemVNb2RlID0gdm9pZCAwO1xudmFyIFNpemVNb2RlO1xuKGZ1bmN0aW9uIChTaXplTW9kZSkge1xuICAgIFNpemVNb2RlW1wicHJlY2lzZVwiXSA9IFwicHJlY2lzZVwiO1xuICAgIFNpemVNb2RlW1wicGVyY2VudFwiXSA9IFwicGVyY2VudFwiO1xufSkoU2l6ZU1vZGUgPSBleHBvcnRzLlNpemVNb2RlIHx8IChleHBvcnRzLlNpemVNb2RlID0ge30pKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Modes/SizeMode.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Modes/ThemeMode.js": +/*!***********************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Modes/ThemeMode.js ***! + \***********************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ThemeMode = void 0;\nvar ThemeMode;\n(function (ThemeMode) {\n ThemeMode[\"any\"] = \"any\";\n ThemeMode[\"dark\"] = \"dark\";\n ThemeMode[\"light\"] = \"light\";\n})(ThemeMode = exports.ThemeMode || (exports.ThemeMode = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvTW9kZXMvVGhlbWVNb2RlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxvQ0FBb0MsaUJBQWlCLEtBQUsiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0VudW1zL01vZGVzL1RoZW1lTW9kZS5qcz8zYmMxIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5UaGVtZU1vZGUgPSB2b2lkIDA7XG52YXIgVGhlbWVNb2RlO1xuKGZ1bmN0aW9uIChUaGVtZU1vZGUpIHtcbiAgICBUaGVtZU1vZGVbXCJhbnlcIl0gPSBcImFueVwiO1xuICAgIFRoZW1lTW9kZVtcImRhcmtcIl0gPSBcImRhcmtcIjtcbiAgICBUaGVtZU1vZGVbXCJsaWdodFwiXSA9IFwibGlnaHRcIjtcbn0pKFRoZW1lTW9kZSA9IGV4cG9ydHMuVGhlbWVNb2RlIHx8IChleHBvcnRzLlRoZW1lTW9kZSA9IHt9KSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Modes/ThemeMode.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Modes/index.js": +/*!*******************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Modes/index.js ***! + \*******************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n__exportStar(__webpack_require__(/*! ./ClickMode */ \"./node_modules/tsparticles/Enums/Modes/ClickMode.js\"), exports);\n__exportStar(__webpack_require__(/*! ./DestroyMode */ \"./node_modules/tsparticles/Enums/Modes/DestroyMode.js\"), exports);\n__exportStar(__webpack_require__(/*! ./DivMode */ \"./node_modules/tsparticles/Enums/Modes/DivMode.js\"), exports);\n__exportStar(__webpack_require__(/*! ./HoverMode */ \"./node_modules/tsparticles/Enums/Modes/HoverMode.js\"), exports);\n__exportStar(__webpack_require__(/*! ./CollisionMode */ \"./node_modules/tsparticles/Enums/Modes/CollisionMode.js\"), exports);\n__exportStar(__webpack_require__(/*! ./OutMode */ \"./node_modules/tsparticles/Enums/Modes/OutMode.js\"), exports);\n__exportStar(__webpack_require__(/*! ./RollMode */ \"./node_modules/tsparticles/Enums/Modes/RollMode.js\"), exports);\n__exportStar(__webpack_require__(/*! ./SizeMode */ \"./node_modules/tsparticles/Enums/Modes/SizeMode.js\"), exports);\n__exportStar(__webpack_require__(/*! ./ThemeMode */ \"./node_modules/tsparticles/Enums/Modes/ThemeMode.js\"), exports);\n__exportStar(__webpack_require__(/*! ./ResponsiveMode */ \"./node_modules/tsparticles/Enums/Modes/ResponsiveMode.js\"), exports);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvTW9kZXMvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBO0FBQ0EsbUNBQW1DLG9DQUFvQyxnQkFBZ0I7QUFDdkYsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGFBQWEsbUJBQU8sQ0FBQyx3RUFBYTtBQUNsQyxhQUFhLG1CQUFPLENBQUMsNEVBQWU7QUFDcEMsYUFBYSxtQkFBTyxDQUFDLG9FQUFXO0FBQ2hDLGFBQWEsbUJBQU8sQ0FBQyx3RUFBYTtBQUNsQyxhQUFhLG1CQUFPLENBQUMsZ0ZBQWlCO0FBQ3RDLGFBQWEsbUJBQU8sQ0FBQyxvRUFBVztBQUNoQyxhQUFhLG1CQUFPLENBQUMsc0VBQVk7QUFDakMsYUFBYSxtQkFBTyxDQUFDLHNFQUFZO0FBQ2pDLGFBQWEsbUJBQU8sQ0FBQyx3RUFBYTtBQUNsQyxhQUFhLG1CQUFPLENBQUMsa0ZBQWtCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9FbnVtcy9Nb2Rlcy9pbmRleC5qcz9hY2M1Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9fY3JlYXRlQmluZGluZyA9ICh0aGlzICYmIHRoaXMuX19jcmVhdGVCaW5kaW5nKSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH0pO1xufSkgOiAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIG9bazJdID0gbVtrXTtcbn0pKTtcbnZhciBfX2V4cG9ydFN0YXIgPSAodGhpcyAmJiB0aGlzLl9fZXhwb3J0U3RhcikgfHwgZnVuY3Rpb24obSwgZXhwb3J0cykge1xuICAgIGZvciAodmFyIHAgaW4gbSkgaWYgKHAgIT09IFwiZGVmYXVsdFwiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0cywgcCkpIF9fY3JlYXRlQmluZGluZyhleHBvcnRzLCBtLCBwKTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vQ2xpY2tNb2RlXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9EZXN0cm95TW9kZVwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vRGl2TW9kZVwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vSG92ZXJNb2RlXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9Db2xsaXNpb25Nb2RlXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9PdXRNb2RlXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9Sb2xsTW9kZVwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vU2l6ZU1vZGVcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL1RoZW1lTW9kZVwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vUmVzcG9uc2l2ZU1vZGVcIiksIGV4cG9ydHMpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Modes/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Types/AlterType.js": +/*!***********************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Types/AlterType.js ***! + \***********************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.AlterType = void 0;\nvar AlterType;\n(function (AlterType) {\n AlterType[\"darken\"] = \"darken\";\n AlterType[\"enlighten\"] = \"enlighten\";\n})(AlterType = exports.AlterType || (exports.AlterType = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvVHlwZXMvQWx0ZXJUeXBlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsb0NBQW9DLGlCQUFpQixLQUFLIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9FbnVtcy9UeXBlcy9BbHRlclR5cGUuanM/NmVhZSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuQWx0ZXJUeXBlID0gdm9pZCAwO1xudmFyIEFsdGVyVHlwZTtcbihmdW5jdGlvbiAoQWx0ZXJUeXBlKSB7XG4gICAgQWx0ZXJUeXBlW1wiZGFya2VuXCJdID0gXCJkYXJrZW5cIjtcbiAgICBBbHRlclR5cGVbXCJlbmxpZ2h0ZW5cIl0gPSBcImVubGlnaHRlblwiO1xufSkoQWx0ZXJUeXBlID0gZXhwb3J0cy5BbHRlclR5cGUgfHwgKGV4cG9ydHMuQWx0ZXJUeXBlID0ge30pKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Types/AlterType.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Types/DestroyType.js": +/*!*************************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Types/DestroyType.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.DestroyType = void 0;\nvar DestroyType;\n(function (DestroyType) {\n DestroyType[\"none\"] = \"none\";\n DestroyType[\"max\"] = \"max\";\n DestroyType[\"min\"] = \"min\";\n})(DestroyType = exports.DestroyType || (exports.DestroyType = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvVHlwZXMvRGVzdHJveVR5cGUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsbUJBQW1CO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLHdDQUF3QyxtQkFBbUIsS0FBSyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvVHlwZXMvRGVzdHJveVR5cGUuanM/ODhjZiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuRGVzdHJveVR5cGUgPSB2b2lkIDA7XG52YXIgRGVzdHJveVR5cGU7XG4oZnVuY3Rpb24gKERlc3Ryb3lUeXBlKSB7XG4gICAgRGVzdHJveVR5cGVbXCJub25lXCJdID0gXCJub25lXCI7XG4gICAgRGVzdHJveVR5cGVbXCJtYXhcIl0gPSBcIm1heFwiO1xuICAgIERlc3Ryb3lUeXBlW1wibWluXCJdID0gXCJtaW5cIjtcbn0pKERlc3Ryb3lUeXBlID0gZXhwb3J0cy5EZXN0cm95VHlwZSB8fCAoZXhwb3J0cy5EZXN0cm95VHlwZSA9IHt9KSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Types/DestroyType.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Types/DivType.js": +/*!*********************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Types/DivType.js ***! + \*********************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.DivType = void 0;\nvar DivType;\n(function (DivType) {\n DivType[\"circle\"] = \"circle\";\n DivType[\"rectangle\"] = \"rectangle\";\n})(DivType = exports.DivType || (exports.DivType = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvVHlwZXMvRGl2VHlwZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxlQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLGdDQUFnQyxlQUFlLEtBQUsiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0VudW1zL1R5cGVzL0RpdlR5cGUuanM/MWU4YyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuRGl2VHlwZSA9IHZvaWQgMDtcbnZhciBEaXZUeXBlO1xuKGZ1bmN0aW9uIChEaXZUeXBlKSB7XG4gICAgRGl2VHlwZVtcImNpcmNsZVwiXSA9IFwiY2lyY2xlXCI7XG4gICAgRGl2VHlwZVtcInJlY3RhbmdsZVwiXSA9IFwicmVjdGFuZ2xlXCI7XG59KShEaXZUeXBlID0gZXhwb3J0cy5EaXZUeXBlIHx8IChleHBvcnRzLkRpdlR5cGUgPSB7fSkpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Types/DivType.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Types/EasingType.js": +/*!************************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Types/EasingType.js ***! + \************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.EasingType = void 0;\nvar EasingType;\n(function (EasingType) {\n EasingType[\"easeOutBack\"] = \"ease-out-back\";\n EasingType[\"easeOutCirc\"] = \"ease-out-circ\";\n EasingType[\"easeOutCubic\"] = \"ease-out-cubic\";\n EasingType[\"easeOutQuad\"] = \"ease-out-quad\";\n EasingType[\"easeOutQuart\"] = \"ease-out-quart\";\n EasingType[\"easeOutQuint\"] = \"ease-out-quint\";\n EasingType[\"easeOutExpo\"] = \"ease-out-expo\";\n EasingType[\"easeOutSine\"] = \"ease-out-sine\";\n})(EasingType = exports.EasingType || (exports.EasingType = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvVHlwZXMvRWFzaW5nVHlwZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLHNDQUFzQyxrQkFBa0IsS0FBSyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvVHlwZXMvRWFzaW5nVHlwZS5qcz9lODBlIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5FYXNpbmdUeXBlID0gdm9pZCAwO1xudmFyIEVhc2luZ1R5cGU7XG4oZnVuY3Rpb24gKEVhc2luZ1R5cGUpIHtcbiAgICBFYXNpbmdUeXBlW1wiZWFzZU91dEJhY2tcIl0gPSBcImVhc2Utb3V0LWJhY2tcIjtcbiAgICBFYXNpbmdUeXBlW1wiZWFzZU91dENpcmNcIl0gPSBcImVhc2Utb3V0LWNpcmNcIjtcbiAgICBFYXNpbmdUeXBlW1wiZWFzZU91dEN1YmljXCJdID0gXCJlYXNlLW91dC1jdWJpY1wiO1xuICAgIEVhc2luZ1R5cGVbXCJlYXNlT3V0UXVhZFwiXSA9IFwiZWFzZS1vdXQtcXVhZFwiO1xuICAgIEVhc2luZ1R5cGVbXCJlYXNlT3V0UXVhcnRcIl0gPSBcImVhc2Utb3V0LXF1YXJ0XCI7XG4gICAgRWFzaW5nVHlwZVtcImVhc2VPdXRRdWludFwiXSA9IFwiZWFzZS1vdXQtcXVpbnRcIjtcbiAgICBFYXNpbmdUeXBlW1wiZWFzZU91dEV4cG9cIl0gPSBcImVhc2Utb3V0LWV4cG9cIjtcbiAgICBFYXNpbmdUeXBlW1wiZWFzZU91dFNpbmVcIl0gPSBcImVhc2Utb3V0LXNpbmVcIjtcbn0pKEVhc2luZ1R5cGUgPSBleHBvcnRzLkVhc2luZ1R5cGUgfHwgKGV4cG9ydHMuRWFzaW5nVHlwZSA9IHt9KSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Types/EasingType.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Types/GradientType.js": +/*!**************************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Types/GradientType.js ***! + \**************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.GradientType = void 0;\nvar GradientType;\n(function (GradientType) {\n GradientType[\"linear\"] = \"linear\";\n GradientType[\"radial\"] = \"radial\";\n GradientType[\"random\"] = \"random\";\n})(GradientType = exports.GradientType || (exports.GradientType = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvVHlwZXMvR3JhZGllbnRUeXBlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELG9CQUFvQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQywwQ0FBMEMsb0JBQW9CLEtBQUsiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0VudW1zL1R5cGVzL0dyYWRpZW50VHlwZS5qcz8yZGVkIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5HcmFkaWVudFR5cGUgPSB2b2lkIDA7XG52YXIgR3JhZGllbnRUeXBlO1xuKGZ1bmN0aW9uIChHcmFkaWVudFR5cGUpIHtcbiAgICBHcmFkaWVudFR5cGVbXCJsaW5lYXJcIl0gPSBcImxpbmVhclwiO1xuICAgIEdyYWRpZW50VHlwZVtcInJhZGlhbFwiXSA9IFwicmFkaWFsXCI7XG4gICAgR3JhZGllbnRUeXBlW1wicmFuZG9tXCJdID0gXCJyYW5kb21cIjtcbn0pKEdyYWRpZW50VHlwZSA9IGV4cG9ydHMuR3JhZGllbnRUeXBlIHx8IChleHBvcnRzLkdyYWRpZW50VHlwZSA9IHt9KSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Types/GradientType.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Types/InteractorType.js": +/*!****************************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Types/InteractorType.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.InteractorType = void 0;\nvar InteractorType;\n(function (InteractorType) {\n InteractorType[InteractorType[\"External\"] = 0] = \"External\";\n InteractorType[InteractorType[\"Particles\"] = 1] = \"Particles\";\n})(InteractorType = exports.InteractorType || (exports.InteractorType = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvVHlwZXMvSW50ZXJhY3RvclR5cGUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyw4Q0FBOEMsc0JBQXNCLEtBQUsiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0VudW1zL1R5cGVzL0ludGVyYWN0b3JUeXBlLmpzPzFmMjMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkludGVyYWN0b3JUeXBlID0gdm9pZCAwO1xudmFyIEludGVyYWN0b3JUeXBlO1xuKGZ1bmN0aW9uIChJbnRlcmFjdG9yVHlwZSkge1xuICAgIEludGVyYWN0b3JUeXBlW0ludGVyYWN0b3JUeXBlW1wiRXh0ZXJuYWxcIl0gPSAwXSA9IFwiRXh0ZXJuYWxcIjtcbiAgICBJbnRlcmFjdG9yVHlwZVtJbnRlcmFjdG9yVHlwZVtcIlBhcnRpY2xlc1wiXSA9IDFdID0gXCJQYXJ0aWNsZXNcIjtcbn0pKEludGVyYWN0b3JUeXBlID0gZXhwb3J0cy5JbnRlcmFjdG9yVHlwZSB8fCAoZXhwb3J0cy5JbnRlcmFjdG9yVHlwZSA9IHt9KSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Types/InteractorType.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Types/OrbitType.js": +/*!***********************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Types/OrbitType.js ***! + \***********************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.OrbitType = void 0;\nvar OrbitType;\n(function (OrbitType) {\n OrbitType[\"front\"] = \"front\";\n OrbitType[\"back\"] = \"back\";\n})(OrbitType = exports.OrbitType || (exports.OrbitType = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvVHlwZXMvT3JiaXRUeXBlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsb0NBQW9DLGlCQUFpQixLQUFLIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9FbnVtcy9UeXBlcy9PcmJpdFR5cGUuanM/ZGZhZiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuT3JiaXRUeXBlID0gdm9pZCAwO1xudmFyIE9yYml0VHlwZTtcbihmdW5jdGlvbiAoT3JiaXRUeXBlKSB7XG4gICAgT3JiaXRUeXBlW1wiZnJvbnRcIl0gPSBcImZyb250XCI7XG4gICAgT3JiaXRUeXBlW1wiYmFja1wiXSA9IFwiYmFja1wiO1xufSkoT3JiaXRUeXBlID0gZXhwb3J0cy5PcmJpdFR5cGUgfHwgKGV4cG9ydHMuT3JiaXRUeXBlID0ge30pKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Types/OrbitType.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Types/ShapeType.js": +/*!***********************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Types/ShapeType.js ***! + \***********************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ShapeType = void 0;\nvar ShapeType;\n(function (ShapeType) {\n ShapeType[\"char\"] = \"char\";\n ShapeType[\"character\"] = \"character\";\n ShapeType[\"circle\"] = \"circle\";\n ShapeType[\"edge\"] = \"edge\";\n ShapeType[\"image\"] = \"image\";\n ShapeType[\"images\"] = \"images\";\n ShapeType[\"line\"] = \"line\";\n ShapeType[\"polygon\"] = \"polygon\";\n ShapeType[\"square\"] = \"square\";\n ShapeType[\"star\"] = \"star\";\n ShapeType[\"triangle\"] = \"triangle\";\n})(ShapeType = exports.ShapeType || (exports.ShapeType = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvVHlwZXMvU2hhcGVUeXBlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsb0NBQW9DLGlCQUFpQixLQUFLIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9FbnVtcy9UeXBlcy9TaGFwZVR5cGUuanM/YzUzOSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuU2hhcGVUeXBlID0gdm9pZCAwO1xudmFyIFNoYXBlVHlwZTtcbihmdW5jdGlvbiAoU2hhcGVUeXBlKSB7XG4gICAgU2hhcGVUeXBlW1wiY2hhclwiXSA9IFwiY2hhclwiO1xuICAgIFNoYXBlVHlwZVtcImNoYXJhY3RlclwiXSA9IFwiY2hhcmFjdGVyXCI7XG4gICAgU2hhcGVUeXBlW1wiY2lyY2xlXCJdID0gXCJjaXJjbGVcIjtcbiAgICBTaGFwZVR5cGVbXCJlZGdlXCJdID0gXCJlZGdlXCI7XG4gICAgU2hhcGVUeXBlW1wiaW1hZ2VcIl0gPSBcImltYWdlXCI7XG4gICAgU2hhcGVUeXBlW1wiaW1hZ2VzXCJdID0gXCJpbWFnZXNcIjtcbiAgICBTaGFwZVR5cGVbXCJsaW5lXCJdID0gXCJsaW5lXCI7XG4gICAgU2hhcGVUeXBlW1wicG9seWdvblwiXSA9IFwicG9seWdvblwiO1xuICAgIFNoYXBlVHlwZVtcInNxdWFyZVwiXSA9IFwic3F1YXJlXCI7XG4gICAgU2hhcGVUeXBlW1wic3RhclwiXSA9IFwic3RhclwiO1xuICAgIFNoYXBlVHlwZVtcInRyaWFuZ2xlXCJdID0gXCJ0cmlhbmdsZVwiO1xufSkoU2hhcGVUeXBlID0gZXhwb3J0cy5TaGFwZVR5cGUgfHwgKGV4cG9ydHMuU2hhcGVUeXBlID0ge30pKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Types/ShapeType.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Types/StartValueType.js": +/*!****************************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Types/StartValueType.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.StartValueType = void 0;\nvar StartValueType;\n(function (StartValueType) {\n StartValueType[\"max\"] = \"max\";\n StartValueType[\"min\"] = \"min\";\n StartValueType[\"random\"] = \"random\";\n})(StartValueType = exports.StartValueType || (exports.StartValueType = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvVHlwZXMvU3RhcnRWYWx1ZVR5cGUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLDhDQUE4QyxzQkFBc0IsS0FBSyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvVHlwZXMvU3RhcnRWYWx1ZVR5cGUuanM/YTEyYyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuU3RhcnRWYWx1ZVR5cGUgPSB2b2lkIDA7XG52YXIgU3RhcnRWYWx1ZVR5cGU7XG4oZnVuY3Rpb24gKFN0YXJ0VmFsdWVUeXBlKSB7XG4gICAgU3RhcnRWYWx1ZVR5cGVbXCJtYXhcIl0gPSBcIm1heFwiO1xuICAgIFN0YXJ0VmFsdWVUeXBlW1wibWluXCJdID0gXCJtaW5cIjtcbiAgICBTdGFydFZhbHVlVHlwZVtcInJhbmRvbVwiXSA9IFwicmFuZG9tXCI7XG59KShTdGFydFZhbHVlVHlwZSA9IGV4cG9ydHMuU3RhcnRWYWx1ZVR5cGUgfHwgKGV4cG9ydHMuU3RhcnRWYWx1ZVR5cGUgPSB7fSkpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Types/StartValueType.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/Types/index.js": +/*!*******************************************************!*\ + !*** ./node_modules/tsparticles/Enums/Types/index.js ***! + \*******************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n__exportStar(__webpack_require__(/*! ./AlterType */ \"./node_modules/tsparticles/Enums/Types/AlterType.js\"), exports);\n__exportStar(__webpack_require__(/*! ./DestroyType */ \"./node_modules/tsparticles/Enums/Types/DestroyType.js\"), exports);\n__exportStar(__webpack_require__(/*! ./GradientType */ \"./node_modules/tsparticles/Enums/Types/GradientType.js\"), exports);\n__exportStar(__webpack_require__(/*! ./InteractorType */ \"./node_modules/tsparticles/Enums/Types/InteractorType.js\"), exports);\n__exportStar(__webpack_require__(/*! ./ShapeType */ \"./node_modules/tsparticles/Enums/Types/ShapeType.js\"), exports);\n__exportStar(__webpack_require__(/*! ./StartValueType */ \"./node_modules/tsparticles/Enums/Types/StartValueType.js\"), exports);\n__exportStar(__webpack_require__(/*! ./DivType */ \"./node_modules/tsparticles/Enums/Types/DivType.js\"), exports);\n__exportStar(__webpack_require__(/*! ./EasingType */ \"./node_modules/tsparticles/Enums/Types/EasingType.js\"), exports);\n__exportStar(__webpack_require__(/*! ./OrbitType */ \"./node_modules/tsparticles/Enums/Types/OrbitType.js\"), exports);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvVHlwZXMvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBO0FBQ0EsbUNBQW1DLG9DQUFvQyxnQkFBZ0I7QUFDdkYsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGFBQWEsbUJBQU8sQ0FBQyx3RUFBYTtBQUNsQyxhQUFhLG1CQUFPLENBQUMsNEVBQWU7QUFDcEMsYUFBYSxtQkFBTyxDQUFDLDhFQUFnQjtBQUNyQyxhQUFhLG1CQUFPLENBQUMsa0ZBQWtCO0FBQ3ZDLGFBQWEsbUJBQU8sQ0FBQyx3RUFBYTtBQUNsQyxhQUFhLG1CQUFPLENBQUMsa0ZBQWtCO0FBQ3ZDLGFBQWEsbUJBQU8sQ0FBQyxvRUFBVztBQUNoQyxhQUFhLG1CQUFPLENBQUMsMEVBQWM7QUFDbkMsYUFBYSxtQkFBTyxDQUFDLHdFQUFhIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9FbnVtcy9UeXBlcy9pbmRleC5qcz9lYmQyIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9fY3JlYXRlQmluZGluZyA9ICh0aGlzICYmIHRoaXMuX19jcmVhdGVCaW5kaW5nKSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH0pO1xufSkgOiAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIG9bazJdID0gbVtrXTtcbn0pKTtcbnZhciBfX2V4cG9ydFN0YXIgPSAodGhpcyAmJiB0aGlzLl9fZXhwb3J0U3RhcikgfHwgZnVuY3Rpb24obSwgZXhwb3J0cykge1xuICAgIGZvciAodmFyIHAgaW4gbSkgaWYgKHAgIT09IFwiZGVmYXVsdFwiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0cywgcCkpIF9fY3JlYXRlQmluZGluZyhleHBvcnRzLCBtLCBwKTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vQWx0ZXJUeXBlXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9EZXN0cm95VHlwZVwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vR3JhZGllbnRUeXBlXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9JbnRlcmFjdG9yVHlwZVwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vU2hhcGVUeXBlXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9TdGFydFZhbHVlVHlwZVwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vRGl2VHlwZVwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vRWFzaW5nVHlwZVwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vT3JiaXRUeXBlXCIpLCBleHBvcnRzKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/Types/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Enums/index.js": +/*!*************************************************!*\ + !*** ./node_modules/tsparticles/Enums/index.js ***! + \*************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n__exportStar(__webpack_require__(/*! ./Directions */ \"./node_modules/tsparticles/Enums/Directions/index.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Modes */ \"./node_modules/tsparticles/Enums/Modes/index.js\"), exports);\n__exportStar(__webpack_require__(/*! ./AnimationStatus */ \"./node_modules/tsparticles/Enums/AnimationStatus.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Types */ \"./node_modules/tsparticles/Enums/Types/index.js\"), exports);\n__exportStar(__webpack_require__(/*! ./InteractivityDetect */ \"./node_modules/tsparticles/Enums/InteractivityDetect.js\"), exports);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBO0FBQ0EsbUNBQW1DLG9DQUFvQyxnQkFBZ0I7QUFDdkYsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGFBQWEsbUJBQU8sQ0FBQywwRUFBYztBQUNuQyxhQUFhLG1CQUFPLENBQUMsZ0VBQVM7QUFDOUIsYUFBYSxtQkFBTyxDQUFDLDhFQUFtQjtBQUN4QyxhQUFhLG1CQUFPLENBQUMsZ0VBQVM7QUFDOUIsYUFBYSxtQkFBTyxDQUFDLHNGQUF1QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvRW51bXMvaW5kZXguanM/MDgyYyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2NyZWF0ZUJpbmRpbmcgPSAodGhpcyAmJiB0aGlzLl9fY3JlYXRlQmluZGluZykgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gbVtrXTsgfSB9KTtcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBvW2syXSA9IG1ba107XG59KSk7XG52YXIgX19leHBvcnRTdGFyID0gKHRoaXMgJiYgdGhpcy5fX2V4cG9ydFN0YXIpIHx8IGZ1bmN0aW9uKG0sIGV4cG9ydHMpIHtcbiAgICBmb3IgKHZhciBwIGluIG0pIGlmIChwICE9PSBcImRlZmF1bHRcIiAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMsIHApKSBfX2NyZWF0ZUJpbmRpbmcoZXhwb3J0cywgbSwgcCk7XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0RpcmVjdGlvbnNcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL01vZGVzXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9BbmltYXRpb25TdGF0dXNcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL1R5cGVzXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9JbnRlcmFjdGl2aXR5RGV0ZWN0XCIpLCBleHBvcnRzKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Enums/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/External/Attract/Attractor.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/External/Attract/Attractor.js ***! + \*****************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Attractor = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst Utils_1 = __webpack_require__(/*! ../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst ExternalInteractorBase_1 = __webpack_require__(/*! ../../../Core/ExternalInteractorBase */ \"./node_modules/tsparticles/Core/ExternalInteractorBase.js\");\nconst Vector_1 = __webpack_require__(/*! ../../../Core/Particle/Vector */ \"./node_modules/tsparticles/Core/Particle/Vector.js\");\nclass Attractor extends ExternalInteractorBase_1.ExternalInteractorBase {\n constructor(container) {\n super(container);\n }\n isEnabled() {\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse, events = options.interactivity.events;\n if ((!mouse.position || !events.onHover.enable) && (!mouse.clickPosition || !events.onClick.enable)) {\n return false;\n }\n const hoverMode = events.onHover.mode, clickMode = events.onClick.mode;\n return (0, Utils_1.isInArray)(Enums_1.HoverMode.attract, hoverMode) || (0, Utils_1.isInArray)(Enums_1.ClickMode.attract, clickMode);\n }\n reset() {\n }\n interact() {\n const container = this.container, options = container.actualOptions, mouseMoveStatus = container.interactivity.status === Utils_1.Constants.mouseMoveEvent, events = options.interactivity.events, hoverEnabled = events.onHover.enable, hoverMode = events.onHover.mode, clickEnabled = events.onClick.enable, clickMode = events.onClick.mode;\n if (mouseMoveStatus && hoverEnabled && (0, Utils_1.isInArray)(Enums_1.HoverMode.attract, hoverMode)) {\n this.hoverAttract();\n }\n else if (clickEnabled && (0, Utils_1.isInArray)(Enums_1.ClickMode.attract, clickMode)) {\n this.clickAttract();\n }\n }\n hoverAttract() {\n const container = this.container;\n const mousePos = container.interactivity.mouse.position;\n if (!mousePos) {\n return;\n }\n const attractRadius = container.retina.attractModeDistance;\n this.processAttract(mousePos, attractRadius, new Utils_1.Circle(mousePos.x, mousePos.y, attractRadius));\n }\n processAttract(position, attractRadius, area) {\n const container = this.container;\n const attractOptions = container.actualOptions.interactivity.modes.attract;\n const query = container.particles.quadTree.query(area);\n for (const particle of query) {\n const { dx, dy, distance } = (0, Utils_1.getDistances)(particle.position, position);\n const velocity = attractOptions.speed * attractOptions.factor;\n const attractFactor = (0, Utils_1.clamp)((0, Utils_1.calcEasing)(1 - distance / attractRadius, attractOptions.easing) * velocity, 0, attractOptions.maxSpeed);\n const normVec = Vector_1.Vector.create(distance === 0 ? velocity : (dx / distance) * attractFactor, distance === 0 ? velocity : (dy / distance) * attractFactor);\n particle.position.subFrom(normVec);\n }\n }\n clickAttract() {\n const container = this.container;\n if (!container.attract.finish) {\n if (!container.attract.count) {\n container.attract.count = 0;\n }\n container.attract.count++;\n if (container.attract.count === container.particles.count) {\n container.attract.finish = true;\n }\n }\n if (container.attract.clicking) {\n const mousePos = container.interactivity.mouse.clickPosition;\n if (!mousePos) {\n return;\n }\n const attractRadius = container.retina.attractModeDistance;\n this.processAttract(mousePos, attractRadius, new Utils_1.Circle(mousePos.x, mousePos.y, attractRadius));\n }\n else if (container.attract.clicking === false) {\n container.attract.particles = [];\n }\n return;\n }\n}\nexports.Attractor = Attractor;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL0V4dGVybmFsL0F0dHJhY3QvQXR0cmFjdG9yLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGlCQUFpQjtBQUNqQixnQkFBZ0IsbUJBQU8sQ0FBQyxpRUFBZ0I7QUFDeEMsZ0JBQWdCLG1CQUFPLENBQUMsaUVBQWdCO0FBQ3hDLGlDQUFpQyxtQkFBTyxDQUFDLHVHQUFzQztBQUMvRSxpQkFBaUIsbUJBQU8sQ0FBQyx5RkFBK0I7QUFDeEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsbUJBQW1CO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9JbnRlcmFjdGlvbnMvRXh0ZXJuYWwvQXR0cmFjdC9BdHRyYWN0b3IuanM/ZWI5MiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuQXR0cmFjdG9yID0gdm9pZCAwO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9FbnVtc1wiKTtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vVXRpbHNcIik7XG5jb25zdCBFeHRlcm5hbEludGVyYWN0b3JCYXNlXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vQ29yZS9FeHRlcm5hbEludGVyYWN0b3JCYXNlXCIpO1xuY29uc3QgVmVjdG9yXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vQ29yZS9QYXJ0aWNsZS9WZWN0b3JcIik7XG5jbGFzcyBBdHRyYWN0b3IgZXh0ZW5kcyBFeHRlcm5hbEludGVyYWN0b3JCYXNlXzEuRXh0ZXJuYWxJbnRlcmFjdG9yQmFzZSB7XG4gICAgY29uc3RydWN0b3IoY29udGFpbmVyKSB7XG4gICAgICAgIHN1cGVyKGNvbnRhaW5lcik7XG4gICAgfVxuICAgIGlzRW5hYmxlZCgpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXIsIG9wdGlvbnMgPSBjb250YWluZXIuYWN0dWFsT3B0aW9ucywgbW91c2UgPSBjb250YWluZXIuaW50ZXJhY3Rpdml0eS5tb3VzZSwgZXZlbnRzID0gb3B0aW9ucy5pbnRlcmFjdGl2aXR5LmV2ZW50cztcbiAgICAgICAgaWYgKCghbW91c2UucG9zaXRpb24gfHwgIWV2ZW50cy5vbkhvdmVyLmVuYWJsZSkgJiYgKCFtb3VzZS5jbGlja1Bvc2l0aW9uIHx8ICFldmVudHMub25DbGljay5lbmFibGUpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaG92ZXJNb2RlID0gZXZlbnRzLm9uSG92ZXIubW9kZSwgY2xpY2tNb2RlID0gZXZlbnRzLm9uQ2xpY2subW9kZTtcbiAgICAgICAgcmV0dXJuICgwLCBVdGlsc18xLmlzSW5BcnJheSkoRW51bXNfMS5Ib3Zlck1vZGUuYXR0cmFjdCwgaG92ZXJNb2RlKSB8fCAoMCwgVXRpbHNfMS5pc0luQXJyYXkpKEVudW1zXzEuQ2xpY2tNb2RlLmF0dHJhY3QsIGNsaWNrTW9kZSk7XG4gICAgfVxuICAgIHJlc2V0KCkge1xuICAgIH1cbiAgICBpbnRlcmFjdCgpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXIsIG9wdGlvbnMgPSBjb250YWluZXIuYWN0dWFsT3B0aW9ucywgbW91c2VNb3ZlU3RhdHVzID0gY29udGFpbmVyLmludGVyYWN0aXZpdHkuc3RhdHVzID09PSBVdGlsc18xLkNvbnN0YW50cy5tb3VzZU1vdmVFdmVudCwgZXZlbnRzID0gb3B0aW9ucy5pbnRlcmFjdGl2aXR5LmV2ZW50cywgaG92ZXJFbmFibGVkID0gZXZlbnRzLm9uSG92ZXIuZW5hYmxlLCBob3Zlck1vZGUgPSBldmVudHMub25Ib3Zlci5tb2RlLCBjbGlja0VuYWJsZWQgPSBldmVudHMub25DbGljay5lbmFibGUsIGNsaWNrTW9kZSA9IGV2ZW50cy5vbkNsaWNrLm1vZGU7XG4gICAgICAgIGlmIChtb3VzZU1vdmVTdGF0dXMgJiYgaG92ZXJFbmFibGVkICYmICgwLCBVdGlsc18xLmlzSW5BcnJheSkoRW51bXNfMS5Ib3Zlck1vZGUuYXR0cmFjdCwgaG92ZXJNb2RlKSkge1xuICAgICAgICAgICAgdGhpcy5ob3ZlckF0dHJhY3QoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChjbGlja0VuYWJsZWQgJiYgKDAsIFV0aWxzXzEuaXNJbkFycmF5KShFbnVtc18xLkNsaWNrTW9kZS5hdHRyYWN0LCBjbGlja01vZGUpKSB7XG4gICAgICAgICAgICB0aGlzLmNsaWNrQXR0cmFjdCgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGhvdmVyQXR0cmFjdCgpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXI7XG4gICAgICAgIGNvbnN0IG1vdXNlUG9zID0gY29udGFpbmVyLmludGVyYWN0aXZpdHkubW91c2UucG9zaXRpb247XG4gICAgICAgIGlmICghbW91c2VQb3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhdHRyYWN0UmFkaXVzID0gY29udGFpbmVyLnJldGluYS5hdHRyYWN0TW9kZURpc3RhbmNlO1xuICAgICAgICB0aGlzLnByb2Nlc3NBdHRyYWN0KG1vdXNlUG9zLCBhdHRyYWN0UmFkaXVzLCBuZXcgVXRpbHNfMS5DaXJjbGUobW91c2VQb3MueCwgbW91c2VQb3MueSwgYXR0cmFjdFJhZGl1cykpO1xuICAgIH1cbiAgICBwcm9jZXNzQXR0cmFjdChwb3NpdGlvbiwgYXR0cmFjdFJhZGl1cywgYXJlYSkge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgY29uc3QgYXR0cmFjdE9wdGlvbnMgPSBjb250YWluZXIuYWN0dWFsT3B0aW9ucy5pbnRlcmFjdGl2aXR5Lm1vZGVzLmF0dHJhY3Q7XG4gICAgICAgIGNvbnN0IHF1ZXJ5ID0gY29udGFpbmVyLnBhcnRpY2xlcy5xdWFkVHJlZS5xdWVyeShhcmVhKTtcbiAgICAgICAgZm9yIChjb25zdCBwYXJ0aWNsZSBvZiBxdWVyeSkge1xuICAgICAgICAgICAgY29uc3QgeyBkeCwgZHksIGRpc3RhbmNlIH0gPSAoMCwgVXRpbHNfMS5nZXREaXN0YW5jZXMpKHBhcnRpY2xlLnBvc2l0aW9uLCBwb3NpdGlvbik7XG4gICAgICAgICAgICBjb25zdCB2ZWxvY2l0eSA9IGF0dHJhY3RPcHRpb25zLnNwZWVkICogYXR0cmFjdE9wdGlvbnMuZmFjdG9yO1xuICAgICAgICAgICAgY29uc3QgYXR0cmFjdEZhY3RvciA9ICgwLCBVdGlsc18xLmNsYW1wKSgoMCwgVXRpbHNfMS5jYWxjRWFzaW5nKSgxIC0gZGlzdGFuY2UgLyBhdHRyYWN0UmFkaXVzLCBhdHRyYWN0T3B0aW9ucy5lYXNpbmcpICogdmVsb2NpdHksIDAsIGF0dHJhY3RPcHRpb25zLm1heFNwZWVkKTtcbiAgICAgICAgICAgIGNvbnN0IG5vcm1WZWMgPSBWZWN0b3JfMS5WZWN0b3IuY3JlYXRlKGRpc3RhbmNlID09PSAwID8gdmVsb2NpdHkgOiAoZHggLyBkaXN0YW5jZSkgKiBhdHRyYWN0RmFjdG9yLCBkaXN0YW5jZSA9PT0gMCA/IHZlbG9jaXR5IDogKGR5IC8gZGlzdGFuY2UpICogYXR0cmFjdEZhY3Rvcik7XG4gICAgICAgICAgICBwYXJ0aWNsZS5wb3NpdGlvbi5zdWJGcm9tKG5vcm1WZWMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNsaWNrQXR0cmFjdCgpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXI7XG4gICAgICAgIGlmICghY29udGFpbmVyLmF0dHJhY3QuZmluaXNoKSB7XG4gICAgICAgICAgICBpZiAoIWNvbnRhaW5lci5hdHRyYWN0LmNvdW50KSB7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLmF0dHJhY3QuY291bnQgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29udGFpbmVyLmF0dHJhY3QuY291bnQrKztcbiAgICAgICAgICAgIGlmIChjb250YWluZXIuYXR0cmFjdC5jb3VudCA9PT0gY29udGFpbmVyLnBhcnRpY2xlcy5jb3VudCkge1xuICAgICAgICAgICAgICAgIGNvbnRhaW5lci5hdHRyYWN0LmZpbmlzaCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbnRhaW5lci5hdHRyYWN0LmNsaWNraW5nKSB7XG4gICAgICAgICAgICBjb25zdCBtb3VzZVBvcyA9IGNvbnRhaW5lci5pbnRlcmFjdGl2aXR5Lm1vdXNlLmNsaWNrUG9zaXRpb247XG4gICAgICAgICAgICBpZiAoIW1vdXNlUG9zKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgYXR0cmFjdFJhZGl1cyA9IGNvbnRhaW5lci5yZXRpbmEuYXR0cmFjdE1vZGVEaXN0YW5jZTtcbiAgICAgICAgICAgIHRoaXMucHJvY2Vzc0F0dHJhY3QobW91c2VQb3MsIGF0dHJhY3RSYWRpdXMsIG5ldyBVdGlsc18xLkNpcmNsZShtb3VzZVBvcy54LCBtb3VzZVBvcy55LCBhdHRyYWN0UmFkaXVzKSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoY29udGFpbmVyLmF0dHJhY3QuY2xpY2tpbmcgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICBjb250YWluZXIuYXR0cmFjdC5wYXJ0aWNsZXMgPSBbXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgfVxufVxuZXhwb3J0cy5BdHRyYWN0b3IgPSBBdHRyYWN0b3I7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/External/Attract/Attractor.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/External/Attract/index.js": +/*!*************************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/External/Attract/index.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadExternalAttractInteraction = void 0;\nconst Attractor_1 = __webpack_require__(/*! ./Attractor */ \"./node_modules/tsparticles/Interactions/External/Attract/Attractor.js\");\nasync function loadExternalAttractInteraction(tsParticles) {\n await tsParticles.addInteractor(\"externalAttract\", (container) => new Attractor_1.Attractor(container));\n}\nexports.loadExternalAttractInteraction = loadExternalAttractInteraction;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL0V4dGVybmFsL0F0dHJhY3QvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsc0NBQXNDO0FBQ3RDLG9CQUFvQixtQkFBTyxDQUFDLDBGQUFhO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBLHNDQUFzQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL0V4dGVybmFsL0F0dHJhY3QvaW5kZXguanM/OGMxYyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMubG9hZEV4dGVybmFsQXR0cmFjdEludGVyYWN0aW9uID0gdm9pZCAwO1xuY29uc3QgQXR0cmFjdG9yXzEgPSByZXF1aXJlKFwiLi9BdHRyYWN0b3JcIik7XG5hc3luYyBmdW5jdGlvbiBsb2FkRXh0ZXJuYWxBdHRyYWN0SW50ZXJhY3Rpb24odHNQYXJ0aWNsZXMpIHtcbiAgICBhd2FpdCB0c1BhcnRpY2xlcy5hZGRJbnRlcmFjdG9yKFwiZXh0ZXJuYWxBdHRyYWN0XCIsIChjb250YWluZXIpID0+IG5ldyBBdHRyYWN0b3JfMS5BdHRyYWN0b3IoY29udGFpbmVyKSk7XG59XG5leHBvcnRzLmxvYWRFeHRlcm5hbEF0dHJhY3RJbnRlcmFjdGlvbiA9IGxvYWRFeHRlcm5hbEF0dHJhY3RJbnRlcmFjdGlvbjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/External/Attract/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/External/Bounce/Bouncer.js": +/*!**************************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/External/Bounce/Bouncer.js ***! + \**************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Bouncer = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Enums_1 = __webpack_require__(/*! ../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst Vector_1 = __webpack_require__(/*! ../../../Core/Particle/Vector */ \"./node_modules/tsparticles/Core/Particle/Vector.js\");\nconst ExternalInteractorBase_1 = __webpack_require__(/*! ../../../Core/ExternalInteractorBase */ \"./node_modules/tsparticles/Core/ExternalInteractorBase.js\");\nclass Bouncer extends ExternalInteractorBase_1.ExternalInteractorBase {\n constructor(container) {\n super(container);\n }\n isEnabled() {\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse, events = options.interactivity.events, divs = events.onDiv;\n return ((mouse.position && events.onHover.enable && (0, Utils_1.isInArray)(Enums_1.HoverMode.bounce, events.onHover.mode)) ||\n (0, Utils_1.isDivModeEnabled)(Enums_1.DivMode.bounce, divs));\n }\n interact() {\n const container = this.container, options = container.actualOptions, events = options.interactivity.events, mouseMoveStatus = container.interactivity.status === Utils_1.Constants.mouseMoveEvent, hoverEnabled = events.onHover.enable, hoverMode = events.onHover.mode, divs = events.onDiv;\n if (mouseMoveStatus && hoverEnabled && (0, Utils_1.isInArray)(Enums_1.HoverMode.bounce, hoverMode)) {\n this.processMouseBounce();\n }\n else {\n (0, Utils_1.divModeExecute)(Enums_1.DivMode.bounce, divs, (selector, div) => this.singleSelectorBounce(selector, div));\n }\n }\n reset() {\n }\n processMouseBounce() {\n const container = this.container, pxRatio = container.retina.pixelRatio, tolerance = 10 * pxRatio, mousePos = container.interactivity.mouse.position, radius = container.retina.bounceModeDistance;\n if (mousePos) {\n this.processBounce(mousePos, radius, new Utils_1.Circle(mousePos.x, mousePos.y, radius + tolerance));\n }\n }\n singleSelectorBounce(selector, div) {\n const container = this.container;\n const query = document.querySelectorAll(selector);\n if (!query.length) {\n return;\n }\n query.forEach((item) => {\n const elem = item, pxRatio = container.retina.pixelRatio, pos = {\n x: (elem.offsetLeft + elem.offsetWidth / 2) * pxRatio,\n y: (elem.offsetTop + elem.offsetHeight / 2) * pxRatio,\n }, radius = (elem.offsetWidth / 2) * pxRatio, tolerance = 10 * pxRatio;\n const area = div.type === Enums_1.DivType.circle\n ? new Utils_1.Circle(pos.x, pos.y, radius + tolerance)\n : new Utils_1.Rectangle(elem.offsetLeft * pxRatio - tolerance, elem.offsetTop * pxRatio - tolerance, elem.offsetWidth * pxRatio + tolerance * 2, elem.offsetHeight * pxRatio + tolerance * 2);\n this.processBounce(pos, radius, area);\n });\n }\n processBounce(position, radius, area) {\n const query = this.container.particles.quadTree.query(area);\n for (const particle of query) {\n if (area instanceof Utils_1.Circle) {\n (0, Utils_1.circleBounce)((0, Utils_1.circleBounceDataFromParticle)(particle), {\n position,\n radius,\n mass: (radius ** 2 * Math.PI) / 2,\n velocity: Vector_1.Vector.origin,\n factor: Vector_1.Vector.origin,\n });\n }\n else if (area instanceof Utils_1.Rectangle) {\n (0, Utils_1.rectBounce)(particle, (0, Utils_1.calculateBounds)(position, radius));\n }\n }\n }\n}\nexports.Bouncer = Bouncer;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL0V4dGVybmFsL0JvdW5jZS9Cb3VuY2VyLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGVBQWU7QUFDZixnQkFBZ0IsbUJBQU8sQ0FBQyxpRUFBZ0I7QUFDeEMsZ0JBQWdCLG1CQUFPLENBQUMsaUVBQWdCO0FBQ3hDLGlCQUFpQixtQkFBTyxDQUFDLHlGQUErQjtBQUN4RCxpQ0FBaUMsbUJBQU8sQ0FBQyx1R0FBc0M7QUFDL0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9JbnRlcmFjdGlvbnMvRXh0ZXJuYWwvQm91bmNlL0JvdW5jZXIuanM/NGU2NiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuQm91bmNlciA9IHZvaWQgMDtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vVXRpbHNcIik7XG5jb25zdCBFbnVtc18xID0gcmVxdWlyZShcIi4uLy4uLy4uL0VudW1zXCIpO1xuY29uc3QgVmVjdG9yXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vQ29yZS9QYXJ0aWNsZS9WZWN0b3JcIik7XG5jb25zdCBFeHRlcm5hbEludGVyYWN0b3JCYXNlXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vQ29yZS9FeHRlcm5hbEludGVyYWN0b3JCYXNlXCIpO1xuY2xhc3MgQm91bmNlciBleHRlbmRzIEV4dGVybmFsSW50ZXJhY3RvckJhc2VfMS5FeHRlcm5hbEludGVyYWN0b3JCYXNlIHtcbiAgICBjb25zdHJ1Y3Rvcihjb250YWluZXIpIHtcbiAgICAgICAgc3VwZXIoY29udGFpbmVyKTtcbiAgICB9XG4gICAgaXNFbmFibGVkKCkge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lciwgb3B0aW9ucyA9IGNvbnRhaW5lci5hY3R1YWxPcHRpb25zLCBtb3VzZSA9IGNvbnRhaW5lci5pbnRlcmFjdGl2aXR5Lm1vdXNlLCBldmVudHMgPSBvcHRpb25zLmludGVyYWN0aXZpdHkuZXZlbnRzLCBkaXZzID0gZXZlbnRzLm9uRGl2O1xuICAgICAgICByZXR1cm4gKChtb3VzZS5wb3NpdGlvbiAmJiBldmVudHMub25Ib3Zlci5lbmFibGUgJiYgKDAsIFV0aWxzXzEuaXNJbkFycmF5KShFbnVtc18xLkhvdmVyTW9kZS5ib3VuY2UsIGV2ZW50cy5vbkhvdmVyLm1vZGUpKSB8fFxuICAgICAgICAgICAgKDAsIFV0aWxzXzEuaXNEaXZNb2RlRW5hYmxlZCkoRW51bXNfMS5EaXZNb2RlLmJvdW5jZSwgZGl2cykpO1xuICAgIH1cbiAgICBpbnRlcmFjdCgpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXIsIG9wdGlvbnMgPSBjb250YWluZXIuYWN0dWFsT3B0aW9ucywgZXZlbnRzID0gb3B0aW9ucy5pbnRlcmFjdGl2aXR5LmV2ZW50cywgbW91c2VNb3ZlU3RhdHVzID0gY29udGFpbmVyLmludGVyYWN0aXZpdHkuc3RhdHVzID09PSBVdGlsc18xLkNvbnN0YW50cy5tb3VzZU1vdmVFdmVudCwgaG92ZXJFbmFibGVkID0gZXZlbnRzLm9uSG92ZXIuZW5hYmxlLCBob3Zlck1vZGUgPSBldmVudHMub25Ib3Zlci5tb2RlLCBkaXZzID0gZXZlbnRzLm9uRGl2O1xuICAgICAgICBpZiAobW91c2VNb3ZlU3RhdHVzICYmIGhvdmVyRW5hYmxlZCAmJiAoMCwgVXRpbHNfMS5pc0luQXJyYXkpKEVudW1zXzEuSG92ZXJNb2RlLmJvdW5jZSwgaG92ZXJNb2RlKSkge1xuICAgICAgICAgICAgdGhpcy5wcm9jZXNzTW91c2VCb3VuY2UoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICgwLCBVdGlsc18xLmRpdk1vZGVFeGVjdXRlKShFbnVtc18xLkRpdk1vZGUuYm91bmNlLCBkaXZzLCAoc2VsZWN0b3IsIGRpdikgPT4gdGhpcy5zaW5nbGVTZWxlY3RvckJvdW5jZShzZWxlY3RvciwgZGl2KSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmVzZXQoKSB7XG4gICAgfVxuICAgIHByb2Nlc3NNb3VzZUJvdW5jZSgpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXIsIHB4UmF0aW8gPSBjb250YWluZXIucmV0aW5hLnBpeGVsUmF0aW8sIHRvbGVyYW5jZSA9IDEwICogcHhSYXRpbywgbW91c2VQb3MgPSBjb250YWluZXIuaW50ZXJhY3Rpdml0eS5tb3VzZS5wb3NpdGlvbiwgcmFkaXVzID0gY29udGFpbmVyLnJldGluYS5ib3VuY2VNb2RlRGlzdGFuY2U7XG4gICAgICAgIGlmIChtb3VzZVBvcykge1xuICAgICAgICAgICAgdGhpcy5wcm9jZXNzQm91bmNlKG1vdXNlUG9zLCByYWRpdXMsIG5ldyBVdGlsc18xLkNpcmNsZShtb3VzZVBvcy54LCBtb3VzZVBvcy55LCByYWRpdXMgKyB0b2xlcmFuY2UpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzaW5nbGVTZWxlY3RvckJvdW5jZShzZWxlY3RvciwgZGl2KSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyO1xuICAgICAgICBjb25zdCBxdWVyeSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpO1xuICAgICAgICBpZiAoIXF1ZXJ5Lmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHF1ZXJ5LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW0gPSBpdGVtLCBweFJhdGlvID0gY29udGFpbmVyLnJldGluYS5waXhlbFJhdGlvLCBwb3MgPSB7XG4gICAgICAgICAgICAgICAgeDogKGVsZW0ub2Zmc2V0TGVmdCArIGVsZW0ub2Zmc2V0V2lkdGggLyAyKSAqIHB4UmF0aW8sXG4gICAgICAgICAgICAgICAgeTogKGVsZW0ub2Zmc2V0VG9wICsgZWxlbS5vZmZzZXRIZWlnaHQgLyAyKSAqIHB4UmF0aW8sXG4gICAgICAgICAgICB9LCByYWRpdXMgPSAoZWxlbS5vZmZzZXRXaWR0aCAvIDIpICogcHhSYXRpbywgdG9sZXJhbmNlID0gMTAgKiBweFJhdGlvO1xuICAgICAgICAgICAgY29uc3QgYXJlYSA9IGRpdi50eXBlID09PSBFbnVtc18xLkRpdlR5cGUuY2lyY2xlXG4gICAgICAgICAgICAgICAgPyBuZXcgVXRpbHNfMS5DaXJjbGUocG9zLngsIHBvcy55LCByYWRpdXMgKyB0b2xlcmFuY2UpXG4gICAgICAgICAgICAgICAgOiBuZXcgVXRpbHNfMS5SZWN0YW5nbGUoZWxlbS5vZmZzZXRMZWZ0ICogcHhSYXRpbyAtIHRvbGVyYW5jZSwgZWxlbS5vZmZzZXRUb3AgKiBweFJhdGlvIC0gdG9sZXJhbmNlLCBlbGVtLm9mZnNldFdpZHRoICogcHhSYXRpbyArIHRvbGVyYW5jZSAqIDIsIGVsZW0ub2Zmc2V0SGVpZ2h0ICogcHhSYXRpbyArIHRvbGVyYW5jZSAqIDIpO1xuICAgICAgICAgICAgdGhpcy5wcm9jZXNzQm91bmNlKHBvcywgcmFkaXVzLCBhcmVhKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHByb2Nlc3NCb3VuY2UocG9zaXRpb24sIHJhZGl1cywgYXJlYSkge1xuICAgICAgICBjb25zdCBxdWVyeSA9IHRoaXMuY29udGFpbmVyLnBhcnRpY2xlcy5xdWFkVHJlZS5xdWVyeShhcmVhKTtcbiAgICAgICAgZm9yIChjb25zdCBwYXJ0aWNsZSBvZiBxdWVyeSkge1xuICAgICAgICAgICAgaWYgKGFyZWEgaW5zdGFuY2VvZiBVdGlsc18xLkNpcmNsZSkge1xuICAgICAgICAgICAgICAgICgwLCBVdGlsc18xLmNpcmNsZUJvdW5jZSkoKDAsIFV0aWxzXzEuY2lyY2xlQm91bmNlRGF0YUZyb21QYXJ0aWNsZSkocGFydGljbGUpLCB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgICAgICAgICByYWRpdXMsXG4gICAgICAgICAgICAgICAgICAgIG1hc3M6IChyYWRpdXMgKiogMiAqIE1hdGguUEkpIC8gMixcbiAgICAgICAgICAgICAgICAgICAgdmVsb2NpdHk6IFZlY3Rvcl8xLlZlY3Rvci5vcmlnaW4sXG4gICAgICAgICAgICAgICAgICAgIGZhY3RvcjogVmVjdG9yXzEuVmVjdG9yLm9yaWdpbixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGFyZWEgaW5zdGFuY2VvZiBVdGlsc18xLlJlY3RhbmdsZSkge1xuICAgICAgICAgICAgICAgICgwLCBVdGlsc18xLnJlY3RCb3VuY2UpKHBhcnRpY2xlLCAoMCwgVXRpbHNfMS5jYWxjdWxhdGVCb3VuZHMpKHBvc2l0aW9uLCByYWRpdXMpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuQm91bmNlciA9IEJvdW5jZXI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/External/Bounce/Bouncer.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/External/Bounce/index.js": +/*!************************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/External/Bounce/index.js ***! + \************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadExternalBounceInteraction = void 0;\nconst Bouncer_1 = __webpack_require__(/*! ./Bouncer */ \"./node_modules/tsparticles/Interactions/External/Bounce/Bouncer.js\");\nasync function loadExternalBounceInteraction(tsParticles) {\n await tsParticles.addInteractor(\"externalBounce\", (container) => new Bouncer_1.Bouncer(container));\n}\nexports.loadExternalBounceInteraction = loadExternalBounceInteraction;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL0V4dGVybmFsL0JvdW5jZS9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxxQ0FBcUM7QUFDckMsa0JBQWtCLG1CQUFPLENBQUMscUZBQVc7QUFDckM7QUFDQTtBQUNBO0FBQ0EscUNBQXFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9JbnRlcmFjdGlvbnMvRXh0ZXJuYWwvQm91bmNlL2luZGV4LmpzPzVjNGUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmxvYWRFeHRlcm5hbEJvdW5jZUludGVyYWN0aW9uID0gdm9pZCAwO1xuY29uc3QgQm91bmNlcl8xID0gcmVxdWlyZShcIi4vQm91bmNlclwiKTtcbmFzeW5jIGZ1bmN0aW9uIGxvYWRFeHRlcm5hbEJvdW5jZUludGVyYWN0aW9uKHRzUGFydGljbGVzKSB7XG4gICAgYXdhaXQgdHNQYXJ0aWNsZXMuYWRkSW50ZXJhY3RvcihcImV4dGVybmFsQm91bmNlXCIsIChjb250YWluZXIpID0+IG5ldyBCb3VuY2VyXzEuQm91bmNlcihjb250YWluZXIpKTtcbn1cbmV4cG9ydHMubG9hZEV4dGVybmFsQm91bmNlSW50ZXJhY3Rpb24gPSBsb2FkRXh0ZXJuYWxCb3VuY2VJbnRlcmFjdGlvbjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/External/Bounce/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/External/Bubble/Bubbler.js": +/*!**************************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/External/Bubble/Bubbler.js ***! + \**************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Bubbler = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Enums_1 = __webpack_require__(/*! ../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst ExternalInteractorBase_1 = __webpack_require__(/*! ../../../Core/ExternalInteractorBase */ \"./node_modules/tsparticles/Core/ExternalInteractorBase.js\");\nconst ProcessBubbleType_1 = __webpack_require__(/*! ./ProcessBubbleType */ \"./node_modules/tsparticles/Interactions/External/Bubble/ProcessBubbleType.js\");\nfunction calculateBubbleValue(particleValue, modeValue, optionsValue, ratio) {\n if (modeValue >= optionsValue) {\n const value = particleValue + (modeValue - optionsValue) * ratio;\n return (0, Utils_1.clamp)(value, particleValue, modeValue);\n }\n else if (modeValue < optionsValue) {\n const value = particleValue - (optionsValue - modeValue) * ratio;\n return (0, Utils_1.clamp)(value, modeValue, particleValue);\n }\n}\nclass Bubbler extends ExternalInteractorBase_1.ExternalInteractorBase {\n constructor(container) {\n super(container);\n }\n isEnabled() {\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse, events = options.interactivity.events, divs = events.onDiv, divBubble = (0, Utils_1.isDivModeEnabled)(Enums_1.DivMode.bubble, divs);\n if (!(divBubble || (events.onHover.enable && mouse.position) || (events.onClick.enable && mouse.clickPosition))) {\n return false;\n }\n const hoverMode = events.onHover.mode;\n const clickMode = events.onClick.mode;\n return (0, Utils_1.isInArray)(Enums_1.HoverMode.bubble, hoverMode) || (0, Utils_1.isInArray)(Enums_1.ClickMode.bubble, clickMode) || divBubble;\n }\n reset(particle, force) {\n if (!(!particle.bubble.inRange || force)) {\n return;\n }\n delete particle.bubble.div;\n delete particle.bubble.opacity;\n delete particle.bubble.radius;\n delete particle.bubble.color;\n }\n interact() {\n const options = this.container.actualOptions, events = options.interactivity.events, onHover = events.onHover, onClick = events.onClick, hoverEnabled = onHover.enable, hoverMode = onHover.mode, clickEnabled = onClick.enable, clickMode = onClick.mode, divs = events.onDiv;\n if (hoverEnabled && (0, Utils_1.isInArray)(Enums_1.HoverMode.bubble, hoverMode)) {\n this.hoverBubble();\n }\n else if (clickEnabled && (0, Utils_1.isInArray)(Enums_1.ClickMode.bubble, clickMode)) {\n this.clickBubble();\n }\n else {\n (0, Utils_1.divModeExecute)(Enums_1.DivMode.bubble, divs, (selector, div) => this.singleSelectorHover(selector, div));\n }\n }\n singleSelectorHover(selector, div) {\n const container = this.container, selectors = document.querySelectorAll(selector);\n if (!selectors.length) {\n return;\n }\n selectors.forEach((item) => {\n const elem = item, pxRatio = container.retina.pixelRatio, pos = {\n x: (elem.offsetLeft + elem.offsetWidth / 2) * pxRatio,\n y: (elem.offsetTop + elem.offsetHeight / 2) * pxRatio,\n }, repulseRadius = (elem.offsetWidth / 2) * pxRatio, area = div.type === Enums_1.DivType.circle\n ? new Utils_1.Circle(pos.x, pos.y, repulseRadius)\n : new Utils_1.Rectangle(elem.offsetLeft * pxRatio, elem.offsetTop * pxRatio, elem.offsetWidth * pxRatio, elem.offsetHeight * pxRatio), query = container.particles.quadTree.query(area);\n for (const particle of query) {\n if (!area.contains(particle.getPosition())) {\n continue;\n }\n particle.bubble.inRange = true;\n const divs = container.actualOptions.interactivity.modes.bubble.divs;\n const divBubble = (0, Utils_1.divMode)(divs, elem);\n if (!particle.bubble.div || particle.bubble.div !== elem) {\n this.reset(particle, true);\n particle.bubble.div = elem;\n }\n this.hoverBubbleSize(particle, 1, divBubble);\n this.hoverBubbleOpacity(particle, 1, divBubble);\n this.hoverBubbleColor(particle, 1, divBubble);\n }\n });\n }\n process(particle, distMouse, timeSpent, data) {\n const container = this.container, bubbleParam = data.bubbleObj.optValue;\n if (bubbleParam === undefined) {\n return;\n }\n const options = container.actualOptions, bubbleDuration = options.interactivity.modes.bubble.duration, bubbleDistance = container.retina.bubbleModeDistance, particlesParam = data.particlesObj.optValue, pObjBubble = data.bubbleObj.value, pObj = data.particlesObj.value || 0, type = data.type;\n if (bubbleParam === particlesParam) {\n return;\n }\n if (!container.bubble.durationEnd) {\n if (distMouse <= bubbleDistance) {\n const obj = pObjBubble !== null && pObjBubble !== void 0 ? pObjBubble : pObj;\n if (obj !== bubbleParam) {\n const value = pObj - (timeSpent * (pObj - bubbleParam)) / bubbleDuration;\n if (type === ProcessBubbleType_1.ProcessBubbleType.size) {\n particle.bubble.radius = value;\n }\n if (type === ProcessBubbleType_1.ProcessBubbleType.opacity) {\n particle.bubble.opacity = value;\n }\n }\n }\n else {\n if (type === ProcessBubbleType_1.ProcessBubbleType.size) {\n delete particle.bubble.radius;\n }\n if (type === ProcessBubbleType_1.ProcessBubbleType.opacity) {\n delete particle.bubble.opacity;\n }\n }\n }\n else if (pObjBubble) {\n if (type === ProcessBubbleType_1.ProcessBubbleType.size) {\n delete particle.bubble.radius;\n }\n if (type === ProcessBubbleType_1.ProcessBubbleType.opacity) {\n delete particle.bubble.opacity;\n }\n }\n }\n clickBubble() {\n var _a, _b;\n const container = this.container, options = container.actualOptions, mouseClickPos = container.interactivity.mouse.clickPosition;\n if (!mouseClickPos) {\n return;\n }\n const distance = container.retina.bubbleModeDistance, query = container.particles.quadTree.queryCircle(mouseClickPos, distance);\n for (const particle of query) {\n if (!container.bubble.clicking) {\n continue;\n }\n particle.bubble.inRange = !container.bubble.durationEnd;\n const pos = particle.getPosition(), distMouse = (0, Utils_1.getDistance)(pos, mouseClickPos), timeSpent = (new Date().getTime() - (container.interactivity.mouse.clickTime || 0)) / 1000;\n if (timeSpent > options.interactivity.modes.bubble.duration) {\n container.bubble.durationEnd = true;\n }\n if (timeSpent > options.interactivity.modes.bubble.duration * 2) {\n container.bubble.clicking = false;\n container.bubble.durationEnd = false;\n }\n const sizeData = {\n bubbleObj: {\n optValue: container.retina.bubbleModeSize,\n value: particle.bubble.radius,\n },\n particlesObj: {\n optValue: (0, Utils_1.getRangeMax)(particle.options.size.value) * container.retina.pixelRatio,\n value: particle.size.value,\n },\n type: ProcessBubbleType_1.ProcessBubbleType.size,\n };\n this.process(particle, distMouse, timeSpent, sizeData);\n const opacityData = {\n bubbleObj: {\n optValue: options.interactivity.modes.bubble.opacity,\n value: particle.bubble.opacity,\n },\n particlesObj: {\n optValue: (0, Utils_1.getRangeMax)(particle.options.opacity.value),\n value: (_b = (_a = particle.opacity) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : 1,\n },\n type: ProcessBubbleType_1.ProcessBubbleType.opacity,\n };\n this.process(particle, distMouse, timeSpent, opacityData);\n if (!container.bubble.durationEnd) {\n if (distMouse <= container.retina.bubbleModeDistance) {\n this.hoverBubbleColor(particle, distMouse);\n }\n else {\n delete particle.bubble.color;\n }\n }\n else {\n delete particle.bubble.color;\n }\n }\n }\n hoverBubble() {\n const container = this.container, mousePos = container.interactivity.mouse.position;\n if (mousePos === undefined) {\n return;\n }\n const distance = container.retina.bubbleModeDistance, query = container.particles.quadTree.queryCircle(mousePos, distance);\n for (const particle of query) {\n particle.bubble.inRange = true;\n const pos = particle.getPosition(), pointDistance = (0, Utils_1.getDistance)(pos, mousePos), ratio = 1 - pointDistance / distance;\n if (pointDistance <= distance) {\n if (ratio >= 0 && container.interactivity.status === Utils_1.Constants.mouseMoveEvent) {\n this.hoverBubbleSize(particle, ratio);\n this.hoverBubbleOpacity(particle, ratio);\n this.hoverBubbleColor(particle, ratio);\n }\n }\n else {\n this.reset(particle);\n }\n if (container.interactivity.status === Utils_1.Constants.mouseLeaveEvent) {\n this.reset(particle);\n }\n }\n }\n hoverBubbleSize(particle, ratio, divBubble) {\n const container = this.container, modeSize = (divBubble === null || divBubble === void 0 ? void 0 : divBubble.size) ? divBubble.size * container.retina.pixelRatio : container.retina.bubbleModeSize;\n if (modeSize === undefined) {\n return;\n }\n const optSize = (0, Utils_1.getRangeMax)(particle.options.size.value) * container.retina.pixelRatio;\n const pSize = particle.size.value;\n const size = calculateBubbleValue(pSize, modeSize, optSize, ratio);\n if (size !== undefined) {\n particle.bubble.radius = size;\n }\n }\n hoverBubbleOpacity(particle, ratio, divBubble) {\n var _a, _b, _c;\n const container = this.container, options = container.actualOptions, modeOpacity = (_a = divBubble === null || divBubble === void 0 ? void 0 : divBubble.opacity) !== null && _a !== void 0 ? _a : options.interactivity.modes.bubble.opacity;\n if (!modeOpacity) {\n return;\n }\n const optOpacity = particle.options.opacity.value;\n const pOpacity = (_c = (_b = particle.opacity) === null || _b === void 0 ? void 0 : _b.value) !== null && _c !== void 0 ? _c : 1;\n const opacity = calculateBubbleValue(pOpacity, modeOpacity, (0, Utils_1.getRangeMax)(optOpacity), ratio);\n if (opacity !== undefined) {\n particle.bubble.opacity = opacity;\n }\n }\n hoverBubbleColor(particle, ratio, divBubble) {\n const options = this.container.actualOptions;\n const bubbleOptions = divBubble !== null && divBubble !== void 0 ? divBubble : options.interactivity.modes.bubble;\n if (!particle.bubble.finalColor) {\n const modeColor = bubbleOptions.color;\n if (!modeColor) {\n return;\n }\n const bubbleColor = modeColor instanceof Array ? (0, Utils_1.itemFromArray)(modeColor) : modeColor;\n particle.bubble.finalColor = (0, Utils_1.colorToHsl)(bubbleColor);\n }\n if (!particle.bubble.finalColor) {\n return;\n }\n if (bubbleOptions.mix) {\n particle.bubble.color = undefined;\n const pColor = particle.getFillColor();\n particle.bubble.color = pColor\n ? (0, Utils_1.rgbToHsl)((0, Utils_1.colorMix)(pColor, particle.bubble.finalColor, 1 - ratio, ratio))\n : particle.bubble.finalColor;\n }\n else {\n particle.bubble.color = particle.bubble.finalColor;\n }\n }\n}\nexports.Bubbler = Bubbler;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL0V4dGVybmFsL0J1YmJsZS9CdWJibGVyLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGVBQWU7QUFDZixnQkFBZ0IsbUJBQU8sQ0FBQyxpRUFBZ0I7QUFDeEMsZ0JBQWdCLG1CQUFPLENBQUMsaUVBQWdCO0FBQ3hDLGlDQUFpQyxtQkFBTyxDQUFDLHVHQUFzQztBQUMvRSw0QkFBNEIsbUJBQU8sQ0FBQyx5R0FBcUI7QUFDekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0ludGVyYWN0aW9ucy9FeHRlcm5hbC9CdWJibGUvQnViYmxlci5qcz8xMzhkIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5CdWJibGVyID0gdm9pZCAwO1xuY29uc3QgVXRpbHNfMSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9VdGlsc1wiKTtcbmNvbnN0IEVudW1zXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vRW51bXNcIik7XG5jb25zdCBFeHRlcm5hbEludGVyYWN0b3JCYXNlXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vQ29yZS9FeHRlcm5hbEludGVyYWN0b3JCYXNlXCIpO1xuY29uc3QgUHJvY2Vzc0J1YmJsZVR5cGVfMSA9IHJlcXVpcmUoXCIuL1Byb2Nlc3NCdWJibGVUeXBlXCIpO1xuZnVuY3Rpb24gY2FsY3VsYXRlQnViYmxlVmFsdWUocGFydGljbGVWYWx1ZSwgbW9kZVZhbHVlLCBvcHRpb25zVmFsdWUsIHJhdGlvKSB7XG4gICAgaWYgKG1vZGVWYWx1ZSA+PSBvcHRpb25zVmFsdWUpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBwYXJ0aWNsZVZhbHVlICsgKG1vZGVWYWx1ZSAtIG9wdGlvbnNWYWx1ZSkgKiByYXRpbztcbiAgICAgICAgcmV0dXJuICgwLCBVdGlsc18xLmNsYW1wKSh2YWx1ZSwgcGFydGljbGVWYWx1ZSwgbW9kZVZhbHVlKTtcbiAgICB9XG4gICAgZWxzZSBpZiAobW9kZVZhbHVlIDwgb3B0aW9uc1ZhbHVlKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gcGFydGljbGVWYWx1ZSAtIChvcHRpb25zVmFsdWUgLSBtb2RlVmFsdWUpICogcmF0aW87XG4gICAgICAgIHJldHVybiAoMCwgVXRpbHNfMS5jbGFtcCkodmFsdWUsIG1vZGVWYWx1ZSwgcGFydGljbGVWYWx1ZSk7XG4gICAgfVxufVxuY2xhc3MgQnViYmxlciBleHRlbmRzIEV4dGVybmFsSW50ZXJhY3RvckJhc2VfMS5FeHRlcm5hbEludGVyYWN0b3JCYXNlIHtcbiAgICBjb25zdHJ1Y3Rvcihjb250YWluZXIpIHtcbiAgICAgICAgc3VwZXIoY29udGFpbmVyKTtcbiAgICB9XG4gICAgaXNFbmFibGVkKCkge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lciwgb3B0aW9ucyA9IGNvbnRhaW5lci5hY3R1YWxPcHRpb25zLCBtb3VzZSA9IGNvbnRhaW5lci5pbnRlcmFjdGl2aXR5Lm1vdXNlLCBldmVudHMgPSBvcHRpb25zLmludGVyYWN0aXZpdHkuZXZlbnRzLCBkaXZzID0gZXZlbnRzLm9uRGl2LCBkaXZCdWJibGUgPSAoMCwgVXRpbHNfMS5pc0Rpdk1vZGVFbmFibGVkKShFbnVtc18xLkRpdk1vZGUuYnViYmxlLCBkaXZzKTtcbiAgICAgICAgaWYgKCEoZGl2QnViYmxlIHx8IChldmVudHMub25Ib3Zlci5lbmFibGUgJiYgbW91c2UucG9zaXRpb24pIHx8IChldmVudHMub25DbGljay5lbmFibGUgJiYgbW91c2UuY2xpY2tQb3NpdGlvbikpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaG92ZXJNb2RlID0gZXZlbnRzLm9uSG92ZXIubW9kZTtcbiAgICAgICAgY29uc3QgY2xpY2tNb2RlID0gZXZlbnRzLm9uQ2xpY2subW9kZTtcbiAgICAgICAgcmV0dXJuICgwLCBVdGlsc18xLmlzSW5BcnJheSkoRW51bXNfMS5Ib3Zlck1vZGUuYnViYmxlLCBob3Zlck1vZGUpIHx8ICgwLCBVdGlsc18xLmlzSW5BcnJheSkoRW51bXNfMS5DbGlja01vZGUuYnViYmxlLCBjbGlja01vZGUpIHx8IGRpdkJ1YmJsZTtcbiAgICB9XG4gICAgcmVzZXQocGFydGljbGUsIGZvcmNlKSB7XG4gICAgICAgIGlmICghKCFwYXJ0aWNsZS5idWJibGUuaW5SYW5nZSB8fCBmb3JjZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBkZWxldGUgcGFydGljbGUuYnViYmxlLmRpdjtcbiAgICAgICAgZGVsZXRlIHBhcnRpY2xlLmJ1YmJsZS5vcGFjaXR5O1xuICAgICAgICBkZWxldGUgcGFydGljbGUuYnViYmxlLnJhZGl1cztcbiAgICAgICAgZGVsZXRlIHBhcnRpY2xlLmJ1YmJsZS5jb2xvcjtcbiAgICB9XG4gICAgaW50ZXJhY3QoKSB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmNvbnRhaW5lci5hY3R1YWxPcHRpb25zLCBldmVudHMgPSBvcHRpb25zLmludGVyYWN0aXZpdHkuZXZlbnRzLCBvbkhvdmVyID0gZXZlbnRzLm9uSG92ZXIsIG9uQ2xpY2sgPSBldmVudHMub25DbGljaywgaG92ZXJFbmFibGVkID0gb25Ib3Zlci5lbmFibGUsIGhvdmVyTW9kZSA9IG9uSG92ZXIubW9kZSwgY2xpY2tFbmFibGVkID0gb25DbGljay5lbmFibGUsIGNsaWNrTW9kZSA9IG9uQ2xpY2subW9kZSwgZGl2cyA9IGV2ZW50cy5vbkRpdjtcbiAgICAgICAgaWYgKGhvdmVyRW5hYmxlZCAmJiAoMCwgVXRpbHNfMS5pc0luQXJyYXkpKEVudW1zXzEuSG92ZXJNb2RlLmJ1YmJsZSwgaG92ZXJNb2RlKSkge1xuICAgICAgICAgICAgdGhpcy5ob3ZlckJ1YmJsZSgpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGNsaWNrRW5hYmxlZCAmJiAoMCwgVXRpbHNfMS5pc0luQXJyYXkpKEVudW1zXzEuQ2xpY2tNb2RlLmJ1YmJsZSwgY2xpY2tNb2RlKSkge1xuICAgICAgICAgICAgdGhpcy5jbGlja0J1YmJsZSgpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgKDAsIFV0aWxzXzEuZGl2TW9kZUV4ZWN1dGUpKEVudW1zXzEuRGl2TW9kZS5idWJibGUsIGRpdnMsIChzZWxlY3RvciwgZGl2KSA9PiB0aGlzLnNpbmdsZVNlbGVjdG9ySG92ZXIoc2VsZWN0b3IsIGRpdikpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHNpbmdsZVNlbGVjdG9ySG92ZXIoc2VsZWN0b3IsIGRpdikge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lciwgc2VsZWN0b3JzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7XG4gICAgICAgIGlmICghc2VsZWN0b3JzLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHNlbGVjdG9ycy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBlbGVtID0gaXRlbSwgcHhSYXRpbyA9IGNvbnRhaW5lci5yZXRpbmEucGl4ZWxSYXRpbywgcG9zID0ge1xuICAgICAgICAgICAgICAgIHg6IChlbGVtLm9mZnNldExlZnQgKyBlbGVtLm9mZnNldFdpZHRoIC8gMikgKiBweFJhdGlvLFxuICAgICAgICAgICAgICAgIHk6IChlbGVtLm9mZnNldFRvcCArIGVsZW0ub2Zmc2V0SGVpZ2h0IC8gMikgKiBweFJhdGlvLFxuICAgICAgICAgICAgfSwgcmVwdWxzZVJhZGl1cyA9IChlbGVtLm9mZnNldFdpZHRoIC8gMikgKiBweFJhdGlvLCBhcmVhID0gZGl2LnR5cGUgPT09IEVudW1zXzEuRGl2VHlwZS5jaXJjbGVcbiAgICAgICAgICAgICAgICA/IG5ldyBVdGlsc18xLkNpcmNsZShwb3MueCwgcG9zLnksIHJlcHVsc2VSYWRpdXMpXG4gICAgICAgICAgICAgICAgOiBuZXcgVXRpbHNfMS5SZWN0YW5nbGUoZWxlbS5vZmZzZXRMZWZ0ICogcHhSYXRpbywgZWxlbS5vZmZzZXRUb3AgKiBweFJhdGlvLCBlbGVtLm9mZnNldFdpZHRoICogcHhSYXRpbywgZWxlbS5vZmZzZXRIZWlnaHQgKiBweFJhdGlvKSwgcXVlcnkgPSBjb250YWluZXIucGFydGljbGVzLnF1YWRUcmVlLnF1ZXJ5KGFyZWEpO1xuICAgICAgICAgICAgZm9yIChjb25zdCBwYXJ0aWNsZSBvZiBxdWVyeSkge1xuICAgICAgICAgICAgICAgIGlmICghYXJlYS5jb250YWlucyhwYXJ0aWNsZS5nZXRQb3NpdGlvbigpKSkge1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcGFydGljbGUuYnViYmxlLmluUmFuZ2UgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRpdnMgPSBjb250YWluZXIuYWN0dWFsT3B0aW9ucy5pbnRlcmFjdGl2aXR5Lm1vZGVzLmJ1YmJsZS5kaXZzO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRpdkJ1YmJsZSA9ICgwLCBVdGlsc18xLmRpdk1vZGUpKGRpdnMsIGVsZW0pO1xuICAgICAgICAgICAgICAgIGlmICghcGFydGljbGUuYnViYmxlLmRpdiB8fCBwYXJ0aWNsZS5idWJibGUuZGl2ICE9PSBlbGVtKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzZXQocGFydGljbGUsIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICBwYXJ0aWNsZS5idWJibGUuZGl2ID0gZWxlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5ob3ZlckJ1YmJsZVNpemUocGFydGljbGUsIDEsIGRpdkJ1YmJsZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5ob3ZlckJ1YmJsZU9wYWNpdHkocGFydGljbGUsIDEsIGRpdkJ1YmJsZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5ob3ZlckJ1YmJsZUNvbG9yKHBhcnRpY2xlLCAxLCBkaXZCdWJibGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcHJvY2VzcyhwYXJ0aWNsZSwgZGlzdE1vdXNlLCB0aW1lU3BlbnQsIGRhdGEpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXIsIGJ1YmJsZVBhcmFtID0gZGF0YS5idWJibGVPYmoub3B0VmFsdWU7XG4gICAgICAgIGlmIChidWJibGVQYXJhbSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IGNvbnRhaW5lci5hY3R1YWxPcHRpb25zLCBidWJibGVEdXJhdGlvbiA9IG9wdGlvbnMuaW50ZXJhY3Rpdml0eS5tb2Rlcy5idWJibGUuZHVyYXRpb24sIGJ1YmJsZURpc3RhbmNlID0gY29udGFpbmVyLnJldGluYS5idWJibGVNb2RlRGlzdGFuY2UsIHBhcnRpY2xlc1BhcmFtID0gZGF0YS5wYXJ0aWNsZXNPYmoub3B0VmFsdWUsIHBPYmpCdWJibGUgPSBkYXRhLmJ1YmJsZU9iai52YWx1ZSwgcE9iaiA9IGRhdGEucGFydGljbGVzT2JqLnZhbHVlIHx8IDAsIHR5cGUgPSBkYXRhLnR5cGU7XG4gICAgICAgIGlmIChidWJibGVQYXJhbSA9PT0gcGFydGljbGVzUGFyYW0pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWNvbnRhaW5lci5idWJibGUuZHVyYXRpb25FbmQpIHtcbiAgICAgICAgICAgIGlmIChkaXN0TW91c2UgPD0gYnViYmxlRGlzdGFuY2UpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBvYmogPSBwT2JqQnViYmxlICE9PSBudWxsICYmIHBPYmpCdWJibGUgIT09IHZvaWQgMCA/IHBPYmpCdWJibGUgOiBwT2JqO1xuICAgICAgICAgICAgICAgIGlmIChvYmogIT09IGJ1YmJsZVBhcmFtKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gcE9iaiAtICh0aW1lU3BlbnQgKiAocE9iaiAtIGJ1YmJsZVBhcmFtKSkgLyBidWJibGVEdXJhdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGUgPT09IFByb2Nlc3NCdWJibGVUeXBlXzEuUHJvY2Vzc0J1YmJsZVR5cGUuc2l6ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFydGljbGUuYnViYmxlLnJhZGl1cyA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlID09PSBQcm9jZXNzQnViYmxlVHlwZV8xLlByb2Nlc3NCdWJibGVUeXBlLm9wYWNpdHkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcnRpY2xlLmJ1YmJsZS5vcGFjaXR5ID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZSA9PT0gUHJvY2Vzc0J1YmJsZVR5cGVfMS5Qcm9jZXNzQnViYmxlVHlwZS5zaXplKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBwYXJ0aWNsZS5idWJibGUucmFkaXVzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodHlwZSA9PT0gUHJvY2Vzc0J1YmJsZVR5cGVfMS5Qcm9jZXNzQnViYmxlVHlwZS5vcGFjaXR5KSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBwYXJ0aWNsZS5idWJibGUub3BhY2l0eTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAocE9iakJ1YmJsZSkge1xuICAgICAgICAgICAgaWYgKHR5cGUgPT09IFByb2Nlc3NCdWJibGVUeXBlXzEuUHJvY2Vzc0J1YmJsZVR5cGUuc2l6ZSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBwYXJ0aWNsZS5idWJibGUucmFkaXVzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHR5cGUgPT09IFByb2Nlc3NCdWJibGVUeXBlXzEuUHJvY2Vzc0J1YmJsZVR5cGUub3BhY2l0eSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBwYXJ0aWNsZS5idWJibGUub3BhY2l0eTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBjbGlja0J1YmJsZSgpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXIsIG9wdGlvbnMgPSBjb250YWluZXIuYWN0dWFsT3B0aW9ucywgbW91c2VDbGlja1BvcyA9IGNvbnRhaW5lci5pbnRlcmFjdGl2aXR5Lm1vdXNlLmNsaWNrUG9zaXRpb247XG4gICAgICAgIGlmICghbW91c2VDbGlja1Bvcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRpc3RhbmNlID0gY29udGFpbmVyLnJldGluYS5idWJibGVNb2RlRGlzdGFuY2UsIHF1ZXJ5ID0gY29udGFpbmVyLnBhcnRpY2xlcy5xdWFkVHJlZS5xdWVyeUNpcmNsZShtb3VzZUNsaWNrUG9zLCBkaXN0YW5jZSk7XG4gICAgICAgIGZvciAoY29uc3QgcGFydGljbGUgb2YgcXVlcnkpIHtcbiAgICAgICAgICAgIGlmICghY29udGFpbmVyLmJ1YmJsZS5jbGlja2luZykge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGFydGljbGUuYnViYmxlLmluUmFuZ2UgPSAhY29udGFpbmVyLmJ1YmJsZS5kdXJhdGlvbkVuZDtcbiAgICAgICAgICAgIGNvbnN0IHBvcyA9IHBhcnRpY2xlLmdldFBvc2l0aW9uKCksIGRpc3RNb3VzZSA9ICgwLCBVdGlsc18xLmdldERpc3RhbmNlKShwb3MsIG1vdXNlQ2xpY2tQb3MpLCB0aW1lU3BlbnQgPSAobmV3IERhdGUoKS5nZXRUaW1lKCkgLSAoY29udGFpbmVyLmludGVyYWN0aXZpdHkubW91c2UuY2xpY2tUaW1lIHx8IDApKSAvIDEwMDA7XG4gICAgICAgICAgICBpZiAodGltZVNwZW50ID4gb3B0aW9ucy5pbnRlcmFjdGl2aXR5Lm1vZGVzLmJ1YmJsZS5kdXJhdGlvbikge1xuICAgICAgICAgICAgICAgIGNvbnRhaW5lci5idWJibGUuZHVyYXRpb25FbmQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRpbWVTcGVudCA+IG9wdGlvbnMuaW50ZXJhY3Rpdml0eS5tb2Rlcy5idWJibGUuZHVyYXRpb24gKiAyKSB7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLmJ1YmJsZS5jbGlja2luZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGNvbnRhaW5lci5idWJibGUuZHVyYXRpb25FbmQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHNpemVEYXRhID0ge1xuICAgICAgICAgICAgICAgIGJ1YmJsZU9iajoge1xuICAgICAgICAgICAgICAgICAgICBvcHRWYWx1ZTogY29udGFpbmVyLnJldGluYS5idWJibGVNb2RlU2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHBhcnRpY2xlLmJ1YmJsZS5yYWRpdXMsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBwYXJ0aWNsZXNPYmo6IHtcbiAgICAgICAgICAgICAgICAgICAgb3B0VmFsdWU6ICgwLCBVdGlsc18xLmdldFJhbmdlTWF4KShwYXJ0aWNsZS5vcHRpb25zLnNpemUudmFsdWUpICogY29udGFpbmVyLnJldGluYS5waXhlbFJhdGlvLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcGFydGljbGUuc2l6ZS52YWx1ZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHR5cGU6IFByb2Nlc3NCdWJibGVUeXBlXzEuUHJvY2Vzc0J1YmJsZVR5cGUuc2l6ZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLnByb2Nlc3MocGFydGljbGUsIGRpc3RNb3VzZSwgdGltZVNwZW50LCBzaXplRGF0YSk7XG4gICAgICAgICAgICBjb25zdCBvcGFjaXR5RGF0YSA9IHtcbiAgICAgICAgICAgICAgICBidWJibGVPYmo6IHtcbiAgICAgICAgICAgICAgICAgICAgb3B0VmFsdWU6IG9wdGlvbnMuaW50ZXJhY3Rpdml0eS5tb2Rlcy5idWJibGUub3BhY2l0eSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHBhcnRpY2xlLmJ1YmJsZS5vcGFjaXR5LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcGFydGljbGVzT2JqOiB7XG4gICAgICAgICAgICAgICAgICAgIG9wdFZhbHVlOiAoMCwgVXRpbHNfMS5nZXRSYW5nZU1heCkocGFydGljbGUub3B0aW9ucy5vcGFjaXR5LnZhbHVlKSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IChfYiA9IChfYSA9IHBhcnRpY2xlLm9wYWNpdHkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS52YWx1ZSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogMSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHR5cGU6IFByb2Nlc3NCdWJibGVUeXBlXzEuUHJvY2Vzc0J1YmJsZVR5cGUub3BhY2l0eSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLnByb2Nlc3MocGFydGljbGUsIGRpc3RNb3VzZSwgdGltZVNwZW50LCBvcGFjaXR5RGF0YSk7XG4gICAgICAgICAgICBpZiAoIWNvbnRhaW5lci5idWJibGUuZHVyYXRpb25FbmQpIHtcbiAgICAgICAgICAgICAgICBpZiAoZGlzdE1vdXNlIDw9IGNvbnRhaW5lci5yZXRpbmEuYnViYmxlTW9kZURpc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaG92ZXJCdWJibGVDb2xvcihwYXJ0aWNsZSwgZGlzdE1vdXNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBwYXJ0aWNsZS5idWJibGUuY29sb3I7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIHBhcnRpY2xlLmJ1YmJsZS5jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBob3ZlckJ1YmJsZSgpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXIsIG1vdXNlUG9zID0gY29udGFpbmVyLmludGVyYWN0aXZpdHkubW91c2UucG9zaXRpb247XG4gICAgICAgIGlmIChtb3VzZVBvcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGlzdGFuY2UgPSBjb250YWluZXIucmV0aW5hLmJ1YmJsZU1vZGVEaXN0YW5jZSwgcXVlcnkgPSBjb250YWluZXIucGFydGljbGVzLnF1YWRUcmVlLnF1ZXJ5Q2lyY2xlKG1vdXNlUG9zLCBkaXN0YW5jZSk7XG4gICAgICAgIGZvciAoY29uc3QgcGFydGljbGUgb2YgcXVlcnkpIHtcbiAgICAgICAgICAgIHBhcnRpY2xlLmJ1YmJsZS5pblJhbmdlID0gdHJ1ZTtcbiAgICAgICAgICAgIGNvbnN0IHBvcyA9IHBhcnRpY2xlLmdldFBvc2l0aW9uKCksIHBvaW50RGlzdGFuY2UgPSAoMCwgVXRpbHNfMS5nZXREaXN0YW5jZSkocG9zLCBtb3VzZVBvcyksIHJhdGlvID0gMSAtIHBvaW50RGlzdGFuY2UgLyBkaXN0YW5jZTtcbiAgICAgICAgICAgIGlmIChwb2ludERpc3RhbmNlIDw9IGRpc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgaWYgKHJhdGlvID49IDAgJiYgY29udGFpbmVyLmludGVyYWN0aXZpdHkuc3RhdHVzID09PSBVdGlsc18xLkNvbnN0YW50cy5tb3VzZU1vdmVFdmVudCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhvdmVyQnViYmxlU2l6ZShwYXJ0aWNsZSwgcmF0aW8pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhvdmVyQnViYmxlT3BhY2l0eShwYXJ0aWNsZSwgcmF0aW8pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhvdmVyQnViYmxlQ29sb3IocGFydGljbGUsIHJhdGlvKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0KHBhcnRpY2xlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjb250YWluZXIuaW50ZXJhY3Rpdml0eS5zdGF0dXMgPT09IFV0aWxzXzEuQ29uc3RhbnRzLm1vdXNlTGVhdmVFdmVudCkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXQocGFydGljbGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGhvdmVyQnViYmxlU2l6ZShwYXJ0aWNsZSwgcmF0aW8sIGRpdkJ1YmJsZSkge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lciwgbW9kZVNpemUgPSAoZGl2QnViYmxlID09PSBudWxsIHx8IGRpdkJ1YmJsZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZGl2QnViYmxlLnNpemUpID8gZGl2QnViYmxlLnNpemUgKiBjb250YWluZXIucmV0aW5hLnBpeGVsUmF0aW8gOiBjb250YWluZXIucmV0aW5hLmJ1YmJsZU1vZGVTaXplO1xuICAgICAgICBpZiAobW9kZVNpemUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG9wdFNpemUgPSAoMCwgVXRpbHNfMS5nZXRSYW5nZU1heCkocGFydGljbGUub3B0aW9ucy5zaXplLnZhbHVlKSAqIGNvbnRhaW5lci5yZXRpbmEucGl4ZWxSYXRpbztcbiAgICAgICAgY29uc3QgcFNpemUgPSBwYXJ0aWNsZS5zaXplLnZhbHVlO1xuICAgICAgICBjb25zdCBzaXplID0gY2FsY3VsYXRlQnViYmxlVmFsdWUocFNpemUsIG1vZGVTaXplLCBvcHRTaXplLCByYXRpbyk7XG4gICAgICAgIGlmIChzaXplICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHBhcnRpY2xlLmJ1YmJsZS5yYWRpdXMgPSBzaXplO1xuICAgICAgICB9XG4gICAgfVxuICAgIGhvdmVyQnViYmxlT3BhY2l0eShwYXJ0aWNsZSwgcmF0aW8sIGRpdkJ1YmJsZSkge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXIsIG9wdGlvbnMgPSBjb250YWluZXIuYWN0dWFsT3B0aW9ucywgbW9kZU9wYWNpdHkgPSAoX2EgPSBkaXZCdWJibGUgPT09IG51bGwgfHwgZGl2QnViYmxlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkaXZCdWJibGUub3BhY2l0eSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogb3B0aW9ucy5pbnRlcmFjdGl2aXR5Lm1vZGVzLmJ1YmJsZS5vcGFjaXR5O1xuICAgICAgICBpZiAoIW1vZGVPcGFjaXR5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3B0T3BhY2l0eSA9IHBhcnRpY2xlLm9wdGlvbnMub3BhY2l0eS52YWx1ZTtcbiAgICAgICAgY29uc3QgcE9wYWNpdHkgPSAoX2MgPSAoX2IgPSBwYXJ0aWNsZS5vcGFjaXR5KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IudmFsdWUpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IDE7XG4gICAgICAgIGNvbnN0IG9wYWNpdHkgPSBjYWxjdWxhdGVCdWJibGVWYWx1ZShwT3BhY2l0eSwgbW9kZU9wYWNpdHksICgwLCBVdGlsc18xLmdldFJhbmdlTWF4KShvcHRPcGFjaXR5KSwgcmF0aW8pO1xuICAgICAgICBpZiAob3BhY2l0eSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBwYXJ0aWNsZS5idWJibGUub3BhY2l0eSA9IG9wYWNpdHk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaG92ZXJCdWJibGVDb2xvcihwYXJ0aWNsZSwgcmF0aW8sIGRpdkJ1YmJsZSkge1xuICAgICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5jb250YWluZXIuYWN0dWFsT3B0aW9ucztcbiAgICAgICAgY29uc3QgYnViYmxlT3B0aW9ucyA9IGRpdkJ1YmJsZSAhPT0gbnVsbCAmJiBkaXZCdWJibGUgIT09IHZvaWQgMCA/IGRpdkJ1YmJsZSA6IG9wdGlvbnMuaW50ZXJhY3Rpdml0eS5tb2Rlcy5idWJibGU7XG4gICAgICAgIGlmICghcGFydGljbGUuYnViYmxlLmZpbmFsQ29sb3IpIHtcbiAgICAgICAgICAgIGNvbnN0IG1vZGVDb2xvciA9IGJ1YmJsZU9wdGlvbnMuY29sb3I7XG4gICAgICAgICAgICBpZiAoIW1vZGVDb2xvcikge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGJ1YmJsZUNvbG9yID0gbW9kZUNvbG9yIGluc3RhbmNlb2YgQXJyYXkgPyAoMCwgVXRpbHNfMS5pdGVtRnJvbUFycmF5KShtb2RlQ29sb3IpIDogbW9kZUNvbG9yO1xuICAgICAgICAgICAgcGFydGljbGUuYnViYmxlLmZpbmFsQ29sb3IgPSAoMCwgVXRpbHNfMS5jb2xvclRvSHNsKShidWJibGVDb2xvcik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFwYXJ0aWNsZS5idWJibGUuZmluYWxDb2xvcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChidWJibGVPcHRpb25zLm1peCkge1xuICAgICAgICAgICAgcGFydGljbGUuYnViYmxlLmNvbG9yID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3QgcENvbG9yID0gcGFydGljbGUuZ2V0RmlsbENvbG9yKCk7XG4gICAgICAgICAgICBwYXJ0aWNsZS5idWJibGUuY29sb3IgPSBwQ29sb3JcbiAgICAgICAgICAgICAgICA/ICgwLCBVdGlsc18xLnJnYlRvSHNsKSgoMCwgVXRpbHNfMS5jb2xvck1peCkocENvbG9yLCBwYXJ0aWNsZS5idWJibGUuZmluYWxDb2xvciwgMSAtIHJhdGlvLCByYXRpbykpXG4gICAgICAgICAgICAgICAgOiBwYXJ0aWNsZS5idWJibGUuZmluYWxDb2xvcjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHBhcnRpY2xlLmJ1YmJsZS5jb2xvciA9IHBhcnRpY2xlLmJ1YmJsZS5maW5hbENvbG9yO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5CdWJibGVyID0gQnViYmxlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/External/Bubble/Bubbler.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/External/Bubble/ProcessBubbleType.js": +/*!************************************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/External/Bubble/ProcessBubbleType.js ***! + \************************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ProcessBubbleType = void 0;\nvar ProcessBubbleType;\n(function (ProcessBubbleType) {\n ProcessBubbleType[\"color\"] = \"color\";\n ProcessBubbleType[\"opacity\"] = \"opacity\";\n ProcessBubbleType[\"size\"] = \"size\";\n})(ProcessBubbleType = exports.ProcessBubbleType || (exports.ProcessBubbleType = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL0V4dGVybmFsL0J1YmJsZS9Qcm9jZXNzQnViYmxlVHlwZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCx5QkFBeUI7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsb0RBQW9ELHlCQUF5QixLQUFLIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9JbnRlcmFjdGlvbnMvRXh0ZXJuYWwvQnViYmxlL1Byb2Nlc3NCdWJibGVUeXBlLmpzPzYyZDkiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlByb2Nlc3NCdWJibGVUeXBlID0gdm9pZCAwO1xudmFyIFByb2Nlc3NCdWJibGVUeXBlO1xuKGZ1bmN0aW9uIChQcm9jZXNzQnViYmxlVHlwZSkge1xuICAgIFByb2Nlc3NCdWJibGVUeXBlW1wiY29sb3JcIl0gPSBcImNvbG9yXCI7XG4gICAgUHJvY2Vzc0J1YmJsZVR5cGVbXCJvcGFjaXR5XCJdID0gXCJvcGFjaXR5XCI7XG4gICAgUHJvY2Vzc0J1YmJsZVR5cGVbXCJzaXplXCJdID0gXCJzaXplXCI7XG59KShQcm9jZXNzQnViYmxlVHlwZSA9IGV4cG9ydHMuUHJvY2Vzc0J1YmJsZVR5cGUgfHwgKGV4cG9ydHMuUHJvY2Vzc0J1YmJsZVR5cGUgPSB7fSkpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/External/Bubble/ProcessBubbleType.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/External/Bubble/index.js": +/*!************************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/External/Bubble/index.js ***! + \************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadExternalBubbleInteraction = void 0;\nconst Bubbler_1 = __webpack_require__(/*! ./Bubbler */ \"./node_modules/tsparticles/Interactions/External/Bubble/Bubbler.js\");\nasync function loadExternalBubbleInteraction(tsParticles) {\n await tsParticles.addInteractor(\"externalBubble\", (container) => new Bubbler_1.Bubbler(container));\n}\nexports.loadExternalBubbleInteraction = loadExternalBubbleInteraction;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL0V4dGVybmFsL0J1YmJsZS9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxxQ0FBcUM7QUFDckMsa0JBQWtCLG1CQUFPLENBQUMscUZBQVc7QUFDckM7QUFDQTtBQUNBO0FBQ0EscUNBQXFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9JbnRlcmFjdGlvbnMvRXh0ZXJuYWwvQnViYmxlL2luZGV4LmpzPzVmOWIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmxvYWRFeHRlcm5hbEJ1YmJsZUludGVyYWN0aW9uID0gdm9pZCAwO1xuY29uc3QgQnViYmxlcl8xID0gcmVxdWlyZShcIi4vQnViYmxlclwiKTtcbmFzeW5jIGZ1bmN0aW9uIGxvYWRFeHRlcm5hbEJ1YmJsZUludGVyYWN0aW9uKHRzUGFydGljbGVzKSB7XG4gICAgYXdhaXQgdHNQYXJ0aWNsZXMuYWRkSW50ZXJhY3RvcihcImV4dGVybmFsQnViYmxlXCIsIChjb250YWluZXIpID0+IG5ldyBCdWJibGVyXzEuQnViYmxlcihjb250YWluZXIpKTtcbn1cbmV4cG9ydHMubG9hZEV4dGVybmFsQnViYmxlSW50ZXJhY3Rpb24gPSBsb2FkRXh0ZXJuYWxCdWJibGVJbnRlcmFjdGlvbjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/External/Bubble/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/External/Connect/Connector.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/External/Connect/Connector.js ***! + \*****************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Connector = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Enums_1 = __webpack_require__(/*! ../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst ExternalInteractorBase_1 = __webpack_require__(/*! ../../../Core/ExternalInteractorBase */ \"./node_modules/tsparticles/Core/ExternalInteractorBase.js\");\nclass Connector extends ExternalInteractorBase_1.ExternalInteractorBase {\n constructor(container) {\n super(container);\n }\n isEnabled() {\n const container = this.container, mouse = container.interactivity.mouse, events = container.actualOptions.interactivity.events;\n if (!(events.onHover.enable && mouse.position)) {\n return false;\n }\n return (0, Utils_1.isInArray)(Enums_1.HoverMode.connect, events.onHover.mode);\n }\n reset() {\n }\n interact() {\n const container = this.container, options = container.actualOptions;\n if (options.interactivity.events.onHover.enable && container.interactivity.status === \"mousemove\") {\n const mousePos = container.interactivity.mouse.position;\n if (!mousePos) {\n return;\n }\n const distance = Math.abs(container.retina.connectModeRadius), query = container.particles.quadTree.queryCircle(mousePos, distance);\n let i = 0;\n for (const p1 of query) {\n const pos1 = p1.getPosition();\n for (const p2 of query.slice(i + 1)) {\n const pos2 = p2.getPosition(), distMax = Math.abs(container.retina.connectModeDistance), xDiff = Math.abs(pos1.x - pos2.x), yDiff = Math.abs(pos1.y - pos2.y);\n if (xDiff < distMax && yDiff < distMax) {\n container.canvas.drawConnectLine(p1, p2);\n }\n }\n ++i;\n }\n }\n }\n}\nexports.Connector = Connector;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL0V4dGVybmFsL0Nvbm5lY3QvQ29ubmVjdG9yLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGlCQUFpQjtBQUNqQixnQkFBZ0IsbUJBQU8sQ0FBQyxpRUFBZ0I7QUFDeEMsZ0JBQWdCLG1CQUFPLENBQUMsaUVBQWdCO0FBQ3hDLGlDQUFpQyxtQkFBTyxDQUFDLHVHQUFzQztBQUMvRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9JbnRlcmFjdGlvbnMvRXh0ZXJuYWwvQ29ubmVjdC9Db25uZWN0b3IuanM/MWIwMCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuQ29ubmVjdG9yID0gdm9pZCAwO1xuY29uc3QgVXRpbHNfMSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9VdGlsc1wiKTtcbmNvbnN0IEVudW1zXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vRW51bXNcIik7XG5jb25zdCBFeHRlcm5hbEludGVyYWN0b3JCYXNlXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vQ29yZS9FeHRlcm5hbEludGVyYWN0b3JCYXNlXCIpO1xuY2xhc3MgQ29ubmVjdG9yIGV4dGVuZHMgRXh0ZXJuYWxJbnRlcmFjdG9yQmFzZV8xLkV4dGVybmFsSW50ZXJhY3RvckJhc2Uge1xuICAgIGNvbnN0cnVjdG9yKGNvbnRhaW5lcikge1xuICAgICAgICBzdXBlcihjb250YWluZXIpO1xuICAgIH1cbiAgICBpc0VuYWJsZWQoKSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyLCBtb3VzZSA9IGNvbnRhaW5lci5pbnRlcmFjdGl2aXR5Lm1vdXNlLCBldmVudHMgPSBjb250YWluZXIuYWN0dWFsT3B0aW9ucy5pbnRlcmFjdGl2aXR5LmV2ZW50cztcbiAgICAgICAgaWYgKCEoZXZlbnRzLm9uSG92ZXIuZW5hYmxlICYmIG1vdXNlLnBvc2l0aW9uKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAoMCwgVXRpbHNfMS5pc0luQXJyYXkpKEVudW1zXzEuSG92ZXJNb2RlLmNvbm5lY3QsIGV2ZW50cy5vbkhvdmVyLm1vZGUpO1xuICAgIH1cbiAgICByZXNldCgpIHtcbiAgICB9XG4gICAgaW50ZXJhY3QoKSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyLCBvcHRpb25zID0gY29udGFpbmVyLmFjdHVhbE9wdGlvbnM7XG4gICAgICAgIGlmIChvcHRpb25zLmludGVyYWN0aXZpdHkuZXZlbnRzLm9uSG92ZXIuZW5hYmxlICYmIGNvbnRhaW5lci5pbnRlcmFjdGl2aXR5LnN0YXR1cyA9PT0gXCJtb3VzZW1vdmVcIikge1xuICAgICAgICAgICAgY29uc3QgbW91c2VQb3MgPSBjb250YWluZXIuaW50ZXJhY3Rpdml0eS5tb3VzZS5wb3NpdGlvbjtcbiAgICAgICAgICAgIGlmICghbW91c2VQb3MpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBkaXN0YW5jZSA9IE1hdGguYWJzKGNvbnRhaW5lci5yZXRpbmEuY29ubmVjdE1vZGVSYWRpdXMpLCBxdWVyeSA9IGNvbnRhaW5lci5wYXJ0aWNsZXMucXVhZFRyZWUucXVlcnlDaXJjbGUobW91c2VQb3MsIGRpc3RhbmNlKTtcbiAgICAgICAgICAgIGxldCBpID0gMDtcbiAgICAgICAgICAgIGZvciAoY29uc3QgcDEgb2YgcXVlcnkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwb3MxID0gcDEuZ2V0UG9zaXRpb24oKTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHAyIG9mIHF1ZXJ5LnNsaWNlKGkgKyAxKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwb3MyID0gcDIuZ2V0UG9zaXRpb24oKSwgZGlzdE1heCA9IE1hdGguYWJzKGNvbnRhaW5lci5yZXRpbmEuY29ubmVjdE1vZGVEaXN0YW5jZSksIHhEaWZmID0gTWF0aC5hYnMocG9zMS54IC0gcG9zMi54KSwgeURpZmYgPSBNYXRoLmFicyhwb3MxLnkgLSBwb3MyLnkpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoeERpZmYgPCBkaXN0TWF4ICYmIHlEaWZmIDwgZGlzdE1heCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyLmNhbnZhcy5kcmF3Q29ubmVjdExpbmUocDEsIHAyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICArK2k7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkNvbm5lY3RvciA9IENvbm5lY3RvcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/External/Connect/Connector.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/External/Connect/index.js": +/*!*************************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/External/Connect/index.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadExternalConnectInteraction = void 0;\nconst Connector_1 = __webpack_require__(/*! ./Connector */ \"./node_modules/tsparticles/Interactions/External/Connect/Connector.js\");\nasync function loadExternalConnectInteraction(tsParticles) {\n await tsParticles.addInteractor(\"externalConnect\", (container) => new Connector_1.Connector(container));\n}\nexports.loadExternalConnectInteraction = loadExternalConnectInteraction;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL0V4dGVybmFsL0Nvbm5lY3QvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsc0NBQXNDO0FBQ3RDLG9CQUFvQixtQkFBTyxDQUFDLDBGQUFhO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBLHNDQUFzQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL0V4dGVybmFsL0Nvbm5lY3QvaW5kZXguanM/NWQxMSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMubG9hZEV4dGVybmFsQ29ubmVjdEludGVyYWN0aW9uID0gdm9pZCAwO1xuY29uc3QgQ29ubmVjdG9yXzEgPSByZXF1aXJlKFwiLi9Db25uZWN0b3JcIik7XG5hc3luYyBmdW5jdGlvbiBsb2FkRXh0ZXJuYWxDb25uZWN0SW50ZXJhY3Rpb24odHNQYXJ0aWNsZXMpIHtcbiAgICBhd2FpdCB0c1BhcnRpY2xlcy5hZGRJbnRlcmFjdG9yKFwiZXh0ZXJuYWxDb25uZWN0XCIsIChjb250YWluZXIpID0+IG5ldyBDb25uZWN0b3JfMS5Db25uZWN0b3IoY29udGFpbmVyKSk7XG59XG5leHBvcnRzLmxvYWRFeHRlcm5hbENvbm5lY3RJbnRlcmFjdGlvbiA9IGxvYWRFeHRlcm5hbENvbm5lY3RJbnRlcmFjdGlvbjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/External/Connect/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/External/Grab/Grabber.js": +/*!************************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/External/Grab/Grabber.js ***! + \************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Grabber = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Enums_1 = __webpack_require__(/*! ../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst ExternalInteractorBase_1 = __webpack_require__(/*! ../../../Core/ExternalInteractorBase */ \"./node_modules/tsparticles/Core/ExternalInteractorBase.js\");\nclass Grabber extends ExternalInteractorBase_1.ExternalInteractorBase {\n constructor(container) {\n super(container);\n }\n isEnabled() {\n const container = this.container, mouse = container.interactivity.mouse, events = container.actualOptions.interactivity.events;\n return events.onHover.enable && !!mouse.position && (0, Utils_1.isInArray)(Enums_1.HoverMode.grab, events.onHover.mode);\n }\n reset() {\n }\n interact() {\n var _a;\n const container = this.container, options = container.actualOptions, interactivity = options.interactivity;\n if (interactivity.events.onHover.enable && container.interactivity.status === Utils_1.Constants.mouseMoveEvent) {\n const mousePos = container.interactivity.mouse.position;\n if (!mousePos) {\n return;\n }\n const distance = container.retina.grabModeDistance, query = container.particles.quadTree.queryCircle(mousePos, distance);\n for (const particle of query) {\n const pos = particle.getPosition(), pointDistance = (0, Utils_1.getDistance)(pos, mousePos);\n if (pointDistance <= distance) {\n const grabLineOptions = interactivity.modes.grab.links, lineOpacity = grabLineOptions.opacity, opacityLine = lineOpacity - (pointDistance * lineOpacity) / distance;\n if (opacityLine <= 0) {\n continue;\n }\n const optColor = (_a = grabLineOptions.color) !== null && _a !== void 0 ? _a : particle.options.links.color;\n if (!container.particles.grabLineColor) {\n const linksOptions = options.interactivity.modes.grab.links;\n container.particles.grabLineColor = (0, Utils_1.getLinkRandomColor)(optColor, linksOptions.blink, linksOptions.consent);\n }\n const colorLine = (0, Utils_1.getLinkColor)(particle, undefined, container.particles.grabLineColor);\n if (!colorLine) {\n return;\n }\n container.canvas.drawGrabLine(particle, colorLine, opacityLine, mousePos);\n }\n }\n }\n }\n}\nexports.Grabber = Grabber;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL0V4dGVybmFsL0dyYWIvR3JhYmJlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxlQUFlO0FBQ2YsZ0JBQWdCLG1CQUFPLENBQUMsaUVBQWdCO0FBQ3hDLGdCQUFnQixtQkFBTyxDQUFDLGlFQUFnQjtBQUN4QyxpQ0FBaUMsbUJBQU8sQ0FBQyx1R0FBc0M7QUFDL0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0ludGVyYWN0aW9ucy9FeHRlcm5hbC9HcmFiL0dyYWJiZXIuanM/N2FhNSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuR3JhYmJlciA9IHZvaWQgMDtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vVXRpbHNcIik7XG5jb25zdCBFbnVtc18xID0gcmVxdWlyZShcIi4uLy4uLy4uL0VudW1zXCIpO1xuY29uc3QgRXh0ZXJuYWxJbnRlcmFjdG9yQmFzZV8xID0gcmVxdWlyZShcIi4uLy4uLy4uL0NvcmUvRXh0ZXJuYWxJbnRlcmFjdG9yQmFzZVwiKTtcbmNsYXNzIEdyYWJiZXIgZXh0ZW5kcyBFeHRlcm5hbEludGVyYWN0b3JCYXNlXzEuRXh0ZXJuYWxJbnRlcmFjdG9yQmFzZSB7XG4gICAgY29uc3RydWN0b3IoY29udGFpbmVyKSB7XG4gICAgICAgIHN1cGVyKGNvbnRhaW5lcik7XG4gICAgfVxuICAgIGlzRW5hYmxlZCgpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXIsIG1vdXNlID0gY29udGFpbmVyLmludGVyYWN0aXZpdHkubW91c2UsIGV2ZW50cyA9IGNvbnRhaW5lci5hY3R1YWxPcHRpb25zLmludGVyYWN0aXZpdHkuZXZlbnRzO1xuICAgICAgICByZXR1cm4gZXZlbnRzLm9uSG92ZXIuZW5hYmxlICYmICEhbW91c2UucG9zaXRpb24gJiYgKDAsIFV0aWxzXzEuaXNJbkFycmF5KShFbnVtc18xLkhvdmVyTW9kZS5ncmFiLCBldmVudHMub25Ib3Zlci5tb2RlKTtcbiAgICB9XG4gICAgcmVzZXQoKSB7XG4gICAgfVxuICAgIGludGVyYWN0KCkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyLCBvcHRpb25zID0gY29udGFpbmVyLmFjdHVhbE9wdGlvbnMsIGludGVyYWN0aXZpdHkgPSBvcHRpb25zLmludGVyYWN0aXZpdHk7XG4gICAgICAgIGlmIChpbnRlcmFjdGl2aXR5LmV2ZW50cy5vbkhvdmVyLmVuYWJsZSAmJiBjb250YWluZXIuaW50ZXJhY3Rpdml0eS5zdGF0dXMgPT09IFV0aWxzXzEuQ29uc3RhbnRzLm1vdXNlTW92ZUV2ZW50KSB7XG4gICAgICAgICAgICBjb25zdCBtb3VzZVBvcyA9IGNvbnRhaW5lci5pbnRlcmFjdGl2aXR5Lm1vdXNlLnBvc2l0aW9uO1xuICAgICAgICAgICAgaWYgKCFtb3VzZVBvcykge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGRpc3RhbmNlID0gY29udGFpbmVyLnJldGluYS5ncmFiTW9kZURpc3RhbmNlLCBxdWVyeSA9IGNvbnRhaW5lci5wYXJ0aWNsZXMucXVhZFRyZWUucXVlcnlDaXJjbGUobW91c2VQb3MsIGRpc3RhbmNlKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgcGFydGljbGUgb2YgcXVlcnkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwb3MgPSBwYXJ0aWNsZS5nZXRQb3NpdGlvbigpLCBwb2ludERpc3RhbmNlID0gKDAsIFV0aWxzXzEuZ2V0RGlzdGFuY2UpKHBvcywgbW91c2VQb3MpO1xuICAgICAgICAgICAgICAgIGlmIChwb2ludERpc3RhbmNlIDw9IGRpc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGdyYWJMaW5lT3B0aW9ucyA9IGludGVyYWN0aXZpdHkubW9kZXMuZ3JhYi5saW5rcywgbGluZU9wYWNpdHkgPSBncmFiTGluZU9wdGlvbnMub3BhY2l0eSwgb3BhY2l0eUxpbmUgPSBsaW5lT3BhY2l0eSAtIChwb2ludERpc3RhbmNlICogbGluZU9wYWNpdHkpIC8gZGlzdGFuY2U7XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcGFjaXR5TGluZSA8PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRDb2xvciA9IChfYSA9IGdyYWJMaW5lT3B0aW9ucy5jb2xvcikgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogcGFydGljbGUub3B0aW9ucy5saW5rcy5jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjb250YWluZXIucGFydGljbGVzLmdyYWJMaW5lQ29sb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpbmtzT3B0aW9ucyA9IG9wdGlvbnMuaW50ZXJhY3Rpdml0eS5tb2Rlcy5ncmFiLmxpbmtzO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyLnBhcnRpY2xlcy5ncmFiTGluZUNvbG9yID0gKDAsIFV0aWxzXzEuZ2V0TGlua1JhbmRvbUNvbG9yKShvcHRDb2xvciwgbGlua3NPcHRpb25zLmJsaW5rLCBsaW5rc09wdGlvbnMuY29uc2VudCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29sb3JMaW5lID0gKDAsIFV0aWxzXzEuZ2V0TGlua0NvbG9yKShwYXJ0aWNsZSwgdW5kZWZpbmVkLCBjb250YWluZXIucGFydGljbGVzLmdyYWJMaW5lQ29sb3IpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbG9yTGluZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lci5jYW52YXMuZHJhd0dyYWJMaW5lKHBhcnRpY2xlLCBjb2xvckxpbmUsIG9wYWNpdHlMaW5lLCBtb3VzZVBvcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5HcmFiYmVyID0gR3JhYmJlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/External/Grab/Grabber.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/External/Grab/index.js": +/*!**********************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/External/Grab/index.js ***! + \**********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadExternalGrabInteraction = void 0;\nconst Grabber_1 = __webpack_require__(/*! ./Grabber */ \"./node_modules/tsparticles/Interactions/External/Grab/Grabber.js\");\nasync function loadExternalGrabInteraction(tsParticles) {\n await tsParticles.addInteractor(\"externalGrab\", (container) => new Grabber_1.Grabber(container));\n}\nexports.loadExternalGrabInteraction = loadExternalGrabInteraction;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL0V4dGVybmFsL0dyYWIvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsbUNBQW1DO0FBQ25DLGtCQUFrQixtQkFBTyxDQUFDLG1GQUFXO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL0V4dGVybmFsL0dyYWIvaW5kZXguanM/NDViZSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMubG9hZEV4dGVybmFsR3JhYkludGVyYWN0aW9uID0gdm9pZCAwO1xuY29uc3QgR3JhYmJlcl8xID0gcmVxdWlyZShcIi4vR3JhYmJlclwiKTtcbmFzeW5jIGZ1bmN0aW9uIGxvYWRFeHRlcm5hbEdyYWJJbnRlcmFjdGlvbih0c1BhcnRpY2xlcykge1xuICAgIGF3YWl0IHRzUGFydGljbGVzLmFkZEludGVyYWN0b3IoXCJleHRlcm5hbEdyYWJcIiwgKGNvbnRhaW5lcikgPT4gbmV3IEdyYWJiZXJfMS5HcmFiYmVyKGNvbnRhaW5lcikpO1xufVxuZXhwb3J0cy5sb2FkRXh0ZXJuYWxHcmFiSW50ZXJhY3Rpb24gPSBsb2FkRXh0ZXJuYWxHcmFiSW50ZXJhY3Rpb247XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/External/Grab/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/External/Repulse/Repulser.js": +/*!****************************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/External/Repulse/Repulser.js ***! + \****************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Repulser = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst Utils_1 = __webpack_require__(/*! ../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Vector_1 = __webpack_require__(/*! ../../../Core/Particle/Vector */ \"./node_modules/tsparticles/Core/Particle/Vector.js\");\nconst ExternalInteractorBase_1 = __webpack_require__(/*! ../../../Core/ExternalInteractorBase */ \"./node_modules/tsparticles/Core/ExternalInteractorBase.js\");\nclass Repulser extends ExternalInteractorBase_1.ExternalInteractorBase {\n constructor(container) {\n super(container);\n }\n isEnabled() {\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse, events = options.interactivity.events, divs = events.onDiv, divRepulse = (0, Utils_1.isDivModeEnabled)(Enums_1.DivMode.repulse, divs);\n if (!(divRepulse || (events.onHover.enable && mouse.position) || (events.onClick.enable && mouse.clickPosition))) {\n return false;\n }\n const hoverMode = events.onHover.mode, clickMode = events.onClick.mode;\n return (0, Utils_1.isInArray)(Enums_1.HoverMode.repulse, hoverMode) || (0, Utils_1.isInArray)(Enums_1.ClickMode.repulse, clickMode) || divRepulse;\n }\n reset() {\n }\n interact() {\n const container = this.container, options = container.actualOptions, mouseMoveStatus = container.interactivity.status === Utils_1.Constants.mouseMoveEvent, events = options.interactivity.events, hoverEnabled = events.onHover.enable, hoverMode = events.onHover.mode, clickEnabled = events.onClick.enable, clickMode = events.onClick.mode, divs = events.onDiv;\n if (mouseMoveStatus && hoverEnabled && (0, Utils_1.isInArray)(Enums_1.HoverMode.repulse, hoverMode)) {\n this.hoverRepulse();\n }\n else if (clickEnabled && (0, Utils_1.isInArray)(Enums_1.ClickMode.repulse, clickMode)) {\n this.clickRepulse();\n }\n else {\n (0, Utils_1.divModeExecute)(Enums_1.DivMode.repulse, divs, (selector, div) => this.singleSelectorRepulse(selector, div));\n }\n }\n singleSelectorRepulse(selector, div) {\n const container = this.container, query = document.querySelectorAll(selector);\n if (!query.length) {\n return;\n }\n query.forEach((item) => {\n const elem = item, pxRatio = container.retina.pixelRatio, pos = {\n x: (elem.offsetLeft + elem.offsetWidth / 2) * pxRatio,\n y: (elem.offsetTop + elem.offsetHeight / 2) * pxRatio,\n }, repulseRadius = (elem.offsetWidth / 2) * pxRatio, area = div.type === Enums_1.DivType.circle\n ? new Utils_1.Circle(pos.x, pos.y, repulseRadius)\n : new Utils_1.Rectangle(elem.offsetLeft * pxRatio, elem.offsetTop * pxRatio, elem.offsetWidth * pxRatio, elem.offsetHeight * pxRatio), divs = container.actualOptions.interactivity.modes.repulse.divs, divRepulse = (0, Utils_1.divMode)(divs, elem);\n this.processRepulse(pos, repulseRadius, area, divRepulse);\n });\n }\n hoverRepulse() {\n const container = this.container, mousePos = container.interactivity.mouse.position;\n if (!mousePos) {\n return;\n }\n const repulseRadius = container.retina.repulseModeDistance;\n this.processRepulse(mousePos, repulseRadius, new Utils_1.Circle(mousePos.x, mousePos.y, repulseRadius));\n }\n processRepulse(position, repulseRadius, area, divRepulse) {\n var _a;\n const container = this.container, query = container.particles.quadTree.query(area), repulseOptions = container.actualOptions.interactivity.modes.repulse;\n for (const particle of query) {\n const { dx, dy, distance } = (0, Utils_1.getDistances)(particle.position, position), velocity = ((_a = divRepulse === null || divRepulse === void 0 ? void 0 : divRepulse.speed) !== null && _a !== void 0 ? _a : repulseOptions.speed) * repulseOptions.factor, repulseFactor = (0, Utils_1.clamp)((0, Utils_1.calcEasing)(1 - distance / repulseRadius, repulseOptions.easing) * velocity, 0, repulseOptions.maxSpeed), normVec = Vector_1.Vector.create(distance === 0 ? velocity : (dx / distance) * repulseFactor, distance === 0 ? velocity : (dy / distance) * repulseFactor);\n particle.position.addTo(normVec);\n }\n }\n clickRepulse() {\n const container = this.container;\n if (!container.repulse.finish) {\n if (!container.repulse.count) {\n container.repulse.count = 0;\n }\n container.repulse.count++;\n if (container.repulse.count === container.particles.count) {\n container.repulse.finish = true;\n }\n }\n if (container.repulse.clicking) {\n const repulseDistance = container.retina.repulseModeDistance, repulseRadius = Math.pow(repulseDistance / 6, 3), mouseClickPos = container.interactivity.mouse.clickPosition;\n if (mouseClickPos === undefined) {\n return;\n }\n const range = new Utils_1.Circle(mouseClickPos.x, mouseClickPos.y, repulseRadius), query = container.particles.quadTree.query(range);\n for (const particle of query) {\n const { dx, dy, distance } = (0, Utils_1.getDistances)(mouseClickPos, particle.position), d = distance ** 2, velocity = container.actualOptions.interactivity.modes.repulse.speed, force = (-repulseRadius * velocity) / d;\n if (d <= repulseRadius) {\n container.repulse.particles.push(particle);\n const vect = Vector_1.Vector.create(dx, dy);\n vect.length = force;\n particle.velocity.setTo(vect);\n }\n }\n }\n else if (container.repulse.clicking === false) {\n for (const particle of container.repulse.particles) {\n particle.velocity.setTo(particle.initialVelocity);\n }\n container.repulse.particles = [];\n }\n }\n}\nexports.Repulser = Repulser;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL0V4dGVybmFsL1JlcHVsc2UvUmVwdWxzZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsZ0JBQWdCO0FBQ2hCLGdCQUFnQixtQkFBTyxDQUFDLGlFQUFnQjtBQUN4QyxnQkFBZ0IsbUJBQU8sQ0FBQyxpRUFBZ0I7QUFDeEMsaUJBQWlCLG1CQUFPLENBQUMseUZBQStCO0FBQ3hELGlDQUFpQyxtQkFBTyxDQUFDLHVHQUFzQztBQUMvRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixtQkFBbUI7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLG1CQUFtQjtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL0V4dGVybmFsL1JlcHVsc2UvUmVwdWxzZXIuanM/YTJmZiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuUmVwdWxzZXIgPSB2b2lkIDA7XG5jb25zdCBFbnVtc18xID0gcmVxdWlyZShcIi4uLy4uLy4uL0VudW1zXCIpO1xuY29uc3QgVXRpbHNfMSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9VdGlsc1wiKTtcbmNvbnN0IFZlY3Rvcl8xID0gcmVxdWlyZShcIi4uLy4uLy4uL0NvcmUvUGFydGljbGUvVmVjdG9yXCIpO1xuY29uc3QgRXh0ZXJuYWxJbnRlcmFjdG9yQmFzZV8xID0gcmVxdWlyZShcIi4uLy4uLy4uL0NvcmUvRXh0ZXJuYWxJbnRlcmFjdG9yQmFzZVwiKTtcbmNsYXNzIFJlcHVsc2VyIGV4dGVuZHMgRXh0ZXJuYWxJbnRlcmFjdG9yQmFzZV8xLkV4dGVybmFsSW50ZXJhY3RvckJhc2Uge1xuICAgIGNvbnN0cnVjdG9yKGNvbnRhaW5lcikge1xuICAgICAgICBzdXBlcihjb250YWluZXIpO1xuICAgIH1cbiAgICBpc0VuYWJsZWQoKSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyLCBvcHRpb25zID0gY29udGFpbmVyLmFjdHVhbE9wdGlvbnMsIG1vdXNlID0gY29udGFpbmVyLmludGVyYWN0aXZpdHkubW91c2UsIGV2ZW50cyA9IG9wdGlvbnMuaW50ZXJhY3Rpdml0eS5ldmVudHMsIGRpdnMgPSBldmVudHMub25EaXYsIGRpdlJlcHVsc2UgPSAoMCwgVXRpbHNfMS5pc0Rpdk1vZGVFbmFibGVkKShFbnVtc18xLkRpdk1vZGUucmVwdWxzZSwgZGl2cyk7XG4gICAgICAgIGlmICghKGRpdlJlcHVsc2UgfHwgKGV2ZW50cy5vbkhvdmVyLmVuYWJsZSAmJiBtb3VzZS5wb3NpdGlvbikgfHwgKGV2ZW50cy5vbkNsaWNrLmVuYWJsZSAmJiBtb3VzZS5jbGlja1Bvc2l0aW9uKSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBob3Zlck1vZGUgPSBldmVudHMub25Ib3Zlci5tb2RlLCBjbGlja01vZGUgPSBldmVudHMub25DbGljay5tb2RlO1xuICAgICAgICByZXR1cm4gKDAsIFV0aWxzXzEuaXNJbkFycmF5KShFbnVtc18xLkhvdmVyTW9kZS5yZXB1bHNlLCBob3Zlck1vZGUpIHx8ICgwLCBVdGlsc18xLmlzSW5BcnJheSkoRW51bXNfMS5DbGlja01vZGUucmVwdWxzZSwgY2xpY2tNb2RlKSB8fCBkaXZSZXB1bHNlO1xuICAgIH1cbiAgICByZXNldCgpIHtcbiAgICB9XG4gICAgaW50ZXJhY3QoKSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyLCBvcHRpb25zID0gY29udGFpbmVyLmFjdHVhbE9wdGlvbnMsIG1vdXNlTW92ZVN0YXR1cyA9IGNvbnRhaW5lci5pbnRlcmFjdGl2aXR5LnN0YXR1cyA9PT0gVXRpbHNfMS5Db25zdGFudHMubW91c2VNb3ZlRXZlbnQsIGV2ZW50cyA9IG9wdGlvbnMuaW50ZXJhY3Rpdml0eS5ldmVudHMsIGhvdmVyRW5hYmxlZCA9IGV2ZW50cy5vbkhvdmVyLmVuYWJsZSwgaG92ZXJNb2RlID0gZXZlbnRzLm9uSG92ZXIubW9kZSwgY2xpY2tFbmFibGVkID0gZXZlbnRzLm9uQ2xpY2suZW5hYmxlLCBjbGlja01vZGUgPSBldmVudHMub25DbGljay5tb2RlLCBkaXZzID0gZXZlbnRzLm9uRGl2O1xuICAgICAgICBpZiAobW91c2VNb3ZlU3RhdHVzICYmIGhvdmVyRW5hYmxlZCAmJiAoMCwgVXRpbHNfMS5pc0luQXJyYXkpKEVudW1zXzEuSG92ZXJNb2RlLnJlcHVsc2UsIGhvdmVyTW9kZSkpIHtcbiAgICAgICAgICAgIHRoaXMuaG92ZXJSZXB1bHNlKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoY2xpY2tFbmFibGVkICYmICgwLCBVdGlsc18xLmlzSW5BcnJheSkoRW51bXNfMS5DbGlja01vZGUucmVwdWxzZSwgY2xpY2tNb2RlKSkge1xuICAgICAgICAgICAgdGhpcy5jbGlja1JlcHVsc2UoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICgwLCBVdGlsc18xLmRpdk1vZGVFeGVjdXRlKShFbnVtc18xLkRpdk1vZGUucmVwdWxzZSwgZGl2cywgKHNlbGVjdG9yLCBkaXYpID0+IHRoaXMuc2luZ2xlU2VsZWN0b3JSZXB1bHNlKHNlbGVjdG9yLCBkaXYpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzaW5nbGVTZWxlY3RvclJlcHVsc2Uoc2VsZWN0b3IsIGRpdikge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lciwgcXVlcnkgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKTtcbiAgICAgICAgaWYgKCFxdWVyeS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBxdWVyeS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBlbGVtID0gaXRlbSwgcHhSYXRpbyA9IGNvbnRhaW5lci5yZXRpbmEucGl4ZWxSYXRpbywgcG9zID0ge1xuICAgICAgICAgICAgICAgIHg6IChlbGVtLm9mZnNldExlZnQgKyBlbGVtLm9mZnNldFdpZHRoIC8gMikgKiBweFJhdGlvLFxuICAgICAgICAgICAgICAgIHk6IChlbGVtLm9mZnNldFRvcCArIGVsZW0ub2Zmc2V0SGVpZ2h0IC8gMikgKiBweFJhdGlvLFxuICAgICAgICAgICAgfSwgcmVwdWxzZVJhZGl1cyA9IChlbGVtLm9mZnNldFdpZHRoIC8gMikgKiBweFJhdGlvLCBhcmVhID0gZGl2LnR5cGUgPT09IEVudW1zXzEuRGl2VHlwZS5jaXJjbGVcbiAgICAgICAgICAgICAgICA/IG5ldyBVdGlsc18xLkNpcmNsZShwb3MueCwgcG9zLnksIHJlcHVsc2VSYWRpdXMpXG4gICAgICAgICAgICAgICAgOiBuZXcgVXRpbHNfMS5SZWN0YW5nbGUoZWxlbS5vZmZzZXRMZWZ0ICogcHhSYXRpbywgZWxlbS5vZmZzZXRUb3AgKiBweFJhdGlvLCBlbGVtLm9mZnNldFdpZHRoICogcHhSYXRpbywgZWxlbS5vZmZzZXRIZWlnaHQgKiBweFJhdGlvKSwgZGl2cyA9IGNvbnRhaW5lci5hY3R1YWxPcHRpb25zLmludGVyYWN0aXZpdHkubW9kZXMucmVwdWxzZS5kaXZzLCBkaXZSZXB1bHNlID0gKDAsIFV0aWxzXzEuZGl2TW9kZSkoZGl2cywgZWxlbSk7XG4gICAgICAgICAgICB0aGlzLnByb2Nlc3NSZXB1bHNlKHBvcywgcmVwdWxzZVJhZGl1cywgYXJlYSwgZGl2UmVwdWxzZSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBob3ZlclJlcHVsc2UoKSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyLCBtb3VzZVBvcyA9IGNvbnRhaW5lci5pbnRlcmFjdGl2aXR5Lm1vdXNlLnBvc2l0aW9uO1xuICAgICAgICBpZiAoIW1vdXNlUG9zKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVwdWxzZVJhZGl1cyA9IGNvbnRhaW5lci5yZXRpbmEucmVwdWxzZU1vZGVEaXN0YW5jZTtcbiAgICAgICAgdGhpcy5wcm9jZXNzUmVwdWxzZShtb3VzZVBvcywgcmVwdWxzZVJhZGl1cywgbmV3IFV0aWxzXzEuQ2lyY2xlKG1vdXNlUG9zLngsIG1vdXNlUG9zLnksIHJlcHVsc2VSYWRpdXMpKTtcbiAgICB9XG4gICAgcHJvY2Vzc1JlcHVsc2UocG9zaXRpb24sIHJlcHVsc2VSYWRpdXMsIGFyZWEsIGRpdlJlcHVsc2UpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lciwgcXVlcnkgPSBjb250YWluZXIucGFydGljbGVzLnF1YWRUcmVlLnF1ZXJ5KGFyZWEpLCByZXB1bHNlT3B0aW9ucyA9IGNvbnRhaW5lci5hY3R1YWxPcHRpb25zLmludGVyYWN0aXZpdHkubW9kZXMucmVwdWxzZTtcbiAgICAgICAgZm9yIChjb25zdCBwYXJ0aWNsZSBvZiBxdWVyeSkge1xuICAgICAgICAgICAgY29uc3QgeyBkeCwgZHksIGRpc3RhbmNlIH0gPSAoMCwgVXRpbHNfMS5nZXREaXN0YW5jZXMpKHBhcnRpY2xlLnBvc2l0aW9uLCBwb3NpdGlvbiksIHZlbG9jaXR5ID0gKChfYSA9IGRpdlJlcHVsc2UgPT09IG51bGwgfHwgZGl2UmVwdWxzZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZGl2UmVwdWxzZS5zcGVlZCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogcmVwdWxzZU9wdGlvbnMuc3BlZWQpICogcmVwdWxzZU9wdGlvbnMuZmFjdG9yLCByZXB1bHNlRmFjdG9yID0gKDAsIFV0aWxzXzEuY2xhbXApKCgwLCBVdGlsc18xLmNhbGNFYXNpbmcpKDEgLSBkaXN0YW5jZSAvIHJlcHVsc2VSYWRpdXMsIHJlcHVsc2VPcHRpb25zLmVhc2luZykgKiB2ZWxvY2l0eSwgMCwgcmVwdWxzZU9wdGlvbnMubWF4U3BlZWQpLCBub3JtVmVjID0gVmVjdG9yXzEuVmVjdG9yLmNyZWF0ZShkaXN0YW5jZSA9PT0gMCA/IHZlbG9jaXR5IDogKGR4IC8gZGlzdGFuY2UpICogcmVwdWxzZUZhY3RvciwgZGlzdGFuY2UgPT09IDAgPyB2ZWxvY2l0eSA6IChkeSAvIGRpc3RhbmNlKSAqIHJlcHVsc2VGYWN0b3IpO1xuICAgICAgICAgICAgcGFydGljbGUucG9zaXRpb24uYWRkVG8obm9ybVZlYyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY2xpY2tSZXB1bHNlKCkge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgaWYgKCFjb250YWluZXIucmVwdWxzZS5maW5pc2gpIHtcbiAgICAgICAgICAgIGlmICghY29udGFpbmVyLnJlcHVsc2UuY291bnQpIHtcbiAgICAgICAgICAgICAgICBjb250YWluZXIucmVwdWxzZS5jb3VudCA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb250YWluZXIucmVwdWxzZS5jb3VudCsrO1xuICAgICAgICAgICAgaWYgKGNvbnRhaW5lci5yZXB1bHNlLmNvdW50ID09PSBjb250YWluZXIucGFydGljbGVzLmNvdW50KSB7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLnJlcHVsc2UuZmluaXNoID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoY29udGFpbmVyLnJlcHVsc2UuY2xpY2tpbmcpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlcHVsc2VEaXN0YW5jZSA9IGNvbnRhaW5lci5yZXRpbmEucmVwdWxzZU1vZGVEaXN0YW5jZSwgcmVwdWxzZVJhZGl1cyA9IE1hdGgucG93KHJlcHVsc2VEaXN0YW5jZSAvIDYsIDMpLCBtb3VzZUNsaWNrUG9zID0gY29udGFpbmVyLmludGVyYWN0aXZpdHkubW91c2UuY2xpY2tQb3NpdGlvbjtcbiAgICAgICAgICAgIGlmIChtb3VzZUNsaWNrUG9zID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCByYW5nZSA9IG5ldyBVdGlsc18xLkNpcmNsZShtb3VzZUNsaWNrUG9zLngsIG1vdXNlQ2xpY2tQb3MueSwgcmVwdWxzZVJhZGl1cyksIHF1ZXJ5ID0gY29udGFpbmVyLnBhcnRpY2xlcy5xdWFkVHJlZS5xdWVyeShyYW5nZSk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHBhcnRpY2xlIG9mIHF1ZXJ5KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBkeCwgZHksIGRpc3RhbmNlIH0gPSAoMCwgVXRpbHNfMS5nZXREaXN0YW5jZXMpKG1vdXNlQ2xpY2tQb3MsIHBhcnRpY2xlLnBvc2l0aW9uKSwgZCA9IGRpc3RhbmNlICoqIDIsIHZlbG9jaXR5ID0gY29udGFpbmVyLmFjdHVhbE9wdGlvbnMuaW50ZXJhY3Rpdml0eS5tb2Rlcy5yZXB1bHNlLnNwZWVkLCBmb3JjZSA9ICgtcmVwdWxzZVJhZGl1cyAqIHZlbG9jaXR5KSAvIGQ7XG4gICAgICAgICAgICAgICAgaWYgKGQgPD0gcmVwdWxzZVJhZGl1cykge1xuICAgICAgICAgICAgICAgICAgICBjb250YWluZXIucmVwdWxzZS5wYXJ0aWNsZXMucHVzaChwYXJ0aWNsZSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZlY3QgPSBWZWN0b3JfMS5WZWN0b3IuY3JlYXRlKGR4LCBkeSk7XG4gICAgICAgICAgICAgICAgICAgIHZlY3QubGVuZ3RoID0gZm9yY2U7XG4gICAgICAgICAgICAgICAgICAgIHBhcnRpY2xlLnZlbG9jaXR5LnNldFRvKHZlY3QpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChjb250YWluZXIucmVwdWxzZS5jbGlja2luZyA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgcGFydGljbGUgb2YgY29udGFpbmVyLnJlcHVsc2UucGFydGljbGVzKSB7XG4gICAgICAgICAgICAgICAgcGFydGljbGUudmVsb2NpdHkuc2V0VG8ocGFydGljbGUuaW5pdGlhbFZlbG9jaXR5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnRhaW5lci5yZXB1bHNlLnBhcnRpY2xlcyA9IFtdO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5SZXB1bHNlciA9IFJlcHVsc2VyO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/External/Repulse/Repulser.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/External/Repulse/index.js": +/*!*************************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/External/Repulse/index.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadExternalRepulseInteraction = void 0;\nconst Repulser_1 = __webpack_require__(/*! ./Repulser */ \"./node_modules/tsparticles/Interactions/External/Repulse/Repulser.js\");\nasync function loadExternalRepulseInteraction(tsParticles) {\n await tsParticles.addInteractor(\"externalRepulse\", (container) => new Repulser_1.Repulser(container));\n}\nexports.loadExternalRepulseInteraction = loadExternalRepulseInteraction;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL0V4dGVybmFsL1JlcHVsc2UvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsc0NBQXNDO0FBQ3RDLG1CQUFtQixtQkFBTyxDQUFDLHdGQUFZO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBLHNDQUFzQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL0V4dGVybmFsL1JlcHVsc2UvaW5kZXguanM/ZTk3NyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMubG9hZEV4dGVybmFsUmVwdWxzZUludGVyYWN0aW9uID0gdm9pZCAwO1xuY29uc3QgUmVwdWxzZXJfMSA9IHJlcXVpcmUoXCIuL1JlcHVsc2VyXCIpO1xuYXN5bmMgZnVuY3Rpb24gbG9hZEV4dGVybmFsUmVwdWxzZUludGVyYWN0aW9uKHRzUGFydGljbGVzKSB7XG4gICAgYXdhaXQgdHNQYXJ0aWNsZXMuYWRkSW50ZXJhY3RvcihcImV4dGVybmFsUmVwdWxzZVwiLCAoY29udGFpbmVyKSA9PiBuZXcgUmVwdWxzZXJfMS5SZXB1bHNlcihjb250YWluZXIpKTtcbn1cbmV4cG9ydHMubG9hZEV4dGVybmFsUmVwdWxzZUludGVyYWN0aW9uID0gbG9hZEV4dGVybmFsUmVwdWxzZUludGVyYWN0aW9uO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/External/Repulse/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/External/Trail/TrailMaker.js": +/*!****************************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/External/Trail/TrailMaker.js ***! + \****************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.TrailMaker = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Enums_1 = __webpack_require__(/*! ../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst ExternalInteractorBase_1 = __webpack_require__(/*! ../../../Core/ExternalInteractorBase */ \"./node_modules/tsparticles/Core/ExternalInteractorBase.js\");\nclass TrailMaker extends ExternalInteractorBase_1.ExternalInteractorBase {\n constructor(container) {\n super(container);\n this.delay = 0;\n }\n interact(delta) {\n var _a, _b, _c, _d;\n if (!this.container.retina.reduceFactor) {\n return;\n }\n const container = this.container, options = container.actualOptions, trailOptions = options.interactivity.modes.trail, optDelay = (trailOptions.delay * 1000) / this.container.retina.reduceFactor;\n if (this.delay < optDelay) {\n this.delay += delta.value;\n }\n if (this.delay < optDelay) {\n return;\n }\n let canEmit = true;\n if (trailOptions.pauseOnStop) {\n if (container.interactivity.mouse.position === this.lastPosition ||\n (((_a = container.interactivity.mouse.position) === null || _a === void 0 ? void 0 : _a.x) === ((_b = this.lastPosition) === null || _b === void 0 ? void 0 : _b.x) &&\n ((_c = container.interactivity.mouse.position) === null || _c === void 0 ? void 0 : _c.y) === ((_d = this.lastPosition) === null || _d === void 0 ? void 0 : _d.y))) {\n canEmit = false;\n }\n }\n if (container.interactivity.mouse.position) {\n this.lastPosition = {\n x: container.interactivity.mouse.position.x,\n y: container.interactivity.mouse.position.y,\n };\n }\n else {\n delete this.lastPosition;\n }\n if (canEmit) {\n container.particles.push(trailOptions.quantity, container.interactivity.mouse, trailOptions.particles);\n }\n this.delay -= optDelay;\n }\n isEnabled() {\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse, events = options.interactivity.events;\n return ((mouse.clicking && mouse.inside && !!mouse.position && (0, Utils_1.isInArray)(Enums_1.ClickMode.trail, events.onClick.mode)) ||\n (mouse.inside && !!mouse.position && (0, Utils_1.isInArray)(Enums_1.HoverMode.trail, events.onHover.mode)));\n }\n reset() {\n }\n}\nexports.TrailMaker = TrailMaker;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL0V4dGVybmFsL1RyYWlsL1RyYWlsTWFrZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsa0JBQWtCO0FBQ2xCLGdCQUFnQixtQkFBTyxDQUFDLGlFQUFnQjtBQUN4QyxnQkFBZ0IsbUJBQU8sQ0FBQyxpRUFBZ0I7QUFDeEMsaUNBQWlDLG1CQUFPLENBQUMsdUdBQXNDO0FBQy9FO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0ludGVyYWN0aW9ucy9FeHRlcm5hbC9UcmFpbC9UcmFpbE1ha2VyLmpzP2QzMjYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlRyYWlsTWFrZXIgPSB2b2lkIDA7XG5jb25zdCBVdGlsc18xID0gcmVxdWlyZShcIi4uLy4uLy4uL1V0aWxzXCIpO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9FbnVtc1wiKTtcbmNvbnN0IEV4dGVybmFsSW50ZXJhY3RvckJhc2VfMSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9Db3JlL0V4dGVybmFsSW50ZXJhY3RvckJhc2VcIik7XG5jbGFzcyBUcmFpbE1ha2VyIGV4dGVuZHMgRXh0ZXJuYWxJbnRlcmFjdG9yQmFzZV8xLkV4dGVybmFsSW50ZXJhY3RvckJhc2Uge1xuICAgIGNvbnN0cnVjdG9yKGNvbnRhaW5lcikge1xuICAgICAgICBzdXBlcihjb250YWluZXIpO1xuICAgICAgICB0aGlzLmRlbGF5ID0gMDtcbiAgICB9XG4gICAgaW50ZXJhY3QoZGVsdGEpIHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kO1xuICAgICAgICBpZiAoIXRoaXMuY29udGFpbmVyLnJldGluYS5yZWR1Y2VGYWN0b3IpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lciwgb3B0aW9ucyA9IGNvbnRhaW5lci5hY3R1YWxPcHRpb25zLCB0cmFpbE9wdGlvbnMgPSBvcHRpb25zLmludGVyYWN0aXZpdHkubW9kZXMudHJhaWwsIG9wdERlbGF5ID0gKHRyYWlsT3B0aW9ucy5kZWxheSAqIDEwMDApIC8gdGhpcy5jb250YWluZXIucmV0aW5hLnJlZHVjZUZhY3RvcjtcbiAgICAgICAgaWYgKHRoaXMuZGVsYXkgPCBvcHREZWxheSkge1xuICAgICAgICAgICAgdGhpcy5kZWxheSArPSBkZWx0YS52YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5kZWxheSA8IG9wdERlbGF5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGNhbkVtaXQgPSB0cnVlO1xuICAgICAgICBpZiAodHJhaWxPcHRpb25zLnBhdXNlT25TdG9wKSB7XG4gICAgICAgICAgICBpZiAoY29udGFpbmVyLmludGVyYWN0aXZpdHkubW91c2UucG9zaXRpb24gPT09IHRoaXMubGFzdFBvc2l0aW9uIHx8XG4gICAgICAgICAgICAgICAgKCgoX2EgPSBjb250YWluZXIuaW50ZXJhY3Rpdml0eS5tb3VzZS5wb3NpdGlvbikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLngpID09PSAoKF9iID0gdGhpcy5sYXN0UG9zaXRpb24pID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi54KSAmJlxuICAgICAgICAgICAgICAgICAgICAoKF9jID0gY29udGFpbmVyLmludGVyYWN0aXZpdHkubW91c2UucG9zaXRpb24pID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy55KSA9PT0gKChfZCA9IHRoaXMubGFzdFBvc2l0aW9uKSA9PT0gbnVsbCB8fCBfZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2QueSkpKSB7XG4gICAgICAgICAgICAgICAgY2FuRW1pdCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChjb250YWluZXIuaW50ZXJhY3Rpdml0eS5tb3VzZS5wb3NpdGlvbikge1xuICAgICAgICAgICAgdGhpcy5sYXN0UG9zaXRpb24gPSB7XG4gICAgICAgICAgICAgICAgeDogY29udGFpbmVyLmludGVyYWN0aXZpdHkubW91c2UucG9zaXRpb24ueCxcbiAgICAgICAgICAgICAgICB5OiBjb250YWluZXIuaW50ZXJhY3Rpdml0eS5tb3VzZS5wb3NpdGlvbi55LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLmxhc3RQb3NpdGlvbjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2FuRW1pdCkge1xuICAgICAgICAgICAgY29udGFpbmVyLnBhcnRpY2xlcy5wdXNoKHRyYWlsT3B0aW9ucy5xdWFudGl0eSwgY29udGFpbmVyLmludGVyYWN0aXZpdHkubW91c2UsIHRyYWlsT3B0aW9ucy5wYXJ0aWNsZXMpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGVsYXkgLT0gb3B0RGVsYXk7XG4gICAgfVxuICAgIGlzRW5hYmxlZCgpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXIsIG9wdGlvbnMgPSBjb250YWluZXIuYWN0dWFsT3B0aW9ucywgbW91c2UgPSBjb250YWluZXIuaW50ZXJhY3Rpdml0eS5tb3VzZSwgZXZlbnRzID0gb3B0aW9ucy5pbnRlcmFjdGl2aXR5LmV2ZW50cztcbiAgICAgICAgcmV0dXJuICgobW91c2UuY2xpY2tpbmcgJiYgbW91c2UuaW5zaWRlICYmICEhbW91c2UucG9zaXRpb24gJiYgKDAsIFV0aWxzXzEuaXNJbkFycmF5KShFbnVtc18xLkNsaWNrTW9kZS50cmFpbCwgZXZlbnRzLm9uQ2xpY2subW9kZSkpIHx8XG4gICAgICAgICAgICAobW91c2UuaW5zaWRlICYmICEhbW91c2UucG9zaXRpb24gJiYgKDAsIFV0aWxzXzEuaXNJbkFycmF5KShFbnVtc18xLkhvdmVyTW9kZS50cmFpbCwgZXZlbnRzLm9uSG92ZXIubW9kZSkpKTtcbiAgICB9XG4gICAgcmVzZXQoKSB7XG4gICAgfVxufVxuZXhwb3J0cy5UcmFpbE1ha2VyID0gVHJhaWxNYWtlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/External/Trail/TrailMaker.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/External/Trail/index.js": +/*!***********************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/External/Trail/index.js ***! + \***********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadExternalTrailInteraction = void 0;\nconst TrailMaker_1 = __webpack_require__(/*! ./TrailMaker */ \"./node_modules/tsparticles/Interactions/External/Trail/TrailMaker.js\");\nasync function loadExternalTrailInteraction(tsParticles) {\n await tsParticles.addInteractor(\"externalTrail\", (container) => new TrailMaker_1.TrailMaker(container));\n}\nexports.loadExternalTrailInteraction = loadExternalTrailInteraction;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL0V4dGVybmFsL1RyYWlsL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELG9DQUFvQztBQUNwQyxxQkFBcUIsbUJBQU8sQ0FBQywwRkFBYztBQUMzQztBQUNBO0FBQ0E7QUFDQSxvQ0FBb0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0ludGVyYWN0aW9ucy9FeHRlcm5hbC9UcmFpbC9pbmRleC5qcz80YWZkIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5sb2FkRXh0ZXJuYWxUcmFpbEludGVyYWN0aW9uID0gdm9pZCAwO1xuY29uc3QgVHJhaWxNYWtlcl8xID0gcmVxdWlyZShcIi4vVHJhaWxNYWtlclwiKTtcbmFzeW5jIGZ1bmN0aW9uIGxvYWRFeHRlcm5hbFRyYWlsSW50ZXJhY3Rpb24odHNQYXJ0aWNsZXMpIHtcbiAgICBhd2FpdCB0c1BhcnRpY2xlcy5hZGRJbnRlcmFjdG9yKFwiZXh0ZXJuYWxUcmFpbFwiLCAoY29udGFpbmVyKSA9PiBuZXcgVHJhaWxNYWtlcl8xLlRyYWlsTWFrZXIoY29udGFpbmVyKSk7XG59XG5leHBvcnRzLmxvYWRFeHRlcm5hbFRyYWlsSW50ZXJhY3Rpb24gPSBsb2FkRXh0ZXJuYWxUcmFpbEludGVyYWN0aW9uO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/External/Trail/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/Particles/Attract/Attractor.js": +/*!******************************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/Particles/Attract/Attractor.js ***! + \******************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Attractor = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst ParticlesInteractorBase_1 = __webpack_require__(/*! ../../../Core/ParticlesInteractorBase */ \"./node_modules/tsparticles/Core/ParticlesInteractorBase.js\");\nclass Attractor extends ParticlesInteractorBase_1.ParticlesInteractorBase {\n constructor(container) {\n super(container);\n }\n interact(p1) {\n var _a;\n const container = this.container, distance = (_a = p1.retina.attractDistance) !== null && _a !== void 0 ? _a : container.retina.attractDistance, pos1 = p1.getPosition(), query = container.particles.quadTree.queryCircle(pos1, distance);\n for (const p2 of query) {\n if (p1 === p2 || !p2.options.move.attract.enable || p2.destroyed || p2.spawning) {\n continue;\n }\n const pos2 = p2.getPosition(), { dx, dy } = (0, Utils_1.getDistances)(pos1, pos2), rotate = p1.options.move.attract.rotate, ax = dx / (rotate.x * 1000), ay = dy / (rotate.y * 1000), p1Factor = p2.size.value / p1.size.value, p2Factor = 1 / p1Factor;\n p1.velocity.x -= ax * p1Factor;\n p1.velocity.y -= ay * p1Factor;\n p2.velocity.x += ax * p2Factor;\n p2.velocity.y += ay * p2Factor;\n }\n }\n isEnabled(particle) {\n return particle.options.move.attract.enable;\n }\n reset() {\n }\n}\nexports.Attractor = Attractor;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL1BhcnRpY2xlcy9BdHRyYWN0L0F0dHJhY3Rvci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxpQkFBaUI7QUFDakIsZ0JBQWdCLG1CQUFPLENBQUMsaUVBQWdCO0FBQ3hDLGtDQUFrQyxtQkFBTyxDQUFDLHlHQUF1QztBQUNqRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkNBQTZDLFNBQVM7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9JbnRlcmFjdGlvbnMvUGFydGljbGVzL0F0dHJhY3QvQXR0cmFjdG9yLmpzP2Y3YWUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkF0dHJhY3RvciA9IHZvaWQgMDtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vVXRpbHNcIik7XG5jb25zdCBQYXJ0aWNsZXNJbnRlcmFjdG9yQmFzZV8xID0gcmVxdWlyZShcIi4uLy4uLy4uL0NvcmUvUGFydGljbGVzSW50ZXJhY3RvckJhc2VcIik7XG5jbGFzcyBBdHRyYWN0b3IgZXh0ZW5kcyBQYXJ0aWNsZXNJbnRlcmFjdG9yQmFzZV8xLlBhcnRpY2xlc0ludGVyYWN0b3JCYXNlIHtcbiAgICBjb25zdHJ1Y3Rvcihjb250YWluZXIpIHtcbiAgICAgICAgc3VwZXIoY29udGFpbmVyKTtcbiAgICB9XG4gICAgaW50ZXJhY3QocDEpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lciwgZGlzdGFuY2UgPSAoX2EgPSBwMS5yZXRpbmEuYXR0cmFjdERpc3RhbmNlKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBjb250YWluZXIucmV0aW5hLmF0dHJhY3REaXN0YW5jZSwgcG9zMSA9IHAxLmdldFBvc2l0aW9uKCksIHF1ZXJ5ID0gY29udGFpbmVyLnBhcnRpY2xlcy5xdWFkVHJlZS5xdWVyeUNpcmNsZShwb3MxLCBkaXN0YW5jZSk7XG4gICAgICAgIGZvciAoY29uc3QgcDIgb2YgcXVlcnkpIHtcbiAgICAgICAgICAgIGlmIChwMSA9PT0gcDIgfHwgIXAyLm9wdGlvbnMubW92ZS5hdHRyYWN0LmVuYWJsZSB8fCBwMi5kZXN0cm95ZWQgfHwgcDIuc3Bhd25pbmcpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHBvczIgPSBwMi5nZXRQb3NpdGlvbigpLCB7IGR4LCBkeSB9ID0gKDAsIFV0aWxzXzEuZ2V0RGlzdGFuY2VzKShwb3MxLCBwb3MyKSwgcm90YXRlID0gcDEub3B0aW9ucy5tb3ZlLmF0dHJhY3Qucm90YXRlLCBheCA9IGR4IC8gKHJvdGF0ZS54ICogMTAwMCksIGF5ID0gZHkgLyAocm90YXRlLnkgKiAxMDAwKSwgcDFGYWN0b3IgPSBwMi5zaXplLnZhbHVlIC8gcDEuc2l6ZS52YWx1ZSwgcDJGYWN0b3IgPSAxIC8gcDFGYWN0b3I7XG4gICAgICAgICAgICBwMS52ZWxvY2l0eS54IC09IGF4ICogcDFGYWN0b3I7XG4gICAgICAgICAgICBwMS52ZWxvY2l0eS55IC09IGF5ICogcDFGYWN0b3I7XG4gICAgICAgICAgICBwMi52ZWxvY2l0eS54ICs9IGF4ICogcDJGYWN0b3I7XG4gICAgICAgICAgICBwMi52ZWxvY2l0eS55ICs9IGF5ICogcDJGYWN0b3I7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaXNFbmFibGVkKHBhcnRpY2xlKSB7XG4gICAgICAgIHJldHVybiBwYXJ0aWNsZS5vcHRpb25zLm1vdmUuYXR0cmFjdC5lbmFibGU7XG4gICAgfVxuICAgIHJlc2V0KCkge1xuICAgIH1cbn1cbmV4cG9ydHMuQXR0cmFjdG9yID0gQXR0cmFjdG9yO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/Particles/Attract/Attractor.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/Particles/Attract/index.js": +/*!**************************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/Particles/Attract/index.js ***! + \**************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadParticlesAttractInteraction = void 0;\nconst Attractor_1 = __webpack_require__(/*! ./Attractor */ \"./node_modules/tsparticles/Interactions/Particles/Attract/Attractor.js\");\nasync function loadParticlesAttractInteraction(tsParticles) {\n await tsParticles.addInteractor(\"particlesAttract\", (container) => new Attractor_1.Attractor(container));\n}\nexports.loadParticlesAttractInteraction = loadParticlesAttractInteraction;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL1BhcnRpY2xlcy9BdHRyYWN0L2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHVDQUF1QztBQUN2QyxvQkFBb0IsbUJBQU8sQ0FBQywyRkFBYTtBQUN6QztBQUNBO0FBQ0E7QUFDQSx1Q0FBdUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0ludGVyYWN0aW9ucy9QYXJ0aWNsZXMvQXR0cmFjdC9pbmRleC5qcz80YjRkIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5sb2FkUGFydGljbGVzQXR0cmFjdEludGVyYWN0aW9uID0gdm9pZCAwO1xuY29uc3QgQXR0cmFjdG9yXzEgPSByZXF1aXJlKFwiLi9BdHRyYWN0b3JcIik7XG5hc3luYyBmdW5jdGlvbiBsb2FkUGFydGljbGVzQXR0cmFjdEludGVyYWN0aW9uKHRzUGFydGljbGVzKSB7XG4gICAgYXdhaXQgdHNQYXJ0aWNsZXMuYWRkSW50ZXJhY3RvcihcInBhcnRpY2xlc0F0dHJhY3RcIiwgKGNvbnRhaW5lcikgPT4gbmV3IEF0dHJhY3Rvcl8xLkF0dHJhY3Rvcihjb250YWluZXIpKTtcbn1cbmV4cG9ydHMubG9hZFBhcnRpY2xlc0F0dHJhY3RJbnRlcmFjdGlvbiA9IGxvYWRQYXJ0aWNsZXNBdHRyYWN0SW50ZXJhY3Rpb247XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/Particles/Attract/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/Particles/Collisions/Collider.js": +/*!********************************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/Particles/Collisions/Collider.js ***! + \********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Collider = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst Utils_1 = __webpack_require__(/*! ../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst ParticlesInteractorBase_1 = __webpack_require__(/*! ../../../Core/ParticlesInteractorBase */ \"./node_modules/tsparticles/Core/ParticlesInteractorBase.js\");\nfunction bounce(p1, p2) {\n (0, Utils_1.circleBounce)((0, Utils_1.circleBounceDataFromParticle)(p1), (0, Utils_1.circleBounceDataFromParticle)(p2));\n}\nfunction destroy(p1, p2) {\n if (!p1.unbreakable && !p2.unbreakable) {\n bounce(p1, p2);\n }\n if (p1.getRadius() === undefined && p2.getRadius() !== undefined) {\n p1.destroy();\n }\n else if (p1.getRadius() !== undefined && p2.getRadius() === undefined) {\n p2.destroy();\n }\n else if (p1.getRadius() !== undefined && p2.getRadius() !== undefined) {\n if (p1.getRadius() >= p2.getRadius()) {\n p2.destroy();\n }\n else {\n p1.destroy();\n }\n }\n}\nclass Collider extends ParticlesInteractorBase_1.ParticlesInteractorBase {\n constructor(container) {\n super(container);\n }\n isEnabled(particle) {\n return particle.options.collisions.enable;\n }\n reset() {\n }\n interact(p1) {\n const container = this.container;\n const pos1 = p1.getPosition();\n const radius1 = p1.getRadius();\n const query = container.particles.quadTree.queryCircle(pos1, radius1 * 2);\n for (const p2 of query) {\n if (p1 === p2 ||\n !p2.options.collisions.enable ||\n p1.options.collisions.mode !== p2.options.collisions.mode ||\n p2.destroyed ||\n p2.spawning) {\n continue;\n }\n const pos2 = p2.getPosition();\n if (Math.round(pos1.z) !== Math.round(pos2.z)) {\n continue;\n }\n const dist = (0, Utils_1.getDistance)(pos1, pos2);\n const radius2 = p2.getRadius();\n const distP = radius1 + radius2;\n if (dist <= distP) {\n this.resolveCollision(p1, p2);\n }\n }\n }\n resolveCollision(p1, p2) {\n switch (p1.options.collisions.mode) {\n case Enums_1.CollisionMode.absorb: {\n this.absorb(p1, p2);\n break;\n }\n case Enums_1.CollisionMode.bounce: {\n bounce(p1, p2);\n break;\n }\n case Enums_1.CollisionMode.destroy: {\n destroy(p1, p2);\n break;\n }\n }\n }\n absorb(p1, p2) {\n const container = this.container;\n const fps = container.fpsLimit / 1000;\n if (p1.getRadius() === undefined && p2.getRadius() !== undefined) {\n p1.destroy();\n }\n else if (p1.getRadius() !== undefined && p2.getRadius() === undefined) {\n p2.destroy();\n }\n else if (p1.getRadius() !== undefined && p2.getRadius() !== undefined) {\n if (p1.getRadius() >= p2.getRadius()) {\n const factor = (0, Utils_1.clamp)(p1.getRadius() / p2.getRadius(), 0, p2.getRadius()) * fps;\n p1.size.value += factor;\n p2.size.value -= factor;\n if (p2.getRadius() <= container.retina.pixelRatio) {\n p2.size.value = 0;\n p2.destroy();\n }\n }\n else {\n const factor = (0, Utils_1.clamp)(p2.getRadius() / p1.getRadius(), 0, p1.getRadius()) * fps;\n p1.size.value -= factor;\n p2.size.value += factor;\n if (p1.getRadius() <= container.retina.pixelRatio) {\n p1.size.value = 0;\n p1.destroy();\n }\n }\n }\n }\n}\nexports.Collider = Collider;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL1BhcnRpY2xlcy9Db2xsaXNpb25zL0NvbGxpZGVyLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGdCQUFnQjtBQUNoQixnQkFBZ0IsbUJBQU8sQ0FBQyxpRUFBZ0I7QUFDeEMsZ0JBQWdCLG1CQUFPLENBQUMsaUVBQWdCO0FBQ3hDLGtDQUFrQyxtQkFBTyxDQUFDLHlHQUF1QztBQUNqRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL1BhcnRpY2xlcy9Db2xsaXNpb25zL0NvbGxpZGVyLmpzPzRkNjkiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkNvbGxpZGVyID0gdm9pZCAwO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9FbnVtc1wiKTtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vVXRpbHNcIik7XG5jb25zdCBQYXJ0aWNsZXNJbnRlcmFjdG9yQmFzZV8xID0gcmVxdWlyZShcIi4uLy4uLy4uL0NvcmUvUGFydGljbGVzSW50ZXJhY3RvckJhc2VcIik7XG5mdW5jdGlvbiBib3VuY2UocDEsIHAyKSB7XG4gICAgKDAsIFV0aWxzXzEuY2lyY2xlQm91bmNlKSgoMCwgVXRpbHNfMS5jaXJjbGVCb3VuY2VEYXRhRnJvbVBhcnRpY2xlKShwMSksICgwLCBVdGlsc18xLmNpcmNsZUJvdW5jZURhdGFGcm9tUGFydGljbGUpKHAyKSk7XG59XG5mdW5jdGlvbiBkZXN0cm95KHAxLCBwMikge1xuICAgIGlmICghcDEudW5icmVha2FibGUgJiYgIXAyLnVuYnJlYWthYmxlKSB7XG4gICAgICAgIGJvdW5jZShwMSwgcDIpO1xuICAgIH1cbiAgICBpZiAocDEuZ2V0UmFkaXVzKCkgPT09IHVuZGVmaW5lZCAmJiBwMi5nZXRSYWRpdXMoKSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHAxLmRlc3Ryb3koKTtcbiAgICB9XG4gICAgZWxzZSBpZiAocDEuZ2V0UmFkaXVzKCkgIT09IHVuZGVmaW5lZCAmJiBwMi5nZXRSYWRpdXMoKSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHAyLmRlc3Ryb3koKTtcbiAgICB9XG4gICAgZWxzZSBpZiAocDEuZ2V0UmFkaXVzKCkgIT09IHVuZGVmaW5lZCAmJiBwMi5nZXRSYWRpdXMoKSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChwMS5nZXRSYWRpdXMoKSA+PSBwMi5nZXRSYWRpdXMoKSkge1xuICAgICAgICAgICAgcDIuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcDEuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgfVxufVxuY2xhc3MgQ29sbGlkZXIgZXh0ZW5kcyBQYXJ0aWNsZXNJbnRlcmFjdG9yQmFzZV8xLlBhcnRpY2xlc0ludGVyYWN0b3JCYXNlIHtcbiAgICBjb25zdHJ1Y3Rvcihjb250YWluZXIpIHtcbiAgICAgICAgc3VwZXIoY29udGFpbmVyKTtcbiAgICB9XG4gICAgaXNFbmFibGVkKHBhcnRpY2xlKSB7XG4gICAgICAgIHJldHVybiBwYXJ0aWNsZS5vcHRpb25zLmNvbGxpc2lvbnMuZW5hYmxlO1xuICAgIH1cbiAgICByZXNldCgpIHtcbiAgICB9XG4gICAgaW50ZXJhY3QocDEpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXI7XG4gICAgICAgIGNvbnN0IHBvczEgPSBwMS5nZXRQb3NpdGlvbigpO1xuICAgICAgICBjb25zdCByYWRpdXMxID0gcDEuZ2V0UmFkaXVzKCk7XG4gICAgICAgIGNvbnN0IHF1ZXJ5ID0gY29udGFpbmVyLnBhcnRpY2xlcy5xdWFkVHJlZS5xdWVyeUNpcmNsZShwb3MxLCByYWRpdXMxICogMik7XG4gICAgICAgIGZvciAoY29uc3QgcDIgb2YgcXVlcnkpIHtcbiAgICAgICAgICAgIGlmIChwMSA9PT0gcDIgfHxcbiAgICAgICAgICAgICAgICAhcDIub3B0aW9ucy5jb2xsaXNpb25zLmVuYWJsZSB8fFxuICAgICAgICAgICAgICAgIHAxLm9wdGlvbnMuY29sbGlzaW9ucy5tb2RlICE9PSBwMi5vcHRpb25zLmNvbGxpc2lvbnMubW9kZSB8fFxuICAgICAgICAgICAgICAgIHAyLmRlc3Ryb3llZCB8fFxuICAgICAgICAgICAgICAgIHAyLnNwYXduaW5nKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBwb3MyID0gcDIuZ2V0UG9zaXRpb24oKTtcbiAgICAgICAgICAgIGlmIChNYXRoLnJvdW5kKHBvczEueikgIT09IE1hdGgucm91bmQocG9zMi56KSkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgZGlzdCA9ICgwLCBVdGlsc18xLmdldERpc3RhbmNlKShwb3MxLCBwb3MyKTtcbiAgICAgICAgICAgIGNvbnN0IHJhZGl1czIgPSBwMi5nZXRSYWRpdXMoKTtcbiAgICAgICAgICAgIGNvbnN0IGRpc3RQID0gcmFkaXVzMSArIHJhZGl1czI7XG4gICAgICAgICAgICBpZiAoZGlzdCA8PSBkaXN0UCkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVzb2x2ZUNvbGxpc2lvbihwMSwgcDIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJlc29sdmVDb2xsaXNpb24ocDEsIHAyKSB7XG4gICAgICAgIHN3aXRjaCAocDEub3B0aW9ucy5jb2xsaXNpb25zLm1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgRW51bXNfMS5Db2xsaXNpb25Nb2RlLmFic29yYjoge1xuICAgICAgICAgICAgICAgIHRoaXMuYWJzb3JiKHAxLCBwMik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEVudW1zXzEuQ29sbGlzaW9uTW9kZS5ib3VuY2U6IHtcbiAgICAgICAgICAgICAgICBib3VuY2UocDEsIHAyKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgRW51bXNfMS5Db2xsaXNpb25Nb2RlLmRlc3Ryb3k6IHtcbiAgICAgICAgICAgICAgICBkZXN0cm95KHAxLCBwMik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgYWJzb3JiKHAxLCBwMikge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgY29uc3QgZnBzID0gY29udGFpbmVyLmZwc0xpbWl0IC8gMTAwMDtcbiAgICAgICAgaWYgKHAxLmdldFJhZGl1cygpID09PSB1bmRlZmluZWQgJiYgcDIuZ2V0UmFkaXVzKCkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcDEuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHAxLmdldFJhZGl1cygpICE9PSB1bmRlZmluZWQgJiYgcDIuZ2V0UmFkaXVzKCkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcDIuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHAxLmdldFJhZGl1cygpICE9PSB1bmRlZmluZWQgJiYgcDIuZ2V0UmFkaXVzKCkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKHAxLmdldFJhZGl1cygpID49IHAyLmdldFJhZGl1cygpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmFjdG9yID0gKDAsIFV0aWxzXzEuY2xhbXApKHAxLmdldFJhZGl1cygpIC8gcDIuZ2V0UmFkaXVzKCksIDAsIHAyLmdldFJhZGl1cygpKSAqIGZwcztcbiAgICAgICAgICAgICAgICBwMS5zaXplLnZhbHVlICs9IGZhY3RvcjtcbiAgICAgICAgICAgICAgICBwMi5zaXplLnZhbHVlIC09IGZhY3RvcjtcbiAgICAgICAgICAgICAgICBpZiAocDIuZ2V0UmFkaXVzKCkgPD0gY29udGFpbmVyLnJldGluYS5waXhlbFJhdGlvKSB7XG4gICAgICAgICAgICAgICAgICAgIHAyLnNpemUudmFsdWUgPSAwO1xuICAgICAgICAgICAgICAgICAgICBwMi5kZXN0cm95KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmFjdG9yID0gKDAsIFV0aWxzXzEuY2xhbXApKHAyLmdldFJhZGl1cygpIC8gcDEuZ2V0UmFkaXVzKCksIDAsIHAxLmdldFJhZGl1cygpKSAqIGZwcztcbiAgICAgICAgICAgICAgICBwMS5zaXplLnZhbHVlIC09IGZhY3RvcjtcbiAgICAgICAgICAgICAgICBwMi5zaXplLnZhbHVlICs9IGZhY3RvcjtcbiAgICAgICAgICAgICAgICBpZiAocDEuZ2V0UmFkaXVzKCkgPD0gY29udGFpbmVyLnJldGluYS5waXhlbFJhdGlvKSB7XG4gICAgICAgICAgICAgICAgICAgIHAxLnNpemUudmFsdWUgPSAwO1xuICAgICAgICAgICAgICAgICAgICBwMS5kZXN0cm95KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5Db2xsaWRlciA9IENvbGxpZGVyO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/Particles/Collisions/Collider.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/Particles/Collisions/index.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/Particles/Collisions/index.js ***! + \*****************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadParticlesCollisionsInteraction = void 0;\nconst Collider_1 = __webpack_require__(/*! ./Collider */ \"./node_modules/tsparticles/Interactions/Particles/Collisions/Collider.js\");\nasync function loadParticlesCollisionsInteraction(tsParticles) {\n await tsParticles.addInteractor(\"particlesCollisions\", (container) => new Collider_1.Collider(container));\n}\nexports.loadParticlesCollisionsInteraction = loadParticlesCollisionsInteraction;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL1BhcnRpY2xlcy9Db2xsaXNpb25zL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELDBDQUEwQztBQUMxQyxtQkFBbUIsbUJBQU8sQ0FBQyw0RkFBWTtBQUN2QztBQUNBO0FBQ0E7QUFDQSwwQ0FBMEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0ludGVyYWN0aW9ucy9QYXJ0aWNsZXMvQ29sbGlzaW9ucy9pbmRleC5qcz8xNDY2Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5sb2FkUGFydGljbGVzQ29sbGlzaW9uc0ludGVyYWN0aW9uID0gdm9pZCAwO1xuY29uc3QgQ29sbGlkZXJfMSA9IHJlcXVpcmUoXCIuL0NvbGxpZGVyXCIpO1xuYXN5bmMgZnVuY3Rpb24gbG9hZFBhcnRpY2xlc0NvbGxpc2lvbnNJbnRlcmFjdGlvbih0c1BhcnRpY2xlcykge1xuICAgIGF3YWl0IHRzUGFydGljbGVzLmFkZEludGVyYWN0b3IoXCJwYXJ0aWNsZXNDb2xsaXNpb25zXCIsIChjb250YWluZXIpID0+IG5ldyBDb2xsaWRlcl8xLkNvbGxpZGVyKGNvbnRhaW5lcikpO1xufVxuZXhwb3J0cy5sb2FkUGFydGljbGVzQ29sbGlzaW9uc0ludGVyYWN0aW9uID0gbG9hZFBhcnRpY2xlc0NvbGxpc2lvbnNJbnRlcmFjdGlvbjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/Particles/Collisions/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/Particles/Links/LinkInstance.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/Particles/Links/LinkInstance.js ***! + \*******************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.LinkInstance = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass LinkInstance {\n constructor(container) {\n this.container = container;\n }\n particleCreated(particle) {\n const linkParticle = particle;\n linkParticle.links = [];\n }\n particleDestroyed(particle) {\n const linkParticle = particle;\n linkParticle.links = [];\n }\n drawParticle(context, particle) {\n const linkParticle = particle;\n const container = this.container;\n const particles = container.particles;\n const pOptions = particle.options;\n if (linkParticle.links.length > 0) {\n context.save();\n const p1Links = linkParticle.links.filter((l) => {\n const linkFreq = container.particles.getLinkFrequency(linkParticle, l.destination);\n return linkFreq <= pOptions.links.frequency;\n });\n for (const link of p1Links) {\n const p2 = link.destination;\n if (pOptions.links.triangles.enable) {\n const links = p1Links.map((l) => l.destination);\n const vertices = p2.links.filter((t) => {\n const linkFreq = container.particles.getLinkFrequency(p2, t.destination);\n return linkFreq <= p2.options.links.frequency && links.indexOf(t.destination) >= 0;\n });\n if (vertices.length) {\n for (const vertex of vertices) {\n const p3 = vertex.destination;\n const triangleFreq = particles.getTriangleFrequency(linkParticle, p2, p3);\n if (triangleFreq > pOptions.links.triangles.frequency) {\n continue;\n }\n this.drawLinkTriangle(linkParticle, link, vertex);\n }\n }\n }\n if (link.opacity > 0 && container.retina.linksWidth > 0) {\n this.drawLinkLine(linkParticle, link);\n }\n }\n context.restore();\n }\n }\n drawLinkTriangle(p1, link1, link2) {\n var _a;\n const container = this.container;\n const options = container.actualOptions;\n const p2 = link1.destination;\n const p3 = link2.destination;\n const triangleOptions = p1.options.links.triangles;\n const opacityTriangle = (_a = triangleOptions.opacity) !== null && _a !== void 0 ? _a : (link1.opacity + link2.opacity) / 2;\n if (opacityTriangle <= 0) {\n return;\n }\n const pos1 = p1.getPosition();\n const pos2 = p2.getPosition();\n const pos3 = p3.getPosition();\n container.canvas.draw((ctx) => {\n if ((0, Utils_1.getDistance)(pos1, pos2) > container.retina.linksDistance ||\n (0, Utils_1.getDistance)(pos3, pos2) > container.retina.linksDistance ||\n (0, Utils_1.getDistance)(pos3, pos1) > container.retina.linksDistance) {\n return;\n }\n let colorTriangle = (0, Utils_1.colorToRgb)(triangleOptions.color);\n if (!colorTriangle) {\n const linksOptions = p1.options.links;\n const linkColor = linksOptions.id !== undefined\n ? container.particles.linksColors.get(linksOptions.id)\n : container.particles.linksColor;\n colorTriangle = (0, Utils_1.getLinkColor)(p1, p2, linkColor);\n }\n if (!colorTriangle) {\n return;\n }\n (0, Utils_1.drawLinkTriangle)(ctx, pos1, pos2, pos3, options.backgroundMask.enable, options.backgroundMask.composite, colorTriangle, opacityTriangle);\n });\n }\n drawLinkLine(p1, link) {\n const container = this.container;\n const options = container.actualOptions;\n const p2 = link.destination;\n let opacity = link.opacity;\n const pos1 = p1.getPosition();\n const pos2 = p2.getPosition();\n container.canvas.draw((ctx) => {\n var _a, _b;\n let colorLine;\n const twinkle = p1.options.twinkle.lines;\n if (twinkle.enable) {\n const twinkleFreq = twinkle.frequency;\n const twinkleRgb = (0, Utils_1.colorToRgb)(twinkle.color);\n const twinkling = Math.random() < twinkleFreq;\n if (twinkling && twinkleRgb !== undefined) {\n colorLine = twinkleRgb;\n opacity = twinkle.opacity;\n }\n }\n if (!colorLine) {\n const linksOptions = p1.options.links;\n const linkColor = linksOptions.id !== undefined\n ? container.particles.linksColors.get(linksOptions.id)\n : container.particles.linksColor;\n colorLine = (0, Utils_1.getLinkColor)(p1, p2, linkColor);\n }\n if (!colorLine) {\n return;\n }\n const width = (_a = p1.retina.linksWidth) !== null && _a !== void 0 ? _a : container.retina.linksWidth;\n const maxDistance = (_b = p1.retina.linksDistance) !== null && _b !== void 0 ? _b : container.retina.linksDistance;\n (0, Utils_1.drawLinkLine)(ctx, width, pos1, pos2, maxDistance, container.canvas.size, p1.options.links.warp, options.backgroundMask.enable, options.backgroundMask.composite, colorLine, opacity, p1.options.links.shadow);\n });\n }\n}\nexports.LinkInstance = LinkInstance;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL1BhcnRpY2xlcy9MaW5rcy9MaW5rSW5zdGFuY2UuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsb0JBQW9CO0FBQ3BCLGdCQUFnQixtQkFBTyxDQUFDLGlFQUFnQjtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxvQkFBb0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL0ludGVyYWN0aW9ucy9QYXJ0aWNsZXMvTGlua3MvTGlua0luc3RhbmNlLmpzP2JkYjUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkxpbmtJbnN0YW5jZSA9IHZvaWQgMDtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vVXRpbHNcIik7XG5jbGFzcyBMaW5rSW5zdGFuY2Uge1xuICAgIGNvbnN0cnVjdG9yKGNvbnRhaW5lcikge1xuICAgICAgICB0aGlzLmNvbnRhaW5lciA9IGNvbnRhaW5lcjtcbiAgICB9XG4gICAgcGFydGljbGVDcmVhdGVkKHBhcnRpY2xlKSB7XG4gICAgICAgIGNvbnN0IGxpbmtQYXJ0aWNsZSA9IHBhcnRpY2xlO1xuICAgICAgICBsaW5rUGFydGljbGUubGlua3MgPSBbXTtcbiAgICB9XG4gICAgcGFydGljbGVEZXN0cm95ZWQocGFydGljbGUpIHtcbiAgICAgICAgY29uc3QgbGlua1BhcnRpY2xlID0gcGFydGljbGU7XG4gICAgICAgIGxpbmtQYXJ0aWNsZS5saW5rcyA9IFtdO1xuICAgIH1cbiAgICBkcmF3UGFydGljbGUoY29udGV4dCwgcGFydGljbGUpIHtcbiAgICAgICAgY29uc3QgbGlua1BhcnRpY2xlID0gcGFydGljbGU7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyO1xuICAgICAgICBjb25zdCBwYXJ0aWNsZXMgPSBjb250YWluZXIucGFydGljbGVzO1xuICAgICAgICBjb25zdCBwT3B0aW9ucyA9IHBhcnRpY2xlLm9wdGlvbnM7XG4gICAgICAgIGlmIChsaW5rUGFydGljbGUubGlua3MubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29udGV4dC5zYXZlKCk7XG4gICAgICAgICAgICBjb25zdCBwMUxpbmtzID0gbGlua1BhcnRpY2xlLmxpbmtzLmZpbHRlcigobCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpbmtGcmVxID0gY29udGFpbmVyLnBhcnRpY2xlcy5nZXRMaW5rRnJlcXVlbmN5KGxpbmtQYXJ0aWNsZSwgbC5kZXN0aW5hdGlvbik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGxpbmtGcmVxIDw9IHBPcHRpb25zLmxpbmtzLmZyZXF1ZW5jeTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZm9yIChjb25zdCBsaW5rIG9mIHAxTGlua3MpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwMiA9IGxpbmsuZGVzdGluYXRpb247XG4gICAgICAgICAgICAgICAgaWYgKHBPcHRpb25zLmxpbmtzLnRyaWFuZ2xlcy5lbmFibGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGlua3MgPSBwMUxpbmtzLm1hcCgobCkgPT4gbC5kZXN0aW5hdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZlcnRpY2VzID0gcDIubGlua3MuZmlsdGVyKCh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsaW5rRnJlcSA9IGNvbnRhaW5lci5wYXJ0aWNsZXMuZ2V0TGlua0ZyZXF1ZW5jeShwMiwgdC5kZXN0aW5hdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbGlua0ZyZXEgPD0gcDIub3B0aW9ucy5saW5rcy5mcmVxdWVuY3kgJiYgbGlua3MuaW5kZXhPZih0LmRlc3RpbmF0aW9uKSA+PSAwO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZlcnRpY2VzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCB2ZXJ0ZXggb2YgdmVydGljZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwMyA9IHZlcnRleC5kZXN0aW5hdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0cmlhbmdsZUZyZXEgPSBwYXJ0aWNsZXMuZ2V0VHJpYW5nbGVGcmVxdWVuY3kobGlua1BhcnRpY2xlLCBwMiwgcDMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0cmlhbmdsZUZyZXEgPiBwT3B0aW9ucy5saW5rcy50cmlhbmdsZXMuZnJlcXVlbmN5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRyYXdMaW5rVHJpYW5nbGUobGlua1BhcnRpY2xlLCBsaW5rLCB2ZXJ0ZXgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChsaW5rLm9wYWNpdHkgPiAwICYmIGNvbnRhaW5lci5yZXRpbmEubGlua3NXaWR0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kcmF3TGlua0xpbmUobGlua1BhcnRpY2xlLCBsaW5rKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb250ZXh0LnJlc3RvcmUoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBkcmF3TGlua1RyaWFuZ2xlKHAxLCBsaW5rMSwgbGluazIpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IGNvbnRhaW5lci5hY3R1YWxPcHRpb25zO1xuICAgICAgICBjb25zdCBwMiA9IGxpbmsxLmRlc3RpbmF0aW9uO1xuICAgICAgICBjb25zdCBwMyA9IGxpbmsyLmRlc3RpbmF0aW9uO1xuICAgICAgICBjb25zdCB0cmlhbmdsZU9wdGlvbnMgPSBwMS5vcHRpb25zLmxpbmtzLnRyaWFuZ2xlcztcbiAgICAgICAgY29uc3Qgb3BhY2l0eVRyaWFuZ2xlID0gKF9hID0gdHJpYW5nbGVPcHRpb25zLm9wYWNpdHkpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IChsaW5rMS5vcGFjaXR5ICsgbGluazIub3BhY2l0eSkgLyAyO1xuICAgICAgICBpZiAob3BhY2l0eVRyaWFuZ2xlIDw9IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwb3MxID0gcDEuZ2V0UG9zaXRpb24oKTtcbiAgICAgICAgY29uc3QgcG9zMiA9IHAyLmdldFBvc2l0aW9uKCk7XG4gICAgICAgIGNvbnN0IHBvczMgPSBwMy5nZXRQb3NpdGlvbigpO1xuICAgICAgICBjb250YWluZXIuY2FudmFzLmRyYXcoKGN0eCkgPT4ge1xuICAgICAgICAgICAgaWYgKCgwLCBVdGlsc18xLmdldERpc3RhbmNlKShwb3MxLCBwb3MyKSA+IGNvbnRhaW5lci5yZXRpbmEubGlua3NEaXN0YW5jZSB8fFxuICAgICAgICAgICAgICAgICgwLCBVdGlsc18xLmdldERpc3RhbmNlKShwb3MzLCBwb3MyKSA+IGNvbnRhaW5lci5yZXRpbmEubGlua3NEaXN0YW5jZSB8fFxuICAgICAgICAgICAgICAgICgwLCBVdGlsc18xLmdldERpc3RhbmNlKShwb3MzLCBwb3MxKSA+IGNvbnRhaW5lci5yZXRpbmEubGlua3NEaXN0YW5jZSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBjb2xvclRyaWFuZ2xlID0gKDAsIFV0aWxzXzEuY29sb3JUb1JnYikodHJpYW5nbGVPcHRpb25zLmNvbG9yKTtcbiAgICAgICAgICAgIGlmICghY29sb3JUcmlhbmdsZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpbmtzT3B0aW9ucyA9IHAxLm9wdGlvbnMubGlua3M7XG4gICAgICAgICAgICAgICAgY29uc3QgbGlua0NvbG9yID0gbGlua3NPcHRpb25zLmlkICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgPyBjb250YWluZXIucGFydGljbGVzLmxpbmtzQ29sb3JzLmdldChsaW5rc09wdGlvbnMuaWQpXG4gICAgICAgICAgICAgICAgICAgIDogY29udGFpbmVyLnBhcnRpY2xlcy5saW5rc0NvbG9yO1xuICAgICAgICAgICAgICAgIGNvbG9yVHJpYW5nbGUgPSAoMCwgVXRpbHNfMS5nZXRMaW5rQ29sb3IpKHAxLCBwMiwgbGlua0NvbG9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghY29sb3JUcmlhbmdsZSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICgwLCBVdGlsc18xLmRyYXdMaW5rVHJpYW5nbGUpKGN0eCwgcG9zMSwgcG9zMiwgcG9zMywgb3B0aW9ucy5iYWNrZ3JvdW5kTWFzay5lbmFibGUsIG9wdGlvbnMuYmFja2dyb3VuZE1hc2suY29tcG9zaXRlLCBjb2xvclRyaWFuZ2xlLCBvcGFjaXR5VHJpYW5nbGUpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgZHJhd0xpbmtMaW5lKHAxLCBsaW5rKSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyO1xuICAgICAgICBjb25zdCBvcHRpb25zID0gY29udGFpbmVyLmFjdHVhbE9wdGlvbnM7XG4gICAgICAgIGNvbnN0IHAyID0gbGluay5kZXN0aW5hdGlvbjtcbiAgICAgICAgbGV0IG9wYWNpdHkgPSBsaW5rLm9wYWNpdHk7XG4gICAgICAgIGNvbnN0IHBvczEgPSBwMS5nZXRQb3NpdGlvbigpO1xuICAgICAgICBjb25zdCBwb3MyID0gcDIuZ2V0UG9zaXRpb24oKTtcbiAgICAgICAgY29udGFpbmVyLmNhbnZhcy5kcmF3KChjdHgpID0+IHtcbiAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICBsZXQgY29sb3JMaW5lO1xuICAgICAgICAgICAgY29uc3QgdHdpbmtsZSA9IHAxLm9wdGlvbnMudHdpbmtsZS5saW5lcztcbiAgICAgICAgICAgIGlmICh0d2lua2xlLmVuYWJsZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHR3aW5rbGVGcmVxID0gdHdpbmtsZS5mcmVxdWVuY3k7XG4gICAgICAgICAgICAgICAgY29uc3QgdHdpbmtsZVJnYiA9ICgwLCBVdGlsc18xLmNvbG9yVG9SZ2IpKHR3aW5rbGUuY29sb3IpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHR3aW5rbGluZyA9IE1hdGgucmFuZG9tKCkgPCB0d2lua2xlRnJlcTtcbiAgICAgICAgICAgICAgICBpZiAodHdpbmtsaW5nICYmIHR3aW5rbGVSZ2IgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICBjb2xvckxpbmUgPSB0d2lua2xlUmdiO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5ID0gdHdpbmtsZS5vcGFjaXR5O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghY29sb3JMaW5lKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGlua3NPcHRpb25zID0gcDEub3B0aW9ucy5saW5rcztcbiAgICAgICAgICAgICAgICBjb25zdCBsaW5rQ29sb3IgPSBsaW5rc09wdGlvbnMuaWQgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICA/IGNvbnRhaW5lci5wYXJ0aWNsZXMubGlua3NDb2xvcnMuZ2V0KGxpbmtzT3B0aW9ucy5pZClcbiAgICAgICAgICAgICAgICAgICAgOiBjb250YWluZXIucGFydGljbGVzLmxpbmtzQ29sb3I7XG4gICAgICAgICAgICAgICAgY29sb3JMaW5lID0gKDAsIFV0aWxzXzEuZ2V0TGlua0NvbG9yKShwMSwgcDIsIGxpbmtDb2xvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWNvbG9yTGluZSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gKF9hID0gcDEucmV0aW5hLmxpbmtzV2lkdGgpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGNvbnRhaW5lci5yZXRpbmEubGlua3NXaWR0aDtcbiAgICAgICAgICAgIGNvbnN0IG1heERpc3RhbmNlID0gKF9iID0gcDEucmV0aW5hLmxpbmtzRGlzdGFuY2UpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IGNvbnRhaW5lci5yZXRpbmEubGlua3NEaXN0YW5jZTtcbiAgICAgICAgICAgICgwLCBVdGlsc18xLmRyYXdMaW5rTGluZSkoY3R4LCB3aWR0aCwgcG9zMSwgcG9zMiwgbWF4RGlzdGFuY2UsIGNvbnRhaW5lci5jYW52YXMuc2l6ZSwgcDEub3B0aW9ucy5saW5rcy53YXJwLCBvcHRpb25zLmJhY2tncm91bmRNYXNrLmVuYWJsZSwgb3B0aW9ucy5iYWNrZ3JvdW5kTWFzay5jb21wb3NpdGUsIGNvbG9yTGluZSwgb3BhY2l0eSwgcDEub3B0aW9ucy5saW5rcy5zaGFkb3cpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5leHBvcnRzLkxpbmtJbnN0YW5jZSA9IExpbmtJbnN0YW5jZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/Particles/Links/LinkInstance.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/Particles/Links/Linker.js": +/*!*************************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/Particles/Links/Linker.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Linker = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst ParticlesInteractorBase_1 = __webpack_require__(/*! ../../../Core/ParticlesInteractorBase */ \"./node_modules/tsparticles/Core/ParticlesInteractorBase.js\");\nfunction getLinkDistance(pos1, pos2, optDistance, canvasSize, warp) {\n let distance = (0, Utils_1.getDistance)(pos1, pos2);\n if (!warp || distance <= optDistance) {\n return distance;\n }\n const pos2NE = {\n x: pos2.x - canvasSize.width,\n y: pos2.y,\n };\n distance = (0, Utils_1.getDistance)(pos1, pos2NE);\n if (distance <= optDistance) {\n return distance;\n }\n const pos2SE = {\n x: pos2.x - canvasSize.width,\n y: pos2.y - canvasSize.height,\n };\n distance = (0, Utils_1.getDistance)(pos1, pos2SE);\n if (distance <= optDistance) {\n return distance;\n }\n const pos2SW = {\n x: pos2.x,\n y: pos2.y - canvasSize.height,\n };\n distance = (0, Utils_1.getDistance)(pos1, pos2SW);\n return distance;\n}\nclass Linker extends ParticlesInteractorBase_1.ParticlesInteractorBase {\n constructor(container) {\n super(container);\n }\n isEnabled(particle) {\n return particle.options.links.enable;\n }\n reset() {\n }\n interact(p1) {\n var _a;\n p1.links = [];\n const pos1 = p1.getPosition();\n const container = this.container;\n const canvasSize = container.canvas.size;\n if (pos1.x < 0 || pos1.y < 0 || pos1.x > canvasSize.width || pos1.y > canvasSize.height) {\n return;\n }\n const linkOpt1 = p1.options.links;\n const optOpacity = linkOpt1.opacity;\n const optDistance = (_a = p1.retina.linksDistance) !== null && _a !== void 0 ? _a : container.retina.linksDistance;\n const warp = linkOpt1.warp;\n const range = warp\n ? new Utils_1.CircleWarp(pos1.x, pos1.y, optDistance, canvasSize)\n : new Utils_1.Circle(pos1.x, pos1.y, optDistance);\n const query = container.particles.quadTree.query(range);\n for (const p2 of query) {\n const linkOpt2 = p2.options.links;\n if (p1 === p2 ||\n !linkOpt2.enable ||\n linkOpt1.id !== linkOpt2.id ||\n p2.spawning ||\n p2.destroyed ||\n p1.links.map((t) => t.destination).indexOf(p2) !== -1 ||\n p2.links.map((t) => t.destination).indexOf(p1) !== -1) {\n continue;\n }\n const pos2 = p2.getPosition();\n if (pos2.x < 0 || pos2.y < 0 || pos2.x > canvasSize.width || pos2.y > canvasSize.height) {\n continue;\n }\n const distance = getLinkDistance(pos1, pos2, optDistance, canvasSize, warp && linkOpt2.warp);\n if (distance > optDistance) {\n return;\n }\n const opacityLine = (1 - distance / optDistance) * optOpacity;\n this.setColor(p1);\n p1.links.push({\n destination: p2,\n opacity: opacityLine,\n });\n }\n }\n setColor(p1) {\n const container = this.container;\n const linksOptions = p1.options.links;\n let linkColor = linksOptions.id === undefined\n ? container.particles.linksColor\n : container.particles.linksColors.get(linksOptions.id);\n if (!linkColor) {\n const optColor = linksOptions.color;\n linkColor = (0, Utils_1.getLinkRandomColor)(optColor, linksOptions.blink, linksOptions.consent);\n if (linksOptions.id === undefined) {\n container.particles.linksColor = linkColor;\n }\n else {\n container.particles.linksColors.set(linksOptions.id, linkColor);\n }\n }\n }\n}\nexports.Linker = Linker;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL1BhcnRpY2xlcy9MaW5rcy9MaW5rZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsY0FBYztBQUNkLGdCQUFnQixtQkFBTyxDQUFDLGlFQUFnQjtBQUN4QyxrQ0FBa0MsbUJBQU8sQ0FBQyx5R0FBdUM7QUFDakY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9JbnRlcmFjdGlvbnMvUGFydGljbGVzL0xpbmtzL0xpbmtlci5qcz9jOTRmIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5MaW5rZXIgPSB2b2lkIDA7XG5jb25zdCBVdGlsc18xID0gcmVxdWlyZShcIi4uLy4uLy4uL1V0aWxzXCIpO1xuY29uc3QgUGFydGljbGVzSW50ZXJhY3RvckJhc2VfMSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9Db3JlL1BhcnRpY2xlc0ludGVyYWN0b3JCYXNlXCIpO1xuZnVuY3Rpb24gZ2V0TGlua0Rpc3RhbmNlKHBvczEsIHBvczIsIG9wdERpc3RhbmNlLCBjYW52YXNTaXplLCB3YXJwKSB7XG4gICAgbGV0IGRpc3RhbmNlID0gKDAsIFV0aWxzXzEuZ2V0RGlzdGFuY2UpKHBvczEsIHBvczIpO1xuICAgIGlmICghd2FycCB8fCBkaXN0YW5jZSA8PSBvcHREaXN0YW5jZSkge1xuICAgICAgICByZXR1cm4gZGlzdGFuY2U7XG4gICAgfVxuICAgIGNvbnN0IHBvczJORSA9IHtcbiAgICAgICAgeDogcG9zMi54IC0gY2FudmFzU2l6ZS53aWR0aCxcbiAgICAgICAgeTogcG9zMi55LFxuICAgIH07XG4gICAgZGlzdGFuY2UgPSAoMCwgVXRpbHNfMS5nZXREaXN0YW5jZSkocG9zMSwgcG9zMk5FKTtcbiAgICBpZiAoZGlzdGFuY2UgPD0gb3B0RGlzdGFuY2UpIHtcbiAgICAgICAgcmV0dXJuIGRpc3RhbmNlO1xuICAgIH1cbiAgICBjb25zdCBwb3MyU0UgPSB7XG4gICAgICAgIHg6IHBvczIueCAtIGNhbnZhc1NpemUud2lkdGgsXG4gICAgICAgIHk6IHBvczIueSAtIGNhbnZhc1NpemUuaGVpZ2h0LFxuICAgIH07XG4gICAgZGlzdGFuY2UgPSAoMCwgVXRpbHNfMS5nZXREaXN0YW5jZSkocG9zMSwgcG9zMlNFKTtcbiAgICBpZiAoZGlzdGFuY2UgPD0gb3B0RGlzdGFuY2UpIHtcbiAgICAgICAgcmV0dXJuIGRpc3RhbmNlO1xuICAgIH1cbiAgICBjb25zdCBwb3MyU1cgPSB7XG4gICAgICAgIHg6IHBvczIueCxcbiAgICAgICAgeTogcG9zMi55IC0gY2FudmFzU2l6ZS5oZWlnaHQsXG4gICAgfTtcbiAgICBkaXN0YW5jZSA9ICgwLCBVdGlsc18xLmdldERpc3RhbmNlKShwb3MxLCBwb3MyU1cpO1xuICAgIHJldHVybiBkaXN0YW5jZTtcbn1cbmNsYXNzIExpbmtlciBleHRlbmRzIFBhcnRpY2xlc0ludGVyYWN0b3JCYXNlXzEuUGFydGljbGVzSW50ZXJhY3RvckJhc2Uge1xuICAgIGNvbnN0cnVjdG9yKGNvbnRhaW5lcikge1xuICAgICAgICBzdXBlcihjb250YWluZXIpO1xuICAgIH1cbiAgICBpc0VuYWJsZWQocGFydGljbGUpIHtcbiAgICAgICAgcmV0dXJuIHBhcnRpY2xlLm9wdGlvbnMubGlua3MuZW5hYmxlO1xuICAgIH1cbiAgICByZXNldCgpIHtcbiAgICB9XG4gICAgaW50ZXJhY3QocDEpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBwMS5saW5rcyA9IFtdO1xuICAgICAgICBjb25zdCBwb3MxID0gcDEuZ2V0UG9zaXRpb24oKTtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXI7XG4gICAgICAgIGNvbnN0IGNhbnZhc1NpemUgPSBjb250YWluZXIuY2FudmFzLnNpemU7XG4gICAgICAgIGlmIChwb3MxLnggPCAwIHx8IHBvczEueSA8IDAgfHwgcG9zMS54ID4gY2FudmFzU2l6ZS53aWR0aCB8fCBwb3MxLnkgPiBjYW52YXNTaXplLmhlaWdodCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGxpbmtPcHQxID0gcDEub3B0aW9ucy5saW5rcztcbiAgICAgICAgY29uc3Qgb3B0T3BhY2l0eSA9IGxpbmtPcHQxLm9wYWNpdHk7XG4gICAgICAgIGNvbnN0IG9wdERpc3RhbmNlID0gKF9hID0gcDEucmV0aW5hLmxpbmtzRGlzdGFuY2UpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGNvbnRhaW5lci5yZXRpbmEubGlua3NEaXN0YW5jZTtcbiAgICAgICAgY29uc3Qgd2FycCA9IGxpbmtPcHQxLndhcnA7XG4gICAgICAgIGNvbnN0IHJhbmdlID0gd2FycFxuICAgICAgICAgICAgPyBuZXcgVXRpbHNfMS5DaXJjbGVXYXJwKHBvczEueCwgcG9zMS55LCBvcHREaXN0YW5jZSwgY2FudmFzU2l6ZSlcbiAgICAgICAgICAgIDogbmV3IFV0aWxzXzEuQ2lyY2xlKHBvczEueCwgcG9zMS55LCBvcHREaXN0YW5jZSk7XG4gICAgICAgIGNvbnN0IHF1ZXJ5ID0gY29udGFpbmVyLnBhcnRpY2xlcy5xdWFkVHJlZS5xdWVyeShyYW5nZSk7XG4gICAgICAgIGZvciAoY29uc3QgcDIgb2YgcXVlcnkpIHtcbiAgICAgICAgICAgIGNvbnN0IGxpbmtPcHQyID0gcDIub3B0aW9ucy5saW5rcztcbiAgICAgICAgICAgIGlmIChwMSA9PT0gcDIgfHxcbiAgICAgICAgICAgICAgICAhbGlua09wdDIuZW5hYmxlIHx8XG4gICAgICAgICAgICAgICAgbGlua09wdDEuaWQgIT09IGxpbmtPcHQyLmlkIHx8XG4gICAgICAgICAgICAgICAgcDIuc3Bhd25pbmcgfHxcbiAgICAgICAgICAgICAgICBwMi5kZXN0cm95ZWQgfHxcbiAgICAgICAgICAgICAgICBwMS5saW5rcy5tYXAoKHQpID0+IHQuZGVzdGluYXRpb24pLmluZGV4T2YocDIpICE9PSAtMSB8fFxuICAgICAgICAgICAgICAgIHAyLmxpbmtzLm1hcCgodCkgPT4gdC5kZXN0aW5hdGlvbikuaW5kZXhPZihwMSkgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBwb3MyID0gcDIuZ2V0UG9zaXRpb24oKTtcbiAgICAgICAgICAgIGlmIChwb3MyLnggPCAwIHx8IHBvczIueSA8IDAgfHwgcG9zMi54ID4gY2FudmFzU2l6ZS53aWR0aCB8fCBwb3MyLnkgPiBjYW52YXNTaXplLmhlaWdodCkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgZGlzdGFuY2UgPSBnZXRMaW5rRGlzdGFuY2UocG9zMSwgcG9zMiwgb3B0RGlzdGFuY2UsIGNhbnZhc1NpemUsIHdhcnAgJiYgbGlua09wdDIud2FycCk7XG4gICAgICAgICAgICBpZiAoZGlzdGFuY2UgPiBvcHREaXN0YW5jZSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IG9wYWNpdHlMaW5lID0gKDEgLSBkaXN0YW5jZSAvIG9wdERpc3RhbmNlKSAqIG9wdE9wYWNpdHk7XG4gICAgICAgICAgICB0aGlzLnNldENvbG9yKHAxKTtcbiAgICAgICAgICAgIHAxLmxpbmtzLnB1c2goe1xuICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uOiBwMixcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiBvcGFjaXR5TGluZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHNldENvbG9yKHAxKSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyO1xuICAgICAgICBjb25zdCBsaW5rc09wdGlvbnMgPSBwMS5vcHRpb25zLmxpbmtzO1xuICAgICAgICBsZXQgbGlua0NvbG9yID0gbGlua3NPcHRpb25zLmlkID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgID8gY29udGFpbmVyLnBhcnRpY2xlcy5saW5rc0NvbG9yXG4gICAgICAgICAgICA6IGNvbnRhaW5lci5wYXJ0aWNsZXMubGlua3NDb2xvcnMuZ2V0KGxpbmtzT3B0aW9ucy5pZCk7XG4gICAgICAgIGlmICghbGlua0NvbG9yKSB7XG4gICAgICAgICAgICBjb25zdCBvcHRDb2xvciA9IGxpbmtzT3B0aW9ucy5jb2xvcjtcbiAgICAgICAgICAgIGxpbmtDb2xvciA9ICgwLCBVdGlsc18xLmdldExpbmtSYW5kb21Db2xvcikob3B0Q29sb3IsIGxpbmtzT3B0aW9ucy5ibGluaywgbGlua3NPcHRpb25zLmNvbnNlbnQpO1xuICAgICAgICAgICAgaWYgKGxpbmtzT3B0aW9ucy5pZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLnBhcnRpY2xlcy5saW5rc0NvbG9yID0gbGlua0NvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLnBhcnRpY2xlcy5saW5rc0NvbG9ycy5zZXQobGlua3NPcHRpb25zLmlkLCBsaW5rQ29sb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5MaW5rZXIgPSBMaW5rZXI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/Particles/Links/Linker.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/Particles/Links/index.js": +/*!************************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/Particles/Links/index.js ***! + \************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadParticlesLinksInteraction = exports.loadInteraction = void 0;\nconst Linker_1 = __webpack_require__(/*! ./Linker */ \"./node_modules/tsparticles/Interactions/Particles/Links/Linker.js\");\nconst plugin_1 = __webpack_require__(/*! ./plugin */ \"./node_modules/tsparticles/Interactions/Particles/Links/plugin.js\");\nasync function loadInteraction(tsParticles) {\n await tsParticles.addInteractor(\"particlesLinks\", (container) => new Linker_1.Linker(container));\n}\nexports.loadInteraction = loadInteraction;\nasync function loadParticlesLinksInteraction(tsParticles) {\n await loadInteraction(tsParticles);\n await (0, plugin_1.loadPlugin)(tsParticles);\n}\nexports.loadParticlesLinksInteraction = loadParticlesLinksInteraction;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL1BhcnRpY2xlcy9MaW5rcy9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxxQ0FBcUMsR0FBRyx1QkFBdUI7QUFDL0QsaUJBQWlCLG1CQUFPLENBQUMsbUZBQVU7QUFDbkMsaUJBQWlCLG1CQUFPLENBQUMsbUZBQVU7QUFDbkM7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUNBQXFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9JbnRlcmFjdGlvbnMvUGFydGljbGVzL0xpbmtzL2luZGV4LmpzPzk0MDciXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmxvYWRQYXJ0aWNsZXNMaW5rc0ludGVyYWN0aW9uID0gZXhwb3J0cy5sb2FkSW50ZXJhY3Rpb24gPSB2b2lkIDA7XG5jb25zdCBMaW5rZXJfMSA9IHJlcXVpcmUoXCIuL0xpbmtlclwiKTtcbmNvbnN0IHBsdWdpbl8xID0gcmVxdWlyZShcIi4vcGx1Z2luXCIpO1xuYXN5bmMgZnVuY3Rpb24gbG9hZEludGVyYWN0aW9uKHRzUGFydGljbGVzKSB7XG4gICAgYXdhaXQgdHNQYXJ0aWNsZXMuYWRkSW50ZXJhY3RvcihcInBhcnRpY2xlc0xpbmtzXCIsIChjb250YWluZXIpID0+IG5ldyBMaW5rZXJfMS5MaW5rZXIoY29udGFpbmVyKSk7XG59XG5leHBvcnRzLmxvYWRJbnRlcmFjdGlvbiA9IGxvYWRJbnRlcmFjdGlvbjtcbmFzeW5jIGZ1bmN0aW9uIGxvYWRQYXJ0aWNsZXNMaW5rc0ludGVyYWN0aW9uKHRzUGFydGljbGVzKSB7XG4gICAgYXdhaXQgbG9hZEludGVyYWN0aW9uKHRzUGFydGljbGVzKTtcbiAgICBhd2FpdCAoMCwgcGx1Z2luXzEubG9hZFBsdWdpbikodHNQYXJ0aWNsZXMpO1xufVxuZXhwb3J0cy5sb2FkUGFydGljbGVzTGlua3NJbnRlcmFjdGlvbiA9IGxvYWRQYXJ0aWNsZXNMaW5rc0ludGVyYWN0aW9uO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/Particles/Links/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Interactions/Particles/Links/plugin.js": +/*!*************************************************************************!*\ + !*** ./node_modules/tsparticles/Interactions/Particles/Links/plugin.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadPlugin = void 0;\nconst LinkInstance_1 = __webpack_require__(/*! ./LinkInstance */ \"./node_modules/tsparticles/Interactions/Particles/Links/LinkInstance.js\");\nclass Plugin {\n constructor() {\n this.id = \"links\";\n }\n getPlugin(container) {\n return new LinkInstance_1.LinkInstance(container);\n }\n needsPlugin() {\n return true;\n }\n loadOptions() {\n }\n}\nasync function loadPlugin(tsParticles) {\n const plugin = new Plugin();\n await tsParticles.addPlugin(plugin);\n}\nexports.loadPlugin = loadPlugin;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvSW50ZXJhY3Rpb25zL1BhcnRpY2xlcy9MaW5rcy9wbHVnaW4uanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsa0JBQWtCO0FBQ2xCLHVCQUF1QixtQkFBTyxDQUFDLCtGQUFnQjtBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9JbnRlcmFjdGlvbnMvUGFydGljbGVzL0xpbmtzL3BsdWdpbi5qcz9iYTNkIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5sb2FkUGx1Z2luID0gdm9pZCAwO1xuY29uc3QgTGlua0luc3RhbmNlXzEgPSByZXF1aXJlKFwiLi9MaW5rSW5zdGFuY2VcIik7XG5jbGFzcyBQbHVnaW4ge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmlkID0gXCJsaW5rc1wiO1xuICAgIH1cbiAgICBnZXRQbHVnaW4oY29udGFpbmVyKSB7XG4gICAgICAgIHJldHVybiBuZXcgTGlua0luc3RhbmNlXzEuTGlua0luc3RhbmNlKGNvbnRhaW5lcik7XG4gICAgfVxuICAgIG5lZWRzUGx1Z2luKCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgbG9hZE9wdGlvbnMoKSB7XG4gICAgfVxufVxuYXN5bmMgZnVuY3Rpb24gbG9hZFBsdWdpbih0c1BhcnRpY2xlcykge1xuICAgIGNvbnN0IHBsdWdpbiA9IG5ldyBQbHVnaW4oKTtcbiAgICBhd2FpdCB0c1BhcnRpY2xlcy5hZGRQbHVnaW4ocGx1Z2luKTtcbn1cbmV4cG9ydHMubG9hZFBsdWdpbiA9IGxvYWRQbHVnaW47XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Interactions/Particles/Links/plugin.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/AnimatableColor.js": +/*!*********************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/AnimatableColor.js ***! + \*********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.AnimatableColor = void 0;\nconst OptionsColor_1 = __webpack_require__(/*! ./OptionsColor */ \"./node_modules/tsparticles/Options/Classes/OptionsColor.js\");\nconst HslAnimation_1 = __webpack_require__(/*! ./HslAnimation */ \"./node_modules/tsparticles/Options/Classes/HslAnimation.js\");\nclass AnimatableColor extends OptionsColor_1.OptionsColor {\n constructor() {\n super();\n this.animation = new HslAnimation_1.HslAnimation();\n }\n static create(source, data) {\n const color = new AnimatableColor();\n color.load(source);\n if (data !== undefined) {\n if (typeof data === \"string\" || data instanceof Array) {\n color.load({ value: data });\n }\n else {\n color.load(data);\n }\n }\n return color;\n }\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n const colorAnimation = data.animation;\n if (colorAnimation !== undefined) {\n if (colorAnimation.enable !== undefined) {\n this.animation.h.load(colorAnimation);\n }\n else {\n this.animation.load(data.animation);\n }\n }\n }\n}\nexports.AnimatableColor = AnimatableColor;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0FuaW1hdGFibGVDb2xvci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCx1QkFBdUI7QUFDdkIsdUJBQXVCLG1CQUFPLENBQUMsa0ZBQWdCO0FBQy9DLHVCQUF1QixtQkFBTyxDQUFDLGtGQUFnQjtBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QixhQUFhO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9BbmltYXRhYmxlQ29sb3IuanM/NzM2MSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuQW5pbWF0YWJsZUNvbG9yID0gdm9pZCAwO1xuY29uc3QgT3B0aW9uc0NvbG9yXzEgPSByZXF1aXJlKFwiLi9PcHRpb25zQ29sb3JcIik7XG5jb25zdCBIc2xBbmltYXRpb25fMSA9IHJlcXVpcmUoXCIuL0hzbEFuaW1hdGlvblwiKTtcbmNsYXNzIEFuaW1hdGFibGVDb2xvciBleHRlbmRzIE9wdGlvbnNDb2xvcl8xLk9wdGlvbnNDb2xvciB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuYW5pbWF0aW9uID0gbmV3IEhzbEFuaW1hdGlvbl8xLkhzbEFuaW1hdGlvbigpO1xuICAgIH1cbiAgICBzdGF0aWMgY3JlYXRlKHNvdXJjZSwgZGF0YSkge1xuICAgICAgICBjb25zdCBjb2xvciA9IG5ldyBBbmltYXRhYmxlQ29sb3IoKTtcbiAgICAgICAgY29sb3IubG9hZChzb3VyY2UpO1xuICAgICAgICBpZiAoZGF0YSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGRhdGEgPT09IFwic3RyaW5nXCIgfHwgZGF0YSBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICAgICAgY29sb3IubG9hZCh7IHZhbHVlOiBkYXRhIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29sb3IubG9hZChkYXRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY29sb3I7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBzdXBlci5sb2FkKGRhdGEpO1xuICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb2xvckFuaW1hdGlvbiA9IGRhdGEuYW5pbWF0aW9uO1xuICAgICAgICBpZiAoY29sb3JBbmltYXRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKGNvbG9yQW5pbWF0aW9uLmVuYWJsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hbmltYXRpb24uaC5sb2FkKGNvbG9yQW5pbWF0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uLmxvYWQoZGF0YS5hbmltYXRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5BbmltYXRhYmxlQ29sb3IgPSBBbmltYXRhYmxlQ29sb3I7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/AnimatableColor.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/AnimatableGradient.js": +/*!************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/AnimatableGradient.js ***! + \************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.GradientColorOpacityAnimation = exports.GradientAngleAnimation = exports.AnimatableGradientColor = exports.GradientColorOpacity = exports.GradientAngle = exports.AnimatableGradient = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst AnimatableColor_1 = __webpack_require__(/*! ./AnimatableColor */ \"./node_modules/tsparticles/Options/Classes/AnimatableColor.js\");\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass AnimatableGradient {\n constructor() {\n this.angle = new GradientAngle();\n this.colors = [];\n this.type = Enums_1.GradientType.random;\n }\n load(data) {\n if (!data) {\n return;\n }\n this.angle.load(data.angle);\n if (data.colors !== undefined) {\n this.colors = data.colors.map((s) => {\n const tmp = new AnimatableGradientColor();\n tmp.load(s);\n return tmp;\n });\n }\n if (data.type !== undefined) {\n this.type = data.type;\n }\n }\n}\nexports.AnimatableGradient = AnimatableGradient;\nclass GradientAngle {\n constructor() {\n this.value = 0;\n this.animation = new GradientAngleAnimation();\n this.direction = Enums_1.RotateDirection.clockwise;\n }\n load(data) {\n if (!data) {\n return;\n }\n this.animation.load(data.animation);\n if (data.value !== undefined) {\n this.value = data.value;\n }\n if (data.direction !== undefined) {\n this.direction = data.direction;\n }\n }\n}\nexports.GradientAngle = GradientAngle;\nclass GradientColorOpacity {\n constructor() {\n this.value = 0;\n this.animation = new GradientColorOpacityAnimation();\n }\n load(data) {\n if (!data) {\n return;\n }\n this.animation.load(data.animation);\n if (data.value !== undefined) {\n this.value = (0, Utils_1.setRangeValue)(data.value);\n }\n }\n}\nexports.GradientColorOpacity = GradientColorOpacity;\nclass AnimatableGradientColor {\n constructor() {\n this.stop = 0;\n this.value = new AnimatableColor_1.AnimatableColor();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.stop !== undefined) {\n this.stop = data.stop;\n }\n this.value = AnimatableColor_1.AnimatableColor.create(this.value, data.value);\n if (data.opacity !== undefined) {\n this.opacity = new GradientColorOpacity();\n if (typeof data.opacity === \"number\") {\n this.opacity.value = data.opacity;\n }\n else {\n this.opacity.load(data.opacity);\n }\n }\n }\n}\nexports.AnimatableGradientColor = AnimatableGradientColor;\nclass GradientAngleAnimation {\n constructor() {\n this.count = 0;\n this.enable = false;\n this.speed = 0;\n this.sync = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.count !== undefined) {\n this.count = data.count;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\nexports.GradientAngleAnimation = GradientAngleAnimation;\nclass GradientColorOpacityAnimation {\n constructor() {\n this.count = 0;\n this.enable = false;\n this.speed = 0;\n this.sync = false;\n this.startValue = Enums_1.StartValueType.random;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.count !== undefined) {\n this.count = data.count;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n if (data.startValue !== undefined) {\n this.startValue = data.startValue;\n }\n }\n}\nexports.GradientColorOpacityAnimation = GradientColorOpacityAnimation;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0FuaW1hdGFibGVHcmFkaWVudC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxxQ0FBcUMsR0FBRyw4QkFBOEIsR0FBRywrQkFBK0IsR0FBRyw0QkFBNEIsR0FBRyxxQkFBcUIsR0FBRywwQkFBMEI7QUFDNUwsZ0JBQWdCLG1CQUFPLENBQUMsOERBQWE7QUFDckMsMEJBQTBCLG1CQUFPLENBQUMsd0ZBQW1CO0FBQ3JELGdCQUFnQixtQkFBTyxDQUFDLDhEQUFhO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQjtBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEI7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQStCO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQ0FBcUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9BbmltYXRhYmxlR3JhZGllbnQuanM/N2M0NiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuR3JhZGllbnRDb2xvck9wYWNpdHlBbmltYXRpb24gPSBleHBvcnRzLkdyYWRpZW50QW5nbGVBbmltYXRpb24gPSBleHBvcnRzLkFuaW1hdGFibGVHcmFkaWVudENvbG9yID0gZXhwb3J0cy5HcmFkaWVudENvbG9yT3BhY2l0eSA9IGV4cG9ydHMuR3JhZGllbnRBbmdsZSA9IGV4cG9ydHMuQW5pbWF0YWJsZUdyYWRpZW50ID0gdm9pZCAwO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuLi8uLi9FbnVtc1wiKTtcbmNvbnN0IEFuaW1hdGFibGVDb2xvcl8xID0gcmVxdWlyZShcIi4vQW5pbWF0YWJsZUNvbG9yXCIpO1xuY29uc3QgVXRpbHNfMSA9IHJlcXVpcmUoXCIuLi8uLi9VdGlsc1wiKTtcbmNsYXNzIEFuaW1hdGFibGVHcmFkaWVudCB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuYW5nbGUgPSBuZXcgR3JhZGllbnRBbmdsZSgpO1xuICAgICAgICB0aGlzLmNvbG9ycyA9IFtdO1xuICAgICAgICB0aGlzLnR5cGUgPSBFbnVtc18xLkdyYWRpZW50VHlwZS5yYW5kb207XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFuZ2xlLmxvYWQoZGF0YS5hbmdsZSk7XG4gICAgICAgIGlmIChkYXRhLmNvbG9ycyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbG9ycyA9IGRhdGEuY29sb3JzLm1hcCgocykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRtcCA9IG5ldyBBbmltYXRhYmxlR3JhZGllbnRDb2xvcigpO1xuICAgICAgICAgICAgICAgIHRtcC5sb2FkKHMpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0bXA7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS50eXBlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IGRhdGEudHlwZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuQW5pbWF0YWJsZUdyYWRpZW50ID0gQW5pbWF0YWJsZUdyYWRpZW50O1xuY2xhc3MgR3JhZGllbnRBbmdsZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSAwO1xuICAgICAgICB0aGlzLmFuaW1hdGlvbiA9IG5ldyBHcmFkaWVudEFuZ2xlQW5pbWF0aW9uKCk7XG4gICAgICAgIHRoaXMuZGlyZWN0aW9uID0gRW51bXNfMS5Sb3RhdGVEaXJlY3Rpb24uY2xvY2t3aXNlO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hbmltYXRpb24ubG9hZChkYXRhLmFuaW1hdGlvbik7XG4gICAgICAgIGlmIChkYXRhLnZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBkYXRhLnZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmRpcmVjdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmRpcmVjdGlvbiA9IGRhdGEuZGlyZWN0aW9uO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5HcmFkaWVudEFuZ2xlID0gR3JhZGllbnRBbmdsZTtcbmNsYXNzIEdyYWRpZW50Q29sb3JPcGFjaXR5IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IDA7XG4gICAgICAgIHRoaXMuYW5pbWF0aW9uID0gbmV3IEdyYWRpZW50Q29sb3JPcGFjaXR5QW5pbWF0aW9uKCk7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFuaW1hdGlvbi5sb2FkKGRhdGEuYW5pbWF0aW9uKTtcbiAgICAgICAgaWYgKGRhdGEudmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9ICgwLCBVdGlsc18xLnNldFJhbmdlVmFsdWUpKGRhdGEudmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5HcmFkaWVudENvbG9yT3BhY2l0eSA9IEdyYWRpZW50Q29sb3JPcGFjaXR5O1xuY2xhc3MgQW5pbWF0YWJsZUdyYWRpZW50Q29sb3Ige1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnN0b3AgPSAwO1xuICAgICAgICB0aGlzLnZhbHVlID0gbmV3IEFuaW1hdGFibGVDb2xvcl8xLkFuaW1hdGFibGVDb2xvcigpO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuc3RvcCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3AgPSBkYXRhLnN0b3A7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy52YWx1ZSA9IEFuaW1hdGFibGVDb2xvcl8xLkFuaW1hdGFibGVDb2xvci5jcmVhdGUodGhpcy52YWx1ZSwgZGF0YS52YWx1ZSk7XG4gICAgICAgIGlmIChkYXRhLm9wYWNpdHkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5vcGFjaXR5ID0gbmV3IEdyYWRpZW50Q29sb3JPcGFjaXR5KCk7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGRhdGEub3BhY2l0eSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgICAgIHRoaXMub3BhY2l0eS52YWx1ZSA9IGRhdGEub3BhY2l0eTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMub3BhY2l0eS5sb2FkKGRhdGEub3BhY2l0eSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkFuaW1hdGFibGVHcmFkaWVudENvbG9yID0gQW5pbWF0YWJsZUdyYWRpZW50Q29sb3I7XG5jbGFzcyBHcmFkaWVudEFuZ2xlQW5pbWF0aW9uIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5jb3VudCA9IDA7XG4gICAgICAgIHRoaXMuZW5hYmxlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc3BlZWQgPSAwO1xuICAgICAgICB0aGlzLnN5bmMgPSBmYWxzZTtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmNvdW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY291bnQgPSBkYXRhLmNvdW50O1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmVuYWJsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZSA9IGRhdGEuZW5hYmxlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnNwZWVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc3BlZWQgPSBkYXRhLnNwZWVkO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnN5bmMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5zeW5jID0gZGF0YS5zeW5jO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5HcmFkaWVudEFuZ2xlQW5pbWF0aW9uID0gR3JhZGllbnRBbmdsZUFuaW1hdGlvbjtcbmNsYXNzIEdyYWRpZW50Q29sb3JPcGFjaXR5QW5pbWF0aW9uIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5jb3VudCA9IDA7XG4gICAgICAgIHRoaXMuZW5hYmxlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc3BlZWQgPSAwO1xuICAgICAgICB0aGlzLnN5bmMgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zdGFydFZhbHVlID0gRW51bXNfMS5TdGFydFZhbHVlVHlwZS5yYW5kb207XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5jb3VudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvdW50ID0gZGF0YS5jb3VudDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5lbmFibGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5lbmFibGUgPSBkYXRhLmVuYWJsZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5zcGVlZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnNwZWVkID0gZGF0YS5zcGVlZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5zeW5jICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc3luYyA9IGRhdGEuc3luYztcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5zdGFydFZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnRWYWx1ZSA9IGRhdGEuc3RhcnRWYWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuR3JhZGllbnRDb2xvck9wYWNpdHlBbmltYXRpb24gPSBHcmFkaWVudENvbG9yT3BhY2l0eUFuaW1hdGlvbjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/AnimatableGradient.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/AnimationOptions.js": +/*!**********************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/AnimationOptions.js ***! + \**********************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.AnimationOptions = void 0;\nclass AnimationOptions {\n constructor() {\n this.count = 0;\n this.enable = false;\n this.speed = 1;\n this.sync = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.count !== undefined) {\n this.count = data.count;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\nexports.AnimationOptions = AnimationOptions;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0FuaW1hdGlvbk9wdGlvbnMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsd0JBQXdCO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvQW5pbWF0aW9uT3B0aW9ucy5qcz8wMjQ5Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5BbmltYXRpb25PcHRpb25zID0gdm9pZCAwO1xuY2xhc3MgQW5pbWF0aW9uT3B0aW9ucyB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuY291bnQgPSAwO1xuICAgICAgICB0aGlzLmVuYWJsZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNwZWVkID0gMTtcbiAgICAgICAgdGhpcy5zeW5jID0gZmFsc2U7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5jb3VudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvdW50ID0gZGF0YS5jb3VudDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5lbmFibGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5lbmFibGUgPSBkYXRhLmVuYWJsZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5zcGVlZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnNwZWVkID0gZGF0YS5zcGVlZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5zeW5jICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc3luYyA9IGRhdGEuc3luYztcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuQW5pbWF0aW9uT3B0aW9ucyA9IEFuaW1hdGlvbk9wdGlvbnM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/AnimationOptions.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/BackgroundMask/BackgroundMask.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/BackgroundMask/BackgroundMask.js ***! + \***********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.BackgroundMask = void 0;\nconst BackgroundMaskCover_1 = __webpack_require__(/*! ./BackgroundMaskCover */ \"./node_modules/tsparticles/Options/Classes/BackgroundMask/BackgroundMaskCover.js\");\nclass BackgroundMask {\n constructor() {\n this.composite = \"destination-out\";\n this.cover = new BackgroundMaskCover_1.BackgroundMaskCover();\n this.enable = false;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.composite !== undefined) {\n this.composite = data.composite;\n }\n if (data.cover !== undefined) {\n const cover = data.cover;\n const color = (typeof data.cover === \"string\" ? { color: data.cover } : data.cover);\n this.cover.load(cover.color !== undefined ? cover : { color: color });\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n }\n}\nexports.BackgroundMask = BackgroundMask;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0JhY2tncm91bmRNYXNrL0JhY2tncm91bmRNYXNrLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHNCQUFzQjtBQUN0Qiw4QkFBOEIsbUJBQU8sQ0FBQywrR0FBdUI7QUFDN0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOERBQThELG9CQUFvQjtBQUNsRixrRUFBa0UsY0FBYztBQUNoRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9CYWNrZ3JvdW5kTWFzay9CYWNrZ3JvdW5kTWFzay5qcz82Mjc2Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5CYWNrZ3JvdW5kTWFzayA9IHZvaWQgMDtcbmNvbnN0IEJhY2tncm91bmRNYXNrQ292ZXJfMSA9IHJlcXVpcmUoXCIuL0JhY2tncm91bmRNYXNrQ292ZXJcIik7XG5jbGFzcyBCYWNrZ3JvdW5kTWFzayB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuY29tcG9zaXRlID0gXCJkZXN0aW5hdGlvbi1vdXRcIjtcbiAgICAgICAgdGhpcy5jb3ZlciA9IG5ldyBCYWNrZ3JvdW5kTWFza0NvdmVyXzEuQmFja2dyb3VuZE1hc2tDb3ZlcigpO1xuICAgICAgICB0aGlzLmVuYWJsZSA9IGZhbHNlO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmNvbXBvc2l0ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbXBvc2l0ZSA9IGRhdGEuY29tcG9zaXRlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmNvdmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvdmVyID0gZGF0YS5jb3ZlcjtcbiAgICAgICAgICAgIGNvbnN0IGNvbG9yID0gKHR5cGVvZiBkYXRhLmNvdmVyID09PSBcInN0cmluZ1wiID8geyBjb2xvcjogZGF0YS5jb3ZlciB9IDogZGF0YS5jb3Zlcik7XG4gICAgICAgICAgICB0aGlzLmNvdmVyLmxvYWQoY292ZXIuY29sb3IgIT09IHVuZGVmaW5lZCA/IGNvdmVyIDogeyBjb2xvcjogY29sb3IgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZW5hYmxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlID0gZGF0YS5lbmFibGU7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkJhY2tncm91bmRNYXNrID0gQmFja2dyb3VuZE1hc2s7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/BackgroundMask/BackgroundMask.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/BackgroundMask/BackgroundMaskCover.js": +/*!****************************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/BackgroundMask/BackgroundMaskCover.js ***! + \****************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.BackgroundMaskCover = void 0;\nconst OptionsColor_1 = __webpack_require__(/*! ../OptionsColor */ \"./node_modules/tsparticles/Options/Classes/OptionsColor.js\");\nclass BackgroundMaskCover {\n constructor() {\n this.color = new OptionsColor_1.OptionsColor();\n this.opacity = 1;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor_1.OptionsColor.create(this.color, data.color);\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\nexports.BackgroundMaskCover = BackgroundMaskCover;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0JhY2tncm91bmRNYXNrL0JhY2tncm91bmRNYXNrQ292ZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsMkJBQTJCO0FBQzNCLHVCQUF1QixtQkFBTyxDQUFDLG1GQUFpQjtBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvQmFja2dyb3VuZE1hc2svQmFja2dyb3VuZE1hc2tDb3Zlci5qcz9mYjQ0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5CYWNrZ3JvdW5kTWFza0NvdmVyID0gdm9pZCAwO1xuY29uc3QgT3B0aW9uc0NvbG9yXzEgPSByZXF1aXJlKFwiLi4vT3B0aW9uc0NvbG9yXCIpO1xuY2xhc3MgQmFja2dyb3VuZE1hc2tDb3ZlciB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuY29sb3IgPSBuZXcgT3B0aW9uc0NvbG9yXzEuT3B0aW9uc0NvbG9yKCk7XG4gICAgICAgIHRoaXMub3BhY2l0eSA9IDE7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuY29sb3IgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5jb2xvciA9IE9wdGlvbnNDb2xvcl8xLk9wdGlvbnNDb2xvci5jcmVhdGUodGhpcy5jb2xvciwgZGF0YS5jb2xvcik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEub3BhY2l0eSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLm9wYWNpdHkgPSBkYXRhLm9wYWNpdHk7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkJhY2tncm91bmRNYXNrQ292ZXIgPSBCYWNrZ3JvdW5kTWFza0NvdmVyO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/BackgroundMask/BackgroundMaskCover.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Background/Background.js": +/*!***************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Background/Background.js ***! + \***************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Background = void 0;\nconst OptionsColor_1 = __webpack_require__(/*! ../OptionsColor */ \"./node_modules/tsparticles/Options/Classes/OptionsColor.js\");\nclass Background {\n constructor() {\n this.color = new OptionsColor_1.OptionsColor();\n this.color.value = \"\";\n this.image = \"\";\n this.position = \"\";\n this.repeat = \"\";\n this.size = \"\";\n this.opacity = 1;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor_1.OptionsColor.create(this.color, data.color);\n }\n if (data.image !== undefined) {\n this.image = data.image;\n }\n if (data.position !== undefined) {\n this.position = data.position;\n }\n if (data.repeat !== undefined) {\n this.repeat = data.repeat;\n }\n if (data.size !== undefined) {\n this.size = data.size;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\nexports.Background = Background;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0JhY2tncm91bmQvQmFja2dyb3VuZC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxrQkFBa0I7QUFDbEIsdUJBQXVCLG1CQUFPLENBQUMsbUZBQWlCO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvQmFja2dyb3VuZC9CYWNrZ3JvdW5kLmpzP2JhOTUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkJhY2tncm91bmQgPSB2b2lkIDA7XG5jb25zdCBPcHRpb25zQ29sb3JfMSA9IHJlcXVpcmUoXCIuLi9PcHRpb25zQ29sb3JcIik7XG5jbGFzcyBCYWNrZ3JvdW5kIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5jb2xvciA9IG5ldyBPcHRpb25zQ29sb3JfMS5PcHRpb25zQ29sb3IoKTtcbiAgICAgICAgdGhpcy5jb2xvci52YWx1ZSA9IFwiXCI7XG4gICAgICAgIHRoaXMuaW1hZ2UgPSBcIlwiO1xuICAgICAgICB0aGlzLnBvc2l0aW9uID0gXCJcIjtcbiAgICAgICAgdGhpcy5yZXBlYXQgPSBcIlwiO1xuICAgICAgICB0aGlzLnNpemUgPSBcIlwiO1xuICAgICAgICB0aGlzLm9wYWNpdHkgPSAxO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmNvbG9yICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29sb3IgPSBPcHRpb25zQ29sb3JfMS5PcHRpb25zQ29sb3IuY3JlYXRlKHRoaXMuY29sb3IsIGRhdGEuY29sb3IpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmltYWdlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuaW1hZ2UgPSBkYXRhLmltYWdlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnBvc2l0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPSBkYXRhLnBvc2l0aW9uO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnJlcGVhdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnJlcGVhdCA9IGRhdGEucmVwZWF0O1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnNpemUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5zaXplID0gZGF0YS5zaXplO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLm9wYWNpdHkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5vcGFjaXR5ID0gZGF0YS5vcGFjaXR5O1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5CYWNrZ3JvdW5kID0gQmFja2dyb3VuZDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Background/Background.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/ColorAnimation.js": +/*!********************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/ColorAnimation.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ColorAnimation = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass ColorAnimation {\n constructor() {\n this.count = 0;\n this.enable = false;\n this.offset = 0;\n this.speed = 1;\n this.sync = true;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.count !== undefined) {\n this.count = data.count;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.offset !== undefined) {\n this.offset = (0, Utils_1.setRangeValue)(data.offset);\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\nexports.ColorAnimation = ColorAnimation;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0NvbG9yQW5pbWF0aW9uLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHNCQUFzQjtBQUN0QixnQkFBZ0IsbUJBQU8sQ0FBQyw4REFBYTtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvQ29sb3JBbmltYXRpb24uanM/ODhmYyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuQ29sb3JBbmltYXRpb24gPSB2b2lkIDA7XG5jb25zdCBVdGlsc18xID0gcmVxdWlyZShcIi4uLy4uL1V0aWxzXCIpO1xuY2xhc3MgQ29sb3JBbmltYXRpb24ge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmNvdW50ID0gMDtcbiAgICAgICAgdGhpcy5lbmFibGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5vZmZzZXQgPSAwO1xuICAgICAgICB0aGlzLnNwZWVkID0gMTtcbiAgICAgICAgdGhpcy5zeW5jID0gdHJ1ZTtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5jb3VudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvdW50ID0gZGF0YS5jb3VudDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5lbmFibGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5lbmFibGUgPSBkYXRhLmVuYWJsZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5vZmZzZXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5vZmZzZXQgPSAoMCwgVXRpbHNfMS5zZXRSYW5nZVZhbHVlKShkYXRhLm9mZnNldCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuc3BlZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5zcGVlZCA9IGRhdGEuc3BlZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuc3luYyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnN5bmMgPSBkYXRhLnN5bmM7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkNvbG9yQW5pbWF0aW9uID0gQ29sb3JBbmltYXRpb247XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/ColorAnimation.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/FullScreen/FullScreen.js": +/*!***************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/FullScreen/FullScreen.js ***! + \***************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.FullScreen = void 0;\nclass FullScreen {\n constructor() {\n this.enable = true;\n this.zIndex = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.zIndex !== undefined) {\n this.zIndex = data.zIndex;\n }\n }\n}\nexports.FullScreen = FullScreen;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0Z1bGxTY3JlZW4vRnVsbFNjcmVlbi5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0Z1bGxTY3JlZW4vRnVsbFNjcmVlbi5qcz9jZGY3Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5GdWxsU2NyZWVuID0gdm9pZCAwO1xuY2xhc3MgRnVsbFNjcmVlbiB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuZW5hYmxlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy56SW5kZXggPSAwO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZW5hYmxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlID0gZGF0YS5lbmFibGU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuekluZGV4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuekluZGV4ID0gZGF0YS56SW5kZXg7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkZ1bGxTY3JlZW4gPSBGdWxsU2NyZWVuO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/FullScreen/FullScreen.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/HslAnimation.js": +/*!******************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/HslAnimation.js ***! + \******************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.HslAnimation = void 0;\nconst ColorAnimation_1 = __webpack_require__(/*! ./ColorAnimation */ \"./node_modules/tsparticles/Options/Classes/ColorAnimation.js\");\nclass HslAnimation {\n constructor() {\n this.h = new ColorAnimation_1.ColorAnimation();\n this.s = new ColorAnimation_1.ColorAnimation();\n this.l = new ColorAnimation_1.ColorAnimation();\n }\n load(data) {\n if (!data) {\n return;\n }\n this.h.load(data.h);\n this.s.load(data.s);\n this.l.load(data.l);\n }\n}\nexports.HslAnimation = HslAnimation;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0hzbEFuaW1hdGlvbi5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxvQkFBb0I7QUFDcEIseUJBQXlCLG1CQUFPLENBQUMsc0ZBQWtCO0FBQ25EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0hzbEFuaW1hdGlvbi5qcz8wODI2Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Ic2xBbmltYXRpb24gPSB2b2lkIDA7XG5jb25zdCBDb2xvckFuaW1hdGlvbl8xID0gcmVxdWlyZShcIi4vQ29sb3JBbmltYXRpb25cIik7XG5jbGFzcyBIc2xBbmltYXRpb24ge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmggPSBuZXcgQ29sb3JBbmltYXRpb25fMS5Db2xvckFuaW1hdGlvbigpO1xuICAgICAgICB0aGlzLnMgPSBuZXcgQ29sb3JBbmltYXRpb25fMS5Db2xvckFuaW1hdGlvbigpO1xuICAgICAgICB0aGlzLmwgPSBuZXcgQ29sb3JBbmltYXRpb25fMS5Db2xvckFuaW1hdGlvbigpO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5oLmxvYWQoZGF0YS5oKTtcbiAgICAgICAgdGhpcy5zLmxvYWQoZGF0YS5zKTtcbiAgICAgICAgdGhpcy5sLmxvYWQoZGF0YS5sKTtcbiAgICB9XG59XG5leHBvcnRzLkhzbEFuaW1hdGlvbiA9IEhzbEFuaW1hdGlvbjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/HslAnimation.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Events/ClickEvent.js": +/*!*************************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Events/ClickEvent.js ***! + \*************************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ClickEvent = void 0;\nclass ClickEvent {\n constructor() {\n this.enable = false;\n this.mode = [];\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n }\n}\nexports.ClickEvent = ClickEvent;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvRXZlbnRzL0NsaWNrRXZlbnQuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9JbnRlcmFjdGl2aXR5L0V2ZW50cy9DbGlja0V2ZW50LmpzP2RiOWQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkNsaWNrRXZlbnQgPSB2b2lkIDA7XG5jbGFzcyBDbGlja0V2ZW50IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5lbmFibGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5tb2RlID0gW107XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZW5hYmxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlID0gZGF0YS5lbmFibGU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEubW9kZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLm1vZGUgPSBkYXRhLm1vZGU7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkNsaWNrRXZlbnQgPSBDbGlja0V2ZW50O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Events/ClickEvent.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Events/DivEvent.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Events/DivEvent.js ***! + \***********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.DivEvent = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nclass DivEvent {\n constructor() {\n this.selectors = [];\n this.enable = false;\n this.mode = [];\n this.type = Enums_1.DivType.circle;\n }\n get elementId() {\n return this.ids;\n }\n set elementId(value) {\n this.ids = value;\n }\n get el() {\n return this.elementId;\n }\n set el(value) {\n this.elementId = value;\n }\n get ids() {\n return this.selectors instanceof Array\n ? this.selectors.map((t) => t.replace(\"#\", \"\"))\n : this.selectors.replace(\"#\", \"\");\n }\n set ids(value) {\n this.selectors = value instanceof Array ? value.map((t) => `#${t}`) : `#${value}`;\n }\n load(data) {\n var _a, _b;\n if (data === undefined) {\n return;\n }\n const ids = (_b = (_a = data.ids) !== null && _a !== void 0 ? _a : data.elementId) !== null && _b !== void 0 ? _b : data.el;\n if (ids !== undefined) {\n this.ids = ids;\n }\n if (data.selectors !== undefined) {\n this.selectors = data.selectors;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n if (data.type !== undefined) {\n this.type = data.type;\n }\n }\n}\nexports.DivEvent = DivEvent;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvRXZlbnRzL0RpdkV2ZW50LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGdCQUFnQjtBQUNoQixnQkFBZ0IsbUJBQU8sQ0FBQyxvRUFBbUI7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1RUFBdUUsRUFBRSxTQUFTLE1BQU07QUFDeEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvSW50ZXJhY3Rpdml0eS9FdmVudHMvRGl2RXZlbnQuanM/ODZiNiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuRGl2RXZlbnQgPSB2b2lkIDA7XG5jb25zdCBFbnVtc18xID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL0VudW1zXCIpO1xuY2xhc3MgRGl2RXZlbnQge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnNlbGVjdG9ycyA9IFtdO1xuICAgICAgICB0aGlzLmVuYWJsZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLm1vZGUgPSBbXTtcbiAgICAgICAgdGhpcy50eXBlID0gRW51bXNfMS5EaXZUeXBlLmNpcmNsZTtcbiAgICB9XG4gICAgZ2V0IGVsZW1lbnRJZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaWRzO1xuICAgIH1cbiAgICBzZXQgZWxlbWVudElkKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuaWRzID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBlbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudElkO1xuICAgIH1cbiAgICBzZXQgZWwodmFsdWUpIHtcbiAgICAgICAgdGhpcy5lbGVtZW50SWQgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IGlkcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0b3JzIGluc3RhbmNlb2YgQXJyYXlcbiAgICAgICAgICAgID8gdGhpcy5zZWxlY3RvcnMubWFwKCh0KSA9PiB0LnJlcGxhY2UoXCIjXCIsIFwiXCIpKVxuICAgICAgICAgICAgOiB0aGlzLnNlbGVjdG9ycy5yZXBsYWNlKFwiI1wiLCBcIlwiKTtcbiAgICB9XG4gICAgc2V0IGlkcyh2YWx1ZSkge1xuICAgICAgICB0aGlzLnNlbGVjdG9ycyA9IHZhbHVlIGluc3RhbmNlb2YgQXJyYXkgPyB2YWx1ZS5tYXAoKHQpID0+IGAjJHt0fWApIDogYCMke3ZhbHVlfWA7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaWRzID0gKF9iID0gKF9hID0gZGF0YS5pZHMpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGRhdGEuZWxlbWVudElkKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBkYXRhLmVsO1xuICAgICAgICBpZiAoaWRzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuaWRzID0gaWRzO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnNlbGVjdG9ycyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdG9ycyA9IGRhdGEuc2VsZWN0b3JzO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmVuYWJsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZSA9IGRhdGEuZW5hYmxlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLm1vZGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5tb2RlID0gZGF0YS5tb2RlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnR5cGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gZGF0YS50eXBlO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5EaXZFdmVudCA9IERpdkV2ZW50O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Events/DivEvent.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Events/Events.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Events/Events.js ***! + \*********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Events = void 0;\nconst ClickEvent_1 = __webpack_require__(/*! ./ClickEvent */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Events/ClickEvent.js\");\nconst DivEvent_1 = __webpack_require__(/*! ./DivEvent */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Events/DivEvent.js\");\nconst HoverEvent_1 = __webpack_require__(/*! ./HoverEvent */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Events/HoverEvent.js\");\nclass Events {\n constructor() {\n this.onClick = new ClickEvent_1.ClickEvent();\n this.onDiv = new DivEvent_1.DivEvent();\n this.onHover = new HoverEvent_1.HoverEvent();\n this.resize = true;\n }\n get onclick() {\n return this.onClick;\n }\n set onclick(value) {\n this.onClick = value;\n }\n get ondiv() {\n return this.onDiv;\n }\n set ondiv(value) {\n this.onDiv = value;\n }\n get onhover() {\n return this.onHover;\n }\n set onhover(value) {\n this.onHover = value;\n }\n load(data) {\n var _a, _b, _c;\n if (data === undefined) {\n return;\n }\n this.onClick.load((_a = data.onClick) !== null && _a !== void 0 ? _a : data.onclick);\n const onDiv = (_b = data.onDiv) !== null && _b !== void 0 ? _b : data.ondiv;\n if (onDiv !== undefined) {\n if (onDiv instanceof Array) {\n this.onDiv = onDiv.map((div) => {\n const tmp = new DivEvent_1.DivEvent();\n tmp.load(div);\n return tmp;\n });\n }\n else {\n this.onDiv = new DivEvent_1.DivEvent();\n this.onDiv.load(onDiv);\n }\n }\n this.onHover.load((_c = data.onHover) !== null && _c !== void 0 ? _c : data.onhover);\n if (data.resize !== undefined) {\n this.resize = data.resize;\n }\n }\n}\nexports.Events = Events;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvRXZlbnRzL0V2ZW50cy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxjQUFjO0FBQ2QscUJBQXFCLG1CQUFPLENBQUMsbUdBQWM7QUFDM0MsbUJBQW1CLG1CQUFPLENBQUMsK0ZBQVk7QUFDdkMscUJBQXFCLG1CQUFPLENBQUMsbUdBQWM7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvSW50ZXJhY3Rpdml0eS9FdmVudHMvRXZlbnRzLmpzPzQ4NjkiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkV2ZW50cyA9IHZvaWQgMDtcbmNvbnN0IENsaWNrRXZlbnRfMSA9IHJlcXVpcmUoXCIuL0NsaWNrRXZlbnRcIik7XG5jb25zdCBEaXZFdmVudF8xID0gcmVxdWlyZShcIi4vRGl2RXZlbnRcIik7XG5jb25zdCBIb3ZlckV2ZW50XzEgPSByZXF1aXJlKFwiLi9Ib3ZlckV2ZW50XCIpO1xuY2xhc3MgRXZlbnRzIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5vbkNsaWNrID0gbmV3IENsaWNrRXZlbnRfMS5DbGlja0V2ZW50KCk7XG4gICAgICAgIHRoaXMub25EaXYgPSBuZXcgRGl2RXZlbnRfMS5EaXZFdmVudCgpO1xuICAgICAgICB0aGlzLm9uSG92ZXIgPSBuZXcgSG92ZXJFdmVudF8xLkhvdmVyRXZlbnQoKTtcbiAgICAgICAgdGhpcy5yZXNpemUgPSB0cnVlO1xuICAgIH1cbiAgICBnZXQgb25jbGljaygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub25DbGljaztcbiAgICB9XG4gICAgc2V0IG9uY2xpY2sodmFsdWUpIHtcbiAgICAgICAgdGhpcy5vbkNsaWNrID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBvbmRpdigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub25EaXY7XG4gICAgfVxuICAgIHNldCBvbmRpdih2YWx1ZSkge1xuICAgICAgICB0aGlzLm9uRGl2ID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBvbmhvdmVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5vbkhvdmVyO1xuICAgIH1cbiAgICBzZXQgb25ob3Zlcih2YWx1ZSkge1xuICAgICAgICB0aGlzLm9uSG92ZXIgPSB2YWx1ZTtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vbkNsaWNrLmxvYWQoKF9hID0gZGF0YS5vbkNsaWNrKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBkYXRhLm9uY2xpY2spO1xuICAgICAgICBjb25zdCBvbkRpdiA9IChfYiA9IGRhdGEub25EaXYpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IGRhdGEub25kaXY7XG4gICAgICAgIGlmIChvbkRpdiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBpZiAob25EaXYgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgICAgIHRoaXMub25EaXYgPSBvbkRpdi5tYXAoKGRpdikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0bXAgPSBuZXcgRGl2RXZlbnRfMS5EaXZFdmVudCgpO1xuICAgICAgICAgICAgICAgICAgICB0bXAubG9hZChkaXYpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdG1wO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkRpdiA9IG5ldyBEaXZFdmVudF8xLkRpdkV2ZW50KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkRpdi5sb2FkKG9uRGl2KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9uSG92ZXIubG9hZCgoX2MgPSBkYXRhLm9uSG92ZXIpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IGRhdGEub25ob3Zlcik7XG4gICAgICAgIGlmIChkYXRhLnJlc2l6ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnJlc2l6ZSA9IGRhdGEucmVzaXplO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5FdmVudHMgPSBFdmVudHM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Events/Events.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Events/HoverEvent.js": +/*!*************************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Events/HoverEvent.js ***! + \*************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.HoverEvent = void 0;\nconst Parallax_1 = __webpack_require__(/*! ./Parallax */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Events/Parallax.js\");\nclass HoverEvent {\n constructor() {\n this.enable = false;\n this.mode = [];\n this.parallax = new Parallax_1.Parallax();\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n this.parallax.load(data.parallax);\n }\n}\nexports.HoverEvent = HoverEvent;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvRXZlbnRzL0hvdmVyRXZlbnQuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsa0JBQWtCO0FBQ2xCLG1CQUFtQixtQkFBTyxDQUFDLCtGQUFZO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvSW50ZXJhY3Rpdml0eS9FdmVudHMvSG92ZXJFdmVudC5qcz8wM2I0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Ib3ZlckV2ZW50ID0gdm9pZCAwO1xuY29uc3QgUGFyYWxsYXhfMSA9IHJlcXVpcmUoXCIuL1BhcmFsbGF4XCIpO1xuY2xhc3MgSG92ZXJFdmVudCB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuZW5hYmxlID0gZmFsc2U7XG4gICAgICAgIHRoaXMubW9kZSA9IFtdO1xuICAgICAgICB0aGlzLnBhcmFsbGF4ID0gbmV3IFBhcmFsbGF4XzEuUGFyYWxsYXgoKTtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5lbmFibGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5lbmFibGUgPSBkYXRhLmVuYWJsZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5tb2RlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMubW9kZSA9IGRhdGEubW9kZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnBhcmFsbGF4LmxvYWQoZGF0YS5wYXJhbGxheCk7XG4gICAgfVxufVxuZXhwb3J0cy5Ib3ZlckV2ZW50ID0gSG92ZXJFdmVudDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Events/HoverEvent.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Events/Parallax.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Events/Parallax.js ***! + \***********************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Parallax = void 0;\nclass Parallax {\n constructor() {\n this.enable = false;\n this.force = 2;\n this.smooth = 10;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.force !== undefined) {\n this.force = data.force;\n }\n if (data.smooth !== undefined) {\n this.smooth = data.smooth;\n }\n }\n}\nexports.Parallax = Parallax;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvRXZlbnRzL1BhcmFsbGF4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9JbnRlcmFjdGl2aXR5L0V2ZW50cy9QYXJhbGxheC5qcz82YjcxIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5QYXJhbGxheCA9IHZvaWQgMDtcbmNsYXNzIFBhcmFsbGF4IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5lbmFibGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5mb3JjZSA9IDI7XG4gICAgICAgIHRoaXMuc21vb3RoID0gMTA7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZW5hYmxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlID0gZGF0YS5lbmFibGU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZm9yY2UgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5mb3JjZSA9IGRhdGEuZm9yY2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuc21vb3RoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc21vb3RoID0gZGF0YS5zbW9vdGg7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLlBhcmFsbGF4ID0gUGFyYWxsYXg7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Events/Parallax.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Interactivity.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Interactivity.js ***! + \*********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Interactivity = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst Events_1 = __webpack_require__(/*! ./Events/Events */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Events/Events.js\");\nconst Modes_1 = __webpack_require__(/*! ./Modes/Modes */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Modes.js\");\nclass Interactivity {\n constructor() {\n this.detectsOn = Enums_1.InteractivityDetect.window;\n this.events = new Events_1.Events();\n this.modes = new Modes_1.Modes();\n }\n get detect_on() {\n return this.detectsOn;\n }\n set detect_on(value) {\n this.detectsOn = value;\n }\n load(data) {\n var _a, _b, _c;\n if (data === undefined) {\n return;\n }\n const detectsOn = (_a = data.detectsOn) !== null && _a !== void 0 ? _a : data.detect_on;\n if (detectsOn !== undefined) {\n this.detectsOn = detectsOn;\n }\n this.events.load(data.events);\n this.modes.load(data.modes);\n if (((_c = (_b = data.modes) === null || _b === void 0 ? void 0 : _b.slow) === null || _c === void 0 ? void 0 : _c.active) === true) {\n if (this.events.onHover.mode instanceof Array) {\n if (this.events.onHover.mode.indexOf(Enums_1.HoverMode.slow) < 0) {\n this.events.onHover.mode.push(Enums_1.HoverMode.slow);\n }\n }\n else if (this.events.onHover.mode !== Enums_1.HoverMode.slow) {\n this.events.onHover.mode = [this.events.onHover.mode, Enums_1.HoverMode.slow];\n }\n }\n }\n}\nexports.Interactivity = Interactivity;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvSW50ZXJhY3Rpdml0eS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxxQkFBcUI7QUFDckIsZ0JBQWdCLG1CQUFPLENBQUMsaUVBQWdCO0FBQ3hDLGlCQUFpQixtQkFBTyxDQUFDLGtHQUFpQjtBQUMxQyxnQkFBZ0IsbUJBQU8sQ0FBQyw4RkFBZTtBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvSW50ZXJhY3Rpdml0eS9JbnRlcmFjdGl2aXR5LmpzPzhmMmEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkludGVyYWN0aXZpdHkgPSB2b2lkIDA7XG5jb25zdCBFbnVtc18xID0gcmVxdWlyZShcIi4uLy4uLy4uL0VudW1zXCIpO1xuY29uc3QgRXZlbnRzXzEgPSByZXF1aXJlKFwiLi9FdmVudHMvRXZlbnRzXCIpO1xuY29uc3QgTW9kZXNfMSA9IHJlcXVpcmUoXCIuL01vZGVzL01vZGVzXCIpO1xuY2xhc3MgSW50ZXJhY3Rpdml0eSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuZGV0ZWN0c09uID0gRW51bXNfMS5JbnRlcmFjdGl2aXR5RGV0ZWN0LndpbmRvdztcbiAgICAgICAgdGhpcy5ldmVudHMgPSBuZXcgRXZlbnRzXzEuRXZlbnRzKCk7XG4gICAgICAgIHRoaXMubW9kZXMgPSBuZXcgTW9kZXNfMS5Nb2RlcygpO1xuICAgIH1cbiAgICBnZXQgZGV0ZWN0X29uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5kZXRlY3RzT247XG4gICAgfVxuICAgIHNldCBkZXRlY3Rfb24odmFsdWUpIHtcbiAgICAgICAgdGhpcy5kZXRlY3RzT24gPSB2YWx1ZTtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGV0ZWN0c09uID0gKF9hID0gZGF0YS5kZXRlY3RzT24pICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGRhdGEuZGV0ZWN0X29uO1xuICAgICAgICBpZiAoZGV0ZWN0c09uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZGV0ZWN0c09uID0gZGV0ZWN0c09uO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZXZlbnRzLmxvYWQoZGF0YS5ldmVudHMpO1xuICAgICAgICB0aGlzLm1vZGVzLmxvYWQoZGF0YS5tb2Rlcyk7XG4gICAgICAgIGlmICgoKF9jID0gKF9iID0gZGF0YS5tb2RlcykgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLnNsb3cpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5hY3RpdmUpID09PSB0cnVlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5ldmVudHMub25Ib3Zlci5tb2RlIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5ldmVudHMub25Ib3Zlci5tb2RlLmluZGV4T2YoRW51bXNfMS5Ib3Zlck1vZGUuc2xvdykgPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXZlbnRzLm9uSG92ZXIubW9kZS5wdXNoKEVudW1zXzEuSG92ZXJNb2RlLnNsb3cpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuZXZlbnRzLm9uSG92ZXIubW9kZSAhPT0gRW51bXNfMS5Ib3Zlck1vZGUuc2xvdykge1xuICAgICAgICAgICAgICAgIHRoaXMuZXZlbnRzLm9uSG92ZXIubW9kZSA9IFt0aGlzLmV2ZW50cy5vbkhvdmVyLm1vZGUsIEVudW1zXzEuSG92ZXJNb2RlLnNsb3ddO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5JbnRlcmFjdGl2aXR5ID0gSW50ZXJhY3Rpdml0eTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Interactivity.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Attract.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Attract.js ***! + \*********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Attract = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nclass Attract {\n constructor() {\n this.distance = 200;\n this.duration = 0.4;\n this.easing = Enums_1.EasingType.easeOutQuad;\n this.factor = 1;\n this.maxSpeed = 50;\n this.speed = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n if (data.easing !== undefined) {\n this.easing = data.easing;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n if (data.maxSpeed !== undefined) {\n this.maxSpeed = data.maxSpeed;\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n }\n}\nexports.Attract = Attract;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvQXR0cmFjdC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxlQUFlO0FBQ2YsZ0JBQWdCLG1CQUFPLENBQUMsb0VBQW1CO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9JbnRlcmFjdGl2aXR5L01vZGVzL0F0dHJhY3QuanM/ZGEyZiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuQXR0cmFjdCA9IHZvaWQgMDtcbmNvbnN0IEVudW1zXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vRW51bXNcIik7XG5jbGFzcyBBdHRyYWN0IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5kaXN0YW5jZSA9IDIwMDtcbiAgICAgICAgdGhpcy5kdXJhdGlvbiA9IDAuNDtcbiAgICAgICAgdGhpcy5lYXNpbmcgPSBFbnVtc18xLkVhc2luZ1R5cGUuZWFzZU91dFF1YWQ7XG4gICAgICAgIHRoaXMuZmFjdG9yID0gMTtcbiAgICAgICAgdGhpcy5tYXhTcGVlZCA9IDUwO1xuICAgICAgICB0aGlzLnNwZWVkID0gMTtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmRpc3RhbmNlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzdGFuY2UgPSBkYXRhLmRpc3RhbmNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmR1cmF0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZHVyYXRpb24gPSBkYXRhLmR1cmF0aW9uO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmVhc2luZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmVhc2luZyA9IGRhdGEuZWFzaW5nO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmZhY3RvciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmZhY3RvciA9IGRhdGEuZmFjdG9yO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLm1heFNwZWVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMubWF4U3BlZWQgPSBkYXRhLm1heFNwZWVkO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnNwZWVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc3BlZWQgPSBkYXRhLnNwZWVkO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5BdHRyYWN0ID0gQXR0cmFjdDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Attract.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Bounce.js": +/*!********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Bounce.js ***! + \********************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Bounce = void 0;\nclass Bounce {\n constructor() {\n this.distance = 200;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n }\n}\nexports.Bounce = Bounce;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvQm91bmNlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9JbnRlcmFjdGl2aXR5L01vZGVzL0JvdW5jZS5qcz9hNzc2Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Cb3VuY2UgPSB2b2lkIDA7XG5jbGFzcyBCb3VuY2Uge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmRpc3RhbmNlID0gMjAwO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZGlzdGFuY2UgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5kaXN0YW5jZSA9IGRhdGEuZGlzdGFuY2U7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkJvdW5jZSA9IEJvdW5jZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Bounce.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Bubble.js": +/*!********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Bubble.js ***! + \********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Bubble = void 0;\nconst BubbleDiv_1 = __webpack_require__(/*! ./BubbleDiv */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/BubbleDiv.js\");\nconst BubbleBase_1 = __webpack_require__(/*! ./BubbleBase */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/BubbleBase.js\");\nclass Bubble extends BubbleBase_1.BubbleBase {\n load(data) {\n super.load(data);\n if (!(data !== undefined && data.divs !== undefined)) {\n return;\n }\n if (data.divs instanceof Array) {\n this.divs = data.divs.map((s) => {\n const tmp = new BubbleDiv_1.BubbleDiv();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.divs instanceof Array || !this.divs) {\n this.divs = new BubbleDiv_1.BubbleDiv();\n }\n this.divs.load(data.divs);\n }\n }\n}\nexports.Bubble = Bubble;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvQnViYmxlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGNBQWM7QUFDZCxvQkFBb0IsbUJBQU8sQ0FBQyxnR0FBYTtBQUN6QyxxQkFBcUIsbUJBQU8sQ0FBQyxrR0FBYztBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9JbnRlcmFjdGl2aXR5L01vZGVzL0J1YmJsZS5qcz8xZmNjIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5CdWJibGUgPSB2b2lkIDA7XG5jb25zdCBCdWJibGVEaXZfMSA9IHJlcXVpcmUoXCIuL0J1YmJsZURpdlwiKTtcbmNvbnN0IEJ1YmJsZUJhc2VfMSA9IHJlcXVpcmUoXCIuL0J1YmJsZUJhc2VcIik7XG5jbGFzcyBCdWJibGUgZXh0ZW5kcyBCdWJibGVCYXNlXzEuQnViYmxlQmFzZSB7XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIHN1cGVyLmxvYWQoZGF0YSk7XG4gICAgICAgIGlmICghKGRhdGEgIT09IHVuZGVmaW5lZCAmJiBkYXRhLmRpdnMgIT09IHVuZGVmaW5lZCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5kaXZzIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgIHRoaXMuZGl2cyA9IGRhdGEuZGl2cy5tYXAoKHMpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB0bXAgPSBuZXcgQnViYmxlRGl2XzEuQnViYmxlRGl2KCk7XG4gICAgICAgICAgICAgICAgdG1wLmxvYWQocyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRtcDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuZGl2cyBpbnN0YW5jZW9mIEFycmF5IHx8ICF0aGlzLmRpdnMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRpdnMgPSBuZXcgQnViYmxlRGl2XzEuQnViYmxlRGl2KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmRpdnMubG9hZChkYXRhLmRpdnMpO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5CdWJibGUgPSBCdWJibGU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Bubble.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Modes/BubbleBase.js": +/*!************************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Modes/BubbleBase.js ***! + \************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.BubbleBase = void 0;\nconst OptionsColor_1 = __webpack_require__(/*! ../../OptionsColor */ \"./node_modules/tsparticles/Options/Classes/OptionsColor.js\");\nclass BubbleBase {\n constructor() {\n this.distance = 200;\n this.duration = 0.4;\n this.mix = false;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n if (data.mix !== undefined) {\n this.mix = data.mix;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n if (data.color !== undefined) {\n if (data.color instanceof Array) {\n this.color = data.color.map((s) => OptionsColor_1.OptionsColor.create(undefined, s));\n }\n else {\n if (this.color instanceof Array) {\n this.color = new OptionsColor_1.OptionsColor();\n }\n this.color = OptionsColor_1.OptionsColor.create(this.color, data.color);\n }\n }\n if (data.size !== undefined) {\n this.size = data.size;\n }\n }\n}\nexports.BubbleBase = BubbleBase;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvQnViYmxlQmFzZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxrQkFBa0I7QUFDbEIsdUJBQXVCLG1CQUFPLENBQUMsc0ZBQW9CO0FBQ25EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9JbnRlcmFjdGl2aXR5L01vZGVzL0J1YmJsZUJhc2UuanM/YjIyNCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuQnViYmxlQmFzZSA9IHZvaWQgMDtcbmNvbnN0IE9wdGlvbnNDb2xvcl8xID0gcmVxdWlyZShcIi4uLy4uL09wdGlvbnNDb2xvclwiKTtcbmNsYXNzIEJ1YmJsZUJhc2Uge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmRpc3RhbmNlID0gMjAwO1xuICAgICAgICB0aGlzLmR1cmF0aW9uID0gMC40O1xuICAgICAgICB0aGlzLm1peCA9IGZhbHNlO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmRpc3RhbmNlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzdGFuY2UgPSBkYXRhLmRpc3RhbmNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmR1cmF0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZHVyYXRpb24gPSBkYXRhLmR1cmF0aW9uO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLm1peCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLm1peCA9IGRhdGEubWl4O1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLm9wYWNpdHkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5vcGFjaXR5ID0gZGF0YS5vcGFjaXR5O1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmNvbG9yICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmIChkYXRhLmNvbG9yIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbG9yID0gZGF0YS5jb2xvci5tYXAoKHMpID0+IE9wdGlvbnNDb2xvcl8xLk9wdGlvbnNDb2xvci5jcmVhdGUodW5kZWZpbmVkLCBzKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jb2xvciBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29sb3IgPSBuZXcgT3B0aW9uc0NvbG9yXzEuT3B0aW9uc0NvbG9yKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuY29sb3IgPSBPcHRpb25zQ29sb3JfMS5PcHRpb25zQ29sb3IuY3JlYXRlKHRoaXMuY29sb3IsIGRhdGEuY29sb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnNpemUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5zaXplID0gZGF0YS5zaXplO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5CdWJibGVCYXNlID0gQnViYmxlQmFzZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Modes/BubbleBase.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Modes/BubbleDiv.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Modes/BubbleDiv.js ***! + \***********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.BubbleDiv = void 0;\nconst BubbleBase_1 = __webpack_require__(/*! ./BubbleBase */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/BubbleBase.js\");\nclass BubbleDiv extends BubbleBase_1.BubbleBase {\n constructor() {\n super();\n this.selectors = [];\n }\n get ids() {\n return this.selectors instanceof Array\n ? this.selectors.map((t) => t.replace(\"#\", \"\"))\n : this.selectors.replace(\"#\", \"\");\n }\n set ids(value) {\n this.selectors = value instanceof Array ? value.map((t) => `#${t}`) : `#${value}`;\n }\n load(data) {\n super.load(data);\n if (data === undefined) {\n return;\n }\n if (data.ids !== undefined) {\n this.ids = data.ids;\n }\n if (data.selectors !== undefined) {\n this.selectors = data.selectors;\n }\n }\n}\nexports.BubbleDiv = BubbleDiv;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvQnViYmxlRGl2LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGlCQUFpQjtBQUNqQixxQkFBcUIsbUJBQU8sQ0FBQyxrR0FBYztBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUVBQXVFLEVBQUUsU0FBUyxNQUFNO0FBQ3hGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9JbnRlcmFjdGl2aXR5L01vZGVzL0J1YmJsZURpdi5qcz9hZDNkIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5CdWJibGVEaXYgPSB2b2lkIDA7XG5jb25zdCBCdWJibGVCYXNlXzEgPSByZXF1aXJlKFwiLi9CdWJibGVCYXNlXCIpO1xuY2xhc3MgQnViYmxlRGl2IGV4dGVuZHMgQnViYmxlQmFzZV8xLkJ1YmJsZUJhc2Uge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnNlbGVjdG9ycyA9IFtdO1xuICAgIH1cbiAgICBnZXQgaWRzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RvcnMgaW5zdGFuY2VvZiBBcnJheVxuICAgICAgICAgICAgPyB0aGlzLnNlbGVjdG9ycy5tYXAoKHQpID0+IHQucmVwbGFjZShcIiNcIiwgXCJcIikpXG4gICAgICAgICAgICA6IHRoaXMuc2VsZWN0b3JzLnJlcGxhY2UoXCIjXCIsIFwiXCIpO1xuICAgIH1cbiAgICBzZXQgaWRzKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0b3JzID0gdmFsdWUgaW5zdGFuY2VvZiBBcnJheSA/IHZhbHVlLm1hcCgodCkgPT4gYCMke3R9YCkgOiBgIyR7dmFsdWV9YDtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIHN1cGVyLmxvYWQoZGF0YSk7XG4gICAgICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5pZHMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5pZHMgPSBkYXRhLmlkcztcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5zZWxlY3RvcnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RvcnMgPSBkYXRhLnNlbGVjdG9ycztcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuQnViYmxlRGl2ID0gQnViYmxlRGl2O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Modes/BubbleDiv.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Connect.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Connect.js ***! + \*********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Connect = void 0;\nconst ConnectLinks_1 = __webpack_require__(/*! ./ConnectLinks */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/ConnectLinks.js\");\nclass Connect {\n constructor() {\n this.distance = 80;\n this.links = new ConnectLinks_1.ConnectLinks();\n this.radius = 60;\n }\n get line_linked() {\n return this.links;\n }\n set line_linked(value) {\n this.links = value;\n }\n get lineLinked() {\n return this.links;\n }\n set lineLinked(value) {\n this.links = value;\n }\n load(data) {\n var _a, _b;\n if (data === undefined) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n this.links.load((_b = (_a = data.links) !== null && _a !== void 0 ? _a : data.lineLinked) !== null && _b !== void 0 ? _b : data.line_linked);\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n }\n}\nexports.Connect = Connect;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvQ29ubmVjdC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxlQUFlO0FBQ2YsdUJBQXVCLG1CQUFPLENBQUMsc0dBQWdCO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvSW50ZXJhY3Rpdml0eS9Nb2Rlcy9Db25uZWN0LmpzPzJjNzAiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkNvbm5lY3QgPSB2b2lkIDA7XG5jb25zdCBDb25uZWN0TGlua3NfMSA9IHJlcXVpcmUoXCIuL0Nvbm5lY3RMaW5rc1wiKTtcbmNsYXNzIENvbm5lY3Qge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmRpc3RhbmNlID0gODA7XG4gICAgICAgIHRoaXMubGlua3MgPSBuZXcgQ29ubmVjdExpbmtzXzEuQ29ubmVjdExpbmtzKCk7XG4gICAgICAgIHRoaXMucmFkaXVzID0gNjA7XG4gICAgfVxuICAgIGdldCBsaW5lX2xpbmtlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGlua3M7XG4gICAgfVxuICAgIHNldCBsaW5lX2xpbmtlZCh2YWx1ZSkge1xuICAgICAgICB0aGlzLmxpbmtzID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBsaW5lTGlua2VkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5saW5rcztcbiAgICB9XG4gICAgc2V0IGxpbmVMaW5rZWQodmFsdWUpIHtcbiAgICAgICAgdGhpcy5saW5rcyA9IHZhbHVlO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmRpc3RhbmNlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzdGFuY2UgPSBkYXRhLmRpc3RhbmNlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubGlua3MubG9hZCgoX2IgPSAoX2EgPSBkYXRhLmxpbmtzKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBkYXRhLmxpbmVMaW5rZWQpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IGRhdGEubGluZV9saW5rZWQpO1xuICAgICAgICBpZiAoZGF0YS5yYWRpdXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5yYWRpdXMgPSBkYXRhLnJhZGl1cztcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuQ29ubmVjdCA9IENvbm5lY3Q7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Connect.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Modes/ConnectLinks.js": +/*!**************************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Modes/ConnectLinks.js ***! + \**************************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ConnectLinks = void 0;\nclass ConnectLinks {\n constructor() {\n this.opacity = 0.5;\n }\n load(data) {\n if (!(data !== undefined && data.opacity !== undefined)) {\n return;\n }\n this.opacity = data.opacity;\n }\n}\nexports.ConnectLinks = ConnectLinks;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvQ29ubmVjdExpbmtzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELG9CQUFvQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvSW50ZXJhY3Rpdml0eS9Nb2Rlcy9Db25uZWN0TGlua3MuanM/NzQwYSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuQ29ubmVjdExpbmtzID0gdm9pZCAwO1xuY2xhc3MgQ29ubmVjdExpbmtzIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5vcGFjaXR5ID0gMC41O1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKCEoZGF0YSAhPT0gdW5kZWZpbmVkICYmIGRhdGEub3BhY2l0eSAhPT0gdW5kZWZpbmVkKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub3BhY2l0eSA9IGRhdGEub3BhY2l0eTtcbiAgICB9XG59XG5leHBvcnRzLkNvbm5lY3RMaW5rcyA9IENvbm5lY3RMaW5rcztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Modes/ConnectLinks.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Grab.js": +/*!******************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Grab.js ***! + \******************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Grab = void 0;\nconst GrabLinks_1 = __webpack_require__(/*! ./GrabLinks */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/GrabLinks.js\");\nclass Grab {\n constructor() {\n this.distance = 100;\n this.links = new GrabLinks_1.GrabLinks();\n }\n get line_linked() {\n return this.links;\n }\n set line_linked(value) {\n this.links = value;\n }\n get lineLinked() {\n return this.links;\n }\n set lineLinked(value) {\n this.links = value;\n }\n load(data) {\n var _a, _b;\n if (data === undefined) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n this.links.load((_b = (_a = data.links) !== null && _a !== void 0 ? _a : data.lineLinked) !== null && _b !== void 0 ? _b : data.line_linked);\n }\n}\nexports.Grab = Grab;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvR3JhYi5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxZQUFZO0FBQ1osb0JBQW9CLG1CQUFPLENBQUMsZ0dBQWE7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvSW50ZXJhY3Rpdml0eS9Nb2Rlcy9HcmFiLmpzP2RiZGUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkdyYWIgPSB2b2lkIDA7XG5jb25zdCBHcmFiTGlua3NfMSA9IHJlcXVpcmUoXCIuL0dyYWJMaW5rc1wiKTtcbmNsYXNzIEdyYWIge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmRpc3RhbmNlID0gMTAwO1xuICAgICAgICB0aGlzLmxpbmtzID0gbmV3IEdyYWJMaW5rc18xLkdyYWJMaW5rcygpO1xuICAgIH1cbiAgICBnZXQgbGluZV9saW5rZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxpbmtzO1xuICAgIH1cbiAgICBzZXQgbGluZV9saW5rZWQodmFsdWUpIHtcbiAgICAgICAgdGhpcy5saW5rcyA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgbGluZUxpbmtlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGlua3M7XG4gICAgfVxuICAgIHNldCBsaW5lTGlua2VkKHZhbHVlKSB7XG4gICAgICAgIHRoaXMubGlua3MgPSB2YWx1ZTtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5kaXN0YW5jZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmRpc3RhbmNlID0gZGF0YS5kaXN0YW5jZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxpbmtzLmxvYWQoKF9iID0gKF9hID0gZGF0YS5saW5rcykgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogZGF0YS5saW5lTGlua2VkKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBkYXRhLmxpbmVfbGlua2VkKTtcbiAgICB9XG59XG5leHBvcnRzLkdyYWIgPSBHcmFiO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Grab.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Modes/GrabLinks.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Modes/GrabLinks.js ***! + \***********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.GrabLinks = void 0;\nconst OptionsColor_1 = __webpack_require__(/*! ../../OptionsColor */ \"./node_modules/tsparticles/Options/Classes/OptionsColor.js\");\nclass GrabLinks {\n constructor() {\n this.blink = false;\n this.consent = false;\n this.opacity = 1;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.blink !== undefined) {\n this.blink = data.blink;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor_1.OptionsColor.create(this.color, data.color);\n }\n if (data.consent !== undefined) {\n this.consent = data.consent;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\nexports.GrabLinks = GrabLinks;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvR3JhYkxpbmtzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGlCQUFpQjtBQUNqQix1QkFBdUIsbUJBQU8sQ0FBQyxzRkFBb0I7QUFDbkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvSW50ZXJhY3Rpdml0eS9Nb2Rlcy9HcmFiTGlua3MuanM/MWQzZCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuR3JhYkxpbmtzID0gdm9pZCAwO1xuY29uc3QgT3B0aW9uc0NvbG9yXzEgPSByZXF1aXJlKFwiLi4vLi4vT3B0aW9uc0NvbG9yXCIpO1xuY2xhc3MgR3JhYkxpbmtzIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5ibGluayA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNvbnNlbnQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5vcGFjaXR5ID0gMTtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5ibGluayAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmJsaW5rID0gZGF0YS5ibGluaztcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5jb2xvciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbG9yID0gT3B0aW9uc0NvbG9yXzEuT3B0aW9uc0NvbG9yLmNyZWF0ZSh0aGlzLmNvbG9yLCBkYXRhLmNvbG9yKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5jb25zZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29uc2VudCA9IGRhdGEuY29uc2VudDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5vcGFjaXR5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMub3BhY2l0eSA9IGRhdGEub3BhY2l0eTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuR3JhYkxpbmtzID0gR3JhYkxpbmtzO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Modes/GrabLinks.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Light.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Light.js ***! + \*******************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Light = void 0;\nconst LightArea_1 = __webpack_require__(/*! ./LightArea */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/LightArea.js\");\nconst LightShadow_1 = __webpack_require__(/*! ./LightShadow */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/LightShadow.js\");\nclass Light {\n constructor() {\n this.area = new LightArea_1.LightArea();\n this.shadow = new LightShadow_1.LightShadow();\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n this.area.load(data.area);\n this.shadow.load(data.shadow);\n }\n}\nexports.Light = Light;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvTGlnaHQuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsYUFBYTtBQUNiLG9CQUFvQixtQkFBTyxDQUFDLGdHQUFhO0FBQ3pDLHNCQUFzQixtQkFBTyxDQUFDLG9HQUFlO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvTGlnaHQuanM/NWNmOCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuTGlnaHQgPSB2b2lkIDA7XG5jb25zdCBMaWdodEFyZWFfMSA9IHJlcXVpcmUoXCIuL0xpZ2h0QXJlYVwiKTtcbmNvbnN0IExpZ2h0U2hhZG93XzEgPSByZXF1aXJlKFwiLi9MaWdodFNoYWRvd1wiKTtcbmNsYXNzIExpZ2h0IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5hcmVhID0gbmV3IExpZ2h0QXJlYV8xLkxpZ2h0QXJlYSgpO1xuICAgICAgICB0aGlzLnNoYWRvdyA9IG5ldyBMaWdodFNoYWRvd18xLkxpZ2h0U2hhZG93KCk7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hcmVhLmxvYWQoZGF0YS5hcmVhKTtcbiAgICAgICAgdGhpcy5zaGFkb3cubG9hZChkYXRhLnNoYWRvdyk7XG4gICAgfVxufVxuZXhwb3J0cy5MaWdodCA9IExpZ2h0O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Light.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Modes/LightArea.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Modes/LightArea.js ***! + \***********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.LightArea = void 0;\nconst LightGradient_1 = __webpack_require__(/*! ./LightGradient */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/LightGradient.js\");\nclass LightArea {\n constructor() {\n this.gradient = new LightGradient_1.LightGradient();\n this.radius = 1000;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n this.gradient.load(data.gradient);\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n }\n}\nexports.LightArea = LightArea;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvTGlnaHRBcmVhLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGlCQUFpQjtBQUNqQix3QkFBd0IsbUJBQU8sQ0FBQyx3R0FBaUI7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvSW50ZXJhY3Rpdml0eS9Nb2Rlcy9MaWdodEFyZWEuanM/OTU0MiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuTGlnaHRBcmVhID0gdm9pZCAwO1xuY29uc3QgTGlnaHRHcmFkaWVudF8xID0gcmVxdWlyZShcIi4vTGlnaHRHcmFkaWVudFwiKTtcbmNsYXNzIExpZ2h0QXJlYSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuZ3JhZGllbnQgPSBuZXcgTGlnaHRHcmFkaWVudF8xLkxpZ2h0R3JhZGllbnQoKTtcbiAgICAgICAgdGhpcy5yYWRpdXMgPSAxMDAwO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZ3JhZGllbnQubG9hZChkYXRhLmdyYWRpZW50KTtcbiAgICAgICAgaWYgKGRhdGEucmFkaXVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMucmFkaXVzID0gZGF0YS5yYWRpdXM7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkxpZ2h0QXJlYSA9IExpZ2h0QXJlYTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Modes/LightArea.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Modes/LightGradient.js": +/*!***************************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Modes/LightGradient.js ***! + \***************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.LightGradient = void 0;\nconst OptionsColor_1 = __webpack_require__(/*! ../../OptionsColor */ \"./node_modules/tsparticles/Options/Classes/OptionsColor.js\");\nclass LightGradient {\n constructor() {\n this.start = new OptionsColor_1.OptionsColor();\n this.stop = new OptionsColor_1.OptionsColor();\n this.start.value = \"#ffffff\";\n this.stop.value = \"#000000\";\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n this.start = OptionsColor_1.OptionsColor.create(this.start, data.start);\n this.stop = OptionsColor_1.OptionsColor.create(this.stop, data.stop);\n }\n}\nexports.LightGradient = LightGradient;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvTGlnaHRHcmFkaWVudC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxxQkFBcUI7QUFDckIsdUJBQXVCLG1CQUFPLENBQUMsc0ZBQW9CO0FBQ25EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvTGlnaHRHcmFkaWVudC5qcz81MTg5Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5MaWdodEdyYWRpZW50ID0gdm9pZCAwO1xuY29uc3QgT3B0aW9uc0NvbG9yXzEgPSByZXF1aXJlKFwiLi4vLi4vT3B0aW9uc0NvbG9yXCIpO1xuY2xhc3MgTGlnaHRHcmFkaWVudCB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuc3RhcnQgPSBuZXcgT3B0aW9uc0NvbG9yXzEuT3B0aW9uc0NvbG9yKCk7XG4gICAgICAgIHRoaXMuc3RvcCA9IG5ldyBPcHRpb25zQ29sb3JfMS5PcHRpb25zQ29sb3IoKTtcbiAgICAgICAgdGhpcy5zdGFydC52YWx1ZSA9IFwiI2ZmZmZmZlwiO1xuICAgICAgICB0aGlzLnN0b3AudmFsdWUgPSBcIiMwMDAwMDBcIjtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN0YXJ0ID0gT3B0aW9uc0NvbG9yXzEuT3B0aW9uc0NvbG9yLmNyZWF0ZSh0aGlzLnN0YXJ0LCBkYXRhLnN0YXJ0KTtcbiAgICAgICAgdGhpcy5zdG9wID0gT3B0aW9uc0NvbG9yXzEuT3B0aW9uc0NvbG9yLmNyZWF0ZSh0aGlzLnN0b3AsIGRhdGEuc3RvcCk7XG4gICAgfVxufVxuZXhwb3J0cy5MaWdodEdyYWRpZW50ID0gTGlnaHRHcmFkaWVudDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Modes/LightGradient.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Modes/LightShadow.js": +/*!*************************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Modes/LightShadow.js ***! + \*************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.LightShadow = void 0;\nconst OptionsColor_1 = __webpack_require__(/*! ../../OptionsColor */ \"./node_modules/tsparticles/Options/Classes/OptionsColor.js\");\nclass LightShadow {\n constructor() {\n this.color = new OptionsColor_1.OptionsColor();\n this.color.value = \"#000000\";\n this.length = 2000;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n this.color = OptionsColor_1.OptionsColor.create(this.color, data.color);\n if (data.length !== undefined) {\n this.length = data.length;\n }\n }\n}\nexports.LightShadow = LightShadow;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvTGlnaHRTaGFkb3cuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsbUJBQW1CO0FBQ25CLHVCQUF1QixtQkFBTyxDQUFDLHNGQUFvQjtBQUNuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvTGlnaHRTaGFkb3cuanM/MDdjMyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuTGlnaHRTaGFkb3cgPSB2b2lkIDA7XG5jb25zdCBPcHRpb25zQ29sb3JfMSA9IHJlcXVpcmUoXCIuLi8uLi9PcHRpb25zQ29sb3JcIik7XG5jbGFzcyBMaWdodFNoYWRvdyB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuY29sb3IgPSBuZXcgT3B0aW9uc0NvbG9yXzEuT3B0aW9uc0NvbG9yKCk7XG4gICAgICAgIHRoaXMuY29sb3IudmFsdWUgPSBcIiMwMDAwMDBcIjtcbiAgICAgICAgdGhpcy5sZW5ndGggPSAyMDAwO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY29sb3IgPSBPcHRpb25zQ29sb3JfMS5PcHRpb25zQ29sb3IuY3JlYXRlKHRoaXMuY29sb3IsIGRhdGEuY29sb3IpO1xuICAgICAgICBpZiAoZGF0YS5sZW5ndGggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5sZW5ndGggPSBkYXRhLmxlbmd0aDtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuTGlnaHRTaGFkb3cgPSBMaWdodFNoYWRvdztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Modes/LightShadow.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Modes.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Modes.js ***! + \*******************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Modes = void 0;\nconst Bubble_1 = __webpack_require__(/*! ./Bubble */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Bubble.js\");\nconst Connect_1 = __webpack_require__(/*! ./Connect */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Connect.js\");\nconst Grab_1 = __webpack_require__(/*! ./Grab */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Grab.js\");\nconst Remove_1 = __webpack_require__(/*! ./Remove */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Remove.js\");\nconst Push_1 = __webpack_require__(/*! ./Push */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Push.js\");\nconst Repulse_1 = __webpack_require__(/*! ./Repulse */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Repulse.js\");\nconst Slow_1 = __webpack_require__(/*! ./Slow */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Slow.js\");\nconst Trail_1 = __webpack_require__(/*! ./Trail */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Trail.js\");\nconst Attract_1 = __webpack_require__(/*! ./Attract */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Attract.js\");\nconst Light_1 = __webpack_require__(/*! ./Light */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Light.js\");\nconst Bounce_1 = __webpack_require__(/*! ./Bounce */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Bounce.js\");\nclass Modes {\n constructor() {\n this.attract = new Attract_1.Attract();\n this.bounce = new Bounce_1.Bounce();\n this.bubble = new Bubble_1.Bubble();\n this.connect = new Connect_1.Connect();\n this.grab = new Grab_1.Grab();\n this.light = new Light_1.Light();\n this.push = new Push_1.Push();\n this.remove = new Remove_1.Remove();\n this.repulse = new Repulse_1.Repulse();\n this.slow = new Slow_1.Slow();\n this.trail = new Trail_1.Trail();\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n this.attract.load(data.attract);\n this.bubble.load(data.bubble);\n this.connect.load(data.connect);\n this.grab.load(data.grab);\n this.light.load(data.light);\n this.push.load(data.push);\n this.remove.load(data.remove);\n this.repulse.load(data.repulse);\n this.slow.load(data.slow);\n this.trail.load(data.trail);\n }\n}\nexports.Modes = Modes;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvTW9kZXMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsYUFBYTtBQUNiLGlCQUFpQixtQkFBTyxDQUFDLDBGQUFVO0FBQ25DLGtCQUFrQixtQkFBTyxDQUFDLDRGQUFXO0FBQ3JDLGVBQWUsbUJBQU8sQ0FBQyxzRkFBUTtBQUMvQixpQkFBaUIsbUJBQU8sQ0FBQywwRkFBVTtBQUNuQyxlQUFlLG1CQUFPLENBQUMsc0ZBQVE7QUFDL0Isa0JBQWtCLG1CQUFPLENBQUMsNEZBQVc7QUFDckMsZUFBZSxtQkFBTyxDQUFDLHNGQUFRO0FBQy9CLGdCQUFnQixtQkFBTyxDQUFDLHdGQUFTO0FBQ2pDLGtCQUFrQixtQkFBTyxDQUFDLDRGQUFXO0FBQ3JDLGdCQUFnQixtQkFBTyxDQUFDLHdGQUFTO0FBQ2pDLGlCQUFpQixtQkFBTyxDQUFDLDBGQUFVO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9JbnRlcmFjdGl2aXR5L01vZGVzL01vZGVzLmpzPzE3OTgiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLk1vZGVzID0gdm9pZCAwO1xuY29uc3QgQnViYmxlXzEgPSByZXF1aXJlKFwiLi9CdWJibGVcIik7XG5jb25zdCBDb25uZWN0XzEgPSByZXF1aXJlKFwiLi9Db25uZWN0XCIpO1xuY29uc3QgR3JhYl8xID0gcmVxdWlyZShcIi4vR3JhYlwiKTtcbmNvbnN0IFJlbW92ZV8xID0gcmVxdWlyZShcIi4vUmVtb3ZlXCIpO1xuY29uc3QgUHVzaF8xID0gcmVxdWlyZShcIi4vUHVzaFwiKTtcbmNvbnN0IFJlcHVsc2VfMSA9IHJlcXVpcmUoXCIuL1JlcHVsc2VcIik7XG5jb25zdCBTbG93XzEgPSByZXF1aXJlKFwiLi9TbG93XCIpO1xuY29uc3QgVHJhaWxfMSA9IHJlcXVpcmUoXCIuL1RyYWlsXCIpO1xuY29uc3QgQXR0cmFjdF8xID0gcmVxdWlyZShcIi4vQXR0cmFjdFwiKTtcbmNvbnN0IExpZ2h0XzEgPSByZXF1aXJlKFwiLi9MaWdodFwiKTtcbmNvbnN0IEJvdW5jZV8xID0gcmVxdWlyZShcIi4vQm91bmNlXCIpO1xuY2xhc3MgTW9kZXMge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmF0dHJhY3QgPSBuZXcgQXR0cmFjdF8xLkF0dHJhY3QoKTtcbiAgICAgICAgdGhpcy5ib3VuY2UgPSBuZXcgQm91bmNlXzEuQm91bmNlKCk7XG4gICAgICAgIHRoaXMuYnViYmxlID0gbmV3IEJ1YmJsZV8xLkJ1YmJsZSgpO1xuICAgICAgICB0aGlzLmNvbm5lY3QgPSBuZXcgQ29ubmVjdF8xLkNvbm5lY3QoKTtcbiAgICAgICAgdGhpcy5ncmFiID0gbmV3IEdyYWJfMS5HcmFiKCk7XG4gICAgICAgIHRoaXMubGlnaHQgPSBuZXcgTGlnaHRfMS5MaWdodCgpO1xuICAgICAgICB0aGlzLnB1c2ggPSBuZXcgUHVzaF8xLlB1c2goKTtcbiAgICAgICAgdGhpcy5yZW1vdmUgPSBuZXcgUmVtb3ZlXzEuUmVtb3ZlKCk7XG4gICAgICAgIHRoaXMucmVwdWxzZSA9IG5ldyBSZXB1bHNlXzEuUmVwdWxzZSgpO1xuICAgICAgICB0aGlzLnNsb3cgPSBuZXcgU2xvd18xLlNsb3coKTtcbiAgICAgICAgdGhpcy50cmFpbCA9IG5ldyBUcmFpbF8xLlRyYWlsKCk7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hdHRyYWN0LmxvYWQoZGF0YS5hdHRyYWN0KTtcbiAgICAgICAgdGhpcy5idWJibGUubG9hZChkYXRhLmJ1YmJsZSk7XG4gICAgICAgIHRoaXMuY29ubmVjdC5sb2FkKGRhdGEuY29ubmVjdCk7XG4gICAgICAgIHRoaXMuZ3JhYi5sb2FkKGRhdGEuZ3JhYik7XG4gICAgICAgIHRoaXMubGlnaHQubG9hZChkYXRhLmxpZ2h0KTtcbiAgICAgICAgdGhpcy5wdXNoLmxvYWQoZGF0YS5wdXNoKTtcbiAgICAgICAgdGhpcy5yZW1vdmUubG9hZChkYXRhLnJlbW92ZSk7XG4gICAgICAgIHRoaXMucmVwdWxzZS5sb2FkKGRhdGEucmVwdWxzZSk7XG4gICAgICAgIHRoaXMuc2xvdy5sb2FkKGRhdGEuc2xvdyk7XG4gICAgICAgIHRoaXMudHJhaWwubG9hZChkYXRhLnRyYWlsKTtcbiAgICB9XG59XG5leHBvcnRzLk1vZGVzID0gTW9kZXM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Modes.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Push.js": +/*!******************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Push.js ***! + \******************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Push = void 0;\nclass Push {\n constructor() {\n this.default = true;\n this.groups = [];\n this.quantity = 4;\n }\n get particles_nb() {\n return this.quantity;\n }\n set particles_nb(value) {\n this.quantity = value;\n }\n load(data) {\n var _a;\n if (data === undefined) {\n return;\n }\n if (data.default !== undefined) {\n this.default = data.default;\n }\n if (data.groups !== undefined) {\n this.groups = data.groups.map((t) => t);\n }\n if (!this.groups.length) {\n this.default = true;\n }\n const quantity = (_a = data.quantity) !== null && _a !== void 0 ? _a : data.particles_nb;\n if (quantity !== undefined) {\n this.quantity = quantity;\n }\n }\n}\nexports.Push = Push;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvUHVzaC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVkiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9JbnRlcmFjdGl2aXR5L01vZGVzL1B1c2guanM/NzJhZSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuUHVzaCA9IHZvaWQgMDtcbmNsYXNzIFB1c2gge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmRlZmF1bHQgPSB0cnVlO1xuICAgICAgICB0aGlzLmdyb3VwcyA9IFtdO1xuICAgICAgICB0aGlzLnF1YW50aXR5ID0gNDtcbiAgICB9XG4gICAgZ2V0IHBhcnRpY2xlc19uYigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucXVhbnRpdHk7XG4gICAgfVxuICAgIHNldCBwYXJ0aWNsZXNfbmIodmFsdWUpIHtcbiAgICAgICAgdGhpcy5xdWFudGl0eSA9IHZhbHVlO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZGVmYXVsdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmRlZmF1bHQgPSBkYXRhLmRlZmF1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZ3JvdXBzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZ3JvdXBzID0gZGF0YS5ncm91cHMubWFwKCh0KSA9PiB0KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuZ3JvdXBzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5kZWZhdWx0ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBxdWFudGl0eSA9IChfYSA9IGRhdGEucXVhbnRpdHkpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGRhdGEucGFydGljbGVzX25iO1xuICAgICAgICBpZiAocXVhbnRpdHkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5xdWFudGl0eSA9IHF1YW50aXR5O1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5QdXNoID0gUHVzaDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Push.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Remove.js": +/*!********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Remove.js ***! + \********************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Remove = void 0;\nclass Remove {\n constructor() {\n this.quantity = 2;\n }\n get particles_nb() {\n return this.quantity;\n }\n set particles_nb(value) {\n this.quantity = value;\n }\n load(data) {\n var _a;\n if (data === undefined) {\n return;\n }\n const quantity = (_a = data.quantity) !== null && _a !== void 0 ? _a : data.particles_nb;\n if (quantity !== undefined) {\n this.quantity = quantity;\n }\n }\n}\nexports.Remove = Remove;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvUmVtb3ZlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvSW50ZXJhY3Rpdml0eS9Nb2Rlcy9SZW1vdmUuanM/MjgxOSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuUmVtb3ZlID0gdm9pZCAwO1xuY2xhc3MgUmVtb3ZlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5xdWFudGl0eSA9IDI7XG4gICAgfVxuICAgIGdldCBwYXJ0aWNsZXNfbmIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnF1YW50aXR5O1xuICAgIH1cbiAgICBzZXQgcGFydGljbGVzX25iKHZhbHVlKSB7XG4gICAgICAgIHRoaXMucXVhbnRpdHkgPSB2YWx1ZTtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHF1YW50aXR5ID0gKF9hID0gZGF0YS5xdWFudGl0eSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogZGF0YS5wYXJ0aWNsZXNfbmI7XG4gICAgICAgIGlmIChxdWFudGl0eSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnF1YW50aXR5ID0gcXVhbnRpdHk7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLlJlbW92ZSA9IFJlbW92ZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Remove.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Repulse.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Repulse.js ***! + \*********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Repulse = void 0;\nconst RepulseDiv_1 = __webpack_require__(/*! ./RepulseDiv */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/RepulseDiv.js\");\nconst RepulseBase_1 = __webpack_require__(/*! ./RepulseBase */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/RepulseBase.js\");\nclass Repulse extends RepulseBase_1.RepulseBase {\n load(data) {\n super.load(data);\n if ((data === null || data === void 0 ? void 0 : data.divs) === undefined) {\n return;\n }\n if (data.divs instanceof Array) {\n this.divs = data.divs.map((s) => {\n const tmp = new RepulseDiv_1.RepulseDiv();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.divs instanceof Array || !this.divs) {\n this.divs = new RepulseDiv_1.RepulseDiv();\n }\n this.divs.load(data.divs);\n }\n }\n}\nexports.Repulse = Repulse;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvUmVwdWxzZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxlQUFlO0FBQ2YscUJBQXFCLG1CQUFPLENBQUMsa0dBQWM7QUFDM0Msc0JBQXNCLG1CQUFPLENBQUMsb0dBQWU7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvSW50ZXJhY3Rpdml0eS9Nb2Rlcy9SZXB1bHNlLmpzPzM1OTIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlJlcHVsc2UgPSB2b2lkIDA7XG5jb25zdCBSZXB1bHNlRGl2XzEgPSByZXF1aXJlKFwiLi9SZXB1bHNlRGl2XCIpO1xuY29uc3QgUmVwdWxzZUJhc2VfMSA9IHJlcXVpcmUoXCIuL1JlcHVsc2VCYXNlXCIpO1xuY2xhc3MgUmVwdWxzZSBleHRlbmRzIFJlcHVsc2VCYXNlXzEuUmVwdWxzZUJhc2Uge1xuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBzdXBlci5sb2FkKGRhdGEpO1xuICAgICAgICBpZiAoKGRhdGEgPT09IG51bGwgfHwgZGF0YSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZGF0YS5kaXZzKSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZGl2cyBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICB0aGlzLmRpdnMgPSBkYXRhLmRpdnMubWFwKChzKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdG1wID0gbmV3IFJlcHVsc2VEaXZfMS5SZXB1bHNlRGl2KCk7XG4gICAgICAgICAgICAgICAgdG1wLmxvYWQocyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRtcDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuZGl2cyBpbnN0YW5jZW9mIEFycmF5IHx8ICF0aGlzLmRpdnMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRpdnMgPSBuZXcgUmVwdWxzZURpdl8xLlJlcHVsc2VEaXYoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZGl2cy5sb2FkKGRhdGEuZGl2cyk7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLlJlcHVsc2UgPSBSZXB1bHNlO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Repulse.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Modes/RepulseBase.js": +/*!*************************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Modes/RepulseBase.js ***! + \*************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.RepulseBase = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nclass RepulseBase {\n constructor() {\n this.distance = 200;\n this.duration = 0.4;\n this.factor = 100;\n this.speed = 1;\n this.maxSpeed = 50;\n this.easing = Enums_1.EasingType.easeOutQuad;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n if (data.easing !== undefined) {\n this.easing = data.easing;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n if (data.maxSpeed !== undefined) {\n this.maxSpeed = data.maxSpeed;\n }\n }\n}\nexports.RepulseBase = RepulseBase;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvUmVwdWxzZUJhc2UuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsbUJBQW1CO0FBQ25CLGdCQUFnQixtQkFBTyxDQUFDLG9FQUFtQjtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9JbnRlcmFjdGl2aXR5L01vZGVzL1JlcHVsc2VCYXNlLmpzP2ZlNmEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlJlcHVsc2VCYXNlID0gdm9pZCAwO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuLi8uLi8uLi8uLi9FbnVtc1wiKTtcbmNsYXNzIFJlcHVsc2VCYXNlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5kaXN0YW5jZSA9IDIwMDtcbiAgICAgICAgdGhpcy5kdXJhdGlvbiA9IDAuNDtcbiAgICAgICAgdGhpcy5mYWN0b3IgPSAxMDA7XG4gICAgICAgIHRoaXMuc3BlZWQgPSAxO1xuICAgICAgICB0aGlzLm1heFNwZWVkID0gNTA7XG4gICAgICAgIHRoaXMuZWFzaW5nID0gRW51bXNfMS5FYXNpbmdUeXBlLmVhc2VPdXRRdWFkO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZGlzdGFuY2UgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5kaXN0YW5jZSA9IGRhdGEuZGlzdGFuY2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZHVyYXRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5kdXJhdGlvbiA9IGRhdGEuZHVyYXRpb247XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZWFzaW5nICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZWFzaW5nID0gZGF0YS5lYXNpbmc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZmFjdG9yICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZmFjdG9yID0gZGF0YS5mYWN0b3I7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuc3BlZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5zcGVlZCA9IGRhdGEuc3BlZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEubWF4U3BlZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5tYXhTcGVlZCA9IGRhdGEubWF4U3BlZWQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLlJlcHVsc2VCYXNlID0gUmVwdWxzZUJhc2U7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Modes/RepulseBase.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Modes/RepulseDiv.js": +/*!************************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Modes/RepulseDiv.js ***! + \************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.RepulseDiv = void 0;\nconst RepulseBase_1 = __webpack_require__(/*! ./RepulseBase */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Modes/RepulseBase.js\");\nclass RepulseDiv extends RepulseBase_1.RepulseBase {\n constructor() {\n super();\n this.selectors = [];\n }\n get ids() {\n if (this.selectors instanceof Array) {\n return this.selectors.map((t) => t.replace(\"#\", \"\"));\n }\n else {\n return this.selectors.replace(\"#\", \"\");\n }\n }\n set ids(value) {\n if (value instanceof Array) {\n this.selectors = value.map(() => `#${value}`);\n }\n else {\n this.selectors = `#${value}`;\n }\n }\n load(data) {\n super.load(data);\n if (data === undefined) {\n return;\n }\n if (data.ids !== undefined) {\n this.ids = data.ids;\n }\n if (data.selectors !== undefined) {\n this.selectors = data.selectors;\n }\n }\n}\nexports.RepulseDiv = RepulseDiv;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvUmVwdWxzZURpdi5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxrQkFBa0I7QUFDbEIsc0JBQXNCLG1CQUFPLENBQUMsb0dBQWU7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaURBQWlELE1BQU07QUFDdkQ7QUFDQTtBQUNBLGlDQUFpQyxNQUFNO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvUmVwdWxzZURpdi5qcz9jNWQ5Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5SZXB1bHNlRGl2ID0gdm9pZCAwO1xuY29uc3QgUmVwdWxzZUJhc2VfMSA9IHJlcXVpcmUoXCIuL1JlcHVsc2VCYXNlXCIpO1xuY2xhc3MgUmVwdWxzZURpdiBleHRlbmRzIFJlcHVsc2VCYXNlXzEuUmVwdWxzZUJhc2Uge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnNlbGVjdG9ycyA9IFtdO1xuICAgIH1cbiAgICBnZXQgaWRzKCkge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RvcnMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0b3JzLm1hcCgodCkgPT4gdC5yZXBsYWNlKFwiI1wiLCBcIlwiKSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RvcnMucmVwbGFjZShcIiNcIiwgXCJcIik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc2V0IGlkcyh2YWx1ZSkge1xuICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RvcnMgPSB2YWx1ZS5tYXAoKCkgPT4gYCMke3ZhbHVlfWApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RvcnMgPSBgIyR7dmFsdWV9YDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgc3VwZXIubG9hZChkYXRhKTtcbiAgICAgICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmlkcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmlkcyA9IGRhdGEuaWRzO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnNlbGVjdG9ycyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdG9ycyA9IGRhdGEuc2VsZWN0b3JzO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5SZXB1bHNlRGl2ID0gUmVwdWxzZURpdjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Modes/RepulseDiv.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Slow.js": +/*!******************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Slow.js ***! + \******************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Slow = void 0;\nclass Slow {\n constructor() {\n this.factor = 3;\n this.radius = 200;\n }\n get active() {\n return false;\n }\n set active(_value) {\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n }\n}\nexports.Slow = Slow;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvU2xvdy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvSW50ZXJhY3Rpdml0eS9Nb2Rlcy9TbG93LmpzPzM1MGUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlNsb3cgPSB2b2lkIDA7XG5jbGFzcyBTbG93IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5mYWN0b3IgPSAzO1xuICAgICAgICB0aGlzLnJhZGl1cyA9IDIwMDtcbiAgICB9XG4gICAgZ2V0IGFjdGl2ZSgpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBzZXQgYWN0aXZlKF92YWx1ZSkge1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmZhY3RvciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmZhY3RvciA9IGRhdGEuZmFjdG9yO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnJhZGl1cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnJhZGl1cyA9IGRhdGEucmFkaXVzO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5TbG93ID0gU2xvdztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Slow.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Trail.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Trail.js ***! + \*******************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Trail = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass Trail {\n constructor() {\n this.delay = 1;\n this.pauseOnStop = false;\n this.quantity = 1;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.delay !== undefined) {\n this.delay = data.delay;\n }\n if (data.quantity !== undefined) {\n this.quantity = data.quantity;\n }\n if (data.particles !== undefined) {\n this.particles = (0, Utils_1.deepExtend)({}, data.particles);\n }\n if (data.pauseOnStop !== undefined) {\n this.pauseOnStop = data.pauseOnStop;\n }\n }\n}\nexports.Trail = Trail;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL0ludGVyYWN0aXZpdHkvTW9kZXMvVHJhaWwuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsYUFBYTtBQUNiLGdCQUFnQixtQkFBTyxDQUFDLG9FQUFtQjtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdURBQXVEO0FBQ3ZEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9JbnRlcmFjdGl2aXR5L01vZGVzL1RyYWlsLmpzPzcyYzciXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlRyYWlsID0gdm9pZCAwO1xuY29uc3QgVXRpbHNfMSA9IHJlcXVpcmUoXCIuLi8uLi8uLi8uLi9VdGlsc1wiKTtcbmNsYXNzIFRyYWlsIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5kZWxheSA9IDE7XG4gICAgICAgIHRoaXMucGF1c2VPblN0b3AgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5xdWFudGl0eSA9IDE7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZGVsYXkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5kZWxheSA9IGRhdGEuZGVsYXk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEucXVhbnRpdHkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5xdWFudGl0eSA9IGRhdGEucXVhbnRpdHk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEucGFydGljbGVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMucGFydGljbGVzID0gKDAsIFV0aWxzXzEuZGVlcEV4dGVuZCkoe30sIGRhdGEucGFydGljbGVzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5wYXVzZU9uU3RvcCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnBhdXNlT25TdG9wID0gZGF0YS5wYXVzZU9uU3RvcDtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuVHJhaWwgPSBUcmFpbDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Trail.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/ManualParticle.js": +/*!********************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/ManualParticle.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ManualParticle = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass ManualParticle {\n load(data) {\n var _a, _b;\n if (!data) {\n return;\n }\n if (data.position !== undefined) {\n this.position = {\n x: (_a = data.position.x) !== null && _a !== void 0 ? _a : 50,\n y: (_b = data.position.y) !== null && _b !== void 0 ? _b : 50,\n };\n }\n if (data.options !== undefined) {\n this.options = (0, Utils_1.deepExtend)({}, data.options);\n }\n }\n}\nexports.ManualParticle = ManualParticle;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL01hbnVhbFBhcnRpY2xlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHNCQUFzQjtBQUN0QixnQkFBZ0IsbUJBQU8sQ0FBQyw4REFBYTtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFEQUFxRDtBQUNyRDtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9NYW51YWxQYXJ0aWNsZS5qcz9jNjE2Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5NYW51YWxQYXJ0aWNsZSA9IHZvaWQgMDtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vVXRpbHNcIik7XG5jbGFzcyBNYW51YWxQYXJ0aWNsZSB7XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnBvc2l0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPSB7XG4gICAgICAgICAgICAgICAgeDogKF9hID0gZGF0YS5wb3NpdGlvbi54KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiA1MCxcbiAgICAgICAgICAgICAgICB5OiAoX2IgPSBkYXRhLnBvc2l0aW9uLnkpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IDUwLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5vcHRpb25zICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucyA9ICgwLCBVdGlsc18xLmRlZXBFeHRlbmQpKHt9LCBkYXRhLm9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5NYW51YWxQYXJ0aWNsZSA9IE1hbnVhbFBhcnRpY2xlO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/ManualParticle.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Motion/Motion.js": +/*!*******************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Motion/Motion.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Motion = void 0;\nconst MotionReduce_1 = __webpack_require__(/*! ./MotionReduce */ \"./node_modules/tsparticles/Options/Classes/Motion/MotionReduce.js\");\nclass Motion {\n constructor() {\n this.disable = false;\n this.reduce = new MotionReduce_1.MotionReduce();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.disable !== undefined) {\n this.disable = data.disable;\n }\n this.reduce.load(data.reduce);\n }\n}\nexports.Motion = Motion;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL01vdGlvbi9Nb3Rpb24uanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsY0FBYztBQUNkLHVCQUF1QixtQkFBTyxDQUFDLHlGQUFnQjtBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvTW90aW9uL01vdGlvbi5qcz8wM2UyIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Nb3Rpb24gPSB2b2lkIDA7XG5jb25zdCBNb3Rpb25SZWR1Y2VfMSA9IHJlcXVpcmUoXCIuL01vdGlvblJlZHVjZVwiKTtcbmNsYXNzIE1vdGlvbiB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuZGlzYWJsZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnJlZHVjZSA9IG5ldyBNb3Rpb25SZWR1Y2VfMS5Nb3Rpb25SZWR1Y2UoKTtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmRpc2FibGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5kaXNhYmxlID0gZGF0YS5kaXNhYmxlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVkdWNlLmxvYWQoZGF0YS5yZWR1Y2UpO1xuICAgIH1cbn1cbmV4cG9ydHMuTW90aW9uID0gTW90aW9uO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Motion/Motion.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Motion/MotionReduce.js": +/*!*************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Motion/MotionReduce.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.MotionReduce = void 0;\nclass MotionReduce {\n constructor() {\n this.factor = 4;\n this.value = true;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n if (data.value !== undefined) {\n this.value = data.value;\n }\n }\n}\nexports.MotionReduce = MotionReduce;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL01vdGlvbi9Nb3Rpb25SZWR1Y2UuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9Nb3Rpb24vTW90aW9uUmVkdWNlLmpzPzBiNGYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLk1vdGlvblJlZHVjZSA9IHZvaWQgMDtcbmNsYXNzIE1vdGlvblJlZHVjZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuZmFjdG9yID0gNDtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHRydWU7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5mYWN0b3IgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5mYWN0b3IgPSBkYXRhLmZhY3RvcjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gZGF0YS52YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuTW90aW9uUmVkdWNlID0gTW90aW9uUmVkdWNlO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Motion/MotionReduce.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Options.js": +/*!*************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Options.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Options_instances, _Options_findDefaultTheme;\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Options = void 0;\nconst Interactivity_1 = __webpack_require__(/*! ./Interactivity/Interactivity */ \"./node_modules/tsparticles/Options/Classes/Interactivity/Interactivity.js\");\nconst ParticlesOptions_1 = __webpack_require__(/*! ./Particles/ParticlesOptions */ \"./node_modules/tsparticles/Options/Classes/Particles/ParticlesOptions.js\");\nconst BackgroundMask_1 = __webpack_require__(/*! ./BackgroundMask/BackgroundMask */ \"./node_modules/tsparticles/Options/Classes/BackgroundMask/BackgroundMask.js\");\nconst Background_1 = __webpack_require__(/*! ./Background/Background */ \"./node_modules/tsparticles/Options/Classes/Background/Background.js\");\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Theme_1 = __webpack_require__(/*! ./Theme/Theme */ \"./node_modules/tsparticles/Options/Classes/Theme/Theme.js\");\nconst Enums_1 = __webpack_require__(/*! ../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst FullScreen_1 = __webpack_require__(/*! ./FullScreen/FullScreen */ \"./node_modules/tsparticles/Options/Classes/FullScreen/FullScreen.js\");\nconst Motion_1 = __webpack_require__(/*! ./Motion/Motion */ \"./node_modules/tsparticles/Options/Classes/Motion/Motion.js\");\nconst ManualParticle_1 = __webpack_require__(/*! ./ManualParticle */ \"./node_modules/tsparticles/Options/Classes/ManualParticle.js\");\nconst Responsive_1 = __webpack_require__(/*! ./Responsive */ \"./node_modules/tsparticles/Options/Classes/Responsive.js\");\nclass Options {\n constructor() {\n _Options_instances.add(this);\n this.autoPlay = true;\n this.background = new Background_1.Background();\n this.backgroundMask = new BackgroundMask_1.BackgroundMask();\n this.fullScreen = new FullScreen_1.FullScreen();\n this.detectRetina = true;\n this.duration = 0;\n this.fpsLimit = 60;\n this.interactivity = new Interactivity_1.Interactivity();\n this.manualParticles = [];\n this.motion = new Motion_1.Motion();\n this.particles = new ParticlesOptions_1.ParticlesOptions();\n this.pauseOnBlur = true;\n this.pauseOnOutsideViewport = true;\n this.responsive = [];\n this.themes = [];\n this.zLayers = 100;\n }\n get fps_limit() {\n return this.fpsLimit;\n }\n set fps_limit(value) {\n this.fpsLimit = value;\n }\n get retina_detect() {\n return this.detectRetina;\n }\n set retina_detect(value) {\n this.detectRetina = value;\n }\n get backgroundMode() {\n return this.fullScreen;\n }\n set backgroundMode(value) {\n this.fullScreen.load(value);\n }\n load(data) {\n var _a, _b, _c, _d, _e;\n if (data === undefined) {\n return;\n }\n if (data.preset !== undefined) {\n if (data.preset instanceof Array) {\n for (const preset of data.preset) {\n this.importPreset(preset);\n }\n }\n else {\n this.importPreset(data.preset);\n }\n }\n if (data.autoPlay !== undefined) {\n this.autoPlay = data.autoPlay;\n }\n const detectRetina = (_a = data.detectRetina) !== null && _a !== void 0 ? _a : data.retina_detect;\n if (detectRetina !== undefined) {\n this.detectRetina = detectRetina;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n const fpsLimit = (_b = data.fpsLimit) !== null && _b !== void 0 ? _b : data.fps_limit;\n if (fpsLimit !== undefined) {\n this.fpsLimit = fpsLimit;\n }\n if (data.pauseOnBlur !== undefined) {\n this.pauseOnBlur = data.pauseOnBlur;\n }\n if (data.pauseOnOutsideViewport !== undefined) {\n this.pauseOnOutsideViewport = data.pauseOnOutsideViewport;\n }\n if (data.zLayers !== undefined) {\n this.zLayers = data.zLayers;\n }\n this.background.load(data.background);\n const fullScreen = (_c = data.fullScreen) !== null && _c !== void 0 ? _c : data.backgroundMode;\n if (typeof fullScreen === \"boolean\") {\n this.fullScreen.enable = fullScreen;\n }\n else {\n this.fullScreen.load(fullScreen);\n }\n this.backgroundMask.load(data.backgroundMask);\n this.interactivity.load(data.interactivity);\n if (data.manualParticles !== undefined) {\n this.manualParticles = data.manualParticles.map((t) => {\n const tmp = new ManualParticle_1.ManualParticle();\n tmp.load(t);\n return tmp;\n });\n }\n this.motion.load(data.motion);\n this.particles.load(data.particles);\n Utils_1.Plugins.loadOptions(this, data);\n if (data.responsive !== undefined) {\n for (const responsive of data.responsive) {\n const optResponsive = new Responsive_1.Responsive();\n optResponsive.load(responsive);\n this.responsive.push(optResponsive);\n }\n }\n this.responsive.sort((a, b) => a.maxWidth - b.maxWidth);\n if (data.themes !== undefined) {\n for (const theme of data.themes) {\n const optTheme = new Theme_1.Theme();\n optTheme.load(theme);\n this.themes.push(optTheme);\n }\n }\n this.defaultDarkTheme = (_d = __classPrivateFieldGet(this, _Options_instances, \"m\", _Options_findDefaultTheme).call(this, Enums_1.ThemeMode.dark)) === null || _d === void 0 ? void 0 : _d.name;\n this.defaultLightTheme = (_e = __classPrivateFieldGet(this, _Options_instances, \"m\", _Options_findDefaultTheme).call(this, Enums_1.ThemeMode.light)) === null || _e === void 0 ? void 0 : _e.name;\n }\n setTheme(name) {\n if (name) {\n const chosenTheme = this.themes.find((theme) => theme.name === name);\n if (chosenTheme) {\n this.load(chosenTheme.options);\n }\n }\n else {\n const mediaMatch = typeof matchMedia !== \"undefined\" && matchMedia(\"(prefers-color-scheme: dark)\"), clientDarkMode = mediaMatch && mediaMatch.matches, defaultTheme = __classPrivateFieldGet(this, _Options_instances, \"m\", _Options_findDefaultTheme).call(this, clientDarkMode ? Enums_1.ThemeMode.dark : Enums_1.ThemeMode.light);\n if (defaultTheme) {\n this.load(defaultTheme.options);\n }\n }\n }\n setResponsive(width, pxRatio, defaultOptions) {\n this.load(defaultOptions);\n const responsiveOptions = this.responsive.find((t) => t.mode === Enums_1.ResponsiveMode.screen && screen\n ? t.maxWidth * pxRatio > screen.availWidth\n : t.maxWidth * pxRatio > width);\n this.load(responsiveOptions === null || responsiveOptions === void 0 ? void 0 : responsiveOptions.options);\n return responsiveOptions === null || responsiveOptions === void 0 ? void 0 : responsiveOptions.maxWidth;\n }\n importPreset(preset) {\n this.load(Utils_1.Plugins.getPreset(preset));\n }\n}\nexports.Options = Options;\n_Options_instances = new WeakSet(), _Options_findDefaultTheme = function _Options_findDefaultTheme(mode) {\n var _a;\n return ((_a = this.themes.find((theme) => theme.default.value && theme.default.mode === mode)) !== null && _a !== void 0 ? _a : this.themes.find((theme) => theme.default.value && theme.default.mode === Enums_1.ThemeMode.any));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL09wdGlvbnMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsZUFBZTtBQUNmLHdCQUF3QixtQkFBTyxDQUFDLGdIQUErQjtBQUMvRCwyQkFBMkIsbUJBQU8sQ0FBQyw4R0FBOEI7QUFDakUseUJBQXlCLG1CQUFPLENBQUMsb0hBQWlDO0FBQ2xFLHFCQUFxQixtQkFBTyxDQUFDLG9HQUF5QjtBQUN0RCxnQkFBZ0IsbUJBQU8sQ0FBQyw4REFBYTtBQUNyQyxnQkFBZ0IsbUJBQU8sQ0FBQyxnRkFBZTtBQUN2QyxnQkFBZ0IsbUJBQU8sQ0FBQyw4REFBYTtBQUNyQyxxQkFBcUIsbUJBQU8sQ0FBQyxvR0FBeUI7QUFDdEQsaUJBQWlCLG1CQUFPLENBQUMsb0ZBQWlCO0FBQzFDLHlCQUF5QixtQkFBTyxDQUFDLHNGQUFrQjtBQUNuRCxxQkFBcUIsbUJBQU8sQ0FBQyw4RUFBYztBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9PcHRpb25zLmpzPzlmODQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19jbGFzc1ByaXZhdGVGaWVsZEdldCA9ICh0aGlzICYmIHRoaXMuX19jbGFzc1ByaXZhdGVGaWVsZEdldCkgfHwgZnVuY3Rpb24gKHJlY2VpdmVyLCBzdGF0ZSwga2luZCwgZikge1xuICAgIGlmIChraW5kID09PSBcImFcIiAmJiAhZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIGdldHRlclwiKTtcbiAgICBpZiAodHlwZW9mIHN0YXRlID09PSBcImZ1bmN0aW9uXCIgPyByZWNlaXZlciAhPT0gc3RhdGUgfHwgIWYgOiAhc3RhdGUuaGFzKHJlY2VpdmVyKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCByZWFkIHByaXZhdGUgbWVtYmVyIGZyb20gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdFwiKTtcbiAgICByZXR1cm4ga2luZCA9PT0gXCJtXCIgPyBmIDoga2luZCA9PT0gXCJhXCIgPyBmLmNhbGwocmVjZWl2ZXIpIDogZiA/IGYudmFsdWUgOiBzdGF0ZS5nZXQocmVjZWl2ZXIpO1xufTtcbnZhciBfT3B0aW9uc19pbnN0YW5jZXMsIF9PcHRpb25zX2ZpbmREZWZhdWx0VGhlbWU7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLk9wdGlvbnMgPSB2b2lkIDA7XG5jb25zdCBJbnRlcmFjdGl2aXR5XzEgPSByZXF1aXJlKFwiLi9JbnRlcmFjdGl2aXR5L0ludGVyYWN0aXZpdHlcIik7XG5jb25zdCBQYXJ0aWNsZXNPcHRpb25zXzEgPSByZXF1aXJlKFwiLi9QYXJ0aWNsZXMvUGFydGljbGVzT3B0aW9uc1wiKTtcbmNvbnN0IEJhY2tncm91bmRNYXNrXzEgPSByZXF1aXJlKFwiLi9CYWNrZ3JvdW5kTWFzay9CYWNrZ3JvdW5kTWFza1wiKTtcbmNvbnN0IEJhY2tncm91bmRfMSA9IHJlcXVpcmUoXCIuL0JhY2tncm91bmQvQmFja2dyb3VuZFwiKTtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vVXRpbHNcIik7XG5jb25zdCBUaGVtZV8xID0gcmVxdWlyZShcIi4vVGhlbWUvVGhlbWVcIik7XG5jb25zdCBFbnVtc18xID0gcmVxdWlyZShcIi4uLy4uL0VudW1zXCIpO1xuY29uc3QgRnVsbFNjcmVlbl8xID0gcmVxdWlyZShcIi4vRnVsbFNjcmVlbi9GdWxsU2NyZWVuXCIpO1xuY29uc3QgTW90aW9uXzEgPSByZXF1aXJlKFwiLi9Nb3Rpb24vTW90aW9uXCIpO1xuY29uc3QgTWFudWFsUGFydGljbGVfMSA9IHJlcXVpcmUoXCIuL01hbnVhbFBhcnRpY2xlXCIpO1xuY29uc3QgUmVzcG9uc2l2ZV8xID0gcmVxdWlyZShcIi4vUmVzcG9uc2l2ZVwiKTtcbmNsYXNzIE9wdGlvbnMge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBfT3B0aW9uc19pbnN0YW5jZXMuYWRkKHRoaXMpO1xuICAgICAgICB0aGlzLmF1dG9QbGF5ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5iYWNrZ3JvdW5kID0gbmV3IEJhY2tncm91bmRfMS5CYWNrZ3JvdW5kKCk7XG4gICAgICAgIHRoaXMuYmFja2dyb3VuZE1hc2sgPSBuZXcgQmFja2dyb3VuZE1hc2tfMS5CYWNrZ3JvdW5kTWFzaygpO1xuICAgICAgICB0aGlzLmZ1bGxTY3JlZW4gPSBuZXcgRnVsbFNjcmVlbl8xLkZ1bGxTY3JlZW4oKTtcbiAgICAgICAgdGhpcy5kZXRlY3RSZXRpbmEgPSB0cnVlO1xuICAgICAgICB0aGlzLmR1cmF0aW9uID0gMDtcbiAgICAgICAgdGhpcy5mcHNMaW1pdCA9IDYwO1xuICAgICAgICB0aGlzLmludGVyYWN0aXZpdHkgPSBuZXcgSW50ZXJhY3Rpdml0eV8xLkludGVyYWN0aXZpdHkoKTtcbiAgICAgICAgdGhpcy5tYW51YWxQYXJ0aWNsZXMgPSBbXTtcbiAgICAgICAgdGhpcy5tb3Rpb24gPSBuZXcgTW90aW9uXzEuTW90aW9uKCk7XG4gICAgICAgIHRoaXMucGFydGljbGVzID0gbmV3IFBhcnRpY2xlc09wdGlvbnNfMS5QYXJ0aWNsZXNPcHRpb25zKCk7XG4gICAgICAgIHRoaXMucGF1c2VPbkJsdXIgPSB0cnVlO1xuICAgICAgICB0aGlzLnBhdXNlT25PdXRzaWRlVmlld3BvcnQgPSB0cnVlO1xuICAgICAgICB0aGlzLnJlc3BvbnNpdmUgPSBbXTtcbiAgICAgICAgdGhpcy50aGVtZXMgPSBbXTtcbiAgICAgICAgdGhpcy56TGF5ZXJzID0gMTAwO1xuICAgIH1cbiAgICBnZXQgZnBzX2xpbWl0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mcHNMaW1pdDtcbiAgICB9XG4gICAgc2V0IGZwc19saW1pdCh2YWx1ZSkge1xuICAgICAgICB0aGlzLmZwc0xpbWl0ID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCByZXRpbmFfZGV0ZWN0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5kZXRlY3RSZXRpbmE7XG4gICAgfVxuICAgIHNldCByZXRpbmFfZGV0ZWN0KHZhbHVlKSB7XG4gICAgICAgIHRoaXMuZGV0ZWN0UmV0aW5hID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBiYWNrZ3JvdW5kTW9kZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZnVsbFNjcmVlbjtcbiAgICB9XG4gICAgc2V0IGJhY2tncm91bmRNb2RlKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuZnVsbFNjcmVlbi5sb2FkKHZhbHVlKTtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZCwgX2U7XG4gICAgICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5wcmVzZXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKGRhdGEucHJlc2V0IGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHByZXNldCBvZiBkYXRhLnByZXNldCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmltcG9ydFByZXNldChwcmVzZXQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuaW1wb3J0UHJlc2V0KGRhdGEucHJlc2V0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5hdXRvUGxheSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmF1dG9QbGF5ID0gZGF0YS5hdXRvUGxheTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkZXRlY3RSZXRpbmEgPSAoX2EgPSBkYXRhLmRldGVjdFJldGluYSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogZGF0YS5yZXRpbmFfZGV0ZWN0O1xuICAgICAgICBpZiAoZGV0ZWN0UmV0aW5hICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZGV0ZWN0UmV0aW5hID0gZGV0ZWN0UmV0aW5hO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmR1cmF0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZHVyYXRpb24gPSBkYXRhLmR1cmF0aW9uO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZwc0xpbWl0ID0gKF9iID0gZGF0YS5mcHNMaW1pdCkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogZGF0YS5mcHNfbGltaXQ7XG4gICAgICAgIGlmIChmcHNMaW1pdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmZwc0xpbWl0ID0gZnBzTGltaXQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEucGF1c2VPbkJsdXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5wYXVzZU9uQmx1ciA9IGRhdGEucGF1c2VPbkJsdXI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEucGF1c2VPbk91dHNpZGVWaWV3cG9ydCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnBhdXNlT25PdXRzaWRlVmlld3BvcnQgPSBkYXRhLnBhdXNlT25PdXRzaWRlVmlld3BvcnQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuekxheWVycyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnpMYXllcnMgPSBkYXRhLnpMYXllcnM7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5iYWNrZ3JvdW5kLmxvYWQoZGF0YS5iYWNrZ3JvdW5kKTtcbiAgICAgICAgY29uc3QgZnVsbFNjcmVlbiA9IChfYyA9IGRhdGEuZnVsbFNjcmVlbikgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogZGF0YS5iYWNrZ3JvdW5kTW9kZTtcbiAgICAgICAgaWYgKHR5cGVvZiBmdWxsU2NyZWVuID09PSBcImJvb2xlYW5cIikge1xuICAgICAgICAgICAgdGhpcy5mdWxsU2NyZWVuLmVuYWJsZSA9IGZ1bGxTY3JlZW47XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZ1bGxTY3JlZW4ubG9hZChmdWxsU2NyZWVuKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmJhY2tncm91bmRNYXNrLmxvYWQoZGF0YS5iYWNrZ3JvdW5kTWFzayk7XG4gICAgICAgIHRoaXMuaW50ZXJhY3Rpdml0eS5sb2FkKGRhdGEuaW50ZXJhY3Rpdml0eSk7XG4gICAgICAgIGlmIChkYXRhLm1hbnVhbFBhcnRpY2xlcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLm1hbnVhbFBhcnRpY2xlcyA9IGRhdGEubWFudWFsUGFydGljbGVzLm1hcCgodCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRtcCA9IG5ldyBNYW51YWxQYXJ0aWNsZV8xLk1hbnVhbFBhcnRpY2xlKCk7XG4gICAgICAgICAgICAgICAgdG1wLmxvYWQodCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRtcDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubW90aW9uLmxvYWQoZGF0YS5tb3Rpb24pO1xuICAgICAgICB0aGlzLnBhcnRpY2xlcy5sb2FkKGRhdGEucGFydGljbGVzKTtcbiAgICAgICAgVXRpbHNfMS5QbHVnaW5zLmxvYWRPcHRpb25zKHRoaXMsIGRhdGEpO1xuICAgICAgICBpZiAoZGF0YS5yZXNwb25zaXZlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgcmVzcG9uc2l2ZSBvZiBkYXRhLnJlc3BvbnNpdmUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBvcHRSZXNwb25zaXZlID0gbmV3IFJlc3BvbnNpdmVfMS5SZXNwb25zaXZlKCk7XG4gICAgICAgICAgICAgICAgb3B0UmVzcG9uc2l2ZS5sb2FkKHJlc3BvbnNpdmUpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzcG9uc2l2ZS5wdXNoKG9wdFJlc3BvbnNpdmUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVzcG9uc2l2ZS5zb3J0KChhLCBiKSA9PiBhLm1heFdpZHRoIC0gYi5tYXhXaWR0aCk7XG4gICAgICAgIGlmIChkYXRhLnRoZW1lcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHRoZW1lIG9mIGRhdGEudGhlbWVzKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3B0VGhlbWUgPSBuZXcgVGhlbWVfMS5UaGVtZSgpO1xuICAgICAgICAgICAgICAgIG9wdFRoZW1lLmxvYWQodGhlbWUpO1xuICAgICAgICAgICAgICAgIHRoaXMudGhlbWVzLnB1c2gob3B0VGhlbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGVmYXVsdERhcmtUaGVtZSA9IChfZCA9IF9fY2xhc3NQcml2YXRlRmllbGRHZXQodGhpcywgX09wdGlvbnNfaW5zdGFuY2VzLCBcIm1cIiwgX09wdGlvbnNfZmluZERlZmF1bHRUaGVtZSkuY2FsbCh0aGlzLCBFbnVtc18xLlRoZW1lTW9kZS5kYXJrKSkgPT09IG51bGwgfHwgX2QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9kLm5hbWU7XG4gICAgICAgIHRoaXMuZGVmYXVsdExpZ2h0VGhlbWUgPSAoX2UgPSBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KHRoaXMsIF9PcHRpb25zX2luc3RhbmNlcywgXCJtXCIsIF9PcHRpb25zX2ZpbmREZWZhdWx0VGhlbWUpLmNhbGwodGhpcywgRW51bXNfMS5UaGVtZU1vZGUubGlnaHQpKSA9PT0gbnVsbCB8fCBfZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2UubmFtZTtcbiAgICB9XG4gICAgc2V0VGhlbWUobmFtZSkge1xuICAgICAgICBpZiAobmFtZSkge1xuICAgICAgICAgICAgY29uc3QgY2hvc2VuVGhlbWUgPSB0aGlzLnRoZW1lcy5maW5kKCh0aGVtZSkgPT4gdGhlbWUubmFtZSA9PT0gbmFtZSk7XG4gICAgICAgICAgICBpZiAoY2hvc2VuVGhlbWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWQoY2hvc2VuVGhlbWUub3B0aW9ucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBtZWRpYU1hdGNoID0gdHlwZW9mIG1hdGNoTWVkaWEgIT09IFwidW5kZWZpbmVkXCIgJiYgbWF0Y2hNZWRpYShcIihwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaylcIiksIGNsaWVudERhcmtNb2RlID0gbWVkaWFNYXRjaCAmJiBtZWRpYU1hdGNoLm1hdGNoZXMsIGRlZmF1bHRUaGVtZSA9IF9fY2xhc3NQcml2YXRlRmllbGRHZXQodGhpcywgX09wdGlvbnNfaW5zdGFuY2VzLCBcIm1cIiwgX09wdGlvbnNfZmluZERlZmF1bHRUaGVtZSkuY2FsbCh0aGlzLCBjbGllbnREYXJrTW9kZSA/IEVudW1zXzEuVGhlbWVNb2RlLmRhcmsgOiBFbnVtc18xLlRoZW1lTW9kZS5saWdodCk7XG4gICAgICAgICAgICBpZiAoZGVmYXVsdFRoZW1lKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkKGRlZmF1bHRUaGVtZS5vcHRpb25zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBzZXRSZXNwb25zaXZlKHdpZHRoLCBweFJhdGlvLCBkZWZhdWx0T3B0aW9ucykge1xuICAgICAgICB0aGlzLmxvYWQoZGVmYXVsdE9wdGlvbnMpO1xuICAgICAgICBjb25zdCByZXNwb25zaXZlT3B0aW9ucyA9IHRoaXMucmVzcG9uc2l2ZS5maW5kKCh0KSA9PiB0Lm1vZGUgPT09IEVudW1zXzEuUmVzcG9uc2l2ZU1vZGUuc2NyZWVuICYmIHNjcmVlblxuICAgICAgICAgICAgPyB0Lm1heFdpZHRoICogcHhSYXRpbyA+IHNjcmVlbi5hdmFpbFdpZHRoXG4gICAgICAgICAgICA6IHQubWF4V2lkdGggKiBweFJhdGlvID4gd2lkdGgpO1xuICAgICAgICB0aGlzLmxvYWQocmVzcG9uc2l2ZU9wdGlvbnMgPT09IG51bGwgfHwgcmVzcG9uc2l2ZU9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlc3BvbnNpdmVPcHRpb25zLm9wdGlvbnMpO1xuICAgICAgICByZXR1cm4gcmVzcG9uc2l2ZU9wdGlvbnMgPT09IG51bGwgfHwgcmVzcG9uc2l2ZU9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlc3BvbnNpdmVPcHRpb25zLm1heFdpZHRoO1xuICAgIH1cbiAgICBpbXBvcnRQcmVzZXQocHJlc2V0KSB7XG4gICAgICAgIHRoaXMubG9hZChVdGlsc18xLlBsdWdpbnMuZ2V0UHJlc2V0KHByZXNldCkpO1xuICAgIH1cbn1cbmV4cG9ydHMuT3B0aW9ucyA9IE9wdGlvbnM7XG5fT3B0aW9uc19pbnN0YW5jZXMgPSBuZXcgV2Vha1NldCgpLCBfT3B0aW9uc19maW5kRGVmYXVsdFRoZW1lID0gZnVuY3Rpb24gX09wdGlvbnNfZmluZERlZmF1bHRUaGVtZShtb2RlKSB7XG4gICAgdmFyIF9hO1xuICAgIHJldHVybiAoKF9hID0gdGhpcy50aGVtZXMuZmluZCgodGhlbWUpID0+IHRoZW1lLmRlZmF1bHQudmFsdWUgJiYgdGhlbWUuZGVmYXVsdC5tb2RlID09PSBtb2RlKSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogdGhpcy50aGVtZXMuZmluZCgodGhlbWUpID0+IHRoZW1lLmRlZmF1bHQudmFsdWUgJiYgdGhlbWUuZGVmYXVsdC5tb2RlID09PSBFbnVtc18xLlRoZW1lTW9kZS5hbnkpKTtcbn07XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Options.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/OptionsColor.js": +/*!******************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/OptionsColor.js ***! + \******************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.OptionsColor = void 0;\nclass OptionsColor {\n constructor() {\n this.value = \"#fff\";\n }\n static create(source, data) {\n const color = new OptionsColor();\n color.load(source);\n if (data !== undefined) {\n if (typeof data === \"string\" || data instanceof Array) {\n color.load({ value: data });\n }\n else {\n color.load(data);\n }\n }\n return color;\n }\n load(data) {\n if ((data === null || data === void 0 ? void 0 : data.value) === undefined) {\n return;\n }\n this.value = data.value;\n }\n}\nexports.OptionsColor = OptionsColor;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL09wdGlvbnNDb2xvci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxvQkFBb0I7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCLGFBQWE7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL09wdGlvbnNDb2xvci5qcz83MmFiIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5PcHRpb25zQ29sb3IgPSB2b2lkIDA7XG5jbGFzcyBPcHRpb25zQ29sb3Ige1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnZhbHVlID0gXCIjZmZmXCI7XG4gICAgfVxuICAgIHN0YXRpYyBjcmVhdGUoc291cmNlLCBkYXRhKSB7XG4gICAgICAgIGNvbnN0IGNvbG9yID0gbmV3IE9wdGlvbnNDb2xvcigpO1xuICAgICAgICBjb2xvci5sb2FkKHNvdXJjZSk7XG4gICAgICAgIGlmIChkYXRhICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIiB8fCBkYXRhIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgICAgICBjb2xvci5sb2FkKHsgdmFsdWU6IGRhdGEgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb2xvci5sb2FkKGRhdGEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb2xvcjtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIGlmICgoZGF0YSA9PT0gbnVsbCB8fCBkYXRhID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkYXRhLnZhbHVlKSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy52YWx1ZSA9IGRhdGEudmFsdWU7XG4gICAgfVxufVxuZXhwb3J0cy5PcHRpb25zQ29sb3IgPSBPcHRpb25zQ29sb3I7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/OptionsColor.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Bounce/Bounce.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Bounce/Bounce.js ***! + \*****************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Bounce = void 0;\nconst BounceFactor_1 = __webpack_require__(/*! ./BounceFactor */ \"./node_modules/tsparticles/Options/Classes/Particles/Bounce/BounceFactor.js\");\nclass Bounce {\n constructor() {\n this.horizontal = new BounceFactor_1.BounceFactor();\n this.vertical = new BounceFactor_1.BounceFactor();\n }\n load(data) {\n if (!data) {\n return;\n }\n this.horizontal.load(data.horizontal);\n this.vertical.load(data.vertical);\n }\n}\nexports.Bounce = Bounce;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Cb3VuY2UvQm91bmNlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGNBQWM7QUFDZCx1QkFBdUIsbUJBQU8sQ0FBQyxtR0FBZ0I7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvUGFydGljbGVzL0JvdW5jZS9Cb3VuY2UuanM/MmMxZCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuQm91bmNlID0gdm9pZCAwO1xuY29uc3QgQm91bmNlRmFjdG9yXzEgPSByZXF1aXJlKFwiLi9Cb3VuY2VGYWN0b3JcIik7XG5jbGFzcyBCb3VuY2Uge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmhvcml6b250YWwgPSBuZXcgQm91bmNlRmFjdG9yXzEuQm91bmNlRmFjdG9yKCk7XG4gICAgICAgIHRoaXMudmVydGljYWwgPSBuZXcgQm91bmNlRmFjdG9yXzEuQm91bmNlRmFjdG9yKCk7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhvcml6b250YWwubG9hZChkYXRhLmhvcml6b250YWwpO1xuICAgICAgICB0aGlzLnZlcnRpY2FsLmxvYWQoZGF0YS52ZXJ0aWNhbCk7XG4gICAgfVxufVxuZXhwb3J0cy5Cb3VuY2UgPSBCb3VuY2U7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Bounce/Bounce.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Bounce/BounceFactor.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Bounce/BounceFactor.js ***! + \***********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.BounceFactor = void 0;\nconst ValueWithRandom_1 = __webpack_require__(/*! ../../ValueWithRandom */ \"./node_modules/tsparticles/Options/Classes/ValueWithRandom.js\");\nclass BounceFactor extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n this.random.minimumValue = 0.1;\n this.value = 1;\n }\n}\nexports.BounceFactor = BounceFactor;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Cb3VuY2UvQm91bmNlRmFjdG9yLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELG9CQUFvQjtBQUNwQiwwQkFBMEIsbUJBQU8sQ0FBQyw0RkFBdUI7QUFDekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9QYXJ0aWNsZXMvQm91bmNlL0JvdW5jZUZhY3Rvci5qcz8yN2ZjIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Cb3VuY2VGYWN0b3IgPSB2b2lkIDA7XG5jb25zdCBWYWx1ZVdpdGhSYW5kb21fMSA9IHJlcXVpcmUoXCIuLi8uLi9WYWx1ZVdpdGhSYW5kb21cIik7XG5jbGFzcyBCb3VuY2VGYWN0b3IgZXh0ZW5kcyBWYWx1ZVdpdGhSYW5kb21fMS5WYWx1ZVdpdGhSYW5kb20ge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnJhbmRvbS5taW5pbXVtVmFsdWUgPSAwLjE7XG4gICAgICAgIHRoaXMudmFsdWUgPSAxO1xuICAgIH1cbn1cbmV4cG9ydHMuQm91bmNlRmFjdG9yID0gQm91bmNlRmFjdG9yO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Bounce/BounceFactor.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Collisions/Collisions.js": +/*!*************************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Collisions/Collisions.js ***! + \*************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Collisions = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst Bounce_1 = __webpack_require__(/*! ../Bounce/Bounce */ \"./node_modules/tsparticles/Options/Classes/Particles/Bounce/Bounce.js\");\nconst CollisionsOverlap_1 = __webpack_require__(/*! ./CollisionsOverlap */ \"./node_modules/tsparticles/Options/Classes/Particles/Collisions/CollisionsOverlap.js\");\nclass Collisions {\n constructor() {\n this.bounce = new Bounce_1.Bounce();\n this.enable = false;\n this.mode = Enums_1.CollisionMode.bounce;\n this.overlap = new CollisionsOverlap_1.CollisionsOverlap();\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n this.bounce.load(data.bounce);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n this.overlap.load(data.overlap);\n }\n}\nexports.Collisions = Collisions;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Db2xsaXNpb25zL0NvbGxpc2lvbnMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsa0JBQWtCO0FBQ2xCLGdCQUFnQixtQkFBTyxDQUFDLG9FQUFtQjtBQUMzQyxpQkFBaUIsbUJBQU8sQ0FBQywrRkFBa0I7QUFDM0MsNEJBQTRCLG1CQUFPLENBQUMsaUhBQXFCO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Db2xsaXNpb25zL0NvbGxpc2lvbnMuanM/ZjM3YSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuQ29sbGlzaW9ucyA9IHZvaWQgMDtcbmNvbnN0IEVudW1zXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vRW51bXNcIik7XG5jb25zdCBCb3VuY2VfMSA9IHJlcXVpcmUoXCIuLi9Cb3VuY2UvQm91bmNlXCIpO1xuY29uc3QgQ29sbGlzaW9uc092ZXJsYXBfMSA9IHJlcXVpcmUoXCIuL0NvbGxpc2lvbnNPdmVybGFwXCIpO1xuY2xhc3MgQ29sbGlzaW9ucyB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuYm91bmNlID0gbmV3IEJvdW5jZV8xLkJvdW5jZSgpO1xuICAgICAgICB0aGlzLmVuYWJsZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLm1vZGUgPSBFbnVtc18xLkNvbGxpc2lvbk1vZGUuYm91bmNlO1xuICAgICAgICB0aGlzLm92ZXJsYXAgPSBuZXcgQ29sbGlzaW9uc092ZXJsYXBfMS5Db2xsaXNpb25zT3ZlcmxhcCgpO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYm91bmNlLmxvYWQoZGF0YS5ib3VuY2UpO1xuICAgICAgICBpZiAoZGF0YS5lbmFibGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5lbmFibGUgPSBkYXRhLmVuYWJsZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5tb2RlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMubW9kZSA9IGRhdGEubW9kZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm92ZXJsYXAubG9hZChkYXRhLm92ZXJsYXApO1xuICAgIH1cbn1cbmV4cG9ydHMuQ29sbGlzaW9ucyA9IENvbGxpc2lvbnM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Collisions/Collisions.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Collisions/CollisionsOverlap.js": +/*!********************************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Collisions/CollisionsOverlap.js ***! + \********************************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.CollisionsOverlap = void 0;\nclass CollisionsOverlap {\n constructor() {\n this.enable = true;\n this.retries = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.retries !== undefined) {\n this.retries = data.retries;\n }\n }\n}\nexports.CollisionsOverlap = CollisionsOverlap;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Db2xsaXNpb25zL0NvbGxpc2lvbnNPdmVybGFwLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvUGFydGljbGVzL0NvbGxpc2lvbnMvQ29sbGlzaW9uc092ZXJsYXAuanM/ODk0YSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuQ29sbGlzaW9uc092ZXJsYXAgPSB2b2lkIDA7XG5jbGFzcyBDb2xsaXNpb25zT3ZlcmxhcCB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuZW5hYmxlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5yZXRyaWVzID0gMDtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmVuYWJsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZSA9IGRhdGEuZW5hYmxlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnJldHJpZXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5yZXRyaWVzID0gZGF0YS5yZXRyaWVzO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5Db2xsaXNpb25zT3ZlcmxhcCA9IENvbGxpc2lvbnNPdmVybGFwO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Collisions/CollisionsOverlap.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Destroy/Destroy.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Destroy/Destroy.js ***! + \*******************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Destroy = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst Split_1 = __webpack_require__(/*! ./Split */ \"./node_modules/tsparticles/Options/Classes/Particles/Destroy/Split.js\");\nclass Destroy {\n constructor() {\n this.mode = Enums_1.DestroyMode.none;\n this.split = new Split_1.Split();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n this.split.load(data.split);\n }\n}\nexports.Destroy = Destroy;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9EZXN0cm95L0Rlc3Ryb3kuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsZUFBZTtBQUNmLGdCQUFnQixtQkFBTyxDQUFDLG9FQUFtQjtBQUMzQyxnQkFBZ0IsbUJBQU8sQ0FBQyxzRkFBUztBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvUGFydGljbGVzL0Rlc3Ryb3kvRGVzdHJveS5qcz9iN2Y1Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5EZXN0cm95ID0gdm9pZCAwO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuLi8uLi8uLi8uLi9FbnVtc1wiKTtcbmNvbnN0IFNwbGl0XzEgPSByZXF1aXJlKFwiLi9TcGxpdFwiKTtcbmNsYXNzIERlc3Ryb3kge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLm1vZGUgPSBFbnVtc18xLkRlc3Ryb3lNb2RlLm5vbmU7XG4gICAgICAgIHRoaXMuc3BsaXQgPSBuZXcgU3BsaXRfMS5TcGxpdCgpO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEubW9kZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLm1vZGUgPSBkYXRhLm1vZGU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zcGxpdC5sb2FkKGRhdGEuc3BsaXQpO1xuICAgIH1cbn1cbmV4cG9ydHMuRGVzdHJveSA9IERlc3Ryb3k7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Destroy/Destroy.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Destroy/Split.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Destroy/Split.js ***! + \*****************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Split = void 0;\nconst SplitFactor_1 = __webpack_require__(/*! ./SplitFactor */ \"./node_modules/tsparticles/Options/Classes/Particles/Destroy/SplitFactor.js\");\nconst SplitRate_1 = __webpack_require__(/*! ./SplitRate */ \"./node_modules/tsparticles/Options/Classes/Particles/Destroy/SplitRate.js\");\nconst Utils_1 = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass Split {\n constructor() {\n this.count = 1;\n this.factor = new SplitFactor_1.SplitFactor();\n this.rate = new SplitRate_1.SplitRate();\n this.sizeOffset = true;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.count !== undefined) {\n this.count = data.count;\n }\n this.factor.load(data.factor);\n this.rate.load(data.rate);\n if (data.particles !== undefined) {\n this.particles = (0, Utils_1.deepExtend)({}, data.particles);\n }\n if (data.sizeOffset !== undefined) {\n this.sizeOffset = data.sizeOffset;\n }\n }\n}\nexports.Split = Split;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9EZXN0cm95L1NwbGl0LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGFBQWE7QUFDYixzQkFBc0IsbUJBQU8sQ0FBQyxrR0FBZTtBQUM3QyxvQkFBb0IsbUJBQU8sQ0FBQyw4RkFBYTtBQUN6QyxnQkFBZ0IsbUJBQU8sQ0FBQyxvRUFBbUI7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVEQUF1RDtBQUN2RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvUGFydGljbGVzL0Rlc3Ryb3kvU3BsaXQuanM/ZjI0NSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuU3BsaXQgPSB2b2lkIDA7XG5jb25zdCBTcGxpdEZhY3Rvcl8xID0gcmVxdWlyZShcIi4vU3BsaXRGYWN0b3JcIik7XG5jb25zdCBTcGxpdFJhdGVfMSA9IHJlcXVpcmUoXCIuL1NwbGl0UmF0ZVwiKTtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vVXRpbHNcIik7XG5jbGFzcyBTcGxpdCB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuY291bnQgPSAxO1xuICAgICAgICB0aGlzLmZhY3RvciA9IG5ldyBTcGxpdEZhY3Rvcl8xLlNwbGl0RmFjdG9yKCk7XG4gICAgICAgIHRoaXMucmF0ZSA9IG5ldyBTcGxpdFJhdGVfMS5TcGxpdFJhdGUoKTtcbiAgICAgICAgdGhpcy5zaXplT2Zmc2V0ID0gdHJ1ZTtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmNvdW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY291bnQgPSBkYXRhLmNvdW50O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZmFjdG9yLmxvYWQoZGF0YS5mYWN0b3IpO1xuICAgICAgICB0aGlzLnJhdGUubG9hZChkYXRhLnJhdGUpO1xuICAgICAgICBpZiAoZGF0YS5wYXJ0aWNsZXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5wYXJ0aWNsZXMgPSAoMCwgVXRpbHNfMS5kZWVwRXh0ZW5kKSh7fSwgZGF0YS5wYXJ0aWNsZXMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnNpemVPZmZzZXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5zaXplT2Zmc2V0ID0gZGF0YS5zaXplT2Zmc2V0O1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5TcGxpdCA9IFNwbGl0O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Destroy/Split.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Destroy/SplitFactor.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Destroy/SplitFactor.js ***! + \***********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.SplitFactor = void 0;\nconst ValueWithRandom_1 = __webpack_require__(/*! ../../ValueWithRandom */ \"./node_modules/tsparticles/Options/Classes/ValueWithRandom.js\");\nclass SplitFactor extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n this.value = 3;\n }\n}\nexports.SplitFactor = SplitFactor;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9EZXN0cm95L1NwbGl0RmFjdG9yLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELG1CQUFtQjtBQUNuQiwwQkFBMEIsbUJBQU8sQ0FBQyw0RkFBdUI7QUFDekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvUGFydGljbGVzL0Rlc3Ryb3kvU3BsaXRGYWN0b3IuanM/MWMxOCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuU3BsaXRGYWN0b3IgPSB2b2lkIDA7XG5jb25zdCBWYWx1ZVdpdGhSYW5kb21fMSA9IHJlcXVpcmUoXCIuLi8uLi9WYWx1ZVdpdGhSYW5kb21cIik7XG5jbGFzcyBTcGxpdEZhY3RvciBleHRlbmRzIFZhbHVlV2l0aFJhbmRvbV8xLlZhbHVlV2l0aFJhbmRvbSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMudmFsdWUgPSAzO1xuICAgIH1cbn1cbmV4cG9ydHMuU3BsaXRGYWN0b3IgPSBTcGxpdEZhY3RvcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Destroy/SplitFactor.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Destroy/SplitRate.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Destroy/SplitRate.js ***! + \*********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.SplitRate = void 0;\nconst ValueWithRandom_1 = __webpack_require__(/*! ../../ValueWithRandom */ \"./node_modules/tsparticles/Options/Classes/ValueWithRandom.js\");\nclass SplitRate extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n this.value = { min: 4, max: 9 };\n }\n}\nexports.SplitRate = SplitRate;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9EZXN0cm95L1NwbGl0UmF0ZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxpQkFBaUI7QUFDakIsMEJBQTBCLG1CQUFPLENBQUMsNEZBQXVCO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0EsaUJBQWlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvUGFydGljbGVzL0Rlc3Ryb3kvU3BsaXRSYXRlLmpzPzc5ZmYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlNwbGl0UmF0ZSA9IHZvaWQgMDtcbmNvbnN0IFZhbHVlV2l0aFJhbmRvbV8xID0gcmVxdWlyZShcIi4uLy4uL1ZhbHVlV2l0aFJhbmRvbVwiKTtcbmNsYXNzIFNwbGl0UmF0ZSBleHRlbmRzIFZhbHVlV2l0aFJhbmRvbV8xLlZhbHVlV2l0aFJhbmRvbSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMudmFsdWUgPSB7IG1pbjogNCwgbWF4OiA5IH07XG4gICAgfVxufVxuZXhwb3J0cy5TcGxpdFJhdGUgPSBTcGxpdFJhdGU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Destroy/SplitRate.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Life/Life.js": +/*!*************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Life/Life.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Life = void 0;\nconst LifeDelay_1 = __webpack_require__(/*! ./LifeDelay */ \"./node_modules/tsparticles/Options/Classes/Particles/Life/LifeDelay.js\");\nconst LifeDuration_1 = __webpack_require__(/*! ./LifeDuration */ \"./node_modules/tsparticles/Options/Classes/Particles/Life/LifeDuration.js\");\nclass Life {\n constructor() {\n this.count = 0;\n this.delay = new LifeDelay_1.LifeDelay();\n this.duration = new LifeDuration_1.LifeDuration();\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.count !== undefined) {\n this.count = data.count;\n }\n this.delay.load(data.delay);\n this.duration.load(data.duration);\n }\n}\nexports.Life = Life;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9MaWZlL0xpZmUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsWUFBWTtBQUNaLG9CQUFvQixtQkFBTyxDQUFDLDJGQUFhO0FBQ3pDLHVCQUF1QixtQkFBTyxDQUFDLGlHQUFnQjtBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9MaWZlL0xpZmUuanM/YmZhNiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuTGlmZSA9IHZvaWQgMDtcbmNvbnN0IExpZmVEZWxheV8xID0gcmVxdWlyZShcIi4vTGlmZURlbGF5XCIpO1xuY29uc3QgTGlmZUR1cmF0aW9uXzEgPSByZXF1aXJlKFwiLi9MaWZlRHVyYXRpb25cIik7XG5jbGFzcyBMaWZlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5jb3VudCA9IDA7XG4gICAgICAgIHRoaXMuZGVsYXkgPSBuZXcgTGlmZURlbGF5XzEuTGlmZURlbGF5KCk7XG4gICAgICAgIHRoaXMuZHVyYXRpb24gPSBuZXcgTGlmZUR1cmF0aW9uXzEuTGlmZUR1cmF0aW9uKCk7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuY291bnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5jb3VudCA9IGRhdGEuY291bnQ7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kZWxheS5sb2FkKGRhdGEuZGVsYXkpO1xuICAgICAgICB0aGlzLmR1cmF0aW9uLmxvYWQoZGF0YS5kdXJhdGlvbik7XG4gICAgfVxufVxuZXhwb3J0cy5MaWZlID0gTGlmZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Life/Life.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Life/LifeDelay.js": +/*!******************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Life/LifeDelay.js ***! + \******************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.LifeDelay = void 0;\nconst ValueWithRandom_1 = __webpack_require__(/*! ../../ValueWithRandom */ \"./node_modules/tsparticles/Options/Classes/ValueWithRandom.js\");\nclass LifeDelay extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n this.sync = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n super.load(data);\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\nexports.LifeDelay = LifeDelay;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9MaWZlL0xpZmVEZWxheS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxpQkFBaUI7QUFDakIsMEJBQTBCLG1CQUFPLENBQUMsNEZBQXVCO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9MaWZlL0xpZmVEZWxheS5qcz82YmE0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5MaWZlRGVsYXkgPSB2b2lkIDA7XG5jb25zdCBWYWx1ZVdpdGhSYW5kb21fMSA9IHJlcXVpcmUoXCIuLi8uLi9WYWx1ZVdpdGhSYW5kb21cIik7XG5jbGFzcyBMaWZlRGVsYXkgZXh0ZW5kcyBWYWx1ZVdpdGhSYW5kb21fMS5WYWx1ZVdpdGhSYW5kb20ge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnN5bmMgPSBmYWxzZTtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHN1cGVyLmxvYWQoZGF0YSk7XG4gICAgICAgIGlmIChkYXRhLnN5bmMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5zeW5jID0gZGF0YS5zeW5jO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5MaWZlRGVsYXkgPSBMaWZlRGVsYXk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Life/LifeDelay.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Life/LifeDuration.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Life/LifeDuration.js ***! + \*********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.LifeDuration = void 0;\nconst ValueWithRandom_1 = __webpack_require__(/*! ../../ValueWithRandom */ \"./node_modules/tsparticles/Options/Classes/ValueWithRandom.js\");\nclass LifeDuration extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n this.random.minimumValue = 0.0001;\n this.sync = false;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n super.load(data);\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\nexports.LifeDuration = LifeDuration;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9MaWZlL0xpZmVEdXJhdGlvbi5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxvQkFBb0I7QUFDcEIsMEJBQTBCLG1CQUFPLENBQUMsNEZBQXVCO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvUGFydGljbGVzL0xpZmUvTGlmZUR1cmF0aW9uLmpzPzY5MTYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkxpZmVEdXJhdGlvbiA9IHZvaWQgMDtcbmNvbnN0IFZhbHVlV2l0aFJhbmRvbV8xID0gcmVxdWlyZShcIi4uLy4uL1ZhbHVlV2l0aFJhbmRvbVwiKTtcbmNsYXNzIExpZmVEdXJhdGlvbiBleHRlbmRzIFZhbHVlV2l0aFJhbmRvbV8xLlZhbHVlV2l0aFJhbmRvbSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMucmFuZG9tLm1pbmltdW1WYWx1ZSA9IDAuMDAwMTtcbiAgICAgICAgdGhpcy5zeW5jID0gZmFsc2U7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc3VwZXIubG9hZChkYXRhKTtcbiAgICAgICAgaWYgKGRhdGEuc3luYyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnN5bmMgPSBkYXRhLnN5bmM7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkxpZmVEdXJhdGlvbiA9IExpZmVEdXJhdGlvbjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Life/LifeDuration.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Links/Links.js": +/*!***************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Links/Links.js ***! + \***************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Links = void 0;\nconst LinksShadow_1 = __webpack_require__(/*! ./LinksShadow */ \"./node_modules/tsparticles/Options/Classes/Particles/Links/LinksShadow.js\");\nconst LinksTriangle_1 = __webpack_require__(/*! ./LinksTriangle */ \"./node_modules/tsparticles/Options/Classes/Particles/Links/LinksTriangle.js\");\nconst OptionsColor_1 = __webpack_require__(/*! ../../OptionsColor */ \"./node_modules/tsparticles/Options/Classes/OptionsColor.js\");\nclass Links {\n constructor() {\n this.blink = false;\n this.color = new OptionsColor_1.OptionsColor();\n this.consent = false;\n this.distance = 100;\n this.enable = false;\n this.frequency = 1;\n this.opacity = 1;\n this.shadow = new LinksShadow_1.LinksShadow();\n this.triangles = new LinksTriangle_1.LinksTriangle();\n this.width = 1;\n this.warp = false;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.id !== undefined) {\n this.id = data.id;\n }\n if (data.blink !== undefined) {\n this.blink = data.blink;\n }\n this.color = OptionsColor_1.OptionsColor.create(this.color, data.color);\n if (data.consent !== undefined) {\n this.consent = data.consent;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.frequency !== undefined) {\n this.frequency = data.frequency;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n this.shadow.load(data.shadow);\n this.triangles.load(data.triangles);\n if (data.width !== undefined) {\n this.width = data.width;\n }\n if (data.warp !== undefined) {\n this.warp = data.warp;\n }\n }\n}\nexports.Links = Links;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9MaW5rcy9MaW5rcy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxhQUFhO0FBQ2Isc0JBQXNCLG1CQUFPLENBQUMsZ0dBQWU7QUFDN0Msd0JBQXdCLG1CQUFPLENBQUMsb0dBQWlCO0FBQ2pELHVCQUF1QixtQkFBTyxDQUFDLHNGQUFvQjtBQUNuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9MaW5rcy9MaW5rcy5qcz9kYzVkIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5MaW5rcyA9IHZvaWQgMDtcbmNvbnN0IExpbmtzU2hhZG93XzEgPSByZXF1aXJlKFwiLi9MaW5rc1NoYWRvd1wiKTtcbmNvbnN0IExpbmtzVHJpYW5nbGVfMSA9IHJlcXVpcmUoXCIuL0xpbmtzVHJpYW5nbGVcIik7XG5jb25zdCBPcHRpb25zQ29sb3JfMSA9IHJlcXVpcmUoXCIuLi8uLi9PcHRpb25zQ29sb3JcIik7XG5jbGFzcyBMaW5rcyB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuYmxpbmsgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jb2xvciA9IG5ldyBPcHRpb25zQ29sb3JfMS5PcHRpb25zQ29sb3IoKTtcbiAgICAgICAgdGhpcy5jb25zZW50ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZGlzdGFuY2UgPSAxMDA7XG4gICAgICAgIHRoaXMuZW5hYmxlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZnJlcXVlbmN5ID0gMTtcbiAgICAgICAgdGhpcy5vcGFjaXR5ID0gMTtcbiAgICAgICAgdGhpcy5zaGFkb3cgPSBuZXcgTGlua3NTaGFkb3dfMS5MaW5rc1NoYWRvdygpO1xuICAgICAgICB0aGlzLnRyaWFuZ2xlcyA9IG5ldyBMaW5rc1RyaWFuZ2xlXzEuTGlua3NUcmlhbmdsZSgpO1xuICAgICAgICB0aGlzLndpZHRoID0gMTtcbiAgICAgICAgdGhpcy53YXJwID0gZmFsc2U7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuaWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5pZCA9IGRhdGEuaWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuYmxpbmsgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5ibGluayA9IGRhdGEuYmxpbms7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb2xvciA9IE9wdGlvbnNDb2xvcl8xLk9wdGlvbnNDb2xvci5jcmVhdGUodGhpcy5jb2xvciwgZGF0YS5jb2xvcik7XG4gICAgICAgIGlmIChkYXRhLmNvbnNlbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5jb25zZW50ID0gZGF0YS5jb25zZW50O1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmRpc3RhbmNlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzdGFuY2UgPSBkYXRhLmRpc3RhbmNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmVuYWJsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZSA9IGRhdGEuZW5hYmxlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmZyZXF1ZW5jeSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmZyZXF1ZW5jeSA9IGRhdGEuZnJlcXVlbmN5O1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLm9wYWNpdHkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5vcGFjaXR5ID0gZGF0YS5vcGFjaXR5O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2hhZG93LmxvYWQoZGF0YS5zaGFkb3cpO1xuICAgICAgICB0aGlzLnRyaWFuZ2xlcy5sb2FkKGRhdGEudHJpYW5nbGVzKTtcbiAgICAgICAgaWYgKGRhdGEud2lkdGggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy53aWR0aCA9IGRhdGEud2lkdGg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEud2FycCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLndhcnAgPSBkYXRhLndhcnA7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkxpbmtzID0gTGlua3M7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Links/Links.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Links/LinksShadow.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Links/LinksShadow.js ***! + \*********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.LinksShadow = void 0;\nconst OptionsColor_1 = __webpack_require__(/*! ../../OptionsColor */ \"./node_modules/tsparticles/Options/Classes/OptionsColor.js\");\nclass LinksShadow {\n constructor() {\n this.blur = 5;\n this.color = new OptionsColor_1.OptionsColor();\n this.enable = false;\n this.color.value = \"#00ff00\";\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.blur !== undefined) {\n this.blur = data.blur;\n }\n this.color = OptionsColor_1.OptionsColor.create(this.color, data.color);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n }\n}\nexports.LinksShadow = LinksShadow;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9MaW5rcy9MaW5rc1NoYWRvdy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxtQkFBbUI7QUFDbkIsdUJBQXVCLG1CQUFPLENBQUMsc0ZBQW9CO0FBQ25EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9QYXJ0aWNsZXMvTGlua3MvTGlua3NTaGFkb3cuanM/ZGM1NSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuTGlua3NTaGFkb3cgPSB2b2lkIDA7XG5jb25zdCBPcHRpb25zQ29sb3JfMSA9IHJlcXVpcmUoXCIuLi8uLi9PcHRpb25zQ29sb3JcIik7XG5jbGFzcyBMaW5rc1NoYWRvdyB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuYmx1ciA9IDU7XG4gICAgICAgIHRoaXMuY29sb3IgPSBuZXcgT3B0aW9uc0NvbG9yXzEuT3B0aW9uc0NvbG9yKCk7XG4gICAgICAgIHRoaXMuZW5hYmxlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY29sb3IudmFsdWUgPSBcIiMwMGZmMDBcIjtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5ibHVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuYmx1ciA9IGRhdGEuYmx1cjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbG9yID0gT3B0aW9uc0NvbG9yXzEuT3B0aW9uc0NvbG9yLmNyZWF0ZSh0aGlzLmNvbG9yLCBkYXRhLmNvbG9yKTtcbiAgICAgICAgaWYgKGRhdGEuZW5hYmxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlID0gZGF0YS5lbmFibGU7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkxpbmtzU2hhZG93ID0gTGlua3NTaGFkb3c7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Links/LinksShadow.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Links/LinksTriangle.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Links/LinksTriangle.js ***! + \***********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.LinksTriangle = void 0;\nconst OptionsColor_1 = __webpack_require__(/*! ../../OptionsColor */ \"./node_modules/tsparticles/Options/Classes/OptionsColor.js\");\nclass LinksTriangle {\n constructor() {\n this.enable = false;\n this.frequency = 1;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor_1.OptionsColor.create(this.color, data.color);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.frequency !== undefined) {\n this.frequency = data.frequency;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\nexports.LinksTriangle = LinksTriangle;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9MaW5rcy9MaW5rc1RyaWFuZ2xlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHFCQUFxQjtBQUNyQix1QkFBdUIsbUJBQU8sQ0FBQyxzRkFBb0I7QUFDbkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9MaW5rcy9MaW5rc1RyaWFuZ2xlLmpzP2EzZTgiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkxpbmtzVHJpYW5nbGUgPSB2b2lkIDA7XG5jb25zdCBPcHRpb25zQ29sb3JfMSA9IHJlcXVpcmUoXCIuLi8uLi9PcHRpb25zQ29sb3JcIik7XG5jbGFzcyBMaW5rc1RyaWFuZ2xlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5lbmFibGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5mcmVxdWVuY3kgPSAxO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmNvbG9yICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29sb3IgPSBPcHRpb25zQ29sb3JfMS5PcHRpb25zQ29sb3IuY3JlYXRlKHRoaXMuY29sb3IsIGRhdGEuY29sb3IpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmVuYWJsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZSA9IGRhdGEuZW5hYmxlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmZyZXF1ZW5jeSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmZyZXF1ZW5jeSA9IGRhdGEuZnJlcXVlbmN5O1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLm9wYWNpdHkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5vcGFjaXR5ID0gZGF0YS5vcGFjaXR5O1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5MaW5rc1RyaWFuZ2xlID0gTGlua3NUcmlhbmdsZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Links/LinksTriangle.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Move/Attract.js": +/*!****************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Move/Attract.js ***! + \****************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Attract = void 0;\nclass Attract {\n constructor() {\n this.distance = 200;\n this.enable = false;\n this.rotate = {\n x: 3000,\n y: 3000,\n };\n }\n get rotateX() {\n return this.rotate.x;\n }\n set rotateX(value) {\n this.rotate.x = value;\n }\n get rotateY() {\n return this.rotate.y;\n }\n set rotateY(value) {\n this.rotate.y = value;\n }\n load(data) {\n var _a, _b, _c, _d;\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n const rotateX = (_b = (_a = data.rotate) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : data.rotateX;\n if (rotateX !== undefined) {\n this.rotate.x = rotateX;\n }\n const rotateY = (_d = (_c = data.rotate) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : data.rotateY;\n if (rotateY !== undefined) {\n this.rotate.y = rotateY;\n }\n }\n}\nexports.Attract = Attract;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Nb3ZlL0F0dHJhY3QuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsZUFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9QYXJ0aWNsZXMvTW92ZS9BdHRyYWN0LmpzP2JlNmEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkF0dHJhY3QgPSB2b2lkIDA7XG5jbGFzcyBBdHRyYWN0IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5kaXN0YW5jZSA9IDIwMDtcbiAgICAgICAgdGhpcy5lbmFibGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5yb3RhdGUgPSB7XG4gICAgICAgICAgICB4OiAzMDAwLFxuICAgICAgICAgICAgeTogMzAwMCxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZ2V0IHJvdGF0ZVgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJvdGF0ZS54O1xuICAgIH1cbiAgICBzZXQgcm90YXRlWCh2YWx1ZSkge1xuICAgICAgICB0aGlzLnJvdGF0ZS54ID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCByb3RhdGVZKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5yb3RhdGUueTtcbiAgICB9XG4gICAgc2V0IHJvdGF0ZVkodmFsdWUpIHtcbiAgICAgICAgdGhpcy5yb3RhdGUueSA9IHZhbHVlO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kO1xuICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5kaXN0YW5jZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmRpc3RhbmNlID0gZGF0YS5kaXN0YW5jZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5lbmFibGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5lbmFibGUgPSBkYXRhLmVuYWJsZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByb3RhdGVYID0gKF9iID0gKF9hID0gZGF0YS5yb3RhdGUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS54KSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBkYXRhLnJvdGF0ZVg7XG4gICAgICAgIGlmIChyb3RhdGVYICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMucm90YXRlLnggPSByb3RhdGVYO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJvdGF0ZVkgPSAoX2QgPSAoX2MgPSBkYXRhLnJvdGF0ZSkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLnkpICE9PSBudWxsICYmIF9kICE9PSB2b2lkIDAgPyBfZCA6IGRhdGEucm90YXRlWTtcbiAgICAgICAgaWYgKHJvdGF0ZVkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5yb3RhdGUueSA9IHJvdGF0ZVk7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkF0dHJhY3QgPSBBdHRyYWN0O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Move/Attract.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Move/Move.js": +/*!*************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Move/Move.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Move = void 0;\nconst Attract_1 = __webpack_require__(/*! ./Attract */ \"./node_modules/tsparticles/Options/Classes/Particles/Move/Attract.js\");\nconst Enums_1 = __webpack_require__(/*! ../../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst Trail_1 = __webpack_require__(/*! ./Trail */ \"./node_modules/tsparticles/Options/Classes/Particles/Move/Trail.js\");\nconst Path_1 = __webpack_require__(/*! ./Path/Path */ \"./node_modules/tsparticles/Options/Classes/Particles/Move/Path/Path.js\");\nconst MoveAngle_1 = __webpack_require__(/*! ./MoveAngle */ \"./node_modules/tsparticles/Options/Classes/Particles/Move/MoveAngle.js\");\nconst MoveGravity_1 = __webpack_require__(/*! ./MoveGravity */ \"./node_modules/tsparticles/Options/Classes/Particles/Move/MoveGravity.js\");\nconst OutModes_1 = __webpack_require__(/*! ./OutModes */ \"./node_modules/tsparticles/Options/Classes/Particles/Move/OutModes.js\");\nconst Utils_1 = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Spin_1 = __webpack_require__(/*! ./Spin */ \"./node_modules/tsparticles/Options/Classes/Particles/Move/Spin.js\");\nclass Move {\n constructor() {\n this.angle = new MoveAngle_1.MoveAngle();\n this.attract = new Attract_1.Attract();\n this.decay = 0;\n this.distance = {};\n this.direction = Enums_1.MoveDirection.none;\n this.drift = 0;\n this.enable = false;\n this.gravity = new MoveGravity_1.MoveGravity();\n this.path = new Path_1.Path();\n this.outModes = new OutModes_1.OutModes();\n this.random = false;\n this.size = false;\n this.speed = 2;\n this.spin = new Spin_1.Spin();\n this.straight = false;\n this.trail = new Trail_1.Trail();\n this.vibrate = false;\n this.warp = false;\n }\n get collisions() {\n return false;\n }\n set collisions(value) {\n }\n get bounce() {\n return this.collisions;\n }\n set bounce(value) {\n this.collisions = value;\n }\n get out_mode() {\n return this.outMode;\n }\n set out_mode(value) {\n this.outMode = value;\n }\n get outMode() {\n return this.outModes.default;\n }\n set outMode(value) {\n this.outModes.default = value;\n }\n get noise() {\n return this.path;\n }\n set noise(value) {\n this.path = value;\n }\n load(data) {\n var _a, _b, _c;\n if (data === undefined) {\n return;\n }\n if (data.angle !== undefined) {\n if (typeof data.angle === \"number\") {\n this.angle.value = data.angle;\n }\n else {\n this.angle.load(data.angle);\n }\n }\n this.attract.load(data.attract);\n if (data.decay !== undefined) {\n this.decay = data.decay;\n }\n if (data.direction !== undefined) {\n this.direction = data.direction;\n }\n if (data.distance !== undefined) {\n this.distance =\n typeof data.distance === \"number\"\n ? {\n horizontal: data.distance,\n vertical: data.distance,\n }\n : (0, Utils_1.deepExtend)({}, data.distance);\n }\n if (data.drift !== undefined) {\n this.drift = (0, Utils_1.setRangeValue)(data.drift);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.gravity.load(data.gravity);\n const outMode = (_a = data.outMode) !== null && _a !== void 0 ? _a : data.out_mode;\n if (data.outModes !== undefined || outMode !== undefined) {\n if (typeof data.outModes === \"string\" || (data.outModes === undefined && outMode !== undefined)) {\n this.outModes.load({\n default: (_b = data.outModes) !== null && _b !== void 0 ? _b : outMode,\n });\n }\n else {\n this.outModes.load(data.outModes);\n }\n }\n this.path.load((_c = data.path) !== null && _c !== void 0 ? _c : data.noise);\n if (data.random !== undefined) {\n this.random = data.random;\n }\n if (data.size !== undefined) {\n this.size = data.size;\n }\n if (data.speed !== undefined) {\n this.speed = (0, Utils_1.setRangeValue)(data.speed);\n }\n this.spin.load(data.spin);\n if (data.straight !== undefined) {\n this.straight = data.straight;\n }\n this.trail.load(data.trail);\n if (data.vibrate !== undefined) {\n this.vibrate = data.vibrate;\n }\n if (data.warp !== undefined) {\n this.warp = data.warp;\n }\n }\n}\nexports.Move = Move;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Nb3ZlL01vdmUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsWUFBWTtBQUNaLGtCQUFrQixtQkFBTyxDQUFDLHVGQUFXO0FBQ3JDLGdCQUFnQixtQkFBTyxDQUFDLG9FQUFtQjtBQUMzQyxnQkFBZ0IsbUJBQU8sQ0FBQyxtRkFBUztBQUNqQyxlQUFlLG1CQUFPLENBQUMsMkZBQWE7QUFDcEMsb0JBQW9CLG1CQUFPLENBQUMsMkZBQWE7QUFDekMsc0JBQXNCLG1CQUFPLENBQUMsK0ZBQWU7QUFDN0MsbUJBQW1CLG1CQUFPLENBQUMseUZBQVk7QUFDdkMsZ0JBQWdCLG1CQUFPLENBQUMsb0VBQW1CO0FBQzNDLGVBQWUsbUJBQU8sQ0FBQyxpRkFBUTtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0RBQWdEO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Nb3ZlL01vdmUuanM/OGZiNyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuTW92ZSA9IHZvaWQgMDtcbmNvbnN0IEF0dHJhY3RfMSA9IHJlcXVpcmUoXCIuL0F0dHJhY3RcIik7XG5jb25zdCBFbnVtc18xID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL0VudW1zXCIpO1xuY29uc3QgVHJhaWxfMSA9IHJlcXVpcmUoXCIuL1RyYWlsXCIpO1xuY29uc3QgUGF0aF8xID0gcmVxdWlyZShcIi4vUGF0aC9QYXRoXCIpO1xuY29uc3QgTW92ZUFuZ2xlXzEgPSByZXF1aXJlKFwiLi9Nb3ZlQW5nbGVcIik7XG5jb25zdCBNb3ZlR3Jhdml0eV8xID0gcmVxdWlyZShcIi4vTW92ZUdyYXZpdHlcIik7XG5jb25zdCBPdXRNb2Rlc18xID0gcmVxdWlyZShcIi4vT3V0TW9kZXNcIik7XG5jb25zdCBVdGlsc18xID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL1V0aWxzXCIpO1xuY29uc3QgU3Bpbl8xID0gcmVxdWlyZShcIi4vU3BpblwiKTtcbmNsYXNzIE1vdmUge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmFuZ2xlID0gbmV3IE1vdmVBbmdsZV8xLk1vdmVBbmdsZSgpO1xuICAgICAgICB0aGlzLmF0dHJhY3QgPSBuZXcgQXR0cmFjdF8xLkF0dHJhY3QoKTtcbiAgICAgICAgdGhpcy5kZWNheSA9IDA7XG4gICAgICAgIHRoaXMuZGlzdGFuY2UgPSB7fTtcbiAgICAgICAgdGhpcy5kaXJlY3Rpb24gPSBFbnVtc18xLk1vdmVEaXJlY3Rpb24ubm9uZTtcbiAgICAgICAgdGhpcy5kcmlmdCA9IDA7XG4gICAgICAgIHRoaXMuZW5hYmxlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZ3Jhdml0eSA9IG5ldyBNb3ZlR3Jhdml0eV8xLk1vdmVHcmF2aXR5KCk7XG4gICAgICAgIHRoaXMucGF0aCA9IG5ldyBQYXRoXzEuUGF0aCgpO1xuICAgICAgICB0aGlzLm91dE1vZGVzID0gbmV3IE91dE1vZGVzXzEuT3V0TW9kZXMoKTtcbiAgICAgICAgdGhpcy5yYW5kb20gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zaXplID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc3BlZWQgPSAyO1xuICAgICAgICB0aGlzLnNwaW4gPSBuZXcgU3Bpbl8xLlNwaW4oKTtcbiAgICAgICAgdGhpcy5zdHJhaWdodCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnRyYWlsID0gbmV3IFRyYWlsXzEuVHJhaWwoKTtcbiAgICAgICAgdGhpcy52aWJyYXRlID0gZmFsc2U7XG4gICAgICAgIHRoaXMud2FycCA9IGZhbHNlO1xuICAgIH1cbiAgICBnZXQgY29sbGlzaW9ucygpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBzZXQgY29sbGlzaW9ucyh2YWx1ZSkge1xuICAgIH1cbiAgICBnZXQgYm91bmNlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2xsaXNpb25zO1xuICAgIH1cbiAgICBzZXQgYm91bmNlKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuY29sbGlzaW9ucyA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgb3V0X21vZGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm91dE1vZGU7XG4gICAgfVxuICAgIHNldCBvdXRfbW9kZSh2YWx1ZSkge1xuICAgICAgICB0aGlzLm91dE1vZGUgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IG91dE1vZGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm91dE1vZGVzLmRlZmF1bHQ7XG4gICAgfVxuICAgIHNldCBvdXRNb2RlKHZhbHVlKSB7XG4gICAgICAgIHRoaXMub3V0TW9kZXMuZGVmYXVsdCA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgbm9pc2UoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhdGg7XG4gICAgfVxuICAgIHNldCBub2lzZSh2YWx1ZSkge1xuICAgICAgICB0aGlzLnBhdGggPSB2YWx1ZTtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuYW5nbGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBkYXRhLmFuZ2xlID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hbmdsZS52YWx1ZSA9IGRhdGEuYW5nbGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFuZ2xlLmxvYWQoZGF0YS5hbmdsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hdHRyYWN0LmxvYWQoZGF0YS5hdHRyYWN0KTtcbiAgICAgICAgaWYgKGRhdGEuZGVjYXkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5kZWNheSA9IGRhdGEuZGVjYXk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZGlyZWN0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZGlyZWN0aW9uID0gZGF0YS5kaXJlY3Rpb247XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZGlzdGFuY2UgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5kaXN0YW5jZSA9XG4gICAgICAgICAgICAgICAgdHlwZW9mIGRhdGEuZGlzdGFuY2UgPT09IFwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBob3Jpem9udGFsOiBkYXRhLmRpc3RhbmNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmVydGljYWw6IGRhdGEuZGlzdGFuY2UsXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgOiAoMCwgVXRpbHNfMS5kZWVwRXh0ZW5kKSh7fSwgZGF0YS5kaXN0YW5jZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZHJpZnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5kcmlmdCA9ICgwLCBVdGlsc18xLnNldFJhbmdlVmFsdWUpKGRhdGEuZHJpZnQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmVuYWJsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZSA9IGRhdGEuZW5hYmxlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZ3Jhdml0eS5sb2FkKGRhdGEuZ3Jhdml0eSk7XG4gICAgICAgIGNvbnN0IG91dE1vZGUgPSAoX2EgPSBkYXRhLm91dE1vZGUpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGRhdGEub3V0X21vZGU7XG4gICAgICAgIGlmIChkYXRhLm91dE1vZGVzICE9PSB1bmRlZmluZWQgfHwgb3V0TW9kZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGRhdGEub3V0TW9kZXMgPT09IFwic3RyaW5nXCIgfHwgKGRhdGEub3V0TW9kZXMgPT09IHVuZGVmaW5lZCAmJiBvdXRNb2RlICE9PSB1bmRlZmluZWQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vdXRNb2Rlcy5sb2FkKHtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogKF9iID0gZGF0YS5vdXRNb2RlcykgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogb3V0TW9kZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMub3V0TW9kZXMubG9hZChkYXRhLm91dE1vZGVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnBhdGgubG9hZCgoX2MgPSBkYXRhLnBhdGgpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IGRhdGEubm9pc2UpO1xuICAgICAgICBpZiAoZGF0YS5yYW5kb20gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5yYW5kb20gPSBkYXRhLnJhbmRvbTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5zaXplICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2l6ZSA9IGRhdGEuc2l6ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5zcGVlZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnNwZWVkID0gKDAsIFV0aWxzXzEuc2V0UmFuZ2VWYWx1ZSkoZGF0YS5zcGVlZCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zcGluLmxvYWQoZGF0YS5zcGluKTtcbiAgICAgICAgaWYgKGRhdGEuc3RyYWlnaHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5zdHJhaWdodCA9IGRhdGEuc3RyYWlnaHQ7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50cmFpbC5sb2FkKGRhdGEudHJhaWwpO1xuICAgICAgICBpZiAoZGF0YS52aWJyYXRlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMudmlicmF0ZSA9IGRhdGEudmlicmF0ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS53YXJwICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMud2FycCA9IGRhdGEud2FycDtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuTW92ZSA9IE1vdmU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Move/Move.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Move/MoveAngle.js": +/*!******************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Move/MoveAngle.js ***! + \******************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.MoveAngle = void 0;\nclass MoveAngle {\n constructor() {\n this.offset = 0;\n this.value = 90;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.offset !== undefined) {\n this.offset = data.offset;\n }\n if (data.value !== undefined) {\n this.value = data.value;\n }\n }\n}\nexports.MoveAngle = MoveAngle;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Nb3ZlL01vdmVBbmdsZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Nb3ZlL01vdmVBbmdsZS5qcz84OTdiIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Nb3ZlQW5nbGUgPSB2b2lkIDA7XG5jbGFzcyBNb3ZlQW5nbGUge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLm9mZnNldCA9IDA7XG4gICAgICAgIHRoaXMudmFsdWUgPSA5MDtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5vZmZzZXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5vZmZzZXQgPSBkYXRhLm9mZnNldDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gZGF0YS52YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuTW92ZUFuZ2xlID0gTW92ZUFuZ2xlO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Move/MoveAngle.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Move/MoveGravity.js": +/*!********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Move/MoveGravity.js ***! + \********************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.MoveGravity = void 0;\nclass MoveGravity {\n constructor() {\n this.acceleration = 9.81;\n this.enable = false;\n this.inverse = false;\n this.maxSpeed = 50;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.acceleration !== undefined) {\n this.acceleration = data.acceleration;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.inverse !== undefined) {\n this.inverse = data.inverse;\n }\n if (data.maxSpeed !== undefined) {\n this.maxSpeed = data.maxSpeed;\n }\n }\n}\nexports.MoveGravity = MoveGravity;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Nb3ZlL01vdmVHcmF2aXR5LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELG1CQUFtQjtBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Nb3ZlL01vdmVHcmF2aXR5LmpzPzM4ZTAiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLk1vdmVHcmF2aXR5ID0gdm9pZCAwO1xuY2xhc3MgTW92ZUdyYXZpdHkge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmFjY2VsZXJhdGlvbiA9IDkuODE7XG4gICAgICAgIHRoaXMuZW5hYmxlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaW52ZXJzZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLm1heFNwZWVkID0gNTA7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5hY2NlbGVyYXRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5hY2NlbGVyYXRpb24gPSBkYXRhLmFjY2VsZXJhdGlvbjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5lbmFibGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5lbmFibGUgPSBkYXRhLmVuYWJsZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5pbnZlcnNlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuaW52ZXJzZSA9IGRhdGEuaW52ZXJzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5tYXhTcGVlZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLm1heFNwZWVkID0gZGF0YS5tYXhTcGVlZDtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuTW92ZUdyYXZpdHkgPSBNb3ZlR3Jhdml0eTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Move/MoveGravity.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Move/OutModes.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Move/OutModes.js ***! + \*****************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.OutModes = void 0;\nconst Modes_1 = __webpack_require__(/*! ../../../../Enums/Modes */ \"./node_modules/tsparticles/Enums/Modes/index.js\");\nclass OutModes {\n constructor() {\n this.default = Modes_1.OutMode.out;\n }\n load(data) {\n var _a, _b, _c, _d;\n if (!data) {\n return;\n }\n if (data.default !== undefined) {\n this.default = data.default;\n }\n this.bottom = (_a = data.bottom) !== null && _a !== void 0 ? _a : data.default;\n this.left = (_b = data.left) !== null && _b !== void 0 ? _b : data.default;\n this.right = (_c = data.right) !== null && _c !== void 0 ? _c : data.default;\n this.top = (_d = data.top) !== null && _d !== void 0 ? _d : data.default;\n }\n}\nexports.OutModes = OutModes;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Nb3ZlL091dE1vZGVzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGdCQUFnQjtBQUNoQixnQkFBZ0IsbUJBQU8sQ0FBQyxnRkFBeUI7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvUGFydGljbGVzL01vdmUvT3V0TW9kZXMuanM/M2NiZSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuT3V0TW9kZXMgPSB2b2lkIDA7XG5jb25zdCBNb2Rlc18xID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL0VudW1zL01vZGVzXCIpO1xuY2xhc3MgT3V0TW9kZXMge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmRlZmF1bHQgPSBNb2Rlc18xLk91dE1vZGUub3V0O1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kO1xuICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5kZWZhdWx0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdCA9IGRhdGEuZGVmYXVsdDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmJvdHRvbSA9IChfYSA9IGRhdGEuYm90dG9tKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBkYXRhLmRlZmF1bHQ7XG4gICAgICAgIHRoaXMubGVmdCA9IChfYiA9IGRhdGEubGVmdCkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogZGF0YS5kZWZhdWx0O1xuICAgICAgICB0aGlzLnJpZ2h0ID0gKF9jID0gZGF0YS5yaWdodCkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogZGF0YS5kZWZhdWx0O1xuICAgICAgICB0aGlzLnRvcCA9IChfZCA9IGRhdGEudG9wKSAhPT0gbnVsbCAmJiBfZCAhPT0gdm9pZCAwID8gX2QgOiBkYXRhLmRlZmF1bHQ7XG4gICAgfVxufVxuZXhwb3J0cy5PdXRNb2RlcyA9IE91dE1vZGVzO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Move/OutModes.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Move/Path/Path.js": +/*!******************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Move/Path/Path.js ***! + \******************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Path = void 0;\nconst PathDelay_1 = __webpack_require__(/*! ./PathDelay */ \"./node_modules/tsparticles/Options/Classes/Particles/Move/Path/PathDelay.js\");\nconst Utils_1 = __webpack_require__(/*! ../../../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass Path {\n constructor() {\n this.clamp = true;\n this.delay = new PathDelay_1.PathDelay();\n this.enable = false;\n this.options = {};\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.clamp !== undefined) {\n this.clamp = data.clamp;\n }\n this.delay.load(data.delay);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.generator = data.generator;\n if (data.options) {\n this.options = (0, Utils_1.deepExtend)(this.options, data.options);\n }\n }\n}\nexports.Path = Path;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Nb3ZlL1BhdGgvUGF0aC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxZQUFZO0FBQ1osb0JBQW9CLG1CQUFPLENBQUMsZ0dBQWE7QUFDekMsZ0JBQWdCLG1CQUFPLENBQUMsdUVBQXNCO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVkiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9QYXJ0aWNsZXMvTW92ZS9QYXRoL1BhdGguanM/NTc5ZSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuUGF0aCA9IHZvaWQgMDtcbmNvbnN0IFBhdGhEZWxheV8xID0gcmVxdWlyZShcIi4vUGF0aERlbGF5XCIpO1xuY29uc3QgVXRpbHNfMSA9IHJlcXVpcmUoXCIuLi8uLi8uLi8uLi8uLi9VdGlsc1wiKTtcbmNsYXNzIFBhdGgge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmNsYW1wID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5kZWxheSA9IG5ldyBQYXRoRGVsYXlfMS5QYXRoRGVsYXkoKTtcbiAgICAgICAgdGhpcy5lbmFibGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0ge307XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuY2xhbXAgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5jbGFtcCA9IGRhdGEuY2xhbXA7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kZWxheS5sb2FkKGRhdGEuZGVsYXkpO1xuICAgICAgICBpZiAoZGF0YS5lbmFibGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5lbmFibGUgPSBkYXRhLmVuYWJsZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmdlbmVyYXRvciA9IGRhdGEuZ2VuZXJhdG9yO1xuICAgICAgICBpZiAoZGF0YS5vcHRpb25zKSB7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMgPSAoMCwgVXRpbHNfMS5kZWVwRXh0ZW5kKSh0aGlzLm9wdGlvbnMsIGRhdGEub3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLlBhdGggPSBQYXRoO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Move/Path/Path.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Move/Path/PathDelay.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Move/Path/PathDelay.js ***! + \***********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.PathDelay = void 0;\nconst ValueWithRandom_1 = __webpack_require__(/*! ../../../ValueWithRandom */ \"./node_modules/tsparticles/Options/Classes/ValueWithRandom.js\");\nclass PathDelay extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n }\n}\nexports.PathDelay = PathDelay;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Nb3ZlL1BhdGgvUGF0aERlbGF5LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGlCQUFpQjtBQUNqQiwwQkFBMEIsbUJBQU8sQ0FBQywrRkFBMEI7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Nb3ZlL1BhdGgvUGF0aERlbGF5LmpzP2EzNGYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlBhdGhEZWxheSA9IHZvaWQgMDtcbmNvbnN0IFZhbHVlV2l0aFJhbmRvbV8xID0gcmVxdWlyZShcIi4uLy4uLy4uL1ZhbHVlV2l0aFJhbmRvbVwiKTtcbmNsYXNzIFBhdGhEZWxheSBleHRlbmRzIFZhbHVlV2l0aFJhbmRvbV8xLlZhbHVlV2l0aFJhbmRvbSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxufVxuZXhwb3J0cy5QYXRoRGVsYXkgPSBQYXRoRGVsYXk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Move/Path/PathDelay.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Move/Spin.js": +/*!*************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Move/Spin.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Spin = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass Spin {\n constructor() {\n this.acceleration = 0;\n this.enable = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.acceleration !== undefined) {\n this.acceleration = (0, Utils_1.setRangeValue)(data.acceleration);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.position = data.position ? (0, Utils_1.deepExtend)({}, data.position) : undefined;\n }\n}\nexports.Spin = Spin;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Nb3ZlL1NwaW4uanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsWUFBWTtBQUNaLGdCQUFnQixtQkFBTyxDQUFDLG9FQUFtQjtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrRUFBa0U7QUFDbEU7QUFDQTtBQUNBLFlBQVkiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9QYXJ0aWNsZXMvTW92ZS9TcGluLmpzPzk5N2IiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlNwaW4gPSB2b2lkIDA7XG5jb25zdCBVdGlsc18xID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL1V0aWxzXCIpO1xuY2xhc3MgU3BpbiB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuYWNjZWxlcmF0aW9uID0gMDtcbiAgICAgICAgdGhpcy5lbmFibGUgPSBmYWxzZTtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmFjY2VsZXJhdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmFjY2VsZXJhdGlvbiA9ICgwLCBVdGlsc18xLnNldFJhbmdlVmFsdWUpKGRhdGEuYWNjZWxlcmF0aW9uKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5lbmFibGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5lbmFibGUgPSBkYXRhLmVuYWJsZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnBvc2l0aW9uID0gZGF0YS5wb3NpdGlvbiA/ICgwLCBVdGlsc18xLmRlZXBFeHRlbmQpKHt9LCBkYXRhLnBvc2l0aW9uKSA6IHVuZGVmaW5lZDtcbiAgICB9XG59XG5leHBvcnRzLlNwaW4gPSBTcGluO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Move/Spin.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Move/Trail.js": +/*!**************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Move/Trail.js ***! + \**************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Trail = void 0;\nconst OptionsColor_1 = __webpack_require__(/*! ../../OptionsColor */ \"./node_modules/tsparticles/Options/Classes/OptionsColor.js\");\nclass Trail {\n constructor() {\n this.enable = false;\n this.length = 10;\n this.fillColor = new OptionsColor_1.OptionsColor();\n this.fillColor.value = \"#000000\";\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.fillColor = OptionsColor_1.OptionsColor.create(this.fillColor, data.fillColor);\n if (data.length !== undefined) {\n this.length = data.length;\n }\n }\n}\nexports.Trail = Trail;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Nb3ZlL1RyYWlsLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGFBQWE7QUFDYix1QkFBdUIsbUJBQU8sQ0FBQyxzRkFBb0I7QUFDbkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9QYXJ0aWNsZXMvTW92ZS9UcmFpbC5qcz83YTljIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5UcmFpbCA9IHZvaWQgMDtcbmNvbnN0IE9wdGlvbnNDb2xvcl8xID0gcmVxdWlyZShcIi4uLy4uL09wdGlvbnNDb2xvclwiKTtcbmNsYXNzIFRyYWlsIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5lbmFibGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5sZW5ndGggPSAxMDtcbiAgICAgICAgdGhpcy5maWxsQ29sb3IgPSBuZXcgT3B0aW9uc0NvbG9yXzEuT3B0aW9uc0NvbG9yKCk7XG4gICAgICAgIHRoaXMuZmlsbENvbG9yLnZhbHVlID0gXCIjMDAwMDAwXCI7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZW5hYmxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlID0gZGF0YS5lbmFibGU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5maWxsQ29sb3IgPSBPcHRpb25zQ29sb3JfMS5PcHRpb25zQ29sb3IuY3JlYXRlKHRoaXMuZmlsbENvbG9yLCBkYXRhLmZpbGxDb2xvcik7XG4gICAgICAgIGlmIChkYXRhLmxlbmd0aCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmxlbmd0aCA9IGRhdGEubGVuZ3RoO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5UcmFpbCA9IFRyYWlsO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Move/Trail.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Number/Density.js": +/*!******************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Number/Density.js ***! + \******************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Density = void 0;\nclass Density {\n constructor() {\n this.enable = false;\n this.area = 800;\n this.factor = 1000;\n }\n get value_area() {\n return this.area;\n }\n set value_area(value) {\n this.area = value;\n }\n load(data) {\n var _a;\n if (data === undefined) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n const area = (_a = data.area) !== null && _a !== void 0 ? _a : data.value_area;\n if (area !== undefined) {\n this.area = area;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n }\n}\nexports.Density = Density;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9OdW1iZXIvRGVuc2l0eS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxlQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9QYXJ0aWNsZXMvTnVtYmVyL0RlbnNpdHkuanM/NTBjYyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuRGVuc2l0eSA9IHZvaWQgMDtcbmNsYXNzIERlbnNpdHkge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmVuYWJsZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmFyZWEgPSA4MDA7XG4gICAgICAgIHRoaXMuZmFjdG9yID0gMTAwMDtcbiAgICB9XG4gICAgZ2V0IHZhbHVlX2FyZWEoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFyZWE7XG4gICAgfVxuICAgIHNldCB2YWx1ZV9hcmVhKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuYXJlYSA9IHZhbHVlO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZW5hYmxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlID0gZGF0YS5lbmFibGU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYXJlYSA9IChfYSA9IGRhdGEuYXJlYSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogZGF0YS52YWx1ZV9hcmVhO1xuICAgICAgICBpZiAoYXJlYSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmFyZWEgPSBhcmVhO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmZhY3RvciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmZhY3RvciA9IGRhdGEuZmFjdG9yO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5EZW5zaXR5ID0gRGVuc2l0eTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Number/Density.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Number/ParticlesNumber.js": +/*!**************************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Number/ParticlesNumber.js ***! + \**************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ParticlesNumber = void 0;\nconst Density_1 = __webpack_require__(/*! ./Density */ \"./node_modules/tsparticles/Options/Classes/Particles/Number/Density.js\");\nclass ParticlesNumber {\n constructor() {\n this.density = new Density_1.Density();\n this.limit = 0;\n this.value = 100;\n }\n get max() {\n return this.limit;\n }\n set max(value) {\n this.limit = value;\n }\n load(data) {\n var _a;\n if (data === undefined) {\n return;\n }\n this.density.load(data.density);\n const limit = (_a = data.limit) !== null && _a !== void 0 ? _a : data.max;\n if (limit !== undefined) {\n this.limit = limit;\n }\n if (data.value !== undefined) {\n this.value = data.value;\n }\n }\n}\nexports.ParticlesNumber = ParticlesNumber;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9OdW1iZXIvUGFydGljbGVzTnVtYmVyLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHVCQUF1QjtBQUN2QixrQkFBa0IsbUJBQU8sQ0FBQyx5RkFBVztBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9QYXJ0aWNsZXMvTnVtYmVyL1BhcnRpY2xlc051bWJlci5qcz8wY2I4Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5QYXJ0aWNsZXNOdW1iZXIgPSB2b2lkIDA7XG5jb25zdCBEZW5zaXR5XzEgPSByZXF1aXJlKFwiLi9EZW5zaXR5XCIpO1xuY2xhc3MgUGFydGljbGVzTnVtYmVyIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5kZW5zaXR5ID0gbmV3IERlbnNpdHlfMS5EZW5zaXR5KCk7XG4gICAgICAgIHRoaXMubGltaXQgPSAwO1xuICAgICAgICB0aGlzLnZhbHVlID0gMTAwO1xuICAgIH1cbiAgICBnZXQgbWF4KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5saW1pdDtcbiAgICB9XG4gICAgc2V0IG1heCh2YWx1ZSkge1xuICAgICAgICB0aGlzLmxpbWl0ID0gdmFsdWU7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRlbnNpdHkubG9hZChkYXRhLmRlbnNpdHkpO1xuICAgICAgICBjb25zdCBsaW1pdCA9IChfYSA9IGRhdGEubGltaXQpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGRhdGEubWF4O1xuICAgICAgICBpZiAobGltaXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5saW1pdCA9IGxpbWl0O1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBkYXRhLnZhbHVlO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5QYXJ0aWNsZXNOdW1iZXIgPSBQYXJ0aWNsZXNOdW1iZXI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Number/ParticlesNumber.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Opacity/Opacity.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Opacity/Opacity.js ***! + \*******************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Opacity = void 0;\nconst OpacityAnimation_1 = __webpack_require__(/*! ./OpacityAnimation */ \"./node_modules/tsparticles/Options/Classes/Particles/Opacity/OpacityAnimation.js\");\nconst ValueWithRandom_1 = __webpack_require__(/*! ../../ValueWithRandom */ \"./node_modules/tsparticles/Options/Classes/ValueWithRandom.js\");\nconst Utils_1 = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass Opacity extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n this.animation = new OpacityAnimation_1.OpacityAnimation();\n this.random.minimumValue = 0.1;\n this.value = 1;\n }\n get anim() {\n return this.animation;\n }\n set anim(value) {\n this.animation = value;\n }\n load(data) {\n var _a;\n if (!data) {\n return;\n }\n super.load(data);\n const animation = (_a = data.animation) !== null && _a !== void 0 ? _a : data.anim;\n if (animation !== undefined) {\n this.animation.load(animation);\n this.value = (0, Utils_1.setRangeValue)(this.value, this.animation.enable ? this.animation.minimumValue : undefined);\n }\n }\n}\nexports.Opacity = Opacity;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9PcGFjaXR5L09wYWNpdHkuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsZUFBZTtBQUNmLDJCQUEyQixtQkFBTyxDQUFDLDRHQUFvQjtBQUN2RCwwQkFBMEIsbUJBQU8sQ0FBQyw0RkFBdUI7QUFDekQsZ0JBQWdCLG1CQUFPLENBQUMsb0VBQW1CO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvUGFydGljbGVzL09wYWNpdHkvT3BhY2l0eS5qcz81MWE2Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5PcGFjaXR5ID0gdm9pZCAwO1xuY29uc3QgT3BhY2l0eUFuaW1hdGlvbl8xID0gcmVxdWlyZShcIi4vT3BhY2l0eUFuaW1hdGlvblwiKTtcbmNvbnN0IFZhbHVlV2l0aFJhbmRvbV8xID0gcmVxdWlyZShcIi4uLy4uL1ZhbHVlV2l0aFJhbmRvbVwiKTtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vVXRpbHNcIik7XG5jbGFzcyBPcGFjaXR5IGV4dGVuZHMgVmFsdWVXaXRoUmFuZG9tXzEuVmFsdWVXaXRoUmFuZG9tIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5hbmltYXRpb24gPSBuZXcgT3BhY2l0eUFuaW1hdGlvbl8xLk9wYWNpdHlBbmltYXRpb24oKTtcbiAgICAgICAgdGhpcy5yYW5kb20ubWluaW11bVZhbHVlID0gMC4xO1xuICAgICAgICB0aGlzLnZhbHVlID0gMTtcbiAgICB9XG4gICAgZ2V0IGFuaW0oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFuaW1hdGlvbjtcbiAgICB9XG4gICAgc2V0IGFuaW0odmFsdWUpIHtcbiAgICAgICAgdGhpcy5hbmltYXRpb24gPSB2YWx1ZTtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc3VwZXIubG9hZChkYXRhKTtcbiAgICAgICAgY29uc3QgYW5pbWF0aW9uID0gKF9hID0gZGF0YS5hbmltYXRpb24pICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGRhdGEuYW5pbTtcbiAgICAgICAgaWYgKGFuaW1hdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmFuaW1hdGlvbi5sb2FkKGFuaW1hdGlvbik7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gKDAsIFV0aWxzXzEuc2V0UmFuZ2VWYWx1ZSkodGhpcy52YWx1ZSwgdGhpcy5hbmltYXRpb24uZW5hYmxlID8gdGhpcy5hbmltYXRpb24ubWluaW11bVZhbHVlIDogdW5kZWZpbmVkKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuT3BhY2l0eSA9IE9wYWNpdHk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Opacity/Opacity.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Opacity/OpacityAnimation.js": +/*!****************************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Opacity/OpacityAnimation.js ***! + \****************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.OpacityAnimation = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst AnimationOptions_1 = __webpack_require__(/*! ../../AnimationOptions */ \"./node_modules/tsparticles/Options/Classes/AnimationOptions.js\");\nclass OpacityAnimation extends AnimationOptions_1.AnimationOptions {\n constructor() {\n super();\n this.destroy = Enums_1.DestroyType.none;\n this.enable = false;\n this.speed = 2;\n this.startValue = Enums_1.StartValueType.random;\n this.sync = false;\n }\n get opacity_min() {\n return this.minimumValue;\n }\n set opacity_min(value) {\n this.minimumValue = value;\n }\n load(data) {\n var _a;\n if (data === undefined) {\n return;\n }\n super.load(data);\n if (data.destroy !== undefined) {\n this.destroy = data.destroy;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.minimumValue = (_a = data.minimumValue) !== null && _a !== void 0 ? _a : data.opacity_min;\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n if (data.startValue !== undefined) {\n this.startValue = data.startValue;\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\nexports.OpacityAnimation = OpacityAnimation;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9PcGFjaXR5L09wYWNpdHlBbmltYXRpb24uanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsd0JBQXdCO0FBQ3hCLGdCQUFnQixtQkFBTyxDQUFDLG9FQUFtQjtBQUMzQywyQkFBMkIsbUJBQU8sQ0FBQyw4RkFBd0I7QUFDM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvUGFydGljbGVzL09wYWNpdHkvT3BhY2l0eUFuaW1hdGlvbi5qcz8wYThlIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5PcGFjaXR5QW5pbWF0aW9uID0gdm9pZCAwO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuLi8uLi8uLi8uLi9FbnVtc1wiKTtcbmNvbnN0IEFuaW1hdGlvbk9wdGlvbnNfMSA9IHJlcXVpcmUoXCIuLi8uLi9BbmltYXRpb25PcHRpb25zXCIpO1xuY2xhc3MgT3BhY2l0eUFuaW1hdGlvbiBleHRlbmRzIEFuaW1hdGlvbk9wdGlvbnNfMS5BbmltYXRpb25PcHRpb25zIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95ID0gRW51bXNfMS5EZXN0cm95VHlwZS5ub25lO1xuICAgICAgICB0aGlzLmVuYWJsZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNwZWVkID0gMjtcbiAgICAgICAgdGhpcy5zdGFydFZhbHVlID0gRW51bXNfMS5TdGFydFZhbHVlVHlwZS5yYW5kb207XG4gICAgICAgIHRoaXMuc3luYyA9IGZhbHNlO1xuICAgIH1cbiAgICBnZXQgb3BhY2l0eV9taW4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1pbmltdW1WYWx1ZTtcbiAgICB9XG4gICAgc2V0IG9wYWNpdHlfbWluKHZhbHVlKSB7XG4gICAgICAgIHRoaXMubWluaW11bVZhbHVlID0gdmFsdWU7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzdXBlci5sb2FkKGRhdGEpO1xuICAgICAgICBpZiAoZGF0YS5kZXN0cm95ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveSA9IGRhdGEuZGVzdHJveTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5lbmFibGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5lbmFibGUgPSBkYXRhLmVuYWJsZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1pbmltdW1WYWx1ZSA9IChfYSA9IGRhdGEubWluaW11bVZhbHVlKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBkYXRhLm9wYWNpdHlfbWluO1xuICAgICAgICBpZiAoZGF0YS5zcGVlZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnNwZWVkID0gZGF0YS5zcGVlZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5zdGFydFZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnRWYWx1ZSA9IGRhdGEuc3RhcnRWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5zeW5jICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc3luYyA9IGRhdGEuc3luYztcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuT3BhY2l0eUFuaW1hdGlvbiA9IE9wYWNpdHlBbmltYXRpb247XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Opacity/OpacityAnimation.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Orbit/Orbit.js": +/*!***************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Orbit/Orbit.js ***! + \***************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Orbit = void 0;\nconst OrbitRotation_1 = __webpack_require__(/*! ./OrbitRotation */ \"./node_modules/tsparticles/Options/Classes/Particles/Orbit/OrbitRotation.js\");\nconst OptionsColor_1 = __webpack_require__(/*! ../../OptionsColor */ \"./node_modules/tsparticles/Options/Classes/OptionsColor.js\");\nconst AnimationOptions_1 = __webpack_require__(/*! ../../AnimationOptions */ \"./node_modules/tsparticles/Options/Classes/AnimationOptions.js\");\nclass Orbit {\n constructor() {\n this.animation = new AnimationOptions_1.AnimationOptions();\n this.enable = false;\n this.opacity = 1;\n this.rotation = new OrbitRotation_1.OrbitRotation();\n this.width = 1;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n this.animation.load(data.animation);\n this.rotation.load(data.rotation);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n if (data.width !== undefined) {\n this.width = data.width;\n }\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor_1.OptionsColor.create(this.color, data.color);\n }\n }\n}\nexports.Orbit = Orbit;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9PcmJpdC9PcmJpdC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxhQUFhO0FBQ2Isd0JBQXdCLG1CQUFPLENBQUMsb0dBQWlCO0FBQ2pELHVCQUF1QixtQkFBTyxDQUFDLHNGQUFvQjtBQUNuRCwyQkFBMkIsbUJBQU8sQ0FBQyw4RkFBd0I7QUFDM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvUGFydGljbGVzL09yYml0L09yYml0LmpzP2M1MjQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLk9yYml0ID0gdm9pZCAwO1xuY29uc3QgT3JiaXRSb3RhdGlvbl8xID0gcmVxdWlyZShcIi4vT3JiaXRSb3RhdGlvblwiKTtcbmNvbnN0IE9wdGlvbnNDb2xvcl8xID0gcmVxdWlyZShcIi4uLy4uL09wdGlvbnNDb2xvclwiKTtcbmNvbnN0IEFuaW1hdGlvbk9wdGlvbnNfMSA9IHJlcXVpcmUoXCIuLi8uLi9BbmltYXRpb25PcHRpb25zXCIpO1xuY2xhc3MgT3JiaXQge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmFuaW1hdGlvbiA9IG5ldyBBbmltYXRpb25PcHRpb25zXzEuQW5pbWF0aW9uT3B0aW9ucygpO1xuICAgICAgICB0aGlzLmVuYWJsZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLm9wYWNpdHkgPSAxO1xuICAgICAgICB0aGlzLnJvdGF0aW9uID0gbmV3IE9yYml0Um90YXRpb25fMS5PcmJpdFJvdGF0aW9uKCk7XG4gICAgICAgIHRoaXMud2lkdGggPSAxO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYW5pbWF0aW9uLmxvYWQoZGF0YS5hbmltYXRpb24pO1xuICAgICAgICB0aGlzLnJvdGF0aW9uLmxvYWQoZGF0YS5yb3RhdGlvbik7XG4gICAgICAgIGlmIChkYXRhLmVuYWJsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZSA9IGRhdGEuZW5hYmxlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLm9wYWNpdHkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5vcGFjaXR5ID0gZGF0YS5vcGFjaXR5O1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLndpZHRoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMud2lkdGggPSBkYXRhLndpZHRoO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnJhZGl1cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnJhZGl1cyA9IGRhdGEucmFkaXVzO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmNvbG9yICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29sb3IgPSBPcHRpb25zQ29sb3JfMS5PcHRpb25zQ29sb3IuY3JlYXRlKHRoaXMuY29sb3IsIGRhdGEuY29sb3IpO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5PcmJpdCA9IE9yYml0O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Orbit/Orbit.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Orbit/OrbitRotation.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Orbit/OrbitRotation.js ***! + \***********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.OrbitRotation = void 0;\nconst ValueWithRandom_1 = __webpack_require__(/*! ../../ValueWithRandom */ \"./node_modules/tsparticles/Options/Classes/ValueWithRandom.js\");\nclass OrbitRotation extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n this.value = 45;\n this.random.enable = false;\n this.random.minimumValue = 0;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n super.load(data);\n }\n}\nexports.OrbitRotation = OrbitRotation;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9PcmJpdC9PcmJpdFJvdGF0aW9uLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHFCQUFxQjtBQUNyQiwwQkFBMEIsbUJBQU8sQ0FBQyw0RkFBdUI7QUFDekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9PcmJpdC9PcmJpdFJvdGF0aW9uLmpzPzg2ZWUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLk9yYml0Um90YXRpb24gPSB2b2lkIDA7XG5jb25zdCBWYWx1ZVdpdGhSYW5kb21fMSA9IHJlcXVpcmUoXCIuLi8uLi9WYWx1ZVdpdGhSYW5kb21cIik7XG5jbGFzcyBPcmJpdFJvdGF0aW9uIGV4dGVuZHMgVmFsdWVXaXRoUmFuZG9tXzEuVmFsdWVXaXRoUmFuZG9tIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy52YWx1ZSA9IDQ1O1xuICAgICAgICB0aGlzLnJhbmRvbS5lbmFibGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5yYW5kb20ubWluaW11bVZhbHVlID0gMDtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzdXBlci5sb2FkKGRhdGEpO1xuICAgIH1cbn1cbmV4cG9ydHMuT3JiaXRSb3RhdGlvbiA9IE9yYml0Um90YXRpb247XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Orbit/OrbitRotation.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/ParticlesOptions.js": +/*!********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/ParticlesOptions.js ***! + \********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ParticlesOptions = void 0;\nconst Links_1 = __webpack_require__(/*! ./Links/Links */ \"./node_modules/tsparticles/Options/Classes/Particles/Links/Links.js\");\nconst Move_1 = __webpack_require__(/*! ./Move/Move */ \"./node_modules/tsparticles/Options/Classes/Particles/Move/Move.js\");\nconst ParticlesNumber_1 = __webpack_require__(/*! ./Number/ParticlesNumber */ \"./node_modules/tsparticles/Options/Classes/Particles/Number/ParticlesNumber.js\");\nconst Opacity_1 = __webpack_require__(/*! ./Opacity/Opacity */ \"./node_modules/tsparticles/Options/Classes/Particles/Opacity/Opacity.js\");\nconst Shape_1 = __webpack_require__(/*! ./Shape/Shape */ \"./node_modules/tsparticles/Options/Classes/Particles/Shape/Shape.js\");\nconst Size_1 = __webpack_require__(/*! ./Size/Size */ \"./node_modules/tsparticles/Options/Classes/Particles/Size/Size.js\");\nconst Rotate_1 = __webpack_require__(/*! ./Rotate/Rotate */ \"./node_modules/tsparticles/Options/Classes/Particles/Rotate/Rotate.js\");\nconst Shadow_1 = __webpack_require__(/*! ./Shadow */ \"./node_modules/tsparticles/Options/Classes/Particles/Shadow.js\");\nconst Stroke_1 = __webpack_require__(/*! ./Stroke */ \"./node_modules/tsparticles/Options/Classes/Particles/Stroke.js\");\nconst Collisions_1 = __webpack_require__(/*! ./Collisions/Collisions */ \"./node_modules/tsparticles/Options/Classes/Particles/Collisions/Collisions.js\");\nconst Twinkle_1 = __webpack_require__(/*! ./Twinkle/Twinkle */ \"./node_modules/tsparticles/Options/Classes/Particles/Twinkle/Twinkle.js\");\nconst AnimatableColor_1 = __webpack_require__(/*! ../AnimatableColor */ \"./node_modules/tsparticles/Options/Classes/AnimatableColor.js\");\nconst Life_1 = __webpack_require__(/*! ./Life/Life */ \"./node_modules/tsparticles/Options/Classes/Particles/Life/Life.js\");\nconst Bounce_1 = __webpack_require__(/*! ./Bounce/Bounce */ \"./node_modules/tsparticles/Options/Classes/Particles/Bounce/Bounce.js\");\nconst Destroy_1 = __webpack_require__(/*! ./Destroy/Destroy */ \"./node_modules/tsparticles/Options/Classes/Particles/Destroy/Destroy.js\");\nconst Wobble_1 = __webpack_require__(/*! ./Wobble/Wobble */ \"./node_modules/tsparticles/Options/Classes/Particles/Wobble/Wobble.js\");\nconst Tilt_1 = __webpack_require__(/*! ./Tilt/Tilt */ \"./node_modules/tsparticles/Options/Classes/Particles/Tilt/Tilt.js\");\nconst Roll_1 = __webpack_require__(/*! ./Roll/Roll */ \"./node_modules/tsparticles/Options/Classes/Particles/Roll/Roll.js\");\nconst ZIndex_1 = __webpack_require__(/*! ./ZIndex/ZIndex */ \"./node_modules/tsparticles/Options/Classes/Particles/ZIndex/ZIndex.js\");\nconst Utils_1 = __webpack_require__(/*! ../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Orbit_1 = __webpack_require__(/*! ./Orbit/Orbit */ \"./node_modules/tsparticles/Options/Classes/Particles/Orbit/Orbit.js\");\nconst Repulse_1 = __webpack_require__(/*! ./Repulse/Repulse */ \"./node_modules/tsparticles/Options/Classes/Particles/Repulse/Repulse.js\");\nconst AnimatableGradient_1 = __webpack_require__(/*! ../AnimatableGradient */ \"./node_modules/tsparticles/Options/Classes/AnimatableGradient.js\");\nclass ParticlesOptions {\n constructor() {\n this.bounce = new Bounce_1.Bounce();\n this.collisions = new Collisions_1.Collisions();\n this.color = new AnimatableColor_1.AnimatableColor();\n this.destroy = new Destroy_1.Destroy();\n this.gradient = [];\n this.groups = {};\n this.life = new Life_1.Life();\n this.links = new Links_1.Links();\n this.move = new Move_1.Move();\n this.number = new ParticlesNumber_1.ParticlesNumber();\n this.opacity = new Opacity_1.Opacity();\n this.orbit = new Orbit_1.Orbit();\n this.reduceDuplicates = false;\n this.repulse = new Repulse_1.Repulse();\n this.roll = new Roll_1.Roll();\n this.rotate = new Rotate_1.Rotate();\n this.shadow = new Shadow_1.Shadow();\n this.shape = new Shape_1.Shape();\n this.size = new Size_1.Size();\n this.stroke = new Stroke_1.Stroke();\n this.tilt = new Tilt_1.Tilt();\n this.twinkle = new Twinkle_1.Twinkle();\n this.wobble = new Wobble_1.Wobble();\n this.zIndex = new ZIndex_1.ZIndex();\n }\n get line_linked() {\n return this.links;\n }\n set line_linked(value) {\n this.links = value;\n }\n get lineLinked() {\n return this.links;\n }\n set lineLinked(value) {\n this.links = value;\n }\n load(data) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n if (data === undefined) {\n return;\n }\n this.bounce.load(data.bounce);\n this.color.load(AnimatableColor_1.AnimatableColor.create(this.color, data.color));\n this.destroy.load(data.destroy);\n this.life.load(data.life);\n const links = (_b = (_a = data.links) !== null && _a !== void 0 ? _a : data.lineLinked) !== null && _b !== void 0 ? _b : data.line_linked;\n if (links !== undefined) {\n this.links.load(links);\n }\n if (data.groups !== undefined) {\n for (const group in data.groups) {\n const item = data.groups[group];\n if (item !== undefined) {\n this.groups[group] = (0, Utils_1.deepExtend)((_c = this.groups[group]) !== null && _c !== void 0 ? _c : {}, item);\n }\n }\n }\n this.move.load(data.move);\n this.number.load(data.number);\n this.opacity.load(data.opacity);\n this.orbit.load(data.orbit);\n if (data.reduceDuplicates !== undefined) {\n this.reduceDuplicates = data.reduceDuplicates;\n }\n this.repulse.load(data.repulse);\n this.roll.load(data.roll);\n this.rotate.load(data.rotate);\n this.shape.load(data.shape);\n this.size.load(data.size);\n this.shadow.load(data.shadow);\n this.tilt.load(data.tilt);\n this.twinkle.load(data.twinkle);\n this.wobble.load(data.wobble);\n this.zIndex.load(data.zIndex);\n const collisions = (_e = (_d = data.move) === null || _d === void 0 ? void 0 : _d.collisions) !== null && _e !== void 0 ? _e : (_f = data.move) === null || _f === void 0 ? void 0 : _f.bounce;\n if (collisions !== undefined) {\n this.collisions.enable = collisions;\n }\n this.collisions.load(data.collisions);\n const strokeToLoad = (_g = data.stroke) !== null && _g !== void 0 ? _g : (_h = data.shape) === null || _h === void 0 ? void 0 : _h.stroke;\n if (strokeToLoad) {\n if (strokeToLoad instanceof Array) {\n this.stroke = strokeToLoad.map((s) => {\n const tmp = new Stroke_1.Stroke();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.stroke instanceof Array) {\n this.stroke = new Stroke_1.Stroke();\n }\n this.stroke.load(strokeToLoad);\n }\n }\n const gradientToLoad = data.gradient;\n if (gradientToLoad) {\n if (gradientToLoad instanceof Array) {\n this.gradient = gradientToLoad.map((s) => {\n const tmp = new AnimatableGradient_1.AnimatableGradient();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.gradient instanceof Array) {\n this.gradient = new AnimatableGradient_1.AnimatableGradient();\n }\n this.gradient.load(gradientToLoad);\n }\n }\n }\n}\nexports.ParticlesOptions = ParticlesOptions;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9QYXJ0aWNsZXNPcHRpb25zLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHdCQUF3QjtBQUN4QixnQkFBZ0IsbUJBQU8sQ0FBQywwRkFBZTtBQUN2QyxlQUFlLG1CQUFPLENBQUMsc0ZBQWE7QUFDcEMsMEJBQTBCLG1CQUFPLENBQUMsZ0hBQTBCO0FBQzVELGtCQUFrQixtQkFBTyxDQUFDLGtHQUFtQjtBQUM3QyxnQkFBZ0IsbUJBQU8sQ0FBQywwRkFBZTtBQUN2QyxlQUFlLG1CQUFPLENBQUMsc0ZBQWE7QUFDcEMsaUJBQWlCLG1CQUFPLENBQUMsOEZBQWlCO0FBQzFDLGlCQUFpQixtQkFBTyxDQUFDLGdGQUFVO0FBQ25DLGlCQUFpQixtQkFBTyxDQUFDLGdGQUFVO0FBQ25DLHFCQUFxQixtQkFBTyxDQUFDLDhHQUF5QjtBQUN0RCxrQkFBa0IsbUJBQU8sQ0FBQyxrR0FBbUI7QUFDN0MsMEJBQTBCLG1CQUFPLENBQUMseUZBQW9CO0FBQ3RELGVBQWUsbUJBQU8sQ0FBQyxzRkFBYTtBQUNwQyxpQkFBaUIsbUJBQU8sQ0FBQyw4RkFBaUI7QUFDMUMsa0JBQWtCLG1CQUFPLENBQUMsa0dBQW1CO0FBQzdDLGlCQUFpQixtQkFBTyxDQUFDLDhGQUFpQjtBQUMxQyxlQUFlLG1CQUFPLENBQUMsc0ZBQWE7QUFDcEMsZUFBZSxtQkFBTyxDQUFDLHNGQUFhO0FBQ3BDLGlCQUFpQixtQkFBTyxDQUFDLDhGQUFpQjtBQUMxQyxnQkFBZ0IsbUJBQU8sQ0FBQyxpRUFBZ0I7QUFDeEMsZ0JBQWdCLG1CQUFPLENBQUMsMEZBQWU7QUFDdkMsa0JBQWtCLG1CQUFPLENBQUMsa0dBQW1CO0FBQzdDLDZCQUE2QixtQkFBTyxDQUFDLCtGQUF1QjtBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEhBQThIO0FBQzlIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvUGFydGljbGVzL1BhcnRpY2xlc09wdGlvbnMuanM/NGNmZCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuUGFydGljbGVzT3B0aW9ucyA9IHZvaWQgMDtcbmNvbnN0IExpbmtzXzEgPSByZXF1aXJlKFwiLi9MaW5rcy9MaW5rc1wiKTtcbmNvbnN0IE1vdmVfMSA9IHJlcXVpcmUoXCIuL01vdmUvTW92ZVwiKTtcbmNvbnN0IFBhcnRpY2xlc051bWJlcl8xID0gcmVxdWlyZShcIi4vTnVtYmVyL1BhcnRpY2xlc051bWJlclwiKTtcbmNvbnN0IE9wYWNpdHlfMSA9IHJlcXVpcmUoXCIuL09wYWNpdHkvT3BhY2l0eVwiKTtcbmNvbnN0IFNoYXBlXzEgPSByZXF1aXJlKFwiLi9TaGFwZS9TaGFwZVwiKTtcbmNvbnN0IFNpemVfMSA9IHJlcXVpcmUoXCIuL1NpemUvU2l6ZVwiKTtcbmNvbnN0IFJvdGF0ZV8xID0gcmVxdWlyZShcIi4vUm90YXRlL1JvdGF0ZVwiKTtcbmNvbnN0IFNoYWRvd18xID0gcmVxdWlyZShcIi4vU2hhZG93XCIpO1xuY29uc3QgU3Ryb2tlXzEgPSByZXF1aXJlKFwiLi9TdHJva2VcIik7XG5jb25zdCBDb2xsaXNpb25zXzEgPSByZXF1aXJlKFwiLi9Db2xsaXNpb25zL0NvbGxpc2lvbnNcIik7XG5jb25zdCBUd2lua2xlXzEgPSByZXF1aXJlKFwiLi9Ud2lua2xlL1R3aW5rbGVcIik7XG5jb25zdCBBbmltYXRhYmxlQ29sb3JfMSA9IHJlcXVpcmUoXCIuLi9BbmltYXRhYmxlQ29sb3JcIik7XG5jb25zdCBMaWZlXzEgPSByZXF1aXJlKFwiLi9MaWZlL0xpZmVcIik7XG5jb25zdCBCb3VuY2VfMSA9IHJlcXVpcmUoXCIuL0JvdW5jZS9Cb3VuY2VcIik7XG5jb25zdCBEZXN0cm95XzEgPSByZXF1aXJlKFwiLi9EZXN0cm95L0Rlc3Ryb3lcIik7XG5jb25zdCBXb2JibGVfMSA9IHJlcXVpcmUoXCIuL1dvYmJsZS9Xb2JibGVcIik7XG5jb25zdCBUaWx0XzEgPSByZXF1aXJlKFwiLi9UaWx0L1RpbHRcIik7XG5jb25zdCBSb2xsXzEgPSByZXF1aXJlKFwiLi9Sb2xsL1JvbGxcIik7XG5jb25zdCBaSW5kZXhfMSA9IHJlcXVpcmUoXCIuL1pJbmRleC9aSW5kZXhcIik7XG5jb25zdCBVdGlsc18xID0gcmVxdWlyZShcIi4uLy4uLy4uL1V0aWxzXCIpO1xuY29uc3QgT3JiaXRfMSA9IHJlcXVpcmUoXCIuL09yYml0L09yYml0XCIpO1xuY29uc3QgUmVwdWxzZV8xID0gcmVxdWlyZShcIi4vUmVwdWxzZS9SZXB1bHNlXCIpO1xuY29uc3QgQW5pbWF0YWJsZUdyYWRpZW50XzEgPSByZXF1aXJlKFwiLi4vQW5pbWF0YWJsZUdyYWRpZW50XCIpO1xuY2xhc3MgUGFydGljbGVzT3B0aW9ucyB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuYm91bmNlID0gbmV3IEJvdW5jZV8xLkJvdW5jZSgpO1xuICAgICAgICB0aGlzLmNvbGxpc2lvbnMgPSBuZXcgQ29sbGlzaW9uc18xLkNvbGxpc2lvbnMoKTtcbiAgICAgICAgdGhpcy5jb2xvciA9IG5ldyBBbmltYXRhYmxlQ29sb3JfMS5BbmltYXRhYmxlQ29sb3IoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95ID0gbmV3IERlc3Ryb3lfMS5EZXN0cm95KCk7XG4gICAgICAgIHRoaXMuZ3JhZGllbnQgPSBbXTtcbiAgICAgICAgdGhpcy5ncm91cHMgPSB7fTtcbiAgICAgICAgdGhpcy5saWZlID0gbmV3IExpZmVfMS5MaWZlKCk7XG4gICAgICAgIHRoaXMubGlua3MgPSBuZXcgTGlua3NfMS5MaW5rcygpO1xuICAgICAgICB0aGlzLm1vdmUgPSBuZXcgTW92ZV8xLk1vdmUoKTtcbiAgICAgICAgdGhpcy5udW1iZXIgPSBuZXcgUGFydGljbGVzTnVtYmVyXzEuUGFydGljbGVzTnVtYmVyKCk7XG4gICAgICAgIHRoaXMub3BhY2l0eSA9IG5ldyBPcGFjaXR5XzEuT3BhY2l0eSgpO1xuICAgICAgICB0aGlzLm9yYml0ID0gbmV3IE9yYml0XzEuT3JiaXQoKTtcbiAgICAgICAgdGhpcy5yZWR1Y2VEdXBsaWNhdGVzID0gZmFsc2U7XG4gICAgICAgIHRoaXMucmVwdWxzZSA9IG5ldyBSZXB1bHNlXzEuUmVwdWxzZSgpO1xuICAgICAgICB0aGlzLnJvbGwgPSBuZXcgUm9sbF8xLlJvbGwoKTtcbiAgICAgICAgdGhpcy5yb3RhdGUgPSBuZXcgUm90YXRlXzEuUm90YXRlKCk7XG4gICAgICAgIHRoaXMuc2hhZG93ID0gbmV3IFNoYWRvd18xLlNoYWRvdygpO1xuICAgICAgICB0aGlzLnNoYXBlID0gbmV3IFNoYXBlXzEuU2hhcGUoKTtcbiAgICAgICAgdGhpcy5zaXplID0gbmV3IFNpemVfMS5TaXplKCk7XG4gICAgICAgIHRoaXMuc3Ryb2tlID0gbmV3IFN0cm9rZV8xLlN0cm9rZSgpO1xuICAgICAgICB0aGlzLnRpbHQgPSBuZXcgVGlsdF8xLlRpbHQoKTtcbiAgICAgICAgdGhpcy50d2lua2xlID0gbmV3IFR3aW5rbGVfMS5Ud2lua2xlKCk7XG4gICAgICAgIHRoaXMud29iYmxlID0gbmV3IFdvYmJsZV8xLldvYmJsZSgpO1xuICAgICAgICB0aGlzLnpJbmRleCA9IG5ldyBaSW5kZXhfMS5aSW5kZXgoKTtcbiAgICB9XG4gICAgZ2V0IGxpbmVfbGlua2VkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5saW5rcztcbiAgICB9XG4gICAgc2V0IGxpbmVfbGlua2VkKHZhbHVlKSB7XG4gICAgICAgIHRoaXMubGlua3MgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IGxpbmVMaW5rZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxpbmtzO1xuICAgIH1cbiAgICBzZXQgbGluZUxpbmtlZCh2YWx1ZSkge1xuICAgICAgICB0aGlzLmxpbmtzID0gdmFsdWU7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2QsIF9lLCBfZiwgX2csIF9oO1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5ib3VuY2UubG9hZChkYXRhLmJvdW5jZSk7XG4gICAgICAgIHRoaXMuY29sb3IubG9hZChBbmltYXRhYmxlQ29sb3JfMS5BbmltYXRhYmxlQ29sb3IuY3JlYXRlKHRoaXMuY29sb3IsIGRhdGEuY29sb3IpKTtcbiAgICAgICAgdGhpcy5kZXN0cm95LmxvYWQoZGF0YS5kZXN0cm95KTtcbiAgICAgICAgdGhpcy5saWZlLmxvYWQoZGF0YS5saWZlKTtcbiAgICAgICAgY29uc3QgbGlua3MgPSAoX2IgPSAoX2EgPSBkYXRhLmxpbmtzKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBkYXRhLmxpbmVMaW5rZWQpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IGRhdGEubGluZV9saW5rZWQ7XG4gICAgICAgIGlmIChsaW5rcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmxpbmtzLmxvYWQobGlua3MpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmdyb3VwcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGdyb3VwIGluIGRhdGEuZ3JvdXBzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IGRhdGEuZ3JvdXBzW2dyb3VwXTtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXBzW2dyb3VwXSA9ICgwLCBVdGlsc18xLmRlZXBFeHRlbmQpKChfYyA9IHRoaXMuZ3JvdXBzW2dyb3VwXSkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDoge30sIGl0ZW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1vdmUubG9hZChkYXRhLm1vdmUpO1xuICAgICAgICB0aGlzLm51bWJlci5sb2FkKGRhdGEubnVtYmVyKTtcbiAgICAgICAgdGhpcy5vcGFjaXR5LmxvYWQoZGF0YS5vcGFjaXR5KTtcbiAgICAgICAgdGhpcy5vcmJpdC5sb2FkKGRhdGEub3JiaXQpO1xuICAgICAgICBpZiAoZGF0YS5yZWR1Y2VEdXBsaWNhdGVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMucmVkdWNlRHVwbGljYXRlcyA9IGRhdGEucmVkdWNlRHVwbGljYXRlcztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlcHVsc2UubG9hZChkYXRhLnJlcHVsc2UpO1xuICAgICAgICB0aGlzLnJvbGwubG9hZChkYXRhLnJvbGwpO1xuICAgICAgICB0aGlzLnJvdGF0ZS5sb2FkKGRhdGEucm90YXRlKTtcbiAgICAgICAgdGhpcy5zaGFwZS5sb2FkKGRhdGEuc2hhcGUpO1xuICAgICAgICB0aGlzLnNpemUubG9hZChkYXRhLnNpemUpO1xuICAgICAgICB0aGlzLnNoYWRvdy5sb2FkKGRhdGEuc2hhZG93KTtcbiAgICAgICAgdGhpcy50aWx0LmxvYWQoZGF0YS50aWx0KTtcbiAgICAgICAgdGhpcy50d2lua2xlLmxvYWQoZGF0YS50d2lua2xlKTtcbiAgICAgICAgdGhpcy53b2JibGUubG9hZChkYXRhLndvYmJsZSk7XG4gICAgICAgIHRoaXMuekluZGV4LmxvYWQoZGF0YS56SW5kZXgpO1xuICAgICAgICBjb25zdCBjb2xsaXNpb25zID0gKF9lID0gKF9kID0gZGF0YS5tb3ZlKSA9PT0gbnVsbCB8fCBfZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2QuY29sbGlzaW9ucykgIT09IG51bGwgJiYgX2UgIT09IHZvaWQgMCA/IF9lIDogKF9mID0gZGF0YS5tb3ZlKSA9PT0gbnVsbCB8fCBfZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2YuYm91bmNlO1xuICAgICAgICBpZiAoY29sbGlzaW9ucyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbGxpc2lvbnMuZW5hYmxlID0gY29sbGlzaW9ucztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbGxpc2lvbnMubG9hZChkYXRhLmNvbGxpc2lvbnMpO1xuICAgICAgICBjb25zdCBzdHJva2VUb0xvYWQgPSAoX2cgPSBkYXRhLnN0cm9rZSkgIT09IG51bGwgJiYgX2cgIT09IHZvaWQgMCA/IF9nIDogKF9oID0gZGF0YS5zaGFwZSkgPT09IG51bGwgfHwgX2ggPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9oLnN0cm9rZTtcbiAgICAgICAgaWYgKHN0cm9rZVRvTG9hZCkge1xuICAgICAgICAgICAgaWYgKHN0cm9rZVRvTG9hZCBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdHJva2UgPSBzdHJva2VUb0xvYWQubWFwKChzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRtcCA9IG5ldyBTdHJva2VfMS5TdHJva2UoKTtcbiAgICAgICAgICAgICAgICAgICAgdG1wLmxvYWQocyk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0bXA7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zdHJva2UgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0cm9rZSA9IG5ldyBTdHJva2VfMS5TdHJva2UoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5zdHJva2UubG9hZChzdHJva2VUb0xvYWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGdyYWRpZW50VG9Mb2FkID0gZGF0YS5ncmFkaWVudDtcbiAgICAgICAgaWYgKGdyYWRpZW50VG9Mb2FkKSB7XG4gICAgICAgICAgICBpZiAoZ3JhZGllbnRUb0xvYWQgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZ3JhZGllbnQgPSBncmFkaWVudFRvTG9hZC5tYXAoKHMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdG1wID0gbmV3IEFuaW1hdGFibGVHcmFkaWVudF8xLkFuaW1hdGFibGVHcmFkaWVudCgpO1xuICAgICAgICAgICAgICAgICAgICB0bXAubG9hZChzKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRtcDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmdyYWRpZW50IGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ncmFkaWVudCA9IG5ldyBBbmltYXRhYmxlR3JhZGllbnRfMS5BbmltYXRhYmxlR3JhZGllbnQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5ncmFkaWVudC5sb2FkKGdyYWRpZW50VG9Mb2FkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuUGFydGljbGVzT3B0aW9ucyA9IFBhcnRpY2xlc09wdGlvbnM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/ParticlesOptions.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Repulse/Repulse.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Repulse/Repulse.js ***! + \*******************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Repulse = void 0;\nconst ValueWithRandom_1 = __webpack_require__(/*! ../../ValueWithRandom */ \"./node_modules/tsparticles/Options/Classes/ValueWithRandom.js\");\nclass Repulse extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n this.enabled = false;\n this.distance = 1;\n this.duration = 1;\n this.factor = 1;\n this.speed = 1;\n }\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n if (data.enabled !== undefined) {\n this.enabled = data.enabled;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n }\n}\nexports.Repulse = Repulse;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9SZXB1bHNlL1JlcHVsc2UuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsZUFBZTtBQUNmLDBCQUEwQixtQkFBTyxDQUFDLDRGQUF1QjtBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9QYXJ0aWNsZXMvUmVwdWxzZS9SZXB1bHNlLmpzPzExMGYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlJlcHVsc2UgPSB2b2lkIDA7XG5jb25zdCBWYWx1ZVdpdGhSYW5kb21fMSA9IHJlcXVpcmUoXCIuLi8uLi9WYWx1ZVdpdGhSYW5kb21cIik7XG5jbGFzcyBSZXB1bHNlIGV4dGVuZHMgVmFsdWVXaXRoUmFuZG9tXzEuVmFsdWVXaXRoUmFuZG9tIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5lbmFibGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZGlzdGFuY2UgPSAxO1xuICAgICAgICB0aGlzLmR1cmF0aW9uID0gMTtcbiAgICAgICAgdGhpcy5mYWN0b3IgPSAxO1xuICAgICAgICB0aGlzLnNwZWVkID0gMTtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIHN1cGVyLmxvYWQoZGF0YSk7XG4gICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmVuYWJsZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5lbmFibGVkID0gZGF0YS5lbmFibGVkO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmRpc3RhbmNlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzdGFuY2UgPSBkYXRhLmRpc3RhbmNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmR1cmF0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZHVyYXRpb24gPSBkYXRhLmR1cmF0aW9uO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmZhY3RvciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmZhY3RvciA9IGRhdGEuZmFjdG9yO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnNwZWVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc3BlZWQgPSBkYXRhLnNwZWVkO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5SZXB1bHNlID0gUmVwdWxzZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Repulse/Repulse.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Roll/Roll.js": +/*!*************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Roll/Roll.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Roll = void 0;\nconst OptionsColor_1 = __webpack_require__(/*! ../../OptionsColor */ \"./node_modules/tsparticles/Options/Classes/OptionsColor.js\");\nconst RollLight_1 = __webpack_require__(/*! ./RollLight */ \"./node_modules/tsparticles/Options/Classes/Particles/Roll/RollLight.js\");\nconst Utils_1 = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Enums_1 = __webpack_require__(/*! ../../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nclass Roll {\n constructor() {\n this.darken = new RollLight_1.RollLight();\n this.enable = false;\n this.enlighten = new RollLight_1.RollLight();\n this.mode = Enums_1.RollMode.vertical;\n this.speed = 25;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.backColor !== undefined) {\n this.backColor = OptionsColor_1.OptionsColor.create(this.backColor, data.backColor);\n }\n this.darken.load(data.darken);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.enlighten.load(data.enlighten);\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n if (data.speed !== undefined) {\n this.speed = (0, Utils_1.setRangeValue)(data.speed);\n }\n }\n}\nexports.Roll = Roll;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Sb2xsL1JvbGwuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsWUFBWTtBQUNaLHVCQUF1QixtQkFBTyxDQUFDLHNGQUFvQjtBQUNuRCxvQkFBb0IsbUJBQU8sQ0FBQywyRkFBYTtBQUN6QyxnQkFBZ0IsbUJBQU8sQ0FBQyxvRUFBbUI7QUFDM0MsZ0JBQWdCLG1CQUFPLENBQUMsb0VBQW1CO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Sb2xsL1JvbGwuanM/YTIwMCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuUm9sbCA9IHZvaWQgMDtcbmNvbnN0IE9wdGlvbnNDb2xvcl8xID0gcmVxdWlyZShcIi4uLy4uL09wdGlvbnNDb2xvclwiKTtcbmNvbnN0IFJvbGxMaWdodF8xID0gcmVxdWlyZShcIi4vUm9sbExpZ2h0XCIpO1xuY29uc3QgVXRpbHNfMSA9IHJlcXVpcmUoXCIuLi8uLi8uLi8uLi9VdGlsc1wiKTtcbmNvbnN0IEVudW1zXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vRW51bXNcIik7XG5jbGFzcyBSb2xsIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5kYXJrZW4gPSBuZXcgUm9sbExpZ2h0XzEuUm9sbExpZ2h0KCk7XG4gICAgICAgIHRoaXMuZW5hYmxlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZW5saWdodGVuID0gbmV3IFJvbGxMaWdodF8xLlJvbGxMaWdodCgpO1xuICAgICAgICB0aGlzLm1vZGUgPSBFbnVtc18xLlJvbGxNb2RlLnZlcnRpY2FsO1xuICAgICAgICB0aGlzLnNwZWVkID0gMjU7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5iYWNrQ29sb3IgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5iYWNrQ29sb3IgPSBPcHRpb25zQ29sb3JfMS5PcHRpb25zQ29sb3IuY3JlYXRlKHRoaXMuYmFja0NvbG9yLCBkYXRhLmJhY2tDb2xvcik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kYXJrZW4ubG9hZChkYXRhLmRhcmtlbik7XG4gICAgICAgIGlmIChkYXRhLmVuYWJsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZSA9IGRhdGEuZW5hYmxlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZW5saWdodGVuLmxvYWQoZGF0YS5lbmxpZ2h0ZW4pO1xuICAgICAgICBpZiAoZGF0YS5tb2RlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMubW9kZSA9IGRhdGEubW9kZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5zcGVlZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnNwZWVkID0gKDAsIFV0aWxzXzEuc2V0UmFuZ2VWYWx1ZSkoZGF0YS5zcGVlZCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLlJvbGwgPSBSb2xsO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Roll/Roll.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Roll/RollLight.js": +/*!******************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Roll/RollLight.js ***! + \******************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.RollLight = void 0;\nclass RollLight {\n constructor() {\n this.enable = false;\n this.value = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.value !== undefined) {\n this.value = data.value;\n }\n }\n}\nexports.RollLight = RollLight;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Sb2xsL1JvbGxMaWdodC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Sb2xsL1JvbGxMaWdodC5qcz9lYWFmIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Sb2xsTGlnaHQgPSB2b2lkIDA7XG5jbGFzcyBSb2xsTGlnaHQge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmVuYWJsZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnZhbHVlID0gMDtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmVuYWJsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZSA9IGRhdGEuZW5hYmxlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBkYXRhLnZhbHVlO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5Sb2xsTGlnaHQgPSBSb2xsTGlnaHQ7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Roll/RollLight.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Rotate/Rotate.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Rotate/Rotate.js ***! + \*****************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Rotate = void 0;\nconst RotateAnimation_1 = __webpack_require__(/*! ./RotateAnimation */ \"./node_modules/tsparticles/Options/Classes/Particles/Rotate/RotateAnimation.js\");\nconst Enums_1 = __webpack_require__(/*! ../../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst ValueWithRandom_1 = __webpack_require__(/*! ../../ValueWithRandom */ \"./node_modules/tsparticles/Options/Classes/ValueWithRandom.js\");\nclass Rotate extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n this.animation = new RotateAnimation_1.RotateAnimation();\n this.direction = Enums_1.RotateDirection.clockwise;\n this.path = false;\n this.value = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n super.load(data);\n if (data.direction !== undefined) {\n this.direction = data.direction;\n }\n this.animation.load(data.animation);\n if (data.path !== undefined) {\n this.path = data.path;\n }\n }\n}\nexports.Rotate = Rotate;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Sb3RhdGUvUm90YXRlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGNBQWM7QUFDZCwwQkFBMEIsbUJBQU8sQ0FBQyx5R0FBbUI7QUFDckQsZ0JBQWdCLG1CQUFPLENBQUMsb0VBQW1CO0FBQzNDLDBCQUEwQixtQkFBTyxDQUFDLDRGQUF1QjtBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9QYXJ0aWNsZXMvUm90YXRlL1JvdGF0ZS5qcz9kY2ZkIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Sb3RhdGUgPSB2b2lkIDA7XG5jb25zdCBSb3RhdGVBbmltYXRpb25fMSA9IHJlcXVpcmUoXCIuL1JvdGF0ZUFuaW1hdGlvblwiKTtcbmNvbnN0IEVudW1zXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vRW51bXNcIik7XG5jb25zdCBWYWx1ZVdpdGhSYW5kb21fMSA9IHJlcXVpcmUoXCIuLi8uLi9WYWx1ZVdpdGhSYW5kb21cIik7XG5jbGFzcyBSb3RhdGUgZXh0ZW5kcyBWYWx1ZVdpdGhSYW5kb21fMS5WYWx1ZVdpdGhSYW5kb20ge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmFuaW1hdGlvbiA9IG5ldyBSb3RhdGVBbmltYXRpb25fMS5Sb3RhdGVBbmltYXRpb24oKTtcbiAgICAgICAgdGhpcy5kaXJlY3Rpb24gPSBFbnVtc18xLlJvdGF0ZURpcmVjdGlvbi5jbG9ja3dpc2U7XG4gICAgICAgIHRoaXMucGF0aCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnZhbHVlID0gMDtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHN1cGVyLmxvYWQoZGF0YSk7XG4gICAgICAgIGlmIChkYXRhLmRpcmVjdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmRpcmVjdGlvbiA9IGRhdGEuZGlyZWN0aW9uO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYW5pbWF0aW9uLmxvYWQoZGF0YS5hbmltYXRpb24pO1xuICAgICAgICBpZiAoZGF0YS5wYXRoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMucGF0aCA9IGRhdGEucGF0aDtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuUm90YXRlID0gUm90YXRlO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Rotate/Rotate.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Rotate/RotateAnimation.js": +/*!**************************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Rotate/RotateAnimation.js ***! + \**************************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.RotateAnimation = void 0;\nclass RotateAnimation {\n constructor() {\n this.enable = false;\n this.speed = 0;\n this.sync = false;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\nexports.RotateAnimation = RotateAnimation;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Sb3RhdGUvUm90YXRlQW5pbWF0aW9uLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9QYXJ0aWNsZXMvUm90YXRlL1JvdGF0ZUFuaW1hdGlvbi5qcz8xMzVlIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Sb3RhdGVBbmltYXRpb24gPSB2b2lkIDA7XG5jbGFzcyBSb3RhdGVBbmltYXRpb24ge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmVuYWJsZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNwZWVkID0gMDtcbiAgICAgICAgdGhpcy5zeW5jID0gZmFsc2U7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZW5hYmxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlID0gZGF0YS5lbmFibGU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuc3BlZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5zcGVlZCA9IGRhdGEuc3BlZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuc3luYyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnN5bmMgPSBkYXRhLnN5bmM7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLlJvdGF0ZUFuaW1hdGlvbiA9IFJvdGF0ZUFuaW1hdGlvbjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Rotate/RotateAnimation.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Shadow.js": +/*!**********************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Shadow.js ***! + \**********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Shadow = void 0;\nconst OptionsColor_1 = __webpack_require__(/*! ../OptionsColor */ \"./node_modules/tsparticles/Options/Classes/OptionsColor.js\");\nclass Shadow {\n constructor() {\n this.blur = 0;\n this.color = new OptionsColor_1.OptionsColor();\n this.enable = false;\n this.offset = {\n x: 0,\n y: 0,\n };\n this.color.value = \"#000000\";\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.blur !== undefined) {\n this.blur = data.blur;\n }\n this.color = OptionsColor_1.OptionsColor.create(this.color, data.color);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.offset === undefined) {\n return;\n }\n if (data.offset.x !== undefined) {\n this.offset.x = data.offset.x;\n }\n if (data.offset.y !== undefined) {\n this.offset.y = data.offset.y;\n }\n }\n}\nexports.Shadow = Shadow;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9TaGFkb3cuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsY0FBYztBQUNkLHVCQUF1QixtQkFBTyxDQUFDLG1GQUFpQjtBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvUGFydGljbGVzL1NoYWRvdy5qcz80MTQyIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5TaGFkb3cgPSB2b2lkIDA7XG5jb25zdCBPcHRpb25zQ29sb3JfMSA9IHJlcXVpcmUoXCIuLi9PcHRpb25zQ29sb3JcIik7XG5jbGFzcyBTaGFkb3cge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmJsdXIgPSAwO1xuICAgICAgICB0aGlzLmNvbG9yID0gbmV3IE9wdGlvbnNDb2xvcl8xLk9wdGlvbnNDb2xvcigpO1xuICAgICAgICB0aGlzLmVuYWJsZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLm9mZnNldCA9IHtcbiAgICAgICAgICAgIHg6IDAsXG4gICAgICAgICAgICB5OiAwLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmNvbG9yLnZhbHVlID0gXCIjMDAwMDAwXCI7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuYmx1ciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmJsdXIgPSBkYXRhLmJsdXI7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb2xvciA9IE9wdGlvbnNDb2xvcl8xLk9wdGlvbnNDb2xvci5jcmVhdGUodGhpcy5jb2xvciwgZGF0YS5jb2xvcik7XG4gICAgICAgIGlmIChkYXRhLmVuYWJsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZSA9IGRhdGEuZW5hYmxlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLm9mZnNldCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEub2Zmc2V0LnggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5vZmZzZXQueCA9IGRhdGEub2Zmc2V0Lng7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEub2Zmc2V0LnkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5vZmZzZXQueSA9IGRhdGEub2Zmc2V0Lnk7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLlNoYWRvdyA9IFNoYWRvdztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Shadow.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Shape/Shape.js": +/*!***************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Shape/Shape.js ***! + \***************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Shape = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst Utils_1 = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass Shape {\n constructor() {\n this.options = {};\n this.type = Enums_1.ShapeType.circle;\n }\n get image() {\n var _a;\n return ((_a = this.options[Enums_1.ShapeType.image]) !== null && _a !== void 0 ? _a : this.options[Enums_1.ShapeType.images]);\n }\n set image(value) {\n this.options[Enums_1.ShapeType.image] = value;\n this.options[Enums_1.ShapeType.images] = value;\n }\n get custom() {\n return this.options;\n }\n set custom(value) {\n this.options = value;\n }\n get images() {\n return this.image;\n }\n set images(value) {\n this.image = value;\n }\n get stroke() {\n return [];\n }\n set stroke(_value) {\n }\n get character() {\n var _a;\n return ((_a = this.options[Enums_1.ShapeType.character]) !== null && _a !== void 0 ? _a : this.options[Enums_1.ShapeType.char]);\n }\n set character(value) {\n this.options[Enums_1.ShapeType.character] = value;\n this.options[Enums_1.ShapeType.char] = value;\n }\n get polygon() {\n var _a;\n return ((_a = this.options[Enums_1.ShapeType.polygon]) !== null && _a !== void 0 ? _a : this.options[Enums_1.ShapeType.star]);\n }\n set polygon(value) {\n this.options[Enums_1.ShapeType.polygon] = value;\n this.options[Enums_1.ShapeType.star] = value;\n }\n load(data) {\n var _a, _b, _c;\n if (data === undefined) {\n return;\n }\n const options = (_a = data.options) !== null && _a !== void 0 ? _a : data.custom;\n if (options !== undefined) {\n for (const shape in options) {\n const item = options[shape];\n if (item !== undefined) {\n this.options[shape] = (0, Utils_1.deepExtend)((_b = this.options[shape]) !== null && _b !== void 0 ? _b : {}, item);\n }\n }\n }\n this.loadShape(data.character, Enums_1.ShapeType.character, Enums_1.ShapeType.char, true);\n this.loadShape(data.polygon, Enums_1.ShapeType.polygon, Enums_1.ShapeType.star, false);\n this.loadShape((_c = data.image) !== null && _c !== void 0 ? _c : data.images, Enums_1.ShapeType.image, Enums_1.ShapeType.images, true);\n if (data.type !== undefined) {\n this.type = data.type;\n }\n }\n loadShape(item, mainKey, altKey, altOverride) {\n var _a, _b, _c, _d;\n if (item === undefined) {\n return;\n }\n if (item instanceof Array) {\n if (!(this.options[mainKey] instanceof Array)) {\n this.options[mainKey] = [];\n if (!this.options[altKey] || altOverride) {\n this.options[altKey] = [];\n }\n }\n this.options[mainKey] = (0, Utils_1.deepExtend)((_a = this.options[mainKey]) !== null && _a !== void 0 ? _a : [], item);\n if (!this.options[altKey] || altOverride) {\n this.options[altKey] = (0, Utils_1.deepExtend)((_b = this.options[altKey]) !== null && _b !== void 0 ? _b : [], item);\n }\n }\n else {\n if (this.options[mainKey] instanceof Array) {\n this.options[mainKey] = {};\n if (!this.options[altKey] || altOverride) {\n this.options[altKey] = {};\n }\n }\n this.options[mainKey] = (0, Utils_1.deepExtend)((_c = this.options[mainKey]) !== null && _c !== void 0 ? _c : {}, item);\n if (!this.options[altKey] || altOverride) {\n this.options[altKey] = (0, Utils_1.deepExtend)((_d = this.options[altKey]) !== null && _d !== void 0 ? _d : {}, item);\n }\n }\n }\n}\nexports.Shape = Shape;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9TaGFwZS9TaGFwZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxhQUFhO0FBQ2IsZ0JBQWdCLG1CQUFPLENBQUMsb0VBQW1CO0FBQzNDLGdCQUFnQixtQkFBTyxDQUFDLG9FQUFtQjtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0lBQWdJO0FBQ2hJO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEhBQTRIO0FBQzVIO0FBQ0EsOEhBQThIO0FBQzlIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9TaGFwZS9TaGFwZS5qcz82NzMzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5TaGFwZSA9IHZvaWQgMDtcbmNvbnN0IEVudW1zXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vRW51bXNcIik7XG5jb25zdCBVdGlsc18xID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL1V0aWxzXCIpO1xuY2xhc3MgU2hhcGUge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSB7fTtcbiAgICAgICAgdGhpcy50eXBlID0gRW51bXNfMS5TaGFwZVR5cGUuY2lyY2xlO1xuICAgIH1cbiAgICBnZXQgaW1hZ2UoKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgcmV0dXJuICgoX2EgPSB0aGlzLm9wdGlvbnNbRW51bXNfMS5TaGFwZVR5cGUuaW1hZ2VdKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB0aGlzLm9wdGlvbnNbRW51bXNfMS5TaGFwZVR5cGUuaW1hZ2VzXSk7XG4gICAgfVxuICAgIHNldCBpbWFnZSh2YWx1ZSkge1xuICAgICAgICB0aGlzLm9wdGlvbnNbRW51bXNfMS5TaGFwZVR5cGUuaW1hZ2VdID0gdmFsdWU7XG4gICAgICAgIHRoaXMub3B0aW9uc1tFbnVtc18xLlNoYXBlVHlwZS5pbWFnZXNdID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBjdXN0b20oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnM7XG4gICAgfVxuICAgIHNldCBjdXN0b20odmFsdWUpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBpbWFnZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmltYWdlO1xuICAgIH1cbiAgICBzZXQgaW1hZ2VzKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuaW1hZ2UgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IHN0cm9rZSgpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICBzZXQgc3Ryb2tlKF92YWx1ZSkge1xuICAgIH1cbiAgICBnZXQgY2hhcmFjdGVyKCkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIHJldHVybiAoKF9hID0gdGhpcy5vcHRpb25zW0VudW1zXzEuU2hhcGVUeXBlLmNoYXJhY3Rlcl0pICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IHRoaXMub3B0aW9uc1tFbnVtc18xLlNoYXBlVHlwZS5jaGFyXSk7XG4gICAgfVxuICAgIHNldCBjaGFyYWN0ZXIodmFsdWUpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zW0VudW1zXzEuU2hhcGVUeXBlLmNoYXJhY3Rlcl0gPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5vcHRpb25zW0VudW1zXzEuU2hhcGVUeXBlLmNoYXJdID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBwb2x5Z29uKCkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIHJldHVybiAoKF9hID0gdGhpcy5vcHRpb25zW0VudW1zXzEuU2hhcGVUeXBlLnBvbHlnb25dKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB0aGlzLm9wdGlvbnNbRW51bXNfMS5TaGFwZVR5cGUuc3Rhcl0pO1xuICAgIH1cbiAgICBzZXQgcG9seWdvbih2YWx1ZSkge1xuICAgICAgICB0aGlzLm9wdGlvbnNbRW51bXNfMS5TaGFwZVR5cGUucG9seWdvbl0gPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5vcHRpb25zW0VudW1zXzEuU2hhcGVUeXBlLnN0YXJdID0gdmFsdWU7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSAoX2EgPSBkYXRhLm9wdGlvbnMpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGRhdGEuY3VzdG9tO1xuICAgICAgICBpZiAob3B0aW9ucyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHNoYXBlIGluIG9wdGlvbnMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtID0gb3B0aW9uc1tzaGFwZV07XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnNbc2hhcGVdID0gKDAsIFV0aWxzXzEuZGVlcEV4dGVuZCkoKF9iID0gdGhpcy5vcHRpb25zW3NoYXBlXSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDoge30sIGl0ZW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxvYWRTaGFwZShkYXRhLmNoYXJhY3RlciwgRW51bXNfMS5TaGFwZVR5cGUuY2hhcmFjdGVyLCBFbnVtc18xLlNoYXBlVHlwZS5jaGFyLCB0cnVlKTtcbiAgICAgICAgdGhpcy5sb2FkU2hhcGUoZGF0YS5wb2x5Z29uLCBFbnVtc18xLlNoYXBlVHlwZS5wb2x5Z29uLCBFbnVtc18xLlNoYXBlVHlwZS5zdGFyLCBmYWxzZSk7XG4gICAgICAgIHRoaXMubG9hZFNoYXBlKChfYyA9IGRhdGEuaW1hZ2UpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IGRhdGEuaW1hZ2VzLCBFbnVtc18xLlNoYXBlVHlwZS5pbWFnZSwgRW51bXNfMS5TaGFwZVR5cGUuaW1hZ2VzLCB0cnVlKTtcbiAgICAgICAgaWYgKGRhdGEudHlwZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBkYXRhLnR5cGU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbG9hZFNoYXBlKGl0ZW0sIG1haW5LZXksIGFsdEtleSwgYWx0T3ZlcnJpZGUpIHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kO1xuICAgICAgICBpZiAoaXRlbSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGl0ZW0gaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgaWYgKCEodGhpcy5vcHRpb25zW21haW5LZXldIGluc3RhbmNlb2YgQXJyYXkpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zW21haW5LZXldID0gW107XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLm9wdGlvbnNbYWx0S2V5XSB8fCBhbHRPdmVycmlkZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnNbYWx0S2V5XSA9IFtdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMub3B0aW9uc1ttYWluS2V5XSA9ICgwLCBVdGlsc18xLmRlZXBFeHRlbmQpKChfYSA9IHRoaXMub3B0aW9uc1ttYWluS2V5XSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogW10sIGl0ZW0pO1xuICAgICAgICAgICAgaWYgKCF0aGlzLm9wdGlvbnNbYWx0S2V5XSB8fCBhbHRPdmVycmlkZSkge1xuICAgICAgICAgICAgICAgIHRoaXMub3B0aW9uc1thbHRLZXldID0gKDAsIFV0aWxzXzEuZGVlcEV4dGVuZCkoKF9iID0gdGhpcy5vcHRpb25zW2FsdEtleV0pICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IFtdLCBpdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnNbbWFpbktleV0gaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgICAgIHRoaXMub3B0aW9uc1ttYWluS2V5XSA9IHt9O1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5vcHRpb25zW2FsdEtleV0gfHwgYWx0T3ZlcnJpZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zW2FsdEtleV0gPSB7fTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnNbbWFpbktleV0gPSAoMCwgVXRpbHNfMS5kZWVwRXh0ZW5kKSgoX2MgPSB0aGlzLm9wdGlvbnNbbWFpbktleV0pICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IHt9LCBpdGVtKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5vcHRpb25zW2FsdEtleV0gfHwgYWx0T3ZlcnJpZGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnNbYWx0S2V5XSA9ICgwLCBVdGlsc18xLmRlZXBFeHRlbmQpKChfZCA9IHRoaXMub3B0aW9uc1thbHRLZXldKSAhPT0gbnVsbCAmJiBfZCAhPT0gdm9pZCAwID8gX2QgOiB7fSwgaXRlbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLlNoYXBlID0gU2hhcGU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Shape/Shape.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Size/Size.js": +/*!*************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Size/Size.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Size = void 0;\nconst SizeAnimation_1 = __webpack_require__(/*! ./SizeAnimation */ \"./node_modules/tsparticles/Options/Classes/Particles/Size/SizeAnimation.js\");\nconst ValueWithRandom_1 = __webpack_require__(/*! ../../ValueWithRandom */ \"./node_modules/tsparticles/Options/Classes/ValueWithRandom.js\");\nconst Utils_1 = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass Size extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n this.animation = new SizeAnimation_1.SizeAnimation();\n this.random.minimumValue = 1;\n this.value = 3;\n }\n get anim() {\n return this.animation;\n }\n set anim(value) {\n this.animation = value;\n }\n load(data) {\n var _a;\n if (!data) {\n return;\n }\n super.load(data);\n const animation = (_a = data.animation) !== null && _a !== void 0 ? _a : data.anim;\n if (animation !== undefined) {\n this.animation.load(animation);\n this.value = (0, Utils_1.setRangeValue)(this.value, this.animation.enable ? this.animation.minimumValue : undefined);\n }\n }\n}\nexports.Size = Size;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9TaXplL1NpemUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsWUFBWTtBQUNaLHdCQUF3QixtQkFBTyxDQUFDLG1HQUFpQjtBQUNqRCwwQkFBMEIsbUJBQU8sQ0FBQyw0RkFBdUI7QUFDekQsZ0JBQWdCLG1CQUFPLENBQUMsb0VBQW1CO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvUGFydGljbGVzL1NpemUvU2l6ZS5qcz9iZDg4Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5TaXplID0gdm9pZCAwO1xuY29uc3QgU2l6ZUFuaW1hdGlvbl8xID0gcmVxdWlyZShcIi4vU2l6ZUFuaW1hdGlvblwiKTtcbmNvbnN0IFZhbHVlV2l0aFJhbmRvbV8xID0gcmVxdWlyZShcIi4uLy4uL1ZhbHVlV2l0aFJhbmRvbVwiKTtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vVXRpbHNcIik7XG5jbGFzcyBTaXplIGV4dGVuZHMgVmFsdWVXaXRoUmFuZG9tXzEuVmFsdWVXaXRoUmFuZG9tIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5hbmltYXRpb24gPSBuZXcgU2l6ZUFuaW1hdGlvbl8xLlNpemVBbmltYXRpb24oKTtcbiAgICAgICAgdGhpcy5yYW5kb20ubWluaW11bVZhbHVlID0gMTtcbiAgICAgICAgdGhpcy52YWx1ZSA9IDM7XG4gICAgfVxuICAgIGdldCBhbmltKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5hbmltYXRpb247XG4gICAgfVxuICAgIHNldCBhbmltKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuYW5pbWF0aW9uID0gdmFsdWU7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHN1cGVyLmxvYWQoZGF0YSk7XG4gICAgICAgIGNvbnN0IGFuaW1hdGlvbiA9IChfYSA9IGRhdGEuYW5pbWF0aW9uKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBkYXRhLmFuaW07XG4gICAgICAgIGlmIChhbmltYXRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5hbmltYXRpb24ubG9hZChhbmltYXRpb24pO1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9ICgwLCBVdGlsc18xLnNldFJhbmdlVmFsdWUpKHRoaXMudmFsdWUsIHRoaXMuYW5pbWF0aW9uLmVuYWJsZSA/IHRoaXMuYW5pbWF0aW9uLm1pbmltdW1WYWx1ZSA6IHVuZGVmaW5lZCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLlNpemUgPSBTaXplO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Size/Size.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Size/SizeAnimation.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Size/SizeAnimation.js ***! + \**********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.SizeAnimation = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst AnimationOptions_1 = __webpack_require__(/*! ../../AnimationOptions */ \"./node_modules/tsparticles/Options/Classes/AnimationOptions.js\");\nclass SizeAnimation extends AnimationOptions_1.AnimationOptions {\n constructor() {\n super();\n this.destroy = Enums_1.DestroyType.none;\n this.enable = false;\n this.speed = 5;\n this.startValue = Enums_1.StartValueType.random;\n this.sync = false;\n }\n get size_min() {\n return this.minimumValue;\n }\n set size_min(value) {\n this.minimumValue = value;\n }\n load(data) {\n var _a;\n if (data === undefined) {\n return;\n }\n super.load(data);\n if (data.destroy !== undefined) {\n this.destroy = data.destroy;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.minimumValue = (_a = data.minimumValue) !== null && _a !== void 0 ? _a : data.size_min;\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n if (data.startValue !== undefined) {\n this.startValue = data.startValue;\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\nexports.SizeAnimation = SizeAnimation;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9TaXplL1NpemVBbmltYXRpb24uanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QscUJBQXFCO0FBQ3JCLGdCQUFnQixtQkFBTyxDQUFDLG9FQUFtQjtBQUMzQywyQkFBMkIsbUJBQU8sQ0FBQyw4RkFBd0I7QUFDM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9PcHRpb25zL0NsYXNzZXMvUGFydGljbGVzL1NpemUvU2l6ZUFuaW1hdGlvbi5qcz82ODg0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5TaXplQW5pbWF0aW9uID0gdm9pZCAwO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuLi8uLi8uLi8uLi9FbnVtc1wiKTtcbmNvbnN0IEFuaW1hdGlvbk9wdGlvbnNfMSA9IHJlcXVpcmUoXCIuLi8uLi9BbmltYXRpb25PcHRpb25zXCIpO1xuY2xhc3MgU2l6ZUFuaW1hdGlvbiBleHRlbmRzIEFuaW1hdGlvbk9wdGlvbnNfMS5BbmltYXRpb25PcHRpb25zIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95ID0gRW51bXNfMS5EZXN0cm95VHlwZS5ub25lO1xuICAgICAgICB0aGlzLmVuYWJsZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNwZWVkID0gNTtcbiAgICAgICAgdGhpcy5zdGFydFZhbHVlID0gRW51bXNfMS5TdGFydFZhbHVlVHlwZS5yYW5kb207XG4gICAgICAgIHRoaXMuc3luYyA9IGZhbHNlO1xuICAgIH1cbiAgICBnZXQgc2l6ZV9taW4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1pbmltdW1WYWx1ZTtcbiAgICB9XG4gICAgc2V0IHNpemVfbWluKHZhbHVlKSB7XG4gICAgICAgIHRoaXMubWluaW11bVZhbHVlID0gdmFsdWU7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzdXBlci5sb2FkKGRhdGEpO1xuICAgICAgICBpZiAoZGF0YS5kZXN0cm95ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveSA9IGRhdGEuZGVzdHJveTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5lbmFibGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5lbmFibGUgPSBkYXRhLmVuYWJsZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1pbmltdW1WYWx1ZSA9IChfYSA9IGRhdGEubWluaW11bVZhbHVlKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBkYXRhLnNpemVfbWluO1xuICAgICAgICBpZiAoZGF0YS5zcGVlZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnNwZWVkID0gZGF0YS5zcGVlZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5zdGFydFZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnRWYWx1ZSA9IGRhdGEuc3RhcnRWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5zeW5jICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc3luYyA9IGRhdGEuc3luYztcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuU2l6ZUFuaW1hdGlvbiA9IFNpemVBbmltYXRpb247XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Size/SizeAnimation.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Stroke.js": +/*!**********************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Stroke.js ***! + \**********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Stroke = void 0;\nconst AnimatableColor_1 = __webpack_require__(/*! ../AnimatableColor */ \"./node_modules/tsparticles/Options/Classes/AnimatableColor.js\");\nclass Stroke {\n constructor() {\n this.width = 0;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.color !== undefined) {\n this.color = AnimatableColor_1.AnimatableColor.create(this.color, data.color);\n }\n if (data.width !== undefined) {\n this.width = data.width;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\nexports.Stroke = Stroke;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9TdHJva2UuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsY0FBYztBQUNkLDBCQUEwQixtQkFBTyxDQUFDLHlGQUFvQjtBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9QYXJ0aWNsZXMvU3Ryb2tlLmpzPzIzMTAiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlN0cm9rZSA9IHZvaWQgMDtcbmNvbnN0IEFuaW1hdGFibGVDb2xvcl8xID0gcmVxdWlyZShcIi4uL0FuaW1hdGFibGVDb2xvclwiKTtcbmNsYXNzIFN0cm9rZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMud2lkdGggPSAwO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmNvbG9yICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29sb3IgPSBBbmltYXRhYmxlQ29sb3JfMS5BbmltYXRhYmxlQ29sb3IuY3JlYXRlKHRoaXMuY29sb3IsIGRhdGEuY29sb3IpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLndpZHRoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMud2lkdGggPSBkYXRhLndpZHRoO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLm9wYWNpdHkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5vcGFjaXR5ID0gZGF0YS5vcGFjaXR5O1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5TdHJva2UgPSBTdHJva2U7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Stroke.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Tilt/Tilt.js": +/*!*************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Tilt/Tilt.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Tilt = void 0;\nconst TiltAnimation_1 = __webpack_require__(/*! ./TiltAnimation */ \"./node_modules/tsparticles/Options/Classes/Particles/Tilt/TiltAnimation.js\");\nconst Enums_1 = __webpack_require__(/*! ../../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst ValueWithRandom_1 = __webpack_require__(/*! ../../ValueWithRandom */ \"./node_modules/tsparticles/Options/Classes/ValueWithRandom.js\");\nclass Tilt extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n this.animation = new TiltAnimation_1.TiltAnimation();\n this.direction = Enums_1.TiltDirection.clockwise;\n this.enable = false;\n this.value = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n super.load(data);\n this.animation.load(data.animation);\n if (data.direction !== undefined) {\n this.direction = data.direction;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n }\n}\nexports.Tilt = Tilt;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9UaWx0L1RpbHQuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsWUFBWTtBQUNaLHdCQUF3QixtQkFBTyxDQUFDLG1HQUFpQjtBQUNqRCxnQkFBZ0IsbUJBQU8sQ0FBQyxvRUFBbUI7QUFDM0MsMEJBQTBCLG1CQUFPLENBQUMsNEZBQXVCO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9UaWx0L1RpbHQuanM/NjhiMiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuVGlsdCA9IHZvaWQgMDtcbmNvbnN0IFRpbHRBbmltYXRpb25fMSA9IHJlcXVpcmUoXCIuL1RpbHRBbmltYXRpb25cIik7XG5jb25zdCBFbnVtc18xID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL0VudW1zXCIpO1xuY29uc3QgVmFsdWVXaXRoUmFuZG9tXzEgPSByZXF1aXJlKFwiLi4vLi4vVmFsdWVXaXRoUmFuZG9tXCIpO1xuY2xhc3MgVGlsdCBleHRlbmRzIFZhbHVlV2l0aFJhbmRvbV8xLlZhbHVlV2l0aFJhbmRvbSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuYW5pbWF0aW9uID0gbmV3IFRpbHRBbmltYXRpb25fMS5UaWx0QW5pbWF0aW9uKCk7XG4gICAgICAgIHRoaXMuZGlyZWN0aW9uID0gRW51bXNfMS5UaWx0RGlyZWN0aW9uLmNsb2Nrd2lzZTtcbiAgICAgICAgdGhpcy5lbmFibGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy52YWx1ZSA9IDA7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzdXBlci5sb2FkKGRhdGEpO1xuICAgICAgICB0aGlzLmFuaW1hdGlvbi5sb2FkKGRhdGEuYW5pbWF0aW9uKTtcbiAgICAgICAgaWYgKGRhdGEuZGlyZWN0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZGlyZWN0aW9uID0gZGF0YS5kaXJlY3Rpb247XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZW5hYmxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlID0gZGF0YS5lbmFibGU7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLlRpbHQgPSBUaWx0O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Tilt/Tilt.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Tilt/TiltAnimation.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Tilt/TiltAnimation.js ***! + \**********************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.TiltAnimation = void 0;\nclass TiltAnimation {\n constructor() {\n this.enable = false;\n this.speed = 0;\n this.sync = false;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\nexports.TiltAnimation = TiltAnimation;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9UaWx0L1RpbHRBbmltYXRpb24uanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9UaWx0L1RpbHRBbmltYXRpb24uanM/YWVlMyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuVGlsdEFuaW1hdGlvbiA9IHZvaWQgMDtcbmNsYXNzIFRpbHRBbmltYXRpb24ge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmVuYWJsZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNwZWVkID0gMDtcbiAgICAgICAgdGhpcy5zeW5jID0gZmFsc2U7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZW5hYmxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlID0gZGF0YS5lbmFibGU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuc3BlZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5zcGVlZCA9IGRhdGEuc3BlZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuc3luYyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnN5bmMgPSBkYXRhLnN5bmM7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLlRpbHRBbmltYXRpb24gPSBUaWx0QW5pbWF0aW9uO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Tilt/TiltAnimation.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Twinkle/Twinkle.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Twinkle/Twinkle.js ***! + \*******************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Twinkle = void 0;\nconst TwinkleValues_1 = __webpack_require__(/*! ./TwinkleValues */ \"./node_modules/tsparticles/Options/Classes/Particles/Twinkle/TwinkleValues.js\");\nclass Twinkle {\n constructor() {\n this.lines = new TwinkleValues_1.TwinkleValues();\n this.particles = new TwinkleValues_1.TwinkleValues();\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n this.lines.load(data.lines);\n this.particles.load(data.particles);\n }\n}\nexports.Twinkle = Twinkle;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Ud2lua2xlL1R3aW5rbGUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsZUFBZTtBQUNmLHdCQUF3QixtQkFBTyxDQUFDLHNHQUFpQjtBQUNqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9QYXJ0aWNsZXMvVHdpbmtsZS9Ud2lua2xlLmpzPzAyY2YiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlR3aW5rbGUgPSB2b2lkIDA7XG5jb25zdCBUd2lua2xlVmFsdWVzXzEgPSByZXF1aXJlKFwiLi9Ud2lua2xlVmFsdWVzXCIpO1xuY2xhc3MgVHdpbmtsZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMubGluZXMgPSBuZXcgVHdpbmtsZVZhbHVlc18xLlR3aW5rbGVWYWx1ZXMoKTtcbiAgICAgICAgdGhpcy5wYXJ0aWNsZXMgPSBuZXcgVHdpbmtsZVZhbHVlc18xLlR3aW5rbGVWYWx1ZXMoKTtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxpbmVzLmxvYWQoZGF0YS5saW5lcyk7XG4gICAgICAgIHRoaXMucGFydGljbGVzLmxvYWQoZGF0YS5wYXJ0aWNsZXMpO1xuICAgIH1cbn1cbmV4cG9ydHMuVHdpbmtsZSA9IFR3aW5rbGU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Twinkle/Twinkle.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Twinkle/TwinkleValues.js": +/*!*************************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Twinkle/TwinkleValues.js ***! + \*************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.TwinkleValues = void 0;\nconst OptionsColor_1 = __webpack_require__(/*! ../../OptionsColor */ \"./node_modules/tsparticles/Options/Classes/OptionsColor.js\");\nclass TwinkleValues {\n constructor() {\n this.enable = false;\n this.frequency = 0.05;\n this.opacity = 1;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor_1.OptionsColor.create(this.color, data.color);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.frequency !== undefined) {\n this.frequency = data.frequency;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\nexports.TwinkleValues = TwinkleValues;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Ud2lua2xlL1R3aW5rbGVWYWx1ZXMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QscUJBQXFCO0FBQ3JCLHVCQUF1QixtQkFBTyxDQUFDLHNGQUFvQjtBQUNuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9QYXJ0aWNsZXMvVHdpbmtsZS9Ud2lua2xlVmFsdWVzLmpzP2U4ZDkiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlR3aW5rbGVWYWx1ZXMgPSB2b2lkIDA7XG5jb25zdCBPcHRpb25zQ29sb3JfMSA9IHJlcXVpcmUoXCIuLi8uLi9PcHRpb25zQ29sb3JcIik7XG5jbGFzcyBUd2lua2xlVmFsdWVzIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5lbmFibGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5mcmVxdWVuY3kgPSAwLjA1O1xuICAgICAgICB0aGlzLm9wYWNpdHkgPSAxO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmNvbG9yICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29sb3IgPSBPcHRpb25zQ29sb3JfMS5PcHRpb25zQ29sb3IuY3JlYXRlKHRoaXMuY29sb3IsIGRhdGEuY29sb3IpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmVuYWJsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZSA9IGRhdGEuZW5hYmxlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmZyZXF1ZW5jeSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmZyZXF1ZW5jeSA9IGRhdGEuZnJlcXVlbmN5O1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLm9wYWNpdHkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5vcGFjaXR5ID0gZGF0YS5vcGFjaXR5O1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5Ud2lua2xlVmFsdWVzID0gVHdpbmtsZVZhbHVlcztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Twinkle/TwinkleValues.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/Wobble/Wobble.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/Wobble/Wobble.js ***! + \*****************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Wobble = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass Wobble {\n constructor() {\n this.distance = 5;\n this.enable = false;\n this.speed = 50;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = (0, Utils_1.setRangeValue)(data.distance);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = (0, Utils_1.setRangeValue)(data.speed);\n }\n }\n}\nexports.Wobble = Wobble;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Xb2JibGUvV29iYmxlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGNBQWM7QUFDZCxnQkFBZ0IsbUJBQU8sQ0FBQyxvRUFBbUI7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9Xb2JibGUvV29iYmxlLmpzPzUzZjUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLldvYmJsZSA9IHZvaWQgMDtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vVXRpbHNcIik7XG5jbGFzcyBXb2JibGUge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmRpc3RhbmNlID0gNTtcbiAgICAgICAgdGhpcy5lbmFibGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zcGVlZCA9IDUwO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZGlzdGFuY2UgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5kaXN0YW5jZSA9ICgwLCBVdGlsc18xLnNldFJhbmdlVmFsdWUpKGRhdGEuZGlzdGFuY2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmVuYWJsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZSA9IGRhdGEuZW5hYmxlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnNwZWVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc3BlZWQgPSAoMCwgVXRpbHNfMS5zZXRSYW5nZVZhbHVlKShkYXRhLnNwZWVkKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuV29iYmxlID0gV29iYmxlO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/Wobble/Wobble.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Particles/ZIndex/ZIndex.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Particles/ZIndex/ZIndex.js ***! + \*****************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ZIndex = void 0;\nconst ValueWithRandom_1 = __webpack_require__(/*! ../../ValueWithRandom */ \"./node_modules/tsparticles/Options/Classes/ValueWithRandom.js\");\nclass ZIndex extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n this.opacityRate = 1;\n this.sizeRate = 1;\n this.velocityRate = 1;\n }\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n if (data.opacityRate !== undefined) {\n this.opacityRate = data.opacityRate;\n }\n if (data.sizeRate !== undefined) {\n this.sizeRate = data.sizeRate;\n }\n if (data.velocityRate !== undefined) {\n this.velocityRate = data.velocityRate;\n }\n }\n}\nexports.ZIndex = ZIndex;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1BhcnRpY2xlcy9aSW5kZXgvWkluZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGNBQWM7QUFDZCwwQkFBMEIsbUJBQU8sQ0FBQyw0RkFBdUI7QUFDekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9QYXJ0aWNsZXMvWkluZGV4L1pJbmRleC5qcz85NTlkIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5aSW5kZXggPSB2b2lkIDA7XG5jb25zdCBWYWx1ZVdpdGhSYW5kb21fMSA9IHJlcXVpcmUoXCIuLi8uLi9WYWx1ZVdpdGhSYW5kb21cIik7XG5jbGFzcyBaSW5kZXggZXh0ZW5kcyBWYWx1ZVdpdGhSYW5kb21fMS5WYWx1ZVdpdGhSYW5kb20ge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLm9wYWNpdHlSYXRlID0gMTtcbiAgICAgICAgdGhpcy5zaXplUmF0ZSA9IDE7XG4gICAgICAgIHRoaXMudmVsb2NpdHlSYXRlID0gMTtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIHN1cGVyLmxvYWQoZGF0YSk7XG4gICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLm9wYWNpdHlSYXRlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMub3BhY2l0eVJhdGUgPSBkYXRhLm9wYWNpdHlSYXRlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnNpemVSYXRlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2l6ZVJhdGUgPSBkYXRhLnNpemVSYXRlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnZlbG9jaXR5UmF0ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnZlbG9jaXR5UmF0ZSA9IGRhdGEudmVsb2NpdHlSYXRlO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5aSW5kZXggPSBaSW5kZXg7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Particles/ZIndex/ZIndex.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Random.js": +/*!************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Random.js ***! + \************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Random = void 0;\nclass Random {\n constructor() {\n this.enable = false;\n this.minimumValue = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.minimumValue !== undefined) {\n this.minimumValue = data.minimumValue;\n }\n }\n}\nexports.Random = Random;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1JhbmRvbS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL09wdGlvbnMvQ2xhc3Nlcy9SYW5kb20uanM/MWU4YiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuUmFuZG9tID0gdm9pZCAwO1xuY2xhc3MgUmFuZG9tIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5lbmFibGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5taW5pbXVtVmFsdWUgPSAwO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZW5hYmxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlID0gZGF0YS5lbmFibGU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEubWluaW11bVZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMubWluaW11bVZhbHVlID0gZGF0YS5taW5pbXVtVmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLlJhbmRvbSA9IFJhbmRvbTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Random.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Responsive.js": +/*!****************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Responsive.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Responsive = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Enums_1 = __webpack_require__(/*! ../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nclass Responsive {\n constructor() {\n this.maxWidth = Infinity;\n this.options = {};\n this.mode = Enums_1.ResponsiveMode.canvas;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.maxWidth !== undefined) {\n this.maxWidth = data.maxWidth;\n }\n if (data.mode !== undefined) {\n if (data.mode === Enums_1.ResponsiveMode.screen) {\n this.mode = Enums_1.ResponsiveMode.screen;\n }\n else {\n this.mode = Enums_1.ResponsiveMode.canvas;\n }\n }\n if (data.options !== undefined) {\n this.options = (0, Utils_1.deepExtend)({}, data.options);\n }\n }\n}\nexports.Responsive = Responsive;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1Jlc3BvbnNpdmUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsa0JBQWtCO0FBQ2xCLGdCQUFnQixtQkFBTyxDQUFDLDhEQUFhO0FBQ3JDLGdCQUFnQixtQkFBTyxDQUFDLDhEQUFhO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscURBQXFEO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1Jlc3BvbnNpdmUuanM/ODViMyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuUmVzcG9uc2l2ZSA9IHZvaWQgMDtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vVXRpbHNcIik7XG5jb25zdCBFbnVtc18xID0gcmVxdWlyZShcIi4uLy4uL0VudW1zXCIpO1xuY2xhc3MgUmVzcG9uc2l2ZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMubWF4V2lkdGggPSBJbmZpbml0eTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0ge307XG4gICAgICAgIHRoaXMubW9kZSA9IEVudW1zXzEuUmVzcG9uc2l2ZU1vZGUuY2FudmFzO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEubWF4V2lkdGggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5tYXhXaWR0aCA9IGRhdGEubWF4V2lkdGg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEubW9kZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBpZiAoZGF0YS5tb2RlID09PSBFbnVtc18xLlJlc3BvbnNpdmVNb2RlLnNjcmVlbikge1xuICAgICAgICAgICAgICAgIHRoaXMubW9kZSA9IEVudW1zXzEuUmVzcG9uc2l2ZU1vZGUuc2NyZWVuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tb2RlID0gRW51bXNfMS5SZXNwb25zaXZlTW9kZS5jYW52YXM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEub3B0aW9ucyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMgPSAoMCwgVXRpbHNfMS5kZWVwRXh0ZW5kKSh7fSwgZGF0YS5vcHRpb25zKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuUmVzcG9uc2l2ZSA9IFJlc3BvbnNpdmU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Responsive.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Theme/Theme.js": +/*!*****************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Theme/Theme.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Theme = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst ThemeDefault_1 = __webpack_require__(/*! ./ThemeDefault */ \"./node_modules/tsparticles/Options/Classes/Theme/ThemeDefault.js\");\nclass Theme {\n constructor() {\n this.name = \"\";\n this.default = new ThemeDefault_1.ThemeDefault();\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.name !== undefined) {\n this.name = data.name;\n }\n this.default.load(data.default);\n if (data.options !== undefined) {\n this.options = (0, Utils_1.deepExtend)({}, data.options);\n }\n }\n}\nexports.Theme = Theme;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1RoZW1lL1RoZW1lLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGFBQWE7QUFDYixnQkFBZ0IsbUJBQU8sQ0FBQyxpRUFBZ0I7QUFDeEMsdUJBQXVCLG1CQUFPLENBQUMsd0ZBQWdCO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxREFBcUQ7QUFDckQ7QUFDQTtBQUNBO0FBQ0EsYUFBYSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1RoZW1lL1RoZW1lLmpzPzYwYzciXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlRoZW1lID0gdm9pZCAwO1xuY29uc3QgVXRpbHNfMSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9VdGlsc1wiKTtcbmNvbnN0IFRoZW1lRGVmYXVsdF8xID0gcmVxdWlyZShcIi4vVGhlbWVEZWZhdWx0XCIpO1xuY2xhc3MgVGhlbWUge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLm5hbWUgPSBcIlwiO1xuICAgICAgICB0aGlzLmRlZmF1bHQgPSBuZXcgVGhlbWVEZWZhdWx0XzEuVGhlbWVEZWZhdWx0KCk7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEubmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLm5hbWUgPSBkYXRhLm5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kZWZhdWx0LmxvYWQoZGF0YS5kZWZhdWx0KTtcbiAgICAgICAgaWYgKGRhdGEub3B0aW9ucyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMgPSAoMCwgVXRpbHNfMS5kZWVwRXh0ZW5kKSh7fSwgZGF0YS5vcHRpb25zKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuVGhlbWUgPSBUaGVtZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Theme/Theme.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/Theme/ThemeDefault.js": +/*!************************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/Theme/ThemeDefault.js ***! + \************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ThemeDefault = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nclass ThemeDefault {\n constructor() {\n this.auto = false;\n this.mode = Enums_1.ThemeMode.any;\n this.value = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.auto !== undefined) {\n this.auto = data.auto;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n if (data.value !== undefined) {\n this.value = data.value;\n }\n }\n}\nexports.ThemeDefault = ThemeDefault;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1RoZW1lL1RoZW1lRGVmYXVsdC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxvQkFBb0I7QUFDcEIsZ0JBQWdCLG1CQUFPLENBQUMsaUVBQWdCO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1RoZW1lL1RoZW1lRGVmYXVsdC5qcz9iMGRhIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5UaGVtZURlZmF1bHQgPSB2b2lkIDA7XG5jb25zdCBFbnVtc18xID0gcmVxdWlyZShcIi4uLy4uLy4uL0VudW1zXCIpO1xuY2xhc3MgVGhlbWVEZWZhdWx0IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5hdXRvID0gZmFsc2U7XG4gICAgICAgIHRoaXMubW9kZSA9IEVudW1zXzEuVGhlbWVNb2RlLmFueTtcbiAgICAgICAgdGhpcy52YWx1ZSA9IGZhbHNlO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuYXV0byAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmF1dG8gPSBkYXRhLmF1dG87XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEubW9kZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLm1vZGUgPSBkYXRhLm1vZGU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEudmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IGRhdGEudmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLlRoZW1lRGVmYXVsdCA9IFRoZW1lRGVmYXVsdDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/Theme/ThemeDefault.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Options/Classes/ValueWithRandom.js": +/*!*********************************************************************!*\ + !*** ./node_modules/tsparticles/Options/Classes/ValueWithRandom.js ***! + \*********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ValueWithRandom = void 0;\nconst Random_1 = __webpack_require__(/*! ./Random */ \"./node_modules/tsparticles/Options/Classes/Random.js\");\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass ValueWithRandom {\n constructor() {\n this.random = new Random_1.Random();\n this.value = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (typeof data.random === \"boolean\") {\n this.random.enable = data.random;\n }\n else {\n this.random.load(data.random);\n }\n if (data.value !== undefined) {\n this.value = (0, Utils_1.setRangeValue)(data.value, this.random.enable ? this.random.minimumValue : undefined);\n }\n }\n}\nexports.ValueWithRandom = ValueWithRandom;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1ZhbHVlV2l0aFJhbmRvbS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCx1QkFBdUI7QUFDdkIsaUJBQWlCLG1CQUFPLENBQUMsc0VBQVU7QUFDbkMsZ0JBQWdCLG1CQUFPLENBQUMsOERBQWE7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvT3B0aW9ucy9DbGFzc2VzL1ZhbHVlV2l0aFJhbmRvbS5qcz8xMDg0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5WYWx1ZVdpdGhSYW5kb20gPSB2b2lkIDA7XG5jb25zdCBSYW5kb21fMSA9IHJlcXVpcmUoXCIuL1JhbmRvbVwiKTtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vVXRpbHNcIik7XG5jbGFzcyBWYWx1ZVdpdGhSYW5kb20ge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnJhbmRvbSA9IG5ldyBSYW5kb21fMS5SYW5kb20oKTtcbiAgICAgICAgdGhpcy52YWx1ZSA9IDA7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIGRhdGEucmFuZG9tID09PSBcImJvb2xlYW5cIikge1xuICAgICAgICAgICAgdGhpcy5yYW5kb20uZW5hYmxlID0gZGF0YS5yYW5kb207XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJhbmRvbS5sb2FkKGRhdGEucmFuZG9tKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gKDAsIFV0aWxzXzEuc2V0UmFuZ2VWYWx1ZSkoZGF0YS52YWx1ZSwgdGhpcy5yYW5kb20uZW5hYmxlID8gdGhpcy5yYW5kb20ubWluaW11bVZhbHVlIDogdW5kZWZpbmVkKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuVmFsdWVXaXRoUmFuZG9tID0gVmFsdWVXaXRoUmFuZG9tO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Options/Classes/ValueWithRandom.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/Absorbers/AbsorberInstance.js": +/*!************************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/Absorbers/AbsorberInstance.js ***! + \************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.AbsorberInstance = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Vector_1 = __webpack_require__(/*! ../../Core/Particle/Vector */ \"./node_modules/tsparticles/Core/Particle/Vector.js\");\nconst Enums_1 = __webpack_require__(/*! ../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nclass AbsorberInstance {\n constructor(absorbers, container, options, position) {\n var _a, _b, _c, _d, _e;\n this.absorbers = absorbers;\n this.container = container;\n this.initialPosition = position ? Vector_1.Vector.create(position.x, position.y) : undefined;\n this.options = options;\n this.dragging = false;\n this.name = this.options.name;\n this.opacity = this.options.opacity;\n this.size = (0, Utils_1.getRangeValue)(options.size.value) * container.retina.pixelRatio;\n this.mass = this.size * options.size.density * container.retina.reduceFactor;\n const limit = options.size.limit;\n this.limit =\n typeof limit === \"number\"\n ? {\n radius: limit * container.retina.pixelRatio * container.retina.reduceFactor,\n mass: 0,\n }\n : {\n radius: ((_a = limit === null || limit === void 0 ? void 0 : limit.radius) !== null && _a !== void 0 ? _a : 0) * container.retina.pixelRatio * container.retina.reduceFactor,\n mass: (_b = limit === null || limit === void 0 ? void 0 : limit.mass) !== null && _b !== void 0 ? _b : 0,\n };\n const color = typeof options.color === \"string\" ? { value: options.color } : options.color;\n this.color = (_c = (0, Utils_1.colorToRgb)(color)) !== null && _c !== void 0 ? _c : {\n b: 0,\n g: 0,\n r: 0,\n };\n this.position = (_e = (_d = this.initialPosition) === null || _d === void 0 ? void 0 : _d.copy()) !== null && _e !== void 0 ? _e : this.calcPosition();\n }\n attract(particle) {\n const container = this.container;\n const options = this.options;\n if (options.draggable) {\n const mouse = container.interactivity.mouse;\n if (mouse.clicking && mouse.downPosition) {\n const mouseDist = (0, Utils_1.getDistance)(this.position, mouse.downPosition);\n if (mouseDist <= this.size) {\n this.dragging = true;\n }\n }\n else {\n this.dragging = false;\n }\n if (this.dragging && mouse.position) {\n this.position.x = mouse.position.x;\n this.position.y = mouse.position.y;\n }\n }\n const pos = particle.getPosition();\n const { dx, dy, distance } = (0, Utils_1.getDistances)(this.position, pos);\n const v = Vector_1.Vector.create(dx, dy);\n v.length = (this.mass / Math.pow(distance, 2)) * container.retina.reduceFactor;\n if (distance < this.size + particle.getRadius()) {\n const sizeFactor = particle.getRadius() * 0.033 * container.retina.pixelRatio;\n if ((this.size > particle.getRadius() && distance < this.size - particle.getRadius()) ||\n (particle.absorberOrbit !== undefined && particle.absorberOrbit.length < 0)) {\n if (options.destroy) {\n particle.destroy();\n }\n else {\n particle.needsNewPosition = true;\n this.updateParticlePosition(particle, v);\n }\n }\n else {\n if (options.destroy) {\n particle.size.value -= sizeFactor;\n }\n this.updateParticlePosition(particle, v);\n }\n if (this.limit.radius <= 0 || this.size < this.limit.radius) {\n this.size += sizeFactor;\n }\n if (this.limit.mass <= 0 || this.mass < this.limit.mass) {\n this.mass += sizeFactor * this.options.size.density * container.retina.reduceFactor;\n }\n }\n else {\n this.updateParticlePosition(particle, v);\n }\n }\n resize() {\n const initialPosition = this.initialPosition;\n this.position =\n initialPosition && (0, Utils_1.isPointInside)(initialPosition, this.container.canvas.size)\n ? initialPosition\n : this.calcPosition();\n }\n draw(context) {\n context.translate(this.position.x, this.position.y);\n context.beginPath();\n context.arc(0, 0, this.size, 0, Math.PI * 2, false);\n context.closePath();\n context.fillStyle = (0, Utils_1.getStyleFromRgb)(this.color, this.opacity);\n context.fill();\n }\n calcPosition() {\n var _a, _b;\n const container = this.container;\n const percentPosition = this.options.position;\n return Vector_1.Vector.create((((_a = percentPosition === null || percentPosition === void 0 ? void 0 : percentPosition.x) !== null && _a !== void 0 ? _a : Math.random() * 100) / 100) * container.canvas.size.width, (((_b = percentPosition === null || percentPosition === void 0 ? void 0 : percentPosition.y) !== null && _b !== void 0 ? _b : Math.random() * 100) / 100) * container.canvas.size.height);\n }\n updateParticlePosition(particle, v) {\n var _a;\n if (particle.destroyed) {\n return;\n }\n const container = this.container;\n const canvasSize = container.canvas.size;\n if (particle.needsNewPosition) {\n particle.position.x = Math.floor(Math.random() * canvasSize.width);\n particle.position.y = Math.floor(Math.random() * canvasSize.height);\n particle.velocity.setTo(particle.initialVelocity);\n particle.absorberOrbit = undefined;\n particle.needsNewPosition = false;\n }\n if (this.options.orbits) {\n if (particle.absorberOrbit === undefined) {\n particle.absorberOrbit = Vector_1.Vector.create(0, 0);\n particle.absorberOrbit.length = (0, Utils_1.getDistance)(particle.getPosition(), this.position);\n particle.absorberOrbit.angle = Math.random() * Math.PI * 2;\n }\n if (particle.absorberOrbit.length <= this.size && !this.options.destroy) {\n const minSize = Math.min(canvasSize.width, canvasSize.height);\n particle.absorberOrbit.length = minSize * (1 + (Math.random() * 0.2 - 0.1));\n }\n if (particle.absorberOrbitDirection === undefined) {\n particle.absorberOrbitDirection =\n particle.velocity.x >= 0 ? Enums_1.RotateDirection.clockwise : Enums_1.RotateDirection.counterClockwise;\n }\n const orbitRadius = particle.absorberOrbit.length;\n const orbitAngle = particle.absorberOrbit.angle;\n const orbitDirection = particle.absorberOrbitDirection;\n particle.velocity.x = 0;\n particle.velocity.y = 0;\n const updateFunc = {\n x: orbitDirection === Enums_1.RotateDirection.clockwise ? Math.cos : Math.sin,\n y: orbitDirection === Enums_1.RotateDirection.clockwise ? Math.sin : Math.cos,\n };\n particle.position.x = this.position.x + orbitRadius * updateFunc.x(orbitAngle);\n particle.position.y = this.position.y + orbitRadius * updateFunc.y(orbitAngle);\n particle.absorberOrbit.length -= v.length;\n particle.absorberOrbit.angle +=\n ((((_a = particle.retina.moveSpeed) !== null && _a !== void 0 ? _a : 0) * container.retina.pixelRatio) / 100) *\n container.retina.reduceFactor;\n }\n else {\n const addV = Vector_1.Vector.origin;\n addV.length = v.length;\n addV.angle = v.angle;\n particle.velocity.addTo(addV);\n }\n }\n}\nexports.AbsorberInstance = AbsorberInstance;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9BYnNvcmJlcnMvQWJzb3JiZXJJbnN0YW5jZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCx3QkFBd0I7QUFDeEIsZ0JBQWdCLG1CQUFPLENBQUMsOERBQWE7QUFDckMsaUJBQWlCLG1CQUFPLENBQUMsc0ZBQTRCO0FBQ3JELGdCQUFnQixtQkFBTyxDQUFDLDhEQUFhO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0REFBNEQsdUJBQXVCO0FBQ25GO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixtQkFBbUI7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9BYnNvcmJlcnMvQWJzb3JiZXJJbnN0YW5jZS5qcz9kY2FhIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5BYnNvcmJlckluc3RhbmNlID0gdm9pZCAwO1xuY29uc3QgVXRpbHNfMSA9IHJlcXVpcmUoXCIuLi8uLi9VdGlsc1wiKTtcbmNvbnN0IFZlY3Rvcl8xID0gcmVxdWlyZShcIi4uLy4uL0NvcmUvUGFydGljbGUvVmVjdG9yXCIpO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuLi8uLi9FbnVtc1wiKTtcbmNsYXNzIEFic29yYmVySW5zdGFuY2Uge1xuICAgIGNvbnN0cnVjdG9yKGFic29yYmVycywgY29udGFpbmVyLCBvcHRpb25zLCBwb3NpdGlvbikge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2QsIF9lO1xuICAgICAgICB0aGlzLmFic29yYmVycyA9IGFic29yYmVycztcbiAgICAgICAgdGhpcy5jb250YWluZXIgPSBjb250YWluZXI7XG4gICAgICAgIHRoaXMuaW5pdGlhbFBvc2l0aW9uID0gcG9zaXRpb24gPyBWZWN0b3JfMS5WZWN0b3IuY3JlYXRlKHBvc2l0aW9uLngsIHBvc2l0aW9uLnkpIDogdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgICAgICB0aGlzLmRyYWdnaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMubmFtZSA9IHRoaXMub3B0aW9ucy5uYW1lO1xuICAgICAgICB0aGlzLm9wYWNpdHkgPSB0aGlzLm9wdGlvbnMub3BhY2l0eTtcbiAgICAgICAgdGhpcy5zaXplID0gKDAsIFV0aWxzXzEuZ2V0UmFuZ2VWYWx1ZSkob3B0aW9ucy5zaXplLnZhbHVlKSAqIGNvbnRhaW5lci5yZXRpbmEucGl4ZWxSYXRpbztcbiAgICAgICAgdGhpcy5tYXNzID0gdGhpcy5zaXplICogb3B0aW9ucy5zaXplLmRlbnNpdHkgKiBjb250YWluZXIucmV0aW5hLnJlZHVjZUZhY3RvcjtcbiAgICAgICAgY29uc3QgbGltaXQgPSBvcHRpb25zLnNpemUubGltaXQ7XG4gICAgICAgIHRoaXMubGltaXQgPVxuICAgICAgICAgICAgdHlwZW9mIGxpbWl0ID09PSBcIm51bWJlclwiXG4gICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgIHJhZGl1czogbGltaXQgKiBjb250YWluZXIucmV0aW5hLnBpeGVsUmF0aW8gKiBjb250YWluZXIucmV0aW5hLnJlZHVjZUZhY3RvcixcbiAgICAgICAgICAgICAgICAgICAgbWFzczogMCxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICAgIHJhZGl1czogKChfYSA9IGxpbWl0ID09PSBudWxsIHx8IGxpbWl0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBsaW1pdC5yYWRpdXMpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IDApICogY29udGFpbmVyLnJldGluYS5waXhlbFJhdGlvICogY29udGFpbmVyLnJldGluYS5yZWR1Y2VGYWN0b3IsXG4gICAgICAgICAgICAgICAgICAgIG1hc3M6IChfYiA9IGxpbWl0ID09PSBudWxsIHx8IGxpbWl0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBsaW1pdC5tYXNzKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiAwLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgIGNvbnN0IGNvbG9yID0gdHlwZW9mIG9wdGlvbnMuY29sb3IgPT09IFwic3RyaW5nXCIgPyB7IHZhbHVlOiBvcHRpb25zLmNvbG9yIH0gOiBvcHRpb25zLmNvbG9yO1xuICAgICAgICB0aGlzLmNvbG9yID0gKF9jID0gKDAsIFV0aWxzXzEuY29sb3JUb1JnYikoY29sb3IpKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiB7XG4gICAgICAgICAgICBiOiAwLFxuICAgICAgICAgICAgZzogMCxcbiAgICAgICAgICAgIHI6IDAsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMucG9zaXRpb24gPSAoX2UgPSAoX2QgPSB0aGlzLmluaXRpYWxQb3NpdGlvbikgPT09IG51bGwgfHwgX2QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9kLmNvcHkoKSkgIT09IG51bGwgJiYgX2UgIT09IHZvaWQgMCA/IF9lIDogdGhpcy5jYWxjUG9zaXRpb24oKTtcbiAgICB9XG4gICAgYXR0cmFjdChwYXJ0aWNsZSkge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgICAgICAgaWYgKG9wdGlvbnMuZHJhZ2dhYmxlKSB7XG4gICAgICAgICAgICBjb25zdCBtb3VzZSA9IGNvbnRhaW5lci5pbnRlcmFjdGl2aXR5Lm1vdXNlO1xuICAgICAgICAgICAgaWYgKG1vdXNlLmNsaWNraW5nICYmIG1vdXNlLmRvd25Qb3NpdGlvbikge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1vdXNlRGlzdCA9ICgwLCBVdGlsc18xLmdldERpc3RhbmNlKSh0aGlzLnBvc2l0aW9uLCBtb3VzZS5kb3duUG9zaXRpb24pO1xuICAgICAgICAgICAgICAgIGlmIChtb3VzZURpc3QgPD0gdGhpcy5zaXplKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHJhZ2dpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuZHJhZ2dpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLmRyYWdnaW5nICYmIG1vdXNlLnBvc2l0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbi54ID0gbW91c2UucG9zaXRpb24ueDtcbiAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uLnkgPSBtb3VzZS5wb3NpdGlvbi55O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBvcyA9IHBhcnRpY2xlLmdldFBvc2l0aW9uKCk7XG4gICAgICAgIGNvbnN0IHsgZHgsIGR5LCBkaXN0YW5jZSB9ID0gKDAsIFV0aWxzXzEuZ2V0RGlzdGFuY2VzKSh0aGlzLnBvc2l0aW9uLCBwb3MpO1xuICAgICAgICBjb25zdCB2ID0gVmVjdG9yXzEuVmVjdG9yLmNyZWF0ZShkeCwgZHkpO1xuICAgICAgICB2Lmxlbmd0aCA9ICh0aGlzLm1hc3MgLyBNYXRoLnBvdyhkaXN0YW5jZSwgMikpICogY29udGFpbmVyLnJldGluYS5yZWR1Y2VGYWN0b3I7XG4gICAgICAgIGlmIChkaXN0YW5jZSA8IHRoaXMuc2l6ZSArIHBhcnRpY2xlLmdldFJhZGl1cygpKSB7XG4gICAgICAgICAgICBjb25zdCBzaXplRmFjdG9yID0gcGFydGljbGUuZ2V0UmFkaXVzKCkgKiAwLjAzMyAqIGNvbnRhaW5lci5yZXRpbmEucGl4ZWxSYXRpbztcbiAgICAgICAgICAgIGlmICgodGhpcy5zaXplID4gcGFydGljbGUuZ2V0UmFkaXVzKCkgJiYgZGlzdGFuY2UgPCB0aGlzLnNpemUgLSBwYXJ0aWNsZS5nZXRSYWRpdXMoKSkgfHxcbiAgICAgICAgICAgICAgICAocGFydGljbGUuYWJzb3JiZXJPcmJpdCAhPT0gdW5kZWZpbmVkICYmIHBhcnRpY2xlLmFic29yYmVyT3JiaXQubGVuZ3RoIDwgMCkpIHtcbiAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5kZXN0cm95KSB7XG4gICAgICAgICAgICAgICAgICAgIHBhcnRpY2xlLmRlc3Ryb3koKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHBhcnRpY2xlLm5lZWRzTmV3UG9zaXRpb24gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVBhcnRpY2xlUG9zaXRpb24ocGFydGljbGUsIHYpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLmRlc3Ryb3kpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFydGljbGUuc2l6ZS52YWx1ZSAtPSBzaXplRmFjdG9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVBhcnRpY2xlUG9zaXRpb24ocGFydGljbGUsIHYpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMubGltaXQucmFkaXVzIDw9IDAgfHwgdGhpcy5zaXplIDwgdGhpcy5saW1pdC5yYWRpdXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNpemUgKz0gc2l6ZUZhY3RvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLmxpbWl0Lm1hc3MgPD0gMCB8fCB0aGlzLm1hc3MgPCB0aGlzLmxpbWl0Lm1hc3MpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1hc3MgKz0gc2l6ZUZhY3RvciAqIHRoaXMub3B0aW9ucy5zaXplLmRlbnNpdHkgKiBjb250YWluZXIucmV0aW5hLnJlZHVjZUZhY3RvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUGFydGljbGVQb3NpdGlvbihwYXJ0aWNsZSwgdik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmVzaXplKCkge1xuICAgICAgICBjb25zdCBpbml0aWFsUG9zaXRpb24gPSB0aGlzLmluaXRpYWxQb3NpdGlvbjtcbiAgICAgICAgdGhpcy5wb3NpdGlvbiA9XG4gICAgICAgICAgICBpbml0aWFsUG9zaXRpb24gJiYgKDAsIFV0aWxzXzEuaXNQb2ludEluc2lkZSkoaW5pdGlhbFBvc2l0aW9uLCB0aGlzLmNvbnRhaW5lci5jYW52YXMuc2l6ZSlcbiAgICAgICAgICAgICAgICA/IGluaXRpYWxQb3NpdGlvblxuICAgICAgICAgICAgICAgIDogdGhpcy5jYWxjUG9zaXRpb24oKTtcbiAgICB9XG4gICAgZHJhdyhjb250ZXh0KSB7XG4gICAgICAgIGNvbnRleHQudHJhbnNsYXRlKHRoaXMucG9zaXRpb24ueCwgdGhpcy5wb3NpdGlvbi55KTtcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcbiAgICAgICAgY29udGV4dC5hcmMoMCwgMCwgdGhpcy5zaXplLCAwLCBNYXRoLlBJICogMiwgZmFsc2UpO1xuICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xuICAgICAgICBjb250ZXh0LmZpbGxTdHlsZSA9ICgwLCBVdGlsc18xLmdldFN0eWxlRnJvbVJnYikodGhpcy5jb2xvciwgdGhpcy5vcGFjaXR5KTtcbiAgICAgICAgY29udGV4dC5maWxsKCk7XG4gICAgfVxuICAgIGNhbGNQb3NpdGlvbigpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXI7XG4gICAgICAgIGNvbnN0IHBlcmNlbnRQb3NpdGlvbiA9IHRoaXMub3B0aW9ucy5wb3NpdGlvbjtcbiAgICAgICAgcmV0dXJuIFZlY3Rvcl8xLlZlY3Rvci5jcmVhdGUoKCgoX2EgPSBwZXJjZW50UG9zaXRpb24gPT09IG51bGwgfHwgcGVyY2VudFBvc2l0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwZXJjZW50UG9zaXRpb24ueCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogTWF0aC5yYW5kb20oKSAqIDEwMCkgLyAxMDApICogY29udGFpbmVyLmNhbnZhcy5zaXplLndpZHRoLCAoKChfYiA9IHBlcmNlbnRQb3NpdGlvbiA9PT0gbnVsbCB8fCBwZXJjZW50UG9zaXRpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBlcmNlbnRQb3NpdGlvbi55KSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBNYXRoLnJhbmRvbSgpICogMTAwKSAvIDEwMCkgKiBjb250YWluZXIuY2FudmFzLnNpemUuaGVpZ2h0KTtcbiAgICB9XG4gICAgdXBkYXRlUGFydGljbGVQb3NpdGlvbihwYXJ0aWNsZSwgdikge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmIChwYXJ0aWNsZS5kZXN0cm95ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgY29uc3QgY2FudmFzU2l6ZSA9IGNvbnRhaW5lci5jYW52YXMuc2l6ZTtcbiAgICAgICAgaWYgKHBhcnRpY2xlLm5lZWRzTmV3UG9zaXRpb24pIHtcbiAgICAgICAgICAgIHBhcnRpY2xlLnBvc2l0aW9uLnggPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjYW52YXNTaXplLndpZHRoKTtcbiAgICAgICAgICAgIHBhcnRpY2xlLnBvc2l0aW9uLnkgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjYW52YXNTaXplLmhlaWdodCk7XG4gICAgICAgICAgICBwYXJ0aWNsZS52ZWxvY2l0eS5zZXRUbyhwYXJ0aWNsZS5pbml0aWFsVmVsb2NpdHkpO1xuICAgICAgICAgICAgcGFydGljbGUuYWJzb3JiZXJPcmJpdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHBhcnRpY2xlLm5lZWRzTmV3UG9zaXRpb24gPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLm9yYml0cykge1xuICAgICAgICAgICAgaWYgKHBhcnRpY2xlLmFic29yYmVyT3JiaXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHBhcnRpY2xlLmFic29yYmVyT3JiaXQgPSBWZWN0b3JfMS5WZWN0b3IuY3JlYXRlKDAsIDApO1xuICAgICAgICAgICAgICAgIHBhcnRpY2xlLmFic29yYmVyT3JiaXQubGVuZ3RoID0gKDAsIFV0aWxzXzEuZ2V0RGlzdGFuY2UpKHBhcnRpY2xlLmdldFBvc2l0aW9uKCksIHRoaXMucG9zaXRpb24pO1xuICAgICAgICAgICAgICAgIHBhcnRpY2xlLmFic29yYmVyT3JiaXQuYW5nbGUgPSBNYXRoLnJhbmRvbSgpICogTWF0aC5QSSAqIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocGFydGljbGUuYWJzb3JiZXJPcmJpdC5sZW5ndGggPD0gdGhpcy5zaXplICYmICF0aGlzLm9wdGlvbnMuZGVzdHJveSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1pblNpemUgPSBNYXRoLm1pbihjYW52YXNTaXplLndpZHRoLCBjYW52YXNTaXplLmhlaWdodCk7XG4gICAgICAgICAgICAgICAgcGFydGljbGUuYWJzb3JiZXJPcmJpdC5sZW5ndGggPSBtaW5TaXplICogKDEgKyAoTWF0aC5yYW5kb20oKSAqIDAuMiAtIDAuMSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHBhcnRpY2xlLmFic29yYmVyT3JiaXREaXJlY3Rpb24gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHBhcnRpY2xlLmFic29yYmVyT3JiaXREaXJlY3Rpb24gPVxuICAgICAgICAgICAgICAgICAgICBwYXJ0aWNsZS52ZWxvY2l0eS54ID49IDAgPyBFbnVtc18xLlJvdGF0ZURpcmVjdGlvbi5jbG9ja3dpc2UgOiBFbnVtc18xLlJvdGF0ZURpcmVjdGlvbi5jb3VudGVyQ2xvY2t3aXNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgb3JiaXRSYWRpdXMgPSBwYXJ0aWNsZS5hYnNvcmJlck9yYml0Lmxlbmd0aDtcbiAgICAgICAgICAgIGNvbnN0IG9yYml0QW5nbGUgPSBwYXJ0aWNsZS5hYnNvcmJlck9yYml0LmFuZ2xlO1xuICAgICAgICAgICAgY29uc3Qgb3JiaXREaXJlY3Rpb24gPSBwYXJ0aWNsZS5hYnNvcmJlck9yYml0RGlyZWN0aW9uO1xuICAgICAgICAgICAgcGFydGljbGUudmVsb2NpdHkueCA9IDA7XG4gICAgICAgICAgICBwYXJ0aWNsZS52ZWxvY2l0eS55ID0gMDtcbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZUZ1bmMgPSB7XG4gICAgICAgICAgICAgICAgeDogb3JiaXREaXJlY3Rpb24gPT09IEVudW1zXzEuUm90YXRlRGlyZWN0aW9uLmNsb2Nrd2lzZSA/IE1hdGguY29zIDogTWF0aC5zaW4sXG4gICAgICAgICAgICAgICAgeTogb3JiaXREaXJlY3Rpb24gPT09IEVudW1zXzEuUm90YXRlRGlyZWN0aW9uLmNsb2Nrd2lzZSA/IE1hdGguc2luIDogTWF0aC5jb3MsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcGFydGljbGUucG9zaXRpb24ueCA9IHRoaXMucG9zaXRpb24ueCArIG9yYml0UmFkaXVzICogdXBkYXRlRnVuYy54KG9yYml0QW5nbGUpO1xuICAgICAgICAgICAgcGFydGljbGUucG9zaXRpb24ueSA9IHRoaXMucG9zaXRpb24ueSArIG9yYml0UmFkaXVzICogdXBkYXRlRnVuYy55KG9yYml0QW5nbGUpO1xuICAgICAgICAgICAgcGFydGljbGUuYWJzb3JiZXJPcmJpdC5sZW5ndGggLT0gdi5sZW5ndGg7XG4gICAgICAgICAgICBwYXJ0aWNsZS5hYnNvcmJlck9yYml0LmFuZ2xlICs9XG4gICAgICAgICAgICAgICAgKCgoKF9hID0gcGFydGljbGUucmV0aW5hLm1vdmVTcGVlZCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogMCkgKiBjb250YWluZXIucmV0aW5hLnBpeGVsUmF0aW8pIC8gMTAwKSAqXG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lci5yZXRpbmEucmVkdWNlRmFjdG9yO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgYWRkViA9IFZlY3Rvcl8xLlZlY3Rvci5vcmlnaW47XG4gICAgICAgICAgICBhZGRWLmxlbmd0aCA9IHYubGVuZ3RoO1xuICAgICAgICAgICAgYWRkVi5hbmdsZSA9IHYuYW5nbGU7XG4gICAgICAgICAgICBwYXJ0aWNsZS52ZWxvY2l0eS5hZGRUbyhhZGRWKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuQWJzb3JiZXJJbnN0YW5jZSA9IEFic29yYmVySW5zdGFuY2U7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/Absorbers/AbsorberInstance.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/Absorbers/Absorbers.js": +/*!*****************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/Absorbers/Absorbers.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Absorbers = void 0;\nconst AbsorberInstance_1 = __webpack_require__(/*! ./AbsorberInstance */ \"./node_modules/tsparticles/Plugins/Absorbers/AbsorberInstance.js\");\nconst Absorber_1 = __webpack_require__(/*! ./Options/Classes/Absorber */ \"./node_modules/tsparticles/Plugins/Absorbers/Options/Classes/Absorber.js\");\nconst Enums_1 = __webpack_require__(/*! ./Enums */ \"./node_modules/tsparticles/Plugins/Absorbers/Enums/index.js\");\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass Absorbers {\n constructor(container) {\n this.container = container;\n this.array = [];\n this.absorbers = [];\n this.interactivityAbsorbers = [];\n const overridableContainer = container;\n overridableContainer.getAbsorber = (idxOrName) => idxOrName === undefined || typeof idxOrName === \"number\"\n ? this.array[idxOrName || 0]\n : this.array.find((t) => t.name === idxOrName);\n overridableContainer.addAbsorber = (options, position) => this.addAbsorber(options, position);\n }\n init(options) {\n var _a, _b;\n if (!options) {\n return;\n }\n if (options.absorbers) {\n if (options.absorbers instanceof Array) {\n this.absorbers = options.absorbers.map((s) => {\n const tmp = new Absorber_1.Absorber();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.absorbers instanceof Array) {\n this.absorbers = new Absorber_1.Absorber();\n }\n this.absorbers.load(options.absorbers);\n }\n }\n const interactivityAbsorbers = (_b = (_a = options.interactivity) === null || _a === void 0 ? void 0 : _a.modes) === null || _b === void 0 ? void 0 : _b.absorbers;\n if (interactivityAbsorbers) {\n if (interactivityAbsorbers instanceof Array) {\n this.interactivityAbsorbers = interactivityAbsorbers.map((s) => {\n const tmp = new Absorber_1.Absorber();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.interactivityAbsorbers instanceof Array) {\n this.interactivityAbsorbers = new Absorber_1.Absorber();\n }\n this.interactivityAbsorbers.load(interactivityAbsorbers);\n }\n }\n if (this.absorbers instanceof Array) {\n for (const absorberOptions of this.absorbers) {\n this.addAbsorber(absorberOptions);\n }\n }\n else {\n this.addAbsorber(this.absorbers);\n }\n }\n particleUpdate(particle) {\n for (const absorber of this.array) {\n absorber.attract(particle);\n if (particle.destroyed) {\n break;\n }\n }\n }\n draw(context) {\n for (const absorber of this.array) {\n context.save();\n absorber.draw(context);\n context.restore();\n }\n }\n stop() {\n this.array = [];\n }\n resize() {\n for (const absorber of this.array) {\n absorber.resize();\n }\n }\n handleClickMode(mode) {\n const container = this.container;\n const absorberOptions = this.absorbers;\n const modeAbsorbers = this.interactivityAbsorbers;\n if (mode === Enums_1.AbsorberClickMode.absorber) {\n let absorbersModeOptions;\n if (modeAbsorbers instanceof Array) {\n if (modeAbsorbers.length > 0) {\n absorbersModeOptions = (0, Utils_1.itemFromArray)(modeAbsorbers);\n }\n }\n else {\n absorbersModeOptions = modeAbsorbers;\n }\n const absorbersOptions = absorbersModeOptions !== null && absorbersModeOptions !== void 0 ? absorbersModeOptions : (absorberOptions instanceof Array ? (0, Utils_1.itemFromArray)(absorberOptions) : absorberOptions);\n const aPosition = container.interactivity.mouse.clickPosition;\n this.addAbsorber(absorbersOptions, aPosition);\n }\n }\n addAbsorber(options, position) {\n const absorber = new AbsorberInstance_1.AbsorberInstance(this, this.container, options, position);\n this.array.push(absorber);\n return absorber;\n }\n removeAbsorber(absorber) {\n const index = this.array.indexOf(absorber);\n if (index >= 0) {\n this.array.splice(index, 1);\n }\n }\n}\nexports.Absorbers = Absorbers;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9BYnNvcmJlcnMvQWJzb3JiZXJzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGlCQUFpQjtBQUNqQiwyQkFBMkIsbUJBQU8sQ0FBQyw0RkFBb0I7QUFDdkQsbUJBQW1CLG1CQUFPLENBQUMsNEdBQTRCO0FBQ3ZELGdCQUFnQixtQkFBTyxDQUFDLDRFQUFTO0FBQ2pDLGdCQUFnQixtQkFBTyxDQUFDLDhEQUFhO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1BsdWdpbnMvQWJzb3JiZXJzL0Fic29yYmVycy5qcz8xYmM1Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5BYnNvcmJlcnMgPSB2b2lkIDA7XG5jb25zdCBBYnNvcmJlckluc3RhbmNlXzEgPSByZXF1aXJlKFwiLi9BYnNvcmJlckluc3RhbmNlXCIpO1xuY29uc3QgQWJzb3JiZXJfMSA9IHJlcXVpcmUoXCIuL09wdGlvbnMvQ2xhc3Nlcy9BYnNvcmJlclwiKTtcbmNvbnN0IEVudW1zXzEgPSByZXF1aXJlKFwiLi9FbnVtc1wiKTtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vVXRpbHNcIik7XG5jbGFzcyBBYnNvcmJlcnMge1xuICAgIGNvbnN0cnVjdG9yKGNvbnRhaW5lcikge1xuICAgICAgICB0aGlzLmNvbnRhaW5lciA9IGNvbnRhaW5lcjtcbiAgICAgICAgdGhpcy5hcnJheSA9IFtdO1xuICAgICAgICB0aGlzLmFic29yYmVycyA9IFtdO1xuICAgICAgICB0aGlzLmludGVyYWN0aXZpdHlBYnNvcmJlcnMgPSBbXTtcbiAgICAgICAgY29uc3Qgb3ZlcnJpZGFibGVDb250YWluZXIgPSBjb250YWluZXI7XG4gICAgICAgIG92ZXJyaWRhYmxlQ29udGFpbmVyLmdldEFic29yYmVyID0gKGlkeE9yTmFtZSkgPT4gaWR4T3JOYW1lID09PSB1bmRlZmluZWQgfHwgdHlwZW9mIGlkeE9yTmFtZSA9PT0gXCJudW1iZXJcIlxuICAgICAgICAgICAgPyB0aGlzLmFycmF5W2lkeE9yTmFtZSB8fCAwXVxuICAgICAgICAgICAgOiB0aGlzLmFycmF5LmZpbmQoKHQpID0+IHQubmFtZSA9PT0gaWR4T3JOYW1lKTtcbiAgICAgICAgb3ZlcnJpZGFibGVDb250YWluZXIuYWRkQWJzb3JiZXIgPSAob3B0aW9ucywgcG9zaXRpb24pID0+IHRoaXMuYWRkQWJzb3JiZXIob3B0aW9ucywgcG9zaXRpb24pO1xuICAgIH1cbiAgICBpbml0KG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgaWYgKCFvcHRpb25zKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnMuYWJzb3JiZXJzKSB7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5hYnNvcmJlcnMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWJzb3JiZXJzID0gb3B0aW9ucy5hYnNvcmJlcnMubWFwKChzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRtcCA9IG5ldyBBYnNvcmJlcl8xLkFic29yYmVyKCk7XG4gICAgICAgICAgICAgICAgICAgIHRtcC5sb2FkKHMpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdG1wO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuYWJzb3JiZXJzIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hYnNvcmJlcnMgPSBuZXcgQWJzb3JiZXJfMS5BYnNvcmJlcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmFic29yYmVycy5sb2FkKG9wdGlvbnMuYWJzb3JiZXJzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpbnRlcmFjdGl2aXR5QWJzb3JiZXJzID0gKF9iID0gKF9hID0gb3B0aW9ucy5pbnRlcmFjdGl2aXR5KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EubW9kZXMpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5hYnNvcmJlcnM7XG4gICAgICAgIGlmIChpbnRlcmFjdGl2aXR5QWJzb3JiZXJzKSB7XG4gICAgICAgICAgICBpZiAoaW50ZXJhY3Rpdml0eUFic29yYmVycyBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnRlcmFjdGl2aXR5QWJzb3JiZXJzID0gaW50ZXJhY3Rpdml0eUFic29yYmVycy5tYXAoKHMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdG1wID0gbmV3IEFic29yYmVyXzEuQWJzb3JiZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgdG1wLmxvYWQocyk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0bXA7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pbnRlcmFjdGl2aXR5QWJzb3JiZXJzIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnRlcmFjdGl2aXR5QWJzb3JiZXJzID0gbmV3IEFic29yYmVyXzEuQWJzb3JiZXIoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5pbnRlcmFjdGl2aXR5QWJzb3JiZXJzLmxvYWQoaW50ZXJhY3Rpdml0eUFic29yYmVycyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYWJzb3JiZXJzIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgYWJzb3JiZXJPcHRpb25zIG9mIHRoaXMuYWJzb3JiZXJzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hZGRBYnNvcmJlcihhYnNvcmJlck9wdGlvbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5hZGRBYnNvcmJlcih0aGlzLmFic29yYmVycyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcGFydGljbGVVcGRhdGUocGFydGljbGUpIHtcbiAgICAgICAgZm9yIChjb25zdCBhYnNvcmJlciBvZiB0aGlzLmFycmF5KSB7XG4gICAgICAgICAgICBhYnNvcmJlci5hdHRyYWN0KHBhcnRpY2xlKTtcbiAgICAgICAgICAgIGlmIChwYXJ0aWNsZS5kZXN0cm95ZWQpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBkcmF3KGNvbnRleHQpIHtcbiAgICAgICAgZm9yIChjb25zdCBhYnNvcmJlciBvZiB0aGlzLmFycmF5KSB7XG4gICAgICAgICAgICBjb250ZXh0LnNhdmUoKTtcbiAgICAgICAgICAgIGFic29yYmVyLmRyYXcoY29udGV4dCk7XG4gICAgICAgICAgICBjb250ZXh0LnJlc3RvcmUoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzdG9wKCkge1xuICAgICAgICB0aGlzLmFycmF5ID0gW107XG4gICAgfVxuICAgIHJlc2l6ZSgpIHtcbiAgICAgICAgZm9yIChjb25zdCBhYnNvcmJlciBvZiB0aGlzLmFycmF5KSB7XG4gICAgICAgICAgICBhYnNvcmJlci5yZXNpemUoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBoYW5kbGVDbGlja01vZGUobW9kZSkge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgY29uc3QgYWJzb3JiZXJPcHRpb25zID0gdGhpcy5hYnNvcmJlcnM7XG4gICAgICAgIGNvbnN0IG1vZGVBYnNvcmJlcnMgPSB0aGlzLmludGVyYWN0aXZpdHlBYnNvcmJlcnM7XG4gICAgICAgIGlmIChtb2RlID09PSBFbnVtc18xLkFic29yYmVyQ2xpY2tNb2RlLmFic29yYmVyKSB7XG4gICAgICAgICAgICBsZXQgYWJzb3JiZXJzTW9kZU9wdGlvbnM7XG4gICAgICAgICAgICBpZiAobW9kZUFic29yYmVycyBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICAgICAgaWYgKG1vZGVBYnNvcmJlcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBhYnNvcmJlcnNNb2RlT3B0aW9ucyA9ICgwLCBVdGlsc18xLml0ZW1Gcm9tQXJyYXkpKG1vZGVBYnNvcmJlcnMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGFic29yYmVyc01vZGVPcHRpb25zID0gbW9kZUFic29yYmVycztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGFic29yYmVyc09wdGlvbnMgPSBhYnNvcmJlcnNNb2RlT3B0aW9ucyAhPT0gbnVsbCAmJiBhYnNvcmJlcnNNb2RlT3B0aW9ucyAhPT0gdm9pZCAwID8gYWJzb3JiZXJzTW9kZU9wdGlvbnMgOiAoYWJzb3JiZXJPcHRpb25zIGluc3RhbmNlb2YgQXJyYXkgPyAoMCwgVXRpbHNfMS5pdGVtRnJvbUFycmF5KShhYnNvcmJlck9wdGlvbnMpIDogYWJzb3JiZXJPcHRpb25zKTtcbiAgICAgICAgICAgIGNvbnN0IGFQb3NpdGlvbiA9IGNvbnRhaW5lci5pbnRlcmFjdGl2aXR5Lm1vdXNlLmNsaWNrUG9zaXRpb247XG4gICAgICAgICAgICB0aGlzLmFkZEFic29yYmVyKGFic29yYmVyc09wdGlvbnMsIGFQb3NpdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYWRkQWJzb3JiZXIob3B0aW9ucywgcG9zaXRpb24pIHtcbiAgICAgICAgY29uc3QgYWJzb3JiZXIgPSBuZXcgQWJzb3JiZXJJbnN0YW5jZV8xLkFic29yYmVySW5zdGFuY2UodGhpcywgdGhpcy5jb250YWluZXIsIG9wdGlvbnMsIHBvc2l0aW9uKTtcbiAgICAgICAgdGhpcy5hcnJheS5wdXNoKGFic29yYmVyKTtcbiAgICAgICAgcmV0dXJuIGFic29yYmVyO1xuICAgIH1cbiAgICByZW1vdmVBYnNvcmJlcihhYnNvcmJlcikge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuYXJyYXkuaW5kZXhPZihhYnNvcmJlcik7XG4gICAgICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmFycmF5LnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkFic29yYmVycyA9IEFic29yYmVycztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/Absorbers/Absorbers.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/Absorbers/Enums/AbsorberClickMode.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/Absorbers/Enums/AbsorberClickMode.js ***! + \*******************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.AbsorberClickMode = void 0;\nvar AbsorberClickMode;\n(function (AbsorberClickMode) {\n AbsorberClickMode[\"absorber\"] = \"absorber\";\n})(AbsorberClickMode = exports.AbsorberClickMode || (exports.AbsorberClickMode = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9BYnNvcmJlcnMvRW51bXMvQWJzb3JiZXJDbGlja01vZGUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBLENBQUMsb0RBQW9ELHlCQUF5QixLQUFLIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9QbHVnaW5zL0Fic29yYmVycy9FbnVtcy9BYnNvcmJlckNsaWNrTW9kZS5qcz9hYWMyIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5BYnNvcmJlckNsaWNrTW9kZSA9IHZvaWQgMDtcbnZhciBBYnNvcmJlckNsaWNrTW9kZTtcbihmdW5jdGlvbiAoQWJzb3JiZXJDbGlja01vZGUpIHtcbiAgICBBYnNvcmJlckNsaWNrTW9kZVtcImFic29yYmVyXCJdID0gXCJhYnNvcmJlclwiO1xufSkoQWJzb3JiZXJDbGlja01vZGUgPSBleHBvcnRzLkFic29yYmVyQ2xpY2tNb2RlIHx8IChleHBvcnRzLkFic29yYmVyQ2xpY2tNb2RlID0ge30pKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/Absorbers/Enums/AbsorberClickMode.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/Absorbers/Enums/index.js": +/*!*******************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/Absorbers/Enums/index.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n__exportStar(__webpack_require__(/*! ./AbsorberClickMode */ \"./node_modules/tsparticles/Plugins/Absorbers/Enums/AbsorberClickMode.js\"), exports);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9BYnNvcmJlcnMvRW51bXMvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBO0FBQ0EsbUNBQW1DLG9DQUFvQyxnQkFBZ0I7QUFDdkYsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGFBQWEsbUJBQU8sQ0FBQyxvR0FBcUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1BsdWdpbnMvQWJzb3JiZXJzL0VudW1zL2luZGV4LmpzP2FjZTEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19jcmVhdGVCaW5kaW5nID0gKHRoaXMgJiYgdGhpcy5fX2NyZWF0ZUJpbmRpbmcpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfSk7XG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgb1trMl0gPSBtW2tdO1xufSkpO1xudmFyIF9fZXhwb3J0U3RhciA9ICh0aGlzICYmIHRoaXMuX19leHBvcnRTdGFyKSB8fCBmdW5jdGlvbihtLCBleHBvcnRzKSB7XG4gICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gXCJkZWZhdWx0XCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzLCBwKSkgX19jcmVhdGVCaW5kaW5nKGV4cG9ydHMsIG0sIHApO1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9BYnNvcmJlckNsaWNrTW9kZVwiKSwgZXhwb3J0cyk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/Absorbers/Enums/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/Absorbers/Options/Classes/Absorber.js": +/*!********************************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/Absorbers/Options/Classes/Absorber.js ***! + \********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Absorber = void 0;\nconst AbsorberSize_1 = __webpack_require__(/*! ./AbsorberSize */ \"./node_modules/tsparticles/Plugins/Absorbers/Options/Classes/AbsorberSize.js\");\nconst OptionsColor_1 = __webpack_require__(/*! ../../../../Options/Classes/OptionsColor */ \"./node_modules/tsparticles/Options/Classes/OptionsColor.js\");\nclass Absorber {\n constructor() {\n this.color = new OptionsColor_1.OptionsColor();\n this.color.value = \"#000000\";\n this.draggable = false;\n this.opacity = 1;\n this.destroy = true;\n this.orbits = false;\n this.size = new AbsorberSize_1.AbsorberSize();\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor_1.OptionsColor.create(this.color, data.color);\n }\n if (data.draggable !== undefined) {\n this.draggable = data.draggable;\n }\n this.name = data.name;\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n if (data.position !== undefined) {\n this.position = {\n x: data.position.x,\n y: data.position.y,\n };\n }\n if (data.size !== undefined) {\n this.size.load(data.size);\n }\n if (data.destroy !== undefined) {\n this.destroy = data.destroy;\n }\n if (data.orbits !== undefined) {\n this.orbits = data.orbits;\n }\n }\n}\nexports.Absorber = Absorber;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9BYnNvcmJlcnMvT3B0aW9ucy9DbGFzc2VzL0Fic29yYmVyLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGdCQUFnQjtBQUNoQix1QkFBdUIsbUJBQU8sQ0FBQyxvR0FBZ0I7QUFDL0MsdUJBQXVCLG1CQUFPLENBQUMsNEdBQTBDO0FBQ3pFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1BsdWdpbnMvQWJzb3JiZXJzL09wdGlvbnMvQ2xhc3Nlcy9BYnNvcmJlci5qcz84ZDQzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5BYnNvcmJlciA9IHZvaWQgMDtcbmNvbnN0IEFic29yYmVyU2l6ZV8xID0gcmVxdWlyZShcIi4vQWJzb3JiZXJTaXplXCIpO1xuY29uc3QgT3B0aW9uc0NvbG9yXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vT3B0aW9ucy9DbGFzc2VzL09wdGlvbnNDb2xvclwiKTtcbmNsYXNzIEFic29yYmVyIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5jb2xvciA9IG5ldyBPcHRpb25zQ29sb3JfMS5PcHRpb25zQ29sb3IoKTtcbiAgICAgICAgdGhpcy5jb2xvci52YWx1ZSA9IFwiIzAwMDAwMFwiO1xuICAgICAgICB0aGlzLmRyYWdnYWJsZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLm9wYWNpdHkgPSAxO1xuICAgICAgICB0aGlzLmRlc3Ryb3kgPSB0cnVlO1xuICAgICAgICB0aGlzLm9yYml0cyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNpemUgPSBuZXcgQWJzb3JiZXJTaXplXzEuQWJzb3JiZXJTaXplKCk7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuY29sb3IgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5jb2xvciA9IE9wdGlvbnNDb2xvcl8xLk9wdGlvbnNDb2xvci5jcmVhdGUodGhpcy5jb2xvciwgZGF0YS5jb2xvcik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZHJhZ2dhYmxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZHJhZ2dhYmxlID0gZGF0YS5kcmFnZ2FibGU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5uYW1lID0gZGF0YS5uYW1lO1xuICAgICAgICBpZiAoZGF0YS5vcGFjaXR5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMub3BhY2l0eSA9IGRhdGEub3BhY2l0eTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5wb3NpdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uID0ge1xuICAgICAgICAgICAgICAgIHg6IGRhdGEucG9zaXRpb24ueCxcbiAgICAgICAgICAgICAgICB5OiBkYXRhLnBvc2l0aW9uLnksXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnNpemUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5zaXplLmxvYWQoZGF0YS5zaXplKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5kZXN0cm95ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveSA9IGRhdGEuZGVzdHJveTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5vcmJpdHMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5vcmJpdHMgPSBkYXRhLm9yYml0cztcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuQWJzb3JiZXIgPSBBYnNvcmJlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/Absorbers/Options/Classes/Absorber.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/Absorbers/Options/Classes/AbsorberSize.js": +/*!************************************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/Absorbers/Options/Classes/AbsorberSize.js ***! + \************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.AbsorberSize = void 0;\nconst ValueWithRandom_1 = __webpack_require__(/*! ../../../../Options/Classes/ValueWithRandom */ \"./node_modules/tsparticles/Options/Classes/ValueWithRandom.js\");\nconst AbsorberSizeLimit_1 = __webpack_require__(/*! ./AbsorberSizeLimit */ \"./node_modules/tsparticles/Plugins/Absorbers/Options/Classes/AbsorberSizeLimit.js\");\nclass AbsorberSize extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n this.density = 5;\n this.random.minimumValue = 1;\n this.value = 50;\n this.limit = new AbsorberSizeLimit_1.AbsorberSizeLimit();\n }\n load(data) {\n if (!data) {\n return;\n }\n super.load(data);\n if (data.density !== undefined) {\n this.density = data.density;\n }\n if (typeof data.limit === \"number\") {\n this.limit.radius = data.limit;\n }\n else {\n this.limit.load(data.limit);\n }\n }\n}\nexports.AbsorberSize = AbsorberSize;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9BYnNvcmJlcnMvT3B0aW9ucy9DbGFzc2VzL0Fic29yYmVyU2l6ZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxvQkFBb0I7QUFDcEIsMEJBQTBCLG1CQUFPLENBQUMsa0hBQTZDO0FBQy9FLDRCQUE0QixtQkFBTyxDQUFDLDhHQUFxQjtBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1BsdWdpbnMvQWJzb3JiZXJzL09wdGlvbnMvQ2xhc3Nlcy9BYnNvcmJlclNpemUuanM/NzVhYiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuQWJzb3JiZXJTaXplID0gdm9pZCAwO1xuY29uc3QgVmFsdWVXaXRoUmFuZG9tXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vT3B0aW9ucy9DbGFzc2VzL1ZhbHVlV2l0aFJhbmRvbVwiKTtcbmNvbnN0IEFic29yYmVyU2l6ZUxpbWl0XzEgPSByZXF1aXJlKFwiLi9BYnNvcmJlclNpemVMaW1pdFwiKTtcbmNsYXNzIEFic29yYmVyU2l6ZSBleHRlbmRzIFZhbHVlV2l0aFJhbmRvbV8xLlZhbHVlV2l0aFJhbmRvbSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuZGVuc2l0eSA9IDU7XG4gICAgICAgIHRoaXMucmFuZG9tLm1pbmltdW1WYWx1ZSA9IDE7XG4gICAgICAgIHRoaXMudmFsdWUgPSA1MDtcbiAgICAgICAgdGhpcy5saW1pdCA9IG5ldyBBYnNvcmJlclNpemVMaW1pdF8xLkFic29yYmVyU2l6ZUxpbWl0KCk7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzdXBlci5sb2FkKGRhdGEpO1xuICAgICAgICBpZiAoZGF0YS5kZW5zaXR5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZGVuc2l0eSA9IGRhdGEuZGVuc2l0eTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIGRhdGEubGltaXQgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIHRoaXMubGltaXQucmFkaXVzID0gZGF0YS5saW1pdDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubGltaXQubG9hZChkYXRhLmxpbWl0KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuQWJzb3JiZXJTaXplID0gQWJzb3JiZXJTaXplO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/Absorbers/Options/Classes/AbsorberSize.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/Absorbers/Options/Classes/AbsorberSizeLimit.js": +/*!*****************************************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/Absorbers/Options/Classes/AbsorberSizeLimit.js ***! + \*****************************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.AbsorberSizeLimit = void 0;\nclass AbsorberSizeLimit {\n constructor() {\n this.radius = 0;\n this.mass = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.mass !== undefined) {\n this.mass = data.mass;\n }\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n }\n}\nexports.AbsorberSizeLimit = AbsorberSizeLimit;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9BYnNvcmJlcnMvT3B0aW9ucy9DbGFzc2VzL0Fic29yYmVyU2l6ZUxpbWl0LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9QbHVnaW5zL0Fic29yYmVycy9PcHRpb25zL0NsYXNzZXMvQWJzb3JiZXJTaXplTGltaXQuanM/M2FhYSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuQWJzb3JiZXJTaXplTGltaXQgPSB2b2lkIDA7XG5jbGFzcyBBYnNvcmJlclNpemVMaW1pdCB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMucmFkaXVzID0gMDtcbiAgICAgICAgdGhpcy5tYXNzID0gMDtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLm1hc3MgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5tYXNzID0gZGF0YS5tYXNzO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnJhZGl1cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnJhZGl1cyA9IGRhdGEucmFkaXVzO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5BYnNvcmJlclNpemVMaW1pdCA9IEFic29yYmVyU2l6ZUxpbWl0O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/Absorbers/Options/Classes/AbsorberSizeLimit.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/Absorbers/plugin.js": +/*!**************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/Absorbers/plugin.js ***! + \**************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadAbsorbersPlugin = void 0;\nconst Absorbers_1 = __webpack_require__(/*! ./Absorbers */ \"./node_modules/tsparticles/Plugins/Absorbers/Absorbers.js\");\nconst Enums_1 = __webpack_require__(/*! ./Enums */ \"./node_modules/tsparticles/Plugins/Absorbers/Enums/index.js\");\nconst Absorber_1 = __webpack_require__(/*! ./Options/Classes/Absorber */ \"./node_modules/tsparticles/Plugins/Absorbers/Options/Classes/Absorber.js\");\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass Plugin {\n constructor() {\n this.id = \"absorbers\";\n }\n getPlugin(container) {\n return new Absorbers_1.Absorbers(container);\n }\n needsPlugin(options) {\n var _a, _b, _c;\n if (options === undefined) {\n return false;\n }\n const absorbers = options.absorbers;\n let loadAbsorbers = false;\n if (absorbers instanceof Array) {\n if (absorbers.length) {\n loadAbsorbers = true;\n }\n }\n else if (absorbers !== undefined) {\n loadAbsorbers = true;\n }\n else if (((_c = (_b = (_a = options.interactivity) === null || _a === void 0 ? void 0 : _a.events) === null || _b === void 0 ? void 0 : _b.onClick) === null || _c === void 0 ? void 0 : _c.mode) &&\n (0, Utils_1.isInArray)(Enums_1.AbsorberClickMode.absorber, options.interactivity.events.onClick.mode)) {\n loadAbsorbers = true;\n }\n return loadAbsorbers;\n }\n loadOptions(options, source) {\n var _a, _b;\n if (!this.needsPlugin(options) && !this.needsPlugin(source)) {\n return;\n }\n const optionsCast = options;\n if (source === null || source === void 0 ? void 0 : source.absorbers) {\n if ((source === null || source === void 0 ? void 0 : source.absorbers) instanceof Array) {\n optionsCast.absorbers = source === null || source === void 0 ? void 0 : source.absorbers.map((s) => {\n const tmp = new Absorber_1.Absorber();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n let absorberOptions = optionsCast.absorbers;\n if ((absorberOptions === null || absorberOptions === void 0 ? void 0 : absorberOptions.load) === undefined) {\n optionsCast.absorbers = absorberOptions = new Absorber_1.Absorber();\n }\n absorberOptions.load(source === null || source === void 0 ? void 0 : source.absorbers);\n }\n }\n const interactivityAbsorbers = (_b = (_a = source === null || source === void 0 ? void 0 : source.interactivity) === null || _a === void 0 ? void 0 : _a.modes) === null || _b === void 0 ? void 0 : _b.absorbers;\n if (interactivityAbsorbers) {\n if (interactivityAbsorbers instanceof Array) {\n optionsCast.interactivity.modes.absorbers = interactivityAbsorbers.map((s) => {\n const tmp = new Absorber_1.Absorber();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n let absorberOptions = optionsCast.interactivity.modes.absorbers;\n if ((absorberOptions === null || absorberOptions === void 0 ? void 0 : absorberOptions.load) === undefined) {\n optionsCast.interactivity.modes.absorbers = absorberOptions = new Absorber_1.Absorber();\n }\n absorberOptions.load(interactivityAbsorbers);\n }\n }\n }\n}\nasync function loadAbsorbersPlugin(tsParticles) {\n const plugin = new Plugin();\n await tsParticles.addPlugin(plugin);\n}\nexports.loadAbsorbersPlugin = loadAbsorbersPlugin;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9BYnNvcmJlcnMvcGx1Z2luLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELDJCQUEyQjtBQUMzQixvQkFBb0IsbUJBQU8sQ0FBQyw4RUFBYTtBQUN6QyxnQkFBZ0IsbUJBQU8sQ0FBQyw0RUFBUztBQUNqQyxtQkFBbUIsbUJBQU8sQ0FBQyw0R0FBNEI7QUFDdkQsZ0JBQWdCLG1CQUFPLENBQUMsOERBQWE7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9QbHVnaW5zL0Fic29yYmVycy9wbHVnaW4uanM/ZjNkNSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMubG9hZEFic29yYmVyc1BsdWdpbiA9IHZvaWQgMDtcbmNvbnN0IEFic29yYmVyc18xID0gcmVxdWlyZShcIi4vQWJzb3JiZXJzXCIpO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuL0VudW1zXCIpO1xuY29uc3QgQWJzb3JiZXJfMSA9IHJlcXVpcmUoXCIuL09wdGlvbnMvQ2xhc3Nlcy9BYnNvcmJlclwiKTtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vVXRpbHNcIik7XG5jbGFzcyBQbHVnaW4ge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmlkID0gXCJhYnNvcmJlcnNcIjtcbiAgICB9XG4gICAgZ2V0UGx1Z2luKGNvbnRhaW5lcikge1xuICAgICAgICByZXR1cm4gbmV3IEFic29yYmVyc18xLkFic29yYmVycyhjb250YWluZXIpO1xuICAgIH1cbiAgICBuZWVkc1BsdWdpbihvcHRpb25zKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYWJzb3JiZXJzID0gb3B0aW9ucy5hYnNvcmJlcnM7XG4gICAgICAgIGxldCBsb2FkQWJzb3JiZXJzID0gZmFsc2U7XG4gICAgICAgIGlmIChhYnNvcmJlcnMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgaWYgKGFic29yYmVycy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBsb2FkQWJzb3JiZXJzID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChhYnNvcmJlcnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbG9hZEFic29yYmVycyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoKChfYyA9IChfYiA9IChfYSA9IG9wdGlvbnMuaW50ZXJhY3Rpdml0eSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmV2ZW50cykgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm9uQ2xpY2spID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5tb2RlKSAmJlxuICAgICAgICAgICAgKDAsIFV0aWxzXzEuaXNJbkFycmF5KShFbnVtc18xLkFic29yYmVyQ2xpY2tNb2RlLmFic29yYmVyLCBvcHRpb25zLmludGVyYWN0aXZpdHkuZXZlbnRzLm9uQ2xpY2subW9kZSkpIHtcbiAgICAgICAgICAgIGxvYWRBYnNvcmJlcnMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBsb2FkQWJzb3JiZXJzO1xuICAgIH1cbiAgICBsb2FkT3B0aW9ucyhvcHRpb25zLCBzb3VyY2UpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgaWYgKCF0aGlzLm5lZWRzUGx1Z2luKG9wdGlvbnMpICYmICF0aGlzLm5lZWRzUGx1Z2luKHNvdXJjZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvcHRpb25zQ2FzdCA9IG9wdGlvbnM7XG4gICAgICAgIGlmIChzb3VyY2UgPT09IG51bGwgfHwgc291cmNlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzb3VyY2UuYWJzb3JiZXJzKSB7XG4gICAgICAgICAgICBpZiAoKHNvdXJjZSA9PT0gbnVsbCB8fCBzb3VyY2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNvdXJjZS5hYnNvcmJlcnMpIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgICAgICBvcHRpb25zQ2FzdC5hYnNvcmJlcnMgPSBzb3VyY2UgPT09IG51bGwgfHwgc291cmNlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzb3VyY2UuYWJzb3JiZXJzLm1hcCgocykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0bXAgPSBuZXcgQWJzb3JiZXJfMS5BYnNvcmJlcigpO1xuICAgICAgICAgICAgICAgICAgICB0bXAubG9hZChzKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRtcDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGxldCBhYnNvcmJlck9wdGlvbnMgPSBvcHRpb25zQ2FzdC5hYnNvcmJlcnM7XG4gICAgICAgICAgICAgICAgaWYgKChhYnNvcmJlck9wdGlvbnMgPT09IG51bGwgfHwgYWJzb3JiZXJPcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBhYnNvcmJlck9wdGlvbnMubG9hZCkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICBvcHRpb25zQ2FzdC5hYnNvcmJlcnMgPSBhYnNvcmJlck9wdGlvbnMgPSBuZXcgQWJzb3JiZXJfMS5BYnNvcmJlcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhYnNvcmJlck9wdGlvbnMubG9hZChzb3VyY2UgPT09IG51bGwgfHwgc291cmNlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzb3VyY2UuYWJzb3JiZXJzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpbnRlcmFjdGl2aXR5QWJzb3JiZXJzID0gKF9iID0gKF9hID0gc291cmNlID09PSBudWxsIHx8IHNvdXJjZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogc291cmNlLmludGVyYWN0aXZpdHkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5tb2RlcykgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmFic29yYmVycztcbiAgICAgICAgaWYgKGludGVyYWN0aXZpdHlBYnNvcmJlcnMpIHtcbiAgICAgICAgICAgIGlmIChpbnRlcmFjdGl2aXR5QWJzb3JiZXJzIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgICAgICBvcHRpb25zQ2FzdC5pbnRlcmFjdGl2aXR5Lm1vZGVzLmFic29yYmVycyA9IGludGVyYWN0aXZpdHlBYnNvcmJlcnMubWFwKChzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRtcCA9IG5ldyBBYnNvcmJlcl8xLkFic29yYmVyKCk7XG4gICAgICAgICAgICAgICAgICAgIHRtcC5sb2FkKHMpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdG1wO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgbGV0IGFic29yYmVyT3B0aW9ucyA9IG9wdGlvbnNDYXN0LmludGVyYWN0aXZpdHkubW9kZXMuYWJzb3JiZXJzO1xuICAgICAgICAgICAgICAgIGlmICgoYWJzb3JiZXJPcHRpb25zID09PSBudWxsIHx8IGFic29yYmVyT3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogYWJzb3JiZXJPcHRpb25zLmxvYWQpID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uc0Nhc3QuaW50ZXJhY3Rpdml0eS5tb2Rlcy5hYnNvcmJlcnMgPSBhYnNvcmJlck9wdGlvbnMgPSBuZXcgQWJzb3JiZXJfMS5BYnNvcmJlcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhYnNvcmJlck9wdGlvbnMubG9hZChpbnRlcmFjdGl2aXR5QWJzb3JiZXJzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbmFzeW5jIGZ1bmN0aW9uIGxvYWRBYnNvcmJlcnNQbHVnaW4odHNQYXJ0aWNsZXMpIHtcbiAgICBjb25zdCBwbHVnaW4gPSBuZXcgUGx1Z2luKCk7XG4gICAgYXdhaXQgdHNQYXJ0aWNsZXMuYWRkUGx1Z2luKHBsdWdpbik7XG59XG5leHBvcnRzLmxvYWRBYnNvcmJlcnNQbHVnaW4gPSBsb2FkQWJzb3JiZXJzUGx1Z2luO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/Absorbers/plugin.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/Emitters/EmitterInstance.js": +/*!**********************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/Emitters/EmitterInstance.js ***! + \**********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _EmitterInstance_firstSpawn, _EmitterInstance_startParticlesAdded;\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.EmitterInstance = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Enums_1 = __webpack_require__(/*! ../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst EmitterSize_1 = __webpack_require__(/*! ./Options/Classes/EmitterSize */ \"./node_modules/tsparticles/Plugins/Emitters/Options/Classes/EmitterSize.js\");\nconst ShapeManager_1 = __webpack_require__(/*! ./ShapeManager */ \"./node_modules/tsparticles/Plugins/Emitters/ShapeManager.js\");\nclass EmitterInstance {\n constructor(emitters, container, emitterOptions, position) {\n var _a, _b, _c, _d, _e, _f;\n var _g;\n this.emitters = emitters;\n this.container = container;\n _EmitterInstance_firstSpawn.set(this, void 0);\n _EmitterInstance_startParticlesAdded.set(this, void 0);\n this.currentDuration = 0;\n this.currentEmitDelay = 0;\n this.currentSpawnDelay = 0;\n this.initialPosition = position;\n this.emitterOptions = (0, Utils_1.deepExtend)({}, emitterOptions);\n this.spawnDelay = (((_a = this.emitterOptions.life.delay) !== null && _a !== void 0 ? _a : 0) * 1000) / this.container.retina.reduceFactor;\n this.position = (_b = this.initialPosition) !== null && _b !== void 0 ? _b : this.calcPosition();\n this.name = emitterOptions.name;\n this.shape = ShapeManager_1.ShapeManager.getShape(emitterOptions.shape);\n this.fill = emitterOptions.fill;\n __classPrivateFieldSet(this, _EmitterInstance_firstSpawn, !this.emitterOptions.life.wait, \"f\");\n __classPrivateFieldSet(this, _EmitterInstance_startParticlesAdded, false, \"f\");\n let particlesOptions = (0, Utils_1.deepExtend)({}, this.emitterOptions.particles);\n particlesOptions !== null && particlesOptions !== void 0 ? particlesOptions : (particlesOptions = {});\n (_c = particlesOptions.move) !== null && _c !== void 0 ? _c : (particlesOptions.move = {});\n (_d = (_g = particlesOptions.move).direction) !== null && _d !== void 0 ? _d : (_g.direction = this.emitterOptions.direction);\n if (this.emitterOptions.spawnColor !== undefined) {\n this.spawnColor = (0, Utils_1.colorToHsl)(this.emitterOptions.spawnColor);\n }\n this.paused = !this.emitterOptions.autoPlay;\n this.particlesOptions = particlesOptions;\n this.size =\n (_e = this.emitterOptions.size) !== null && _e !== void 0 ? _e : (() => {\n const size = new EmitterSize_1.EmitterSize();\n size.load({\n height: 0,\n mode: Enums_1.SizeMode.percent,\n width: 0,\n });\n return size;\n })();\n this.lifeCount = (_f = this.emitterOptions.life.count) !== null && _f !== void 0 ? _f : -1;\n this.immortal = this.lifeCount <= 0;\n this.play();\n }\n externalPlay() {\n this.paused = false;\n this.play();\n }\n externalPause() {\n this.paused = true;\n this.pause();\n }\n play() {\n var _a;\n if (this.paused) {\n return;\n }\n if (this.container.retina.reduceFactor &&\n (this.lifeCount > 0 || this.immortal || !this.emitterOptions.life.count) &&\n (__classPrivateFieldGet(this, _EmitterInstance_firstSpawn, \"f\") || this.currentSpawnDelay >= ((_a = this.spawnDelay) !== null && _a !== void 0 ? _a : 0))) {\n if (this.emitDelay === undefined) {\n const delay = (0, Utils_1.getRangeValue)(this.emitterOptions.rate.delay);\n this.emitDelay = (1000 * delay) / this.container.retina.reduceFactor;\n }\n if (this.lifeCount > 0 || this.immortal) {\n this.prepareToDie();\n }\n }\n }\n pause() {\n if (this.paused) {\n return;\n }\n delete this.emitDelay;\n }\n resize() {\n const initialPosition = this.initialPosition;\n this.position =\n initialPosition && (0, Utils_1.isPointInside)(initialPosition, this.container.canvas.size)\n ? initialPosition\n : this.calcPosition();\n }\n update(delta) {\n var _a, _b, _c;\n if (this.paused) {\n return;\n }\n if (__classPrivateFieldGet(this, _EmitterInstance_firstSpawn, \"f\")) {\n __classPrivateFieldSet(this, _EmitterInstance_firstSpawn, false, \"f\");\n this.currentSpawnDelay = (_a = this.spawnDelay) !== null && _a !== void 0 ? _a : 0;\n this.currentEmitDelay = (_b = this.emitDelay) !== null && _b !== void 0 ? _b : 0;\n }\n if (!__classPrivateFieldGet(this, _EmitterInstance_startParticlesAdded, \"f\")) {\n __classPrivateFieldSet(this, _EmitterInstance_startParticlesAdded, true, \"f\");\n this.emitParticles(this.emitterOptions.startCount);\n }\n if (this.duration !== undefined) {\n this.currentDuration += delta.value;\n if (this.currentDuration >= this.duration) {\n this.pause();\n if (this.spawnDelay !== undefined) {\n delete this.spawnDelay;\n }\n if (!this.immortal) {\n this.lifeCount--;\n }\n if (this.lifeCount > 0 || this.immortal) {\n this.position = this.calcPosition();\n this.spawnDelay =\n (((_c = this.emitterOptions.life.delay) !== null && _c !== void 0 ? _c : 0) * 1000) / this.container.retina.reduceFactor;\n }\n else {\n this.destroy();\n }\n this.currentDuration -= this.duration;\n delete this.duration;\n }\n }\n if (this.spawnDelay !== undefined) {\n this.currentSpawnDelay += delta.value;\n if (this.currentSpawnDelay >= this.spawnDelay) {\n this.play();\n this.currentSpawnDelay -= this.currentSpawnDelay;\n delete this.spawnDelay;\n }\n }\n if (this.emitDelay !== undefined) {\n this.currentEmitDelay += delta.value;\n if (this.currentEmitDelay >= this.emitDelay) {\n this.emit();\n this.currentEmitDelay -= this.emitDelay;\n }\n }\n }\n prepareToDie() {\n var _a;\n if (this.paused) {\n return;\n }\n const duration = (_a = this.emitterOptions.life) === null || _a === void 0 ? void 0 : _a.duration;\n if (this.container.retina.reduceFactor &&\n (this.lifeCount > 0 || this.immortal) &&\n duration !== undefined &&\n duration > 0) {\n this.duration = duration * 1000;\n }\n }\n destroy() {\n this.emitters.removeEmitter(this);\n }\n calcPosition() {\n var _a, _b;\n const container = this.container;\n const percentPosition = this.emitterOptions.position;\n return {\n x: (((_a = percentPosition === null || percentPosition === void 0 ? void 0 : percentPosition.x) !== null && _a !== void 0 ? _a : Math.random() * 100) / 100) * container.canvas.size.width,\n y: (((_b = percentPosition === null || percentPosition === void 0 ? void 0 : percentPosition.y) !== null && _b !== void 0 ? _b : Math.random() * 100) / 100) * container.canvas.size.height,\n };\n }\n emit() {\n if (this.paused) {\n return;\n }\n const quantity = (0, Utils_1.getRangeValue)(this.emitterOptions.rate.quantity);\n this.emitParticles(quantity);\n }\n emitParticles(quantity) {\n var _a, _b, _c;\n const container = this.container;\n const position = this.position;\n const offset = {\n x: this.size.mode === Enums_1.SizeMode.percent\n ? (container.canvas.size.width * this.size.width) / 100\n : this.size.width,\n y: this.size.mode === Enums_1.SizeMode.percent\n ? (container.canvas.size.height * this.size.height) / 100\n : this.size.height,\n };\n for (let i = 0; i < quantity; i++) {\n const particlesOptions = (0, Utils_1.deepExtend)({}, this.particlesOptions);\n if (this.spawnColor) {\n const colorAnimation = (_a = this.emitterOptions.spawnColor) === null || _a === void 0 ? void 0 : _a.animation;\n if (colorAnimation) {\n const hueAnimation = colorAnimation;\n if (hueAnimation.enable) {\n this.spawnColor.h = this.setColorAnimation(hueAnimation, this.spawnColor.h, 360);\n }\n else {\n const hslAnimation = colorAnimation;\n this.spawnColor.h = this.setColorAnimation(hslAnimation.h, this.spawnColor.h, 360);\n this.spawnColor.s = this.setColorAnimation(hslAnimation.s, this.spawnColor.s, 100);\n this.spawnColor.l = this.setColorAnimation(hslAnimation.l, this.spawnColor.l, 100);\n }\n }\n if (!particlesOptions.color) {\n particlesOptions.color = {\n value: this.spawnColor,\n };\n }\n else {\n particlesOptions.color.value = this.spawnColor;\n }\n }\n const pPosition = (_c = (_b = this.shape) === null || _b === void 0 ? void 0 : _b.randomPosition(position, offset, this.fill)) !== null && _c !== void 0 ? _c : position;\n container.particles.addParticle(pPosition, particlesOptions);\n }\n }\n setColorAnimation(animation, initValue, maxValue) {\n var _a;\n const container = this.container;\n if (!animation.enable) {\n return initValue;\n }\n const colorOffset = (0, Utils_1.randomInRange)(animation.offset);\n const delay = (0, Utils_1.getRangeValue)(this.emitterOptions.rate.delay);\n const emitFactor = (1000 * delay) / container.retina.reduceFactor;\n const colorSpeed = (_a = animation.speed) !== null && _a !== void 0 ? _a : 0;\n return (initValue + (colorSpeed * container.fpsLimit) / emitFactor + colorOffset * 3.6) % maxValue;\n }\n}\nexports.EmitterInstance = EmitterInstance;\n_EmitterInstance_firstSpawn = new WeakMap(), _EmitterInstance_startParticlesAdded = new WeakMap();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9FbWl0dGVycy9FbWl0dGVySW5zdGFuY2UuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsdUJBQXVCO0FBQ3ZCLGdCQUFnQixtQkFBTyxDQUFDLDhEQUFhO0FBQ3JDLGdCQUFnQixtQkFBTyxDQUFDLDhEQUFhO0FBQ3JDLHNCQUFzQixtQkFBTyxDQUFDLGlIQUErQjtBQUM3RCx1QkFBdUIsbUJBQU8sQ0FBQyxtRkFBZ0I7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0RBQXdEO0FBQ3hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseURBQXlEO0FBQ3pELDRHQUE0RztBQUM1RyxpR0FBaUc7QUFDakc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGNBQWM7QUFDdEMsK0RBQStEO0FBQy9EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCO0FBQ3ZCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9QbHVnaW5zL0VtaXR0ZXJzL0VtaXR0ZXJJbnN0YW5jZS5qcz8xODcwIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9fY2xhc3NQcml2YXRlRmllbGRTZXQgPSAodGhpcyAmJiB0aGlzLl9fY2xhc3NQcml2YXRlRmllbGRTZXQpIHx8IGZ1bmN0aW9uIChyZWNlaXZlciwgc3RhdGUsIHZhbHVlLCBraW5kLCBmKSB7XG4gICAgaWYgKGtpbmQgPT09IFwibVwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiUHJpdmF0ZSBtZXRob2QgaXMgbm90IHdyaXRhYmxlXCIpO1xuICAgIGlmIChraW5kID09PSBcImFcIiAmJiAhZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIHNldHRlclwiKTtcbiAgICBpZiAodHlwZW9mIHN0YXRlID09PSBcImZ1bmN0aW9uXCIgPyByZWNlaXZlciAhPT0gc3RhdGUgfHwgIWYgOiAhc3RhdGUuaGFzKHJlY2VpdmVyKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCB3cml0ZSBwcml2YXRlIG1lbWJlciB0byBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0XCIpO1xuICAgIHJldHVybiAoa2luZCA9PT0gXCJhXCIgPyBmLmNhbGwocmVjZWl2ZXIsIHZhbHVlKSA6IGYgPyBmLnZhbHVlID0gdmFsdWUgOiBzdGF0ZS5zZXQocmVjZWl2ZXIsIHZhbHVlKSksIHZhbHVlO1xufTtcbnZhciBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0ID0gKHRoaXMgJiYgdGhpcy5fX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KSB8fCBmdW5jdGlvbiAocmVjZWl2ZXIsIHN0YXRlLCBraW5kLCBmKSB7XG4gICAgaWYgKGtpbmQgPT09IFwiYVwiICYmICFmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiUHJpdmF0ZSBhY2Nlc3NvciB3YXMgZGVmaW5lZCB3aXRob3V0IGEgZ2V0dGVyXCIpO1xuICAgIGlmICh0eXBlb2Ygc3RhdGUgPT09IFwiZnVuY3Rpb25cIiA/IHJlY2VpdmVyICE9PSBzdGF0ZSB8fCAhZiA6ICFzdGF0ZS5oYXMocmVjZWl2ZXIpKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IHJlYWQgcHJpdmF0ZSBtZW1iZXIgZnJvbSBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0XCIpO1xuICAgIHJldHVybiBraW5kID09PSBcIm1cIiA/IGYgOiBraW5kID09PSBcImFcIiA/IGYuY2FsbChyZWNlaXZlcikgOiBmID8gZi52YWx1ZSA6IHN0YXRlLmdldChyZWNlaXZlcik7XG59O1xudmFyIF9FbWl0dGVySW5zdGFuY2VfZmlyc3RTcGF3biwgX0VtaXR0ZXJJbnN0YW5jZV9zdGFydFBhcnRpY2xlc0FkZGVkO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5FbWl0dGVySW5zdGFuY2UgPSB2b2lkIDA7XG5jb25zdCBVdGlsc18xID0gcmVxdWlyZShcIi4uLy4uL1V0aWxzXCIpO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuLi8uLi9FbnVtc1wiKTtcbmNvbnN0IEVtaXR0ZXJTaXplXzEgPSByZXF1aXJlKFwiLi9PcHRpb25zL0NsYXNzZXMvRW1pdHRlclNpemVcIik7XG5jb25zdCBTaGFwZU1hbmFnZXJfMSA9IHJlcXVpcmUoXCIuL1NoYXBlTWFuYWdlclwiKTtcbmNsYXNzIEVtaXR0ZXJJbnN0YW5jZSB7XG4gICAgY29uc3RydWN0b3IoZW1pdHRlcnMsIGNvbnRhaW5lciwgZW1pdHRlck9wdGlvbnMsIHBvc2l0aW9uKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZCwgX2UsIF9mO1xuICAgICAgICB2YXIgX2c7XG4gICAgICAgIHRoaXMuZW1pdHRlcnMgPSBlbWl0dGVycztcbiAgICAgICAgdGhpcy5jb250YWluZXIgPSBjb250YWluZXI7XG4gICAgICAgIF9FbWl0dGVySW5zdGFuY2VfZmlyc3RTcGF3bi5zZXQodGhpcywgdm9pZCAwKTtcbiAgICAgICAgX0VtaXR0ZXJJbnN0YW5jZV9zdGFydFBhcnRpY2xlc0FkZGVkLnNldCh0aGlzLCB2b2lkIDApO1xuICAgICAgICB0aGlzLmN1cnJlbnREdXJhdGlvbiA9IDA7XG4gICAgICAgIHRoaXMuY3VycmVudEVtaXREZWxheSA9IDA7XG4gICAgICAgIHRoaXMuY3VycmVudFNwYXduRGVsYXkgPSAwO1xuICAgICAgICB0aGlzLmluaXRpYWxQb3NpdGlvbiA9IHBvc2l0aW9uO1xuICAgICAgICB0aGlzLmVtaXR0ZXJPcHRpb25zID0gKDAsIFV0aWxzXzEuZGVlcEV4dGVuZCkoe30sIGVtaXR0ZXJPcHRpb25zKTtcbiAgICAgICAgdGhpcy5zcGF3bkRlbGF5ID0gKCgoX2EgPSB0aGlzLmVtaXR0ZXJPcHRpb25zLmxpZmUuZGVsYXkpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IDApICogMTAwMCkgLyB0aGlzLmNvbnRhaW5lci5yZXRpbmEucmVkdWNlRmFjdG9yO1xuICAgICAgICB0aGlzLnBvc2l0aW9uID0gKF9iID0gdGhpcy5pbml0aWFsUG9zaXRpb24pICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IHRoaXMuY2FsY1Bvc2l0aW9uKCk7XG4gICAgICAgIHRoaXMubmFtZSA9IGVtaXR0ZXJPcHRpb25zLm5hbWU7XG4gICAgICAgIHRoaXMuc2hhcGUgPSBTaGFwZU1hbmFnZXJfMS5TaGFwZU1hbmFnZXIuZ2V0U2hhcGUoZW1pdHRlck9wdGlvbnMuc2hhcGUpO1xuICAgICAgICB0aGlzLmZpbGwgPSBlbWl0dGVyT3B0aW9ucy5maWxsO1xuICAgICAgICBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KHRoaXMsIF9FbWl0dGVySW5zdGFuY2VfZmlyc3RTcGF3biwgIXRoaXMuZW1pdHRlck9wdGlvbnMubGlmZS53YWl0LCBcImZcIik7XG4gICAgICAgIF9fY2xhc3NQcml2YXRlRmllbGRTZXQodGhpcywgX0VtaXR0ZXJJbnN0YW5jZV9zdGFydFBhcnRpY2xlc0FkZGVkLCBmYWxzZSwgXCJmXCIpO1xuICAgICAgICBsZXQgcGFydGljbGVzT3B0aW9ucyA9ICgwLCBVdGlsc18xLmRlZXBFeHRlbmQpKHt9LCB0aGlzLmVtaXR0ZXJPcHRpb25zLnBhcnRpY2xlcyk7XG4gICAgICAgIHBhcnRpY2xlc09wdGlvbnMgIT09IG51bGwgJiYgcGFydGljbGVzT3B0aW9ucyAhPT0gdm9pZCAwID8gcGFydGljbGVzT3B0aW9ucyA6IChwYXJ0aWNsZXNPcHRpb25zID0ge30pO1xuICAgICAgICAoX2MgPSBwYXJ0aWNsZXNPcHRpb25zLm1vdmUpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IChwYXJ0aWNsZXNPcHRpb25zLm1vdmUgPSB7fSk7XG4gICAgICAgIChfZCA9IChfZyA9IHBhcnRpY2xlc09wdGlvbnMubW92ZSkuZGlyZWN0aW9uKSAhPT0gbnVsbCAmJiBfZCAhPT0gdm9pZCAwID8gX2QgOiAoX2cuZGlyZWN0aW9uID0gdGhpcy5lbWl0dGVyT3B0aW9ucy5kaXJlY3Rpb24pO1xuICAgICAgICBpZiAodGhpcy5lbWl0dGVyT3B0aW9ucy5zcGF3bkNvbG9yICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc3Bhd25Db2xvciA9ICgwLCBVdGlsc18xLmNvbG9yVG9Ic2wpKHRoaXMuZW1pdHRlck9wdGlvbnMuc3Bhd25Db2xvcik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wYXVzZWQgPSAhdGhpcy5lbWl0dGVyT3B0aW9ucy5hdXRvUGxheTtcbiAgICAgICAgdGhpcy5wYXJ0aWNsZXNPcHRpb25zID0gcGFydGljbGVzT3B0aW9ucztcbiAgICAgICAgdGhpcy5zaXplID1cbiAgICAgICAgICAgIChfZSA9IHRoaXMuZW1pdHRlck9wdGlvbnMuc2l6ZSkgIT09IG51bGwgJiYgX2UgIT09IHZvaWQgMCA/IF9lIDogKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzaXplID0gbmV3IEVtaXR0ZXJTaXplXzEuRW1pdHRlclNpemUoKTtcbiAgICAgICAgICAgICAgICBzaXplLmxvYWQoe1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDAsXG4gICAgICAgICAgICAgICAgICAgIG1vZGU6IEVudW1zXzEuU2l6ZU1vZGUucGVyY2VudCxcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDAsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNpemU7XG4gICAgICAgICAgICB9KSgpO1xuICAgICAgICB0aGlzLmxpZmVDb3VudCA9IChfZiA9IHRoaXMuZW1pdHRlck9wdGlvbnMubGlmZS5jb3VudCkgIT09IG51bGwgJiYgX2YgIT09IHZvaWQgMCA/IF9mIDogLTE7XG4gICAgICAgIHRoaXMuaW1tb3J0YWwgPSB0aGlzLmxpZmVDb3VudCA8PSAwO1xuICAgICAgICB0aGlzLnBsYXkoKTtcbiAgICB9XG4gICAgZXh0ZXJuYWxQbGF5KCkge1xuICAgICAgICB0aGlzLnBhdXNlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnBsYXkoKTtcbiAgICB9XG4gICAgZXh0ZXJuYWxQYXVzZSgpIHtcbiAgICAgICAgdGhpcy5wYXVzZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLnBhdXNlKCk7XG4gICAgfVxuICAgIHBsYXkoKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKHRoaXMucGF1c2VkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuY29udGFpbmVyLnJldGluYS5yZWR1Y2VGYWN0b3IgJiZcbiAgICAgICAgICAgICh0aGlzLmxpZmVDb3VudCA+IDAgfHwgdGhpcy5pbW1vcnRhbCB8fCAhdGhpcy5lbWl0dGVyT3B0aW9ucy5saWZlLmNvdW50KSAmJlxuICAgICAgICAgICAgKF9fY2xhc3NQcml2YXRlRmllbGRHZXQodGhpcywgX0VtaXR0ZXJJbnN0YW5jZV9maXJzdFNwYXduLCBcImZcIikgfHwgdGhpcy5jdXJyZW50U3Bhd25EZWxheSA+PSAoKF9hID0gdGhpcy5zcGF3bkRlbGF5KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAwKSkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmVtaXREZWxheSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGVsYXkgPSAoMCwgVXRpbHNfMS5nZXRSYW5nZVZhbHVlKSh0aGlzLmVtaXR0ZXJPcHRpb25zLnJhdGUuZGVsYXkpO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdERlbGF5ID0gKDEwMDAgKiBkZWxheSkgLyB0aGlzLmNvbnRhaW5lci5yZXRpbmEucmVkdWNlRmFjdG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMubGlmZUNvdW50ID4gMCB8fCB0aGlzLmltbW9ydGFsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcmVwYXJlVG9EaWUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBwYXVzZSgpIHtcbiAgICAgICAgaWYgKHRoaXMucGF1c2VkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZGVsZXRlIHRoaXMuZW1pdERlbGF5O1xuICAgIH1cbiAgICByZXNpemUoKSB7XG4gICAgICAgIGNvbnN0IGluaXRpYWxQb3NpdGlvbiA9IHRoaXMuaW5pdGlhbFBvc2l0aW9uO1xuICAgICAgICB0aGlzLnBvc2l0aW9uID1cbiAgICAgICAgICAgIGluaXRpYWxQb3NpdGlvbiAmJiAoMCwgVXRpbHNfMS5pc1BvaW50SW5zaWRlKShpbml0aWFsUG9zaXRpb24sIHRoaXMuY29udGFpbmVyLmNhbnZhcy5zaXplKVxuICAgICAgICAgICAgICAgID8gaW5pdGlhbFBvc2l0aW9uXG4gICAgICAgICAgICAgICAgOiB0aGlzLmNhbGNQb3NpdGlvbigpO1xuICAgIH1cbiAgICB1cGRhdGUoZGVsdGEpIHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgIGlmICh0aGlzLnBhdXNlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KHRoaXMsIF9FbWl0dGVySW5zdGFuY2VfZmlyc3RTcGF3biwgXCJmXCIpKSB7XG4gICAgICAgICAgICBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KHRoaXMsIF9FbWl0dGVySW5zdGFuY2VfZmlyc3RTcGF3biwgZmFsc2UsIFwiZlwiKTtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFNwYXduRGVsYXkgPSAoX2EgPSB0aGlzLnNwYXduRGVsYXkpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IDA7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRFbWl0RGVsYXkgPSAoX2IgPSB0aGlzLmVtaXREZWxheSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogMDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIV9fY2xhc3NQcml2YXRlRmllbGRHZXQodGhpcywgX0VtaXR0ZXJJbnN0YW5jZV9zdGFydFBhcnRpY2xlc0FkZGVkLCBcImZcIikpIHtcbiAgICAgICAgICAgIF9fY2xhc3NQcml2YXRlRmllbGRTZXQodGhpcywgX0VtaXR0ZXJJbnN0YW5jZV9zdGFydFBhcnRpY2xlc0FkZGVkLCB0cnVlLCBcImZcIik7XG4gICAgICAgICAgICB0aGlzLmVtaXRQYXJ0aWNsZXModGhpcy5lbWl0dGVyT3B0aW9ucy5zdGFydENvdW50KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5kdXJhdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnREdXJhdGlvbiArPSBkZWx0YS52YWx1ZTtcbiAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnREdXJhdGlvbiA+PSB0aGlzLmR1cmF0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYXVzZSgpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnNwYXduRGVsYXkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5zcGF3bkRlbGF5O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaW1tb3J0YWwpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5saWZlQ291bnQtLTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubGlmZUNvdW50ID4gMCB8fCB0aGlzLmltbW9ydGFsKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPSB0aGlzLmNhbGNQb3NpdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNwYXduRGVsYXkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgKCgoX2MgPSB0aGlzLmVtaXR0ZXJPcHRpb25zLmxpZmUuZGVsYXkpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IDApICogMTAwMCkgLyB0aGlzLmNvbnRhaW5lci5yZXRpbmEucmVkdWNlRmFjdG9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZXN0cm95KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudER1cmF0aW9uIC09IHRoaXMuZHVyYXRpb247XG4gICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuZHVyYXRpb247XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuc3Bhd25EZWxheSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRTcGF3bkRlbGF5ICs9IGRlbHRhLnZhbHVlO1xuICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudFNwYXduRGVsYXkgPj0gdGhpcy5zcGF3bkRlbGF5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wbGF5KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50U3Bhd25EZWxheSAtPSB0aGlzLmN1cnJlbnRTcGF3bkRlbGF5O1xuICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnNwYXduRGVsYXk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZW1pdERlbGF5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudEVtaXREZWxheSArPSBkZWx0YS52YWx1ZTtcbiAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRFbWl0RGVsYXkgPj0gdGhpcy5lbWl0RGVsYXkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRFbWl0RGVsYXkgLT0gdGhpcy5lbWl0RGVsYXk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHJlcGFyZVRvRGllKCkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICh0aGlzLnBhdXNlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGR1cmF0aW9uID0gKF9hID0gdGhpcy5lbWl0dGVyT3B0aW9ucy5saWZlKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZHVyYXRpb247XG4gICAgICAgIGlmICh0aGlzLmNvbnRhaW5lci5yZXRpbmEucmVkdWNlRmFjdG9yICYmXG4gICAgICAgICAgICAodGhpcy5saWZlQ291bnQgPiAwIHx8IHRoaXMuaW1tb3J0YWwpICYmXG4gICAgICAgICAgICBkdXJhdGlvbiAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICBkdXJhdGlvbiA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuZHVyYXRpb24gPSBkdXJhdGlvbiAqIDEwMDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5lbWl0dGVycy5yZW1vdmVFbWl0dGVyKHRoaXMpO1xuICAgIH1cbiAgICBjYWxjUG9zaXRpb24oKSB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyO1xuICAgICAgICBjb25zdCBwZXJjZW50UG9zaXRpb24gPSB0aGlzLmVtaXR0ZXJPcHRpb25zLnBvc2l0aW9uO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgeDogKCgoX2EgPSBwZXJjZW50UG9zaXRpb24gPT09IG51bGwgfHwgcGVyY2VudFBvc2l0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwZXJjZW50UG9zaXRpb24ueCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogTWF0aC5yYW5kb20oKSAqIDEwMCkgLyAxMDApICogY29udGFpbmVyLmNhbnZhcy5zaXplLndpZHRoLFxuICAgICAgICAgICAgeTogKCgoX2IgPSBwZXJjZW50UG9zaXRpb24gPT09IG51bGwgfHwgcGVyY2VudFBvc2l0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwZXJjZW50UG9zaXRpb24ueSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogTWF0aC5yYW5kb20oKSAqIDEwMCkgLyAxMDApICogY29udGFpbmVyLmNhbnZhcy5zaXplLmhlaWdodCxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZW1pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMucGF1c2VkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcXVhbnRpdHkgPSAoMCwgVXRpbHNfMS5nZXRSYW5nZVZhbHVlKSh0aGlzLmVtaXR0ZXJPcHRpb25zLnJhdGUucXVhbnRpdHkpO1xuICAgICAgICB0aGlzLmVtaXRQYXJ0aWNsZXMocXVhbnRpdHkpO1xuICAgIH1cbiAgICBlbWl0UGFydGljbGVzKHF1YW50aXR5KSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLnBvc2l0aW9uO1xuICAgICAgICBjb25zdCBvZmZzZXQgPSB7XG4gICAgICAgICAgICB4OiB0aGlzLnNpemUubW9kZSA9PT0gRW51bXNfMS5TaXplTW9kZS5wZXJjZW50XG4gICAgICAgICAgICAgICAgPyAoY29udGFpbmVyLmNhbnZhcy5zaXplLndpZHRoICogdGhpcy5zaXplLndpZHRoKSAvIDEwMFxuICAgICAgICAgICAgICAgIDogdGhpcy5zaXplLndpZHRoLFxuICAgICAgICAgICAgeTogdGhpcy5zaXplLm1vZGUgPT09IEVudW1zXzEuU2l6ZU1vZGUucGVyY2VudFxuICAgICAgICAgICAgICAgID8gKGNvbnRhaW5lci5jYW52YXMuc2l6ZS5oZWlnaHQgKiB0aGlzLnNpemUuaGVpZ2h0KSAvIDEwMFxuICAgICAgICAgICAgICAgIDogdGhpcy5zaXplLmhlaWdodCxcbiAgICAgICAgfTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBxdWFudGl0eTsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJ0aWNsZXNPcHRpb25zID0gKDAsIFV0aWxzXzEuZGVlcEV4dGVuZCkoe30sIHRoaXMucGFydGljbGVzT3B0aW9ucyk7XG4gICAgICAgICAgICBpZiAodGhpcy5zcGF3bkNvbG9yKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29sb3JBbmltYXRpb24gPSAoX2EgPSB0aGlzLmVtaXR0ZXJPcHRpb25zLnNwYXduQ29sb3IpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5hbmltYXRpb247XG4gICAgICAgICAgICAgICAgaWYgKGNvbG9yQW5pbWF0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGh1ZUFuaW1hdGlvbiA9IGNvbG9yQW5pbWF0aW9uO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaHVlQW5pbWF0aW9uLmVuYWJsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zcGF3bkNvbG9yLmggPSB0aGlzLnNldENvbG9yQW5pbWF0aW9uKGh1ZUFuaW1hdGlvbiwgdGhpcy5zcGF3bkNvbG9yLmgsIDM2MCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoc2xBbmltYXRpb24gPSBjb2xvckFuaW1hdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3Bhd25Db2xvci5oID0gdGhpcy5zZXRDb2xvckFuaW1hdGlvbihoc2xBbmltYXRpb24uaCwgdGhpcy5zcGF3bkNvbG9yLmgsIDM2MCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNwYXduQ29sb3IucyA9IHRoaXMuc2V0Q29sb3JBbmltYXRpb24oaHNsQW5pbWF0aW9uLnMsIHRoaXMuc3Bhd25Db2xvci5zLCAxMDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zcGF3bkNvbG9yLmwgPSB0aGlzLnNldENvbG9yQW5pbWF0aW9uKGhzbEFuaW1hdGlvbi5sLCB0aGlzLnNwYXduQ29sb3IubCwgMTAwKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoIXBhcnRpY2xlc09wdGlvbnMuY29sb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFydGljbGVzT3B0aW9ucy5jb2xvciA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLnNwYXduQ29sb3IsXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBwYXJ0aWNsZXNPcHRpb25zLmNvbG9yLnZhbHVlID0gdGhpcy5zcGF3bkNvbG9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHBQb3NpdGlvbiA9IChfYyA9IChfYiA9IHRoaXMuc2hhcGUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5yYW5kb21Qb3NpdGlvbihwb3NpdGlvbiwgb2Zmc2V0LCB0aGlzLmZpbGwpKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiBwb3NpdGlvbjtcbiAgICAgICAgICAgIGNvbnRhaW5lci5wYXJ0aWNsZXMuYWRkUGFydGljbGUocFBvc2l0aW9uLCBwYXJ0aWNsZXNPcHRpb25zKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzZXRDb2xvckFuaW1hdGlvbihhbmltYXRpb24sIGluaXRWYWx1ZSwgbWF4VmFsdWUpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgaWYgKCFhbmltYXRpb24uZW5hYmxlKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5pdFZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbG9yT2Zmc2V0ID0gKDAsIFV0aWxzXzEucmFuZG9tSW5SYW5nZSkoYW5pbWF0aW9uLm9mZnNldCk7XG4gICAgICAgIGNvbnN0IGRlbGF5ID0gKDAsIFV0aWxzXzEuZ2V0UmFuZ2VWYWx1ZSkodGhpcy5lbWl0dGVyT3B0aW9ucy5yYXRlLmRlbGF5KTtcbiAgICAgICAgY29uc3QgZW1pdEZhY3RvciA9ICgxMDAwICogZGVsYXkpIC8gY29udGFpbmVyLnJldGluYS5yZWR1Y2VGYWN0b3I7XG4gICAgICAgIGNvbnN0IGNvbG9yU3BlZWQgPSAoX2EgPSBhbmltYXRpb24uc3BlZWQpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IDA7XG4gICAgICAgIHJldHVybiAoaW5pdFZhbHVlICsgKGNvbG9yU3BlZWQgKiBjb250YWluZXIuZnBzTGltaXQpIC8gZW1pdEZhY3RvciArIGNvbG9yT2Zmc2V0ICogMy42KSAlIG1heFZhbHVlO1xuICAgIH1cbn1cbmV4cG9ydHMuRW1pdHRlckluc3RhbmNlID0gRW1pdHRlckluc3RhbmNlO1xuX0VtaXR0ZXJJbnN0YW5jZV9maXJzdFNwYXduID0gbmV3IFdlYWtNYXAoKSwgX0VtaXR0ZXJJbnN0YW5jZV9zdGFydFBhcnRpY2xlc0FkZGVkID0gbmV3IFdlYWtNYXAoKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/Emitters/EmitterInstance.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/Emitters/Emitters.js": +/*!***************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/Emitters/Emitters.js ***! + \***************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Emitters = void 0;\nconst EmitterInstance_1 = __webpack_require__(/*! ./EmitterInstance */ \"./node_modules/tsparticles/Plugins/Emitters/EmitterInstance.js\");\nconst Emitter_1 = __webpack_require__(/*! ./Options/Classes/Emitter */ \"./node_modules/tsparticles/Plugins/Emitters/Options/Classes/Emitter.js\");\nconst Enums_1 = __webpack_require__(/*! ./Enums */ \"./node_modules/tsparticles/Plugins/Emitters/Enums/index.js\");\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass Emitters {\n constructor(container) {\n this.container = container;\n this.array = [];\n this.emitters = [];\n this.interactivityEmitters = [];\n const overridableContainer = container;\n overridableContainer.getEmitter = (idxOrName) => idxOrName === undefined || typeof idxOrName === \"number\"\n ? this.array[idxOrName || 0]\n : this.array.find((t) => t.name === idxOrName);\n overridableContainer.addEmitter = (options, position) => this.addEmitter(options, position);\n overridableContainer.playEmitter = (idxOrName) => {\n const emitter = overridableContainer.getEmitter(idxOrName);\n if (emitter) {\n emitter.externalPlay();\n }\n };\n overridableContainer.pauseEmitter = (idxOrName) => {\n const emitter = overridableContainer.getEmitter(idxOrName);\n if (emitter) {\n emitter.externalPause();\n }\n };\n }\n init(options) {\n var _a, _b;\n if (!options) {\n return;\n }\n if (options.emitters) {\n if (options.emitters instanceof Array) {\n this.emitters = options.emitters.map((s) => {\n const tmp = new Emitter_1.Emitter();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.emitters instanceof Array) {\n this.emitters = new Emitter_1.Emitter();\n }\n this.emitters.load(options.emitters);\n }\n }\n const interactivityEmitters = (_b = (_a = options.interactivity) === null || _a === void 0 ? void 0 : _a.modes) === null || _b === void 0 ? void 0 : _b.emitters;\n if (interactivityEmitters) {\n if (interactivityEmitters instanceof Array) {\n this.interactivityEmitters = interactivityEmitters.map((s) => {\n const tmp = new Emitter_1.Emitter();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.interactivityEmitters instanceof Array) {\n this.interactivityEmitters = new Emitter_1.Emitter();\n }\n this.interactivityEmitters.load(interactivityEmitters);\n }\n }\n if (this.emitters instanceof Array) {\n for (const emitterOptions of this.emitters) {\n this.addEmitter(emitterOptions);\n }\n }\n else {\n this.addEmitter(this.emitters);\n }\n }\n play() {\n for (const emitter of this.array) {\n emitter.play();\n }\n }\n pause() {\n for (const emitter of this.array) {\n emitter.pause();\n }\n }\n stop() {\n this.array = [];\n }\n update(delta) {\n for (const emitter of this.array) {\n emitter.update(delta);\n }\n }\n handleClickMode(mode) {\n const container = this.container;\n const emitterOptions = this.emitters;\n const modeEmitters = this.interactivityEmitters;\n if (mode === Enums_1.EmitterClickMode.emitter) {\n let emitterModeOptions;\n if (modeEmitters instanceof Array) {\n if (modeEmitters.length > 0) {\n emitterModeOptions = (0, Utils_1.itemFromArray)(modeEmitters);\n }\n }\n else {\n emitterModeOptions = modeEmitters;\n }\n const emittersOptions = emitterModeOptions !== null && emitterModeOptions !== void 0 ? emitterModeOptions : (emitterOptions instanceof Array ? (0, Utils_1.itemFromArray)(emitterOptions) : emitterOptions);\n const ePosition = container.interactivity.mouse.clickPosition;\n this.addEmitter((0, Utils_1.deepExtend)({}, emittersOptions), ePosition);\n }\n }\n resize() {\n for (const emitter of this.array) {\n emitter.resize();\n }\n }\n addEmitter(options, position) {\n const emitter = new EmitterInstance_1.EmitterInstance(this, this.container, options, position);\n this.array.push(emitter);\n return emitter;\n }\n removeEmitter(emitter) {\n const index = this.array.indexOf(emitter);\n if (index >= 0) {\n this.array.splice(index, 1);\n }\n }\n}\nexports.Emitters = Emitters;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9FbWl0dGVycy9FbWl0dGVycy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxnQkFBZ0I7QUFDaEIsMEJBQTBCLG1CQUFPLENBQUMseUZBQW1CO0FBQ3JELGtCQUFrQixtQkFBTyxDQUFDLHlHQUEyQjtBQUNyRCxnQkFBZ0IsbUJBQU8sQ0FBQywyRUFBUztBQUNqQyxnQkFBZ0IsbUJBQU8sQ0FBQyw4REFBYTtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzREFBc0Q7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1BsdWdpbnMvRW1pdHRlcnMvRW1pdHRlcnMuanM/YWJkOSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuRW1pdHRlcnMgPSB2b2lkIDA7XG5jb25zdCBFbWl0dGVySW5zdGFuY2VfMSA9IHJlcXVpcmUoXCIuL0VtaXR0ZXJJbnN0YW5jZVwiKTtcbmNvbnN0IEVtaXR0ZXJfMSA9IHJlcXVpcmUoXCIuL09wdGlvbnMvQ2xhc3Nlcy9FbWl0dGVyXCIpO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuL0VudW1zXCIpO1xuY29uc3QgVXRpbHNfMSA9IHJlcXVpcmUoXCIuLi8uLi9VdGlsc1wiKTtcbmNsYXNzIEVtaXR0ZXJzIHtcbiAgICBjb25zdHJ1Y3Rvcihjb250YWluZXIpIHtcbiAgICAgICAgdGhpcy5jb250YWluZXIgPSBjb250YWluZXI7XG4gICAgICAgIHRoaXMuYXJyYXkgPSBbXTtcbiAgICAgICAgdGhpcy5lbWl0dGVycyA9IFtdO1xuICAgICAgICB0aGlzLmludGVyYWN0aXZpdHlFbWl0dGVycyA9IFtdO1xuICAgICAgICBjb25zdCBvdmVycmlkYWJsZUNvbnRhaW5lciA9IGNvbnRhaW5lcjtcbiAgICAgICAgb3ZlcnJpZGFibGVDb250YWluZXIuZ2V0RW1pdHRlciA9IChpZHhPck5hbWUpID0+IGlkeE9yTmFtZSA9PT0gdW5kZWZpbmVkIHx8IHR5cGVvZiBpZHhPck5hbWUgPT09IFwibnVtYmVyXCJcbiAgICAgICAgICAgID8gdGhpcy5hcnJheVtpZHhPck5hbWUgfHwgMF1cbiAgICAgICAgICAgIDogdGhpcy5hcnJheS5maW5kKCh0KSA9PiB0Lm5hbWUgPT09IGlkeE9yTmFtZSk7XG4gICAgICAgIG92ZXJyaWRhYmxlQ29udGFpbmVyLmFkZEVtaXR0ZXIgPSAob3B0aW9ucywgcG9zaXRpb24pID0+IHRoaXMuYWRkRW1pdHRlcihvcHRpb25zLCBwb3NpdGlvbik7XG4gICAgICAgIG92ZXJyaWRhYmxlQ29udGFpbmVyLnBsYXlFbWl0dGVyID0gKGlkeE9yTmFtZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZW1pdHRlciA9IG92ZXJyaWRhYmxlQ29udGFpbmVyLmdldEVtaXR0ZXIoaWR4T3JOYW1lKTtcbiAgICAgICAgICAgIGlmIChlbWl0dGVyKSB7XG4gICAgICAgICAgICAgICAgZW1pdHRlci5leHRlcm5hbFBsYXkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgb3ZlcnJpZGFibGVDb250YWluZXIucGF1c2VFbWl0dGVyID0gKGlkeE9yTmFtZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZW1pdHRlciA9IG92ZXJyaWRhYmxlQ29udGFpbmVyLmdldEVtaXR0ZXIoaWR4T3JOYW1lKTtcbiAgICAgICAgICAgIGlmIChlbWl0dGVyKSB7XG4gICAgICAgICAgICAgICAgZW1pdHRlci5leHRlcm5hbFBhdXNlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuICAgIGluaXQob3B0aW9ucykge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAoIW9wdGlvbnMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5lbWl0dGVycykge1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMuZW1pdHRlcnMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdHRlcnMgPSBvcHRpb25zLmVtaXR0ZXJzLm1hcCgocykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0bXAgPSBuZXcgRW1pdHRlcl8xLkVtaXR0ZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgdG1wLmxvYWQocyk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0bXA7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5lbWl0dGVycyBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW1pdHRlcnMgPSBuZXcgRW1pdHRlcl8xLkVtaXR0ZXIoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0dGVycy5sb2FkKG9wdGlvbnMuZW1pdHRlcnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGludGVyYWN0aXZpdHlFbWl0dGVycyA9IChfYiA9IChfYSA9IG9wdGlvbnMuaW50ZXJhY3Rpdml0eSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm1vZGVzKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuZW1pdHRlcnM7XG4gICAgICAgIGlmIChpbnRlcmFjdGl2aXR5RW1pdHRlcnMpIHtcbiAgICAgICAgICAgIGlmIChpbnRlcmFjdGl2aXR5RW1pdHRlcnMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW50ZXJhY3Rpdml0eUVtaXR0ZXJzID0gaW50ZXJhY3Rpdml0eUVtaXR0ZXJzLm1hcCgocykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0bXAgPSBuZXcgRW1pdHRlcl8xLkVtaXR0ZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgdG1wLmxvYWQocyk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0bXA7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pbnRlcmFjdGl2aXR5RW1pdHRlcnMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmludGVyYWN0aXZpdHlFbWl0dGVycyA9IG5ldyBFbWl0dGVyXzEuRW1pdHRlcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmludGVyYWN0aXZpdHlFbWl0dGVycy5sb2FkKGludGVyYWN0aXZpdHlFbWl0dGVycyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZW1pdHRlcnMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBlbWl0dGVyT3B0aW9ucyBvZiB0aGlzLmVtaXR0ZXJzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hZGRFbWl0dGVyKGVtaXR0ZXJPcHRpb25zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuYWRkRW1pdHRlcih0aGlzLmVtaXR0ZXJzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwbGF5KCkge1xuICAgICAgICBmb3IgKGNvbnN0IGVtaXR0ZXIgb2YgdGhpcy5hcnJheSkge1xuICAgICAgICAgICAgZW1pdHRlci5wbGF5KCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcGF1c2UoKSB7XG4gICAgICAgIGZvciAoY29uc3QgZW1pdHRlciBvZiB0aGlzLmFycmF5KSB7XG4gICAgICAgICAgICBlbWl0dGVyLnBhdXNlKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3RvcCgpIHtcbiAgICAgICAgdGhpcy5hcnJheSA9IFtdO1xuICAgIH1cbiAgICB1cGRhdGUoZGVsdGEpIHtcbiAgICAgICAgZm9yIChjb25zdCBlbWl0dGVyIG9mIHRoaXMuYXJyYXkpIHtcbiAgICAgICAgICAgIGVtaXR0ZXIudXBkYXRlKGRlbHRhKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBoYW5kbGVDbGlja01vZGUobW9kZSkge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgY29uc3QgZW1pdHRlck9wdGlvbnMgPSB0aGlzLmVtaXR0ZXJzO1xuICAgICAgICBjb25zdCBtb2RlRW1pdHRlcnMgPSB0aGlzLmludGVyYWN0aXZpdHlFbWl0dGVycztcbiAgICAgICAgaWYgKG1vZGUgPT09IEVudW1zXzEuRW1pdHRlckNsaWNrTW9kZS5lbWl0dGVyKSB7XG4gICAgICAgICAgICBsZXQgZW1pdHRlck1vZGVPcHRpb25zO1xuICAgICAgICAgICAgaWYgKG1vZGVFbWl0dGVycyBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICAgICAgaWYgKG1vZGVFbWl0dGVycy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGVtaXR0ZXJNb2RlT3B0aW9ucyA9ICgwLCBVdGlsc18xLml0ZW1Gcm9tQXJyYXkpKG1vZGVFbWl0dGVycyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgZW1pdHRlck1vZGVPcHRpb25zID0gbW9kZUVtaXR0ZXJzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgZW1pdHRlcnNPcHRpb25zID0gZW1pdHRlck1vZGVPcHRpb25zICE9PSBudWxsICYmIGVtaXR0ZXJNb2RlT3B0aW9ucyAhPT0gdm9pZCAwID8gZW1pdHRlck1vZGVPcHRpb25zIDogKGVtaXR0ZXJPcHRpb25zIGluc3RhbmNlb2YgQXJyYXkgPyAoMCwgVXRpbHNfMS5pdGVtRnJvbUFycmF5KShlbWl0dGVyT3B0aW9ucykgOiBlbWl0dGVyT3B0aW9ucyk7XG4gICAgICAgICAgICBjb25zdCBlUG9zaXRpb24gPSBjb250YWluZXIuaW50ZXJhY3Rpdml0eS5tb3VzZS5jbGlja1Bvc2l0aW9uO1xuICAgICAgICAgICAgdGhpcy5hZGRFbWl0dGVyKCgwLCBVdGlsc18xLmRlZXBFeHRlbmQpKHt9LCBlbWl0dGVyc09wdGlvbnMpLCBlUG9zaXRpb24pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJlc2l6ZSgpIHtcbiAgICAgICAgZm9yIChjb25zdCBlbWl0dGVyIG9mIHRoaXMuYXJyYXkpIHtcbiAgICAgICAgICAgIGVtaXR0ZXIucmVzaXplKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYWRkRW1pdHRlcihvcHRpb25zLCBwb3NpdGlvbikge1xuICAgICAgICBjb25zdCBlbWl0dGVyID0gbmV3IEVtaXR0ZXJJbnN0YW5jZV8xLkVtaXR0ZXJJbnN0YW5jZSh0aGlzLCB0aGlzLmNvbnRhaW5lciwgb3B0aW9ucywgcG9zaXRpb24pO1xuICAgICAgICB0aGlzLmFycmF5LnB1c2goZW1pdHRlcik7XG4gICAgICAgIHJldHVybiBlbWl0dGVyO1xuICAgIH1cbiAgICByZW1vdmVFbWl0dGVyKGVtaXR0ZXIpIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmFycmF5LmluZGV4T2YoZW1pdHRlcik7XG4gICAgICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmFycmF5LnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkVtaXR0ZXJzID0gRW1pdHRlcnM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/Emitters/Emitters.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/Emitters/EmittersMain.js": +/*!*******************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/Emitters/EmittersMain.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9FbWl0dGVycy9FbWl0dGVyc01haW4uanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1BsdWdpbnMvRW1pdHRlcnMvRW1pdHRlcnNNYWluLmpzP2I1NDEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/Emitters/EmittersMain.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/Emitters/Enums/EmitterClickMode.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/Emitters/Enums/EmitterClickMode.js ***! + \*****************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.EmitterClickMode = void 0;\nvar EmitterClickMode;\n(function (EmitterClickMode) {\n EmitterClickMode[\"emitter\"] = \"emitter\";\n})(EmitterClickMode = exports.EmitterClickMode || (exports.EmitterClickMode = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9FbWl0dGVycy9FbnVtcy9FbWl0dGVyQ2xpY2tNb2RlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQSxDQUFDLGtEQUFrRCx3QkFBd0IsS0FBSyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9FbWl0dGVycy9FbnVtcy9FbWl0dGVyQ2xpY2tNb2RlLmpzPzEwM2MiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkVtaXR0ZXJDbGlja01vZGUgPSB2b2lkIDA7XG52YXIgRW1pdHRlckNsaWNrTW9kZTtcbihmdW5jdGlvbiAoRW1pdHRlckNsaWNrTW9kZSkge1xuICAgIEVtaXR0ZXJDbGlja01vZGVbXCJlbWl0dGVyXCJdID0gXCJlbWl0dGVyXCI7XG59KShFbWl0dGVyQ2xpY2tNb2RlID0gZXhwb3J0cy5FbWl0dGVyQ2xpY2tNb2RlIHx8IChleHBvcnRzLkVtaXR0ZXJDbGlja01vZGUgPSB7fSkpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/Emitters/Enums/EmitterClickMode.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/Emitters/Enums/EmitterShapeType.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/Emitters/Enums/EmitterShapeType.js ***! + \*****************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.EmitterShapeType = void 0;\nvar EmitterShapeType;\n(function (EmitterShapeType) {\n EmitterShapeType[\"circle\"] = \"circle\";\n EmitterShapeType[\"square\"] = \"square\";\n})(EmitterShapeType = exports.EmitterShapeType || (exports.EmitterShapeType = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9FbWl0dGVycy9FbnVtcy9FbWl0dGVyU2hhcGVUeXBlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsa0RBQWtELHdCQUF3QixLQUFLIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9QbHVnaW5zL0VtaXR0ZXJzL0VudW1zL0VtaXR0ZXJTaGFwZVR5cGUuanM/ZDJlYSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuRW1pdHRlclNoYXBlVHlwZSA9IHZvaWQgMDtcbnZhciBFbWl0dGVyU2hhcGVUeXBlO1xuKGZ1bmN0aW9uIChFbWl0dGVyU2hhcGVUeXBlKSB7XG4gICAgRW1pdHRlclNoYXBlVHlwZVtcImNpcmNsZVwiXSA9IFwiY2lyY2xlXCI7XG4gICAgRW1pdHRlclNoYXBlVHlwZVtcInNxdWFyZVwiXSA9IFwic3F1YXJlXCI7XG59KShFbWl0dGVyU2hhcGVUeXBlID0gZXhwb3J0cy5FbWl0dGVyU2hhcGVUeXBlIHx8IChleHBvcnRzLkVtaXR0ZXJTaGFwZVR5cGUgPSB7fSkpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/Emitters/Enums/EmitterShapeType.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/Emitters/Enums/index.js": +/*!******************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/Emitters/Enums/index.js ***! + \******************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n__exportStar(__webpack_require__(/*! ./EmitterClickMode */ \"./node_modules/tsparticles/Plugins/Emitters/Enums/EmitterClickMode.js\"), exports);\n__exportStar(__webpack_require__(/*! ./EmitterShapeType */ \"./node_modules/tsparticles/Plugins/Emitters/Enums/EmitterShapeType.js\"), exports);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9FbWl0dGVycy9FbnVtcy9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0E7QUFDQSxtQ0FBbUMsb0NBQW9DLGdCQUFnQjtBQUN2RixDQUFDO0FBQ0Q7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQSw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsYUFBYSxtQkFBTyxDQUFDLGlHQUFvQjtBQUN6QyxhQUFhLG1CQUFPLENBQUMsaUdBQW9CIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9QbHVnaW5zL0VtaXR0ZXJzL0VudW1zL2luZGV4LmpzPzRlY2EiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19jcmVhdGVCaW5kaW5nID0gKHRoaXMgJiYgdGhpcy5fX2NyZWF0ZUJpbmRpbmcpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfSk7XG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgb1trMl0gPSBtW2tdO1xufSkpO1xudmFyIF9fZXhwb3J0U3RhciA9ICh0aGlzICYmIHRoaXMuX19leHBvcnRTdGFyKSB8fCBmdW5jdGlvbihtLCBleHBvcnRzKSB7XG4gICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gXCJkZWZhdWx0XCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzLCBwKSkgX19jcmVhdGVCaW5kaW5nKGV4cG9ydHMsIG0sIHApO1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9FbWl0dGVyQ2xpY2tNb2RlXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9FbWl0dGVyU2hhcGVUeXBlXCIpLCBleHBvcnRzKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/Emitters/Enums/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/Emitters/Options/Classes/Emitter.js": +/*!******************************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/Emitters/Options/Classes/Emitter.js ***! + \******************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Emitter = void 0;\nconst EmitterRate_1 = __webpack_require__(/*! ./EmitterRate */ \"./node_modules/tsparticles/Plugins/Emitters/Options/Classes/EmitterRate.js\");\nconst EmitterLife_1 = __webpack_require__(/*! ./EmitterLife */ \"./node_modules/tsparticles/Plugins/Emitters/Options/Classes/EmitterLife.js\");\nconst Utils_1 = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst EmitterSize_1 = __webpack_require__(/*! ./EmitterSize */ \"./node_modules/tsparticles/Plugins/Emitters/Options/Classes/EmitterSize.js\");\nconst AnimatableColor_1 = __webpack_require__(/*! ../../../../Options/Classes/AnimatableColor */ \"./node_modules/tsparticles/Options/Classes/AnimatableColor.js\");\nconst Enums_1 = __webpack_require__(/*! ../../Enums */ \"./node_modules/tsparticles/Plugins/Emitters/Enums/index.js\");\nclass Emitter {\n constructor() {\n this.autoPlay = true;\n this.fill = true;\n this.life = new EmitterLife_1.EmitterLife();\n this.rate = new EmitterRate_1.EmitterRate();\n this.shape = Enums_1.EmitterShapeType.square;\n this.startCount = 0;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.autoPlay !== undefined) {\n this.autoPlay = data.autoPlay;\n }\n if (data.size !== undefined) {\n if (this.size === undefined) {\n this.size = new EmitterSize_1.EmitterSize();\n }\n this.size.load(data.size);\n }\n if (data.direction !== undefined) {\n this.direction = data.direction;\n }\n if (data.fill !== undefined) {\n this.fill = data.fill;\n }\n this.life.load(data.life);\n this.name = data.name;\n if (data.particles !== undefined) {\n this.particles = (0, Utils_1.deepExtend)({}, data.particles);\n }\n this.rate.load(data.rate);\n if (data.shape !== undefined) {\n this.shape = data.shape;\n }\n if (data.position !== undefined) {\n this.position = {\n x: data.position.x,\n y: data.position.y,\n };\n }\n if (data.spawnColor !== undefined) {\n if (this.spawnColor === undefined) {\n this.spawnColor = new AnimatableColor_1.AnimatableColor();\n }\n this.spawnColor.load(data.spawnColor);\n }\n if (data.startCount !== undefined) {\n this.startCount = data.startCount;\n }\n }\n}\nexports.Emitter = Emitter;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9FbWl0dGVycy9PcHRpb25zL0NsYXNzZXMvRW1pdHRlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxlQUFlO0FBQ2Ysc0JBQXNCLG1CQUFPLENBQUMsaUdBQWU7QUFDN0Msc0JBQXNCLG1CQUFPLENBQUMsaUdBQWU7QUFDN0MsZ0JBQWdCLG1CQUFPLENBQUMsb0VBQW1CO0FBQzNDLHNCQUFzQixtQkFBTyxDQUFDLGlHQUFlO0FBQzdDLDBCQUEwQixtQkFBTyxDQUFDLGtIQUE2QztBQUMvRSxnQkFBZ0IsbUJBQU8sQ0FBQywrRUFBYTtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVEQUF1RDtBQUN2RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1BsdWdpbnMvRW1pdHRlcnMvT3B0aW9ucy9DbGFzc2VzL0VtaXR0ZXIuanM/ZWRlMCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuRW1pdHRlciA9IHZvaWQgMDtcbmNvbnN0IEVtaXR0ZXJSYXRlXzEgPSByZXF1aXJlKFwiLi9FbWl0dGVyUmF0ZVwiKTtcbmNvbnN0IEVtaXR0ZXJMaWZlXzEgPSByZXF1aXJlKFwiLi9FbWl0dGVyTGlmZVwiKTtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vVXRpbHNcIik7XG5jb25zdCBFbWl0dGVyU2l6ZV8xID0gcmVxdWlyZShcIi4vRW1pdHRlclNpemVcIik7XG5jb25zdCBBbmltYXRhYmxlQ29sb3JfMSA9IHJlcXVpcmUoXCIuLi8uLi8uLi8uLi9PcHRpb25zL0NsYXNzZXMvQW5pbWF0YWJsZUNvbG9yXCIpO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuLi8uLi9FbnVtc1wiKTtcbmNsYXNzIEVtaXR0ZXIge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmF1dG9QbGF5ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5maWxsID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5saWZlID0gbmV3IEVtaXR0ZXJMaWZlXzEuRW1pdHRlckxpZmUoKTtcbiAgICAgICAgdGhpcy5yYXRlID0gbmV3IEVtaXR0ZXJSYXRlXzEuRW1pdHRlclJhdGUoKTtcbiAgICAgICAgdGhpcy5zaGFwZSA9IEVudW1zXzEuRW1pdHRlclNoYXBlVHlwZS5zcXVhcmU7XG4gICAgICAgIHRoaXMuc3RhcnRDb3VudCA9IDA7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuYXV0b1BsYXkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5hdXRvUGxheSA9IGRhdGEuYXV0b1BsYXk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuc2l6ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zaXplID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNpemUgPSBuZXcgRW1pdHRlclNpemVfMS5FbWl0dGVyU2l6ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zaXplLmxvYWQoZGF0YS5zaXplKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5kaXJlY3Rpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5kaXJlY3Rpb24gPSBkYXRhLmRpcmVjdGlvbjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5maWxsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsbCA9IGRhdGEuZmlsbDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxpZmUubG9hZChkYXRhLmxpZmUpO1xuICAgICAgICB0aGlzLm5hbWUgPSBkYXRhLm5hbWU7XG4gICAgICAgIGlmIChkYXRhLnBhcnRpY2xlcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnBhcnRpY2xlcyA9ICgwLCBVdGlsc18xLmRlZXBFeHRlbmQpKHt9LCBkYXRhLnBhcnRpY2xlcyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yYXRlLmxvYWQoZGF0YS5yYXRlKTtcbiAgICAgICAgaWYgKGRhdGEuc2hhcGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5zaGFwZSA9IGRhdGEuc2hhcGU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEucG9zaXRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbiA9IHtcbiAgICAgICAgICAgICAgICB4OiBkYXRhLnBvc2l0aW9uLngsXG4gICAgICAgICAgICAgICAgeTogZGF0YS5wb3NpdGlvbi55LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5zcGF3bkNvbG9yICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnNwYXduQ29sb3IgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3Bhd25Db2xvciA9IG5ldyBBbmltYXRhYmxlQ29sb3JfMS5BbmltYXRhYmxlQ29sb3IoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc3Bhd25Db2xvci5sb2FkKGRhdGEuc3Bhd25Db2xvcik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuc3RhcnRDb3VudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXJ0Q291bnQgPSBkYXRhLnN0YXJ0Q291bnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkVtaXR0ZXIgPSBFbWl0dGVyO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/Emitters/Options/Classes/Emitter.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/Emitters/Options/Classes/EmitterLife.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/Emitters/Options/Classes/EmitterLife.js ***! + \**********************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.EmitterLife = void 0;\nclass EmitterLife {\n constructor() {\n this.wait = false;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.count !== undefined) {\n this.count = data.count;\n }\n if (data.delay !== undefined) {\n this.delay = data.delay;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n if (data.wait !== undefined) {\n this.wait = data.wait;\n }\n }\n}\nexports.EmitterLife = EmitterLife;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9FbWl0dGVycy9PcHRpb25zL0NsYXNzZXMvRW1pdHRlckxpZmUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsbUJBQW1CO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9QbHVnaW5zL0VtaXR0ZXJzL09wdGlvbnMvQ2xhc3Nlcy9FbWl0dGVyTGlmZS5qcz9lNGVmIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5FbWl0dGVyTGlmZSA9IHZvaWQgMDtcbmNsYXNzIEVtaXR0ZXJMaWZlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy53YWl0ID0gZmFsc2U7XG4gICAgfVxuICAgIGxvYWQoZGF0YSkge1xuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuY291bnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5jb3VudCA9IGRhdGEuY291bnQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZGVsYXkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5kZWxheSA9IGRhdGEuZGVsYXk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuZHVyYXRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5kdXJhdGlvbiA9IGRhdGEuZHVyYXRpb247XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEud2FpdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLndhaXQgPSBkYXRhLndhaXQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkVtaXR0ZXJMaWZlID0gRW1pdHRlckxpZmU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/Emitters/Options/Classes/EmitterLife.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/Emitters/Options/Classes/EmitterRate.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/Emitters/Options/Classes/EmitterRate.js ***! + \**********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.EmitterRate = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass EmitterRate {\n constructor() {\n this.quantity = 1;\n this.delay = 0.1;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.quantity !== undefined) {\n this.quantity = (0, Utils_1.setRangeValue)(data.quantity);\n }\n if (data.delay !== undefined) {\n this.delay = (0, Utils_1.setRangeValue)(data.delay);\n }\n }\n}\nexports.EmitterRate = EmitterRate;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9FbWl0dGVycy9PcHRpb25zL0NsYXNzZXMvRW1pdHRlclJhdGUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsbUJBQW1CO0FBQ25CLGdCQUFnQixtQkFBTyxDQUFDLG9FQUFtQjtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9QbHVnaW5zL0VtaXR0ZXJzL09wdGlvbnMvQ2xhc3Nlcy9FbWl0dGVyUmF0ZS5qcz9lZDkwIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5FbWl0dGVyUmF0ZSA9IHZvaWQgMDtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vVXRpbHNcIik7XG5jbGFzcyBFbWl0dGVyUmF0ZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMucXVhbnRpdHkgPSAxO1xuICAgICAgICB0aGlzLmRlbGF5ID0gMC4xO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnF1YW50aXR5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMucXVhbnRpdHkgPSAoMCwgVXRpbHNfMS5zZXRSYW5nZVZhbHVlKShkYXRhLnF1YW50aXR5KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5kZWxheSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmRlbGF5ID0gKDAsIFV0aWxzXzEuc2V0UmFuZ2VWYWx1ZSkoZGF0YS5kZWxheSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkVtaXR0ZXJSYXRlID0gRW1pdHRlclJhdGU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/Emitters/Options/Classes/EmitterRate.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/Emitters/Options/Classes/EmitterSize.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/Emitters/Options/Classes/EmitterSize.js ***! + \**********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.EmitterSize = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nclass EmitterSize {\n constructor() {\n this.mode = Enums_1.SizeMode.percent;\n this.height = 0;\n this.width = 0;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n if (data.height !== undefined) {\n this.height = data.height;\n }\n if (data.width !== undefined) {\n this.width = data.width;\n }\n }\n}\nexports.EmitterSize = EmitterSize;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9FbWl0dGVycy9PcHRpb25zL0NsYXNzZXMvRW1pdHRlclNpemUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsbUJBQW1CO0FBQ25CLGdCQUFnQixtQkFBTyxDQUFDLG9FQUFtQjtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1BsdWdpbnMvRW1pdHRlcnMvT3B0aW9ucy9DbGFzc2VzL0VtaXR0ZXJTaXplLmpzP2ZjZTYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkVtaXR0ZXJTaXplID0gdm9pZCAwO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuLi8uLi8uLi8uLi9FbnVtc1wiKTtcbmNsYXNzIEVtaXR0ZXJTaXplIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5tb2RlID0gRW51bXNfMS5TaXplTW9kZS5wZXJjZW50O1xuICAgICAgICB0aGlzLmhlaWdodCA9IDA7XG4gICAgICAgIHRoaXMud2lkdGggPSAwO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLm1vZGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5tb2RlID0gZGF0YS5tb2RlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmhlaWdodCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmhlaWdodCA9IGRhdGEuaGVpZ2h0O1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLndpZHRoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMud2lkdGggPSBkYXRhLndpZHRoO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5FbWl0dGVyU2l6ZSA9IEVtaXR0ZXJTaXplO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/Emitters/Options/Classes/EmitterSize.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/Emitters/ShapeManager.js": +/*!*******************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/Emitters/ShapeManager.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ShapeManager = void 0;\nconst shapes = new Map();\nclass ShapeManager {\n static addShape(name, drawer) {\n if (!ShapeManager.getShape(name)) {\n shapes.set(name, drawer);\n }\n }\n static getShape(name) {\n return shapes.get(name);\n }\n static getSupportedShapes() {\n return shapes.keys();\n }\n}\nexports.ShapeManager = ShapeManager;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9FbWl0dGVycy9TaGFwZU1hbmFnZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1BsdWdpbnMvRW1pdHRlcnMvU2hhcGVNYW5hZ2VyLmpzPzFmMDMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlNoYXBlTWFuYWdlciA9IHZvaWQgMDtcbmNvbnN0IHNoYXBlcyA9IG5ldyBNYXAoKTtcbmNsYXNzIFNoYXBlTWFuYWdlciB7XG4gICAgc3RhdGljIGFkZFNoYXBlKG5hbWUsIGRyYXdlcikge1xuICAgICAgICBpZiAoIVNoYXBlTWFuYWdlci5nZXRTaGFwZShuYW1lKSkge1xuICAgICAgICAgICAgc2hhcGVzLnNldChuYW1lLCBkcmF3ZXIpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHN0YXRpYyBnZXRTaGFwZShuYW1lKSB7XG4gICAgICAgIHJldHVybiBzaGFwZXMuZ2V0KG5hbWUpO1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0U3VwcG9ydGVkU2hhcGVzKCkge1xuICAgICAgICByZXR1cm4gc2hhcGVzLmtleXMoKTtcbiAgICB9XG59XG5leHBvcnRzLlNoYXBlTWFuYWdlciA9IFNoYXBlTWFuYWdlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/Emitters/ShapeManager.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/Emitters/Shapes/Circle/CircleShape.js": +/*!********************************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/Emitters/Shapes/Circle/CircleShape.js ***! + \********************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.CircleShape = void 0;\nclass CircleShape {\n randomPosition(position, offset, fill) {\n const generateTheta = (x, y) => {\n const u = Math.random() / 4.0;\n const theta = Math.atan((y / x) * Math.tan(2 * Math.PI * u));\n const v = Math.random();\n if (v < 0.25) {\n return theta;\n }\n else if (v < 0.5) {\n return Math.PI - theta;\n }\n else if (v < 0.75) {\n return Math.PI + theta;\n }\n else {\n return -theta;\n }\n };\n const radius = (x, y, theta) => (x * y) / Math.sqrt((y * Math.cos(theta)) ** 2 + (x * Math.sin(theta)) ** 2);\n const [a, b] = [offset.x / 2, offset.y / 2];\n const randomTheta = generateTheta(a, b), maxRadius = radius(a, b, randomTheta), randomRadius = fill ? maxRadius * Math.sqrt(Math.random()) : maxRadius;\n return {\n x: position.x + randomRadius * Math.cos(randomTheta),\n y: position.y + randomRadius * Math.sin(randomTheta),\n };\n }\n}\nexports.CircleShape = CircleShape;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9FbWl0dGVycy9TaGFwZXMvQ2lyY2xlL0NpcmNsZVNoYXBlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELG1CQUFtQjtBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9FbWl0dGVycy9TaGFwZXMvQ2lyY2xlL0NpcmNsZVNoYXBlLmpzPzgyOTgiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkNpcmNsZVNoYXBlID0gdm9pZCAwO1xuY2xhc3MgQ2lyY2xlU2hhcGUge1xuICAgIHJhbmRvbVBvc2l0aW9uKHBvc2l0aW9uLCBvZmZzZXQsIGZpbGwpIHtcbiAgICAgICAgY29uc3QgZ2VuZXJhdGVUaGV0YSA9ICh4LCB5KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB1ID0gTWF0aC5yYW5kb20oKSAvIDQuMDtcbiAgICAgICAgICAgIGNvbnN0IHRoZXRhID0gTWF0aC5hdGFuKCh5IC8geCkgKiBNYXRoLnRhbigyICogTWF0aC5QSSAqIHUpKTtcbiAgICAgICAgICAgIGNvbnN0IHYgPSBNYXRoLnJhbmRvbSgpO1xuICAgICAgICAgICAgaWYgKHYgPCAwLjI1KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoZXRhO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodiA8IDAuNSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBNYXRoLlBJIC0gdGhldGE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICh2IDwgMC43NSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBNYXRoLlBJICsgdGhldGE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gLXRoZXRhO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCByYWRpdXMgPSAoeCwgeSwgdGhldGEpID0+ICh4ICogeSkgLyBNYXRoLnNxcnQoKHkgKiBNYXRoLmNvcyh0aGV0YSkpICoqIDIgKyAoeCAqIE1hdGguc2luKHRoZXRhKSkgKiogMik7XG4gICAgICAgIGNvbnN0IFthLCBiXSA9IFtvZmZzZXQueCAvIDIsIG9mZnNldC55IC8gMl07XG4gICAgICAgIGNvbnN0IHJhbmRvbVRoZXRhID0gZ2VuZXJhdGVUaGV0YShhLCBiKSwgbWF4UmFkaXVzID0gcmFkaXVzKGEsIGIsIHJhbmRvbVRoZXRhKSwgcmFuZG9tUmFkaXVzID0gZmlsbCA/IG1heFJhZGl1cyAqIE1hdGguc3FydChNYXRoLnJhbmRvbSgpKSA6IG1heFJhZGl1cztcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHg6IHBvc2l0aW9uLnggKyByYW5kb21SYWRpdXMgKiBNYXRoLmNvcyhyYW5kb21UaGV0YSksXG4gICAgICAgICAgICB5OiBwb3NpdGlvbi55ICsgcmFuZG9tUmFkaXVzICogTWF0aC5zaW4ocmFuZG9tVGhldGEpLFxuICAgICAgICB9O1xuICAgIH1cbn1cbmV4cG9ydHMuQ2lyY2xlU2hhcGUgPSBDaXJjbGVTaGFwZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/Emitters/Shapes/Circle/CircleShape.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/Emitters/Shapes/Square/SquareShape.js": +/*!********************************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/Emitters/Shapes/Square/SquareShape.js ***! + \********************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.SquareShape = void 0;\nfunction randomSquareCoordinate(position, offset) {\n return position + offset * (Math.random() - 0.5);\n}\nclass SquareShape {\n randomPosition(position, offset, fill) {\n if (fill) {\n return {\n x: randomSquareCoordinate(position.x, offset.x),\n y: randomSquareCoordinate(position.y, offset.y),\n };\n }\n else {\n const halfW = offset.x / 2, halfH = offset.y / 2, side = Math.floor(Math.random() * 4), v = (Math.random() - 0.5) * 2;\n switch (side) {\n case 0:\n return {\n x: position.x + v * halfW,\n y: position.y - halfH,\n };\n case 1:\n return {\n x: position.x - halfW,\n y: position.y + v * halfH,\n };\n case 2:\n return {\n x: position.x + v * halfW,\n y: position.y + halfH,\n };\n case 3:\n default:\n return {\n x: position.x + halfW,\n y: position.y + v * halfH,\n };\n }\n }\n }\n}\nexports.SquareShape = SquareShape;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9FbWl0dGVycy9TaGFwZXMvU3F1YXJlL1NxdWFyZVNoYXBlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELG1CQUFtQjtBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1BsdWdpbnMvRW1pdHRlcnMvU2hhcGVzL1NxdWFyZS9TcXVhcmVTaGFwZS5qcz8xODM0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5TcXVhcmVTaGFwZSA9IHZvaWQgMDtcbmZ1bmN0aW9uIHJhbmRvbVNxdWFyZUNvb3JkaW5hdGUocG9zaXRpb24sIG9mZnNldCkge1xuICAgIHJldHVybiBwb3NpdGlvbiArIG9mZnNldCAqIChNYXRoLnJhbmRvbSgpIC0gMC41KTtcbn1cbmNsYXNzIFNxdWFyZVNoYXBlIHtcbiAgICByYW5kb21Qb3NpdGlvbihwb3NpdGlvbiwgb2Zmc2V0LCBmaWxsKSB7XG4gICAgICAgIGlmIChmaWxsKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHg6IHJhbmRvbVNxdWFyZUNvb3JkaW5hdGUocG9zaXRpb24ueCwgb2Zmc2V0LngpLFxuICAgICAgICAgICAgICAgIHk6IHJhbmRvbVNxdWFyZUNvb3JkaW5hdGUocG9zaXRpb24ueSwgb2Zmc2V0LnkpLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGhhbGZXID0gb2Zmc2V0LnggLyAyLCBoYWxmSCA9IG9mZnNldC55IC8gMiwgc2lkZSA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDQpLCB2ID0gKE1hdGgucmFuZG9tKCkgLSAwLjUpICogMjtcbiAgICAgICAgICAgIHN3aXRjaCAoc2lkZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHg6IHBvc2l0aW9uLnggKyB2ICogaGFsZlcsXG4gICAgICAgICAgICAgICAgICAgICAgICB5OiBwb3NpdGlvbi55IC0gaGFsZkgsXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgeDogcG9zaXRpb24ueCAtIGhhbGZXLFxuICAgICAgICAgICAgICAgICAgICAgICAgeTogcG9zaXRpb24ueSArIHYgKiBoYWxmSCxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB4OiBwb3NpdGlvbi54ICsgdiAqIGhhbGZXLFxuICAgICAgICAgICAgICAgICAgICAgICAgeTogcG9zaXRpb24ueSArIGhhbGZILFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgeDogcG9zaXRpb24ueCArIGhhbGZXLFxuICAgICAgICAgICAgICAgICAgICAgICAgeTogcG9zaXRpb24ueSArIHYgKiBoYWxmSCxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuU3F1YXJlU2hhcGUgPSBTcXVhcmVTaGFwZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/Emitters/Shapes/Square/SquareShape.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/Emitters/plugin.js": +/*!*************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/Emitters/plugin.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadEmittersPlugin = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Emitters_1 = __webpack_require__(/*! ./Emitters */ \"./node_modules/tsparticles/Plugins/Emitters/Emitters.js\");\nconst Enums_1 = __webpack_require__(/*! ./Enums */ \"./node_modules/tsparticles/Plugins/Emitters/Enums/index.js\");\nconst Emitter_1 = __webpack_require__(/*! ./Options/Classes/Emitter */ \"./node_modules/tsparticles/Plugins/Emitters/Options/Classes/Emitter.js\");\nconst ShapeManager_1 = __webpack_require__(/*! ./ShapeManager */ \"./node_modules/tsparticles/Plugins/Emitters/ShapeManager.js\");\nconst CircleShape_1 = __webpack_require__(/*! ./Shapes/Circle/CircleShape */ \"./node_modules/tsparticles/Plugins/Emitters/Shapes/Circle/CircleShape.js\");\nconst SquareShape_1 = __webpack_require__(/*! ./Shapes/Square/SquareShape */ \"./node_modules/tsparticles/Plugins/Emitters/Shapes/Square/SquareShape.js\");\nclass EmittersPlugin {\n constructor() {\n this.id = \"emitters\";\n }\n getPlugin(container) {\n return new Emitters_1.Emitters(container);\n }\n needsPlugin(options) {\n var _a, _b, _c;\n if (options === undefined) {\n return false;\n }\n const emitters = options.emitters;\n return ((emitters instanceof Array && !!emitters.length) ||\n emitters !== undefined ||\n (!!((_c = (_b = (_a = options.interactivity) === null || _a === void 0 ? void 0 : _a.events) === null || _b === void 0 ? void 0 : _b.onClick) === null || _c === void 0 ? void 0 : _c.mode) &&\n (0, Utils_1.isInArray)(Enums_1.EmitterClickMode.emitter, options.interactivity.events.onClick.mode)));\n }\n loadOptions(options, source) {\n var _a, _b;\n if (!this.needsPlugin(options) && !this.needsPlugin(source)) {\n return;\n }\n const optionsCast = options;\n if (source === null || source === void 0 ? void 0 : source.emitters) {\n if ((source === null || source === void 0 ? void 0 : source.emitters) instanceof Array) {\n optionsCast.emitters = source === null || source === void 0 ? void 0 : source.emitters.map((s) => {\n const tmp = new Emitter_1.Emitter();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n let emitterOptions = optionsCast.emitters;\n if ((emitterOptions === null || emitterOptions === void 0 ? void 0 : emitterOptions.load) === undefined) {\n optionsCast.emitters = emitterOptions = new Emitter_1.Emitter();\n }\n emitterOptions.load(source === null || source === void 0 ? void 0 : source.emitters);\n }\n }\n const interactivityEmitters = (_b = (_a = source === null || source === void 0 ? void 0 : source.interactivity) === null || _a === void 0 ? void 0 : _a.modes) === null || _b === void 0 ? void 0 : _b.emitters;\n if (interactivityEmitters) {\n if (interactivityEmitters instanceof Array) {\n optionsCast.interactivity.modes.emitters = interactivityEmitters.map((s) => {\n const tmp = new Emitter_1.Emitter();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n let emitterOptions = optionsCast.interactivity.modes.emitters;\n if ((emitterOptions === null || emitterOptions === void 0 ? void 0 : emitterOptions.load) === undefined) {\n optionsCast.interactivity.modes.emitters = emitterOptions = new Emitter_1.Emitter();\n }\n emitterOptions.load(interactivityEmitters);\n }\n }\n }\n}\nasync function loadEmittersPlugin(tsParticles) {\n const plugin = new EmittersPlugin();\n await tsParticles.addPlugin(plugin);\n if (!tsParticles.addEmitterShape) {\n tsParticles.addEmitterShape = (name, shape) => {\n ShapeManager_1.ShapeManager.addShape(name, shape);\n };\n }\n tsParticles.addEmitterShape(Enums_1.EmitterShapeType.circle, new CircleShape_1.CircleShape());\n tsParticles.addEmitterShape(Enums_1.EmitterShapeType.square, new SquareShape_1.SquareShape());\n}\nexports.loadEmittersPlugin = loadEmittersPlugin;\n__exportStar(__webpack_require__(/*! ./EmittersMain */ \"./node_modules/tsparticles/Plugins/Emitters/EmittersMain.js\"), exports);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9FbWl0dGVycy9wbHVnaW4uanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBO0FBQ0EsbUNBQW1DLG9DQUFvQyxnQkFBZ0I7QUFDdkYsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELDBCQUEwQjtBQUMxQixnQkFBZ0IsbUJBQU8sQ0FBQyw4REFBYTtBQUNyQyxtQkFBbUIsbUJBQU8sQ0FBQywyRUFBWTtBQUN2QyxnQkFBZ0IsbUJBQU8sQ0FBQywyRUFBUztBQUNqQyxrQkFBa0IsbUJBQU8sQ0FBQyx5R0FBMkI7QUFDckQsdUJBQXVCLG1CQUFPLENBQUMsbUZBQWdCO0FBQy9DLHNCQUFzQixtQkFBTyxDQUFDLDZHQUE2QjtBQUMzRCxzQkFBc0IsbUJBQU8sQ0FBQyw2R0FBNkI7QUFDM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCO0FBQzFCLGFBQWEsbUJBQU8sQ0FBQyxtRkFBZ0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1BsdWdpbnMvRW1pdHRlcnMvcGx1Z2luLmpzPzZjODkiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19jcmVhdGVCaW5kaW5nID0gKHRoaXMgJiYgdGhpcy5fX2NyZWF0ZUJpbmRpbmcpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfSk7XG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgb1trMl0gPSBtW2tdO1xufSkpO1xudmFyIF9fZXhwb3J0U3RhciA9ICh0aGlzICYmIHRoaXMuX19leHBvcnRTdGFyKSB8fCBmdW5jdGlvbihtLCBleHBvcnRzKSB7XG4gICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gXCJkZWZhdWx0XCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzLCBwKSkgX19jcmVhdGVCaW5kaW5nKGV4cG9ydHMsIG0sIHApO1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMubG9hZEVtaXR0ZXJzUGx1Z2luID0gdm9pZCAwO1xuY29uc3QgVXRpbHNfMSA9IHJlcXVpcmUoXCIuLi8uLi9VdGlsc1wiKTtcbmNvbnN0IEVtaXR0ZXJzXzEgPSByZXF1aXJlKFwiLi9FbWl0dGVyc1wiKTtcbmNvbnN0IEVudW1zXzEgPSByZXF1aXJlKFwiLi9FbnVtc1wiKTtcbmNvbnN0IEVtaXR0ZXJfMSA9IHJlcXVpcmUoXCIuL09wdGlvbnMvQ2xhc3Nlcy9FbWl0dGVyXCIpO1xuY29uc3QgU2hhcGVNYW5hZ2VyXzEgPSByZXF1aXJlKFwiLi9TaGFwZU1hbmFnZXJcIik7XG5jb25zdCBDaXJjbGVTaGFwZV8xID0gcmVxdWlyZShcIi4vU2hhcGVzL0NpcmNsZS9DaXJjbGVTaGFwZVwiKTtcbmNvbnN0IFNxdWFyZVNoYXBlXzEgPSByZXF1aXJlKFwiLi9TaGFwZXMvU3F1YXJlL1NxdWFyZVNoYXBlXCIpO1xuY2xhc3MgRW1pdHRlcnNQbHVnaW4ge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmlkID0gXCJlbWl0dGVyc1wiO1xuICAgIH1cbiAgICBnZXRQbHVnaW4oY29udGFpbmVyKSB7XG4gICAgICAgIHJldHVybiBuZXcgRW1pdHRlcnNfMS5FbWl0dGVycyhjb250YWluZXIpO1xuICAgIH1cbiAgICBuZWVkc1BsdWdpbihvcHRpb25zKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZW1pdHRlcnMgPSBvcHRpb25zLmVtaXR0ZXJzO1xuICAgICAgICByZXR1cm4gKChlbWl0dGVycyBpbnN0YW5jZW9mIEFycmF5ICYmICEhZW1pdHRlcnMubGVuZ3RoKSB8fFxuICAgICAgICAgICAgZW1pdHRlcnMgIT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgICAgKCEhKChfYyA9IChfYiA9IChfYSA9IG9wdGlvbnMuaW50ZXJhY3Rpdml0eSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmV2ZW50cykgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm9uQ2xpY2spID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5tb2RlKSAmJlxuICAgICAgICAgICAgICAgICgwLCBVdGlsc18xLmlzSW5BcnJheSkoRW51bXNfMS5FbWl0dGVyQ2xpY2tNb2RlLmVtaXR0ZXIsIG9wdGlvbnMuaW50ZXJhY3Rpdml0eS5ldmVudHMub25DbGljay5tb2RlKSkpO1xuICAgIH1cbiAgICBsb2FkT3B0aW9ucyhvcHRpb25zLCBzb3VyY2UpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgaWYgKCF0aGlzLm5lZWRzUGx1Z2luKG9wdGlvbnMpICYmICF0aGlzLm5lZWRzUGx1Z2luKHNvdXJjZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvcHRpb25zQ2FzdCA9IG9wdGlvbnM7XG4gICAgICAgIGlmIChzb3VyY2UgPT09IG51bGwgfHwgc291cmNlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzb3VyY2UuZW1pdHRlcnMpIHtcbiAgICAgICAgICAgIGlmICgoc291cmNlID09PSBudWxsIHx8IHNvdXJjZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogc291cmNlLmVtaXR0ZXJzKSBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICAgICAgb3B0aW9uc0Nhc3QuZW1pdHRlcnMgPSBzb3VyY2UgPT09IG51bGwgfHwgc291cmNlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzb3VyY2UuZW1pdHRlcnMubWFwKChzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRtcCA9IG5ldyBFbWl0dGVyXzEuRW1pdHRlcigpO1xuICAgICAgICAgICAgICAgICAgICB0bXAubG9hZChzKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRtcDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGxldCBlbWl0dGVyT3B0aW9ucyA9IG9wdGlvbnNDYXN0LmVtaXR0ZXJzO1xuICAgICAgICAgICAgICAgIGlmICgoZW1pdHRlck9wdGlvbnMgPT09IG51bGwgfHwgZW1pdHRlck9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGVtaXR0ZXJPcHRpb25zLmxvYWQpID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uc0Nhc3QuZW1pdHRlcnMgPSBlbWl0dGVyT3B0aW9ucyA9IG5ldyBFbWl0dGVyXzEuRW1pdHRlcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbWl0dGVyT3B0aW9ucy5sb2FkKHNvdXJjZSA9PT0gbnVsbCB8fCBzb3VyY2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNvdXJjZS5lbWl0dGVycyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW50ZXJhY3Rpdml0eUVtaXR0ZXJzID0gKF9iID0gKF9hID0gc291cmNlID09PSBudWxsIHx8IHNvdXJjZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogc291cmNlLmludGVyYWN0aXZpdHkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5tb2RlcykgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmVtaXR0ZXJzO1xuICAgICAgICBpZiAoaW50ZXJhY3Rpdml0eUVtaXR0ZXJzKSB7XG4gICAgICAgICAgICBpZiAoaW50ZXJhY3Rpdml0eUVtaXR0ZXJzIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgICAgICBvcHRpb25zQ2FzdC5pbnRlcmFjdGl2aXR5Lm1vZGVzLmVtaXR0ZXJzID0gaW50ZXJhY3Rpdml0eUVtaXR0ZXJzLm1hcCgocykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0bXAgPSBuZXcgRW1pdHRlcl8xLkVtaXR0ZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgdG1wLmxvYWQocyk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0bXA7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBsZXQgZW1pdHRlck9wdGlvbnMgPSBvcHRpb25zQ2FzdC5pbnRlcmFjdGl2aXR5Lm1vZGVzLmVtaXR0ZXJzO1xuICAgICAgICAgICAgICAgIGlmICgoZW1pdHRlck9wdGlvbnMgPT09IG51bGwgfHwgZW1pdHRlck9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGVtaXR0ZXJPcHRpb25zLmxvYWQpID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uc0Nhc3QuaW50ZXJhY3Rpdml0eS5tb2Rlcy5lbWl0dGVycyA9IGVtaXR0ZXJPcHRpb25zID0gbmV3IEVtaXR0ZXJfMS5FbWl0dGVyKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVtaXR0ZXJPcHRpb25zLmxvYWQoaW50ZXJhY3Rpdml0eUVtaXR0ZXJzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbmFzeW5jIGZ1bmN0aW9uIGxvYWRFbWl0dGVyc1BsdWdpbih0c1BhcnRpY2xlcykge1xuICAgIGNvbnN0IHBsdWdpbiA9IG5ldyBFbWl0dGVyc1BsdWdpbigpO1xuICAgIGF3YWl0IHRzUGFydGljbGVzLmFkZFBsdWdpbihwbHVnaW4pO1xuICAgIGlmICghdHNQYXJ0aWNsZXMuYWRkRW1pdHRlclNoYXBlKSB7XG4gICAgICAgIHRzUGFydGljbGVzLmFkZEVtaXR0ZXJTaGFwZSA9IChuYW1lLCBzaGFwZSkgPT4ge1xuICAgICAgICAgICAgU2hhcGVNYW5hZ2VyXzEuU2hhcGVNYW5hZ2VyLmFkZFNoYXBlKG5hbWUsIHNoYXBlKTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgdHNQYXJ0aWNsZXMuYWRkRW1pdHRlclNoYXBlKEVudW1zXzEuRW1pdHRlclNoYXBlVHlwZS5jaXJjbGUsIG5ldyBDaXJjbGVTaGFwZV8xLkNpcmNsZVNoYXBlKCkpO1xuICAgIHRzUGFydGljbGVzLmFkZEVtaXR0ZXJTaGFwZShFbnVtc18xLkVtaXR0ZXJTaGFwZVR5cGUuc3F1YXJlLCBuZXcgU3F1YXJlU2hhcGVfMS5TcXVhcmVTaGFwZSgpKTtcbn1cbmV4cG9ydHMubG9hZEVtaXR0ZXJzUGx1Z2luID0gbG9hZEVtaXR0ZXJzUGx1Z2luO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0VtaXR0ZXJzTWFpblwiKSwgZXhwb3J0cyk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/Emitters/plugin.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/PolygonMask/Enums/InlineArrangement.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/PolygonMask/Enums/InlineArrangement.js ***! + \*********************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.InlineArrangement = void 0;\nvar InlineArrangement;\n(function (InlineArrangement) {\n InlineArrangement[\"equidistant\"] = \"equidistant\";\n InlineArrangement[\"onePerPoint\"] = \"one-per-point\";\n InlineArrangement[\"perPoint\"] = \"per-point\";\n InlineArrangement[\"randomLength\"] = \"random-length\";\n InlineArrangement[\"randomPoint\"] = \"random-point\";\n})(InlineArrangement = exports.InlineArrangement || (exports.InlineArrangement = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9Qb2x5Z29uTWFzay9FbnVtcy9JbmxpbmVBcnJhbmdlbWVudC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCx5QkFBeUI7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLG9EQUFvRCx5QkFBeUIsS0FBSyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9Qb2x5Z29uTWFzay9FbnVtcy9JbmxpbmVBcnJhbmdlbWVudC5qcz9kMjZjIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5JbmxpbmVBcnJhbmdlbWVudCA9IHZvaWQgMDtcbnZhciBJbmxpbmVBcnJhbmdlbWVudDtcbihmdW5jdGlvbiAoSW5saW5lQXJyYW5nZW1lbnQpIHtcbiAgICBJbmxpbmVBcnJhbmdlbWVudFtcImVxdWlkaXN0YW50XCJdID0gXCJlcXVpZGlzdGFudFwiO1xuICAgIElubGluZUFycmFuZ2VtZW50W1wib25lUGVyUG9pbnRcIl0gPSBcIm9uZS1wZXItcG9pbnRcIjtcbiAgICBJbmxpbmVBcnJhbmdlbWVudFtcInBlclBvaW50XCJdID0gXCJwZXItcG9pbnRcIjtcbiAgICBJbmxpbmVBcnJhbmdlbWVudFtcInJhbmRvbUxlbmd0aFwiXSA9IFwicmFuZG9tLWxlbmd0aFwiO1xuICAgIElubGluZUFycmFuZ2VtZW50W1wicmFuZG9tUG9pbnRcIl0gPSBcInJhbmRvbS1wb2ludFwiO1xufSkoSW5saW5lQXJyYW5nZW1lbnQgPSBleHBvcnRzLklubGluZUFycmFuZ2VtZW50IHx8IChleHBvcnRzLklubGluZUFycmFuZ2VtZW50ID0ge30pKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/PolygonMask/Enums/InlineArrangement.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/PolygonMask/Enums/MoveType.js": +/*!************************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/PolygonMask/Enums/MoveType.js ***! + \************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.MoveType = void 0;\nvar MoveType;\n(function (MoveType) {\n MoveType[\"path\"] = \"path\";\n MoveType[\"radius\"] = \"radius\";\n})(MoveType = exports.MoveType || (exports.MoveType = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9Qb2x5Z29uTWFzay9FbnVtcy9Nb3ZlVHlwZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLGtDQUFrQyxnQkFBZ0IsS0FBSyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9Qb2x5Z29uTWFzay9FbnVtcy9Nb3ZlVHlwZS5qcz82ZDc3Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Nb3ZlVHlwZSA9IHZvaWQgMDtcbnZhciBNb3ZlVHlwZTtcbihmdW5jdGlvbiAoTW92ZVR5cGUpIHtcbiAgICBNb3ZlVHlwZVtcInBhdGhcIl0gPSBcInBhdGhcIjtcbiAgICBNb3ZlVHlwZVtcInJhZGl1c1wiXSA9IFwicmFkaXVzXCI7XG59KShNb3ZlVHlwZSA9IGV4cG9ydHMuTW92ZVR5cGUgfHwgKGV4cG9ydHMuTW92ZVR5cGUgPSB7fSkpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/PolygonMask/Enums/MoveType.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/PolygonMask/Enums/Type.js": +/*!********************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/PolygonMask/Enums/Type.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Type = void 0;\nvar Type;\n(function (Type) {\n Type[\"inline\"] = \"inline\";\n Type[\"inside\"] = \"inside\";\n Type[\"outside\"] = \"outside\";\n Type[\"none\"] = \"none\";\n})(Type = exports.Type || (exports.Type = {}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9Qb2x5Z29uTWFzay9FbnVtcy9UeXBlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLDBCQUEwQixZQUFZLEtBQUsiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1BsdWdpbnMvUG9seWdvbk1hc2svRW51bXMvVHlwZS5qcz8wOWVkIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5UeXBlID0gdm9pZCAwO1xudmFyIFR5cGU7XG4oZnVuY3Rpb24gKFR5cGUpIHtcbiAgICBUeXBlW1wiaW5saW5lXCJdID0gXCJpbmxpbmVcIjtcbiAgICBUeXBlW1wiaW5zaWRlXCJdID0gXCJpbnNpZGVcIjtcbiAgICBUeXBlW1wib3V0c2lkZVwiXSA9IFwib3V0c2lkZVwiO1xuICAgIFR5cGVbXCJub25lXCJdID0gXCJub25lXCI7XG59KShUeXBlID0gZXhwb3J0cy5UeXBlIHx8IChleHBvcnRzLlR5cGUgPSB7fSkpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/PolygonMask/Enums/Type.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/PolygonMask/Enums/index.js": +/*!*********************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/PolygonMask/Enums/index.js ***! + \*********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n__exportStar(__webpack_require__(/*! ./InlineArrangement */ \"./node_modules/tsparticles/Plugins/PolygonMask/Enums/InlineArrangement.js\"), exports);\n__exportStar(__webpack_require__(/*! ./MoveType */ \"./node_modules/tsparticles/Plugins/PolygonMask/Enums/MoveType.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Type */ \"./node_modules/tsparticles/Plugins/PolygonMask/Enums/Type.js\"), exports);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9Qb2x5Z29uTWFzay9FbnVtcy9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0E7QUFDQSxtQ0FBbUMsb0NBQW9DLGdCQUFnQjtBQUN2RixDQUFDO0FBQ0Q7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQSw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsYUFBYSxtQkFBTyxDQUFDLHNHQUFxQjtBQUMxQyxhQUFhLG1CQUFPLENBQUMsb0ZBQVk7QUFDakMsYUFBYSxtQkFBTyxDQUFDLDRFQUFRIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9QbHVnaW5zL1BvbHlnb25NYXNrL0VudW1zL2luZGV4LmpzPzUyZTEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19jcmVhdGVCaW5kaW5nID0gKHRoaXMgJiYgdGhpcy5fX2NyZWF0ZUJpbmRpbmcpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfSk7XG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgb1trMl0gPSBtW2tdO1xufSkpO1xudmFyIF9fZXhwb3J0U3RhciA9ICh0aGlzICYmIHRoaXMuX19leHBvcnRTdGFyKSB8fCBmdW5jdGlvbihtLCBleHBvcnRzKSB7XG4gICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gXCJkZWZhdWx0XCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzLCBwKSkgX19jcmVhdGVCaW5kaW5nKGV4cG9ydHMsIG0sIHApO1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9JbmxpbmVBcnJhbmdlbWVudFwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vTW92ZVR5cGVcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL1R5cGVcIiksIGV4cG9ydHMpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/PolygonMask/Enums/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/Draw.js": +/*!******************************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/Draw.js ***! + \******************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Draw = void 0;\nconst DrawStroke_1 = __webpack_require__(/*! ./DrawStroke */ \"./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/DrawStroke.js\");\nconst OptionsColor_1 = __webpack_require__(/*! ../../../../Options/Classes/OptionsColor */ \"./node_modules/tsparticles/Options/Classes/OptionsColor.js\");\nclass Draw {\n constructor() {\n this.enable = false;\n this.stroke = new DrawStroke_1.DrawStroke();\n }\n get lineWidth() {\n return this.stroke.width;\n }\n set lineWidth(value) {\n this.stroke.width = value;\n }\n get lineColor() {\n return this.stroke.color;\n }\n set lineColor(value) {\n this.stroke.color = OptionsColor_1.OptionsColor.create(this.stroke.color, value);\n }\n load(data) {\n var _a;\n if (data !== undefined) {\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n const stroke = (_a = data.stroke) !== null && _a !== void 0 ? _a : {\n color: data.lineColor,\n width: data.lineWidth,\n };\n this.stroke.load(stroke);\n }\n }\n}\nexports.Draw = Draw;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9Qb2x5Z29uTWFzay9PcHRpb25zL0NsYXNzZXMvRHJhdy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxZQUFZO0FBQ1oscUJBQXFCLG1CQUFPLENBQUMsa0dBQWM7QUFDM0MsdUJBQXVCLG1CQUFPLENBQUMsNEdBQTBDO0FBQ3pFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9Qb2x5Z29uTWFzay9PcHRpb25zL0NsYXNzZXMvRHJhdy5qcz85YTFkIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5EcmF3ID0gdm9pZCAwO1xuY29uc3QgRHJhd1N0cm9rZV8xID0gcmVxdWlyZShcIi4vRHJhd1N0cm9rZVwiKTtcbmNvbnN0IE9wdGlvbnNDb2xvcl8xID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL09wdGlvbnMvQ2xhc3Nlcy9PcHRpb25zQ29sb3JcIik7XG5jbGFzcyBEcmF3IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5lbmFibGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zdHJva2UgPSBuZXcgRHJhd1N0cm9rZV8xLkRyYXdTdHJva2UoKTtcbiAgICB9XG4gICAgZ2V0IGxpbmVXaWR0aCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3Ryb2tlLndpZHRoO1xuICAgIH1cbiAgICBzZXQgbGluZVdpZHRoKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuc3Ryb2tlLndpZHRoID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBsaW5lQ29sb3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0cm9rZS5jb2xvcjtcbiAgICB9XG4gICAgc2V0IGxpbmVDb2xvcih2YWx1ZSkge1xuICAgICAgICB0aGlzLnN0cm9rZS5jb2xvciA9IE9wdGlvbnNDb2xvcl8xLk9wdGlvbnNDb2xvci5jcmVhdGUodGhpcy5zdHJva2UuY29sb3IsIHZhbHVlKTtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKGRhdGEgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKGRhdGEuZW5hYmxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmVuYWJsZSA9IGRhdGEuZW5hYmxlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgc3Ryb2tlID0gKF9hID0gZGF0YS5zdHJva2UpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogZGF0YS5saW5lQ29sb3IsXG4gICAgICAgICAgICAgICAgd2lkdGg6IGRhdGEubGluZVdpZHRoLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHRoaXMuc3Ryb2tlLmxvYWQoc3Ryb2tlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuRHJhdyA9IERyYXc7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/Draw.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/DrawStroke.js": +/*!************************************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/DrawStroke.js ***! + \************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.DrawStroke = void 0;\nconst OptionsColor_1 = __webpack_require__(/*! ../../../../Options/Classes/OptionsColor */ \"./node_modules/tsparticles/Options/Classes/OptionsColor.js\");\nconst Utils_1 = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass DrawStroke {\n constructor() {\n this.color = new OptionsColor_1.OptionsColor();\n this.width = 0.5;\n this.opacity = 1;\n }\n load(data) {\n var _a;\n if (data !== undefined) {\n this.color = OptionsColor_1.OptionsColor.create(this.color, data.color);\n if (typeof this.color.value === \"string\") {\n this.opacity = (_a = (0, Utils_1.stringToAlpha)(this.color.value)) !== null && _a !== void 0 ? _a : this.opacity;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n if (data.width !== undefined) {\n this.width = data.width;\n }\n }\n }\n}\nexports.DrawStroke = DrawStroke;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9Qb2x5Z29uTWFzay9PcHRpb25zL0NsYXNzZXMvRHJhd1N0cm9rZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxrQkFBa0I7QUFDbEIsdUJBQXVCLG1CQUFPLENBQUMsNEdBQTBDO0FBQ3pFLGdCQUFnQixtQkFBTyxDQUFDLG9FQUFtQjtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9Qb2x5Z29uTWFzay9PcHRpb25zL0NsYXNzZXMvRHJhd1N0cm9rZS5qcz9jNTRmIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5EcmF3U3Ryb2tlID0gdm9pZCAwO1xuY29uc3QgT3B0aW9uc0NvbG9yXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vT3B0aW9ucy9DbGFzc2VzL09wdGlvbnNDb2xvclwiKTtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vVXRpbHNcIik7XG5jbGFzcyBEcmF3U3Ryb2tlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5jb2xvciA9IG5ldyBPcHRpb25zQ29sb3JfMS5PcHRpb25zQ29sb3IoKTtcbiAgICAgICAgdGhpcy53aWR0aCA9IDAuNTtcbiAgICAgICAgdGhpcy5vcGFjaXR5ID0gMTtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKGRhdGEgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5jb2xvciA9IE9wdGlvbnNDb2xvcl8xLk9wdGlvbnNDb2xvci5jcmVhdGUodGhpcy5jb2xvciwgZGF0YS5jb2xvcik7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMuY29sb3IudmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9wYWNpdHkgPSAoX2EgPSAoMCwgVXRpbHNfMS5zdHJpbmdUb0FscGhhKSh0aGlzLmNvbG9yLnZhbHVlKSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogdGhpcy5vcGFjaXR5O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEub3BhY2l0eSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcGFjaXR5ID0gZGF0YS5vcGFjaXR5O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEud2lkdGggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMud2lkdGggPSBkYXRhLndpZHRoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5EcmF3U3Ryb2tlID0gRHJhd1N0cm9rZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/DrawStroke.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/Inline.js": +/*!********************************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/Inline.js ***! + \********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Inline = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../Enums */ \"./node_modules/tsparticles/Plugins/PolygonMask/Enums/index.js\");\nclass Inline {\n constructor() {\n this.arrangement = Enums_1.InlineArrangement.onePerPoint;\n }\n load(data) {\n if (data !== undefined) {\n if (data.arrangement !== undefined) {\n this.arrangement = data.arrangement;\n }\n }\n }\n}\nexports.Inline = Inline;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9Qb2x5Z29uTWFzay9PcHRpb25zL0NsYXNzZXMvSW5saW5lLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGNBQWM7QUFDZCxnQkFBZ0IsbUJBQU8sQ0FBQyxrRkFBYTtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9QbHVnaW5zL1BvbHlnb25NYXNrL09wdGlvbnMvQ2xhc3Nlcy9JbmxpbmUuanM/YjdlNCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuSW5saW5lID0gdm9pZCAwO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuLi8uLi9FbnVtc1wiKTtcbmNsYXNzIElubGluZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuYXJyYW5nZW1lbnQgPSBFbnVtc18xLklubGluZUFycmFuZ2VtZW50Lm9uZVBlclBvaW50O1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgaWYgKGRhdGEgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKGRhdGEuYXJyYW5nZW1lbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYXJyYW5nZW1lbnQgPSBkYXRhLmFycmFuZ2VtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5JbmxpbmUgPSBJbmxpbmU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/Inline.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/LocalSvg.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/LocalSvg.js ***! + \**********************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.LocalSvg = void 0;\nclass LocalSvg {\n constructor() {\n this.path = [];\n this.size = {\n height: 0,\n width: 0,\n };\n }\n load(data) {\n if (data !== undefined) {\n if (data.path !== undefined) {\n this.path = data.path;\n }\n if (data.size !== undefined) {\n if (data.size.width !== undefined) {\n this.size.width = data.size.width;\n }\n if (data.size.height !== undefined) {\n this.size.height = data.size.height;\n }\n }\n }\n }\n}\nexports.LocalSvg = LocalSvg;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9Qb2x5Z29uTWFzay9PcHRpb25zL0NsYXNzZXMvTG9jYWxTdmcuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9Qb2x5Z29uTWFzay9PcHRpb25zL0NsYXNzZXMvTG9jYWxTdmcuanM/Yzk5ZCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuTG9jYWxTdmcgPSB2b2lkIDA7XG5jbGFzcyBMb2NhbFN2ZyB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMucGF0aCA9IFtdO1xuICAgICAgICB0aGlzLnNpemUgPSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDAsXG4gICAgICAgICAgICB3aWR0aDogMCxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIGlmIChkYXRhICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmIChkYXRhLnBhdGggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMucGF0aCA9IGRhdGEucGF0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLnNpemUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGlmIChkYXRhLnNpemUud2lkdGggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNpemUud2lkdGggPSBkYXRhLnNpemUud2lkdGg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChkYXRhLnNpemUuaGVpZ2h0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaXplLmhlaWdodCA9IGRhdGEuc2l6ZS5oZWlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5Mb2NhbFN2ZyA9IExvY2FsU3ZnO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/LocalSvg.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/Move.js": +/*!******************************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/Move.js ***! + \******************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Move = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../Enums */ \"./node_modules/tsparticles/Plugins/PolygonMask/Enums/index.js\");\nclass Move {\n constructor() {\n this.radius = 10;\n this.type = Enums_1.MoveType.path;\n }\n load(data) {\n if (data !== undefined) {\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n if (data.type !== undefined) {\n this.type = data.type;\n }\n }\n }\n}\nexports.Move = Move;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9Qb2x5Z29uTWFzay9PcHRpb25zL0NsYXNzZXMvTW92ZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxZQUFZO0FBQ1osZ0JBQWdCLG1CQUFPLENBQUMsa0ZBQWE7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9QbHVnaW5zL1BvbHlnb25NYXNrL09wdGlvbnMvQ2xhc3Nlcy9Nb3ZlLmpzPzYzYTkiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLk1vdmUgPSB2b2lkIDA7XG5jb25zdCBFbnVtc18xID0gcmVxdWlyZShcIi4uLy4uL0VudW1zXCIpO1xuY2xhc3MgTW92ZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMucmFkaXVzID0gMTA7XG4gICAgICAgIHRoaXMudHlwZSA9IEVudW1zXzEuTW92ZVR5cGUucGF0aDtcbiAgICB9XG4gICAgbG9hZChkYXRhKSB7XG4gICAgICAgIGlmIChkYXRhICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmIChkYXRhLnJhZGl1cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yYWRpdXMgPSBkYXRhLnJhZGl1cztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLnR5cGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMudHlwZSA9IGRhdGEudHlwZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuTW92ZSA9IE1vdmU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/Move.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/PolygonMask.js": +/*!*************************************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/PolygonMask.js ***! + \*************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.PolygonMask = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../Enums */ \"./node_modules/tsparticles/Plugins/PolygonMask/Enums/index.js\");\nconst Draw_1 = __webpack_require__(/*! ./Draw */ \"./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/Draw.js\");\nconst Move_1 = __webpack_require__(/*! ./Move */ \"./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/Move.js\");\nconst Inline_1 = __webpack_require__(/*! ./Inline */ \"./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/Inline.js\");\nconst LocalSvg_1 = __webpack_require__(/*! ./LocalSvg */ \"./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/LocalSvg.js\");\nconst Utils_1 = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass PolygonMask {\n constructor() {\n this.draw = new Draw_1.Draw();\n this.enable = false;\n this.inline = new Inline_1.Inline();\n this.move = new Move_1.Move();\n this.scale = 1;\n this.type = Enums_1.Type.none;\n }\n get inlineArrangement() {\n return this.inline.arrangement;\n }\n set inlineArrangement(value) {\n this.inline.arrangement = value;\n }\n load(data) {\n var _a;\n if (data !== undefined) {\n this.draw.load(data.draw);\n const inline = (_a = data.inline) !== null && _a !== void 0 ? _a : {\n arrangement: data.inlineArrangement,\n };\n if (inline !== undefined) {\n this.inline.load(inline);\n }\n this.move.load(data.move);\n if (data.scale !== undefined) {\n this.scale = data.scale;\n }\n if (data.type !== undefined) {\n this.type = data.type;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n else {\n this.enable = this.type !== Enums_1.Type.none;\n }\n if (data.url !== undefined) {\n this.url = data.url;\n }\n if (data.data !== undefined) {\n if (typeof data.data === \"string\") {\n this.data = data.data;\n }\n else {\n this.data = new LocalSvg_1.LocalSvg();\n this.data.load(data.data);\n }\n }\n if (data.position !== undefined) {\n this.position = (0, Utils_1.deepExtend)({}, data.position);\n }\n }\n }\n}\nexports.PolygonMask = PolygonMask;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9Qb2x5Z29uTWFzay9PcHRpb25zL0NsYXNzZXMvUG9seWdvbk1hc2suanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsbUJBQW1CO0FBQ25CLGdCQUFnQixtQkFBTyxDQUFDLGtGQUFhO0FBQ3JDLGVBQWUsbUJBQU8sQ0FBQyxzRkFBUTtBQUMvQixlQUFlLG1CQUFPLENBQUMsc0ZBQVE7QUFDL0IsaUJBQWlCLG1CQUFPLENBQUMsMEZBQVU7QUFDbkMsbUJBQW1CLG1CQUFPLENBQUMsOEZBQVk7QUFDdkMsZ0JBQWdCLG1CQUFPLENBQUMsb0VBQW1CO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBEQUEwRDtBQUMxRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9Qb2x5Z29uTWFzay9PcHRpb25zL0NsYXNzZXMvUG9seWdvbk1hc2suanM/ZDBhNCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuUG9seWdvbk1hc2sgPSB2b2lkIDA7XG5jb25zdCBFbnVtc18xID0gcmVxdWlyZShcIi4uLy4uL0VudW1zXCIpO1xuY29uc3QgRHJhd18xID0gcmVxdWlyZShcIi4vRHJhd1wiKTtcbmNvbnN0IE1vdmVfMSA9IHJlcXVpcmUoXCIuL01vdmVcIik7XG5jb25zdCBJbmxpbmVfMSA9IHJlcXVpcmUoXCIuL0lubGluZVwiKTtcbmNvbnN0IExvY2FsU3ZnXzEgPSByZXF1aXJlKFwiLi9Mb2NhbFN2Z1wiKTtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vVXRpbHNcIik7XG5jbGFzcyBQb2x5Z29uTWFzayB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuZHJhdyA9IG5ldyBEcmF3XzEuRHJhdygpO1xuICAgICAgICB0aGlzLmVuYWJsZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlubGluZSA9IG5ldyBJbmxpbmVfMS5JbmxpbmUoKTtcbiAgICAgICAgdGhpcy5tb3ZlID0gbmV3IE1vdmVfMS5Nb3ZlKCk7XG4gICAgICAgIHRoaXMuc2NhbGUgPSAxO1xuICAgICAgICB0aGlzLnR5cGUgPSBFbnVtc18xLlR5cGUubm9uZTtcbiAgICB9XG4gICAgZ2V0IGlubGluZUFycmFuZ2VtZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pbmxpbmUuYXJyYW5nZW1lbnQ7XG4gICAgfVxuICAgIHNldCBpbmxpbmVBcnJhbmdlbWVudCh2YWx1ZSkge1xuICAgICAgICB0aGlzLmlubGluZS5hcnJhbmdlbWVudCA9IHZhbHVlO1xuICAgIH1cbiAgICBsb2FkKGRhdGEpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoZGF0YSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmRyYXcubG9hZChkYXRhLmRyYXcpO1xuICAgICAgICAgICAgY29uc3QgaW5saW5lID0gKF9hID0gZGF0YS5pbmxpbmUpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IHtcbiAgICAgICAgICAgICAgICBhcnJhbmdlbWVudDogZGF0YS5pbmxpbmVBcnJhbmdlbWVudCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAoaW5saW5lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlubGluZS5sb2FkKGlubGluZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLm1vdmUubG9hZChkYXRhLm1vdmUpO1xuICAgICAgICAgICAgaWYgKGRhdGEuc2NhbGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2NhbGUgPSBkYXRhLnNjYWxlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEudHlwZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50eXBlID0gZGF0YS50eXBlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuZW5hYmxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmVuYWJsZSA9IGRhdGEuZW5hYmxlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbmFibGUgPSB0aGlzLnR5cGUgIT09IEVudW1zXzEuVHlwZS5ub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEudXJsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVybCA9IGRhdGEudXJsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuZGF0YSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBkYXRhLmRhdGEgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhID0gZGF0YS5kYXRhO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhID0gbmV3IExvY2FsU3ZnXzEuTG9jYWxTdmcoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhLmxvYWQoZGF0YS5kYXRhKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5wb3NpdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbiA9ICgwLCBVdGlsc18xLmRlZXBFeHRlbmQpKHt9LCBkYXRhLnBvc2l0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuUG9seWdvbk1hc2sgPSBQb2x5Z29uTWFzaztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/PolygonMask.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/PolygonMask/PolygonMaskInstance.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/PolygonMask/PolygonMaskInstance.js ***! + \*****************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.PolygonMaskInstance = void 0;\nconst Enums_1 = __webpack_require__(/*! ./Enums */ \"./node_modules/tsparticles/Plugins/PolygonMask/Enums/index.js\");\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst PolygonMask_1 = __webpack_require__(/*! ./Options/Classes/PolygonMask */ \"./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/PolygonMask.js\");\nconst Enums_2 = __webpack_require__(/*! ../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst utils_1 = __webpack_require__(/*! ./utils */ \"./node_modules/tsparticles/Plugins/PolygonMask/utils.js\");\nclass PolygonMaskInstance {\n constructor(container) {\n this.container = container;\n this.dimension = {\n height: 0,\n width: 0,\n };\n this.path2DSupported = !!window.Path2D;\n this.options = new PolygonMask_1.PolygonMask();\n this.polygonMaskMoveRadius = this.options.move.radius * container.retina.pixelRatio;\n }\n async initAsync(options) {\n this.options.load(options === null || options === void 0 ? void 0 : options.polygon);\n const polygonMaskOptions = this.options;\n this.polygonMaskMoveRadius = polygonMaskOptions.move.radius * this.container.retina.pixelRatio;\n if (polygonMaskOptions.enable) {\n await this.initRawData();\n }\n }\n resize() {\n const container = this.container;\n const options = this.options;\n if (!(options.enable && options.type !== Enums_1.Type.none)) {\n return;\n }\n if (this.redrawTimeout) {\n clearTimeout(this.redrawTimeout);\n }\n this.redrawTimeout = window.setTimeout(async () => {\n await this.initRawData(true);\n container.particles.redraw();\n }, 250);\n }\n stop() {\n delete this.raw;\n delete this.paths;\n }\n particlesInitialization() {\n const options = this.options;\n if (options.enable &&\n options.type === Enums_1.Type.inline &&\n (options.inline.arrangement === Enums_1.InlineArrangement.onePerPoint ||\n options.inline.arrangement === Enums_1.InlineArrangement.perPoint)) {\n this.drawPoints();\n return true;\n }\n return false;\n }\n particlePosition(position) {\n var _a, _b;\n const options = this.options;\n if (!(options.enable && ((_b = (_a = this.raw) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) > 0)) {\n return;\n }\n return (0, Utils_1.deepExtend)({}, position ? position : this.randomPoint());\n }\n particleBounce(particle, delta, direction) {\n return this.polygonBounce(particle, delta, direction);\n }\n clickPositionValid(position) {\n const options = this.options;\n return (options.enable &&\n options.type !== Enums_1.Type.none &&\n options.type !== Enums_1.Type.inline &&\n this.checkInsidePolygon(position));\n }\n draw(context) {\n var _a;\n if (!((_a = this.paths) === null || _a === void 0 ? void 0 : _a.length)) {\n return;\n }\n const options = this.options;\n const polygonDraw = options.draw;\n if (!(options.enable && polygonDraw.enable)) {\n return;\n }\n const rawData = this.raw;\n for (const path of this.paths) {\n const path2d = path.path2d;\n const path2dSupported = this.path2DSupported;\n if (!context) {\n continue;\n }\n if (path2dSupported && path2d && this.offset) {\n (0, utils_1.drawPolygonMaskPath)(context, path2d, polygonDraw.stroke, this.offset);\n }\n else if (rawData) {\n (0, utils_1.drawPolygonMask)(context, rawData, polygonDraw.stroke);\n }\n }\n }\n polygonBounce(particle, _delta, direction) {\n const options = this.options;\n if (!this.raw || !options.enable || direction !== Enums_2.OutModeDirection.top) {\n return false;\n }\n if (options.type === Enums_1.Type.inside || options.type === Enums_1.Type.outside) {\n let closest, dx, dy;\n const pos = particle.getPosition(), radius = particle.getRadius();\n for (let i = 0, j = this.raw.length - 1; i < this.raw.length; j = i++) {\n const pi = this.raw[i], pj = this.raw[j];\n closest = (0, utils_1.calcClosestPtOnSegment)(pi, pj, pos);\n const dist = (0, Utils_1.getDistances)(pos, closest);\n [dx, dy] = [dist.dx, dist.dy];\n if (dist.distance < radius) {\n (0, utils_1.segmentBounce)(pi, pj, particle.velocity);\n return true;\n }\n }\n if (closest && dx !== undefined && dy !== undefined && !this.checkInsidePolygon(pos)) {\n const factor = { x: 1, y: 1 };\n if (particle.position.x >= closest.x) {\n factor.x = -1;\n }\n if (particle.position.y >= closest.y) {\n factor.y = -1;\n }\n particle.position.x = closest.x + radius * 2 * factor.x;\n particle.position.y = closest.y + radius * 2 * factor.y;\n particle.velocity.mult(-1);\n return true;\n }\n }\n else if (options.type === Enums_1.Type.inline && particle.initialPosition) {\n const dist = (0, Utils_1.getDistance)(particle.initialPosition, particle.getPosition());\n if (dist > this.polygonMaskMoveRadius) {\n particle.velocity.x = particle.velocity.y / 2 - particle.velocity.x;\n particle.velocity.y = particle.velocity.x / 2 - particle.velocity.y;\n return true;\n }\n }\n return false;\n }\n checkInsidePolygon(position) {\n var _a, _b;\n const container = this.container;\n const options = this.options;\n if (!options.enable || options.type === Enums_1.Type.none || options.type === Enums_1.Type.inline) {\n return true;\n }\n if (!this.raw) {\n throw new Error(Utils_1.Constants.noPolygonFound);\n }\n const canvasSize = container.canvas.size;\n const x = (_a = position === null || position === void 0 ? void 0 : position.x) !== null && _a !== void 0 ? _a : Math.random() * canvasSize.width;\n const y = (_b = position === null || position === void 0 ? void 0 : position.y) !== null && _b !== void 0 ? _b : Math.random() * canvasSize.height;\n let inside = false;\n for (let i = 0, j = this.raw.length - 1; i < this.raw.length; j = i++) {\n const pi = this.raw[i];\n const pj = this.raw[j];\n const intersect = pi.y > y !== pj.y > y && x < ((pj.x - pi.x) * (y - pi.y)) / (pj.y - pi.y) + pi.x;\n if (intersect) {\n inside = !inside;\n }\n }\n return options.type === Enums_1.Type.inside ? inside : options.type === Enums_1.Type.outside ? !inside : false;\n }\n parseSvgPath(xml, force) {\n var _a, _b, _c;\n const forceDownload = force !== null && force !== void 0 ? force : false;\n if (this.paths !== undefined && !forceDownload) {\n return this.raw;\n }\n const container = this.container;\n const options = this.options;\n const parser = new DOMParser();\n const doc = parser.parseFromString(xml, \"image/svg+xml\");\n const svg = doc.getElementsByTagName(\"svg\")[0];\n let svgPaths = svg.getElementsByTagName(\"path\");\n if (!svgPaths.length) {\n svgPaths = doc.getElementsByTagName(\"path\");\n }\n this.paths = [];\n for (let i = 0; i < svgPaths.length; i++) {\n const path = svgPaths.item(i);\n if (path) {\n this.paths.push({\n element: path,\n length: path.getTotalLength(),\n });\n }\n }\n const pxRatio = container.retina.pixelRatio;\n const scale = options.scale / pxRatio;\n this.dimension.width = parseFloat((_a = svg.getAttribute(\"width\")) !== null && _a !== void 0 ? _a : \"0\") * scale;\n this.dimension.height = parseFloat((_b = svg.getAttribute(\"height\")) !== null && _b !== void 0 ? _b : \"0\") * scale;\n const position = (_c = options.position) !== null && _c !== void 0 ? _c : {\n x: 50,\n y: 50,\n };\n this.offset = {\n x: (container.canvas.size.width * position.x) / (100 * pxRatio) - this.dimension.width / 2,\n y: (container.canvas.size.height * position.y) / (100 * pxRatio) - this.dimension.height / 2,\n };\n return (0, utils_1.parsePaths)(this.paths, scale, this.offset);\n }\n async downloadSvgPath(svgUrl, force) {\n const options = this.options;\n const url = svgUrl || options.url;\n const forceDownload = force !== null && force !== void 0 ? force : false;\n if (!url || (this.paths !== undefined && !forceDownload)) {\n return this.raw;\n }\n const req = await fetch(url);\n if (!req.ok) {\n throw new Error(\"tsParticles Error - Error occurred during polygon mask download\");\n }\n return this.parseSvgPath(await req.text(), force);\n }\n drawPoints() {\n if (!this.raw) {\n return;\n }\n for (const item of this.raw) {\n this.container.particles.addParticle({\n x: item.x,\n y: item.y,\n });\n }\n }\n randomPoint() {\n const container = this.container;\n const options = this.options;\n let position;\n if (options.type === Enums_1.Type.inline) {\n switch (options.inline.arrangement) {\n case Enums_1.InlineArrangement.randomPoint:\n position = this.getRandomPoint();\n break;\n case Enums_1.InlineArrangement.randomLength:\n position = this.getRandomPointByLength();\n break;\n case Enums_1.InlineArrangement.equidistant:\n position = this.getEquidistantPointByIndex(container.particles.count);\n break;\n case Enums_1.InlineArrangement.onePerPoint:\n case Enums_1.InlineArrangement.perPoint:\n default:\n position = this.getPointByIndex(container.particles.count);\n }\n }\n else {\n position = {\n x: Math.random() * container.canvas.size.width,\n y: Math.random() * container.canvas.size.height,\n };\n }\n if (this.checkInsidePolygon(position)) {\n return position;\n }\n else {\n return this.randomPoint();\n }\n }\n getRandomPoint() {\n if (!this.raw || !this.raw.length) {\n throw new Error(Utils_1.Constants.noPolygonDataLoaded);\n }\n const coords = (0, Utils_1.itemFromArray)(this.raw);\n return {\n x: coords.x,\n y: coords.y,\n };\n }\n getRandomPointByLength() {\n var _a, _b, _c;\n const options = this.options;\n if (!this.raw || !this.raw.length || !((_a = this.paths) === null || _a === void 0 ? void 0 : _a.length)) {\n throw new Error(Utils_1.Constants.noPolygonDataLoaded);\n }\n const path = (0, Utils_1.itemFromArray)(this.paths);\n const distance = Math.floor(Math.random() * path.length) + 1;\n const point = path.element.getPointAtLength(distance);\n return {\n x: point.x * options.scale + (((_b = this.offset) === null || _b === void 0 ? void 0 : _b.x) || 0),\n y: point.y * options.scale + (((_c = this.offset) === null || _c === void 0 ? void 0 : _c.y) || 0),\n };\n }\n getEquidistantPointByIndex(index) {\n var _a, _b, _c, _d, _e, _f, _g;\n const options = this.container.actualOptions;\n const polygonMaskOptions = this.options;\n if (!this.raw || !this.raw.length || !((_a = this.paths) === null || _a === void 0 ? void 0 : _a.length))\n throw new Error(Utils_1.Constants.noPolygonDataLoaded);\n let offset = 0;\n let point;\n const totalLength = this.paths.reduce((tot, path) => tot + path.length, 0);\n const distance = totalLength / options.particles.number.value;\n for (const path of this.paths) {\n const pathDistance = distance * index - offset;\n if (pathDistance <= path.length) {\n point = path.element.getPointAtLength(pathDistance);\n break;\n }\n else {\n offset += path.length;\n }\n }\n return {\n x: ((_b = point === null || point === void 0 ? void 0 : point.x) !== null && _b !== void 0 ? _b : 0) * polygonMaskOptions.scale + ((_d = (_c = this.offset) === null || _c === void 0 ? void 0 : _c.x) !== null && _d !== void 0 ? _d : 0),\n y: ((_e = point === null || point === void 0 ? void 0 : point.y) !== null && _e !== void 0 ? _e : 0) * polygonMaskOptions.scale + ((_g = (_f = this.offset) === null || _f === void 0 ? void 0 : _f.y) !== null && _g !== void 0 ? _g : 0),\n };\n }\n getPointByIndex(index) {\n if (!this.raw || !this.raw.length) {\n throw new Error(Utils_1.Constants.noPolygonDataLoaded);\n }\n const coords = this.raw[index % this.raw.length];\n return {\n x: coords.x,\n y: coords.y,\n };\n }\n createPath2D() {\n var _a, _b;\n const options = this.options;\n if (!this.path2DSupported || !((_a = this.paths) === null || _a === void 0 ? void 0 : _a.length)) {\n return;\n }\n for (const path of this.paths) {\n const pathData = (_b = path.element) === null || _b === void 0 ? void 0 : _b.getAttribute(\"d\");\n if (pathData) {\n const path2d = new Path2D(pathData);\n const matrix = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\").createSVGMatrix();\n const finalPath = new Path2D();\n const transform = matrix.scale(options.scale);\n if (finalPath.addPath) {\n finalPath.addPath(path2d, transform);\n path.path2d = finalPath;\n }\n else {\n delete path.path2d;\n }\n }\n else {\n delete path.path2d;\n }\n if (path.path2d || !this.raw) {\n continue;\n }\n path.path2d = new Path2D();\n path.path2d.moveTo(this.raw[0].x, this.raw[0].y);\n this.raw.forEach((pos, i) => {\n var _a;\n if (i > 0) {\n (_a = path.path2d) === null || _a === void 0 ? void 0 : _a.lineTo(pos.x, pos.y);\n }\n });\n path.path2d.closePath();\n }\n }\n async initRawData(force) {\n const options = this.options;\n if (options.url) {\n this.raw = await this.downloadSvgPath(options.url, force);\n }\n else if (options.data) {\n const data = options.data;\n let svg;\n if (typeof data !== \"string\") {\n const path = data.path instanceof Array\n ? data.path.map((t) => `<path d=\"${t}\" />`).join(\"\")\n : `<path d=\"${data.path}\" />`;\n const namespaces = 'xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"';\n svg = `<svg ${namespaces} width=\"${data.size.width}\" height=\"${data.size.height}\">${path}</svg>`;\n }\n else {\n svg = data;\n }\n this.raw = this.parseSvgPath(svg, force);\n }\n this.createPath2D();\n }\n}\nexports.PolygonMaskInstance = PolygonMaskInstance;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9Qb2x5Z29uTWFzay9Qb2x5Z29uTWFza0luc3RhbmNlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELDJCQUEyQjtBQUMzQixnQkFBZ0IsbUJBQU8sQ0FBQyw4RUFBUztBQUNqQyxnQkFBZ0IsbUJBQU8sQ0FBQyw4REFBYTtBQUNyQyxzQkFBc0IsbUJBQU8sQ0FBQyxvSEFBK0I7QUFDN0QsZ0JBQWdCLG1CQUFPLENBQUMsOERBQWE7QUFDckMsZ0JBQWdCLG1CQUFPLENBQUMsd0VBQVM7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5Q0FBeUM7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFEQUFxRCxxQkFBcUI7QUFDMUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUM7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaURBQWlELHFCQUFxQjtBQUN0RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixxQkFBcUI7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1REFBdUQsRUFBRTtBQUN6RCxrQ0FBa0MsVUFBVTtBQUM1QztBQUNBLDhCQUE4QixZQUFZLFNBQVMsZ0JBQWdCLFlBQVksaUJBQWlCLElBQUksS0FBSztBQUN6RztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQkFBMkIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1BsdWdpbnMvUG9seWdvbk1hc2svUG9seWdvbk1hc2tJbnN0YW5jZS5qcz81NjJhIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Qb2x5Z29uTWFza0luc3RhbmNlID0gdm9pZCAwO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuL0VudW1zXCIpO1xuY29uc3QgVXRpbHNfMSA9IHJlcXVpcmUoXCIuLi8uLi9VdGlsc1wiKTtcbmNvbnN0IFBvbHlnb25NYXNrXzEgPSByZXF1aXJlKFwiLi9PcHRpb25zL0NsYXNzZXMvUG9seWdvbk1hc2tcIik7XG5jb25zdCBFbnVtc18yID0gcmVxdWlyZShcIi4uLy4uL0VudW1zXCIpO1xuY29uc3QgdXRpbHNfMSA9IHJlcXVpcmUoXCIuL3V0aWxzXCIpO1xuY2xhc3MgUG9seWdvbk1hc2tJbnN0YW5jZSB7XG4gICAgY29uc3RydWN0b3IoY29udGFpbmVyKSB7XG4gICAgICAgIHRoaXMuY29udGFpbmVyID0gY29udGFpbmVyO1xuICAgICAgICB0aGlzLmRpbWVuc2lvbiA9IHtcbiAgICAgICAgICAgIGhlaWdodDogMCxcbiAgICAgICAgICAgIHdpZHRoOiAwLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLnBhdGgyRFN1cHBvcnRlZCA9ICEhd2luZG93LlBhdGgyRDtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gbmV3IFBvbHlnb25NYXNrXzEuUG9seWdvbk1hc2soKTtcbiAgICAgICAgdGhpcy5wb2x5Z29uTWFza01vdmVSYWRpdXMgPSB0aGlzLm9wdGlvbnMubW92ZS5yYWRpdXMgKiBjb250YWluZXIucmV0aW5hLnBpeGVsUmF0aW87XG4gICAgfVxuICAgIGFzeW5jIGluaXRBc3luYyhvcHRpb25zKSB7XG4gICAgICAgIHRoaXMub3B0aW9ucy5sb2FkKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5wb2x5Z29uKTtcbiAgICAgICAgY29uc3QgcG9seWdvbk1hc2tPcHRpb25zID0gdGhpcy5vcHRpb25zO1xuICAgICAgICB0aGlzLnBvbHlnb25NYXNrTW92ZVJhZGl1cyA9IHBvbHlnb25NYXNrT3B0aW9ucy5tb3ZlLnJhZGl1cyAqIHRoaXMuY29udGFpbmVyLnJldGluYS5waXhlbFJhdGlvO1xuICAgICAgICBpZiAocG9seWdvbk1hc2tPcHRpb25zLmVuYWJsZSkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5pbml0UmF3RGF0YSgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJlc2l6ZSgpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXI7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgIGlmICghKG9wdGlvbnMuZW5hYmxlICYmIG9wdGlvbnMudHlwZSAhPT0gRW51bXNfMS5UeXBlLm5vbmUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucmVkcmF3VGltZW91dCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMucmVkcmF3VGltZW91dCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZWRyYXdUaW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5pbml0UmF3RGF0YSh0cnVlKTtcbiAgICAgICAgICAgIGNvbnRhaW5lci5wYXJ0aWNsZXMucmVkcmF3KCk7XG4gICAgICAgIH0sIDI1MCk7XG4gICAgfVxuICAgIHN0b3AoKSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLnJhdztcbiAgICAgICAgZGVsZXRlIHRoaXMucGF0aHM7XG4gICAgfVxuICAgIHBhcnRpY2xlc0luaXRpYWxpemF0aW9uKCkge1xuICAgICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5vcHRpb25zO1xuICAgICAgICBpZiAob3B0aW9ucy5lbmFibGUgJiZcbiAgICAgICAgICAgIG9wdGlvbnMudHlwZSA9PT0gRW51bXNfMS5UeXBlLmlubGluZSAmJlxuICAgICAgICAgICAgKG9wdGlvbnMuaW5saW5lLmFycmFuZ2VtZW50ID09PSBFbnVtc18xLklubGluZUFycmFuZ2VtZW50Lm9uZVBlclBvaW50IHx8XG4gICAgICAgICAgICAgICAgb3B0aW9ucy5pbmxpbmUuYXJyYW5nZW1lbnQgPT09IEVudW1zXzEuSW5saW5lQXJyYW5nZW1lbnQucGVyUG9pbnQpKSB7XG4gICAgICAgICAgICB0aGlzLmRyYXdQb2ludHMoKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcGFydGljbGVQb3NpdGlvbihwb3NpdGlvbikge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5vcHRpb25zO1xuICAgICAgICBpZiAoIShvcHRpb25zLmVuYWJsZSAmJiAoKF9iID0gKF9hID0gdGhpcy5yYXcpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5sZW5ndGgpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IDApID4gMCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKDAsIFV0aWxzXzEuZGVlcEV4dGVuZCkoe30sIHBvc2l0aW9uID8gcG9zaXRpb24gOiB0aGlzLnJhbmRvbVBvaW50KCkpO1xuICAgIH1cbiAgICBwYXJ0aWNsZUJvdW5jZShwYXJ0aWNsZSwgZGVsdGEsIGRpcmVjdGlvbikge1xuICAgICAgICByZXR1cm4gdGhpcy5wb2x5Z29uQm91bmNlKHBhcnRpY2xlLCBkZWx0YSwgZGlyZWN0aW9uKTtcbiAgICB9XG4gICAgY2xpY2tQb3NpdGlvblZhbGlkKHBvc2l0aW9uKSB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgIHJldHVybiAob3B0aW9ucy5lbmFibGUgJiZcbiAgICAgICAgICAgIG9wdGlvbnMudHlwZSAhPT0gRW51bXNfMS5UeXBlLm5vbmUgJiZcbiAgICAgICAgICAgIG9wdGlvbnMudHlwZSAhPT0gRW51bXNfMS5UeXBlLmlubGluZSAmJlxuICAgICAgICAgICAgdGhpcy5jaGVja0luc2lkZVBvbHlnb24ocG9zaXRpb24pKTtcbiAgICB9XG4gICAgZHJhdyhjb250ZXh0KSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKCEoKF9hID0gdGhpcy5wYXRocykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmxlbmd0aCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5vcHRpb25zO1xuICAgICAgICBjb25zdCBwb2x5Z29uRHJhdyA9IG9wdGlvbnMuZHJhdztcbiAgICAgICAgaWYgKCEob3B0aW9ucy5lbmFibGUgJiYgcG9seWdvbkRyYXcuZW5hYmxlKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJhd0RhdGEgPSB0aGlzLnJhdztcbiAgICAgICAgZm9yIChjb25zdCBwYXRoIG9mIHRoaXMucGF0aHMpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhdGgyZCA9IHBhdGgucGF0aDJkO1xuICAgICAgICAgICAgY29uc3QgcGF0aDJkU3VwcG9ydGVkID0gdGhpcy5wYXRoMkRTdXBwb3J0ZWQ7XG4gICAgICAgICAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwYXRoMmRTdXBwb3J0ZWQgJiYgcGF0aDJkICYmIHRoaXMub2Zmc2V0KSB7XG4gICAgICAgICAgICAgICAgKDAsIHV0aWxzXzEuZHJhd1BvbHlnb25NYXNrUGF0aCkoY29udGV4dCwgcGF0aDJkLCBwb2x5Z29uRHJhdy5zdHJva2UsIHRoaXMub2Zmc2V0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHJhd0RhdGEpIHtcbiAgICAgICAgICAgICAgICAoMCwgdXRpbHNfMS5kcmF3UG9seWdvbk1hc2spKGNvbnRleHQsIHJhd0RhdGEsIHBvbHlnb25EcmF3LnN0cm9rZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcG9seWdvbkJvdW5jZShwYXJ0aWNsZSwgX2RlbHRhLCBkaXJlY3Rpb24pIHtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgICAgICAgaWYgKCF0aGlzLnJhdyB8fCAhb3B0aW9ucy5lbmFibGUgfHwgZGlyZWN0aW9uICE9PSBFbnVtc18yLk91dE1vZGVEaXJlY3Rpb24udG9wKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnMudHlwZSA9PT0gRW51bXNfMS5UeXBlLmluc2lkZSB8fCBvcHRpb25zLnR5cGUgPT09IEVudW1zXzEuVHlwZS5vdXRzaWRlKSB7XG4gICAgICAgICAgICBsZXQgY2xvc2VzdCwgZHgsIGR5O1xuICAgICAgICAgICAgY29uc3QgcG9zID0gcGFydGljbGUuZ2V0UG9zaXRpb24oKSwgcmFkaXVzID0gcGFydGljbGUuZ2V0UmFkaXVzKCk7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMCwgaiA9IHRoaXMucmF3Lmxlbmd0aCAtIDE7IGkgPCB0aGlzLnJhdy5sZW5ndGg7IGogPSBpKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwaSA9IHRoaXMucmF3W2ldLCBwaiA9IHRoaXMucmF3W2pdO1xuICAgICAgICAgICAgICAgIGNsb3Nlc3QgPSAoMCwgdXRpbHNfMS5jYWxjQ2xvc2VzdFB0T25TZWdtZW50KShwaSwgcGosIHBvcyk7XG4gICAgICAgICAgICAgICAgY29uc3QgZGlzdCA9ICgwLCBVdGlsc18xLmdldERpc3RhbmNlcykocG9zLCBjbG9zZXN0KTtcbiAgICAgICAgICAgICAgICBbZHgsIGR5XSA9IFtkaXN0LmR4LCBkaXN0LmR5XTtcbiAgICAgICAgICAgICAgICBpZiAoZGlzdC5kaXN0YW5jZSA8IHJhZGl1cykge1xuICAgICAgICAgICAgICAgICAgICAoMCwgdXRpbHNfMS5zZWdtZW50Qm91bmNlKShwaSwgcGosIHBhcnRpY2xlLnZlbG9jaXR5KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGNsb3Nlc3QgJiYgZHggIT09IHVuZGVmaW5lZCAmJiBkeSAhPT0gdW5kZWZpbmVkICYmICF0aGlzLmNoZWNrSW5zaWRlUG9seWdvbihwb3MpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmFjdG9yID0geyB4OiAxLCB5OiAxIH07XG4gICAgICAgICAgICAgICAgaWYgKHBhcnRpY2xlLnBvc2l0aW9uLnggPj0gY2xvc2VzdC54KSB7XG4gICAgICAgICAgICAgICAgICAgIGZhY3Rvci54ID0gLTE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChwYXJ0aWNsZS5wb3NpdGlvbi55ID49IGNsb3Nlc3QueSkge1xuICAgICAgICAgICAgICAgICAgICBmYWN0b3IueSA9IC0xO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwYXJ0aWNsZS5wb3NpdGlvbi54ID0gY2xvc2VzdC54ICsgcmFkaXVzICogMiAqIGZhY3Rvci54O1xuICAgICAgICAgICAgICAgIHBhcnRpY2xlLnBvc2l0aW9uLnkgPSBjbG9zZXN0LnkgKyByYWRpdXMgKiAyICogZmFjdG9yLnk7XG4gICAgICAgICAgICAgICAgcGFydGljbGUudmVsb2NpdHkubXVsdCgtMSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAob3B0aW9ucy50eXBlID09PSBFbnVtc18xLlR5cGUuaW5saW5lICYmIHBhcnRpY2xlLmluaXRpYWxQb3NpdGlvbikge1xuICAgICAgICAgICAgY29uc3QgZGlzdCA9ICgwLCBVdGlsc18xLmdldERpc3RhbmNlKShwYXJ0aWNsZS5pbml0aWFsUG9zaXRpb24sIHBhcnRpY2xlLmdldFBvc2l0aW9uKCkpO1xuICAgICAgICAgICAgaWYgKGRpc3QgPiB0aGlzLnBvbHlnb25NYXNrTW92ZVJhZGl1cykge1xuICAgICAgICAgICAgICAgIHBhcnRpY2xlLnZlbG9jaXR5LnggPSBwYXJ0aWNsZS52ZWxvY2l0eS55IC8gMiAtIHBhcnRpY2xlLnZlbG9jaXR5Lng7XG4gICAgICAgICAgICAgICAgcGFydGljbGUudmVsb2NpdHkueSA9IHBhcnRpY2xlLnZlbG9jaXR5LnggLyAyIC0gcGFydGljbGUudmVsb2NpdHkueTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNoZWNrSW5zaWRlUG9seWdvbihwb3NpdGlvbikge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgICAgICAgaWYgKCFvcHRpb25zLmVuYWJsZSB8fCBvcHRpb25zLnR5cGUgPT09IEVudW1zXzEuVHlwZS5ub25lIHx8IG9wdGlvbnMudHlwZSA9PT0gRW51bXNfMS5UeXBlLmlubGluZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLnJhdykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFV0aWxzXzEuQ29uc3RhbnRzLm5vUG9seWdvbkZvdW5kKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjYW52YXNTaXplID0gY29udGFpbmVyLmNhbnZhcy5zaXplO1xuICAgICAgICBjb25zdCB4ID0gKF9hID0gcG9zaXRpb24gPT09IG51bGwgfHwgcG9zaXRpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBvc2l0aW9uLngpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IE1hdGgucmFuZG9tKCkgKiBjYW52YXNTaXplLndpZHRoO1xuICAgICAgICBjb25zdCB5ID0gKF9iID0gcG9zaXRpb24gPT09IG51bGwgfHwgcG9zaXRpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBvc2l0aW9uLnkpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IE1hdGgucmFuZG9tKCkgKiBjYW52YXNTaXplLmhlaWdodDtcbiAgICAgICAgbGV0IGluc2lkZSA9IGZhbHNlO1xuICAgICAgICBmb3IgKGxldCBpID0gMCwgaiA9IHRoaXMucmF3Lmxlbmd0aCAtIDE7IGkgPCB0aGlzLnJhdy5sZW5ndGg7IGogPSBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHBpID0gdGhpcy5yYXdbaV07XG4gICAgICAgICAgICBjb25zdCBwaiA9IHRoaXMucmF3W2pdO1xuICAgICAgICAgICAgY29uc3QgaW50ZXJzZWN0ID0gcGkueSA+IHkgIT09IHBqLnkgPiB5ICYmIHggPCAoKHBqLnggLSBwaS54KSAqICh5IC0gcGkueSkpIC8gKHBqLnkgLSBwaS55KSArIHBpLng7XG4gICAgICAgICAgICBpZiAoaW50ZXJzZWN0KSB7XG4gICAgICAgICAgICAgICAgaW5zaWRlID0gIWluc2lkZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3B0aW9ucy50eXBlID09PSBFbnVtc18xLlR5cGUuaW5zaWRlID8gaW5zaWRlIDogb3B0aW9ucy50eXBlID09PSBFbnVtc18xLlR5cGUub3V0c2lkZSA/ICFpbnNpZGUgOiBmYWxzZTtcbiAgICB9XG4gICAgcGFyc2VTdmdQYXRoKHhtbCwgZm9yY2UpIHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgIGNvbnN0IGZvcmNlRG93bmxvYWQgPSBmb3JjZSAhPT0gbnVsbCAmJiBmb3JjZSAhPT0gdm9pZCAwID8gZm9yY2UgOiBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMucGF0aHMgIT09IHVuZGVmaW5lZCAmJiAhZm9yY2VEb3dubG9hZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmF3O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyO1xuICAgICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5vcHRpb25zO1xuICAgICAgICBjb25zdCBwYXJzZXIgPSBuZXcgRE9NUGFyc2VyKCk7XG4gICAgICAgIGNvbnN0IGRvYyA9IHBhcnNlci5wYXJzZUZyb21TdHJpbmcoeG1sLCBcImltYWdlL3N2Zyt4bWxcIik7XG4gICAgICAgIGNvbnN0IHN2ZyA9IGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZShcInN2Z1wiKVswXTtcbiAgICAgICAgbGV0IHN2Z1BhdGhzID0gc3ZnLmdldEVsZW1lbnRzQnlUYWdOYW1lKFwicGF0aFwiKTtcbiAgICAgICAgaWYgKCFzdmdQYXRocy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHN2Z1BhdGhzID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKFwicGF0aFwiKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnBhdGhzID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3ZnUGF0aHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHBhdGggPSBzdmdQYXRocy5pdGVtKGkpO1xuICAgICAgICAgICAgaWYgKHBhdGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBhdGhzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiBwYXRoLFxuICAgICAgICAgICAgICAgICAgICBsZW5ndGg6IHBhdGguZ2V0VG90YWxMZW5ndGgoKSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBweFJhdGlvID0gY29udGFpbmVyLnJldGluYS5waXhlbFJhdGlvO1xuICAgICAgICBjb25zdCBzY2FsZSA9IG9wdGlvbnMuc2NhbGUgLyBweFJhdGlvO1xuICAgICAgICB0aGlzLmRpbWVuc2lvbi53aWR0aCA9IHBhcnNlRmxvYXQoKF9hID0gc3ZnLmdldEF0dHJpYnV0ZShcIndpZHRoXCIpKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBcIjBcIikgKiBzY2FsZTtcbiAgICAgICAgdGhpcy5kaW1lbnNpb24uaGVpZ2h0ID0gcGFyc2VGbG9hdCgoX2IgPSBzdmcuZ2V0QXR0cmlidXRlKFwiaGVpZ2h0XCIpKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBcIjBcIikgKiBzY2FsZTtcbiAgICAgICAgY29uc3QgcG9zaXRpb24gPSAoX2MgPSBvcHRpb25zLnBvc2l0aW9uKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiB7XG4gICAgICAgICAgICB4OiA1MCxcbiAgICAgICAgICAgIHk6IDUwLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLm9mZnNldCA9IHtcbiAgICAgICAgICAgIHg6IChjb250YWluZXIuY2FudmFzLnNpemUud2lkdGggKiBwb3NpdGlvbi54KSAvICgxMDAgKiBweFJhdGlvKSAtIHRoaXMuZGltZW5zaW9uLndpZHRoIC8gMixcbiAgICAgICAgICAgIHk6IChjb250YWluZXIuY2FudmFzLnNpemUuaGVpZ2h0ICogcG9zaXRpb24ueSkgLyAoMTAwICogcHhSYXRpbykgLSB0aGlzLmRpbWVuc2lvbi5oZWlnaHQgLyAyLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gKDAsIHV0aWxzXzEucGFyc2VQYXRocykodGhpcy5wYXRocywgc2NhbGUsIHRoaXMub2Zmc2V0KTtcbiAgICB9XG4gICAgYXN5bmMgZG93bmxvYWRTdmdQYXRoKHN2Z1VybCwgZm9yY2UpIHtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgICAgICAgY29uc3QgdXJsID0gc3ZnVXJsIHx8IG9wdGlvbnMudXJsO1xuICAgICAgICBjb25zdCBmb3JjZURvd25sb2FkID0gZm9yY2UgIT09IG51bGwgJiYgZm9yY2UgIT09IHZvaWQgMCA/IGZvcmNlIDogZmFsc2U7XG4gICAgICAgIGlmICghdXJsIHx8ICh0aGlzLnBhdGhzICE9PSB1bmRlZmluZWQgJiYgIWZvcmNlRG93bmxvYWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yYXc7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVxID0gYXdhaXQgZmV0Y2godXJsKTtcbiAgICAgICAgaWYgKCFyZXEub2spIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcInRzUGFydGljbGVzIEVycm9yIC0gRXJyb3Igb2NjdXJyZWQgZHVyaW5nIHBvbHlnb24gbWFzayBkb3dubG9hZFwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5wYXJzZVN2Z1BhdGgoYXdhaXQgcmVxLnRleHQoKSwgZm9yY2UpO1xuICAgIH1cbiAgICBkcmF3UG9pbnRzKCkge1xuICAgICAgICBpZiAoIXRoaXMucmF3KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMucmF3KSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5wYXJ0aWNsZXMuYWRkUGFydGljbGUoe1xuICAgICAgICAgICAgICAgIHg6IGl0ZW0ueCxcbiAgICAgICAgICAgICAgICB5OiBpdGVtLnksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByYW5kb21Qb2ludCgpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXI7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgIGxldCBwb3NpdGlvbjtcbiAgICAgICAgaWYgKG9wdGlvbnMudHlwZSA9PT0gRW51bXNfMS5UeXBlLmlubGluZSkge1xuICAgICAgICAgICAgc3dpdGNoIChvcHRpb25zLmlubGluZS5hcnJhbmdlbWVudCkge1xuICAgICAgICAgICAgICAgIGNhc2UgRW51bXNfMS5JbmxpbmVBcnJhbmdlbWVudC5yYW5kb21Qb2ludDpcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb24gPSB0aGlzLmdldFJhbmRvbVBvaW50KCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgRW51bXNfMS5JbmxpbmVBcnJhbmdlbWVudC5yYW5kb21MZW5ndGg6XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uID0gdGhpcy5nZXRSYW5kb21Qb2ludEJ5TGVuZ3RoKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgRW51bXNfMS5JbmxpbmVBcnJhbmdlbWVudC5lcXVpZGlzdGFudDpcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb24gPSB0aGlzLmdldEVxdWlkaXN0YW50UG9pbnRCeUluZGV4KGNvbnRhaW5lci5wYXJ0aWNsZXMuY291bnQpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIEVudW1zXzEuSW5saW5lQXJyYW5nZW1lbnQub25lUGVyUG9pbnQ6XG4gICAgICAgICAgICAgICAgY2FzZSBFbnVtc18xLklubGluZUFycmFuZ2VtZW50LnBlclBvaW50OlxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uID0gdGhpcy5nZXRQb2ludEJ5SW5kZXgoY29udGFpbmVyLnBhcnRpY2xlcy5jb3VudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBwb3NpdGlvbiA9IHtcbiAgICAgICAgICAgICAgICB4OiBNYXRoLnJhbmRvbSgpICogY29udGFpbmVyLmNhbnZhcy5zaXplLndpZHRoLFxuICAgICAgICAgICAgICAgIHk6IE1hdGgucmFuZG9tKCkgKiBjb250YWluZXIuY2FudmFzLnNpemUuaGVpZ2h0LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5jaGVja0luc2lkZVBvbHlnb24ocG9zaXRpb24pKSB7XG4gICAgICAgICAgICByZXR1cm4gcG9zaXRpb247XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yYW5kb21Qb2ludCgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldFJhbmRvbVBvaW50KCkge1xuICAgICAgICBpZiAoIXRoaXMucmF3IHx8ICF0aGlzLnJhdy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihVdGlsc18xLkNvbnN0YW50cy5ub1BvbHlnb25EYXRhTG9hZGVkKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb29yZHMgPSAoMCwgVXRpbHNfMS5pdGVtRnJvbUFycmF5KSh0aGlzLnJhdyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB4OiBjb29yZHMueCxcbiAgICAgICAgICAgIHk6IGNvb3Jkcy55LFxuICAgICAgICB9O1xuICAgIH1cbiAgICBnZXRSYW5kb21Qb2ludEJ5TGVuZ3RoKCkge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgICAgICAgaWYgKCF0aGlzLnJhdyB8fCAhdGhpcy5yYXcubGVuZ3RoIHx8ICEoKF9hID0gdGhpcy5wYXRocykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmxlbmd0aCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihVdGlsc18xLkNvbnN0YW50cy5ub1BvbHlnb25EYXRhTG9hZGVkKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYXRoID0gKDAsIFV0aWxzXzEuaXRlbUZyb21BcnJheSkodGhpcy5wYXRocyk7XG4gICAgICAgIGNvbnN0IGRpc3RhbmNlID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogcGF0aC5sZW5ndGgpICsgMTtcbiAgICAgICAgY29uc3QgcG9pbnQgPSBwYXRoLmVsZW1lbnQuZ2V0UG9pbnRBdExlbmd0aChkaXN0YW5jZSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB4OiBwb2ludC54ICogb3B0aW9ucy5zY2FsZSArICgoKF9iID0gdGhpcy5vZmZzZXQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi54KSB8fCAwKSxcbiAgICAgICAgICAgIHk6IHBvaW50LnkgKiBvcHRpb25zLnNjYWxlICsgKCgoX2MgPSB0aGlzLm9mZnNldCkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLnkpIHx8IDApLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBnZXRFcXVpZGlzdGFudFBvaW50QnlJbmRleChpbmRleCkge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2QsIF9lLCBfZiwgX2c7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmNvbnRhaW5lci5hY3R1YWxPcHRpb25zO1xuICAgICAgICBjb25zdCBwb2x5Z29uTWFza09wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgIGlmICghdGhpcy5yYXcgfHwgIXRoaXMucmF3Lmxlbmd0aCB8fCAhKChfYSA9IHRoaXMucGF0aHMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5sZW5ndGgpKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFV0aWxzXzEuQ29uc3RhbnRzLm5vUG9seWdvbkRhdGFMb2FkZWQpO1xuICAgICAgICBsZXQgb2Zmc2V0ID0gMDtcbiAgICAgICAgbGV0IHBvaW50O1xuICAgICAgICBjb25zdCB0b3RhbExlbmd0aCA9IHRoaXMucGF0aHMucmVkdWNlKCh0b3QsIHBhdGgpID0+IHRvdCArIHBhdGgubGVuZ3RoLCAwKTtcbiAgICAgICAgY29uc3QgZGlzdGFuY2UgPSB0b3RhbExlbmd0aCAvIG9wdGlvbnMucGFydGljbGVzLm51bWJlci52YWx1ZTtcbiAgICAgICAgZm9yIChjb25zdCBwYXRoIG9mIHRoaXMucGF0aHMpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhdGhEaXN0YW5jZSA9IGRpc3RhbmNlICogaW5kZXggLSBvZmZzZXQ7XG4gICAgICAgICAgICBpZiAocGF0aERpc3RhbmNlIDw9IHBhdGgubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcG9pbnQgPSBwYXRoLmVsZW1lbnQuZ2V0UG9pbnRBdExlbmd0aChwYXRoRGlzdGFuY2UpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgb2Zmc2V0ICs9IHBhdGgubGVuZ3RoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB4OiAoKF9iID0gcG9pbnQgPT09IG51bGwgfHwgcG9pbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBvaW50LngpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IDApICogcG9seWdvbk1hc2tPcHRpb25zLnNjYWxlICsgKChfZCA9IChfYyA9IHRoaXMub2Zmc2V0KSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MueCkgIT09IG51bGwgJiYgX2QgIT09IHZvaWQgMCA/IF9kIDogMCksXG4gICAgICAgICAgICB5OiAoKF9lID0gcG9pbnQgPT09IG51bGwgfHwgcG9pbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBvaW50LnkpICE9PSBudWxsICYmIF9lICE9PSB2b2lkIDAgPyBfZSA6IDApICogcG9seWdvbk1hc2tPcHRpb25zLnNjYWxlICsgKChfZyA9IChfZiA9IHRoaXMub2Zmc2V0KSA9PT0gbnVsbCB8fCBfZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2YueSkgIT09IG51bGwgJiYgX2cgIT09IHZvaWQgMCA/IF9nIDogMCksXG4gICAgICAgIH07XG4gICAgfVxuICAgIGdldFBvaW50QnlJbmRleChpbmRleCkge1xuICAgICAgICBpZiAoIXRoaXMucmF3IHx8ICF0aGlzLnJhdy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihVdGlsc18xLkNvbnN0YW50cy5ub1BvbHlnb25EYXRhTG9hZGVkKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb29yZHMgPSB0aGlzLnJhd1tpbmRleCAlIHRoaXMucmF3Lmxlbmd0aF07XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB4OiBjb29yZHMueCxcbiAgICAgICAgICAgIHk6IGNvb3Jkcy55LFxuICAgICAgICB9O1xuICAgIH1cbiAgICBjcmVhdGVQYXRoMkQoKSB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgIGlmICghdGhpcy5wYXRoMkRTdXBwb3J0ZWQgfHwgISgoX2EgPSB0aGlzLnBhdGhzKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EubGVuZ3RoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgcGF0aCBvZiB0aGlzLnBhdGhzKSB7XG4gICAgICAgICAgICBjb25zdCBwYXRoRGF0YSA9IChfYiA9IHBhdGguZWxlbWVudCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmdldEF0dHJpYnV0ZShcImRcIik7XG4gICAgICAgICAgICBpZiAocGF0aERhdGEpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXRoMmQgPSBuZXcgUGF0aDJEKHBhdGhEYXRhKTtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXRyaXggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLCBcInN2Z1wiKS5jcmVhdGVTVkdNYXRyaXgoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBmaW5hbFBhdGggPSBuZXcgUGF0aDJEKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgdHJhbnNmb3JtID0gbWF0cml4LnNjYWxlKG9wdGlvbnMuc2NhbGUpO1xuICAgICAgICAgICAgICAgIGlmIChmaW5hbFBhdGguYWRkUGF0aCkge1xuICAgICAgICAgICAgICAgICAgICBmaW5hbFBhdGguYWRkUGF0aChwYXRoMmQsIHRyYW5zZm9ybSk7XG4gICAgICAgICAgICAgICAgICAgIHBhdGgucGF0aDJkID0gZmluYWxQYXRoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHBhdGgucGF0aDJkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBwYXRoLnBhdGgyZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwYXRoLnBhdGgyZCB8fCAhdGhpcy5yYXcpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBhdGgucGF0aDJkID0gbmV3IFBhdGgyRCgpO1xuICAgICAgICAgICAgcGF0aC5wYXRoMmQubW92ZVRvKHRoaXMucmF3WzBdLngsIHRoaXMucmF3WzBdLnkpO1xuICAgICAgICAgICAgdGhpcy5yYXcuZm9yRWFjaCgocG9zLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgIGlmIChpID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAoX2EgPSBwYXRoLnBhdGgyZCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmxpbmVUbyhwb3MueCwgcG9zLnkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcGF0aC5wYXRoMmQuY2xvc2VQYXRoKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYXN5bmMgaW5pdFJhd0RhdGEoZm9yY2UpIHtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgICAgICAgaWYgKG9wdGlvbnMudXJsKSB7XG4gICAgICAgICAgICB0aGlzLnJhdyA9IGF3YWl0IHRoaXMuZG93bmxvYWRTdmdQYXRoKG9wdGlvbnMudXJsLCBmb3JjZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAob3B0aW9ucy5kYXRhKSB7XG4gICAgICAgICAgICBjb25zdCBkYXRhID0gb3B0aW9ucy5kYXRhO1xuICAgICAgICAgICAgbGV0IHN2ZztcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZGF0YSAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhdGggPSBkYXRhLnBhdGggaW5zdGFuY2VvZiBBcnJheVxuICAgICAgICAgICAgICAgICAgICA/IGRhdGEucGF0aC5tYXAoKHQpID0+IGA8cGF0aCBkPVwiJHt0fVwiIC8+YCkuam9pbihcIlwiKVxuICAgICAgICAgICAgICAgICAgICA6IGA8cGF0aCBkPVwiJHtkYXRhLnBhdGh9XCIgLz5gO1xuICAgICAgICAgICAgICAgIGNvbnN0IG5hbWVzcGFjZXMgPSAneG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiJztcbiAgICAgICAgICAgICAgICBzdmcgPSBgPHN2ZyAke25hbWVzcGFjZXN9IHdpZHRoPVwiJHtkYXRhLnNpemUud2lkdGh9XCIgaGVpZ2h0PVwiJHtkYXRhLnNpemUuaGVpZ2h0fVwiPiR7cGF0aH08L3N2Zz5gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgc3ZnID0gZGF0YTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMucmF3ID0gdGhpcy5wYXJzZVN2Z1BhdGgoc3ZnLCBmb3JjZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jcmVhdGVQYXRoMkQoKTtcbiAgICB9XG59XG5leHBvcnRzLlBvbHlnb25NYXNrSW5zdGFuY2UgPSBQb2x5Z29uTWFza0luc3RhbmNlO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/PolygonMask/PolygonMaskInstance.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/PolygonMask/pathseg.js": +/*!*****************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/PolygonMask/pathseg.js ***! + \*****************************************************************/ +/***/ (function() { + +"use strict"; +eval("\n(function () {\n \"use strict\";\n try {\n if (typeof window === \"undefined\")\n return;\n if (!(\"SVGPathSeg\" in window)) {\n window.SVGPathSeg = function (type, typeAsLetter, owningPathSegList) {\n this.pathSegType = type;\n this.pathSegTypeAsLetter = typeAsLetter;\n this._owningPathSegList = owningPathSegList;\n };\n window.SVGPathSeg.prototype.classname = \"SVGPathSeg\";\n window.SVGPathSeg.PATHSEG_UNKNOWN = 0;\n window.SVGPathSeg.PATHSEG_CLOSEPATH = 1;\n window.SVGPathSeg.PATHSEG_MOVETO_ABS = 2;\n window.SVGPathSeg.PATHSEG_MOVETO_REL = 3;\n window.SVGPathSeg.PATHSEG_LINETO_ABS = 4;\n window.SVGPathSeg.PATHSEG_LINETO_REL = 5;\n window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS = 6;\n window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL = 7;\n window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS = 8;\n window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL = 9;\n window.SVGPathSeg.PATHSEG_ARC_ABS = 10;\n window.SVGPathSeg.PATHSEG_ARC_REL = 11;\n window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS = 12;\n window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL = 13;\n window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS = 14;\n window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL = 15;\n window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS = 16;\n window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL = 17;\n window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS = 18;\n window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL = 19;\n window.SVGPathSeg.prototype._segmentChanged = function () {\n if (this._owningPathSegList)\n this._owningPathSegList.segmentChanged(this);\n };\n window.SVGPathSegClosePath = function (owningPathSegList) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CLOSEPATH, \"z\", owningPathSegList);\n };\n window.SVGPathSegClosePath.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegClosePath.prototype.toString = function () {\n return \"[object SVGPathSegClosePath]\";\n };\n window.SVGPathSegClosePath.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter;\n };\n window.SVGPathSegClosePath.prototype.clone = function () {\n return new window.SVGPathSegClosePath(undefined);\n };\n window.SVGPathSegMovetoAbs = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_MOVETO_ABS, \"M\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegMovetoAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegMovetoAbs.prototype.toString = function () {\n return \"[object SVGPathSegMovetoAbs]\";\n };\n window.SVGPathSegMovetoAbs.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegMovetoAbs.prototype.clone = function () {\n return new window.SVGPathSegMovetoAbs(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegMovetoAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegMovetoAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegMovetoRel = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_MOVETO_REL, \"m\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegMovetoRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegMovetoRel.prototype.toString = function () {\n return \"[object SVGPathSegMovetoRel]\";\n };\n window.SVGPathSegMovetoRel.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegMovetoRel.prototype.clone = function () {\n return new window.SVGPathSegMovetoRel(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegMovetoRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegMovetoRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegLinetoAbs = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_ABS, \"L\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegLinetoAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoAbs.prototype.toString = function () {\n return \"[object SVGPathSegLinetoAbs]\";\n };\n window.SVGPathSegLinetoAbs.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegLinetoAbs.prototype.clone = function () {\n return new window.SVGPathSegLinetoAbs(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegLinetoAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegLinetoAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegLinetoRel = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_REL, \"l\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegLinetoRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoRel.prototype.toString = function () {\n return \"[object SVGPathSegLinetoRel]\";\n };\n window.SVGPathSegLinetoRel.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegLinetoRel.prototype.clone = function () {\n return new window.SVGPathSegLinetoRel(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegLinetoRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegLinetoRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegCurvetoCubicAbs = function (owningPathSegList, x, y, x1, y1, x2, y2) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS, \"C\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x1 = x1;\n this._y1 = y1;\n this._x2 = x2;\n this._y2 = y2;\n };\n window.SVGPathSegCurvetoCubicAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoCubicAbs.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoCubicAbs]\";\n };\n window.SVGPathSegCurvetoCubicAbs.prototype._asPathString = function () {\n return (this.pathSegTypeAsLetter +\n \" \" +\n this._x1 +\n \" \" +\n this._y1 +\n \" \" +\n this._x2 +\n \" \" +\n this._y2 +\n \" \" +\n this._x +\n \" \" +\n this._y);\n };\n window.SVGPathSegCurvetoCubicAbs.prototype.clone = function () {\n return new window.SVGPathSegCurvetoCubicAbs(undefined, this._x, this._y, this._x1, this._y1, this._x2, this._y2);\n };\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"x1\", {\n get: function () {\n return this._x1;\n },\n set: function (x1) {\n this._x1 = x1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"y1\", {\n get: function () {\n return this._y1;\n },\n set: function (y1) {\n this._y1 = y1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"x2\", {\n get: function () {\n return this._x2;\n },\n set: function (x2) {\n this._x2 = x2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"y2\", {\n get: function () {\n return this._y2;\n },\n set: function (y2) {\n this._y2 = y2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegCurvetoCubicRel = function (owningPathSegList, x, y, x1, y1, x2, y2) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL, \"c\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x1 = x1;\n this._y1 = y1;\n this._x2 = x2;\n this._y2 = y2;\n };\n window.SVGPathSegCurvetoCubicRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoCubicRel.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoCubicRel]\";\n };\n window.SVGPathSegCurvetoCubicRel.prototype._asPathString = function () {\n return (this.pathSegTypeAsLetter +\n \" \" +\n this._x1 +\n \" \" +\n this._y1 +\n \" \" +\n this._x2 +\n \" \" +\n this._y2 +\n \" \" +\n this._x +\n \" \" +\n this._y);\n };\n window.SVGPathSegCurvetoCubicRel.prototype.clone = function () {\n return new window.SVGPathSegCurvetoCubicRel(undefined, this._x, this._y, this._x1, this._y1, this._x2, this._y2);\n };\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"x1\", {\n get: function () {\n return this._x1;\n },\n set: function (x1) {\n this._x1 = x1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"y1\", {\n get: function () {\n return this._y1;\n },\n set: function (y1) {\n this._y1 = y1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"x2\", {\n get: function () {\n return this._x2;\n },\n set: function (x2) {\n this._x2 = x2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"y2\", {\n get: function () {\n return this._y2;\n },\n set: function (y2) {\n this._y2 = y2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegCurvetoQuadraticAbs = function (owningPathSegList, x, y, x1, y1) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS, \"Q\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x1 = x1;\n this._y1 = y1;\n };\n window.SVGPathSegCurvetoQuadraticAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoQuadraticAbs.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoQuadraticAbs]\";\n };\n window.SVGPathSegCurvetoQuadraticAbs.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x1 + \" \" + this._y1 + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegCurvetoQuadraticAbs.prototype.clone = function () {\n return new window.SVGPathSegCurvetoQuadraticAbs(undefined, this._x, this._y, this._x1, this._y1);\n };\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype, \"x1\", {\n get: function () {\n return this._x1;\n },\n set: function (x1) {\n this._x1 = x1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype, \"y1\", {\n get: function () {\n return this._y1;\n },\n set: function (y1) {\n this._y1 = y1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegCurvetoQuadraticRel = function (owningPathSegList, x, y, x1, y1) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL, \"q\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x1 = x1;\n this._y1 = y1;\n };\n window.SVGPathSegCurvetoQuadraticRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoQuadraticRel.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoQuadraticRel]\";\n };\n window.SVGPathSegCurvetoQuadraticRel.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x1 + \" \" + this._y1 + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegCurvetoQuadraticRel.prototype.clone = function () {\n return new window.SVGPathSegCurvetoQuadraticRel(undefined, this._x, this._y, this._x1, this._y1);\n };\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype, \"x1\", {\n get: function () {\n return this._x1;\n },\n set: function (x1) {\n this._x1 = x1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype, \"y1\", {\n get: function () {\n return this._y1;\n },\n set: function (y1) {\n this._y1 = y1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegArcAbs = function (owningPathSegList, x, y, r1, r2, angle, largeArcFlag, sweepFlag) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_ARC_ABS, \"A\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._r1 = r1;\n this._r2 = r2;\n this._angle = angle;\n this._largeArcFlag = largeArcFlag;\n this._sweepFlag = sweepFlag;\n };\n window.SVGPathSegArcAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegArcAbs.prototype.toString = function () {\n return \"[object SVGPathSegArcAbs]\";\n };\n window.SVGPathSegArcAbs.prototype._asPathString = function () {\n return (this.pathSegTypeAsLetter +\n \" \" +\n this._r1 +\n \" \" +\n this._r2 +\n \" \" +\n this._angle +\n \" \" +\n (this._largeArcFlag ? \"1\" : \"0\") +\n \" \" +\n (this._sweepFlag ? \"1\" : \"0\") +\n \" \" +\n this._x +\n \" \" +\n this._y);\n };\n window.SVGPathSegArcAbs.prototype.clone = function () {\n return new window.SVGPathSegArcAbs(undefined, this._x, this._y, this._r1, this._r2, this._angle, this._largeArcFlag, this._sweepFlag);\n };\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"r1\", {\n get: function () {\n return this._r1;\n },\n set: function (r1) {\n this._r1 = r1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"r2\", {\n get: function () {\n return this._r2;\n },\n set: function (r2) {\n this._r2 = r2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"angle\", {\n get: function () {\n return this._angle;\n },\n set: function (angle) {\n this._angle = angle;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"largeArcFlag\", {\n get: function () {\n return this._largeArcFlag;\n },\n set: function (largeArcFlag) {\n this._largeArcFlag = largeArcFlag;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"sweepFlag\", {\n get: function () {\n return this._sweepFlag;\n },\n set: function (sweepFlag) {\n this._sweepFlag = sweepFlag;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegArcRel = function (owningPathSegList, x, y, r1, r2, angle, largeArcFlag, sweepFlag) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_ARC_REL, \"a\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._r1 = r1;\n this._r2 = r2;\n this._angle = angle;\n this._largeArcFlag = largeArcFlag;\n this._sweepFlag = sweepFlag;\n };\n window.SVGPathSegArcRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegArcRel.prototype.toString = function () {\n return \"[object SVGPathSegArcRel]\";\n };\n window.SVGPathSegArcRel.prototype._asPathString = function () {\n return (this.pathSegTypeAsLetter +\n \" \" +\n this._r1 +\n \" \" +\n this._r2 +\n \" \" +\n this._angle +\n \" \" +\n (this._largeArcFlag ? \"1\" : \"0\") +\n \" \" +\n (this._sweepFlag ? \"1\" : \"0\") +\n \" \" +\n this._x +\n \" \" +\n this._y);\n };\n window.SVGPathSegArcRel.prototype.clone = function () {\n return new window.SVGPathSegArcRel(undefined, this._x, this._y, this._r1, this._r2, this._angle, this._largeArcFlag, this._sweepFlag);\n };\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"r1\", {\n get: function () {\n return this._r1;\n },\n set: function (r1) {\n this._r1 = r1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"r2\", {\n get: function () {\n return this._r2;\n },\n set: function (r2) {\n this._r2 = r2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"angle\", {\n get: function () {\n return this._angle;\n },\n set: function (angle) {\n this._angle = angle;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"largeArcFlag\", {\n get: function () {\n return this._largeArcFlag;\n },\n set: function (largeArcFlag) {\n this._largeArcFlag = largeArcFlag;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"sweepFlag\", {\n get: function () {\n return this._sweepFlag;\n },\n set: function (sweepFlag) {\n this._sweepFlag = sweepFlag;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegLinetoHorizontalAbs = function (owningPathSegList, x) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS, \"H\", owningPathSegList);\n this._x = x;\n };\n window.SVGPathSegLinetoHorizontalAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoHorizontalAbs.prototype.toString = function () {\n return \"[object SVGPathSegLinetoHorizontalAbs]\";\n };\n window.SVGPathSegLinetoHorizontalAbs.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x;\n };\n window.SVGPathSegLinetoHorizontalAbs.prototype.clone = function () {\n return new window.SVGPathSegLinetoHorizontalAbs(undefined, this._x);\n };\n Object.defineProperty(window.SVGPathSegLinetoHorizontalAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegLinetoHorizontalRel = function (owningPathSegList, x) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL, \"h\", owningPathSegList);\n this._x = x;\n };\n window.SVGPathSegLinetoHorizontalRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoHorizontalRel.prototype.toString = function () {\n return \"[object SVGPathSegLinetoHorizontalRel]\";\n };\n window.SVGPathSegLinetoHorizontalRel.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x;\n };\n window.SVGPathSegLinetoHorizontalRel.prototype.clone = function () {\n return new window.SVGPathSegLinetoHorizontalRel(undefined, this._x);\n };\n Object.defineProperty(window.SVGPathSegLinetoHorizontalRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegLinetoVerticalAbs = function (owningPathSegList, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS, \"V\", owningPathSegList);\n this._y = y;\n };\n window.SVGPathSegLinetoVerticalAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoVerticalAbs.prototype.toString = function () {\n return \"[object SVGPathSegLinetoVerticalAbs]\";\n };\n window.SVGPathSegLinetoVerticalAbs.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._y;\n };\n window.SVGPathSegLinetoVerticalAbs.prototype.clone = function () {\n return new window.SVGPathSegLinetoVerticalAbs(undefined, this._y);\n };\n Object.defineProperty(window.SVGPathSegLinetoVerticalAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegLinetoVerticalRel = function (owningPathSegList, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL, \"v\", owningPathSegList);\n this._y = y;\n };\n window.SVGPathSegLinetoVerticalRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoVerticalRel.prototype.toString = function () {\n return \"[object SVGPathSegLinetoVerticalRel]\";\n };\n window.SVGPathSegLinetoVerticalRel.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._y;\n };\n window.SVGPathSegLinetoVerticalRel.prototype.clone = function () {\n return new window.SVGPathSegLinetoVerticalRel(undefined, this._y);\n };\n Object.defineProperty(window.SVGPathSegLinetoVerticalRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegCurvetoCubicSmoothAbs = function (owningPathSegList, x, y, x2, y2) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS, \"S\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x2 = x2;\n this._y2 = y2;\n };\n window.SVGPathSegCurvetoCubicSmoothAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoCubicSmoothAbs.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoCubicSmoothAbs]\";\n };\n window.SVGPathSegCurvetoCubicSmoothAbs.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x2 + \" \" + this._y2 + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegCurvetoCubicSmoothAbs.prototype.clone = function () {\n return new window.SVGPathSegCurvetoCubicSmoothAbs(undefined, this._x, this._y, this._x2, this._y2);\n };\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype, \"x2\", {\n get: function () {\n return this._x2;\n },\n set: function (x2) {\n this._x2 = x2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype, \"y2\", {\n get: function () {\n return this._y2;\n },\n set: function (y2) {\n this._y2 = y2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegCurvetoCubicSmoothRel = function (owningPathSegList, x, y, x2, y2) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL, \"s\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x2 = x2;\n this._y2 = y2;\n };\n window.SVGPathSegCurvetoCubicSmoothRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoCubicSmoothRel.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoCubicSmoothRel]\";\n };\n window.SVGPathSegCurvetoCubicSmoothRel.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x2 + \" \" + this._y2 + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegCurvetoCubicSmoothRel.prototype.clone = function () {\n return new window.SVGPathSegCurvetoCubicSmoothRel(undefined, this._x, this._y, this._x2, this._y2);\n };\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype, \"x2\", {\n get: function () {\n return this._x2;\n },\n set: function (x2) {\n this._x2 = x2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype, \"y2\", {\n get: function () {\n return this._y2;\n },\n set: function (y2) {\n this._y2 = y2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegCurvetoQuadraticSmoothAbs = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS, \"T\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoQuadraticSmoothAbs]\";\n };\n window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype.clone = function () {\n return new window.SVGPathSegCurvetoQuadraticSmoothAbs(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegCurvetoQuadraticSmoothRel = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL, \"t\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegCurvetoQuadraticSmoothRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoQuadraticSmoothRel.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoQuadraticSmoothRel]\";\n };\n window.SVGPathSegCurvetoQuadraticSmoothRel.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegCurvetoQuadraticSmoothRel.prototype.clone = function () {\n return new window.SVGPathSegCurvetoQuadraticSmoothRel(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathElement.prototype.createSVGPathSegClosePath = function () {\n return new window.SVGPathSegClosePath(undefined);\n };\n window.SVGPathElement.prototype.createSVGPathSegMovetoAbs = function (x, y) {\n return new window.SVGPathSegMovetoAbs(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegMovetoRel = function (x, y) {\n return new window.SVGPathSegMovetoRel(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoAbs = function (x, y) {\n return new window.SVGPathSegLinetoAbs(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoRel = function (x, y) {\n return new window.SVGPathSegLinetoRel(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicAbs = function (x, y, x1, y1, x2, y2) {\n return new window.SVGPathSegCurvetoCubicAbs(undefined, x, y, x1, y1, x2, y2);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicRel = function (x, y, x1, y1, x2, y2) {\n return new window.SVGPathSegCurvetoCubicRel(undefined, x, y, x1, y1, x2, y2);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticAbs = function (x, y, x1, y1) {\n return new window.SVGPathSegCurvetoQuadraticAbs(undefined, x, y, x1, y1);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticRel = function (x, y, x1, y1) {\n return new window.SVGPathSegCurvetoQuadraticRel(undefined, x, y, x1, y1);\n };\n window.SVGPathElement.prototype.createSVGPathSegArcAbs = function (x, y, r1, r2, angle, largeArcFlag, sweepFlag) {\n return new window.SVGPathSegArcAbs(undefined, x, y, r1, r2, angle, largeArcFlag, sweepFlag);\n };\n window.SVGPathElement.prototype.createSVGPathSegArcRel = function (x, y, r1, r2, angle, largeArcFlag, sweepFlag) {\n return new window.SVGPathSegArcRel(undefined, x, y, r1, r2, angle, largeArcFlag, sweepFlag);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoHorizontalAbs = function (x) {\n return new window.SVGPathSegLinetoHorizontalAbs(undefined, x);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoHorizontalRel = function (x) {\n return new window.SVGPathSegLinetoHorizontalRel(undefined, x);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoVerticalAbs = function (y) {\n return new window.SVGPathSegLinetoVerticalAbs(undefined, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoVerticalRel = function (y) {\n return new window.SVGPathSegLinetoVerticalRel(undefined, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicSmoothAbs = function (x, y, x2, y2) {\n return new window.SVGPathSegCurvetoCubicSmoothAbs(undefined, x, y, x2, y2);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicSmoothRel = function (x, y, x2, y2) {\n return new window.SVGPathSegCurvetoCubicSmoothRel(undefined, x, y, x2, y2);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticSmoothAbs = function (x, y) {\n return new window.SVGPathSegCurvetoQuadraticSmoothAbs(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticSmoothRel = function (x, y) {\n return new window.SVGPathSegCurvetoQuadraticSmoothRel(undefined, x, y);\n };\n if (!(\"getPathSegAtLength\" in window.SVGPathElement.prototype)) {\n window.SVGPathElement.prototype.getPathSegAtLength = function (distance) {\n if (distance === undefined || !isFinite(distance))\n throw \"Invalid arguments.\";\n var measurementElement = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n measurementElement.setAttribute(\"d\", this.getAttribute(\"d\"));\n var lastPathSegment = measurementElement.pathSegList.numberOfItems - 1;\n if (lastPathSegment <= 0)\n return 0;\n do {\n measurementElement.pathSegList.removeItem(lastPathSegment);\n if (distance > measurementElement.getTotalLength())\n break;\n lastPathSegment--;\n } while (lastPathSegment > 0);\n return lastPathSegment;\n };\n }\n }\n if (!(\"SVGPathSegList\" in window) || !(\"appendItem\" in window.SVGPathSegList.prototype)) {\n window.SVGPathSegList = function (pathElement) {\n this._pathElement = pathElement;\n this._list = this._parsePath(this._pathElement.getAttribute(\"d\"));\n this._mutationObserverConfig = { attributes: true, attributeFilter: [\"d\"] };\n this._pathElementMutationObserver = new MutationObserver(this._updateListFromPathMutations.bind(this));\n this._pathElementMutationObserver.observe(this._pathElement, this._mutationObserverConfig);\n };\n window.SVGPathSegList.prototype.classname = \"SVGPathSegList\";\n Object.defineProperty(window.SVGPathSegList.prototype, \"numberOfItems\", {\n get: function () {\n this._checkPathSynchronizedToList();\n return this._list.length;\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegList.prototype, \"length\", {\n get: function () {\n this._checkPathSynchronizedToList();\n return this._list.length;\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathElement.prototype, \"pathSegList\", {\n get: function () {\n if (!this._pathSegList)\n this._pathSegList = new window.SVGPathSegList(this);\n return this._pathSegList;\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathElement.prototype, \"normalizedPathSegList\", {\n get: function () {\n return this.pathSegList;\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathElement.prototype, \"animatedPathSegList\", {\n get: function () {\n return this.pathSegList;\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathElement.prototype, \"animatedNormalizedPathSegList\", {\n get: function () {\n return this.pathSegList;\n },\n enumerable: true,\n });\n window.SVGPathSegList.prototype._checkPathSynchronizedToList = function () {\n this._updateListFromPathMutations(this._pathElementMutationObserver.takeRecords());\n };\n window.SVGPathSegList.prototype._updateListFromPathMutations = function (mutationRecords) {\n if (!this._pathElement)\n return;\n var hasPathMutations = false;\n mutationRecords.forEach(function (record) {\n if (record.attributeName == \"d\")\n hasPathMutations = true;\n });\n if (hasPathMutations)\n this._list = this._parsePath(this._pathElement.getAttribute(\"d\"));\n };\n window.SVGPathSegList.prototype._writeListToPath = function () {\n this._pathElementMutationObserver.disconnect();\n this._pathElement.setAttribute(\"d\", window.SVGPathSegList._pathSegArrayAsString(this._list));\n this._pathElementMutationObserver.observe(this._pathElement, this._mutationObserverConfig);\n };\n window.SVGPathSegList.prototype.segmentChanged = function (pathSeg) {\n this._writeListToPath();\n };\n window.SVGPathSegList.prototype.clear = function () {\n this._checkPathSynchronizedToList();\n this._list.forEach(function (pathSeg) {\n pathSeg._owningPathSegList = null;\n });\n this._list = [];\n this._writeListToPath();\n };\n window.SVGPathSegList.prototype.initialize = function (newItem) {\n this._checkPathSynchronizedToList();\n this._list = [newItem];\n newItem._owningPathSegList = this;\n this._writeListToPath();\n return newItem;\n };\n window.SVGPathSegList.prototype._checkValidIndex = function (index) {\n if (isNaN(index) || index < 0 || index >= this.numberOfItems)\n throw \"INDEX_SIZE_ERR\";\n };\n window.SVGPathSegList.prototype.getItem = function (index) {\n this._checkPathSynchronizedToList();\n this._checkValidIndex(index);\n return this._list[index];\n };\n window.SVGPathSegList.prototype.insertItemBefore = function (newItem, index) {\n this._checkPathSynchronizedToList();\n if (index > this.numberOfItems)\n index = this.numberOfItems;\n if (newItem._owningPathSegList) {\n newItem = newItem.clone();\n }\n this._list.splice(index, 0, newItem);\n newItem._owningPathSegList = this;\n this._writeListToPath();\n return newItem;\n };\n window.SVGPathSegList.prototype.replaceItem = function (newItem, index) {\n this._checkPathSynchronizedToList();\n if (newItem._owningPathSegList) {\n newItem = newItem.clone();\n }\n this._checkValidIndex(index);\n this._list[index] = newItem;\n newItem._owningPathSegList = this;\n this._writeListToPath();\n return newItem;\n };\n window.SVGPathSegList.prototype.removeItem = function (index) {\n this._checkPathSynchronizedToList();\n this._checkValidIndex(index);\n var item = this._list[index];\n this._list.splice(index, 1);\n this._writeListToPath();\n return item;\n };\n window.SVGPathSegList.prototype.appendItem = function (newItem) {\n this._checkPathSynchronizedToList();\n if (newItem._owningPathSegList) {\n newItem = newItem.clone();\n }\n this._list.push(newItem);\n newItem._owningPathSegList = this;\n this._writeListToPath();\n return newItem;\n };\n window.SVGPathSegList._pathSegArrayAsString = function (pathSegArray) {\n var string = \"\";\n var first = true;\n pathSegArray.forEach(function (pathSeg) {\n if (first) {\n first = false;\n string += pathSeg._asPathString();\n }\n else {\n string += \" \" + pathSeg._asPathString();\n }\n });\n return string;\n };\n window.SVGPathSegList.prototype._parsePath = function (string) {\n if (!string || string.length == 0)\n return [];\n var owningPathSegList = this;\n var Builder = function () {\n this.pathSegList = [];\n };\n Builder.prototype.appendSegment = function (pathSeg) {\n this.pathSegList.push(pathSeg);\n };\n var Source = function (string) {\n this._string = string;\n this._currentIndex = 0;\n this._endIndex = this._string.length;\n this._previousCommand = window.SVGPathSeg.PATHSEG_UNKNOWN;\n this._skipOptionalSpaces();\n };\n Source.prototype._isCurrentSpace = function () {\n var character = this._string[this._currentIndex];\n return (character <= \" \" &&\n (character == \" \" || character == \"\\n\" || character == \"\\t\" || character == \"\\r\" || character == \"\\f\"));\n };\n Source.prototype._skipOptionalSpaces = function () {\n while (this._currentIndex < this._endIndex && this._isCurrentSpace())\n this._currentIndex++;\n return this._currentIndex < this._endIndex;\n };\n Source.prototype._skipOptionalSpacesOrDelimiter = function () {\n if (this._currentIndex < this._endIndex &&\n !this._isCurrentSpace() &&\n this._string.charAt(this._currentIndex) != \",\")\n return false;\n if (this._skipOptionalSpaces()) {\n if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) == \",\") {\n this._currentIndex++;\n this._skipOptionalSpaces();\n }\n }\n return this._currentIndex < this._endIndex;\n };\n Source.prototype.hasMoreData = function () {\n return this._currentIndex < this._endIndex;\n };\n Source.prototype.peekSegmentType = function () {\n var lookahead = this._string[this._currentIndex];\n return this._pathSegTypeFromChar(lookahead);\n };\n Source.prototype._pathSegTypeFromChar = function (lookahead) {\n switch (lookahead) {\n case \"Z\":\n case \"z\":\n return window.SVGPathSeg.PATHSEG_CLOSEPATH;\n case \"M\":\n return window.SVGPathSeg.PATHSEG_MOVETO_ABS;\n case \"m\":\n return window.SVGPathSeg.PATHSEG_MOVETO_REL;\n case \"L\":\n return window.SVGPathSeg.PATHSEG_LINETO_ABS;\n case \"l\":\n return window.SVGPathSeg.PATHSEG_LINETO_REL;\n case \"C\":\n return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS;\n case \"c\":\n return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL;\n case \"Q\":\n return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS;\n case \"q\":\n return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL;\n case \"A\":\n return window.SVGPathSeg.PATHSEG_ARC_ABS;\n case \"a\":\n return window.SVGPathSeg.PATHSEG_ARC_REL;\n case \"H\":\n return window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS;\n case \"h\":\n return window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL;\n case \"V\":\n return window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS;\n case \"v\":\n return window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL;\n case \"S\":\n return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS;\n case \"s\":\n return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL;\n case \"T\":\n return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS;\n case \"t\":\n return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL;\n default:\n return window.SVGPathSeg.PATHSEG_UNKNOWN;\n }\n };\n Source.prototype._nextCommandHelper = function (lookahead, previousCommand) {\n if ((lookahead == \"+\" || lookahead == \"-\" || lookahead == \".\" || (lookahead >= \"0\" && lookahead <= \"9\")) &&\n previousCommand != window.SVGPathSeg.PATHSEG_CLOSEPATH) {\n if (previousCommand == window.SVGPathSeg.PATHSEG_MOVETO_ABS)\n return window.SVGPathSeg.PATHSEG_LINETO_ABS;\n if (previousCommand == window.SVGPathSeg.PATHSEG_MOVETO_REL)\n return window.SVGPathSeg.PATHSEG_LINETO_REL;\n return previousCommand;\n }\n return window.SVGPathSeg.PATHSEG_UNKNOWN;\n };\n Source.prototype.initialCommandIsMoveTo = function () {\n if (!this.hasMoreData())\n return true;\n var command = this.peekSegmentType();\n return command == window.SVGPathSeg.PATHSEG_MOVETO_ABS || command == window.SVGPathSeg.PATHSEG_MOVETO_REL;\n };\n Source.prototype._parseNumber = function () {\n var exponent = 0;\n var integer = 0;\n var frac = 1;\n var decimal = 0;\n var sign = 1;\n var expsign = 1;\n var startIndex = this._currentIndex;\n this._skipOptionalSpaces();\n if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) == \"+\")\n this._currentIndex++;\n else if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) == \"-\") {\n this._currentIndex++;\n sign = -1;\n }\n if (this._currentIndex == this._endIndex ||\n ((this._string.charAt(this._currentIndex) < \"0\" || this._string.charAt(this._currentIndex) > \"9\") &&\n this._string.charAt(this._currentIndex) != \".\"))\n return undefined;\n var startIntPartIndex = this._currentIndex;\n while (this._currentIndex < this._endIndex &&\n this._string.charAt(this._currentIndex) >= \"0\" &&\n this._string.charAt(this._currentIndex) <= \"9\")\n this._currentIndex++;\n if (this._currentIndex != startIntPartIndex) {\n var scanIntPartIndex = this._currentIndex - 1;\n var multiplier = 1;\n while (scanIntPartIndex >= startIntPartIndex) {\n integer += multiplier * (this._string.charAt(scanIntPartIndex--) - \"0\");\n multiplier *= 10;\n }\n }\n if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) == \".\") {\n this._currentIndex++;\n if (this._currentIndex >= this._endIndex ||\n this._string.charAt(this._currentIndex) < \"0\" ||\n this._string.charAt(this._currentIndex) > \"9\")\n return undefined;\n while (this._currentIndex < this._endIndex &&\n this._string.charAt(this._currentIndex) >= \"0\" &&\n this._string.charAt(this._currentIndex) <= \"9\") {\n frac *= 10;\n decimal += (this._string.charAt(this._currentIndex) - \"0\") / frac;\n this._currentIndex += 1;\n }\n }\n if (this._currentIndex != startIndex &&\n this._currentIndex + 1 < this._endIndex &&\n (this._string.charAt(this._currentIndex) == \"e\" || this._string.charAt(this._currentIndex) == \"E\") &&\n this._string.charAt(this._currentIndex + 1) != \"x\" &&\n this._string.charAt(this._currentIndex + 1) != \"m\") {\n this._currentIndex++;\n if (this._string.charAt(this._currentIndex) == \"+\") {\n this._currentIndex++;\n }\n else if (this._string.charAt(this._currentIndex) == \"-\") {\n this._currentIndex++;\n expsign = -1;\n }\n if (this._currentIndex >= this._endIndex ||\n this._string.charAt(this._currentIndex) < \"0\" ||\n this._string.charAt(this._currentIndex) > \"9\")\n return undefined;\n while (this._currentIndex < this._endIndex &&\n this._string.charAt(this._currentIndex) >= \"0\" &&\n this._string.charAt(this._currentIndex) <= \"9\") {\n exponent *= 10;\n exponent += this._string.charAt(this._currentIndex) - \"0\";\n this._currentIndex++;\n }\n }\n var number = integer + decimal;\n number *= sign;\n if (exponent)\n number *= Math.pow(10, expsign * exponent);\n if (startIndex == this._currentIndex)\n return undefined;\n this._skipOptionalSpacesOrDelimiter();\n return number;\n };\n Source.prototype._parseArcFlag = function () {\n if (this._currentIndex >= this._endIndex)\n return undefined;\n var flag = false;\n var flagChar = this._string.charAt(this._currentIndex++);\n if (flagChar == \"0\")\n flag = false;\n else if (flagChar == \"1\")\n flag = true;\n else\n return undefined;\n this._skipOptionalSpacesOrDelimiter();\n return flag;\n };\n Source.prototype.parseSegment = function () {\n var lookahead = this._string[this._currentIndex];\n var command = this._pathSegTypeFromChar(lookahead);\n if (command == window.SVGPathSeg.PATHSEG_UNKNOWN) {\n if (this._previousCommand == window.SVGPathSeg.PATHSEG_UNKNOWN)\n return null;\n command = this._nextCommandHelper(lookahead, this._previousCommand);\n if (command == window.SVGPathSeg.PATHSEG_UNKNOWN)\n return null;\n }\n else {\n this._currentIndex++;\n }\n this._previousCommand = command;\n switch (command) {\n case window.SVGPathSeg.PATHSEG_MOVETO_REL:\n return new window.SVGPathSegMovetoRel(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_MOVETO_ABS:\n return new window.SVGPathSegMovetoAbs(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_REL:\n return new window.SVGPathSegLinetoRel(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_ABS:\n return new window.SVGPathSegLinetoAbs(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL:\n return new window.SVGPathSegLinetoHorizontalRel(owningPathSegList, this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS:\n return new window.SVGPathSegLinetoHorizontalAbs(owningPathSegList, this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL:\n return new window.SVGPathSegLinetoVerticalRel(owningPathSegList, this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS:\n return new window.SVGPathSegLinetoVerticalAbs(owningPathSegList, this._parseNumber());\n case window.SVGPathSeg.PATHSEG_CLOSEPATH:\n this._skipOptionalSpaces();\n return new window.SVGPathSegClosePath(owningPathSegList);\n case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL:\n var points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n x2: this._parseNumber(),\n y2: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber(),\n };\n return new window.SVGPathSegCurvetoCubicRel(owningPathSegList, points.x, points.y, points.x1, points.y1, points.x2, points.y2);\n case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS:\n var points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n x2: this._parseNumber(),\n y2: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber(),\n };\n return new window.SVGPathSegCurvetoCubicAbs(owningPathSegList, points.x, points.y, points.x1, points.y1, points.x2, points.y2);\n case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL:\n var points = {\n x2: this._parseNumber(),\n y2: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber(),\n };\n return new window.SVGPathSegCurvetoCubicSmoothRel(owningPathSegList, points.x, points.y, points.x2, points.y2);\n case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS:\n var points = {\n x2: this._parseNumber(),\n y2: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber(),\n };\n return new window.SVGPathSegCurvetoCubicSmoothAbs(owningPathSegList, points.x, points.y, points.x2, points.y2);\n case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL:\n var points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber(),\n };\n return new window.SVGPathSegCurvetoQuadraticRel(owningPathSegList, points.x, points.y, points.x1, points.y1);\n case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS:\n var points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber(),\n };\n return new window.SVGPathSegCurvetoQuadraticAbs(owningPathSegList, points.x, points.y, points.x1, points.y1);\n case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL:\n return new window.SVGPathSegCurvetoQuadraticSmoothRel(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS:\n return new window.SVGPathSegCurvetoQuadraticSmoothAbs(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_ARC_REL:\n var points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n arcAngle: this._parseNumber(),\n arcLarge: this._parseArcFlag(),\n arcSweep: this._parseArcFlag(),\n x: this._parseNumber(),\n y: this._parseNumber(),\n };\n return new window.SVGPathSegArcRel(owningPathSegList, points.x, points.y, points.x1, points.y1, points.arcAngle, points.arcLarge, points.arcSweep);\n case window.SVGPathSeg.PATHSEG_ARC_ABS:\n var points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n arcAngle: this._parseNumber(),\n arcLarge: this._parseArcFlag(),\n arcSweep: this._parseArcFlag(),\n x: this._parseNumber(),\n y: this._parseNumber(),\n };\n return new window.SVGPathSegArcAbs(owningPathSegList, points.x, points.y, points.x1, points.y1, points.arcAngle, points.arcLarge, points.arcSweep);\n default:\n throw \"Unknown path seg type.\";\n }\n };\n var builder = new Builder();\n var source = new Source(string);\n if (!source.initialCommandIsMoveTo())\n return [];\n while (source.hasMoreData()) {\n var pathSeg = source.parseSegment();\n if (!pathSeg)\n return [];\n builder.appendSegment(pathSeg);\n }\n return builder.pathSegList;\n };\n }\n }\n catch (e) {\n console.warn(\"An error occurred in tsParticles pathseg polyfill. If the Polygon Mask is not working, please open an issue here: https://github.com/matteobruni/tsparticles\", e);\n }\n})();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9Qb2x5Z29uTWFzay9wYXRoc2VnLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpREFBaUQ7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9QbHVnaW5zL1BvbHlnb25NYXNrL3BhdGhzZWcuanM/NjJjMSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbihmdW5jdGlvbiAoKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdHJ5IHtcbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09IFwidW5kZWZpbmVkXCIpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmICghKFwiU1ZHUGF0aFNlZ1wiIGluIHdpbmRvdykpIHtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnID0gZnVuY3Rpb24gKHR5cGUsIHR5cGVBc0xldHRlciwgb3duaW5nUGF0aFNlZ0xpc3QpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBhdGhTZWdUeXBlID0gdHlwZTtcbiAgICAgICAgICAgICAgICB0aGlzLnBhdGhTZWdUeXBlQXNMZXR0ZXIgPSB0eXBlQXNMZXR0ZXI7XG4gICAgICAgICAgICAgICAgdGhpcy5fb3duaW5nUGF0aFNlZ0xpc3QgPSBvd25pbmdQYXRoU2VnTGlzdDtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZy5wcm90b3R5cGUuY2xhc3NuYW1lID0gXCJTVkdQYXRoU2VnXCI7XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX1VOS05PV04gPSAwO1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19DTE9TRVBBVEggPSAxO1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19NT1ZFVE9fQUJTID0gMjtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfTU9WRVRPX1JFTCA9IDM7XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX0xJTkVUT19BQlMgPSA0O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19MSU5FVE9fUkVMID0gNTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfQ1VSVkVUT19DVUJJQ19BQlMgPSA2O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19DVVJWRVRPX0NVQklDX1JFTCA9IDc7XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX0FCUyA9IDg7XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX1JFTCA9IDk7XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX0FSQ19BQlMgPSAxMDtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfQVJDX1JFTCA9IDExO1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19MSU5FVE9fSE9SSVpPTlRBTF9BQlMgPSAxMjtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfTElORVRPX0hPUklaT05UQUxfUkVMID0gMTM7XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX0xJTkVUT19WRVJUSUNBTF9BQlMgPSAxNDtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfTElORVRPX1ZFUlRJQ0FMX1JFTCA9IDE1O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19DVVJWRVRPX0NVQklDX1NNT09USF9BQlMgPSAxNjtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfQ1VSVkVUT19DVUJJQ19TTU9PVEhfUkVMID0gMTc7XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX1NNT09USF9BQlMgPSAxODtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfQ1VSVkVUT19RVUFEUkFUSUNfU01PT1RIX1JFTCA9IDE5O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWcucHJvdG90eXBlLl9zZWdtZW50Q2hhbmdlZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fb3duaW5nUGF0aFNlZ0xpc3QpXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX293bmluZ1BhdGhTZWdMaXN0LnNlZ21lbnRDaGFuZ2VkKHRoaXMpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQ2xvc2VQYXRoID0gZnVuY3Rpb24gKG93bmluZ1BhdGhTZWdMaXN0KSB7XG4gICAgICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWcuY2FsbCh0aGlzLCB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX0NMT1NFUEFUSCwgXCJ6XCIsIG93bmluZ1BhdGhTZWdMaXN0KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHdpbmRvdy5TVkdQYXRoU2VnLnByb3RvdHlwZSk7XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiW29iamVjdCBTVkdQYXRoU2VnQ2xvc2VQYXRoXVwiO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQ2xvc2VQYXRoLnByb3RvdHlwZS5fYXNQYXRoU3RyaW5nID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnBhdGhTZWdUeXBlQXNMZXR0ZXI7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdDbG9zZVBhdGgucHJvdG90eXBlLmNsb25lID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgd2luZG93LlNWR1BhdGhTZWdDbG9zZVBhdGgodW5kZWZpbmVkKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ01vdmV0b0FicyA9IGZ1bmN0aW9uIChvd25pbmdQYXRoU2VnTGlzdCwgeCwgeSkge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnLmNhbGwodGhpcywgd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19NT1ZFVE9fQUJTLCBcIk1cIiwgb3duaW5nUGF0aFNlZ0xpc3QpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3ggPSB4O1xuICAgICAgICAgICAgICAgIHRoaXMuX3kgPSB5O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnTW92ZXRvQWJzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUod2luZG93LlNWR1BhdGhTZWcucHJvdG90eXBlKTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnTW92ZXRvQWJzLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJbb2JqZWN0IFNWR1BhdGhTZWdNb3ZldG9BYnNdXCI7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdNb3ZldG9BYnMucHJvdG90eXBlLl9hc1BhdGhTdHJpbmcgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucGF0aFNlZ1R5cGVBc0xldHRlciArIFwiIFwiICsgdGhpcy5feCArIFwiIFwiICsgdGhpcy5feTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ01vdmV0b0Ficy5wcm90b3R5cGUuY2xvbmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyB3aW5kb3cuU1ZHUGF0aFNlZ01vdmV0b0Ficyh1bmRlZmluZWQsIHRoaXMuX3gsIHRoaXMuX3kpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3cuU1ZHUGF0aFNlZ01vdmV0b0Ficy5wcm90b3R5cGUsIFwieFwiLCB7XG4gICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl94O1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoeCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl94ID0geDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VnbWVudENoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3cuU1ZHUGF0aFNlZ01vdmV0b0Ficy5wcm90b3R5cGUsIFwieVwiLCB7XG4gICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl95O1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoeSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl95ID0geTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VnbWVudENoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnTW92ZXRvUmVsID0gZnVuY3Rpb24gKG93bmluZ1BhdGhTZWdMaXN0LCB4LCB5KSB7XG4gICAgICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWcuY2FsbCh0aGlzLCB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX01PVkVUT19SRUwsIFwibVwiLCBvd25pbmdQYXRoU2VnTGlzdCk7XG4gICAgICAgICAgICAgICAgdGhpcy5feCA9IHg7XG4gICAgICAgICAgICAgICAgdGhpcy5feSA9IHk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdNb3ZldG9SZWwucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZSh3aW5kb3cuU1ZHUGF0aFNlZy5wcm90b3R5cGUpO1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdNb3ZldG9SZWwucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBcIltvYmplY3QgU1ZHUGF0aFNlZ01vdmV0b1JlbF1cIjtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ01vdmV0b1JlbC5wcm90b3R5cGUuX2FzUGF0aFN0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wYXRoU2VnVHlwZUFzTGV0dGVyICsgXCIgXCIgKyB0aGlzLl94ICsgXCIgXCIgKyB0aGlzLl95O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnTW92ZXRvUmVsLnByb3RvdHlwZS5jbG9uZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHdpbmRvdy5TVkdQYXRoU2VnTW92ZXRvUmVsKHVuZGVmaW5lZCwgdGhpcy5feCwgdGhpcy5feSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdy5TVkdQYXRoU2VnTW92ZXRvUmVsLnByb3RvdHlwZSwgXCJ4XCIsIHtcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3g7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICh4KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3ggPSB4O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWdtZW50Q2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdy5TVkdQYXRoU2VnTW92ZXRvUmVsLnByb3RvdHlwZSwgXCJ5XCIsIHtcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3k7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICh5KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3kgPSB5O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWdtZW50Q2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdMaW5ldG9BYnMgPSBmdW5jdGlvbiAob3duaW5nUGF0aFNlZ0xpc3QsIHgsIHkpIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZy5jYWxsKHRoaXMsIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfTElORVRPX0FCUywgXCJMXCIsIG93bmluZ1BhdGhTZWdMaXN0KTtcbiAgICAgICAgICAgICAgICB0aGlzLl94ID0geDtcbiAgICAgICAgICAgICAgICB0aGlzLl95ID0geTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0xpbmV0b0Ficy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHdpbmRvdy5TVkdQYXRoU2VnLnByb3RvdHlwZSk7XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0xpbmV0b0Ficy5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiW29iamVjdCBTVkdQYXRoU2VnTGluZXRvQWJzXVwiO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnTGluZXRvQWJzLnByb3RvdHlwZS5fYXNQYXRoU3RyaW5nID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnBhdGhTZWdUeXBlQXNMZXR0ZXIgKyBcIiBcIiArIHRoaXMuX3ggKyBcIiBcIiArIHRoaXMuX3k7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdMaW5ldG9BYnMucHJvdG90eXBlLmNsb25lID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgd2luZG93LlNWR1BhdGhTZWdMaW5ldG9BYnModW5kZWZpbmVkLCB0aGlzLl94LCB0aGlzLl95KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdMaW5ldG9BYnMucHJvdG90eXBlLCBcInhcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5feDtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feCA9IHg7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlZ21lbnRDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdMaW5ldG9BYnMucHJvdG90eXBlLCBcInlcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5feTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feSA9IHk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlZ21lbnRDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0xpbmV0b1JlbCA9IGZ1bmN0aW9uIChvd25pbmdQYXRoU2VnTGlzdCwgeCwgeSkge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnLmNhbGwodGhpcywgd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19MSU5FVE9fUkVMLCBcImxcIiwgb3duaW5nUGF0aFNlZ0xpc3QpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3ggPSB4O1xuICAgICAgICAgICAgICAgIHRoaXMuX3kgPSB5O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnTGluZXRvUmVsLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUod2luZG93LlNWR1BhdGhTZWcucHJvdG90eXBlKTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnTGluZXRvUmVsLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJbb2JqZWN0IFNWR1BhdGhTZWdMaW5ldG9SZWxdXCI7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdMaW5ldG9SZWwucHJvdG90eXBlLl9hc1BhdGhTdHJpbmcgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucGF0aFNlZ1R5cGVBc0xldHRlciArIFwiIFwiICsgdGhpcy5feCArIFwiIFwiICsgdGhpcy5feTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0xpbmV0b1JlbC5wcm90b3R5cGUuY2xvbmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyB3aW5kb3cuU1ZHUGF0aFNlZ0xpbmV0b1JlbCh1bmRlZmluZWQsIHRoaXMuX3gsIHRoaXMuX3kpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3cuU1ZHUGF0aFNlZ0xpbmV0b1JlbC5wcm90b3R5cGUsIFwieFwiLCB7XG4gICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl94O1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoeCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl94ID0geDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VnbWVudENoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3cuU1ZHUGF0aFNlZ0xpbmV0b1JlbC5wcm90b3R5cGUsIFwieVwiLCB7XG4gICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl95O1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoeSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl95ID0geTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VnbWVudENoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzID0gZnVuY3Rpb24gKG93bmluZ1BhdGhTZWdMaXN0LCB4LCB5LCB4MSwgeTEsIHgyLCB5Mikge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnLmNhbGwodGhpcywgd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19DVVJWRVRPX0NVQklDX0FCUywgXCJDXCIsIG93bmluZ1BhdGhTZWdMaXN0KTtcbiAgICAgICAgICAgICAgICB0aGlzLl94ID0geDtcbiAgICAgICAgICAgICAgICB0aGlzLl95ID0geTtcbiAgICAgICAgICAgICAgICB0aGlzLl94MSA9IHgxO1xuICAgICAgICAgICAgICAgIHRoaXMuX3kxID0geTE7XG4gICAgICAgICAgICAgICAgdGhpcy5feDIgPSB4MjtcbiAgICAgICAgICAgICAgICB0aGlzLl95MiA9IHkyO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUod2luZG93LlNWR1BhdGhTZWcucHJvdG90eXBlKTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJbb2JqZWN0IFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnNdXCI7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMucHJvdG90eXBlLl9hc1BhdGhTdHJpbmcgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICh0aGlzLnBhdGhTZWdUeXBlQXNMZXR0ZXIgK1xuICAgICAgICAgICAgICAgICAgICBcIiBcIiArXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3gxICtcbiAgICAgICAgICAgICAgICAgICAgXCIgXCIgK1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl95MSArXG4gICAgICAgICAgICAgICAgICAgIFwiIFwiICtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feDIgK1xuICAgICAgICAgICAgICAgICAgICBcIiBcIiArXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3kyICtcbiAgICAgICAgICAgICAgICAgICAgXCIgXCIgK1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl94ICtcbiAgICAgICAgICAgICAgICAgICAgXCIgXCIgK1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl95KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficy5wcm90b3R5cGUuY2xvbmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyB3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficyh1bmRlZmluZWQsIHRoaXMuX3gsIHRoaXMuX3ksIHRoaXMuX3gxLCB0aGlzLl95MSwgdGhpcy5feDIsIHRoaXMuX3kyKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMucHJvdG90eXBlLCBcInhcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5feDtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feCA9IHg7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlZ21lbnRDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMucHJvdG90eXBlLCBcInlcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5feTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feSA9IHk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlZ21lbnRDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMucHJvdG90eXBlLCBcIngxXCIsIHtcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3gxO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoeDEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feDEgPSB4MTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VnbWVudENoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficy5wcm90b3R5cGUsIFwieTFcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5feTE7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICh5MSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl95MSA9IHkxO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWdtZW50Q2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzLnByb3RvdHlwZSwgXCJ4MlwiLCB7XG4gICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl94MjtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHgyKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3gyID0geDI7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlZ21lbnRDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMucHJvdG90eXBlLCBcInkyXCIsIHtcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3kyO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoeTIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feTIgPSB5MjtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VnbWVudENoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsID0gZnVuY3Rpb24gKG93bmluZ1BhdGhTZWdMaXN0LCB4LCB5LCB4MSwgeTEsIHgyLCB5Mikge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnLmNhbGwodGhpcywgd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19DVVJWRVRPX0NVQklDX1JFTCwgXCJjXCIsIG93bmluZ1BhdGhTZWdMaXN0KTtcbiAgICAgICAgICAgICAgICB0aGlzLl94ID0geDtcbiAgICAgICAgICAgICAgICB0aGlzLl95ID0geTtcbiAgICAgICAgICAgICAgICB0aGlzLl94MSA9IHgxO1xuICAgICAgICAgICAgICAgIHRoaXMuX3kxID0geTE7XG4gICAgICAgICAgICAgICAgdGhpcy5feDIgPSB4MjtcbiAgICAgICAgICAgICAgICB0aGlzLl95MiA9IHkyO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUod2luZG93LlNWR1BhdGhTZWcucHJvdG90eXBlKTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJbb2JqZWN0IFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWxdXCI7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwucHJvdG90eXBlLl9hc1BhdGhTdHJpbmcgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICh0aGlzLnBhdGhTZWdUeXBlQXNMZXR0ZXIgK1xuICAgICAgICAgICAgICAgICAgICBcIiBcIiArXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3gxICtcbiAgICAgICAgICAgICAgICAgICAgXCIgXCIgK1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl95MSArXG4gICAgICAgICAgICAgICAgICAgIFwiIFwiICtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feDIgK1xuICAgICAgICAgICAgICAgICAgICBcIiBcIiArXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3kyICtcbiAgICAgICAgICAgICAgICAgICAgXCIgXCIgK1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl94ICtcbiAgICAgICAgICAgICAgICAgICAgXCIgXCIgK1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl95KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbC5wcm90b3R5cGUuY2xvbmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyB3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbCh1bmRlZmluZWQsIHRoaXMuX3gsIHRoaXMuX3ksIHRoaXMuX3gxLCB0aGlzLl95MSwgdGhpcy5feDIsIHRoaXMuX3kyKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwucHJvdG90eXBlLCBcInhcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5feDtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feCA9IHg7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlZ21lbnRDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwucHJvdG90eXBlLCBcInlcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5feTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feSA9IHk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlZ21lbnRDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwucHJvdG90eXBlLCBcIngxXCIsIHtcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3gxO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoeDEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feDEgPSB4MTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VnbWVudENoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbC5wcm90b3R5cGUsIFwieTFcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5feTE7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICh5MSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl95MSA9IHkxO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWdtZW50Q2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsLnByb3RvdHlwZSwgXCJ4MlwiLCB7XG4gICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl94MjtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHgyKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3gyID0geDI7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlZ21lbnRDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwucHJvdG90eXBlLCBcInkyXCIsIHtcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3kyO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoeTIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feTIgPSB5MjtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VnbWVudENoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0FicyA9IGZ1bmN0aW9uIChvd25pbmdQYXRoU2VnTGlzdCwgeCwgeSwgeDEsIHkxKSB7XG4gICAgICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWcuY2FsbCh0aGlzLCB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX0FCUywgXCJRXCIsIG93bmluZ1BhdGhTZWdMaXN0KTtcbiAgICAgICAgICAgICAgICB0aGlzLl94ID0geDtcbiAgICAgICAgICAgICAgICB0aGlzLl95ID0geTtcbiAgICAgICAgICAgICAgICB0aGlzLl94MSA9IHgxO1xuICAgICAgICAgICAgICAgIHRoaXMuX3kxID0geTE7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUod2luZG93LlNWR1BhdGhTZWcucHJvdG90eXBlKTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficy5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiW29iamVjdCBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Fic11cIjtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnMucHJvdG90eXBlLl9hc1BhdGhTdHJpbmcgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucGF0aFNlZ1R5cGVBc0xldHRlciArIFwiIFwiICsgdGhpcy5feDEgKyBcIiBcIiArIHRoaXMuX3kxICsgXCIgXCIgKyB0aGlzLl94ICsgXCIgXCIgKyB0aGlzLl95O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficy5wcm90b3R5cGUuY2xvbmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyB3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnModW5kZWZpbmVkLCB0aGlzLl94LCB0aGlzLl95LCB0aGlzLl94MSwgdGhpcy5feTEpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnMucHJvdG90eXBlLCBcInhcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5feDtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feCA9IHg7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlZ21lbnRDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzLnByb3RvdHlwZSwgXCJ5XCIsIHtcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3k7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICh5KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3kgPSB5O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWdtZW50Q2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficy5wcm90b3R5cGUsIFwieDFcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5feDE7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICh4MSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl94MSA9IHgxO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWdtZW50Q2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficy5wcm90b3R5cGUsIFwieTFcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5feTE7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICh5MSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl95MSA9IHkxO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWdtZW50Q2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsID0gZnVuY3Rpb24gKG93bmluZ1BhdGhTZWdMaXN0LCB4LCB5LCB4MSwgeTEpIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZy5jYWxsKHRoaXMsIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfQ1VSVkVUT19RVUFEUkFUSUNfUkVMLCBcInFcIiwgb3duaW5nUGF0aFNlZ0xpc3QpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3ggPSB4O1xuICAgICAgICAgICAgICAgIHRoaXMuX3kgPSB5O1xuICAgICAgICAgICAgICAgIHRoaXMuX3gxID0geDE7XG4gICAgICAgICAgICAgICAgdGhpcy5feTEgPSB5MTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZSh3aW5kb3cuU1ZHUGF0aFNlZy5wcm90b3R5cGUpO1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJbb2JqZWN0IFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsXVwiO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbC5wcm90b3R5cGUuX2FzUGF0aFN0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wYXRoU2VnVHlwZUFzTGV0dGVyICsgXCIgXCIgKyB0aGlzLl94MSArIFwiIFwiICsgdGhpcy5feTEgKyBcIiBcIiArIHRoaXMuX3ggKyBcIiBcIiArIHRoaXMuX3k7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsLnByb3RvdHlwZS5jbG9uZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbCh1bmRlZmluZWQsIHRoaXMuX3gsIHRoaXMuX3ksIHRoaXMuX3gxLCB0aGlzLl95MSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbC5wcm90b3R5cGUsIFwieFwiLCB7XG4gICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl94O1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoeCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl94ID0geDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VnbWVudENoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwucHJvdG90eXBlLCBcInlcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5feTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feSA9IHk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlZ21lbnRDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsLnByb3RvdHlwZSwgXCJ4MVwiLCB7XG4gICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl94MTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHgxKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3gxID0geDE7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlZ21lbnRDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsLnByb3RvdHlwZSwgXCJ5MVwiLCB7XG4gICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl95MTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHkxKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3kxID0geTE7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlZ21lbnRDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0FyY0FicyA9IGZ1bmN0aW9uIChvd25pbmdQYXRoU2VnTGlzdCwgeCwgeSwgcjEsIHIyLCBhbmdsZSwgbGFyZ2VBcmNGbGFnLCBzd2VlcEZsYWcpIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZy5jYWxsKHRoaXMsIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfQVJDX0FCUywgXCJBXCIsIG93bmluZ1BhdGhTZWdMaXN0KTtcbiAgICAgICAgICAgICAgICB0aGlzLl94ID0geDtcbiAgICAgICAgICAgICAgICB0aGlzLl95ID0geTtcbiAgICAgICAgICAgICAgICB0aGlzLl9yMSA9IHIxO1xuICAgICAgICAgICAgICAgIHRoaXMuX3IyID0gcjI7XG4gICAgICAgICAgICAgICAgdGhpcy5fYW5nbGUgPSBhbmdsZTtcbiAgICAgICAgICAgICAgICB0aGlzLl9sYXJnZUFyY0ZsYWcgPSBsYXJnZUFyY0ZsYWc7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3dlZXBGbGFnID0gc3dlZXBGbGFnO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQXJjQWJzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUod2luZG93LlNWR1BhdGhTZWcucHJvdG90eXBlKTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQXJjQWJzLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJbb2JqZWN0IFNWR1BhdGhTZWdBcmNBYnNdXCI7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdBcmNBYnMucHJvdG90eXBlLl9hc1BhdGhTdHJpbmcgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICh0aGlzLnBhdGhTZWdUeXBlQXNMZXR0ZXIgK1xuICAgICAgICAgICAgICAgICAgICBcIiBcIiArXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3IxICtcbiAgICAgICAgICAgICAgICAgICAgXCIgXCIgK1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9yMiArXG4gICAgICAgICAgICAgICAgICAgIFwiIFwiICtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fYW5nbGUgK1xuICAgICAgICAgICAgICAgICAgICBcIiBcIiArXG4gICAgICAgICAgICAgICAgICAgICh0aGlzLl9sYXJnZUFyY0ZsYWcgPyBcIjFcIiA6IFwiMFwiKSArXG4gICAgICAgICAgICAgICAgICAgIFwiIFwiICtcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMuX3N3ZWVwRmxhZyA/IFwiMVwiIDogXCIwXCIpICtcbiAgICAgICAgICAgICAgICAgICAgXCIgXCIgK1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl94ICtcbiAgICAgICAgICAgICAgICAgICAgXCIgXCIgK1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl95KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0FyY0Ficy5wcm90b3R5cGUuY2xvbmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyB3aW5kb3cuU1ZHUGF0aFNlZ0FyY0Ficyh1bmRlZmluZWQsIHRoaXMuX3gsIHRoaXMuX3ksIHRoaXMuX3IxLCB0aGlzLl9yMiwgdGhpcy5fYW5nbGUsIHRoaXMuX2xhcmdlQXJjRmxhZywgdGhpcy5fc3dlZXBGbGFnKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdBcmNBYnMucHJvdG90eXBlLCBcInhcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5feDtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feCA9IHg7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlZ21lbnRDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdBcmNBYnMucHJvdG90eXBlLCBcInlcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5feTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feSA9IHk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlZ21lbnRDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdBcmNBYnMucHJvdG90eXBlLCBcInIxXCIsIHtcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3IxO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAocjEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcjEgPSByMTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VnbWVudENoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3cuU1ZHUGF0aFNlZ0FyY0Ficy5wcm90b3R5cGUsIFwicjJcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fcjI7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uIChyMikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9yMiA9IHIyO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWdtZW50Q2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdy5TVkdQYXRoU2VnQXJjQWJzLnByb3RvdHlwZSwgXCJhbmdsZVwiLCB7XG4gICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9hbmdsZTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKGFuZ2xlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2FuZ2xlID0gYW5nbGU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlZ21lbnRDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdBcmNBYnMucHJvdG90eXBlLCBcImxhcmdlQXJjRmxhZ1wiLCB7XG4gICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9sYXJnZUFyY0ZsYWc7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uIChsYXJnZUFyY0ZsYWcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbGFyZ2VBcmNGbGFnID0gbGFyZ2VBcmNGbGFnO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWdtZW50Q2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdy5TVkdQYXRoU2VnQXJjQWJzLnByb3RvdHlwZSwgXCJzd2VlcEZsYWdcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fc3dlZXBGbGFnO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoc3dlZXBGbGFnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3N3ZWVwRmxhZyA9IHN3ZWVwRmxhZztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VnbWVudENoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQXJjUmVsID0gZnVuY3Rpb24gKG93bmluZ1BhdGhTZWdMaXN0LCB4LCB5LCByMSwgcjIsIGFuZ2xlLCBsYXJnZUFyY0ZsYWcsIHN3ZWVwRmxhZykge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnLmNhbGwodGhpcywgd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19BUkNfUkVMLCBcImFcIiwgb3duaW5nUGF0aFNlZ0xpc3QpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3ggPSB4O1xuICAgICAgICAgICAgICAgIHRoaXMuX3kgPSB5O1xuICAgICAgICAgICAgICAgIHRoaXMuX3IxID0gcjE7XG4gICAgICAgICAgICAgICAgdGhpcy5fcjIgPSByMjtcbiAgICAgICAgICAgICAgICB0aGlzLl9hbmdsZSA9IGFuZ2xlO1xuICAgICAgICAgICAgICAgIHRoaXMuX2xhcmdlQXJjRmxhZyA9IGxhcmdlQXJjRmxhZztcbiAgICAgICAgICAgICAgICB0aGlzLl9zd2VlcEZsYWcgPSBzd2VlcEZsYWc7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdBcmNSZWwucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZSh3aW5kb3cuU1ZHUGF0aFNlZy5wcm90b3R5cGUpO1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdBcmNSZWwucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBcIltvYmplY3QgU1ZHUGF0aFNlZ0FyY1JlbF1cIjtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0FyY1JlbC5wcm90b3R5cGUuX2FzUGF0aFN0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKHRoaXMucGF0aFNlZ1R5cGVBc0xldHRlciArXG4gICAgICAgICAgICAgICAgICAgIFwiIFwiICtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcjEgK1xuICAgICAgICAgICAgICAgICAgICBcIiBcIiArXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3IyICtcbiAgICAgICAgICAgICAgICAgICAgXCIgXCIgK1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9hbmdsZSArXG4gICAgICAgICAgICAgICAgICAgIFwiIFwiICtcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMuX2xhcmdlQXJjRmxhZyA/IFwiMVwiIDogXCIwXCIpICtcbiAgICAgICAgICAgICAgICAgICAgXCIgXCIgK1xuICAgICAgICAgICAgICAgICAgICAodGhpcy5fc3dlZXBGbGFnID8gXCIxXCIgOiBcIjBcIikgK1xuICAgICAgICAgICAgICAgICAgICBcIiBcIiArXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3ggK1xuICAgICAgICAgICAgICAgICAgICBcIiBcIiArXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3kpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQXJjUmVsLnByb3RvdHlwZS5jbG9uZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHdpbmRvdy5TVkdQYXRoU2VnQXJjUmVsKHVuZGVmaW5lZCwgdGhpcy5feCwgdGhpcy5feSwgdGhpcy5fcjEsIHRoaXMuX3IyLCB0aGlzLl9hbmdsZSwgdGhpcy5fbGFyZ2VBcmNGbGFnLCB0aGlzLl9zd2VlcEZsYWcpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3cuU1ZHUGF0aFNlZ0FyY1JlbC5wcm90b3R5cGUsIFwieFwiLCB7XG4gICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl94O1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoeCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl94ID0geDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VnbWVudENoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3cuU1ZHUGF0aFNlZ0FyY1JlbC5wcm90b3R5cGUsIFwieVwiLCB7XG4gICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl95O1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoeSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl95ID0geTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VnbWVudENoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3cuU1ZHUGF0aFNlZ0FyY1JlbC5wcm90b3R5cGUsIFwicjFcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fcjE7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uIChyMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9yMSA9IHIxO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWdtZW50Q2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdy5TVkdQYXRoU2VnQXJjUmVsLnByb3RvdHlwZSwgXCJyMlwiLCB7XG4gICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9yMjtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHIyKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3IyID0gcjI7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlZ21lbnRDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdBcmNSZWwucHJvdG90eXBlLCBcImFuZ2xlXCIsIHtcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2FuZ2xlO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoYW5nbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fYW5nbGUgPSBhbmdsZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VnbWVudENoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3cuU1ZHUGF0aFNlZ0FyY1JlbC5wcm90b3R5cGUsIFwibGFyZ2VBcmNGbGFnXCIsIHtcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2xhcmdlQXJjRmxhZztcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKGxhcmdlQXJjRmxhZykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9sYXJnZUFyY0ZsYWcgPSBsYXJnZUFyY0ZsYWc7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlZ21lbnRDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdBcmNSZWwucHJvdG90eXBlLCBcInN3ZWVwRmxhZ1wiLCB7XG4gICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9zd2VlcEZsYWc7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uIChzd2VlcEZsYWcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3dlZXBGbGFnID0gc3dlZXBGbGFnO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWdtZW50Q2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzID0gZnVuY3Rpb24gKG93bmluZ1BhdGhTZWdMaXN0LCB4KSB7XG4gICAgICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWcuY2FsbCh0aGlzLCB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX0xJTkVUT19IT1JJWk9OVEFMX0FCUywgXCJIXCIsIG93bmluZ1BhdGhTZWdMaXN0KTtcbiAgICAgICAgICAgICAgICB0aGlzLl94ID0geDtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxBYnMucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZSh3aW5kb3cuU1ZHUGF0aFNlZy5wcm90b3R5cGUpO1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJbb2JqZWN0IFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzXVwiO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicy5wcm90b3R5cGUuX2FzUGF0aFN0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wYXRoU2VnVHlwZUFzTGV0dGVyICsgXCIgXCIgKyB0aGlzLl94O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicy5wcm90b3R5cGUuY2xvbmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyB3aW5kb3cuU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxBYnModW5kZWZpbmVkLCB0aGlzLl94KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzLnByb3RvdHlwZSwgXCJ4XCIsIHtcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3g7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICh4KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3ggPSB4O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWdtZW50Q2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsUmVsID0gZnVuY3Rpb24gKG93bmluZ1BhdGhTZWdMaXN0LCB4KSB7XG4gICAgICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWcuY2FsbCh0aGlzLCB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX0xJTkVUT19IT1JJWk9OVEFMX1JFTCwgXCJoXCIsIG93bmluZ1BhdGhTZWdMaXN0KTtcbiAgICAgICAgICAgICAgICB0aGlzLl94ID0geDtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZSh3aW5kb3cuU1ZHUGF0aFNlZy5wcm90b3R5cGUpO1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsUmVsLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJbb2JqZWN0IFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsUmVsXVwiO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbC5wcm90b3R5cGUuX2FzUGF0aFN0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wYXRoU2VnVHlwZUFzTGV0dGVyICsgXCIgXCIgKyB0aGlzLl94O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbC5wcm90b3R5cGUuY2xvbmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyB3aW5kb3cuU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwodW5kZWZpbmVkLCB0aGlzLl94KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsUmVsLnByb3RvdHlwZSwgXCJ4XCIsIHtcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3g7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICh4KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3ggPSB4O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWdtZW50Q2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFicyA9IGZ1bmN0aW9uIChvd25pbmdQYXRoU2VnTGlzdCwgeSkge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnLmNhbGwodGhpcywgd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19MSU5FVE9fVkVSVElDQUxfQUJTLCBcIlZcIiwgb3duaW5nUGF0aFNlZ0xpc3QpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3kgPSB5O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZSh3aW5kb3cuU1ZHUGF0aFNlZy5wcm90b3R5cGUpO1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFicy5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiW29iamVjdCBTVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnNdXCI7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFicy5wcm90b3R5cGUuX2FzUGF0aFN0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wYXRoU2VnVHlwZUFzTGV0dGVyICsgXCIgXCIgKyB0aGlzLl95O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMucHJvdG90eXBlLmNsb25lID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgd2luZG93LlNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFicyh1bmRlZmluZWQsIHRoaXMuX3kpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3cuU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzLnByb3RvdHlwZSwgXCJ5XCIsIHtcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3k7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICh5KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3kgPSB5O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWdtZW50Q2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbCA9IGZ1bmN0aW9uIChvd25pbmdQYXRoU2VnTGlzdCwgeSkge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnLmNhbGwodGhpcywgd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19MSU5FVE9fVkVSVElDQUxfUkVMLCBcInZcIiwgb3duaW5nUGF0aFNlZ0xpc3QpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3kgPSB5O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWwucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZSh3aW5kb3cuU1ZHUGF0aFNlZy5wcm90b3R5cGUpO1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbC5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiW29iamVjdCBTVkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWxdXCI7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbC5wcm90b3R5cGUuX2FzUGF0aFN0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wYXRoU2VnVHlwZUFzTGV0dGVyICsgXCIgXCIgKyB0aGlzLl95O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWwucHJvdG90eXBlLmNsb25lID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgd2luZG93LlNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbCh1bmRlZmluZWQsIHRoaXMuX3kpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3cuU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVsLnByb3RvdHlwZSwgXCJ5XCIsIHtcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3k7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICh5KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3kgPSB5O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWdtZW50Q2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMgPSBmdW5jdGlvbiAob3duaW5nUGF0aFNlZ0xpc3QsIHgsIHksIHgyLCB5Mikge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnLmNhbGwodGhpcywgd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19DVVJWRVRPX0NVQklDX1NNT09USF9BQlMsIFwiU1wiLCBvd25pbmdQYXRoU2VnTGlzdCk7XG4gICAgICAgICAgICAgICAgdGhpcy5feCA9IHg7XG4gICAgICAgICAgICAgICAgdGhpcy5feSA9IHk7XG4gICAgICAgICAgICAgICAgdGhpcy5feDIgPSB4MjtcbiAgICAgICAgICAgICAgICB0aGlzLl95MiA9IHkyO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoQWJzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUod2luZG93LlNWR1BhdGhTZWcucHJvdG90eXBlKTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoQWJzLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJbb2JqZWN0IFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnNdXCI7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMucHJvdG90eXBlLl9hc1BhdGhTdHJpbmcgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucGF0aFNlZ1R5cGVBc0xldHRlciArIFwiIFwiICsgdGhpcy5feDIgKyBcIiBcIiArIHRoaXMuX3kyICsgXCIgXCIgKyB0aGlzLl94ICsgXCIgXCIgKyB0aGlzLl95O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoQWJzLnByb3RvdHlwZS5jbG9uZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoQWJzKHVuZGVmaW5lZCwgdGhpcy5feCwgdGhpcy5feSwgdGhpcy5feDIsIHRoaXMuX3kyKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMucHJvdG90eXBlLCBcInhcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5feDtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feCA9IHg7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlZ21lbnRDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMucHJvdG90eXBlLCBcInlcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5feTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feSA9IHk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlZ21lbnRDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMucHJvdG90eXBlLCBcIngyXCIsIHtcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3gyO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoeDIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feDIgPSB4MjtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VnbWVudENoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicy5wcm90b3R5cGUsIFwieTJcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5feTI7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICh5Mikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl95MiA9IHkyO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWdtZW50Q2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWwgPSBmdW5jdGlvbiAob3duaW5nUGF0aFNlZ0xpc3QsIHgsIHksIHgyLCB5Mikge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnLmNhbGwodGhpcywgd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19DVVJWRVRPX0NVQklDX1NNT09USF9SRUwsIFwic1wiLCBvd25pbmdQYXRoU2VnTGlzdCk7XG4gICAgICAgICAgICAgICAgdGhpcy5feCA9IHg7XG4gICAgICAgICAgICAgICAgdGhpcy5feSA9IHk7XG4gICAgICAgICAgICAgICAgdGhpcy5feDIgPSB4MjtcbiAgICAgICAgICAgICAgICB0aGlzLl95MiA9IHkyO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUod2luZG93LlNWR1BhdGhTZWcucHJvdG90eXBlKTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJbb2JqZWN0IFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWxdXCI7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWwucHJvdG90eXBlLl9hc1BhdGhTdHJpbmcgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucGF0aFNlZ1R5cGVBc0xldHRlciArIFwiIFwiICsgdGhpcy5feDIgKyBcIiBcIiArIHRoaXMuX3kyICsgXCIgXCIgKyB0aGlzLl94ICsgXCIgXCIgKyB0aGlzLl95O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsLnByb3RvdHlwZS5jbG9uZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsKHVuZGVmaW5lZCwgdGhpcy5feCwgdGhpcy5feSwgdGhpcy5feDIsIHRoaXMuX3kyKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWwucHJvdG90eXBlLCBcInhcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5feDtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feCA9IHg7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlZ21lbnRDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWwucHJvdG90eXBlLCBcInlcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5feTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feSA9IHk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlZ21lbnRDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWwucHJvdG90eXBlLCBcIngyXCIsIHtcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3gyO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoeDIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feDIgPSB4MjtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VnbWVudENoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbC5wcm90b3R5cGUsIFwieTJcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5feTI7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICh5Mikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl95MiA9IHkyO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWdtZW50Q2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzID0gZnVuY3Rpb24gKG93bmluZ1BhdGhTZWdMaXN0LCB4LCB5KSB7XG4gICAgICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWcuY2FsbCh0aGlzLCB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX1NNT09USF9BQlMsIFwiVFwiLCBvd25pbmdQYXRoU2VnTGlzdCk7XG4gICAgICAgICAgICAgICAgdGhpcy5feCA9IHg7XG4gICAgICAgICAgICAgICAgdGhpcy5feSA9IHk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUod2luZG93LlNWR1BhdGhTZWcucHJvdG90eXBlKTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFicy5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiW29iamVjdCBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFic11cIjtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnMucHJvdG90eXBlLl9hc1BhdGhTdHJpbmcgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucGF0aFNlZ1R5cGVBc0xldHRlciArIFwiIFwiICsgdGhpcy5feCArIFwiIFwiICsgdGhpcy5feTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnMucHJvdG90eXBlLmNsb25lID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgd2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzKHVuZGVmaW5lZCwgdGhpcy5feCwgdGhpcy5feSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFicy5wcm90b3R5cGUsIFwieFwiLCB7XG4gICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl94O1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoeCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl94ID0geDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VnbWVudENoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnMucHJvdG90eXBlLCBcInlcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5feTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5feSA9IHk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlZ21lbnRDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhSZWwgPSBmdW5jdGlvbiAob3duaW5nUGF0aFNlZ0xpc3QsIHgsIHkpIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZy5jYWxsKHRoaXMsIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfQ1VSVkVUT19RVUFEUkFUSUNfU01PT1RIX1JFTCwgXCJ0XCIsIG93bmluZ1BhdGhTZWdMaXN0KTtcbiAgICAgICAgICAgICAgICB0aGlzLl94ID0geDtcbiAgICAgICAgICAgICAgICB0aGlzLl95ID0geTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhSZWwucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZSh3aW5kb3cuU1ZHUGF0aFNlZy5wcm90b3R5cGUpO1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJbb2JqZWN0IFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsXVwiO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbC5wcm90b3R5cGUuX2FzUGF0aFN0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wYXRoU2VnVHlwZUFzTGV0dGVyICsgXCIgXCIgKyB0aGlzLl94ICsgXCIgXCIgKyB0aGlzLl95O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbC5wcm90b3R5cGUuY2xvbmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyB3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhSZWwodW5kZWZpbmVkLCB0aGlzLl94LCB0aGlzLl95KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsLnByb3RvdHlwZSwgXCJ4XCIsIHtcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3g7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICh4KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3ggPSB4O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWdtZW50Q2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbC5wcm90b3R5cGUsIFwieVwiLCB7XG4gICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl95O1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoeSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl95ID0geTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VnbWVudENoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoRWxlbWVudC5wcm90b3R5cGUuY3JlYXRlU1ZHUGF0aFNlZ0Nsb3NlUGF0aCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHdpbmRvdy5TVkdQYXRoU2VnQ2xvc2VQYXRoKHVuZGVmaW5lZCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhFbGVtZW50LnByb3RvdHlwZS5jcmVhdGVTVkdQYXRoU2VnTW92ZXRvQWJzID0gZnVuY3Rpb24gKHgsIHkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHdpbmRvdy5TVkdQYXRoU2VnTW92ZXRvQWJzKHVuZGVmaW5lZCwgeCwgeSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhFbGVtZW50LnByb3RvdHlwZS5jcmVhdGVTVkdQYXRoU2VnTW92ZXRvUmVsID0gZnVuY3Rpb24gKHgsIHkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHdpbmRvdy5TVkdQYXRoU2VnTW92ZXRvUmVsKHVuZGVmaW5lZCwgeCwgeSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhFbGVtZW50LnByb3RvdHlwZS5jcmVhdGVTVkdQYXRoU2VnTGluZXRvQWJzID0gZnVuY3Rpb24gKHgsIHkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHdpbmRvdy5TVkdQYXRoU2VnTGluZXRvQWJzKHVuZGVmaW5lZCwgeCwgeSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhFbGVtZW50LnByb3RvdHlwZS5jcmVhdGVTVkdQYXRoU2VnTGluZXRvUmVsID0gZnVuY3Rpb24gKHgsIHkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHdpbmRvdy5TVkdQYXRoU2VnTGluZXRvUmVsKHVuZGVmaW5lZCwgeCwgeSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhFbGVtZW50LnByb3RvdHlwZS5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzID0gZnVuY3Rpb24gKHgsIHksIHgxLCB5MSwgeDIsIHkyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyB3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficyh1bmRlZmluZWQsIHgsIHksIHgxLCB5MSwgeDIsIHkyKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aEVsZW1lbnQucHJvdG90eXBlLmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwgPSBmdW5jdGlvbiAoeCwgeSwgeDEsIHkxLCB4MiwgeTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsKHVuZGVmaW5lZCwgeCwgeSwgeDEsIHkxLCB4MiwgeTIpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoRWxlbWVudC5wcm90b3R5cGUuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnMgPSBmdW5jdGlvbiAoeCwgeSwgeDEsIHkxKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyB3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnModW5kZWZpbmVkLCB4LCB5LCB4MSwgeTEpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoRWxlbWVudC5wcm90b3R5cGUuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwgPSBmdW5jdGlvbiAoeCwgeSwgeDEsIHkxKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyB3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwodW5kZWZpbmVkLCB4LCB5LCB4MSwgeTEpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoRWxlbWVudC5wcm90b3R5cGUuY3JlYXRlU1ZHUGF0aFNlZ0FyY0FicyA9IGZ1bmN0aW9uICh4LCB5LCByMSwgcjIsIGFuZ2xlLCBsYXJnZUFyY0ZsYWcsIHN3ZWVwRmxhZykge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgd2luZG93LlNWR1BhdGhTZWdBcmNBYnModW5kZWZpbmVkLCB4LCB5LCByMSwgcjIsIGFuZ2xlLCBsYXJnZUFyY0ZsYWcsIHN3ZWVwRmxhZyk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhFbGVtZW50LnByb3RvdHlwZS5jcmVhdGVTVkdQYXRoU2VnQXJjUmVsID0gZnVuY3Rpb24gKHgsIHksIHIxLCByMiwgYW5nbGUsIGxhcmdlQXJjRmxhZywgc3dlZXBGbGFnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyB3aW5kb3cuU1ZHUGF0aFNlZ0FyY1JlbCh1bmRlZmluZWQsIHgsIHksIHIxLCByMiwgYW5nbGUsIGxhcmdlQXJjRmxhZywgc3dlZXBGbGFnKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aEVsZW1lbnQucHJvdG90eXBlLmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzID0gZnVuY3Rpb24gKHgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHdpbmRvdy5TVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicyh1bmRlZmluZWQsIHgpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoRWxlbWVudC5wcm90b3R5cGUuY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwgPSBmdW5jdGlvbiAoeCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgd2luZG93LlNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsUmVsKHVuZGVmaW5lZCwgeCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhFbGVtZW50LnByb3RvdHlwZS5jcmVhdGVTVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMgPSBmdW5jdGlvbiAoeSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgd2luZG93LlNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFicyh1bmRlZmluZWQsIHkpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoRWxlbWVudC5wcm90b3R5cGUuY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVsID0gZnVuY3Rpb24gKHkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHdpbmRvdy5TVkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWwodW5kZWZpbmVkLCB5KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aEVsZW1lbnQucHJvdG90eXBlLmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMgPSBmdW5jdGlvbiAoeCwgeSwgeDIsIHkyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyB3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicyh1bmRlZmluZWQsIHgsIHksIHgyLCB5Mik7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhFbGVtZW50LnByb3RvdHlwZS5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsID0gZnVuY3Rpb24gKHgsIHksIHgyLCB5Mikge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgd2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWwodW5kZWZpbmVkLCB4LCB5LCB4MiwgeTIpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoRWxlbWVudC5wcm90b3R5cGUuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnMgPSBmdW5jdGlvbiAoeCwgeSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgd2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzKHVuZGVmaW5lZCwgeCwgeSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhFbGVtZW50LnByb3RvdHlwZS5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbCA9IGZ1bmN0aW9uICh4LCB5KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyB3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhSZWwodW5kZWZpbmVkLCB4LCB5KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAoIShcImdldFBhdGhTZWdBdExlbmd0aFwiIGluIHdpbmRvdy5TVkdQYXRoRWxlbWVudC5wcm90b3R5cGUpKSB7XG4gICAgICAgICAgICAgICAgd2luZG93LlNWR1BhdGhFbGVtZW50LnByb3RvdHlwZS5nZXRQYXRoU2VnQXRMZW5ndGggPSBmdW5jdGlvbiAoZGlzdGFuY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRpc3RhbmNlID09PSB1bmRlZmluZWQgfHwgIWlzRmluaXRlKGRpc3RhbmNlKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IFwiSW52YWxpZCBhcmd1bWVudHMuXCI7XG4gICAgICAgICAgICAgICAgICAgIHZhciBtZWFzdXJlbWVudEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLCBcInBhdGhcIik7XG4gICAgICAgICAgICAgICAgICAgIG1lYXN1cmVtZW50RWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJkXCIsIHRoaXMuZ2V0QXR0cmlidXRlKFwiZFwiKSk7XG4gICAgICAgICAgICAgICAgICAgIHZhciBsYXN0UGF0aFNlZ21lbnQgPSBtZWFzdXJlbWVudEVsZW1lbnQucGF0aFNlZ0xpc3QubnVtYmVyT2ZJdGVtcyAtIDE7XG4gICAgICAgICAgICAgICAgICAgIGlmIChsYXN0UGF0aFNlZ21lbnQgPD0gMClcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtZWFzdXJlbWVudEVsZW1lbnQucGF0aFNlZ0xpc3QucmVtb3ZlSXRlbShsYXN0UGF0aFNlZ21lbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRpc3RhbmNlID4gbWVhc3VyZW1lbnRFbGVtZW50LmdldFRvdGFsTGVuZ3RoKCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXN0UGF0aFNlZ21lbnQtLTtcbiAgICAgICAgICAgICAgICAgICAgfSB3aGlsZSAobGFzdFBhdGhTZWdtZW50ID4gMCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBsYXN0UGF0aFNlZ21lbnQ7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIShcIlNWR1BhdGhTZWdMaXN0XCIgaW4gd2luZG93KSB8fCAhKFwiYXBwZW5kSXRlbVwiIGluIHdpbmRvdy5TVkdQYXRoU2VnTGlzdC5wcm90b3R5cGUpKSB7XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0xpc3QgPSBmdW5jdGlvbiAocGF0aEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9wYXRoRWxlbWVudCA9IHBhdGhFbGVtZW50O1xuICAgICAgICAgICAgICAgIHRoaXMuX2xpc3QgPSB0aGlzLl9wYXJzZVBhdGgodGhpcy5fcGF0aEVsZW1lbnQuZ2V0QXR0cmlidXRlKFwiZFwiKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fbXV0YXRpb25PYnNlcnZlckNvbmZpZyA9IHsgYXR0cmlidXRlczogdHJ1ZSwgYXR0cmlidXRlRmlsdGVyOiBbXCJkXCJdIH07XG4gICAgICAgICAgICAgICAgdGhpcy5fcGF0aEVsZW1lbnRNdXRhdGlvbk9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIodGhpcy5fdXBkYXRlTGlzdEZyb21QYXRoTXV0YXRpb25zLmJpbmQodGhpcykpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3BhdGhFbGVtZW50TXV0YXRpb25PYnNlcnZlci5vYnNlcnZlKHRoaXMuX3BhdGhFbGVtZW50LCB0aGlzLl9tdXRhdGlvbk9ic2VydmVyQ29uZmlnKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0xpc3QucHJvdG90eXBlLmNsYXNzbmFtZSA9IFwiU1ZHUGF0aFNlZ0xpc3RcIjtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3cuU1ZHUGF0aFNlZ0xpc3QucHJvdG90eXBlLCBcIm51bWJlck9mSXRlbXNcIiwge1xuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jaGVja1BhdGhTeW5jaHJvbml6ZWRUb0xpc3QoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2xpc3QubGVuZ3RoO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdy5TVkdQYXRoU2VnTGlzdC5wcm90b3R5cGUsIFwibGVuZ3RoXCIsIHtcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2hlY2tQYXRoU3luY2hyb25pemVkVG9MaXN0KCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9saXN0Lmxlbmd0aDtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3cuU1ZHUGF0aEVsZW1lbnQucHJvdG90eXBlLCBcInBhdGhTZWdMaXN0XCIsIHtcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9wYXRoU2VnTGlzdClcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3BhdGhTZWdMaXN0ID0gbmV3IHdpbmRvdy5TVkdQYXRoU2VnTGlzdCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3BhdGhTZWdMaXN0O1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdy5TVkdQYXRoRWxlbWVudC5wcm90b3R5cGUsIFwibm9ybWFsaXplZFBhdGhTZWdMaXN0XCIsIHtcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucGF0aFNlZ0xpc3Q7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhFbGVtZW50LnByb3RvdHlwZSwgXCJhbmltYXRlZFBhdGhTZWdMaXN0XCIsIHtcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucGF0aFNlZ0xpc3Q7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNWR1BhdGhFbGVtZW50LnByb3RvdHlwZSwgXCJhbmltYXRlZE5vcm1hbGl6ZWRQYXRoU2VnTGlzdFwiLCB7XG4gICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnBhdGhTZWdMaXN0O1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdMaXN0LnByb3RvdHlwZS5fY2hlY2tQYXRoU3luY2hyb25pemVkVG9MaXN0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUxpc3RGcm9tUGF0aE11dGF0aW9ucyh0aGlzLl9wYXRoRWxlbWVudE11dGF0aW9uT2JzZXJ2ZXIudGFrZVJlY29yZHMoKSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdMaXN0LnByb3RvdHlwZS5fdXBkYXRlTGlzdEZyb21QYXRoTXV0YXRpb25zID0gZnVuY3Rpb24gKG11dGF0aW9uUmVjb3Jkcykge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5fcGF0aEVsZW1lbnQpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB2YXIgaGFzUGF0aE11dGF0aW9ucyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIG11dGF0aW9uUmVjb3Jkcy5mb3JFYWNoKGZ1bmN0aW9uIChyZWNvcmQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlY29yZC5hdHRyaWJ1dGVOYW1lID09IFwiZFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgaGFzUGF0aE11dGF0aW9ucyA9IHRydWU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKGhhc1BhdGhNdXRhdGlvbnMpXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2xpc3QgPSB0aGlzLl9wYXJzZVBhdGgodGhpcy5fcGF0aEVsZW1lbnQuZ2V0QXR0cmlidXRlKFwiZFwiKSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdMaXN0LnByb3RvdHlwZS5fd3JpdGVMaXN0VG9QYXRoID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3BhdGhFbGVtZW50TXV0YXRpb25PYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fcGF0aEVsZW1lbnQuc2V0QXR0cmlidXRlKFwiZFwiLCB3aW5kb3cuU1ZHUGF0aFNlZ0xpc3QuX3BhdGhTZWdBcnJheUFzU3RyaW5nKHRoaXMuX2xpc3QpKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9wYXRoRWxlbWVudE11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLl9wYXRoRWxlbWVudCwgdGhpcy5fbXV0YXRpb25PYnNlcnZlckNvbmZpZyk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdMaXN0LnByb3RvdHlwZS5zZWdtZW50Q2hhbmdlZCA9IGZ1bmN0aW9uIChwYXRoU2VnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fd3JpdGVMaXN0VG9QYXRoKCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdMaXN0LnByb3RvdHlwZS5jbGVhciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jaGVja1BhdGhTeW5jaHJvbml6ZWRUb0xpc3QoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9saXN0LmZvckVhY2goZnVuY3Rpb24gKHBhdGhTZWcpIHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aFNlZy5fb3duaW5nUGF0aFNlZ0xpc3QgPSBudWxsO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2xpc3QgPSBbXTtcbiAgICAgICAgICAgICAgICB0aGlzLl93cml0ZUxpc3RUb1BhdGgoKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0xpc3QucHJvdG90eXBlLmluaXRpYWxpemUgPSBmdW5jdGlvbiAobmV3SXRlbSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NoZWNrUGF0aFN5bmNocm9uaXplZFRvTGlzdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2xpc3QgPSBbbmV3SXRlbV07XG4gICAgICAgICAgICAgICAgbmV3SXRlbS5fb3duaW5nUGF0aFNlZ0xpc3QgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoaXMuX3dyaXRlTGlzdFRvUGF0aCgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXdJdGVtO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnTGlzdC5wcm90b3R5cGUuX2NoZWNrVmFsaWRJbmRleCA9IGZ1bmN0aW9uIChpbmRleCkge1xuICAgICAgICAgICAgICAgIGlmIChpc05hTihpbmRleCkgfHwgaW5kZXggPCAwIHx8IGluZGV4ID49IHRoaXMubnVtYmVyT2ZJdGVtcylcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgXCJJTkRFWF9TSVpFX0VSUlwiO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnTGlzdC5wcm90b3R5cGUuZ2V0SXRlbSA9IGZ1bmN0aW9uIChpbmRleCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NoZWNrUGF0aFN5bmNocm9uaXplZFRvTGlzdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2NoZWNrVmFsaWRJbmRleChpbmRleCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2xpc3RbaW5kZXhdO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnTGlzdC5wcm90b3R5cGUuaW5zZXJ0SXRlbUJlZm9yZSA9IGZ1bmN0aW9uIChuZXdJdGVtLCBpbmRleCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NoZWNrUGF0aFN5bmNocm9uaXplZFRvTGlzdCgpO1xuICAgICAgICAgICAgICAgIGlmIChpbmRleCA+IHRoaXMubnVtYmVyT2ZJdGVtcylcbiAgICAgICAgICAgICAgICAgICAgaW5kZXggPSB0aGlzLm51bWJlck9mSXRlbXM7XG4gICAgICAgICAgICAgICAgaWYgKG5ld0l0ZW0uX293bmluZ1BhdGhTZWdMaXN0KSB7XG4gICAgICAgICAgICAgICAgICAgIG5ld0l0ZW0gPSBuZXdJdGVtLmNsb25lKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuX2xpc3Quc3BsaWNlKGluZGV4LCAwLCBuZXdJdGVtKTtcbiAgICAgICAgICAgICAgICBuZXdJdGVtLl9vd25pbmdQYXRoU2VnTGlzdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhpcy5fd3JpdGVMaXN0VG9QYXRoKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ld0l0ZW07XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdMaXN0LnByb3RvdHlwZS5yZXBsYWNlSXRlbSA9IGZ1bmN0aW9uIChuZXdJdGVtLCBpbmRleCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NoZWNrUGF0aFN5bmNocm9uaXplZFRvTGlzdCgpO1xuICAgICAgICAgICAgICAgIGlmIChuZXdJdGVtLl9vd25pbmdQYXRoU2VnTGlzdCkge1xuICAgICAgICAgICAgICAgICAgICBuZXdJdGVtID0gbmV3SXRlbS5jbG9uZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLl9jaGVja1ZhbGlkSW5kZXgoaW5kZXgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2xpc3RbaW5kZXhdID0gbmV3SXRlbTtcbiAgICAgICAgICAgICAgICBuZXdJdGVtLl9vd25pbmdQYXRoU2VnTGlzdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhpcy5fd3JpdGVMaXN0VG9QYXRoKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ld0l0ZW07XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdMaXN0LnByb3RvdHlwZS5yZW1vdmVJdGVtID0gZnVuY3Rpb24gKGluZGV4KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2hlY2tQYXRoU3luY2hyb25pemVkVG9MaXN0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2hlY2tWYWxpZEluZGV4KGluZGV4KTtcbiAgICAgICAgICAgICAgICB2YXIgaXRlbSA9IHRoaXMuX2xpc3RbaW5kZXhdO1xuICAgICAgICAgICAgICAgIHRoaXMuX2xpc3Quc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgICAgICB0aGlzLl93cml0ZUxpc3RUb1BhdGgoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuU1ZHUGF0aFNlZ0xpc3QucHJvdG90eXBlLmFwcGVuZEl0ZW0gPSBmdW5jdGlvbiAobmV3SXRlbSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NoZWNrUGF0aFN5bmNocm9uaXplZFRvTGlzdCgpO1xuICAgICAgICAgICAgICAgIGlmIChuZXdJdGVtLl9vd25pbmdQYXRoU2VnTGlzdCkge1xuICAgICAgICAgICAgICAgICAgICBuZXdJdGVtID0gbmV3SXRlbS5jbG9uZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLl9saXN0LnB1c2gobmV3SXRlbSk7XG4gICAgICAgICAgICAgICAgbmV3SXRlbS5fb3duaW5nUGF0aFNlZ0xpc3QgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoaXMuX3dyaXRlTGlzdFRvUGF0aCgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXdJdGVtO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5TVkdQYXRoU2VnTGlzdC5fcGF0aFNlZ0FycmF5QXNTdHJpbmcgPSBmdW5jdGlvbiAocGF0aFNlZ0FycmF5KSB7XG4gICAgICAgICAgICAgICAgdmFyIHN0cmluZyA9IFwiXCI7XG4gICAgICAgICAgICAgICAgdmFyIGZpcnN0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBwYXRoU2VnQXJyYXkuZm9yRWFjaChmdW5jdGlvbiAocGF0aFNlZykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmlyc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmcgKz0gcGF0aFNlZy5fYXNQYXRoU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmcgKz0gXCIgXCIgKyBwYXRoU2VnLl9hc1BhdGhTdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiBzdHJpbmc7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LlNWR1BhdGhTZWdMaXN0LnByb3RvdHlwZS5fcGFyc2VQYXRoID0gZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgICAgIGlmICghc3RyaW5nIHx8IHN0cmluZy5sZW5ndGggPT0gMClcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgICAgIHZhciBvd25pbmdQYXRoU2VnTGlzdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdmFyIEJ1aWxkZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGF0aFNlZ0xpc3QgPSBbXTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIEJ1aWxkZXIucHJvdG90eXBlLmFwcGVuZFNlZ21lbnQgPSBmdW5jdGlvbiAocGF0aFNlZykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhdGhTZWdMaXN0LnB1c2gocGF0aFNlZyk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB2YXIgU291cmNlID0gZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdHJpbmcgPSBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRJbmRleCA9IDA7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VuZEluZGV4ID0gdGhpcy5fc3RyaW5nLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcHJldmlvdXNDb21tYW5kID0gd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19VTktOT1dOO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9za2lwT3B0aW9uYWxTcGFjZXMoKTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIFNvdXJjZS5wcm90b3R5cGUuX2lzQ3VycmVudFNwYWNlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgY2hhcmFjdGVyID0gdGhpcy5fc3RyaW5nW3RoaXMuX2N1cnJlbnRJbmRleF07XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoY2hhcmFjdGVyIDw9IFwiIFwiICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2hhcmFjdGVyID09IFwiIFwiIHx8IGNoYXJhY3RlciA9PSBcIlxcblwiIHx8IGNoYXJhY3RlciA9PSBcIlxcdFwiIHx8IGNoYXJhY3RlciA9PSBcIlxcclwiIHx8IGNoYXJhY3RlciA9PSBcIlxcZlwiKSk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBTb3VyY2UucHJvdG90eXBlLl9za2lwT3B0aW9uYWxTcGFjZXMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHdoaWxlICh0aGlzLl9jdXJyZW50SW5kZXggPCB0aGlzLl9lbmRJbmRleCAmJiB0aGlzLl9pc0N1cnJlbnRTcGFjZSgpKVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3VycmVudEluZGV4Kys7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9jdXJyZW50SW5kZXggPCB0aGlzLl9lbmRJbmRleDtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIFNvdXJjZS5wcm90b3R5cGUuX3NraXBPcHRpb25hbFNwYWNlc09yRGVsaW1pdGVyID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fY3VycmVudEluZGV4IDwgdGhpcy5fZW5kSW5kZXggJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICF0aGlzLl9pc0N1cnJlbnRTcGFjZSgpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdHJpbmcuY2hhckF0KHRoaXMuX2N1cnJlbnRJbmRleCkgIT0gXCIsXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9za2lwT3B0aW9uYWxTcGFjZXMoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRJbmRleCA8IHRoaXMuX2VuZEluZGV4ICYmIHRoaXMuX3N0cmluZy5jaGFyQXQodGhpcy5fY3VycmVudEluZGV4KSA9PSBcIixcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRJbmRleCsrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3NraXBPcHRpb25hbFNwYWNlcygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9jdXJyZW50SW5kZXggPCB0aGlzLl9lbmRJbmRleDtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIFNvdXJjZS5wcm90b3R5cGUuaGFzTW9yZURhdGEgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9jdXJyZW50SW5kZXggPCB0aGlzLl9lbmRJbmRleDtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIFNvdXJjZS5wcm90b3R5cGUucGVla1NlZ21lbnRUeXBlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgbG9va2FoZWFkID0gdGhpcy5fc3RyaW5nW3RoaXMuX2N1cnJlbnRJbmRleF07XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9wYXRoU2VnVHlwZUZyb21DaGFyKGxvb2thaGVhZCk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBTb3VyY2UucHJvdG90eXBlLl9wYXRoU2VnVHlwZUZyb21DaGFyID0gZnVuY3Rpb24gKGxvb2thaGVhZCkge1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGxvb2thaGVhZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIlpcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJ6XCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfQ0xPU0VQQVRIO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIk1cIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19NT1ZFVE9fQUJTO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIm1cIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19NT1ZFVE9fUkVMO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkxcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19MSU5FVE9fQUJTO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcImxcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19MSU5FVE9fUkVMO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkNcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19DVVJWRVRPX0NVQklDX0FCUztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJjXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfQ1VSVkVUT19DVUJJQ19SRUw7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiUVwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX0FCUztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJxXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfQ1VSVkVUT19RVUFEUkFUSUNfUkVMO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkFcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19BUkNfQUJTO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcImFcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19BUkNfUkVMO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkhcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19MSU5FVE9fSE9SSVpPTlRBTF9BQlM7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiaFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX0xJTkVUT19IT1JJWk9OVEFMX1JFTDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJWXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfTElORVRPX1ZFUlRJQ0FMX0FCUztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJ2XCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfTElORVRPX1ZFUlRJQ0FMX1JFTDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJTXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfQ1VSVkVUT19DVUJJQ19TTU9PVEhfQUJTO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcInNcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19DVVJWRVRPX0NVQklDX1NNT09USF9SRUw7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiVFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX1NNT09USF9BQlM7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwidFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX1NNT09USF9SRUw7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX1VOS05PV047XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIFNvdXJjZS5wcm90b3R5cGUuX25leHRDb21tYW5kSGVscGVyID0gZnVuY3Rpb24gKGxvb2thaGVhZCwgcHJldmlvdXNDb21tYW5kKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICgobG9va2FoZWFkID09IFwiK1wiIHx8IGxvb2thaGVhZCA9PSBcIi1cIiB8fCBsb29rYWhlYWQgPT0gXCIuXCIgfHwgKGxvb2thaGVhZCA+PSBcIjBcIiAmJiBsb29rYWhlYWQgPD0gXCI5XCIpKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNDb21tYW5kICE9IHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfQ0xPU0VQQVRIKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNDb21tYW5kID09IHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfTU9WRVRPX0FCUylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19MSU5FVE9fQUJTO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzQ29tbWFuZCA9PSB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX01PVkVUT19SRUwpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfTElORVRPX1JFTDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwcmV2aW91c0NvbW1hbmQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfVU5LTk9XTjtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIFNvdXJjZS5wcm90b3R5cGUuaW5pdGlhbENvbW1hbmRJc01vdmVUbyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmhhc01vcmVEYXRhKCkpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGNvbW1hbmQgPSB0aGlzLnBlZWtTZWdtZW50VHlwZSgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29tbWFuZCA9PSB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX01PVkVUT19BQlMgfHwgY29tbWFuZCA9PSB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX01PVkVUT19SRUw7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBTb3VyY2UucHJvdG90eXBlLl9wYXJzZU51bWJlciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGV4cG9uZW50ID0gMDtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGludGVnZXIgPSAwO1xuICAgICAgICAgICAgICAgICAgICB2YXIgZnJhYyA9IDE7XG4gICAgICAgICAgICAgICAgICAgIHZhciBkZWNpbWFsID0gMDtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHNpZ24gPSAxO1xuICAgICAgICAgICAgICAgICAgICB2YXIgZXhwc2lnbiA9IDE7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzdGFydEluZGV4ID0gdGhpcy5fY3VycmVudEluZGV4O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9za2lwT3B0aW9uYWxTcGFjZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRJbmRleCA8IHRoaXMuX2VuZEluZGV4ICYmIHRoaXMuX3N0cmluZy5jaGFyQXQodGhpcy5fY3VycmVudEluZGV4KSA9PSBcIitcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRJbmRleCsrO1xuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh0aGlzLl9jdXJyZW50SW5kZXggPCB0aGlzLl9lbmRJbmRleCAmJiB0aGlzLl9zdHJpbmcuY2hhckF0KHRoaXMuX2N1cnJlbnRJbmRleCkgPT0gXCItXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRJbmRleCsrO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2lnbiA9IC0xO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9jdXJyZW50SW5kZXggPT0gdGhpcy5fZW5kSW5kZXggfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICgodGhpcy5fc3RyaW5nLmNoYXJBdCh0aGlzLl9jdXJyZW50SW5kZXgpIDwgXCIwXCIgfHwgdGhpcy5fc3RyaW5nLmNoYXJBdCh0aGlzLl9jdXJyZW50SW5kZXgpID4gXCI5XCIpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RyaW5nLmNoYXJBdCh0aGlzLl9jdXJyZW50SW5kZXgpICE9IFwiLlwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzdGFydEludFBhcnRJbmRleCA9IHRoaXMuX2N1cnJlbnRJbmRleDtcbiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHRoaXMuX2N1cnJlbnRJbmRleCA8IHRoaXMuX2VuZEluZGV4ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdHJpbmcuY2hhckF0KHRoaXMuX2N1cnJlbnRJbmRleCkgPj0gXCIwXCIgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3N0cmluZy5jaGFyQXQodGhpcy5fY3VycmVudEluZGV4KSA8PSBcIjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRJbmRleCsrO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fY3VycmVudEluZGV4ICE9IHN0YXJ0SW50UGFydEluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgc2NhbkludFBhcnRJbmRleCA9IHRoaXMuX2N1cnJlbnRJbmRleCAtIDE7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgbXVsdGlwbGllciA9IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoc2NhbkludFBhcnRJbmRleCA+PSBzdGFydEludFBhcnRJbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVnZXIgKz0gbXVsdGlwbGllciAqICh0aGlzLl9zdHJpbmcuY2hhckF0KHNjYW5JbnRQYXJ0SW5kZXgtLSkgLSBcIjBcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGllciAqPSAxMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fY3VycmVudEluZGV4IDwgdGhpcy5fZW5kSW5kZXggJiYgdGhpcy5fc3RyaW5nLmNoYXJBdCh0aGlzLl9jdXJyZW50SW5kZXgpID09IFwiLlwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50SW5kZXgrKztcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9jdXJyZW50SW5kZXggPj0gdGhpcy5fZW5kSW5kZXggfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdHJpbmcuY2hhckF0KHRoaXMuX2N1cnJlbnRJbmRleCkgPCBcIjBcIiB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3N0cmluZy5jaGFyQXQodGhpcy5fY3VycmVudEluZGV4KSA+IFwiOVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAodGhpcy5fY3VycmVudEluZGV4IDwgdGhpcy5fZW5kSW5kZXggJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdHJpbmcuY2hhckF0KHRoaXMuX2N1cnJlbnRJbmRleCkgPj0gXCIwXCIgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdHJpbmcuY2hhckF0KHRoaXMuX2N1cnJlbnRJbmRleCkgPD0gXCI5XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFjICo9IDEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY2ltYWwgKz0gKHRoaXMuX3N0cmluZy5jaGFyQXQodGhpcy5fY3VycmVudEluZGV4KSAtIFwiMFwiKSAvIGZyYWM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3VycmVudEluZGV4ICs9IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRJbmRleCAhPSBzdGFydEluZGV4ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50SW5kZXggKyAxIDwgdGhpcy5fZW5kSW5kZXggJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLl9zdHJpbmcuY2hhckF0KHRoaXMuX2N1cnJlbnRJbmRleCkgPT0gXCJlXCIgfHwgdGhpcy5fc3RyaW5nLmNoYXJBdCh0aGlzLl9jdXJyZW50SW5kZXgpID09IFwiRVwiKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RyaW5nLmNoYXJBdCh0aGlzLl9jdXJyZW50SW5kZXggKyAxKSAhPSBcInhcIiAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RyaW5nLmNoYXJBdCh0aGlzLl9jdXJyZW50SW5kZXggKyAxKSAhPSBcIm1cIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3VycmVudEluZGV4Kys7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fc3RyaW5nLmNoYXJBdCh0aGlzLl9jdXJyZW50SW5kZXgpID09IFwiK1wiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3VycmVudEluZGV4Kys7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh0aGlzLl9zdHJpbmcuY2hhckF0KHRoaXMuX2N1cnJlbnRJbmRleCkgPT0gXCItXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50SW5kZXgrKztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBzaWduID0gLTE7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fY3VycmVudEluZGV4ID49IHRoaXMuX2VuZEluZGV4IHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RyaW5nLmNoYXJBdCh0aGlzLl9jdXJyZW50SW5kZXgpIDwgXCIwXCIgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdHJpbmcuY2hhckF0KHRoaXMuX2N1cnJlbnRJbmRleCkgPiBcIjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHRoaXMuX2N1cnJlbnRJbmRleCA8IHRoaXMuX2VuZEluZGV4ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RyaW5nLmNoYXJBdCh0aGlzLl9jdXJyZW50SW5kZXgpID49IFwiMFwiICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RyaW5nLmNoYXJBdCh0aGlzLl9jdXJyZW50SW5kZXgpIDw9IFwiOVwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwb25lbnQgKj0gMTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwb25lbnQgKz0gdGhpcy5fc3RyaW5nLmNoYXJBdCh0aGlzLl9jdXJyZW50SW5kZXgpIC0gXCIwXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3VycmVudEluZGV4Kys7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdmFyIG51bWJlciA9IGludGVnZXIgKyBkZWNpbWFsO1xuICAgICAgICAgICAgICAgICAgICBudW1iZXIgKj0gc2lnbjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV4cG9uZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyICo9IE1hdGgucG93KDEwLCBleHBzaWduICogZXhwb25lbnQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3RhcnRJbmRleCA9PSB0aGlzLl9jdXJyZW50SW5kZXgpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9za2lwT3B0aW9uYWxTcGFjZXNPckRlbGltaXRlcigpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgU291cmNlLnByb3RvdHlwZS5fcGFyc2VBcmNGbGFnID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fY3VycmVudEluZGV4ID49IHRoaXMuX2VuZEluZGV4KVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGZsYWcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGZsYWdDaGFyID0gdGhpcy5fc3RyaW5nLmNoYXJBdCh0aGlzLl9jdXJyZW50SW5kZXgrKyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmbGFnQ2hhciA9PSBcIjBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsYWcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoZmxhZ0NoYXIgPT0gXCIxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICBmbGFnID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2tpcE9wdGlvbmFsU3BhY2VzT3JEZWxpbWl0ZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZsYWc7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBTb3VyY2UucHJvdG90eXBlLnBhcnNlU2VnbWVudCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGxvb2thaGVhZCA9IHRoaXMuX3N0cmluZ1t0aGlzLl9jdXJyZW50SW5kZXhdO1xuICAgICAgICAgICAgICAgICAgICB2YXIgY29tbWFuZCA9IHRoaXMuX3BhdGhTZWdUeXBlRnJvbUNoYXIobG9va2FoZWFkKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbW1hbmQgPT0gd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19VTktOT1dOKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fcHJldmlvdXNDb21tYW5kID09IHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfVU5LTk9XTilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmQgPSB0aGlzLl9uZXh0Q29tbWFuZEhlbHBlcihsb29rYWhlYWQsIHRoaXMuX3ByZXZpb3VzQ29tbWFuZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29tbWFuZCA9PSB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX1VOS05PV04pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50SW5kZXgrKztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9wcmV2aW91c0NvbW1hbmQgPSBjb21tYW5kO1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbW1hbmQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2Ugd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19NT1ZFVE9fUkVMOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgd2luZG93LlNWR1BhdGhTZWdNb3ZldG9SZWwob3duaW5nUGF0aFNlZ0xpc3QsIHRoaXMuX3BhcnNlTnVtYmVyKCksIHRoaXMuX3BhcnNlTnVtYmVyKCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX01PVkVUT19BQlM6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyB3aW5kb3cuU1ZHUGF0aFNlZ01vdmV0b0Ficyhvd25pbmdQYXRoU2VnTGlzdCwgdGhpcy5fcGFyc2VOdW1iZXIoKSwgdGhpcy5fcGFyc2VOdW1iZXIoKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfTElORVRPX1JFTDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHdpbmRvdy5TVkdQYXRoU2VnTGluZXRvUmVsKG93bmluZ1BhdGhTZWdMaXN0LCB0aGlzLl9wYXJzZU51bWJlcigpLCB0aGlzLl9wYXJzZU51bWJlcigpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2Ugd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19MSU5FVE9fQUJTOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgd2luZG93LlNWR1BhdGhTZWdMaW5ldG9BYnMob3duaW5nUGF0aFNlZ0xpc3QsIHRoaXMuX3BhcnNlTnVtYmVyKCksIHRoaXMuX3BhcnNlTnVtYmVyKCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX0xJTkVUT19IT1JJWk9OVEFMX1JFTDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHdpbmRvdy5TVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbChvd25pbmdQYXRoU2VnTGlzdCwgdGhpcy5fcGFyc2VOdW1iZXIoKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfTElORVRPX0hPUklaT05UQUxfQUJTOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgd2luZG93LlNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzKG93bmluZ1BhdGhTZWdMaXN0LCB0aGlzLl9wYXJzZU51bWJlcigpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2Ugd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19MSU5FVE9fVkVSVElDQUxfUkVMOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgd2luZG93LlNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbChvd25pbmdQYXRoU2VnTGlzdCwgdGhpcy5fcGFyc2VOdW1iZXIoKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfTElORVRPX1ZFUlRJQ0FMX0FCUzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHdpbmRvdy5TVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMob3duaW5nUGF0aFNlZ0xpc3QsIHRoaXMuX3BhcnNlTnVtYmVyKCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX0NMT1NFUEFUSDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9za2lwT3B0aW9uYWxTcGFjZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHdpbmRvdy5TVkdQYXRoU2VnQ2xvc2VQYXRoKG93bmluZ1BhdGhTZWdMaXN0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2Ugd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19DVVJWRVRPX0NVQklDX1JFTDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcG9pbnRzID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MTogdGhpcy5fcGFyc2VOdW1iZXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeTE6IHRoaXMuX3BhcnNlTnVtYmVyKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyOiB0aGlzLl9wYXJzZU51bWJlcigpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5MjogdGhpcy5fcGFyc2VOdW1iZXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDogdGhpcy5fcGFyc2VOdW1iZXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeTogdGhpcy5fcGFyc2VOdW1iZXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgd2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwob3duaW5nUGF0aFNlZ0xpc3QsIHBvaW50cy54LCBwb2ludHMueSwgcG9pbnRzLngxLCBwb2ludHMueTEsIHBvaW50cy54MiwgcG9pbnRzLnkyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2Ugd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19DVVJWRVRPX0NVQklDX0FCUzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcG9pbnRzID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MTogdGhpcy5fcGFyc2VOdW1iZXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeTE6IHRoaXMuX3BhcnNlTnVtYmVyKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyOiB0aGlzLl9wYXJzZU51bWJlcigpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5MjogdGhpcy5fcGFyc2VOdW1iZXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDogdGhpcy5fcGFyc2VOdW1iZXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeTogdGhpcy5fcGFyc2VOdW1iZXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgd2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMob3duaW5nUGF0aFNlZ0xpc3QsIHBvaW50cy54LCBwb2ludHMueSwgcG9pbnRzLngxLCBwb2ludHMueTEsIHBvaW50cy54MiwgcG9pbnRzLnkyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2Ugd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19DVVJWRVRPX0NVQklDX1NNT09USF9SRUw6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBvaW50cyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDI6IHRoaXMuX3BhcnNlTnVtYmVyKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHkyOiB0aGlzLl9wYXJzZU51bWJlcigpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4OiB0aGlzLl9wYXJzZU51bWJlcigpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5OiB0aGlzLl9wYXJzZU51bWJlcigpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyB3aW5kb3cuU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbChvd25pbmdQYXRoU2VnTGlzdCwgcG9pbnRzLngsIHBvaW50cy55LCBwb2ludHMueDIsIHBvaW50cy55Mik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfQ1VSVkVUT19DVUJJQ19TTU9PVEhfQUJTOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwb2ludHMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyOiB0aGlzLl9wYXJzZU51bWJlcigpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5MjogdGhpcy5fcGFyc2VOdW1iZXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDogdGhpcy5fcGFyc2VOdW1iZXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeTogdGhpcy5fcGFyc2VOdW1iZXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgd2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMob3duaW5nUGF0aFNlZ0xpc3QsIHBvaW50cy54LCBwb2ludHMueSwgcG9pbnRzLngyLCBwb2ludHMueTIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSB3aW5kb3cuU1ZHUGF0aFNlZy5QQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX1JFTDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcG9pbnRzID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MTogdGhpcy5fcGFyc2VOdW1iZXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeTE6IHRoaXMuX3BhcnNlTnVtYmVyKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHg6IHRoaXMuX3BhcnNlTnVtYmVyKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHk6IHRoaXMuX3BhcnNlTnVtYmVyKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHdpbmRvdy5TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbChvd25pbmdQYXRoU2VnTGlzdCwgcG9pbnRzLngsIHBvaW50cy55LCBwb2ludHMueDEsIHBvaW50cy55MSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfQ1VSVkVUT19RVUFEUkFUSUNfQUJTOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwb2ludHMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgxOiB0aGlzLl9wYXJzZU51bWJlcigpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5MTogdGhpcy5fcGFyc2VOdW1iZXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDogdGhpcy5fcGFyc2VOdW1iZXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeTogdGhpcy5fcGFyc2VOdW1iZXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgd2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzKG93bmluZ1BhdGhTZWdMaXN0LCBwb2ludHMueCwgcG9pbnRzLnksIHBvaW50cy54MSwgcG9pbnRzLnkxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2Ugd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19DVVJWRVRPX1FVQURSQVRJQ19TTU9PVEhfUkVMOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgd2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsKG93bmluZ1BhdGhTZWdMaXN0LCB0aGlzLl9wYXJzZU51bWJlcigpLCB0aGlzLl9wYXJzZU51bWJlcigpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2Ugd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19DVVJWRVRPX1FVQURSQVRJQ19TTU9PVEhfQUJTOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgd2luZG93LlNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzKG93bmluZ1BhdGhTZWdMaXN0LCB0aGlzLl9wYXJzZU51bWJlcigpLCB0aGlzLl9wYXJzZU51bWJlcigpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2Ugd2luZG93LlNWR1BhdGhTZWcuUEFUSFNFR19BUkNfUkVMOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwb2ludHMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgxOiB0aGlzLl9wYXJzZU51bWJlcigpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5MTogdGhpcy5fcGFyc2VOdW1iZXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJjQW5nbGU6IHRoaXMuX3BhcnNlTnVtYmVyKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyY0xhcmdlOiB0aGlzLl9wYXJzZUFyY0ZsYWcoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJjU3dlZXA6IHRoaXMuX3BhcnNlQXJjRmxhZygpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4OiB0aGlzLl9wYXJzZU51bWJlcigpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5OiB0aGlzLl9wYXJzZU51bWJlcigpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyB3aW5kb3cuU1ZHUGF0aFNlZ0FyY1JlbChvd25pbmdQYXRoU2VnTGlzdCwgcG9pbnRzLngsIHBvaW50cy55LCBwb2ludHMueDEsIHBvaW50cy55MSwgcG9pbnRzLmFyY0FuZ2xlLCBwb2ludHMuYXJjTGFyZ2UsIHBvaW50cy5hcmNTd2VlcCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHdpbmRvdy5TVkdQYXRoU2VnLlBBVEhTRUdfQVJDX0FCUzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcG9pbnRzID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MTogdGhpcy5fcGFyc2VOdW1iZXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeTE6IHRoaXMuX3BhcnNlTnVtYmVyKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyY0FuZ2xlOiB0aGlzLl9wYXJzZU51bWJlcigpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmNMYXJnZTogdGhpcy5fcGFyc2VBcmNGbGFnKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyY1N3ZWVwOiB0aGlzLl9wYXJzZUFyY0ZsYWcoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDogdGhpcy5fcGFyc2VOdW1iZXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeTogdGhpcy5fcGFyc2VOdW1iZXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgd2luZG93LlNWR1BhdGhTZWdBcmNBYnMob3duaW5nUGF0aFNlZ0xpc3QsIHBvaW50cy54LCBwb2ludHMueSwgcG9pbnRzLngxLCBwb2ludHMueTEsIHBvaW50cy5hcmNBbmdsZSwgcG9pbnRzLmFyY0xhcmdlLCBwb2ludHMuYXJjU3dlZXApO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBcIlVua25vd24gcGF0aCBzZWcgdHlwZS5cIjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgdmFyIGJ1aWxkZXIgPSBuZXcgQnVpbGRlcigpO1xuICAgICAgICAgICAgICAgIHZhciBzb3VyY2UgPSBuZXcgU291cmNlKHN0cmluZyk7XG4gICAgICAgICAgICAgICAgaWYgKCFzb3VyY2UuaW5pdGlhbENvbW1hbmRJc01vdmVUbygpKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICAgICAgd2hpbGUgKHNvdXJjZS5oYXNNb3JlRGF0YSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBwYXRoU2VnID0gc291cmNlLnBhcnNlU2VnbWVudCgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXBhdGhTZWcpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kU2VnbWVudChwYXRoU2VnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJ1aWxkZXIucGF0aFNlZ0xpc3Q7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuICAgIGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcIkFuIGVycm9yIG9jY3VycmVkIGluIHRzUGFydGljbGVzIHBhdGhzZWcgcG9seWZpbGwuIElmIHRoZSBQb2x5Z29uIE1hc2sgaXMgbm90IHdvcmtpbmcsIHBsZWFzZSBvcGVuIGFuIGlzc3VlIGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9tYXR0ZW9icnVuaS90c3BhcnRpY2xlc1wiLCBlKTtcbiAgICB9XG59KSgpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/PolygonMask/pathseg.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/PolygonMask/plugin.js": +/*!****************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/PolygonMask/plugin.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadPolygonMaskPlugin = void 0;\nconst PolygonMaskInstance_1 = __webpack_require__(/*! ./PolygonMaskInstance */ \"./node_modules/tsparticles/Plugins/PolygonMask/PolygonMaskInstance.js\");\nconst PolygonMask_1 = __webpack_require__(/*! ./Options/Classes/PolygonMask */ \"./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/PolygonMask.js\");\nconst Enums_1 = __webpack_require__(/*! ./Enums */ \"./node_modules/tsparticles/Plugins/PolygonMask/Enums/index.js\");\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass Plugin {\n constructor() {\n this.id = \"polygonMask\";\n }\n getPlugin(container) {\n return new PolygonMaskInstance_1.PolygonMaskInstance(container);\n }\n needsPlugin(options) {\n var _a, _b, _c;\n return (_b = (_a = options === null || options === void 0 ? void 0 : options.polygon) === null || _a === void 0 ? void 0 : _a.enable) !== null && _b !== void 0 ? _b : (((_c = options === null || options === void 0 ? void 0 : options.polygon) === null || _c === void 0 ? void 0 : _c.type) !== undefined && options.polygon.type !== Enums_1.Type.none);\n }\n loadOptions(options, source) {\n if (!this.needsPlugin(source)) {\n return;\n }\n const optionsCast = options;\n let polygonOptions = optionsCast.polygon;\n if ((polygonOptions === null || polygonOptions === void 0 ? void 0 : polygonOptions.load) === undefined) {\n optionsCast.polygon = polygonOptions = new PolygonMask_1.PolygonMask();\n }\n polygonOptions.load(source === null || source === void 0 ? void 0 : source.polygon);\n }\n}\nasync function loadPolygonMaskPlugin(tsParticles) {\n if (!(0, Utils_1.isSsr)() && !window.SVGPathSeg) {\n await Promise.resolve().then(() => __importStar(__webpack_require__(/*! ./pathseg */ \"./node_modules/tsparticles/Plugins/PolygonMask/pathseg.js\")));\n }\n const plugin = new Plugin();\n await tsParticles.addPlugin(plugin);\n}\nexports.loadPolygonMaskPlugin = loadPolygonMaskPlugin;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9Qb2x5Z29uTWFzay9wbHVnaW4uanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBO0FBQ0EsbUNBQW1DLG9DQUFvQyxnQkFBZ0I7QUFDdkYsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQSwwQ0FBMEMsNEJBQTRCO0FBQ3RFLENBQUM7QUFDRDtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCw2QkFBNkI7QUFDN0IsOEJBQThCLG1CQUFPLENBQUMsb0dBQXVCO0FBQzdELHNCQUFzQixtQkFBTyxDQUFDLG9IQUErQjtBQUM3RCxnQkFBZ0IsbUJBQU8sQ0FBQyw4RUFBUztBQUNqQyxnQkFBZ0IsbUJBQU8sQ0FBQyw4REFBYTtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdEQUF3RCxtQkFBTyxDQUFDLDRFQUFXO0FBQzNFO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9QbHVnaW5zL1BvbHlnb25NYXNrL3BsdWdpbi5qcz80NmMyIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9fY3JlYXRlQmluZGluZyA9ICh0aGlzICYmIHRoaXMuX19jcmVhdGVCaW5kaW5nKSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH0pO1xufSkgOiAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIG9bazJdID0gbVtrXTtcbn0pKTtcbnZhciBfX3NldE1vZHVsZURlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9fc2V0TW9kdWxlRGVmYXVsdCkgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgdikge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBcImRlZmF1bHRcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdiB9KTtcbn0pIDogZnVuY3Rpb24obywgdikge1xuICAgIG9bXCJkZWZhdWx0XCJdID0gdjtcbn0pO1xudmFyIF9faW1wb3J0U3RhciA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnRTdGFyKSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDtcbiAgICB2YXIgcmVzdWx0ID0ge307XG4gICAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrIGluIG1vZCkgaWYgKGsgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChtb2QsIGspKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGspO1xuICAgIF9fc2V0TW9kdWxlRGVmYXVsdChyZXN1bHQsIG1vZCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmxvYWRQb2x5Z29uTWFza1BsdWdpbiA9IHZvaWQgMDtcbmNvbnN0IFBvbHlnb25NYXNrSW5zdGFuY2VfMSA9IHJlcXVpcmUoXCIuL1BvbHlnb25NYXNrSW5zdGFuY2VcIik7XG5jb25zdCBQb2x5Z29uTWFza18xID0gcmVxdWlyZShcIi4vT3B0aW9ucy9DbGFzc2VzL1BvbHlnb25NYXNrXCIpO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuL0VudW1zXCIpO1xuY29uc3QgVXRpbHNfMSA9IHJlcXVpcmUoXCIuLi8uLi9VdGlsc1wiKTtcbmNsYXNzIFBsdWdpbiB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuaWQgPSBcInBvbHlnb25NYXNrXCI7XG4gICAgfVxuICAgIGdldFBsdWdpbihjb250YWluZXIpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQb2x5Z29uTWFza0luc3RhbmNlXzEuUG9seWdvbk1hc2tJbnN0YW5jZShjb250YWluZXIpO1xuICAgIH1cbiAgICBuZWVkc1BsdWdpbihvcHRpb25zKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICByZXR1cm4gKF9iID0gKF9hID0gb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLnBvbHlnb24pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5lbmFibGUpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6ICgoKF9jID0gb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLnBvbHlnb24pID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy50eXBlKSAhPT0gdW5kZWZpbmVkICYmIG9wdGlvbnMucG9seWdvbi50eXBlICE9PSBFbnVtc18xLlR5cGUubm9uZSk7XG4gICAgfVxuICAgIGxvYWRPcHRpb25zKG9wdGlvbnMsIHNvdXJjZSkge1xuICAgICAgICBpZiAoIXRoaXMubmVlZHNQbHVnaW4oc291cmNlKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG9wdGlvbnNDYXN0ID0gb3B0aW9ucztcbiAgICAgICAgbGV0IHBvbHlnb25PcHRpb25zID0gb3B0aW9uc0Nhc3QucG9seWdvbjtcbiAgICAgICAgaWYgKChwb2x5Z29uT3B0aW9ucyA9PT0gbnVsbCB8fCBwb2x5Z29uT3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcG9seWdvbk9wdGlvbnMubG9hZCkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgb3B0aW9uc0Nhc3QucG9seWdvbiA9IHBvbHlnb25PcHRpb25zID0gbmV3IFBvbHlnb25NYXNrXzEuUG9seWdvbk1hc2soKTtcbiAgICAgICAgfVxuICAgICAgICBwb2x5Z29uT3B0aW9ucy5sb2FkKHNvdXJjZSA9PT0gbnVsbCB8fCBzb3VyY2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNvdXJjZS5wb2x5Z29uKTtcbiAgICB9XG59XG5hc3luYyBmdW5jdGlvbiBsb2FkUG9seWdvbk1hc2tQbHVnaW4odHNQYXJ0aWNsZXMpIHtcbiAgICBpZiAoISgwLCBVdGlsc18xLmlzU3NyKSgpICYmICF3aW5kb3cuU1ZHUGF0aFNlZykge1xuICAgICAgICBhd2FpdCBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IF9faW1wb3J0U3RhcihyZXF1aXJlKFwiLi9wYXRoc2VnXCIpKSk7XG4gICAgfVxuICAgIGNvbnN0IHBsdWdpbiA9IG5ldyBQbHVnaW4oKTtcbiAgICBhd2FpdCB0c1BhcnRpY2xlcy5hZGRQbHVnaW4ocGx1Z2luKTtcbn1cbmV4cG9ydHMubG9hZFBvbHlnb25NYXNrUGx1Z2luID0gbG9hZFBvbHlnb25NYXNrUGx1Z2luO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/PolygonMask/plugin.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Plugins/PolygonMask/utils.js": +/*!***************************************************************!*\ + !*** ./node_modules/tsparticles/Plugins/PolygonMask/utils.js ***! + \***************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.segmentBounce = exports.calcClosestPtOnSegment = exports.parsePaths = exports.drawPolygonMaskPath = exports.drawPolygonMask = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nfunction drawPolygonMask(context, rawData, stroke) {\n const color = (0, Utils_1.colorToRgb)(stroke.color);\n if (!color) {\n return;\n }\n context.beginPath();\n context.moveTo(rawData[0].x, rawData[0].y);\n for (const item of rawData) {\n context.lineTo(item.x, item.y);\n }\n context.closePath();\n context.strokeStyle = (0, Utils_1.getStyleFromRgb)(color);\n context.lineWidth = stroke.width;\n context.stroke();\n}\nexports.drawPolygonMask = drawPolygonMask;\nfunction drawPolygonMaskPath(context, path, stroke, position) {\n context.translate(position.x, position.y);\n const color = (0, Utils_1.colorToRgb)(stroke.color);\n if (!color) {\n return;\n }\n context.strokeStyle = (0, Utils_1.getStyleFromRgb)(color, stroke.opacity);\n context.lineWidth = stroke.width;\n context.stroke(path);\n}\nexports.drawPolygonMaskPath = drawPolygonMaskPath;\nfunction parsePaths(paths, scale, offset) {\n var _a;\n const res = [];\n for (const path of paths) {\n const segments = path.element.pathSegList;\n const len = (_a = segments === null || segments === void 0 ? void 0 : segments.numberOfItems) !== null && _a !== void 0 ? _a : 0;\n const p = {\n x: 0,\n y: 0,\n };\n for (let i = 0; i < len; i++) {\n const segment = segments === null || segments === void 0 ? void 0 : segments.getItem(i);\n const svgPathSeg = window.SVGPathSeg;\n switch (segment === null || segment === void 0 ? void 0 : segment.pathSegType) {\n case svgPathSeg.PATHSEG_MOVETO_ABS:\n case svgPathSeg.PATHSEG_LINETO_ABS:\n case svgPathSeg.PATHSEG_CURVETO_CUBIC_ABS:\n case svgPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS:\n case svgPathSeg.PATHSEG_ARC_ABS:\n case svgPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS:\n case svgPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS: {\n const absSeg = segment;\n p.x = absSeg.x;\n p.y = absSeg.y;\n break;\n }\n case svgPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS:\n p.x = segment.x;\n break;\n case svgPathSeg.PATHSEG_LINETO_VERTICAL_ABS:\n p.y = segment.y;\n break;\n case svgPathSeg.PATHSEG_LINETO_REL:\n case svgPathSeg.PATHSEG_MOVETO_REL:\n case svgPathSeg.PATHSEG_CURVETO_CUBIC_REL:\n case svgPathSeg.PATHSEG_CURVETO_QUADRATIC_REL:\n case svgPathSeg.PATHSEG_ARC_REL:\n case svgPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL:\n case svgPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL: {\n const relSeg = segment;\n p.x += relSeg.x;\n p.y += relSeg.y;\n break;\n }\n case svgPathSeg.PATHSEG_LINETO_HORIZONTAL_REL:\n p.x += segment.x;\n break;\n case svgPathSeg.PATHSEG_LINETO_VERTICAL_REL:\n p.y += segment.y;\n break;\n case svgPathSeg.PATHSEG_UNKNOWN:\n case svgPathSeg.PATHSEG_CLOSEPATH:\n continue;\n }\n res.push({\n x: p.x * scale + offset.x,\n y: p.y * scale + offset.y,\n });\n }\n }\n return res;\n}\nexports.parsePaths = parsePaths;\nfunction calcClosestPtOnSegment(s1, s2, pos) {\n const { dx, dy } = (0, Utils_1.getDistances)(pos, s1);\n const { dx: dxx, dy: dyy } = (0, Utils_1.getDistances)(s2, s1);\n const t = (dx * dxx + dy * dyy) / (dxx ** 2 + dyy ** 2);\n let x = s1.x + dxx * t;\n let y = s1.y + dyy * t;\n if (t < 0) {\n x = s1.x;\n y = s1.y;\n }\n else if (t > 1) {\n x = s2.x;\n y = s2.y;\n }\n return { x: x, y: y, isOnSegment: t >= 0 && t <= 1 };\n}\nexports.calcClosestPtOnSegment = calcClosestPtOnSegment;\nfunction segmentBounce(start, stop, velocity) {\n const { dx, dy } = (0, Utils_1.getDistances)(start, stop);\n const wallAngle = Math.atan2(dy, dx);\n const wallNormalX = Math.sin(wallAngle);\n const wallNormalY = -Math.cos(wallAngle);\n const d = 2 * (velocity.x * wallNormalX + velocity.y * wallNormalY);\n velocity.x -= d * wallNormalX;\n velocity.y -= d * wallNormalY;\n}\nexports.segmentBounce = segmentBounce;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9Qb2x5Z29uTWFzay91dGlscy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxxQkFBcUIsR0FBRyw4QkFBOEIsR0FBRyxrQkFBa0IsR0FBRywyQkFBMkIsR0FBRyx1QkFBdUI7QUFDbkksZ0JBQWdCLG1CQUFPLENBQUMsOERBQWE7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLFNBQVM7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQSxZQUFZLFNBQVM7QUFDckIsWUFBWSxtQkFBbUI7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLDhCQUE4QjtBQUM5QjtBQUNBLFlBQVksU0FBUztBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvUGx1Z2lucy9Qb2x5Z29uTWFzay91dGlscy5qcz9jMGFjIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5zZWdtZW50Qm91bmNlID0gZXhwb3J0cy5jYWxjQ2xvc2VzdFB0T25TZWdtZW50ID0gZXhwb3J0cy5wYXJzZVBhdGhzID0gZXhwb3J0cy5kcmF3UG9seWdvbk1hc2tQYXRoID0gZXhwb3J0cy5kcmF3UG9seWdvbk1hc2sgPSB2b2lkIDA7XG5jb25zdCBVdGlsc18xID0gcmVxdWlyZShcIi4uLy4uL1V0aWxzXCIpO1xuZnVuY3Rpb24gZHJhd1BvbHlnb25NYXNrKGNvbnRleHQsIHJhd0RhdGEsIHN0cm9rZSkge1xuICAgIGNvbnN0IGNvbG9yID0gKDAsIFV0aWxzXzEuY29sb3JUb1JnYikoc3Ryb2tlLmNvbG9yKTtcbiAgICBpZiAoIWNvbG9yKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcbiAgICBjb250ZXh0Lm1vdmVUbyhyYXdEYXRhWzBdLngsIHJhd0RhdGFbMF0ueSk7XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIHJhd0RhdGEpIHtcbiAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBpdGVtLnkpO1xuICAgIH1cbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xuICAgIGNvbnRleHQuc3Ryb2tlU3R5bGUgPSAoMCwgVXRpbHNfMS5nZXRTdHlsZUZyb21SZ2IpKGNvbG9yKTtcbiAgICBjb250ZXh0LmxpbmVXaWR0aCA9IHN0cm9rZS53aWR0aDtcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xufVxuZXhwb3J0cy5kcmF3UG9seWdvbk1hc2sgPSBkcmF3UG9seWdvbk1hc2s7XG5mdW5jdGlvbiBkcmF3UG9seWdvbk1hc2tQYXRoKGNvbnRleHQsIHBhdGgsIHN0cm9rZSwgcG9zaXRpb24pIHtcbiAgICBjb250ZXh0LnRyYW5zbGF0ZShwb3NpdGlvbi54LCBwb3NpdGlvbi55KTtcbiAgICBjb25zdCBjb2xvciA9ICgwLCBVdGlsc18xLmNvbG9yVG9SZ2IpKHN0cm9rZS5jb2xvcik7XG4gICAgaWYgKCFjb2xvcikge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnRleHQuc3Ryb2tlU3R5bGUgPSAoMCwgVXRpbHNfMS5nZXRTdHlsZUZyb21SZ2IpKGNvbG9yLCBzdHJva2Uub3BhY2l0eSk7XG4gICAgY29udGV4dC5saW5lV2lkdGggPSBzdHJva2Uud2lkdGg7XG4gICAgY29udGV4dC5zdHJva2UocGF0aCk7XG59XG5leHBvcnRzLmRyYXdQb2x5Z29uTWFza1BhdGggPSBkcmF3UG9seWdvbk1hc2tQYXRoO1xuZnVuY3Rpb24gcGFyc2VQYXRocyhwYXRocywgc2NhbGUsIG9mZnNldCkge1xuICAgIHZhciBfYTtcbiAgICBjb25zdCByZXMgPSBbXTtcbiAgICBmb3IgKGNvbnN0IHBhdGggb2YgcGF0aHMpIHtcbiAgICAgICAgY29uc3Qgc2VnbWVudHMgPSBwYXRoLmVsZW1lbnQucGF0aFNlZ0xpc3Q7XG4gICAgICAgIGNvbnN0IGxlbiA9IChfYSA9IHNlZ21lbnRzID09PSBudWxsIHx8IHNlZ21lbnRzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZWdtZW50cy5udW1iZXJPZkl0ZW1zKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAwO1xuICAgICAgICBjb25zdCBwID0ge1xuICAgICAgICAgICAgeDogMCxcbiAgICAgICAgICAgIHk6IDAsXG4gICAgICAgIH07XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHNlZ21lbnQgPSBzZWdtZW50cyA9PT0gbnVsbCB8fCBzZWdtZW50cyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2VnbWVudHMuZ2V0SXRlbShpKTtcbiAgICAgICAgICAgIGNvbnN0IHN2Z1BhdGhTZWcgPSB3aW5kb3cuU1ZHUGF0aFNlZztcbiAgICAgICAgICAgIHN3aXRjaCAoc2VnbWVudCA9PT0gbnVsbCB8fCBzZWdtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZWdtZW50LnBhdGhTZWdUeXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBzdmdQYXRoU2VnLlBBVEhTRUdfTU9WRVRPX0FCUzpcbiAgICAgICAgICAgICAgICBjYXNlIHN2Z1BhdGhTZWcuUEFUSFNFR19MSU5FVE9fQUJTOlxuICAgICAgICAgICAgICAgIGNhc2Ugc3ZnUGF0aFNlZy5QQVRIU0VHX0NVUlZFVE9fQ1VCSUNfQUJTOlxuICAgICAgICAgICAgICAgIGNhc2Ugc3ZnUGF0aFNlZy5QQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX0FCUzpcbiAgICAgICAgICAgICAgICBjYXNlIHN2Z1BhdGhTZWcuUEFUSFNFR19BUkNfQUJTOlxuICAgICAgICAgICAgICAgIGNhc2Ugc3ZnUGF0aFNlZy5QQVRIU0VHX0NVUlZFVE9fQ1VCSUNfU01PT1RIX0FCUzpcbiAgICAgICAgICAgICAgICBjYXNlIHN2Z1BhdGhTZWcuUEFUSFNFR19DVVJWRVRPX1FVQURSQVRJQ19TTU9PVEhfQUJTOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFic1NlZyA9IHNlZ21lbnQ7XG4gICAgICAgICAgICAgICAgICAgIHAueCA9IGFic1NlZy54O1xuICAgICAgICAgICAgICAgICAgICBwLnkgPSBhYnNTZWcueTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2Ugc3ZnUGF0aFNlZy5QQVRIU0VHX0xJTkVUT19IT1JJWk9OVEFMX0FCUzpcbiAgICAgICAgICAgICAgICAgICAgcC54ID0gc2VnbWVudC54O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIHN2Z1BhdGhTZWcuUEFUSFNFR19MSU5FVE9fVkVSVElDQUxfQUJTOlxuICAgICAgICAgICAgICAgICAgICBwLnkgPSBzZWdtZW50Lnk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2Ugc3ZnUGF0aFNlZy5QQVRIU0VHX0xJTkVUT19SRUw6XG4gICAgICAgICAgICAgICAgY2FzZSBzdmdQYXRoU2VnLlBBVEhTRUdfTU9WRVRPX1JFTDpcbiAgICAgICAgICAgICAgICBjYXNlIHN2Z1BhdGhTZWcuUEFUSFNFR19DVVJWRVRPX0NVQklDX1JFTDpcbiAgICAgICAgICAgICAgICBjYXNlIHN2Z1BhdGhTZWcuUEFUSFNFR19DVVJWRVRPX1FVQURSQVRJQ19SRUw6XG4gICAgICAgICAgICAgICAgY2FzZSBzdmdQYXRoU2VnLlBBVEhTRUdfQVJDX1JFTDpcbiAgICAgICAgICAgICAgICBjYXNlIHN2Z1BhdGhTZWcuUEFUSFNFR19DVVJWRVRPX0NVQklDX1NNT09USF9SRUw6XG4gICAgICAgICAgICAgICAgY2FzZSBzdmdQYXRoU2VnLlBBVEhTRUdfQ1VSVkVUT19RVUFEUkFUSUNfU01PT1RIX1JFTDoge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZWxTZWcgPSBzZWdtZW50O1xuICAgICAgICAgICAgICAgICAgICBwLnggKz0gcmVsU2VnLng7XG4gICAgICAgICAgICAgICAgICAgIHAueSArPSByZWxTZWcueTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2Ugc3ZnUGF0aFNlZy5QQVRIU0VHX0xJTkVUT19IT1JJWk9OVEFMX1JFTDpcbiAgICAgICAgICAgICAgICAgICAgcC54ICs9IHNlZ21lbnQueDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBzdmdQYXRoU2VnLlBBVEhTRUdfTElORVRPX1ZFUlRJQ0FMX1JFTDpcbiAgICAgICAgICAgICAgICAgICAgcC55ICs9IHNlZ21lbnQueTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBzdmdQYXRoU2VnLlBBVEhTRUdfVU5LTk9XTjpcbiAgICAgICAgICAgICAgICBjYXNlIHN2Z1BhdGhTZWcuUEFUSFNFR19DTE9TRVBBVEg6XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzLnB1c2goe1xuICAgICAgICAgICAgICAgIHg6IHAueCAqIHNjYWxlICsgb2Zmc2V0LngsXG4gICAgICAgICAgICAgICAgeTogcC55ICogc2NhbGUgKyBvZmZzZXQueSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXM7XG59XG5leHBvcnRzLnBhcnNlUGF0aHMgPSBwYXJzZVBhdGhzO1xuZnVuY3Rpb24gY2FsY0Nsb3Nlc3RQdE9uU2VnbWVudChzMSwgczIsIHBvcykge1xuICAgIGNvbnN0IHsgZHgsIGR5IH0gPSAoMCwgVXRpbHNfMS5nZXREaXN0YW5jZXMpKHBvcywgczEpO1xuICAgIGNvbnN0IHsgZHg6IGR4eCwgZHk6IGR5eSB9ID0gKDAsIFV0aWxzXzEuZ2V0RGlzdGFuY2VzKShzMiwgczEpO1xuICAgIGNvbnN0IHQgPSAoZHggKiBkeHggKyBkeSAqIGR5eSkgLyAoZHh4ICoqIDIgKyBkeXkgKiogMik7XG4gICAgbGV0IHggPSBzMS54ICsgZHh4ICogdDtcbiAgICBsZXQgeSA9IHMxLnkgKyBkeXkgKiB0O1xuICAgIGlmICh0IDwgMCkge1xuICAgICAgICB4ID0gczEueDtcbiAgICAgICAgeSA9IHMxLnk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHQgPiAxKSB7XG4gICAgICAgIHggPSBzMi54O1xuICAgICAgICB5ID0gczIueTtcbiAgICB9XG4gICAgcmV0dXJuIHsgeDogeCwgeTogeSwgaXNPblNlZ21lbnQ6IHQgPj0gMCAmJiB0IDw9IDEgfTtcbn1cbmV4cG9ydHMuY2FsY0Nsb3Nlc3RQdE9uU2VnbWVudCA9IGNhbGNDbG9zZXN0UHRPblNlZ21lbnQ7XG5mdW5jdGlvbiBzZWdtZW50Qm91bmNlKHN0YXJ0LCBzdG9wLCB2ZWxvY2l0eSkge1xuICAgIGNvbnN0IHsgZHgsIGR5IH0gPSAoMCwgVXRpbHNfMS5nZXREaXN0YW5jZXMpKHN0YXJ0LCBzdG9wKTtcbiAgICBjb25zdCB3YWxsQW5nbGUgPSBNYXRoLmF0YW4yKGR5LCBkeCk7XG4gICAgY29uc3Qgd2FsbE5vcm1hbFggPSBNYXRoLnNpbih3YWxsQW5nbGUpO1xuICAgIGNvbnN0IHdhbGxOb3JtYWxZID0gLU1hdGguY29zKHdhbGxBbmdsZSk7XG4gICAgY29uc3QgZCA9IDIgKiAodmVsb2NpdHkueCAqIHdhbGxOb3JtYWxYICsgdmVsb2NpdHkueSAqIHdhbGxOb3JtYWxZKTtcbiAgICB2ZWxvY2l0eS54IC09IGQgKiB3YWxsTm9ybWFsWDtcbiAgICB2ZWxvY2l0eS55IC09IGQgKiB3YWxsTm9ybWFsWTtcbn1cbmV4cG9ydHMuc2VnbWVudEJvdW5jZSA9IHNlZ21lbnRCb3VuY2U7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Plugins/PolygonMask/utils.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Shapes/Circle/CircleDrawer.js": +/*!****************************************************************!*\ + !*** ./node_modules/tsparticles/Shapes/Circle/CircleDrawer.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.CircleDrawer = void 0;\nclass CircleDrawer {\n getSidesCount() {\n return 12;\n }\n draw(context, particle, radius) {\n context.arc(0, 0, radius, 0, Math.PI * 2, false);\n }\n}\nexports.CircleDrawer = CircleDrawer;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL0NpcmNsZS9DaXJjbGVEcmF3ZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1NoYXBlcy9DaXJjbGUvQ2lyY2xlRHJhd2VyLmpzP2NmMmMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkNpcmNsZURyYXdlciA9IHZvaWQgMDtcbmNsYXNzIENpcmNsZURyYXdlciB7XG4gICAgZ2V0U2lkZXNDb3VudCgpIHtcbiAgICAgICAgcmV0dXJuIDEyO1xuICAgIH1cbiAgICBkcmF3KGNvbnRleHQsIHBhcnRpY2xlLCByYWRpdXMpIHtcbiAgICAgICAgY29udGV4dC5hcmMoMCwgMCwgcmFkaXVzLCAwLCBNYXRoLlBJICogMiwgZmFsc2UpO1xuICAgIH1cbn1cbmV4cG9ydHMuQ2lyY2xlRHJhd2VyID0gQ2lyY2xlRHJhd2VyO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Shapes/Circle/CircleDrawer.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Shapes/Circle/index.js": +/*!*********************************************************!*\ + !*** ./node_modules/tsparticles/Shapes/Circle/index.js ***! + \*********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadCircleShape = void 0;\nconst CircleDrawer_1 = __webpack_require__(/*! ./CircleDrawer */ \"./node_modules/tsparticles/Shapes/Circle/CircleDrawer.js\");\nasync function loadCircleShape(tsParticles) {\n await tsParticles.addShape(\"circle\", new CircleDrawer_1.CircleDrawer());\n}\nexports.loadCircleShape = loadCircleShape;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL0NpcmNsZS9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCx1QkFBdUI7QUFDdkIsdUJBQXVCLG1CQUFPLENBQUMsZ0ZBQWdCO0FBQy9DO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL0NpcmNsZS9pbmRleC5qcz81NzQyIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5sb2FkQ2lyY2xlU2hhcGUgPSB2b2lkIDA7XG5jb25zdCBDaXJjbGVEcmF3ZXJfMSA9IHJlcXVpcmUoXCIuL0NpcmNsZURyYXdlclwiKTtcbmFzeW5jIGZ1bmN0aW9uIGxvYWRDaXJjbGVTaGFwZSh0c1BhcnRpY2xlcykge1xuICAgIGF3YWl0IHRzUGFydGljbGVzLmFkZFNoYXBlKFwiY2lyY2xlXCIsIG5ldyBDaXJjbGVEcmF3ZXJfMS5DaXJjbGVEcmF3ZXIoKSk7XG59XG5leHBvcnRzLmxvYWRDaXJjbGVTaGFwZSA9IGxvYWRDaXJjbGVTaGFwZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Shapes/Circle/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Shapes/Image/ImageDrawer.js": +/*!**************************************************************!*\ + !*** ./node_modules/tsparticles/Shapes/Image/ImageDrawer.js ***! + \**************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _ImageDrawer_images;\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ImageDrawer = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Enums_1 = __webpack_require__(/*! ../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst Utils_2 = __webpack_require__(/*! ./Utils */ \"./node_modules/tsparticles/Shapes/Image/Utils.js\");\nclass ImageDrawer {\n constructor() {\n _ImageDrawer_images.set(this, void 0);\n __classPrivateFieldSet(this, _ImageDrawer_images, [], \"f\");\n }\n getSidesCount() {\n return 12;\n }\n getImages(container) {\n const containerImages = __classPrivateFieldGet(this, _ImageDrawer_images, \"f\").find((t) => t.id === container.id);\n if (!containerImages) {\n __classPrivateFieldGet(this, _ImageDrawer_images, \"f\").push({\n id: container.id,\n images: [],\n });\n return this.getImages(container);\n }\n else {\n return containerImages;\n }\n }\n addImage(container, image) {\n const containerImages = this.getImages(container);\n containerImages === null || containerImages === void 0 ? void 0 : containerImages.images.push(image);\n }\n async init(container) {\n await this.loadImagesFromParticlesOptions(container, container.actualOptions.particles);\n await this.loadImagesFromParticlesOptions(container, container.actualOptions.interactivity.modes.trail.particles);\n for (const manualParticle of container.actualOptions.manualParticles) {\n await this.loadImagesFromParticlesOptions(container, manualParticle.options);\n }\n const emitterOptions = container.actualOptions;\n if (emitterOptions.emitters) {\n if (emitterOptions.emitters instanceof Array) {\n for (const emitter of emitterOptions.emitters) {\n await this.loadImagesFromParticlesOptions(container, emitter.particles);\n }\n }\n else {\n await this.loadImagesFromParticlesOptions(container, emitterOptions.emitters.particles);\n }\n }\n const interactiveEmitters = emitterOptions.interactivity.modes.emitters;\n if (interactiveEmitters) {\n if (interactiveEmitters instanceof Array) {\n for (const emitter of interactiveEmitters) {\n await this.loadImagesFromParticlesOptions(container, emitter.particles);\n }\n }\n else {\n await this.loadImagesFromParticlesOptions(container, interactiveEmitters.particles);\n }\n }\n }\n destroy() {\n __classPrivateFieldSet(this, _ImageDrawer_images, [], \"f\");\n }\n async loadImagesFromParticlesOptions(container, options) {\n var _a, _b, _c;\n const shapeOptions = options === null || options === void 0 ? void 0 : options.shape;\n if (!(shapeOptions === null || shapeOptions === void 0 ? void 0 : shapeOptions.type) ||\n !shapeOptions.options ||\n (!(0, Utils_1.isInArray)(Enums_1.ShapeType.image, shapeOptions.type) && !(0, Utils_1.isInArray)(Enums_1.ShapeType.images, shapeOptions.type))) {\n return;\n }\n const idx = __classPrivateFieldGet(this, _ImageDrawer_images, \"f\").findIndex((t) => t.id === container.id);\n if (idx >= 0) {\n __classPrivateFieldGet(this, _ImageDrawer_images, \"f\").splice(idx, 1);\n }\n const imageOptions = (_a = shapeOptions.options[Enums_1.ShapeType.images]) !== null && _a !== void 0 ? _a : shapeOptions.options[Enums_1.ShapeType.image];\n if (imageOptions instanceof Array) {\n for (const optionsImage of imageOptions) {\n await this.loadImageShape(container, optionsImage);\n }\n }\n else {\n await this.loadImageShape(container, imageOptions);\n }\n if (options === null || options === void 0 ? void 0 : options.groups) {\n for (const groupName in options.groups) {\n const group = options.groups[groupName];\n await this.loadImagesFromParticlesOptions(container, group);\n }\n }\n if ((_c = (_b = options === null || options === void 0 ? void 0 : options.destroy) === null || _b === void 0 ? void 0 : _b.split) === null || _c === void 0 ? void 0 : _c.particles) {\n await this.loadImagesFromParticlesOptions(container, options === null || options === void 0 ? void 0 : options.destroy.split.particles);\n }\n }\n async loadImageShape(container, imageShape) {\n try {\n const imageFunc = imageShape.replaceColor ? Utils_2.downloadSvgImage : Utils_2.loadImage;\n const image = await imageFunc(imageShape.src);\n if (image) {\n this.addImage(container, image);\n }\n }\n catch (_a) {\n console.warn(`tsParticles error - ${imageShape.src} not found`);\n }\n }\n draw(context, particle, radius, opacity) {\n var _a, _b;\n if (!context) {\n return;\n }\n const image = particle.image;\n const element = (_a = image === null || image === void 0 ? void 0 : image.data) === null || _a === void 0 ? void 0 : _a.element;\n if (!element) {\n return;\n }\n const ratio = (_b = image === null || image === void 0 ? void 0 : image.ratio) !== null && _b !== void 0 ? _b : 1;\n const pos = {\n x: -radius,\n y: -radius,\n };\n if (!(image === null || image === void 0 ? void 0 : image.data.svgData) || !(image === null || image === void 0 ? void 0 : image.replaceColor)) {\n context.globalAlpha = opacity;\n }\n context.drawImage(element, pos.x, pos.y, radius * 2, (radius * 2) / ratio);\n if (!(image === null || image === void 0 ? void 0 : image.data.svgData) || !(image === null || image === void 0 ? void 0 : image.replaceColor)) {\n context.globalAlpha = 1;\n }\n }\n loadShape(particle) {\n var _a, _b, _c, _d, _e, _f, _g;\n if (particle.shape !== \"image\" && particle.shape !== \"images\") {\n return;\n }\n const images = this.getImages(particle.container).images;\n const imageData = particle.shapeData;\n const image = (_a = images.find((t) => t.source === imageData.src)) !== null && _a !== void 0 ? _a : images[0];\n const color = particle.getFillColor();\n let imageRes;\n if (!image) {\n return;\n }\n if (image.svgData !== undefined && imageData.replaceColor && color) {\n const svgColoredData = (0, Utils_2.replaceColorSvg)(image, color, (_c = (_b = particle.opacity) === null || _b === void 0 ? void 0 : _b.value) !== null && _c !== void 0 ? _c : 1);\n const svg = new Blob([svgColoredData], { type: \"image/svg+xml\" });\n const domUrl = URL || window.URL || window.webkitURL || window;\n const url = domUrl.createObjectURL(svg);\n const img = new Image();\n imageRes = {\n data: Object.assign(Object.assign({}, image), { svgData: svgColoredData }),\n ratio: imageData.width / imageData.height,\n replaceColor: (_d = imageData.replaceColor) !== null && _d !== void 0 ? _d : imageData.replace_color,\n source: imageData.src,\n };\n img.addEventListener(\"load\", () => {\n const pImage = particle.image;\n if (pImage) {\n pImage.loaded = true;\n image.element = img;\n }\n domUrl.revokeObjectURL(url);\n });\n img.addEventListener(\"error\", () => {\n domUrl.revokeObjectURL(url);\n (0, Utils_2.loadImage)(imageData.src).then((img2) => {\n const pImage = particle.image;\n if (pImage) {\n image.element = img2 === null || img2 === void 0 ? void 0 : img2.element;\n pImage.loaded = true;\n }\n });\n });\n img.src = url;\n }\n else {\n imageRes = {\n data: image,\n loaded: true,\n ratio: imageData.width / imageData.height,\n replaceColor: (_e = imageData.replaceColor) !== null && _e !== void 0 ? _e : imageData.replace_color,\n source: imageData.src,\n };\n }\n if (!imageRes.ratio) {\n imageRes.ratio = 1;\n }\n const fill = (_f = imageData.fill) !== null && _f !== void 0 ? _f : particle.fill;\n const close = (_g = imageData.close) !== null && _g !== void 0 ? _g : particle.close;\n const imageShape = {\n image: imageRes,\n fill,\n close,\n };\n particle.image = imageShape.image;\n particle.fill = imageShape.fill;\n particle.close = imageShape.close;\n }\n}\nexports.ImageDrawer = ImageDrawer;\n_ImageDrawer_images = new WeakMap();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL0ltYWdlL0ltYWdlRHJhd2VyLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELG1CQUFtQjtBQUNuQixnQkFBZ0IsbUJBQU8sQ0FBQyw4REFBYTtBQUNyQyxnQkFBZ0IsbUJBQU8sQ0FBQyw4REFBYTtBQUNyQyxnQkFBZ0IsbUJBQU8sQ0FBQyxpRUFBUztBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0RBQWdELGdCQUFnQjtBQUNoRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFEQUFxRCx1QkFBdUI7QUFDNUU7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvREFBb0QsWUFBWSx5QkFBeUI7QUFDekY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CO0FBQ25CIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9TaGFwZXMvSW1hZ2UvSW1hZ2VEcmF3ZXIuanM/OGZhZSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0ID0gKHRoaXMgJiYgdGhpcy5fX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KSB8fCBmdW5jdGlvbiAocmVjZWl2ZXIsIHN0YXRlLCB2YWx1ZSwga2luZCwgZikge1xuICAgIGlmIChraW5kID09PSBcIm1cIikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgbWV0aG9kIGlzIG5vdCB3cml0YWJsZVwiKTtcbiAgICBpZiAoa2luZCA9PT0gXCJhXCIgJiYgIWYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBzZXR0ZXJcIik7XG4gICAgaWYgKHR5cGVvZiBzdGF0ZSA9PT0gXCJmdW5jdGlvblwiID8gcmVjZWl2ZXIgIT09IHN0YXRlIHx8ICFmIDogIXN0YXRlLmhhcyhyZWNlaXZlcikpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3Qgd3JpdGUgcHJpdmF0ZSBtZW1iZXIgdG8gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdFwiKTtcbiAgICByZXR1cm4gKGtpbmQgPT09IFwiYVwiID8gZi5jYWxsKHJlY2VpdmVyLCB2YWx1ZSkgOiBmID8gZi52YWx1ZSA9IHZhbHVlIDogc3RhdGUuc2V0KHJlY2VpdmVyLCB2YWx1ZSkpLCB2YWx1ZTtcbn07XG52YXIgX19jbGFzc1ByaXZhdGVGaWVsZEdldCA9ICh0aGlzICYmIHRoaXMuX19jbGFzc1ByaXZhdGVGaWVsZEdldCkgfHwgZnVuY3Rpb24gKHJlY2VpdmVyLCBzdGF0ZSwga2luZCwgZikge1xuICAgIGlmIChraW5kID09PSBcImFcIiAmJiAhZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIGdldHRlclwiKTtcbiAgICBpZiAodHlwZW9mIHN0YXRlID09PSBcImZ1bmN0aW9uXCIgPyByZWNlaXZlciAhPT0gc3RhdGUgfHwgIWYgOiAhc3RhdGUuaGFzKHJlY2VpdmVyKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCByZWFkIHByaXZhdGUgbWVtYmVyIGZyb20gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdFwiKTtcbiAgICByZXR1cm4ga2luZCA9PT0gXCJtXCIgPyBmIDoga2luZCA9PT0gXCJhXCIgPyBmLmNhbGwocmVjZWl2ZXIpIDogZiA/IGYudmFsdWUgOiBzdGF0ZS5nZXQocmVjZWl2ZXIpO1xufTtcbnZhciBfSW1hZ2VEcmF3ZXJfaW1hZ2VzO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5JbWFnZURyYXdlciA9IHZvaWQgMDtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vVXRpbHNcIik7XG5jb25zdCBFbnVtc18xID0gcmVxdWlyZShcIi4uLy4uL0VudW1zXCIpO1xuY29uc3QgVXRpbHNfMiA9IHJlcXVpcmUoXCIuL1V0aWxzXCIpO1xuY2xhc3MgSW1hZ2VEcmF3ZXIge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBfSW1hZ2VEcmF3ZXJfaW1hZ2VzLnNldCh0aGlzLCB2b2lkIDApO1xuICAgICAgICBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KHRoaXMsIF9JbWFnZURyYXdlcl9pbWFnZXMsIFtdLCBcImZcIik7XG4gICAgfVxuICAgIGdldFNpZGVzQ291bnQoKSB7XG4gICAgICAgIHJldHVybiAxMjtcbiAgICB9XG4gICAgZ2V0SW1hZ2VzKGNvbnRhaW5lcikge1xuICAgICAgICBjb25zdCBjb250YWluZXJJbWFnZXMgPSBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KHRoaXMsIF9JbWFnZURyYXdlcl9pbWFnZXMsIFwiZlwiKS5maW5kKCh0KSA9PiB0LmlkID09PSBjb250YWluZXIuaWQpO1xuICAgICAgICBpZiAoIWNvbnRhaW5lckltYWdlcykge1xuICAgICAgICAgICAgX19jbGFzc1ByaXZhdGVGaWVsZEdldCh0aGlzLCBfSW1hZ2VEcmF3ZXJfaW1hZ2VzLCBcImZcIikucHVzaCh7XG4gICAgICAgICAgICAgICAgaWQ6IGNvbnRhaW5lci5pZCxcbiAgICAgICAgICAgICAgICBpbWFnZXM6IFtdLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRJbWFnZXMoY29udGFpbmVyKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBjb250YWluZXJJbWFnZXM7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYWRkSW1hZ2UoY29udGFpbmVyLCBpbWFnZSkge1xuICAgICAgICBjb25zdCBjb250YWluZXJJbWFnZXMgPSB0aGlzLmdldEltYWdlcyhjb250YWluZXIpO1xuICAgICAgICBjb250YWluZXJJbWFnZXMgPT09IG51bGwgfHwgY29udGFpbmVySW1hZ2VzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjb250YWluZXJJbWFnZXMuaW1hZ2VzLnB1c2goaW1hZ2UpO1xuICAgIH1cbiAgICBhc3luYyBpbml0KGNvbnRhaW5lcikge1xuICAgICAgICBhd2FpdCB0aGlzLmxvYWRJbWFnZXNGcm9tUGFydGljbGVzT3B0aW9ucyhjb250YWluZXIsIGNvbnRhaW5lci5hY3R1YWxPcHRpb25zLnBhcnRpY2xlcyk7XG4gICAgICAgIGF3YWl0IHRoaXMubG9hZEltYWdlc0Zyb21QYXJ0aWNsZXNPcHRpb25zKGNvbnRhaW5lciwgY29udGFpbmVyLmFjdHVhbE9wdGlvbnMuaW50ZXJhY3Rpdml0eS5tb2Rlcy50cmFpbC5wYXJ0aWNsZXMpO1xuICAgICAgICBmb3IgKGNvbnN0IG1hbnVhbFBhcnRpY2xlIG9mIGNvbnRhaW5lci5hY3R1YWxPcHRpb25zLm1hbnVhbFBhcnRpY2xlcykge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5sb2FkSW1hZ2VzRnJvbVBhcnRpY2xlc09wdGlvbnMoY29udGFpbmVyLCBtYW51YWxQYXJ0aWNsZS5vcHRpb25zKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlbWl0dGVyT3B0aW9ucyA9IGNvbnRhaW5lci5hY3R1YWxPcHRpb25zO1xuICAgICAgICBpZiAoZW1pdHRlck9wdGlvbnMuZW1pdHRlcnMpIHtcbiAgICAgICAgICAgIGlmIChlbWl0dGVyT3B0aW9ucy5lbWl0dGVycyBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBlbWl0dGVyIG9mIGVtaXR0ZXJPcHRpb25zLmVtaXR0ZXJzKSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMubG9hZEltYWdlc0Zyb21QYXJ0aWNsZXNPcHRpb25zKGNvbnRhaW5lciwgZW1pdHRlci5wYXJ0aWNsZXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMubG9hZEltYWdlc0Zyb21QYXJ0aWNsZXNPcHRpb25zKGNvbnRhaW5lciwgZW1pdHRlck9wdGlvbnMuZW1pdHRlcnMucGFydGljbGVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpbnRlcmFjdGl2ZUVtaXR0ZXJzID0gZW1pdHRlck9wdGlvbnMuaW50ZXJhY3Rpdml0eS5tb2Rlcy5lbWl0dGVycztcbiAgICAgICAgaWYgKGludGVyYWN0aXZlRW1pdHRlcnMpIHtcbiAgICAgICAgICAgIGlmIChpbnRlcmFjdGl2ZUVtaXR0ZXJzIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGVtaXR0ZXIgb2YgaW50ZXJhY3RpdmVFbWl0dGVycykge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmxvYWRJbWFnZXNGcm9tUGFydGljbGVzT3B0aW9ucyhjb250YWluZXIsIGVtaXR0ZXIucGFydGljbGVzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmxvYWRJbWFnZXNGcm9tUGFydGljbGVzT3B0aW9ucyhjb250YWluZXIsIGludGVyYWN0aXZlRW1pdHRlcnMucGFydGljbGVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBkZXN0cm95KCkge1xuICAgICAgICBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KHRoaXMsIF9JbWFnZURyYXdlcl9pbWFnZXMsIFtdLCBcImZcIik7XG4gICAgfVxuICAgIGFzeW5jIGxvYWRJbWFnZXNGcm9tUGFydGljbGVzT3B0aW9ucyhjb250YWluZXIsIG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgIGNvbnN0IHNoYXBlT3B0aW9ucyA9IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5zaGFwZTtcbiAgICAgICAgaWYgKCEoc2hhcGVPcHRpb25zID09PSBudWxsIHx8IHNoYXBlT3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2hhcGVPcHRpb25zLnR5cGUpIHx8XG4gICAgICAgICAgICAhc2hhcGVPcHRpb25zLm9wdGlvbnMgfHxcbiAgICAgICAgICAgICghKDAsIFV0aWxzXzEuaXNJbkFycmF5KShFbnVtc18xLlNoYXBlVHlwZS5pbWFnZSwgc2hhcGVPcHRpb25zLnR5cGUpICYmICEoMCwgVXRpbHNfMS5pc0luQXJyYXkpKEVudW1zXzEuU2hhcGVUeXBlLmltYWdlcywgc2hhcGVPcHRpb25zLnR5cGUpKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlkeCA9IF9fY2xhc3NQcml2YXRlRmllbGRHZXQodGhpcywgX0ltYWdlRHJhd2VyX2ltYWdlcywgXCJmXCIpLmZpbmRJbmRleCgodCkgPT4gdC5pZCA9PT0gY29udGFpbmVyLmlkKTtcbiAgICAgICAgaWYgKGlkeCA+PSAwKSB7XG4gICAgICAgICAgICBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KHRoaXMsIF9JbWFnZURyYXdlcl9pbWFnZXMsIFwiZlwiKS5zcGxpY2UoaWR4LCAxKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpbWFnZU9wdGlvbnMgPSAoX2EgPSBzaGFwZU9wdGlvbnMub3B0aW9uc1tFbnVtc18xLlNoYXBlVHlwZS5pbWFnZXNdKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBzaGFwZU9wdGlvbnMub3B0aW9uc1tFbnVtc18xLlNoYXBlVHlwZS5pbWFnZV07XG4gICAgICAgIGlmIChpbWFnZU9wdGlvbnMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBvcHRpb25zSW1hZ2Ugb2YgaW1hZ2VPcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5sb2FkSW1hZ2VTaGFwZShjb250YWluZXIsIG9wdGlvbnNJbWFnZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmxvYWRJbWFnZVNoYXBlKGNvbnRhaW5lciwgaW1hZ2VPcHRpb25zKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmdyb3Vwcykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBncm91cE5hbWUgaW4gb3B0aW9ucy5ncm91cHMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBncm91cCA9IG9wdGlvbnMuZ3JvdXBzW2dyb3VwTmFtZV07XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5sb2FkSW1hZ2VzRnJvbVBhcnRpY2xlc09wdGlvbnMoY29udGFpbmVyLCBncm91cCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKChfYyA9IChfYiA9IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5kZXN0cm95KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Iuc3BsaXQpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5wYXJ0aWNsZXMpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMubG9hZEltYWdlc0Zyb21QYXJ0aWNsZXNPcHRpb25zKGNvbnRhaW5lciwgb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmRlc3Ryb3kuc3BsaXQucGFydGljbGVzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhc3luYyBsb2FkSW1hZ2VTaGFwZShjb250YWluZXIsIGltYWdlU2hhcGUpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGltYWdlRnVuYyA9IGltYWdlU2hhcGUucmVwbGFjZUNvbG9yID8gVXRpbHNfMi5kb3dubG9hZFN2Z0ltYWdlIDogVXRpbHNfMi5sb2FkSW1hZ2U7XG4gICAgICAgICAgICBjb25zdCBpbWFnZSA9IGF3YWl0IGltYWdlRnVuYyhpbWFnZVNoYXBlLnNyYyk7XG4gICAgICAgICAgICBpZiAoaW1hZ2UpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZEltYWdlKGNvbnRhaW5lciwgaW1hZ2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChfYSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGB0c1BhcnRpY2xlcyBlcnJvciAtICR7aW1hZ2VTaGFwZS5zcmN9IG5vdCBmb3VuZGApO1xuICAgICAgICB9XG4gICAgfVxuICAgIGRyYXcoY29udGV4dCwgcGFydGljbGUsIHJhZGl1cywgb3BhY2l0eSkge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpbWFnZSA9IHBhcnRpY2xlLmltYWdlO1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gKF9hID0gaW1hZ2UgPT09IG51bGwgfHwgaW1hZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGltYWdlLmRhdGEpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5lbGVtZW50O1xuICAgICAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByYXRpbyA9IChfYiA9IGltYWdlID09PSBudWxsIHx8IGltYWdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBpbWFnZS5yYXRpbykgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogMTtcbiAgICAgICAgY29uc3QgcG9zID0ge1xuICAgICAgICAgICAgeDogLXJhZGl1cyxcbiAgICAgICAgICAgIHk6IC1yYWRpdXMsXG4gICAgICAgIH07XG4gICAgICAgIGlmICghKGltYWdlID09PSBudWxsIHx8IGltYWdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBpbWFnZS5kYXRhLnN2Z0RhdGEpIHx8ICEoaW1hZ2UgPT09IG51bGwgfHwgaW1hZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGltYWdlLnJlcGxhY2VDb2xvcikpIHtcbiAgICAgICAgICAgIGNvbnRleHQuZ2xvYmFsQWxwaGEgPSBvcGFjaXR5O1xuICAgICAgICB9XG4gICAgICAgIGNvbnRleHQuZHJhd0ltYWdlKGVsZW1lbnQsIHBvcy54LCBwb3MueSwgcmFkaXVzICogMiwgKHJhZGl1cyAqIDIpIC8gcmF0aW8pO1xuICAgICAgICBpZiAoIShpbWFnZSA9PT0gbnVsbCB8fCBpbWFnZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogaW1hZ2UuZGF0YS5zdmdEYXRhKSB8fCAhKGltYWdlID09PSBudWxsIHx8IGltYWdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBpbWFnZS5yZXBsYWNlQ29sb3IpKSB7XG4gICAgICAgICAgICBjb250ZXh0Lmdsb2JhbEFscGhhID0gMTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBsb2FkU2hhcGUocGFydGljbGUpIHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kLCBfZSwgX2YsIF9nO1xuICAgICAgICBpZiAocGFydGljbGUuc2hhcGUgIT09IFwiaW1hZ2VcIiAmJiBwYXJ0aWNsZS5zaGFwZSAhPT0gXCJpbWFnZXNcIikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGltYWdlcyA9IHRoaXMuZ2V0SW1hZ2VzKHBhcnRpY2xlLmNvbnRhaW5lcikuaW1hZ2VzO1xuICAgICAgICBjb25zdCBpbWFnZURhdGEgPSBwYXJ0aWNsZS5zaGFwZURhdGE7XG4gICAgICAgIGNvbnN0IGltYWdlID0gKF9hID0gaW1hZ2VzLmZpbmQoKHQpID0+IHQuc291cmNlID09PSBpbWFnZURhdGEuc3JjKSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogaW1hZ2VzWzBdO1xuICAgICAgICBjb25zdCBjb2xvciA9IHBhcnRpY2xlLmdldEZpbGxDb2xvcigpO1xuICAgICAgICBsZXQgaW1hZ2VSZXM7XG4gICAgICAgIGlmICghaW1hZ2UpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW1hZ2Uuc3ZnRGF0YSAhPT0gdW5kZWZpbmVkICYmIGltYWdlRGF0YS5yZXBsYWNlQ29sb3IgJiYgY29sb3IpIHtcbiAgICAgICAgICAgIGNvbnN0IHN2Z0NvbG9yZWREYXRhID0gKDAsIFV0aWxzXzIucmVwbGFjZUNvbG9yU3ZnKShpbWFnZSwgY29sb3IsIChfYyA9IChfYiA9IHBhcnRpY2xlLm9wYWNpdHkpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi52YWx1ZSkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogMSk7XG4gICAgICAgICAgICBjb25zdCBzdmcgPSBuZXcgQmxvYihbc3ZnQ29sb3JlZERhdGFdLCB7IHR5cGU6IFwiaW1hZ2Uvc3ZnK3htbFwiIH0pO1xuICAgICAgICAgICAgY29uc3QgZG9tVXJsID0gVVJMIHx8IHdpbmRvdy5VUkwgfHwgd2luZG93LndlYmtpdFVSTCB8fCB3aW5kb3c7XG4gICAgICAgICAgICBjb25zdCB1cmwgPSBkb21VcmwuY3JlYXRlT2JqZWN0VVJMKHN2Zyk7XG4gICAgICAgICAgICBjb25zdCBpbWcgPSBuZXcgSW1hZ2UoKTtcbiAgICAgICAgICAgIGltYWdlUmVzID0ge1xuICAgICAgICAgICAgICAgIGRhdGE6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgaW1hZ2UpLCB7IHN2Z0RhdGE6IHN2Z0NvbG9yZWREYXRhIH0pLFxuICAgICAgICAgICAgICAgIHJhdGlvOiBpbWFnZURhdGEud2lkdGggLyBpbWFnZURhdGEuaGVpZ2h0LFxuICAgICAgICAgICAgICAgIHJlcGxhY2VDb2xvcjogKF9kID0gaW1hZ2VEYXRhLnJlcGxhY2VDb2xvcikgIT09IG51bGwgJiYgX2QgIT09IHZvaWQgMCA/IF9kIDogaW1hZ2VEYXRhLnJlcGxhY2VfY29sb3IsXG4gICAgICAgICAgICAgICAgc291cmNlOiBpbWFnZURhdGEuc3JjLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGltZy5hZGRFdmVudExpc3RlbmVyKFwibG9hZFwiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcEltYWdlID0gcGFydGljbGUuaW1hZ2U7XG4gICAgICAgICAgICAgICAgaWYgKHBJbWFnZSkge1xuICAgICAgICAgICAgICAgICAgICBwSW1hZ2UubG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2UuZWxlbWVudCA9IGltZztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZG9tVXJsLnJldm9rZU9iamVjdFVSTCh1cmwpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpbWcuYWRkRXZlbnRMaXN0ZW5lcihcImVycm9yXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICBkb21VcmwucmV2b2tlT2JqZWN0VVJMKHVybCk7XG4gICAgICAgICAgICAgICAgKDAsIFV0aWxzXzIubG9hZEltYWdlKShpbWFnZURhdGEuc3JjKS50aGVuKChpbWcyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBJbWFnZSA9IHBhcnRpY2xlLmltYWdlO1xuICAgICAgICAgICAgICAgICAgICBpZiAocEltYWdlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbWFnZS5lbGVtZW50ID0gaW1nMiA9PT0gbnVsbCB8fCBpbWcyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBpbWcyLmVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBwSW1hZ2UubG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpbWcuc3JjID0gdXJsO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaW1hZ2VSZXMgPSB7XG4gICAgICAgICAgICAgICAgZGF0YTogaW1hZ2UsXG4gICAgICAgICAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHJhdGlvOiBpbWFnZURhdGEud2lkdGggLyBpbWFnZURhdGEuaGVpZ2h0LFxuICAgICAgICAgICAgICAgIHJlcGxhY2VDb2xvcjogKF9lID0gaW1hZ2VEYXRhLnJlcGxhY2VDb2xvcikgIT09IG51bGwgJiYgX2UgIT09IHZvaWQgMCA/IF9lIDogaW1hZ2VEYXRhLnJlcGxhY2VfY29sb3IsXG4gICAgICAgICAgICAgICAgc291cmNlOiBpbWFnZURhdGEuc3JjLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWltYWdlUmVzLnJhdGlvKSB7XG4gICAgICAgICAgICBpbWFnZVJlcy5yYXRpbyA9IDE7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZmlsbCA9IChfZiA9IGltYWdlRGF0YS5maWxsKSAhPT0gbnVsbCAmJiBfZiAhPT0gdm9pZCAwID8gX2YgOiBwYXJ0aWNsZS5maWxsO1xuICAgICAgICBjb25zdCBjbG9zZSA9IChfZyA9IGltYWdlRGF0YS5jbG9zZSkgIT09IG51bGwgJiYgX2cgIT09IHZvaWQgMCA/IF9nIDogcGFydGljbGUuY2xvc2U7XG4gICAgICAgIGNvbnN0IGltYWdlU2hhcGUgPSB7XG4gICAgICAgICAgICBpbWFnZTogaW1hZ2VSZXMsXG4gICAgICAgICAgICBmaWxsLFxuICAgICAgICAgICAgY2xvc2UsXG4gICAgICAgIH07XG4gICAgICAgIHBhcnRpY2xlLmltYWdlID0gaW1hZ2VTaGFwZS5pbWFnZTtcbiAgICAgICAgcGFydGljbGUuZmlsbCA9IGltYWdlU2hhcGUuZmlsbDtcbiAgICAgICAgcGFydGljbGUuY2xvc2UgPSBpbWFnZVNoYXBlLmNsb3NlO1xuICAgIH1cbn1cbmV4cG9ydHMuSW1hZ2VEcmF3ZXIgPSBJbWFnZURyYXdlcjtcbl9JbWFnZURyYXdlcl9pbWFnZXMgPSBuZXcgV2Vha01hcCgpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Shapes/Image/ImageDrawer.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Shapes/Image/Utils.js": +/*!********************************************************!*\ + !*** ./node_modules/tsparticles/Shapes/Image/Utils.js ***! + \********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.replaceColorSvg = exports.downloadSvgImage = exports.loadImage = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nfunction loadImage(source) {\n return new Promise((resolve, reject) => {\n if (!source) {\n reject(\"Error tsParticles - No image.src\");\n return;\n }\n const image = {\n source: source,\n type: source.substr(source.length - 3),\n };\n const img = new Image();\n img.addEventListener(\"load\", () => {\n image.element = img;\n resolve(image);\n });\n img.addEventListener(\"error\", () => {\n reject(`Error tsParticles - loading image: ${source}`);\n });\n img.src = source;\n });\n}\nexports.loadImage = loadImage;\nasync function downloadSvgImage(source) {\n if (!source) {\n throw new Error(\"Error tsParticles - No image.src\");\n }\n const image = {\n source: source,\n type: source.substr(source.length - 3),\n };\n if (image.type !== \"svg\") {\n return loadImage(source);\n }\n const response = await fetch(image.source);\n if (!response.ok) {\n throw new Error(\"Error tsParticles - Image not found\");\n }\n image.svgData = await response.text();\n return image;\n}\nexports.downloadSvgImage = downloadSvgImage;\nfunction replaceColorSvg(imageShape, color, opacity) {\n const { svgData } = imageShape;\n if (!svgData) {\n return \"\";\n }\n if (svgData.includes(\"fill\")) {\n const currentColor = /(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\\((-?\\d+%?[,\\s]+){2,3}\\s*[\\d.]+%?\\))|currentcolor/gi;\n return svgData.replace(currentColor, () => (0, Utils_1.getStyleFromHsl)(color, opacity));\n }\n const preFillIndex = svgData.indexOf(\">\");\n return `${svgData.substring(0, preFillIndex)} fill=\"${(0, Utils_1.getStyleFromHsl)(color, opacity)}\"${svgData.substring(preFillIndex)}`;\n}\nexports.replaceColorSvg = replaceColorSvg;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL0ltYWdlL1V0aWxzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHVCQUF1QixHQUFHLHdCQUF3QixHQUFHLGlCQUFpQjtBQUN0RSxnQkFBZ0IsbUJBQU8sQ0FBQyw4REFBYTtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EseURBQXlELE9BQU87QUFDaEUsU0FBUztBQUNUO0FBQ0EsS0FBSztBQUNMO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBLFlBQVksVUFBVTtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRDQUE0QyxFQUFFLEVBQUUsSUFBSSxZQUFZLEVBQUUsK0JBQStCLElBQUk7QUFDckc7QUFDQTtBQUNBO0FBQ0EsY0FBYyxvQ0FBb0MsUUFBUSw2Q0FBNkMsR0FBRyxnQ0FBZ0M7QUFDMUk7QUFDQSx1QkFBdUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1NoYXBlcy9JbWFnZS9VdGlscy5qcz8yN2E0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5yZXBsYWNlQ29sb3JTdmcgPSBleHBvcnRzLmRvd25sb2FkU3ZnSW1hZ2UgPSBleHBvcnRzLmxvYWRJbWFnZSA9IHZvaWQgMDtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vVXRpbHNcIik7XG5mdW5jdGlvbiBsb2FkSW1hZ2Uoc291cmNlKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgaWYgKCFzb3VyY2UpIHtcbiAgICAgICAgICAgIHJlamVjdChcIkVycm9yIHRzUGFydGljbGVzIC0gTm8gaW1hZ2Uuc3JjXCIpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGltYWdlID0ge1xuICAgICAgICAgICAgc291cmNlOiBzb3VyY2UsXG4gICAgICAgICAgICB0eXBlOiBzb3VyY2Uuc3Vic3RyKHNvdXJjZS5sZW5ndGggLSAzKSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgaW1nID0gbmV3IEltYWdlKCk7XG4gICAgICAgIGltZy5hZGRFdmVudExpc3RlbmVyKFwibG9hZFwiLCAoKSA9PiB7XG4gICAgICAgICAgICBpbWFnZS5lbGVtZW50ID0gaW1nO1xuICAgICAgICAgICAgcmVzb2x2ZShpbWFnZSk7XG4gICAgICAgIH0pO1xuICAgICAgICBpbWcuYWRkRXZlbnRMaXN0ZW5lcihcImVycm9yXCIsICgpID0+IHtcbiAgICAgICAgICAgIHJlamVjdChgRXJyb3IgdHNQYXJ0aWNsZXMgLSBsb2FkaW5nIGltYWdlOiAke3NvdXJjZX1gKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGltZy5zcmMgPSBzb3VyY2U7XG4gICAgfSk7XG59XG5leHBvcnRzLmxvYWRJbWFnZSA9IGxvYWRJbWFnZTtcbmFzeW5jIGZ1bmN0aW9uIGRvd25sb2FkU3ZnSW1hZ2Uoc291cmNlKSB7XG4gICAgaWYgKCFzb3VyY2UpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXJyb3IgdHNQYXJ0aWNsZXMgLSBObyBpbWFnZS5zcmNcIik7XG4gICAgfVxuICAgIGNvbnN0IGltYWdlID0ge1xuICAgICAgICBzb3VyY2U6IHNvdXJjZSxcbiAgICAgICAgdHlwZTogc291cmNlLnN1YnN0cihzb3VyY2UubGVuZ3RoIC0gMyksXG4gICAgfTtcbiAgICBpZiAoaW1hZ2UudHlwZSAhPT0gXCJzdmdcIikge1xuICAgICAgICByZXR1cm4gbG9hZEltYWdlKHNvdXJjZSk7XG4gICAgfVxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goaW1hZ2Uuc291cmNlKTtcbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkVycm9yIHRzUGFydGljbGVzIC0gSW1hZ2Ugbm90IGZvdW5kXCIpO1xuICAgIH1cbiAgICBpbWFnZS5zdmdEYXRhID0gYXdhaXQgcmVzcG9uc2UudGV4dCgpO1xuICAgIHJldHVybiBpbWFnZTtcbn1cbmV4cG9ydHMuZG93bmxvYWRTdmdJbWFnZSA9IGRvd25sb2FkU3ZnSW1hZ2U7XG5mdW5jdGlvbiByZXBsYWNlQ29sb3JTdmcoaW1hZ2VTaGFwZSwgY29sb3IsIG9wYWNpdHkpIHtcbiAgICBjb25zdCB7IHN2Z0RhdGEgfSA9IGltYWdlU2hhcGU7XG4gICAgaWYgKCFzdmdEYXRhKSB7XG4gICAgICAgIHJldHVybiBcIlwiO1xuICAgIH1cbiAgICBpZiAoc3ZnRGF0YS5pbmNsdWRlcyhcImZpbGxcIikpIHtcbiAgICAgICAgY29uc3QgY3VycmVudENvbG9yID0gLygjKD86WzAtOWEtZl17Mn0pezIsNH18KCNbMC05YS1mXXszfSl8KHJnYnxoc2wpYT9cXCgoLT9cXGQrJT9bLFxcc10rKXsyLDN9XFxzKltcXGQuXSslP1xcKSl8Y3VycmVudGNvbG9yL2dpO1xuICAgICAgICByZXR1cm4gc3ZnRGF0YS5yZXBsYWNlKGN1cnJlbnRDb2xvciwgKCkgPT4gKDAsIFV0aWxzXzEuZ2V0U3R5bGVGcm9tSHNsKShjb2xvciwgb3BhY2l0eSkpO1xuICAgIH1cbiAgICBjb25zdCBwcmVGaWxsSW5kZXggPSBzdmdEYXRhLmluZGV4T2YoXCI+XCIpO1xuICAgIHJldHVybiBgJHtzdmdEYXRhLnN1YnN0cmluZygwLCBwcmVGaWxsSW5kZXgpfSBmaWxsPVwiJHsoMCwgVXRpbHNfMS5nZXRTdHlsZUZyb21Ic2wpKGNvbG9yLCBvcGFjaXR5KX1cIiR7c3ZnRGF0YS5zdWJzdHJpbmcocHJlRmlsbEluZGV4KX1gO1xufVxuZXhwb3J0cy5yZXBsYWNlQ29sb3JTdmcgPSByZXBsYWNlQ29sb3JTdmc7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Shapes/Image/Utils.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Shapes/Image/index.js": +/*!********************************************************!*\ + !*** ./node_modules/tsparticles/Shapes/Image/index.js ***! + \********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadImageShape = void 0;\nconst ImageDrawer_1 = __webpack_require__(/*! ./ImageDrawer */ \"./node_modules/tsparticles/Shapes/Image/ImageDrawer.js\");\nasync function loadImageShape(tsParticles) {\n const imageDrawer = new ImageDrawer_1.ImageDrawer();\n await tsParticles.addShape(\"image\", imageDrawer);\n await tsParticles.addShape(\"images\", imageDrawer);\n}\nexports.loadImageShape = loadImageShape;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL0ltYWdlL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHNCQUFzQjtBQUN0QixzQkFBc0IsbUJBQU8sQ0FBQyw2RUFBZTtBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9TaGFwZXMvSW1hZ2UvaW5kZXguanM/MzZlYyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMubG9hZEltYWdlU2hhcGUgPSB2b2lkIDA7XG5jb25zdCBJbWFnZURyYXdlcl8xID0gcmVxdWlyZShcIi4vSW1hZ2VEcmF3ZXJcIik7XG5hc3luYyBmdW5jdGlvbiBsb2FkSW1hZ2VTaGFwZSh0c1BhcnRpY2xlcykge1xuICAgIGNvbnN0IGltYWdlRHJhd2VyID0gbmV3IEltYWdlRHJhd2VyXzEuSW1hZ2VEcmF3ZXIoKTtcbiAgICBhd2FpdCB0c1BhcnRpY2xlcy5hZGRTaGFwZShcImltYWdlXCIsIGltYWdlRHJhd2VyKTtcbiAgICBhd2FpdCB0c1BhcnRpY2xlcy5hZGRTaGFwZShcImltYWdlc1wiLCBpbWFnZURyYXdlcik7XG59XG5leHBvcnRzLmxvYWRJbWFnZVNoYXBlID0gbG9hZEltYWdlU2hhcGU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Shapes/Image/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Shapes/Line/LineDrawer.js": +/*!************************************************************!*\ + !*** ./node_modules/tsparticles/Shapes/Line/LineDrawer.js ***! + \************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.LineDrawer = void 0;\nclass LineDrawer {\n getSidesCount() {\n return 1;\n }\n draw(context, particle, radius) {\n context.moveTo(-radius / 2, 0);\n context.lineTo(radius / 2, 0);\n }\n}\nexports.LineDrawer = LineDrawer;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL0xpbmUvTGluZURyYXdlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9TaGFwZXMvTGluZS9MaW5lRHJhd2VyLmpzP2RmZmIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkxpbmVEcmF3ZXIgPSB2b2lkIDA7XG5jbGFzcyBMaW5lRHJhd2VyIHtcbiAgICBnZXRTaWRlc0NvdW50KCkge1xuICAgICAgICByZXR1cm4gMTtcbiAgICB9XG4gICAgZHJhdyhjb250ZXh0LCBwYXJ0aWNsZSwgcmFkaXVzKSB7XG4gICAgICAgIGNvbnRleHQubW92ZVRvKC1yYWRpdXMgLyAyLCAwKTtcbiAgICAgICAgY29udGV4dC5saW5lVG8ocmFkaXVzIC8gMiwgMCk7XG4gICAgfVxufVxuZXhwb3J0cy5MaW5lRHJhd2VyID0gTGluZURyYXdlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Shapes/Line/LineDrawer.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Shapes/Line/index.js": +/*!*******************************************************!*\ + !*** ./node_modules/tsparticles/Shapes/Line/index.js ***! + \*******************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadLineShape = void 0;\nconst LineDrawer_1 = __webpack_require__(/*! ./LineDrawer */ \"./node_modules/tsparticles/Shapes/Line/LineDrawer.js\");\nasync function loadLineShape(tsParticles) {\n await tsParticles.addShape(\"line\", new LineDrawer_1.LineDrawer());\n}\nexports.loadLineShape = loadLineShape;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL0xpbmUvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QscUJBQXFCO0FBQ3JCLHFCQUFxQixtQkFBTyxDQUFDLDBFQUFjO0FBQzNDO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL0xpbmUvaW5kZXguanM/OGMwZiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMubG9hZExpbmVTaGFwZSA9IHZvaWQgMDtcbmNvbnN0IExpbmVEcmF3ZXJfMSA9IHJlcXVpcmUoXCIuL0xpbmVEcmF3ZXJcIik7XG5hc3luYyBmdW5jdGlvbiBsb2FkTGluZVNoYXBlKHRzUGFydGljbGVzKSB7XG4gICAgYXdhaXQgdHNQYXJ0aWNsZXMuYWRkU2hhcGUoXCJsaW5lXCIsIG5ldyBMaW5lRHJhd2VyXzEuTGluZURyYXdlcigpKTtcbn1cbmV4cG9ydHMubG9hZExpbmVTaGFwZSA9IGxvYWRMaW5lU2hhcGU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Shapes/Line/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Shapes/Polygon/PolygonDrawer.js": +/*!******************************************************************!*\ + !*** ./node_modules/tsparticles/Shapes/Polygon/PolygonDrawer.js ***! + \******************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.PolygonDrawer = void 0;\nconst PolygonDrawerBase_1 = __webpack_require__(/*! ./PolygonDrawerBase */ \"./node_modules/tsparticles/Shapes/Polygon/PolygonDrawerBase.js\");\nclass PolygonDrawer extends PolygonDrawerBase_1.PolygonDrawerBase {\n getSidesData(particle, radius) {\n var _a, _b;\n const polygon = particle.shapeData;\n const sides = (_b = (_a = polygon === null || polygon === void 0 ? void 0 : polygon.sides) !== null && _a !== void 0 ? _a : polygon === null || polygon === void 0 ? void 0 : polygon.nb_sides) !== null && _b !== void 0 ? _b : 5;\n return {\n count: {\n denominator: 1,\n numerator: sides,\n },\n length: (radius * 2.66) / (sides / 3),\n };\n }\n getCenter(particle, radius) {\n const sides = this.getSidesCount(particle);\n return {\n x: -radius / (sides / 3.5),\n y: -radius / (2.66 / 3.5),\n };\n }\n}\nexports.PolygonDrawer = PolygonDrawer;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL1BvbHlnb24vUG9seWdvbkRyYXdlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxxQkFBcUI7QUFDckIsNEJBQTRCLG1CQUFPLENBQUMsMkZBQXFCO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9TaGFwZXMvUG9seWdvbi9Qb2x5Z29uRHJhd2VyLmpzP2JmMjEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlBvbHlnb25EcmF3ZXIgPSB2b2lkIDA7XG5jb25zdCBQb2x5Z29uRHJhd2VyQmFzZV8xID0gcmVxdWlyZShcIi4vUG9seWdvbkRyYXdlckJhc2VcIik7XG5jbGFzcyBQb2x5Z29uRHJhd2VyIGV4dGVuZHMgUG9seWdvbkRyYXdlckJhc2VfMS5Qb2x5Z29uRHJhd2VyQmFzZSB7XG4gICAgZ2V0U2lkZXNEYXRhKHBhcnRpY2xlLCByYWRpdXMpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgY29uc3QgcG9seWdvbiA9IHBhcnRpY2xlLnNoYXBlRGF0YTtcbiAgICAgICAgY29uc3Qgc2lkZXMgPSAoX2IgPSAoX2EgPSBwb2x5Z29uID09PSBudWxsIHx8IHBvbHlnb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBvbHlnb24uc2lkZXMpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IHBvbHlnb24gPT09IG51bGwgfHwgcG9seWdvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcG9seWdvbi5uYl9zaWRlcykgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogNTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvdW50OiB7XG4gICAgICAgICAgICAgICAgZGVub21pbmF0b3I6IDEsXG4gICAgICAgICAgICAgICAgbnVtZXJhdG9yOiBzaWRlcyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsZW5ndGg6IChyYWRpdXMgKiAyLjY2KSAvIChzaWRlcyAvIDMpLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBnZXRDZW50ZXIocGFydGljbGUsIHJhZGl1cykge1xuICAgICAgICBjb25zdCBzaWRlcyA9IHRoaXMuZ2V0U2lkZXNDb3VudChwYXJ0aWNsZSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB4OiAtcmFkaXVzIC8gKHNpZGVzIC8gMy41KSxcbiAgICAgICAgICAgIHk6IC1yYWRpdXMgLyAoMi42NiAvIDMuNSksXG4gICAgICAgIH07XG4gICAgfVxufVxuZXhwb3J0cy5Qb2x5Z29uRHJhd2VyID0gUG9seWdvbkRyYXdlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Shapes/Polygon/PolygonDrawer.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Shapes/Polygon/PolygonDrawerBase.js": +/*!**********************************************************************!*\ + !*** ./node_modules/tsparticles/Shapes/Polygon/PolygonDrawerBase.js ***! + \**********************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.PolygonDrawerBase = void 0;\nclass PolygonDrawerBase {\n getSidesCount(particle) {\n var _a, _b;\n const polygon = particle.shapeData;\n return (_b = (_a = polygon === null || polygon === void 0 ? void 0 : polygon.sides) !== null && _a !== void 0 ? _a : polygon === null || polygon === void 0 ? void 0 : polygon.nb_sides) !== null && _b !== void 0 ? _b : 5;\n }\n draw(context, particle, radius) {\n const start = this.getCenter(particle, radius);\n const side = this.getSidesData(particle, radius);\n const sideCount = side.count.numerator * side.count.denominator;\n const decimalSides = side.count.numerator / side.count.denominator;\n const interiorAngleDegrees = (180 * (decimalSides - 2)) / decimalSides;\n const interiorAngle = Math.PI - (Math.PI * interiorAngleDegrees) / 180;\n if (!context) {\n return;\n }\n context.beginPath();\n context.translate(start.x, start.y);\n context.moveTo(0, 0);\n for (let i = 0; i < sideCount; i++) {\n context.lineTo(side.length, 0);\n context.translate(side.length, 0);\n context.rotate(interiorAngle);\n }\n }\n}\nexports.PolygonDrawerBase = PolygonDrawerBase;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL1BvbHlnb24vUG9seWdvbkRyYXdlckJhc2UuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGVBQWU7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9TaGFwZXMvUG9seWdvbi9Qb2x5Z29uRHJhd2VyQmFzZS5qcz9mY2UxIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Qb2x5Z29uRHJhd2VyQmFzZSA9IHZvaWQgMDtcbmNsYXNzIFBvbHlnb25EcmF3ZXJCYXNlIHtcbiAgICBnZXRTaWRlc0NvdW50KHBhcnRpY2xlKSB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGNvbnN0IHBvbHlnb24gPSBwYXJ0aWNsZS5zaGFwZURhdGE7XG4gICAgICAgIHJldHVybiAoX2IgPSAoX2EgPSBwb2x5Z29uID09PSBudWxsIHx8IHBvbHlnb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBvbHlnb24uc2lkZXMpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IHBvbHlnb24gPT09IG51bGwgfHwgcG9seWdvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcG9seWdvbi5uYl9zaWRlcykgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogNTtcbiAgICB9XG4gICAgZHJhdyhjb250ZXh0LCBwYXJ0aWNsZSwgcmFkaXVzKSB7XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gdGhpcy5nZXRDZW50ZXIocGFydGljbGUsIHJhZGl1cyk7XG4gICAgICAgIGNvbnN0IHNpZGUgPSB0aGlzLmdldFNpZGVzRGF0YShwYXJ0aWNsZSwgcmFkaXVzKTtcbiAgICAgICAgY29uc3Qgc2lkZUNvdW50ID0gc2lkZS5jb3VudC5udW1lcmF0b3IgKiBzaWRlLmNvdW50LmRlbm9taW5hdG9yO1xuICAgICAgICBjb25zdCBkZWNpbWFsU2lkZXMgPSBzaWRlLmNvdW50Lm51bWVyYXRvciAvIHNpZGUuY291bnQuZGVub21pbmF0b3I7XG4gICAgICAgIGNvbnN0IGludGVyaW9yQW5nbGVEZWdyZWVzID0gKDE4MCAqIChkZWNpbWFsU2lkZXMgLSAyKSkgLyBkZWNpbWFsU2lkZXM7XG4gICAgICAgIGNvbnN0IGludGVyaW9yQW5nbGUgPSBNYXRoLlBJIC0gKE1hdGguUEkgKiBpbnRlcmlvckFuZ2xlRGVncmVlcykgLyAxODA7XG4gICAgICAgIGlmICghY29udGV4dCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XG4gICAgICAgIGNvbnRleHQudHJhbnNsYXRlKHN0YXJ0LngsIHN0YXJ0LnkpO1xuICAgICAgICBjb250ZXh0Lm1vdmVUbygwLCAwKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzaWRlQ291bnQ7IGkrKykge1xuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc2lkZS5sZW5ndGgsIDApO1xuICAgICAgICAgICAgY29udGV4dC50cmFuc2xhdGUoc2lkZS5sZW5ndGgsIDApO1xuICAgICAgICAgICAgY29udGV4dC5yb3RhdGUoaW50ZXJpb3JBbmdsZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLlBvbHlnb25EcmF3ZXJCYXNlID0gUG9seWdvbkRyYXdlckJhc2U7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Shapes/Polygon/PolygonDrawerBase.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Shapes/Polygon/TriangleDrawer.js": +/*!*******************************************************************!*\ + !*** ./node_modules/tsparticles/Shapes/Polygon/TriangleDrawer.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.TriangleDrawer = void 0;\nconst PolygonDrawerBase_1 = __webpack_require__(/*! ./PolygonDrawerBase */ \"./node_modules/tsparticles/Shapes/Polygon/PolygonDrawerBase.js\");\nclass TriangleDrawer extends PolygonDrawerBase_1.PolygonDrawerBase {\n getSidesCount() {\n return 3;\n }\n getSidesData(particle, radius) {\n return {\n count: {\n denominator: 2,\n numerator: 3,\n },\n length: radius * 2,\n };\n }\n getCenter(particle, radius) {\n return {\n x: -radius,\n y: radius / 1.66,\n };\n }\n}\nexports.TriangleDrawer = TriangleDrawer;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL1BvbHlnb24vVHJpYW5nbGVEcmF3ZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsc0JBQXNCO0FBQ3RCLDRCQUE0QixtQkFBTyxDQUFDLDJGQUFxQjtBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1NoYXBlcy9Qb2x5Z29uL1RyaWFuZ2xlRHJhd2VyLmpzPzkwMmMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlRyaWFuZ2xlRHJhd2VyID0gdm9pZCAwO1xuY29uc3QgUG9seWdvbkRyYXdlckJhc2VfMSA9IHJlcXVpcmUoXCIuL1BvbHlnb25EcmF3ZXJCYXNlXCIpO1xuY2xhc3MgVHJpYW5nbGVEcmF3ZXIgZXh0ZW5kcyBQb2x5Z29uRHJhd2VyQmFzZV8xLlBvbHlnb25EcmF3ZXJCYXNlIHtcbiAgICBnZXRTaWRlc0NvdW50KCkge1xuICAgICAgICByZXR1cm4gMztcbiAgICB9XG4gICAgZ2V0U2lkZXNEYXRhKHBhcnRpY2xlLCByYWRpdXMpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvdW50OiB7XG4gICAgICAgICAgICAgICAgZGVub21pbmF0b3I6IDIsXG4gICAgICAgICAgICAgICAgbnVtZXJhdG9yOiAzLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxlbmd0aDogcmFkaXVzICogMixcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZ2V0Q2VudGVyKHBhcnRpY2xlLCByYWRpdXMpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHg6IC1yYWRpdXMsXG4gICAgICAgICAgICB5OiByYWRpdXMgLyAxLjY2LFxuICAgICAgICB9O1xuICAgIH1cbn1cbmV4cG9ydHMuVHJpYW5nbGVEcmF3ZXIgPSBUcmlhbmdsZURyYXdlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Shapes/Polygon/TriangleDrawer.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Shapes/Polygon/index.js": +/*!**********************************************************!*\ + !*** ./node_modules/tsparticles/Shapes/Polygon/index.js ***! + \**********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadPolygonShape = exports.loadTriangleShape = exports.loadGenericPolygonShape = void 0;\nconst PolygonDrawer_1 = __webpack_require__(/*! ./PolygonDrawer */ \"./node_modules/tsparticles/Shapes/Polygon/PolygonDrawer.js\");\nconst TriangleDrawer_1 = __webpack_require__(/*! ./TriangleDrawer */ \"./node_modules/tsparticles/Shapes/Polygon/TriangleDrawer.js\");\nasync function loadGenericPolygonShape(tsParticles) {\n await tsParticles.addShape(\"polygon\", new PolygonDrawer_1.PolygonDrawer());\n}\nexports.loadGenericPolygonShape = loadGenericPolygonShape;\nasync function loadTriangleShape(tsParticles) {\n await tsParticles.addShape(\"triangle\", new TriangleDrawer_1.TriangleDrawer());\n}\nexports.loadTriangleShape = loadTriangleShape;\nasync function loadPolygonShape(tsParticles) {\n await loadGenericPolygonShape(tsParticles);\n await loadTriangleShape(tsParticles);\n}\nexports.loadPolygonShape = loadPolygonShape;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL1BvbHlnb24vaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsd0JBQXdCLEdBQUcseUJBQXlCLEdBQUcsK0JBQStCO0FBQ3RGLHdCQUF3QixtQkFBTyxDQUFDLG1GQUFpQjtBQUNqRCx5QkFBeUIsbUJBQU8sQ0FBQyxxRkFBa0I7QUFDbkQ7QUFDQTtBQUNBO0FBQ0EsK0JBQStCO0FBQy9CO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL1BvbHlnb24vaW5kZXguanM/YTc4MCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMubG9hZFBvbHlnb25TaGFwZSA9IGV4cG9ydHMubG9hZFRyaWFuZ2xlU2hhcGUgPSBleHBvcnRzLmxvYWRHZW5lcmljUG9seWdvblNoYXBlID0gdm9pZCAwO1xuY29uc3QgUG9seWdvbkRyYXdlcl8xID0gcmVxdWlyZShcIi4vUG9seWdvbkRyYXdlclwiKTtcbmNvbnN0IFRyaWFuZ2xlRHJhd2VyXzEgPSByZXF1aXJlKFwiLi9UcmlhbmdsZURyYXdlclwiKTtcbmFzeW5jIGZ1bmN0aW9uIGxvYWRHZW5lcmljUG9seWdvblNoYXBlKHRzUGFydGljbGVzKSB7XG4gICAgYXdhaXQgdHNQYXJ0aWNsZXMuYWRkU2hhcGUoXCJwb2x5Z29uXCIsIG5ldyBQb2x5Z29uRHJhd2VyXzEuUG9seWdvbkRyYXdlcigpKTtcbn1cbmV4cG9ydHMubG9hZEdlbmVyaWNQb2x5Z29uU2hhcGUgPSBsb2FkR2VuZXJpY1BvbHlnb25TaGFwZTtcbmFzeW5jIGZ1bmN0aW9uIGxvYWRUcmlhbmdsZVNoYXBlKHRzUGFydGljbGVzKSB7XG4gICAgYXdhaXQgdHNQYXJ0aWNsZXMuYWRkU2hhcGUoXCJ0cmlhbmdsZVwiLCBuZXcgVHJpYW5nbGVEcmF3ZXJfMS5UcmlhbmdsZURyYXdlcigpKTtcbn1cbmV4cG9ydHMubG9hZFRyaWFuZ2xlU2hhcGUgPSBsb2FkVHJpYW5nbGVTaGFwZTtcbmFzeW5jIGZ1bmN0aW9uIGxvYWRQb2x5Z29uU2hhcGUodHNQYXJ0aWNsZXMpIHtcbiAgICBhd2FpdCBsb2FkR2VuZXJpY1BvbHlnb25TaGFwZSh0c1BhcnRpY2xlcyk7XG4gICAgYXdhaXQgbG9hZFRyaWFuZ2xlU2hhcGUodHNQYXJ0aWNsZXMpO1xufVxuZXhwb3J0cy5sb2FkUG9seWdvblNoYXBlID0gbG9hZFBvbHlnb25TaGFwZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Shapes/Polygon/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Shapes/Square/SquareDrawer.js": +/*!****************************************************************!*\ + !*** ./node_modules/tsparticles/Shapes/Square/SquareDrawer.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.SquareDrawer = void 0;\nconst fixFactor = Math.sqrt(2);\nclass SquareDrawer {\n getSidesCount() {\n return 4;\n }\n draw(context, particle, radius) {\n context.rect(-radius / fixFactor, -radius / fixFactor, (radius * 2) / fixFactor, (radius * 2) / fixFactor);\n }\n}\nexports.SquareDrawer = SquareDrawer;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL1NxdWFyZS9TcXVhcmVEcmF3ZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL1NxdWFyZS9TcXVhcmVEcmF3ZXIuanM/MzRhOCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuU3F1YXJlRHJhd2VyID0gdm9pZCAwO1xuY29uc3QgZml4RmFjdG9yID0gTWF0aC5zcXJ0KDIpO1xuY2xhc3MgU3F1YXJlRHJhd2VyIHtcbiAgICBnZXRTaWRlc0NvdW50KCkge1xuICAgICAgICByZXR1cm4gNDtcbiAgICB9XG4gICAgZHJhdyhjb250ZXh0LCBwYXJ0aWNsZSwgcmFkaXVzKSB7XG4gICAgICAgIGNvbnRleHQucmVjdCgtcmFkaXVzIC8gZml4RmFjdG9yLCAtcmFkaXVzIC8gZml4RmFjdG9yLCAocmFkaXVzICogMikgLyBmaXhGYWN0b3IsIChyYWRpdXMgKiAyKSAvIGZpeEZhY3Rvcik7XG4gICAgfVxufVxuZXhwb3J0cy5TcXVhcmVEcmF3ZXIgPSBTcXVhcmVEcmF3ZXI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Shapes/Square/SquareDrawer.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Shapes/Square/index.js": +/*!*********************************************************!*\ + !*** ./node_modules/tsparticles/Shapes/Square/index.js ***! + \*********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadSquareShape = void 0;\nconst SquareDrawer_1 = __webpack_require__(/*! ./SquareDrawer */ \"./node_modules/tsparticles/Shapes/Square/SquareDrawer.js\");\nasync function loadSquareShape(tsParticles) {\n const drawer = new SquareDrawer_1.SquareDrawer();\n await tsParticles.addShape(\"edge\", drawer);\n await tsParticles.addShape(\"square\", drawer);\n}\nexports.loadSquareShape = loadSquareShape;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL1NxdWFyZS9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCx1QkFBdUI7QUFDdkIsdUJBQXVCLG1CQUFPLENBQUMsZ0ZBQWdCO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1NoYXBlcy9TcXVhcmUvaW5kZXguanM/MTdjYSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMubG9hZFNxdWFyZVNoYXBlID0gdm9pZCAwO1xuY29uc3QgU3F1YXJlRHJhd2VyXzEgPSByZXF1aXJlKFwiLi9TcXVhcmVEcmF3ZXJcIik7XG5hc3luYyBmdW5jdGlvbiBsb2FkU3F1YXJlU2hhcGUodHNQYXJ0aWNsZXMpIHtcbiAgICBjb25zdCBkcmF3ZXIgPSBuZXcgU3F1YXJlRHJhd2VyXzEuU3F1YXJlRHJhd2VyKCk7XG4gICAgYXdhaXQgdHNQYXJ0aWNsZXMuYWRkU2hhcGUoXCJlZGdlXCIsIGRyYXdlcik7XG4gICAgYXdhaXQgdHNQYXJ0aWNsZXMuYWRkU2hhcGUoXCJzcXVhcmVcIiwgZHJhd2VyKTtcbn1cbmV4cG9ydHMubG9hZFNxdWFyZVNoYXBlID0gbG9hZFNxdWFyZVNoYXBlO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Shapes/Square/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Shapes/Star/StarDrawer.js": +/*!************************************************************!*\ + !*** ./node_modules/tsparticles/Shapes/Star/StarDrawer.js ***! + \************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.StarDrawer = void 0;\nclass StarDrawer {\n getSidesCount(particle) {\n var _a, _b;\n const star = particle.shapeData;\n return (_b = (_a = star === null || star === void 0 ? void 0 : star.sides) !== null && _a !== void 0 ? _a : star === null || star === void 0 ? void 0 : star.nb_sides) !== null && _b !== void 0 ? _b : 5;\n }\n draw(context, particle, radius) {\n var _a;\n const star = particle.shapeData;\n const sides = this.getSidesCount(particle);\n const inset = (_a = star === null || star === void 0 ? void 0 : star.inset) !== null && _a !== void 0 ? _a : 2;\n context.moveTo(0, 0 - radius);\n for (let i = 0; i < sides; i++) {\n context.rotate(Math.PI / sides);\n context.lineTo(0, 0 - radius * inset);\n context.rotate(Math.PI / sides);\n context.lineTo(0, 0 - radius);\n }\n }\n}\nexports.StarDrawer = StarDrawer;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL1N0YXIvU3RhckRyYXdlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLFdBQVc7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1NoYXBlcy9TdGFyL1N0YXJEcmF3ZXIuanM/NzI2ZCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuU3RhckRyYXdlciA9IHZvaWQgMDtcbmNsYXNzIFN0YXJEcmF3ZXIge1xuICAgIGdldFNpZGVzQ291bnQocGFydGljbGUpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgY29uc3Qgc3RhciA9IHBhcnRpY2xlLnNoYXBlRGF0YTtcbiAgICAgICAgcmV0dXJuIChfYiA9IChfYSA9IHN0YXIgPT09IG51bGwgfHwgc3RhciA9PT0gdm9pZCAwID8gdm9pZCAwIDogc3Rhci5zaWRlcykgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogc3RhciA9PT0gbnVsbCB8fCBzdGFyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzdGFyLm5iX3NpZGVzKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiA1O1xuICAgIH1cbiAgICBkcmF3KGNvbnRleHQsIHBhcnRpY2xlLCByYWRpdXMpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBjb25zdCBzdGFyID0gcGFydGljbGUuc2hhcGVEYXRhO1xuICAgICAgICBjb25zdCBzaWRlcyA9IHRoaXMuZ2V0U2lkZXNDb3VudChwYXJ0aWNsZSk7XG4gICAgICAgIGNvbnN0IGluc2V0ID0gKF9hID0gc3RhciA9PT0gbnVsbCB8fCBzdGFyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzdGFyLmluc2V0KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAyO1xuICAgICAgICBjb250ZXh0Lm1vdmVUbygwLCAwIC0gcmFkaXVzKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzaWRlczsgaSsrKSB7XG4gICAgICAgICAgICBjb250ZXh0LnJvdGF0ZShNYXRoLlBJIC8gc2lkZXMpO1xuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oMCwgMCAtIHJhZGl1cyAqIGluc2V0KTtcbiAgICAgICAgICAgIGNvbnRleHQucm90YXRlKE1hdGguUEkgLyBzaWRlcyk7XG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbygwLCAwIC0gcmFkaXVzKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuU3RhckRyYXdlciA9IFN0YXJEcmF3ZXI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Shapes/Star/StarDrawer.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Shapes/Star/index.js": +/*!*******************************************************!*\ + !*** ./node_modules/tsparticles/Shapes/Star/index.js ***! + \*******************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadStarShape = void 0;\nconst StarDrawer_1 = __webpack_require__(/*! ./StarDrawer */ \"./node_modules/tsparticles/Shapes/Star/StarDrawer.js\");\nasync function loadStarShape(tsParticles) {\n await tsParticles.addShape(\"star\", new StarDrawer_1.StarDrawer());\n}\nexports.loadStarShape = loadStarShape;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL1N0YXIvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QscUJBQXFCO0FBQ3JCLHFCQUFxQixtQkFBTyxDQUFDLDBFQUFjO0FBQzNDO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL1N0YXIvaW5kZXguanM/MGM1OCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMubG9hZFN0YXJTaGFwZSA9IHZvaWQgMDtcbmNvbnN0IFN0YXJEcmF3ZXJfMSA9IHJlcXVpcmUoXCIuL1N0YXJEcmF3ZXJcIik7XG5hc3luYyBmdW5jdGlvbiBsb2FkU3RhclNoYXBlKHRzUGFydGljbGVzKSB7XG4gICAgYXdhaXQgdHNQYXJ0aWNsZXMuYWRkU2hhcGUoXCJzdGFyXCIsIG5ldyBTdGFyRHJhd2VyXzEuU3RhckRyYXdlcigpKTtcbn1cbmV4cG9ydHMubG9hZFN0YXJTaGFwZSA9IGxvYWRTdGFyU2hhcGU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Shapes/Star/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Shapes/Text/TextDrawer.js": +/*!************************************************************!*\ + !*** ./node_modules/tsparticles/Shapes/Text/TextDrawer.js ***! + \************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.TextDrawer = exports.validTypes = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nexports.validTypes = [\"text\", \"character\", \"char\"];\nclass TextDrawer {\n getSidesCount() {\n return 12;\n }\n async init(container) {\n const options = container.actualOptions;\n if (exports.validTypes.find((t) => (0, Utils_1.isInArray)(t, options.particles.shape.type))) {\n const shapeOptions = exports.validTypes.map((t) => options.particles.shape.options[t]).find((t) => !!t);\n if (shapeOptions instanceof Array) {\n const promises = [];\n for (const character of shapeOptions) {\n promises.push((0, Utils_1.loadFont)(character));\n }\n await Promise.allSettled(promises);\n }\n else {\n if (shapeOptions !== undefined) {\n await (0, Utils_1.loadFont)(shapeOptions);\n }\n }\n }\n }\n draw(context, particle, radius, opacity) {\n var _a, _b, _c;\n const character = particle.shapeData;\n if (character === undefined) {\n return;\n }\n const textData = character.value;\n if (textData === undefined) {\n return;\n }\n const textParticle = particle;\n if (textParticle.text === undefined) {\n textParticle.text =\n textData instanceof Array ? (0, Utils_1.itemFromArray)(textData, particle.randomIndexData) : textData;\n }\n const text = textParticle.text;\n const style = (_a = character.style) !== null && _a !== void 0 ? _a : \"\";\n const weight = (_b = character.weight) !== null && _b !== void 0 ? _b : \"400\";\n const size = Math.round(radius) * 2;\n const font = (_c = character.font) !== null && _c !== void 0 ? _c : \"Verdana\";\n const fill = particle.fill;\n const offsetX = (text.length * radius) / 2;\n context.font = `${style} ${weight} ${size}px \"${font}\"`;\n const pos = {\n x: -offsetX,\n y: radius / 2,\n };\n context.globalAlpha = opacity;\n if (fill) {\n context.fillText(text, pos.x, pos.y);\n }\n else {\n context.strokeText(text, pos.x, pos.y);\n }\n context.globalAlpha = 1;\n }\n}\nexports.TextDrawer = TextDrawer;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL1RleHQvVGV4dERyYXdlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxrQkFBa0IsR0FBRyxrQkFBa0I7QUFDdkMsZ0JBQWdCLG1CQUFPLENBQUMsOERBQWE7QUFDckMsa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEIsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLE1BQU0sS0FBSztBQUM3RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9TaGFwZXMvVGV4dC9UZXh0RHJhd2VyLmpzP2I0YzAiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlRleHREcmF3ZXIgPSBleHBvcnRzLnZhbGlkVHlwZXMgPSB2b2lkIDA7XG5jb25zdCBVdGlsc18xID0gcmVxdWlyZShcIi4uLy4uL1V0aWxzXCIpO1xuZXhwb3J0cy52YWxpZFR5cGVzID0gW1widGV4dFwiLCBcImNoYXJhY3RlclwiLCBcImNoYXJcIl07XG5jbGFzcyBUZXh0RHJhd2VyIHtcbiAgICBnZXRTaWRlc0NvdW50KCkge1xuICAgICAgICByZXR1cm4gMTI7XG4gICAgfVxuICAgIGFzeW5jIGluaXQoY29udGFpbmVyKSB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSBjb250YWluZXIuYWN0dWFsT3B0aW9ucztcbiAgICAgICAgaWYgKGV4cG9ydHMudmFsaWRUeXBlcy5maW5kKCh0KSA9PiAoMCwgVXRpbHNfMS5pc0luQXJyYXkpKHQsIG9wdGlvbnMucGFydGljbGVzLnNoYXBlLnR5cGUpKSkge1xuICAgICAgICAgICAgY29uc3Qgc2hhcGVPcHRpb25zID0gZXhwb3J0cy52YWxpZFR5cGVzLm1hcCgodCkgPT4gb3B0aW9ucy5wYXJ0aWNsZXMuc2hhcGUub3B0aW9uc1t0XSkuZmluZCgodCkgPT4gISF0KTtcbiAgICAgICAgICAgIGlmIChzaGFwZU9wdGlvbnMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHByb21pc2VzID0gW107XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBjaGFyYWN0ZXIgb2Ygc2hhcGVPcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgIHByb21pc2VzLnB1c2goKDAsIFV0aWxzXzEubG9hZEZvbnQpKGNoYXJhY3RlcikpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbFNldHRsZWQocHJvbWlzZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKHNoYXBlT3B0aW9ucyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0ICgwLCBVdGlsc18xLmxvYWRGb250KShzaGFwZU9wdGlvbnMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBkcmF3KGNvbnRleHQsIHBhcnRpY2xlLCByYWRpdXMsIG9wYWNpdHkpIHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgIGNvbnN0IGNoYXJhY3RlciA9IHBhcnRpY2xlLnNoYXBlRGF0YTtcbiAgICAgICAgaWYgKGNoYXJhY3RlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdGV4dERhdGEgPSBjaGFyYWN0ZXIudmFsdWU7XG4gICAgICAgIGlmICh0ZXh0RGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdGV4dFBhcnRpY2xlID0gcGFydGljbGU7XG4gICAgICAgIGlmICh0ZXh0UGFydGljbGUudGV4dCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0ZXh0UGFydGljbGUudGV4dCA9XG4gICAgICAgICAgICAgICAgdGV4dERhdGEgaW5zdGFuY2VvZiBBcnJheSA/ICgwLCBVdGlsc18xLml0ZW1Gcm9tQXJyYXkpKHRleHREYXRhLCBwYXJ0aWNsZS5yYW5kb21JbmRleERhdGEpIDogdGV4dERhdGE7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdGV4dCA9IHRleHRQYXJ0aWNsZS50ZXh0O1xuICAgICAgICBjb25zdCBzdHlsZSA9IChfYSA9IGNoYXJhY3Rlci5zdHlsZSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogXCJcIjtcbiAgICAgICAgY29uc3Qgd2VpZ2h0ID0gKF9iID0gY2hhcmFjdGVyLndlaWdodCkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogXCI0MDBcIjtcbiAgICAgICAgY29uc3Qgc2l6ZSA9IE1hdGgucm91bmQocmFkaXVzKSAqIDI7XG4gICAgICAgIGNvbnN0IGZvbnQgPSAoX2MgPSBjaGFyYWN0ZXIuZm9udCkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogXCJWZXJkYW5hXCI7XG4gICAgICAgIGNvbnN0IGZpbGwgPSBwYXJ0aWNsZS5maWxsO1xuICAgICAgICBjb25zdCBvZmZzZXRYID0gKHRleHQubGVuZ3RoICogcmFkaXVzKSAvIDI7XG4gICAgICAgIGNvbnRleHQuZm9udCA9IGAke3N0eWxlfSAke3dlaWdodH0gJHtzaXplfXB4IFwiJHtmb250fVwiYDtcbiAgICAgICAgY29uc3QgcG9zID0ge1xuICAgICAgICAgICAgeDogLW9mZnNldFgsXG4gICAgICAgICAgICB5OiByYWRpdXMgLyAyLFxuICAgICAgICB9O1xuICAgICAgICBjb250ZXh0Lmdsb2JhbEFscGhhID0gb3BhY2l0eTtcbiAgICAgICAgaWYgKGZpbGwpIHtcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFRleHQodGV4dCwgcG9zLngsIHBvcy55KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnRleHQuc3Ryb2tlVGV4dCh0ZXh0LCBwb3MueCwgcG9zLnkpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnRleHQuZ2xvYmFsQWxwaGEgPSAxO1xuICAgIH1cbn1cbmV4cG9ydHMuVGV4dERyYXdlciA9IFRleHREcmF3ZXI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Shapes/Text/TextDrawer.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Shapes/Text/index.js": +/*!*******************************************************!*\ + !*** ./node_modules/tsparticles/Shapes/Text/index.js ***! + \*******************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadTextShape = void 0;\nconst TextDrawer_1 = __webpack_require__(/*! ./TextDrawer */ \"./node_modules/tsparticles/Shapes/Text/TextDrawer.js\");\nasync function loadTextShape(tsParticles) {\n const drawer = new TextDrawer_1.TextDrawer();\n for (const type of TextDrawer_1.validTypes) {\n await tsParticles.addShape(type, drawer);\n }\n}\nexports.loadTextShape = loadTextShape;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL1RleHQvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QscUJBQXFCO0FBQ3JCLHFCQUFxQixtQkFBTyxDQUFDLDBFQUFjO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvU2hhcGVzL1RleHQvaW5kZXguanM/YzZlMSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMubG9hZFRleHRTaGFwZSA9IHZvaWQgMDtcbmNvbnN0IFRleHREcmF3ZXJfMSA9IHJlcXVpcmUoXCIuL1RleHREcmF3ZXJcIik7XG5hc3luYyBmdW5jdGlvbiBsb2FkVGV4dFNoYXBlKHRzUGFydGljbGVzKSB7XG4gICAgY29uc3QgZHJhd2VyID0gbmV3IFRleHREcmF3ZXJfMS5UZXh0RHJhd2VyKCk7XG4gICAgZm9yIChjb25zdCB0eXBlIG9mIFRleHREcmF3ZXJfMS52YWxpZFR5cGVzKSB7XG4gICAgICAgIGF3YWl0IHRzUGFydGljbGVzLmFkZFNoYXBlKHR5cGUsIGRyYXdlcik7XG4gICAgfVxufVxuZXhwb3J0cy5sb2FkVGV4dFNoYXBlID0gbG9hZFRleHRTaGFwZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Shapes/Text/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Types/PathOptions.js": +/*!*******************************************************!*\ + !*** ./node_modules/tsparticles/Types/PathOptions.js ***! + \*******************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVHlwZXMvUGF0aE9wdGlvbnMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1R5cGVzL1BhdGhPcHRpb25zLmpzP2U1ZWIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Types/PathOptions.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Types/RangeValue.js": +/*!******************************************************!*\ + !*** ./node_modules/tsparticles/Types/RangeValue.js ***! + \******************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVHlwZXMvUmFuZ2VWYWx1ZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVHlwZXMvUmFuZ2VWYWx1ZS5qcz83ODU2Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Types/RangeValue.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Types/RecursivePartial.js": +/*!************************************************************!*\ + !*** ./node_modules/tsparticles/Types/RecursivePartial.js ***! + \************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVHlwZXMvUmVjdXJzaXZlUGFydGlhbC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVHlwZXMvUmVjdXJzaXZlUGFydGlhbC5qcz9iNTVhIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Types/RecursivePartial.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Types/ShapeData.js": +/*!*****************************************************!*\ + !*** ./node_modules/tsparticles/Types/ShapeData.js ***! + \*****************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVHlwZXMvU2hhcGVEYXRhLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9UeXBlcy9TaGFwZURhdGEuanM/ZGExMiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Types/ShapeData.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Types/ShapeDrawerFunctions.js": +/*!****************************************************************!*\ + !*** ./node_modules/tsparticles/Types/ShapeDrawerFunctions.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVHlwZXMvU2hhcGVEcmF3ZXJGdW5jdGlvbnMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1R5cGVzL1NoYXBlRHJhd2VyRnVuY3Rpb25zLmpzPzI0Y2YiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Types/ShapeDrawerFunctions.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Types/SingleOrMultiple.js": +/*!************************************************************!*\ + !*** ./node_modules/tsparticles/Types/SingleOrMultiple.js ***! + \************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVHlwZXMvU2luZ2xlT3JNdWx0aXBsZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVHlwZXMvU2luZ2xlT3JNdWx0aXBsZS5qcz9lN2JmIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Types/SingleOrMultiple.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Types/index.js": +/*!*************************************************!*\ + !*** ./node_modules/tsparticles/Types/index.js ***! + \*************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n__exportStar(__webpack_require__(/*! ./RangeValue */ \"./node_modules/tsparticles/Types/RangeValue.js\"), exports);\n__exportStar(__webpack_require__(/*! ./RecursivePartial */ \"./node_modules/tsparticles/Types/RecursivePartial.js\"), exports);\n__exportStar(__webpack_require__(/*! ./ShapeData */ \"./node_modules/tsparticles/Types/ShapeData.js\"), exports);\n__exportStar(__webpack_require__(/*! ./ShapeDrawerFunctions */ \"./node_modules/tsparticles/Types/ShapeDrawerFunctions.js\"), exports);\n__exportStar(__webpack_require__(/*! ./SingleOrMultiple */ \"./node_modules/tsparticles/Types/SingleOrMultiple.js\"), exports);\n__exportStar(__webpack_require__(/*! ./PathOptions */ \"./node_modules/tsparticles/Types/PathOptions.js\"), exports);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVHlwZXMvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBO0FBQ0EsbUNBQW1DLG9DQUFvQyxnQkFBZ0I7QUFDdkYsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGFBQWEsbUJBQU8sQ0FBQyxvRUFBYztBQUNuQyxhQUFhLG1CQUFPLENBQUMsZ0ZBQW9CO0FBQ3pDLGFBQWEsbUJBQU8sQ0FBQyxrRUFBYTtBQUNsQyxhQUFhLG1CQUFPLENBQUMsd0ZBQXdCO0FBQzdDLGFBQWEsbUJBQU8sQ0FBQyxnRkFBb0I7QUFDekMsYUFBYSxtQkFBTyxDQUFDLHNFQUFlIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9UeXBlcy9pbmRleC5qcz9mZjBmIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9fY3JlYXRlQmluZGluZyA9ICh0aGlzICYmIHRoaXMuX19jcmVhdGVCaW5kaW5nKSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH0pO1xufSkgOiAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIG9bazJdID0gbVtrXTtcbn0pKTtcbnZhciBfX2V4cG9ydFN0YXIgPSAodGhpcyAmJiB0aGlzLl9fZXhwb3J0U3RhcikgfHwgZnVuY3Rpb24obSwgZXhwb3J0cykge1xuICAgIGZvciAodmFyIHAgaW4gbSkgaWYgKHAgIT09IFwiZGVmYXVsdFwiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0cywgcCkpIF9fY3JlYXRlQmluZGluZyhleHBvcnRzLCBtLCBwKTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vUmFuZ2VWYWx1ZVwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vUmVjdXJzaXZlUGFydGlhbFwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vU2hhcGVEYXRhXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9TaGFwZURyYXdlckZ1bmN0aW9uc1wiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vU2luZ2xlT3JNdWx0aXBsZVwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vUGF0aE9wdGlvbnNcIiksIGV4cG9ydHMpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Types/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Updaters/Angle/AngleUpdater.js": +/*!*****************************************************************!*\ + !*** ./node_modules/tsparticles/Updaters/Angle/AngleUpdater.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.AngleUpdater = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nfunction updateAngle(particle, delta) {\n var _a;\n const rotate = particle.rotate;\n if (!rotate) {\n return;\n }\n const rotateOptions = particle.options.rotate;\n const rotateAnimation = rotateOptions.animation;\n const speed = ((_a = rotate.velocity) !== null && _a !== void 0 ? _a : 0) * delta.factor;\n const max = 2 * Math.PI;\n if (!rotateAnimation.enable) {\n return;\n }\n switch (rotate.status) {\n case Enums_1.AnimationStatus.increasing:\n rotate.value += speed;\n if (rotate.value > max) {\n rotate.value -= max;\n }\n break;\n case Enums_1.AnimationStatus.decreasing:\n default:\n rotate.value -= speed;\n if (rotate.value < 0) {\n rotate.value += max;\n }\n break;\n }\n}\nclass AngleUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n const rotateOptions = particle.options.rotate;\n particle.rotate = {\n enable: rotateOptions.animation.enable,\n value: ((0, Utils_1.getRangeValue)(rotateOptions.value) * Math.PI) / 180,\n };\n let rotateDirection = rotateOptions.direction;\n if (rotateDirection === Enums_1.RotateDirection.random) {\n const index = Math.floor(Math.random() * 2);\n rotateDirection = index > 0 ? Enums_1.RotateDirection.counterClockwise : Enums_1.RotateDirection.clockwise;\n }\n switch (rotateDirection) {\n case Enums_1.RotateDirection.counterClockwise:\n case \"counterClockwise\":\n particle.rotate.status = Enums_1.AnimationStatus.decreasing;\n break;\n case Enums_1.RotateDirection.clockwise:\n particle.rotate.status = Enums_1.AnimationStatus.increasing;\n break;\n }\n const rotateAnimation = particle.options.rotate.animation;\n if (rotateAnimation.enable) {\n particle.rotate.velocity = (rotateAnimation.speed / 360) * this.container.retina.reduceFactor;\n if (!rotateAnimation.sync) {\n particle.rotate.velocity *= Math.random();\n }\n }\n }\n isEnabled(particle) {\n const rotate = particle.options.rotate;\n const rotateAnimation = rotate.animation;\n return !particle.destroyed && !particle.spawning && !rotate.path && rotateAnimation.enable;\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateAngle(particle, delta);\n }\n}\nexports.AngleUpdater = AngleUpdater;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvQW5nbGUvQW5nbGVVcGRhdGVyLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELG9CQUFvQjtBQUNwQixnQkFBZ0IsbUJBQU8sQ0FBQyw4REFBYTtBQUNyQyxnQkFBZ0IsbUJBQU8sQ0FBQyw4REFBYTtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvQW5nbGUvQW5nbGVVcGRhdGVyLmpzPzJlZWMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkFuZ2xlVXBkYXRlciA9IHZvaWQgMDtcbmNvbnN0IEVudW1zXzEgPSByZXF1aXJlKFwiLi4vLi4vRW51bXNcIik7XG5jb25zdCBVdGlsc18xID0gcmVxdWlyZShcIi4uLy4uL1V0aWxzXCIpO1xuZnVuY3Rpb24gdXBkYXRlQW5nbGUocGFydGljbGUsIGRlbHRhKSB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IHJvdGF0ZSA9IHBhcnRpY2xlLnJvdGF0ZTtcbiAgICBpZiAoIXJvdGF0ZSkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHJvdGF0ZU9wdGlvbnMgPSBwYXJ0aWNsZS5vcHRpb25zLnJvdGF0ZTtcbiAgICBjb25zdCByb3RhdGVBbmltYXRpb24gPSByb3RhdGVPcHRpb25zLmFuaW1hdGlvbjtcbiAgICBjb25zdCBzcGVlZCA9ICgoX2EgPSByb3RhdGUudmVsb2NpdHkpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IDApICogZGVsdGEuZmFjdG9yO1xuICAgIGNvbnN0IG1heCA9IDIgKiBNYXRoLlBJO1xuICAgIGlmICghcm90YXRlQW5pbWF0aW9uLmVuYWJsZSkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIHN3aXRjaCAocm90YXRlLnN0YXR1cykge1xuICAgICAgICBjYXNlIEVudW1zXzEuQW5pbWF0aW9uU3RhdHVzLmluY3JlYXNpbmc6XG4gICAgICAgICAgICByb3RhdGUudmFsdWUgKz0gc3BlZWQ7XG4gICAgICAgICAgICBpZiAocm90YXRlLnZhbHVlID4gbWF4KSB7XG4gICAgICAgICAgICAgICAgcm90YXRlLnZhbHVlIC09IG1heDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVudW1zXzEuQW5pbWF0aW9uU3RhdHVzLmRlY3JlYXNpbmc6XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByb3RhdGUudmFsdWUgLT0gc3BlZWQ7XG4gICAgICAgICAgICBpZiAocm90YXRlLnZhbHVlIDwgMCkge1xuICAgICAgICAgICAgICAgIHJvdGF0ZS52YWx1ZSArPSBtYXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICB9XG59XG5jbGFzcyBBbmdsZVVwZGF0ZXIge1xuICAgIGNvbnN0cnVjdG9yKGNvbnRhaW5lcikge1xuICAgICAgICB0aGlzLmNvbnRhaW5lciA9IGNvbnRhaW5lcjtcbiAgICB9XG4gICAgaW5pdChwYXJ0aWNsZSkge1xuICAgICAgICBjb25zdCByb3RhdGVPcHRpb25zID0gcGFydGljbGUub3B0aW9ucy5yb3RhdGU7XG4gICAgICAgIHBhcnRpY2xlLnJvdGF0ZSA9IHtcbiAgICAgICAgICAgIGVuYWJsZTogcm90YXRlT3B0aW9ucy5hbmltYXRpb24uZW5hYmxlLFxuICAgICAgICAgICAgdmFsdWU6ICgoMCwgVXRpbHNfMS5nZXRSYW5nZVZhbHVlKShyb3RhdGVPcHRpb25zLnZhbHVlKSAqIE1hdGguUEkpIC8gMTgwLFxuICAgICAgICB9O1xuICAgICAgICBsZXQgcm90YXRlRGlyZWN0aW9uID0gcm90YXRlT3B0aW9ucy5kaXJlY3Rpb247XG4gICAgICAgIGlmIChyb3RhdGVEaXJlY3Rpb24gPT09IEVudW1zXzEuUm90YXRlRGlyZWN0aW9uLnJhbmRvbSkge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAyKTtcbiAgICAgICAgICAgIHJvdGF0ZURpcmVjdGlvbiA9IGluZGV4ID4gMCA/IEVudW1zXzEuUm90YXRlRGlyZWN0aW9uLmNvdW50ZXJDbG9ja3dpc2UgOiBFbnVtc18xLlJvdGF0ZURpcmVjdGlvbi5jbG9ja3dpc2U7XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoIChyb3RhdGVEaXJlY3Rpb24pIHtcbiAgICAgICAgICAgIGNhc2UgRW51bXNfMS5Sb3RhdGVEaXJlY3Rpb24uY291bnRlckNsb2Nrd2lzZTpcbiAgICAgICAgICAgIGNhc2UgXCJjb3VudGVyQ2xvY2t3aXNlXCI6XG4gICAgICAgICAgICAgICAgcGFydGljbGUucm90YXRlLnN0YXR1cyA9IEVudW1zXzEuQW5pbWF0aW9uU3RhdHVzLmRlY3JlYXNpbmc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEVudW1zXzEuUm90YXRlRGlyZWN0aW9uLmNsb2Nrd2lzZTpcbiAgICAgICAgICAgICAgICBwYXJ0aWNsZS5yb3RhdGUuc3RhdHVzID0gRW51bXNfMS5BbmltYXRpb25TdGF0dXMuaW5jcmVhc2luZztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByb3RhdGVBbmltYXRpb24gPSBwYXJ0aWNsZS5vcHRpb25zLnJvdGF0ZS5hbmltYXRpb247XG4gICAgICAgIGlmIChyb3RhdGVBbmltYXRpb24uZW5hYmxlKSB7XG4gICAgICAgICAgICBwYXJ0aWNsZS5yb3RhdGUudmVsb2NpdHkgPSAocm90YXRlQW5pbWF0aW9uLnNwZWVkIC8gMzYwKSAqIHRoaXMuY29udGFpbmVyLnJldGluYS5yZWR1Y2VGYWN0b3I7XG4gICAgICAgICAgICBpZiAoIXJvdGF0ZUFuaW1hdGlvbi5zeW5jKSB7XG4gICAgICAgICAgICAgICAgcGFydGljbGUucm90YXRlLnZlbG9jaXR5ICo9IE1hdGgucmFuZG9tKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgaXNFbmFibGVkKHBhcnRpY2xlKSB7XG4gICAgICAgIGNvbnN0IHJvdGF0ZSA9IHBhcnRpY2xlLm9wdGlvbnMucm90YXRlO1xuICAgICAgICBjb25zdCByb3RhdGVBbmltYXRpb24gPSByb3RhdGUuYW5pbWF0aW9uO1xuICAgICAgICByZXR1cm4gIXBhcnRpY2xlLmRlc3Ryb3llZCAmJiAhcGFydGljbGUuc3Bhd25pbmcgJiYgIXJvdGF0ZS5wYXRoICYmIHJvdGF0ZUFuaW1hdGlvbi5lbmFibGU7XG4gICAgfVxuICAgIHVwZGF0ZShwYXJ0aWNsZSwgZGVsdGEpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzRW5hYmxlZChwYXJ0aWNsZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB1cGRhdGVBbmdsZShwYXJ0aWNsZSwgZGVsdGEpO1xuICAgIH1cbn1cbmV4cG9ydHMuQW5nbGVVcGRhdGVyID0gQW5nbGVVcGRhdGVyO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Updaters/Angle/AngleUpdater.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Updaters/Angle/index.js": +/*!**********************************************************!*\ + !*** ./node_modules/tsparticles/Updaters/Angle/index.js ***! + \**********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadAngleUpdater = void 0;\nconst AngleUpdater_1 = __webpack_require__(/*! ./AngleUpdater */ \"./node_modules/tsparticles/Updaters/Angle/AngleUpdater.js\");\nasync function loadAngleUpdater(tsParticles) {\n await tsParticles.addParticleUpdater(\"angle\", (container) => new AngleUpdater_1.AngleUpdater(container));\n}\nexports.loadAngleUpdater = loadAngleUpdater;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvQW5nbGUvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsd0JBQXdCO0FBQ3hCLHVCQUF1QixtQkFBTyxDQUFDLGlGQUFnQjtBQUMvQztBQUNBO0FBQ0E7QUFDQSx3QkFBd0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1VwZGF0ZXJzL0FuZ2xlL2luZGV4LmpzPzhkY2MiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmxvYWRBbmdsZVVwZGF0ZXIgPSB2b2lkIDA7XG5jb25zdCBBbmdsZVVwZGF0ZXJfMSA9IHJlcXVpcmUoXCIuL0FuZ2xlVXBkYXRlclwiKTtcbmFzeW5jIGZ1bmN0aW9uIGxvYWRBbmdsZVVwZGF0ZXIodHNQYXJ0aWNsZXMpIHtcbiAgICBhd2FpdCB0c1BhcnRpY2xlcy5hZGRQYXJ0aWNsZVVwZGF0ZXIoXCJhbmdsZVwiLCAoY29udGFpbmVyKSA9PiBuZXcgQW5nbGVVcGRhdGVyXzEuQW5nbGVVcGRhdGVyKGNvbnRhaW5lcikpO1xufVxuZXhwb3J0cy5sb2FkQW5nbGVVcGRhdGVyID0gbG9hZEFuZ2xlVXBkYXRlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Updaters/Angle/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Updaters/Color/ColorUpdater.js": +/*!*****************************************************************!*\ + !*** ./node_modules/tsparticles/Updaters/Color/ColorUpdater.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ColorUpdater = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nfunction updateColorValue(delta, value, valueAnimation, max, decrease) {\n var _a;\n const colorValue = value;\n if (!colorValue || !valueAnimation.enable) {\n return;\n }\n const offset = (0, Utils_1.randomInRange)(valueAnimation.offset);\n const velocity = ((_a = value.velocity) !== null && _a !== void 0 ? _a : 0) * delta.factor + offset * 3.6;\n if (!decrease || colorValue.status === Enums_1.AnimationStatus.increasing) {\n colorValue.value += velocity;\n if (decrease && colorValue.value > max) {\n colorValue.status = Enums_1.AnimationStatus.decreasing;\n colorValue.value -= colorValue.value % max;\n }\n }\n else {\n colorValue.value -= velocity;\n if (colorValue.value < 0) {\n colorValue.status = Enums_1.AnimationStatus.increasing;\n colorValue.value += colorValue.value;\n }\n }\n if (colorValue.value > max) {\n colorValue.value %= max;\n }\n}\nfunction updateColor(particle, delta) {\n var _a, _b, _c;\n const animationOptions = particle.options.color.animation;\n if (((_a = particle.color) === null || _a === void 0 ? void 0 : _a.h) !== undefined) {\n updateColorValue(delta, particle.color.h, animationOptions.h, 360, false);\n }\n if (((_b = particle.color) === null || _b === void 0 ? void 0 : _b.s) !== undefined) {\n updateColorValue(delta, particle.color.s, animationOptions.s, 100, true);\n }\n if (((_c = particle.color) === null || _c === void 0 ? void 0 : _c.l) !== undefined) {\n updateColorValue(delta, particle.color.l, animationOptions.l, 100, true);\n }\n}\nclass ColorUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n const hslColor = (0, Utils_1.colorToHsl)(particle.options.color, particle.id, particle.options.reduceDuplicates);\n if (hslColor) {\n particle.color = (0, Utils_1.getHslAnimationFromHsl)(hslColor, particle.options.color.animation, this.container.retina.reduceFactor);\n }\n }\n isEnabled(particle) {\n var _a, _b, _c;\n const animationOptions = particle.options.color.animation;\n return (!particle.destroyed &&\n !particle.spawning &&\n ((((_a = particle.color) === null || _a === void 0 ? void 0 : _a.h.value) !== undefined && animationOptions.h.enable) ||\n (((_b = particle.color) === null || _b === void 0 ? void 0 : _b.s.value) !== undefined && animationOptions.s.enable) ||\n (((_c = particle.color) === null || _c === void 0 ? void 0 : _c.l.value) !== undefined && animationOptions.l.enable)));\n }\n update(particle, delta) {\n updateColor(particle, delta);\n }\n}\nexports.ColorUpdater = ColorUpdater;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvQ29sb3IvQ29sb3JVcGRhdGVyLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELG9CQUFvQjtBQUNwQixnQkFBZ0IsbUJBQU8sQ0FBQyw4REFBYTtBQUNyQyxnQkFBZ0IsbUJBQU8sQ0FBQyw4REFBYTtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9VcGRhdGVycy9Db2xvci9Db2xvclVwZGF0ZXIuanM/MDBkMyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuQ29sb3JVcGRhdGVyID0gdm9pZCAwO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuLi8uLi9FbnVtc1wiKTtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vVXRpbHNcIik7XG5mdW5jdGlvbiB1cGRhdGVDb2xvclZhbHVlKGRlbHRhLCB2YWx1ZSwgdmFsdWVBbmltYXRpb24sIG1heCwgZGVjcmVhc2UpIHtcbiAgICB2YXIgX2E7XG4gICAgY29uc3QgY29sb3JWYWx1ZSA9IHZhbHVlO1xuICAgIGlmICghY29sb3JWYWx1ZSB8fCAhdmFsdWVBbmltYXRpb24uZW5hYmxlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgb2Zmc2V0ID0gKDAsIFV0aWxzXzEucmFuZG9tSW5SYW5nZSkodmFsdWVBbmltYXRpb24ub2Zmc2V0KTtcbiAgICBjb25zdCB2ZWxvY2l0eSA9ICgoX2EgPSB2YWx1ZS52ZWxvY2l0eSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogMCkgKiBkZWx0YS5mYWN0b3IgKyBvZmZzZXQgKiAzLjY7XG4gICAgaWYgKCFkZWNyZWFzZSB8fCBjb2xvclZhbHVlLnN0YXR1cyA9PT0gRW51bXNfMS5BbmltYXRpb25TdGF0dXMuaW5jcmVhc2luZykge1xuICAgICAgICBjb2xvclZhbHVlLnZhbHVlICs9IHZlbG9jaXR5O1xuICAgICAgICBpZiAoZGVjcmVhc2UgJiYgY29sb3JWYWx1ZS52YWx1ZSA+IG1heCkge1xuICAgICAgICAgICAgY29sb3JWYWx1ZS5zdGF0dXMgPSBFbnVtc18xLkFuaW1hdGlvblN0YXR1cy5kZWNyZWFzaW5nO1xuICAgICAgICAgICAgY29sb3JWYWx1ZS52YWx1ZSAtPSBjb2xvclZhbHVlLnZhbHVlICUgbWF4O1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBjb2xvclZhbHVlLnZhbHVlIC09IHZlbG9jaXR5O1xuICAgICAgICBpZiAoY29sb3JWYWx1ZS52YWx1ZSA8IDApIHtcbiAgICAgICAgICAgIGNvbG9yVmFsdWUuc3RhdHVzID0gRW51bXNfMS5BbmltYXRpb25TdGF0dXMuaW5jcmVhc2luZztcbiAgICAgICAgICAgIGNvbG9yVmFsdWUudmFsdWUgKz0gY29sb3JWYWx1ZS52YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoY29sb3JWYWx1ZS52YWx1ZSA+IG1heCkge1xuICAgICAgICBjb2xvclZhbHVlLnZhbHVlICU9IG1heDtcbiAgICB9XG59XG5mdW5jdGlvbiB1cGRhdGVDb2xvcihwYXJ0aWNsZSwgZGVsdGEpIHtcbiAgICB2YXIgX2EsIF9iLCBfYztcbiAgICBjb25zdCBhbmltYXRpb25PcHRpb25zID0gcGFydGljbGUub3B0aW9ucy5jb2xvci5hbmltYXRpb247XG4gICAgaWYgKCgoX2EgPSBwYXJ0aWNsZS5jb2xvcikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmgpICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdXBkYXRlQ29sb3JWYWx1ZShkZWx0YSwgcGFydGljbGUuY29sb3IuaCwgYW5pbWF0aW9uT3B0aW9ucy5oLCAzNjAsIGZhbHNlKTtcbiAgICB9XG4gICAgaWYgKCgoX2IgPSBwYXJ0aWNsZS5jb2xvcikgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLnMpICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdXBkYXRlQ29sb3JWYWx1ZShkZWx0YSwgcGFydGljbGUuY29sb3IucywgYW5pbWF0aW9uT3B0aW9ucy5zLCAxMDAsIHRydWUpO1xuICAgIH1cbiAgICBpZiAoKChfYyA9IHBhcnRpY2xlLmNvbG9yKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MubCkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB1cGRhdGVDb2xvclZhbHVlKGRlbHRhLCBwYXJ0aWNsZS5jb2xvci5sLCBhbmltYXRpb25PcHRpb25zLmwsIDEwMCwgdHJ1ZSk7XG4gICAgfVxufVxuY2xhc3MgQ29sb3JVcGRhdGVyIHtcbiAgICBjb25zdHJ1Y3Rvcihjb250YWluZXIpIHtcbiAgICAgICAgdGhpcy5jb250YWluZXIgPSBjb250YWluZXI7XG4gICAgfVxuICAgIGluaXQocGFydGljbGUpIHtcbiAgICAgICAgY29uc3QgaHNsQ29sb3IgPSAoMCwgVXRpbHNfMS5jb2xvclRvSHNsKShwYXJ0aWNsZS5vcHRpb25zLmNvbG9yLCBwYXJ0aWNsZS5pZCwgcGFydGljbGUub3B0aW9ucy5yZWR1Y2VEdXBsaWNhdGVzKTtcbiAgICAgICAgaWYgKGhzbENvbG9yKSB7XG4gICAgICAgICAgICBwYXJ0aWNsZS5jb2xvciA9ICgwLCBVdGlsc18xLmdldEhzbEFuaW1hdGlvbkZyb21Ic2wpKGhzbENvbG9yLCBwYXJ0aWNsZS5vcHRpb25zLmNvbG9yLmFuaW1hdGlvbiwgdGhpcy5jb250YWluZXIucmV0aW5hLnJlZHVjZUZhY3Rvcik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaXNFbmFibGVkKHBhcnRpY2xlKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICBjb25zdCBhbmltYXRpb25PcHRpb25zID0gcGFydGljbGUub3B0aW9ucy5jb2xvci5hbmltYXRpb247XG4gICAgICAgIHJldHVybiAoIXBhcnRpY2xlLmRlc3Ryb3llZCAmJlxuICAgICAgICAgICAgIXBhcnRpY2xlLnNwYXduaW5nICYmXG4gICAgICAgICAgICAoKCgoX2EgPSBwYXJ0aWNsZS5jb2xvcikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmgudmFsdWUpICE9PSB1bmRlZmluZWQgJiYgYW5pbWF0aW9uT3B0aW9ucy5oLmVuYWJsZSkgfHxcbiAgICAgICAgICAgICAgICAoKChfYiA9IHBhcnRpY2xlLmNvbG9yKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Iucy52YWx1ZSkgIT09IHVuZGVmaW5lZCAmJiBhbmltYXRpb25PcHRpb25zLnMuZW5hYmxlKSB8fFxuICAgICAgICAgICAgICAgICgoKF9jID0gcGFydGljbGUuY29sb3IpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5sLnZhbHVlKSAhPT0gdW5kZWZpbmVkICYmIGFuaW1hdGlvbk9wdGlvbnMubC5lbmFibGUpKSk7XG4gICAgfVxuICAgIHVwZGF0ZShwYXJ0aWNsZSwgZGVsdGEpIHtcbiAgICAgICAgdXBkYXRlQ29sb3IocGFydGljbGUsIGRlbHRhKTtcbiAgICB9XG59XG5leHBvcnRzLkNvbG9yVXBkYXRlciA9IENvbG9yVXBkYXRlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Updaters/Color/ColorUpdater.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Updaters/Color/index.js": +/*!**********************************************************!*\ + !*** ./node_modules/tsparticles/Updaters/Color/index.js ***! + \**********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadColorUpdater = void 0;\nconst ColorUpdater_1 = __webpack_require__(/*! ./ColorUpdater */ \"./node_modules/tsparticles/Updaters/Color/ColorUpdater.js\");\nasync function loadColorUpdater(tsParticles) {\n await tsParticles.addParticleUpdater(\"color\", (container) => new ColorUpdater_1.ColorUpdater(container));\n}\nexports.loadColorUpdater = loadColorUpdater;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvQ29sb3IvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsd0JBQXdCO0FBQ3hCLHVCQUF1QixtQkFBTyxDQUFDLGlGQUFnQjtBQUMvQztBQUNBO0FBQ0E7QUFDQSx3QkFBd0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1VwZGF0ZXJzL0NvbG9yL2luZGV4LmpzP2E2N2UiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmxvYWRDb2xvclVwZGF0ZXIgPSB2b2lkIDA7XG5jb25zdCBDb2xvclVwZGF0ZXJfMSA9IHJlcXVpcmUoXCIuL0NvbG9yVXBkYXRlclwiKTtcbmFzeW5jIGZ1bmN0aW9uIGxvYWRDb2xvclVwZGF0ZXIodHNQYXJ0aWNsZXMpIHtcbiAgICBhd2FpdCB0c1BhcnRpY2xlcy5hZGRQYXJ0aWNsZVVwZGF0ZXIoXCJjb2xvclwiLCAoY29udGFpbmVyKSA9PiBuZXcgQ29sb3JVcGRhdGVyXzEuQ29sb3JVcGRhdGVyKGNvbnRhaW5lcikpO1xufVxuZXhwb3J0cy5sb2FkQ29sb3JVcGRhdGVyID0gbG9hZENvbG9yVXBkYXRlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Updaters/Color/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Updaters/Life/LifeUpdater.js": +/*!***************************************************************!*\ + !*** ./node_modules/tsparticles/Updaters/Life/LifeUpdater.js ***! + \***************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.LifeUpdater = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nclass LifeUpdater {\n constructor(container) {\n this.container = container;\n }\n init() {\n }\n isEnabled(particle) {\n return !particle.destroyed;\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n const life = particle.life;\n let justSpawned = false;\n if (particle.spawning) {\n life.delayTime += delta.value;\n if (life.delayTime >= particle.life.delay) {\n justSpawned = true;\n particle.spawning = false;\n life.delayTime = 0;\n life.time = 0;\n }\n else {\n return;\n }\n }\n if (life.duration === -1) {\n return;\n }\n if (particle.spawning) {\n return;\n }\n if (justSpawned) {\n life.time = 0;\n }\n else {\n life.time += delta.value;\n }\n if (life.time < life.duration) {\n return;\n }\n life.time = 0;\n if (particle.life.count > 0) {\n particle.life.count--;\n }\n if (particle.life.count === 0) {\n particle.destroy();\n return;\n }\n const canvasSize = this.container.canvas.size, widthRange = (0, Utils_1.setRangeValue)(0, canvasSize.width), heightRange = (0, Utils_1.setRangeValue)(0, canvasSize.width);\n particle.position.x = (0, Utils_1.randomInRange)(widthRange);\n particle.position.y = (0, Utils_1.randomInRange)(heightRange);\n particle.spawning = true;\n life.delayTime = 0;\n life.time = 0;\n particle.reset();\n const lifeOptions = particle.options.life;\n life.delay = (0, Utils_1.getRangeValue)(lifeOptions.delay.value) * 1000;\n life.duration = (0, Utils_1.getRangeValue)(lifeOptions.duration.value) * 1000;\n }\n}\nexports.LifeUpdater = LifeUpdater;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvTGlmZS9MaWZlVXBkYXRlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxtQkFBbUI7QUFDbkIsZ0JBQWdCLG1CQUFPLENBQUMsOERBQWE7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvTGlmZS9MaWZlVXBkYXRlci5qcz83NjE5Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5MaWZlVXBkYXRlciA9IHZvaWQgMDtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vVXRpbHNcIik7XG5jbGFzcyBMaWZlVXBkYXRlciB7XG4gICAgY29uc3RydWN0b3IoY29udGFpbmVyKSB7XG4gICAgICAgIHRoaXMuY29udGFpbmVyID0gY29udGFpbmVyO1xuICAgIH1cbiAgICBpbml0KCkge1xuICAgIH1cbiAgICBpc0VuYWJsZWQocGFydGljbGUpIHtcbiAgICAgICAgcmV0dXJuICFwYXJ0aWNsZS5kZXN0cm95ZWQ7XG4gICAgfVxuICAgIHVwZGF0ZShwYXJ0aWNsZSwgZGVsdGEpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzRW5hYmxlZChwYXJ0aWNsZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsaWZlID0gcGFydGljbGUubGlmZTtcbiAgICAgICAgbGV0IGp1c3RTcGF3bmVkID0gZmFsc2U7XG4gICAgICAgIGlmIChwYXJ0aWNsZS5zcGF3bmluZykge1xuICAgICAgICAgICAgbGlmZS5kZWxheVRpbWUgKz0gZGVsdGEudmFsdWU7XG4gICAgICAgICAgICBpZiAobGlmZS5kZWxheVRpbWUgPj0gcGFydGljbGUubGlmZS5kZWxheSkge1xuICAgICAgICAgICAgICAgIGp1c3RTcGF3bmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBwYXJ0aWNsZS5zcGF3bmluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGxpZmUuZGVsYXlUaW1lID0gMDtcbiAgICAgICAgICAgICAgICBsaWZlLnRpbWUgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChsaWZlLmR1cmF0aW9uID09PSAtMSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXJ0aWNsZS5zcGF3bmluZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChqdXN0U3Bhd25lZCkge1xuICAgICAgICAgICAgbGlmZS50aW1lID0gMDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGxpZmUudGltZSArPSBkZWx0YS52YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobGlmZS50aW1lIDwgbGlmZS5kdXJhdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGxpZmUudGltZSA9IDA7XG4gICAgICAgIGlmIChwYXJ0aWNsZS5saWZlLmNvdW50ID4gMCkge1xuICAgICAgICAgICAgcGFydGljbGUubGlmZS5jb3VudC0tO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXJ0aWNsZS5saWZlLmNvdW50ID09PSAwKSB7XG4gICAgICAgICAgICBwYXJ0aWNsZS5kZXN0cm95KCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2FudmFzU2l6ZSA9IHRoaXMuY29udGFpbmVyLmNhbnZhcy5zaXplLCB3aWR0aFJhbmdlID0gKDAsIFV0aWxzXzEuc2V0UmFuZ2VWYWx1ZSkoMCwgY2FudmFzU2l6ZS53aWR0aCksIGhlaWdodFJhbmdlID0gKDAsIFV0aWxzXzEuc2V0UmFuZ2VWYWx1ZSkoMCwgY2FudmFzU2l6ZS53aWR0aCk7XG4gICAgICAgIHBhcnRpY2xlLnBvc2l0aW9uLnggPSAoMCwgVXRpbHNfMS5yYW5kb21JblJhbmdlKSh3aWR0aFJhbmdlKTtcbiAgICAgICAgcGFydGljbGUucG9zaXRpb24ueSA9ICgwLCBVdGlsc18xLnJhbmRvbUluUmFuZ2UpKGhlaWdodFJhbmdlKTtcbiAgICAgICAgcGFydGljbGUuc3Bhd25pbmcgPSB0cnVlO1xuICAgICAgICBsaWZlLmRlbGF5VGltZSA9IDA7XG4gICAgICAgIGxpZmUudGltZSA9IDA7XG4gICAgICAgIHBhcnRpY2xlLnJlc2V0KCk7XG4gICAgICAgIGNvbnN0IGxpZmVPcHRpb25zID0gcGFydGljbGUub3B0aW9ucy5saWZlO1xuICAgICAgICBsaWZlLmRlbGF5ID0gKDAsIFV0aWxzXzEuZ2V0UmFuZ2VWYWx1ZSkobGlmZU9wdGlvbnMuZGVsYXkudmFsdWUpICogMTAwMDtcbiAgICAgICAgbGlmZS5kdXJhdGlvbiA9ICgwLCBVdGlsc18xLmdldFJhbmdlVmFsdWUpKGxpZmVPcHRpb25zLmR1cmF0aW9uLnZhbHVlKSAqIDEwMDA7XG4gICAgfVxufVxuZXhwb3J0cy5MaWZlVXBkYXRlciA9IExpZmVVcGRhdGVyO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Updaters/Life/LifeUpdater.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Updaters/Life/index.js": +/*!*********************************************************!*\ + !*** ./node_modules/tsparticles/Updaters/Life/index.js ***! + \*********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadLifeUpdater = void 0;\nconst LifeUpdater_1 = __webpack_require__(/*! ./LifeUpdater */ \"./node_modules/tsparticles/Updaters/Life/LifeUpdater.js\");\nasync function loadLifeUpdater(tsParticles) {\n await tsParticles.addParticleUpdater(\"life\", (container) => new LifeUpdater_1.LifeUpdater(container));\n}\nexports.loadLifeUpdater = loadLifeUpdater;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvTGlmZS9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCx1QkFBdUI7QUFDdkIsc0JBQXNCLG1CQUFPLENBQUMsOEVBQWU7QUFDN0M7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9VcGRhdGVycy9MaWZlL2luZGV4LmpzPzY0MWUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmxvYWRMaWZlVXBkYXRlciA9IHZvaWQgMDtcbmNvbnN0IExpZmVVcGRhdGVyXzEgPSByZXF1aXJlKFwiLi9MaWZlVXBkYXRlclwiKTtcbmFzeW5jIGZ1bmN0aW9uIGxvYWRMaWZlVXBkYXRlcih0c1BhcnRpY2xlcykge1xuICAgIGF3YWl0IHRzUGFydGljbGVzLmFkZFBhcnRpY2xlVXBkYXRlcihcImxpZmVcIiwgKGNvbnRhaW5lcikgPT4gbmV3IExpZmVVcGRhdGVyXzEuTGlmZVVwZGF0ZXIoY29udGFpbmVyKSk7XG59XG5leHBvcnRzLmxvYWRMaWZlVXBkYXRlciA9IGxvYWRMaWZlVXBkYXRlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Updaters/Life/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Updaters/Opacity/OpacityUpdater.js": +/*!*********************************************************************!*\ + !*** ./node_modules/tsparticles/Updaters/Opacity/OpacityUpdater.js ***! + \*********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.OpacityUpdater = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nfunction checkDestroy(particle, value, minValue, maxValue) {\n switch (particle.options.opacity.animation.destroy) {\n case Enums_1.DestroyType.max:\n if (value >= maxValue) {\n particle.destroy();\n }\n break;\n case Enums_1.DestroyType.min:\n if (value <= minValue) {\n particle.destroy();\n }\n break;\n }\n}\nfunction updateOpacity(particle, delta) {\n var _a, _b, _c, _d, _e;\n if (!particle.opacity) {\n return;\n }\n const minValue = particle.opacity.min;\n const maxValue = particle.opacity.max;\n if (!(!particle.destroyed &&\n particle.opacity.enable &&\n (((_a = particle.opacity.maxLoops) !== null && _a !== void 0 ? _a : 0) <= 0 || ((_b = particle.opacity.loops) !== null && _b !== void 0 ? _b : 0) < ((_c = particle.opacity.maxLoops) !== null && _c !== void 0 ? _c : 0)))) {\n return;\n }\n switch (particle.opacity.status) {\n case Enums_1.AnimationStatus.increasing:\n if (particle.opacity.value >= maxValue) {\n particle.opacity.status = Enums_1.AnimationStatus.decreasing;\n if (!particle.opacity.loops) {\n particle.opacity.loops = 0;\n }\n particle.opacity.loops++;\n }\n else {\n particle.opacity.value += ((_d = particle.opacity.velocity) !== null && _d !== void 0 ? _d : 0) * delta.factor;\n }\n break;\n case Enums_1.AnimationStatus.decreasing:\n if (particle.opacity.value <= minValue) {\n particle.opacity.status = Enums_1.AnimationStatus.increasing;\n if (!particle.opacity.loops) {\n particle.opacity.loops = 0;\n }\n particle.opacity.loops++;\n }\n else {\n particle.opacity.value -= ((_e = particle.opacity.velocity) !== null && _e !== void 0 ? _e : 0) * delta.factor;\n }\n break;\n }\n checkDestroy(particle, particle.opacity.value, minValue, maxValue);\n if (!particle.destroyed) {\n particle.opacity.value = (0, Utils_1.clamp)(particle.opacity.value, minValue, maxValue);\n }\n}\nclass OpacityUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n const opacityOptions = particle.options.opacity;\n particle.opacity = {\n enable: opacityOptions.animation.enable,\n max: (0, Utils_1.getRangeMax)(opacityOptions.value),\n min: (0, Utils_1.getRangeMin)(opacityOptions.value),\n value: (0, Utils_1.getRangeValue)(opacityOptions.value),\n loops: 0,\n maxLoops: opacityOptions.animation.count,\n };\n const opacityAnimation = opacityOptions.animation;\n if (opacityAnimation.enable) {\n particle.opacity.status = Enums_1.AnimationStatus.increasing;\n const opacityRange = opacityOptions.value;\n particle.opacity.min = (0, Utils_1.getRangeMin)(opacityRange);\n particle.opacity.max = (0, Utils_1.getRangeMax)(opacityRange);\n switch (opacityAnimation.startValue) {\n case Enums_1.StartValueType.min:\n particle.opacity.value = particle.opacity.min;\n particle.opacity.status = Enums_1.AnimationStatus.increasing;\n break;\n case Enums_1.StartValueType.random:\n particle.opacity.value = (0, Utils_1.randomInRange)(particle.opacity);\n particle.opacity.status =\n Math.random() >= 0.5 ? Enums_1.AnimationStatus.increasing : Enums_1.AnimationStatus.decreasing;\n break;\n case Enums_1.StartValueType.max:\n default:\n particle.opacity.value = particle.opacity.max;\n particle.opacity.status = Enums_1.AnimationStatus.decreasing;\n break;\n }\n particle.opacity.velocity = (opacityAnimation.speed / 100) * this.container.retina.reduceFactor;\n if (!opacityAnimation.sync) {\n particle.opacity.velocity *= Math.random();\n }\n }\n }\n isEnabled(particle) {\n var _a, _b, _c;\n return (!particle.destroyed &&\n !particle.spawning &&\n !!particle.opacity &&\n particle.opacity.enable &&\n (((_a = particle.opacity.maxLoops) !== null && _a !== void 0 ? _a : 0) <= 0 || ((_b = particle.opacity.loops) !== null && _b !== void 0 ? _b : 0) < ((_c = particle.opacity.maxLoops) !== null && _c !== void 0 ? _c : 0)));\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateOpacity(particle, delta);\n }\n}\nexports.OpacityUpdater = OpacityUpdater;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvT3BhY2l0eS9PcGFjaXR5VXBkYXRlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxzQkFBc0I7QUFDdEIsZ0JBQWdCLG1CQUFPLENBQUMsOERBQWE7QUFDckMsZ0JBQWdCLG1CQUFPLENBQUMsOERBQWE7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9VcGRhdGVycy9PcGFjaXR5L09wYWNpdHlVcGRhdGVyLmpzP2Q3YTMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLk9wYWNpdHlVcGRhdGVyID0gdm9pZCAwO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuLi8uLi9FbnVtc1wiKTtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vVXRpbHNcIik7XG5mdW5jdGlvbiBjaGVja0Rlc3Ryb3kocGFydGljbGUsIHZhbHVlLCBtaW5WYWx1ZSwgbWF4VmFsdWUpIHtcbiAgICBzd2l0Y2ggKHBhcnRpY2xlLm9wdGlvbnMub3BhY2l0eS5hbmltYXRpb24uZGVzdHJveSkge1xuICAgICAgICBjYXNlIEVudW1zXzEuRGVzdHJveVR5cGUubWF4OlxuICAgICAgICAgICAgaWYgKHZhbHVlID49IG1heFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgcGFydGljbGUuZGVzdHJveSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRW51bXNfMS5EZXN0cm95VHlwZS5taW46XG4gICAgICAgICAgICBpZiAodmFsdWUgPD0gbWluVmFsdWUpIHtcbiAgICAgICAgICAgICAgICBwYXJ0aWNsZS5kZXN0cm95KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICB9XG59XG5mdW5jdGlvbiB1cGRhdGVPcGFjaXR5KHBhcnRpY2xlLCBkZWx0YSkge1xuICAgIHZhciBfYSwgX2IsIF9jLCBfZCwgX2U7XG4gICAgaWYgKCFwYXJ0aWNsZS5vcGFjaXR5KSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgbWluVmFsdWUgPSBwYXJ0aWNsZS5vcGFjaXR5Lm1pbjtcbiAgICBjb25zdCBtYXhWYWx1ZSA9IHBhcnRpY2xlLm9wYWNpdHkubWF4O1xuICAgIGlmICghKCFwYXJ0aWNsZS5kZXN0cm95ZWQgJiZcbiAgICAgICAgcGFydGljbGUub3BhY2l0eS5lbmFibGUgJiZcbiAgICAgICAgKCgoX2EgPSBwYXJ0aWNsZS5vcGFjaXR5Lm1heExvb3BzKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAwKSA8PSAwIHx8ICgoX2IgPSBwYXJ0aWNsZS5vcGFjaXR5Lmxvb3BzKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiAwKSA8ICgoX2MgPSBwYXJ0aWNsZS5vcGFjaXR5Lm1heExvb3BzKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiAwKSkpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgc3dpdGNoIChwYXJ0aWNsZS5vcGFjaXR5LnN0YXR1cykge1xuICAgICAgICBjYXNlIEVudW1zXzEuQW5pbWF0aW9uU3RhdHVzLmluY3JlYXNpbmc6XG4gICAgICAgICAgICBpZiAocGFydGljbGUub3BhY2l0eS52YWx1ZSA+PSBtYXhWYWx1ZSkge1xuICAgICAgICAgICAgICAgIHBhcnRpY2xlLm9wYWNpdHkuc3RhdHVzID0gRW51bXNfMS5BbmltYXRpb25TdGF0dXMuZGVjcmVhc2luZztcbiAgICAgICAgICAgICAgICBpZiAoIXBhcnRpY2xlLm9wYWNpdHkubG9vcHMpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFydGljbGUub3BhY2l0eS5sb29wcyA9IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHBhcnRpY2xlLm9wYWNpdHkubG9vcHMrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHBhcnRpY2xlLm9wYWNpdHkudmFsdWUgKz0gKChfZCA9IHBhcnRpY2xlLm9wYWNpdHkudmVsb2NpdHkpICE9PSBudWxsICYmIF9kICE9PSB2b2lkIDAgPyBfZCA6IDApICogZGVsdGEuZmFjdG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRW51bXNfMS5BbmltYXRpb25TdGF0dXMuZGVjcmVhc2luZzpcbiAgICAgICAgICAgIGlmIChwYXJ0aWNsZS5vcGFjaXR5LnZhbHVlIDw9IG1pblZhbHVlKSB7XG4gICAgICAgICAgICAgICAgcGFydGljbGUub3BhY2l0eS5zdGF0dXMgPSBFbnVtc18xLkFuaW1hdGlvblN0YXR1cy5pbmNyZWFzaW5nO1xuICAgICAgICAgICAgICAgIGlmICghcGFydGljbGUub3BhY2l0eS5sb29wcykge1xuICAgICAgICAgICAgICAgICAgICBwYXJ0aWNsZS5vcGFjaXR5Lmxvb3BzID0gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcGFydGljbGUub3BhY2l0eS5sb29wcysrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcGFydGljbGUub3BhY2l0eS52YWx1ZSAtPSAoKF9lID0gcGFydGljbGUub3BhY2l0eS52ZWxvY2l0eSkgIT09IG51bGwgJiYgX2UgIT09IHZvaWQgMCA/IF9lIDogMCkgKiBkZWx0YS5mYWN0b3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICB9XG4gICAgY2hlY2tEZXN0cm95KHBhcnRpY2xlLCBwYXJ0aWNsZS5vcGFjaXR5LnZhbHVlLCBtaW5WYWx1ZSwgbWF4VmFsdWUpO1xuICAgIGlmICghcGFydGljbGUuZGVzdHJveWVkKSB7XG4gICAgICAgIHBhcnRpY2xlLm9wYWNpdHkudmFsdWUgPSAoMCwgVXRpbHNfMS5jbGFtcCkocGFydGljbGUub3BhY2l0eS52YWx1ZSwgbWluVmFsdWUsIG1heFZhbHVlKTtcbiAgICB9XG59XG5jbGFzcyBPcGFjaXR5VXBkYXRlciB7XG4gICAgY29uc3RydWN0b3IoY29udGFpbmVyKSB7XG4gICAgICAgIHRoaXMuY29udGFpbmVyID0gY29udGFpbmVyO1xuICAgIH1cbiAgICBpbml0KHBhcnRpY2xlKSB7XG4gICAgICAgIGNvbnN0IG9wYWNpdHlPcHRpb25zID0gcGFydGljbGUub3B0aW9ucy5vcGFjaXR5O1xuICAgICAgICBwYXJ0aWNsZS5vcGFjaXR5ID0ge1xuICAgICAgICAgICAgZW5hYmxlOiBvcGFjaXR5T3B0aW9ucy5hbmltYXRpb24uZW5hYmxlLFxuICAgICAgICAgICAgbWF4OiAoMCwgVXRpbHNfMS5nZXRSYW5nZU1heCkob3BhY2l0eU9wdGlvbnMudmFsdWUpLFxuICAgICAgICAgICAgbWluOiAoMCwgVXRpbHNfMS5nZXRSYW5nZU1pbikob3BhY2l0eU9wdGlvbnMudmFsdWUpLFxuICAgICAgICAgICAgdmFsdWU6ICgwLCBVdGlsc18xLmdldFJhbmdlVmFsdWUpKG9wYWNpdHlPcHRpb25zLnZhbHVlKSxcbiAgICAgICAgICAgIGxvb3BzOiAwLFxuICAgICAgICAgICAgbWF4TG9vcHM6IG9wYWNpdHlPcHRpb25zLmFuaW1hdGlvbi5jb3VudCxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3Qgb3BhY2l0eUFuaW1hdGlvbiA9IG9wYWNpdHlPcHRpb25zLmFuaW1hdGlvbjtcbiAgICAgICAgaWYgKG9wYWNpdHlBbmltYXRpb24uZW5hYmxlKSB7XG4gICAgICAgICAgICBwYXJ0aWNsZS5vcGFjaXR5LnN0YXR1cyA9IEVudW1zXzEuQW5pbWF0aW9uU3RhdHVzLmluY3JlYXNpbmc7XG4gICAgICAgICAgICBjb25zdCBvcGFjaXR5UmFuZ2UgPSBvcGFjaXR5T3B0aW9ucy52YWx1ZTtcbiAgICAgICAgICAgIHBhcnRpY2xlLm9wYWNpdHkubWluID0gKDAsIFV0aWxzXzEuZ2V0UmFuZ2VNaW4pKG9wYWNpdHlSYW5nZSk7XG4gICAgICAgICAgICBwYXJ0aWNsZS5vcGFjaXR5Lm1heCA9ICgwLCBVdGlsc18xLmdldFJhbmdlTWF4KShvcGFjaXR5UmFuZ2UpO1xuICAgICAgICAgICAgc3dpdGNoIChvcGFjaXR5QW5pbWF0aW9uLnN0YXJ0VmFsdWUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIEVudW1zXzEuU3RhcnRWYWx1ZVR5cGUubWluOlxuICAgICAgICAgICAgICAgICAgICBwYXJ0aWNsZS5vcGFjaXR5LnZhbHVlID0gcGFydGljbGUub3BhY2l0eS5taW47XG4gICAgICAgICAgICAgICAgICAgIHBhcnRpY2xlLm9wYWNpdHkuc3RhdHVzID0gRW51bXNfMS5BbmltYXRpb25TdGF0dXMuaW5jcmVhc2luZztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBFbnVtc18xLlN0YXJ0VmFsdWVUeXBlLnJhbmRvbTpcbiAgICAgICAgICAgICAgICAgICAgcGFydGljbGUub3BhY2l0eS52YWx1ZSA9ICgwLCBVdGlsc18xLnJhbmRvbUluUmFuZ2UpKHBhcnRpY2xlLm9wYWNpdHkpO1xuICAgICAgICAgICAgICAgICAgICBwYXJ0aWNsZS5vcGFjaXR5LnN0YXR1cyA9XG4gICAgICAgICAgICAgICAgICAgICAgICBNYXRoLnJhbmRvbSgpID49IDAuNSA/IEVudW1zXzEuQW5pbWF0aW9uU3RhdHVzLmluY3JlYXNpbmcgOiBFbnVtc18xLkFuaW1hdGlvblN0YXR1cy5kZWNyZWFzaW5nO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIEVudW1zXzEuU3RhcnRWYWx1ZVR5cGUubWF4OlxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHBhcnRpY2xlLm9wYWNpdHkudmFsdWUgPSBwYXJ0aWNsZS5vcGFjaXR5Lm1heDtcbiAgICAgICAgICAgICAgICAgICAgcGFydGljbGUub3BhY2l0eS5zdGF0dXMgPSBFbnVtc18xLkFuaW1hdGlvblN0YXR1cy5kZWNyZWFzaW5nO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBhcnRpY2xlLm9wYWNpdHkudmVsb2NpdHkgPSAob3BhY2l0eUFuaW1hdGlvbi5zcGVlZCAvIDEwMCkgKiB0aGlzLmNvbnRhaW5lci5yZXRpbmEucmVkdWNlRmFjdG9yO1xuICAgICAgICAgICAgaWYgKCFvcGFjaXR5QW5pbWF0aW9uLnN5bmMpIHtcbiAgICAgICAgICAgICAgICBwYXJ0aWNsZS5vcGFjaXR5LnZlbG9jaXR5ICo9IE1hdGgucmFuZG9tKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgaXNFbmFibGVkKHBhcnRpY2xlKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICByZXR1cm4gKCFwYXJ0aWNsZS5kZXN0cm95ZWQgJiZcbiAgICAgICAgICAgICFwYXJ0aWNsZS5zcGF3bmluZyAmJlxuICAgICAgICAgICAgISFwYXJ0aWNsZS5vcGFjaXR5ICYmXG4gICAgICAgICAgICBwYXJ0aWNsZS5vcGFjaXR5LmVuYWJsZSAmJlxuICAgICAgICAgICAgKCgoX2EgPSBwYXJ0aWNsZS5vcGFjaXR5Lm1heExvb3BzKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAwKSA8PSAwIHx8ICgoX2IgPSBwYXJ0aWNsZS5vcGFjaXR5Lmxvb3BzKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiAwKSA8ICgoX2MgPSBwYXJ0aWNsZS5vcGFjaXR5Lm1heExvb3BzKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiAwKSkpO1xuICAgIH1cbiAgICB1cGRhdGUocGFydGljbGUsIGRlbHRhKSB7XG4gICAgICAgIGlmICghdGhpcy5pc0VuYWJsZWQocGFydGljbGUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdXBkYXRlT3BhY2l0eShwYXJ0aWNsZSwgZGVsdGEpO1xuICAgIH1cbn1cbmV4cG9ydHMuT3BhY2l0eVVwZGF0ZXIgPSBPcGFjaXR5VXBkYXRlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Updaters/Opacity/OpacityUpdater.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Updaters/Opacity/index.js": +/*!************************************************************!*\ + !*** ./node_modules/tsparticles/Updaters/Opacity/index.js ***! + \************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadOpacityUpdater = void 0;\nconst OpacityUpdater_1 = __webpack_require__(/*! ./OpacityUpdater */ \"./node_modules/tsparticles/Updaters/Opacity/OpacityUpdater.js\");\nasync function loadOpacityUpdater(tsParticles) {\n await tsParticles.addParticleUpdater(\"opacity\", (container) => new OpacityUpdater_1.OpacityUpdater(container));\n}\nexports.loadOpacityUpdater = loadOpacityUpdater;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvT3BhY2l0eS9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCwwQkFBMEI7QUFDMUIseUJBQXlCLG1CQUFPLENBQUMsdUZBQWtCO0FBQ25EO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvT3BhY2l0eS9pbmRleC5qcz9kYzFlIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5sb2FkT3BhY2l0eVVwZGF0ZXIgPSB2b2lkIDA7XG5jb25zdCBPcGFjaXR5VXBkYXRlcl8xID0gcmVxdWlyZShcIi4vT3BhY2l0eVVwZGF0ZXJcIik7XG5hc3luYyBmdW5jdGlvbiBsb2FkT3BhY2l0eVVwZGF0ZXIodHNQYXJ0aWNsZXMpIHtcbiAgICBhd2FpdCB0c1BhcnRpY2xlcy5hZGRQYXJ0aWNsZVVwZGF0ZXIoXCJvcGFjaXR5XCIsIChjb250YWluZXIpID0+IG5ldyBPcGFjaXR5VXBkYXRlcl8xLk9wYWNpdHlVcGRhdGVyKGNvbnRhaW5lcikpO1xufVxuZXhwb3J0cy5sb2FkT3BhY2l0eVVwZGF0ZXIgPSBsb2FkT3BhY2l0eVVwZGF0ZXI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Updaters/Opacity/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Updaters/OutModes/OutOfCanvasUpdater.js": +/*!**************************************************************************!*\ + !*** ./node_modules/tsparticles/Updaters/OutModes/OutOfCanvasUpdater.js ***! + \**************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.OutOfCanvasUpdater = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Enums_1 = __webpack_require__(/*! ../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst Utils_2 = __webpack_require__(/*! ./Utils */ \"./node_modules/tsparticles/Updaters/OutModes/Utils.js\");\nclass OutOfCanvasUpdater {\n constructor(container) {\n this.container = container;\n }\n init() {\n }\n isEnabled(particle) {\n return !particle.destroyed && !particle.spawning;\n }\n update(particle, delta) {\n var _a, _b, _c, _d;\n const outModes = particle.options.move.outModes;\n this.updateOutMode(particle, delta, (_a = outModes.bottom) !== null && _a !== void 0 ? _a : outModes.default, Enums_1.OutModeDirection.bottom);\n this.updateOutMode(particle, delta, (_b = outModes.left) !== null && _b !== void 0 ? _b : outModes.default, Enums_1.OutModeDirection.left);\n this.updateOutMode(particle, delta, (_c = outModes.right) !== null && _c !== void 0 ? _c : outModes.default, Enums_1.OutModeDirection.right);\n this.updateOutMode(particle, delta, (_d = outModes.top) !== null && _d !== void 0 ? _d : outModes.default, Enums_1.OutModeDirection.top);\n }\n updateOutMode(particle, delta, outMode, direction) {\n switch (outMode) {\n case Enums_1.OutMode.bounce:\n case Enums_1.OutMode.bounceVertical:\n case Enums_1.OutMode.bounceHorizontal:\n case \"bounceVertical\":\n case \"bounceHorizontal\":\n case Enums_1.OutMode.split:\n this.bounce(particle, delta, direction, outMode);\n break;\n case Enums_1.OutMode.destroy:\n this.destroy(particle, direction);\n break;\n case Enums_1.OutMode.out:\n this.out(particle, direction);\n break;\n case Enums_1.OutMode.none:\n default:\n this.none(particle, direction);\n break;\n }\n }\n destroy(particle, direction) {\n const container = this.container;\n if ((0, Utils_1.isPointInside)(particle.position, container.canvas.size, particle.getRadius(), direction)) {\n return;\n }\n container.particles.remove(particle, undefined, true);\n }\n out(particle, direction) {\n const container = this.container;\n if ((0, Utils_1.isPointInside)(particle.position, container.canvas.size, particle.getRadius(), direction)) {\n return;\n }\n const wrap = particle.options.move.warp, canvasSize = container.canvas.size, newPos = {\n bottom: canvasSize.height + particle.getRadius() + particle.offset.y,\n left: -particle.getRadius() - particle.offset.x,\n right: canvasSize.width + particle.getRadius() + particle.offset.x,\n top: -particle.getRadius() - particle.offset.y,\n }, sizeValue = particle.getRadius(), nextBounds = (0, Utils_1.calculateBounds)(particle.position, sizeValue);\n if (direction === Enums_1.OutModeDirection.right && nextBounds.left > canvasSize.width + particle.offset.x) {\n particle.position.x = newPos.left;\n particle.initialPosition.x = particle.position.x;\n if (!wrap) {\n particle.position.y = Math.random() * canvasSize.height;\n particle.initialPosition.y = particle.position.y;\n }\n }\n else if (direction === Enums_1.OutModeDirection.left && nextBounds.right < -particle.offset.x) {\n particle.position.x = newPos.right;\n particle.initialPosition.x = particle.position.x;\n if (!wrap) {\n particle.position.y = Math.random() * canvasSize.height;\n particle.initialPosition.y = particle.position.y;\n }\n }\n if (direction === Enums_1.OutModeDirection.bottom && nextBounds.top > canvasSize.height + particle.offset.y) {\n if (!wrap) {\n particle.position.x = Math.random() * canvasSize.width;\n particle.initialPosition.x = particle.position.x;\n }\n particle.position.y = newPos.top;\n particle.initialPosition.y = particle.position.y;\n }\n else if (direction === Enums_1.OutModeDirection.top && nextBounds.bottom < -particle.offset.y) {\n if (!wrap) {\n particle.position.x = Math.random() * canvasSize.width;\n particle.initialPosition.x = particle.position.x;\n }\n particle.position.y = newPos.bottom;\n particle.initialPosition.y = particle.position.y;\n }\n }\n bounce(particle, delta, direction, outMode) {\n const container = this.container;\n let handled = false;\n for (const [, plugin] of container.plugins) {\n if (plugin.particleBounce !== undefined) {\n handled = plugin.particleBounce(particle, delta, direction);\n }\n if (handled) {\n break;\n }\n }\n if (handled) {\n return;\n }\n const pos = particle.getPosition(), offset = particle.offset, size = particle.getRadius(), bounds = (0, Utils_1.calculateBounds)(pos, size), canvasSize = container.canvas.size;\n (0, Utils_2.bounceHorizontal)({ particle, outMode, direction, bounds, canvasSize, offset, size });\n (0, Utils_2.bounceVertical)({ particle, outMode, direction, bounds, canvasSize, offset, size });\n }\n none(particle, direction) {\n if ((particle.options.move.distance.horizontal &&\n (direction === Enums_1.OutModeDirection.left || direction === Enums_1.OutModeDirection.right)) ||\n (particle.options.move.distance.vertical &&\n (direction === Enums_1.OutModeDirection.top || direction === Enums_1.OutModeDirection.bottom))) {\n return;\n }\n const gravityOptions = particle.options.move.gravity, container = this.container;\n const canvasSize = container.canvas.size;\n const pRadius = particle.getRadius();\n if (!gravityOptions.enable) {\n if ((particle.velocity.y > 0 && particle.position.y <= canvasSize.height + pRadius) ||\n (particle.velocity.y < 0 && particle.position.y >= -pRadius) ||\n (particle.velocity.x > 0 && particle.position.x <= canvasSize.width + pRadius) ||\n (particle.velocity.x < 0 && particle.position.x >= -pRadius)) {\n return;\n }\n if (!(0, Utils_1.isPointInside)(particle.position, container.canvas.size, pRadius, direction)) {\n container.particles.remove(particle);\n }\n }\n else {\n const position = particle.position;\n if ((!gravityOptions.inverse &&\n position.y > canvasSize.height + pRadius &&\n direction === Enums_1.OutModeDirection.bottom) ||\n (gravityOptions.inverse && position.y < -pRadius && direction === Enums_1.OutModeDirection.top)) {\n container.particles.remove(particle);\n }\n }\n }\n}\nexports.OutOfCanvasUpdater = OutOfCanvasUpdater;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvT3V0TW9kZXMvT3V0T2ZDYW52YXNVcGRhdGVyLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELDBCQUEwQjtBQUMxQixnQkFBZ0IsbUJBQU8sQ0FBQyw4REFBYTtBQUNyQyxnQkFBZ0IsbUJBQU8sQ0FBQyw4REFBYTtBQUNyQyxnQkFBZ0IsbUJBQU8sQ0FBQyxzRUFBUztBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdDQUF3QyxnRUFBZ0U7QUFDeEcsc0NBQXNDLGdFQUFnRTtBQUN0RztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1VwZGF0ZXJzL091dE1vZGVzL091dE9mQ2FudmFzVXBkYXRlci5qcz9kNGYxIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5PdXRPZkNhbnZhc1VwZGF0ZXIgPSB2b2lkIDA7XG5jb25zdCBVdGlsc18xID0gcmVxdWlyZShcIi4uLy4uL1V0aWxzXCIpO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuLi8uLi9FbnVtc1wiKTtcbmNvbnN0IFV0aWxzXzIgPSByZXF1aXJlKFwiLi9VdGlsc1wiKTtcbmNsYXNzIE91dE9mQ2FudmFzVXBkYXRlciB7XG4gICAgY29uc3RydWN0b3IoY29udGFpbmVyKSB7XG4gICAgICAgIHRoaXMuY29udGFpbmVyID0gY29udGFpbmVyO1xuICAgIH1cbiAgICBpbml0KCkge1xuICAgIH1cbiAgICBpc0VuYWJsZWQocGFydGljbGUpIHtcbiAgICAgICAgcmV0dXJuICFwYXJ0aWNsZS5kZXN0cm95ZWQgJiYgIXBhcnRpY2xlLnNwYXduaW5nO1xuICAgIH1cbiAgICB1cGRhdGUocGFydGljbGUsIGRlbHRhKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZDtcbiAgICAgICAgY29uc3Qgb3V0TW9kZXMgPSBwYXJ0aWNsZS5vcHRpb25zLm1vdmUub3V0TW9kZXM7XG4gICAgICAgIHRoaXMudXBkYXRlT3V0TW9kZShwYXJ0aWNsZSwgZGVsdGEsIChfYSA9IG91dE1vZGVzLmJvdHRvbSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogb3V0TW9kZXMuZGVmYXVsdCwgRW51bXNfMS5PdXRNb2RlRGlyZWN0aW9uLmJvdHRvbSk7XG4gICAgICAgIHRoaXMudXBkYXRlT3V0TW9kZShwYXJ0aWNsZSwgZGVsdGEsIChfYiA9IG91dE1vZGVzLmxlZnQpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IG91dE1vZGVzLmRlZmF1bHQsIEVudW1zXzEuT3V0TW9kZURpcmVjdGlvbi5sZWZ0KTtcbiAgICAgICAgdGhpcy51cGRhdGVPdXRNb2RlKHBhcnRpY2xlLCBkZWx0YSwgKF9jID0gb3V0TW9kZXMucmlnaHQpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IG91dE1vZGVzLmRlZmF1bHQsIEVudW1zXzEuT3V0TW9kZURpcmVjdGlvbi5yaWdodCk7XG4gICAgICAgIHRoaXMudXBkYXRlT3V0TW9kZShwYXJ0aWNsZSwgZGVsdGEsIChfZCA9IG91dE1vZGVzLnRvcCkgIT09IG51bGwgJiYgX2QgIT09IHZvaWQgMCA/IF9kIDogb3V0TW9kZXMuZGVmYXVsdCwgRW51bXNfMS5PdXRNb2RlRGlyZWN0aW9uLnRvcCk7XG4gICAgfVxuICAgIHVwZGF0ZU91dE1vZGUocGFydGljbGUsIGRlbHRhLCBvdXRNb2RlLCBkaXJlY3Rpb24pIHtcbiAgICAgICAgc3dpdGNoIChvdXRNb2RlKSB7XG4gICAgICAgICAgICBjYXNlIEVudW1zXzEuT3V0TW9kZS5ib3VuY2U6XG4gICAgICAgICAgICBjYXNlIEVudW1zXzEuT3V0TW9kZS5ib3VuY2VWZXJ0aWNhbDpcbiAgICAgICAgICAgIGNhc2UgRW51bXNfMS5PdXRNb2RlLmJvdW5jZUhvcml6b250YWw6XG4gICAgICAgICAgICBjYXNlIFwiYm91bmNlVmVydGljYWxcIjpcbiAgICAgICAgICAgIGNhc2UgXCJib3VuY2VIb3Jpem9udGFsXCI6XG4gICAgICAgICAgICBjYXNlIEVudW1zXzEuT3V0TW9kZS5zcGxpdDpcbiAgICAgICAgICAgICAgICB0aGlzLmJvdW5jZShwYXJ0aWNsZSwgZGVsdGEsIGRpcmVjdGlvbiwgb3V0TW9kZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEVudW1zXzEuT3V0TW9kZS5kZXN0cm95OlxuICAgICAgICAgICAgICAgIHRoaXMuZGVzdHJveShwYXJ0aWNsZSwgZGlyZWN0aW9uKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRW51bXNfMS5PdXRNb2RlLm91dDpcbiAgICAgICAgICAgICAgICB0aGlzLm91dChwYXJ0aWNsZSwgZGlyZWN0aW9uKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRW51bXNfMS5PdXRNb2RlLm5vbmU6XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRoaXMubm9uZShwYXJ0aWNsZSwgZGlyZWN0aW9uKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgICBkZXN0cm95KHBhcnRpY2xlLCBkaXJlY3Rpb24pIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXI7XG4gICAgICAgIGlmICgoMCwgVXRpbHNfMS5pc1BvaW50SW5zaWRlKShwYXJ0aWNsZS5wb3NpdGlvbiwgY29udGFpbmVyLmNhbnZhcy5zaXplLCBwYXJ0aWNsZS5nZXRSYWRpdXMoKSwgZGlyZWN0aW9uKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnRhaW5lci5wYXJ0aWNsZXMucmVtb3ZlKHBhcnRpY2xlLCB1bmRlZmluZWQsIHRydWUpO1xuICAgIH1cbiAgICBvdXQocGFydGljbGUsIGRpcmVjdGlvbikge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgaWYgKCgwLCBVdGlsc18xLmlzUG9pbnRJbnNpZGUpKHBhcnRpY2xlLnBvc2l0aW9uLCBjb250YWluZXIuY2FudmFzLnNpemUsIHBhcnRpY2xlLmdldFJhZGl1cygpLCBkaXJlY3Rpb24pKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgd3JhcCA9IHBhcnRpY2xlLm9wdGlvbnMubW92ZS53YXJwLCBjYW52YXNTaXplID0gY29udGFpbmVyLmNhbnZhcy5zaXplLCBuZXdQb3MgPSB7XG4gICAgICAgICAgICBib3R0b206IGNhbnZhc1NpemUuaGVpZ2h0ICsgcGFydGljbGUuZ2V0UmFkaXVzKCkgKyBwYXJ0aWNsZS5vZmZzZXQueSxcbiAgICAgICAgICAgIGxlZnQ6IC1wYXJ0aWNsZS5nZXRSYWRpdXMoKSAtIHBhcnRpY2xlLm9mZnNldC54LFxuICAgICAgICAgICAgcmlnaHQ6IGNhbnZhc1NpemUud2lkdGggKyBwYXJ0aWNsZS5nZXRSYWRpdXMoKSArIHBhcnRpY2xlLm9mZnNldC54LFxuICAgICAgICAgICAgdG9wOiAtcGFydGljbGUuZ2V0UmFkaXVzKCkgLSBwYXJ0aWNsZS5vZmZzZXQueSxcbiAgICAgICAgfSwgc2l6ZVZhbHVlID0gcGFydGljbGUuZ2V0UmFkaXVzKCksIG5leHRCb3VuZHMgPSAoMCwgVXRpbHNfMS5jYWxjdWxhdGVCb3VuZHMpKHBhcnRpY2xlLnBvc2l0aW9uLCBzaXplVmFsdWUpO1xuICAgICAgICBpZiAoZGlyZWN0aW9uID09PSBFbnVtc18xLk91dE1vZGVEaXJlY3Rpb24ucmlnaHQgJiYgbmV4dEJvdW5kcy5sZWZ0ID4gY2FudmFzU2l6ZS53aWR0aCArIHBhcnRpY2xlLm9mZnNldC54KSB7XG4gICAgICAgICAgICBwYXJ0aWNsZS5wb3NpdGlvbi54ID0gbmV3UG9zLmxlZnQ7XG4gICAgICAgICAgICBwYXJ0aWNsZS5pbml0aWFsUG9zaXRpb24ueCA9IHBhcnRpY2xlLnBvc2l0aW9uLng7XG4gICAgICAgICAgICBpZiAoIXdyYXApIHtcbiAgICAgICAgICAgICAgICBwYXJ0aWNsZS5wb3NpdGlvbi55ID0gTWF0aC5yYW5kb20oKSAqIGNhbnZhc1NpemUuaGVpZ2h0O1xuICAgICAgICAgICAgICAgIHBhcnRpY2xlLmluaXRpYWxQb3NpdGlvbi55ID0gcGFydGljbGUucG9zaXRpb24ueTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChkaXJlY3Rpb24gPT09IEVudW1zXzEuT3V0TW9kZURpcmVjdGlvbi5sZWZ0ICYmIG5leHRCb3VuZHMucmlnaHQgPCAtcGFydGljbGUub2Zmc2V0LngpIHtcbiAgICAgICAgICAgIHBhcnRpY2xlLnBvc2l0aW9uLnggPSBuZXdQb3MucmlnaHQ7XG4gICAgICAgICAgICBwYXJ0aWNsZS5pbml0aWFsUG9zaXRpb24ueCA9IHBhcnRpY2xlLnBvc2l0aW9uLng7XG4gICAgICAgICAgICBpZiAoIXdyYXApIHtcbiAgICAgICAgICAgICAgICBwYXJ0aWNsZS5wb3NpdGlvbi55ID0gTWF0aC5yYW5kb20oKSAqIGNhbnZhc1NpemUuaGVpZ2h0O1xuICAgICAgICAgICAgICAgIHBhcnRpY2xlLmluaXRpYWxQb3NpdGlvbi55ID0gcGFydGljbGUucG9zaXRpb24ueTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoZGlyZWN0aW9uID09PSBFbnVtc18xLk91dE1vZGVEaXJlY3Rpb24uYm90dG9tICYmIG5leHRCb3VuZHMudG9wID4gY2FudmFzU2l6ZS5oZWlnaHQgKyBwYXJ0aWNsZS5vZmZzZXQueSkge1xuICAgICAgICAgICAgaWYgKCF3cmFwKSB7XG4gICAgICAgICAgICAgICAgcGFydGljbGUucG9zaXRpb24ueCA9IE1hdGgucmFuZG9tKCkgKiBjYW52YXNTaXplLndpZHRoO1xuICAgICAgICAgICAgICAgIHBhcnRpY2xlLmluaXRpYWxQb3NpdGlvbi54ID0gcGFydGljbGUucG9zaXRpb24ueDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBhcnRpY2xlLnBvc2l0aW9uLnkgPSBuZXdQb3MudG9wO1xuICAgICAgICAgICAgcGFydGljbGUuaW5pdGlhbFBvc2l0aW9uLnkgPSBwYXJ0aWNsZS5wb3NpdGlvbi55O1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGRpcmVjdGlvbiA9PT0gRW51bXNfMS5PdXRNb2RlRGlyZWN0aW9uLnRvcCAmJiBuZXh0Qm91bmRzLmJvdHRvbSA8IC1wYXJ0aWNsZS5vZmZzZXQueSkge1xuICAgICAgICAgICAgaWYgKCF3cmFwKSB7XG4gICAgICAgICAgICAgICAgcGFydGljbGUucG9zaXRpb24ueCA9IE1hdGgucmFuZG9tKCkgKiBjYW52YXNTaXplLndpZHRoO1xuICAgICAgICAgICAgICAgIHBhcnRpY2xlLmluaXRpYWxQb3NpdGlvbi54ID0gcGFydGljbGUucG9zaXRpb24ueDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBhcnRpY2xlLnBvc2l0aW9uLnkgPSBuZXdQb3MuYm90dG9tO1xuICAgICAgICAgICAgcGFydGljbGUuaW5pdGlhbFBvc2l0aW9uLnkgPSBwYXJ0aWNsZS5wb3NpdGlvbi55O1xuICAgICAgICB9XG4gICAgfVxuICAgIGJvdW5jZShwYXJ0aWNsZSwgZGVsdGEsIGRpcmVjdGlvbiwgb3V0TW9kZSkge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgbGV0IGhhbmRsZWQgPSBmYWxzZTtcbiAgICAgICAgZm9yIChjb25zdCBbLCBwbHVnaW5dIG9mIGNvbnRhaW5lci5wbHVnaW5zKSB7XG4gICAgICAgICAgICBpZiAocGx1Z2luLnBhcnRpY2xlQm91bmNlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBoYW5kbGVkID0gcGx1Z2luLnBhcnRpY2xlQm91bmNlKHBhcnRpY2xlLCBkZWx0YSwgZGlyZWN0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChoYW5kbGVkKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGhhbmRsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwb3MgPSBwYXJ0aWNsZS5nZXRQb3NpdGlvbigpLCBvZmZzZXQgPSBwYXJ0aWNsZS5vZmZzZXQsIHNpemUgPSBwYXJ0aWNsZS5nZXRSYWRpdXMoKSwgYm91bmRzID0gKDAsIFV0aWxzXzEuY2FsY3VsYXRlQm91bmRzKShwb3MsIHNpemUpLCBjYW52YXNTaXplID0gY29udGFpbmVyLmNhbnZhcy5zaXplO1xuICAgICAgICAoMCwgVXRpbHNfMi5ib3VuY2VIb3Jpem9udGFsKSh7IHBhcnRpY2xlLCBvdXRNb2RlLCBkaXJlY3Rpb24sIGJvdW5kcywgY2FudmFzU2l6ZSwgb2Zmc2V0LCBzaXplIH0pO1xuICAgICAgICAoMCwgVXRpbHNfMi5ib3VuY2VWZXJ0aWNhbCkoeyBwYXJ0aWNsZSwgb3V0TW9kZSwgZGlyZWN0aW9uLCBib3VuZHMsIGNhbnZhc1NpemUsIG9mZnNldCwgc2l6ZSB9KTtcbiAgICB9XG4gICAgbm9uZShwYXJ0aWNsZSwgZGlyZWN0aW9uKSB7XG4gICAgICAgIGlmICgocGFydGljbGUub3B0aW9ucy5tb3ZlLmRpc3RhbmNlLmhvcml6b250YWwgJiZcbiAgICAgICAgICAgIChkaXJlY3Rpb24gPT09IEVudW1zXzEuT3V0TW9kZURpcmVjdGlvbi5sZWZ0IHx8IGRpcmVjdGlvbiA9PT0gRW51bXNfMS5PdXRNb2RlRGlyZWN0aW9uLnJpZ2h0KSkgfHxcbiAgICAgICAgICAgIChwYXJ0aWNsZS5vcHRpb25zLm1vdmUuZGlzdGFuY2UudmVydGljYWwgJiZcbiAgICAgICAgICAgICAgICAoZGlyZWN0aW9uID09PSBFbnVtc18xLk91dE1vZGVEaXJlY3Rpb24udG9wIHx8IGRpcmVjdGlvbiA9PT0gRW51bXNfMS5PdXRNb2RlRGlyZWN0aW9uLmJvdHRvbSkpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZ3Jhdml0eU9wdGlvbnMgPSBwYXJ0aWNsZS5vcHRpb25zLm1vdmUuZ3Jhdml0eSwgY29udGFpbmVyID0gdGhpcy5jb250YWluZXI7XG4gICAgICAgIGNvbnN0IGNhbnZhc1NpemUgPSBjb250YWluZXIuY2FudmFzLnNpemU7XG4gICAgICAgIGNvbnN0IHBSYWRpdXMgPSBwYXJ0aWNsZS5nZXRSYWRpdXMoKTtcbiAgICAgICAgaWYgKCFncmF2aXR5T3B0aW9ucy5lbmFibGUpIHtcbiAgICAgICAgICAgIGlmICgocGFydGljbGUudmVsb2NpdHkueSA+IDAgJiYgcGFydGljbGUucG9zaXRpb24ueSA8PSBjYW52YXNTaXplLmhlaWdodCArIHBSYWRpdXMpIHx8XG4gICAgICAgICAgICAgICAgKHBhcnRpY2xlLnZlbG9jaXR5LnkgPCAwICYmIHBhcnRpY2xlLnBvc2l0aW9uLnkgPj0gLXBSYWRpdXMpIHx8XG4gICAgICAgICAgICAgICAgKHBhcnRpY2xlLnZlbG9jaXR5LnggPiAwICYmIHBhcnRpY2xlLnBvc2l0aW9uLnggPD0gY2FudmFzU2l6ZS53aWR0aCArIHBSYWRpdXMpIHx8XG4gICAgICAgICAgICAgICAgKHBhcnRpY2xlLnZlbG9jaXR5LnggPCAwICYmIHBhcnRpY2xlLnBvc2l0aW9uLnggPj0gLXBSYWRpdXMpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCEoMCwgVXRpbHNfMS5pc1BvaW50SW5zaWRlKShwYXJ0aWNsZS5wb3NpdGlvbiwgY29udGFpbmVyLmNhbnZhcy5zaXplLCBwUmFkaXVzLCBkaXJlY3Rpb24pKSB7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLnBhcnRpY2xlcy5yZW1vdmUocGFydGljbGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgcG9zaXRpb24gPSBwYXJ0aWNsZS5wb3NpdGlvbjtcbiAgICAgICAgICAgIGlmICgoIWdyYXZpdHlPcHRpb25zLmludmVyc2UgJiZcbiAgICAgICAgICAgICAgICBwb3NpdGlvbi55ID4gY2FudmFzU2l6ZS5oZWlnaHQgKyBwUmFkaXVzICYmXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uID09PSBFbnVtc18xLk91dE1vZGVEaXJlY3Rpb24uYm90dG9tKSB8fFxuICAgICAgICAgICAgICAgIChncmF2aXR5T3B0aW9ucy5pbnZlcnNlICYmIHBvc2l0aW9uLnkgPCAtcFJhZGl1cyAmJiBkaXJlY3Rpb24gPT09IEVudW1zXzEuT3V0TW9kZURpcmVjdGlvbi50b3ApKSB7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLnBhcnRpY2xlcy5yZW1vdmUocGFydGljbGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5PdXRPZkNhbnZhc1VwZGF0ZXIgPSBPdXRPZkNhbnZhc1VwZGF0ZXI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Updaters/OutModes/OutOfCanvasUpdater.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Updaters/OutModes/Utils.js": +/*!*************************************************************!*\ + !*** ./node_modules/tsparticles/Updaters/OutModes/Utils.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.bounceVertical = exports.bounceHorizontal = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nfunction bounceHorizontal(data) {\n if (!(data.outMode === Enums_1.OutMode.bounce ||\n data.outMode === Enums_1.OutMode.bounceHorizontal ||\n data.outMode === \"bounceHorizontal\" ||\n data.outMode === Enums_1.OutMode.split)) {\n return;\n }\n const velocity = data.particle.velocity.x;\n let bounced = false;\n if ((data.direction === Enums_1.OutModeDirection.right && data.bounds.right >= data.canvasSize.width && velocity > 0) ||\n (data.direction === Enums_1.OutModeDirection.left && data.bounds.left <= 0 && velocity < 0)) {\n const newVelocity = (0, Utils_1.getRangeValue)(data.particle.options.bounce.horizontal.value);\n data.particle.velocity.x *= -newVelocity;\n bounced = true;\n }\n if (!bounced) {\n return;\n }\n const minPos = data.offset.x + data.size;\n if (data.bounds.right >= data.canvasSize.width) {\n data.particle.position.x = data.canvasSize.width - minPos;\n }\n else if (data.bounds.left <= 0) {\n data.particle.position.x = minPos;\n }\n if (data.outMode === Enums_1.OutMode.split) {\n data.particle.destroy();\n }\n}\nexports.bounceHorizontal = bounceHorizontal;\nfunction bounceVertical(data) {\n if (data.outMode === Enums_1.OutMode.bounce ||\n data.outMode === Enums_1.OutMode.bounceVertical ||\n data.outMode === \"bounceVertical\" ||\n data.outMode === Enums_1.OutMode.split) {\n const velocity = data.particle.velocity.y;\n let bounced = false;\n if ((data.direction === Enums_1.OutModeDirection.bottom &&\n data.bounds.bottom >= data.canvasSize.height &&\n velocity > 0) ||\n (data.direction === Enums_1.OutModeDirection.top && data.bounds.top <= 0 && velocity < 0)) {\n const newVelocity = (0, Utils_1.getRangeValue)(data.particle.options.bounce.vertical.value);\n data.particle.velocity.y *= -newVelocity;\n bounced = true;\n }\n if (!bounced) {\n return;\n }\n const minPos = data.offset.y + data.size;\n if (data.bounds.bottom >= data.canvasSize.height) {\n data.particle.position.y = data.canvasSize.height - minPos;\n }\n else if (data.bounds.top <= 0) {\n data.particle.position.y = minPos;\n }\n if (data.outMode === Enums_1.OutMode.split) {\n data.particle.destroy();\n }\n }\n}\nexports.bounceVertical = bounceVertical;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvT3V0TW9kZXMvVXRpbHMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsc0JBQXNCLEdBQUcsd0JBQXdCO0FBQ2pELGdCQUFnQixtQkFBTyxDQUFDLDhEQUFhO0FBQ3JDLGdCQUFnQixtQkFBTyxDQUFDLDhEQUFhO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0I7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9VcGRhdGVycy9PdXRNb2Rlcy9VdGlscy5qcz82OTE4Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5ib3VuY2VWZXJ0aWNhbCA9IGV4cG9ydHMuYm91bmNlSG9yaXpvbnRhbCA9IHZvaWQgMDtcbmNvbnN0IEVudW1zXzEgPSByZXF1aXJlKFwiLi4vLi4vRW51bXNcIik7XG5jb25zdCBVdGlsc18xID0gcmVxdWlyZShcIi4uLy4uL1V0aWxzXCIpO1xuZnVuY3Rpb24gYm91bmNlSG9yaXpvbnRhbChkYXRhKSB7XG4gICAgaWYgKCEoZGF0YS5vdXRNb2RlID09PSBFbnVtc18xLk91dE1vZGUuYm91bmNlIHx8XG4gICAgICAgIGRhdGEub3V0TW9kZSA9PT0gRW51bXNfMS5PdXRNb2RlLmJvdW5jZUhvcml6b250YWwgfHxcbiAgICAgICAgZGF0YS5vdXRNb2RlID09PSBcImJvdW5jZUhvcml6b250YWxcIiB8fFxuICAgICAgICBkYXRhLm91dE1vZGUgPT09IEVudW1zXzEuT3V0TW9kZS5zcGxpdCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB2ZWxvY2l0eSA9IGRhdGEucGFydGljbGUudmVsb2NpdHkueDtcbiAgICBsZXQgYm91bmNlZCA9IGZhbHNlO1xuICAgIGlmICgoZGF0YS5kaXJlY3Rpb24gPT09IEVudW1zXzEuT3V0TW9kZURpcmVjdGlvbi5yaWdodCAmJiBkYXRhLmJvdW5kcy5yaWdodCA+PSBkYXRhLmNhbnZhc1NpemUud2lkdGggJiYgdmVsb2NpdHkgPiAwKSB8fFxuICAgICAgICAoZGF0YS5kaXJlY3Rpb24gPT09IEVudW1zXzEuT3V0TW9kZURpcmVjdGlvbi5sZWZ0ICYmIGRhdGEuYm91bmRzLmxlZnQgPD0gMCAmJiB2ZWxvY2l0eSA8IDApKSB7XG4gICAgICAgIGNvbnN0IG5ld1ZlbG9jaXR5ID0gKDAsIFV0aWxzXzEuZ2V0UmFuZ2VWYWx1ZSkoZGF0YS5wYXJ0aWNsZS5vcHRpb25zLmJvdW5jZS5ob3Jpem9udGFsLnZhbHVlKTtcbiAgICAgICAgZGF0YS5wYXJ0aWNsZS52ZWxvY2l0eS54ICo9IC1uZXdWZWxvY2l0eTtcbiAgICAgICAgYm91bmNlZCA9IHRydWU7XG4gICAgfVxuICAgIGlmICghYm91bmNlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG1pblBvcyA9IGRhdGEub2Zmc2V0LnggKyBkYXRhLnNpemU7XG4gICAgaWYgKGRhdGEuYm91bmRzLnJpZ2h0ID49IGRhdGEuY2FudmFzU2l6ZS53aWR0aCkge1xuICAgICAgICBkYXRhLnBhcnRpY2xlLnBvc2l0aW9uLnggPSBkYXRhLmNhbnZhc1NpemUud2lkdGggLSBtaW5Qb3M7XG4gICAgfVxuICAgIGVsc2UgaWYgKGRhdGEuYm91bmRzLmxlZnQgPD0gMCkge1xuICAgICAgICBkYXRhLnBhcnRpY2xlLnBvc2l0aW9uLnggPSBtaW5Qb3M7XG4gICAgfVxuICAgIGlmIChkYXRhLm91dE1vZGUgPT09IEVudW1zXzEuT3V0TW9kZS5zcGxpdCkge1xuICAgICAgICBkYXRhLnBhcnRpY2xlLmRlc3Ryb3koKTtcbiAgICB9XG59XG5leHBvcnRzLmJvdW5jZUhvcml6b250YWwgPSBib3VuY2VIb3Jpem9udGFsO1xuZnVuY3Rpb24gYm91bmNlVmVydGljYWwoZGF0YSkge1xuICAgIGlmIChkYXRhLm91dE1vZGUgPT09IEVudW1zXzEuT3V0TW9kZS5ib3VuY2UgfHxcbiAgICAgICAgZGF0YS5vdXRNb2RlID09PSBFbnVtc18xLk91dE1vZGUuYm91bmNlVmVydGljYWwgfHxcbiAgICAgICAgZGF0YS5vdXRNb2RlID09PSBcImJvdW5jZVZlcnRpY2FsXCIgfHxcbiAgICAgICAgZGF0YS5vdXRNb2RlID09PSBFbnVtc18xLk91dE1vZGUuc3BsaXQpIHtcbiAgICAgICAgY29uc3QgdmVsb2NpdHkgPSBkYXRhLnBhcnRpY2xlLnZlbG9jaXR5Lnk7XG4gICAgICAgIGxldCBib3VuY2VkID0gZmFsc2U7XG4gICAgICAgIGlmICgoZGF0YS5kaXJlY3Rpb24gPT09IEVudW1zXzEuT3V0TW9kZURpcmVjdGlvbi5ib3R0b20gJiZcbiAgICAgICAgICAgIGRhdGEuYm91bmRzLmJvdHRvbSA+PSBkYXRhLmNhbnZhc1NpemUuaGVpZ2h0ICYmXG4gICAgICAgICAgICB2ZWxvY2l0eSA+IDApIHx8XG4gICAgICAgICAgICAoZGF0YS5kaXJlY3Rpb24gPT09IEVudW1zXzEuT3V0TW9kZURpcmVjdGlvbi50b3AgJiYgZGF0YS5ib3VuZHMudG9wIDw9IDAgJiYgdmVsb2NpdHkgPCAwKSkge1xuICAgICAgICAgICAgY29uc3QgbmV3VmVsb2NpdHkgPSAoMCwgVXRpbHNfMS5nZXRSYW5nZVZhbHVlKShkYXRhLnBhcnRpY2xlLm9wdGlvbnMuYm91bmNlLnZlcnRpY2FsLnZhbHVlKTtcbiAgICAgICAgICAgIGRhdGEucGFydGljbGUudmVsb2NpdHkueSAqPSAtbmV3VmVsb2NpdHk7XG4gICAgICAgICAgICBib3VuY2VkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWJvdW5jZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtaW5Qb3MgPSBkYXRhLm9mZnNldC55ICsgZGF0YS5zaXplO1xuICAgICAgICBpZiAoZGF0YS5ib3VuZHMuYm90dG9tID49IGRhdGEuY2FudmFzU2l6ZS5oZWlnaHQpIHtcbiAgICAgICAgICAgIGRhdGEucGFydGljbGUucG9zaXRpb24ueSA9IGRhdGEuY2FudmFzU2l6ZS5oZWlnaHQgLSBtaW5Qb3M7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoZGF0YS5ib3VuZHMudG9wIDw9IDApIHtcbiAgICAgICAgICAgIGRhdGEucGFydGljbGUucG9zaXRpb24ueSA9IG1pblBvcztcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5vdXRNb2RlID09PSBFbnVtc18xLk91dE1vZGUuc3BsaXQpIHtcbiAgICAgICAgICAgIGRhdGEucGFydGljbGUuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5ib3VuY2VWZXJ0aWNhbCA9IGJvdW5jZVZlcnRpY2FsO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Updaters/OutModes/Utils.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Updaters/OutModes/index.js": +/*!*************************************************************!*\ + !*** ./node_modules/tsparticles/Updaters/OutModes/index.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadOutModesUpdater = void 0;\nconst OutOfCanvasUpdater_1 = __webpack_require__(/*! ./OutOfCanvasUpdater */ \"./node_modules/tsparticles/Updaters/OutModes/OutOfCanvasUpdater.js\");\nasync function loadOutModesUpdater(tsParticles) {\n await tsParticles.addParticleUpdater(\"outModes\", (container) => new OutOfCanvasUpdater_1.OutOfCanvasUpdater(container));\n}\nexports.loadOutModesUpdater = loadOutModesUpdater;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvT3V0TW9kZXMvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsMkJBQTJCO0FBQzNCLDZCQUE2QixtQkFBTyxDQUFDLGdHQUFzQjtBQUMzRDtBQUNBO0FBQ0E7QUFDQSwyQkFBMkIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1VwZGF0ZXJzL091dE1vZGVzL2luZGV4LmpzPzQxODkiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmxvYWRPdXRNb2Rlc1VwZGF0ZXIgPSB2b2lkIDA7XG5jb25zdCBPdXRPZkNhbnZhc1VwZGF0ZXJfMSA9IHJlcXVpcmUoXCIuL091dE9mQ2FudmFzVXBkYXRlclwiKTtcbmFzeW5jIGZ1bmN0aW9uIGxvYWRPdXRNb2Rlc1VwZGF0ZXIodHNQYXJ0aWNsZXMpIHtcbiAgICBhd2FpdCB0c1BhcnRpY2xlcy5hZGRQYXJ0aWNsZVVwZGF0ZXIoXCJvdXRNb2Rlc1wiLCAoY29udGFpbmVyKSA9PiBuZXcgT3V0T2ZDYW52YXNVcGRhdGVyXzEuT3V0T2ZDYW52YXNVcGRhdGVyKGNvbnRhaW5lcikpO1xufVxuZXhwb3J0cy5sb2FkT3V0TW9kZXNVcGRhdGVyID0gbG9hZE91dE1vZGVzVXBkYXRlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Updaters/OutModes/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Updaters/Roll/RollUpdater.js": +/*!***************************************************************!*\ + !*** ./node_modules/tsparticles/Updaters/Roll/RollUpdater.js ***! + \***************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.RollUpdater = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Enums_1 = __webpack_require__(/*! ../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nfunction updateRoll(particle, delta) {\n const roll = particle.options.roll;\n if (!particle.roll || !roll.enable) {\n return;\n }\n const speed = particle.roll.speed * delta.factor;\n const max = 2 * Math.PI;\n particle.roll.angle += speed;\n if (particle.roll.angle > max) {\n particle.roll.angle -= max;\n }\n}\nclass RollUpdater {\n init(particle) {\n const rollOpt = particle.options.roll;\n if (rollOpt.enable) {\n particle.roll = {\n angle: Math.random() * Math.PI * 2,\n speed: (0, Utils_1.getRangeValue)(rollOpt.speed) / 360,\n };\n if (rollOpt.backColor) {\n particle.backColor = (0, Utils_1.colorToHsl)(rollOpt.backColor);\n }\n else if (rollOpt.darken.enable && rollOpt.enlighten.enable) {\n const alterType = Math.random() >= 0.5 ? Enums_1.AlterType.darken : Enums_1.AlterType.enlighten;\n particle.roll.alter = {\n type: alterType,\n value: alterType === Enums_1.AlterType.darken ? rollOpt.darken.value : rollOpt.enlighten.value,\n };\n }\n else if (rollOpt.darken.enable) {\n particle.roll.alter = {\n type: Enums_1.AlterType.darken,\n value: rollOpt.darken.value,\n };\n }\n else if (rollOpt.enlighten.enable) {\n particle.roll.alter = {\n type: Enums_1.AlterType.enlighten,\n value: rollOpt.enlighten.value,\n };\n }\n }\n else {\n particle.roll = { angle: 0, speed: 0 };\n }\n }\n isEnabled(particle) {\n const roll = particle.options.roll;\n return !particle.destroyed && !particle.spawning && roll.enable;\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateRoll(particle, delta);\n }\n}\nexports.RollUpdater = RollUpdater;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvUm9sbC9Sb2xsVXBkYXRlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxtQkFBbUI7QUFDbkIsZ0JBQWdCLG1CQUFPLENBQUMsOERBQWE7QUFDckMsZ0JBQWdCLG1CQUFPLENBQUMsOERBQWE7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QjtBQUM5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvUm9sbC9Sb2xsVXBkYXRlci5qcz9lOTAyIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Sb2xsVXBkYXRlciA9IHZvaWQgMDtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vVXRpbHNcIik7XG5jb25zdCBFbnVtc18xID0gcmVxdWlyZShcIi4uLy4uL0VudW1zXCIpO1xuZnVuY3Rpb24gdXBkYXRlUm9sbChwYXJ0aWNsZSwgZGVsdGEpIHtcbiAgICBjb25zdCByb2xsID0gcGFydGljbGUub3B0aW9ucy5yb2xsO1xuICAgIGlmICghcGFydGljbGUucm9sbCB8fCAhcm9sbC5lbmFibGUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBzcGVlZCA9IHBhcnRpY2xlLnJvbGwuc3BlZWQgKiBkZWx0YS5mYWN0b3I7XG4gICAgY29uc3QgbWF4ID0gMiAqIE1hdGguUEk7XG4gICAgcGFydGljbGUucm9sbC5hbmdsZSArPSBzcGVlZDtcbiAgICBpZiAocGFydGljbGUucm9sbC5hbmdsZSA+IG1heCkge1xuICAgICAgICBwYXJ0aWNsZS5yb2xsLmFuZ2xlIC09IG1heDtcbiAgICB9XG59XG5jbGFzcyBSb2xsVXBkYXRlciB7XG4gICAgaW5pdChwYXJ0aWNsZSkge1xuICAgICAgICBjb25zdCByb2xsT3B0ID0gcGFydGljbGUub3B0aW9ucy5yb2xsO1xuICAgICAgICBpZiAocm9sbE9wdC5lbmFibGUpIHtcbiAgICAgICAgICAgIHBhcnRpY2xlLnJvbGwgPSB7XG4gICAgICAgICAgICAgICAgYW5nbGU6IE1hdGgucmFuZG9tKCkgKiBNYXRoLlBJICogMixcbiAgICAgICAgICAgICAgICBzcGVlZDogKDAsIFV0aWxzXzEuZ2V0UmFuZ2VWYWx1ZSkocm9sbE9wdC5zcGVlZCkgLyAzNjAsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHJvbGxPcHQuYmFja0NvbG9yKSB7XG4gICAgICAgICAgICAgICAgcGFydGljbGUuYmFja0NvbG9yID0gKDAsIFV0aWxzXzEuY29sb3JUb0hzbCkocm9sbE9wdC5iYWNrQ29sb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAocm9sbE9wdC5kYXJrZW4uZW5hYmxlICYmIHJvbGxPcHQuZW5saWdodGVuLmVuYWJsZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFsdGVyVHlwZSA9IE1hdGgucmFuZG9tKCkgPj0gMC41ID8gRW51bXNfMS5BbHRlclR5cGUuZGFya2VuIDogRW51bXNfMS5BbHRlclR5cGUuZW5saWdodGVuO1xuICAgICAgICAgICAgICAgIHBhcnRpY2xlLnJvbGwuYWx0ZXIgPSB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IGFsdGVyVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGFsdGVyVHlwZSA9PT0gRW51bXNfMS5BbHRlclR5cGUuZGFya2VuID8gcm9sbE9wdC5kYXJrZW4udmFsdWUgOiByb2xsT3B0LmVubGlnaHRlbi52YWx1ZSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAocm9sbE9wdC5kYXJrZW4uZW5hYmxlKSB7XG4gICAgICAgICAgICAgICAgcGFydGljbGUucm9sbC5hbHRlciA9IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogRW51bXNfMS5BbHRlclR5cGUuZGFya2VuLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcm9sbE9wdC5kYXJrZW4udmFsdWUsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHJvbGxPcHQuZW5saWdodGVuLmVuYWJsZSkge1xuICAgICAgICAgICAgICAgIHBhcnRpY2xlLnJvbGwuYWx0ZXIgPSB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IEVudW1zXzEuQWx0ZXJUeXBlLmVubGlnaHRlbixcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHJvbGxPcHQuZW5saWdodGVuLnZhbHVlLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBwYXJ0aWNsZS5yb2xsID0geyBhbmdsZTogMCwgc3BlZWQ6IDAgfTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpc0VuYWJsZWQocGFydGljbGUpIHtcbiAgICAgICAgY29uc3Qgcm9sbCA9IHBhcnRpY2xlLm9wdGlvbnMucm9sbDtcbiAgICAgICAgcmV0dXJuICFwYXJ0aWNsZS5kZXN0cm95ZWQgJiYgIXBhcnRpY2xlLnNwYXduaW5nICYmIHJvbGwuZW5hYmxlO1xuICAgIH1cbiAgICB1cGRhdGUocGFydGljbGUsIGRlbHRhKSB7XG4gICAgICAgIGlmICghdGhpcy5pc0VuYWJsZWQocGFydGljbGUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdXBkYXRlUm9sbChwYXJ0aWNsZSwgZGVsdGEpO1xuICAgIH1cbn1cbmV4cG9ydHMuUm9sbFVwZGF0ZXIgPSBSb2xsVXBkYXRlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Updaters/Roll/RollUpdater.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Updaters/Roll/index.js": +/*!*********************************************************!*\ + !*** ./node_modules/tsparticles/Updaters/Roll/index.js ***! + \*********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadRollUpdater = void 0;\nconst RollUpdater_1 = __webpack_require__(/*! ./RollUpdater */ \"./node_modules/tsparticles/Updaters/Roll/RollUpdater.js\");\nasync function loadRollUpdater(tsParticles) {\n await tsParticles.addParticleUpdater(\"roll\", () => new RollUpdater_1.RollUpdater());\n}\nexports.loadRollUpdater = loadRollUpdater;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvUm9sbC9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCx1QkFBdUI7QUFDdkIsc0JBQXNCLG1CQUFPLENBQUMsOEVBQWU7QUFDN0M7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9VcGRhdGVycy9Sb2xsL2luZGV4LmpzP2I1OWIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmxvYWRSb2xsVXBkYXRlciA9IHZvaWQgMDtcbmNvbnN0IFJvbGxVcGRhdGVyXzEgPSByZXF1aXJlKFwiLi9Sb2xsVXBkYXRlclwiKTtcbmFzeW5jIGZ1bmN0aW9uIGxvYWRSb2xsVXBkYXRlcih0c1BhcnRpY2xlcykge1xuICAgIGF3YWl0IHRzUGFydGljbGVzLmFkZFBhcnRpY2xlVXBkYXRlcihcInJvbGxcIiwgKCkgPT4gbmV3IFJvbGxVcGRhdGVyXzEuUm9sbFVwZGF0ZXIoKSk7XG59XG5leHBvcnRzLmxvYWRSb2xsVXBkYXRlciA9IGxvYWRSb2xsVXBkYXRlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Updaters/Roll/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Updaters/Size/SizeUpdater.js": +/*!***************************************************************!*\ + !*** ./node_modules/tsparticles/Updaters/Size/SizeUpdater.js ***! + \***************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.SizeUpdater = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nfunction checkDestroy(particle, value, minValue, maxValue) {\n switch (particle.options.size.animation.destroy) {\n case Enums_1.DestroyType.max:\n if (value >= maxValue) {\n particle.destroy();\n }\n break;\n case Enums_1.DestroyType.min:\n if (value <= minValue) {\n particle.destroy();\n }\n break;\n }\n}\nfunction updateSize(particle, delta) {\n var _a, _b, _c, _d;\n const sizeVelocity = ((_a = particle.size.velocity) !== null && _a !== void 0 ? _a : 0) * delta.factor;\n const minValue = particle.size.min;\n const maxValue = particle.size.max;\n if (!(!particle.destroyed &&\n particle.size.enable &&\n (((_b = particle.size.loops) !== null && _b !== void 0 ? _b : 0) <= 0 || ((_c = particle.size.loops) !== null && _c !== void 0 ? _c : 0) < ((_d = particle.size.maxLoops) !== null && _d !== void 0 ? _d : 0)))) {\n return;\n }\n switch (particle.size.status) {\n case Enums_1.AnimationStatus.increasing:\n if (particle.size.value >= maxValue) {\n particle.size.status = Enums_1.AnimationStatus.decreasing;\n if (!particle.size.loops) {\n particle.size.loops = 0;\n }\n particle.size.loops++;\n }\n else {\n particle.size.value += sizeVelocity;\n }\n break;\n case Enums_1.AnimationStatus.decreasing:\n if (particle.size.value <= minValue) {\n particle.size.status = Enums_1.AnimationStatus.increasing;\n if (!particle.size.loops) {\n particle.size.loops = 0;\n }\n particle.size.loops++;\n }\n else {\n particle.size.value -= sizeVelocity;\n }\n }\n checkDestroy(particle, particle.size.value, minValue, maxValue);\n if (!particle.destroyed) {\n particle.size.value = (0, Utils_1.clamp)(particle.size.value, minValue, maxValue);\n }\n}\nclass SizeUpdater {\n init() {\n }\n isEnabled(particle) {\n var _a, _b, _c;\n return (!particle.destroyed &&\n !particle.spawning &&\n particle.size.enable &&\n (((_a = particle.size.loops) !== null && _a !== void 0 ? _a : 0) <= 0 || ((_b = particle.size.loops) !== null && _b !== void 0 ? _b : 0) < ((_c = particle.size.maxLoops) !== null && _c !== void 0 ? _c : 0)));\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateSize(particle, delta);\n }\n}\nexports.SizeUpdater = SizeUpdater;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvU2l6ZS9TaXplVXBkYXRlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxtQkFBbUI7QUFDbkIsZ0JBQWdCLG1CQUFPLENBQUMsOERBQWE7QUFDckMsZ0JBQWdCLG1CQUFPLENBQUMsOERBQWE7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvU2l6ZS9TaXplVXBkYXRlci5qcz84NTJmIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5TaXplVXBkYXRlciA9IHZvaWQgMDtcbmNvbnN0IEVudW1zXzEgPSByZXF1aXJlKFwiLi4vLi4vRW51bXNcIik7XG5jb25zdCBVdGlsc18xID0gcmVxdWlyZShcIi4uLy4uL1V0aWxzXCIpO1xuZnVuY3Rpb24gY2hlY2tEZXN0cm95KHBhcnRpY2xlLCB2YWx1ZSwgbWluVmFsdWUsIG1heFZhbHVlKSB7XG4gICAgc3dpdGNoIChwYXJ0aWNsZS5vcHRpb25zLnNpemUuYW5pbWF0aW9uLmRlc3Ryb3kpIHtcbiAgICAgICAgY2FzZSBFbnVtc18xLkRlc3Ryb3lUeXBlLm1heDpcbiAgICAgICAgICAgIGlmICh2YWx1ZSA+PSBtYXhWYWx1ZSkge1xuICAgICAgICAgICAgICAgIHBhcnRpY2xlLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVudW1zXzEuRGVzdHJveVR5cGUubWluOlxuICAgICAgICAgICAgaWYgKHZhbHVlIDw9IG1pblZhbHVlKSB7XG4gICAgICAgICAgICAgICAgcGFydGljbGUuZGVzdHJveSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgfVxufVxuZnVuY3Rpb24gdXBkYXRlU2l6ZShwYXJ0aWNsZSwgZGVsdGEpIHtcbiAgICB2YXIgX2EsIF9iLCBfYywgX2Q7XG4gICAgY29uc3Qgc2l6ZVZlbG9jaXR5ID0gKChfYSA9IHBhcnRpY2xlLnNpemUudmVsb2NpdHkpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IDApICogZGVsdGEuZmFjdG9yO1xuICAgIGNvbnN0IG1pblZhbHVlID0gcGFydGljbGUuc2l6ZS5taW47XG4gICAgY29uc3QgbWF4VmFsdWUgPSBwYXJ0aWNsZS5zaXplLm1heDtcbiAgICBpZiAoISghcGFydGljbGUuZGVzdHJveWVkICYmXG4gICAgICAgIHBhcnRpY2xlLnNpemUuZW5hYmxlICYmXG4gICAgICAgICgoKF9iID0gcGFydGljbGUuc2l6ZS5sb29wcykgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogMCkgPD0gMCB8fCAoKF9jID0gcGFydGljbGUuc2l6ZS5sb29wcykgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogMCkgPCAoKF9kID0gcGFydGljbGUuc2l6ZS5tYXhMb29wcykgIT09IG51bGwgJiYgX2QgIT09IHZvaWQgMCA/IF9kIDogMCkpKSkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIHN3aXRjaCAocGFydGljbGUuc2l6ZS5zdGF0dXMpIHtcbiAgICAgICAgY2FzZSBFbnVtc18xLkFuaW1hdGlvblN0YXR1cy5pbmNyZWFzaW5nOlxuICAgICAgICAgICAgaWYgKHBhcnRpY2xlLnNpemUudmFsdWUgPj0gbWF4VmFsdWUpIHtcbiAgICAgICAgICAgICAgICBwYXJ0aWNsZS5zaXplLnN0YXR1cyA9IEVudW1zXzEuQW5pbWF0aW9uU3RhdHVzLmRlY3JlYXNpbmc7XG4gICAgICAgICAgICAgICAgaWYgKCFwYXJ0aWNsZS5zaXplLmxvb3BzKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhcnRpY2xlLnNpemUubG9vcHMgPSAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwYXJ0aWNsZS5zaXplLmxvb3BzKys7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBwYXJ0aWNsZS5zaXplLnZhbHVlICs9IHNpemVWZWxvY2l0eTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVudW1zXzEuQW5pbWF0aW9uU3RhdHVzLmRlY3JlYXNpbmc6XG4gICAgICAgICAgICBpZiAocGFydGljbGUuc2l6ZS52YWx1ZSA8PSBtaW5WYWx1ZSkge1xuICAgICAgICAgICAgICAgIHBhcnRpY2xlLnNpemUuc3RhdHVzID0gRW51bXNfMS5BbmltYXRpb25TdGF0dXMuaW5jcmVhc2luZztcbiAgICAgICAgICAgICAgICBpZiAoIXBhcnRpY2xlLnNpemUubG9vcHMpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFydGljbGUuc2l6ZS5sb29wcyA9IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHBhcnRpY2xlLnNpemUubG9vcHMrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHBhcnRpY2xlLnNpemUudmFsdWUgLT0gc2l6ZVZlbG9jaXR5O1xuICAgICAgICAgICAgfVxuICAgIH1cbiAgICBjaGVja0Rlc3Ryb3kocGFydGljbGUsIHBhcnRpY2xlLnNpemUudmFsdWUsIG1pblZhbHVlLCBtYXhWYWx1ZSk7XG4gICAgaWYgKCFwYXJ0aWNsZS5kZXN0cm95ZWQpIHtcbiAgICAgICAgcGFydGljbGUuc2l6ZS52YWx1ZSA9ICgwLCBVdGlsc18xLmNsYW1wKShwYXJ0aWNsZS5zaXplLnZhbHVlLCBtaW5WYWx1ZSwgbWF4VmFsdWUpO1xuICAgIH1cbn1cbmNsYXNzIFNpemVVcGRhdGVyIHtcbiAgICBpbml0KCkge1xuICAgIH1cbiAgICBpc0VuYWJsZWQocGFydGljbGUpIHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgIHJldHVybiAoIXBhcnRpY2xlLmRlc3Ryb3llZCAmJlxuICAgICAgICAgICAgIXBhcnRpY2xlLnNwYXduaW5nICYmXG4gICAgICAgICAgICBwYXJ0aWNsZS5zaXplLmVuYWJsZSAmJlxuICAgICAgICAgICAgKCgoX2EgPSBwYXJ0aWNsZS5zaXplLmxvb3BzKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAwKSA8PSAwIHx8ICgoX2IgPSBwYXJ0aWNsZS5zaXplLmxvb3BzKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiAwKSA8ICgoX2MgPSBwYXJ0aWNsZS5zaXplLm1heExvb3BzKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiAwKSkpO1xuICAgIH1cbiAgICB1cGRhdGUocGFydGljbGUsIGRlbHRhKSB7XG4gICAgICAgIGlmICghdGhpcy5pc0VuYWJsZWQocGFydGljbGUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdXBkYXRlU2l6ZShwYXJ0aWNsZSwgZGVsdGEpO1xuICAgIH1cbn1cbmV4cG9ydHMuU2l6ZVVwZGF0ZXIgPSBTaXplVXBkYXRlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Updaters/Size/SizeUpdater.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Updaters/Size/index.js": +/*!*********************************************************!*\ + !*** ./node_modules/tsparticles/Updaters/Size/index.js ***! + \*********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadSizeUpdater = void 0;\nconst SizeUpdater_1 = __webpack_require__(/*! ./SizeUpdater */ \"./node_modules/tsparticles/Updaters/Size/SizeUpdater.js\");\nasync function loadSizeUpdater(tsParticles) {\n await tsParticles.addParticleUpdater(\"size\", () => new SizeUpdater_1.SizeUpdater());\n}\nexports.loadSizeUpdater = loadSizeUpdater;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvU2l6ZS9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCx1QkFBdUI7QUFDdkIsc0JBQXNCLG1CQUFPLENBQUMsOEVBQWU7QUFDN0M7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9VcGRhdGVycy9TaXplL2luZGV4LmpzP2NmYWIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmxvYWRTaXplVXBkYXRlciA9IHZvaWQgMDtcbmNvbnN0IFNpemVVcGRhdGVyXzEgPSByZXF1aXJlKFwiLi9TaXplVXBkYXRlclwiKTtcbmFzeW5jIGZ1bmN0aW9uIGxvYWRTaXplVXBkYXRlcih0c1BhcnRpY2xlcykge1xuICAgIGF3YWl0IHRzUGFydGljbGVzLmFkZFBhcnRpY2xlVXBkYXRlcihcInNpemVcIiwgKCkgPT4gbmV3IFNpemVVcGRhdGVyXzEuU2l6ZVVwZGF0ZXIoKSk7XG59XG5leHBvcnRzLmxvYWRTaXplVXBkYXRlciA9IGxvYWRTaXplVXBkYXRlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Updaters/Size/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Updaters/StrokeColor/StrokeColorUpdater.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/tsparticles/Updaters/StrokeColor/StrokeColorUpdater.js ***! + \*****************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.StrokeColorUpdater = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Enums_1 = __webpack_require__(/*! ../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nfunction updateColorValue(delta, value, valueAnimation, max, decrease) {\n var _a;\n const colorValue = value;\n if (!colorValue || !colorValue.enable) {\n return;\n }\n const offset = (0, Utils_1.randomInRange)(valueAnimation.offset);\n const velocity = ((_a = value.velocity) !== null && _a !== void 0 ? _a : 0) * delta.factor + offset * 3.6;\n if (!decrease || colorValue.status === Enums_1.AnimationStatus.increasing) {\n colorValue.value += velocity;\n if (decrease && colorValue.value > max) {\n colorValue.status = Enums_1.AnimationStatus.decreasing;\n colorValue.value -= colorValue.value % max;\n }\n }\n else {\n colorValue.value -= velocity;\n if (colorValue.value < 0) {\n colorValue.status = Enums_1.AnimationStatus.increasing;\n colorValue.value += colorValue.value;\n }\n }\n if (colorValue.value > max) {\n colorValue.value %= max;\n }\n}\nfunction updateStrokeColor(particle, delta) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n if (!((_a = particle.stroke) === null || _a === void 0 ? void 0 : _a.color)) {\n return;\n }\n const animationOptions = particle.stroke.color.animation;\n const h = (_c = (_b = particle.strokeColor) === null || _b === void 0 ? void 0 : _b.h) !== null && _c !== void 0 ? _c : (_d = particle.color) === null || _d === void 0 ? void 0 : _d.h;\n if (h) {\n updateColorValue(delta, h, animationOptions.h, 360, false);\n }\n const s = (_f = (_e = particle.strokeColor) === null || _e === void 0 ? void 0 : _e.s) !== null && _f !== void 0 ? _f : (_g = particle.color) === null || _g === void 0 ? void 0 : _g.s;\n if (s) {\n updateColorValue(delta, s, animationOptions.s, 100, true);\n }\n const l = (_j = (_h = particle.strokeColor) === null || _h === void 0 ? void 0 : _h.l) !== null && _j !== void 0 ? _j : (_k = particle.color) === null || _k === void 0 ? void 0 : _k.l;\n if (l) {\n updateColorValue(delta, l, animationOptions.l, 100, true);\n }\n}\nclass StrokeColorUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n var _a, _b;\n const container = this.container;\n particle.stroke =\n particle.options.stroke instanceof Array\n ? (0, Utils_1.itemFromArray)(particle.options.stroke, particle.id, particle.options.reduceDuplicates)\n : particle.options.stroke;\n particle.strokeWidth = particle.stroke.width * container.retina.pixelRatio;\n const strokeHslColor = (_a = (0, Utils_1.colorToHsl)(particle.stroke.color)) !== null && _a !== void 0 ? _a : particle.getFillColor();\n if (strokeHslColor) {\n particle.strokeColor = (0, Utils_1.getHslAnimationFromHsl)(strokeHslColor, (_b = particle.stroke.color) === null || _b === void 0 ? void 0 : _b.animation, container.retina.reduceFactor);\n }\n }\n isEnabled(particle) {\n var _a, _b, _c, _d;\n const color = (_a = particle.stroke) === null || _a === void 0 ? void 0 : _a.color;\n return (!particle.destroyed &&\n !particle.spawning &&\n !!color &&\n ((((_b = particle.strokeColor) === null || _b === void 0 ? void 0 : _b.h.value) !== undefined && color.animation.h.enable) ||\n (((_c = particle.strokeColor) === null || _c === void 0 ? void 0 : _c.s.value) !== undefined && color.animation.s.enable) ||\n (((_d = particle.strokeColor) === null || _d === void 0 ? void 0 : _d.l.value) !== undefined && color.animation.l.enable)));\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateStrokeColor(particle, delta);\n }\n}\nexports.StrokeColorUpdater = StrokeColorUpdater;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvU3Ryb2tlQ29sb3IvU3Ryb2tlQ29sb3JVcGRhdGVyLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELDBCQUEwQjtBQUMxQixnQkFBZ0IsbUJBQU8sQ0FBQyw4REFBYTtBQUNyQyxnQkFBZ0IsbUJBQU8sQ0FBQyw4REFBYTtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvU3Ryb2tlQ29sb3IvU3Ryb2tlQ29sb3JVcGRhdGVyLmpzPzczMTgiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlN0cm9rZUNvbG9yVXBkYXRlciA9IHZvaWQgMDtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vVXRpbHNcIik7XG5jb25zdCBFbnVtc18xID0gcmVxdWlyZShcIi4uLy4uL0VudW1zXCIpO1xuZnVuY3Rpb24gdXBkYXRlQ29sb3JWYWx1ZShkZWx0YSwgdmFsdWUsIHZhbHVlQW5pbWF0aW9uLCBtYXgsIGRlY3JlYXNlKSB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IGNvbG9yVmFsdWUgPSB2YWx1ZTtcbiAgICBpZiAoIWNvbG9yVmFsdWUgfHwgIWNvbG9yVmFsdWUuZW5hYmxlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgb2Zmc2V0ID0gKDAsIFV0aWxzXzEucmFuZG9tSW5SYW5nZSkodmFsdWVBbmltYXRpb24ub2Zmc2V0KTtcbiAgICBjb25zdCB2ZWxvY2l0eSA9ICgoX2EgPSB2YWx1ZS52ZWxvY2l0eSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogMCkgKiBkZWx0YS5mYWN0b3IgKyBvZmZzZXQgKiAzLjY7XG4gICAgaWYgKCFkZWNyZWFzZSB8fCBjb2xvclZhbHVlLnN0YXR1cyA9PT0gRW51bXNfMS5BbmltYXRpb25TdGF0dXMuaW5jcmVhc2luZykge1xuICAgICAgICBjb2xvclZhbHVlLnZhbHVlICs9IHZlbG9jaXR5O1xuICAgICAgICBpZiAoZGVjcmVhc2UgJiYgY29sb3JWYWx1ZS52YWx1ZSA+IG1heCkge1xuICAgICAgICAgICAgY29sb3JWYWx1ZS5zdGF0dXMgPSBFbnVtc18xLkFuaW1hdGlvblN0YXR1cy5kZWNyZWFzaW5nO1xuICAgICAgICAgICAgY29sb3JWYWx1ZS52YWx1ZSAtPSBjb2xvclZhbHVlLnZhbHVlICUgbWF4O1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBjb2xvclZhbHVlLnZhbHVlIC09IHZlbG9jaXR5O1xuICAgICAgICBpZiAoY29sb3JWYWx1ZS52YWx1ZSA8IDApIHtcbiAgICAgICAgICAgIGNvbG9yVmFsdWUuc3RhdHVzID0gRW51bXNfMS5BbmltYXRpb25TdGF0dXMuaW5jcmVhc2luZztcbiAgICAgICAgICAgIGNvbG9yVmFsdWUudmFsdWUgKz0gY29sb3JWYWx1ZS52YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoY29sb3JWYWx1ZS52YWx1ZSA+IG1heCkge1xuICAgICAgICBjb2xvclZhbHVlLnZhbHVlICU9IG1heDtcbiAgICB9XG59XG5mdW5jdGlvbiB1cGRhdGVTdHJva2VDb2xvcihwYXJ0aWNsZSwgZGVsdGEpIHtcbiAgICB2YXIgX2EsIF9iLCBfYywgX2QsIF9lLCBfZiwgX2csIF9oLCBfaiwgX2s7XG4gICAgaWYgKCEoKF9hID0gcGFydGljbGUuc3Ryb2tlKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY29sb3IpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgYW5pbWF0aW9uT3B0aW9ucyA9IHBhcnRpY2xlLnN0cm9rZS5jb2xvci5hbmltYXRpb247XG4gICAgY29uc3QgaCA9IChfYyA9IChfYiA9IHBhcnRpY2xlLnN0cm9rZUNvbG9yKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuaCkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogKF9kID0gcGFydGljbGUuY29sb3IpID09PSBudWxsIHx8IF9kID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZC5oO1xuICAgIGlmIChoKSB7XG4gICAgICAgIHVwZGF0ZUNvbG9yVmFsdWUoZGVsdGEsIGgsIGFuaW1hdGlvbk9wdGlvbnMuaCwgMzYwLCBmYWxzZSk7XG4gICAgfVxuICAgIGNvbnN0IHMgPSAoX2YgPSAoX2UgPSBwYXJ0aWNsZS5zdHJva2VDb2xvcikgPT09IG51bGwgfHwgX2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9lLnMpICE9PSBudWxsICYmIF9mICE9PSB2b2lkIDAgPyBfZiA6IChfZyA9IHBhcnRpY2xlLmNvbG9yKSA9PT0gbnVsbCB8fCBfZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2cucztcbiAgICBpZiAocykge1xuICAgICAgICB1cGRhdGVDb2xvclZhbHVlKGRlbHRhLCBzLCBhbmltYXRpb25PcHRpb25zLnMsIDEwMCwgdHJ1ZSk7XG4gICAgfVxuICAgIGNvbnN0IGwgPSAoX2ogPSAoX2ggPSBwYXJ0aWNsZS5zdHJva2VDb2xvcikgPT09IG51bGwgfHwgX2ggPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9oLmwpICE9PSBudWxsICYmIF9qICE9PSB2b2lkIDAgPyBfaiA6IChfayA9IHBhcnRpY2xlLmNvbG9yKSA9PT0gbnVsbCB8fCBfayA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2subDtcbiAgICBpZiAobCkge1xuICAgICAgICB1cGRhdGVDb2xvclZhbHVlKGRlbHRhLCBsLCBhbmltYXRpb25PcHRpb25zLmwsIDEwMCwgdHJ1ZSk7XG4gICAgfVxufVxuY2xhc3MgU3Ryb2tlQ29sb3JVcGRhdGVyIHtcbiAgICBjb25zdHJ1Y3Rvcihjb250YWluZXIpIHtcbiAgICAgICAgdGhpcy5jb250YWluZXIgPSBjb250YWluZXI7XG4gICAgfVxuICAgIGluaXQocGFydGljbGUpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXI7XG4gICAgICAgIHBhcnRpY2xlLnN0cm9rZSA9XG4gICAgICAgICAgICBwYXJ0aWNsZS5vcHRpb25zLnN0cm9rZSBpbnN0YW5jZW9mIEFycmF5XG4gICAgICAgICAgICAgICAgPyAoMCwgVXRpbHNfMS5pdGVtRnJvbUFycmF5KShwYXJ0aWNsZS5vcHRpb25zLnN0cm9rZSwgcGFydGljbGUuaWQsIHBhcnRpY2xlLm9wdGlvbnMucmVkdWNlRHVwbGljYXRlcylcbiAgICAgICAgICAgICAgICA6IHBhcnRpY2xlLm9wdGlvbnMuc3Ryb2tlO1xuICAgICAgICBwYXJ0aWNsZS5zdHJva2VXaWR0aCA9IHBhcnRpY2xlLnN0cm9rZS53aWR0aCAqIGNvbnRhaW5lci5yZXRpbmEucGl4ZWxSYXRpbztcbiAgICAgICAgY29uc3Qgc3Ryb2tlSHNsQ29sb3IgPSAoX2EgPSAoMCwgVXRpbHNfMS5jb2xvclRvSHNsKShwYXJ0aWNsZS5zdHJva2UuY29sb3IpKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBwYXJ0aWNsZS5nZXRGaWxsQ29sb3IoKTtcbiAgICAgICAgaWYgKHN0cm9rZUhzbENvbG9yKSB7XG4gICAgICAgICAgICBwYXJ0aWNsZS5zdHJva2VDb2xvciA9ICgwLCBVdGlsc18xLmdldEhzbEFuaW1hdGlvbkZyb21Ic2wpKHN0cm9rZUhzbENvbG9yLCAoX2IgPSBwYXJ0aWNsZS5zdHJva2UuY29sb3IpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5hbmltYXRpb24sIGNvbnRhaW5lci5yZXRpbmEucmVkdWNlRmFjdG9yKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpc0VuYWJsZWQocGFydGljbGUpIHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kO1xuICAgICAgICBjb25zdCBjb2xvciA9IChfYSA9IHBhcnRpY2xlLnN0cm9rZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNvbG9yO1xuICAgICAgICByZXR1cm4gKCFwYXJ0aWNsZS5kZXN0cm95ZWQgJiZcbiAgICAgICAgICAgICFwYXJ0aWNsZS5zcGF3bmluZyAmJlxuICAgICAgICAgICAgISFjb2xvciAmJlxuICAgICAgICAgICAgKCgoKF9iID0gcGFydGljbGUuc3Ryb2tlQ29sb3IpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5oLnZhbHVlKSAhPT0gdW5kZWZpbmVkICYmIGNvbG9yLmFuaW1hdGlvbi5oLmVuYWJsZSkgfHxcbiAgICAgICAgICAgICAgICAoKChfYyA9IHBhcnRpY2xlLnN0cm9rZUNvbG9yKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Mucy52YWx1ZSkgIT09IHVuZGVmaW5lZCAmJiBjb2xvci5hbmltYXRpb24ucy5lbmFibGUpIHx8XG4gICAgICAgICAgICAgICAgKCgoX2QgPSBwYXJ0aWNsZS5zdHJva2VDb2xvcikgPT09IG51bGwgfHwgX2QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9kLmwudmFsdWUpICE9PSB1bmRlZmluZWQgJiYgY29sb3IuYW5pbWF0aW9uLmwuZW5hYmxlKSkpO1xuICAgIH1cbiAgICB1cGRhdGUocGFydGljbGUsIGRlbHRhKSB7XG4gICAgICAgIGlmICghdGhpcy5pc0VuYWJsZWQocGFydGljbGUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdXBkYXRlU3Ryb2tlQ29sb3IocGFydGljbGUsIGRlbHRhKTtcbiAgICB9XG59XG5leHBvcnRzLlN0cm9rZUNvbG9yVXBkYXRlciA9IFN0cm9rZUNvbG9yVXBkYXRlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Updaters/StrokeColor/StrokeColorUpdater.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Updaters/StrokeColor/index.js": +/*!****************************************************************!*\ + !*** ./node_modules/tsparticles/Updaters/StrokeColor/index.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadStrokeColorUpdater = void 0;\nconst StrokeColorUpdater_1 = __webpack_require__(/*! ./StrokeColorUpdater */ \"./node_modules/tsparticles/Updaters/StrokeColor/StrokeColorUpdater.js\");\nasync function loadStrokeColorUpdater(tsParticles) {\n await tsParticles.addParticleUpdater(\"strokeColor\", (container) => new StrokeColorUpdater_1.StrokeColorUpdater(container));\n}\nexports.loadStrokeColorUpdater = loadStrokeColorUpdater;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvU3Ryb2tlQ29sb3IvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsOEJBQThCO0FBQzlCLDZCQUE2QixtQkFBTyxDQUFDLG1HQUFzQjtBQUMzRDtBQUNBO0FBQ0E7QUFDQSw4QkFBOEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1VwZGF0ZXJzL1N0cm9rZUNvbG9yL2luZGV4LmpzP2E0ZDIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmxvYWRTdHJva2VDb2xvclVwZGF0ZXIgPSB2b2lkIDA7XG5jb25zdCBTdHJva2VDb2xvclVwZGF0ZXJfMSA9IHJlcXVpcmUoXCIuL1N0cm9rZUNvbG9yVXBkYXRlclwiKTtcbmFzeW5jIGZ1bmN0aW9uIGxvYWRTdHJva2VDb2xvclVwZGF0ZXIodHNQYXJ0aWNsZXMpIHtcbiAgICBhd2FpdCB0c1BhcnRpY2xlcy5hZGRQYXJ0aWNsZVVwZGF0ZXIoXCJzdHJva2VDb2xvclwiLCAoY29udGFpbmVyKSA9PiBuZXcgU3Ryb2tlQ29sb3JVcGRhdGVyXzEuU3Ryb2tlQ29sb3JVcGRhdGVyKGNvbnRhaW5lcikpO1xufVxuZXhwb3J0cy5sb2FkU3Ryb2tlQ29sb3JVcGRhdGVyID0gbG9hZFN0cm9rZUNvbG9yVXBkYXRlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Updaters/StrokeColor/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Updaters/Tilt/TiltUpdater.js": +/*!***************************************************************!*\ + !*** ./node_modules/tsparticles/Updaters/Tilt/TiltUpdater.js ***! + \***************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.TiltUpdater = void 0;\nconst Enums_1 = __webpack_require__(/*! ../../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nfunction updateTilt(particle, delta) {\n var _a;\n if (!particle.tilt) {\n return;\n }\n const tilt = particle.options.tilt;\n const tiltAnimation = tilt.animation;\n const speed = ((_a = particle.tilt.velocity) !== null && _a !== void 0 ? _a : 0) * delta.factor;\n const max = 2 * Math.PI;\n if (!tiltAnimation.enable) {\n return;\n }\n switch (particle.tilt.status) {\n case Enums_1.AnimationStatus.increasing:\n particle.tilt.value += speed;\n if (particle.tilt.value > max) {\n particle.tilt.value -= max;\n }\n break;\n case Enums_1.AnimationStatus.decreasing:\n default:\n particle.tilt.value -= speed;\n if (particle.tilt.value < 0) {\n particle.tilt.value += max;\n }\n break;\n }\n}\nclass TiltUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n const tiltOptions = particle.options.tilt;\n particle.tilt = {\n enable: tiltOptions.enable,\n value: ((0, Utils_1.getRangeValue)(tiltOptions.value) * Math.PI) / 180,\n sinDirection: Math.random() >= 0.5 ? 1 : -1,\n cosDirection: Math.random() >= 0.5 ? 1 : -1,\n };\n let tiltDirection = tiltOptions.direction;\n if (tiltDirection === Enums_1.TiltDirection.random) {\n const index = Math.floor(Math.random() * 2);\n tiltDirection = index > 0 ? Enums_1.TiltDirection.counterClockwise : Enums_1.TiltDirection.clockwise;\n }\n switch (tiltDirection) {\n case Enums_1.TiltDirection.counterClockwise:\n case \"counterClockwise\":\n particle.tilt.status = Enums_1.AnimationStatus.decreasing;\n break;\n case Enums_1.TiltDirection.clockwise:\n particle.tilt.status = Enums_1.AnimationStatus.increasing;\n break;\n }\n const tiltAnimation = particle.options.tilt.animation;\n if (tiltAnimation.enable) {\n particle.tilt.velocity = (tiltAnimation.speed / 360) * this.container.retina.reduceFactor;\n if (!tiltAnimation.sync) {\n particle.tilt.velocity *= Math.random();\n }\n }\n }\n isEnabled(particle) {\n const tilt = particle.options.tilt;\n const tiltAnimation = tilt.animation;\n return !particle.destroyed && !particle.spawning && tiltAnimation.enable;\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateTilt(particle, delta);\n }\n}\nexports.TiltUpdater = TiltUpdater;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvVGlsdC9UaWx0VXBkYXRlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxtQkFBbUI7QUFDbkIsZ0JBQWdCLG1CQUFPLENBQUMsOERBQWE7QUFDckMsZ0JBQWdCLG1CQUFPLENBQUMsOERBQWE7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvVGlsdC9UaWx0VXBkYXRlci5qcz81MzU5Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5UaWx0VXBkYXRlciA9IHZvaWQgMDtcbmNvbnN0IEVudW1zXzEgPSByZXF1aXJlKFwiLi4vLi4vRW51bXNcIik7XG5jb25zdCBVdGlsc18xID0gcmVxdWlyZShcIi4uLy4uL1V0aWxzXCIpO1xuZnVuY3Rpb24gdXBkYXRlVGlsdChwYXJ0aWNsZSwgZGVsdGEpIHtcbiAgICB2YXIgX2E7XG4gICAgaWYgKCFwYXJ0aWNsZS50aWx0KSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgdGlsdCA9IHBhcnRpY2xlLm9wdGlvbnMudGlsdDtcbiAgICBjb25zdCB0aWx0QW5pbWF0aW9uID0gdGlsdC5hbmltYXRpb247XG4gICAgY29uc3Qgc3BlZWQgPSAoKF9hID0gcGFydGljbGUudGlsdC52ZWxvY2l0eSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogMCkgKiBkZWx0YS5mYWN0b3I7XG4gICAgY29uc3QgbWF4ID0gMiAqIE1hdGguUEk7XG4gICAgaWYgKCF0aWx0QW5pbWF0aW9uLmVuYWJsZSkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIHN3aXRjaCAocGFydGljbGUudGlsdC5zdGF0dXMpIHtcbiAgICAgICAgY2FzZSBFbnVtc18xLkFuaW1hdGlvblN0YXR1cy5pbmNyZWFzaW5nOlxuICAgICAgICAgICAgcGFydGljbGUudGlsdC52YWx1ZSArPSBzcGVlZDtcbiAgICAgICAgICAgIGlmIChwYXJ0aWNsZS50aWx0LnZhbHVlID4gbWF4KSB7XG4gICAgICAgICAgICAgICAgcGFydGljbGUudGlsdC52YWx1ZSAtPSBtYXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFbnVtc18xLkFuaW1hdGlvblN0YXR1cy5kZWNyZWFzaW5nOlxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcGFydGljbGUudGlsdC52YWx1ZSAtPSBzcGVlZDtcbiAgICAgICAgICAgIGlmIChwYXJ0aWNsZS50aWx0LnZhbHVlIDwgMCkge1xuICAgICAgICAgICAgICAgIHBhcnRpY2xlLnRpbHQudmFsdWUgKz0gbWF4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgfVxufVxuY2xhc3MgVGlsdFVwZGF0ZXIge1xuICAgIGNvbnN0cnVjdG9yKGNvbnRhaW5lcikge1xuICAgICAgICB0aGlzLmNvbnRhaW5lciA9IGNvbnRhaW5lcjtcbiAgICB9XG4gICAgaW5pdChwYXJ0aWNsZSkge1xuICAgICAgICBjb25zdCB0aWx0T3B0aW9ucyA9IHBhcnRpY2xlLm9wdGlvbnMudGlsdDtcbiAgICAgICAgcGFydGljbGUudGlsdCA9IHtcbiAgICAgICAgICAgIGVuYWJsZTogdGlsdE9wdGlvbnMuZW5hYmxlLFxuICAgICAgICAgICAgdmFsdWU6ICgoMCwgVXRpbHNfMS5nZXRSYW5nZVZhbHVlKSh0aWx0T3B0aW9ucy52YWx1ZSkgKiBNYXRoLlBJKSAvIDE4MCxcbiAgICAgICAgICAgIHNpbkRpcmVjdGlvbjogTWF0aC5yYW5kb20oKSA+PSAwLjUgPyAxIDogLTEsXG4gICAgICAgICAgICBjb3NEaXJlY3Rpb246IE1hdGgucmFuZG9tKCkgPj0gMC41ID8gMSA6IC0xLFxuICAgICAgICB9O1xuICAgICAgICBsZXQgdGlsdERpcmVjdGlvbiA9IHRpbHRPcHRpb25zLmRpcmVjdGlvbjtcbiAgICAgICAgaWYgKHRpbHREaXJlY3Rpb24gPT09IEVudW1zXzEuVGlsdERpcmVjdGlvbi5yYW5kb20pIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMik7XG4gICAgICAgICAgICB0aWx0RGlyZWN0aW9uID0gaW5kZXggPiAwID8gRW51bXNfMS5UaWx0RGlyZWN0aW9uLmNvdW50ZXJDbG9ja3dpc2UgOiBFbnVtc18xLlRpbHREaXJlY3Rpb24uY2xvY2t3aXNlO1xuICAgICAgICB9XG4gICAgICAgIHN3aXRjaCAodGlsdERpcmVjdGlvbikge1xuICAgICAgICAgICAgY2FzZSBFbnVtc18xLlRpbHREaXJlY3Rpb24uY291bnRlckNsb2Nrd2lzZTpcbiAgICAgICAgICAgIGNhc2UgXCJjb3VudGVyQ2xvY2t3aXNlXCI6XG4gICAgICAgICAgICAgICAgcGFydGljbGUudGlsdC5zdGF0dXMgPSBFbnVtc18xLkFuaW1hdGlvblN0YXR1cy5kZWNyZWFzaW5nO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBFbnVtc18xLlRpbHREaXJlY3Rpb24uY2xvY2t3aXNlOlxuICAgICAgICAgICAgICAgIHBhcnRpY2xlLnRpbHQuc3RhdHVzID0gRW51bXNfMS5BbmltYXRpb25TdGF0dXMuaW5jcmVhc2luZztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0aWx0QW5pbWF0aW9uID0gcGFydGljbGUub3B0aW9ucy50aWx0LmFuaW1hdGlvbjtcbiAgICAgICAgaWYgKHRpbHRBbmltYXRpb24uZW5hYmxlKSB7XG4gICAgICAgICAgICBwYXJ0aWNsZS50aWx0LnZlbG9jaXR5ID0gKHRpbHRBbmltYXRpb24uc3BlZWQgLyAzNjApICogdGhpcy5jb250YWluZXIucmV0aW5hLnJlZHVjZUZhY3RvcjtcbiAgICAgICAgICAgIGlmICghdGlsdEFuaW1hdGlvbi5zeW5jKSB7XG4gICAgICAgICAgICAgICAgcGFydGljbGUudGlsdC52ZWxvY2l0eSAqPSBNYXRoLnJhbmRvbSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGlzRW5hYmxlZChwYXJ0aWNsZSkge1xuICAgICAgICBjb25zdCB0aWx0ID0gcGFydGljbGUub3B0aW9ucy50aWx0O1xuICAgICAgICBjb25zdCB0aWx0QW5pbWF0aW9uID0gdGlsdC5hbmltYXRpb247XG4gICAgICAgIHJldHVybiAhcGFydGljbGUuZGVzdHJveWVkICYmICFwYXJ0aWNsZS5zcGF3bmluZyAmJiB0aWx0QW5pbWF0aW9uLmVuYWJsZTtcbiAgICB9XG4gICAgdXBkYXRlKHBhcnRpY2xlLCBkZWx0YSkge1xuICAgICAgICBpZiAoIXRoaXMuaXNFbmFibGVkKHBhcnRpY2xlKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHVwZGF0ZVRpbHQocGFydGljbGUsIGRlbHRhKTtcbiAgICB9XG59XG5leHBvcnRzLlRpbHRVcGRhdGVyID0gVGlsdFVwZGF0ZXI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Updaters/Tilt/TiltUpdater.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Updaters/Tilt/index.js": +/*!*********************************************************!*\ + !*** ./node_modules/tsparticles/Updaters/Tilt/index.js ***! + \*********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadTiltUpdater = void 0;\nconst TiltUpdater_1 = __webpack_require__(/*! ./TiltUpdater */ \"./node_modules/tsparticles/Updaters/Tilt/TiltUpdater.js\");\nasync function loadTiltUpdater(tsParticles) {\n await tsParticles.addParticleUpdater(\"tilt\", (container) => new TiltUpdater_1.TiltUpdater(container));\n}\nexports.loadTiltUpdater = loadTiltUpdater;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvVGlsdC9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCx1QkFBdUI7QUFDdkIsc0JBQXNCLG1CQUFPLENBQUMsOEVBQWU7QUFDN0M7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9VcGRhdGVycy9UaWx0L2luZGV4LmpzP2RmY2UiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmxvYWRUaWx0VXBkYXRlciA9IHZvaWQgMDtcbmNvbnN0IFRpbHRVcGRhdGVyXzEgPSByZXF1aXJlKFwiLi9UaWx0VXBkYXRlclwiKTtcbmFzeW5jIGZ1bmN0aW9uIGxvYWRUaWx0VXBkYXRlcih0c1BhcnRpY2xlcykge1xuICAgIGF3YWl0IHRzUGFydGljbGVzLmFkZFBhcnRpY2xlVXBkYXRlcihcInRpbHRcIiwgKGNvbnRhaW5lcikgPT4gbmV3IFRpbHRVcGRhdGVyXzEuVGlsdFVwZGF0ZXIoY29udGFpbmVyKSk7XG59XG5leHBvcnRzLmxvYWRUaWx0VXBkYXRlciA9IGxvYWRUaWx0VXBkYXRlcjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Updaters/Tilt/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Updaters/Wobble/WobbleUpdater.js": +/*!*******************************************************************!*\ + !*** ./node_modules/tsparticles/Updaters/Wobble/WobbleUpdater.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.WobbleUpdater = void 0;\nconst Utils_1 = __webpack_require__(/*! ../../Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nfunction updateWobble(particle, delta) {\n var _a;\n const wobble = particle.options.wobble;\n if (!wobble.enable || !particle.wobble) {\n return;\n }\n const speed = particle.wobble.speed * delta.factor;\n const distance = (((_a = particle.retina.wobbleDistance) !== null && _a !== void 0 ? _a : 0) * delta.factor) / (1000 / 60);\n const max = 2 * Math.PI;\n particle.wobble.angle += speed;\n if (particle.wobble.angle > max) {\n particle.wobble.angle -= max;\n }\n particle.position.x += distance * Math.cos(particle.wobble.angle);\n particle.position.y += distance * Math.abs(Math.sin(particle.wobble.angle));\n}\nclass WobbleUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n const wobbleOpt = particle.options.wobble;\n if (wobbleOpt.enable) {\n particle.wobble = {\n angle: Math.random() * Math.PI * 2,\n speed: (0, Utils_1.getRangeValue)(wobbleOpt.speed) / 360,\n };\n }\n else {\n particle.wobble = {\n angle: 0,\n speed: 0,\n };\n }\n particle.retina.wobbleDistance = (0, Utils_1.getRangeValue)(wobbleOpt.distance) * this.container.retina.pixelRatio;\n }\n isEnabled(particle) {\n return !particle.destroyed && !particle.spawning && particle.options.wobble.enable;\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateWobble(particle, delta);\n }\n}\nexports.WobbleUpdater = WobbleUpdater;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvV29iYmxlL1dvYmJsZVVwZGF0ZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QscUJBQXFCO0FBQ3JCLGdCQUFnQixtQkFBTyxDQUFDLDhEQUFhO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9VcGRhdGVycy9Xb2JibGUvV29iYmxlVXBkYXRlci5qcz8xYWI0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Xb2JibGVVcGRhdGVyID0gdm9pZCAwO1xuY29uc3QgVXRpbHNfMSA9IHJlcXVpcmUoXCIuLi8uLi9VdGlsc1wiKTtcbmZ1bmN0aW9uIHVwZGF0ZVdvYmJsZShwYXJ0aWNsZSwgZGVsdGEpIHtcbiAgICB2YXIgX2E7XG4gICAgY29uc3Qgd29iYmxlID0gcGFydGljbGUub3B0aW9ucy53b2JibGU7XG4gICAgaWYgKCF3b2JibGUuZW5hYmxlIHx8ICFwYXJ0aWNsZS53b2JibGUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBzcGVlZCA9IHBhcnRpY2xlLndvYmJsZS5zcGVlZCAqIGRlbHRhLmZhY3RvcjtcbiAgICBjb25zdCBkaXN0YW5jZSA9ICgoKF9hID0gcGFydGljbGUucmV0aW5hLndvYmJsZURpc3RhbmNlKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAwKSAqIGRlbHRhLmZhY3RvcikgLyAoMTAwMCAvIDYwKTtcbiAgICBjb25zdCBtYXggPSAyICogTWF0aC5QSTtcbiAgICBwYXJ0aWNsZS53b2JibGUuYW5nbGUgKz0gc3BlZWQ7XG4gICAgaWYgKHBhcnRpY2xlLndvYmJsZS5hbmdsZSA+IG1heCkge1xuICAgICAgICBwYXJ0aWNsZS53b2JibGUuYW5nbGUgLT0gbWF4O1xuICAgIH1cbiAgICBwYXJ0aWNsZS5wb3NpdGlvbi54ICs9IGRpc3RhbmNlICogTWF0aC5jb3MocGFydGljbGUud29iYmxlLmFuZ2xlKTtcbiAgICBwYXJ0aWNsZS5wb3NpdGlvbi55ICs9IGRpc3RhbmNlICogTWF0aC5hYnMoTWF0aC5zaW4ocGFydGljbGUud29iYmxlLmFuZ2xlKSk7XG59XG5jbGFzcyBXb2JibGVVcGRhdGVyIHtcbiAgICBjb25zdHJ1Y3Rvcihjb250YWluZXIpIHtcbiAgICAgICAgdGhpcy5jb250YWluZXIgPSBjb250YWluZXI7XG4gICAgfVxuICAgIGluaXQocGFydGljbGUpIHtcbiAgICAgICAgY29uc3Qgd29iYmxlT3B0ID0gcGFydGljbGUub3B0aW9ucy53b2JibGU7XG4gICAgICAgIGlmICh3b2JibGVPcHQuZW5hYmxlKSB7XG4gICAgICAgICAgICBwYXJ0aWNsZS53b2JibGUgPSB7XG4gICAgICAgICAgICAgICAgYW5nbGU6IE1hdGgucmFuZG9tKCkgKiBNYXRoLlBJICogMixcbiAgICAgICAgICAgICAgICBzcGVlZDogKDAsIFV0aWxzXzEuZ2V0UmFuZ2VWYWx1ZSkod29iYmxlT3B0LnNwZWVkKSAvIDM2MCxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBwYXJ0aWNsZS53b2JibGUgPSB7XG4gICAgICAgICAgICAgICAgYW5nbGU6IDAsXG4gICAgICAgICAgICAgICAgc3BlZWQ6IDAsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHBhcnRpY2xlLnJldGluYS53b2JibGVEaXN0YW5jZSA9ICgwLCBVdGlsc18xLmdldFJhbmdlVmFsdWUpKHdvYmJsZU9wdC5kaXN0YW5jZSkgKiB0aGlzLmNvbnRhaW5lci5yZXRpbmEucGl4ZWxSYXRpbztcbiAgICB9XG4gICAgaXNFbmFibGVkKHBhcnRpY2xlKSB7XG4gICAgICAgIHJldHVybiAhcGFydGljbGUuZGVzdHJveWVkICYmICFwYXJ0aWNsZS5zcGF3bmluZyAmJiBwYXJ0aWNsZS5vcHRpb25zLndvYmJsZS5lbmFibGU7XG4gICAgfVxuICAgIHVwZGF0ZShwYXJ0aWNsZSwgZGVsdGEpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzRW5hYmxlZChwYXJ0aWNsZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB1cGRhdGVXb2JibGUocGFydGljbGUsIGRlbHRhKTtcbiAgICB9XG59XG5leHBvcnRzLldvYmJsZVVwZGF0ZXIgPSBXb2JibGVVcGRhdGVyO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Updaters/Wobble/WobbleUpdater.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Updaters/Wobble/index.js": +/*!***********************************************************!*\ + !*** ./node_modules/tsparticles/Updaters/Wobble/index.js ***! + \***********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadWobbleUpdater = void 0;\nconst WobbleUpdater_1 = __webpack_require__(/*! ./WobbleUpdater */ \"./node_modules/tsparticles/Updaters/Wobble/WobbleUpdater.js\");\nasync function loadWobbleUpdater(tsParticles) {\n await tsParticles.addParticleUpdater(\"wobble\", (container) => new WobbleUpdater_1.WobbleUpdater(container));\n}\nexports.loadWobbleUpdater = loadWobbleUpdater;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXBkYXRlcnMvV29iYmxlL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELHlCQUF5QjtBQUN6Qix3QkFBd0IsbUJBQU8sQ0FBQyxvRkFBaUI7QUFDakQ7QUFDQTtBQUNBO0FBQ0EseUJBQXlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9VcGRhdGVycy9Xb2JibGUvaW5kZXguanM/NjVkNSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMubG9hZFdvYmJsZVVwZGF0ZXIgPSB2b2lkIDA7XG5jb25zdCBXb2JibGVVcGRhdGVyXzEgPSByZXF1aXJlKFwiLi9Xb2JibGVVcGRhdGVyXCIpO1xuYXN5bmMgZnVuY3Rpb24gbG9hZFdvYmJsZVVwZGF0ZXIodHNQYXJ0aWNsZXMpIHtcbiAgICBhd2FpdCB0c1BhcnRpY2xlcy5hZGRQYXJ0aWNsZVVwZGF0ZXIoXCJ3b2JibGVcIiwgKGNvbnRhaW5lcikgPT4gbmV3IFdvYmJsZVVwZGF0ZXJfMS5Xb2JibGVVcGRhdGVyKGNvbnRhaW5lcikpO1xufVxuZXhwb3J0cy5sb2FkV29iYmxlVXBkYXRlciA9IGxvYWRXb2JibGVVcGRhdGVyO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Updaters/Wobble/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Utils/CanvasUtils.js": +/*!*******************************************************!*\ + !*** ./node_modules/tsparticles/Utils/CanvasUtils.js ***! + \*******************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.alterHsl = exports.drawEllipse = exports.drawParticlePlugin = exports.drawPlugin = exports.drawShapeAfterEffect = exports.drawShape = exports.drawParticle = exports.drawGrabLine = exports.gradient = exports.drawConnectLine = exports.drawLinkTriangle = exports.drawLinkLine = exports.clear = exports.paintBase = void 0;\nconst NumberUtils_1 = __webpack_require__(/*! ./NumberUtils */ \"./node_modules/tsparticles/Utils/NumberUtils.js\");\nconst ColorUtils_1 = __webpack_require__(/*! ./ColorUtils */ \"./node_modules/tsparticles/Utils/ColorUtils.js\");\nconst Enums_1 = __webpack_require__(/*! ../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nfunction drawLine(context, begin, end) {\n context.beginPath();\n context.moveTo(begin.x, begin.y);\n context.lineTo(end.x, end.y);\n context.closePath();\n}\nfunction drawTriangle(context, p1, p2, p3) {\n context.beginPath();\n context.moveTo(p1.x, p1.y);\n context.lineTo(p2.x, p2.y);\n context.lineTo(p3.x, p3.y);\n context.closePath();\n}\nfunction paintBase(context, dimension, baseColor) {\n context.save();\n context.fillStyle = baseColor !== null && baseColor !== void 0 ? baseColor : \"rgba(0,0,0,0)\";\n context.fillRect(0, 0, dimension.width, dimension.height);\n context.restore();\n}\nexports.paintBase = paintBase;\nfunction clear(context, dimension) {\n context.clearRect(0, 0, dimension.width, dimension.height);\n}\nexports.clear = clear;\nfunction drawLinkLine(context, width, begin, end, maxDistance, canvasSize, warp, backgroundMask, composite, colorLine, opacity, shadow) {\n let drawn = false;\n if ((0, NumberUtils_1.getDistance)(begin, end) <= maxDistance) {\n drawLine(context, begin, end);\n drawn = true;\n }\n else if (warp) {\n let pi1;\n let pi2;\n const endNE = {\n x: end.x - canvasSize.width,\n y: end.y,\n };\n const d1 = (0, NumberUtils_1.getDistances)(begin, endNE);\n if (d1.distance <= maxDistance) {\n const yi = begin.y - (d1.dy / d1.dx) * begin.x;\n pi1 = { x: 0, y: yi };\n pi2 = { x: canvasSize.width, y: yi };\n }\n else {\n const endSW = {\n x: end.x,\n y: end.y - canvasSize.height,\n };\n const d2 = (0, NumberUtils_1.getDistances)(begin, endSW);\n if (d2.distance <= maxDistance) {\n const yi = begin.y - (d2.dy / d2.dx) * begin.x;\n const xi = -yi / (d2.dy / d2.dx);\n pi1 = { x: xi, y: 0 };\n pi2 = { x: xi, y: canvasSize.height };\n }\n else {\n const endSE = {\n x: end.x - canvasSize.width,\n y: end.y - canvasSize.height,\n };\n const d3 = (0, NumberUtils_1.getDistances)(begin, endSE);\n if (d3.distance <= maxDistance) {\n const yi = begin.y - (d3.dy / d3.dx) * begin.x;\n const xi = -yi / (d3.dy / d3.dx);\n pi1 = { x: xi, y: yi };\n pi2 = { x: pi1.x + canvasSize.width, y: pi1.y + canvasSize.height };\n }\n }\n }\n if (pi1 && pi2) {\n drawLine(context, begin, pi1);\n drawLine(context, end, pi2);\n drawn = true;\n }\n }\n if (!drawn) {\n return;\n }\n context.lineWidth = width;\n if (backgroundMask) {\n context.globalCompositeOperation = composite;\n }\n context.strokeStyle = (0, ColorUtils_1.getStyleFromRgb)(colorLine, opacity);\n if (shadow.enable) {\n const shadowColor = (0, ColorUtils_1.colorToRgb)(shadow.color);\n if (shadowColor) {\n context.shadowBlur = shadow.blur;\n context.shadowColor = (0, ColorUtils_1.getStyleFromRgb)(shadowColor);\n }\n }\n context.stroke();\n}\nexports.drawLinkLine = drawLinkLine;\nfunction drawLinkTriangle(context, pos1, pos2, pos3, backgroundMask, composite, colorTriangle, opacityTriangle) {\n drawTriangle(context, pos1, pos2, pos3);\n if (backgroundMask) {\n context.globalCompositeOperation = composite;\n }\n context.fillStyle = (0, ColorUtils_1.getStyleFromRgb)(colorTriangle, opacityTriangle);\n context.fill();\n}\nexports.drawLinkTriangle = drawLinkTriangle;\nfunction drawConnectLine(context, width, lineStyle, begin, end) {\n context.save();\n drawLine(context, begin, end);\n context.lineWidth = width;\n context.strokeStyle = lineStyle;\n context.stroke();\n context.restore();\n}\nexports.drawConnectLine = drawConnectLine;\nfunction gradient(context, p1, p2, opacity) {\n const gradStop = Math.floor(p2.getRadius() / p1.getRadius());\n const color1 = p1.getFillColor();\n const color2 = p2.getFillColor();\n if (!color1 || !color2) {\n return;\n }\n const sourcePos = p1.getPosition();\n const destPos = p2.getPosition();\n const midRgb = (0, ColorUtils_1.colorMix)(color1, color2, p1.getRadius(), p2.getRadius());\n const grad = context.createLinearGradient(sourcePos.x, sourcePos.y, destPos.x, destPos.y);\n grad.addColorStop(0, (0, ColorUtils_1.getStyleFromHsl)(color1, opacity));\n grad.addColorStop(gradStop > 1 ? 1 : gradStop, (0, ColorUtils_1.getStyleFromRgb)(midRgb, opacity));\n grad.addColorStop(1, (0, ColorUtils_1.getStyleFromHsl)(color2, opacity));\n return grad;\n}\nexports.gradient = gradient;\nfunction drawGrabLine(context, width, begin, end, colorLine, opacity) {\n context.save();\n drawLine(context, begin, end);\n context.strokeStyle = (0, ColorUtils_1.getStyleFromRgb)(colorLine, opacity);\n context.lineWidth = width;\n context.stroke();\n context.restore();\n}\nexports.drawGrabLine = drawGrabLine;\nfunction drawParticle(container, context, particle, delta, fillColorValue, strokeColorValue, backgroundMask, composite, radius, opacity, shadow, gradient) {\n var _a, _b, _c, _d, _e, _f;\n const pos = particle.getPosition();\n const tiltOptions = particle.options.tilt;\n const rollOptions = particle.options.roll;\n context.save();\n if (tiltOptions.enable || rollOptions.enable) {\n const roll = rollOptions.enable && particle.roll;\n const tilt = tiltOptions.enable && particle.tilt;\n const rollHorizontal = roll && (rollOptions.mode === Enums_1.RollMode.horizontal || rollOptions.mode === Enums_1.RollMode.both);\n const rollVertical = roll && (rollOptions.mode === Enums_1.RollMode.vertical || rollOptions.mode === Enums_1.RollMode.both);\n context.setTransform(rollHorizontal ? Math.cos(particle.roll.angle) : 1, tilt ? Math.cos(particle.tilt.value) * particle.tilt.cosDirection : 0, tilt ? Math.sin(particle.tilt.value) * particle.tilt.sinDirection : 0, rollVertical ? Math.sin(particle.roll.angle) : 1, pos.x, pos.y);\n }\n else {\n context.translate(pos.x, pos.y);\n }\n context.beginPath();\n const angle = ((_b = (_a = particle.rotate) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : 0) + (particle.options.rotate.path ? particle.velocity.angle : 0);\n if (angle !== 0) {\n context.rotate(angle);\n }\n if (backgroundMask) {\n context.globalCompositeOperation = composite;\n }\n const shadowColor = particle.shadowColor;\n if (shadow.enable && shadowColor) {\n context.shadowBlur = shadow.blur;\n context.shadowColor = (0, ColorUtils_1.getStyleFromRgb)(shadowColor);\n context.shadowOffsetX = shadow.offset.x;\n context.shadowOffsetY = shadow.offset.y;\n }\n if (gradient) {\n const gradientAngle = gradient.angle.value;\n const fillGradient = gradient.type === Enums_1.GradientType.radial\n ? context.createRadialGradient(0, 0, 0, 0, 0, radius)\n : context.createLinearGradient(Math.cos(gradientAngle) * -radius, Math.sin(gradientAngle) * -radius, Math.cos(gradientAngle) * radius, Math.sin(gradientAngle) * radius);\n for (const color of gradient.colors) {\n fillGradient.addColorStop(color.stop, (0, ColorUtils_1.getStyleFromHsl)({\n h: color.value.h.value,\n s: color.value.s.value,\n l: color.value.l.value,\n }, (_d = (_c = color.opacity) === null || _c === void 0 ? void 0 : _c.value) !== null && _d !== void 0 ? _d : opacity));\n }\n context.fillStyle = fillGradient;\n }\n else {\n if (fillColorValue) {\n context.fillStyle = fillColorValue;\n }\n }\n const stroke = particle.stroke;\n context.lineWidth = (_e = particle.strokeWidth) !== null && _e !== void 0 ? _e : 0;\n if (strokeColorValue) {\n context.strokeStyle = strokeColorValue;\n }\n drawShape(container, context, particle, radius, opacity, delta);\n if (((_f = stroke === null || stroke === void 0 ? void 0 : stroke.width) !== null && _f !== void 0 ? _f : 0) > 0) {\n context.stroke();\n }\n if (particle.close) {\n context.closePath();\n }\n if (particle.fill) {\n context.fill();\n }\n context.restore();\n context.save();\n if (tiltOptions.enable && particle.tilt) {\n context.setTransform(1, Math.cos(particle.tilt.value) * particle.tilt.cosDirection, Math.sin(particle.tilt.value) * particle.tilt.sinDirection, 1, pos.x, pos.y);\n }\n else {\n context.translate(pos.x, pos.y);\n }\n if (angle !== 0) {\n context.rotate(angle);\n }\n if (backgroundMask) {\n context.globalCompositeOperation = composite;\n }\n drawShapeAfterEffect(container, context, particle, radius, opacity, delta);\n context.restore();\n}\nexports.drawParticle = drawParticle;\nfunction drawShape(container, context, particle, radius, opacity, delta) {\n if (!particle.shape) {\n return;\n }\n const drawer = container.drawers.get(particle.shape);\n if (!drawer) {\n return;\n }\n drawer.draw(context, particle, radius, opacity, delta, container.retina.pixelRatio);\n}\nexports.drawShape = drawShape;\nfunction drawShapeAfterEffect(container, context, particle, radius, opacity, delta) {\n if (!particle.shape) {\n return;\n }\n const drawer = container.drawers.get(particle.shape);\n if (!(drawer === null || drawer === void 0 ? void 0 : drawer.afterEffect)) {\n return;\n }\n drawer.afterEffect(context, particle, radius, opacity, delta, container.retina.pixelRatio);\n}\nexports.drawShapeAfterEffect = drawShapeAfterEffect;\nfunction drawPlugin(context, plugin, delta) {\n if (!plugin.draw) {\n return;\n }\n context.save();\n plugin.draw(context, delta);\n context.restore();\n}\nexports.drawPlugin = drawPlugin;\nfunction drawParticlePlugin(context, plugin, particle, delta) {\n if (plugin.drawParticle !== undefined) {\n context.save();\n plugin.drawParticle(context, particle, delta);\n context.restore();\n }\n}\nexports.drawParticlePlugin = drawParticlePlugin;\nfunction drawEllipse(context, particle, fillColorValue, radius, opacity, width, rotation, start, end) {\n const pos = particle.getPosition();\n if (fillColorValue) {\n context.strokeStyle = (0, ColorUtils_1.getStyleFromHsl)(fillColorValue, opacity);\n }\n if (width === 0) {\n return;\n }\n context.lineWidth = width;\n const rotationRadian = (rotation * Math.PI) / 180;\n context.beginPath();\n context.ellipse(pos.x, pos.y, radius / 2, radius * 2, rotationRadian, start, end);\n context.stroke();\n}\nexports.drawEllipse = drawEllipse;\nfunction alterHsl(color, type, value) {\n return {\n h: color.h,\n s: color.s,\n l: color.l + (type === Enums_1.AlterType.darken ? -1 : 1) * value,\n };\n}\nexports.alterHsl = alterHsl;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXRpbHMvQ2FudmFzVXRpbHMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsZ0JBQWdCLEdBQUcsbUJBQW1CLEdBQUcsMEJBQTBCLEdBQUcsa0JBQWtCLEdBQUcsNEJBQTRCLEdBQUcsaUJBQWlCLEdBQUcsb0JBQW9CLEdBQUcsb0JBQW9CLEdBQUcsZ0JBQWdCLEdBQUcsdUJBQXVCLEdBQUcsd0JBQXdCLEdBQUcsb0JBQW9CLEdBQUcsYUFBYSxHQUFHLGlCQUFpQjtBQUM1VCxzQkFBc0IsbUJBQU8sQ0FBQyxzRUFBZTtBQUM3QyxxQkFBcUIsbUJBQU8sQ0FBQyxvRUFBYztBQUMzQyxnQkFBZ0IsbUJBQU8sQ0FBQywyREFBVTtBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0I7QUFDcEIsb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCO0FBQ3hCLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QjtBQUM1Qiw0QkFBNEI7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUI7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEI7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQjtBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXRpbHMvQ2FudmFzVXRpbHMuanM/YTExZiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuYWx0ZXJIc2wgPSBleHBvcnRzLmRyYXdFbGxpcHNlID0gZXhwb3J0cy5kcmF3UGFydGljbGVQbHVnaW4gPSBleHBvcnRzLmRyYXdQbHVnaW4gPSBleHBvcnRzLmRyYXdTaGFwZUFmdGVyRWZmZWN0ID0gZXhwb3J0cy5kcmF3U2hhcGUgPSBleHBvcnRzLmRyYXdQYXJ0aWNsZSA9IGV4cG9ydHMuZHJhd0dyYWJMaW5lID0gZXhwb3J0cy5ncmFkaWVudCA9IGV4cG9ydHMuZHJhd0Nvbm5lY3RMaW5lID0gZXhwb3J0cy5kcmF3TGlua1RyaWFuZ2xlID0gZXhwb3J0cy5kcmF3TGlua0xpbmUgPSBleHBvcnRzLmNsZWFyID0gZXhwb3J0cy5wYWludEJhc2UgPSB2b2lkIDA7XG5jb25zdCBOdW1iZXJVdGlsc18xID0gcmVxdWlyZShcIi4vTnVtYmVyVXRpbHNcIik7XG5jb25zdCBDb2xvclV0aWxzXzEgPSByZXF1aXJlKFwiLi9Db2xvclV0aWxzXCIpO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuLi9FbnVtc1wiKTtcbmZ1bmN0aW9uIGRyYXdMaW5lKGNvbnRleHQsIGJlZ2luLCBlbmQpIHtcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xuICAgIGNvbnRleHQubW92ZVRvKGJlZ2luLngsIGJlZ2luLnkpO1xuICAgIGNvbnRleHQubGluZVRvKGVuZC54LCBlbmQueSk7XG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcbn1cbmZ1bmN0aW9uIGRyYXdUcmlhbmdsZShjb250ZXh0LCBwMSwgcDIsIHAzKSB7XG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcbiAgICBjb250ZXh0Lm1vdmVUbyhwMS54LCBwMS55KTtcbiAgICBjb250ZXh0LmxpbmVUbyhwMi54LCBwMi55KTtcbiAgICBjb250ZXh0LmxpbmVUbyhwMy54LCBwMy55KTtcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xufVxuZnVuY3Rpb24gcGFpbnRCYXNlKGNvbnRleHQsIGRpbWVuc2lvbiwgYmFzZUNvbG9yKSB7XG4gICAgY29udGV4dC5zYXZlKCk7XG4gICAgY29udGV4dC5maWxsU3R5bGUgPSBiYXNlQ29sb3IgIT09IG51bGwgJiYgYmFzZUNvbG9yICE9PSB2b2lkIDAgPyBiYXNlQ29sb3IgOiBcInJnYmEoMCwwLDAsMClcIjtcbiAgICBjb250ZXh0LmZpbGxSZWN0KDAsIDAsIGRpbWVuc2lvbi53aWR0aCwgZGltZW5zaW9uLmhlaWdodCk7XG4gICAgY29udGV4dC5yZXN0b3JlKCk7XG59XG5leHBvcnRzLnBhaW50QmFzZSA9IHBhaW50QmFzZTtcbmZ1bmN0aW9uIGNsZWFyKGNvbnRleHQsIGRpbWVuc2lvbikge1xuICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIGRpbWVuc2lvbi53aWR0aCwgZGltZW5zaW9uLmhlaWdodCk7XG59XG5leHBvcnRzLmNsZWFyID0gY2xlYXI7XG5mdW5jdGlvbiBkcmF3TGlua0xpbmUoY29udGV4dCwgd2lkdGgsIGJlZ2luLCBlbmQsIG1heERpc3RhbmNlLCBjYW52YXNTaXplLCB3YXJwLCBiYWNrZ3JvdW5kTWFzaywgY29tcG9zaXRlLCBjb2xvckxpbmUsIG9wYWNpdHksIHNoYWRvdykge1xuICAgIGxldCBkcmF3biA9IGZhbHNlO1xuICAgIGlmICgoMCwgTnVtYmVyVXRpbHNfMS5nZXREaXN0YW5jZSkoYmVnaW4sIGVuZCkgPD0gbWF4RGlzdGFuY2UpIHtcbiAgICAgICAgZHJhd0xpbmUoY29udGV4dCwgYmVnaW4sIGVuZCk7XG4gICAgICAgIGRyYXduID0gdHJ1ZTtcbiAgICB9XG4gICAgZWxzZSBpZiAod2FycCkge1xuICAgICAgICBsZXQgcGkxO1xuICAgICAgICBsZXQgcGkyO1xuICAgICAgICBjb25zdCBlbmRORSA9IHtcbiAgICAgICAgICAgIHg6IGVuZC54IC0gY2FudmFzU2l6ZS53aWR0aCxcbiAgICAgICAgICAgIHk6IGVuZC55LFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBkMSA9ICgwLCBOdW1iZXJVdGlsc18xLmdldERpc3RhbmNlcykoYmVnaW4sIGVuZE5FKTtcbiAgICAgICAgaWYgKGQxLmRpc3RhbmNlIDw9IG1heERpc3RhbmNlKSB7XG4gICAgICAgICAgICBjb25zdCB5aSA9IGJlZ2luLnkgLSAoZDEuZHkgLyBkMS5keCkgKiBiZWdpbi54O1xuICAgICAgICAgICAgcGkxID0geyB4OiAwLCB5OiB5aSB9O1xuICAgICAgICAgICAgcGkyID0geyB4OiBjYW52YXNTaXplLndpZHRoLCB5OiB5aSB9O1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZW5kU1cgPSB7XG4gICAgICAgICAgICAgICAgeDogZW5kLngsXG4gICAgICAgICAgICAgICAgeTogZW5kLnkgLSBjYW52YXNTaXplLmhlaWdodCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjb25zdCBkMiA9ICgwLCBOdW1iZXJVdGlsc18xLmdldERpc3RhbmNlcykoYmVnaW4sIGVuZFNXKTtcbiAgICAgICAgICAgIGlmIChkMi5kaXN0YW5jZSA8PSBtYXhEaXN0YW5jZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHlpID0gYmVnaW4ueSAtIChkMi5keSAvIGQyLmR4KSAqIGJlZ2luLng7XG4gICAgICAgICAgICAgICAgY29uc3QgeGkgPSAteWkgLyAoZDIuZHkgLyBkMi5keCk7XG4gICAgICAgICAgICAgICAgcGkxID0geyB4OiB4aSwgeTogMCB9O1xuICAgICAgICAgICAgICAgIHBpMiA9IHsgeDogeGksIHk6IGNhbnZhc1NpemUuaGVpZ2h0IH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlbmRTRSA9IHtcbiAgICAgICAgICAgICAgICAgICAgeDogZW5kLnggLSBjYW52YXNTaXplLndpZHRoLFxuICAgICAgICAgICAgICAgICAgICB5OiBlbmQueSAtIGNhbnZhc1NpemUuaGVpZ2h0LFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3QgZDMgPSAoMCwgTnVtYmVyVXRpbHNfMS5nZXREaXN0YW5jZXMpKGJlZ2luLCBlbmRTRSk7XG4gICAgICAgICAgICAgICAgaWYgKGQzLmRpc3RhbmNlIDw9IG1heERpc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHlpID0gYmVnaW4ueSAtIChkMy5keSAvIGQzLmR4KSAqIGJlZ2luLng7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHhpID0gLXlpIC8gKGQzLmR5IC8gZDMuZHgpO1xuICAgICAgICAgICAgICAgICAgICBwaTEgPSB7IHg6IHhpLCB5OiB5aSB9O1xuICAgICAgICAgICAgICAgICAgICBwaTIgPSB7IHg6IHBpMS54ICsgY2FudmFzU2l6ZS53aWR0aCwgeTogcGkxLnkgKyBjYW52YXNTaXplLmhlaWdodCB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAocGkxICYmIHBpMikge1xuICAgICAgICAgICAgZHJhd0xpbmUoY29udGV4dCwgYmVnaW4sIHBpMSk7XG4gICAgICAgICAgICBkcmF3TGluZShjb250ZXh0LCBlbmQsIHBpMik7XG4gICAgICAgICAgICBkcmF3biA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFkcmF3bikge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnRleHQubGluZVdpZHRoID0gd2lkdGg7XG4gICAgaWYgKGJhY2tncm91bmRNYXNrKSB7XG4gICAgICAgIGNvbnRleHQuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uID0gY29tcG9zaXRlO1xuICAgIH1cbiAgICBjb250ZXh0LnN0cm9rZVN0eWxlID0gKDAsIENvbG9yVXRpbHNfMS5nZXRTdHlsZUZyb21SZ2IpKGNvbG9yTGluZSwgb3BhY2l0eSk7XG4gICAgaWYgKHNoYWRvdy5lbmFibGUpIHtcbiAgICAgICAgY29uc3Qgc2hhZG93Q29sb3IgPSAoMCwgQ29sb3JVdGlsc18xLmNvbG9yVG9SZ2IpKHNoYWRvdy5jb2xvcik7XG4gICAgICAgIGlmIChzaGFkb3dDb2xvcikge1xuICAgICAgICAgICAgY29udGV4dC5zaGFkb3dCbHVyID0gc2hhZG93LmJsdXI7XG4gICAgICAgICAgICBjb250ZXh0LnNoYWRvd0NvbG9yID0gKDAsIENvbG9yVXRpbHNfMS5nZXRTdHlsZUZyb21SZ2IpKHNoYWRvd0NvbG9yKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb250ZXh0LnN0cm9rZSgpO1xufVxuZXhwb3J0cy5kcmF3TGlua0xpbmUgPSBkcmF3TGlua0xpbmU7XG5mdW5jdGlvbiBkcmF3TGlua1RyaWFuZ2xlKGNvbnRleHQsIHBvczEsIHBvczIsIHBvczMsIGJhY2tncm91bmRNYXNrLCBjb21wb3NpdGUsIGNvbG9yVHJpYW5nbGUsIG9wYWNpdHlUcmlhbmdsZSkge1xuICAgIGRyYXdUcmlhbmdsZShjb250ZXh0LCBwb3MxLCBwb3MyLCBwb3MzKTtcbiAgICBpZiAoYmFja2dyb3VuZE1hc2spIHtcbiAgICAgICAgY29udGV4dC5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb24gPSBjb21wb3NpdGU7XG4gICAgfVxuICAgIGNvbnRleHQuZmlsbFN0eWxlID0gKDAsIENvbG9yVXRpbHNfMS5nZXRTdHlsZUZyb21SZ2IpKGNvbG9yVHJpYW5nbGUsIG9wYWNpdHlUcmlhbmdsZSk7XG4gICAgY29udGV4dC5maWxsKCk7XG59XG5leHBvcnRzLmRyYXdMaW5rVHJpYW5nbGUgPSBkcmF3TGlua1RyaWFuZ2xlO1xuZnVuY3Rpb24gZHJhd0Nvbm5lY3RMaW5lKGNvbnRleHQsIHdpZHRoLCBsaW5lU3R5bGUsIGJlZ2luLCBlbmQpIHtcbiAgICBjb250ZXh0LnNhdmUoKTtcbiAgICBkcmF3TGluZShjb250ZXh0LCBiZWdpbiwgZW5kKTtcbiAgICBjb250ZXh0LmxpbmVXaWR0aCA9IHdpZHRoO1xuICAgIGNvbnRleHQuc3Ryb2tlU3R5bGUgPSBsaW5lU3R5bGU7XG4gICAgY29udGV4dC5zdHJva2UoKTtcbiAgICBjb250ZXh0LnJlc3RvcmUoKTtcbn1cbmV4cG9ydHMuZHJhd0Nvbm5lY3RMaW5lID0gZHJhd0Nvbm5lY3RMaW5lO1xuZnVuY3Rpb24gZ3JhZGllbnQoY29udGV4dCwgcDEsIHAyLCBvcGFjaXR5KSB7XG4gICAgY29uc3QgZ3JhZFN0b3AgPSBNYXRoLmZsb29yKHAyLmdldFJhZGl1cygpIC8gcDEuZ2V0UmFkaXVzKCkpO1xuICAgIGNvbnN0IGNvbG9yMSA9IHAxLmdldEZpbGxDb2xvcigpO1xuICAgIGNvbnN0IGNvbG9yMiA9IHAyLmdldEZpbGxDb2xvcigpO1xuICAgIGlmICghY29sb3IxIHx8ICFjb2xvcjIpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBzb3VyY2VQb3MgPSBwMS5nZXRQb3NpdGlvbigpO1xuICAgIGNvbnN0IGRlc3RQb3MgPSBwMi5nZXRQb3NpdGlvbigpO1xuICAgIGNvbnN0IG1pZFJnYiA9ICgwLCBDb2xvclV0aWxzXzEuY29sb3JNaXgpKGNvbG9yMSwgY29sb3IyLCBwMS5nZXRSYWRpdXMoKSwgcDIuZ2V0UmFkaXVzKCkpO1xuICAgIGNvbnN0IGdyYWQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KHNvdXJjZVBvcy54LCBzb3VyY2VQb3MueSwgZGVzdFBvcy54LCBkZXN0UG9zLnkpO1xuICAgIGdyYWQuYWRkQ29sb3JTdG9wKDAsICgwLCBDb2xvclV0aWxzXzEuZ2V0U3R5bGVGcm9tSHNsKShjb2xvcjEsIG9wYWNpdHkpKTtcbiAgICBncmFkLmFkZENvbG9yU3RvcChncmFkU3RvcCA+IDEgPyAxIDogZ3JhZFN0b3AsICgwLCBDb2xvclV0aWxzXzEuZ2V0U3R5bGVGcm9tUmdiKShtaWRSZ2IsIG9wYWNpdHkpKTtcbiAgICBncmFkLmFkZENvbG9yU3RvcCgxLCAoMCwgQ29sb3JVdGlsc18xLmdldFN0eWxlRnJvbUhzbCkoY29sb3IyLCBvcGFjaXR5KSk7XG4gICAgcmV0dXJuIGdyYWQ7XG59XG5leHBvcnRzLmdyYWRpZW50ID0gZ3JhZGllbnQ7XG5mdW5jdGlvbiBkcmF3R3JhYkxpbmUoY29udGV4dCwgd2lkdGgsIGJlZ2luLCBlbmQsIGNvbG9yTGluZSwgb3BhY2l0eSkge1xuICAgIGNvbnRleHQuc2F2ZSgpO1xuICAgIGRyYXdMaW5lKGNvbnRleHQsIGJlZ2luLCBlbmQpO1xuICAgIGNvbnRleHQuc3Ryb2tlU3R5bGUgPSAoMCwgQ29sb3JVdGlsc18xLmdldFN0eWxlRnJvbVJnYikoY29sb3JMaW5lLCBvcGFjaXR5KTtcbiAgICBjb250ZXh0LmxpbmVXaWR0aCA9IHdpZHRoO1xuICAgIGNvbnRleHQuc3Ryb2tlKCk7XG4gICAgY29udGV4dC5yZXN0b3JlKCk7XG59XG5leHBvcnRzLmRyYXdHcmFiTGluZSA9IGRyYXdHcmFiTGluZTtcbmZ1bmN0aW9uIGRyYXdQYXJ0aWNsZShjb250YWluZXIsIGNvbnRleHQsIHBhcnRpY2xlLCBkZWx0YSwgZmlsbENvbG9yVmFsdWUsIHN0cm9rZUNvbG9yVmFsdWUsIGJhY2tncm91bmRNYXNrLCBjb21wb3NpdGUsIHJhZGl1cywgb3BhY2l0eSwgc2hhZG93LCBncmFkaWVudCkge1xuICAgIHZhciBfYSwgX2IsIF9jLCBfZCwgX2UsIF9mO1xuICAgIGNvbnN0IHBvcyA9IHBhcnRpY2xlLmdldFBvc2l0aW9uKCk7XG4gICAgY29uc3QgdGlsdE9wdGlvbnMgPSBwYXJ0aWNsZS5vcHRpb25zLnRpbHQ7XG4gICAgY29uc3Qgcm9sbE9wdGlvbnMgPSBwYXJ0aWNsZS5vcHRpb25zLnJvbGw7XG4gICAgY29udGV4dC5zYXZlKCk7XG4gICAgaWYgKHRpbHRPcHRpb25zLmVuYWJsZSB8fCByb2xsT3B0aW9ucy5lbmFibGUpIHtcbiAgICAgICAgY29uc3Qgcm9sbCA9IHJvbGxPcHRpb25zLmVuYWJsZSAmJiBwYXJ0aWNsZS5yb2xsO1xuICAgICAgICBjb25zdCB0aWx0ID0gdGlsdE9wdGlvbnMuZW5hYmxlICYmIHBhcnRpY2xlLnRpbHQ7XG4gICAgICAgIGNvbnN0IHJvbGxIb3Jpem9udGFsID0gcm9sbCAmJiAocm9sbE9wdGlvbnMubW9kZSA9PT0gRW51bXNfMS5Sb2xsTW9kZS5ob3Jpem9udGFsIHx8IHJvbGxPcHRpb25zLm1vZGUgPT09IEVudW1zXzEuUm9sbE1vZGUuYm90aCk7XG4gICAgICAgIGNvbnN0IHJvbGxWZXJ0aWNhbCA9IHJvbGwgJiYgKHJvbGxPcHRpb25zLm1vZGUgPT09IEVudW1zXzEuUm9sbE1vZGUudmVydGljYWwgfHwgcm9sbE9wdGlvbnMubW9kZSA9PT0gRW51bXNfMS5Sb2xsTW9kZS5ib3RoKTtcbiAgICAgICAgY29udGV4dC5zZXRUcmFuc2Zvcm0ocm9sbEhvcml6b250YWwgPyBNYXRoLmNvcyhwYXJ0aWNsZS5yb2xsLmFuZ2xlKSA6IDEsIHRpbHQgPyBNYXRoLmNvcyhwYXJ0aWNsZS50aWx0LnZhbHVlKSAqIHBhcnRpY2xlLnRpbHQuY29zRGlyZWN0aW9uIDogMCwgdGlsdCA/IE1hdGguc2luKHBhcnRpY2xlLnRpbHQudmFsdWUpICogcGFydGljbGUudGlsdC5zaW5EaXJlY3Rpb24gOiAwLCByb2xsVmVydGljYWwgPyBNYXRoLnNpbihwYXJ0aWNsZS5yb2xsLmFuZ2xlKSA6IDEsIHBvcy54LCBwb3MueSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBjb250ZXh0LnRyYW5zbGF0ZShwb3MueCwgcG9zLnkpO1xuICAgIH1cbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xuICAgIGNvbnN0IGFuZ2xlID0gKChfYiA9IChfYSA9IHBhcnRpY2xlLnJvdGF0ZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnZhbHVlKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiAwKSArIChwYXJ0aWNsZS5vcHRpb25zLnJvdGF0ZS5wYXRoID8gcGFydGljbGUudmVsb2NpdHkuYW5nbGUgOiAwKTtcbiAgICBpZiAoYW5nbGUgIT09IDApIHtcbiAgICAgICAgY29udGV4dC5yb3RhdGUoYW5nbGUpO1xuICAgIH1cbiAgICBpZiAoYmFja2dyb3VuZE1hc2spIHtcbiAgICAgICAgY29udGV4dC5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb24gPSBjb21wb3NpdGU7XG4gICAgfVxuICAgIGNvbnN0IHNoYWRvd0NvbG9yID0gcGFydGljbGUuc2hhZG93Q29sb3I7XG4gICAgaWYgKHNoYWRvdy5lbmFibGUgJiYgc2hhZG93Q29sb3IpIHtcbiAgICAgICAgY29udGV4dC5zaGFkb3dCbHVyID0gc2hhZG93LmJsdXI7XG4gICAgICAgIGNvbnRleHQuc2hhZG93Q29sb3IgPSAoMCwgQ29sb3JVdGlsc18xLmdldFN0eWxlRnJvbVJnYikoc2hhZG93Q29sb3IpO1xuICAgICAgICBjb250ZXh0LnNoYWRvd09mZnNldFggPSBzaGFkb3cub2Zmc2V0Lng7XG4gICAgICAgIGNvbnRleHQuc2hhZG93T2Zmc2V0WSA9IHNoYWRvdy5vZmZzZXQueTtcbiAgICB9XG4gICAgaWYgKGdyYWRpZW50KSB7XG4gICAgICAgIGNvbnN0IGdyYWRpZW50QW5nbGUgPSBncmFkaWVudC5hbmdsZS52YWx1ZTtcbiAgICAgICAgY29uc3QgZmlsbEdyYWRpZW50ID0gZ3JhZGllbnQudHlwZSA9PT0gRW51bXNfMS5HcmFkaWVudFR5cGUucmFkaWFsXG4gICAgICAgICAgICA/IGNvbnRleHQuY3JlYXRlUmFkaWFsR3JhZGllbnQoMCwgMCwgMCwgMCwgMCwgcmFkaXVzKVxuICAgICAgICAgICAgOiBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KE1hdGguY29zKGdyYWRpZW50QW5nbGUpICogLXJhZGl1cywgTWF0aC5zaW4oZ3JhZGllbnRBbmdsZSkgKiAtcmFkaXVzLCBNYXRoLmNvcyhncmFkaWVudEFuZ2xlKSAqIHJhZGl1cywgTWF0aC5zaW4oZ3JhZGllbnRBbmdsZSkgKiByYWRpdXMpO1xuICAgICAgICBmb3IgKGNvbnN0IGNvbG9yIG9mIGdyYWRpZW50LmNvbG9ycykge1xuICAgICAgICAgICAgZmlsbEdyYWRpZW50LmFkZENvbG9yU3RvcChjb2xvci5zdG9wLCAoMCwgQ29sb3JVdGlsc18xLmdldFN0eWxlRnJvbUhzbCkoe1xuICAgICAgICAgICAgICAgIGg6IGNvbG9yLnZhbHVlLmgudmFsdWUsXG4gICAgICAgICAgICAgICAgczogY29sb3IudmFsdWUucy52YWx1ZSxcbiAgICAgICAgICAgICAgICBsOiBjb2xvci52YWx1ZS5sLnZhbHVlLFxuICAgICAgICAgICAgfSwgKF9kID0gKF9jID0gY29sb3Iub3BhY2l0eSkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLnZhbHVlKSAhPT0gbnVsbCAmJiBfZCAhPT0gdm9pZCAwID8gX2QgOiBvcGFjaXR5KSk7XG4gICAgICAgIH1cbiAgICAgICAgY29udGV4dC5maWxsU3R5bGUgPSBmaWxsR3JhZGllbnQ7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBpZiAoZmlsbENvbG9yVmFsdWUpIHtcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFN0eWxlID0gZmlsbENvbG9yVmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3Qgc3Ryb2tlID0gcGFydGljbGUuc3Ryb2tlO1xuICAgIGNvbnRleHQubGluZVdpZHRoID0gKF9lID0gcGFydGljbGUuc3Ryb2tlV2lkdGgpICE9PSBudWxsICYmIF9lICE9PSB2b2lkIDAgPyBfZSA6IDA7XG4gICAgaWYgKHN0cm9rZUNvbG9yVmFsdWUpIHtcbiAgICAgICAgY29udGV4dC5zdHJva2VTdHlsZSA9IHN0cm9rZUNvbG9yVmFsdWU7XG4gICAgfVxuICAgIGRyYXdTaGFwZShjb250YWluZXIsIGNvbnRleHQsIHBhcnRpY2xlLCByYWRpdXMsIG9wYWNpdHksIGRlbHRhKTtcbiAgICBpZiAoKChfZiA9IHN0cm9rZSA9PT0gbnVsbCB8fCBzdHJva2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHN0cm9rZS53aWR0aCkgIT09IG51bGwgJiYgX2YgIT09IHZvaWQgMCA/IF9mIDogMCkgPiAwKSB7XG4gICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XG4gICAgfVxuICAgIGlmIChwYXJ0aWNsZS5jbG9zZSkge1xuICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xuICAgIH1cbiAgICBpZiAocGFydGljbGUuZmlsbCkge1xuICAgICAgICBjb250ZXh0LmZpbGwoKTtcbiAgICB9XG4gICAgY29udGV4dC5yZXN0b3JlKCk7XG4gICAgY29udGV4dC5zYXZlKCk7XG4gICAgaWYgKHRpbHRPcHRpb25zLmVuYWJsZSAmJiBwYXJ0aWNsZS50aWx0KSB7XG4gICAgICAgIGNvbnRleHQuc2V0VHJhbnNmb3JtKDEsIE1hdGguY29zKHBhcnRpY2xlLnRpbHQudmFsdWUpICogcGFydGljbGUudGlsdC5jb3NEaXJlY3Rpb24sIE1hdGguc2luKHBhcnRpY2xlLnRpbHQudmFsdWUpICogcGFydGljbGUudGlsdC5zaW5EaXJlY3Rpb24sIDEsIHBvcy54LCBwb3MueSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBjb250ZXh0LnRyYW5zbGF0ZShwb3MueCwgcG9zLnkpO1xuICAgIH1cbiAgICBpZiAoYW5nbGUgIT09IDApIHtcbiAgICAgICAgY29udGV4dC5yb3RhdGUoYW5nbGUpO1xuICAgIH1cbiAgICBpZiAoYmFja2dyb3VuZE1hc2spIHtcbiAgICAgICAgY29udGV4dC5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb24gPSBjb21wb3NpdGU7XG4gICAgfVxuICAgIGRyYXdTaGFwZUFmdGVyRWZmZWN0KGNvbnRhaW5lciwgY29udGV4dCwgcGFydGljbGUsIHJhZGl1cywgb3BhY2l0eSwgZGVsdGEpO1xuICAgIGNvbnRleHQucmVzdG9yZSgpO1xufVxuZXhwb3J0cy5kcmF3UGFydGljbGUgPSBkcmF3UGFydGljbGU7XG5mdW5jdGlvbiBkcmF3U2hhcGUoY29udGFpbmVyLCBjb250ZXh0LCBwYXJ0aWNsZSwgcmFkaXVzLCBvcGFjaXR5LCBkZWx0YSkge1xuICAgIGlmICghcGFydGljbGUuc2hhcGUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBkcmF3ZXIgPSBjb250YWluZXIuZHJhd2Vycy5nZXQocGFydGljbGUuc2hhcGUpO1xuICAgIGlmICghZHJhd2VyKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZHJhd2VyLmRyYXcoY29udGV4dCwgcGFydGljbGUsIHJhZGl1cywgb3BhY2l0eSwgZGVsdGEsIGNvbnRhaW5lci5yZXRpbmEucGl4ZWxSYXRpbyk7XG59XG5leHBvcnRzLmRyYXdTaGFwZSA9IGRyYXdTaGFwZTtcbmZ1bmN0aW9uIGRyYXdTaGFwZUFmdGVyRWZmZWN0KGNvbnRhaW5lciwgY29udGV4dCwgcGFydGljbGUsIHJhZGl1cywgb3BhY2l0eSwgZGVsdGEpIHtcbiAgICBpZiAoIXBhcnRpY2xlLnNoYXBlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZHJhd2VyID0gY29udGFpbmVyLmRyYXdlcnMuZ2V0KHBhcnRpY2xlLnNoYXBlKTtcbiAgICBpZiAoIShkcmF3ZXIgPT09IG51bGwgfHwgZHJhd2VyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkcmF3ZXIuYWZ0ZXJFZmZlY3QpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZHJhd2VyLmFmdGVyRWZmZWN0KGNvbnRleHQsIHBhcnRpY2xlLCByYWRpdXMsIG9wYWNpdHksIGRlbHRhLCBjb250YWluZXIucmV0aW5hLnBpeGVsUmF0aW8pO1xufVxuZXhwb3J0cy5kcmF3U2hhcGVBZnRlckVmZmVjdCA9IGRyYXdTaGFwZUFmdGVyRWZmZWN0O1xuZnVuY3Rpb24gZHJhd1BsdWdpbihjb250ZXh0LCBwbHVnaW4sIGRlbHRhKSB7XG4gICAgaWYgKCFwbHVnaW4uZHJhdykge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnRleHQuc2F2ZSgpO1xuICAgIHBsdWdpbi5kcmF3KGNvbnRleHQsIGRlbHRhKTtcbiAgICBjb250ZXh0LnJlc3RvcmUoKTtcbn1cbmV4cG9ydHMuZHJhd1BsdWdpbiA9IGRyYXdQbHVnaW47XG5mdW5jdGlvbiBkcmF3UGFydGljbGVQbHVnaW4oY29udGV4dCwgcGx1Z2luLCBwYXJ0aWNsZSwgZGVsdGEpIHtcbiAgICBpZiAocGx1Z2luLmRyYXdQYXJ0aWNsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnRleHQuc2F2ZSgpO1xuICAgICAgICBwbHVnaW4uZHJhd1BhcnRpY2xlKGNvbnRleHQsIHBhcnRpY2xlLCBkZWx0YSk7XG4gICAgICAgIGNvbnRleHQucmVzdG9yZSgpO1xuICAgIH1cbn1cbmV4cG9ydHMuZHJhd1BhcnRpY2xlUGx1Z2luID0gZHJhd1BhcnRpY2xlUGx1Z2luO1xuZnVuY3Rpb24gZHJhd0VsbGlwc2UoY29udGV4dCwgcGFydGljbGUsIGZpbGxDb2xvclZhbHVlLCByYWRpdXMsIG9wYWNpdHksIHdpZHRoLCByb3RhdGlvbiwgc3RhcnQsIGVuZCkge1xuICAgIGNvbnN0IHBvcyA9IHBhcnRpY2xlLmdldFBvc2l0aW9uKCk7XG4gICAgaWYgKGZpbGxDb2xvclZhbHVlKSB7XG4gICAgICAgIGNvbnRleHQuc3Ryb2tlU3R5bGUgPSAoMCwgQ29sb3JVdGlsc18xLmdldFN0eWxlRnJvbUhzbCkoZmlsbENvbG9yVmFsdWUsIG9wYWNpdHkpO1xuICAgIH1cbiAgICBpZiAod2lkdGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb250ZXh0LmxpbmVXaWR0aCA9IHdpZHRoO1xuICAgIGNvbnN0IHJvdGF0aW9uUmFkaWFuID0gKHJvdGF0aW9uICogTWF0aC5QSSkgLyAxODA7XG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcbiAgICBjb250ZXh0LmVsbGlwc2UocG9zLngsIHBvcy55LCByYWRpdXMgLyAyLCByYWRpdXMgKiAyLCByb3RhdGlvblJhZGlhbiwgc3RhcnQsIGVuZCk7XG4gICAgY29udGV4dC5zdHJva2UoKTtcbn1cbmV4cG9ydHMuZHJhd0VsbGlwc2UgPSBkcmF3RWxsaXBzZTtcbmZ1bmN0aW9uIGFsdGVySHNsKGNvbG9yLCB0eXBlLCB2YWx1ZSkge1xuICAgIHJldHVybiB7XG4gICAgICAgIGg6IGNvbG9yLmgsXG4gICAgICAgIHM6IGNvbG9yLnMsXG4gICAgICAgIGw6IGNvbG9yLmwgKyAodHlwZSA9PT0gRW51bXNfMS5BbHRlclR5cGUuZGFya2VuID8gLTEgOiAxKSAqIHZhbHVlLFxuICAgIH07XG59XG5leHBvcnRzLmFsdGVySHNsID0gYWx0ZXJIc2w7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Utils/CanvasUtils.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Utils/Circle.js": +/*!**************************************************!*\ + !*** ./node_modules/tsparticles/Utils/Circle.js ***! + \**************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Circle = void 0;\nconst Range_1 = __webpack_require__(/*! ./Range */ \"./node_modules/tsparticles/Utils/Range.js\");\nconst NumberUtils_1 = __webpack_require__(/*! ./NumberUtils */ \"./node_modules/tsparticles/Utils/NumberUtils.js\");\nclass Circle extends Range_1.Range {\n constructor(x, y, radius) {\n super(x, y);\n this.radius = radius;\n }\n contains(point) {\n return (0, NumberUtils_1.getDistance)(point, this.position) <= this.radius;\n }\n intersects(range) {\n const rect = range;\n const circle = range;\n const pos1 = this.position;\n const pos2 = range.position;\n const xDist = Math.abs(pos2.x - pos1.x);\n const yDist = Math.abs(pos2.y - pos1.y);\n const r = this.radius;\n if (circle.radius !== undefined) {\n const rSum = r + circle.radius;\n const dist = Math.sqrt(xDist * xDist + yDist + yDist);\n return rSum > dist;\n }\n else if (rect.size !== undefined) {\n const w = rect.size.width;\n const h = rect.size.height;\n const edges = Math.pow(xDist - w, 2) + Math.pow(yDist - h, 2);\n if (xDist > r + w || yDist > r + h) {\n return false;\n }\n if (xDist <= w || yDist <= h) {\n return true;\n }\n return edges <= r * r;\n }\n return false;\n }\n}\nexports.Circle = Circle;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXRpbHMvQ2lyY2xlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGNBQWM7QUFDZCxnQkFBZ0IsbUJBQU8sQ0FBQywwREFBUztBQUNqQyxzQkFBc0IsbUJBQU8sQ0FBQyxzRUFBZTtBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9VdGlscy9DaXJjbGUuanM/YTdhNiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuQ2lyY2xlID0gdm9pZCAwO1xuY29uc3QgUmFuZ2VfMSA9IHJlcXVpcmUoXCIuL1JhbmdlXCIpO1xuY29uc3QgTnVtYmVyVXRpbHNfMSA9IHJlcXVpcmUoXCIuL051bWJlclV0aWxzXCIpO1xuY2xhc3MgQ2lyY2xlIGV4dGVuZHMgUmFuZ2VfMS5SYW5nZSB7XG4gICAgY29uc3RydWN0b3IoeCwgeSwgcmFkaXVzKSB7XG4gICAgICAgIHN1cGVyKHgsIHkpO1xuICAgICAgICB0aGlzLnJhZGl1cyA9IHJhZGl1cztcbiAgICB9XG4gICAgY29udGFpbnMocG9pbnQpIHtcbiAgICAgICAgcmV0dXJuICgwLCBOdW1iZXJVdGlsc18xLmdldERpc3RhbmNlKShwb2ludCwgdGhpcy5wb3NpdGlvbikgPD0gdGhpcy5yYWRpdXM7XG4gICAgfVxuICAgIGludGVyc2VjdHMocmFuZ2UpIHtcbiAgICAgICAgY29uc3QgcmVjdCA9IHJhbmdlO1xuICAgICAgICBjb25zdCBjaXJjbGUgPSByYW5nZTtcbiAgICAgICAgY29uc3QgcG9zMSA9IHRoaXMucG9zaXRpb247XG4gICAgICAgIGNvbnN0IHBvczIgPSByYW5nZS5wb3NpdGlvbjtcbiAgICAgICAgY29uc3QgeERpc3QgPSBNYXRoLmFicyhwb3MyLnggLSBwb3MxLngpO1xuICAgICAgICBjb25zdCB5RGlzdCA9IE1hdGguYWJzKHBvczIueSAtIHBvczEueSk7XG4gICAgICAgIGNvbnN0IHIgPSB0aGlzLnJhZGl1cztcbiAgICAgICAgaWYgKGNpcmNsZS5yYWRpdXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29uc3QgclN1bSA9IHIgKyBjaXJjbGUucmFkaXVzO1xuICAgICAgICAgICAgY29uc3QgZGlzdCA9IE1hdGguc3FydCh4RGlzdCAqIHhEaXN0ICsgeURpc3QgKyB5RGlzdCk7XG4gICAgICAgICAgICByZXR1cm4gclN1bSA+IGRpc3Q7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAocmVjdC5zaXplICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHcgPSByZWN0LnNpemUud2lkdGg7XG4gICAgICAgICAgICBjb25zdCBoID0gcmVjdC5zaXplLmhlaWdodDtcbiAgICAgICAgICAgIGNvbnN0IGVkZ2VzID0gTWF0aC5wb3coeERpc3QgLSB3LCAyKSArIE1hdGgucG93KHlEaXN0IC0gaCwgMik7XG4gICAgICAgICAgICBpZiAoeERpc3QgPiByICsgdyB8fCB5RGlzdCA+IHIgKyBoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHhEaXN0IDw9IHcgfHwgeURpc3QgPD0gaCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGVkZ2VzIDw9IHIgKiByO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG5leHBvcnRzLkNpcmNsZSA9IENpcmNsZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Utils/Circle.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Utils/CircleWarp.js": +/*!******************************************************!*\ + !*** ./node_modules/tsparticles/Utils/CircleWarp.js ***! + \******************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.CircleWarp = void 0;\nconst Rectangle_1 = __webpack_require__(/*! ./Rectangle */ \"./node_modules/tsparticles/Utils/Rectangle.js\");\nconst Circle_1 = __webpack_require__(/*! ./Circle */ \"./node_modules/tsparticles/Utils/Circle.js\");\nclass CircleWarp extends Circle_1.Circle {\n constructor(x, y, radius, canvasSize) {\n super(x, y, radius);\n this.canvasSize = canvasSize;\n this.canvasSize = {\n height: canvasSize.height,\n width: canvasSize.width,\n };\n }\n contains(point) {\n if (super.contains(point)) {\n return true;\n }\n const posNE = {\n x: point.x - this.canvasSize.width,\n y: point.y,\n };\n if (super.contains(posNE)) {\n return true;\n }\n const posSE = {\n x: point.x - this.canvasSize.width,\n y: point.y - this.canvasSize.height,\n };\n if (super.contains(posSE)) {\n return true;\n }\n const posSW = {\n x: point.x,\n y: point.y - this.canvasSize.height,\n };\n return super.contains(posSW);\n }\n intersects(range) {\n if (super.intersects(range)) {\n return true;\n }\n const rect = range;\n const circle = range;\n const newPos = {\n x: range.position.x - this.canvasSize.width,\n y: range.position.y - this.canvasSize.height,\n };\n if (circle.radius !== undefined) {\n const biggerCircle = new Circle_1.Circle(newPos.x, newPos.y, circle.radius * 2);\n return super.intersects(biggerCircle);\n }\n else if (rect.size !== undefined) {\n const rectSW = new Rectangle_1.Rectangle(newPos.x, newPos.y, rect.size.width * 2, rect.size.height * 2);\n return super.intersects(rectSW);\n }\n return false;\n }\n}\nexports.CircleWarp = CircleWarp;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXRpbHMvQ2lyY2xlV2FycC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxrQkFBa0I7QUFDbEIsb0JBQW9CLG1CQUFPLENBQUMsa0VBQWE7QUFDekMsaUJBQWlCLG1CQUFPLENBQUMsNERBQVU7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9VdGlscy9DaXJjbGVXYXJwLmpzP2E4OTgiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkNpcmNsZVdhcnAgPSB2b2lkIDA7XG5jb25zdCBSZWN0YW5nbGVfMSA9IHJlcXVpcmUoXCIuL1JlY3RhbmdsZVwiKTtcbmNvbnN0IENpcmNsZV8xID0gcmVxdWlyZShcIi4vQ2lyY2xlXCIpO1xuY2xhc3MgQ2lyY2xlV2FycCBleHRlbmRzIENpcmNsZV8xLkNpcmNsZSB7XG4gICAgY29uc3RydWN0b3IoeCwgeSwgcmFkaXVzLCBjYW52YXNTaXplKSB7XG4gICAgICAgIHN1cGVyKHgsIHksIHJhZGl1cyk7XG4gICAgICAgIHRoaXMuY2FudmFzU2l6ZSA9IGNhbnZhc1NpemU7XG4gICAgICAgIHRoaXMuY2FudmFzU2l6ZSA9IHtcbiAgICAgICAgICAgIGhlaWdodDogY2FudmFzU2l6ZS5oZWlnaHQsXG4gICAgICAgICAgICB3aWR0aDogY2FudmFzU2l6ZS53aWR0aCxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgY29udGFpbnMocG9pbnQpIHtcbiAgICAgICAgaWYgKHN1cGVyLmNvbnRhaW5zKHBvaW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcG9zTkUgPSB7XG4gICAgICAgICAgICB4OiBwb2ludC54IC0gdGhpcy5jYW52YXNTaXplLndpZHRoLFxuICAgICAgICAgICAgeTogcG9pbnQueSxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHN1cGVyLmNvbnRhaW5zKHBvc05FKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcG9zU0UgPSB7XG4gICAgICAgICAgICB4OiBwb2ludC54IC0gdGhpcy5jYW52YXNTaXplLndpZHRoLFxuICAgICAgICAgICAgeTogcG9pbnQueSAtIHRoaXMuY2FudmFzU2l6ZS5oZWlnaHQsXG4gICAgICAgIH07XG4gICAgICAgIGlmIChzdXBlci5jb250YWlucyhwb3NTRSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBvc1NXID0ge1xuICAgICAgICAgICAgeDogcG9pbnQueCxcbiAgICAgICAgICAgIHk6IHBvaW50LnkgLSB0aGlzLmNhbnZhc1NpemUuaGVpZ2h0LFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gc3VwZXIuY29udGFpbnMocG9zU1cpO1xuICAgIH1cbiAgICBpbnRlcnNlY3RzKHJhbmdlKSB7XG4gICAgICAgIGlmIChzdXBlci5pbnRlcnNlY3RzKHJhbmdlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVjdCA9IHJhbmdlO1xuICAgICAgICBjb25zdCBjaXJjbGUgPSByYW5nZTtcbiAgICAgICAgY29uc3QgbmV3UG9zID0ge1xuICAgICAgICAgICAgeDogcmFuZ2UucG9zaXRpb24ueCAtIHRoaXMuY2FudmFzU2l6ZS53aWR0aCxcbiAgICAgICAgICAgIHk6IHJhbmdlLnBvc2l0aW9uLnkgLSB0aGlzLmNhbnZhc1NpemUuaGVpZ2h0LFxuICAgICAgICB9O1xuICAgICAgICBpZiAoY2lyY2xlLnJhZGl1cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjb25zdCBiaWdnZXJDaXJjbGUgPSBuZXcgQ2lyY2xlXzEuQ2lyY2xlKG5ld1Bvcy54LCBuZXdQb3MueSwgY2lyY2xlLnJhZGl1cyAqIDIpO1xuICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmludGVyc2VjdHMoYmlnZ2VyQ2lyY2xlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChyZWN0LnNpemUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29uc3QgcmVjdFNXID0gbmV3IFJlY3RhbmdsZV8xLlJlY3RhbmdsZShuZXdQb3MueCwgbmV3UG9zLnksIHJlY3Quc2l6ZS53aWR0aCAqIDIsIHJlY3Quc2l6ZS5oZWlnaHQgKiAyKTtcbiAgICAgICAgICAgIHJldHVybiBzdXBlci5pbnRlcnNlY3RzKHJlY3RTVyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cbmV4cG9ydHMuQ2lyY2xlV2FycCA9IENpcmNsZVdhcnA7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Utils/CircleWarp.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Utils/ColorUtils.js": +/*!******************************************************!*\ + !*** ./node_modules/tsparticles/Utils/ColorUtils.js ***! + \******************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.getHslAnimationFromHsl = exports.getHslFromAnimation = exports.getLinkRandomColor = exports.getLinkColor = exports.colorMix = exports.getStyleFromHsv = exports.getStyleFromHsl = exports.getStyleFromRgb = exports.getRandomRgbColor = exports.rgbaToHsva = exports.rgbToHsv = exports.hsvaToRgba = exports.hsvToRgb = exports.hsvaToHsla = exports.hsvToHsl = exports.hslaToHsva = exports.hslToHsv = exports.hslaToRgba = exports.hslToRgb = exports.stringToRgb = exports.stringToAlpha = exports.rgbToHsl = exports.colorToHsl = exports.colorToRgb = void 0;\nconst Utils_1 = __webpack_require__(/*! ./Utils */ \"./node_modules/tsparticles/Utils/Utils.js\");\nconst Constants_1 = __webpack_require__(/*! ./Constants */ \"./node_modules/tsparticles/Utils/Constants.js\");\nconst NumberUtils_1 = __webpack_require__(/*! ./NumberUtils */ \"./node_modules/tsparticles/Utils/NumberUtils.js\");\nconst Enums_1 = __webpack_require__(/*! ../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nfunction hue2rgb(p, q, t) {\n let tCalc = t;\n if (tCalc < 0) {\n tCalc += 1;\n }\n if (tCalc > 1) {\n tCalc -= 1;\n }\n if (tCalc < 1 / 6) {\n return p + (q - p) * 6 * tCalc;\n }\n if (tCalc < 1 / 2) {\n return q;\n }\n if (tCalc < 2 / 3) {\n return p + (q - p) * (2 / 3 - tCalc) * 6;\n }\n return p;\n}\nfunction stringToRgba(input) {\n if (input.startsWith(\"rgb\")) {\n const regex = /rgba?\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(,\\s*([\\d.]+)\\s*)?\\)/i;\n const result = regex.exec(input);\n return result\n ? {\n a: result.length > 4 ? parseFloat(result[5]) : 1,\n b: parseInt(result[3], 10),\n g: parseInt(result[2], 10),\n r: parseInt(result[1], 10),\n }\n : undefined;\n }\n else if (input.startsWith(\"hsl\")) {\n const regex = /hsla?\\(\\s*(\\d+)\\s*,\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*(,\\s*([\\d.]+)\\s*)?\\)/i;\n const result = regex.exec(input);\n return result\n ? hslaToRgba({\n a: result.length > 4 ? parseFloat(result[5]) : 1,\n h: parseInt(result[1], 10),\n l: parseInt(result[3], 10),\n s: parseInt(result[2], 10),\n })\n : undefined;\n }\n else if (input.startsWith(\"hsv\")) {\n const regex = /hsva?\\(\\s*(\\d+)°\\s*,\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*(,\\s*([\\d.]+)\\s*)?\\)/i;\n const result = regex.exec(input);\n return result\n ? hsvaToRgba({\n a: result.length > 4 ? parseFloat(result[5]) : 1,\n h: parseInt(result[1], 10),\n s: parseInt(result[2], 10),\n v: parseInt(result[3], 10),\n })\n : undefined;\n }\n else {\n const shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])([a-f\\d])?$/i;\n const hexFixed = input.replace(shorthandRegex, (_m, r, g, b, a) => {\n return r + r + g + g + b + b + (a !== undefined ? a + a : \"\");\n });\n const regex = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})?$/i;\n const result = regex.exec(hexFixed);\n return result\n ? {\n a: result[4] !== undefined ? parseInt(result[4], 16) / 0xff : 1,\n b: parseInt(result[3], 16),\n g: parseInt(result[2], 16),\n r: parseInt(result[1], 16),\n }\n : undefined;\n }\n}\nfunction colorToRgb(input, index, useIndex = true) {\n var _a, _b, _c;\n if (input === undefined) {\n return;\n }\n const color = typeof input === \"string\" ? { value: input } : input;\n let res;\n if (typeof color.value === \"string\") {\n if (color.value === Constants_1.Constants.randomColorValue) {\n res = getRandomRgbColor();\n }\n else {\n res = stringToRgb(color.value);\n }\n }\n else {\n if (color.value instanceof Array) {\n const colorSelected = (0, Utils_1.itemFromArray)(color.value, index, useIndex);\n res = colorToRgb({ value: colorSelected });\n }\n else {\n const colorValue = color.value;\n const rgbColor = (_a = colorValue.rgb) !== null && _a !== void 0 ? _a : color.value;\n if (rgbColor.r !== undefined) {\n res = rgbColor;\n }\n else {\n const hslColor = (_b = colorValue.hsl) !== null && _b !== void 0 ? _b : color.value;\n if (hslColor.h !== undefined && hslColor.l !== undefined) {\n res = hslToRgb(hslColor);\n }\n else {\n const hsvColor = (_c = colorValue.hsv) !== null && _c !== void 0 ? _c : color.value;\n if (hsvColor.h !== undefined && hsvColor.v !== undefined) {\n res = hsvToRgb(hsvColor);\n }\n }\n }\n }\n }\n return res;\n}\nexports.colorToRgb = colorToRgb;\nfunction colorToHsl(color, index, useIndex = true) {\n const rgb = colorToRgb(color, index, useIndex);\n return rgb !== undefined ? rgbToHsl(rgb) : undefined;\n}\nexports.colorToHsl = colorToHsl;\nfunction rgbToHsl(color) {\n const r1 = color.r / 255;\n const g1 = color.g / 255;\n const b1 = color.b / 255;\n const max = Math.max(r1, g1, b1);\n const min = Math.min(r1, g1, b1);\n const res = {\n h: 0,\n l: (max + min) / 2,\n s: 0,\n };\n if (max != min) {\n res.s = res.l < 0.5 ? (max - min) / (max + min) : (max - min) / (2.0 - max - min);\n res.h =\n r1 === max\n ? (g1 - b1) / (max - min)\n : (res.h = g1 === max ? 2.0 + (b1 - r1) / (max - min) : 4.0 + (r1 - g1) / (max - min));\n }\n res.l *= 100;\n res.s *= 100;\n res.h *= 60;\n if (res.h < 0) {\n res.h += 360;\n }\n return res;\n}\nexports.rgbToHsl = rgbToHsl;\nfunction stringToAlpha(input) {\n var _a;\n return (_a = stringToRgba(input)) === null || _a === void 0 ? void 0 : _a.a;\n}\nexports.stringToAlpha = stringToAlpha;\nfunction stringToRgb(input) {\n return stringToRgba(input);\n}\nexports.stringToRgb = stringToRgb;\nfunction hslToRgb(hsl) {\n const result = { b: 0, g: 0, r: 0 };\n const hslPercent = {\n h: hsl.h / 360,\n l: hsl.l / 100,\n s: hsl.s / 100,\n };\n if (hslPercent.s === 0) {\n result.b = hslPercent.l;\n result.g = hslPercent.l;\n result.r = hslPercent.l;\n }\n else {\n const q = hslPercent.l < 0.5\n ? hslPercent.l * (1 + hslPercent.s)\n : hslPercent.l + hslPercent.s - hslPercent.l * hslPercent.s;\n const p = 2 * hslPercent.l - q;\n result.r = hue2rgb(p, q, hslPercent.h + 1 / 3);\n result.g = hue2rgb(p, q, hslPercent.h);\n result.b = hue2rgb(p, q, hslPercent.h - 1 / 3);\n }\n result.r = Math.floor(result.r * 255);\n result.g = Math.floor(result.g * 255);\n result.b = Math.floor(result.b * 255);\n return result;\n}\nexports.hslToRgb = hslToRgb;\nfunction hslaToRgba(hsla) {\n const rgbResult = hslToRgb(hsla);\n return {\n a: hsla.a,\n b: rgbResult.b,\n g: rgbResult.g,\n r: rgbResult.r,\n };\n}\nexports.hslaToRgba = hslaToRgba;\nfunction hslToHsv(hsl) {\n const l = hsl.l / 100, sl = hsl.s / 100;\n const v = l + sl * Math.min(l, 1 - l), sv = !v ? 0 : 2 * (1 - l / v);\n return {\n h: hsl.h,\n s: sv * 100,\n v: v * 100,\n };\n}\nexports.hslToHsv = hslToHsv;\nfunction hslaToHsva(hsla) {\n const hsvResult = hslToHsv(hsla);\n return {\n a: hsla.a,\n h: hsvResult.h,\n s: hsvResult.s,\n v: hsvResult.v,\n };\n}\nexports.hslaToHsva = hslaToHsva;\nfunction hsvToHsl(hsv) {\n const v = hsv.v / 100, sv = hsv.s / 100;\n const l = v * (1 - sv / 2), sl = l === 0 || l === 1 ? 0 : (v - l) / Math.min(l, 1 - l);\n return {\n h: hsv.h,\n l: l * 100,\n s: sl * 100,\n };\n}\nexports.hsvToHsl = hsvToHsl;\nfunction hsvaToHsla(hsva) {\n const hslResult = hsvToHsl(hsva);\n return {\n a: hsva.a,\n h: hslResult.h,\n l: hslResult.l,\n s: hslResult.s,\n };\n}\nexports.hsvaToHsla = hsvaToHsla;\nfunction hsvToRgb(hsv) {\n const result = { b: 0, g: 0, r: 0 };\n const hsvPercent = {\n h: hsv.h / 60,\n s: hsv.s / 100,\n v: hsv.v / 100,\n };\n const c = hsvPercent.v * hsvPercent.s, x = c * (1 - Math.abs((hsvPercent.h % 2) - 1));\n let tempRgb;\n if (hsvPercent.h >= 0 && hsvPercent.h <= 1) {\n tempRgb = {\n r: c,\n g: x,\n b: 0,\n };\n }\n else if (hsvPercent.h > 1 && hsvPercent.h <= 2) {\n tempRgb = {\n r: x,\n g: c,\n b: 0,\n };\n }\n else if (hsvPercent.h > 2 && hsvPercent.h <= 3) {\n tempRgb = {\n r: 0,\n g: c,\n b: x,\n };\n }\n else if (hsvPercent.h > 3 && hsvPercent.h <= 4) {\n tempRgb = {\n r: 0,\n g: x,\n b: c,\n };\n }\n else if (hsvPercent.h > 4 && hsvPercent.h <= 5) {\n tempRgb = {\n r: x,\n g: 0,\n b: c,\n };\n }\n else if (hsvPercent.h > 5 && hsvPercent.h <= 6) {\n tempRgb = {\n r: c,\n g: 0,\n b: x,\n };\n }\n if (tempRgb) {\n const m = hsvPercent.v - c;\n result.r = Math.floor((tempRgb.r + m) * 255);\n result.g = Math.floor((tempRgb.g + m) * 255);\n result.b = Math.floor((tempRgb.b + m) * 255);\n }\n return result;\n}\nexports.hsvToRgb = hsvToRgb;\nfunction hsvaToRgba(hsva) {\n const rgbResult = hsvToRgb(hsva);\n return {\n a: hsva.a,\n b: rgbResult.b,\n g: rgbResult.g,\n r: rgbResult.r,\n };\n}\nexports.hsvaToRgba = hsvaToRgba;\nfunction rgbToHsv(rgb) {\n const rgbPercent = {\n r: rgb.r / 255,\n g: rgb.g / 255,\n b: rgb.b / 255,\n }, xMax = Math.max(rgbPercent.r, rgbPercent.g, rgbPercent.b), xMin = Math.min(rgbPercent.r, rgbPercent.g, rgbPercent.b), v = xMax, c = xMax - xMin;\n let h = 0;\n if (v === rgbPercent.r) {\n h = 60 * ((rgbPercent.g - rgbPercent.b) / c);\n }\n else if (v === rgbPercent.g) {\n h = 60 * (2 + (rgbPercent.b - rgbPercent.r) / c);\n }\n else if (v === rgbPercent.b) {\n h = 60 * (4 + (rgbPercent.r - rgbPercent.g) / c);\n }\n const s = !v ? 0 : c / v;\n return {\n h,\n s: s * 100,\n v: v * 100,\n };\n}\nexports.rgbToHsv = rgbToHsv;\nfunction rgbaToHsva(rgba) {\n const hsvResult = rgbToHsv(rgba);\n return {\n a: rgba.a,\n h: hsvResult.h,\n s: hsvResult.s,\n v: hsvResult.v,\n };\n}\nexports.rgbaToHsva = rgbaToHsva;\nfunction getRandomRgbColor(min) {\n const fixedMin = min !== null && min !== void 0 ? min : 0;\n return {\n b: Math.floor((0, NumberUtils_1.randomInRange)((0, NumberUtils_1.setRangeValue)(fixedMin, 256))),\n g: Math.floor((0, NumberUtils_1.randomInRange)((0, NumberUtils_1.setRangeValue)(fixedMin, 256))),\n r: Math.floor((0, NumberUtils_1.randomInRange)((0, NumberUtils_1.setRangeValue)(fixedMin, 256))),\n };\n}\nexports.getRandomRgbColor = getRandomRgbColor;\nfunction getStyleFromRgb(color, opacity) {\n return `rgba(${color.r}, ${color.g}, ${color.b}, ${opacity !== null && opacity !== void 0 ? opacity : 1})`;\n}\nexports.getStyleFromRgb = getStyleFromRgb;\nfunction getStyleFromHsl(color, opacity) {\n return `hsla(${color.h}, ${color.s}%, ${color.l}%, ${opacity !== null && opacity !== void 0 ? opacity : 1})`;\n}\nexports.getStyleFromHsl = getStyleFromHsl;\nfunction getStyleFromHsv(color, opacity) {\n return getStyleFromHsl(hsvToHsl(color), opacity);\n}\nexports.getStyleFromHsv = getStyleFromHsv;\nfunction colorMix(color1, color2, size1, size2) {\n let rgb1 = color1;\n let rgb2 = color2;\n if (rgb1.r === undefined) {\n rgb1 = hslToRgb(color1);\n }\n if (rgb2.r === undefined) {\n rgb2 = hslToRgb(color2);\n }\n return {\n b: (0, NumberUtils_1.mix)(rgb1.b, rgb2.b, size1, size2),\n g: (0, NumberUtils_1.mix)(rgb1.g, rgb2.g, size1, size2),\n r: (0, NumberUtils_1.mix)(rgb1.r, rgb2.r, size1, size2),\n };\n}\nexports.colorMix = colorMix;\nfunction getLinkColor(p1, p2, linkColor) {\n var _a, _b;\n if (linkColor === Constants_1.Constants.randomColorValue) {\n return getRandomRgbColor();\n }\n else if (linkColor === \"mid\") {\n const sourceColor = (_a = p1.getFillColor()) !== null && _a !== void 0 ? _a : p1.getStrokeColor();\n const destColor = (_b = p2 === null || p2 === void 0 ? void 0 : p2.getFillColor()) !== null && _b !== void 0 ? _b : p2 === null || p2 === void 0 ? void 0 : p2.getStrokeColor();\n if (sourceColor && destColor && p2) {\n return colorMix(sourceColor, destColor, p1.getRadius(), p2.getRadius());\n }\n else {\n const hslColor = sourceColor !== null && sourceColor !== void 0 ? sourceColor : destColor;\n if (hslColor) {\n return hslToRgb(hslColor);\n }\n }\n }\n else {\n return linkColor;\n }\n}\nexports.getLinkColor = getLinkColor;\nfunction getLinkRandomColor(optColor, blink, consent) {\n const color = typeof optColor === \"string\" ? optColor : optColor.value;\n if (color === Constants_1.Constants.randomColorValue) {\n if (consent) {\n return colorToRgb({\n value: color,\n });\n }\n else if (blink) {\n return Constants_1.Constants.randomColorValue;\n }\n else {\n return Constants_1.Constants.midColorValue;\n }\n }\n else {\n return colorToRgb({\n value: color,\n });\n }\n}\nexports.getLinkRandomColor = getLinkRandomColor;\nfunction getHslFromAnimation(animation) {\n return animation !== undefined\n ? {\n h: animation.h.value,\n s: animation.s.value,\n l: animation.l.value,\n }\n : undefined;\n}\nexports.getHslFromAnimation = getHslFromAnimation;\nfunction getHslAnimationFromHsl(hsl, animationOptions, reduceFactor) {\n const resColor = {\n h: {\n enable: false,\n value: hsl.h,\n },\n s: {\n enable: false,\n value: hsl.s,\n },\n l: {\n enable: false,\n value: hsl.l,\n },\n };\n if (animationOptions) {\n setColorAnimation(resColor.h, animationOptions.h, reduceFactor);\n setColorAnimation(resColor.s, animationOptions.s, reduceFactor);\n setColorAnimation(resColor.l, animationOptions.l, reduceFactor);\n }\n return resColor;\n}\nexports.getHslAnimationFromHsl = getHslAnimationFromHsl;\nfunction setColorAnimation(colorValue, colorAnimation, reduceFactor) {\n colorValue.enable = colorAnimation.enable;\n if (colorValue.enable) {\n colorValue.velocity = (colorAnimation.speed / 100) * reduceFactor;\n if (colorAnimation.sync) {\n return;\n }\n colorValue.status = Enums_1.AnimationStatus.increasing;\n colorValue.velocity *= Math.random();\n if (colorValue.value) {\n colorValue.value *= Math.random();\n }\n }\n else {\n colorValue.velocity = 0;\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXRpbHMvQ29sb3JVdGlscy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCw4QkFBOEIsR0FBRywyQkFBMkIsR0FBRywwQkFBMEIsR0FBRyxvQkFBb0IsR0FBRyxnQkFBZ0IsR0FBRyx1QkFBdUIsR0FBRyx1QkFBdUIsR0FBRyx1QkFBdUIsR0FBRyx5QkFBeUIsR0FBRyxrQkFBa0IsR0FBRyxnQkFBZ0IsR0FBRyxrQkFBa0IsR0FBRyxnQkFBZ0IsR0FBRyxrQkFBa0IsR0FBRyxnQkFBZ0IsR0FBRyxrQkFBa0IsR0FBRyxnQkFBZ0IsR0FBRyxrQkFBa0IsR0FBRyxnQkFBZ0IsR0FBRyxtQkFBbUIsR0FBRyxxQkFBcUIsR0FBRyxnQkFBZ0IsR0FBRyxrQkFBa0IsR0FBRyxrQkFBa0I7QUFDaGlCLGdCQUFnQixtQkFBTyxDQUFDLDBEQUFTO0FBQ2pDLG9CQUFvQixtQkFBTyxDQUFDLGtFQUFhO0FBQ3pDLHNCQUFzQixtQkFBTyxDQUFDLHNFQUFlO0FBQzdDLGdCQUFnQixtQkFBTyxDQUFDLDJEQUFVO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsbUNBQW1DLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUU7QUFDekU7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O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSwwQkFBMEI7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1V0aWxzL0NvbG9yVXRpbHMuanM/NjkzMCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuZ2V0SHNsQW5pbWF0aW9uRnJvbUhzbCA9IGV4cG9ydHMuZ2V0SHNsRnJvbUFuaW1hdGlvbiA9IGV4cG9ydHMuZ2V0TGlua1JhbmRvbUNvbG9yID0gZXhwb3J0cy5nZXRMaW5rQ29sb3IgPSBleHBvcnRzLmNvbG9yTWl4ID0gZXhwb3J0cy5nZXRTdHlsZUZyb21Ic3YgPSBleHBvcnRzLmdldFN0eWxlRnJvbUhzbCA9IGV4cG9ydHMuZ2V0U3R5bGVGcm9tUmdiID0gZXhwb3J0cy5nZXRSYW5kb21SZ2JDb2xvciA9IGV4cG9ydHMucmdiYVRvSHN2YSA9IGV4cG9ydHMucmdiVG9Ic3YgPSBleHBvcnRzLmhzdmFUb1JnYmEgPSBleHBvcnRzLmhzdlRvUmdiID0gZXhwb3J0cy5oc3ZhVG9Ic2xhID0gZXhwb3J0cy5oc3ZUb0hzbCA9IGV4cG9ydHMuaHNsYVRvSHN2YSA9IGV4cG9ydHMuaHNsVG9Ic3YgPSBleHBvcnRzLmhzbGFUb1JnYmEgPSBleHBvcnRzLmhzbFRvUmdiID0gZXhwb3J0cy5zdHJpbmdUb1JnYiA9IGV4cG9ydHMuc3RyaW5nVG9BbHBoYSA9IGV4cG9ydHMucmdiVG9Ic2wgPSBleHBvcnRzLmNvbG9yVG9Ic2wgPSBleHBvcnRzLmNvbG9yVG9SZ2IgPSB2b2lkIDA7XG5jb25zdCBVdGlsc18xID0gcmVxdWlyZShcIi4vVXRpbHNcIik7XG5jb25zdCBDb25zdGFudHNfMSA9IHJlcXVpcmUoXCIuL0NvbnN0YW50c1wiKTtcbmNvbnN0IE51bWJlclV0aWxzXzEgPSByZXF1aXJlKFwiLi9OdW1iZXJVdGlsc1wiKTtcbmNvbnN0IEVudW1zXzEgPSByZXF1aXJlKFwiLi4vRW51bXNcIik7XG5mdW5jdGlvbiBodWUycmdiKHAsIHEsIHQpIHtcbiAgICBsZXQgdENhbGMgPSB0O1xuICAgIGlmICh0Q2FsYyA8IDApIHtcbiAgICAgICAgdENhbGMgKz0gMTtcbiAgICB9XG4gICAgaWYgKHRDYWxjID4gMSkge1xuICAgICAgICB0Q2FsYyAtPSAxO1xuICAgIH1cbiAgICBpZiAodENhbGMgPCAxIC8gNikge1xuICAgICAgICByZXR1cm4gcCArIChxIC0gcCkgKiA2ICogdENhbGM7XG4gICAgfVxuICAgIGlmICh0Q2FsYyA8IDEgLyAyKSB7XG4gICAgICAgIHJldHVybiBxO1xuICAgIH1cbiAgICBpZiAodENhbGMgPCAyIC8gMykge1xuICAgICAgICByZXR1cm4gcCArIChxIC0gcCkgKiAoMiAvIDMgLSB0Q2FsYykgKiA2O1xuICAgIH1cbiAgICByZXR1cm4gcDtcbn1cbmZ1bmN0aW9uIHN0cmluZ1RvUmdiYShpbnB1dCkge1xuICAgIGlmIChpbnB1dC5zdGFydHNXaXRoKFwicmdiXCIpKSB7XG4gICAgICAgIGNvbnN0IHJlZ2V4ID0gL3JnYmE/XFwoXFxzKihcXGQrKVxccyosXFxzKihcXGQrKVxccyosXFxzKihcXGQrKVxccyooLFxccyooW1xcZC5dKylcXHMqKT9cXCkvaTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gcmVnZXguZXhlYyhpbnB1dCk7XG4gICAgICAgIHJldHVybiByZXN1bHRcbiAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgIGE6IHJlc3VsdC5sZW5ndGggPiA0ID8gcGFyc2VGbG9hdChyZXN1bHRbNV0pIDogMSxcbiAgICAgICAgICAgICAgICBiOiBwYXJzZUludChyZXN1bHRbM10sIDEwKSxcbiAgICAgICAgICAgICAgICBnOiBwYXJzZUludChyZXN1bHRbMl0sIDEwKSxcbiAgICAgICAgICAgICAgICByOiBwYXJzZUludChyZXN1bHRbMV0sIDEwKSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgIH1cbiAgICBlbHNlIGlmIChpbnB1dC5zdGFydHNXaXRoKFwiaHNsXCIpKSB7XG4gICAgICAgIGNvbnN0IHJlZ2V4ID0gL2hzbGE/XFwoXFxzKihcXGQrKVxccyosXFxzKihcXGQrKSVcXHMqLFxccyooXFxkKyklXFxzKigsXFxzKihbXFxkLl0rKVxccyopP1xcKS9pO1xuICAgICAgICBjb25zdCByZXN1bHQgPSByZWdleC5leGVjKGlucHV0KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdFxuICAgICAgICAgICAgPyBoc2xhVG9SZ2JhKHtcbiAgICAgICAgICAgICAgICBhOiByZXN1bHQubGVuZ3RoID4gNCA/IHBhcnNlRmxvYXQocmVzdWx0WzVdKSA6IDEsXG4gICAgICAgICAgICAgICAgaDogcGFyc2VJbnQocmVzdWx0WzFdLCAxMCksXG4gICAgICAgICAgICAgICAgbDogcGFyc2VJbnQocmVzdWx0WzNdLCAxMCksXG4gICAgICAgICAgICAgICAgczogcGFyc2VJbnQocmVzdWx0WzJdLCAxMCksXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGVsc2UgaWYgKGlucHV0LnN0YXJ0c1dpdGgoXCJoc3ZcIikpIHtcbiAgICAgICAgY29uc3QgcmVnZXggPSAvaHN2YT9cXChcXHMqKFxcZCspwrBcXHMqLFxccyooXFxkKyklXFxzKixcXHMqKFxcZCspJVxccyooLFxccyooW1xcZC5dKylcXHMqKT9cXCkvaTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gcmVnZXguZXhlYyhpbnB1dCk7XG4gICAgICAgIHJldHVybiByZXN1bHRcbiAgICAgICAgICAgID8gaHN2YVRvUmdiYSh7XG4gICAgICAgICAgICAgICAgYTogcmVzdWx0Lmxlbmd0aCA+IDQgPyBwYXJzZUZsb2F0KHJlc3VsdFs1XSkgOiAxLFxuICAgICAgICAgICAgICAgIGg6IHBhcnNlSW50KHJlc3VsdFsxXSwgMTApLFxuICAgICAgICAgICAgICAgIHM6IHBhcnNlSW50KHJlc3VsdFsyXSwgMTApLFxuICAgICAgICAgICAgICAgIHY6IHBhcnNlSW50KHJlc3VsdFszXSwgMTApLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgY29uc3Qgc2hvcnRoYW5kUmVnZXggPSAvXiM/KFthLWZcXGRdKShbYS1mXFxkXSkoW2EtZlxcZF0pKFthLWZcXGRdKT8kL2k7XG4gICAgICAgIGNvbnN0IGhleEZpeGVkID0gaW5wdXQucmVwbGFjZShzaG9ydGhhbmRSZWdleCwgKF9tLCByLCBnLCBiLCBhKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gciArIHIgKyBnICsgZyArIGIgKyBiICsgKGEgIT09IHVuZGVmaW5lZCA/IGEgKyBhIDogXCJcIik7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCByZWdleCA9IC9eIz8oW2EtZlxcZF17Mn0pKFthLWZcXGRdezJ9KShbYS1mXFxkXXsyfSkoW2EtZlxcZF17Mn0pPyQvaTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gcmVnZXguZXhlYyhoZXhGaXhlZCk7XG4gICAgICAgIHJldHVybiByZXN1bHRcbiAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgIGE6IHJlc3VsdFs0XSAhPT0gdW5kZWZpbmVkID8gcGFyc2VJbnQocmVzdWx0WzRdLCAxNikgLyAweGZmIDogMSxcbiAgICAgICAgICAgICAgICBiOiBwYXJzZUludChyZXN1bHRbM10sIDE2KSxcbiAgICAgICAgICAgICAgICBnOiBwYXJzZUludChyZXN1bHRbMl0sIDE2KSxcbiAgICAgICAgICAgICAgICByOiBwYXJzZUludChyZXN1bHRbMV0sIDE2KSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGNvbG9yVG9SZ2IoaW5wdXQsIGluZGV4LCB1c2VJbmRleCA9IHRydWUpIHtcbiAgICB2YXIgX2EsIF9iLCBfYztcbiAgICBpZiAoaW5wdXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGNvbG9yID0gdHlwZW9mIGlucHV0ID09PSBcInN0cmluZ1wiID8geyB2YWx1ZTogaW5wdXQgfSA6IGlucHV0O1xuICAgIGxldCByZXM7XG4gICAgaWYgKHR5cGVvZiBjb2xvci52YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBpZiAoY29sb3IudmFsdWUgPT09IENvbnN0YW50c18xLkNvbnN0YW50cy5yYW5kb21Db2xvclZhbHVlKSB7XG4gICAgICAgICAgICByZXMgPSBnZXRSYW5kb21SZ2JDb2xvcigpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmVzID0gc3RyaW5nVG9SZ2IoY29sb3IudmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBpZiAoY29sb3IudmFsdWUgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgY29uc3QgY29sb3JTZWxlY3RlZCA9ICgwLCBVdGlsc18xLml0ZW1Gcm9tQXJyYXkpKGNvbG9yLnZhbHVlLCBpbmRleCwgdXNlSW5kZXgpO1xuICAgICAgICAgICAgcmVzID0gY29sb3JUb1JnYih7IHZhbHVlOiBjb2xvclNlbGVjdGVkIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgY29sb3JWYWx1ZSA9IGNvbG9yLnZhbHVlO1xuICAgICAgICAgICAgY29uc3QgcmdiQ29sb3IgPSAoX2EgPSBjb2xvclZhbHVlLnJnYikgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogY29sb3IudmFsdWU7XG4gICAgICAgICAgICBpZiAocmdiQ29sb3IuciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmVzID0gcmdiQ29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBoc2xDb2xvciA9IChfYiA9IGNvbG9yVmFsdWUuaHNsKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBjb2xvci52YWx1ZTtcbiAgICAgICAgICAgICAgICBpZiAoaHNsQ29sb3IuaCAhPT0gdW5kZWZpbmVkICYmIGhzbENvbG9yLmwgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICByZXMgPSBoc2xUb1JnYihoc2xDb2xvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBoc3ZDb2xvciA9IChfYyA9IGNvbG9yVmFsdWUuaHN2KSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiBjb2xvci52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGhzdkNvbG9yLmggIT09IHVuZGVmaW5lZCAmJiBoc3ZDb2xvci52ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IGhzdlRvUmdiKGhzdkNvbG9yKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzO1xufVxuZXhwb3J0cy5jb2xvclRvUmdiID0gY29sb3JUb1JnYjtcbmZ1bmN0aW9uIGNvbG9yVG9Ic2woY29sb3IsIGluZGV4LCB1c2VJbmRleCA9IHRydWUpIHtcbiAgICBjb25zdCByZ2IgPSBjb2xvclRvUmdiKGNvbG9yLCBpbmRleCwgdXNlSW5kZXgpO1xuICAgIHJldHVybiByZ2IgIT09IHVuZGVmaW5lZCA/IHJnYlRvSHNsKHJnYikgOiB1bmRlZmluZWQ7XG59XG5leHBvcnRzLmNvbG9yVG9Ic2wgPSBjb2xvclRvSHNsO1xuZnVuY3Rpb24gcmdiVG9Ic2woY29sb3IpIHtcbiAgICBjb25zdCByMSA9IGNvbG9yLnIgLyAyNTU7XG4gICAgY29uc3QgZzEgPSBjb2xvci5nIC8gMjU1O1xuICAgIGNvbnN0IGIxID0gY29sb3IuYiAvIDI1NTtcbiAgICBjb25zdCBtYXggPSBNYXRoLm1heChyMSwgZzEsIGIxKTtcbiAgICBjb25zdCBtaW4gPSBNYXRoLm1pbihyMSwgZzEsIGIxKTtcbiAgICBjb25zdCByZXMgPSB7XG4gICAgICAgIGg6IDAsXG4gICAgICAgIGw6IChtYXggKyBtaW4pIC8gMixcbiAgICAgICAgczogMCxcbiAgICB9O1xuICAgIGlmIChtYXggIT0gbWluKSB7XG4gICAgICAgIHJlcy5zID0gcmVzLmwgPCAwLjUgPyAobWF4IC0gbWluKSAvIChtYXggKyBtaW4pIDogKG1heCAtIG1pbikgLyAoMi4wIC0gbWF4IC0gbWluKTtcbiAgICAgICAgcmVzLmggPVxuICAgICAgICAgICAgcjEgPT09IG1heFxuICAgICAgICAgICAgICAgID8gKGcxIC0gYjEpIC8gKG1heCAtIG1pbilcbiAgICAgICAgICAgICAgICA6IChyZXMuaCA9IGcxID09PSBtYXggPyAyLjAgKyAoYjEgLSByMSkgLyAobWF4IC0gbWluKSA6IDQuMCArIChyMSAtIGcxKSAvIChtYXggLSBtaW4pKTtcbiAgICB9XG4gICAgcmVzLmwgKj0gMTAwO1xuICAgIHJlcy5zICo9IDEwMDtcbiAgICByZXMuaCAqPSA2MDtcbiAgICBpZiAocmVzLmggPCAwKSB7XG4gICAgICAgIHJlcy5oICs9IDM2MDtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbn1cbmV4cG9ydHMucmdiVG9Ic2wgPSByZ2JUb0hzbDtcbmZ1bmN0aW9uIHN0cmluZ1RvQWxwaGEoaW5wdXQpIHtcbiAgICB2YXIgX2E7XG4gICAgcmV0dXJuIChfYSA9IHN0cmluZ1RvUmdiYShpbnB1dCkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5hO1xufVxuZXhwb3J0cy5zdHJpbmdUb0FscGhhID0gc3RyaW5nVG9BbHBoYTtcbmZ1bmN0aW9uIHN0cmluZ1RvUmdiKGlucHV0KSB7XG4gICAgcmV0dXJuIHN0cmluZ1RvUmdiYShpbnB1dCk7XG59XG5leHBvcnRzLnN0cmluZ1RvUmdiID0gc3RyaW5nVG9SZ2I7XG5mdW5jdGlvbiBoc2xUb1JnYihoc2wpIHtcbiAgICBjb25zdCByZXN1bHQgPSB7IGI6IDAsIGc6IDAsIHI6IDAgfTtcbiAgICBjb25zdCBoc2xQZXJjZW50ID0ge1xuICAgICAgICBoOiBoc2wuaCAvIDM2MCxcbiAgICAgICAgbDogaHNsLmwgLyAxMDAsXG4gICAgICAgIHM6IGhzbC5zIC8gMTAwLFxuICAgIH07XG4gICAgaWYgKGhzbFBlcmNlbnQucyA9PT0gMCkge1xuICAgICAgICByZXN1bHQuYiA9IGhzbFBlcmNlbnQubDtcbiAgICAgICAgcmVzdWx0LmcgPSBoc2xQZXJjZW50Lmw7XG4gICAgICAgIHJlc3VsdC5yID0gaHNsUGVyY2VudC5sO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgY29uc3QgcSA9IGhzbFBlcmNlbnQubCA8IDAuNVxuICAgICAgICAgICAgPyBoc2xQZXJjZW50LmwgKiAoMSArIGhzbFBlcmNlbnQucylcbiAgICAgICAgICAgIDogaHNsUGVyY2VudC5sICsgaHNsUGVyY2VudC5zIC0gaHNsUGVyY2VudC5sICogaHNsUGVyY2VudC5zO1xuICAgICAgICBjb25zdCBwID0gMiAqIGhzbFBlcmNlbnQubCAtIHE7XG4gICAgICAgIHJlc3VsdC5yID0gaHVlMnJnYihwLCBxLCBoc2xQZXJjZW50LmggKyAxIC8gMyk7XG4gICAgICAgIHJlc3VsdC5nID0gaHVlMnJnYihwLCBxLCBoc2xQZXJjZW50LmgpO1xuICAgICAgICByZXN1bHQuYiA9IGh1ZTJyZ2IocCwgcSwgaHNsUGVyY2VudC5oIC0gMSAvIDMpO1xuICAgIH1cbiAgICByZXN1bHQuciA9IE1hdGguZmxvb3IocmVzdWx0LnIgKiAyNTUpO1xuICAgIHJlc3VsdC5nID0gTWF0aC5mbG9vcihyZXN1bHQuZyAqIDI1NSk7XG4gICAgcmVzdWx0LmIgPSBNYXRoLmZsb29yKHJlc3VsdC5iICogMjU1KTtcbiAgICByZXR1cm4gcmVzdWx0O1xufVxuZXhwb3J0cy5oc2xUb1JnYiA9IGhzbFRvUmdiO1xuZnVuY3Rpb24gaHNsYVRvUmdiYShoc2xhKSB7XG4gICAgY29uc3QgcmdiUmVzdWx0ID0gaHNsVG9SZ2IoaHNsYSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYTogaHNsYS5hLFxuICAgICAgICBiOiByZ2JSZXN1bHQuYixcbiAgICAgICAgZzogcmdiUmVzdWx0LmcsXG4gICAgICAgIHI6IHJnYlJlc3VsdC5yLFxuICAgIH07XG59XG5leHBvcnRzLmhzbGFUb1JnYmEgPSBoc2xhVG9SZ2JhO1xuZnVuY3Rpb24gaHNsVG9Ic3YoaHNsKSB7XG4gICAgY29uc3QgbCA9IGhzbC5sIC8gMTAwLCBzbCA9IGhzbC5zIC8gMTAwO1xuICAgIGNvbnN0IHYgPSBsICsgc2wgKiBNYXRoLm1pbihsLCAxIC0gbCksIHN2ID0gIXYgPyAwIDogMiAqICgxIC0gbCAvIHYpO1xuICAgIHJldHVybiB7XG4gICAgICAgIGg6IGhzbC5oLFxuICAgICAgICBzOiBzdiAqIDEwMCxcbiAgICAgICAgdjogdiAqIDEwMCxcbiAgICB9O1xufVxuZXhwb3J0cy5oc2xUb0hzdiA9IGhzbFRvSHN2O1xuZnVuY3Rpb24gaHNsYVRvSHN2YShoc2xhKSB7XG4gICAgY29uc3QgaHN2UmVzdWx0ID0gaHNsVG9Ic3YoaHNsYSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYTogaHNsYS5hLFxuICAgICAgICBoOiBoc3ZSZXN1bHQuaCxcbiAgICAgICAgczogaHN2UmVzdWx0LnMsXG4gICAgICAgIHY6IGhzdlJlc3VsdC52LFxuICAgIH07XG59XG5leHBvcnRzLmhzbGFUb0hzdmEgPSBoc2xhVG9Ic3ZhO1xuZnVuY3Rpb24gaHN2VG9Ic2woaHN2KSB7XG4gICAgY29uc3QgdiA9IGhzdi52IC8gMTAwLCBzdiA9IGhzdi5zIC8gMTAwO1xuICAgIGNvbnN0IGwgPSB2ICogKDEgLSBzdiAvIDIpLCBzbCA9IGwgPT09IDAgfHwgbCA9PT0gMSA/IDAgOiAodiAtIGwpIC8gTWF0aC5taW4obCwgMSAtIGwpO1xuICAgIHJldHVybiB7XG4gICAgICAgIGg6IGhzdi5oLFxuICAgICAgICBsOiBsICogMTAwLFxuICAgICAgICBzOiBzbCAqIDEwMCxcbiAgICB9O1xufVxuZXhwb3J0cy5oc3ZUb0hzbCA9IGhzdlRvSHNsO1xuZnVuY3Rpb24gaHN2YVRvSHNsYShoc3ZhKSB7XG4gICAgY29uc3QgaHNsUmVzdWx0ID0gaHN2VG9Ic2woaHN2YSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYTogaHN2YS5hLFxuICAgICAgICBoOiBoc2xSZXN1bHQuaCxcbiAgICAgICAgbDogaHNsUmVzdWx0LmwsXG4gICAgICAgIHM6IGhzbFJlc3VsdC5zLFxuICAgIH07XG59XG5leHBvcnRzLmhzdmFUb0hzbGEgPSBoc3ZhVG9Ic2xhO1xuZnVuY3Rpb24gaHN2VG9SZ2IoaHN2KSB7XG4gICAgY29uc3QgcmVzdWx0ID0geyBiOiAwLCBnOiAwLCByOiAwIH07XG4gICAgY29uc3QgaHN2UGVyY2VudCA9IHtcbiAgICAgICAgaDogaHN2LmggLyA2MCxcbiAgICAgICAgczogaHN2LnMgLyAxMDAsXG4gICAgICAgIHY6IGhzdi52IC8gMTAwLFxuICAgIH07XG4gICAgY29uc3QgYyA9IGhzdlBlcmNlbnQudiAqIGhzdlBlcmNlbnQucywgeCA9IGMgKiAoMSAtIE1hdGguYWJzKChoc3ZQZXJjZW50LmggJSAyKSAtIDEpKTtcbiAgICBsZXQgdGVtcFJnYjtcbiAgICBpZiAoaHN2UGVyY2VudC5oID49IDAgJiYgaHN2UGVyY2VudC5oIDw9IDEpIHtcbiAgICAgICAgdGVtcFJnYiA9IHtcbiAgICAgICAgICAgIHI6IGMsXG4gICAgICAgICAgICBnOiB4LFxuICAgICAgICAgICAgYjogMCxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZWxzZSBpZiAoaHN2UGVyY2VudC5oID4gMSAmJiBoc3ZQZXJjZW50LmggPD0gMikge1xuICAgICAgICB0ZW1wUmdiID0ge1xuICAgICAgICAgICAgcjogeCxcbiAgICAgICAgICAgIGc6IGMsXG4gICAgICAgICAgICBiOiAwLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBlbHNlIGlmIChoc3ZQZXJjZW50LmggPiAyICYmIGhzdlBlcmNlbnQuaCA8PSAzKSB7XG4gICAgICAgIHRlbXBSZ2IgPSB7XG4gICAgICAgICAgICByOiAwLFxuICAgICAgICAgICAgZzogYyxcbiAgICAgICAgICAgIGI6IHgsXG4gICAgICAgIH07XG4gICAgfVxuICAgIGVsc2UgaWYgKGhzdlBlcmNlbnQuaCA+IDMgJiYgaHN2UGVyY2VudC5oIDw9IDQpIHtcbiAgICAgICAgdGVtcFJnYiA9IHtcbiAgICAgICAgICAgIHI6IDAsXG4gICAgICAgICAgICBnOiB4LFxuICAgICAgICAgICAgYjogYyxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZWxzZSBpZiAoaHN2UGVyY2VudC5oID4gNCAmJiBoc3ZQZXJjZW50LmggPD0gNSkge1xuICAgICAgICB0ZW1wUmdiID0ge1xuICAgICAgICAgICAgcjogeCxcbiAgICAgICAgICAgIGc6IDAsXG4gICAgICAgICAgICBiOiBjLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBlbHNlIGlmIChoc3ZQZXJjZW50LmggPiA1ICYmIGhzdlBlcmNlbnQuaCA8PSA2KSB7XG4gICAgICAgIHRlbXBSZ2IgPSB7XG4gICAgICAgICAgICByOiBjLFxuICAgICAgICAgICAgZzogMCxcbiAgICAgICAgICAgIGI6IHgsXG4gICAgICAgIH07XG4gICAgfVxuICAgIGlmICh0ZW1wUmdiKSB7XG4gICAgICAgIGNvbnN0IG0gPSBoc3ZQZXJjZW50LnYgLSBjO1xuICAgICAgICByZXN1bHQuciA9IE1hdGguZmxvb3IoKHRlbXBSZ2IuciArIG0pICogMjU1KTtcbiAgICAgICAgcmVzdWx0LmcgPSBNYXRoLmZsb29yKCh0ZW1wUmdiLmcgKyBtKSAqIDI1NSk7XG4gICAgICAgIHJlc3VsdC5iID0gTWF0aC5mbG9vcigodGVtcFJnYi5iICsgbSkgKiAyNTUpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuZXhwb3J0cy5oc3ZUb1JnYiA9IGhzdlRvUmdiO1xuZnVuY3Rpb24gaHN2YVRvUmdiYShoc3ZhKSB7XG4gICAgY29uc3QgcmdiUmVzdWx0ID0gaHN2VG9SZ2IoaHN2YSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYTogaHN2YS5hLFxuICAgICAgICBiOiByZ2JSZXN1bHQuYixcbiAgICAgICAgZzogcmdiUmVzdWx0LmcsXG4gICAgICAgIHI6IHJnYlJlc3VsdC5yLFxuICAgIH07XG59XG5leHBvcnRzLmhzdmFUb1JnYmEgPSBoc3ZhVG9SZ2JhO1xuZnVuY3Rpb24gcmdiVG9Ic3YocmdiKSB7XG4gICAgY29uc3QgcmdiUGVyY2VudCA9IHtcbiAgICAgICAgcjogcmdiLnIgLyAyNTUsXG4gICAgICAgIGc6IHJnYi5nIC8gMjU1LFxuICAgICAgICBiOiByZ2IuYiAvIDI1NSxcbiAgICB9LCB4TWF4ID0gTWF0aC5tYXgocmdiUGVyY2VudC5yLCByZ2JQZXJjZW50LmcsIHJnYlBlcmNlbnQuYiksIHhNaW4gPSBNYXRoLm1pbihyZ2JQZXJjZW50LnIsIHJnYlBlcmNlbnQuZywgcmdiUGVyY2VudC5iKSwgdiA9IHhNYXgsIGMgPSB4TWF4IC0geE1pbjtcbiAgICBsZXQgaCA9IDA7XG4gICAgaWYgKHYgPT09IHJnYlBlcmNlbnQucikge1xuICAgICAgICBoID0gNjAgKiAoKHJnYlBlcmNlbnQuZyAtIHJnYlBlcmNlbnQuYikgLyBjKTtcbiAgICB9XG4gICAgZWxzZSBpZiAodiA9PT0gcmdiUGVyY2VudC5nKSB7XG4gICAgICAgIGggPSA2MCAqICgyICsgKHJnYlBlcmNlbnQuYiAtIHJnYlBlcmNlbnQucikgLyBjKTtcbiAgICB9XG4gICAgZWxzZSBpZiAodiA9PT0gcmdiUGVyY2VudC5iKSB7XG4gICAgICAgIGggPSA2MCAqICg0ICsgKHJnYlBlcmNlbnQuciAtIHJnYlBlcmNlbnQuZykgLyBjKTtcbiAgICB9XG4gICAgY29uc3QgcyA9ICF2ID8gMCA6IGMgLyB2O1xuICAgIHJldHVybiB7XG4gICAgICAgIGgsXG4gICAgICAgIHM6IHMgKiAxMDAsXG4gICAgICAgIHY6IHYgKiAxMDAsXG4gICAgfTtcbn1cbmV4cG9ydHMucmdiVG9Ic3YgPSByZ2JUb0hzdjtcbmZ1bmN0aW9uIHJnYmFUb0hzdmEocmdiYSkge1xuICAgIGNvbnN0IGhzdlJlc3VsdCA9IHJnYlRvSHN2KHJnYmEpO1xuICAgIHJldHVybiB7XG4gICAgICAgIGE6IHJnYmEuYSxcbiAgICAgICAgaDogaHN2UmVzdWx0LmgsXG4gICAgICAgIHM6IGhzdlJlc3VsdC5zLFxuICAgICAgICB2OiBoc3ZSZXN1bHQudixcbiAgICB9O1xufVxuZXhwb3J0cy5yZ2JhVG9Ic3ZhID0gcmdiYVRvSHN2YTtcbmZ1bmN0aW9uIGdldFJhbmRvbVJnYkNvbG9yKG1pbikge1xuICAgIGNvbnN0IGZpeGVkTWluID0gbWluICE9PSBudWxsICYmIG1pbiAhPT0gdm9pZCAwID8gbWluIDogMDtcbiAgICByZXR1cm4ge1xuICAgICAgICBiOiBNYXRoLmZsb29yKCgwLCBOdW1iZXJVdGlsc18xLnJhbmRvbUluUmFuZ2UpKCgwLCBOdW1iZXJVdGlsc18xLnNldFJhbmdlVmFsdWUpKGZpeGVkTWluLCAyNTYpKSksXG4gICAgICAgIGc6IE1hdGguZmxvb3IoKDAsIE51bWJlclV0aWxzXzEucmFuZG9tSW5SYW5nZSkoKDAsIE51bWJlclV0aWxzXzEuc2V0UmFuZ2VWYWx1ZSkoZml4ZWRNaW4sIDI1NikpKSxcbiAgICAgICAgcjogTWF0aC5mbG9vcigoMCwgTnVtYmVyVXRpbHNfMS5yYW5kb21JblJhbmdlKSgoMCwgTnVtYmVyVXRpbHNfMS5zZXRSYW5nZVZhbHVlKShmaXhlZE1pbiwgMjU2KSkpLFxuICAgIH07XG59XG5leHBvcnRzLmdldFJhbmRvbVJnYkNvbG9yID0gZ2V0UmFuZG9tUmdiQ29sb3I7XG5mdW5jdGlvbiBnZXRTdHlsZUZyb21SZ2IoY29sb3IsIG9wYWNpdHkpIHtcbiAgICByZXR1cm4gYHJnYmEoJHtjb2xvci5yfSwgJHtjb2xvci5nfSwgJHtjb2xvci5ifSwgJHtvcGFjaXR5ICE9PSBudWxsICYmIG9wYWNpdHkgIT09IHZvaWQgMCA/IG9wYWNpdHkgOiAxfSlgO1xufVxuZXhwb3J0cy5nZXRTdHlsZUZyb21SZ2IgPSBnZXRTdHlsZUZyb21SZ2I7XG5mdW5jdGlvbiBnZXRTdHlsZUZyb21Ic2woY29sb3IsIG9wYWNpdHkpIHtcbiAgICByZXR1cm4gYGhzbGEoJHtjb2xvci5ofSwgJHtjb2xvci5zfSUsICR7Y29sb3IubH0lLCAke29wYWNpdHkgIT09IG51bGwgJiYgb3BhY2l0eSAhPT0gdm9pZCAwID8gb3BhY2l0eSA6IDF9KWA7XG59XG5leHBvcnRzLmdldFN0eWxlRnJvbUhzbCA9IGdldFN0eWxlRnJvbUhzbDtcbmZ1bmN0aW9uIGdldFN0eWxlRnJvbUhzdihjb2xvciwgb3BhY2l0eSkge1xuICAgIHJldHVybiBnZXRTdHlsZUZyb21Ic2woaHN2VG9Ic2woY29sb3IpLCBvcGFjaXR5KTtcbn1cbmV4cG9ydHMuZ2V0U3R5bGVGcm9tSHN2ID0gZ2V0U3R5bGVGcm9tSHN2O1xuZnVuY3Rpb24gY29sb3JNaXgoY29sb3IxLCBjb2xvcjIsIHNpemUxLCBzaXplMikge1xuICAgIGxldCByZ2IxID0gY29sb3IxO1xuICAgIGxldCByZ2IyID0gY29sb3IyO1xuICAgIGlmIChyZ2IxLnIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZ2IxID0gaHNsVG9SZ2IoY29sb3IxKTtcbiAgICB9XG4gICAgaWYgKHJnYjIuciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJnYjIgPSBoc2xUb1JnYihjb2xvcjIpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBiOiAoMCwgTnVtYmVyVXRpbHNfMS5taXgpKHJnYjEuYiwgcmdiMi5iLCBzaXplMSwgc2l6ZTIpLFxuICAgICAgICBnOiAoMCwgTnVtYmVyVXRpbHNfMS5taXgpKHJnYjEuZywgcmdiMi5nLCBzaXplMSwgc2l6ZTIpLFxuICAgICAgICByOiAoMCwgTnVtYmVyVXRpbHNfMS5taXgpKHJnYjEuciwgcmdiMi5yLCBzaXplMSwgc2l6ZTIpLFxuICAgIH07XG59XG5leHBvcnRzLmNvbG9yTWl4ID0gY29sb3JNaXg7XG5mdW5jdGlvbiBnZXRMaW5rQ29sb3IocDEsIHAyLCBsaW5rQ29sb3IpIHtcbiAgICB2YXIgX2EsIF9iO1xuICAgIGlmIChsaW5rQ29sb3IgPT09IENvbnN0YW50c18xLkNvbnN0YW50cy5yYW5kb21Db2xvclZhbHVlKSB7XG4gICAgICAgIHJldHVybiBnZXRSYW5kb21SZ2JDb2xvcigpO1xuICAgIH1cbiAgICBlbHNlIGlmIChsaW5rQ29sb3IgPT09IFwibWlkXCIpIHtcbiAgICAgICAgY29uc3Qgc291cmNlQ29sb3IgPSAoX2EgPSBwMS5nZXRGaWxsQ29sb3IoKSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogcDEuZ2V0U3Ryb2tlQ29sb3IoKTtcbiAgICAgICAgY29uc3QgZGVzdENvbG9yID0gKF9iID0gcDIgPT09IG51bGwgfHwgcDIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHAyLmdldEZpbGxDb2xvcigpKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBwMiA9PT0gbnVsbCB8fCBwMiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcDIuZ2V0U3Ryb2tlQ29sb3IoKTtcbiAgICAgICAgaWYgKHNvdXJjZUNvbG9yICYmIGRlc3RDb2xvciAmJiBwMikge1xuICAgICAgICAgICAgcmV0dXJuIGNvbG9yTWl4KHNvdXJjZUNvbG9yLCBkZXN0Q29sb3IsIHAxLmdldFJhZGl1cygpLCBwMi5nZXRSYWRpdXMoKSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBoc2xDb2xvciA9IHNvdXJjZUNvbG9yICE9PSBudWxsICYmIHNvdXJjZUNvbG9yICE9PSB2b2lkIDAgPyBzb3VyY2VDb2xvciA6IGRlc3RDb2xvcjtcbiAgICAgICAgICAgIGlmIChoc2xDb2xvcikge1xuICAgICAgICAgICAgICAgIHJldHVybiBoc2xUb1JnYihoc2xDb2xvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHJldHVybiBsaW5rQ29sb3I7XG4gICAgfVxufVxuZXhwb3J0cy5nZXRMaW5rQ29sb3IgPSBnZXRMaW5rQ29sb3I7XG5mdW5jdGlvbiBnZXRMaW5rUmFuZG9tQ29sb3Iob3B0Q29sb3IsIGJsaW5rLCBjb25zZW50KSB7XG4gICAgY29uc3QgY29sb3IgPSB0eXBlb2Ygb3B0Q29sb3IgPT09IFwic3RyaW5nXCIgPyBvcHRDb2xvciA6IG9wdENvbG9yLnZhbHVlO1xuICAgIGlmIChjb2xvciA9PT0gQ29uc3RhbnRzXzEuQ29uc3RhbnRzLnJhbmRvbUNvbG9yVmFsdWUpIHtcbiAgICAgICAgaWYgKGNvbnNlbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBjb2xvclRvUmdiKHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogY29sb3IsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChibGluaykge1xuICAgICAgICAgICAgcmV0dXJuIENvbnN0YW50c18xLkNvbnN0YW50cy5yYW5kb21Db2xvclZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIENvbnN0YW50c18xLkNvbnN0YW50cy5taWRDb2xvclZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICByZXR1cm4gY29sb3JUb1JnYih7XG4gICAgICAgICAgICB2YWx1ZTogY29sb3IsXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbmV4cG9ydHMuZ2V0TGlua1JhbmRvbUNvbG9yID0gZ2V0TGlua1JhbmRvbUNvbG9yO1xuZnVuY3Rpb24gZ2V0SHNsRnJvbUFuaW1hdGlvbihhbmltYXRpb24pIHtcbiAgICByZXR1cm4gYW5pbWF0aW9uICE9PSB1bmRlZmluZWRcbiAgICAgICAgPyB7XG4gICAgICAgICAgICBoOiBhbmltYXRpb24uaC52YWx1ZSxcbiAgICAgICAgICAgIHM6IGFuaW1hdGlvbi5zLnZhbHVlLFxuICAgICAgICAgICAgbDogYW5pbWF0aW9uLmwudmFsdWUsXG4gICAgICAgIH1cbiAgICAgICAgOiB1bmRlZmluZWQ7XG59XG5leHBvcnRzLmdldEhzbEZyb21BbmltYXRpb24gPSBnZXRIc2xGcm9tQW5pbWF0aW9uO1xuZnVuY3Rpb24gZ2V0SHNsQW5pbWF0aW9uRnJvbUhzbChoc2wsIGFuaW1hdGlvbk9wdGlvbnMsIHJlZHVjZUZhY3Rvcikge1xuICAgIGNvbnN0IHJlc0NvbG9yID0ge1xuICAgICAgICBoOiB7XG4gICAgICAgICAgICBlbmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgdmFsdWU6IGhzbC5oLFxuICAgICAgICB9LFxuICAgICAgICBzOiB7XG4gICAgICAgICAgICBlbmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgdmFsdWU6IGhzbC5zLFxuICAgICAgICB9LFxuICAgICAgICBsOiB7XG4gICAgICAgICAgICBlbmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgdmFsdWU6IGhzbC5sLFxuICAgICAgICB9LFxuICAgIH07XG4gICAgaWYgKGFuaW1hdGlvbk9wdGlvbnMpIHtcbiAgICAgICAgc2V0Q29sb3JBbmltYXRpb24ocmVzQ29sb3IuaCwgYW5pbWF0aW9uT3B0aW9ucy5oLCByZWR1Y2VGYWN0b3IpO1xuICAgICAgICBzZXRDb2xvckFuaW1hdGlvbihyZXNDb2xvci5zLCBhbmltYXRpb25PcHRpb25zLnMsIHJlZHVjZUZhY3Rvcik7XG4gICAgICAgIHNldENvbG9yQW5pbWF0aW9uKHJlc0NvbG9yLmwsIGFuaW1hdGlvbk9wdGlvbnMubCwgcmVkdWNlRmFjdG9yKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc0NvbG9yO1xufVxuZXhwb3J0cy5nZXRIc2xBbmltYXRpb25Gcm9tSHNsID0gZ2V0SHNsQW5pbWF0aW9uRnJvbUhzbDtcbmZ1bmN0aW9uIHNldENvbG9yQW5pbWF0aW9uKGNvbG9yVmFsdWUsIGNvbG9yQW5pbWF0aW9uLCByZWR1Y2VGYWN0b3IpIHtcbiAgICBjb2xvclZhbHVlLmVuYWJsZSA9IGNvbG9yQW5pbWF0aW9uLmVuYWJsZTtcbiAgICBpZiAoY29sb3JWYWx1ZS5lbmFibGUpIHtcbiAgICAgICAgY29sb3JWYWx1ZS52ZWxvY2l0eSA9IChjb2xvckFuaW1hdGlvbi5zcGVlZCAvIDEwMCkgKiByZWR1Y2VGYWN0b3I7XG4gICAgICAgIGlmIChjb2xvckFuaW1hdGlvbi5zeW5jKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29sb3JWYWx1ZS5zdGF0dXMgPSBFbnVtc18xLkFuaW1hdGlvblN0YXR1cy5pbmNyZWFzaW5nO1xuICAgICAgICBjb2xvclZhbHVlLnZlbG9jaXR5ICo9IE1hdGgucmFuZG9tKCk7XG4gICAgICAgIGlmIChjb2xvclZhbHVlLnZhbHVlKSB7XG4gICAgICAgICAgICBjb2xvclZhbHVlLnZhbHVlICo9IE1hdGgucmFuZG9tKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGNvbG9yVmFsdWUudmVsb2NpdHkgPSAwO1xuICAgIH1cbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Utils/ColorUtils.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Utils/Constants.js": +/*!*****************************************************!*\ + !*** ./node_modules/tsparticles/Utils/Constants.js ***! + \*****************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Constants = void 0;\nclass Constants {\n}\nexports.Constants = Constants;\nConstants.canvasClass = \"tsparticles-canvas-el\";\nConstants.randomColorValue = \"random\";\nConstants.midColorValue = \"mid\";\nConstants.touchEndEvent = \"touchend\";\nConstants.mouseDownEvent = \"mousedown\";\nConstants.mouseUpEvent = \"mouseup\";\nConstants.mouseMoveEvent = \"mousemove\";\nConstants.touchStartEvent = \"touchstart\";\nConstants.touchMoveEvent = \"touchmove\";\nConstants.mouseLeaveEvent = \"mouseleave\";\nConstants.mouseOutEvent = \"mouseout\";\nConstants.touchCancelEvent = \"touchcancel\";\nConstants.resizeEvent = \"resize\";\nConstants.visibilityChangeEvent = \"visibilitychange\";\nConstants.noPolygonDataLoaded = \"No polygon data loaded.\";\nConstants.noPolygonFound = \"No polygon found, you need to specify SVG url in config.\";\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXRpbHMvQ29uc3RhbnRzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9VdGlscy9Db25zdGFudHMuanM/YmYzOCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuQ29uc3RhbnRzID0gdm9pZCAwO1xuY2xhc3MgQ29uc3RhbnRzIHtcbn1cbmV4cG9ydHMuQ29uc3RhbnRzID0gQ29uc3RhbnRzO1xuQ29uc3RhbnRzLmNhbnZhc0NsYXNzID0gXCJ0c3BhcnRpY2xlcy1jYW52YXMtZWxcIjtcbkNvbnN0YW50cy5yYW5kb21Db2xvclZhbHVlID0gXCJyYW5kb21cIjtcbkNvbnN0YW50cy5taWRDb2xvclZhbHVlID0gXCJtaWRcIjtcbkNvbnN0YW50cy50b3VjaEVuZEV2ZW50ID0gXCJ0b3VjaGVuZFwiO1xuQ29uc3RhbnRzLm1vdXNlRG93bkV2ZW50ID0gXCJtb3VzZWRvd25cIjtcbkNvbnN0YW50cy5tb3VzZVVwRXZlbnQgPSBcIm1vdXNldXBcIjtcbkNvbnN0YW50cy5tb3VzZU1vdmVFdmVudCA9IFwibW91c2Vtb3ZlXCI7XG5Db25zdGFudHMudG91Y2hTdGFydEV2ZW50ID0gXCJ0b3VjaHN0YXJ0XCI7XG5Db25zdGFudHMudG91Y2hNb3ZlRXZlbnQgPSBcInRvdWNobW92ZVwiO1xuQ29uc3RhbnRzLm1vdXNlTGVhdmVFdmVudCA9IFwibW91c2VsZWF2ZVwiO1xuQ29uc3RhbnRzLm1vdXNlT3V0RXZlbnQgPSBcIm1vdXNlb3V0XCI7XG5Db25zdGFudHMudG91Y2hDYW5jZWxFdmVudCA9IFwidG91Y2hjYW5jZWxcIjtcbkNvbnN0YW50cy5yZXNpemVFdmVudCA9IFwicmVzaXplXCI7XG5Db25zdGFudHMudmlzaWJpbGl0eUNoYW5nZUV2ZW50ID0gXCJ2aXNpYmlsaXR5Y2hhbmdlXCI7XG5Db25zdGFudHMubm9Qb2x5Z29uRGF0YUxvYWRlZCA9IFwiTm8gcG9seWdvbiBkYXRhIGxvYWRlZC5cIjtcbkNvbnN0YW50cy5ub1BvbHlnb25Gb3VuZCA9IFwiTm8gcG9seWdvbiBmb3VuZCwgeW91IG5lZWQgdG8gc3BlY2lmeSBTVkcgdXJsIGluIGNvbmZpZy5cIjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Utils/Constants.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Utils/EventListeners.js": +/*!**********************************************************!*\ + !*** ./node_modules/tsparticles/Utils/EventListeners.js ***! + \**********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.EventListeners = void 0;\nconst Enums_1 = __webpack_require__(/*! ../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst Constants_1 = __webpack_require__(/*! ./Constants */ \"./node_modules/tsparticles/Utils/Constants.js\");\nconst Utils_1 = __webpack_require__(/*! ./Utils */ \"./node_modules/tsparticles/Utils/Utils.js\");\nfunction manageListener(element, event, handler, add, options) {\n if (add) {\n let addOptions = { passive: true };\n if (typeof options === \"boolean\") {\n addOptions.capture = options;\n }\n else if (options !== undefined) {\n addOptions = options;\n }\n element.addEventListener(event, handler, addOptions);\n }\n else {\n const removeOptions = options;\n element.removeEventListener(event, handler, removeOptions);\n }\n}\nclass EventListeners {\n constructor(container) {\n this.container = container;\n this.canPush = true;\n this.mouseMoveHandler = (e) => this.mouseTouchMove(e);\n this.touchStartHandler = (e) => this.mouseTouchMove(e);\n this.touchMoveHandler = (e) => this.mouseTouchMove(e);\n this.touchEndHandler = () => this.mouseTouchFinish();\n this.mouseLeaveHandler = () => this.mouseTouchFinish();\n this.touchCancelHandler = () => this.mouseTouchFinish();\n this.touchEndClickHandler = (e) => this.mouseTouchClick(e);\n this.mouseUpHandler = (e) => this.mouseTouchClick(e);\n this.mouseDownHandler = () => this.mouseDown();\n this.visibilityChangeHandler = () => this.handleVisibilityChange();\n this.themeChangeHandler = (e) => this.handleThemeChange(e);\n this.oldThemeChangeHandler = (e) => this.handleThemeChange(e);\n this.resizeHandler = () => this.handleWindowResize();\n }\n addListeners() {\n this.manageListeners(true);\n }\n removeListeners() {\n this.manageListeners(false);\n }\n manageListeners(add) {\n var _a;\n const container = this.container;\n const options = container.actualOptions;\n const detectType = options.interactivity.detectsOn;\n let mouseLeaveEvent = Constants_1.Constants.mouseLeaveEvent;\n if (detectType === Enums_1.InteractivityDetect.window) {\n container.interactivity.element = window;\n mouseLeaveEvent = Constants_1.Constants.mouseOutEvent;\n }\n else if (detectType === Enums_1.InteractivityDetect.parent && container.canvas.element) {\n const canvasEl = container.canvas.element;\n container.interactivity.element = (_a = canvasEl.parentElement) !== null && _a !== void 0 ? _a : canvasEl.parentNode;\n }\n else {\n container.interactivity.element = container.canvas.element;\n }\n const mediaMatch = !(0, Utils_1.isSsr)() && typeof matchMedia !== \"undefined\" && matchMedia(\"(prefers-color-scheme: dark)\");\n if (mediaMatch) {\n if (mediaMatch.addEventListener !== undefined) {\n manageListener(mediaMatch, \"change\", this.themeChangeHandler, add);\n }\n else if (mediaMatch.addListener !== undefined) {\n if (add) {\n mediaMatch.addListener(this.oldThemeChangeHandler);\n }\n else {\n mediaMatch.removeListener(this.oldThemeChangeHandler);\n }\n }\n }\n const interactivityEl = container.interactivity.element;\n if (!interactivityEl) {\n return;\n }\n const html = interactivityEl;\n if (options.interactivity.events.onHover.enable || options.interactivity.events.onClick.enable) {\n manageListener(interactivityEl, Constants_1.Constants.mouseMoveEvent, this.mouseMoveHandler, add);\n manageListener(interactivityEl, Constants_1.Constants.touchStartEvent, this.touchStartHandler, add);\n manageListener(interactivityEl, Constants_1.Constants.touchMoveEvent, this.touchMoveHandler, add);\n if (!options.interactivity.events.onClick.enable) {\n manageListener(interactivityEl, Constants_1.Constants.touchEndEvent, this.touchEndHandler, add);\n }\n else {\n manageListener(interactivityEl, Constants_1.Constants.touchEndEvent, this.touchEndClickHandler, add);\n manageListener(interactivityEl, Constants_1.Constants.mouseUpEvent, this.mouseUpHandler, add);\n manageListener(interactivityEl, Constants_1.Constants.mouseDownEvent, this.mouseDownHandler, add);\n }\n manageListener(interactivityEl, mouseLeaveEvent, this.mouseLeaveHandler, add);\n manageListener(interactivityEl, Constants_1.Constants.touchCancelEvent, this.touchCancelHandler, add);\n }\n if (container.canvas.element) {\n container.canvas.element.style.pointerEvents = html === container.canvas.element ? \"initial\" : \"none\";\n }\n if (options.interactivity.events.resize) {\n if (typeof ResizeObserver !== \"undefined\") {\n if (this.resizeObserver && !add) {\n if (container.canvas.element) {\n this.resizeObserver.unobserve(container.canvas.element);\n }\n this.resizeObserver.disconnect();\n delete this.resizeObserver;\n }\n else if (!this.resizeObserver && add && container.canvas.element) {\n this.resizeObserver = new ResizeObserver((entries) => {\n const entry = entries.find((e) => e.target === container.canvas.element);\n if (!entry) {\n return;\n }\n this.handleWindowResize();\n });\n this.resizeObserver.observe(container.canvas.element);\n }\n }\n else {\n manageListener(window, Constants_1.Constants.resizeEvent, this.resizeHandler, add);\n }\n }\n if (document) {\n manageListener(document, Constants_1.Constants.visibilityChangeEvent, this.visibilityChangeHandler, add, false);\n }\n }\n handleWindowResize() {\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n delete this.resizeTimeout;\n }\n this.resizeTimeout = setTimeout(() => { var _a; return (_a = this.container.canvas) === null || _a === void 0 ? void 0 : _a.windowResize(); }, 500);\n }\n handleVisibilityChange() {\n const container = this.container;\n const options = container.actualOptions;\n this.mouseTouchFinish();\n if (!options.pauseOnBlur) {\n return;\n }\n if (document === null || document === void 0 ? void 0 : document.hidden) {\n container.pageHidden = true;\n container.pause();\n }\n else {\n container.pageHidden = false;\n if (container.getAnimationStatus()) {\n container.play(true);\n }\n else {\n container.draw(true);\n }\n }\n }\n mouseDown() {\n const interactivity = this.container.interactivity;\n if (interactivity) {\n const mouse = interactivity.mouse;\n mouse.clicking = true;\n mouse.downPosition = mouse.position;\n }\n }\n mouseTouchMove(e) {\n var _a, _b, _c, _d, _e, _f, _g;\n const container = this.container;\n const options = container.actualOptions;\n if (((_a = container.interactivity) === null || _a === void 0 ? void 0 : _a.element) === undefined) {\n return;\n }\n container.interactivity.mouse.inside = true;\n let pos;\n const canvas = container.canvas.element;\n if (e.type.startsWith(\"mouse\")) {\n this.canPush = true;\n const mouseEvent = e;\n if (container.interactivity.element === window) {\n if (canvas) {\n const clientRect = canvas.getBoundingClientRect();\n pos = {\n x: mouseEvent.clientX - clientRect.left,\n y: mouseEvent.clientY - clientRect.top,\n };\n }\n }\n else if (options.interactivity.detectsOn === Enums_1.InteractivityDetect.parent) {\n const source = mouseEvent.target;\n const target = mouseEvent.currentTarget;\n const canvasEl = container.canvas.element;\n if (source && target && canvasEl) {\n const sourceRect = source.getBoundingClientRect();\n const targetRect = target.getBoundingClientRect();\n const canvasRect = canvasEl.getBoundingClientRect();\n pos = {\n x: mouseEvent.offsetX + 2 * sourceRect.left - (targetRect.left + canvasRect.left),\n y: mouseEvent.offsetY + 2 * sourceRect.top - (targetRect.top + canvasRect.top),\n };\n }\n else {\n pos = {\n x: (_b = mouseEvent.offsetX) !== null && _b !== void 0 ? _b : mouseEvent.clientX,\n y: (_c = mouseEvent.offsetY) !== null && _c !== void 0 ? _c : mouseEvent.clientY,\n };\n }\n }\n else {\n if (mouseEvent.target === container.canvas.element) {\n pos = {\n x: (_d = mouseEvent.offsetX) !== null && _d !== void 0 ? _d : mouseEvent.clientX,\n y: (_e = mouseEvent.offsetY) !== null && _e !== void 0 ? _e : mouseEvent.clientY,\n };\n }\n }\n }\n else {\n this.canPush = e.type !== \"touchmove\";\n const touchEvent = e;\n const lastTouch = touchEvent.touches[touchEvent.touches.length - 1];\n const canvasRect = canvas === null || canvas === void 0 ? void 0 : canvas.getBoundingClientRect();\n pos = {\n x: lastTouch.clientX - ((_f = canvasRect === null || canvasRect === void 0 ? void 0 : canvasRect.left) !== null && _f !== void 0 ? _f : 0),\n y: lastTouch.clientY - ((_g = canvasRect === null || canvasRect === void 0 ? void 0 : canvasRect.top) !== null && _g !== void 0 ? _g : 0),\n };\n }\n const pxRatio = container.retina.pixelRatio;\n if (pos) {\n pos.x *= pxRatio;\n pos.y *= pxRatio;\n }\n container.interactivity.mouse.position = pos;\n container.interactivity.status = Constants_1.Constants.mouseMoveEvent;\n }\n mouseTouchFinish() {\n const interactivity = this.container.interactivity;\n if (interactivity === undefined) {\n return;\n }\n const mouse = interactivity.mouse;\n delete mouse.position;\n delete mouse.clickPosition;\n delete mouse.downPosition;\n interactivity.status = Constants_1.Constants.mouseLeaveEvent;\n mouse.inside = false;\n mouse.clicking = false;\n }\n mouseTouchClick(e) {\n const container = this.container;\n const options = container.actualOptions;\n const mouse = container.interactivity.mouse;\n mouse.inside = true;\n let handled = false;\n const mousePosition = mouse.position;\n if (mousePosition === undefined || !options.interactivity.events.onClick.enable) {\n return;\n }\n for (const [, plugin] of container.plugins) {\n if (plugin.clickPositionValid !== undefined) {\n handled = plugin.clickPositionValid(mousePosition);\n if (handled) {\n break;\n }\n }\n }\n if (!handled) {\n this.doMouseTouchClick(e);\n }\n mouse.clicking = false;\n }\n doMouseTouchClick(e) {\n const container = this.container;\n const options = container.actualOptions;\n if (this.canPush) {\n const mousePos = container.interactivity.mouse.position;\n if (mousePos) {\n container.interactivity.mouse.clickPosition = {\n x: mousePos.x,\n y: mousePos.y,\n };\n }\n else {\n return;\n }\n container.interactivity.mouse.clickTime = new Date().getTime();\n const onClick = options.interactivity.events.onClick;\n if (onClick.mode instanceof Array) {\n for (const mode of onClick.mode) {\n this.handleClickMode(mode);\n }\n }\n else {\n this.handleClickMode(onClick.mode);\n }\n }\n if (e.type === \"touchend\") {\n setTimeout(() => this.mouseTouchFinish(), 500);\n }\n }\n handleThemeChange(e) {\n const mediaEvent = e;\n const themeName = mediaEvent.matches\n ? this.container.options.defaultDarkTheme\n : this.container.options.defaultLightTheme;\n const theme = this.container.options.themes.find((theme) => theme.name === themeName);\n if (theme && theme.default.auto) {\n this.container.loadTheme(themeName);\n }\n }\n handleClickMode(mode) {\n const container = this.container;\n const options = container.actualOptions;\n const pushNb = options.interactivity.modes.push.quantity;\n const removeNb = options.interactivity.modes.remove.quantity;\n switch (mode) {\n case Enums_1.ClickMode.push: {\n if (pushNb > 0) {\n const pushOptions = options.interactivity.modes.push;\n const group = (0, Utils_1.itemFromArray)([undefined, ...pushOptions.groups]);\n const groupOptions = group !== undefined ? container.actualOptions.particles.groups[group] : undefined;\n container.particles.push(pushNb, container.interactivity.mouse, groupOptions, group);\n }\n break;\n }\n case Enums_1.ClickMode.remove:\n container.particles.removeQuantity(removeNb);\n break;\n case Enums_1.ClickMode.bubble:\n container.bubble.clicking = true;\n break;\n case Enums_1.ClickMode.repulse:\n container.repulse.clicking = true;\n container.repulse.count = 0;\n for (const particle of container.repulse.particles) {\n particle.velocity.setTo(particle.initialVelocity);\n }\n container.repulse.particles = [];\n container.repulse.finish = false;\n setTimeout(() => {\n if (!container.destroyed) {\n container.repulse.clicking = false;\n }\n }, options.interactivity.modes.repulse.duration * 1000);\n break;\n case Enums_1.ClickMode.attract:\n container.attract.clicking = true;\n container.attract.count = 0;\n for (const particle of container.attract.particles) {\n particle.velocity.setTo(particle.initialVelocity);\n }\n container.attract.particles = [];\n container.attract.finish = false;\n setTimeout(() => {\n if (!container.destroyed) {\n container.attract.clicking = false;\n }\n }, options.interactivity.modes.attract.duration * 1000);\n break;\n case Enums_1.ClickMode.pause:\n if (container.getAnimationStatus()) {\n container.pause();\n }\n else {\n container.play();\n }\n break;\n }\n for (const [, plugin] of container.plugins) {\n if (plugin.handleClickMode) {\n plugin.handleClickMode(mode);\n }\n }\n }\n}\nexports.EventListeners = EventListeners;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXRpbHMvRXZlbnRMaXN0ZW5lcnMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsc0JBQXNCO0FBQ3RCLGdCQUFnQixtQkFBTyxDQUFDLDJEQUFVO0FBQ2xDLG9CQUFvQixtQkFBTyxDQUFDLGtFQUFhO0FBQ3pDLGdCQUFnQixtQkFBTyxDQUFDLDBEQUFTO0FBQ2pDO0FBQ0E7QUFDQSwyQkFBMkI7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdEQUFnRCxRQUFRLDZGQUE2RjtBQUNySjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXRpbHMvRXZlbnRMaXN0ZW5lcnMuanM/ZDkxMiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuRXZlbnRMaXN0ZW5lcnMgPSB2b2lkIDA7XG5jb25zdCBFbnVtc18xID0gcmVxdWlyZShcIi4uL0VudW1zXCIpO1xuY29uc3QgQ29uc3RhbnRzXzEgPSByZXF1aXJlKFwiLi9Db25zdGFudHNcIik7XG5jb25zdCBVdGlsc18xID0gcmVxdWlyZShcIi4vVXRpbHNcIik7XG5mdW5jdGlvbiBtYW5hZ2VMaXN0ZW5lcihlbGVtZW50LCBldmVudCwgaGFuZGxlciwgYWRkLCBvcHRpb25zKSB7XG4gICAgaWYgKGFkZCkge1xuICAgICAgICBsZXQgYWRkT3B0aW9ucyA9IHsgcGFzc2l2ZTogdHJ1ZSB9O1xuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMgPT09IFwiYm9vbGVhblwiKSB7XG4gICAgICAgICAgICBhZGRPcHRpb25zLmNhcHR1cmUgPSBvcHRpb25zO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG9wdGlvbnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgYWRkT3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgICAgIH1cbiAgICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKGV2ZW50LCBoYW5kbGVyLCBhZGRPcHRpb25zKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGNvbnN0IHJlbW92ZU9wdGlvbnMgPSBvcHRpb25zO1xuICAgICAgICBlbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnQsIGhhbmRsZXIsIHJlbW92ZU9wdGlvbnMpO1xuICAgIH1cbn1cbmNsYXNzIEV2ZW50TGlzdGVuZXJzIHtcbiAgICBjb25zdHJ1Y3Rvcihjb250YWluZXIpIHtcbiAgICAgICAgdGhpcy5jb250YWluZXIgPSBjb250YWluZXI7XG4gICAgICAgIHRoaXMuY2FuUHVzaCA9IHRydWU7XG4gICAgICAgIHRoaXMubW91c2VNb3ZlSGFuZGxlciA9IChlKSA9PiB0aGlzLm1vdXNlVG91Y2hNb3ZlKGUpO1xuICAgICAgICB0aGlzLnRvdWNoU3RhcnRIYW5kbGVyID0gKGUpID0+IHRoaXMubW91c2VUb3VjaE1vdmUoZSk7XG4gICAgICAgIHRoaXMudG91Y2hNb3ZlSGFuZGxlciA9IChlKSA9PiB0aGlzLm1vdXNlVG91Y2hNb3ZlKGUpO1xuICAgICAgICB0aGlzLnRvdWNoRW5kSGFuZGxlciA9ICgpID0+IHRoaXMubW91c2VUb3VjaEZpbmlzaCgpO1xuICAgICAgICB0aGlzLm1vdXNlTGVhdmVIYW5kbGVyID0gKCkgPT4gdGhpcy5tb3VzZVRvdWNoRmluaXNoKCk7XG4gICAgICAgIHRoaXMudG91Y2hDYW5jZWxIYW5kbGVyID0gKCkgPT4gdGhpcy5tb3VzZVRvdWNoRmluaXNoKCk7XG4gICAgICAgIHRoaXMudG91Y2hFbmRDbGlja0hhbmRsZXIgPSAoZSkgPT4gdGhpcy5tb3VzZVRvdWNoQ2xpY2soZSk7XG4gICAgICAgIHRoaXMubW91c2VVcEhhbmRsZXIgPSAoZSkgPT4gdGhpcy5tb3VzZVRvdWNoQ2xpY2soZSk7XG4gICAgICAgIHRoaXMubW91c2VEb3duSGFuZGxlciA9ICgpID0+IHRoaXMubW91c2VEb3duKCk7XG4gICAgICAgIHRoaXMudmlzaWJpbGl0eUNoYW5nZUhhbmRsZXIgPSAoKSA9PiB0aGlzLmhhbmRsZVZpc2liaWxpdHlDaGFuZ2UoKTtcbiAgICAgICAgdGhpcy50aGVtZUNoYW5nZUhhbmRsZXIgPSAoZSkgPT4gdGhpcy5oYW5kbGVUaGVtZUNoYW5nZShlKTtcbiAgICAgICAgdGhpcy5vbGRUaGVtZUNoYW5nZUhhbmRsZXIgPSAoZSkgPT4gdGhpcy5oYW5kbGVUaGVtZUNoYW5nZShlKTtcbiAgICAgICAgdGhpcy5yZXNpemVIYW5kbGVyID0gKCkgPT4gdGhpcy5oYW5kbGVXaW5kb3dSZXNpemUoKTtcbiAgICB9XG4gICAgYWRkTGlzdGVuZXJzKCkge1xuICAgICAgICB0aGlzLm1hbmFnZUxpc3RlbmVycyh0cnVlKTtcbiAgICB9XG4gICAgcmVtb3ZlTGlzdGVuZXJzKCkge1xuICAgICAgICB0aGlzLm1hbmFnZUxpc3RlbmVycyhmYWxzZSk7XG4gICAgfVxuICAgIG1hbmFnZUxpc3RlbmVycyhhZGQpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IGNvbnRhaW5lci5hY3R1YWxPcHRpb25zO1xuICAgICAgICBjb25zdCBkZXRlY3RUeXBlID0gb3B0aW9ucy5pbnRlcmFjdGl2aXR5LmRldGVjdHNPbjtcbiAgICAgICAgbGV0IG1vdXNlTGVhdmVFdmVudCA9IENvbnN0YW50c18xLkNvbnN0YW50cy5tb3VzZUxlYXZlRXZlbnQ7XG4gICAgICAgIGlmIChkZXRlY3RUeXBlID09PSBFbnVtc18xLkludGVyYWN0aXZpdHlEZXRlY3Qud2luZG93KSB7XG4gICAgICAgICAgICBjb250YWluZXIuaW50ZXJhY3Rpdml0eS5lbGVtZW50ID0gd2luZG93O1xuICAgICAgICAgICAgbW91c2VMZWF2ZUV2ZW50ID0gQ29uc3RhbnRzXzEuQ29uc3RhbnRzLm1vdXNlT3V0RXZlbnQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoZGV0ZWN0VHlwZSA9PT0gRW51bXNfMS5JbnRlcmFjdGl2aXR5RGV0ZWN0LnBhcmVudCAmJiBjb250YWluZXIuY2FudmFzLmVsZW1lbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGNhbnZhc0VsID0gY29udGFpbmVyLmNhbnZhcy5lbGVtZW50O1xuICAgICAgICAgICAgY29udGFpbmVyLmludGVyYWN0aXZpdHkuZWxlbWVudCA9IChfYSA9IGNhbnZhc0VsLnBhcmVudEVsZW1lbnQpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGNhbnZhc0VsLnBhcmVudE5vZGU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb250YWluZXIuaW50ZXJhY3Rpdml0eS5lbGVtZW50ID0gY29udGFpbmVyLmNhbnZhcy5lbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1lZGlhTWF0Y2ggPSAhKDAsIFV0aWxzXzEuaXNTc3IpKCkgJiYgdHlwZW9mIG1hdGNoTWVkaWEgIT09IFwidW5kZWZpbmVkXCIgJiYgbWF0Y2hNZWRpYShcIihwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaylcIik7XG4gICAgICAgIGlmIChtZWRpYU1hdGNoKSB7XG4gICAgICAgICAgICBpZiAobWVkaWFNYXRjaC5hZGRFdmVudExpc3RlbmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBtYW5hZ2VMaXN0ZW5lcihtZWRpYU1hdGNoLCBcImNoYW5nZVwiLCB0aGlzLnRoZW1lQ2hhbmdlSGFuZGxlciwgYWRkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKG1lZGlhTWF0Y2guYWRkTGlzdGVuZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGlmIChhZGQpIHtcbiAgICAgICAgICAgICAgICAgICAgbWVkaWFNYXRjaC5hZGRMaXN0ZW5lcih0aGlzLm9sZFRoZW1lQ2hhbmdlSGFuZGxlcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBtZWRpYU1hdGNoLnJlbW92ZUxpc3RlbmVyKHRoaXMub2xkVGhlbWVDaGFuZ2VIYW5kbGVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW50ZXJhY3Rpdml0eUVsID0gY29udGFpbmVyLmludGVyYWN0aXZpdHkuZWxlbWVudDtcbiAgICAgICAgaWYgKCFpbnRlcmFjdGl2aXR5RWwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBodG1sID0gaW50ZXJhY3Rpdml0eUVsO1xuICAgICAgICBpZiAob3B0aW9ucy5pbnRlcmFjdGl2aXR5LmV2ZW50cy5vbkhvdmVyLmVuYWJsZSB8fCBvcHRpb25zLmludGVyYWN0aXZpdHkuZXZlbnRzLm9uQ2xpY2suZW5hYmxlKSB7XG4gICAgICAgICAgICBtYW5hZ2VMaXN0ZW5lcihpbnRlcmFjdGl2aXR5RWwsIENvbnN0YW50c18xLkNvbnN0YW50cy5tb3VzZU1vdmVFdmVudCwgdGhpcy5tb3VzZU1vdmVIYW5kbGVyLCBhZGQpO1xuICAgICAgICAgICAgbWFuYWdlTGlzdGVuZXIoaW50ZXJhY3Rpdml0eUVsLCBDb25zdGFudHNfMS5Db25zdGFudHMudG91Y2hTdGFydEV2ZW50LCB0aGlzLnRvdWNoU3RhcnRIYW5kbGVyLCBhZGQpO1xuICAgICAgICAgICAgbWFuYWdlTGlzdGVuZXIoaW50ZXJhY3Rpdml0eUVsLCBDb25zdGFudHNfMS5Db25zdGFudHMudG91Y2hNb3ZlRXZlbnQsIHRoaXMudG91Y2hNb3ZlSGFuZGxlciwgYWRkKTtcbiAgICAgICAgICAgIGlmICghb3B0aW9ucy5pbnRlcmFjdGl2aXR5LmV2ZW50cy5vbkNsaWNrLmVuYWJsZSkge1xuICAgICAgICAgICAgICAgIG1hbmFnZUxpc3RlbmVyKGludGVyYWN0aXZpdHlFbCwgQ29uc3RhbnRzXzEuQ29uc3RhbnRzLnRvdWNoRW5kRXZlbnQsIHRoaXMudG91Y2hFbmRIYW5kbGVyLCBhZGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgbWFuYWdlTGlzdGVuZXIoaW50ZXJhY3Rpdml0eUVsLCBDb25zdGFudHNfMS5Db25zdGFudHMudG91Y2hFbmRFdmVudCwgdGhpcy50b3VjaEVuZENsaWNrSGFuZGxlciwgYWRkKTtcbiAgICAgICAgICAgICAgICBtYW5hZ2VMaXN0ZW5lcihpbnRlcmFjdGl2aXR5RWwsIENvbnN0YW50c18xLkNvbnN0YW50cy5tb3VzZVVwRXZlbnQsIHRoaXMubW91c2VVcEhhbmRsZXIsIGFkZCk7XG4gICAgICAgICAgICAgICAgbWFuYWdlTGlzdGVuZXIoaW50ZXJhY3Rpdml0eUVsLCBDb25zdGFudHNfMS5Db25zdGFudHMubW91c2VEb3duRXZlbnQsIHRoaXMubW91c2VEb3duSGFuZGxlciwgYWRkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG1hbmFnZUxpc3RlbmVyKGludGVyYWN0aXZpdHlFbCwgbW91c2VMZWF2ZUV2ZW50LCB0aGlzLm1vdXNlTGVhdmVIYW5kbGVyLCBhZGQpO1xuICAgICAgICAgICAgbWFuYWdlTGlzdGVuZXIoaW50ZXJhY3Rpdml0eUVsLCBDb25zdGFudHNfMS5Db25zdGFudHMudG91Y2hDYW5jZWxFdmVudCwgdGhpcy50b3VjaENhbmNlbEhhbmRsZXIsIGFkZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbnRhaW5lci5jYW52YXMuZWxlbWVudCkge1xuICAgICAgICAgICAgY29udGFpbmVyLmNhbnZhcy5lbGVtZW50LnN0eWxlLnBvaW50ZXJFdmVudHMgPSBodG1sID09PSBjb250YWluZXIuY2FudmFzLmVsZW1lbnQgPyBcImluaXRpYWxcIiA6IFwibm9uZVwiO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLmludGVyYWN0aXZpdHkuZXZlbnRzLnJlc2l6ZSkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBSZXNpemVPYnNlcnZlciAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnJlc2l6ZU9ic2VydmVyICYmICFhZGQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRhaW5lci5jYW52YXMuZWxlbWVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlci51bm9ic2VydmUoY29udGFpbmVyLmNhbnZhcy5lbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMucmVzaXplT2JzZXJ2ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKCF0aGlzLnJlc2l6ZU9ic2VydmVyICYmIGFkZCAmJiBjb250YWluZXIuY2FudmFzLmVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoZW50cmllcykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZW50cnkgPSBlbnRyaWVzLmZpbmQoKGUpID0+IGUudGFyZ2V0ID09PSBjb250YWluZXIuY2FudmFzLmVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFlbnRyeSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlV2luZG93UmVzaXplKCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUoY29udGFpbmVyLmNhbnZhcy5lbGVtZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBtYW5hZ2VMaXN0ZW5lcih3aW5kb3csIENvbnN0YW50c18xLkNvbnN0YW50cy5yZXNpemVFdmVudCwgdGhpcy5yZXNpemVIYW5kbGVyLCBhZGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChkb2N1bWVudCkge1xuICAgICAgICAgICAgbWFuYWdlTGlzdGVuZXIoZG9jdW1lbnQsIENvbnN0YW50c18xLkNvbnN0YW50cy52aXNpYmlsaXR5Q2hhbmdlRXZlbnQsIHRoaXMudmlzaWJpbGl0eUNoYW5nZUhhbmRsZXIsIGFkZCwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGhhbmRsZVdpbmRvd1Jlc2l6ZSgpIHtcbiAgICAgICAgaWYgKHRoaXMucmVzaXplVGltZW91dCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMucmVzaXplVGltZW91dCk7XG4gICAgICAgICAgICBkZWxldGUgdGhpcy5yZXNpemVUaW1lb3V0O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVzaXplVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4geyB2YXIgX2E7IHJldHVybiAoX2EgPSB0aGlzLmNvbnRhaW5lci5jYW52YXMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS53aW5kb3dSZXNpemUoKTsgfSwgNTAwKTtcbiAgICB9XG4gICAgaGFuZGxlVmlzaWJpbGl0eUNoYW5nZSgpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXI7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSBjb250YWluZXIuYWN0dWFsT3B0aW9ucztcbiAgICAgICAgdGhpcy5tb3VzZVRvdWNoRmluaXNoKCk7XG4gICAgICAgIGlmICghb3B0aW9ucy5wYXVzZU9uQmx1cikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkb2N1bWVudCA9PT0gbnVsbCB8fCBkb2N1bWVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogZG9jdW1lbnQuaGlkZGVuKSB7XG4gICAgICAgICAgICBjb250YWluZXIucGFnZUhpZGRlbiA9IHRydWU7XG4gICAgICAgICAgICBjb250YWluZXIucGF1c2UoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnRhaW5lci5wYWdlSGlkZGVuID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAoY29udGFpbmVyLmdldEFuaW1hdGlvblN0YXR1cygpKSB7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLnBsYXkodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb250YWluZXIuZHJhdyh0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBtb3VzZURvd24oKSB7XG4gICAgICAgIGNvbnN0IGludGVyYWN0aXZpdHkgPSB0aGlzLmNvbnRhaW5lci5pbnRlcmFjdGl2aXR5O1xuICAgICAgICBpZiAoaW50ZXJhY3Rpdml0eSkge1xuICAgICAgICAgICAgY29uc3QgbW91c2UgPSBpbnRlcmFjdGl2aXR5Lm1vdXNlO1xuICAgICAgICAgICAgbW91c2UuY2xpY2tpbmcgPSB0cnVlO1xuICAgICAgICAgICAgbW91c2UuZG93blBvc2l0aW9uID0gbW91c2UucG9zaXRpb247XG4gICAgICAgIH1cbiAgICB9XG4gICAgbW91c2VUb3VjaE1vdmUoZSkge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2QsIF9lLCBfZiwgX2c7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyO1xuICAgICAgICBjb25zdCBvcHRpb25zID0gY29udGFpbmVyLmFjdHVhbE9wdGlvbnM7XG4gICAgICAgIGlmICgoKF9hID0gY29udGFpbmVyLmludGVyYWN0aXZpdHkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5lbGVtZW50KSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29udGFpbmVyLmludGVyYWN0aXZpdHkubW91c2UuaW5zaWRlID0gdHJ1ZTtcbiAgICAgICAgbGV0IHBvcztcbiAgICAgICAgY29uc3QgY2FudmFzID0gY29udGFpbmVyLmNhbnZhcy5lbGVtZW50O1xuICAgICAgICBpZiAoZS50eXBlLnN0YXJ0c1dpdGgoXCJtb3VzZVwiKSkge1xuICAgICAgICAgICAgdGhpcy5jYW5QdXNoID0gdHJ1ZTtcbiAgICAgICAgICAgIGNvbnN0IG1vdXNlRXZlbnQgPSBlO1xuICAgICAgICAgICAgaWYgKGNvbnRhaW5lci5pbnRlcmFjdGl2aXR5LmVsZW1lbnQgPT09IHdpbmRvdykge1xuICAgICAgICAgICAgICAgIGlmIChjYW52YXMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2xpZW50UmVjdCA9IGNhbnZhcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgICAgICAgICAgcG9zID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgeDogbW91c2VFdmVudC5jbGllbnRYIC0gY2xpZW50UmVjdC5sZWZ0LFxuICAgICAgICAgICAgICAgICAgICAgICAgeTogbW91c2VFdmVudC5jbGllbnRZIC0gY2xpZW50UmVjdC50b3AsXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAob3B0aW9ucy5pbnRlcmFjdGl2aXR5LmRldGVjdHNPbiA9PT0gRW51bXNfMS5JbnRlcmFjdGl2aXR5RGV0ZWN0LnBhcmVudCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNvdXJjZSA9IG1vdXNlRXZlbnQudGFyZ2V0O1xuICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IG1vdXNlRXZlbnQuY3VycmVudFRhcmdldDtcbiAgICAgICAgICAgICAgICBjb25zdCBjYW52YXNFbCA9IGNvbnRhaW5lci5jYW52YXMuZWxlbWVudDtcbiAgICAgICAgICAgICAgICBpZiAoc291cmNlICYmIHRhcmdldCAmJiBjYW52YXNFbCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzb3VyY2VSZWN0ID0gc291cmNlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXRSZWN0ID0gdGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjYW52YXNSZWN0ID0gY2FudmFzRWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgICAgIHBvcyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHg6IG1vdXNlRXZlbnQub2Zmc2V0WCArIDIgKiBzb3VyY2VSZWN0LmxlZnQgLSAodGFyZ2V0UmVjdC5sZWZ0ICsgY2FudmFzUmVjdC5sZWZ0KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHk6IG1vdXNlRXZlbnQub2Zmc2V0WSArIDIgKiBzb3VyY2VSZWN0LnRvcCAtICh0YXJnZXRSZWN0LnRvcCArIGNhbnZhc1JlY3QudG9wKSxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHBvcyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHg6IChfYiA9IG1vdXNlRXZlbnQub2Zmc2V0WCkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogbW91c2VFdmVudC5jbGllbnRYLFxuICAgICAgICAgICAgICAgICAgICAgICAgeTogKF9jID0gbW91c2VFdmVudC5vZmZzZXRZKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiBtb3VzZUV2ZW50LmNsaWVudFksXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKG1vdXNlRXZlbnQudGFyZ2V0ID09PSBjb250YWluZXIuY2FudmFzLmVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgeDogKF9kID0gbW91c2VFdmVudC5vZmZzZXRYKSAhPT0gbnVsbCAmJiBfZCAhPT0gdm9pZCAwID8gX2QgOiBtb3VzZUV2ZW50LmNsaWVudFgsXG4gICAgICAgICAgICAgICAgICAgICAgICB5OiAoX2UgPSBtb3VzZUV2ZW50Lm9mZnNldFkpICE9PSBudWxsICYmIF9lICE9PSB2b2lkIDAgPyBfZSA6IG1vdXNlRXZlbnQuY2xpZW50WSxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNhblB1c2ggPSBlLnR5cGUgIT09IFwidG91Y2htb3ZlXCI7XG4gICAgICAgICAgICBjb25zdCB0b3VjaEV2ZW50ID0gZTtcbiAgICAgICAgICAgIGNvbnN0IGxhc3RUb3VjaCA9IHRvdWNoRXZlbnQudG91Y2hlc1t0b3VjaEV2ZW50LnRvdWNoZXMubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICBjb25zdCBjYW52YXNSZWN0ID0gY2FudmFzID09PSBudWxsIHx8IGNhbnZhcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2FudmFzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgcG9zID0ge1xuICAgICAgICAgICAgICAgIHg6IGxhc3RUb3VjaC5jbGllbnRYIC0gKChfZiA9IGNhbnZhc1JlY3QgPT09IG51bGwgfHwgY2FudmFzUmVjdCA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2FudmFzUmVjdC5sZWZ0KSAhPT0gbnVsbCAmJiBfZiAhPT0gdm9pZCAwID8gX2YgOiAwKSxcbiAgICAgICAgICAgICAgICB5OiBsYXN0VG91Y2guY2xpZW50WSAtICgoX2cgPSBjYW52YXNSZWN0ID09PSBudWxsIHx8IGNhbnZhc1JlY3QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNhbnZhc1JlY3QudG9wKSAhPT0gbnVsbCAmJiBfZyAhPT0gdm9pZCAwID8gX2cgOiAwKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcHhSYXRpbyA9IGNvbnRhaW5lci5yZXRpbmEucGl4ZWxSYXRpbztcbiAgICAgICAgaWYgKHBvcykge1xuICAgICAgICAgICAgcG9zLnggKj0gcHhSYXRpbztcbiAgICAgICAgICAgIHBvcy55ICo9IHB4UmF0aW87XG4gICAgICAgIH1cbiAgICAgICAgY29udGFpbmVyLmludGVyYWN0aXZpdHkubW91c2UucG9zaXRpb24gPSBwb3M7XG4gICAgICAgIGNvbnRhaW5lci5pbnRlcmFjdGl2aXR5LnN0YXR1cyA9IENvbnN0YW50c18xLkNvbnN0YW50cy5tb3VzZU1vdmVFdmVudDtcbiAgICB9XG4gICAgbW91c2VUb3VjaEZpbmlzaCgpIHtcbiAgICAgICAgY29uc3QgaW50ZXJhY3Rpdml0eSA9IHRoaXMuY29udGFpbmVyLmludGVyYWN0aXZpdHk7XG4gICAgICAgIGlmIChpbnRlcmFjdGl2aXR5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtb3VzZSA9IGludGVyYWN0aXZpdHkubW91c2U7XG4gICAgICAgIGRlbGV0ZSBtb3VzZS5wb3NpdGlvbjtcbiAgICAgICAgZGVsZXRlIG1vdXNlLmNsaWNrUG9zaXRpb247XG4gICAgICAgIGRlbGV0ZSBtb3VzZS5kb3duUG9zaXRpb247XG4gICAgICAgIGludGVyYWN0aXZpdHkuc3RhdHVzID0gQ29uc3RhbnRzXzEuQ29uc3RhbnRzLm1vdXNlTGVhdmVFdmVudDtcbiAgICAgICAgbW91c2UuaW5zaWRlID0gZmFsc2U7XG4gICAgICAgIG1vdXNlLmNsaWNraW5nID0gZmFsc2U7XG4gICAgfVxuICAgIG1vdXNlVG91Y2hDbGljayhlKSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyO1xuICAgICAgICBjb25zdCBvcHRpb25zID0gY29udGFpbmVyLmFjdHVhbE9wdGlvbnM7XG4gICAgICAgIGNvbnN0IG1vdXNlID0gY29udGFpbmVyLmludGVyYWN0aXZpdHkubW91c2U7XG4gICAgICAgIG1vdXNlLmluc2lkZSA9IHRydWU7XG4gICAgICAgIGxldCBoYW5kbGVkID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IG1vdXNlUG9zaXRpb24gPSBtb3VzZS5wb3NpdGlvbjtcbiAgICAgICAgaWYgKG1vdXNlUG9zaXRpb24gPT09IHVuZGVmaW5lZCB8fCAhb3B0aW9ucy5pbnRlcmFjdGl2aXR5LmV2ZW50cy5vbkNsaWNrLmVuYWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgWywgcGx1Z2luXSBvZiBjb250YWluZXIucGx1Z2lucykge1xuICAgICAgICAgICAgaWYgKHBsdWdpbi5jbGlja1Bvc2l0aW9uVmFsaWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGhhbmRsZWQgPSBwbHVnaW4uY2xpY2tQb3NpdGlvblZhbGlkKG1vdXNlUG9zaXRpb24pO1xuICAgICAgICAgICAgICAgIGlmIChoYW5kbGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIWhhbmRsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZG9Nb3VzZVRvdWNoQ2xpY2soZSk7XG4gICAgICAgIH1cbiAgICAgICAgbW91c2UuY2xpY2tpbmcgPSBmYWxzZTtcbiAgICB9XG4gICAgZG9Nb3VzZVRvdWNoQ2xpY2soZSkge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IGNvbnRhaW5lci5hY3R1YWxPcHRpb25zO1xuICAgICAgICBpZiAodGhpcy5jYW5QdXNoKSB7XG4gICAgICAgICAgICBjb25zdCBtb3VzZVBvcyA9IGNvbnRhaW5lci5pbnRlcmFjdGl2aXR5Lm1vdXNlLnBvc2l0aW9uO1xuICAgICAgICAgICAgaWYgKG1vdXNlUG9zKSB7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLmludGVyYWN0aXZpdHkubW91c2UuY2xpY2tQb3NpdGlvbiA9IHtcbiAgICAgICAgICAgICAgICAgICAgeDogbW91c2VQb3MueCxcbiAgICAgICAgICAgICAgICAgICAgeTogbW91c2VQb3MueSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29udGFpbmVyLmludGVyYWN0aXZpdHkubW91c2UuY2xpY2tUaW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gICAgICAgICAgICBjb25zdCBvbkNsaWNrID0gb3B0aW9ucy5pbnRlcmFjdGl2aXR5LmV2ZW50cy5vbkNsaWNrO1xuICAgICAgICAgICAgaWYgKG9uQ2xpY2subW9kZSBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBtb2RlIG9mIG9uQ2xpY2subW9kZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUNsaWNrTW9kZShtb2RlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUNsaWNrTW9kZShvbkNsaWNrLm1vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChlLnR5cGUgPT09IFwidG91Y2hlbmRcIikge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLm1vdXNlVG91Y2hGaW5pc2goKSwgNTAwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBoYW5kbGVUaGVtZUNoYW5nZShlKSB7XG4gICAgICAgIGNvbnN0IG1lZGlhRXZlbnQgPSBlO1xuICAgICAgICBjb25zdCB0aGVtZU5hbWUgPSBtZWRpYUV2ZW50Lm1hdGNoZXNcbiAgICAgICAgICAgID8gdGhpcy5jb250YWluZXIub3B0aW9ucy5kZWZhdWx0RGFya1RoZW1lXG4gICAgICAgICAgICA6IHRoaXMuY29udGFpbmVyLm9wdGlvbnMuZGVmYXVsdExpZ2h0VGhlbWU7XG4gICAgICAgIGNvbnN0IHRoZW1lID0gdGhpcy5jb250YWluZXIub3B0aW9ucy50aGVtZXMuZmluZCgodGhlbWUpID0+IHRoZW1lLm5hbWUgPT09IHRoZW1lTmFtZSk7XG4gICAgICAgIGlmICh0aGVtZSAmJiB0aGVtZS5kZWZhdWx0LmF1dG8pIHtcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLmxvYWRUaGVtZSh0aGVtZU5hbWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGhhbmRsZUNsaWNrTW9kZShtb2RlKSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyO1xuICAgICAgICBjb25zdCBvcHRpb25zID0gY29udGFpbmVyLmFjdHVhbE9wdGlvbnM7XG4gICAgICAgIGNvbnN0IHB1c2hOYiA9IG9wdGlvbnMuaW50ZXJhY3Rpdml0eS5tb2Rlcy5wdXNoLnF1YW50aXR5O1xuICAgICAgICBjb25zdCByZW1vdmVOYiA9IG9wdGlvbnMuaW50ZXJhY3Rpdml0eS5tb2Rlcy5yZW1vdmUucXVhbnRpdHk7XG4gICAgICAgIHN3aXRjaCAobW9kZSkge1xuICAgICAgICAgICAgY2FzZSBFbnVtc18xLkNsaWNrTW9kZS5wdXNoOiB7XG4gICAgICAgICAgICAgICAgaWYgKHB1c2hOYiA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHVzaE9wdGlvbnMgPSBvcHRpb25zLmludGVyYWN0aXZpdHkubW9kZXMucHVzaDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSAoMCwgVXRpbHNfMS5pdGVtRnJvbUFycmF5KShbdW5kZWZpbmVkLCAuLi5wdXNoT3B0aW9ucy5ncm91cHNdKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ3JvdXBPcHRpb25zID0gZ3JvdXAgIT09IHVuZGVmaW5lZCA/IGNvbnRhaW5lci5hY3R1YWxPcHRpb25zLnBhcnRpY2xlcy5ncm91cHNbZ3JvdXBdIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICBjb250YWluZXIucGFydGljbGVzLnB1c2gocHVzaE5iLCBjb250YWluZXIuaW50ZXJhY3Rpdml0eS5tb3VzZSwgZ3JvdXBPcHRpb25zLCBncm91cCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBFbnVtc18xLkNsaWNrTW9kZS5yZW1vdmU6XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLnBhcnRpY2xlcy5yZW1vdmVRdWFudGl0eShyZW1vdmVOYik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEVudW1zXzEuQ2xpY2tNb2RlLmJ1YmJsZTpcbiAgICAgICAgICAgICAgICBjb250YWluZXIuYnViYmxlLmNsaWNraW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRW51bXNfMS5DbGlja01vZGUucmVwdWxzZTpcbiAgICAgICAgICAgICAgICBjb250YWluZXIucmVwdWxzZS5jbGlja2luZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLnJlcHVsc2UuY291bnQgPSAwO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcGFydGljbGUgb2YgY29udGFpbmVyLnJlcHVsc2UucGFydGljbGVzKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhcnRpY2xlLnZlbG9jaXR5LnNldFRvKHBhcnRpY2xlLmluaXRpYWxWZWxvY2l0eSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnRhaW5lci5yZXB1bHNlLnBhcnRpY2xlcyA9IFtdO1xuICAgICAgICAgICAgICAgIGNvbnRhaW5lci5yZXB1bHNlLmZpbmlzaCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbnRhaW5lci5kZXN0cm95ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lci5yZXB1bHNlLmNsaWNraW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LCBvcHRpb25zLmludGVyYWN0aXZpdHkubW9kZXMucmVwdWxzZS5kdXJhdGlvbiAqIDEwMDApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBFbnVtc18xLkNsaWNrTW9kZS5hdHRyYWN0OlxuICAgICAgICAgICAgICAgIGNvbnRhaW5lci5hdHRyYWN0LmNsaWNraW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBjb250YWluZXIuYXR0cmFjdC5jb3VudCA9IDA7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBwYXJ0aWNsZSBvZiBjb250YWluZXIuYXR0cmFjdC5wYXJ0aWNsZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFydGljbGUudmVsb2NpdHkuc2V0VG8ocGFydGljbGUuaW5pdGlhbFZlbG9jaXR5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLmF0dHJhY3QucGFydGljbGVzID0gW107XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLmF0dHJhY3QuZmluaXNoID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghY29udGFpbmVyLmRlc3Ryb3llZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyLmF0dHJhY3QuY2xpY2tpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sIG9wdGlvbnMuaW50ZXJhY3Rpdml0eS5tb2Rlcy5hdHRyYWN0LmR1cmF0aW9uICogMTAwMCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEVudW1zXzEuQ2xpY2tNb2RlLnBhdXNlOlxuICAgICAgICAgICAgICAgIGlmIChjb250YWluZXIuZ2V0QW5pbWF0aW9uU3RhdHVzKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyLnBhdXNlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb250YWluZXIucGxheSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IFssIHBsdWdpbl0gb2YgY29udGFpbmVyLnBsdWdpbnMpIHtcbiAgICAgICAgICAgIGlmIChwbHVnaW4uaGFuZGxlQ2xpY2tNb2RlKSB7XG4gICAgICAgICAgICAgICAgcGx1Z2luLmhhbmRsZUNsaWNrTW9kZShtb2RlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuRXZlbnRMaXN0ZW5lcnMgPSBFdmVudExpc3RlbmVycztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Utils/EventListeners.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Utils/NumberUtils.js": +/*!*******************************************************!*\ + !*** ./node_modules/tsparticles/Utils/NumberUtils.js ***! + \*******************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.calcEasing = exports.collisionVelocity = exports.getParticleBaseVelocity = exports.getParticleDirectionAngle = exports.getDistance = exports.getDistances = exports.getValue = exports.setRangeValue = exports.getRangeMax = exports.getRangeMin = exports.getRangeValue = exports.randomInRange = exports.mix = exports.clamp = void 0;\nconst Enums_1 = __webpack_require__(/*! ../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst Vector_1 = __webpack_require__(/*! ../Core/Particle/Vector */ \"./node_modules/tsparticles/Core/Particle/Vector.js\");\nfunction clamp(num, min, max) {\n return Math.min(Math.max(num, min), max);\n}\nexports.clamp = clamp;\nfunction mix(comp1, comp2, weight1, weight2) {\n return Math.floor((comp1 * weight1 + comp2 * weight2) / (weight1 + weight2));\n}\nexports.mix = mix;\nfunction randomInRange(r) {\n const max = getRangeMax(r);\n let min = getRangeMin(r);\n if (max === min) {\n min = 0;\n }\n return Math.random() * (max - min) + min;\n}\nexports.randomInRange = randomInRange;\nfunction getRangeValue(value) {\n return typeof value === \"number\" ? value : randomInRange(value);\n}\nexports.getRangeValue = getRangeValue;\nfunction getRangeMin(value) {\n return typeof value === \"number\" ? value : value.min;\n}\nexports.getRangeMin = getRangeMin;\nfunction getRangeMax(value) {\n return typeof value === \"number\" ? value : value.max;\n}\nexports.getRangeMax = getRangeMax;\nfunction setRangeValue(source, value) {\n if (source === value || (value === undefined && typeof source === \"number\")) {\n return source;\n }\n const min = getRangeMin(source), max = getRangeMax(source);\n return value !== undefined\n ? {\n min: Math.min(min, value),\n max: Math.max(max, value),\n }\n : setRangeValue(min, max);\n}\nexports.setRangeValue = setRangeValue;\nfunction getValue(options) {\n const random = options.random;\n const { enable, minimumValue } = typeof random === \"boolean\" ? { enable: random, minimumValue: 0 } : random;\n return enable ? getRangeValue(setRangeValue(options.value, minimumValue)) : getRangeValue(options.value);\n}\nexports.getValue = getValue;\nfunction getDistances(pointA, pointB) {\n const dx = pointA.x - pointB.x;\n const dy = pointA.y - pointB.y;\n return { dx: dx, dy: dy, distance: Math.sqrt(dx * dx + dy * dy) };\n}\nexports.getDistances = getDistances;\nfunction getDistance(pointA, pointB) {\n return getDistances(pointA, pointB).distance;\n}\nexports.getDistance = getDistance;\nfunction getParticleDirectionAngle(direction) {\n if (typeof direction === \"number\") {\n return (direction * Math.PI) / 180;\n }\n else {\n switch (direction) {\n case Enums_1.MoveDirection.top:\n return -Math.PI / 2;\n case Enums_1.MoveDirection.topRight:\n return -Math.PI / 4;\n case Enums_1.MoveDirection.right:\n return 0;\n case Enums_1.MoveDirection.bottomRight:\n return Math.PI / 4;\n case Enums_1.MoveDirection.bottom:\n return Math.PI / 2;\n case Enums_1.MoveDirection.bottomLeft:\n return (3 * Math.PI) / 4;\n case Enums_1.MoveDirection.left:\n return Math.PI;\n case Enums_1.MoveDirection.topLeft:\n return (-3 * Math.PI) / 4;\n case Enums_1.MoveDirection.none:\n default:\n return Math.random() * Math.PI * 2;\n }\n }\n}\nexports.getParticleDirectionAngle = getParticleDirectionAngle;\nfunction getParticleBaseVelocity(direction) {\n const baseVelocity = Vector_1.Vector.origin;\n baseVelocity.length = 1;\n baseVelocity.angle = direction;\n return baseVelocity;\n}\nexports.getParticleBaseVelocity = getParticleBaseVelocity;\nfunction collisionVelocity(v1, v2, m1, m2) {\n return Vector_1.Vector.create((v1.x * (m1 - m2)) / (m1 + m2) + (v2.x * 2 * m2) / (m1 + m2), v1.y);\n}\nexports.collisionVelocity = collisionVelocity;\nfunction calcEasing(value, type) {\n switch (type) {\n case Enums_1.EasingType.easeOutQuad:\n return 1 - (1 - value) ** 2;\n case Enums_1.EasingType.easeOutCubic:\n return 1 - (1 - value) ** 3;\n case Enums_1.EasingType.easeOutQuart:\n return 1 - (1 - value) ** 4;\n case Enums_1.EasingType.easeOutQuint:\n return 1 - (1 - value) ** 5;\n case Enums_1.EasingType.easeOutExpo:\n return value === 1 ? 1 : 1 - Math.pow(2, -10 * value);\n case Enums_1.EasingType.easeOutSine:\n return Math.sin((value * Math.PI) / 2);\n case Enums_1.EasingType.easeOutBack: {\n const c1 = 1.70158;\n const c3 = c1 + 1;\n return 1 + c3 * Math.pow(value - 1, 3) + c1 * Math.pow(value - 1, 2);\n }\n case Enums_1.EasingType.easeOutCirc:\n return Math.sqrt(1 - Math.pow(value - 1, 2));\n default:\n return value;\n }\n}\nexports.calcEasing = calcEasing;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXRpbHMvTnVtYmVyVXRpbHMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsa0JBQWtCLEdBQUcseUJBQXlCLEdBQUcsK0JBQStCLEdBQUcsaUNBQWlDLEdBQUcsbUJBQW1CLEdBQUcsb0JBQW9CLEdBQUcsZ0JBQWdCLEdBQUcscUJBQXFCLEdBQUcsbUJBQW1CLEdBQUcsbUJBQW1CLEdBQUcscUJBQXFCLEdBQUcscUJBQXFCLEdBQUcsV0FBVyxHQUFHLGFBQWE7QUFDdFUsZ0JBQWdCLG1CQUFPLENBQUMsMkRBQVU7QUFDbEMsaUJBQWlCLG1CQUFPLENBQUMsbUZBQXlCO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CO0FBQ25CO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQjtBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBLFlBQVksdUJBQXVCLGtDQUFrQyxrQ0FBa0M7QUFDdkc7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSxvQkFBb0I7QUFDcEI7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtCQUErQjtBQUMvQjtBQUNBO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1V0aWxzL051bWJlclV0aWxzLmpzP2Q0MmQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmNhbGNFYXNpbmcgPSBleHBvcnRzLmNvbGxpc2lvblZlbG9jaXR5ID0gZXhwb3J0cy5nZXRQYXJ0aWNsZUJhc2VWZWxvY2l0eSA9IGV4cG9ydHMuZ2V0UGFydGljbGVEaXJlY3Rpb25BbmdsZSA9IGV4cG9ydHMuZ2V0RGlzdGFuY2UgPSBleHBvcnRzLmdldERpc3RhbmNlcyA9IGV4cG9ydHMuZ2V0VmFsdWUgPSBleHBvcnRzLnNldFJhbmdlVmFsdWUgPSBleHBvcnRzLmdldFJhbmdlTWF4ID0gZXhwb3J0cy5nZXRSYW5nZU1pbiA9IGV4cG9ydHMuZ2V0UmFuZ2VWYWx1ZSA9IGV4cG9ydHMucmFuZG9tSW5SYW5nZSA9IGV4cG9ydHMubWl4ID0gZXhwb3J0cy5jbGFtcCA9IHZvaWQgMDtcbmNvbnN0IEVudW1zXzEgPSByZXF1aXJlKFwiLi4vRW51bXNcIik7XG5jb25zdCBWZWN0b3JfMSA9IHJlcXVpcmUoXCIuLi9Db3JlL1BhcnRpY2xlL1ZlY3RvclwiKTtcbmZ1bmN0aW9uIGNsYW1wKG51bSwgbWluLCBtYXgpIHtcbiAgICByZXR1cm4gTWF0aC5taW4oTWF0aC5tYXgobnVtLCBtaW4pLCBtYXgpO1xufVxuZXhwb3J0cy5jbGFtcCA9IGNsYW1wO1xuZnVuY3Rpb24gbWl4KGNvbXAxLCBjb21wMiwgd2VpZ2h0MSwgd2VpZ2h0Mikge1xuICAgIHJldHVybiBNYXRoLmZsb29yKChjb21wMSAqIHdlaWdodDEgKyBjb21wMiAqIHdlaWdodDIpIC8gKHdlaWdodDEgKyB3ZWlnaHQyKSk7XG59XG5leHBvcnRzLm1peCA9IG1peDtcbmZ1bmN0aW9uIHJhbmRvbUluUmFuZ2Uocikge1xuICAgIGNvbnN0IG1heCA9IGdldFJhbmdlTWF4KHIpO1xuICAgIGxldCBtaW4gPSBnZXRSYW5nZU1pbihyKTtcbiAgICBpZiAobWF4ID09PSBtaW4pIHtcbiAgICAgICAgbWluID0gMDtcbiAgICB9XG4gICAgcmV0dXJuIE1hdGgucmFuZG9tKCkgKiAobWF4IC0gbWluKSArIG1pbjtcbn1cbmV4cG9ydHMucmFuZG9tSW5SYW5nZSA9IHJhbmRvbUluUmFuZ2U7XG5mdW5jdGlvbiBnZXRSYW5nZVZhbHVlKHZhbHVlKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIiA/IHZhbHVlIDogcmFuZG9tSW5SYW5nZSh2YWx1ZSk7XG59XG5leHBvcnRzLmdldFJhbmdlVmFsdWUgPSBnZXRSYW5nZVZhbHVlO1xuZnVuY3Rpb24gZ2V0UmFuZ2VNaW4odmFsdWUpIHtcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiID8gdmFsdWUgOiB2YWx1ZS5taW47XG59XG5leHBvcnRzLmdldFJhbmdlTWluID0gZ2V0UmFuZ2VNaW47XG5mdW5jdGlvbiBnZXRSYW5nZU1heCh2YWx1ZSkge1xuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIgPyB2YWx1ZSA6IHZhbHVlLm1heDtcbn1cbmV4cG9ydHMuZ2V0UmFuZ2VNYXggPSBnZXRSYW5nZU1heDtcbmZ1bmN0aW9uIHNldFJhbmdlVmFsdWUoc291cmNlLCB2YWx1ZSkge1xuICAgIGlmIChzb3VyY2UgPT09IHZhbHVlIHx8ICh2YWx1ZSA9PT0gdW5kZWZpbmVkICYmIHR5cGVvZiBzb3VyY2UgPT09IFwibnVtYmVyXCIpKSB7XG4gICAgICAgIHJldHVybiBzb3VyY2U7XG4gICAgfVxuICAgIGNvbnN0IG1pbiA9IGdldFJhbmdlTWluKHNvdXJjZSksIG1heCA9IGdldFJhbmdlTWF4KHNvdXJjZSk7XG4gICAgcmV0dXJuIHZhbHVlICE9PSB1bmRlZmluZWRcbiAgICAgICAgPyB7XG4gICAgICAgICAgICBtaW46IE1hdGgubWluKG1pbiwgdmFsdWUpLFxuICAgICAgICAgICAgbWF4OiBNYXRoLm1heChtYXgsIHZhbHVlKSxcbiAgICAgICAgfVxuICAgICAgICA6IHNldFJhbmdlVmFsdWUobWluLCBtYXgpO1xufVxuZXhwb3J0cy5zZXRSYW5nZVZhbHVlID0gc2V0UmFuZ2VWYWx1ZTtcbmZ1bmN0aW9uIGdldFZhbHVlKG9wdGlvbnMpIHtcbiAgICBjb25zdCByYW5kb20gPSBvcHRpb25zLnJhbmRvbTtcbiAgICBjb25zdCB7IGVuYWJsZSwgbWluaW11bVZhbHVlIH0gPSB0eXBlb2YgcmFuZG9tID09PSBcImJvb2xlYW5cIiA/IHsgZW5hYmxlOiByYW5kb20sIG1pbmltdW1WYWx1ZTogMCB9IDogcmFuZG9tO1xuICAgIHJldHVybiBlbmFibGUgPyBnZXRSYW5nZVZhbHVlKHNldFJhbmdlVmFsdWUob3B0aW9ucy52YWx1ZSwgbWluaW11bVZhbHVlKSkgOiBnZXRSYW5nZVZhbHVlKG9wdGlvbnMudmFsdWUpO1xufVxuZXhwb3J0cy5nZXRWYWx1ZSA9IGdldFZhbHVlO1xuZnVuY3Rpb24gZ2V0RGlzdGFuY2VzKHBvaW50QSwgcG9pbnRCKSB7XG4gICAgY29uc3QgZHggPSBwb2ludEEueCAtIHBvaW50Qi54O1xuICAgIGNvbnN0IGR5ID0gcG9pbnRBLnkgLSBwb2ludEIueTtcbiAgICByZXR1cm4geyBkeDogZHgsIGR5OiBkeSwgZGlzdGFuY2U6IE1hdGguc3FydChkeCAqIGR4ICsgZHkgKiBkeSkgfTtcbn1cbmV4cG9ydHMuZ2V0RGlzdGFuY2VzID0gZ2V0RGlzdGFuY2VzO1xuZnVuY3Rpb24gZ2V0RGlzdGFuY2UocG9pbnRBLCBwb2ludEIpIHtcbiAgICByZXR1cm4gZ2V0RGlzdGFuY2VzKHBvaW50QSwgcG9pbnRCKS5kaXN0YW5jZTtcbn1cbmV4cG9ydHMuZ2V0RGlzdGFuY2UgPSBnZXREaXN0YW5jZTtcbmZ1bmN0aW9uIGdldFBhcnRpY2xlRGlyZWN0aW9uQW5nbGUoZGlyZWN0aW9uKSB7XG4gICAgaWYgKHR5cGVvZiBkaXJlY3Rpb24gPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgcmV0dXJuIChkaXJlY3Rpb24gKiBNYXRoLlBJKSAvIDE4MDtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7XG4gICAgICAgICAgICBjYXNlIEVudW1zXzEuTW92ZURpcmVjdGlvbi50b3A6XG4gICAgICAgICAgICAgICAgcmV0dXJuIC1NYXRoLlBJIC8gMjtcbiAgICAgICAgICAgIGNhc2UgRW51bXNfMS5Nb3ZlRGlyZWN0aW9uLnRvcFJpZ2h0OlxuICAgICAgICAgICAgICAgIHJldHVybiAtTWF0aC5QSSAvIDQ7XG4gICAgICAgICAgICBjYXNlIEVudW1zXzEuTW92ZURpcmVjdGlvbi5yaWdodDpcbiAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgIGNhc2UgRW51bXNfMS5Nb3ZlRGlyZWN0aW9uLmJvdHRvbVJpZ2h0OlxuICAgICAgICAgICAgICAgIHJldHVybiBNYXRoLlBJIC8gNDtcbiAgICAgICAgICAgIGNhc2UgRW51bXNfMS5Nb3ZlRGlyZWN0aW9uLmJvdHRvbTpcbiAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5QSSAvIDI7XG4gICAgICAgICAgICBjYXNlIEVudW1zXzEuTW92ZURpcmVjdGlvbi5ib3R0b21MZWZ0OlxuICAgICAgICAgICAgICAgIHJldHVybiAoMyAqIE1hdGguUEkpIC8gNDtcbiAgICAgICAgICAgIGNhc2UgRW51bXNfMS5Nb3ZlRGlyZWN0aW9uLmxlZnQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE1hdGguUEk7XG4gICAgICAgICAgICBjYXNlIEVudW1zXzEuTW92ZURpcmVjdGlvbi50b3BMZWZ0OlxuICAgICAgICAgICAgICAgIHJldHVybiAoLTMgKiBNYXRoLlBJKSAvIDQ7XG4gICAgICAgICAgICBjYXNlIEVudW1zXzEuTW92ZURpcmVjdGlvbi5ub25lOlxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5yYW5kb20oKSAqIE1hdGguUEkgKiAyO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5nZXRQYXJ0aWNsZURpcmVjdGlvbkFuZ2xlID0gZ2V0UGFydGljbGVEaXJlY3Rpb25BbmdsZTtcbmZ1bmN0aW9uIGdldFBhcnRpY2xlQmFzZVZlbG9jaXR5KGRpcmVjdGlvbikge1xuICAgIGNvbnN0IGJhc2VWZWxvY2l0eSA9IFZlY3Rvcl8xLlZlY3Rvci5vcmlnaW47XG4gICAgYmFzZVZlbG9jaXR5Lmxlbmd0aCA9IDE7XG4gICAgYmFzZVZlbG9jaXR5LmFuZ2xlID0gZGlyZWN0aW9uO1xuICAgIHJldHVybiBiYXNlVmVsb2NpdHk7XG59XG5leHBvcnRzLmdldFBhcnRpY2xlQmFzZVZlbG9jaXR5ID0gZ2V0UGFydGljbGVCYXNlVmVsb2NpdHk7XG5mdW5jdGlvbiBjb2xsaXNpb25WZWxvY2l0eSh2MSwgdjIsIG0xLCBtMikge1xuICAgIHJldHVybiBWZWN0b3JfMS5WZWN0b3IuY3JlYXRlKCh2MS54ICogKG0xIC0gbTIpKSAvIChtMSArIG0yKSArICh2Mi54ICogMiAqIG0yKSAvIChtMSArIG0yKSwgdjEueSk7XG59XG5leHBvcnRzLmNvbGxpc2lvblZlbG9jaXR5ID0gY29sbGlzaW9uVmVsb2NpdHk7XG5mdW5jdGlvbiBjYWxjRWFzaW5nKHZhbHVlLCB0eXBlKSB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgRW51bXNfMS5FYXNpbmdUeXBlLmVhc2VPdXRRdWFkOlxuICAgICAgICAgICAgcmV0dXJuIDEgLSAoMSAtIHZhbHVlKSAqKiAyO1xuICAgICAgICBjYXNlIEVudW1zXzEuRWFzaW5nVHlwZS5lYXNlT3V0Q3ViaWM6XG4gICAgICAgICAgICByZXR1cm4gMSAtICgxIC0gdmFsdWUpICoqIDM7XG4gICAgICAgIGNhc2UgRW51bXNfMS5FYXNpbmdUeXBlLmVhc2VPdXRRdWFydDpcbiAgICAgICAgICAgIHJldHVybiAxIC0gKDEgLSB2YWx1ZSkgKiogNDtcbiAgICAgICAgY2FzZSBFbnVtc18xLkVhc2luZ1R5cGUuZWFzZU91dFF1aW50OlxuICAgICAgICAgICAgcmV0dXJuIDEgLSAoMSAtIHZhbHVlKSAqKiA1O1xuICAgICAgICBjYXNlIEVudW1zXzEuRWFzaW5nVHlwZS5lYXNlT3V0RXhwbzpcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZSA9PT0gMSA/IDEgOiAxIC0gTWF0aC5wb3coMiwgLTEwICogdmFsdWUpO1xuICAgICAgICBjYXNlIEVudW1zXzEuRWFzaW5nVHlwZS5lYXNlT3V0U2luZTpcbiAgICAgICAgICAgIHJldHVybiBNYXRoLnNpbigodmFsdWUgKiBNYXRoLlBJKSAvIDIpO1xuICAgICAgICBjYXNlIEVudW1zXzEuRWFzaW5nVHlwZS5lYXNlT3V0QmFjazoge1xuICAgICAgICAgICAgY29uc3QgYzEgPSAxLjcwMTU4O1xuICAgICAgICAgICAgY29uc3QgYzMgPSBjMSArIDE7XG4gICAgICAgICAgICByZXR1cm4gMSArIGMzICogTWF0aC5wb3codmFsdWUgLSAxLCAzKSArIGMxICogTWF0aC5wb3codmFsdWUgLSAxLCAyKTtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIEVudW1zXzEuRWFzaW5nVHlwZS5lYXNlT3V0Q2lyYzpcbiAgICAgICAgICAgIHJldHVybiBNYXRoLnNxcnQoMSAtIE1hdGgucG93KHZhbHVlIC0gMSwgMikpO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbn1cbmV4cG9ydHMuY2FsY0Vhc2luZyA9IGNhbGNFYXNpbmc7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Utils/NumberUtils.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Utils/Plugins.js": +/*!***************************************************!*\ + !*** ./node_modules/tsparticles/Utils/Plugins.js ***! + \***************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Plugins = void 0;\nconst plugins = [];\nconst interactorsInitializers = new Map();\nconst updatersInitializers = new Map();\nconst interactors = new Map();\nconst updaters = new Map();\nconst presets = new Map();\nconst drawers = new Map();\nconst pathGenerators = new Map();\nclass Plugins {\n static getPlugin(plugin) {\n return plugins.find((t) => t.id === plugin);\n }\n static addPlugin(plugin) {\n if (!Plugins.getPlugin(plugin.id)) {\n plugins.push(plugin);\n }\n }\n static getAvailablePlugins(container) {\n const res = new Map();\n for (const plugin of plugins) {\n if (!plugin.needsPlugin(container.actualOptions)) {\n continue;\n }\n res.set(plugin.id, plugin.getPlugin(container));\n }\n return res;\n }\n static loadOptions(options, sourceOptions) {\n for (const plugin of plugins) {\n plugin.loadOptions(options, sourceOptions);\n }\n }\n static getPreset(preset) {\n return presets.get(preset);\n }\n static addPreset(presetKey, options, override = false) {\n if (override || !Plugins.getPreset(presetKey)) {\n presets.set(presetKey, options);\n }\n }\n static addShapeDrawer(type, drawer) {\n if (!Plugins.getShapeDrawer(type)) {\n drawers.set(type, drawer);\n }\n }\n static getShapeDrawer(type) {\n return drawers.get(type);\n }\n static getSupportedShapes() {\n return drawers.keys();\n }\n static getPathGenerator(type) {\n return pathGenerators.get(type);\n }\n static addPathGenerator(type, pathGenerator) {\n if (!Plugins.getPathGenerator(type)) {\n pathGenerators.set(type, pathGenerator);\n }\n }\n static getInteractors(container, force = false) {\n let res = interactors.get(container);\n if (!res || force) {\n res = [...interactorsInitializers.values()].map((t) => t(container));\n interactors.set(container, res);\n }\n return res;\n }\n static addInteractor(name, initInteractor) {\n interactorsInitializers.set(name, initInteractor);\n }\n static getUpdaters(container, force = false) {\n let res = updaters.get(container);\n if (!res || force) {\n res = [...updatersInitializers.values()].map((t) => t(container));\n updaters.set(container, res);\n }\n return res;\n }\n static addParticleUpdater(name, initUpdater) {\n updatersInitializers.set(name, initUpdater);\n }\n}\nexports.Plugins = Plugins;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXRpbHMvUGx1Z2lucy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxlQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9VdGlscy9QbHVnaW5zLmpzP2I2MGIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlBsdWdpbnMgPSB2b2lkIDA7XG5jb25zdCBwbHVnaW5zID0gW107XG5jb25zdCBpbnRlcmFjdG9yc0luaXRpYWxpemVycyA9IG5ldyBNYXAoKTtcbmNvbnN0IHVwZGF0ZXJzSW5pdGlhbGl6ZXJzID0gbmV3IE1hcCgpO1xuY29uc3QgaW50ZXJhY3RvcnMgPSBuZXcgTWFwKCk7XG5jb25zdCB1cGRhdGVycyA9IG5ldyBNYXAoKTtcbmNvbnN0IHByZXNldHMgPSBuZXcgTWFwKCk7XG5jb25zdCBkcmF3ZXJzID0gbmV3IE1hcCgpO1xuY29uc3QgcGF0aEdlbmVyYXRvcnMgPSBuZXcgTWFwKCk7XG5jbGFzcyBQbHVnaW5zIHtcbiAgICBzdGF0aWMgZ2V0UGx1Z2luKHBsdWdpbikge1xuICAgICAgICByZXR1cm4gcGx1Z2lucy5maW5kKCh0KSA9PiB0LmlkID09PSBwbHVnaW4pO1xuICAgIH1cbiAgICBzdGF0aWMgYWRkUGx1Z2luKHBsdWdpbikge1xuICAgICAgICBpZiAoIVBsdWdpbnMuZ2V0UGx1Z2luKHBsdWdpbi5pZCkpIHtcbiAgICAgICAgICAgIHBsdWdpbnMucHVzaChwbHVnaW4pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHN0YXRpYyBnZXRBdmFpbGFibGVQbHVnaW5zKGNvbnRhaW5lcikge1xuICAgICAgICBjb25zdCByZXMgPSBuZXcgTWFwKCk7XG4gICAgICAgIGZvciAoY29uc3QgcGx1Z2luIG9mIHBsdWdpbnMpIHtcbiAgICAgICAgICAgIGlmICghcGx1Z2luLm5lZWRzUGx1Z2luKGNvbnRhaW5lci5hY3R1YWxPcHRpb25zKSkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzLnNldChwbHVnaW4uaWQsIHBsdWdpbi5nZXRQbHVnaW4oY29udGFpbmVyKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG4gICAgc3RhdGljIGxvYWRPcHRpb25zKG9wdGlvbnMsIHNvdXJjZU9wdGlvbnMpIHtcbiAgICAgICAgZm9yIChjb25zdCBwbHVnaW4gb2YgcGx1Z2lucykge1xuICAgICAgICAgICAgcGx1Z2luLmxvYWRPcHRpb25zKG9wdGlvbnMsIHNvdXJjZU9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHN0YXRpYyBnZXRQcmVzZXQocHJlc2V0KSB7XG4gICAgICAgIHJldHVybiBwcmVzZXRzLmdldChwcmVzZXQpO1xuICAgIH1cbiAgICBzdGF0aWMgYWRkUHJlc2V0KHByZXNldEtleSwgb3B0aW9ucywgb3ZlcnJpZGUgPSBmYWxzZSkge1xuICAgICAgICBpZiAob3ZlcnJpZGUgfHwgIVBsdWdpbnMuZ2V0UHJlc2V0KHByZXNldEtleSkpIHtcbiAgICAgICAgICAgIHByZXNldHMuc2V0KHByZXNldEtleSwgb3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3RhdGljIGFkZFNoYXBlRHJhd2VyKHR5cGUsIGRyYXdlcikge1xuICAgICAgICBpZiAoIVBsdWdpbnMuZ2V0U2hhcGVEcmF3ZXIodHlwZSkpIHtcbiAgICAgICAgICAgIGRyYXdlcnMuc2V0KHR5cGUsIGRyYXdlcik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3RhdGljIGdldFNoYXBlRHJhd2VyKHR5cGUpIHtcbiAgICAgICAgcmV0dXJuIGRyYXdlcnMuZ2V0KHR5cGUpO1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0U3VwcG9ydGVkU2hhcGVzKCkge1xuICAgICAgICByZXR1cm4gZHJhd2Vycy5rZXlzKCk7XG4gICAgfVxuICAgIHN0YXRpYyBnZXRQYXRoR2VuZXJhdG9yKHR5cGUpIHtcbiAgICAgICAgcmV0dXJuIHBhdGhHZW5lcmF0b3JzLmdldCh0eXBlKTtcbiAgICB9XG4gICAgc3RhdGljIGFkZFBhdGhHZW5lcmF0b3IodHlwZSwgcGF0aEdlbmVyYXRvcikge1xuICAgICAgICBpZiAoIVBsdWdpbnMuZ2V0UGF0aEdlbmVyYXRvcih0eXBlKSkge1xuICAgICAgICAgICAgcGF0aEdlbmVyYXRvcnMuc2V0KHR5cGUsIHBhdGhHZW5lcmF0b3IpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHN0YXRpYyBnZXRJbnRlcmFjdG9ycyhjb250YWluZXIsIGZvcmNlID0gZmFsc2UpIHtcbiAgICAgICAgbGV0IHJlcyA9IGludGVyYWN0b3JzLmdldChjb250YWluZXIpO1xuICAgICAgICBpZiAoIXJlcyB8fCBmb3JjZSkge1xuICAgICAgICAgICAgcmVzID0gWy4uLmludGVyYWN0b3JzSW5pdGlhbGl6ZXJzLnZhbHVlcygpXS5tYXAoKHQpID0+IHQoY29udGFpbmVyKSk7XG4gICAgICAgICAgICBpbnRlcmFjdG9ycy5zZXQoY29udGFpbmVyLCByZXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuICAgIHN0YXRpYyBhZGRJbnRlcmFjdG9yKG5hbWUsIGluaXRJbnRlcmFjdG9yKSB7XG4gICAgICAgIGludGVyYWN0b3JzSW5pdGlhbGl6ZXJzLnNldChuYW1lLCBpbml0SW50ZXJhY3Rvcik7XG4gICAgfVxuICAgIHN0YXRpYyBnZXRVcGRhdGVycyhjb250YWluZXIsIGZvcmNlID0gZmFsc2UpIHtcbiAgICAgICAgbGV0IHJlcyA9IHVwZGF0ZXJzLmdldChjb250YWluZXIpO1xuICAgICAgICBpZiAoIXJlcyB8fCBmb3JjZSkge1xuICAgICAgICAgICAgcmVzID0gWy4uLnVwZGF0ZXJzSW5pdGlhbGl6ZXJzLnZhbHVlcygpXS5tYXAoKHQpID0+IHQoY29udGFpbmVyKSk7XG4gICAgICAgICAgICB1cGRhdGVycy5zZXQoY29udGFpbmVyLCByZXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuICAgIHN0YXRpYyBhZGRQYXJ0aWNsZVVwZGF0ZXIobmFtZSwgaW5pdFVwZGF0ZXIpIHtcbiAgICAgICAgdXBkYXRlcnNJbml0aWFsaXplcnMuc2V0KG5hbWUsIGluaXRVcGRhdGVyKTtcbiAgICB9XG59XG5leHBvcnRzLlBsdWdpbnMgPSBQbHVnaW5zO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Utils/Plugins.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Utils/Point.js": +/*!*************************************************!*\ + !*** ./node_modules/tsparticles/Utils/Point.js ***! + \*************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Point = void 0;\nclass Point {\n constructor(position, particle) {\n this.position = position;\n this.particle = particle;\n }\n}\nexports.Point = Point;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXRpbHMvUG9pbnQuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1V0aWxzL1BvaW50LmpzP2Q1NTQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlBvaW50ID0gdm9pZCAwO1xuY2xhc3MgUG9pbnQge1xuICAgIGNvbnN0cnVjdG9yKHBvc2l0aW9uLCBwYXJ0aWNsZSkge1xuICAgICAgICB0aGlzLnBvc2l0aW9uID0gcG9zaXRpb247XG4gICAgICAgIHRoaXMucGFydGljbGUgPSBwYXJ0aWNsZTtcbiAgICB9XG59XG5leHBvcnRzLlBvaW50ID0gUG9pbnQ7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Utils/Point.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Utils/QuadTree.js": +/*!****************************************************!*\ + !*** ./node_modules/tsparticles/Utils/QuadTree.js ***! + \****************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.QuadTree = void 0;\nconst Rectangle_1 = __webpack_require__(/*! ./Rectangle */ \"./node_modules/tsparticles/Utils/Rectangle.js\");\nconst Circle_1 = __webpack_require__(/*! ./Circle */ \"./node_modules/tsparticles/Utils/Circle.js\");\nconst CircleWarp_1 = __webpack_require__(/*! ./CircleWarp */ \"./node_modules/tsparticles/Utils/CircleWarp.js\");\nconst NumberUtils_1 = __webpack_require__(/*! ./NumberUtils */ \"./node_modules/tsparticles/Utils/NumberUtils.js\");\nclass QuadTree {\n constructor(rectangle, capacity) {\n this.rectangle = rectangle;\n this.capacity = capacity;\n this.points = [];\n this.divided = false;\n }\n subdivide() {\n const x = this.rectangle.position.x;\n const y = this.rectangle.position.y;\n const w = this.rectangle.size.width;\n const h = this.rectangle.size.height;\n const capacity = this.capacity;\n this.northEast = new QuadTree(new Rectangle_1.Rectangle(x, y, w / 2, h / 2), capacity);\n this.northWest = new QuadTree(new Rectangle_1.Rectangle(x + w / 2, y, w / 2, h / 2), capacity);\n this.southEast = new QuadTree(new Rectangle_1.Rectangle(x, y + h / 2, w / 2, h / 2), capacity);\n this.southWest = new QuadTree(new Rectangle_1.Rectangle(x + w / 2, y + h / 2, w / 2, h / 2), capacity);\n this.divided = true;\n }\n insert(point) {\n var _a, _b, _c, _d, _e;\n if (!this.rectangle.contains(point.position)) {\n return false;\n }\n if (this.points.length < this.capacity) {\n this.points.push(point);\n return true;\n }\n if (!this.divided) {\n this.subdivide();\n }\n return ((_e = (((_a = this.northEast) === null || _a === void 0 ? void 0 : _a.insert(point)) ||\n ((_b = this.northWest) === null || _b === void 0 ? void 0 : _b.insert(point)) ||\n ((_c = this.southEast) === null || _c === void 0 ? void 0 : _c.insert(point)) ||\n ((_d = this.southWest) === null || _d === void 0 ? void 0 : _d.insert(point)))) !== null && _e !== void 0 ? _e : false);\n }\n queryCircle(position, radius) {\n return this.query(new Circle_1.Circle(position.x, position.y, radius));\n }\n queryCircleWarp(position, radius, containerOrSize) {\n const container = containerOrSize;\n const size = containerOrSize;\n return this.query(new CircleWarp_1.CircleWarp(position.x, position.y, radius, container.canvas !== undefined ? container.canvas.size : size));\n }\n queryRectangle(position, size) {\n return this.query(new Rectangle_1.Rectangle(position.x, position.y, size.width, size.height));\n }\n query(range, found) {\n var _a, _b, _c, _d;\n const res = found !== null && found !== void 0 ? found : [];\n if (!range.intersects(this.rectangle)) {\n return [];\n }\n else {\n for (const p of this.points) {\n if (!range.contains(p.position) && (0, NumberUtils_1.getDistance)(range.position, p.position) > p.particle.getRadius()) {\n continue;\n }\n res.push(p.particle);\n }\n if (this.divided) {\n (_a = this.northEast) === null || _a === void 0 ? void 0 : _a.query(range, res);\n (_b = this.northWest) === null || _b === void 0 ? void 0 : _b.query(range, res);\n (_c = this.southEast) === null || _c === void 0 ? void 0 : _c.query(range, res);\n (_d = this.southWest) === null || _d === void 0 ? void 0 : _d.query(range, res);\n }\n }\n return res;\n }\n}\nexports.QuadTree = QuadTree;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXRpbHMvUXVhZFRyZWUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsZ0JBQWdCO0FBQ2hCLG9CQUFvQixtQkFBTyxDQUFDLGtFQUFhO0FBQ3pDLGlCQUFpQixtQkFBTyxDQUFDLDREQUFVO0FBQ25DLHFCQUFxQixtQkFBTyxDQUFDLG9FQUFjO0FBQzNDLHNCQUFzQixtQkFBTyxDQUFDLHNFQUFlO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9VdGlscy9RdWFkVHJlZS5qcz81YWE0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5RdWFkVHJlZSA9IHZvaWQgMDtcbmNvbnN0IFJlY3RhbmdsZV8xID0gcmVxdWlyZShcIi4vUmVjdGFuZ2xlXCIpO1xuY29uc3QgQ2lyY2xlXzEgPSByZXF1aXJlKFwiLi9DaXJjbGVcIik7XG5jb25zdCBDaXJjbGVXYXJwXzEgPSByZXF1aXJlKFwiLi9DaXJjbGVXYXJwXCIpO1xuY29uc3QgTnVtYmVyVXRpbHNfMSA9IHJlcXVpcmUoXCIuL051bWJlclV0aWxzXCIpO1xuY2xhc3MgUXVhZFRyZWUge1xuICAgIGNvbnN0cnVjdG9yKHJlY3RhbmdsZSwgY2FwYWNpdHkpIHtcbiAgICAgICAgdGhpcy5yZWN0YW5nbGUgPSByZWN0YW5nbGU7XG4gICAgICAgIHRoaXMuY2FwYWNpdHkgPSBjYXBhY2l0eTtcbiAgICAgICAgdGhpcy5wb2ludHMgPSBbXTtcbiAgICAgICAgdGhpcy5kaXZpZGVkID0gZmFsc2U7XG4gICAgfVxuICAgIHN1YmRpdmlkZSgpIHtcbiAgICAgICAgY29uc3QgeCA9IHRoaXMucmVjdGFuZ2xlLnBvc2l0aW9uLng7XG4gICAgICAgIGNvbnN0IHkgPSB0aGlzLnJlY3RhbmdsZS5wb3NpdGlvbi55O1xuICAgICAgICBjb25zdCB3ID0gdGhpcy5yZWN0YW5nbGUuc2l6ZS53aWR0aDtcbiAgICAgICAgY29uc3QgaCA9IHRoaXMucmVjdGFuZ2xlLnNpemUuaGVpZ2h0O1xuICAgICAgICBjb25zdCBjYXBhY2l0eSA9IHRoaXMuY2FwYWNpdHk7XG4gICAgICAgIHRoaXMubm9ydGhFYXN0ID0gbmV3IFF1YWRUcmVlKG5ldyBSZWN0YW5nbGVfMS5SZWN0YW5nbGUoeCwgeSwgdyAvIDIsIGggLyAyKSwgY2FwYWNpdHkpO1xuICAgICAgICB0aGlzLm5vcnRoV2VzdCA9IG5ldyBRdWFkVHJlZShuZXcgUmVjdGFuZ2xlXzEuUmVjdGFuZ2xlKHggKyB3IC8gMiwgeSwgdyAvIDIsIGggLyAyKSwgY2FwYWNpdHkpO1xuICAgICAgICB0aGlzLnNvdXRoRWFzdCA9IG5ldyBRdWFkVHJlZShuZXcgUmVjdGFuZ2xlXzEuUmVjdGFuZ2xlKHgsIHkgKyBoIC8gMiwgdyAvIDIsIGggLyAyKSwgY2FwYWNpdHkpO1xuICAgICAgICB0aGlzLnNvdXRoV2VzdCA9IG5ldyBRdWFkVHJlZShuZXcgUmVjdGFuZ2xlXzEuUmVjdGFuZ2xlKHggKyB3IC8gMiwgeSArIGggLyAyLCB3IC8gMiwgaCAvIDIpLCBjYXBhY2l0eSk7XG4gICAgICAgIHRoaXMuZGl2aWRlZCA9IHRydWU7XG4gICAgfVxuICAgIGluc2VydChwb2ludCkge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2QsIF9lO1xuICAgICAgICBpZiAoIXRoaXMucmVjdGFuZ2xlLmNvbnRhaW5zKHBvaW50LnBvc2l0aW9uKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnBvaW50cy5sZW5ndGggPCB0aGlzLmNhcGFjaXR5KSB7XG4gICAgICAgICAgICB0aGlzLnBvaW50cy5wdXNoKHBvaW50KTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5kaXZpZGVkKSB7XG4gICAgICAgICAgICB0aGlzLnN1YmRpdmlkZSgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAoKF9lID0gKCgoX2EgPSB0aGlzLm5vcnRoRWFzdCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmluc2VydChwb2ludCkpIHx8XG4gICAgICAgICAgICAoKF9iID0gdGhpcy5ub3J0aFdlc3QpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5pbnNlcnQocG9pbnQpKSB8fFxuICAgICAgICAgICAgKChfYyA9IHRoaXMuc291dGhFYXN0KSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MuaW5zZXJ0KHBvaW50KSkgfHxcbiAgICAgICAgICAgICgoX2QgPSB0aGlzLnNvdXRoV2VzdCkgPT09IG51bGwgfHwgX2QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9kLmluc2VydChwb2ludCkpKSkgIT09IG51bGwgJiYgX2UgIT09IHZvaWQgMCA/IF9lIDogZmFsc2UpO1xuICAgIH1cbiAgICBxdWVyeUNpcmNsZShwb3NpdGlvbiwgcmFkaXVzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnF1ZXJ5KG5ldyBDaXJjbGVfMS5DaXJjbGUocG9zaXRpb24ueCwgcG9zaXRpb24ueSwgcmFkaXVzKSk7XG4gICAgfVxuICAgIHF1ZXJ5Q2lyY2xlV2FycChwb3NpdGlvbiwgcmFkaXVzLCBjb250YWluZXJPclNpemUpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gY29udGFpbmVyT3JTaXplO1xuICAgICAgICBjb25zdCBzaXplID0gY29udGFpbmVyT3JTaXplO1xuICAgICAgICByZXR1cm4gdGhpcy5xdWVyeShuZXcgQ2lyY2xlV2FycF8xLkNpcmNsZVdhcnAocG9zaXRpb24ueCwgcG9zaXRpb24ueSwgcmFkaXVzLCBjb250YWluZXIuY2FudmFzICE9PSB1bmRlZmluZWQgPyBjb250YWluZXIuY2FudmFzLnNpemUgOiBzaXplKSk7XG4gICAgfVxuICAgIHF1ZXJ5UmVjdGFuZ2xlKHBvc2l0aW9uLCBzaXplKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnF1ZXJ5KG5ldyBSZWN0YW5nbGVfMS5SZWN0YW5nbGUocG9zaXRpb24ueCwgcG9zaXRpb24ueSwgc2l6ZS53aWR0aCwgc2l6ZS5oZWlnaHQpKTtcbiAgICB9XG4gICAgcXVlcnkocmFuZ2UsIGZvdW5kKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZDtcbiAgICAgICAgY29uc3QgcmVzID0gZm91bmQgIT09IG51bGwgJiYgZm91bmQgIT09IHZvaWQgMCA/IGZvdW5kIDogW107XG4gICAgICAgIGlmICghcmFuZ2UuaW50ZXJzZWN0cyh0aGlzLnJlY3RhbmdsZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgcCBvZiB0aGlzLnBvaW50cykge1xuICAgICAgICAgICAgICAgIGlmICghcmFuZ2UuY29udGFpbnMocC5wb3NpdGlvbikgJiYgKDAsIE51bWJlclV0aWxzXzEuZ2V0RGlzdGFuY2UpKHJhbmdlLnBvc2l0aW9uLCBwLnBvc2l0aW9uKSA+IHAucGFydGljbGUuZ2V0UmFkaXVzKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJlcy5wdXNoKHAucGFydGljbGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuZGl2aWRlZCkge1xuICAgICAgICAgICAgICAgIChfYSA9IHRoaXMubm9ydGhFYXN0KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EucXVlcnkocmFuZ2UsIHJlcyk7XG4gICAgICAgICAgICAgICAgKF9iID0gdGhpcy5ub3J0aFdlc3QpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5xdWVyeShyYW5nZSwgcmVzKTtcbiAgICAgICAgICAgICAgICAoX2MgPSB0aGlzLnNvdXRoRWFzdCkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLnF1ZXJ5KHJhbmdlLCByZXMpO1xuICAgICAgICAgICAgICAgIChfZCA9IHRoaXMuc291dGhXZXN0KSA9PT0gbnVsbCB8fCBfZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2QucXVlcnkocmFuZ2UsIHJlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG59XG5leHBvcnRzLlF1YWRUcmVlID0gUXVhZFRyZWU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Utils/QuadTree.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Utils/Range.js": +/*!*************************************************!*\ + !*** ./node_modules/tsparticles/Utils/Range.js ***! + \*************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Range = void 0;\nclass Range {\n constructor(x, y) {\n this.position = {\n x: x,\n y: y,\n };\n }\n}\nexports.Range = Range;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXRpbHMvUmFuZ2UuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9VdGlscy9SYW5nZS5qcz84OGJhIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5SYW5nZSA9IHZvaWQgMDtcbmNsYXNzIFJhbmdlIHtcbiAgICBjb25zdHJ1Y3Rvcih4LCB5KSB7XG4gICAgICAgIHRoaXMucG9zaXRpb24gPSB7XG4gICAgICAgICAgICB4OiB4LFxuICAgICAgICAgICAgeTogeSxcbiAgICAgICAgfTtcbiAgICB9XG59XG5leHBvcnRzLlJhbmdlID0gUmFuZ2U7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Utils/Range.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Utils/Rectangle.js": +/*!*****************************************************!*\ + !*** ./node_modules/tsparticles/Utils/Rectangle.js ***! + \*****************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Rectangle = void 0;\nconst Range_1 = __webpack_require__(/*! ./Range */ \"./node_modules/tsparticles/Utils/Range.js\");\nclass Rectangle extends Range_1.Range {\n constructor(x, y, width, height) {\n super(x, y);\n this.size = {\n height: height,\n width: width,\n };\n }\n contains(point) {\n const w = this.size.width;\n const h = this.size.height;\n const pos = this.position;\n return point.x >= pos.x && point.x <= pos.x + w && point.y >= pos.y && point.y <= pos.y + h;\n }\n intersects(range) {\n const rect = range;\n const circle = range;\n const w = this.size.width;\n const h = this.size.height;\n const pos1 = this.position;\n const pos2 = range.position;\n if (circle.radius !== undefined) {\n return circle.intersects(this);\n }\n else if (rect.size !== undefined) {\n const size2 = rect.size;\n const w2 = size2.width;\n const h2 = size2.height;\n return pos2.x < pos1.x + w && pos2.x + w2 > pos1.x && pos2.y < pos1.y + h && pos2.y + h2 > pos1.y;\n }\n return false;\n }\n}\nexports.Rectangle = Rectangle;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXRpbHMvUmVjdGFuZ2xlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGlCQUFpQjtBQUNqQixnQkFBZ0IsbUJBQU8sQ0FBQywwREFBUztBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1V0aWxzL1JlY3RhbmdsZS5qcz8wM2Y5Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5SZWN0YW5nbGUgPSB2b2lkIDA7XG5jb25zdCBSYW5nZV8xID0gcmVxdWlyZShcIi4vUmFuZ2VcIik7XG5jbGFzcyBSZWN0YW5nbGUgZXh0ZW5kcyBSYW5nZV8xLlJhbmdlIHtcbiAgICBjb25zdHJ1Y3Rvcih4LCB5LCB3aWR0aCwgaGVpZ2h0KSB7XG4gICAgICAgIHN1cGVyKHgsIHkpO1xuICAgICAgICB0aGlzLnNpemUgPSB7XG4gICAgICAgICAgICBoZWlnaHQ6IGhlaWdodCxcbiAgICAgICAgICAgIHdpZHRoOiB3aWR0aCxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgY29udGFpbnMocG9pbnQpIHtcbiAgICAgICAgY29uc3QgdyA9IHRoaXMuc2l6ZS53aWR0aDtcbiAgICAgICAgY29uc3QgaCA9IHRoaXMuc2l6ZS5oZWlnaHQ7XG4gICAgICAgIGNvbnN0IHBvcyA9IHRoaXMucG9zaXRpb247XG4gICAgICAgIHJldHVybiBwb2ludC54ID49IHBvcy54ICYmIHBvaW50LnggPD0gcG9zLnggKyB3ICYmIHBvaW50LnkgPj0gcG9zLnkgJiYgcG9pbnQueSA8PSBwb3MueSArIGg7XG4gICAgfVxuICAgIGludGVyc2VjdHMocmFuZ2UpIHtcbiAgICAgICAgY29uc3QgcmVjdCA9IHJhbmdlO1xuICAgICAgICBjb25zdCBjaXJjbGUgPSByYW5nZTtcbiAgICAgICAgY29uc3QgdyA9IHRoaXMuc2l6ZS53aWR0aDtcbiAgICAgICAgY29uc3QgaCA9IHRoaXMuc2l6ZS5oZWlnaHQ7XG4gICAgICAgIGNvbnN0IHBvczEgPSB0aGlzLnBvc2l0aW9uO1xuICAgICAgICBjb25zdCBwb3MyID0gcmFuZ2UucG9zaXRpb247XG4gICAgICAgIGlmIChjaXJjbGUucmFkaXVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBjaXJjbGUuaW50ZXJzZWN0cyh0aGlzKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChyZWN0LnNpemUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29uc3Qgc2l6ZTIgPSByZWN0LnNpemU7XG4gICAgICAgICAgICBjb25zdCB3MiA9IHNpemUyLndpZHRoO1xuICAgICAgICAgICAgY29uc3QgaDIgPSBzaXplMi5oZWlnaHQ7XG4gICAgICAgICAgICByZXR1cm4gcG9zMi54IDwgcG9zMS54ICsgdyAmJiBwb3MyLnggKyB3MiA+IHBvczEueCAmJiBwb3MyLnkgPCBwb3MxLnkgKyBoICYmIHBvczIueSArIGgyID4gcG9zMS55O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG5leHBvcnRzLlJlY3RhbmdsZSA9IFJlY3RhbmdsZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Utils/Rectangle.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Utils/Utils.js": +/*!*************************************************!*\ + !*** ./node_modules/tsparticles/Utils/Utils.js ***! + \*************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.rectBounce = exports.circleBounce = exports.circleBounceDataFromParticle = exports.divMode = exports.singleDivModeExecute = exports.divModeExecute = exports.isDivModeEnabled = exports.deepExtend = exports.calculateBounds = exports.areBoundsInside = exports.isPointInside = exports.itemFromArray = exports.arrayRandomIndex = exports.loadFont = exports.isInArray = exports.cancelAnimation = exports.animate = exports.isSsr = void 0;\nconst Enums_1 = __webpack_require__(/*! ../Enums */ \"./node_modules/tsparticles/Enums/index.js\");\nconst NumberUtils_1 = __webpack_require__(/*! ./NumberUtils */ \"./node_modules/tsparticles/Utils/NumberUtils.js\");\nconst Vector_1 = __webpack_require__(/*! ../Core/Particle/Vector */ \"./node_modules/tsparticles/Core/Particle/Vector.js\");\nfunction rectSideBounce(pSide, pOtherSide, rectSide, rectOtherSide, velocity, factor) {\n const res = { bounced: false };\n if (pOtherSide.min >= rectOtherSide.min &&\n pOtherSide.min <= rectOtherSide.max &&\n pOtherSide.max >= rectOtherSide.min &&\n pOtherSide.max <= rectOtherSide.max) {\n if ((pSide.max >= rectSide.min && pSide.max <= (rectSide.max + rectSide.min) / 2 && velocity > 0) ||\n (pSide.min <= rectSide.max && pSide.min > (rectSide.max + rectSide.min) / 2 && velocity < 0)) {\n res.velocity = velocity * -factor;\n res.bounced = true;\n }\n }\n return res;\n}\nfunction checkSelector(element, selectors) {\n if (selectors instanceof Array) {\n for (const selector of selectors) {\n if (element.matches(selector)) {\n return true;\n }\n }\n return false;\n }\n else {\n return element.matches(selectors);\n }\n}\nfunction isSsr() {\n return typeof window === \"undefined\" || !window || typeof window.document === \"undefined\" || !window.document;\n}\nexports.isSsr = isSsr;\nfunction animate() {\n return isSsr()\n ? (callback) => setTimeout(callback)\n : (callback) => (window.requestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n window.oRequestAnimationFrame ||\n window.msRequestAnimationFrame ||\n window.setTimeout)(callback);\n}\nexports.animate = animate;\nfunction cancelAnimation() {\n return isSsr()\n ? (handle) => clearTimeout(handle)\n : (handle) => (window.cancelAnimationFrame ||\n window.webkitCancelRequestAnimationFrame ||\n window.mozCancelRequestAnimationFrame ||\n window.oCancelRequestAnimationFrame ||\n window.msCancelRequestAnimationFrame ||\n window.clearTimeout)(handle);\n}\nexports.cancelAnimation = cancelAnimation;\nfunction isInArray(value, array) {\n return value === array || (array instanceof Array && array.indexOf(value) > -1);\n}\nexports.isInArray = isInArray;\nasync function loadFont(character) {\n var _a, _b;\n try {\n await document.fonts.load(`${(_a = character.weight) !== null && _a !== void 0 ? _a : \"400\"} 36px '${(_b = character.font) !== null && _b !== void 0 ? _b : \"Verdana\"}'`);\n }\n catch (_c) {\n }\n}\nexports.loadFont = loadFont;\nfunction arrayRandomIndex(array) {\n return Math.floor(Math.random() * array.length);\n}\nexports.arrayRandomIndex = arrayRandomIndex;\nfunction itemFromArray(array, index, useIndex = true) {\n const fixedIndex = index !== undefined && useIndex ? index % array.length : arrayRandomIndex(array);\n return array[fixedIndex];\n}\nexports.itemFromArray = itemFromArray;\nfunction isPointInside(point, size, radius, direction) {\n return areBoundsInside(calculateBounds(point, radius !== null && radius !== void 0 ? radius : 0), size, direction);\n}\nexports.isPointInside = isPointInside;\nfunction areBoundsInside(bounds, size, direction) {\n let inside = true;\n if (!direction || direction === Enums_1.OutModeDirection.bottom) {\n inside = bounds.top < size.height;\n }\n if (inside && (!direction || direction === Enums_1.OutModeDirection.left)) {\n inside = bounds.right > 0;\n }\n if (inside && (!direction || direction === Enums_1.OutModeDirection.right)) {\n inside = bounds.left < size.width;\n }\n if (inside && (!direction || direction === Enums_1.OutModeDirection.top)) {\n inside = bounds.bottom > 0;\n }\n return inside;\n}\nexports.areBoundsInside = areBoundsInside;\nfunction calculateBounds(point, radius) {\n return {\n bottom: point.y + radius,\n left: point.x - radius,\n right: point.x + radius,\n top: point.y - radius,\n };\n}\nexports.calculateBounds = calculateBounds;\nfunction deepExtend(destination, ...sources) {\n for (const source of sources) {\n if (source === undefined || source === null) {\n continue;\n }\n if (typeof source !== \"object\") {\n destination = source;\n continue;\n }\n const sourceIsArray = Array.isArray(source);\n if (sourceIsArray && (typeof destination !== \"object\" || !destination || !Array.isArray(destination))) {\n destination = [];\n }\n else if (!sourceIsArray && (typeof destination !== \"object\" || !destination || Array.isArray(destination))) {\n destination = {};\n }\n for (const key in source) {\n if (key === \"__proto__\") {\n continue;\n }\n const sourceDict = source;\n const value = sourceDict[key];\n const isObject = typeof value === \"object\";\n const destDict = destination;\n destDict[key] =\n isObject && Array.isArray(value)\n ? value.map((v) => deepExtend(destDict[key], v))\n : deepExtend(destDict[key], value);\n }\n }\n return destination;\n}\nexports.deepExtend = deepExtend;\nfunction isDivModeEnabled(mode, divs) {\n return divs instanceof Array ? !!divs.find((t) => t.enable && isInArray(mode, t.mode)) : isInArray(mode, divs.mode);\n}\nexports.isDivModeEnabled = isDivModeEnabled;\nfunction divModeExecute(mode, divs, callback) {\n if (divs instanceof Array) {\n for (const div of divs) {\n const divMode = div.mode;\n const divEnabled = div.enable;\n if (divEnabled && isInArray(mode, divMode)) {\n singleDivModeExecute(div, callback);\n }\n }\n }\n else {\n const divMode = divs.mode;\n const divEnabled = divs.enable;\n if (divEnabled && isInArray(mode, divMode)) {\n singleDivModeExecute(divs, callback);\n }\n }\n}\nexports.divModeExecute = divModeExecute;\nfunction singleDivModeExecute(div, callback) {\n const selectors = div.selectors;\n if (selectors instanceof Array) {\n for (const selector of selectors) {\n callback(selector, div);\n }\n }\n else {\n callback(selectors, div);\n }\n}\nexports.singleDivModeExecute = singleDivModeExecute;\nfunction divMode(divs, element) {\n if (!element || !divs) {\n return;\n }\n if (divs instanceof Array) {\n return divs.find((d) => checkSelector(element, d.selectors));\n }\n else if (checkSelector(element, divs.selectors)) {\n return divs;\n }\n}\nexports.divMode = divMode;\nfunction circleBounceDataFromParticle(p) {\n return {\n position: p.getPosition(),\n radius: p.getRadius(),\n mass: p.getMass(),\n velocity: p.velocity,\n factor: Vector_1.Vector.create((0, NumberUtils_1.getValue)(p.options.bounce.horizontal), (0, NumberUtils_1.getValue)(p.options.bounce.vertical)),\n };\n}\nexports.circleBounceDataFromParticle = circleBounceDataFromParticle;\nfunction circleBounce(p1, p2) {\n const xVelocityDiff = p1.velocity.x;\n const yVelocityDiff = p1.velocity.y;\n const pos1 = p1.position;\n const pos2 = p2.position;\n const xDist = pos2.x - pos1.x;\n const yDist = pos2.y - pos1.y;\n if (xVelocityDiff * xDist + yVelocityDiff * yDist >= 0) {\n const angle = -Math.atan2(pos2.y - pos1.y, pos2.x - pos1.x);\n const m1 = p1.mass;\n const m2 = p2.mass;\n const u1 = p1.velocity.rotate(angle);\n const u2 = p2.velocity.rotate(angle);\n const v1 = (0, NumberUtils_1.collisionVelocity)(u1, u2, m1, m2);\n const v2 = (0, NumberUtils_1.collisionVelocity)(u2, u1, m1, m2);\n const vFinal1 = v1.rotate(-angle);\n const vFinal2 = v2.rotate(-angle);\n p1.velocity.x = vFinal1.x * p1.factor.x;\n p1.velocity.y = vFinal1.y * p1.factor.y;\n p2.velocity.x = vFinal2.x * p2.factor.x;\n p2.velocity.y = vFinal2.y * p2.factor.y;\n }\n}\nexports.circleBounce = circleBounce;\nfunction rectBounce(particle, divBounds) {\n const pPos = particle.getPosition();\n const size = particle.getRadius();\n const bounds = calculateBounds(pPos, size);\n const resH = rectSideBounce({\n min: bounds.left,\n max: bounds.right,\n }, {\n min: bounds.top,\n max: bounds.bottom,\n }, {\n min: divBounds.left,\n max: divBounds.right,\n }, {\n min: divBounds.top,\n max: divBounds.bottom,\n }, particle.velocity.x, (0, NumberUtils_1.getValue)(particle.options.bounce.horizontal));\n if (resH.bounced) {\n if (resH.velocity !== undefined) {\n particle.velocity.x = resH.velocity;\n }\n if (resH.position !== undefined) {\n particle.position.x = resH.position;\n }\n }\n const resV = rectSideBounce({\n min: bounds.top,\n max: bounds.bottom,\n }, {\n min: bounds.left,\n max: bounds.right,\n }, {\n min: divBounds.top,\n max: divBounds.bottom,\n }, {\n min: divBounds.left,\n max: divBounds.right,\n }, particle.velocity.y, (0, NumberUtils_1.getValue)(particle.options.bounce.vertical));\n if (resV.bounced) {\n if (resV.velocity !== undefined) {\n particle.velocity.y = resV.velocity;\n }\n if (resV.position !== undefined) {\n particle.position.y = resV.position;\n }\n }\n}\nexports.rectBounce = rectBounce;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXRpbHMvVXRpbHMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsa0JBQWtCLEdBQUcsb0JBQW9CLEdBQUcsb0NBQW9DLEdBQUcsZUFBZSxHQUFHLDRCQUE0QixHQUFHLHNCQUFzQixHQUFHLHdCQUF3QixHQUFHLGtCQUFrQixHQUFHLHVCQUF1QixHQUFHLHVCQUF1QixHQUFHLHFCQUFxQixHQUFHLHFCQUFxQixHQUFHLHdCQUF3QixHQUFHLGdCQUFnQixHQUFHLGlCQUFpQixHQUFHLHVCQUF1QixHQUFHLGVBQWUsR0FBRyxhQUFhO0FBQzVhLGdCQUFnQixtQkFBTyxDQUFDLDJEQUFVO0FBQ2xDLHNCQUFzQixtQkFBTyxDQUFDLHNFQUFlO0FBQzdDLGlCQUFpQixtQkFBTyxDQUFDLG1GQUF5QjtBQUNsRDtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EscUNBQXFDLGdFQUFnRSxRQUFRLGlFQUFpRTtBQUM5SztBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQSx3QkFBd0I7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUI7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQSx3QkFBd0I7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEI7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0M7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXRpbHMvVXRpbHMuanM/MWRiZSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMucmVjdEJvdW5jZSA9IGV4cG9ydHMuY2lyY2xlQm91bmNlID0gZXhwb3J0cy5jaXJjbGVCb3VuY2VEYXRhRnJvbVBhcnRpY2xlID0gZXhwb3J0cy5kaXZNb2RlID0gZXhwb3J0cy5zaW5nbGVEaXZNb2RlRXhlY3V0ZSA9IGV4cG9ydHMuZGl2TW9kZUV4ZWN1dGUgPSBleHBvcnRzLmlzRGl2TW9kZUVuYWJsZWQgPSBleHBvcnRzLmRlZXBFeHRlbmQgPSBleHBvcnRzLmNhbGN1bGF0ZUJvdW5kcyA9IGV4cG9ydHMuYXJlQm91bmRzSW5zaWRlID0gZXhwb3J0cy5pc1BvaW50SW5zaWRlID0gZXhwb3J0cy5pdGVtRnJvbUFycmF5ID0gZXhwb3J0cy5hcnJheVJhbmRvbUluZGV4ID0gZXhwb3J0cy5sb2FkRm9udCA9IGV4cG9ydHMuaXNJbkFycmF5ID0gZXhwb3J0cy5jYW5jZWxBbmltYXRpb24gPSBleHBvcnRzLmFuaW1hdGUgPSBleHBvcnRzLmlzU3NyID0gdm9pZCAwO1xuY29uc3QgRW51bXNfMSA9IHJlcXVpcmUoXCIuLi9FbnVtc1wiKTtcbmNvbnN0IE51bWJlclV0aWxzXzEgPSByZXF1aXJlKFwiLi9OdW1iZXJVdGlsc1wiKTtcbmNvbnN0IFZlY3Rvcl8xID0gcmVxdWlyZShcIi4uL0NvcmUvUGFydGljbGUvVmVjdG9yXCIpO1xuZnVuY3Rpb24gcmVjdFNpZGVCb3VuY2UocFNpZGUsIHBPdGhlclNpZGUsIHJlY3RTaWRlLCByZWN0T3RoZXJTaWRlLCB2ZWxvY2l0eSwgZmFjdG9yKSB7XG4gICAgY29uc3QgcmVzID0geyBib3VuY2VkOiBmYWxzZSB9O1xuICAgIGlmIChwT3RoZXJTaWRlLm1pbiA+PSByZWN0T3RoZXJTaWRlLm1pbiAmJlxuICAgICAgICBwT3RoZXJTaWRlLm1pbiA8PSByZWN0T3RoZXJTaWRlLm1heCAmJlxuICAgICAgICBwT3RoZXJTaWRlLm1heCA+PSByZWN0T3RoZXJTaWRlLm1pbiAmJlxuICAgICAgICBwT3RoZXJTaWRlLm1heCA8PSByZWN0T3RoZXJTaWRlLm1heCkge1xuICAgICAgICBpZiAoKHBTaWRlLm1heCA+PSByZWN0U2lkZS5taW4gJiYgcFNpZGUubWF4IDw9IChyZWN0U2lkZS5tYXggKyByZWN0U2lkZS5taW4pIC8gMiAmJiB2ZWxvY2l0eSA+IDApIHx8XG4gICAgICAgICAgICAocFNpZGUubWluIDw9IHJlY3RTaWRlLm1heCAmJiBwU2lkZS5taW4gPiAocmVjdFNpZGUubWF4ICsgcmVjdFNpZGUubWluKSAvIDIgJiYgdmVsb2NpdHkgPCAwKSkge1xuICAgICAgICAgICAgcmVzLnZlbG9jaXR5ID0gdmVsb2NpdHkgKiAtZmFjdG9yO1xuICAgICAgICAgICAgcmVzLmJvdW5jZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXM7XG59XG5mdW5jdGlvbiBjaGVja1NlbGVjdG9yKGVsZW1lbnQsIHNlbGVjdG9ycykge1xuICAgIGlmIChzZWxlY3RvcnMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICBmb3IgKGNvbnN0IHNlbGVjdG9yIG9mIHNlbGVjdG9ycykge1xuICAgICAgICAgICAgaWYgKGVsZW1lbnQubWF0Y2hlcyhzZWxlY3RvcikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICByZXR1cm4gZWxlbWVudC5tYXRjaGVzKHNlbGVjdG9ycyk7XG4gICAgfVxufVxuZnVuY3Rpb24gaXNTc3IoKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB3aW5kb3cgPT09IFwidW5kZWZpbmVkXCIgfHwgIXdpbmRvdyB8fCB0eXBlb2Ygd2luZG93LmRvY3VtZW50ID09PSBcInVuZGVmaW5lZFwiIHx8ICF3aW5kb3cuZG9jdW1lbnQ7XG59XG5leHBvcnRzLmlzU3NyID0gaXNTc3I7XG5mdW5jdGlvbiBhbmltYXRlKCkge1xuICAgIHJldHVybiBpc1NzcigpXG4gICAgICAgID8gKGNhbGxiYWNrKSA9PiBzZXRUaW1lb3V0KGNhbGxiYWNrKVxuICAgICAgICA6IChjYWxsYmFjaykgPT4gKHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUgfHxcbiAgICAgICAgICAgIHdpbmRvdy53ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUgfHxcbiAgICAgICAgICAgIHdpbmRvdy5tb3pSZXF1ZXN0QW5pbWF0aW9uRnJhbWUgfHxcbiAgICAgICAgICAgIHdpbmRvdy5vUmVxdWVzdEFuaW1hdGlvbkZyYW1lIHx8XG4gICAgICAgICAgICB3aW5kb3cubXNSZXF1ZXN0QW5pbWF0aW9uRnJhbWUgfHxcbiAgICAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KShjYWxsYmFjayk7XG59XG5leHBvcnRzLmFuaW1hdGUgPSBhbmltYXRlO1xuZnVuY3Rpb24gY2FuY2VsQW5pbWF0aW9uKCkge1xuICAgIHJldHVybiBpc1NzcigpXG4gICAgICAgID8gKGhhbmRsZSkgPT4gY2xlYXJUaW1lb3V0KGhhbmRsZSlcbiAgICAgICAgOiAoaGFuZGxlKSA9PiAod2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lIHx8XG4gICAgICAgICAgICB3aW5kb3cud2Via2l0Q2FuY2VsUmVxdWVzdEFuaW1hdGlvbkZyYW1lIHx8XG4gICAgICAgICAgICB3aW5kb3cubW96Q2FuY2VsUmVxdWVzdEFuaW1hdGlvbkZyYW1lIHx8XG4gICAgICAgICAgICB3aW5kb3cub0NhbmNlbFJlcXVlc3RBbmltYXRpb25GcmFtZSB8fFxuICAgICAgICAgICAgd2luZG93Lm1zQ2FuY2VsUmVxdWVzdEFuaW1hdGlvbkZyYW1lIHx8XG4gICAgICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KShoYW5kbGUpO1xufVxuZXhwb3J0cy5jYW5jZWxBbmltYXRpb24gPSBjYW5jZWxBbmltYXRpb247XG5mdW5jdGlvbiBpc0luQXJyYXkodmFsdWUsIGFycmF5KSB7XG4gICAgcmV0dXJuIHZhbHVlID09PSBhcnJheSB8fCAoYXJyYXkgaW5zdGFuY2VvZiBBcnJheSAmJiBhcnJheS5pbmRleE9mKHZhbHVlKSA+IC0xKTtcbn1cbmV4cG9ydHMuaXNJbkFycmF5ID0gaXNJbkFycmF5O1xuYXN5bmMgZnVuY3Rpb24gbG9hZEZvbnQoY2hhcmFjdGVyKSB7XG4gICAgdmFyIF9hLCBfYjtcbiAgICB0cnkge1xuICAgICAgICBhd2FpdCBkb2N1bWVudC5mb250cy5sb2FkKGAkeyhfYSA9IGNoYXJhY3Rlci53ZWlnaHQpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IFwiNDAwXCJ9IDM2cHggJyR7KF9iID0gY2hhcmFjdGVyLmZvbnQpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IFwiVmVyZGFuYVwifSdgKTtcbiAgICB9XG4gICAgY2F0Y2ggKF9jKSB7XG4gICAgfVxufVxuZXhwb3J0cy5sb2FkRm9udCA9IGxvYWRGb250O1xuZnVuY3Rpb24gYXJyYXlSYW5kb21JbmRleChhcnJheSkge1xuICAgIHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBhcnJheS5sZW5ndGgpO1xufVxuZXhwb3J0cy5hcnJheVJhbmRvbUluZGV4ID0gYXJyYXlSYW5kb21JbmRleDtcbmZ1bmN0aW9uIGl0ZW1Gcm9tQXJyYXkoYXJyYXksIGluZGV4LCB1c2VJbmRleCA9IHRydWUpIHtcbiAgICBjb25zdCBmaXhlZEluZGV4ID0gaW5kZXggIT09IHVuZGVmaW5lZCAmJiB1c2VJbmRleCA/IGluZGV4ICUgYXJyYXkubGVuZ3RoIDogYXJyYXlSYW5kb21JbmRleChhcnJheSk7XG4gICAgcmV0dXJuIGFycmF5W2ZpeGVkSW5kZXhdO1xufVxuZXhwb3J0cy5pdGVtRnJvbUFycmF5ID0gaXRlbUZyb21BcnJheTtcbmZ1bmN0aW9uIGlzUG9pbnRJbnNpZGUocG9pbnQsIHNpemUsIHJhZGl1cywgZGlyZWN0aW9uKSB7XG4gICAgcmV0dXJuIGFyZUJvdW5kc0luc2lkZShjYWxjdWxhdGVCb3VuZHMocG9pbnQsIHJhZGl1cyAhPT0gbnVsbCAmJiByYWRpdXMgIT09IHZvaWQgMCA/IHJhZGl1cyA6IDApLCBzaXplLCBkaXJlY3Rpb24pO1xufVxuZXhwb3J0cy5pc1BvaW50SW5zaWRlID0gaXNQb2ludEluc2lkZTtcbmZ1bmN0aW9uIGFyZUJvdW5kc0luc2lkZShib3VuZHMsIHNpemUsIGRpcmVjdGlvbikge1xuICAgIGxldCBpbnNpZGUgPSB0cnVlO1xuICAgIGlmICghZGlyZWN0aW9uIHx8IGRpcmVjdGlvbiA9PT0gRW51bXNfMS5PdXRNb2RlRGlyZWN0aW9uLmJvdHRvbSkge1xuICAgICAgICBpbnNpZGUgPSBib3VuZHMudG9wIDwgc2l6ZS5oZWlnaHQ7XG4gICAgfVxuICAgIGlmIChpbnNpZGUgJiYgKCFkaXJlY3Rpb24gfHwgZGlyZWN0aW9uID09PSBFbnVtc18xLk91dE1vZGVEaXJlY3Rpb24ubGVmdCkpIHtcbiAgICAgICAgaW5zaWRlID0gYm91bmRzLnJpZ2h0ID4gMDtcbiAgICB9XG4gICAgaWYgKGluc2lkZSAmJiAoIWRpcmVjdGlvbiB8fCBkaXJlY3Rpb24gPT09IEVudW1zXzEuT3V0TW9kZURpcmVjdGlvbi5yaWdodCkpIHtcbiAgICAgICAgaW5zaWRlID0gYm91bmRzLmxlZnQgPCBzaXplLndpZHRoO1xuICAgIH1cbiAgICBpZiAoaW5zaWRlICYmICghZGlyZWN0aW9uIHx8IGRpcmVjdGlvbiA9PT0gRW51bXNfMS5PdXRNb2RlRGlyZWN0aW9uLnRvcCkpIHtcbiAgICAgICAgaW5zaWRlID0gYm91bmRzLmJvdHRvbSA+IDA7XG4gICAgfVxuICAgIHJldHVybiBpbnNpZGU7XG59XG5leHBvcnRzLmFyZUJvdW5kc0luc2lkZSA9IGFyZUJvdW5kc0luc2lkZTtcbmZ1bmN0aW9uIGNhbGN1bGF0ZUJvdW5kcyhwb2ludCwgcmFkaXVzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYm90dG9tOiBwb2ludC55ICsgcmFkaXVzLFxuICAgICAgICBsZWZ0OiBwb2ludC54IC0gcmFkaXVzLFxuICAgICAgICByaWdodDogcG9pbnQueCArIHJhZGl1cyxcbiAgICAgICAgdG9wOiBwb2ludC55IC0gcmFkaXVzLFxuICAgIH07XG59XG5leHBvcnRzLmNhbGN1bGF0ZUJvdW5kcyA9IGNhbGN1bGF0ZUJvdW5kcztcbmZ1bmN0aW9uIGRlZXBFeHRlbmQoZGVzdGluYXRpb24sIC4uLnNvdXJjZXMpIHtcbiAgICBmb3IgKGNvbnN0IHNvdXJjZSBvZiBzb3VyY2VzKSB7XG4gICAgICAgIGlmIChzb3VyY2UgPT09IHVuZGVmaW5lZCB8fCBzb3VyY2UgPT09IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2Ygc291cmNlICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICBkZXN0aW5hdGlvbiA9IHNvdXJjZTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNvdXJjZUlzQXJyYXkgPSBBcnJheS5pc0FycmF5KHNvdXJjZSk7XG4gICAgICAgIGlmIChzb3VyY2VJc0FycmF5ICYmICh0eXBlb2YgZGVzdGluYXRpb24gIT09IFwib2JqZWN0XCIgfHwgIWRlc3RpbmF0aW9uIHx8ICFBcnJheS5pc0FycmF5KGRlc3RpbmF0aW9uKSkpIHtcbiAgICAgICAgICAgIGRlc3RpbmF0aW9uID0gW107XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoIXNvdXJjZUlzQXJyYXkgJiYgKHR5cGVvZiBkZXN0aW5hdGlvbiAhPT0gXCJvYmplY3RcIiB8fCAhZGVzdGluYXRpb24gfHwgQXJyYXkuaXNBcnJheShkZXN0aW5hdGlvbikpKSB7XG4gICAgICAgICAgICBkZXN0aW5hdGlvbiA9IHt9O1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIHNvdXJjZSkge1xuICAgICAgICAgICAgaWYgKGtleSA9PT0gXCJfX3Byb3RvX19cIikge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgc291cmNlRGljdCA9IHNvdXJjZTtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gc291cmNlRGljdFtrZXldO1xuICAgICAgICAgICAgY29uc3QgaXNPYmplY3QgPSB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCI7XG4gICAgICAgICAgICBjb25zdCBkZXN0RGljdCA9IGRlc3RpbmF0aW9uO1xuICAgICAgICAgICAgZGVzdERpY3Rba2V5XSA9XG4gICAgICAgICAgICAgICAgaXNPYmplY3QgJiYgQXJyYXkuaXNBcnJheSh2YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgPyB2YWx1ZS5tYXAoKHYpID0+IGRlZXBFeHRlbmQoZGVzdERpY3Rba2V5XSwgdikpXG4gICAgICAgICAgICAgICAgICAgIDogZGVlcEV4dGVuZChkZXN0RGljdFtrZXldLCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGRlc3RpbmF0aW9uO1xufVxuZXhwb3J0cy5kZWVwRXh0ZW5kID0gZGVlcEV4dGVuZDtcbmZ1bmN0aW9uIGlzRGl2TW9kZUVuYWJsZWQobW9kZSwgZGl2cykge1xuICAgIHJldHVybiBkaXZzIGluc3RhbmNlb2YgQXJyYXkgPyAhIWRpdnMuZmluZCgodCkgPT4gdC5lbmFibGUgJiYgaXNJbkFycmF5KG1vZGUsIHQubW9kZSkpIDogaXNJbkFycmF5KG1vZGUsIGRpdnMubW9kZSk7XG59XG5leHBvcnRzLmlzRGl2TW9kZUVuYWJsZWQgPSBpc0Rpdk1vZGVFbmFibGVkO1xuZnVuY3Rpb24gZGl2TW9kZUV4ZWN1dGUobW9kZSwgZGl2cywgY2FsbGJhY2spIHtcbiAgICBpZiAoZGl2cyBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgIGZvciAoY29uc3QgZGl2IG9mIGRpdnMpIHtcbiAgICAgICAgICAgIGNvbnN0IGRpdk1vZGUgPSBkaXYubW9kZTtcbiAgICAgICAgICAgIGNvbnN0IGRpdkVuYWJsZWQgPSBkaXYuZW5hYmxlO1xuICAgICAgICAgICAgaWYgKGRpdkVuYWJsZWQgJiYgaXNJbkFycmF5KG1vZGUsIGRpdk1vZGUpKSB7XG4gICAgICAgICAgICAgICAgc2luZ2xlRGl2TW9kZUV4ZWN1dGUoZGl2LCBjYWxsYmFjayk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGNvbnN0IGRpdk1vZGUgPSBkaXZzLm1vZGU7XG4gICAgICAgIGNvbnN0IGRpdkVuYWJsZWQgPSBkaXZzLmVuYWJsZTtcbiAgICAgICAgaWYgKGRpdkVuYWJsZWQgJiYgaXNJbkFycmF5KG1vZGUsIGRpdk1vZGUpKSB7XG4gICAgICAgICAgICBzaW5nbGVEaXZNb2RlRXhlY3V0ZShkaXZzLCBjYWxsYmFjayk7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLmRpdk1vZGVFeGVjdXRlID0gZGl2TW9kZUV4ZWN1dGU7XG5mdW5jdGlvbiBzaW5nbGVEaXZNb2RlRXhlY3V0ZShkaXYsIGNhbGxiYWNrKSB7XG4gICAgY29uc3Qgc2VsZWN0b3JzID0gZGl2LnNlbGVjdG9ycztcbiAgICBpZiAoc2VsZWN0b3JzIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgZm9yIChjb25zdCBzZWxlY3RvciBvZiBzZWxlY3RvcnMpIHtcbiAgICAgICAgICAgIGNhbGxiYWNrKHNlbGVjdG9yLCBkaXYpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBjYWxsYmFjayhzZWxlY3RvcnMsIGRpdik7XG4gICAgfVxufVxuZXhwb3J0cy5zaW5nbGVEaXZNb2RlRXhlY3V0ZSA9IHNpbmdsZURpdk1vZGVFeGVjdXRlO1xuZnVuY3Rpb24gZGl2TW9kZShkaXZzLCBlbGVtZW50KSB7XG4gICAgaWYgKCFlbGVtZW50IHx8ICFkaXZzKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGRpdnMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICByZXR1cm4gZGl2cy5maW5kKChkKSA9PiBjaGVja1NlbGVjdG9yKGVsZW1lbnQsIGQuc2VsZWN0b3JzKSk7XG4gICAgfVxuICAgIGVsc2UgaWYgKGNoZWNrU2VsZWN0b3IoZWxlbWVudCwgZGl2cy5zZWxlY3RvcnMpKSB7XG4gICAgICAgIHJldHVybiBkaXZzO1xuICAgIH1cbn1cbmV4cG9ydHMuZGl2TW9kZSA9IGRpdk1vZGU7XG5mdW5jdGlvbiBjaXJjbGVCb3VuY2VEYXRhRnJvbVBhcnRpY2xlKHApIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBwb3NpdGlvbjogcC5nZXRQb3NpdGlvbigpLFxuICAgICAgICByYWRpdXM6IHAuZ2V0UmFkaXVzKCksXG4gICAgICAgIG1hc3M6IHAuZ2V0TWFzcygpLFxuICAgICAgICB2ZWxvY2l0eTogcC52ZWxvY2l0eSxcbiAgICAgICAgZmFjdG9yOiBWZWN0b3JfMS5WZWN0b3IuY3JlYXRlKCgwLCBOdW1iZXJVdGlsc18xLmdldFZhbHVlKShwLm9wdGlvbnMuYm91bmNlLmhvcml6b250YWwpLCAoMCwgTnVtYmVyVXRpbHNfMS5nZXRWYWx1ZSkocC5vcHRpb25zLmJvdW5jZS52ZXJ0aWNhbCkpLFxuICAgIH07XG59XG5leHBvcnRzLmNpcmNsZUJvdW5jZURhdGFGcm9tUGFydGljbGUgPSBjaXJjbGVCb3VuY2VEYXRhRnJvbVBhcnRpY2xlO1xuZnVuY3Rpb24gY2lyY2xlQm91bmNlKHAxLCBwMikge1xuICAgIGNvbnN0IHhWZWxvY2l0eURpZmYgPSBwMS52ZWxvY2l0eS54O1xuICAgIGNvbnN0IHlWZWxvY2l0eURpZmYgPSBwMS52ZWxvY2l0eS55O1xuICAgIGNvbnN0IHBvczEgPSBwMS5wb3NpdGlvbjtcbiAgICBjb25zdCBwb3MyID0gcDIucG9zaXRpb247XG4gICAgY29uc3QgeERpc3QgPSBwb3MyLnggLSBwb3MxLng7XG4gICAgY29uc3QgeURpc3QgPSBwb3MyLnkgLSBwb3MxLnk7XG4gICAgaWYgKHhWZWxvY2l0eURpZmYgKiB4RGlzdCArIHlWZWxvY2l0eURpZmYgKiB5RGlzdCA+PSAwKSB7XG4gICAgICAgIGNvbnN0IGFuZ2xlID0gLU1hdGguYXRhbjIocG9zMi55IC0gcG9zMS55LCBwb3MyLnggLSBwb3MxLngpO1xuICAgICAgICBjb25zdCBtMSA9IHAxLm1hc3M7XG4gICAgICAgIGNvbnN0IG0yID0gcDIubWFzcztcbiAgICAgICAgY29uc3QgdTEgPSBwMS52ZWxvY2l0eS5yb3RhdGUoYW5nbGUpO1xuICAgICAgICBjb25zdCB1MiA9IHAyLnZlbG9jaXR5LnJvdGF0ZShhbmdsZSk7XG4gICAgICAgIGNvbnN0IHYxID0gKDAsIE51bWJlclV0aWxzXzEuY29sbGlzaW9uVmVsb2NpdHkpKHUxLCB1MiwgbTEsIG0yKTtcbiAgICAgICAgY29uc3QgdjIgPSAoMCwgTnVtYmVyVXRpbHNfMS5jb2xsaXNpb25WZWxvY2l0eSkodTIsIHUxLCBtMSwgbTIpO1xuICAgICAgICBjb25zdCB2RmluYWwxID0gdjEucm90YXRlKC1hbmdsZSk7XG4gICAgICAgIGNvbnN0IHZGaW5hbDIgPSB2Mi5yb3RhdGUoLWFuZ2xlKTtcbiAgICAgICAgcDEudmVsb2NpdHkueCA9IHZGaW5hbDEueCAqIHAxLmZhY3Rvci54O1xuICAgICAgICBwMS52ZWxvY2l0eS55ID0gdkZpbmFsMS55ICogcDEuZmFjdG9yLnk7XG4gICAgICAgIHAyLnZlbG9jaXR5LnggPSB2RmluYWwyLnggKiBwMi5mYWN0b3IueDtcbiAgICAgICAgcDIudmVsb2NpdHkueSA9IHZGaW5hbDIueSAqIHAyLmZhY3Rvci55O1xuICAgIH1cbn1cbmV4cG9ydHMuY2lyY2xlQm91bmNlID0gY2lyY2xlQm91bmNlO1xuZnVuY3Rpb24gcmVjdEJvdW5jZShwYXJ0aWNsZSwgZGl2Qm91bmRzKSB7XG4gICAgY29uc3QgcFBvcyA9IHBhcnRpY2xlLmdldFBvc2l0aW9uKCk7XG4gICAgY29uc3Qgc2l6ZSA9IHBhcnRpY2xlLmdldFJhZGl1cygpO1xuICAgIGNvbnN0IGJvdW5kcyA9IGNhbGN1bGF0ZUJvdW5kcyhwUG9zLCBzaXplKTtcbiAgICBjb25zdCByZXNIID0gcmVjdFNpZGVCb3VuY2Uoe1xuICAgICAgICBtaW46IGJvdW5kcy5sZWZ0LFxuICAgICAgICBtYXg6IGJvdW5kcy5yaWdodCxcbiAgICB9LCB7XG4gICAgICAgIG1pbjogYm91bmRzLnRvcCxcbiAgICAgICAgbWF4OiBib3VuZHMuYm90dG9tLFxuICAgIH0sIHtcbiAgICAgICAgbWluOiBkaXZCb3VuZHMubGVmdCxcbiAgICAgICAgbWF4OiBkaXZCb3VuZHMucmlnaHQsXG4gICAgfSwge1xuICAgICAgICBtaW46IGRpdkJvdW5kcy50b3AsXG4gICAgICAgIG1heDogZGl2Qm91bmRzLmJvdHRvbSxcbiAgICB9LCBwYXJ0aWNsZS52ZWxvY2l0eS54LCAoMCwgTnVtYmVyVXRpbHNfMS5nZXRWYWx1ZSkocGFydGljbGUub3B0aW9ucy5ib3VuY2UuaG9yaXpvbnRhbCkpO1xuICAgIGlmIChyZXNILmJvdW5jZWQpIHtcbiAgICAgICAgaWYgKHJlc0gudmVsb2NpdHkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcGFydGljbGUudmVsb2NpdHkueCA9IHJlc0gudmVsb2NpdHk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlc0gucG9zaXRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcGFydGljbGUucG9zaXRpb24ueCA9IHJlc0gucG9zaXRpb247XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgcmVzViA9IHJlY3RTaWRlQm91bmNlKHtcbiAgICAgICAgbWluOiBib3VuZHMudG9wLFxuICAgICAgICBtYXg6IGJvdW5kcy5ib3R0b20sXG4gICAgfSwge1xuICAgICAgICBtaW46IGJvdW5kcy5sZWZ0LFxuICAgICAgICBtYXg6IGJvdW5kcy5yaWdodCxcbiAgICB9LCB7XG4gICAgICAgIG1pbjogZGl2Qm91bmRzLnRvcCxcbiAgICAgICAgbWF4OiBkaXZCb3VuZHMuYm90dG9tLFxuICAgIH0sIHtcbiAgICAgICAgbWluOiBkaXZCb3VuZHMubGVmdCxcbiAgICAgICAgbWF4OiBkaXZCb3VuZHMucmlnaHQsXG4gICAgfSwgcGFydGljbGUudmVsb2NpdHkueSwgKDAsIE51bWJlclV0aWxzXzEuZ2V0VmFsdWUpKHBhcnRpY2xlLm9wdGlvbnMuYm91bmNlLnZlcnRpY2FsKSk7XG4gICAgaWYgKHJlc1YuYm91bmNlZCkge1xuICAgICAgICBpZiAocmVzVi52ZWxvY2l0eSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBwYXJ0aWNsZS52ZWxvY2l0eS55ID0gcmVzVi52ZWxvY2l0eTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVzVi5wb3NpdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBwYXJ0aWNsZS5wb3NpdGlvbi55ID0gcmVzVi5wb3NpdGlvbjtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMucmVjdEJvdW5jZSA9IHJlY3RCb3VuY2U7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Utils/Utils.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/Utils/index.js": +/*!*************************************************!*\ + !*** ./node_modules/tsparticles/Utils/index.js ***! + \*************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n__exportStar(__webpack_require__(/*! ./CanvasUtils */ \"./node_modules/tsparticles/Utils/CanvasUtils.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Circle */ \"./node_modules/tsparticles/Utils/Circle.js\"), exports);\n__exportStar(__webpack_require__(/*! ./CircleWarp */ \"./node_modules/tsparticles/Utils/CircleWarp.js\"), exports);\n__exportStar(__webpack_require__(/*! ./ColorUtils */ \"./node_modules/tsparticles/Utils/ColorUtils.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Constants */ \"./node_modules/tsparticles/Utils/Constants.js\"), exports);\n__exportStar(__webpack_require__(/*! ./EventListeners */ \"./node_modules/tsparticles/Utils/EventListeners.js\"), exports);\n__exportStar(__webpack_require__(/*! ./NumberUtils */ \"./node_modules/tsparticles/Utils/NumberUtils.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Plugins */ \"./node_modules/tsparticles/Utils/Plugins.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Point */ \"./node_modules/tsparticles/Utils/Point.js\"), exports);\n__exportStar(__webpack_require__(/*! ./QuadTree */ \"./node_modules/tsparticles/Utils/QuadTree.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Range */ \"./node_modules/tsparticles/Utils/Range.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Rectangle */ \"./node_modules/tsparticles/Utils/Rectangle.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Utils */ \"./node_modules/tsparticles/Utils/Utils.js\"), exports);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvVXRpbHMvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBO0FBQ0EsbUNBQW1DLG9DQUFvQyxnQkFBZ0I7QUFDdkYsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGFBQWEsbUJBQU8sQ0FBQyxzRUFBZTtBQUNwQyxhQUFhLG1CQUFPLENBQUMsNERBQVU7QUFDL0IsYUFBYSxtQkFBTyxDQUFDLG9FQUFjO0FBQ25DLGFBQWEsbUJBQU8sQ0FBQyxvRUFBYztBQUNuQyxhQUFhLG1CQUFPLENBQUMsa0VBQWE7QUFDbEMsYUFBYSxtQkFBTyxDQUFDLDRFQUFrQjtBQUN2QyxhQUFhLG1CQUFPLENBQUMsc0VBQWU7QUFDcEMsYUFBYSxtQkFBTyxDQUFDLDhEQUFXO0FBQ2hDLGFBQWEsbUJBQU8sQ0FBQywwREFBUztBQUM5QixhQUFhLG1CQUFPLENBQUMsZ0VBQVk7QUFDakMsYUFBYSxtQkFBTyxDQUFDLDBEQUFTO0FBQzlCLGFBQWEsbUJBQU8sQ0FBQyxrRUFBYTtBQUNsQyxhQUFhLG1CQUFPLENBQUMsMERBQVMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL1V0aWxzL2luZGV4LmpzPzZlZTIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19jcmVhdGVCaW5kaW5nID0gKHRoaXMgJiYgdGhpcy5fX2NyZWF0ZUJpbmRpbmcpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfSk7XG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgb1trMl0gPSBtW2tdO1xufSkpO1xudmFyIF9fZXhwb3J0U3RhciA9ICh0aGlzICYmIHRoaXMuX19leHBvcnRTdGFyKSB8fCBmdW5jdGlvbihtLCBleHBvcnRzKSB7XG4gICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gXCJkZWZhdWx0XCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzLCBwKSkgX19jcmVhdGVCaW5kaW5nKGV4cG9ydHMsIG0sIHApO1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9DYW52YXNVdGlsc1wiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vQ2lyY2xlXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9DaXJjbGVXYXJwXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9Db2xvclV0aWxzXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9Db25zdGFudHNcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0V2ZW50TGlzdGVuZXJzXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9OdW1iZXJVdGlsc1wiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vUGx1Z2luc1wiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vUG9pbnRcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL1F1YWRUcmVlXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9SYW5nZVwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vUmVjdGFuZ2xlXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9VdGlsc1wiKSwgZXhwb3J0cyk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/Utils/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/full.js": +/*!******************************************!*\ + !*** ./node_modules/tsparticles/full.js ***! + \******************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadFull = void 0;\nconst slim_1 = __webpack_require__(/*! ./slim */ \"./node_modules/tsparticles/slim.js\");\nconst Trail_1 = __webpack_require__(/*! ./Interactions/External/Trail */ \"./node_modules/tsparticles/Interactions/External/Trail/index.js\");\nconst Tilt_1 = __webpack_require__(/*! ./Updaters/Tilt */ \"./node_modules/tsparticles/Updaters/Tilt/index.js\");\nconst Wobble_1 = __webpack_require__(/*! ./Updaters/Wobble */ \"./node_modules/tsparticles/Updaters/Wobble/index.js\");\nconst plugin_1 = __webpack_require__(/*! ./Plugins/Absorbers/plugin */ \"./node_modules/tsparticles/Plugins/Absorbers/plugin.js\");\nconst plugin_2 = __webpack_require__(/*! ./Plugins/Emitters/plugin */ \"./node_modules/tsparticles/Plugins/Emitters/plugin.js\");\nconst plugin_3 = __webpack_require__(/*! ./Plugins/PolygonMask/plugin */ \"./node_modules/tsparticles/Plugins/PolygonMask/plugin.js\");\nconst Roll_1 = __webpack_require__(/*! ./Updaters/Roll */ \"./node_modules/tsparticles/Updaters/Roll/index.js\");\nasync function loadFull(tsParticles) {\n await (0, slim_1.loadSlim)(tsParticles);\n await (0, Trail_1.loadExternalTrailInteraction)(tsParticles);\n await (0, Roll_1.loadRollUpdater)(tsParticles);\n await (0, Tilt_1.loadTiltUpdater)(tsParticles);\n await (0, Wobble_1.loadWobbleUpdater)(tsParticles);\n await (0, plugin_1.loadAbsorbersPlugin)(tsParticles);\n await (0, plugin_2.loadEmittersPlugin)(tsParticles);\n await (0, plugin_3.loadPolygonMaskPlugin)(tsParticles);\n}\nexports.loadFull = loadFull;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvZnVsbC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxnQkFBZ0I7QUFDaEIsZUFBZSxtQkFBTyxDQUFDLGtEQUFRO0FBQy9CLGdCQUFnQixtQkFBTyxDQUFDLHNHQUErQjtBQUN2RCxlQUFlLG1CQUFPLENBQUMsMEVBQWlCO0FBQ3hDLGlCQUFpQixtQkFBTyxDQUFDLDhFQUFtQjtBQUM1QyxpQkFBaUIsbUJBQU8sQ0FBQywwRkFBNEI7QUFDckQsaUJBQWlCLG1CQUFPLENBQUMsd0ZBQTJCO0FBQ3BELGlCQUFpQixtQkFBTyxDQUFDLDhGQUE4QjtBQUN2RCxlQUFlLG1CQUFPLENBQUMsMEVBQWlCO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9mdWxsLmpzPzcwNjYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmxvYWRGdWxsID0gdm9pZCAwO1xuY29uc3Qgc2xpbV8xID0gcmVxdWlyZShcIi4vc2xpbVwiKTtcbmNvbnN0IFRyYWlsXzEgPSByZXF1aXJlKFwiLi9JbnRlcmFjdGlvbnMvRXh0ZXJuYWwvVHJhaWxcIik7XG5jb25zdCBUaWx0XzEgPSByZXF1aXJlKFwiLi9VcGRhdGVycy9UaWx0XCIpO1xuY29uc3QgV29iYmxlXzEgPSByZXF1aXJlKFwiLi9VcGRhdGVycy9Xb2JibGVcIik7XG5jb25zdCBwbHVnaW5fMSA9IHJlcXVpcmUoXCIuL1BsdWdpbnMvQWJzb3JiZXJzL3BsdWdpblwiKTtcbmNvbnN0IHBsdWdpbl8yID0gcmVxdWlyZShcIi4vUGx1Z2lucy9FbWl0dGVycy9wbHVnaW5cIik7XG5jb25zdCBwbHVnaW5fMyA9IHJlcXVpcmUoXCIuL1BsdWdpbnMvUG9seWdvbk1hc2svcGx1Z2luXCIpO1xuY29uc3QgUm9sbF8xID0gcmVxdWlyZShcIi4vVXBkYXRlcnMvUm9sbFwiKTtcbmFzeW5jIGZ1bmN0aW9uIGxvYWRGdWxsKHRzUGFydGljbGVzKSB7XG4gICAgYXdhaXQgKDAsIHNsaW1fMS5sb2FkU2xpbSkodHNQYXJ0aWNsZXMpO1xuICAgIGF3YWl0ICgwLCBUcmFpbF8xLmxvYWRFeHRlcm5hbFRyYWlsSW50ZXJhY3Rpb24pKHRzUGFydGljbGVzKTtcbiAgICBhd2FpdCAoMCwgUm9sbF8xLmxvYWRSb2xsVXBkYXRlcikodHNQYXJ0aWNsZXMpO1xuICAgIGF3YWl0ICgwLCBUaWx0XzEubG9hZFRpbHRVcGRhdGVyKSh0c1BhcnRpY2xlcyk7XG4gICAgYXdhaXQgKDAsIFdvYmJsZV8xLmxvYWRXb2JibGVVcGRhdGVyKSh0c1BhcnRpY2xlcyk7XG4gICAgYXdhaXQgKDAsIHBsdWdpbl8xLmxvYWRBYnNvcmJlcnNQbHVnaW4pKHRzUGFydGljbGVzKTtcbiAgICBhd2FpdCAoMCwgcGx1Z2luXzIubG9hZEVtaXR0ZXJzUGx1Z2luKSh0c1BhcnRpY2xlcyk7XG4gICAgYXdhaXQgKDAsIHBsdWdpbl8zLmxvYWRQb2x5Z29uTWFza1BsdWdpbikodHNQYXJ0aWNsZXMpO1xufVxuZXhwb3J0cy5sb2FkRnVsbCA9IGxvYWRGdWxsO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/full.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/index.js": +/*!*******************************************!*\ + !*** ./node_modules/tsparticles/index.js ***! + \*******************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.tsParticles = exports.pJSDom = exports.particlesJS = exports.Main = exports.Rectangle = exports.Point = exports.Constants = exports.CircleWarp = exports.Circle = void 0;\nconst pjs_1 = __webpack_require__(/*! ./pjs */ \"./node_modules/tsparticles/pjs.js\");\nconst main_1 = __webpack_require__(/*! ./main */ \"./node_modules/tsparticles/main.js\");\nObject.defineProperty(exports, \"Main\", ({ enumerable: true, get: function () { return main_1.Main; } }));\nconst Utils_1 = __webpack_require__(/*! ./Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nObject.defineProperty(exports, \"Circle\", ({ enumerable: true, get: function () { return Utils_1.Circle; } }));\nObject.defineProperty(exports, \"CircleWarp\", ({ enumerable: true, get: function () { return Utils_1.CircleWarp; } }));\nObject.defineProperty(exports, \"Constants\", ({ enumerable: true, get: function () { return Utils_1.Constants; } }));\nObject.defineProperty(exports, \"Point\", ({ enumerable: true, get: function () { return Utils_1.Point; } }));\nObject.defineProperty(exports, \"Rectangle\", ({ enumerable: true, get: function () { return Utils_1.Rectangle; } }));\nconst full_1 = __webpack_require__(/*! ./full */ \"./node_modules/tsparticles/full.js\");\nconst tsParticles = new main_1.Main();\nexports.tsParticles = tsParticles;\ntsParticles.init();\nconst { particlesJS, pJSDom } = (0, pjs_1.initPjs)(tsParticles);\nexports.particlesJS = particlesJS;\nexports.pJSDom = pJSDom;\n(0, full_1.loadFull)(tsParticles);\n__exportStar(__webpack_require__(/*! ./Core/Particle/Vector */ \"./node_modules/tsparticles/Core/Particle/Vector.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Core/Container */ \"./node_modules/tsparticles/Core/Container.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Enums */ \"./node_modules/tsparticles/Enums/index.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Plugins/Absorbers/Enums */ \"./node_modules/tsparticles/Plugins/Absorbers/Enums/index.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Plugins/Emitters/Enums */ \"./node_modules/tsparticles/Plugins/Emitters/Enums/index.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Plugins/PolygonMask/Enums */ \"./node_modules/tsparticles/Plugins/PolygonMask/Enums/index.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Utils/CanvasUtils */ \"./node_modules/tsparticles/Utils/CanvasUtils.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Utils/ColorUtils */ \"./node_modules/tsparticles/Utils/ColorUtils.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Utils/NumberUtils */ \"./node_modules/tsparticles/Utils/NumberUtils.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Utils/Utils */ \"./node_modules/tsparticles/Utils/Utils.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Types */ \"./node_modules/tsparticles/Types/index.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Core/Interfaces */ \"./node_modules/tsparticles/Core/Interfaces/index.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Core/Particle */ \"./node_modules/tsparticles/Core/Particle.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Core/ExternalInteractorBase */ \"./node_modules/tsparticles/Core/ExternalInteractorBase.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Core/ParticlesInteractorBase */ \"./node_modules/tsparticles/Core/ParticlesInteractorBase.js\"), exports);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBO0FBQ0EsbUNBQW1DLG9DQUFvQyxnQkFBZ0I7QUFDdkYsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELG1CQUFtQixHQUFHLGNBQWMsR0FBRyxtQkFBbUIsR0FBRyxZQUFZLEdBQUcsaUJBQWlCLEdBQUcsYUFBYSxHQUFHLGlCQUFpQixHQUFHLGtCQUFrQixHQUFHLGNBQWM7QUFDdkssY0FBYyxtQkFBTyxDQUFDLGdEQUFPO0FBQzdCLGVBQWUsbUJBQU8sQ0FBQyxrREFBUTtBQUMvQix3Q0FBdUMsRUFBRSxxQ0FBcUMsdUJBQXVCLEVBQUM7QUFDdEcsZ0JBQWdCLG1CQUFPLENBQUMsMERBQVM7QUFDakMsMENBQXlDLEVBQUUscUNBQXFDLDBCQUEwQixFQUFDO0FBQzNHLDhDQUE2QyxFQUFFLHFDQUFxQyw4QkFBOEIsRUFBQztBQUNuSCw2Q0FBNEMsRUFBRSxxQ0FBcUMsNkJBQTZCLEVBQUM7QUFDakgseUNBQXdDLEVBQUUscUNBQXFDLHlCQUF5QixFQUFDO0FBQ3pHLDZDQUE0QyxFQUFFLHFDQUFxQyw2QkFBNkIsRUFBQztBQUNqSCxlQUFlLG1CQUFPLENBQUMsa0RBQVE7QUFDL0I7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQSxRQUFRLHNCQUFzQjtBQUM5QixtQkFBbUI7QUFDbkIsY0FBYztBQUNkO0FBQ0EsYUFBYSxtQkFBTyxDQUFDLGtGQUF3QjtBQUM3QyxhQUFhLG1CQUFPLENBQUMsc0VBQWtCO0FBQ3ZDLGFBQWEsbUJBQU8sQ0FBQywwREFBUztBQUM5QixhQUFhLG1CQUFPLENBQUMsOEZBQTJCO0FBQ2hELGFBQWEsbUJBQU8sQ0FBQyw0RkFBMEI7QUFDL0MsYUFBYSxtQkFBTyxDQUFDLGtHQUE2QjtBQUNsRCxhQUFhLG1CQUFPLENBQUMsNEVBQXFCO0FBQzFDLGFBQWEsbUJBQU8sQ0FBQywwRUFBb0I7QUFDekMsYUFBYSxtQkFBTyxDQUFDLDRFQUFxQjtBQUMxQyxhQUFhLG1CQUFPLENBQUMsZ0VBQWU7QUFDcEMsYUFBYSxtQkFBTyxDQUFDLDBEQUFTO0FBQzlCLGFBQWEsbUJBQU8sQ0FBQyw4RUFBbUI7QUFDeEMsYUFBYSxtQkFBTyxDQUFDLG9FQUFpQjtBQUN0QyxhQUFhLG1CQUFPLENBQUMsZ0dBQStCO0FBQ3BELGFBQWEsbUJBQU8sQ0FBQyxrR0FBZ0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL2luZGV4LmpzP2I1MjEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19jcmVhdGVCaW5kaW5nID0gKHRoaXMgJiYgdGhpcy5fX2NyZWF0ZUJpbmRpbmcpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfSk7XG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgb1trMl0gPSBtW2tdO1xufSkpO1xudmFyIF9fZXhwb3J0U3RhciA9ICh0aGlzICYmIHRoaXMuX19leHBvcnRTdGFyKSB8fCBmdW5jdGlvbihtLCBleHBvcnRzKSB7XG4gICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gXCJkZWZhdWx0XCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzLCBwKSkgX19jcmVhdGVCaW5kaW5nKGV4cG9ydHMsIG0sIHApO1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMudHNQYXJ0aWNsZXMgPSBleHBvcnRzLnBKU0RvbSA9IGV4cG9ydHMucGFydGljbGVzSlMgPSBleHBvcnRzLk1haW4gPSBleHBvcnRzLlJlY3RhbmdsZSA9IGV4cG9ydHMuUG9pbnQgPSBleHBvcnRzLkNvbnN0YW50cyA9IGV4cG9ydHMuQ2lyY2xlV2FycCA9IGV4cG9ydHMuQ2lyY2xlID0gdm9pZCAwO1xuY29uc3QgcGpzXzEgPSByZXF1aXJlKFwiLi9wanNcIik7XG5jb25zdCBtYWluXzEgPSByZXF1aXJlKFwiLi9tYWluXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiTWFpblwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gbWFpbl8xLk1haW47IH0gfSk7XG5jb25zdCBVdGlsc18xID0gcmVxdWlyZShcIi4vVXRpbHNcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJDaXJjbGVcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFV0aWxzXzEuQ2lyY2xlOyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiQ2lyY2xlV2FycFwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gVXRpbHNfMS5DaXJjbGVXYXJwOyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiQ29uc3RhbnRzXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBVdGlsc18xLkNvbnN0YW50czsgfSB9KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlBvaW50XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBVdGlsc18xLlBvaW50OyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiUmVjdGFuZ2xlXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBVdGlsc18xLlJlY3RhbmdsZTsgfSB9KTtcbmNvbnN0IGZ1bGxfMSA9IHJlcXVpcmUoXCIuL2Z1bGxcIik7XG5jb25zdCB0c1BhcnRpY2xlcyA9IG5ldyBtYWluXzEuTWFpbigpO1xuZXhwb3J0cy50c1BhcnRpY2xlcyA9IHRzUGFydGljbGVzO1xudHNQYXJ0aWNsZXMuaW5pdCgpO1xuY29uc3QgeyBwYXJ0aWNsZXNKUywgcEpTRG9tIH0gPSAoMCwgcGpzXzEuaW5pdFBqcykodHNQYXJ0aWNsZXMpO1xuZXhwb3J0cy5wYXJ0aWNsZXNKUyA9IHBhcnRpY2xlc0pTO1xuZXhwb3J0cy5wSlNEb20gPSBwSlNEb207XG4oMCwgZnVsbF8xLmxvYWRGdWxsKSh0c1BhcnRpY2xlcyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vQ29yZS9QYXJ0aWNsZS9WZWN0b3JcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0NvcmUvQ29udGFpbmVyXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9FbnVtc1wiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vUGx1Z2lucy9BYnNvcmJlcnMvRW51bXNcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL1BsdWdpbnMvRW1pdHRlcnMvRW51bXNcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL1BsdWdpbnMvUG9seWdvbk1hc2svRW51bXNcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL1V0aWxzL0NhbnZhc1V0aWxzXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9VdGlscy9Db2xvclV0aWxzXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9VdGlscy9OdW1iZXJVdGlsc1wiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vVXRpbHMvVXRpbHNcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL1R5cGVzXCIpLCBleHBvcnRzKTtcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9Db3JlL0ludGVyZmFjZXNcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0NvcmUvUGFydGljbGVcIiksIGV4cG9ydHMpO1xuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0NvcmUvRXh0ZXJuYWxJbnRlcmFjdG9yQmFzZVwiKSwgZXhwb3J0cyk7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vQ29yZS9QYXJ0aWNsZXNJbnRlcmFjdG9yQmFzZVwiKSwgZXhwb3J0cyk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/index.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/main.js": +/*!******************************************!*\ + !*** ./node_modules/tsparticles/main.js ***! + \******************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Main_initialized;\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Main = void 0;\nconst Utils_1 = __webpack_require__(/*! ./Utils */ \"./node_modules/tsparticles/Utils/index.js\");\nconst Loader_1 = __webpack_require__(/*! ./Core/Loader */ \"./node_modules/tsparticles/Core/Loader.js\");\nclass Main {\n constructor() {\n _Main_initialized.set(this, void 0);\n __classPrivateFieldSet(this, _Main_initialized, false, \"f\");\n }\n init() {\n if (!__classPrivateFieldGet(this, _Main_initialized, \"f\")) {\n __classPrivateFieldSet(this, _Main_initialized, true, \"f\");\n }\n }\n async loadFromArray(tagId, options, index) {\n return Loader_1.Loader.load(tagId, options, index);\n }\n async load(tagId, options) {\n return Loader_1.Loader.load(tagId, options);\n }\n async set(id, element, options) {\n return Loader_1.Loader.set(id, element, options);\n }\n async loadJSON(tagId, pathConfigJson, index) {\n return Loader_1.Loader.loadJSON(tagId, pathConfigJson, index);\n }\n async setJSON(id, element, pathConfigJson, index) {\n return Loader_1.Loader.setJSON(id, element, pathConfigJson, index);\n }\n setOnClickHandler(callback) {\n Loader_1.Loader.setOnClickHandler(callback);\n }\n dom() {\n return Loader_1.Loader.dom();\n }\n domItem(index) {\n return Loader_1.Loader.domItem(index);\n }\n async refresh() {\n for (const instance of this.dom()) {\n await instance.refresh();\n }\n }\n async addShape(shape, drawer, init, afterEffect, destroy) {\n let customDrawer;\n if (typeof drawer === \"function\") {\n customDrawer = {\n afterEffect: afterEffect,\n destroy: destroy,\n draw: drawer,\n init: init,\n };\n }\n else {\n customDrawer = drawer;\n }\n Utils_1.Plugins.addShapeDrawer(shape, customDrawer);\n await this.refresh();\n }\n async addPreset(preset, options, override = false) {\n Utils_1.Plugins.addPreset(preset, options, override);\n await this.refresh();\n }\n async addPlugin(plugin) {\n Utils_1.Plugins.addPlugin(plugin);\n await this.refresh();\n }\n async addPathGenerator(name, generator) {\n Utils_1.Plugins.addPathGenerator(name, generator);\n await this.refresh();\n }\n async addInteractor(name, interactorInitializer) {\n Utils_1.Plugins.addInteractor(name, interactorInitializer);\n await this.refresh();\n }\n async addParticleUpdater(name, updaterInitializer) {\n Utils_1.Plugins.addParticleUpdater(name, updaterInitializer);\n await this.refresh();\n }\n}\nexports.Main = Main;\n_Main_initialized = new WeakMap();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvbWFpbi5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxZQUFZO0FBQ1osZ0JBQWdCLG1CQUFPLENBQUMsMERBQVM7QUFDakMsaUJBQWlCLG1CQUFPLENBQUMsZ0VBQWU7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1oiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3RzcGFydGljbGVzL21haW4uanM/Y2E2MyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0ID0gKHRoaXMgJiYgdGhpcy5fX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KSB8fCBmdW5jdGlvbiAocmVjZWl2ZXIsIHN0YXRlLCB2YWx1ZSwga2luZCwgZikge1xuICAgIGlmIChraW5kID09PSBcIm1cIikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgbWV0aG9kIGlzIG5vdCB3cml0YWJsZVwiKTtcbiAgICBpZiAoa2luZCA9PT0gXCJhXCIgJiYgIWYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBzZXR0ZXJcIik7XG4gICAgaWYgKHR5cGVvZiBzdGF0ZSA9PT0gXCJmdW5jdGlvblwiID8gcmVjZWl2ZXIgIT09IHN0YXRlIHx8ICFmIDogIXN0YXRlLmhhcyhyZWNlaXZlcikpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3Qgd3JpdGUgcHJpdmF0ZSBtZW1iZXIgdG8gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdFwiKTtcbiAgICByZXR1cm4gKGtpbmQgPT09IFwiYVwiID8gZi5jYWxsKHJlY2VpdmVyLCB2YWx1ZSkgOiBmID8gZi52YWx1ZSA9IHZhbHVlIDogc3RhdGUuc2V0KHJlY2VpdmVyLCB2YWx1ZSkpLCB2YWx1ZTtcbn07XG52YXIgX19jbGFzc1ByaXZhdGVGaWVsZEdldCA9ICh0aGlzICYmIHRoaXMuX19jbGFzc1ByaXZhdGVGaWVsZEdldCkgfHwgZnVuY3Rpb24gKHJlY2VpdmVyLCBzdGF0ZSwga2luZCwgZikge1xuICAgIGlmIChraW5kID09PSBcImFcIiAmJiAhZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIGdldHRlclwiKTtcbiAgICBpZiAodHlwZW9mIHN0YXRlID09PSBcImZ1bmN0aW9uXCIgPyByZWNlaXZlciAhPT0gc3RhdGUgfHwgIWYgOiAhc3RhdGUuaGFzKHJlY2VpdmVyKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCByZWFkIHByaXZhdGUgbWVtYmVyIGZyb20gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdFwiKTtcbiAgICByZXR1cm4ga2luZCA9PT0gXCJtXCIgPyBmIDoga2luZCA9PT0gXCJhXCIgPyBmLmNhbGwocmVjZWl2ZXIpIDogZiA/IGYudmFsdWUgOiBzdGF0ZS5nZXQocmVjZWl2ZXIpO1xufTtcbnZhciBfTWFpbl9pbml0aWFsaXplZDtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuTWFpbiA9IHZvaWQgMDtcbmNvbnN0IFV0aWxzXzEgPSByZXF1aXJlKFwiLi9VdGlsc1wiKTtcbmNvbnN0IExvYWRlcl8xID0gcmVxdWlyZShcIi4vQ29yZS9Mb2FkZXJcIik7XG5jbGFzcyBNYWluIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgX01haW5faW5pdGlhbGl6ZWQuc2V0KHRoaXMsIHZvaWQgMCk7XG4gICAgICAgIF9fY2xhc3NQcml2YXRlRmllbGRTZXQodGhpcywgX01haW5faW5pdGlhbGl6ZWQsIGZhbHNlLCBcImZcIik7XG4gICAgfVxuICAgIGluaXQoKSB7XG4gICAgICAgIGlmICghX19jbGFzc1ByaXZhdGVGaWVsZEdldCh0aGlzLCBfTWFpbl9pbml0aWFsaXplZCwgXCJmXCIpKSB7XG4gICAgICAgICAgICBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KHRoaXMsIF9NYWluX2luaXRpYWxpemVkLCB0cnVlLCBcImZcIik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYXN5bmMgbG9hZEZyb21BcnJheSh0YWdJZCwgb3B0aW9ucywgaW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIExvYWRlcl8xLkxvYWRlci5sb2FkKHRhZ0lkLCBvcHRpb25zLCBpbmRleCk7XG4gICAgfVxuICAgIGFzeW5jIGxvYWQodGFnSWQsIG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIExvYWRlcl8xLkxvYWRlci5sb2FkKHRhZ0lkLCBvcHRpb25zKTtcbiAgICB9XG4gICAgYXN5bmMgc2V0KGlkLCBlbGVtZW50LCBvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiBMb2FkZXJfMS5Mb2FkZXIuc2V0KGlkLCBlbGVtZW50LCBvcHRpb25zKTtcbiAgICB9XG4gICAgYXN5bmMgbG9hZEpTT04odGFnSWQsIHBhdGhDb25maWdKc29uLCBpbmRleCkge1xuICAgICAgICByZXR1cm4gTG9hZGVyXzEuTG9hZGVyLmxvYWRKU09OKHRhZ0lkLCBwYXRoQ29uZmlnSnNvbiwgaW5kZXgpO1xuICAgIH1cbiAgICBhc3luYyBzZXRKU09OKGlkLCBlbGVtZW50LCBwYXRoQ29uZmlnSnNvbiwgaW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIExvYWRlcl8xLkxvYWRlci5zZXRKU09OKGlkLCBlbGVtZW50LCBwYXRoQ29uZmlnSnNvbiwgaW5kZXgpO1xuICAgIH1cbiAgICBzZXRPbkNsaWNrSGFuZGxlcihjYWxsYmFjaykge1xuICAgICAgICBMb2FkZXJfMS5Mb2FkZXIuc2V0T25DbGlja0hhbmRsZXIoY2FsbGJhY2spO1xuICAgIH1cbiAgICBkb20oKSB7XG4gICAgICAgIHJldHVybiBMb2FkZXJfMS5Mb2FkZXIuZG9tKCk7XG4gICAgfVxuICAgIGRvbUl0ZW0oaW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIExvYWRlcl8xLkxvYWRlci5kb21JdGVtKGluZGV4KTtcbiAgICB9XG4gICAgYXN5bmMgcmVmcmVzaCgpIHtcbiAgICAgICAgZm9yIChjb25zdCBpbnN0YW5jZSBvZiB0aGlzLmRvbSgpKSB7XG4gICAgICAgICAgICBhd2FpdCBpbnN0YW5jZS5yZWZyZXNoKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYXN5bmMgYWRkU2hhcGUoc2hhcGUsIGRyYXdlciwgaW5pdCwgYWZ0ZXJFZmZlY3QsIGRlc3Ryb3kpIHtcbiAgICAgICAgbGV0IGN1c3RvbURyYXdlcjtcbiAgICAgICAgaWYgKHR5cGVvZiBkcmF3ZXIgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgY3VzdG9tRHJhd2VyID0ge1xuICAgICAgICAgICAgICAgIGFmdGVyRWZmZWN0OiBhZnRlckVmZmVjdCxcbiAgICAgICAgICAgICAgICBkZXN0cm95OiBkZXN0cm95LFxuICAgICAgICAgICAgICAgIGRyYXc6IGRyYXdlcixcbiAgICAgICAgICAgICAgICBpbml0OiBpbml0LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGN1c3RvbURyYXdlciA9IGRyYXdlcjtcbiAgICAgICAgfVxuICAgICAgICBVdGlsc18xLlBsdWdpbnMuYWRkU2hhcGVEcmF3ZXIoc2hhcGUsIGN1c3RvbURyYXdlcik7XG4gICAgICAgIGF3YWl0IHRoaXMucmVmcmVzaCgpO1xuICAgIH1cbiAgICBhc3luYyBhZGRQcmVzZXQocHJlc2V0LCBvcHRpb25zLCBvdmVycmlkZSA9IGZhbHNlKSB7XG4gICAgICAgIFV0aWxzXzEuUGx1Z2lucy5hZGRQcmVzZXQocHJlc2V0LCBvcHRpb25zLCBvdmVycmlkZSk7XG4gICAgICAgIGF3YWl0IHRoaXMucmVmcmVzaCgpO1xuICAgIH1cbiAgICBhc3luYyBhZGRQbHVnaW4ocGx1Z2luKSB7XG4gICAgICAgIFV0aWxzXzEuUGx1Z2lucy5hZGRQbHVnaW4ocGx1Z2luKTtcbiAgICAgICAgYXdhaXQgdGhpcy5yZWZyZXNoKCk7XG4gICAgfVxuICAgIGFzeW5jIGFkZFBhdGhHZW5lcmF0b3IobmFtZSwgZ2VuZXJhdG9yKSB7XG4gICAgICAgIFV0aWxzXzEuUGx1Z2lucy5hZGRQYXRoR2VuZXJhdG9yKG5hbWUsIGdlbmVyYXRvcik7XG4gICAgICAgIGF3YWl0IHRoaXMucmVmcmVzaCgpO1xuICAgIH1cbiAgICBhc3luYyBhZGRJbnRlcmFjdG9yKG5hbWUsIGludGVyYWN0b3JJbml0aWFsaXplcikge1xuICAgICAgICBVdGlsc18xLlBsdWdpbnMuYWRkSW50ZXJhY3RvcihuYW1lLCBpbnRlcmFjdG9ySW5pdGlhbGl6ZXIpO1xuICAgICAgICBhd2FpdCB0aGlzLnJlZnJlc2goKTtcbiAgICB9XG4gICAgYXN5bmMgYWRkUGFydGljbGVVcGRhdGVyKG5hbWUsIHVwZGF0ZXJJbml0aWFsaXplcikge1xuICAgICAgICBVdGlsc18xLlBsdWdpbnMuYWRkUGFydGljbGVVcGRhdGVyKG5hbWUsIHVwZGF0ZXJJbml0aWFsaXplcik7XG4gICAgICAgIGF3YWl0IHRoaXMucmVmcmVzaCgpO1xuICAgIH1cbn1cbmV4cG9ydHMuTWFpbiA9IE1haW47XG5fTWFpbl9pbml0aWFsaXplZCA9IG5ldyBXZWFrTWFwKCk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/main.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/pjs.js": +/*!*****************************************!*\ + !*** ./node_modules/tsparticles/pjs.js ***! + \*****************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.initPjs = void 0;\nconst initPjs = (main) => {\n const particlesJS = (tagId, options) => {\n return main.load(tagId, options);\n };\n particlesJS.load = (tagId, pathConfigJson, callback) => {\n main.loadJSON(tagId, pathConfigJson)\n .then((container) => {\n if (container) {\n callback(container);\n }\n })\n .catch(() => {\n callback(undefined);\n });\n };\n particlesJS.setOnClickHandler = (callback) => {\n main.setOnClickHandler(callback);\n };\n const pJSDom = main.dom();\n return { particlesJS, pJSDom };\n};\nexports.initPjs = initPjs;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvcGpzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSxlQUFlIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy90c3BhcnRpY2xlcy9wanMuanM/NDQ1YSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuaW5pdFBqcyA9IHZvaWQgMDtcbmNvbnN0IGluaXRQanMgPSAobWFpbikgPT4ge1xuICAgIGNvbnN0IHBhcnRpY2xlc0pTID0gKHRhZ0lkLCBvcHRpb25zKSA9PiB7XG4gICAgICAgIHJldHVybiBtYWluLmxvYWQodGFnSWQsIG9wdGlvbnMpO1xuICAgIH07XG4gICAgcGFydGljbGVzSlMubG9hZCA9ICh0YWdJZCwgcGF0aENvbmZpZ0pzb24sIGNhbGxiYWNrKSA9PiB7XG4gICAgICAgIG1haW4ubG9hZEpTT04odGFnSWQsIHBhdGhDb25maWdKc29uKVxuICAgICAgICAgICAgLnRoZW4oKGNvbnRhaW5lcikgPT4ge1xuICAgICAgICAgICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgICAgICAgICAgIGNhbGxiYWNrKGNvbnRhaW5lcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgICAgY2FsbGJhY2sodW5kZWZpbmVkKTtcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBwYXJ0aWNsZXNKUy5zZXRPbkNsaWNrSGFuZGxlciA9IChjYWxsYmFjaykgPT4ge1xuICAgICAgICBtYWluLnNldE9uQ2xpY2tIYW5kbGVyKGNhbGxiYWNrKTtcbiAgICB9O1xuICAgIGNvbnN0IHBKU0RvbSA9IG1haW4uZG9tKCk7XG4gICAgcmV0dXJuIHsgcGFydGljbGVzSlMsIHBKU0RvbSB9O1xufTtcbmV4cG9ydHMuaW5pdFBqcyA9IGluaXRQanM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/pjs.js\n"); + +/***/ }), + +/***/ "./node_modules/tsparticles/slim.js": +/*!******************************************!*\ + !*** ./node_modules/tsparticles/slim.js ***! + \******************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.loadSlim = void 0;\nconst Circle_1 = __webpack_require__(/*! ./Shapes/Circle */ \"./node_modules/tsparticles/Shapes/Circle/index.js\");\nconst Life_1 = __webpack_require__(/*! ./Updaters/Life */ \"./node_modules/tsparticles/Updaters/Life/index.js\");\nconst Connect_1 = __webpack_require__(/*! ./Interactions/External/Connect */ \"./node_modules/tsparticles/Interactions/External/Connect/index.js\");\nconst Opacity_1 = __webpack_require__(/*! ./Updaters/Opacity */ \"./node_modules/tsparticles/Updaters/Opacity/index.js\");\nconst Image_1 = __webpack_require__(/*! ./Shapes/Image */ \"./node_modules/tsparticles/Shapes/Image/index.js\");\nconst Polygon_1 = __webpack_require__(/*! ./Shapes/Polygon */ \"./node_modules/tsparticles/Shapes/Polygon/index.js\");\nconst Bubble_1 = __webpack_require__(/*! ./Interactions/External/Bubble */ \"./node_modules/tsparticles/Interactions/External/Bubble/index.js\");\nconst Attract_1 = __webpack_require__(/*! ./Interactions/External/Attract */ \"./node_modules/tsparticles/Interactions/External/Attract/index.js\");\nconst Grab_1 = __webpack_require__(/*! ./Interactions/External/Grab */ \"./node_modules/tsparticles/Interactions/External/Grab/index.js\");\nconst Star_1 = __webpack_require__(/*! ./Shapes/Star */ \"./node_modules/tsparticles/Shapes/Star/index.js\");\nconst Attract_2 = __webpack_require__(/*! ./Interactions/Particles/Attract */ \"./node_modules/tsparticles/Interactions/Particles/Attract/index.js\");\nconst Square_1 = __webpack_require__(/*! ./Shapes/Square */ \"./node_modules/tsparticles/Shapes/Square/index.js\");\nconst StrokeColor_1 = __webpack_require__(/*! ./Updaters/StrokeColor */ \"./node_modules/tsparticles/Updaters/StrokeColor/index.js\");\nconst Color_1 = __webpack_require__(/*! ./Updaters/Color */ \"./node_modules/tsparticles/Updaters/Color/index.js\");\nconst Collisions_1 = __webpack_require__(/*! ./Interactions/Particles/Collisions */ \"./node_modules/tsparticles/Interactions/Particles/Collisions/index.js\");\nconst Angle_1 = __webpack_require__(/*! ./Updaters/Angle */ \"./node_modules/tsparticles/Updaters/Angle/index.js\");\nconst OutModes_1 = __webpack_require__(/*! ./Updaters/OutModes */ \"./node_modules/tsparticles/Updaters/OutModes/index.js\");\nconst Repulse_1 = __webpack_require__(/*! ./Interactions/External/Repulse */ \"./node_modules/tsparticles/Interactions/External/Repulse/index.js\");\nconst Line_1 = __webpack_require__(/*! ./Shapes/Line */ \"./node_modules/tsparticles/Shapes/Line/index.js\");\nconst Bounce_1 = __webpack_require__(/*! ./Interactions/External/Bounce */ \"./node_modules/tsparticles/Interactions/External/Bounce/index.js\");\nconst Text_1 = __webpack_require__(/*! ./Shapes/Text */ \"./node_modules/tsparticles/Shapes/Text/index.js\");\nconst Links_1 = __webpack_require__(/*! ./Interactions/Particles/Links */ \"./node_modules/tsparticles/Interactions/Particles/Links/index.js\");\nconst Size_1 = __webpack_require__(/*! ./Updaters/Size */ \"./node_modules/tsparticles/Updaters/Size/index.js\");\nasync function loadSlim(tsParticles) {\n await (0, Attract_1.loadExternalAttractInteraction)(tsParticles);\n await (0, Bounce_1.loadExternalBounceInteraction)(tsParticles);\n await (0, Bubble_1.loadExternalBubbleInteraction)(tsParticles);\n await (0, Connect_1.loadExternalConnectInteraction)(tsParticles);\n await (0, Grab_1.loadExternalGrabInteraction)(tsParticles);\n await (0, Repulse_1.loadExternalRepulseInteraction)(tsParticles);\n await (0, Attract_2.loadParticlesAttractInteraction)(tsParticles);\n await (0, Collisions_1.loadParticlesCollisionsInteraction)(tsParticles);\n await (0, Links_1.loadParticlesLinksInteraction)(tsParticles);\n await (0, Circle_1.loadCircleShape)(tsParticles);\n await (0, Image_1.loadImageShape)(tsParticles);\n await (0, Line_1.loadLineShape)(tsParticles);\n await (0, Polygon_1.loadPolygonShape)(tsParticles);\n await (0, Square_1.loadSquareShape)(tsParticles);\n await (0, Star_1.loadStarShape)(tsParticles);\n await (0, Text_1.loadTextShape)(tsParticles);\n await (0, Life_1.loadLifeUpdater)(tsParticles);\n await (0, Opacity_1.loadOpacityUpdater)(tsParticles);\n await (0, Size_1.loadSizeUpdater)(tsParticles);\n await (0, Angle_1.loadAngleUpdater)(tsParticles);\n await (0, Color_1.loadColorUpdater)(tsParticles);\n await (0, StrokeColor_1.loadStrokeColorUpdater)(tsParticles);\n await (0, OutModes_1.loadOutModesUpdater)(tsParticles);\n}\nexports.loadSlim = loadSlim;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvc2xpbS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxnQkFBZ0I7QUFDaEIsaUJBQWlCLG1CQUFPLENBQUMsMEVBQWlCO0FBQzFDLGVBQWUsbUJBQU8sQ0FBQywwRUFBaUI7QUFDeEMsa0JBQWtCLG1CQUFPLENBQUMsMEdBQWlDO0FBQzNELGtCQUFrQixtQkFBTyxDQUFDLGdGQUFvQjtBQUM5QyxnQkFBZ0IsbUJBQU8sQ0FBQyx3RUFBZ0I7QUFDeEMsa0JBQWtCLG1CQUFPLENBQUMsNEVBQWtCO0FBQzVDLGlCQUFpQixtQkFBTyxDQUFDLHdHQUFnQztBQUN6RCxrQkFBa0IsbUJBQU8sQ0FBQywwR0FBaUM7QUFDM0QsZUFBZSxtQkFBTyxDQUFDLG9HQUE4QjtBQUNyRCxlQUFlLG1CQUFPLENBQUMsc0VBQWU7QUFDdEMsa0JBQWtCLG1CQUFPLENBQUMsNEdBQWtDO0FBQzVELGlCQUFpQixtQkFBTyxDQUFDLDBFQUFpQjtBQUMxQyxzQkFBc0IsbUJBQU8sQ0FBQyx3RkFBd0I7QUFDdEQsZ0JBQWdCLG1CQUFPLENBQUMsNEVBQWtCO0FBQzFDLHFCQUFxQixtQkFBTyxDQUFDLGtIQUFxQztBQUNsRSxnQkFBZ0IsbUJBQU8sQ0FBQyw0RUFBa0I7QUFDMUMsbUJBQW1CLG1CQUFPLENBQUMsa0ZBQXFCO0FBQ2hELGtCQUFrQixtQkFBTyxDQUFDLDBHQUFpQztBQUMzRCxlQUFlLG1CQUFPLENBQUMsc0VBQWU7QUFDdEMsaUJBQWlCLG1CQUFPLENBQUMsd0dBQWdDO0FBQ3pELGVBQWUsbUJBQU8sQ0FBQyxzRUFBZTtBQUN0QyxnQkFBZ0IsbUJBQU8sQ0FBQyx3R0FBZ0M7QUFDeEQsZUFBZSxtQkFBTyxDQUFDLDBFQUFpQjtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvdHNwYXJ0aWNsZXMvc2xpbS5qcz82ZmM0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5sb2FkU2xpbSA9IHZvaWQgMDtcbmNvbnN0IENpcmNsZV8xID0gcmVxdWlyZShcIi4vU2hhcGVzL0NpcmNsZVwiKTtcbmNvbnN0IExpZmVfMSA9IHJlcXVpcmUoXCIuL1VwZGF0ZXJzL0xpZmVcIik7XG5jb25zdCBDb25uZWN0XzEgPSByZXF1aXJlKFwiLi9JbnRlcmFjdGlvbnMvRXh0ZXJuYWwvQ29ubmVjdFwiKTtcbmNvbnN0IE9wYWNpdHlfMSA9IHJlcXVpcmUoXCIuL1VwZGF0ZXJzL09wYWNpdHlcIik7XG5jb25zdCBJbWFnZV8xID0gcmVxdWlyZShcIi4vU2hhcGVzL0ltYWdlXCIpO1xuY29uc3QgUG9seWdvbl8xID0gcmVxdWlyZShcIi4vU2hhcGVzL1BvbHlnb25cIik7XG5jb25zdCBCdWJibGVfMSA9IHJlcXVpcmUoXCIuL0ludGVyYWN0aW9ucy9FeHRlcm5hbC9CdWJibGVcIik7XG5jb25zdCBBdHRyYWN0XzEgPSByZXF1aXJlKFwiLi9JbnRlcmFjdGlvbnMvRXh0ZXJuYWwvQXR0cmFjdFwiKTtcbmNvbnN0IEdyYWJfMSA9IHJlcXVpcmUoXCIuL0ludGVyYWN0aW9ucy9FeHRlcm5hbC9HcmFiXCIpO1xuY29uc3QgU3Rhcl8xID0gcmVxdWlyZShcIi4vU2hhcGVzL1N0YXJcIik7XG5jb25zdCBBdHRyYWN0XzIgPSByZXF1aXJlKFwiLi9JbnRlcmFjdGlvbnMvUGFydGljbGVzL0F0dHJhY3RcIik7XG5jb25zdCBTcXVhcmVfMSA9IHJlcXVpcmUoXCIuL1NoYXBlcy9TcXVhcmVcIik7XG5jb25zdCBTdHJva2VDb2xvcl8xID0gcmVxdWlyZShcIi4vVXBkYXRlcnMvU3Ryb2tlQ29sb3JcIik7XG5jb25zdCBDb2xvcl8xID0gcmVxdWlyZShcIi4vVXBkYXRlcnMvQ29sb3JcIik7XG5jb25zdCBDb2xsaXNpb25zXzEgPSByZXF1aXJlKFwiLi9JbnRlcmFjdGlvbnMvUGFydGljbGVzL0NvbGxpc2lvbnNcIik7XG5jb25zdCBBbmdsZV8xID0gcmVxdWlyZShcIi4vVXBkYXRlcnMvQW5nbGVcIik7XG5jb25zdCBPdXRNb2Rlc18xID0gcmVxdWlyZShcIi4vVXBkYXRlcnMvT3V0TW9kZXNcIik7XG5jb25zdCBSZXB1bHNlXzEgPSByZXF1aXJlKFwiLi9JbnRlcmFjdGlvbnMvRXh0ZXJuYWwvUmVwdWxzZVwiKTtcbmNvbnN0IExpbmVfMSA9IHJlcXVpcmUoXCIuL1NoYXBlcy9MaW5lXCIpO1xuY29uc3QgQm91bmNlXzEgPSByZXF1aXJlKFwiLi9JbnRlcmFjdGlvbnMvRXh0ZXJuYWwvQm91bmNlXCIpO1xuY29uc3QgVGV4dF8xID0gcmVxdWlyZShcIi4vU2hhcGVzL1RleHRcIik7XG5jb25zdCBMaW5rc18xID0gcmVxdWlyZShcIi4vSW50ZXJhY3Rpb25zL1BhcnRpY2xlcy9MaW5rc1wiKTtcbmNvbnN0IFNpemVfMSA9IHJlcXVpcmUoXCIuL1VwZGF0ZXJzL1NpemVcIik7XG5hc3luYyBmdW5jdGlvbiBsb2FkU2xpbSh0c1BhcnRpY2xlcykge1xuICAgIGF3YWl0ICgwLCBBdHRyYWN0XzEubG9hZEV4dGVybmFsQXR0cmFjdEludGVyYWN0aW9uKSh0c1BhcnRpY2xlcyk7XG4gICAgYXdhaXQgKDAsIEJvdW5jZV8xLmxvYWRFeHRlcm5hbEJvdW5jZUludGVyYWN0aW9uKSh0c1BhcnRpY2xlcyk7XG4gICAgYXdhaXQgKDAsIEJ1YmJsZV8xLmxvYWRFeHRlcm5hbEJ1YmJsZUludGVyYWN0aW9uKSh0c1BhcnRpY2xlcyk7XG4gICAgYXdhaXQgKDAsIENvbm5lY3RfMS5sb2FkRXh0ZXJuYWxDb25uZWN0SW50ZXJhY3Rpb24pKHRzUGFydGljbGVzKTtcbiAgICBhd2FpdCAoMCwgR3JhYl8xLmxvYWRFeHRlcm5hbEdyYWJJbnRlcmFjdGlvbikodHNQYXJ0aWNsZXMpO1xuICAgIGF3YWl0ICgwLCBSZXB1bHNlXzEubG9hZEV4dGVybmFsUmVwdWxzZUludGVyYWN0aW9uKSh0c1BhcnRpY2xlcyk7XG4gICAgYXdhaXQgKDAsIEF0dHJhY3RfMi5sb2FkUGFydGljbGVzQXR0cmFjdEludGVyYWN0aW9uKSh0c1BhcnRpY2xlcyk7XG4gICAgYXdhaXQgKDAsIENvbGxpc2lvbnNfMS5sb2FkUGFydGljbGVzQ29sbGlzaW9uc0ludGVyYWN0aW9uKSh0c1BhcnRpY2xlcyk7XG4gICAgYXdhaXQgKDAsIExpbmtzXzEubG9hZFBhcnRpY2xlc0xpbmtzSW50ZXJhY3Rpb24pKHRzUGFydGljbGVzKTtcbiAgICBhd2FpdCAoMCwgQ2lyY2xlXzEubG9hZENpcmNsZVNoYXBlKSh0c1BhcnRpY2xlcyk7XG4gICAgYXdhaXQgKDAsIEltYWdlXzEubG9hZEltYWdlU2hhcGUpKHRzUGFydGljbGVzKTtcbiAgICBhd2FpdCAoMCwgTGluZV8xLmxvYWRMaW5lU2hhcGUpKHRzUGFydGljbGVzKTtcbiAgICBhd2FpdCAoMCwgUG9seWdvbl8xLmxvYWRQb2x5Z29uU2hhcGUpKHRzUGFydGljbGVzKTtcbiAgICBhd2FpdCAoMCwgU3F1YXJlXzEubG9hZFNxdWFyZVNoYXBlKSh0c1BhcnRpY2xlcyk7XG4gICAgYXdhaXQgKDAsIFN0YXJfMS5sb2FkU3RhclNoYXBlKSh0c1BhcnRpY2xlcyk7XG4gICAgYXdhaXQgKDAsIFRleHRfMS5sb2FkVGV4dFNoYXBlKSh0c1BhcnRpY2xlcyk7XG4gICAgYXdhaXQgKDAsIExpZmVfMS5sb2FkTGlmZVVwZGF0ZXIpKHRzUGFydGljbGVzKTtcbiAgICBhd2FpdCAoMCwgT3BhY2l0eV8xLmxvYWRPcGFjaXR5VXBkYXRlcikodHNQYXJ0aWNsZXMpO1xuICAgIGF3YWl0ICgwLCBTaXplXzEubG9hZFNpemVVcGRhdGVyKSh0c1BhcnRpY2xlcyk7XG4gICAgYXdhaXQgKDAsIEFuZ2xlXzEubG9hZEFuZ2xlVXBkYXRlcikodHNQYXJ0aWNsZXMpO1xuICAgIGF3YWl0ICgwLCBDb2xvcl8xLmxvYWRDb2xvclVwZGF0ZXIpKHRzUGFydGljbGVzKTtcbiAgICBhd2FpdCAoMCwgU3Ryb2tlQ29sb3JfMS5sb2FkU3Ryb2tlQ29sb3JVcGRhdGVyKSh0c1BhcnRpY2xlcyk7XG4gICAgYXdhaXQgKDAsIE91dE1vZGVzXzEubG9hZE91dE1vZGVzVXBkYXRlcikodHNQYXJ0aWNsZXMpO1xufVxuZXhwb3J0cy5sb2FkU2xpbSA9IGxvYWRTbGltO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/tsparticles/slim.js\n"); + +/***/ }), + +/***/ "./node_modules/slick-carousel/slick/ajax-loader.gif": +/*!***********************************************************!*\ + !*** ./node_modules/slick-carousel/slick/ajax-loader.gif ***! + \***********************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +module.exports = __webpack_require__.p + "static/media/ajax-loader.0b80f665.gif"; + +/***/ }), + +/***/ "./node_modules/slick-carousel/slick/fonts/slick.eot": +/*!***********************************************************!*\ + !*** ./node_modules/slick-carousel/slick/fonts/slick.eot ***! + \***********************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +module.exports = __webpack_require__.p + "static/media/slick.25572f22.eot"; + +/***/ }), + +/***/ "./node_modules/slick-carousel/slick/fonts/slick.svg": +/*!***********************************************************!*\ + !*** ./node_modules/slick-carousel/slick/fonts/slick.svg ***! + \***********************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +module.exports = __webpack_require__.p + "static/media/slick.f895cfdf.svg"; + +/***/ }), + +/***/ "./node_modules/slick-carousel/slick/fonts/slick.ttf": +/*!***********************************************************!*\ + !*** ./node_modules/slick-carousel/slick/fonts/slick.ttf ***! + \***********************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +module.exports = __webpack_require__.p + "static/media/slick.6aa1ee46.ttf"; + +/***/ }), + +/***/ "./node_modules/slick-carousel/slick/fonts/slick.woff": +/*!************************************************************!*\ + !*** ./node_modules/slick-carousel/slick/fonts/slick.woff ***! + \************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +module.exports = __webpack_require__.p + "static/media/slick.653a4cbb.woff"; + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js ***! + \*********************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _arrayLikeToArray; }\n/* harmony export */ });\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXJyYXlMaWtlVG9BcnJheS5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQWU7QUFDZjs7QUFFQSx5Q0FBeUMsU0FBUztBQUNsRDtBQUNBOztBQUVBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2FycmF5TGlrZVRvQXJyYXkuanM/MTkxYiJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfYXJyYXlMaWtlVG9BcnJheShhcnIsIGxlbikge1xuICBpZiAobGVuID09IG51bGwgfHwgbGVuID4gYXJyLmxlbmd0aCkgbGVuID0gYXJyLmxlbmd0aDtcblxuICBmb3IgKHZhciBpID0gMCwgYXJyMiA9IG5ldyBBcnJheShsZW4pOyBpIDwgbGVuOyBpKyspIHtcbiAgICBhcnIyW2ldID0gYXJyW2ldO1xuICB9XG5cbiAgcmV0dXJuIGFycjI7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _arrayWithHoles; }\n/* harmony export */ });\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXJyYXlXaXRoSG9sZXMuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFlO0FBQ2Y7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXJyYXlXaXRoSG9sZXMuanM/M2VlMSJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfYXJyYXlXaXRoSG9sZXMoYXJyKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGFycikpIHJldHVybiBhcnI7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js": +/*!**************************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js ***! + \**************************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _assertThisInitialized; }\n/* harmony export */ });\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXNzZXJ0VGhpc0luaXRpYWxpemVkLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBZTtBQUNmO0FBQ0E7QUFDQTs7QUFFQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQuanM/ZWMyZCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpIHtcbiAgaWYgKHNlbGYgPT09IHZvaWQgMCkge1xuICAgIHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTtcbiAgfVxuXG4gIHJldHVybiBzZWxmO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _classCallCheck; }\n/* harmony export */ });\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY2xhc3NDYWxsQ2hlY2suanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2NsYXNzQ2FsbENoZWNrLmpzP2UyZDAiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3Rvcikge1xuICBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7XG4gIH1cbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/createClass.js": +/*!****************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/createClass.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _createClass; }\n/* harmony export */ });\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY3JlYXRlQ2xhc3MuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0Esa0JBQWtCLGtCQUFrQjtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFZTtBQUNmO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jcmVhdGVDbGFzcy5qcz8xNDgwIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07XG4gICAgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlO1xuICAgIGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTtcbiAgICBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfY3JlYXRlQ2xhc3MoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7XG4gIGlmIChwcm90b1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpO1xuICBpZiAoc3RhdGljUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7XG4gIHJldHVybiBDb25zdHJ1Y3Rvcjtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/createClass.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _getPrototypeOf; }\n/* harmony export */ });\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZ2V0UHJvdG90eXBlT2YuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZ2V0UHJvdG90eXBlT2YuanM/NjYyOCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2Yobykge1xuICBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2Yobykge1xuICAgIHJldHVybiBvLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2Yobyk7XG4gIH07XG4gIHJldHVybiBfZ2V0UHJvdG90eXBlT2Yobyk7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/inherits.js": +/*!*************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/inherits.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _inherits; }\n/* harmony export */ });\n/* harmony import */ var _setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setPrototypeOf.js */ \"./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) (0,_setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(subClass, superClass);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaW5oZXJpdHMuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBaUQ7QUFDbEM7QUFDZjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNILGtCQUFrQiw4REFBYztBQUNoQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaW5oZXJpdHMuanM/NmRmMyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc2V0UHJvdG90eXBlT2YgZnJvbSBcIi4vc2V0UHJvdG90eXBlT2YuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykge1xuICBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpO1xuICB9XG5cbiAgc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7XG4gICAgY29uc3RydWN0b3I6IHtcbiAgICAgIHZhbHVlOiBzdWJDbGFzcyxcbiAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfVxuICB9KTtcbiAgaWYgKHN1cGVyQ2xhc3MpIHNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/inherits.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js": +/*!*************************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _iterableToArrayLimit; }\n/* harmony export */ });\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaXRlcmFibGVUb0FycmF5TGltaXQuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFlO0FBQ2Y7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQSw0QkFBNEIsK0JBQStCO0FBQzNEOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTs7QUFFQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9pdGVyYWJsZVRvQXJyYXlMaW1pdC5qcz8yZjBlIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9pdGVyYWJsZVRvQXJyYXlMaW1pdChhcnIsIGkpIHtcbiAgdmFyIF9pID0gYXJyID09IG51bGwgPyBudWxsIDogdHlwZW9mIFN5bWJvbCAhPT0gXCJ1bmRlZmluZWRcIiAmJiBhcnJbU3ltYm9sLml0ZXJhdG9yXSB8fCBhcnJbXCJAQGl0ZXJhdG9yXCJdO1xuXG4gIGlmIChfaSA9PSBudWxsKSByZXR1cm47XG4gIHZhciBfYXJyID0gW107XG4gIHZhciBfbiA9IHRydWU7XG4gIHZhciBfZCA9IGZhbHNlO1xuXG4gIHZhciBfcywgX2U7XG5cbiAgdHJ5IHtcbiAgICBmb3IgKF9pID0gX2kuY2FsbChhcnIpOyAhKF9uID0gKF9zID0gX2kubmV4dCgpKS5kb25lKTsgX24gPSB0cnVlKSB7XG4gICAgICBfYXJyLnB1c2goX3MudmFsdWUpO1xuXG4gICAgICBpZiAoaSAmJiBfYXJyLmxlbmd0aCA9PT0gaSkgYnJlYWs7XG4gICAgfVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICBfZCA9IHRydWU7XG4gICAgX2UgPSBlcnI7XG4gIH0gZmluYWxseSB7XG4gICAgdHJ5IHtcbiAgICAgIGlmICghX24gJiYgX2lbXCJyZXR1cm5cIl0gIT0gbnVsbCkgX2lbXCJyZXR1cm5cIl0oKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgaWYgKF9kKSB0aHJvdyBfZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gX2Fycjtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js": +/*!********************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _nonIterableRest; }\n/* harmony export */ });\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vbm9uSXRlcmFibGVSZXN0LmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBZTtBQUNmO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL25vbkl0ZXJhYmxlUmVzdC5qcz8xODYyIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9ub25JdGVyYWJsZVJlc3QoKSB7XG4gIHRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIik7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js": +/*!******************************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js ***! + \******************************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _possibleConstructorReturn; }\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/typeof */ \"./node_modules/@babel/runtime/helpers/esm/typeof.js\");\n/* harmony import */ var _assertThisInitialized_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./assertThisInitialized.js */ \"./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js\");\n\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && ((0,_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return (0,_assertThisInitialized_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(self);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vcG9zc2libGVDb25zdHJ1Y3RvclJldHVybi5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBb0Q7QUFDVztBQUNoRDtBQUNmLGVBQWUseUVBQU87QUFDdEI7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQSxTQUFTLHFFQUFxQjtBQUM5QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vcG9zc2libGVDb25zdHJ1Y3RvclJldHVybi5qcz8zOWZkIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfdHlwZW9mIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL3R5cGVvZlwiO1xuaW1wb3J0IGFzc2VydFRoaXNJbml0aWFsaXplZCBmcm9tIFwiLi9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHNlbGYsIGNhbGwpIHtcbiAgaWYgKGNhbGwgJiYgKF90eXBlb2YoY2FsbCkgPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGNhbGwgPT09IFwiZnVuY3Rpb25cIikpIHtcbiAgICByZXR1cm4gY2FsbDtcbiAgfSBlbHNlIGlmIChjYWxsICE9PSB2b2lkIDApIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWRcIik7XG4gIH1cblxuICByZXR1cm4gYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _setPrototypeOf; }\n/* harmony export */ });\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vc2V0UHJvdG90eXBlT2YuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vc2V0UHJvdG90eXBlT2YuanM/MmM2OSJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkge1xuICBfc2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHtcbiAgICBvLl9fcHJvdG9fXyA9IHA7XG4gICAgcmV0dXJuIG87XG4gIH07XG5cbiAgcmV0dXJuIF9zZXRQcm90b3R5cGVPZihvLCBwKTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/slicedToArray.js": +/*!******************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js ***! + \******************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _slicedToArray; }\n/* harmony export */ });\n/* harmony import */ var _arrayWithHoles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayWithHoles.js */ \"./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\");\n/* harmony import */ var _iterableToArrayLimit_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iterableToArrayLimit.js */ \"./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\");\n/* harmony import */ var _unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./unsupportedIterableToArray.js */ \"./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\");\n/* harmony import */ var _nonIterableRest_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nonIterableRest.js */ \"./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\");\n\n\n\n\nfunction _slicedToArray(arr, i) {\n return (0,_arrayWithHoles_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(arr) || (0,_iterableToArrayLimit_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(arr, i) || (0,_unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(arr, i) || (0,_nonIterableRest_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])();\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vc2xpY2VkVG9BcnJheS5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFpRDtBQUNZO0FBQ1k7QUFDdEI7QUFDcEM7QUFDZixTQUFTLDhEQUFjLFNBQVMsb0VBQW9CLFlBQVksMEVBQTBCLFlBQVksK0RBQWU7QUFDckgiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3NsaWNlZFRvQXJyYXkuanM/Y2Y4OCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXJyYXlXaXRoSG9sZXMgZnJvbSBcIi4vYXJyYXlXaXRoSG9sZXMuanNcIjtcbmltcG9ydCBpdGVyYWJsZVRvQXJyYXlMaW1pdCBmcm9tIFwiLi9pdGVyYWJsZVRvQXJyYXlMaW1pdC5qc1wiO1xuaW1wb3J0IHVuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IGZyb20gXCIuL3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5LmpzXCI7XG5pbXBvcnQgbm9uSXRlcmFibGVSZXN0IGZyb20gXCIuL25vbkl0ZXJhYmxlUmVzdC5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX3NsaWNlZFRvQXJyYXkoYXJyLCBpKSB7XG4gIHJldHVybiBhcnJheVdpdGhIb2xlcyhhcnIpIHx8IGl0ZXJhYmxlVG9BcnJheUxpbWl0KGFyciwgaSkgfHwgdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkoYXJyLCBpKSB8fCBub25JdGVyYWJsZVJlc3QoKTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/typeof.js": +/*!***********************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/typeof.js ***! + \***********************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _typeof; }\n/* harmony export */ });\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdHlwZW9mLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBZTtBQUNmOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3R5cGVvZi5qcz9hZDE5Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7XG4gIFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjtcblxuICBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHtcbiAgICBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHtcbiAgICAgIHJldHVybiB0eXBlb2Ygb2JqO1xuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7XG4gICAgICByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIF90eXBlb2Yob2JqKTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/typeof.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js ***! + \*******************************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _unsupportedIterableToArray; }\n/* harmony export */ });\n/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ \"./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(o, minLen);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBcUQ7QUFDdEM7QUFDZjtBQUNBLG9DQUFvQyxnRUFBZ0I7QUFDcEQ7QUFDQTtBQUNBO0FBQ0Esc0ZBQXNGLGdFQUFnQjtBQUN0RyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkuanM/ODliMyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXJyYXlMaWtlVG9BcnJheSBmcm9tIFwiLi9hcnJheUxpa2VUb0FycmF5LmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkobywgbWluTGVuKSB7XG4gIGlmICghbykgcmV0dXJuO1xuICBpZiAodHlwZW9mIG8gPT09IFwic3RyaW5nXCIpIHJldHVybiBhcnJheUxpa2VUb0FycmF5KG8sIG1pbkxlbik7XG4gIHZhciBuID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pLnNsaWNlKDgsIC0xKTtcbiAgaWYgKG4gPT09IFwiT2JqZWN0XCIgJiYgby5jb25zdHJ1Y3RvcikgbiA9IG8uY29uc3RydWN0b3IubmFtZTtcbiAgaWYgKG4gPT09IFwiTWFwXCIgfHwgbiA9PT0gXCJTZXRcIikgcmV0dXJuIEFycmF5LmZyb20obyk7XG4gIGlmIChuID09PSBcIkFyZ3VtZW50c1wiIHx8IC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKSByZXR1cm4gYXJyYXlMaWtlVG9BcnJheShvLCBtaW5MZW4pO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\n"); + +/***/ }), + +/***/ "./node_modules/dom7/dom7.esm.js": +/*!***************************************!*\ + !*** ./node_modules/dom7/dom7.esm.js ***! + \***************************************/ +/***/ (function(__unused_webpack___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 */ \"$\": function() { return /* binding */ $; },\n/* harmony export */ \"add\": function() { return /* binding */ add; },\n/* harmony export */ \"addClass\": function() { return /* binding */ addClass; },\n/* harmony export */ \"animate\": function() { return /* binding */ animate; },\n/* harmony export */ \"animationEnd\": function() { return /* binding */ animationEnd; },\n/* harmony export */ \"append\": function() { return /* binding */ append; },\n/* harmony export */ \"appendTo\": function() { return /* binding */ appendTo; },\n/* harmony export */ \"attr\": function() { return /* binding */ attr; },\n/* harmony export */ \"blur\": function() { return /* binding */ blur; },\n/* harmony export */ \"change\": function() { return /* binding */ change; },\n/* harmony export */ \"children\": function() { return /* binding */ children; },\n/* harmony export */ \"click\": function() { return /* binding */ click; },\n/* harmony export */ \"closest\": function() { return /* binding */ closest; },\n/* harmony export */ \"css\": function() { return /* binding */ css; },\n/* harmony export */ \"data\": function() { return /* binding */ data; },\n/* harmony export */ \"dataset\": function() { return /* binding */ dataset; },\n/* harmony export */ \"detach\": function() { return /* binding */ detach; },\n/* harmony export */ \"each\": function() { return /* binding */ each; },\n/* harmony export */ \"empty\": function() { return /* binding */ empty; },\n/* harmony export */ \"eq\": function() { return /* binding */ eq; },\n/* harmony export */ \"filter\": function() { return /* binding */ filter; },\n/* harmony export */ \"find\": function() { return /* binding */ find; },\n/* harmony export */ \"focus\": function() { return /* binding */ focus; },\n/* harmony export */ \"focusin\": function() { return /* binding */ focusin; },\n/* harmony export */ \"focusout\": function() { return /* binding */ focusout; },\n/* harmony export */ \"hasClass\": function() { return /* binding */ hasClass; },\n/* harmony export */ \"height\": function() { return /* binding */ height; },\n/* harmony export */ \"hide\": function() { return /* binding */ hide; },\n/* harmony export */ \"html\": function() { return /* binding */ html; },\n/* harmony export */ \"index\": function() { return /* binding */ index; },\n/* harmony export */ \"insertAfter\": function() { return /* binding */ insertAfter; },\n/* harmony export */ \"insertBefore\": function() { return /* binding */ insertBefore; },\n/* harmony export */ \"is\": function() { return /* binding */ is; },\n/* harmony export */ \"keydown\": function() { return /* binding */ keydown; },\n/* harmony export */ \"keypress\": function() { return /* binding */ keypress; },\n/* harmony export */ \"keyup\": function() { return /* binding */ keyup; },\n/* harmony export */ \"mousedown\": function() { return /* binding */ mousedown; },\n/* harmony export */ \"mouseenter\": function() { return /* binding */ mouseenter; },\n/* harmony export */ \"mouseleave\": function() { return /* binding */ mouseleave; },\n/* harmony export */ \"mousemove\": function() { return /* binding */ mousemove; },\n/* harmony export */ \"mouseout\": function() { return /* binding */ mouseout; },\n/* harmony export */ \"mouseover\": function() { return /* binding */ mouseover; },\n/* harmony export */ \"mouseup\": function() { return /* binding */ mouseup; },\n/* harmony export */ \"next\": function() { return /* binding */ next; },\n/* harmony export */ \"nextAll\": function() { return /* binding */ nextAll; },\n/* harmony export */ \"off\": function() { return /* binding */ off; },\n/* harmony export */ \"offset\": function() { return /* binding */ offset; },\n/* harmony export */ \"on\": function() { return /* binding */ on; },\n/* harmony export */ \"once\": function() { return /* binding */ once; },\n/* harmony export */ \"outerHeight\": function() { return /* binding */ outerHeight; },\n/* harmony export */ \"outerWidth\": function() { return /* binding */ outerWidth; },\n/* harmony export */ \"parent\": function() { return /* binding */ parent; },\n/* harmony export */ \"parents\": function() { return /* binding */ parents; },\n/* harmony export */ \"prepend\": function() { return /* binding */ prepend; },\n/* harmony export */ \"prependTo\": function() { return /* binding */ prependTo; },\n/* harmony export */ \"prev\": function() { return /* binding */ prev; },\n/* harmony export */ \"prevAll\": function() { return /* binding */ prevAll; },\n/* harmony export */ \"prop\": function() { return /* binding */ prop; },\n/* harmony export */ \"remove\": function() { return /* binding */ remove; },\n/* harmony export */ \"removeAttr\": function() { return /* binding */ removeAttr; },\n/* harmony export */ \"removeClass\": function() { return /* binding */ removeClass; },\n/* harmony export */ \"removeData\": function() { return /* binding */ removeData; },\n/* harmony export */ \"resize\": function() { return /* binding */ resize; },\n/* harmony export */ \"scroll\": function() { return /* binding */ scroll; },\n/* harmony export */ \"scrollLeft\": function() { return /* binding */ scrollLeft; },\n/* harmony export */ \"scrollTo\": function() { return /* binding */ scrollTo; },\n/* harmony export */ \"scrollTop\": function() { return /* binding */ scrollTop; },\n/* harmony export */ \"show\": function() { return /* binding */ show; },\n/* harmony export */ \"siblings\": function() { return /* binding */ siblings; },\n/* harmony export */ \"stop\": function() { return /* binding */ stop; },\n/* harmony export */ \"styles\": function() { return /* binding */ styles; },\n/* harmony export */ \"submit\": function() { return /* binding */ submit; },\n/* harmony export */ \"text\": function() { return /* binding */ text; },\n/* harmony export */ \"toggleClass\": function() { return /* binding */ toggleClass; },\n/* harmony export */ \"touchend\": function() { return /* binding */ touchend; },\n/* harmony export */ \"touchmove\": function() { return /* binding */ touchmove; },\n/* harmony export */ \"touchstart\": function() { return /* binding */ touchstart; },\n/* harmony export */ \"transform\": function() { return /* binding */ transform; },\n/* harmony export */ \"transition\": function() { return /* binding */ transition; },\n/* harmony export */ \"transitionEnd\": function() { return /* binding */ transitionEnd; },\n/* harmony export */ \"trigger\": function() { return /* binding */ trigger; },\n/* harmony export */ \"val\": function() { return /* binding */ val; },\n/* harmony export */ \"value\": function() { return /* binding */ value; },\n/* harmony export */ \"width\": function() { return /* binding */ width; }\n/* harmony export */ });\n/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ \"./node_modules/ssr-window/ssr-window.esm.js\");\n/**\n * Dom7 4.0.1\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: October 27, 2021\n */\n\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n const proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get() {\n return proto;\n },\n\n set(value) {\n proto.__proto__ = value;\n }\n\n });\n}\n\nclass Dom7 extends Array {\n constructor(items) {\n super(...(items || []));\n makeReactive(this);\n }\n\n}\n\nfunction arrayFlat(arr = []) {\n const res = [];\n arr.forEach(el => {\n if (Array.isArray(el)) {\n res.push(...arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n const uniqueArray = [];\n\n for (let i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, (match, group) => group.toUpperCase());\n}\n\n// eslint-disable-next-line\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n const a = [];\n const res = context.querySelectorAll(selector);\n\n for (let i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();\n const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)();\n let arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n const html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf('<li') === 0) toCreate = 'ul';\n if (html.indexOf('<tr') === 0) toCreate = 'tbody';\n if (html.indexOf('<td') === 0 || html.indexOf('<th') === 0) toCreate = 'tr';\n if (html.indexOf('<tbody') === 0) toCreate = 'table';\n if (html.indexOf('<option') === 0) toCreate = 'select';\n const tempParent = document.createElement(toCreate);\n tempParent.innerHTML = html;\n\n for (let i = 0; i < tempParent.childNodes.length; i += 1) {\n arr.push(tempParent.childNodes[i]);\n }\n } else {\n arr = qsa(selector.trim(), context || document);\n } // arr = qsa(selector, document);\n\n } else if (selector.nodeType || selector === window || selector === document) {\n arr.push(selector);\n } else if (Array.isArray(selector)) {\n if (selector instanceof Dom7) return selector;\n arr = selector;\n }\n\n return new Dom7(arrayUnique(arr));\n}\n\n$.fn = Dom7.prototype;\n\n// eslint-disable-next-line\n\nfunction addClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n el.classList.add(...classNames);\n });\n return this;\n}\n\nfunction removeClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n el.classList.remove(...classNames);\n });\n return this;\n}\n\nfunction toggleClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n classNames.forEach(className => {\n el.classList.toggle(className);\n });\n });\n}\n\nfunction hasClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n return arrayFilter(this, el => {\n return classNames.filter(className => el.classList.contains(className)).length > 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (const attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (const propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n let el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n const dataKey = el.getAttribute(`data-${key}`);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n const el = this[0];\n if (!el) return undefined;\n const dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (const dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (let i = 0; i < el.attributes.length; i += 1) {\n const attr = el.attributes[i];\n\n if (attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;\n }\n }\n }\n\n for (const key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n const el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n const values = [];\n\n for (let i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {\n for (let j = 0; j < el.options.length; j += 1) {\n el.options[j].selected = value.indexOf(el.options[j].value) >= 0;\n }\n } else {\n el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? `${duration}ms` : duration;\n }\n\n return this;\n}\n\nfunction on(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n const target = e.target;\n if (!target) return;\n const eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n const parents = $(target).parents(); // eslint-disable-line\n\n for (let k = 0; k < parents.length; k += 1) {\n if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n const eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n const events = eventType.split(' ');\n let j;\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];\n el.dom7LiveListeners[event].push({\n listener,\n proxyListener: handleLiveEvent\n });\n el.addEventListener(event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n const events = eventType.split(' ');\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let handlers;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (let k = handlers.length - 1; k >= 0; k -= 1) {\n const handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once(...args) {\n const dom = this;\n let [eventName, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventName, listener, capture] = args;\n targetSelector = undefined;\n }\n\n function onceHandler(...eventArgs) {\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger(...args) {\n const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();\n const events = args[0].split(' ');\n const eventData = args[1];\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n\n if (window.CustomEvent) {\n const evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();\n const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)();\n const el = this[0];\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();\n let i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (const prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach((el, index) => {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n const result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();\n const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)();\n const el = this[0];\n let compareWith;\n let i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n let child = this[0];\n let i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n const length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n const returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append(...els) {\n let newChild;\n const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)();\n\n for (let k = 0; k < els.length; k += 1) {\n newChild = els[k];\n\n for (let i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (let j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)();\n let i;\n let j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n const before = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (let j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n const after = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (let j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n const nextEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(next).is(selector)) nextEls.push(next);\n } else nextEls.push(next);\n\n el = next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n const el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n const prevEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(prev).is(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n\n el = prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n let parent = this[i].parentNode; // eslint-disable-line\n\n while (parent) {\n if (selector) {\n if ($(parent).is(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n\n parent = parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n let closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n const foundElements = [];\n\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n const children = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].children;\n\n for (let j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add(...els) {\n const dom = this;\n let i;\n let j;\n\n for (i = 0; i < els.length; i += 1) {\n const toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.nodeType === 1) {\n for (let j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\n// eslint-disable-next-line\n\nfunction scrollTo(...args) {\n const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();\n let [left, top, duration, easing, callback] = args;\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n [left, top, duration, callback, easing] = args;\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n const el = this;\n let currentTop;\n let currentLeft;\n let maxTop;\n let maxLeft;\n let newTop;\n let newLeft;\n let scrollTop; // eslint-disable-line\n\n let scrollLeft; // eslint-disable-line\n\n let animateTop = top > 0 || top === 0;\n let animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n let startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time = new Date().getTime()) {\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n let done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop(...args) {\n let [top, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [top, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft(...args) {\n let [left, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [left, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\n// eslint-disable-next-line\n\nfunction animate(initialProps, initialParams) {\n const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();\n const els = this;\n const a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n\n easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n\n stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n\n done(complete) {\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n const que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n\n animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n const elements = []; // Define & Cache Initials & Units\n\n a.elements.each((el, index) => {\n let initialFullValue;\n let initialValue;\n let unit;\n let finalValue;\n let finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(prop => {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue,\n initialValue,\n unit,\n finalValue,\n finalFullValue,\n currentValue: initialValue\n };\n });\n });\n let startTime = null;\n let time;\n let elementsDone = 0;\n let propsDone = 0;\n let done;\n let began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n let progress;\n let easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(element => {\n const el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(prop => {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n const {\n initialValue,\n finalValue,\n unit\n } = el[prop];\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n const currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n let animateInstance;\n\n for (let i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n const els = this;\n\n for (let i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nconst noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler(...args) {\n if (typeof args[0] === 'undefined') {\n for (let i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on(name, ...args);\n }\n\n return eventHandler;\n}\n\nconst click = shortcut('click');\nconst blur = shortcut('blur');\nconst focus = shortcut('focus');\nconst focusin = shortcut('focusin');\nconst focusout = shortcut('focusout');\nconst keyup = shortcut('keyup');\nconst keydown = shortcut('keydown');\nconst keypress = shortcut('keypress');\nconst submit = shortcut('submit');\nconst change = shortcut('change');\nconst mousedown = shortcut('mousedown');\nconst mousemove = shortcut('mousemove');\nconst mouseup = shortcut('mouseup');\nconst mouseenter = shortcut('mouseenter');\nconst mouseleave = shortcut('mouseleave');\nconst mouseout = shortcut('mouseout');\nconst mouseover = shortcut('mouseover');\nconst touchstart = shortcut('touchstart');\nconst touchend = shortcut('touchend');\nconst touchmove = shortcut('touchmove');\nconst resize = shortcut('resize');\nconst scroll = shortcut('scroll');\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ($);\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvZG9tNy9kb203LmVzbS5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNvRDs7QUFFcEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7O0FBRUEsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGtCQUFrQixnQkFBZ0I7QUFDbEM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEsa0JBQWtCLGdCQUFnQjtBQUNsQztBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxpQkFBaUIscURBQVM7QUFDMUIsbUJBQW1CLHVEQUFXO0FBQzlCOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsc0JBQXNCLGtDQUFrQztBQUN4RDtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0EsTUFBTTs7QUFFTixJQUFJO0FBQ0o7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBO0FB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QUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsR0FBRztBQUNILEVBQUU7OztBQUdGO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBLGlCQUFpQixxREFBUztBQUMxQjtBQUNBO0FBQ0EsMkJBQTJCO0FBQzNCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwyQkFBMkI7O0FBRTNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCOztBQUUxQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFdBQVc7QUFDWCxTQUFTO0FBQ1QsMEJBQTBCOztBQUUxQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUEsa0JBQWtCLHVCQUF1QjtBQUN6QztBQUNBO0FBQ0EsTUFBTTtBQUNOOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBLGtCQUFrQixnQkFBZ0I7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsaUJBQWlCO0FBQ3ZDO0FBQ0EsK0NBQStDO0FBQy9DO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLCtEQUFlLENBQUMsRUFBQztBQUNvdEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2RvbTcvZG9tNy5lc20uanM/MjgwMCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERvbTcgNC4wLjFcbiAqIE1pbmltYWxpc3RpYyBKYXZhU2NyaXB0IGxpYnJhcnkgZm9yIERPTSBtYW5pcHVsYXRpb24sIHdpdGggYSBqUXVlcnktY29tcGF0aWJsZSBBUElcbiAqIGh0dHBzOi8vZnJhbWV3b3JrNy5pby9kb2NzL2RvbTcuaHRtbFxuICpcbiAqIENvcHlyaWdodCAyMDIxLCBWbGFkaW1pciBLaGFybGFtcGlkaVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIE1JVFxuICpcbiAqIFJlbGVhc2VkIG9uOiBPY3RvYmVyIDI3LCAyMDIxXG4gKi9cbmltcG9ydCB7IGdldFdpbmRvdywgZ2V0RG9jdW1lbnQgfSBmcm9tICdzc3Itd2luZG93JztcblxuLyogZXNsaW50LWRpc2FibGUgbm8tcHJvdG8gKi9cbmZ1bmN0aW9uIG1ha2VSZWFjdGl2ZShvYmopIHtcbiAgY29uc3QgcHJvdG8gPSBvYmouX19wcm90b19fO1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAnX19wcm90b19fJywge1xuICAgIGdldCgpIHtcbiAgICAgIHJldHVybiBwcm90bztcbiAgICB9LFxuXG4gICAgc2V0KHZhbHVlKSB7XG4gICAgICBwcm90by5fX3Byb3RvX18gPSB2YWx1ZTtcbiAgICB9XG5cbiAgfSk7XG59XG5cbmNsYXNzIERvbTcgZXh0ZW5kcyBBcnJheSB7XG4gIGNvbnN0cnVjdG9yKGl0ZW1zKSB7XG4gICAgc3VwZXIoLi4uKGl0ZW1zIHx8IFtdKSk7XG4gICAgbWFrZVJlYWN0aXZlKHRoaXMpO1xuICB9XG5cbn1cblxuZnVuY3Rpb24gYXJyYXlGbGF0KGFyciA9IFtdKSB7XG4gIGNvbnN0IHJlcyA9IFtdO1xuICBhcnIuZm9yRWFjaChlbCA9PiB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZWwpKSB7XG4gICAgICByZXMucHVzaCguLi5hcnJheUZsYXQoZWwpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzLnB1c2goZWwpO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiByZXM7XG59XG5mdW5jdGlvbiBhcnJheUZpbHRlcihhcnIsIGNhbGxiYWNrKSB7XG4gIHJldHVybiBBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwoYXJyLCBjYWxsYmFjayk7XG59XG5mdW5jdGlvbiBhcnJheVVuaXF1ZShhcnIpIHtcbiAgY29uc3QgdW5pcXVlQXJyYXkgPSBbXTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkgKz0gMSkge1xuICAgIGlmICh1bmlxdWVBcnJheS5pbmRleE9mKGFycltpXSkgPT09IC0xKSB1bmlxdWVBcnJheS5wdXNoKGFycltpXSk7XG4gIH1cblxuICByZXR1cm4gdW5pcXVlQXJyYXk7XG59XG5mdW5jdGlvbiB0b0NhbWVsQ2FzZShzdHJpbmcpIHtcbiAgcmV0dXJuIHN0cmluZy50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoLy0oLikvZywgKG1hdGNoLCBncm91cCkgPT4gZ3JvdXAudG9VcHBlckNhc2UoKSk7XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuXG5mdW5jdGlvbiBxc2Eoc2VsZWN0b3IsIGNvbnRleHQpIHtcbiAgaWYgKHR5cGVvZiBzZWxlY3RvciAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gW3NlbGVjdG9yXTtcbiAgfVxuXG4gIGNvbnN0IGEgPSBbXTtcbiAgY29uc3QgcmVzID0gY29udGV4dC5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IHJlcy5sZW5ndGg7IGkgKz0gMSkge1xuICAgIGEucHVzaChyZXNbaV0pO1xuICB9XG5cbiAgcmV0dXJuIGE7XG59XG5cbmZ1bmN0aW9uICQoc2VsZWN0b3IsIGNvbnRleHQpIHtcbiAgY29uc3Qgd2luZG93ID0gZ2V0V2luZG93KCk7XG4gIGNvbnN0IGRvY3VtZW50ID0gZ2V0RG9jdW1lbnQoKTtcbiAgbGV0IGFyciA9IFtdO1xuXG4gIGlmICghY29udGV4dCAmJiBzZWxlY3RvciBpbnN0YW5jZW9mIERvbTcpIHtcbiAgICByZXR1cm4gc2VsZWN0b3I7XG4gIH1cblxuICBpZiAoIXNlbGVjdG9yKSB7XG4gICAgcmV0dXJuIG5ldyBEb203KGFycik7XG4gIH1cblxuICBpZiAodHlwZW9mIHNlbGVjdG9yID09PSAnc3RyaW5nJykge1xuICAgIGNvbnN0IGh0bWwgPSBzZWxlY3Rvci50cmltKCk7XG5cbiAgICBpZiAoaHRtbC5pbmRleE9mKCc8JykgPj0gMCAmJiBodG1sLmluZGV4T2YoJz4nKSA+PSAwKSB7XG4gICAgICBsZXQgdG9DcmVhdGUgPSAnZGl2JztcbiAgICAgIGlmIChodG1sLmluZGV4T2YoJzxsaScpID09PSAwKSB0b0NyZWF0ZSA9ICd1bCc7XG4gICAgICBpZiAoaHRtbC5pbmRleE9mKCc8dHInKSA9PT0gMCkgdG9DcmVhdGUgPSAndGJvZHknO1xuICAgICAgaWYgKGh0bWwuaW5kZXhPZignPHRkJykgPT09IDAgfHwgaHRtbC5pbmRleE9mKCc8dGgnKSA9PT0gMCkgdG9DcmVhdGUgPSAndHInO1xuICAgICAgaWYgKGh0bWwuaW5kZXhPZignPHRib2R5JykgPT09IDApIHRvQ3JlYXRlID0gJ3RhYmxlJztcbiAgICAgIGlmIChodG1sLmluZGV4T2YoJzxvcHRpb24nKSA9PT0gMCkgdG9DcmVhdGUgPSAnc2VsZWN0JztcbiAgICAgIGNvbnN0IHRlbXBQYXJlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRvQ3JlYXRlKTtcbiAgICAgIHRlbXBQYXJlbnQuaW5uZXJIVE1MID0gaHRtbDtcblxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZW1wUGFyZW50LmNoaWxkTm9kZXMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgYXJyLnB1c2godGVtcFBhcmVudC5jaGlsZE5vZGVzW2ldKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgYXJyID0gcXNhKHNlbGVjdG9yLnRyaW0oKSwgY29udGV4dCB8fCBkb2N1bWVudCk7XG4gICAgfSAvLyBhcnIgPSBxc2Eoc2VsZWN0b3IsIGRvY3VtZW50KTtcblxuICB9IGVsc2UgaWYgKHNlbGVjdG9yLm5vZGVUeXBlIHx8IHNlbGVjdG9yID09PSB3aW5kb3cgfHwgc2VsZWN0b3IgPT09IGRvY3VtZW50KSB7XG4gICAgYXJyLnB1c2goc2VsZWN0b3IpO1xuICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoc2VsZWN0b3IpKSB7XG4gICAgaWYgKHNlbGVjdG9yIGluc3RhbmNlb2YgRG9tNykgcmV0dXJuIHNlbGVjdG9yO1xuICAgIGFyciA9IHNlbGVjdG9yO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBEb203KGFycmF5VW5pcXVlKGFycikpO1xufVxuXG4kLmZuID0gRG9tNy5wcm90b3R5cGU7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuXG5mdW5jdGlvbiBhZGRDbGFzcyguLi5jbGFzc2VzKSB7XG4gIGNvbnN0IGNsYXNzTmFtZXMgPSBhcnJheUZsYXQoY2xhc3Nlcy5tYXAoYyA9PiBjLnNwbGl0KCcgJykpKTtcbiAgdGhpcy5mb3JFYWNoKGVsID0+IHtcbiAgICBlbC5jbGFzc0xpc3QuYWRkKC4uLmNsYXNzTmFtZXMpO1xuICB9KTtcbiAgcmV0dXJuIHRoaXM7XG59XG5cbmZ1bmN0aW9uIHJlbW92ZUNsYXNzKC4uLmNsYXNzZXMpIHtcbiAgY29uc3QgY2xhc3NOYW1lcyA9IGFycmF5RmxhdChjbGFzc2VzLm1hcChjID0+IGMuc3BsaXQoJyAnKSkpO1xuICB0aGlzLmZvckVhY2goZWwgPT4ge1xuICAgIGVsLmNsYXNzTGlzdC5yZW1vdmUoLi4uY2xhc3NOYW1lcyk7XG4gIH0pO1xuICByZXR1cm4gdGhpcztcbn1cblxuZnVuY3Rpb24gdG9nZ2xlQ2xhc3MoLi4uY2xhc3Nlcykge1xuICBjb25zdCBjbGFzc05hbWVzID0gYXJyYXlGbGF0KGNsYXNzZXMubWFwKGMgPT4gYy5zcGxpdCgnICcpKSk7XG4gIHRoaXMuZm9yRWFjaChlbCA9PiB7XG4gICAgY2xhc3NOYW1lcy5mb3JFYWNoKGNsYXNzTmFtZSA9PiB7XG4gICAgICBlbC5jbGFzc0xpc3QudG9nZ2xlKGNsYXNzTmFtZSk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBoYXNDbGFzcyguLi5jbGFzc2VzKSB7XG4gIGNvbnN0IGNsYXNzTmFtZXMgPSBhcnJheUZsYXQoY2xhc3Nlcy5tYXAoYyA9PiBjLnNwbGl0KCcgJykpKTtcbiAgcmV0dXJuIGFycmF5RmlsdGVyKHRoaXMsIGVsID0+IHtcbiAgICByZXR1cm4gY2xhc3NOYW1lcy5maWx0ZXIoY2xhc3NOYW1lID0+IGVsLmNsYXNzTGlzdC5jb250YWlucyhjbGFzc05hbWUpKS5sZW5ndGggPiAwO1xuICB9KS5sZW5ndGggPiAwO1xufVxuXG5mdW5jdGlvbiBhdHRyKGF0dHJzLCB2YWx1ZSkge1xuICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSAmJiB0eXBlb2YgYXR0cnMgPT09ICdzdHJpbmcnKSB7XG4gICAgLy8gR2V0IGF0dHJcbiAgICBpZiAodGhpc1swXSkgcmV0dXJuIHRoaXNbMF0uZ2V0QXR0cmlidXRlKGF0dHJzKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9IC8vIFNldCBhdHRyc1xuXG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDIpIHtcbiAgICAgIC8vIFN0cmluZ1xuICAgICAgdGhpc1tpXS5zZXRBdHRyaWJ1dGUoYXR0cnMsIHZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gT2JqZWN0XG4gICAgICBmb3IgKGNvbnN0IGF0dHJOYW1lIGluIGF0dHJzKSB7XG4gICAgICAgIHRoaXNbaV1bYXR0ck5hbWVdID0gYXR0cnNbYXR0ck5hbWVdO1xuICAgICAgICB0aGlzW2ldLnNldEF0dHJpYnV0ZShhdHRyTmFtZSwgYXR0cnNbYXR0ck5hbWVdKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGhpcztcbn1cblxuZnVuY3Rpb24gcmVtb3ZlQXR0cihhdHRyKSB7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7IGkgKz0gMSkge1xuICAgIHRoaXNbaV0ucmVtb3ZlQXR0cmlidXRlKGF0dHIpO1xuICB9XG5cbiAgcmV0dXJuIHRoaXM7XG59XG5cbmZ1bmN0aW9uIHByb3AocHJvcHMsIHZhbHVlKSB7XG4gIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxICYmIHR5cGVvZiBwcm9wcyA9PT0gJ3N0cmluZycpIHtcbiAgICAvLyBHZXQgcHJvcFxuICAgIGlmICh0aGlzWzBdKSByZXR1cm4gdGhpc1swXVtwcm9wc107XG4gIH0gZWxzZSB7XG4gICAgLy8gU2V0IHByb3BzXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMikge1xuICAgICAgICAvLyBTdHJpbmdcbiAgICAgICAgdGhpc1tpXVtwcm9wc10gPSB2YWx1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIE9iamVjdFxuICAgICAgICBmb3IgKGNvbnN0IHByb3BOYW1lIGluIHByb3BzKSB7XG4gICAgICAgICAgdGhpc1tpXVtwcm9wTmFtZV0gPSBwcm9wc1twcm9wTmFtZV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHJldHVybiB0aGlzO1xufVxuXG5mdW5jdGlvbiBkYXRhKGtleSwgdmFsdWUpIHtcbiAgbGV0IGVsO1xuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgZWwgPSB0aGlzWzBdO1xuICAgIGlmICghZWwpIHJldHVybiB1bmRlZmluZWQ7IC8vIEdldCB2YWx1ZVxuXG4gICAgaWYgKGVsLmRvbTdFbGVtZW50RGF0YVN0b3JhZ2UgJiYga2V5IGluIGVsLmRvbTdFbGVtZW50RGF0YVN0b3JhZ2UpIHtcbiAgICAgIHJldHVybiBlbC5kb203RWxlbWVudERhdGFTdG9yYWdlW2tleV07XG4gICAgfVxuXG4gICAgY29uc3QgZGF0YUtleSA9IGVsLmdldEF0dHJpYnV0ZShgZGF0YS0ke2tleX1gKTtcblxuICAgIGlmIChkYXRhS2V5KSB7XG4gICAgICByZXR1cm4gZGF0YUtleTtcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9IC8vIFNldCB2YWx1ZVxuXG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgZWwgPSB0aGlzW2ldO1xuICAgIGlmICghZWwuZG9tN0VsZW1lbnREYXRhU3RvcmFnZSkgZWwuZG9tN0VsZW1lbnREYXRhU3RvcmFnZSA9IHt9O1xuICAgIGVsLmRvbTdFbGVtZW50RGF0YVN0b3JhZ2Vba2V5XSA9IHZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIHRoaXM7XG59XG5cbmZ1bmN0aW9uIHJlbW92ZURhdGEoa2V5KSB7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7IGkgKz0gMSkge1xuICAgIGNvbnN0IGVsID0gdGhpc1tpXTtcblxuICAgIGlmIChlbC5kb203RWxlbWVudERhdGFTdG9yYWdlICYmIGVsLmRvbTdFbGVtZW50RGF0YVN0b3JhZ2Vba2V5XSkge1xuICAgICAgZWwuZG9tN0VsZW1lbnREYXRhU3RvcmFnZVtrZXldID0gbnVsbDtcbiAgICAgIGRlbGV0ZSBlbC5kb203RWxlbWVudERhdGFTdG9yYWdlW2tleV07XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGRhdGFzZXQoKSB7XG4gIGNvbnN0IGVsID0gdGhpc1swXTtcbiAgaWYgKCFlbCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgY29uc3QgZGF0YXNldCA9IHt9OyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG5cbiAgaWYgKGVsLmRhdGFzZXQpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFLZXkgaW4gZWwuZGF0YXNldCkge1xuICAgICAgZGF0YXNldFtkYXRhS2V5XSA9IGVsLmRhdGFzZXRbZGF0YUtleV07XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZWwuYXR0cmlidXRlcy5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgY29uc3QgYXR0ciA9IGVsLmF0dHJpYnV0ZXNbaV07XG5cbiAgICAgIGlmIChhdHRyLm5hbWUuaW5kZXhPZignZGF0YS0nKSA+PSAwKSB7XG4gICAgICAgIGRhdGFzZXRbdG9DYW1lbENhc2UoYXR0ci5uYW1lLnNwbGl0KCdkYXRhLScpWzFdKV0gPSBhdHRyLnZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZvciAoY29uc3Qga2V5IGluIGRhdGFzZXQpIHtcbiAgICBpZiAoZGF0YXNldFtrZXldID09PSAnZmFsc2UnKSBkYXRhc2V0W2tleV0gPSBmYWxzZTtlbHNlIGlmIChkYXRhc2V0W2tleV0gPT09ICd0cnVlJykgZGF0YXNldFtrZXldID0gdHJ1ZTtlbHNlIGlmIChwYXJzZUZsb2F0KGRhdGFzZXRba2V5XSkgPT09IGRhdGFzZXRba2V5XSAqIDEpIGRhdGFzZXRba2V5XSAqPSAxO1xuICB9XG5cbiAgcmV0dXJuIGRhdGFzZXQ7XG59XG5cbmZ1bmN0aW9uIHZhbCh2YWx1ZSkge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJykge1xuICAgIC8vIGdldCB2YWx1ZVxuICAgIGNvbnN0IGVsID0gdGhpc1swXTtcbiAgICBpZiAoIWVsKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgaWYgKGVsLm11bHRpcGxlICYmIGVsLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdzZWxlY3QnKSB7XG4gICAgICBjb25zdCB2YWx1ZXMgPSBbXTtcblxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlbC5zZWxlY3RlZE9wdGlvbnMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgdmFsdWVzLnB1c2goZWwuc2VsZWN0ZWRPcHRpb25zW2ldLnZhbHVlKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHZhbHVlcztcbiAgICB9XG5cbiAgICByZXR1cm4gZWwudmFsdWU7XG4gIH0gLy8gc2V0IHZhbHVlXG5cblxuICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICBjb25zdCBlbCA9IHRoaXNbaV07XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgZWwubXVsdGlwbGUgJiYgZWwubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ3NlbGVjdCcpIHtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgZWwub3B0aW9ucy5sZW5ndGg7IGogKz0gMSkge1xuICAgICAgICBlbC5vcHRpb25zW2pdLnNlbGVjdGVkID0gdmFsdWUuaW5kZXhPZihlbC5vcHRpb25zW2pdLnZhbHVlKSA+PSAwO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBlbC52YWx1ZSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0aGlzO1xufVxuXG5mdW5jdGlvbiB2YWx1ZSh2YWx1ZSkge1xuICByZXR1cm4gdGhpcy52YWwodmFsdWUpO1xufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm0odHJhbnNmb3JtKSB7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7IGkgKz0gMSkge1xuICAgIHRoaXNbaV0uc3R5bGUudHJhbnNmb3JtID0gdHJhbnNmb3JtO1xuICB9XG5cbiAgcmV0dXJuIHRoaXM7XG59XG5cbmZ1bmN0aW9uIHRyYW5zaXRpb24oZHVyYXRpb24pIHtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgdGhpc1tpXS5zdHlsZS50cmFuc2l0aW9uRHVyYXRpb24gPSB0eXBlb2YgZHVyYXRpb24gIT09ICdzdHJpbmcnID8gYCR7ZHVyYXRpb259bXNgIDogZHVyYXRpb247XG4gIH1cblxuICByZXR1cm4gdGhpcztcbn1cblxuZnVuY3Rpb24gb24oLi4uYXJncykge1xuICBsZXQgW2V2ZW50VHlwZSwgdGFyZ2V0U2VsZWN0b3IsIGxpc3RlbmVyLCBjYXB0dXJlXSA9IGFyZ3M7XG5cbiAgaWYgKHR5cGVvZiBhcmdzWzFdID09PSAnZnVuY3Rpb24nKSB7XG4gICAgW2V2ZW50VHlwZSwgbGlzdGVuZXIsIGNhcHR1cmVdID0gYXJncztcbiAgICB0YXJnZXRTZWxlY3RvciA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlmICghY2FwdHVyZSkgY2FwdHVyZSA9IGZhbHNlO1xuXG4gIGZ1bmN0aW9uIGhhbmRsZUxpdmVFdmVudChlKSB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZS50YXJnZXQ7XG4gICAgaWYgKCF0YXJnZXQpIHJldHVybjtcbiAgICBjb25zdCBldmVudERhdGEgPSBlLnRhcmdldC5kb203RXZlbnREYXRhIHx8IFtdO1xuXG4gICAgaWYgKGV2ZW50RGF0YS5pbmRleE9mKGUpIDwgMCkge1xuICAgICAgZXZlbnREYXRhLnVuc2hpZnQoZSk7XG4gICAgfVxuXG4gICAgaWYgKCQodGFyZ2V0KS5pcyh0YXJnZXRTZWxlY3RvcikpIGxpc3RlbmVyLmFwcGx5KHRhcmdldCwgZXZlbnREYXRhKTtlbHNlIHtcbiAgICAgIGNvbnN0IHBhcmVudHMgPSAkKHRhcmdldCkucGFyZW50cygpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG5cbiAgICAgIGZvciAobGV0IGsgPSAwOyBrIDwgcGFyZW50cy5sZW5ndGg7IGsgKz0gMSkge1xuICAgICAgICBpZiAoJChwYXJlbnRzW2tdKS5pcyh0YXJnZXRTZWxlY3RvcikpIGxpc3RlbmVyLmFwcGx5KHBhcmVudHNba10sIGV2ZW50RGF0YSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gaGFuZGxlRXZlbnQoZSkge1xuICAgIGNvbnN0IGV2ZW50RGF0YSA9IGUgJiYgZS50YXJnZXQgPyBlLnRhcmdldC5kb203RXZlbnREYXRhIHx8IFtdIDogW107XG5cbiAgICBpZiAoZXZlbnREYXRhLmluZGV4T2YoZSkgPCAwKSB7XG4gICAgICBldmVudERhdGEudW5zaGlmdChlKTtcbiAgICB9XG5cbiAgICBsaXN0ZW5lci5hcHBseSh0aGlzLCBldmVudERhdGEpO1xuICB9XG5cbiAgY29uc3QgZXZlbnRzID0gZXZlbnRUeXBlLnNwbGl0KCcgJyk7XG4gIGxldCBqO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7IGkgKz0gMSkge1xuICAgIGNvbnN0IGVsID0gdGhpc1tpXTtcblxuICAgIGlmICghdGFyZ2V0U2VsZWN0b3IpIHtcbiAgICAgIGZvciAoaiA9IDA7IGogPCBldmVudHMubGVuZ3RoOyBqICs9IDEpIHtcbiAgICAgICAgY29uc3QgZXZlbnQgPSBldmVudHNbal07XG4gICAgICAgIGlmICghZWwuZG9tN0xpc3RlbmVycykgZWwuZG9tN0xpc3RlbmVycyA9IHt9O1xuICAgICAgICBpZiAoIWVsLmRvbTdMaXN0ZW5lcnNbZXZlbnRdKSBlbC5kb203TGlzdGVuZXJzW2V2ZW50XSA9IFtdO1xuICAgICAgICBlbC5kb203TGlzdGVuZXJzW2V2ZW50XS5wdXNoKHtcbiAgICAgICAgICBsaXN0ZW5lcixcbiAgICAgICAgICBwcm94eUxpc3RlbmVyOiBoYW5kbGVFdmVudFxuICAgICAgICB9KTtcbiAgICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcihldmVudCwgaGFuZGxlRXZlbnQsIGNhcHR1cmUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBMaXZlIGV2ZW50c1xuICAgICAgZm9yIChqID0gMDsgaiA8IGV2ZW50cy5sZW5ndGg7IGogKz0gMSkge1xuICAgICAgICBjb25zdCBldmVudCA9IGV2ZW50c1tqXTtcbiAgICAgICAgaWYgKCFlbC5kb203TGl2ZUxpc3RlbmVycykgZWwuZG9tN0xpdmVMaXN0ZW5lcnMgPSB7fTtcbiAgICAgICAgaWYgKCFlbC5kb203TGl2ZUxpc3RlbmVyc1tldmVudF0pIGVsLmRvbTdMaXZlTGlzdGVuZXJzW2V2ZW50XSA9IFtdO1xuICAgICAgICBlbC5kb203TGl2ZUxpc3RlbmVyc1tldmVudF0ucHVzaCh7XG4gICAgICAgICAgbGlzdGVuZXIsXG4gICAgICAgICAgcHJveHlMaXN0ZW5lcjogaGFuZGxlTGl2ZUV2ZW50XG4gICAgICAgIH0pO1xuICAgICAgICBlbC5hZGRFdmVudExpc3RlbmVyKGV2ZW50LCBoYW5kbGVMaXZlRXZlbnQsIGNhcHR1cmUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0aGlzO1xufVxuXG5mdW5jdGlvbiBvZmYoLi4uYXJncykge1xuICBsZXQgW2V2ZW50VHlwZSwgdGFyZ2V0U2VsZWN0b3IsIGxpc3RlbmVyLCBjYXB0dXJlXSA9IGFyZ3M7XG5cbiAgaWYgKHR5cGVvZiBhcmdzWzFdID09PSAnZnVuY3Rpb24nKSB7XG4gICAgW2V2ZW50VHlwZSwgbGlzdGVuZXIsIGNhcHR1cmVdID0gYXJncztcbiAgICB0YXJnZXRTZWxlY3RvciA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlmICghY2FwdHVyZSkgY2FwdHVyZSA9IGZhbHNlO1xuICBjb25zdCBldmVudHMgPSBldmVudFR5cGUuc3BsaXQoJyAnKTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGV2ZW50cy5sZW5ndGg7IGkgKz0gMSkge1xuICAgIGNvbnN0IGV2ZW50ID0gZXZlbnRzW2ldO1xuXG4gICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLmxlbmd0aDsgaiArPSAxKSB7XG4gICAgICBjb25zdCBlbCA9IHRoaXNbal07XG4gICAgICBsZXQgaGFuZGxlcnM7XG5cbiAgICAgIGlmICghdGFyZ2V0U2VsZWN0b3IgJiYgZWwuZG9tN0xpc3RlbmVycykge1xuICAgICAgICBoYW5kbGVycyA9IGVsLmRvbTdMaXN0ZW5lcnNbZXZlbnRdO1xuICAgICAgfSBlbHNlIGlmICh0YXJnZXRTZWxlY3RvciAmJiBlbC5kb203TGl2ZUxpc3RlbmVycykge1xuICAgICAgICBoYW5kbGVycyA9IGVsLmRvbTdMaXZlTGlzdGVuZXJzW2V2ZW50XTtcbiAgICAgIH1cblxuICAgICAgaWYgKGhhbmRsZXJzICYmIGhhbmRsZXJzLmxlbmd0aCkge1xuICAgICAgICBmb3IgKGxldCBrID0gaGFuZGxlcnMubGVuZ3RoIC0gMTsgayA+PSAwOyBrIC09IDEpIHtcbiAgICAgICAgICBjb25zdCBoYW5kbGVyID0gaGFuZGxlcnNba107XG5cbiAgICAgICAgICBpZiAobGlzdGVuZXIgJiYgaGFuZGxlci5saXN0ZW5lciA9PT0gbGlzdGVuZXIpIHtcbiAgICAgICAgICAgIGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnQsIGhhbmRsZXIucHJveHlMaXN0ZW5lciwgY2FwdHVyZSk7XG4gICAgICAgICAgICBoYW5kbGVycy5zcGxpY2UoaywgMSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChsaXN0ZW5lciAmJiBoYW5kbGVyLmxpc3RlbmVyICYmIGhhbmRsZXIubGlzdGVuZXIuZG9tN3Byb3h5ICYmIGhhbmRsZXIubGlzdGVuZXIuZG9tN3Byb3h5ID09PSBsaXN0ZW5lcikge1xuICAgICAgICAgICAgZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudCwgaGFuZGxlci5wcm94eUxpc3RlbmVyLCBjYXB0dXJlKTtcbiAgICAgICAgICAgIGhhbmRsZXJzLnNwbGljZShrLCAxKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKCFsaXN0ZW5lcikge1xuICAgICAgICAgICAgZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudCwgaGFuZGxlci5wcm94eUxpc3RlbmVyLCBjYXB0dXJlKTtcbiAgICAgICAgICAgIGhhbmRsZXJzLnNwbGljZShrLCAxKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGhpcztcbn1cblxuZnVuY3Rpb24gb25jZSguLi5hcmdzKSB7XG4gIGNvbnN0IGRvbSA9IHRoaXM7XG4gIGxldCBbZXZlbnROYW1lLCB0YXJnZXRTZWxlY3RvciwgbGlzdGVuZXIsIGNhcHR1cmVdID0gYXJncztcblxuICBpZiAodHlwZW9mIGFyZ3NbMV0gPT09ICdmdW5jdGlvbicpIHtcbiAgICBbZXZlbnROYW1lLCBsaXN0ZW5lciwgY2FwdHVyZV0gPSBhcmdzO1xuICAgIHRhcmdldFNlbGVjdG9yID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgZnVuY3Rpb24gb25jZUhhbmRsZXIoLi4uZXZlbnRBcmdzKSB7XG4gICAgbGlzdGVuZXIuYXBwbHkodGhpcywgZXZlbnRBcmdzKTtcbiAgICBkb20ub2ZmKGV2ZW50TmFtZSwgdGFyZ2V0U2VsZWN0b3IsIG9uY2VIYW5kbGVyLCBjYXB0dXJlKTtcblxuICAgIGlmIChvbmNlSGFuZGxlci5kb203cHJveHkpIHtcbiAgICAgIGRlbGV0ZSBvbmNlSGFuZGxlci5kb203cHJveHk7XG4gICAgfVxuICB9XG5cbiAgb25jZUhhbmRsZXIuZG9tN3Byb3h5ID0gbGlzdGVuZXI7XG4gIHJldHVybiBkb20ub24oZXZlbnROYW1lLCB0YXJnZXRTZWxlY3Rvciwgb25jZUhhbmRsZXIsIGNhcHR1cmUpO1xufVxuXG5mdW5jdGlvbiB0cmlnZ2VyKC4uLmFyZ3MpIHtcbiAgY29uc3Qgd2luZG93ID0gZ2V0V2luZG93KCk7XG4gIGNvbnN0IGV2ZW50cyA9IGFyZ3NbMF0uc3BsaXQoJyAnKTtcbiAgY29uc3QgZXZlbnREYXRhID0gYXJnc1sxXTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGV2ZW50cy5sZW5ndGg7IGkgKz0gMSkge1xuICAgIGNvbnN0IGV2ZW50ID0gZXZlbnRzW2ldO1xuXG4gICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLmxlbmd0aDsgaiArPSAxKSB7XG4gICAgICBjb25zdCBlbCA9IHRoaXNbal07XG5cbiAgICAgIGlmICh3aW5kb3cuQ3VzdG9tRXZlbnQpIHtcbiAgICAgICAgY29uc3QgZXZ0ID0gbmV3IHdpbmRvdy5DdXN0b21FdmVudChldmVudCwge1xuICAgICAgICAgIGRldGFpbDogZXZlbnREYXRhLFxuICAgICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgICAgY2FuY2VsYWJsZTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICAgICAgZWwuZG9tN0V2ZW50RGF0YSA9IGFyZ3MuZmlsdGVyKChkYXRhLCBkYXRhSW5kZXgpID0+IGRhdGFJbmRleCA+IDApO1xuICAgICAgICBlbC5kaXNwYXRjaEV2ZW50KGV2dCk7XG4gICAgICAgIGVsLmRvbTdFdmVudERhdGEgPSBbXTtcbiAgICAgICAgZGVsZXRlIGVsLmRvbTdFdmVudERhdGE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRoaXM7XG59XG5cbmZ1bmN0aW9uIHRyYW5zaXRpb25FbmQoY2FsbGJhY2spIHtcbiAgY29uc3QgZG9tID0gdGhpcztcblxuICBmdW5jdGlvbiBmaXJlQ2FsbEJhY2soZSkge1xuICAgIGlmIChlLnRhcmdldCAhPT0gdGhpcykgcmV0dXJuO1xuICAgIGNhbGxiYWNrLmNhbGwodGhpcywgZSk7XG4gICAgZG9tLm9mZigndHJhbnNpdGlvbmVuZCcsIGZpcmVDYWxsQmFjayk7XG4gIH1cblxuICBpZiAoY2FsbGJhY2spIHtcbiAgICBkb20ub24oJ3RyYW5zaXRpb25lbmQnLCBmaXJlQ2FsbEJhY2spO1xuICB9XG5cbiAgcmV0dXJuIHRoaXM7XG59XG5cbmZ1bmN0aW9uIGFuaW1hdGlvbkVuZChjYWxsYmFjaykge1xuICBjb25zdCBkb20gPSB0aGlzO1xuXG4gIGZ1bmN0aW9uIGZpcmVDYWxsQmFjayhlKSB7XG4gICAgaWYgKGUudGFyZ2V0ICE9PSB0aGlzKSByZXR1cm47XG4gICAgY2FsbGJhY2suY2FsbCh0aGlzLCBlKTtcbiAgICBkb20ub2ZmKCdhbmltYXRpb25lbmQnLCBmaXJlQ2FsbEJhY2spO1xuICB9XG5cbiAgaWYgKGNhbGxiYWNrKSB7XG4gICAgZG9tLm9uKCdhbmltYXRpb25lbmQnLCBmaXJlQ2FsbEJhY2spO1xuICB9XG5cbiAgcmV0dXJuIHRoaXM7XG59XG5cbmZ1bmN0aW9uIHdpZHRoKCkge1xuICBjb25zdCB3aW5kb3cgPSBnZXRXaW5kb3coKTtcblxuICBpZiAodGhpc1swXSA9PT0gd2luZG93KSB7XG4gICAgcmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoO1xuICB9XG5cbiAgaWYgKHRoaXMubGVuZ3RoID4gMCkge1xuICAgIHJldHVybiBwYXJzZUZsb2F0KHRoaXMuY3NzKCd3aWR0aCcpKTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiBvdXRlcldpZHRoKGluY2x1ZGVNYXJnaW5zKSB7XG4gIGlmICh0aGlzLmxlbmd0aCA+IDApIHtcbiAgICBpZiAoaW5jbHVkZU1hcmdpbnMpIHtcbiAgICAgIGNvbnN0IHN0eWxlcyA9IHRoaXMuc3R5bGVzKCk7XG4gICAgICByZXR1cm4gdGhpc1swXS5vZmZzZXRXaWR0aCArIHBhcnNlRmxvYXQoc3R5bGVzLmdldFByb3BlcnR5VmFsdWUoJ21hcmdpbi1yaWdodCcpKSArIHBhcnNlRmxvYXQoc3R5bGVzLmdldFByb3BlcnR5VmFsdWUoJ21hcmdpbi1sZWZ0JykpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzWzBdLm9mZnNldFdpZHRoO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIGhlaWdodCgpIHtcbiAgY29uc3Qgd2luZG93ID0gZ2V0V2luZG93KCk7XG5cbiAgaWYgKHRoaXNbMF0gPT09IHdpbmRvdykge1xuICAgIHJldHVybiB3aW5kb3cuaW5uZXJIZWlnaHQ7XG4gIH1cblxuICBpZiAodGhpcy5sZW5ndGggPiAwKSB7XG4gICAgcmV0dXJuIHBhcnNlRmxvYXQodGhpcy5jc3MoJ2hlaWdodCcpKTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiBvdXRlckhlaWdodChpbmNsdWRlTWFyZ2lucykge1xuICBpZiAodGhpcy5sZW5ndGggPiAwKSB7XG4gICAgaWYgKGluY2x1ZGVNYXJnaW5zKSB7XG4gICAgICBjb25zdCBzdHlsZXMgPSB0aGlzLnN0eWxlcygpO1xuICAgICAgcmV0dXJuIHRoaXNbMF0ub2Zmc2V0SGVpZ2h0ICsgcGFyc2VGbG9hdChzdHlsZXMuZ2V0UHJvcGVydHlWYWx1ZSgnbWFyZ2luLXRvcCcpKSArIHBhcnNlRmxvYXQoc3R5bGVzLmdldFByb3BlcnR5VmFsdWUoJ21hcmdpbi1ib3R0b20nKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXNbMF0ub2Zmc2V0SGVpZ2h0O1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIG9mZnNldCgpIHtcbiAgaWYgKHRoaXMubGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IHdpbmRvdyA9IGdldFdpbmRvdygpO1xuICAgIGNvbnN0IGRvY3VtZW50ID0gZ2V0RG9jdW1lbnQoKTtcbiAgICBjb25zdCBlbCA9IHRoaXNbMF07XG4gICAgY29uc3QgYm94ID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgYm9keSA9IGRvY3VtZW50LmJvZHk7XG4gICAgY29uc3QgY2xpZW50VG9wID0gZWwuY2xpZW50VG9wIHx8IGJvZHkuY2xpZW50VG9wIHx8IDA7XG4gICAgY29uc3QgY2xpZW50TGVmdCA9IGVsLmNsaWVudExlZnQgfHwgYm9keS5jbGllbnRMZWZ0IHx8IDA7XG4gICAgY29uc3Qgc2Nyb2xsVG9wID0gZWwgPT09IHdpbmRvdyA/IHdpbmRvdy5zY3JvbGxZIDogZWwuc2Nyb2xsVG9wO1xuICAgIGNvbnN0IHNjcm9sbExlZnQgPSBlbCA9PT0gd2luZG93ID8gd2luZG93LnNjcm9sbFggOiBlbC5zY3JvbGxMZWZ0O1xuICAgIHJldHVybiB7XG4gICAgICB0b3A6IGJveC50b3AgKyBzY3JvbGxUb3AgLSBjbGllbnRUb3AsXG4gICAgICBsZWZ0OiBib3gubGVmdCArIHNjcm9sbExlZnQgLSBjbGllbnRMZWZ0XG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiBoaWRlKCkge1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICB0aGlzW2ldLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gIH1cblxuICByZXR1cm4gdGhpcztcbn1cblxuZnVuY3Rpb24gc2hvdygpIHtcbiAgY29uc3Qgd2luZG93ID0gZ2V0V2luZG93KCk7XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgY29uc3QgZWwgPSB0aGlzW2ldO1xuXG4gICAgaWYgKGVsLnN0eWxlLmRpc3BsYXkgPT09ICdub25lJykge1xuICAgICAgZWwuc3R5bGUuZGlzcGxheSA9ICcnO1xuICAgIH1cblxuICAgIGlmICh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbCwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgnZGlzcGxheScpID09PSAnbm9uZScpIHtcbiAgICAgIC8vIFN0aWxsIG5vdCB2aXNpYmxlXG4gICAgICBlbC5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGhpcztcbn1cblxuZnVuY3Rpb24gc3R5bGVzKCkge1xuICBjb25zdCB3aW5kb3cgPSBnZXRXaW5kb3coKTtcbiAgaWYgKHRoaXNbMF0pIHJldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzWzBdLCBudWxsKTtcbiAgcmV0dXJuIHt9O1xufVxuXG5mdW5jdGlvbiBjc3MocHJvcHMsIHZhbHVlKSB7XG4gIGNvbnN0IHdpbmRvdyA9IGdldFdpbmRvdygpO1xuICBsZXQgaTtcblxuICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgIGlmICh0eXBlb2YgcHJvcHMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAvLyAuY3NzKCd3aWR0aCcpXG4gICAgICBpZiAodGhpc1swXSkgcmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXNbMF0sIG51bGwpLmdldFByb3BlcnR5VmFsdWUocHJvcHMpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyAuY3NzKHsgd2lkdGg6ICcxMDBweCcgfSlcbiAgICAgIGZvciAoaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICAgIGZvciAoY29uc3QgcHJvcCBpbiBwcm9wcykge1xuICAgICAgICAgIHRoaXNbaV0uc3R5bGVbcHJvcF0gPSBwcm9wc1twcm9wXTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gIH1cblxuICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMiAmJiB0eXBlb2YgcHJvcHMgPT09ICdzdHJpbmcnKSB7XG4gICAgLy8gLmNzcygnd2lkdGgnLCAnMTAwcHgnKVxuICAgIGZvciAoaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICB0aGlzW2ldLnN0eWxlW3Byb3BzXSA9IHZhbHVlO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcmV0dXJuIHRoaXM7XG59XG5cbmZ1bmN0aW9uIGVhY2goY2FsbGJhY2spIHtcbiAgaWYgKCFjYWxsYmFjaykgcmV0dXJuIHRoaXM7XG4gIHRoaXMuZm9yRWFjaCgoZWwsIGluZGV4KSA9PiB7XG4gICAgY2FsbGJhY2suYXBwbHkoZWwsIFtlbCwgaW5kZXhdKTtcbiAgfSk7XG4gIHJldHVybiB0aGlzO1xufVxuXG5mdW5jdGlvbiBmaWx0ZXIoY2FsbGJhY2spIHtcbiAgY29uc3QgcmVzdWx0ID0gYXJyYXlGaWx0ZXIodGhpcywgY2FsbGJhY2spO1xuICByZXR1cm4gJChyZXN1bHQpO1xufVxuXG5mdW5jdGlvbiBodG1sKGh0bWwpIHtcbiAgaWYgKHR5cGVvZiBodG1sID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiB0aGlzWzBdID8gdGhpc1swXS5pbm5lckhUTUwgOiBudWxsO1xuICB9XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgdGhpc1tpXS5pbm5lckhUTUwgPSBodG1sO1xuICB9XG5cbiAgcmV0dXJuIHRoaXM7XG59XG5cbmZ1bmN0aW9uIHRleHQodGV4dCkge1xuICBpZiAodHlwZW9mIHRleHQgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuIHRoaXNbMF0gPyB0aGlzWzBdLnRleHRDb250ZW50LnRyaW0oKSA6IG51bGw7XG4gIH1cblxuICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICB0aGlzW2ldLnRleHRDb250ZW50ID0gdGV4dDtcbiAgfVxuXG4gIHJldHVybiB0aGlzO1xufVxuXG5mdW5jdGlvbiBpcyhzZWxlY3Rvcikge1xuICBjb25zdCB3aW5kb3cgPSBnZXRXaW5kb3coKTtcbiAgY29uc3QgZG9jdW1lbnQgPSBnZXREb2N1bWVudCgpO1xuICBjb25zdCBlbCA9IHRoaXNbMF07XG4gIGxldCBjb21wYXJlV2l0aDtcbiAgbGV0IGk7XG4gIGlmICghZWwgfHwgdHlwZW9mIHNlbGVjdG9yID09PSAndW5kZWZpbmVkJykgcmV0dXJuIGZhbHNlO1xuXG4gIGlmICh0eXBlb2Ygc2VsZWN0b3IgPT09ICdzdHJpbmcnKSB7XG4gICAgaWYgKGVsLm1hdGNoZXMpIHJldHVybiBlbC5tYXRjaGVzKHNlbGVjdG9yKTtcbiAgICBpZiAoZWwud2Via2l0TWF0Y2hlc1NlbGVjdG9yKSByZXR1cm4gZWwud2Via2l0TWF0Y2hlc1NlbGVjdG9yKHNlbGVjdG9yKTtcbiAgICBpZiAoZWwubXNNYXRjaGVzU2VsZWN0b3IpIHJldHVybiBlbC5tc01hdGNoZXNTZWxlY3RvcihzZWxlY3Rvcik7XG4gICAgY29tcGFyZVdpdGggPSAkKHNlbGVjdG9yKTtcblxuICAgIGZvciAoaSA9IDA7IGkgPCBjb21wYXJlV2l0aC5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgaWYgKGNvbXBhcmVXaXRoW2ldID09PSBlbCkgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKHNlbGVjdG9yID09PSBkb2N1bWVudCkge1xuICAgIHJldHVybiBlbCA9PT0gZG9jdW1lbnQ7XG4gIH1cblxuICBpZiAoc2VsZWN0b3IgPT09IHdpbmRvdykge1xuICAgIHJldHVybiBlbCA9PT0gd2luZG93O1xuICB9XG5cbiAgaWYgKHNlbGVjdG9yLm5vZGVUeXBlIHx8IHNlbGVjdG9yIGluc3RhbmNlb2YgRG9tNykge1xuICAgIGNvbXBhcmVXaXRoID0gc2VsZWN0b3Iubm9kZVR5cGUgPyBbc2VsZWN0b3JdIDogc2VsZWN0b3I7XG5cbiAgICBmb3IgKGkgPSAwOyBpIDwgY29tcGFyZVdpdGgubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgIGlmIChjb21wYXJlV2l0aFtpXSA9PT0gZWwpIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gaW5kZXgoKSB7XG4gIGxldCBjaGlsZCA9IHRoaXNbMF07XG4gIGxldCBpO1xuXG4gIGlmIChjaGlsZCkge1xuICAgIGkgPSAwOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcblxuICAgIHdoaWxlICgoY2hpbGQgPSBjaGlsZC5wcmV2aW91c1NpYmxpbmcpICE9PSBudWxsKSB7XG4gICAgICBpZiAoY2hpbGQubm9kZVR5cGUgPT09IDEpIGkgKz0gMTtcbiAgICB9XG5cbiAgICByZXR1cm4gaTtcbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGVxKGluZGV4KSB7XG4gIGlmICh0eXBlb2YgaW5kZXggPT09ICd1bmRlZmluZWQnKSByZXR1cm4gdGhpcztcbiAgY29uc3QgbGVuZ3RoID0gdGhpcy5sZW5ndGg7XG5cbiAgaWYgKGluZGV4ID4gbGVuZ3RoIC0gMSkge1xuICAgIHJldHVybiAkKFtdKTtcbiAgfVxuXG4gIGlmIChpbmRleCA8IDApIHtcbiAgICBjb25zdCByZXR1cm5JbmRleCA9IGxlbmd0aCArIGluZGV4O1xuICAgIGlmIChyZXR1cm5JbmRleCA8IDApIHJldHVybiAkKFtdKTtcbiAgICByZXR1cm4gJChbdGhpc1tyZXR1cm5JbmRleF1dKTtcbiAgfVxuXG4gIHJldHVybiAkKFt0aGlzW2luZGV4XV0pO1xufVxuXG5mdW5jdGlvbiBhcHBlbmQoLi4uZWxzKSB7XG4gIGxldCBuZXdDaGlsZDtcbiAgY29uc3QgZG9jdW1lbnQgPSBnZXREb2N1bWVudCgpO1xuXG4gIGZvciAobGV0IGsgPSAwOyBrIDwgZWxzLmxlbmd0aDsgayArPSAxKSB7XG4gICAgbmV3Q2hpbGQgPSBlbHNba107XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgIGlmICh0eXBlb2YgbmV3Q2hpbGQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNvbnN0IHRlbXBEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdGVtcERpdi5pbm5lckhUTUwgPSBuZXdDaGlsZDtcblxuICAgICAgICB3aGlsZSAodGVtcERpdi5maXJzdENoaWxkKSB7XG4gICAgICAgICAgdGhpc1tpXS5hcHBlbmRDaGlsZCh0ZW1wRGl2LmZpcnN0Q2hpbGQpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKG5ld0NoaWxkIGluc3RhbmNlb2YgRG9tNykge1xuICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IG5ld0NoaWxkLmxlbmd0aDsgaiArPSAxKSB7XG4gICAgICAgICAgdGhpc1tpXS5hcHBlbmRDaGlsZChuZXdDaGlsZFtqXSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXNbaV0uYXBwZW5kQ2hpbGQobmV3Q2hpbGQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0aGlzO1xufVxuXG5mdW5jdGlvbiBhcHBlbmRUbyhwYXJlbnQpIHtcbiAgJChwYXJlbnQpLmFwcGVuZCh0aGlzKTtcbiAgcmV0dXJuIHRoaXM7XG59XG5cbmZ1bmN0aW9uIHByZXBlbmQobmV3Q2hpbGQpIHtcbiAgY29uc3QgZG9jdW1lbnQgPSBnZXREb2N1bWVudCgpO1xuICBsZXQgaTtcbiAgbGV0IGo7XG5cbiAgZm9yIChpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICBpZiAodHlwZW9mIG5ld0NoaWxkID09PSAnc3RyaW5nJykge1xuICAgICAgY29uc3QgdGVtcERpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgdGVtcERpdi5pbm5lckhUTUwgPSBuZXdDaGlsZDtcblxuICAgICAgZm9yIChqID0gdGVtcERpdi5jaGlsZE5vZGVzLmxlbmd0aCAtIDE7IGogPj0gMDsgaiAtPSAxKSB7XG4gICAgICAgIHRoaXNbaV0uaW5zZXJ0QmVmb3JlKHRlbXBEaXYuY2hpbGROb2Rlc1tqXSwgdGhpc1tpXS5jaGlsZE5vZGVzWzBdKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKG5ld0NoaWxkIGluc3RhbmNlb2YgRG9tNykge1xuICAgICAgZm9yIChqID0gMDsgaiA8IG5ld0NoaWxkLmxlbmd0aDsgaiArPSAxKSB7XG4gICAgICAgIHRoaXNbaV0uaW5zZXJ0QmVmb3JlKG5ld0NoaWxkW2pdLCB0aGlzW2ldLmNoaWxkTm9kZXNbMF0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzW2ldLmluc2VydEJlZm9yZShuZXdDaGlsZCwgdGhpc1tpXS5jaGlsZE5vZGVzWzBdKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGhpcztcbn1cblxuZnVuY3Rpb24gcHJlcGVuZFRvKHBhcmVudCkge1xuICAkKHBhcmVudCkucHJlcGVuZCh0aGlzKTtcbiAgcmV0dXJuIHRoaXM7XG59XG5cbmZ1bmN0aW9uIGluc2VydEJlZm9yZShzZWxlY3Rvcikge1xuICBjb25zdCBiZWZvcmUgPSAkKHNlbGVjdG9yKTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICBpZiAoYmVmb3JlLmxlbmd0aCA9PT0gMSkge1xuICAgICAgYmVmb3JlWzBdLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXNbaV0sIGJlZm9yZVswXSk7XG4gICAgfSBlbHNlIGlmIChiZWZvcmUubGVuZ3RoID4gMSkge1xuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBiZWZvcmUubGVuZ3RoOyBqICs9IDEpIHtcbiAgICAgICAgYmVmb3JlW2pdLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXNbaV0uY2xvbmVOb2RlKHRydWUpLCBiZWZvcmVbal0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBpbnNlcnRBZnRlcihzZWxlY3Rvcikge1xuICBjb25zdCBhZnRlciA9ICQoc2VsZWN0b3IpO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7IGkgKz0gMSkge1xuICAgIGlmIChhZnRlci5sZW5ndGggPT09IDEpIHtcbiAgICAgIGFmdGVyWzBdLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXNbaV0sIGFmdGVyWzBdLm5leHRTaWJsaW5nKTtcbiAgICB9IGVsc2UgaWYgKGFmdGVyLmxlbmd0aCA+IDEpIHtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgYWZ0ZXIubGVuZ3RoOyBqICs9IDEpIHtcbiAgICAgICAgYWZ0ZXJbal0ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodGhpc1tpXS5jbG9uZU5vZGUodHJ1ZSksIGFmdGVyW2pdLm5leHRTaWJsaW5nKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gbmV4dChzZWxlY3Rvcikge1xuICBpZiAodGhpcy5sZW5ndGggPiAwKSB7XG4gICAgaWYgKHNlbGVjdG9yKSB7XG4gICAgICBpZiAodGhpc1swXS5uZXh0RWxlbWVudFNpYmxpbmcgJiYgJCh0aGlzWzBdLm5leHRFbGVtZW50U2libGluZykuaXMoc2VsZWN0b3IpKSB7XG4gICAgICAgIHJldHVybiAkKFt0aGlzWzBdLm5leHRFbGVtZW50U2libGluZ10pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gJChbXSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXNbMF0ubmV4dEVsZW1lbnRTaWJsaW5nKSByZXR1cm4gJChbdGhpc1swXS5uZXh0RWxlbWVudFNpYmxpbmddKTtcbiAgICByZXR1cm4gJChbXSk7XG4gIH1cblxuICByZXR1cm4gJChbXSk7XG59XG5cbmZ1bmN0aW9uIG5leHRBbGwoc2VsZWN0b3IpIHtcbiAgY29uc3QgbmV4dEVscyA9IFtdO1xuICBsZXQgZWwgPSB0aGlzWzBdO1xuICBpZiAoIWVsKSByZXR1cm4gJChbXSk7XG5cbiAgd2hpbGUgKGVsLm5leHRFbGVtZW50U2libGluZykge1xuICAgIGNvbnN0IG5leHQgPSBlbC5uZXh0RWxlbWVudFNpYmxpbmc7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcblxuICAgIGlmIChzZWxlY3Rvcikge1xuICAgICAgaWYgKCQobmV4dCkuaXMoc2VsZWN0b3IpKSBuZXh0RWxzLnB1c2gobmV4dCk7XG4gICAgfSBlbHNlIG5leHRFbHMucHVzaChuZXh0KTtcblxuICAgIGVsID0gbmV4dDtcbiAgfVxuXG4gIHJldHVybiAkKG5leHRFbHMpO1xufVxuXG5mdW5jdGlvbiBwcmV2KHNlbGVjdG9yKSB7XG4gIGlmICh0aGlzLmxlbmd0aCA+IDApIHtcbiAgICBjb25zdCBlbCA9IHRoaXNbMF07XG5cbiAgICBpZiAoc2VsZWN0b3IpIHtcbiAgICAgIGlmIChlbC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nICYmICQoZWwucHJldmlvdXNFbGVtZW50U2libGluZykuaXMoc2VsZWN0b3IpKSB7XG4gICAgICAgIHJldHVybiAkKFtlbC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nXSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAkKFtdKTtcbiAgICB9XG5cbiAgICBpZiAoZWwucHJldmlvdXNFbGVtZW50U2libGluZykgcmV0dXJuICQoW2VsLnByZXZpb3VzRWxlbWVudFNpYmxpbmddKTtcbiAgICByZXR1cm4gJChbXSk7XG4gIH1cblxuICByZXR1cm4gJChbXSk7XG59XG5cbmZ1bmN0aW9uIHByZXZBbGwoc2VsZWN0b3IpIHtcbiAgY29uc3QgcHJldkVscyA9IFtdO1xuICBsZXQgZWwgPSB0aGlzWzBdO1xuICBpZiAoIWVsKSByZXR1cm4gJChbXSk7XG5cbiAgd2hpbGUgKGVsLnByZXZpb3VzRWxlbWVudFNpYmxpbmcpIHtcbiAgICBjb25zdCBwcmV2ID0gZWwucHJldmlvdXNFbGVtZW50U2libGluZzsgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuXG4gICAgaWYgKHNlbGVjdG9yKSB7XG4gICAgICBpZiAoJChwcmV2KS5pcyhzZWxlY3RvcikpIHByZXZFbHMucHVzaChwcmV2KTtcbiAgICB9IGVsc2UgcHJldkVscy5wdXNoKHByZXYpO1xuXG4gICAgZWwgPSBwcmV2O1xuICB9XG5cbiAgcmV0dXJuICQocHJldkVscyk7XG59XG5cbmZ1bmN0aW9uIHNpYmxpbmdzKHNlbGVjdG9yKSB7XG4gIHJldHVybiB0aGlzLm5leHRBbGwoc2VsZWN0b3IpLmFkZCh0aGlzLnByZXZBbGwoc2VsZWN0b3IpKTtcbn1cblxuZnVuY3Rpb24gcGFyZW50KHNlbGVjdG9yKSB7XG4gIGNvbnN0IHBhcmVudHMgPSBbXTsgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7IGkgKz0gMSkge1xuICAgIGlmICh0aGlzW2ldLnBhcmVudE5vZGUgIT09IG51bGwpIHtcbiAgICAgIGlmIChzZWxlY3Rvcikge1xuICAgICAgICBpZiAoJCh0aGlzW2ldLnBhcmVudE5vZGUpLmlzKHNlbGVjdG9yKSkgcGFyZW50cy5wdXNoKHRoaXNbaV0ucGFyZW50Tm9kZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwYXJlbnRzLnB1c2godGhpc1tpXS5wYXJlbnROb2RlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gJChwYXJlbnRzKTtcbn1cblxuZnVuY3Rpb24gcGFyZW50cyhzZWxlY3Rvcikge1xuICBjb25zdCBwYXJlbnRzID0gW107IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICBsZXQgcGFyZW50ID0gdGhpc1tpXS5wYXJlbnROb2RlOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG5cbiAgICB3aGlsZSAocGFyZW50KSB7XG4gICAgICBpZiAoc2VsZWN0b3IpIHtcbiAgICAgICAgaWYgKCQocGFyZW50KS5pcyhzZWxlY3RvcikpIHBhcmVudHMucHVzaChwYXJlbnQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGFyZW50cy5wdXNoKHBhcmVudCk7XG4gICAgICB9XG5cbiAgICAgIHBhcmVudCA9IHBhcmVudC5wYXJlbnROb2RlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiAkKHBhcmVudHMpO1xufVxuXG5mdW5jdGlvbiBjbG9zZXN0KHNlbGVjdG9yKSB7XG4gIGxldCBjbG9zZXN0ID0gdGhpczsgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuXG4gIGlmICh0eXBlb2Ygc2VsZWN0b3IgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuICQoW10pO1xuICB9XG5cbiAgaWYgKCFjbG9zZXN0LmlzKHNlbGVjdG9yKSkge1xuICAgIGNsb3Nlc3QgPSBjbG9zZXN0LnBhcmVudHMoc2VsZWN0b3IpLmVxKDApO1xuICB9XG5cbiAgcmV0dXJuIGNsb3Nlc3Q7XG59XG5cbmZ1bmN0aW9uIGZpbmQoc2VsZWN0b3IpIHtcbiAgY29uc3QgZm91bmRFbGVtZW50cyA9IFtdO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7IGkgKz0gMSkge1xuICAgIGNvbnN0IGZvdW5kID0gdGhpc1tpXS5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKTtcblxuICAgIGZvciAobGV0IGogPSAwOyBqIDwgZm91bmQubGVuZ3RoOyBqICs9IDEpIHtcbiAgICAgIGZvdW5kRWxlbWVudHMucHVzaChmb3VuZFtqXSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuICQoZm91bmRFbGVtZW50cyk7XG59XG5cbmZ1bmN0aW9uIGNoaWxkcmVuKHNlbGVjdG9yKSB7XG4gIGNvbnN0IGNoaWxkcmVuID0gW107IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICBjb25zdCBjaGlsZE5vZGVzID0gdGhpc1tpXS5jaGlsZHJlbjtcblxuICAgIGZvciAobGV0IGogPSAwOyBqIDwgY2hpbGROb2Rlcy5sZW5ndGg7IGogKz0gMSkge1xuICAgICAgaWYgKCFzZWxlY3RvciB8fCAkKGNoaWxkTm9kZXNbal0pLmlzKHNlbGVjdG9yKSkge1xuICAgICAgICBjaGlsZHJlbi5wdXNoKGNoaWxkTm9kZXNbal0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiAkKGNoaWxkcmVuKTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlKCkge1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICBpZiAodGhpc1tpXS5wYXJlbnROb2RlKSB0aGlzW2ldLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpc1tpXSk7XG4gIH1cblxuICByZXR1cm4gdGhpcztcbn1cblxuZnVuY3Rpb24gZGV0YWNoKCkge1xuICByZXR1cm4gdGhpcy5yZW1vdmUoKTtcbn1cblxuZnVuY3Rpb24gYWRkKC4uLmVscykge1xuICBjb25zdCBkb20gPSB0aGlzO1xuICBsZXQgaTtcbiAgbGV0IGo7XG5cbiAgZm9yIChpID0gMDsgaSA8IGVscy5sZW5ndGg7IGkgKz0gMSkge1xuICAgIGNvbnN0IHRvQWRkID0gJChlbHNbaV0pO1xuXG4gICAgZm9yIChqID0gMDsgaiA8IHRvQWRkLmxlbmd0aDsgaiArPSAxKSB7XG4gICAgICBkb20ucHVzaCh0b0FkZFtqXSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRvbTtcbn1cblxuZnVuY3Rpb24gZW1wdHkoKSB7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7IGkgKz0gMSkge1xuICAgIGNvbnN0IGVsID0gdGhpc1tpXTtcblxuICAgIGlmIChlbC5ub2RlVHlwZSA9PT0gMSkge1xuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBlbC5jaGlsZE5vZGVzLmxlbmd0aDsgaiArPSAxKSB7XG4gICAgICAgIGlmIChlbC5jaGlsZE5vZGVzW2pdLnBhcmVudE5vZGUpIHtcbiAgICAgICAgICBlbC5jaGlsZE5vZGVzW2pdLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZWwuY2hpbGROb2Rlc1tqXSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZWwudGV4dENvbnRlbnQgPSAnJztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGhpcztcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG5cbmZ1bmN0aW9uIHNjcm9sbFRvKC4uLmFyZ3MpIHtcbiAgY29uc3Qgd2luZG93ID0gZ2V0V2luZG93KCk7XG4gIGxldCBbbGVmdCwgdG9wLCBkdXJhdGlvbiwgZWFzaW5nLCBjYWxsYmFja10gPSBhcmdzO1xuXG4gIGlmIChhcmdzLmxlbmd0aCA9PT0gNCAmJiB0eXBlb2YgZWFzaW5nID09PSAnZnVuY3Rpb24nKSB7XG4gICAgY2FsbGJhY2sgPSBlYXNpbmc7XG4gICAgW2xlZnQsIHRvcCwgZHVyYXRpb24sIGNhbGxiYWNrLCBlYXNpbmddID0gYXJncztcbiAgfVxuXG4gIGlmICh0eXBlb2YgZWFzaW5nID09PSAndW5kZWZpbmVkJykgZWFzaW5nID0gJ3N3aW5nJztcbiAgcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiBhbmltYXRlKCkge1xuICAgIGNvbnN0IGVsID0gdGhpcztcbiAgICBsZXQgY3VycmVudFRvcDtcbiAgICBsZXQgY3VycmVudExlZnQ7XG4gICAgbGV0IG1heFRvcDtcbiAgICBsZXQgbWF4TGVmdDtcbiAgICBsZXQgbmV3VG9wO1xuICAgIGxldCBuZXdMZWZ0O1xuICAgIGxldCBzY3JvbGxUb3A7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcblxuICAgIGxldCBzY3JvbGxMZWZ0OyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG5cbiAgICBsZXQgYW5pbWF0ZVRvcCA9IHRvcCA+IDAgfHwgdG9wID09PSAwO1xuICAgIGxldCBhbmltYXRlTGVmdCA9IGxlZnQgPiAwIHx8IGxlZnQgPT09IDA7XG5cbiAgICBpZiAodHlwZW9mIGVhc2luZyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGVhc2luZyA9ICdzd2luZyc7XG4gICAgfVxuXG4gICAgaWYgKGFuaW1hdGVUb3ApIHtcbiAgICAgIGN1cnJlbnRUb3AgPSBlbC5zY3JvbGxUb3A7XG5cbiAgICAgIGlmICghZHVyYXRpb24pIHtcbiAgICAgICAgZWwuc2Nyb2xsVG9wID0gdG9wO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChhbmltYXRlTGVmdCkge1xuICAgICAgY3VycmVudExlZnQgPSBlbC5zY3JvbGxMZWZ0O1xuXG4gICAgICBpZiAoIWR1cmF0aW9uKSB7XG4gICAgICAgIGVsLnNjcm9sbExlZnQgPSBsZWZ0O1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghZHVyYXRpb24pIHJldHVybjtcblxuICAgIGlmIChhbmltYXRlVG9wKSB7XG4gICAgICBtYXhUb3AgPSBlbC5zY3JvbGxIZWlnaHQgLSBlbC5vZmZzZXRIZWlnaHQ7XG4gICAgICBuZXdUb3AgPSBNYXRoLm1heChNYXRoLm1pbih0b3AsIG1heFRvcCksIDApO1xuICAgIH1cblxuICAgIGlmIChhbmltYXRlTGVmdCkge1xuICAgICAgbWF4TGVmdCA9IGVsLnNjcm9sbFdpZHRoIC0gZWwub2Zmc2V0V2lkdGg7XG4gICAgICBuZXdMZWZ0ID0gTWF0aC5tYXgoTWF0aC5taW4obGVmdCwgbWF4TGVmdCksIDApO1xuICAgIH1cblxuICAgIGxldCBzdGFydFRpbWUgPSBudWxsO1xuICAgIGlmIChhbmltYXRlVG9wICYmIG5ld1RvcCA9PT0gY3VycmVudFRvcCkgYW5pbWF0ZVRvcCA9IGZhbHNlO1xuICAgIGlmIChhbmltYXRlTGVmdCAmJiBuZXdMZWZ0ID09PSBjdXJyZW50TGVmdCkgYW5pbWF0ZUxlZnQgPSBmYWxzZTtcblxuICAgIGZ1bmN0aW9uIHJlbmRlcih0aW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCkpIHtcbiAgICAgIGlmIChzdGFydFRpbWUgPT09IG51bGwpIHtcbiAgICAgICAgc3RhcnRUaW1lID0gdGltZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcHJvZ3Jlc3MgPSBNYXRoLm1heChNYXRoLm1pbigodGltZSAtIHN0YXJ0VGltZSkgLyBkdXJhdGlvbiwgMSksIDApO1xuICAgICAgY29uc3QgZWFzZVByb2dyZXNzID0gZWFzaW5nID09PSAnbGluZWFyJyA/IHByb2dyZXNzIDogMC41IC0gTWF0aC5jb3MocHJvZ3Jlc3MgKiBNYXRoLlBJKSAvIDI7XG4gICAgICBsZXQgZG9uZTtcbiAgICAgIGlmIChhbmltYXRlVG9wKSBzY3JvbGxUb3AgPSBjdXJyZW50VG9wICsgZWFzZVByb2dyZXNzICogKG5ld1RvcCAtIGN1cnJlbnRUb3ApO1xuICAgICAgaWYgKGFuaW1hdGVMZWZ0KSBzY3JvbGxMZWZ0ID0gY3VycmVudExlZnQgKyBlYXNlUHJvZ3Jlc3MgKiAobmV3TGVmdCAtIGN1cnJlbnRMZWZ0KTtcblxuICAgICAgaWYgKGFuaW1hdGVUb3AgJiYgbmV3VG9wID4gY3VycmVudFRvcCAmJiBzY3JvbGxUb3AgPj0gbmV3VG9wKSB7XG4gICAgICAgIGVsLnNjcm9sbFRvcCA9IG5ld1RvcDtcbiAgICAgICAgZG9uZSA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChhbmltYXRlVG9wICYmIG5ld1RvcCA8IGN1cnJlbnRUb3AgJiYgc2Nyb2xsVG9wIDw9IG5ld1RvcCkge1xuICAgICAgICBlbC5zY3JvbGxUb3AgPSBuZXdUb3A7XG4gICAgICAgIGRvbmUgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoYW5pbWF0ZUxlZnQgJiYgbmV3TGVmdCA+IGN1cnJlbnRMZWZ0ICYmIHNjcm9sbExlZnQgPj0gbmV3TGVmdCkge1xuICAgICAgICBlbC5zY3JvbGxMZWZ0ID0gbmV3TGVmdDtcbiAgICAgICAgZG9uZSA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChhbmltYXRlTGVmdCAmJiBuZXdMZWZ0IDwgY3VycmVudExlZnQgJiYgc2Nyb2xsTGVmdCA8PSBuZXdMZWZ0KSB7XG4gICAgICAgIGVsLnNjcm9sbExlZnQgPSBuZXdMZWZ0O1xuICAgICAgICBkb25lID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKGRvbmUpIHtcbiAgICAgICAgaWYgKGNhbGxiYWNrKSBjYWxsYmFjaygpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChhbmltYXRlVG9wKSBlbC5zY3JvbGxUb3AgPSBzY3JvbGxUb3A7XG4gICAgICBpZiAoYW5pbWF0ZUxlZnQpIGVsLnNjcm9sbExlZnQgPSBzY3JvbGxMZWZ0O1xuICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShyZW5kZXIpO1xuICAgIH1cblxuICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUocmVuZGVyKTtcbiAgfSk7XG59IC8vIHNjcm9sbFRvcCh0b3AsIGR1cmF0aW9uLCBlYXNpbmcsIGNhbGxiYWNrKSB7XG5cblxuZnVuY3Rpb24gc2Nyb2xsVG9wKC4uLmFyZ3MpIHtcbiAgbGV0IFt0b3AsIGR1cmF0aW9uLCBlYXNpbmcsIGNhbGxiYWNrXSA9IGFyZ3M7XG5cbiAgaWYgKGFyZ3MubGVuZ3RoID09PSAzICYmIHR5cGVvZiBlYXNpbmcgPT09ICdmdW5jdGlvbicpIHtcbiAgICBbdG9wLCBkdXJhdGlvbiwgY2FsbGJhY2ssIGVhc2luZ10gPSBhcmdzO1xuICB9XG5cbiAgY29uc3QgZG9tID0gdGhpcztcblxuICBpZiAodHlwZW9mIHRvcCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBpZiAoZG9tLmxlbmd0aCA+IDApIHJldHVybiBkb21bMF0uc2Nyb2xsVG9wO1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIGRvbS5zY3JvbGxUbyh1bmRlZmluZWQsIHRvcCwgZHVyYXRpb24sIGVhc2luZywgY2FsbGJhY2spO1xufVxuXG5mdW5jdGlvbiBzY3JvbGxMZWZ0KC4uLmFyZ3MpIHtcbiAgbGV0IFtsZWZ0LCBkdXJhdGlvbiwgZWFzaW5nLCBjYWxsYmFja10gPSBhcmdzO1xuXG4gIGlmIChhcmdzLmxlbmd0aCA9PT0gMyAmJiB0eXBlb2YgZWFzaW5nID09PSAnZnVuY3Rpb24nKSB7XG4gICAgW2xlZnQsIGR1cmF0aW9uLCBjYWxsYmFjaywgZWFzaW5nXSA9IGFyZ3M7XG4gIH1cblxuICBjb25zdCBkb20gPSB0aGlzO1xuXG4gIGlmICh0eXBlb2YgbGVmdCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBpZiAoZG9tLmxlbmd0aCA+IDApIHJldHVybiBkb21bMF0uc2Nyb2xsTGVmdDtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiBkb20uc2Nyb2xsVG8obGVmdCwgdW5kZWZpbmVkLCBkdXJhdGlvbiwgZWFzaW5nLCBjYWxsYmFjayk7XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuXG5mdW5jdGlvbiBhbmltYXRlKGluaXRpYWxQcm9wcywgaW5pdGlhbFBhcmFtcykge1xuICBjb25zdCB3aW5kb3cgPSBnZXRXaW5kb3coKTtcbiAgY29uc3QgZWxzID0gdGhpcztcbiAgY29uc3QgYSA9IHtcbiAgICBwcm9wczogT2JqZWN0LmFzc2lnbih7fSwgaW5pdGlhbFByb3BzKSxcbiAgICBwYXJhbXM6IE9iamVjdC5hc3NpZ24oe1xuICAgICAgZHVyYXRpb246IDMwMCxcbiAgICAgIGVhc2luZzogJ3N3aW5nJyAvLyBvciAnbGluZWFyJ1xuXG4gICAgICAvKiBDYWxsYmFja3NcbiAgICAgIGJlZ2luKGVsZW1lbnRzKVxuICAgICAgY29tcGxldGUoZWxlbWVudHMpXG4gICAgICBwcm9ncmVzcyhlbGVtZW50cywgY29tcGxldGUsIHJlbWFpbmluZywgc3RhcnQsIHR3ZWVuVmFsdWUpXG4gICAgICAqL1xuXG4gICAgfSwgaW5pdGlhbFBhcmFtcyksXG4gICAgZWxlbWVudHM6IGVscyxcbiAgICBhbmltYXRpbmc6IGZhbHNlLFxuICAgIHF1ZTogW10sXG5cbiAgICBlYXNpbmdQcm9ncmVzcyhlYXNpbmcsIHByb2dyZXNzKSB7XG4gICAgICBpZiAoZWFzaW5nID09PSAnc3dpbmcnKSB7XG4gICAgICAgIHJldHVybiAwLjUgLSBNYXRoLmNvcyhwcm9ncmVzcyAqIE1hdGguUEkpIC8gMjtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiBlYXNpbmcgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIGVhc2luZyhwcm9ncmVzcyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBwcm9ncmVzcztcbiAgICB9LFxuXG4gICAgc3RvcCgpIHtcbiAgICAgIGlmIChhLmZyYW1lSWQpIHtcbiAgICAgICAgd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKGEuZnJhbWVJZCk7XG4gICAgICB9XG5cbiAgICAgIGEuYW5pbWF0aW5nID0gZmFsc2U7XG4gICAgICBhLmVsZW1lbnRzLmVhY2goZWwgPT4ge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gZWw7XG4gICAgICAgIGRlbGV0ZSBlbGVtZW50LmRvbTdBbmltYXRlSW5zdGFuY2U7XG4gICAgICB9KTtcbiAgICAgIGEucXVlID0gW107XG4gICAgfSxcblxuICAgIGRvbmUoY29tcGxldGUpIHtcbiAgICAgIGEuYW5pbWF0aW5nID0gZmFsc2U7XG4gICAgICBhLmVsZW1lbnRzLmVhY2goZWwgPT4ge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gZWw7XG4gICAgICAgIGRlbGV0ZSBlbGVtZW50LmRvbTdBbmltYXRlSW5zdGFuY2U7XG4gICAgICB9KTtcbiAgICAgIGlmIChjb21wbGV0ZSkgY29tcGxldGUoZWxzKTtcblxuICAgICAgaWYgKGEucXVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgcXVlID0gYS5xdWUuc2hpZnQoKTtcbiAgICAgICAgYS5hbmltYXRlKHF1ZVswXSwgcXVlWzFdKTtcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgYW5pbWF0ZShwcm9wcywgcGFyYW1zKSB7XG4gICAgICBpZiAoYS5hbmltYXRpbmcpIHtcbiAgICAgICAgYS5xdWUucHVzaChbcHJvcHMsIHBhcmFtc10pO1xuICAgICAgICByZXR1cm4gYTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZWxlbWVudHMgPSBbXTsgLy8gRGVmaW5lICYgQ2FjaGUgSW5pdGlhbHMgJiBVbml0c1xuXG4gICAgICBhLmVsZW1lbnRzLmVhY2goKGVsLCBpbmRleCkgPT4ge1xuICAgICAgICBsZXQgaW5pdGlhbEZ1bGxWYWx1ZTtcbiAgICAgICAgbGV0IGluaXRpYWxWYWx1ZTtcbiAgICAgICAgbGV0IHVuaXQ7XG4gICAgICAgIGxldCBmaW5hbFZhbHVlO1xuICAgICAgICBsZXQgZmluYWxGdWxsVmFsdWU7XG4gICAgICAgIGlmICghZWwuZG9tN0FuaW1hdGVJbnN0YW5jZSkgYS5lbGVtZW50c1tpbmRleF0uZG9tN0FuaW1hdGVJbnN0YW5jZSA9IGE7XG4gICAgICAgIGVsZW1lbnRzW2luZGV4XSA9IHtcbiAgICAgICAgICBjb250YWluZXI6IGVsXG4gICAgICAgIH07XG4gICAgICAgIE9iamVjdC5rZXlzKHByb3BzKS5mb3JFYWNoKHByb3AgPT4ge1xuICAgICAgICAgIGluaXRpYWxGdWxsVmFsdWUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbCwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZShwcm9wKS5yZXBsYWNlKCcsJywgJy4nKTtcbiAgICAgICAgICBpbml0aWFsVmFsdWUgPSBwYXJzZUZsb2F0KGluaXRpYWxGdWxsVmFsdWUpO1xuICAgICAgICAgIHVuaXQgPSBpbml0aWFsRnVsbFZhbHVlLnJlcGxhY2UoaW5pdGlhbFZhbHVlLCAnJyk7XG4gICAgICAgICAgZmluYWxWYWx1ZSA9IHBhcnNlRmxvYXQocHJvcHNbcHJvcF0pO1xuICAgICAgICAgIGZpbmFsRnVsbFZhbHVlID0gcHJvcHNbcHJvcF0gKyB1bml0O1xuICAgICAgICAgIGVsZW1lbnRzW2luZGV4XVtwcm9wXSA9IHtcbiAgICAgICAgICAgIGluaXRpYWxGdWxsVmFsdWUsXG4gICAgICAgICAgICBpbml0aWFsVmFsdWUsXG4gICAgICAgICAgICB1bml0LFxuICAgICAgICAgICAgZmluYWxWYWx1ZSxcbiAgICAgICAgICAgIGZpbmFsRnVsbFZhbHVlLFxuICAgICAgICAgICAgY3VycmVudFZhbHVlOiBpbml0aWFsVmFsdWVcbiAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgbGV0IHN0YXJ0VGltZSA9IG51bGw7XG4gICAgICBsZXQgdGltZTtcbiAgICAgIGxldCBlbGVtZW50c0RvbmUgPSAwO1xuICAgICAgbGV0IHByb3BzRG9uZSA9IDA7XG4gICAgICBsZXQgZG9uZTtcbiAgICAgIGxldCBiZWdhbiA9IGZhbHNlO1xuICAgICAgYS5hbmltYXRpbmcgPSB0cnVlO1xuXG4gICAgICBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgIHRpbWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICAgICAgbGV0IHByb2dyZXNzO1xuICAgICAgICBsZXQgZWFzZVByb2dyZXNzOyAvLyBsZXQgZWw7XG5cbiAgICAgICAgaWYgKCFiZWdhbikge1xuICAgICAgICAgIGJlZ2FuID0gdHJ1ZTtcbiAgICAgICAgICBpZiAocGFyYW1zLmJlZ2luKSBwYXJhbXMuYmVnaW4oZWxzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzdGFydFRpbWUgPT09IG51bGwpIHtcbiAgICAgICAgICBzdGFydFRpbWUgPSB0aW1lO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBhcmFtcy5wcm9ncmVzcykge1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgICAgICAgIHBhcmFtcy5wcm9ncmVzcyhlbHMsIE1hdGgubWF4KE1hdGgubWluKCh0aW1lIC0gc3RhcnRUaW1lKSAvIHBhcmFtcy5kdXJhdGlvbiwgMSksIDApLCBzdGFydFRpbWUgKyBwYXJhbXMuZHVyYXRpb24gLSB0aW1lIDwgMCA/IDAgOiBzdGFydFRpbWUgKyBwYXJhbXMuZHVyYXRpb24gLSB0aW1lLCBzdGFydFRpbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgZWxlbWVudHMuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgICBjb25zdCBlbCA9IGVsZW1lbnQ7XG4gICAgICAgICAgaWYgKGRvbmUgfHwgZWwuZG9uZSkgcmV0dXJuO1xuICAgICAgICAgIE9iamVjdC5rZXlzKHByb3BzKS5mb3JFYWNoKHByb3AgPT4ge1xuICAgICAgICAgICAgaWYgKGRvbmUgfHwgZWwuZG9uZSkgcmV0dXJuO1xuICAgICAgICAgICAgcHJvZ3Jlc3MgPSBNYXRoLm1heChNYXRoLm1pbigodGltZSAtIHN0YXJ0VGltZSkgLyBwYXJhbXMuZHVyYXRpb24sIDEpLCAwKTtcbiAgICAgICAgICAgIGVhc2VQcm9ncmVzcyA9IGEuZWFzaW5nUHJvZ3Jlc3MocGFyYW1zLmVhc2luZywgcHJvZ3Jlc3MpO1xuICAgICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgICBpbml0aWFsVmFsdWUsXG4gICAgICAgICAgICAgIGZpbmFsVmFsdWUsXG4gICAgICAgICAgICAgIHVuaXRcbiAgICAgICAgICAgIH0gPSBlbFtwcm9wXTtcbiAgICAgICAgICAgIGVsW3Byb3BdLmN1cnJlbnRWYWx1ZSA9IGluaXRpYWxWYWx1ZSArIGVhc2VQcm9ncmVzcyAqIChmaW5hbFZhbHVlIC0gaW5pdGlhbFZhbHVlKTtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IGVsW3Byb3BdLmN1cnJlbnRWYWx1ZTtcblxuICAgICAgICAgICAgaWYgKGZpbmFsVmFsdWUgPiBpbml0aWFsVmFsdWUgJiYgY3VycmVudFZhbHVlID49IGZpbmFsVmFsdWUgfHwgZmluYWxWYWx1ZSA8IGluaXRpYWxWYWx1ZSAmJiBjdXJyZW50VmFsdWUgPD0gZmluYWxWYWx1ZSkge1xuICAgICAgICAgICAgICBlbC5jb250YWluZXIuc3R5bGVbcHJvcF0gPSBmaW5hbFZhbHVlICsgdW5pdDtcbiAgICAgICAgICAgICAgcHJvcHNEb25lICs9IDE7XG5cbiAgICAgICAgICAgICAgaWYgKHByb3BzRG9uZSA9PT0gT2JqZWN0LmtleXMocHJvcHMpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGVsLmRvbmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGVsZW1lbnRzRG9uZSArPSAxO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgaWYgKGVsZW1lbnRzRG9uZSA9PT0gZWxlbWVudHMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgZG9uZSA9IHRydWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGRvbmUpIHtcbiAgICAgICAgICAgICAgYS5kb25lKHBhcmFtcy5jb21wbGV0ZSk7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZWwuY29udGFpbmVyLnN0eWxlW3Byb3BdID0gY3VycmVudFZhbHVlICsgdW5pdDtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkb25lKSByZXR1cm47IC8vIFRoZW4gY2FsbFxuXG4gICAgICAgIGEuZnJhbWVJZCA9IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUocmVuZGVyKTtcbiAgICAgIH1cblxuICAgICAgYS5mcmFtZUlkID0gd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShyZW5kZXIpO1xuICAgICAgcmV0dXJuIGE7XG4gICAgfVxuXG4gIH07XG5cbiAgaWYgKGEuZWxlbWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIGVscztcbiAgfVxuXG4gIGxldCBhbmltYXRlSW5zdGFuY2U7XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBhLmVsZW1lbnRzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgaWYgKGEuZWxlbWVudHNbaV0uZG9tN0FuaW1hdGVJbnN0YW5jZSkge1xuICAgICAgYW5pbWF0ZUluc3RhbmNlID0gYS5lbGVtZW50c1tpXS5kb203QW5pbWF0ZUluc3RhbmNlO1xuICAgIH0gZWxzZSBhLmVsZW1lbnRzW2ldLmRvbTdBbmltYXRlSW5zdGFuY2UgPSBhO1xuICB9XG5cbiAgaWYgKCFhbmltYXRlSW5zdGFuY2UpIHtcbiAgICBhbmltYXRlSW5zdGFuY2UgPSBhO1xuICB9XG5cbiAgaWYgKGluaXRpYWxQcm9wcyA9PT0gJ3N0b3AnKSB7XG4gICAgYW5pbWF0ZUluc3RhbmNlLnN0b3AoKTtcbiAgfSBlbHNlIHtcbiAgICBhbmltYXRlSW5zdGFuY2UuYW5pbWF0ZShhLnByb3BzLCBhLnBhcmFtcyk7XG4gIH1cblxuICByZXR1cm4gZWxzO1xufVxuXG5mdW5jdGlvbiBzdG9wKCkge1xuICBjb25zdCBlbHMgPSB0aGlzO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZWxzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgaWYgKGVsc1tpXS5kb203QW5pbWF0ZUluc3RhbmNlKSB7XG4gICAgICBlbHNbaV0uZG9tN0FuaW1hdGVJbnN0YW5jZS5zdG9wKCk7XG4gICAgfVxuICB9XG59XG5cbmNvbnN0IG5vVHJpZ2dlciA9ICdyZXNpemUgc2Nyb2xsJy5zcGxpdCgnICcpO1xuXG5mdW5jdGlvbiBzaG9ydGN1dChuYW1lKSB7XG4gIGZ1bmN0aW9uIGV2ZW50SGFuZGxlciguLi5hcmdzKSB7XG4gICAgaWYgKHR5cGVvZiBhcmdzWzBdID09PSAndW5kZWZpbmVkJykge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICAgIGlmIChub1RyaWdnZXIuaW5kZXhPZihuYW1lKSA8IDApIHtcbiAgICAgICAgICBpZiAobmFtZSBpbiB0aGlzW2ldKSB0aGlzW2ldW25hbWVdKCk7ZWxzZSB7XG4gICAgICAgICAgICAkKHRoaXNbaV0pLnRyaWdnZXIobmFtZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLm9uKG5hbWUsIC4uLmFyZ3MpO1xuICB9XG5cbiAgcmV0dXJuIGV2ZW50SGFuZGxlcjtcbn1cblxuY29uc3QgY2xpY2sgPSBzaG9ydGN1dCgnY2xpY2snKTtcbmNvbnN0IGJsdXIgPSBzaG9ydGN1dCgnYmx1cicpO1xuY29uc3QgZm9jdXMgPSBzaG9ydGN1dCgnZm9jdXMnKTtcbmNvbnN0IGZvY3VzaW4gPSBzaG9ydGN1dCgnZm9jdXNpbicpO1xuY29uc3QgZm9jdXNvdXQgPSBzaG9ydGN1dCgnZm9jdXNvdXQnKTtcbmNvbnN0IGtleXVwID0gc2hvcnRjdXQoJ2tleXVwJyk7XG5jb25zdCBrZXlkb3duID0gc2hvcnRjdXQoJ2tleWRvd24nKTtcbmNvbnN0IGtleXByZXNzID0gc2hvcnRjdXQoJ2tleXByZXNzJyk7XG5jb25zdCBzdWJtaXQgPSBzaG9ydGN1dCgnc3VibWl0Jyk7XG5jb25zdCBjaGFuZ2UgPSBzaG9ydGN1dCgnY2hhbmdlJyk7XG5jb25zdCBtb3VzZWRvd24gPSBzaG9ydGN1dCgnbW91c2Vkb3duJyk7XG5jb25zdCBtb3VzZW1vdmUgPSBzaG9ydGN1dCgnbW91c2Vtb3ZlJyk7XG5jb25zdCBtb3VzZXVwID0gc2hvcnRjdXQoJ21vdXNldXAnKTtcbmNvbnN0IG1vdXNlZW50ZXIgPSBzaG9ydGN1dCgnbW91c2VlbnRlcicpO1xuY29uc3QgbW91c2VsZWF2ZSA9IHNob3J0Y3V0KCdtb3VzZWxlYXZlJyk7XG5jb25zdCBtb3VzZW91dCA9IHNob3J0Y3V0KCdtb3VzZW91dCcpO1xuY29uc3QgbW91c2VvdmVyID0gc2hvcnRjdXQoJ21vdXNlb3ZlcicpO1xuY29uc3QgdG91Y2hzdGFydCA9IHNob3J0Y3V0KCd0b3VjaHN0YXJ0Jyk7XG5jb25zdCB0b3VjaGVuZCA9IHNob3J0Y3V0KCd0b3VjaGVuZCcpO1xuY29uc3QgdG91Y2htb3ZlID0gc2hvcnRjdXQoJ3RvdWNobW92ZScpO1xuY29uc3QgcmVzaXplID0gc2hvcnRjdXQoJ3Jlc2l6ZScpO1xuY29uc3Qgc2Nyb2xsID0gc2hvcnRjdXQoJ3Njcm9sbCcpO1xuXG5leHBvcnQgZGVmYXVsdCAkO1xuZXhwb3J0IHsgJCwgYWRkLCBhZGRDbGFzcywgYW5pbWF0ZSwgYW5pbWF0aW9uRW5kLCBhcHBlbmQsIGFwcGVuZFRvLCBhdHRyLCBibHVyLCBjaGFuZ2UsIGNoaWxkcmVuLCBjbGljaywgY2xvc2VzdCwgY3NzLCBkYXRhLCBkYXRhc2V0LCBkZXRhY2gsIGVhY2gsIGVtcHR5LCBlcSwgZmlsdGVyLCBmaW5kLCBmb2N1cywgZm9jdXNpbiwgZm9jdXNvdXQsIGhhc0NsYXNzLCBoZWlnaHQsIGhpZGUsIGh0bWwsIGluZGV4LCBpbnNlcnRBZnRlciwgaW5zZXJ0QmVmb3JlLCBpcywga2V5ZG93biwga2V5cHJlc3MsIGtleXVwLCBtb3VzZWRvd24sIG1vdXNlZW50ZXIsIG1vdXNlbGVhdmUsIG1vdXNlbW92ZSwgbW91c2VvdXQsIG1vdXNlb3ZlciwgbW91c2V1cCwgbmV4dCwgbmV4dEFsbCwgb2ZmLCBvZmZzZXQsIG9uLCBvbmNlLCBvdXRlckhlaWdodCwgb3V0ZXJXaWR0aCwgcGFyZW50LCBwYXJlbnRzLCBwcmVwZW5kLCBwcmVwZW5kVG8sIHByZXYsIHByZXZBbGwsIHByb3AsIHJlbW92ZSwgcmVtb3ZlQXR0ciwgcmVtb3ZlQ2xhc3MsIHJlbW92ZURhdGEsIHJlc2l6ZSwgc2Nyb2xsLCBzY3JvbGxMZWZ0LCBzY3JvbGxUbywgc2Nyb2xsVG9wLCBzaG93LCBzaWJsaW5ncywgc3RvcCwgc3R5bGVzLCBzdWJtaXQsIHRleHQsIHRvZ2dsZUNsYXNzLCB0b3VjaGVuZCwgdG91Y2htb3ZlLCB0b3VjaHN0YXJ0LCB0cmFuc2Zvcm0sIHRyYW5zaXRpb24sIHRyYW5zaXRpb25FbmQsIHRyaWdnZXIsIHZhbCwgdmFsdWUsIHdpZHRoIH07XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/dom7/dom7.esm.js\n"); + +/***/ }), + +/***/ "./node_modules/ssr-window/ssr-window.esm.js": +/*!***************************************************!*\ + !*** ./node_modules/ssr-window/ssr-window.esm.js ***! + \***************************************************/ +/***/ (function(__unused_webpack___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 */ \"extend\": function() { return /* binding */ extend; },\n/* harmony export */ \"getDocument\": function() { return /* binding */ getDocument; },\n/* harmony export */ \"getWindow\": function() { return /* binding */ getWindow; },\n/* harmony export */ \"ssrDocument\": function() { return /* binding */ ssrDocument; },\n/* harmony export */ \"ssrWindow\": function() { return /* binding */ ssrWindow; }\n/* harmony export */ });\n/**\n * SSR Window 4.0.1\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: October 27, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target = {}, src = {}) {\n Object.keys(src).forEach((key) => {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nconst ssrDocument = {\n body: {},\n addEventListener() { },\n removeEventListener() { },\n activeElement: {\n blur() { },\n nodeName: '',\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() { },\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() { },\n getElementsByTagName() {\n return [];\n },\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState() { },\n pushState() { },\n go() { },\n back() { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() { },\n removeEventListener() { },\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n },\n };\n },\n Image() { },\n Date() { },\n screen: {},\n setTimeout() { },\n clearTimeout() { },\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3NyLXdpbmRvdy9zc3Itd2luZG93LmVzbS5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJCQUEyQixVQUFVO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQSxZQUFZO0FBQ1osMEJBQTBCO0FBQzFCLDZCQUE2QjtBQUM3QjtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsMkJBQTJCO0FBQzNCO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCLDhCQUE4QjtBQUM5QjtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLDBCQUEwQjtBQUMxQix1QkFBdUI7QUFDdkIsZ0JBQWdCO0FBQ2hCLGtCQUFrQjtBQUNsQixLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTCwwQkFBMEI7QUFDMUIsNkJBQTZCO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0EsS0FBSztBQUNMLGVBQWU7QUFDZixjQUFjO0FBQ2QsY0FBYztBQUNkLG9CQUFvQjtBQUNwQixzQkFBc0I7QUFDdEI7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWtFIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zc3Itd2luZG93L3Nzci13aW5kb3cuZXNtLmpzP2Y3NjIiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTU1IgV2luZG93IDQuMC4xXG4gKiBCZXR0ZXIgaGFuZGxpbmcgZm9yIHdpbmRvdyBvYmplY3QgaW4gU1NSIGVudmlyb25tZW50XG4gKiBodHRwczovL2dpdGh1Yi5jb20vbm9saW1pdHM0d2ViL3Nzci13aW5kb3dcbiAqXG4gKiBDb3B5cmlnaHQgMjAyMSwgVmxhZGltaXIgS2hhcmxhbXBpZGlcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBNSVRcbiAqXG4gKiBSZWxlYXNlZCBvbjogT2N0b2JlciAyNywgMjAyMVxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1wYXJhbS1yZWFzc2lnbiAqL1xuZnVuY3Rpb24gaXNPYmplY3Qob2JqKSB7XG4gICAgcmV0dXJuIChvYmogIT09IG51bGwgJiZcbiAgICAgICAgdHlwZW9mIG9iaiA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgJ2NvbnN0cnVjdG9yJyBpbiBvYmogJiZcbiAgICAgICAgb2JqLmNvbnN0cnVjdG9yID09PSBPYmplY3QpO1xufVxuZnVuY3Rpb24gZXh0ZW5kKHRhcmdldCA9IHt9LCBzcmMgPSB7fSkge1xuICAgIE9iamVjdC5rZXlzKHNyYykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgdGFyZ2V0W2tleV0gPT09ICd1bmRlZmluZWQnKVxuICAgICAgICAgICAgdGFyZ2V0W2tleV0gPSBzcmNba2V5XTtcbiAgICAgICAgZWxzZSBpZiAoaXNPYmplY3Qoc3JjW2tleV0pICYmXG4gICAgICAgICAgICBpc09iamVjdCh0YXJnZXRba2V5XSkgJiZcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKHNyY1trZXldKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBleHRlbmQodGFyZ2V0W2tleV0sIHNyY1trZXldKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuXG5jb25zdCBzc3JEb2N1bWVudCA9IHtcbiAgICBib2R5OiB7fSxcbiAgICBhZGRFdmVudExpc3RlbmVyKCkgeyB9LFxuICAgIHJlbW92ZUV2ZW50TGlzdGVuZXIoKSB7IH0sXG4gICAgYWN0aXZlRWxlbWVudDoge1xuICAgICAgICBibHVyKCkgeyB9LFxuICAgICAgICBub2RlTmFtZTogJycsXG4gICAgfSxcbiAgICBxdWVyeVNlbGVjdG9yKCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9LFxuICAgIHF1ZXJ5U2VsZWN0b3JBbGwoKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9LFxuICAgIGdldEVsZW1lbnRCeUlkKCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9LFxuICAgIGNyZWF0ZUV2ZW50KCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaW5pdEV2ZW50KCkgeyB9LFxuICAgICAgICB9O1xuICAgIH0sXG4gICAgY3JlYXRlRWxlbWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICAgICAgICAgIGNoaWxkTm9kZXM6IFtdLFxuICAgICAgICAgICAgc3R5bGU6IHt9LFxuICAgICAgICAgICAgc2V0QXR0cmlidXRlKCkgeyB9LFxuICAgICAgICAgICAgZ2V0RWxlbWVudHNCeVRhZ05hbWUoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9LFxuICAgIGNyZWF0ZUVsZW1lbnROUygpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgIH0sXG4gICAgaW1wb3J0Tm9kZSgpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSxcbiAgICBsb2NhdGlvbjoge1xuICAgICAgICBoYXNoOiAnJyxcbiAgICAgICAgaG9zdDogJycsXG4gICAgICAgIGhvc3RuYW1lOiAnJyxcbiAgICAgICAgaHJlZjogJycsXG4gICAgICAgIG9yaWdpbjogJycsXG4gICAgICAgIHBhdGhuYW1lOiAnJyxcbiAgICAgICAgcHJvdG9jb2w6ICcnLFxuICAgICAgICBzZWFyY2g6ICcnLFxuICAgIH0sXG59O1xuZnVuY3Rpb24gZ2V0RG9jdW1lbnQoKSB7XG4gICAgY29uc3QgZG9jID0gdHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJyA/IGRvY3VtZW50IDoge307XG4gICAgZXh0ZW5kKGRvYywgc3NyRG9jdW1lbnQpO1xuICAgIHJldHVybiBkb2M7XG59XG5cbmNvbnN0IHNzcldpbmRvdyA9IHtcbiAgICBkb2N1bWVudDogc3NyRG9jdW1lbnQsXG4gICAgbmF2aWdhdG9yOiB7XG4gICAgICAgIHVzZXJBZ2VudDogJycsXG4gICAgfSxcbiAgICBsb2NhdGlvbjoge1xuICAgICAgICBoYXNoOiAnJyxcbiAgICAgICAgaG9zdDogJycsXG4gICAgICAgIGhvc3RuYW1lOiAnJyxcbiAgICAgICAgaHJlZjogJycsXG4gICAgICAgIG9yaWdpbjogJycsXG4gICAgICAgIHBhdGhuYW1lOiAnJyxcbiAgICAgICAgcHJvdG9jb2w6ICcnLFxuICAgICAgICBzZWFyY2g6ICcnLFxuICAgIH0sXG4gICAgaGlzdG9yeToge1xuICAgICAgICByZXBsYWNlU3RhdGUoKSB7IH0sXG4gICAgICAgIHB1c2hTdGF0ZSgpIHsgfSxcbiAgICAgICAgZ28oKSB7IH0sXG4gICAgICAgIGJhY2soKSB7IH0sXG4gICAgfSxcbiAgICBDdXN0b21FdmVudDogZnVuY3Rpb24gQ3VzdG9tRXZlbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH0sXG4gICAgYWRkRXZlbnRMaXN0ZW5lcigpIHsgfSxcbiAgICByZW1vdmVFdmVudExpc3RlbmVyKCkgeyB9LFxuICAgIGdldENvbXB1dGVkU3R5bGUoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBnZXRQcm9wZXJ0eVZhbHVlKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgfSxcbiAgICBJbWFnZSgpIHsgfSxcbiAgICBEYXRlKCkgeyB9LFxuICAgIHNjcmVlbjoge30sXG4gICAgc2V0VGltZW91dCgpIHsgfSxcbiAgICBjbGVhclRpbWVvdXQoKSB7IH0sXG4gICAgbWF0Y2hNZWRpYSgpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgIH0sXG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGNhbGxiYWNrKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygc2V0VGltZW91dCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2V0VGltZW91dChjYWxsYmFjaywgMCk7XG4gICAgfSxcbiAgICBjYW5jZWxBbmltYXRpb25GcmFtZShpZCkge1xuICAgICAgICBpZiAodHlwZW9mIHNldFRpbWVvdXQgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY2xlYXJUaW1lb3V0KGlkKTtcbiAgICB9LFxufTtcbmZ1bmN0aW9uIGdldFdpbmRvdygpIHtcbiAgICBjb25zdCB3aW4gPSB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyA/IHdpbmRvdyA6IHt9O1xuICAgIGV4dGVuZCh3aW4sIHNzcldpbmRvdyk7XG4gICAgcmV0dXJuIHdpbjtcbn1cblxuZXhwb3J0IHsgZXh0ZW5kLCBnZXREb2N1bWVudCwgZ2V0V2luZG93LCBzc3JEb2N1bWVudCwgc3NyV2luZG93IH07XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/ssr-window/ssr-window.esm.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/breakpoints/getBreakpoint.js": +/*!***************************************************************!*\ + !*** ./node_modules/swiper/core/breakpoints/getBreakpoint.js ***! + \***************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ getBreakpoint; }\n/* harmony export */ });\n/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ \"./node_modules/ssr-window/ssr-window.esm.js\");\n\nfunction getBreakpoint(breakpoints, base = 'window', containerEl) {\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvYnJlYWtwb2ludHMvZ2V0QnJlYWtwb2ludC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUF1QztBQUN4QjtBQUNmO0FBQ0E7QUFDQSxpQkFBaUIscURBQVM7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUEsa0JBQWtCLG1CQUFtQjtBQUNyQztBQUNBO0FBQ0E7QUFDQSxNQUFNOztBQUVOO0FBQ0EsMkNBQTJDLE1BQU07QUFDakQ7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvYnJlYWtwb2ludHMvZ2V0QnJlYWtwb2ludC5qcz9hOGViIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldFdpbmRvdyB9IGZyb20gJ3Nzci13aW5kb3cnO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0QnJlYWtwb2ludChicmVha3BvaW50cywgYmFzZSA9ICd3aW5kb3cnLCBjb250YWluZXJFbCkge1xuICBpZiAoIWJyZWFrcG9pbnRzIHx8IGJhc2UgPT09ICdjb250YWluZXInICYmICFjb250YWluZXJFbCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgbGV0IGJyZWFrcG9pbnQgPSBmYWxzZTtcbiAgY29uc3Qgd2luZG93ID0gZ2V0V2luZG93KCk7XG4gIGNvbnN0IGN1cnJlbnRIZWlnaHQgPSBiYXNlID09PSAnd2luZG93JyA/IHdpbmRvdy5pbm5lckhlaWdodCA6IGNvbnRhaW5lckVsLmNsaWVudEhlaWdodDtcbiAgY29uc3QgcG9pbnRzID0gT2JqZWN0LmtleXMoYnJlYWtwb2ludHMpLm1hcChwb2ludCA9PiB7XG4gICAgaWYgKHR5cGVvZiBwb2ludCA9PT0gJ3N0cmluZycgJiYgcG9pbnQuaW5kZXhPZignQCcpID09PSAwKSB7XG4gICAgICBjb25zdCBtaW5SYXRpbyA9IHBhcnNlRmxvYXQocG9pbnQuc3Vic3RyKDEpKTtcbiAgICAgIGNvbnN0IHZhbHVlID0gY3VycmVudEhlaWdodCAqIG1pblJhdGlvO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIHBvaW50XG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICB2YWx1ZTogcG9pbnQsXG4gICAgICBwb2ludFxuICAgIH07XG4gIH0pO1xuICBwb2ludHMuc29ydCgoYSwgYikgPT4gcGFyc2VJbnQoYS52YWx1ZSwgMTApIC0gcGFyc2VJbnQoYi52YWx1ZSwgMTApKTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkgKz0gMSkge1xuICAgIGNvbnN0IHtcbiAgICAgIHBvaW50LFxuICAgICAgdmFsdWVcbiAgICB9ID0gcG9pbnRzW2ldO1xuXG4gICAgaWYgKGJhc2UgPT09ICd3aW5kb3cnKSB7XG4gICAgICBpZiAod2luZG93Lm1hdGNoTWVkaWEoYChtaW4td2lkdGg6ICR7dmFsdWV9cHgpYCkubWF0Y2hlcykge1xuICAgICAgICBicmVha3BvaW50ID0gcG9pbnQ7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh2YWx1ZSA8PSBjb250YWluZXJFbC5jbGllbnRXaWR0aCkge1xuICAgICAgYnJlYWtwb2ludCA9IHBvaW50O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBicmVha3BvaW50IHx8ICdtYXgnO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/breakpoints/getBreakpoint.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/breakpoints/index.js": +/*!*******************************************************!*\ + !*** ./node_modules/swiper/core/breakpoints/index.js ***! + \*******************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _setBreakpoint_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setBreakpoint.js */ \"./node_modules/swiper/core/breakpoints/setBreakpoint.js\");\n/* harmony import */ var _getBreakpoint_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getBreakpoint.js */ \"./node_modules/swiper/core/breakpoints/getBreakpoint.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n setBreakpoint: _setBreakpoint_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n getBreakpoint: _getBreakpoint_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvYnJlYWtwb2ludHMvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQStDO0FBQ0E7QUFDL0MsK0RBQWU7QUFDZixlQUFlO0FBQ2YsZUFBZTtBQUNmLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N3aXBlci9jb3JlL2JyZWFrcG9pbnRzL2luZGV4LmpzPzdiYzAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHNldEJyZWFrcG9pbnQgZnJvbSAnLi9zZXRCcmVha3BvaW50LmpzJztcbmltcG9ydCBnZXRCcmVha3BvaW50IGZyb20gJy4vZ2V0QnJlYWtwb2ludC5qcyc7XG5leHBvcnQgZGVmYXVsdCB7XG4gIHNldEJyZWFrcG9pbnQsXG4gIGdldEJyZWFrcG9pbnRcbn07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/breakpoints/index.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/breakpoints/setBreakpoint.js": +/*!***************************************************************!*\ + !*** ./node_modules/swiper/core/breakpoints/setBreakpoint.js ***! + \***************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ setBreakpoint; }\n/* harmony export */ });\n/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ \"./node_modules/swiper/shared/utils.js\");\n\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\n\nfunction setBreakpoint() {\n const swiper = this;\n const {\n activeIndex,\n initialized,\n loopedSlides = 0,\n params,\n $el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasEnabled = params.enabled;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(`${params.containerModifierClass}grid ${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(`${params.containerModifierClass}grid`);\n\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n $el.addClass(`${params.containerModifierClass}grid-column`);\n }\n\n swiper.emitContainerClasses();\n }\n\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.extend)(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvYnJlYWtwb2ludHMvc2V0QnJlYWtwb2ludC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUErQzs7QUFFL0M7QUFDQTtBQUNBOztBQUVlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQSxvRkFBb0Y7O0FBRXBGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsdUJBQXVCLDhCQUE4QixPQUFPLDhCQUE4QjtBQUMxRjtBQUNBLElBQUk7QUFDSixvQkFBb0IsOEJBQThCOztBQUVsRDtBQUNBLHNCQUFzQiw4QkFBOEI7QUFDcEQ7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSxFQUFFLHdEQUFNO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N3aXBlci9jb3JlL2JyZWFrcG9pbnRzL3NldEJyZWFrcG9pbnQuanM/Y2YxNCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleHRlbmQgfSBmcm9tICcuLi8uLi9zaGFyZWQvdXRpbHMuanMnO1xuXG5jb25zdCBpc0dyaWRFbmFibGVkID0gKHN3aXBlciwgcGFyYW1zKSA9PiB7XG4gIHJldHVybiBzd2lwZXIuZ3JpZCAmJiBwYXJhbXMuZ3JpZCAmJiBwYXJhbXMuZ3JpZC5yb3dzID4gMTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHNldEJyZWFrcG9pbnQoKSB7XG4gIGNvbnN0IHN3aXBlciA9IHRoaXM7XG4gIGNvbnN0IHtcbiAgICBhY3RpdmVJbmRleCxcbiAgICBpbml0aWFsaXplZCxcbiAgICBsb29wZWRTbGlkZXMgPSAwLFxuICAgIHBhcmFtcyxcbiAgICAkZWxcbiAgfSA9IHN3aXBlcjtcbiAgY29uc3QgYnJlYWtwb2ludHMgPSBwYXJhbXMuYnJlYWtwb2ludHM7XG4gIGlmICghYnJlYWtwb2ludHMgfHwgYnJlYWtwb2ludHMgJiYgT2JqZWN0LmtleXMoYnJlYWtwb2ludHMpLmxlbmd0aCA9PT0gMCkgcmV0dXJuOyAvLyBHZXQgYnJlYWtwb2ludCBmb3Igd2luZG93IHdpZHRoIGFuZCB1cGRhdGUgcGFyYW1ldGVyc1xuXG4gIGNvbnN0IGJyZWFrcG9pbnQgPSBzd2lwZXIuZ2V0QnJlYWtwb2ludChicmVha3BvaW50cywgc3dpcGVyLnBhcmFtcy5icmVha3BvaW50c0Jhc2UsIHN3aXBlci5lbCk7XG4gIGlmICghYnJlYWtwb2ludCB8fCBzd2lwZXIuY3VycmVudEJyZWFrcG9pbnQgPT09IGJyZWFrcG9pbnQpIHJldHVybjtcbiAgY29uc3QgYnJlYWtwb2ludE9ubHlQYXJhbXMgPSBicmVha3BvaW50IGluIGJyZWFrcG9pbnRzID8gYnJlYWtwb2ludHNbYnJlYWtwb2ludF0gOiB1bmRlZmluZWQ7XG4gIGNvbnN0IGJyZWFrcG9pbnRQYXJhbXMgPSBicmVha3BvaW50T25seVBhcmFtcyB8fCBzd2lwZXIub3JpZ2luYWxQYXJhbXM7XG4gIGNvbnN0IHdhc011bHRpUm93ID0gaXNHcmlkRW5hYmxlZChzd2lwZXIsIHBhcmFtcyk7XG4gIGNvbnN0IGlzTXVsdGlSb3cgPSBpc0dyaWRFbmFibGVkKHN3aXBlciwgYnJlYWtwb2ludFBhcmFtcyk7XG4gIGNvbnN0IHdhc0VuYWJsZWQgPSBwYXJhbXMuZW5hYmxlZDtcblxuICBpZiAod2FzTXVsdGlSb3cgJiYgIWlzTXVsdGlSb3cpIHtcbiAgICAkZWwucmVtb3ZlQ2xhc3MoYCR7cGFyYW1zLmNvbnRhaW5lck1vZGlmaWVyQ2xhc3N9Z3JpZCAke3BhcmFtcy5jb250YWluZXJNb2RpZmllckNsYXNzfWdyaWQtY29sdW1uYCk7XG4gICAgc3dpcGVyLmVtaXRDb250YWluZXJDbGFzc2VzKCk7XG4gIH0gZWxzZSBpZiAoIXdhc011bHRpUm93ICYmIGlzTXVsdGlSb3cpIHtcbiAgICAkZWwuYWRkQ2xhc3MoYCR7cGFyYW1zLmNvbnRhaW5lck1vZGlmaWVyQ2xhc3N9Z3JpZGApO1xuXG4gICAgaWYgKGJyZWFrcG9pbnRQYXJhbXMuZ3JpZC5maWxsICYmIGJyZWFrcG9pbnRQYXJhbXMuZ3JpZC5maWxsID09PSAnY29sdW1uJyB8fCAhYnJlYWtwb2ludFBhcmFtcy5ncmlkLmZpbGwgJiYgcGFyYW1zLmdyaWQuZmlsbCA9PT0gJ2NvbHVtbicpIHtcbiAgICAgICRlbC5hZGRDbGFzcyhgJHtwYXJhbXMuY29udGFpbmVyTW9kaWZpZXJDbGFzc31ncmlkLWNvbHVtbmApO1xuICAgIH1cblxuICAgIHN3aXBlci5lbWl0Q29udGFpbmVyQ2xhc3NlcygpO1xuICB9XG5cbiAgY29uc3QgZGlyZWN0aW9uQ2hhbmdlZCA9IGJyZWFrcG9pbnRQYXJhbXMuZGlyZWN0aW9uICYmIGJyZWFrcG9pbnRQYXJhbXMuZGlyZWN0aW9uICE9PSBwYXJhbXMuZGlyZWN0aW9uO1xuICBjb25zdCBuZWVkc1JlTG9vcCA9IHBhcmFtcy5sb29wICYmIChicmVha3BvaW50UGFyYW1zLnNsaWRlc1BlclZpZXcgIT09IHBhcmFtcy5zbGlkZXNQZXJWaWV3IHx8IGRpcmVjdGlvbkNoYW5nZWQpO1xuXG4gIGlmIChkaXJlY3Rpb25DaGFuZ2VkICYmIGluaXRpYWxpemVkKSB7XG4gICAgc3dpcGVyLmNoYW5nZURpcmVjdGlvbigpO1xuICB9XG5cbiAgZXh0ZW5kKHN3aXBlci5wYXJhbXMsIGJyZWFrcG9pbnRQYXJhbXMpO1xuICBjb25zdCBpc0VuYWJsZWQgPSBzd2lwZXIucGFyYW1zLmVuYWJsZWQ7XG4gIE9iamVjdC5hc3NpZ24oc3dpcGVyLCB7XG4gICAgYWxsb3dUb3VjaE1vdmU6IHN3aXBlci5wYXJhbXMuYWxsb3dUb3VjaE1vdmUsXG4gICAgYWxsb3dTbGlkZU5leHQ6IHN3aXBlci5wYXJhbXMuYWxsb3dTbGlkZU5leHQsXG4gICAgYWxsb3dTbGlkZVByZXY6IHN3aXBlci5wYXJhbXMuYWxsb3dTbGlkZVByZXZcbiAgfSk7XG5cbiAgaWYgKHdhc0VuYWJsZWQgJiYgIWlzRW5hYmxlZCkge1xuICAgIHN3aXBlci5kaXNhYmxlKCk7XG4gIH0gZWxzZSBpZiAoIXdhc0VuYWJsZWQgJiYgaXNFbmFibGVkKSB7XG4gICAgc3dpcGVyLmVuYWJsZSgpO1xuICB9XG5cbiAgc3dpcGVyLmN1cnJlbnRCcmVha3BvaW50ID0gYnJlYWtwb2ludDtcbiAgc3dpcGVyLmVtaXQoJ19iZWZvcmVCcmVha3BvaW50JywgYnJlYWtwb2ludFBhcmFtcyk7XG5cbiAgaWYgKG5lZWRzUmVMb29wICYmIGluaXRpYWxpemVkKSB7XG4gICAgc3dpcGVyLmxvb3BEZXN0cm95KCk7XG4gICAgc3dpcGVyLmxvb3BDcmVhdGUoKTtcbiAgICBzd2lwZXIudXBkYXRlU2xpZGVzKCk7XG4gICAgc3dpcGVyLnNsaWRlVG8oYWN0aXZlSW5kZXggLSBsb29wZWRTbGlkZXMgKyBzd2lwZXIubG9vcGVkU2xpZGVzLCAwLCBmYWxzZSk7XG4gIH1cblxuICBzd2lwZXIuZW1pdCgnYnJlYWtwb2ludCcsIGJyZWFrcG9pbnRQYXJhbXMpO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/breakpoints/setBreakpoint.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/check-overflow/index.js": +/*!**********************************************************!*\ + !*** ./node_modules/swiper/core/check-overflow/index.js ***! + \**********************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\nfunction checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n checkOverflow\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvY2hlY2stb3ZlcmZsb3cvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLElBQUk7O0FBRUo7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrREFBZTtBQUNmO0FBQ0EsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvY2hlY2stb3ZlcmZsb3cvaW5kZXguanM/MmU1MiJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBjaGVja092ZXJmbG93KCkge1xuICBjb25zdCBzd2lwZXIgPSB0aGlzO1xuICBjb25zdCB7XG4gICAgaXNMb2NrZWQ6IHdhc0xvY2tlZCxcbiAgICBwYXJhbXNcbiAgfSA9IHN3aXBlcjtcbiAgY29uc3Qge1xuICAgIHNsaWRlc09mZnNldEJlZm9yZVxuICB9ID0gcGFyYW1zO1xuXG4gIGlmIChzbGlkZXNPZmZzZXRCZWZvcmUpIHtcbiAgICBjb25zdCBsYXN0U2xpZGVJbmRleCA9IHN3aXBlci5zbGlkZXMubGVuZ3RoIC0gMTtcbiAgICBjb25zdCBsYXN0U2xpZGVSaWdodEVkZ2UgPSBzd2lwZXIuc2xpZGVzR3JpZFtsYXN0U2xpZGVJbmRleF0gKyBzd2lwZXIuc2xpZGVzU2l6ZXNHcmlkW2xhc3RTbGlkZUluZGV4XSArIHNsaWRlc09mZnNldEJlZm9yZSAqIDI7XG4gICAgc3dpcGVyLmlzTG9ja2VkID0gc3dpcGVyLnNpemUgPiBsYXN0U2xpZGVSaWdodEVkZ2U7XG4gIH0gZWxzZSB7XG4gICAgc3dpcGVyLmlzTG9ja2VkID0gc3dpcGVyLnNuYXBHcmlkLmxlbmd0aCA9PT0gMTtcbiAgfVxuXG4gIGlmIChwYXJhbXMuYWxsb3dTbGlkZU5leHQgPT09IHRydWUpIHtcbiAgICBzd2lwZXIuYWxsb3dTbGlkZU5leHQgPSAhc3dpcGVyLmlzTG9ja2VkO1xuICB9XG5cbiAgaWYgKHBhcmFtcy5hbGxvd1NsaWRlUHJldiA9PT0gdHJ1ZSkge1xuICAgIHN3aXBlci5hbGxvd1NsaWRlUHJldiA9ICFzd2lwZXIuaXNMb2NrZWQ7XG4gIH1cblxuICBpZiAod2FzTG9ja2VkICYmIHdhc0xvY2tlZCAhPT0gc3dpcGVyLmlzTG9ja2VkKSB7XG4gICAgc3dpcGVyLmlzRW5kID0gZmFsc2U7XG4gIH1cblxuICBpZiAod2FzTG9ja2VkICE9PSBzd2lwZXIuaXNMb2NrZWQpIHtcbiAgICBzd2lwZXIuZW1pdChzd2lwZXIuaXNMb2NrZWQgPyAnbG9jaycgOiAndW5sb2NrJyk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBjaGVja092ZXJmbG93XG59OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/check-overflow/index.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/classes/addClasses.js": +/*!********************************************************!*\ + !*** ./node_modules/swiper/core/classes/addClasses.js ***! + \********************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ addClasses; }\n/* harmony export */ });\nfunction prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\n\nfunction addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n $el,\n device,\n support\n } = swiper; // prettier-ignore\n\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': !support.touch\n }, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n $el.addClass([...classNames].join(' '));\n swiper.emitContainerClasses();\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvY2xhc3Nlcy9hZGRDbGFzc2VzLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLE1BQU07QUFDTjtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7O0FBRWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxVQUFVOztBQUVkO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxHQUFHO0FBQ0g7QUFDQSxHQUFHO0FBQ0g7QUFDQSxHQUFHO0FBQ0g7QUFDQSxHQUFHO0FBQ0g7QUFDQSxHQUFHO0FBQ0g7QUFDQSxHQUFHO0FBQ0g7QUFDQSxHQUFHO0FBQ0g7QUFDQSxHQUFHO0FBQ0g7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N3aXBlci9jb3JlL2NsYXNzZXMvYWRkQ2xhc3Nlcy5qcz85MmRlIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIHByZXBhcmVDbGFzc2VzKGVudHJpZXMsIHByZWZpeCkge1xuICBjb25zdCByZXN1bHRDbGFzc2VzID0gW107XG4gIGVudHJpZXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnKSB7XG4gICAgICBPYmplY3Qua2V5cyhpdGVtKS5mb3JFYWNoKGNsYXNzTmFtZXMgPT4ge1xuICAgICAgICBpZiAoaXRlbVtjbGFzc05hbWVzXSkge1xuICAgICAgICAgIHJlc3VsdENsYXNzZXMucHVzaChwcmVmaXggKyBjbGFzc05hbWVzKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgaXRlbSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJlc3VsdENsYXNzZXMucHVzaChwcmVmaXggKyBpdGVtKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gcmVzdWx0Q2xhc3Nlcztcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gYWRkQ2xhc3NlcygpIHtcbiAgY29uc3Qgc3dpcGVyID0gdGhpcztcbiAgY29uc3Qge1xuICAgIGNsYXNzTmFtZXMsXG4gICAgcGFyYW1zLFxuICAgIHJ0bCxcbiAgICAkZWwsXG4gICAgZGV2aWNlLFxuICAgIHN1cHBvcnRcbiAgfSA9IHN3aXBlcjsgLy8gcHJldHRpZXItaWdub3JlXG5cbiAgY29uc3Qgc3VmZml4ZXMgPSBwcmVwYXJlQ2xhc3NlcyhbJ2luaXRpYWxpemVkJywgcGFyYW1zLmRpcmVjdGlvbiwge1xuICAgICdwb2ludGVyLWV2ZW50cyc6ICFzdXBwb3J0LnRvdWNoXG4gIH0sIHtcbiAgICAnZnJlZS1tb2RlJzogc3dpcGVyLnBhcmFtcy5mcmVlTW9kZSAmJiBwYXJhbXMuZnJlZU1vZGUuZW5hYmxlZFxuICB9LCB7XG4gICAgJ2F1dG9oZWlnaHQnOiBwYXJhbXMuYXV0b0hlaWdodFxuICB9LCB7XG4gICAgJ3J0bCc6IHJ0bFxuICB9LCB7XG4gICAgJ2dyaWQnOiBwYXJhbXMuZ3JpZCAmJiBwYXJhbXMuZ3JpZC5yb3dzID4gMVxuICB9LCB7XG4gICAgJ2dyaWQtY29sdW1uJzogcGFyYW1zLmdyaWQgJiYgcGFyYW1zLmdyaWQucm93cyA+IDEgJiYgcGFyYW1zLmdyaWQuZmlsbCA9PT0gJ2NvbHVtbidcbiAgfSwge1xuICAgICdhbmRyb2lkJzogZGV2aWNlLmFuZHJvaWRcbiAgfSwge1xuICAgICdpb3MnOiBkZXZpY2UuaW9zXG4gIH0sIHtcbiAgICAnY3NzLW1vZGUnOiBwYXJhbXMuY3NzTW9kZVxuICB9LCB7XG4gICAgJ2NlbnRlcmVkJzogcGFyYW1zLmNzc01vZGUgJiYgcGFyYW1zLmNlbnRlcmVkU2xpZGVzXG4gIH1dLCBwYXJhbXMuY29udGFpbmVyTW9kaWZpZXJDbGFzcyk7XG4gIGNsYXNzTmFtZXMucHVzaCguLi5zdWZmaXhlcyk7XG4gICRlbC5hZGRDbGFzcyhbLi4uY2xhc3NOYW1lc10uam9pbignICcpKTtcbiAgc3dpcGVyLmVtaXRDb250YWluZXJDbGFzc2VzKCk7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/classes/addClasses.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/classes/index.js": +/*!***************************************************!*\ + !*** ./node_modules/swiper/core/classes/index.js ***! + \***************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _addClasses_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./addClasses.js */ \"./node_modules/swiper/core/classes/addClasses.js\");\n/* harmony import */ var _removeClasses_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./removeClasses.js */ \"./node_modules/swiper/core/classes/removeClasses.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n addClasses: _addClasses_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n removeClasses: _removeClasses_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvY2xhc3Nlcy9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7QUFBeUM7QUFDTTtBQUMvQywrREFBZTtBQUNmLFlBQVk7QUFDWixlQUFlO0FBQ2YsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvY2xhc3Nlcy9pbmRleC5qcz9kMjkwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhZGRDbGFzc2VzIGZyb20gJy4vYWRkQ2xhc3Nlcy5qcyc7XG5pbXBvcnQgcmVtb3ZlQ2xhc3NlcyBmcm9tICcuL3JlbW92ZUNsYXNzZXMuanMnO1xuZXhwb3J0IGRlZmF1bHQge1xuICBhZGRDbGFzc2VzLFxuICByZW1vdmVDbGFzc2VzXG59OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/classes/index.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/classes/removeClasses.js": +/*!***********************************************************!*\ + !*** ./node_modules/swiper/core/classes/removeClasses.js ***! + \***********************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ removeClasses; }\n/* harmony export */ });\nfunction removeClasses() {\n const swiper = this;\n const {\n $el,\n classNames\n } = swiper;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvY2xhc3Nlcy9yZW1vdmVDbGFzc2VzLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvY2xhc3Nlcy9yZW1vdmVDbGFzc2VzLmpzPzdmZjAiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcmVtb3ZlQ2xhc3NlcygpIHtcbiAgY29uc3Qgc3dpcGVyID0gdGhpcztcbiAgY29uc3Qge1xuICAgICRlbCxcbiAgICBjbGFzc05hbWVzXG4gIH0gPSBzd2lwZXI7XG4gICRlbC5yZW1vdmVDbGFzcyhjbGFzc05hbWVzLmpvaW4oJyAnKSk7XG4gIHN3aXBlci5lbWl0Q29udGFpbmVyQ2xhc3NlcygpO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/classes/removeClasses.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/core.js": +/*!******************************************!*\ + !*** ./node_modules/swiper/core/core.js ***! + \******************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ \"./node_modules/ssr-window/ssr-window.esm.js\");\n/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/dom.js */ \"./node_modules/swiper/shared/dom.js\");\n/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/utils.js */ \"./node_modules/swiper/shared/utils.js\");\n/* harmony import */ var _shared_get_support_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared/get-support.js */ \"./node_modules/swiper/shared/get-support.js\");\n/* harmony import */ var _shared_get_device_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../shared/get-device.js */ \"./node_modules/swiper/shared/get-device.js\");\n/* harmony import */ var _shared_get_browser_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../shared/get-browser.js */ \"./node_modules/swiper/shared/get-browser.js\");\n/* harmony import */ var _modules_resize_resize_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./modules/resize/resize.js */ \"./node_modules/swiper/core/modules/resize/resize.js\");\n/* harmony import */ var _modules_observer_observer_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./modules/observer/observer.js */ \"./node_modules/swiper/core/modules/observer/observer.js\");\n/* harmony import */ var _events_emitter_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./events-emitter.js */ \"./node_modules/swiper/core/events-emitter.js\");\n/* harmony import */ var _update_index_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./update/index.js */ \"./node_modules/swiper/core/update/index.js\");\n/* harmony import */ var _translate_index_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./translate/index.js */ \"./node_modules/swiper/core/translate/index.js\");\n/* harmony import */ var _transition_index_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./transition/index.js */ \"./node_modules/swiper/core/transition/index.js\");\n/* harmony import */ var _slide_index_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./slide/index.js */ \"./node_modules/swiper/core/slide/index.js\");\n/* harmony import */ var _loop_index_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./loop/index.js */ \"./node_modules/swiper/core/loop/index.js\");\n/* harmony import */ var _grab_cursor_index_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./grab-cursor/index.js */ \"./node_modules/swiper/core/grab-cursor/index.js\");\n/* harmony import */ var _events_index_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./events/index.js */ \"./node_modules/swiper/core/events/index.js\");\n/* harmony import */ var _breakpoints_index_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./breakpoints/index.js */ \"./node_modules/swiper/core/breakpoints/index.js\");\n/* harmony import */ var _classes_index_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./classes/index.js */ \"./node_modules/swiper/core/classes/index.js\");\n/* harmony import */ var _images_index_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./images/index.js */ \"./node_modules/swiper/core/images/index.js\");\n/* harmony import */ var _check_overflow_index_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./check-overflow/index.js */ \"./node_modules/swiper/core/check-overflow/index.js\");\n/* harmony import */ var _defaults_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./defaults.js */ \"./node_modules/swiper/core/defaults.js\");\n/* harmony import */ var _moduleExtendParams_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./moduleExtendParams.js */ \"./node_modules/swiper/core/moduleExtendParams.js\");\n/* eslint no-param-reassign: \"off\" */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst prototypes = {\n eventsEmitter: _events_emitter_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"],\n update: _update_index_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"],\n translate: _translate_index_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"],\n transition: _transition_index_js__WEBPACK_IMPORTED_MODULE_11__[\"default\"],\n slide: _slide_index_js__WEBPACK_IMPORTED_MODULE_12__[\"default\"],\n loop: _loop_index_js__WEBPACK_IMPORTED_MODULE_13__[\"default\"],\n grabCursor: _grab_cursor_index_js__WEBPACK_IMPORTED_MODULE_14__[\"default\"],\n events: _events_index_js__WEBPACK_IMPORTED_MODULE_15__[\"default\"],\n breakpoints: _breakpoints_index_js__WEBPACK_IMPORTED_MODULE_16__[\"default\"],\n checkOverflow: _check_overflow_index_js__WEBPACK_IMPORTED_MODULE_19__[\"default\"],\n classes: _classes_index_js__WEBPACK_IMPORTED_MODULE_17__[\"default\"],\n images: _images_index_js__WEBPACK_IMPORTED_MODULE_18__[\"default\"]\n};\nconst extendedDefaults = {};\n\nclass Swiper {\n constructor(...args) {\n let el;\n let params;\n\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n\n if (!params) params = {};\n params = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.extend)({}, params);\n if (el && !params.el) params.el = el;\n\n if (params.el && (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(params.el).length > 1) {\n const swipers = [];\n (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(params.el).each(containerEl => {\n const newParams = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.extend)({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n } // Swiper Instance\n\n\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = (0,_shared_get_support_js__WEBPACK_IMPORTED_MODULE_3__.getSupport)();\n swiper.device = (0,_shared_get_device_js__WEBPACK_IMPORTED_MODULE_4__.getDevice)({\n userAgent: params.userAgent\n });\n swiper.browser = (0,_shared_get_browser_js__WEBPACK_IMPORTED_MODULE_5__.getBrowser)();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n swiper,\n extendParams: (0,_moduleExtendParams_js__WEBPACK_IMPORTED_MODULE_21__[\"default\"])(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n }); // Extend defaults with modules params\n\n const swiperParams = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.extend)({}, _defaults_js__WEBPACK_IMPORTED_MODULE_20__[\"default\"], allModulesParams); // Extend defaults with passed params\n\n swiper.params = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.extend)({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.extend)({}, swiper.params);\n swiper.passedParams = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.extend)({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n\n swiper.$ = _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; // Extend Swiper\n\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n const touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n const desktop = ['pointerdown', 'pointermove', 'pointerup'];\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.now)(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n\n\n return swiper;\n }\n\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n swiper.emit('enable');\n }\n\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n\n swiper.emit('disable');\n }\n\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n\n getSlideClasses(slideEl) {\n const swiper = this;\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.each(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n\n slidesPerViewDynamic(view = 'current', exact = false) {\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\n\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n\n return spv;\n }\n\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n let translated;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n }\n\n changeDirection(newDirection, needUpdate = true) {\n const swiper = this;\n const currentDirection = swiper.params.direction;\n\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n\n swiper.$el.removeClass(`${swiper.params.containerModifierClass}${currentDirection}`).addClass(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n\n mount(el) {\n const swiper = this;\n if (swiper.mounted) return true; // Find el\n\n const $el = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(el || swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return false;\n }\n\n el.swiper = swiper;\n\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n res.children = options => $el.children(options);\n\n return res;\n }\n\n return $el.children(getWrapperSelector());\n }; // Find Wrapper\n\n\n let $wrapperEl = getWrapper();\n\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\n const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)();\n const wrapper = document.createElement('div');\n $wrapperEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(`.${swiper.params.slideClass}`).each(slideEl => {\n $wrapperEl.append(slideEl);\n });\n }\n\n Object.assign(swiper, {\n $el,\n el,\n $wrapperEl,\n wrapperEl: $wrapperEl[0],\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box'\n });\n return true;\n }\n\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n\n destroy(deleteInstance = true, cleanStyles = true) {\n const swiper = this;\n const {\n params,\n $el,\n $wrapperEl,\n slides\n } = swiper;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.deleteProps)(swiper);\n }\n\n swiper.destroyed = true;\n return null;\n }\n\n static extendDefaults(newDefaults) {\n (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.extend)(extendedDefaults, newDefaults);\n }\n\n static get extendedDefaults() {\n return extendedDefaults;\n }\n\n static get defaults() {\n return _defaults_js__WEBPACK_IMPORTED_MODULE_20__[\"default\"];\n }\n\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n }\n\n}\n\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([_modules_resize_resize_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"], _modules_observer_observer_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"]]);\n/* harmony default export */ __webpack_exports__[\"default\"] = (Swiper);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvY29yZS5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ3lDO0FBQ1I7QUFDNkI7QUFDUjtBQUNGO0FBQ0U7QUFDTjtBQUNNO0FBQ047QUFDVDtBQUNNO0FBQ0U7QUFDVjtBQUNGO0FBQ2E7QUFDVDtBQUNVO0FBQ1I7QUFDRjtBQUNlO0FBQ2pCO0FBQ29CO0FBQ3pEO0FBQ0EsZUFBZTtBQUNmLFFBQVE7QUFDUixXQUFXO0FBQ1gsWUFBWTtBQUNaLE9BQU87QUFDUCxNQUFNO0FBQ04sWUFBWTtBQUNaLFFBQVE7QUFDUixhQUFhO0FBQ2IsZUFBZTtBQUNmLFNBQVM7QUFDVCxRQUFRO0FBQ1I7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7QUFDQSxhQUFhLHdEQUFNLEdBQUc7QUFDdEI7O0FBRUEscUJBQXFCLDBEQUFDO0FBQ3RCO0FBQ0EsTUFBTSwwREFBQztBQUNQLDBCQUEwQix3REFBTSxHQUFHO0FBQ25DO0FBQ0EsU0FBUztBQUNUO0FBQ0EsT0FBTztBQUNQO0FBQ0EsTUFBTTs7O0FBR047QUFDQTtBQUNBLHFCQUFxQixrRUFBVTtBQUMvQixvQkFBb0IsZ0VBQVM7QUFDN0I7QUFDQSxLQUFLO0FBQ0wscUJBQXFCLGtFQUFVO0FBQy9CO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsbUVBQWtCO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLEtBQUssR0FBRzs7QUFFUix5QkFBeUIsd0RBQU0sR0FBRyxFQUFFLHFEQUFRLHFCQUFxQjs7QUFFakUsb0JBQW9CLHdEQUFNLEdBQUc7QUFDN0IsNEJBQTRCLHdEQUFNLEdBQUc7QUFDckMsMEJBQTBCLHdEQUFNLEdBQUcsV0FBVzs7QUFFOUM7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQOztBQUVBO0FBQ0E7QUFDQSxNQUFNOzs7QUFHTixlQUFlLHNEQUFDLEVBQUU7O0FBRWxCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMsMERBQUM7QUFDZjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsT0FBTzs7QUFFUDtBQUNBO0FBQ0EsT0FBTzs7QUFFUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIscURBQUc7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCw0QkFBNEI7O0FBRTVCO0FBQ0E7QUFDQSxNQUFNOzs7QUFHTjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtB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RSxxRUFBUTtBQUM1QiwrREFBZSxNQUFNIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zd2lwZXIvY29yZS9jb3JlLmpzPzNkNDYiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50IG5vLXBhcmFtLXJlYXNzaWduOiBcIm9mZlwiICovXG5pbXBvcnQgeyBnZXREb2N1bWVudCB9IGZyb20gJ3Nzci13aW5kb3cnO1xuaW1wb3J0ICQgZnJvbSAnLi4vc2hhcmVkL2RvbS5qcyc7XG5pbXBvcnQgeyBleHRlbmQsIG5vdywgZGVsZXRlUHJvcHMgfSBmcm9tICcuLi9zaGFyZWQvdXRpbHMuanMnO1xuaW1wb3J0IHsgZ2V0U3VwcG9ydCB9IGZyb20gJy4uL3NoYXJlZC9nZXQtc3VwcG9ydC5qcyc7XG5pbXBvcnQgeyBnZXREZXZpY2UgfSBmcm9tICcuLi9zaGFyZWQvZ2V0LWRldmljZS5qcyc7XG5pbXBvcnQgeyBnZXRCcm93c2VyIH0gZnJvbSAnLi4vc2hhcmVkL2dldC1icm93c2VyLmpzJztcbmltcG9ydCBSZXNpemUgZnJvbSAnLi9tb2R1bGVzL3Jlc2l6ZS9yZXNpemUuanMnO1xuaW1wb3J0IE9ic2VydmVyIGZyb20gJy4vbW9kdWxlcy9vYnNlcnZlci9vYnNlcnZlci5qcyc7XG5pbXBvcnQgZXZlbnRzRW1pdHRlciBmcm9tICcuL2V2ZW50cy1lbWl0dGVyLmpzJztcbmltcG9ydCB1cGRhdGUgZnJvbSAnLi91cGRhdGUvaW5kZXguanMnO1xuaW1wb3J0IHRyYW5zbGF0ZSBmcm9tICcuL3RyYW5zbGF0ZS9pbmRleC5qcyc7XG5pbXBvcnQgdHJhbnNpdGlvbiBmcm9tICcuL3RyYW5zaXRpb24vaW5kZXguanMnO1xuaW1wb3J0IHNsaWRlIGZyb20gJy4vc2xpZGUvaW5kZXguanMnO1xuaW1wb3J0IGxvb3AgZnJvbSAnLi9sb29wL2luZGV4LmpzJztcbmltcG9ydCBncmFiQ3Vyc29yIGZyb20gJy4vZ3JhYi1jdXJzb3IvaW5kZXguanMnO1xuaW1wb3J0IGV2ZW50cyBmcm9tICcuL2V2ZW50cy9pbmRleC5qcyc7XG5pbXBvcnQgYnJlYWtwb2ludHMgZnJvbSAnLi9icmVha3BvaW50cy9pbmRleC5qcyc7XG5pbXBvcnQgY2xhc3NlcyBmcm9tICcuL2NsYXNzZXMvaW5kZXguanMnO1xuaW1wb3J0IGltYWdlcyBmcm9tICcuL2ltYWdlcy9pbmRleC5qcyc7XG5pbXBvcnQgY2hlY2tPdmVyZmxvdyBmcm9tICcuL2NoZWNrLW92ZXJmbG93L2luZGV4LmpzJztcbmltcG9ydCBkZWZhdWx0cyBmcm9tICcuL2RlZmF1bHRzLmpzJztcbmltcG9ydCBtb2R1bGVFeHRlbmRQYXJhbXMgZnJvbSAnLi9tb2R1bGVFeHRlbmRQYXJhbXMuanMnO1xuY29uc3QgcHJvdG90eXBlcyA9IHtcbiAgZXZlbnRzRW1pdHRlcixcbiAgdXBkYXRlLFxuICB0cmFuc2xhdGUsXG4gIHRyYW5zaXRpb24sXG4gIHNsaWRlLFxuICBsb29wLFxuICBncmFiQ3Vyc29yLFxuICBldmVudHMsXG4gIGJyZWFrcG9pbnRzLFxuICBjaGVja092ZXJmbG93LFxuICBjbGFzc2VzLFxuICBpbWFnZXNcbn07XG5jb25zdCBleHRlbmRlZERlZmF1bHRzID0ge307XG5cbmNsYXNzIFN3aXBlciB7XG4gIGNvbnN0cnVjdG9yKC4uLmFyZ3MpIHtcbiAgICBsZXQgZWw7XG4gICAgbGV0IHBhcmFtcztcblxuICAgIGlmIChhcmdzLmxlbmd0aCA9PT0gMSAmJiBhcmdzWzBdLmNvbnN0cnVjdG9yICYmIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhcmdzWzBdKS5zbGljZSg4LCAtMSkgPT09ICdPYmplY3QnKSB7XG4gICAgICBwYXJhbXMgPSBhcmdzWzBdO1xuICAgIH0gZWxzZSB7XG4gICAgICBbZWwsIHBhcmFtc10gPSBhcmdzO1xuICAgIH1cblxuICAgIGlmICghcGFyYW1zKSBwYXJhbXMgPSB7fTtcbiAgICBwYXJhbXMgPSBleHRlbmQoe30sIHBhcmFtcyk7XG4gICAgaWYgKGVsICYmICFwYXJhbXMuZWwpIHBhcmFtcy5lbCA9IGVsO1xuXG4gICAgaWYgKHBhcmFtcy5lbCAmJiAkKHBhcmFtcy5lbCkubGVuZ3RoID4gMSkge1xuICAgICAgY29uc3Qgc3dpcGVycyA9IFtdO1xuICAgICAgJChwYXJhbXMuZWwpLmVhY2goY29udGFpbmVyRWwgPT4ge1xuICAgICAgICBjb25zdCBuZXdQYXJhbXMgPSBleHRlbmQoe30sIHBhcmFtcywge1xuICAgICAgICAgIGVsOiBjb250YWluZXJFbFxuICAgICAgICB9KTtcbiAgICAgICAgc3dpcGVycy5wdXNoKG5ldyBTd2lwZXIobmV3UGFyYW1zKSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBzd2lwZXJzO1xuICAgIH0gLy8gU3dpcGVyIEluc3RhbmNlXG5cblxuICAgIGNvbnN0IHN3aXBlciA9IHRoaXM7XG4gICAgc3dpcGVyLl9fc3dpcGVyX18gPSB0cnVlO1xuICAgIHN3aXBlci5zdXBwb3J0ID0gZ2V0U3VwcG9ydCgpO1xuICAgIHN3aXBlci5kZXZpY2UgPSBnZXREZXZpY2Uoe1xuICAgICAgdXNlckFnZW50OiBwYXJhbXMudXNlckFnZW50XG4gICAgfSk7XG4gICAgc3dpcGVyLmJyb3dzZXIgPSBnZXRCcm93c2VyKCk7XG4gICAgc3dpcGVyLmV2ZW50c0xpc3RlbmVycyA9IHt9O1xuICAgIHN3aXBlci5ldmVudHNBbnlMaXN0ZW5lcnMgPSBbXTtcbiAgICBzd2lwZXIubW9kdWxlcyA9IFsuLi5zd2lwZXIuX19tb2R1bGVzX19dO1xuXG4gICAgaWYgKHBhcmFtcy5tb2R1bGVzICYmIEFycmF5LmlzQXJyYXkocGFyYW1zLm1vZHVsZXMpKSB7XG4gICAgICBzd2lwZXIubW9kdWxlcy5wdXNoKC4uLnBhcmFtcy5tb2R1bGVzKTtcbiAgICB9XG5cbiAgICBjb25zdCBhbGxNb2R1bGVzUGFyYW1zID0ge307XG4gICAgc3dpcGVyLm1vZHVsZXMuZm9yRWFjaChtb2QgPT4ge1xuICAgICAgbW9kKHtcbiAgICAgICAgc3dpcGVyLFxuICAgICAgICBleHRlbmRQYXJhbXM6IG1vZHVsZUV4dGVuZFBhcmFtcyhwYXJhbXMsIGFsbE1vZHVsZXNQYXJhbXMpLFxuICAgICAgICBvbjogc3dpcGVyLm9uLmJpbmQoc3dpcGVyKSxcbiAgICAgICAgb25jZTogc3dpcGVyLm9uY2UuYmluZChzd2lwZXIpLFxuICAgICAgICBvZmY6IHN3aXBlci5vZmYuYmluZChzd2lwZXIpLFxuICAgICAgICBlbWl0OiBzd2lwZXIuZW1pdC5iaW5kKHN3aXBlcilcbiAgICAgIH0pO1xuICAgIH0pOyAvLyBFeHRlbmQgZGVmYXVsdHMgd2l0aCBtb2R1bGVzIHBhcmFtc1xuXG4gICAgY29uc3Qgc3dpcGVyUGFyYW1zID0gZXh0ZW5kKHt9LCBkZWZhdWx0cywgYWxsTW9kdWxlc1BhcmFtcyk7IC8vIEV4dGVuZCBkZWZhdWx0cyB3aXRoIHBhc3NlZCBwYXJhbXNcblxuICAgIHN3aXBlci5wYXJhbXMgPSBleHRlbmQoe30sIHN3aXBlclBhcmFtcywgZXh0ZW5kZWREZWZhdWx0cywgcGFyYW1zKTtcbiAgICBzd2lwZXIub3JpZ2luYWxQYXJhbXMgPSBleHRlbmQoe30sIHN3aXBlci5wYXJhbXMpO1xuICAgIHN3aXBlci5wYXNzZWRQYXJhbXMgPSBleHRlbmQoe30sIHBhcmFtcyk7IC8vIGFkZCBldmVudCBsaXN0ZW5lcnNcblxuICAgIGlmIChzd2lwZXIucGFyYW1zICYmIHN3aXBlci5wYXJhbXMub24pIHtcbiAgICAgIE9iamVjdC5rZXlzKHN3aXBlci5wYXJhbXMub24pLmZvckVhY2goZXZlbnROYW1lID0+IHtcbiAgICAgICAgc3dpcGVyLm9uKGV2ZW50TmFtZSwgc3dpcGVyLnBhcmFtcy5vbltldmVudE5hbWVdKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChzd2lwZXIucGFyYW1zICYmIHN3aXBlci5wYXJhbXMub25BbnkpIHtcbiAgICAgIHN3aXBlci5vbkFueShzd2lwZXIucGFyYW1zLm9uQW55KTtcbiAgICB9IC8vIFNhdmUgRG9tIGxpYlxuXG5cbiAgICBzd2lwZXIuJCA9ICQ7IC8vIEV4dGVuZCBTd2lwZXJcblxuICAgIE9iamVjdC5hc3NpZ24oc3dpcGVyLCB7XG4gICAgICBlbmFibGVkOiBzd2lwZXIucGFyYW1zLmVuYWJsZWQsXG4gICAgICBlbCxcbiAgICAgIC8vIENsYXNzZXNcbiAgICAgIGNsYXNzTmFtZXM6IFtdLFxuICAgICAgLy8gU2xpZGVzXG4gICAgICBzbGlkZXM6ICQoKSxcbiAgICAgIHNsaWRlc0dyaWQ6IFtdLFxuICAgICAgc25hcEdyaWQ6IFtdLFxuICAgICAgc2xpZGVzU2l6ZXNHcmlkOiBbXSxcblxuICAgICAgLy8gaXNEaXJlY3Rpb25cbiAgICAgIGlzSG9yaXpvbnRhbCgpIHtcbiAgICAgICAgcmV0dXJuIHN3aXBlci5wYXJhbXMuZGlyZWN0aW9uID09PSAnaG9yaXpvbnRhbCc7XG4gICAgICB9LFxuXG4gICAgICBpc1ZlcnRpY2FsKCkge1xuICAgICAgICByZXR1cm4gc3dpcGVyLnBhcmFtcy5kaXJlY3Rpb24gPT09ICd2ZXJ0aWNhbCc7XG4gICAgICB9LFxuXG4gICAgICAvLyBJbmRleGVzXG4gICAgICBhY3RpdmVJbmRleDogMCxcbiAgICAgIHJlYWxJbmRleDogMCxcbiAgICAgIC8vXG4gICAgICBpc0JlZ2lubmluZzogdHJ1ZSxcbiAgICAgIGlzRW5kOiBmYWxzZSxcbiAgICAgIC8vIFByb3BzXG4gICAgICB0cmFuc2xhdGU6IDAsXG4gICAgICBwcmV2aW91c1RyYW5zbGF0ZTogMCxcbiAgICAgIHByb2dyZXNzOiAwLFxuICAgICAgdmVsb2NpdHk6IDAsXG4gICAgICBhbmltYXRpbmc6IGZhbHNlLFxuICAgICAgLy8gTG9ja3NcbiAgICAgIGFsbG93U2xpZGVOZXh0OiBzd2lwZXIucGFyYW1zLmFsbG93U2xpZGVOZXh0LFxuICAgICAgYWxsb3dTbGlkZVByZXY6IHN3aXBlci5wYXJhbXMuYWxsb3dTbGlkZVByZXYsXG4gICAgICAvLyBUb3VjaCBFdmVudHNcbiAgICAgIHRvdWNoRXZlbnRzOiBmdW5jdGlvbiB0b3VjaEV2ZW50cygpIHtcbiAgICAgICAgY29uc3QgdG91Y2ggPSBbJ3RvdWNoc3RhcnQnLCAndG91Y2htb3ZlJywgJ3RvdWNoZW5kJywgJ3RvdWNoY2FuY2VsJ107XG4gICAgICAgIGNvbnN0IGRlc2t0b3AgPSBbJ3BvaW50ZXJkb3duJywgJ3BvaW50ZXJtb3ZlJywgJ3BvaW50ZXJ1cCddO1xuICAgICAgICBzd2lwZXIudG91Y2hFdmVudHNUb3VjaCA9IHtcbiAgICAgICAgICBzdGFydDogdG91Y2hbMF0sXG4gICAgICAgICAgbW92ZTogdG91Y2hbMV0sXG4gICAgICAgICAgZW5kOiB0b3VjaFsyXSxcbiAgICAgICAgICBjYW5jZWw6IHRvdWNoWzNdXG4gICAgICAgIH07XG4gICAgICAgIHN3aXBlci50b3VjaEV2ZW50c0Rlc2t0b3AgPSB7XG4gICAgICAgICAgc3RhcnQ6IGRlc2t0b3BbMF0sXG4gICAgICAgICAgbW92ZTogZGVza3RvcFsxXSxcbiAgICAgICAgICBlbmQ6IGRlc2t0b3BbMl1cbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHN3aXBlci5zdXBwb3J0LnRvdWNoIHx8ICFzd2lwZXIucGFyYW1zLnNpbXVsYXRlVG91Y2ggPyBzd2lwZXIudG91Y2hFdmVudHNUb3VjaCA6IHN3aXBlci50b3VjaEV2ZW50c0Rlc2t0b3A7XG4gICAgICB9KCksXG4gICAgICB0b3VjaEV2ZW50c0RhdGE6IHtcbiAgICAgICAgaXNUb3VjaGVkOiB1bmRlZmluZWQsXG4gICAgICAgIGlzTW92ZWQ6IHVuZGVmaW5lZCxcbiAgICAgICAgYWxsb3dUb3VjaENhbGxiYWNrczogdW5kZWZpbmVkLFxuICAgICAgICB0b3VjaFN0YXJ0VGltZTogdW5kZWZpbmVkLFxuICAgICAgICBpc1Njcm9sbGluZzogdW5kZWZpbmVkLFxuICAgICAgICBjdXJyZW50VHJhbnNsYXRlOiB1bmRlZmluZWQsXG4gICAgICAgIHN0YXJ0VHJhbnNsYXRlOiB1bmRlZmluZWQsXG4gICAgICAgIGFsbG93VGhyZXNob2xkTW92ZTogdW5kZWZpbmVkLFxuICAgICAgICAvLyBGb3JtIGVsZW1lbnRzIHRvIG1hdGNoXG4gICAgICAgIGZvY3VzYWJsZUVsZW1lbnRzOiBzd2lwZXIucGFyYW1zLmZvY3VzYWJsZUVsZW1lbnRzLFxuICAgICAgICAvLyBMYXN0IGNsaWNrIHRpbWVcbiAgICAgICAgbGFzdENsaWNrVGltZTogbm93KCksXG4gICAgICAgIGNsaWNrVGltZW91dDogdW5kZWZpbmVkLFxuICAgICAgICAvLyBWZWxvY2l0aWVzXG4gICAgICAgIHZlbG9jaXRpZXM6IFtdLFxuICAgICAgICBhbGxvd01vbWVudHVtQm91bmNlOiB1bmRlZmluZWQsXG4gICAgICAgIGlzVG91Y2hFdmVudDogdW5kZWZpbmVkLFxuICAgICAgICBzdGFydE1vdmluZzogdW5kZWZpbmVkXG4gICAgICB9LFxuICAgICAgLy8gQ2xpY2tzXG4gICAgICBhbGxvd0NsaWNrOiB0cnVlLFxuICAgICAgLy8gVG91Y2hlc1xuICAgICAgYWxsb3dUb3VjaE1vdmU6IHN3aXBlci5wYXJhbXMuYWxsb3dUb3VjaE1vdmUsXG4gICAgICB0b3VjaGVzOiB7XG4gICAgICAgIHN0YXJ0WDogMCxcbiAgICAgICAgc3RhcnRZOiAwLFxuICAgICAgICBjdXJyZW50WDogMCxcbiAgICAgICAgY3VycmVudFk6IDAsXG4gICAgICAgIGRpZmY6IDBcbiAgICAgIH0sXG4gICAgICAvLyBJbWFnZXNcbiAgICAgIGltYWdlc1RvTG9hZDogW10sXG4gICAgICBpbWFnZXNMb2FkZWQ6IDBcbiAgICB9KTtcbiAgICBzd2lwZXIuZW1pdCgnX3N3aXBlcicpOyAvLyBJbml0XG5cbiAgICBpZiAoc3dpcGVyLnBhcmFtcy5pbml0KSB7XG4gICAgICBzd2lwZXIuaW5pdCgpO1xuICAgIH0gLy8gUmV0dXJuIGFwcCBpbnN0YW5jZVxuXG5cbiAgICByZXR1cm4gc3dpcGVyO1xuICB9XG5cbiAgZW5hYmxlKCkge1xuICAgIGNvbnN0IHN3aXBlciA9IHRoaXM7XG4gICAgaWYgKHN3aXBlci5lbmFibGVkKSByZXR1cm47XG4gICAgc3dpcGVyLmVuYWJsZWQgPSB0cnVlO1xuXG4gICAgaWYgKHN3aXBlci5wYXJhbXMuZ3JhYkN1cnNvcikge1xuICAgICAgc3dpcGVyLnNldEdyYWJDdXJzb3IoKTtcbiAgICB9XG5cbiAgICBzd2lwZXIuZW1pdCgnZW5hYmxlJyk7XG4gIH1cblxuICBkaXNhYmxlKCkge1xuICAgIGNvbnN0IHN3aXBlciA9IHRoaXM7XG4gICAgaWYgKCFzd2lwZXIuZW5hYmxlZCkgcmV0dXJuO1xuICAgIHN3aXBlci5lbmFibGVkID0gZmFsc2U7XG5cbiAgICBpZiAoc3dpcGVyLnBhcmFtcy5ncmFiQ3Vyc29yKSB7XG4gICAgICBzd2lwZXIudW5zZXRHcmFiQ3Vyc29yKCk7XG4gICAgfVxuXG4gICAgc3dpcGVyLmVtaXQoJ2Rpc2FibGUnKTtcbiAgfVxuXG4gIHNldFByb2dyZXNzKHByb2dyZXNzLCBzcGVlZCkge1xuICAgIGNvbnN0IHN3aXBlciA9IHRoaXM7XG4gICAgcHJvZ3Jlc3MgPSBNYXRoLm1pbihNYXRoLm1heChwcm9ncmVzcywgMCksIDEpO1xuICAgIGNvbnN0IG1pbiA9IHN3aXBlci5taW5UcmFuc2xhdGUoKTtcbiAgICBjb25zdCBtYXggPSBzd2lwZXIubWF4VHJhbnNsYXRlKCk7XG4gICAgY29uc3QgY3VycmVudCA9IChtYXggLSBtaW4pICogcHJvZ3Jlc3MgKyBtaW47XG4gICAgc3dpcGVyLnRyYW5zbGF0ZVRvKGN1cnJlbnQsIHR5cGVvZiBzcGVlZCA9PT0gJ3VuZGVmaW5lZCcgPyAwIDogc3BlZWQpO1xuICAgIHN3aXBlci51cGRhdGVBY3RpdmVJbmRleCgpO1xuICAgIHN3aXBlci51cGRhdGVTbGlkZXNDbGFzc2VzKCk7XG4gIH1cblxuICBlbWl0Q29udGFpbmVyQ2xhc3NlcygpIHtcbiAgICBjb25zdCBzd2lwZXIgPSB0aGlzO1xuICAgIGlmICghc3dpcGVyLnBhcmFtcy5fZW1pdENsYXNzZXMgfHwgIXN3aXBlci5lbCkgcmV0dXJuO1xuICAgIGNvbnN0IGNscyA9IHN3aXBlci5lbC5jbGFzc05hbWUuc3BsaXQoJyAnKS5maWx0ZXIoY2xhc3NOYW1lID0+IHtcbiAgICAgIHJldHVybiBjbGFzc05hbWUuaW5kZXhPZignc3dpcGVyJykgPT09IDAgfHwgY2xhc3NOYW1lLmluZGV4T2Yoc3dpcGVyLnBhcmFtcy5jb250YWluZXJNb2RpZmllckNsYXNzKSA9PT0gMDtcbiAgICB9KTtcbiAgICBzd2lwZXIuZW1pdCgnX2NvbnRhaW5lckNsYXNzZXMnLCBjbHMuam9pbignICcpKTtcbiAgfVxuXG4gIGdldFNsaWRlQ2xhc3NlcyhzbGlkZUVsKSB7XG4gICAgY29uc3Qgc3dpcGVyID0gdGhpcztcbiAgICByZXR1cm4gc2xpZGVFbC5jbGFzc05hbWUuc3BsaXQoJyAnKS5maWx0ZXIoY2xhc3NOYW1lID0+IHtcbiAgICAgIHJldHVybiBjbGFzc05hbWUuaW5kZXhPZignc3dpcGVyLXNsaWRlJykgPT09IDAgfHwgY2xhc3NOYW1lLmluZGV4T2Yoc3dpcGVyLnBhcmFtcy5zbGlkZUNsYXNzKSA9PT0gMDtcbiAgICB9KS5qb2luKCcgJyk7XG4gIH1cblxuICBlbWl0U2xpZGVzQ2xhc3NlcygpIHtcbiAgICBjb25zdCBzd2lwZXIgPSB0aGlzO1xuICAgIGlmICghc3dpcGVyLnBhcmFtcy5fZW1pdENsYXNzZXMgfHwgIXN3aXBlci5lbCkgcmV0dXJuO1xuICAgIGNvbnN0IHVwZGF0ZXMgPSBbXTtcbiAgICBzd2lwZXIuc2xpZGVzLmVhY2goc2xpZGVFbCA9PiB7XG4gICAgICBjb25zdCBjbGFzc05hbWVzID0gc3dpcGVyLmdldFNsaWRlQ2xhc3NlcyhzbGlkZUVsKTtcbiAgICAgIHVwZGF0ZXMucHVzaCh7XG4gICAgICAgIHNsaWRlRWwsXG4gICAgICAgIGNsYXNzTmFtZXNcbiAgICAgIH0pO1xuICAgICAgc3dpcGVyLmVtaXQoJ19zbGlkZUNsYXNzJywgc2xpZGVFbCwgY2xhc3NOYW1lcyk7XG4gICAgfSk7XG4gICAgc3dpcGVyLmVtaXQoJ19zbGlkZUNsYXNzZXMnLCB1cGRhdGVzKTtcbiAgfVxuXG4gIHNsaWRlc1BlclZpZXdEeW5hbWljKHZpZXcgPSAnY3VycmVudCcsIGV4YWN0ID0gZmFsc2UpIHtcbiAgICBjb25zdCBzd2lwZXIgPSB0aGlzO1xuICAgIGNvbnN0IHtcbiAgICAgIHBhcmFtcyxcbiAgICAgIHNsaWRlcyxcbiAgICAgIHNsaWRlc0dyaWQsXG4gICAgICBzbGlkZXNTaXplc0dyaWQsXG4gICAgICBzaXplOiBzd2lwZXJTaXplLFxuICAgICAgYWN0aXZlSW5kZXhcbiAgICB9ID0gc3dpcGVyO1xuICAgIGxldCBzcHYgPSAxO1xuXG4gICAgaWYgKHBhcmFtcy5jZW50ZXJlZFNsaWRlcykge1xuICAgICAgbGV0IHNsaWRlU2l6ZSA9IHNsaWRlc1thY3RpdmVJbmRleF0uc3dpcGVyU2xpZGVTaXplO1xuICAgICAgbGV0IGJyZWFrTG9vcDtcblxuICAgICAgZm9yIChsZXQgaSA9IGFjdGl2ZUluZGV4ICsgMTsgaSA8IHNsaWRlcy5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgICBpZiAoc2xpZGVzW2ldICYmICFicmVha0xvb3ApIHtcbiAgICAgICAgICBzbGlkZVNpemUgKz0gc2xpZGVzW2ldLnN3aXBlclNsaWRlU2l6ZTtcbiAgICAgICAgICBzcHYgKz0gMTtcbiAgICAgICAgICBpZiAoc2xpZGVTaXplID4gc3dpcGVyU2l6ZSkgYnJlYWtMb29wID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBmb3IgKGxldCBpID0gYWN0aXZlSW5kZXggLSAxOyBpID49IDA7IGkgLT0gMSkge1xuICAgICAgICBpZiAoc2xpZGVzW2ldICYmICFicmVha0xvb3ApIHtcbiAgICAgICAgICBzbGlkZVNpemUgKz0gc2xpZGVzW2ldLnN3aXBlclNsaWRlU2l6ZTtcbiAgICAgICAgICBzcHYgKz0gMTtcbiAgICAgICAgICBpZiAoc2xpZGVTaXplID4gc3dpcGVyU2l6ZSkgYnJlYWtMb29wID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAgIGlmICh2aWV3ID09PSAnY3VycmVudCcpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IGFjdGl2ZUluZGV4ICsgMTsgaSA8IHNsaWRlcy5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgICAgIGNvbnN0IHNsaWRlSW5WaWV3ID0gZXhhY3QgPyBzbGlkZXNHcmlkW2ldICsgc2xpZGVzU2l6ZXNHcmlkW2ldIC0gc2xpZGVzR3JpZFthY3RpdmVJbmRleF0gPCBzd2lwZXJTaXplIDogc2xpZGVzR3JpZFtpXSAtIHNsaWRlc0dyaWRbYWN0aXZlSW5kZXhdIDwgc3dpcGVyU2l6ZTtcblxuICAgICAgICAgIGlmIChzbGlkZUluVmlldykge1xuICAgICAgICAgICAgc3B2ICs9IDE7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBwcmV2aW91c1xuICAgICAgICBmb3IgKGxldCBpID0gYWN0aXZlSW5kZXggLSAxOyBpID49IDA7IGkgLT0gMSkge1xuICAgICAgICAgIGNvbnN0IHNsaWRlSW5WaWV3ID0gc2xpZGVzR3JpZFthY3RpdmVJbmRleF0gLSBzbGlkZXNHcmlkW2ldIDwgc3dpcGVyU2l6ZTtcblxuICAgICAgICAgIGlmIChzbGlkZUluVmlldykge1xuICAgICAgICAgICAgc3B2ICs9IDE7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHNwdjtcbiAgfVxuXG4gIHVwZGF0ZSgpIHtcbiAgICBjb25zdCBzd2lwZXIgPSB0aGlzO1xuICAgIGlmICghc3dpcGVyIHx8IHN3aXBlci5kZXN0cm95ZWQpIHJldHVybjtcbiAgICBjb25zdCB7XG4gICAgICBzbmFwR3JpZCxcbiAgICAgIHBhcmFtc1xuICAgIH0gPSBzd2lwZXI7IC8vIEJyZWFrcG9pbnRzXG5cbiAgICBpZiAocGFyYW1zLmJyZWFrcG9pbnRzKSB7XG4gICAgICBzd2lwZXIuc2V0QnJlYWtwb2ludCgpO1xuICAgIH1cblxuICAgIHN3aXBlci51cGRhdGVTaXplKCk7XG4gICAgc3dpcGVyLnVwZGF0ZVNsaWRlcygpO1xuICAgIHN3aXBlci51cGRhdGVQcm9ncmVzcygpO1xuICAgIHN3aXBlci51cGRhdGVTbGlkZXNDbGFzc2VzKCk7XG5cbiAgICBmdW5jdGlvbiBzZXRUcmFuc2xhdGUoKSB7XG4gICAgICBjb25zdCB0cmFuc2xhdGVWYWx1ZSA9IHN3aXBlci5ydGxUcmFuc2xhdGUgPyBzd2lwZXIudHJhbnNsYXRlICogLTEgOiBzd2lwZXIudHJhbnNsYXRlO1xuICAgICAgY29uc3QgbmV3VHJhbnNsYXRlID0gTWF0aC5taW4oTWF0aC5tYXgodHJhbnNsYXRlVmFsdWUsIHN3aXBlci5tYXhUcmFuc2xhdGUoKSksIHN3aXBlci5taW5UcmFuc2xhdGUoKSk7XG4gICAgICBzd2lwZXIuc2V0VHJhbnNsYXRlKG5ld1RyYW5zbGF0ZSk7XG4gICAgICBzd2lwZXIudXBkYXRlQWN0aXZlSW5kZXgoKTtcbiAgICAgIHN3aXBlci51cGRhdGVTbGlkZXNDbGFzc2VzKCk7XG4gICAgfVxuXG4gICAgbGV0IHRyYW5zbGF0ZWQ7XG5cbiAgICBpZiAoc3dpcGVyLnBhcmFtcy5mcmVlTW9kZSAmJiBzd2lwZXIucGFyYW1zLmZyZWVNb2RlLmVuYWJsZWQpIHtcbiAgICAgIHNldFRyYW5zbGF0ZSgpO1xuXG4gICAgICBpZiAoc3dpcGVyLnBhcmFtcy5hdXRvSGVpZ2h0KSB7XG4gICAgICAgIHN3aXBlci51cGRhdGVBdXRvSGVpZ2h0KCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICgoc3dpcGVyLnBhcmFtcy5zbGlkZXNQZXJWaWV3ID09PSAnYXV0bycgfHwgc3dpcGVyLnBhcmFtcy5zbGlkZXNQZXJWaWV3ID4gMSkgJiYgc3dpcGVyLmlzRW5kICYmICFzd2lwZXIucGFyYW1zLmNlbnRlcmVkU2xpZGVzKSB7XG4gICAgICAgIHRyYW5zbGF0ZWQgPSBzd2lwZXIuc2xpZGVUbyhzd2lwZXIuc2xpZGVzLmxlbmd0aCAtIDEsIDAsIGZhbHNlLCB0cnVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRyYW5zbGF0ZWQgPSBzd2lwZXIuc2xpZGVUbyhzd2lwZXIuYWN0aXZlSW5kZXgsIDAsIGZhbHNlLCB0cnVlKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCF0cmFuc2xhdGVkKSB7XG4gICAgICAgIHNldFRyYW5zbGF0ZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwYXJhbXMud2F0Y2hPdmVyZmxvdyAmJiBzbmFwR3JpZCAhPT0gc3dpcGVyLnNuYXBHcmlkKSB7XG4gICAgICBzd2lwZXIuY2hlY2tPdmVyZmxvdygpO1xuICAgIH1cblxuICAgIHN3aXBlci5lbWl0KCd1cGRhdGUnKTtcbiAgfVxuXG4gIGNoYW5nZURpcmVjdGlvbihuZXdEaXJlY3Rpb24sIG5lZWRVcGRhdGUgPSB0cnVlKSB7XG4gICAgY29uc3Qgc3dpcGVyID0gdGhpcztcbiAgICBjb25zdCBjdXJyZW50RGlyZWN0aW9uID0gc3dpcGVyLnBhcmFtcy5kaXJlY3Rpb247XG5cbiAgICBpZiAoIW5ld0RpcmVjdGlvbikge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgICBuZXdEaXJlY3Rpb24gPSBjdXJyZW50RGlyZWN0aW9uID09PSAnaG9yaXpvbnRhbCcgPyAndmVydGljYWwnIDogJ2hvcml6b250YWwnO1xuICAgIH1cblxuICAgIGlmIChuZXdEaXJlY3Rpb24gPT09IGN1cnJlbnREaXJlY3Rpb24gfHwgbmV3RGlyZWN0aW9uICE9PSAnaG9yaXpvbnRhbCcgJiYgbmV3RGlyZWN0aW9uICE9PSAndmVydGljYWwnKSB7XG4gICAgICByZXR1cm4gc3dpcGVyO1xuICAgIH1cblxuICAgIHN3aXBlci4kZWwucmVtb3ZlQ2xhc3MoYCR7c3dpcGVyLnBhcmFtcy5jb250YWluZXJNb2RpZmllckNsYXNzfSR7Y3VycmVudERpcmVjdGlvbn1gKS5hZGRDbGFzcyhgJHtzd2lwZXIucGFyYW1zLmNvbnRhaW5lck1vZGlmaWVyQ2xhc3N9JHtuZXdEaXJlY3Rpb259YCk7XG4gICAgc3dpcGVyLmVtaXRDb250YWluZXJDbGFzc2VzKCk7XG4gICAgc3dpcGVyLnBhcmFtcy5kaXJlY3Rpb24gPSBuZXdEaXJlY3Rpb247XG4gICAgc3dpcGVyLnNsaWRlcy5lYWNoKHNsaWRlRWwgPT4ge1xuICAgICAgaWYgKG5ld0RpcmVjdGlvbiA9PT0gJ3ZlcnRpY2FsJykge1xuICAgICAgICBzbGlkZUVsLnN0eWxlLndpZHRoID0gJyc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzbGlkZUVsLnN0eWxlLmhlaWdodCA9ICcnO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHN3aXBlci5lbWl0KCdjaGFuZ2VEaXJlY3Rpb24nKTtcbiAgICBpZiAobmVlZFVwZGF0ZSkgc3dpcGVyLnVwZGF0ZSgpO1xuICAgIHJldHVybiBzd2lwZXI7XG4gIH1cblxuICBtb3VudChlbCkge1xuICAgIGNvbnN0IHN3aXBlciA9IHRoaXM7XG4gICAgaWYgKHN3aXBlci5tb3VudGVkKSByZXR1cm4gdHJ1ZTsgLy8gRmluZCBlbFxuXG4gICAgY29uc3QgJGVsID0gJChlbCB8fCBzd2lwZXIucGFyYW1zLmVsKTtcbiAgICBlbCA9ICRlbFswXTtcblxuICAgIGlmICghZWwpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBlbC5zd2lwZXIgPSBzd2lwZXI7XG5cbiAgICBjb25zdCBnZXRXcmFwcGVyU2VsZWN0b3IgPSAoKSA9PiB7XG4gICAgICByZXR1cm4gYC4keyhzd2lwZXIucGFyYW1zLndyYXBwZXJDbGFzcyB8fCAnJykudHJpbSgpLnNwbGl0KCcgJykuam9pbignLicpfWA7XG4gICAgfTtcblxuICAgIGNvbnN0IGdldFdyYXBwZXIgPSAoKSA9PiB7XG4gICAgICBpZiAoZWwgJiYgZWwuc2hhZG93Um9vdCAmJiBlbC5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IpIHtcbiAgICAgICAgY29uc3QgcmVzID0gJChlbC5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoZ2V0V3JhcHBlclNlbGVjdG9yKCkpKTsgLy8gQ2hpbGRyZW4gbmVlZHMgdG8gcmV0dXJuIHNsb3QgaXRlbXNcblxuICAgICAgICByZXMuY2hpbGRyZW4gPSBvcHRpb25zID0+ICRlbC5jaGlsZHJlbihvcHRpb25zKTtcblxuICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gJGVsLmNoaWxkcmVuKGdldFdyYXBwZXJTZWxlY3RvcigpKTtcbiAgICB9OyAvLyBGaW5kIFdyYXBwZXJcblxuXG4gICAgbGV0ICR3cmFwcGVyRWwgPSBnZXRXcmFwcGVyKCk7XG5cbiAgICBpZiAoJHdyYXBwZXJFbC5sZW5ndGggPT09IDAgJiYgc3dpcGVyLnBhcmFtcy5jcmVhdGVFbGVtZW50cykge1xuICAgICAgY29uc3QgZG9jdW1lbnQgPSBnZXREb2N1bWVudCgpO1xuICAgICAgY29uc3Qgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgJHdyYXBwZXJFbCA9ICQod3JhcHBlcik7XG4gICAgICB3cmFwcGVyLmNsYXNzTmFtZSA9IHN3aXBlci5wYXJhbXMud3JhcHBlckNsYXNzO1xuICAgICAgJGVsLmFwcGVuZCh3cmFwcGVyKTtcbiAgICAgICRlbC5jaGlsZHJlbihgLiR7c3dpcGVyLnBhcmFtcy5zbGlkZUNsYXNzfWApLmVhY2goc2xpZGVFbCA9PiB7XG4gICAgICAgICR3cmFwcGVyRWwuYXBwZW5kKHNsaWRlRWwpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgT2JqZWN0LmFzc2lnbihzd2lwZXIsIHtcbiAgICAgICRlbCxcbiAgICAgIGVsLFxuICAgICAgJHdyYXBwZXJFbCxcbiAgICAgIHdyYXBwZXJFbDogJHdyYXBwZXJFbFswXSxcbiAgICAgIG1vdW50ZWQ6IHRydWUsXG4gICAgICAvLyBSVExcbiAgICAgIHJ0bDogZWwuZGlyLnRvTG93ZXJDYXNlKCkgPT09ICdydGwnIHx8ICRlbC5jc3MoJ2RpcmVjdGlvbicpID09PSAncnRsJyxcbiAgICAgIHJ0bFRyYW5zbGF0ZTogc3dpcGVyLnBhcmFtcy5kaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJyAmJiAoZWwuZGlyLnRvTG93ZXJDYXNlKCkgPT09ICdydGwnIHx8ICRlbC5jc3MoJ2RpcmVjdGlvbicpID09PSAncnRsJyksXG4gICAgICB3cm9uZ1JUTDogJHdyYXBwZXJFbC5jc3MoJ2Rpc3BsYXknKSA9PT0gJy13ZWJraXQtYm94J1xuICAgIH0pO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaW5pdChlbCkge1xuICAgIGNvbnN0IHN3aXBlciA9IHRoaXM7XG4gICAgaWYgKHN3aXBlci5pbml0aWFsaXplZCkgcmV0dXJuIHN3aXBlcjtcbiAgICBjb25zdCBtb3VudGVkID0gc3dpcGVyLm1vdW50KGVsKTtcbiAgICBpZiAobW91bnRlZCA9PT0gZmFsc2UpIHJldHVybiBzd2lwZXI7XG4gICAgc3dpcGVyLmVtaXQoJ2JlZm9yZUluaXQnKTsgLy8gU2V0IGJyZWFrcG9pbnRcblxuICAgIGlmIChzd2lwZXIucGFyYW1zLmJyZWFrcG9pbnRzKSB7XG4gICAgICBzd2lwZXIuc2V0QnJlYWtwb2ludCgpO1xuICAgIH0gLy8gQWRkIENsYXNzZXNcblxuXG4gICAgc3dpcGVyLmFkZENsYXNzZXMoKTsgLy8gQ3JlYXRlIGxvb3BcblxuICAgIGlmIChzd2lwZXIucGFyYW1zLmxvb3ApIHtcbiAgICAgIHN3aXBlci5sb29wQ3JlYXRlKCk7XG4gICAgfSAvLyBVcGRhdGUgc2l6ZVxuXG5cbiAgICBzd2lwZXIudXBkYXRlU2l6ZSgpOyAvLyBVcGRhdGUgc2xpZGVzXG5cbiAgICBzd2lwZXIudXBkYXRlU2xpZGVzKCk7XG5cbiAgICBpZiAoc3dpcGVyLnBhcmFtcy53YXRjaE92ZXJmbG93KSB7XG4gICAgICBzd2lwZXIuY2hlY2tPdmVyZmxvdygpO1xuICAgIH0gLy8gU2V0IEdyYWIgQ3Vyc29yXG5cblxuICAgIGlmIChzd2lwZXIucGFyYW1zLmdyYWJDdXJzb3IgJiYgc3dpcGVyLmVuYWJsZWQpIHtcbiAgICAgIHN3aXBlci5zZXRHcmFiQ3Vyc29yKCk7XG4gICAgfVxuXG4gICAgaWYgKHN3aXBlci5wYXJhbXMucHJlbG9hZEltYWdlcykge1xuICAgICAgc3dpcGVyLnByZWxvYWRJbWFnZXMoKTtcbiAgICB9IC8vIFNsaWRlIFRvIEluaXRpYWwgU2xpZGVcblxuXG4gICAgaWYgKHN3aXBlci5wYXJhbXMubG9vcCkge1xuICAgICAgc3dpcGVyLnNsaWRlVG8oc3dpcGVyLnBhcmFtcy5pbml0aWFsU2xpZGUgKyBzd2lwZXIubG9vcGVkU2xpZGVzLCAwLCBzd2lwZXIucGFyYW1zLnJ1bkNhbGxiYWNrc09uSW5pdCwgZmFsc2UsIHRydWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzd2lwZXIuc2xpZGVUbyhzd2lwZXIucGFyYW1zLmluaXRpYWxTbGlkZSwgMCwgc3dpcGVyLnBhcmFtcy5ydW5DYWxsYmFja3NPbkluaXQsIGZhbHNlLCB0cnVlKTtcbiAgICB9IC8vIEF0dGFjaCBldmVudHNcblxuXG4gICAgc3dpcGVyLmF0dGFjaEV2ZW50cygpOyAvLyBJbml0IEZsYWdcblxuICAgIHN3aXBlci5pbml0aWFsaXplZCA9IHRydWU7IC8vIEVtaXRcblxuICAgIHN3aXBlci5lbWl0KCdpbml0Jyk7XG4gICAgc3dpcGVyLmVtaXQoJ2FmdGVySW5pdCcpO1xuICAgIHJldHVybiBzd2lwZXI7XG4gIH1cblxuICBkZXN0cm95KGRlbGV0ZUluc3RhbmNlID0gdHJ1ZSwgY2xlYW5TdHlsZXMgPSB0cnVlKSB7XG4gICAgY29uc3Qgc3dpcGVyID0gdGhpcztcbiAgICBjb25zdCB7XG4gICAgICBwYXJhbXMsXG4gICAgICAkZWwsXG4gICAgICAkd3JhcHBlckVsLFxuICAgICAgc2xpZGVzXG4gICAgfSA9IHN3aXBlcjtcblxuICAgIGlmICh0eXBlb2Ygc3dpcGVyLnBhcmFtcyA9PT0gJ3VuZGVmaW5lZCcgfHwgc3dpcGVyLmRlc3Ryb3llZCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgc3dpcGVyLmVtaXQoJ2JlZm9yZURlc3Ryb3knKTsgLy8gSW5pdCBGbGFnXG5cbiAgICBzd2lwZXIuaW5pdGlhbGl6ZWQgPSBmYWxzZTsgLy8gRGV0YWNoIGV2ZW50c1xuXG4gICAgc3dpcGVyLmRldGFjaEV2ZW50cygpOyAvLyBEZXN0cm95IGxvb3BcblxuICAgIGlmIChwYXJhbXMubG9vcCkge1xuICAgICAgc3dpcGVyLmxvb3BEZXN0cm95KCk7XG4gICAgfSAvLyBDbGVhbnVwIHN0eWxlc1xuXG5cbiAgICBpZiAoY2xlYW5TdHlsZXMpIHtcbiAgICAgIHN3aXBlci5yZW1vdmVDbGFzc2VzKCk7XG4gICAgICAkZWwucmVtb3ZlQXR0cignc3R5bGUnKTtcbiAgICAgICR3cmFwcGVyRWwucmVtb3ZlQXR0cignc3R5bGUnKTtcblxuICAgICAgaWYgKHNsaWRlcyAmJiBzbGlkZXMubGVuZ3RoKSB7XG4gICAgICAgIHNsaWRlcy5yZW1vdmVDbGFzcyhbcGFyYW1zLnNsaWRlVmlzaWJsZUNsYXNzLCBwYXJhbXMuc2xpZGVBY3RpdmVDbGFzcywgcGFyYW1zLnNsaWRlTmV4dENsYXNzLCBwYXJhbXMuc2xpZGVQcmV2Q2xhc3NdLmpvaW4oJyAnKSkucmVtb3ZlQXR0cignc3R5bGUnKS5yZW1vdmVBdHRyKCdkYXRhLXN3aXBlci1zbGlkZS1pbmRleCcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHN3aXBlci5lbWl0KCdkZXN0cm95Jyk7IC8vIERldGFjaCBlbWl0dGVyIGV2ZW50c1xuXG4gICAgT2JqZWN0LmtleXMoc3dpcGVyLmV2ZW50c0xpc3RlbmVycykuZm9yRWFjaChldmVudE5hbWUgPT4ge1xuICAgICAgc3dpcGVyLm9mZihldmVudE5hbWUpO1xuICAgIH0pO1xuXG4gICAgaWYgKGRlbGV0ZUluc3RhbmNlICE9PSBmYWxzZSkge1xuICAgICAgc3dpcGVyLiRlbFswXS5zd2lwZXIgPSBudWxsO1xuICAgICAgZGVsZXRlUHJvcHMoc3dpcGVyKTtcbiAgICB9XG5cbiAgICBzd2lwZXIuZGVzdHJveWVkID0gdHJ1ZTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHN0YXRpYyBleHRlbmREZWZhdWx0cyhuZXdEZWZhdWx0cykge1xuICAgIGV4dGVuZChleHRlbmRlZERlZmF1bHRzLCBuZXdEZWZhdWx0cyk7XG4gIH1cblxuICBzdGF0aWMgZ2V0IGV4dGVuZGVkRGVmYXVsdHMoKSB7XG4gICAgcmV0dXJuIGV4dGVuZGVkRGVmYXVsdHM7XG4gIH1cblxuICBzdGF0aWMgZ2V0IGRlZmF1bHRzKCkge1xuICAgIHJldHVybiBkZWZhdWx0cztcbiAgfVxuXG4gIHN0YXRpYyBpbnN0YWxsTW9kdWxlKG1vZCkge1xuICAgIGlmICghU3dpcGVyLnByb3RvdHlwZS5fX21vZHVsZXNfXykgU3dpcGVyLnByb3RvdHlwZS5fX21vZHVsZXNfXyA9IFtdO1xuICAgIGNvbnN0IG1vZHVsZXMgPSBTd2lwZXIucHJvdG90eXBlLl9fbW9kdWxlc19fO1xuXG4gICAgaWYgKHR5cGVvZiBtb2QgPT09ICdmdW5jdGlvbicgJiYgbW9kdWxlcy5pbmRleE9mKG1vZCkgPCAwKSB7XG4gICAgICBtb2R1bGVzLnB1c2gobW9kKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgdXNlKG1vZHVsZSkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KG1vZHVsZSkpIHtcbiAgICAgIG1vZHVsZS5mb3JFYWNoKG0gPT4gU3dpcGVyLmluc3RhbGxNb2R1bGUobSkpO1xuICAgICAgcmV0dXJuIFN3aXBlcjtcbiAgICB9XG5cbiAgICBTd2lwZXIuaW5zdGFsbE1vZHVsZShtb2R1bGUpO1xuICAgIHJldHVybiBTd2lwZXI7XG4gIH1cblxufVxuXG5PYmplY3Qua2V5cyhwcm90b3R5cGVzKS5mb3JFYWNoKHByb3RvdHlwZUdyb3VwID0+IHtcbiAgT2JqZWN0LmtleXMocHJvdG90eXBlc1twcm90b3R5cGVHcm91cF0pLmZvckVhY2gocHJvdG9NZXRob2QgPT4ge1xuICAgIFN3aXBlci5wcm90b3R5cGVbcHJvdG9NZXRob2RdID0gcHJvdG90eXBlc1twcm90b3R5cGVHcm91cF1bcHJvdG9NZXRob2RdO1xuICB9KTtcbn0pO1xuU3dpcGVyLnVzZShbUmVzaXplLCBPYnNlcnZlcl0pO1xuZXhwb3J0IGRlZmF1bHQgU3dpcGVyOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/core.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/defaults.js": +/*!**********************************************!*\ + !*** ./node_modules/swiper/core/defaults.js ***! + \**********************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvZGVmYXVsdHMuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFBLCtEQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zd2lwZXIvY29yZS9kZWZhdWx0cy5qcz83MTVjIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IHtcbiAgaW5pdDogdHJ1ZSxcbiAgZGlyZWN0aW9uOiAnaG9yaXpvbnRhbCcsXG4gIHRvdWNoRXZlbnRzVGFyZ2V0OiAnd3JhcHBlcicsXG4gIGluaXRpYWxTbGlkZTogMCxcbiAgc3BlZWQ6IDMwMCxcbiAgY3NzTW9kZTogZmFsc2UsXG4gIHVwZGF0ZU9uV2luZG93UmVzaXplOiB0cnVlLFxuICByZXNpemVPYnNlcnZlcjogdHJ1ZSxcbiAgbmVzdGVkOiBmYWxzZSxcbiAgY3JlYXRlRWxlbWVudHM6IGZhbHNlLFxuICBlbmFibGVkOiB0cnVlLFxuICBmb2N1c2FibGVFbGVtZW50czogJ2lucHV0LCBzZWxlY3QsIG9wdGlvbiwgdGV4dGFyZWEsIGJ1dHRvbiwgdmlkZW8sIGxhYmVsJyxcbiAgLy8gT3ZlcnJpZGVzXG4gIHdpZHRoOiBudWxsLFxuICBoZWlnaHQ6IG51bGwsXG4gIC8vXG4gIHByZXZlbnRJbnRlcmFjdGlvbk9uVHJhbnNpdGlvbjogZmFsc2UsXG4gIC8vIHNzclxuICB1c2VyQWdlbnQ6IG51bGwsXG4gIHVybDogbnVsbCxcbiAgLy8gVG8gc3VwcG9ydCBpT1MncyBzd2lwZS10by1nby1iYWNrIGdlc3R1cmUgKHdoZW4gYmVpbmcgdXNlZCBpbi1hcHApLlxuICBlZGdlU3dpcGVEZXRlY3Rpb246IGZhbHNlLFxuICBlZGdlU3dpcGVUaHJlc2hvbGQ6IDIwLFxuICAvLyBBdXRvaGVpZ2h0XG4gIGF1dG9IZWlnaHQ6IGZhbHNlLFxuICAvLyBTZXQgd3JhcHBlciB3aWR0aFxuICBzZXRXcmFwcGVyU2l6ZTogZmFsc2UsXG4gIC8vIFZpcnR1YWwgVHJhbnNsYXRlXG4gIHZpcnR1YWxUcmFuc2xhdGU6IGZhbHNlLFxuICAvLyBFZmZlY3RzXG4gIGVmZmVjdDogJ3NsaWRlJyxcbiAgLy8gJ3NsaWRlJyBvciAnZmFkZScgb3IgJ2N1YmUnIG9yICdjb3ZlcmZsb3cnIG9yICdmbGlwJ1xuICAvLyBCcmVha3BvaW50c1xuICBicmVha3BvaW50czogdW5kZWZpbmVkLFxuICBicmVha3BvaW50c0Jhc2U6ICd3aW5kb3cnLFxuICAvLyBTbGlkZXMgZ3JpZFxuICBzcGFjZUJldHdlZW46IDAsXG4gIHNsaWRlc1BlclZpZXc6IDEsXG4gIHNsaWRlc1Blckdyb3VwOiAxLFxuICBzbGlkZXNQZXJHcm91cFNraXA6IDAsXG4gIHNsaWRlc1Blckdyb3VwQXV0bzogZmFsc2UsXG4gIGNlbnRlcmVkU2xpZGVzOiBmYWxzZSxcbiAgY2VudGVyZWRTbGlkZXNCb3VuZHM6IGZhbHNlLFxuICBzbGlkZXNPZmZzZXRCZWZvcmU6IDAsXG4gIC8vIGluIHB4XG4gIHNsaWRlc09mZnNldEFmdGVyOiAwLFxuICAvLyBpbiBweFxuICBub3JtYWxpemVTbGlkZUluZGV4OiB0cnVlLFxuICBjZW50ZXJJbnN1ZmZpY2llbnRTbGlkZXM6IGZhbHNlLFxuICAvLyBEaXNhYmxlIHN3aXBlciBhbmQgaGlkZSBuYXZpZ2F0aW9uIHdoZW4gY29udGFpbmVyIG5vdCBvdmVyZmxvd1xuICB3YXRjaE92ZXJmbG93OiB0cnVlLFxuICAvLyBSb3VuZCBsZW5ndGhcbiAgcm91bmRMZW5ndGhzOiBmYWxzZSxcbiAgLy8gVG91Y2hlc1xuICB0b3VjaFJhdGlvOiAxLFxuICB0b3VjaEFuZ2xlOiA0NSxcbiAgc2ltdWxhdGVUb3VjaDogdHJ1ZSxcbiAgc2hvcnRTd2lwZXM6IHRydWUsXG4gIGxvbmdTd2lwZXM6IHRydWUsXG4gIGxvbmdTd2lwZXNSYXRpbzogMC41LFxuICBsb25nU3dpcGVzTXM6IDMwMCxcbiAgZm9sbG93RmluZ2VyOiB0cnVlLFxuICBhbGxvd1RvdWNoTW92ZTogdHJ1ZSxcbiAgdGhyZXNob2xkOiAwLFxuICB0b3VjaE1vdmVTdG9wUHJvcGFnYXRpb246IGZhbHNlLFxuICB0b3VjaFN0YXJ0UHJldmVudERlZmF1bHQ6IHRydWUsXG4gIHRvdWNoU3RhcnRGb3JjZVByZXZlbnREZWZhdWx0OiBmYWxzZSxcbiAgdG91Y2hSZWxlYXNlT25FZGdlczogZmFsc2UsXG4gIC8vIFVuaXF1ZSBOYXZpZ2F0aW9uIEVsZW1lbnRzXG4gIHVuaXF1ZU5hdkVsZW1lbnRzOiB0cnVlLFxuICAvLyBSZXNpc3RhbmNlXG4gIHJlc2lzdGFuY2U6IHRydWUsXG4gIHJlc2lzdGFuY2VSYXRpbzogMC44NSxcbiAgLy8gUHJvZ3Jlc3NcbiAgd2F0Y2hTbGlkZXNQcm9ncmVzczogZmFsc2UsXG4gIC8vIEN1cnNvclxuICBncmFiQ3Vyc29yOiBmYWxzZSxcbiAgLy8gQ2xpY2tzXG4gIHByZXZlbnRDbGlja3M6IHRydWUsXG4gIHByZXZlbnRDbGlja3NQcm9wYWdhdGlvbjogdHJ1ZSxcbiAgc2xpZGVUb0NsaWNrZWRTbGlkZTogZmFsc2UsXG4gIC8vIEltYWdlc1xuICBwcmVsb2FkSW1hZ2VzOiB0cnVlLFxuICB1cGRhdGVPbkltYWdlc1JlYWR5OiB0cnVlLFxuICAvLyBsb29wXG4gIGxvb3A6IGZhbHNlLFxuICBsb29wQWRkaXRpb25hbFNsaWRlczogMCxcbiAgbG9vcGVkU2xpZGVzOiBudWxsLFxuICBsb29wRmlsbEdyb3VwV2l0aEJsYW5rOiBmYWxzZSxcbiAgbG9vcFByZXZlbnRzU2xpZGU6IHRydWUsXG4gIC8vIFN3aXBpbmcvbm8gc3dpcGluZ1xuICBhbGxvd1NsaWRlUHJldjogdHJ1ZSxcbiAgYWxsb3dTbGlkZU5leHQ6IHRydWUsXG4gIHN3aXBlSGFuZGxlcjogbnVsbCxcbiAgLy8gJy5zd2lwZS1oYW5kbGVyJyxcbiAgbm9Td2lwaW5nOiB0cnVlLFxuICBub1N3aXBpbmdDbGFzczogJ3N3aXBlci1uby1zd2lwaW5nJyxcbiAgbm9Td2lwaW5nU2VsZWN0b3I6IG51bGwsXG4gIC8vIFBhc3NpdmUgTGlzdGVuZXJzXG4gIHBhc3NpdmVMaXN0ZW5lcnM6IHRydWUsXG4gIC8vIE5TXG4gIGNvbnRhaW5lck1vZGlmaWVyQ2xhc3M6ICdzd2lwZXItJyxcbiAgLy8gTkVXXG4gIHNsaWRlQ2xhc3M6ICdzd2lwZXItc2xpZGUnLFxuICBzbGlkZUJsYW5rQ2xhc3M6ICdzd2lwZXItc2xpZGUtaW52aXNpYmxlLWJsYW5rJyxcbiAgc2xpZGVBY3RpdmVDbGFzczogJ3N3aXBlci1zbGlkZS1hY3RpdmUnLFxuICBzbGlkZUR1cGxpY2F0ZUFjdGl2ZUNsYXNzOiAnc3dpcGVyLXNsaWRlLWR1cGxpY2F0ZS1hY3RpdmUnLFxuICBzbGlkZVZpc2libGVDbGFzczogJ3N3aXBlci1zbGlkZS12aXNpYmxlJyxcbiAgc2xpZGVEdXBsaWNhdGVDbGFzczogJ3N3aXBlci1zbGlkZS1kdXBsaWNhdGUnLFxuICBzbGlkZU5leHRDbGFzczogJ3N3aXBlci1zbGlkZS1uZXh0JyxcbiAgc2xpZGVEdXBsaWNhdGVOZXh0Q2xhc3M6ICdzd2lwZXItc2xpZGUtZHVwbGljYXRlLW5leHQnLFxuICBzbGlkZVByZXZDbGFzczogJ3N3aXBlci1zbGlkZS1wcmV2JyxcbiAgc2xpZGVEdXBsaWNhdGVQcmV2Q2xhc3M6ICdzd2lwZXItc2xpZGUtZHVwbGljYXRlLXByZXYnLFxuICB3cmFwcGVyQ2xhc3M6ICdzd2lwZXItd3JhcHBlcicsXG4gIC8vIENhbGxiYWNrc1xuICBydW5DYWxsYmFja3NPbkluaXQ6IHRydWUsXG4gIC8vIEludGVybmFsc1xuICBfZW1pdENsYXNzZXM6IGZhbHNlXG59OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/defaults.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/events-emitter.js": +/*!****************************************************!*\ + !*** ./node_modules/swiper/core/events-emitter.js ***! + \****************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* eslint-disable no-underscore-dangle */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n on(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n\n once(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n\n function onceHandler(...args) {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n\n onAny(handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n\n offAny(handler) {\n const self = this;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n\n emit(...args) {\n const self = this;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvZXZlbnRzLWVtaXR0ZXIuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0EsK0RBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBLEtBQUs7QUFDTDtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQSxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zd2lwZXIvY29yZS9ldmVudHMtZW1pdHRlci5qcz9hOWRhIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXVuZGVyc2NvcmUtZGFuZ2xlICovXG5leHBvcnQgZGVmYXVsdCB7XG4gIG9uKGV2ZW50cywgaGFuZGxlciwgcHJpb3JpdHkpIHtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICBpZiAodHlwZW9mIGhhbmRsZXIgIT09ICdmdW5jdGlvbicpIHJldHVybiBzZWxmO1xuICAgIGNvbnN0IG1ldGhvZCA9IHByaW9yaXR5ID8gJ3Vuc2hpZnQnIDogJ3B1c2gnO1xuICAgIGV2ZW50cy5zcGxpdCgnICcpLmZvckVhY2goZXZlbnQgPT4ge1xuICAgICAgaWYgKCFzZWxmLmV2ZW50c0xpc3RlbmVyc1tldmVudF0pIHNlbGYuZXZlbnRzTGlzdGVuZXJzW2V2ZW50XSA9IFtdO1xuICAgICAgc2VsZi5ldmVudHNMaXN0ZW5lcnNbZXZlbnRdW21ldGhvZF0oaGFuZGxlcik7XG4gICAgfSk7XG4gICAgcmV0dXJuIHNlbGY7XG4gIH0sXG5cbiAgb25jZShldmVudHMsIGhhbmRsZXIsIHByaW9yaXR5KSB7XG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgaWYgKHR5cGVvZiBoYW5kbGVyICE9PSAnZnVuY3Rpb24nKSByZXR1cm4gc2VsZjtcblxuICAgIGZ1bmN0aW9uIG9uY2VIYW5kbGVyKC4uLmFyZ3MpIHtcbiAgICAgIHNlbGYub2ZmKGV2ZW50cywgb25jZUhhbmRsZXIpO1xuXG4gICAgICBpZiAob25jZUhhbmRsZXIuX19lbWl0dGVyUHJveHkpIHtcbiAgICAgICAgZGVsZXRlIG9uY2VIYW5kbGVyLl9fZW1pdHRlclByb3h5O1xuICAgICAgfVxuXG4gICAgICBoYW5kbGVyLmFwcGx5KHNlbGYsIGFyZ3MpO1xuICAgIH1cblxuICAgIG9uY2VIYW5kbGVyLl9fZW1pdHRlclByb3h5ID0gaGFuZGxlcjtcbiAgICByZXR1cm4gc2VsZi5vbihldmVudHMsIG9uY2VIYW5kbGVyLCBwcmlvcml0eSk7XG4gIH0sXG5cbiAgb25BbnkoaGFuZGxlciwgcHJpb3JpdHkpIHtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICBpZiAodHlwZW9mIGhhbmRsZXIgIT09ICdmdW5jdGlvbicpIHJldHVybiBzZWxmO1xuICAgIGNvbnN0IG1ldGhvZCA9IHByaW9yaXR5ID8gJ3Vuc2hpZnQnIDogJ3B1c2gnO1xuXG4gICAgaWYgKHNlbGYuZXZlbnRzQW55TGlzdGVuZXJzLmluZGV4T2YoaGFuZGxlcikgPCAwKSB7XG4gICAgICBzZWxmLmV2ZW50c0FueUxpc3RlbmVyc1ttZXRob2RdKGhhbmRsZXIpO1xuICAgIH1cblxuICAgIHJldHVybiBzZWxmO1xuICB9LFxuXG4gIG9mZkFueShoYW5kbGVyKSB7XG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgaWYgKCFzZWxmLmV2ZW50c0FueUxpc3RlbmVycykgcmV0dXJuIHNlbGY7XG4gICAgY29uc3QgaW5kZXggPSBzZWxmLmV2ZW50c0FueUxpc3RlbmVycy5pbmRleE9mKGhhbmRsZXIpO1xuXG4gICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgIHNlbGYuZXZlbnRzQW55TGlzdGVuZXJzLnNwbGljZShpbmRleCwgMSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNlbGY7XG4gIH0sXG5cbiAgb2ZmKGV2ZW50cywgaGFuZGxlcikge1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIGlmICghc2VsZi5ldmVudHNMaXN0ZW5lcnMpIHJldHVybiBzZWxmO1xuICAgIGV2ZW50cy5zcGxpdCgnICcpLmZvckVhY2goZXZlbnQgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBoYW5kbGVyID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICBzZWxmLmV2ZW50c0xpc3RlbmVyc1tldmVudF0gPSBbXTtcbiAgICAgIH0gZWxzZSBpZiAoc2VsZi5ldmVudHNMaXN0ZW5lcnNbZXZlbnRdKSB7XG4gICAgICAgIHNlbGYuZXZlbnRzTGlzdGVuZXJzW2V2ZW50XS5mb3JFYWNoKChldmVudEhhbmRsZXIsIGluZGV4KSA9PiB7XG4gICAgICAgICAgaWYgKGV2ZW50SGFuZGxlciA9PT0gaGFuZGxlciB8fCBldmVudEhhbmRsZXIuX19lbWl0dGVyUHJveHkgJiYgZXZlbnRIYW5kbGVyLl9fZW1pdHRlclByb3h5ID09PSBoYW5kbGVyKSB7XG4gICAgICAgICAgICBzZWxmLmV2ZW50c0xpc3RlbmVyc1tldmVudF0uc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBzZWxmO1xuICB9LFxuXG4gIGVtaXQoLi4uYXJncykge1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIGlmICghc2VsZi5ldmVudHNMaXN0ZW5lcnMpIHJldHVybiBzZWxmO1xuICAgIGxldCBldmVudHM7XG4gICAgbGV0IGRhdGE7XG4gICAgbGV0IGNvbnRleHQ7XG5cbiAgICBpZiAodHlwZW9mIGFyZ3NbMF0gPT09ICdzdHJpbmcnIHx8IEFycmF5LmlzQXJyYXkoYXJnc1swXSkpIHtcbiAgICAgIGV2ZW50cyA9IGFyZ3NbMF07XG4gICAgICBkYXRhID0gYXJncy5zbGljZSgxLCBhcmdzLmxlbmd0aCk7XG4gICAgICBjb250ZXh0ID0gc2VsZjtcbiAgICB9IGVsc2Uge1xuICAgICAgZXZlbnRzID0gYXJnc1swXS5ldmVudHM7XG4gICAgICBkYXRhID0gYXJnc1swXS5kYXRhO1xuICAgICAgY29udGV4dCA9IGFyZ3NbMF0uY29udGV4dCB8fCBzZWxmO1xuICAgIH1cblxuICAgIGRhdGEudW5zaGlmdChjb250ZXh0KTtcbiAgICBjb25zdCBldmVudHNBcnJheSA9IEFycmF5LmlzQXJyYXkoZXZlbnRzKSA/IGV2ZW50cyA6IGV2ZW50cy5zcGxpdCgnICcpO1xuICAgIGV2ZW50c0FycmF5LmZvckVhY2goZXZlbnQgPT4ge1xuICAgICAgaWYgKHNlbGYuZXZlbnRzQW55TGlzdGVuZXJzICYmIHNlbGYuZXZlbnRzQW55TGlzdGVuZXJzLmxlbmd0aCkge1xuICAgICAgICBzZWxmLmV2ZW50c0FueUxpc3RlbmVycy5mb3JFYWNoKGV2ZW50SGFuZGxlciA9PiB7XG4gICAgICAgICAgZXZlbnRIYW5kbGVyLmFwcGx5KGNvbnRleHQsIFtldmVudCwgLi4uZGF0YV0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHNlbGYuZXZlbnRzTGlzdGVuZXJzICYmIHNlbGYuZXZlbnRzTGlzdGVuZXJzW2V2ZW50XSkge1xuICAgICAgICBzZWxmLmV2ZW50c0xpc3RlbmVyc1tldmVudF0uZm9yRWFjaChldmVudEhhbmRsZXIgPT4ge1xuICAgICAgICAgIGV2ZW50SGFuZGxlci5hcHBseShjb250ZXh0LCBkYXRhKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHNlbGY7XG4gIH1cblxufTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/events-emitter.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/events/index.js": +/*!**************************************************!*\ + !*** ./node_modules/swiper/core/events/index.js ***! + \**************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ \"./node_modules/ssr-window/ssr-window.esm.js\");\n/* harmony import */ var _onTouchStart_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./onTouchStart.js */ \"./node_modules/swiper/core/events/onTouchStart.js\");\n/* harmony import */ var _onTouchMove_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./onTouchMove.js */ \"./node_modules/swiper/core/events/onTouchMove.js\");\n/* harmony import */ var _onTouchEnd_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./onTouchEnd.js */ \"./node_modules/swiper/core/events/onTouchEnd.js\");\n/* harmony import */ var _onResize_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./onResize.js */ \"./node_modules/swiper/core/events/onResize.js\");\n/* harmony import */ var _onClick_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./onClick.js */ \"./node_modules/swiper/core/events/onClick.js\");\n/* harmony import */ var _onScroll_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./onScroll.js */ \"./node_modules/swiper/core/events/onScroll.js\");\n\n\n\n\n\n\n\nlet dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nconst events = (swiper, method) => {\n const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)();\n const {\n params,\n touchEvents,\n el,\n wrapperEl,\n device,\n support\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method; // Touch Events\n\n if (!support.touch) {\n el[domMethod](touchEvents.start, swiper.onTouchStart, false);\n document[domMethod](touchEvents.move, swiper.onTouchMove, capture);\n document[domMethod](touchEvents.end, swiper.onTouchEnd, false);\n } else {\n const passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el[domMethod](touchEvents.start, swiper.onTouchStart, passiveListener);\n el[domMethod](touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture\n } : capture);\n el[domMethod](touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el[domMethod](touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', _onResize_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"], true);\n } else {\n swiper[swiperMethod]('observerUpdate', _onResize_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"], true);\n }\n};\n\nfunction attachEvents() {\n const swiper = this;\n const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)();\n const {\n params,\n support\n } = swiper;\n swiper.onTouchStart = _onTouchStart_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].bind(swiper);\n swiper.onTouchMove = _onTouchMove_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].bind(swiper);\n swiper.onTouchEnd = _onTouchEnd_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].bind(swiper);\n\n if (params.cssMode) {\n swiper.onScroll = _onScroll_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"].bind(swiper);\n }\n\n swiper.onClick = _onClick_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].bind(swiper);\n\n if (support.touch && !dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n\n events(swiper, 'on');\n}\n\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n attachEvents,\n detachEvents\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvZXZlbnRzL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQXlDO0FBQ0k7QUFDRjtBQUNGO0FBQ0o7QUFDRjtBQUNFO0FBQ3JDOztBQUVBOztBQUVBO0FBQ0EsbUJBQW1CLHVEQUFXO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSwrQkFBK0I7O0FBRS9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7OztBQUdKO0FBQ0EsNkhBQTZILG9EQUFRO0FBQ3JJLElBQUk7QUFDSiwyQ0FBMkMsb0RBQVE7QUFDbkQ7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsbUJBQW1CLHVEQUFXO0FBQzlCO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSix3QkFBd0IsNkRBQWlCO0FBQ3pDLHVCQUF1Qiw0REFBZ0I7QUFDdkMsc0JBQXNCLDJEQUFlOztBQUVyQztBQUNBLHNCQUFzQix5REFBYTtBQUNuQzs7QUFFQSxtQkFBbUIsd0RBQVk7O0FBRS9CO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsK0RBQWU7QUFDZjtBQUNBO0FBQ0EsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvZXZlbnRzL2luZGV4LmpzP2FlNmYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0RG9jdW1lbnQgfSBmcm9tICdzc3Itd2luZG93JztcbmltcG9ydCBvblRvdWNoU3RhcnQgZnJvbSAnLi9vblRvdWNoU3RhcnQuanMnO1xuaW1wb3J0IG9uVG91Y2hNb3ZlIGZyb20gJy4vb25Ub3VjaE1vdmUuanMnO1xuaW1wb3J0IG9uVG91Y2hFbmQgZnJvbSAnLi9vblRvdWNoRW5kLmpzJztcbmltcG9ydCBvblJlc2l6ZSBmcm9tICcuL29uUmVzaXplLmpzJztcbmltcG9ydCBvbkNsaWNrIGZyb20gJy4vb25DbGljay5qcyc7XG5pbXBvcnQgb25TY3JvbGwgZnJvbSAnLi9vblNjcm9sbC5qcyc7XG5sZXQgZHVtbXlFdmVudEF0dGFjaGVkID0gZmFsc2U7XG5cbmZ1bmN0aW9uIGR1bW15RXZlbnRMaXN0ZW5lcigpIHt9XG5cbmNvbnN0IGV2ZW50cyA9IChzd2lwZXIsIG1ldGhvZCkgPT4ge1xuICBjb25zdCBkb2N1bWVudCA9IGdldERvY3VtZW50KCk7XG4gIGNvbnN0IHtcbiAgICBwYXJhbXMsXG4gICAgdG91Y2hFdmVudHMsXG4gICAgZWwsXG4gICAgd3JhcHBlckVsLFxuICAgIGRldmljZSxcbiAgICBzdXBwb3J0XG4gIH0gPSBzd2lwZXI7XG4gIGNvbnN0IGNhcHR1cmUgPSAhIXBhcmFtcy5uZXN0ZWQ7XG4gIGNvbnN0IGRvbU1ldGhvZCA9IG1ldGhvZCA9PT0gJ29uJyA/ICdhZGRFdmVudExpc3RlbmVyJyA6ICdyZW1vdmVFdmVudExpc3RlbmVyJztcbiAgY29uc3Qgc3dpcGVyTWV0aG9kID0gbWV0aG9kOyAvLyBUb3VjaCBFdmVudHNcblxuICBpZiAoIXN1cHBvcnQudG91Y2gpIHtcbiAgICBlbFtkb21NZXRob2RdKHRvdWNoRXZlbnRzLnN0YXJ0LCBzd2lwZXIub25Ub3VjaFN0YXJ0LCBmYWxzZSk7XG4gICAgZG9jdW1lbnRbZG9tTWV0aG9kXSh0b3VjaEV2ZW50cy5tb3ZlLCBzd2lwZXIub25Ub3VjaE1vdmUsIGNhcHR1cmUpO1xuICAgIGRvY3VtZW50W2RvbU1ldGhvZF0odG91Y2hFdmVudHMuZW5kLCBzd2lwZXIub25Ub3VjaEVuZCwgZmFsc2UpO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IHBhc3NpdmVMaXN0ZW5lciA9IHRvdWNoRXZlbnRzLnN0YXJ0ID09PSAndG91Y2hzdGFydCcgJiYgc3VwcG9ydC5wYXNzaXZlTGlzdGVuZXIgJiYgcGFyYW1zLnBhc3NpdmVMaXN0ZW5lcnMgPyB7XG4gICAgICBwYXNzaXZlOiB0cnVlLFxuICAgICAgY2FwdHVyZTogZmFsc2VcbiAgICB9IDogZmFsc2U7XG4gICAgZWxbZG9tTWV0aG9kXSh0b3VjaEV2ZW50cy5zdGFydCwgc3dpcGVyLm9uVG91Y2hTdGFydCwgcGFzc2l2ZUxpc3RlbmVyKTtcbiAgICBlbFtkb21NZXRob2RdKHRvdWNoRXZlbnRzLm1vdmUsIHN3aXBlci5vblRvdWNoTW92ZSwgc3VwcG9ydC5wYXNzaXZlTGlzdGVuZXIgPyB7XG4gICAgICBwYXNzaXZlOiBmYWxzZSxcbiAgICAgIGNhcHR1cmVcbiAgICB9IDogY2FwdHVyZSk7XG4gICAgZWxbZG9tTWV0aG9kXSh0b3VjaEV2ZW50cy5lbmQsIHN3aXBlci5vblRvdWNoRW5kLCBwYXNzaXZlTGlzdGVuZXIpO1xuXG4gICAgaWYgKHRvdWNoRXZlbnRzLmNhbmNlbCkge1xuICAgICAgZWxbZG9tTWV0aG9kXSh0b3VjaEV2ZW50cy5jYW5jZWwsIHN3aXBlci5vblRvdWNoRW5kLCBwYXNzaXZlTGlzdGVuZXIpO1xuICAgIH1cbiAgfSAvLyBQcmV2ZW50IExpbmtzIENsaWNrc1xuXG5cbiAgaWYgKHBhcmFtcy5wcmV2ZW50Q2xpY2tzIHx8IHBhcmFtcy5wcmV2ZW50Q2xpY2tzUHJvcGFnYXRpb24pIHtcbiAgICBlbFtkb21NZXRob2RdKCdjbGljaycsIHN3aXBlci5vbkNsaWNrLCB0cnVlKTtcbiAgfVxuXG4gIGlmIChwYXJhbXMuY3NzTW9kZSkge1xuICAgIHdyYXBwZXJFbFtkb21NZXRob2RdKCdzY3JvbGwnLCBzd2lwZXIub25TY3JvbGwpO1xuICB9IC8vIFJlc2l6ZSBoYW5kbGVyXG5cblxuICBpZiAocGFyYW1zLnVwZGF0ZU9uV2luZG93UmVzaXplKSB7XG4gICAgc3dpcGVyW3N3aXBlck1ldGhvZF0oZGV2aWNlLmlvcyB8fCBkZXZpY2UuYW5kcm9pZCA/ICdyZXNpemUgb3JpZW50YXRpb25jaGFuZ2Ugb2JzZXJ2ZXJVcGRhdGUnIDogJ3Jlc2l6ZSBvYnNlcnZlclVwZGF0ZScsIG9uUmVzaXplLCB0cnVlKTtcbiAgfSBlbHNlIHtcbiAgICBzd2lwZXJbc3dpcGVyTWV0aG9kXSgnb2JzZXJ2ZXJVcGRhdGUnLCBvblJlc2l6ZSwgdHJ1ZSk7XG4gIH1cbn07XG5cbmZ1bmN0aW9uIGF0dGFjaEV2ZW50cygpIHtcbiAgY29uc3Qgc3dpcGVyID0gdGhpcztcbiAgY29uc3QgZG9jdW1lbnQgPSBnZXREb2N1bWVudCgpO1xuICBjb25zdCB7XG4gICAgcGFyYW1zLFxuICAgIHN1cHBvcnRcbiAgfSA9IHN3aXBlcjtcbiAgc3dpcGVyLm9uVG91Y2hTdGFydCA9IG9uVG91Y2hTdGFydC5iaW5kKHN3aXBlcik7XG4gIHN3aXBlci5vblRvdWNoTW92ZSA9IG9uVG91Y2hNb3ZlLmJpbmQoc3dpcGVyKTtcbiAgc3dpcGVyLm9uVG91Y2hFbmQgPSBvblRvdWNoRW5kLmJpbmQoc3dpcGVyKTtcblxuICBpZiAocGFyYW1zLmNzc01vZGUpIHtcbiAgICBzd2lwZXIub25TY3JvbGwgPSBvblNjcm9sbC5iaW5kKHN3aXBlcik7XG4gIH1cblxuICBzd2lwZXIub25DbGljayA9IG9uQ2xpY2suYmluZChzd2lwZXIpO1xuXG4gIGlmIChzdXBwb3J0LnRvdWNoICYmICFkdW1teUV2ZW50QXR0YWNoZWQpIHtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgZHVtbXlFdmVudExpc3RlbmVyKTtcbiAgICBkdW1teUV2ZW50QXR0YWNoZWQgPSB0cnVlO1xuICB9XG5cbiAgZXZlbnRzKHN3aXBlciwgJ29uJyk7XG59XG5cbmZ1bmN0aW9uIGRldGFjaEV2ZW50cygpIHtcbiAgY29uc3Qgc3dpcGVyID0gdGhpcztcbiAgZXZlbnRzKHN3aXBlciwgJ29mZicpO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGF0dGFjaEV2ZW50cyxcbiAgZGV0YWNoRXZlbnRzXG59OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/events/index.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/events/onClick.js": +/*!****************************************************!*\ + !*** ./node_modules/swiper/core/events/onClick.js ***! + \****************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ onClick; }\n/* harmony export */ });\nfunction onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvZXZlbnRzL29uQ2xpY2suanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFlO0FBQ2Y7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvZXZlbnRzL29uQ2xpY2suanM/NjQzNSJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBvbkNsaWNrKGUpIHtcbiAgY29uc3Qgc3dpcGVyID0gdGhpcztcbiAgaWYgKCFzd2lwZXIuZW5hYmxlZCkgcmV0dXJuO1xuXG4gIGlmICghc3dpcGVyLmFsbG93Q2xpY2spIHtcbiAgICBpZiAoc3dpcGVyLnBhcmFtcy5wcmV2ZW50Q2xpY2tzKSBlLnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICBpZiAoc3dpcGVyLnBhcmFtcy5wcmV2ZW50Q2xpY2tzUHJvcGFnYXRpb24gJiYgc3dpcGVyLmFuaW1hdGluZykge1xuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgfVxuICB9XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/events/onClick.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/events/onResize.js": +/*!*****************************************************!*\ + !*** ./node_modules/swiper/core/events/onResize.js ***! + \*****************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ onResize; }\n/* harmony export */ });\nfunction onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvZXZlbnRzL29uUmVzaXplLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKLDBDQUEwQzs7QUFFMUM7QUFDQTtBQUNBLElBQUk7OztBQUdKO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxVQUFVOztBQUVkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zd2lwZXIvY29yZS9ldmVudHMvb25SZXNpemUuanM/ZjJlYyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBvblJlc2l6ZSgpIHtcbiAgY29uc3Qgc3dpcGVyID0gdGhpcztcbiAgY29uc3Qge1xuICAgIHBhcmFtcyxcbiAgICBlbFxuICB9ID0gc3dpcGVyO1xuICBpZiAoZWwgJiYgZWwub2Zmc2V0V2lkdGggPT09IDApIHJldHVybjsgLy8gQnJlYWtwb2ludHNcblxuICBpZiAocGFyYW1zLmJyZWFrcG9pbnRzKSB7XG4gICAgc3dpcGVyLnNldEJyZWFrcG9pbnQoKTtcbiAgfSAvLyBTYXZlIGxvY2tzXG5cblxuICBjb25zdCB7XG4gICAgYWxsb3dTbGlkZU5leHQsXG4gICAgYWxsb3dTbGlkZVByZXYsXG4gICAgc25hcEdyaWRcbiAgfSA9IHN3aXBlcjsgLy8gRGlzYWJsZSBsb2NrcyBvbiByZXNpemVcblxuICBzd2lwZXIuYWxsb3dTbGlkZU5leHQgPSB0cnVlO1xuICBzd2lwZXIuYWxsb3dTbGlkZVByZXYgPSB0cnVlO1xuICBzd2lwZXIudXBkYXRlU2l6ZSgpO1xuICBzd2lwZXIudXBkYXRlU2xpZGVzKCk7XG4gIHN3aXBlci51cGRhdGVTbGlkZXNDbGFzc2VzKCk7XG5cbiAgaWYgKChwYXJhbXMuc2xpZGVzUGVyVmlldyA9PT0gJ2F1dG8nIHx8IHBhcmFtcy5zbGlkZXNQZXJWaWV3ID4gMSkgJiYgc3dpcGVyLmlzRW5kICYmICFzd2lwZXIuaXNCZWdpbm5pbmcgJiYgIXN3aXBlci5wYXJhbXMuY2VudGVyZWRTbGlkZXMpIHtcbiAgICBzd2lwZXIuc2xpZGVUbyhzd2lwZXIuc2xpZGVzLmxlbmd0aCAtIDEsIDAsIGZhbHNlLCB0cnVlKTtcbiAgfSBlbHNlIHtcbiAgICBzd2lwZXIuc2xpZGVUbyhzd2lwZXIuYWN0aXZlSW5kZXgsIDAsIGZhbHNlLCB0cnVlKTtcbiAgfVxuXG4gIGlmIChzd2lwZXIuYXV0b3BsYXkgJiYgc3dpcGVyLmF1dG9wbGF5LnJ1bm5pbmcgJiYgc3dpcGVyLmF1dG9wbGF5LnBhdXNlZCkge1xuICAgIHN3aXBlci5hdXRvcGxheS5ydW4oKTtcbiAgfSAvLyBSZXR1cm4gbG9ja3MgYWZ0ZXIgcmVzaXplXG5cblxuICBzd2lwZXIuYWxsb3dTbGlkZVByZXYgPSBhbGxvd1NsaWRlUHJldjtcbiAgc3dpcGVyLmFsbG93U2xpZGVOZXh0ID0gYWxsb3dTbGlkZU5leHQ7XG5cbiAgaWYgKHN3aXBlci5wYXJhbXMud2F0Y2hPdmVyZmxvdyAmJiBzbmFwR3JpZCAhPT0gc3dpcGVyLnNuYXBHcmlkKSB7XG4gICAgc3dpcGVyLmNoZWNrT3ZlcmZsb3coKTtcbiAgfVxufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/events/onResize.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/events/onScroll.js": +/*!*****************************************************!*\ + !*** ./node_modules/swiper/core/events/onScroll.js ***! + \*****************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ onScroll; }\n/* harmony export */ });\nfunction onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\n if (swiper.translate === -0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvZXZlbnRzL29uU2Nyb2xsLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsSUFBSTs7O0FBR0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N3aXBlci9jb3JlL2V2ZW50cy9vblNjcm9sbC5qcz8zMzdlIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG9uU2Nyb2xsKCkge1xuICBjb25zdCBzd2lwZXIgPSB0aGlzO1xuICBjb25zdCB7XG4gICAgd3JhcHBlckVsLFxuICAgIHJ0bFRyYW5zbGF0ZSxcbiAgICBlbmFibGVkXG4gIH0gPSBzd2lwZXI7XG4gIGlmICghZW5hYmxlZCkgcmV0dXJuO1xuICBzd2lwZXIucHJldmlvdXNUcmFuc2xhdGUgPSBzd2lwZXIudHJhbnNsYXRlO1xuXG4gIGlmIChzd2lwZXIuaXNIb3Jpem9udGFsKCkpIHtcbiAgICBzd2lwZXIudHJhbnNsYXRlID0gLXdyYXBwZXJFbC5zY3JvbGxMZWZ0O1xuICB9IGVsc2Uge1xuICAgIHN3aXBlci50cmFuc2xhdGUgPSAtd3JhcHBlckVsLnNjcm9sbFRvcDtcbiAgfSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcblxuXG4gIGlmIChzd2lwZXIudHJhbnNsYXRlID09PSAtMCkgc3dpcGVyLnRyYW5zbGF0ZSA9IDA7XG4gIHN3aXBlci51cGRhdGVBY3RpdmVJbmRleCgpO1xuICBzd2lwZXIudXBkYXRlU2xpZGVzQ2xhc3NlcygpO1xuICBsZXQgbmV3UHJvZ3Jlc3M7XG4gIGNvbnN0IHRyYW5zbGF0ZXNEaWZmID0gc3dpcGVyLm1heFRyYW5zbGF0ZSgpIC0gc3dpcGVyLm1pblRyYW5zbGF0ZSgpO1xuXG4gIGlmICh0cmFuc2xhdGVzRGlmZiA9PT0gMCkge1xuICAgIG5ld1Byb2dyZXNzID0gMDtcbiAgfSBlbHNlIHtcbiAgICBuZXdQcm9ncmVzcyA9IChzd2lwZXIudHJhbnNsYXRlIC0gc3dpcGVyLm1pblRyYW5zbGF0ZSgpKSAvIHRyYW5zbGF0ZXNEaWZmO1xuICB9XG5cbiAgaWYgKG5ld1Byb2dyZXNzICE9PSBzd2lwZXIucHJvZ3Jlc3MpIHtcbiAgICBzd2lwZXIudXBkYXRlUHJvZ3Jlc3MocnRsVHJhbnNsYXRlID8gLXN3aXBlci50cmFuc2xhdGUgOiBzd2lwZXIudHJhbnNsYXRlKTtcbiAgfVxuXG4gIHN3aXBlci5lbWl0KCdzZXRUcmFuc2xhdGUnLCBzd2lwZXIudHJhbnNsYXRlLCBmYWxzZSk7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/events/onScroll.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/events/onTouchEnd.js": +/*!*******************************************************!*\ + !*** ./node_modules/swiper/core/events/onTouchEnd.js ***! + \*******************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ onTouchEnd; }\n/* harmony export */ });\n/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ \"./node_modules/swiper/shared/utils.js\");\n\nfunction onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n\n data.allowTouchCallbacks = false;\n\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n\n const touchEndTime = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.now)();\n const timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n swiper.updateClickedSlide(e);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.now)();\n (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.nextTick)(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n } // Find current slide\n\n\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n } // Find current slide size\n\n\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + increment);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvZXZlbnRzL29uVG91Y2hFbmQuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBc0Q7QUFDdkM7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0o7QUFDQTtBQUNBLElBQUk7OztBQUdKLHVCQUF1QixxREFBRztBQUMxQix1REFBdUQ7O0FBRXZEO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSx1QkFBdUIscURBQUc7QUFDMUIsRUFBRSwwREFBUTtBQUNWO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxJQUFJOzs7QUFHSjtBQUNBOztBQUVBLGtCQUFrQix1QkFBdUI7QUFDekM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGlGQUFpRjtBQUNqRjs7QUFFQTtBQUNBLG9GQUFvRjtBQUNwRjtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvZXZlbnRzL29uVG91Y2hFbmQuanM/YTQyOCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBub3csIG5leHRUaWNrIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3V0aWxzLmpzJztcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG9uVG91Y2hFbmQoZXZlbnQpIHtcbiAgY29uc3Qgc3dpcGVyID0gdGhpcztcbiAgY29uc3QgZGF0YSA9IHN3aXBlci50b3VjaEV2ZW50c0RhdGE7XG4gIGNvbnN0IHtcbiAgICBwYXJhbXMsXG4gICAgdG91Y2hlcyxcbiAgICBydGxUcmFuc2xhdGU6IHJ0bCxcbiAgICBzbGlkZXNHcmlkLFxuICAgIGVuYWJsZWRcbiAgfSA9IHN3aXBlcjtcbiAgaWYgKCFlbmFibGVkKSByZXR1cm47XG4gIGxldCBlID0gZXZlbnQ7XG4gIGlmIChlLm9yaWdpbmFsRXZlbnQpIGUgPSBlLm9yaWdpbmFsRXZlbnQ7XG5cbiAgaWYgKGRhdGEuYWxsb3dUb3VjaENhbGxiYWNrcykge1xuICAgIHN3aXBlci5lbWl0KCd0b3VjaEVuZCcsIGUpO1xuICB9XG5cbiAgZGF0YS5hbGxvd1RvdWNoQ2FsbGJhY2tzID0gZmFsc2U7XG5cbiAgaWYgKCFkYXRhLmlzVG91Y2hlZCkge1xuICAgIGlmIChkYXRhLmlzTW92ZWQgJiYgcGFyYW1zLmdyYWJDdXJzb3IpIHtcbiAgICAgIHN3aXBlci5zZXRHcmFiQ3Vyc29yKGZhbHNlKTtcbiAgICB9XG5cbiAgICBkYXRhLmlzTW92ZWQgPSBmYWxzZTtcbiAgICBkYXRhLnN0YXJ0TW92aW5nID0gZmFsc2U7XG4gICAgcmV0dXJuO1xuICB9IC8vIFJldHVybiBHcmFiIEN1cnNvclxuXG5cbiAgaWYgKHBhcmFtcy5ncmFiQ3Vyc29yICYmIGRhdGEuaXNNb3ZlZCAmJiBkYXRhLmlzVG91Y2hlZCAmJiAoc3dpcGVyLmFsbG93U2xpZGVOZXh0ID09PSB0cnVlIHx8IHN3aXBlci5hbGxvd1NsaWRlUHJldiA9PT0gdHJ1ZSkpIHtcbiAgICBzd2lwZXIuc2V0R3JhYkN1cnNvcihmYWxzZSk7XG4gIH0gLy8gVGltZSBkaWZmXG5cblxuICBjb25zdCB0b3VjaEVuZFRpbWUgPSBub3coKTtcbiAgY29uc3QgdGltZURpZmYgPSB0b3VjaEVuZFRpbWUgLSBkYXRhLnRvdWNoU3RhcnRUaW1lOyAvLyBUYXAsIGRvdWJsZVRhcCwgQ2xpY2tcblxuICBpZiAoc3dpcGVyLmFsbG93Q2xpY2spIHtcbiAgICBzd2lwZXIudXBkYXRlQ2xpY2tlZFNsaWRlKGUpO1xuICAgIHN3aXBlci5lbWl0KCd0YXAgY2xpY2snLCBlKTtcblxuICAgIGlmICh0aW1lRGlmZiA8IDMwMCAmJiB0b3VjaEVuZFRpbWUgLSBkYXRhLmxhc3RDbGlja1RpbWUgPCAzMDApIHtcbiAgICAgIHN3aXBlci5lbWl0KCdkb3VibGVUYXAgZG91YmxlQ2xpY2snLCBlKTtcbiAgICB9XG4gIH1cblxuICBkYXRhLmxhc3RDbGlja1RpbWUgPSBub3coKTtcbiAgbmV4dFRpY2soKCkgPT4ge1xuICAgIGlmICghc3dpcGVyLmRlc3Ryb3llZCkgc3dpcGVyLmFsbG93Q2xpY2sgPSB0cnVlO1xuICB9KTtcblxuICBpZiAoIWRhdGEuaXNUb3VjaGVkIHx8ICFkYXRhLmlzTW92ZWQgfHwgIXN3aXBlci5zd2lwZURpcmVjdGlvbiB8fCB0b3VjaGVzLmRpZmYgPT09IDAgfHwgZGF0YS5jdXJyZW50VHJhbnNsYXRlID09PSBkYXRhLnN0YXJ0VHJhbnNsYXRlKSB7XG4gICAgZGF0YS5pc1RvdWNoZWQgPSBmYWxzZTtcbiAgICBkYXRhLmlzTW92ZWQgPSBmYWxzZTtcbiAgICBkYXRhLnN0YXJ0TW92aW5nID0gZmFsc2U7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgZGF0YS5pc1RvdWNoZWQgPSBmYWxzZTtcbiAgZGF0YS5pc01vdmVkID0gZmFsc2U7XG4gIGRhdGEuc3RhcnRNb3ZpbmcgPSBmYWxzZTtcbiAgbGV0IGN1cnJlbnRQb3M7XG5cbiAgaWYgKHBhcmFtcy5mb2xsb3dGaW5nZXIpIHtcbiAgICBjdXJyZW50UG9zID0gcnRsID8gc3dpcGVyLnRyYW5zbGF0ZSA6IC1zd2lwZXIudHJhbnNsYXRlO1xuICB9IGVsc2Uge1xuICAgIGN1cnJlbnRQb3MgPSAtZGF0YS5jdXJyZW50VHJhbnNsYXRlO1xuICB9XG5cbiAgaWYgKHBhcmFtcy5jc3NNb2RlKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKHN3aXBlci5wYXJhbXMuZnJlZU1vZGUgJiYgcGFyYW1zLmZyZWVNb2RlLmVuYWJsZWQpIHtcbiAgICBzd2lwZXIuZnJlZU1vZGUub25Ub3VjaEVuZCh7XG4gICAgICBjdXJyZW50UG9zXG4gICAgfSk7XG4gICAgcmV0dXJuO1xuICB9IC8vIEZpbmQgY3VycmVudCBzbGlkZVxuXG5cbiAgbGV0IHN0b3BJbmRleCA9IDA7XG4gIGxldCBncm91cFNpemUgPSBzd2lwZXIuc2xpZGVzU2l6ZXNHcmlkWzBdO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2xpZGVzR3JpZC5sZW5ndGg7IGkgKz0gaSA8IHBhcmFtcy5zbGlkZXNQZXJHcm91cFNraXAgPyAxIDogcGFyYW1zLnNsaWRlc1Blckdyb3VwKSB7XG4gICAgY29uc3QgaW5jcmVtZW50ID0gaSA8IHBhcmFtcy5zbGlkZXNQZXJHcm91cFNraXAgLSAxID8gMSA6IHBhcmFtcy5zbGlkZXNQZXJHcm91cDtcblxuICAgIGlmICh0eXBlb2Ygc2xpZGVzR3JpZFtpICsgaW5jcmVtZW50XSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGlmIChjdXJyZW50UG9zID49IHNsaWRlc0dyaWRbaV0gJiYgY3VycmVudFBvcyA8IHNsaWRlc0dyaWRbaSArIGluY3JlbWVudF0pIHtcbiAgICAgICAgc3RvcEluZGV4ID0gaTtcbiAgICAgICAgZ3JvdXBTaXplID0gc2xpZGVzR3JpZFtpICsgaW5jcmVtZW50XSAtIHNsaWRlc0dyaWRbaV07XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChjdXJyZW50UG9zID49IHNsaWRlc0dyaWRbaV0pIHtcbiAgICAgIHN0b3BJbmRleCA9IGk7XG4gICAgICBncm91cFNpemUgPSBzbGlkZXNHcmlkW3NsaWRlc0dyaWQubGVuZ3RoIC0gMV0gLSBzbGlkZXNHcmlkW3NsaWRlc0dyaWQubGVuZ3RoIC0gMl07XG4gICAgfVxuICB9IC8vIEZpbmQgY3VycmVudCBzbGlkZSBzaXplXG5cblxuICBjb25zdCByYXRpbyA9IChjdXJyZW50UG9zIC0gc2xpZGVzR3JpZFtzdG9wSW5kZXhdKSAvIGdyb3VwU2l6ZTtcbiAgY29uc3QgaW5jcmVtZW50ID0gc3RvcEluZGV4IDwgcGFyYW1zLnNsaWRlc1Blckdyb3VwU2tpcCAtIDEgPyAxIDogcGFyYW1zLnNsaWRlc1Blckdyb3VwO1xuXG4gIGlmICh0aW1lRGlmZiA+IHBhcmFtcy5sb25nU3dpcGVzTXMpIHtcbiAgICAvLyBMb25nIHRvdWNoZXNcbiAgICBpZiAoIXBhcmFtcy5sb25nU3dpcGVzKSB7XG4gICAgICBzd2lwZXIuc2xpZGVUbyhzd2lwZXIuYWN0aXZlSW5kZXgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChzd2lwZXIuc3dpcGVEaXJlY3Rpb24gPT09ICduZXh0Jykge1xuICAgICAgaWYgKHJhdGlvID49IHBhcmFtcy5sb25nU3dpcGVzUmF0aW8pIHN3aXBlci5zbGlkZVRvKHN0b3BJbmRleCArIGluY3JlbWVudCk7ZWxzZSBzd2lwZXIuc2xpZGVUbyhzdG9wSW5kZXgpO1xuICAgIH1cblxuICAgIGlmIChzd2lwZXIuc3dpcGVEaXJlY3Rpb24gPT09ICdwcmV2Jykge1xuICAgICAgaWYgKHJhdGlvID4gMSAtIHBhcmFtcy5sb25nU3dpcGVzUmF0aW8pIHN3aXBlci5zbGlkZVRvKHN0b3BJbmRleCArIGluY3JlbWVudCk7ZWxzZSBzd2lwZXIuc2xpZGVUbyhzdG9wSW5kZXgpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBTaG9ydCBzd2lwZXNcbiAgICBpZiAoIXBhcmFtcy5zaG9ydFN3aXBlcykge1xuICAgICAgc3dpcGVyLnNsaWRlVG8oc3dpcGVyLmFjdGl2ZUluZGV4KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBpc05hdkJ1dHRvblRhcmdldCA9IHN3aXBlci5uYXZpZ2F0aW9uICYmIChlLnRhcmdldCA9PT0gc3dpcGVyLm5hdmlnYXRpb24ubmV4dEVsIHx8IGUudGFyZ2V0ID09PSBzd2lwZXIubmF2aWdhdGlvbi5wcmV2RWwpO1xuXG4gICAgaWYgKCFpc05hdkJ1dHRvblRhcmdldCkge1xuICAgICAgaWYgKHN3aXBlci5zd2lwZURpcmVjdGlvbiA9PT0gJ25leHQnKSB7XG4gICAgICAgIHN3aXBlci5zbGlkZVRvKHN0b3BJbmRleCArIGluY3JlbWVudCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChzd2lwZXIuc3dpcGVEaXJlY3Rpb24gPT09ICdwcmV2Jykge1xuICAgICAgICBzd2lwZXIuc2xpZGVUbyhzdG9wSW5kZXgpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZS50YXJnZXQgPT09IHN3aXBlci5uYXZpZ2F0aW9uLm5leHRFbCkge1xuICAgICAgc3dpcGVyLnNsaWRlVG8oc3RvcEluZGV4ICsgaW5jcmVtZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3dpcGVyLnNsaWRlVG8oc3RvcEluZGV4KTtcbiAgICB9XG4gIH1cbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/events/onTouchEnd.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/events/onTouchMove.js": +/*!********************************************************!*\ + !*** ./node_modules/swiper/core/events/onTouchMove.js ***! + \********************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ onTouchMove; }\n/* harmony export */ });\n/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ \"./node_modules/ssr-window/ssr-window.esm.js\");\n/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ \"./node_modules/swiper/shared/dom.js\");\n/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/utils.js */ \"./node_modules/swiper/shared/utils.js\");\n\n\n\nfunction onTouchMove(event) {\n const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n return;\n }\n\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n const targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n const pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n const pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.now)();\n }\n\n return;\n }\n\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(e.target).is(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n\n if (!data.startMoving) {\n return;\n }\n\n swiper.allowClick = false;\n\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop && !params.cssMode) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n let diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvZXZlbnRzL29uVG91Y2hNb3ZlLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBeUM7QUFDTDtBQUNRO0FBQzdCO0FBQ2YsbUJBQW1CLHVEQUFXO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCw0QkFBNEIscURBQUc7QUFDL0I7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLCtDQUErQywwREFBQztBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLHNDQUFzQzs7QUFFdEM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7OztBQUdKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7OztBQUdKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBLHNEQUFzRDs7QUFFdEQ7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7OztBQUdKLGdEQUFnRDs7QUFFaEQ7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvZXZlbnRzL29uVG91Y2hNb3ZlLmpzP2M4NWIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0RG9jdW1lbnQgfSBmcm9tICdzc3Itd2luZG93JztcbmltcG9ydCAkIGZyb20gJy4uLy4uL3NoYXJlZC9kb20uanMnO1xuaW1wb3J0IHsgbm93IH0gZnJvbSAnLi4vLi4vc2hhcmVkL3V0aWxzLmpzJztcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG9uVG91Y2hNb3ZlKGV2ZW50KSB7XG4gIGNvbnN0IGRvY3VtZW50ID0gZ2V0RG9jdW1lbnQoKTtcbiAgY29uc3Qgc3dpcGVyID0gdGhpcztcbiAgY29uc3QgZGF0YSA9IHN3aXBlci50b3VjaEV2ZW50c0RhdGE7XG4gIGNvbnN0IHtcbiAgICBwYXJhbXMsXG4gICAgdG91Y2hlcyxcbiAgICBydGxUcmFuc2xhdGU6IHJ0bCxcbiAgICBlbmFibGVkXG4gIH0gPSBzd2lwZXI7XG4gIGlmICghZW5hYmxlZCkgcmV0dXJuO1xuICBsZXQgZSA9IGV2ZW50O1xuICBpZiAoZS5vcmlnaW5hbEV2ZW50KSBlID0gZS5vcmlnaW5hbEV2ZW50O1xuXG4gIGlmICghZGF0YS5pc1RvdWNoZWQpIHtcbiAgICBpZiAoZGF0YS5zdGFydE1vdmluZyAmJiBkYXRhLmlzU2Nyb2xsaW5nKSB7XG4gICAgICBzd2lwZXIuZW1pdCgndG91Y2hNb3ZlT3Bwb3NpdGUnLCBlKTtcbiAgICB9XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoZGF0YS5pc1RvdWNoRXZlbnQgJiYgZS50eXBlICE9PSAndG91Y2htb3ZlJykgcmV0dXJuO1xuICBjb25zdCB0YXJnZXRUb3VjaCA9IGUudHlwZSA9PT0gJ3RvdWNobW92ZScgJiYgZS50YXJnZXRUb3VjaGVzICYmIChlLnRhcmdldFRvdWNoZXNbMF0gfHwgZS5jaGFuZ2VkVG91Y2hlc1swXSk7XG4gIGNvbnN0IHBhZ2VYID0gZS50eXBlID09PSAndG91Y2htb3ZlJyA/IHRhcmdldFRvdWNoLnBhZ2VYIDogZS5wYWdlWDtcbiAgY29uc3QgcGFnZVkgPSBlLnR5cGUgPT09ICd0b3VjaG1vdmUnID8gdGFyZ2V0VG91Y2gucGFnZVkgOiBlLnBhZ2VZO1xuXG4gIGlmIChlLnByZXZlbnRlZEJ5TmVzdGVkU3dpcGVyKSB7XG4gICAgdG91Y2hlcy5zdGFydFggPSBwYWdlWDtcbiAgICB0b3VjaGVzLnN0YXJ0WSA9IHBhZ2VZO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmICghc3dpcGVyLmFsbG93VG91Y2hNb3ZlKSB7XG4gICAgLy8gaXNNb3ZlZCA9IHRydWU7XG4gICAgc3dpcGVyLmFsbG93Q2xpY2sgPSBmYWxzZTtcblxuICAgIGlmIChkYXRhLmlzVG91Y2hlZCkge1xuICAgICAgT2JqZWN0LmFzc2lnbih0b3VjaGVzLCB7XG4gICAgICAgIHN0YXJ0WDogcGFnZVgsXG4gICAgICAgIHN0YXJ0WTogcGFnZVksXG4gICAgICAgIGN1cnJlbnRYOiBwYWdlWCxcbiAgICAgICAgY3VycmVudFk6IHBhZ2VZXG4gICAgICB9KTtcbiAgICAgIGRhdGEudG91Y2hTdGFydFRpbWUgPSBub3coKTtcbiAgICB9XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoZGF0YS5pc1RvdWNoRXZlbnQgJiYgcGFyYW1zLnRvdWNoUmVsZWFzZU9uRWRnZXMgJiYgIXBhcmFtcy5sb29wKSB7XG4gICAgaWYgKHN3aXBlci5pc1ZlcnRpY2FsKCkpIHtcbiAgICAgIC8vIFZlcnRpY2FsXG4gICAgICBpZiAocGFnZVkgPCB0b3VjaGVzLnN0YXJ0WSAmJiBzd2lwZXIudHJhbnNsYXRlIDw9IHN3aXBlci5tYXhUcmFuc2xhdGUoKSB8fCBwYWdlWSA+IHRvdWNoZXMuc3RhcnRZICYmIHN3aXBlci50cmFuc2xhdGUgPj0gc3dpcGVyLm1pblRyYW5zbGF0ZSgpKSB7XG4gICAgICAgIGRhdGEuaXNUb3VjaGVkID0gZmFsc2U7XG4gICAgICAgIGRhdGEuaXNNb3ZlZCA9IGZhbHNlO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChwYWdlWCA8IHRvdWNoZXMuc3RhcnRYICYmIHN3aXBlci50cmFuc2xhdGUgPD0gc3dpcGVyLm1heFRyYW5zbGF0ZSgpIHx8IHBhZ2VYID4gdG91Y2hlcy5zdGFydFggJiYgc3dpcGVyLnRyYW5zbGF0ZSA+PSBzd2lwZXIubWluVHJhbnNsYXRlKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBpZiAoZGF0YS5pc1RvdWNoRXZlbnQgJiYgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkge1xuICAgIGlmIChlLnRhcmdldCA9PT0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCAmJiAkKGUudGFyZ2V0KS5pcyhkYXRhLmZvY3VzYWJsZUVsZW1lbnRzKSkge1xuICAgICAgZGF0YS5pc01vdmVkID0gdHJ1ZTtcbiAgICAgIHN3aXBlci5hbGxvd0NsaWNrID0gZmFsc2U7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgaWYgKGRhdGEuYWxsb3dUb3VjaENhbGxiYWNrcykge1xuICAgIHN3aXBlci5lbWl0KCd0b3VjaE1vdmUnLCBlKTtcbiAgfVxuXG4gIGlmIChlLnRhcmdldFRvdWNoZXMgJiYgZS50YXJnZXRUb3VjaGVzLmxlbmd0aCA+IDEpIHJldHVybjtcbiAgdG91Y2hlcy5jdXJyZW50WCA9IHBhZ2VYO1xuICB0b3VjaGVzLmN1cnJlbnRZID0gcGFnZVk7XG4gIGNvbnN0IGRpZmZYID0gdG91Y2hlcy5jdXJyZW50WCAtIHRvdWNoZXMuc3RhcnRYO1xuICBjb25zdCBkaWZmWSA9IHRvdWNoZXMuY3VycmVudFkgLSB0b3VjaGVzLnN0YXJ0WTtcbiAgaWYgKHN3aXBlci5wYXJhbXMudGhyZXNob2xkICYmIE1hdGguc3FydChkaWZmWCAqKiAyICsgZGlmZlkgKiogMikgPCBzd2lwZXIucGFyYW1zLnRocmVzaG9sZCkgcmV0dXJuO1xuXG4gIGlmICh0eXBlb2YgZGF0YS5pc1Njcm9sbGluZyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBsZXQgdG91Y2hBbmdsZTtcblxuICAgIGlmIChzd2lwZXIuaXNIb3Jpem9udGFsKCkgJiYgdG91Y2hlcy5jdXJyZW50WSA9PT0gdG91Y2hlcy5zdGFydFkgfHwgc3dpcGVyLmlzVmVydGljYWwoKSAmJiB0b3VjaGVzLmN1cnJlbnRYID09PSB0b3VjaGVzLnN0YXJ0WCkge1xuICAgICAgZGF0YS5pc1Njcm9sbGluZyA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAgIGlmIChkaWZmWCAqIGRpZmZYICsgZGlmZlkgKiBkaWZmWSA+PSAyNSkge1xuICAgICAgICB0b3VjaEFuZ2xlID0gTWF0aC5hdGFuMihNYXRoLmFicyhkaWZmWSksIE1hdGguYWJzKGRpZmZYKSkgKiAxODAgLyBNYXRoLlBJO1xuICAgICAgICBkYXRhLmlzU2Nyb2xsaW5nID0gc3dpcGVyLmlzSG9yaXpvbnRhbCgpID8gdG91Y2hBbmdsZSA+IHBhcmFtcy50b3VjaEFuZ2xlIDogOTAgLSB0b3VjaEFuZ2xlID4gcGFyYW1zLnRvdWNoQW5nbGU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKGRhdGEuaXNTY3JvbGxpbmcpIHtcbiAgICBzd2lwZXIuZW1pdCgndG91Y2hNb3ZlT3Bwb3NpdGUnLCBlKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgZGF0YS5zdGFydE1vdmluZyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBpZiAodG91Y2hlcy5jdXJyZW50WCAhPT0gdG91Y2hlcy5zdGFydFggfHwgdG91Y2hlcy5jdXJyZW50WSAhPT0gdG91Y2hlcy5zdGFydFkpIHtcbiAgICAgIGRhdGEuc3RhcnRNb3ZpbmcgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGlmIChkYXRhLmlzU2Nyb2xsaW5nKSB7XG4gICAgZGF0YS5pc1RvdWNoZWQgPSBmYWxzZTtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoIWRhdGEuc3RhcnRNb3ZpbmcpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBzd2lwZXIuYWxsb3dDbGljayA9IGZhbHNlO1xuXG4gIGlmICghcGFyYW1zLmNzc01vZGUgJiYgZS5jYW5jZWxhYmxlKSB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgaWYgKHBhcmFtcy50b3VjaE1vdmVTdG9wUHJvcGFnYXRpb24gJiYgIXBhcmFtcy5uZXN0ZWQpIHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgaWYgKCFkYXRhLmlzTW92ZWQpIHtcbiAgICBpZiAocGFyYW1zLmxvb3AgJiYgIXBhcmFtcy5jc3NNb2RlKSB7XG4gICAgICBzd2lwZXIubG9vcEZpeCgpO1xuICAgIH1cblxuICAgIGRhdGEuc3RhcnRUcmFuc2xhdGUgPSBzd2lwZXIuZ2V0VHJhbnNsYXRlKCk7XG4gICAgc3dpcGVyLnNldFRyYW5zaXRpb24oMCk7XG5cbiAgICBpZiAoc3dpcGVyLmFuaW1hdGluZykge1xuICAgICAgc3dpcGVyLiR3cmFwcGVyRWwudHJpZ2dlcignd2Via2l0VHJhbnNpdGlvbkVuZCB0cmFuc2l0aW9uZW5kJyk7XG4gICAgfVxuXG4gICAgZGF0YS5hbGxvd01vbWVudHVtQm91bmNlID0gZmFsc2U7IC8vIEdyYWIgQ3Vyc29yXG5cbiAgICBpZiAocGFyYW1zLmdyYWJDdXJzb3IgJiYgKHN3aXBlci5hbGxvd1NsaWRlTmV4dCA9PT0gdHJ1ZSB8fCBzd2lwZXIuYWxsb3dTbGlkZVByZXYgPT09IHRydWUpKSB7XG4gICAgICBzd2lwZXIuc2V0R3JhYkN1cnNvcih0cnVlKTtcbiAgICB9XG5cbiAgICBzd2lwZXIuZW1pdCgnc2xpZGVyRmlyc3RNb3ZlJywgZSk7XG4gIH1cblxuICBzd2lwZXIuZW1pdCgnc2xpZGVyTW92ZScsIGUpO1xuICBkYXRhLmlzTW92ZWQgPSB0cnVlO1xuICBsZXQgZGlmZiA9IHN3aXBlci5pc0hvcml6b250YWwoKSA/IGRpZmZYIDogZGlmZlk7XG4gIHRvdWNoZXMuZGlmZiA9IGRpZmY7XG4gIGRpZmYgKj0gcGFyYW1zLnRvdWNoUmF0aW87XG4gIGlmIChydGwpIGRpZmYgPSAtZGlmZjtcbiAgc3dpcGVyLnN3aXBlRGlyZWN0aW9uID0gZGlmZiA+IDAgPyAncHJldicgOiAnbmV4dCc7XG4gIGRhdGEuY3VycmVudFRyYW5zbGF0ZSA9IGRpZmYgKyBkYXRhLnN0YXJ0VHJhbnNsYXRlO1xuICBsZXQgZGlzYWJsZVBhcmVudFN3aXBlciA9IHRydWU7XG4gIGxldCByZXNpc3RhbmNlUmF0aW8gPSBwYXJhbXMucmVzaXN0YW5jZVJhdGlvO1xuXG4gIGlmIChwYXJhbXMudG91Y2hSZWxlYXNlT25FZGdlcykge1xuICAgIHJlc2lzdGFuY2VSYXRpbyA9IDA7XG4gIH1cblxuICBpZiAoZGlmZiA+IDAgJiYgZGF0YS5jdXJyZW50VHJhbnNsYXRlID4gc3dpcGVyLm1pblRyYW5zbGF0ZSgpKSB7XG4gICAgZGlzYWJsZVBhcmVudFN3aXBlciA9IGZhbHNlO1xuICAgIGlmIChwYXJhbXMucmVzaXN0YW5jZSkgZGF0YS5jdXJyZW50VHJhbnNsYXRlID0gc3dpcGVyLm1pblRyYW5zbGF0ZSgpIC0gMSArICgtc3dpcGVyLm1pblRyYW5zbGF0ZSgpICsgZGF0YS5zdGFydFRyYW5zbGF0ZSArIGRpZmYpICoqIHJlc2lzdGFuY2VSYXRpbztcbiAgfSBlbHNlIGlmIChkaWZmIDwgMCAmJiBkYXRhLmN1cnJlbnRUcmFuc2xhdGUgPCBzd2lwZXIubWF4VHJhbnNsYXRlKCkpIHtcbiAgICBkaXNhYmxlUGFyZW50U3dpcGVyID0gZmFsc2U7XG4gICAgaWYgKHBhcmFtcy5yZXNpc3RhbmNlKSBkYXRhLmN1cnJlbnRUcmFuc2xhdGUgPSBzd2lwZXIubWF4VHJhbnNsYXRlKCkgKyAxIC0gKHN3aXBlci5tYXhUcmFuc2xhdGUoKSAtIGRhdGEuc3RhcnRUcmFuc2xhdGUgLSBkaWZmKSAqKiByZXNpc3RhbmNlUmF0aW87XG4gIH1cblxuICBpZiAoZGlzYWJsZVBhcmVudFN3aXBlcikge1xuICAgIGUucHJldmVudGVkQnlOZXN0ZWRTd2lwZXIgPSB0cnVlO1xuICB9IC8vIERpcmVjdGlvbnMgbG9ja3NcblxuXG4gIGlmICghc3dpcGVyLmFsbG93U2xpZGVOZXh0ICYmIHN3aXBlci5zd2lwZURpcmVjdGlvbiA9PT0gJ25leHQnICYmIGRhdGEuY3VycmVudFRyYW5zbGF0ZSA8IGRhdGEuc3RhcnRUcmFuc2xhdGUpIHtcbiAgICBkYXRhLmN1cnJlbnRUcmFuc2xhdGUgPSBkYXRhLnN0YXJ0VHJhbnNsYXRlO1xuICB9XG5cbiAgaWYgKCFzd2lwZXIuYWxsb3dTbGlkZVByZXYgJiYgc3dpcGVyLnN3aXBlRGlyZWN0aW9uID09PSAncHJldicgJiYgZGF0YS5jdXJyZW50VHJhbnNsYXRlID4gZGF0YS5zdGFydFRyYW5zbGF0ZSkge1xuICAgIGRhdGEuY3VycmVudFRyYW5zbGF0ZSA9IGRhdGEuc3RhcnRUcmFuc2xhdGU7XG4gIH1cblxuICBpZiAoIXN3aXBlci5hbGxvd1NsaWRlUHJldiAmJiAhc3dpcGVyLmFsbG93U2xpZGVOZXh0KSB7XG4gICAgZGF0YS5jdXJyZW50VHJhbnNsYXRlID0gZGF0YS5zdGFydFRyYW5zbGF0ZTtcbiAgfSAvLyBUaHJlc2hvbGRcblxuXG4gIGlmIChwYXJhbXMudGhyZXNob2xkID4gMCkge1xuICAgIGlmIChNYXRoLmFicyhkaWZmKSA+IHBhcmFtcy50aHJlc2hvbGQgfHwgZGF0YS5hbGxvd1RocmVzaG9sZE1vdmUpIHtcbiAgICAgIGlmICghZGF0YS5hbGxvd1RocmVzaG9sZE1vdmUpIHtcbiAgICAgICAgZGF0YS5hbGxvd1RocmVzaG9sZE1vdmUgPSB0cnVlO1xuICAgICAgICB0b3VjaGVzLnN0YXJ0WCA9IHRvdWNoZXMuY3VycmVudFg7XG4gICAgICAgIHRvdWNoZXMuc3RhcnRZID0gdG91Y2hlcy5jdXJyZW50WTtcbiAgICAgICAgZGF0YS5jdXJyZW50VHJhbnNsYXRlID0gZGF0YS5zdGFydFRyYW5zbGF0ZTtcbiAgICAgICAgdG91Y2hlcy5kaWZmID0gc3dpcGVyLmlzSG9yaXpvbnRhbCgpID8gdG91Y2hlcy5jdXJyZW50WCAtIHRvdWNoZXMuc3RhcnRYIDogdG91Y2hlcy5jdXJyZW50WSAtIHRvdWNoZXMuc3RhcnRZO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGRhdGEuY3VycmVudFRyYW5zbGF0ZSA9IGRhdGEuc3RhcnRUcmFuc2xhdGU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgaWYgKCFwYXJhbXMuZm9sbG93RmluZ2VyIHx8IHBhcmFtcy5jc3NNb2RlKSByZXR1cm47IC8vIFVwZGF0ZSBhY3RpdmUgaW5kZXggaW4gZnJlZSBtb2RlXG5cbiAgaWYgKHBhcmFtcy5mcmVlTW9kZSAmJiBwYXJhbXMuZnJlZU1vZGUuZW5hYmxlZCAmJiBzd2lwZXIuZnJlZU1vZGUgfHwgcGFyYW1zLndhdGNoU2xpZGVzUHJvZ3Jlc3MpIHtcbiAgICBzd2lwZXIudXBkYXRlQWN0aXZlSW5kZXgoKTtcbiAgICBzd2lwZXIudXBkYXRlU2xpZGVzQ2xhc3NlcygpO1xuICB9XG5cbiAgaWYgKHN3aXBlci5wYXJhbXMuZnJlZU1vZGUgJiYgcGFyYW1zLmZyZWVNb2RlLmVuYWJsZWQgJiYgc3dpcGVyLmZyZWVNb2RlKSB7XG4gICAgc3dpcGVyLmZyZWVNb2RlLm9uVG91Y2hNb3ZlKCk7XG4gIH0gLy8gVXBkYXRlIHByb2dyZXNzXG5cblxuICBzd2lwZXIudXBkYXRlUHJvZ3Jlc3MoZGF0YS5jdXJyZW50VHJhbnNsYXRlKTsgLy8gVXBkYXRlIHRyYW5zbGF0ZVxuXG4gIHN3aXBlci5zZXRUcmFuc2xhdGUoZGF0YS5jdXJyZW50VHJhbnNsYXRlKTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/events/onTouchMove.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/events/onTouchStart.js": +/*!*********************************************************!*\ + !*** ./node_modules/swiper/core/events/onTouchStart.js ***! + \*********************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ onTouchStart; }\n/* harmony export */ });\n/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ \"./node_modules/ssr-window/ssr-window.esm.js\");\n/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ \"./node_modules/swiper/shared/dom.js\");\n/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/utils.js */ \"./node_modules/swiper/shared/utils.js\");\n\n\n // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\n\nfunction closestElement(selector, base = this) {\n function __closestFrom(el) {\n if (!el || el === (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)() || el === (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n return found || __closestFrom(el.getRootNode().host);\n }\n\n return __closestFrom(base);\n}\n\nfunction onTouchStart(event) {\n const swiper = this;\n const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)();\n const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let $targetEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return; // change target el for shadow root component\n\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n\n if (swipingClassHasValue && e.target && e.target.shadowRoot && event.path && event.path[0]) {\n $targetEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(event.path[0]);\n }\n\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot); // use closestElement for shadow root element to get the actual closest for nested shadow root element\n\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, e.target) : $targetEl.closest(noSwipingSelector)[0])) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.now)();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n let preventDefault = true;\n if ($targetEl.is(data.focusableElements)) preventDefault = false;\n\n if (document.activeElement && (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n\n swiper.emit('touchStart', e);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvZXZlbnRzL29uVG91Y2hTdGFydC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQW9EO0FBQ2hCO0FBQ1EsQ0FBQzs7QUFFN0M7QUFDQTtBQUNBLHNCQUFzQix1REFBVyxhQUFhLHFEQUFTO0FBQ3ZEO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRWU7QUFDZjtBQUNBLG1CQUFtQix1REFBVztBQUM5QixpQkFBaUIscURBQVM7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxrQkFBa0IsMERBQUM7O0FBRW5CO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBOEM7O0FBRTlDOztBQUVBO0FBQ0EsZ0JBQWdCLDBEQUFDO0FBQ2pCOztBQUVBLHNGQUFzRixzQkFBc0I7QUFDNUcsOERBQThEOztBQUU5RDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DOztBQUVuQztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSx3QkFBd0IscURBQUc7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLGtDQUFrQywwREFBQztBQUNuQztBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N3aXBlci9jb3JlL2V2ZW50cy9vblRvdWNoU3RhcnQuanM/NDJjYyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRXaW5kb3csIGdldERvY3VtZW50IH0gZnJvbSAnc3NyLXdpbmRvdyc7XG5pbXBvcnQgJCBmcm9tICcuLi8uLi9zaGFyZWQvZG9tLmpzJztcbmltcG9ydCB7IG5vdyB9IGZyb20gJy4uLy4uL3NoYXJlZC91dGlscy5qcyc7IC8vIE1vZGlmaWVkIGZyb20gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNTQ1MjA1NTQvY3VzdG9tLWVsZW1lbnQtZ2V0cm9vdG5vZGUtY2xvc2VzdC1mdW5jdGlvbi1jcm9zc2luZy1tdWx0aXBsZS1wYXJlbnQtc2hhZG93ZFxuXG5mdW5jdGlvbiBjbG9zZXN0RWxlbWVudChzZWxlY3RvciwgYmFzZSA9IHRoaXMpIHtcbiAgZnVuY3Rpb24gX19jbG9zZXN0RnJvbShlbCkge1xuICAgIGlmICghZWwgfHwgZWwgPT09IGdldERvY3VtZW50KCkgfHwgZWwgPT09IGdldFdpbmRvdygpKSByZXR1cm4gbnVsbDtcbiAgICBpZiAoZWwuYXNzaWduZWRTbG90KSBlbCA9IGVsLmFzc2lnbmVkU2xvdDtcbiAgICBjb25zdCBmb3VuZCA9IGVsLmNsb3Nlc3Qoc2VsZWN0b3IpO1xuICAgIHJldHVybiBmb3VuZCB8fCBfX2Nsb3Nlc3RGcm9tKGVsLmdldFJvb3ROb2RlKCkuaG9zdCk7XG4gIH1cblxuICByZXR1cm4gX19jbG9zZXN0RnJvbShiYXNlKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gb25Ub3VjaFN0YXJ0KGV2ZW50KSB7XG4gIGNvbnN0IHN3aXBlciA9IHRoaXM7XG4gIGNvbnN0IGRvY3VtZW50ID0gZ2V0RG9jdW1lbnQoKTtcbiAgY29uc3Qgd2luZG93ID0gZ2V0V2luZG93KCk7XG4gIGNvbnN0IGRhdGEgPSBzd2lwZXIudG91Y2hFdmVudHNEYXRhO1xuICBjb25zdCB7XG4gICAgcGFyYW1zLFxuICAgIHRvdWNoZXMsXG4gICAgZW5hYmxlZFxuICB9ID0gc3dpcGVyO1xuICBpZiAoIWVuYWJsZWQpIHJldHVybjtcblxuICBpZiAoc3dpcGVyLmFuaW1hdGluZyAmJiBwYXJhbXMucHJldmVudEludGVyYWN0aW9uT25UcmFuc2l0aW9uKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKCFzd2lwZXIuYW5pbWF0aW5nICYmIHBhcmFtcy5jc3NNb2RlICYmIHBhcmFtcy5sb29wKSB7XG4gICAgc3dpcGVyLmxvb3BGaXgoKTtcbiAgfVxuXG4gIGxldCBlID0gZXZlbnQ7XG4gIGlmIChlLm9yaWdpbmFsRXZlbnQpIGUgPSBlLm9yaWdpbmFsRXZlbnQ7XG4gIGxldCAkdGFyZ2V0RWwgPSAkKGUudGFyZ2V0KTtcblxuICBpZiAocGFyYW1zLnRvdWNoRXZlbnRzVGFyZ2V0ID09PSAnd3JhcHBlcicpIHtcbiAgICBpZiAoISR0YXJnZXRFbC5jbG9zZXN0KHN3aXBlci53cmFwcGVyRWwpLmxlbmd0aCkgcmV0dXJuO1xuICB9XG5cbiAgZGF0YS5pc1RvdWNoRXZlbnQgPSBlLnR5cGUgPT09ICd0b3VjaHN0YXJ0JztcbiAgaWYgKCFkYXRhLmlzVG91Y2hFdmVudCAmJiAnd2hpY2gnIGluIGUgJiYgZS53aGljaCA9PT0gMykgcmV0dXJuO1xuICBpZiAoIWRhdGEuaXNUb3VjaEV2ZW50ICYmICdidXR0b24nIGluIGUgJiYgZS5idXR0b24gPiAwKSByZXR1cm47XG4gIGlmIChkYXRhLmlzVG91Y2hlZCAmJiBkYXRhLmlzTW92ZWQpIHJldHVybjsgLy8gY2hhbmdlIHRhcmdldCBlbCBmb3Igc2hhZG93IHJvb3QgY29tcG9uZW50XG5cbiAgY29uc3Qgc3dpcGluZ0NsYXNzSGFzVmFsdWUgPSAhIXBhcmFtcy5ub1N3aXBpbmdDbGFzcyAmJiBwYXJhbXMubm9Td2lwaW5nQ2xhc3MgIT09ICcnO1xuXG4gIGlmIChzd2lwaW5nQ2xhc3NIYXNWYWx1ZSAmJiBlLnRhcmdldCAmJiBlLnRhcmdldC5zaGFkb3dSb290ICYmIGV2ZW50LnBhdGggJiYgZXZlbnQucGF0aFswXSkge1xuICAgICR0YXJnZXRFbCA9ICQoZXZlbnQucGF0aFswXSk7XG4gIH1cblxuICBjb25zdCBub1N3aXBpbmdTZWxlY3RvciA9IHBhcmFtcy5ub1N3aXBpbmdTZWxlY3RvciA/IHBhcmFtcy5ub1N3aXBpbmdTZWxlY3RvciA6IGAuJHtwYXJhbXMubm9Td2lwaW5nQ2xhc3N9YDtcbiAgY29uc3QgaXNUYXJnZXRTaGFkb3cgPSAhIShlLnRhcmdldCAmJiBlLnRhcmdldC5zaGFkb3dSb290KTsgLy8gdXNlIGNsb3Nlc3RFbGVtZW50IGZvciBzaGFkb3cgcm9vdCBlbGVtZW50IHRvIGdldCB0aGUgYWN0dWFsIGNsb3Nlc3QgZm9yIG5lc3RlZCBzaGFkb3cgcm9vdCBlbGVtZW50XG5cbiAgaWYgKHBhcmFtcy5ub1N3aXBpbmcgJiYgKGlzVGFyZ2V0U2hhZG93ID8gY2xvc2VzdEVsZW1lbnQobm9Td2lwaW5nU2VsZWN0b3IsIGUudGFyZ2V0KSA6ICR0YXJnZXRFbC5jbG9zZXN0KG5vU3dpcGluZ1NlbGVjdG9yKVswXSkpIHtcbiAgICBzd2lwZXIuYWxsb3dDbGljayA9IHRydWU7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKHBhcmFtcy5zd2lwZUhhbmRsZXIpIHtcbiAgICBpZiAoISR0YXJnZXRFbC5jbG9zZXN0KHBhcmFtcy5zd2lwZUhhbmRsZXIpWzBdKSByZXR1cm47XG4gIH1cblxuICB0b3VjaGVzLmN1cnJlbnRYID0gZS50eXBlID09PSAndG91Y2hzdGFydCcgPyBlLnRhcmdldFRvdWNoZXNbMF0ucGFnZVggOiBlLnBhZ2VYO1xuICB0b3VjaGVzLmN1cnJlbnRZID0gZS50eXBlID09PSAndG91Y2hzdGFydCcgPyBlLnRhcmdldFRvdWNoZXNbMF0ucGFnZVkgOiBlLnBhZ2VZO1xuICBjb25zdCBzdGFydFggPSB0b3VjaGVzLmN1cnJlbnRYO1xuICBjb25zdCBzdGFydFkgPSB0b3VjaGVzLmN1cnJlbnRZOyAvLyBEbyBOT1Qgc3RhcnQgaWYgaU9TIGVkZ2Ugc3dpcGUgaXMgZGV0ZWN0ZWQuIE90aGVyd2lzZSBpT1MgYXBwIGNhbm5vdCBzd2lwZS10by1nby1iYWNrIGFueW1vcmVcblxuICBjb25zdCBlZGdlU3dpcGVEZXRlY3Rpb24gPSBwYXJhbXMuZWRnZVN3aXBlRGV0ZWN0aW9uIHx8IHBhcmFtcy5pT1NFZGdlU3dpcGVEZXRlY3Rpb247XG4gIGNvbnN0IGVkZ2VTd2lwZVRocmVzaG9sZCA9IHBhcmFtcy5lZGdlU3dpcGVUaHJlc2hvbGQgfHwgcGFyYW1zLmlPU0VkZ2VTd2lwZVRocmVzaG9sZDtcblxuICBpZiAoZWRnZVN3aXBlRGV0ZWN0aW9uICYmIChzdGFydFggPD0gZWRnZVN3aXBlVGhyZXNob2xkIHx8IHN0YXJ0WCA+PSB3aW5kb3cuaW5uZXJXaWR0aCAtIGVkZ2VTd2lwZVRocmVzaG9sZCkpIHtcbiAgICBpZiAoZWRnZVN3aXBlRGV0ZWN0aW9uID09PSAncHJldmVudCcpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBPYmplY3QuYXNzaWduKGRhdGEsIHtcbiAgICBpc1RvdWNoZWQ6IHRydWUsXG4gICAgaXNNb3ZlZDogZmFsc2UsXG4gICAgYWxsb3dUb3VjaENhbGxiYWNrczogdHJ1ZSxcbiAgICBpc1Njcm9sbGluZzogdW5kZWZpbmVkLFxuICAgIHN0YXJ0TW92aW5nOiB1bmRlZmluZWRcbiAgfSk7XG4gIHRvdWNoZXMuc3RhcnRYID0gc3RhcnRYO1xuICB0b3VjaGVzLnN0YXJ0WSA9IHN0YXJ0WTtcbiAgZGF0YS50b3VjaFN0YXJ0VGltZSA9IG5vdygpO1xuICBzd2lwZXIuYWxsb3dDbGljayA9IHRydWU7XG4gIHN3aXBlci51cGRhdGVTaXplKCk7XG4gIHN3aXBlci5zd2lwZURpcmVjdGlvbiA9IHVuZGVmaW5lZDtcbiAgaWYgKHBhcmFtcy50aHJlc2hvbGQgPiAwKSBkYXRhLmFsbG93VGhyZXNob2xkTW92ZSA9IGZhbHNlO1xuXG4gIGlmIChlLnR5cGUgIT09ICd0b3VjaHN0YXJ0Jykge1xuICAgIGxldCBwcmV2ZW50RGVmYXVsdCA9IHRydWU7XG4gICAgaWYgKCR0YXJnZXRFbC5pcyhkYXRhLmZvY3VzYWJsZUVsZW1lbnRzKSkgcHJldmVudERlZmF1bHQgPSBmYWxzZTtcblxuICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ICYmICQoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkuaXMoZGF0YS5mb2N1c2FibGVFbGVtZW50cykgJiYgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCAhPT0gJHRhcmdldEVsWzBdKSB7XG4gICAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmJsdXIoKTtcbiAgICB9XG5cbiAgICBjb25zdCBzaG91bGRQcmV2ZW50RGVmYXVsdCA9IHByZXZlbnREZWZhdWx0ICYmIHN3aXBlci5hbGxvd1RvdWNoTW92ZSAmJiBwYXJhbXMudG91Y2hTdGFydFByZXZlbnREZWZhdWx0O1xuXG4gICAgaWYgKChwYXJhbXMudG91Y2hTdGFydEZvcmNlUHJldmVudERlZmF1bHQgfHwgc2hvdWxkUHJldmVudERlZmF1bHQpICYmICEkdGFyZ2V0RWxbMF0uaXNDb250ZW50RWRpdGFibGUpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuICBzd2lwZXIuZW1pdCgndG91Y2hTdGFydCcsIGUpO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/events/onTouchStart.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/grab-cursor/index.js": +/*!*******************************************************!*\ + !*** ./node_modules/swiper/core/grab-cursor/index.js ***! + \*******************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _setGrabCursor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setGrabCursor.js */ \"./node_modules/swiper/core/grab-cursor/setGrabCursor.js\");\n/* harmony import */ var _unsetGrabCursor_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./unsetGrabCursor.js */ \"./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n setGrabCursor: _setGrabCursor_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n unsetGrabCursor: _unsetGrabCursor_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvZ3JhYi1jdXJzb3IvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQStDO0FBQ0k7QUFDbkQsK0RBQWU7QUFDZixlQUFlO0FBQ2YsaUJBQWlCO0FBQ2pCLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N3aXBlci9jb3JlL2dyYWItY3Vyc29yL2luZGV4LmpzPzFiYWQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHNldEdyYWJDdXJzb3IgZnJvbSAnLi9zZXRHcmFiQ3Vyc29yLmpzJztcbmltcG9ydCB1bnNldEdyYWJDdXJzb3IgZnJvbSAnLi91bnNldEdyYWJDdXJzb3IuanMnO1xuZXhwb3J0IGRlZmF1bHQge1xuICBzZXRHcmFiQ3Vyc29yLFxuICB1bnNldEdyYWJDdXJzb3Jcbn07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/grab-cursor/index.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/grab-cursor/setGrabCursor.js": +/*!***************************************************************!*\ + !*** ./node_modules/swiper/core/grab-cursor/setGrabCursor.js ***! + \***************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ setGrabCursor; }\n/* harmony export */ });\nfunction setGrabCursor(moving) {\n const swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvZ3JhYi1jdXJzb3Ivc2V0R3JhYkN1cnNvci5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zd2lwZXIvY29yZS9ncmFiLWN1cnNvci9zZXRHcmFiQ3Vyc29yLmpzPzdlMjgiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gc2V0R3JhYkN1cnNvcihtb3ZpbmcpIHtcbiAgY29uc3Qgc3dpcGVyID0gdGhpcztcbiAgaWYgKHN3aXBlci5zdXBwb3J0LnRvdWNoIHx8ICFzd2lwZXIucGFyYW1zLnNpbXVsYXRlVG91Y2ggfHwgc3dpcGVyLnBhcmFtcy53YXRjaE92ZXJmbG93ICYmIHN3aXBlci5pc0xvY2tlZCB8fCBzd2lwZXIucGFyYW1zLmNzc01vZGUpIHJldHVybjtcbiAgY29uc3QgZWwgPSBzd2lwZXIucGFyYW1zLnRvdWNoRXZlbnRzVGFyZ2V0ID09PSAnY29udGFpbmVyJyA/IHN3aXBlci5lbCA6IHN3aXBlci53cmFwcGVyRWw7XG4gIGVsLnN0eWxlLmN1cnNvciA9ICdtb3ZlJztcbiAgZWwuc3R5bGUuY3Vyc29yID0gbW92aW5nID8gJy13ZWJraXQtZ3JhYmJpbmcnIDogJy13ZWJraXQtZ3JhYic7XG4gIGVsLnN0eWxlLmN1cnNvciA9IG1vdmluZyA/ICctbW96LWdyYWJiaW4nIDogJy1tb3otZ3JhYic7XG4gIGVsLnN0eWxlLmN1cnNvciA9IG1vdmluZyA/ICdncmFiYmluZycgOiAnZ3JhYic7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/grab-cursor/setGrabCursor.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js": +/*!*****************************************************************!*\ + !*** ./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ unsetGrabCursor; }\n/* harmony export */ });\nfunction unsetGrabCursor() {\n const swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvZ3JhYi1jdXJzb3IvdW5zZXRHcmFiQ3Vyc29yLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBZTtBQUNmOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zd2lwZXIvY29yZS9ncmFiLWN1cnNvci91bnNldEdyYWJDdXJzb3IuanM/NjdjMCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1bnNldEdyYWJDdXJzb3IoKSB7XG4gIGNvbnN0IHN3aXBlciA9IHRoaXM7XG5cbiAgaWYgKHN3aXBlci5zdXBwb3J0LnRvdWNoIHx8IHN3aXBlci5wYXJhbXMud2F0Y2hPdmVyZmxvdyAmJiBzd2lwZXIuaXNMb2NrZWQgfHwgc3dpcGVyLnBhcmFtcy5jc3NNb2RlKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgc3dpcGVyW3N3aXBlci5wYXJhbXMudG91Y2hFdmVudHNUYXJnZXQgPT09ICdjb250YWluZXInID8gJ2VsJyA6ICd3cmFwcGVyRWwnXS5zdHlsZS5jdXJzb3IgPSAnJztcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/images/index.js": +/*!**************************************************!*\ + !*** ./node_modules/swiper/core/images/index.js ***! + \**************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _loadImage_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loadImage.js */ \"./node_modules/swiper/core/images/loadImage.js\");\n/* harmony import */ var _preloadImages_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./preloadImages.js */ \"./node_modules/swiper/core/images/preloadImages.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n loadImage: _loadImage_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n preloadImages: _preloadImages_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvaW1hZ2VzL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiI7OztBQUF1QztBQUNRO0FBQy9DLCtEQUFlO0FBQ2YsV0FBVztBQUNYLGVBQWU7QUFDZixDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zd2lwZXIvY29yZS9pbWFnZXMvaW5kZXguanM/NTM4YyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbG9hZEltYWdlIGZyb20gJy4vbG9hZEltYWdlLmpzJztcbmltcG9ydCBwcmVsb2FkSW1hZ2VzIGZyb20gJy4vcHJlbG9hZEltYWdlcy5qcyc7XG5leHBvcnQgZGVmYXVsdCB7XG4gIGxvYWRJbWFnZSxcbiAgcHJlbG9hZEltYWdlc1xufTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/images/index.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/images/loadImage.js": +/*!******************************************************!*\ + !*** ./node_modules/swiper/core/images/loadImage.js ***! + \******************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ loadImage; }\n/* harmony export */ });\n/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ \"./node_modules/ssr-window/ssr-window.esm.js\");\n/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ \"./node_modules/swiper/shared/dom.js\");\n\n\nfunction loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();\n let image;\n\n function onReady() {\n if (callback) callback();\n }\n\n const isPicture = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvaW1hZ2VzL2xvYWRJbWFnZS5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBdUM7QUFDSDtBQUNyQjtBQUNmLGlCQUFpQixxREFBUztBQUMxQjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsb0JBQW9CLDBEQUFDOztBQUVyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N3aXBlci9jb3JlL2ltYWdlcy9sb2FkSW1hZ2UuanM/OTY1MyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRXaW5kb3cgfSBmcm9tICdzc3Itd2luZG93JztcbmltcG9ydCAkIGZyb20gJy4uLy4uL3NoYXJlZC9kb20uanMnO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbG9hZEltYWdlKGltYWdlRWwsIHNyYywgc3Jjc2V0LCBzaXplcywgY2hlY2tGb3JDb21wbGV0ZSwgY2FsbGJhY2spIHtcbiAgY29uc3Qgd2luZG93ID0gZ2V0V2luZG93KCk7XG4gIGxldCBpbWFnZTtcblxuICBmdW5jdGlvbiBvblJlYWR5KCkge1xuICAgIGlmIChjYWxsYmFjaykgY2FsbGJhY2soKTtcbiAgfVxuXG4gIGNvbnN0IGlzUGljdHVyZSA9ICQoaW1hZ2VFbCkucGFyZW50KCdwaWN0dXJlJylbMF07XG5cbiAgaWYgKCFpc1BpY3R1cmUgJiYgKCFpbWFnZUVsLmNvbXBsZXRlIHx8ICFjaGVja0ZvckNvbXBsZXRlKSkge1xuICAgIGlmIChzcmMpIHtcbiAgICAgIGltYWdlID0gbmV3IHdpbmRvdy5JbWFnZSgpO1xuICAgICAgaW1hZ2Uub25sb2FkID0gb25SZWFkeTtcbiAgICAgIGltYWdlLm9uZXJyb3IgPSBvblJlYWR5O1xuXG4gICAgICBpZiAoc2l6ZXMpIHtcbiAgICAgICAgaW1hZ2Uuc2l6ZXMgPSBzaXplcztcbiAgICAgIH1cblxuICAgICAgaWYgKHNyY3NldCkge1xuICAgICAgICBpbWFnZS5zcmNzZXQgPSBzcmNzZXQ7XG4gICAgICB9XG5cbiAgICAgIGlmIChzcmMpIHtcbiAgICAgICAgaW1hZ2Uuc3JjID0gc3JjO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBvblJlYWR5KCk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIC8vIGltYWdlIGFscmVhZHkgbG9hZGVkLi4uXG4gICAgb25SZWFkeSgpO1xuICB9XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/images/loadImage.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/images/preloadImages.js": +/*!**********************************************************!*\ + !*** ./node_modules/swiper/core/images/preloadImages.js ***! + \**********************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ preloadImages; }\n/* harmony export */ });\nfunction preloadImages() {\n const swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n\n for (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\n const imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvaW1hZ2VzL3ByZWxvYWRJbWFnZXMuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFlO0FBQ2Y7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxrQkFBa0IsZ0NBQWdDO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zd2lwZXIvY29yZS9pbWFnZXMvcHJlbG9hZEltYWdlcy5qcz9lNDNhIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHByZWxvYWRJbWFnZXMoKSB7XG4gIGNvbnN0IHN3aXBlciA9IHRoaXM7XG4gIHN3aXBlci5pbWFnZXNUb0xvYWQgPSBzd2lwZXIuJGVsLmZpbmQoJ2ltZycpO1xuXG4gIGZ1bmN0aW9uIG9uUmVhZHkoKSB7XG4gICAgaWYgKHR5cGVvZiBzd2lwZXIgPT09ICd1bmRlZmluZWQnIHx8IHN3aXBlciA9PT0gbnVsbCB8fCAhc3dpcGVyIHx8IHN3aXBlci5kZXN0cm95ZWQpIHJldHVybjtcbiAgICBpZiAoc3dpcGVyLmltYWdlc0xvYWRlZCAhPT0gdW5kZWZpbmVkKSBzd2lwZXIuaW1hZ2VzTG9hZGVkICs9IDE7XG5cbiAgICBpZiAoc3dpcGVyLmltYWdlc0xvYWRlZCA9PT0gc3dpcGVyLmltYWdlc1RvTG9hZC5sZW5ndGgpIHtcbiAgICAgIGlmIChzd2lwZXIucGFyYW1zLnVwZGF0ZU9uSW1hZ2VzUmVhZHkpIHN3aXBlci51cGRhdGUoKTtcbiAgICAgIHN3aXBlci5lbWl0KCdpbWFnZXNSZWFkeScpO1xuICAgIH1cbiAgfVxuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc3dpcGVyLmltYWdlc1RvTG9hZC5sZW5ndGg7IGkgKz0gMSkge1xuICAgIGNvbnN0IGltYWdlRWwgPSBzd2lwZXIuaW1hZ2VzVG9Mb2FkW2ldO1xuICAgIHN3aXBlci5sb2FkSW1hZ2UoaW1hZ2VFbCwgaW1hZ2VFbC5jdXJyZW50U3JjIHx8IGltYWdlRWwuZ2V0QXR0cmlidXRlKCdzcmMnKSwgaW1hZ2VFbC5zcmNzZXQgfHwgaW1hZ2VFbC5nZXRBdHRyaWJ1dGUoJ3NyY3NldCcpLCBpbWFnZUVsLnNpemVzIHx8IGltYWdlRWwuZ2V0QXR0cmlidXRlKCdzaXplcycpLCB0cnVlLCBvblJlYWR5KTtcbiAgfVxufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/images/preloadImages.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/loop/index.js": +/*!************************************************!*\ + !*** ./node_modules/swiper/core/loop/index.js ***! + \************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _loopCreate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loopCreate.js */ \"./node_modules/swiper/core/loop/loopCreate.js\");\n/* harmony import */ var _loopFix_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loopFix.js */ \"./node_modules/swiper/core/loop/loopFix.js\");\n/* harmony import */ var _loopDestroy_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./loopDestroy.js */ \"./node_modules/swiper/core/loop/loopDestroy.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n loopCreate: _loopCreate_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n loopFix: _loopFix_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n loopDestroy: _loopDestroy_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvbG9vcC9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQXlDO0FBQ047QUFDUTtBQUMzQywrREFBZTtBQUNmLFlBQVk7QUFDWixTQUFTO0FBQ1QsYUFBYTtBQUNiLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N3aXBlci9jb3JlL2xvb3AvaW5kZXguanM/ZTI1ZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbG9vcENyZWF0ZSBmcm9tICcuL2xvb3BDcmVhdGUuanMnO1xuaW1wb3J0IGxvb3BGaXggZnJvbSAnLi9sb29wRml4LmpzJztcbmltcG9ydCBsb29wRGVzdHJveSBmcm9tICcuL2xvb3BEZXN0cm95LmpzJztcbmV4cG9ydCBkZWZhdWx0IHtcbiAgbG9vcENyZWF0ZSxcbiAgbG9vcEZpeCxcbiAgbG9vcERlc3Ryb3lcbn07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/loop/index.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/loop/loopCreate.js": +/*!*****************************************************!*\ + !*** ./node_modules/swiper/core/loop/loopCreate.js ***! + \*****************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ loopCreate; }\n/* harmony export */ });\n/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ \"./node_modules/ssr-window/ssr-window.esm.js\");\n/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ \"./node_modules/swiper/shared/dom.js\");\n\n\nfunction loopCreate() {\n const swiper = this;\n const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)();\n const {\n params,\n $wrapperEl\n } = swiper; // Remove duplicated slides\n\n const $selector = $wrapperEl.children().length > 0 ? (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])($wrapperEl.children()[0].parentNode) : $wrapperEl;\n $selector.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n let slides = $selector.children(`.${params.slideClass}`);\n\n if (params.loopFillGroupWithBlank) {\n const blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankNode = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(document.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`);\n $selector.append(blankNode);\n }\n\n slides = $selector.children(`.${params.slideClass}`);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n const prependSlides = [];\n const appendSlides = [];\n slides.each((el, index) => {\n const slide = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(el);\n\n if (index < swiper.loopedSlides) {\n appendSlides.push(el);\n }\n\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) {\n prependSlides.push(el);\n }\n\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (let i = 0; i < appendSlides.length; i += 1) {\n $selector.append((0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\n $selector.prepend((0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvbG9vcC9sb29wQ3JlYXRlLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUF5QztBQUNMO0FBQ3JCO0FBQ2Y7QUFDQSxtQkFBbUIsdURBQVc7QUFDOUI7QUFDQTtBQUNBO0FBQ0EsSUFBSSxVQUFVOztBQUVkLHVEQUF1RCwwREFBQztBQUN4RCx5QkFBeUIsa0JBQWtCLEdBQUcsMkJBQTJCO0FBQ3pFLHNDQUFzQyxrQkFBa0I7O0FBRXhEO0FBQ0E7O0FBRUE7QUFDQSxzQkFBc0Isb0JBQW9CO0FBQzFDLDBCQUEwQiwwREFBQyw0Q0FBNEMsbUJBQW1CLEVBQUUsdUJBQXVCO0FBQ25IO0FBQ0E7O0FBRUEsc0NBQXNDLGtCQUFrQjtBQUN4RDtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLDBEQUFDOztBQUVuQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsR0FBRzs7QUFFSCxrQkFBa0IseUJBQXlCO0FBQzNDLHFCQUFxQiwwREFBQztBQUN0Qjs7QUFFQSx5Q0FBeUMsUUFBUTtBQUNqRCxzQkFBc0IsMERBQUM7QUFDdkI7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvbG9vcC9sb29wQ3JlYXRlLmpzPzE0ODAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0RG9jdW1lbnQgfSBmcm9tICdzc3Itd2luZG93JztcbmltcG9ydCAkIGZyb20gJy4uLy4uL3NoYXJlZC9kb20uanMnO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbG9vcENyZWF0ZSgpIHtcbiAgY29uc3Qgc3dpcGVyID0gdGhpcztcbiAgY29uc3QgZG9jdW1lbnQgPSBnZXREb2N1bWVudCgpO1xuICBjb25zdCB7XG4gICAgcGFyYW1zLFxuICAgICR3cmFwcGVyRWxcbiAgfSA9IHN3aXBlcjsgLy8gUmVtb3ZlIGR1cGxpY2F0ZWQgc2xpZGVzXG5cbiAgY29uc3QgJHNlbGVjdG9yID0gJHdyYXBwZXJFbC5jaGlsZHJlbigpLmxlbmd0aCA+IDAgPyAkKCR3cmFwcGVyRWwuY2hpbGRyZW4oKVswXS5wYXJlbnROb2RlKSA6ICR3cmFwcGVyRWw7XG4gICRzZWxlY3Rvci5jaGlsZHJlbihgLiR7cGFyYW1zLnNsaWRlQ2xhc3N9LiR7cGFyYW1zLnNsaWRlRHVwbGljYXRlQ2xhc3N9YCkucmVtb3ZlKCk7XG4gIGxldCBzbGlkZXMgPSAkc2VsZWN0b3IuY2hpbGRyZW4oYC4ke3BhcmFtcy5zbGlkZUNsYXNzfWApO1xuXG4gIGlmIChwYXJhbXMubG9vcEZpbGxHcm91cFdpdGhCbGFuaykge1xuICAgIGNvbnN0IGJsYW5rU2xpZGVzTnVtID0gcGFyYW1zLnNsaWRlc1Blckdyb3VwIC0gc2xpZGVzLmxlbmd0aCAlIHBhcmFtcy5zbGlkZXNQZXJHcm91cDtcblxuICAgIGlmIChibGFua1NsaWRlc051bSAhPT0gcGFyYW1zLnNsaWRlc1Blckdyb3VwKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGJsYW5rU2xpZGVzTnVtOyBpICs9IDEpIHtcbiAgICAgICAgY29uc3QgYmxhbmtOb2RlID0gJChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSkuYWRkQ2xhc3MoYCR7cGFyYW1zLnNsaWRlQ2xhc3N9ICR7cGFyYW1zLnNsaWRlQmxhbmtDbGFzc31gKTtcbiAgICAgICAgJHNlbGVjdG9yLmFwcGVuZChibGFua05vZGUpO1xuICAgICAgfVxuXG4gICAgICBzbGlkZXMgPSAkc2VsZWN0b3IuY2hpbGRyZW4oYC4ke3BhcmFtcy5zbGlkZUNsYXNzfWApO1xuICAgIH1cbiAgfVxuXG4gIGlmIChwYXJhbXMuc2xpZGVzUGVyVmlldyA9PT0gJ2F1dG8nICYmICFwYXJhbXMubG9vcGVkU2xpZGVzKSBwYXJhbXMubG9vcGVkU2xpZGVzID0gc2xpZGVzLmxlbmd0aDtcbiAgc3dpcGVyLmxvb3BlZFNsaWRlcyA9IE1hdGguY2VpbChwYXJzZUZsb2F0KHBhcmFtcy5sb29wZWRTbGlkZXMgfHwgcGFyYW1zLnNsaWRlc1BlclZpZXcsIDEwKSk7XG4gIHN3aXBlci5sb29wZWRTbGlkZXMgKz0gcGFyYW1zLmxvb3BBZGRpdGlvbmFsU2xpZGVzO1xuXG4gIGlmIChzd2lwZXIubG9vcGVkU2xpZGVzID4gc2xpZGVzLmxlbmd0aCkge1xuICAgIHN3aXBlci5sb29wZWRTbGlkZXMgPSBzbGlkZXMubGVuZ3RoO1xuICB9XG5cbiAgY29uc3QgcHJlcGVuZFNsaWRlcyA9IFtdO1xuICBjb25zdCBhcHBlbmRTbGlkZXMgPSBbXTtcbiAgc2xpZGVzLmVhY2goKGVsLCBpbmRleCkgPT4ge1xuICAgIGNvbnN0IHNsaWRlID0gJChlbCk7XG5cbiAgICBpZiAoaW5kZXggPCBzd2lwZXIubG9vcGVkU2xpZGVzKSB7XG4gICAgICBhcHBlbmRTbGlkZXMucHVzaChlbCk7XG4gICAgfVxuXG4gICAgaWYgKGluZGV4IDwgc2xpZGVzLmxlbmd0aCAmJiBpbmRleCA+PSBzbGlkZXMubGVuZ3RoIC0gc3dpcGVyLmxvb3BlZFNsaWRlcykge1xuICAgICAgcHJlcGVuZFNsaWRlcy5wdXNoKGVsKTtcbiAgICB9XG5cbiAgICBzbGlkZS5hdHRyKCdkYXRhLXN3aXBlci1zbGlkZS1pbmRleCcsIGluZGV4KTtcbiAgfSk7XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcHBlbmRTbGlkZXMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAkc2VsZWN0b3IuYXBwZW5kKCQoYXBwZW5kU2xpZGVzW2ldLmNsb25lTm9kZSh0cnVlKSkuYWRkQ2xhc3MocGFyYW1zLnNsaWRlRHVwbGljYXRlQ2xhc3MpKTtcbiAgfVxuXG4gIGZvciAobGV0IGkgPSBwcmVwZW5kU2xpZGVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaSAtPSAxKSB7XG4gICAgJHNlbGVjdG9yLnByZXBlbmQoJChwcmVwZW5kU2xpZGVzW2ldLmNsb25lTm9kZSh0cnVlKSkuYWRkQ2xhc3MocGFyYW1zLnNsaWRlRHVwbGljYXRlQ2xhc3MpKTtcbiAgfVxufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/loop/loopCreate.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/loop/loopDestroy.js": +/*!******************************************************!*\ + !*** ./node_modules/swiper/core/loop/loopDestroy.js ***! + \******************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ loopDestroy; }\n/* harmony export */ });\nfunction loopDestroy() {\n const swiper = this;\n const {\n $wrapperEl,\n params,\n slides\n } = swiper;\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`).remove();\n slides.removeAttr('data-swiper-slide-index');\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvbG9vcC9sb29wRGVzdHJveS5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKLDBCQUEwQixrQkFBa0IsR0FBRywyQkFBMkIsSUFBSSxrQkFBa0IsR0FBRyx1QkFBdUI7QUFDMUg7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvbG9vcC9sb29wRGVzdHJveS5qcz9hMzAyIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGxvb3BEZXN0cm95KCkge1xuICBjb25zdCBzd2lwZXIgPSB0aGlzO1xuICBjb25zdCB7XG4gICAgJHdyYXBwZXJFbCxcbiAgICBwYXJhbXMsXG4gICAgc2xpZGVzXG4gIH0gPSBzd2lwZXI7XG4gICR3cmFwcGVyRWwuY2hpbGRyZW4oYC4ke3BhcmFtcy5zbGlkZUNsYXNzfS4ke3BhcmFtcy5zbGlkZUR1cGxpY2F0ZUNsYXNzfSwuJHtwYXJhbXMuc2xpZGVDbGFzc30uJHtwYXJhbXMuc2xpZGVCbGFua0NsYXNzfWApLnJlbW92ZSgpO1xuICBzbGlkZXMucmVtb3ZlQXR0cignZGF0YS1zd2lwZXItc2xpZGUtaW5kZXgnKTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/loop/loopDestroy.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/loop/loopFix.js": +/*!**************************************************!*\ + !*** ./node_modules/swiper/core/loop/loopFix.js ***! + \**************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ loopFix; }\n/* harmony export */ });\nfunction loopFix() {\n const swiper = this;\n swiper.emit('beforeLoopFix');\n const {\n activeIndex,\n slides,\n loopedSlides,\n allowSlidePrev,\n allowSlideNext,\n snapGrid,\n rtlTranslate: rtl\n } = swiper;\n let newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n const snapTranslate = -snapGrid[activeIndex];\n const diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvbG9vcC9sb29wRml4LmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0RBQXNEOztBQUV0RDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N3aXBlci9jb3JlL2xvb3AvbG9vcEZpeC5qcz8yNTZhIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGxvb3BGaXgoKSB7XG4gIGNvbnN0IHN3aXBlciA9IHRoaXM7XG4gIHN3aXBlci5lbWl0KCdiZWZvcmVMb29wRml4Jyk7XG4gIGNvbnN0IHtcbiAgICBhY3RpdmVJbmRleCxcbiAgICBzbGlkZXMsXG4gICAgbG9vcGVkU2xpZGVzLFxuICAgIGFsbG93U2xpZGVQcmV2LFxuICAgIGFsbG93U2xpZGVOZXh0LFxuICAgIHNuYXBHcmlkLFxuICAgIHJ0bFRyYW5zbGF0ZTogcnRsXG4gIH0gPSBzd2lwZXI7XG4gIGxldCBuZXdJbmRleDtcbiAgc3dpcGVyLmFsbG93U2xpZGVQcmV2ID0gdHJ1ZTtcbiAgc3dpcGVyLmFsbG93U2xpZGVOZXh0ID0gdHJ1ZTtcbiAgY29uc3Qgc25hcFRyYW5zbGF0ZSA9IC1zbmFwR3JpZFthY3RpdmVJbmRleF07XG4gIGNvbnN0IGRpZmYgPSBzbmFwVHJhbnNsYXRlIC0gc3dpcGVyLmdldFRyYW5zbGF0ZSgpOyAvLyBGaXggRm9yIE5lZ2F0aXZlIE92ZXJzbGlkaW5nXG5cbiAgaWYgKGFjdGl2ZUluZGV4IDwgbG9vcGVkU2xpZGVzKSB7XG4gICAgbmV3SW5kZXggPSBzbGlkZXMubGVuZ3RoIC0gbG9vcGVkU2xpZGVzICogMyArIGFjdGl2ZUluZGV4O1xuICAgIG5ld0luZGV4ICs9IGxvb3BlZFNsaWRlcztcbiAgICBjb25zdCBzbGlkZUNoYW5nZWQgPSBzd2lwZXIuc2xpZGVUbyhuZXdJbmRleCwgMCwgZmFsc2UsIHRydWUpO1xuXG4gICAgaWYgKHNsaWRlQ2hhbmdlZCAmJiBkaWZmICE9PSAwKSB7XG4gICAgICBzd2lwZXIuc2V0VHJhbnNsYXRlKChydGwgPyAtc3dpcGVyLnRyYW5zbGF0ZSA6IHN3aXBlci50cmFuc2xhdGUpIC0gZGlmZik7XG4gICAgfVxuICB9IGVsc2UgaWYgKGFjdGl2ZUluZGV4ID49IHNsaWRlcy5sZW5ndGggLSBsb29wZWRTbGlkZXMpIHtcbiAgICAvLyBGaXggRm9yIFBvc2l0aXZlIE92ZXJzbGlkaW5nXG4gICAgbmV3SW5kZXggPSAtc2xpZGVzLmxlbmd0aCArIGFjdGl2ZUluZGV4ICsgbG9vcGVkU2xpZGVzO1xuICAgIG5ld0luZGV4ICs9IGxvb3BlZFNsaWRlcztcbiAgICBjb25zdCBzbGlkZUNoYW5nZWQgPSBzd2lwZXIuc2xpZGVUbyhuZXdJbmRleCwgMCwgZmFsc2UsIHRydWUpO1xuXG4gICAgaWYgKHNsaWRlQ2hhbmdlZCAmJiBkaWZmICE9PSAwKSB7XG4gICAgICBzd2lwZXIuc2V0VHJhbnNsYXRlKChydGwgPyAtc3dpcGVyLnRyYW5zbGF0ZSA6IHN3aXBlci50cmFuc2xhdGUpIC0gZGlmZik7XG4gICAgfVxuICB9XG5cbiAgc3dpcGVyLmFsbG93U2xpZGVQcmV2ID0gYWxsb3dTbGlkZVByZXY7XG4gIHN3aXBlci5hbGxvd1NsaWRlTmV4dCA9IGFsbG93U2xpZGVOZXh0O1xuICBzd2lwZXIuZW1pdCgnbG9vcEZpeCcpO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/loop/loopFix.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/moduleExtendParams.js": +/*!********************************************************!*\ + !*** ./node_modules/swiper/core/moduleExtendParams.js ***! + \********************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ moduleExtendParams; }\n/* harmony export */ });\n/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/utils.js */ \"./node_modules/swiper/shared/utils.js\");\n\nfunction moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj = {}) {\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.extend)(allModulesParams, obj);\n return;\n }\n\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.extend)(allModulesParams, obj);\n return;\n }\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.extend)(allModulesParams, obj);\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvbW9kdWxlRXh0ZW5kUGFyYW1zLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQTRDO0FBQzdCO0FBQ2YsdUNBQXVDO0FBQ3ZDO0FBQ0E7O0FBRUE7QUFDQSxNQUFNLHdEQUFNO0FBQ1o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsTUFBTSx3REFBTTtBQUNaO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSSx3REFBTTtBQUNWO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N3aXBlci9jb3JlL21vZHVsZUV4dGVuZFBhcmFtcy5qcz84Yjk4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4dGVuZCB9IGZyb20gJy4uL3NoYXJlZC91dGlscy5qcyc7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBtb2R1bGVFeHRlbmRQYXJhbXMocGFyYW1zLCBhbGxNb2R1bGVzUGFyYW1zKSB7XG4gIHJldHVybiBmdW5jdGlvbiBleHRlbmRQYXJhbXMob2JqID0ge30pIHtcbiAgICBjb25zdCBtb2R1bGVQYXJhbU5hbWUgPSBPYmplY3Qua2V5cyhvYmopWzBdO1xuICAgIGNvbnN0IG1vZHVsZVBhcmFtcyA9IG9ialttb2R1bGVQYXJhbU5hbWVdO1xuXG4gICAgaWYgKHR5cGVvZiBtb2R1bGVQYXJhbXMgIT09ICdvYmplY3QnIHx8IG1vZHVsZVBhcmFtcyA9PT0gbnVsbCkge1xuICAgICAgZXh0ZW5kKGFsbE1vZHVsZXNQYXJhbXMsIG9iaik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKFsnbmF2aWdhdGlvbicsICdwYWdpbmF0aW9uJywgJ3Njcm9sbGJhciddLmluZGV4T2YobW9kdWxlUGFyYW1OYW1lKSA+PSAwICYmIHBhcmFtc1ttb2R1bGVQYXJhbU5hbWVdID09PSB0cnVlKSB7XG4gICAgICBwYXJhbXNbbW9kdWxlUGFyYW1OYW1lXSA9IHtcbiAgICAgICAgYXV0bzogdHJ1ZVxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAoIShtb2R1bGVQYXJhbU5hbWUgaW4gcGFyYW1zICYmICdlbmFibGVkJyBpbiBtb2R1bGVQYXJhbXMpKSB7XG4gICAgICBleHRlbmQoYWxsTW9kdWxlc1BhcmFtcywgb2JqKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAocGFyYW1zW21vZHVsZVBhcmFtTmFtZV0gPT09IHRydWUpIHtcbiAgICAgIHBhcmFtc1ttb2R1bGVQYXJhbU5hbWVdID0ge1xuICAgICAgICBlbmFibGVkOiB0cnVlXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgcGFyYW1zW21vZHVsZVBhcmFtTmFtZV0gPT09ICdvYmplY3QnICYmICEoJ2VuYWJsZWQnIGluIHBhcmFtc1ttb2R1bGVQYXJhbU5hbWVdKSkge1xuICAgICAgcGFyYW1zW21vZHVsZVBhcmFtTmFtZV0uZW5hYmxlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKCFwYXJhbXNbbW9kdWxlUGFyYW1OYW1lXSkgcGFyYW1zW21vZHVsZVBhcmFtTmFtZV0gPSB7XG4gICAgICBlbmFibGVkOiBmYWxzZVxuICAgIH07XG4gICAgZXh0ZW5kKGFsbE1vZHVsZXNQYXJhbXMsIG9iaik7XG4gIH07XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/moduleExtendParams.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/modules/observer/observer.js": +/*!***************************************************************!*\ + !*** ./node_modules/swiper/core/modules/observer/observer.js ***! + \***************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ Observer; }\n/* harmony export */ });\n/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ \"./node_modules/ssr-window/ssr-window.esm.js\");\n\nfunction Observer({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const observers = [];\n const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();\n\n const attach = (target, options = {}) => {\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n\n const init = () => {\n if (!swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n const containerParents = swiper.$el.parents();\n\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n } // Observe container\n\n\n attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n };\n\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvbW9kdWxlcy9vYnNlcnZlci9vYnNlcnZlci5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUF1QztBQUN4QjtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0EsaUJBQWlCLHFEQUFTOztBQUUxQixzQ0FBc0M7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEsc0JBQXNCLDZCQUE2QjtBQUNuRDtBQUNBO0FBQ0EsTUFBTTs7O0FBR047QUFDQTtBQUNBLEtBQUssR0FBRzs7QUFFUjtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvbW9kdWxlcy9vYnNlcnZlci9vYnNlcnZlci5qcz8wNzIwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldFdpbmRvdyB9IGZyb20gJ3Nzci13aW5kb3cnO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gT2JzZXJ2ZXIoe1xuICBzd2lwZXIsXG4gIGV4dGVuZFBhcmFtcyxcbiAgb24sXG4gIGVtaXRcbn0pIHtcbiAgY29uc3Qgb2JzZXJ2ZXJzID0gW107XG4gIGNvbnN0IHdpbmRvdyA9IGdldFdpbmRvdygpO1xuXG4gIGNvbnN0IGF0dGFjaCA9ICh0YXJnZXQsIG9wdGlvbnMgPSB7fSkgPT4ge1xuICAgIGNvbnN0IE9ic2VydmVyRnVuYyA9IHdpbmRvdy5NdXRhdGlvbk9ic2VydmVyIHx8IHdpbmRvdy5XZWJraXRNdXRhdGlvbk9ic2VydmVyO1xuICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IE9ic2VydmVyRnVuYyhtdXRhdGlvbnMgPT4ge1xuICAgICAgLy8gVGhlIG9ic2VydmVyVXBkYXRlIGV2ZW50IHNob3VsZCBvbmx5IGJlIHRyaWdnZXJlZFxuICAgICAgLy8gb25jZSBkZXNwaXRlIHRoZSBudW1iZXIgb2YgbXV0YXRpb25zLiAgQWRkaXRpb25hbFxuICAgICAgLy8gdHJpZ2dlcnMgYXJlIHJlZHVuZGFudCBhbmQgYXJlIHZlcnkgY29zdGx5XG4gICAgICBpZiAobXV0YXRpb25zLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICBlbWl0KCdvYnNlcnZlclVwZGF0ZScsIG11dGF0aW9uc1swXSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgb2JzZXJ2ZXJVcGRhdGUgPSBmdW5jdGlvbiBvYnNlcnZlclVwZGF0ZSgpIHtcbiAgICAgICAgZW1pdCgnb2JzZXJ2ZXJVcGRhdGUnLCBtdXRhdGlvbnNbMF0pO1xuICAgICAgfTtcblxuICAgICAgaWYgKHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUpIHtcbiAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShvYnNlcnZlclVwZGF0ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB3aW5kb3cuc2V0VGltZW91dChvYnNlcnZlclVwZGF0ZSwgMCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgb2JzZXJ2ZXIub2JzZXJ2ZSh0YXJnZXQsIHtcbiAgICAgIGF0dHJpYnV0ZXM6IHR5cGVvZiBvcHRpb25zLmF0dHJpYnV0ZXMgPT09ICd1bmRlZmluZWQnID8gdHJ1ZSA6IG9wdGlvbnMuYXR0cmlidXRlcyxcbiAgICAgIGNoaWxkTGlzdDogdHlwZW9mIG9wdGlvbnMuY2hpbGRMaXN0ID09PSAndW5kZWZpbmVkJyA/IHRydWUgOiBvcHRpb25zLmNoaWxkTGlzdCxcbiAgICAgIGNoYXJhY3RlckRhdGE6IHR5cGVvZiBvcHRpb25zLmNoYXJhY3RlckRhdGEgPT09ICd1bmRlZmluZWQnID8gdHJ1ZSA6IG9wdGlvbnMuY2hhcmFjdGVyRGF0YVxuICAgIH0pO1xuICAgIG9ic2VydmVycy5wdXNoKG9ic2VydmVyKTtcbiAgfTtcblxuICBjb25zdCBpbml0ID0gKCkgPT4ge1xuICAgIGlmICghc3dpcGVyLnBhcmFtcy5vYnNlcnZlcikgcmV0dXJuO1xuXG4gICAgaWYgKHN3aXBlci5wYXJhbXMub2JzZXJ2ZVBhcmVudHMpIHtcbiAgICAgIGNvbnN0IGNvbnRhaW5lclBhcmVudHMgPSBzd2lwZXIuJGVsLnBhcmVudHMoKTtcblxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb250YWluZXJQYXJlbnRzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICAgIGF0dGFjaChjb250YWluZXJQYXJlbnRzW2ldKTtcbiAgICAgIH1cbiAgICB9IC8vIE9ic2VydmUgY29udGFpbmVyXG5cblxuICAgIGF0dGFjaChzd2lwZXIuJGVsWzBdLCB7XG4gICAgICBjaGlsZExpc3Q6IHN3aXBlci5wYXJhbXMub2JzZXJ2ZVNsaWRlQ2hpbGRyZW5cbiAgICB9KTsgLy8gT2JzZXJ2ZSB3cmFwcGVyXG5cbiAgICBhdHRhY2goc3dpcGVyLiR3cmFwcGVyRWxbMF0sIHtcbiAgICAgIGF0dHJpYnV0ZXM6IGZhbHNlXG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgZGVzdHJveSA9ICgpID0+IHtcbiAgICBvYnNlcnZlcnMuZm9yRWFjaChvYnNlcnZlciA9PiB7XG4gICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgfSk7XG4gICAgb2JzZXJ2ZXJzLnNwbGljZSgwLCBvYnNlcnZlcnMubGVuZ3RoKTtcbiAgfTtcblxuICBleHRlbmRQYXJhbXMoe1xuICAgIG9ic2VydmVyOiBmYWxzZSxcbiAgICBvYnNlcnZlUGFyZW50czogZmFsc2UsXG4gICAgb2JzZXJ2ZVNsaWRlQ2hpbGRyZW46IGZhbHNlXG4gIH0pO1xuICBvbignaW5pdCcsIGluaXQpO1xuICBvbignZGVzdHJveScsIGRlc3Ryb3kpO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/modules/observer/observer.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/modules/resize/resize.js": +/*!***********************************************************!*\ + !*** ./node_modules/swiper/core/modules/resize/resize.js ***! + \***********************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ Resize; }\n/* harmony export */ });\n/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ \"./node_modules/ssr-window/ssr-window.esm.js\");\n\nfunction Resize({\n swiper,\n on,\n emit\n}) {\n const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();\n let observer = null;\n\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(({\n contentBoxSize,\n contentRect,\n target\n }) => {\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n observer.observe(swiper.el);\n };\n\n const removeObserver = () => {\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvbW9kdWxlcy9yZXNpemUvcmVzaXplLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXVDO0FBQ3hCO0FBQ2Y7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELGlCQUFpQixxREFBUztBQUMxQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0EsT0FBTzs7QUFFUDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zd2lwZXIvY29yZS9tb2R1bGVzL3Jlc2l6ZS9yZXNpemUuanM/ZGQ2YSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRXaW5kb3cgfSBmcm9tICdzc3Itd2luZG93JztcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFJlc2l6ZSh7XG4gIHN3aXBlcixcbiAgb24sXG4gIGVtaXRcbn0pIHtcbiAgY29uc3Qgd2luZG93ID0gZ2V0V2luZG93KCk7XG4gIGxldCBvYnNlcnZlciA9IG51bGw7XG5cbiAgY29uc3QgcmVzaXplSGFuZGxlciA9ICgpID0+IHtcbiAgICBpZiAoIXN3aXBlciB8fCBzd2lwZXIuZGVzdHJveWVkIHx8ICFzd2lwZXIuaW5pdGlhbGl6ZWQpIHJldHVybjtcbiAgICBlbWl0KCdiZWZvcmVSZXNpemUnKTtcbiAgICBlbWl0KCdyZXNpemUnKTtcbiAgfTtcblxuICBjb25zdCBjcmVhdGVPYnNlcnZlciA9ICgpID0+IHtcbiAgICBpZiAoIXN3aXBlciB8fCBzd2lwZXIuZGVzdHJveWVkIHx8ICFzd2lwZXIuaW5pdGlhbGl6ZWQpIHJldHVybjtcbiAgICBvYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcihlbnRyaWVzID0+IHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIGhlaWdodFxuICAgICAgfSA9IHN3aXBlcjtcbiAgICAgIGxldCBuZXdXaWR0aCA9IHdpZHRoO1xuICAgICAgbGV0IG5ld0hlaWdodCA9IGhlaWdodDtcbiAgICAgIGVudHJpZXMuZm9yRWFjaCgoe1xuICAgICAgICBjb250ZW50Qm94U2l6ZSxcbiAgICAgICAgY29udGVudFJlY3QsXG4gICAgICAgIHRhcmdldFxuICAgICAgfSkgPT4ge1xuICAgICAgICBpZiAodGFyZ2V0ICYmIHRhcmdldCAhPT0gc3dpcGVyLmVsKSByZXR1cm47XG4gICAgICAgIG5ld1dpZHRoID0gY29udGVudFJlY3QgPyBjb250ZW50UmVjdC53aWR0aCA6IChjb250ZW50Qm94U2l6ZVswXSB8fCBjb250ZW50Qm94U2l6ZSkuaW5saW5lU2l6ZTtcbiAgICAgICAgbmV3SGVpZ2h0ID0gY29udGVudFJlY3QgPyBjb250ZW50UmVjdC5oZWlnaHQgOiAoY29udGVudEJveFNpemVbMF0gfHwgY29udGVudEJveFNpemUpLmJsb2NrU2l6ZTtcbiAgICAgIH0pO1xuXG4gICAgICBpZiAobmV3V2lkdGggIT09IHdpZHRoIHx8IG5ld0hlaWdodCAhPT0gaGVpZ2h0KSB7XG4gICAgICAgIHJlc2l6ZUhhbmRsZXIoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBvYnNlcnZlci5vYnNlcnZlKHN3aXBlci5lbCk7XG4gIH07XG5cbiAgY29uc3QgcmVtb3ZlT2JzZXJ2ZXIgPSAoKSA9PiB7XG4gICAgaWYgKG9ic2VydmVyICYmIG9ic2VydmVyLnVub2JzZXJ2ZSAmJiBzd2lwZXIuZWwpIHtcbiAgICAgIG9ic2VydmVyLnVub2JzZXJ2ZShzd2lwZXIuZWwpO1xuICAgICAgb2JzZXJ2ZXIgPSBudWxsO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBvcmllbnRhdGlvbkNoYW5nZUhhbmRsZXIgPSAoKSA9PiB7XG4gICAgaWYgKCFzd2lwZXIgfHwgc3dpcGVyLmRlc3Ryb3llZCB8fCAhc3dpcGVyLmluaXRpYWxpemVkKSByZXR1cm47XG4gICAgZW1pdCgnb3JpZW50YXRpb25jaGFuZ2UnKTtcbiAgfTtcblxuICBvbignaW5pdCcsICgpID0+IHtcbiAgICBpZiAoc3dpcGVyLnBhcmFtcy5yZXNpemVPYnNlcnZlciAmJiB0eXBlb2Ygd2luZG93LlJlc2l6ZU9ic2VydmVyICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgY3JlYXRlT2JzZXJ2ZXIoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgcmVzaXplSGFuZGxlcik7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ29yaWVudGF0aW9uY2hhbmdlJywgb3JpZW50YXRpb25DaGFuZ2VIYW5kbGVyKTtcbiAgfSk7XG4gIG9uKCdkZXN0cm95JywgKCkgPT4ge1xuICAgIHJlbW92ZU9ic2VydmVyKCk7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHJlc2l6ZUhhbmRsZXIpO1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdvcmllbnRhdGlvbmNoYW5nZScsIG9yaWVudGF0aW9uQ2hhbmdlSGFuZGxlcik7XG4gIH0pO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/modules/resize/resize.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/slide/index.js": +/*!*************************************************!*\ + !*** ./node_modules/swiper/core/slide/index.js ***! + \*************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _slideTo_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./slideTo.js */ \"./node_modules/swiper/core/slide/slideTo.js\");\n/* harmony import */ var _slideToLoop_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./slideToLoop.js */ \"./node_modules/swiper/core/slide/slideToLoop.js\");\n/* harmony import */ var _slideNext_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./slideNext.js */ \"./node_modules/swiper/core/slide/slideNext.js\");\n/* harmony import */ var _slidePrev_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./slidePrev.js */ \"./node_modules/swiper/core/slide/slidePrev.js\");\n/* harmony import */ var _slideReset_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./slideReset.js */ \"./node_modules/swiper/core/slide/slideReset.js\");\n/* harmony import */ var _slideToClosest_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./slideToClosest.js */ \"./node_modules/swiper/core/slide/slideToClosest.js\");\n/* harmony import */ var _slideToClickedSlide_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./slideToClickedSlide.js */ \"./node_modules/swiper/core/slide/slideToClickedSlide.js\");\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n slideTo: _slideTo_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n slideToLoop: _slideToLoop_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n slideNext: _slideNext_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n slidePrev: _slidePrev_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n slideReset: _slideReset_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n slideToClosest: _slideToClosest_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n slideToClickedSlide: _slideToClickedSlide_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"]\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvc2xpZGUvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBbUM7QUFDUTtBQUNKO0FBQ0E7QUFDRTtBQUNRO0FBQ1U7QUFDM0QsK0RBQWU7QUFDZixTQUFTO0FBQ1QsYUFBYTtBQUNiLFdBQVc7QUFDWCxXQUFXO0FBQ1gsWUFBWTtBQUNaLGdCQUFnQjtBQUNoQixxQkFBcUI7QUFDckIsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvc2xpZGUvaW5kZXguanM/OWIzNSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc2xpZGVUbyBmcm9tICcuL3NsaWRlVG8uanMnO1xuaW1wb3J0IHNsaWRlVG9Mb29wIGZyb20gJy4vc2xpZGVUb0xvb3AuanMnO1xuaW1wb3J0IHNsaWRlTmV4dCBmcm9tICcuL3NsaWRlTmV4dC5qcyc7XG5pbXBvcnQgc2xpZGVQcmV2IGZyb20gJy4vc2xpZGVQcmV2LmpzJztcbmltcG9ydCBzbGlkZVJlc2V0IGZyb20gJy4vc2xpZGVSZXNldC5qcyc7XG5pbXBvcnQgc2xpZGVUb0Nsb3Nlc3QgZnJvbSAnLi9zbGlkZVRvQ2xvc2VzdC5qcyc7XG5pbXBvcnQgc2xpZGVUb0NsaWNrZWRTbGlkZSBmcm9tICcuL3NsaWRlVG9DbGlja2VkU2xpZGUuanMnO1xuZXhwb3J0IGRlZmF1bHQge1xuICBzbGlkZVRvLFxuICBzbGlkZVRvTG9vcCxcbiAgc2xpZGVOZXh0LFxuICBzbGlkZVByZXYsXG4gIHNsaWRlUmVzZXQsXG4gIHNsaWRlVG9DbG9zZXN0LFxuICBzbGlkZVRvQ2xpY2tlZFNsaWRlXG59OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/slide/index.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/slide/slideNext.js": +/*!*****************************************************!*\ + !*** ./node_modules/swiper/core/slide/slideNext.js ***! + \*****************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ slideNext; }\n/* harmony export */ });\n/* eslint no-unused-vars: \"off\" */\nfunction slideNext(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n animating,\n enabled,\n params\n } = swiper;\n if (!enabled) return swiper;\n let perGroup = params.slidesPerGroup;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvc2xpZGUvc2xpZGVOZXh0LmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0Esc0JBQXNCOztBQUV0QjtBQUNBOztBQUVBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N3aXBlci9jb3JlL3NsaWRlL3NsaWRlTmV4dC5qcz9hZWNlIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludCBuby11bnVzZWQtdmFyczogXCJvZmZcIiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gc2xpZGVOZXh0KHNwZWVkID0gdGhpcy5wYXJhbXMuc3BlZWQsIHJ1bkNhbGxiYWNrcyA9IHRydWUsIGludGVybmFsKSB7XG4gIGNvbnN0IHN3aXBlciA9IHRoaXM7XG4gIGNvbnN0IHtcbiAgICBhbmltYXRpbmcsXG4gICAgZW5hYmxlZCxcbiAgICBwYXJhbXNcbiAgfSA9IHN3aXBlcjtcbiAgaWYgKCFlbmFibGVkKSByZXR1cm4gc3dpcGVyO1xuICBsZXQgcGVyR3JvdXAgPSBwYXJhbXMuc2xpZGVzUGVyR3JvdXA7XG5cbiAgaWYgKHBhcmFtcy5zbGlkZXNQZXJWaWV3ID09PSAnYXV0bycgJiYgcGFyYW1zLnNsaWRlc1Blckdyb3VwID09PSAxICYmIHBhcmFtcy5zbGlkZXNQZXJHcm91cEF1dG8pIHtcbiAgICBwZXJHcm91cCA9IE1hdGgubWF4KHN3aXBlci5zbGlkZXNQZXJWaWV3RHluYW1pYygnY3VycmVudCcsIHRydWUpLCAxKTtcbiAgfVxuXG4gIGNvbnN0IGluY3JlbWVudCA9IHN3aXBlci5hY3RpdmVJbmRleCA8IHBhcmFtcy5zbGlkZXNQZXJHcm91cFNraXAgPyAxIDogcGVyR3JvdXA7XG5cbiAgaWYgKHBhcmFtcy5sb29wKSB7XG4gICAgaWYgKGFuaW1hdGluZyAmJiBwYXJhbXMubG9vcFByZXZlbnRzU2xpZGUpIHJldHVybiBmYWxzZTtcbiAgICBzd2lwZXIubG9vcEZpeCgpOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcblxuICAgIHN3aXBlci5fY2xpZW50TGVmdCA9IHN3aXBlci4kd3JhcHBlckVsWzBdLmNsaWVudExlZnQ7XG4gIH1cblxuICByZXR1cm4gc3dpcGVyLnNsaWRlVG8oc3dpcGVyLmFjdGl2ZUluZGV4ICsgaW5jcmVtZW50LCBzcGVlZCwgcnVuQ2FsbGJhY2tzLCBpbnRlcm5hbCk7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/slide/slideNext.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/slide/slidePrev.js": +/*!*****************************************************!*\ + !*** ./node_modules/swiper/core/slide/slidePrev.js ***! + \*****************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ slidePrev; }\n/* harmony export */ });\n/* eslint no-unused-vars: \"off\" */\nfunction slidePrev(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n params,\n animating,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return swiper;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n\n let prevIndex = 0;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvc2xpZGUvc2xpZGVQcmV2LmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjs7QUFFQTtBQUNBO0FBQ0Esc0JBQXNCOztBQUV0QjtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvc2xpZGUvc2xpZGVQcmV2LmpzP2E1NWEiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50IG5vLXVudXNlZC12YXJzOiBcIm9mZlwiICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBzbGlkZVByZXYoc3BlZWQgPSB0aGlzLnBhcmFtcy5zcGVlZCwgcnVuQ2FsbGJhY2tzID0gdHJ1ZSwgaW50ZXJuYWwpIHtcbiAgY29uc3Qgc3dpcGVyID0gdGhpcztcbiAgY29uc3Qge1xuICAgIHBhcmFtcyxcbiAgICBhbmltYXRpbmcsXG4gICAgc25hcEdyaWQsXG4gICAgc2xpZGVzR3JpZCxcbiAgICBydGxUcmFuc2xhdGUsXG4gICAgZW5hYmxlZFxuICB9ID0gc3dpcGVyO1xuICBpZiAoIWVuYWJsZWQpIHJldHVybiBzd2lwZXI7XG5cbiAgaWYgKHBhcmFtcy5sb29wKSB7XG4gICAgaWYgKGFuaW1hdGluZyAmJiBwYXJhbXMubG9vcFByZXZlbnRzU2xpZGUpIHJldHVybiBmYWxzZTtcbiAgICBzd2lwZXIubG9vcEZpeCgpOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcblxuICAgIHN3aXBlci5fY2xpZW50TGVmdCA9IHN3aXBlci4kd3JhcHBlckVsWzBdLmNsaWVudExlZnQ7XG4gIH1cblxuICBjb25zdCB0cmFuc2xhdGUgPSBydGxUcmFuc2xhdGUgPyBzd2lwZXIudHJhbnNsYXRlIDogLXN3aXBlci50cmFuc2xhdGU7XG5cbiAgZnVuY3Rpb24gbm9ybWFsaXplKHZhbCkge1xuICAgIGlmICh2YWwgPCAwKSByZXR1cm4gLU1hdGguZmxvb3IoTWF0aC5hYnModmFsKSk7XG4gICAgcmV0dXJuIE1hdGguZmxvb3IodmFsKTtcbiAgfVxuXG4gIGNvbnN0IG5vcm1hbGl6ZWRUcmFuc2xhdGUgPSBub3JtYWxpemUodHJhbnNsYXRlKTtcbiAgY29uc3Qgbm9ybWFsaXplZFNuYXBHcmlkID0gc25hcEdyaWQubWFwKHZhbCA9PiBub3JtYWxpemUodmFsKSk7XG4gIGxldCBwcmV2U25hcCA9IHNuYXBHcmlkW25vcm1hbGl6ZWRTbmFwR3JpZC5pbmRleE9mKG5vcm1hbGl6ZWRUcmFuc2xhdGUpIC0gMV07XG5cbiAgaWYgKHR5cGVvZiBwcmV2U25hcCA9PT0gJ3VuZGVmaW5lZCcgJiYgcGFyYW1zLmNzc01vZGUpIHtcbiAgICBsZXQgcHJldlNuYXBJbmRleDtcbiAgICBzbmFwR3JpZC5mb3JFYWNoKChzbmFwLCBzbmFwSW5kZXgpID0+IHtcbiAgICAgIGlmIChub3JtYWxpemVkVHJhbnNsYXRlID49IHNuYXApIHtcbiAgICAgICAgLy8gcHJldlNuYXAgPSBzbmFwO1xuICAgICAgICBwcmV2U25hcEluZGV4ID0gc25hcEluZGV4O1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHR5cGVvZiBwcmV2U25hcEluZGV4ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgcHJldlNuYXAgPSBzbmFwR3JpZFtwcmV2U25hcEluZGV4ID4gMCA/IHByZXZTbmFwSW5kZXggLSAxIDogcHJldlNuYXBJbmRleF07XG4gICAgfVxuICB9XG5cbiAgbGV0IHByZXZJbmRleCA9IDA7XG5cbiAgaWYgKHR5cGVvZiBwcmV2U25hcCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBwcmV2SW5kZXggPSBzbGlkZXNHcmlkLmluZGV4T2YocHJldlNuYXApO1xuICAgIGlmIChwcmV2SW5kZXggPCAwKSBwcmV2SW5kZXggPSBzd2lwZXIuYWN0aXZlSW5kZXggLSAxO1xuXG4gICAgaWYgKHBhcmFtcy5zbGlkZXNQZXJWaWV3ID09PSAnYXV0bycgJiYgcGFyYW1zLnNsaWRlc1Blckdyb3VwID09PSAxICYmIHBhcmFtcy5zbGlkZXNQZXJHcm91cEF1dG8pIHtcbiAgICAgIHByZXZJbmRleCA9IHByZXZJbmRleCAtIHN3aXBlci5zbGlkZXNQZXJWaWV3RHluYW1pYygncHJldmlvdXMnLCB0cnVlKSArIDE7XG4gICAgICBwcmV2SW5kZXggPSBNYXRoLm1heChwcmV2SW5kZXgsIDApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzd2lwZXIuc2xpZGVUbyhwcmV2SW5kZXgsIHNwZWVkLCBydW5DYWxsYmFja3MsIGludGVybmFsKTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/slide/slidePrev.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/slide/slideReset.js": +/*!******************************************************!*\ + !*** ./node_modules/swiper/core/slide/slideReset.js ***! + \******************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ slideReset; }\n/* harmony export */ });\n/* eslint no-unused-vars: \"off\" */\nfunction slideReset(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvc2xpZGUvc2xpZGVSZXNldC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDZTtBQUNmO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvc2xpZGUvc2xpZGVSZXNldC5qcz9hMjQ1Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludCBuby11bnVzZWQtdmFyczogXCJvZmZcIiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gc2xpZGVSZXNldChzcGVlZCA9IHRoaXMucGFyYW1zLnNwZWVkLCBydW5DYWxsYmFja3MgPSB0cnVlLCBpbnRlcm5hbCkge1xuICBjb25zdCBzd2lwZXIgPSB0aGlzO1xuICByZXR1cm4gc3dpcGVyLnNsaWRlVG8oc3dpcGVyLmFjdGl2ZUluZGV4LCBzcGVlZCwgcnVuQ2FsbGJhY2tzLCBpbnRlcm5hbCk7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/slide/slideReset.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/slide/slideTo.js": +/*!***************************************************!*\ + !*** ./node_modules/swiper/core/slide/slideTo.js ***! + \***************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ slideTo; }\n/* harmony export */ });\n/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ \"./node_modules/swiper/shared/utils.js\");\n\nfunction slideTo(index = 0, speed = this.params.speed, runCallbacks = true, internal, initial) {\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(`The 'index' argument cannot have type other than 'number' or 'string'. [${typeof index}] given.`);\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n const indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n const isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`);\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n const translate = -snapGrid[snapIndex]; // Update progress\n\n swiper.updateProgress(translate); // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n swiper.updateSlidesClasses();\n\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n\n return false;\n }\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._swiperImmediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.animateCSSModeScroll)({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n }\n\n return true;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvc2xpZGUvc2xpZGVUby5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUE2RDtBQUM5QztBQUNmO0FBQ0EsK0ZBQStGLGFBQWE7QUFDNUc7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7O0FBRUE7O0FBRUE7QUFDQSw0RkFBNEYsTUFBTTtBQUNsRyxNQUFNO0FBQ047OztBQUdBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7QUFFSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSwwQ0FBMEM7O0FBRTFDLG9DQUFvQzs7QUFFcEM7QUFDQSxvQkFBb0IsdUJBQXVCO0FBQzNDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLG1EQUFtRCxzREFBc0QsMEJBQTBCOztBQUVuSTtBQUNBLDBDQUEwQzs7QUFFMUM7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EsTUFBTTtBQUNOO0FBQ0EsUUFBUSxzRUFBb0I7QUFDNUI7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N3aXBlci9jb3JlL3NsaWRlL3NsaWRlVG8uanM/MGFkZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlQ1NTTW9kZVNjcm9sbCB9IGZyb20gJy4uLy4uL3NoYXJlZC91dGlscy5qcyc7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBzbGlkZVRvKGluZGV4ID0gMCwgc3BlZWQgPSB0aGlzLnBhcmFtcy5zcGVlZCwgcnVuQ2FsbGJhY2tzID0gdHJ1ZSwgaW50ZXJuYWwsIGluaXRpYWwpIHtcbiAgaWYgKHR5cGVvZiBpbmRleCAhPT0gJ251bWJlcicgJiYgdHlwZW9mIGluZGV4ICE9PSAnc3RyaW5nJykge1xuICAgIHRocm93IG5ldyBFcnJvcihgVGhlICdpbmRleCcgYXJndW1lbnQgY2Fubm90IGhhdmUgdHlwZSBvdGhlciB0aGFuICdudW1iZXInIG9yICdzdHJpbmcnLiBbJHt0eXBlb2YgaW5kZXh9XSBnaXZlbi5gKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgaW5kZXggPT09ICdzdHJpbmcnKSB7XG4gICAgLyoqXG4gICAgICogVGhlIGBpbmRleGAgYXJndW1lbnQgY29udmVydGVkIGZyb20gYHN0cmluZ2AgdG8gYG51bWJlcmAuXG4gICAgICogQHR5cGUge251bWJlcn1cbiAgICAgKi9cbiAgICBjb25zdCBpbmRleEFzTnVtYmVyID0gcGFyc2VJbnQoaW5kZXgsIDEwKTtcbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGBpbmRleGAgYXJndW1lbnQgaXMgYSB2YWxpZCBgbnVtYmVyYFxuICAgICAqIGFmdGVyIGJlaW5nIGNvbnZlcnRlZCBmcm9tIHRoZSBgc3RyaW5nYCB0eXBlLlxuICAgICAqIEB0eXBlIHtib29sZWFufVxuICAgICAqL1xuXG4gICAgY29uc3QgaXNWYWxpZE51bWJlciA9IGlzRmluaXRlKGluZGV4QXNOdW1iZXIpO1xuXG4gICAgaWYgKCFpc1ZhbGlkTnVtYmVyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSBwYXNzZWQtaW4gJ2luZGV4JyAoc3RyaW5nKSBjb3VsZG4ndCBiZSBjb252ZXJ0ZWQgdG8gJ251bWJlcicuIFske2luZGV4fV0gZ2l2ZW4uYCk7XG4gICAgfSAvLyBLbm93aW5nIHRoYXQgdGhlIGNvbnZlcnRlZCBgaW5kZXhgIGlzIGEgdmFsaWQgbnVtYmVyLFxuICAgIC8vIHdlIGNhbiB1cGRhdGUgdGhlIG9yaWdpbmFsIGFyZ3VtZW50J3MgdmFsdWUuXG5cblxuICAgIGluZGV4ID0gaW5kZXhBc051bWJlcjtcbiAgfVxuXG4gIGNvbnN0IHN3aXBlciA9IHRoaXM7XG4gIGxldCBzbGlkZUluZGV4ID0gaW5kZXg7XG4gIGlmIChzbGlkZUluZGV4IDwgMCkgc2xpZGVJbmRleCA9IDA7XG4gIGNvbnN0IHtcbiAgICBwYXJhbXMsXG4gICAgc25hcEdyaWQsXG4gICAgc2xpZGVzR3JpZCxcbiAgICBwcmV2aW91c0luZGV4LFxuICAgIGFjdGl2ZUluZGV4LFxuICAgIHJ0bFRyYW5zbGF0ZTogcnRsLFxuICAgIHdyYXBwZXJFbCxcbiAgICBlbmFibGVkXG4gIH0gPSBzd2lwZXI7XG5cbiAgaWYgKHN3aXBlci5hbmltYXRpbmcgJiYgcGFyYW1zLnByZXZlbnRJbnRlcmFjdGlvbk9uVHJhbnNpdGlvbiB8fCAhZW5hYmxlZCAmJiAhaW50ZXJuYWwgJiYgIWluaXRpYWwpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBza2lwID0gTWF0aC5taW4oc3dpcGVyLnBhcmFtcy5zbGlkZXNQZXJHcm91cFNraXAsIHNsaWRlSW5kZXgpO1xuICBsZXQgc25hcEluZGV4ID0gc2tpcCArIE1hdGguZmxvb3IoKHNsaWRlSW5kZXggLSBza2lwKSAvIHN3aXBlci5wYXJhbXMuc2xpZGVzUGVyR3JvdXApO1xuICBpZiAoc25hcEluZGV4ID49IHNuYXBHcmlkLmxlbmd0aCkgc25hcEluZGV4ID0gc25hcEdyaWQubGVuZ3RoIC0gMTtcblxuICBpZiAoKGFjdGl2ZUluZGV4IHx8IHBhcmFtcy5pbml0aWFsU2xpZGUgfHwgMCkgPT09IChwcmV2aW91c0luZGV4IHx8IDApICYmIHJ1bkNhbGxiYWNrcykge1xuICAgIHN3aXBlci5lbWl0KCdiZWZvcmVTbGlkZUNoYW5nZVN0YXJ0Jyk7XG4gIH1cblxuICBjb25zdCB0cmFuc2xhdGUgPSAtc25hcEdyaWRbc25hcEluZGV4XTsgLy8gVXBkYXRlIHByb2dyZXNzXG5cbiAgc3dpcGVyLnVwZGF0ZVByb2dyZXNzKHRyYW5zbGF0ZSk7IC8vIE5vcm1hbGl6ZSBzbGlkZUluZGV4XG5cbiAgaWYgKHBhcmFtcy5ub3JtYWxpemVTbGlkZUluZGV4KSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzbGlkZXNHcmlkLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICBjb25zdCBub3JtYWxpemVkVHJhbnNsYXRlID0gLU1hdGguZmxvb3IodHJhbnNsYXRlICogMTAwKTtcbiAgICAgIGNvbnN0IG5vcm1hbGl6ZWRHcmlkID0gTWF0aC5mbG9vcihzbGlkZXNHcmlkW2ldICogMTAwKTtcbiAgICAgIGNvbnN0IG5vcm1hbGl6ZWRHcmlkTmV4dCA9IE1hdGguZmxvb3Ioc2xpZGVzR3JpZFtpICsgMV0gKiAxMDApO1xuXG4gICAgICBpZiAodHlwZW9mIHNsaWRlc0dyaWRbaSArIDFdICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICBpZiAobm9ybWFsaXplZFRyYW5zbGF0ZSA+PSBub3JtYWxpemVkR3JpZCAmJiBub3JtYWxpemVkVHJhbnNsYXRlIDwgbm9ybWFsaXplZEdyaWROZXh0IC0gKG5vcm1hbGl6ZWRHcmlkTmV4dCAtIG5vcm1hbGl6ZWRHcmlkKSAvIDIpIHtcbiAgICAgICAgICBzbGlkZUluZGV4ID0gaTtcbiAgICAgICAgfSBlbHNlIGlmIChub3JtYWxpemVkVHJhbnNsYXRlID49IG5vcm1hbGl6ZWRHcmlkICYmIG5vcm1hbGl6ZWRUcmFuc2xhdGUgPCBub3JtYWxpemVkR3JpZE5leHQpIHtcbiAgICAgICAgICBzbGlkZUluZGV4ID0gaSArIDE7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAobm9ybWFsaXplZFRyYW5zbGF0ZSA+PSBub3JtYWxpemVkR3JpZCkge1xuICAgICAgICBzbGlkZUluZGV4ID0gaTtcbiAgICAgIH1cbiAgICB9XG4gIH0gLy8gRGlyZWN0aW9ucyBsb2Nrc1xuXG5cbiAgaWYgKHN3aXBlci5pbml0aWFsaXplZCAmJiBzbGlkZUluZGV4ICE9PSBhY3RpdmVJbmRleCkge1xuICAgIGlmICghc3dpcGVyLmFsbG93U2xpZGVOZXh0ICYmIHRyYW5zbGF0ZSA8IHN3aXBlci50cmFuc2xhdGUgJiYgdHJhbnNsYXRlIDwgc3dpcGVyLm1pblRyYW5zbGF0ZSgpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKCFzd2lwZXIuYWxsb3dTbGlkZVByZXYgJiYgdHJhbnNsYXRlID4gc3dpcGVyLnRyYW5zbGF0ZSAmJiB0cmFuc2xhdGUgPiBzd2lwZXIubWF4VHJhbnNsYXRlKCkpIHtcbiAgICAgIGlmICgoYWN0aXZlSW5kZXggfHwgMCkgIT09IHNsaWRlSW5kZXgpIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBsZXQgZGlyZWN0aW9uO1xuICBpZiAoc2xpZGVJbmRleCA+IGFjdGl2ZUluZGV4KSBkaXJlY3Rpb24gPSAnbmV4dCc7ZWxzZSBpZiAoc2xpZGVJbmRleCA8IGFjdGl2ZUluZGV4KSBkaXJlY3Rpb24gPSAncHJldic7ZWxzZSBkaXJlY3Rpb24gPSAncmVzZXQnOyAvLyBVcGRhdGUgSW5kZXhcblxuICBpZiAocnRsICYmIC10cmFuc2xhdGUgPT09IHN3aXBlci50cmFuc2xhdGUgfHwgIXJ0bCAmJiB0cmFuc2xhdGUgPT09IHN3aXBlci50cmFuc2xhdGUpIHtcbiAgICBzd2lwZXIudXBkYXRlQWN0aXZlSW5kZXgoc2xpZGVJbmRleCk7IC8vIFVwZGF0ZSBIZWlnaHRcblxuICAgIGlmIChwYXJhbXMuYXV0b0hlaWdodCkge1xuICAgICAgc3dpcGVyLnVwZGF0ZUF1dG9IZWlnaHQoKTtcbiAgICB9XG5cbiAgICBzd2lwZXIudXBkYXRlU2xpZGVzQ2xhc3NlcygpO1xuXG4gICAgaWYgKHBhcmFtcy5lZmZlY3QgIT09ICdzbGlkZScpIHtcbiAgICAgIHN3aXBlci5zZXRUcmFuc2xhdGUodHJhbnNsYXRlKTtcbiAgICB9XG5cbiAgICBpZiAoZGlyZWN0aW9uICE9PSAncmVzZXQnKSB7XG4gICAgICBzd2lwZXIudHJhbnNpdGlvblN0YXJ0KHJ1bkNhbGxiYWNrcywgZGlyZWN0aW9uKTtcbiAgICAgIHN3aXBlci50cmFuc2l0aW9uRW5kKHJ1bkNhbGxiYWNrcywgZGlyZWN0aW9uKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAocGFyYW1zLmNzc01vZGUpIHtcbiAgICBjb25zdCBpc0ggPSBzd2lwZXIuaXNIb3Jpem9udGFsKCk7XG4gICAgY29uc3QgdCA9IHJ0bCA/IHRyYW5zbGF0ZSA6IC10cmFuc2xhdGU7XG5cbiAgICBpZiAoc3BlZWQgPT09IDApIHtcbiAgICAgIGNvbnN0IGlzVmlydHVhbCA9IHN3aXBlci52aXJ0dWFsICYmIHN3aXBlci5wYXJhbXMudmlydHVhbC5lbmFibGVkO1xuXG4gICAgICBpZiAoaXNWaXJ0dWFsKSB7XG4gICAgICAgIHN3aXBlci53cmFwcGVyRWwuc3R5bGUuc2Nyb2xsU25hcFR5cGUgPSAnbm9uZSc7XG4gICAgICAgIHN3aXBlci5faW1tZWRpYXRlVmlydHVhbCA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIHdyYXBwZXJFbFtpc0ggPyAnc2Nyb2xsTGVmdCcgOiAnc2Nyb2xsVG9wJ10gPSB0O1xuXG4gICAgICBpZiAoaXNWaXJ0dWFsKSB7XG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgc3dpcGVyLndyYXBwZXJFbC5zdHlsZS5zY3JvbGxTbmFwVHlwZSA9ICcnO1xuICAgICAgICAgIHN3aXBlci5fc3dpcGVySW1tZWRpYXRlVmlydHVhbCA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCFzd2lwZXIuc3VwcG9ydC5zbW9vdGhTY3JvbGwpIHtcbiAgICAgICAgYW5pbWF0ZUNTU01vZGVTY3JvbGwoe1xuICAgICAgICAgIHN3aXBlcixcbiAgICAgICAgICB0YXJnZXRQb3NpdGlvbjogdCxcbiAgICAgICAgICBzaWRlOiBpc0ggPyAnbGVmdCcgOiAndG9wJ1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIHdyYXBwZXJFbC5zY3JvbGxUbyh7XG4gICAgICAgIFtpc0ggPyAnbGVmdCcgOiAndG9wJ106IHQsXG4gICAgICAgIGJlaGF2aW9yOiAnc21vb3RoJ1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAoc3BlZWQgPT09IDApIHtcbiAgICBzd2lwZXIuc2V0VHJhbnNpdGlvbigwKTtcbiAgICBzd2lwZXIuc2V0VHJhbnNsYXRlKHRyYW5zbGF0ZSk7XG4gICAgc3dpcGVyLnVwZGF0ZUFjdGl2ZUluZGV4KHNsaWRlSW5kZXgpO1xuICAgIHN3aXBlci51cGRhdGVTbGlkZXNDbGFzc2VzKCk7XG4gICAgc3dpcGVyLmVtaXQoJ2JlZm9yZVRyYW5zaXRpb25TdGFydCcsIHNwZWVkLCBpbnRlcm5hbCk7XG4gICAgc3dpcGVyLnRyYW5zaXRpb25TdGFydChydW5DYWxsYmFja3MsIGRpcmVjdGlvbik7XG4gICAgc3dpcGVyLnRyYW5zaXRpb25FbmQocnVuQ2FsbGJhY2tzLCBkaXJlY3Rpb24pO1xuICB9IGVsc2Uge1xuICAgIHN3aXBlci5zZXRUcmFuc2l0aW9uKHNwZWVkKTtcbiAgICBzd2lwZXIuc2V0VHJhbnNsYXRlKHRyYW5zbGF0ZSk7XG4gICAgc3dpcGVyLnVwZGF0ZUFjdGl2ZUluZGV4KHNsaWRlSW5kZXgpO1xuICAgIHN3aXBlci51cGRhdGVTbGlkZXNDbGFzc2VzKCk7XG4gICAgc3dpcGVyLmVtaXQoJ2JlZm9yZVRyYW5zaXRpb25TdGFydCcsIHNwZWVkLCBpbnRlcm5hbCk7XG4gICAgc3dpcGVyLnRyYW5zaXRpb25TdGFydChydW5DYWxsYmFja3MsIGRpcmVjdGlvbik7XG5cbiAgICBpZiAoIXN3aXBlci5hbmltYXRpbmcpIHtcbiAgICAgIHN3aXBlci5hbmltYXRpbmcgPSB0cnVlO1xuXG4gICAgICBpZiAoIXN3aXBlci5vblNsaWRlVG9XcmFwcGVyVHJhbnNpdGlvbkVuZCkge1xuICAgICAgICBzd2lwZXIub25TbGlkZVRvV3JhcHBlclRyYW5zaXRpb25FbmQgPSBmdW5jdGlvbiB0cmFuc2l0aW9uRW5kKGUpIHtcbiAgICAgICAgICBpZiAoIXN3aXBlciB8fCBzd2lwZXIuZGVzdHJveWVkKSByZXR1cm47XG4gICAgICAgICAgaWYgKGUudGFyZ2V0ICE9PSB0aGlzKSByZXR1cm47XG4gICAgICAgICAgc3dpcGVyLiR3cmFwcGVyRWxbMF0ucmVtb3ZlRXZlbnRMaXN0ZW5lcigndHJhbnNpdGlvbmVuZCcsIHN3aXBlci5vblNsaWRlVG9XcmFwcGVyVHJhbnNpdGlvbkVuZCk7XG4gICAgICAgICAgc3dpcGVyLiR3cmFwcGVyRWxbMF0ucmVtb3ZlRXZlbnRMaXN0ZW5lcignd2Via2l0VHJhbnNpdGlvbkVuZCcsIHN3aXBlci5vblNsaWRlVG9XcmFwcGVyVHJhbnNpdGlvbkVuZCk7XG4gICAgICAgICAgc3dpcGVyLm9uU2xpZGVUb1dyYXBwZXJUcmFuc2l0aW9uRW5kID0gbnVsbDtcbiAgICAgICAgICBkZWxldGUgc3dpcGVyLm9uU2xpZGVUb1dyYXBwZXJUcmFuc2l0aW9uRW5kO1xuICAgICAgICAgIHN3aXBlci50cmFuc2l0aW9uRW5kKHJ1bkNhbGxiYWNrcywgZGlyZWN0aW9uKTtcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgc3dpcGVyLiR3cmFwcGVyRWxbMF0uYWRkRXZlbnRMaXN0ZW5lcigndHJhbnNpdGlvbmVuZCcsIHN3aXBlci5vblNsaWRlVG9XcmFwcGVyVHJhbnNpdGlvbkVuZCk7XG4gICAgICBzd2lwZXIuJHdyYXBwZXJFbFswXS5hZGRFdmVudExpc3RlbmVyKCd3ZWJraXRUcmFuc2l0aW9uRW5kJywgc3dpcGVyLm9uU2xpZGVUb1dyYXBwZXJUcmFuc2l0aW9uRW5kKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/slide/slideTo.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/slide/slideToClickedSlide.js": +/*!***************************************************************!*\ + !*** ./node_modules/swiper/core/slide/slideToClickedSlide.js ***! + \***************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ slideToClickedSlide; }\n/* harmony export */ });\n/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/dom.js */ \"./node_modules/swiper/shared/dom.js\");\n/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/utils.js */ \"./node_modules/swiper/shared/utils.js\");\n\n\nfunction slideToClickedSlide() {\n const swiper = this;\n const {\n params,\n $wrapperEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt((0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.nextTick)(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.nextTick)(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvc2xpZGUvc2xpZGVUb0NsaWNrZWRTbGlkZS5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBb0M7QUFDYTtBQUNsQztBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EseUJBQXlCLDBEQUFDOztBQUUxQjtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0Msa0JBQWtCLDRCQUE0QixVQUFVLFVBQVUsMkJBQTJCO0FBQzVJLFFBQVEsMERBQVE7QUFDaEI7QUFDQSxTQUFTO0FBQ1QsUUFBUTtBQUNSO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQSw2Q0FBNkMsa0JBQWtCLDRCQUE0QixVQUFVLFVBQVUsMkJBQTJCO0FBQzFJLE1BQU0sMERBQVE7QUFDZDtBQUNBLE9BQU87QUFDUCxNQUFNO0FBQ047QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N3aXBlci9jb3JlL3NsaWRlL3NsaWRlVG9DbGlja2VkU2xpZGUuanM/Y2Y4ZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICcuLi8uLi9zaGFyZWQvZG9tLmpzJztcbmltcG9ydCB7IG5leHRUaWNrIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3V0aWxzLmpzJztcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHNsaWRlVG9DbGlja2VkU2xpZGUoKSB7XG4gIGNvbnN0IHN3aXBlciA9IHRoaXM7XG4gIGNvbnN0IHtcbiAgICBwYXJhbXMsXG4gICAgJHdyYXBwZXJFbFxuICB9ID0gc3dpcGVyO1xuICBjb25zdCBzbGlkZXNQZXJWaWV3ID0gcGFyYW1zLnNsaWRlc1BlclZpZXcgPT09ICdhdXRvJyA/IHN3aXBlci5zbGlkZXNQZXJWaWV3RHluYW1pYygpIDogcGFyYW1zLnNsaWRlc1BlclZpZXc7XG4gIGxldCBzbGlkZVRvSW5kZXggPSBzd2lwZXIuY2xpY2tlZEluZGV4O1xuICBsZXQgcmVhbEluZGV4O1xuXG4gIGlmIChwYXJhbXMubG9vcCkge1xuICAgIGlmIChzd2lwZXIuYW5pbWF0aW5nKSByZXR1cm47XG4gICAgcmVhbEluZGV4ID0gcGFyc2VJbnQoJChzd2lwZXIuY2xpY2tlZFNsaWRlKS5hdHRyKCdkYXRhLXN3aXBlci1zbGlkZS1pbmRleCcpLCAxMCk7XG5cbiAgICBpZiAocGFyYW1zLmNlbnRlcmVkU2xpZGVzKSB7XG4gICAgICBpZiAoc2xpZGVUb0luZGV4IDwgc3dpcGVyLmxvb3BlZFNsaWRlcyAtIHNsaWRlc1BlclZpZXcgLyAyIHx8IHNsaWRlVG9JbmRleCA+IHN3aXBlci5zbGlkZXMubGVuZ3RoIC0gc3dpcGVyLmxvb3BlZFNsaWRlcyArIHNsaWRlc1BlclZpZXcgLyAyKSB7XG4gICAgICAgIHN3aXBlci5sb29wRml4KCk7XG4gICAgICAgIHNsaWRlVG9JbmRleCA9ICR3cmFwcGVyRWwuY2hpbGRyZW4oYC4ke3BhcmFtcy5zbGlkZUNsYXNzfVtkYXRhLXN3aXBlci1zbGlkZS1pbmRleD1cIiR7cmVhbEluZGV4fVwiXTpub3QoLiR7cGFyYW1zLnNsaWRlRHVwbGljYXRlQ2xhc3N9KWApLmVxKDApLmluZGV4KCk7XG4gICAgICAgIG5leHRUaWNrKCgpID0+IHtcbiAgICAgICAgICBzd2lwZXIuc2xpZGVUbyhzbGlkZVRvSW5kZXgpO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN3aXBlci5zbGlkZVRvKHNsaWRlVG9JbmRleCk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChzbGlkZVRvSW5kZXggPiBzd2lwZXIuc2xpZGVzLmxlbmd0aCAtIHNsaWRlc1BlclZpZXcpIHtcbiAgICAgIHN3aXBlci5sb29wRml4KCk7XG4gICAgICBzbGlkZVRvSW5kZXggPSAkd3JhcHBlckVsLmNoaWxkcmVuKGAuJHtwYXJhbXMuc2xpZGVDbGFzc31bZGF0YS1zd2lwZXItc2xpZGUtaW5kZXg9XCIke3JlYWxJbmRleH1cIl06bm90KC4ke3BhcmFtcy5zbGlkZUR1cGxpY2F0ZUNsYXNzfSlgKS5lcSgwKS5pbmRleCgpO1xuICAgICAgbmV4dFRpY2soKCkgPT4ge1xuICAgICAgICBzd2lwZXIuc2xpZGVUbyhzbGlkZVRvSW5kZXgpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN3aXBlci5zbGlkZVRvKHNsaWRlVG9JbmRleCk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHN3aXBlci5zbGlkZVRvKHNsaWRlVG9JbmRleCk7XG4gIH1cbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/slide/slideToClickedSlide.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/slide/slideToClosest.js": +/*!**********************************************************!*\ + !*** ./node_modules/swiper/core/slide/slideToClosest.js ***! + \**********************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ slideToClosest; }\n/* harmony export */ });\n/* eslint no-unused-vars: \"off\" */\nfunction slideToClosest(speed = this.params.speed, runCallbacks = true, internal, threshold = 0.5) {\n const swiper = this;\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvc2xpZGUvc2xpZGVUb0Nsb3Nlc3QuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ2U7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zd2lwZXIvY29yZS9zbGlkZS9zbGlkZVRvQ2xvc2VzdC5qcz9mNWE0Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludCBuby11bnVzZWQtdmFyczogXCJvZmZcIiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gc2xpZGVUb0Nsb3Nlc3Qoc3BlZWQgPSB0aGlzLnBhcmFtcy5zcGVlZCwgcnVuQ2FsbGJhY2tzID0gdHJ1ZSwgaW50ZXJuYWwsIHRocmVzaG9sZCA9IDAuNSkge1xuICBjb25zdCBzd2lwZXIgPSB0aGlzO1xuICBsZXQgaW5kZXggPSBzd2lwZXIuYWN0aXZlSW5kZXg7XG4gIGNvbnN0IHNraXAgPSBNYXRoLm1pbihzd2lwZXIucGFyYW1zLnNsaWRlc1Blckdyb3VwU2tpcCwgaW5kZXgpO1xuICBjb25zdCBzbmFwSW5kZXggPSBza2lwICsgTWF0aC5mbG9vcigoaW5kZXggLSBza2lwKSAvIHN3aXBlci5wYXJhbXMuc2xpZGVzUGVyR3JvdXApO1xuICBjb25zdCB0cmFuc2xhdGUgPSBzd2lwZXIucnRsVHJhbnNsYXRlID8gc3dpcGVyLnRyYW5zbGF0ZSA6IC1zd2lwZXIudHJhbnNsYXRlO1xuXG4gIGlmICh0cmFuc2xhdGUgPj0gc3dpcGVyLnNuYXBHcmlkW3NuYXBJbmRleF0pIHtcbiAgICAvLyBUaGUgY3VycmVudCB0cmFuc2xhdGUgaXMgb24gb3IgYWZ0ZXIgdGhlIGN1cnJlbnQgc25hcCBpbmRleCwgc28gdGhlIGNob2ljZVxuICAgIC8vIGlzIGJldHdlZW4gdGhlIGN1cnJlbnQgaW5kZXggYW5kIHRoZSBvbmUgYWZ0ZXIgaXQuXG4gICAgY29uc3QgY3VycmVudFNuYXAgPSBzd2lwZXIuc25hcEdyaWRbc25hcEluZGV4XTtcbiAgICBjb25zdCBuZXh0U25hcCA9IHN3aXBlci5zbmFwR3JpZFtzbmFwSW5kZXggKyAxXTtcblxuICAgIGlmICh0cmFuc2xhdGUgLSBjdXJyZW50U25hcCA+IChuZXh0U25hcCAtIGN1cnJlbnRTbmFwKSAqIHRocmVzaG9sZCkge1xuICAgICAgaW5kZXggKz0gc3dpcGVyLnBhcmFtcy5zbGlkZXNQZXJHcm91cDtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gVGhlIGN1cnJlbnQgdHJhbnNsYXRlIGlzIGJlZm9yZSB0aGUgY3VycmVudCBzbmFwIGluZGV4LCBzbyB0aGUgY2hvaWNlXG4gICAgLy8gaXMgYmV0d2VlbiB0aGUgY3VycmVudCBpbmRleCBhbmQgdGhlIG9uZSBiZWZvcmUgaXQuXG4gICAgY29uc3QgcHJldlNuYXAgPSBzd2lwZXIuc25hcEdyaWRbc25hcEluZGV4IC0gMV07XG4gICAgY29uc3QgY3VycmVudFNuYXAgPSBzd2lwZXIuc25hcEdyaWRbc25hcEluZGV4XTtcblxuICAgIGlmICh0cmFuc2xhdGUgLSBwcmV2U25hcCA8PSAoY3VycmVudFNuYXAgLSBwcmV2U25hcCkgKiB0aHJlc2hvbGQpIHtcbiAgICAgIGluZGV4IC09IHN3aXBlci5wYXJhbXMuc2xpZGVzUGVyR3JvdXA7XG4gICAgfVxuICB9XG5cbiAgaW5kZXggPSBNYXRoLm1heChpbmRleCwgMCk7XG4gIGluZGV4ID0gTWF0aC5taW4oaW5kZXgsIHN3aXBlci5zbGlkZXNHcmlkLmxlbmd0aCAtIDEpO1xuICByZXR1cm4gc3dpcGVyLnNsaWRlVG8oaW5kZXgsIHNwZWVkLCBydW5DYWxsYmFja3MsIGludGVybmFsKTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/slide/slideToClosest.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/slide/slideToLoop.js": +/*!*******************************************************!*\ + !*** ./node_modules/swiper/core/slide/slideToLoop.js ***! + \*******************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ slideToLoop; }\n/* harmony export */ });\nfunction slideToLoop(index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n let newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvc2xpZGUvc2xpZGVUb0xvb3AuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFlO0FBQ2Y7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvc2xpZGUvc2xpZGVUb0xvb3AuanM/MTQ2MiJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBzbGlkZVRvTG9vcChpbmRleCA9IDAsIHNwZWVkID0gdGhpcy5wYXJhbXMuc3BlZWQsIHJ1bkNhbGxiYWNrcyA9IHRydWUsIGludGVybmFsKSB7XG4gIGNvbnN0IHN3aXBlciA9IHRoaXM7XG4gIGxldCBuZXdJbmRleCA9IGluZGV4O1xuXG4gIGlmIChzd2lwZXIucGFyYW1zLmxvb3ApIHtcbiAgICBuZXdJbmRleCArPSBzd2lwZXIubG9vcGVkU2xpZGVzO1xuICB9XG5cbiAgcmV0dXJuIHN3aXBlci5zbGlkZVRvKG5ld0luZGV4LCBzcGVlZCwgcnVuQ2FsbGJhY2tzLCBpbnRlcm5hbCk7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/slide/slideToLoop.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/transition/index.js": +/*!******************************************************!*\ + !*** ./node_modules/swiper/core/transition/index.js ***! + \******************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _setTransition_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setTransition.js */ \"./node_modules/swiper/core/transition/setTransition.js\");\n/* harmony import */ var _transitionStart_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./transitionStart.js */ \"./node_modules/swiper/core/transition/transitionStart.js\");\n/* harmony import */ var _transitionEnd_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./transitionEnd.js */ \"./node_modules/swiper/core/transition/transitionEnd.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n setTransition: _setTransition_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n transitionStart: _transitionStart_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n transitionEnd: _transitionEnd_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvdHJhbnNpdGlvbi9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQStDO0FBQ0k7QUFDSjtBQUMvQywrREFBZTtBQUNmLGVBQWU7QUFDZixpQkFBaUI7QUFDakIsZUFBZTtBQUNmLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N3aXBlci9jb3JlL3RyYW5zaXRpb24vaW5kZXguanM/YzMzNiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc2V0VHJhbnNpdGlvbiBmcm9tICcuL3NldFRyYW5zaXRpb24uanMnO1xuaW1wb3J0IHRyYW5zaXRpb25TdGFydCBmcm9tICcuL3RyYW5zaXRpb25TdGFydC5qcyc7XG5pbXBvcnQgdHJhbnNpdGlvbkVuZCBmcm9tICcuL3RyYW5zaXRpb25FbmQuanMnO1xuZXhwb3J0IGRlZmF1bHQge1xuICBzZXRUcmFuc2l0aW9uLFxuICB0cmFuc2l0aW9uU3RhcnQsXG4gIHRyYW5zaXRpb25FbmRcbn07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/transition/index.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/transition/setTransition.js": +/*!**************************************************************!*\ + !*** ./node_modules/swiper/core/transition/setTransition.js ***! + \**************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ setTransition; }\n/* harmony export */ });\nfunction setTransition(duration, byController) {\n const swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvdHJhbnNpdGlvbi9zZXRUcmFuc2l0aW9uLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBZTtBQUNmOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zd2lwZXIvY29yZS90cmFuc2l0aW9uL3NldFRyYW5zaXRpb24uanM/MmNhNSJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBzZXRUcmFuc2l0aW9uKGR1cmF0aW9uLCBieUNvbnRyb2xsZXIpIHtcbiAgY29uc3Qgc3dpcGVyID0gdGhpcztcblxuICBpZiAoIXN3aXBlci5wYXJhbXMuY3NzTW9kZSkge1xuICAgIHN3aXBlci4kd3JhcHBlckVsLnRyYW5zaXRpb24oZHVyYXRpb24pO1xuICB9XG5cbiAgc3dpcGVyLmVtaXQoJ3NldFRyYW5zaXRpb24nLCBkdXJhdGlvbiwgYnlDb250cm9sbGVyKTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/transition/setTransition.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/transition/transitionEmit.js": +/*!***************************************************************!*\ + !*** ./node_modules/swiper/core/transition/transitionEmit.js ***! + \***************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ transitionEmit; }\n/* harmony export */ });\nfunction transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step\n}) {\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit(`transition${step}`);\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n\n swiper.emit(`slideChangeTransition${step}`);\n\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvdHJhbnNpdGlvbi90cmFuc2l0aW9uRW1pdC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7O0FBRUE7QUFDQSxrREFBa0QsbURBQW1EO0FBQ3JHOztBQUVBLDJCQUEyQixLQUFLOztBQUVoQztBQUNBO0FBQ0EseUNBQXlDLEtBQUs7QUFDOUM7QUFDQTs7QUFFQSx3Q0FBd0MsS0FBSzs7QUFFN0M7QUFDQSx3Q0FBd0MsS0FBSztBQUM3QyxNQUFNO0FBQ04sd0NBQXdDLEtBQUs7QUFDN0M7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zd2lwZXIvY29yZS90cmFuc2l0aW9uL3RyYW5zaXRpb25FbWl0LmpzPzg4YTMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdHJhbnNpdGlvbkVtaXQoe1xuICBzd2lwZXIsXG4gIHJ1bkNhbGxiYWNrcyxcbiAgZGlyZWN0aW9uLFxuICBzdGVwXG59KSB7XG4gIGNvbnN0IHtcbiAgICBhY3RpdmVJbmRleCxcbiAgICBwcmV2aW91c0luZGV4XG4gIH0gPSBzd2lwZXI7XG4gIGxldCBkaXIgPSBkaXJlY3Rpb247XG5cbiAgaWYgKCFkaXIpIHtcbiAgICBpZiAoYWN0aXZlSW5kZXggPiBwcmV2aW91c0luZGV4KSBkaXIgPSAnbmV4dCc7ZWxzZSBpZiAoYWN0aXZlSW5kZXggPCBwcmV2aW91c0luZGV4KSBkaXIgPSAncHJldic7ZWxzZSBkaXIgPSAncmVzZXQnO1xuICB9XG5cbiAgc3dpcGVyLmVtaXQoYHRyYW5zaXRpb24ke3N0ZXB9YCk7XG5cbiAgaWYgKHJ1bkNhbGxiYWNrcyAmJiBhY3RpdmVJbmRleCAhPT0gcHJldmlvdXNJbmRleCkge1xuICAgIGlmIChkaXIgPT09ICdyZXNldCcpIHtcbiAgICAgIHN3aXBlci5lbWl0KGBzbGlkZVJlc2V0VHJhbnNpdGlvbiR7c3RlcH1gKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzd2lwZXIuZW1pdChgc2xpZGVDaGFuZ2VUcmFuc2l0aW9uJHtzdGVwfWApO1xuXG4gICAgaWYgKGRpciA9PT0gJ25leHQnKSB7XG4gICAgICBzd2lwZXIuZW1pdChgc2xpZGVOZXh0VHJhbnNpdGlvbiR7c3RlcH1gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3dpcGVyLmVtaXQoYHNsaWRlUHJldlRyYW5zaXRpb24ke3N0ZXB9YCk7XG4gICAgfVxuICB9XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/transition/transitionEmit.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/transition/transitionEnd.js": +/*!**************************************************************!*\ + !*** ./node_modules/swiper/core/transition/transitionEnd.js ***! + \**************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ transitionEnd; }\n/* harmony export */ });\n/* harmony import */ var _transitionEmit_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./transitionEmit.js */ \"./node_modules/swiper/core/transition/transitionEmit.js\");\n\nfunction transitionEnd(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n (0,_transitionEmit_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvdHJhbnNpdGlvbi90cmFuc2l0aW9uRW5kLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQWlEO0FBQ2xDO0FBQ2Y7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBLEVBQUUsOERBQWM7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N3aXBlci9jb3JlL3RyYW5zaXRpb24vdHJhbnNpdGlvbkVuZC5qcz9kYWEyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0cmFuc2l0aW9uRW1pdCBmcm9tICcuL3RyYW5zaXRpb25FbWl0LmpzJztcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHRyYW5zaXRpb25FbmQocnVuQ2FsbGJhY2tzID0gdHJ1ZSwgZGlyZWN0aW9uKSB7XG4gIGNvbnN0IHN3aXBlciA9IHRoaXM7XG4gIGNvbnN0IHtcbiAgICBwYXJhbXNcbiAgfSA9IHN3aXBlcjtcbiAgc3dpcGVyLmFuaW1hdGluZyA9IGZhbHNlO1xuICBpZiAocGFyYW1zLmNzc01vZGUpIHJldHVybjtcbiAgc3dpcGVyLnNldFRyYW5zaXRpb24oMCk7XG4gIHRyYW5zaXRpb25FbWl0KHtcbiAgICBzd2lwZXIsXG4gICAgcnVuQ2FsbGJhY2tzLFxuICAgIGRpcmVjdGlvbixcbiAgICBzdGVwOiAnRW5kJ1xuICB9KTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/transition/transitionEnd.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/transition/transitionStart.js": +/*!****************************************************************!*\ + !*** ./node_modules/swiper/core/transition/transitionStart.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ transitionStart; }\n/* harmony export */ });\n/* harmony import */ var _transitionEmit_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./transitionEmit.js */ \"./node_modules/swiper/core/transition/transitionEmit.js\");\n\nfunction transitionStart(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n (0,_transitionEmit_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvdHJhbnNpdGlvbi90cmFuc2l0aW9uU3RhcnQuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBaUQ7QUFDbEM7QUFDZjtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7O0FBRUE7QUFDQTtBQUNBOztBQUVBLEVBQUUsOERBQWM7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N3aXBlci9jb3JlL3RyYW5zaXRpb24vdHJhbnNpdGlvblN0YXJ0LmpzPzI5NjgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHRyYW5zaXRpb25FbWl0IGZyb20gJy4vdHJhbnNpdGlvbkVtaXQuanMnO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdHJhbnNpdGlvblN0YXJ0KHJ1bkNhbGxiYWNrcyA9IHRydWUsIGRpcmVjdGlvbikge1xuICBjb25zdCBzd2lwZXIgPSB0aGlzO1xuICBjb25zdCB7XG4gICAgcGFyYW1zXG4gIH0gPSBzd2lwZXI7XG4gIGlmIChwYXJhbXMuY3NzTW9kZSkgcmV0dXJuO1xuXG4gIGlmIChwYXJhbXMuYXV0b0hlaWdodCkge1xuICAgIHN3aXBlci51cGRhdGVBdXRvSGVpZ2h0KCk7XG4gIH1cblxuICB0cmFuc2l0aW9uRW1pdCh7XG4gICAgc3dpcGVyLFxuICAgIHJ1bkNhbGxiYWNrcyxcbiAgICBkaXJlY3Rpb24sXG4gICAgc3RlcDogJ1N0YXJ0J1xuICB9KTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/transition/transitionStart.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/translate/getTranslate.js": +/*!************************************************************!*\ + !*** ./node_modules/swiper/core/translate/getTranslate.js ***! + \************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ getSwiperTranslate; }\n/* harmony export */ });\n/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ \"./node_modules/swiper/shared/utils.js\");\n\nfunction getSwiperTranslate(axis = this.isHorizontal() ? 'x' : 'y') {\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n $wrapperEl\n } = swiper;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n let currentTranslate = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.getTranslate)($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvdHJhbnNsYXRlL2dldFRyYW5zbGF0ZS5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFxRDtBQUN0QztBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7O0FBRUo7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSx5QkFBeUIsOERBQVk7QUFDckM7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zd2lwZXIvY29yZS90cmFuc2xhdGUvZ2V0VHJhbnNsYXRlLmpzPzA4ZjciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0VHJhbnNsYXRlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3V0aWxzLmpzJztcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldFN3aXBlclRyYW5zbGF0ZShheGlzID0gdGhpcy5pc0hvcml6b250YWwoKSA/ICd4JyA6ICd5Jykge1xuICBjb25zdCBzd2lwZXIgPSB0aGlzO1xuICBjb25zdCB7XG4gICAgcGFyYW1zLFxuICAgIHJ0bFRyYW5zbGF0ZTogcnRsLFxuICAgIHRyYW5zbGF0ZSxcbiAgICAkd3JhcHBlckVsXG4gIH0gPSBzd2lwZXI7XG5cbiAgaWYgKHBhcmFtcy52aXJ0dWFsVHJhbnNsYXRlKSB7XG4gICAgcmV0dXJuIHJ0bCA/IC10cmFuc2xhdGUgOiB0cmFuc2xhdGU7XG4gIH1cblxuICBpZiAocGFyYW1zLmNzc01vZGUpIHtcbiAgICByZXR1cm4gdHJhbnNsYXRlO1xuICB9XG5cbiAgbGV0IGN1cnJlbnRUcmFuc2xhdGUgPSBnZXRUcmFuc2xhdGUoJHdyYXBwZXJFbFswXSwgYXhpcyk7XG4gIGlmIChydGwpIGN1cnJlbnRUcmFuc2xhdGUgPSAtY3VycmVudFRyYW5zbGF0ZTtcbiAgcmV0dXJuIGN1cnJlbnRUcmFuc2xhdGUgfHwgMDtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/translate/getTranslate.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/translate/index.js": +/*!*****************************************************!*\ + !*** ./node_modules/swiper/core/translate/index.js ***! + \*****************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getTranslate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getTranslate.js */ \"./node_modules/swiper/core/translate/getTranslate.js\");\n/* harmony import */ var _setTranslate_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./setTranslate.js */ \"./node_modules/swiper/core/translate/setTranslate.js\");\n/* harmony import */ var _minTranslate_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./minTranslate.js */ \"./node_modules/swiper/core/translate/minTranslate.js\");\n/* harmony import */ var _maxTranslate_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./maxTranslate.js */ \"./node_modules/swiper/core/translate/maxTranslate.js\");\n/* harmony import */ var _translateTo_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./translateTo.js */ \"./node_modules/swiper/core/translate/translateTo.js\");\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n getTranslate: _getTranslate_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n setTranslate: _setTranslate_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n minTranslate: _minTranslate_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n maxTranslate: _maxTranslate_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n translateTo: _translateTo_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvdHJhbnNsYXRlL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUE2QztBQUNBO0FBQ0E7QUFDQTtBQUNGO0FBQzNDLCtEQUFlO0FBQ2YsY0FBYztBQUNkLGNBQWM7QUFDZCxjQUFjO0FBQ2QsY0FBYztBQUNkLGFBQWE7QUFDYixDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zd2lwZXIvY29yZS90cmFuc2xhdGUvaW5kZXguanM/ZTQzYiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0VHJhbnNsYXRlIGZyb20gJy4vZ2V0VHJhbnNsYXRlLmpzJztcbmltcG9ydCBzZXRUcmFuc2xhdGUgZnJvbSAnLi9zZXRUcmFuc2xhdGUuanMnO1xuaW1wb3J0IG1pblRyYW5zbGF0ZSBmcm9tICcuL21pblRyYW5zbGF0ZS5qcyc7XG5pbXBvcnQgbWF4VHJhbnNsYXRlIGZyb20gJy4vbWF4VHJhbnNsYXRlLmpzJztcbmltcG9ydCB0cmFuc2xhdGVUbyBmcm9tICcuL3RyYW5zbGF0ZVRvLmpzJztcbmV4cG9ydCBkZWZhdWx0IHtcbiAgZ2V0VHJhbnNsYXRlLFxuICBzZXRUcmFuc2xhdGUsXG4gIG1pblRyYW5zbGF0ZSxcbiAgbWF4VHJhbnNsYXRlLFxuICB0cmFuc2xhdGVUb1xufTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/translate/index.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/translate/maxTranslate.js": +/*!************************************************************!*\ + !*** ./node_modules/swiper/core/translate/maxTranslate.js ***! + \************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ maxTranslate; }\n/* harmony export */ });\nfunction maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvdHJhbnNsYXRlL21heFRyYW5zbGF0ZS5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQWU7QUFDZjtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zd2lwZXIvY29yZS90cmFuc2xhdGUvbWF4VHJhbnNsYXRlLmpzPzg2ZjMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbWF4VHJhbnNsYXRlKCkge1xuICByZXR1cm4gLXRoaXMuc25hcEdyaWRbdGhpcy5zbmFwR3JpZC5sZW5ndGggLSAxXTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/translate/maxTranslate.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/translate/minTranslate.js": +/*!************************************************************!*\ + !*** ./node_modules/swiper/core/translate/minTranslate.js ***! + \************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ minTranslate; }\n/* harmony export */ });\nfunction minTranslate() {\n return -this.snapGrid[0];\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvdHJhbnNsYXRlL21pblRyYW5zbGF0ZS5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQWU7QUFDZjtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zd2lwZXIvY29yZS90cmFuc2xhdGUvbWluVHJhbnNsYXRlLmpzPzNiOGQiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbWluVHJhbnNsYXRlKCkge1xuICByZXR1cm4gLXRoaXMuc25hcEdyaWRbMF07XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/translate/minTranslate.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/translate/setTranslate.js": +/*!************************************************************!*\ + !*** ./node_modules/swiper/core/translate/setTranslate.js ***! + \************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ setTranslate; }\n/* harmony export */ });\nfunction setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n $wrapperEl,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`);\n }\n\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvdHJhbnNsYXRlL3NldFRyYW5zbGF0ZS5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0osd0NBQXdDLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRTtBQUMxRDs7QUFFQTtBQUNBLG9EQUFvRDs7QUFFcEQ7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N3aXBlci9jb3JlL3RyYW5zbGF0ZS9zZXRUcmFuc2xhdGUuanM/YTViNSJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBzZXRUcmFuc2xhdGUodHJhbnNsYXRlLCBieUNvbnRyb2xsZXIpIHtcbiAgY29uc3Qgc3dpcGVyID0gdGhpcztcbiAgY29uc3Qge1xuICAgIHJ0bFRyYW5zbGF0ZTogcnRsLFxuICAgIHBhcmFtcyxcbiAgICAkd3JhcHBlckVsLFxuICAgIHdyYXBwZXJFbCxcbiAgICBwcm9ncmVzc1xuICB9ID0gc3dpcGVyO1xuICBsZXQgeCA9IDA7XG4gIGxldCB5ID0gMDtcbiAgY29uc3QgeiA9IDA7XG5cbiAgaWYgKHN3aXBlci5pc0hvcml6b250YWwoKSkge1xuICAgIHggPSBydGwgPyAtdHJhbnNsYXRlIDogdHJhbnNsYXRlO1xuICB9IGVsc2Uge1xuICAgIHkgPSB0cmFuc2xhdGU7XG4gIH1cblxuICBpZiAocGFyYW1zLnJvdW5kTGVuZ3Rocykge1xuICAgIHggPSBNYXRoLmZsb29yKHgpO1xuICAgIHkgPSBNYXRoLmZsb29yKHkpO1xuICB9XG5cbiAgaWYgKHBhcmFtcy5jc3NNb2RlKSB7XG4gICAgd3JhcHBlckVsW3N3aXBlci5pc0hvcml6b250YWwoKSA/ICdzY3JvbGxMZWZ0JyA6ICdzY3JvbGxUb3AnXSA9IHN3aXBlci5pc0hvcml6b250YWwoKSA/IC14IDogLXk7XG4gIH0gZWxzZSBpZiAoIXBhcmFtcy52aXJ0dWFsVHJhbnNsYXRlKSB7XG4gICAgJHdyYXBwZXJFbC50cmFuc2Zvcm0oYHRyYW5zbGF0ZTNkKCR7eH1weCwgJHt5fXB4LCAke3p9cHgpYCk7XG4gIH1cblxuICBzd2lwZXIucHJldmlvdXNUcmFuc2xhdGUgPSBzd2lwZXIudHJhbnNsYXRlO1xuICBzd2lwZXIudHJhbnNsYXRlID0gc3dpcGVyLmlzSG9yaXpvbnRhbCgpID8geCA6IHk7IC8vIENoZWNrIGlmIHdlIG5lZWQgdG8gdXBkYXRlIHByb2dyZXNzXG5cbiAgbGV0IG5ld1Byb2dyZXNzO1xuICBjb25zdCB0cmFuc2xhdGVzRGlmZiA9IHN3aXBlci5tYXhUcmFuc2xhdGUoKSAtIHN3aXBlci5taW5UcmFuc2xhdGUoKTtcblxuICBpZiAodHJhbnNsYXRlc0RpZmYgPT09IDApIHtcbiAgICBuZXdQcm9ncmVzcyA9IDA7XG4gIH0gZWxzZSB7XG4gICAgbmV3UHJvZ3Jlc3MgPSAodHJhbnNsYXRlIC0gc3dpcGVyLm1pblRyYW5zbGF0ZSgpKSAvIHRyYW5zbGF0ZXNEaWZmO1xuICB9XG5cbiAgaWYgKG5ld1Byb2dyZXNzICE9PSBwcm9ncmVzcykge1xuICAgIHN3aXBlci51cGRhdGVQcm9ncmVzcyh0cmFuc2xhdGUpO1xuICB9XG5cbiAgc3dpcGVyLmVtaXQoJ3NldFRyYW5zbGF0ZScsIHN3aXBlci50cmFuc2xhdGUsIGJ5Q29udHJvbGxlcik7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/translate/setTranslate.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/translate/translateTo.js": +/*!***********************************************************!*\ + !*** ./node_modules/swiper/core/translate/translateTo.js ***! + \***********************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ translateTo; }\n/* harmony export */ });\n/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ \"./node_modules/swiper/shared/utils.js\");\n\nfunction translateTo(translate = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) {\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.animateCSSModeScroll)({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvdHJhbnNsYXRlL3RyYW5zbGF0ZVRvLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQTZEO0FBQzlDO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOztBQUVKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSwrRUFBK0Usa0ZBQWtGLCtCQUErQjs7QUFFaE07O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0EsUUFBUSxzRUFBb0I7QUFDNUI7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvdHJhbnNsYXRlL3RyYW5zbGF0ZVRvLmpzPzZjZTgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZUNTU01vZGVTY3JvbGwgfSBmcm9tICcuLi8uLi9zaGFyZWQvdXRpbHMuanMnO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdHJhbnNsYXRlVG8odHJhbnNsYXRlID0gMCwgc3BlZWQgPSB0aGlzLnBhcmFtcy5zcGVlZCwgcnVuQ2FsbGJhY2tzID0gdHJ1ZSwgdHJhbnNsYXRlQm91bmRzID0gdHJ1ZSwgaW50ZXJuYWwpIHtcbiAgY29uc3Qgc3dpcGVyID0gdGhpcztcbiAgY29uc3Qge1xuICAgIHBhcmFtcyxcbiAgICB3cmFwcGVyRWxcbiAgfSA9IHN3aXBlcjtcblxuICBpZiAoc3dpcGVyLmFuaW1hdGluZyAmJiBwYXJhbXMucHJldmVudEludGVyYWN0aW9uT25UcmFuc2l0aW9uKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgbWluVHJhbnNsYXRlID0gc3dpcGVyLm1pblRyYW5zbGF0ZSgpO1xuICBjb25zdCBtYXhUcmFuc2xhdGUgPSBzd2lwZXIubWF4VHJhbnNsYXRlKCk7XG4gIGxldCBuZXdUcmFuc2xhdGU7XG4gIGlmICh0cmFuc2xhdGVCb3VuZHMgJiYgdHJhbnNsYXRlID4gbWluVHJhbnNsYXRlKSBuZXdUcmFuc2xhdGUgPSBtaW5UcmFuc2xhdGU7ZWxzZSBpZiAodHJhbnNsYXRlQm91bmRzICYmIHRyYW5zbGF0ZSA8IG1heFRyYW5zbGF0ZSkgbmV3VHJhbnNsYXRlID0gbWF4VHJhbnNsYXRlO2Vsc2UgbmV3VHJhbnNsYXRlID0gdHJhbnNsYXRlOyAvLyBVcGRhdGUgcHJvZ3Jlc3NcblxuICBzd2lwZXIudXBkYXRlUHJvZ3Jlc3MobmV3VHJhbnNsYXRlKTtcblxuICBpZiAocGFyYW1zLmNzc01vZGUpIHtcbiAgICBjb25zdCBpc0ggPSBzd2lwZXIuaXNIb3Jpem9udGFsKCk7XG5cbiAgICBpZiAoc3BlZWQgPT09IDApIHtcbiAgICAgIHdyYXBwZXJFbFtpc0ggPyAnc2Nyb2xsTGVmdCcgOiAnc2Nyb2xsVG9wJ10gPSAtbmV3VHJhbnNsYXRlO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIXN3aXBlci5zdXBwb3J0LnNtb290aFNjcm9sbCkge1xuICAgICAgICBhbmltYXRlQ1NTTW9kZVNjcm9sbCh7XG4gICAgICAgICAgc3dpcGVyLFxuICAgICAgICAgIHRhcmdldFBvc2l0aW9uOiAtbmV3VHJhbnNsYXRlLFxuICAgICAgICAgIHNpZGU6IGlzSCA/ICdsZWZ0JyA6ICd0b3AnXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgd3JhcHBlckVsLnNjcm9sbFRvKHtcbiAgICAgICAgW2lzSCA/ICdsZWZ0JyA6ICd0b3AnXTogLW5ld1RyYW5zbGF0ZSxcbiAgICAgICAgYmVoYXZpb3I6ICdzbW9vdGgnXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmIChzcGVlZCA9PT0gMCkge1xuICAgIHN3aXBlci5zZXRUcmFuc2l0aW9uKDApO1xuICAgIHN3aXBlci5zZXRUcmFuc2xhdGUobmV3VHJhbnNsYXRlKTtcblxuICAgIGlmIChydW5DYWxsYmFja3MpIHtcbiAgICAgIHN3aXBlci5lbWl0KCdiZWZvcmVUcmFuc2l0aW9uU3RhcnQnLCBzcGVlZCwgaW50ZXJuYWwpO1xuICAgICAgc3dpcGVyLmVtaXQoJ3RyYW5zaXRpb25FbmQnKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgc3dpcGVyLnNldFRyYW5zaXRpb24oc3BlZWQpO1xuICAgIHN3aXBlci5zZXRUcmFuc2xhdGUobmV3VHJhbnNsYXRlKTtcblxuICAgIGlmIChydW5DYWxsYmFja3MpIHtcbiAgICAgIHN3aXBlci5lbWl0KCdiZWZvcmVUcmFuc2l0aW9uU3RhcnQnLCBzcGVlZCwgaW50ZXJuYWwpO1xuICAgICAgc3dpcGVyLmVtaXQoJ3RyYW5zaXRpb25TdGFydCcpO1xuICAgIH1cblxuICAgIGlmICghc3dpcGVyLmFuaW1hdGluZykge1xuICAgICAgc3dpcGVyLmFuaW1hdGluZyA9IHRydWU7XG5cbiAgICAgIGlmICghc3dpcGVyLm9uVHJhbnNsYXRlVG9XcmFwcGVyVHJhbnNpdGlvbkVuZCkge1xuICAgICAgICBzd2lwZXIub25UcmFuc2xhdGVUb1dyYXBwZXJUcmFuc2l0aW9uRW5kID0gZnVuY3Rpb24gdHJhbnNpdGlvbkVuZChlKSB7XG4gICAgICAgICAgaWYgKCFzd2lwZXIgfHwgc3dpcGVyLmRlc3Ryb3llZCkgcmV0dXJuO1xuICAgICAgICAgIGlmIChlLnRhcmdldCAhPT0gdGhpcykgcmV0dXJuO1xuICAgICAgICAgIHN3aXBlci4kd3JhcHBlckVsWzBdLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RyYW5zaXRpb25lbmQnLCBzd2lwZXIub25UcmFuc2xhdGVUb1dyYXBwZXJUcmFuc2l0aW9uRW5kKTtcbiAgICAgICAgICBzd2lwZXIuJHdyYXBwZXJFbFswXS5yZW1vdmVFdmVudExpc3RlbmVyKCd3ZWJraXRUcmFuc2l0aW9uRW5kJywgc3dpcGVyLm9uVHJhbnNsYXRlVG9XcmFwcGVyVHJhbnNpdGlvbkVuZCk7XG4gICAgICAgICAgc3dpcGVyLm9uVHJhbnNsYXRlVG9XcmFwcGVyVHJhbnNpdGlvbkVuZCA9IG51bGw7XG4gICAgICAgICAgZGVsZXRlIHN3aXBlci5vblRyYW5zbGF0ZVRvV3JhcHBlclRyYW5zaXRpb25FbmQ7XG5cbiAgICAgICAgICBpZiAocnVuQ2FsbGJhY2tzKSB7XG4gICAgICAgICAgICBzd2lwZXIuZW1pdCgndHJhbnNpdGlvbkVuZCcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgc3dpcGVyLiR3cmFwcGVyRWxbMF0uYWRkRXZlbnRMaXN0ZW5lcigndHJhbnNpdGlvbmVuZCcsIHN3aXBlci5vblRyYW5zbGF0ZVRvV3JhcHBlclRyYW5zaXRpb25FbmQpO1xuICAgICAgc3dpcGVyLiR3cmFwcGVyRWxbMF0uYWRkRXZlbnRMaXN0ZW5lcignd2Via2l0VHJhbnNpdGlvbkVuZCcsIHN3aXBlci5vblRyYW5zbGF0ZVRvV3JhcHBlclRyYW5zaXRpb25FbmQpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/translate/translateTo.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/update/index.js": +/*!**************************************************!*\ + !*** ./node_modules/swiper/core/update/index.js ***! + \**************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _updateSize_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./updateSize.js */ \"./node_modules/swiper/core/update/updateSize.js\");\n/* harmony import */ var _updateSlides_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./updateSlides.js */ \"./node_modules/swiper/core/update/updateSlides.js\");\n/* harmony import */ var _updateAutoHeight_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./updateAutoHeight.js */ \"./node_modules/swiper/core/update/updateAutoHeight.js\");\n/* harmony import */ var _updateSlidesOffset_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./updateSlidesOffset.js */ \"./node_modules/swiper/core/update/updateSlidesOffset.js\");\n/* harmony import */ var _updateSlidesProgress_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./updateSlidesProgress.js */ \"./node_modules/swiper/core/update/updateSlidesProgress.js\");\n/* harmony import */ var _updateProgress_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./updateProgress.js */ \"./node_modules/swiper/core/update/updateProgress.js\");\n/* harmony import */ var _updateSlidesClasses_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./updateSlidesClasses.js */ \"./node_modules/swiper/core/update/updateSlidesClasses.js\");\n/* harmony import */ var _updateActiveIndex_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./updateActiveIndex.js */ \"./node_modules/swiper/core/update/updateActiveIndex.js\");\n/* harmony import */ var _updateClickedSlide_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./updateClickedSlide.js */ \"./node_modules/swiper/core/update/updateClickedSlide.js\");\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n updateSize: _updateSize_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n updateSlides: _updateSlides_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n updateAutoHeight: _updateAutoHeight_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n updateSlidesOffset: _updateSlidesOffset_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n updateSlidesProgress: _updateSlidesProgress_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n updateProgress: _updateProgress_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n updateSlidesClasses: _updateSlidesClasses_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n updateActiveIndex: _updateActiveIndex_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n updateClickedSlide: _updateClickedSlide_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"]\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvdXBkYXRlL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBeUM7QUFDSTtBQUNRO0FBQ0k7QUFDSTtBQUNaO0FBQ1U7QUFDSjtBQUNFO0FBQ3pELCtEQUFlO0FBQ2YsWUFBWTtBQUNaLGNBQWM7QUFDZCxrQkFBa0I7QUFDbEIsb0JBQW9CO0FBQ3BCLHNCQUFzQjtBQUN0QixnQkFBZ0I7QUFDaEIscUJBQXFCO0FBQ3JCLG1CQUFtQjtBQUNuQixvQkFBb0I7QUFDcEIsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvdXBkYXRlL2luZGV4LmpzP2UwNWUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHVwZGF0ZVNpemUgZnJvbSAnLi91cGRhdGVTaXplLmpzJztcbmltcG9ydCB1cGRhdGVTbGlkZXMgZnJvbSAnLi91cGRhdGVTbGlkZXMuanMnO1xuaW1wb3J0IHVwZGF0ZUF1dG9IZWlnaHQgZnJvbSAnLi91cGRhdGVBdXRvSGVpZ2h0LmpzJztcbmltcG9ydCB1cGRhdGVTbGlkZXNPZmZzZXQgZnJvbSAnLi91cGRhdGVTbGlkZXNPZmZzZXQuanMnO1xuaW1wb3J0IHVwZGF0ZVNsaWRlc1Byb2dyZXNzIGZyb20gJy4vdXBkYXRlU2xpZGVzUHJvZ3Jlc3MuanMnO1xuaW1wb3J0IHVwZGF0ZVByb2dyZXNzIGZyb20gJy4vdXBkYXRlUHJvZ3Jlc3MuanMnO1xuaW1wb3J0IHVwZGF0ZVNsaWRlc0NsYXNzZXMgZnJvbSAnLi91cGRhdGVTbGlkZXNDbGFzc2VzLmpzJztcbmltcG9ydCB1cGRhdGVBY3RpdmVJbmRleCBmcm9tICcuL3VwZGF0ZUFjdGl2ZUluZGV4LmpzJztcbmltcG9ydCB1cGRhdGVDbGlja2VkU2xpZGUgZnJvbSAnLi91cGRhdGVDbGlja2VkU2xpZGUuanMnO1xuZXhwb3J0IGRlZmF1bHQge1xuICB1cGRhdGVTaXplLFxuICB1cGRhdGVTbGlkZXMsXG4gIHVwZGF0ZUF1dG9IZWlnaHQsXG4gIHVwZGF0ZVNsaWRlc09mZnNldCxcbiAgdXBkYXRlU2xpZGVzUHJvZ3Jlc3MsXG4gIHVwZGF0ZVByb2dyZXNzLFxuICB1cGRhdGVTbGlkZXNDbGFzc2VzLFxuICB1cGRhdGVBY3RpdmVJbmRleCxcbiAgdXBkYXRlQ2xpY2tlZFNsaWRlXG59OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/update/index.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/update/updateActiveIndex.js": +/*!**************************************************************!*\ + !*** ./node_modules/swiper/core/update/updateActiveIndex.js ***! + \**************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ updateActiveIndex; }\n/* harmony export */ });\nfunction updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n slidesGrid,\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n } // Normalize slideIndex\n\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n\n return;\n } // Get real index\n\n\n const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n Object.assign(swiper, {\n snapIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvdXBkYXRlL3VwZGF0ZUFjdGl2ZUluZGV4LmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0Esb0JBQW9CLHVCQUF1QjtBQUMzQztBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsTUFBTTs7O0FBR047QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLElBQUk7OztBQUdKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvdXBkYXRlL3VwZGF0ZUFjdGl2ZUluZGV4LmpzPzcwMDIiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXBkYXRlQWN0aXZlSW5kZXgobmV3QWN0aXZlSW5kZXgpIHtcbiAgY29uc3Qgc3dpcGVyID0gdGhpcztcbiAgY29uc3QgdHJhbnNsYXRlID0gc3dpcGVyLnJ0bFRyYW5zbGF0ZSA/IHN3aXBlci50cmFuc2xhdGUgOiAtc3dpcGVyLnRyYW5zbGF0ZTtcbiAgY29uc3Qge1xuICAgIHNsaWRlc0dyaWQsXG4gICAgc25hcEdyaWQsXG4gICAgcGFyYW1zLFxuICAgIGFjdGl2ZUluZGV4OiBwcmV2aW91c0luZGV4LFxuICAgIHJlYWxJbmRleDogcHJldmlvdXNSZWFsSW5kZXgsXG4gICAgc25hcEluZGV4OiBwcmV2aW91c1NuYXBJbmRleFxuICB9ID0gc3dpcGVyO1xuICBsZXQgYWN0aXZlSW5kZXggPSBuZXdBY3RpdmVJbmRleDtcbiAgbGV0IHNuYXBJbmRleDtcblxuICBpZiAodHlwZW9mIGFjdGl2ZUluZGV4ID09PSAndW5kZWZpbmVkJykge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2xpZGVzR3JpZC5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgaWYgKHR5cGVvZiBzbGlkZXNHcmlkW2kgKyAxXSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgaWYgKHRyYW5zbGF0ZSA+PSBzbGlkZXNHcmlkW2ldICYmIHRyYW5zbGF0ZSA8IHNsaWRlc0dyaWRbaSArIDFdIC0gKHNsaWRlc0dyaWRbaSArIDFdIC0gc2xpZGVzR3JpZFtpXSkgLyAyKSB7XG4gICAgICAgICAgYWN0aXZlSW5kZXggPSBpO1xuICAgICAgICB9IGVsc2UgaWYgKHRyYW5zbGF0ZSA+PSBzbGlkZXNHcmlkW2ldICYmIHRyYW5zbGF0ZSA8IHNsaWRlc0dyaWRbaSArIDFdKSB7XG4gICAgICAgICAgYWN0aXZlSW5kZXggPSBpICsgMTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0cmFuc2xhdGUgPj0gc2xpZGVzR3JpZFtpXSkge1xuICAgICAgICBhY3RpdmVJbmRleCA9IGk7XG4gICAgICB9XG4gICAgfSAvLyBOb3JtYWxpemUgc2xpZGVJbmRleFxuXG5cbiAgICBpZiAocGFyYW1zLm5vcm1hbGl6ZVNsaWRlSW5kZXgpIHtcbiAgICAgIGlmIChhY3RpdmVJbmRleCA8IDAgfHwgdHlwZW9mIGFjdGl2ZUluZGV4ID09PSAndW5kZWZpbmVkJykgYWN0aXZlSW5kZXggPSAwO1xuICAgIH1cbiAgfVxuXG4gIGlmIChzbmFwR3JpZC5pbmRleE9mKHRyYW5zbGF0ZSkgPj0gMCkge1xuICAgIHNuYXBJbmRleCA9IHNuYXBHcmlkLmluZGV4T2YodHJhbnNsYXRlKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBza2lwID0gTWF0aC5taW4ocGFyYW1zLnNsaWRlc1Blckdyb3VwU2tpcCwgYWN0aXZlSW5kZXgpO1xuICAgIHNuYXBJbmRleCA9IHNraXAgKyBNYXRoLmZsb29yKChhY3RpdmVJbmRleCAtIHNraXApIC8gcGFyYW1zLnNsaWRlc1Blckdyb3VwKTtcbiAgfVxuXG4gIGlmIChzbmFwSW5kZXggPj0gc25hcEdyaWQubGVuZ3RoKSBzbmFwSW5kZXggPSBzbmFwR3JpZC5sZW5ndGggLSAxO1xuXG4gIGlmIChhY3RpdmVJbmRleCA9PT0gcHJldmlvdXNJbmRleCkge1xuICAgIGlmIChzbmFwSW5kZXggIT09IHByZXZpb3VzU25hcEluZGV4KSB7XG4gICAgICBzd2lwZXIuc25hcEluZGV4ID0gc25hcEluZGV4O1xuICAgICAgc3dpcGVyLmVtaXQoJ3NuYXBJbmRleENoYW5nZScpO1xuICAgIH1cblxuICAgIHJldHVybjtcbiAgfSAvLyBHZXQgcmVhbCBpbmRleFxuXG5cbiAgY29uc3QgcmVhbEluZGV4ID0gcGFyc2VJbnQoc3dpcGVyLnNsaWRlcy5lcShhY3RpdmVJbmRleCkuYXR0cignZGF0YS1zd2lwZXItc2xpZGUtaW5kZXgnKSB8fCBhY3RpdmVJbmRleCwgMTApO1xuICBPYmplY3QuYXNzaWduKHN3aXBlciwge1xuICAgIHNuYXBJbmRleCxcbiAgICByZWFsSW5kZXgsXG4gICAgcHJldmlvdXNJbmRleCxcbiAgICBhY3RpdmVJbmRleFxuICB9KTtcbiAgc3dpcGVyLmVtaXQoJ2FjdGl2ZUluZGV4Q2hhbmdlJyk7XG4gIHN3aXBlci5lbWl0KCdzbmFwSW5kZXhDaGFuZ2UnKTtcblxuICBpZiAocHJldmlvdXNSZWFsSW5kZXggIT09IHJlYWxJbmRleCkge1xuICAgIHN3aXBlci5lbWl0KCdyZWFsSW5kZXhDaGFuZ2UnKTtcbiAgfVxuXG4gIGlmIChzd2lwZXIuaW5pdGlhbGl6ZWQgfHwgc3dpcGVyLnBhcmFtcy5ydW5DYWxsYmFja3NPbkluaXQpIHtcbiAgICBzd2lwZXIuZW1pdCgnc2xpZGVDaGFuZ2UnKTtcbiAgfVxufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/update/updateActiveIndex.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/update/updateAutoHeight.js": +/*!*************************************************************!*\ + !*** ./node_modules/swiper/core/update/updateAutoHeight.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ updateAutoHeight; }\n/* harmony export */ });\nfunction updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides.filter(el => parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index)[0];\n }\n\n return swiper.slides.eq(index)[0];\n }; // Find slides currently in view\n\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n swiper.visibleSlides.each(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n } // Find new height from highest slide in view\n\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight) swiper.$wrapperEl.css('height', `${newHeight}px`);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvdXBkYXRlL3VwZGF0ZUF1dG9IZWlnaHQuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxLQUFLOzs7QUFHTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxNQUFNO0FBQ04sa0JBQWtCLDRDQUE0QztBQUM5RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsSUFBSTs7O0FBR0osY0FBYyx5QkFBeUI7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSixvREFBb0QsVUFBVTtBQUM5RCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvdXBkYXRlL3VwZGF0ZUF1dG9IZWlnaHQuanM/M2U4MSJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1cGRhdGVBdXRvSGVpZ2h0KHNwZWVkKSB7XG4gIGNvbnN0IHN3aXBlciA9IHRoaXM7XG4gIGNvbnN0IGFjdGl2ZVNsaWRlcyA9IFtdO1xuICBjb25zdCBpc1ZpcnR1YWwgPSBzd2lwZXIudmlydHVhbCAmJiBzd2lwZXIucGFyYW1zLnZpcnR1YWwuZW5hYmxlZDtcbiAgbGV0IG5ld0hlaWdodCA9IDA7XG4gIGxldCBpO1xuXG4gIGlmICh0eXBlb2Ygc3BlZWQgPT09ICdudW1iZXInKSB7XG4gICAgc3dpcGVyLnNldFRyYW5zaXRpb24oc3BlZWQpO1xuICB9IGVsc2UgaWYgKHNwZWVkID09PSB0cnVlKSB7XG4gICAgc3dpcGVyLnNldFRyYW5zaXRpb24oc3dpcGVyLnBhcmFtcy5zcGVlZCk7XG4gIH1cblxuICBjb25zdCBnZXRTbGlkZUJ5SW5kZXggPSBpbmRleCA9PiB7XG4gICAgaWYgKGlzVmlydHVhbCkge1xuICAgICAgcmV0dXJuIHN3aXBlci5zbGlkZXMuZmlsdGVyKGVsID0+IHBhcnNlSW50KGVsLmdldEF0dHJpYnV0ZSgnZGF0YS1zd2lwZXItc2xpZGUtaW5kZXgnKSwgMTApID09PSBpbmRleClbMF07XG4gICAgfVxuXG4gICAgcmV0dXJuIHN3aXBlci5zbGlkZXMuZXEoaW5kZXgpWzBdO1xuICB9OyAvLyBGaW5kIHNsaWRlcyBjdXJyZW50bHkgaW4gdmlld1xuXG5cbiAgaWYgKHN3aXBlci5wYXJhbXMuc2xpZGVzUGVyVmlldyAhPT0gJ2F1dG8nICYmIHN3aXBlci5wYXJhbXMuc2xpZGVzUGVyVmlldyA+IDEpIHtcbiAgICBpZiAoc3dpcGVyLnBhcmFtcy5jZW50ZXJlZFNsaWRlcykge1xuICAgICAgc3dpcGVyLnZpc2libGVTbGlkZXMuZWFjaChzbGlkZSA9PiB7XG4gICAgICAgIGFjdGl2ZVNsaWRlcy5wdXNoKHNsaWRlKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGkgPSAwOyBpIDwgTWF0aC5jZWlsKHN3aXBlci5wYXJhbXMuc2xpZGVzUGVyVmlldyk7IGkgKz0gMSkge1xuICAgICAgICBjb25zdCBpbmRleCA9IHN3aXBlci5hY3RpdmVJbmRleCArIGk7XG4gICAgICAgIGlmIChpbmRleCA+IHN3aXBlci5zbGlkZXMubGVuZ3RoICYmICFpc1ZpcnR1YWwpIGJyZWFrO1xuICAgICAgICBhY3RpdmVTbGlkZXMucHVzaChnZXRTbGlkZUJ5SW5kZXgoaW5kZXgpKTtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgYWN0aXZlU2xpZGVzLnB1c2goZ2V0U2xpZGVCeUluZGV4KHN3aXBlci5hY3RpdmVJbmRleCkpO1xuICB9IC8vIEZpbmQgbmV3IGhlaWdodCBmcm9tIGhpZ2hlc3Qgc2xpZGUgaW4gdmlld1xuXG5cbiAgZm9yIChpID0gMDsgaSA8IGFjdGl2ZVNsaWRlcy5sZW5ndGg7IGkgKz0gMSkge1xuICAgIGlmICh0eXBlb2YgYWN0aXZlU2xpZGVzW2ldICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgY29uc3QgaGVpZ2h0ID0gYWN0aXZlU2xpZGVzW2ldLm9mZnNldEhlaWdodDtcbiAgICAgIG5ld0hlaWdodCA9IGhlaWdodCA+IG5ld0hlaWdodCA/IGhlaWdodCA6IG5ld0hlaWdodDtcbiAgICB9XG4gIH0gLy8gVXBkYXRlIEhlaWdodFxuXG5cbiAgaWYgKG5ld0hlaWdodCkgc3dpcGVyLiR3cmFwcGVyRWwuY3NzKCdoZWlnaHQnLCBgJHtuZXdIZWlnaHR9cHhgKTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/update/updateAutoHeight.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/update/updateClickedSlide.js": +/*!***************************************************************!*\ + !*** ./node_modules/swiper/core/update/updateClickedSlide.js ***! + \***************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ updateClickedSlide; }\n/* harmony export */ });\n/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/dom.js */ \"./node_modules/swiper/shared/dom.js\");\n\nfunction updateClickedSlide(e) {\n const swiper = this;\n const params = swiper.params;\n const slide = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(e.target).closest(`.${params.slideClass}`)[0];\n let slideFound = false;\n let slideIndex;\n\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt((0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvdXBkYXRlL3VwZGF0ZUNsaWNrZWRTbGlkZS5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFvQztBQUNyQjtBQUNmO0FBQ0E7QUFDQSxnQkFBZ0IsMERBQUMsdUJBQXVCLGtCQUFrQjtBQUMxRDtBQUNBOztBQUVBO0FBQ0Esb0JBQW9CLDBCQUEwQjtBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EscUNBQXFDLDBEQUFDO0FBQ3RDLE1BQU07QUFDTjtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zd2lwZXIvY29yZS91cGRhdGUvdXBkYXRlQ2xpY2tlZFNsaWRlLmpzP2UzZTciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnLi4vLi4vc2hhcmVkL2RvbS5qcyc7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1cGRhdGVDbGlja2VkU2xpZGUoZSkge1xuICBjb25zdCBzd2lwZXIgPSB0aGlzO1xuICBjb25zdCBwYXJhbXMgPSBzd2lwZXIucGFyYW1zO1xuICBjb25zdCBzbGlkZSA9ICQoZS50YXJnZXQpLmNsb3Nlc3QoYC4ke3BhcmFtcy5zbGlkZUNsYXNzfWApWzBdO1xuICBsZXQgc2xpZGVGb3VuZCA9IGZhbHNlO1xuICBsZXQgc2xpZGVJbmRleDtcblxuICBpZiAoc2xpZGUpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN3aXBlci5zbGlkZXMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgIGlmIChzd2lwZXIuc2xpZGVzW2ldID09PSBzbGlkZSkge1xuICAgICAgICBzbGlkZUZvdW5kID0gdHJ1ZTtcbiAgICAgICAgc2xpZGVJbmRleCA9IGk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmIChzbGlkZSAmJiBzbGlkZUZvdW5kKSB7XG4gICAgc3dpcGVyLmNsaWNrZWRTbGlkZSA9IHNsaWRlO1xuXG4gICAgaWYgKHN3aXBlci52aXJ0dWFsICYmIHN3aXBlci5wYXJhbXMudmlydHVhbC5lbmFibGVkKSB7XG4gICAgICBzd2lwZXIuY2xpY2tlZEluZGV4ID0gcGFyc2VJbnQoJChzbGlkZSkuYXR0cignZGF0YS1zd2lwZXItc2xpZGUtaW5kZXgnKSwgMTApO1xuICAgIH0gZWxzZSB7XG4gICAgICBzd2lwZXIuY2xpY2tlZEluZGV4ID0gc2xpZGVJbmRleDtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgc3dpcGVyLmNsaWNrZWRTbGlkZSA9IHVuZGVmaW5lZDtcbiAgICBzd2lwZXIuY2xpY2tlZEluZGV4ID0gdW5kZWZpbmVkO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChwYXJhbXMuc2xpZGVUb0NsaWNrZWRTbGlkZSAmJiBzd2lwZXIuY2xpY2tlZEluZGV4ICE9PSB1bmRlZmluZWQgJiYgc3dpcGVyLmNsaWNrZWRJbmRleCAhPT0gc3dpcGVyLmFjdGl2ZUluZGV4KSB7XG4gICAgc3dpcGVyLnNsaWRlVG9DbGlja2VkU2xpZGUoKTtcbiAgfVxufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/update/updateClickedSlide.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/update/updateProgress.js": +/*!***********************************************************!*\ + !*** ./node_modules/swiper/core/update/updateProgress.js ***! + \***********************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ updateProgress; }\n/* harmony export */ });\nfunction updateProgress(translate) {\n const swiper = this;\n\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n\n Object.assign(swiper, {\n progress,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvdXBkYXRlL3VwZGF0ZVByb2dyZXNzLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBZTtBQUNmOztBQUVBO0FBQ0EscURBQXFEOztBQUVyRDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N3aXBlci9jb3JlL3VwZGF0ZS91cGRhdGVQcm9ncmVzcy5qcz83YTczIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVwZGF0ZVByb2dyZXNzKHRyYW5zbGF0ZSkge1xuICBjb25zdCBzd2lwZXIgPSB0aGlzO1xuXG4gIGlmICh0eXBlb2YgdHJhbnNsYXRlID09PSAndW5kZWZpbmVkJykge1xuICAgIGNvbnN0IG11bHRpcGxpZXIgPSBzd2lwZXIucnRsVHJhbnNsYXRlID8gLTEgOiAxOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcblxuICAgIHRyYW5zbGF0ZSA9IHN3aXBlciAmJiBzd2lwZXIudHJhbnNsYXRlICYmIHN3aXBlci50cmFuc2xhdGUgKiBtdWx0aXBsaWVyIHx8IDA7XG4gIH1cblxuICBjb25zdCBwYXJhbXMgPSBzd2lwZXIucGFyYW1zO1xuICBjb25zdCB0cmFuc2xhdGVzRGlmZiA9IHN3aXBlci5tYXhUcmFuc2xhdGUoKSAtIHN3aXBlci5taW5UcmFuc2xhdGUoKTtcbiAgbGV0IHtcbiAgICBwcm9ncmVzcyxcbiAgICBpc0JlZ2lubmluZyxcbiAgICBpc0VuZFxuICB9ID0gc3dpcGVyO1xuICBjb25zdCB3YXNCZWdpbm5pbmcgPSBpc0JlZ2lubmluZztcbiAgY29uc3Qgd2FzRW5kID0gaXNFbmQ7XG5cbiAgaWYgKHRyYW5zbGF0ZXNEaWZmID09PSAwKSB7XG4gICAgcHJvZ3Jlc3MgPSAwO1xuICAgIGlzQmVnaW5uaW5nID0gdHJ1ZTtcbiAgICBpc0VuZCA9IHRydWU7XG4gIH0gZWxzZSB7XG4gICAgcHJvZ3Jlc3MgPSAodHJhbnNsYXRlIC0gc3dpcGVyLm1pblRyYW5zbGF0ZSgpKSAvIHRyYW5zbGF0ZXNEaWZmO1xuICAgIGlzQmVnaW5uaW5nID0gcHJvZ3Jlc3MgPD0gMDtcbiAgICBpc0VuZCA9IHByb2dyZXNzID49IDE7XG4gIH1cblxuICBPYmplY3QuYXNzaWduKHN3aXBlciwge1xuICAgIHByb2dyZXNzLFxuICAgIGlzQmVnaW5uaW5nLFxuICAgIGlzRW5kXG4gIH0pO1xuICBpZiAocGFyYW1zLndhdGNoU2xpZGVzUHJvZ3Jlc3MgfHwgcGFyYW1zLmNlbnRlcmVkU2xpZGVzICYmIHBhcmFtcy5hdXRvSGVpZ2h0KSBzd2lwZXIudXBkYXRlU2xpZGVzUHJvZ3Jlc3ModHJhbnNsYXRlKTtcblxuICBpZiAoaXNCZWdpbm5pbmcgJiYgIXdhc0JlZ2lubmluZykge1xuICAgIHN3aXBlci5lbWl0KCdyZWFjaEJlZ2lubmluZyB0b0VkZ2UnKTtcbiAgfVxuXG4gIGlmIChpc0VuZCAmJiAhd2FzRW5kKSB7XG4gICAgc3dpcGVyLmVtaXQoJ3JlYWNoRW5kIHRvRWRnZScpO1xuICB9XG5cbiAgaWYgKHdhc0JlZ2lubmluZyAmJiAhaXNCZWdpbm5pbmcgfHwgd2FzRW5kICYmICFpc0VuZCkge1xuICAgIHN3aXBlci5lbWl0KCdmcm9tRWRnZScpO1xuICB9XG5cbiAgc3dpcGVyLmVtaXQoJ3Byb2dyZXNzJywgcHJvZ3Jlc3MpO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/update/updateProgress.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/update/updateSize.js": +/*!*******************************************************!*\ + !*** ./node_modules/swiper/core/update/updateSize.js ***! + \*******************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ updateSize; }\n/* harmony export */ });\nfunction updateSize() {\n const swiper = this;\n let width;\n let height;\n const $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvdXBkYXRlL3VwZGF0ZVNpemUuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvdXBkYXRlL3VwZGF0ZVNpemUuanM/NjhiNiJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1cGRhdGVTaXplKCkge1xuICBjb25zdCBzd2lwZXIgPSB0aGlzO1xuICBsZXQgd2lkdGg7XG4gIGxldCBoZWlnaHQ7XG4gIGNvbnN0ICRlbCA9IHN3aXBlci4kZWw7XG5cbiAgaWYgKHR5cGVvZiBzd2lwZXIucGFyYW1zLndpZHRoICE9PSAndW5kZWZpbmVkJyAmJiBzd2lwZXIucGFyYW1zLndpZHRoICE9PSBudWxsKSB7XG4gICAgd2lkdGggPSBzd2lwZXIucGFyYW1zLndpZHRoO1xuICB9IGVsc2Uge1xuICAgIHdpZHRoID0gJGVsWzBdLmNsaWVudFdpZHRoO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBzd2lwZXIucGFyYW1zLmhlaWdodCAhPT0gJ3VuZGVmaW5lZCcgJiYgc3dpcGVyLnBhcmFtcy5oZWlnaHQgIT09IG51bGwpIHtcbiAgICBoZWlnaHQgPSBzd2lwZXIucGFyYW1zLmhlaWdodDtcbiAgfSBlbHNlIHtcbiAgICBoZWlnaHQgPSAkZWxbMF0uY2xpZW50SGVpZ2h0O1xuICB9XG5cbiAgaWYgKHdpZHRoID09PSAwICYmIHN3aXBlci5pc0hvcml6b250YWwoKSB8fCBoZWlnaHQgPT09IDAgJiYgc3dpcGVyLmlzVmVydGljYWwoKSkge1xuICAgIHJldHVybjtcbiAgfSAvLyBTdWJ0cmFjdCBwYWRkaW5nc1xuXG5cbiAgd2lkdGggPSB3aWR0aCAtIHBhcnNlSW50KCRlbC5jc3MoJ3BhZGRpbmctbGVmdCcpIHx8IDAsIDEwKSAtIHBhcnNlSW50KCRlbC5jc3MoJ3BhZGRpbmctcmlnaHQnKSB8fCAwLCAxMCk7XG4gIGhlaWdodCA9IGhlaWdodCAtIHBhcnNlSW50KCRlbC5jc3MoJ3BhZGRpbmctdG9wJykgfHwgMCwgMTApIC0gcGFyc2VJbnQoJGVsLmNzcygncGFkZGluZy1ib3R0b20nKSB8fCAwLCAxMCk7XG4gIGlmIChOdW1iZXIuaXNOYU4od2lkdGgpKSB3aWR0aCA9IDA7XG4gIGlmIChOdW1iZXIuaXNOYU4oaGVpZ2h0KSkgaGVpZ2h0ID0gMDtcbiAgT2JqZWN0LmFzc2lnbihzd2lwZXIsIHtcbiAgICB3aWR0aCxcbiAgICBoZWlnaHQsXG4gICAgc2l6ZTogc3dpcGVyLmlzSG9yaXpvbnRhbCgpID8gd2lkdGggOiBoZWlnaHRcbiAgfSk7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/update/updateSize.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/update/updateSlides.js": +/*!*********************************************************!*\ + !*** ./node_modules/swiper/core/update/updateSlides.js ***! + \*********************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ updateSlides; }\n/* harmony export */ });\n/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ \"./node_modules/swiper/shared/utils.js\");\n\nfunction updateSlides() {\n const swiper = this;\n\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n } // prettier-ignore\n\n\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n\n const params = swiper.params;\n const {\n $wrapperEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = $wrapperEl.children(`.${swiper.params.slideClass}`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n let offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n\n if (typeof swiperSize === 'undefined') {\n return;\n }\n\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginBottom: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: '',\n marginTop: ''\n }); // reset cssMode offsets\n\n if (params.centeredSlides && params.cssMode) {\n (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.setCSSProperty)(swiper.wrapperEl, '--swiper-centered-offset-before', '');\n (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.setCSSProperty)(swiper.wrapperEl, '--swiper-centered-offset-after', '');\n }\n\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n\n if (gridEnabled) {\n swiper.grid.initSlides(slidesLength);\n } // Calc slides\n\n\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n const slide = slides.eq(i);\n\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[getDirectionLabel('width')] = ``;\n }\n\n const slideStyles = getComputedStyle(slide[0]);\n const currentTransform = slide[0].style.transform;\n const currentWebKitTransform = slide[0].style.webkitTransform;\n\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide[0];\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (params.setWrapperSize) {\n $wrapperEl.css({\n [getDirectionLabel('width')]: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }).css({\n [key]: `${spaceBetween}px`\n });\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(snap => {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.setCSSProperty)(swiper.wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.setCSSProperty)(swiper.wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvdXBkYXRlL3VwZGF0ZVNsaWRlcy5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUF1RDtBQUN4QztBQUNmOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07OztBQUdOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSx5Q0FBeUMseUJBQXlCO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSxzQ0FBc0M7O0FBRXRDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxFQUFFO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsR0FBRyxHQUFHOztBQUVOO0FBQ0EsSUFBSSxnRUFBYztBQUNsQixJQUFJLGdFQUFjO0FBQ2xCOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVILGtCQUFrQixrQkFBa0I7QUFDcEM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsbURBQW1EOztBQUVuRDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7QUFDQSx5REFBeUQsVUFBVTtBQUNuRTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLGdCQUFnQix5Q0FBeUM7QUFDekQsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQSx1Q0FBdUMseUNBQXlDO0FBQ2hGLEtBQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0o7QUFDQTs7QUFFQSxvQkFBb0IscUJBQXFCO0FBQ3pDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsS0FBSztBQUNMLGdCQUFnQixhQUFhO0FBQzdCLEtBQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0EsSUFBSSxnRUFBYyx5REFBeUQsYUFBYTtBQUN4RixJQUFJLGdFQUFjLHdEQUF3RCxrRUFBa0U7QUFDNUk7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zd2lwZXIvY29yZS91cGRhdGUvdXBkYXRlU2xpZGVzLmpzP2YwODIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2V0Q1NTUHJvcGVydHkgfSBmcm9tICcuLi8uLi9zaGFyZWQvdXRpbHMuanMnO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXBkYXRlU2xpZGVzKCkge1xuICBjb25zdCBzd2lwZXIgPSB0aGlzO1xuXG4gIGZ1bmN0aW9uIGdldERpcmVjdGlvbkxhYmVsKHByb3BlcnR5KSB7XG4gICAgaWYgKHN3aXBlci5pc0hvcml6b250YWwoKSkge1xuICAgICAgcmV0dXJuIHByb3BlcnR5O1xuICAgIH0gLy8gcHJldHRpZXItaWdub3JlXG5cblxuICAgIHJldHVybiB7XG4gICAgICAnd2lkdGgnOiAnaGVpZ2h0JyxcbiAgICAgICdtYXJnaW4tdG9wJzogJ21hcmdpbi1sZWZ0JyxcbiAgICAgICdtYXJnaW4tYm90dG9tICc6ICdtYXJnaW4tcmlnaHQnLFxuICAgICAgJ21hcmdpbi1sZWZ0JzogJ21hcmdpbi10b3AnLFxuICAgICAgJ21hcmdpbi1yaWdodCc6ICdtYXJnaW4tYm90dG9tJyxcbiAgICAgICdwYWRkaW5nLWxlZnQnOiAncGFkZGluZy10b3AnLFxuICAgICAgJ3BhZGRpbmctcmlnaHQnOiAncGFkZGluZy1ib3R0b20nLFxuICAgICAgJ21hcmdpblJpZ2h0JzogJ21hcmdpbkJvdHRvbSdcbiAgICB9W3Byb3BlcnR5XTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGdldERpcmVjdGlvblByb3BlcnR5VmFsdWUobm9kZSwgbGFiZWwpIHtcbiAgICByZXR1cm4gcGFyc2VGbG9hdChub2RlLmdldFByb3BlcnR5VmFsdWUoZ2V0RGlyZWN0aW9uTGFiZWwobGFiZWwpKSB8fCAwKTtcbiAgfVxuXG4gIGNvbnN0IHBhcmFtcyA9IHN3aXBlci5wYXJhbXM7XG4gIGNvbnN0IHtcbiAgICAkd3JhcHBlckVsLFxuICAgIHNpemU6IHN3aXBlclNpemUsXG4gICAgcnRsVHJhbnNsYXRlOiBydGwsXG4gICAgd3JvbmdSVExcbiAgfSA9IHN3aXBlcjtcbiAgY29uc3QgaXNWaXJ0dWFsID0gc3dpcGVyLnZpcnR1YWwgJiYgcGFyYW1zLnZpcnR1YWwuZW5hYmxlZDtcbiAgY29uc3QgcHJldmlvdXNTbGlkZXNMZW5ndGggPSBpc1ZpcnR1YWwgPyBzd2lwZXIudmlydHVhbC5zbGlkZXMubGVuZ3RoIDogc3dpcGVyLnNsaWRlcy5sZW5ndGg7XG4gIGNvbnN0IHNsaWRlcyA9ICR3cmFwcGVyRWwuY2hpbGRyZW4oYC4ke3N3aXBlci5wYXJhbXMuc2xpZGVDbGFzc31gKTtcbiAgY29uc3Qgc2xpZGVzTGVuZ3RoID0gaXNWaXJ0dWFsID8gc3dpcGVyLnZpcnR1YWwuc2xpZGVzLmxlbmd0aCA6IHNsaWRlcy5sZW5ndGg7XG4gIGxldCBzbmFwR3JpZCA9IFtdO1xuICBjb25zdCBzbGlkZXNHcmlkID0gW107XG4gIGNvbnN0IHNsaWRlc1NpemVzR3JpZCA9IFtdO1xuICBsZXQgb2Zmc2V0QmVmb3JlID0gcGFyYW1zLnNsaWRlc09mZnNldEJlZm9yZTtcblxuICBpZiAodHlwZW9mIG9mZnNldEJlZm9yZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIG9mZnNldEJlZm9yZSA9IHBhcmFtcy5zbGlkZXNPZmZzZXRCZWZvcmUuY2FsbChzd2lwZXIpO1xuICB9XG5cbiAgbGV0IG9mZnNldEFmdGVyID0gcGFyYW1zLnNsaWRlc09mZnNldEFmdGVyO1xuXG4gIGlmICh0eXBlb2Ygb2Zmc2V0QWZ0ZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICBvZmZzZXRBZnRlciA9IHBhcmFtcy5zbGlkZXNPZmZzZXRBZnRlci5jYWxsKHN3aXBlcik7XG4gIH1cblxuICBjb25zdCBwcmV2aW91c1NuYXBHcmlkTGVuZ3RoID0gc3dpcGVyLnNuYXBHcmlkLmxlbmd0aDtcbiAgY29uc3QgcHJldmlvdXNTbGlkZXNHcmlkTGVuZ3RoID0gc3dpcGVyLnNsaWRlc0dyaWQubGVuZ3RoO1xuICBsZXQgc3BhY2VCZXR3ZWVuID0gcGFyYW1zLnNwYWNlQmV0d2VlbjtcbiAgbGV0IHNsaWRlUG9zaXRpb24gPSAtb2Zmc2V0QmVmb3JlO1xuICBsZXQgcHJldlNsaWRlU2l6ZSA9IDA7XG4gIGxldCBpbmRleCA9IDA7XG5cbiAgaWYgKHR5cGVvZiBzd2lwZXJTaXplID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmICh0eXBlb2Ygc3BhY2VCZXR3ZWVuID09PSAnc3RyaW5nJyAmJiBzcGFjZUJldHdlZW4uaW5kZXhPZignJScpID49IDApIHtcbiAgICBzcGFjZUJldHdlZW4gPSBwYXJzZUZsb2F0KHNwYWNlQmV0d2Vlbi5yZXBsYWNlKCclJywgJycpKSAvIDEwMCAqIHN3aXBlclNpemU7XG4gIH1cblxuICBzd2lwZXIudmlydHVhbFNpemUgPSAtc3BhY2VCZXR3ZWVuOyAvLyByZXNldCBtYXJnaW5zXG5cbiAgaWYgKHJ0bCkgc2xpZGVzLmNzcyh7XG4gICAgbWFyZ2luTGVmdDogJycsXG4gICAgbWFyZ2luQm90dG9tOiAnJyxcbiAgICBtYXJnaW5Ub3A6ICcnXG4gIH0pO2Vsc2Ugc2xpZGVzLmNzcyh7XG4gICAgbWFyZ2luUmlnaHQ6ICcnLFxuICAgIG1hcmdpbkJvdHRvbTogJycsXG4gICAgbWFyZ2luVG9wOiAnJ1xuICB9KTsgLy8gcmVzZXQgY3NzTW9kZSBvZmZzZXRzXG5cbiAgaWYgKHBhcmFtcy5jZW50ZXJlZFNsaWRlcyAmJiBwYXJhbXMuY3NzTW9kZSkge1xuICAgIHNldENTU1Byb3BlcnR5KHN3aXBlci53cmFwcGVyRWwsICctLXN3aXBlci1jZW50ZXJlZC1vZmZzZXQtYmVmb3JlJywgJycpO1xuICAgIHNldENTU1Byb3BlcnR5KHN3aXBlci53cmFwcGVyRWwsICctLXN3aXBlci1jZW50ZXJlZC1vZmZzZXQtYWZ0ZXInLCAnJyk7XG4gIH1cblxuICBjb25zdCBncmlkRW5hYmxlZCA9IHBhcmFtcy5ncmlkICYmIHBhcmFtcy5ncmlkLnJvd3MgPiAxICYmIHN3aXBlci5ncmlkO1xuXG4gIGlmIChncmlkRW5hYmxlZCkge1xuICAgIHN3aXBlci5ncmlkLmluaXRTbGlkZXMoc2xpZGVzTGVuZ3RoKTtcbiAgfSAvLyBDYWxjIHNsaWRlc1xuXG5cbiAgbGV0IHNsaWRlU2l6ZTtcbiAgY29uc3Qgc2hvdWxkUmVzZXRTbGlkZVNpemUgPSBwYXJhbXMuc2xpZGVzUGVyVmlldyA9PT0gJ2F1dG8nICYmIHBhcmFtcy5icmVha3BvaW50cyAmJiBPYmplY3Qua2V5cyhwYXJhbXMuYnJlYWtwb2ludHMpLmZpbHRlcihrZXkgPT4ge1xuICAgIHJldHVybiB0eXBlb2YgcGFyYW1zLmJyZWFrcG9pbnRzW2tleV0uc2xpZGVzUGVyVmlldyAhPT0gJ3VuZGVmaW5lZCc7XG4gIH0pLmxlbmd0aCA+IDA7XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzbGlkZXNMZW5ndGg7IGkgKz0gMSkge1xuICAgIHNsaWRlU2l6ZSA9IDA7XG4gICAgY29uc3Qgc2xpZGUgPSBzbGlkZXMuZXEoaSk7XG5cbiAgICBpZiAoZ3JpZEVuYWJsZWQpIHtcbiAgICAgIHN3aXBlci5ncmlkLnVwZGF0ZVNsaWRlKGksIHNsaWRlLCBzbGlkZXNMZW5ndGgsIGdldERpcmVjdGlvbkxhYmVsKTtcbiAgICB9XG5cbiAgICBpZiAoc2xpZGUuY3NzKCdkaXNwbGF5JykgPT09ICdub25lJykgY29udGludWU7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcblxuICAgIGlmIChwYXJhbXMuc2xpZGVzUGVyVmlldyA9PT0gJ2F1dG8nKSB7XG4gICAgICBpZiAoc2hvdWxkUmVzZXRTbGlkZVNpemUpIHtcbiAgICAgICAgc2xpZGVzW2ldLnN0eWxlW2dldERpcmVjdGlvbkxhYmVsKCd3aWR0aCcpXSA9IGBgO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBzbGlkZVN0eWxlcyA9IGdldENvbXB1dGVkU3R5bGUoc2xpZGVbMF0pO1xuICAgICAgY29uc3QgY3VycmVudFRyYW5zZm9ybSA9IHNsaWRlWzBdLnN0eWxlLnRyYW5zZm9ybTtcbiAgICAgIGNvbnN0IGN1cnJlbnRXZWJLaXRUcmFuc2Zvcm0gPSBzbGlkZVswXS5zdHlsZS53ZWJraXRUcmFuc2Zvcm07XG5cbiAgICAgIGlmIChjdXJyZW50VHJhbnNmb3JtKSB7XG4gICAgICAgIHNsaWRlWzBdLnN0eWxlLnRyYW5zZm9ybSA9ICdub25lJztcbiAgICAgIH1cblxuICAgICAgaWYgKGN1cnJlbnRXZWJLaXRUcmFuc2Zvcm0pIHtcbiAgICAgICAgc2xpZGVbMF0uc3R5bGUud2Via2l0VHJhbnNmb3JtID0gJ25vbmUnO1xuICAgICAgfVxuXG4gICAgICBpZiAocGFyYW1zLnJvdW5kTGVuZ3Rocykge1xuICAgICAgICBzbGlkZVNpemUgPSBzd2lwZXIuaXNIb3Jpem9udGFsKCkgPyBzbGlkZS5vdXRlcldpZHRoKHRydWUpIDogc2xpZGUub3V0ZXJIZWlnaHQodHJ1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAgICAgY29uc3Qgd2lkdGggPSBnZXREaXJlY3Rpb25Qcm9wZXJ0eVZhbHVlKHNsaWRlU3R5bGVzLCAnd2lkdGgnKTtcbiAgICAgICAgY29uc3QgcGFkZGluZ0xlZnQgPSBnZXREaXJlY3Rpb25Qcm9wZXJ0eVZhbHVlKHNsaWRlU3R5bGVzLCAncGFkZGluZy1sZWZ0Jyk7XG4gICAgICAgIGNvbnN0IHBhZGRpbmdSaWdodCA9IGdldERpcmVjdGlvblByb3BlcnR5VmFsdWUoc2xpZGVTdHlsZXMsICdwYWRkaW5nLXJpZ2h0Jyk7XG4gICAgICAgIGNvbnN0IG1hcmdpbkxlZnQgPSBnZXREaXJlY3Rpb25Qcm9wZXJ0eVZhbHVlKHNsaWRlU3R5bGVzLCAnbWFyZ2luLWxlZnQnKTtcbiAgICAgICAgY29uc3QgbWFyZ2luUmlnaHQgPSBnZXREaXJlY3Rpb25Qcm9wZXJ0eVZhbHVlKHNsaWRlU3R5bGVzLCAnbWFyZ2luLXJpZ2h0Jyk7XG4gICAgICAgIGNvbnN0IGJveFNpemluZyA9IHNsaWRlU3R5bGVzLmdldFByb3BlcnR5VmFsdWUoJ2JveC1zaXppbmcnKTtcblxuICAgICAgICBpZiAoYm94U2l6aW5nICYmIGJveFNpemluZyA9PT0gJ2JvcmRlci1ib3gnKSB7XG4gICAgICAgICAgc2xpZGVTaXplID0gd2lkdGggKyBtYXJnaW5MZWZ0ICsgbWFyZ2luUmlnaHQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgY2xpZW50V2lkdGgsXG4gICAgICAgICAgICBvZmZzZXRXaWR0aFxuICAgICAgICAgIH0gPSBzbGlkZVswXTtcbiAgICAgICAgICBzbGlkZVNpemUgPSB3aWR0aCArIHBhZGRpbmdMZWZ0ICsgcGFkZGluZ1JpZ2h0ICsgbWFyZ2luTGVmdCArIG1hcmdpblJpZ2h0ICsgKG9mZnNldFdpZHRoIC0gY2xpZW50V2lkdGgpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChjdXJyZW50VHJhbnNmb3JtKSB7XG4gICAgICAgIHNsaWRlWzBdLnN0eWxlLnRyYW5zZm9ybSA9IGN1cnJlbnRUcmFuc2Zvcm07XG4gICAgICB9XG5cbiAgICAgIGlmIChjdXJyZW50V2ViS2l0VHJhbnNmb3JtKSB7XG4gICAgICAgIHNsaWRlWzBdLnN0eWxlLndlYmtpdFRyYW5zZm9ybSA9IGN1cnJlbnRXZWJLaXRUcmFuc2Zvcm07XG4gICAgICB9XG5cbiAgICAgIGlmIChwYXJhbXMucm91bmRMZW5ndGhzKSBzbGlkZVNpemUgPSBNYXRoLmZsb29yKHNsaWRlU2l6ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNsaWRlU2l6ZSA9IChzd2lwZXJTaXplIC0gKHBhcmFtcy5zbGlkZXNQZXJWaWV3IC0gMSkgKiBzcGFjZUJldHdlZW4pIC8gcGFyYW1zLnNsaWRlc1BlclZpZXc7XG4gICAgICBpZiAocGFyYW1zLnJvdW5kTGVuZ3Rocykgc2xpZGVTaXplID0gTWF0aC5mbG9vcihzbGlkZVNpemUpO1xuXG4gICAgICBpZiAoc2xpZGVzW2ldKSB7XG4gICAgICAgIHNsaWRlc1tpXS5zdHlsZVtnZXREaXJlY3Rpb25MYWJlbCgnd2lkdGgnKV0gPSBgJHtzbGlkZVNpemV9cHhgO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChzbGlkZXNbaV0pIHtcbiAgICAgIHNsaWRlc1tpXS5zd2lwZXJTbGlkZVNpemUgPSBzbGlkZVNpemU7XG4gICAgfVxuXG4gICAgc2xpZGVzU2l6ZXNHcmlkLnB1c2goc2xpZGVTaXplKTtcblxuICAgIGlmIChwYXJhbXMuY2VudGVyZWRTbGlkZXMpIHtcbiAgICAgIHNsaWRlUG9zaXRpb24gPSBzbGlkZVBvc2l0aW9uICsgc2xpZGVTaXplIC8gMiArIHByZXZTbGlkZVNpemUgLyAyICsgc3BhY2VCZXR3ZWVuO1xuICAgICAgaWYgKHByZXZTbGlkZVNpemUgPT09IDAgJiYgaSAhPT0gMCkgc2xpZGVQb3NpdGlvbiA9IHNsaWRlUG9zaXRpb24gLSBzd2lwZXJTaXplIC8gMiAtIHNwYWNlQmV0d2VlbjtcbiAgICAgIGlmIChpID09PSAwKSBzbGlkZVBvc2l0aW9uID0gc2xpZGVQb3NpdGlvbiAtIHN3aXBlclNpemUgLyAyIC0gc3BhY2VCZXR3ZWVuO1xuICAgICAgaWYgKE1hdGguYWJzKHNsaWRlUG9zaXRpb24pIDwgMSAvIDEwMDApIHNsaWRlUG9zaXRpb24gPSAwO1xuICAgICAgaWYgKHBhcmFtcy5yb3VuZExlbmd0aHMpIHNsaWRlUG9zaXRpb24gPSBNYXRoLmZsb29yKHNsaWRlUG9zaXRpb24pO1xuICAgICAgaWYgKGluZGV4ICUgcGFyYW1zLnNsaWRlc1Blckdyb3VwID09PSAwKSBzbmFwR3JpZC5wdXNoKHNsaWRlUG9zaXRpb24pO1xuICAgICAgc2xpZGVzR3JpZC5wdXNoKHNsaWRlUG9zaXRpb24pO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAocGFyYW1zLnJvdW5kTGVuZ3Rocykgc2xpZGVQb3NpdGlvbiA9IE1hdGguZmxvb3Ioc2xpZGVQb3NpdGlvbik7XG4gICAgICBpZiAoKGluZGV4IC0gTWF0aC5taW4oc3dpcGVyLnBhcmFtcy5zbGlkZXNQZXJHcm91cFNraXAsIGluZGV4KSkgJSBzd2lwZXIucGFyYW1zLnNsaWRlc1Blckdyb3VwID09PSAwKSBzbmFwR3JpZC5wdXNoKHNsaWRlUG9zaXRpb24pO1xuICAgICAgc2xpZGVzR3JpZC5wdXNoKHNsaWRlUG9zaXRpb24pO1xuICAgICAgc2xpZGVQb3NpdGlvbiA9IHNsaWRlUG9zaXRpb24gKyBzbGlkZVNpemUgKyBzcGFjZUJldHdlZW47XG4gICAgfVxuXG4gICAgc3dpcGVyLnZpcnR1YWxTaXplICs9IHNsaWRlU2l6ZSArIHNwYWNlQmV0d2VlbjtcbiAgICBwcmV2U2xpZGVTaXplID0gc2xpZGVTaXplO1xuICAgIGluZGV4ICs9IDE7XG4gIH1cblxuICBzd2lwZXIudmlydHVhbFNpemUgPSBNYXRoLm1heChzd2lwZXIudmlydHVhbFNpemUsIHN3aXBlclNpemUpICsgb2Zmc2V0QWZ0ZXI7XG5cbiAgaWYgKHJ0bCAmJiB3cm9uZ1JUTCAmJiAocGFyYW1zLmVmZmVjdCA9PT0gJ3NsaWRlJyB8fCBwYXJhbXMuZWZmZWN0ID09PSAnY292ZXJmbG93JykpIHtcbiAgICAkd3JhcHBlckVsLmNzcyh7XG4gICAgICB3aWR0aDogYCR7c3dpcGVyLnZpcnR1YWxTaXplICsgcGFyYW1zLnNwYWNlQmV0d2Vlbn1weGBcbiAgICB9KTtcbiAgfVxuXG4gIGlmIChwYXJhbXMuc2V0V3JhcHBlclNpemUpIHtcbiAgICAkd3JhcHBlckVsLmNzcyh7XG4gICAgICBbZ2V0RGlyZWN0aW9uTGFiZWwoJ3dpZHRoJyldOiBgJHtzd2lwZXIudmlydHVhbFNpemUgKyBwYXJhbXMuc3BhY2VCZXR3ZWVufXB4YFxuICAgIH0pO1xuICB9XG5cbiAgaWYgKGdyaWRFbmFibGVkKSB7XG4gICAgc3dpcGVyLmdyaWQudXBkYXRlV3JhcHBlclNpemUoc2xpZGVTaXplLCBzbmFwR3JpZCwgZ2V0RGlyZWN0aW9uTGFiZWwpO1xuICB9IC8vIFJlbW92ZSBsYXN0IGdyaWQgZWxlbWVudHMgZGVwZW5kaW5nIG9uIHdpZHRoXG5cblxuICBpZiAoIXBhcmFtcy5jZW50ZXJlZFNsaWRlcykge1xuICAgIGNvbnN0IG5ld1NsaWRlc0dyaWQgPSBbXTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc25hcEdyaWQubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgIGxldCBzbGlkZXNHcmlkSXRlbSA9IHNuYXBHcmlkW2ldO1xuICAgICAgaWYgKHBhcmFtcy5yb3VuZExlbmd0aHMpIHNsaWRlc0dyaWRJdGVtID0gTWF0aC5mbG9vcihzbGlkZXNHcmlkSXRlbSk7XG5cbiAgICAgIGlmIChzbmFwR3JpZFtpXSA8PSBzd2lwZXIudmlydHVhbFNpemUgLSBzd2lwZXJTaXplKSB7XG4gICAgICAgIG5ld1NsaWRlc0dyaWQucHVzaChzbGlkZXNHcmlkSXRlbSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc25hcEdyaWQgPSBuZXdTbGlkZXNHcmlkO1xuXG4gICAgaWYgKE1hdGguZmxvb3Ioc3dpcGVyLnZpcnR1YWxTaXplIC0gc3dpcGVyU2l6ZSkgLSBNYXRoLmZsb29yKHNuYXBHcmlkW3NuYXBHcmlkLmxlbmd0aCAtIDFdKSA+IDEpIHtcbiAgICAgIHNuYXBHcmlkLnB1c2goc3dpcGVyLnZpcnR1YWxTaXplIC0gc3dpcGVyU2l6ZSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHNuYXBHcmlkLmxlbmd0aCA9PT0gMCkgc25hcEdyaWQgPSBbMF07XG5cbiAgaWYgKHBhcmFtcy5zcGFjZUJldHdlZW4gIT09IDApIHtcbiAgICBjb25zdCBrZXkgPSBzd2lwZXIuaXNIb3Jpem9udGFsKCkgJiYgcnRsID8gJ21hcmdpbkxlZnQnIDogZ2V0RGlyZWN0aW9uTGFiZWwoJ21hcmdpblJpZ2h0Jyk7XG4gICAgc2xpZGVzLmZpbHRlcigoXywgc2xpZGVJbmRleCkgPT4ge1xuICAgICAgaWYgKCFwYXJhbXMuY3NzTW9kZSkgcmV0dXJuIHRydWU7XG5cbiAgICAgIGlmIChzbGlkZUluZGV4ID09PSBzbGlkZXMubGVuZ3RoIC0gMSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0pLmNzcyh7XG4gICAgICBba2V5XTogYCR7c3BhY2VCZXR3ZWVufXB4YFxuICAgIH0pO1xuICB9XG5cbiAgaWYgKHBhcmFtcy5jZW50ZXJlZFNsaWRlcyAmJiBwYXJhbXMuY2VudGVyZWRTbGlkZXNCb3VuZHMpIHtcbiAgICBsZXQgYWxsU2xpZGVzU2l6ZSA9IDA7XG4gICAgc2xpZGVzU2l6ZXNHcmlkLmZvckVhY2goc2xpZGVTaXplVmFsdWUgPT4ge1xuICAgICAgYWxsU2xpZGVzU2l6ZSArPSBzbGlkZVNpemVWYWx1ZSArIChwYXJhbXMuc3BhY2VCZXR3ZWVuID8gcGFyYW1zLnNwYWNlQmV0d2VlbiA6IDApO1xuICAgIH0pO1xuICAgIGFsbFNsaWRlc1NpemUgLT0gcGFyYW1zLnNwYWNlQmV0d2VlbjtcbiAgICBjb25zdCBtYXhTbmFwID0gYWxsU2xpZGVzU2l6ZSAtIHN3aXBlclNpemU7XG4gICAgc25hcEdyaWQgPSBzbmFwR3JpZC5tYXAoc25hcCA9PiB7XG4gICAgICBpZiAoc25hcCA8IDApIHJldHVybiAtb2Zmc2V0QmVmb3JlO1xuICAgICAgaWYgKHNuYXAgPiBtYXhTbmFwKSByZXR1cm4gbWF4U25hcCArIG9mZnNldEFmdGVyO1xuICAgICAgcmV0dXJuIHNuYXA7XG4gICAgfSk7XG4gIH1cblxuICBpZiAocGFyYW1zLmNlbnRlckluc3VmZmljaWVudFNsaWRlcykge1xuICAgIGxldCBhbGxTbGlkZXNTaXplID0gMDtcbiAgICBzbGlkZXNTaXplc0dyaWQuZm9yRWFjaChzbGlkZVNpemVWYWx1ZSA9PiB7XG4gICAgICBhbGxTbGlkZXNTaXplICs9IHNsaWRlU2l6ZVZhbHVlICsgKHBhcmFtcy5zcGFjZUJldHdlZW4gPyBwYXJhbXMuc3BhY2VCZXR3ZWVuIDogMCk7XG4gICAgfSk7XG4gICAgYWxsU2xpZGVzU2l6ZSAtPSBwYXJhbXMuc3BhY2VCZXR3ZWVuO1xuXG4gICAgaWYgKGFsbFNsaWRlc1NpemUgPCBzd2lwZXJTaXplKSB7XG4gICAgICBjb25zdCBhbGxTbGlkZXNPZmZzZXQgPSAoc3dpcGVyU2l6ZSAtIGFsbFNsaWRlc1NpemUpIC8gMjtcbiAgICAgIHNuYXBHcmlkLmZvckVhY2goKHNuYXAsIHNuYXBJbmRleCkgPT4ge1xuICAgICAgICBzbmFwR3JpZFtzbmFwSW5kZXhdID0gc25hcCAtIGFsbFNsaWRlc09mZnNldDtcbiAgICAgIH0pO1xuICAgICAgc2xpZGVzR3JpZC5mb3JFYWNoKChzbmFwLCBzbmFwSW5kZXgpID0+IHtcbiAgICAgICAgc2xpZGVzR3JpZFtzbmFwSW5kZXhdID0gc25hcCArIGFsbFNsaWRlc09mZnNldDtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIE9iamVjdC5hc3NpZ24oc3dpcGVyLCB7XG4gICAgc2xpZGVzLFxuICAgIHNuYXBHcmlkLFxuICAgIHNsaWRlc0dyaWQsXG4gICAgc2xpZGVzU2l6ZXNHcmlkXG4gIH0pO1xuXG4gIGlmIChwYXJhbXMuY2VudGVyZWRTbGlkZXMgJiYgcGFyYW1zLmNzc01vZGUgJiYgIXBhcmFtcy5jZW50ZXJlZFNsaWRlc0JvdW5kcykge1xuICAgIHNldENTU1Byb3BlcnR5KHN3aXBlci53cmFwcGVyRWwsICctLXN3aXBlci1jZW50ZXJlZC1vZmZzZXQtYmVmb3JlJywgYCR7LXNuYXBHcmlkWzBdfXB4YCk7XG4gICAgc2V0Q1NTUHJvcGVydHkoc3dpcGVyLndyYXBwZXJFbCwgJy0tc3dpcGVyLWNlbnRlcmVkLW9mZnNldC1hZnRlcicsIGAke3N3aXBlci5zaXplIC8gMiAtIHNsaWRlc1NpemVzR3JpZFtzbGlkZXNTaXplc0dyaWQubGVuZ3RoIC0gMV0gLyAyfXB4YCk7XG4gICAgY29uc3QgYWRkVG9TbmFwR3JpZCA9IC1zd2lwZXIuc25hcEdyaWRbMF07XG4gICAgY29uc3QgYWRkVG9TbGlkZXNHcmlkID0gLXN3aXBlci5zbGlkZXNHcmlkWzBdO1xuICAgIHN3aXBlci5zbmFwR3JpZCA9IHN3aXBlci5zbmFwR3JpZC5tYXAodiA9PiB2ICsgYWRkVG9TbmFwR3JpZCk7XG4gICAgc3dpcGVyLnNsaWRlc0dyaWQgPSBzd2lwZXIuc2xpZGVzR3JpZC5tYXAodiA9PiB2ICsgYWRkVG9TbGlkZXNHcmlkKTtcbiAgfVxuXG4gIGlmIChzbGlkZXNMZW5ndGggIT09IHByZXZpb3VzU2xpZGVzTGVuZ3RoKSB7XG4gICAgc3dpcGVyLmVtaXQoJ3NsaWRlc0xlbmd0aENoYW5nZScpO1xuICB9XG5cbiAgaWYgKHNuYXBHcmlkLmxlbmd0aCAhPT0gcHJldmlvdXNTbmFwR3JpZExlbmd0aCkge1xuICAgIGlmIChzd2lwZXIucGFyYW1zLndhdGNoT3ZlcmZsb3cpIHN3aXBlci5jaGVja092ZXJmbG93KCk7XG4gICAgc3dpcGVyLmVtaXQoJ3NuYXBHcmlkTGVuZ3RoQ2hhbmdlJyk7XG4gIH1cblxuICBpZiAoc2xpZGVzR3JpZC5sZW5ndGggIT09IHByZXZpb3VzU2xpZGVzR3JpZExlbmd0aCkge1xuICAgIHN3aXBlci5lbWl0KCdzbGlkZXNHcmlkTGVuZ3RoQ2hhbmdlJyk7XG4gIH1cblxuICBpZiAocGFyYW1zLndhdGNoU2xpZGVzUHJvZ3Jlc3MpIHtcbiAgICBzd2lwZXIudXBkYXRlU2xpZGVzT2Zmc2V0KCk7XG4gIH1cbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/update/updateSlides.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/update/updateSlidesClasses.js": +/*!****************************************************************!*\ + !*** ./node_modules/swiper/core/update/updateSlidesClasses.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ updateSlidesClasses; }\n/* harmony export */ });\nfunction updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n $wrapperEl,\n activeIndex,\n realIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);\n let activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index=\"${activeIndex}\"]`);\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n let nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass);\n\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n\n let prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass);\n\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvdXBkYXRlL3VwZGF0ZVNsaWRlc0NsYXNzZXMuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQSx3QkFBd0IseUJBQXlCLEVBQUUsdUJBQXVCLEVBQUUsdUJBQXVCLEVBQUUsa0NBQWtDLEVBQUUsZ0NBQWdDLEVBQUUsK0JBQStCO0FBQzFNOztBQUVBO0FBQ0EsNkNBQTZDLGtCQUFrQiw0QkFBNEIsWUFBWTtBQUN2RyxJQUFJO0FBQ0o7QUFDQSxJQUFJOzs7QUFHSjs7QUFFQTtBQUNBO0FBQ0E7QUFDQSw4QkFBOEIsa0JBQWtCLFFBQVEsMkJBQTJCLDZCQUE2QixVQUFVO0FBQzFILE1BQU07QUFDTiw4QkFBOEIsa0JBQWtCLEdBQUcsMkJBQTJCLDRCQUE0QixVQUFVO0FBQ3BIO0FBQ0EsSUFBSTs7O0FBR0osMENBQTBDLGtCQUFrQjs7QUFFNUQ7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0osMENBQTBDLGtCQUFrQjs7QUFFNUQ7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsOEJBQThCLGtCQUFrQixRQUFRLDJCQUEyQiw2QkFBNkIsMENBQTBDO0FBQzFKLE1BQU07QUFDTiw4QkFBOEIsa0JBQWtCLEdBQUcsMkJBQTJCLDRCQUE0QiwwQ0FBMEM7QUFDcEo7O0FBRUE7QUFDQSw4QkFBOEIsa0JBQWtCLFFBQVEsMkJBQTJCLDZCQUE2QiwwQ0FBMEM7QUFDMUosTUFBTTtBQUNOLDhCQUE4QixrQkFBa0IsR0FBRywyQkFBMkIsNEJBQTRCLDBDQUEwQztBQUNwSjtBQUNBOztBQUVBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N3aXBlci9jb3JlL3VwZGF0ZS91cGRhdGVTbGlkZXNDbGFzc2VzLmpzPzYxODMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXBkYXRlU2xpZGVzQ2xhc3NlcygpIHtcbiAgY29uc3Qgc3dpcGVyID0gdGhpcztcbiAgY29uc3Qge1xuICAgIHNsaWRlcyxcbiAgICBwYXJhbXMsXG4gICAgJHdyYXBwZXJFbCxcbiAgICBhY3RpdmVJbmRleCxcbiAgICByZWFsSW5kZXhcbiAgfSA9IHN3aXBlcjtcbiAgY29uc3QgaXNWaXJ0dWFsID0gc3dpcGVyLnZpcnR1YWwgJiYgcGFyYW1zLnZpcnR1YWwuZW5hYmxlZDtcbiAgc2xpZGVzLnJlbW92ZUNsYXNzKGAke3BhcmFtcy5zbGlkZUFjdGl2ZUNsYXNzfSAke3BhcmFtcy5zbGlkZU5leHRDbGFzc30gJHtwYXJhbXMuc2xpZGVQcmV2Q2xhc3N9ICR7cGFyYW1zLnNsaWRlRHVwbGljYXRlQWN0aXZlQ2xhc3N9ICR7cGFyYW1zLnNsaWRlRHVwbGljYXRlTmV4dENsYXNzfSAke3BhcmFtcy5zbGlkZUR1cGxpY2F0ZVByZXZDbGFzc31gKTtcbiAgbGV0IGFjdGl2ZVNsaWRlO1xuXG4gIGlmIChpc1ZpcnR1YWwpIHtcbiAgICBhY3RpdmVTbGlkZSA9IHN3aXBlci4kd3JhcHBlckVsLmZpbmQoYC4ke3BhcmFtcy5zbGlkZUNsYXNzfVtkYXRhLXN3aXBlci1zbGlkZS1pbmRleD1cIiR7YWN0aXZlSW5kZXh9XCJdYCk7XG4gIH0gZWxzZSB7XG4gICAgYWN0aXZlU2xpZGUgPSBzbGlkZXMuZXEoYWN0aXZlSW5kZXgpO1xuICB9IC8vIEFjdGl2ZSBjbGFzc2VzXG5cblxuICBhY3RpdmVTbGlkZS5hZGRDbGFzcyhwYXJhbXMuc2xpZGVBY3RpdmVDbGFzcyk7XG5cbiAgaWYgKHBhcmFtcy5sb29wKSB7XG4gICAgLy8gRHVwbGljYXRlIHRvIGFsbCBsb29wZWQgc2xpZGVzXG4gICAgaWYgKGFjdGl2ZVNsaWRlLmhhc0NsYXNzKHBhcmFtcy5zbGlkZUR1cGxpY2F0ZUNsYXNzKSkge1xuICAgICAgJHdyYXBwZXJFbC5jaGlsZHJlbihgLiR7cGFyYW1zLnNsaWRlQ2xhc3N9Om5vdCguJHtwYXJhbXMuc2xpZGVEdXBsaWNhdGVDbGFzc30pW2RhdGEtc3dpcGVyLXNsaWRlLWluZGV4PVwiJHtyZWFsSW5kZXh9XCJdYCkuYWRkQ2xhc3MocGFyYW1zLnNsaWRlRHVwbGljYXRlQWN0aXZlQ2xhc3MpO1xuICAgIH0gZWxzZSB7XG4gICAgICAkd3JhcHBlckVsLmNoaWxkcmVuKGAuJHtwYXJhbXMuc2xpZGVDbGFzc30uJHtwYXJhbXMuc2xpZGVEdXBsaWNhdGVDbGFzc31bZGF0YS1zd2lwZXItc2xpZGUtaW5kZXg9XCIke3JlYWxJbmRleH1cIl1gKS5hZGRDbGFzcyhwYXJhbXMuc2xpZGVEdXBsaWNhdGVBY3RpdmVDbGFzcyk7XG4gICAgfVxuICB9IC8vIE5leHQgU2xpZGVcblxuXG4gIGxldCBuZXh0U2xpZGUgPSBhY3RpdmVTbGlkZS5uZXh0QWxsKGAuJHtwYXJhbXMuc2xpZGVDbGFzc31gKS5lcSgwKS5hZGRDbGFzcyhwYXJhbXMuc2xpZGVOZXh0Q2xhc3MpO1xuXG4gIGlmIChwYXJhbXMubG9vcCAmJiBuZXh0U2xpZGUubGVuZ3RoID09PSAwKSB7XG4gICAgbmV4dFNsaWRlID0gc2xpZGVzLmVxKDApO1xuICAgIG5leHRTbGlkZS5hZGRDbGFzcyhwYXJhbXMuc2xpZGVOZXh0Q2xhc3MpO1xuICB9IC8vIFByZXYgU2xpZGVcblxuXG4gIGxldCBwcmV2U2xpZGUgPSBhY3RpdmVTbGlkZS5wcmV2QWxsKGAuJHtwYXJhbXMuc2xpZGVDbGFzc31gKS5lcSgwKS5hZGRDbGFzcyhwYXJhbXMuc2xpZGVQcmV2Q2xhc3MpO1xuXG4gIGlmIChwYXJhbXMubG9vcCAmJiBwcmV2U2xpZGUubGVuZ3RoID09PSAwKSB7XG4gICAgcHJldlNsaWRlID0gc2xpZGVzLmVxKC0xKTtcbiAgICBwcmV2U2xpZGUuYWRkQ2xhc3MocGFyYW1zLnNsaWRlUHJldkNsYXNzKTtcbiAgfVxuXG4gIGlmIChwYXJhbXMubG9vcCkge1xuICAgIC8vIER1cGxpY2F0ZSB0byBhbGwgbG9vcGVkIHNsaWRlc1xuICAgIGlmIChuZXh0U2xpZGUuaGFzQ2xhc3MocGFyYW1zLnNsaWRlRHVwbGljYXRlQ2xhc3MpKSB7XG4gICAgICAkd3JhcHBlckVsLmNoaWxkcmVuKGAuJHtwYXJhbXMuc2xpZGVDbGFzc306bm90KC4ke3BhcmFtcy5zbGlkZUR1cGxpY2F0ZUNsYXNzfSlbZGF0YS1zd2lwZXItc2xpZGUtaW5kZXg9XCIke25leHRTbGlkZS5hdHRyKCdkYXRhLXN3aXBlci1zbGlkZS1pbmRleCcpfVwiXWApLmFkZENsYXNzKHBhcmFtcy5zbGlkZUR1cGxpY2F0ZU5leHRDbGFzcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgICR3cmFwcGVyRWwuY2hpbGRyZW4oYC4ke3BhcmFtcy5zbGlkZUNsYXNzfS4ke3BhcmFtcy5zbGlkZUR1cGxpY2F0ZUNsYXNzfVtkYXRhLXN3aXBlci1zbGlkZS1pbmRleD1cIiR7bmV4dFNsaWRlLmF0dHIoJ2RhdGEtc3dpcGVyLXNsaWRlLWluZGV4Jyl9XCJdYCkuYWRkQ2xhc3MocGFyYW1zLnNsaWRlRHVwbGljYXRlTmV4dENsYXNzKTtcbiAgICB9XG5cbiAgICBpZiAocHJldlNsaWRlLmhhc0NsYXNzKHBhcmFtcy5zbGlkZUR1cGxpY2F0ZUNsYXNzKSkge1xuICAgICAgJHdyYXBwZXJFbC5jaGlsZHJlbihgLiR7cGFyYW1zLnNsaWRlQ2xhc3N9Om5vdCguJHtwYXJhbXMuc2xpZGVEdXBsaWNhdGVDbGFzc30pW2RhdGEtc3dpcGVyLXNsaWRlLWluZGV4PVwiJHtwcmV2U2xpZGUuYXR0cignZGF0YS1zd2lwZXItc2xpZGUtaW5kZXgnKX1cIl1gKS5hZGRDbGFzcyhwYXJhbXMuc2xpZGVEdXBsaWNhdGVQcmV2Q2xhc3MpO1xuICAgIH0gZWxzZSB7XG4gICAgICAkd3JhcHBlckVsLmNoaWxkcmVuKGAuJHtwYXJhbXMuc2xpZGVDbGFzc30uJHtwYXJhbXMuc2xpZGVEdXBsaWNhdGVDbGFzc31bZGF0YS1zd2lwZXItc2xpZGUtaW5kZXg9XCIke3ByZXZTbGlkZS5hdHRyKCdkYXRhLXN3aXBlci1zbGlkZS1pbmRleCcpfVwiXWApLmFkZENsYXNzKHBhcmFtcy5zbGlkZUR1cGxpY2F0ZVByZXZDbGFzcyk7XG4gICAgfVxuICB9XG5cbiAgc3dpcGVyLmVtaXRTbGlkZXNDbGFzc2VzKCk7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/update/updateSlidesClasses.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/update/updateSlidesOffset.js": +/*!***************************************************************!*\ + !*** ./node_modules/swiper/core/update/updateSlidesOffset.js ***! + \***************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ updateSlidesOffset; }\n/* harmony export */ });\nfunction updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvdXBkYXRlL3VwZGF0ZVNsaWRlc09mZnNldC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQWU7QUFDZjtBQUNBOztBQUVBLGtCQUFrQixtQkFBbUI7QUFDckM7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zd2lwZXIvY29yZS91cGRhdGUvdXBkYXRlU2xpZGVzT2Zmc2V0LmpzP2I0YjkiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXBkYXRlU2xpZGVzT2Zmc2V0KCkge1xuICBjb25zdCBzd2lwZXIgPSB0aGlzO1xuICBjb25zdCBzbGlkZXMgPSBzd2lwZXIuc2xpZGVzO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2xpZGVzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgc2xpZGVzW2ldLnN3aXBlclNsaWRlT2Zmc2V0ID0gc3dpcGVyLmlzSG9yaXpvbnRhbCgpID8gc2xpZGVzW2ldLm9mZnNldExlZnQgOiBzbGlkZXNbaV0ub2Zmc2V0VG9wO1xuICB9XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/update/updateSlidesOffset.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/core/update/updateSlidesProgress.js": +/*!*****************************************************************!*\ + !*** ./node_modules/swiper/core/update/updateSlidesProgress.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ updateSlidesProgress; }\n/* harmony export */ });\n/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/dom.js */ \"./node_modules/swiper/shared/dom.js\");\n\nfunction updateSlidesProgress(translate = this && this.translate || 0) {\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n\n swiper.visibleSlides = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(swiper.visibleSlides);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL2NvcmUvdXBkYXRlL3VwZGF0ZVNsaWRlc1Byb2dyZXNzLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQW9DO0FBQ3JCO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBLHFDQUFxQzs7QUFFckM7QUFDQTtBQUNBOztBQUVBLGtCQUFrQixtQkFBbUI7QUFDckM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSx5QkFBeUIsMERBQUM7QUFDMUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N3aXBlci9jb3JlL3VwZGF0ZS91cGRhdGVTbGlkZXNQcm9ncmVzcy5qcz9jNjk1Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJy4uLy4uL3NoYXJlZC9kb20uanMnO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXBkYXRlU2xpZGVzUHJvZ3Jlc3ModHJhbnNsYXRlID0gdGhpcyAmJiB0aGlzLnRyYW5zbGF0ZSB8fCAwKSB7XG4gIGNvbnN0IHN3aXBlciA9IHRoaXM7XG4gIGNvbnN0IHBhcmFtcyA9IHN3aXBlci5wYXJhbXM7XG4gIGNvbnN0IHtcbiAgICBzbGlkZXMsXG4gICAgcnRsVHJhbnNsYXRlOiBydGwsXG4gICAgc25hcEdyaWRcbiAgfSA9IHN3aXBlcjtcbiAgaWYgKHNsaWRlcy5sZW5ndGggPT09IDApIHJldHVybjtcbiAgaWYgKHR5cGVvZiBzbGlkZXNbMF0uc3dpcGVyU2xpZGVPZmZzZXQgPT09ICd1bmRlZmluZWQnKSBzd2lwZXIudXBkYXRlU2xpZGVzT2Zmc2V0KCk7XG4gIGxldCBvZmZzZXRDZW50ZXIgPSAtdHJhbnNsYXRlO1xuICBpZiAocnRsKSBvZmZzZXRDZW50ZXIgPSB0cmFuc2xhdGU7IC8vIFZpc2libGUgU2xpZGVzXG5cbiAgc2xpZGVzLnJlbW92ZUNsYXNzKHBhcmFtcy5zbGlkZVZpc2libGVDbGFzcyk7XG4gIHN3aXBlci52aXNpYmxlU2xpZGVzSW5kZXhlcyA9IFtdO1xuICBzd2lwZXIudmlzaWJsZVNsaWRlcyA9IFtdO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2xpZGVzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgY29uc3Qgc2xpZGUgPSBzbGlkZXNbaV07XG4gICAgbGV0IHNsaWRlT2Zmc2V0ID0gc2xpZGUuc3dpcGVyU2xpZGVPZmZzZXQ7XG5cbiAgICBpZiAocGFyYW1zLmNzc01vZGUgJiYgcGFyYW1zLmNlbnRlcmVkU2xpZGVzKSB7XG4gICAgICBzbGlkZU9mZnNldCAtPSBzbGlkZXNbMF0uc3dpcGVyU2xpZGVPZmZzZXQ7XG4gICAgfVxuXG4gICAgY29uc3Qgc2xpZGVQcm9ncmVzcyA9IChvZmZzZXRDZW50ZXIgKyAocGFyYW1zLmNlbnRlcmVkU2xpZGVzID8gc3dpcGVyLm1pblRyYW5zbGF0ZSgpIDogMCkgLSBzbGlkZU9mZnNldCkgLyAoc2xpZGUuc3dpcGVyU2xpZGVTaXplICsgcGFyYW1zLnNwYWNlQmV0d2Vlbik7XG4gICAgY29uc3Qgb3JpZ2luYWxTbGlkZVByb2dyZXNzID0gKG9mZnNldENlbnRlciAtIHNuYXBHcmlkWzBdICsgKHBhcmFtcy5jZW50ZXJlZFNsaWRlcyA/IHN3aXBlci5taW5UcmFuc2xhdGUoKSA6IDApIC0gc2xpZGVPZmZzZXQpIC8gKHNsaWRlLnN3aXBlclNsaWRlU2l6ZSArIHBhcmFtcy5zcGFjZUJldHdlZW4pO1xuICAgIGNvbnN0IHNsaWRlQmVmb3JlID0gLShvZmZzZXRDZW50ZXIgLSBzbGlkZU9mZnNldCk7XG4gICAgY29uc3Qgc2xpZGVBZnRlciA9IHNsaWRlQmVmb3JlICsgc3dpcGVyLnNsaWRlc1NpemVzR3JpZFtpXTtcbiAgICBjb25zdCBpc1Zpc2libGUgPSBzbGlkZUJlZm9yZSA+PSAwICYmIHNsaWRlQmVmb3JlIDwgc3dpcGVyLnNpemUgLSAxIHx8IHNsaWRlQWZ0ZXIgPiAxICYmIHNsaWRlQWZ0ZXIgPD0gc3dpcGVyLnNpemUgfHwgc2xpZGVCZWZvcmUgPD0gMCAmJiBzbGlkZUFmdGVyID49IHN3aXBlci5zaXplO1xuXG4gICAgaWYgKGlzVmlzaWJsZSkge1xuICAgICAgc3dpcGVyLnZpc2libGVTbGlkZXMucHVzaChzbGlkZSk7XG4gICAgICBzd2lwZXIudmlzaWJsZVNsaWRlc0luZGV4ZXMucHVzaChpKTtcbiAgICAgIHNsaWRlcy5lcShpKS5hZGRDbGFzcyhwYXJhbXMuc2xpZGVWaXNpYmxlQ2xhc3MpO1xuICAgIH1cblxuICAgIHNsaWRlLnByb2dyZXNzID0gcnRsID8gLXNsaWRlUHJvZ3Jlc3MgOiBzbGlkZVByb2dyZXNzO1xuICAgIHNsaWRlLm9yaWdpbmFsUHJvZ3Jlc3MgPSBydGwgPyAtb3JpZ2luYWxTbGlkZVByb2dyZXNzIDogb3JpZ2luYWxTbGlkZVByb2dyZXNzO1xuICB9XG5cbiAgc3dpcGVyLnZpc2libGVTbGlkZXMgPSAkKHN3aXBlci52aXNpYmxlU2xpZGVzKTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/swiper/core/update/updateSlidesProgress.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/modules/a11y/a11y.js": +/*!**************************************************!*\ + !*** ./node_modules/swiper/modules/a11y/a11y.js ***! + \**************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ A11y; }\n/* harmony export */ });\n/* harmony import */ var _shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/classes-to-selector.js */ \"./node_modules/swiper/shared/classes-to-selector.js\");\n/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ \"./node_modules/swiper/shared/dom.js\");\n\n\nfunction A11y({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n slideLabelMessage: '{{index}} / {{slidesLength}}',\n containerMessage: null,\n containerRoleDescriptionMessage: null,\n itemRoleDescriptionMessage: null,\n slideRole: 'group'\n }\n });\n let liveRegion = null;\n\n function notify(message) {\n const notification = liveRegion;\n if (notification.length === 0) return;\n notification.html('');\n notification.html(message);\n }\n\n function getRandomNumber(size = 16) {\n const randomChar = () => Math.round(16 * Math.random()).toString(16);\n\n return 'x'.repeat(size).replace(/x/g, randomChar);\n }\n\n function makeElFocusable($el) {\n $el.attr('tabIndex', '0');\n }\n\n function makeElNotFocusable($el) {\n $el.attr('tabIndex', '-1');\n }\n\n function addElRole($el, role) {\n $el.attr('role', role);\n }\n\n function addElRoleDescription($el, description) {\n $el.attr('aria-roledescription', description);\n }\n\n function addElControls($el, controls) {\n $el.attr('aria-controls', controls);\n }\n\n function addElLabel($el, label) {\n $el.attr('aria-label', label);\n }\n\n function addElId($el, id) {\n $el.attr('id', id);\n }\n\n function addElLive($el, live) {\n $el.attr('aria-live', live);\n }\n\n function disableEl($el) {\n $el.attr('aria-disabled', true);\n }\n\n function enableEl($el) {\n $el.attr('aria-disabled', false);\n }\n\n function onEnterOrSpaceKey(e) {\n if (e.keyCode !== 13 && e.keyCode !== 32) return;\n const params = swiper.params.a11y;\n const $targetEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(e.target);\n\n if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n\n if (swiper.isEnd) {\n notify(params.lastSlideMessage);\n } else {\n notify(params.nextSlideMessage);\n }\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n\n if (swiper.isBeginning) {\n notify(params.firstSlideMessage);\n } else {\n notify(params.prevSlideMessage);\n }\n }\n\n if (swiper.pagination && $targetEl.is((0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(swiper.params.pagination.bulletClass))) {\n $targetEl[0].click();\n }\n }\n\n function updateNavigation() {\n if (swiper.params.loop || !swiper.navigation) return;\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n disableEl($prevEl);\n makeElNotFocusable($prevEl);\n } else {\n enableEl($prevEl);\n makeElFocusable($prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n disableEl($nextEl);\n makeElNotFocusable($nextEl);\n } else {\n enableEl($nextEl);\n makeElFocusable($nextEl);\n }\n }\n }\n\n function hasPagination() {\n return swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length;\n }\n\n function updatePagination() {\n const params = swiper.params.a11y;\n\n if (hasPagination()) {\n swiper.pagination.bullets.each(bulletEl => {\n const $bulletEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(bulletEl);\n makeElFocusable($bulletEl);\n\n if (!swiper.params.pagination.renderBullet) {\n addElRole($bulletEl, 'button');\n addElLabel($bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, $bulletEl.index() + 1));\n }\n });\n }\n }\n\n const initNavEl = ($el, wrapperId, message) => {\n makeElFocusable($el);\n\n if ($el[0].tagName !== 'BUTTON') {\n addElRole($el, 'button');\n $el.on('keydown', onEnterOrSpaceKey);\n }\n\n addElLabel($el, message);\n addElControls($el, wrapperId);\n };\n\n function init() {\n const params = swiper.params.a11y;\n swiper.$el.append(liveRegion); // Container\n\n const $containerEl = swiper.$el;\n\n if (params.containerRoleDescriptionMessage) {\n addElRoleDescription($containerEl, params.containerRoleDescriptionMessage);\n }\n\n if (params.containerMessage) {\n addElLabel($containerEl, params.containerMessage);\n } // Wrapper\n\n\n const $wrapperEl = swiper.$wrapperEl;\n const wrapperId = $wrapperEl.attr('id') || `swiper-wrapper-${getRandomNumber(16)}`;\n const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';\n addElId($wrapperEl, wrapperId);\n addElLive($wrapperEl, live); // Slide\n\n if (params.itemRoleDescriptionMessage) {\n addElRoleDescription((0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(swiper.slides), params.itemRoleDescriptionMessage);\n }\n\n addElRole((0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(swiper.slides), params.slideRole);\n const slidesLength = swiper.params.loop ? swiper.slides.filter(el => !el.classList.contains(swiper.params.slideDuplicateClass)).length : swiper.slides.length;\n swiper.slides.each((slideEl, index) => {\n const $slideEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(slideEl);\n const slideIndex = swiper.params.loop ? parseInt($slideEl.attr('data-swiper-slide-index'), 10) : index;\n const ariaLabelMessage = params.slideLabelMessage.replace(/\\{\\{index\\}\\}/, slideIndex + 1).replace(/\\{\\{slidesLength\\}\\}/, slidesLength);\n addElLabel($slideEl, ariaLabelMessage);\n }); // Navigation\n\n let $nextEl;\n let $prevEl;\n\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n\n if ($nextEl && $nextEl.length) {\n initNavEl($nextEl, wrapperId, params.nextSlideMessage);\n }\n\n if ($prevEl && $prevEl.length) {\n initNavEl($prevEl, wrapperId, params.prevSlideMessage);\n } // Pagination\n\n\n if (hasPagination()) {\n swiper.pagination.$el.on('keydown', (0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(swiper.params.pagination.bulletClass), onEnterOrSpaceKey);\n }\n }\n\n function destroy() {\n if (liveRegion && liveRegion.length > 0) liveRegion.remove();\n let $nextEl;\n let $prevEl;\n\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n\n if ($nextEl) {\n $nextEl.off('keydown', onEnterOrSpaceKey);\n }\n\n if ($prevEl) {\n $prevEl.off('keydown', onEnterOrSpaceKey);\n } // Pagination\n\n\n if (hasPagination()) {\n swiper.pagination.$el.off('keydown', (0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(swiper.params.pagination.bulletClass), onEnterOrSpaceKey);\n }\n }\n\n on('beforeInit', () => {\n liveRegion = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(`<span class=\"${swiper.params.a11y.notificationClass}\" aria-live=\"assertive\" aria-atomic=\"true\"></span>`);\n });\n on('afterInit', () => {\n if (!swiper.params.a11y.enabled) return;\n init();\n updateNavigation();\n });\n on('toEdge', () => {\n if (!swiper.params.a11y.enabled) return;\n updateNavigation();\n });\n on('fromEdge', () => {\n if (!swiper.params.a11y.enabled) return;\n updateNavigation();\n });\n on('paginationUpdate', () => {\n if (!swiper.params.a11y.enabled) return;\n updatePagination();\n });\n on('destroy', () => {\n if (!swiper.params.a11y.enabled) return;\n destroy();\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMvYTExeS9hMTF5LmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFvRTtBQUNoQztBQUNyQjtBQUNmO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOENBQThDLE9BQU87QUFDckQsNEJBQTRCLFFBQVEsSUFBSSxjQUFjO0FBQ3REO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLDBEQUFDOztBQUV2QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTs7QUFFQSwwQ0FBMEMsMEVBQWlCO0FBQzNEO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTs7QUFFTjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSwwQkFBMEIsMERBQUM7QUFDM0I7O0FBRUE7QUFDQTtBQUNBLDBFQUEwRSxFQUFFLE9BQU8sRUFBRTtBQUNyRjtBQUNBLE9BQU87QUFDUDtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxtQ0FBbUM7O0FBRW5DOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTs7O0FBR047QUFDQSxpRUFBaUUsb0JBQW9CO0FBQ3JGO0FBQ0E7QUFDQSxpQ0FBaUM7O0FBRWpDO0FBQ0EsMkJBQTJCLDBEQUFDO0FBQzVCOztBQUVBLGNBQWMsMERBQUM7QUFDZjtBQUNBO0FBQ0EsdUJBQXVCLDBEQUFDO0FBQ3hCO0FBQ0EsbUVBQW1FLEVBQUUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLGNBQWMsRUFBRTtBQUM5SDtBQUNBLEtBQUssR0FBRzs7QUFFUjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNOzs7QUFHTjtBQUNBLDBDQUEwQywwRUFBaUI7QUFDM0Q7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTs7O0FBR047QUFDQSwyQ0FBMkMsMEVBQWlCO0FBQzVEO0FBQ0E7O0FBRUE7QUFDQSxpQkFBaUIsMERBQUMsaUJBQWlCLHFDQUFxQztBQUN4RSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zd2lwZXIvbW9kdWxlcy9hMTF5L2ExMXkuanM/OGNmMCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY2xhc3Nlc1RvU2VsZWN0b3IgZnJvbSAnLi4vLi4vc2hhcmVkL2NsYXNzZXMtdG8tc2VsZWN0b3IuanMnO1xuaW1wb3J0ICQgZnJvbSAnLi4vLi4vc2hhcmVkL2RvbS5qcyc7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBBMTF5KHtcbiAgc3dpcGVyLFxuICBleHRlbmRQYXJhbXMsXG4gIG9uXG59KSB7XG4gIGV4dGVuZFBhcmFtcyh7XG4gICAgYTExeToge1xuICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgIG5vdGlmaWNhdGlvbkNsYXNzOiAnc3dpcGVyLW5vdGlmaWNhdGlvbicsXG4gICAgICBwcmV2U2xpZGVNZXNzYWdlOiAnUHJldmlvdXMgc2xpZGUnLFxuICAgICAgbmV4dFNsaWRlTWVzc2FnZTogJ05leHQgc2xpZGUnLFxuICAgICAgZmlyc3RTbGlkZU1lc3NhZ2U6ICdUaGlzIGlzIHRoZSBmaXJzdCBzbGlkZScsXG4gICAgICBsYXN0U2xpZGVNZXNzYWdlOiAnVGhpcyBpcyB0aGUgbGFzdCBzbGlkZScsXG4gICAgICBwYWdpbmF0aW9uQnVsbGV0TWVzc2FnZTogJ0dvIHRvIHNsaWRlIHt7aW5kZXh9fScsXG4gICAgICBzbGlkZUxhYmVsTWVzc2FnZTogJ3t7aW5kZXh9fSAvIHt7c2xpZGVzTGVuZ3RofX0nLFxuICAgICAgY29udGFpbmVyTWVzc2FnZTogbnVsbCxcbiAgICAgIGNvbnRhaW5lclJvbGVEZXNjcmlwdGlvbk1lc3NhZ2U6IG51bGwsXG4gICAgICBpdGVtUm9sZURlc2NyaXB0aW9uTWVzc2FnZTogbnVsbCxcbiAgICAgIHNsaWRlUm9sZTogJ2dyb3VwJ1xuICAgIH1cbiAgfSk7XG4gIGxldCBsaXZlUmVnaW9uID0gbnVsbDtcblxuICBmdW5jdGlvbiBub3RpZnkobWVzc2FnZSkge1xuICAgIGNvbnN0IG5vdGlmaWNhdGlvbiA9IGxpdmVSZWdpb247XG4gICAgaWYgKG5vdGlmaWNhdGlvbi5sZW5ndGggPT09IDApIHJldHVybjtcbiAgICBub3RpZmljYXRpb24uaHRtbCgnJyk7XG4gICAgbm90aWZpY2F0aW9uLmh0bWwobWVzc2FnZSk7XG4gIH1cblxuICBmdW5jdGlvbiBnZXRSYW5kb21OdW1iZXIoc2l6ZSA9IDE2KSB7XG4gICAgY29uc3QgcmFuZG9tQ2hhciA9ICgpID0+IE1hdGgucm91bmQoMTYgKiBNYXRoLnJhbmRvbSgpKS50b1N0cmluZygxNik7XG5cbiAgICByZXR1cm4gJ3gnLnJlcGVhdChzaXplKS5yZXBsYWNlKC94L2csIHJhbmRvbUNoYXIpO1xuICB9XG5cbiAgZnVuY3Rpb24gbWFrZUVsRm9jdXNhYmxlKCRlbCkge1xuICAgICRlbC5hdHRyKCd0YWJJbmRleCcsICcwJyk7XG4gIH1cblxuICBmdW5jdGlvbiBtYWtlRWxOb3RGb2N1c2FibGUoJGVsKSB7XG4gICAgJGVsLmF0dHIoJ3RhYkluZGV4JywgJy0xJyk7XG4gIH1cblxuICBmdW5jdGlvbiBhZGRFbFJvbGUoJGVsLCByb2xlKSB7XG4gICAgJGVsLmF0dHIoJ3JvbGUnLCByb2xlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGFkZEVsUm9sZURlc2NyaXB0aW9uKCRlbCwgZGVzY3JpcHRpb24pIHtcbiAgICAkZWwuYXR0cignYXJpYS1yb2xlZGVzY3JpcHRpb24nLCBkZXNjcmlwdGlvbik7XG4gIH1cblxuICBmdW5jdGlvbiBhZGRFbENvbnRyb2xzKCRlbCwgY29udHJvbHMpIHtcbiAgICAkZWwuYXR0cignYXJpYS1jb250cm9scycsIGNvbnRyb2xzKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGFkZEVsTGFiZWwoJGVsLCBsYWJlbCkge1xuICAgICRlbC5hdHRyKCdhcmlhLWxhYmVsJywgbGFiZWwpO1xuICB9XG5cbiAgZnVuY3Rpb24gYWRkRWxJZCgkZWwsIGlkKSB7XG4gICAgJGVsLmF0dHIoJ2lkJywgaWQpO1xuICB9XG5cbiAgZnVuY3Rpb24gYWRkRWxMaXZlKCRlbCwgbGl2ZSkge1xuICAgICRlbC5hdHRyKCdhcmlhLWxpdmUnLCBsaXZlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGRpc2FibGVFbCgkZWwpIHtcbiAgICAkZWwuYXR0cignYXJpYS1kaXNhYmxlZCcsIHRydWUpO1xuICB9XG5cbiAgZnVuY3Rpb24gZW5hYmxlRWwoJGVsKSB7XG4gICAgJGVsLmF0dHIoJ2FyaWEtZGlzYWJsZWQnLCBmYWxzZSk7XG4gIH1cblxuICBmdW5jdGlvbiBvbkVudGVyT3JTcGFjZUtleShlKSB7XG4gICAgaWYgKGUua2V5Q29kZSAhPT0gMTMgJiYgZS5rZXlDb2RlICE9PSAzMikgcmV0dXJuO1xuICAgIGNvbnN0IHBhcmFtcyA9IHN3aXBlci5wYXJhbXMuYTExeTtcbiAgICBjb25zdCAkdGFyZ2V0RWwgPSAkKGUudGFyZ2V0KTtcblxuICAgIGlmIChzd2lwZXIubmF2aWdhdGlvbiAmJiBzd2lwZXIubmF2aWdhdGlvbi4kbmV4dEVsICYmICR0YXJnZXRFbC5pcyhzd2lwZXIubmF2aWdhdGlvbi4kbmV4dEVsKSkge1xuICAgICAgaWYgKCEoc3dpcGVyLmlzRW5kICYmICFzd2lwZXIucGFyYW1zLmxvb3ApKSB7XG4gICAgICAgIHN3aXBlci5zbGlkZU5leHQoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHN3aXBlci5pc0VuZCkge1xuICAgICAgICBub3RpZnkocGFyYW1zLmxhc3RTbGlkZU1lc3NhZ2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbm90aWZ5KHBhcmFtcy5uZXh0U2xpZGVNZXNzYWdlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc3dpcGVyLm5hdmlnYXRpb24gJiYgc3dpcGVyLm5hdmlnYXRpb24uJHByZXZFbCAmJiAkdGFyZ2V0RWwuaXMoc3dpcGVyLm5hdmlnYXRpb24uJHByZXZFbCkpIHtcbiAgICAgIGlmICghKHN3aXBlci5pc0JlZ2lubmluZyAmJiAhc3dpcGVyLnBhcmFtcy5sb29wKSkge1xuICAgICAgICBzd2lwZXIuc2xpZGVQcmV2KCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChzd2lwZXIuaXNCZWdpbm5pbmcpIHtcbiAgICAgICAgbm90aWZ5KHBhcmFtcy5maXJzdFNsaWRlTWVzc2FnZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBub3RpZnkocGFyYW1zLnByZXZTbGlkZU1lc3NhZ2UpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChzd2lwZXIucGFnaW5hdGlvbiAmJiAkdGFyZ2V0RWwuaXMoY2xhc3Nlc1RvU2VsZWN0b3Ioc3dpcGVyLnBhcmFtcy5wYWdpbmF0aW9uLmJ1bGxldENsYXNzKSkpIHtcbiAgICAgICR0YXJnZXRFbFswXS5jbGljaygpO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHVwZGF0ZU5hdmlnYXRpb24oKSB7XG4gICAgaWYgKHN3aXBlci5wYXJhbXMubG9vcCB8fCAhc3dpcGVyLm5hdmlnYXRpb24pIHJldHVybjtcbiAgICBjb25zdCB7XG4gICAgICAkbmV4dEVsLFxuICAgICAgJHByZXZFbFxuICAgIH0gPSBzd2lwZXIubmF2aWdhdGlvbjtcblxuICAgIGlmICgkcHJldkVsICYmICRwcmV2RWwubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKHN3aXBlci5pc0JlZ2lubmluZykge1xuICAgICAgICBkaXNhYmxlRWwoJHByZXZFbCk7XG4gICAgICAgIG1ha2VFbE5vdEZvY3VzYWJsZSgkcHJldkVsKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVuYWJsZUVsKCRwcmV2RWwpO1xuICAgICAgICBtYWtlRWxGb2N1c2FibGUoJHByZXZFbCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCRuZXh0RWwgJiYgJG5leHRFbC5sZW5ndGggPiAwKSB7XG4gICAgICBpZiAoc3dpcGVyLmlzRW5kKSB7XG4gICAgICAgIGRpc2FibGVFbCgkbmV4dEVsKTtcbiAgICAgICAgbWFrZUVsTm90Rm9jdXNhYmxlKCRuZXh0RWwpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZW5hYmxlRWwoJG5leHRFbCk7XG4gICAgICAgIG1ha2VFbEZvY3VzYWJsZSgkbmV4dEVsKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBoYXNQYWdpbmF0aW9uKCkge1xuICAgIHJldHVybiBzd2lwZXIucGFnaW5hdGlvbiAmJiBzd2lwZXIucGFyYW1zLnBhZ2luYXRpb24uY2xpY2thYmxlICYmIHN3aXBlci5wYWdpbmF0aW9uLmJ1bGxldHMgJiYgc3dpcGVyLnBhZ2luYXRpb24uYnVsbGV0cy5sZW5ndGg7XG4gIH1cblxuICBmdW5jdGlvbiB1cGRhdGVQYWdpbmF0aW9uKCkge1xuICAgIGNvbnN0IHBhcmFtcyA9IHN3aXBlci5wYXJhbXMuYTExeTtcblxuICAgIGlmIChoYXNQYWdpbmF0aW9uKCkpIHtcbiAgICAgIHN3aXBlci5wYWdpbmF0aW9uLmJ1bGxldHMuZWFjaChidWxsZXRFbCA9PiB7XG4gICAgICAgIGNvbnN0ICRidWxsZXRFbCA9ICQoYnVsbGV0RWwpO1xuICAgICAgICBtYWtlRWxGb2N1c2FibGUoJGJ1bGxldEVsKTtcblxuICAgICAgICBpZiAoIXN3aXBlci5wYXJhbXMucGFnaW5hdGlvbi5yZW5kZXJCdWxsZXQpIHtcbiAgICAgICAgICBhZGRFbFJvbGUoJGJ1bGxldEVsLCAnYnV0dG9uJyk7XG4gICAgICAgICAgYWRkRWxMYWJlbCgkYnVsbGV0RWwsIHBhcmFtcy5wYWdpbmF0aW9uQnVsbGV0TWVzc2FnZS5yZXBsYWNlKC9cXHtcXHtpbmRleFxcfVxcfS8sICRidWxsZXRFbC5pbmRleCgpICsgMSkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBpbml0TmF2RWwgPSAoJGVsLCB3cmFwcGVySWQsIG1lc3NhZ2UpID0+IHtcbiAgICBtYWtlRWxGb2N1c2FibGUoJGVsKTtcblxuICAgIGlmICgkZWxbMF0udGFnTmFtZSAhPT0gJ0JVVFRPTicpIHtcbiAgICAgIGFkZEVsUm9sZSgkZWwsICdidXR0b24nKTtcbiAgICAgICRlbC5vbigna2V5ZG93bicsIG9uRW50ZXJPclNwYWNlS2V5KTtcbiAgICB9XG5cbiAgICBhZGRFbExhYmVsKCRlbCwgbWVzc2FnZSk7XG4gICAgYWRkRWxDb250cm9scygkZWwsIHdyYXBwZXJJZCk7XG4gIH07XG5cbiAgZnVuY3Rpb24gaW5pdCgpIHtcbiAgICBjb25zdCBwYXJhbXMgPSBzd2lwZXIucGFyYW1zLmExMXk7XG4gICAgc3dpcGVyLiRlbC5hcHBlbmQobGl2ZVJlZ2lvbik7IC8vIENvbnRhaW5lclxuXG4gICAgY29uc3QgJGNvbnRhaW5lckVsID0gc3dpcGVyLiRlbDtcblxuICAgIGlmIChwYXJhbXMuY29udGFpbmVyUm9sZURlc2NyaXB0aW9uTWVzc2FnZSkge1xuICAgICAgYWRkRWxSb2xlRGVzY3JpcHRpb24oJGNvbnRhaW5lckVsLCBwYXJhbXMuY29udGFpbmVyUm9sZURlc2NyaXB0aW9uTWVzc2FnZSk7XG4gICAgfVxuXG4gICAgaWYgKHBhcmFtcy5jb250YWluZXJNZXNzYWdlKSB7XG4gICAgICBhZGRFbExhYmVsKCRjb250YWluZXJFbCwgcGFyYW1zLmNvbnRhaW5lck1lc3NhZ2UpO1xuICAgIH0gLy8gV3JhcHBlclxuXG5cbiAgICBjb25zdCAkd3JhcHBlckVsID0gc3dpcGVyLiR3cmFwcGVyRWw7XG4gICAgY29uc3Qgd3JhcHBlcklkID0gJHdyYXBwZXJFbC5hdHRyKCdpZCcpIHx8IGBzd2lwZXItd3JhcHBlci0ke2dldFJhbmRvbU51bWJlcigxNil9YDtcbiAgICBjb25zdCBsaXZlID0gc3dpcGVyLnBhcmFtcy5hdXRvcGxheSAmJiBzd2lwZXIucGFyYW1zLmF1dG9wbGF5LmVuYWJsZWQgPyAnb2ZmJyA6ICdwb2xpdGUnO1xuICAgIGFkZEVsSWQoJHdyYXBwZXJFbCwgd3JhcHBlcklkKTtcbiAgICBhZGRFbExpdmUoJHdyYXBwZXJFbCwgbGl2ZSk7IC8vIFNsaWRlXG5cbiAgICBpZiAocGFyYW1zLml0ZW1Sb2xlRGVzY3JpcHRpb25NZXNzYWdlKSB7XG4gICAgICBhZGRFbFJvbGVEZXNjcmlwdGlvbigkKHN3aXBlci5zbGlkZXMpLCBwYXJhbXMuaXRlbVJvbGVEZXNjcmlwdGlvbk1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGFkZEVsUm9sZSgkKHN3aXBlci5zbGlkZXMpLCBwYXJhbXMuc2xpZGVSb2xlKTtcbiAgICBjb25zdCBzbGlkZXNMZW5ndGggPSBzd2lwZXIucGFyYW1zLmxvb3AgPyBzd2lwZXIuc2xpZGVzLmZpbHRlcihlbCA9PiAhZWwuY2xhc3NMaXN0LmNvbnRhaW5zKHN3aXBlci5wYXJhbXMuc2xpZGVEdXBsaWNhdGVDbGFzcykpLmxlbmd0aCA6IHN3aXBlci5zbGlkZXMubGVuZ3RoO1xuICAgIHN3aXBlci5zbGlkZXMuZWFjaCgoc2xpZGVFbCwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0ICRzbGlkZUVsID0gJChzbGlkZUVsKTtcbiAgICAgIGNvbnN0IHNsaWRlSW5kZXggPSBzd2lwZXIucGFyYW1zLmxvb3AgPyBwYXJzZUludCgkc2xpZGVFbC5hdHRyKCdkYXRhLXN3aXBlci1zbGlkZS1pbmRleCcpLCAxMCkgOiBpbmRleDtcbiAgICAgIGNvbnN0IGFyaWFMYWJlbE1lc3NhZ2UgPSBwYXJhbXMuc2xpZGVMYWJlbE1lc3NhZ2UucmVwbGFjZSgvXFx7XFx7aW5kZXhcXH1cXH0vLCBzbGlkZUluZGV4ICsgMSkucmVwbGFjZSgvXFx7XFx7c2xpZGVzTGVuZ3RoXFx9XFx9Lywgc2xpZGVzTGVuZ3RoKTtcbiAgICAgIGFkZEVsTGFiZWwoJHNsaWRlRWwsIGFyaWFMYWJlbE1lc3NhZ2UpO1xuICAgIH0pOyAvLyBOYXZpZ2F0aW9uXG5cbiAgICBsZXQgJG5leHRFbDtcbiAgICBsZXQgJHByZXZFbDtcblxuICAgIGlmIChzd2lwZXIubmF2aWdhdGlvbiAmJiBzd2lwZXIubmF2aWdhdGlvbi4kbmV4dEVsKSB7XG4gICAgICAkbmV4dEVsID0gc3dpcGVyLm5hdmlnYXRpb24uJG5leHRFbDtcbiAgICB9XG5cbiAgICBpZiAoc3dpcGVyLm5hdmlnYXRpb24gJiYgc3dpcGVyLm5hdmlnYXRpb24uJHByZXZFbCkge1xuICAgICAgJHByZXZFbCA9IHN3aXBlci5uYXZpZ2F0aW9uLiRwcmV2RWw7XG4gICAgfVxuXG4gICAgaWYgKCRuZXh0RWwgJiYgJG5leHRFbC5sZW5ndGgpIHtcbiAgICAgIGluaXROYXZFbCgkbmV4dEVsLCB3cmFwcGVySWQsIHBhcmFtcy5uZXh0U2xpZGVNZXNzYWdlKTtcbiAgICB9XG5cbiAgICBpZiAoJHByZXZFbCAmJiAkcHJldkVsLmxlbmd0aCkge1xuICAgICAgaW5pdE5hdkVsKCRwcmV2RWwsIHdyYXBwZXJJZCwgcGFyYW1zLnByZXZTbGlkZU1lc3NhZ2UpO1xuICAgIH0gLy8gUGFnaW5hdGlvblxuXG5cbiAgICBpZiAoaGFzUGFnaW5hdGlvbigpKSB7XG4gICAgICBzd2lwZXIucGFnaW5hdGlvbi4kZWwub24oJ2tleWRvd24nLCBjbGFzc2VzVG9TZWxlY3Rvcihzd2lwZXIucGFyYW1zLnBhZ2luYXRpb24uYnVsbGV0Q2xhc3MpLCBvbkVudGVyT3JTcGFjZUtleSk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gZGVzdHJveSgpIHtcbiAgICBpZiAobGl2ZVJlZ2lvbiAmJiBsaXZlUmVnaW9uLmxlbmd0aCA+IDApIGxpdmVSZWdpb24ucmVtb3ZlKCk7XG4gICAgbGV0ICRuZXh0RWw7XG4gICAgbGV0ICRwcmV2RWw7XG5cbiAgICBpZiAoc3dpcGVyLm5hdmlnYXRpb24gJiYgc3dpcGVyLm5hdmlnYXRpb24uJG5leHRFbCkge1xuICAgICAgJG5leHRFbCA9IHN3aXBlci5uYXZpZ2F0aW9uLiRuZXh0RWw7XG4gICAgfVxuXG4gICAgaWYgKHN3aXBlci5uYXZpZ2F0aW9uICYmIHN3aXBlci5uYXZpZ2F0aW9uLiRwcmV2RWwpIHtcbiAgICAgICRwcmV2RWwgPSBzd2lwZXIubmF2aWdhdGlvbi4kcHJldkVsO1xuICAgIH1cblxuICAgIGlmICgkbmV4dEVsKSB7XG4gICAgICAkbmV4dEVsLm9mZigna2V5ZG93bicsIG9uRW50ZXJPclNwYWNlS2V5KTtcbiAgICB9XG5cbiAgICBpZiAoJHByZXZFbCkge1xuICAgICAgJHByZXZFbC5vZmYoJ2tleWRvd24nLCBvbkVudGVyT3JTcGFjZUtleSk7XG4gICAgfSAvLyBQYWdpbmF0aW9uXG5cblxuICAgIGlmIChoYXNQYWdpbmF0aW9uKCkpIHtcbiAgICAgIHN3aXBlci5wYWdpbmF0aW9uLiRlbC5vZmYoJ2tleWRvd24nLCBjbGFzc2VzVG9TZWxlY3Rvcihzd2lwZXIucGFyYW1zLnBhZ2luYXRpb24uYnVsbGV0Q2xhc3MpLCBvbkVudGVyT3JTcGFjZUtleSk7XG4gICAgfVxuICB9XG5cbiAgb24oJ2JlZm9yZUluaXQnLCAoKSA9PiB7XG4gICAgbGl2ZVJlZ2lvbiA9ICQoYDxzcGFuIGNsYXNzPVwiJHtzd2lwZXIucGFyYW1zLmExMXkubm90aWZpY2F0aW9uQ2xhc3N9XCIgYXJpYS1saXZlPVwiYXNzZXJ0aXZlXCIgYXJpYS1hdG9taWM9XCJ0cnVlXCI+PC9zcGFuPmApO1xuICB9KTtcbiAgb24oJ2FmdGVySW5pdCcsICgpID0+IHtcbiAgICBpZiAoIXN3aXBlci5wYXJhbXMuYTExeS5lbmFibGVkKSByZXR1cm47XG4gICAgaW5pdCgpO1xuICAgIHVwZGF0ZU5hdmlnYXRpb24oKTtcbiAgfSk7XG4gIG9uKCd0b0VkZ2UnLCAoKSA9PiB7XG4gICAgaWYgKCFzd2lwZXIucGFyYW1zLmExMXkuZW5hYmxlZCkgcmV0dXJuO1xuICAgIHVwZGF0ZU5hdmlnYXRpb24oKTtcbiAgfSk7XG4gIG9uKCdmcm9tRWRnZScsICgpID0+IHtcbiAgICBpZiAoIXN3aXBlci5wYXJhbXMuYTExeS5lbmFibGVkKSByZXR1cm47XG4gICAgdXBkYXRlTmF2aWdhdGlvbigpO1xuICB9KTtcbiAgb24oJ3BhZ2luYXRpb25VcGRhdGUnLCAoKSA9PiB7XG4gICAgaWYgKCFzd2lwZXIucGFyYW1zLmExMXkuZW5hYmxlZCkgcmV0dXJuO1xuICAgIHVwZGF0ZVBhZ2luYXRpb24oKTtcbiAgfSk7XG4gIG9uKCdkZXN0cm95JywgKCkgPT4ge1xuICAgIGlmICghc3dpcGVyLnBhcmFtcy5hMTF5LmVuYWJsZWQpIHJldHVybjtcbiAgICBkZXN0cm95KCk7XG4gIH0pO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/swiper/modules/a11y/a11y.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/modules/autoplay/autoplay.js": +/*!**********************************************************!*\ + !*** ./node_modules/swiper/modules/autoplay/autoplay.js ***! + \**********************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ Autoplay; }\n/* harmony export */ });\n/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ \"./node_modules/ssr-window/ssr-window.esm.js\");\n/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/utils.js */ \"./node_modules/swiper/shared/utils.js\");\n/* eslint no-underscore-dangle: \"off\" */\n\n/* eslint no-use-before-define: \"off\" */\n\n\nfunction Autoplay({\n swiper,\n extendParams,\n on,\n emit\n}) {\n let timeout;\n swiper.autoplay = {\n running: false,\n paused: false\n };\n extendParams({\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n });\n\n function run() {\n const $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n let delay = swiper.params.autoplay.delay;\n\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n\n clearTimeout(timeout);\n timeout = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.nextTick)(() => {\n let autoplayResult;\n\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.isBeginning) {\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n emit('autoplay');\n } else {\n stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.isEnd) {\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);\n emit('autoplay');\n } else {\n stop();\n }\n\n if (swiper.params.cssMode && swiper.autoplay.running) run();else if (autoplayResult === false) {\n run();\n }\n }, delay);\n }\n\n function start() {\n if (typeof timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n emit('autoplayStart');\n run();\n return true;\n }\n\n function stop() {\n if (!swiper.autoplay.running) return false;\n if (typeof timeout === 'undefined') return false;\n\n if (timeout) {\n clearTimeout(timeout);\n timeout = undefined;\n }\n\n swiper.autoplay.running = false;\n emit('autoplayStop');\n return true;\n }\n\n function pause(speed) {\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (timeout) clearTimeout(timeout);\n swiper.autoplay.paused = true;\n\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n run();\n } else {\n ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n swiper.$wrapperEl[0].addEventListener(event, onTransitionEnd);\n });\n }\n }\n\n function onVisibilityChange() {\n const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)();\n\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n pause();\n }\n\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n run();\n swiper.autoplay.paused = false;\n }\n }\n\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== swiper.$wrapperEl[0]) return;\n ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\n });\n swiper.autoplay.paused = false;\n\n if (!swiper.autoplay.running) {\n stop();\n } else {\n run();\n }\n }\n\n function onMouseEnter() {\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n } else {\n pause();\n }\n\n ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\n });\n }\n\n function onMouseLeave() {\n if (swiper.params.autoplay.disableOnInteraction) {\n return;\n }\n\n swiper.autoplay.paused = false;\n run();\n }\n\n function attachMouseEvents() {\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.$el.on('mouseenter', onMouseEnter);\n swiper.$el.on('mouseleave', onMouseLeave);\n }\n }\n\n function detachMouseEvents() {\n swiper.$el.off('mouseenter', onMouseEnter);\n swiper.$el.off('mouseleave', onMouseLeave);\n }\n\n on('init', () => {\n if (swiper.params.autoplay.enabled) {\n start();\n const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)();\n document.addEventListener('visibilitychange', onVisibilityChange);\n attachMouseEvents();\n }\n });\n on('beforeTransitionStart', (_s, speed, internal) => {\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n stop();\n }\n }\n });\n on('sliderFirstMove', () => {\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n } else {\n pause();\n }\n }\n });\n on('touchEnd', () => {\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n run();\n }\n });\n on('destroy', () => {\n detachMouseEvents();\n\n if (swiper.autoplay.running) {\n stop();\n }\n\n const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n });\n Object.assign(swiper.autoplay, {\n pause,\n run,\n start,\n stop\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMvYXV0b3BsYXkvYXV0b3BsYXkuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7O0FBRUE7QUFDeUM7QUFDUTtBQUNsQztBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGNBQWMsMERBQVE7QUFDdEI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7O0FBRUEsa0VBQWtFO0FBQ2xFO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBOztBQUVBO0FBQ0EscUJBQXFCLHVEQUFXOztBQUVoQztBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBOztBQUVBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIsdURBQVc7QUFDbEM7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEscUJBQXFCLHVEQUFXO0FBQ2hDO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N3aXBlci9tb2R1bGVzL2F1dG9wbGF5L2F1dG9wbGF5LmpzP2JiYzMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50IG5vLXVuZGVyc2NvcmUtZGFuZ2xlOiBcIm9mZlwiICovXG5cbi8qIGVzbGludCBuby11c2UtYmVmb3JlLWRlZmluZTogXCJvZmZcIiAqL1xuaW1wb3J0IHsgZ2V0RG9jdW1lbnQgfSBmcm9tICdzc3Itd2luZG93JztcbmltcG9ydCB7IG5leHRUaWNrIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3V0aWxzLmpzJztcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEF1dG9wbGF5KHtcbiAgc3dpcGVyLFxuICBleHRlbmRQYXJhbXMsXG4gIG9uLFxuICBlbWl0XG59KSB7XG4gIGxldCB0aW1lb3V0O1xuICBzd2lwZXIuYXV0b3BsYXkgPSB7XG4gICAgcnVubmluZzogZmFsc2UsXG4gICAgcGF1c2VkOiBmYWxzZVxuICB9O1xuICBleHRlbmRQYXJhbXMoe1xuICAgIGF1dG9wbGF5OiB7XG4gICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgIGRlbGF5OiAzMDAwLFxuICAgICAgd2FpdEZvclRyYW5zaXRpb246IHRydWUsXG4gICAgICBkaXNhYmxlT25JbnRlcmFjdGlvbjogdHJ1ZSxcbiAgICAgIHN0b3BPbkxhc3RTbGlkZTogZmFsc2UsXG4gICAgICByZXZlcnNlRGlyZWN0aW9uOiBmYWxzZSxcbiAgICAgIHBhdXNlT25Nb3VzZUVudGVyOiBmYWxzZVxuICAgIH1cbiAgfSk7XG5cbiAgZnVuY3Rpb24gcnVuKCkge1xuICAgIGNvbnN0ICRhY3RpdmVTbGlkZUVsID0gc3dpcGVyLnNsaWRlcy5lcShzd2lwZXIuYWN0aXZlSW5kZXgpO1xuICAgIGxldCBkZWxheSA9IHN3aXBlci5wYXJhbXMuYXV0b3BsYXkuZGVsYXk7XG5cbiAgICBpZiAoJGFjdGl2ZVNsaWRlRWwuYXR0cignZGF0YS1zd2lwZXItYXV0b3BsYXknKSkge1xuICAgICAgZGVsYXkgPSAkYWN0aXZlU2xpZGVFbC5hdHRyKCdkYXRhLXN3aXBlci1hdXRvcGxheScpIHx8IHN3aXBlci5wYXJhbXMuYXV0b3BsYXkuZGVsYXk7XG4gICAgfVxuXG4gICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xuICAgIHRpbWVvdXQgPSBuZXh0VGljaygoKSA9PiB7XG4gICAgICBsZXQgYXV0b3BsYXlSZXN1bHQ7XG5cbiAgICAgIGlmIChzd2lwZXIucGFyYW1zLmF1dG9wbGF5LnJldmVyc2VEaXJlY3Rpb24pIHtcbiAgICAgICAgaWYgKHN3aXBlci5wYXJhbXMubG9vcCkge1xuICAgICAgICAgIHN3aXBlci5sb29wRml4KCk7XG4gICAgICAgICAgYXV0b3BsYXlSZXN1bHQgPSBzd2lwZXIuc2xpZGVQcmV2KHN3aXBlci5wYXJhbXMuc3BlZWQsIHRydWUsIHRydWUpO1xuICAgICAgICAgIGVtaXQoJ2F1dG9wbGF5Jyk7XG4gICAgICAgIH0gZWxzZSBpZiAoIXN3aXBlci5pc0JlZ2lubmluZykge1xuICAgICAgICAgIGF1dG9wbGF5UmVzdWx0ID0gc3dpcGVyLnNsaWRlUHJldihzd2lwZXIucGFyYW1zLnNwZWVkLCB0cnVlLCB0cnVlKTtcbiAgICAgICAgICBlbWl0KCdhdXRvcGxheScpO1xuICAgICAgICB9IGVsc2UgaWYgKCFzd2lwZXIucGFyYW1zLmF1dG9wbGF5LnN0b3BPbkxhc3RTbGlkZSkge1xuICAgICAgICAgIGF1dG9wbGF5UmVzdWx0ID0gc3dpcGVyLnNsaWRlVG8oc3dpcGVyLnNsaWRlcy5sZW5ndGggLSAxLCBzd2lwZXIucGFyYW1zLnNwZWVkLCB0cnVlLCB0cnVlKTtcbiAgICAgICAgICBlbWl0KCdhdXRvcGxheScpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN0b3AoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChzd2lwZXIucGFyYW1zLmxvb3ApIHtcbiAgICAgICAgc3dpcGVyLmxvb3BGaXgoKTtcbiAgICAgICAgYXV0b3BsYXlSZXN1bHQgPSBzd2lwZXIuc2xpZGVOZXh0KHN3aXBlci5wYXJhbXMuc3BlZWQsIHRydWUsIHRydWUpO1xuICAgICAgICBlbWl0KCdhdXRvcGxheScpO1xuICAgICAgfSBlbHNlIGlmICghc3dpcGVyLmlzRW5kKSB7XG4gICAgICAgIGF1dG9wbGF5UmVzdWx0ID0gc3dpcGVyLnNsaWRlTmV4dChzd2lwZXIucGFyYW1zLnNwZWVkLCB0cnVlLCB0cnVlKTtcbiAgICAgICAgZW1pdCgnYXV0b3BsYXknKTtcbiAgICAgIH0gZWxzZSBpZiAoIXN3aXBlci5wYXJhbXMuYXV0b3BsYXkuc3RvcE9uTGFzdFNsaWRlKSB7XG4gICAgICAgIGF1dG9wbGF5UmVzdWx0ID0gc3dpcGVyLnNsaWRlVG8oMCwgc3dpcGVyLnBhcmFtcy5zcGVlZCwgdHJ1ZSwgdHJ1ZSk7XG4gICAgICAgIGVtaXQoJ2F1dG9wbGF5Jyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdG9wKCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChzd2lwZXIucGFyYW1zLmNzc01vZGUgJiYgc3dpcGVyLmF1dG9wbGF5LnJ1bm5pbmcpIHJ1bigpO2Vsc2UgaWYgKGF1dG9wbGF5UmVzdWx0ID09PSBmYWxzZSkge1xuICAgICAgICBydW4oKTtcbiAgICAgIH1cbiAgICB9LCBkZWxheSk7XG4gIH1cblxuICBmdW5jdGlvbiBzdGFydCgpIHtcbiAgICBpZiAodHlwZW9mIHRpbWVvdXQgIT09ICd1bmRlZmluZWQnKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKHN3aXBlci5hdXRvcGxheS5ydW5uaW5nKSByZXR1cm4gZmFsc2U7XG4gICAgc3dpcGVyLmF1dG9wbGF5LnJ1bm5pbmcgPSB0cnVlO1xuICAgIGVtaXQoJ2F1dG9wbGF5U3RhcnQnKTtcbiAgICBydW4oKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHN0b3AoKSB7XG4gICAgaWYgKCFzd2lwZXIuYXV0b3BsYXkucnVubmluZykgcmV0dXJuIGZhbHNlO1xuICAgIGlmICh0eXBlb2YgdGltZW91dCA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybiBmYWxzZTtcblxuICAgIGlmICh0aW1lb3V0KSB7XG4gICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XG4gICAgICB0aW1lb3V0ID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHN3aXBlci5hdXRvcGxheS5ydW5uaW5nID0gZmFsc2U7XG4gICAgZW1pdCgnYXV0b3BsYXlTdG9wJyk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBmdW5jdGlvbiBwYXVzZShzcGVlZCkge1xuICAgIGlmICghc3dpcGVyLmF1dG9wbGF5LnJ1bm5pbmcpIHJldHVybjtcbiAgICBpZiAoc3dpcGVyLmF1dG9wbGF5LnBhdXNlZCkgcmV0dXJuO1xuICAgIGlmICh0aW1lb3V0KSBjbGVhclRpbWVvdXQodGltZW91dCk7XG4gICAgc3dpcGVyLmF1dG9wbGF5LnBhdXNlZCA9IHRydWU7XG5cbiAgICBpZiAoc3BlZWQgPT09IDAgfHwgIXN3aXBlci5wYXJhbXMuYXV0b3BsYXkud2FpdEZvclRyYW5zaXRpb24pIHtcbiAgICAgIHN3aXBlci5hdXRvcGxheS5wYXVzZWQgPSBmYWxzZTtcbiAgICAgIHJ1bigpO1xuICAgIH0gZWxzZSB7XG4gICAgICBbJ3RyYW5zaXRpb25lbmQnLCAnd2Via2l0VHJhbnNpdGlvbkVuZCddLmZvckVhY2goZXZlbnQgPT4ge1xuICAgICAgICBzd2lwZXIuJHdyYXBwZXJFbFswXS5hZGRFdmVudExpc3RlbmVyKGV2ZW50LCBvblRyYW5zaXRpb25FbmQpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gb25WaXNpYmlsaXR5Q2hhbmdlKCkge1xuICAgIGNvbnN0IGRvY3VtZW50ID0gZ2V0RG9jdW1lbnQoKTtcblxuICAgIGlmIChkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgPT09ICdoaWRkZW4nICYmIHN3aXBlci5hdXRvcGxheS5ydW5uaW5nKSB7XG4gICAgICBwYXVzZSgpO1xuICAgIH1cblxuICAgIGlmIChkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgPT09ICd2aXNpYmxlJyAmJiBzd2lwZXIuYXV0b3BsYXkucGF1c2VkKSB7XG4gICAgICBydW4oKTtcbiAgICAgIHN3aXBlci5hdXRvcGxheS5wYXVzZWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBvblRyYW5zaXRpb25FbmQoZSkge1xuICAgIGlmICghc3dpcGVyIHx8IHN3aXBlci5kZXN0cm95ZWQgfHwgIXN3aXBlci4kd3JhcHBlckVsKSByZXR1cm47XG4gICAgaWYgKGUudGFyZ2V0ICE9PSBzd2lwZXIuJHdyYXBwZXJFbFswXSkgcmV0dXJuO1xuICAgIFsndHJhbnNpdGlvbmVuZCcsICd3ZWJraXRUcmFuc2l0aW9uRW5kJ10uZm9yRWFjaChldmVudCA9PiB7XG4gICAgICBzd2lwZXIuJHdyYXBwZXJFbFswXS5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50LCBvblRyYW5zaXRpb25FbmQpO1xuICAgIH0pO1xuICAgIHN3aXBlci5hdXRvcGxheS5wYXVzZWQgPSBmYWxzZTtcblxuICAgIGlmICghc3dpcGVyLmF1dG9wbGF5LnJ1bm5pbmcpIHtcbiAgICAgIHN0b3AoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcnVuKCk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gb25Nb3VzZUVudGVyKCkge1xuICAgIGlmIChzd2lwZXIucGFyYW1zLmF1dG9wbGF5LmRpc2FibGVPbkludGVyYWN0aW9uKSB7XG4gICAgICBzdG9wKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhdXNlKCk7XG4gICAgfVxuXG4gICAgWyd0cmFuc2l0aW9uZW5kJywgJ3dlYmtpdFRyYW5zaXRpb25FbmQnXS5mb3JFYWNoKGV2ZW50ID0+IHtcbiAgICAgIHN3aXBlci4kd3JhcHBlckVsWzBdLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnQsIG9uVHJhbnNpdGlvbkVuZCk7XG4gICAgfSk7XG4gIH1cblxuICBmdW5jdGlvbiBvbk1vdXNlTGVhdmUoKSB7XG4gICAgaWYgKHN3aXBlci5wYXJhbXMuYXV0b3BsYXkuZGlzYWJsZU9uSW50ZXJhY3Rpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzd2lwZXIuYXV0b3BsYXkucGF1c2VkID0gZmFsc2U7XG4gICAgcnVuKCk7XG4gIH1cblxuICBmdW5jdGlvbiBhdHRhY2hNb3VzZUV2ZW50cygpIHtcbiAgICBpZiAoc3dpcGVyLnBhcmFtcy5hdXRvcGxheS5wYXVzZU9uTW91c2VFbnRlcikge1xuICAgICAgc3dpcGVyLiRlbC5vbignbW91c2VlbnRlcicsIG9uTW91c2VFbnRlcik7XG4gICAgICBzd2lwZXIuJGVsLm9uKCdtb3VzZWxlYXZlJywgb25Nb3VzZUxlYXZlKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBkZXRhY2hNb3VzZUV2ZW50cygpIHtcbiAgICBzd2lwZXIuJGVsLm9mZignbW91c2VlbnRlcicsIG9uTW91c2VFbnRlcik7XG4gICAgc3dpcGVyLiRlbC5vZmYoJ21vdXNlbGVhdmUnLCBvbk1vdXNlTGVhdmUpO1xuICB9XG5cbiAgb24oJ2luaXQnLCAoKSA9PiB7XG4gICAgaWYgKHN3aXBlci5wYXJhbXMuYXV0b3BsYXkuZW5hYmxlZCkge1xuICAgICAgc3RhcnQoKTtcbiAgICAgIGNvbnN0IGRvY3VtZW50ID0gZ2V0RG9jdW1lbnQoKTtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Zpc2liaWxpdHljaGFuZ2UnLCBvblZpc2liaWxpdHlDaGFuZ2UpO1xuICAgICAgYXR0YWNoTW91c2VFdmVudHMoKTtcbiAgICB9XG4gIH0pO1xuICBvbignYmVmb3JlVHJhbnNpdGlvblN0YXJ0JywgKF9zLCBzcGVlZCwgaW50ZXJuYWwpID0+IHtcbiAgICBpZiAoc3dpcGVyLmF1dG9wbGF5LnJ1bm5pbmcpIHtcbiAgICAgIGlmIChpbnRlcm5hbCB8fCAhc3dpcGVyLnBhcmFtcy5hdXRvcGxheS5kaXNhYmxlT25JbnRlcmFjdGlvbikge1xuICAgICAgICBzd2lwZXIuYXV0b3BsYXkucGF1c2Uoc3BlZWQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3RvcCgpO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG4gIG9uKCdzbGlkZXJGaXJzdE1vdmUnLCAoKSA9PiB7XG4gICAgaWYgKHN3aXBlci5hdXRvcGxheS5ydW5uaW5nKSB7XG4gICAgICBpZiAoc3dpcGVyLnBhcmFtcy5hdXRvcGxheS5kaXNhYmxlT25JbnRlcmFjdGlvbikge1xuICAgICAgICBzdG9wKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwYXVzZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG4gIG9uKCd0b3VjaEVuZCcsICgpID0+IHtcbiAgICBpZiAoc3dpcGVyLnBhcmFtcy5jc3NNb2RlICYmIHN3aXBlci5hdXRvcGxheS5wYXVzZWQgJiYgIXN3aXBlci5wYXJhbXMuYXV0b3BsYXkuZGlzYWJsZU9uSW50ZXJhY3Rpb24pIHtcbiAgICAgIHJ1bigpO1xuICAgIH1cbiAgfSk7XG4gIG9uKCdkZXN0cm95JywgKCkgPT4ge1xuICAgIGRldGFjaE1vdXNlRXZlbnRzKCk7XG5cbiAgICBpZiAoc3dpcGVyLmF1dG9wbGF5LnJ1bm5pbmcpIHtcbiAgICAgIHN0b3AoKTtcbiAgICB9XG5cbiAgICBjb25zdCBkb2N1bWVudCA9IGdldERvY3VtZW50KCk7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndmlzaWJpbGl0eWNoYW5nZScsIG9uVmlzaWJpbGl0eUNoYW5nZSk7XG4gIH0pO1xuICBPYmplY3QuYXNzaWduKHN3aXBlci5hdXRvcGxheSwge1xuICAgIHBhdXNlLFxuICAgIHJ1bixcbiAgICBzdGFydCxcbiAgICBzdG9wXG4gIH0pO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/swiper/modules/autoplay/autoplay.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/modules/controller/controller.js": +/*!**************************************************************!*\ + !*** ./node_modules/swiper/modules/controller/controller.js ***! + \**************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ Controller; }\n/* harmony export */ });\n/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ \"./node_modules/swiper/shared/utils.js\");\n/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\n\nfunction Controller({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide' // or 'container'\n\n }\n });\n swiper.controller = {\n control: undefined\n };\n\n function LinearSpline(x, y) {\n const binarySearch = function search() {\n let maxIndex;\n let minIndex;\n let guess;\n return (array, val) => {\n minIndex = -1;\n maxIndex = array.length;\n\n while (maxIndex - minIndex > 1) {\n guess = maxIndex + minIndex >> 1;\n\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n\n return maxIndex;\n };\n }();\n\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1; // Given an x value (x2), return the expected y2 value:\n // (x1,y1) is the known point before given value,\n // (x3,y3) is the known point after given value.\n\n let i1;\n let i3;\n\n this.interpolate = function interpolate(x2) {\n if (!x2) return 0; // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1; // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n\n return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];\n };\n\n return this;\n } // xxx: for now i will just save one spline function to to\n\n\n function getInterpolateFunction(c) {\n if (!swiper.controller.spline) {\n swiper.controller.spline = swiper.params.loop ? new LinearSpline(swiper.slidesGrid, c.slidesGrid) : new LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n }\n\n function setTranslate(_t, byController) {\n const controlled = swiper.controller.control;\n let multiplier;\n let controlledTranslate;\n const Swiper = swiper.constructor;\n\n function setControlledTranslate(c) {\n // this will create an Interpolate function based on the snapGrids\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\n // it makes sense to create this only once and recall it for the interpolation\n // the function does a lot of value caching for performance\n const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n\n if (swiper.params.controller.by === 'slide') {\n getInterpolateFunction(c); // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n // but it did not work out\n\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n }\n\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\n multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();\n }\n\n if (swiper.params.controller.inverse) {\n controlledTranslate = c.maxTranslate() - controlledTranslate;\n }\n\n c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n\n if (Array.isArray(controlled)) {\n for (let i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTranslate(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTranslate(controlled);\n }\n }\n\n function setTransition(duration, byController) {\n const Swiper = swiper.constructor;\n const controlled = swiper.controller.control;\n let i;\n\n function setControlledTransition(c) {\n c.setTransition(duration, swiper);\n\n if (duration !== 0) {\n c.transitionStart();\n\n if (c.params.autoHeight) {\n (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.nextTick)(() => {\n c.updateAutoHeight();\n });\n }\n\n c.$wrapperEl.transitionEnd(() => {\n if (!controlled) return;\n\n if (c.params.loop && swiper.params.controller.by === 'slide') {\n c.loopFix();\n }\n\n c.transitionEnd();\n });\n }\n }\n\n if (Array.isArray(controlled)) {\n for (i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTransition(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTransition(controlled);\n }\n }\n\n function removeSpline() {\n if (!swiper.controller.control) return;\n\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n }\n\n on('beforeInit', () => {\n swiper.controller.control = swiper.params.controller.control;\n });\n on('update', () => {\n removeSpline();\n });\n on('resize', () => {\n removeSpline();\n });\n on('observerUpdate', () => {\n removeSpline();\n });\n on('setTranslate', (_s, translate, byController) => {\n if (!swiper.controller.control) return;\n swiper.controller.setTranslate(translate, byController);\n });\n on('setTransition', (_s, duration, byController) => {\n if (!swiper.controller.control) return;\n swiper.controller.setTransition(duration, byController);\n });\n Object.assign(swiper.controller, {\n setTranslate,\n setTransition\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMvY29udHJvbGxlci9jb250cm9sbGVyLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsa0NBQWtDLGlCQUFpQjtBQUNGO0FBQ2xDO0FBQ2Y7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0EsbUNBQW1DO0FBQ25DO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLHlCQUF5Qjs7QUFFekI7QUFDQSxtQkFBbUI7QUFDbkI7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLElBQUk7OztBQUdKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxtQ0FBbUM7QUFDbkM7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHNCQUFzQix1QkFBdUI7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLFVBQVUsMERBQVE7QUFDbEI7QUFDQSxXQUFXO0FBQ1g7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxTQUFTO0FBQ1Q7QUFDQTs7QUFFQTtBQUNBLGtCQUFrQix1QkFBdUI7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zd2lwZXIvbW9kdWxlcy9jb250cm9sbGVyL2NvbnRyb2xsZXIuanM/M2I4MiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQgbm8tYml0d2lzZTogW1wiZXJyb3JcIiwgeyBcImFsbG93XCI6IFtcIj4+XCJdIH1dICovXG5pbXBvcnQgeyBuZXh0VGljayB9IGZyb20gJy4uLy4uL3NoYXJlZC91dGlscy5qcyc7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBDb250cm9sbGVyKHtcbiAgc3dpcGVyLFxuICBleHRlbmRQYXJhbXMsXG4gIG9uXG59KSB7XG4gIGV4dGVuZFBhcmFtcyh7XG4gICAgY29udHJvbGxlcjoge1xuICAgICAgY29udHJvbDogdW5kZWZpbmVkLFxuICAgICAgaW52ZXJzZTogZmFsc2UsXG4gICAgICBieTogJ3NsaWRlJyAvLyBvciAnY29udGFpbmVyJ1xuXG4gICAgfVxuICB9KTtcbiAgc3dpcGVyLmNvbnRyb2xsZXIgPSB7XG4gICAgY29udHJvbDogdW5kZWZpbmVkXG4gIH07XG5cbiAgZnVuY3Rpb24gTGluZWFyU3BsaW5lKHgsIHkpIHtcbiAgICBjb25zdCBiaW5hcnlTZWFyY2ggPSBmdW5jdGlvbiBzZWFyY2goKSB7XG4gICAgICBsZXQgbWF4SW5kZXg7XG4gICAgICBsZXQgbWluSW5kZXg7XG4gICAgICBsZXQgZ3Vlc3M7XG4gICAgICByZXR1cm4gKGFycmF5LCB2YWwpID0+IHtcbiAgICAgICAgbWluSW5kZXggPSAtMTtcbiAgICAgICAgbWF4SW5kZXggPSBhcnJheS5sZW5ndGg7XG5cbiAgICAgICAgd2hpbGUgKG1heEluZGV4IC0gbWluSW5kZXggPiAxKSB7XG4gICAgICAgICAgZ3Vlc3MgPSBtYXhJbmRleCArIG1pbkluZGV4ID4+IDE7XG5cbiAgICAgICAgICBpZiAoYXJyYXlbZ3Vlc3NdIDw9IHZhbCkge1xuICAgICAgICAgICAgbWluSW5kZXggPSBndWVzcztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbWF4SW5kZXggPSBndWVzcztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbWF4SW5kZXg7XG4gICAgICB9O1xuICAgIH0oKTtcblxuICAgIHRoaXMueCA9IHg7XG4gICAgdGhpcy55ID0geTtcbiAgICB0aGlzLmxhc3RJbmRleCA9IHgubGVuZ3RoIC0gMTsgLy8gR2l2ZW4gYW4geCB2YWx1ZSAoeDIpLCByZXR1cm4gdGhlIGV4cGVjdGVkIHkyIHZhbHVlOlxuICAgIC8vICh4MSx5MSkgaXMgdGhlIGtub3duIHBvaW50IGJlZm9yZSBnaXZlbiB2YWx1ZSxcbiAgICAvLyAoeDMseTMpIGlzIHRoZSBrbm93biBwb2ludCBhZnRlciBnaXZlbiB2YWx1ZS5cblxuICAgIGxldCBpMTtcbiAgICBsZXQgaTM7XG5cbiAgICB0aGlzLmludGVycG9sYXRlID0gZnVuY3Rpb24gaW50ZXJwb2xhdGUoeDIpIHtcbiAgICAgIGlmICgheDIpIHJldHVybiAwOyAvLyBHZXQgdGhlIGluZGV4ZXMgb2YgeDEgYW5kIHgzICh0aGUgYXJyYXkgaW5kZXhlcyBiZWZvcmUgYW5kIGFmdGVyIGdpdmVuIHgyKTpcblxuICAgICAgaTMgPSBiaW5hcnlTZWFyY2godGhpcy54LCB4Mik7XG4gICAgICBpMSA9IGkzIC0gMTsgLy8gV2UgaGF2ZSBvdXIgaW5kZXhlcyBpMSAmIGkzLCBzbyB3ZSBjYW4gY2FsY3VsYXRlIGFscmVhZHk6XG4gICAgICAvLyB5MiA6PSAoKHgy4oiSeDEpIMOXICh5M+KIknkxKSkgw7cgKHgz4oiSeDEpICsgeTFcblxuICAgICAgcmV0dXJuICh4MiAtIHRoaXMueFtpMV0pICogKHRoaXMueVtpM10gLSB0aGlzLnlbaTFdKSAvICh0aGlzLnhbaTNdIC0gdGhpcy54W2kxXSkgKyB0aGlzLnlbaTFdO1xuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfSAvLyB4eHg6IGZvciBub3cgaSB3aWxsIGp1c3Qgc2F2ZSBvbmUgc3BsaW5lIGZ1bmN0aW9uIHRvIHRvXG5cblxuICBmdW5jdGlvbiBnZXRJbnRlcnBvbGF0ZUZ1bmN0aW9uKGMpIHtcbiAgICBpZiAoIXN3aXBlci5jb250cm9sbGVyLnNwbGluZSkge1xuICAgICAgc3dpcGVyLmNvbnRyb2xsZXIuc3BsaW5lID0gc3dpcGVyLnBhcmFtcy5sb29wID8gbmV3IExpbmVhclNwbGluZShzd2lwZXIuc2xpZGVzR3JpZCwgYy5zbGlkZXNHcmlkKSA6IG5ldyBMaW5lYXJTcGxpbmUoc3dpcGVyLnNuYXBHcmlkLCBjLnNuYXBHcmlkKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBzZXRUcmFuc2xhdGUoX3QsIGJ5Q29udHJvbGxlcikge1xuICAgIGNvbnN0IGNvbnRyb2xsZWQgPSBzd2lwZXIuY29udHJvbGxlci5jb250cm9sO1xuICAgIGxldCBtdWx0aXBsaWVyO1xuICAgIGxldCBjb250cm9sbGVkVHJhbnNsYXRlO1xuICAgIGNvbnN0IFN3aXBlciA9IHN3aXBlci5jb25zdHJ1Y3RvcjtcblxuICAgIGZ1bmN0aW9uIHNldENvbnRyb2xsZWRUcmFuc2xhdGUoYykge1xuICAgICAgLy8gdGhpcyB3aWxsIGNyZWF0ZSBhbiBJbnRlcnBvbGF0ZSBmdW5jdGlvbiBiYXNlZCBvbiB0aGUgc25hcEdyaWRzXG4gICAgICAvLyB4IGlzIHRoZSBHcmlkIG9mIHRoZSBzY3JvbGxlZCBzY3JvbGxlciBhbmQgeSB3aWxsIGJlIHRoZSBjb250cm9sbGVkIHNjcm9sbGVyXG4gICAgICAvLyBpdCBtYWtlcyBzZW5zZSB0byBjcmVhdGUgdGhpcyBvbmx5IG9uY2UgYW5kIHJlY2FsbCBpdCBmb3IgdGhlIGludGVycG9sYXRpb25cbiAgICAgIC8vIHRoZSBmdW5jdGlvbiBkb2VzIGEgbG90IG9mIHZhbHVlIGNhY2hpbmcgZm9yIHBlcmZvcm1hbmNlXG4gICAgICBjb25zdCB0cmFuc2xhdGUgPSBzd2lwZXIucnRsVHJhbnNsYXRlID8gLXN3aXBlci50cmFuc2xhdGUgOiBzd2lwZXIudHJhbnNsYXRlO1xuXG4gICAgICBpZiAoc3dpcGVyLnBhcmFtcy5jb250cm9sbGVyLmJ5ID09PSAnc2xpZGUnKSB7XG4gICAgICAgIGdldEludGVycG9sYXRlRnVuY3Rpb24oYyk7IC8vIGkgYW0gbm90IHN1cmUgd2h5IHRoZSB2YWx1ZXMgaGF2ZSB0byBiZSBtdWx0aXBsaWNhdGVkIHRoaXMgd2F5LCB0cmllZCB0byBpbnZlcnQgdGhlIHNuYXBHcmlkXG4gICAgICAgIC8vIGJ1dCBpdCBkaWQgbm90IHdvcmsgb3V0XG5cbiAgICAgICAgY29udHJvbGxlZFRyYW5zbGF0ZSA9IC1zd2lwZXIuY29udHJvbGxlci5zcGxpbmUuaW50ZXJwb2xhdGUoLXRyYW5zbGF0ZSk7XG4gICAgICB9XG5cbiAgICAgIGlmICghY29udHJvbGxlZFRyYW5zbGF0ZSB8fCBzd2lwZXIucGFyYW1zLmNvbnRyb2xsZXIuYnkgPT09ICdjb250YWluZXInKSB7XG4gICAgICAgIG11bHRpcGxpZXIgPSAoYy5tYXhUcmFuc2xhdGUoKSAtIGMubWluVHJhbnNsYXRlKCkpIC8gKHN3aXBlci5tYXhUcmFuc2xhdGUoKSAtIHN3aXBlci5taW5UcmFuc2xhdGUoKSk7XG4gICAgICAgIGNvbnRyb2xsZWRUcmFuc2xhdGUgPSAodHJhbnNsYXRlIC0gc3dpcGVyLm1pblRyYW5zbGF0ZSgpKSAqIG11bHRpcGxpZXIgKyBjLm1pblRyYW5zbGF0ZSgpO1xuICAgICAgfVxuXG4gICAgICBpZiAoc3dpcGVyLnBhcmFtcy5jb250cm9sbGVyLmludmVyc2UpIHtcbiAgICAgICAgY29udHJvbGxlZFRyYW5zbGF0ZSA9IGMubWF4VHJhbnNsYXRlKCkgLSBjb250cm9sbGVkVHJhbnNsYXRlO1xuICAgICAgfVxuXG4gICAgICBjLnVwZGF0ZVByb2dyZXNzKGNvbnRyb2xsZWRUcmFuc2xhdGUpO1xuICAgICAgYy5zZXRUcmFuc2xhdGUoY29udHJvbGxlZFRyYW5zbGF0ZSwgc3dpcGVyKTtcbiAgICAgIGMudXBkYXRlQWN0aXZlSW5kZXgoKTtcbiAgICAgIGMudXBkYXRlU2xpZGVzQ2xhc3NlcygpO1xuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KGNvbnRyb2xsZWQpKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbnRyb2xsZWQubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgaWYgKGNvbnRyb2xsZWRbaV0gIT09IGJ5Q29udHJvbGxlciAmJiBjb250cm9sbGVkW2ldIGluc3RhbmNlb2YgU3dpcGVyKSB7XG4gICAgICAgICAgc2V0Q29udHJvbGxlZFRyYW5zbGF0ZShjb250cm9sbGVkW2ldKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoY29udHJvbGxlZCBpbnN0YW5jZW9mIFN3aXBlciAmJiBieUNvbnRyb2xsZXIgIT09IGNvbnRyb2xsZWQpIHtcbiAgICAgIHNldENvbnRyb2xsZWRUcmFuc2xhdGUoY29udHJvbGxlZCk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gc2V0VHJhbnNpdGlvbihkdXJhdGlvbiwgYnlDb250cm9sbGVyKSB7XG4gICAgY29uc3QgU3dpcGVyID0gc3dpcGVyLmNvbnN0cnVjdG9yO1xuICAgIGNvbnN0IGNvbnRyb2xsZWQgPSBzd2lwZXIuY29udHJvbGxlci5jb250cm9sO1xuICAgIGxldCBpO1xuXG4gICAgZnVuY3Rpb24gc2V0Q29udHJvbGxlZFRyYW5zaXRpb24oYykge1xuICAgICAgYy5zZXRUcmFuc2l0aW9uKGR1cmF0aW9uLCBzd2lwZXIpO1xuXG4gICAgICBpZiAoZHVyYXRpb24gIT09IDApIHtcbiAgICAgICAgYy50cmFuc2l0aW9uU3RhcnQoKTtcblxuICAgICAgICBpZiAoYy5wYXJhbXMuYXV0b0hlaWdodCkge1xuICAgICAgICAgIG5leHRUaWNrKCgpID0+IHtcbiAgICAgICAgICAgIGMudXBkYXRlQXV0b0hlaWdodCgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgYy4kd3JhcHBlckVsLnRyYW5zaXRpb25FbmQoKCkgPT4ge1xuICAgICAgICAgIGlmICghY29udHJvbGxlZCkgcmV0dXJuO1xuXG4gICAgICAgICAgaWYgKGMucGFyYW1zLmxvb3AgJiYgc3dpcGVyLnBhcmFtcy5jb250cm9sbGVyLmJ5ID09PSAnc2xpZGUnKSB7XG4gICAgICAgICAgICBjLmxvb3BGaXgoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjLnRyYW5zaXRpb25FbmQoKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoY29udHJvbGxlZCkpIHtcbiAgICAgIGZvciAoaSA9IDA7IGkgPCBjb250cm9sbGVkLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICAgIGlmIChjb250cm9sbGVkW2ldICE9PSBieUNvbnRyb2xsZXIgJiYgY29udHJvbGxlZFtpXSBpbnN0YW5jZW9mIFN3aXBlcikge1xuICAgICAgICAgIHNldENvbnRyb2xsZWRUcmFuc2l0aW9uKGNvbnRyb2xsZWRbaV0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChjb250cm9sbGVkIGluc3RhbmNlb2YgU3dpcGVyICYmIGJ5Q29udHJvbGxlciAhPT0gY29udHJvbGxlZCkge1xuICAgICAgc2V0Q29udHJvbGxlZFRyYW5zaXRpb24oY29udHJvbGxlZCk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gcmVtb3ZlU3BsaW5lKCkge1xuICAgIGlmICghc3dpcGVyLmNvbnRyb2xsZXIuY29udHJvbCkgcmV0dXJuO1xuXG4gICAgaWYgKHN3aXBlci5jb250cm9sbGVyLnNwbGluZSkge1xuICAgICAgc3dpcGVyLmNvbnRyb2xsZXIuc3BsaW5lID0gdW5kZWZpbmVkO1xuICAgICAgZGVsZXRlIHN3aXBlci5jb250cm9sbGVyLnNwbGluZTtcbiAgICB9XG4gIH1cblxuICBvbignYmVmb3JlSW5pdCcsICgpID0+IHtcbiAgICBzd2lwZXIuY29udHJvbGxlci5jb250cm9sID0gc3dpcGVyLnBhcmFtcy5jb250cm9sbGVyLmNvbnRyb2w7XG4gIH0pO1xuICBvbigndXBkYXRlJywgKCkgPT4ge1xuICAgIHJlbW92ZVNwbGluZSgpO1xuICB9KTtcbiAgb24oJ3Jlc2l6ZScsICgpID0+IHtcbiAgICByZW1vdmVTcGxpbmUoKTtcbiAgfSk7XG4gIG9uKCdvYnNlcnZlclVwZGF0ZScsICgpID0+IHtcbiAgICByZW1vdmVTcGxpbmUoKTtcbiAgfSk7XG4gIG9uKCdzZXRUcmFuc2xhdGUnLCAoX3MsIHRyYW5zbGF0ZSwgYnlDb250cm9sbGVyKSA9PiB7XG4gICAgaWYgKCFzd2lwZXIuY29udHJvbGxlci5jb250cm9sKSByZXR1cm47XG4gICAgc3dpcGVyLmNvbnRyb2xsZXIuc2V0VHJhbnNsYXRlKHRyYW5zbGF0ZSwgYnlDb250cm9sbGVyKTtcbiAgfSk7XG4gIG9uKCdzZXRUcmFuc2l0aW9uJywgKF9zLCBkdXJhdGlvbiwgYnlDb250cm9sbGVyKSA9PiB7XG4gICAgaWYgKCFzd2lwZXIuY29udHJvbGxlci5jb250cm9sKSByZXR1cm47XG4gICAgc3dpcGVyLmNvbnRyb2xsZXIuc2V0VHJhbnNpdGlvbihkdXJhdGlvbiwgYnlDb250cm9sbGVyKTtcbiAgfSk7XG4gIE9iamVjdC5hc3NpZ24oc3dpcGVyLmNvbnRyb2xsZXIsIHtcbiAgICBzZXRUcmFuc2xhdGUsXG4gICAgc2V0VHJhbnNpdGlvblxuICB9KTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/swiper/modules/controller/controller.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/modules/effect-cards/effect-cards.js": +/*!******************************************************************!*\ + !*** ./node_modules/swiper/modules/effect-cards/effect-cards.js ***! + \******************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ EffectCards; }\n/* harmony export */ });\n/* harmony import */ var _shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/create-shadow.js */ \"./node_modules/swiper/shared/create-shadow.js\");\n/* harmony import */ var _shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/effect-init.js */ \"./node_modules/swiper/shared/effect-init.js\");\n/* harmony import */ var _shared_effect_target_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/effect-target.js */ \"./node_modules/swiper/shared/effect-target.js\");\n/* harmony import */ var _shared_effect_virtual_transition_end_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../shared/effect-virtual-transition-end.js */ \"./node_modules/swiper/shared/effect-virtual-transition-end.js\");\n\n\n\n\nfunction EffectCards({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n cardsEffect: {\n slideShadows: true,\n transformEl: null\n }\n });\n\n const setTranslate = () => {\n const {\n slides,\n activeIndex\n } = swiper;\n const params = swiper.params.cardsEffect;\n const {\n startTranslate,\n isTouched\n } = swiper.touchEventsData;\n const currentTranslate = swiper.translate;\n\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n const slideProgress = $slideEl[0].progress;\n const progress = Math.min(Math.max(slideProgress, -4), 4);\n let offset = $slideEl[0].swiperSlideOffset;\n\n if (swiper.params.centeredSlides && !swiper.params.cssMode) {\n swiper.$wrapperEl.transform(`translateX(${swiper.minTranslate()}px)`);\n }\n\n if (swiper.params.centeredSlides && swiper.params.cssMode) {\n offset -= slides[0].swiperSlideOffset;\n }\n\n let tX = swiper.params.cssMode ? -offset - swiper.translate : -offset;\n let tY = 0;\n const tZ = -100 * Math.abs(progress);\n let scale = 1;\n let rotate = -2 * progress;\n let tXAdd = 8 - Math.abs(progress) * 0.75;\n const isSwipeToNext = (i === activeIndex || i === activeIndex - 1) && progress > 0 && progress < 1 && (isTouched || swiper.params.cssMode) && currentTranslate < startTranslate;\n const isSwipeToPrev = (i === activeIndex || i === activeIndex + 1) && progress < 0 && progress > -1 && (isTouched || swiper.params.cssMode) && currentTranslate > startTranslate;\n\n if (isSwipeToNext || isSwipeToPrev) {\n const subProgress = (1 - Math.abs((Math.abs(progress) - 0.5) / 0.5)) ** 0.5;\n rotate += -28 * progress * subProgress;\n scale += -0.5 * subProgress;\n tXAdd += 96 * subProgress;\n tY = `${-25 * subProgress * Math.abs(progress)}%`;\n }\n\n if (progress < 0) {\n // next\n tX = `calc(${tX}px + (${tXAdd * Math.abs(progress)}%))`;\n } else if (progress > 0) {\n // prev\n tX = `calc(${tX}px + (-${tXAdd * Math.abs(progress)}%))`;\n } else {\n tX = `${tX}px`;\n }\n\n if (!swiper.isHorizontal()) {\n const prevY = tY;\n tY = tX;\n tX = prevY;\n }\n\n const scaleString = progress < 0 ? `${1 + (1 - scale) * progress}` : `${1 - (1 - scale) * progress}`;\n const transform = `\n translate3d(${tX}, ${tY}, ${tZ}px)\n rotateZ(${rotate}deg)\n scale(${scaleString})\n `;\n\n if (params.slideShadows) {\n // Set shadows\n let $shadowEl = $slideEl.find('.swiper-slide-shadow');\n\n if ($shadowEl.length === 0) {\n $shadowEl = (0,_shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(params, $slideEl);\n }\n\n if ($shadowEl.length) $shadowEl[0].style.opacity = Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1);\n }\n\n $slideEl[0].style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n const $targetEl = (0,_shared_effect_target_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(params, $slideEl);\n $targetEl.transform(transform);\n }\n };\n\n const setTransition = duration => {\n const {\n transformEl\n } = swiper.params.cardsEffect;\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration).find('.swiper-slide-shadow').transition(duration);\n (0,_shared_effect_virtual_transition_end_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])({\n swiper,\n duration,\n transformEl\n });\n };\n\n (0,_shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n effect: 'cards',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => true,\n overwriteParams: () => ({\n watchSlidesProgress: true,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMvZWZmZWN0LWNhcmRzL2VmZmVjdC1jYXJkcy5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUF5RDtBQUNKO0FBQ0k7QUFDOEI7QUFDeEU7QUFDZjtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047O0FBRUEsb0JBQW9CLG1CQUFtQjtBQUN2QztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGtEQUFrRCxzQkFBc0I7QUFDeEU7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQix1Q0FBdUM7QUFDdkQ7O0FBRUE7QUFDQTtBQUNBLHFCQUFxQixHQUFHLFFBQVEsMkJBQTJCO0FBQzNELFFBQVE7QUFDUjtBQUNBLHFCQUFxQixHQUFHLFNBQVMsMkJBQTJCO0FBQzVELFFBQVE7QUFDUixnQkFBZ0IsR0FBRztBQUNuQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLDRDQUE0QywyQkFBMkIsT0FBTywyQkFBMkI7QUFDekc7QUFDQSxzQkFBc0IsR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHO0FBQ3ZDLGtCQUFrQixPQUFPO0FBQ3pCLGdCQUFnQixZQUFZO0FBQzVCOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHNCQUFzQixvRUFBWTtBQUNsQzs7QUFFQTtBQUNBOztBQUVBO0FBQ0Esd0JBQXdCLG9FQUFZO0FBQ3BDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLElBQUksb0ZBQTBCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQSxFQUFFLGtFQUFVO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7QUFDSCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMvZWZmZWN0LWNhcmRzL2VmZmVjdC1jYXJkcy5qcz9lZDkyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVTaGFkb3cgZnJvbSAnLi4vLi4vc2hhcmVkL2NyZWF0ZS1zaGFkb3cuanMnO1xuaW1wb3J0IGVmZmVjdEluaXQgZnJvbSAnLi4vLi4vc2hhcmVkL2VmZmVjdC1pbml0LmpzJztcbmltcG9ydCBlZmZlY3RUYXJnZXQgZnJvbSAnLi4vLi4vc2hhcmVkL2VmZmVjdC10YXJnZXQuanMnO1xuaW1wb3J0IGVmZmVjdFZpcnR1YWxUcmFuc2l0aW9uRW5kIGZyb20gJy4uLy4uL3NoYXJlZC9lZmZlY3QtdmlydHVhbC10cmFuc2l0aW9uLWVuZC5qcyc7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBFZmZlY3RDYXJkcyh7XG4gIHN3aXBlcixcbiAgZXh0ZW5kUGFyYW1zLFxuICBvblxufSkge1xuICBleHRlbmRQYXJhbXMoe1xuICAgIGNhcmRzRWZmZWN0OiB7XG4gICAgICBzbGlkZVNoYWRvd3M6IHRydWUsXG4gICAgICB0cmFuc2Zvcm1FbDogbnVsbFxuICAgIH1cbiAgfSk7XG5cbiAgY29uc3Qgc2V0VHJhbnNsYXRlID0gKCkgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIHNsaWRlcyxcbiAgICAgIGFjdGl2ZUluZGV4XG4gICAgfSA9IHN3aXBlcjtcbiAgICBjb25zdCBwYXJhbXMgPSBzd2lwZXIucGFyYW1zLmNhcmRzRWZmZWN0O1xuICAgIGNvbnN0IHtcbiAgICAgIHN0YXJ0VHJhbnNsYXRlLFxuICAgICAgaXNUb3VjaGVkXG4gICAgfSA9IHN3aXBlci50b3VjaEV2ZW50c0RhdGE7XG4gICAgY29uc3QgY3VycmVudFRyYW5zbGF0ZSA9IHN3aXBlci50cmFuc2xhdGU7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNsaWRlcy5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgY29uc3QgJHNsaWRlRWwgPSBzbGlkZXMuZXEoaSk7XG4gICAgICBjb25zdCBzbGlkZVByb2dyZXNzID0gJHNsaWRlRWxbMF0ucHJvZ3Jlc3M7XG4gICAgICBjb25zdCBwcm9ncmVzcyA9IE1hdGgubWluKE1hdGgubWF4KHNsaWRlUHJvZ3Jlc3MsIC00KSwgNCk7XG4gICAgICBsZXQgb2Zmc2V0ID0gJHNsaWRlRWxbMF0uc3dpcGVyU2xpZGVPZmZzZXQ7XG5cbiAgICAgIGlmIChzd2lwZXIucGFyYW1zLmNlbnRlcmVkU2xpZGVzICYmICFzd2lwZXIucGFyYW1zLmNzc01vZGUpIHtcbiAgICAgICAgc3dpcGVyLiR3cmFwcGVyRWwudHJhbnNmb3JtKGB0cmFuc2xhdGVYKCR7c3dpcGVyLm1pblRyYW5zbGF0ZSgpfXB4KWApO1xuICAgICAgfVxuXG4gICAgICBpZiAoc3dpcGVyLnBhcmFtcy5jZW50ZXJlZFNsaWRlcyAmJiBzd2lwZXIucGFyYW1zLmNzc01vZGUpIHtcbiAgICAgICAgb2Zmc2V0IC09IHNsaWRlc1swXS5zd2lwZXJTbGlkZU9mZnNldDtcbiAgICAgIH1cblxuICAgICAgbGV0IHRYID0gc3dpcGVyLnBhcmFtcy5jc3NNb2RlID8gLW9mZnNldCAtIHN3aXBlci50cmFuc2xhdGUgOiAtb2Zmc2V0O1xuICAgICAgbGV0IHRZID0gMDtcbiAgICAgIGNvbnN0IHRaID0gLTEwMCAqIE1hdGguYWJzKHByb2dyZXNzKTtcbiAgICAgIGxldCBzY2FsZSA9IDE7XG4gICAgICBsZXQgcm90YXRlID0gLTIgKiBwcm9ncmVzcztcbiAgICAgIGxldCB0WEFkZCA9IDggLSBNYXRoLmFicyhwcm9ncmVzcykgKiAwLjc1O1xuICAgICAgY29uc3QgaXNTd2lwZVRvTmV4dCA9IChpID09PSBhY3RpdmVJbmRleCB8fCBpID09PSBhY3RpdmVJbmRleCAtIDEpICYmIHByb2dyZXNzID4gMCAmJiBwcm9ncmVzcyA8IDEgJiYgKGlzVG91Y2hlZCB8fCBzd2lwZXIucGFyYW1zLmNzc01vZGUpICYmIGN1cnJlbnRUcmFuc2xhdGUgPCBzdGFydFRyYW5zbGF0ZTtcbiAgICAgIGNvbnN0IGlzU3dpcGVUb1ByZXYgPSAoaSA9PT0gYWN0aXZlSW5kZXggfHwgaSA9PT0gYWN0aXZlSW5kZXggKyAxKSAmJiBwcm9ncmVzcyA8IDAgJiYgcHJvZ3Jlc3MgPiAtMSAmJiAoaXNUb3VjaGVkIHx8IHN3aXBlci5wYXJhbXMuY3NzTW9kZSkgJiYgY3VycmVudFRyYW5zbGF0ZSA+IHN0YXJ0VHJhbnNsYXRlO1xuXG4gICAgICBpZiAoaXNTd2lwZVRvTmV4dCB8fCBpc1N3aXBlVG9QcmV2KSB7XG4gICAgICAgIGNvbnN0IHN1YlByb2dyZXNzID0gKDEgLSBNYXRoLmFicygoTWF0aC5hYnMocHJvZ3Jlc3MpIC0gMC41KSAvIDAuNSkpICoqIDAuNTtcbiAgICAgICAgcm90YXRlICs9IC0yOCAqIHByb2dyZXNzICogc3ViUHJvZ3Jlc3M7XG4gICAgICAgIHNjYWxlICs9IC0wLjUgKiBzdWJQcm9ncmVzcztcbiAgICAgICAgdFhBZGQgKz0gOTYgKiBzdWJQcm9ncmVzcztcbiAgICAgICAgdFkgPSBgJHstMjUgKiBzdWJQcm9ncmVzcyAqIE1hdGguYWJzKHByb2dyZXNzKX0lYDtcbiAgICAgIH1cblxuICAgICAgaWYgKHByb2dyZXNzIDwgMCkge1xuICAgICAgICAvLyBuZXh0XG4gICAgICAgIHRYID0gYGNhbGMoJHt0WH1weCArICgke3RYQWRkICogTWF0aC5hYnMocHJvZ3Jlc3MpfSUpKWA7XG4gICAgICB9IGVsc2UgaWYgKHByb2dyZXNzID4gMCkge1xuICAgICAgICAvLyBwcmV2XG4gICAgICAgIHRYID0gYGNhbGMoJHt0WH1weCArICgtJHt0WEFkZCAqIE1hdGguYWJzKHByb2dyZXNzKX0lKSlgO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdFggPSBgJHt0WH1weGA7XG4gICAgICB9XG5cbiAgICAgIGlmICghc3dpcGVyLmlzSG9yaXpvbnRhbCgpKSB7XG4gICAgICAgIGNvbnN0IHByZXZZID0gdFk7XG4gICAgICAgIHRZID0gdFg7XG4gICAgICAgIHRYID0gcHJldlk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHNjYWxlU3RyaW5nID0gcHJvZ3Jlc3MgPCAwID8gYCR7MSArICgxIC0gc2NhbGUpICogcHJvZ3Jlc3N9YCA6IGAkezEgLSAoMSAtIHNjYWxlKSAqIHByb2dyZXNzfWA7XG4gICAgICBjb25zdCB0cmFuc2Zvcm0gPSBgXG4gICAgICAgIHRyYW5zbGF0ZTNkKCR7dFh9LCAke3RZfSwgJHt0Wn1weClcbiAgICAgICAgcm90YXRlWigke3JvdGF0ZX1kZWcpXG4gICAgICAgIHNjYWxlKCR7c2NhbGVTdHJpbmd9KVxuICAgICAgYDtcblxuICAgICAgaWYgKHBhcmFtcy5zbGlkZVNoYWRvd3MpIHtcbiAgICAgICAgLy8gU2V0IHNoYWRvd3NcbiAgICAgICAgbGV0ICRzaGFkb3dFbCA9ICRzbGlkZUVsLmZpbmQoJy5zd2lwZXItc2xpZGUtc2hhZG93Jyk7XG5cbiAgICAgICAgaWYgKCRzaGFkb3dFbC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAkc2hhZG93RWwgPSBjcmVhdGVTaGFkb3cocGFyYW1zLCAkc2xpZGVFbCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoJHNoYWRvd0VsLmxlbmd0aCkgJHNoYWRvd0VsWzBdLnN0eWxlLm9wYWNpdHkgPSBNYXRoLm1pbihNYXRoLm1heCgoTWF0aC5hYnMocHJvZ3Jlc3MpIC0gMC41KSAvIDAuNSwgMCksIDEpO1xuICAgICAgfVxuXG4gICAgICAkc2xpZGVFbFswXS5zdHlsZS56SW5kZXggPSAtTWF0aC5hYnMoTWF0aC5yb3VuZChzbGlkZVByb2dyZXNzKSkgKyBzbGlkZXMubGVuZ3RoO1xuICAgICAgY29uc3QgJHRhcmdldEVsID0gZWZmZWN0VGFyZ2V0KHBhcmFtcywgJHNsaWRlRWwpO1xuICAgICAgJHRhcmdldEVsLnRyYW5zZm9ybSh0cmFuc2Zvcm0pO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBzZXRUcmFuc2l0aW9uID0gZHVyYXRpb24gPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIHRyYW5zZm9ybUVsXG4gICAgfSA9IHN3aXBlci5wYXJhbXMuY2FyZHNFZmZlY3Q7XG4gICAgY29uc3QgJHRyYW5zaXRpb25FbGVtZW50cyA9IHRyYW5zZm9ybUVsID8gc3dpcGVyLnNsaWRlcy5maW5kKHRyYW5zZm9ybUVsKSA6IHN3aXBlci5zbGlkZXM7XG4gICAgJHRyYW5zaXRpb25FbGVtZW50cy50cmFuc2l0aW9uKGR1cmF0aW9uKS5maW5kKCcuc3dpcGVyLXNsaWRlLXNoYWRvdycpLnRyYW5zaXRpb24oZHVyYXRpb24pO1xuICAgIGVmZmVjdFZpcnR1YWxUcmFuc2l0aW9uRW5kKHtcbiAgICAgIHN3aXBlcixcbiAgICAgIGR1cmF0aW9uLFxuICAgICAgdHJhbnNmb3JtRWxcbiAgICB9KTtcbiAgfTtcblxuICBlZmZlY3RJbml0KHtcbiAgICBlZmZlY3Q6ICdjYXJkcycsXG4gICAgc3dpcGVyLFxuICAgIG9uLFxuICAgIHNldFRyYW5zbGF0ZSxcbiAgICBzZXRUcmFuc2l0aW9uLFxuICAgIHBlcnNwZWN0aXZlOiAoKSA9PiB0cnVlLFxuICAgIG92ZXJ3cml0ZVBhcmFtczogKCkgPT4gKHtcbiAgICAgIHdhdGNoU2xpZGVzUHJvZ3Jlc3M6IHRydWUsXG4gICAgICB2aXJ0dWFsVHJhbnNsYXRlOiAhc3dpcGVyLnBhcmFtcy5jc3NNb2RlXG4gICAgfSlcbiAgfSk7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/swiper/modules/effect-cards/effect-cards.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/modules/effect-coverflow/effect-coverflow.js": +/*!**************************************************************************!*\ + !*** ./node_modules/swiper/modules/effect-coverflow/effect-coverflow.js ***! + \**************************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ EffectCoverflow; }\n/* harmony export */ });\n/* harmony import */ var _shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/create-shadow.js */ \"./node_modules/swiper/shared/create-shadow.js\");\n/* harmony import */ var _shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/effect-init.js */ \"./node_modules/swiper/shared/effect-init.js\");\n/* harmony import */ var _shared_effect_target_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/effect-target.js */ \"./node_modules/swiper/shared/effect-target.js\");\n\n\n\nfunction EffectCoverflow({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n scale: 1,\n modifier: 1,\n slideShadows: true,\n transformEl: null\n }\n });\n\n const setTranslate = () => {\n const {\n width: swiperWidth,\n height: swiperHeight,\n slides,\n slidesSizesGrid\n } = swiper;\n const params = swiper.params.coverflowEffect;\n const isHorizontal = swiper.isHorizontal();\n const transform = swiper.translate;\n const center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;\n const rotate = isHorizontal ? params.rotate : -params.rotate;\n const translate = params.depth; // Each slide offset from center\n\n for (let i = 0, length = slides.length; i < length; i += 1) {\n const $slideEl = slides.eq(i);\n const slideSize = slidesSizesGrid[i];\n const slideOffset = $slideEl[0].swiperSlideOffset;\n const offsetMultiplier = (center - slideOffset - slideSize / 2) / slideSize * params.modifier;\n let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier; // var rotateZ = 0\n\n let translateZ = -translate * Math.abs(offsetMultiplier);\n let stretch = params.stretch; // Allow percentage to make a relative stretch for responsive sliders\n\n if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {\n stretch = parseFloat(params.stretch) / 100 * slideSize;\n }\n\n let translateY = isHorizontal ? 0 : stretch * offsetMultiplier;\n let translateX = isHorizontal ? stretch * offsetMultiplier : 0;\n let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier); // Fix for ultra small values\n\n if (Math.abs(translateX) < 0.001) translateX = 0;\n if (Math.abs(translateY) < 0.001) translateY = 0;\n if (Math.abs(translateZ) < 0.001) translateZ = 0;\n if (Math.abs(rotateY) < 0.001) rotateY = 0;\n if (Math.abs(rotateX) < 0.001) rotateX = 0;\n if (Math.abs(scale) < 0.001) scale = 0;\n const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px) rotateX(${rotateX}deg) rotateY(${rotateY}deg) scale(${scale})`;\n const $targetEl = (0,_shared_effect_target_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(params, $slideEl);\n $targetEl.transform(slideTransform);\n $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n\n if (params.slideShadows) {\n // Set shadows\n let $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n if ($shadowBeforeEl.length === 0) {\n $shadowBeforeEl = (0,_shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(params, $slideEl, isHorizontal ? 'left' : 'top');\n }\n\n if ($shadowAfterEl.length === 0) {\n $shadowAfterEl = (0,_shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(params, $slideEl, isHorizontal ? 'right' : 'bottom');\n }\n\n if ($shadowBeforeEl.length) $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n if ($shadowAfterEl.length) $shadowAfterEl[0].style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;\n }\n }\n };\n\n const setTransition = duration => {\n const {\n transformEl\n } = swiper.params.coverflowEffect;\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n };\n\n (0,_shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n effect: 'coverflow',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => true,\n overwriteParams: () => ({\n watchSlidesProgress: true\n })\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMvZWZmZWN0LWNvdmVyZmxvdy9lZmZlY3QtY292ZXJmbG93LmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBeUQ7QUFDSjtBQUNJO0FBQzFDO0FBQ2Y7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9DQUFvQzs7QUFFcEMsNENBQTRDLFlBQVk7QUFDeEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtFQUFrRTs7QUFFbEU7QUFDQSxvQ0FBb0M7O0FBRXBDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsdUVBQXVFOztBQUV2RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0Q0FBNEMsV0FBVyxLQUFLLFdBQVcsS0FBSyxXQUFXLGVBQWUsUUFBUSxlQUFlLFFBQVEsYUFBYSxNQUFNO0FBQ3hKLHdCQUF3QixvRUFBWTtBQUNwQztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsNEJBQTRCLG9FQUFZO0FBQ3hDOztBQUVBO0FBQ0EsMkJBQTJCLG9FQUFZO0FBQ3ZDOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTs7QUFFQSxFQUFFLGtFQUFVO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N3aXBlci9tb2R1bGVzL2VmZmVjdC1jb3ZlcmZsb3cvZWZmZWN0LWNvdmVyZmxvdy5qcz80NTA0Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVTaGFkb3cgZnJvbSAnLi4vLi4vc2hhcmVkL2NyZWF0ZS1zaGFkb3cuanMnO1xuaW1wb3J0IGVmZmVjdEluaXQgZnJvbSAnLi4vLi4vc2hhcmVkL2VmZmVjdC1pbml0LmpzJztcbmltcG9ydCBlZmZlY3RUYXJnZXQgZnJvbSAnLi4vLi4vc2hhcmVkL2VmZmVjdC10YXJnZXQuanMnO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRWZmZWN0Q292ZXJmbG93KHtcbiAgc3dpcGVyLFxuICBleHRlbmRQYXJhbXMsXG4gIG9uXG59KSB7XG4gIGV4dGVuZFBhcmFtcyh7XG4gICAgY292ZXJmbG93RWZmZWN0OiB7XG4gICAgICByb3RhdGU6IDUwLFxuICAgICAgc3RyZXRjaDogMCxcbiAgICAgIGRlcHRoOiAxMDAsXG4gICAgICBzY2FsZTogMSxcbiAgICAgIG1vZGlmaWVyOiAxLFxuICAgICAgc2xpZGVTaGFkb3dzOiB0cnVlLFxuICAgICAgdHJhbnNmb3JtRWw6IG51bGxcbiAgICB9XG4gIH0pO1xuXG4gIGNvbnN0IHNldFRyYW5zbGF0ZSA9ICgpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICB3aWR0aDogc3dpcGVyV2lkdGgsXG4gICAgICBoZWlnaHQ6IHN3aXBlckhlaWdodCxcbiAgICAgIHNsaWRlcyxcbiAgICAgIHNsaWRlc1NpemVzR3JpZFxuICAgIH0gPSBzd2lwZXI7XG4gICAgY29uc3QgcGFyYW1zID0gc3dpcGVyLnBhcmFtcy5jb3ZlcmZsb3dFZmZlY3Q7XG4gICAgY29uc3QgaXNIb3Jpem9udGFsID0gc3dpcGVyLmlzSG9yaXpvbnRhbCgpO1xuICAgIGNvbnN0IHRyYW5zZm9ybSA9IHN3aXBlci50cmFuc2xhdGU7XG4gICAgY29uc3QgY2VudGVyID0gaXNIb3Jpem9udGFsID8gLXRyYW5zZm9ybSArIHN3aXBlcldpZHRoIC8gMiA6IC10cmFuc2Zvcm0gKyBzd2lwZXJIZWlnaHQgLyAyO1xuICAgIGNvbnN0IHJvdGF0ZSA9IGlzSG9yaXpvbnRhbCA/IHBhcmFtcy5yb3RhdGUgOiAtcGFyYW1zLnJvdGF0ZTtcbiAgICBjb25zdCB0cmFuc2xhdGUgPSBwYXJhbXMuZGVwdGg7IC8vIEVhY2ggc2xpZGUgb2Zmc2V0IGZyb20gY2VudGVyXG5cbiAgICBmb3IgKGxldCBpID0gMCwgbGVuZ3RoID0gc2xpZGVzLmxlbmd0aDsgaSA8IGxlbmd0aDsgaSArPSAxKSB7XG4gICAgICBjb25zdCAkc2xpZGVFbCA9IHNsaWRlcy5lcShpKTtcbiAgICAgIGNvbnN0IHNsaWRlU2l6ZSA9IHNsaWRlc1NpemVzR3JpZFtpXTtcbiAgICAgIGNvbnN0IHNsaWRlT2Zmc2V0ID0gJHNsaWRlRWxbMF0uc3dpcGVyU2xpZGVPZmZzZXQ7XG4gICAgICBjb25zdCBvZmZzZXRNdWx0aXBsaWVyID0gKGNlbnRlciAtIHNsaWRlT2Zmc2V0IC0gc2xpZGVTaXplIC8gMikgLyBzbGlkZVNpemUgKiBwYXJhbXMubW9kaWZpZXI7XG4gICAgICBsZXQgcm90YXRlWSA9IGlzSG9yaXpvbnRhbCA/IHJvdGF0ZSAqIG9mZnNldE11bHRpcGxpZXIgOiAwO1xuICAgICAgbGV0IHJvdGF0ZVggPSBpc0hvcml6b250YWwgPyAwIDogcm90YXRlICogb2Zmc2V0TXVsdGlwbGllcjsgLy8gdmFyIHJvdGF0ZVogPSAwXG5cbiAgICAgIGxldCB0cmFuc2xhdGVaID0gLXRyYW5zbGF0ZSAqIE1hdGguYWJzKG9mZnNldE11bHRpcGxpZXIpO1xuICAgICAgbGV0IHN0cmV0Y2ggPSBwYXJhbXMuc3RyZXRjaDsgLy8gQWxsb3cgcGVyY2VudGFnZSB0byBtYWtlIGEgcmVsYXRpdmUgc3RyZXRjaCBmb3IgcmVzcG9uc2l2ZSBzbGlkZXJzXG5cbiAgICAgIGlmICh0eXBlb2Ygc3RyZXRjaCA9PT0gJ3N0cmluZycgJiYgc3RyZXRjaC5pbmRleE9mKCclJykgIT09IC0xKSB7XG4gICAgICAgIHN0cmV0Y2ggPSBwYXJzZUZsb2F0KHBhcmFtcy5zdHJldGNoKSAvIDEwMCAqIHNsaWRlU2l6ZTtcbiAgICAgIH1cblxuICAgICAgbGV0IHRyYW5zbGF0ZVkgPSBpc0hvcml6b250YWwgPyAwIDogc3RyZXRjaCAqIG9mZnNldE11bHRpcGxpZXI7XG4gICAgICBsZXQgdHJhbnNsYXRlWCA9IGlzSG9yaXpvbnRhbCA/IHN0cmV0Y2ggKiBvZmZzZXRNdWx0aXBsaWVyIDogMDtcbiAgICAgIGxldCBzY2FsZSA9IDEgLSAoMSAtIHBhcmFtcy5zY2FsZSkgKiBNYXRoLmFicyhvZmZzZXRNdWx0aXBsaWVyKTsgLy8gRml4IGZvciB1bHRyYSBzbWFsbCB2YWx1ZXNcblxuICAgICAgaWYgKE1hdGguYWJzKHRyYW5zbGF0ZVgpIDwgMC4wMDEpIHRyYW5zbGF0ZVggPSAwO1xuICAgICAgaWYgKE1hdGguYWJzKHRyYW5zbGF0ZVkpIDwgMC4wMDEpIHRyYW5zbGF0ZVkgPSAwO1xuICAgICAgaWYgKE1hdGguYWJzKHRyYW5zbGF0ZVopIDwgMC4wMDEpIHRyYW5zbGF0ZVogPSAwO1xuICAgICAgaWYgKE1hdGguYWJzKHJvdGF0ZVkpIDwgMC4wMDEpIHJvdGF0ZVkgPSAwO1xuICAgICAgaWYgKE1hdGguYWJzKHJvdGF0ZVgpIDwgMC4wMDEpIHJvdGF0ZVggPSAwO1xuICAgICAgaWYgKE1hdGguYWJzKHNjYWxlKSA8IDAuMDAxKSBzY2FsZSA9IDA7XG4gICAgICBjb25zdCBzbGlkZVRyYW5zZm9ybSA9IGB0cmFuc2xhdGUzZCgke3RyYW5zbGF0ZVh9cHgsJHt0cmFuc2xhdGVZfXB4LCR7dHJhbnNsYXRlWn1weCkgIHJvdGF0ZVgoJHtyb3RhdGVYfWRlZykgcm90YXRlWSgke3JvdGF0ZVl9ZGVnKSBzY2FsZSgke3NjYWxlfSlgO1xuICAgICAgY29uc3QgJHRhcmdldEVsID0gZWZmZWN0VGFyZ2V0KHBhcmFtcywgJHNsaWRlRWwpO1xuICAgICAgJHRhcmdldEVsLnRyYW5zZm9ybShzbGlkZVRyYW5zZm9ybSk7XG4gICAgICAkc2xpZGVFbFswXS5zdHlsZS56SW5kZXggPSAtTWF0aC5hYnMoTWF0aC5yb3VuZChvZmZzZXRNdWx0aXBsaWVyKSkgKyAxO1xuXG4gICAgICBpZiAocGFyYW1zLnNsaWRlU2hhZG93cykge1xuICAgICAgICAvLyBTZXQgc2hhZG93c1xuICAgICAgICBsZXQgJHNoYWRvd0JlZm9yZUVsID0gaXNIb3Jpem9udGFsID8gJHNsaWRlRWwuZmluZCgnLnN3aXBlci1zbGlkZS1zaGFkb3ctbGVmdCcpIDogJHNsaWRlRWwuZmluZCgnLnN3aXBlci1zbGlkZS1zaGFkb3ctdG9wJyk7XG4gICAgICAgIGxldCAkc2hhZG93QWZ0ZXJFbCA9IGlzSG9yaXpvbnRhbCA/ICRzbGlkZUVsLmZpbmQoJy5zd2lwZXItc2xpZGUtc2hhZG93LXJpZ2h0JykgOiAkc2xpZGVFbC5maW5kKCcuc3dpcGVyLXNsaWRlLXNoYWRvdy1ib3R0b20nKTtcblxuICAgICAgICBpZiAoJHNoYWRvd0JlZm9yZUVsLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICRzaGFkb3dCZWZvcmVFbCA9IGNyZWF0ZVNoYWRvdyhwYXJhbXMsICRzbGlkZUVsLCBpc0hvcml6b250YWwgPyAnbGVmdCcgOiAndG9wJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoJHNoYWRvd0FmdGVyRWwubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgJHNoYWRvd0FmdGVyRWwgPSBjcmVhdGVTaGFkb3cocGFyYW1zLCAkc2xpZGVFbCwgaXNIb3Jpem9udGFsID8gJ3JpZ2h0JyA6ICdib3R0b20nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICgkc2hhZG93QmVmb3JlRWwubGVuZ3RoKSAkc2hhZG93QmVmb3JlRWxbMF0uc3R5bGUub3BhY2l0eSA9IG9mZnNldE11bHRpcGxpZXIgPiAwID8gb2Zmc2V0TXVsdGlwbGllciA6IDA7XG4gICAgICAgIGlmICgkc2hhZG93QWZ0ZXJFbC5sZW5ndGgpICRzaGFkb3dBZnRlckVsWzBdLnN0eWxlLm9wYWNpdHkgPSAtb2Zmc2V0TXVsdGlwbGllciA+IDAgPyAtb2Zmc2V0TXVsdGlwbGllciA6IDA7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHNldFRyYW5zaXRpb24gPSBkdXJhdGlvbiA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgdHJhbnNmb3JtRWxcbiAgICB9ID0gc3dpcGVyLnBhcmFtcy5jb3ZlcmZsb3dFZmZlY3Q7XG4gICAgY29uc3QgJHRyYW5zaXRpb25FbGVtZW50cyA9IHRyYW5zZm9ybUVsID8gc3dpcGVyLnNsaWRlcy5maW5kKHRyYW5zZm9ybUVsKSA6IHN3aXBlci5zbGlkZXM7XG4gICAgJHRyYW5zaXRpb25FbGVtZW50cy50cmFuc2l0aW9uKGR1cmF0aW9uKS5maW5kKCcuc3dpcGVyLXNsaWRlLXNoYWRvdy10b3AsIC5zd2lwZXItc2xpZGUtc2hhZG93LXJpZ2h0LCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1ib3R0b20sIC5zd2lwZXItc2xpZGUtc2hhZG93LWxlZnQnKS50cmFuc2l0aW9uKGR1cmF0aW9uKTtcbiAgfTtcblxuICBlZmZlY3RJbml0KHtcbiAgICBlZmZlY3Q6ICdjb3ZlcmZsb3cnLFxuICAgIHN3aXBlcixcbiAgICBvbixcbiAgICBzZXRUcmFuc2xhdGUsXG4gICAgc2V0VHJhbnNpdGlvbixcbiAgICBwZXJzcGVjdGl2ZTogKCkgPT4gdHJ1ZSxcbiAgICBvdmVyd3JpdGVQYXJhbXM6ICgpID0+ICh7XG4gICAgICB3YXRjaFNsaWRlc1Byb2dyZXNzOiB0cnVlXG4gICAgfSlcbiAgfSk7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/swiper/modules/effect-coverflow/effect-coverflow.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/modules/effect-creative/effect-creative.js": +/*!************************************************************************!*\ + !*** ./node_modules/swiper/modules/effect-creative/effect-creative.js ***! + \************************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ EffectCreative; }\n/* harmony export */ });\n/* harmony import */ var _shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/create-shadow.js */ \"./node_modules/swiper/shared/create-shadow.js\");\n/* harmony import */ var _shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/effect-init.js */ \"./node_modules/swiper/shared/effect-init.js\");\n/* harmony import */ var _shared_effect_target_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/effect-target.js */ \"./node_modules/swiper/shared/effect-target.js\");\n/* harmony import */ var _shared_effect_virtual_transition_end_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../shared/effect-virtual-transition-end.js */ \"./node_modules/swiper/shared/effect-virtual-transition-end.js\");\n\n\n\n\nfunction EffectCreative({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n creativeEffect: {\n transformEl: null,\n limitProgress: 1,\n shadowPerProgress: false,\n progressMultiplier: 1,\n perspective: true,\n prev: {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n opacity: 1,\n scale: 1\n },\n next: {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n opacity: 1,\n scale: 1\n }\n }\n });\n\n const getTranslateValue = value => {\n if (typeof value === 'string') return value;\n return `${value}px`;\n };\n\n const setTranslate = () => {\n const {\n slides,\n $wrapperEl,\n slidesSizesGrid\n } = swiper;\n const params = swiper.params.creativeEffect;\n const {\n progressMultiplier: multiplier\n } = params;\n const isCenteredSlides = swiper.params.centeredSlides;\n\n if (isCenteredSlides) {\n const margin = slidesSizesGrid[0] / 2 - swiper.params.slidesOffsetBefore || 0;\n $wrapperEl.transform(`translateX(calc(50% - ${margin}px))`);\n }\n\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n const slideProgress = $slideEl[0].progress;\n const progress = Math.min(Math.max($slideEl[0].progress, -params.limitProgress), params.limitProgress);\n let originalProgress = progress;\n\n if (!isCenteredSlides) {\n originalProgress = Math.min(Math.max($slideEl[0].originalProgress, -params.limitProgress), params.limitProgress);\n }\n\n const offset = $slideEl[0].swiperSlideOffset;\n const t = [swiper.params.cssMode ? -offset - swiper.translate : -offset, 0, 0];\n const r = [0, 0, 0];\n let custom = false;\n\n if (!swiper.isHorizontal()) {\n t[1] = t[0];\n t[0] = 0;\n }\n\n let data = {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n scale: 1,\n opacity: 1\n };\n\n if (progress < 0) {\n data = params.next;\n custom = true;\n } else if (progress > 0) {\n data = params.prev;\n custom = true;\n } // set translate\n\n\n t.forEach((value, index) => {\n t[index] = `calc(${value}px + (${getTranslateValue(data.translate[index])} * ${Math.abs(progress * multiplier)}))`;\n }); // set rotates\n\n r.forEach((value, index) => {\n r[index] = data.rotate[index] * Math.abs(progress * multiplier);\n });\n $slideEl[0].style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n const translateString = t.join(', ');\n const rotateString = `rotateX(${r[0]}deg) rotateY(${r[1]}deg) rotateZ(${r[2]}deg)`;\n const scaleString = originalProgress < 0 ? `scale(${1 + (1 - data.scale) * originalProgress * multiplier})` : `scale(${1 - (1 - data.scale) * originalProgress * multiplier})`;\n const opacityString = originalProgress < 0 ? 1 + (1 - data.opacity) * originalProgress * multiplier : 1 - (1 - data.opacity) * originalProgress * multiplier;\n const transform = `translate3d(${translateString}) ${rotateString} ${scaleString}`; // Set shadows\n\n if (custom && data.shadow || !custom) {\n let $shadowEl = $slideEl.children('.swiper-slide-shadow');\n\n if ($shadowEl.length === 0 && data.shadow) {\n $shadowEl = (0,_shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(params, $slideEl);\n }\n\n if ($shadowEl.length) {\n const shadowOpacity = params.shadowPerProgress ? progress * (1 / params.limitProgress) : progress;\n $shadowEl[0].style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1);\n }\n }\n\n const $targetEl = (0,_shared_effect_target_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(params, $slideEl);\n $targetEl.transform(transform).css({\n opacity: opacityString\n });\n\n if (data.origin) {\n $targetEl.css('transform-origin', data.origin);\n }\n }\n };\n\n const setTransition = duration => {\n const {\n transformEl\n } = swiper.params.creativeEffect;\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration).find('.swiper-slide-shadow').transition(duration);\n (0,_shared_effect_virtual_transition_end_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])({\n swiper,\n duration,\n transformEl,\n allSlides: true\n });\n };\n\n (0,_shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n effect: 'creative',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => swiper.params.creativeEffect.perspective,\n overwriteParams: () => ({\n watchSlidesProgress: true,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMvZWZmZWN0LWNyZWF0aXZlL2VmZmVjdC1jcmVhdGl2ZS5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUF5RDtBQUNKO0FBQ0k7QUFDOEI7QUFDeEU7QUFDZjtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0EsY0FBYyxNQUFNO0FBQ3BCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOOztBQUVBO0FBQ0E7QUFDQSxvREFBb0QsT0FBTztBQUMzRDs7QUFFQSxvQkFBb0IsbUJBQW1CO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxRQUFROzs7QUFHUjtBQUNBLDJCQUEyQixNQUFNLFFBQVEsMENBQTBDLElBQUksZ0NBQWdDO0FBQ3ZILE9BQU8sR0FBRzs7QUFFVjtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQSxzQ0FBc0MsS0FBSyxlQUFlLEtBQUssZUFBZSxLQUFLO0FBQ25GLDBEQUEwRCxxREFBcUQsY0FBYyxxREFBcUQ7QUFDbEw7QUFDQSx1Q0FBdUMsZ0JBQWdCLElBQUksY0FBYyxFQUFFLFlBQVksR0FBRzs7QUFFMUY7QUFDQTs7QUFFQTtBQUNBLHNCQUFzQixvRUFBWTtBQUNsQzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLHdCQUF3QixvRUFBWTtBQUNwQztBQUNBO0FBQ0EsT0FBTzs7QUFFUDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsSUFBSSxvRkFBMEI7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUEsRUFBRSxrRUFBVTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N3aXBlci9tb2R1bGVzL2VmZmVjdC1jcmVhdGl2ZS9lZmZlY3QtY3JlYXRpdmUuanM/Nzc0NSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlU2hhZG93IGZyb20gJy4uLy4uL3NoYXJlZC9jcmVhdGUtc2hhZG93LmpzJztcbmltcG9ydCBlZmZlY3RJbml0IGZyb20gJy4uLy4uL3NoYXJlZC9lZmZlY3QtaW5pdC5qcyc7XG5pbXBvcnQgZWZmZWN0VGFyZ2V0IGZyb20gJy4uLy4uL3NoYXJlZC9lZmZlY3QtdGFyZ2V0LmpzJztcbmltcG9ydCBlZmZlY3RWaXJ0dWFsVHJhbnNpdGlvbkVuZCBmcm9tICcuLi8uLi9zaGFyZWQvZWZmZWN0LXZpcnR1YWwtdHJhbnNpdGlvbi1lbmQuanMnO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRWZmZWN0Q3JlYXRpdmUoe1xuICBzd2lwZXIsXG4gIGV4dGVuZFBhcmFtcyxcbiAgb25cbn0pIHtcbiAgZXh0ZW5kUGFyYW1zKHtcbiAgICBjcmVhdGl2ZUVmZmVjdDoge1xuICAgICAgdHJhbnNmb3JtRWw6IG51bGwsXG4gICAgICBsaW1pdFByb2dyZXNzOiAxLFxuICAgICAgc2hhZG93UGVyUHJvZ3Jlc3M6IGZhbHNlLFxuICAgICAgcHJvZ3Jlc3NNdWx0aXBsaWVyOiAxLFxuICAgICAgcGVyc3BlY3RpdmU6IHRydWUsXG4gICAgICBwcmV2OiB7XG4gICAgICAgIHRyYW5zbGF0ZTogWzAsIDAsIDBdLFxuICAgICAgICByb3RhdGU6IFswLCAwLCAwXSxcbiAgICAgICAgb3BhY2l0eTogMSxcbiAgICAgICAgc2NhbGU6IDFcbiAgICAgIH0sXG4gICAgICBuZXh0OiB7XG4gICAgICAgIHRyYW5zbGF0ZTogWzAsIDAsIDBdLFxuICAgICAgICByb3RhdGU6IFswLCAwLCAwXSxcbiAgICAgICAgb3BhY2l0eTogMSxcbiAgICAgICAgc2NhbGU6IDFcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIGNvbnN0IGdldFRyYW5zbGF0ZVZhbHVlID0gdmFsdWUgPT4ge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSByZXR1cm4gdmFsdWU7XG4gICAgcmV0dXJuIGAke3ZhbHVlfXB4YDtcbiAgfTtcblxuICBjb25zdCBzZXRUcmFuc2xhdGUgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgc2xpZGVzLFxuICAgICAgJHdyYXBwZXJFbCxcbiAgICAgIHNsaWRlc1NpemVzR3JpZFxuICAgIH0gPSBzd2lwZXI7XG4gICAgY29uc3QgcGFyYW1zID0gc3dpcGVyLnBhcmFtcy5jcmVhdGl2ZUVmZmVjdDtcbiAgICBjb25zdCB7XG4gICAgICBwcm9ncmVzc011bHRpcGxpZXI6IG11bHRpcGxpZXJcbiAgICB9ID0gcGFyYW1zO1xuICAgIGNvbnN0IGlzQ2VudGVyZWRTbGlkZXMgPSBzd2lwZXIucGFyYW1zLmNlbnRlcmVkU2xpZGVzO1xuXG4gICAgaWYgKGlzQ2VudGVyZWRTbGlkZXMpIHtcbiAgICAgIGNvbnN0IG1hcmdpbiA9IHNsaWRlc1NpemVzR3JpZFswXSAvIDIgLSBzd2lwZXIucGFyYW1zLnNsaWRlc09mZnNldEJlZm9yZSB8fCAwO1xuICAgICAgJHdyYXBwZXJFbC50cmFuc2Zvcm0oYHRyYW5zbGF0ZVgoY2FsYyg1MCUgLSAke21hcmdpbn1weCkpYCk7XG4gICAgfVxuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzbGlkZXMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgIGNvbnN0ICRzbGlkZUVsID0gc2xpZGVzLmVxKGkpO1xuICAgICAgY29uc3Qgc2xpZGVQcm9ncmVzcyA9ICRzbGlkZUVsWzBdLnByb2dyZXNzO1xuICAgICAgY29uc3QgcHJvZ3Jlc3MgPSBNYXRoLm1pbihNYXRoLm1heCgkc2xpZGVFbFswXS5wcm9ncmVzcywgLXBhcmFtcy5saW1pdFByb2dyZXNzKSwgcGFyYW1zLmxpbWl0UHJvZ3Jlc3MpO1xuICAgICAgbGV0IG9yaWdpbmFsUHJvZ3Jlc3MgPSBwcm9ncmVzcztcblxuICAgICAgaWYgKCFpc0NlbnRlcmVkU2xpZGVzKSB7XG4gICAgICAgIG9yaWdpbmFsUHJvZ3Jlc3MgPSBNYXRoLm1pbihNYXRoLm1heCgkc2xpZGVFbFswXS5vcmlnaW5hbFByb2dyZXNzLCAtcGFyYW1zLmxpbWl0UHJvZ3Jlc3MpLCBwYXJhbXMubGltaXRQcm9ncmVzcyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG9mZnNldCA9ICRzbGlkZUVsWzBdLnN3aXBlclNsaWRlT2Zmc2V0O1xuICAgICAgY29uc3QgdCA9IFtzd2lwZXIucGFyYW1zLmNzc01vZGUgPyAtb2Zmc2V0IC0gc3dpcGVyLnRyYW5zbGF0ZSA6IC1vZmZzZXQsIDAsIDBdO1xuICAgICAgY29uc3QgciA9IFswLCAwLCAwXTtcbiAgICAgIGxldCBjdXN0b20gPSBmYWxzZTtcblxuICAgICAgaWYgKCFzd2lwZXIuaXNIb3Jpem9udGFsKCkpIHtcbiAgICAgICAgdFsxXSA9IHRbMF07XG4gICAgICAgIHRbMF0gPSAwO1xuICAgICAgfVxuXG4gICAgICBsZXQgZGF0YSA9IHtcbiAgICAgICAgdHJhbnNsYXRlOiBbMCwgMCwgMF0sXG4gICAgICAgIHJvdGF0ZTogWzAsIDAsIDBdLFxuICAgICAgICBzY2FsZTogMSxcbiAgICAgICAgb3BhY2l0eTogMVxuICAgICAgfTtcblxuICAgICAgaWYgKHByb2dyZXNzIDwgMCkge1xuICAgICAgICBkYXRhID0gcGFyYW1zLm5leHQ7XG4gICAgICAgIGN1c3RvbSA9IHRydWU7XG4gICAgICB9IGVsc2UgaWYgKHByb2dyZXNzID4gMCkge1xuICAgICAgICBkYXRhID0gcGFyYW1zLnByZXY7XG4gICAgICAgIGN1c3RvbSA9IHRydWU7XG4gICAgICB9IC8vIHNldCB0cmFuc2xhdGVcblxuXG4gICAgICB0LmZvckVhY2goKHZhbHVlLCBpbmRleCkgPT4ge1xuICAgICAgICB0W2luZGV4XSA9IGBjYWxjKCR7dmFsdWV9cHggKyAoJHtnZXRUcmFuc2xhdGVWYWx1ZShkYXRhLnRyYW5zbGF0ZVtpbmRleF0pfSAqICR7TWF0aC5hYnMocHJvZ3Jlc3MgKiBtdWx0aXBsaWVyKX0pKWA7XG4gICAgICB9KTsgLy8gc2V0IHJvdGF0ZXNcblxuICAgICAgci5mb3JFYWNoKCh2YWx1ZSwgaW5kZXgpID0+IHtcbiAgICAgICAgcltpbmRleF0gPSBkYXRhLnJvdGF0ZVtpbmRleF0gKiBNYXRoLmFicyhwcm9ncmVzcyAqIG11bHRpcGxpZXIpO1xuICAgICAgfSk7XG4gICAgICAkc2xpZGVFbFswXS5zdHlsZS56SW5kZXggPSAtTWF0aC5hYnMoTWF0aC5yb3VuZChzbGlkZVByb2dyZXNzKSkgKyBzbGlkZXMubGVuZ3RoO1xuICAgICAgY29uc3QgdHJhbnNsYXRlU3RyaW5nID0gdC5qb2luKCcsICcpO1xuICAgICAgY29uc3Qgcm90YXRlU3RyaW5nID0gYHJvdGF0ZVgoJHtyWzBdfWRlZykgcm90YXRlWSgke3JbMV19ZGVnKSByb3RhdGVaKCR7clsyXX1kZWcpYDtcbiAgICAgIGNvbnN0IHNjYWxlU3RyaW5nID0gb3JpZ2luYWxQcm9ncmVzcyA8IDAgPyBgc2NhbGUoJHsxICsgKDEgLSBkYXRhLnNjYWxlKSAqIG9yaWdpbmFsUHJvZ3Jlc3MgKiBtdWx0aXBsaWVyfSlgIDogYHNjYWxlKCR7MSAtICgxIC0gZGF0YS5zY2FsZSkgKiBvcmlnaW5hbFByb2dyZXNzICogbXVsdGlwbGllcn0pYDtcbiAgICAgIGNvbnN0IG9wYWNpdHlTdHJpbmcgPSBvcmlnaW5hbFByb2dyZXNzIDwgMCA/IDEgKyAoMSAtIGRhdGEub3BhY2l0eSkgKiBvcmlnaW5hbFByb2dyZXNzICogbXVsdGlwbGllciA6IDEgLSAoMSAtIGRhdGEub3BhY2l0eSkgKiBvcmlnaW5hbFByb2dyZXNzICogbXVsdGlwbGllcjtcbiAgICAgIGNvbnN0IHRyYW5zZm9ybSA9IGB0cmFuc2xhdGUzZCgke3RyYW5zbGF0ZVN0cmluZ30pICR7cm90YXRlU3RyaW5nfSAke3NjYWxlU3RyaW5nfWA7IC8vIFNldCBzaGFkb3dzXG5cbiAgICAgIGlmIChjdXN0b20gJiYgZGF0YS5zaGFkb3cgfHwgIWN1c3RvbSkge1xuICAgICAgICBsZXQgJHNoYWRvd0VsID0gJHNsaWRlRWwuY2hpbGRyZW4oJy5zd2lwZXItc2xpZGUtc2hhZG93Jyk7XG5cbiAgICAgICAgaWYgKCRzaGFkb3dFbC5sZW5ndGggPT09IDAgJiYgZGF0YS5zaGFkb3cpIHtcbiAgICAgICAgICAkc2hhZG93RWwgPSBjcmVhdGVTaGFkb3cocGFyYW1zLCAkc2xpZGVFbCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoJHNoYWRvd0VsLmxlbmd0aCkge1xuICAgICAgICAgIGNvbnN0IHNoYWRvd09wYWNpdHkgPSBwYXJhbXMuc2hhZG93UGVyUHJvZ3Jlc3MgPyBwcm9ncmVzcyAqICgxIC8gcGFyYW1zLmxpbWl0UHJvZ3Jlc3MpIDogcHJvZ3Jlc3M7XG4gICAgICAgICAgJHNoYWRvd0VsWzBdLnN0eWxlLm9wYWNpdHkgPSBNYXRoLm1pbihNYXRoLm1heChNYXRoLmFicyhzaGFkb3dPcGFjaXR5KSwgMCksIDEpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0ICR0YXJnZXRFbCA9IGVmZmVjdFRhcmdldChwYXJhbXMsICRzbGlkZUVsKTtcbiAgICAgICR0YXJnZXRFbC50cmFuc2Zvcm0odHJhbnNmb3JtKS5jc3Moe1xuICAgICAgICBvcGFjaXR5OiBvcGFjaXR5U3RyaW5nXG4gICAgICB9KTtcblxuICAgICAgaWYgKGRhdGEub3JpZ2luKSB7XG4gICAgICAgICR0YXJnZXRFbC5jc3MoJ3RyYW5zZm9ybS1vcmlnaW4nLCBkYXRhLm9yaWdpbik7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHNldFRyYW5zaXRpb24gPSBkdXJhdGlvbiA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgdHJhbnNmb3JtRWxcbiAgICB9ID0gc3dpcGVyLnBhcmFtcy5jcmVhdGl2ZUVmZmVjdDtcbiAgICBjb25zdCAkdHJhbnNpdGlvbkVsZW1lbnRzID0gdHJhbnNmb3JtRWwgPyBzd2lwZXIuc2xpZGVzLmZpbmQodHJhbnNmb3JtRWwpIDogc3dpcGVyLnNsaWRlcztcbiAgICAkdHJhbnNpdGlvbkVsZW1lbnRzLnRyYW5zaXRpb24oZHVyYXRpb24pLmZpbmQoJy5zd2lwZXItc2xpZGUtc2hhZG93JykudHJhbnNpdGlvbihkdXJhdGlvbik7XG4gICAgZWZmZWN0VmlydHVhbFRyYW5zaXRpb25FbmQoe1xuICAgICAgc3dpcGVyLFxuICAgICAgZHVyYXRpb24sXG4gICAgICB0cmFuc2Zvcm1FbCxcbiAgICAgIGFsbFNsaWRlczogdHJ1ZVxuICAgIH0pO1xuICB9O1xuXG4gIGVmZmVjdEluaXQoe1xuICAgIGVmZmVjdDogJ2NyZWF0aXZlJyxcbiAgICBzd2lwZXIsXG4gICAgb24sXG4gICAgc2V0VHJhbnNsYXRlLFxuICAgIHNldFRyYW5zaXRpb24sXG4gICAgcGVyc3BlY3RpdmU6ICgpID0+IHN3aXBlci5wYXJhbXMuY3JlYXRpdmVFZmZlY3QucGVyc3BlY3RpdmUsXG4gICAgb3ZlcndyaXRlUGFyYW1zOiAoKSA9PiAoe1xuICAgICAgd2F0Y2hTbGlkZXNQcm9ncmVzczogdHJ1ZSxcbiAgICAgIHZpcnR1YWxUcmFuc2xhdGU6ICFzd2lwZXIucGFyYW1zLmNzc01vZGVcbiAgICB9KVxuICB9KTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/swiper/modules/effect-creative/effect-creative.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/modules/effect-cube/effect-cube.js": +/*!****************************************************************!*\ + !*** ./node_modules/swiper/modules/effect-cube/effect-cube.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ EffectCube; }\n/* harmony export */ });\n/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/dom.js */ \"./node_modules/swiper/shared/dom.js\");\n/* harmony import */ var _shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/effect-init.js */ \"./node_modules/swiper/shared/effect-init.js\");\n\n\nfunction EffectCube({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94\n }\n });\n\n const setTranslate = () => {\n const {\n $el,\n $wrapperEl,\n slides,\n width: swiperWidth,\n height: swiperHeight,\n rtlTranslate: rtl,\n size: swiperSize,\n browser\n } = swiper;\n const params = swiper.params.cubeEffect;\n const isHorizontal = swiper.isHorizontal();\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let wrapperRotate = 0;\n let $cubeShadowEl;\n\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow');\n\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])('<div class=\"swiper-cube-shadow\"></div>');\n $wrapperEl.append($cubeShadowEl);\n }\n\n $cubeShadowEl.css({\n height: `${swiperWidth}px`\n });\n } else {\n $cubeShadowEl = $el.find('.swiper-cube-shadow');\n\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])('<div class=\"swiper-cube-shadow\"></div>');\n $el.append($cubeShadowEl);\n }\n }\n }\n\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n let slideIndex = i;\n\n if (isVirtual) {\n slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10);\n }\n\n let slideAngle = slideIndex * 90;\n let round = Math.floor(slideAngle / 360);\n\n if (rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n\n const progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n let tx = 0;\n let ty = 0;\n let tz = 0;\n\n if (slideIndex % 4 === 0) {\n tx = -round * 4 * swiperSize;\n tz = 0;\n } else if ((slideIndex - 1) % 4 === 0) {\n tx = 0;\n tz = -round * 4 * swiperSize;\n } else if ((slideIndex - 2) % 4 === 0) {\n tx = swiperSize + round * 4 * swiperSize;\n tz = swiperSize;\n } else if ((slideIndex - 3) % 4 === 0) {\n tx = -swiperSize;\n tz = 3 * swiperSize + swiperSize * 4 * round;\n }\n\n if (rtl) {\n tx = -tx;\n }\n\n if (!isHorizontal) {\n ty = tx;\n tx = 0;\n }\n\n const transform = `rotateX(${isHorizontal ? 0 : -slideAngle}deg) rotateY(${isHorizontal ? slideAngle : 0}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`;\n\n if (progress <= 1 && progress > -1) {\n wrapperRotate = slideIndex * 90 + progress * 90;\n if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;\n }\n\n $slideEl.transform(transform);\n\n if (params.slideShadows) {\n // Set shadows\n let shadowBefore = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let shadowAfter = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n if (shadowBefore.length === 0) {\n shadowBefore = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(`<div class=\"swiper-slide-shadow-${isHorizontal ? 'left' : 'top'}\"></div>`);\n $slideEl.append(shadowBefore);\n }\n\n if (shadowAfter.length === 0) {\n shadowAfter = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(`<div class=\"swiper-slide-shadow-${isHorizontal ? 'right' : 'bottom'}\"></div>`);\n $slideEl.append(shadowAfter);\n }\n\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n }\n\n $wrapperEl.css({\n '-webkit-transform-origin': `50% 50% -${swiperSize / 2}px`,\n 'transform-origin': `50% 50% -${swiperSize / 2}px`\n });\n\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl.transform(`translate3d(0px, ${swiperWidth / 2 + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(90deg) rotateZ(0deg) scale(${params.shadowScale})`);\n } else {\n const shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;\n const multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);\n const scale1 = params.shadowScale;\n const scale2 = params.shadowScale / multiplier;\n const offset = params.shadowOffset;\n $cubeShadowEl.transform(`scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${swiperHeight / 2 + offset}px, ${-swiperHeight / 2 / scale2}px) rotateX(-90deg)`);\n }\n }\n\n const zFactor = browser.isSafari || browser.isWebView ? -swiperSize / 2 : 0;\n $wrapperEl.transform(`translate3d(0px,0,${zFactor}px) rotateX(${swiper.isHorizontal() ? 0 : wrapperRotate}deg) rotateY(${swiper.isHorizontal() ? -wrapperRotate : 0}deg)`);\n };\n\n const setTransition = duration => {\n const {\n $el,\n slides\n } = swiper;\n slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n $el.find('.swiper-cube-shadow').transition(duration);\n }\n };\n\n (0,_shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n effect: 'cube',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => true,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n resistanceRatio: 0,\n spaceBetween: 0,\n centeredSlides: false,\n virtualTranslate: true\n })\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMvZWZmZWN0LWN1YmUvZWZmZWN0LWN1YmUuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQW9DO0FBQ2lCO0FBQ3RDO0FBQ2Y7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDBCQUEwQiwwREFBQztBQUMzQjtBQUNBOztBQUVBO0FBQ0EscUJBQXFCLFlBQVk7QUFDakMsU0FBUztBQUNULFFBQVE7QUFDUjs7QUFFQTtBQUNBLDBCQUEwQiwwREFBQztBQUMzQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxvQkFBb0IsbUJBQW1CO0FBQ3ZDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLG1DQUFtQywrQkFBK0IsZUFBZSw4QkFBOEIsbUJBQW1CLEdBQUcsTUFBTSxHQUFHLE1BQU0sR0FBRzs7QUFFdko7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSx5QkFBeUIsMERBQUMsb0NBQW9DLDhCQUE4QjtBQUM1RjtBQUNBOztBQUVBO0FBQ0Esd0JBQXdCLDBEQUFDLG9DQUFvQyxrQ0FBa0M7QUFDL0Y7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDhDQUE4QyxlQUFlO0FBQzdELHNDQUFzQyxlQUFlO0FBQ3JELEtBQUs7O0FBRUw7QUFDQTtBQUNBLG9EQUFvRCxzQ0FBc0MsTUFBTSxpQkFBaUIseUNBQXlDLG1CQUFtQjtBQUM3SyxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQyxPQUFPLE9BQU8sT0FBTyxxQkFBcUIsMEJBQTBCLE1BQU0sMkJBQTJCO0FBQ2hKO0FBQ0E7O0FBRUE7QUFDQSw4Q0FBOEMsUUFBUSxjQUFjLDBDQUEwQyxlQUFlLDJDQUEyQztBQUN4Szs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxFQUFFLGtFQUFVO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N3aXBlci9tb2R1bGVzL2VmZmVjdC1jdWJlL2VmZmVjdC1jdWJlLmpzP2ZkNDMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnLi4vLi4vc2hhcmVkL2RvbS5qcyc7XG5pbXBvcnQgZWZmZWN0SW5pdCBmcm9tICcuLi8uLi9zaGFyZWQvZWZmZWN0LWluaXQuanMnO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRWZmZWN0Q3ViZSh7XG4gIHN3aXBlcixcbiAgZXh0ZW5kUGFyYW1zLFxuICBvblxufSkge1xuICBleHRlbmRQYXJhbXMoe1xuICAgIGN1YmVFZmZlY3Q6IHtcbiAgICAgIHNsaWRlU2hhZG93czogdHJ1ZSxcbiAgICAgIHNoYWRvdzogdHJ1ZSxcbiAgICAgIHNoYWRvd09mZnNldDogMjAsXG4gICAgICBzaGFkb3dTY2FsZTogMC45NFxuICAgIH1cbiAgfSk7XG5cbiAgY29uc3Qgc2V0VHJhbnNsYXRlID0gKCkgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgICRlbCxcbiAgICAgICR3cmFwcGVyRWwsXG4gICAgICBzbGlkZXMsXG4gICAgICB3aWR0aDogc3dpcGVyV2lkdGgsXG4gICAgICBoZWlnaHQ6IHN3aXBlckhlaWdodCxcbiAgICAgIHJ0bFRyYW5zbGF0ZTogcnRsLFxuICAgICAgc2l6ZTogc3dpcGVyU2l6ZSxcbiAgICAgIGJyb3dzZXJcbiAgICB9ID0gc3dpcGVyO1xuICAgIGNvbnN0IHBhcmFtcyA9IHN3aXBlci5wYXJhbXMuY3ViZUVmZmVjdDtcbiAgICBjb25zdCBpc0hvcml6b250YWwgPSBzd2lwZXIuaXNIb3Jpem9udGFsKCk7XG4gICAgY29uc3QgaXNWaXJ0dWFsID0gc3dpcGVyLnZpcnR1YWwgJiYgc3dpcGVyLnBhcmFtcy52aXJ0dWFsLmVuYWJsZWQ7XG4gICAgbGV0IHdyYXBwZXJSb3RhdGUgPSAwO1xuICAgIGxldCAkY3ViZVNoYWRvd0VsO1xuXG4gICAgaWYgKHBhcmFtcy5zaGFkb3cpIHtcbiAgICAgIGlmIChpc0hvcml6b250YWwpIHtcbiAgICAgICAgJGN1YmVTaGFkb3dFbCA9ICR3cmFwcGVyRWwuZmluZCgnLnN3aXBlci1jdWJlLXNoYWRvdycpO1xuXG4gICAgICAgIGlmICgkY3ViZVNoYWRvd0VsLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICRjdWJlU2hhZG93RWwgPSAkKCc8ZGl2IGNsYXNzPVwic3dpcGVyLWN1YmUtc2hhZG93XCI+PC9kaXY+Jyk7XG4gICAgICAgICAgJHdyYXBwZXJFbC5hcHBlbmQoJGN1YmVTaGFkb3dFbCk7XG4gICAgICAgIH1cblxuICAgICAgICAkY3ViZVNoYWRvd0VsLmNzcyh7XG4gICAgICAgICAgaGVpZ2h0OiBgJHtzd2lwZXJXaWR0aH1weGBcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAkY3ViZVNoYWRvd0VsID0gJGVsLmZpbmQoJy5zd2lwZXItY3ViZS1zaGFkb3cnKTtcblxuICAgICAgICBpZiAoJGN1YmVTaGFkb3dFbC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAkY3ViZVNoYWRvd0VsID0gJCgnPGRpdiBjbGFzcz1cInN3aXBlci1jdWJlLXNoYWRvd1wiPjwvZGl2PicpO1xuICAgICAgICAgICRlbC5hcHBlbmQoJGN1YmVTaGFkb3dFbCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNsaWRlcy5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgY29uc3QgJHNsaWRlRWwgPSBzbGlkZXMuZXEoaSk7XG4gICAgICBsZXQgc2xpZGVJbmRleCA9IGk7XG5cbiAgICAgIGlmIChpc1ZpcnR1YWwpIHtcbiAgICAgICAgc2xpZGVJbmRleCA9IHBhcnNlSW50KCRzbGlkZUVsLmF0dHIoJ2RhdGEtc3dpcGVyLXNsaWRlLWluZGV4JyksIDEwKTtcbiAgICAgIH1cblxuICAgICAgbGV0IHNsaWRlQW5nbGUgPSBzbGlkZUluZGV4ICogOTA7XG4gICAgICBsZXQgcm91bmQgPSBNYXRoLmZsb29yKHNsaWRlQW5nbGUgLyAzNjApO1xuXG4gICAgICBpZiAocnRsKSB7XG4gICAgICAgIHNsaWRlQW5nbGUgPSAtc2xpZGVBbmdsZTtcbiAgICAgICAgcm91bmQgPSBNYXRoLmZsb29yKC1zbGlkZUFuZ2xlIC8gMzYwKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcHJvZ3Jlc3MgPSBNYXRoLm1heChNYXRoLm1pbigkc2xpZGVFbFswXS5wcm9ncmVzcywgMSksIC0xKTtcbiAgICAgIGxldCB0eCA9IDA7XG4gICAgICBsZXQgdHkgPSAwO1xuICAgICAgbGV0IHR6ID0gMDtcblxuICAgICAgaWYgKHNsaWRlSW5kZXggJSA0ID09PSAwKSB7XG4gICAgICAgIHR4ID0gLXJvdW5kICogNCAqIHN3aXBlclNpemU7XG4gICAgICAgIHR6ID0gMDtcbiAgICAgIH0gZWxzZSBpZiAoKHNsaWRlSW5kZXggLSAxKSAlIDQgPT09IDApIHtcbiAgICAgICAgdHggPSAwO1xuICAgICAgICB0eiA9IC1yb3VuZCAqIDQgKiBzd2lwZXJTaXplO1xuICAgICAgfSBlbHNlIGlmICgoc2xpZGVJbmRleCAtIDIpICUgNCA9PT0gMCkge1xuICAgICAgICB0eCA9IHN3aXBlclNpemUgKyByb3VuZCAqIDQgKiBzd2lwZXJTaXplO1xuICAgICAgICB0eiA9IHN3aXBlclNpemU7XG4gICAgICB9IGVsc2UgaWYgKChzbGlkZUluZGV4IC0gMykgJSA0ID09PSAwKSB7XG4gICAgICAgIHR4ID0gLXN3aXBlclNpemU7XG4gICAgICAgIHR6ID0gMyAqIHN3aXBlclNpemUgKyBzd2lwZXJTaXplICogNCAqIHJvdW5kO1xuICAgICAgfVxuXG4gICAgICBpZiAocnRsKSB7XG4gICAgICAgIHR4ID0gLXR4O1xuICAgICAgfVxuXG4gICAgICBpZiAoIWlzSG9yaXpvbnRhbCkge1xuICAgICAgICB0eSA9IHR4O1xuICAgICAgICB0eCA9IDA7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHRyYW5zZm9ybSA9IGByb3RhdGVYKCR7aXNIb3Jpem9udGFsID8gMCA6IC1zbGlkZUFuZ2xlfWRlZykgcm90YXRlWSgke2lzSG9yaXpvbnRhbCA/IHNsaWRlQW5nbGUgOiAwfWRlZykgdHJhbnNsYXRlM2QoJHt0eH1weCwgJHt0eX1weCwgJHt0en1weClgO1xuXG4gICAgICBpZiAocHJvZ3Jlc3MgPD0gMSAmJiBwcm9ncmVzcyA+IC0xKSB7XG4gICAgICAgIHdyYXBwZXJSb3RhdGUgPSBzbGlkZUluZGV4ICogOTAgKyBwcm9ncmVzcyAqIDkwO1xuICAgICAgICBpZiAocnRsKSB3cmFwcGVyUm90YXRlID0gLXNsaWRlSW5kZXggKiA5MCAtIHByb2dyZXNzICogOTA7XG4gICAgICB9XG5cbiAgICAgICRzbGlkZUVsLnRyYW5zZm9ybSh0cmFuc2Zvcm0pO1xuXG4gICAgICBpZiAocGFyYW1zLnNsaWRlU2hhZG93cykge1xuICAgICAgICAvLyBTZXQgc2hhZG93c1xuICAgICAgICBsZXQgc2hhZG93QmVmb3JlID0gaXNIb3Jpem9udGFsID8gJHNsaWRlRWwuZmluZCgnLnN3aXBlci1zbGlkZS1zaGFkb3ctbGVmdCcpIDogJHNsaWRlRWwuZmluZCgnLnN3aXBlci1zbGlkZS1zaGFkb3ctdG9wJyk7XG4gICAgICAgIGxldCBzaGFkb3dBZnRlciA9IGlzSG9yaXpvbnRhbCA/ICRzbGlkZUVsLmZpbmQoJy5zd2lwZXItc2xpZGUtc2hhZG93LXJpZ2h0JykgOiAkc2xpZGVFbC5maW5kKCcuc3dpcGVyLXNsaWRlLXNoYWRvdy1ib3R0b20nKTtcblxuICAgICAgICBpZiAoc2hhZG93QmVmb3JlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHNoYWRvd0JlZm9yZSA9ICQoYDxkaXYgY2xhc3M9XCJzd2lwZXItc2xpZGUtc2hhZG93LSR7aXNIb3Jpem9udGFsID8gJ2xlZnQnIDogJ3RvcCd9XCI+PC9kaXY+YCk7XG4gICAgICAgICAgJHNsaWRlRWwuYXBwZW5kKHNoYWRvd0JlZm9yZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc2hhZG93QWZ0ZXIubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgc2hhZG93QWZ0ZXIgPSAkKGA8ZGl2IGNsYXNzPVwic3dpcGVyLXNsaWRlLXNoYWRvdy0ke2lzSG9yaXpvbnRhbCA/ICdyaWdodCcgOiAnYm90dG9tJ31cIj48L2Rpdj5gKTtcbiAgICAgICAgICAkc2xpZGVFbC5hcHBlbmQoc2hhZG93QWZ0ZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNoYWRvd0JlZm9yZS5sZW5ndGgpIHNoYWRvd0JlZm9yZVswXS5zdHlsZS5vcGFjaXR5ID0gTWF0aC5tYXgoLXByb2dyZXNzLCAwKTtcbiAgICAgICAgaWYgKHNoYWRvd0FmdGVyLmxlbmd0aCkgc2hhZG93QWZ0ZXJbMF0uc3R5bGUub3BhY2l0eSA9IE1hdGgubWF4KHByb2dyZXNzLCAwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAkd3JhcHBlckVsLmNzcyh7XG4gICAgICAnLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luJzogYDUwJSA1MCUgLSR7c3dpcGVyU2l6ZSAvIDJ9cHhgLFxuICAgICAgJ3RyYW5zZm9ybS1vcmlnaW4nOiBgNTAlIDUwJSAtJHtzd2lwZXJTaXplIC8gMn1weGBcbiAgICB9KTtcblxuICAgIGlmIChwYXJhbXMuc2hhZG93KSB7XG4gICAgICBpZiAoaXNIb3Jpem9udGFsKSB7XG4gICAgICAgICRjdWJlU2hhZG93RWwudHJhbnNmb3JtKGB0cmFuc2xhdGUzZCgwcHgsICR7c3dpcGVyV2lkdGggLyAyICsgcGFyYW1zLnNoYWRvd09mZnNldH1weCwgJHstc3dpcGVyV2lkdGggLyAyfXB4KSByb3RhdGVYKDkwZGVnKSByb3RhdGVaKDBkZWcpIHNjYWxlKCR7cGFyYW1zLnNoYWRvd1NjYWxlfSlgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHNoYWRvd0FuZ2xlID0gTWF0aC5hYnMod3JhcHBlclJvdGF0ZSkgLSBNYXRoLmZsb29yKE1hdGguYWJzKHdyYXBwZXJSb3RhdGUpIC8gOTApICogOTA7XG4gICAgICAgIGNvbnN0IG11bHRpcGxpZXIgPSAxLjUgLSAoTWF0aC5zaW4oc2hhZG93QW5nbGUgKiAyICogTWF0aC5QSSAvIDM2MCkgLyAyICsgTWF0aC5jb3Moc2hhZG93QW5nbGUgKiAyICogTWF0aC5QSSAvIDM2MCkgLyAyKTtcbiAgICAgICAgY29uc3Qgc2NhbGUxID0gcGFyYW1zLnNoYWRvd1NjYWxlO1xuICAgICAgICBjb25zdCBzY2FsZTIgPSBwYXJhbXMuc2hhZG93U2NhbGUgLyBtdWx0aXBsaWVyO1xuICAgICAgICBjb25zdCBvZmZzZXQgPSBwYXJhbXMuc2hhZG93T2Zmc2V0O1xuICAgICAgICAkY3ViZVNoYWRvd0VsLnRyYW5zZm9ybShgc2NhbGUzZCgke3NjYWxlMX0sIDEsICR7c2NhbGUyfSkgdHJhbnNsYXRlM2QoMHB4LCAke3N3aXBlckhlaWdodCAvIDIgKyBvZmZzZXR9cHgsICR7LXN3aXBlckhlaWdodCAvIDIgLyBzY2FsZTJ9cHgpIHJvdGF0ZVgoLTkwZGVnKWApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHpGYWN0b3IgPSBicm93c2VyLmlzU2FmYXJpIHx8IGJyb3dzZXIuaXNXZWJWaWV3ID8gLXN3aXBlclNpemUgLyAyIDogMDtcbiAgICAkd3JhcHBlckVsLnRyYW5zZm9ybShgdHJhbnNsYXRlM2QoMHB4LDAsJHt6RmFjdG9yfXB4KSByb3RhdGVYKCR7c3dpcGVyLmlzSG9yaXpvbnRhbCgpID8gMCA6IHdyYXBwZXJSb3RhdGV9ZGVnKSByb3RhdGVZKCR7c3dpcGVyLmlzSG9yaXpvbnRhbCgpID8gLXdyYXBwZXJSb3RhdGUgOiAwfWRlZylgKTtcbiAgfTtcblxuICBjb25zdCBzZXRUcmFuc2l0aW9uID0gZHVyYXRpb24gPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgICRlbCxcbiAgICAgIHNsaWRlc1xuICAgIH0gPSBzd2lwZXI7XG4gICAgc2xpZGVzLnRyYW5zaXRpb24oZHVyYXRpb24pLmZpbmQoJy5zd2lwZXItc2xpZGUtc2hhZG93LXRvcCwgLnN3aXBlci1zbGlkZS1zaGFkb3ctcmlnaHQsIC5zd2lwZXItc2xpZGUtc2hhZG93LWJvdHRvbSwgLnN3aXBlci1zbGlkZS1zaGFkb3ctbGVmdCcpLnRyYW5zaXRpb24oZHVyYXRpb24pO1xuXG4gICAgaWYgKHN3aXBlci5wYXJhbXMuY3ViZUVmZmVjdC5zaGFkb3cgJiYgIXN3aXBlci5pc0hvcml6b250YWwoKSkge1xuICAgICAgJGVsLmZpbmQoJy5zd2lwZXItY3ViZS1zaGFkb3cnKS50cmFuc2l0aW9uKGR1cmF0aW9uKTtcbiAgICB9XG4gIH07XG5cbiAgZWZmZWN0SW5pdCh7XG4gICAgZWZmZWN0OiAnY3ViZScsXG4gICAgc3dpcGVyLFxuICAgIG9uLFxuICAgIHNldFRyYW5zbGF0ZSxcbiAgICBzZXRUcmFuc2l0aW9uLFxuICAgIHBlcnNwZWN0aXZlOiAoKSA9PiB0cnVlLFxuICAgIG92ZXJ3cml0ZVBhcmFtczogKCkgPT4gKHtcbiAgICAgIHNsaWRlc1BlclZpZXc6IDEsXG4gICAgICBzbGlkZXNQZXJHcm91cDogMSxcbiAgICAgIHdhdGNoU2xpZGVzUHJvZ3Jlc3M6IHRydWUsXG4gICAgICByZXNpc3RhbmNlUmF0aW86IDAsXG4gICAgICBzcGFjZUJldHdlZW46IDAsXG4gICAgICBjZW50ZXJlZFNsaWRlczogZmFsc2UsXG4gICAgICB2aXJ0dWFsVHJhbnNsYXRlOiB0cnVlXG4gICAgfSlcbiAgfSk7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/swiper/modules/effect-cube/effect-cube.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/modules/effect-fade/effect-fade.js": +/*!****************************************************************!*\ + !*** ./node_modules/swiper/modules/effect-fade/effect-fade.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ EffectFade; }\n/* harmony export */ });\n/* harmony import */ var _shared_effect_init_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/effect-init.js */ \"./node_modules/swiper/shared/effect-init.js\");\n/* harmony import */ var _shared_effect_target_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/effect-target.js */ \"./node_modules/swiper/shared/effect-target.js\");\n/* harmony import */ var _shared_effect_virtual_transition_end_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/effect-virtual-transition-end.js */ \"./node_modules/swiper/shared/effect-virtual-transition-end.js\");\n\n\n\nfunction EffectFade({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n fadeEffect: {\n crossFade: false,\n transformEl: null\n }\n });\n\n const setTranslate = () => {\n const {\n slides\n } = swiper;\n const params = swiper.params.fadeEffect;\n\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = swiper.slides.eq(i);\n const offset = $slideEl[0].swiperSlideOffset;\n let tx = -offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n let ty = 0;\n\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n\n const slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs($slideEl[0].progress), 0) : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\n const $targetEl = (0,_shared_effect_target_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(params, $slideEl);\n $targetEl.css({\n opacity: slideOpacity\n }).transform(`translate3d(${tx}px, ${ty}px, 0px)`);\n }\n };\n\n const setTransition = duration => {\n const {\n transformEl\n } = swiper.params.fadeEffect;\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration);\n (0,_shared_effect_virtual_transition_end_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({\n swiper,\n duration,\n transformEl,\n allSlides: true\n });\n };\n\n (0,_shared_effect_init_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n effect: 'fade',\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMvZWZmZWN0LWZhZGUvZWZmZWN0LWZhZGUuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFxRDtBQUNJO0FBQzhCO0FBQ3hFO0FBQ2Y7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjs7QUFFQSxvQkFBb0IsbUJBQW1CO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSx3QkFBd0Isb0VBQVk7QUFDcEM7QUFDQTtBQUNBLE9BQU8sMkJBQTJCLEdBQUcsTUFBTSxHQUFHO0FBQzlDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxJQUFJLG9GQUEwQjtBQUM5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQSxFQUFFLGtFQUFVO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N3aXBlci9tb2R1bGVzL2VmZmVjdC1mYWRlL2VmZmVjdC1mYWRlLmpzP2IyOTAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGVmZmVjdEluaXQgZnJvbSAnLi4vLi4vc2hhcmVkL2VmZmVjdC1pbml0LmpzJztcbmltcG9ydCBlZmZlY3RUYXJnZXQgZnJvbSAnLi4vLi4vc2hhcmVkL2VmZmVjdC10YXJnZXQuanMnO1xuaW1wb3J0IGVmZmVjdFZpcnR1YWxUcmFuc2l0aW9uRW5kIGZyb20gJy4uLy4uL3NoYXJlZC9lZmZlY3QtdmlydHVhbC10cmFuc2l0aW9uLWVuZC5qcyc7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBFZmZlY3RGYWRlKHtcbiAgc3dpcGVyLFxuICBleHRlbmRQYXJhbXMsXG4gIG9uXG59KSB7XG4gIGV4dGVuZFBhcmFtcyh7XG4gICAgZmFkZUVmZmVjdDoge1xuICAgICAgY3Jvc3NGYWRlOiBmYWxzZSxcbiAgICAgIHRyYW5zZm9ybUVsOiBudWxsXG4gICAgfVxuICB9KTtcblxuICBjb25zdCBzZXRUcmFuc2xhdGUgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgc2xpZGVzXG4gICAgfSA9IHN3aXBlcjtcbiAgICBjb25zdCBwYXJhbXMgPSBzd2lwZXIucGFyYW1zLmZhZGVFZmZlY3Q7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNsaWRlcy5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgY29uc3QgJHNsaWRlRWwgPSBzd2lwZXIuc2xpZGVzLmVxKGkpO1xuICAgICAgY29uc3Qgb2Zmc2V0ID0gJHNsaWRlRWxbMF0uc3dpcGVyU2xpZGVPZmZzZXQ7XG4gICAgICBsZXQgdHggPSAtb2Zmc2V0O1xuICAgICAgaWYgKCFzd2lwZXIucGFyYW1zLnZpcnR1YWxUcmFuc2xhdGUpIHR4IC09IHN3aXBlci50cmFuc2xhdGU7XG4gICAgICBsZXQgdHkgPSAwO1xuXG4gICAgICBpZiAoIXN3aXBlci5pc0hvcml6b250YWwoKSkge1xuICAgICAgICB0eSA9IHR4O1xuICAgICAgICB0eCA9IDA7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHNsaWRlT3BhY2l0eSA9IHN3aXBlci5wYXJhbXMuZmFkZUVmZmVjdC5jcm9zc0ZhZGUgPyBNYXRoLm1heCgxIC0gTWF0aC5hYnMoJHNsaWRlRWxbMF0ucHJvZ3Jlc3MpLCAwKSA6IDEgKyBNYXRoLm1pbihNYXRoLm1heCgkc2xpZGVFbFswXS5wcm9ncmVzcywgLTEpLCAwKTtcbiAgICAgIGNvbnN0ICR0YXJnZXRFbCA9IGVmZmVjdFRhcmdldChwYXJhbXMsICRzbGlkZUVsKTtcbiAgICAgICR0YXJnZXRFbC5jc3Moe1xuICAgICAgICBvcGFjaXR5OiBzbGlkZU9wYWNpdHlcbiAgICAgIH0pLnRyYW5zZm9ybShgdHJhbnNsYXRlM2QoJHt0eH1weCwgJHt0eX1weCwgMHB4KWApO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBzZXRUcmFuc2l0aW9uID0gZHVyYXRpb24gPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIHRyYW5zZm9ybUVsXG4gICAgfSA9IHN3aXBlci5wYXJhbXMuZmFkZUVmZmVjdDtcbiAgICBjb25zdCAkdHJhbnNpdGlvbkVsZW1lbnRzID0gdHJhbnNmb3JtRWwgPyBzd2lwZXIuc2xpZGVzLmZpbmQodHJhbnNmb3JtRWwpIDogc3dpcGVyLnNsaWRlcztcbiAgICAkdHJhbnNpdGlvbkVsZW1lbnRzLnRyYW5zaXRpb24oZHVyYXRpb24pO1xuICAgIGVmZmVjdFZpcnR1YWxUcmFuc2l0aW9uRW5kKHtcbiAgICAgIHN3aXBlcixcbiAgICAgIGR1cmF0aW9uLFxuICAgICAgdHJhbnNmb3JtRWwsXG4gICAgICBhbGxTbGlkZXM6IHRydWVcbiAgICB9KTtcbiAgfTtcblxuICBlZmZlY3RJbml0KHtcbiAgICBlZmZlY3Q6ICdmYWRlJyxcbiAgICBzd2lwZXIsXG4gICAgb24sXG4gICAgc2V0VHJhbnNsYXRlLFxuICAgIHNldFRyYW5zaXRpb24sXG4gICAgb3ZlcndyaXRlUGFyYW1zOiAoKSA9PiAoe1xuICAgICAgc2xpZGVzUGVyVmlldzogMSxcbiAgICAgIHNsaWRlc1Blckdyb3VwOiAxLFxuICAgICAgd2F0Y2hTbGlkZXNQcm9ncmVzczogdHJ1ZSxcbiAgICAgIHNwYWNlQmV0d2VlbjogMCxcbiAgICAgIHZpcnR1YWxUcmFuc2xhdGU6ICFzd2lwZXIucGFyYW1zLmNzc01vZGVcbiAgICB9KVxuICB9KTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/swiper/modules/effect-fade/effect-fade.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/modules/effect-flip/effect-flip.js": +/*!****************************************************************!*\ + !*** ./node_modules/swiper/modules/effect-flip/effect-flip.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ EffectFlip; }\n/* harmony export */ });\n/* harmony import */ var _shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/create-shadow.js */ \"./node_modules/swiper/shared/create-shadow.js\");\n/* harmony import */ var _shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/effect-init.js */ \"./node_modules/swiper/shared/effect-init.js\");\n/* harmony import */ var _shared_effect_target_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/effect-target.js */ \"./node_modules/swiper/shared/effect-target.js\");\n/* harmony import */ var _shared_effect_virtual_transition_end_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../shared/effect-virtual-transition-end.js */ \"./node_modules/swiper/shared/effect-virtual-transition-end.js\");\n\n\n\n\nfunction EffectFlip({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n flipEffect: {\n slideShadows: true,\n limitRotation: true,\n transformEl: null\n }\n });\n\n const setTranslate = () => {\n const {\n slides,\n rtlTranslate: rtl\n } = swiper;\n const params = swiper.params.flipEffect;\n\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n let progress = $slideEl[0].progress;\n\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n }\n\n const offset = $slideEl[0].swiperSlideOffset;\n const rotate = -180 * progress;\n let rotateY = rotate;\n let rotateX = 0;\n let tx = swiper.params.cssMode ? -offset - swiper.translate : -offset;\n let ty = 0;\n\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n rotateX = -rotateY;\n rotateY = 0;\n } else if (rtl) {\n rotateY = -rotateY;\n }\n\n $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n\n if (params.slideShadows) {\n // Set shadows\n let shadowBefore = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let shadowAfter = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n if (shadowBefore.length === 0) {\n shadowBefore = (0,_shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(params, $slideEl, swiper.isHorizontal() ? 'left' : 'top');\n }\n\n if (shadowAfter.length === 0) {\n shadowAfter = (0,_shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(params, $slideEl, swiper.isHorizontal() ? 'right' : 'bottom');\n }\n\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n\n const transform = `translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`;\n const $targetEl = (0,_shared_effect_target_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(params, $slideEl);\n $targetEl.transform(transform);\n }\n };\n\n const setTransition = duration => {\n const {\n transformEl\n } = swiper.params.flipEffect;\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n (0,_shared_effect_virtual_transition_end_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])({\n swiper,\n duration,\n transformEl\n });\n };\n\n (0,_shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n effect: 'flip',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => true,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMvZWZmZWN0LWZsaXAvZWZmZWN0LWZsaXAuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBeUQ7QUFDSjtBQUNJO0FBQzhCO0FBQ3hFO0FBQ2Y7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047O0FBRUEsb0JBQW9CLG1CQUFtQjtBQUN2QztBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EseUJBQXlCLG9FQUFZO0FBQ3JDOztBQUVBO0FBQ0Esd0JBQXdCLG9FQUFZO0FBQ3BDOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSx1Q0FBdUMsR0FBRyxNQUFNLEdBQUcsbUJBQW1CLFFBQVEsZUFBZSxRQUFRO0FBQ3JHLHdCQUF3QixvRUFBWTtBQUNwQztBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxJQUFJLG9GQUEwQjtBQUM5QjtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUEsRUFBRSxrRUFBVTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N3aXBlci9tb2R1bGVzL2VmZmVjdC1mbGlwL2VmZmVjdC1mbGlwLmpzP2IyM2IiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZVNoYWRvdyBmcm9tICcuLi8uLi9zaGFyZWQvY3JlYXRlLXNoYWRvdy5qcyc7XG5pbXBvcnQgZWZmZWN0SW5pdCBmcm9tICcuLi8uLi9zaGFyZWQvZWZmZWN0LWluaXQuanMnO1xuaW1wb3J0IGVmZmVjdFRhcmdldCBmcm9tICcuLi8uLi9zaGFyZWQvZWZmZWN0LXRhcmdldC5qcyc7XG5pbXBvcnQgZWZmZWN0VmlydHVhbFRyYW5zaXRpb25FbmQgZnJvbSAnLi4vLi4vc2hhcmVkL2VmZmVjdC12aXJ0dWFsLXRyYW5zaXRpb24tZW5kLmpzJztcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEVmZmVjdEZsaXAoe1xuICBzd2lwZXIsXG4gIGV4dGVuZFBhcmFtcyxcbiAgb25cbn0pIHtcbiAgZXh0ZW5kUGFyYW1zKHtcbiAgICBmbGlwRWZmZWN0OiB7XG4gICAgICBzbGlkZVNoYWRvd3M6IHRydWUsXG4gICAgICBsaW1pdFJvdGF0aW9uOiB0cnVlLFxuICAgICAgdHJhbnNmb3JtRWw6IG51bGxcbiAgICB9XG4gIH0pO1xuXG4gIGNvbnN0IHNldFRyYW5zbGF0ZSA9ICgpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBzbGlkZXMsXG4gICAgICBydGxUcmFuc2xhdGU6IHJ0bFxuICAgIH0gPSBzd2lwZXI7XG4gICAgY29uc3QgcGFyYW1zID0gc3dpcGVyLnBhcmFtcy5mbGlwRWZmZWN0O1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzbGlkZXMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgIGNvbnN0ICRzbGlkZUVsID0gc2xpZGVzLmVxKGkpO1xuICAgICAgbGV0IHByb2dyZXNzID0gJHNsaWRlRWxbMF0ucHJvZ3Jlc3M7XG5cbiAgICAgIGlmIChzd2lwZXIucGFyYW1zLmZsaXBFZmZlY3QubGltaXRSb3RhdGlvbikge1xuICAgICAgICBwcm9ncmVzcyA9IE1hdGgubWF4KE1hdGgubWluKCRzbGlkZUVsWzBdLnByb2dyZXNzLCAxKSwgLTEpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBvZmZzZXQgPSAkc2xpZGVFbFswXS5zd2lwZXJTbGlkZU9mZnNldDtcbiAgICAgIGNvbnN0IHJvdGF0ZSA9IC0xODAgKiBwcm9ncmVzcztcbiAgICAgIGxldCByb3RhdGVZID0gcm90YXRlO1xuICAgICAgbGV0IHJvdGF0ZVggPSAwO1xuICAgICAgbGV0IHR4ID0gc3dpcGVyLnBhcmFtcy5jc3NNb2RlID8gLW9mZnNldCAtIHN3aXBlci50cmFuc2xhdGUgOiAtb2Zmc2V0O1xuICAgICAgbGV0IHR5ID0gMDtcblxuICAgICAgaWYgKCFzd2lwZXIuaXNIb3Jpem9udGFsKCkpIHtcbiAgICAgICAgdHkgPSB0eDtcbiAgICAgICAgdHggPSAwO1xuICAgICAgICByb3RhdGVYID0gLXJvdGF0ZVk7XG4gICAgICAgIHJvdGF0ZVkgPSAwO1xuICAgICAgfSBlbHNlIGlmIChydGwpIHtcbiAgICAgICAgcm90YXRlWSA9IC1yb3RhdGVZO1xuICAgICAgfVxuXG4gICAgICAkc2xpZGVFbFswXS5zdHlsZS56SW5kZXggPSAtTWF0aC5hYnMoTWF0aC5yb3VuZChwcm9ncmVzcykpICsgc2xpZGVzLmxlbmd0aDtcblxuICAgICAgaWYgKHBhcmFtcy5zbGlkZVNoYWRvd3MpIHtcbiAgICAgICAgLy8gU2V0IHNoYWRvd3NcbiAgICAgICAgbGV0IHNoYWRvd0JlZm9yZSA9IHN3aXBlci5pc0hvcml6b250YWwoKSA/ICRzbGlkZUVsLmZpbmQoJy5zd2lwZXItc2xpZGUtc2hhZG93LWxlZnQnKSA6ICRzbGlkZUVsLmZpbmQoJy5zd2lwZXItc2xpZGUtc2hhZG93LXRvcCcpO1xuICAgICAgICBsZXQgc2hhZG93QWZ0ZXIgPSBzd2lwZXIuaXNIb3Jpem9udGFsKCkgPyAkc2xpZGVFbC5maW5kKCcuc3dpcGVyLXNsaWRlLXNoYWRvdy1yaWdodCcpIDogJHNsaWRlRWwuZmluZCgnLnN3aXBlci1zbGlkZS1zaGFkb3ctYm90dG9tJyk7XG5cbiAgICAgICAgaWYgKHNoYWRvd0JlZm9yZS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICBzaGFkb3dCZWZvcmUgPSBjcmVhdGVTaGFkb3cocGFyYW1zLCAkc2xpZGVFbCwgc3dpcGVyLmlzSG9yaXpvbnRhbCgpID8gJ2xlZnQnIDogJ3RvcCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNoYWRvd0FmdGVyLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHNoYWRvd0FmdGVyID0gY3JlYXRlU2hhZG93KHBhcmFtcywgJHNsaWRlRWwsIHN3aXBlci5pc0hvcml6b250YWwoKSA/ICdyaWdodCcgOiAnYm90dG9tJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc2hhZG93QmVmb3JlLmxlbmd0aCkgc2hhZG93QmVmb3JlWzBdLnN0eWxlLm9wYWNpdHkgPSBNYXRoLm1heCgtcHJvZ3Jlc3MsIDApO1xuICAgICAgICBpZiAoc2hhZG93QWZ0ZXIubGVuZ3RoKSBzaGFkb3dBZnRlclswXS5zdHlsZS5vcGFjaXR5ID0gTWF0aC5tYXgocHJvZ3Jlc3MsIDApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB0cmFuc2Zvcm0gPSBgdHJhbnNsYXRlM2QoJHt0eH1weCwgJHt0eX1weCwgMHB4KSByb3RhdGVYKCR7cm90YXRlWH1kZWcpIHJvdGF0ZVkoJHtyb3RhdGVZfWRlZylgO1xuICAgICAgY29uc3QgJHRhcmdldEVsID0gZWZmZWN0VGFyZ2V0KHBhcmFtcywgJHNsaWRlRWwpO1xuICAgICAgJHRhcmdldEVsLnRyYW5zZm9ybSh0cmFuc2Zvcm0pO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBzZXRUcmFuc2l0aW9uID0gZHVyYXRpb24gPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIHRyYW5zZm9ybUVsXG4gICAgfSA9IHN3aXBlci5wYXJhbXMuZmxpcEVmZmVjdDtcbiAgICBjb25zdCAkdHJhbnNpdGlvbkVsZW1lbnRzID0gdHJhbnNmb3JtRWwgPyBzd2lwZXIuc2xpZGVzLmZpbmQodHJhbnNmb3JtRWwpIDogc3dpcGVyLnNsaWRlcztcbiAgICAkdHJhbnNpdGlvbkVsZW1lbnRzLnRyYW5zaXRpb24oZHVyYXRpb24pLmZpbmQoJy5zd2lwZXItc2xpZGUtc2hhZG93LXRvcCwgLnN3aXBlci1zbGlkZS1zaGFkb3ctcmlnaHQsIC5zd2lwZXItc2xpZGUtc2hhZG93LWJvdHRvbSwgLnN3aXBlci1zbGlkZS1zaGFkb3ctbGVmdCcpLnRyYW5zaXRpb24oZHVyYXRpb24pO1xuICAgIGVmZmVjdFZpcnR1YWxUcmFuc2l0aW9uRW5kKHtcbiAgICAgIHN3aXBlcixcbiAgICAgIGR1cmF0aW9uLFxuICAgICAgdHJhbnNmb3JtRWxcbiAgICB9KTtcbiAgfTtcblxuICBlZmZlY3RJbml0KHtcbiAgICBlZmZlY3Q6ICdmbGlwJyxcbiAgICBzd2lwZXIsXG4gICAgb24sXG4gICAgc2V0VHJhbnNsYXRlLFxuICAgIHNldFRyYW5zaXRpb24sXG4gICAgcGVyc3BlY3RpdmU6ICgpID0+IHRydWUsXG4gICAgb3ZlcndyaXRlUGFyYW1zOiAoKSA9PiAoe1xuICAgICAgc2xpZGVzUGVyVmlldzogMSxcbiAgICAgIHNsaWRlc1Blckdyb3VwOiAxLFxuICAgICAgd2F0Y2hTbGlkZXNQcm9ncmVzczogdHJ1ZSxcbiAgICAgIHNwYWNlQmV0d2VlbjogMCxcbiAgICAgIHZpcnR1YWxUcmFuc2xhdGU6ICFzd2lwZXIucGFyYW1zLmNzc01vZGVcbiAgICB9KVxuICB9KTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/swiper/modules/effect-flip/effect-flip.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/modules/free-mode/free-mode.js": +/*!************************************************************!*\ + !*** ./node_modules/swiper/modules/free-mode/free-mode.js ***! + \************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ freeMode; }\n/* harmony export */ });\n/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ \"./node_modules/swiper/shared/utils.js\");\n\nfunction freeMode({\n swiper,\n extendParams,\n emit,\n once\n}) {\n extendParams({\n freeMode: {\n enabled: false,\n momentum: true,\n momentumRatio: 1,\n momentumBounce: true,\n momentumBounceRatio: 1,\n momentumVelocityRatio: 1,\n sticky: false,\n minimumVelocity: 0.02\n }\n });\n\n function onTouchMove() {\n const {\n touchEventsData: data,\n touches\n } = swiper; // Velocity\n\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.now)()\n });\n }\n\n function onTouchEnd({\n currentPos\n }) {\n const {\n params,\n $wrapperEl,\n rtlTranslate: rtl,\n snapGrid,\n touchEventsData: data\n } = swiper; // Time diff\n\n const touchEndTime = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.now)();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n\n return;\n }\n\n if (params.freeMode.momentum) {\n if (data.velocities.length > 1) {\n const lastMoveEvent = data.velocities.pop();\n const velocityEvent = data.velocities.pop();\n const distance = lastMoveEvent.position - velocityEvent.position;\n const time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n\n if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) {\n swiper.velocity = 0;\n } // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n\n\n if (time > 150 || (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.now)() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n\n swiper.velocity *= params.freeMode.momentumVelocityRatio;\n data.velocities.length = 0;\n let momentumDuration = 1000 * params.freeMode.momentumRatio;\n const momentumDistance = swiper.velocity * momentumDuration;\n let newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n let doBounce = false;\n let afterBouncePosition;\n const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;\n let needsLoopFix;\n\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeMode.sticky) {\n let nextSlide;\n\n for (let j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n\n newPosition = -newPosition;\n }\n\n if (needsLoopFix) {\n once('transitionEnd', () => {\n swiper.loopFix();\n });\n } // Fix duration\n\n\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n\n if (params.freeMode.sticky) {\n // If freeMode.sticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeMode.momentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(() => {\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n emit('_freeModeNoMomentumRelease');\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n emit('_freeModeNoMomentumRelease');\n }\n\n if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n }\n\n Object.assign(swiper, {\n freeMode: {\n onTouchMove,\n onTouchEnd\n }\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMvZnJlZS1tb2RlL2ZyZWUtbW9kZS5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUE0QztBQUM3QjtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxVQUFVOztBQUVoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDs7QUFFQTtBQUNBO0FBQ0EsWUFBWSxxREFBRztBQUNmLEtBQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sVUFBVTs7QUFFaEIseUJBQXlCLHFEQUFHO0FBQzVCOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsVUFBVTtBQUNWOzs7QUFHQSwwQkFBMEIscURBQUc7QUFDN0I7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7O0FBRUE7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7O0FBRUE7QUFDQSxRQUFRO0FBQ1I7O0FBRUEsd0JBQXdCLHFCQUFxQjtBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxRQUFROzs7QUFHUjtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiLFdBQVc7QUFDWCxTQUFTO0FBQ1QsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBLFFBQVE7QUFDUjtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zd2lwZXIvbW9kdWxlcy9mcmVlLW1vZGUvZnJlZS1tb2RlLmpzP2YxODQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbm93IH0gZnJvbSAnLi4vLi4vc2hhcmVkL3V0aWxzLmpzJztcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGZyZWVNb2RlKHtcbiAgc3dpcGVyLFxuICBleHRlbmRQYXJhbXMsXG4gIGVtaXQsXG4gIG9uY2Vcbn0pIHtcbiAgZXh0ZW5kUGFyYW1zKHtcbiAgICBmcmVlTW9kZToge1xuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICBtb21lbnR1bTogdHJ1ZSxcbiAgICAgIG1vbWVudHVtUmF0aW86IDEsXG4gICAgICBtb21lbnR1bUJvdW5jZTogdHJ1ZSxcbiAgICAgIG1vbWVudHVtQm91bmNlUmF0aW86IDEsXG4gICAgICBtb21lbnR1bVZlbG9jaXR5UmF0aW86IDEsXG4gICAgICBzdGlja3k6IGZhbHNlLFxuICAgICAgbWluaW11bVZlbG9jaXR5OiAwLjAyXG4gICAgfVxuICB9KTtcblxuICBmdW5jdGlvbiBvblRvdWNoTW92ZSgpIHtcbiAgICBjb25zdCB7XG4gICAgICB0b3VjaEV2ZW50c0RhdGE6IGRhdGEsXG4gICAgICB0b3VjaGVzXG4gICAgfSA9IHN3aXBlcjsgLy8gVmVsb2NpdHlcblxuICAgIGlmIChkYXRhLnZlbG9jaXRpZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICBkYXRhLnZlbG9jaXRpZXMucHVzaCh7XG4gICAgICAgIHBvc2l0aW9uOiB0b3VjaGVzW3N3aXBlci5pc0hvcml6b250YWwoKSA/ICdzdGFydFgnIDogJ3N0YXJ0WSddLFxuICAgICAgICB0aW1lOiBkYXRhLnRvdWNoU3RhcnRUaW1lXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBkYXRhLnZlbG9jaXRpZXMucHVzaCh7XG4gICAgICBwb3NpdGlvbjogdG91Y2hlc1tzd2lwZXIuaXNIb3Jpem9udGFsKCkgPyAnY3VycmVudFgnIDogJ2N1cnJlbnRZJ10sXG4gICAgICB0aW1lOiBub3coKVxuICAgIH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gb25Ub3VjaEVuZCh7XG4gICAgY3VycmVudFBvc1xuICB9KSB7XG4gICAgY29uc3Qge1xuICAgICAgcGFyYW1zLFxuICAgICAgJHdyYXBwZXJFbCxcbiAgICAgIHJ0bFRyYW5zbGF0ZTogcnRsLFxuICAgICAgc25hcEdyaWQsXG4gICAgICB0b3VjaEV2ZW50c0RhdGE6IGRhdGFcbiAgICB9ID0gc3dpcGVyOyAvLyBUaW1lIGRpZmZcblxuICAgIGNvbnN0IHRvdWNoRW5kVGltZSA9IG5vdygpO1xuICAgIGNvbnN0IHRpbWVEaWZmID0gdG91Y2hFbmRUaW1lIC0gZGF0YS50b3VjaFN0YXJ0VGltZTtcblxuICAgIGlmIChjdXJyZW50UG9zIDwgLXN3aXBlci5taW5UcmFuc2xhdGUoKSkge1xuICAgICAgc3dpcGVyLnNsaWRlVG8oc3dpcGVyLmFjdGl2ZUluZGV4KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoY3VycmVudFBvcyA+IC1zd2lwZXIubWF4VHJhbnNsYXRlKCkpIHtcbiAgICAgIGlmIChzd2lwZXIuc2xpZGVzLmxlbmd0aCA8IHNuYXBHcmlkLmxlbmd0aCkge1xuICAgICAgICBzd2lwZXIuc2xpZGVUbyhzbmFwR3JpZC5sZW5ndGggLSAxKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN3aXBlci5zbGlkZVRvKHN3aXBlci5zbGlkZXMubGVuZ3RoIC0gMSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAocGFyYW1zLmZyZWVNb2RlLm1vbWVudHVtKSB7XG4gICAgICBpZiAoZGF0YS52ZWxvY2l0aWVzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgY29uc3QgbGFzdE1vdmVFdmVudCA9IGRhdGEudmVsb2NpdGllcy5wb3AoKTtcbiAgICAgICAgY29uc3QgdmVsb2NpdHlFdmVudCA9IGRhdGEudmVsb2NpdGllcy5wb3AoKTtcbiAgICAgICAgY29uc3QgZGlzdGFuY2UgPSBsYXN0TW92ZUV2ZW50LnBvc2l0aW9uIC0gdmVsb2NpdHlFdmVudC5wb3NpdGlvbjtcbiAgICAgICAgY29uc3QgdGltZSA9IGxhc3RNb3ZlRXZlbnQudGltZSAtIHZlbG9jaXR5RXZlbnQudGltZTtcbiAgICAgICAgc3dpcGVyLnZlbG9jaXR5ID0gZGlzdGFuY2UgLyB0aW1lO1xuICAgICAgICBzd2lwZXIudmVsb2NpdHkgLz0gMjtcblxuICAgICAgICBpZiAoTWF0aC5hYnMoc3dpcGVyLnZlbG9jaXR5KSA8IHBhcmFtcy5mcmVlTW9kZS5taW5pbXVtVmVsb2NpdHkpIHtcbiAgICAgICAgICBzd2lwZXIudmVsb2NpdHkgPSAwO1xuICAgICAgICB9IC8vIHRoaXMgaW1wbGllcyB0aGF0IHRoZSB1c2VyIHN0b3BwZWQgbW92aW5nIGEgZmluZ2VyIHRoZW4gcmVsZWFzZWQuXG4gICAgICAgIC8vIFRoZXJlIHdvdWxkIGJlIG5vIGV2ZW50cyB3aXRoIGRpc3RhbmNlIHplcm8sIHNvIHRoZSBsYXN0IGV2ZW50IGlzIHN0YWxlLlxuXG5cbiAgICAgICAgaWYgKHRpbWUgPiAxNTAgfHwgbm93KCkgLSBsYXN0TW92ZUV2ZW50LnRpbWUgPiAzMDApIHtcbiAgICAgICAgICBzd2lwZXIudmVsb2NpdHkgPSAwO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzd2lwZXIudmVsb2NpdHkgPSAwO1xuICAgICAgfVxuXG4gICAgICBzd2lwZXIudmVsb2NpdHkgKj0gcGFyYW1zLmZyZWVNb2RlLm1vbWVudHVtVmVsb2NpdHlSYXRpbztcbiAgICAgIGRhdGEudmVsb2NpdGllcy5sZW5ndGggPSAwO1xuICAgICAgbGV0IG1vbWVudHVtRHVyYXRpb24gPSAxMDAwICogcGFyYW1zLmZyZWVNb2RlLm1vbWVudHVtUmF0aW87XG4gICAgICBjb25zdCBtb21lbnR1bURpc3RhbmNlID0gc3dpcGVyLnZlbG9jaXR5ICogbW9tZW50dW1EdXJhdGlvbjtcbiAgICAgIGxldCBuZXdQb3NpdGlvbiA9IHN3aXBlci50cmFuc2xhdGUgKyBtb21lbnR1bURpc3RhbmNlO1xuICAgICAgaWYgKHJ0bCkgbmV3UG9zaXRpb24gPSAtbmV3UG9zaXRpb247XG4gICAgICBsZXQgZG9Cb3VuY2UgPSBmYWxzZTtcbiAgICAgIGxldCBhZnRlckJvdW5jZVBvc2l0aW9uO1xuICAgICAgY29uc3QgYm91bmNlQW1vdW50ID0gTWF0aC5hYnMoc3dpcGVyLnZlbG9jaXR5KSAqIDIwICogcGFyYW1zLmZyZWVNb2RlLm1vbWVudHVtQm91bmNlUmF0aW87XG4gICAgICBsZXQgbmVlZHNMb29wRml4O1xuXG4gICAgICBpZiAobmV3UG9zaXRpb24gPCBzd2lwZXIubWF4VHJhbnNsYXRlKCkpIHtcbiAgICAgICAgaWYgKHBhcmFtcy5mcmVlTW9kZS5tb21lbnR1bUJvdW5jZSkge1xuICAgICAgICAgIGlmIChuZXdQb3NpdGlvbiArIHN3aXBlci5tYXhUcmFuc2xhdGUoKSA8IC1ib3VuY2VBbW91bnQpIHtcbiAgICAgICAgICAgIG5ld1Bvc2l0aW9uID0gc3dpcGVyLm1heFRyYW5zbGF0ZSgpIC0gYm91bmNlQW1vdW50O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGFmdGVyQm91bmNlUG9zaXRpb24gPSBzd2lwZXIubWF4VHJhbnNsYXRlKCk7XG4gICAgICAgICAgZG9Cb3VuY2UgPSB0cnVlO1xuICAgICAgICAgIGRhdGEuYWxsb3dNb21lbnR1bUJvdW5jZSA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbmV3UG9zaXRpb24gPSBzd2lwZXIubWF4VHJhbnNsYXRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocGFyYW1zLmxvb3AgJiYgcGFyYW1zLmNlbnRlcmVkU2xpZGVzKSBuZWVkc0xvb3BGaXggPSB0cnVlO1xuICAgICAgfSBlbHNlIGlmIChuZXdQb3NpdGlvbiA+IHN3aXBlci5taW5UcmFuc2xhdGUoKSkge1xuICAgICAgICBpZiAocGFyYW1zLmZyZWVNb2RlLm1vbWVudHVtQm91bmNlKSB7XG4gICAgICAgICAgaWYgKG5ld1Bvc2l0aW9uIC0gc3dpcGVyLm1pblRyYW5zbGF0ZSgpID4gYm91bmNlQW1vdW50KSB7XG4gICAgICAgICAgICBuZXdQb3NpdGlvbiA9IHN3aXBlci5taW5UcmFuc2xhdGUoKSArIGJvdW5jZUFtb3VudDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBhZnRlckJvdW5jZVBvc2l0aW9uID0gc3dpcGVyLm1pblRyYW5zbGF0ZSgpO1xuICAgICAgICAgIGRvQm91bmNlID0gdHJ1ZTtcbiAgICAgICAgICBkYXRhLmFsbG93TW9tZW50dW1Cb3VuY2UgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5ld1Bvc2l0aW9uID0gc3dpcGVyLm1pblRyYW5zbGF0ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBhcmFtcy5sb29wICYmIHBhcmFtcy5jZW50ZXJlZFNsaWRlcykgbmVlZHNMb29wRml4ID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSBpZiAocGFyYW1zLmZyZWVNb2RlLnN0aWNreSkge1xuICAgICAgICBsZXQgbmV4dFNsaWRlO1xuXG4gICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgc25hcEdyaWQubGVuZ3RoOyBqICs9IDEpIHtcbiAgICAgICAgICBpZiAoc25hcEdyaWRbal0gPiAtbmV3UG9zaXRpb24pIHtcbiAgICAgICAgICAgIG5leHRTbGlkZSA9IGo7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoTWF0aC5hYnMoc25hcEdyaWRbbmV4dFNsaWRlXSAtIG5ld1Bvc2l0aW9uKSA8IE1hdGguYWJzKHNuYXBHcmlkW25leHRTbGlkZSAtIDFdIC0gbmV3UG9zaXRpb24pIHx8IHN3aXBlci5zd2lwZURpcmVjdGlvbiA9PT0gJ25leHQnKSB7XG4gICAgICAgICAgbmV3UG9zaXRpb24gPSBzbmFwR3JpZFtuZXh0U2xpZGVdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5ld1Bvc2l0aW9uID0gc25hcEdyaWRbbmV4dFNsaWRlIC0gMV07XG4gICAgICAgIH1cblxuICAgICAgICBuZXdQb3NpdGlvbiA9IC1uZXdQb3NpdGlvbjtcbiAgICAgIH1cblxuICAgICAgaWYgKG5lZWRzTG9vcEZpeCkge1xuICAgICAgICBvbmNlKCd0cmFuc2l0aW9uRW5kJywgKCkgPT4ge1xuICAgICAgICAgIHN3aXBlci5sb29wRml4KCk7XG4gICAgICAgIH0pO1xuICAgICAgfSAvLyBGaXggZHVyYXRpb25cblxuXG4gICAgICBpZiAoc3dpcGVyLnZlbG9jaXR5ICE9PSAwKSB7XG4gICAgICAgIGlmIChydGwpIHtcbiAgICAgICAgICBtb21lbnR1bUR1cmF0aW9uID0gTWF0aC5hYnMoKC1uZXdQb3NpdGlvbiAtIHN3aXBlci50cmFuc2xhdGUpIC8gc3dpcGVyLnZlbG9jaXR5KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBtb21lbnR1bUR1cmF0aW9uID0gTWF0aC5hYnMoKG5ld1Bvc2l0aW9uIC0gc3dpcGVyLnRyYW5zbGF0ZSkgLyBzd2lwZXIudmVsb2NpdHkpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBhcmFtcy5mcmVlTW9kZS5zdGlja3kpIHtcbiAgICAgICAgICAvLyBJZiBmcmVlTW9kZS5zdGlja3kgaXMgYWN0aXZlIGFuZCB0aGUgdXNlciBlbmRzIGEgc3dpcGUgd2l0aCBhIHNsb3ctdmVsb2NpdHlcbiAgICAgICAgICAvLyBldmVudCwgdGhlbiBkdXJhdGlvbnMgY2FuIGJlIDIwKyBzZWNvbmRzIHRvIHNsaWRlIG9uZSAob3IgemVybyEpIHNsaWRlcy5cbiAgICAgICAgICAvLyBJdCdzIGVhc3kgdG8gc2VlIHRoaXMgd2hlbiBzaW11bGF0aW5nIHRvdWNoIHdpdGggbW91c2UgZXZlbnRzLiBUbyBmaXggdGhpcyxcbiAgICAgICAgICAvLyBsaW1pdCBzaW5nbGUtc2xpZGUgc3dpcGVzIHRvIHRoZSBkZWZhdWx0IHNsaWRlIGR1cmF0aW9uLiBUaGlzIGFsc28gaGFzIHRoZVxuICAgICAgICAgIC8vIG5pY2Ugc2lkZSBlZmZlY3Qgb2YgbWF0Y2hpbmcgc2xpZGUgc3BlZWQgaWYgdGhlIHVzZXIgc3RvcHBlZCBtb3ZpbmcgYmVmb3JlXG4gICAgICAgICAgLy8gbGlmdGluZyBmaW5nZXIgb3IgbW91c2UgdnMuIG1vdmluZyBzbG93bHkgYmVmb3JlIGxpZnRpbmcgdGhlIGZpbmdlci9tb3VzZS5cbiAgICAgICAgICAvLyBGb3IgZmFzdGVyIHN3aXBlcywgYWxzbyBhcHBseSBsaW1pdHMgKGFsYmVpdCBoaWdoZXIgb25lcykuXG4gICAgICAgICAgY29uc3QgbW92ZURpc3RhbmNlID0gTWF0aC5hYnMoKHJ0bCA/IC1uZXdQb3NpdGlvbiA6IG5ld1Bvc2l0aW9uKSAtIHN3aXBlci50cmFuc2xhdGUpO1xuICAgICAgICAgIGNvbnN0IGN1cnJlbnRTbGlkZVNpemUgPSBzd2lwZXIuc2xpZGVzU2l6ZXNHcmlkW3N3aXBlci5hY3RpdmVJbmRleF07XG5cbiAgICAgICAgICBpZiAobW92ZURpc3RhbmNlIDwgY3VycmVudFNsaWRlU2l6ZSkge1xuICAgICAgICAgICAgbW9tZW50dW1EdXJhdGlvbiA9IHBhcmFtcy5zcGVlZDtcbiAgICAgICAgICB9IGVsc2UgaWYgKG1vdmVEaXN0YW5jZSA8IDIgKiBjdXJyZW50U2xpZGVTaXplKSB7XG4gICAgICAgICAgICBtb21lbnR1bUR1cmF0aW9uID0gcGFyYW1zLnNwZWVkICogMS41O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtb21lbnR1bUR1cmF0aW9uID0gcGFyYW1zLnNwZWVkICogMi41O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChwYXJhbXMuZnJlZU1vZGUuc3RpY2t5KSB7XG4gICAgICAgIHN3aXBlci5zbGlkZVRvQ2xvc2VzdCgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChwYXJhbXMuZnJlZU1vZGUubW9tZW50dW1Cb3VuY2UgJiYgZG9Cb3VuY2UpIHtcbiAgICAgICAgc3dpcGVyLnVwZGF0ZVByb2dyZXNzKGFmdGVyQm91bmNlUG9zaXRpb24pO1xuICAgICAgICBzd2lwZXIuc2V0VHJhbnNpdGlvbihtb21lbnR1bUR1cmF0aW9uKTtcbiAgICAgICAgc3dpcGVyLnNldFRyYW5zbGF0ZShuZXdQb3NpdGlvbik7XG4gICAgICAgIHN3aXBlci50cmFuc2l0aW9uU3RhcnQodHJ1ZSwgc3dpcGVyLnN3aXBlRGlyZWN0aW9uKTtcbiAgICAgICAgc3dpcGVyLmFuaW1hdGluZyA9IHRydWU7XG4gICAgICAgICR3cmFwcGVyRWwudHJhbnNpdGlvbkVuZCgoKSA9PiB7XG4gICAgICAgICAgaWYgKCFzd2lwZXIgfHwgc3dpcGVyLmRlc3Ryb3llZCB8fCAhZGF0YS5hbGxvd01vbWVudHVtQm91bmNlKSByZXR1cm47XG4gICAgICAgICAgZW1pdCgnbW9tZW50dW1Cb3VuY2UnKTtcbiAgICAgICAgICBzd2lwZXIuc2V0VHJhbnNpdGlvbihwYXJhbXMuc3BlZWQpO1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgc3dpcGVyLnNldFRyYW5zbGF0ZShhZnRlckJvdW5jZVBvc2l0aW9uKTtcbiAgICAgICAgICAgICR3cmFwcGVyRWwudHJhbnNpdGlvbkVuZCgoKSA9PiB7XG4gICAgICAgICAgICAgIGlmICghc3dpcGVyIHx8IHN3aXBlci5kZXN0cm95ZWQpIHJldHVybjtcbiAgICAgICAgICAgICAgc3dpcGVyLnRyYW5zaXRpb25FbmQoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0sIDApO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAoc3dpcGVyLnZlbG9jaXR5KSB7XG4gICAgICAgIGVtaXQoJ19mcmVlTW9kZU5vTW9tZW50dW1SZWxlYXNlJyk7XG4gICAgICAgIHN3aXBlci51cGRhdGVQcm9ncmVzcyhuZXdQb3NpdGlvbik7XG4gICAgICAgIHN3aXBlci5zZXRUcmFuc2l0aW9uKG1vbWVudHVtRHVyYXRpb24pO1xuICAgICAgICBzd2lwZXIuc2V0VHJhbnNsYXRlKG5ld1Bvc2l0aW9uKTtcbiAgICAgICAgc3dpcGVyLnRyYW5zaXRpb25TdGFydCh0cnVlLCBzd2lwZXIuc3dpcGVEaXJlY3Rpb24pO1xuXG4gICAgICAgIGlmICghc3dpcGVyLmFuaW1hdGluZykge1xuICAgICAgICAgIHN3aXBlci5hbmltYXRpbmcgPSB0cnVlO1xuICAgICAgICAgICR3cmFwcGVyRWwudHJhbnNpdGlvbkVuZCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXN3aXBlciB8fCBzd2lwZXIuZGVzdHJveWVkKSByZXR1cm47XG4gICAgICAgICAgICBzd2lwZXIudHJhbnNpdGlvbkVuZCgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzd2lwZXIudXBkYXRlUHJvZ3Jlc3MobmV3UG9zaXRpb24pO1xuICAgICAgfVxuXG4gICAgICBzd2lwZXIudXBkYXRlQWN0aXZlSW5kZXgoKTtcbiAgICAgIHN3aXBlci51cGRhdGVTbGlkZXNDbGFzc2VzKCk7XG4gICAgfSBlbHNlIGlmIChwYXJhbXMuZnJlZU1vZGUuc3RpY2t5KSB7XG4gICAgICBzd2lwZXIuc2xpZGVUb0Nsb3Nlc3QoKTtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKHBhcmFtcy5mcmVlTW9kZSkge1xuICAgICAgZW1pdCgnX2ZyZWVNb2RlTm9Nb21lbnR1bVJlbGVhc2UnKTtcbiAgICB9XG5cbiAgICBpZiAoIXBhcmFtcy5mcmVlTW9kZS5tb21lbnR1bSB8fCB0aW1lRGlmZiA+PSBwYXJhbXMubG9uZ1N3aXBlc01zKSB7XG4gICAgICBzd2lwZXIudXBkYXRlUHJvZ3Jlc3MoKTtcbiAgICAgIHN3aXBlci51cGRhdGVBY3RpdmVJbmRleCgpO1xuICAgICAgc3dpcGVyLnVwZGF0ZVNsaWRlc0NsYXNzZXMoKTtcbiAgICB9XG4gIH1cblxuICBPYmplY3QuYXNzaWduKHN3aXBlciwge1xuICAgIGZyZWVNb2RlOiB7XG4gICAgICBvblRvdWNoTW92ZSxcbiAgICAgIG9uVG91Y2hFbmRcbiAgICB9XG4gIH0pO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/swiper/modules/free-mode/free-mode.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/modules/grid/grid.js": +/*!**************************************************!*\ + !*** ./node_modules/swiper/modules/grid/grid.js ***! + \**************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ Grid; }\n/* harmony export */ });\nfunction Grid({\n swiper,\n extendParams\n}) {\n extendParams({\n grid: {\n rows: 1,\n fill: 'column'\n }\n });\n let slidesNumberEvenToRows;\n let slidesPerRow;\n let numFullColumns;\n\n const initSlides = slidesLength => {\n const {\n slidesPerView\n } = swiper.params;\n const {\n rows,\n fill\n } = swiper.params.grid;\n slidesPerRow = slidesNumberEvenToRows / rows;\n numFullColumns = Math.floor(slidesLength / rows);\n\n if (Math.floor(slidesLength / rows) === slidesLength / rows) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows;\n }\n\n if (slidesPerView !== 'auto' && fill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows);\n }\n };\n\n const updateSlide = (i, slide, slidesLength, getDirectionLabel) => {\n const {\n slidesPerGroup,\n spaceBetween\n } = swiper.params;\n const {\n rows,\n fill\n } = swiper.params.grid; // Set slides order\n\n let newSlideOrderIndex;\n let column;\n let row;\n\n if (fill === 'row' && slidesPerGroup > 1) {\n const groupIndex = Math.floor(i / (slidesPerGroup * rows));\n const slideIndexInGroup = i - rows * slidesPerGroup * groupIndex;\n const columnsInGroup = groupIndex === 0 ? slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows), slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / rows;\n slide.css({\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex\n });\n } else if (fill === 'column') {\n column = Math.floor(i / rows);\n row = i - column * rows;\n\n if (column > numFullColumns || column === numFullColumns && row === rows - 1) {\n row += 1;\n\n if (row >= rows) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n\n slide.css(getDirectionLabel('margin-top'), row !== 0 ? spaceBetween && `${spaceBetween}px` : '');\n };\n\n const updateWrapperSize = (slideSize, snapGrid, getDirectionLabel) => {\n const {\n spaceBetween,\n centeredSlides,\n roundLengths\n } = swiper.params;\n const {\n rows\n } = swiper.params.grid;\n swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween;\n swiper.$wrapperEl.css({\n [getDirectionLabel('width')]: `${swiper.virtualSize + spaceBetween}px`\n });\n\n if (centeredSlides) {\n snapGrid.splice(0, snapGrid.length);\n const newSlidesGrid = [];\n\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n\n snapGrid.push(...newSlidesGrid);\n }\n };\n\n swiper.grid = {\n initSlides,\n updateSlide,\n updateWrapperSize\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMvZ3JpZC9ncmlkLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBZTtBQUNmO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQSxNQUFNLHNCQUFzQjs7QUFFNUI7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLE1BQU07QUFDTjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUEsOEVBQThFLGFBQWE7QUFDM0Y7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBLHVDQUF1QyxrQ0FBa0M7QUFDekUsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7O0FBRUEsc0JBQXNCLHFCQUFxQjtBQUMzQztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zd2lwZXIvbW9kdWxlcy9ncmlkL2dyaWQuanM/MTYxYyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBHcmlkKHtcbiAgc3dpcGVyLFxuICBleHRlbmRQYXJhbXNcbn0pIHtcbiAgZXh0ZW5kUGFyYW1zKHtcbiAgICBncmlkOiB7XG4gICAgICByb3dzOiAxLFxuICAgICAgZmlsbDogJ2NvbHVtbidcbiAgICB9XG4gIH0pO1xuICBsZXQgc2xpZGVzTnVtYmVyRXZlblRvUm93cztcbiAgbGV0IHNsaWRlc1BlclJvdztcbiAgbGV0IG51bUZ1bGxDb2x1bW5zO1xuXG4gIGNvbnN0IGluaXRTbGlkZXMgPSBzbGlkZXNMZW5ndGggPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIHNsaWRlc1BlclZpZXdcbiAgICB9ID0gc3dpcGVyLnBhcmFtcztcbiAgICBjb25zdCB7XG4gICAgICByb3dzLFxuICAgICAgZmlsbFxuICAgIH0gPSBzd2lwZXIucGFyYW1zLmdyaWQ7XG4gICAgc2xpZGVzUGVyUm93ID0gc2xpZGVzTnVtYmVyRXZlblRvUm93cyAvIHJvd3M7XG4gICAgbnVtRnVsbENvbHVtbnMgPSBNYXRoLmZsb29yKHNsaWRlc0xlbmd0aCAvIHJvd3MpO1xuXG4gICAgaWYgKE1hdGguZmxvb3Ioc2xpZGVzTGVuZ3RoIC8gcm93cykgPT09IHNsaWRlc0xlbmd0aCAvIHJvd3MpIHtcbiAgICAgIHNsaWRlc051bWJlckV2ZW5Ub1Jvd3MgPSBzbGlkZXNMZW5ndGg7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNsaWRlc051bWJlckV2ZW5Ub1Jvd3MgPSBNYXRoLmNlaWwoc2xpZGVzTGVuZ3RoIC8gcm93cykgKiByb3dzO1xuICAgIH1cblxuICAgIGlmIChzbGlkZXNQZXJWaWV3ICE9PSAnYXV0bycgJiYgZmlsbCA9PT0gJ3JvdycpIHtcbiAgICAgIHNsaWRlc051bWJlckV2ZW5Ub1Jvd3MgPSBNYXRoLm1heChzbGlkZXNOdW1iZXJFdmVuVG9Sb3dzLCBzbGlkZXNQZXJWaWV3ICogcm93cyk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHVwZGF0ZVNsaWRlID0gKGksIHNsaWRlLCBzbGlkZXNMZW5ndGgsIGdldERpcmVjdGlvbkxhYmVsKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgc2xpZGVzUGVyR3JvdXAsXG4gICAgICBzcGFjZUJldHdlZW5cbiAgICB9ID0gc3dpcGVyLnBhcmFtcztcbiAgICBjb25zdCB7XG4gICAgICByb3dzLFxuICAgICAgZmlsbFxuICAgIH0gPSBzd2lwZXIucGFyYW1zLmdyaWQ7IC8vIFNldCBzbGlkZXMgb3JkZXJcblxuICAgIGxldCBuZXdTbGlkZU9yZGVySW5kZXg7XG4gICAgbGV0IGNvbHVtbjtcbiAgICBsZXQgcm93O1xuXG4gICAgaWYgKGZpbGwgPT09ICdyb3cnICYmIHNsaWRlc1Blckdyb3VwID4gMSkge1xuICAgICAgY29uc3QgZ3JvdXBJbmRleCA9IE1hdGguZmxvb3IoaSAvIChzbGlkZXNQZXJHcm91cCAqIHJvd3MpKTtcbiAgICAgIGNvbnN0IHNsaWRlSW5kZXhJbkdyb3VwID0gaSAtIHJvd3MgKiBzbGlkZXNQZXJHcm91cCAqIGdyb3VwSW5kZXg7XG4gICAgICBjb25zdCBjb2x1bW5zSW5Hcm91cCA9IGdyb3VwSW5kZXggPT09IDAgPyBzbGlkZXNQZXJHcm91cCA6IE1hdGgubWluKE1hdGguY2VpbCgoc2xpZGVzTGVuZ3RoIC0gZ3JvdXBJbmRleCAqIHJvd3MgKiBzbGlkZXNQZXJHcm91cCkgLyByb3dzKSwgc2xpZGVzUGVyR3JvdXApO1xuICAgICAgcm93ID0gTWF0aC5mbG9vcihzbGlkZUluZGV4SW5Hcm91cCAvIGNvbHVtbnNJbkdyb3VwKTtcbiAgICAgIGNvbHVtbiA9IHNsaWRlSW5kZXhJbkdyb3VwIC0gcm93ICogY29sdW1uc0luR3JvdXAgKyBncm91cEluZGV4ICogc2xpZGVzUGVyR3JvdXA7XG4gICAgICBuZXdTbGlkZU9yZGVySW5kZXggPSBjb2x1bW4gKyByb3cgKiBzbGlkZXNOdW1iZXJFdmVuVG9Sb3dzIC8gcm93cztcbiAgICAgIHNsaWRlLmNzcyh7XG4gICAgICAgICctd2Via2l0LW9yZGVyJzogbmV3U2xpZGVPcmRlckluZGV4LFxuICAgICAgICBvcmRlcjogbmV3U2xpZGVPcmRlckluZGV4XG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKGZpbGwgPT09ICdjb2x1bW4nKSB7XG4gICAgICBjb2x1bW4gPSBNYXRoLmZsb29yKGkgLyByb3dzKTtcbiAgICAgIHJvdyA9IGkgLSBjb2x1bW4gKiByb3dzO1xuXG4gICAgICBpZiAoY29sdW1uID4gbnVtRnVsbENvbHVtbnMgfHwgY29sdW1uID09PSBudW1GdWxsQ29sdW1ucyAmJiByb3cgPT09IHJvd3MgLSAxKSB7XG4gICAgICAgIHJvdyArPSAxO1xuXG4gICAgICAgIGlmIChyb3cgPj0gcm93cykge1xuICAgICAgICAgIHJvdyA9IDA7XG4gICAgICAgICAgY29sdW1uICs9IDE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcm93ID0gTWF0aC5mbG9vcihpIC8gc2xpZGVzUGVyUm93KTtcbiAgICAgIGNvbHVtbiA9IGkgLSByb3cgKiBzbGlkZXNQZXJSb3c7XG4gICAgfVxuXG4gICAgc2xpZGUuY3NzKGdldERpcmVjdGlvbkxhYmVsKCdtYXJnaW4tdG9wJyksIHJvdyAhPT0gMCA/IHNwYWNlQmV0d2VlbiAmJiBgJHtzcGFjZUJldHdlZW59cHhgIDogJycpO1xuICB9O1xuXG4gIGNvbnN0IHVwZGF0ZVdyYXBwZXJTaXplID0gKHNsaWRlU2l6ZSwgc25hcEdyaWQsIGdldERpcmVjdGlvbkxhYmVsKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgc3BhY2VCZXR3ZWVuLFxuICAgICAgY2VudGVyZWRTbGlkZXMsXG4gICAgICByb3VuZExlbmd0aHNcbiAgICB9ID0gc3dpcGVyLnBhcmFtcztcbiAgICBjb25zdCB7XG4gICAgICByb3dzXG4gICAgfSA9IHN3aXBlci5wYXJhbXMuZ3JpZDtcbiAgICBzd2lwZXIudmlydHVhbFNpemUgPSAoc2xpZGVTaXplICsgc3BhY2VCZXR3ZWVuKSAqIHNsaWRlc051bWJlckV2ZW5Ub1Jvd3M7XG4gICAgc3dpcGVyLnZpcnR1YWxTaXplID0gTWF0aC5jZWlsKHN3aXBlci52aXJ0dWFsU2l6ZSAvIHJvd3MpIC0gc3BhY2VCZXR3ZWVuO1xuICAgIHN3aXBlci4kd3JhcHBlckVsLmNzcyh7XG4gICAgICBbZ2V0RGlyZWN0aW9uTGFiZWwoJ3dpZHRoJyldOiBgJHtzd2lwZXIudmlydHVhbFNpemUgKyBzcGFjZUJldHdlZW59cHhgXG4gICAgfSk7XG5cbiAgICBpZiAoY2VudGVyZWRTbGlkZXMpIHtcbiAgICAgIHNuYXBHcmlkLnNwbGljZSgwLCBzbmFwR3JpZC5sZW5ndGgpO1xuICAgICAgY29uc3QgbmV3U2xpZGVzR3JpZCA9IFtdO1xuXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNuYXBHcmlkLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICAgIGxldCBzbGlkZXNHcmlkSXRlbSA9IHNuYXBHcmlkW2ldO1xuICAgICAgICBpZiAocm91bmRMZW5ndGhzKSBzbGlkZXNHcmlkSXRlbSA9IE1hdGguZmxvb3Ioc2xpZGVzR3JpZEl0ZW0pO1xuICAgICAgICBpZiAoc25hcEdyaWRbaV0gPCBzd2lwZXIudmlydHVhbFNpemUgKyBzbmFwR3JpZFswXSkgbmV3U2xpZGVzR3JpZC5wdXNoKHNsaWRlc0dyaWRJdGVtKTtcbiAgICAgIH1cblxuICAgICAgc25hcEdyaWQucHVzaCguLi5uZXdTbGlkZXNHcmlkKTtcbiAgICB9XG4gIH07XG5cbiAgc3dpcGVyLmdyaWQgPSB7XG4gICAgaW5pdFNsaWRlcyxcbiAgICB1cGRhdGVTbGlkZSxcbiAgICB1cGRhdGVXcmFwcGVyU2l6ZVxuICB9O1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/swiper/modules/grid/grid.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/modules/hash-navigation/hash-navigation.js": +/*!************************************************************************!*\ + !*** ./node_modules/swiper/modules/hash-navigation/hash-navigation.js ***! + \************************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ HashNavigation; }\n/* harmony export */ });\n/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ \"./node_modules/ssr-window/ssr-window.esm.js\");\n/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ \"./node_modules/swiper/shared/dom.js\");\n\n\nfunction HashNavigation({\n swiper,\n extendParams,\n emit,\n on\n}) {\n let initialized = false;\n const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)();\n const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();\n extendParams({\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false\n }\n });\n\n const onHashChange = () => {\n emit('hashChange');\n const newHash = document.location.hash.replace('#', '');\n const activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash');\n\n if (newHash !== activeSlideHash) {\n const newIndex = swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-hash=\"${newHash}\"]`).index();\n if (typeof newIndex === 'undefined') return;\n swiper.slideTo(newIndex);\n }\n };\n\n const setHash = () => {\n if (!initialized || !swiper.params.hashNavigation.enabled) return;\n\n if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {\n window.history.replaceState(null, null, `#${swiper.slides.eq(swiper.activeIndex).attr('data-hash')}` || '');\n emit('hashSet');\n } else {\n const slide = swiper.slides.eq(swiper.activeIndex);\n const hash = slide.attr('data-hash') || slide.attr('data-history');\n document.location.hash = hash || '';\n emit('hashSet');\n }\n };\n\n const init = () => {\n if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return;\n initialized = true;\n const hash = document.location.hash.replace('#', '');\n\n if (hash) {\n const speed = 0;\n\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides.eq(i);\n const slideHash = slide.attr('data-hash') || slide.attr('data-history');\n\n if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n const index = slide.index();\n swiper.slideTo(index, speed, swiper.params.runCallbacksOnInit, true);\n }\n }\n }\n\n if (swiper.params.hashNavigation.watchState) {\n (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(window).on('hashchange', onHashChange);\n }\n };\n\n const destroy = () => {\n if (swiper.params.hashNavigation.watchState) {\n (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(window).off('hashchange', onHashChange);\n }\n };\n\n on('init', () => {\n if (swiper.params.hashNavigation.enabled) {\n init();\n }\n });\n on('destroy', () => {\n if (swiper.params.hashNavigation.enabled) {\n destroy();\n }\n });\n on('transitionEnd _freeModeNoMomentumRelease', () => {\n if (initialized) {\n setHash();\n }\n });\n on('slideChange', () => {\n if (initialized && swiper.params.cssMode) {\n setHash();\n }\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMvaGFzaC1uYXZpZ2F0aW9uL2hhc2gtbmF2aWdhdGlvbi5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBb0Q7QUFDaEI7QUFDckI7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBLG1CQUFtQix1REFBVztBQUM5QixpQkFBaUIscURBQVM7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHNEQUFzRCx5QkFBeUIsY0FBYyxRQUFRO0FBQ3JHO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxrREFBa0QsdURBQXVEO0FBQ3pHO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBLHFEQUFxRCxZQUFZO0FBQ2pFO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsTUFBTSwwREFBQztBQUNQO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU0sMERBQUM7QUFDUDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zd2lwZXIvbW9kdWxlcy9oYXNoLW5hdmlnYXRpb24vaGFzaC1uYXZpZ2F0aW9uLmpzPzAyZTQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0V2luZG93LCBnZXREb2N1bWVudCB9IGZyb20gJ3Nzci13aW5kb3cnO1xuaW1wb3J0ICQgZnJvbSAnLi4vLi4vc2hhcmVkL2RvbS5qcyc7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBIYXNoTmF2aWdhdGlvbih7XG4gIHN3aXBlcixcbiAgZXh0ZW5kUGFyYW1zLFxuICBlbWl0LFxuICBvblxufSkge1xuICBsZXQgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgY29uc3QgZG9jdW1lbnQgPSBnZXREb2N1bWVudCgpO1xuICBjb25zdCB3aW5kb3cgPSBnZXRXaW5kb3coKTtcbiAgZXh0ZW5kUGFyYW1zKHtcbiAgICBoYXNoTmF2aWdhdGlvbjoge1xuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICByZXBsYWNlU3RhdGU6IGZhbHNlLFxuICAgICAgd2F0Y2hTdGF0ZTogZmFsc2VcbiAgICB9XG4gIH0pO1xuXG4gIGNvbnN0IG9uSGFzaENoYW5nZSA9ICgpID0+IHtcbiAgICBlbWl0KCdoYXNoQ2hhbmdlJyk7XG4gICAgY29uc3QgbmV3SGFzaCA9IGRvY3VtZW50LmxvY2F0aW9uLmhhc2gucmVwbGFjZSgnIycsICcnKTtcbiAgICBjb25zdCBhY3RpdmVTbGlkZUhhc2ggPSBzd2lwZXIuc2xpZGVzLmVxKHN3aXBlci5hY3RpdmVJbmRleCkuYXR0cignZGF0YS1oYXNoJyk7XG5cbiAgICBpZiAobmV3SGFzaCAhPT0gYWN0aXZlU2xpZGVIYXNoKSB7XG4gICAgICBjb25zdCBuZXdJbmRleCA9IHN3aXBlci4kd3JhcHBlckVsLmNoaWxkcmVuKGAuJHtzd2lwZXIucGFyYW1zLnNsaWRlQ2xhc3N9W2RhdGEtaGFzaD1cIiR7bmV3SGFzaH1cIl1gKS5pbmRleCgpO1xuICAgICAgaWYgKHR5cGVvZiBuZXdJbmRleCA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybjtcbiAgICAgIHN3aXBlci5zbGlkZVRvKG5ld0luZGV4KTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3Qgc2V0SGFzaCA9ICgpID0+IHtcbiAgICBpZiAoIWluaXRpYWxpemVkIHx8ICFzd2lwZXIucGFyYW1zLmhhc2hOYXZpZ2F0aW9uLmVuYWJsZWQpIHJldHVybjtcblxuICAgIGlmIChzd2lwZXIucGFyYW1zLmhhc2hOYXZpZ2F0aW9uLnJlcGxhY2VTdGF0ZSAmJiB3aW5kb3cuaGlzdG9yeSAmJiB3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUpIHtcbiAgICAgIHdpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZShudWxsLCBudWxsLCBgIyR7c3dpcGVyLnNsaWRlcy5lcShzd2lwZXIuYWN0aXZlSW5kZXgpLmF0dHIoJ2RhdGEtaGFzaCcpfWAgfHwgJycpO1xuICAgICAgZW1pdCgnaGFzaFNldCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBzbGlkZSA9IHN3aXBlci5zbGlkZXMuZXEoc3dpcGVyLmFjdGl2ZUluZGV4KTtcbiAgICAgIGNvbnN0IGhhc2ggPSBzbGlkZS5hdHRyKCdkYXRhLWhhc2gnKSB8fCBzbGlkZS5hdHRyKCdkYXRhLWhpc3RvcnknKTtcbiAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSBoYXNoIHx8ICcnO1xuICAgICAgZW1pdCgnaGFzaFNldCcpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBpbml0ID0gKCkgPT4ge1xuICAgIGlmICghc3dpcGVyLnBhcmFtcy5oYXNoTmF2aWdhdGlvbi5lbmFibGVkIHx8IHN3aXBlci5wYXJhbXMuaGlzdG9yeSAmJiBzd2lwZXIucGFyYW1zLmhpc3RvcnkuZW5hYmxlZCkgcmV0dXJuO1xuICAgIGluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICBjb25zdCBoYXNoID0gZG9jdW1lbnQubG9jYXRpb24uaGFzaC5yZXBsYWNlKCcjJywgJycpO1xuXG4gICAgaWYgKGhhc2gpIHtcbiAgICAgIGNvbnN0IHNwZWVkID0gMDtcblxuICAgICAgZm9yIChsZXQgaSA9IDAsIGxlbmd0aCA9IHN3aXBlci5zbGlkZXMubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgY29uc3Qgc2xpZGUgPSBzd2lwZXIuc2xpZGVzLmVxKGkpO1xuICAgICAgICBjb25zdCBzbGlkZUhhc2ggPSBzbGlkZS5hdHRyKCdkYXRhLWhhc2gnKSB8fCBzbGlkZS5hdHRyKCdkYXRhLWhpc3RvcnknKTtcblxuICAgICAgICBpZiAoc2xpZGVIYXNoID09PSBoYXNoICYmICFzbGlkZS5oYXNDbGFzcyhzd2lwZXIucGFyYW1zLnNsaWRlRHVwbGljYXRlQ2xhc3MpKSB7XG4gICAgICAgICAgY29uc3QgaW5kZXggPSBzbGlkZS5pbmRleCgpO1xuICAgICAgICAgIHN3aXBlci5zbGlkZVRvKGluZGV4LCBzcGVlZCwgc3dpcGVyLnBhcmFtcy5ydW5DYWxsYmFja3NPbkluaXQsIHRydWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHN3aXBlci5wYXJhbXMuaGFzaE5hdmlnYXRpb24ud2F0Y2hTdGF0ZSkge1xuICAgICAgJCh3aW5kb3cpLm9uKCdoYXNoY2hhbmdlJywgb25IYXNoQ2hhbmdlKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgZGVzdHJveSA9ICgpID0+IHtcbiAgICBpZiAoc3dpcGVyLnBhcmFtcy5oYXNoTmF2aWdhdGlvbi53YXRjaFN0YXRlKSB7XG4gICAgICAkKHdpbmRvdykub2ZmKCdoYXNoY2hhbmdlJywgb25IYXNoQ2hhbmdlKTtcbiAgICB9XG4gIH07XG5cbiAgb24oJ2luaXQnLCAoKSA9PiB7XG4gICAgaWYgKHN3aXBlci5wYXJhbXMuaGFzaE5hdmlnYXRpb24uZW5hYmxlZCkge1xuICAgICAgaW5pdCgpO1xuICAgIH1cbiAgfSk7XG4gIG9uKCdkZXN0cm95JywgKCkgPT4ge1xuICAgIGlmIChzd2lwZXIucGFyYW1zLmhhc2hOYXZpZ2F0aW9uLmVuYWJsZWQpIHtcbiAgICAgIGRlc3Ryb3koKTtcbiAgICB9XG4gIH0pO1xuICBvbigndHJhbnNpdGlvbkVuZCBfZnJlZU1vZGVOb01vbWVudHVtUmVsZWFzZScsICgpID0+IHtcbiAgICBpZiAoaW5pdGlhbGl6ZWQpIHtcbiAgICAgIHNldEhhc2goKTtcbiAgICB9XG4gIH0pO1xuICBvbignc2xpZGVDaGFuZ2UnLCAoKSA9PiB7XG4gICAgaWYgKGluaXRpYWxpemVkICYmIHN3aXBlci5wYXJhbXMuY3NzTW9kZSkge1xuICAgICAgc2V0SGFzaCgpO1xuICAgIH1cbiAgfSk7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/swiper/modules/hash-navigation/hash-navigation.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/modules/history/history.js": +/*!********************************************************!*\ + !*** ./node_modules/swiper/modules/history/history.js ***! + \********************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ History; }\n/* harmony export */ });\n/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ \"./node_modules/ssr-window/ssr-window.esm.js\");\n\nfunction History({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n history: {\n enabled: false,\n root: '',\n replaceState: false,\n key: 'slides'\n }\n });\n let initialized = false;\n let paths = {};\n\n const slugify = text => {\n return text.toString().replace(/\\s+/g, '-').replace(/[^\\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, '');\n };\n\n const getPathValues = urlOverride => {\n const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();\n let location;\n\n if (urlOverride) {\n location = new URL(urlOverride);\n } else {\n location = window.location;\n }\n\n const pathArray = location.pathname.slice(1).split('/').filter(part => part !== '');\n const total = pathArray.length;\n const key = pathArray[total - 2];\n const value = pathArray[total - 1];\n return {\n key,\n value\n };\n };\n\n const setHistory = (key, index) => {\n const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();\n if (!initialized || !swiper.params.history.enabled) return;\n let location;\n\n if (swiper.params.url) {\n location = new URL(swiper.params.url);\n } else {\n location = window.location;\n }\n\n const slide = swiper.slides.eq(index);\n let value = slugify(slide.attr('data-history'));\n\n if (swiper.params.history.root.length > 0) {\n let root = swiper.params.history.root;\n if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1);\n value = `${root}/${key}/${value}`;\n } else if (!location.pathname.includes(key)) {\n value = `${key}/${value}`;\n }\n\n const currentState = window.history.state;\n\n if (currentState && currentState.value === value) {\n return;\n }\n\n if (swiper.params.history.replaceState) {\n window.history.replaceState({\n value\n }, null, value);\n } else {\n window.history.pushState({\n value\n }, null, value);\n }\n };\n\n const scrollToSlide = (speed, value, runCallbacks) => {\n if (value) {\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides.eq(i);\n const slideHistory = slugify(slide.attr('data-history'));\n\n if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n const index = slide.index();\n swiper.slideTo(index, speed, runCallbacks);\n }\n }\n } else {\n swiper.slideTo(0, speed, runCallbacks);\n }\n };\n\n const setHistoryPopState = () => {\n paths = getPathValues(swiper.params.url);\n scrollToSlide(swiper.params.speed, swiper.paths.value, false);\n };\n\n const init = () => {\n const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();\n if (!swiper.params.history) return;\n\n if (!window.history || !window.history.pushState) {\n swiper.params.history.enabled = false;\n swiper.params.hashNavigation.enabled = true;\n return;\n }\n\n initialized = true;\n paths = getPathValues(swiper.params.url);\n if (!paths.key && !paths.value) return;\n scrollToSlide(0, paths.value, swiper.params.runCallbacksOnInit);\n\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', setHistoryPopState);\n }\n };\n\n const destroy = () => {\n const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();\n\n if (!swiper.params.history.replaceState) {\n window.removeEventListener('popstate', setHistoryPopState);\n }\n };\n\n on('init', () => {\n if (swiper.params.history.enabled) {\n init();\n }\n });\n on('destroy', () => {\n if (swiper.params.history.enabled) {\n destroy();\n }\n });\n on('transitionEnd _freeModeNoMomentumRelease', () => {\n if (initialized) {\n setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n });\n on('slideChange', () => {\n if (initialized && swiper.params.cssMode) {\n setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMvaGlzdG9yeS9oaXN0b3J5LmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXVDO0FBQ3hCO0FBQ2Y7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsbUJBQW1CLHFEQUFTO0FBQzVCOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxtQkFBbUIscURBQVM7QUFDNUI7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsS0FBSyxHQUFHLElBQUksR0FBRyxNQUFNO0FBQ3RDLE1BQU07QUFDTixpQkFBaUIsSUFBSSxHQUFHLE1BQU07QUFDOUI7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxNQUFNO0FBQ047QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBOztBQUVBO0FBQ0E7QUFDQSxxREFBcUQsWUFBWTtBQUNqRTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsbUJBQW1CLHFEQUFTO0FBQzVCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxtQkFBbUIscURBQVM7O0FBRTVCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zd2lwZXIvbW9kdWxlcy9oaXN0b3J5L2hpc3RvcnkuanM/OTExZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRXaW5kb3cgfSBmcm9tICdzc3Itd2luZG93JztcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEhpc3Rvcnkoe1xuICBzd2lwZXIsXG4gIGV4dGVuZFBhcmFtcyxcbiAgb25cbn0pIHtcbiAgZXh0ZW5kUGFyYW1zKHtcbiAgICBoaXN0b3J5OiB7XG4gICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgIHJvb3Q6ICcnLFxuICAgICAgcmVwbGFjZVN0YXRlOiBmYWxzZSxcbiAgICAgIGtleTogJ3NsaWRlcydcbiAgICB9XG4gIH0pO1xuICBsZXQgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgbGV0IHBhdGhzID0ge307XG5cbiAgY29uc3Qgc2x1Z2lmeSA9IHRleHQgPT4ge1xuICAgIHJldHVybiB0ZXh0LnRvU3RyaW5nKCkucmVwbGFjZSgvXFxzKy9nLCAnLScpLnJlcGxhY2UoL1teXFx3LV0rL2csICcnKS5yZXBsYWNlKC8tLSsvZywgJy0nKS5yZXBsYWNlKC9eLSsvLCAnJykucmVwbGFjZSgvLSskLywgJycpO1xuICB9O1xuXG4gIGNvbnN0IGdldFBhdGhWYWx1ZXMgPSB1cmxPdmVycmlkZSA9PiB7XG4gICAgY29uc3Qgd2luZG93ID0gZ2V0V2luZG93KCk7XG4gICAgbGV0IGxvY2F0aW9uO1xuXG4gICAgaWYgKHVybE92ZXJyaWRlKSB7XG4gICAgICBsb2NhdGlvbiA9IG5ldyBVUkwodXJsT3ZlcnJpZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2NhdGlvbiA9IHdpbmRvdy5sb2NhdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCBwYXRoQXJyYXkgPSBsb2NhdGlvbi5wYXRobmFtZS5zbGljZSgxKS5zcGxpdCgnLycpLmZpbHRlcihwYXJ0ID0+IHBhcnQgIT09ICcnKTtcbiAgICBjb25zdCB0b3RhbCA9IHBhdGhBcnJheS5sZW5ndGg7XG4gICAgY29uc3Qga2V5ID0gcGF0aEFycmF5W3RvdGFsIC0gMl07XG4gICAgY29uc3QgdmFsdWUgPSBwYXRoQXJyYXlbdG90YWwgLSAxXTtcbiAgICByZXR1cm4ge1xuICAgICAga2V5LFxuICAgICAgdmFsdWVcbiAgICB9O1xuICB9O1xuXG4gIGNvbnN0IHNldEhpc3RvcnkgPSAoa2V5LCBpbmRleCkgPT4ge1xuICAgIGNvbnN0IHdpbmRvdyA9IGdldFdpbmRvdygpO1xuICAgIGlmICghaW5pdGlhbGl6ZWQgfHwgIXN3aXBlci5wYXJhbXMuaGlzdG9yeS5lbmFibGVkKSByZXR1cm47XG4gICAgbGV0IGxvY2F0aW9uO1xuXG4gICAgaWYgKHN3aXBlci5wYXJhbXMudXJsKSB7XG4gICAgICBsb2NhdGlvbiA9IG5ldyBVUkwoc3dpcGVyLnBhcmFtcy51cmwpO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2NhdGlvbiA9IHdpbmRvdy5sb2NhdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCBzbGlkZSA9IHN3aXBlci5zbGlkZXMuZXEoaW5kZXgpO1xuICAgIGxldCB2YWx1ZSA9IHNsdWdpZnkoc2xpZGUuYXR0cignZGF0YS1oaXN0b3J5JykpO1xuXG4gICAgaWYgKHN3aXBlci5wYXJhbXMuaGlzdG9yeS5yb290Lmxlbmd0aCA+IDApIHtcbiAgICAgIGxldCByb290ID0gc3dpcGVyLnBhcmFtcy5oaXN0b3J5LnJvb3Q7XG4gICAgICBpZiAocm9vdFtyb290Lmxlbmd0aCAtIDFdID09PSAnLycpIHJvb3QgPSByb290LnNsaWNlKDAsIHJvb3QubGVuZ3RoIC0gMSk7XG4gICAgICB2YWx1ZSA9IGAke3Jvb3R9LyR7a2V5fS8ke3ZhbHVlfWA7XG4gICAgfSBlbHNlIGlmICghbG9jYXRpb24ucGF0aG5hbWUuaW5jbHVkZXMoa2V5KSkge1xuICAgICAgdmFsdWUgPSBgJHtrZXl9LyR7dmFsdWV9YDtcbiAgICB9XG5cbiAgICBjb25zdCBjdXJyZW50U3RhdGUgPSB3aW5kb3cuaGlzdG9yeS5zdGF0ZTtcblxuICAgIGlmIChjdXJyZW50U3RhdGUgJiYgY3VycmVudFN0YXRlLnZhbHVlID09PSB2YWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChzd2lwZXIucGFyYW1zLmhpc3RvcnkucmVwbGFjZVN0YXRlKSB7XG4gICAgICB3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUoe1xuICAgICAgICB2YWx1ZVxuICAgICAgfSwgbnVsbCwgdmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUoe1xuICAgICAgICB2YWx1ZVxuICAgICAgfSwgbnVsbCwgdmFsdWUpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBzY3JvbGxUb1NsaWRlID0gKHNwZWVkLCB2YWx1ZSwgcnVuQ2FsbGJhY2tzKSA9PiB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBmb3IgKGxldCBpID0gMCwgbGVuZ3RoID0gc3dpcGVyLnNsaWRlcy5sZW5ndGg7IGkgPCBsZW5ndGg7IGkgKz0gMSkge1xuICAgICAgICBjb25zdCBzbGlkZSA9IHN3aXBlci5zbGlkZXMuZXEoaSk7XG4gICAgICAgIGNvbnN0IHNsaWRlSGlzdG9yeSA9IHNsdWdpZnkoc2xpZGUuYXR0cignZGF0YS1oaXN0b3J5JykpO1xuXG4gICAgICAgIGlmIChzbGlkZUhpc3RvcnkgPT09IHZhbHVlICYmICFzbGlkZS5oYXNDbGFzcyhzd2lwZXIucGFyYW1zLnNsaWRlRHVwbGljYXRlQ2xhc3MpKSB7XG4gICAgICAgICAgY29uc3QgaW5kZXggPSBzbGlkZS5pbmRleCgpO1xuICAgICAgICAgIHN3aXBlci5zbGlkZVRvKGluZGV4LCBzcGVlZCwgcnVuQ2FsbGJhY2tzKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzd2lwZXIuc2xpZGVUbygwLCBzcGVlZCwgcnVuQ2FsbGJhY2tzKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3Qgc2V0SGlzdG9yeVBvcFN0YXRlID0gKCkgPT4ge1xuICAgIHBhdGhzID0gZ2V0UGF0aFZhbHVlcyhzd2lwZXIucGFyYW1zLnVybCk7XG4gICAgc2Nyb2xsVG9TbGlkZShzd2lwZXIucGFyYW1zLnNwZWVkLCBzd2lwZXIucGF0aHMudmFsdWUsIGZhbHNlKTtcbiAgfTtcblxuICBjb25zdCBpbml0ID0gKCkgPT4ge1xuICAgIGNvbnN0IHdpbmRvdyA9IGdldFdpbmRvdygpO1xuICAgIGlmICghc3dpcGVyLnBhcmFtcy5oaXN0b3J5KSByZXR1cm47XG5cbiAgICBpZiAoIXdpbmRvdy5oaXN0b3J5IHx8ICF3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUpIHtcbiAgICAgIHN3aXBlci5wYXJhbXMuaGlzdG9yeS5lbmFibGVkID0gZmFsc2U7XG4gICAgICBzd2lwZXIucGFyYW1zLmhhc2hOYXZpZ2F0aW9uLmVuYWJsZWQgPSB0cnVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICBwYXRocyA9IGdldFBhdGhWYWx1ZXMoc3dpcGVyLnBhcmFtcy51cmwpO1xuICAgIGlmICghcGF0aHMua2V5ICYmICFwYXRocy52YWx1ZSkgcmV0dXJuO1xuICAgIHNjcm9sbFRvU2xpZGUoMCwgcGF0aHMudmFsdWUsIHN3aXBlci5wYXJhbXMucnVuQ2FsbGJhY2tzT25Jbml0KTtcblxuICAgIGlmICghc3dpcGVyLnBhcmFtcy5oaXN0b3J5LnJlcGxhY2VTdGF0ZSkge1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvcHN0YXRlJywgc2V0SGlzdG9yeVBvcFN0YXRlKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgZGVzdHJveSA9ICgpID0+IHtcbiAgICBjb25zdCB3aW5kb3cgPSBnZXRXaW5kb3coKTtcblxuICAgIGlmICghc3dpcGVyLnBhcmFtcy5oaXN0b3J5LnJlcGxhY2VTdGF0ZSkge1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3BvcHN0YXRlJywgc2V0SGlzdG9yeVBvcFN0YXRlKTtcbiAgICB9XG4gIH07XG5cbiAgb24oJ2luaXQnLCAoKSA9PiB7XG4gICAgaWYgKHN3aXBlci5wYXJhbXMuaGlzdG9yeS5lbmFibGVkKSB7XG4gICAgICBpbml0KCk7XG4gICAgfVxuICB9KTtcbiAgb24oJ2Rlc3Ryb3knLCAoKSA9PiB7XG4gICAgaWYgKHN3aXBlci5wYXJhbXMuaGlzdG9yeS5lbmFibGVkKSB7XG4gICAgICBkZXN0cm95KCk7XG4gICAgfVxuICB9KTtcbiAgb24oJ3RyYW5zaXRpb25FbmQgX2ZyZWVNb2RlTm9Nb21lbnR1bVJlbGVhc2UnLCAoKSA9PiB7XG4gICAgaWYgKGluaXRpYWxpemVkKSB7XG4gICAgICBzZXRIaXN0b3J5KHN3aXBlci5wYXJhbXMuaGlzdG9yeS5rZXksIHN3aXBlci5hY3RpdmVJbmRleCk7XG4gICAgfVxuICB9KTtcbiAgb24oJ3NsaWRlQ2hhbmdlJywgKCkgPT4ge1xuICAgIGlmIChpbml0aWFsaXplZCAmJiBzd2lwZXIucGFyYW1zLmNzc01vZGUpIHtcbiAgICAgIHNldEhpc3Rvcnkoc3dpcGVyLnBhcmFtcy5oaXN0b3J5LmtleSwgc3dpcGVyLmFjdGl2ZUluZGV4KTtcbiAgICB9XG4gIH0pO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/swiper/modules/history/history.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/modules/keyboard/keyboard.js": +/*!**********************************************************!*\ + !*** ./node_modules/swiper/modules/keyboard/keyboard.js ***! + \**********************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ Keyboard; }\n/* harmony export */ });\n/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ \"./node_modules/ssr-window/ssr-window.esm.js\");\n/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ \"./node_modules/swiper/shared/dom.js\");\n/* eslint-disable consistent-return */\n\n\nfunction Keyboard({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)();\n const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();\n swiper.keyboard = {\n enabled: false\n };\n extendParams({\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n pageUpDown: true\n }\n });\n\n function handle(event) {\n if (!swiper.enabled) return;\n const {\n rtlTranslate: rtl\n } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n\n const kc = e.keyCode || e.charCode;\n const pageUpDown = swiper.params.keyboard.pageUpDown;\n const isPageUp = pageUpDown && kc === 33;\n const isPageDown = pageUpDown && kc === 34;\n const isArrowLeft = kc === 37;\n const isArrowRight = kc === 39;\n const isArrowUp = kc === 38;\n const isArrowDown = kc === 40; // Directions locks\n\n if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) {\n return false;\n }\n\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n\n if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {\n return undefined;\n }\n\n if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {\n let inView = false; // Check that swiper should be inside of visible area of window\n\n if (swiper.$el.parents(`.${swiper.params.slideClass}`).length > 0 && swiper.$el.parents(`.${swiper.params.slideActiveClass}`).length === 0) {\n return undefined;\n }\n\n const $el = swiper.$el;\n const swiperWidth = $el[0].clientWidth;\n const swiperHeight = $el[0].clientHeight;\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const swiperOffset = swiper.$el.offset();\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]];\n\n for (let i = 0; i < swiperCoord.length; i += 1) {\n const point = swiperCoord[i];\n\n if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n\n inView = true;\n }\n }\n\n if (!inView) return undefined;\n }\n\n if (swiper.isHorizontal()) {\n if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n\n if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext();\n if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev();\n } else {\n if (isPageUp || isPageDown || isArrowUp || isArrowDown) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n\n if (isPageDown || isArrowDown) swiper.slideNext();\n if (isPageUp || isArrowUp) swiper.slidePrev();\n }\n\n emit('keyPress', kc);\n return undefined;\n }\n\n function enable() {\n if (swiper.keyboard.enabled) return;\n (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(document).on('keydown', handle);\n swiper.keyboard.enabled = true;\n }\n\n function disable() {\n if (!swiper.keyboard.enabled) return;\n (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(document).off('keydown', handle);\n swiper.keyboard.enabled = false;\n }\n\n on('init', () => {\n if (swiper.params.keyboard.enabled) {\n enable();\n }\n });\n on('destroy', () => {\n if (swiper.keyboard.enabled) {\n disable();\n }\n });\n Object.assign(swiper.keyboard, {\n enable,\n disable\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMva2V5Ym9hcmQva2V5Ym9hcmQuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDb0Q7QUFDaEI7QUFDckI7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxtQkFBbUIsdURBQVc7QUFDOUIsaUJBQWlCLHFEQUFTO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQSw4Q0FBOEM7O0FBRTlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DOztBQUVuQztBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSwwQkFBMEI7O0FBRTFCLGlDQUFpQyx5QkFBeUIsd0NBQXdDLCtCQUErQjtBQUNqSTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsc0JBQXNCLHdCQUF3QjtBQUM5Qzs7QUFFQTtBQUNBLDBEQUEwRDs7QUFFMUQ7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGlEQUFpRDtBQUNqRDs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0EsaURBQWlEO0FBQ2pEOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUksMERBQUM7QUFDTDtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJLDBEQUFDO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N3aXBlci9tb2R1bGVzL2tleWJvYXJkL2tleWJvYXJkLmpzPzZiMWQiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgY29uc2lzdGVudC1yZXR1cm4gKi9cbmltcG9ydCB7IGdldFdpbmRvdywgZ2V0RG9jdW1lbnQgfSBmcm9tICdzc3Itd2luZG93JztcbmltcG9ydCAkIGZyb20gJy4uLy4uL3NoYXJlZC9kb20uanMnO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gS2V5Ym9hcmQoe1xuICBzd2lwZXIsXG4gIGV4dGVuZFBhcmFtcyxcbiAgb24sXG4gIGVtaXRcbn0pIHtcbiAgY29uc3QgZG9jdW1lbnQgPSBnZXREb2N1bWVudCgpO1xuICBjb25zdCB3aW5kb3cgPSBnZXRXaW5kb3coKTtcbiAgc3dpcGVyLmtleWJvYXJkID0ge1xuICAgIGVuYWJsZWQ6IGZhbHNlXG4gIH07XG4gIGV4dGVuZFBhcmFtcyh7XG4gICAga2V5Ym9hcmQ6IHtcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgb25seUluVmlld3BvcnQ6IHRydWUsXG4gICAgICBwYWdlVXBEb3duOiB0cnVlXG4gICAgfVxuICB9KTtcblxuICBmdW5jdGlvbiBoYW5kbGUoZXZlbnQpIHtcbiAgICBpZiAoIXN3aXBlci5lbmFibGVkKSByZXR1cm47XG4gICAgY29uc3Qge1xuICAgICAgcnRsVHJhbnNsYXRlOiBydGxcbiAgICB9ID0gc3dpcGVyO1xuICAgIGxldCBlID0gZXZlbnQ7XG4gICAgaWYgKGUub3JpZ2luYWxFdmVudCkgZSA9IGUub3JpZ2luYWxFdmVudDsgLy8ganF1ZXJ5IGZpeFxuXG4gICAgY29uc3Qga2MgPSBlLmtleUNvZGUgfHwgZS5jaGFyQ29kZTtcbiAgICBjb25zdCBwYWdlVXBEb3duID0gc3dpcGVyLnBhcmFtcy5rZXlib2FyZC5wYWdlVXBEb3duO1xuICAgIGNvbnN0IGlzUGFnZVVwID0gcGFnZVVwRG93biAmJiBrYyA9PT0gMzM7XG4gICAgY29uc3QgaXNQYWdlRG93biA9IHBhZ2VVcERvd24gJiYga2MgPT09IDM0O1xuICAgIGNvbnN0IGlzQXJyb3dMZWZ0ID0ga2MgPT09IDM3O1xuICAgIGNvbnN0IGlzQXJyb3dSaWdodCA9IGtjID09PSAzOTtcbiAgICBjb25zdCBpc0Fycm93VXAgPSBrYyA9PT0gMzg7XG4gICAgY29uc3QgaXNBcnJvd0Rvd24gPSBrYyA9PT0gNDA7IC8vIERpcmVjdGlvbnMgbG9ja3NcblxuICAgIGlmICghc3dpcGVyLmFsbG93U2xpZGVOZXh0ICYmIChzd2lwZXIuaXNIb3Jpem9udGFsKCkgJiYgaXNBcnJvd1JpZ2h0IHx8IHN3aXBlci5pc1ZlcnRpY2FsKCkgJiYgaXNBcnJvd0Rvd24gfHwgaXNQYWdlRG93bikpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoIXN3aXBlci5hbGxvd1NsaWRlUHJldiAmJiAoc3dpcGVyLmlzSG9yaXpvbnRhbCgpICYmIGlzQXJyb3dMZWZ0IHx8IHN3aXBlci5pc1ZlcnRpY2FsKCkgJiYgaXNBcnJvd1VwIHx8IGlzUGFnZVVwKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmIChlLnNoaWZ0S2V5IHx8IGUuYWx0S2V5IHx8IGUuY3RybEtleSB8fCBlLm1ldGFLZXkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgJiYgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5ub2RlTmFtZSAmJiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnaW5wdXQnIHx8IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ3RleHRhcmVhJykpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKHN3aXBlci5wYXJhbXMua2V5Ym9hcmQub25seUluVmlld3BvcnQgJiYgKGlzUGFnZVVwIHx8IGlzUGFnZURvd24gfHwgaXNBcnJvd0xlZnQgfHwgaXNBcnJvd1JpZ2h0IHx8IGlzQXJyb3dVcCB8fCBpc0Fycm93RG93bikpIHtcbiAgICAgIGxldCBpblZpZXcgPSBmYWxzZTsgLy8gQ2hlY2sgdGhhdCBzd2lwZXIgc2hvdWxkIGJlIGluc2lkZSBvZiB2aXNpYmxlIGFyZWEgb2Ygd2luZG93XG5cbiAgICAgIGlmIChzd2lwZXIuJGVsLnBhcmVudHMoYC4ke3N3aXBlci5wYXJhbXMuc2xpZGVDbGFzc31gKS5sZW5ndGggPiAwICYmIHN3aXBlci4kZWwucGFyZW50cyhgLiR7c3dpcGVyLnBhcmFtcy5zbGlkZUFjdGl2ZUNsYXNzfWApLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuXG4gICAgICBjb25zdCAkZWwgPSBzd2lwZXIuJGVsO1xuICAgICAgY29uc3Qgc3dpcGVyV2lkdGggPSAkZWxbMF0uY2xpZW50V2lkdGg7XG4gICAgICBjb25zdCBzd2lwZXJIZWlnaHQgPSAkZWxbMF0uY2xpZW50SGVpZ2h0O1xuICAgICAgY29uc3Qgd2luZG93V2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcbiAgICAgIGNvbnN0IHdpbmRvd0hlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcbiAgICAgIGNvbnN0IHN3aXBlck9mZnNldCA9IHN3aXBlci4kZWwub2Zmc2V0KCk7XG4gICAgICBpZiAocnRsKSBzd2lwZXJPZmZzZXQubGVmdCAtPSBzd2lwZXIuJGVsWzBdLnNjcm9sbExlZnQ7XG4gICAgICBjb25zdCBzd2lwZXJDb29yZCA9IFtbc3dpcGVyT2Zmc2V0LmxlZnQsIHN3aXBlck9mZnNldC50b3BdLCBbc3dpcGVyT2Zmc2V0LmxlZnQgKyBzd2lwZXJXaWR0aCwgc3dpcGVyT2Zmc2V0LnRvcF0sIFtzd2lwZXJPZmZzZXQubGVmdCwgc3dpcGVyT2Zmc2V0LnRvcCArIHN3aXBlckhlaWdodF0sIFtzd2lwZXJPZmZzZXQubGVmdCArIHN3aXBlcldpZHRoLCBzd2lwZXJPZmZzZXQudG9wICsgc3dpcGVySGVpZ2h0XV07XG5cbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3dpcGVyQ29vcmQubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgY29uc3QgcG9pbnQgPSBzd2lwZXJDb29yZFtpXTtcblxuICAgICAgICBpZiAocG9pbnRbMF0gPj0gMCAmJiBwb2ludFswXSA8PSB3aW5kb3dXaWR0aCAmJiBwb2ludFsxXSA+PSAwICYmIHBvaW50WzFdIDw9IHdpbmRvd0hlaWdodCkge1xuICAgICAgICAgIGlmIChwb2ludFswXSA9PT0gMCAmJiBwb2ludFsxXSA9PT0gMCkgY29udGludWU7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcblxuICAgICAgICAgIGluVmlldyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKCFpblZpZXcpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKHN3aXBlci5pc0hvcml6b250YWwoKSkge1xuICAgICAgaWYgKGlzUGFnZVVwIHx8IGlzUGFnZURvd24gfHwgaXNBcnJvd0xlZnQgfHwgaXNBcnJvd1JpZ2h0KSB7XG4gICAgICAgIGlmIChlLnByZXZlbnREZWZhdWx0KSBlLnByZXZlbnREZWZhdWx0KCk7ZWxzZSBlLnJldHVyblZhbHVlID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGlmICgoaXNQYWdlRG93biB8fCBpc0Fycm93UmlnaHQpICYmICFydGwgfHwgKGlzUGFnZVVwIHx8IGlzQXJyb3dMZWZ0KSAmJiBydGwpIHN3aXBlci5zbGlkZU5leHQoKTtcbiAgICAgIGlmICgoaXNQYWdlVXAgfHwgaXNBcnJvd0xlZnQpICYmICFydGwgfHwgKGlzUGFnZURvd24gfHwgaXNBcnJvd1JpZ2h0KSAmJiBydGwpIHN3aXBlci5zbGlkZVByZXYoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGlzUGFnZVVwIHx8IGlzUGFnZURvd24gfHwgaXNBcnJvd1VwIHx8IGlzQXJyb3dEb3duKSB7XG4gICAgICAgIGlmIChlLnByZXZlbnREZWZhdWx0KSBlLnByZXZlbnREZWZhdWx0KCk7ZWxzZSBlLnJldHVyblZhbHVlID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGlmIChpc1BhZ2VEb3duIHx8IGlzQXJyb3dEb3duKSBzd2lwZXIuc2xpZGVOZXh0KCk7XG4gICAgICBpZiAoaXNQYWdlVXAgfHwgaXNBcnJvd1VwKSBzd2lwZXIuc2xpZGVQcmV2KCk7XG4gICAgfVxuXG4gICAgZW1pdCgna2V5UHJlc3MnLCBrYyk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGZ1bmN0aW9uIGVuYWJsZSgpIHtcbiAgICBpZiAoc3dpcGVyLmtleWJvYXJkLmVuYWJsZWQpIHJldHVybjtcbiAgICAkKGRvY3VtZW50KS5vbigna2V5ZG93bicsIGhhbmRsZSk7XG4gICAgc3dpcGVyLmtleWJvYXJkLmVuYWJsZWQgPSB0cnVlO1xuICB9XG5cbiAgZnVuY3Rpb24gZGlzYWJsZSgpIHtcbiAgICBpZiAoIXN3aXBlci5rZXlib2FyZC5lbmFibGVkKSByZXR1cm47XG4gICAgJChkb2N1bWVudCkub2ZmKCdrZXlkb3duJywgaGFuZGxlKTtcbiAgICBzd2lwZXIua2V5Ym9hcmQuZW5hYmxlZCA9IGZhbHNlO1xuICB9XG5cbiAgb24oJ2luaXQnLCAoKSA9PiB7XG4gICAgaWYgKHN3aXBlci5wYXJhbXMua2V5Ym9hcmQuZW5hYmxlZCkge1xuICAgICAgZW5hYmxlKCk7XG4gICAgfVxuICB9KTtcbiAgb24oJ2Rlc3Ryb3knLCAoKSA9PiB7XG4gICAgaWYgKHN3aXBlci5rZXlib2FyZC5lbmFibGVkKSB7XG4gICAgICBkaXNhYmxlKCk7XG4gICAgfVxuICB9KTtcbiAgT2JqZWN0LmFzc2lnbihzd2lwZXIua2V5Ym9hcmQsIHtcbiAgICBlbmFibGUsXG4gICAgZGlzYWJsZVxuICB9KTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/swiper/modules/keyboard/keyboard.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/modules/lazy/lazy.js": +/*!**************************************************!*\ + !*** ./node_modules/swiper/modules/lazy/lazy.js ***! + \**************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ Lazy; }\n/* harmony export */ });\n/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ \"./node_modules/ssr-window/ssr-window.esm.js\");\n/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ \"./node_modules/swiper/shared/dom.js\");\n\n\nfunction Lazy({\n swiper,\n extendParams,\n on,\n emit\n}) {\n extendParams({\n lazy: {\n checkInView: false,\n enabled: false,\n loadPrevNext: false,\n loadPrevNextAmount: 1,\n loadOnTransitionStart: false,\n scrollingElement: '',\n elementClass: 'swiper-lazy',\n loadingClass: 'swiper-lazy-loading',\n loadedClass: 'swiper-lazy-loaded',\n preloaderClass: 'swiper-lazy-preloader'\n }\n });\n swiper.lazy = {};\n let scrollHandlerAttached = false;\n let initialImageLoaded = false;\n\n function loadInSlide(index, loadInDuplicate = true) {\n const params = swiper.params.lazy;\n if (typeof index === 'undefined') return;\n if (swiper.slides.length === 0) return;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n const $slideEl = isVirtual ? swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${index}\"]`) : swiper.slides.eq(index);\n const $images = $slideEl.find(`.${params.elementClass}:not(.${params.loadedClass}):not(.${params.loadingClass})`);\n\n if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) {\n $images.push($slideEl[0]);\n }\n\n if ($images.length === 0) return;\n $images.each(imageEl => {\n const $imageEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(imageEl);\n $imageEl.addClass(params.loadingClass);\n const background = $imageEl.attr('data-background');\n const src = $imageEl.attr('data-src');\n const srcset = $imageEl.attr('data-srcset');\n const sizes = $imageEl.attr('data-sizes');\n const $pictureEl = $imageEl.parent('picture');\n swiper.loadImage($imageEl[0], src || background, srcset, sizes, false, () => {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper && !swiper.params || swiper.destroyed) return;\n\n if (background) {\n $imageEl.css('background-image', `url(\"${background}\")`);\n $imageEl.removeAttr('data-background');\n } else {\n if (srcset) {\n $imageEl.attr('srcset', srcset);\n $imageEl.removeAttr('data-srcset');\n }\n\n if (sizes) {\n $imageEl.attr('sizes', sizes);\n $imageEl.removeAttr('data-sizes');\n }\n\n if ($pictureEl.length) {\n $pictureEl.children('source').each(sourceEl => {\n const $source = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(sourceEl);\n\n if ($source.attr('data-srcset')) {\n $source.attr('srcset', $source.attr('data-srcset'));\n $source.removeAttr('data-srcset');\n }\n });\n }\n\n if (src) {\n $imageEl.attr('src', src);\n $imageEl.removeAttr('data-src');\n }\n }\n\n $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);\n $slideEl.find(`.${params.preloaderClass}`).remove();\n\n if (swiper.params.loop && loadInDuplicate) {\n const slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');\n\n if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\n const originalSlide = swiper.$wrapperEl.children(`[data-swiper-slide-index=\"${slideOriginalIndex}\"]:not(.${swiper.params.slideDuplicateClass})`);\n loadInSlide(originalSlide.index(), false);\n } else {\n const duplicatedSlide = swiper.$wrapperEl.children(`.${swiper.params.slideDuplicateClass}[data-swiper-slide-index=\"${slideOriginalIndex}\"]`);\n loadInSlide(duplicatedSlide.index(), false);\n }\n }\n\n emit('lazyImageReady', $slideEl[0], $imageEl[0]);\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n });\n emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\n });\n }\n\n function load() {\n const {\n $wrapperEl,\n params: swiperParams,\n slides,\n activeIndex\n } = swiper;\n const isVirtual = swiper.virtual && swiperParams.virtual.enabled;\n const params = swiperParams.lazy;\n let slidesPerView = swiperParams.slidesPerView;\n\n if (slidesPerView === 'auto') {\n slidesPerView = 0;\n }\n\n function slideExist(index) {\n if (isVirtual) {\n if ($wrapperEl.children(`.${swiperParams.slideClass}[data-swiper-slide-index=\"${index}\"]`).length) {\n return true;\n }\n } else if (slides[index]) return true;\n\n return false;\n }\n\n function slideIndex(slideEl) {\n if (isVirtual) {\n return (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(slideEl).attr('data-swiper-slide-index');\n }\n\n return (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(slideEl).index();\n }\n\n if (!initialImageLoaded) initialImageLoaded = true;\n\n if (swiper.params.watchSlidesProgress) {\n $wrapperEl.children(`.${swiperParams.slideVisibleClass}`).each(slideEl => {\n const index = isVirtual ? (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(slideEl).attr('data-swiper-slide-index') : (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(slideEl).index();\n loadInSlide(index);\n });\n } else if (slidesPerView > 1) {\n for (let i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\n if (slideExist(i)) loadInSlide(i);\n }\n } else {\n loadInSlide(activeIndex);\n }\n\n if (params.loadPrevNext) {\n if (slidesPerView > 1 || params.loadPrevNextAmount && params.loadPrevNextAmount > 1) {\n const amount = params.loadPrevNextAmount;\n const spv = slidesPerView;\n const maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);\n const minIndex = Math.max(activeIndex - Math.max(spv, amount), 0); // Next Slides\n\n for (let i = activeIndex + slidesPerView; i < maxIndex; i += 1) {\n if (slideExist(i)) loadInSlide(i);\n } // Prev Slides\n\n\n for (let i = minIndex; i < activeIndex; i += 1) {\n if (slideExist(i)) loadInSlide(i);\n }\n } else {\n const nextSlide = $wrapperEl.children(`.${swiperParams.slideNextClass}`);\n if (nextSlide.length > 0) loadInSlide(slideIndex(nextSlide));\n const prevSlide = $wrapperEl.children(`.${swiperParams.slidePrevClass}`);\n if (prevSlide.length > 0) loadInSlide(slideIndex(prevSlide));\n }\n }\n }\n\n function checkInViewOnLoad() {\n const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();\n if (!swiper || swiper.destroyed) return;\n const $scrollElement = swiper.params.lazy.scrollingElement ? (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(swiper.params.lazy.scrollingElement) : (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(window);\n const isWindow = $scrollElement[0] === window;\n const scrollElementWidth = isWindow ? window.innerWidth : $scrollElement[0].offsetWidth;\n const scrollElementHeight = isWindow ? window.innerHeight : $scrollElement[0].offsetHeight;\n const swiperOffset = swiper.$el.offset();\n const {\n rtlTranslate: rtl\n } = swiper;\n let inView = false;\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiper.width, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiper.height], [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height]];\n\n for (let i = 0; i < swiperCoord.length; i += 1) {\n const point = swiperCoord[i];\n\n if (point[0] >= 0 && point[0] <= scrollElementWidth && point[1] >= 0 && point[1] <= scrollElementHeight) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n\n inView = true;\n }\n }\n\n const passiveListener = swiper.touchEvents.start === 'touchstart' && swiper.support.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n\n if (inView) {\n load();\n $scrollElement.off('scroll', checkInViewOnLoad, passiveListener);\n } else if (!scrollHandlerAttached) {\n scrollHandlerAttached = true;\n $scrollElement.on('scroll', checkInViewOnLoad, passiveListener);\n }\n }\n\n on('beforeInit', () => {\n if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\n swiper.params.preloadImages = false;\n }\n });\n on('init', () => {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n });\n on('scroll', () => {\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.freeMode.sticky) {\n load();\n }\n });\n on('scrollbarDragMove resize _freeModeNoMomentumRelease', () => {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n });\n on('transitionStart', () => {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.loadOnTransitionStart || !swiper.params.lazy.loadOnTransitionStart && !initialImageLoaded) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n }\n });\n on('transitionEnd', () => {\n if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n });\n on('slideChange', () => {\n const {\n lazy,\n cssMode,\n watchSlidesProgress,\n touchReleaseOnEdges,\n resistanceRatio\n } = swiper.params;\n\n if (lazy.enabled && (cssMode || watchSlidesProgress && (touchReleaseOnEdges || resistanceRatio === 0))) {\n load();\n }\n });\n Object.assign(swiper.lazy, {\n load,\n loadInSlide\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMvbGF6eS9sYXp5LmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUF1QztBQUNIO0FBQ3JCO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnRUFBZ0UseUJBQXlCLDRCQUE0QixNQUFNO0FBQzNILHNDQUFzQyxvQkFBb0IsUUFBUSxtQkFBbUIsU0FBUyxvQkFBb0I7O0FBRWxIO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsdUJBQXVCLDBEQUFDO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxtREFBbUQsV0FBVztBQUM5RDtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsOEJBQThCLDBEQUFDOztBQUUvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsMEJBQTBCLHNCQUFzQjs7QUFFaEQ7QUFDQTs7QUFFQTtBQUNBLDBGQUEwRixtQkFBbUIsVUFBVSxrQ0FBa0M7QUFDeko7QUFDQSxZQUFZO0FBQ1osbUVBQW1FLGtDQUFrQyw0QkFBNEIsbUJBQW1CO0FBQ3BKO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLG9DQUFvQyx3QkFBd0IsNEJBQTRCLE1BQU07QUFDOUY7QUFDQTtBQUNBLFFBQVE7O0FBRVI7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsZUFBZSwwREFBQztBQUNoQjs7QUFFQSxhQUFhLDBEQUFDO0FBQ2Q7O0FBRUE7O0FBRUE7QUFDQSw4QkFBOEIsK0JBQStCO0FBQzdELGtDQUFrQywwREFBQyw0Q0FBNEMsMERBQUM7QUFDaEY7QUFDQSxPQUFPO0FBQ1AsTUFBTTtBQUNOLGdDQUFnQyxpQ0FBaUM7QUFDakU7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyRUFBMkU7O0FBRTNFLGtEQUFrRCxjQUFjO0FBQ2hFO0FBQ0EsVUFBVTs7O0FBR1YsK0JBQStCLGlCQUFpQjtBQUNoRDtBQUNBO0FBQ0EsUUFBUTtBQUNSLGtEQUFrRCw0QkFBNEI7QUFDOUU7QUFDQSxrREFBa0QsNEJBQTRCO0FBQzlFO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsbUJBQW1CLHFEQUFTO0FBQzVCO0FBQ0EsaUVBQWlFLDBEQUFDLHdDQUF3QywwREFBQztBQUMzRztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBLG9CQUFvQix3QkFBd0I7QUFDNUM7O0FBRUE7QUFDQSx3REFBd0Q7O0FBRXhEO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNOztBQUVOO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTs7QUFFTjtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zd2lwZXIvbW9kdWxlcy9sYXp5L2xhenkuanM/OGVjNSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRXaW5kb3cgfSBmcm9tICdzc3Itd2luZG93JztcbmltcG9ydCAkIGZyb20gJy4uLy4uL3NoYXJlZC9kb20uanMnO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTGF6eSh7XG4gIHN3aXBlcixcbiAgZXh0ZW5kUGFyYW1zLFxuICBvbixcbiAgZW1pdFxufSkge1xuICBleHRlbmRQYXJhbXMoe1xuICAgIGxhenk6IHtcbiAgICAgIGNoZWNrSW5WaWV3OiBmYWxzZSxcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgbG9hZFByZXZOZXh0OiBmYWxzZSxcbiAgICAgIGxvYWRQcmV2TmV4dEFtb3VudDogMSxcbiAgICAgIGxvYWRPblRyYW5zaXRpb25TdGFydDogZmFsc2UsXG4gICAgICBzY3JvbGxpbmdFbGVtZW50OiAnJyxcbiAgICAgIGVsZW1lbnRDbGFzczogJ3N3aXBlci1sYXp5JyxcbiAgICAgIGxvYWRpbmdDbGFzczogJ3N3aXBlci1sYXp5LWxvYWRpbmcnLFxuICAgICAgbG9hZGVkQ2xhc3M6ICdzd2lwZXItbGF6eS1sb2FkZWQnLFxuICAgICAgcHJlbG9hZGVyQ2xhc3M6ICdzd2lwZXItbGF6eS1wcmVsb2FkZXInXG4gICAgfVxuICB9KTtcbiAgc3dpcGVyLmxhenkgPSB7fTtcbiAgbGV0IHNjcm9sbEhhbmRsZXJBdHRhY2hlZCA9IGZhbHNlO1xuICBsZXQgaW5pdGlhbEltYWdlTG9hZGVkID0gZmFsc2U7XG5cbiAgZnVuY3Rpb24gbG9hZEluU2xpZGUoaW5kZXgsIGxvYWRJbkR1cGxpY2F0ZSA9IHRydWUpIHtcbiAgICBjb25zdCBwYXJhbXMgPSBzd2lwZXIucGFyYW1zLmxhenk7XG4gICAgaWYgKHR5cGVvZiBpbmRleCA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybjtcbiAgICBpZiAoc3dpcGVyLnNsaWRlcy5sZW5ndGggPT09IDApIHJldHVybjtcbiAgICBjb25zdCBpc1ZpcnR1YWwgPSBzd2lwZXIudmlydHVhbCAmJiBzd2lwZXIucGFyYW1zLnZpcnR1YWwuZW5hYmxlZDtcbiAgICBjb25zdCAkc2xpZGVFbCA9IGlzVmlydHVhbCA/IHN3aXBlci4kd3JhcHBlckVsLmNoaWxkcmVuKGAuJHtzd2lwZXIucGFyYW1zLnNsaWRlQ2xhc3N9W2RhdGEtc3dpcGVyLXNsaWRlLWluZGV4PVwiJHtpbmRleH1cIl1gKSA6IHN3aXBlci5zbGlkZXMuZXEoaW5kZXgpO1xuICAgIGNvbnN0ICRpbWFnZXMgPSAkc2xpZGVFbC5maW5kKGAuJHtwYXJhbXMuZWxlbWVudENsYXNzfTpub3QoLiR7cGFyYW1zLmxvYWRlZENsYXNzfSk6bm90KC4ke3BhcmFtcy5sb2FkaW5nQ2xhc3N9KWApO1xuXG4gICAgaWYgKCRzbGlkZUVsLmhhc0NsYXNzKHBhcmFtcy5lbGVtZW50Q2xhc3MpICYmICEkc2xpZGVFbC5oYXNDbGFzcyhwYXJhbXMubG9hZGVkQ2xhc3MpICYmICEkc2xpZGVFbC5oYXNDbGFzcyhwYXJhbXMubG9hZGluZ0NsYXNzKSkge1xuICAgICAgJGltYWdlcy5wdXNoKCRzbGlkZUVsWzBdKTtcbiAgICB9XG5cbiAgICBpZiAoJGltYWdlcy5sZW5ndGggPT09IDApIHJldHVybjtcbiAgICAkaW1hZ2VzLmVhY2goaW1hZ2VFbCA9PiB7XG4gICAgICBjb25zdCAkaW1hZ2VFbCA9ICQoaW1hZ2VFbCk7XG4gICAgICAkaW1hZ2VFbC5hZGRDbGFzcyhwYXJhbXMubG9hZGluZ0NsYXNzKTtcbiAgICAgIGNvbnN0IGJhY2tncm91bmQgPSAkaW1hZ2VFbC5hdHRyKCdkYXRhLWJhY2tncm91bmQnKTtcbiAgICAgIGNvbnN0IHNyYyA9ICRpbWFnZUVsLmF0dHIoJ2RhdGEtc3JjJyk7XG4gICAgICBjb25zdCBzcmNzZXQgPSAkaW1hZ2VFbC5hdHRyKCdkYXRhLXNyY3NldCcpO1xuICAgICAgY29uc3Qgc2l6ZXMgPSAkaW1hZ2VFbC5hdHRyKCdkYXRhLXNpemVzJyk7XG4gICAgICBjb25zdCAkcGljdHVyZUVsID0gJGltYWdlRWwucGFyZW50KCdwaWN0dXJlJyk7XG4gICAgICBzd2lwZXIubG9hZEltYWdlKCRpbWFnZUVsWzBdLCBzcmMgfHwgYmFja2dyb3VuZCwgc3Jjc2V0LCBzaXplcywgZmFsc2UsICgpID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBzd2lwZXIgPT09ICd1bmRlZmluZWQnIHx8IHN3aXBlciA9PT0gbnVsbCB8fCAhc3dpcGVyIHx8IHN3aXBlciAmJiAhc3dpcGVyLnBhcmFtcyB8fCBzd2lwZXIuZGVzdHJveWVkKSByZXR1cm47XG5cbiAgICAgICAgaWYgKGJhY2tncm91bmQpIHtcbiAgICAgICAgICAkaW1hZ2VFbC5jc3MoJ2JhY2tncm91bmQtaW1hZ2UnLCBgdXJsKFwiJHtiYWNrZ3JvdW5kfVwiKWApO1xuICAgICAgICAgICRpbWFnZUVsLnJlbW92ZUF0dHIoJ2RhdGEtYmFja2dyb3VuZCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChzcmNzZXQpIHtcbiAgICAgICAgICAgICRpbWFnZUVsLmF0dHIoJ3NyY3NldCcsIHNyY3NldCk7XG4gICAgICAgICAgICAkaW1hZ2VFbC5yZW1vdmVBdHRyKCdkYXRhLXNyY3NldCcpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChzaXplcykge1xuICAgICAgICAgICAgJGltYWdlRWwuYXR0cignc2l6ZXMnLCBzaXplcyk7XG4gICAgICAgICAgICAkaW1hZ2VFbC5yZW1vdmVBdHRyKCdkYXRhLXNpemVzJyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKCRwaWN0dXJlRWwubGVuZ3RoKSB7XG4gICAgICAgICAgICAkcGljdHVyZUVsLmNoaWxkcmVuKCdzb3VyY2UnKS5lYWNoKHNvdXJjZUVsID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgJHNvdXJjZSA9ICQoc291cmNlRWwpO1xuXG4gICAgICAgICAgICAgIGlmICgkc291cmNlLmF0dHIoJ2RhdGEtc3Jjc2V0JykpIHtcbiAgICAgICAgICAgICAgICAkc291cmNlLmF0dHIoJ3NyY3NldCcsICRzb3VyY2UuYXR0cignZGF0YS1zcmNzZXQnKSk7XG4gICAgICAgICAgICAgICAgJHNvdXJjZS5yZW1vdmVBdHRyKCdkYXRhLXNyY3NldCcpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoc3JjKSB7XG4gICAgICAgICAgICAkaW1hZ2VFbC5hdHRyKCdzcmMnLCBzcmMpO1xuICAgICAgICAgICAgJGltYWdlRWwucmVtb3ZlQXR0cignZGF0YS1zcmMnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAkaW1hZ2VFbC5hZGRDbGFzcyhwYXJhbXMubG9hZGVkQ2xhc3MpLnJlbW92ZUNsYXNzKHBhcmFtcy5sb2FkaW5nQ2xhc3MpO1xuICAgICAgICAkc2xpZGVFbC5maW5kKGAuJHtwYXJhbXMucHJlbG9hZGVyQ2xhc3N9YCkucmVtb3ZlKCk7XG5cbiAgICAgICAgaWYgKHN3aXBlci5wYXJhbXMubG9vcCAmJiBsb2FkSW5EdXBsaWNhdGUpIHtcbiAgICAgICAgICBjb25zdCBzbGlkZU9yaWdpbmFsSW5kZXggPSAkc2xpZGVFbC5hdHRyKCdkYXRhLXN3aXBlci1zbGlkZS1pbmRleCcpO1xuXG4gICAgICAgICAgaWYgKCRzbGlkZUVsLmhhc0NsYXNzKHN3aXBlci5wYXJhbXMuc2xpZGVEdXBsaWNhdGVDbGFzcykpIHtcbiAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsU2xpZGUgPSBzd2lwZXIuJHdyYXBwZXJFbC5jaGlsZHJlbihgW2RhdGEtc3dpcGVyLXNsaWRlLWluZGV4PVwiJHtzbGlkZU9yaWdpbmFsSW5kZXh9XCJdOm5vdCguJHtzd2lwZXIucGFyYW1zLnNsaWRlRHVwbGljYXRlQ2xhc3N9KWApO1xuICAgICAgICAgICAgbG9hZEluU2xpZGUob3JpZ2luYWxTbGlkZS5pbmRleCgpLCBmYWxzZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGR1cGxpY2F0ZWRTbGlkZSA9IHN3aXBlci4kd3JhcHBlckVsLmNoaWxkcmVuKGAuJHtzd2lwZXIucGFyYW1zLnNsaWRlRHVwbGljYXRlQ2xhc3N9W2RhdGEtc3dpcGVyLXNsaWRlLWluZGV4PVwiJHtzbGlkZU9yaWdpbmFsSW5kZXh9XCJdYCk7XG4gICAgICAgICAgICBsb2FkSW5TbGlkZShkdXBsaWNhdGVkU2xpZGUuaW5kZXgoKSwgZmFsc2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGVtaXQoJ2xhenlJbWFnZVJlYWR5JywgJHNsaWRlRWxbMF0sICRpbWFnZUVsWzBdKTtcblxuICAgICAgICBpZiAoc3dpcGVyLnBhcmFtcy5hdXRvSGVpZ2h0KSB7XG4gICAgICAgICAgc3dpcGVyLnVwZGF0ZUF1dG9IZWlnaHQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBlbWl0KCdsYXp5SW1hZ2VMb2FkJywgJHNsaWRlRWxbMF0sICRpbWFnZUVsWzBdKTtcbiAgICB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGxvYWQoKSB7XG4gICAgY29uc3Qge1xuICAgICAgJHdyYXBwZXJFbCxcbiAgICAgIHBhcmFtczogc3dpcGVyUGFyYW1zLFxuICAgICAgc2xpZGVzLFxuICAgICAgYWN0aXZlSW5kZXhcbiAgICB9ID0gc3dpcGVyO1xuICAgIGNvbnN0IGlzVmlydHVhbCA9IHN3aXBlci52aXJ0dWFsICYmIHN3aXBlclBhcmFtcy52aXJ0dWFsLmVuYWJsZWQ7XG4gICAgY29uc3QgcGFyYW1zID0gc3dpcGVyUGFyYW1zLmxhenk7XG4gICAgbGV0IHNsaWRlc1BlclZpZXcgPSBzd2lwZXJQYXJhbXMuc2xpZGVzUGVyVmlldztcblxuICAgIGlmIChzbGlkZXNQZXJWaWV3ID09PSAnYXV0bycpIHtcbiAgICAgIHNsaWRlc1BlclZpZXcgPSAwO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNsaWRlRXhpc3QoaW5kZXgpIHtcbiAgICAgIGlmIChpc1ZpcnR1YWwpIHtcbiAgICAgICAgaWYgKCR3cmFwcGVyRWwuY2hpbGRyZW4oYC4ke3N3aXBlclBhcmFtcy5zbGlkZUNsYXNzfVtkYXRhLXN3aXBlci1zbGlkZS1pbmRleD1cIiR7aW5kZXh9XCJdYCkubGVuZ3RoKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoc2xpZGVzW2luZGV4XSkgcmV0dXJuIHRydWU7XG5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzbGlkZUluZGV4KHNsaWRlRWwpIHtcbiAgICAgIGlmIChpc1ZpcnR1YWwpIHtcbiAgICAgICAgcmV0dXJuICQoc2xpZGVFbCkuYXR0cignZGF0YS1zd2lwZXItc2xpZGUtaW5kZXgnKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICQoc2xpZGVFbCkuaW5kZXgoKTtcbiAgICB9XG5cbiAgICBpZiAoIWluaXRpYWxJbWFnZUxvYWRlZCkgaW5pdGlhbEltYWdlTG9hZGVkID0gdHJ1ZTtcblxuICAgIGlmIChzd2lwZXIucGFyYW1zLndhdGNoU2xpZGVzUHJvZ3Jlc3MpIHtcbiAgICAgICR3cmFwcGVyRWwuY2hpbGRyZW4oYC4ke3N3aXBlclBhcmFtcy5zbGlkZVZpc2libGVDbGFzc31gKS5lYWNoKHNsaWRlRWwgPT4ge1xuICAgICAgICBjb25zdCBpbmRleCA9IGlzVmlydHVhbCA/ICQoc2xpZGVFbCkuYXR0cignZGF0YS1zd2lwZXItc2xpZGUtaW5kZXgnKSA6ICQoc2xpZGVFbCkuaW5kZXgoKTtcbiAgICAgICAgbG9hZEluU2xpZGUoaW5kZXgpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmIChzbGlkZXNQZXJWaWV3ID4gMSkge1xuICAgICAgZm9yIChsZXQgaSA9IGFjdGl2ZUluZGV4OyBpIDwgYWN0aXZlSW5kZXggKyBzbGlkZXNQZXJWaWV3OyBpICs9IDEpIHtcbiAgICAgICAgaWYgKHNsaWRlRXhpc3QoaSkpIGxvYWRJblNsaWRlKGkpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBsb2FkSW5TbGlkZShhY3RpdmVJbmRleCk7XG4gICAgfVxuXG4gICAgaWYgKHBhcmFtcy5sb2FkUHJldk5leHQpIHtcbiAgICAgIGlmIChzbGlkZXNQZXJWaWV3ID4gMSB8fCBwYXJhbXMubG9hZFByZXZOZXh0QW1vdW50ICYmIHBhcmFtcy5sb2FkUHJldk5leHRBbW91bnQgPiAxKSB7XG4gICAgICAgIGNvbnN0IGFtb3VudCA9IHBhcmFtcy5sb2FkUHJldk5leHRBbW91bnQ7XG4gICAgICAgIGNvbnN0IHNwdiA9IHNsaWRlc1BlclZpZXc7XG4gICAgICAgIGNvbnN0IG1heEluZGV4ID0gTWF0aC5taW4oYWN0aXZlSW5kZXggKyBzcHYgKyBNYXRoLm1heChhbW91bnQsIHNwdiksIHNsaWRlcy5sZW5ndGgpO1xuICAgICAgICBjb25zdCBtaW5JbmRleCA9IE1hdGgubWF4KGFjdGl2ZUluZGV4IC0gTWF0aC5tYXgoc3B2LCBhbW91bnQpLCAwKTsgLy8gTmV4dCBTbGlkZXNcblxuICAgICAgICBmb3IgKGxldCBpID0gYWN0aXZlSW5kZXggKyBzbGlkZXNQZXJWaWV3OyBpIDwgbWF4SW5kZXg7IGkgKz0gMSkge1xuICAgICAgICAgIGlmIChzbGlkZUV4aXN0KGkpKSBsb2FkSW5TbGlkZShpKTtcbiAgICAgICAgfSAvLyBQcmV2IFNsaWRlc1xuXG5cbiAgICAgICAgZm9yIChsZXQgaSA9IG1pbkluZGV4OyBpIDwgYWN0aXZlSW5kZXg7IGkgKz0gMSkge1xuICAgICAgICAgIGlmIChzbGlkZUV4aXN0KGkpKSBsb2FkSW5TbGlkZShpKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgbmV4dFNsaWRlID0gJHdyYXBwZXJFbC5jaGlsZHJlbihgLiR7c3dpcGVyUGFyYW1zLnNsaWRlTmV4dENsYXNzfWApO1xuICAgICAgICBpZiAobmV4dFNsaWRlLmxlbmd0aCA+IDApIGxvYWRJblNsaWRlKHNsaWRlSW5kZXgobmV4dFNsaWRlKSk7XG4gICAgICAgIGNvbnN0IHByZXZTbGlkZSA9ICR3cmFwcGVyRWwuY2hpbGRyZW4oYC4ke3N3aXBlclBhcmFtcy5zbGlkZVByZXZDbGFzc31gKTtcbiAgICAgICAgaWYgKHByZXZTbGlkZS5sZW5ndGggPiAwKSBsb2FkSW5TbGlkZShzbGlkZUluZGV4KHByZXZTbGlkZSkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGNoZWNrSW5WaWV3T25Mb2FkKCkge1xuICAgIGNvbnN0IHdpbmRvdyA9IGdldFdpbmRvdygpO1xuICAgIGlmICghc3dpcGVyIHx8IHN3aXBlci5kZXN0cm95ZWQpIHJldHVybjtcbiAgICBjb25zdCAkc2Nyb2xsRWxlbWVudCA9IHN3aXBlci5wYXJhbXMubGF6eS5zY3JvbGxpbmdFbGVtZW50ID8gJChzd2lwZXIucGFyYW1zLmxhenkuc2Nyb2xsaW5nRWxlbWVudCkgOiAkKHdpbmRvdyk7XG4gICAgY29uc3QgaXNXaW5kb3cgPSAkc2Nyb2xsRWxlbWVudFswXSA9PT0gd2luZG93O1xuICAgIGNvbnN0IHNjcm9sbEVsZW1lbnRXaWR0aCA9IGlzV2luZG93ID8gd2luZG93LmlubmVyV2lkdGggOiAkc2Nyb2xsRWxlbWVudFswXS5vZmZzZXRXaWR0aDtcbiAgICBjb25zdCBzY3JvbGxFbGVtZW50SGVpZ2h0ID0gaXNXaW5kb3cgPyB3aW5kb3cuaW5uZXJIZWlnaHQgOiAkc2Nyb2xsRWxlbWVudFswXS5vZmZzZXRIZWlnaHQ7XG4gICAgY29uc3Qgc3dpcGVyT2Zmc2V0ID0gc3dpcGVyLiRlbC5vZmZzZXQoKTtcbiAgICBjb25zdCB7XG4gICAgICBydGxUcmFuc2xhdGU6IHJ0bFxuICAgIH0gPSBzd2lwZXI7XG4gICAgbGV0IGluVmlldyA9IGZhbHNlO1xuICAgIGlmIChydGwpIHN3aXBlck9mZnNldC5sZWZ0IC09IHN3aXBlci4kZWxbMF0uc2Nyb2xsTGVmdDtcbiAgICBjb25zdCBzd2lwZXJDb29yZCA9IFtbc3dpcGVyT2Zmc2V0LmxlZnQsIHN3aXBlck9mZnNldC50b3BdLCBbc3dpcGVyT2Zmc2V0LmxlZnQgKyBzd2lwZXIud2lkdGgsIHN3aXBlck9mZnNldC50b3BdLCBbc3dpcGVyT2Zmc2V0LmxlZnQsIHN3aXBlck9mZnNldC50b3AgKyBzd2lwZXIuaGVpZ2h0XSwgW3N3aXBlck9mZnNldC5sZWZ0ICsgc3dpcGVyLndpZHRoLCBzd2lwZXJPZmZzZXQudG9wICsgc3dpcGVyLmhlaWdodF1dO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzd2lwZXJDb29yZC5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgY29uc3QgcG9pbnQgPSBzd2lwZXJDb29yZFtpXTtcblxuICAgICAgaWYgKHBvaW50WzBdID49IDAgJiYgcG9pbnRbMF0gPD0gc2Nyb2xsRWxlbWVudFdpZHRoICYmIHBvaW50WzFdID49IDAgJiYgcG9pbnRbMV0gPD0gc2Nyb2xsRWxlbWVudEhlaWdodCkge1xuICAgICAgICBpZiAocG9pbnRbMF0gPT09IDAgJiYgcG9pbnRbMV0gPT09IDApIGNvbnRpbnVlOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG5cbiAgICAgICAgaW5WaWV3ID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBwYXNzaXZlTGlzdGVuZXIgPSBzd2lwZXIudG91Y2hFdmVudHMuc3RhcnQgPT09ICd0b3VjaHN0YXJ0JyAmJiBzd2lwZXIuc3VwcG9ydC5wYXNzaXZlTGlzdGVuZXIgJiYgc3dpcGVyLnBhcmFtcy5wYXNzaXZlTGlzdGVuZXJzID8ge1xuICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICAgIGNhcHR1cmU6IGZhbHNlXG4gICAgfSA6IGZhbHNlO1xuXG4gICAgaWYgKGluVmlldykge1xuICAgICAgbG9hZCgpO1xuICAgICAgJHNjcm9sbEVsZW1lbnQub2ZmKCdzY3JvbGwnLCBjaGVja0luVmlld09uTG9hZCwgcGFzc2l2ZUxpc3RlbmVyKTtcbiAgICB9IGVsc2UgaWYgKCFzY3JvbGxIYW5kbGVyQXR0YWNoZWQpIHtcbiAgICAgIHNjcm9sbEhhbmRsZXJBdHRhY2hlZCA9IHRydWU7XG4gICAgICAkc2Nyb2xsRWxlbWVudC5vbignc2Nyb2xsJywgY2hlY2tJblZpZXdPbkxvYWQsIHBhc3NpdmVMaXN0ZW5lcik7XG4gICAgfVxuICB9XG5cbiAgb24oJ2JlZm9yZUluaXQnLCAoKSA9PiB7XG4gICAgaWYgKHN3aXBlci5wYXJhbXMubGF6eS5lbmFibGVkICYmIHN3aXBlci5wYXJhbXMucHJlbG9hZEltYWdlcykge1xuICAgICAgc3dpcGVyLnBhcmFtcy5wcmVsb2FkSW1hZ2VzID0gZmFsc2U7XG4gICAgfVxuICB9KTtcbiAgb24oJ2luaXQnLCAoKSA9PiB7XG4gICAgaWYgKHN3aXBlci5wYXJhbXMubGF6eS5lbmFibGVkKSB7XG4gICAgICBpZiAoc3dpcGVyLnBhcmFtcy5sYXp5LmNoZWNrSW5WaWV3KSB7XG4gICAgICAgIGNoZWNrSW5WaWV3T25Mb2FkKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsb2FkKCk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbiAgb24oJ3Njcm9sbCcsICgpID0+IHtcbiAgICBpZiAoc3dpcGVyLnBhcmFtcy5mcmVlTW9kZSAmJiBzd2lwZXIucGFyYW1zLmZyZWVNb2RlLmVuYWJsZWQgJiYgIXN3aXBlci5wYXJhbXMuZnJlZU1vZGUuc3RpY2t5KSB7XG4gICAgICBsb2FkKCk7XG4gICAgfVxuICB9KTtcbiAgb24oJ3Njcm9sbGJhckRyYWdNb3ZlIHJlc2l6ZSBfZnJlZU1vZGVOb01vbWVudHVtUmVsZWFzZScsICgpID0+IHtcbiAgICBpZiAoc3dpcGVyLnBhcmFtcy5sYXp5LmVuYWJsZWQpIHtcbiAgICAgIGlmIChzd2lwZXIucGFyYW1zLmxhenkuY2hlY2tJblZpZXcpIHtcbiAgICAgICAgY2hlY2tJblZpZXdPbkxvYWQoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxvYWQoKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuICBvbigndHJhbnNpdGlvblN0YXJ0JywgKCkgPT4ge1xuICAgIGlmIChzd2lwZXIucGFyYW1zLmxhenkuZW5hYmxlZCkge1xuICAgICAgaWYgKHN3aXBlci5wYXJhbXMubGF6eS5sb2FkT25UcmFuc2l0aW9uU3RhcnQgfHwgIXN3aXBlci5wYXJhbXMubGF6eS5sb2FkT25UcmFuc2l0aW9uU3RhcnQgJiYgIWluaXRpYWxJbWFnZUxvYWRlZCkge1xuICAgICAgICBpZiAoc3dpcGVyLnBhcmFtcy5sYXp5LmNoZWNrSW5WaWV3KSB7XG4gICAgICAgICAgY2hlY2tJblZpZXdPbkxvYWQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsb2FkKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuICBvbigndHJhbnNpdGlvbkVuZCcsICgpID0+IHtcbiAgICBpZiAoc3dpcGVyLnBhcmFtcy5sYXp5LmVuYWJsZWQgJiYgIXN3aXBlci5wYXJhbXMubGF6eS5sb2FkT25UcmFuc2l0aW9uU3RhcnQpIHtcbiAgICAgIGlmIChzd2lwZXIucGFyYW1zLmxhenkuY2hlY2tJblZpZXcpIHtcbiAgICAgICAgY2hlY2tJblZpZXdPbkxvYWQoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxvYWQoKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuICBvbignc2xpZGVDaGFuZ2UnLCAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgbGF6eSxcbiAgICAgIGNzc01vZGUsXG4gICAgICB3YXRjaFNsaWRlc1Byb2dyZXNzLFxuICAgICAgdG91Y2hSZWxlYXNlT25FZGdlcyxcbiAgICAgIHJlc2lzdGFuY2VSYXRpb1xuICAgIH0gPSBzd2lwZXIucGFyYW1zO1xuXG4gICAgaWYgKGxhenkuZW5hYmxlZCAmJiAoY3NzTW9kZSB8fCB3YXRjaFNsaWRlc1Byb2dyZXNzICYmICh0b3VjaFJlbGVhc2VPbkVkZ2VzIHx8IHJlc2lzdGFuY2VSYXRpbyA9PT0gMCkpKSB7XG4gICAgICBsb2FkKCk7XG4gICAgfVxuICB9KTtcbiAgT2JqZWN0LmFzc2lnbihzd2lwZXIubGF6eSwge1xuICAgIGxvYWQsXG4gICAgbG9hZEluU2xpZGVcbiAgfSk7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/swiper/modules/lazy/lazy.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/modules/manipulation/manipulation.js": +/*!******************************************************************!*\ + !*** ./node_modules/swiper/modules/manipulation/manipulation.js ***! + \******************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ Manipulation; }\n/* harmony export */ });\n/* harmony import */ var _methods_appendSlide_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./methods/appendSlide.js */ \"./node_modules/swiper/modules/manipulation/methods/appendSlide.js\");\n/* harmony import */ var _methods_prependSlide_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./methods/prependSlide.js */ \"./node_modules/swiper/modules/manipulation/methods/prependSlide.js\");\n/* harmony import */ var _methods_addSlide_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./methods/addSlide.js */ \"./node_modules/swiper/modules/manipulation/methods/addSlide.js\");\n/* harmony import */ var _methods_removeSlide_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./methods/removeSlide.js */ \"./node_modules/swiper/modules/manipulation/methods/removeSlide.js\");\n/* harmony import */ var _methods_removeAllSlides_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./methods/removeAllSlides.js */ \"./node_modules/swiper/modules/manipulation/methods/removeAllSlides.js\");\n\n\n\n\n\nfunction Manipulation({\n swiper\n}) {\n Object.assign(swiper, {\n appendSlide: _methods_appendSlide_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].bind(swiper),\n prependSlide: _methods_prependSlide_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].bind(swiper),\n addSlide: _methods_addSlide_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].bind(swiper),\n removeSlide: _methods_removeSlide_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].bind(swiper),\n removeAllSlides: _methods_removeAllSlides_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].bind(swiper)\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMvbWFuaXB1bGF0aW9uL21hbmlwdWxhdGlvbi5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBbUQ7QUFDRTtBQUNSO0FBQ007QUFDUTtBQUM1QztBQUNmO0FBQ0EsQ0FBQztBQUNEO0FBQ0EsaUJBQWlCLG9FQUFnQjtBQUNqQyxrQkFBa0IscUVBQWlCO0FBQ25DLGNBQWMsaUVBQWE7QUFDM0IsaUJBQWlCLG9FQUFnQjtBQUNqQyxxQkFBcUIsd0VBQW9CO0FBQ3pDLEdBQUc7QUFDSCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMvbWFuaXB1bGF0aW9uL21hbmlwdWxhdGlvbi5qcz8xM2ZhIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhcHBlbmRTbGlkZSBmcm9tICcuL21ldGhvZHMvYXBwZW5kU2xpZGUuanMnO1xuaW1wb3J0IHByZXBlbmRTbGlkZSBmcm9tICcuL21ldGhvZHMvcHJlcGVuZFNsaWRlLmpzJztcbmltcG9ydCBhZGRTbGlkZSBmcm9tICcuL21ldGhvZHMvYWRkU2xpZGUuanMnO1xuaW1wb3J0IHJlbW92ZVNsaWRlIGZyb20gJy4vbWV0aG9kcy9yZW1vdmVTbGlkZS5qcyc7XG5pbXBvcnQgcmVtb3ZlQWxsU2xpZGVzIGZyb20gJy4vbWV0aG9kcy9yZW1vdmVBbGxTbGlkZXMuanMnO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTWFuaXB1bGF0aW9uKHtcbiAgc3dpcGVyXG59KSB7XG4gIE9iamVjdC5hc3NpZ24oc3dpcGVyLCB7XG4gICAgYXBwZW5kU2xpZGU6IGFwcGVuZFNsaWRlLmJpbmQoc3dpcGVyKSxcbiAgICBwcmVwZW5kU2xpZGU6IHByZXBlbmRTbGlkZS5iaW5kKHN3aXBlciksXG4gICAgYWRkU2xpZGU6IGFkZFNsaWRlLmJpbmQoc3dpcGVyKSxcbiAgICByZW1vdmVTbGlkZTogcmVtb3ZlU2xpZGUuYmluZChzd2lwZXIpLFxuICAgIHJlbW92ZUFsbFNsaWRlczogcmVtb3ZlQWxsU2xpZGVzLmJpbmQoc3dpcGVyKVxuICB9KTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/swiper/modules/manipulation/manipulation.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/modules/manipulation/methods/addSlide.js": +/*!**********************************************************************!*\ + !*** ./node_modules/swiper/modules/manipulation/methods/addSlide.js ***! + \**********************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ addSlide; }\n/* harmony export */ });\nfunction addSlide(index, slides) {\n const swiper = this;\n const {\n $wrapperEl,\n params,\n activeIndex\n } = swiper;\n let activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n\n const baseLength = swiper.slides.length;\n\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n\n let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n const slidesBuffer = [];\n\n for (let i = baseLength - 1; i >= index; i -= 1) {\n const currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n $wrapperEl.append(slides);\n }\n\n for (let i = 0; i < slidesBuffer.length; i += 1) {\n $wrapperEl.append(slidesBuffer[i]);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!params.observer) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMvbWFuaXB1bGF0aW9uL21ldGhvZHMvYWRkU2xpZGUuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjs7QUFFQTtBQUNBO0FBQ0E7QUFDQSw0Q0FBNEMsa0JBQWtCO0FBQzlEOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEsK0JBQStCLFlBQVk7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxvQkFBb0IsbUJBQW1CO0FBQ3ZDO0FBQ0E7O0FBRUE7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQSxrQkFBa0IseUJBQXlCO0FBQzNDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMvbWFuaXB1bGF0aW9uL21ldGhvZHMvYWRkU2xpZGUuanM/OGVmYyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBhZGRTbGlkZShpbmRleCwgc2xpZGVzKSB7XG4gIGNvbnN0IHN3aXBlciA9IHRoaXM7XG4gIGNvbnN0IHtcbiAgICAkd3JhcHBlckVsLFxuICAgIHBhcmFtcyxcbiAgICBhY3RpdmVJbmRleFxuICB9ID0gc3dpcGVyO1xuICBsZXQgYWN0aXZlSW5kZXhCdWZmZXIgPSBhY3RpdmVJbmRleDtcblxuICBpZiAocGFyYW1zLmxvb3ApIHtcbiAgICBhY3RpdmVJbmRleEJ1ZmZlciAtPSBzd2lwZXIubG9vcGVkU2xpZGVzO1xuICAgIHN3aXBlci5sb29wRGVzdHJveSgpO1xuICAgIHN3aXBlci5zbGlkZXMgPSAkd3JhcHBlckVsLmNoaWxkcmVuKGAuJHtwYXJhbXMuc2xpZGVDbGFzc31gKTtcbiAgfVxuXG4gIGNvbnN0IGJhc2VMZW5ndGggPSBzd2lwZXIuc2xpZGVzLmxlbmd0aDtcblxuICBpZiAoaW5kZXggPD0gMCkge1xuICAgIHN3aXBlci5wcmVwZW5kU2xpZGUoc2xpZGVzKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoaW5kZXggPj0gYmFzZUxlbmd0aCkge1xuICAgIHN3aXBlci5hcHBlbmRTbGlkZShzbGlkZXMpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGxldCBuZXdBY3RpdmVJbmRleCA9IGFjdGl2ZUluZGV4QnVmZmVyID4gaW5kZXggPyBhY3RpdmVJbmRleEJ1ZmZlciArIDEgOiBhY3RpdmVJbmRleEJ1ZmZlcjtcbiAgY29uc3Qgc2xpZGVzQnVmZmVyID0gW107XG5cbiAgZm9yIChsZXQgaSA9IGJhc2VMZW5ndGggLSAxOyBpID49IGluZGV4OyBpIC09IDEpIHtcbiAgICBjb25zdCBjdXJyZW50U2xpZGUgPSBzd2lwZXIuc2xpZGVzLmVxKGkpO1xuICAgIGN1cnJlbnRTbGlkZS5yZW1vdmUoKTtcbiAgICBzbGlkZXNCdWZmZXIudW5zaGlmdChjdXJyZW50U2xpZGUpO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBzbGlkZXMgPT09ICdvYmplY3QnICYmICdsZW5ndGgnIGluIHNsaWRlcykge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2xpZGVzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICBpZiAoc2xpZGVzW2ldKSAkd3JhcHBlckVsLmFwcGVuZChzbGlkZXNbaV0pO1xuICAgIH1cblxuICAgIG5ld0FjdGl2ZUluZGV4ID0gYWN0aXZlSW5kZXhCdWZmZXIgPiBpbmRleCA/IGFjdGl2ZUluZGV4QnVmZmVyICsgc2xpZGVzLmxlbmd0aCA6IGFjdGl2ZUluZGV4QnVmZmVyO1xuICB9IGVsc2Uge1xuICAgICR3cmFwcGVyRWwuYXBwZW5kKHNsaWRlcyk7XG4gIH1cblxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNsaWRlc0J1ZmZlci5sZW5ndGg7IGkgKz0gMSkge1xuICAgICR3cmFwcGVyRWwuYXBwZW5kKHNsaWRlc0J1ZmZlcltpXSk7XG4gIH1cblxuICBpZiAocGFyYW1zLmxvb3ApIHtcbiAgICBzd2lwZXIubG9vcENyZWF0ZSgpO1xuICB9XG5cbiAgaWYgKCFwYXJhbXMub2JzZXJ2ZXIpIHtcbiAgICBzd2lwZXIudXBkYXRlKCk7XG4gIH1cblxuICBpZiAocGFyYW1zLmxvb3ApIHtcbiAgICBzd2lwZXIuc2xpZGVUbyhuZXdBY3RpdmVJbmRleCArIHN3aXBlci5sb29wZWRTbGlkZXMsIDAsIGZhbHNlKTtcbiAgfSBlbHNlIHtcbiAgICBzd2lwZXIuc2xpZGVUbyhuZXdBY3RpdmVJbmRleCwgMCwgZmFsc2UpO1xuICB9XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/swiper/modules/manipulation/methods/addSlide.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/modules/manipulation/methods/appendSlide.js": +/*!*************************************************************************!*\ + !*** ./node_modules/swiper/modules/manipulation/methods/appendSlide.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ appendSlide; }\n/* harmony export */ });\nfunction appendSlide(slides) {\n const swiper = this;\n const {\n $wrapperEl,\n params\n } = swiper;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n } else {\n $wrapperEl.append(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!params.observer) {\n swiper.update();\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMvbWFuaXB1bGF0aW9uL21ldGhvZHMvYXBwZW5kU2xpZGUuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOztBQUVKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLG9CQUFvQixtQkFBbUI7QUFDdkM7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMvbWFuaXB1bGF0aW9uL21ldGhvZHMvYXBwZW5kU2xpZGUuanM/NjExZSJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBhcHBlbmRTbGlkZShzbGlkZXMpIHtcbiAgY29uc3Qgc3dpcGVyID0gdGhpcztcbiAgY29uc3Qge1xuICAgICR3cmFwcGVyRWwsXG4gICAgcGFyYW1zXG4gIH0gPSBzd2lwZXI7XG5cbiAgaWYgKHBhcmFtcy5sb29wKSB7XG4gICAgc3dpcGVyLmxvb3BEZXN0cm95KCk7XG4gIH1cblxuICBpZiAodHlwZW9mIHNsaWRlcyA9PT0gJ29iamVjdCcgJiYgJ2xlbmd0aCcgaW4gc2xpZGVzKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzbGlkZXMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgIGlmIChzbGlkZXNbaV0pICR3cmFwcGVyRWwuYXBwZW5kKHNsaWRlc1tpXSk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgICR3cmFwcGVyRWwuYXBwZW5kKHNsaWRlcyk7XG4gIH1cblxuICBpZiAocGFyYW1zLmxvb3ApIHtcbiAgICBzd2lwZXIubG9vcENyZWF0ZSgpO1xuICB9XG5cbiAgaWYgKCFwYXJhbXMub2JzZXJ2ZXIpIHtcbiAgICBzd2lwZXIudXBkYXRlKCk7XG4gIH1cbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/swiper/modules/manipulation/methods/appendSlide.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/modules/manipulation/methods/prependSlide.js": +/*!**************************************************************************!*\ + !*** ./node_modules/swiper/modules/manipulation/methods/prependSlide.js ***! + \**************************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ prependSlide; }\n/* harmony export */ });\nfunction prependSlide(slides) {\n const swiper = this;\n const {\n params,\n $wrapperEl,\n activeIndex\n } = swiper;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n let newActiveIndex = activeIndex + 1;\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.prepend(slides[i]);\n }\n\n newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!params.observer) {\n swiper.update();\n }\n\n swiper.slideTo(newActiveIndex, 0, false);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMvbWFuaXB1bGF0aW9uL21ldGhvZHMvcHJlcGVuZFNsaWRlLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOztBQUVKO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBLG9CQUFvQixtQkFBbUI7QUFDdkM7QUFDQTs7QUFFQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMvbWFuaXB1bGF0aW9uL21ldGhvZHMvcHJlcGVuZFNsaWRlLmpzP2VlZTgiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcHJlcGVuZFNsaWRlKHNsaWRlcykge1xuICBjb25zdCBzd2lwZXIgPSB0aGlzO1xuICBjb25zdCB7XG4gICAgcGFyYW1zLFxuICAgICR3cmFwcGVyRWwsXG4gICAgYWN0aXZlSW5kZXhcbiAgfSA9IHN3aXBlcjtcblxuICBpZiAocGFyYW1zLmxvb3ApIHtcbiAgICBzd2lwZXIubG9vcERlc3Ryb3koKTtcbiAgfVxuXG4gIGxldCBuZXdBY3RpdmVJbmRleCA9IGFjdGl2ZUluZGV4ICsgMTtcblxuICBpZiAodHlwZW9mIHNsaWRlcyA9PT0gJ29iamVjdCcgJiYgJ2xlbmd0aCcgaW4gc2xpZGVzKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzbGlkZXMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgIGlmIChzbGlkZXNbaV0pICR3cmFwcGVyRWwucHJlcGVuZChzbGlkZXNbaV0pO1xuICAgIH1cblxuICAgIG5ld0FjdGl2ZUluZGV4ID0gYWN0aXZlSW5kZXggKyBzbGlkZXMubGVuZ3RoO1xuICB9IGVsc2Uge1xuICAgICR3cmFwcGVyRWwucHJlcGVuZChzbGlkZXMpO1xuICB9XG5cbiAgaWYgKHBhcmFtcy5sb29wKSB7XG4gICAgc3dpcGVyLmxvb3BDcmVhdGUoKTtcbiAgfVxuXG4gIGlmICghcGFyYW1zLm9ic2VydmVyKSB7XG4gICAgc3dpcGVyLnVwZGF0ZSgpO1xuICB9XG5cbiAgc3dpcGVyLnNsaWRlVG8obmV3QWN0aXZlSW5kZXgsIDAsIGZhbHNlKTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/swiper/modules/manipulation/methods/prependSlide.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/modules/manipulation/methods/removeAllSlides.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/swiper/modules/manipulation/methods/removeAllSlides.js ***! + \*****************************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ removeAllSlides; }\n/* harmony export */ });\nfunction removeAllSlides() {\n const swiper = this;\n const slidesIndexes = [];\n\n for (let i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n\n swiper.removeSlide(slidesIndexes);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMvbWFuaXB1bGF0aW9uL21ldGhvZHMvcmVtb3ZlQWxsU2xpZGVzLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBZTtBQUNmO0FBQ0E7O0FBRUEsa0JBQWtCLDBCQUEwQjtBQUM1QztBQUNBOztBQUVBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N3aXBlci9tb2R1bGVzL21hbmlwdWxhdGlvbi9tZXRob2RzL3JlbW92ZUFsbFNsaWRlcy5qcz9jNGVhIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJlbW92ZUFsbFNsaWRlcygpIHtcbiAgY29uc3Qgc3dpcGVyID0gdGhpcztcbiAgY29uc3Qgc2xpZGVzSW5kZXhlcyA9IFtdO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc3dpcGVyLnNsaWRlcy5sZW5ndGg7IGkgKz0gMSkge1xuICAgIHNsaWRlc0luZGV4ZXMucHVzaChpKTtcbiAgfVxuXG4gIHN3aXBlci5yZW1vdmVTbGlkZShzbGlkZXNJbmRleGVzKTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/swiper/modules/manipulation/methods/removeAllSlides.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/modules/manipulation/methods/removeSlide.js": +/*!*************************************************************************!*\ + !*** ./node_modules/swiper/modules/manipulation/methods/removeSlide.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ removeSlide; }\n/* harmony export */ });\nfunction removeSlide(slidesIndexes) {\n const swiper = this;\n const {\n params,\n $wrapperEl,\n activeIndex\n } = swiper;\n let activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n\n let newActiveIndex = activeIndexBuffer;\n let indexToRemove;\n\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (let i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!params.observer) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMvbWFuaXB1bGF0aW9uL21ldGhvZHMvcmVtb3ZlU2xpZGUuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjs7QUFFQTtBQUNBO0FBQ0E7QUFDQSw0Q0FBNEMsa0JBQWtCO0FBQzlEOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxvQkFBb0IsMEJBQTBCO0FBQzlDO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMvbWFuaXB1bGF0aW9uL21ldGhvZHMvcmVtb3ZlU2xpZGUuanM/MzM2ZSJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiByZW1vdmVTbGlkZShzbGlkZXNJbmRleGVzKSB7XG4gIGNvbnN0IHN3aXBlciA9IHRoaXM7XG4gIGNvbnN0IHtcbiAgICBwYXJhbXMsXG4gICAgJHdyYXBwZXJFbCxcbiAgICBhY3RpdmVJbmRleFxuICB9ID0gc3dpcGVyO1xuICBsZXQgYWN0aXZlSW5kZXhCdWZmZXIgPSBhY3RpdmVJbmRleDtcblxuICBpZiAocGFyYW1zLmxvb3ApIHtcbiAgICBhY3RpdmVJbmRleEJ1ZmZlciAtPSBzd2lwZXIubG9vcGVkU2xpZGVzO1xuICAgIHN3aXBlci5sb29wRGVzdHJveSgpO1xuICAgIHN3aXBlci5zbGlkZXMgPSAkd3JhcHBlckVsLmNoaWxkcmVuKGAuJHtwYXJhbXMuc2xpZGVDbGFzc31gKTtcbiAgfVxuXG4gIGxldCBuZXdBY3RpdmVJbmRleCA9IGFjdGl2ZUluZGV4QnVmZmVyO1xuICBsZXQgaW5kZXhUb1JlbW92ZTtcblxuICBpZiAodHlwZW9mIHNsaWRlc0luZGV4ZXMgPT09ICdvYmplY3QnICYmICdsZW5ndGgnIGluIHNsaWRlc0luZGV4ZXMpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNsaWRlc0luZGV4ZXMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgIGluZGV4VG9SZW1vdmUgPSBzbGlkZXNJbmRleGVzW2ldO1xuICAgICAgaWYgKHN3aXBlci5zbGlkZXNbaW5kZXhUb1JlbW92ZV0pIHN3aXBlci5zbGlkZXMuZXEoaW5kZXhUb1JlbW92ZSkucmVtb3ZlKCk7XG4gICAgICBpZiAoaW5kZXhUb1JlbW92ZSA8IG5ld0FjdGl2ZUluZGV4KSBuZXdBY3RpdmVJbmRleCAtPSAxO1xuICAgIH1cblxuICAgIG5ld0FjdGl2ZUluZGV4ID0gTWF0aC5tYXgobmV3QWN0aXZlSW5kZXgsIDApO1xuICB9IGVsc2Uge1xuICAgIGluZGV4VG9SZW1vdmUgPSBzbGlkZXNJbmRleGVzO1xuICAgIGlmIChzd2lwZXIuc2xpZGVzW2luZGV4VG9SZW1vdmVdKSBzd2lwZXIuc2xpZGVzLmVxKGluZGV4VG9SZW1vdmUpLnJlbW92ZSgpO1xuICAgIGlmIChpbmRleFRvUmVtb3ZlIDwgbmV3QWN0aXZlSW5kZXgpIG5ld0FjdGl2ZUluZGV4IC09IDE7XG4gICAgbmV3QWN0aXZlSW5kZXggPSBNYXRoLm1heChuZXdBY3RpdmVJbmRleCwgMCk7XG4gIH1cblxuICBpZiAocGFyYW1zLmxvb3ApIHtcbiAgICBzd2lwZXIubG9vcENyZWF0ZSgpO1xuICB9XG5cbiAgaWYgKCFwYXJhbXMub2JzZXJ2ZXIpIHtcbiAgICBzd2lwZXIudXBkYXRlKCk7XG4gIH1cblxuICBpZiAocGFyYW1zLmxvb3ApIHtcbiAgICBzd2lwZXIuc2xpZGVUbyhuZXdBY3RpdmVJbmRleCArIHN3aXBlci5sb29wZWRTbGlkZXMsIDAsIGZhbHNlKTtcbiAgfSBlbHNlIHtcbiAgICBzd2lwZXIuc2xpZGVUbyhuZXdBY3RpdmVJbmRleCwgMCwgZmFsc2UpO1xuICB9XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/swiper/modules/manipulation/methods/removeSlide.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/modules/mousewheel/mousewheel.js": +/*!**************************************************************!*\ + !*** ./node_modules/swiper/modules/mousewheel/mousewheel.js ***! + \**************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ Mousewheel; }\n/* harmony export */ });\n/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ \"./node_modules/ssr-window/ssr-window.esm.js\");\n/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ \"./node_modules/swiper/shared/dom.js\");\n/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/utils.js */ \"./node_modules/swiper/shared/utils.js\");\n/* eslint-disable consistent-return */\n\n\n\nfunction Mousewheel({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();\n extendParams({\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarget: 'container',\n thresholdDelta: null,\n thresholdTime: null\n }\n });\n swiper.mousewheel = {\n enabled: false\n };\n let timeout;\n let lastScrollTime = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.now)();\n let lastEventBeforeSnap;\n const recentWheelEvents = [];\n\n function normalize(e) {\n // Reasonable defaults\n const PIXEL_STEP = 10;\n const LINE_HEIGHT = 40;\n const PAGE_HEIGHT = 800;\n let sX = 0;\n let sY = 0; // spinX, spinY\n\n let pX = 0;\n let pY = 0; // pixelX, pixelY\n // Legacy\n\n if ('detail' in e) {\n sY = e.detail;\n }\n\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n } // side scrolling on FF with DOMMouseScroll\n\n\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n\n if (e.shiftKey && !pX) {\n // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n } // Fall-back if spin cannot be determined\n\n\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n }\n\n function handleMouseEnter() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = true;\n }\n\n function handleMouseLeave() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = false;\n }\n\n function animateSlider(newEvent) {\n if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) {\n // Prevent if delta of wheel scroll delta is below configured threshold\n return false;\n }\n\n if (swiper.params.mousewheel.thresholdTime && (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.now)() - lastScrollTime < swiper.params.mousewheel.thresholdTime) {\n // Prevent if time between scrolls is below configured threshold\n return false;\n } // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n\n\n if (newEvent.delta >= 6 && (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.now)() - lastScrollTime < 60) {\n // Return false as a default\n return true;\n } // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n\n\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n emit('scroll', newEvent.raw);\n } // If you got here is because an animation has been triggered so store the current time\n\n\n lastScrollTime = new window.Date().getTime(); // Return false as a default\n\n return false;\n }\n\n function releaseScroll(newEvent) {\n const params = swiper.params.mousewheel;\n\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n\n return false;\n }\n\n function handle(event) {\n let e = event;\n let disableParentSwiper = true;\n if (!swiper.enabled) return;\n const params = swiper.params.mousewheel;\n\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n\n let target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(swiper.params.mousewheel.eventsTarget);\n }\n\n if (!swiper.mouseEntered && !target[0].contains(e.target) && !params.releaseOnEdges) return true;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n\n let delta = 0;\n const rtlFactor = swiper.rtlTranslate ? -1 : 1;\n const data = normalize(e);\n\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n\n if (delta === 0) return true;\n if (params.invert) delta = -delta; // Get the scroll positions\n\n let positions = swiper.getTranslate() + delta * params.sensitivity;\n if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\n if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate(); // When loop is true:\n // the disableParentSwiper will be true.\n // When loop is false:\n // if the scroll positions is not on edge,\n // then the disableParentSwiper will be true.\n // if the scroll on edge positions,\n // then the disableParentSwiper will be false.\n\n disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\n if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\n\n if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) {\n // Register the new event in a variable which stores the relevant data\n const newEvent = {\n time: (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.now)(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event\n }; // Keep the most recent events\n\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent); // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n animateSlider(newEvent);\n }\n } else {\n animateSlider(newEvent);\n } // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n\n\n if (releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n const newEvent = {\n time: (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.now)(),\n delta: Math.abs(delta),\n direction: Math.sign(delta)\n };\n const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction;\n\n if (!ignoreWheelEvents) {\n lastEventBeforeSnap = undefined;\n\n if (swiper.params.loop) {\n swiper.loopFix();\n }\n\n let position = swiper.getTranslate() + delta * params.sensitivity;\n const wasBeginning = swiper.isBeginning;\n const wasEnd = swiper.isEnd;\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeMode.sticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(timeout);\n timeout = undefined;\n\n if (recentWheelEvents.length >= 15) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n const firstEvent = recentWheelEvents[0];\n recentWheelEvents.push(newEvent);\n\n if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n recentWheelEvents.splice(0);\n } else if (recentWheelEvents.length >= 15 && newEvent.time - firstEvent.time < 500 && firstEvent.delta - newEvent.delta >= 1 && newEvent.delta <= 6) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n const snapToThreshold = delta > 0 ? 0.8 : 0.2;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n timeout = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.nextTick)(() => {\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n\n if (!timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n timeout = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.nextTick)(() => {\n const snapToThreshold = 0.5;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n } // Emit event\n\n\n if (!ignoreWheelEvents) emit('scroll', e); // Stop autoplay\n\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop(); // Return page scroll on edge positions\n\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n }\n }\n\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n return false;\n }\n\n function events(method) {\n let target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(swiper.params.mousewheel.eventsTarget);\n }\n\n target[method]('mouseenter', handleMouseEnter);\n target[method]('mouseleave', handleMouseLeave);\n target[method]('wheel', handle);\n }\n\n function enable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener('wheel', handle);\n return true;\n }\n\n if (swiper.mousewheel.enabled) return false;\n events('on');\n swiper.mousewheel.enabled = true;\n return true;\n }\n\n function disable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, handle);\n return true;\n }\n\n if (!swiper.mousewheel.enabled) return false;\n events('off');\n swiper.mousewheel.enabled = false;\n return true;\n }\n\n on('init', () => {\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n disable();\n }\n\n if (swiper.params.mousewheel.enabled) enable();\n });\n on('destroy', () => {\n if (swiper.params.cssMode) {\n enable();\n }\n\n if (swiper.mousewheel.enabled) disable();\n });\n Object.assign(swiper.mousewheel, {\n enable,\n disable\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMvbW91c2V3aGVlbC9tb3VzZXdoZWVsLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTtBQUN1QztBQUNIO0FBQ2tCO0FBQ3ZDO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsaUJBQWlCLHFEQUFTO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIscURBQUc7QUFDMUI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7O0FBRWhCO0FBQ0EsZ0JBQWdCO0FBQ2hCOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNOzs7QUFHTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTs7O0FBR047QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGtEQUFrRCxxREFBRztBQUNyRDtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7OztBQUdBLCtCQUErQixxREFBRztBQUNsQztBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLE1BQU07OztBQUdOLGtEQUFrRDs7QUFFbEQ7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQSxlQUFlLDBEQUFDO0FBQ2hCOztBQUVBO0FBQ0EsOENBQThDOztBQUU5QztBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLDRGQUE0RjtBQUM1RixRQUFRLDZFQUE2RTtBQUNyRixNQUFNO0FBQ047QUFDQTs7QUFFQTtBQUNBLHVDQUF1Qzs7QUFFdkM7QUFDQTtBQUNBLCtFQUErRTtBQUMvRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxjQUFjLHFEQUFHO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLFNBQVM7O0FBRVQ7QUFDQSxtQ0FBbUM7QUFDbkM7O0FBRUE7QUFDQSx3Q0FBd0M7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBLFFBQVE7QUFDUjs7O0FBR0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMscURBQUc7QUFDakI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSx1Q0FBdUM7QUFDdkM7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsMERBQVE7QUFDOUI7QUFDQSxhQUFhLE1BQU0sYUFBYTtBQUNoQzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQiwwREFBUTtBQUM5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLFVBQVU7OztBQUdWLG1EQUFtRDs7QUFFbkQsMEdBQTBHOztBQUUxRztBQUNBO0FBQ0E7O0FBRUEsNkNBQTZDO0FBQzdDO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLGVBQWUsMERBQUM7QUFDaEI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N3aXBlci9tb2R1bGVzL21vdXNld2hlZWwvbW91c2V3aGVlbC5qcz9kZGM1Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGNvbnNpc3RlbnQtcmV0dXJuICovXG5pbXBvcnQgeyBnZXRXaW5kb3cgfSBmcm9tICdzc3Itd2luZG93JztcbmltcG9ydCAkIGZyb20gJy4uLy4uL3NoYXJlZC9kb20uanMnO1xuaW1wb3J0IHsgbm93LCBuZXh0VGljayB9IGZyb20gJy4uLy4uL3NoYXJlZC91dGlscy5qcyc7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBNb3VzZXdoZWVsKHtcbiAgc3dpcGVyLFxuICBleHRlbmRQYXJhbXMsXG4gIG9uLFxuICBlbWl0XG59KSB7XG4gIGNvbnN0IHdpbmRvdyA9IGdldFdpbmRvdygpO1xuICBleHRlbmRQYXJhbXMoe1xuICAgIG1vdXNld2hlZWw6IHtcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgcmVsZWFzZU9uRWRnZXM6IGZhbHNlLFxuICAgICAgaW52ZXJ0OiBmYWxzZSxcbiAgICAgIGZvcmNlVG9BeGlzOiBmYWxzZSxcbiAgICAgIHNlbnNpdGl2aXR5OiAxLFxuICAgICAgZXZlbnRzVGFyZ2V0OiAnY29udGFpbmVyJyxcbiAgICAgIHRocmVzaG9sZERlbHRhOiBudWxsLFxuICAgICAgdGhyZXNob2xkVGltZTogbnVsbFxuICAgIH1cbiAgfSk7XG4gIHN3aXBlci5tb3VzZXdoZWVsID0ge1xuICAgIGVuYWJsZWQ6IGZhbHNlXG4gIH07XG4gIGxldCB0aW1lb3V0O1xuICBsZXQgbGFzdFNjcm9sbFRpbWUgPSBub3coKTtcbiAgbGV0IGxhc3RFdmVudEJlZm9yZVNuYXA7XG4gIGNvbnN0IHJlY2VudFdoZWVsRXZlbnRzID0gW107XG5cbiAgZnVuY3Rpb24gbm9ybWFsaXplKGUpIHtcbiAgICAvLyBSZWFzb25hYmxlIGRlZmF1bHRzXG4gICAgY29uc3QgUElYRUxfU1RFUCA9IDEwO1xuICAgIGNvbnN0IExJTkVfSEVJR0hUID0gNDA7XG4gICAgY29uc3QgUEFHRV9IRUlHSFQgPSA4MDA7XG4gICAgbGV0IHNYID0gMDtcbiAgICBsZXQgc1kgPSAwOyAvLyBzcGluWCwgc3BpbllcblxuICAgIGxldCBwWCA9IDA7XG4gICAgbGV0IHBZID0gMDsgLy8gcGl4ZWxYLCBwaXhlbFlcbiAgICAvLyBMZWdhY3lcblxuICAgIGlmICgnZGV0YWlsJyBpbiBlKSB7XG4gICAgICBzWSA9IGUuZGV0YWlsO1xuICAgIH1cblxuICAgIGlmICgnd2hlZWxEZWx0YScgaW4gZSkge1xuICAgICAgc1kgPSAtZS53aGVlbERlbHRhIC8gMTIwO1xuICAgIH1cblxuICAgIGlmICgnd2hlZWxEZWx0YVknIGluIGUpIHtcbiAgICAgIHNZID0gLWUud2hlZWxEZWx0YVkgLyAxMjA7XG4gICAgfVxuXG4gICAgaWYgKCd3aGVlbERlbHRhWCcgaW4gZSkge1xuICAgICAgc1ggPSAtZS53aGVlbERlbHRhWCAvIDEyMDtcbiAgICB9IC8vIHNpZGUgc2Nyb2xsaW5nIG9uIEZGIHdpdGggRE9NTW91c2VTY3JvbGxcblxuXG4gICAgaWYgKCdheGlzJyBpbiBlICYmIGUuYXhpcyA9PT0gZS5IT1JJWk9OVEFMX0FYSVMpIHtcbiAgICAgIHNYID0gc1k7XG4gICAgICBzWSA9IDA7XG4gICAgfVxuXG4gICAgcFggPSBzWCAqIFBJWEVMX1NURVA7XG4gICAgcFkgPSBzWSAqIFBJWEVMX1NURVA7XG5cbiAgICBpZiAoJ2RlbHRhWScgaW4gZSkge1xuICAgICAgcFkgPSBlLmRlbHRhWTtcbiAgICB9XG5cbiAgICBpZiAoJ2RlbHRhWCcgaW4gZSkge1xuICAgICAgcFggPSBlLmRlbHRhWDtcbiAgICB9XG5cbiAgICBpZiAoZS5zaGlmdEtleSAmJiAhcFgpIHtcbiAgICAgIC8vIGlmIHVzZXIgc2Nyb2xscyB3aXRoIHNoaWZ0IGhlIHdhbnRzIGhvcml6b250YWwgc2Nyb2xsXG4gICAgICBwWCA9IHBZO1xuICAgICAgcFkgPSAwO1xuICAgIH1cblxuICAgIGlmICgocFggfHwgcFkpICYmIGUuZGVsdGFNb2RlKSB7XG4gICAgICBpZiAoZS5kZWx0YU1vZGUgPT09IDEpIHtcbiAgICAgICAgLy8gZGVsdGEgaW4gTElORSB1bml0c1xuICAgICAgICBwWCAqPSBMSU5FX0hFSUdIVDtcbiAgICAgICAgcFkgKj0gTElORV9IRUlHSFQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBkZWx0YSBpbiBQQUdFIHVuaXRzXG4gICAgICAgIHBYICo9IFBBR0VfSEVJR0hUO1xuICAgICAgICBwWSAqPSBQQUdFX0hFSUdIVDtcbiAgICAgIH1cbiAgICB9IC8vIEZhbGwtYmFjayBpZiBzcGluIGNhbm5vdCBiZSBkZXRlcm1pbmVkXG5cblxuICAgIGlmIChwWCAmJiAhc1gpIHtcbiAgICAgIHNYID0gcFggPCAxID8gLTEgOiAxO1xuICAgIH1cblxuICAgIGlmIChwWSAmJiAhc1kpIHtcbiAgICAgIHNZID0gcFkgPCAxID8gLTEgOiAxO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBzcGluWDogc1gsXG4gICAgICBzcGluWTogc1ksXG4gICAgICBwaXhlbFg6IHBYLFxuICAgICAgcGl4ZWxZOiBwWVxuICAgIH07XG4gIH1cblxuICBmdW5jdGlvbiBoYW5kbGVNb3VzZUVudGVyKCkge1xuICAgIGlmICghc3dpcGVyLmVuYWJsZWQpIHJldHVybjtcbiAgICBzd2lwZXIubW91c2VFbnRlcmVkID0gdHJ1ZTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGhhbmRsZU1vdXNlTGVhdmUoKSB7XG4gICAgaWYgKCFzd2lwZXIuZW5hYmxlZCkgcmV0dXJuO1xuICAgIHN3aXBlci5tb3VzZUVudGVyZWQgPSBmYWxzZTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGFuaW1hdGVTbGlkZXIobmV3RXZlbnQpIHtcbiAgICBpZiAoc3dpcGVyLnBhcmFtcy5tb3VzZXdoZWVsLnRocmVzaG9sZERlbHRhICYmIG5ld0V2ZW50LmRlbHRhIDwgc3dpcGVyLnBhcmFtcy5tb3VzZXdoZWVsLnRocmVzaG9sZERlbHRhKSB7XG4gICAgICAvLyBQcmV2ZW50IGlmIGRlbHRhIG9mIHdoZWVsIHNjcm9sbCBkZWx0YSBpcyBiZWxvdyBjb25maWd1cmVkIHRocmVzaG9sZFxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmIChzd2lwZXIucGFyYW1zLm1vdXNld2hlZWwudGhyZXNob2xkVGltZSAmJiBub3coKSAtIGxhc3RTY3JvbGxUaW1lIDwgc3dpcGVyLnBhcmFtcy5tb3VzZXdoZWVsLnRocmVzaG9sZFRpbWUpIHtcbiAgICAgIC8vIFByZXZlbnQgaWYgdGltZSBiZXR3ZWVuIHNjcm9sbHMgaXMgYmVsb3cgY29uZmlndXJlZCB0aHJlc2hvbGRcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IC8vIElmIHRoZSBtb3ZlbWVudCBpcyBOT1QgYmlnIGVub3VnaCBhbmRcbiAgICAvLyBpZiB0aGUgbGFzdCB0aW1lIHRoZSB1c2VyIHNjcm9sbGVkIHdhcyB0b28gY2xvc2UgdG8gdGhlIGN1cnJlbnQgb25lIChhdm9pZCBjb250aW51b3VzbHkgdHJpZ2dlcmluZyB0aGUgc2xpZGVyKTpcbiAgICAvLyAgIERvbid0IGdvIGFueSBmdXJ0aGVyIChhdm9pZCBpbnNpZ25pZmljYW50IHNjcm9sbCBtb3ZlbWVudCkuXG5cblxuICAgIGlmIChuZXdFdmVudC5kZWx0YSA+PSA2ICYmIG5vdygpIC0gbGFzdFNjcm9sbFRpbWUgPCA2MCkge1xuICAgICAgLy8gUmV0dXJuIGZhbHNlIGFzIGEgZGVmYXVsdFxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSAvLyBJZiB1c2VyIGlzIHNjcm9sbGluZyB0b3dhcmRzIHRoZSBlbmQ6XG4gICAgLy8gICBJZiB0aGUgc2xpZGVyIGhhc24ndCBoaXQgdGhlIGxhdGVzdCBzbGlkZSBvclxuICAgIC8vICAgaWYgdGhlIHNsaWRlciBpcyBhIGxvb3AgYW5kXG4gICAgLy8gICBpZiB0aGUgc2xpZGVyIGlzbid0IG1vdmluZyByaWdodCBub3c6XG4gICAgLy8gICAgIEdvIHRvIG5leHQgc2xpZGUgYW5kXG4gICAgLy8gICAgIGVtaXQgYSBzY3JvbGwgZXZlbnQuXG4gICAgLy8gRWxzZSAodGhlIHVzZXIgaXMgc2Nyb2xsaW5nIHRvd2FyZHMgdGhlIGJlZ2lubmluZykgYW5kXG4gICAgLy8gaWYgdGhlIHNsaWRlciBoYXNuJ3QgaGl0IHRoZSBmaXJzdCBzbGlkZSBvclxuICAgIC8vIGlmIHRoZSBzbGlkZXIgaXMgYSBsb29wIGFuZFxuICAgIC8vIGlmIHRoZSBzbGlkZXIgaXNuJ3QgbW92aW5nIHJpZ2h0IG5vdzpcbiAgICAvLyAgIEdvIHRvIHByZXYgc2xpZGUgYW5kXG4gICAgLy8gICBlbWl0IGEgc2Nyb2xsIGV2ZW50LlxuXG5cbiAgICBpZiAobmV3RXZlbnQuZGlyZWN0aW9uIDwgMCkge1xuICAgICAgaWYgKCghc3dpcGVyLmlzRW5kIHx8IHN3aXBlci5wYXJhbXMubG9vcCkgJiYgIXN3aXBlci5hbmltYXRpbmcpIHtcbiAgICAgICAgc3dpcGVyLnNsaWRlTmV4dCgpO1xuICAgICAgICBlbWl0KCdzY3JvbGwnLCBuZXdFdmVudC5yYXcpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoKCFzd2lwZXIuaXNCZWdpbm5pbmcgfHwgc3dpcGVyLnBhcmFtcy5sb29wKSAmJiAhc3dpcGVyLmFuaW1hdGluZykge1xuICAgICAgc3dpcGVyLnNsaWRlUHJldigpO1xuICAgICAgZW1pdCgnc2Nyb2xsJywgbmV3RXZlbnQucmF3KTtcbiAgICB9IC8vIElmIHlvdSBnb3QgaGVyZSBpcyBiZWNhdXNlIGFuIGFuaW1hdGlvbiBoYXMgYmVlbiB0cmlnZ2VyZWQgc28gc3RvcmUgdGhlIGN1cnJlbnQgdGltZVxuXG5cbiAgICBsYXN0U2Nyb2xsVGltZSA9IG5ldyB3aW5kb3cuRGF0ZSgpLmdldFRpbWUoKTsgLy8gUmV0dXJuIGZhbHNlIGFzIGEgZGVmYXVsdFxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZnVuY3Rpb24gcmVsZWFzZVNjcm9sbChuZXdFdmVudCkge1xuICAgIGNvbnN0IHBhcmFtcyA9IHN3aXBlci5wYXJhbXMubW91c2V3aGVlbDtcblxuICAgIGlmIChuZXdFdmVudC5kaXJlY3Rpb24gPCAwKSB7XG4gICAgICBpZiAoc3dpcGVyLmlzRW5kICYmICFzd2lwZXIucGFyYW1zLmxvb3AgJiYgcGFyYW1zLnJlbGVhc2VPbkVkZ2VzKSB7XG4gICAgICAgIC8vIFJldHVybiB0cnVlIHRvIGFuaW1hdGUgc2Nyb2xsIG9uIGVkZ2VzXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoc3dpcGVyLmlzQmVnaW5uaW5nICYmICFzd2lwZXIucGFyYW1zLmxvb3AgJiYgcGFyYW1zLnJlbGVhc2VPbkVkZ2VzKSB7XG4gICAgICAvLyBSZXR1cm4gdHJ1ZSB0byBhbmltYXRlIHNjcm9sbCBvbiBlZGdlc1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZnVuY3Rpb24gaGFuZGxlKGV2ZW50KSB7XG4gICAgbGV0IGUgPSBldmVudDtcbiAgICBsZXQgZGlzYWJsZVBhcmVudFN3aXBlciA9IHRydWU7XG4gICAgaWYgKCFzd2lwZXIuZW5hYmxlZCkgcmV0dXJuO1xuICAgIGNvbnN0IHBhcmFtcyA9IHN3aXBlci5wYXJhbXMubW91c2V3aGVlbDtcblxuICAgIGlmIChzd2lwZXIucGFyYW1zLmNzc01vZGUpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBsZXQgdGFyZ2V0ID0gc3dpcGVyLiRlbDtcblxuICAgIGlmIChzd2lwZXIucGFyYW1zLm1vdXNld2hlZWwuZXZlbnRzVGFyZ2V0ICE9PSAnY29udGFpbmVyJykge1xuICAgICAgdGFyZ2V0ID0gJChzd2lwZXIucGFyYW1zLm1vdXNld2hlZWwuZXZlbnRzVGFyZ2V0KTtcbiAgICB9XG5cbiAgICBpZiAoIXN3aXBlci5tb3VzZUVudGVyZWQgJiYgIXRhcmdldFswXS5jb250YWlucyhlLnRhcmdldCkgJiYgIXBhcmFtcy5yZWxlYXNlT25FZGdlcykgcmV0dXJuIHRydWU7XG4gICAgaWYgKGUub3JpZ2luYWxFdmVudCkgZSA9IGUub3JpZ2luYWxFdmVudDsgLy8ganF1ZXJ5IGZpeFxuXG4gICAgbGV0IGRlbHRhID0gMDtcbiAgICBjb25zdCBydGxGYWN0b3IgPSBzd2lwZXIucnRsVHJhbnNsYXRlID8gLTEgOiAxO1xuICAgIGNvbnN0IGRhdGEgPSBub3JtYWxpemUoZSk7XG5cbiAgICBpZiAocGFyYW1zLmZvcmNlVG9BeGlzKSB7XG4gICAgICBpZiAoc3dpcGVyLmlzSG9yaXpvbnRhbCgpKSB7XG4gICAgICAgIGlmIChNYXRoLmFicyhkYXRhLnBpeGVsWCkgPiBNYXRoLmFicyhkYXRhLnBpeGVsWSkpIGRlbHRhID0gLWRhdGEucGl4ZWxYICogcnRsRmFjdG9yO2Vsc2UgcmV0dXJuIHRydWU7XG4gICAgICB9IGVsc2UgaWYgKE1hdGguYWJzKGRhdGEucGl4ZWxZKSA+IE1hdGguYWJzKGRhdGEucGl4ZWxYKSkgZGVsdGEgPSAtZGF0YS5waXhlbFk7ZWxzZSByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVsdGEgPSBNYXRoLmFicyhkYXRhLnBpeGVsWCkgPiBNYXRoLmFicyhkYXRhLnBpeGVsWSkgPyAtZGF0YS5waXhlbFggKiBydGxGYWN0b3IgOiAtZGF0YS5waXhlbFk7XG4gICAgfVxuXG4gICAgaWYgKGRlbHRhID09PSAwKSByZXR1cm4gdHJ1ZTtcbiAgICBpZiAocGFyYW1zLmludmVydCkgZGVsdGEgPSAtZGVsdGE7IC8vIEdldCB0aGUgc2Nyb2xsIHBvc2l0aW9uc1xuXG4gICAgbGV0IHBvc2l0aW9ucyA9IHN3aXBlci5nZXRUcmFuc2xhdGUoKSArIGRlbHRhICogcGFyYW1zLnNlbnNpdGl2aXR5O1xuICAgIGlmIChwb3NpdGlvbnMgPj0gc3dpcGVyLm1pblRyYW5zbGF0ZSgpKSBwb3NpdGlvbnMgPSBzd2lwZXIubWluVHJhbnNsYXRlKCk7XG4gICAgaWYgKHBvc2l0aW9ucyA8PSBzd2lwZXIubWF4VHJhbnNsYXRlKCkpIHBvc2l0aW9ucyA9IHN3aXBlci5tYXhUcmFuc2xhdGUoKTsgLy8gV2hlbiBsb29wIGlzIHRydWU6XG4gICAgLy8gICAgIHRoZSBkaXNhYmxlUGFyZW50U3dpcGVyIHdpbGwgYmUgdHJ1ZS5cbiAgICAvLyBXaGVuIGxvb3AgaXMgZmFsc2U6XG4gICAgLy8gICAgIGlmIHRoZSBzY3JvbGwgcG9zaXRpb25zIGlzIG5vdCBvbiBlZGdlLFxuICAgIC8vICAgICB0aGVuIHRoZSBkaXNhYmxlUGFyZW50U3dpcGVyIHdpbGwgYmUgdHJ1ZS5cbiAgICAvLyAgICAgaWYgdGhlIHNjcm9sbCBvbiBlZGdlIHBvc2l0aW9ucyxcbiAgICAvLyAgICAgdGhlbiB0aGUgZGlzYWJsZVBhcmVudFN3aXBlciB3aWxsIGJlIGZhbHNlLlxuXG4gICAgZGlzYWJsZVBhcmVudFN3aXBlciA9IHN3aXBlci5wYXJhbXMubG9vcCA/IHRydWUgOiAhKHBvc2l0aW9ucyA9PT0gc3dpcGVyLm1pblRyYW5zbGF0ZSgpIHx8IHBvc2l0aW9ucyA9PT0gc3dpcGVyLm1heFRyYW5zbGF0ZSgpKTtcbiAgICBpZiAoZGlzYWJsZVBhcmVudFN3aXBlciAmJiBzd2lwZXIucGFyYW1zLm5lc3RlZCkgZS5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGlmICghc3dpcGVyLnBhcmFtcy5mcmVlTW9kZSB8fCAhc3dpcGVyLnBhcmFtcy5mcmVlTW9kZS5lbmFibGVkKSB7XG4gICAgICAvLyBSZWdpc3RlciB0aGUgbmV3IGV2ZW50IGluIGEgdmFyaWFibGUgd2hpY2ggc3RvcmVzIHRoZSByZWxldmFudCBkYXRhXG4gICAgICBjb25zdCBuZXdFdmVudCA9IHtcbiAgICAgICAgdGltZTogbm93KCksXG4gICAgICAgIGRlbHRhOiBNYXRoLmFicyhkZWx0YSksXG4gICAgICAgIGRpcmVjdGlvbjogTWF0aC5zaWduKGRlbHRhKSxcbiAgICAgICAgcmF3OiBldmVudFxuICAgICAgfTsgLy8gS2VlcCB0aGUgbW9zdCByZWNlbnQgZXZlbnRzXG5cbiAgICAgIGlmIChyZWNlbnRXaGVlbEV2ZW50cy5sZW5ndGggPj0gMikge1xuICAgICAgICByZWNlbnRXaGVlbEV2ZW50cy5zaGlmdCgpOyAvLyBvbmx5IHN0b3JlIHRoZSBsYXN0IE4gZXZlbnRzXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHByZXZFdmVudCA9IHJlY2VudFdoZWVsRXZlbnRzLmxlbmd0aCA/IHJlY2VudFdoZWVsRXZlbnRzW3JlY2VudFdoZWVsRXZlbnRzLmxlbmd0aCAtIDFdIDogdW5kZWZpbmVkO1xuICAgICAgcmVjZW50V2hlZWxFdmVudHMucHVzaChuZXdFdmVudCk7IC8vIElmIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBwcmV2aW91cyByZWNvcmRlZCBldmVudDpcbiAgICAgIC8vICAgSWYgZGlyZWN0aW9uIGhhcyBjaGFuZ2VkIG9yXG4gICAgICAvLyAgIGlmIHRoZSBzY3JvbGwgaXMgcXVpY2tlciB0aGFuIHRoZSBwcmV2aW91cyBvbmU6XG4gICAgICAvLyAgICAgQW5pbWF0ZSB0aGUgc2xpZGVyLlxuICAgICAgLy8gRWxzZSAodGhpcyBpcyB0aGUgZmlyc3QgdGltZSB0aGUgd2hlZWwgaXMgbW92ZWQpOlxuICAgICAgLy8gICAgIEFuaW1hdGUgdGhlIHNsaWRlci5cblxuICAgICAgaWYgKHByZXZFdmVudCkge1xuICAgICAgICBpZiAobmV3RXZlbnQuZGlyZWN0aW9uICE9PSBwcmV2RXZlbnQuZGlyZWN0aW9uIHx8IG5ld0V2ZW50LmRlbHRhID4gcHJldkV2ZW50LmRlbHRhIHx8IG5ld0V2ZW50LnRpbWUgPiBwcmV2RXZlbnQudGltZSArIDE1MCkge1xuICAgICAgICAgIGFuaW1hdGVTbGlkZXIobmV3RXZlbnQpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhbmltYXRlU2xpZGVyKG5ld0V2ZW50KTtcbiAgICAgIH0gLy8gSWYgaXQncyB0aW1lIHRvIHJlbGVhc2UgdGhlIHNjcm9sbDpcbiAgICAgIC8vICAgUmV0dXJuIG5vdyBzbyB5b3UgZG9uJ3QgaGl0IHRoZSBwcmV2ZW50RGVmYXVsdC5cblxuXG4gICAgICBpZiAocmVsZWFzZVNjcm9sbChuZXdFdmVudCkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEZyZWVtb2RlIG9yIHNjcm9sbENvbnRhaW5lcjpcbiAgICAgIC8vIElmIHdlIHJlY2VudGx5IHNuYXBwZWQgYWZ0ZXIgYSBtb21lbnR1bSBzY3JvbGwsIHRoZW4gaWdub3JlIHdoZWVsIGV2ZW50c1xuICAgICAgLy8gdG8gZ2l2ZSB0aW1lIGZvciB0aGUgZGVjZWxlcmF0aW9uIHRvIGZpbmlzaC4gU3RvcCBpZ25vcmluZyBhZnRlciA1MDAgbXNlY3NcbiAgICAgIC8vIG9yIGlmIGl0J3MgYSBuZXcgc2Nyb2xsIChsYXJnZXIgZGVsdGEgb3IgaW52ZXJzZSBzaWduIGFzIGxhc3QgZXZlbnQgYmVmb3JlXG4gICAgICAvLyBhbiBlbmQtb2YtbW9tZW50dW0gc25hcCkuXG4gICAgICBjb25zdCBuZXdFdmVudCA9IHtcbiAgICAgICAgdGltZTogbm93KCksXG4gICAgICAgIGRlbHRhOiBNYXRoLmFicyhkZWx0YSksXG4gICAgICAgIGRpcmVjdGlvbjogTWF0aC5zaWduKGRlbHRhKVxuICAgICAgfTtcbiAgICAgIGNvbnN0IGlnbm9yZVdoZWVsRXZlbnRzID0gbGFzdEV2ZW50QmVmb3JlU25hcCAmJiBuZXdFdmVudC50aW1lIDwgbGFzdEV2ZW50QmVmb3JlU25hcC50aW1lICsgNTAwICYmIG5ld0V2ZW50LmRlbHRhIDw9IGxhc3RFdmVudEJlZm9yZVNuYXAuZGVsdGEgJiYgbmV3RXZlbnQuZGlyZWN0aW9uID09PSBsYXN0RXZlbnRCZWZvcmVTbmFwLmRpcmVjdGlvbjtcblxuICAgICAgaWYgKCFpZ25vcmVXaGVlbEV2ZW50cykge1xuICAgICAgICBsYXN0RXZlbnRCZWZvcmVTbmFwID0gdW5kZWZpbmVkO1xuXG4gICAgICAgIGlmIChzd2lwZXIucGFyYW1zLmxvb3ApIHtcbiAgICAgICAgICBzd2lwZXIubG9vcEZpeCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHBvc2l0aW9uID0gc3dpcGVyLmdldFRyYW5zbGF0ZSgpICsgZGVsdGEgKiBwYXJhbXMuc2Vuc2l0aXZpdHk7XG4gICAgICAgIGNvbnN0IHdhc0JlZ2lubmluZyA9IHN3aXBlci5pc0JlZ2lubmluZztcbiAgICAgICAgY29uc3Qgd2FzRW5kID0gc3dpcGVyLmlzRW5kO1xuICAgICAgICBpZiAocG9zaXRpb24gPj0gc3dpcGVyLm1pblRyYW5zbGF0ZSgpKSBwb3NpdGlvbiA9IHN3aXBlci5taW5UcmFuc2xhdGUoKTtcbiAgICAgICAgaWYgKHBvc2l0aW9uIDw9IHN3aXBlci5tYXhUcmFuc2xhdGUoKSkgcG9zaXRpb24gPSBzd2lwZXIubWF4VHJhbnNsYXRlKCk7XG4gICAgICAgIHN3aXBlci5zZXRUcmFuc2l0aW9uKDApO1xuICAgICAgICBzd2lwZXIuc2V0VHJhbnNsYXRlKHBvc2l0aW9uKTtcbiAgICAgICAgc3dpcGVyLnVwZGF0ZVByb2dyZXNzKCk7XG4gICAgICAgIHN3aXBlci51cGRhdGVBY3RpdmVJbmRleCgpO1xuICAgICAgICBzd2lwZXIudXBkYXRlU2xpZGVzQ2xhc3NlcygpO1xuXG4gICAgICAgIGlmICghd2FzQmVnaW5uaW5nICYmIHN3aXBlci5pc0JlZ2lubmluZyB8fCAhd2FzRW5kICYmIHN3aXBlci5pc0VuZCkge1xuICAgICAgICAgIHN3aXBlci51cGRhdGVTbGlkZXNDbGFzc2VzKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3dpcGVyLnBhcmFtcy5mcmVlTW9kZS5zdGlja3kpIHtcbiAgICAgICAgICAvLyBXaGVuIHdoZWVsIHNjcm9sbGluZyBzdGFydHMgd2l0aCBzdGlja3kgKGFrYSBzbmFwKSBlbmFibGVkLCB0aGVuIGRldGVjdFxuICAgICAgICAgIC8vIHRoZSBlbmQgb2YgYSBtb21lbnR1bSBzY3JvbGwgYnkgc3RvcmluZyByZWNlbnQgKE49MTU/KSB3aGVlbCBldmVudHMuXG4gICAgICAgICAgLy8gMS4gZG8gYWxsIE4gZXZlbnRzIGhhdmUgZGVjcmVhc2luZyBvciBzYW1lIChhYnNvbHV0ZSB2YWx1ZSkgZGVsdGE/XG4gICAgICAgICAgLy8gMi4gZGlkIGFsbCBOIGV2ZW50cyBhcnJpdmUgaW4gdGhlIGxhc3QgTSAoTT01MDA/KSBtc2Vjcz9cbiAgICAgICAgICAvLyAzLiBkb2VzIHRoZSBlYXJsaWVzdCBldmVudCBoYXZlIGFuIChhYnNvbHV0ZSB2YWx1ZSkgZGVsdGEgdGhhdCdzXG4gICAgICAgICAgLy8gICAgYXQgbGVhc3QgUCAoUD0xPykgbGFyZ2VyIHRoYW4gdGhlIG1vc3QgcmVjZW50IGV2ZW50J3MgZGVsdGE/XG4gICAgICAgICAgLy8gNC4gZG9lcyB0aGUgbGF0ZXN0IGV2ZW50IGhhdmUgYSBkZWx0YSB0aGF0J3Mgc21hbGxlciB0aGFuIFEgKFE9Nj8pIHBpeGVscz9cbiAgICAgICAgICAvLyBJZiAxLTQgYXJlIFwieWVzXCIgdGhlbiB3ZSdyZSBuZWFyIHRoZSBlbmQgb2YgYSBtb21lbnR1bSBzY3JvbGwgZGVjZWxlcmF0aW9uLlxuICAgICAgICAgIC8vIFNuYXAgaW1tZWRpYXRlbHkgYW5kIGlnbm9yZSByZW1haW5pbmcgd2hlZWwgZXZlbnRzIGluIHRoaXMgc2Nyb2xsLlxuICAgICAgICAgIC8vIFNlZSBjb21tZW50IGFib3ZlIGZvciBcInJlbWFpbmluZyB3aGVlbCBldmVudHMgaW4gdGhpcyBzY3JvbGxcIiBkZXRlcm1pbmF0aW9uLlxuICAgICAgICAgIC8vIElmIDEtNCBhcmVuJ3Qgc2F0aXNmaWVkLCB0aGVuIHdhaXQgdG8gc25hcCB1bnRpbCA1MDBtcyBhZnRlciB0aGUgbGFzdCBldmVudC5cbiAgICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XG4gICAgICAgICAgdGltZW91dCA9IHVuZGVmaW5lZDtcblxuICAgICAgICAgIGlmIChyZWNlbnRXaGVlbEV2ZW50cy5sZW5ndGggPj0gMTUpIHtcbiAgICAgICAgICAgIHJlY2VudFdoZWVsRXZlbnRzLnNoaWZ0KCk7IC8vIG9ubHkgc3RvcmUgdGhlIGxhc3QgTiBldmVudHNcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBwcmV2RXZlbnQgPSByZWNlbnRXaGVlbEV2ZW50cy5sZW5ndGggPyByZWNlbnRXaGVlbEV2ZW50c1tyZWNlbnRXaGVlbEV2ZW50cy5sZW5ndGggLSAxXSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICBjb25zdCBmaXJzdEV2ZW50ID0gcmVjZW50V2hlZWxFdmVudHNbMF07XG4gICAgICAgICAgcmVjZW50V2hlZWxFdmVudHMucHVzaChuZXdFdmVudCk7XG5cbiAgICAgICAgICBpZiAocHJldkV2ZW50ICYmIChuZXdFdmVudC5kZWx0YSA+IHByZXZFdmVudC5kZWx0YSB8fCBuZXdFdmVudC5kaXJlY3Rpb24gIT09IHByZXZFdmVudC5kaXJlY3Rpb24pKSB7XG4gICAgICAgICAgICAvLyBJbmNyZWFzaW5nIG9yIHJldmVyc2Utc2lnbiBkZWx0YSBtZWFucyB0aGUgdXNlciBzdGFydGVkIHNjcm9sbGluZyBhZ2Fpbi4gQ2xlYXIgdGhlIHdoZWVsIGV2ZW50IGxvZy5cbiAgICAgICAgICAgIHJlY2VudFdoZWVsRXZlbnRzLnNwbGljZSgwKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHJlY2VudFdoZWVsRXZlbnRzLmxlbmd0aCA+PSAxNSAmJiBuZXdFdmVudC50aW1lIC0gZmlyc3RFdmVudC50aW1lIDwgNTAwICYmIGZpcnN0RXZlbnQuZGVsdGEgLSBuZXdFdmVudC5kZWx0YSA+PSAxICYmIG5ld0V2ZW50LmRlbHRhIDw9IDYpIHtcbiAgICAgICAgICAgIC8vIFdlJ3JlIGF0IHRoZSBlbmQgb2YgdGhlIGRlY2VsZXJhdGlvbiBvZiBhIG1vbWVudHVtIHNjcm9sbCwgc28gdGhlcmUncyBubyBuZWVkXG4gICAgICAgICAgICAvLyB0byB3YWl0IGZvciBtb3JlIGV2ZW50cy4gU25hcCBBU0FQIG9uIHRoZSBuZXh0IHRpY2suXG4gICAgICAgICAgICAvLyBBbHNvLCBiZWNhdXNlIHRoZXJlJ3Mgc29tZSByZW1haW5pbmcgbW9tZW50dW0gd2UnbGwgYmlhcyB0aGUgc25hcCBpbiB0aGVcbiAgICAgICAgICAgIC8vIGRpcmVjdGlvbiBvZiB0aGUgb25nb2luZyBzY3JvbGwgYmVjYXVzZSBpdCdzIGJldHRlciBVWCBmb3IgdGhlIHNjcm9sbCB0byBzbmFwXG4gICAgICAgICAgICAvLyBpbiB0aGUgc2FtZSBkaXJlY3Rpb24gYXMgdGhlIHNjcm9sbCBpbnN0ZWFkIG9mIHJldmVyc2luZyB0byBzbmFwLiAgVGhlcmVmb3JlLFxuICAgICAgICAgICAgLy8gaWYgaXQncyBhbHJlYWR5IHNjcm9sbGVkIG1vcmUgdGhhbiAyMCUgaW4gdGhlIGN1cnJlbnQgZGlyZWN0aW9uLCBrZWVwIGdvaW5nLlxuICAgICAgICAgICAgY29uc3Qgc25hcFRvVGhyZXNob2xkID0gZGVsdGEgPiAwID8gMC44IDogMC4yO1xuICAgICAgICAgICAgbGFzdEV2ZW50QmVmb3JlU25hcCA9IG5ld0V2ZW50O1xuICAgICAgICAgICAgcmVjZW50V2hlZWxFdmVudHMuc3BsaWNlKDApO1xuICAgICAgICAgICAgdGltZW91dCA9IG5leHRUaWNrKCgpID0+IHtcbiAgICAgICAgICAgICAgc3dpcGVyLnNsaWRlVG9DbG9zZXN0KHN3aXBlci5wYXJhbXMuc3BlZWQsIHRydWUsIHVuZGVmaW5lZCwgc25hcFRvVGhyZXNob2xkKTtcbiAgICAgICAgICAgIH0sIDApOyAvLyBubyBkZWxheTsgbW92ZSBvbiBuZXh0IHRpY2tcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoIXRpbWVvdXQpIHtcbiAgICAgICAgICAgIC8vIGlmIHdlIGdldCBoZXJlLCB0aGVuIHdlIGhhdmVuJ3QgZGV0ZWN0ZWQgdGhlIGVuZCBvZiBhIG1vbWVudHVtIHNjcm9sbCwgc29cbiAgICAgICAgICAgIC8vIHdlJ2xsIGNvbnNpZGVyIGEgc2Nyb2xsIFwiY29tcGxldGVcIiB3aGVuIHRoZXJlIGhhdmVuJ3QgYmVlbiBhbnkgd2hlZWwgZXZlbnRzXG4gICAgICAgICAgICAvLyBmb3IgNTAwbXMuXG4gICAgICAgICAgICB0aW1lb3V0ID0gbmV4dFRpY2soKCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBzbmFwVG9UaHJlc2hvbGQgPSAwLjU7XG4gICAgICAgICAgICAgIGxhc3RFdmVudEJlZm9yZVNuYXAgPSBuZXdFdmVudDtcbiAgICAgICAgICAgICAgcmVjZW50V2hlZWxFdmVudHMuc3BsaWNlKDApO1xuICAgICAgICAgICAgICBzd2lwZXIuc2xpZGVUb0Nsb3Nlc3Qoc3dpcGVyLnBhcmFtcy5zcGVlZCwgdHJ1ZSwgdW5kZWZpbmVkLCBzbmFwVG9UaHJlc2hvbGQpO1xuICAgICAgICAgICAgfSwgNTAwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gLy8gRW1pdCBldmVudFxuXG5cbiAgICAgICAgaWYgKCFpZ25vcmVXaGVlbEV2ZW50cykgZW1pdCgnc2Nyb2xsJywgZSk7IC8vIFN0b3AgYXV0b3BsYXlcblxuICAgICAgICBpZiAoc3dpcGVyLnBhcmFtcy5hdXRvcGxheSAmJiBzd2lwZXIucGFyYW1zLmF1dG9wbGF5RGlzYWJsZU9uSW50ZXJhY3Rpb24pIHN3aXBlci5hdXRvcGxheS5zdG9wKCk7IC8vIFJldHVybiBwYWdlIHNjcm9sbCBvbiBlZGdlIHBvc2l0aW9uc1xuXG4gICAgICAgIGlmIChwb3NpdGlvbiA9PT0gc3dpcGVyLm1pblRyYW5zbGF0ZSgpIHx8IHBvc2l0aW9uID09PSBzd2lwZXIubWF4VHJhbnNsYXRlKCkpIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChlLnByZXZlbnREZWZhdWx0KSBlLnByZXZlbnREZWZhdWx0KCk7ZWxzZSBlLnJldHVyblZhbHVlID0gZmFsc2U7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZnVuY3Rpb24gZXZlbnRzKG1ldGhvZCkge1xuICAgIGxldCB0YXJnZXQgPSBzd2lwZXIuJGVsO1xuXG4gICAgaWYgKHN3aXBlci5wYXJhbXMubW91c2V3aGVlbC5ldmVudHNUYXJnZXQgIT09ICdjb250YWluZXInKSB7XG4gICAgICB0YXJnZXQgPSAkKHN3aXBlci5wYXJhbXMubW91c2V3aGVlbC5ldmVudHNUYXJnZXQpO1xuICAgIH1cblxuICAgIHRhcmdldFttZXRob2RdKCdtb3VzZWVudGVyJywgaGFuZGxlTW91c2VFbnRlcik7XG4gICAgdGFyZ2V0W21ldGhvZF0oJ21vdXNlbGVhdmUnLCBoYW5kbGVNb3VzZUxlYXZlKTtcbiAgICB0YXJnZXRbbWV0aG9kXSgnd2hlZWwnLCBoYW5kbGUpO1xuICB9XG5cbiAgZnVuY3Rpb24gZW5hYmxlKCkge1xuICAgIGlmIChzd2lwZXIucGFyYW1zLmNzc01vZGUpIHtcbiAgICAgIHN3aXBlci53cmFwcGVyRWwucmVtb3ZlRXZlbnRMaXN0ZW5lcignd2hlZWwnLCBoYW5kbGUpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHN3aXBlci5tb3VzZXdoZWVsLmVuYWJsZWQpIHJldHVybiBmYWxzZTtcbiAgICBldmVudHMoJ29uJyk7XG4gICAgc3dpcGVyLm1vdXNld2hlZWwuZW5hYmxlZCA9IHRydWU7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBmdW5jdGlvbiBkaXNhYmxlKCkge1xuICAgIGlmIChzd2lwZXIucGFyYW1zLmNzc01vZGUpIHtcbiAgICAgIHN3aXBlci53cmFwcGVyRWwuYWRkRXZlbnRMaXN0ZW5lcihldmVudCwgaGFuZGxlKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmICghc3dpcGVyLm1vdXNld2hlZWwuZW5hYmxlZCkgcmV0dXJuIGZhbHNlO1xuICAgIGV2ZW50cygnb2ZmJyk7XG4gICAgc3dpcGVyLm1vdXNld2hlZWwuZW5hYmxlZCA9IGZhbHNlO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgb24oJ2luaXQnLCAoKSA9PiB7XG4gICAgaWYgKCFzd2lwZXIucGFyYW1zLm1vdXNld2hlZWwuZW5hYmxlZCAmJiBzd2lwZXIucGFyYW1zLmNzc01vZGUpIHtcbiAgICAgIGRpc2FibGUoKTtcbiAgICB9XG5cbiAgICBpZiAoc3dpcGVyLnBhcmFtcy5tb3VzZXdoZWVsLmVuYWJsZWQpIGVuYWJsZSgpO1xuICB9KTtcbiAgb24oJ2Rlc3Ryb3knLCAoKSA9PiB7XG4gICAgaWYgKHN3aXBlci5wYXJhbXMuY3NzTW9kZSkge1xuICAgICAgZW5hYmxlKCk7XG4gICAgfVxuXG4gICAgaWYgKHN3aXBlci5tb3VzZXdoZWVsLmVuYWJsZWQpIGRpc2FibGUoKTtcbiAgfSk7XG4gIE9iamVjdC5hc3NpZ24oc3dpcGVyLm1vdXNld2hlZWwsIHtcbiAgICBlbmFibGUsXG4gICAgZGlzYWJsZVxuICB9KTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/swiper/modules/mousewheel/mousewheel.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/modules/navigation/navigation.js": +/*!**************************************************************!*\ + !*** ./node_modules/swiper/modules/navigation/navigation.js ***! + \**************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ Navigation; }\n/* harmony export */ });\n/* harmony import */ var _shared_create_element_if_not_defined_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/create-element-if-not-defined.js */ \"./node_modules/swiper/shared/create-element-if-not-defined.js\");\n/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ \"./node_modules/swiper/shared/dom.js\");\n\n\nfunction Navigation({\n swiper,\n extendParams,\n on,\n emit\n}) {\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock'\n }\n });\n swiper.navigation = {\n nextEl: null,\n $nextEl: null,\n prevEl: null,\n $prevEl: null\n };\n\n function getEl(el) {\n let $el;\n\n if (el) {\n $el = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(el);\n\n if (swiper.params.uniqueNavElements && typeof el === 'string' && $el.length > 1 && swiper.$el.find(el).length === 1) {\n $el = swiper.$el.find(el);\n }\n }\n\n return $el;\n }\n\n function toggleEl($el, disabled) {\n const params = swiper.params.navigation;\n\n if ($el && $el.length > 0) {\n $el[disabled ? 'addClass' : 'removeClass'](params.disabledClass);\n if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n }\n\n function update() {\n // Update Navigation Buttons\n if (swiper.params.loop) return;\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n toggleEl($prevEl, swiper.isBeginning);\n toggleEl($nextEl, swiper.isEnd);\n }\n\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop) return;\n swiper.slidePrev();\n }\n\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop) return;\n swiper.slideNext();\n }\n\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = (0,_shared_create_element_if_not_defined_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n const $nextEl = getEl(params.nextEl);\n const $prevEl = getEl(params.prevEl);\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', onNextClick);\n }\n\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', onPrevClick);\n }\n\n Object.assign(swiper.navigation, {\n $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl,\n prevEl: $prevEl && $prevEl[0]\n });\n\n if (!swiper.enabled) {\n if ($nextEl) $nextEl.addClass(params.lockClass);\n if ($prevEl) $prevEl.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n }\n\n on('init', () => {\n init();\n update();\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($nextEl) {\n $nextEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n\n if ($prevEl) {\n $prevEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n });\n on('click', (_s, e) => {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n const targetEl = e.target;\n\n if (swiper.params.navigation.hideOnClick && !(0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(targetEl).is($prevEl) && !(0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(targetEl).is($nextEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let isHidden;\n\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n });\n Object.assign(swiper.navigation, {\n update,\n init,\n destroy\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFzRjtBQUNsRDtBQUNyQjtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLFlBQVksMERBQUM7O0FBRWI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSwrQkFBK0Isb0ZBQXlCO0FBQ3hEO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07O0FBRU47QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTs7QUFFTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOOztBQUVBLGlEQUFpRCwwREFBQywyQkFBMkIsMERBQUM7QUFDOUU7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLmpzPzYzMjAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUVsZW1lbnRJZk5vdERlZmluZWQgZnJvbSAnLi4vLi4vc2hhcmVkL2NyZWF0ZS1lbGVtZW50LWlmLW5vdC1kZWZpbmVkLmpzJztcbmltcG9ydCAkIGZyb20gJy4uLy4uL3NoYXJlZC9kb20uanMnO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTmF2aWdhdGlvbih7XG4gIHN3aXBlcixcbiAgZXh0ZW5kUGFyYW1zLFxuICBvbixcbiAgZW1pdFxufSkge1xuICBleHRlbmRQYXJhbXMoe1xuICAgIG5hdmlnYXRpb246IHtcbiAgICAgIG5leHRFbDogbnVsbCxcbiAgICAgIHByZXZFbDogbnVsbCxcbiAgICAgIGhpZGVPbkNsaWNrOiBmYWxzZSxcbiAgICAgIGRpc2FibGVkQ2xhc3M6ICdzd2lwZXItYnV0dG9uLWRpc2FibGVkJyxcbiAgICAgIGhpZGRlbkNsYXNzOiAnc3dpcGVyLWJ1dHRvbi1oaWRkZW4nLFxuICAgICAgbG9ja0NsYXNzOiAnc3dpcGVyLWJ1dHRvbi1sb2NrJ1xuICAgIH1cbiAgfSk7XG4gIHN3aXBlci5uYXZpZ2F0aW9uID0ge1xuICAgIG5leHRFbDogbnVsbCxcbiAgICAkbmV4dEVsOiBudWxsLFxuICAgIHByZXZFbDogbnVsbCxcbiAgICAkcHJldkVsOiBudWxsXG4gIH07XG5cbiAgZnVuY3Rpb24gZ2V0RWwoZWwpIHtcbiAgICBsZXQgJGVsO1xuXG4gICAgaWYgKGVsKSB7XG4gICAgICAkZWwgPSAkKGVsKTtcblxuICAgICAgaWYgKHN3aXBlci5wYXJhbXMudW5pcXVlTmF2RWxlbWVudHMgJiYgdHlwZW9mIGVsID09PSAnc3RyaW5nJyAmJiAkZWwubGVuZ3RoID4gMSAmJiBzd2lwZXIuJGVsLmZpbmQoZWwpLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAkZWwgPSBzd2lwZXIuJGVsLmZpbmQoZWwpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiAkZWw7XG4gIH1cblxuICBmdW5jdGlvbiB0b2dnbGVFbCgkZWwsIGRpc2FibGVkKSB7XG4gICAgY29uc3QgcGFyYW1zID0gc3dpcGVyLnBhcmFtcy5uYXZpZ2F0aW9uO1xuXG4gICAgaWYgKCRlbCAmJiAkZWwubGVuZ3RoID4gMCkge1xuICAgICAgJGVsW2Rpc2FibGVkID8gJ2FkZENsYXNzJyA6ICdyZW1vdmVDbGFzcyddKHBhcmFtcy5kaXNhYmxlZENsYXNzKTtcbiAgICAgIGlmICgkZWxbMF0gJiYgJGVsWzBdLnRhZ05hbWUgPT09ICdCVVRUT04nKSAkZWxbMF0uZGlzYWJsZWQgPSBkaXNhYmxlZDtcblxuICAgICAgaWYgKHN3aXBlci5wYXJhbXMud2F0Y2hPdmVyZmxvdyAmJiBzd2lwZXIuZW5hYmxlZCkge1xuICAgICAgICAkZWxbc3dpcGVyLmlzTG9ja2VkID8gJ2FkZENsYXNzJyA6ICdyZW1vdmVDbGFzcyddKHBhcmFtcy5sb2NrQ2xhc3MpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHVwZGF0ZSgpIHtcbiAgICAvLyBVcGRhdGUgTmF2aWdhdGlvbiBCdXR0b25zXG4gICAgaWYgKHN3aXBlci5wYXJhbXMubG9vcCkgcmV0dXJuO1xuICAgIGNvbnN0IHtcbiAgICAgICRuZXh0RWwsXG4gICAgICAkcHJldkVsXG4gICAgfSA9IHN3aXBlci5uYXZpZ2F0aW9uO1xuICAgIHRvZ2dsZUVsKCRwcmV2RWwsIHN3aXBlci5pc0JlZ2lubmluZyk7XG4gICAgdG9nZ2xlRWwoJG5leHRFbCwgc3dpcGVyLmlzRW5kKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIG9uUHJldkNsaWNrKGUpIHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgaWYgKHN3aXBlci5pc0JlZ2lubmluZyAmJiAhc3dpcGVyLnBhcmFtcy5sb29wKSByZXR1cm47XG4gICAgc3dpcGVyLnNsaWRlUHJldigpO1xuICB9XG5cbiAgZnVuY3Rpb24gb25OZXh0Q2xpY2soZSkge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICBpZiAoc3dpcGVyLmlzRW5kICYmICFzd2lwZXIucGFyYW1zLmxvb3ApIHJldHVybjtcbiAgICBzd2lwZXIuc2xpZGVOZXh0KCk7XG4gIH1cblxuICBmdW5jdGlvbiBpbml0KCkge1xuICAgIGNvbnN0IHBhcmFtcyA9IHN3aXBlci5wYXJhbXMubmF2aWdhdGlvbjtcbiAgICBzd2lwZXIucGFyYW1zLm5hdmlnYXRpb24gPSBjcmVhdGVFbGVtZW50SWZOb3REZWZpbmVkKHN3aXBlciwgc3dpcGVyLm9yaWdpbmFsUGFyYW1zLm5hdmlnYXRpb24sIHN3aXBlci5wYXJhbXMubmF2aWdhdGlvbiwge1xuICAgICAgbmV4dEVsOiAnc3dpcGVyLWJ1dHRvbi1uZXh0JyxcbiAgICAgIHByZXZFbDogJ3N3aXBlci1idXR0b24tcHJldidcbiAgICB9KTtcbiAgICBpZiAoIShwYXJhbXMubmV4dEVsIHx8IHBhcmFtcy5wcmV2RWwpKSByZXR1cm47XG4gICAgY29uc3QgJG5leHRFbCA9IGdldEVsKHBhcmFtcy5uZXh0RWwpO1xuICAgIGNvbnN0ICRwcmV2RWwgPSBnZXRFbChwYXJhbXMucHJldkVsKTtcblxuICAgIGlmICgkbmV4dEVsICYmICRuZXh0RWwubGVuZ3RoID4gMCkge1xuICAgICAgJG5leHRFbC5vbignY2xpY2snLCBvbk5leHRDbGljayk7XG4gICAgfVxuXG4gICAgaWYgKCRwcmV2RWwgJiYgJHByZXZFbC5sZW5ndGggPiAwKSB7XG4gICAgICAkcHJldkVsLm9uKCdjbGljaycsIG9uUHJldkNsaWNrKTtcbiAgICB9XG5cbiAgICBPYmplY3QuYXNzaWduKHN3aXBlci5uYXZpZ2F0aW9uLCB7XG4gICAgICAkbmV4dEVsLFxuICAgICAgbmV4dEVsOiAkbmV4dEVsICYmICRuZXh0RWxbMF0sXG4gICAgICAkcHJldkVsLFxuICAgICAgcHJldkVsOiAkcHJldkVsICYmICRwcmV2RWxbMF1cbiAgICB9KTtcblxuICAgIGlmICghc3dpcGVyLmVuYWJsZWQpIHtcbiAgICAgIGlmICgkbmV4dEVsKSAkbmV4dEVsLmFkZENsYXNzKHBhcmFtcy5sb2NrQ2xhc3MpO1xuICAgICAgaWYgKCRwcmV2RWwpICRwcmV2RWwuYWRkQ2xhc3MocGFyYW1zLmxvY2tDbGFzcyk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gZGVzdHJveSgpIHtcbiAgICBjb25zdCB7XG4gICAgICAkbmV4dEVsLFxuICAgICAgJHByZXZFbFxuICAgIH0gPSBzd2lwZXIubmF2aWdhdGlvbjtcblxuICAgIGlmICgkbmV4dEVsICYmICRuZXh0RWwubGVuZ3RoKSB7XG4gICAgICAkbmV4dEVsLm9mZignY2xpY2snLCBvbk5leHRDbGljayk7XG4gICAgICAkbmV4dEVsLnJlbW92ZUNsYXNzKHN3aXBlci5wYXJhbXMubmF2aWdhdGlvbi5kaXNhYmxlZENsYXNzKTtcbiAgICB9XG5cbiAgICBpZiAoJHByZXZFbCAmJiAkcHJldkVsLmxlbmd0aCkge1xuICAgICAgJHByZXZFbC5vZmYoJ2NsaWNrJywgb25QcmV2Q2xpY2spO1xuICAgICAgJHByZXZFbC5yZW1vdmVDbGFzcyhzd2lwZXIucGFyYW1zLm5hdmlnYXRpb24uZGlzYWJsZWRDbGFzcyk7XG4gICAgfVxuICB9XG5cbiAgb24oJ2luaXQnLCAoKSA9PiB7XG4gICAgaW5pdCgpO1xuICAgIHVwZGF0ZSgpO1xuICB9KTtcbiAgb24oJ3RvRWRnZSBmcm9tRWRnZSBsb2NrIHVubG9jaycsICgpID0+IHtcbiAgICB1cGRhdGUoKTtcbiAgfSk7XG4gIG9uKCdkZXN0cm95JywgKCkgPT4ge1xuICAgIGRlc3Ryb3koKTtcbiAgfSk7XG4gIG9uKCdlbmFibGUgZGlzYWJsZScsICgpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICAkbmV4dEVsLFxuICAgICAgJHByZXZFbFxuICAgIH0gPSBzd2lwZXIubmF2aWdhdGlvbjtcblxuICAgIGlmICgkbmV4dEVsKSB7XG4gICAgICAkbmV4dEVsW3N3aXBlci5lbmFibGVkID8gJ3JlbW92ZUNsYXNzJyA6ICdhZGRDbGFzcyddKHN3aXBlci5wYXJhbXMubmF2aWdhdGlvbi5sb2NrQ2xhc3MpO1xuICAgIH1cblxuICAgIGlmICgkcHJldkVsKSB7XG4gICAgICAkcHJldkVsW3N3aXBlci5lbmFibGVkID8gJ3JlbW92ZUNsYXNzJyA6ICdhZGRDbGFzcyddKHN3aXBlci5wYXJhbXMubmF2aWdhdGlvbi5sb2NrQ2xhc3MpO1xuICAgIH1cbiAgfSk7XG4gIG9uKCdjbGljaycsIChfcywgZSkgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgICRuZXh0RWwsXG4gICAgICAkcHJldkVsXG4gICAgfSA9IHN3aXBlci5uYXZpZ2F0aW9uO1xuICAgIGNvbnN0IHRhcmdldEVsID0gZS50YXJnZXQ7XG5cbiAgICBpZiAoc3dpcGVyLnBhcmFtcy5uYXZpZ2F0aW9uLmhpZGVPbkNsaWNrICYmICEkKHRhcmdldEVsKS5pcygkcHJldkVsKSAmJiAhJCh0YXJnZXRFbCkuaXMoJG5leHRFbCkpIHtcbiAgICAgIGlmIChzd2lwZXIucGFnaW5hdGlvbiAmJiBzd2lwZXIucGFyYW1zLnBhZ2luYXRpb24gJiYgc3dpcGVyLnBhcmFtcy5wYWdpbmF0aW9uLmNsaWNrYWJsZSAmJiAoc3dpcGVyLnBhZ2luYXRpb24uZWwgPT09IHRhcmdldEVsIHx8IHN3aXBlci5wYWdpbmF0aW9uLmVsLmNvbnRhaW5zKHRhcmdldEVsKSkpIHJldHVybjtcbiAgICAgIGxldCBpc0hpZGRlbjtcblxuICAgICAgaWYgKCRuZXh0RWwpIHtcbiAgICAgICAgaXNIaWRkZW4gPSAkbmV4dEVsLmhhc0NsYXNzKHN3aXBlci5wYXJhbXMubmF2aWdhdGlvbi5oaWRkZW5DbGFzcyk7XG4gICAgICB9IGVsc2UgaWYgKCRwcmV2RWwpIHtcbiAgICAgICAgaXNIaWRkZW4gPSAkcHJldkVsLmhhc0NsYXNzKHN3aXBlci5wYXJhbXMubmF2aWdhdGlvbi5oaWRkZW5DbGFzcyk7XG4gICAgICB9XG5cbiAgICAgIGlmIChpc0hpZGRlbiA9PT0gdHJ1ZSkge1xuICAgICAgICBlbWl0KCduYXZpZ2F0aW9uU2hvdycpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZW1pdCgnbmF2aWdhdGlvbkhpZGUnKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCRuZXh0RWwpIHtcbiAgICAgICAgJG5leHRFbC50b2dnbGVDbGFzcyhzd2lwZXIucGFyYW1zLm5hdmlnYXRpb24uaGlkZGVuQ2xhc3MpO1xuICAgICAgfVxuXG4gICAgICBpZiAoJHByZXZFbCkge1xuICAgICAgICAkcHJldkVsLnRvZ2dsZUNsYXNzKHN3aXBlci5wYXJhbXMubmF2aWdhdGlvbi5oaWRkZW5DbGFzcyk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbiAgT2JqZWN0LmFzc2lnbihzd2lwZXIubmF2aWdhdGlvbiwge1xuICAgIHVwZGF0ZSxcbiAgICBpbml0LFxuICAgIGRlc3Ryb3lcbiAgfSk7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/swiper/modules/navigation/navigation.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/modules/pagination/pagination.js": +/*!**************************************************************!*\ + !*** ./node_modules/swiper/modules/pagination/pagination.js ***! + \**************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ Pagination; }\n/* harmony export */ });\n/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/dom.js */ \"./node_modules/swiper/shared/dom.js\");\n/* harmony import */ var _shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/classes-to-selector.js */ \"./node_modules/swiper/shared/classes-to-selector.js\");\n/* harmony import */ var _shared_create_element_if_not_defined_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/create-element-if-not-defined.js */ \"./node_modules/swiper/shared/create-element-if-not-defined.js\");\n\n\n\nfunction Pagination({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`\n }\n });\n swiper.pagination = {\n el: null,\n $el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0;\n }\n\n function setSideBullets($bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n $bulletEl[position]().addClass(`${bulletActiveClass}-${position}`)[position]().addClass(`${bulletActiveClass}-${position}-${position}`);\n }\n\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el; // Current/Total\n\n let current;\n const total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n current -= slidesLength - swiper.loopedSlides * 2;\n }\n\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n } // Types\n\n\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n\n if (params.dynamicBullets) {\n bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', `${bulletSize * (params.dynamicMainBullets + 4)}px`);\n\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n dynamicBulletIndex += current - swiper.previousIndex;\n\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n\n firstIndex = current - dynamicBulletIndex;\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n\n bullets.removeClass(['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`).join(' '));\n\n if ($el.length > 1) {\n bullets.each(bullet => {\n const $bullet = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(bullet);\n const bulletIndex = $bullet.index();\n\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(`${params.bulletActiveClass}-main`);\n }\n\n if (bulletIndex === firstIndex) {\n setSideBullets($bullet, 'prev');\n }\n\n if (bulletIndex === lastIndex) {\n setSideBullets($bullet, 'next');\n }\n }\n });\n } else {\n const $bullet = bullets.eq(current);\n const bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n\n if (params.dynamicBullets) {\n const $firstDisplayedBullet = bullets.eq(firstIndex);\n const $lastDisplayedBullet = bullets.eq(lastIndex);\n\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(`${params.bulletActiveClass}-main`);\n }\n\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length - params.dynamicMainBullets) {\n for (let i = params.dynamicMainBullets; i >= 0; i -= 1) {\n bullets.eq(bullets.length - i).addClass(`${params.bulletActiveClass}-main`);\n }\n\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(`${params.bulletActiveClass}-prev`);\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n }\n }\n\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`);\n }\n }\n\n if (params.type === 'fraction') {\n $el.find((0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(params.currentClass)).text(params.formatFractionCurrent(current + 1));\n $el.find((0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(params.totalClass)).text(params.formatFractionTotal(total));\n }\n\n if (params.type === 'progressbar') {\n let progressbarDirection;\n\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n\n $el.find((0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(params.progressbarFillClass)).transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`).transition(swiper.params.speed);\n }\n\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n emit('paginationRender', $el[0]);\n } else {\n emit('paginationUpdate', $el[0]);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el;\n let paginationHTML = '';\n\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.loop && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += `<${params.bulletElement} class=\"${params.bulletClass}\"></${params.bulletElement}>`;\n }\n }\n\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find((0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(params.bulletClass));\n }\n\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = `<span class=\"${params.currentClass}\"></span>` + ' / ' + `<span class=\"${params.totalClass}\"></span>`;\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = `<span class=\"${params.progressbarFillClass}\"></span>`;\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type !== 'custom') {\n emit('paginationRender', swiper.pagination.$el[0]);\n }\n }\n\n function init() {\n swiper.params.pagination = (0,_shared_create_element_if_not_defined_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let $el = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(params.el);\n if ($el.length === 0) return;\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\n $el = swiper.$el.find(params.el); // check if it belongs to another nested Swiper\n\n if ($el.length > 1) {\n $el = $el.filter(el => {\n if ((0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(el).parents('.swiper')[0] !== swiper.el) return false;\n return true;\n });\n }\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n $el.addClass(params.modifierClass + swiper.params.direction);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', (0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(params.bulletClass), function onClick(e) {\n e.preventDefault();\n let index = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n Object.assign(swiper.pagination, {\n $el,\n el: $el[0]\n });\n\n if (!swiper.enabled) {\n $el.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n $el.removeClass(params.modifierClass + swiper.params.direction);\n if (swiper.pagination.bullets && swiper.pagination.bullets.removeClass) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n if (params.clickable) {\n $el.off('click', (0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(params.bulletClass));\n }\n }\n\n on('init', () => {\n init();\n render();\n update();\n });\n on('activeIndexChange', () => {\n if (swiper.params.loop) {\n update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n if (!swiper.params.loop) {\n update();\n }\n });\n on('slidesLengthChange', () => {\n if (swiper.params.loop) {\n render();\n update();\n }\n });\n on('snapGridLengthChange', () => {\n if (!swiper.params.loop) {\n render();\n update();\n }\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n const {\n $el\n } = swiper.pagination;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n const {\n $el\n } = swiper.pagination;\n\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && $el.length > 0 && !(0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(targetEl).hasClass(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = $el.hasClass(swiper.params.pagination.hiddenClass);\n\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n\n $el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n });\n Object.assign(swiper.pagination, {\n render,\n update,\n init,\n destroy\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBb0M7QUFDZ0M7QUFDa0I7QUFDdkU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsSUFBSTtBQUMxQiw0QkFBNEIsSUFBSTtBQUNoQyx3QkFBd0IsSUFBSTtBQUM1Qix1QkFBdUIsSUFBSTtBQUMzQixxQkFBcUIsSUFBSTtBQUN6QixzQkFBc0IsSUFBSTtBQUMxQiwrQkFBK0IsSUFBSTtBQUNuQyxtQ0FBbUMsSUFBSTtBQUN2Qyx5QkFBeUIsSUFBSTtBQUM3QixvQkFBb0IsSUFBSTtBQUN4QiwwQkFBMEIsSUFBSTtBQUM5Qix3QkFBd0IsSUFBSTtBQUM1QjtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOLHNDQUFzQyxrQkFBa0IsR0FBRyxTQUFTLDJCQUEyQixrQkFBa0IsR0FBRyxTQUFTLEdBQUcsU0FBUztBQUN6STs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1Q0FBdUM7O0FBRXZDO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBLE1BQU07QUFDTjtBQUNBLE1BQU07OztBQUdOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLCtEQUErRCw2Q0FBNkM7O0FBRTVHO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsdUdBQXVHLHlCQUF5QixF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UjtBQUNBOztBQUVBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmpzPzc4ODYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnLi4vLi4vc2hhcmVkL2RvbS5qcyc7XG5pbXBvcnQgY2xhc3Nlc1RvU2VsZWN0b3IgZnJvbSAnLi4vLi4vc2hhcmVkL2NsYXNzZXMtdG8tc2VsZWN0b3IuanMnO1xuaW1wb3J0IGNyZWF0ZUVsZW1lbnRJZk5vdERlZmluZWQgZnJvbSAnLi4vLi4vc2hhcmVkL2NyZWF0ZS1lbGVtZW50LWlmLW5vdC1kZWZpbmVkLmpzJztcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFBhZ2luYXRpb24oe1xuICBzd2lwZXIsXG4gIGV4dGVuZFBhcmFtcyxcbiAgb24sXG4gIGVtaXRcbn0pIHtcbiAgY29uc3QgcGZ4ID0gJ3N3aXBlci1wYWdpbmF0aW9uJztcbiAgZXh0ZW5kUGFyYW1zKHtcbiAgICBwYWdpbmF0aW9uOiB7XG4gICAgICBlbDogbnVsbCxcbiAgICAgIGJ1bGxldEVsZW1lbnQ6ICdzcGFuJyxcbiAgICAgIGNsaWNrYWJsZTogZmFsc2UsXG4gICAgICBoaWRlT25DbGljazogZmFsc2UsXG4gICAgICByZW5kZXJCdWxsZXQ6IG51bGwsXG4gICAgICByZW5kZXJQcm9ncmVzc2JhcjogbnVsbCxcbiAgICAgIHJlbmRlckZyYWN0aW9uOiBudWxsLFxuICAgICAgcmVuZGVyQ3VzdG9tOiBudWxsLFxuICAgICAgcHJvZ3Jlc3NiYXJPcHBvc2l0ZTogZmFsc2UsXG4gICAgICB0eXBlOiAnYnVsbGV0cycsXG4gICAgICAvLyAnYnVsbGV0cycgb3IgJ3Byb2dyZXNzYmFyJyBvciAnZnJhY3Rpb24nIG9yICdjdXN0b20nXG4gICAgICBkeW5hbWljQnVsbGV0czogZmFsc2UsXG4gICAgICBkeW5hbWljTWFpbkJ1bGxldHM6IDEsXG4gICAgICBmb3JtYXRGcmFjdGlvbkN1cnJlbnQ6IG51bWJlciA9PiBudW1iZXIsXG4gICAgICBmb3JtYXRGcmFjdGlvblRvdGFsOiBudW1iZXIgPT4gbnVtYmVyLFxuICAgICAgYnVsbGV0Q2xhc3M6IGAke3BmeH0tYnVsbGV0YCxcbiAgICAgIGJ1bGxldEFjdGl2ZUNsYXNzOiBgJHtwZnh9LWJ1bGxldC1hY3RpdmVgLFxuICAgICAgbW9kaWZpZXJDbGFzczogYCR7cGZ4fS1gLFxuICAgICAgY3VycmVudENsYXNzOiBgJHtwZnh9LWN1cnJlbnRgLFxuICAgICAgdG90YWxDbGFzczogYCR7cGZ4fS10b3RhbGAsXG4gICAgICBoaWRkZW5DbGFzczogYCR7cGZ4fS1oaWRkZW5gLFxuICAgICAgcHJvZ3Jlc3NiYXJGaWxsQ2xhc3M6IGAke3BmeH0tcHJvZ3Jlc3NiYXItZmlsbGAsXG4gICAgICBwcm9ncmVzc2Jhck9wcG9zaXRlQ2xhc3M6IGAke3BmeH0tcHJvZ3Jlc3NiYXItb3Bwb3NpdGVgLFxuICAgICAgY2xpY2thYmxlQ2xhc3M6IGAke3BmeH0tY2xpY2thYmxlYCxcbiAgICAgIGxvY2tDbGFzczogYCR7cGZ4fS1sb2NrYCxcbiAgICAgIGhvcml6b250YWxDbGFzczogYCR7cGZ4fS1ob3Jpem9udGFsYCxcbiAgICAgIHZlcnRpY2FsQ2xhc3M6IGAke3BmeH0tdmVydGljYWxgXG4gICAgfVxuICB9KTtcbiAgc3dpcGVyLnBhZ2luYXRpb24gPSB7XG4gICAgZWw6IG51bGwsXG4gICAgJGVsOiBudWxsLFxuICAgIGJ1bGxldHM6IFtdXG4gIH07XG4gIGxldCBidWxsZXRTaXplO1xuICBsZXQgZHluYW1pY0J1bGxldEluZGV4ID0gMDtcblxuICBmdW5jdGlvbiBpc1BhZ2luYXRpb25EaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gIXN3aXBlci5wYXJhbXMucGFnaW5hdGlvbi5lbCB8fCAhc3dpcGVyLnBhZ2luYXRpb24uZWwgfHwgIXN3aXBlci5wYWdpbmF0aW9uLiRlbCB8fCBzd2lwZXIucGFnaW5hdGlvbi4kZWwubGVuZ3RoID09PSAwO1xuICB9XG5cbiAgZnVuY3Rpb24gc2V0U2lkZUJ1bGxldHMoJGJ1bGxldEVsLCBwb3NpdGlvbikge1xuICAgIGNvbnN0IHtcbiAgICAgIGJ1bGxldEFjdGl2ZUNsYXNzXG4gICAgfSA9IHN3aXBlci5wYXJhbXMucGFnaW5hdGlvbjtcbiAgICAkYnVsbGV0RWxbcG9zaXRpb25dKCkuYWRkQ2xhc3MoYCR7YnVsbGV0QWN0aXZlQ2xhc3N9LSR7cG9zaXRpb259YClbcG9zaXRpb25dKCkuYWRkQ2xhc3MoYCR7YnVsbGV0QWN0aXZlQ2xhc3N9LSR7cG9zaXRpb259LSR7cG9zaXRpb259YCk7XG4gIH1cblxuICBmdW5jdGlvbiB1cGRhdGUoKSB7XG4gICAgLy8gUmVuZGVyIHx8IFVwZGF0ZSBQYWdpbmF0aW9uIGJ1bGxldHMvaXRlbXNcbiAgICBjb25zdCBydGwgPSBzd2lwZXIucnRsO1xuICAgIGNvbnN0IHBhcmFtcyA9IHN3aXBlci5wYXJhbXMucGFnaW5hdGlvbjtcbiAgICBpZiAoaXNQYWdpbmF0aW9uRGlzYWJsZWQoKSkgcmV0dXJuO1xuICAgIGNvbnN0IHNsaWRlc0xlbmd0aCA9IHN3aXBlci52aXJ0dWFsICYmIHN3aXBlci5wYXJhbXMudmlydHVhbC5lbmFibGVkID8gc3dpcGVyLnZpcnR1YWwuc2xpZGVzLmxlbmd0aCA6IHN3aXBlci5zbGlkZXMubGVuZ3RoO1xuICAgIGNvbnN0ICRlbCA9IHN3aXBlci5wYWdpbmF0aW9uLiRlbDsgLy8gQ3VycmVudC9Ub3RhbFxuXG4gICAgbGV0IGN1cnJlbnQ7XG4gICAgY29uc3QgdG90YWwgPSBzd2lwZXIucGFyYW1zLmxvb3AgPyBNYXRoLmNlaWwoKHNsaWRlc0xlbmd0aCAtIHN3aXBlci5sb29wZWRTbGlkZXMgKiAyKSAvIHN3aXBlci5wYXJhbXMuc2xpZGVzUGVyR3JvdXApIDogc3dpcGVyLnNuYXBHcmlkLmxlbmd0aDtcblxuICAgIGlmIChzd2lwZXIucGFyYW1zLmxvb3ApIHtcbiAgICAgIGN1cnJlbnQgPSBNYXRoLmNlaWwoKHN3aXBlci5hY3RpdmVJbmRleCAtIHN3aXBlci5sb29wZWRTbGlkZXMpIC8gc3dpcGVyLnBhcmFtcy5zbGlkZXNQZXJHcm91cCk7XG5cbiAgICAgIGlmIChjdXJyZW50ID4gc2xpZGVzTGVuZ3RoIC0gMSAtIHN3aXBlci5sb29wZWRTbGlkZXMgKiAyKSB7XG4gICAgICAgIGN1cnJlbnQgLT0gc2xpZGVzTGVuZ3RoIC0gc3dpcGVyLmxvb3BlZFNsaWRlcyAqIDI7XG4gICAgICB9XG5cbiAgICAgIGlmIChjdXJyZW50ID4gdG90YWwgLSAxKSBjdXJyZW50IC09IHRvdGFsO1xuICAgICAgaWYgKGN1cnJlbnQgPCAwICYmIHN3aXBlci5wYXJhbXMucGFnaW5hdGlvblR5cGUgIT09ICdidWxsZXRzJykgY3VycmVudCA9IHRvdGFsICsgY3VycmVudDtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBzd2lwZXIuc25hcEluZGV4ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgY3VycmVudCA9IHN3aXBlci5zbmFwSW5kZXg7XG4gICAgfSBlbHNlIHtcbiAgICAgIGN1cnJlbnQgPSBzd2lwZXIuYWN0aXZlSW5kZXggfHwgMDtcbiAgICB9IC8vIFR5cGVzXG5cblxuICAgIGlmIChwYXJhbXMudHlwZSA9PT0gJ2J1bGxldHMnICYmIHN3aXBlci5wYWdpbmF0aW9uLmJ1bGxldHMgJiYgc3dpcGVyLnBhZ2luYXRpb24uYnVsbGV0cy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBidWxsZXRzID0gc3dpcGVyLnBhZ2luYXRpb24uYnVsbGV0cztcbiAgICAgIGxldCBmaXJzdEluZGV4O1xuICAgICAgbGV0IGxhc3RJbmRleDtcbiAgICAgIGxldCBtaWRJbmRleDtcblxuICAgICAgaWYgKHBhcmFtcy5keW5hbWljQnVsbGV0cykge1xuICAgICAgICBidWxsZXRTaXplID0gYnVsbGV0cy5lcSgwKVtzd2lwZXIuaXNIb3Jpem9udGFsKCkgPyAnb3V0ZXJXaWR0aCcgOiAnb3V0ZXJIZWlnaHQnXSh0cnVlKTtcbiAgICAgICAgJGVsLmNzcyhzd2lwZXIuaXNIb3Jpem9udGFsKCkgPyAnd2lkdGgnIDogJ2hlaWdodCcsIGAke2J1bGxldFNpemUgKiAocGFyYW1zLmR5bmFtaWNNYWluQnVsbGV0cyArIDQpfXB4YCk7XG5cbiAgICAgICAgaWYgKHBhcmFtcy5keW5hbWljTWFpbkJ1bGxldHMgPiAxICYmIHN3aXBlci5wcmV2aW91c0luZGV4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBkeW5hbWljQnVsbGV0SW5kZXggKz0gY3VycmVudCAtIHN3aXBlci5wcmV2aW91c0luZGV4O1xuXG4gICAgICAgICAgaWYgKGR5bmFtaWNCdWxsZXRJbmRleCA+IHBhcmFtcy5keW5hbWljTWFpbkJ1bGxldHMgLSAxKSB7XG4gICAgICAgICAgICBkeW5hbWljQnVsbGV0SW5kZXggPSBwYXJhbXMuZHluYW1pY01haW5CdWxsZXRzIC0gMTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGR5bmFtaWNCdWxsZXRJbmRleCA8IDApIHtcbiAgICAgICAgICAgIGR5bmFtaWNCdWxsZXRJbmRleCA9IDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZmlyc3RJbmRleCA9IGN1cnJlbnQgLSBkeW5hbWljQnVsbGV0SW5kZXg7XG4gICAgICAgIGxhc3RJbmRleCA9IGZpcnN0SW5kZXggKyAoTWF0aC5taW4oYnVsbGV0cy5sZW5ndGgsIHBhcmFtcy5keW5hbWljTWFpbkJ1bGxldHMpIC0gMSk7XG4gICAgICAgIG1pZEluZGV4ID0gKGxhc3RJbmRleCArIGZpcnN0SW5kZXgpIC8gMjtcbiAgICAgIH1cblxuICAgICAgYnVsbGV0cy5yZW1vdmVDbGFzcyhbJycsICctbmV4dCcsICctbmV4dC1uZXh0JywgJy1wcmV2JywgJy1wcmV2LXByZXYnLCAnLW1haW4nXS5tYXAoc3VmZml4ID0+IGAke3BhcmFtcy5idWxsZXRBY3RpdmVDbGFzc30ke3N1ZmZpeH1gKS5qb2luKCcgJykpO1xuXG4gICAgICBpZiAoJGVsLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgYnVsbGV0cy5lYWNoKGJ1bGxldCA9PiB7XG4gICAgICAgICAgY29uc3QgJGJ1bGxldCA9ICQoYnVsbGV0KTtcbiAgICAgICAgICBjb25zdCBidWxsZXRJbmRleCA9ICRidWxsZXQuaW5kZXgoKTtcblxuICAgICAgICAgIGlmIChidWxsZXRJbmRleCA9PT0gY3VycmVudCkge1xuICAgICAgICAgICAgJGJ1bGxldC5hZGRDbGFzcyhwYXJhbXMuYnVsbGV0QWN0aXZlQ2xhc3MpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChwYXJhbXMuZHluYW1pY0J1bGxldHMpIHtcbiAgICAgICAgICAgIGlmIChidWxsZXRJbmRleCA+PSBmaXJzdEluZGV4ICYmIGJ1bGxldEluZGV4IDw9IGxhc3RJbmRleCkge1xuICAgICAgICAgICAgICAkYnVsbGV0LmFkZENsYXNzKGAke3BhcmFtcy5idWxsZXRBY3RpdmVDbGFzc30tbWFpbmApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoYnVsbGV0SW5kZXggPT09IGZpcnN0SW5kZXgpIHtcbiAgICAgICAgICAgICAgc2V0U2lkZUJ1bGxldHMoJGJ1bGxldCwgJ3ByZXYnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGJ1bGxldEluZGV4ID09PSBsYXN0SW5kZXgpIHtcbiAgICAgICAgICAgICAgc2V0U2lkZUJ1bGxldHMoJGJ1bGxldCwgJ25leHQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgJGJ1bGxldCA9IGJ1bGxldHMuZXEoY3VycmVudCk7XG4gICAgICAgIGNvbnN0IGJ1bGxldEluZGV4ID0gJGJ1bGxldC5pbmRleCgpO1xuICAgICAgICAkYnVsbGV0LmFkZENsYXNzKHBhcmFtcy5idWxsZXRBY3RpdmVDbGFzcyk7XG5cbiAgICAgICAgaWYgKHBhcmFtcy5keW5hbWljQnVsbGV0cykge1xuICAgICAgICAgIGNvbnN0ICRmaXJzdERpc3BsYXllZEJ1bGxldCA9IGJ1bGxldHMuZXEoZmlyc3RJbmRleCk7XG4gICAgICAgICAgY29uc3QgJGxhc3REaXNwbGF5ZWRCdWxsZXQgPSBidWxsZXRzLmVxKGxhc3RJbmRleCk7XG5cbiAgICAgICAgICBmb3IgKGxldCBpID0gZmlyc3RJbmRleDsgaSA8PSBsYXN0SW5kZXg7IGkgKz0gMSkge1xuICAgICAgICAgICAgYnVsbGV0cy5lcShpKS5hZGRDbGFzcyhgJHtwYXJhbXMuYnVsbGV0QWN0aXZlQ2xhc3N9LW1haW5gKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoc3dpcGVyLnBhcmFtcy5sb29wKSB7XG4gICAgICAgICAgICBpZiAoYnVsbGV0SW5kZXggPj0gYnVsbGV0cy5sZW5ndGggLSBwYXJhbXMuZHluYW1pY01haW5CdWxsZXRzKSB7XG4gICAgICAgICAgICAgIGZvciAobGV0IGkgPSBwYXJhbXMuZHluYW1pY01haW5CdWxsZXRzOyBpID49IDA7IGkgLT0gMSkge1xuICAgICAgICAgICAgICAgIGJ1bGxldHMuZXEoYnVsbGV0cy5sZW5ndGggLSBpKS5hZGRDbGFzcyhgJHtwYXJhbXMuYnVsbGV0QWN0aXZlQ2xhc3N9LW1haW5gKTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGJ1bGxldHMuZXEoYnVsbGV0cy5sZW5ndGggLSBwYXJhbXMuZHluYW1pY01haW5CdWxsZXRzIC0gMSkuYWRkQ2xhc3MoYCR7cGFyYW1zLmJ1bGxldEFjdGl2ZUNsYXNzfS1wcmV2YCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBzZXRTaWRlQnVsbGV0cygkZmlyc3REaXNwbGF5ZWRCdWxsZXQsICdwcmV2Jyk7XG4gICAgICAgICAgICAgIHNldFNpZGVCdWxsZXRzKCRsYXN0RGlzcGxheWVkQnVsbGV0LCAnbmV4dCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzZXRTaWRlQnVsbGV0cygkZmlyc3REaXNwbGF5ZWRCdWxsZXQsICdwcmV2Jyk7XG4gICAgICAgICAgICBzZXRTaWRlQnVsbGV0cygkbGFzdERpc3BsYXllZEJ1bGxldCwgJ25leHQnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHBhcmFtcy5keW5hbWljQnVsbGV0cykge1xuICAgICAgICBjb25zdCBkeW5hbWljQnVsbGV0c0xlbmd0aCA9IE1hdGgubWluKGJ1bGxldHMubGVuZ3RoLCBwYXJhbXMuZHluYW1pY01haW5CdWxsZXRzICsgNCk7XG4gICAgICAgIGNvbnN0IGJ1bGxldHNPZmZzZXQgPSAoYnVsbGV0U2l6ZSAqIGR5bmFtaWNCdWxsZXRzTGVuZ3RoIC0gYnVsbGV0U2l6ZSkgLyAyIC0gbWlkSW5kZXggKiBidWxsZXRTaXplO1xuICAgICAgICBjb25zdCBvZmZzZXRQcm9wID0gcnRsID8gJ3JpZ2h0JyA6ICdsZWZ0JztcbiAgICAgICAgYnVsbGV0cy5jc3Moc3dpcGVyLmlzSG9yaXpvbnRhbCgpID8gb2Zmc2V0UHJvcCA6ICd0b3AnLCBgJHtidWxsZXRzT2Zmc2V0fXB4YCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHBhcmFtcy50eXBlID09PSAnZnJhY3Rpb24nKSB7XG4gICAgICAkZWwuZmluZChjbGFzc2VzVG9TZWxlY3RvcihwYXJhbXMuY3VycmVudENsYXNzKSkudGV4dChwYXJhbXMuZm9ybWF0RnJhY3Rpb25DdXJyZW50KGN1cnJlbnQgKyAxKSk7XG4gICAgICAkZWwuZmluZChjbGFzc2VzVG9TZWxlY3RvcihwYXJhbXMudG90YWxDbGFzcykpLnRleHQocGFyYW1zLmZvcm1hdEZyYWN0aW9uVG90YWwodG90YWwpKTtcbiAgICB9XG5cbiAgICBpZiAocGFyYW1zLnR5cGUgPT09ICdwcm9ncmVzc2JhcicpIHtcbiAgICAgIGxldCBwcm9ncmVzc2JhckRpcmVjdGlvbjtcblxuICAgICAgaWYgKHBhcmFtcy5wcm9ncmVzc2Jhck9wcG9zaXRlKSB7XG4gICAgICAgIHByb2dyZXNzYmFyRGlyZWN0aW9uID0gc3dpcGVyLmlzSG9yaXpvbnRhbCgpID8gJ3ZlcnRpY2FsJyA6ICdob3Jpem9udGFsJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHByb2dyZXNzYmFyRGlyZWN0aW9uID0gc3dpcGVyLmlzSG9yaXpvbnRhbCgpID8gJ2hvcml6b250YWwnIDogJ3ZlcnRpY2FsJztcbiAgICAgIH1cblxuICAgICAgY29uc3Qgc2NhbGUgPSAoY3VycmVudCArIDEpIC8gdG90YWw7XG4gICAgICBsZXQgc2NhbGVYID0gMTtcbiAgICAgIGxldCBzY2FsZVkgPSAxO1xuXG4gICAgICBpZiAocHJvZ3Jlc3NiYXJEaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJykge1xuICAgICAgICBzY2FsZVggPSBzY2FsZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNjYWxlWSA9IHNjYWxlO1xuICAgICAgfVxuXG4gICAgICAkZWwuZmluZChjbGFzc2VzVG9TZWxlY3RvcihwYXJhbXMucHJvZ3Jlc3NiYXJGaWxsQ2xhc3MpKS50cmFuc2Zvcm0oYHRyYW5zbGF0ZTNkKDAsMCwwKSBzY2FsZVgoJHtzY2FsZVh9KSBzY2FsZVkoJHtzY2FsZVl9KWApLnRyYW5zaXRpb24oc3dpcGVyLnBhcmFtcy5zcGVlZCk7XG4gICAgfVxuXG4gICAgaWYgKHBhcmFtcy50eXBlID09PSAnY3VzdG9tJyAmJiBwYXJhbXMucmVuZGVyQ3VzdG9tKSB7XG4gICAgICAkZWwuaHRtbChwYXJhbXMucmVuZGVyQ3VzdG9tKHN3aXBlciwgY3VycmVudCArIDEsIHRvdGFsKSk7XG4gICAgICBlbWl0KCdwYWdpbmF0aW9uUmVuZGVyJywgJGVsWzBdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZW1pdCgncGFnaW5hdGlvblVwZGF0ZScsICRlbFswXSk7XG4gICAgfVxuXG4gICAgaWYgKHN3aXBlci5wYXJhbXMud2F0Y2hPdmVyZmxvdyAmJiBzd2lwZXIuZW5hYmxlZCkge1xuICAgICAgJGVsW3N3aXBlci5pc0xvY2tlZCA/ICdhZGRDbGFzcycgOiAncmVtb3ZlQ2xhc3MnXShwYXJhbXMubG9ja0NsYXNzKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgLy8gUmVuZGVyIENvbnRhaW5lclxuICAgIGNvbnN0IHBhcmFtcyA9IHN3aXBlci5wYXJhbXMucGFnaW5hdGlvbjtcbiAgICBpZiAoaXNQYWdpbmF0aW9uRGlzYWJsZWQoKSkgcmV0dXJuO1xuICAgIGNvbnN0IHNsaWRlc0xlbmd0aCA9IHN3aXBlci52aXJ0dWFsICYmIHN3aXBlci5wYXJhbXMudmlydHVhbC5lbmFibGVkID8gc3dpcGVyLnZpcnR1YWwuc2xpZGVzLmxlbmd0aCA6IHN3aXBlci5zbGlkZXMubGVuZ3RoO1xuICAgIGNvbnN0ICRlbCA9IHN3aXBlci5wYWdpbmF0aW9uLiRlbDtcbiAgICBsZXQgcGFnaW5hdGlvbkhUTUwgPSAnJztcblxuICAgIGlmIChwYXJhbXMudHlwZSA9PT0gJ2J1bGxldHMnKSB7XG4gICAgICBsZXQgbnVtYmVyT2ZCdWxsZXRzID0gc3dpcGVyLnBhcmFtcy5sb29wID8gTWF0aC5jZWlsKChzbGlkZXNMZW5ndGggLSBzd2lwZXIubG9vcGVkU2xpZGVzICogMikgLyBzd2lwZXIucGFyYW1zLnNsaWRlc1Blckdyb3VwKSA6IHN3aXBlci5zbmFwR3JpZC5sZW5ndGg7XG5cbiAgICAgIGlmIChzd2lwZXIucGFyYW1zLmZyZWVNb2RlICYmIHN3aXBlci5wYXJhbXMuZnJlZU1vZGUuZW5hYmxlZCAmJiAhc3dpcGVyLnBhcmFtcy5sb29wICYmIG51bWJlck9mQnVsbGV0cyA+IHNsaWRlc0xlbmd0aCkge1xuICAgICAgICBudW1iZXJPZkJ1bGxldHMgPSBzbGlkZXNMZW5ndGg7XG4gICAgICB9XG5cbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbnVtYmVyT2ZCdWxsZXRzOyBpICs9IDEpIHtcbiAgICAgICAgaWYgKHBhcmFtcy5yZW5kZXJCdWxsZXQpIHtcbiAgICAgICAgICBwYWdpbmF0aW9uSFRNTCArPSBwYXJhbXMucmVuZGVyQnVsbGV0LmNhbGwoc3dpcGVyLCBpLCBwYXJhbXMuYnVsbGV0Q2xhc3MpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBhZ2luYXRpb25IVE1MICs9IGA8JHtwYXJhbXMuYnVsbGV0RWxlbWVudH0gY2xhc3M9XCIke3BhcmFtcy5idWxsZXRDbGFzc31cIj48LyR7cGFyYW1zLmJ1bGxldEVsZW1lbnR9PmA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJGVsLmh0bWwocGFnaW5hdGlvbkhUTUwpO1xuICAgICAgc3dpcGVyLnBhZ2luYXRpb24uYnVsbGV0cyA9ICRlbC5maW5kKGNsYXNzZXNUb1NlbGVjdG9yKHBhcmFtcy5idWxsZXRDbGFzcykpO1xuICAgIH1cblxuICAgIGlmIChwYXJhbXMudHlwZSA9PT0gJ2ZyYWN0aW9uJykge1xuICAgICAgaWYgKHBhcmFtcy5yZW5kZXJGcmFjdGlvbikge1xuICAgICAgICBwYWdpbmF0aW9uSFRNTCA9IHBhcmFtcy5yZW5kZXJGcmFjdGlvbi5jYWxsKHN3aXBlciwgcGFyYW1zLmN1cnJlbnRDbGFzcywgcGFyYW1zLnRvdGFsQ2xhc3MpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGFnaW5hdGlvbkhUTUwgPSBgPHNwYW4gY2xhc3M9XCIke3BhcmFtcy5jdXJyZW50Q2xhc3N9XCI+PC9zcGFuPmAgKyAnIC8gJyArIGA8c3BhbiBjbGFzcz1cIiR7cGFyYW1zLnRvdGFsQ2xhc3N9XCI+PC9zcGFuPmA7XG4gICAgICB9XG5cbiAgICAgICRlbC5odG1sKHBhZ2luYXRpb25IVE1MKTtcbiAgICB9XG5cbiAgICBpZiAocGFyYW1zLnR5cGUgPT09ICdwcm9ncmVzc2JhcicpIHtcbiAgICAgIGlmIChwYXJhbXMucmVuZGVyUHJvZ3Jlc3NiYXIpIHtcbiAgICAgICAgcGFnaW5hdGlvbkhUTUwgPSBwYXJhbXMucmVuZGVyUHJvZ3Jlc3NiYXIuY2FsbChzd2lwZXIsIHBhcmFtcy5wcm9ncmVzc2JhckZpbGxDbGFzcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwYWdpbmF0aW9uSFRNTCA9IGA8c3BhbiBjbGFzcz1cIiR7cGFyYW1zLnByb2dyZXNzYmFyRmlsbENsYXNzfVwiPjwvc3Bhbj5gO1xuICAgICAgfVxuXG4gICAgICAkZWwuaHRtbChwYWdpbmF0aW9uSFRNTCk7XG4gICAgfVxuXG4gICAgaWYgKHBhcmFtcy50eXBlICE9PSAnY3VzdG9tJykge1xuICAgICAgZW1pdCgncGFnaW5hdGlvblJlbmRlcicsIHN3aXBlci5wYWdpbmF0aW9uLiRlbFswXSk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gaW5pdCgpIHtcbiAgICBzd2lwZXIucGFyYW1zLnBhZ2luYXRpb24gPSBjcmVhdGVFbGVtZW50SWZOb3REZWZpbmVkKHN3aXBlciwgc3dpcGVyLm9yaWdpbmFsUGFyYW1zLnBhZ2luYXRpb24sIHN3aXBlci5wYXJhbXMucGFnaW5hdGlvbiwge1xuICAgICAgZWw6ICdzd2lwZXItcGFnaW5hdGlvbidcbiAgICB9KTtcbiAgICBjb25zdCBwYXJhbXMgPSBzd2lwZXIucGFyYW1zLnBhZ2luYXRpb247XG4gICAgaWYgKCFwYXJhbXMuZWwpIHJldHVybjtcbiAgICBsZXQgJGVsID0gJChwYXJhbXMuZWwpO1xuICAgIGlmICgkZWwubGVuZ3RoID09PSAwKSByZXR1cm47XG5cbiAgICBpZiAoc3dpcGVyLnBhcmFtcy51bmlxdWVOYXZFbGVtZW50cyAmJiB0eXBlb2YgcGFyYW1zLmVsID09PSAnc3RyaW5nJyAmJiAkZWwubGVuZ3RoID4gMSkge1xuICAgICAgJGVsID0gc3dpcGVyLiRlbC5maW5kKHBhcmFtcy5lbCk7IC8vIGNoZWNrIGlmIGl0IGJlbG9uZ3MgdG8gYW5vdGhlciBuZXN0ZWQgU3dpcGVyXG5cbiAgICAgIGlmICgkZWwubGVuZ3RoID4gMSkge1xuICAgICAgICAkZWwgPSAkZWwuZmlsdGVyKGVsID0+IHtcbiAgICAgICAgICBpZiAoJChlbCkucGFyZW50cygnLnN3aXBlcicpWzBdICE9PSBzd2lwZXIuZWwpIHJldHVybiBmYWxzZTtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHBhcmFtcy50eXBlID09PSAnYnVsbGV0cycgJiYgcGFyYW1zLmNsaWNrYWJsZSkge1xuICAgICAgJGVsLmFkZENsYXNzKHBhcmFtcy5jbGlja2FibGVDbGFzcyk7XG4gICAgfVxuXG4gICAgJGVsLmFkZENsYXNzKHBhcmFtcy5tb2RpZmllckNsYXNzICsgcGFyYW1zLnR5cGUpO1xuICAgICRlbC5hZGRDbGFzcyhwYXJhbXMubW9kaWZpZXJDbGFzcyArIHN3aXBlci5wYXJhbXMuZGlyZWN0aW9uKTtcblxuICAgIGlmIChwYXJhbXMudHlwZSA9PT0gJ2J1bGxldHMnICYmIHBhcmFtcy5keW5hbWljQnVsbGV0cykge1xuICAgICAgJGVsLmFkZENsYXNzKGAke3BhcmFtcy5tb2RpZmllckNsYXNzfSR7cGFyYW1zLnR5cGV9LWR5bmFtaWNgKTtcbiAgICAgIGR5bmFtaWNCdWxsZXRJbmRleCA9IDA7XG5cbiAgICAgIGlmIChwYXJhbXMuZHluYW1pY01haW5CdWxsZXRzIDwgMSkge1xuICAgICAgICBwYXJhbXMuZHluYW1pY01haW5CdWxsZXRzID0gMTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocGFyYW1zLnR5cGUgPT09ICdwcm9ncmVzc2JhcicgJiYgcGFyYW1zLnByb2dyZXNzYmFyT3Bwb3NpdGUpIHtcbiAgICAgICRlbC5hZGRDbGFzcyhwYXJhbXMucHJvZ3Jlc3NiYXJPcHBvc2l0ZUNsYXNzKTtcbiAgICB9XG5cbiAgICBpZiAocGFyYW1zLmNsaWNrYWJsZSkge1xuICAgICAgJGVsLm9uKCdjbGljaycsIGNsYXNzZXNUb1NlbGVjdG9yKHBhcmFtcy5idWxsZXRDbGFzcyksIGZ1bmN0aW9uIG9uQ2xpY2soZSkge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGxldCBpbmRleCA9ICQodGhpcykuaW5kZXgoKSAqIHN3aXBlci5wYXJhbXMuc2xpZGVzUGVyR3JvdXA7XG4gICAgICAgIGlmIChzd2lwZXIucGFyYW1zLmxvb3ApIGluZGV4ICs9IHN3aXBlci5sb29wZWRTbGlkZXM7XG4gICAgICAgIHN3aXBlci5zbGlkZVRvKGluZGV4KTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIE9iamVjdC5hc3NpZ24oc3dpcGVyLnBhZ2luYXRpb24sIHtcbiAgICAgICRlbCxcbiAgICAgIGVsOiAkZWxbMF1cbiAgICB9KTtcblxuICAgIGlmICghc3dpcGVyLmVuYWJsZWQpIHtcbiAgICAgICRlbC5hZGRDbGFzcyhwYXJhbXMubG9ja0NsYXNzKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBkZXN0cm95KCkge1xuICAgIGNvbnN0IHBhcmFtcyA9IHN3aXBlci5wYXJhbXMucGFnaW5hdGlvbjtcbiAgICBpZiAoaXNQYWdpbmF0aW9uRGlzYWJsZWQoKSkgcmV0dXJuO1xuICAgIGNvbnN0ICRlbCA9IHN3aXBlci5wYWdpbmF0aW9uLiRlbDtcbiAgICAkZWwucmVtb3ZlQ2xhc3MocGFyYW1zLmhpZGRlbkNsYXNzKTtcbiAgICAkZWwucmVtb3ZlQ2xhc3MocGFyYW1zLm1vZGlmaWVyQ2xhc3MgKyBwYXJhbXMudHlwZSk7XG4gICAgJGVsLnJlbW92ZUNsYXNzKHBhcmFtcy5tb2RpZmllckNsYXNzICsgc3dpcGVyLnBhcmFtcy5kaXJlY3Rpb24pO1xuICAgIGlmIChzd2lwZXIucGFnaW5hdGlvbi5idWxsZXRzICYmIHN3aXBlci5wYWdpbmF0aW9uLmJ1bGxldHMucmVtb3ZlQ2xhc3MpIHN3aXBlci5wYWdpbmF0aW9uLmJ1bGxldHMucmVtb3ZlQ2xhc3MocGFyYW1zLmJ1bGxldEFjdGl2ZUNsYXNzKTtcblxuICAgIGlmIChwYXJhbXMuY2xpY2thYmxlKSB7XG4gICAgICAkZWwub2ZmKCdjbGljaycsIGNsYXNzZXNUb1NlbGVjdG9yKHBhcmFtcy5idWxsZXRDbGFzcykpO1xuICAgIH1cbiAgfVxuXG4gIG9uKCdpbml0JywgKCkgPT4ge1xuICAgIGluaXQoKTtcbiAgICByZW5kZXIoKTtcbiAgICB1cGRhdGUoKTtcbiAgfSk7XG4gIG9uKCdhY3RpdmVJbmRleENoYW5nZScsICgpID0+IHtcbiAgICBpZiAoc3dpcGVyLnBhcmFtcy5sb29wKSB7XG4gICAgICB1cGRhdGUoKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBzd2lwZXIuc25hcEluZGV4ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgdXBkYXRlKCk7XG4gICAgfVxuICB9KTtcbiAgb24oJ3NuYXBJbmRleENoYW5nZScsICgpID0+IHtcbiAgICBpZiAoIXN3aXBlci5wYXJhbXMubG9vcCkge1xuICAgICAgdXBkYXRlKCk7XG4gICAgfVxuICB9KTtcbiAgb24oJ3NsaWRlc0xlbmd0aENoYW5nZScsICgpID0+IHtcbiAgICBpZiAoc3dpcGVyLnBhcmFtcy5sb29wKSB7XG4gICAgICByZW5kZXIoKTtcbiAgICAgIHVwZGF0ZSgpO1xuICAgIH1cbiAgfSk7XG4gIG9uKCdzbmFwR3JpZExlbmd0aENoYW5nZScsICgpID0+IHtcbiAgICBpZiAoIXN3aXBlci5wYXJhbXMubG9vcCkge1xuICAgICAgcmVuZGVyKCk7XG4gICAgICB1cGRhdGUoKTtcbiAgICB9XG4gIH0pO1xuICBvbignZGVzdHJveScsICgpID0+IHtcbiAgICBkZXN0cm95KCk7XG4gIH0pO1xuICBvbignZW5hYmxlIGRpc2FibGUnLCAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgJGVsXG4gICAgfSA9IHN3aXBlci5wYWdpbmF0aW9uO1xuXG4gICAgaWYgKCRlbCkge1xuICAgICAgJGVsW3N3aXBlci5lbmFibGVkID8gJ3JlbW92ZUNsYXNzJyA6ICdhZGRDbGFzcyddKHN3aXBlci5wYXJhbXMucGFnaW5hdGlvbi5sb2NrQ2xhc3MpO1xuICAgIH1cbiAgfSk7XG4gIG9uKCdsb2NrIHVubG9jaycsICgpID0+IHtcbiAgICB1cGRhdGUoKTtcbiAgfSk7XG4gIG9uKCdjbGljaycsIChfcywgZSkgPT4ge1xuICAgIGNvbnN0IHRhcmdldEVsID0gZS50YXJnZXQ7XG4gICAgY29uc3Qge1xuICAgICAgJGVsXG4gICAgfSA9IHN3aXBlci5wYWdpbmF0aW9uO1xuXG4gICAgaWYgKHN3aXBlci5wYXJhbXMucGFnaW5hdGlvbi5lbCAmJiBzd2lwZXIucGFyYW1zLnBhZ2luYXRpb24uaGlkZU9uQ2xpY2sgJiYgJGVsLmxlbmd0aCA+IDAgJiYgISQodGFyZ2V0RWwpLmhhc0NsYXNzKHN3aXBlci5wYXJhbXMucGFnaW5hdGlvbi5idWxsZXRDbGFzcykpIHtcbiAgICAgIGlmIChzd2lwZXIubmF2aWdhdGlvbiAmJiAoc3dpcGVyLm5hdmlnYXRpb24ubmV4dEVsICYmIHRhcmdldEVsID09PSBzd2lwZXIubmF2aWdhdGlvbi5uZXh0RWwgfHwgc3dpcGVyLm5hdmlnYXRpb24ucHJldkVsICYmIHRhcmdldEVsID09PSBzd2lwZXIubmF2aWdhdGlvbi5wcmV2RWwpKSByZXR1cm47XG4gICAgICBjb25zdCBpc0hpZGRlbiA9ICRlbC5oYXNDbGFzcyhzd2lwZXIucGFyYW1zLnBhZ2luYXRpb24uaGlkZGVuQ2xhc3MpO1xuXG4gICAgICBpZiAoaXNIaWRkZW4gPT09IHRydWUpIHtcbiAgICAgICAgZW1pdCgncGFnaW5hdGlvblNob3cnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVtaXQoJ3BhZ2luYXRpb25IaWRlJyk7XG4gICAgICB9XG5cbiAgICAgICRlbC50b2dnbGVDbGFzcyhzd2lwZXIucGFyYW1zLnBhZ2luYXRpb24uaGlkZGVuQ2xhc3MpO1xuICAgIH1cbiAgfSk7XG4gIE9iamVjdC5hc3NpZ24oc3dpcGVyLnBhZ2luYXRpb24sIHtcbiAgICByZW5kZXIsXG4gICAgdXBkYXRlLFxuICAgIGluaXQsXG4gICAgZGVzdHJveVxuICB9KTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/swiper/modules/pagination/pagination.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/modules/parallax/parallax.js": +/*!**********************************************************!*\ + !*** ./node_modules/swiper/modules/parallax/parallax.js ***! + \**********************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ Parallax; }\n/* harmony export */ });\n/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/dom.js */ \"./node_modules/swiper/shared/dom.js\");\n\nfunction Parallax({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n parallax: {\n enabled: false\n }\n });\n\n const setTransform = (el, progress) => {\n const {\n rtl\n } = swiper;\n const $el = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(el);\n const rtlFactor = rtl ? -1 : 1;\n const p = $el.attr('data-swiper-parallax') || '0';\n let x = $el.attr('data-swiper-parallax-x');\n let y = $el.attr('data-swiper-parallax-y');\n const scale = $el.attr('data-swiper-parallax-scale');\n const opacity = $el.attr('data-swiper-parallax-opacity');\n\n if (x || y) {\n x = x || '0';\n y = y || '0';\n } else if (swiper.isHorizontal()) {\n x = p;\n y = '0';\n } else {\n y = p;\n x = '0';\n }\n\n if (x.indexOf('%') >= 0) {\n x = `${parseInt(x, 10) * progress * rtlFactor}%`;\n } else {\n x = `${x * progress * rtlFactor}px`;\n }\n\n if (y.indexOf('%') >= 0) {\n y = `${parseInt(y, 10) * progress}%`;\n } else {\n y = `${y * progress}px`;\n }\n\n if (typeof opacity !== 'undefined' && opacity !== null) {\n const currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));\n $el[0].style.opacity = currentOpacity;\n }\n\n if (typeof scale === 'undefined' || scale === null) {\n $el.transform(`translate3d(${x}, ${y}, 0px)`);\n } else {\n const currentScale = scale - (scale - 1) * (1 - Math.abs(progress));\n $el.transform(`translate3d(${x}, ${y}, 0px) scale(${currentScale})`);\n }\n };\n\n const setTranslate = () => {\n const {\n $el,\n slides,\n progress,\n snapGrid\n } = swiper;\n $el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(el => {\n setTransform(el, progress);\n });\n slides.each((slideEl, slideIndex) => {\n let slideProgress = slideEl.progress;\n\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);\n }\n\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(el => {\n setTransform(el, slideProgress);\n });\n });\n };\n\n const setTransition = (duration = swiper.params.speed) => {\n const {\n $el\n } = swiper;\n $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(parallaxEl => {\n const $parallaxEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(parallaxEl);\n let parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) parallaxDuration = 0;\n $parallaxEl.transition(parallaxDuration);\n });\n };\n\n on('beforeInit', () => {\n if (!swiper.params.parallax.enabled) return;\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n });\n on('init', () => {\n if (!swiper.params.parallax.enabled) return;\n setTranslate();\n });\n on('setTranslate', () => {\n if (!swiper.params.parallax.enabled) return;\n setTranslate();\n });\n on('setTransition', (_swiper, duration) => {\n if (!swiper.params.parallax.enabled) return;\n setTransition(duration);\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMvcGFyYWxsYXgvcGFyYWxsYXguanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBb0M7QUFDckI7QUFDZjtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTixnQkFBZ0IsMERBQUM7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGFBQWEsdUNBQXVDO0FBQ3BELE1BQU07QUFDTixhQUFhLHlCQUF5QjtBQUN0Qzs7QUFFQTtBQUNBLGFBQWEsMkJBQTJCO0FBQ3hDLE1BQU07QUFDTixhQUFhLGFBQWE7QUFDMUI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxtQ0FBbUMsRUFBRSxJQUFJLEVBQUU7QUFDM0MsTUFBTTtBQUNOO0FBQ0EsbUNBQW1DLEVBQUUsSUFBSSxFQUFFLGVBQWUsYUFBYTtBQUN2RTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsTUFBTSwwREFBQztBQUNQO0FBQ0EsT0FBTztBQUNQLEtBQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQSwwQkFBMEIsMERBQUM7QUFDM0I7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zd2lwZXIvbW9kdWxlcy9wYXJhbGxheC9wYXJhbGxheC5qcz8wNjk3Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJy4uLy4uL3NoYXJlZC9kb20uanMnO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUGFyYWxsYXgoe1xuICBzd2lwZXIsXG4gIGV4dGVuZFBhcmFtcyxcbiAgb25cbn0pIHtcbiAgZXh0ZW5kUGFyYW1zKHtcbiAgICBwYXJhbGxheDoge1xuICAgICAgZW5hYmxlZDogZmFsc2VcbiAgICB9XG4gIH0pO1xuXG4gIGNvbnN0IHNldFRyYW5zZm9ybSA9IChlbCwgcHJvZ3Jlc3MpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBydGxcbiAgICB9ID0gc3dpcGVyO1xuICAgIGNvbnN0ICRlbCA9ICQoZWwpO1xuICAgIGNvbnN0IHJ0bEZhY3RvciA9IHJ0bCA/IC0xIDogMTtcbiAgICBjb25zdCBwID0gJGVsLmF0dHIoJ2RhdGEtc3dpcGVyLXBhcmFsbGF4JykgfHwgJzAnO1xuICAgIGxldCB4ID0gJGVsLmF0dHIoJ2RhdGEtc3dpcGVyLXBhcmFsbGF4LXgnKTtcbiAgICBsZXQgeSA9ICRlbC5hdHRyKCdkYXRhLXN3aXBlci1wYXJhbGxheC15Jyk7XG4gICAgY29uc3Qgc2NhbGUgPSAkZWwuYXR0cignZGF0YS1zd2lwZXItcGFyYWxsYXgtc2NhbGUnKTtcbiAgICBjb25zdCBvcGFjaXR5ID0gJGVsLmF0dHIoJ2RhdGEtc3dpcGVyLXBhcmFsbGF4LW9wYWNpdHknKTtcblxuICAgIGlmICh4IHx8IHkpIHtcbiAgICAgIHggPSB4IHx8ICcwJztcbiAgICAgIHkgPSB5IHx8ICcwJztcbiAgICB9IGVsc2UgaWYgKHN3aXBlci5pc0hvcml6b250YWwoKSkge1xuICAgICAgeCA9IHA7XG4gICAgICB5ID0gJzAnO1xuICAgIH0gZWxzZSB7XG4gICAgICB5ID0gcDtcbiAgICAgIHggPSAnMCc7XG4gICAgfVxuXG4gICAgaWYgKHguaW5kZXhPZignJScpID49IDApIHtcbiAgICAgIHggPSBgJHtwYXJzZUludCh4LCAxMCkgKiBwcm9ncmVzcyAqIHJ0bEZhY3Rvcn0lYDtcbiAgICB9IGVsc2Uge1xuICAgICAgeCA9IGAke3ggKiBwcm9ncmVzcyAqIHJ0bEZhY3Rvcn1weGA7XG4gICAgfVxuXG4gICAgaWYgKHkuaW5kZXhPZignJScpID49IDApIHtcbiAgICAgIHkgPSBgJHtwYXJzZUludCh5LCAxMCkgKiBwcm9ncmVzc30lYDtcbiAgICB9IGVsc2Uge1xuICAgICAgeSA9IGAke3kgKiBwcm9ncmVzc31weGA7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvcGFjaXR5ICE9PSAndW5kZWZpbmVkJyAmJiBvcGFjaXR5ICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBjdXJyZW50T3BhY2l0eSA9IG9wYWNpdHkgLSAob3BhY2l0eSAtIDEpICogKDEgLSBNYXRoLmFicyhwcm9ncmVzcykpO1xuICAgICAgJGVsWzBdLnN0eWxlLm9wYWNpdHkgPSBjdXJyZW50T3BhY2l0eTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHNjYWxlID09PSAndW5kZWZpbmVkJyB8fCBzY2FsZSA9PT0gbnVsbCkge1xuICAgICAgJGVsLnRyYW5zZm9ybShgdHJhbnNsYXRlM2QoJHt4fSwgJHt5fSwgMHB4KWApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBjdXJyZW50U2NhbGUgPSBzY2FsZSAtIChzY2FsZSAtIDEpICogKDEgLSBNYXRoLmFicyhwcm9ncmVzcykpO1xuICAgICAgJGVsLnRyYW5zZm9ybShgdHJhbnNsYXRlM2QoJHt4fSwgJHt5fSwgMHB4KSBzY2FsZSgke2N1cnJlbnRTY2FsZX0pYCk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHNldFRyYW5zbGF0ZSA9ICgpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICAkZWwsXG4gICAgICBzbGlkZXMsXG4gICAgICBwcm9ncmVzcyxcbiAgICAgIHNuYXBHcmlkXG4gICAgfSA9IHN3aXBlcjtcbiAgICAkZWwuY2hpbGRyZW4oJ1tkYXRhLXN3aXBlci1wYXJhbGxheF0sIFtkYXRhLXN3aXBlci1wYXJhbGxheC14XSwgW2RhdGEtc3dpcGVyLXBhcmFsbGF4LXldLCBbZGF0YS1zd2lwZXItcGFyYWxsYXgtb3BhY2l0eV0sIFtkYXRhLXN3aXBlci1wYXJhbGxheC1zY2FsZV0nKS5lYWNoKGVsID0+IHtcbiAgICAgIHNldFRyYW5zZm9ybShlbCwgcHJvZ3Jlc3MpO1xuICAgIH0pO1xuICAgIHNsaWRlcy5lYWNoKChzbGlkZUVsLCBzbGlkZUluZGV4KSA9PiB7XG4gICAgICBsZXQgc2xpZGVQcm9ncmVzcyA9IHNsaWRlRWwucHJvZ3Jlc3M7XG5cbiAgICAgIGlmIChzd2lwZXIucGFyYW1zLnNsaWRlc1Blckdyb3VwID4gMSAmJiBzd2lwZXIucGFyYW1zLnNsaWRlc1BlclZpZXcgIT09ICdhdXRvJykge1xuICAgICAgICBzbGlkZVByb2dyZXNzICs9IE1hdGguY2VpbChzbGlkZUluZGV4IC8gMikgLSBwcm9ncmVzcyAqIChzbmFwR3JpZC5sZW5ndGggLSAxKTtcbiAgICAgIH1cblxuICAgICAgc2xpZGVQcm9ncmVzcyA9IE1hdGgubWluKE1hdGgubWF4KHNsaWRlUHJvZ3Jlc3MsIC0xKSwgMSk7XG4gICAgICAkKHNsaWRlRWwpLmZpbmQoJ1tkYXRhLXN3aXBlci1wYXJhbGxheF0sIFtkYXRhLXN3aXBlci1wYXJhbGxheC14XSwgW2RhdGEtc3dpcGVyLXBhcmFsbGF4LXldLCBbZGF0YS1zd2lwZXItcGFyYWxsYXgtb3BhY2l0eV0sIFtkYXRhLXN3aXBlci1wYXJhbGxheC1zY2FsZV0nKS5lYWNoKGVsID0+IHtcbiAgICAgICAgc2V0VHJhbnNmb3JtKGVsLCBzbGlkZVByb2dyZXNzKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IHNldFRyYW5zaXRpb24gPSAoZHVyYXRpb24gPSBzd2lwZXIucGFyYW1zLnNwZWVkKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgJGVsXG4gICAgfSA9IHN3aXBlcjtcbiAgICAkZWwuZmluZCgnW2RhdGEtc3dpcGVyLXBhcmFsbGF4XSwgW2RhdGEtc3dpcGVyLXBhcmFsbGF4LXhdLCBbZGF0YS1zd2lwZXItcGFyYWxsYXgteV0sIFtkYXRhLXN3aXBlci1wYXJhbGxheC1vcGFjaXR5XSwgW2RhdGEtc3dpcGVyLXBhcmFsbGF4LXNjYWxlXScpLmVhY2gocGFyYWxsYXhFbCA9PiB7XG4gICAgICBjb25zdCAkcGFyYWxsYXhFbCA9ICQocGFyYWxsYXhFbCk7XG4gICAgICBsZXQgcGFyYWxsYXhEdXJhdGlvbiA9IHBhcnNlSW50KCRwYXJhbGxheEVsLmF0dHIoJ2RhdGEtc3dpcGVyLXBhcmFsbGF4LWR1cmF0aW9uJyksIDEwKSB8fCBkdXJhdGlvbjtcbiAgICAgIGlmIChkdXJhdGlvbiA9PT0gMCkgcGFyYWxsYXhEdXJhdGlvbiA9IDA7XG4gICAgICAkcGFyYWxsYXhFbC50cmFuc2l0aW9uKHBhcmFsbGF4RHVyYXRpb24pO1xuICAgIH0pO1xuICB9O1xuXG4gIG9uKCdiZWZvcmVJbml0JywgKCkgPT4ge1xuICAgIGlmICghc3dpcGVyLnBhcmFtcy5wYXJhbGxheC5lbmFibGVkKSByZXR1cm47XG4gICAgc3dpcGVyLnBhcmFtcy53YXRjaFNsaWRlc1Byb2dyZXNzID0gdHJ1ZTtcbiAgICBzd2lwZXIub3JpZ2luYWxQYXJhbXMud2F0Y2hTbGlkZXNQcm9ncmVzcyA9IHRydWU7XG4gIH0pO1xuICBvbignaW5pdCcsICgpID0+IHtcbiAgICBpZiAoIXN3aXBlci5wYXJhbXMucGFyYWxsYXguZW5hYmxlZCkgcmV0dXJuO1xuICAgIHNldFRyYW5zbGF0ZSgpO1xuICB9KTtcbiAgb24oJ3NldFRyYW5zbGF0ZScsICgpID0+IHtcbiAgICBpZiAoIXN3aXBlci5wYXJhbXMucGFyYWxsYXguZW5hYmxlZCkgcmV0dXJuO1xuICAgIHNldFRyYW5zbGF0ZSgpO1xuICB9KTtcbiAgb24oJ3NldFRyYW5zaXRpb24nLCAoX3N3aXBlciwgZHVyYXRpb24pID0+IHtcbiAgICBpZiAoIXN3aXBlci5wYXJhbXMucGFyYWxsYXguZW5hYmxlZCkgcmV0dXJuO1xuICAgIHNldFRyYW5zaXRpb24oZHVyYXRpb24pO1xuICB9KTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/swiper/modules/parallax/parallax.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/modules/scrollbar/scrollbar.js": +/*!************************************************************!*\ + !*** ./node_modules/swiper/modules/scrollbar/scrollbar.js ***! + \************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ Scrollbar; }\n/* harmony export */ });\n/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ \"./node_modules/ssr-window/ssr-window.esm.js\");\n/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ \"./node_modules/swiper/shared/dom.js\");\n/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/utils.js */ \"./node_modules/swiper/shared/utils.js\");\n/* harmony import */ var _shared_create_element_if_not_defined_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../shared/create-element-if-not-defined.js */ \"./node_modules/swiper/shared/create-element-if-not-defined.js\");\n\n\n\n\nfunction Scrollbar({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)();\n let isTouched = false;\n let timeout = null;\n let dragTimeout = null;\n let dragStartPos;\n let dragSize;\n let trackSize;\n let divider;\n extendParams({\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag'\n }\n });\n swiper.scrollbar = {\n el: null,\n dragEl: null,\n $el: null,\n $dragEl: null\n };\n\n function setTranslate() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar,\n rtlTranslate: rtl,\n progress\n } = swiper;\n const {\n $dragEl,\n $el\n } = scrollbar;\n const params = swiper.params.scrollbar;\n let newSize = dragSize;\n let newPos = (trackSize - dragSize) * progress;\n\n if (rtl) {\n newPos = -newPos;\n\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n\n if (swiper.isHorizontal()) {\n $dragEl.transform(`translate3d(${newPos}px, 0, 0)`);\n $dragEl[0].style.width = `${newSize}px`;\n } else {\n $dragEl.transform(`translate3d(0px, ${newPos}px, 0)`);\n $dragEl[0].style.height = `${newSize}px`;\n }\n\n if (params.hide) {\n clearTimeout(timeout);\n $el[0].style.opacity = 1;\n timeout = setTimeout(() => {\n $el[0].style.opacity = 0;\n $el.transition(400);\n }, 1000);\n }\n }\n\n function setTransition(duration) {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.$dragEl.transition(duration);\n }\n\n function updateSize() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar\n } = swiper;\n const {\n $dragEl,\n $el\n } = scrollbar;\n $dragEl[0].style.width = '';\n $dragEl[0].style.height = '';\n trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\n divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0));\n\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n\n if (swiper.isHorizontal()) {\n $dragEl[0].style.width = `${dragSize}px`;\n } else {\n $dragEl[0].style.height = `${dragSize}px`;\n }\n\n if (divider >= 1) {\n $el[0].style.display = 'none';\n } else {\n $el[0].style.display = '';\n }\n\n if (swiper.params.scrollbar.hide) {\n $el[0].style.opacity = 0;\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n scrollbar.$el[swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);\n }\n }\n\n function getPointerPosition(e) {\n if (swiper.isHorizontal()) {\n return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientX : e.clientX;\n }\n\n return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientY : e.clientY;\n }\n\n function setDragPosition(e) {\n const {\n scrollbar,\n rtlTranslate: rtl\n } = swiper;\n const {\n $el\n } = scrollbar;\n let positionRatio;\n positionRatio = (getPointerPosition(e) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n\n const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n function onDragStart(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n $wrapperEl\n } = swiper;\n const {\n $el,\n $dragEl\n } = scrollbar;\n isTouched = true;\n dragStartPos = e.target === $dragEl[0] || e.target === $dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n $wrapperEl.transition(100);\n $dragEl.transition(100);\n setDragPosition(e);\n clearTimeout(dragTimeout);\n $el.transition(0);\n\n if (params.hide) {\n $el.css('opacity', 1);\n }\n\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', 'none');\n }\n\n emit('scrollbarDragStart', e);\n }\n\n function onDragMove(e) {\n const {\n scrollbar,\n $wrapperEl\n } = swiper;\n const {\n $el,\n $dragEl\n } = scrollbar;\n if (!isTouched) return;\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n setDragPosition(e);\n $wrapperEl.transition(0);\n $el.transition(0);\n $dragEl.transition(0);\n emit('scrollbarDragMove', e);\n }\n\n function onDragEnd(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n $wrapperEl\n } = swiper;\n const {\n $el\n } = scrollbar;\n if (!isTouched) return;\n isTouched = false;\n\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', '');\n $wrapperEl.transition('');\n }\n\n if (params.hide) {\n clearTimeout(dragTimeout);\n dragTimeout = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.nextTick)(() => {\n $el.css('opacity', 0);\n $el.transition(400);\n }, 1000);\n }\n\n emit('scrollbarDragEnd', e);\n\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n }\n\n function events(method) {\n const {\n scrollbar,\n touchEventsTouch,\n touchEventsDesktop,\n params,\n support\n } = swiper;\n const $el = scrollbar.$el;\n const target = $el[0];\n const activeListener = support.passiveListener && params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n const passiveListener = support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n if (!target) return;\n const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n\n if (!support.touch) {\n target[eventMethod](touchEventsDesktop.start, onDragStart, activeListener);\n document[eventMethod](touchEventsDesktop.move, onDragMove, activeListener);\n document[eventMethod](touchEventsDesktop.end, onDragEnd, passiveListener);\n } else {\n target[eventMethod](touchEventsTouch.start, onDragStart, activeListener);\n target[eventMethod](touchEventsTouch.move, onDragMove, activeListener);\n target[eventMethod](touchEventsTouch.end, onDragEnd, passiveListener);\n }\n }\n\n function enableDraggable() {\n if (!swiper.params.scrollbar.el) return;\n events('on');\n }\n\n function disableDraggable() {\n if (!swiper.params.scrollbar.el) return;\n events('off');\n }\n\n function init() {\n const {\n scrollbar,\n $el: $swiperEl\n } = swiper;\n swiper.params.scrollbar = (0,_shared_create_element_if_not_defined_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, {\n el: 'swiper-scrollbar'\n });\n const params = swiper.params.scrollbar;\n if (!params.el) return;\n let $el = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(params.el);\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) {\n $el = $swiperEl.find(params.el);\n }\n\n let $dragEl = $el.find(`.${swiper.params.scrollbar.dragClass}`);\n\n if ($dragEl.length === 0) {\n $dragEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(`<div class=\"${swiper.params.scrollbar.dragClass}\"></div>`);\n $el.append($dragEl);\n }\n\n Object.assign(scrollbar, {\n $el,\n el: $el[0],\n $dragEl,\n dragEl: $dragEl[0]\n });\n\n if (params.draggable) {\n enableDraggable();\n }\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);\n }\n }\n\n function destroy() {\n disableDraggable();\n }\n\n on('init', () => {\n init();\n updateSize();\n setTranslate();\n });\n on('update resize observerUpdate lock unlock', () => {\n updateSize();\n });\n on('setTranslate', () => {\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n setTransition(duration);\n });\n on('enable disable', () => {\n const {\n $el\n } = swiper.scrollbar;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);\n }\n });\n on('destroy', () => {\n destroy();\n });\n Object.assign(swiper.scrollbar, {\n updateSize,\n setTranslate,\n init,\n destroy\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMvc2Nyb2xsYmFyL3Njcm9sbGJhci5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUF5QztBQUNMO0FBQ2E7QUFDcUM7QUFDdkU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxtQkFBbUIsdURBQVc7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7QUFDQSx1Q0FBdUMsT0FBTztBQUM5QyxrQ0FBa0MsUUFBUTtBQUMxQyxNQUFNO0FBQ04sNENBQTRDLE9BQU87QUFDbkQsbUNBQW1DLFFBQVE7QUFDM0M7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7QUFFQTtBQUNBLGtDQUFrQyxTQUFTO0FBQzNDLE1BQU07QUFDTixtQ0FBbUMsU0FBUztBQUM1Qzs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBLDZDQUE2QztBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLG9CQUFvQiwwREFBUTtBQUM1QjtBQUNBO0FBQ0EsT0FBTztBQUNQOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTiw4QkFBOEIsb0ZBQXlCO0FBQ3ZEO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxjQUFjLDBEQUFDOztBQUVmO0FBQ0E7QUFDQTs7QUFFQSwrQkFBK0Isa0NBQWtDOztBQUVqRTtBQUNBLGdCQUFnQiwwREFBQyxnQkFBZ0Isa0NBQWtDO0FBQ25FO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxNQUFNOztBQUVOO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N3aXBlci9tb2R1bGVzL3Njcm9sbGJhci9zY3JvbGxiYXIuanM/ZTc3NSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXREb2N1bWVudCB9IGZyb20gJ3Nzci13aW5kb3cnO1xuaW1wb3J0ICQgZnJvbSAnLi4vLi4vc2hhcmVkL2RvbS5qcyc7XG5pbXBvcnQgeyBuZXh0VGljayB9IGZyb20gJy4uLy4uL3NoYXJlZC91dGlscy5qcyc7XG5pbXBvcnQgY3JlYXRlRWxlbWVudElmTm90RGVmaW5lZCBmcm9tICcuLi8uLi9zaGFyZWQvY3JlYXRlLWVsZW1lbnQtaWYtbm90LWRlZmluZWQuanMnO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gU2Nyb2xsYmFyKHtcbiAgc3dpcGVyLFxuICBleHRlbmRQYXJhbXMsXG4gIG9uLFxuICBlbWl0XG59KSB7XG4gIGNvbnN0IGRvY3VtZW50ID0gZ2V0RG9jdW1lbnQoKTtcbiAgbGV0IGlzVG91Y2hlZCA9IGZhbHNlO1xuICBsZXQgdGltZW91dCA9IG51bGw7XG4gIGxldCBkcmFnVGltZW91dCA9IG51bGw7XG4gIGxldCBkcmFnU3RhcnRQb3M7XG4gIGxldCBkcmFnU2l6ZTtcbiAgbGV0IHRyYWNrU2l6ZTtcbiAgbGV0IGRpdmlkZXI7XG4gIGV4dGVuZFBhcmFtcyh7XG4gICAgc2Nyb2xsYmFyOiB7XG4gICAgICBlbDogbnVsbCxcbiAgICAgIGRyYWdTaXplOiAnYXV0bycsXG4gICAgICBoaWRlOiBmYWxzZSxcbiAgICAgIGRyYWdnYWJsZTogZmFsc2UsXG4gICAgICBzbmFwT25SZWxlYXNlOiB0cnVlLFxuICAgICAgbG9ja0NsYXNzOiAnc3dpcGVyLXNjcm9sbGJhci1sb2NrJyxcbiAgICAgIGRyYWdDbGFzczogJ3N3aXBlci1zY3JvbGxiYXItZHJhZydcbiAgICB9XG4gIH0pO1xuICBzd2lwZXIuc2Nyb2xsYmFyID0ge1xuICAgIGVsOiBudWxsLFxuICAgIGRyYWdFbDogbnVsbCxcbiAgICAkZWw6IG51bGwsXG4gICAgJGRyYWdFbDogbnVsbFxuICB9O1xuXG4gIGZ1bmN0aW9uIHNldFRyYW5zbGF0ZSgpIHtcbiAgICBpZiAoIXN3aXBlci5wYXJhbXMuc2Nyb2xsYmFyLmVsIHx8ICFzd2lwZXIuc2Nyb2xsYmFyLmVsKSByZXR1cm47XG4gICAgY29uc3Qge1xuICAgICAgc2Nyb2xsYmFyLFxuICAgICAgcnRsVHJhbnNsYXRlOiBydGwsXG4gICAgICBwcm9ncmVzc1xuICAgIH0gPSBzd2lwZXI7XG4gICAgY29uc3Qge1xuICAgICAgJGRyYWdFbCxcbiAgICAgICRlbFxuICAgIH0gPSBzY3JvbGxiYXI7XG4gICAgY29uc3QgcGFyYW1zID0gc3dpcGVyLnBhcmFtcy5zY3JvbGxiYXI7XG4gICAgbGV0IG5ld1NpemUgPSBkcmFnU2l6ZTtcbiAgICBsZXQgbmV3UG9zID0gKHRyYWNrU2l6ZSAtIGRyYWdTaXplKSAqIHByb2dyZXNzO1xuXG4gICAgaWYgKHJ0bCkge1xuICAgICAgbmV3UG9zID0gLW5ld1BvcztcblxuICAgICAgaWYgKG5ld1BvcyA+IDApIHtcbiAgICAgICAgbmV3U2l6ZSA9IGRyYWdTaXplIC0gbmV3UG9zO1xuICAgICAgICBuZXdQb3MgPSAwO1xuICAgICAgfSBlbHNlIGlmICgtbmV3UG9zICsgZHJhZ1NpemUgPiB0cmFja1NpemUpIHtcbiAgICAgICAgbmV3U2l6ZSA9IHRyYWNrU2l6ZSArIG5ld1BvcztcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKG5ld1BvcyA8IDApIHtcbiAgICAgIG5ld1NpemUgPSBkcmFnU2l6ZSArIG5ld1BvcztcbiAgICAgIG5ld1BvcyA9IDA7XG4gICAgfSBlbHNlIGlmIChuZXdQb3MgKyBkcmFnU2l6ZSA+IHRyYWNrU2l6ZSkge1xuICAgICAgbmV3U2l6ZSA9IHRyYWNrU2l6ZSAtIG5ld1BvcztcbiAgICB9XG5cbiAgICBpZiAoc3dpcGVyLmlzSG9yaXpvbnRhbCgpKSB7XG4gICAgICAkZHJhZ0VsLnRyYW5zZm9ybShgdHJhbnNsYXRlM2QoJHtuZXdQb3N9cHgsIDAsIDApYCk7XG4gICAgICAkZHJhZ0VsWzBdLnN0eWxlLndpZHRoID0gYCR7bmV3U2l6ZX1weGA7XG4gICAgfSBlbHNlIHtcbiAgICAgICRkcmFnRWwudHJhbnNmb3JtKGB0cmFuc2xhdGUzZCgwcHgsICR7bmV3UG9zfXB4LCAwKWApO1xuICAgICAgJGRyYWdFbFswXS5zdHlsZS5oZWlnaHQgPSBgJHtuZXdTaXplfXB4YDtcbiAgICB9XG5cbiAgICBpZiAocGFyYW1zLmhpZGUpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTtcbiAgICAgICRlbFswXS5zdHlsZS5vcGFjaXR5ID0gMTtcbiAgICAgIHRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgJGVsWzBdLnN0eWxlLm9wYWNpdHkgPSAwO1xuICAgICAgICAkZWwudHJhbnNpdGlvbig0MDApO1xuICAgICAgfSwgMTAwMCk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gc2V0VHJhbnNpdGlvbihkdXJhdGlvbikge1xuICAgIGlmICghc3dpcGVyLnBhcmFtcy5zY3JvbGxiYXIuZWwgfHwgIXN3aXBlci5zY3JvbGxiYXIuZWwpIHJldHVybjtcbiAgICBzd2lwZXIuc2Nyb2xsYmFyLiRkcmFnRWwudHJhbnNpdGlvbihkdXJhdGlvbik7XG4gIH1cblxuICBmdW5jdGlvbiB1cGRhdGVTaXplKCkge1xuICAgIGlmICghc3dpcGVyLnBhcmFtcy5zY3JvbGxiYXIuZWwgfHwgIXN3aXBlci5zY3JvbGxiYXIuZWwpIHJldHVybjtcbiAgICBjb25zdCB7XG4gICAgICBzY3JvbGxiYXJcbiAgICB9ID0gc3dpcGVyO1xuICAgIGNvbnN0IHtcbiAgICAgICRkcmFnRWwsXG4gICAgICAkZWxcbiAgICB9ID0gc2Nyb2xsYmFyO1xuICAgICRkcmFnRWxbMF0uc3R5bGUud2lkdGggPSAnJztcbiAgICAkZHJhZ0VsWzBdLnN0eWxlLmhlaWdodCA9ICcnO1xuICAgIHRyYWNrU2l6ZSA9IHN3aXBlci5pc0hvcml6b250YWwoKSA/ICRlbFswXS5vZmZzZXRXaWR0aCA6ICRlbFswXS5vZmZzZXRIZWlnaHQ7XG4gICAgZGl2aWRlciA9IHN3aXBlci5zaXplIC8gKHN3aXBlci52aXJ0dWFsU2l6ZSArIHN3aXBlci5wYXJhbXMuc2xpZGVzT2Zmc2V0QmVmb3JlIC0gKHN3aXBlci5wYXJhbXMuY2VudGVyZWRTbGlkZXMgPyBzd2lwZXIuc25hcEdyaWRbMF0gOiAwKSk7XG5cbiAgICBpZiAoc3dpcGVyLnBhcmFtcy5zY3JvbGxiYXIuZHJhZ1NpemUgPT09ICdhdXRvJykge1xuICAgICAgZHJhZ1NpemUgPSB0cmFja1NpemUgKiBkaXZpZGVyO1xuICAgIH0gZWxzZSB7XG4gICAgICBkcmFnU2l6ZSA9IHBhcnNlSW50KHN3aXBlci5wYXJhbXMuc2Nyb2xsYmFyLmRyYWdTaXplLCAxMCk7XG4gICAgfVxuXG4gICAgaWYgKHN3aXBlci5pc0hvcml6b250YWwoKSkge1xuICAgICAgJGRyYWdFbFswXS5zdHlsZS53aWR0aCA9IGAke2RyYWdTaXplfXB4YDtcbiAgICB9IGVsc2Uge1xuICAgICAgJGRyYWdFbFswXS5zdHlsZS5oZWlnaHQgPSBgJHtkcmFnU2l6ZX1weGA7XG4gICAgfVxuXG4gICAgaWYgKGRpdmlkZXIgPj0gMSkge1xuICAgICAgJGVsWzBdLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgfSBlbHNlIHtcbiAgICAgICRlbFswXS5zdHlsZS5kaXNwbGF5ID0gJyc7XG4gICAgfVxuXG4gICAgaWYgKHN3aXBlci5wYXJhbXMuc2Nyb2xsYmFyLmhpZGUpIHtcbiAgICAgICRlbFswXS5zdHlsZS5vcGFjaXR5ID0gMDtcbiAgICB9XG5cbiAgICBpZiAoc3dpcGVyLnBhcmFtcy53YXRjaE92ZXJmbG93ICYmIHN3aXBlci5lbmFibGVkKSB7XG4gICAgICBzY3JvbGxiYXIuJGVsW3N3aXBlci5pc0xvY2tlZCA/ICdhZGRDbGFzcycgOiAncmVtb3ZlQ2xhc3MnXShzd2lwZXIucGFyYW1zLnNjcm9sbGJhci5sb2NrQ2xhc3MpO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGdldFBvaW50ZXJQb3NpdGlvbihlKSB7XG4gICAgaWYgKHN3aXBlci5pc0hvcml6b250YWwoKSkge1xuICAgICAgcmV0dXJuIGUudHlwZSA9PT0gJ3RvdWNoc3RhcnQnIHx8IGUudHlwZSA9PT0gJ3RvdWNobW92ZScgPyBlLnRhcmdldFRvdWNoZXNbMF0uY2xpZW50WCA6IGUuY2xpZW50WDtcbiAgICB9XG5cbiAgICByZXR1cm4gZS50eXBlID09PSAndG91Y2hzdGFydCcgfHwgZS50eXBlID09PSAndG91Y2htb3ZlJyA/IGUudGFyZ2V0VG91Y2hlc1swXS5jbGllbnRZIDogZS5jbGllbnRZO1xuICB9XG5cbiAgZnVuY3Rpb24gc2V0RHJhZ1Bvc2l0aW9uKGUpIHtcbiAgICBjb25zdCB7XG4gICAgICBzY3JvbGxiYXIsXG4gICAgICBydGxUcmFuc2xhdGU6IHJ0bFxuICAgIH0gPSBzd2lwZXI7XG4gICAgY29uc3Qge1xuICAgICAgJGVsXG4gICAgfSA9IHNjcm9sbGJhcjtcbiAgICBsZXQgcG9zaXRpb25SYXRpbztcbiAgICBwb3NpdGlvblJhdGlvID0gKGdldFBvaW50ZXJQb3NpdGlvbihlKSAtICRlbC5vZmZzZXQoKVtzd2lwZXIuaXNIb3Jpem9udGFsKCkgPyAnbGVmdCcgOiAndG9wJ10gLSAoZHJhZ1N0YXJ0UG9zICE9PSBudWxsID8gZHJhZ1N0YXJ0UG9zIDogZHJhZ1NpemUgLyAyKSkgLyAodHJhY2tTaXplIC0gZHJhZ1NpemUpO1xuICAgIHBvc2l0aW9uUmF0aW8gPSBNYXRoLm1heChNYXRoLm1pbihwb3NpdGlvblJhdGlvLCAxKSwgMCk7XG5cbiAgICBpZiAocnRsKSB7XG4gICAgICBwb3NpdGlvblJhdGlvID0gMSAtIHBvc2l0aW9uUmF0aW87XG4gICAgfVxuXG4gICAgY29uc3QgcG9zaXRpb24gPSBzd2lwZXIubWluVHJhbnNsYXRlKCkgKyAoc3dpcGVyLm1heFRyYW5zbGF0ZSgpIC0gc3dpcGVyLm1pblRyYW5zbGF0ZSgpKSAqIHBvc2l0aW9uUmF0aW87XG4gICAgc3dpcGVyLnVwZGF0ZVByb2dyZXNzKHBvc2l0aW9uKTtcbiAgICBzd2lwZXIuc2V0VHJhbnNsYXRlKHBvc2l0aW9uKTtcbiAgICBzd2lwZXIudXBkYXRlQWN0aXZlSW5kZXgoKTtcbiAgICBzd2lwZXIudXBkYXRlU2xpZGVzQ2xhc3NlcygpO1xuICB9XG5cbiAgZnVuY3Rpb24gb25EcmFnU3RhcnQoZSkge1xuICAgIGNvbnN0IHBhcmFtcyA9IHN3aXBlci5wYXJhbXMuc2Nyb2xsYmFyO1xuICAgIGNvbnN0IHtcbiAgICAgIHNjcm9sbGJhcixcbiAgICAgICR3cmFwcGVyRWxcbiAgICB9ID0gc3dpcGVyO1xuICAgIGNvbnN0IHtcbiAgICAgICRlbCxcbiAgICAgICRkcmFnRWxcbiAgICB9ID0gc2Nyb2xsYmFyO1xuICAgIGlzVG91Y2hlZCA9IHRydWU7XG4gICAgZHJhZ1N0YXJ0UG9zID0gZS50YXJnZXQgPT09ICRkcmFnRWxbMF0gfHwgZS50YXJnZXQgPT09ICRkcmFnRWwgPyBnZXRQb2ludGVyUG9zaXRpb24oZSkgLSBlLnRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVtzd2lwZXIuaXNIb3Jpem9udGFsKCkgPyAnbGVmdCcgOiAndG9wJ10gOiBudWxsO1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICR3cmFwcGVyRWwudHJhbnNpdGlvbigxMDApO1xuICAgICRkcmFnRWwudHJhbnNpdGlvbigxMDApO1xuICAgIHNldERyYWdQb3NpdGlvbihlKTtcbiAgICBjbGVhclRpbWVvdXQoZHJhZ1RpbWVvdXQpO1xuICAgICRlbC50cmFuc2l0aW9uKDApO1xuXG4gICAgaWYgKHBhcmFtcy5oaWRlKSB7XG4gICAgICAkZWwuY3NzKCdvcGFjaXR5JywgMSk7XG4gICAgfVxuXG4gICAgaWYgKHN3aXBlci5wYXJhbXMuY3NzTW9kZSkge1xuICAgICAgc3dpcGVyLiR3cmFwcGVyRWwuY3NzKCdzY3JvbGwtc25hcC10eXBlJywgJ25vbmUnKTtcbiAgICB9XG5cbiAgICBlbWl0KCdzY3JvbGxiYXJEcmFnU3RhcnQnLCBlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIG9uRHJhZ01vdmUoZSkge1xuICAgIGNvbnN0IHtcbiAgICAgIHNjcm9sbGJhcixcbiAgICAgICR3cmFwcGVyRWxcbiAgICB9ID0gc3dpcGVyO1xuICAgIGNvbnN0IHtcbiAgICAgICRlbCxcbiAgICAgICRkcmFnRWxcbiAgICB9ID0gc2Nyb2xsYmFyO1xuICAgIGlmICghaXNUb3VjaGVkKSByZXR1cm47XG4gICAgaWYgKGUucHJldmVudERlZmF1bHQpIGUucHJldmVudERlZmF1bHQoKTtlbHNlIGUucmV0dXJuVmFsdWUgPSBmYWxzZTtcbiAgICBzZXREcmFnUG9zaXRpb24oZSk7XG4gICAgJHdyYXBwZXJFbC50cmFuc2l0aW9uKDApO1xuICAgICRlbC50cmFuc2l0aW9uKDApO1xuICAgICRkcmFnRWwudHJhbnNpdGlvbigwKTtcbiAgICBlbWl0KCdzY3JvbGxiYXJEcmFnTW92ZScsIGUpO1xuICB9XG5cbiAgZnVuY3Rpb24gb25EcmFnRW5kKGUpIHtcbiAgICBjb25zdCBwYXJhbXMgPSBzd2lwZXIucGFyYW1zLnNjcm9sbGJhcjtcbiAgICBjb25zdCB7XG4gICAgICBzY3JvbGxiYXIsXG4gICAgICAkd3JhcHBlckVsXG4gICAgfSA9IHN3aXBlcjtcbiAgICBjb25zdCB7XG4gICAgICAkZWxcbiAgICB9ID0gc2Nyb2xsYmFyO1xuICAgIGlmICghaXNUb3VjaGVkKSByZXR1cm47XG4gICAgaXNUb3VjaGVkID0gZmFsc2U7XG5cbiAgICBpZiAoc3dpcGVyLnBhcmFtcy5jc3NNb2RlKSB7XG4gICAgICBzd2lwZXIuJHdyYXBwZXJFbC5jc3MoJ3Njcm9sbC1zbmFwLXR5cGUnLCAnJyk7XG4gICAgICAkd3JhcHBlckVsLnRyYW5zaXRpb24oJycpO1xuICAgIH1cblxuICAgIGlmIChwYXJhbXMuaGlkZSkge1xuICAgICAgY2xlYXJUaW1lb3V0KGRyYWdUaW1lb3V0KTtcbiAgICAgIGRyYWdUaW1lb3V0ID0gbmV4dFRpY2soKCkgPT4ge1xuICAgICAgICAkZWwuY3NzKCdvcGFjaXR5JywgMCk7XG4gICAgICAgICRlbC50cmFuc2l0aW9uKDQwMCk7XG4gICAgICB9LCAxMDAwKTtcbiAgICB9XG5cbiAgICBlbWl0KCdzY3JvbGxiYXJEcmFnRW5kJywgZSk7XG5cbiAgICBpZiAocGFyYW1zLnNuYXBPblJlbGVhc2UpIHtcbiAgICAgIHN3aXBlci5zbGlkZVRvQ2xvc2VzdCgpO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGV2ZW50cyhtZXRob2QpIHtcbiAgICBjb25zdCB7XG4gICAgICBzY3JvbGxiYXIsXG4gICAgICB0b3VjaEV2ZW50c1RvdWNoLFxuICAgICAgdG91Y2hFdmVudHNEZXNrdG9wLFxuICAgICAgcGFyYW1zLFxuICAgICAgc3VwcG9ydFxuICAgIH0gPSBzd2lwZXI7XG4gICAgY29uc3QgJGVsID0gc2Nyb2xsYmFyLiRlbDtcbiAgICBjb25zdCB0YXJnZXQgPSAkZWxbMF07XG4gICAgY29uc3QgYWN0aXZlTGlzdGVuZXIgPSBzdXBwb3J0LnBhc3NpdmVMaXN0ZW5lciAmJiBwYXJhbXMucGFzc2l2ZUxpc3RlbmVycyA/IHtcbiAgICAgIHBhc3NpdmU6IGZhbHNlLFxuICAgICAgY2FwdHVyZTogZmFsc2VcbiAgICB9IDogZmFsc2U7XG4gICAgY29uc3QgcGFzc2l2ZUxpc3RlbmVyID0gc3VwcG9ydC5wYXNzaXZlTGlzdGVuZXIgJiYgcGFyYW1zLnBhc3NpdmVMaXN0ZW5lcnMgPyB7XG4gICAgICBwYXNzaXZlOiB0cnVlLFxuICAgICAgY2FwdHVyZTogZmFsc2VcbiAgICB9IDogZmFsc2U7XG4gICAgaWYgKCF0YXJnZXQpIHJldHVybjtcbiAgICBjb25zdCBldmVudE1ldGhvZCA9IG1ldGhvZCA9PT0gJ29uJyA/ICdhZGRFdmVudExpc3RlbmVyJyA6ICdyZW1vdmVFdmVudExpc3RlbmVyJztcblxuICAgIGlmICghc3VwcG9ydC50b3VjaCkge1xuICAgICAgdGFyZ2V0W2V2ZW50TWV0aG9kXSh0b3VjaEV2ZW50c0Rlc2t0b3Auc3RhcnQsIG9uRHJhZ1N0YXJ0LCBhY3RpdmVMaXN0ZW5lcik7XG4gICAgICBkb2N1bWVudFtldmVudE1ldGhvZF0odG91Y2hFdmVudHNEZXNrdG9wLm1vdmUsIG9uRHJhZ01vdmUsIGFjdGl2ZUxpc3RlbmVyKTtcbiAgICAgIGRvY3VtZW50W2V2ZW50TWV0aG9kXSh0b3VjaEV2ZW50c0Rlc2t0b3AuZW5kLCBvbkRyYWdFbmQsIHBhc3NpdmVMaXN0ZW5lcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRhcmdldFtldmVudE1ldGhvZF0odG91Y2hFdmVudHNUb3VjaC5zdGFydCwgb25EcmFnU3RhcnQsIGFjdGl2ZUxpc3RlbmVyKTtcbiAgICAgIHRhcmdldFtldmVudE1ldGhvZF0odG91Y2hFdmVudHNUb3VjaC5tb3ZlLCBvbkRyYWdNb3ZlLCBhY3RpdmVMaXN0ZW5lcik7XG4gICAgICB0YXJnZXRbZXZlbnRNZXRob2RdKHRvdWNoRXZlbnRzVG91Y2guZW5kLCBvbkRyYWdFbmQsIHBhc3NpdmVMaXN0ZW5lcik7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gZW5hYmxlRHJhZ2dhYmxlKCkge1xuICAgIGlmICghc3dpcGVyLnBhcmFtcy5zY3JvbGxiYXIuZWwpIHJldHVybjtcbiAgICBldmVudHMoJ29uJyk7XG4gIH1cblxuICBmdW5jdGlvbiBkaXNhYmxlRHJhZ2dhYmxlKCkge1xuICAgIGlmICghc3dpcGVyLnBhcmFtcy5zY3JvbGxiYXIuZWwpIHJldHVybjtcbiAgICBldmVudHMoJ29mZicpO1xuICB9XG5cbiAgZnVuY3Rpb24gaW5pdCgpIHtcbiAgICBjb25zdCB7XG4gICAgICBzY3JvbGxiYXIsXG4gICAgICAkZWw6ICRzd2lwZXJFbFxuICAgIH0gPSBzd2lwZXI7XG4gICAgc3dpcGVyLnBhcmFtcy5zY3JvbGxiYXIgPSBjcmVhdGVFbGVtZW50SWZOb3REZWZpbmVkKHN3aXBlciwgc3dpcGVyLm9yaWdpbmFsUGFyYW1zLnNjcm9sbGJhciwgc3dpcGVyLnBhcmFtcy5zY3JvbGxiYXIsIHtcbiAgICAgIGVsOiAnc3dpcGVyLXNjcm9sbGJhcidcbiAgICB9KTtcbiAgICBjb25zdCBwYXJhbXMgPSBzd2lwZXIucGFyYW1zLnNjcm9sbGJhcjtcbiAgICBpZiAoIXBhcmFtcy5lbCkgcmV0dXJuO1xuICAgIGxldCAkZWwgPSAkKHBhcmFtcy5lbCk7XG5cbiAgICBpZiAoc3dpcGVyLnBhcmFtcy51bmlxdWVOYXZFbGVtZW50cyAmJiB0eXBlb2YgcGFyYW1zLmVsID09PSAnc3RyaW5nJyAmJiAkZWwubGVuZ3RoID4gMSAmJiAkc3dpcGVyRWwuZmluZChwYXJhbXMuZWwpLmxlbmd0aCA9PT0gMSkge1xuICAgICAgJGVsID0gJHN3aXBlckVsLmZpbmQocGFyYW1zLmVsKTtcbiAgICB9XG5cbiAgICBsZXQgJGRyYWdFbCA9ICRlbC5maW5kKGAuJHtzd2lwZXIucGFyYW1zLnNjcm9sbGJhci5kcmFnQ2xhc3N9YCk7XG5cbiAgICBpZiAoJGRyYWdFbC5sZW5ndGggPT09IDApIHtcbiAgICAgICRkcmFnRWwgPSAkKGA8ZGl2IGNsYXNzPVwiJHtzd2lwZXIucGFyYW1zLnNjcm9sbGJhci5kcmFnQ2xhc3N9XCI+PC9kaXY+YCk7XG4gICAgICAkZWwuYXBwZW5kKCRkcmFnRWwpO1xuICAgIH1cblxuICAgIE9iamVjdC5hc3NpZ24oc2Nyb2xsYmFyLCB7XG4gICAgICAkZWwsXG4gICAgICBlbDogJGVsWzBdLFxuICAgICAgJGRyYWdFbCxcbiAgICAgIGRyYWdFbDogJGRyYWdFbFswXVxuICAgIH0pO1xuXG4gICAgaWYgKHBhcmFtcy5kcmFnZ2FibGUpIHtcbiAgICAgIGVuYWJsZURyYWdnYWJsZSgpO1xuICAgIH1cblxuICAgIGlmICgkZWwpIHtcbiAgICAgICRlbFtzd2lwZXIuZW5hYmxlZCA/ICdyZW1vdmVDbGFzcycgOiAnYWRkQ2xhc3MnXShzd2lwZXIucGFyYW1zLnNjcm9sbGJhci5sb2NrQ2xhc3MpO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGRlc3Ryb3koKSB7XG4gICAgZGlzYWJsZURyYWdnYWJsZSgpO1xuICB9XG5cbiAgb24oJ2luaXQnLCAoKSA9PiB7XG4gICAgaW5pdCgpO1xuICAgIHVwZGF0ZVNpemUoKTtcbiAgICBzZXRUcmFuc2xhdGUoKTtcbiAgfSk7XG4gIG9uKCd1cGRhdGUgcmVzaXplIG9ic2VydmVyVXBkYXRlIGxvY2sgdW5sb2NrJywgKCkgPT4ge1xuICAgIHVwZGF0ZVNpemUoKTtcbiAgfSk7XG4gIG9uKCdzZXRUcmFuc2xhdGUnLCAoKSA9PiB7XG4gICAgc2V0VHJhbnNsYXRlKCk7XG4gIH0pO1xuICBvbignc2V0VHJhbnNpdGlvbicsIChfcywgZHVyYXRpb24pID0+IHtcbiAgICBzZXRUcmFuc2l0aW9uKGR1cmF0aW9uKTtcbiAgfSk7XG4gIG9uKCdlbmFibGUgZGlzYWJsZScsICgpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICAkZWxcbiAgICB9ID0gc3dpcGVyLnNjcm9sbGJhcjtcblxuICAgIGlmICgkZWwpIHtcbiAgICAgICRlbFtzd2lwZXIuZW5hYmxlZCA/ICdyZW1vdmVDbGFzcycgOiAnYWRkQ2xhc3MnXShzd2lwZXIucGFyYW1zLnNjcm9sbGJhci5sb2NrQ2xhc3MpO1xuICAgIH1cbiAgfSk7XG4gIG9uKCdkZXN0cm95JywgKCkgPT4ge1xuICAgIGRlc3Ryb3koKTtcbiAgfSk7XG4gIE9iamVjdC5hc3NpZ24oc3dpcGVyLnNjcm9sbGJhciwge1xuICAgIHVwZGF0ZVNpemUsXG4gICAgc2V0VHJhbnNsYXRlLFxuICAgIGluaXQsXG4gICAgZGVzdHJveVxuICB9KTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/swiper/modules/scrollbar/scrollbar.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/modules/thumbs/thumbs.js": +/*!******************************************************!*\ + !*** ./node_modules/swiper/modules/thumbs/thumbs.js ***! + \******************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ Thumb; }\n/* harmony export */ });\n/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ \"./node_modules/swiper/shared/utils.js\");\n/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ \"./node_modules/swiper/shared/dom.js\");\n\n\nfunction Thumb({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n thumbs: {\n swiper: null,\n multipleActiveThumbs: true,\n autoScrollOffset: 0,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-thumbs'\n }\n });\n let initialized = false;\n let swiperCreated = false;\n swiper.thumbs = {\n swiper: null\n };\n\n function onThumbClick() {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n const clickedIndex = thumbsSwiper.clickedIndex;\n const clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) return;\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n let slideToIndex;\n\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt((0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n\n if (swiper.params.loop) {\n let currentIndex = swiper.activeIndex;\n\n if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) {\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n currentIndex = swiper.activeIndex;\n }\n\n const prevIndex = swiper.slides.eq(currentIndex).prevAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`).eq(0).index();\n const nextIndex = swiper.slides.eq(currentIndex).nextAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`).eq(0).index();\n if (typeof prevIndex === 'undefined') slideToIndex = nextIndex;else if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;else slideToIndex = prevIndex;\n }\n\n swiper.slideTo(slideToIndex);\n }\n\n function init() {\n const {\n thumbs: thumbsParams\n } = swiper.params;\n if (initialized) return false;\n initialized = true;\n const SwiperClass = swiper.constructor;\n\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n Object.assign(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n Object.assign(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n } else if ((0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.isObject)(thumbsParams.swiper)) {\n const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper);\n Object.assign(thumbsSwiperParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams);\n swiperCreated = true;\n }\n\n swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', onThumbClick);\n return true;\n }\n\n function update(initial) {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;\n const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n let currentThumbsIndex = thumbsSwiper.activeIndex;\n let newThumbsIndex;\n let direction;\n\n if (thumbsSwiper.params.loop) {\n if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) {\n thumbsSwiper.loopFix(); // eslint-disable-next-line\n\n thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;\n currentThumbsIndex = thumbsSwiper.activeIndex;\n } // Find actual thumbs index to slide to\n\n\n const prevThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).prevAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0).index();\n const nextThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).nextAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0).index();\n\n if (typeof prevThumbsIndex === 'undefined') {\n newThumbsIndex = nextThumbsIndex;\n } else if (typeof nextThumbsIndex === 'undefined') {\n newThumbsIndex = prevThumbsIndex;\n } else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) {\n newThumbsIndex = thumbsSwiper.params.slidesPerGroup > 1 ? nextThumbsIndex : currentThumbsIndex;\n } else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) {\n newThumbsIndex = nextThumbsIndex;\n } else {\n newThumbsIndex = prevThumbsIndex;\n }\n\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n } else {\n newThumbsIndex = swiper.realIndex;\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n }\n\n if (useOffset) {\n newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n }\n\n if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) {// newThumbsIndex = newThumbsIndex - slidesPerView + 1;\n }\n\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n } // Activate thumbs\n\n\n let thumbsToActivate = 1;\n const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n\n if (!swiper.params.thumbs.multipleActiveThumbs) {\n thumbsToActivate = 1;\n }\n\n thumbsToActivate = Math.floor(thumbsToActivate);\n thumbsSwiper.slides.removeClass(thumbActiveClass);\n\n if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.$wrapperEl.children(`[data-swiper-slide-index=\"${swiper.realIndex + i}\"]`).addClass(thumbActiveClass);\n }\n } else {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.slides.eq(swiper.realIndex + i).addClass(thumbActiveClass);\n }\n }\n }\n\n on('beforeInit', () => {\n const {\n thumbs\n } = swiper.params;\n if (!thumbs || !thumbs.swiper) return;\n init();\n update(true);\n });\n on('slideChange update resize observerUpdate', () => {\n if (!swiper.thumbs.swiper) return;\n update();\n });\n on('setTransition', (_s, duration) => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n thumbsSwiper.setTransition(duration);\n });\n on('beforeDestroy', () => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n\n if (swiperCreated && thumbsSwiper) {\n thumbsSwiper.destroy();\n }\n });\n Object.assign(swiper.thumbs, {\n init,\n update\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMvdGh1bWJzL3RodW1icy5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBaUQ7QUFDYjtBQUNyQjtBQUNmO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QiwwREFBQztBQUN6QjtBQUNBOztBQUVBO0FBQ0EsOEJBQThCLDBEQUFDO0FBQy9CLE1BQU07QUFDTjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSwwQkFBMEI7O0FBRTFCO0FBQ0E7QUFDQTs7QUFFQSw0RkFBNEYsYUFBYTtBQUN6Ryw0RkFBNEYsYUFBYTtBQUN6RyxxRUFBcUUsb0VBQW9FLHVGQUF1RjtBQUNoTzs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsTUFBTSxTQUFTLDBEQUFRO0FBQ3ZCLGlEQUFpRDtBQUNqRDtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0Esa0NBQWtDOztBQUVsQztBQUNBO0FBQ0EsVUFBVTs7O0FBR1YsZ0hBQWdILGlCQUFpQjtBQUNqSSxnSEFBZ0gsaUJBQWlCOztBQUVqSTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0EsVUFBVTtBQUNWO0FBQ0EsVUFBVTtBQUNWO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7O0FBRUE7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0EsVUFBVSwyRkFBMkY7QUFDckc7O0FBRUE7QUFDQTtBQUNBLE1BQU07OztBQUdOO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0Esc0JBQXNCLHNCQUFzQjtBQUM1QyxzRUFBc0UscUJBQXFCO0FBQzNGO0FBQ0EsTUFBTTtBQUNOLHNCQUFzQixzQkFBc0I7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N3aXBlci9tb2R1bGVzL3RodW1icy90aHVtYnMuanM/NjYxZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc09iamVjdCB9IGZyb20gJy4uLy4uL3NoYXJlZC91dGlscy5qcyc7XG5pbXBvcnQgJCBmcm9tICcuLi8uLi9zaGFyZWQvZG9tLmpzJztcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFRodW1iKHtcbiAgc3dpcGVyLFxuICBleHRlbmRQYXJhbXMsXG4gIG9uXG59KSB7XG4gIGV4dGVuZFBhcmFtcyh7XG4gICAgdGh1bWJzOiB7XG4gICAgICBzd2lwZXI6IG51bGwsXG4gICAgICBtdWx0aXBsZUFjdGl2ZVRodW1iczogdHJ1ZSxcbiAgICAgIGF1dG9TY3JvbGxPZmZzZXQ6IDAsXG4gICAgICBzbGlkZVRodW1iQWN0aXZlQ2xhc3M6ICdzd2lwZXItc2xpZGUtdGh1bWItYWN0aXZlJyxcbiAgICAgIHRodW1ic0NvbnRhaW5lckNsYXNzOiAnc3dpcGVyLXRodW1icydcbiAgICB9XG4gIH0pO1xuICBsZXQgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgbGV0IHN3aXBlckNyZWF0ZWQgPSBmYWxzZTtcbiAgc3dpcGVyLnRodW1icyA9IHtcbiAgICBzd2lwZXI6IG51bGxcbiAgfTtcblxuICBmdW5jdGlvbiBvblRodW1iQ2xpY2soKSB7XG4gICAgY29uc3QgdGh1bWJzU3dpcGVyID0gc3dpcGVyLnRodW1icy5zd2lwZXI7XG4gICAgaWYgKCF0aHVtYnNTd2lwZXIpIHJldHVybjtcbiAgICBjb25zdCBjbGlja2VkSW5kZXggPSB0aHVtYnNTd2lwZXIuY2xpY2tlZEluZGV4O1xuICAgIGNvbnN0IGNsaWNrZWRTbGlkZSA9IHRodW1ic1N3aXBlci5jbGlja2VkU2xpZGU7XG4gICAgaWYgKGNsaWNrZWRTbGlkZSAmJiAkKGNsaWNrZWRTbGlkZSkuaGFzQ2xhc3Moc3dpcGVyLnBhcmFtcy50aHVtYnMuc2xpZGVUaHVtYkFjdGl2ZUNsYXNzKSkgcmV0dXJuO1xuICAgIGlmICh0eXBlb2YgY2xpY2tlZEluZGV4ID09PSAndW5kZWZpbmVkJyB8fCBjbGlja2VkSW5kZXggPT09IG51bGwpIHJldHVybjtcbiAgICBsZXQgc2xpZGVUb0luZGV4O1xuXG4gICAgaWYgKHRodW1ic1N3aXBlci5wYXJhbXMubG9vcCkge1xuICAgICAgc2xpZGVUb0luZGV4ID0gcGFyc2VJbnQoJCh0aHVtYnNTd2lwZXIuY2xpY2tlZFNsaWRlKS5hdHRyKCdkYXRhLXN3aXBlci1zbGlkZS1pbmRleCcpLCAxMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNsaWRlVG9JbmRleCA9IGNsaWNrZWRJbmRleDtcbiAgICB9XG5cbiAgICBpZiAoc3dpcGVyLnBhcmFtcy5sb29wKSB7XG4gICAgICBsZXQgY3VycmVudEluZGV4ID0gc3dpcGVyLmFjdGl2ZUluZGV4O1xuXG4gICAgICBpZiAoc3dpcGVyLnNsaWRlcy5lcShjdXJyZW50SW5kZXgpLmhhc0NsYXNzKHN3aXBlci5wYXJhbXMuc2xpZGVEdXBsaWNhdGVDbGFzcykpIHtcbiAgICAgICAgc3dpcGVyLmxvb3BGaXgoKTsgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG5cbiAgICAgICAgc3dpcGVyLl9jbGllbnRMZWZ0ID0gc3dpcGVyLiR3cmFwcGVyRWxbMF0uY2xpZW50TGVmdDtcbiAgICAgICAgY3VycmVudEluZGV4ID0gc3dpcGVyLmFjdGl2ZUluZGV4O1xuICAgICAgfVxuXG4gICAgICBjb25zdCBwcmV2SW5kZXggPSBzd2lwZXIuc2xpZGVzLmVxKGN1cnJlbnRJbmRleCkucHJldkFsbChgW2RhdGEtc3dpcGVyLXNsaWRlLWluZGV4PVwiJHtzbGlkZVRvSW5kZXh9XCJdYCkuZXEoMCkuaW5kZXgoKTtcbiAgICAgIGNvbnN0IG5leHRJbmRleCA9IHN3aXBlci5zbGlkZXMuZXEoY3VycmVudEluZGV4KS5uZXh0QWxsKGBbZGF0YS1zd2lwZXItc2xpZGUtaW5kZXg9XCIke3NsaWRlVG9JbmRleH1cIl1gKS5lcSgwKS5pbmRleCgpO1xuICAgICAgaWYgKHR5cGVvZiBwcmV2SW5kZXggPT09ICd1bmRlZmluZWQnKSBzbGlkZVRvSW5kZXggPSBuZXh0SW5kZXg7ZWxzZSBpZiAodHlwZW9mIG5leHRJbmRleCA9PT0gJ3VuZGVmaW5lZCcpIHNsaWRlVG9JbmRleCA9IHByZXZJbmRleDtlbHNlIGlmIChuZXh0SW5kZXggLSBjdXJyZW50SW5kZXggPCBjdXJyZW50SW5kZXggLSBwcmV2SW5kZXgpIHNsaWRlVG9JbmRleCA9IG5leHRJbmRleDtlbHNlIHNsaWRlVG9JbmRleCA9IHByZXZJbmRleDtcbiAgICB9XG5cbiAgICBzd2lwZXIuc2xpZGVUbyhzbGlkZVRvSW5kZXgpO1xuICB9XG5cbiAgZnVuY3Rpb24gaW5pdCgpIHtcbiAgICBjb25zdCB7XG4gICAgICB0aHVtYnM6IHRodW1ic1BhcmFtc1xuICAgIH0gPSBzd2lwZXIucGFyYW1zO1xuICAgIGlmIChpbml0aWFsaXplZCkgcmV0dXJuIGZhbHNlO1xuICAgIGluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICBjb25zdCBTd2lwZXJDbGFzcyA9IHN3aXBlci5jb25zdHJ1Y3RvcjtcblxuICAgIGlmICh0aHVtYnNQYXJhbXMuc3dpcGVyIGluc3RhbmNlb2YgU3dpcGVyQ2xhc3MpIHtcbiAgICAgIHN3aXBlci50aHVtYnMuc3dpcGVyID0gdGh1bWJzUGFyYW1zLnN3aXBlcjtcbiAgICAgIE9iamVjdC5hc3NpZ24oc3dpcGVyLnRodW1icy5zd2lwZXIub3JpZ2luYWxQYXJhbXMsIHtcbiAgICAgICAgd2F0Y2hTbGlkZXNQcm9ncmVzczogdHJ1ZSxcbiAgICAgICAgc2xpZGVUb0NsaWNrZWRTbGlkZTogZmFsc2VcbiAgICAgIH0pO1xuICAgICAgT2JqZWN0LmFzc2lnbihzd2lwZXIudGh1bWJzLnN3aXBlci5wYXJhbXMsIHtcbiAgICAgICAgd2F0Y2hTbGlkZXNQcm9ncmVzczogdHJ1ZSxcbiAgICAgICAgc2xpZGVUb0NsaWNrZWRTbGlkZTogZmFsc2VcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoaXNPYmplY3QodGh1bWJzUGFyYW1zLnN3aXBlcikpIHtcbiAgICAgIGNvbnN0IHRodW1ic1N3aXBlclBhcmFtcyA9IE9iamVjdC5hc3NpZ24oe30sIHRodW1ic1BhcmFtcy5zd2lwZXIpO1xuICAgICAgT2JqZWN0LmFzc2lnbih0aHVtYnNTd2lwZXJQYXJhbXMsIHtcbiAgICAgICAgd2F0Y2hTbGlkZXNQcm9ncmVzczogdHJ1ZSxcbiAgICAgICAgc2xpZGVUb0NsaWNrZWRTbGlkZTogZmFsc2VcbiAgICAgIH0pO1xuICAgICAgc3dpcGVyLnRodW1icy5zd2lwZXIgPSBuZXcgU3dpcGVyQ2xhc3ModGh1bWJzU3dpcGVyUGFyYW1zKTtcbiAgICAgIHN3aXBlckNyZWF0ZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHN3aXBlci50aHVtYnMuc3dpcGVyLiRlbC5hZGRDbGFzcyhzd2lwZXIucGFyYW1zLnRodW1icy50aHVtYnNDb250YWluZXJDbGFzcyk7XG4gICAgc3dpcGVyLnRodW1icy5zd2lwZXIub24oJ3RhcCcsIG9uVGh1bWJDbGljayk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBmdW5jdGlvbiB1cGRhdGUoaW5pdGlhbCkge1xuICAgIGNvbnN0IHRodW1ic1N3aXBlciA9IHN3aXBlci50aHVtYnMuc3dpcGVyO1xuICAgIGlmICghdGh1bWJzU3dpcGVyKSByZXR1cm47XG4gICAgY29uc3Qgc2xpZGVzUGVyVmlldyA9IHRodW1ic1N3aXBlci5wYXJhbXMuc2xpZGVzUGVyVmlldyA9PT0gJ2F1dG8nID8gdGh1bWJzU3dpcGVyLnNsaWRlc1BlclZpZXdEeW5hbWljKCkgOiB0aHVtYnNTd2lwZXIucGFyYW1zLnNsaWRlc1BlclZpZXc7XG4gICAgY29uc3QgYXV0b1Njcm9sbE9mZnNldCA9IHN3aXBlci5wYXJhbXMudGh1bWJzLmF1dG9TY3JvbGxPZmZzZXQ7XG4gICAgY29uc3QgdXNlT2Zmc2V0ID0gYXV0b1Njcm9sbE9mZnNldCAmJiAhdGh1bWJzU3dpcGVyLnBhcmFtcy5sb29wO1xuXG4gICAgaWYgKHN3aXBlci5yZWFsSW5kZXggIT09IHRodW1ic1N3aXBlci5yZWFsSW5kZXggfHwgdXNlT2Zmc2V0KSB7XG4gICAgICBsZXQgY3VycmVudFRodW1ic0luZGV4ID0gdGh1bWJzU3dpcGVyLmFjdGl2ZUluZGV4O1xuICAgICAgbGV0IG5ld1RodW1ic0luZGV4O1xuICAgICAgbGV0IGRpcmVjdGlvbjtcblxuICAgICAgaWYgKHRodW1ic1N3aXBlci5wYXJhbXMubG9vcCkge1xuICAgICAgICBpZiAodGh1bWJzU3dpcGVyLnNsaWRlcy5lcShjdXJyZW50VGh1bWJzSW5kZXgpLmhhc0NsYXNzKHRodW1ic1N3aXBlci5wYXJhbXMuc2xpZGVEdXBsaWNhdGVDbGFzcykpIHtcbiAgICAgICAgICB0aHVtYnNTd2lwZXIubG9vcEZpeCgpOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcblxuICAgICAgICAgIHRodW1ic1N3aXBlci5fY2xpZW50TGVmdCA9IHRodW1ic1N3aXBlci4kd3JhcHBlckVsWzBdLmNsaWVudExlZnQ7XG4gICAgICAgICAgY3VycmVudFRodW1ic0luZGV4ID0gdGh1bWJzU3dpcGVyLmFjdGl2ZUluZGV4O1xuICAgICAgICB9IC8vIEZpbmQgYWN0dWFsIHRodW1icyBpbmRleCB0byBzbGlkZSB0b1xuXG5cbiAgICAgICAgY29uc3QgcHJldlRodW1ic0luZGV4ID0gdGh1bWJzU3dpcGVyLnNsaWRlcy5lcShjdXJyZW50VGh1bWJzSW5kZXgpLnByZXZBbGwoYFtkYXRhLXN3aXBlci1zbGlkZS1pbmRleD1cIiR7c3dpcGVyLnJlYWxJbmRleH1cIl1gKS5lcSgwKS5pbmRleCgpO1xuICAgICAgICBjb25zdCBuZXh0VGh1bWJzSW5kZXggPSB0aHVtYnNTd2lwZXIuc2xpZGVzLmVxKGN1cnJlbnRUaHVtYnNJbmRleCkubmV4dEFsbChgW2RhdGEtc3dpcGVyLXNsaWRlLWluZGV4PVwiJHtzd2lwZXIucmVhbEluZGV4fVwiXWApLmVxKDApLmluZGV4KCk7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBwcmV2VGh1bWJzSW5kZXggPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgbmV3VGh1bWJzSW5kZXggPSBuZXh0VGh1bWJzSW5kZXg7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIG5leHRUaHVtYnNJbmRleCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICBuZXdUaHVtYnNJbmRleCA9IHByZXZUaHVtYnNJbmRleDtcbiAgICAgICAgfSBlbHNlIGlmIChuZXh0VGh1bWJzSW5kZXggLSBjdXJyZW50VGh1bWJzSW5kZXggPT09IGN1cnJlbnRUaHVtYnNJbmRleCAtIHByZXZUaHVtYnNJbmRleCkge1xuICAgICAgICAgIG5ld1RodW1ic0luZGV4ID0gdGh1bWJzU3dpcGVyLnBhcmFtcy5zbGlkZXNQZXJHcm91cCA+IDEgPyBuZXh0VGh1bWJzSW5kZXggOiBjdXJyZW50VGh1bWJzSW5kZXg7XG4gICAgICAgIH0gZWxzZSBpZiAobmV4dFRodW1ic0luZGV4IC0gY3VycmVudFRodW1ic0luZGV4IDwgY3VycmVudFRodW1ic0luZGV4IC0gcHJldlRodW1ic0luZGV4KSB7XG4gICAgICAgICAgbmV3VGh1bWJzSW5kZXggPSBuZXh0VGh1bWJzSW5kZXg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbmV3VGh1bWJzSW5kZXggPSBwcmV2VGh1bWJzSW5kZXg7XG4gICAgICAgIH1cblxuICAgICAgICBkaXJlY3Rpb24gPSBzd2lwZXIuYWN0aXZlSW5kZXggPiBzd2lwZXIucHJldmlvdXNJbmRleCA/ICduZXh0JyA6ICdwcmV2JztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5ld1RodW1ic0luZGV4ID0gc3dpcGVyLnJlYWxJbmRleDtcbiAgICAgICAgZGlyZWN0aW9uID0gbmV3VGh1bWJzSW5kZXggPiBzd2lwZXIucHJldmlvdXNJbmRleCA/ICduZXh0JyA6ICdwcmV2JztcbiAgICAgIH1cblxuICAgICAgaWYgKHVzZU9mZnNldCkge1xuICAgICAgICBuZXdUaHVtYnNJbmRleCArPSBkaXJlY3Rpb24gPT09ICduZXh0JyA/IGF1dG9TY3JvbGxPZmZzZXQgOiAtMSAqIGF1dG9TY3JvbGxPZmZzZXQ7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aHVtYnNTd2lwZXIudmlzaWJsZVNsaWRlc0luZGV4ZXMgJiYgdGh1bWJzU3dpcGVyLnZpc2libGVTbGlkZXNJbmRleGVzLmluZGV4T2YobmV3VGh1bWJzSW5kZXgpIDwgMCkge1xuICAgICAgICBpZiAodGh1bWJzU3dpcGVyLnBhcmFtcy5jZW50ZXJlZFNsaWRlcykge1xuICAgICAgICAgIGlmIChuZXdUaHVtYnNJbmRleCA+IGN1cnJlbnRUaHVtYnNJbmRleCkge1xuICAgICAgICAgICAgbmV3VGh1bWJzSW5kZXggPSBuZXdUaHVtYnNJbmRleCAtIE1hdGguZmxvb3Ioc2xpZGVzUGVyVmlldyAvIDIpICsgMTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV3VGh1bWJzSW5kZXggPSBuZXdUaHVtYnNJbmRleCArIE1hdGguZmxvb3Ioc2xpZGVzUGVyVmlldyAvIDIpIC0gMTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAobmV3VGh1bWJzSW5kZXggPiBjdXJyZW50VGh1bWJzSW5kZXggJiYgdGh1bWJzU3dpcGVyLnBhcmFtcy5zbGlkZXNQZXJHcm91cCA9PT0gMSkgey8vIG5ld1RodW1ic0luZGV4ID0gbmV3VGh1bWJzSW5kZXggLSBzbGlkZXNQZXJWaWV3ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRodW1ic1N3aXBlci5zbGlkZVRvKG5ld1RodW1ic0luZGV4LCBpbml0aWFsID8gMCA6IHVuZGVmaW5lZCk7XG4gICAgICB9XG4gICAgfSAvLyBBY3RpdmF0ZSB0aHVtYnNcblxuXG4gICAgbGV0IHRodW1ic1RvQWN0aXZhdGUgPSAxO1xuICAgIGNvbnN0IHRodW1iQWN0aXZlQ2xhc3MgPSBzd2lwZXIucGFyYW1zLnRodW1icy5zbGlkZVRodW1iQWN0aXZlQ2xhc3M7XG5cbiAgICBpZiAoc3dpcGVyLnBhcmFtcy5zbGlkZXNQZXJWaWV3ID4gMSAmJiAhc3dpcGVyLnBhcmFtcy5jZW50ZXJlZFNsaWRlcykge1xuICAgICAgdGh1bWJzVG9BY3RpdmF0ZSA9IHN3aXBlci5wYXJhbXMuc2xpZGVzUGVyVmlldztcbiAgICB9XG5cbiAgICBpZiAoIXN3aXBlci5wYXJhbXMudGh1bWJzLm11bHRpcGxlQWN0aXZlVGh1bWJzKSB7XG4gICAgICB0aHVtYnNUb0FjdGl2YXRlID0gMTtcbiAgICB9XG5cbiAgICB0aHVtYnNUb0FjdGl2YXRlID0gTWF0aC5mbG9vcih0aHVtYnNUb0FjdGl2YXRlKTtcbiAgICB0aHVtYnNTd2lwZXIuc2xpZGVzLnJlbW92ZUNsYXNzKHRodW1iQWN0aXZlQ2xhc3MpO1xuXG4gICAgaWYgKHRodW1ic1N3aXBlci5wYXJhbXMubG9vcCB8fCB0aHVtYnNTd2lwZXIucGFyYW1zLnZpcnR1YWwgJiYgdGh1bWJzU3dpcGVyLnBhcmFtcy52aXJ0dWFsLmVuYWJsZWQpIHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGh1bWJzVG9BY3RpdmF0ZTsgaSArPSAxKSB7XG4gICAgICAgIHRodW1ic1N3aXBlci4kd3JhcHBlckVsLmNoaWxkcmVuKGBbZGF0YS1zd2lwZXItc2xpZGUtaW5kZXg9XCIke3N3aXBlci5yZWFsSW5kZXggKyBpfVwiXWApLmFkZENsYXNzKHRodW1iQWN0aXZlQ2xhc3MpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRodW1ic1RvQWN0aXZhdGU7IGkgKz0gMSkge1xuICAgICAgICB0aHVtYnNTd2lwZXIuc2xpZGVzLmVxKHN3aXBlci5yZWFsSW5kZXggKyBpKS5hZGRDbGFzcyh0aHVtYkFjdGl2ZUNsYXNzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvbignYmVmb3JlSW5pdCcsICgpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICB0aHVtYnNcbiAgICB9ID0gc3dpcGVyLnBhcmFtcztcbiAgICBpZiAoIXRodW1icyB8fCAhdGh1bWJzLnN3aXBlcikgcmV0dXJuO1xuICAgIGluaXQoKTtcbiAgICB1cGRhdGUodHJ1ZSk7XG4gIH0pO1xuICBvbignc2xpZGVDaGFuZ2UgdXBkYXRlIHJlc2l6ZSBvYnNlcnZlclVwZGF0ZScsICgpID0+IHtcbiAgICBpZiAoIXN3aXBlci50aHVtYnMuc3dpcGVyKSByZXR1cm47XG4gICAgdXBkYXRlKCk7XG4gIH0pO1xuICBvbignc2V0VHJhbnNpdGlvbicsIChfcywgZHVyYXRpb24pID0+IHtcbiAgICBjb25zdCB0aHVtYnNTd2lwZXIgPSBzd2lwZXIudGh1bWJzLnN3aXBlcjtcbiAgICBpZiAoIXRodW1ic1N3aXBlcikgcmV0dXJuO1xuICAgIHRodW1ic1N3aXBlci5zZXRUcmFuc2l0aW9uKGR1cmF0aW9uKTtcbiAgfSk7XG4gIG9uKCdiZWZvcmVEZXN0cm95JywgKCkgPT4ge1xuICAgIGNvbnN0IHRodW1ic1N3aXBlciA9IHN3aXBlci50aHVtYnMuc3dpcGVyO1xuICAgIGlmICghdGh1bWJzU3dpcGVyKSByZXR1cm47XG5cbiAgICBpZiAoc3dpcGVyQ3JlYXRlZCAmJiB0aHVtYnNTd2lwZXIpIHtcbiAgICAgIHRodW1ic1N3aXBlci5kZXN0cm95KCk7XG4gICAgfVxuICB9KTtcbiAgT2JqZWN0LmFzc2lnbihzd2lwZXIudGh1bWJzLCB7XG4gICAgaW5pdCxcbiAgICB1cGRhdGVcbiAgfSk7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/swiper/modules/thumbs/thumbs.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/modules/virtual/virtual.js": +/*!********************************************************!*\ + !*** ./node_modules/swiper/modules/virtual/virtual.js ***! + \********************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ Virtual; }\n/* harmony export */ });\n/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/dom.js */ \"./node_modules/swiper/shared/dom.js\");\n/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/utils.js */ \"./node_modules/swiper/shared/utils.js\");\n\n\nfunction Virtual({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n virtual: {\n enabled: false,\n slides: [],\n cache: true,\n renderSlide: null,\n renderExternal: null,\n renderExternalUpdate: true,\n addSlidesBefore: 0,\n addSlidesAfter: 0\n }\n });\n let cssModeTimeout;\n swiper.virtual = {\n cache: {},\n from: undefined,\n to: undefined,\n slides: [],\n offset: 0,\n slidesGrid: []\n };\n\n function renderSlide(slide, index) {\n const params = swiper.params.virtual;\n\n if (params.cache && swiper.virtual.cache[index]) {\n return swiper.virtual.cache[index];\n }\n\n const $slideEl = params.renderSlide ? (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(params.renderSlide.call(swiper, slide, index)) : (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(`<div class=\"${swiper.params.slideClass}\" data-swiper-slide-index=\"${index}\">${slide}</div>`);\n if (!$slideEl.attr('data-swiper-slide-index')) $slideEl.attr('data-swiper-slide-index', index);\n if (params.cache) swiper.virtual.cache[index] = $slideEl;\n return $slideEl;\n }\n\n function update(force) {\n const {\n slidesPerView,\n slidesPerGroup,\n centeredSlides\n } = swiper.params;\n const {\n addSlidesBefore,\n addSlidesAfter\n } = swiper.params.virtual;\n const {\n from: previousFrom,\n to: previousTo,\n slides,\n slidesGrid: previousSlidesGrid,\n offset: previousOffset\n } = swiper.virtual;\n\n if (!swiper.params.cssMode) {\n swiper.updateActiveIndex();\n }\n\n const activeIndex = swiper.activeIndex || 0;\n let offsetProp;\n if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n let slidesAfter;\n let slidesBefore;\n\n if (centeredSlides) {\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n } else {\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter;\n slidesBefore = slidesPerGroup + addSlidesBefore;\n }\n\n const from = Math.max((activeIndex || 0) - slidesBefore, 0);\n const to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1);\n const offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n Object.assign(swiper.virtual, {\n from,\n to,\n offset,\n slidesGrid: swiper.slidesGrid\n });\n\n function onRendered() {\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n }\n\n if (previousFrom === from && previousTo === to && !force) {\n if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\n swiper.slides.css(offsetProp, `${offset}px`);\n }\n\n swiper.updateProgress();\n return;\n }\n\n if (swiper.params.virtual.renderExternal) {\n swiper.params.virtual.renderExternal.call(swiper, {\n offset,\n from,\n to,\n slides: function getSlides() {\n const slidesToRender = [];\n\n for (let i = from; i <= to; i += 1) {\n slidesToRender.push(slides[i]);\n }\n\n return slidesToRender;\n }()\n });\n\n if (swiper.params.virtual.renderExternalUpdate) {\n onRendered();\n }\n\n return;\n }\n\n const prependIndexes = [];\n const appendIndexes = [];\n\n if (force) {\n swiper.$wrapperEl.find(`.${swiper.params.slideClass}`).remove();\n } else {\n for (let i = previousFrom; i <= previousTo; i += 1) {\n if (i < from || i > to) {\n swiper.$wrapperEl.find(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${i}\"]`).remove();\n }\n }\n }\n\n for (let i = 0; i < slides.length; i += 1) {\n if (i >= from && i <= to) {\n if (typeof previousTo === 'undefined' || force) {\n appendIndexes.push(i);\n } else {\n if (i > previousTo) appendIndexes.push(i);\n if (i < previousFrom) prependIndexes.push(i);\n }\n }\n }\n\n appendIndexes.forEach(index => {\n swiper.$wrapperEl.append(renderSlide(slides[index], index));\n });\n prependIndexes.sort((a, b) => b - a).forEach(index => {\n swiper.$wrapperEl.prepend(renderSlide(slides[index], index));\n });\n swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, `${offset}px`);\n onRendered();\n }\n\n function appendSlide(slides) {\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.push(slides[i]);\n }\n } else {\n swiper.virtual.slides.push(slides);\n }\n\n update(true);\n }\n\n function prependSlide(slides) {\n const activeIndex = swiper.activeIndex;\n let newActiveIndex = activeIndex + 1;\n let numberOfNewSlides = 1;\n\n if (Array.isArray(slides)) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.unshift(slides[i]);\n }\n\n newActiveIndex = activeIndex + slides.length;\n numberOfNewSlides = slides.length;\n } else {\n swiper.virtual.slides.unshift(slides);\n }\n\n if (swiper.params.virtual.cache) {\n const cache = swiper.virtual.cache;\n const newCache = {};\n Object.keys(cache).forEach(cachedIndex => {\n const $cachedEl = cache[cachedIndex];\n const cachedElIndex = $cachedEl.attr('data-swiper-slide-index');\n\n if (cachedElIndex) {\n $cachedEl.attr('data-swiper-slide-index', parseInt(cachedElIndex, 10) + numberOfNewSlides);\n }\n\n newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = $cachedEl;\n });\n swiper.virtual.cache = newCache;\n }\n\n update(true);\n swiper.slideTo(newActiveIndex, 0);\n }\n\n function removeSlide(slidesIndexes) {\n if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\n let activeIndex = swiper.activeIndex;\n\n if (Array.isArray(slidesIndexes)) {\n for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) {\n swiper.virtual.slides.splice(slidesIndexes[i], 1);\n\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes[i]];\n }\n\n if (slidesIndexes[i] < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n } else {\n swiper.virtual.slides.splice(slidesIndexes, 1);\n\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes];\n }\n\n if (slidesIndexes < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n\n update(true);\n swiper.slideTo(activeIndex, 0);\n }\n\n function removeAllSlides() {\n swiper.virtual.slides = [];\n\n if (swiper.params.virtual.cache) {\n swiper.virtual.cache = {};\n }\n\n update(true);\n swiper.slideTo(0, 0);\n }\n\n on('beforeInit', () => {\n if (!swiper.params.virtual.enabled) return;\n swiper.virtual.slides = swiper.params.virtual.slides;\n swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n\n if (!swiper.params.initialSlide) {\n update();\n }\n });\n on('setTranslate', () => {\n if (!swiper.params.virtual.enabled) return;\n\n if (swiper.params.cssMode && !swiper._immediateVirtual) {\n clearTimeout(cssModeTimeout);\n cssModeTimeout = setTimeout(() => {\n update();\n }, 100);\n } else {\n update();\n }\n });\n on('init update resize', () => {\n if (!swiper.params.virtual.enabled) return;\n\n if (swiper.params.cssMode) {\n (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.setCSSProperty)(swiper.wrapperEl, '--swiper-virtual-size', `${swiper.virtualSize}px`);\n }\n });\n Object.assign(swiper.virtual, {\n appendSlide,\n prependSlide,\n removeSlide,\n removeAllSlides,\n update\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMvdmlydHVhbC92aXJ0dWFsLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFvQztBQUNtQjtBQUN4QztBQUNmO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLDBDQUEwQywwREFBQyxrREFBa0QsMERBQUMsZ0JBQWdCLHlCQUF5Qiw2QkFBNkIsTUFBTSxJQUFJLE1BQU07QUFDcEw7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTs7QUFFTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGtEQUFrRDtBQUNsRDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHlDQUF5QyxPQUFPO0FBQ2hEOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSw2QkFBNkIsU0FBUztBQUN0QztBQUNBOztBQUVBO0FBQ0EsU0FBUztBQUNULE9BQU87O0FBRVA7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLGlDQUFpQyx5QkFBeUI7QUFDMUQsTUFBTTtBQUNOLGlDQUFpQyxpQkFBaUI7QUFDbEQ7QUFDQSxxQ0FBcUMseUJBQXlCLDRCQUE0QixFQUFFO0FBQzVGO0FBQ0E7QUFDQTs7QUFFQSxvQkFBb0IsbUJBQW1CO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTCxtRUFBbUUsT0FBTztBQUMxRTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxzQkFBc0IsbUJBQW1CO0FBQ3pDO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0Esc0JBQXNCLG1CQUFtQjtBQUN6QztBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDZDQUE2QyxRQUFRO0FBQ3JEOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QixxQ0FBcUM7QUFDbkU7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxNQUFNO0FBQ047QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBO0FBQ0EsTUFBTSxnRUFBYywrQ0FBK0MsbUJBQW1CO0FBQ3RGO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMvdmlydHVhbC92aXJ0dWFsLmpzPzk0MjYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnLi4vLi4vc2hhcmVkL2RvbS5qcyc7XG5pbXBvcnQgeyBzZXRDU1NQcm9wZXJ0eSB9IGZyb20gJy4uLy4uL3NoYXJlZC91dGlscy5qcyc7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBWaXJ0dWFsKHtcbiAgc3dpcGVyLFxuICBleHRlbmRQYXJhbXMsXG4gIG9uXG59KSB7XG4gIGV4dGVuZFBhcmFtcyh7XG4gICAgdmlydHVhbDoge1xuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICBzbGlkZXM6IFtdLFxuICAgICAgY2FjaGU6IHRydWUsXG4gICAgICByZW5kZXJTbGlkZTogbnVsbCxcbiAgICAgIHJlbmRlckV4dGVybmFsOiBudWxsLFxuICAgICAgcmVuZGVyRXh0ZXJuYWxVcGRhdGU6IHRydWUsXG4gICAgICBhZGRTbGlkZXNCZWZvcmU6IDAsXG4gICAgICBhZGRTbGlkZXNBZnRlcjogMFxuICAgIH1cbiAgfSk7XG4gIGxldCBjc3NNb2RlVGltZW91dDtcbiAgc3dpcGVyLnZpcnR1YWwgPSB7XG4gICAgY2FjaGU6IHt9LFxuICAgIGZyb206IHVuZGVmaW5lZCxcbiAgICB0bzogdW5kZWZpbmVkLFxuICAgIHNsaWRlczogW10sXG4gICAgb2Zmc2V0OiAwLFxuICAgIHNsaWRlc0dyaWQ6IFtdXG4gIH07XG5cbiAgZnVuY3Rpb24gcmVuZGVyU2xpZGUoc2xpZGUsIGluZGV4KSB7XG4gICAgY29uc3QgcGFyYW1zID0gc3dpcGVyLnBhcmFtcy52aXJ0dWFsO1xuXG4gICAgaWYgKHBhcmFtcy5jYWNoZSAmJiBzd2lwZXIudmlydHVhbC5jYWNoZVtpbmRleF0pIHtcbiAgICAgIHJldHVybiBzd2lwZXIudmlydHVhbC5jYWNoZVtpbmRleF07XG4gICAgfVxuXG4gICAgY29uc3QgJHNsaWRlRWwgPSBwYXJhbXMucmVuZGVyU2xpZGUgPyAkKHBhcmFtcy5yZW5kZXJTbGlkZS5jYWxsKHN3aXBlciwgc2xpZGUsIGluZGV4KSkgOiAkKGA8ZGl2IGNsYXNzPVwiJHtzd2lwZXIucGFyYW1zLnNsaWRlQ2xhc3N9XCIgZGF0YS1zd2lwZXItc2xpZGUtaW5kZXg9XCIke2luZGV4fVwiPiR7c2xpZGV9PC9kaXY+YCk7XG4gICAgaWYgKCEkc2xpZGVFbC5hdHRyKCdkYXRhLXN3aXBlci1zbGlkZS1pbmRleCcpKSAkc2xpZGVFbC5hdHRyKCdkYXRhLXN3aXBlci1zbGlkZS1pbmRleCcsIGluZGV4KTtcbiAgICBpZiAocGFyYW1zLmNhY2hlKSBzd2lwZXIudmlydHVhbC5jYWNoZVtpbmRleF0gPSAkc2xpZGVFbDtcbiAgICByZXR1cm4gJHNsaWRlRWw7XG4gIH1cblxuICBmdW5jdGlvbiB1cGRhdGUoZm9yY2UpIHtcbiAgICBjb25zdCB7XG4gICAgICBzbGlkZXNQZXJWaWV3LFxuICAgICAgc2xpZGVzUGVyR3JvdXAsXG4gICAgICBjZW50ZXJlZFNsaWRlc1xuICAgIH0gPSBzd2lwZXIucGFyYW1zO1xuICAgIGNvbnN0IHtcbiAgICAgIGFkZFNsaWRlc0JlZm9yZSxcbiAgICAgIGFkZFNsaWRlc0FmdGVyXG4gICAgfSA9IHN3aXBlci5wYXJhbXMudmlydHVhbDtcbiAgICBjb25zdCB7XG4gICAgICBmcm9tOiBwcmV2aW91c0Zyb20sXG4gICAgICB0bzogcHJldmlvdXNUbyxcbiAgICAgIHNsaWRlcyxcbiAgICAgIHNsaWRlc0dyaWQ6IHByZXZpb3VzU2xpZGVzR3JpZCxcbiAgICAgIG9mZnNldDogcHJldmlvdXNPZmZzZXRcbiAgICB9ID0gc3dpcGVyLnZpcnR1YWw7XG5cbiAgICBpZiAoIXN3aXBlci5wYXJhbXMuY3NzTW9kZSkge1xuICAgICAgc3dpcGVyLnVwZGF0ZUFjdGl2ZUluZGV4KCk7XG4gICAgfVxuXG4gICAgY29uc3QgYWN0aXZlSW5kZXggPSBzd2lwZXIuYWN0aXZlSW5kZXggfHwgMDtcbiAgICBsZXQgb2Zmc2V0UHJvcDtcbiAgICBpZiAoc3dpcGVyLnJ0bFRyYW5zbGF0ZSkgb2Zmc2V0UHJvcCA9ICdyaWdodCc7ZWxzZSBvZmZzZXRQcm9wID0gc3dpcGVyLmlzSG9yaXpvbnRhbCgpID8gJ2xlZnQnIDogJ3RvcCc7XG4gICAgbGV0IHNsaWRlc0FmdGVyO1xuICAgIGxldCBzbGlkZXNCZWZvcmU7XG5cbiAgICBpZiAoY2VudGVyZWRTbGlkZXMpIHtcbiAgICAgIHNsaWRlc0FmdGVyID0gTWF0aC5mbG9vcihzbGlkZXNQZXJWaWV3IC8gMikgKyBzbGlkZXNQZXJHcm91cCArIGFkZFNsaWRlc0FmdGVyO1xuICAgICAgc2xpZGVzQmVmb3JlID0gTWF0aC5mbG9vcihzbGlkZXNQZXJWaWV3IC8gMikgKyBzbGlkZXNQZXJHcm91cCArIGFkZFNsaWRlc0JlZm9yZTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2xpZGVzQWZ0ZXIgPSBzbGlkZXNQZXJWaWV3ICsgKHNsaWRlc1Blckdyb3VwIC0gMSkgKyBhZGRTbGlkZXNBZnRlcjtcbiAgICAgIHNsaWRlc0JlZm9yZSA9IHNsaWRlc1Blckdyb3VwICsgYWRkU2xpZGVzQmVmb3JlO1xuICAgIH1cblxuICAgIGNvbnN0IGZyb20gPSBNYXRoLm1heCgoYWN0aXZlSW5kZXggfHwgMCkgLSBzbGlkZXNCZWZvcmUsIDApO1xuICAgIGNvbnN0IHRvID0gTWF0aC5taW4oKGFjdGl2ZUluZGV4IHx8IDApICsgc2xpZGVzQWZ0ZXIsIHNsaWRlcy5sZW5ndGggLSAxKTtcbiAgICBjb25zdCBvZmZzZXQgPSAoc3dpcGVyLnNsaWRlc0dyaWRbZnJvbV0gfHwgMCkgLSAoc3dpcGVyLnNsaWRlc0dyaWRbMF0gfHwgMCk7XG4gICAgT2JqZWN0LmFzc2lnbihzd2lwZXIudmlydHVhbCwge1xuICAgICAgZnJvbSxcbiAgICAgIHRvLFxuICAgICAgb2Zmc2V0LFxuICAgICAgc2xpZGVzR3JpZDogc3dpcGVyLnNsaWRlc0dyaWRcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIG9uUmVuZGVyZWQoKSB7XG4gICAgICBzd2lwZXIudXBkYXRlU2xpZGVzKCk7XG4gICAgICBzd2lwZXIudXBkYXRlUHJvZ3Jlc3MoKTtcbiAgICAgIHN3aXBlci51cGRhdGVTbGlkZXNDbGFzc2VzKCk7XG5cbiAgICAgIGlmIChzd2lwZXIubGF6eSAmJiBzd2lwZXIucGFyYW1zLmxhenkuZW5hYmxlZCkge1xuICAgICAgICBzd2lwZXIubGF6eS5sb2FkKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHByZXZpb3VzRnJvbSA9PT0gZnJvbSAmJiBwcmV2aW91c1RvID09PSB0byAmJiAhZm9yY2UpIHtcbiAgICAgIGlmIChzd2lwZXIuc2xpZGVzR3JpZCAhPT0gcHJldmlvdXNTbGlkZXNHcmlkICYmIG9mZnNldCAhPT0gcHJldmlvdXNPZmZzZXQpIHtcbiAgICAgICAgc3dpcGVyLnNsaWRlcy5jc3Mob2Zmc2V0UHJvcCwgYCR7b2Zmc2V0fXB4YCk7XG4gICAgICB9XG5cbiAgICAgIHN3aXBlci51cGRhdGVQcm9ncmVzcygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChzd2lwZXIucGFyYW1zLnZpcnR1YWwucmVuZGVyRXh0ZXJuYWwpIHtcbiAgICAgIHN3aXBlci5wYXJhbXMudmlydHVhbC5yZW5kZXJFeHRlcm5hbC5jYWxsKHN3aXBlciwge1xuICAgICAgICBvZmZzZXQsXG4gICAgICAgIGZyb20sXG4gICAgICAgIHRvLFxuICAgICAgICBzbGlkZXM6IGZ1bmN0aW9uIGdldFNsaWRlcygpIHtcbiAgICAgICAgICBjb25zdCBzbGlkZXNUb1JlbmRlciA9IFtdO1xuXG4gICAgICAgICAgZm9yIChsZXQgaSA9IGZyb207IGkgPD0gdG87IGkgKz0gMSkge1xuICAgICAgICAgICAgc2xpZGVzVG9SZW5kZXIucHVzaChzbGlkZXNbaV0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBzbGlkZXNUb1JlbmRlcjtcbiAgICAgICAgfSgpXG4gICAgICB9KTtcblxuICAgICAgaWYgKHN3aXBlci5wYXJhbXMudmlydHVhbC5yZW5kZXJFeHRlcm5hbFVwZGF0ZSkge1xuICAgICAgICBvblJlbmRlcmVkKCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwcmVwZW5kSW5kZXhlcyA9IFtdO1xuICAgIGNvbnN0IGFwcGVuZEluZGV4ZXMgPSBbXTtcblxuICAgIGlmIChmb3JjZSkge1xuICAgICAgc3dpcGVyLiR3cmFwcGVyRWwuZmluZChgLiR7c3dpcGVyLnBhcmFtcy5zbGlkZUNsYXNzfWApLnJlbW92ZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGxldCBpID0gcHJldmlvdXNGcm9tOyBpIDw9IHByZXZpb3VzVG87IGkgKz0gMSkge1xuICAgICAgICBpZiAoaSA8IGZyb20gfHwgaSA+IHRvKSB7XG4gICAgICAgICAgc3dpcGVyLiR3cmFwcGVyRWwuZmluZChgLiR7c3dpcGVyLnBhcmFtcy5zbGlkZUNsYXNzfVtkYXRhLXN3aXBlci1zbGlkZS1pbmRleD1cIiR7aX1cIl1gKS5yZW1vdmUoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2xpZGVzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICBpZiAoaSA+PSBmcm9tICYmIGkgPD0gdG8pIHtcbiAgICAgICAgaWYgKHR5cGVvZiBwcmV2aW91c1RvID09PSAndW5kZWZpbmVkJyB8fCBmb3JjZSkge1xuICAgICAgICAgIGFwcGVuZEluZGV4ZXMucHVzaChpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoaSA+IHByZXZpb3VzVG8pIGFwcGVuZEluZGV4ZXMucHVzaChpKTtcbiAgICAgICAgICBpZiAoaSA8IHByZXZpb3VzRnJvbSkgcHJlcGVuZEluZGV4ZXMucHVzaChpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGFwcGVuZEluZGV4ZXMuZm9yRWFjaChpbmRleCA9PiB7XG4gICAgICBzd2lwZXIuJHdyYXBwZXJFbC5hcHBlbmQocmVuZGVyU2xpZGUoc2xpZGVzW2luZGV4XSwgaW5kZXgpKTtcbiAgICB9KTtcbiAgICBwcmVwZW5kSW5kZXhlcy5zb3J0KChhLCBiKSA9PiBiIC0gYSkuZm9yRWFjaChpbmRleCA9PiB7XG4gICAgICBzd2lwZXIuJHdyYXBwZXJFbC5wcmVwZW5kKHJlbmRlclNsaWRlKHNsaWRlc1tpbmRleF0sIGluZGV4KSk7XG4gICAgfSk7XG4gICAgc3dpcGVyLiR3cmFwcGVyRWwuY2hpbGRyZW4oJy5zd2lwZXItc2xpZGUnKS5jc3Mob2Zmc2V0UHJvcCwgYCR7b2Zmc2V0fXB4YCk7XG4gICAgb25SZW5kZXJlZCgpO1xuICB9XG5cbiAgZnVuY3Rpb24gYXBwZW5kU2xpZGUoc2xpZGVzKSB7XG4gICAgaWYgKHR5cGVvZiBzbGlkZXMgPT09ICdvYmplY3QnICYmICdsZW5ndGgnIGluIHNsaWRlcykge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzbGlkZXMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgaWYgKHNsaWRlc1tpXSkgc3dpcGVyLnZpcnR1YWwuc2xpZGVzLnB1c2goc2xpZGVzW2ldKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgc3dpcGVyLnZpcnR1YWwuc2xpZGVzLnB1c2goc2xpZGVzKTtcbiAgICB9XG5cbiAgICB1cGRhdGUodHJ1ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBwcmVwZW5kU2xpZGUoc2xpZGVzKSB7XG4gICAgY29uc3QgYWN0aXZlSW5kZXggPSBzd2lwZXIuYWN0aXZlSW5kZXg7XG4gICAgbGV0IG5ld0FjdGl2ZUluZGV4ID0gYWN0aXZlSW5kZXggKyAxO1xuICAgIGxldCBudW1iZXJPZk5ld1NsaWRlcyA9IDE7XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShzbGlkZXMpKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNsaWRlcy5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgICBpZiAoc2xpZGVzW2ldKSBzd2lwZXIudmlydHVhbC5zbGlkZXMudW5zaGlmdChzbGlkZXNbaV0pO1xuICAgICAgfVxuXG4gICAgICBuZXdBY3RpdmVJbmRleCA9IGFjdGl2ZUluZGV4ICsgc2xpZGVzLmxlbmd0aDtcbiAgICAgIG51bWJlck9mTmV3U2xpZGVzID0gc2xpZGVzLmxlbmd0aDtcbiAgICB9IGVsc2Uge1xuICAgICAgc3dpcGVyLnZpcnR1YWwuc2xpZGVzLnVuc2hpZnQoc2xpZGVzKTtcbiAgICB9XG5cbiAgICBpZiAoc3dpcGVyLnBhcmFtcy52aXJ0dWFsLmNhY2hlKSB7XG4gICAgICBjb25zdCBjYWNoZSA9IHN3aXBlci52aXJ0dWFsLmNhY2hlO1xuICAgICAgY29uc3QgbmV3Q2FjaGUgPSB7fTtcbiAgICAgIE9iamVjdC5rZXlzKGNhY2hlKS5mb3JFYWNoKGNhY2hlZEluZGV4ID0+IHtcbiAgICAgICAgY29uc3QgJGNhY2hlZEVsID0gY2FjaGVbY2FjaGVkSW5kZXhdO1xuICAgICAgICBjb25zdCBjYWNoZWRFbEluZGV4ID0gJGNhY2hlZEVsLmF0dHIoJ2RhdGEtc3dpcGVyLXNsaWRlLWluZGV4Jyk7XG5cbiAgICAgICAgaWYgKGNhY2hlZEVsSW5kZXgpIHtcbiAgICAgICAgICAkY2FjaGVkRWwuYXR0cignZGF0YS1zd2lwZXItc2xpZGUtaW5kZXgnLCBwYXJzZUludChjYWNoZWRFbEluZGV4LCAxMCkgKyBudW1iZXJPZk5ld1NsaWRlcyk7XG4gICAgICAgIH1cblxuICAgICAgICBuZXdDYWNoZVtwYXJzZUludChjYWNoZWRJbmRleCwgMTApICsgbnVtYmVyT2ZOZXdTbGlkZXNdID0gJGNhY2hlZEVsO1xuICAgICAgfSk7XG4gICAgICBzd2lwZXIudmlydHVhbC5jYWNoZSA9IG5ld0NhY2hlO1xuICAgIH1cblxuICAgIHVwZGF0ZSh0cnVlKTtcbiAgICBzd2lwZXIuc2xpZGVUbyhuZXdBY3RpdmVJbmRleCwgMCk7XG4gIH1cblxuICBmdW5jdGlvbiByZW1vdmVTbGlkZShzbGlkZXNJbmRleGVzKSB7XG4gICAgaWYgKHR5cGVvZiBzbGlkZXNJbmRleGVzID09PSAndW5kZWZpbmVkJyB8fCBzbGlkZXNJbmRleGVzID09PSBudWxsKSByZXR1cm47XG4gICAgbGV0IGFjdGl2ZUluZGV4ID0gc3dpcGVyLmFjdGl2ZUluZGV4O1xuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoc2xpZGVzSW5kZXhlcykpIHtcbiAgICAgIGZvciAobGV0IGkgPSBzbGlkZXNJbmRleGVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaSAtPSAxKSB7XG4gICAgICAgIHN3aXBlci52aXJ0dWFsLnNsaWRlcy5zcGxpY2Uoc2xpZGVzSW5kZXhlc1tpXSwgMSk7XG5cbiAgICAgICAgaWYgKHN3aXBlci5wYXJhbXMudmlydHVhbC5jYWNoZSkge1xuICAgICAgICAgIGRlbGV0ZSBzd2lwZXIudmlydHVhbC5jYWNoZVtzbGlkZXNJbmRleGVzW2ldXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzbGlkZXNJbmRleGVzW2ldIDwgYWN0aXZlSW5kZXgpIGFjdGl2ZUluZGV4IC09IDE7XG4gICAgICAgIGFjdGl2ZUluZGV4ID0gTWF0aC5tYXgoYWN0aXZlSW5kZXgsIDApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzd2lwZXIudmlydHVhbC5zbGlkZXMuc3BsaWNlKHNsaWRlc0luZGV4ZXMsIDEpO1xuXG4gICAgICBpZiAoc3dpcGVyLnBhcmFtcy52aXJ0dWFsLmNhY2hlKSB7XG4gICAgICAgIGRlbGV0ZSBzd2lwZXIudmlydHVhbC5jYWNoZVtzbGlkZXNJbmRleGVzXTtcbiAgICAgIH1cblxuICAgICAgaWYgKHNsaWRlc0luZGV4ZXMgPCBhY3RpdmVJbmRleCkgYWN0aXZlSW5kZXggLT0gMTtcbiAgICAgIGFjdGl2ZUluZGV4ID0gTWF0aC5tYXgoYWN0aXZlSW5kZXgsIDApO1xuICAgIH1cblxuICAgIHVwZGF0ZSh0cnVlKTtcbiAgICBzd2lwZXIuc2xpZGVUbyhhY3RpdmVJbmRleCwgMCk7XG4gIH1cblxuICBmdW5jdGlvbiByZW1vdmVBbGxTbGlkZXMoKSB7XG4gICAgc3dpcGVyLnZpcnR1YWwuc2xpZGVzID0gW107XG5cbiAgICBpZiAoc3dpcGVyLnBhcmFtcy52aXJ0dWFsLmNhY2hlKSB7XG4gICAgICBzd2lwZXIudmlydHVhbC5jYWNoZSA9IHt9O1xuICAgIH1cblxuICAgIHVwZGF0ZSh0cnVlKTtcbiAgICBzd2lwZXIuc2xpZGVUbygwLCAwKTtcbiAgfVxuXG4gIG9uKCdiZWZvcmVJbml0JywgKCkgPT4ge1xuICAgIGlmICghc3dpcGVyLnBhcmFtcy52aXJ0dWFsLmVuYWJsZWQpIHJldHVybjtcbiAgICBzd2lwZXIudmlydHVhbC5zbGlkZXMgPSBzd2lwZXIucGFyYW1zLnZpcnR1YWwuc2xpZGVzO1xuICAgIHN3aXBlci5jbGFzc05hbWVzLnB1c2goYCR7c3dpcGVyLnBhcmFtcy5jb250YWluZXJNb2RpZmllckNsYXNzfXZpcnR1YWxgKTtcbiAgICBzd2lwZXIucGFyYW1zLndhdGNoU2xpZGVzUHJvZ3Jlc3MgPSB0cnVlO1xuICAgIHN3aXBlci5vcmlnaW5hbFBhcmFtcy53YXRjaFNsaWRlc1Byb2dyZXNzID0gdHJ1ZTtcblxuICAgIGlmICghc3dpcGVyLnBhcmFtcy5pbml0aWFsU2xpZGUpIHtcbiAgICAgIHVwZGF0ZSgpO1xuICAgIH1cbiAgfSk7XG4gIG9uKCdzZXRUcmFuc2xhdGUnLCAoKSA9PiB7XG4gICAgaWYgKCFzd2lwZXIucGFyYW1zLnZpcnR1YWwuZW5hYmxlZCkgcmV0dXJuO1xuXG4gICAgaWYgKHN3aXBlci5wYXJhbXMuY3NzTW9kZSAmJiAhc3dpcGVyLl9pbW1lZGlhdGVWaXJ0dWFsKSB7XG4gICAgICBjbGVhclRpbWVvdXQoY3NzTW9kZVRpbWVvdXQpO1xuICAgICAgY3NzTW9kZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdXBkYXRlKCk7XG4gICAgICB9LCAxMDApO1xuICAgIH0gZWxzZSB7XG4gICAgICB1cGRhdGUoKTtcbiAgICB9XG4gIH0pO1xuICBvbignaW5pdCB1cGRhdGUgcmVzaXplJywgKCkgPT4ge1xuICAgIGlmICghc3dpcGVyLnBhcmFtcy52aXJ0dWFsLmVuYWJsZWQpIHJldHVybjtcblxuICAgIGlmIChzd2lwZXIucGFyYW1zLmNzc01vZGUpIHtcbiAgICAgIHNldENTU1Byb3BlcnR5KHN3aXBlci53cmFwcGVyRWwsICctLXN3aXBlci12aXJ0dWFsLXNpemUnLCBgJHtzd2lwZXIudmlydHVhbFNpemV9cHhgKTtcbiAgICB9XG4gIH0pO1xuICBPYmplY3QuYXNzaWduKHN3aXBlci52aXJ0dWFsLCB7XG4gICAgYXBwZW5kU2xpZGUsXG4gICAgcHJlcGVuZFNsaWRlLFxuICAgIHJlbW92ZVNsaWRlLFxuICAgIHJlbW92ZUFsbFNsaWRlcyxcbiAgICB1cGRhdGVcbiAgfSk7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/swiper/modules/virtual/virtual.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/modules/zoom/zoom.js": +/*!**************************************************!*\ + !*** ./node_modules/swiper/modules/zoom/zoom.js ***! + \**************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ Zoom; }\n/* harmony export */ });\n/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ \"./node_modules/ssr-window/ssr-window.esm.js\");\n/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ \"./node_modules/swiper/shared/dom.js\");\n/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/utils.js */ \"./node_modules/swiper/shared/utils.js\");\n\n\n\nfunction Zoom({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();\n extendParams({\n zoom: {\n enabled: false,\n maxRatio: 3,\n minRatio: 1,\n toggle: true,\n containerClass: 'swiper-zoom-container',\n zoomedSlideClass: 'swiper-slide-zoomed'\n }\n });\n swiper.zoom = {\n enabled: false\n };\n let currentScale = 1;\n let isScaling = false;\n let gesturesEnabled;\n let fakeGestureTouched;\n let fakeGestureMoved;\n const gesture = {\n $slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n $imageEl: undefined,\n $imageWrapEl: undefined,\n maxRatio: 3\n };\n const image = {\n isTouched: undefined,\n isMoved: undefined,\n currentX: undefined,\n currentY: undefined,\n minX: undefined,\n minY: undefined,\n maxX: undefined,\n maxY: undefined,\n width: undefined,\n height: undefined,\n startX: undefined,\n startY: undefined,\n touchesStart: {},\n touchesCurrent: {}\n };\n const velocity = {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined\n };\n let scale = 1;\n Object.defineProperty(swiper.zoom, 'scale', {\n get() {\n return scale;\n },\n\n set(value) {\n if (scale !== value) {\n const imageEl = gesture.$imageEl ? gesture.$imageEl[0] : undefined;\n const slideEl = gesture.$slideEl ? gesture.$slideEl[0] : undefined;\n emit('zoomChange', value, imageEl, slideEl);\n }\n\n scale = value;\n }\n\n });\n\n function getDistanceBetweenTouches(e) {\n if (e.targetTouches.length < 2) return 1;\n const x1 = e.targetTouches[0].pageX;\n const y1 = e.targetTouches[0].pageY;\n const x2 = e.targetTouches[1].pageX;\n const y2 = e.targetTouches[1].pageY;\n const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2);\n return distance;\n } // Events\n\n\n function onGestureStart(e) {\n const support = swiper.support;\n const params = swiper.params.zoom;\n fakeGestureTouched = false;\n fakeGestureMoved = false;\n\n if (!support.gestures) {\n if (e.type !== 'touchstart' || e.type === 'touchstart' && e.targetTouches.length < 2) {\n return;\n }\n\n fakeGestureTouched = true;\n gesture.scaleStart = getDistanceBetweenTouches(e);\n }\n\n if (!gesture.$slideEl || !gesture.$slideEl.length) {\n gesture.$slideEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(e.target).closest(`.${swiper.params.slideClass}`);\n if (gesture.$slideEl.length === 0) gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n gesture.$imageEl = gesture.$slideEl.find(`.${params.containerClass}`).eq(0).find('picture, img, svg, canvas, .swiper-zoom-target').eq(0);\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n\n if (gesture.$imageWrapEl.length === 0) {\n gesture.$imageEl = undefined;\n return;\n }\n }\n\n if (gesture.$imageEl) {\n gesture.$imageEl.transition(0);\n }\n\n isScaling = true;\n }\n\n function onGestureChange(e) {\n const support = swiper.support;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n\n if (!support.gestures) {\n if (e.type !== 'touchmove' || e.type === 'touchmove' && e.targetTouches.length < 2) {\n return;\n }\n\n fakeGestureMoved = true;\n gesture.scaleMove = getDistanceBetweenTouches(e);\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) {\n if (e.type === 'gesturechange') onGestureStart(e);\n return;\n }\n\n if (support.gestures) {\n zoom.scale = e.scale * currentScale;\n } else {\n zoom.scale = gesture.scaleMove / gesture.scaleStart * currentScale;\n }\n\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5;\n }\n\n if (zoom.scale < params.minRatio) {\n zoom.scale = params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5;\n }\n\n gesture.$imageEl.transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n }\n\n function onGestureEnd(e) {\n const device = swiper.device;\n const support = swiper.support;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n\n if (!support.gestures) {\n if (!fakeGestureTouched || !fakeGestureMoved) {\n return;\n }\n\n if (e.type !== 'touchend' || e.type === 'touchend' && e.changedTouches.length < 2 && !device.android) {\n return;\n }\n\n fakeGestureTouched = false;\n fakeGestureMoved = false;\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n gesture.$imageEl.transition(swiper.params.speed).transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n currentScale = zoom.scale;\n isScaling = false;\n if (zoom.scale === 1) gesture.$slideEl = undefined;\n }\n\n function onTouchStart(e) {\n const device = swiper.device;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (image.isTouched) return;\n if (device.android && e.cancelable) e.preventDefault();\n image.isTouched = true;\n image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n }\n\n function onTouchMove(e) {\n const zoom = swiper.zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n swiper.allowClick = false;\n if (!image.isTouched || !gesture.$slideEl) return;\n\n if (!image.isMoved) {\n image.width = gesture.$imageEl[0].offsetWidth;\n image.height = gesture.$imageEl[0].offsetHeight;\n image.startX = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.getTranslate)(gesture.$imageWrapEl[0], 'x') || 0;\n image.startY = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.getTranslate)(gesture.$imageWrapEl[0], 'y') || 0;\n gesture.slideWidth = gesture.$slideEl[0].offsetWidth;\n gesture.slideHeight = gesture.$slideEl[0].offsetHeight;\n gesture.$imageWrapEl.transition(0);\n } // Define if we need image drag\n\n\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n\n if (!image.isMoved && !isScaling) {\n if (swiper.isHorizontal() && (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x || Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)) {\n image.isTouched = false;\n return;\n }\n\n if (!swiper.isHorizontal() && (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y || Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)) {\n image.isTouched = false;\n return;\n }\n }\n\n if (e.cancelable) {\n e.preventDefault();\n }\n\n e.stopPropagation();\n image.isMoved = true;\n image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX;\n image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY;\n\n if (image.currentX < image.minX) {\n image.currentX = image.minX + 1 - (image.minX - image.currentX + 1) ** 0.8;\n }\n\n if (image.currentX > image.maxX) {\n image.currentX = image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8;\n }\n\n if (image.currentY < image.minY) {\n image.currentY = image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8;\n }\n\n if (image.currentY > image.maxY) {\n image.currentY = image.maxY - 1 + (image.currentY - image.maxY + 1) ** 0.8;\n } // Velocity\n\n\n if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\n if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\n if (!velocity.prevTime) velocity.prevTime = Date.now();\n velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\n velocity.prevPositionX = image.touchesCurrent.x;\n velocity.prevPositionY = image.touchesCurrent.y;\n velocity.prevTime = Date.now();\n gesture.$imageWrapEl.transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\n }\n\n function onTouchEnd() {\n const zoom = swiper.zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n\n image.isTouched = false;\n image.isMoved = false;\n let momentumDurationX = 300;\n let momentumDurationY = 300;\n const momentumDistanceX = velocity.x * momentumDurationX;\n const newPositionX = image.currentX + momentumDistanceX;\n const momentumDistanceY = velocity.y * momentumDurationY;\n const newPositionY = image.currentY + momentumDistanceY; // Fix duration\n\n if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\n if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\n const momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n image.currentX = newPositionX;\n image.currentY = newPositionY; // Define if we need image drag\n\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n gesture.$imageWrapEl.transition(momentumDuration).transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\n }\n\n function onTransitionEnd() {\n const zoom = swiper.zoom;\n\n if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) {\n if (gesture.$imageEl) {\n gesture.$imageEl.transform('translate3d(0,0,0) scale(1)');\n }\n\n if (gesture.$imageWrapEl) {\n gesture.$imageWrapEl.transform('translate3d(0,0,0)');\n }\n\n zoom.scale = 1;\n currentScale = 1;\n gesture.$slideEl = undefined;\n gesture.$imageEl = undefined;\n gesture.$imageWrapEl = undefined;\n }\n }\n\n function zoomIn(e) {\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n\n if (!gesture.$slideEl) {\n if (e && e.target) {\n gesture.$slideEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(e.target).closest(`.${swiper.params.slideClass}`);\n }\n\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(`.${swiper.params.slideActiveClass}`);\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n }\n\n gesture.$imageEl = gesture.$slideEl.find(`.${params.containerClass}`).eq(0).find('picture, img, svg, canvas, .swiper-zoom-target').eq(0);\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0 || !gesture.$imageWrapEl || gesture.$imageWrapEl.length === 0) return;\n\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.touchAction = 'none';\n }\n\n gesture.$slideEl.addClass(`${params.zoomedSlideClass}`);\n let touchX;\n let touchY;\n let offsetX;\n let offsetY;\n let diffX;\n let diffY;\n let translateX;\n let translateY;\n let imageWidth;\n let imageHeight;\n let scaledWidth;\n let scaledHeight;\n let translateMinX;\n let translateMinY;\n let translateMaxX;\n let translateMaxY;\n let slideWidth;\n let slideHeight;\n\n if (typeof image.touchesStart.x === 'undefined' && e) {\n touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX;\n touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY;\n } else {\n touchX = image.touchesStart.x;\n touchY = image.touchesStart.y;\n }\n\n zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n\n if (e) {\n slideWidth = gesture.$slideEl[0].offsetWidth;\n slideHeight = gesture.$slideEl[0].offsetHeight;\n offsetX = gesture.$slideEl.offset().left + window.scrollX;\n offsetY = gesture.$slideEl.offset().top + window.scrollY;\n diffX = offsetX + slideWidth / 2 - touchX;\n diffY = offsetY + slideHeight / 2 - touchY;\n imageWidth = gesture.$imageEl[0].offsetWidth;\n imageHeight = gesture.$imageEl[0].offsetHeight;\n scaledWidth = imageWidth * zoom.scale;\n scaledHeight = imageHeight * zoom.scale;\n translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);\n translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);\n translateMaxX = -translateMinX;\n translateMaxY = -translateMinY;\n translateX = diffX * zoom.scale;\n translateY = diffY * zoom.scale;\n\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n } else {\n translateX = 0;\n translateY = 0;\n }\n\n gesture.$imageWrapEl.transition(300).transform(`translate3d(${translateX}px, ${translateY}px,0)`);\n gesture.$imageEl.transition(300).transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n }\n\n function zoomOut() {\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(`.${swiper.params.slideActiveClass}`);\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n\n gesture.$imageEl = gesture.$slideEl.find(`.${params.containerClass}`).eq(0).find('picture, img, svg, canvas, .swiper-zoom-target').eq(0);\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0 || !gesture.$imageWrapEl || gesture.$imageWrapEl.length === 0) return;\n\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.style.touchAction = '';\n }\n\n zoom.scale = 1;\n currentScale = 1;\n gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)');\n gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)');\n gesture.$slideEl.removeClass(`${params.zoomedSlideClass}`);\n gesture.$slideEl = undefined;\n } // Toggle Zoom\n\n\n function zoomToggle(e) {\n const zoom = swiper.zoom;\n\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoomOut();\n } else {\n // Zoom In\n zoomIn(e);\n }\n }\n\n function getListeners() {\n const support = swiper.support;\n const passiveListener = swiper.touchEvents.start === 'touchstart' && support.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n const activeListenerWithCapture = support.passiveListener ? {\n passive: false,\n capture: true\n } : true;\n return {\n passiveListener,\n activeListenerWithCapture\n };\n }\n\n function getSlideSelector() {\n return `.${swiper.params.slideClass}`;\n }\n\n function toggleGestures(method) {\n const {\n passiveListener\n } = getListeners();\n const slideSelector = getSlideSelector();\n swiper.$wrapperEl[method]('gesturestart', slideSelector, onGestureStart, passiveListener);\n swiper.$wrapperEl[method]('gesturechange', slideSelector, onGestureChange, passiveListener);\n swiper.$wrapperEl[method]('gestureend', slideSelector, onGestureEnd, passiveListener);\n }\n\n function enableGestures() {\n if (gesturesEnabled) return;\n gesturesEnabled = true;\n toggleGestures('on');\n }\n\n function disableGestures() {\n if (!gesturesEnabled) return;\n gesturesEnabled = false;\n toggleGestures('off');\n } // Attach/Detach Events\n\n\n function enable() {\n const zoom = swiper.zoom;\n if (zoom.enabled) return;\n zoom.enabled = true;\n const support = swiper.support;\n const {\n passiveListener,\n activeListenerWithCapture\n } = getListeners();\n const slideSelector = getSlideSelector(); // Scale image\n\n if (support.gestures) {\n swiper.$wrapperEl.on(swiper.touchEvents.start, enableGestures, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.end, disableGestures, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.on(swiper.touchEvents.start, slideSelector, onGestureStart, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.move, slideSelector, onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.on(swiper.touchEvents.end, slideSelector, onGestureEnd, passiveListener);\n\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.on(swiper.touchEvents.cancel, slideSelector, onGestureEnd, passiveListener);\n }\n } // Move image\n\n\n swiper.$wrapperEl.on(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, onTouchMove, activeListenerWithCapture);\n }\n\n function disable() {\n const zoom = swiper.zoom;\n if (!zoom.enabled) return;\n const support = swiper.support;\n zoom.enabled = false;\n const {\n passiveListener,\n activeListenerWithCapture\n } = getListeners();\n const slideSelector = getSlideSelector(); // Scale image\n\n if (support.gestures) {\n swiper.$wrapperEl.off(swiper.touchEvents.start, enableGestures, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.end, disableGestures, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.off(swiper.touchEvents.start, slideSelector, onGestureStart, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.move, slideSelector, onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.off(swiper.touchEvents.end, slideSelector, onGestureEnd, passiveListener);\n\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.off(swiper.touchEvents.cancel, slideSelector, onGestureEnd, passiveListener);\n }\n } // Move image\n\n\n swiper.$wrapperEl.off(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, onTouchMove, activeListenerWithCapture);\n }\n\n on('init', () => {\n if (swiper.params.zoom.enabled) {\n enable();\n }\n });\n on('destroy', () => {\n disable();\n });\n on('touchStart', (_s, e) => {\n if (!swiper.zoom.enabled) return;\n onTouchStart(e);\n });\n on('touchEnd', (_s, e) => {\n if (!swiper.zoom.enabled) return;\n onTouchEnd(e);\n });\n on('doubleTap', (_s, e) => {\n if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n zoomToggle(e);\n }\n });\n on('transitionEnd', () => {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n onTransitionEnd();\n }\n });\n on('slideChange', () => {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\n onTransitionEnd();\n }\n });\n Object.assign(swiper.zoom, {\n enable,\n disable,\n in: zoomIn,\n out: zoomOut,\n toggle: zoomToggle\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMvem9vbS96b29tLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBdUM7QUFDSDtBQUNpQjtBQUN0QztBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELGlCQUFpQixxREFBUztBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSx5QkFBeUIsMERBQUMsdUJBQXVCLHlCQUF5QjtBQUMxRTtBQUNBLG1EQUFtRCxzQkFBc0I7QUFDekUseURBQXlELHNCQUFzQjtBQUMvRTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7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QUFFQTtBQUNBLGVBQWUseUJBQXlCO0FBQ3hDOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOLDhDQUE4Qzs7QUFFOUM7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNOzs7QUFHTixzREFBc0Qsa0NBQWtDO0FBQ3hGOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ04sOENBQThDOztBQUU5QztBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07OztBQUdOLHVEQUF1RCxrQ0FBa0M7QUFDekY7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc3dpcGVyL21vZHVsZXMvem9vbS96b29tLmpzP2NiOGQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0V2luZG93IH0gZnJvbSAnc3NyLXdpbmRvdyc7XG5pbXBvcnQgJCBmcm9tICcuLi8uLi9zaGFyZWQvZG9tLmpzJztcbmltcG9ydCB7IGdldFRyYW5zbGF0ZSB9IGZyb20gJy4uLy4uL3NoYXJlZC91dGlscy5qcyc7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBab29tKHtcbiAgc3dpcGVyLFxuICBleHRlbmRQYXJhbXMsXG4gIG9uLFxuICBlbWl0XG59KSB7XG4gIGNvbnN0IHdpbmRvdyA9IGdldFdpbmRvdygpO1xuICBleHRlbmRQYXJhbXMoe1xuICAgIHpvb206IHtcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgbWF4UmF0aW86IDMsXG4gICAgICBtaW5SYXRpbzogMSxcbiAgICAgIHRvZ2dsZTogdHJ1ZSxcbiAgICAgIGNvbnRhaW5lckNsYXNzOiAnc3dpcGVyLXpvb20tY29udGFpbmVyJyxcbiAgICAgIHpvb21lZFNsaWRlQ2xhc3M6ICdzd2lwZXItc2xpZGUtem9vbWVkJ1xuICAgIH1cbiAgfSk7XG4gIHN3aXBlci56b29tID0ge1xuICAgIGVuYWJsZWQ6IGZhbHNlXG4gIH07XG4gIGxldCBjdXJyZW50U2NhbGUgPSAxO1xuICBsZXQgaXNTY2FsaW5nID0gZmFsc2U7XG4gIGxldCBnZXN0dXJlc0VuYWJsZWQ7XG4gIGxldCBmYWtlR2VzdHVyZVRvdWNoZWQ7XG4gIGxldCBmYWtlR2VzdHVyZU1vdmVkO1xuICBjb25zdCBnZXN0dXJlID0ge1xuICAgICRzbGlkZUVsOiB1bmRlZmluZWQsXG4gICAgc2xpZGVXaWR0aDogdW5kZWZpbmVkLFxuICAgIHNsaWRlSGVpZ2h0OiB1bmRlZmluZWQsXG4gICAgJGltYWdlRWw6IHVuZGVmaW5lZCxcbiAgICAkaW1hZ2VXcmFwRWw6IHVuZGVmaW5lZCxcbiAgICBtYXhSYXRpbzogM1xuICB9O1xuICBjb25zdCBpbWFnZSA9IHtcbiAgICBpc1RvdWNoZWQ6IHVuZGVmaW5lZCxcbiAgICBpc01vdmVkOiB1bmRlZmluZWQsXG4gICAgY3VycmVudFg6IHVuZGVmaW5lZCxcbiAgICBjdXJyZW50WTogdW5kZWZpbmVkLFxuICAgIG1pblg6IHVuZGVmaW5lZCxcbiAgICBtaW5ZOiB1bmRlZmluZWQsXG4gICAgbWF4WDogdW5kZWZpbmVkLFxuICAgIG1heFk6IHVuZGVmaW5lZCxcbiAgICB3aWR0aDogdW5kZWZpbmVkLFxuICAgIGhlaWdodDogdW5kZWZpbmVkLFxuICAgIHN0YXJ0WDogdW5kZWZpbmVkLFxuICAgIHN0YXJ0WTogdW5kZWZpbmVkLFxuICAgIHRvdWNoZXNTdGFydDoge30sXG4gICAgdG91Y2hlc0N1cnJlbnQ6IHt9XG4gIH07XG4gIGNvbnN0IHZlbG9jaXR5ID0ge1xuICAgIHg6IHVuZGVmaW5lZCxcbiAgICB5OiB1bmRlZmluZWQsXG4gICAgcHJldlBvc2l0aW9uWDogdW5kZWZpbmVkLFxuICAgIHByZXZQb3NpdGlvblk6IHVuZGVmaW5lZCxcbiAgICBwcmV2VGltZTogdW5kZWZpbmVkXG4gIH07XG4gIGxldCBzY2FsZSA9IDE7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzd2lwZXIuem9vbSwgJ3NjYWxlJywge1xuICAgIGdldCgpIHtcbiAgICAgIHJldHVybiBzY2FsZTtcbiAgICB9LFxuXG4gICAgc2V0KHZhbHVlKSB7XG4gICAgICBpZiAoc2NhbGUgIT09IHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IGltYWdlRWwgPSBnZXN0dXJlLiRpbWFnZUVsID8gZ2VzdHVyZS4kaW1hZ2VFbFswXSA6IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3Qgc2xpZGVFbCA9IGdlc3R1cmUuJHNsaWRlRWwgPyBnZXN0dXJlLiRzbGlkZUVsWzBdIDogdW5kZWZpbmVkO1xuICAgICAgICBlbWl0KCd6b29tQ2hhbmdlJywgdmFsdWUsIGltYWdlRWwsIHNsaWRlRWwpO1xuICAgICAgfVxuXG4gICAgICBzY2FsZSA9IHZhbHVlO1xuICAgIH1cblxuICB9KTtcblxuICBmdW5jdGlvbiBnZXREaXN0YW5jZUJldHdlZW5Ub3VjaGVzKGUpIHtcbiAgICBpZiAoZS50YXJnZXRUb3VjaGVzLmxlbmd0aCA8IDIpIHJldHVybiAxO1xuICAgIGNvbnN0IHgxID0gZS50YXJnZXRUb3VjaGVzWzBdLnBhZ2VYO1xuICAgIGNvbnN0IHkxID0gZS50YXJnZXRUb3VjaGVzWzBdLnBhZ2VZO1xuICAgIGNvbnN0IHgyID0gZS50YXJnZXRUb3VjaGVzWzFdLnBhZ2VYO1xuICAgIGNvbnN0IHkyID0gZS50YXJnZXRUb3VjaGVzWzFdLnBhZ2VZO1xuICAgIGNvbnN0IGRpc3RhbmNlID0gTWF0aC5zcXJ0KCh4MiAtIHgxKSAqKiAyICsgKHkyIC0geTEpICoqIDIpO1xuICAgIHJldHVybiBkaXN0YW5jZTtcbiAgfSAvLyBFdmVudHNcblxuXG4gIGZ1bmN0aW9uIG9uR2VzdHVyZVN0YXJ0KGUpIHtcbiAgICBjb25zdCBzdXBwb3J0ID0gc3dpcGVyLnN1cHBvcnQ7XG4gICAgY29uc3QgcGFyYW1zID0gc3dpcGVyLnBhcmFtcy56b29tO1xuICAgIGZha2VHZXN0dXJlVG91Y2hlZCA9IGZhbHNlO1xuICAgIGZha2VHZXN0dXJlTW92ZWQgPSBmYWxzZTtcblxuICAgIGlmICghc3VwcG9ydC5nZXN0dXJlcykge1xuICAgICAgaWYgKGUudHlwZSAhPT0gJ3RvdWNoc3RhcnQnIHx8IGUudHlwZSA9PT0gJ3RvdWNoc3RhcnQnICYmIGUudGFyZ2V0VG91Y2hlcy5sZW5ndGggPCAyKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgZmFrZUdlc3R1cmVUb3VjaGVkID0gdHJ1ZTtcbiAgICAgIGdlc3R1cmUuc2NhbGVTdGFydCA9IGdldERpc3RhbmNlQmV0d2VlblRvdWNoZXMoZSk7XG4gICAgfVxuXG4gICAgaWYgKCFnZXN0dXJlLiRzbGlkZUVsIHx8ICFnZXN0dXJlLiRzbGlkZUVsLmxlbmd0aCkge1xuICAgICAgZ2VzdHVyZS4kc2xpZGVFbCA9ICQoZS50YXJnZXQpLmNsb3Nlc3QoYC4ke3N3aXBlci5wYXJhbXMuc2xpZGVDbGFzc31gKTtcbiAgICAgIGlmIChnZXN0dXJlLiRzbGlkZUVsLmxlbmd0aCA9PT0gMCkgZ2VzdHVyZS4kc2xpZGVFbCA9IHN3aXBlci5zbGlkZXMuZXEoc3dpcGVyLmFjdGl2ZUluZGV4KTtcbiAgICAgIGdlc3R1cmUuJGltYWdlRWwgPSBnZXN0dXJlLiRzbGlkZUVsLmZpbmQoYC4ke3BhcmFtcy5jb250YWluZXJDbGFzc31gKS5lcSgwKS5maW5kKCdwaWN0dXJlLCBpbWcsIHN2ZywgY2FudmFzLCAuc3dpcGVyLXpvb20tdGFyZ2V0JykuZXEoMCk7XG4gICAgICBnZXN0dXJlLiRpbWFnZVdyYXBFbCA9IGdlc3R1cmUuJGltYWdlRWwucGFyZW50KGAuJHtwYXJhbXMuY29udGFpbmVyQ2xhc3N9YCk7XG4gICAgICBnZXN0dXJlLm1heFJhdGlvID0gZ2VzdHVyZS4kaW1hZ2VXcmFwRWwuYXR0cignZGF0YS1zd2lwZXItem9vbScpIHx8IHBhcmFtcy5tYXhSYXRpbztcblxuICAgICAgaWYgKGdlc3R1cmUuJGltYWdlV3JhcEVsLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBnZXN0dXJlLiRpbWFnZUVsID0gdW5kZWZpbmVkO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGdlc3R1cmUuJGltYWdlRWwpIHtcbiAgICAgIGdlc3R1cmUuJGltYWdlRWwudHJhbnNpdGlvbigwKTtcbiAgICB9XG5cbiAgICBpc1NjYWxpbmcgPSB0cnVlO1xuICB9XG5cbiAgZnVuY3Rpb24gb25HZXN0dXJlQ2hhbmdlKGUpIHtcbiAgICBjb25zdCBzdXBwb3J0ID0gc3dpcGVyLnN1cHBvcnQ7XG4gICAgY29uc3QgcGFyYW1zID0gc3dpcGVyLnBhcmFtcy56b29tO1xuICAgIGNvbnN0IHpvb20gPSBzd2lwZXIuem9vbTtcblxuICAgIGlmICghc3VwcG9ydC5nZXN0dXJlcykge1xuICAgICAgaWYgKGUudHlwZSAhPT0gJ3RvdWNobW92ZScgfHwgZS50eXBlID09PSAndG91Y2htb3ZlJyAmJiBlLnRhcmdldFRvdWNoZXMubGVuZ3RoIDwgMikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGZha2VHZXN0dXJlTW92ZWQgPSB0cnVlO1xuICAgICAgZ2VzdHVyZS5zY2FsZU1vdmUgPSBnZXREaXN0YW5jZUJldHdlZW5Ub3VjaGVzKGUpO1xuICAgIH1cblxuICAgIGlmICghZ2VzdHVyZS4kaW1hZ2VFbCB8fCBnZXN0dXJlLiRpbWFnZUVsLmxlbmd0aCA9PT0gMCkge1xuICAgICAgaWYgKGUudHlwZSA9PT0gJ2dlc3R1cmVjaGFuZ2UnKSBvbkdlc3R1cmVTdGFydChlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoc3VwcG9ydC5nZXN0dXJlcykge1xuICAgICAgem9vbS5zY2FsZSA9IGUuc2NhbGUgKiBjdXJyZW50U2NhbGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHpvb20uc2NhbGUgPSBnZXN0dXJlLnNjYWxlTW92ZSAvIGdlc3R1cmUuc2NhbGVTdGFydCAqIGN1cnJlbnRTY2FsZTtcbiAgICB9XG5cbiAgICBpZiAoem9vbS5zY2FsZSA+IGdlc3R1cmUubWF4UmF0aW8pIHtcbiAgICAgIHpvb20uc2NhbGUgPSBnZXN0dXJlLm1heFJhdGlvIC0gMSArICh6b29tLnNjYWxlIC0gZ2VzdHVyZS5tYXhSYXRpbyArIDEpICoqIDAuNTtcbiAgICB9XG5cbiAgICBpZiAoem9vbS5zY2FsZSA8IHBhcmFtcy5taW5SYXRpbykge1xuICAgICAgem9vbS5zY2FsZSA9IHBhcmFtcy5taW5SYXRpbyArIDEgLSAocGFyYW1zLm1pblJhdGlvIC0gem9vbS5zY2FsZSArIDEpICoqIDAuNTtcbiAgICB9XG5cbiAgICBnZXN0dXJlLiRpbWFnZUVsLnRyYW5zZm9ybShgdHJhbnNsYXRlM2QoMCwwLDApIHNjYWxlKCR7em9vbS5zY2FsZX0pYCk7XG4gIH1cblxuICBmdW5jdGlvbiBvbkdlc3R1cmVFbmQoZSkge1xuICAgIGNvbnN0IGRldmljZSA9IHN3aXBlci5kZXZpY2U7XG4gICAgY29uc3Qgc3VwcG9ydCA9IHN3aXBlci5zdXBwb3J0O1xuICAgIGNvbnN0IHBhcmFtcyA9IHN3aXBlci5wYXJhbXMuem9vbTtcbiAgICBjb25zdCB6b29tID0gc3dpcGVyLnpvb207XG5cbiAgICBpZiAoIXN1cHBvcnQuZ2VzdHVyZXMpIHtcbiAgICAgIGlmICghZmFrZUdlc3R1cmVUb3VjaGVkIHx8ICFmYWtlR2VzdHVyZU1vdmVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGUudHlwZSAhPT0gJ3RvdWNoZW5kJyB8fCBlLnR5cGUgPT09ICd0b3VjaGVuZCcgJiYgZS5jaGFuZ2VkVG91Y2hlcy5sZW5ndGggPCAyICYmICFkZXZpY2UuYW5kcm9pZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGZha2VHZXN0dXJlVG91Y2hlZCA9IGZhbHNlO1xuICAgICAgZmFrZUdlc3R1cmVNb3ZlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIGlmICghZ2VzdHVyZS4kaW1hZ2VFbCB8fCBnZXN0dXJlLiRpbWFnZUVsLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIHpvb20uc2NhbGUgPSBNYXRoLm1heChNYXRoLm1pbih6b29tLnNjYWxlLCBnZXN0dXJlLm1heFJhdGlvKSwgcGFyYW1zLm1pblJhdGlvKTtcbiAgICBnZXN0dXJlLiRpbWFnZUVsLnRyYW5zaXRpb24oc3dpcGVyLnBhcmFtcy5zcGVlZCkudHJhbnNmb3JtKGB0cmFuc2xhdGUzZCgwLDAsMCkgc2NhbGUoJHt6b29tLnNjYWxlfSlgKTtcbiAgICBjdXJyZW50U2NhbGUgPSB6b29tLnNjYWxlO1xuICAgIGlzU2NhbGluZyA9IGZhbHNlO1xuICAgIGlmICh6b29tLnNjYWxlID09PSAxKSBnZXN0dXJlLiRzbGlkZUVsID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgZnVuY3Rpb24gb25Ub3VjaFN0YXJ0KGUpIHtcbiAgICBjb25zdCBkZXZpY2UgPSBzd2lwZXIuZGV2aWNlO1xuICAgIGlmICghZ2VzdHVyZS4kaW1hZ2VFbCB8fCBnZXN0dXJlLiRpbWFnZUVsLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIGlmIChpbWFnZS5pc1RvdWNoZWQpIHJldHVybjtcbiAgICBpZiAoZGV2aWNlLmFuZHJvaWQgJiYgZS5jYW5jZWxhYmxlKSBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgaW1hZ2UuaXNUb3VjaGVkID0gdHJ1ZTtcbiAgICBpbWFnZS50b3VjaGVzU3RhcnQueCA9IGUudHlwZSA9PT0gJ3RvdWNoc3RhcnQnID8gZS50YXJnZXRUb3VjaGVzWzBdLnBhZ2VYIDogZS5wYWdlWDtcbiAgICBpbWFnZS50b3VjaGVzU3RhcnQueSA9IGUudHlwZSA9PT0gJ3RvdWNoc3RhcnQnID8gZS50YXJnZXRUb3VjaGVzWzBdLnBhZ2VZIDogZS5wYWdlWTtcbiAgfVxuXG4gIGZ1bmN0aW9uIG9uVG91Y2hNb3ZlKGUpIHtcbiAgICBjb25zdCB6b29tID0gc3dpcGVyLnpvb207XG4gICAgaWYgKCFnZXN0dXJlLiRpbWFnZUVsIHx8IGdlc3R1cmUuJGltYWdlRWwubGVuZ3RoID09PSAwKSByZXR1cm47XG4gICAgc3dpcGVyLmFsbG93Q2xpY2sgPSBmYWxzZTtcbiAgICBpZiAoIWltYWdlLmlzVG91Y2hlZCB8fCAhZ2VzdHVyZS4kc2xpZGVFbCkgcmV0dXJuO1xuXG4gICAgaWYgKCFpbWFnZS5pc01vdmVkKSB7XG4gICAgICBpbWFnZS53aWR0aCA9IGdlc3R1cmUuJGltYWdlRWxbMF0ub2Zmc2V0V2lkdGg7XG4gICAgICBpbWFnZS5oZWlnaHQgPSBnZXN0dXJlLiRpbWFnZUVsWzBdLm9mZnNldEhlaWdodDtcbiAgICAgIGltYWdlLnN0YXJ0WCA9IGdldFRyYW5zbGF0ZShnZXN0dXJlLiRpbWFnZVdyYXBFbFswXSwgJ3gnKSB8fCAwO1xuICAgICAgaW1hZ2Uuc3RhcnRZID0gZ2V0VHJhbnNsYXRlKGdlc3R1cmUuJGltYWdlV3JhcEVsWzBdLCAneScpIHx8IDA7XG4gICAgICBnZXN0dXJlLnNsaWRlV2lkdGggPSBnZXN0dXJlLiRzbGlkZUVsWzBdLm9mZnNldFdpZHRoO1xuICAgICAgZ2VzdHVyZS5zbGlkZUhlaWdodCA9IGdlc3R1cmUuJHNsaWRlRWxbMF0ub2Zmc2V0SGVpZ2h0O1xuICAgICAgZ2VzdHVyZS4kaW1hZ2VXcmFwRWwudHJhbnNpdGlvbigwKTtcbiAgICB9IC8vIERlZmluZSBpZiB3ZSBuZWVkIGltYWdlIGRyYWdcblxuXG4gICAgY29uc3Qgc2NhbGVkV2lkdGggPSBpbWFnZS53aWR0aCAqIHpvb20uc2NhbGU7XG4gICAgY29uc3Qgc2NhbGVkSGVpZ2h0ID0gaW1hZ2UuaGVpZ2h0ICogem9vbS5zY2FsZTtcbiAgICBpZiAoc2NhbGVkV2lkdGggPCBnZXN0dXJlLnNsaWRlV2lkdGggJiYgc2NhbGVkSGVpZ2h0IDwgZ2VzdHVyZS5zbGlkZUhlaWdodCkgcmV0dXJuO1xuICAgIGltYWdlLm1pblggPSBNYXRoLm1pbihnZXN0dXJlLnNsaWRlV2lkdGggLyAyIC0gc2NhbGVkV2lkdGggLyAyLCAwKTtcbiAgICBpbWFnZS5tYXhYID0gLWltYWdlLm1pblg7XG4gICAgaW1hZ2UubWluWSA9IE1hdGgubWluKGdlc3R1cmUuc2xpZGVIZWlnaHQgLyAyIC0gc2NhbGVkSGVpZ2h0IC8gMiwgMCk7XG4gICAgaW1hZ2UubWF4WSA9IC1pbWFnZS5taW5ZO1xuICAgIGltYWdlLnRvdWNoZXNDdXJyZW50LnggPSBlLnR5cGUgPT09ICd0b3VjaG1vdmUnID8gZS50YXJnZXRUb3VjaGVzWzBdLnBhZ2VYIDogZS5wYWdlWDtcbiAgICBpbWFnZS50b3VjaGVzQ3VycmVudC55ID0gZS50eXBlID09PSAndG91Y2htb3ZlJyA/IGUudGFyZ2V0VG91Y2hlc1swXS5wYWdlWSA6IGUucGFnZVk7XG5cbiAgICBpZiAoIWltYWdlLmlzTW92ZWQgJiYgIWlzU2NhbGluZykge1xuICAgICAgaWYgKHN3aXBlci5pc0hvcml6b250YWwoKSAmJiAoTWF0aC5mbG9vcihpbWFnZS5taW5YKSA9PT0gTWF0aC5mbG9vcihpbWFnZS5zdGFydFgpICYmIGltYWdlLnRvdWNoZXNDdXJyZW50LnggPCBpbWFnZS50b3VjaGVzU3RhcnQueCB8fCBNYXRoLmZsb29yKGltYWdlLm1heFgpID09PSBNYXRoLmZsb29yKGltYWdlLnN0YXJ0WCkgJiYgaW1hZ2UudG91Y2hlc0N1cnJlbnQueCA+IGltYWdlLnRvdWNoZXNTdGFydC54KSkge1xuICAgICAgICBpbWFnZS5pc1RvdWNoZWQgPSBmYWxzZTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXN3aXBlci5pc0hvcml6b250YWwoKSAmJiAoTWF0aC5mbG9vcihpbWFnZS5taW5ZKSA9PT0gTWF0aC5mbG9vcihpbWFnZS5zdGFydFkpICYmIGltYWdlLnRvdWNoZXNDdXJyZW50LnkgPCBpbWFnZS50b3VjaGVzU3RhcnQueSB8fCBNYXRoLmZsb29yKGltYWdlLm1heFkpID09PSBNYXRoLmZsb29yKGltYWdlLnN0YXJ0WSkgJiYgaW1hZ2UudG91Y2hlc0N1cnJlbnQueSA+IGltYWdlLnRvdWNoZXNTdGFydC55KSkge1xuICAgICAgICBpbWFnZS5pc1RvdWNoZWQgPSBmYWxzZTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChlLmNhbmNlbGFibGUpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGltYWdlLmlzTW92ZWQgPSB0cnVlO1xuICAgIGltYWdlLmN1cnJlbnRYID0gaW1hZ2UudG91Y2hlc0N1cnJlbnQueCAtIGltYWdlLnRvdWNoZXNTdGFydC54ICsgaW1hZ2Uuc3RhcnRYO1xuICAgIGltYWdlLmN1cnJlbnRZID0gaW1hZ2UudG91Y2hlc0N1cnJlbnQueSAtIGltYWdlLnRvdWNoZXNTdGFydC55ICsgaW1hZ2Uuc3RhcnRZO1xuXG4gICAgaWYgKGltYWdlLmN1cnJlbnRYIDwgaW1hZ2UubWluWCkge1xuICAgICAgaW1hZ2UuY3VycmVudFggPSBpbWFnZS5taW5YICsgMSAtIChpbWFnZS5taW5YIC0gaW1hZ2UuY3VycmVudFggKyAxKSAqKiAwLjg7XG4gICAgfVxuXG4gICAgaWYgKGltYWdlLmN1cnJlbnRYID4gaW1hZ2UubWF4WCkge1xuICAgICAgaW1hZ2UuY3VycmVudFggPSBpbWFnZS5tYXhYIC0gMSArIChpbWFnZS5jdXJyZW50WCAtIGltYWdlLm1heFggKyAxKSAqKiAwLjg7XG4gICAgfVxuXG4gICAgaWYgKGltYWdlLmN1cnJlbnRZIDwgaW1hZ2UubWluWSkge1xuICAgICAgaW1hZ2UuY3VycmVudFkgPSBpbWFnZS5taW5ZICsgMSAtIChpbWFnZS5taW5ZIC0gaW1hZ2UuY3VycmVudFkgKyAxKSAqKiAwLjg7XG4gICAgfVxuXG4gICAgaWYgKGltYWdlLmN1cnJlbnRZID4gaW1hZ2UubWF4WSkge1xuICAgICAgaW1hZ2UuY3VycmVudFkgPSBpbWFnZS5tYXhZIC0gMSArIChpbWFnZS5jdXJyZW50WSAtIGltYWdlLm1heFkgKyAxKSAqKiAwLjg7XG4gICAgfSAvLyBWZWxvY2l0eVxuXG5cbiAgICBpZiAoIXZlbG9jaXR5LnByZXZQb3NpdGlvblgpIHZlbG9jaXR5LnByZXZQb3NpdGlvblggPSBpbWFnZS50b3VjaGVzQ3VycmVudC54O1xuICAgIGlmICghdmVsb2NpdHkucHJldlBvc2l0aW9uWSkgdmVsb2NpdHkucHJldlBvc2l0aW9uWSA9IGltYWdlLnRvdWNoZXNDdXJyZW50Lnk7XG4gICAgaWYgKCF2ZWxvY2l0eS5wcmV2VGltZSkgdmVsb2NpdHkucHJldlRpbWUgPSBEYXRlLm5vdygpO1xuICAgIHZlbG9jaXR5LnggPSAoaW1hZ2UudG91Y2hlc0N1cnJlbnQueCAtIHZlbG9jaXR5LnByZXZQb3NpdGlvblgpIC8gKERhdGUubm93KCkgLSB2ZWxvY2l0eS5wcmV2VGltZSkgLyAyO1xuICAgIHZlbG9jaXR5LnkgPSAoaW1hZ2UudG91Y2hlc0N1cnJlbnQueSAtIHZlbG9jaXR5LnByZXZQb3NpdGlvblkpIC8gKERhdGUubm93KCkgLSB2ZWxvY2l0eS5wcmV2VGltZSkgLyAyO1xuICAgIGlmIChNYXRoLmFicyhpbWFnZS50b3VjaGVzQ3VycmVudC54IC0gdmVsb2NpdHkucHJldlBvc2l0aW9uWCkgPCAyKSB2ZWxvY2l0eS54ID0gMDtcbiAgICBpZiAoTWF0aC5hYnMoaW1hZ2UudG91Y2hlc0N1cnJlbnQueSAtIHZlbG9jaXR5LnByZXZQb3NpdGlvblkpIDwgMikgdmVsb2NpdHkueSA9IDA7XG4gICAgdmVsb2NpdHkucHJldlBvc2l0aW9uWCA9IGltYWdlLnRvdWNoZXNDdXJyZW50Lng7XG4gICAgdmVsb2NpdHkucHJldlBvc2l0aW9uWSA9IGltYWdlLnRvdWNoZXNDdXJyZW50Lnk7XG4gICAgdmVsb2NpdHkucHJldlRpbWUgPSBEYXRlLm5vdygpO1xuICAgIGdlc3R1cmUuJGltYWdlV3JhcEVsLnRyYW5zZm9ybShgdHJhbnNsYXRlM2QoJHtpbWFnZS5jdXJyZW50WH1weCwgJHtpbWFnZS5jdXJyZW50WX1weCwwKWApO1xuICB9XG5cbiAgZnVuY3Rpb24gb25Ub3VjaEVuZCgpIHtcbiAgICBjb25zdCB6b29tID0gc3dpcGVyLnpvb207XG4gICAgaWYgKCFnZXN0dXJlLiRpbWFnZUVsIHx8IGdlc3R1cmUuJGltYWdlRWwubGVuZ3RoID09PSAwKSByZXR1cm47XG5cbiAgICBpZiAoIWltYWdlLmlzVG91Y2hlZCB8fCAhaW1hZ2UuaXNNb3ZlZCkge1xuICAgICAgaW1hZ2UuaXNUb3VjaGVkID0gZmFsc2U7XG4gICAgICBpbWFnZS5pc01vdmVkID0gZmFsc2U7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaW1hZ2UuaXNUb3VjaGVkID0gZmFsc2U7XG4gICAgaW1hZ2UuaXNNb3ZlZCA9IGZhbHNlO1xuICAgIGxldCBtb21lbnR1bUR1cmF0aW9uWCA9IDMwMDtcbiAgICBsZXQgbW9tZW50dW1EdXJhdGlvblkgPSAzMDA7XG4gICAgY29uc3QgbW9tZW50dW1EaXN0YW5jZVggPSB2ZWxvY2l0eS54ICogbW9tZW50dW1EdXJhdGlvblg7XG4gICAgY29uc3QgbmV3UG9zaXRpb25YID0gaW1hZ2UuY3VycmVudFggKyBtb21lbnR1bURpc3RhbmNlWDtcbiAgICBjb25zdCBtb21lbnR1bURpc3RhbmNlWSA9IHZlbG9jaXR5LnkgKiBtb21lbnR1bUR1cmF0aW9uWTtcbiAgICBjb25zdCBuZXdQb3NpdGlvblkgPSBpbWFnZS5jdXJyZW50WSArIG1vbWVudHVtRGlzdGFuY2VZOyAvLyBGaXggZHVyYXRpb25cblxuICAgIGlmICh2ZWxvY2l0eS54ICE9PSAwKSBtb21lbnR1bUR1cmF0aW9uWCA9IE1hdGguYWJzKChuZXdQb3NpdGlvblggLSBpbWFnZS5jdXJyZW50WCkgLyB2ZWxvY2l0eS54KTtcbiAgICBpZiAodmVsb2NpdHkueSAhPT0gMCkgbW9tZW50dW1EdXJhdGlvblkgPSBNYXRoLmFicygobmV3UG9zaXRpb25ZIC0gaW1hZ2UuY3VycmVudFkpIC8gdmVsb2NpdHkueSk7XG4gICAgY29uc3QgbW9tZW50dW1EdXJhdGlvbiA9IE1hdGgubWF4KG1vbWVudHVtRHVyYXRpb25YLCBtb21lbnR1bUR1cmF0aW9uWSk7XG4gICAgaW1hZ2UuY3VycmVudFggPSBuZXdQb3NpdGlvblg7XG4gICAgaW1hZ2UuY3VycmVudFkgPSBuZXdQb3NpdGlvblk7IC8vIERlZmluZSBpZiB3ZSBuZWVkIGltYWdlIGRyYWdcblxuICAgIGNvbnN0IHNjYWxlZFdpZHRoID0gaW1hZ2Uud2lkdGggKiB6b29tLnNjYWxlO1xuICAgIGNvbnN0IHNjYWxlZEhlaWdodCA9IGltYWdlLmhlaWdodCAqIHpvb20uc2NhbGU7XG4gICAgaW1hZ2UubWluWCA9IE1hdGgubWluKGdlc3R1cmUuc2xpZGVXaWR0aCAvIDIgLSBzY2FsZWRXaWR0aCAvIDIsIDApO1xuICAgIGltYWdlLm1heFggPSAtaW1hZ2UubWluWDtcbiAgICBpbWFnZS5taW5ZID0gTWF0aC5taW4oZ2VzdHVyZS5zbGlkZUhlaWdodCAvIDIgLSBzY2FsZWRIZWlnaHQgLyAyLCAwKTtcbiAgICBpbWFnZS5tYXhZID0gLWltYWdlLm1pblk7XG4gICAgaW1hZ2UuY3VycmVudFggPSBNYXRoLm1heChNYXRoLm1pbihpbWFnZS5jdXJyZW50WCwgaW1hZ2UubWF4WCksIGltYWdlLm1pblgpO1xuICAgIGltYWdlLmN1cnJlbnRZID0gTWF0aC5tYXgoTWF0aC5taW4oaW1hZ2UuY3VycmVudFksIGltYWdlLm1heFkpLCBpbWFnZS5taW5ZKTtcbiAgICBnZXN0dXJlLiRpbWFnZVdyYXBFbC50cmFuc2l0aW9uKG1vbWVudHVtRHVyYXRpb24pLnRyYW5zZm9ybShgdHJhbnNsYXRlM2QoJHtpbWFnZS5jdXJyZW50WH1weCwgJHtpbWFnZS5jdXJyZW50WX1weCwwKWApO1xuICB9XG5cbiAgZnVuY3Rpb24gb25UcmFuc2l0aW9uRW5kKCkge1xuICAgIGNvbnN0IHpvb20gPSBzd2lwZXIuem9vbTtcblxuICAgIGlmIChnZXN0dXJlLiRzbGlkZUVsICYmIHN3aXBlci5wcmV2aW91c0luZGV4ICE9PSBzd2lwZXIuYWN0aXZlSW5kZXgpIHtcbiAgICAgIGlmIChnZXN0dXJlLiRpbWFnZUVsKSB7XG4gICAgICAgIGdlc3R1cmUuJGltYWdlRWwudHJhbnNmb3JtKCd0cmFuc2xhdGUzZCgwLDAsMCkgc2NhbGUoMSknKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGdlc3R1cmUuJGltYWdlV3JhcEVsKSB7XG4gICAgICAgIGdlc3R1cmUuJGltYWdlV3JhcEVsLnRyYW5zZm9ybSgndHJhbnNsYXRlM2QoMCwwLDApJyk7XG4gICAgICB9XG5cbiAgICAgIHpvb20uc2NhbGUgPSAxO1xuICAgICAgY3VycmVudFNjYWxlID0gMTtcbiAgICAgIGdlc3R1cmUuJHNsaWRlRWwgPSB1bmRlZmluZWQ7XG4gICAgICBnZXN0dXJlLiRpbWFnZUVsID0gdW5kZWZpbmVkO1xuICAgICAgZ2VzdHVyZS4kaW1hZ2VXcmFwRWwgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gem9vbUluKGUpIHtcbiAgICBjb25zdCB6b29tID0gc3dpcGVyLnpvb207XG4gICAgY29uc3QgcGFyYW1zID0gc3dpcGVyLnBhcmFtcy56b29tO1xuXG4gICAgaWYgKCFnZXN0dXJlLiRzbGlkZUVsKSB7XG4gICAgICBpZiAoZSAmJiBlLnRhcmdldCkge1xuICAgICAgICBnZXN0dXJlLiRzbGlkZUVsID0gJChlLnRhcmdldCkuY2xvc2VzdChgLiR7c3dpcGVyLnBhcmFtcy5zbGlkZUNsYXNzfWApO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWdlc3R1cmUuJHNsaWRlRWwpIHtcbiAgICAgICAgaWYgKHN3aXBlci5wYXJhbXMudmlydHVhbCAmJiBzd2lwZXIucGFyYW1zLnZpcnR1YWwuZW5hYmxlZCAmJiBzd2lwZXIudmlydHVhbCkge1xuICAgICAgICAgIGdlc3R1cmUuJHNsaWRlRWwgPSBzd2lwZXIuJHdyYXBwZXJFbC5jaGlsZHJlbihgLiR7c3dpcGVyLnBhcmFtcy5zbGlkZUFjdGl2ZUNsYXNzfWApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGdlc3R1cmUuJHNsaWRlRWwgPSBzd2lwZXIuc2xpZGVzLmVxKHN3aXBlci5hY3RpdmVJbmRleCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZ2VzdHVyZS4kaW1hZ2VFbCA9IGdlc3R1cmUuJHNsaWRlRWwuZmluZChgLiR7cGFyYW1zLmNvbnRhaW5lckNsYXNzfWApLmVxKDApLmZpbmQoJ3BpY3R1cmUsIGltZywgc3ZnLCBjYW52YXMsIC5zd2lwZXItem9vbS10YXJnZXQnKS5lcSgwKTtcbiAgICAgIGdlc3R1cmUuJGltYWdlV3JhcEVsID0gZ2VzdHVyZS4kaW1hZ2VFbC5wYXJlbnQoYC4ke3BhcmFtcy5jb250YWluZXJDbGFzc31gKTtcbiAgICB9XG5cbiAgICBpZiAoIWdlc3R1cmUuJGltYWdlRWwgfHwgZ2VzdHVyZS4kaW1hZ2VFbC5sZW5ndGggPT09IDAgfHwgIWdlc3R1cmUuJGltYWdlV3JhcEVsIHx8IGdlc3R1cmUuJGltYWdlV3JhcEVsLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuXG4gICAgaWYgKHN3aXBlci5wYXJhbXMuY3NzTW9kZSkge1xuICAgICAgc3dpcGVyLndyYXBwZXJFbC5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nO1xuICAgICAgc3dpcGVyLndyYXBwZXJFbC5zdHlsZS50b3VjaEFjdGlvbiA9ICdub25lJztcbiAgICB9XG5cbiAgICBnZXN0dXJlLiRzbGlkZUVsLmFkZENsYXNzKGAke3BhcmFtcy56b29tZWRTbGlkZUNsYXNzfWApO1xuICAgIGxldCB0b3VjaFg7XG4gICAgbGV0IHRvdWNoWTtcbiAgICBsZXQgb2Zmc2V0WDtcbiAgICBsZXQgb2Zmc2V0WTtcbiAgICBsZXQgZGlmZlg7XG4gICAgbGV0IGRpZmZZO1xuICAgIGxldCB0cmFuc2xhdGVYO1xuICAgIGxldCB0cmFuc2xhdGVZO1xuICAgIGxldCBpbWFnZVdpZHRoO1xuICAgIGxldCBpbWFnZUhlaWdodDtcbiAgICBsZXQgc2NhbGVkV2lkdGg7XG4gICAgbGV0IHNjYWxlZEhlaWdodDtcbiAgICBsZXQgdHJhbnNsYXRlTWluWDtcbiAgICBsZXQgdHJhbnNsYXRlTWluWTtcbiAgICBsZXQgdHJhbnNsYXRlTWF4WDtcbiAgICBsZXQgdHJhbnNsYXRlTWF4WTtcbiAgICBsZXQgc2xpZGVXaWR0aDtcbiAgICBsZXQgc2xpZGVIZWlnaHQ7XG5cbiAgICBpZiAodHlwZW9mIGltYWdlLnRvdWNoZXNTdGFydC54ID09PSAndW5kZWZpbmVkJyAmJiBlKSB7XG4gICAgICB0b3VjaFggPSBlLnR5cGUgPT09ICd0b3VjaGVuZCcgPyBlLmNoYW5nZWRUb3VjaGVzWzBdLnBhZ2VYIDogZS5wYWdlWDtcbiAgICAgIHRvdWNoWSA9IGUudHlwZSA9PT0gJ3RvdWNoZW5kJyA/IGUuY2hhbmdlZFRvdWNoZXNbMF0ucGFnZVkgOiBlLnBhZ2VZO1xuICAgIH0gZWxzZSB7XG4gICAgICB0b3VjaFggPSBpbWFnZS50b3VjaGVzU3RhcnQueDtcbiAgICAgIHRvdWNoWSA9IGltYWdlLnRvdWNoZXNTdGFydC55O1xuICAgIH1cblxuICAgIHpvb20uc2NhbGUgPSBnZXN0dXJlLiRpbWFnZVdyYXBFbC5hdHRyKCdkYXRhLXN3aXBlci16b29tJykgfHwgcGFyYW1zLm1heFJhdGlvO1xuICAgIGN1cnJlbnRTY2FsZSA9IGdlc3R1cmUuJGltYWdlV3JhcEVsLmF0dHIoJ2RhdGEtc3dpcGVyLXpvb20nKSB8fCBwYXJhbXMubWF4UmF0aW87XG5cbiAgICBpZiAoZSkge1xuICAgICAgc2xpZGVXaWR0aCA9IGdlc3R1cmUuJHNsaWRlRWxbMF0ub2Zmc2V0V2lkdGg7XG4gICAgICBzbGlkZUhlaWdodCA9IGdlc3R1cmUuJHNsaWRlRWxbMF0ub2Zmc2V0SGVpZ2h0O1xuICAgICAgb2Zmc2V0WCA9IGdlc3R1cmUuJHNsaWRlRWwub2Zmc2V0KCkubGVmdCArIHdpbmRvdy5zY3JvbGxYO1xuICAgICAgb2Zmc2V0WSA9IGdlc3R1cmUuJHNsaWRlRWwub2Zmc2V0KCkudG9wICsgd2luZG93LnNjcm9sbFk7XG4gICAgICBkaWZmWCA9IG9mZnNldFggKyBzbGlkZVdpZHRoIC8gMiAtIHRvdWNoWDtcbiAgICAgIGRpZmZZID0gb2Zmc2V0WSArIHNsaWRlSGVpZ2h0IC8gMiAtIHRvdWNoWTtcbiAgICAgIGltYWdlV2lkdGggPSBnZXN0dXJlLiRpbWFnZUVsWzBdLm9mZnNldFdpZHRoO1xuICAgICAgaW1hZ2VIZWlnaHQgPSBnZXN0dXJlLiRpbWFnZUVsWzBdLm9mZnNldEhlaWdodDtcbiAgICAgIHNjYWxlZFdpZHRoID0gaW1hZ2VXaWR0aCAqIHpvb20uc2NhbGU7XG4gICAgICBzY2FsZWRIZWlnaHQgPSBpbWFnZUhlaWdodCAqIHpvb20uc2NhbGU7XG4gICAgICB0cmFuc2xhdGVNaW5YID0gTWF0aC5taW4oc2xpZGVXaWR0aCAvIDIgLSBzY2FsZWRXaWR0aCAvIDIsIDApO1xuICAgICAgdHJhbnNsYXRlTWluWSA9IE1hdGgubWluKHNsaWRlSGVpZ2h0IC8gMiAtIHNjYWxlZEhlaWdodCAvIDIsIDApO1xuICAgICAgdHJhbnNsYXRlTWF4WCA9IC10cmFuc2xhdGVNaW5YO1xuICAgICAgdHJhbnNsYXRlTWF4WSA9IC10cmFuc2xhdGVNaW5ZO1xuICAgICAgdHJhbnNsYXRlWCA9IGRpZmZYICogem9vbS5zY2FsZTtcbiAgICAgIHRyYW5zbGF0ZVkgPSBkaWZmWSAqIHpvb20uc2NhbGU7XG5cbiAgICAgIGlmICh0cmFuc2xhdGVYIDwgdHJhbnNsYXRlTWluWCkge1xuICAgICAgICB0cmFuc2xhdGVYID0gdHJhbnNsYXRlTWluWDtcbiAgICAgIH1cblxuICAgICAgaWYgKHRyYW5zbGF0ZVggPiB0cmFuc2xhdGVNYXhYKSB7XG4gICAgICAgIHRyYW5zbGF0ZVggPSB0cmFuc2xhdGVNYXhYO1xuICAgICAgfVxuXG4gICAgICBpZiAodHJhbnNsYXRlWSA8IHRyYW5zbGF0ZU1pblkpIHtcbiAgICAgICAgdHJhbnNsYXRlWSA9IHRyYW5zbGF0ZU1pblk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0cmFuc2xhdGVZID4gdHJhbnNsYXRlTWF4WSkge1xuICAgICAgICB0cmFuc2xhdGVZID0gdHJhbnNsYXRlTWF4WTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdHJhbnNsYXRlWCA9IDA7XG4gICAgICB0cmFuc2xhdGVZID0gMDtcbiAgICB9XG5cbiAgICBnZXN0dXJlLiRpbWFnZVdyYXBFbC50cmFuc2l0aW9uKDMwMCkudHJhbnNmb3JtKGB0cmFuc2xhdGUzZCgke3RyYW5zbGF0ZVh9cHgsICR7dHJhbnNsYXRlWX1weCwwKWApO1xuICAgIGdlc3R1cmUuJGltYWdlRWwudHJhbnNpdGlvbigzMDApLnRyYW5zZm9ybShgdHJhbnNsYXRlM2QoMCwwLDApIHNjYWxlKCR7em9vbS5zY2FsZX0pYCk7XG4gIH1cblxuICBmdW5jdGlvbiB6b29tT3V0KCkge1xuICAgIGNvbnN0IHpvb20gPSBzd2lwZXIuem9vbTtcbiAgICBjb25zdCBwYXJhbXMgPSBzd2lwZXIucGFyYW1zLnpvb207XG5cbiAgICBpZiAoIWdlc3R1cmUuJHNsaWRlRWwpIHtcbiAgICAgIGlmIChzd2lwZXIucGFyYW1zLnZpcnR1YWwgJiYgc3dpcGVyLnBhcmFtcy52aXJ0dWFsLmVuYWJsZWQgJiYgc3dpcGVyLnZpcnR1YWwpIHtcbiAgICAgICAgZ2VzdHVyZS4kc2xpZGVFbCA9IHN3aXBlci4kd3JhcHBlckVsLmNoaWxkcmVuKGAuJHtzd2lwZXIucGFyYW1zLnNsaWRlQWN0aXZlQ2xhc3N9YCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBnZXN0dXJlLiRzbGlkZUVsID0gc3dpcGVyLnNsaWRlcy5lcShzd2lwZXIuYWN0aXZlSW5kZXgpO1xuICAgICAgfVxuXG4gICAgICBnZXN0dXJlLiRpbWFnZUVsID0gZ2VzdHVyZS4kc2xpZGVFbC5maW5kKGAuJHtwYXJhbXMuY29udGFpbmVyQ2xhc3N9YCkuZXEoMCkuZmluZCgncGljdHVyZSwgaW1nLCBzdmcsIGNhbnZhcywgLnN3aXBlci16b29tLXRhcmdldCcpLmVxKDApO1xuICAgICAgZ2VzdHVyZS4kaW1hZ2VXcmFwRWwgPSBnZXN0dXJlLiRpbWFnZUVsLnBhcmVudChgLiR7cGFyYW1zLmNvbnRhaW5lckNsYXNzfWApO1xuICAgIH1cblxuICAgIGlmICghZ2VzdHVyZS4kaW1hZ2VFbCB8fCBnZXN0dXJlLiRpbWFnZUVsLmxlbmd0aCA9PT0gMCB8fCAhZ2VzdHVyZS4kaW1hZ2VXcmFwRWwgfHwgZ2VzdHVyZS4kaW1hZ2VXcmFwRWwubGVuZ3RoID09PSAwKSByZXR1cm47XG5cbiAgICBpZiAoc3dpcGVyLnBhcmFtcy5jc3NNb2RlKSB7XG4gICAgICBzd2lwZXIud3JhcHBlckVsLnN0eWxlLm92ZXJmbG93ID0gJyc7XG4gICAgICBzd2lwZXIud3JhcHBlckVsLnN0eWxlLnRvdWNoQWN0aW9uID0gJyc7XG4gICAgfVxuXG4gICAgem9vbS5zY2FsZSA9IDE7XG4gICAgY3VycmVudFNjYWxlID0gMTtcbiAgICBnZXN0dXJlLiRpbWFnZVdyYXBFbC50cmFuc2l0aW9uKDMwMCkudHJhbnNmb3JtKCd0cmFuc2xhdGUzZCgwLDAsMCknKTtcbiAgICBnZXN0dXJlLiRpbWFnZUVsLnRyYW5zaXRpb24oMzAwKS50cmFuc2Zvcm0oJ3RyYW5zbGF0ZTNkKDAsMCwwKSBzY2FsZSgxKScpO1xuICAgIGdlc3R1cmUuJHNsaWRlRWwucmVtb3ZlQ2xhc3MoYCR7cGFyYW1zLnpvb21lZFNsaWRlQ2xhc3N9YCk7XG4gICAgZ2VzdHVyZS4kc2xpZGVFbCA9IHVuZGVmaW5lZDtcbiAgfSAvLyBUb2dnbGUgWm9vbVxuXG5cbiAgZnVuY3Rpb24gem9vbVRvZ2dsZShlKSB7XG4gICAgY29uc3Qgem9vbSA9IHN3aXBlci56b29tO1xuXG4gICAgaWYgKHpvb20uc2NhbGUgJiYgem9vbS5zY2FsZSAhPT0gMSkge1xuICAgICAgLy8gWm9vbSBPdXRcbiAgICAgIHpvb21PdXQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gWm9vbSBJblxuICAgICAgem9vbUluKGUpO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGdldExpc3RlbmVycygpIHtcbiAgICBjb25zdCBzdXBwb3J0ID0gc3dpcGVyLnN1cHBvcnQ7XG4gICAgY29uc3QgcGFzc2l2ZUxpc3RlbmVyID0gc3dpcGVyLnRvdWNoRXZlbnRzLnN0YXJ0ID09PSAndG91Y2hzdGFydCcgJiYgc3VwcG9ydC5wYXNzaXZlTGlzdGVuZXIgJiYgc3dpcGVyLnBhcmFtcy5wYXNzaXZlTGlzdGVuZXJzID8ge1xuICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICAgIGNhcHR1cmU6IGZhbHNlXG4gICAgfSA6IGZhbHNlO1xuICAgIGNvbnN0IGFjdGl2ZUxpc3RlbmVyV2l0aENhcHR1cmUgPSBzdXBwb3J0LnBhc3NpdmVMaXN0ZW5lciA/IHtcbiAgICAgIHBhc3NpdmU6IGZhbHNlLFxuICAgICAgY2FwdHVyZTogdHJ1ZVxuICAgIH0gOiB0cnVlO1xuICAgIHJldHVybiB7XG4gICAgICBwYXNzaXZlTGlzdGVuZXIsXG4gICAgICBhY3RpdmVMaXN0ZW5lcldpdGhDYXB0dXJlXG4gICAgfTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGdldFNsaWRlU2VsZWN0b3IoKSB7XG4gICAgcmV0dXJuIGAuJHtzd2lwZXIucGFyYW1zLnNsaWRlQ2xhc3N9YDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHRvZ2dsZUdlc3R1cmVzKG1ldGhvZCkge1xuICAgIGNvbnN0IHtcbiAgICAgIHBhc3NpdmVMaXN0ZW5lclxuICAgIH0gPSBnZXRMaXN0ZW5lcnMoKTtcbiAgICBjb25zdCBzbGlkZVNlbGVjdG9yID0gZ2V0U2xpZGVTZWxlY3RvcigpO1xuICAgIHN3aXBlci4kd3JhcHBlckVsW21ldGhvZF0oJ2dlc3R1cmVzdGFydCcsIHNsaWRlU2VsZWN0b3IsIG9uR2VzdHVyZVN0YXJ0LCBwYXNzaXZlTGlzdGVuZXIpO1xuICAgIHN3aXBlci4kd3JhcHBlckVsW21ldGhvZF0oJ2dlc3R1cmVjaGFuZ2UnLCBzbGlkZVNlbGVjdG9yLCBvbkdlc3R1cmVDaGFuZ2UsIHBhc3NpdmVMaXN0ZW5lcik7XG4gICAgc3dpcGVyLiR3cmFwcGVyRWxbbWV0aG9kXSgnZ2VzdHVyZWVuZCcsIHNsaWRlU2VsZWN0b3IsIG9uR2VzdHVyZUVuZCwgcGFzc2l2ZUxpc3RlbmVyKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGVuYWJsZUdlc3R1cmVzKCkge1xuICAgIGlmIChnZXN0dXJlc0VuYWJsZWQpIHJldHVybjtcbiAgICBnZXN0dXJlc0VuYWJsZWQgPSB0cnVlO1xuICAgIHRvZ2dsZUdlc3R1cmVzKCdvbicpO1xuICB9XG5cbiAgZnVuY3Rpb24gZGlzYWJsZUdlc3R1cmVzKCkge1xuICAgIGlmICghZ2VzdHVyZXNFbmFibGVkKSByZXR1cm47XG4gICAgZ2VzdHVyZXNFbmFibGVkID0gZmFsc2U7XG4gICAgdG9nZ2xlR2VzdHVyZXMoJ29mZicpO1xuICB9IC8vIEF0dGFjaC9EZXRhY2ggRXZlbnRzXG5cblxuICBmdW5jdGlvbiBlbmFibGUoKSB7XG4gICAgY29uc3Qgem9vbSA9IHN3aXBlci56b29tO1xuICAgIGlmICh6b29tLmVuYWJsZWQpIHJldHVybjtcbiAgICB6b29tLmVuYWJsZWQgPSB0cnVlO1xuICAgIGNvbnN0IHN1cHBvcnQgPSBzd2lwZXIuc3VwcG9ydDtcbiAgICBjb25zdCB7XG4gICAgICBwYXNzaXZlTGlzdGVuZXIsXG4gICAgICBhY3RpdmVMaXN0ZW5lcldpdGhDYXB0dXJlXG4gICAgfSA9IGdldExpc3RlbmVycygpO1xuICAgIGNvbnN0IHNsaWRlU2VsZWN0b3IgPSBnZXRTbGlkZVNlbGVjdG9yKCk7IC8vIFNjYWxlIGltYWdlXG5cbiAgICBpZiAoc3VwcG9ydC5nZXN0dXJlcykge1xuICAgICAgc3dpcGVyLiR3cmFwcGVyRWwub24oc3dpcGVyLnRvdWNoRXZlbnRzLnN0YXJ0LCBlbmFibGVHZXN0dXJlcywgcGFzc2l2ZUxpc3RlbmVyKTtcbiAgICAgIHN3aXBlci4kd3JhcHBlckVsLm9uKHN3aXBlci50b3VjaEV2ZW50cy5lbmQsIGRpc2FibGVHZXN0dXJlcywgcGFzc2l2ZUxpc3RlbmVyKTtcbiAgICB9IGVsc2UgaWYgKHN3aXBlci50b3VjaEV2ZW50cy5zdGFydCA9PT0gJ3RvdWNoc3RhcnQnKSB7XG4gICAgICBzd2lwZXIuJHdyYXBwZXJFbC5vbihzd2lwZXIudG91Y2hFdmVudHMuc3RhcnQsIHNsaWRlU2VsZWN0b3IsIG9uR2VzdHVyZVN0YXJ0LCBwYXNzaXZlTGlzdGVuZXIpO1xuICAgICAgc3dpcGVyLiR3cmFwcGVyRWwub24oc3dpcGVyLnRvdWNoRXZlbnRzLm1vdmUsIHNsaWRlU2VsZWN0b3IsIG9uR2VzdHVyZUNoYW5nZSwgYWN0aXZlTGlzdGVuZXJXaXRoQ2FwdHVyZSk7XG4gICAgICBzd2lwZXIuJHdyYXBwZXJFbC5vbihzd2lwZXIudG91Y2hFdmVudHMuZW5kLCBzbGlkZVNlbGVjdG9yLCBvbkdlc3R1cmVFbmQsIHBhc3NpdmVMaXN0ZW5lcik7XG5cbiAgICAgIGlmIChzd2lwZXIudG91Y2hFdmVudHMuY2FuY2VsKSB7XG4gICAgICAgIHN3aXBlci4kd3JhcHBlckVsLm9uKHN3aXBlci50b3VjaEV2ZW50cy5jYW5jZWwsIHNsaWRlU2VsZWN0b3IsIG9uR2VzdHVyZUVuZCwgcGFzc2l2ZUxpc3RlbmVyKTtcbiAgICAgIH1cbiAgICB9IC8vIE1vdmUgaW1hZ2VcblxuXG4gICAgc3dpcGVyLiR3cmFwcGVyRWwub24oc3dpcGVyLnRvdWNoRXZlbnRzLm1vdmUsIGAuJHtzd2lwZXIucGFyYW1zLnpvb20uY29udGFpbmVyQ2xhc3N9YCwgb25Ub3VjaE1vdmUsIGFjdGl2ZUxpc3RlbmVyV2l0aENhcHR1cmUpO1xuICB9XG5cbiAgZnVuY3Rpb24gZGlzYWJsZSgpIHtcbiAgICBjb25zdCB6b29tID0gc3dpcGVyLnpvb207XG4gICAgaWYgKCF6b29tLmVuYWJsZWQpIHJldHVybjtcbiAgICBjb25zdCBzdXBwb3J0ID0gc3dpcGVyLnN1cHBvcnQ7XG4gICAgem9vbS5lbmFibGVkID0gZmFsc2U7XG4gICAgY29uc3Qge1xuICAgICAgcGFzc2l2ZUxpc3RlbmVyLFxuICAgICAgYWN0aXZlTGlzdGVuZXJXaXRoQ2FwdHVyZVxuICAgIH0gPSBnZXRMaXN0ZW5lcnMoKTtcbiAgICBjb25zdCBzbGlkZVNlbGVjdG9yID0gZ2V0U2xpZGVTZWxlY3RvcigpOyAvLyBTY2FsZSBpbWFnZVxuXG4gICAgaWYgKHN1cHBvcnQuZ2VzdHVyZXMpIHtcbiAgICAgIHN3aXBlci4kd3JhcHBlckVsLm9mZihzd2lwZXIudG91Y2hFdmVudHMuc3RhcnQsIGVuYWJsZUdlc3R1cmVzLCBwYXNzaXZlTGlzdGVuZXIpO1xuICAgICAgc3dpcGVyLiR3cmFwcGVyRWwub2ZmKHN3aXBlci50b3VjaEV2ZW50cy5lbmQsIGRpc2FibGVHZXN0dXJlcywgcGFzc2l2ZUxpc3RlbmVyKTtcbiAgICB9IGVsc2UgaWYgKHN3aXBlci50b3VjaEV2ZW50cy5zdGFydCA9PT0gJ3RvdWNoc3RhcnQnKSB7XG4gICAgICBzd2lwZXIuJHdyYXBwZXJFbC5vZmYoc3dpcGVyLnRvdWNoRXZlbnRzLnN0YXJ0LCBzbGlkZVNlbGVjdG9yLCBvbkdlc3R1cmVTdGFydCwgcGFzc2l2ZUxpc3RlbmVyKTtcbiAgICAgIHN3aXBlci4kd3JhcHBlckVsLm9mZihzd2lwZXIudG91Y2hFdmVudHMubW92ZSwgc2xpZGVTZWxlY3Rvciwgb25HZXN0dXJlQ2hhbmdlLCBhY3RpdmVMaXN0ZW5lcldpdGhDYXB0dXJlKTtcbiAgICAgIHN3aXBlci4kd3JhcHBlckVsLm9mZihzd2lwZXIudG91Y2hFdmVudHMuZW5kLCBzbGlkZVNlbGVjdG9yLCBvbkdlc3R1cmVFbmQsIHBhc3NpdmVMaXN0ZW5lcik7XG5cbiAgICAgIGlmIChzd2lwZXIudG91Y2hFdmVudHMuY2FuY2VsKSB7XG4gICAgICAgIHN3aXBlci4kd3JhcHBlckVsLm9mZihzd2lwZXIudG91Y2hFdmVudHMuY2FuY2VsLCBzbGlkZVNlbGVjdG9yLCBvbkdlc3R1cmVFbmQsIHBhc3NpdmVMaXN0ZW5lcik7XG4gICAgICB9XG4gICAgfSAvLyBNb3ZlIGltYWdlXG5cblxuICAgIHN3aXBlci4kd3JhcHBlckVsLm9mZihzd2lwZXIudG91Y2hFdmVudHMubW92ZSwgYC4ke3N3aXBlci5wYXJhbXMuem9vbS5jb250YWluZXJDbGFzc31gLCBvblRvdWNoTW92ZSwgYWN0aXZlTGlzdGVuZXJXaXRoQ2FwdHVyZSk7XG4gIH1cblxuICBvbignaW5pdCcsICgpID0+IHtcbiAgICBpZiAoc3dpcGVyLnBhcmFtcy56b29tLmVuYWJsZWQpIHtcbiAgICAgIGVuYWJsZSgpO1xuICAgIH1cbiAgfSk7XG4gIG9uKCdkZXN0cm95JywgKCkgPT4ge1xuICAgIGRpc2FibGUoKTtcbiAgfSk7XG4gIG9uKCd0b3VjaFN0YXJ0JywgKF9zLCBlKSA9PiB7XG4gICAgaWYgKCFzd2lwZXIuem9vbS5lbmFibGVkKSByZXR1cm47XG4gICAgb25Ub3VjaFN0YXJ0KGUpO1xuICB9KTtcbiAgb24oJ3RvdWNoRW5kJywgKF9zLCBlKSA9PiB7XG4gICAgaWYgKCFzd2lwZXIuem9vbS5lbmFibGVkKSByZXR1cm47XG4gICAgb25Ub3VjaEVuZChlKTtcbiAgfSk7XG4gIG9uKCdkb3VibGVUYXAnLCAoX3MsIGUpID0+IHtcbiAgICBpZiAoIXN3aXBlci5hbmltYXRpbmcgJiYgc3dpcGVyLnBhcmFtcy56b29tLmVuYWJsZWQgJiYgc3dpcGVyLnpvb20uZW5hYmxlZCAmJiBzd2lwZXIucGFyYW1zLnpvb20udG9nZ2xlKSB7XG4gICAgICB6b29tVG9nZ2xlKGUpO1xuICAgIH1cbiAgfSk7XG4gIG9uKCd0cmFuc2l0aW9uRW5kJywgKCkgPT4ge1xuICAgIGlmIChzd2lwZXIuem9vbS5lbmFibGVkICYmIHN3aXBlci5wYXJhbXMuem9vbS5lbmFibGVkKSB7XG4gICAgICBvblRyYW5zaXRpb25FbmQoKTtcbiAgICB9XG4gIH0pO1xuICBvbignc2xpZGVDaGFuZ2UnLCAoKSA9PiB7XG4gICAgaWYgKHN3aXBlci56b29tLmVuYWJsZWQgJiYgc3dpcGVyLnBhcmFtcy56b29tLmVuYWJsZWQgJiYgc3dpcGVyLnBhcmFtcy5jc3NNb2RlKSB7XG4gICAgICBvblRyYW5zaXRpb25FbmQoKTtcbiAgICB9XG4gIH0pO1xuICBPYmplY3QuYXNzaWduKHN3aXBlci56b29tLCB7XG4gICAgZW5hYmxlLFxuICAgIGRpc2FibGUsXG4gICAgaW46IHpvb21JbixcbiAgICBvdXQ6IHpvb21PdXQsXG4gICAgdG9nZ2xlOiB6b29tVG9nZ2xlXG4gIH0pO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/swiper/modules/zoom/zoom.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/react/get-changed-params.js": +/*!*********************************************************!*\ + !*** ./node_modules/swiper/react/get-changed-params.js ***! + \*********************************************************/ +/***/ (function(__unused_webpack___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 */ \"getChangedParams\": function() { return /* binding */ getChangedParams; }\n/* harmony export */ });\n/* harmony import */ var _params_list_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./params-list.js */ \"./node_modules/swiper/react/params-list.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils.js */ \"./node_modules/swiper/react/utils.js\");\n\n\n\nfunction getChangedParams(swiperParams, oldParams, children, oldChildren) {\n const keys = [];\n if (!oldParams) return keys;\n\n const addKey = key => {\n if (keys.indexOf(key) < 0) keys.push(key);\n };\n\n const oldChildrenKeys = oldChildren.map(child => child.key);\n const childrenKeys = children.map(child => child.key);\n if (oldChildrenKeys.join('') !== childrenKeys.join('')) addKey('children');\n if (oldChildren.length !== children.length) addKey('children');\n const watchParams = _params_list_js__WEBPACK_IMPORTED_MODULE_0__.paramsList.filter(key => key[0] === '_').map(key => key.replace(/_/, ''));\n watchParams.forEach(key => {\n if (key in swiperParams && key in oldParams) {\n if ((0,_utils_js__WEBPACK_IMPORTED_MODULE_1__.isObject)(swiperParams[key]) && (0,_utils_js__WEBPACK_IMPORTED_MODULE_1__.isObject)(oldParams[key])) {\n const newKeys = Object.keys(swiperParams[key]);\n const oldKeys = Object.keys(oldParams[key]);\n\n if (newKeys.length !== oldKeys.length) {\n addKey(key);\n } else {\n newKeys.forEach(newKey => {\n if (swiperParams[key][newKey] !== oldParams[key][newKey]) {\n addKey(key);\n }\n });\n oldKeys.forEach(oldKey => {\n if (swiperParams[key][oldKey] !== oldParams[key][oldKey]) addKey(key);\n });\n }\n } else if (swiperParams[key] !== oldParams[key]) {\n addKey(key);\n }\n }\n });\n return keys;\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL3JlYWN0L2dldC1jaGFuZ2VkLXBhcmFtcy5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBOEM7QUFDUjs7QUFFdEM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQiw4REFBaUI7QUFDdkM7QUFDQTtBQUNBLFVBQVUsbURBQVEsdUJBQXVCLG1EQUFRO0FBQ2pEO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zd2lwZXIvcmVhY3QvZ2V0LWNoYW5nZWQtcGFyYW1zLmpzPzgyZjYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGFyYW1zTGlzdCB9IGZyb20gJy4vcGFyYW1zLWxpc3QuanMnO1xuaW1wb3J0IHsgaXNPYmplY3QgfSBmcm9tICcuL3V0aWxzLmpzJztcblxuZnVuY3Rpb24gZ2V0Q2hhbmdlZFBhcmFtcyhzd2lwZXJQYXJhbXMsIG9sZFBhcmFtcywgY2hpbGRyZW4sIG9sZENoaWxkcmVuKSB7XG4gIGNvbnN0IGtleXMgPSBbXTtcbiAgaWYgKCFvbGRQYXJhbXMpIHJldHVybiBrZXlzO1xuXG4gIGNvbnN0IGFkZEtleSA9IGtleSA9PiB7XG4gICAgaWYgKGtleXMuaW5kZXhPZihrZXkpIDwgMCkga2V5cy5wdXNoKGtleSk7XG4gIH07XG5cbiAgY29uc3Qgb2xkQ2hpbGRyZW5LZXlzID0gb2xkQ2hpbGRyZW4ubWFwKGNoaWxkID0+IGNoaWxkLmtleSk7XG4gIGNvbnN0IGNoaWxkcmVuS2V5cyA9IGNoaWxkcmVuLm1hcChjaGlsZCA9PiBjaGlsZC5rZXkpO1xuICBpZiAob2xkQ2hpbGRyZW5LZXlzLmpvaW4oJycpICE9PSBjaGlsZHJlbktleXMuam9pbignJykpIGFkZEtleSgnY2hpbGRyZW4nKTtcbiAgaWYgKG9sZENoaWxkcmVuLmxlbmd0aCAhPT0gY2hpbGRyZW4ubGVuZ3RoKSBhZGRLZXkoJ2NoaWxkcmVuJyk7XG4gIGNvbnN0IHdhdGNoUGFyYW1zID0gcGFyYW1zTGlzdC5maWx0ZXIoa2V5ID0+IGtleVswXSA9PT0gJ18nKS5tYXAoa2V5ID0+IGtleS5yZXBsYWNlKC9fLywgJycpKTtcbiAgd2F0Y2hQYXJhbXMuZm9yRWFjaChrZXkgPT4ge1xuICAgIGlmIChrZXkgaW4gc3dpcGVyUGFyYW1zICYmIGtleSBpbiBvbGRQYXJhbXMpIHtcbiAgICAgIGlmIChpc09iamVjdChzd2lwZXJQYXJhbXNba2V5XSkgJiYgaXNPYmplY3Qob2xkUGFyYW1zW2tleV0pKSB7XG4gICAgICAgIGNvbnN0IG5ld0tleXMgPSBPYmplY3Qua2V5cyhzd2lwZXJQYXJhbXNba2V5XSk7XG4gICAgICAgIGNvbnN0IG9sZEtleXMgPSBPYmplY3Qua2V5cyhvbGRQYXJhbXNba2V5XSk7XG5cbiAgICAgICAgaWYgKG5ld0tleXMubGVuZ3RoICE9PSBvbGRLZXlzLmxlbmd0aCkge1xuICAgICAgICAgIGFkZEtleShrZXkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5ld0tleXMuZm9yRWFjaChuZXdLZXkgPT4ge1xuICAgICAgICAgICAgaWYgKHN3aXBlclBhcmFtc1trZXldW25ld0tleV0gIT09IG9sZFBhcmFtc1trZXldW25ld0tleV0pIHtcbiAgICAgICAgICAgICAgYWRkS2V5KGtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgb2xkS2V5cy5mb3JFYWNoKG9sZEtleSA9PiB7XG4gICAgICAgICAgICBpZiAoc3dpcGVyUGFyYW1zW2tleV1bb2xkS2V5XSAhPT0gb2xkUGFyYW1zW2tleV1bb2xkS2V5XSkgYWRkS2V5KGtleSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoc3dpcGVyUGFyYW1zW2tleV0gIT09IG9sZFBhcmFtc1trZXldKSB7XG4gICAgICAgIGFkZEtleShrZXkpO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG4gIHJldHVybiBrZXlzO1xufVxuXG5leHBvcnQgeyBnZXRDaGFuZ2VkUGFyYW1zIH07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/swiper/react/get-changed-params.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/react/get-children.js": +/*!***************************************************!*\ + !*** ./node_modules/swiper/react/get-children.js ***! + \***************************************************/ +/***/ (function(__unused_webpack___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 */ \"getChildren\": function() { return /* binding */ getChildren; }\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\n\nfunction processChildren(c) {\n const slides = [];\n react__WEBPACK_IMPORTED_MODULE_0__.Children.toArray(c).forEach(child => {\n if (child.type && child.type.displayName === 'SwiperSlide') {\n slides.push(child);\n } else if (child.props && child.props.children) {\n processChildren(child.props.children).forEach(slide => slides.push(slide));\n }\n });\n return slides;\n}\n\nfunction getChildren(c) {\n const slides = [];\n const slots = {\n 'container-start': [],\n 'container-end': [],\n 'wrapper-start': [],\n 'wrapper-end': []\n };\n react__WEBPACK_IMPORTED_MODULE_0__.Children.toArray(c).forEach(child => {\n if (child.type && child.type.displayName === 'SwiperSlide') {\n slides.push(child);\n } else if (child.props && child.props.slot && slots[child.props.slot]) {\n slots[child.props.slot].push(child);\n } else if (child.props && child.props.children) {\n const foundSlides = processChildren(child.props.children);\n\n if (foundSlides.length > 0) {\n foundSlides.forEach(slide => slides.push(slide));\n } else {\n slots['container-end'].push(child);\n }\n } else {\n slots['container-end'].push(child);\n }\n });\n return {\n slides,\n slots\n };\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL3JlYWN0L2dldC1jaGlsZHJlbi5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUEwQjs7QUFFMUI7QUFDQTtBQUNBLEVBQUUsbURBQXNCO0FBQ3hCO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLG1EQUFzQjtBQUN4QjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0EsTUFBTTtBQUNOOztBQUVBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N3aXBlci9yZWFjdC9nZXQtY2hpbGRyZW4uanM/OTI1MiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5mdW5jdGlvbiBwcm9jZXNzQ2hpbGRyZW4oYykge1xuICBjb25zdCBzbGlkZXMgPSBbXTtcbiAgUmVhY3QuQ2hpbGRyZW4udG9BcnJheShjKS5mb3JFYWNoKGNoaWxkID0+IHtcbiAgICBpZiAoY2hpbGQudHlwZSAmJiBjaGlsZC50eXBlLmRpc3BsYXlOYW1lID09PSAnU3dpcGVyU2xpZGUnKSB7XG4gICAgICBzbGlkZXMucHVzaChjaGlsZCk7XG4gICAgfSBlbHNlIGlmIChjaGlsZC5wcm9wcyAmJiBjaGlsZC5wcm9wcy5jaGlsZHJlbikge1xuICAgICAgcHJvY2Vzc0NoaWxkcmVuKGNoaWxkLnByb3BzLmNoaWxkcmVuKS5mb3JFYWNoKHNsaWRlID0+IHNsaWRlcy5wdXNoKHNsaWRlKSk7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHNsaWRlcztcbn1cblxuZnVuY3Rpb24gZ2V0Q2hpbGRyZW4oYykge1xuICBjb25zdCBzbGlkZXMgPSBbXTtcbiAgY29uc3Qgc2xvdHMgPSB7XG4gICAgJ2NvbnRhaW5lci1zdGFydCc6IFtdLFxuICAgICdjb250YWluZXItZW5kJzogW10sXG4gICAgJ3dyYXBwZXItc3RhcnQnOiBbXSxcbiAgICAnd3JhcHBlci1lbmQnOiBbXVxuICB9O1xuICBSZWFjdC5DaGlsZHJlbi50b0FycmF5KGMpLmZvckVhY2goY2hpbGQgPT4ge1xuICAgIGlmIChjaGlsZC50eXBlICYmIGNoaWxkLnR5cGUuZGlzcGxheU5hbWUgPT09ICdTd2lwZXJTbGlkZScpIHtcbiAgICAgIHNsaWRlcy5wdXNoKGNoaWxkKTtcbiAgICB9IGVsc2UgaWYgKGNoaWxkLnByb3BzICYmIGNoaWxkLnByb3BzLnNsb3QgJiYgc2xvdHNbY2hpbGQucHJvcHMuc2xvdF0pIHtcbiAgICAgIHNsb3RzW2NoaWxkLnByb3BzLnNsb3RdLnB1c2goY2hpbGQpO1xuICAgIH0gZWxzZSBpZiAoY2hpbGQucHJvcHMgJiYgY2hpbGQucHJvcHMuY2hpbGRyZW4pIHtcbiAgICAgIGNvbnN0IGZvdW5kU2xpZGVzID0gcHJvY2Vzc0NoaWxkcmVuKGNoaWxkLnByb3BzLmNoaWxkcmVuKTtcblxuICAgICAgaWYgKGZvdW5kU2xpZGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgZm91bmRTbGlkZXMuZm9yRWFjaChzbGlkZSA9PiBzbGlkZXMucHVzaChzbGlkZSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2xvdHNbJ2NvbnRhaW5lci1lbmQnXS5wdXNoKGNoaWxkKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgc2xvdHNbJ2NvbnRhaW5lci1lbmQnXS5wdXNoKGNoaWxkKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4ge1xuICAgIHNsaWRlcyxcbiAgICBzbG90c1xuICB9O1xufVxuXG5leHBvcnQgeyBnZXRDaGlsZHJlbiB9OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/swiper/react/get-children.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/react/get-params.js": +/*!*************************************************!*\ + !*** ./node_modules/swiper/react/get-params.js ***! + \*************************************************/ +/***/ (function(__unused_webpack___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 */ \"getParams\": function() { return /* binding */ getParams; }\n/* harmony export */ });\n/* harmony import */ var swiper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! swiper */ \"./node_modules/swiper/swiper.esm.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils.js */ \"./node_modules/swiper/react/utils.js\");\n/* harmony import */ var _params_list_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./params-list.js */ \"./node_modules/swiper/react/params-list.js\");\n\n\n\n\nfunction getParams(obj = {}) {\n const params = {\n on: {}\n };\n const events = {};\n const passedParams = {};\n (0,_utils_js__WEBPACK_IMPORTED_MODULE_1__.extend)(params, swiper__WEBPACK_IMPORTED_MODULE_0__[\"default\"].defaults);\n (0,_utils_js__WEBPACK_IMPORTED_MODULE_1__.extend)(params, swiper__WEBPACK_IMPORTED_MODULE_0__[\"default\"].extendedDefaults);\n params._emitClasses = true;\n params.init = false;\n const rest = {};\n const allowedParams = _params_list_js__WEBPACK_IMPORTED_MODULE_2__.paramsList.map(key => key.replace(/_/, ''));\n Object.keys(obj).forEach(key => {\n if (allowedParams.indexOf(key) >= 0) {\n if ((0,_utils_js__WEBPACK_IMPORTED_MODULE_1__.isObject)(obj[key])) {\n params[key] = {};\n passedParams[key] = {};\n (0,_utils_js__WEBPACK_IMPORTED_MODULE_1__.extend)(params[key], obj[key]);\n (0,_utils_js__WEBPACK_IMPORTED_MODULE_1__.extend)(passedParams[key], obj[key]);\n } else {\n params[key] = obj[key];\n passedParams[key] = obj[key];\n }\n } else if (key.search(/on[A-Z]/) === 0 && typeof obj[key] === 'function') {\n events[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\n } else {\n rest[key] = obj[key];\n }\n });\n ['navigation', 'pagination', 'scrollbar'].forEach(key => {\n if (params[key] === true) params[key] = {};\n if (params[key] === false) delete params[key];\n });\n return {\n params,\n passedParams,\n rest,\n events\n };\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL3JlYWN0L2dldC1wYXJhbXMuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUE0QjtBQUNrQjtBQUNBOztBQUU5QywyQkFBMkI7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsaURBQU0sU0FBUyx1REFBZTtBQUNoQyxFQUFFLGlEQUFNLFNBQVMsK0RBQXVCO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QiwyREFBYztBQUN0QztBQUNBO0FBQ0EsVUFBVSxtREFBUTtBQUNsQjtBQUNBO0FBQ0EsUUFBUSxpREFBTTtBQUNkLFFBQVEsaURBQU07QUFDZCxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOLGdCQUFnQixxQkFBcUIsRUFBRSxjQUFjO0FBQ3JELE1BQU07QUFDTjtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc3dpcGVyL3JlYWN0L2dldC1wYXJhbXMuanM/NDZiZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgU3dpcGVyIGZyb20gJ3N3aXBlcic7XG5pbXBvcnQgeyBpc09iamVjdCwgZXh0ZW5kIH0gZnJvbSAnLi91dGlscy5qcyc7XG5pbXBvcnQgeyBwYXJhbXNMaXN0IH0gZnJvbSAnLi9wYXJhbXMtbGlzdC5qcyc7XG5cbmZ1bmN0aW9uIGdldFBhcmFtcyhvYmogPSB7fSkge1xuICBjb25zdCBwYXJhbXMgPSB7XG4gICAgb246IHt9XG4gIH07XG4gIGNvbnN0IGV2ZW50cyA9IHt9O1xuICBjb25zdCBwYXNzZWRQYXJhbXMgPSB7fTtcbiAgZXh0ZW5kKHBhcmFtcywgU3dpcGVyLmRlZmF1bHRzKTtcbiAgZXh0ZW5kKHBhcmFtcywgU3dpcGVyLmV4dGVuZGVkRGVmYXVsdHMpO1xuICBwYXJhbXMuX2VtaXRDbGFzc2VzID0gdHJ1ZTtcbiAgcGFyYW1zLmluaXQgPSBmYWxzZTtcbiAgY29uc3QgcmVzdCA9IHt9O1xuICBjb25zdCBhbGxvd2VkUGFyYW1zID0gcGFyYW1zTGlzdC5tYXAoa2V5ID0+IGtleS5yZXBsYWNlKC9fLywgJycpKTtcbiAgT2JqZWN0LmtleXMob2JqKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgaWYgKGFsbG93ZWRQYXJhbXMuaW5kZXhPZihrZXkpID49IDApIHtcbiAgICAgIGlmIChpc09iamVjdChvYmpba2V5XSkpIHtcbiAgICAgICAgcGFyYW1zW2tleV0gPSB7fTtcbiAgICAgICAgcGFzc2VkUGFyYW1zW2tleV0gPSB7fTtcbiAgICAgICAgZXh0ZW5kKHBhcmFtc1trZXldLCBvYmpba2V5XSk7XG4gICAgICAgIGV4dGVuZChwYXNzZWRQYXJhbXNba2V5XSwgb2JqW2tleV0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGFyYW1zW2tleV0gPSBvYmpba2V5XTtcbiAgICAgICAgcGFzc2VkUGFyYW1zW2tleV0gPSBvYmpba2V5XTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGtleS5zZWFyY2goL29uW0EtWl0vKSA9PT0gMCAmJiB0eXBlb2Ygb2JqW2tleV0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGV2ZW50c1tgJHtrZXlbMl0udG9Mb3dlckNhc2UoKX0ke2tleS5zdWJzdHIoMyl9YF0gPSBvYmpba2V5XTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdFtrZXldID0gb2JqW2tleV07XG4gICAgfVxuICB9KTtcbiAgWyduYXZpZ2F0aW9uJywgJ3BhZ2luYXRpb24nLCAnc2Nyb2xsYmFyJ10uZm9yRWFjaChrZXkgPT4ge1xuICAgIGlmIChwYXJhbXNba2V5XSA9PT0gdHJ1ZSkgcGFyYW1zW2tleV0gPSB7fTtcbiAgICBpZiAocGFyYW1zW2tleV0gPT09IGZhbHNlKSBkZWxldGUgcGFyYW1zW2tleV07XG4gIH0pO1xuICByZXR1cm4ge1xuICAgIHBhcmFtcyxcbiAgICBwYXNzZWRQYXJhbXMsXG4gICAgcmVzdCxcbiAgICBldmVudHNcbiAgfTtcbn1cblxuZXhwb3J0IHsgZ2V0UGFyYW1zIH07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/swiper/react/get-params.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/react/init-swiper.js": +/*!**************************************************!*\ + !*** ./node_modules/swiper/react/init-swiper.js ***! + \**************************************************/ +/***/ (function(__unused_webpack___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 */ \"initSwiper\": function() { return /* binding */ initSwiper; },\n/* harmony export */ \"mountSwiper\": function() { return /* binding */ mountSwiper; }\n/* harmony export */ });\n/* harmony import */ var swiper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! swiper */ \"./node_modules/swiper/swiper.esm.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils.js */ \"./node_modules/swiper/react/utils.js\");\n\n\n\nfunction initSwiper(swiperParams) {\n return new swiper__WEBPACK_IMPORTED_MODULE_0__[\"default\"](swiperParams);\n}\n\nfunction mountSwiper({\n el,\n nextEl,\n prevEl,\n paginationEl,\n scrollbarEl,\n swiper\n}, swiperParams) {\n if ((0,_utils_js__WEBPACK_IMPORTED_MODULE_1__.needsNavigation)(swiperParams) && nextEl && prevEl) {\n swiper.params.navigation.nextEl = nextEl;\n swiper.originalParams.navigation.nextEl = nextEl;\n swiper.params.navigation.prevEl = prevEl;\n swiper.originalParams.navigation.prevEl = prevEl;\n }\n\n if ((0,_utils_js__WEBPACK_IMPORTED_MODULE_1__.needsPagination)(swiperParams) && paginationEl) {\n swiper.params.pagination.el = paginationEl;\n swiper.originalParams.pagination.el = paginationEl;\n }\n\n if ((0,_utils_js__WEBPACK_IMPORTED_MODULE_1__.needsScrollbar)(swiperParams) && scrollbarEl) {\n swiper.params.scrollbar.el = scrollbarEl;\n swiper.originalParams.scrollbar.el = scrollbarEl;\n }\n\n swiper.init(el);\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL3JlYWN0L2luaXQtc3dpcGVyLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBNEI7QUFDa0Q7O0FBRTlFO0FBQ0EsYUFBYSw4Q0FBTTtBQUNuQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxNQUFNLDBEQUFlO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsTUFBTSwwREFBZTtBQUNyQjtBQUNBO0FBQ0E7O0FBRUEsTUFBTSx5REFBYztBQUNwQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc3dpcGVyL3JlYWN0L2luaXQtc3dpcGVyLmpzPzgzNjgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFN3aXBlciBmcm9tICdzd2lwZXInO1xuaW1wb3J0IHsgbmVlZHNOYXZpZ2F0aW9uLCBuZWVkc1BhZ2luYXRpb24sIG5lZWRzU2Nyb2xsYmFyIH0gZnJvbSAnLi91dGlscy5qcyc7XG5cbmZ1bmN0aW9uIGluaXRTd2lwZXIoc3dpcGVyUGFyYW1zKSB7XG4gIHJldHVybiBuZXcgU3dpcGVyKHN3aXBlclBhcmFtcyk7XG59XG5cbmZ1bmN0aW9uIG1vdW50U3dpcGVyKHtcbiAgZWwsXG4gIG5leHRFbCxcbiAgcHJldkVsLFxuICBwYWdpbmF0aW9uRWwsXG4gIHNjcm9sbGJhckVsLFxuICBzd2lwZXJcbn0sIHN3aXBlclBhcmFtcykge1xuICBpZiAobmVlZHNOYXZpZ2F0aW9uKHN3aXBlclBhcmFtcykgJiYgbmV4dEVsICYmIHByZXZFbCkge1xuICAgIHN3aXBlci5wYXJhbXMubmF2aWdhdGlvbi5uZXh0RWwgPSBuZXh0RWw7XG4gICAgc3dpcGVyLm9yaWdpbmFsUGFyYW1zLm5hdmlnYXRpb24ubmV4dEVsID0gbmV4dEVsO1xuICAgIHN3aXBlci5wYXJhbXMubmF2aWdhdGlvbi5wcmV2RWwgPSBwcmV2RWw7XG4gICAgc3dpcGVyLm9yaWdpbmFsUGFyYW1zLm5hdmlnYXRpb24ucHJldkVsID0gcHJldkVsO1xuICB9XG5cbiAgaWYgKG5lZWRzUGFnaW5hdGlvbihzd2lwZXJQYXJhbXMpICYmIHBhZ2luYXRpb25FbCkge1xuICAgIHN3aXBlci5wYXJhbXMucGFnaW5hdGlvbi5lbCA9IHBhZ2luYXRpb25FbDtcbiAgICBzd2lwZXIub3JpZ2luYWxQYXJhbXMucGFnaW5hdGlvbi5lbCA9IHBhZ2luYXRpb25FbDtcbiAgfVxuXG4gIGlmIChuZWVkc1Njcm9sbGJhcihzd2lwZXJQYXJhbXMpICYmIHNjcm9sbGJhckVsKSB7XG4gICAgc3dpcGVyLnBhcmFtcy5zY3JvbGxiYXIuZWwgPSBzY3JvbGxiYXJFbDtcbiAgICBzd2lwZXIub3JpZ2luYWxQYXJhbXMuc2Nyb2xsYmFyLmVsID0gc2Nyb2xsYmFyRWw7XG4gIH1cblxuICBzd2lwZXIuaW5pdChlbCk7XG59XG5cbmV4cG9ydCB7IGluaXRTd2lwZXIsIG1vdW50U3dpcGVyIH07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/swiper/react/init-swiper.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/react/loop.js": +/*!*******************************************!*\ + !*** ./node_modules/swiper/react/loop.js ***! + \*******************************************/ +/***/ (function(__unused_webpack___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 */ \"calcLoopedSlides\": function() { return /* binding */ calcLoopedSlides; },\n/* harmony export */ \"renderLoop\": function() { return /* binding */ renderLoop; }\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var swiper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! swiper */ \"./node_modules/swiper/swiper.esm.js\");\n\n\n\nfunction calcLoopedSlides(slides, swiperParams) {\n let slidesPerViewParams = swiperParams.slidesPerView;\n\n if (swiperParams.breakpoints) {\n const breakpoint = swiper__WEBPACK_IMPORTED_MODULE_1__[\"default\"].prototype.getBreakpoint(swiperParams.breakpoints);\n const breakpointOnlyParams = breakpoint in swiperParams.breakpoints ? swiperParams.breakpoints[breakpoint] : undefined;\n\n if (breakpointOnlyParams && breakpointOnlyParams.slidesPerView) {\n slidesPerViewParams = breakpointOnlyParams.slidesPerView;\n }\n }\n\n let loopedSlides = Math.ceil(parseFloat(swiperParams.loopedSlides || slidesPerViewParams, 10));\n loopedSlides += swiperParams.loopAdditionalSlides;\n\n if (loopedSlides > slides.length) {\n loopedSlides = slides.length;\n }\n\n return loopedSlides;\n}\n\nfunction renderLoop(swiper, slides, swiperParams) {\n const modifiedSlides = slides.map((child, index) => {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(child, {\n swiper,\n 'data-swiper-slide-index': index\n });\n });\n\n function duplicateSlide(child, index, position) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(child, {\n key: `${child.key}-duplicate-${index}-${position}`,\n className: `${child.props.className || ''} ${swiperParams.slideDuplicateClass}`\n });\n }\n\n if (swiperParams.loopFillGroupWithBlank) {\n const blankSlidesNum = swiperParams.slidesPerGroup - modifiedSlides.length % swiperParams.slidesPerGroup;\n\n if (blankSlidesNum !== swiperParams.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankSlide = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n className: `${swiperParams.slideClass} ${swiperParams.slideBlankClass}`\n });\n modifiedSlides.push(blankSlide);\n }\n }\n }\n\n if (swiperParams.slidesPerView === 'auto' && !swiperParams.loopedSlides) {\n swiperParams.loopedSlides = modifiedSlides.length;\n }\n\n const loopedSlides = calcLoopedSlides(modifiedSlides, swiperParams);\n const prependSlides = [];\n const appendSlides = [];\n modifiedSlides.forEach((child, index) => {\n if (index < loopedSlides) {\n appendSlides.push(duplicateSlide(child, index, 'prepend'));\n }\n\n if (index < modifiedSlides.length && index >= modifiedSlides.length - loopedSlides) {\n prependSlides.push(duplicateSlide(child, index, 'append'));\n }\n });\n\n if (swiper) {\n swiper.loopedSlides = loopedSlides;\n }\n\n return [...prependSlides, ...modifiedSlides, ...appendSlides];\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL3JlYWN0L2xvb3AuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUEwQjtBQUNFOztBQUU1QjtBQUNBOztBQUVBO0FBQ0EsdUJBQXVCLHNFQUE4QjtBQUNyRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSx3QkFBd0IsK0NBQWtCO0FBQzFDO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRzs7QUFFSDtBQUNBLHdCQUF3QiwrQ0FBa0I7QUFDMUMsY0FBYyxVQUFVLGFBQWEsTUFBTSxHQUFHLFNBQVM7QUFDdkQsb0JBQW9CLDZCQUE2QixFQUFFLGlDQUFpQztBQUNwRixLQUFLO0FBQ0w7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLHNCQUFzQixvQkFBb0I7QUFDMUMsd0NBQXdDLGdEQUFtQjtBQUMzRCx3QkFBd0IseUJBQXlCLEVBQUUsNkJBQTZCO0FBQ2hGLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc3dpcGVyL3JlYWN0L2xvb3AuanM/NThhMiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFN3aXBlciBmcm9tICdzd2lwZXInO1xuXG5mdW5jdGlvbiBjYWxjTG9vcGVkU2xpZGVzKHNsaWRlcywgc3dpcGVyUGFyYW1zKSB7XG4gIGxldCBzbGlkZXNQZXJWaWV3UGFyYW1zID0gc3dpcGVyUGFyYW1zLnNsaWRlc1BlclZpZXc7XG5cbiAgaWYgKHN3aXBlclBhcmFtcy5icmVha3BvaW50cykge1xuICAgIGNvbnN0IGJyZWFrcG9pbnQgPSBTd2lwZXIucHJvdG90eXBlLmdldEJyZWFrcG9pbnQoc3dpcGVyUGFyYW1zLmJyZWFrcG9pbnRzKTtcbiAgICBjb25zdCBicmVha3BvaW50T25seVBhcmFtcyA9IGJyZWFrcG9pbnQgaW4gc3dpcGVyUGFyYW1zLmJyZWFrcG9pbnRzID8gc3dpcGVyUGFyYW1zLmJyZWFrcG9pbnRzW2JyZWFrcG9pbnRdIDogdW5kZWZpbmVkO1xuXG4gICAgaWYgKGJyZWFrcG9pbnRPbmx5UGFyYW1zICYmIGJyZWFrcG9pbnRPbmx5UGFyYW1zLnNsaWRlc1BlclZpZXcpIHtcbiAgICAgIHNsaWRlc1BlclZpZXdQYXJhbXMgPSBicmVha3BvaW50T25seVBhcmFtcy5zbGlkZXNQZXJWaWV3O1xuICAgIH1cbiAgfVxuXG4gIGxldCBsb29wZWRTbGlkZXMgPSBNYXRoLmNlaWwocGFyc2VGbG9hdChzd2lwZXJQYXJhbXMubG9vcGVkU2xpZGVzIHx8IHNsaWRlc1BlclZpZXdQYXJhbXMsIDEwKSk7XG4gIGxvb3BlZFNsaWRlcyArPSBzd2lwZXJQYXJhbXMubG9vcEFkZGl0aW9uYWxTbGlkZXM7XG5cbiAgaWYgKGxvb3BlZFNsaWRlcyA+IHNsaWRlcy5sZW5ndGgpIHtcbiAgICBsb29wZWRTbGlkZXMgPSBzbGlkZXMubGVuZ3RoO1xuICB9XG5cbiAgcmV0dXJuIGxvb3BlZFNsaWRlcztcbn1cblxuZnVuY3Rpb24gcmVuZGVyTG9vcChzd2lwZXIsIHNsaWRlcywgc3dpcGVyUGFyYW1zKSB7XG4gIGNvbnN0IG1vZGlmaWVkU2xpZGVzID0gc2xpZGVzLm1hcCgoY2hpbGQsIGluZGV4KSA9PiB7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgIHN3aXBlcixcbiAgICAgICdkYXRhLXN3aXBlci1zbGlkZS1pbmRleCc6IGluZGV4XG4gICAgfSk7XG4gIH0pO1xuXG4gIGZ1bmN0aW9uIGR1cGxpY2F0ZVNsaWRlKGNoaWxkLCBpbmRleCwgcG9zaXRpb24pIHtcbiAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAga2V5OiBgJHtjaGlsZC5rZXl9LWR1cGxpY2F0ZS0ke2luZGV4fS0ke3Bvc2l0aW9ufWAsXG4gICAgICBjbGFzc05hbWU6IGAke2NoaWxkLnByb3BzLmNsYXNzTmFtZSB8fCAnJ30gJHtzd2lwZXJQYXJhbXMuc2xpZGVEdXBsaWNhdGVDbGFzc31gXG4gICAgfSk7XG4gIH1cblxuICBpZiAoc3dpcGVyUGFyYW1zLmxvb3BGaWxsR3JvdXBXaXRoQmxhbmspIHtcbiAgICBjb25zdCBibGFua1NsaWRlc051bSA9IHN3aXBlclBhcmFtcy5zbGlkZXNQZXJHcm91cCAtIG1vZGlmaWVkU2xpZGVzLmxlbmd0aCAlIHN3aXBlclBhcmFtcy5zbGlkZXNQZXJHcm91cDtcblxuICAgIGlmIChibGFua1NsaWRlc051bSAhPT0gc3dpcGVyUGFyYW1zLnNsaWRlc1Blckdyb3VwKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGJsYW5rU2xpZGVzTnVtOyBpICs9IDEpIHtcbiAgICAgICAgY29uc3QgYmxhbmtTbGlkZSA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgICAgICBjbGFzc05hbWU6IGAke3N3aXBlclBhcmFtcy5zbGlkZUNsYXNzfSAke3N3aXBlclBhcmFtcy5zbGlkZUJsYW5rQ2xhc3N9YFxuICAgICAgICB9KTtcbiAgICAgICAgbW9kaWZpZWRTbGlkZXMucHVzaChibGFua1NsaWRlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoc3dpcGVyUGFyYW1zLnNsaWRlc1BlclZpZXcgPT09ICdhdXRvJyAmJiAhc3dpcGVyUGFyYW1zLmxvb3BlZFNsaWRlcykge1xuICAgIHN3aXBlclBhcmFtcy5sb29wZWRTbGlkZXMgPSBtb2RpZmllZFNsaWRlcy5sZW5ndGg7XG4gIH1cblxuICBjb25zdCBsb29wZWRTbGlkZXMgPSBjYWxjTG9vcGVkU2xpZGVzKG1vZGlmaWVkU2xpZGVzLCBzd2lwZXJQYXJhbXMpO1xuICBjb25zdCBwcmVwZW5kU2xpZGVzID0gW107XG4gIGNvbnN0IGFwcGVuZFNsaWRlcyA9IFtdO1xuICBtb2RpZmllZFNsaWRlcy5mb3JFYWNoKChjaGlsZCwgaW5kZXgpID0+IHtcbiAgICBpZiAoaW5kZXggPCBsb29wZWRTbGlkZXMpIHtcbiAgICAgIGFwcGVuZFNsaWRlcy5wdXNoKGR1cGxpY2F0ZVNsaWRlKGNoaWxkLCBpbmRleCwgJ3ByZXBlbmQnKSk7XG4gICAgfVxuXG4gICAgaWYgKGluZGV4IDwgbW9kaWZpZWRTbGlkZXMubGVuZ3RoICYmIGluZGV4ID49IG1vZGlmaWVkU2xpZGVzLmxlbmd0aCAtIGxvb3BlZFNsaWRlcykge1xuICAgICAgcHJlcGVuZFNsaWRlcy5wdXNoKGR1cGxpY2F0ZVNsaWRlKGNoaWxkLCBpbmRleCwgJ2FwcGVuZCcpKTtcbiAgICB9XG4gIH0pO1xuXG4gIGlmIChzd2lwZXIpIHtcbiAgICBzd2lwZXIubG9vcGVkU2xpZGVzID0gbG9vcGVkU2xpZGVzO1xuICB9XG5cbiAgcmV0dXJuIFsuLi5wcmVwZW5kU2xpZGVzLCAuLi5tb2RpZmllZFNsaWRlcywgLi4uYXBwZW5kU2xpZGVzXTtcbn1cblxuZXhwb3J0IHsgY2FsY0xvb3BlZFNsaWRlcywgcmVuZGVyTG9vcCB9OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/swiper/react/loop.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/react/params-list.js": +/*!**************************************************!*\ + !*** ./node_modules/swiper/react/params-list.js ***! + \**************************************************/ +/***/ (function(__unused_webpack___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 */ \"paramsList\": function() { return /* binding */ paramsList; }\n/* harmony export */ });\n/* underscore in name -> watch for changes */\nconst paramsList = ['modules', 'init', '_direction', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'resizeObserver', 'nested', 'focusableElements', '_enabled', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', '_spaceBetween', '_slidesPerView', '_grid', '_slidesPerGroup', '_slidesPerGroupSkip', '_slidesPerGroupAuto', '_centeredSlides', '_centeredSlidesBounds', '_slidesOffsetBefore', '_slidesOffsetAfter', 'normalizeSlideIndex', '_centerInsufficientSlides', '_watchOverflow', 'roundLengths', 'touchRatio', 'touchAngle', 'simulateTouch', '_shortSwipes', '_longSwipes', 'longSwipesRatio', 'longSwipesMs', '_followFinger', 'allowTouchMove', '_threshold', 'touchMoveStopPropagation', 'touchStartPreventDefault', 'touchStartForcePreventDefault', 'touchReleaseOnEdges', 'uniqueNavElements', '_resistance', '_resistanceRatio', '_watchSlidesProgress', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_preloadImages', 'updateOnImagesReady', '_loop', '_loopAdditionalSlides', '_loopedSlides', '_loopFillGroupWithBlank', 'loopPreventsSlide', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideBlankClass', 'slideActiveClass', 'slideDuplicateActiveClass', 'slideVisibleClass', 'slideDuplicateClass', 'slideNextClass', 'slideDuplicateNextClass', 'slidePrevClass', 'slideDuplicatePrevClass', 'wrapperClass', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren', // modules\n'a11y', 'autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'creativeEffect', 'cardsEffect', 'hashNavigation', 'history', 'keyboard', 'lazy', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom'];\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL3JlYWN0L3BhcmFtcy1saXN0LmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N3aXBlci9yZWFjdC9wYXJhbXMtbGlzdC5qcz80MjQ3Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIHVuZGVyc2NvcmUgaW4gbmFtZSAtPiB3YXRjaCBmb3IgY2hhbmdlcyAqL1xuY29uc3QgcGFyYW1zTGlzdCA9IFsnbW9kdWxlcycsICdpbml0JywgJ19kaXJlY3Rpb24nLCAndG91Y2hFdmVudHNUYXJnZXQnLCAnaW5pdGlhbFNsaWRlJywgJ19zcGVlZCcsICdjc3NNb2RlJywgJ3VwZGF0ZU9uV2luZG93UmVzaXplJywgJ3Jlc2l6ZU9ic2VydmVyJywgJ25lc3RlZCcsICdmb2N1c2FibGVFbGVtZW50cycsICdfZW5hYmxlZCcsICdfd2lkdGgnLCAnX2hlaWdodCcsICdwcmV2ZW50SW50ZXJhY3Rpb25PblRyYW5zaXRpb24nLCAndXNlckFnZW50JywgJ3VybCcsICdfZWRnZVN3aXBlRGV0ZWN0aW9uJywgJ19lZGdlU3dpcGVUaHJlc2hvbGQnLCAnX2ZyZWVNb2RlJywgJ19hdXRvSGVpZ2h0JywgJ3NldFdyYXBwZXJTaXplJywgJ3ZpcnR1YWxUcmFuc2xhdGUnLCAnX2VmZmVjdCcsICdicmVha3BvaW50cycsICdfc3BhY2VCZXR3ZWVuJywgJ19zbGlkZXNQZXJWaWV3JywgJ19ncmlkJywgJ19zbGlkZXNQZXJHcm91cCcsICdfc2xpZGVzUGVyR3JvdXBTa2lwJywgJ19zbGlkZXNQZXJHcm91cEF1dG8nLCAnX2NlbnRlcmVkU2xpZGVzJywgJ19jZW50ZXJlZFNsaWRlc0JvdW5kcycsICdfc2xpZGVzT2Zmc2V0QmVmb3JlJywgJ19zbGlkZXNPZmZzZXRBZnRlcicsICdub3JtYWxpemVTbGlkZUluZGV4JywgJ19jZW50ZXJJbnN1ZmZpY2llbnRTbGlkZXMnLCAnX3dhdGNoT3ZlcmZsb3cnLCAncm91bmRMZW5ndGhzJywgJ3RvdWNoUmF0aW8nLCAndG91Y2hBbmdsZScsICdzaW11bGF0ZVRvdWNoJywgJ19zaG9ydFN3aXBlcycsICdfbG9uZ1N3aXBlcycsICdsb25nU3dpcGVzUmF0aW8nLCAnbG9uZ1N3aXBlc01zJywgJ19mb2xsb3dGaW5nZXInLCAnYWxsb3dUb3VjaE1vdmUnLCAnX3RocmVzaG9sZCcsICd0b3VjaE1vdmVTdG9wUHJvcGFnYXRpb24nLCAndG91Y2hTdGFydFByZXZlbnREZWZhdWx0JywgJ3RvdWNoU3RhcnRGb3JjZVByZXZlbnREZWZhdWx0JywgJ3RvdWNoUmVsZWFzZU9uRWRnZXMnLCAndW5pcXVlTmF2RWxlbWVudHMnLCAnX3Jlc2lzdGFuY2UnLCAnX3Jlc2lzdGFuY2VSYXRpbycsICdfd2F0Y2hTbGlkZXNQcm9ncmVzcycsICdfZ3JhYkN1cnNvcicsICdwcmV2ZW50Q2xpY2tzJywgJ3ByZXZlbnRDbGlja3NQcm9wYWdhdGlvbicsICdfc2xpZGVUb0NsaWNrZWRTbGlkZScsICdfcHJlbG9hZEltYWdlcycsICd1cGRhdGVPbkltYWdlc1JlYWR5JywgJ19sb29wJywgJ19sb29wQWRkaXRpb25hbFNsaWRlcycsICdfbG9vcGVkU2xpZGVzJywgJ19sb29wRmlsbEdyb3VwV2l0aEJsYW5rJywgJ2xvb3BQcmV2ZW50c1NsaWRlJywgJ19hbGxvd1NsaWRlUHJldicsICdfYWxsb3dTbGlkZU5leHQnLCAnX3N3aXBlSGFuZGxlcicsICdfbm9Td2lwaW5nJywgJ25vU3dpcGluZ0NsYXNzJywgJ25vU3dpcGluZ1NlbGVjdG9yJywgJ3Bhc3NpdmVMaXN0ZW5lcnMnLCAnY29udGFpbmVyTW9kaWZpZXJDbGFzcycsICdzbGlkZUNsYXNzJywgJ3NsaWRlQmxhbmtDbGFzcycsICdzbGlkZUFjdGl2ZUNsYXNzJywgJ3NsaWRlRHVwbGljYXRlQWN0aXZlQ2xhc3MnLCAnc2xpZGVWaXNpYmxlQ2xhc3MnLCAnc2xpZGVEdXBsaWNhdGVDbGFzcycsICdzbGlkZU5leHRDbGFzcycsICdzbGlkZUR1cGxpY2F0ZU5leHRDbGFzcycsICdzbGlkZVByZXZDbGFzcycsICdzbGlkZUR1cGxpY2F0ZVByZXZDbGFzcycsICd3cmFwcGVyQ2xhc3MnLCAncnVuQ2FsbGJhY2tzT25Jbml0JywgJ29ic2VydmVyJywgJ29ic2VydmVQYXJlbnRzJywgJ29ic2VydmVTbGlkZUNoaWxkcmVuJywgLy8gbW9kdWxlc1xuJ2ExMXknLCAnYXV0b3BsYXknLCAnX2NvbnRyb2xsZXInLCAnY292ZXJmbG93RWZmZWN0JywgJ2N1YmVFZmZlY3QnLCAnZmFkZUVmZmVjdCcsICdmbGlwRWZmZWN0JywgJ2NyZWF0aXZlRWZmZWN0JywgJ2NhcmRzRWZmZWN0JywgJ2hhc2hOYXZpZ2F0aW9uJywgJ2hpc3RvcnknLCAna2V5Ym9hcmQnLCAnbGF6eScsICdtb3VzZXdoZWVsJywgJ19uYXZpZ2F0aW9uJywgJ19wYWdpbmF0aW9uJywgJ3BhcmFsbGF4JywgJ19zY3JvbGxiYXInLCAnX3RodW1icycsICd2aXJ0dWFsJywgJ3pvb20nXTtcbmV4cG9ydCB7IHBhcmFtc0xpc3QgfTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/swiper/react/params-list.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/react/swiper-react.js": +/*!***************************************************!*\ + !*** ./node_modules/swiper/react/swiper-react.js ***! + \***************************************************/ +/***/ (function(__unused_webpack___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 */ \"Swiper\": function() { return /* reexport safe */ _swiper_js__WEBPACK_IMPORTED_MODULE_0__.Swiper; },\n/* harmony export */ \"SwiperSlide\": function() { return /* reexport safe */ _swiper_slide_js__WEBPACK_IMPORTED_MODULE_1__.SwiperSlide; }\n/* harmony export */ });\n/* harmony import */ var _swiper_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./swiper.js */ \"./node_modules/swiper/react/swiper.js\");\n/* harmony import */ var _swiper_slide_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./swiper-slide.js */ \"./node_modules/swiper/react/swiper-slide.js\");\n/**\n * Swiper React 7.3.0\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2021 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: November 18, 2021\n */\n\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL3JlYWN0L3N3aXBlci1yZWFjdC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFcUM7QUFDVyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc3dpcGVyL3JlYWN0L3N3aXBlci1yZWFjdC5qcz85OTExIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU3dpcGVyIFJlYWN0IDcuMy4wXG4gKiBNb3N0IG1vZGVybiBtb2JpbGUgdG91Y2ggc2xpZGVyIGFuZCBmcmFtZXdvcmsgd2l0aCBoYXJkd2FyZSBhY2NlbGVyYXRlZCB0cmFuc2l0aW9uc1xuICogaHR0cHM6Ly9zd2lwZXJqcy5jb21cbiAqXG4gKiBDb3B5cmlnaHQgMjAxNC0yMDIxIFZsYWRpbWlyIEtoYXJsYW1waWRpXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlXG4gKlxuICogUmVsZWFzZWQgb246IE5vdmVtYmVyIDE4LCAyMDIxXG4gKi9cblxuaW1wb3J0IHsgU3dpcGVyIH0gZnJvbSAnLi9zd2lwZXIuanMnO1xuaW1wb3J0IHsgU3dpcGVyU2xpZGUgfSBmcm9tICcuL3N3aXBlci1zbGlkZS5qcyc7XG5leHBvcnQgeyBTd2lwZXIsIFN3aXBlclNsaWRlIH07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/swiper/react/swiper-react.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/react/swiper-slide.js": +/*!***************************************************!*\ + !*** ./node_modules/swiper/react/swiper-slide.js ***! + \***************************************************/ +/***/ (function(__unused_webpack___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 */ \"SwiperSlide\": function() { return /* binding */ SwiperSlide; }\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils.js */ \"./node_modules/swiper/react/utils.js\");\n/* harmony import */ var _use_isomorphic_layout_effect_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./use-isomorphic-layout-effect.js */ \"./node_modules/swiper/react/use-isomorphic-layout-effect.js\");\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n\n\n\nconst SwiperSlide = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(({\n tag: Tag = 'div',\n children,\n className = '',\n swiper,\n zoom,\n virtualIndex,\n ...rest\n} = {}, externalRef) => {\n const slideElRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n const [slideClasses, setSlideClasses] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)('swiper-slide');\n\n function updateClasses(_s, el, classNames) {\n if (el === slideElRef.current) {\n setSlideClasses(classNames);\n }\n }\n\n (0,_use_isomorphic_layout_effect_js__WEBPACK_IMPORTED_MODULE_2__.useIsomorphicLayoutEffect)(() => {\n if (externalRef) {\n externalRef.current = slideElRef.current;\n }\n\n if (!slideElRef.current || !swiper) {\n return;\n }\n\n if (swiper.destroyed) {\n if (slideClasses !== 'swiper-slide') {\n setSlideClasses('swiper-slide');\n }\n\n return;\n }\n\n swiper.on('_slideClass', updateClasses); // eslint-disable-next-line\n\n return () => {\n if (!swiper) return;\n swiper.off('_slideClass', updateClasses);\n };\n });\n (0,_use_isomorphic_layout_effect_js__WEBPACK_IMPORTED_MODULE_2__.useIsomorphicLayoutEffect)(() => {\n if (swiper && slideElRef.current) {\n setSlideClasses(swiper.getSlideClasses(slideElRef.current));\n }\n }, [swiper]);\n let slideData;\n\n if (typeof children === 'function') {\n slideData = {\n isActive: slideClasses.indexOf('swiper-slide-active') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-active') >= 0,\n isVisible: slideClasses.indexOf('swiper-slide-visible') >= 0,\n isDuplicate: slideClasses.indexOf('swiper-slide-duplicate') >= 0,\n isPrev: slideClasses.indexOf('swiper-slide-prev') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-prev') >= 0,\n isNext: slideClasses.indexOf('swiper-slide-next') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-next') >= 0\n };\n }\n\n const renderChildren = () => {\n return typeof children === 'function' ? children(slideData) : children;\n };\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(Tag, _extends({\n ref: slideElRef,\n className: (0,_utils_js__WEBPACK_IMPORTED_MODULE_1__.uniqueClasses)(`${slideClasses}${className ? ` ${className}` : ''}`),\n \"data-swiper-slide-index\": virtualIndex\n }, rest), zoom ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n className: \"swiper-zoom-container\",\n \"data-swiper-zoom\": typeof zoom === 'number' ? zoom : undefined\n }, renderChildren()) : renderChildren());\n});\nSwiperSlide.displayName = 'SwiperSlide';\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL3JlYWN0L3N3aXBlci1zbGlkZS5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsc0JBQXNCLGdEQUFnRCxnQkFBZ0Isc0JBQXNCLE9BQU8sMkJBQTJCLDBCQUEwQix5REFBeUQsaUNBQWlDLGtCQUFrQjs7QUFFeE47QUFDakI7QUFDbUM7QUFDOUUsaUNBQWlDLGlEQUFVO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRSxJQUFJO0FBQ04scUJBQXFCLDZDQUFNO0FBQzNCLDBDQUEwQywrQ0FBUTs7QUFFbEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxFQUFFLDJGQUF5QjtBQUMzQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEsNkNBQTZDOztBQUU3QztBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCxFQUFFLDJGQUF5QjtBQUMzQjtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSxzQkFBc0IsZ0RBQW1CO0FBQ3pDO0FBQ0EsZUFBZSx3REFBYSxJQUFJLGFBQWEsRUFBRSxnQkFBZ0IsVUFBVSxPQUFPO0FBQ2hGO0FBQ0EsR0FBRyw2QkFBNkIsZ0RBQW1CO0FBQ25EO0FBQ0E7QUFDQSxHQUFHO0FBQ0gsQ0FBQztBQUNEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zd2lwZXIvcmVhY3Qvc3dpcGVyLXNsaWRlLmpzP2VhNzgiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cblxuaW1wb3J0IFJlYWN0LCB7IHVzZVJlZiwgdXNlU3RhdGUsIGZvcndhcmRSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1bmlxdWVDbGFzc2VzIH0gZnJvbSAnLi91dGlscy5qcyc7XG5pbXBvcnQgeyB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0IH0gZnJvbSAnLi91c2UtaXNvbW9ycGhpYy1sYXlvdXQtZWZmZWN0LmpzJztcbmNvbnN0IFN3aXBlclNsaWRlID0gLyojX19QVVJFX18qL2ZvcndhcmRSZWYoKHtcbiAgdGFnOiBUYWcgPSAnZGl2JyxcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSA9ICcnLFxuICBzd2lwZXIsXG4gIHpvb20sXG4gIHZpcnR1YWxJbmRleCxcbiAgLi4ucmVzdFxufSA9IHt9LCBleHRlcm5hbFJlZikgPT4ge1xuICBjb25zdCBzbGlkZUVsUmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCBbc2xpZGVDbGFzc2VzLCBzZXRTbGlkZUNsYXNzZXNdID0gdXNlU3RhdGUoJ3N3aXBlci1zbGlkZScpO1xuXG4gIGZ1bmN0aW9uIHVwZGF0ZUNsYXNzZXMoX3MsIGVsLCBjbGFzc05hbWVzKSB7XG4gICAgaWYgKGVsID09PSBzbGlkZUVsUmVmLmN1cnJlbnQpIHtcbiAgICAgIHNldFNsaWRlQ2xhc3NlcyhjbGFzc05hbWVzKTtcbiAgICB9XG4gIH1cblxuICB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZXh0ZXJuYWxSZWYpIHtcbiAgICAgIGV4dGVybmFsUmVmLmN1cnJlbnQgPSBzbGlkZUVsUmVmLmN1cnJlbnQ7XG4gICAgfVxuXG4gICAgaWYgKCFzbGlkZUVsUmVmLmN1cnJlbnQgfHwgIXN3aXBlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChzd2lwZXIuZGVzdHJveWVkKSB7XG4gICAgICBpZiAoc2xpZGVDbGFzc2VzICE9PSAnc3dpcGVyLXNsaWRlJykge1xuICAgICAgICBzZXRTbGlkZUNsYXNzZXMoJ3N3aXBlci1zbGlkZScpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3dpcGVyLm9uKCdfc2xpZGVDbGFzcycsIHVwZGF0ZUNsYXNzZXMpOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAoIXN3aXBlcikgcmV0dXJuO1xuICAgICAgc3dpcGVyLm9mZignX3NsaWRlQ2xhc3MnLCB1cGRhdGVDbGFzc2VzKTtcbiAgICB9O1xuICB9KTtcbiAgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHN3aXBlciAmJiBzbGlkZUVsUmVmLmN1cnJlbnQpIHtcbiAgICAgIHNldFNsaWRlQ2xhc3Nlcyhzd2lwZXIuZ2V0U2xpZGVDbGFzc2VzKHNsaWRlRWxSZWYuY3VycmVudCkpO1xuICAgIH1cbiAgfSwgW3N3aXBlcl0pO1xuICBsZXQgc2xpZGVEYXRhO1xuXG4gIGlmICh0eXBlb2YgY2hpbGRyZW4gPT09ICdmdW5jdGlvbicpIHtcbiAgICBzbGlkZURhdGEgPSB7XG4gICAgICBpc0FjdGl2ZTogc2xpZGVDbGFzc2VzLmluZGV4T2YoJ3N3aXBlci1zbGlkZS1hY3RpdmUnKSA+PSAwIHx8IHNsaWRlQ2xhc3Nlcy5pbmRleE9mKCdzd2lwZXItc2xpZGUtZHVwbGljYXRlLWFjdGl2ZScpID49IDAsXG4gICAgICBpc1Zpc2libGU6IHNsaWRlQ2xhc3Nlcy5pbmRleE9mKCdzd2lwZXItc2xpZGUtdmlzaWJsZScpID49IDAsXG4gICAgICBpc0R1cGxpY2F0ZTogc2xpZGVDbGFzc2VzLmluZGV4T2YoJ3N3aXBlci1zbGlkZS1kdXBsaWNhdGUnKSA+PSAwLFxuICAgICAgaXNQcmV2OiBzbGlkZUNsYXNzZXMuaW5kZXhPZignc3dpcGVyLXNsaWRlLXByZXYnKSA+PSAwIHx8IHNsaWRlQ2xhc3Nlcy5pbmRleE9mKCdzd2lwZXItc2xpZGUtZHVwbGljYXRlLXByZXYnKSA+PSAwLFxuICAgICAgaXNOZXh0OiBzbGlkZUNsYXNzZXMuaW5kZXhPZignc3dpcGVyLXNsaWRlLW5leHQnKSA+PSAwIHx8IHNsaWRlQ2xhc3Nlcy5pbmRleE9mKCdzd2lwZXItc2xpZGUtZHVwbGljYXRlLW5leHQnKSA+PSAwXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gKCkgPT4ge1xuICAgIHJldHVybiB0eXBlb2YgY2hpbGRyZW4gPT09ICdmdW5jdGlvbicgPyBjaGlsZHJlbihzbGlkZURhdGEpIDogY2hpbGRyZW47XG4gIH07XG5cbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFRhZywgX2V4dGVuZHMoe1xuICAgIHJlZjogc2xpZGVFbFJlZixcbiAgICBjbGFzc05hbWU6IHVuaXF1ZUNsYXNzZXMoYCR7c2xpZGVDbGFzc2VzfSR7Y2xhc3NOYW1lID8gYCAke2NsYXNzTmFtZX1gIDogJyd9YCksXG4gICAgXCJkYXRhLXN3aXBlci1zbGlkZS1pbmRleFwiOiB2aXJ0dWFsSW5kZXhcbiAgfSwgcmVzdCksIHpvb20gPyAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgY2xhc3NOYW1lOiBcInN3aXBlci16b29tLWNvbnRhaW5lclwiLFxuICAgIFwiZGF0YS1zd2lwZXItem9vbVwiOiB0eXBlb2Ygem9vbSA9PT0gJ251bWJlcicgPyB6b29tIDogdW5kZWZpbmVkXG4gIH0sIHJlbmRlckNoaWxkcmVuKCkpIDogcmVuZGVyQ2hpbGRyZW4oKSk7XG59KTtcblN3aXBlclNsaWRlLmRpc3BsYXlOYW1lID0gJ1N3aXBlclNsaWRlJztcbmV4cG9ydCB7IFN3aXBlclNsaWRlIH07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/swiper/react/swiper-slide.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/react/swiper.js": +/*!*********************************************!*\ + !*** ./node_modules/swiper/react/swiper.js ***! + \*********************************************/ +/***/ (function(__unused_webpack___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 */ \"Swiper\": function() { return /* binding */ Swiper; }\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var _get_params_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./get-params.js */ \"./node_modules/swiper/react/get-params.js\");\n/* harmony import */ var _init_swiper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./init-swiper.js */ \"./node_modules/swiper/react/init-swiper.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils.js */ \"./node_modules/swiper/react/utils.js\");\n/* harmony import */ var _loop_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./loop.js */ \"./node_modules/swiper/react/loop.js\");\n/* harmony import */ var _get_changed_params_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./get-changed-params.js */ \"./node_modules/swiper/react/get-changed-params.js\");\n/* harmony import */ var _get_children_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./get-children.js */ \"./node_modules/swiper/react/get-children.js\");\n/* harmony import */ var _update_swiper_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./update-swiper.js */ \"./node_modules/swiper/react/update-swiper.js\");\n/* harmony import */ var _virtual_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./virtual.js */ \"./node_modules/swiper/react/virtual.js\");\n/* harmony import */ var _use_isomorphic_layout_effect_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./use-isomorphic-layout-effect.js */ \"./node_modules/swiper/react/use-isomorphic-layout-effect.js\");\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n\n\n\n\n\n\n\n\n\n\nconst Swiper = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(({\n className,\n tag: Tag = 'div',\n wrapperTag: WrapperTag = 'div',\n children,\n onSwiper,\n ...rest\n} = {}, externalElRef) => {\n let eventsAssigned = false;\n const [containerClasses, setContainerClasses] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)('swiper');\n const [virtualData, setVirtualData] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);\n const [breakpointChanged, setBreakpointChanged] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n const initializedRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(false);\n const swiperElRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n const swiperRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n const oldPassedParamsRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n const oldSlides = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n const nextElRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n const prevElRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n const paginationElRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n const scrollbarElRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n const {\n params: swiperParams,\n passedParams,\n rest: restProps,\n events\n } = (0,_get_params_js__WEBPACK_IMPORTED_MODULE_1__.getParams)(rest);\n const {\n slides,\n slots\n } = (0,_get_children_js__WEBPACK_IMPORTED_MODULE_6__.getChildren)(children);\n\n const onBeforeBreakpoint = () => {\n setBreakpointChanged(!breakpointChanged);\n };\n\n Object.assign(swiperParams.on, {\n _containerClasses(swiper, classes) {\n setContainerClasses(classes);\n }\n\n });\n\n if (!swiperElRef.current) {\n // init swiper\n Object.assign(swiperParams.on, events);\n eventsAssigned = true;\n swiperRef.current = (0,_init_swiper_js__WEBPACK_IMPORTED_MODULE_2__.initSwiper)(swiperParams);\n\n swiperRef.current.loopCreate = () => {};\n\n swiperRef.current.loopDestroy = () => {};\n\n if (swiperParams.loop) {\n swiperRef.current.loopedSlides = (0,_loop_js__WEBPACK_IMPORTED_MODULE_4__.calcLoopedSlides)(slides, swiperParams);\n }\n\n if (swiperRef.current.virtual && swiperRef.current.params.virtual.enabled) {\n swiperRef.current.virtual.slides = slides;\n const extendWith = {\n cache: false,\n slides,\n renderExternal: setVirtualData,\n renderExternalUpdate: false\n };\n (0,_utils_js__WEBPACK_IMPORTED_MODULE_3__.extend)(swiperRef.current.params.virtual, extendWith);\n (0,_utils_js__WEBPACK_IMPORTED_MODULE_3__.extend)(swiperRef.current.originalParams.virtual, extendWith);\n }\n } // Listen for breakpoints change\n\n\n if (swiperRef.current) {\n swiperRef.current.on('_beforeBreakpoint', onBeforeBreakpoint);\n }\n\n const attachEvents = () => {\n if (eventsAssigned || !events || !swiperRef.current) return;\n Object.keys(events).forEach(eventName => {\n swiperRef.current.on(eventName, events[eventName]);\n });\n };\n\n const detachEvents = () => {\n if (!events || !swiperRef.current) return;\n Object.keys(events).forEach(eventName => {\n swiperRef.current.off(eventName, events[eventName]);\n });\n };\n\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n return () => {\n if (swiperRef.current) swiperRef.current.off('_beforeBreakpoint', onBeforeBreakpoint);\n };\n }); // set initialized flag\n\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (!initializedRef.current && swiperRef.current) {\n swiperRef.current.emitSlidesClasses();\n initializedRef.current = true;\n }\n }); // mount swiper\n\n (0,_use_isomorphic_layout_effect_js__WEBPACK_IMPORTED_MODULE_9__.useIsomorphicLayoutEffect)(() => {\n if (externalElRef) {\n externalElRef.current = swiperElRef.current;\n }\n\n if (!swiperElRef.current) return;\n (0,_init_swiper_js__WEBPACK_IMPORTED_MODULE_2__.mountSwiper)({\n el: swiperElRef.current,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n paginationEl: paginationElRef.current,\n scrollbarEl: scrollbarElRef.current,\n swiper: swiperRef.current\n }, swiperParams);\n if (onSwiper) onSwiper(swiperRef.current); // eslint-disable-next-line\n\n return () => {\n if (swiperRef.current && !swiperRef.current.destroyed) {\n swiperRef.current.destroy(true, false);\n }\n };\n }, []); // watch for params change\n\n (0,_use_isomorphic_layout_effect_js__WEBPACK_IMPORTED_MODULE_9__.useIsomorphicLayoutEffect)(() => {\n attachEvents();\n const changedParams = (0,_get_changed_params_js__WEBPACK_IMPORTED_MODULE_5__.getChangedParams)(passedParams, oldPassedParamsRef.current, slides, oldSlides.current);\n oldPassedParamsRef.current = passedParams;\n oldSlides.current = slides;\n\n if (changedParams.length && swiperRef.current && !swiperRef.current.destroyed) {\n (0,_update_swiper_js__WEBPACK_IMPORTED_MODULE_7__.updateSwiper)({\n swiper: swiperRef.current,\n slides,\n passedParams,\n changedParams,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n scrollbarEl: scrollbarElRef.current,\n paginationEl: paginationElRef.current\n });\n }\n\n return () => {\n detachEvents();\n };\n }); // update on virtual update\n\n (0,_use_isomorphic_layout_effect_js__WEBPACK_IMPORTED_MODULE_9__.useIsomorphicLayoutEffect)(() => {\n (0,_virtual_js__WEBPACK_IMPORTED_MODULE_8__.updateOnVirtualData)(swiperRef.current);\n }, [virtualData]); // bypass swiper instance to slides\n\n function renderSlides() {\n if (swiperParams.virtual) {\n return (0,_virtual_js__WEBPACK_IMPORTED_MODULE_8__.renderVirtual)(swiperRef.current, slides, virtualData);\n }\n\n if (!swiperParams.loop || swiperRef.current && swiperRef.current.destroyed) {\n return slides.map(child => {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(child, {\n swiper: swiperRef.current\n });\n });\n }\n\n return (0,_loop_js__WEBPACK_IMPORTED_MODULE_4__.renderLoop)(swiperRef.current, slides, swiperParams);\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(Tag, _extends({\n ref: swiperElRef,\n className: (0,_utils_js__WEBPACK_IMPORTED_MODULE_3__.uniqueClasses)(`${containerClasses}${className ? ` ${className}` : ''}`)\n }, restProps), slots['container-start'], (0,_utils_js__WEBPACK_IMPORTED_MODULE_3__.needsNavigation)(swiperParams) && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n ref: prevElRef,\n className: \"swiper-button-prev\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n ref: nextElRef,\n className: \"swiper-button-next\"\n })), (0,_utils_js__WEBPACK_IMPORTED_MODULE_3__.needsScrollbar)(swiperParams) && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n ref: scrollbarElRef,\n className: \"swiper-scrollbar\"\n }), (0,_utils_js__WEBPACK_IMPORTED_MODULE_3__.needsPagination)(swiperParams) && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n ref: paginationElRef,\n className: \"swiper-pagination\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(WrapperTag, {\n className: \"swiper-wrapper\"\n }, slots['wrapper-start'], renderSlides(), slots['wrapper-end']), slots['container-end']);\n});\nSwiper.displayName = 'Swiper';\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL3JlYWN0L3N3aXBlci5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFBLHNCQUFzQixnREFBZ0QsZ0JBQWdCLHNCQUFzQixPQUFPLDJCQUEyQiwwQkFBMEIseURBQXlELGlDQUFpQyxrQkFBa0I7O0FBRTdNO0FBQzNCO0FBQ2U7QUFDMEM7QUFDNUM7QUFDRTtBQUNYO0FBQ0U7QUFDZ0I7QUFDWTtBQUM5RSw0QkFBNEIsaURBQVU7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRSxJQUFJO0FBQ047QUFDQSxrREFBa0QsK0NBQVE7QUFDMUQsd0NBQXdDLCtDQUFRO0FBQ2hELG9EQUFvRCwrQ0FBUTtBQUM1RCx5QkFBeUIsNkNBQU07QUFDL0Isc0JBQXNCLDZDQUFNO0FBQzVCLG9CQUFvQiw2Q0FBTTtBQUMxQiw2QkFBNkIsNkNBQU07QUFDbkMsb0JBQW9CLDZDQUFNO0FBQzFCLG9CQUFvQiw2Q0FBTTtBQUMxQixvQkFBb0IsNkNBQU07QUFDMUIsMEJBQTBCLDZDQUFNO0FBQ2hDLHlCQUF5Qiw2Q0FBTTtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxFQUFFLHlEQUFTO0FBQ2Y7QUFDQTtBQUNBO0FBQ0EsSUFBSSxFQUFFLDZEQUFXOztBQUVqQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QiwyREFBVTs7QUFFbEM7O0FBRUE7O0FBRUE7QUFDQSx1Q0FBdUMsMERBQWdCO0FBQ3ZEOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLGlEQUFNO0FBQ1osTUFBTSxpREFBTTtBQUNaO0FBQ0EsSUFBSTs7O0FBR0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBLEVBQUUsZ0RBQVM7QUFDWDtBQUNBO0FBQ0E7QUFDQSxHQUFHLEdBQUc7O0FBRU4sRUFBRSxnREFBUztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxHQUFHOztBQUVOLEVBQUUsMkZBQXlCO0FBQzNCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLElBQUksNERBQVc7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsK0NBQStDOztBQUUvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxPQUFPOztBQUVWLEVBQUUsMkZBQXlCO0FBQzNCO0FBQ0EsMEJBQTBCLHdFQUFnQjtBQUMxQztBQUNBOztBQUVBO0FBQ0EsTUFBTSwrREFBWTtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsR0FBRzs7QUFFTixFQUFFLDJGQUF5QjtBQUMzQixJQUFJLGdFQUFtQjtBQUN2QixHQUFHLGtCQUFrQjs7QUFFckI7QUFDQTtBQUNBLGFBQWEsMERBQWE7QUFDMUI7O0FBRUE7QUFDQTtBQUNBLDRCQUE0QiwrQ0FBa0I7QUFDOUM7QUFDQSxTQUFTO0FBQ1QsT0FBTztBQUNQOztBQUVBLFdBQVcsb0RBQVU7QUFDckI7O0FBRUEsc0JBQXNCLGdEQUFtQjtBQUN6QztBQUNBLGVBQWUsd0RBQWEsSUFBSSxpQkFBaUIsRUFBRSxnQkFBZ0IsVUFBVSxPQUFPO0FBQ3BGLEdBQUcsd0NBQXdDLDBEQUFlLCtCQUErQixnREFBbUIsQ0FBQywyQ0FBYyxxQkFBcUIsZ0RBQW1CO0FBQ25LO0FBQ0E7QUFDQSxHQUFHLGdCQUFnQixnREFBbUI7QUFDdEM7QUFDQTtBQUNBLEdBQUcsSUFBSSx5REFBYywrQkFBK0IsZ0RBQW1CO0FBQ3ZFO0FBQ0E7QUFDQSxHQUFHLEdBQUcsMERBQWUsK0JBQStCLGdEQUFtQjtBQUN2RTtBQUNBO0FBQ0EsR0FBRyxnQkFBZ0IsZ0RBQW1CO0FBQ3RDO0FBQ0EsR0FBRztBQUNILENBQUM7QUFDRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc3dpcGVyL3JlYWN0L3N3aXBlci5qcz9lM2ZiIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9leHRlbmRzKCkgeyBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5cbmltcG9ydCBSZWFjdCwgeyB1c2VSZWYsIHVzZVN0YXRlLCB1c2VFZmZlY3QsIGZvcndhcmRSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBnZXRQYXJhbXMgfSBmcm9tICcuL2dldC1wYXJhbXMuanMnO1xuaW1wb3J0IHsgaW5pdFN3aXBlciwgbW91bnRTd2lwZXIgfSBmcm9tICcuL2luaXQtc3dpcGVyLmpzJztcbmltcG9ydCB7IG5lZWRzU2Nyb2xsYmFyLCBuZWVkc05hdmlnYXRpb24sIG5lZWRzUGFnaW5hdGlvbiwgdW5pcXVlQ2xhc3NlcywgZXh0ZW5kIH0gZnJvbSAnLi91dGlscy5qcyc7XG5pbXBvcnQgeyByZW5kZXJMb29wLCBjYWxjTG9vcGVkU2xpZGVzIH0gZnJvbSAnLi9sb29wLmpzJztcbmltcG9ydCB7IGdldENoYW5nZWRQYXJhbXMgfSBmcm9tICcuL2dldC1jaGFuZ2VkLXBhcmFtcy5qcyc7XG5pbXBvcnQgeyBnZXRDaGlsZHJlbiB9IGZyb20gJy4vZ2V0LWNoaWxkcmVuLmpzJztcbmltcG9ydCB7IHVwZGF0ZVN3aXBlciB9IGZyb20gJy4vdXBkYXRlLXN3aXBlci5qcyc7XG5pbXBvcnQgeyByZW5kZXJWaXJ0dWFsLCB1cGRhdGVPblZpcnR1YWxEYXRhIH0gZnJvbSAnLi92aXJ0dWFsLmpzJztcbmltcG9ydCB7IHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QgfSBmcm9tICcuL3VzZS1pc29tb3JwaGljLWxheW91dC1lZmZlY3QuanMnO1xuY29uc3QgU3dpcGVyID0gLyojX19QVVJFX18qL2ZvcndhcmRSZWYoKHtcbiAgY2xhc3NOYW1lLFxuICB0YWc6IFRhZyA9ICdkaXYnLFxuICB3cmFwcGVyVGFnOiBXcmFwcGVyVGFnID0gJ2RpdicsXG4gIGNoaWxkcmVuLFxuICBvblN3aXBlcixcbiAgLi4ucmVzdFxufSA9IHt9LCBleHRlcm5hbEVsUmVmKSA9PiB7XG4gIGxldCBldmVudHNBc3NpZ25lZCA9IGZhbHNlO1xuICBjb25zdCBbY29udGFpbmVyQ2xhc3Nlcywgc2V0Q29udGFpbmVyQ2xhc3Nlc10gPSB1c2VTdGF0ZSgnc3dpcGVyJyk7XG4gIGNvbnN0IFt2aXJ0dWFsRGF0YSwgc2V0VmlydHVhbERhdGFdID0gdXNlU3RhdGUobnVsbCk7XG4gIGNvbnN0IFticmVha3BvaW50Q2hhbmdlZCwgc2V0QnJlYWtwb2ludENoYW5nZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBpbml0aWFsaXplZFJlZiA9IHVzZVJlZihmYWxzZSk7XG4gIGNvbnN0IHN3aXBlckVsUmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCBzd2lwZXJSZWYgPSB1c2VSZWYobnVsbCk7XG4gIGNvbnN0IG9sZFBhc3NlZFBhcmFtc1JlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3Qgb2xkU2xpZGVzID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCBuZXh0RWxSZWYgPSB1c2VSZWYobnVsbCk7XG4gIGNvbnN0IHByZXZFbFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgcGFnaW5hdGlvbkVsUmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCBzY3JvbGxiYXJFbFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3Qge1xuICAgIHBhcmFtczogc3dpcGVyUGFyYW1zLFxuICAgIHBhc3NlZFBhcmFtcyxcbiAgICByZXN0OiByZXN0UHJvcHMsXG4gICAgZXZlbnRzXG4gIH0gPSBnZXRQYXJhbXMocmVzdCk7XG4gIGNvbnN0IHtcbiAgICBzbGlkZXMsXG4gICAgc2xvdHNcbiAgfSA9IGdldENoaWxkcmVuKGNoaWxkcmVuKTtcblxuICBjb25zdCBvbkJlZm9yZUJyZWFrcG9pbnQgPSAoKSA9PiB7XG4gICAgc2V0QnJlYWtwb2ludENoYW5nZWQoIWJyZWFrcG9pbnRDaGFuZ2VkKTtcbiAgfTtcblxuICBPYmplY3QuYXNzaWduKHN3aXBlclBhcmFtcy5vbiwge1xuICAgIF9jb250YWluZXJDbGFzc2VzKHN3aXBlciwgY2xhc3Nlcykge1xuICAgICAgc2V0Q29udGFpbmVyQ2xhc3NlcyhjbGFzc2VzKTtcbiAgICB9XG5cbiAgfSk7XG5cbiAgaWYgKCFzd2lwZXJFbFJlZi5jdXJyZW50KSB7XG4gICAgLy8gaW5pdCBzd2lwZXJcbiAgICBPYmplY3QuYXNzaWduKHN3aXBlclBhcmFtcy5vbiwgZXZlbnRzKTtcbiAgICBldmVudHNBc3NpZ25lZCA9IHRydWU7XG4gICAgc3dpcGVyUmVmLmN1cnJlbnQgPSBpbml0U3dpcGVyKHN3aXBlclBhcmFtcyk7XG5cbiAgICBzd2lwZXJSZWYuY3VycmVudC5sb29wQ3JlYXRlID0gKCkgPT4ge307XG5cbiAgICBzd2lwZXJSZWYuY3VycmVudC5sb29wRGVzdHJveSA9ICgpID0+IHt9O1xuXG4gICAgaWYgKHN3aXBlclBhcmFtcy5sb29wKSB7XG4gICAgICBzd2lwZXJSZWYuY3VycmVudC5sb29wZWRTbGlkZXMgPSBjYWxjTG9vcGVkU2xpZGVzKHNsaWRlcywgc3dpcGVyUGFyYW1zKTtcbiAgICB9XG5cbiAgICBpZiAoc3dpcGVyUmVmLmN1cnJlbnQudmlydHVhbCAmJiBzd2lwZXJSZWYuY3VycmVudC5wYXJhbXMudmlydHVhbC5lbmFibGVkKSB7XG4gICAgICBzd2lwZXJSZWYuY3VycmVudC52aXJ0dWFsLnNsaWRlcyA9IHNsaWRlcztcbiAgICAgIGNvbnN0IGV4dGVuZFdpdGggPSB7XG4gICAgICAgIGNhY2hlOiBmYWxzZSxcbiAgICAgICAgc2xpZGVzLFxuICAgICAgICByZW5kZXJFeHRlcm5hbDogc2V0VmlydHVhbERhdGEsXG4gICAgICAgIHJlbmRlckV4dGVybmFsVXBkYXRlOiBmYWxzZVxuICAgICAgfTtcbiAgICAgIGV4dGVuZChzd2lwZXJSZWYuY3VycmVudC5wYXJhbXMudmlydHVhbCwgZXh0ZW5kV2l0aCk7XG4gICAgICBleHRlbmQoc3dpcGVyUmVmLmN1cnJlbnQub3JpZ2luYWxQYXJhbXMudmlydHVhbCwgZXh0ZW5kV2l0aCk7XG4gICAgfVxuICB9IC8vIExpc3RlbiBmb3IgYnJlYWtwb2ludHMgY2hhbmdlXG5cblxuICBpZiAoc3dpcGVyUmVmLmN1cnJlbnQpIHtcbiAgICBzd2lwZXJSZWYuY3VycmVudC5vbignX2JlZm9yZUJyZWFrcG9pbnQnLCBvbkJlZm9yZUJyZWFrcG9pbnQpO1xuICB9XG5cbiAgY29uc3QgYXR0YWNoRXZlbnRzID0gKCkgPT4ge1xuICAgIGlmIChldmVudHNBc3NpZ25lZCB8fCAhZXZlbnRzIHx8ICFzd2lwZXJSZWYuY3VycmVudCkgcmV0dXJuO1xuICAgIE9iamVjdC5rZXlzKGV2ZW50cykuZm9yRWFjaChldmVudE5hbWUgPT4ge1xuICAgICAgc3dpcGVyUmVmLmN1cnJlbnQub24oZXZlbnROYW1lLCBldmVudHNbZXZlbnROYW1lXSk7XG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgZGV0YWNoRXZlbnRzID0gKCkgPT4ge1xuICAgIGlmICghZXZlbnRzIHx8ICFzd2lwZXJSZWYuY3VycmVudCkgcmV0dXJuO1xuICAgIE9iamVjdC5rZXlzKGV2ZW50cykuZm9yRWFjaChldmVudE5hbWUgPT4ge1xuICAgICAgc3dpcGVyUmVmLmN1cnJlbnQub2ZmKGV2ZW50TmFtZSwgZXZlbnRzW2V2ZW50TmFtZV0pO1xuICAgIH0pO1xuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChzd2lwZXJSZWYuY3VycmVudCkgc3dpcGVyUmVmLmN1cnJlbnQub2ZmKCdfYmVmb3JlQnJlYWtwb2ludCcsIG9uQmVmb3JlQnJlYWtwb2ludCk7XG4gICAgfTtcbiAgfSk7IC8vIHNldCBpbml0aWFsaXplZCBmbGFnXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWluaXRpYWxpemVkUmVmLmN1cnJlbnQgJiYgc3dpcGVyUmVmLmN1cnJlbnQpIHtcbiAgICAgIHN3aXBlclJlZi5jdXJyZW50LmVtaXRTbGlkZXNDbGFzc2VzKCk7XG4gICAgICBpbml0aWFsaXplZFJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICB9XG4gIH0pOyAvLyBtb3VudCBzd2lwZXJcblxuICB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZXh0ZXJuYWxFbFJlZikge1xuICAgICAgZXh0ZXJuYWxFbFJlZi5jdXJyZW50ID0gc3dpcGVyRWxSZWYuY3VycmVudDtcbiAgICB9XG5cbiAgICBpZiAoIXN3aXBlckVsUmVmLmN1cnJlbnQpIHJldHVybjtcbiAgICBtb3VudFN3aXBlcih7XG4gICAgICBlbDogc3dpcGVyRWxSZWYuY3VycmVudCxcbiAgICAgIG5leHRFbDogbmV4dEVsUmVmLmN1cnJlbnQsXG4gICAgICBwcmV2RWw6IHByZXZFbFJlZi5jdXJyZW50LFxuICAgICAgcGFnaW5hdGlvbkVsOiBwYWdpbmF0aW9uRWxSZWYuY3VycmVudCxcbiAgICAgIHNjcm9sbGJhckVsOiBzY3JvbGxiYXJFbFJlZi5jdXJyZW50LFxuICAgICAgc3dpcGVyOiBzd2lwZXJSZWYuY3VycmVudFxuICAgIH0sIHN3aXBlclBhcmFtcyk7XG4gICAgaWYgKG9uU3dpcGVyKSBvblN3aXBlcihzd2lwZXJSZWYuY3VycmVudCk7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChzd2lwZXJSZWYuY3VycmVudCAmJiAhc3dpcGVyUmVmLmN1cnJlbnQuZGVzdHJveWVkKSB7XG4gICAgICAgIHN3aXBlclJlZi5jdXJyZW50LmRlc3Ryb3kodHJ1ZSwgZmFsc2UpO1xuICAgICAgfVxuICAgIH07XG4gIH0sIFtdKTsgLy8gd2F0Y2ggZm9yIHBhcmFtcyBjaGFuZ2VcblxuICB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBhdHRhY2hFdmVudHMoKTtcbiAgICBjb25zdCBjaGFuZ2VkUGFyYW1zID0gZ2V0Q2hhbmdlZFBhcmFtcyhwYXNzZWRQYXJhbXMsIG9sZFBhc3NlZFBhcmFtc1JlZi5jdXJyZW50LCBzbGlkZXMsIG9sZFNsaWRlcy5jdXJyZW50KTtcbiAgICBvbGRQYXNzZWRQYXJhbXNSZWYuY3VycmVudCA9IHBhc3NlZFBhcmFtcztcbiAgICBvbGRTbGlkZXMuY3VycmVudCA9IHNsaWRlcztcblxuICAgIGlmIChjaGFuZ2VkUGFyYW1zLmxlbmd0aCAmJiBzd2lwZXJSZWYuY3VycmVudCAmJiAhc3dpcGVyUmVmLmN1cnJlbnQuZGVzdHJveWVkKSB7XG4gICAgICB1cGRhdGVTd2lwZXIoe1xuICAgICAgICBzd2lwZXI6IHN3aXBlclJlZi5jdXJyZW50LFxuICAgICAgICBzbGlkZXMsXG4gICAgICAgIHBhc3NlZFBhcmFtcyxcbiAgICAgICAgY2hhbmdlZFBhcmFtcyxcbiAgICAgICAgbmV4dEVsOiBuZXh0RWxSZWYuY3VycmVudCxcbiAgICAgICAgcHJldkVsOiBwcmV2RWxSZWYuY3VycmVudCxcbiAgICAgICAgc2Nyb2xsYmFyRWw6IHNjcm9sbGJhckVsUmVmLmN1cnJlbnQsXG4gICAgICAgIHBhZ2luYXRpb25FbDogcGFnaW5hdGlvbkVsUmVmLmN1cnJlbnRcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkZXRhY2hFdmVudHMoKTtcbiAgICB9O1xuICB9KTsgLy8gdXBkYXRlIG9uIHZpcnR1YWwgdXBkYXRlXG5cbiAgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgdXBkYXRlT25WaXJ0dWFsRGF0YShzd2lwZXJSZWYuY3VycmVudCk7XG4gIH0sIFt2aXJ0dWFsRGF0YV0pOyAvLyBieXBhc3Mgc3dpcGVyIGluc3RhbmNlIHRvIHNsaWRlc1xuXG4gIGZ1bmN0aW9uIHJlbmRlclNsaWRlcygpIHtcbiAgICBpZiAoc3dpcGVyUGFyYW1zLnZpcnR1YWwpIHtcbiAgICAgIHJldHVybiByZW5kZXJWaXJ0dWFsKHN3aXBlclJlZi5jdXJyZW50LCBzbGlkZXMsIHZpcnR1YWxEYXRhKTtcbiAgICB9XG5cbiAgICBpZiAoIXN3aXBlclBhcmFtcy5sb29wIHx8IHN3aXBlclJlZi5jdXJyZW50ICYmIHN3aXBlclJlZi5jdXJyZW50LmRlc3Ryb3llZCkge1xuICAgICAgcmV0dXJuIHNsaWRlcy5tYXAoY2hpbGQgPT4ge1xuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICAgIHN3aXBlcjogc3dpcGVyUmVmLmN1cnJlbnRcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVuZGVyTG9vcChzd2lwZXJSZWYuY3VycmVudCwgc2xpZGVzLCBzd2lwZXJQYXJhbXMpO1xuICB9XG5cbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFRhZywgX2V4dGVuZHMoe1xuICAgIHJlZjogc3dpcGVyRWxSZWYsXG4gICAgY2xhc3NOYW1lOiB1bmlxdWVDbGFzc2VzKGAke2NvbnRhaW5lckNsYXNzZXN9JHtjbGFzc05hbWUgPyBgICR7Y2xhc3NOYW1lfWAgOiAnJ31gKVxuICB9LCByZXN0UHJvcHMpLCBzbG90c1snY29udGFpbmVyLXN0YXJ0J10sIG5lZWRzTmF2aWdhdGlvbihzd2lwZXJQYXJhbXMpICYmIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFJlYWN0LkZyYWdtZW50LCBudWxsLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgcmVmOiBwcmV2RWxSZWYsXG4gICAgY2xhc3NOYW1lOiBcInN3aXBlci1idXR0b24tcHJldlwiXG4gIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgcmVmOiBuZXh0RWxSZWYsXG4gICAgY2xhc3NOYW1lOiBcInN3aXBlci1idXR0b24tbmV4dFwiXG4gIH0pKSwgbmVlZHNTY3JvbGxiYXIoc3dpcGVyUGFyYW1zKSAmJiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgcmVmOiBzY3JvbGxiYXJFbFJlZixcbiAgICBjbGFzc05hbWU6IFwic3dpcGVyLXNjcm9sbGJhclwiXG4gIH0pLCBuZWVkc1BhZ2luYXRpb24oc3dpcGVyUGFyYW1zKSAmJiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgcmVmOiBwYWdpbmF0aW9uRWxSZWYsXG4gICAgY2xhc3NOYW1lOiBcInN3aXBlci1wYWdpbmF0aW9uXCJcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFdyYXBwZXJUYWcsIHtcbiAgICBjbGFzc05hbWU6IFwic3dpcGVyLXdyYXBwZXJcIlxuICB9LCBzbG90c1snd3JhcHBlci1zdGFydCddLCByZW5kZXJTbGlkZXMoKSwgc2xvdHNbJ3dyYXBwZXItZW5kJ10pLCBzbG90c1snY29udGFpbmVyLWVuZCddKTtcbn0pO1xuU3dpcGVyLmRpc3BsYXlOYW1lID0gJ1N3aXBlcic7XG5leHBvcnQgeyBTd2lwZXIgfTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/swiper/react/swiper.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/react/update-swiper.js": +/*!****************************************************!*\ + !*** ./node_modules/swiper/react/update-swiper.js ***! + \****************************************************/ +/***/ (function(__unused_webpack___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 */ \"updateSwiper\": function() { return /* binding */ updateSwiper; }\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.js */ \"./node_modules/swiper/react/utils.js\");\n\n\nfunction updateSwiper({\n swiper,\n slides,\n passedParams,\n changedParams,\n nextEl,\n prevEl,\n scrollbarEl,\n paginationEl\n}) {\n const updateParams = changedParams.filter(key => key !== 'children' && key !== 'direction');\n const {\n params: currentParams,\n pagination,\n navigation,\n scrollbar,\n virtual,\n thumbs\n } = swiper;\n let needThumbsInit;\n let needControllerInit;\n let needPaginationInit;\n let needScrollbarInit;\n let needNavigationInit;\n\n if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && currentParams.thumbs && !currentParams.thumbs.swiper) {\n needThumbsInit = true;\n }\n\n if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && currentParams.controller && !currentParams.controller.control) {\n needControllerInit = true;\n }\n\n if (changedParams.includes('pagination') && passedParams.pagination && (passedParams.pagination.el || paginationEl) && (currentParams.pagination || currentParams.pagination === false) && pagination && !pagination.el) {\n needPaginationInit = true;\n }\n\n if (changedParams.includes('scrollbar') && passedParams.scrollbar && (passedParams.scrollbar.el || scrollbarEl) && (currentParams.scrollbar || currentParams.scrollbar === false) && scrollbar && !scrollbar.el) {\n needScrollbarInit = true;\n }\n\n if (changedParams.includes('navigation') && passedParams.navigation && (passedParams.navigation.prevEl || prevEl) && (passedParams.navigation.nextEl || nextEl) && (currentParams.navigation || currentParams.navigation === false) && navigation && !navigation.prevEl && !navigation.nextEl) {\n needNavigationInit = true;\n }\n\n const destroyModule = mod => {\n if (!swiper[mod]) return;\n swiper[mod].destroy();\n\n if (mod === 'navigation') {\n currentParams[mod].prevEl = undefined;\n currentParams[mod].nextEl = undefined;\n swiper[mod].prevEl = undefined;\n swiper[mod].nextEl = undefined;\n } else {\n currentParams[mod].el = undefined;\n swiper[mod].el = undefined;\n }\n };\n\n updateParams.forEach(key => {\n if ((0,_utils_js__WEBPACK_IMPORTED_MODULE_0__.isObject)(currentParams[key]) && (0,_utils_js__WEBPACK_IMPORTED_MODULE_0__.isObject)(passedParams[key])) {\n (0,_utils_js__WEBPACK_IMPORTED_MODULE_0__.extend)(currentParams[key], passedParams[key]);\n } else {\n const newValue = passedParams[key];\n\n if ((newValue === true || newValue === false) && (key === 'navigation' || key === 'pagination' || key === 'scrollbar')) {\n if (newValue === false) {\n destroyModule(key);\n }\n } else {\n currentParams[key] = passedParams[key];\n }\n }\n });\n\n if (changedParams.includes('children') && virtual && currentParams.virtual.enabled) {\n virtual.slides = slides;\n virtual.update(true);\n } else if (changedParams.includes('children') && swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n\n if (needThumbsInit) {\n const initialized = thumbs.init();\n if (initialized) thumbs.update(true);\n }\n\n if (needControllerInit) {\n swiper.controller.control = currentParams.controller.control;\n }\n\n if (needPaginationInit) {\n if (paginationEl) currentParams.pagination.el = paginationEl;\n pagination.init();\n pagination.render();\n pagination.update();\n }\n\n if (needScrollbarInit) {\n if (scrollbarEl) currentParams.scrollbar.el = scrollbarEl;\n scrollbar.init();\n scrollbar.updateSize();\n scrollbar.setTranslate();\n }\n\n if (needNavigationInit) {\n if (nextEl) currentParams.navigation.nextEl = nextEl;\n if (prevEl) currentParams.navigation.prevEl = prevEl;\n navigation.init();\n navigation.update();\n }\n\n if (changedParams.includes('allowSlideNext')) {\n swiper.allowSlideNext = passedParams.allowSlideNext;\n }\n\n if (changedParams.includes('allowSlidePrev')) {\n swiper.allowSlidePrev = passedParams.allowSlidePrev;\n }\n\n if (changedParams.includes('direction')) {\n swiper.changeDirection(passedParams.direction, false);\n }\n\n swiper.update();\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL3JlYWN0L3VwZGF0ZS1zd2lwZXIuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBOEM7O0FBRTlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFFBQVEsbURBQVEsd0JBQXdCLG1EQUFRO0FBQ2hELE1BQU0saURBQU07QUFDWixNQUFNO0FBQ047O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc3dpcGVyL3JlYWN0L3VwZGF0ZS1zd2lwZXIuanM/ODQ4OSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc09iamVjdCwgZXh0ZW5kIH0gZnJvbSAnLi91dGlscy5qcyc7XG5cbmZ1bmN0aW9uIHVwZGF0ZVN3aXBlcih7XG4gIHN3aXBlcixcbiAgc2xpZGVzLFxuICBwYXNzZWRQYXJhbXMsXG4gIGNoYW5nZWRQYXJhbXMsXG4gIG5leHRFbCxcbiAgcHJldkVsLFxuICBzY3JvbGxiYXJFbCxcbiAgcGFnaW5hdGlvbkVsXG59KSB7XG4gIGNvbnN0IHVwZGF0ZVBhcmFtcyA9IGNoYW5nZWRQYXJhbXMuZmlsdGVyKGtleSA9PiBrZXkgIT09ICdjaGlsZHJlbicgJiYga2V5ICE9PSAnZGlyZWN0aW9uJyk7XG4gIGNvbnN0IHtcbiAgICBwYXJhbXM6IGN1cnJlbnRQYXJhbXMsXG4gICAgcGFnaW5hdGlvbixcbiAgICBuYXZpZ2F0aW9uLFxuICAgIHNjcm9sbGJhcixcbiAgICB2aXJ0dWFsLFxuICAgIHRodW1ic1xuICB9ID0gc3dpcGVyO1xuICBsZXQgbmVlZFRodW1ic0luaXQ7XG4gIGxldCBuZWVkQ29udHJvbGxlckluaXQ7XG4gIGxldCBuZWVkUGFnaW5hdGlvbkluaXQ7XG4gIGxldCBuZWVkU2Nyb2xsYmFySW5pdDtcbiAgbGV0IG5lZWROYXZpZ2F0aW9uSW5pdDtcblxuICBpZiAoY2hhbmdlZFBhcmFtcy5pbmNsdWRlcygndGh1bWJzJykgJiYgcGFzc2VkUGFyYW1zLnRodW1icyAmJiBwYXNzZWRQYXJhbXMudGh1bWJzLnN3aXBlciAmJiBjdXJyZW50UGFyYW1zLnRodW1icyAmJiAhY3VycmVudFBhcmFtcy50aHVtYnMuc3dpcGVyKSB7XG4gICAgbmVlZFRodW1ic0luaXQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKGNoYW5nZWRQYXJhbXMuaW5jbHVkZXMoJ2NvbnRyb2xsZXInKSAmJiBwYXNzZWRQYXJhbXMuY29udHJvbGxlciAmJiBwYXNzZWRQYXJhbXMuY29udHJvbGxlci5jb250cm9sICYmIGN1cnJlbnRQYXJhbXMuY29udHJvbGxlciAmJiAhY3VycmVudFBhcmFtcy5jb250cm9sbGVyLmNvbnRyb2wpIHtcbiAgICBuZWVkQ29udHJvbGxlckluaXQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKGNoYW5nZWRQYXJhbXMuaW5jbHVkZXMoJ3BhZ2luYXRpb24nKSAmJiBwYXNzZWRQYXJhbXMucGFnaW5hdGlvbiAmJiAocGFzc2VkUGFyYW1zLnBhZ2luYXRpb24uZWwgfHwgcGFnaW5hdGlvbkVsKSAmJiAoY3VycmVudFBhcmFtcy5wYWdpbmF0aW9uIHx8IGN1cnJlbnRQYXJhbXMucGFnaW5hdGlvbiA9PT0gZmFsc2UpICYmIHBhZ2luYXRpb24gJiYgIXBhZ2luYXRpb24uZWwpIHtcbiAgICBuZWVkUGFnaW5hdGlvbkluaXQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKGNoYW5nZWRQYXJhbXMuaW5jbHVkZXMoJ3Njcm9sbGJhcicpICYmIHBhc3NlZFBhcmFtcy5zY3JvbGxiYXIgJiYgKHBhc3NlZFBhcmFtcy5zY3JvbGxiYXIuZWwgfHwgc2Nyb2xsYmFyRWwpICYmIChjdXJyZW50UGFyYW1zLnNjcm9sbGJhciB8fCBjdXJyZW50UGFyYW1zLnNjcm9sbGJhciA9PT0gZmFsc2UpICYmIHNjcm9sbGJhciAmJiAhc2Nyb2xsYmFyLmVsKSB7XG4gICAgbmVlZFNjcm9sbGJhckluaXQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKGNoYW5nZWRQYXJhbXMuaW5jbHVkZXMoJ25hdmlnYXRpb24nKSAmJiBwYXNzZWRQYXJhbXMubmF2aWdhdGlvbiAmJiAocGFzc2VkUGFyYW1zLm5hdmlnYXRpb24ucHJldkVsIHx8IHByZXZFbCkgJiYgKHBhc3NlZFBhcmFtcy5uYXZpZ2F0aW9uLm5leHRFbCB8fCBuZXh0RWwpICYmIChjdXJyZW50UGFyYW1zLm5hdmlnYXRpb24gfHwgY3VycmVudFBhcmFtcy5uYXZpZ2F0aW9uID09PSBmYWxzZSkgJiYgbmF2aWdhdGlvbiAmJiAhbmF2aWdhdGlvbi5wcmV2RWwgJiYgIW5hdmlnYXRpb24ubmV4dEVsKSB7XG4gICAgbmVlZE5hdmlnYXRpb25Jbml0ID0gdHJ1ZTtcbiAgfVxuXG4gIGNvbnN0IGRlc3Ryb3lNb2R1bGUgPSBtb2QgPT4ge1xuICAgIGlmICghc3dpcGVyW21vZF0pIHJldHVybjtcbiAgICBzd2lwZXJbbW9kXS5kZXN0cm95KCk7XG5cbiAgICBpZiAobW9kID09PSAnbmF2aWdhdGlvbicpIHtcbiAgICAgIGN1cnJlbnRQYXJhbXNbbW9kXS5wcmV2RWwgPSB1bmRlZmluZWQ7XG4gICAgICBjdXJyZW50UGFyYW1zW21vZF0ubmV4dEVsID0gdW5kZWZpbmVkO1xuICAgICAgc3dpcGVyW21vZF0ucHJldkVsID0gdW5kZWZpbmVkO1xuICAgICAgc3dpcGVyW21vZF0ubmV4dEVsID0gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSB7XG4gICAgICBjdXJyZW50UGFyYW1zW21vZF0uZWwgPSB1bmRlZmluZWQ7XG4gICAgICBzd2lwZXJbbW9kXS5lbCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH07XG5cbiAgdXBkYXRlUGFyYW1zLmZvckVhY2goa2V5ID0+IHtcbiAgICBpZiAoaXNPYmplY3QoY3VycmVudFBhcmFtc1trZXldKSAmJiBpc09iamVjdChwYXNzZWRQYXJhbXNba2V5XSkpIHtcbiAgICAgIGV4dGVuZChjdXJyZW50UGFyYW1zW2tleV0sIHBhc3NlZFBhcmFtc1trZXldKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbmV3VmFsdWUgPSBwYXNzZWRQYXJhbXNba2V5XTtcblxuICAgICAgaWYgKChuZXdWYWx1ZSA9PT0gdHJ1ZSB8fCBuZXdWYWx1ZSA9PT0gZmFsc2UpICYmIChrZXkgPT09ICduYXZpZ2F0aW9uJyB8fCBrZXkgPT09ICdwYWdpbmF0aW9uJyB8fCBrZXkgPT09ICdzY3JvbGxiYXInKSkge1xuICAgICAgICBpZiAobmV3VmFsdWUgPT09IGZhbHNlKSB7XG4gICAgICAgICAgZGVzdHJveU1vZHVsZShrZXkpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjdXJyZW50UGFyYW1zW2tleV0gPSBwYXNzZWRQYXJhbXNba2V5XTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIGlmIChjaGFuZ2VkUGFyYW1zLmluY2x1ZGVzKCdjaGlsZHJlbicpICYmIHZpcnR1YWwgJiYgY3VycmVudFBhcmFtcy52aXJ0dWFsLmVuYWJsZWQpIHtcbiAgICB2aXJ0dWFsLnNsaWRlcyA9IHNsaWRlcztcbiAgICB2aXJ0dWFsLnVwZGF0ZSh0cnVlKTtcbiAgfSBlbHNlIGlmIChjaGFuZ2VkUGFyYW1zLmluY2x1ZGVzKCdjaGlsZHJlbicpICYmIHN3aXBlci5sYXp5ICYmIHN3aXBlci5wYXJhbXMubGF6eS5lbmFibGVkKSB7XG4gICAgc3dpcGVyLmxhenkubG9hZCgpO1xuICB9XG5cbiAgaWYgKG5lZWRUaHVtYnNJbml0KSB7XG4gICAgY29uc3QgaW5pdGlhbGl6ZWQgPSB0aHVtYnMuaW5pdCgpO1xuICAgIGlmIChpbml0aWFsaXplZCkgdGh1bWJzLnVwZGF0ZSh0cnVlKTtcbiAgfVxuXG4gIGlmIChuZWVkQ29udHJvbGxlckluaXQpIHtcbiAgICBzd2lwZXIuY29udHJvbGxlci5jb250cm9sID0gY3VycmVudFBhcmFtcy5jb250cm9sbGVyLmNvbnRyb2w7XG4gIH1cblxuICBpZiAobmVlZFBhZ2luYXRpb25Jbml0KSB7XG4gICAgaWYgKHBhZ2luYXRpb25FbCkgY3VycmVudFBhcmFtcy5wYWdpbmF0aW9uLmVsID0gcGFnaW5hdGlvbkVsO1xuICAgIHBhZ2luYXRpb24uaW5pdCgpO1xuICAgIHBhZ2luYXRpb24ucmVuZGVyKCk7XG4gICAgcGFnaW5hdGlvbi51cGRhdGUoKTtcbiAgfVxuXG4gIGlmIChuZWVkU2Nyb2xsYmFySW5pdCkge1xuICAgIGlmIChzY3JvbGxiYXJFbCkgY3VycmVudFBhcmFtcy5zY3JvbGxiYXIuZWwgPSBzY3JvbGxiYXJFbDtcbiAgICBzY3JvbGxiYXIuaW5pdCgpO1xuICAgIHNjcm9sbGJhci51cGRhdGVTaXplKCk7XG4gICAgc2Nyb2xsYmFyLnNldFRyYW5zbGF0ZSgpO1xuICB9XG5cbiAgaWYgKG5lZWROYXZpZ2F0aW9uSW5pdCkge1xuICAgIGlmIChuZXh0RWwpIGN1cnJlbnRQYXJhbXMubmF2aWdhdGlvbi5uZXh0RWwgPSBuZXh0RWw7XG4gICAgaWYgKHByZXZFbCkgY3VycmVudFBhcmFtcy5uYXZpZ2F0aW9uLnByZXZFbCA9IHByZXZFbDtcbiAgICBuYXZpZ2F0aW9uLmluaXQoKTtcbiAgICBuYXZpZ2F0aW9uLnVwZGF0ZSgpO1xuICB9XG5cbiAgaWYgKGNoYW5nZWRQYXJhbXMuaW5jbHVkZXMoJ2FsbG93U2xpZGVOZXh0JykpIHtcbiAgICBzd2lwZXIuYWxsb3dTbGlkZU5leHQgPSBwYXNzZWRQYXJhbXMuYWxsb3dTbGlkZU5leHQ7XG4gIH1cblxuICBpZiAoY2hhbmdlZFBhcmFtcy5pbmNsdWRlcygnYWxsb3dTbGlkZVByZXYnKSkge1xuICAgIHN3aXBlci5hbGxvd1NsaWRlUHJldiA9IHBhc3NlZFBhcmFtcy5hbGxvd1NsaWRlUHJldjtcbiAgfVxuXG4gIGlmIChjaGFuZ2VkUGFyYW1zLmluY2x1ZGVzKCdkaXJlY3Rpb24nKSkge1xuICAgIHN3aXBlci5jaGFuZ2VEaXJlY3Rpb24ocGFzc2VkUGFyYW1zLmRpcmVjdGlvbiwgZmFsc2UpO1xuICB9XG5cbiAgc3dpcGVyLnVwZGF0ZSgpO1xufVxuXG5leHBvcnQgeyB1cGRhdGVTd2lwZXIgfTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/swiper/react/update-swiper.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/react/use-isomorphic-layout-effect.js": +/*!*******************************************************************!*\ + !*** ./node_modules/swiper/react/use-isomorphic-layout-effect.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack___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 */ \"useIsomorphicLayoutEffect\": function() { return /* binding */ useIsomorphicLayoutEffect; }\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\n\nfunction useIsomorphicLayoutEffect(callback, deps) {\n // eslint-disable-next-line\n if (typeof window === 'undefined') return (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(callback, deps);\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect)(callback, deps);\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL3JlYWN0L3VzZS1pc29tb3JwaGljLWxheW91dC1lZmZlY3QuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBbUQ7O0FBRW5EO0FBQ0E7QUFDQSw0Q0FBNEMsZ0RBQVM7QUFDckQsU0FBUyxzREFBZTtBQUN4QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc3dpcGVyL3JlYWN0L3VzZS1pc29tb3JwaGljLWxheW91dC1lZmZlY3QuanM/ODU5NCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VFZmZlY3QsIHVzZUxheW91dEVmZmVjdCB9IGZyb20gJ3JlYWN0JztcblxuZnVuY3Rpb24gdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdChjYWxsYmFjaywgZGVwcykge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSByZXR1cm4gdXNlRWZmZWN0KGNhbGxiYWNrLCBkZXBzKTtcbiAgcmV0dXJuIHVzZUxheW91dEVmZmVjdChjYWxsYmFjaywgZGVwcyk7XG59XG5cbmV4cG9ydCB7IHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QgfTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/swiper/react/use-isomorphic-layout-effect.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/react/utils.js": +/*!********************************************!*\ + !*** ./node_modules/swiper/react/utils.js ***! + \********************************************/ +/***/ (function(__unused_webpack___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 */ \"isObject\": function() { return /* binding */ isObject; },\n/* harmony export */ \"extend\": function() { return /* binding */ extend; },\n/* harmony export */ \"needsNavigation\": function() { return /* binding */ needsNavigation; },\n/* harmony export */ \"needsPagination\": function() { return /* binding */ needsPagination; },\n/* harmony export */ \"needsScrollbar\": function() { return /* binding */ needsScrollbar; },\n/* harmony export */ \"uniqueClasses\": function() { return /* binding */ uniqueClasses; }\n/* harmony export */ });\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction extend(target, src) {\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n Object.keys(src).filter(key => noExtend.indexOf(key) < 0).forEach(key => {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n if (src[key].__swiper__) target[key] = src[key];else extend(target[key], src[key]);\n } else {\n target[key] = src[key];\n }\n });\n}\n\nfunction needsNavigation(params = {}) {\n return params.navigation && typeof params.navigation.nextEl === 'undefined' && typeof params.navigation.prevEl === 'undefined';\n}\n\nfunction needsPagination(params = {}) {\n return params.pagination && typeof params.pagination.el === 'undefined';\n}\n\nfunction needsScrollbar(params = {}) {\n return params.scrollbar && typeof params.scrollbar.el === 'undefined';\n}\n\nfunction uniqueClasses(classNames = '') {\n const classes = classNames.split(' ').map(c => c.trim()).filter(c => !!c);\n const unique = [];\n classes.forEach(c => {\n if (unique.indexOf(c) < 0) unique.push(c);\n });\n return unique.join(' ');\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL3JlYWN0L3V0aWxzLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxtRUFBbUU7QUFDbkUsc0RBQXNEO0FBQ3RELE1BQU07QUFDTjtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBLG9DQUFvQztBQUNwQztBQUNBOztBQUVBLG9DQUFvQztBQUNwQztBQUNBOztBQUVBLG1DQUFtQztBQUNuQztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc3dpcGVyL3JlYWN0L3V0aWxzLmpzP2U0ZTgiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gaXNPYmplY3Qobykge1xuICByZXR1cm4gdHlwZW9mIG8gPT09ICdvYmplY3QnICYmIG8gIT09IG51bGwgJiYgby5jb25zdHJ1Y3RvciAmJiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobykuc2xpY2UoOCwgLTEpID09PSAnT2JqZWN0Jztcbn1cblxuZnVuY3Rpb24gZXh0ZW5kKHRhcmdldCwgc3JjKSB7XG4gIGNvbnN0IG5vRXh0ZW5kID0gWydfX3Byb3RvX18nLCAnY29uc3RydWN0b3InLCAncHJvdG90eXBlJ107XG4gIE9iamVjdC5rZXlzKHNyYykuZmlsdGVyKGtleSA9PiBub0V4dGVuZC5pbmRleE9mKGtleSkgPCAwKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgaWYgKHR5cGVvZiB0YXJnZXRba2V5XSA9PT0gJ3VuZGVmaW5lZCcpIHRhcmdldFtrZXldID0gc3JjW2tleV07ZWxzZSBpZiAoaXNPYmplY3Qoc3JjW2tleV0pICYmIGlzT2JqZWN0KHRhcmdldFtrZXldKSAmJiBPYmplY3Qua2V5cyhzcmNba2V5XSkubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKHNyY1trZXldLl9fc3dpcGVyX18pIHRhcmdldFtrZXldID0gc3JjW2tleV07ZWxzZSBleHRlbmQodGFyZ2V0W2tleV0sIHNyY1trZXldKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGFyZ2V0W2tleV0gPSBzcmNba2V5XTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBuZWVkc05hdmlnYXRpb24ocGFyYW1zID0ge30pIHtcbiAgcmV0dXJuIHBhcmFtcy5uYXZpZ2F0aW9uICYmIHR5cGVvZiBwYXJhbXMubmF2aWdhdGlvbi5uZXh0RWwgPT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBwYXJhbXMubmF2aWdhdGlvbi5wcmV2RWwgPT09ICd1bmRlZmluZWQnO1xufVxuXG5mdW5jdGlvbiBuZWVkc1BhZ2luYXRpb24ocGFyYW1zID0ge30pIHtcbiAgcmV0dXJuIHBhcmFtcy5wYWdpbmF0aW9uICYmIHR5cGVvZiBwYXJhbXMucGFnaW5hdGlvbi5lbCA9PT0gJ3VuZGVmaW5lZCc7XG59XG5cbmZ1bmN0aW9uIG5lZWRzU2Nyb2xsYmFyKHBhcmFtcyA9IHt9KSB7XG4gIHJldHVybiBwYXJhbXMuc2Nyb2xsYmFyICYmIHR5cGVvZiBwYXJhbXMuc2Nyb2xsYmFyLmVsID09PSAndW5kZWZpbmVkJztcbn1cblxuZnVuY3Rpb24gdW5pcXVlQ2xhc3NlcyhjbGFzc05hbWVzID0gJycpIHtcbiAgY29uc3QgY2xhc3NlcyA9IGNsYXNzTmFtZXMuc3BsaXQoJyAnKS5tYXAoYyA9PiBjLnRyaW0oKSkuZmlsdGVyKGMgPT4gISFjKTtcbiAgY29uc3QgdW5pcXVlID0gW107XG4gIGNsYXNzZXMuZm9yRWFjaChjID0+IHtcbiAgICBpZiAodW5pcXVlLmluZGV4T2YoYykgPCAwKSB1bmlxdWUucHVzaChjKTtcbiAgfSk7XG4gIHJldHVybiB1bmlxdWUuam9pbignICcpO1xufVxuXG5leHBvcnQgeyBpc09iamVjdCwgZXh0ZW5kLCBuZWVkc05hdmlnYXRpb24sIG5lZWRzUGFnaW5hdGlvbiwgbmVlZHNTY3JvbGxiYXIsIHVuaXF1ZUNsYXNzZXMgfTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/swiper/react/utils.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/react/virtual.js": +/*!**********************************************!*\ + !*** ./node_modules/swiper/react/virtual.js ***! + \**********************************************/ +/***/ (function(__unused_webpack___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 */ \"renderVirtual\": function() { return /* binding */ renderVirtual; },\n/* harmony export */ \"updateOnVirtualData\": function() { return /* binding */ updateOnVirtualData; }\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\n\nfunction updateOnVirtualData(swiper) {\n if (!swiper || swiper.destroyed || !swiper.params.virtual || swiper.params.virtual && !swiper.params.virtual.enabled) return;\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n\n if (swiper.parallax && swiper.params.parallax && swiper.params.parallax.enabled) {\n swiper.parallax.setTranslate();\n }\n}\n\nfunction renderVirtual(swiper, slides, virtualData) {\n if (!virtualData) return null;\n const style = swiper.isHorizontal() ? {\n [swiper.rtlTranslate ? 'right' : 'left']: `${virtualData.offset}px`\n } : {\n top: `${virtualData.offset}px`\n };\n return slides.filter((child, index) => index >= virtualData.from && index <= virtualData.to).map(child => {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(child, {\n swiper,\n style\n });\n });\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL3JlYWN0L3ZpcnR1YWwuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQTBCOztBQUUxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxpREFBaUQsbUJBQW1CO0FBQ3BFLElBQUk7QUFDSixZQUFZLG1CQUFtQjtBQUMvQjtBQUNBO0FBQ0Esd0JBQXdCLCtDQUFrQjtBQUMxQztBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7QUFDSCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc3dpcGVyL3JlYWN0L3ZpcnR1YWwuanM/N2IwNiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5mdW5jdGlvbiB1cGRhdGVPblZpcnR1YWxEYXRhKHN3aXBlcikge1xuICBpZiAoIXN3aXBlciB8fCBzd2lwZXIuZGVzdHJveWVkIHx8ICFzd2lwZXIucGFyYW1zLnZpcnR1YWwgfHwgc3dpcGVyLnBhcmFtcy52aXJ0dWFsICYmICFzd2lwZXIucGFyYW1zLnZpcnR1YWwuZW5hYmxlZCkgcmV0dXJuO1xuICBzd2lwZXIudXBkYXRlU2xpZGVzKCk7XG4gIHN3aXBlci51cGRhdGVQcm9ncmVzcygpO1xuICBzd2lwZXIudXBkYXRlU2xpZGVzQ2xhc3NlcygpO1xuXG4gIGlmIChzd2lwZXIubGF6eSAmJiBzd2lwZXIucGFyYW1zLmxhenkuZW5hYmxlZCkge1xuICAgIHN3aXBlci5sYXp5LmxvYWQoKTtcbiAgfVxuXG4gIGlmIChzd2lwZXIucGFyYWxsYXggJiYgc3dpcGVyLnBhcmFtcy5wYXJhbGxheCAmJiBzd2lwZXIucGFyYW1zLnBhcmFsbGF4LmVuYWJsZWQpIHtcbiAgICBzd2lwZXIucGFyYWxsYXguc2V0VHJhbnNsYXRlKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVuZGVyVmlydHVhbChzd2lwZXIsIHNsaWRlcywgdmlydHVhbERhdGEpIHtcbiAgaWYgKCF2aXJ0dWFsRGF0YSkgcmV0dXJuIG51bGw7XG4gIGNvbnN0IHN0eWxlID0gc3dpcGVyLmlzSG9yaXpvbnRhbCgpID8ge1xuICAgIFtzd2lwZXIucnRsVHJhbnNsYXRlID8gJ3JpZ2h0JyA6ICdsZWZ0J106IGAke3ZpcnR1YWxEYXRhLm9mZnNldH1weGBcbiAgfSA6IHtcbiAgICB0b3A6IGAke3ZpcnR1YWxEYXRhLm9mZnNldH1weGBcbiAgfTtcbiAgcmV0dXJuIHNsaWRlcy5maWx0ZXIoKGNoaWxkLCBpbmRleCkgPT4gaW5kZXggPj0gdmlydHVhbERhdGEuZnJvbSAmJiBpbmRleCA8PSB2aXJ0dWFsRGF0YS50bykubWFwKGNoaWxkID0+IHtcbiAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgc3dpcGVyLFxuICAgICAgc3R5bGVcbiAgICB9KTtcbiAgfSk7XG59XG5cbmV4cG9ydCB7IHJlbmRlclZpcnR1YWwsIHVwZGF0ZU9uVmlydHVhbERhdGEgfTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/swiper/react/virtual.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/shared/classes-to-selector.js": +/*!***********************************************************!*\ + !*** ./node_modules/swiper/shared/classes-to-selector.js ***! + \***********************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ classesToSelector; }\n/* harmony export */ });\nfunction classesToSelector(classes = '') {\n return `.${classes.trim().replace(/([\\.:!\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL3NoYXJlZC9jbGFzc2VzLXRvLXNlbGVjdG9yLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBZTtBQUNmLGFBQWE7QUFDYixzQkFBc0I7QUFDdEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N3aXBlci9zaGFyZWQvY2xhc3Nlcy10by1zZWxlY3Rvci5qcz84Y2FjIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNsYXNzZXNUb1NlbGVjdG9yKGNsYXNzZXMgPSAnJykge1xuICByZXR1cm4gYC4ke2NsYXNzZXMudHJpbSgpLnJlcGxhY2UoLyhbXFwuOiFcXC9dKS9nLCAnXFxcXCQxJykgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuICAucmVwbGFjZSgvIC9nLCAnLicpfWA7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/swiper/shared/classes-to-selector.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/shared/create-element-if-not-defined.js": +/*!*********************************************************************!*\ + !*** ./node_modules/swiper/shared/create-element-if-not-defined.js ***! + \*********************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ createElementIfNotDefined; }\n/* harmony export */ });\n/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ \"./node_modules/ssr-window/ssr-window.esm.js\");\n\nfunction createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)();\n\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = swiper.$el.children(`.${checkProps[key]}`)[0];\n\n if (!element) {\n element = document.createElement('div');\n element.className = checkProps[key];\n swiper.$el.append(element);\n }\n\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n\n return params;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL3NoYXJlZC9jcmVhdGUtZWxlbWVudC1pZi1ub3QtZGVmaW5lZC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUF5QztBQUMxQjtBQUNmLG1CQUFtQix1REFBVzs7QUFFOUI7QUFDQTtBQUNBO0FBQ0EsOENBQThDLGdCQUFnQjs7QUFFOUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc3dpcGVyL3NoYXJlZC9jcmVhdGUtZWxlbWVudC1pZi1ub3QtZGVmaW5lZC5qcz9lNWY4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldERvY3VtZW50IH0gZnJvbSAnc3NyLXdpbmRvdyc7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVFbGVtZW50SWZOb3REZWZpbmVkKHN3aXBlciwgb3JpZ2luYWxQYXJhbXMsIHBhcmFtcywgY2hlY2tQcm9wcykge1xuICBjb25zdCBkb2N1bWVudCA9IGdldERvY3VtZW50KCk7XG5cbiAgaWYgKHN3aXBlci5wYXJhbXMuY3JlYXRlRWxlbWVudHMpIHtcbiAgICBPYmplY3Qua2V5cyhjaGVja1Byb3BzKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICBpZiAoIXBhcmFtc1trZXldICYmIHBhcmFtcy5hdXRvID09PSB0cnVlKSB7XG4gICAgICAgIGxldCBlbGVtZW50ID0gc3dpcGVyLiRlbC5jaGlsZHJlbihgLiR7Y2hlY2tQcm9wc1trZXldfWApWzBdO1xuXG4gICAgICAgIGlmICghZWxlbWVudCkge1xuICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IGNoZWNrUHJvcHNba2V5XTtcbiAgICAgICAgICBzd2lwZXIuJGVsLmFwcGVuZChlbGVtZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHBhcmFtc1trZXldID0gZWxlbWVudDtcbiAgICAgICAgb3JpZ2luYWxQYXJhbXNba2V5XSA9IGVsZW1lbnQ7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gcGFyYW1zO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/swiper/shared/create-element-if-not-defined.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/shared/create-shadow.js": +/*!*****************************************************!*\ + !*** ./node_modules/swiper/shared/create-shadow.js ***! + \*****************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ createShadow; }\n/* harmony export */ });\n/* harmony import */ var _dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dom.js */ \"./node_modules/swiper/shared/dom.js\");\n\nfunction createShadow(params, $slideEl, side) {\n const shadowClass = `swiper-slide-shadow${side ? `-${side}` : ''}`;\n const $shadowContainer = params.transformEl ? $slideEl.find(params.transformEl) : $slideEl;\n let $shadowEl = $shadowContainer.children(`.${shadowClass}`);\n\n if (!$shadowEl.length) {\n $shadowEl = (0,_dom_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(`<div class=\"swiper-slide-shadow${side ? `-${side}` : ''}\"></div>`);\n $shadowContainer.append($shadowEl);\n }\n\n return $shadowEl;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL3NoYXJlZC9jcmVhdGUtc2hhZG93LmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXlCO0FBQ1Y7QUFDZiw0Q0FBNEMsV0FBVyxLQUFLLE9BQU87QUFDbkU7QUFDQSxnREFBZ0QsWUFBWTs7QUFFNUQ7QUFDQSxnQkFBZ0IsbURBQUMsbUNBQW1DLFdBQVcsS0FBSyxPQUFPO0FBQzNFO0FBQ0E7O0FBRUE7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvc3dpcGVyL3NoYXJlZC9jcmVhdGUtc2hhZG93LmpzPzcyNzAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnLi9kb20uanMnO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlU2hhZG93KHBhcmFtcywgJHNsaWRlRWwsIHNpZGUpIHtcbiAgY29uc3Qgc2hhZG93Q2xhc3MgPSBgc3dpcGVyLXNsaWRlLXNoYWRvdyR7c2lkZSA/IGAtJHtzaWRlfWAgOiAnJ31gO1xuICBjb25zdCAkc2hhZG93Q29udGFpbmVyID0gcGFyYW1zLnRyYW5zZm9ybUVsID8gJHNsaWRlRWwuZmluZChwYXJhbXMudHJhbnNmb3JtRWwpIDogJHNsaWRlRWw7XG4gIGxldCAkc2hhZG93RWwgPSAkc2hhZG93Q29udGFpbmVyLmNoaWxkcmVuKGAuJHtzaGFkb3dDbGFzc31gKTtcblxuICBpZiAoISRzaGFkb3dFbC5sZW5ndGgpIHtcbiAgICAkc2hhZG93RWwgPSAkKGA8ZGl2IGNsYXNzPVwic3dpcGVyLXNsaWRlLXNoYWRvdyR7c2lkZSA/IGAtJHtzaWRlfWAgOiAnJ31cIj48L2Rpdj5gKTtcbiAgICAkc2hhZG93Q29udGFpbmVyLmFwcGVuZCgkc2hhZG93RWwpO1xuICB9XG5cbiAgcmV0dXJuICRzaGFkb3dFbDtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/swiper/shared/create-shadow.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/shared/dom.js": +/*!*******************************************!*\ + !*** ./node_modules/swiper/shared/dom.js ***! + \*******************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var dom7__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! dom7 */ \"./node_modules/dom7/dom7.esm.js\");\n\nconst Methods = {\n addClass: dom7__WEBPACK_IMPORTED_MODULE_0__.addClass,\n removeClass: dom7__WEBPACK_IMPORTED_MODULE_0__.removeClass,\n hasClass: dom7__WEBPACK_IMPORTED_MODULE_0__.hasClass,\n toggleClass: dom7__WEBPACK_IMPORTED_MODULE_0__.toggleClass,\n attr: dom7__WEBPACK_IMPORTED_MODULE_0__.attr,\n removeAttr: dom7__WEBPACK_IMPORTED_MODULE_0__.removeAttr,\n transform: dom7__WEBPACK_IMPORTED_MODULE_0__.transform,\n transition: dom7__WEBPACK_IMPORTED_MODULE_0__.transition,\n on: dom7__WEBPACK_IMPORTED_MODULE_0__.on,\n off: dom7__WEBPACK_IMPORTED_MODULE_0__.off,\n trigger: dom7__WEBPACK_IMPORTED_MODULE_0__.trigger,\n transitionEnd: dom7__WEBPACK_IMPORTED_MODULE_0__.transitionEnd,\n outerWidth: dom7__WEBPACK_IMPORTED_MODULE_0__.outerWidth,\n outerHeight: dom7__WEBPACK_IMPORTED_MODULE_0__.outerHeight,\n styles: dom7__WEBPACK_IMPORTED_MODULE_0__.styles,\n offset: dom7__WEBPACK_IMPORTED_MODULE_0__.offset,\n css: dom7__WEBPACK_IMPORTED_MODULE_0__.css,\n each: dom7__WEBPACK_IMPORTED_MODULE_0__.each,\n html: dom7__WEBPACK_IMPORTED_MODULE_0__.html,\n text: dom7__WEBPACK_IMPORTED_MODULE_0__.text,\n is: dom7__WEBPACK_IMPORTED_MODULE_0__.is,\n index: dom7__WEBPACK_IMPORTED_MODULE_0__.index,\n eq: dom7__WEBPACK_IMPORTED_MODULE_0__.eq,\n append: dom7__WEBPACK_IMPORTED_MODULE_0__.append,\n prepend: dom7__WEBPACK_IMPORTED_MODULE_0__.prepend,\n next: dom7__WEBPACK_IMPORTED_MODULE_0__.next,\n nextAll: dom7__WEBPACK_IMPORTED_MODULE_0__.nextAll,\n prev: dom7__WEBPACK_IMPORTED_MODULE_0__.prev,\n prevAll: dom7__WEBPACK_IMPORTED_MODULE_0__.prevAll,\n parent: dom7__WEBPACK_IMPORTED_MODULE_0__.parent,\n parents: dom7__WEBPACK_IMPORTED_MODULE_0__.parents,\n closest: dom7__WEBPACK_IMPORTED_MODULE_0__.closest,\n find: dom7__WEBPACK_IMPORTED_MODULE_0__.find,\n children: dom7__WEBPACK_IMPORTED_MODULE_0__.children,\n filter: dom7__WEBPACK_IMPORTED_MODULE_0__.filter,\n remove: dom7__WEBPACK_IMPORTED_MODULE_0__.remove\n};\nObject.keys(Methods).forEach(methodName => {\n Object.defineProperty(dom7__WEBPACK_IMPORTED_MODULE_0__.$.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\n/* harmony default export */ __webpack_exports__[\"default\"] = (dom7__WEBPACK_IMPORTED_MODULE_0__.$);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL3NoYXJlZC9kb20uanMuanMiLCJtYXBwaW5ncyI6Ijs7QUFBeVU7QUFDelU7QUFDQSxVQUFVO0FBQ1YsYUFBYTtBQUNiLFVBQVU7QUFDVixhQUFhO0FBQ2IsTUFBTTtBQUNOLFlBQVk7QUFDWixXQUFXO0FBQ1gsWUFBWTtBQUNaLElBQUk7QUFDSixLQUFLO0FBQ0wsU0FBUztBQUNULGVBQWU7QUFDZixZQUFZO0FBQ1osYUFBYTtBQUNiLFFBQVE7QUFDUixRQUFRO0FBQ1IsS0FBSztBQUNMLE1BQU07QUFDTixNQUFNO0FBQ04sTUFBTTtBQUNOLElBQUk7QUFDSixPQUFPO0FBQ1AsSUFBSTtBQUNKLFFBQVE7QUFDUixTQUFTO0FBQ1QsTUFBTTtBQUNOLFNBQVM7QUFDVCxNQUFNO0FBQ04sU0FBUztBQUNULFFBQVE7QUFDUixTQUFTO0FBQ1QsU0FBUztBQUNULE1BQU07QUFDTixVQUFVO0FBQ1YsUUFBUTtBQUNSLFFBQVE7QUFDUjtBQUNBO0FBQ0Esd0JBQXdCLHNDQUFJO0FBQzVCO0FBQ0E7QUFDQSxHQUFHO0FBQ0gsQ0FBQztBQUNELCtEQUFlLG1DQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zd2lwZXIvc2hhcmVkL2RvbS5qcz9hYWNmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ICQsIGFkZENsYXNzLCByZW1vdmVDbGFzcywgaGFzQ2xhc3MsIHRvZ2dsZUNsYXNzLCBhdHRyLCByZW1vdmVBdHRyLCB0cmFuc2Zvcm0sIHRyYW5zaXRpb24sIG9uLCBvZmYsIHRyaWdnZXIsIHRyYW5zaXRpb25FbmQsIG91dGVyV2lkdGgsIG91dGVySGVpZ2h0LCBzdHlsZXMsIG9mZnNldCwgY3NzLCBlYWNoLCBodG1sLCB0ZXh0LCBpcywgaW5kZXgsIGVxLCBhcHBlbmQsIHByZXBlbmQsIG5leHQsIG5leHRBbGwsIHByZXYsIHByZXZBbGwsIHBhcmVudCwgcGFyZW50cywgY2xvc2VzdCwgZmluZCwgY2hpbGRyZW4sIGZpbHRlciwgcmVtb3ZlIH0gZnJvbSAnZG9tNyc7XG5jb25zdCBNZXRob2RzID0ge1xuICBhZGRDbGFzcyxcbiAgcmVtb3ZlQ2xhc3MsXG4gIGhhc0NsYXNzLFxuICB0b2dnbGVDbGFzcyxcbiAgYXR0cixcbiAgcmVtb3ZlQXR0cixcbiAgdHJhbnNmb3JtLFxuICB0cmFuc2l0aW9uLFxuICBvbixcbiAgb2ZmLFxuICB0cmlnZ2VyLFxuICB0cmFuc2l0aW9uRW5kLFxuICBvdXRlcldpZHRoLFxuICBvdXRlckhlaWdodCxcbiAgc3R5bGVzLFxuICBvZmZzZXQsXG4gIGNzcyxcbiAgZWFjaCxcbiAgaHRtbCxcbiAgdGV4dCxcbiAgaXMsXG4gIGluZGV4LFxuICBlcSxcbiAgYXBwZW5kLFxuICBwcmVwZW5kLFxuICBuZXh0LFxuICBuZXh0QWxsLFxuICBwcmV2LFxuICBwcmV2QWxsLFxuICBwYXJlbnQsXG4gIHBhcmVudHMsXG4gIGNsb3Nlc3QsXG4gIGZpbmQsXG4gIGNoaWxkcmVuLFxuICBmaWx0ZXIsXG4gIHJlbW92ZVxufTtcbk9iamVjdC5rZXlzKE1ldGhvZHMpLmZvckVhY2gobWV0aG9kTmFtZSA9PiB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSgkLmZuLCBtZXRob2ROYW1lLCB7XG4gICAgdmFsdWU6IE1ldGhvZHNbbWV0aG9kTmFtZV0sXG4gICAgd3JpdGFibGU6IHRydWVcbiAgfSk7XG59KTtcbmV4cG9ydCBkZWZhdWx0ICQ7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/swiper/shared/dom.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/shared/effect-init.js": +/*!***************************************************!*\ + !*** ./node_modules/swiper/shared/effect-init.js ***! + \***************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ effectInit; }\n/* harmony export */ });\nfunction effectInit(params) {\n const {\n effect,\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams,\n perspective\n } = params;\n on('beforeInit', () => {\n if (swiper.params.effect !== effect) return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`);\n\n if (perspective && perspective()) {\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n }\n\n const overwriteParamsResult = overwriteParams ? overwriteParams() : {};\n Object.assign(swiper.params, overwriteParamsResult);\n Object.assign(swiper.originalParams, overwriteParamsResult);\n });\n on('setTranslate', () => {\n if (swiper.params.effect !== effect) return;\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n if (swiper.params.effect !== effect) return;\n setTransition(duration);\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL3NoYXJlZC9lZmZlY3QtaW5pdC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSw4QkFBOEIscUNBQXFDLEVBQUUsT0FBTzs7QUFFNUU7QUFDQSxnQ0FBZ0MscUNBQXFDO0FBQ3JFOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zd2lwZXIvc2hhcmVkL2VmZmVjdC1pbml0LmpzPzUwMjAiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZWZmZWN0SW5pdChwYXJhbXMpIHtcbiAgY29uc3Qge1xuICAgIGVmZmVjdCxcbiAgICBzd2lwZXIsXG4gICAgb24sXG4gICAgc2V0VHJhbnNsYXRlLFxuICAgIHNldFRyYW5zaXRpb24sXG4gICAgb3ZlcndyaXRlUGFyYW1zLFxuICAgIHBlcnNwZWN0aXZlXG4gIH0gPSBwYXJhbXM7XG4gIG9uKCdiZWZvcmVJbml0JywgKCkgPT4ge1xuICAgIGlmIChzd2lwZXIucGFyYW1zLmVmZmVjdCAhPT0gZWZmZWN0KSByZXR1cm47XG4gICAgc3dpcGVyLmNsYXNzTmFtZXMucHVzaChgJHtzd2lwZXIucGFyYW1zLmNvbnRhaW5lck1vZGlmaWVyQ2xhc3N9JHtlZmZlY3R9YCk7XG5cbiAgICBpZiAocGVyc3BlY3RpdmUgJiYgcGVyc3BlY3RpdmUoKSkge1xuICAgICAgc3dpcGVyLmNsYXNzTmFtZXMucHVzaChgJHtzd2lwZXIucGFyYW1zLmNvbnRhaW5lck1vZGlmaWVyQ2xhc3N9M2RgKTtcbiAgICB9XG5cbiAgICBjb25zdCBvdmVyd3JpdGVQYXJhbXNSZXN1bHQgPSBvdmVyd3JpdGVQYXJhbXMgPyBvdmVyd3JpdGVQYXJhbXMoKSA6IHt9O1xuICAgIE9iamVjdC5hc3NpZ24oc3dpcGVyLnBhcmFtcywgb3ZlcndyaXRlUGFyYW1zUmVzdWx0KTtcbiAgICBPYmplY3QuYXNzaWduKHN3aXBlci5vcmlnaW5hbFBhcmFtcywgb3ZlcndyaXRlUGFyYW1zUmVzdWx0KTtcbiAgfSk7XG4gIG9uKCdzZXRUcmFuc2xhdGUnLCAoKSA9PiB7XG4gICAgaWYgKHN3aXBlci5wYXJhbXMuZWZmZWN0ICE9PSBlZmZlY3QpIHJldHVybjtcbiAgICBzZXRUcmFuc2xhdGUoKTtcbiAgfSk7XG4gIG9uKCdzZXRUcmFuc2l0aW9uJywgKF9zLCBkdXJhdGlvbikgPT4ge1xuICAgIGlmIChzd2lwZXIucGFyYW1zLmVmZmVjdCAhPT0gZWZmZWN0KSByZXR1cm47XG4gICAgc2V0VHJhbnNpdGlvbihkdXJhdGlvbik7XG4gIH0pO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/swiper/shared/effect-init.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/shared/effect-target.js": +/*!*****************************************************!*\ + !*** ./node_modules/swiper/shared/effect-target.js ***! + \*****************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ effectTarget; }\n/* harmony export */ });\nfunction effectTarget(effectParams, $slideEl) {\n if (effectParams.transformEl) {\n return $slideEl.find(effectParams.transformEl).css({\n 'backface-visibility': 'hidden',\n '-webkit-backface-visibility': 'hidden'\n });\n }\n\n return $slideEl;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL3NoYXJlZC9lZmZlY3QtdGFyZ2V0LmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N3aXBlci9zaGFyZWQvZWZmZWN0LXRhcmdldC5qcz84NTRkIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGVmZmVjdFRhcmdldChlZmZlY3RQYXJhbXMsICRzbGlkZUVsKSB7XG4gIGlmIChlZmZlY3RQYXJhbXMudHJhbnNmb3JtRWwpIHtcbiAgICByZXR1cm4gJHNsaWRlRWwuZmluZChlZmZlY3RQYXJhbXMudHJhbnNmb3JtRWwpLmNzcyh7XG4gICAgICAnYmFja2ZhY2UtdmlzaWJpbGl0eSc6ICdoaWRkZW4nLFxuICAgICAgJy13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eSc6ICdoaWRkZW4nXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gJHNsaWRlRWw7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/swiper/shared/effect-target.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/shared/effect-virtual-transition-end.js": +/*!*********************************************************************!*\ + !*** ./node_modules/swiper/shared/effect-virtual-transition-end.js ***! + \*********************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ effectVirtualTransitionEnd; }\n/* harmony export */ });\nfunction effectVirtualTransitionEnd({\n swiper,\n duration,\n transformEl,\n allSlides\n}) {\n const {\n slides,\n activeIndex,\n $wrapperEl\n } = swiper;\n\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n let $transitionEndTarget;\n\n if (allSlides) {\n $transitionEndTarget = transformEl ? slides.find(transformEl) : slides;\n } else {\n $transitionEndTarget = transformEl ? slides.eq(activeIndex).find(transformEl) : slides.eq(activeIndex);\n }\n\n $transitionEndTarget.transitionEnd(() => {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n const triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n\n for (let i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL3NoYXJlZC9lZmZlY3QtdmlydHVhbC10cmFuc2l0aW9uLWVuZC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7O0FBRUo7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsc0JBQXNCLDBCQUEwQjtBQUNoRDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N3aXBlci9zaGFyZWQvZWZmZWN0LXZpcnR1YWwtdHJhbnNpdGlvbi1lbmQuanM/ODk2NCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBlZmZlY3RWaXJ0dWFsVHJhbnNpdGlvbkVuZCh7XG4gIHN3aXBlcixcbiAgZHVyYXRpb24sXG4gIHRyYW5zZm9ybUVsLFxuICBhbGxTbGlkZXNcbn0pIHtcbiAgY29uc3Qge1xuICAgIHNsaWRlcyxcbiAgICBhY3RpdmVJbmRleCxcbiAgICAkd3JhcHBlckVsXG4gIH0gPSBzd2lwZXI7XG5cbiAgaWYgKHN3aXBlci5wYXJhbXMudmlydHVhbFRyYW5zbGF0ZSAmJiBkdXJhdGlvbiAhPT0gMCkge1xuICAgIGxldCBldmVudFRyaWdnZXJlZCA9IGZhbHNlO1xuICAgIGxldCAkdHJhbnNpdGlvbkVuZFRhcmdldDtcblxuICAgIGlmIChhbGxTbGlkZXMpIHtcbiAgICAgICR0cmFuc2l0aW9uRW5kVGFyZ2V0ID0gdHJhbnNmb3JtRWwgPyBzbGlkZXMuZmluZCh0cmFuc2Zvcm1FbCkgOiBzbGlkZXM7XG4gICAgfSBlbHNlIHtcbiAgICAgICR0cmFuc2l0aW9uRW5kVGFyZ2V0ID0gdHJhbnNmb3JtRWwgPyBzbGlkZXMuZXEoYWN0aXZlSW5kZXgpLmZpbmQodHJhbnNmb3JtRWwpIDogc2xpZGVzLmVxKGFjdGl2ZUluZGV4KTtcbiAgICB9XG5cbiAgICAkdHJhbnNpdGlvbkVuZFRhcmdldC50cmFuc2l0aW9uRW5kKCgpID0+IHtcbiAgICAgIGlmIChldmVudFRyaWdnZXJlZCkgcmV0dXJuO1xuICAgICAgaWYgKCFzd2lwZXIgfHwgc3dpcGVyLmRlc3Ryb3llZCkgcmV0dXJuO1xuICAgICAgZXZlbnRUcmlnZ2VyZWQgPSB0cnVlO1xuICAgICAgc3dpcGVyLmFuaW1hdGluZyA9IGZhbHNlO1xuICAgICAgY29uc3QgdHJpZ2dlckV2ZW50cyA9IFsnd2Via2l0VHJhbnNpdGlvbkVuZCcsICd0cmFuc2l0aW9uZW5kJ107XG5cbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdHJpZ2dlckV2ZW50cy5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgICAkd3JhcHBlckVsLnRyaWdnZXIodHJpZ2dlckV2ZW50c1tpXSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/swiper/shared/effect-virtual-transition-end.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/shared/get-browser.js": +/*!***************************************************!*\ + !*** ./node_modules/swiper/shared/get-browser.js ***! + \***************************************************/ +/***/ (function(__unused_webpack___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 */ \"getBrowser\": function() { return /* binding */ getBrowser; }\n/* harmony export */ });\n/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ \"./node_modules/ssr-window/ssr-window.esm.js\");\n\nlet browser;\n\nfunction calcBrowser() {\n const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();\n\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n\n return {\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL3NoYXJlZC9nZXQtYnJvd3Nlci5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUF1QztBQUN2Qzs7QUFFQTtBQUNBLGlCQUFpQixxREFBUzs7QUFFMUI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zd2lwZXIvc2hhcmVkL2dldC1icm93c2VyLmpzPzI2NTYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0V2luZG93IH0gZnJvbSAnc3NyLXdpbmRvdyc7XG5sZXQgYnJvd3NlcjtcblxuZnVuY3Rpb24gY2FsY0Jyb3dzZXIoKSB7XG4gIGNvbnN0IHdpbmRvdyA9IGdldFdpbmRvdygpO1xuXG4gIGZ1bmN0aW9uIGlzU2FmYXJpKCkge1xuICAgIGNvbnN0IHVhID0gd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKTtcbiAgICByZXR1cm4gdWEuaW5kZXhPZignc2FmYXJpJykgPj0gMCAmJiB1YS5pbmRleE9mKCdjaHJvbWUnKSA8IDAgJiYgdWEuaW5kZXhPZignYW5kcm9pZCcpIDwgMDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgaXNTYWZhcmk6IGlzU2FmYXJpKCksXG4gICAgaXNXZWJWaWV3OiAvKGlQaG9uZXxpUG9kfGlQYWQpLipBcHBsZVdlYktpdCg/IS4qU2FmYXJpKS9pLnRlc3Qod2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQpXG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldEJyb3dzZXIoKSB7XG4gIGlmICghYnJvd3Nlcikge1xuICAgIGJyb3dzZXIgPSBjYWxjQnJvd3NlcigpO1xuICB9XG5cbiAgcmV0dXJuIGJyb3dzZXI7XG59XG5cbmV4cG9ydCB7IGdldEJyb3dzZXIgfTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/swiper/shared/get-browser.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/shared/get-device.js": +/*!**************************************************!*\ + !*** ./node_modules/swiper/shared/get-device.js ***! + \**************************************************/ +/***/ (function(__unused_webpack___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 */ \"getDevice\": function() { return /* binding */ getDevice; }\n/* harmony export */ });\n/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ \"./node_modules/ssr-window/ssr-window.esm.js\");\n/* harmony import */ var _get_support_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./get-support.js */ \"./node_modules/swiper/shared/get-support.js\");\n\n\nlet deviceCached;\n\nfunction calcDevice({\n userAgent\n} = {}) {\n const support = (0,_get_support_js__WEBPACK_IMPORTED_MODULE_1__.getSupport)();\n const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n } // Android\n\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides = {}) {\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n\n return deviceCached;\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL3NoYXJlZC9nZXQtZGV2aWNlLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUF1QztBQUNPO0FBQzlDOztBQUVBO0FBQ0E7QUFDQSxFQUFFLElBQUk7QUFDTixrQkFBa0IsMkRBQVU7QUFDNUIsaUJBQWlCLHFEQUFTO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQ0FBc0MscUJBQXFCOztBQUUzRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVDQUF1Qzs7QUFFdkM7O0FBRUEsZ0VBQWdFLFlBQVksR0FBRyxhQUFhO0FBQzVGO0FBQ0E7QUFDQTtBQUNBLElBQUk7OztBQUdKO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7OztBQUdKO0FBQ0E7O0FBRUEsaUNBQWlDO0FBQ2pDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zd2lwZXIvc2hhcmVkL2dldC1kZXZpY2UuanM/MDNkYiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRXaW5kb3cgfSBmcm9tICdzc3Itd2luZG93JztcbmltcG9ydCB7IGdldFN1cHBvcnQgfSBmcm9tICcuL2dldC1zdXBwb3J0LmpzJztcbmxldCBkZXZpY2VDYWNoZWQ7XG5cbmZ1bmN0aW9uIGNhbGNEZXZpY2Uoe1xuICB1c2VyQWdlbnRcbn0gPSB7fSkge1xuICBjb25zdCBzdXBwb3J0ID0gZ2V0U3VwcG9ydCgpO1xuICBjb25zdCB3aW5kb3cgPSBnZXRXaW5kb3coKTtcbiAgY29uc3QgcGxhdGZvcm0gPSB3aW5kb3cubmF2aWdhdG9yLnBsYXRmb3JtO1xuICBjb25zdCB1YSA9IHVzZXJBZ2VudCB8fCB3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudDtcbiAgY29uc3QgZGV2aWNlID0ge1xuICAgIGlvczogZmFsc2UsXG4gICAgYW5kcm9pZDogZmFsc2VcbiAgfTtcbiAgY29uc3Qgc2NyZWVuV2lkdGggPSB3aW5kb3cuc2NyZWVuLndpZHRoO1xuICBjb25zdCBzY3JlZW5IZWlnaHQgPSB3aW5kb3cuc2NyZWVuLmhlaWdodDtcbiAgY29uc3QgYW5kcm9pZCA9IHVhLm1hdGNoKC8oQW5kcm9pZCk7P1tcXHNcXC9dKyhbXFxkLl0rKT8vKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuXG4gIGxldCBpcGFkID0gdWEubWF0Y2goLyhpUGFkKS4qT1NcXHMoW1xcZF9dKykvKTtcbiAgY29uc3QgaXBvZCA9IHVhLm1hdGNoKC8oaVBvZCkoLipPU1xccyhbXFxkX10rKSk/Lyk7XG4gIGNvbnN0IGlwaG9uZSA9ICFpcGFkICYmIHVhLm1hdGNoKC8oaVBob25lXFxzT1N8aU9TKVxccyhbXFxkX10rKS8pO1xuICBjb25zdCB3aW5kb3dzID0gcGxhdGZvcm0gPT09ICdXaW4zMic7XG4gIGxldCBtYWNvcyA9IHBsYXRmb3JtID09PSAnTWFjSW50ZWwnOyAvLyBpUGFkT3MgMTMgZml4XG5cbiAgY29uc3QgaVBhZFNjcmVlbnMgPSBbJzEwMjR4MTM2NicsICcxMzY2eDEwMjQnLCAnODM0eDExOTQnLCAnMTE5NHg4MzQnLCAnODM0eDExMTInLCAnMTExMng4MzQnLCAnNzY4eDEwMjQnLCAnMTAyNHg3NjgnLCAnODIweDExODAnLCAnMTE4MHg4MjAnLCAnODEweDEwODAnLCAnMTA4MHg4MTAnXTtcblxuICBpZiAoIWlwYWQgJiYgbWFjb3MgJiYgc3VwcG9ydC50b3VjaCAmJiBpUGFkU2NyZWVucy5pbmRleE9mKGAke3NjcmVlbldpZHRofXgke3NjcmVlbkhlaWdodH1gKSA+PSAwKSB7XG4gICAgaXBhZCA9IHVhLm1hdGNoKC8oVmVyc2lvbilcXC8oW1xcZC5dKykvKTtcbiAgICBpZiAoIWlwYWQpIGlwYWQgPSBbMCwgMSwgJzEzXzBfMCddO1xuICAgIG1hY29zID0gZmFsc2U7XG4gIH0gLy8gQW5kcm9pZFxuXG5cbiAgaWYgKGFuZHJvaWQgJiYgIXdpbmRvd3MpIHtcbiAgICBkZXZpY2Uub3MgPSAnYW5kcm9pZCc7XG4gICAgZGV2aWNlLmFuZHJvaWQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKGlwYWQgfHwgaXBob25lIHx8IGlwb2QpIHtcbiAgICBkZXZpY2Uub3MgPSAnaW9zJztcbiAgICBkZXZpY2UuaW9zID0gdHJ1ZTtcbiAgfSAvLyBFeHBvcnQgb2JqZWN0XG5cblxuICByZXR1cm4gZGV2aWNlO1xufVxuXG5mdW5jdGlvbiBnZXREZXZpY2Uob3ZlcnJpZGVzID0ge30pIHtcbiAgaWYgKCFkZXZpY2VDYWNoZWQpIHtcbiAgICBkZXZpY2VDYWNoZWQgPSBjYWxjRGV2aWNlKG92ZXJyaWRlcyk7XG4gIH1cblxuICByZXR1cm4gZGV2aWNlQ2FjaGVkO1xufVxuXG5leHBvcnQgeyBnZXREZXZpY2UgfTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/swiper/shared/get-device.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/shared/get-support.js": +/*!***************************************************!*\ + !*** ./node_modules/swiper/shared/get-support.js ***! + \***************************************************/ +/***/ (function(__unused_webpack___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 */ \"getSupport\": function() { return /* binding */ getSupport; }\n/* harmony export */ });\n/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ \"./node_modules/ssr-window/ssr-window.esm.js\");\n\nlet support;\n\nfunction calcSupport() {\n const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();\n const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)();\n return {\n smoothScroll: document.documentElement && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n passiveListener: function checkPassiveListener() {\n let supportsPassive = false;\n\n try {\n const opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n }\n\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL3NoYXJlZC9nZXQtc3VwcG9ydC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFvRDtBQUNwRDs7QUFFQTtBQUNBLGlCQUFpQixxREFBUztBQUMxQixtQkFBbUIsdURBQVc7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDZDQUE2QztBQUM3QztBQUNBO0FBQ0E7QUFDQTs7QUFFQSxTQUFTO0FBQ1Q7QUFDQSxRQUFRLFdBQVc7QUFDbkI7O0FBRUE7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N3aXBlci9zaGFyZWQvZ2V0LXN1cHBvcnQuanM/YTc3NiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRXaW5kb3csIGdldERvY3VtZW50IH0gZnJvbSAnc3NyLXdpbmRvdyc7XG5sZXQgc3VwcG9ydDtcblxuZnVuY3Rpb24gY2FsY1N1cHBvcnQoKSB7XG4gIGNvbnN0IHdpbmRvdyA9IGdldFdpbmRvdygpO1xuICBjb25zdCBkb2N1bWVudCA9IGdldERvY3VtZW50KCk7XG4gIHJldHVybiB7XG4gICAgc21vb3RoU2Nyb2xsOiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQgJiYgJ3Njcm9sbEJlaGF2aW9yJyBpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUsXG4gICAgdG91Y2g6ICEhKCdvbnRvdWNoc3RhcnQnIGluIHdpbmRvdyB8fCB3aW5kb3cuRG9jdW1lbnRUb3VjaCAmJiBkb2N1bWVudCBpbnN0YW5jZW9mIHdpbmRvdy5Eb2N1bWVudFRvdWNoKSxcbiAgICBwYXNzaXZlTGlzdGVuZXI6IGZ1bmN0aW9uIGNoZWNrUGFzc2l2ZUxpc3RlbmVyKCkge1xuICAgICAgbGV0IHN1cHBvcnRzUGFzc2l2ZSA9IGZhbHNlO1xuXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBvcHRzID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAncGFzc2l2ZScsIHtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAgICAgICBnZXQoKSB7XG4gICAgICAgICAgICBzdXBwb3J0c1Bhc3NpdmUgPSB0cnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICB9KTtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Rlc3RQYXNzaXZlTGlzdGVuZXInLCBudWxsLCBvcHRzKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHsvLyBObyBzdXBwb3J0XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBzdXBwb3J0c1Bhc3NpdmU7XG4gICAgfSgpLFxuICAgIGdlc3R1cmVzOiBmdW5jdGlvbiBjaGVja0dlc3R1cmVzKCkge1xuICAgICAgcmV0dXJuICdvbmdlc3R1cmVzdGFydCcgaW4gd2luZG93O1xuICAgIH0oKVxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRTdXBwb3J0KCkge1xuICBpZiAoIXN1cHBvcnQpIHtcbiAgICBzdXBwb3J0ID0gY2FsY1N1cHBvcnQoKTtcbiAgfVxuXG4gIHJldHVybiBzdXBwb3J0O1xufVxuXG5leHBvcnQgeyBnZXRTdXBwb3J0IH07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/swiper/shared/get-support.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/shared/utils.js": +/*!*********************************************!*\ + !*** ./node_modules/swiper/shared/utils.js ***! + \*********************************************/ +/***/ (function(__unused_webpack___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 */ \"animateCSSModeScroll\": function() { return /* binding */ animateCSSModeScroll; },\n/* harmony export */ \"deleteProps\": function() { return /* binding */ deleteProps; },\n/* harmony export */ \"nextTick\": function() { return /* binding */ nextTick; },\n/* harmony export */ \"now\": function() { return /* binding */ now; },\n/* harmony export */ \"getTranslate\": function() { return /* binding */ getTranslate; },\n/* harmony export */ \"isObject\": function() { return /* binding */ isObject; },\n/* harmony export */ \"extend\": function() { return /* binding */ extend; },\n/* harmony export */ \"getComputedStyle\": function() { return /* binding */ getComputedStyle; },\n/* harmony export */ \"setCSSProperty\": function() { return /* binding */ setCSSProperty; }\n/* harmony export */ });\n/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ \"./node_modules/ssr-window/ssr-window.esm.js\");\n\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\n\nfunction nextTick(callback, delay = 0) {\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getComputedStyle(el) {\n const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();\n let style;\n\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n\n if (!style) {\n style = el.style;\n }\n\n return style;\n}\n\nfunction getTranslate(el, axis = 'x') {\n const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n\n return curTransform || 0;\n}\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\n\nfunction extend(...args) {\n const to = Object(args[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[i];\n\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n\n return to;\n}\n\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\n\nfunction animateCSSModeScroll({\n swiper,\n targetPosition,\n side\n}) {\n const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n\n const animate = () => {\n time = new Date().getTime();\n\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n\n animate();\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL3NoYXJlZC91dGlscy5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQXVDOztBQUV2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxXQUFXO0FBQ2pCOztBQUVBO0FBQ0E7QUFDQSxNQUFNLFdBQVc7QUFDakI7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGlCQUFpQixxREFBUztBQUMxQjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EsaUJBQWlCLHFEQUFTO0FBQzFCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU0sNERBQTREO0FBQ2xFOzs7QUFHQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLG9FQUFvRTtBQUNwRSwwRUFBMEU7QUFDMUU7QUFDQTs7QUFFQTtBQUNBO0FBQ0Esb0VBQW9FO0FBQ3BFLDBFQUEwRTtBQUMxRTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsa0JBQWtCLGlCQUFpQjtBQUNuQzs7QUFFQTtBQUNBOztBQUVBLHNEQUFzRCxpQkFBaUI7QUFDdkU7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0EsWUFBWTtBQUNaOztBQUVBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsaUJBQWlCLHFEQUFTO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULE9BQU87QUFDUDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zd2lwZXIvc2hhcmVkL3V0aWxzLmpzPzk5NDMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0V2luZG93IH0gZnJvbSAnc3NyLXdpbmRvdyc7XG5cbmZ1bmN0aW9uIGRlbGV0ZVByb3BzKG9iaikge1xuICBjb25zdCBvYmplY3QgPSBvYmo7XG4gIE9iamVjdC5rZXlzKG9iamVjdCkuZm9yRWFjaChrZXkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBvYmplY3Rba2V5XSA9IG51bGw7XG4gICAgfSBjYXRjaCAoZSkgey8vIG5vIGdldHRlciBmb3Igb2JqZWN0XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGRlbGV0ZSBvYmplY3Rba2V5XTtcbiAgICB9IGNhdGNoIChlKSB7Ly8gc29tZXRoaW5nIGdvdCB3cm9uZ1xuICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIG5leHRUaWNrKGNhbGxiYWNrLCBkZWxheSA9IDApIHtcbiAgcmV0dXJuIHNldFRpbWVvdXQoY2FsbGJhY2ssIGRlbGF5KTtcbn1cblxuZnVuY3Rpb24gbm93KCkge1xuICByZXR1cm4gRGF0ZS5ub3coKTtcbn1cblxuZnVuY3Rpb24gZ2V0Q29tcHV0ZWRTdHlsZShlbCkge1xuICBjb25zdCB3aW5kb3cgPSBnZXRXaW5kb3coKTtcbiAgbGV0IHN0eWxlO1xuXG4gIGlmICh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSkge1xuICAgIHN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWwsIG51bGwpO1xuICB9XG5cbiAgaWYgKCFzdHlsZSAmJiBlbC5jdXJyZW50U3R5bGUpIHtcbiAgICBzdHlsZSA9IGVsLmN1cnJlbnRTdHlsZTtcbiAgfVxuXG4gIGlmICghc3R5bGUpIHtcbiAgICBzdHlsZSA9IGVsLnN0eWxlO1xuICB9XG5cbiAgcmV0dXJuIHN0eWxlO1xufVxuXG5mdW5jdGlvbiBnZXRUcmFuc2xhdGUoZWwsIGF4aXMgPSAneCcpIHtcbiAgY29uc3Qgd2luZG93ID0gZ2V0V2luZG93KCk7XG4gIGxldCBtYXRyaXg7XG4gIGxldCBjdXJUcmFuc2Zvcm07XG4gIGxldCB0cmFuc2Zvcm1NYXRyaXg7XG4gIGNvbnN0IGN1clN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZShlbCwgbnVsbCk7XG5cbiAgaWYgKHdpbmRvdy5XZWJLaXRDU1NNYXRyaXgpIHtcbiAgICBjdXJUcmFuc2Zvcm0gPSBjdXJTdHlsZS50cmFuc2Zvcm0gfHwgY3VyU3R5bGUud2Via2l0VHJhbnNmb3JtO1xuXG4gICAgaWYgKGN1clRyYW5zZm9ybS5zcGxpdCgnLCcpLmxlbmd0aCA+IDYpIHtcbiAgICAgIGN1clRyYW5zZm9ybSA9IGN1clRyYW5zZm9ybS5zcGxpdCgnLCAnKS5tYXAoYSA9PiBhLnJlcGxhY2UoJywnLCAnLicpKS5qb2luKCcsICcpO1xuICAgIH0gLy8gU29tZSBvbGQgdmVyc2lvbnMgb2YgV2Via2l0IGNob2tlIHdoZW4gJ25vbmUnIGlzIHBhc3NlZDsgcGFzc1xuICAgIC8vIGVtcHR5IHN0cmluZyBpbnN0ZWFkIGluIHRoaXMgY2FzZVxuXG5cbiAgICB0cmFuc2Zvcm1NYXRyaXggPSBuZXcgd2luZG93LldlYktpdENTU01hdHJpeChjdXJUcmFuc2Zvcm0gPT09ICdub25lJyA/ICcnIDogY3VyVHJhbnNmb3JtKTtcbiAgfSBlbHNlIHtcbiAgICB0cmFuc2Zvcm1NYXRyaXggPSBjdXJTdHlsZS5Nb3pUcmFuc2Zvcm0gfHwgY3VyU3R5bGUuT1RyYW5zZm9ybSB8fCBjdXJTdHlsZS5Nc1RyYW5zZm9ybSB8fCBjdXJTdHlsZS5tc1RyYW5zZm9ybSB8fCBjdXJTdHlsZS50cmFuc2Zvcm0gfHwgY3VyU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndHJhbnNmb3JtJykucmVwbGFjZSgndHJhbnNsYXRlKCcsICdtYXRyaXgoMSwgMCwgMCwgMSwnKTtcbiAgICBtYXRyaXggPSB0cmFuc2Zvcm1NYXRyaXgudG9TdHJpbmcoKS5zcGxpdCgnLCcpO1xuICB9XG5cbiAgaWYgKGF4aXMgPT09ICd4Jykge1xuICAgIC8vIExhdGVzdCBDaHJvbWUgYW5kIHdlYmtpdHMgRml4XG4gICAgaWYgKHdpbmRvdy5XZWJLaXRDU1NNYXRyaXgpIGN1clRyYW5zZm9ybSA9IHRyYW5zZm9ybU1hdHJpeC5tNDE7IC8vIENyYXp5IElFMTAgTWF0cml4XG4gICAgZWxzZSBpZiAobWF0cml4Lmxlbmd0aCA9PT0gMTYpIGN1clRyYW5zZm9ybSA9IHBhcnNlRmxvYXQobWF0cml4WzEyXSk7IC8vIE5vcm1hbCBCcm93c2Vyc1xuICAgIGVsc2UgY3VyVHJhbnNmb3JtID0gcGFyc2VGbG9hdChtYXRyaXhbNF0pO1xuICB9XG5cbiAgaWYgKGF4aXMgPT09ICd5Jykge1xuICAgIC8vIExhdGVzdCBDaHJvbWUgYW5kIHdlYmtpdHMgRml4XG4gICAgaWYgKHdpbmRvdy5XZWJLaXRDU1NNYXRyaXgpIGN1clRyYW5zZm9ybSA9IHRyYW5zZm9ybU1hdHJpeC5tNDI7IC8vIENyYXp5IElFMTAgTWF0cml4XG4gICAgZWxzZSBpZiAobWF0cml4Lmxlbmd0aCA9PT0gMTYpIGN1clRyYW5zZm9ybSA9IHBhcnNlRmxvYXQobWF0cml4WzEzXSk7IC8vIE5vcm1hbCBCcm93c2Vyc1xuICAgIGVsc2UgY3VyVHJhbnNmb3JtID0gcGFyc2VGbG9hdChtYXRyaXhbNV0pO1xuICB9XG5cbiAgcmV0dXJuIGN1clRyYW5zZm9ybSB8fCAwO1xufVxuXG5mdW5jdGlvbiBpc09iamVjdChvKSB7XG4gIHJldHVybiB0eXBlb2YgbyA9PT0gJ29iamVjdCcgJiYgbyAhPT0gbnVsbCAmJiBvLmNvbnN0cnVjdG9yICYmIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvKS5zbGljZSg4LCAtMSkgPT09ICdPYmplY3QnO1xufVxuXG5mdW5jdGlvbiBpc05vZGUobm9kZSkge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiB3aW5kb3cuSFRNTEVsZW1lbnQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuIG5vZGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudDtcbiAgfVxuXG4gIHJldHVybiBub2RlICYmIChub2RlLm5vZGVUeXBlID09PSAxIHx8IG5vZGUubm9kZVR5cGUgPT09IDExKTtcbn1cblxuZnVuY3Rpb24gZXh0ZW5kKC4uLmFyZ3MpIHtcbiAgY29uc3QgdG8gPSBPYmplY3QoYXJnc1swXSk7XG4gIGNvbnN0IG5vRXh0ZW5kID0gWydfX3Byb3RvX18nLCAnY29uc3RydWN0b3InLCAncHJvdG90eXBlJ107XG5cbiAgZm9yIChsZXQgaSA9IDE7IGkgPCBhcmdzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgY29uc3QgbmV4dFNvdXJjZSA9IGFyZ3NbaV07XG5cbiAgICBpZiAobmV4dFNvdXJjZSAhPT0gdW5kZWZpbmVkICYmIG5leHRTb3VyY2UgIT09IG51bGwgJiYgIWlzTm9kZShuZXh0U291cmNlKSkge1xuICAgICAgY29uc3Qga2V5c0FycmF5ID0gT2JqZWN0LmtleXMoT2JqZWN0KG5leHRTb3VyY2UpKS5maWx0ZXIoa2V5ID0+IG5vRXh0ZW5kLmluZGV4T2Yoa2V5KSA8IDApO1xuXG4gICAgICBmb3IgKGxldCBuZXh0SW5kZXggPSAwLCBsZW4gPSBrZXlzQXJyYXkubGVuZ3RoOyBuZXh0SW5kZXggPCBsZW47IG5leHRJbmRleCArPSAxKSB7XG4gICAgICAgIGNvbnN0IG5leHRLZXkgPSBrZXlzQXJyYXlbbmV4dEluZGV4XTtcbiAgICAgICAgY29uc3QgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobmV4dFNvdXJjZSwgbmV4dEtleSk7XG5cbiAgICAgICAgaWYgKGRlc2MgIT09IHVuZGVmaW5lZCAmJiBkZXNjLmVudW1lcmFibGUpIHtcbiAgICAgICAgICBpZiAoaXNPYmplY3QodG9bbmV4dEtleV0pICYmIGlzT2JqZWN0KG5leHRTb3VyY2VbbmV4dEtleV0pKSB7XG4gICAgICAgICAgICBpZiAobmV4dFNvdXJjZVtuZXh0S2V5XS5fX3N3aXBlcl9fKSB7XG4gICAgICAgICAgICAgIHRvW25leHRLZXldID0gbmV4dFNvdXJjZVtuZXh0S2V5XTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGV4dGVuZCh0b1tuZXh0S2V5XSwgbmV4dFNvdXJjZVtuZXh0S2V5XSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmICghaXNPYmplY3QodG9bbmV4dEtleV0pICYmIGlzT2JqZWN0KG5leHRTb3VyY2VbbmV4dEtleV0pKSB7XG4gICAgICAgICAgICB0b1tuZXh0S2V5XSA9IHt9O1xuXG4gICAgICAgICAgICBpZiAobmV4dFNvdXJjZVtuZXh0S2V5XS5fX3N3aXBlcl9fKSB7XG4gICAgICAgICAgICAgIHRvW25leHRLZXldID0gbmV4dFNvdXJjZVtuZXh0S2V5XTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGV4dGVuZCh0b1tuZXh0S2V5XSwgbmV4dFNvdXJjZVtuZXh0S2V5XSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRvW25leHRLZXldID0gbmV4dFNvdXJjZVtuZXh0S2V5XTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdG87XG59XG5cbmZ1bmN0aW9uIHNldENTU1Byb3BlcnR5KGVsLCB2YXJOYW1lLCB2YXJWYWx1ZSkge1xuICBlbC5zdHlsZS5zZXRQcm9wZXJ0eSh2YXJOYW1lLCB2YXJWYWx1ZSk7XG59XG5cbmZ1bmN0aW9uIGFuaW1hdGVDU1NNb2RlU2Nyb2xsKHtcbiAgc3dpcGVyLFxuICB0YXJnZXRQb3NpdGlvbixcbiAgc2lkZVxufSkge1xuICBjb25zdCB3aW5kb3cgPSBnZXRXaW5kb3coKTtcbiAgY29uc3Qgc3RhcnRQb3NpdGlvbiA9IC1zd2lwZXIudHJhbnNsYXRlO1xuICBsZXQgc3RhcnRUaW1lID0gbnVsbDtcbiAgbGV0IHRpbWU7XG4gIGNvbnN0IGR1cmF0aW9uID0gc3dpcGVyLnBhcmFtcy5zcGVlZDtcbiAgc3dpcGVyLndyYXBwZXJFbC5zdHlsZS5zY3JvbGxTbmFwVHlwZSA9ICdub25lJztcbiAgd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKHN3aXBlci5jc3NNb2RlRnJhbWVJRCk7XG4gIGNvbnN0IGRpciA9IHRhcmdldFBvc2l0aW9uID4gc3RhcnRQb3NpdGlvbiA/ICduZXh0JyA6ICdwcmV2JztcblxuICBjb25zdCBpc091dE9mQm91bmQgPSAoY3VycmVudCwgdGFyZ2V0KSA9PiB7XG4gICAgcmV0dXJuIGRpciA9PT0gJ25leHQnICYmIGN1cnJlbnQgPj0gdGFyZ2V0IHx8IGRpciA9PT0gJ3ByZXYnICYmIGN1cnJlbnQgPD0gdGFyZ2V0O1xuICB9O1xuXG4gIGNvbnN0IGFuaW1hdGUgPSAoKSA9PiB7XG4gICAgdGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuXG4gICAgaWYgKHN0YXJ0VGltZSA9PT0gbnVsbCkge1xuICAgICAgc3RhcnRUaW1lID0gdGltZTtcbiAgICB9XG5cbiAgICBjb25zdCBwcm9ncmVzcyA9IE1hdGgubWF4KE1hdGgubWluKCh0aW1lIC0gc3RhcnRUaW1lKSAvIGR1cmF0aW9uLCAxKSwgMCk7XG4gICAgY29uc3QgZWFzZVByb2dyZXNzID0gMC41IC0gTWF0aC5jb3MocHJvZ3Jlc3MgKiBNYXRoLlBJKSAvIDI7XG4gICAgbGV0IGN1cnJlbnRQb3NpdGlvbiA9IHN0YXJ0UG9zaXRpb24gKyBlYXNlUHJvZ3Jlc3MgKiAodGFyZ2V0UG9zaXRpb24gLSBzdGFydFBvc2l0aW9uKTtcblxuICAgIGlmIChpc091dE9mQm91bmQoY3VycmVudFBvc2l0aW9uLCB0YXJnZXRQb3NpdGlvbikpIHtcbiAgICAgIGN1cnJlbnRQb3NpdGlvbiA9IHRhcmdldFBvc2l0aW9uO1xuICAgIH1cblxuICAgIHN3aXBlci53cmFwcGVyRWwuc2Nyb2xsVG8oe1xuICAgICAgW3NpZGVdOiBjdXJyZW50UG9zaXRpb25cbiAgICB9KTtcblxuICAgIGlmIChpc091dE9mQm91bmQoY3VycmVudFBvc2l0aW9uLCB0YXJnZXRQb3NpdGlvbikpIHtcbiAgICAgIHN3aXBlci53cmFwcGVyRWwuc3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJztcbiAgICAgIHN3aXBlci53cmFwcGVyRWwuc3R5bGUuc2Nyb2xsU25hcFR5cGUgPSAnJztcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBzd2lwZXIud3JhcHBlckVsLnN0eWxlLm92ZXJmbG93ID0gJyc7XG4gICAgICAgIHN3aXBlci53cmFwcGVyRWwuc2Nyb2xsVG8oe1xuICAgICAgICAgIFtzaWRlXTogY3VycmVudFBvc2l0aW9uXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgICB3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUoc3dpcGVyLmNzc01vZGVGcmFtZUlEKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzd2lwZXIuY3NzTW9kZUZyYW1lSUQgPSB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGFuaW1hdGUpO1xuICB9O1xuXG4gIGFuaW1hdGUoKTtcbn1cblxuZXhwb3J0IHsgYW5pbWF0ZUNTU01vZGVTY3JvbGwsIGRlbGV0ZVByb3BzLCBuZXh0VGljaywgbm93LCBnZXRUcmFuc2xhdGUsIGlzT2JqZWN0LCBleHRlbmQsIGdldENvbXB1dGVkU3R5bGUsIHNldENTU1Byb3BlcnR5IH07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/swiper/shared/utils.js\n"); + +/***/ }), + +/***/ "./node_modules/swiper/swiper.esm.js": +/*!*******************************************!*\ + !*** ./node_modules/swiper/swiper.esm.js ***! + \*******************************************/ +/***/ (function(__unused_webpack___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 */ \"Swiper\": function() { return /* reexport safe */ _core_core_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; },\n/* harmony export */ \"default\": function() { return /* reexport safe */ _core_core_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; },\n/* harmony export */ \"Virtual\": function() { return /* reexport safe */ _modules_virtual_virtual_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; },\n/* harmony export */ \"Keyboard\": function() { return /* reexport safe */ _modules_keyboard_keyboard_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; },\n/* harmony export */ \"Mousewheel\": function() { return /* reexport safe */ _modules_mousewheel_mousewheel_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; },\n/* harmony export */ \"Navigation\": function() { return /* reexport safe */ _modules_navigation_navigation_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; },\n/* harmony export */ \"Pagination\": function() { return /* reexport safe */ _modules_pagination_pagination_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; },\n/* harmony export */ \"Scrollbar\": function() { return /* reexport safe */ _modules_scrollbar_scrollbar_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"]; },\n/* harmony export */ \"Parallax\": function() { return /* reexport safe */ _modules_parallax_parallax_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"]; },\n/* harmony export */ \"Zoom\": function() { return /* reexport safe */ _modules_zoom_zoom_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"]; },\n/* harmony export */ \"Lazy\": function() { return /* reexport safe */ _modules_lazy_lazy_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"]; },\n/* harmony export */ \"Controller\": function() { return /* reexport safe */ _modules_controller_controller_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"]; },\n/* harmony export */ \"A11y\": function() { return /* reexport safe */ _modules_a11y_a11y_js__WEBPACK_IMPORTED_MODULE_11__[\"default\"]; },\n/* harmony export */ \"History\": function() { return /* reexport safe */ _modules_history_history_js__WEBPACK_IMPORTED_MODULE_12__[\"default\"]; },\n/* harmony export */ \"HashNavigation\": function() { return /* reexport safe */ _modules_hash_navigation_hash_navigation_js__WEBPACK_IMPORTED_MODULE_13__[\"default\"]; },\n/* harmony export */ \"Autoplay\": function() { return /* reexport safe */ _modules_autoplay_autoplay_js__WEBPACK_IMPORTED_MODULE_14__[\"default\"]; },\n/* harmony export */ \"Thumbs\": function() { return /* reexport safe */ _modules_thumbs_thumbs_js__WEBPACK_IMPORTED_MODULE_15__[\"default\"]; },\n/* harmony export */ \"FreeMode\": function() { return /* reexport safe */ _modules_free_mode_free_mode_js__WEBPACK_IMPORTED_MODULE_16__[\"default\"]; },\n/* harmony export */ \"Grid\": function() { return /* reexport safe */ _modules_grid_grid_js__WEBPACK_IMPORTED_MODULE_17__[\"default\"]; },\n/* harmony export */ \"Manipulation\": function() { return /* reexport safe */ _modules_manipulation_manipulation_js__WEBPACK_IMPORTED_MODULE_18__[\"default\"]; },\n/* harmony export */ \"EffectFade\": function() { return /* reexport safe */ _modules_effect_fade_effect_fade_js__WEBPACK_IMPORTED_MODULE_19__[\"default\"]; },\n/* harmony export */ \"EffectCube\": function() { return /* reexport safe */ _modules_effect_cube_effect_cube_js__WEBPACK_IMPORTED_MODULE_20__[\"default\"]; },\n/* harmony export */ \"EffectFlip\": function() { return /* reexport safe */ _modules_effect_flip_effect_flip_js__WEBPACK_IMPORTED_MODULE_21__[\"default\"]; },\n/* harmony export */ \"EffectCoverflow\": function() { return /* reexport safe */ _modules_effect_coverflow_effect_coverflow_js__WEBPACK_IMPORTED_MODULE_22__[\"default\"]; },\n/* harmony export */ \"EffectCreative\": function() { return /* reexport safe */ _modules_effect_creative_effect_creative_js__WEBPACK_IMPORTED_MODULE_23__[\"default\"]; },\n/* harmony export */ \"EffectCards\": function() { return /* reexport safe */ _modules_effect_cards_effect_cards_js__WEBPACK_IMPORTED_MODULE_24__[\"default\"]; }\n/* harmony export */ });\n/* harmony import */ var _core_core_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./core/core.js */ \"./node_modules/swiper/core/core.js\");\n/* harmony import */ var _modules_virtual_virtual_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modules/virtual/virtual.js */ \"./node_modules/swiper/modules/virtual/virtual.js\");\n/* harmony import */ var _modules_keyboard_keyboard_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./modules/keyboard/keyboard.js */ \"./node_modules/swiper/modules/keyboard/keyboard.js\");\n/* harmony import */ var _modules_mousewheel_mousewheel_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./modules/mousewheel/mousewheel.js */ \"./node_modules/swiper/modules/mousewheel/mousewheel.js\");\n/* harmony import */ var _modules_navigation_navigation_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./modules/navigation/navigation.js */ \"./node_modules/swiper/modules/navigation/navigation.js\");\n/* harmony import */ var _modules_pagination_pagination_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./modules/pagination/pagination.js */ \"./node_modules/swiper/modules/pagination/pagination.js\");\n/* harmony import */ var _modules_scrollbar_scrollbar_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./modules/scrollbar/scrollbar.js */ \"./node_modules/swiper/modules/scrollbar/scrollbar.js\");\n/* harmony import */ var _modules_parallax_parallax_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./modules/parallax/parallax.js */ \"./node_modules/swiper/modules/parallax/parallax.js\");\n/* harmony import */ var _modules_zoom_zoom_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./modules/zoom/zoom.js */ \"./node_modules/swiper/modules/zoom/zoom.js\");\n/* harmony import */ var _modules_lazy_lazy_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./modules/lazy/lazy.js */ \"./node_modules/swiper/modules/lazy/lazy.js\");\n/* harmony import */ var _modules_controller_controller_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./modules/controller/controller.js */ \"./node_modules/swiper/modules/controller/controller.js\");\n/* harmony import */ var _modules_a11y_a11y_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./modules/a11y/a11y.js */ \"./node_modules/swiper/modules/a11y/a11y.js\");\n/* harmony import */ var _modules_history_history_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./modules/history/history.js */ \"./node_modules/swiper/modules/history/history.js\");\n/* harmony import */ var _modules_hash_navigation_hash_navigation_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./modules/hash-navigation/hash-navigation.js */ \"./node_modules/swiper/modules/hash-navigation/hash-navigation.js\");\n/* harmony import */ var _modules_autoplay_autoplay_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./modules/autoplay/autoplay.js */ \"./node_modules/swiper/modules/autoplay/autoplay.js\");\n/* harmony import */ var _modules_thumbs_thumbs_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./modules/thumbs/thumbs.js */ \"./node_modules/swiper/modules/thumbs/thumbs.js\");\n/* harmony import */ var _modules_free_mode_free_mode_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./modules/free-mode/free-mode.js */ \"./node_modules/swiper/modules/free-mode/free-mode.js\");\n/* harmony import */ var _modules_grid_grid_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./modules/grid/grid.js */ \"./node_modules/swiper/modules/grid/grid.js\");\n/* harmony import */ var _modules_manipulation_manipulation_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./modules/manipulation/manipulation.js */ \"./node_modules/swiper/modules/manipulation/manipulation.js\");\n/* harmony import */ var _modules_effect_fade_effect_fade_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./modules/effect-fade/effect-fade.js */ \"./node_modules/swiper/modules/effect-fade/effect-fade.js\");\n/* harmony import */ var _modules_effect_cube_effect_cube_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./modules/effect-cube/effect-cube.js */ \"./node_modules/swiper/modules/effect-cube/effect-cube.js\");\n/* harmony import */ var _modules_effect_flip_effect_flip_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./modules/effect-flip/effect-flip.js */ \"./node_modules/swiper/modules/effect-flip/effect-flip.js\");\n/* harmony import */ var _modules_effect_coverflow_effect_coverflow_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./modules/effect-coverflow/effect-coverflow.js */ \"./node_modules/swiper/modules/effect-coverflow/effect-coverflow.js\");\n/* harmony import */ var _modules_effect_creative_effect_creative_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./modules/effect-creative/effect-creative.js */ \"./node_modules/swiper/modules/effect-creative/effect-creative.js\");\n/* harmony import */ var _modules_effect_cards_effect_cards_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./modules/effect-cards/effect-cards.js */ \"./node_modules/swiper/modules/effect-cards/effect-cards.js\");\n/**\n * Swiper 7.3.0\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2021 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: November 18, 2021\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//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3dpcGVyL3N3aXBlci5lc20uanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFNEQ7QUFDTTtBQUNHO0FBQ007QUFDQTtBQUNBO0FBQ0g7QUFDSDtBQUNaO0FBQ0E7QUFDa0I7QUFDbEI7QUFDUztBQUN1QjtBQUNwQjtBQUNOO0FBQ1E7QUFDZDtBQUN3QjtBQUNKO0FBQ0E7QUFDQTtBQUNlO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N3aXBlci9zd2lwZXIuZXNtLmpzP2E4NmIiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTd2lwZXIgNy4zLjBcbiAqIE1vc3QgbW9kZXJuIG1vYmlsZSB0b3VjaCBzbGlkZXIgYW5kIGZyYW1ld29yayB3aXRoIGhhcmR3YXJlIGFjY2VsZXJhdGVkIHRyYW5zaXRpb25zXG4gKiBodHRwczovL3N3aXBlcmpzLmNvbVxuICpcbiAqIENvcHlyaWdodCAyMDE0LTIwMjEgVmxhZGltaXIgS2hhcmxhbXBpZGlcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2VcbiAqXG4gKiBSZWxlYXNlZCBvbjogTm92ZW1iZXIgMTgsIDIwMjFcbiAqL1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIFN3aXBlciwgZGVmYXVsdCB9IGZyb20gJy4vY29yZS9jb3JlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVmlydHVhbCB9IGZyb20gJy4vbW9kdWxlcy92aXJ0dWFsL3ZpcnR1YWwuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBLZXlib2FyZCB9IGZyb20gJy4vbW9kdWxlcy9rZXlib2FyZC9rZXlib2FyZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1vdXNld2hlZWwgfSBmcm9tICcuL21vZHVsZXMvbW91c2V3aGVlbC9tb3VzZXdoZWVsLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTmF2aWdhdGlvbiB9IGZyb20gJy4vbW9kdWxlcy9uYXZpZ2F0aW9uL25hdmlnYXRpb24uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQYWdpbmF0aW9uIH0gZnJvbSAnLi9tb2R1bGVzL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNjcm9sbGJhciB9IGZyb20gJy4vbW9kdWxlcy9zY3JvbGxiYXIvc2Nyb2xsYmFyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGFyYWxsYXggfSBmcm9tICcuL21vZHVsZXMvcGFyYWxsYXgvcGFyYWxsYXguanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBab29tIH0gZnJvbSAnLi9tb2R1bGVzL3pvb20vem9vbS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIExhenkgfSBmcm9tICcuL21vZHVsZXMvbGF6eS9sYXp5LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ29udHJvbGxlciB9IGZyb20gJy4vbW9kdWxlcy9jb250cm9sbGVyL2NvbnRyb2xsZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBBMTF5IH0gZnJvbSAnLi9tb2R1bGVzL2ExMXkvYTExeS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEhpc3RvcnkgfSBmcm9tICcuL21vZHVsZXMvaGlzdG9yeS9oaXN0b3J5LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSGFzaE5hdmlnYXRpb24gfSBmcm9tICcuL21vZHVsZXMvaGFzaC1uYXZpZ2F0aW9uL2hhc2gtbmF2aWdhdGlvbi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEF1dG9wbGF5IH0gZnJvbSAnLi9tb2R1bGVzL2F1dG9wbGF5L2F1dG9wbGF5LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVGh1bWJzIH0gZnJvbSAnLi9tb2R1bGVzL3RodW1icy90aHVtYnMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGcmVlTW9kZSB9IGZyb20gJy4vbW9kdWxlcy9mcmVlLW1vZGUvZnJlZS1tb2RlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgR3JpZCB9IGZyb20gJy4vbW9kdWxlcy9ncmlkL2dyaWQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNYW5pcHVsYXRpb24gfSBmcm9tICcuL21vZHVsZXMvbWFuaXB1bGF0aW9uL21hbmlwdWxhdGlvbi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEVmZmVjdEZhZGUgfSBmcm9tICcuL21vZHVsZXMvZWZmZWN0LWZhZGUvZWZmZWN0LWZhZGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBFZmZlY3RDdWJlIH0gZnJvbSAnLi9tb2R1bGVzL2VmZmVjdC1jdWJlL2VmZmVjdC1jdWJlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRWZmZWN0RmxpcCB9IGZyb20gJy4vbW9kdWxlcy9lZmZlY3QtZmxpcC9lZmZlY3QtZmxpcC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEVmZmVjdENvdmVyZmxvdyB9IGZyb20gJy4vbW9kdWxlcy9lZmZlY3QtY292ZXJmbG93L2VmZmVjdC1jb3ZlcmZsb3cuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBFZmZlY3RDcmVhdGl2ZSB9IGZyb20gJy4vbW9kdWxlcy9lZmZlY3QtY3JlYXRpdmUvZWZmZWN0LWNyZWF0aXZlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRWZmZWN0Q2FyZHMgfSBmcm9tICcuL21vZHVsZXMvZWZmZWN0LWNhcmRzL2VmZmVjdC1jYXJkcy5qcyc7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/swiper/swiper.esm.js\n"); + +/***/ }), + +/***/ "./src/data/sections/about-us3.json": +/*!******************************************!*\ + !*** ./src/data/sections/about-us3.json ***! + \******************************************/ +/***/ (function(module) { + +"use strict"; +module.exports = JSON.parse('{"id":1,"image1":"/img/01.jpg","image2":"/img/02.jpg","exp":{"nmb":8,"name":"Years Of Experience"},"title":{"first":"Unlimited Skills","second":"for Super Projects."},"content":{"first":"Why ? Business Hub At Business Hub, we understand the challenges entrepreneurs face when entering a new market.","second":"Our services are designed to facilitate the process of setting up businesses in the UAE, allowing you to focus on what you do best – driving the success of your business."},"smallTitle":"About Us"}'); + +/***/ }), + +/***/ "./src/data/sections/team.json": +/*!*************************************!*\ + !*** ./src/data/sections/team.json ***! + \*************************************/ +/***/ (function(module) { + +"use strict"; +module.exports = JSON.parse('{"teams":[{"id":1,"image":"/img/team/01.webp","title":"Stephanie Lawrence","sub":"CEO, Colabrio Media"},{"id":2,"image":"/img/team/02.webp","title":"Alex Regelman","sub":"CEO, Colabrio Media"},{"id":3,"image":"/img/team/03.webp","title":"Stacey Stamper","sub":"CEO, Colabrio Media"},{"id":4,"image":"/img/team/04.webp","title":"Stephanie Lawrence","sub":"CEO, Colabrio Media"},{"id":5,"image":"/img/team/05.webp","title":"Stephanie Lawrence","sub":"CEO, Colabrio Media"},{"id":6,"image":"/img/team/06.webp","title":"Alex Regelman","sub":"CEO, Colabrio Media"},{"id":7,"image":"/img/team/07.webp","title":"Stacey Stamper","sub":"CEO, Colabrio Media"},{"id":8,"image":"/img/team/08.webp","title":"Stephanie Lawrence","sub":"CEO, Colabrio Media"},{"id":9,"image":"/img/team/09.webp","title":"Stephanie Lawrence","sub":"CEO, Colabrio Media"},{"id":10,"image":"/img/team/10.webp","title":"Alex Regelman","sub":"CEO, Colabrio Media"},{"id":11,"image":"/img/team/11.webp","title":"Stacey Stamper","sub":"CEO, Colabrio Media"},{"id":12,"image":"/img/team/12.webp","title":"Stephanie Lawrence","sub":"CEO, Colabrio Media"}],"skills":[{"id":1,"text":"UI / UX Design","value":"90%"},{"id":2,"text":"Apps Development","value":"80%"}]}'); + +/***/ }), + +/***/ "./src/data/sections/works.json": +/*!**************************************!*\ + !*** ./src/data/sections/works.json ***! + \**************************************/ +/***/ (function(module) { + +"use strict"; +module.exports = JSON.parse('[{"id":1,"title":"art & illustration","secTex":"Innovation and Crafts","image":"/img/portfolio/metro/01.jpg","slug":"/project-details2/project-details2-dark"},{"id":2,"title":"art & illustration","secTex":"Inspiring new space","image":"/img/portfolio/metro/02.jpg","slug":"/project-details2/project-details2-dark"},{"id":3,"title":"art & illustration","secTex":"Natural plus modern","image":"/img/portfolio/metro/03.jpg","slug":"/project-details2/project-details2-dark"},{"id":4,"title":"art & illustration","secTex":"Innovation and Crafts","image":"/img/portfolio/metro/04.jpg","slug":"/project-details2/project-details2-dark"},{"id":5,"title":"art & illustration","secTex":"Natural plus modern","image":"/img/portfolio/metro/05.jpg","slug":"/project-details2/project-details2-dark"}]'); + +/***/ }) + +}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); } +/******/ __webpack_require__.O(0, ["pages/_app","main"], function() { return __webpack_exec__("./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2F&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cindex.jsx!"); }); +/******/ var __webpack_exports__ = __webpack_require__.O(); +/******/ _N_E = __webpack_exports__; +/******/ } +]); \ No newline at end of file diff --git a/.next/static/chunks/pages/services.js b/.next/static/chunks/pages/services.js new file mode 100644 index 0000000..f16d04f --- /dev/null +++ b/.next/static/chunks/pages/services.js @@ -0,0 +1,1013 @@ +/* + * 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/). + */ +(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["pages/services"],{ + +/***/ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js": +/*!**********************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/interopRequireDefault.js ***! + \**********************************************************************/ +/***/ (function(module) { + +eval("function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHQuanMuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHlCQUF5QixtQkFBbUIseUJBQXlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2ludGVyb3BSZXF1aXJlRGVmYXVsdC5qcz9lZThjIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgXCJkZWZhdWx0XCI6IG9ialxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQ7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/interopRequireDefault.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/link.js": +/*!***********************************************!*\ + !*** ./node_modules/next/dist/client/link.js ***! + \***********************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _slicedToArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nvar _s = $RefreshSig$();\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _router = __webpack_require__(/*! ../shared/lib/router/router */ \"./node_modules/next/dist/shared/lib/router/router.js\");\n\nvar _router1 = __webpack_require__(/*! ./router */ \"./node_modules/next/dist/client/router.js\");\n\nvar _useIntersection = __webpack_require__(/*! ./use-intersection */ \"./node_modules/next/dist/client/use-intersection.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar prefetched = {};\n\nfunction prefetch(router, href, as, options) {\n if ( false || !router) return;\n if (!(0, _router).isLocalURL(href)) return; // Prefetch the JSON 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\n router.prefetch(href, as, options)[\"catch\"](function (err) {\n if (true) {\n // rethrow to show invalid URL errors\n throw err;\n }\n });\n var curLocale = options && typeof options.locale !== 'undefined' ? options.locale : router && router.locale; // Join on an invalid URI character\n\n prefetched[href + '%' + as + (curLocale ? '%' + curLocale : '')] = true;\n}\n\nfunction isModifiedEvent(event) {\n var target = event.currentTarget.target;\n return target && target !== '_self' || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey || event.nativeEvent && event.nativeEvent.which === 2;\n}\n\nfunction linkClicked(e, router, href, as, replace, shallow, scroll, locale) {\n var nodeName = e.currentTarget.nodeName;\n\n if (nodeName === 'A' && (isModifiedEvent(e) || !(0, _router).isLocalURL(href))) {\n // ignore click for browser’s default behavior\n return;\n }\n\n e.preventDefault(); // avoid scroll for urls with anchor refs\n\n if (scroll == null && as.indexOf('#') >= 0) {\n scroll = false;\n } // replace state instead of push if prop is present\n\n\n router[replace ? 'replace' : 'push'](href, as, {\n shallow: shallow,\n locale: locale,\n scroll: scroll\n });\n}\n\nfunction Link(props) {\n _s();\n\n if (true) {\n var createPropError = function createPropError(args) {\n return new Error(\"Failed prop type: The prop `\".concat(args.key, \"` expects a \").concat(args.expected, \" in `<Link>`, but got `\").concat(args.actual, \"` instead.\") + ( true ? \"\\nOpen your browser's console to view the Component stack trace.\" : 0));\n }; // TypeScript trick for type-guarding:\n\n\n var requiredPropsGuard = {\n href: true\n };\n var requiredProps = Object.keys(requiredPropsGuard);\n requiredProps.forEach(function (key) {\n if (key === 'href') {\n if (props[key] == null || typeof props[key] !== 'string' && typeof props[key] !== 'object') {\n throw createPropError({\n key: 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 var _ = key;\n }\n }); // TypeScript trick for type-guarding:\n\n var optionalPropsGuard = {\n as: true,\n replace: true,\n scroll: true,\n shallow: true,\n passHref: true,\n prefetch: true,\n locale: true\n };\n var optionalProps = Object.keys(optionalPropsGuard);\n optionalProps.forEach(function (key) {\n var valType = typeof props[key];\n\n if (key === 'as') {\n if (props[key] && valType !== 'string' && valType !== 'object') {\n throw createPropError({\n key: key,\n expected: '`string` or `object`',\n actual: valType\n });\n }\n } else if (key === 'locale') {\n if (props[key] && valType !== 'string') {\n throw createPropError({\n key: key,\n expected: '`string`',\n actual: valType\n });\n }\n } else if (key === 'replace' || key === 'scroll' || key === 'shallow' || key === 'passHref' || key === 'prefetch') {\n if (props[key] != null && valType !== 'boolean') {\n throw createPropError({\n key: key,\n expected: '`boolean`',\n actual: valType\n });\n }\n } else {\n // TypeScript trick for type-guarding:\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var _ = key;\n }\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\n var hasWarned = _react[\"default\"].useRef(false);\n\n if (props.prefetch && !hasWarned.current) {\n hasWarned.current = true;\n console.warn('Next.js auto-prefetches automatically based on viewport. The prefetch attribute is no longer needed. More: https://nextjs.org/docs/messages/prefetch-true-deprecated');\n }\n }\n\n var p = props.prefetch !== false;\n var router = (0, _router1).useRouter();\n\n var _react$default$useMem = _react[\"default\"].useMemo(function () {\n var _resolveHref = (0, _router).resolveHref(router, props.href, true),\n _resolveHref2 = _slicedToArray(_resolveHref, 2),\n resolvedHref = _resolveHref2[0],\n resolvedAs = _resolveHref2[1];\n\n return {\n href: resolvedHref,\n as: props.as ? (0, _router).resolveHref(router, props.as) : resolvedAs || resolvedHref\n };\n }, [router, props.href, props.as]),\n href = _react$default$useMem.href,\n as = _react$default$useMem.as;\n\n var children = props.children,\n replace = props.replace,\n shallow = props.shallow,\n scroll = props.scroll,\n locale = props.locale; // Deprecated. Warning shown by propType check. If the children provided is a string (<Link>example</Link>) we wrap it in an <a> tag\n\n if (typeof children === 'string') {\n children = /*#__PURE__*/_react[\"default\"].createElement(\"a\", null, children);\n } // This will return the first child, if multiple are provided it will throw an error\n\n\n var child;\n\n if (true) {\n try {\n child = _react[\"default\"].Children.only(children);\n } catch (err) {\n throw new Error(\"Multiple children were passed to <Link> with `href` of `\".concat(props.href, \"` but only one child is supported https://nextjs.org/docs/messages/link-multiple-children\") + ( true ? \" \\nOpen your browser's console to view the Component stack trace.\" : 0));\n }\n } else {}\n\n var childRef = child && typeof child === 'object' && child.ref;\n\n var _useIntersection2 = (0, _useIntersection).useIntersection({\n rootMargin: '200px'\n }),\n _useIntersection3 = _slicedToArray(_useIntersection2, 2),\n setIntersectionRef = _useIntersection3[0],\n isVisible = _useIntersection3[1];\n\n var setRef = _react[\"default\"].useCallback(function (el) {\n setIntersectionRef(el);\n\n if (childRef) {\n if (typeof childRef === 'function') childRef(el);else if (typeof childRef === 'object') {\n childRef.current = el;\n }\n }\n }, [childRef, setIntersectionRef]);\n\n _react[\"default\"].useEffect(function () {\n var shouldPrefetch = isVisible && p && (0, _router).isLocalURL(href);\n var curLocale = typeof locale !== 'undefined' ? locale : router && router.locale;\n var isPrefetched = prefetched[href + '%' + as + (curLocale ? '%' + curLocale : '')];\n\n if (shouldPrefetch && !isPrefetched) {\n prefetch(router, href, as, {\n locale: curLocale\n });\n }\n }, [as, href, isVisible, locale, p, router]);\n\n var childProps = {\n ref: setRef,\n onClick: function onClick(e) {\n if (child.props && typeof child.props.onClick === 'function') {\n child.props.onClick(e);\n }\n\n if (!e.defaultPrevented) {\n linkClicked(e, router, href, as, replace, shallow, scroll, locale);\n }\n }\n };\n\n childProps.onMouseEnter = function (e) {\n if (!(0, _router).isLocalURL(href)) return;\n\n if (child.props && typeof child.props.onMouseEnter === 'function') {\n child.props.onMouseEnter(e);\n }\n\n prefetch(router, href, as, {\n priority: true\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\n\n if (props.passHref || child.type === 'a' && !('href' in child.props)) {\n var curLocale = typeof locale !== 'undefined' ? locale : router && router.locale; // we only render domain locales if we are currently on a domain locale\n // so that locale links are still visitable in development/preview envs\n\n var localeDomain = router && router.isLocaleDomain && (0, _router).getDomainLocale(as, curLocale, router && router.locales, router && router.domainLocales);\n childProps.href = localeDomain || (0, _router).addBasePath((0, _router).addLocale(as, curLocale, router && router.defaultLocale));\n }\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(child, childProps);\n}\n\n_s(Link, \"PYHstBoZE4p1pf5wc1Vw4fTzvCU=\", true);\n\n_c = Link;\nvar _default = Link;\nexports[\"default\"] = _default;\n\nvar _c;\n\n$RefreshReg$(_c, \"Link\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9saW5rLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7Ozs7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELGtCQUFBLEdBQWtCLEtBQUssQ0FBdkI7O0FBQ0EsSUFBSUUsTUFBTSxHQUFHQyxzQkFBc0IsQ0FBQ0MsbUJBQU8sQ0FBQyw0Q0FBRCxDQUFSLENBQW5DOztBQUNBLElBQUlDLE9BQU8sR0FBR0QsbUJBQU8sQ0FBQyx5RkFBRCxDQUFyQjs7QUFDQSxJQUFJRSxRQUFRLEdBQUdGLG1CQUFPLENBQUMsMkRBQUQsQ0FBdEI7O0FBQ0EsSUFBSUcsZ0JBQWdCLEdBQUdILG1CQUFPLENBQUMsK0VBQUQsQ0FBOUI7O0FBQ0EsU0FBU0Qsc0JBQVQsQ0FBZ0NLLEdBQWhDLEVBQXFDO0FBQ2pDLFNBQU9BLEdBQUcsSUFBSUEsR0FBRyxDQUFDQyxVQUFYLEdBQXdCRCxHQUF4QixHQUE4QjtBQUNqQyxlQUFTQTtBQUR3QixHQUFyQztBQUdIOztBQUNELElBQU1FLFVBQVUsR0FBRyxFQUFuQjs7QUFFQSxTQUFTQyxRQUFULENBQWtCQyxNQUFsQixFQUEwQkMsSUFBMUIsRUFBZ0NDLEVBQWhDLEVBQW9DQyxPQUFwQyxFQUE2QztBQUN6QyxNQUFJLFVBQWlDLENBQUNILE1BQXRDLEVBQThDO0FBQzlDLE1BQUksQ0FBQyxDQUFDLEdBQUdQLE9BQUosRUFBYVcsVUFBYixDQUF3QkgsSUFBeEIsQ0FBTCxFQUFvQyxPQUZLLENBR3pDO0FBQ0E7QUFDQTtBQUNBOztBQUNBRCxFQUFBQSxNQUFNLENBQUNELFFBQVAsQ0FBZ0JFLElBQWhCLEVBQXNCQyxFQUF0QixFQUEwQkMsT0FBMUIsV0FBeUMsVUFBQ0UsR0FBRCxFQUFPO0FBQzVDLGNBQTJDO0FBQ3ZDO0FBQ0EsWUFBTUEsR0FBTjtBQUNIO0FBQ0osR0FMRDtBQU1BLE1BQU1DLFNBQVMsR0FBR0gsT0FBTyxJQUFJLE9BQU9BLE9BQU8sQ0FBQ0ksTUFBZixLQUEwQixXQUFyQyxHQUFtREosT0FBTyxDQUFDSSxNQUEzRCxHQUFvRVAsTUFBTSxJQUFJQSxNQUFNLENBQUNPLE1BQXZHLENBYnlDLENBY3pDOztBQUNBVCxFQUFBQSxVQUFVLENBQUNHLElBQUksR0FBRyxHQUFQLEdBQWFDLEVBQWIsSUFBbUJJLFNBQVMsR0FBRyxNQUFNQSxTQUFULEdBQXFCLEVBQWpELENBQUQsQ0FBVixHQUFtRSxJQUFuRTtBQUNIOztBQUNELFNBQVNFLGVBQVQsQ0FBeUJDLEtBQXpCLEVBQWdDO0FBQzVCLE1BQVFDLE1BQVIsR0FBb0JELEtBQUssQ0FBQ0UsYUFBMUIsQ0FBUUQsTUFBUjtBQUNBLFNBQU9BLE1BQU0sSUFBSUEsTUFBTSxLQUFLLE9BQXJCLElBQWdDRCxLQUFLLENBQUNHLE9BQXRDLElBQWlESCxLQUFLLENBQUNJLE9BQXZELElBQWtFSixLQUFLLENBQUNLLFFBQXhFLElBQW9GTCxLQUFLLENBQUNNLE1BQTFGLElBQW9HTixLQUFLLENBQUNPLFdBQU4sSUFBcUJQLEtBQUssQ0FBQ08sV0FBTixDQUFrQkMsS0FBbEIsS0FBNEIsQ0FBNUo7QUFDSDs7QUFDRCxTQUFTQyxXQUFULENBQXFCQyxDQUFyQixFQUF3Qm5CLE1BQXhCLEVBQWdDQyxJQUFoQyxFQUFzQ0MsRUFBdEMsRUFBMENrQixPQUExQyxFQUFtREMsT0FBbkQsRUFBNERDLE1BQTVELEVBQW9FZixNQUFwRSxFQUE0RTtBQUN4RSxNQUFRZ0IsUUFBUixHQUFzQkosQ0FBQyxDQUFDUixhQUF4QixDQUFRWSxRQUFSOztBQUNBLE1BQUlBLFFBQVEsS0FBSyxHQUFiLEtBQXFCZixlQUFlLENBQUNXLENBQUQsQ0FBZixJQUFzQixDQUFDLENBQUMsR0FBRzFCLE9BQUosRUFBYVcsVUFBYixDQUF3QkgsSUFBeEIsQ0FBNUMsQ0FBSixFQUFnRjtBQUM1RTtBQUNBO0FBQ0g7O0FBQ0RrQixFQUFBQSxDQUFDLENBQUNLLGNBQUYsR0FOd0UsQ0FPeEU7O0FBQ0EsTUFBSUYsTUFBTSxJQUFJLElBQVYsSUFBa0JwQixFQUFFLENBQUN1QixPQUFILENBQVcsR0FBWCxLQUFtQixDQUF6QyxFQUE0QztBQUN4Q0gsSUFBQUEsTUFBTSxHQUFHLEtBQVQ7QUFDSCxHQVZ1RSxDQVd4RTs7O0FBQ0F0QixFQUFBQSxNQUFNLENBQUNvQixPQUFPLEdBQUcsU0FBSCxHQUFlLE1BQXZCLENBQU4sQ0FBcUNuQixJQUFyQyxFQUEyQ0MsRUFBM0MsRUFBK0M7QUFDM0NtQixJQUFBQSxPQUFPLEVBQVBBLE9BRDJDO0FBRTNDZCxJQUFBQSxNQUFNLEVBQU5BLE1BRjJDO0FBRzNDZSxJQUFBQSxNQUFNLEVBQU5BO0FBSDJDLEdBQS9DO0FBS0g7O0FBQ0QsU0FBU0ksSUFBVCxDQUFjQyxLQUFkLEVBQXFCO0FBQUE7O0FBQ2pCLFlBQTJDO0FBQUEsUUFDOUJDLGVBRDhCLEdBQ3ZDLFNBQVNBLGVBQVQsQ0FBeUJDLElBQXpCLEVBQStCO0FBQzNCLGFBQU8sSUFBSUMsS0FBSixDQUFVLHNDQUFnQ0QsSUFBSSxDQUFDRSxHQUFyQyx5QkFBd0RGLElBQUksQ0FBQ0csUUFBN0Qsb0NBQWtHSCxJQUFJLENBQUNJLE1BQXZHLG1CQUE4SCxRQUFnQyxrRUFBaEMsR0FBcUcsQ0FBbk8sQ0FBVixDQUFQO0FBQ0gsS0FIc0MsRUFJdkM7OztBQUNBLFFBQU1DLGtCQUFrQixHQUFHO0FBQ3ZCakMsTUFBQUEsSUFBSSxFQUFFO0FBRGlCLEtBQTNCO0FBR0EsUUFBTWtDLGFBQWEsR0FBR2pELE1BQU0sQ0FBQ2tELElBQVAsQ0FBWUYsa0JBQVosQ0FBdEI7QUFDQUMsSUFBQUEsYUFBYSxDQUFDRSxPQUFkLENBQXNCLFVBQUNOLEdBQUQsRUFBTztBQUN6QixVQUFJQSxHQUFHLEtBQUssTUFBWixFQUFvQjtBQUNoQixZQUFJSixLQUFLLENBQUNJLEdBQUQsQ0FBTCxJQUFjLElBQWQsSUFBc0IsT0FBT0osS0FBSyxDQUFDSSxHQUFELENBQVosS0FBc0IsUUFBdEIsSUFBa0MsT0FBT0osS0FBSyxDQUFDSSxHQUFELENBQVosS0FBc0IsUUFBbEYsRUFBNEY7QUFDeEYsZ0JBQU1ILGVBQWUsQ0FBQztBQUNsQkcsWUFBQUEsR0FBRyxFQUFIQSxHQURrQjtBQUVsQkMsWUFBQUEsUUFBUSxFQUFFLHNCQUZRO0FBR2xCQyxZQUFBQSxNQUFNLEVBQUVOLEtBQUssQ0FBQ0ksR0FBRCxDQUFMLEtBQWUsSUFBZixHQUFzQixNQUF0QixHQUErQixPQUFPSixLQUFLLENBQUNJLEdBQUQ7QUFIakMsV0FBRCxDQUFyQjtBQUtIO0FBQ0osT0FSRCxNQVFPO0FBQ0g7QUFDQTtBQUNBLFlBQU1PLENBQUMsR0FBR1AsR0FBVjtBQUNIO0FBQ0osS0FkRCxFQVR1QyxDQXdCdkM7O0FBQ0EsUUFBTVEsa0JBQWtCLEdBQUc7QUFDdkJyQyxNQUFBQSxFQUFFLEVBQUUsSUFEbUI7QUFFdkJrQixNQUFBQSxPQUFPLEVBQUUsSUFGYztBQUd2QkUsTUFBQUEsTUFBTSxFQUFFLElBSGU7QUFJdkJELE1BQUFBLE9BQU8sRUFBRSxJQUpjO0FBS3ZCbUIsTUFBQUEsUUFBUSxFQUFFLElBTGE7QUFNdkJ6QyxNQUFBQSxRQUFRLEVBQUUsSUFOYTtBQU92QlEsTUFBQUEsTUFBTSxFQUFFO0FBUGUsS0FBM0I7QUFTQSxRQUFNa0MsYUFBYSxHQUFHdkQsTUFBTSxDQUFDa0QsSUFBUCxDQUFZRyxrQkFBWixDQUF0QjtBQUNBRSxJQUFBQSxhQUFhLENBQUNKLE9BQWQsQ0FBc0IsVUFBQ04sR0FBRCxFQUFPO0FBQ3pCLFVBQU1XLE9BQU8sR0FBRyxPQUFPZixLQUFLLENBQUNJLEdBQUQsQ0FBNUI7O0FBQ0EsVUFBSUEsR0FBRyxLQUFLLElBQVosRUFBa0I7QUFDZCxZQUFJSixLQUFLLENBQUNJLEdBQUQsQ0FBTCxJQUFjVyxPQUFPLEtBQUssUUFBMUIsSUFBc0NBLE9BQU8sS0FBSyxRQUF0RCxFQUFnRTtBQUM1RCxnQkFBTWQsZUFBZSxDQUFDO0FBQ2xCRyxZQUFBQSxHQUFHLEVBQUhBLEdBRGtCO0FBRWxCQyxZQUFBQSxRQUFRLEVBQUUsc0JBRlE7QUFHbEJDLFlBQUFBLE1BQU0sRUFBRVM7QUFIVSxXQUFELENBQXJCO0FBS0g7QUFDSixPQVJELE1BUU8sSUFBSVgsR0FBRyxLQUFLLFFBQVosRUFBc0I7QUFDekIsWUFBSUosS0FBSyxDQUFDSSxHQUFELENBQUwsSUFBY1csT0FBTyxLQUFLLFFBQTlCLEVBQXdDO0FBQ3BDLGdCQUFNZCxlQUFlLENBQUM7QUFDbEJHLFlBQUFBLEdBQUcsRUFBSEEsR0FEa0I7QUFFbEJDLFlBQUFBLFFBQVEsRUFBRSxVQUZRO0FBR2xCQyxZQUFBQSxNQUFNLEVBQUVTO0FBSFUsV0FBRCxDQUFyQjtBQUtIO0FBQ0osT0FSTSxNQVFBLElBQUlYLEdBQUcsS0FBSyxTQUFSLElBQXFCQSxHQUFHLEtBQUssUUFBN0IsSUFBeUNBLEdBQUcsS0FBSyxTQUFqRCxJQUE4REEsR0FBRyxLQUFLLFVBQXRFLElBQW9GQSxHQUFHLEtBQUssVUFBaEcsRUFBNEc7QUFDL0csWUFBSUosS0FBSyxDQUFDSSxHQUFELENBQUwsSUFBYyxJQUFkLElBQXNCVyxPQUFPLEtBQUssU0FBdEMsRUFBaUQ7QUFDN0MsZ0JBQU1kLGVBQWUsQ0FBQztBQUNsQkcsWUFBQUEsR0FBRyxFQUFIQSxHQURrQjtBQUVsQkMsWUFBQUEsUUFBUSxFQUFFLFdBRlE7QUFHbEJDLFlBQUFBLE1BQU0sRUFBRVM7QUFIVSxXQUFELENBQXJCO0FBS0g7QUFDSixPQVJNLE1BUUE7QUFDSDtBQUNBO0FBQ0EsWUFBTUosQ0FBQyxHQUFHUCxHQUFWO0FBQ0g7QUFDSixLQS9CRCxFQW5DdUMsQ0FtRXZDO0FBQ0E7O0FBQ0EsUUFBTVksU0FBUyxHQUFHckQsTUFBTSxXQUFOLENBQWVzRCxNQUFmLENBQXNCLEtBQXRCLENBQWxCOztBQUNBLFFBQUlqQixLQUFLLENBQUM1QixRQUFOLElBQWtCLENBQUM0QyxTQUFTLENBQUNFLE9BQWpDLEVBQTBDO0FBQ3RDRixNQUFBQSxTQUFTLENBQUNFLE9BQVYsR0FBb0IsSUFBcEI7QUFDQUMsTUFBQUEsT0FBTyxDQUFDQyxJQUFSLENBQWEsc0tBQWI7QUFDSDtBQUNKOztBQUNELE1BQU1DLENBQUMsR0FBR3JCLEtBQUssQ0FBQzVCLFFBQU4sS0FBbUIsS0FBN0I7QUFDQSxNQUFNQyxNQUFNLEdBQUcsQ0FBQyxHQUFHTixRQUFKLEVBQWN1RCxTQUFkLEVBQWY7O0FBQ0EsOEJBQXVCM0QsTUFBTSxXQUFOLENBQWU0RCxPQUFmLENBQXVCLFlBQUk7QUFDOUMsdUJBQW1DLENBQUMsR0FBR3pELE9BQUosRUFBYTBELFdBQWIsQ0FBeUJuRCxNQUF6QixFQUFpQzJCLEtBQUssQ0FBQzFCLElBQXZDLEVBQTZDLElBQTdDLENBQW5DO0FBQUE7QUFBQSxRQUFPbUQsWUFBUDtBQUFBLFFBQXFCQyxVQUFyQjs7QUFDQSxXQUFPO0FBQ0hwRCxNQUFBQSxJQUFJLEVBQUVtRCxZQURIO0FBRUhsRCxNQUFBQSxFQUFFLEVBQUV5QixLQUFLLENBQUN6QixFQUFOLEdBQVcsQ0FBQyxHQUFHVCxPQUFKLEVBQWEwRCxXQUFiLENBQXlCbkQsTUFBekIsRUFBaUMyQixLQUFLLENBQUN6QixFQUF2QyxDQUFYLEdBQXdEbUQsVUFBVSxJQUFJRDtBQUZ2RSxLQUFQO0FBSUgsR0FOc0IsRUFNcEIsQ0FDQ3BELE1BREQsRUFFQzJCLEtBQUssQ0FBQzFCLElBRlAsRUFHQzBCLEtBQUssQ0FBQ3pCLEVBSFAsQ0FOb0IsQ0FBdkI7QUFBQSxNQUFRRCxJQUFSLHlCQUFRQSxJQUFSO0FBQUEsTUFBZUMsRUFBZix5QkFBZUEsRUFBZjs7QUFXQSxNQUFNb0QsUUFBTixHQUEwRDNCLEtBQTFELENBQU0yQixRQUFOO0FBQUEsTUFBaUJsQyxPQUFqQixHQUEwRE8sS0FBMUQsQ0FBaUJQLE9BQWpCO0FBQUEsTUFBMkJDLE9BQTNCLEdBQTBETSxLQUExRCxDQUEyQk4sT0FBM0I7QUFBQSxNQUFxQ0MsTUFBckMsR0FBMERLLEtBQTFELENBQXFDTCxNQUFyQztBQUFBLE1BQThDZixNQUE5QyxHQUEwRG9CLEtBQTFELENBQThDcEIsTUFBOUMsQ0F6RmlCLENBMEZqQjs7QUFDQSxNQUFJLE9BQU8rQyxRQUFQLEtBQW9CLFFBQXhCLEVBQWtDO0FBQzlCQSxJQUFBQSxRQUFRLEdBQUcsYUFBY2hFLE1BQU0sV0FBTixDQUFlaUUsYUFBZixDQUE2QixHQUE3QixFQUFrQyxJQUFsQyxFQUF3Q0QsUUFBeEMsQ0FBekI7QUFDSCxHQTdGZ0IsQ0E4RmpCOzs7QUFDQSxNQUFJRSxLQUFKOztBQUNBLFlBQTRDO0FBQ3hDLFFBQUk7QUFDQUEsTUFBQUEsS0FBSyxHQUFHbEUsTUFBTSxXQUFOLENBQWVtRSxRQUFmLENBQXdCQyxJQUF4QixDQUE2QkosUUFBN0IsQ0FBUjtBQUNILEtBRkQsQ0FFRSxPQUFPakQsR0FBUCxFQUFZO0FBQ1YsWUFBTSxJQUFJeUIsS0FBSixDQUFVLGtFQUE4REgsS0FBSyxDQUFDMUIsSUFBcEUsa0dBQXdLLFFBQWdDLG1FQUFoQyxHQUFzRyxDQUE5USxDQUFWLENBQU47QUFDSDtBQUNKLEdBTkQsTUFNTyxFQUVOOztBQUNELE1BQU0wRCxRQUFRLEdBQUdILEtBQUssSUFBSSxPQUFPQSxLQUFQLEtBQWlCLFFBQTFCLElBQXNDQSxLQUFLLENBQUNJLEdBQTdEOztBQUNBLDBCQUF3QyxDQUFDLEdBQUdqRSxnQkFBSixFQUFzQmtFLGVBQXRCLENBQXNDO0FBQzFFQyxJQUFBQSxVQUFVLEVBQUU7QUFEOEQsR0FBdEMsQ0FBeEM7QUFBQTtBQUFBLE1BQU9DLGtCQUFQO0FBQUEsTUFBMkJDLFNBQTNCOztBQUdBLE1BQU1DLE1BQU0sR0FBRzNFLE1BQU0sV0FBTixDQUFlNEUsV0FBZixDQUEyQixVQUFDQyxFQUFELEVBQU07QUFDNUNKLElBQUFBLGtCQUFrQixDQUFDSSxFQUFELENBQWxCOztBQUNBLFFBQUlSLFFBQUosRUFBYztBQUNWLFVBQUksT0FBT0EsUUFBUCxLQUFvQixVQUF4QixFQUFvQ0EsUUFBUSxDQUFDUSxFQUFELENBQVIsQ0FBcEMsS0FDSyxJQUFJLE9BQU9SLFFBQVAsS0FBb0IsUUFBeEIsRUFBa0M7QUFDbkNBLFFBQUFBLFFBQVEsQ0FBQ2QsT0FBVCxHQUFtQnNCLEVBQW5CO0FBQ0g7QUFDSjtBQUNKLEdBUmMsRUFRWixDQUNDUixRQURELEVBRUNJLGtCQUZELENBUlksQ0FBZjs7QUFZQXpFLEVBQUFBLE1BQU0sV0FBTixDQUFlOEUsU0FBZixDQUF5QixZQUFJO0FBQ3pCLFFBQU1DLGNBQWMsR0FBR0wsU0FBUyxJQUFJaEIsQ0FBYixJQUFrQixDQUFDLEdBQUd2RCxPQUFKLEVBQWFXLFVBQWIsQ0FBd0JILElBQXhCLENBQXpDO0FBQ0EsUUFBTUssU0FBUyxHQUFHLE9BQU9DLE1BQVAsS0FBa0IsV0FBbEIsR0FBZ0NBLE1BQWhDLEdBQXlDUCxNQUFNLElBQUlBLE1BQU0sQ0FBQ08sTUFBNUU7QUFDQSxRQUFNK0QsWUFBWSxHQUFHeEUsVUFBVSxDQUFDRyxJQUFJLEdBQUcsR0FBUCxHQUFhQyxFQUFiLElBQW1CSSxTQUFTLEdBQUcsTUFBTUEsU0FBVCxHQUFxQixFQUFqRCxDQUFELENBQS9COztBQUNBLFFBQUkrRCxjQUFjLElBQUksQ0FBQ0MsWUFBdkIsRUFBcUM7QUFDakN2RSxNQUFBQSxRQUFRLENBQUNDLE1BQUQsRUFBU0MsSUFBVCxFQUFlQyxFQUFmLEVBQW1CO0FBQ3ZCSyxRQUFBQSxNQUFNLEVBQUVEO0FBRGUsT0FBbkIsQ0FBUjtBQUdIO0FBQ0osR0FURCxFQVNHLENBQ0NKLEVBREQsRUFFQ0QsSUFGRCxFQUdDK0QsU0FIRCxFQUlDekQsTUFKRCxFQUtDeUMsQ0FMRCxFQU1DaEQsTUFORCxDQVRIOztBQWlCQSxNQUFNdUUsVUFBVSxHQUFHO0FBQ2ZYLElBQUFBLEdBQUcsRUFBRUssTUFEVTtBQUVmTyxJQUFBQSxPQUFPLEVBQUUsaUJBQUNyRCxDQUFELEVBQUs7QUFDVixVQUFJcUMsS0FBSyxDQUFDN0IsS0FBTixJQUFlLE9BQU82QixLQUFLLENBQUM3QixLQUFOLENBQVk2QyxPQUFuQixLQUErQixVQUFsRCxFQUE4RDtBQUMxRGhCLFFBQUFBLEtBQUssQ0FBQzdCLEtBQU4sQ0FBWTZDLE9BQVosQ0FBb0JyRCxDQUFwQjtBQUNIOztBQUNELFVBQUksQ0FBQ0EsQ0FBQyxDQUFDc0QsZ0JBQVAsRUFBeUI7QUFDckJ2RCxRQUFBQSxXQUFXLENBQUNDLENBQUQsRUFBSW5CLE1BQUosRUFBWUMsSUFBWixFQUFrQkMsRUFBbEIsRUFBc0JrQixPQUF0QixFQUErQkMsT0FBL0IsRUFBd0NDLE1BQXhDLEVBQWdEZixNQUFoRCxDQUFYO0FBQ0g7QUFDSjtBQVRjLEdBQW5COztBQVdBZ0UsRUFBQUEsVUFBVSxDQUFDRyxZQUFYLEdBQTBCLFVBQUN2RCxDQUFELEVBQUs7QUFDM0IsUUFBSSxDQUFDLENBQUMsR0FBRzFCLE9BQUosRUFBYVcsVUFBYixDQUF3QkgsSUFBeEIsQ0FBTCxFQUFvQzs7QUFDcEMsUUFBSXVELEtBQUssQ0FBQzdCLEtBQU4sSUFBZSxPQUFPNkIsS0FBSyxDQUFDN0IsS0FBTixDQUFZK0MsWUFBbkIsS0FBb0MsVUFBdkQsRUFBbUU7QUFDL0RsQixNQUFBQSxLQUFLLENBQUM3QixLQUFOLENBQVkrQyxZQUFaLENBQXlCdkQsQ0FBekI7QUFDSDs7QUFDRHBCLElBQUFBLFFBQVEsQ0FBQ0MsTUFBRCxFQUFTQyxJQUFULEVBQWVDLEVBQWYsRUFBbUI7QUFDdkJ5RSxNQUFBQSxRQUFRLEVBQUU7QUFEYSxLQUFuQixDQUFSO0FBR0gsR0FSRCxDQXJKaUIsQ0E4SmpCO0FBQ0E7OztBQUNBLE1BQUloRCxLQUFLLENBQUNhLFFBQU4sSUFBa0JnQixLQUFLLENBQUNvQixJQUFOLEtBQWUsR0FBZixJQUFzQixFQUFFLFVBQVVwQixLQUFLLENBQUM3QixLQUFsQixDQUE1QyxFQUFzRTtBQUNsRSxRQUFNckIsU0FBUyxHQUFHLE9BQU9DLE1BQVAsS0FBa0IsV0FBbEIsR0FBZ0NBLE1BQWhDLEdBQXlDUCxNQUFNLElBQUlBLE1BQU0sQ0FBQ08sTUFBNUUsQ0FEa0UsQ0FFbEU7QUFDQTs7QUFDQSxRQUFNc0UsWUFBWSxHQUFHN0UsTUFBTSxJQUFJQSxNQUFNLENBQUM4RSxjQUFqQixJQUFtQyxDQUFDLEdBQUdyRixPQUFKLEVBQWFzRixlQUFiLENBQTZCN0UsRUFBN0IsRUFBaUNJLFNBQWpDLEVBQTRDTixNQUFNLElBQUlBLE1BQU0sQ0FBQ2dGLE9BQTdELEVBQXNFaEYsTUFBTSxJQUFJQSxNQUFNLENBQUNpRixhQUF2RixDQUF4RDtBQUNBVixJQUFBQSxVQUFVLENBQUN0RSxJQUFYLEdBQWtCNEUsWUFBWSxJQUFJLENBQUMsR0FBR3BGLE9BQUosRUFBYXlGLFdBQWIsQ0FBeUIsQ0FBQyxHQUFHekYsT0FBSixFQUFhMEYsU0FBYixDQUF1QmpGLEVBQXZCLEVBQTJCSSxTQUEzQixFQUFzQ04sTUFBTSxJQUFJQSxNQUFNLENBQUNvRixhQUF2RCxDQUF6QixDQUFsQztBQUNIOztBQUNELFNBQU8sYUFBYzlGLE1BQU0sV0FBTixDQUFlK0YsWUFBZixDQUE0QjdCLEtBQTVCLEVBQW1DZSxVQUFuQyxDQUFyQjtBQUNIOztHQXhLUTdDOztLQUFBQTtBQXlLVCxJQUFJNEQsUUFBUSxHQUFHNUQsSUFBZjtBQUNBdEMsa0JBQUEsR0FBa0JrRyxRQUFsQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9saW5rLmpzP2U0ZjkiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7XG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xudmFyIF9yb3V0ZXIgPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9yb3V0ZXIvcm91dGVyXCIpO1xudmFyIF9yb3V0ZXIxID0gcmVxdWlyZShcIi4vcm91dGVyXCIpO1xudmFyIF91c2VJbnRlcnNlY3Rpb24gPSByZXF1aXJlKFwiLi91c2UtaW50ZXJzZWN0aW9uXCIpO1xuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuY29uc3QgcHJlZmV0Y2hlZCA9IHtcbn07XG5mdW5jdGlvbiBwcmVmZXRjaChyb3V0ZXIsIGhyZWYsIGFzLCBvcHRpb25zKSB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8ICFyb3V0ZXIpIHJldHVybjtcbiAgICBpZiAoISgwLCBfcm91dGVyKS5pc0xvY2FsVVJMKGhyZWYpKSByZXR1cm47XG4gICAgLy8gUHJlZmV0Y2ggdGhlIEpTT04gcGFnZSBpZiBhc2tlZCAob25seSBpbiB0aGUgY2xpZW50KVxuICAgIC8vIFdlIG5lZWQgdG8gaGFuZGxlIGEgcHJlZmV0Y2ggZXJyb3IgaGVyZSBzaW5jZSB3ZSBtYXkgYmVcbiAgICAvLyBsb2FkaW5nIHdpdGggcHJpb3JpdHkgd2hpY2ggY2FuIHJlamVjdCBidXQgd2UgZG9uJ3RcbiAgICAvLyB3YW50IHRvIGZvcmNlIG5hdmlnYXRpb24gc2luY2UgdGhpcyBpcyBvbmx5IGEgcHJlZmV0Y2hcbiAgICByb3V0ZXIucHJlZmV0Y2goaHJlZiwgYXMsIG9wdGlvbnMpLmNhdGNoKChlcnIpPT57XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICAvLyByZXRocm93IHRvIHNob3cgaW52YWxpZCBVUkwgZXJyb3JzXG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBjdXJMb2NhbGUgPSBvcHRpb25zICYmIHR5cGVvZiBvcHRpb25zLmxvY2FsZSAhPT0gJ3VuZGVmaW5lZCcgPyBvcHRpb25zLmxvY2FsZSA6IHJvdXRlciAmJiByb3V0ZXIubG9jYWxlO1xuICAgIC8vIEpvaW4gb24gYW4gaW52YWxpZCBVUkkgY2hhcmFjdGVyXG4gICAgcHJlZmV0Y2hlZFtocmVmICsgJyUnICsgYXMgKyAoY3VyTG9jYWxlID8gJyUnICsgY3VyTG9jYWxlIDogJycpXSA9IHRydWU7XG59XG5mdW5jdGlvbiBpc01vZGlmaWVkRXZlbnQoZXZlbnQpIHtcbiAgICBjb25zdCB7IHRhcmdldCAgfSA9IGV2ZW50LmN1cnJlbnRUYXJnZXQ7XG4gICAgcmV0dXJuIHRhcmdldCAmJiB0YXJnZXQgIT09ICdfc2VsZicgfHwgZXZlbnQubWV0YUtleSB8fCBldmVudC5jdHJsS2V5IHx8IGV2ZW50LnNoaWZ0S2V5IHx8IGV2ZW50LmFsdEtleSB8fCBldmVudC5uYXRpdmVFdmVudCAmJiBldmVudC5uYXRpdmVFdmVudC53aGljaCA9PT0gMjtcbn1cbmZ1bmN0aW9uIGxpbmtDbGlja2VkKGUsIHJvdXRlciwgaHJlZiwgYXMsIHJlcGxhY2UsIHNoYWxsb3csIHNjcm9sbCwgbG9jYWxlKSB7XG4gICAgY29uc3QgeyBub2RlTmFtZSAgfSA9IGUuY3VycmVudFRhcmdldDtcbiAgICBpZiAobm9kZU5hbWUgPT09ICdBJyAmJiAoaXNNb2RpZmllZEV2ZW50KGUpIHx8ICEoMCwgX3JvdXRlcikuaXNMb2NhbFVSTChocmVmKSkpIHtcbiAgICAgICAgLy8gaWdub3JlIGNsaWNrIGZvciBicm93c2Vy4oCZcyBkZWZhdWx0IGJlaGF2aW9yXG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIC8vICBhdm9pZCBzY3JvbGwgZm9yIHVybHMgd2l0aCBhbmNob3IgcmVmc1xuICAgIGlmIChzY3JvbGwgPT0gbnVsbCAmJiBhcy5pbmRleE9mKCcjJykgPj0gMCkge1xuICAgICAgICBzY3JvbGwgPSBmYWxzZTtcbiAgICB9XG4gICAgLy8gcmVwbGFjZSBzdGF0ZSBpbnN0ZWFkIG9mIHB1c2ggaWYgcHJvcCBpcyBwcmVzZW50XG4gICAgcm91dGVyW3JlcGxhY2UgPyAncmVwbGFjZScgOiAncHVzaCddKGhyZWYsIGFzLCB7XG4gICAgICAgIHNoYWxsb3csXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgc2Nyb2xsXG4gICAgfSk7XG59XG5mdW5jdGlvbiBMaW5rKHByb3BzKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgZnVuY3Rpb24gY3JlYXRlUHJvcEVycm9yKGFyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgRXJyb3IoYEZhaWxlZCBwcm9wIHR5cGU6IFRoZSBwcm9wIFxcYCR7YXJncy5rZXl9XFxgIGV4cGVjdHMgYSAke2FyZ3MuZXhwZWN0ZWR9IGluIFxcYDxMaW5rPlxcYCwgYnV0IGdvdCBcXGAke2FyZ3MuYWN0dWFsfVxcYCBpbnN0ZWFkLmAgKyAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgPyBcIlxcbk9wZW4geW91ciBicm93c2VyJ3MgY29uc29sZSB0byB2aWV3IHRoZSBDb21wb25lbnQgc3RhY2sgdHJhY2UuXCIgOiAnJykpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFR5cGVTY3JpcHQgdHJpY2sgZm9yIHR5cGUtZ3VhcmRpbmc6XG4gICAgICAgIGNvbnN0IHJlcXVpcmVkUHJvcHNHdWFyZCA9IHtcbiAgICAgICAgICAgIGhyZWY6IHRydWVcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgcmVxdWlyZWRQcm9wcyA9IE9iamVjdC5rZXlzKHJlcXVpcmVkUHJvcHNHdWFyZCk7XG4gICAgICAgIHJlcXVpcmVkUHJvcHMuZm9yRWFjaCgoa2V5KT0+e1xuICAgICAgICAgICAgaWYgKGtleSA9PT0gJ2hyZWYnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHByb3BzW2tleV0gPT0gbnVsbCB8fCB0eXBlb2YgcHJvcHNba2V5XSAhPT0gJ3N0cmluZycgJiYgdHlwZW9mIHByb3BzW2tleV0gIT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGNyZWF0ZVByb3BFcnJvcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZDogJ2BzdHJpbmdgIG9yIGBvYmplY3RgJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbDogcHJvcHNba2V5XSA9PT0gbnVsbCA/ICdudWxsJyA6IHR5cGVvZiBwcm9wc1trZXldXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gVHlwZVNjcmlwdCB0cmljayBmb3IgdHlwZS1ndWFyZGluZzpcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgICAgICAgICAgICAgY29uc3QgXyA9IGtleTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIC8vIFR5cGVTY3JpcHQgdHJpY2sgZm9yIHR5cGUtZ3VhcmRpbmc6XG4gICAgICAgIGNvbnN0IG9wdGlvbmFsUHJvcHNHdWFyZCA9IHtcbiAgICAgICAgICAgIGFzOiB0cnVlLFxuICAgICAgICAgICAgcmVwbGFjZTogdHJ1ZSxcbiAgICAgICAgICAgIHNjcm9sbDogdHJ1ZSxcbiAgICAgICAgICAgIHNoYWxsb3c6IHRydWUsXG4gICAgICAgICAgICBwYXNzSHJlZjogdHJ1ZSxcbiAgICAgICAgICAgIHByZWZldGNoOiB0cnVlLFxuICAgICAgICAgICAgbG9jYWxlOiB0cnVlXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IG9wdGlvbmFsUHJvcHMgPSBPYmplY3Qua2V5cyhvcHRpb25hbFByb3BzR3VhcmQpO1xuICAgICAgICBvcHRpb25hbFByb3BzLmZvckVhY2goKGtleSk9PntcbiAgICAgICAgICAgIGNvbnN0IHZhbFR5cGUgPSB0eXBlb2YgcHJvcHNba2V5XTtcbiAgICAgICAgICAgIGlmIChrZXkgPT09ICdhcycpIHtcbiAgICAgICAgICAgICAgICBpZiAocHJvcHNba2V5XSAmJiB2YWxUeXBlICE9PSAnc3RyaW5nJyAmJiB2YWxUeXBlICE9PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBjcmVhdGVQcm9wRXJyb3Ioe1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQ6ICdgc3RyaW5nYCBvciBgb2JqZWN0YCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWw6IHZhbFR5cGVcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdsb2NhbGUnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHByb3BzW2tleV0gJiYgdmFsVHlwZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgY3JlYXRlUHJvcEVycm9yKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkOiAnYHN0cmluZ2AnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFsOiB2YWxUeXBlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAncmVwbGFjZScgfHwga2V5ID09PSAnc2Nyb2xsJyB8fCBrZXkgPT09ICdzaGFsbG93JyB8fCBrZXkgPT09ICdwYXNzSHJlZicgfHwga2V5ID09PSAncHJlZmV0Y2gnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHByb3BzW2tleV0gIT0gbnVsbCAmJiB2YWxUeXBlICE9PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgY3JlYXRlUHJvcEVycm9yKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkOiAnYGJvb2xlYW5gJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbDogdmFsVHlwZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIFR5cGVTY3JpcHQgdHJpY2sgZm9yIHR5cGUtZ3VhcmRpbmc6XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICAgICAgICAgICAgIGNvbnN0IF8gPSBrZXk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBUaGlzIGhvb2sgaXMgaW4gYSBjb25kaXRpb25hbCBidXQgdGhhdCBpcyBvayBiZWNhdXNlIGBwcm9jZXNzLmVudi5OT0RFX0VOVmAgbmV2ZXIgY2hhbmdlc1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgICAgICAgY29uc3QgaGFzV2FybmVkID0gX3JlYWN0LmRlZmF1bHQudXNlUmVmKGZhbHNlKTtcbiAgICAgICAgaWYgKHByb3BzLnByZWZldGNoICYmICFoYXNXYXJuZWQuY3VycmVudCkge1xuICAgICAgICAgICAgaGFzV2FybmVkLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdOZXh0LmpzIGF1dG8tcHJlZmV0Y2hlcyBhdXRvbWF0aWNhbGx5IGJhc2VkIG9uIHZpZXdwb3J0LiBUaGUgcHJlZmV0Y2ggYXR0cmlidXRlIGlzIG5vIGxvbmdlciBuZWVkZWQuIE1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3ByZWZldGNoLXRydWUtZGVwcmVjYXRlZCcpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHAgPSBwcm9wcy5wcmVmZXRjaCAhPT0gZmFsc2U7XG4gICAgY29uc3Qgcm91dGVyID0gKDAsIF9yb3V0ZXIxKS51c2VSb3V0ZXIoKTtcbiAgICBjb25zdCB7IGhyZWYgLCBhcyAgfSA9IF9yZWFjdC5kZWZhdWx0LnVzZU1lbW8oKCk9PntcbiAgICAgICAgY29uc3QgW3Jlc29sdmVkSHJlZiwgcmVzb2x2ZWRBc10gPSAoMCwgX3JvdXRlcikucmVzb2x2ZUhyZWYocm91dGVyLCBwcm9wcy5ocmVmLCB0cnVlKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGhyZWY6IHJlc29sdmVkSHJlZixcbiAgICAgICAgICAgIGFzOiBwcm9wcy5hcyA/ICgwLCBfcm91dGVyKS5yZXNvbHZlSHJlZihyb3V0ZXIsIHByb3BzLmFzKSA6IHJlc29sdmVkQXMgfHwgcmVzb2x2ZWRIcmVmXG4gICAgICAgIH07XG4gICAgfSwgW1xuICAgICAgICByb3V0ZXIsXG4gICAgICAgIHByb3BzLmhyZWYsXG4gICAgICAgIHByb3BzLmFzXG4gICAgXSk7XG4gICAgbGV0IHsgY2hpbGRyZW4gLCByZXBsYWNlICwgc2hhbGxvdyAsIHNjcm9sbCAsIGxvY2FsZSAgfSA9IHByb3BzO1xuICAgIC8vIERlcHJlY2F0ZWQuIFdhcm5pbmcgc2hvd24gYnkgcHJvcFR5cGUgY2hlY2suIElmIHRoZSBjaGlsZHJlbiBwcm92aWRlZCBpcyBhIHN0cmluZyAoPExpbms+ZXhhbXBsZTwvTGluaz4pIHdlIHdyYXAgaXQgaW4gYW4gPGE+IHRhZ1xuICAgIGlmICh0eXBlb2YgY2hpbGRyZW4gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNoaWxkcmVuID0gLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiYVwiLCBudWxsLCBjaGlsZHJlbik7XG4gICAgfVxuICAgIC8vIFRoaXMgd2lsbCByZXR1cm4gdGhlIGZpcnN0IGNoaWxkLCBpZiBtdWx0aXBsZSBhcmUgcHJvdmlkZWQgaXQgd2lsbCB0aHJvdyBhbiBlcnJvclxuICAgIGxldCBjaGlsZDtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNoaWxkID0gX3JlYWN0LmRlZmF1bHQuQ2hpbGRyZW4ub25seShjaGlsZHJlbik7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBNdWx0aXBsZSBjaGlsZHJlbiB3ZXJlIHBhc3NlZCB0byA8TGluaz4gd2l0aCBcXGBocmVmXFxgIG9mIFxcYCR7cHJvcHMuaHJlZn1cXGAgYnV0IG9ubHkgb25lIGNoaWxkIGlzIHN1cHBvcnRlZCBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9saW5rLW11bHRpcGxlLWNoaWxkcmVuYCArICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyA/IFwiIFxcbk9wZW4geW91ciBicm93c2VyJ3MgY29uc29sZSB0byB2aWV3IHRoZSBDb21wb25lbnQgc3RhY2sgdHJhY2UuXCIgOiAnJykpO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY2hpbGQgPSBfcmVhY3QuZGVmYXVsdC5DaGlsZHJlbi5vbmx5KGNoaWxkcmVuKTtcbiAgICB9XG4gICAgY29uc3QgY2hpbGRSZWYgPSBjaGlsZCAmJiB0eXBlb2YgY2hpbGQgPT09ICdvYmplY3QnICYmIGNoaWxkLnJlZjtcbiAgICBjb25zdCBbc2V0SW50ZXJzZWN0aW9uUmVmLCBpc1Zpc2libGVdID0gKDAsIF91c2VJbnRlcnNlY3Rpb24pLnVzZUludGVyc2VjdGlvbih7XG4gICAgICAgIHJvb3RNYXJnaW46ICcyMDBweCdcbiAgICB9KTtcbiAgICBjb25zdCBzZXRSZWYgPSBfcmVhY3QuZGVmYXVsdC51c2VDYWxsYmFjaygoZWwpPT57XG4gICAgICAgIHNldEludGVyc2VjdGlvblJlZihlbCk7XG4gICAgICAgIGlmIChjaGlsZFJlZikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBjaGlsZFJlZiA9PT0gJ2Z1bmN0aW9uJykgY2hpbGRSZWYoZWwpO1xuICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIGNoaWxkUmVmID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgIGNoaWxkUmVmLmN1cnJlbnQgPSBlbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgY2hpbGRSZWYsXG4gICAgICAgIHNldEludGVyc2VjdGlvblJlZlxuICAgIF0pO1xuICAgIF9yZWFjdC5kZWZhdWx0LnVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBjb25zdCBzaG91bGRQcmVmZXRjaCA9IGlzVmlzaWJsZSAmJiBwICYmICgwLCBfcm91dGVyKS5pc0xvY2FsVVJMKGhyZWYpO1xuICAgICAgICBjb25zdCBjdXJMb2NhbGUgPSB0eXBlb2YgbG9jYWxlICE9PSAndW5kZWZpbmVkJyA/IGxvY2FsZSA6IHJvdXRlciAmJiByb3V0ZXIubG9jYWxlO1xuICAgICAgICBjb25zdCBpc1ByZWZldGNoZWQgPSBwcmVmZXRjaGVkW2hyZWYgKyAnJScgKyBhcyArIChjdXJMb2NhbGUgPyAnJScgKyBjdXJMb2NhbGUgOiAnJyldO1xuICAgICAgICBpZiAoc2hvdWxkUHJlZmV0Y2ggJiYgIWlzUHJlZmV0Y2hlZCkge1xuICAgICAgICAgICAgcHJlZmV0Y2gocm91dGVyLCBocmVmLCBhcywge1xuICAgICAgICAgICAgICAgIGxvY2FsZTogY3VyTG9jYWxlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgYXMsXG4gICAgICAgIGhyZWYsXG4gICAgICAgIGlzVmlzaWJsZSxcbiAgICAgICAgbG9jYWxlLFxuICAgICAgICBwLFxuICAgICAgICByb3V0ZXJcbiAgICBdKTtcbiAgICBjb25zdCBjaGlsZFByb3BzID0ge1xuICAgICAgICByZWY6IHNldFJlZixcbiAgICAgICAgb25DbGljazogKGUpPT57XG4gICAgICAgICAgICBpZiAoY2hpbGQucHJvcHMgJiYgdHlwZW9mIGNoaWxkLnByb3BzLm9uQ2xpY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICBjaGlsZC5wcm9wcy5vbkNsaWNrKGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFlLmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICAgICAgICBsaW5rQ2xpY2tlZChlLCByb3V0ZXIsIGhyZWYsIGFzLCByZXBsYWNlLCBzaGFsbG93LCBzY3JvbGwsIGxvY2FsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGNoaWxkUHJvcHMub25Nb3VzZUVudGVyID0gKGUpPT57XG4gICAgICAgIGlmICghKDAsIF9yb3V0ZXIpLmlzTG9jYWxVUkwoaHJlZikpIHJldHVybjtcbiAgICAgICAgaWYgKGNoaWxkLnByb3BzICYmIHR5cGVvZiBjaGlsZC5wcm9wcy5vbk1vdXNlRW50ZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGNoaWxkLnByb3BzLm9uTW91c2VFbnRlcihlKTtcbiAgICAgICAgfVxuICAgICAgICBwcmVmZXRjaChyb3V0ZXIsIGhyZWYsIGFzLCB7XG4gICAgICAgICAgICBwcmlvcml0eTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIC8vIElmIGNoaWxkIGlzIGFuIDxhPiB0YWcgYW5kIGRvZXNuJ3QgaGF2ZSBhIGhyZWYgYXR0cmlidXRlLCBvciBpZiB0aGUgJ3Bhc3NIcmVmJyBwcm9wZXJ0eSBpc1xuICAgIC8vIGRlZmluZWQsIHdlIHNwZWNpZnkgdGhlIGN1cnJlbnQgJ2hyZWYnLCBzbyB0aGF0IHJlcGV0aXRpb24gaXMgbm90IG5lZWRlZCBieSB0aGUgdXNlclxuICAgIGlmIChwcm9wcy5wYXNzSHJlZiB8fCBjaGlsZC50eXBlID09PSAnYScgJiYgISgnaHJlZicgaW4gY2hpbGQucHJvcHMpKSB7XG4gICAgICAgIGNvbnN0IGN1ckxvY2FsZSA9IHR5cGVvZiBsb2NhbGUgIT09ICd1bmRlZmluZWQnID8gbG9jYWxlIDogcm91dGVyICYmIHJvdXRlci5sb2NhbGU7XG4gICAgICAgIC8vIHdlIG9ubHkgcmVuZGVyIGRvbWFpbiBsb2NhbGVzIGlmIHdlIGFyZSBjdXJyZW50bHkgb24gYSBkb21haW4gbG9jYWxlXG4gICAgICAgIC8vIHNvIHRoYXQgbG9jYWxlIGxpbmtzIGFyZSBzdGlsbCB2aXNpdGFibGUgaW4gZGV2ZWxvcG1lbnQvcHJldmlldyBlbnZzXG4gICAgICAgIGNvbnN0IGxvY2FsZURvbWFpbiA9IHJvdXRlciAmJiByb3V0ZXIuaXNMb2NhbGVEb21haW4gJiYgKDAsIF9yb3V0ZXIpLmdldERvbWFpbkxvY2FsZShhcywgY3VyTG9jYWxlLCByb3V0ZXIgJiYgcm91dGVyLmxvY2FsZXMsIHJvdXRlciAmJiByb3V0ZXIuZG9tYWluTG9jYWxlcyk7XG4gICAgICAgIGNoaWxkUHJvcHMuaHJlZiA9IGxvY2FsZURvbWFpbiB8fCAoMCwgX3JvdXRlcikuYWRkQmFzZVBhdGgoKDAsIF9yb3V0ZXIpLmFkZExvY2FsZShhcywgY3VyTG9jYWxlLCByb3V0ZXIgJiYgcm91dGVyLmRlZmF1bHRMb2NhbGUpKTtcbiAgICB9XG4gICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY2xvbmVFbGVtZW50KGNoaWxkLCBjaGlsZFByb3BzKSk7XG59XG52YXIgX2RlZmF1bHQgPSBMaW5rO1xuZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWxpbmsuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcm91dGVyIiwiX3JvdXRlcjEiLCJfdXNlSW50ZXJzZWN0aW9uIiwib2JqIiwiX19lc01vZHVsZSIsInByZWZldGNoZWQiLCJwcmVmZXRjaCIsInJvdXRlciIsImhyZWYiLCJhcyIsIm9wdGlvbnMiLCJpc0xvY2FsVVJMIiwiZXJyIiwiY3VyTG9jYWxlIiwibG9jYWxlIiwiaXNNb2RpZmllZEV2ZW50IiwiZXZlbnQiLCJ0YXJnZXQiLCJjdXJyZW50VGFyZ2V0IiwibWV0YUtleSIsImN0cmxLZXkiLCJzaGlmdEtleSIsImFsdEtleSIsIm5hdGl2ZUV2ZW50Iiwid2hpY2giLCJsaW5rQ2xpY2tlZCIsImUiLCJyZXBsYWNlIiwic2hhbGxvdyIsInNjcm9sbCIsIm5vZGVOYW1lIiwicHJldmVudERlZmF1bHQiLCJpbmRleE9mIiwiTGluayIsInByb3BzIiwiY3JlYXRlUHJvcEVycm9yIiwiYXJncyIsIkVycm9yIiwia2V5IiwiZXhwZWN0ZWQiLCJhY3R1YWwiLCJyZXF1aXJlZFByb3BzR3VhcmQiLCJyZXF1aXJlZFByb3BzIiwia2V5cyIsImZvckVhY2giLCJfIiwib3B0aW9uYWxQcm9wc0d1YXJkIiwicGFzc0hyZWYiLCJvcHRpb25hbFByb3BzIiwidmFsVHlwZSIsImhhc1dhcm5lZCIsInVzZVJlZiIsImN1cnJlbnQiLCJjb25zb2xlIiwid2FybiIsInAiLCJ1c2VSb3V0ZXIiLCJ1c2VNZW1vIiwicmVzb2x2ZUhyZWYiLCJyZXNvbHZlZEhyZWYiLCJyZXNvbHZlZEFzIiwiY2hpbGRyZW4iLCJjcmVhdGVFbGVtZW50IiwiY2hpbGQiLCJDaGlsZHJlbiIsIm9ubHkiLCJjaGlsZFJlZiIsInJlZiIsInVzZUludGVyc2VjdGlvbiIsInJvb3RNYXJnaW4iLCJzZXRJbnRlcnNlY3Rpb25SZWYiLCJpc1Zpc2libGUiLCJzZXRSZWYiLCJ1c2VDYWxsYmFjayIsImVsIiwidXNlRWZmZWN0Iiwic2hvdWxkUHJlZmV0Y2giLCJpc1ByZWZldGNoZWQiLCJjaGlsZFByb3BzIiwib25DbGljayIsImRlZmF1bHRQcmV2ZW50ZWQiLCJvbk1vdXNlRW50ZXIiLCJwcmlvcml0eSIsInR5cGUiLCJsb2NhbGVEb21haW4iLCJpc0xvY2FsZURvbWFpbiIsImdldERvbWFpbkxvY2FsZSIsImxvY2FsZXMiLCJkb21haW5Mb2NhbGVzIiwiYWRkQmFzZVBhdGgiLCJhZGRMb2NhbGUiLCJkZWZhdWx0TG9jYWxlIiwiY2xvbmVFbGVtZW50IiwiX2RlZmF1bHQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/link.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/client/use-intersection.js": +/*!***********************************************************!*\ + !*** ./node_modules/next/dist/client/use-intersection.js ***! + \***********************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _slicedToArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nvar _s = $RefreshSig$();\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.useIntersection = useIntersection;\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nvar _requestIdleCallback = __webpack_require__(/*! ./request-idle-callback */ \"./node_modules/next/dist/client/request-idle-callback.js\");\n\nvar hasIntersectionObserver = typeof IntersectionObserver !== 'undefined';\n\nfunction useIntersection(_ref) {\n _s();\n\n var rootMargin = _ref.rootMargin,\n disabled = _ref.disabled;\n var isDisabled = disabled || !hasIntersectionObserver;\n var unobserve = (0, _react).useRef();\n\n var _useState = (0, _react).useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n visible = _useState2[0],\n setVisible = _useState2[1];\n\n var setRef = (0, _react).useCallback(function (el) {\n if (unobserve.current) {\n unobserve.current();\n unobserve.current = undefined;\n }\n\n if (isDisabled || visible) return;\n\n if (el && el.tagName) {\n unobserve.current = observe(el, function (isVisible) {\n return isVisible && setVisible(isVisible);\n }, {\n rootMargin: rootMargin\n });\n }\n }, [isDisabled, rootMargin, visible]);\n (0, _react).useEffect(function () {\n if (!hasIntersectionObserver) {\n if (!visible) {\n var idleCallback = (0, _requestIdleCallback).requestIdleCallback(function () {\n return setVisible(true);\n });\n return function () {\n return (0, _requestIdleCallback).cancelIdleCallback(idleCallback);\n };\n }\n }\n }, [visible]);\n return [setRef, visible];\n}\n\n_s(useIntersection, \"Z6jj7qx+KE6gD9CpC9WlQTha45o=\");\n\nfunction observe(element, callback, options) {\n var _createObserver = createObserver(options),\n id = _createObserver.id,\n observer = _createObserver.observer,\n elements = _createObserver.elements;\n\n elements.set(element, callback);\n observer.observe(element);\n return function unobserve() {\n elements[\"delete\"](element);\n observer.unobserve(element); // Destroy observer when there's nothing left to watch:\n\n if (elements.size === 0) {\n observer.disconnect();\n observers[\"delete\"](id);\n }\n };\n}\n\nvar observers = new Map();\n\nfunction createObserver(options) {\n var id = options.rootMargin || '';\n var instance = observers.get(id);\n\n if (instance) {\n return instance;\n }\n\n var elements = new Map();\n var observer = new IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n var callback = elements.get(entry.target);\n var isVisible = entry.isIntersecting || entry.intersectionRatio > 0;\n\n if (callback && isVisible) {\n callback(isVisible);\n }\n });\n }, options);\n observers.set(id, instance = {\n id: id,\n observer: observer,\n elements: elements\n });\n return instance;\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC91c2UtaW50ZXJzZWN0aW9uLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7Ozs7O0FBQ2JBLDhDQUE2QztBQUN6Q0csRUFBQUEsS0FBSyxFQUFFO0FBRGtDLENBQTdDO0FBR0FELHVCQUFBLEdBQTBCRSxlQUExQjs7QUFDQSxJQUFJQyxNQUFNLEdBQUdDLG1CQUFPLENBQUMsNENBQUQsQ0FBcEI7O0FBQ0EsSUFBSUMsb0JBQW9CLEdBQUdELG1CQUFPLENBQUMseUZBQUQsQ0FBbEM7O0FBQ0EsSUFBTUUsdUJBQXVCLEdBQUcsT0FBT0Msb0JBQVAsS0FBZ0MsV0FBaEU7O0FBQ0EsU0FBU0wsZUFBVCxPQUFxRDtBQUFBOztBQUFBLE1BQTFCTSxVQUEwQixRQUExQkEsVUFBMEI7QUFBQSxNQUFiQyxRQUFhLFFBQWJBLFFBQWE7QUFDakQsTUFBTUMsVUFBVSxHQUFHRCxRQUFRLElBQUksQ0FBQ0gsdUJBQWhDO0FBQ0EsTUFBTUssU0FBUyxHQUFHLENBQUMsR0FBR1IsTUFBSixFQUFZUyxNQUFaLEVBQWxCOztBQUNBLGtCQUE4QixDQUFDLEdBQUdULE1BQUosRUFBWVUsUUFBWixDQUFxQixLQUFyQixDQUE5QjtBQUFBO0FBQUEsTUFBT0MsT0FBUDtBQUFBLE1BQWdCQyxVQUFoQjs7QUFDQSxNQUFNQyxNQUFNLEdBQUcsQ0FBQyxHQUFHYixNQUFKLEVBQVljLFdBQVosQ0FBd0IsVUFBQ0MsRUFBRCxFQUFNO0FBQ3pDLFFBQUlQLFNBQVMsQ0FBQ1EsT0FBZCxFQUF1QjtBQUNuQlIsTUFBQUEsU0FBUyxDQUFDUSxPQUFWO0FBQ0FSLE1BQUFBLFNBQVMsQ0FBQ1EsT0FBVixHQUFvQkMsU0FBcEI7QUFDSDs7QUFDRCxRQUFJVixVQUFVLElBQUlJLE9BQWxCLEVBQTJCOztBQUMzQixRQUFJSSxFQUFFLElBQUlBLEVBQUUsQ0FBQ0csT0FBYixFQUFzQjtBQUNsQlYsTUFBQUEsU0FBUyxDQUFDUSxPQUFWLEdBQW9CRyxPQUFP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QUFBLEVBQUUsRUFBRkEsRUFEeUI7QUFFekJDLElBQUFBLFFBQVEsRUFBUkEsUUFGeUI7QUFHekJDLElBQUFBLFFBQVEsRUFBUkE7QUFIeUIsR0FBN0I7QUFLQSxTQUFPTSxRQUFQO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvdXNlLWludGVyc2VjdGlvbi5qcz9mZDk0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy51c2VJbnRlcnNlY3Rpb24gPSB1c2VJbnRlcnNlY3Rpb247XG52YXIgX3JlYWN0ID0gcmVxdWlyZShcInJlYWN0XCIpO1xudmFyIF9yZXF1ZXN0SWRsZUNhbGxiYWNrID0gcmVxdWlyZShcIi4vcmVxdWVzdC1pZGxlLWNhbGxiYWNrXCIpO1xuY29uc3QgaGFzSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPSB0eXBlb2YgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgIT09ICd1bmRlZmluZWQnO1xuZnVuY3Rpb24gdXNlSW50ZXJzZWN0aW9uKHsgcm9vdE1hcmdpbiAsIGRpc2FibGVkICB9KSB7XG4gICAgY29uc3QgaXNEaXNhYmxlZCA9IGRpc2FibGVkIHx8ICFoYXNJbnRlcnNlY3Rpb25PYnNlcnZlcjtcbiAgICBjb25zdCB1bm9ic2VydmUgPSAoMCwgX3JlYWN0KS51c2VSZWYoKTtcbiAgICBjb25zdCBbdmlzaWJsZSwgc2V0VmlzaWJsZV0gPSAoMCwgX3JlYWN0KS51c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3Qgc2V0UmVmID0gKDAsIF9yZWFjdCkudXNlQ2FsbGJhY2soKGVsKT0+e1xuICAgICAgICBpZiAodW5vYnNlcnZlLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIHVub2JzZXJ2ZS5jdXJyZW50KCk7XG4gICAgICAgICAgICB1bm9ic2VydmUuY3VycmVudCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNEaXNhYmxlZCB8fCB2aXNpYmxlKSByZXR1cm47XG4gICAgICAgIGlmIChlbCAmJiBlbC50YWdOYW1lKSB7XG4gICAgICAgICAgICB1bm9ic2VydmUuY3VycmVudCA9IG9ic2VydmUoZWwsIChpc1Zpc2libGUpPT5pc1Zpc2libGUgJiYgc2V0VmlzaWJsZShpc1Zpc2libGUpXG4gICAgICAgICAgICAsIHtcbiAgICAgICAgICAgICAgICByb290TWFyZ2luXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgaXNEaXNhYmxlZCxcbiAgICAgICAgcm9vdE1hcmdpbixcbiAgICAgICAgdmlzaWJsZVxuICAgIF0pO1xuICAgICgwLCBfcmVhY3QpLnVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBpZiAoIWhhc0ludGVyc2VjdGlvbk9ic2VydmVyKSB7XG4gICAgICAgICAgICBpZiAoIXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpZGxlQ2FsbGJhY2sgPSAoMCwgX3JlcXVlc3RJZGxlQ2FsbGJhY2spLnJlcXVlc3RJZGxlQ2FsbGJhY2soKCk9PnNldFZpc2libGUodHJ1ZSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHJldHVybiAoKT0+KDAsIF9yZXF1ZXN0SWRsZUNhbGxiYWNrKS5jYW5jZWxJZGxlQ2FsbGJhY2soaWRsZUNhbGxiYWNrKVxuICAgICAgICAgICAgICAgIDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgdmlzaWJsZVxuICAgIF0pO1xuICAgIHJldHVybiBbXG4gICAgICAgIHNldFJlZixcbiAgICAgICAgdmlzaWJsZVxuICAgIF07XG59XG5mdW5jdGlvbiBvYnNlcnZlKGVsZW1lbnQsIGNhbGxiYWNrLCBvcHRpb25zKSB7XG4gICAgY29uc3QgeyBpZCAsIG9ic2VydmVyICwgZWxlbWVudHMgIH0gPSBjcmVhdGVPYnNlcnZlcihvcHRpb25zKTtcbiAgICBlbGVtZW50cy5zZXQoZWxlbWVudCwgY2FsbGJhY2spO1xuICAgIG9ic2VydmVyLm9ic2VydmUoZWxlbWVudCk7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIHVub2JzZXJ2ZSgpIHtcbiAgICAgICAgZWxlbWVudHMuZGVsZXRlKGVsZW1lbnQpO1xuICAgICAgICBvYnNlcnZlci51bm9ic2VydmUoZWxlbWVudCk7XG4gICAgICAgIC8vIERlc3Ryb3kgb2JzZXJ2ZXIgd2hlbiB0aGVyZSdzIG5vdGhpbmcgbGVmdCB0byB3YXRjaDpcbiAgICAgICAgaWYgKGVsZW1lbnRzLnNpemUgPT09IDApIHtcbiAgICAgICAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICAgIG9ic2VydmVycy5kZWxldGUoaWQpO1xuICAgICAgICB9XG4gICAgfTtcbn1cbmNvbnN0IG9ic2VydmVycyA9IG5ldyBNYXAoKTtcbmZ1bmN0aW9uIGNyZWF0ZU9ic2VydmVyKG9wdGlvbnMpIHtcbiAgICBjb25zdCBpZCA9IG9wdGlvbnMucm9vdE1hcmdpbiB8fCAnJztcbiAgICBsZXQgaW5zdGFuY2UgPSBvYnNlcnZlcnMuZ2V0KGlkKTtcbiAgICBpZiAoaW5zdGFuY2UpIHtcbiAgICAgICAgcmV0dXJuIGluc3RhbmNlO1xuICAgIH1cbiAgICBjb25zdCBlbGVtZW50cyA9IG5ldyBNYXAoKTtcbiAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZW50cmllcyk9PntcbiAgICAgICAgZW50cmllcy5mb3JFYWNoKChlbnRyeSk9PntcbiAgICAgICAgICAgIGNvbnN0IGNhbGxiYWNrID0gZWxlbWVudHMuZ2V0KGVudHJ5LnRhcmdldCk7XG4gICAgICAgICAgICBjb25zdCBpc1Zpc2libGUgPSBlbnRyeS5pc0ludGVyc2VjdGluZyB8fCBlbnRyeS5pbnRlcnNlY3Rpb25SYXRpbyA+IDA7XG4gICAgICAgICAgICBpZiAoY2FsbGJhY2sgJiYgaXNWaXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2soaXNWaXNpYmxlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSwgb3B0aW9ucyk7XG4gICAgb2JzZXJ2ZXJzLnNldChpZCwgaW5zdGFuY2UgPSB7XG4gICAgICAgIGlkLFxuICAgICAgICBvYnNlcnZlcixcbiAgICAgICAgZWxlbWVudHNcbiAgICB9KTtcbiAgICByZXR1cm4gaW5zdGFuY2U7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVzZS1pbnRlcnNlY3Rpb24uanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwidXNlSW50ZXJzZWN0aW9uIiwiX3JlYWN0IiwicmVxdWlyZSIsIl9yZXF1ZXN0SWRsZUNhbGxiYWNrIiwiaGFzSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiLCJJbnRlcnNlY3Rpb25PYnNlcnZlciIsInJvb3RNYXJnaW4iLCJkaXNhYmxlZCIsImlzRGlzYWJsZWQiLCJ1bm9ic2VydmUiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInZpc2libGUiLCJzZXRWaXNpYmxlIiwic2V0UmVmIiwidXNlQ2FsbGJhY2siLCJlbCIsImN1cnJlbnQiLCJ1bmRlZmluZWQiLCJ0YWdOYW1lIiwib2JzZXJ2ZSIsImlzVmlzaWJsZSIsInVzZUVmZmVjdCIsImlkbGVDYWxsYmFjayIsInJlcXVlc3RJZGxlQ2FsbGJhY2siLCJjYW5jZWxJZGxlQ2FsbGJhY2siLCJlbGVtZW50IiwiY2FsbGJhY2siLCJvcHRpb25zIiwiY3JlYXRlT2JzZXJ2ZXIiLCJpZCIsIm9ic2VydmVyIiwiZWxlbWVudHMiLCJzZXQiLCJzaXplIiwiZGlzY29ubmVjdCIsIm9ic2VydmVycyIsIk1hcCIsImluc3RhbmNlIiwiZ2V0IiwiZW50cmllcyIsImZvckVhY2giLCJlbnRyeSIsInRhcmdldCIsImlzSW50ZXJzZWN0aW5nIiwiaW50ZXJzZWN0aW9uUmF0aW8iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/use-intersection.js\n"); + +/***/ }), + +/***/ "./src/common/fadeInFadeOut.js": +/*!*************************************!*\ + !*** ./src/common/fadeInFadeOut.js ***! + \*************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"fadeIn\": function() { return /* binding */ fadeIn; },\n/* harmony export */ \"fadeOut\": function() { return /* binding */ fadeOut; }\n/* harmony export */ });\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar opacity = 0;\nvar intervalID = 0;\nvar fadeIn = function fadeIn(el, time) {\n setInterval(show(el), time);\n};\n\nfunction show(el) {\n opacity = Number(window.getComputedStyle(el).getPropertyValue(\"opacity\"));\n\n if (opacity < 1) {\n opacity = opacity + 1;\n el.style.opacity = opacity;\n } else {\n clearInterval(intervalID);\n }\n}\n\nvar fadeOut = function fadeOut(el, time) {\n setInterval(hide(el), time);\n};\n\nfunction hide(el) {\n opacity = Number(window.getComputedStyle(el).getPropertyValue(\"opacity\"));\n\n if (opacity > 0) {\n opacity = 0;\n el.style.opacity = opacity;\n } else {\n clearInterval(intervalID);\n }\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL2ZhZGVJbkZhZGVPdXQuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBSUEsT0FBTyxHQUFHLENBQWQ7QUFDQSxJQUFJQyxVQUFVLEdBQUcsQ0FBakI7QUFDTyxJQUFNQyxNQUFNLEdBQUcsU0FBVEEsTUFBUyxDQUFDQyxFQUFELEVBQUtDLElBQUwsRUFBYztBQUNsQ0MsRUFBQUEsV0FBVyxDQUFDQyxJQUFJLENBQUNILEVBQUQsQ0FBTCxFQUFXQyxJQUFYLENBQVg7QUFDRCxDQUZNOztBQUdQLFNBQVNFLElBQVQsQ0FBY0gsRUFBZCxFQUFrQjtBQUNoQkgsRUFBQUEsT0FBTyxHQUFHTyxNQUFNLENBQUNDLE1BQU0sQ0FBQ0MsZ0JBQVAsQ0FBd0JOLEVBQXhCLEVBQTRCTyxnQkFBNUIsQ0FBNkMsU0FBN0MsQ0FBRCxDQUFoQjs7QUFDQSxNQUFJVixPQUFPLEdBQUcsQ0FBZCxFQUFpQjtBQUNmQSxJQUFBQSxPQUFPLEdBQUdBLE9BQU8sR0FBRyxDQUFwQjtBQUNBRyxJQUFBQSxFQUFFLENBQUNRLEtBQUgsQ0FBU1gsT0FBVCxHQUFtQkEsT0FBbkI7QUFDRCxHQUhELE1BR087QUFDTFksSUFBQUEsYUFBYSxDQUFDWCxVQUFELENBQWI7QUFDRDtBQUNGOztBQUNNLElBQU1ZLE9BQU8sR0FBRyxTQUFWQSxPQUFVLENBQUNWLEVBQUQsRUFBS0MsSUFBTCxFQUFjO0FBQ25DQyxFQUFBQSxXQUFXLENBQUNTLElBQUksQ0FBQ1gsRUFBRCxDQUFMLEVBQVdDLElBQVgsQ0FBWDtBQUNELENBRk07O0FBR1AsU0FBU1UsSUFBVCxDQUFjWCxFQUFkLEVBQWtCO0FBQ2hCSCxFQUFBQSxPQUFPLEdBQUdPLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDQyxnQkFBUCxDQUF3Qk4sRUFBeEIsRUFBNEJPLGdCQUE1QixDQUE2QyxTQUE3QyxDQUFELENBQWhCOztBQUNBLE1BQUlWLE9BQU8sR0FBRyxDQUFkLEVBQWlCO0FBQ2ZBLElBQUFBLE9BQU8sR0FBRyxDQUFWO0FBQ0FHLElBQUFBLEVBQUUsQ0FBQ1EsS0FBSCxDQUFTWCxPQUFULEdBQW1CQSxPQUFuQjtBQUNELEdBSEQsTUFHTztBQUNMWSxJQUFBQSxhQUFhLENBQUNYLFVBQUQsQ0FBYjtBQUNEO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbW1vbi9mYWRlSW5GYWRlT3V0LmpzPzc0MzYiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIG9wYWNpdHkgPSAwO1xyXG52YXIgaW50ZXJ2YWxJRCA9IDA7XHJcbmV4cG9ydCBjb25zdCBmYWRlSW4gPSAoZWwsIHRpbWUpID0+IHtcclxuICBzZXRJbnRlcnZhbChzaG93KGVsKSwgdGltZSk7XHJcbn07XHJcbmZ1bmN0aW9uIHNob3coZWwpIHtcclxuICBvcGFjaXR5ID0gTnVtYmVyKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsKS5nZXRQcm9wZXJ0eVZhbHVlKFwib3BhY2l0eVwiKSk7XHJcbiAgaWYgKG9wYWNpdHkgPCAxKSB7XHJcbiAgICBvcGFjaXR5ID0gb3BhY2l0eSArIDE7XHJcbiAgICBlbC5zdHlsZS5vcGFjaXR5ID0gb3BhY2l0eTtcclxuICB9IGVsc2Uge1xyXG4gICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbElEKTtcclxuICB9XHJcbn1cclxuZXhwb3J0IGNvbnN0IGZhZGVPdXQgPSAoZWwsIHRpbWUpID0+IHtcclxuICBzZXRJbnRlcnZhbChoaWRlKGVsKSwgdGltZSk7XHJcbn07XHJcbmZ1bmN0aW9uIGhpZGUoZWwpIHtcclxuICBvcGFjaXR5ID0gTnVtYmVyKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsKS5nZXRQcm9wZXJ0eVZhbHVlKFwib3BhY2l0eVwiKSk7XHJcbiAgaWYgKG9wYWNpdHkgPiAwKSB7XHJcbiAgICBvcGFjaXR5ID0gMDtcclxuICAgIGVsLnN0eWxlLm9wYWNpdHkgPSBvcGFjaXR5O1xyXG4gIH0gZWxzZSB7XHJcbiAgICBjbGVhckludGVydmFsKGludGVydmFsSUQpO1xyXG4gIH1cclxufVxyXG4iXSwibmFtZXMiOlsib3BhY2l0eSIsImludGVydmFsSUQiLCJmYWRlSW4iLCJlbCIsInRpbWUiLCJzZXRJbnRlcnZhbCIsInNob3ciLCJOdW1iZXIiLCJ3aW5kb3ciLCJnZXRDb21wdXRlZFN0eWxlIiwiZ2V0UHJvcGVydHlWYWx1ZSIsInN0eWxlIiwiY2xlYXJJbnRlcnZhbCIsImZhZGVPdXQiLCJoaWRlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/common/fadeInFadeOut.js\n"); + +/***/ }), + +/***/ "./src/common/getSiblings.js": +/*!***********************************!*\ + !*** ./src/common/getSiblings.js ***! + \***********************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar getSiblings = function getSiblings(e) {\n var siblings = [];\n\n if (!e.parentNode) {\n return siblings;\n }\n\n var sibling = e.parentNode.firstChild;\n\n while (sibling) {\n if (sibling.nodeType === 1 && sibling !== e) {\n siblings.push(sibling);\n }\n\n sibling = sibling.nextSibling;\n }\n\n return siblings;\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (getSiblings);\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL2dldFNpYmxpbmdzLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQUEsSUFBTUEsV0FBVyxHQUFHLFNBQWRBLFdBQWMsQ0FBQ0MsQ0FBRCxFQUFPO0FBQ3pCLE1BQUlDLFFBQVEsR0FBRyxFQUFmOztBQUNBLE1BQUksQ0FBQ0QsQ0FBQyxDQUFDRSxVQUFQLEVBQW1CO0FBQ2pCLFdBQU9ELFFBQVA7QUFDRDs7QUFDRCxNQUFJRSxPQUFPLEdBQUdILENBQUMsQ0FBQ0UsVUFBRixDQUFhRSxVQUEzQjs7QUFDQSxTQUFPRCxPQUFQLEVBQWdCO0FBQ2QsUUFBSUEsT0FBTyxDQUFDRSxRQUFSLEtBQXFCLENBQXJCLElBQTBCRixPQUFPLEtBQUtILENBQTFDLEVBQTZDO0FBQzNDQyxNQUFBQSxRQUFRLENBQUNLLElBQVQsQ0FBY0gsT0FBZDtBQUNEOztBQUNEQSxJQUFBQSxPQUFPLEdBQUdBLE9BQU8sQ0FBQ0ksV0FBbEI7QUFDRDs7QUFDRCxTQUFPTixRQUFQO0FBQ0QsQ0FiRDs7QUFlQSwrREFBZUYsV0FBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tbW9uL2dldFNpYmxpbmdzLmpzPzhlNjUiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZ2V0U2libGluZ3MgPSAoZSkgPT4ge1xyXG4gIGxldCBzaWJsaW5ncyA9IFtdO1xyXG4gIGlmICghZS5wYXJlbnROb2RlKSB7XHJcbiAgICByZXR1cm4gc2libGluZ3M7XHJcbiAgfVxyXG4gIGxldCBzaWJsaW5nID0gZS5wYXJlbnROb2RlLmZpcnN0Q2hpbGQ7XHJcbiAgd2hpbGUgKHNpYmxpbmcpIHtcclxuICAgIGlmIChzaWJsaW5nLm5vZGVUeXBlID09PSAxICYmIHNpYmxpbmcgIT09IGUpIHtcclxuICAgICAgc2libGluZ3MucHVzaChzaWJsaW5nKTtcclxuICAgIH1cclxuICAgIHNpYmxpbmcgPSBzaWJsaW5nLm5leHRTaWJsaW5nO1xyXG4gIH1cclxuICByZXR1cm4gc2libGluZ3M7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBnZXRTaWJsaW5ncztcclxuIl0sIm5hbWVzIjpbImdldFNpYmxpbmdzIiwiZSIsInNpYmxpbmdzIiwicGFyZW50Tm9kZSIsInNpYmxpbmciLCJmaXJzdENoaWxkIiwibm9kZVR5cGUiLCJwdXNoIiwibmV4dFNpYmxpbmciXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/common/getSiblings.js\n"); + +/***/ }), + +/***/ "./src/common/navbar.js": +/*!******************************!*\ + !*** ./src/common/navbar.js ***! + \******************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"handleDropdown\": function() { return /* binding */ handleDropdown; },\n/* harmony export */ \"handleMobileDropdown\": function() { return /* binding */ handleMobileDropdown; }\n/* harmony export */ });\n/* harmony import */ var _getSiblings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getSiblings */ \"./src/common/getSiblings.js\");\n/* module decorator */ module = __webpack_require__.hmd(module);\n\nvar handleDropdown = function handleDropdown(e) {\n (0,_getSiblings__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(e.target.parentElement).filter(function (item) {\n return item.classList.contains(\"show\");\n }).map(function (item) {\n item.classList.remove(\"show\");\n\n if (item.childNodes[0]) {\n item.childNodes[0].setAttribute(\"aria-expanded\", false);\n }\n\n if (item.childNodes[1]) {\n item.childNodes[1].classList.remove(\"show\");\n }\n });\n e.target.parentElement.classList.toggle(\"show\");\n e.target.setAttribute(\"aria-expanded\", true);\n e.target.parentElement.childNodes[1].classList.toggle(\"show\");\n};\nvar handleMobileDropdown = function handleMobileDropdown(e) {\n document.getElementById(\"navbarSupportedContent\").classList.toggle(\"show-with-trans\");\n};\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL25hdmJhci5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7QUFFTyxJQUFNQyxjQUFjLEdBQUcsU0FBakJBLGNBQWlCLENBQUNDLENBQUQsRUFBTztBQUNuQ0YsRUFBQUEsd0RBQVcsQ0FBQ0UsQ0FBQyxDQUFDQyxNQUFGLENBQVNDLGFBQVYsQ0FBWCxDQUNHQyxNQURILENBQ1UsVUFBQ0MsSUFBRDtBQUFBLFdBQVVBLElBQUksQ0FBQ0MsU0FBTCxDQUFlQyxRQUFmLENBQXdCLE1BQXhCLENBQVY7QUFBQSxHQURWLEVBRUdDLEdBRkgsQ0FFTyxVQUFDSCxJQUFELEVBQVU7QUFDYkEsSUFBQUEsSUFBSSxDQUFDQyxTQUFMLENBQWVHLE1BQWYsQ0FBc0IsTUFBdEI7O0FBQ0EsUUFBSUosSUFBSSxDQUFDSyxVQUFMLENBQWdCLENBQWhCLENBQUosRUFBd0I7QUFDdEJMLE1BQUFBLElBQUksQ0FBQ0ssVUFBTCxDQUFnQixDQUFoQixFQUFtQkMsWUFBbkIsQ0FBZ0MsZUFBaEMsRUFBaUQsS0FBakQ7QUFDRDs7QUFDRCxRQUFJTixJQUFJLENBQUNLLFVBQUwsQ0FBZ0IsQ0FBaEIsQ0FBSixFQUF3QjtBQUN0QkwsTUFBQUEsSUFBSSxDQUFDSyxVQUFMLENBQWdCLENBQWhCLEVBQW1CSixTQUFuQixDQUE2QkcsTUFBN0IsQ0FBb0MsTUFBcEM7QUFDRDtBQUNGLEdBVkg7QUFXQVIsRUFBQUEsQ0FBQyxDQUFDQyxNQUFGLENBQVNDLGFBQVQsQ0FBdUJHLFNBQXZCLENBQWlDTSxNQUFqQyxDQUF3QyxNQUF4QztBQUNBWCxFQUFBQSxDQUFDLENBQUNDLE1BQUYsQ0FBU1MsWUFBVCxDQUFzQixlQUF0QixFQUF1QyxJQUF2QztBQUNBVixFQUFBQSxDQUFDLENBQUNDLE1BQUYsQ0FBU0MsYUFBVCxDQUF1Qk8sVUFBdkIsQ0FBa0MsQ0FBbEMsRUFBcUNKLFNBQXJDLENBQStDTSxNQUEvQyxDQUFzRCxNQUF0RDtBQUNELENBZk07QUFpQkEsSUFBTUMsb0JBQW9CLEdBQUcsU0FBdkJBLG9CQUF1QixDQUFDWixDQUFELEVBQU87QUFDekNhLEVBQUFBLFFBQVEsQ0FDTEMsY0FESCxDQUNrQix3QkFEbEIsRUFFR1QsU0FGSCxDQUVhTSxNQUZiLENBRW9CLGlCQUZwQjtBQUdELENBSk0iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbW1vbi9uYXZiYXIuanM/MWU3NiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0U2libGluZ3MgZnJvbSAnLi9nZXRTaWJsaW5ncydcclxuXHJcbmV4cG9ydCBjb25zdCBoYW5kbGVEcm9wZG93biA9IChlKSA9PiB7XHJcbiAgZ2V0U2libGluZ3MoZS50YXJnZXQucGFyZW50RWxlbWVudClcclxuICAgIC5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uY2xhc3NMaXN0LmNvbnRhaW5zKFwic2hvd1wiKSlcclxuICAgIC5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgaXRlbS5jbGFzc0xpc3QucmVtb3ZlKFwic2hvd1wiKTtcclxuICAgICAgaWYgKGl0ZW0uY2hpbGROb2Rlc1swXSkge1xyXG4gICAgICAgIGl0ZW0uY2hpbGROb2Rlc1swXS5zZXRBdHRyaWJ1dGUoXCJhcmlhLWV4cGFuZGVkXCIsIGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaXRlbS5jaGlsZE5vZGVzWzFdKSB7XHJcbiAgICAgICAgaXRlbS5jaGlsZE5vZGVzWzFdLmNsYXNzTGlzdC5yZW1vdmUoXCJzaG93XCIpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICBlLnRhcmdldC5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoXCJzaG93XCIpO1xyXG4gIGUudGFyZ2V0LnNldEF0dHJpYnV0ZShcImFyaWEtZXhwYW5kZWRcIiwgdHJ1ZSk7XHJcbiAgZS50YXJnZXQucGFyZW50RWxlbWVudC5jaGlsZE5vZGVzWzFdLmNsYXNzTGlzdC50b2dnbGUoXCJzaG93XCIpO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGhhbmRsZU1vYmlsZURyb3Bkb3duID0gKGUpID0+IHtcclxuICBkb2N1bWVudFxyXG4gICAgLmdldEVsZW1lbnRCeUlkKFwibmF2YmFyU3VwcG9ydGVkQ29udGVudFwiKVxyXG4gICAgLmNsYXNzTGlzdC50b2dnbGUoXCJzaG93LXdpdGgtdHJhbnNcIik7XHJcbn07Il0sIm5hbWVzIjpbImdldFNpYmxpbmdzIiwiaGFuZGxlRHJvcGRvd24iLCJlIiwidGFyZ2V0IiwicGFyZW50RWxlbWVudCIsImZpbHRlciIsIml0ZW0iLCJjbGFzc0xpc3QiLCJjb250YWlucyIsIm1hcCIsInJlbW92ZSIsImNoaWxkTm9kZXMiLCJzZXRBdHRyaWJ1dGUiLCJ0b2dnbGUiLCJoYW5kbGVNb2JpbGVEcm9wZG93biIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/common/navbar.js\n"); + +/***/ }), + +/***/ "./src/common/teamSkillsProgress.js": +/*!******************************************!*\ + !*** ./src/common/teamSkillsProgress.js ***! + \******************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar teamSkillsProgress = function teamSkillsProgress() {\n var teamSection = document.querySelector(\".team-crv\");\n\n if (teamSection) {\n window.addEventListener(\"scroll\", function () {\n document.querySelectorAll(\".skill-progress .progres\").forEach(function (item) {\n var myVal = item.getAttribute(\"data-value\");\n\n if (window.pageYOffset > teamSection.offsetTop - 200) {\n item.style.width = myVal;\n }\n });\n });\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (teamSkillsProgress);\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL3RlYW1Ta2lsbHNQcm9ncmVzcy5qcy5qcyIsIm1hcHBpbmdzIjoiOztBQUFBLElBQU1BLGtCQUFrQixHQUFHLFNBQXJCQSxrQkFBcUIsR0FBTTtBQUMvQixNQUFJQyxXQUFXLEdBQUdDLFFBQVEsQ0FBQ0MsYUFBVCxDQUF1QixXQUF2QixDQUFsQjs7QUFDQSxNQUFJRixXQUFKLEVBQWlCO0FBQ2ZHLElBQUFBLE1BQU0sQ0FBQ0MsZ0JBQVAsQ0FBd0IsUUFBeEIsRUFBa0MsWUFBTTtBQUN0Q0gsTUFBQUEsUUFBUSxDQUFDSSxnQkFBVCxDQUEwQiwwQkFBMUIsRUFBc0RDLE9BQXRELENBQThELFVBQUNDLElBQUQsRUFBVTtBQUN0RSxZQUFJQyxLQUFLLEdBQUdELElBQUksQ0FBQ0UsWUFBTCxDQUFrQixZQUFsQixDQUFaOztBQUNBLFlBQUlOLE1BQU0sQ0FBQ08sV0FBUCxHQUFxQlYsV0FBVyxDQUFDVyxTQUFaLEdBQXdCLEdBQWpELEVBQXNEO0FBQ3BESixVQUFBQSxJQUFJLENBQUNLLEtBQUwsQ0FBV0MsS0FBWCxHQUFtQkwsS0FBbkI7QUFDRDtBQUNGLE9BTEQ7QUFNRCxLQVBEO0FBUUQ7QUFDRixDQVpEOztBQWNBLCtEQUFlVCxrQkFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tbW9uL3RlYW1Ta2lsbHNQcm9ncmVzcy5qcz8xYTlhIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHRlYW1Ta2lsbHNQcm9ncmVzcyA9ICgpID0+IHtcclxuICBsZXQgdGVhbVNlY3Rpb24gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLnRlYW0tY3J2XCIpO1xyXG4gIGlmICh0ZWFtU2VjdGlvbikge1xyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgKCkgPT4ge1xyXG4gICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLnNraWxsLXByb2dyZXNzIC5wcm9ncmVzXCIpLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgICBsZXQgbXlWYWwgPSBpdGVtLmdldEF0dHJpYnV0ZShcImRhdGEtdmFsdWVcIik7XHJcbiAgICAgICAgaWYgKHdpbmRvdy5wYWdlWU9mZnNldCA+IHRlYW1TZWN0aW9uLm9mZnNldFRvcCAtIDIwMCkge1xyXG4gICAgICAgICAgaXRlbS5zdHlsZS53aWR0aCA9IG15VmFsO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCB0ZWFtU2tpbGxzUHJvZ3Jlc3M7XHJcbiJdLCJuYW1lcyI6WyJ0ZWFtU2tpbGxzUHJvZ3Jlc3MiLCJ0ZWFtU2VjdGlvbiIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJxdWVyeVNlbGVjdG9yQWxsIiwiZm9yRWFjaCIsIml0ZW0iLCJteVZhbCIsImdldEF0dHJpYnV0ZSIsInBhZ2VZT2Zmc2V0Iiwib2Zmc2V0VG9wIiwic3R5bGUiLCJ3aWR0aCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/common/teamSkillsProgress.js\n"); + +/***/ }), + +/***/ "./src/common/tooltipEffect.js": +/*!*************************************!*\ + !*** ./src/common/tooltipEffect.js ***! + \*************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _fadeInFadeOut__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./fadeInFadeOut */ \"./src/common/fadeInFadeOut.js\");\n/* module decorator */ module = __webpack_require__.hmd(module);\n\n\nvar tooltipEffect = function tooltipEffect() {\n var template1 = document.createElement(\"div\");\n template1.classList.add(\"div-tooltip-tit\");\n document.body.appendChild(template1);\n var template2 = document.createElement(\"div\");\n template2.classList.add(\"div-tooltip-sub\");\n document.body.appendChild(template2);\n document.querySelectorAll(\"[data-tooltip-tit]\").forEach(function (item) {\n template1 = document.querySelector(\".div-tooltip-tit\");\n item.addEventListener(\"mouseover\", function () {\n template1.innerText = item.getAttribute(\"data-tooltip-tit\");\n });\n item.addEventListener(\"mousemove\", function (e) {\n (0,_fadeInFadeOut__WEBPACK_IMPORTED_MODULE_0__.fadeIn)(template1, 800);\n template1.style.top = e.pageY + 10 + \"px\";\n template1.style.left = e.pageX + 20 + \"px\";\n template1.style.padding = \"0px 10px\";\n });\n item.addEventListener(\"mouseleave\", function () {\n (0,_fadeInFadeOut__WEBPACK_IMPORTED_MODULE_0__.fadeOut)(template1, 800);\n template1.style.padding = 0;\n });\n });\n document.querySelectorAll(\"[data-tooltip-sub]\").forEach(function (item) {\n template2 = document.querySelector(\".div-tooltip-sub\");\n item.addEventListener(\"mouseover\", function () {\n template2.innerText = item.getAttribute(\"data-tooltip-sub\");\n });\n item.addEventListener(\"mousemove\", function (e) {\n (0,_fadeInFadeOut__WEBPACK_IMPORTED_MODULE_0__.fadeIn)(template2, 800);\n template2.style.top = e.pageY - 15 + \"px\";\n template2.style.left = e.pageX + 30 + \"px\";\n template2.style.padding = \"5px 10px\";\n });\n item.addEventListener(\"mouseleave\", function () {\n (0,_fadeInFadeOut__WEBPACK_IMPORTED_MODULE_0__.fadeOut)(template2, 800);\n template2.style.padding = 0;\n });\n });\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (tooltipEffect);\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QVYsQ0FBZ0JLLE9BQWhCLEdBQTBCLFVBQTFCO0FBQ0QsS0FMRDtBQU1BWCxJQUFBQSxJQUFJLENBQUNFLGdCQUFMLENBQXNCLFlBQXRCLEVBQW9DLFlBQU07QUFDeENkLE1BQUFBLHVEQUFPLENBQUNTLFNBQUQsRUFBWSxHQUFaLENBQVA7QUFDQUEsTUFBQUEsU0FBUyxDQUFDUyxLQUFWLENBQWdCSyxPQUFoQixHQUEwQixDQUExQjtBQUNELEtBSEQ7QUFJRCxHQWhCRDtBQWlCRCxDQXhDRDs7QUF5Q0EsK0RBQWV0QixhQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21tb24vdG9vbHRpcEVmZmVjdC5qcz84ZjZjIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZhZGVJbiwgZmFkZU91dCB9IGZyb20gXCIuL2ZhZGVJbkZhZGVPdXRcIjtcclxuXHJcbmNvbnN0IHRvb2x0aXBFZmZlY3QgPSAoKSA9PiB7XHJcbiAgbGV0IHRlbXBsYXRlMSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XHJcbiAgdGVtcGxhdGUxLmNsYXNzTGlzdC5hZGQoXCJkaXYtdG9vbHRpcC10aXRcIik7XHJcbiAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0ZW1wbGF0ZTEpO1xyXG4gIGxldCB0ZW1wbGF0ZTIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xyXG4gIHRlbXBsYXRlMi5jbGFzc0xpc3QuYWRkKFwiZGl2LXRvb2x0aXAtc3ViXCIpO1xyXG4gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGVtcGxhdGUyKTtcclxuICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiW2RhdGEtdG9vbHRpcC10aXRdXCIpLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgIHRlbXBsYXRlMSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIuZGl2LXRvb2x0aXAtdGl0XCIpO1xyXG4gICAgaXRlbS5hZGRFdmVudExpc3RlbmVyKFwibW91c2VvdmVyXCIsICgpID0+IHtcclxuICAgICAgdGVtcGxhdGUxLmlubmVyVGV4dCA9IGl0ZW0uZ2V0QXR0cmlidXRlKFwiZGF0YS10b29sdGlwLXRpdFwiKTtcclxuICAgIH0pO1xyXG4gICAgaXRlbS5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsIChlKSA9PiB7XHJcbiAgICAgIGZhZGVJbih0ZW1wbGF0ZTEsIDgwMCk7XHJcbiAgICAgIHRlbXBsYXRlMS5zdHlsZS50b3AgPSBlLnBhZ2VZICsgMTAgKyBcInB4XCI7XHJcbiAgICAgIHRlbXBsYXRlMS5zdHlsZS5sZWZ0ID0gZS5wYWdlWCArIDIwICsgXCJweFwiO1xyXG4gICAgICB0ZW1wbGF0ZTEuc3R5bGUucGFkZGluZyA9IFwiMHB4IDEwcHhcIjtcclxuICAgIH0pO1xyXG4gICAgaXRlbS5hZGRFdmVudExpc3RlbmVyKFwibW91c2VsZWF2ZVwiLCAoKSA9PiB7XHJcbiAgICAgIGZhZGVPdXQodGVtcGxhdGUxLCA4MDApO1xyXG4gICAgICB0ZW1wbGF0ZTEuc3R5bGUucGFkZGluZyA9IDA7XHJcbiAgICB9KTtcclxuICB9KTtcclxuICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiW2RhdGEtdG9vbHRpcC1zdWJdXCIpLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgIHRlbXBsYXRlMiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIuZGl2LXRvb2x0aXAtc3ViXCIpO1xyXG4gICAgaXRlbS5hZGRFdmVudExpc3RlbmVyKFwibW91c2VvdmVyXCIsICgpID0+IHtcclxuICAgICAgdGVtcGxhdGUyLmlubmVyVGV4dCA9IGl0ZW0uZ2V0QXR0cmlidXRlKFwiZGF0YS10b29sdGlwLXN1YlwiKTtcclxuICAgIH0pO1xyXG5cclxuICAgIGl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLCAoZSkgPT4ge1xyXG4gICAgICBmYWRlSW4odGVtcGxhdGUyLCA4MDApO1xyXG4gICAgICB0ZW1wbGF0ZTIuc3R5bGUudG9wID0gZS5wYWdlWSAtIDE1ICsgXCJweFwiO1xyXG4gICAgICB0ZW1wbGF0ZTIuc3R5bGUubGVmdCA9IGUucGFnZVggKyAzMCArIFwicHhcIjtcclxuICAgICAgdGVtcGxhdGUyLnN0eWxlLnBhZGRpbmcgPSBcIjVweCAxMHB4XCI7XHJcbiAgICB9KTtcclxuICAgIGl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIiwgKCkgPT4ge1xyXG4gICAgICBmYWRlT3V0KHRlbXBsYXRlMiwgODAwKTtcclxuICAgICAgdGVtcGxhdGUyLnN0eWxlLnBhZGRpbmcgPSAwO1xyXG4gICAgfSk7XHJcbiAgfSk7XHJcbn07XHJcbmV4cG9ydCBkZWZhdWx0IHRvb2x0aXBFZmZlY3Q7XHJcbiJdLCJuYW1lcyI6WyJmYWRlSW4iLCJmYWRlT3V0IiwidG9vbHRpcEVmZmVjdCIsInRlbXBsYXRlMSIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTGlzdCIsImFkZCIsImJvZHkiLCJhcHBlbmRDaGlsZCIsInRlbXBsYXRlMiIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJmb3JFYWNoIiwiaXRlbSIsInF1ZXJ5U2VsZWN0b3IiLCJhZGRFdmVudExpc3RlbmVyIiwiaW5uZXJUZXh0IiwiZ2V0QXR0cmlidXRlIiwiZSIsInN0eWxlIiwidG9wIiwicGFnZVkiLCJsZWZ0IiwicGFnZVgiLCJwYWRkaW5nIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/common/tooltipEffect.js\n"); + +/***/ }), + +/***/ "./src/components/About-intro/index.jsx": +/*!**********************************************!*\ + !*** ./src/components/About-intro/index.jsx ***! + \**********************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _Split__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Split */ \"./src/components/Split/index.jsx\");\n/* harmony import */ var _data_sections_about_info1_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../data/sections/about-info1.json */ \"./src/data/sections/about-info1.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\About-intro\\\\index.jsx\",\n _this = undefined;\n\n\n\n\n\n\nvar AboutIntro = function AboutIntro() {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"section\", {\n className: \"intro-section section-padding pb-0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"htit sm-mb30\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h4\", {\n children: _data_sections_about_info1_json__WEBPACK_IMPORTED_MODULE_2__.title\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-8 offset-lg-1 col-md-8\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"text\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(_Split__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n className: \"wow txt mb-10 words chars splitting\",\n \"data-splitting\": true,\n children: _data_sections_about_info1_json__WEBPACK_IMPORTED_MODULE_2__.paragraph1\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n className: \"wow txt words chars splitting\",\n \"data-splitting\": true,\n children: _data_sections_about_info1_json__WEBPACK_IMPORTED_MODULE_2__.paragraph2\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 7,\n columnNumber: 5\n }, _this);\n};\n\n_c = AboutIntro;\n/* harmony default export */ __webpack_exports__[\"default\"] = (AboutIntro);\n\nvar _c;\n\n$RefreshReg$(_c, \"AboutIntro\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9BYm91dC1pbnRyby9pbmRleC5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7OztBQUVBLElBQU1HLFVBQVUsR0FBRyxTQUFiQSxVQUFhLEdBQU07QUFDdkIsc0JBQ0U7QUFBUyxhQUFTLEVBQUMsb0NBQW5CO0FBQUEsMkJBQ0U7QUFBSyxlQUFTLEVBQUMsV0FBZjtBQUFBLDZCQUNFO0FBQUssaUJBQVMsRUFBQyxLQUFmO0FBQUEsZ0NBQ0U7QUFBSyxtQkFBUyxFQUFDLG1CQUFmO0FBQUEsaUNBQ0U7QUFBSyxxQkFBUyxFQUFDLGNBQWY7QUFBQSxtQ0FDRTtBQUFBLHdCQUFLRCxrRUFBb0JFO0FBQXpCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFERixlQU1FO0FBQUssbUJBQVMsRUFBQywrQkFBZjtBQUFBLGlDQUNFO0FBQUsscUJBQVMsRUFBQyxNQUFmO0FBQUEsbUNBQ0UsOERBQUMsOENBQUQ7QUFBQSxzQ0FDRTtBQUNFLHlCQUFTLEVBQUMscUNBRFo7QUFFRSxzQ0FGRjtBQUFBLDBCQUlHRix1RUFBeUJHO0FBSjVCO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBREYsZUFPRTtBQUFHLHlCQUFTLEVBQUMsK0JBQWI7QUFBNkMsc0NBQTdDO0FBQUEsMEJBQ0dILHVFQUF5Qkk7QUFENUI7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFQRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFORjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxXQURGO0FBNEJELENBN0JEOztLQUFNSDtBQStCTiwrREFBZUEsVUFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tcG9uZW50cy9BYm91dC1pbnRyby9pbmRleC5qc3g/ZGI4MSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBTcGxpdCBmcm9tIFwiLi4vU3BsaXRcIjtcclxuaW1wb3J0IEFib3V0SW5mbzFEYXRhIGZyb20gXCIuLi8uLi9kYXRhL3NlY3Rpb25zL2Fib3V0LWluZm8xLmpzb25cIjtcclxuXHJcbmNvbnN0IEFib3V0SW50cm8gPSAoKSA9PiB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cImludHJvLXNlY3Rpb24gc2VjdGlvbi1wYWRkaW5nIHBiLTBcIj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImh0aXQgc20tbWIzMFwiPlxyXG4gICAgICAgICAgICAgIDxoND57QWJvdXRJbmZvMURhdGEudGl0bGV9PC9oND5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTggb2Zmc2V0LWxnLTEgY29sLW1kLThcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0XCI+XHJcbiAgICAgICAgICAgICAgPFNwbGl0PlxyXG4gICAgICAgICAgICAgICAgPHBcclxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwid293IHR4dCBtYi0xMCB3b3JkcyBjaGFycyBzcGxpdHRpbmdcIlxyXG4gICAgICAgICAgICAgICAgICBkYXRhLXNwbGl0dGluZ1xyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICB7QWJvdXRJbmZvMURhdGEucGFyYWdyYXBoMX1cclxuICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cIndvdyB0eHQgd29yZHMgY2hhcnMgc3BsaXR0aW5nXCIgZGF0YS1zcGxpdHRpbmc+XHJcbiAgICAgICAgICAgICAgICAgIHtBYm91dEluZm8xRGF0YS5wYXJhZ3JhcGgyfVxyXG4gICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgIDwvU3BsaXQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBBYm91dEludHJvO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJTcGxpdCIsIkFib3V0SW5mbzFEYXRhIiwiQWJvdXRJbnRybyIsInRpdGxlIiwicGFyYWdyYXBoMSIsInBhcmFncmFwaDIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/components/About-intro/index.jsx\n"); + +/***/ }), + +/***/ "./src/components/Call-to-action/call-to-action.jsx": +/*!**********************************************************!*\ + !*** ./src/components/Call-to-action/call-to-action.jsx ***! + \**********************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _Split__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Split */ \"./src/components/Split/index.jsx\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Call-to-action\\\\call-to-action.jsx\",\n _this = undefined;\n\n\n\n\n\n\nvar CallToAction = function CallToAction(_ref) {\n var img = _ref.img;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"section\", {\n className: \"call-action section-padding sub-bg bg-img\",\n style: {\n backgroundImage: \"url(\".concat(img ? img : \"/img/patrn.svg\", \")\")\n },\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-md-8 col-lg-9\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"content sm-mb30\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(_Split__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n className: \"wow words chars splitting\",\n \"data-splitting\": true,\n children: \"Let\\u2019s Talk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h2\", {\n className: \"wow words chars splitting\",\n \"data-splitting\": true,\n children: [\"about your \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"br\", {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 30\n }, _this), \" \", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"b\", {\n className: \"back-color\",\n children: \"next project\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 37\n }, _this), \".\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-md-4 col-lg-3 valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/contact/contact-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n className: \"butn bord curve wow fadeInUp\",\n \"data-wow-delay\": \".5s\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: \"Get In Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 7,\n columnNumber: 5\n }, _this);\n};\n\n_c = CallToAction;\n/* harmony default export */ __webpack_exports__[\"default\"] = (CallToAction);\n\nvar _c;\n\n$RefreshReg$(_c, \"CallToAction\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9DYWxsLXRvLWFjdGlvbi9jYWxsLXRvLWFjdGlvbi5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBOzs7QUFFQSxJQUFNRyxZQUFZLEdBQUcsU0FBZkEsWUFBZSxPQUFhO0FBQUEsTUFBVkMsR0FBVSxRQUFWQSxHQUFVO0FBQ2hDLHNCQUNFO0FBQ0UsYUFBUyxFQUFDLDJDQURaO0FBRUUsU0FBSyxFQUFFO0FBQUVDLE1BQUFBLGVBQWUsZ0JBQVNELEdBQUcsR0FBR0EsR0FBSCxHQUFTLGdCQUFyQjtBQUFqQixLQUZUO0FBQUEsMkJBSUU7QUFBSyxlQUFTLEVBQUMsV0FBZjtBQUFBLDZCQUNFO0FBQUssaUJBQVMsRUFBQyxLQUFmO0FBQUEsZ0NBQ0U7QUFBSyxtQkFBUyxFQUFDLG1CQUFmO0FBQUEsaUNBQ0U7QUFBSyxxQkFBUyxFQUFDLGlCQUFmO0FBQUEsbUNBQ0UsOERBQUMsOENBQUQ7QUFBQSxzQ0FDRTtBQUFJLHlCQUFTLEVBQUMsMkJBQWQ7QUFBMEMsc0NBQTFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQURGLGVBSUU7QUFBSSx5QkFBUyxFQUFDLDJCQUFkO0FBQTBDLHNDQUExQztBQUFBLHVEQUNhO0FBQUE7QUFBQTtBQUFBO0FBQUEseUJBRGIsb0JBQ29CO0FBQUcsMkJBQVMsRUFBQyxZQUFiO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHlCQURwQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBSkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBREYsZUFjRTtBQUFLLG1CQUFTLEVBQUMsMEJBQWY7QUFBQSxpQ0FDRSw4REFBQyxrREFBRDtBQUFNLGdCQUFJLDBCQUFWO0FBQUEsbUNBQ0U7QUFBRyx1QkFBUyxFQUFDLDhCQUFiO0FBQTRDLGdDQUFlLEtBQTNEO0FBQUEscUNBQ0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBZEY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUpGO0FBQUE7QUFBQTtBQUFBO0FBQUEsV0FERjtBQStCRCxDQWhDRDs7S0FBTUQ7QUFrQ04sK0RBQWVBLFlBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbXBvbmVudHMvQ2FsbC10by1hY3Rpb24vY2FsbC10by1hY3Rpb24uanN4PzFmOTkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgU3BsaXQgZnJvbSBcIi4uL1NwbGl0XCI7XHJcbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcclxuXHJcbmNvbnN0IENhbGxUb0FjdGlvbiA9ICh7IGltZyB9KSA9PiB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uXHJcbiAgICAgIGNsYXNzTmFtZT1cImNhbGwtYWN0aW9uIHNlY3Rpb24tcGFkZGluZyBzdWItYmcgYmctaW1nXCJcclxuICAgICAgc3R5bGU9e3sgYmFja2dyb3VuZEltYWdlOiBgdXJsKCR7aW1nID8gaW1nIDogXCIvaW1nL3BhdHJuLnN2Z1wifSlgIH19XHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLW1kLTggY29sLWxnLTlcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250ZW50IHNtLW1iMzBcIj5cclxuICAgICAgICAgICAgICA8U3BsaXQ+XHJcbiAgICAgICAgICAgICAgICA8aDYgY2xhc3NOYW1lPVwid293IHdvcmRzIGNoYXJzIHNwbGl0dGluZ1wiIGRhdGEtc3BsaXR0aW5nPlxyXG4gICAgICAgICAgICAgICAgICBMZXTigJlzIFRhbGtcclxuICAgICAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgICAgICA8aDIgY2xhc3NOYW1lPVwid293IHdvcmRzIGNoYXJzIHNwbGl0dGluZ1wiIGRhdGEtc3BsaXR0aW5nPlxyXG4gICAgICAgICAgICAgICAgICBhYm91dCB5b3VyIDxiciAvPiA8YiBjbGFzc05hbWU9XCJiYWNrLWNvbG9yXCI+bmV4dCBwcm9qZWN0PC9iPi5cclxuICAgICAgICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICAgICAgPC9TcGxpdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1tZC00IGNvbC1sZy0zIHZhbGlnblwiPlxyXG4gICAgICAgICAgICA8TGluayBocmVmPXtgL2NvbnRhY3QvY29udGFjdC1saWdodGB9PlxyXG4gICAgICAgICAgICAgIDxhIGNsYXNzTmFtZT1cImJ1dG4gYm9yZCBjdXJ2ZSB3b3cgZmFkZUluVXBcIiBkYXRhLXdvdy1kZWxheT1cIi41c1wiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+R2V0IEluIFRvdWNoPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBDYWxsVG9BY3Rpb247XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIlNwbGl0IiwiTGluayIsIkNhbGxUb0FjdGlvbiIsImltZyIsImJhY2tncm91bmRJbWFnZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Call-to-action/call-to-action.jsx\n"); + +/***/ }), + +/***/ "./src/components/Clients/clients.jsx": +/*!********************************************!*\ + !*** ./src/components/Clients/clients.jsx ***! + \********************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _data_sections_clients_json__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../data/sections/clients.json */ \"./src/data/sections/clients.json\");\n/* harmony import */ var _Split__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Split */ \"./src/components/Split/index.jsx\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Clients\\\\clients.jsx\",\n _this = undefined;\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\nvar Clients = function Clients(_ref) {\n var theme = _ref.theme;\n var first = _data_sections_clients_json__WEBPACK_IMPORTED_MODULE_1__.slice(0, _data_sections_clients_json__WEBPACK_IMPORTED_MODULE_1__.length / 2);\n var second = _data_sections_clients_json__WEBPACK_IMPORTED_MODULE_1__.slice(4, _data_sections_clients_json__WEBPACK_IMPORTED_MODULE_1__.length);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"section\", {\n className: \"clients section-padding\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4 valign md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"sec-head mb-0\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Best Features\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h3\", {\n className: \"wow mb-20 color-font\",\n children: \"Our Clients\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"Our area of practice is quite wide: design, graphics, branding, development.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-8\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row bord\",\n children: first.map(function (item) {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-md-3 col-6 brands\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item wow fadeIn\",\n \"data-wow-delay\": \"\".concat(item.id == 1 ? \".3\" : item.id == 2 ? \".6\" : item.id == 3 ? \".8\" : item.id == 4 ? \".3\" : \"\", \"s\"),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"img\",\n children: theme === \"light\" ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: item.lightImage,\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 27\n }, _this) : /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: item.darkImage,\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 21\n }, _this)\n }, item.id, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 19\n }, _this);\n })\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: second.map(function (item) {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"\".concat(item.id == 5 ? \"col-md-3 col-6 brands sm-mb30\" : item.id == 6 ? \"col-md-3 col-6 brands sm-mb30\" : item.id == 7 ? \"col-md-3 col-6 brands\" : item.id == 8 ? \"col-md-3 col-6 brands\" : \"\"),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item wow fadeIn\",\n \"data-wow-delay\": \"\".concat(item.id == 1 ? \".4\" : item.id == 2 ? \".7\" : item.id == 3 ? \".5\" : item.id == 4 ? \".3\" : \"\", \"s\"),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"img\",\n children: theme === \"light\" ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: item.lightImage,\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 27\n }, _this) : /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: item.darkImage,\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 99,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 81,\n columnNumber: 21\n }, _this)\n }, item.id, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 19\n }, _this);\n })\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 5\n }, _this);\n};\n\n_c = Clients;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Clients);\n\nvar _c;\n\n$RefreshReg$(_c, \"Clients\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QVgsR0FDSSxJQURKLEdBRUlELElBQUksQ0FBQ0MsRUFBTCxJQUFXLENBQVgsR0FDQSxJQURBLEdBRUFELElBQUksQ0FBQ0MsRUFBTCxJQUFXLENBQVgsR0FDQSxJQURBLEdBRUFELElBQUksQ0FBQ0MsRUFBTCxJQUFXLENBQVgsR0FDQSxJQURBLEdBRUEsRUFUTixNQUZGO0FBQUEsMkNBY0U7QUFBSywrQkFBUyxFQUFDLEtBQWY7QUFBQSxnQ0FDR1AsS0FBSyxLQUFLLE9BQVYsZ0JBQ0M7QUFBSywyQkFBRyxFQUFFTSxJQUFJLENBQUNFLFVBQWY7QUFBMkIsMkJBQUcsRUFBQztBQUEvQjtBQUFBO0FBQUE7QUFBQTtBQUFBLCtCQURELGdCQUdDO0FBQUssMkJBQUcsRUFBRUYsSUFBSSxDQUFDRyxTQUFmO0FBQTBCLDJCQUFHLEVBQUM7QUFBOUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUpKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFkRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZEYsbUJBQ09ILElBQUksQ0FBQ0MsRUFEWjtBQUFBO0FBQUE7QUFBQTtBQUFBLHlCQURVO0FBQUEsZUFBWDtBQURIO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBdENGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBYkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsV0FERjtBQStHRCxDQW5IRDs7S0FBTVI7QUFxSE4sK0RBQWVBLE9BQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbXBvbmVudHMvQ2xpZW50cy9jbGllbnRzLmpzeD9iM2Q0Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBuZXh0L25leHQvbm8taW1nLWVsZW1lbnQgKi9cclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgQ2xpZW50c0RhdGEgZnJvbSBcIi4uLy4uL2RhdGEvc2VjdGlvbnMvY2xpZW50cy5qc29uXCI7XHJcbmltcG9ydCBTcGxpdCBmcm9tIFwiLi4vU3BsaXRcIjtcclxuXHJcbmNvbnN0IENsaWVudHMgPSAoeyB0aGVtZSB9KSA9PiB7XHJcbiAgdmFyIGZpcnN0ID0gQ2xpZW50c0RhdGEuc2xpY2UoMCwgQ2xpZW50c0RhdGEubGVuZ3RoIC8gMik7XHJcbiAgdmFyIHNlY29uZCA9IENsaWVudHNEYXRhLnNsaWNlKDQsIENsaWVudHNEYXRhLmxlbmd0aCk7XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8c2VjdGlvbiBjbGFzc05hbWU9XCJjbGllbnRzIHNlY3Rpb24tcGFkZGluZ1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy00IHZhbGlnbiBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2VjLWhlYWQgbWItMFwiPlxyXG4gICAgICAgICAgICAgIDxoNiBjbGFzc05hbWU9XCJ3b3cgZmFkZUluXCIgZGF0YS13b3ctZGVsYXk9XCIuNXNcIj5cclxuICAgICAgICAgICAgICAgIEJlc3QgRmVhdHVyZXNcclxuICAgICAgICAgICAgICA8L2g2PlxyXG4gICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJ3b3cgbWItMjAgY29sb3ItZm9udFwiPk91ciBDbGllbnRzPC9oMz5cclxuICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgIE91ciBhcmVhIG9mIHByYWN0aWNlIGlzIHF1aXRlIHdpZGU6IGRlc2lnbiwgZ3JhcGhpY3MsIGJyYW5kaW5nLFxyXG4gICAgICAgICAgICAgICAgZGV2ZWxvcG1lbnQuXHJcbiAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOFwiPlxyXG4gICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93IGJvcmRcIj5cclxuICAgICAgICAgICAgICAgIHtmaXJzdC5tYXAoKGl0ZW0pID0+IChcclxuICAgICAgICAgICAgICAgICAgPGRpdiBrZXk9e2l0ZW0uaWR9IGNsYXNzTmFtZT1cImNvbC1tZC0zIGNvbC02IGJyYW5kc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIml0ZW0gd293IGZhZGVJblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBkYXRhLXdvdy1kZWxheT17YCR7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uaWQgPT0gMVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gXCIuM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBpdGVtLmlkID09IDJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IFwiLjZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogaXRlbS5pZCA9PSAzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBcIi44XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IGl0ZW0uaWQgPT0gNFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gXCIuM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICB9c2B9XHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3RoZW1lID09PSBcImxpZ2h0XCIgPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9e2l0ZW0ubGlnaHRJbWFnZX0gYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz17aXRlbS5kYXJrSW1hZ2V9IGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHsvKiA8U3BsaXQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCIjMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJsaW5rIHdvcmRzIGNoYXJzIHNwbGl0dGluZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXNwbGl0dGluZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVtLnVybH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvU3BsaXQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgKSl9XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgIHtzZWNvbmQubWFwKChpdGVtKSA9PiAoXHJcbiAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICBrZXk9e2l0ZW0uaWR9XHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtcclxuICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uaWQgPT0gNVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IFwiY29sLW1kLTMgY29sLTYgYnJhbmRzIHNtLW1iMzBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGl0ZW0uaWQgPT0gNlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IFwiY29sLW1kLTMgY29sLTYgYnJhbmRzIHNtLW1iMzBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGl0ZW0uaWQgPT0gN1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IFwiY29sLW1kLTMgY29sLTYgYnJhbmRzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBpdGVtLmlkID09IDhcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBcImNvbC1tZC0zIGNvbC02IGJyYW5kc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogXCJcIlxyXG4gICAgICAgICAgICAgICAgICAgIH1gfVxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaXRlbSB3b3cgZmFkZUluXCJcclxuICAgICAgICAgICAgICAgICAgICAgIGRhdGEtd293LWRlbGF5PXtgJHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5pZCA9PSAxXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBcIi40XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IGl0ZW0uaWQgPT0gMlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gXCIuN1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBpdGVtLmlkID09IDNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IFwiLjVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogaXRlbS5pZCA9PSA0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBcIi4zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiXCJcclxuICAgICAgICAgICAgICAgICAgICAgIH1zYH1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7dGhlbWUgPT09IFwibGlnaHRcIiA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz17aXRlbS5saWdodEltYWdlfSBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPXtpdGVtLmRhcmtJbWFnZX0gYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgey8qIDxTcGxpdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cIiMwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImxpbmsgd29yZHMgY2hhcnMgc3BsaXR0aW5nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtc3BsaXR0aW5nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2l0ZW0udXJsfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9TcGxpdD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICApKX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L3NlY3Rpb24+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IENsaWVudHM7XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIkNsaWVudHNEYXRhIiwiU3BsaXQiLCJDbGllbnRzIiwidGhlbWUiLCJmaXJzdCIsInNsaWNlIiwibGVuZ3RoIiwic2Vjb25kIiwibWFwIiwiaXRlbSIsImlkIiwibGlnaHRJbWFnZSIsImRhcmtJbWFnZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Clients/clients.jsx\n"); + +/***/ }), + +/***/ "./src/components/Footer/footer.jsx": +/*!******************************************!*\ + !*** ./src/components/Footer/footer.jsx ***! + \******************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _data_app_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../data/app.json */ \"./src/data/app.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Footer\\\\footer.jsx\",\n _this = undefined;\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\nvar Footer = function Footer(_ref) {\n var hideBGCOLOR = _ref.hideBGCOLOR;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"footer\", {\n className: \"\".concat(!hideBGCOLOR ? \"sub-bg\" : \"\"),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item md-mb50\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"title\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h5\", {\n children: \"Contact Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"ul\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-map-marker\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Officeal Address\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"Baghdad Street, Al Dana area, Abu Dhabi, United Arab Emirates\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-mail\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Email Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"hello@businesshub.abudhabi\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-call\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Call Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"+971 26340404\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"logo\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.lightLogo,\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"social\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-facebook-f\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 51,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-twitter\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-instagram\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-youtube\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 61,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 60,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"copy-right\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"\\xA9 2024, 2024 Business HUB international investment - All Rights Reserved.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 5\n }, _this);\n};\n\n_c = Footer;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Footer);\n\nvar _c;\n\n$RefreshReg$(_c, \"Footer\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFQRixlQVVFO0FBQUcsb0JBQUksRUFBQyxJQUFSO0FBQUEsdUNBQ0U7QUFBRywyQkFBUyxFQUFDO0FBQWI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBVkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQUpGLGVBa0JFO0FBQUssdUJBQVMsRUFBQyxZQUFmO0FBQUEscUNBQ0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQWxCRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQW5DRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxXQURGO0FBcUVELENBdEVEOztLQUFNQztBQXdFTiwrREFBZUEsTUFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tcG9uZW50cy9Gb290ZXIvZm9vdGVyLmpzeD9mMzk0Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBuZXh0L25leHQvbm8taW1nLWVsZW1lbnQgKi9cclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgTGluayBmcm9tIFwibmV4dC9saW5rXCI7XHJcbmltcG9ydCBhcHBEYXRhIGZyb20gXCIuLi8uLi9kYXRhL2FwcC5qc29uXCI7XHJcblxyXG5jb25zdCBGb290ZXIgPSAoeyBoaWRlQkdDT0xPUiB9KSA9PiB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxmb290ZXIgY2xhc3NOYW1lPXtgJHshaGlkZUJHQ09MT1IgPyBcInN1Yi1iZ1wiIDogXCJcIn1gfT5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctNFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGl0bGVcIj5cclxuICAgICAgICAgICAgICAgIDxoNT5Db250YWN0IFVzPC9oNT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24gcGUtN3MtbWFwLW1hcmtlclwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg2Pk9mZmljZWFsIEFkZHJlc3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgQmFnaGRhZCBTdHJlZXQsIEFsIERhbmEgYXJlYSwgQWJ1IERoYWJpLCBVbml0ZWQgQXJhYlxyXG4gICAgICAgICAgICAgICAgICAgICAgRW1pcmF0ZXNcclxuICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvbiBwZS03cy1tYWlsXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+RW1haWwgVXM8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPmhlbGxvQGJ1c2luZXNzaHViLmFidWRoYWJpPC9wPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24gcGUtN3MtY2FsbFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg2PkNhbGwgVXM8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPis5NzEgMjYzNDA0MDQ8L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsb2dvXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz17YXBwRGF0YS5saWdodExvZ299IGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzb2NpYWxcIj5cclxuICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYWIgZmEtZmFjZWJvb2stZlwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYWIgZmEtdHdpdHRlclwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYWIgZmEtaW5zdGFncmFtXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgPGEgaHJlZj1cIiMwXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhYiBmYS15b3V0dWJlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29weS1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgIMKpIDIwMjQsIDIwMjQgQnVzaW5lc3MgSFVCIGludGVybmF0aW9uYWwgaW52ZXN0bWVudCAtIEFsbFxyXG4gICAgICAgICAgICAgICAgICBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9mb290ZXI+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IEZvb3RlcjtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiTGluayIsImFwcERhdGEiLCJGb290ZXIiLCJoaWRlQkdDT0xPUiIsImxpZ2h0TG9nbyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Footer/footer.jsx\n"); + +/***/ }), + +/***/ "./src/components/Navbar/navbar.jsx": +/*!******************************************!*\ + !*** ./src/components/Navbar/navbar.jsx ***! + \******************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _data_app_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../data/app.json */ \"./src/data/app.json\");\n/* harmony import */ var _common_navbar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/navbar */ \"./src/common/navbar.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Navbar\\\\navbar.jsx\",\n _this = undefined;\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nvar Navbar = function Navbar(_ref) {\n var lr = _ref.lr,\n nr = _ref.nr,\n theme = _ref.theme;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"nav\", {\n ref: nr,\n className: \"navbar navbar-expand-lg change \".concat(theme === \"themeL\" ? \"light\" : \"\"),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"a\", {\n className: \"logo\",\n children: theme ? theme === \"themeL\" ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n ref: lr,\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.darkLogo,\n alt: \"logo\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 17\n }, _this) : /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n ref: lr,\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.lightLogo,\n alt: \"logo\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 17\n }, _this) : /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n ref: lr,\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.lightLogo,\n alt: \"logo\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"button\", {\n className: \"navbar-toggler\",\n type: \"button\",\n onClick: _common_navbar__WEBPACK_IMPORTED_MODULE_3__.handleMobileDropdown,\n \"data-toggle\": \"collapse\",\n \"data-target\": \"#navbarSupportedContent\",\n \"aria-controls\": \"navbarSupportedContent\",\n \"aria-expanded\": \"false\",\n \"aria-label\": \"Toggle navigation\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"icon-bar\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"i\", {\n className: \"fas fa-bars\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"collapse navbar-collapse\",\n id: \"navbarSupportedContent\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"ul\", {\n className: \"navbar-nav ml-auto\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"nav-link \",\n children: \"Home\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/about\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"a\", {\n className: \"nav-link\",\n children: \"Who we are\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/services\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"nav-link\",\n children: \"Our Services\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 59,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/blog/blog-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"nav-link \",\n children: \"Blog\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"li\", {\n className: \"nav-item\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/contact/contact-light\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"a\", {\n className: \"nav-link\",\n children: \"Contact\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 13\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, _this);\n};\n\n_c = Navbar;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Navbar);\n\nvar _c;\n\n$RefreshReg$(_c, \"Navbar\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9OYXZiYXIvbmF2YmFyLmpzeC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsSUFBTUssTUFBTSxHQUFHLFNBQVRBLE1BQVMsT0FBdUI7QUFBQSxNQUFwQkMsRUFBb0IsUUFBcEJBLEVBQW9CO0FBQUEsTUFBaEJDLEVBQWdCLFFBQWhCQSxFQUFnQjtBQUFBLE1BQVpDLEtBQVksUUFBWkEsS0FBWTtBQUNwQyxzQkFDRTtBQUNFLE9BQUcsRUFBRUQsRUFEUDtBQUVFLGFBQVMsMkNBQ1BDLEtBQUssS0FBSyxRQUFWLEdBQXFCLE9BQXJCLEdBQStCLEVBRHhCLENBRlg7QUFBQSwyQkFNRTtBQUFLLGVBQVMsRUFBQyxXQUFmO0FBQUEsOEJBQ0UsOERBQUMsa0RBQUQ7QUFBTSxZQUFJLEVBQUMsR0FBWDtBQUFBLCtCQUNFO0FBQUcsbUJBQVMsRUFBQyxNQUFiO0FBQUEsb0JBQ0dBLEtBQUssR0FDSkEsS0FBSyxLQUFLLFFBQVYsZ0JBQ0U7QUFBSyxlQUFHLEVBQUVGLEVBQVY7QUFBYyxlQUFHLEVBQUVKLG9EQUFuQjtBQUFxQyxlQUFHLEVBQUM7QUFBekM7QUFBQTtBQUFBO0FBQUE7QUFBQSxtQkFERixnQkFHRTtBQUFLLGVBQUcsRUFBRUksRUFBVjtBQUFjLGVBQUcsRUFBRUoscURBQW5CO0FBQXNDLGVBQUcsRUFBQztBQUExQztBQUFBO0FBQUE7QUFBQTtBQUFBLG1CQUpFLGdCQU9KO0FBQUssZUFBRyxFQUFFSSxFQUFWO0FBQWMsZUFBRyxFQUFFSixxREFBbkI7QUFBc0MsZUFBRyxFQUFDO0FBQTFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFSSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxlQURGLGVBZUU7QUFDRSxpQkFBUyxFQUFDLGdCQURaO0FBRUUsWUFBSSxFQUFDLFFBRlA7QUFHRSxlQUFPLEVBQUVFLGdFQUhYO0FBSUUsdUJBQVksVUFKZDtBQUtFLHVCQUFZLHlCQUxkO0FBTUUseUJBQWMsd0JBTmhCO0FBT0UseUJBQWMsT0FQaEI7QUFRRSxzQkFBVyxtQkFSYjtBQUFBLCtCQVVFO0FBQU0sbUJBQVMsRUFBQyxVQUFoQjtBQUFBLGlDQUNFO0FBQUcscUJBQVMsRUFBQztBQUFiO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBVkY7QUFBQTtBQUFBO0FBQUE7QUFBQSxlQWZGLGVBOEJFO0FBQUssaUJBQVMsRUFBQywwQkFBZjtBQUEwQyxVQUFFLEVBQUMsd0JBQTdDO0FBQUEsK0JBQ0U7QUFBSSxtQkFBUyxFQUFDLG9CQUFkO0FBQUEsa0NBQ0U7QUFBSSxxQkFBUyxFQUFDLFdBQWQ7QUFBQSxtQ0FDRSw4REFBQyxrREFBRDtBQUFNLGtCQUFJLEVBQUMsR0FBWDtBQUFBLHFDQUNFO0FBQU0seUJBQVMsRUFBQyxXQUFoQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLG1CQURGLGVBTUU7QUFBSSxxQkFBUyxFQUFDLFVBQWQ7QUFBQSxtQ0FDRSw4REFBQyxrREFBRDtBQUFNLGtCQUFJLFVBQVY7QUFBQSxxQ0FDRTtBQUFHLHlCQUFTLEVBQUMsVUFBYjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLG1CQU5GLGVBV0U7QUFBSSxxQkFBUyxFQUFDLFdBQWQ7QUFBQSxtQ0FDRSw4REFBQyxrREFBRDtBQUFNLGtCQUFJLGFBQVY7QUFBQSxxQ0FDRTtBQUFNLHlCQUFTLEVBQUMsVUFBaEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxtQkFYRixlQWdCRTtBQUFJLHFCQUFTLEVBQUMsV0FBZDtBQUFBLG1DQUNFLDhEQUFDLGtEQUFEO0FBQU0sa0JBQUksb0JBQVY7QUFBQSxxQ0FDRTtBQUFNLHlCQUFTLEVBQUMsV0FBaEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxtQkFoQkYsZUFxQkU7QUFBSSxxQkFBUyxFQUFDLFVBQWQ7QUFBQSxtQ0FDRSw4REFBQyxrREFBRDtBQUFNLGtCQUFJLDBCQUFWO0FBQUEscUNBQ0U7QUFBRyx5QkFBUyxFQUFDLFVBQWI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxtQkFyQkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxlQTlCRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFORjtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBREY7QUFxRUQsQ0F0RUQ7O0tBQU1DO0FBd0VOLCtEQUFlQSxNQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL05hdmJhci9uYXZiYXIuanN4PzdhZjAiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcclxuaW1wb3J0IGFwcERhdGEgZnJvbSBcIi4uLy4uL2RhdGEvYXBwLmpzb25cIjtcclxuaW1wb3J0IHsgaGFuZGxlRHJvcGRvd24sIGhhbmRsZU1vYmlsZURyb3Bkb3duIH0gZnJvbSBcIi4uLy4uL2NvbW1vbi9uYXZiYXJcIjtcclxuXHJcbmNvbnN0IE5hdmJhciA9ICh7IGxyLCBuciwgdGhlbWUgfSkgPT4ge1xyXG4gIHJldHVybiAoXHJcbiAgICA8bmF2XHJcbiAgICAgIHJlZj17bnJ9XHJcbiAgICAgIGNsYXNzTmFtZT17YG5hdmJhciBuYXZiYXItZXhwYW5kLWxnIGNoYW5nZSAke1xyXG4gICAgICAgIHRoZW1lID09PSBcInRoZW1lTFwiID8gXCJsaWdodFwiIDogXCJcIlxyXG4gICAgICB9YH1cclxuICAgID5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICA8TGluayBocmVmPVwiL1wiPlxyXG4gICAgICAgICAgPGEgY2xhc3NOYW1lPVwibG9nb1wiPlxyXG4gICAgICAgICAgICB7dGhlbWUgPyAoXHJcbiAgICAgICAgICAgICAgdGhlbWUgPT09IFwidGhlbWVMXCIgPyAoXHJcbiAgICAgICAgICAgICAgICA8aW1nIHJlZj17bHJ9IHNyYz17YXBwRGF0YS5kYXJrTG9nb30gYWx0PVwibG9nb1wiIC8+XHJcbiAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgIDxpbWcgcmVmPXtscn0gc3JjPXthcHBEYXRhLmxpZ2h0TG9nb30gYWx0PVwibG9nb1wiIC8+XHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgIDxpbWcgcmVmPXtscn0gc3JjPXthcHBEYXRhLmxpZ2h0TG9nb30gYWx0PVwibG9nb1wiIC8+XHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgPC9MaW5rPlxyXG5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICBjbGFzc05hbWU9XCJuYXZiYXItdG9nZ2xlclwiXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZU1vYmlsZURyb3Bkb3dufVxyXG4gICAgICAgICAgZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXHJcbiAgICAgICAgICBkYXRhLXRhcmdldD1cIiNuYXZiYXJTdXBwb3J0ZWRDb250ZW50XCJcclxuICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJuYXZiYXJTdXBwb3J0ZWRDb250ZW50XCJcclxuICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiXHJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiVG9nZ2xlIG5hdmlnYXRpb25cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24tYmFyXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhcyBmYS1iYXJzXCI+PC9pPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbGxhcHNlIG5hdmJhci1jb2xsYXBzZVwiIGlkPVwibmF2YmFyU3VwcG9ydGVkQ29udGVudFwiPlxyXG4gICAgICAgICAgPHVsIGNsYXNzTmFtZT1cIm5hdmJhci1uYXYgbWwtYXV0b1wiPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibmF2LWl0ZW0gXCI+XHJcbiAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9cIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm5hdi1saW5rIFwiPkhvbWU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibmF2LWl0ZW1cIj5cclxuICAgICAgICAgICAgICA8TGluayBocmVmPXtgL2Fib3V0YH0+XHJcbiAgICAgICAgICAgICAgICA8YSBjbGFzc05hbWU9XCJuYXYtbGlua1wiPldobyB3ZSBhcmU8L2E+XHJcbiAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibmF2LWl0ZW0gXCI+XHJcbiAgICAgICAgICAgICAgPExpbmsgaHJlZj17YC9zZXJ2aWNlc2B9PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibmF2LWxpbmtcIj5PdXIgU2VydmljZXM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibmF2LWl0ZW0gXCI+XHJcbiAgICAgICAgICAgICAgPExpbmsgaHJlZj17YC9ibG9nL2Jsb2ctbGlnaHRgfT5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm5hdi1saW5rIFwiPkJsb2c8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwibmF2LWl0ZW1cIj5cclxuICAgICAgICAgICAgICA8TGluayBocmVmPXtgL2NvbnRhY3QvY29udGFjdC1saWdodGB9PlxyXG4gICAgICAgICAgICAgICAgPGEgY2xhc3NOYW1lPVwibmF2LWxpbmtcIj5Db250YWN0PC9hPlxyXG4gICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uYXY+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IE5hdmJhcjtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiTGluayIsImFwcERhdGEiLCJoYW5kbGVEcm9wZG93biIsImhhbmRsZU1vYmlsZURyb3Bkb3duIiwiTmF2YmFyIiwibHIiLCJuciIsInRoZW1lIiwiZGFya0xvZ28iLCJsaWdodExvZ28iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/components/Navbar/navbar.jsx\n"); + +/***/ }), + +/***/ "./src/components/Pages-header/index.jsx": +/*!***********************************************!*\ + !*** ./src/components/Pages-header/index.jsx ***! + \***********************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Pages-header\\\\index.jsx\",\n _this = undefined;\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\nvar PagesHeader = function PagesHeader() {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"header\", {\n className: \"pages-header circle-bg valign\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"col-lg-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"cont mt-100 mb-50 text-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"h1\", {\n className: \"color-font fw-700\",\n children: \"Our dedicated team of creatives is bursting with talent, experience and passion for what we do.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"col-lg-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"img\", {\n src: \"/img/slid/about.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 7,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"half sub-bg\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"circle-color\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"gradient-circle\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"gradient-circle two\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 6,\n columnNumber: 5\n }, _this);\n};\n\n_c = PagesHeader;\n/* harmony default export */ __webpack_exports__[\"default\"] = (PagesHeader);\n\nvar _c;\n\n$RefreshReg$(_c, \"PagesHeader\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9QYWdlcy1oZWFkZXIvaW5kZXguanN4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBO0FBQ0E7OztBQUVBLElBQU1DLFdBQVcsR0FBRyxTQUFkQSxXQUFjLEdBQU07QUFDeEIsc0JBQ0U7QUFBUSxhQUFTLEVBQUMsK0JBQWxCO0FBQUEsNEJBQ0U7QUFBSyxlQUFTLEVBQUMsV0FBZjtBQUFBLDZCQUNFO0FBQUssaUJBQVMsRUFBQyw0QkFBZjtBQUFBLGdDQUNFO0FBQUssbUJBQVMsRUFBQyxXQUFmO0FBQUEsaUNBQ0U7QUFBSyxxQkFBUyxFQUFDLCtCQUFmO0FBQUEsbUNBQ0U7QUFBSSx1QkFBUyxFQUFDLG1CQUFkO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBREYsZUFTRTtBQUFLLG1CQUFTLEVBQUMsV0FBZjtBQUFBLGlDQUNFO0FBQUsscUJBQVMsRUFBQyxLQUFmO0FBQUEsbUNBQ0U7QUFBSyxpQkFBRyxFQUFDLHFCQUFUO0FBQStCLGlCQUFHLEVBQUM7QUFBbkM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQVRGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsYUFERixlQWtCRTtBQUFLLGVBQVMsRUFBQyxhQUFmO0FBQUEsNkJBQ0U7QUFBSyxpQkFBUyxFQUFDLGNBQWY7QUFBQSxnQ0FDRTtBQUFLLG1CQUFTLEVBQUM7QUFBZjtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQURGLGVBRUU7QUFBSyxtQkFBUyxFQUFDO0FBQWY7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFGRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBbEJGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxXQURGO0FBMkJELENBNUJEOztLQUFNQTtBQThCTiwrREFBZUEsV0FBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tcG9uZW50cy9QYWdlcy1oZWFkZXIvaW5kZXguanN4P2Q4NjYiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXHJcblxyXG5jb25zdCBQYWdlc0hlYWRlciA9ICgpID0+IHtcclxuICByZXR1cm4gKFxyXG4gICAgPGhlYWRlciBjbGFzc05hbWU9XCJwYWdlcy1oZWFkZXIgY2lyY2xlLWJnIHZhbGlnblwiPlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTEwXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udCBtdC0xMDAgbWItNTAgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8aDEgY2xhc3NOYW1lPVwiY29sb3ItZm9udCBmdy03MDBcIj5cclxuICAgICAgICAgICAgICAgIE91ciBkZWRpY2F0ZWQgdGVhbSBvZiBjcmVhdGl2ZXMgaXMgYnVyc3Rpbmcgd2l0aCB0YWxlbnQsXHJcbiAgICAgICAgICAgICAgICBleHBlcmllbmNlIGFuZCBwYXNzaW9uIGZvciB3aGF0IHdlIGRvLlxyXG4gICAgICAgICAgICAgIDwvaDE+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0xMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy9zbGlkL2Fib3V0LmpwZ1wiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImhhbGYgc3ViLWJnXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjaXJjbGUtY29sb3JcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JhZGllbnQtY2lyY2xlXCI+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyYWRpZW50LWNpcmNsZSB0d29cIj48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2hlYWRlcj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgUGFnZXNIZWFkZXI7Il0sIm5hbWVzIjpbIlJlYWN0IiwiUGFnZXNIZWFkZXIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/components/Pages-header/index.jsx\n"); + +/***/ }), + +/***/ "./src/components/Services5/services5.jsx": +/*!************************************************!*\ + !*** ./src/components/Services5/services5.jsx ***! + \************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _data_sections_features_json__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../data/sections/features.json */ \"./src/data/sections/features.json\");\n/* harmony import */ var _data_sections_features1_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../data/sections/features1.json */ \"./src/data/sections/features1.json\");\n/* harmony import */ var _data_sections_features2_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../data/sections/features2.json */ \"./src/data/sections/features2.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Services5\\\\services5.jsx\",\n _this = undefined;\n\n\n\n\n\n\n\nvar Services5 = function Services5() {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"section\", {\n className: \"services box lficon section-padding position-re\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Best Features\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: \"We are a new business establishment servicet agency\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h4\", {\n className: \"wow color-font\",\n children: \"Marketing and administrative services\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: _data_sections_features1_json__WEBPACK_IMPORTED_MODULE_2__.map(function (item, index) {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-6 wow fadeInLeft\",\n \"data-wow-delay\": index == 0 ? \".5s\" : index == 1 ? \".7s\" : index === 2 ? \".9s\" : \".5s\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item-box no-curve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"icon color-font \".concat(item.icon)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n children: item.title\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"p\", {\n children: item.content\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 44,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 15\n }, _this)\n }, item.id, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 13\n }, _this);\n })\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: _data_sections_features_json__WEBPACK_IMPORTED_MODULE_1__.map(function (item, index) {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-6 wow fadeInLeft\",\n \"data-wow-delay\": index == 0 ? \".5s\" : index == 1 ? \".7s\" : index === 2 ? \".9s\" : \".5s\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item-box no-curve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"icon color-font \".concat(item.icon)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n children: item.title\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"p\", {\n children: item.content\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 15\n }, _this)\n }, item.id, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 13\n }, _this);\n })\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h4\", {\n className: \"wow color-font mt-3\",\n children: \"Consulting services\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: _data_sections_features2_json__WEBPACK_IMPORTED_MODULE_3__.map(function (item, index) {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-6 wow fadeInLeft\",\n \"data-wow-delay\": index == 0 ? \".5s\" : index == 1 ? \".7s\" : index === 2 ? \".9s\" : \".5s\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item-box no-curve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"icon color-font \".concat(item.icon)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n children: item.title\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 100,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"p\", {\n children: item.content\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 101,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 99,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 15\n }, _this)\n }, item.id, false, {\n fileName: _jsxFileName,\n lineNumber: 82,\n columnNumber: 13\n }, _this);\n })\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 9\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"line bottom right\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 108,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 5\n }, _this);\n};\n\n_c = Services5;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Services5);\n\nvar _c;\n\n$RefreshReg$(_c, \"Services5\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9TZXJ2aWNlczUvc2VydmljZXM1LmpzeC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsSUFBTUksU0FBUyxHQUFHLFNBQVpBLFNBQVksR0FBTTtBQUN0QixzQkFDRTtBQUFTLGFBQVMsRUFBQyxpREFBbkI7QUFBQSw0QkFDRTtBQUFLLGVBQVMsRUFBQyxXQUFmO0FBQUEsOEJBQ0U7QUFBSyxpQkFBUyxFQUFDLDRCQUFmO0FBQUEsK0JBQ0U7QUFBSyxtQkFBUyxFQUFDLG9CQUFmO0FBQUEsaUNBQ0U7QUFBSyxxQkFBUyxFQUFDLHVCQUFmO0FBQUEsb0NBQ0U7QUFBSSx1QkFBUyxFQUFDLFlBQWQ7QUFBMkIsZ0NBQWUsS0FBMUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBREYsZUFJRTtBQUFJLHVCQUFTLEVBQUMsZ0JBQWQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBSkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFERixlQWFFO0FBQUksaUJBQVMsRUFBQyxnQkFBZDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxlQWJGLGVBZ0JFO0FBQUssaUJBQVMsRUFBQyxLQUFmO0FBQUEsa0JBQ0dGLDhEQUFBLENBQWtCLFVBQUNJLElBQUQsRUFBT0MsS0FBUDtBQUFBLDhCQUNqQjtBQUNFLHFCQUFTLEVBQUMseUJBRFo7QUFFRSw4QkFDRUEsS0FBSyxJQUFJLENBQVQsR0FDSSxLQURKLEdBRUlBLEtBQUssSUFBSSxDQUFULEdBQ0EsS0FEQSxHQUVBQSxLQUFLLEtBQUssQ0FBVixHQUNBLEtBREEsR0FFQSxLQVRSO0FBQUEsbUNBYUU7QUFBSyx1QkFBUyxFQUFDLG1CQUFmO0FBQUEsc0NBQ0U7QUFBQSx1Q0FDRTtBQUFNLDJCQUFTLDRCQUFxQkQsSUFBSSxD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QUFLLGVBQVMsRUFBQztBQUFmO0FBQUE7QUFBQTtBQUFBO0FBQUEsYUFwR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBREY7QUF3R0QsQ0F6R0Q7O0tBQU1QO0FBMkdOLCtEQUFlQSxTQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL1NlcnZpY2VzNS9zZXJ2aWNlczUuanN4PzdmM2MiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgZmVhdHVyZXNEYXRhMiBmcm9tIFwiLi4vLi4vZGF0YS9zZWN0aW9ucy9mZWF0dXJlcy5qc29uXCI7XHJcbmltcG9ydCBmZWF0dXJlc0RhdGExIGZyb20gXCIuLi8uLi9kYXRhL3NlY3Rpb25zL2ZlYXR1cmVzMS5qc29uXCI7XHJcbmltcG9ydCBmZWF0dXJlc0RhdGEzIGZyb20gXCIuLi8uLi9kYXRhL3NlY3Rpb25zL2ZlYXR1cmVzMi5qc29uXCI7XHJcblxyXG5jb25zdCBTZXJ2aWNlczUgPSAoKSA9PiB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInNlcnZpY2VzIGJveCBsZmljb24gc2VjdGlvbi1wYWRkaW5nIHBvc2l0aW9uLXJlXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOCBjb2wtbWQtMTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWMtaGVhZCAgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8aDYgY2xhc3NOYW1lPVwid293IGZhZGVJblwiIGRhdGEtd293LWRlbGF5PVwiLjVzXCI+XHJcbiAgICAgICAgICAgICAgICBCZXN0IEZlYXR1cmVzXHJcbiAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwid293IGNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgIFdlIGFyZSBhIG5ldyBidXNpbmVzcyBlc3RhYmxpc2htZW50IHNlcnZpY2V0IGFnZW5jeVxyXG4gICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGg0IGNsYXNzTmFtZT1cIndvdyBjb2xvci1mb250XCI+XHJcbiAgICAgICAgICBNYXJrZXRpbmcgYW5kIGFkbWluaXN0cmF0aXZlIHNlcnZpY2VzXHJcbiAgICAgICAgPC9oND5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAge2ZlYXR1cmVzRGF0YTEubWFwKChpdGVtLCBpbmRleCkgPT4gKFxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiY29sLWxnLTYgd293IGZhZGVJbkxlZnRcIlxyXG4gICAgICAgICAgICAgIGRhdGEtd293LWRlbGF5PXtcclxuICAgICAgICAgICAgICAgIGluZGV4ID09IDBcclxuICAgICAgICAgICAgICAgICAgPyBcIi41c1wiXHJcbiAgICAgICAgICAgICAgICAgIDogaW5kZXggPT0gMVxyXG4gICAgICAgICAgICAgICAgICA/IFwiLjdzXCJcclxuICAgICAgICAgICAgICAgICAgOiBpbmRleCA9PT0gMlxyXG4gICAgICAgICAgICAgICAgICA/IFwiLjlzXCJcclxuICAgICAgICAgICAgICAgICAgOiBcIi41c1wiXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGtleT17aXRlbS5pZH1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1ib3ggbm8tY3VydmVcIj5cclxuICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17YGljb24gY29sb3ItZm9udCAke2l0ZW0uaWNvbn1gfT48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aDY+e2l0ZW0udGl0bGV9PC9oNj5cclxuICAgICAgICAgICAgICAgICAgPHA+e2l0ZW0uY29udGVudH08L3A+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApKX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAge2ZlYXR1cmVzRGF0YTIubWFwKChpdGVtLCBpbmRleCkgPT4gKFxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiY29sLWxnLTYgd293IGZhZGVJbkxlZnRcIlxyXG4gICAgICAgICAgICAgIGRhdGEtd293LWRlbGF5PXtcclxuICAgICAgICAgICAgICAgIGluZGV4ID09IDBcclxuICAgICAgICAgICAgICAgICAgPyBcIi41c1wiXHJcbiAgICAgICAgICAgICAgICAgIDogaW5kZXggPT0gMVxyXG4gICAgICAgICAgICAgICAgICA/IFwiLjdzXCJcclxuICAgICAgICAgICAgICAgICAgOiBpbmRleCA9PT0gMlxyXG4gICAgICAgICAgICAgICAgICA/IFwiLjlzXCJcclxuICAgICAgICAgICAgICAgICAgOiBcIi41c1wiXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGtleT17aXRlbS5pZH1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1ib3ggbm8tY3VydmVcIj5cclxuICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17YGljb24gY29sb3ItZm9udCAke2l0ZW0uaWNvbn1gfT48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aDY+e2l0ZW0udGl0bGV9PC9oNj5cclxuICAgICAgICAgICAgICAgICAgPHA+e2l0ZW0uY29udGVudH08L3A+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApKX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8aDQgY2xhc3NOYW1lPVwid293IGNvbG9yLWZvbnQgbXQtM1wiPkNvbnN1bHRpbmcgc2VydmljZXM8L2g0PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICB7ZmVhdHVyZXNEYXRhMy5tYXAoKGl0ZW0sIGluZGV4KSA9PiAoXHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJjb2wtbGctNiB3b3cgZmFkZUluTGVmdFwiXHJcbiAgICAgICAgICAgICAgZGF0YS13b3ctZGVsYXk9e1xyXG4gICAgICAgICAgICAgICAgaW5kZXggPT0gMFxyXG4gICAgICAgICAgICAgICAgICA/IFwiLjVzXCJcclxuICAgICAgICAgICAgICAgICAgOiBpbmRleCA9PSAxXHJcbiAgICAgICAgICAgICAgICAgID8gXCIuN3NcIlxyXG4gICAgICAgICAgICAgICAgICA6IGluZGV4ID09PSAyXHJcbiAgICAgICAgICAgICAgICAgID8gXCIuOXNcIlxyXG4gICAgICAgICAgICAgICAgICA6IFwiLjVzXCJcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAga2V5PXtpdGVtLmlkfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWJveCBuby1jdXJ2ZVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtgaWNvbiBjb2xvci1mb250ICR7aXRlbS5pY29ufWB9Pjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxoNj57aXRlbS50aXRsZX08L2g2PlxyXG4gICAgICAgICAgICAgICAgICA8cD57aXRlbS5jb250ZW50fTwvcD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICkpfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJsaW5lIGJvdHRvbSByaWdodFwiPjwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBTZXJ2aWNlczU7XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsImZlYXR1cmVzRGF0YTIiLCJmZWF0dXJlc0RhdGExIiwiZmVhdHVyZXNEYXRhMyIsIlNlcnZpY2VzNSIsIm1hcCIsIml0ZW0iLCJpbmRleCIsImljb24iLCJ0aXRsZSIsImNvbnRlbnQiLCJpZCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Services5/services5.jsx\n"); + +/***/ }), + +/***/ "./src/components/Services/services.jsx": +/*!**********************************************!*\ + !*** ./src/components/Services/services.jsx ***! + \**********************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _data_sections_features_json__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../data/sections/features.json */ \"./src/data/sections/features.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Services\\\\services.jsx\",\n _this = undefined;\n\n\n\n\n\n\nvar Services = function Services(_ref) {\n var style = _ref.style,\n lines = _ref.lines;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"section\", {\n className: \"services bords section-padding \".concat(style === \"4item\" ? \"lficon\" : lines ? \"\" : \"pt-0\"),\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"container\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Best Features\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: \"We are a new digital product development agency\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"row\",\n children: style === \"4item\" ? _data_sections_features_json__WEBPACK_IMPORTED_MODULE_1__.map(function (feature) {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"col-lg-6 wow fadeInLeft\",\n \"data-wow-delay\": \"\".concat(feature.id == 1 ? \".5\" : feature.id === 2 ? \".7\" : feature.id === 3 ? \".9\" : \"1.1\", \"s\"),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"item-box\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"span\", {\n className: \"icon \".concat(feature.icon)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"h6\", {\n children: feature.title\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"p\", {\n children: feature.content\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 23\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 44,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 19\n }, _this)\n }, feature.id, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 17\n }, _this);\n }) : // max item 3 in Home page\n _data_sections_features_json__WEBPACK_IMPORTED_MODULE_1__.slice(0, 3).map(function (feature) {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"col-lg-4 wow fadeInLeft\",\n \"data-wow-delay\": \".5s\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"item-box md-mb50\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"span\", {\n className: \"icon \".concat(feature.icon)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 59,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"h6\", {\n children: feature.title\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 60,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"p\", {\n children: feature.content\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 61,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 19\n }, _this)\n }, feature.id, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 17\n }, _this);\n })\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 9\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 7\n }, _this), lines ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"line top left\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"line bottom right\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 11\n }, _this)]\n }, void 0, true) : null]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 6,\n columnNumber: 5\n }, _this);\n};\n\n_c = Services;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Services);\n\nvar _c;\n\n$RefreshReg$(_c, \"Services\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9TZXJ2aWNlcy9zZXJ2aWNlcy5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBO0FBQ0E7Ozs7QUFFQSxJQUFNRSxRQUFRLEdBQUcsU0FBWEEsUUFBVyxPQUFzQjtBQUFBLE1BQW5CQyxLQUFtQixRQUFuQkEsS0FBbUI7QUFBQSxNQUFaQyxLQUFZLFFBQVpBLEtBQVk7QUFDckMsc0JBQ0U7QUFDRSxhQUFTLDJDQUNQRCxLQUFLLEtBQUssT0FBVixHQUFvQixRQUFwQixHQUErQkMsS0FBSyxHQUFHLEVBQUgsR0FBUSxNQURyQyxDQURYO0FBQUEsNEJBS0U7QUFBSyxlQUFTLEVBQUMsV0FBZjtBQUFBLDhCQUNFO0FBQUssaUJBQVMsRUFBQyw0QkFBZjtBQUFBLCtCQUNFO0FBQUssbUJBQVMsRUFBQyxvQkFBZjtBQUFBLGlDQUNFO0FBQUsscUJBQVMsRUFBQyx1QkFBZjtBQUFBLG9DQUNFO0FBQUksdUJBQVMsRUFBQyxZQUFkO0FBQTJCLGdDQUFlLEtBQTFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQURGLGVBSUU7QUFBSSx1QkFBUyxFQUFDLGdCQUFkO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQUpGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGVBREYsZUFhRTtBQUFLLGlCQUFTLEVBQUMsS0FBZjtBQUFBLGtCQUNHRCxLQUFLLEtBQUssT0FBVixHQUNHRiw2REFBQSxDQUFpQixVQUFDSyxPQUFEO0FBQUEsOEJBQ2Y7QUFFRSxxQkFBUyxFQUFDLHlCQUZaO0FBR0Usd0NBQ0VBLE9BQU8sQ0FBQ0MsRUFBUixJQUFjLENBQWQsR0FDSSxJQURKLEdBRUlELE9BQU8sQ0FBQ0MsRUFBUixLQUFlLENBQWYsR0FDQSxJQURBLEdBRUFELE9BQU8sQ0FBQ0MsRUFBUixLQUFlLENBQWYsR0FDQSxJQURBLEdBRUEsS0FQTixNQUhGO0FBQUEsbUNBYUU7QUFBSyx1QkFBUyxFQUFDLFVBQWY7QUFBQSxzQ0FDRTtBQUFBLHVDQUNFO0FBQU0sMkJBQVMsaUJBQVVELE9BQU8sQ0FBQ0UsSUFBbEI7QUFBZjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFERixlQUlFO0FBQUsseUJBQVMsRUFBQyxNQUFmO0FBQUEsd0NBQ0U7QUFBQSw0QkFBS0YsT0FBTyxDQUFDRztBQUFiO0FBQUE7QUFBQTtBQUFBO0FBQUEseUJBREYsZUFFRTtBQUFBLDRCQUFJSCxPQUFPLENBQUNJO0FBQVo7QUFBQTtBQUFBO0FBQUE7QUFBQSx5QkFGRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBSkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBYkYsYUFDT0osT0FBTyxDQUFDQyxFQURmO0FBQUE7QUFBQTtBQUFBO0FBQUEsbUJBRGU7QUFBQSxTQUFqQixDQURILEdBMEJHO0FBQ0FOLFFBQUFBLCtEQUFBLENBQW1CLENBQW5CLEVBQXNCLENBQXRCLEVBQXlCSSxHQUF6QixDQUE2QixVQUFDQyxPQUFEO0FBQUEsOEJBQzNCO0FBRUUscUJBQVMsRUFBQyx5QkFGWjtBQUdFLDhCQUFlLEtBSGpCO0FBQUEsbUNBS0U7QUFBSyx1QkFBUyxFQUFDLGtCQUFmO0FBQUEsc0NBQ0U7QUFBTSx5QkFBUyxpQkFBVUEsT0FBTyxDQUFDRSxJQUFsQjtBQUFmO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBREYsZUFFRTtBQUFBLDBCQUFLRixPQUFPLENBQUNHO0FBQWI7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFGRixlQUdFO0FBQUEsMEJBQUlILE9BQU8sQ0FBQ0k7QUFBWjtBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQUhGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUxGLGFBQ09KLE9BQU8sQ0FBQ0MsRUFEZjtBQUFBO0FBQUE7QUFBQTtBQUFBLG1CQUQyQjtBQUFBLFNBQTdCO0FBNUJOO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFiRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsYUFMRixFQTZER0gsS0FBSyxnQkFDSjtBQUFBLDhCQUNFO0FBQUssaUJBQVMsRUFBQztBQUFmO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFERixlQUVFO0FBQUssaUJBQVMsRUFBQztBQUFmO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFGRjtBQUFBLG9CQURJLEdBS0YsSUFsRU47QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBREY7QUFzRUQsQ0F2RUQ7O0tBQU1GO0FBeUVOLCtEQUFlQSxRQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL1NlcnZpY2VzL3NlcnZpY2VzLmpzeD8yZWU0Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IGZlYXR1cmVzRGF0YSBmcm9tIFwiLi4vLi4vZGF0YS9zZWN0aW9ucy9mZWF0dXJlcy5qc29uXCI7XHJcblxyXG5jb25zdCBTZXJ2aWNlcyA9ICh7IHN0eWxlLCBsaW5lcyB9KSA9PiB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uXHJcbiAgICAgIGNsYXNzTmFtZT17YHNlcnZpY2VzIGJvcmRzIHNlY3Rpb24tcGFkZGluZyAke1xyXG4gICAgICAgIHN0eWxlID09PSBcIjRpdGVtXCIgPyBcImxmaWNvblwiIDogbGluZXMgPyBcIlwiIDogXCJwdC0wXCJcclxuICAgICAgfWB9XHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOCBjb2wtbWQtMTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWMtaGVhZCAgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8aDYgY2xhc3NOYW1lPVwid293IGZhZGVJblwiIGRhdGEtd293LWRlbGF5PVwiLjVzXCI+XHJcbiAgICAgICAgICAgICAgICBCZXN0IEZlYXR1cmVzXHJcbiAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwid293IGNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgIFdlIGFyZSBhIG5ldyBkaWdpdGFsIHByb2R1Y3QgZGV2ZWxvcG1lbnQgYWdlbmN5XHJcbiAgICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAge3N0eWxlID09PSBcIjRpdGVtXCJcclxuICAgICAgICAgICAgPyBmZWF0dXJlc0RhdGEubWFwKChmZWF0dXJlKSA9PiAoXHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgIGtleT17ZmVhdHVyZS5pZH1cclxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiY29sLWxnLTYgd293IGZhZGVJbkxlZnRcIlxyXG4gICAgICAgICAgICAgICAgICBkYXRhLXdvdy1kZWxheT17YCR7XHJcbiAgICAgICAgICAgICAgICAgICAgZmVhdHVyZS5pZCA9PSAxXHJcbiAgICAgICAgICAgICAgICAgICAgICA/IFwiLjVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgOiBmZWF0dXJlLmlkID09PSAyXHJcbiAgICAgICAgICAgICAgICAgICAgICA/IFwiLjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgOiBmZWF0dXJlLmlkID09PSAzXHJcbiAgICAgICAgICAgICAgICAgICAgICA/IFwiLjlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgOiBcIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgIH1zYH1cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWJveFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2BpY29uICR7ZmVhdHVyZS5pY29ufWB9Pjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxoNj57ZmVhdHVyZS50aXRsZX08L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHA+e2ZlYXR1cmUuY29udGVudH08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgKSlcclxuICAgICAgICAgICAgOiAvLyBtYXggaXRlbSAzIGluIEhvbWUgcGFnZVxyXG4gICAgICAgICAgICAgIGZlYXR1cmVzRGF0YS5zbGljZSgwLCAzKS5tYXAoKGZlYXR1cmUpID0+IChcclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAga2V5PXtmZWF0dXJlLmlkfVxyXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJjb2wtbGctNCB3b3cgZmFkZUluTGVmdFwiXHJcbiAgICAgICAgICAgICAgICAgIGRhdGEtd293LWRlbGF5PVwiLjVzXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWJveCBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtgaWNvbiAke2ZlYXR1cmUuaWNvbn1gfT48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg2PntmZWF0dXJlLnRpdGxlfTwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+e2ZlYXR1cmUuY29udGVudH08L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgKSl9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICB7bGluZXMgPyAoXHJcbiAgICAgICAgPD5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGluZSB0b3AgbGVmdFwiPjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsaW5lIGJvdHRvbSByaWdodFwiPjwvZGl2PlxyXG4gICAgICAgIDwvPlxyXG4gICAgICApIDogbnVsbH1cclxuICAgIDwvc2VjdGlvbj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgU2VydmljZXM7XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsImZlYXR1cmVzRGF0YSIsIlNlcnZpY2VzIiwic3R5bGUiLCJsaW5lcyIsIm1hcCIsImZlYXR1cmUiLCJpZCIsImljb24iLCJ0aXRsZSIsImNvbnRlbnQiLCJzbGljZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Services/services.jsx\n"); + +/***/ }), + +/***/ "./src/components/Skills-circle/skills-circle.jsx": +/*!********************************************************!*\ + !*** ./src/components/Skills-circle/skills-circle.jsx ***! + \********************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_circular_progressbar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-circular-progressbar */ \"./node_modules/react-circular-progressbar/dist/index.esm.js\");\n/* harmony import */ var react_circular_progressbar_dist_styles_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-circular-progressbar/dist/styles.css */ \"./node_modules/react-circular-progressbar/dist/styles.css\");\n/* harmony import */ var react_circular_progressbar_dist_styles_css__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_circular_progressbar_dist_styles_css__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Skills-circle\\\\skills-circle.jsx\",\n _this = undefined;\n\n\n\n\n\n\nvar SkillsCircle = function SkillsCircle(_ref) {\n var from = _ref.from,\n theme = _ref.theme;\n var cpStyle = {\n path: {\n stroke: \"rgb(18, 194, 233)\"\n },\n trail: {\n stroke: theme ? theme == \"dark\" ? \"#0f1013\" : \"#e5e5e5\" : \"\"\n },\n text: {\n fill: theme ? theme == \"dark\" ? \"#ffffff\" : \"#4e4e4e\" : \"\",\n // Text size\n fontSize: \"16px\"\n }\n };\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"section\", {\n className: \"skills-circle pt-50 pb-50 \".concat(from ? from === \"aboutPage\" ? \"sub-bg\" : \"\" : \"\"),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-7\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item wow fadeInLeft\",\n \"data-wow-delay\": \".6\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"skill\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(react_circular_progressbar__WEBPACK_IMPORTED_MODULE_1__.CircularProgressbar, {\n value: 90,\n strokeWidth: 2,\n text: \"\".concat(90, \"%\"),\n styles: cpStyle\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: \"Project\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Consulting\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 23\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item wow fadeInLeft\",\n \"data-wow-delay\": \".3\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"skill\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(react_circular_progressbar__WEBPACK_IMPORTED_MODULE_1__.CircularProgressbar, {\n value: 75,\n strokeWidth: 2,\n text: \"\".concat(75, \"%\"),\n styles: cpStyle\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: \"App\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Development\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 23\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 5\n }, _this);\n};\n\n_c = SkillsCircle;\n/* harmony default export */ __webpack_exports__[\"default\"] = (SkillsCircle);\n\nvar _c;\n\n$RefreshReg$(_c, \"SkillsCircle\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9Ta2lsbHMtY2lyY2xlL3NraWxscy1jaXJjbGUuanN4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTs7O0FBRUEsSUFBTUcsWUFBWSxHQUFHLFNBQWZBLFlBQWUsT0FBcUI7QUFBQSxNQUFsQkMsSUFBa0IsUUFBbEJBLElBQWtCO0FBQUEsTUFBWkMsS0FBWSxRQUFaQSxLQUFZO0FBQ3hDLE1BQU1DLE9BQU8sR0FBRztBQUNkQyxJQUFBQSxJQUFJLEVBQUU7QUFDSkMsTUFBQUEsTUFBTSxFQUFFO0FBREosS0FEUTtBQUlkQyxJQUFBQSxLQUFLLEVBQUU7QUFDTEQsTUFBQUEsTUFBTSxFQUFFSCxLQUFLLEdBQUlBLEtBQUssSUFBSSxNQUFULEdBQWtCLFNBQWxCLEdBQThCLFNBQWxDLEdBQStDO0FBRHZELEtBSk87QUFPZEssSUFBQUEsSUFBSSxFQUFFO0FBQ0pDLE1BQUFBLElBQUksRUFBRU4sS0FBSyxHQUFJQSxLQUFLLElBQUksTUFBVCxHQUFrQixTQUFsQixHQUE4QixTQUFsQyxHQUErQyxFQUR0RDtBQUVKO0FBQ0FPLE1BQUFBLFFBQVEsRUFBRTtBQUhOO0FBUFEsR0FBaEI7QUFhQSxzQkFDRTtBQUNFLGFBQVMsc0NBQ1BSLElBQUksR0FBSUEsSUFBSSxLQUFLLFdBQVQsR0FBdUIsUUFBdkIsR0FBa0MsRUFBdEMsR0FBNEMsRUFEekMsQ0FEWDtBQUFBLDJCQUtFO0FBQUssZUFBUyxFQUFDLFdBQWY7QUFBQSw2QkFDRTtBQUFLLGlCQUFTLEVBQUMsS0FBZjtBQUFBLCtCQUNFO0FBQUssbUJBQVMsRUFBQyxVQUFmO0FBQUEsaUNBQ0U7QUFBSyxxQkFBUyxFQUFDLEVBQWY7QUFBQSxtQ0FDRTtBQUFLLHVCQUFTLEVBQUMsS0FBZjtBQUFBLHNDQUNFO0FBQUsseUJBQVMsRUFBQyxVQUFmO0FBQUEsdUNBQ0U7QUFBSywyQkFBUyxFQUFDLHFCQUFmO0FBQXFDLG9DQUFlLElBQXBEO0FBQUEsMENBQ0U7QUFBSyw2QkFBUyxFQUFDLE9BQWY7QUFBQSwyQ0FDRSw4REFBQywyRUFBRDtBQUNFLDJCQUFLLEVBQUUsRUFEVDtBQUVFLGlDQUFXLEVBQUUsQ0FGZjtBQUdFLDBCQUFJLFlBQUssRUFBTCxNQUhOO0FBSUUsNEJBQU0sRUFBRUU7QUFKVjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSwyQkFERixlQVNFO0FBQUssNkJBQVMsRUFBQyxNQUFmO0FBQUEsNENBQ0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsNkJBREYsZUFFRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSw2QkFGRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBVEY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFERixlQWlCRTtBQUFLLHlCQUFTLEVBQUMsVUFBZjtBQUFBLHVDQUNFO0FBQUssMkJBQVMsRUFBQyxxQkFBZjtBQUFxQyxvQ0FBZSxJQUFwRDtBQUFBLDBDQUNFO0FBQUssNkJBQVMsRUFBQyxPQUFmO0FBQUEsMkNBQ0UsOERBQUMsMkVBQUQ7QUFDRSwyQkFBSyxFQUFFLEVBRFQ7QUFFRSxpQ0FBVyxFQUFFLENBRmY7QUFHRSwwQkFBSSxZQUFLLEVBQUwsTUFITjtBQUlFLDRCQUFNLEVBQUVBO0FBSlY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBREYsZUFTRTtBQUFLLDZCQUFTLEVBQUMsTUFBZjtBQUFBLDRDQUNFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLDZCQURGLGVBRUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsNkJBRkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLDJCQVRGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBakJGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFMRjtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBREY7QUFrREQsQ0FoRUQ7O0tBQU1IO0FBa0VOLCtEQUFlQSxZQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL1NraWxscy1jaXJjbGUvc2tpbGxzLWNpcmNsZS5qc3g/N2NlYSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IENpcmN1bGFyUHJvZ3Jlc3NiYXIsIGJ1aWxkU3R5bGVzIH0gZnJvbSBcInJlYWN0LWNpcmN1bGFyLXByb2dyZXNzYmFyXCI7XHJcbmltcG9ydCBcInJlYWN0LWNpcmN1bGFyLXByb2dyZXNzYmFyL2Rpc3Qvc3R5bGVzLmNzc1wiO1xyXG5cclxuY29uc3QgU2tpbGxzQ2lyY2xlID0gKHsgZnJvbSwgdGhlbWUgfSkgPT4ge1xyXG4gIGNvbnN0IGNwU3R5bGUgPSB7XHJcbiAgICBwYXRoOiB7XHJcbiAgICAgIHN0cm9rZTogXCJyZ2IoMTgsIDE5NCwgMjMzKVwiLFxyXG4gICAgfSxcclxuICAgIHRyYWlsOiB7XHJcbiAgICAgIHN0cm9rZTogdGhlbWUgPyAodGhlbWUgPT0gXCJkYXJrXCIgPyBcIiMwZjEwMTNcIiA6IFwiI2U1ZTVlNVwiKSA6IFwiXCIsXHJcbiAgICB9LFxyXG4gICAgdGV4dDoge1xyXG4gICAgICBmaWxsOiB0aGVtZSA/ICh0aGVtZSA9PSBcImRhcmtcIiA/IFwiI2ZmZmZmZlwiIDogXCIjNGU0ZTRlXCIpIDogXCJcIixcclxuICAgICAgLy8gVGV4dCBzaXplXHJcbiAgICAgIGZvbnRTaXplOiBcIjE2cHhcIixcclxuICAgIH0sXHJcbiAgfTtcclxuICByZXR1cm4gKFxyXG4gICAgPHNlY3Rpb25cclxuICAgICAgY2xhc3NOYW1lPXtgc2tpbGxzLWNpcmNsZSBwdC01MCBwYi01MCAke1xyXG4gICAgICAgIGZyb20gPyAoZnJvbSA9PT0gXCJhYm91dFBhZ2VcIiA/IFwic3ViLWJnXCIgOiBcIlwiKSA6IFwiXCJcclxuICAgICAgfWB9XHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTdcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gd293IGZhZGVJbkxlZnRcIiBkYXRhLXdvdy1kZWxheT1cIi42XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJza2lsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPENpcmN1bGFyUHJvZ3Jlc3NiYXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9ezkwfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD17Mn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dD17YCR7OTB9JWB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlcz17Y3BTdHlsZX1cclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5Qcm9qZWN0PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGg2PkNvbnN1bHRpbmc8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gd293IGZhZGVJbkxlZnRcIiBkYXRhLXdvdy1kZWxheT1cIi4zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJza2lsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPENpcmN1bGFyUHJvZ3Jlc3NiYXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9ezc1fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD17Mn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dD17YCR7NzV9JWB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlcz17Y3BTdHlsZX1cclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5BcHA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aDY+RGV2ZWxvcG1lbnQ8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvc2VjdGlvbj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgU2tpbGxzQ2lyY2xlO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJDaXJjdWxhclByb2dyZXNzYmFyIiwiYnVpbGRTdHlsZXMiLCJTa2lsbHNDaXJjbGUiLCJmcm9tIiwidGhlbWUiLCJjcFN0eWxlIiwicGF0aCIsInN0cm9rZSIsInRyYWlsIiwidGV4dCIsImZpbGwiLCJmb250U2l6ZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Skills-circle/skills-circle.jsx\n"); + +/***/ }), + +/***/ "./src/components/Split/index.jsx": +/*!****************************************!*\ + !*** ./src/components/Split/index.jsx ***! + \****************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/classCallCheck */ \"./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/createClass */ \"./node_modules/@babel/runtime/helpers/esm/createClass.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized */ \"./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/inherits */ \"./node_modules/@babel/runtime/helpers/esm/inherits.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn */ \"./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf */ \"./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__);\n/* module decorator */ module = __webpack_require__.hmd(module);\n\n\n\n\n\n\n\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Split\\\\index.jsx\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\n\n\n\nvar Split = /*#__PURE__*/function (_React$Component) {\n (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(Split, _React$Component);\n\n var _super = _createSuper(Split);\n\n function Split() {\n var _this;\n\n (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, Split);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_6__[\"default\"])((0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_this), \"target\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createRef());\n\n (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_6__[\"default\"])((0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_this), \"split\", function () {\n if (_this.target.current) {\n Splitting({\n target: _this.target.current\n });\n }\n });\n\n (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_6__[\"default\"])((0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_this), \"componentDidMount\", _this.split);\n\n (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_6__[\"default\"])((0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_this), \"componentDidUpdate\", _this.split);\n\n return _this;\n }\n\n (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Split, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n ref: this.target,\n children: this.props.children\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 12\n }, this);\n }\n }]);\n\n return Split;\n}((react__WEBPACK_IMPORTED_MODULE_7___default().Component));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Split);\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9TcGxpdC9pbmRleC5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7O0lBRU1DOzs7Ozs7Ozs7Ozs7Ozs7OzhTQUNLRCxzREFBQTs7Z1NBRUQsWUFBTTtBQUNaLFVBQUksTUFBS0csTUFBTCxDQUFZQyxPQUFoQixFQUF5QjtBQUN2QkMsUUFBQUEsU0FBUyxDQUFDO0FBQUVGLFVBQUFBLE1BQU0sRUFBRSxNQUFLQSxNQUFMLENBQVlDO0FBQXRCLFNBQUQsQ0FBVDtBQUNEO0FBQ0Y7OzRTQUVtQixNQUFLRTs7NlNBQ0osTUFBS0E7Ozs7Ozs7V0FFMUIsa0JBQVM7QUFDUCwwQkFBTztBQUFLLFdBQUcsRUFBRSxLQUFLSCxNQUFmO0FBQUEsa0JBQXdCLEtBQUtJLEtBQUwsQ0FBV0M7QUFBbkM7QUFBQTtBQUFBO0FBQUE7QUFBQSxjQUFQO0FBQ0Q7Ozs7RUFkaUJSOztBQWlCcEIsK0RBQWVDLEtBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbXBvbmVudHMvU3BsaXQvaW5kZXguanN4Pzg3MTAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5cclxuY2xhc3MgU3BsaXQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG4gIHRhcmdldCA9IFJlYWN0LmNyZWF0ZVJlZigpO1xyXG5cclxuICBzcGxpdCA9ICgpID0+IHtcclxuICAgIGlmICh0aGlzLnRhcmdldC5jdXJyZW50KSB7XHJcbiAgICAgIFNwbGl0dGluZyh7IHRhcmdldDogdGhpcy50YXJnZXQuY3VycmVudCB9KTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICBjb21wb25lbnREaWRNb3VudCA9IHRoaXMuc3BsaXQ7XHJcbiAgY29tcG9uZW50RGlkVXBkYXRlID0gdGhpcy5zcGxpdDtcclxuXHJcbiAgcmVuZGVyKCkge1xyXG4gICAgcmV0dXJuIDxkaXYgcmVmPXt0aGlzLnRhcmdldH0+e3RoaXMucHJvcHMuY2hpbGRyZW59PC9kaXY+O1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgU3BsaXQ7XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIlNwbGl0IiwiY3JlYXRlUmVmIiwidGFyZ2V0IiwiY3VycmVudCIsIlNwbGl0dGluZyIsInNwbGl0IiwicHJvcHMiLCJjaGlsZHJlbiIsIkNvbXBvbmVudCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Split/index.jsx\n"); + +/***/ }), + +/***/ "./src/components/Team/team.jsx": +/*!**************************************!*\ + !*** ./src/components/Team/team.jsx ***! + \**************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/teamSkillsProgress */ \"./src/common/teamSkillsProgress.js\");\n/* harmony import */ var _common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/tooltipEffect */ \"./src/common/tooltipEffect.js\");\n/* harmony import */ var _data_sections_team_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../data/sections/team.json */ \"./src/data/sections/team.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Team\\\\team.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nvar Team = function Team() {\n _s();\n\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n (0,_common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n setTimeout(function () {\n (0,_common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__[\"default\"])();\n }, 1000);\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"team-crv section-padding\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-5 valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"content wow fadeInUp md-mb30\",\n \"data-wow-delay\": \".5s\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"sub-title\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n children: \"Our Staff\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h3\", {\n className: \"co-tit mb-15\",\n children: \"We help to create visual strategies.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"p\", {\n children: \"We are Business Hub. We create award-winning websites, remarkable brands and cutting-edge apps.Nullam imperdie.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-6 offset-lg-1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img-box\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-sm-6 toright\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"full-width\",\n children: _data_sections_team_json__WEBPACK_IMPORTED_MODULE_3__.teams.slice(0, 6).map(function (team, index) {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img sizxl \".concat(index + 1 != _data_sections_team_json__WEBPACK_IMPORTED_MODULE_3__.teams.slice(0, 6).length ? \"mb-30\" : null) // data-tooltip-tit={team.title}\n // data-tooltip-sub={team.sub}\n ,\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: team.image,\n alt: \"\",\n className: \"imago wow\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 61,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 25\n }, _this)\n }, team.id, false, {\n fileName: _jsxFileName,\n lineNumber: 51,\n columnNumber: 23\n }, _this);\n })\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-sm-6 toleft valign\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"full-width text-left\",\n children: _data_sections_team_json__WEBPACK_IMPORTED_MODULE_3__.teams.slice(6, 12).map(function (team, index) {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img sizxl \".concat(index + 1 != _data_sections_team_json__WEBPACK_IMPORTED_MODULE_3__.teams.slice(6, 12).length ? \"mb-30\" : null) // data-tooltip-tit={team.title}\n // data-tooltip-sub={team.sub}\n ,\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: team.image,\n alt: \"\",\n className: \"imago wow\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 25\n }, _this)\n }, team.id, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 23\n }, _this);\n })\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 5\n }, _this);\n};\n\n_s(Team, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = Team;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Team);\n\nvar _c;\n\n$RefreshReg$(_c, \"Team\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUNHLEtBQWY7QUFBc0IsNkJBQUcsRUFBQyxFQUExQjtBQUE2QixtQ0FBUyxFQUFDO0FBQXZDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFURjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREYsdUJBQVVILElBQUksQ0FBQ0ksRUFBZjtBQUFBO0FBQUE7QUFBQTtBQUFBLDZCQURnQztBQUFBLG1CQUFqQztBQURIO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQXBCRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkE1QkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsV0FERjtBQStFRCxDQXRGRDs7R0FBTVY7O0tBQUFBO0FBd0ZOLCtEQUFlQSxJQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL1RlYW0vdGVhbS5qc3g/YjY4ZSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAbmV4dC9uZXh0L25vLWltZy1lbGVtZW50ICovXHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHRlYW1Ta2lsbHNQcm9ncmVzcyBmcm9tIFwiLi4vLi4vY29tbW9uL3RlYW1Ta2lsbHNQcm9ncmVzc1wiO1xyXG5pbXBvcnQgdG9vbHRpcEVmZmVjdCBmcm9tIFwiLi4vLi4vY29tbW9uL3Rvb2x0aXBFZmZlY3RcIjtcclxuaW1wb3J0IHRlYW1zRGF0ZSBmcm9tIFwiLi4vLi4vZGF0YS9zZWN0aW9ucy90ZWFtLmpzb25cIjtcclxuXHJcbmNvbnN0IFRlYW0gPSAoKSA9PiB7XHJcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgIHRlYW1Ta2lsbHNQcm9ncmVzcygpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRvb2x0aXBFZmZlY3QoKTtcclxuICAgIH0sIDEwMDApO1xyXG4gIH0sIFtdKTtcclxuICByZXR1cm4gKFxyXG4gICAgPGRpdiBjbGFzc05hbWU9XCJ0ZWFtLWNydiBzZWN0aW9uLXBhZGRpbmdcIj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctNSB2YWxpZ25cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250ZW50IHdvdyBmYWRlSW5VcCBtZC1tYjMwXCIgZGF0YS13b3ctZGVsYXk9XCIuNXNcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInN1Yi10aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgPGg2Pk91ciBTdGFmZjwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cImNvLXRpdCBtYi0xNVwiPlxyXG4gICAgICAgICAgICAgICAgV2UgaGVscCB0byBjcmVhdGUgdmlzdWFsIHN0cmF0ZWdpZXMuXHJcbiAgICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgIFdlIGFyZSBCdXNpbmVzcyBIdWIuIFdlIGNyZWF0ZSBhd2FyZC13aW5uaW5nIHdlYnNpdGVzLFxyXG4gICAgICAgICAgICAgICAgcmVtYXJrYWJsZSBicmFuZHMgYW5kIGN1dHRpbmctZWRnZSBhcHBzLk51bGxhbSBpbXBlcmRpZS5cclxuICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwic2tpbGxzLWJveCBtdC00MFwiPlxyXG4gICAgICAgICAgICAgICAge3RlYW1zRGF0ZS5za2lsbHMubWFwKChza2lsbCkgPT4gKFxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNraWxsLWl0ZW1cIiBrZXk9e3NraWxsLmlkfT5cclxuICAgICAgICAgICAgICAgICAgICA8aDYgY2xhc3NOYW1lPVwiY3VzdG9tLWZvbnRcIj57c2tpbGwudGV4dH08L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2tpbGwtcHJvZ3Jlc3NcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicHJvZ3Jlc1wiIGRhdGEtdmFsdWU9e3NraWxsLnZhbHVlfT48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICApKX1cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy02IG9mZnNldC1sZy0xXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nLWJveFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1zbS02IHRvcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmdWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3RlYW1zRGF0ZS50ZWFtcy5zbGljZSgwLCA2KS5tYXAoKHRlYW0sIGluZGV4KSA9PiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGtleT17dGVhbS5pZH0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2BpbWcgc2l6eGwgJHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ICsgMSAhPSB0ZWFtc0RhdGUudGVhbXMuc2xpY2UoMCwgNikubGVuZ3RoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gXCJtYi0zMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogbnVsbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1gfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRhdGEtdG9vbHRpcC10aXQ9e3RlYW0udGl0bGV9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGF0YS10b29sdGlwLXN1Yj17dGVhbS5zdWJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz17dGVhbS5pbWFnZX0gYWx0PVwiXCIgY2xhc3NOYW1lPVwiaW1hZ28gd293XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICApKX1cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLXNtLTYgdG9sZWZ0IHZhbGlnblwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZ1bGwtd2lkdGggdGV4dC1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3RlYW1zRGF0ZS50ZWFtcy5zbGljZSg2LCAxMikubWFwKCh0ZWFtLCBpbmRleCkgPT4gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBrZXk9e3RlYW0uaWR9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgaW1nIHNpenhsICR7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCArIDEgIT0gdGVhbXNEYXRlLnRlYW1zLnNsaWNlKDYsIDEyKS5sZW5ndGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBcIm1iLTMwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBudWxsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfWB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGF0YS10b29sdGlwLXRpdD17dGVhbS50aXRsZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBkYXRhLXRvb2x0aXAtc3ViPXt0ZWFtLnN1Yn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPXt0ZWFtLmltYWdlfSBhbHQ9XCJcIiBjbGFzc05hbWU9XCJpbWFnbyB3b3dcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBUZWFtO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJ0ZWFtU2tpbGxzUHJvZ3Jlc3MiLCJ0b29sdGlwRWZmZWN0IiwidGVhbXNEYXRlIiwiVGVhbSIsInVzZUVmZmVjdCIsInNldFRpbWVvdXQiLCJ0ZWFtcyIsInNsaWNlIiwibWFwIiwidGVhbSIsImluZGV4IiwibGVuZ3RoIiwiaW1hZ2UiLCJpZCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Team/team.jsx\n"); + +/***/ }), + +/***/ "./src/components/Video-with-testimonials/video-with-testimonials.jsx": +/*!****************************************************************************!*\ + !*** ./src/components/Video-with-testimonials/video-with-testimonials.jsx ***! + \****************************************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react_slick__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-slick */ \"./node_modules/react-slick/lib/index.js\");\n/* harmony import */ var slick_carousel_slick_slick_css__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! slick-carousel/slick/slick.css */ \"./node_modules/slick-carousel/slick/slick.css\");\n/* harmony import */ var slick_carousel_slick_slick_css__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(slick_carousel_slick_slick_css__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var slick_carousel_slick_slick_theme_css__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! slick-carousel/slick/slick-theme.css */ \"./node_modules/slick-carousel/slick/slick-theme.css\");\n/* harmony import */ var slick_carousel_slick_slick_theme_css__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(slick_carousel_slick_slick_theme_css__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var react_modal_video__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-modal-video */ \"./node_modules/react-modal-video/lib/index.js\");\n/* harmony import */ var react_modal_video_css_modal_video_css__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react-modal-video/css/modal-video.css */ \"./node_modules/react-modal-video/css/modal-video.css\");\n/* harmony import */ var react_modal_video_css_modal_video_css__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react_modal_video_css_modal_video_css__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__);\n/* module decorator */ module = __webpack_require__.hmd(module);\n\n\n\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Video-with-testimonials\\\\video-with-testimonials.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\n\n\nvar VideoWithTestimonials = function VideoWithTestimonials() {\n _s();\n\n var _React$useState = react__WEBPACK_IMPORTED_MODULE_2___default().useState(false),\n _React$useState2 = (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_React$useState, 2),\n isOpen = _React$useState2[0],\n setOpen = _React$useState2[1];\n\n react__WEBPACK_IMPORTED_MODULE_2___default().useEffect(function () {\n console.clear();\n }, []);\n var settings = {\n dots: true,\n infinite: true,\n arrows: false,\n speed: 500,\n slidesToShow: 1,\n slidesToScroll: 1\n };\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"section\", {\n className: \"block-sec\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"background bg-img pt-100 pb-0 parallaxie\",\n style: {\n backgroundImage: \"url(/img/bg-vid.jpg)\"\n },\n \"data-overlay-dark\": \"5\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"col-lg-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"vid-area\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"text\",\n children: \"Watch Video\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"vid-icon\",\n children: [ true && /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(react_modal_video__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n channel: \"vimeo\",\n isOpen: isOpen,\n videoId: \"127203262\",\n onClose: function onClose() {\n return setOpen(false);\n }\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"a\", {\n className: \"vid\",\n onClick: function onClick(e) {\n e.preventDefault();\n setOpen(true);\n },\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"vid-butn\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"icon\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"i\", {\n className: \"fas fa-play\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 51,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 21\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 13\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"col-lg-5 offset-lg-1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"testim-box\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"head-box\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Our Clients\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h4\", {\n className: \"wow fadeInLeft\",\n \"data-wow-delay\": \".5s\",\n children: \"What Client's Say?\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 61,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(react_slick__WEBPACK_IMPORTED_MODULE_3__[\"default\"], _objectSpread(_objectSpread({}, settings), {}, {\n className: \"slic-item wow fadeInUp\",\n \"data-wow-delay\": \".5s\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"p\", {\n children: \"Nulla metus metus ullamcorper vel tincidunt sed euismod nibh volutpat velit class aptent taciti sociosqu ad litora.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"info\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"img-box\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/img/clients/1.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 82,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 81,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"author\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"author-name \",\n children: \"Alex Regelman\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 27\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"author-details\",\n children: \"Co-founder, Colabrio\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 27\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 87,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 86,\n columnNumber: 23\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"p\", {\n children: \"Nulla metus metus ullamcorper vel tincidunt sed euismod nibh volutpat velit class aptent taciti sociosqu ad litora.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"info\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"img-box\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/img/clients/2.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 105,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 104,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 103,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"author\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"author-name \",\n children: \"Alex Regelman\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 27\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"author-details\",\n children: \"Co-founder, Colabrio\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 27\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 108,\n columnNumber: 23\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 102,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"p\", {\n children: \"Nulla metus metus ullamcorper vel tincidunt sed euismod nibh volutpat velit class aptent taciti sociosqu ad litora.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"info\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"img-box\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"img\", {\n src: \"/img/clients/3.jpg\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 27\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"div\", {\n className: \"author\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"h6\", {\n className: \"author-name \",\n children: \"Alex Regelman\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 27\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(\"span\", {\n className: \"author-details\",\n children: \"Co-founder, Colabrio\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 133,\n columnNumber: 27\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 23\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 19\n }, _this)]\n }), void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 60,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 59,\n columnNumber: 13\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 5\n }, _this);\n};\n\n_s(VideoWithTestimonials, \"qf539F6ReNB0H/JamsCPL0/tKN4=\");\n\n_c = VideoWithTestimonials;\n/* harmony default export */ __webpack_exports__[\"default\"] = (VideoWithTestimonials);\n\nvar _c;\n\n$RefreshReg$(_c, \"VideoWithTestimonials\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9WaWRlby13aXRoLXRlc3RpbW9uaWFscy92aWRlby13aXRoLXRlc3RpbW9uaWFscy5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUVBLElBQU1HLHFCQUFxQixHQUFHLFNBQXhCQSxxQkFBd0IsR0FBTTtBQUFBOztBQUNsQyx3QkFBMEJILHFEQUFBLENBQWUsS0FBZixDQUExQjtBQUFBO0FBQUEsTUFBT0ssTUFBUDtBQUFBLE1BQWVDLE9BQWY7O0FBQ0FOLEVBQUFBLHNEQUFBLENBQWdCLFlBQU07QUFDcEJRLElBQUFBLE9BQU8sQ0FBQ0MsS0FBUjtBQUNELEdBRkQsRUFFRyxFQUZIO0FBR0EsTUFBTUMsUUFBUSxHQUFHO0FBQ2ZDLElBQUFBLElBQUksRUFBRSxJQURTO0FBRWZDLElBQUFBLFFBQVEsRUFBRSxJQUZLO0FBR2ZDLElBQUFBLE1BQU0sRUFBRSxLQUhPO0FBSWZDLElBQUFBLEtBQUssRUFBRSxHQUpRO0FBS2ZDLElBQUFBLFlBQVksRUFBRSxDQUxDO0FBTWZDLElBQUFBLGNBQWMsRUFBRTtBQU5ELEdBQWpCO0FBUUEsc0JBQ0U7QUFBUyxhQUFTLEVBQUMsV0FBbkI7QUFBQSwyQkFDRTtBQUNFLGVBQVMsRUFBQywwQ0FEWjtBQUVFLFdBQUssRUFBRTtBQUFFQyxRQUFBQSxlQUFlO0FBQWpCLE9BRlQ7QUFHRSwyQkFBa0IsR0FIcEI7QUFBQSw2QkFLRTtBQUFLLGlCQUFTLEVBQUMsV0FBZjtBQUFBLCtCQUNFO0FBQUssbUJBQVMsRUFBQyxLQUFmO0FBQUEsa0NBQ0U7QUFBSyxxQkFBUyxFQUFDLFVBQWY7QUFBQSxtQ0FDRTtBQUFLLHVCQUFTLEVBQUMsVUFBZjtBQUFBLHNDQUNFO0FBQU0seUJBQVMsRUFBQyxNQUFoQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFERixlQUVFO0FBQUsseUJBQVMsRUFB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QUFBO0FBQUEsNkJBTkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLDJCQU5GO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSx5QkFqREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQVRGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsbUJBN0JGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFMRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxXQURGO0FBOEhELENBM0lEOztHQUFNUDs7S0FBQUE7QUE2SU4sK0RBQWVBLHFCQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL1ZpZGVvLXdpdGgtdGVzdGltb25pYWxzL3ZpZGVvLXdpdGgtdGVzdGltb25pYWxzLmpzeD81NGVjIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBuZXh0L25leHQvbm8taW1nLWVsZW1lbnQgKi9cclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgU2xpZGVyIGZyb20gXCJyZWFjdC1zbGlja1wiO1xyXG5pbXBvcnQgXCJzbGljay1jYXJvdXNlbC9zbGljay9zbGljay5jc3NcIjtcclxuaW1wb3J0IFwic2xpY2stY2Fyb3VzZWwvc2xpY2svc2xpY2stdGhlbWUuY3NzXCI7XHJcbmltcG9ydCBNb2RhbFZpZGVvIGZyb20gXCJyZWFjdC1tb2RhbC12aWRlb1wiO1xyXG5pbXBvcnQgXCJyZWFjdC1tb2RhbC12aWRlby9jc3MvbW9kYWwtdmlkZW8uY3NzXCI7XHJcblxyXG5jb25zdCBWaWRlb1dpdGhUZXN0aW1vbmlhbHMgPSAoKSA9PiB7XHJcbiAgY29uc3QgW2lzT3Blbiwgc2V0T3Blbl0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XHJcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgIGNvbnNvbGUuY2xlYXIoKTtcclxuICB9LCBbXSk7XHJcbiAgY29uc3Qgc2V0dGluZ3MgPSB7XHJcbiAgICBkb3RzOiB0cnVlLFxyXG4gICAgaW5maW5pdGU6IHRydWUsXHJcbiAgICBhcnJvd3M6IGZhbHNlLFxyXG4gICAgc3BlZWQ6IDUwMCxcclxuICAgIHNsaWRlc1RvU2hvdzogMSxcclxuICAgIHNsaWRlc1RvU2Nyb2xsOiAxLFxyXG4gIH07XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cImJsb2NrLXNlY1wiPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3NOYW1lPVwiYmFja2dyb3VuZCBiZy1pbWcgcHQtMTAwIHBiLTAgcGFyYWxsYXhpZVwiXHJcbiAgICAgICAgc3R5bGU9e3sgYmFja2dyb3VuZEltYWdlOiBgdXJsKC9pbWcvYmctdmlkLmpwZylgIH19XHJcbiAgICAgICAgZGF0YS1vdmVybGF5LWRhcms9XCI1XCJcclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy02XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ2aWQtYXJlYVwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dFwiPldhdGNoIFZpZGVvPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ2aWQtaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICB7dHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPE1vZGFsVmlkZW9cclxuICAgICAgICAgICAgICAgICAgICAgIGNoYW5uZWw9XCJ2aW1lb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBpc09wZW49e2lzT3Blbn1cclxuICAgICAgICAgICAgICAgICAgICAgIHZpZGVvSWQ9XCIxMjcyMDMyNjJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgb25DbG9zZT17KCkgPT4gc2V0T3BlbihmYWxzZSl9XHJcbiAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ2aWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICBzZXRPcGVuKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInZpZC1idXRuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJpY29uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhcyBmYS1wbGF5XCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTUgb2Zmc2V0LWxnLTFcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRlc3RpbS1ib3hcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaGVhZC1ib3hcIj5cclxuICAgICAgICAgICAgICAgICAgPGg2IGNsYXNzTmFtZT1cIndvdyBmYWRlSW5cIiBkYXRhLXdvdy1kZWxheT1cIi41c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIE91ciBDbGllbnRzXHJcbiAgICAgICAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJ3b3cgZmFkZUluTGVmdFwiIGRhdGEtd293LWRlbGF5PVwiLjVzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgV2hhdCBDbGllbnQmYXBvcztzIFNheT9cclxuICAgICAgICAgICAgICAgICAgPC9oND5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPFNsaWRlclxyXG4gICAgICAgICAgICAgICAgICB7Li4uc2V0dGluZ3N9XHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInNsaWMtaXRlbSB3b3cgZmFkZUluVXBcIlxyXG4gICAgICAgICAgICAgICAgICBkYXRhLXdvdy1kZWxheT1cIi41c1wiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgTnVsbGEgbWV0dXMgbWV0dXMgdWxsYW1jb3JwZXIgdmVsIHRpbmNpZHVudCBzZWQgZXVpc21vZFxyXG4gICAgICAgICAgICAgICAgICAgICAgbmliaCB2b2x1dHBhdCB2ZWxpdCBjbGFzcyBhcHRlbnQgdGFjaXRpIHNvY2lvc3F1IGFkXHJcbiAgICAgICAgICAgICAgICAgICAgICBsaXRvcmEuXHJcbiAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWctYm94XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL2NsaWVudHMvMS5qcGdcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYXV0aG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2IGNsYXNzTmFtZT1cImF1dGhvci1uYW1lIFwiPkFsZXggUmVnZWxtYW48L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImF1dGhvci1kZXRhaWxzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDby1mb3VuZGVyLCBDb2xhYnJpb1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgTnVsbGEgbWV0dXMgbWV0dXMgdWxsYW1jb3JwZXIgdmVsIHRpbmNpZHVudCBzZWQgZXVpc21vZFxyXG4gICAgICAgICAgICAgICAgICAgICAgbmliaCB2b2x1dHBhdCB2ZWxpdCBjbGFzcyBhcHRlbnQgdGFjaXRpIHNvY2lvc3F1IGFkXHJcbiAgICAgICAgICAgICAgICAgICAgICBsaXRvcmEuXHJcbiAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWctYm94XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL2NsaWVudHMvMi5qcGdcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYXV0aG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2IGNsYXNzTmFtZT1cImF1dGhvci1uYW1lIFwiPkFsZXggUmVnZWxtYW48L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImF1dGhvci1kZXRhaWxzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDby1mb3VuZGVyLCBDb2xhYnJpb1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgTnVsbGEgbWV0dXMgbWV0dXMgdWxsYW1jb3JwZXIgdmVsIHRpbmNpZHVudCBzZWQgZXVpc21vZFxyXG4gICAgICAgICAgICAgICAgICAgICAgbmliaCB2b2x1dHBhdCB2ZWxpdCBjbGFzcyBhcHRlbnQgdGFjaXRpIHNvY2lvc3F1IGFkXHJcbiAgICAgICAgICAgICAgICAgICAgICBsaXRvcmEuXHJcbiAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWctYm94XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL2NsaWVudHMvMy5qcGdcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYXV0aG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2IGNsYXNzTmFtZT1cImF1dGhvci1uYW1lIFwiPkFsZXggUmVnZWxtYW48L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImF1dGhvci1kZXRhaWxzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDby1mb3VuZGVyLCBDb2xhYnJpb1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L1NsaWRlcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L3NlY3Rpb24+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IFZpZGVvV2l0aFRlc3RpbW9uaWFscztcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiU2xpZGVyIiwiTW9kYWxWaWRlbyIsIlZpZGVvV2l0aFRlc3RpbW9uaWFscyIsInVzZVN0YXRlIiwiaXNPcGVuIiwic2V0T3BlbiIsInVzZUVmZmVjdCIsImNvbnNvbGUiLCJjbGVhciIsInNldHRpbmdzIiwiZG90cyIsImluZmluaXRlIiwiYXJyb3dzIiwic3BlZWQiLCJzbGlkZXNUb1Nob3ciLCJzbGlkZXNUb1Njcm9sbCIsImJhY2tncm91bmRJbWFnZSIsImUiLCJwcmV2ZW50RGVmYXVsdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Video-with-testimonials/video-with-testimonials.jsx\n"); + +/***/ }), + +/***/ "./src/layouts/Light.jsx": +/*!*******************************!*\ + !*** ./src/layouts/Light.jsx ***! + \*******************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/head */ \"./node_modules/next/head.js\");\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_head__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\layouts\\\\Light.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n/* eslint-disable @next/next/no-css-tags */\n\n\n\n\n\nvar LightTheme = function LightTheme(_ref) {\n _s();\n\n var children = _ref.children,\n mobileappstyle = _ref.mobileappstyle;\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n window.theme = \"light\";\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)((next_head__WEBPACK_IMPORTED_MODULE_1___default()), {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"link\", {\n rel: \"stylesheet\",\n href: \"/css/light.css\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 9\n }, _this), mobileappstyle ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"link\", {\n href: \"/css/mobile-app-light.css\",\n rel: \"stylesheet\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 28\n }, _this) : null]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 7\n }, _this), children]\n }, void 0, true);\n};\n\n_s(LightTheme, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = LightTheme;\n/* harmony default export */ __webpack_exports__[\"default\"] = (LightTheme);\n\nvar _c;\n\n$RefreshReg$(_c, \"LightTheme\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvbGF5b3V0cy9MaWdodC5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBOzs7O0FBRUEsSUFBTUUsVUFBVSxHQUFHLFNBQWJBLFVBQWEsT0FBa0M7QUFBQTs7QUFBQSxNQUEvQkMsUUFBK0IsUUFBL0JBLFFBQStCO0FBQUEsTUFBckJDLGNBQXFCLFFBQXJCQSxjQUFxQjtBQUNuREosRUFBQUEsc0RBQUEsQ0FBZ0IsWUFBTTtBQUNwQk0sSUFBQUEsTUFBTSxDQUFDQyxLQUFQLEdBQWUsT0FBZjtBQUNELEdBRkQsRUFFRyxFQUZIO0FBR0Esc0JBQ0U7QUFBQSw0QkFDRSw4REFBQyxrREFBRDtBQUFBLDhCQUNFO0FBQU0sV0FBRyxFQUFDLFlBQVY7QUFBdUIsWUFBSSxFQUFDO0FBQTVCO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFERixFQUVHSCxjQUFjLGdCQUFJO0FBQU0sWUFBSSxFQUFDLDJCQUFYO0FBQXVDLFdBQUcsRUFBQztBQUEzQztBQUFBO0FBQUE7QUFBQTtBQUFBLGVBQUosR0FBbUUsSUFGcEY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBREYsRUFLR0QsUUFMSDtBQUFBLGtCQURGO0FBU0QsQ0FiRDs7R0FBTUQ7O0tBQUFBO0FBZU4sK0RBQWVBLFVBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2xheW91dHMvTGlnaHQuanN4PzM5YzIiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1jc3MtdGFncyAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBIZWFkIGZyb20gXCJuZXh0L2hlYWRcIjtcclxuXHJcbmNvbnN0IExpZ2h0VGhlbWUgPSAoeyBjaGlsZHJlbiwgbW9iaWxlYXBwc3R5bGUgfSkgPT4ge1xyXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICB3aW5kb3cudGhlbWUgPSBcImxpZ2h0XCI7XHJcbiAgfSwgW10pO1xyXG4gIHJldHVybiAoXHJcbiAgICA8PlxyXG4gICAgICA8SGVhZD5cclxuICAgICAgICA8bGluayByZWw9XCJzdHlsZXNoZWV0XCIgaHJlZj1cIi9jc3MvbGlnaHQuY3NzXCIgLz5cclxuICAgICAgICB7bW9iaWxlYXBwc3R5bGUgPyAoPGxpbmsgaHJlZj1cIi9jc3MvbW9iaWxlLWFwcC1saWdodC5jc3NcIiByZWw9XCJzdHlsZXNoZWV0XCIgLz4pIDogKG51bGwpfVxyXG4gICAgICA8L0hlYWQ+XHJcbiAgICAgIHtjaGlsZHJlbn1cclxuICAgIDwvPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBMaWdodFRoZW1lO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJIZWFkIiwiTGlnaHRUaGVtZSIsImNoaWxkcmVuIiwibW9iaWxlYXBwc3R5bGUiLCJ1c2VFZmZlY3QiLCJ3aW5kb3ciLCJ0aGVtZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/layouts/Light.jsx\n"); + +/***/ }), + +/***/ "./src/pages/services/index.jsx": +/*!**************************************!*\ + !*** ./src/pages/services/index.jsx ***! + \**************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _components_Navbar_navbar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../components/Navbar/navbar */ \"./src/components/Navbar/navbar.jsx\");\n/* harmony import */ var _components_Services_services__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../components/Services/services */ \"./src/components/Services/services.jsx\");\n/* harmony import */ var _components_Video_with_testimonials_video_with_testimonials__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../components/Video-with-testimonials/video-with-testimonials */ \"./src/components/Video-with-testimonials/video-with-testimonials.jsx\");\n/* harmony import */ var _components_Skills_circle_skills_circle__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../components/Skills-circle/skills-circle */ \"./src/components/Skills-circle/skills-circle.jsx\");\n/* harmony import */ var _components_Clients_clients__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../components/Clients/clients */ \"./src/components/Clients/clients.jsx\");\n/* harmony import */ var _components_Call_to_action_call_to_action__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../components/Call-to-action/call-to-action */ \"./src/components/Call-to-action/call-to-action.jsx\");\n/* harmony import */ var _components_Footer_footer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../components/Footer/footer */ \"./src/components/Footer/footer.jsx\");\n/* harmony import */ var _components_Pages_header__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../components/Pages-header */ \"./src/components/Pages-header/index.jsx\");\n/* harmony import */ var _components_About_intro__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../components/About-intro */ \"./src/components/About-intro/index.jsx\");\n/* harmony import */ var _layouts_Light__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../layouts/Light */ \"./src/layouts/Light.jsx\");\n/* harmony import */ var _components_Team_team__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../components/Team/team */ \"./src/components/Team/team.jsx\");\n/* harmony import */ var _components_Services5_services5__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../components/Services5/services5 */ \"./src/components/Services5/services5.jsx\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_13__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\pages\\\\services\\\\index.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar ServicesPage = function ServicesPage() {\n _s();\n\n var navbarRef = react__WEBPACK_IMPORTED_MODULE_0___default().useRef(null);\n var logoRef = react__WEBPACK_IMPORTED_MODULE_0___default().useRef(null);\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n var navbar = navbarRef.current,\n logo = logoRef.current;\n\n if (window.pageYOffset > 300) {\n navbar.classList.add(\"nav-scroll\");\n } else {\n navbar.classList.remove(\"nav-scroll\");\n }\n\n window.addEventListener(\"scroll\", function () {\n if (window.pageYOffset > 300) {\n navbar.classList.add(\"nav-scroll\");\n } else {\n navbar.classList.remove(\"nav-scroll\");\n }\n });\n }, [navbarRef]);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxDEV)(_layouts_Light__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxDEV)(_components_Navbar_navbar__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n nr: navbarRef,\n lr: logoRef,\n theme: \"themeL\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxDEV)(_components_Pages_header__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxDEV)(_components_About_intro__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxDEV)(_components_Services5_services5__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxDEV)(_components_Call_to_action_call_to_action__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxDEV)(_components_Footer_footer__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, _this);\n};\n\n_s(ServicesPage, \"NJv/rvX5fPwWhnPtkwq0tuwt7xI=\");\n\n_c = ServicesPage;\n/* harmony default export */ __webpack_exports__[\"default\"] = (ServicesPage);\n\nvar _c;\n\n$RefreshReg$(_c, \"ServicesPage\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvcGFnZXMvc2VydmljZXMvaW5kZXguanN4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTs7O0FBRUEsSUFBTWEsWUFBWSxHQUFHLFNBQWZBLFlBQWUsR0FBTTtBQUFBOztBQUN6QixNQUFNQyxTQUFTLEdBQUdkLG1EQUFBLENBQWEsSUFBYixDQUFsQjtBQUNBLE1BQU1nQixPQUFPLEdBQUdoQixtREFBQSxDQUFhLElBQWIsQ0FBaEI7QUFFQUEsRUFBQUEsc0RBQUEsQ0FBZ0IsWUFBTTtBQUNwQixRQUFJa0IsTUFBTSxHQUFHSixTQUFTLENBQUNLLE9BQXZCO0FBQUEsUUFDRUMsSUFBSSxHQUFHSixPQUFPLENBQUNHLE9BRGpCOztBQUVBLFFBQUlFLE1BQU0sQ0FBQ0MsV0FBUCxHQUFxQixHQUF6QixFQUE4QjtBQUM1QkosTUFBQUEsTUFBTSxDQUFDSyxTQUFQLENBQWlCQyxHQUFqQixDQUFxQixZQUFyQjtBQUNELEtBRkQsTUFFTztBQUNMTixNQUFBQSxNQUFNLENBQUNLLFNBQVAsQ0FBaUJFLE1BQWpCLENBQXdCLFlBQXhCO0FBQ0Q7O0FBQ0RKLElBQUFBLE1BQU0sQ0FBQ0ssZ0JBQVAsQ0FBd0IsUUFBeEIsRUFBa0MsWUFBTTtBQUN0QyxVQUFJTCxNQUFNLENBQUNDLFdBQVAsR0FBcUIsR0FBekIsRUFBOEI7QUFDNUJKLFFBQUFBLE1BQU0sQ0FBQ0ssU0FBUCxDQUFpQkMsR0FBakIsQ0FBcUIsWUFBckI7QUFDRCxPQUZELE1BRU87QUFDTE4sUUFBQUEsTUFBTSxDQUFDSyxTQUFQLENBQWlCRSxNQUFqQixDQUF3QixZQUF4QjtBQUNEO0FBQ0YsS0FORDtBQU9ELEdBZkQsRUFlRyxDQUFDWCxTQUFELENBZkg7QUFnQkEsc0JBQ0UsK0RBQUMsdURBQUQ7QUFBQSw0QkFDRSwrREFBQyxpRUFBRDtBQUFRLFFBQUUsRUFBRUEsU0FBWjtBQUF1QixRQUFFLEVBQUVFLE9BQTNCO0FBQW9DLFdBQUssRUFBQztBQUExQztBQUFBO0FBQUE7QUFBQTtBQUFBLGFBREYsZUFFRSwrREFBQyxnRUFBRDtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBRkYsZUFHRSwrREFBQywrREFBRDtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBSEYsZUFJRSwrREFBQyx3RUFBRDtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBSkYsZUFLRSwrREFBQyxpRkFBRDtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBTEYsZUFNRSwrREFBQyxpRUFBRDtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBTkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBREY7QUFVRCxDQTlCRDs7R0FBTUg7O0tBQUFBO0FBZ0NOLCtEQUFlQSxZQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9wYWdlcy9zZXJ2aWNlcy9pbmRleC5qc3g/ZWM5MyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBOYXZiYXIgZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvTmF2YmFyL25hdmJhclwiO1xyXG5pbXBvcnQgU2VydmljZXMgZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvU2VydmljZXMvc2VydmljZXNcIjtcclxuaW1wb3J0IFZpZGVvV2l0aFRlc3RpbW9uaWFscyBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9WaWRlby13aXRoLXRlc3RpbW9uaWFscy92aWRlby13aXRoLXRlc3RpbW9uaWFsc1wiO1xyXG5pbXBvcnQgU2tpbGxzQ2lyY2xlIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL1NraWxscy1jaXJjbGUvc2tpbGxzLWNpcmNsZVwiO1xyXG5pbXBvcnQgQ2xpZW50cyBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9DbGllbnRzL2NsaWVudHNcIjtcclxuaW1wb3J0IENhbGxUb0FjdGlvbiBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9DYWxsLXRvLWFjdGlvbi9jYWxsLXRvLWFjdGlvblwiO1xyXG5pbXBvcnQgRm9vdGVyIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL0Zvb3Rlci9mb290ZXJcIjtcclxuaW1wb3J0IFBhZ2VzSGVhZGVyIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL1BhZ2VzLWhlYWRlclwiO1xyXG5pbXBvcnQgQWJvdXRJbnRybyBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9BYm91dC1pbnRyb1wiO1xyXG5pbXBvcnQgTGlnaHRUaGVtZSBmcm9tIFwiLi4vLi4vbGF5b3V0cy9MaWdodFwiO1xyXG5pbXBvcnQgVGVhbSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9UZWFtL3RlYW1cIjtcclxuXHJcbmltcG9ydCBTZXJ2aWNlczUgZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvU2VydmljZXM1L3NlcnZpY2VzNVwiO1xyXG5cclxuY29uc3QgU2VydmljZXNQYWdlID0gKCkgPT4ge1xyXG4gIGNvbnN0IG5hdmJhclJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcclxuICBjb25zdCBsb2dvUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xyXG5cclxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgdmFyIG5hdmJhciA9IG5hdmJhclJlZi5jdXJyZW50LFxyXG4gICAgICBsb2dvID0gbG9nb1JlZi5jdXJyZW50O1xyXG4gICAgaWYgKHdpbmRvdy5wYWdlWU9mZnNldCA+IDMwMCkge1xyXG4gICAgICBuYXZiYXIuY2xhc3NMaXN0LmFkZChcIm5hdi1zY3JvbGxcIik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBuYXZiYXIuY2xhc3NMaXN0LnJlbW92ZShcIm5hdi1zY3JvbGxcIik7XHJcbiAgICB9XHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCAoKSA9PiB7XHJcbiAgICAgIGlmICh3aW5kb3cucGFnZVlPZmZzZXQgPiAzMDApIHtcclxuICAgICAgICBuYXZiYXIuY2xhc3NMaXN0LmFkZChcIm5hdi1zY3JvbGxcIik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbmF2YmFyLmNsYXNzTGlzdC5yZW1vdmUoXCJuYXYtc2Nyb2xsXCIpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9LCBbbmF2YmFyUmVmXSk7XHJcbiAgcmV0dXJuIChcclxuICAgIDxMaWdodFRoZW1lPlxyXG4gICAgICA8TmF2YmFyIG5yPXtuYXZiYXJSZWZ9IGxyPXtsb2dvUmVmfSB0aGVtZT1cInRoZW1lTFwiIC8+XHJcbiAgICAgIDxQYWdlc0hlYWRlciAvPlxyXG4gICAgICA8QWJvdXRJbnRybyAvPlxyXG4gICAgICA8U2VydmljZXM1IC8+XHJcbiAgICAgIDxDYWxsVG9BY3Rpb24gLz5cclxuICAgICAgPEZvb3RlciAvPlxyXG4gICAgPC9MaWdodFRoZW1lPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBTZXJ2aWNlc1BhZ2U7XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIk5hdmJhciIsIlNlcnZpY2VzIiwiVmlkZW9XaXRoVGVzdGltb25pYWxzIiwiU2tpbGxzQ2lyY2xlIiwiQ2xpZW50cyIsIkNhbGxUb0FjdGlvbiIsIkZvb3RlciIsIlBhZ2VzSGVhZGVyIiwiQWJvdXRJbnRybyIsIkxpZ2h0VGhlbWUiLCJUZWFtIiwiU2VydmljZXM1IiwiU2VydmljZXNQYWdlIiwibmF2YmFyUmVmIiwidXNlUmVmIiwibG9nb1JlZiIsInVzZUVmZmVjdCIsIm5hdmJhciIsImN1cnJlbnQiLCJsb2dvIiwid2luZG93IiwicGFnZVlPZmZzZXQiLCJjbGFzc0xpc3QiLCJhZGQiLCJyZW1vdmUiLCJhZGRFdmVudExpc3RlbmVyIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/pages/services/index.jsx\n"); + +/***/ }), + +/***/ "./node_modules/classnames/index.js": +/*!******************************************!*\ + !*** ./node_modules/classnames/index.js ***! + \******************************************/ +/***/ (function(module, exports) { + +eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif ( true && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (true) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {\n\t\t\treturn classNames;\n\t\t}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else {}\n}());\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvY2xhc3NuYW1lcy9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSxnQkFBZ0I7O0FBRWhCO0FBQ0E7O0FBRUEsa0JBQWtCLHNCQUFzQjtBQUN4QztBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSxLQUFLLEtBQTZCO0FBQ2xDO0FBQ0E7QUFDQSxHQUFHLFNBQVMsSUFBNEU7QUFDeEY7QUFDQSxFQUFFLGlDQUFxQixFQUFFLG1DQUFFO0FBQzNCO0FBQ0EsR0FBRztBQUFBLGtHQUFDO0FBQ0osR0FBRyxLQUFLLEVBRU47QUFDRixDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9jbGFzc25hbWVzL2luZGV4LmpzPzdkNTAiXSwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gIENvcHlyaWdodCAoYykgMjAxNyBKZWQgV2F0c29uLlxuICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UgKE1JVCksIHNlZVxuICBodHRwOi8vamVkd2F0c29uLmdpdGh1Yi5pby9jbGFzc25hbWVzXG4qL1xuLyogZ2xvYmFsIGRlZmluZSAqL1xuXG4oZnVuY3Rpb24gKCkge1xuXHQndXNlIHN0cmljdCc7XG5cblx0dmFyIGhhc093biA9IHt9Lmhhc093blByb3BlcnR5O1xuXG5cdGZ1bmN0aW9uIGNsYXNzTmFtZXMgKCkge1xuXHRcdHZhciBjbGFzc2VzID0gW107XG5cblx0XHRmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuXHRcdFx0dmFyIGFyZyA9IGFyZ3VtZW50c1tpXTtcblx0XHRcdGlmICghYXJnKSBjb250aW51ZTtcblxuXHRcdFx0dmFyIGFyZ1R5cGUgPSB0eXBlb2YgYXJnO1xuXG5cdFx0XHRpZiAoYXJnVHlwZSA9PT0gJ3N0cmluZycgfHwgYXJnVHlwZSA9PT0gJ251bWJlcicpIHtcblx0XHRcdFx0Y2xhc3Nlcy5wdXNoKGFyZyk7XG5cdFx0XHR9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoYXJnKSAmJiBhcmcubGVuZ3RoKSB7XG5cdFx0XHRcdHZhciBpbm5lciA9IGNsYXNzTmFtZXMuYXBwbHkobnVsbCwgYXJnKTtcblx0XHRcdFx0aWYgKGlubmVyKSB7XG5cdFx0XHRcdFx0Y2xhc3Nlcy5wdXNoKGlubmVyKTtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIGlmIChhcmdUeXBlID09PSAnb2JqZWN0Jykge1xuXHRcdFx0XHRmb3IgKHZhciBrZXkgaW4gYXJnKSB7XG5cdFx0XHRcdFx0aWYgKGhhc093bi5jYWxsKGFyZywga2V5KSAmJiBhcmdba2V5XSkge1xuXHRcdFx0XHRcdFx0Y2xhc3Nlcy5wdXNoKGtleSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGNsYXNzZXMuam9pbignICcpO1xuXHR9XG5cblx0aWYgKHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnICYmIG1vZHVsZS5leHBvcnRzKSB7XG5cdFx0Y2xhc3NOYW1lcy5kZWZhdWx0ID0gY2xhc3NOYW1lcztcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGNsYXNzTmFtZXM7XG5cdH0gZWxzZSBpZiAodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgZGVmaW5lLmFtZCA9PT0gJ29iamVjdCcgJiYgZGVmaW5lLmFtZCkge1xuXHRcdC8vIHJlZ2lzdGVyIGFzICdjbGFzc25hbWVzJywgY29uc2lzdGVudCB3aXRoIG5wbSBwYWNrYWdlIG5hbWVcblx0XHRkZWZpbmUoJ2NsYXNzbmFtZXMnLCBbXSwgZnVuY3Rpb24gKCkge1xuXHRcdFx0cmV0dXJuIGNsYXNzTmFtZXM7XG5cdFx0fSk7XG5cdH0gZWxzZSB7XG5cdFx0d2luZG93LmNsYXNzTmFtZXMgPSBjbGFzc05hbWVzO1xuXHR9XG59KCkpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/classnames/index.js\n"); + +/***/ }), + +/***/ "./node_modules/enquire.js/src/MediaQuery.js": +/*!***************************************************!*\ + !*** ./node_modules/enquire.js/src/MediaQuery.js ***! + \***************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var QueryHandler = __webpack_require__(/*! ./QueryHandler */ \"./node_modules/enquire.js/src/QueryHandler.js\");\nvar each = (__webpack_require__(/*! ./Util */ \"./node_modules/enquire.js/src/Util.js\").each);\n\n/**\n * Represents a single media query, manages it's state and registered handlers for this query\n *\n * @constructor\n * @param {string} query the media query string\n * @param {boolean} [isUnconditional=false] whether the media query should run regardless of whether the conditions are met. Primarily for helping older browsers deal with mobile-first design\n */\nfunction MediaQuery(query, isUnconditional) {\n this.query = query;\n this.isUnconditional = isUnconditional;\n this.handlers = [];\n this.mql = window.matchMedia(query);\n\n var self = this;\n this.listener = function(mql) {\n // Chrome passes an MediaQueryListEvent object, while other browsers pass MediaQueryList directly\n self.mql = mql.currentTarget || mql;\n self.assess();\n };\n this.mql.addListener(this.listener);\n}\n\nMediaQuery.prototype = {\n\n constuctor : MediaQuery,\n\n /**\n * add a handler for this query, triggering if already active\n *\n * @param {object} handler\n * @param {function} handler.match callback for when query is activated\n * @param {function} [handler.unmatch] callback for when query is deactivated\n * @param {function} [handler.setup] callback for immediate execution when a query handler is registered\n * @param {boolean} [handler.deferSetup=false] should the setup callback be deferred until the first time the handler is matched?\n */\n addHandler : function(handler) {\n var qh = new QueryHandler(handler);\n this.handlers.push(qh);\n\n this.matches() && qh.on();\n },\n\n /**\n * removes the given handler from the collection, and calls it's destroy methods\n *\n * @param {object || function} handler the handler to remove\n */\n removeHandler : function(handler) {\n var handlers = this.handlers;\n each(handlers, function(h, i) {\n if(h.equals(handler)) {\n h.destroy();\n return !handlers.splice(i,1); //remove from array and exit each early\n }\n });\n },\n\n /**\n * Determine whether the media query should be considered a match\n *\n * @return {Boolean} true if media query can be considered a match, false otherwise\n */\n matches : function() {\n return this.mql.matches || this.isUnconditional;\n },\n\n /**\n * Clears all handlers and unbinds events\n */\n clear : function() {\n each(this.handlers, function(handler) {\n handler.destroy();\n });\n this.mql.removeListener(this.listener);\n this.handlers.length = 0; //clear array\n },\n\n /*\n * Assesses the query, turning on all handlers if it matches, turning them off if it doesn't match\n */\n assess : function() {\n var action = this.matches() ? 'on' : 'off';\n\n each(this.handlers, function(handler) {\n handler[action]();\n });\n }\n};\n\nmodule.exports = MediaQuery;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvZW5xdWlyZS5qcy9zcmMvTWVkaWFRdWVyeS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQSxtQkFBbUIsbUJBQU8sQ0FBQyxxRUFBZ0I7QUFDM0MsV0FBVyxpRkFBc0I7O0FBRWpDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsU0FBUztBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLFFBQVE7QUFDdkIsZUFBZSxVQUFVO0FBQ3pCLGVBQWUsVUFBVTtBQUN6QixlQUFlLFVBQVU7QUFDekIsZUFBZSxTQUFTO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQSxlQUFlLG9CQUFvQjtBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBOEM7QUFDOUM7QUFDQSxTQUFTO0FBQ1QsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsU0FBUztBQUN6QjtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBLGtDQUFrQztBQUNsQyxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9lbnF1aXJlLmpzL3NyYy9NZWRpYVF1ZXJ5LmpzPzM3NzQiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIFF1ZXJ5SGFuZGxlciA9IHJlcXVpcmUoJy4vUXVlcnlIYW5kbGVyJyk7XG52YXIgZWFjaCA9IHJlcXVpcmUoJy4vVXRpbCcpLmVhY2g7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHNpbmdsZSBtZWRpYSBxdWVyeSwgbWFuYWdlcyBpdCdzIHN0YXRlIGFuZCByZWdpc3RlcmVkIGhhbmRsZXJzIGZvciB0aGlzIHF1ZXJ5XG4gKlxuICogQGNvbnN0cnVjdG9yXG4gKiBAcGFyYW0ge3N0cmluZ30gcXVlcnkgdGhlIG1lZGlhIHF1ZXJ5IHN0cmluZ1xuICogQHBhcmFtIHtib29sZWFufSBbaXNVbmNvbmRpdGlvbmFsPWZhbHNlXSB3aGV0aGVyIHRoZSBtZWRpYSBxdWVyeSBzaG91bGQgcnVuIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUgY29uZGl0aW9ucyBhcmUgbWV0LiBQcmltYXJpbHkgZm9yIGhlbHBpbmcgb2xkZXIgYnJvd3NlcnMgZGVhbCB3aXRoIG1vYmlsZS1maXJzdCBkZXNpZ25cbiAqL1xuZnVuY3Rpb24gTWVkaWFRdWVyeShxdWVyeSwgaXNVbmNvbmRpdGlvbmFsKSB7XG4gICAgdGhpcy5xdWVyeSA9IHF1ZXJ5O1xuICAgIHRoaXMuaXNVbmNvbmRpdGlvbmFsID0gaXNVbmNvbmRpdGlvbmFsO1xuICAgIHRoaXMuaGFuZGxlcnMgPSBbXTtcbiAgICB0aGlzLm1xbCA9IHdpbmRvdy5tYXRjaE1lZGlhKHF1ZXJ5KTtcblxuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB0aGlzLmxpc3RlbmVyID0gZnVuY3Rpb24obXFsKSB7XG4gICAgICAgIC8vIENocm9tZSBwYXNzZXMgYW4gTWVkaWFRdWVyeUxpc3RFdmVudCBvYmplY3QsIHdoaWxlIG90aGVyIGJyb3dzZXJzIHBhc3MgTWVkaWFRdWVyeUxpc3QgZGlyZWN0bHlcbiAgICAgICAgc2VsZi5tcWwgPSBtcWwuY3VycmVudFRhcmdldCB8fCBtcWw7XG4gICAgICAgIHNlbGYuYXNzZXNzKCk7XG4gICAgfTtcbiAgICB0aGlzLm1xbC5hZGRMaXN0ZW5lcih0aGlzLmxpc3RlbmVyKTtcbn1cblxuTWVkaWFRdWVyeS5wcm90b3R5cGUgPSB7XG5cbiAgICBjb25zdHVjdG9yIDogTWVkaWFRdWVyeSxcblxuICAgIC8qKlxuICAgICAqIGFkZCBhIGhhbmRsZXIgZm9yIHRoaXMgcXVlcnksIHRyaWdnZXJpbmcgaWYgYWxyZWFkeSBhY3RpdmVcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBoYW5kbGVyXG4gICAgICogQHBhcmFtIHtmdW5jdGlvbn0gaGFuZGxlci5tYXRjaCBjYWxsYmFjayBmb3Igd2hlbiBxdWVyeSBpcyBhY3RpdmF0ZWRcbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBbaGFuZGxlci51bm1hdGNoXSBjYWxsYmFjayBmb3Igd2hlbiBxdWVyeSBpcyBkZWFjdGl2YXRlZFxuICAgICAqIEBwYXJhbSB7ZnVuY3Rpb259IFtoYW5kbGVyLnNldHVwXSBjYWxsYmFjayBmb3IgaW1tZWRpYXRlIGV4ZWN1dGlvbiB3aGVuIGEgcXVlcnkgaGFuZGxlciBpcyByZWdpc3RlcmVkXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbaGFuZGxlci5kZWZlclNldHVwPWZhbHNlXSBzaG91bGQgdGhlIHNldHVwIGNhbGxiYWNrIGJlIGRlZmVycmVkIHVudGlsIHRoZSBmaXJzdCB0aW1lIHRoZSBoYW5kbGVyIGlzIG1hdGNoZWQ/XG4gICAgICovXG4gICAgYWRkSGFuZGxlciA6IGZ1bmN0aW9uKGhhbmRsZXIpIHtcbiAgICAgICAgdmFyIHFoID0gbmV3IFF1ZXJ5SGFuZGxlcihoYW5kbGVyKTtcbiAgICAgICAgdGhpcy5oYW5kbGVycy5wdXNoKHFoKTtcblxuICAgICAgICB0aGlzLm1hdGNoZXMoKSAmJiBxaC5vbigpO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiByZW1vdmVzIHRoZSBnaXZlbiBoYW5kbGVyIGZyb20gdGhlIGNvbGxlY3Rpb24sIGFuZCBjYWxscyBpdCdzIGRlc3Ryb3kgbWV0aG9kc1xuICAgICAqXG4gICAgICogQHBhcmFtIHtvYmplY3QgfHwgZnVuY3Rpb259IGhhbmRsZXIgdGhlIGhhbmRsZXIgdG8gcmVtb3ZlXG4gICAgICovXG4gICAgcmVtb3ZlSGFuZGxlciA6IGZ1bmN0aW9uKGhhbmRsZXIpIHtcbiAgICAgICAgdmFyIGhhbmRsZXJzID0gdGhpcy5oYW5kbGVycztcbiAgICAgICAgZWFjaChoYW5kbGVycywgZnVuY3Rpb24oaCwgaSkge1xuICAgICAgICAgICAgaWYoaC5lcXVhbHMoaGFuZGxlcikpIHtcbiAgICAgICAgICAgICAgICBoLmRlc3Ryb3koKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gIWhhbmRsZXJzLnNwbGljZShpLDEpOyAvL3JlbW92ZSBmcm9tIGFycmF5IGFuZCBleGl0IGVhY2ggZWFybHlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIERldGVybWluZSB3aGV0aGVyIHRoZSBtZWRpYSBxdWVyeSBzaG91bGQgYmUgY29uc2lkZXJlZCBhIG1hdGNoXG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHtCb29sZWFufSB0cnVlIGlmIG1lZGlhIHF1ZXJ5IGNhbiBiZSBjb25zaWRlcmVkIGEgbWF0Y2gsIGZhbHNlIG90aGVyd2lzZVxuICAgICAqL1xuICAgIG1hdGNoZXMgOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubXFsLm1hdGNoZXMgfHwgdGhpcy5pc1VuY29uZGl0aW9uYWw7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIENsZWFycyBhbGwgaGFuZGxlcnMgYW5kIHVuYmluZHMgZXZlbnRzXG4gICAgICovXG4gICAgY2xlYXIgOiBmdW5jdGlvbigpIHtcbiAgICAgICAgZWFjaCh0aGlzLmhhbmRsZXJzLCBmdW5jdGlvbihoYW5kbGVyKSB7XG4gICAgICAgICAgICBoYW5kbGVyLmRlc3Ryb3koKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubXFsLnJlbW92ZUxpc3RlbmVyKHRoaXMubGlzdGVuZXIpO1xuICAgICAgICB0aGlzLmhhbmRsZXJzLmxlbmd0aCA9IDA7IC8vY2xlYXIgYXJyYXlcbiAgICB9LFxuXG4gICAgLypcbiAgICAgICAgKiBBc3Nlc3NlcyB0aGUgcXVlcnksIHR1cm5pbmcgb24gYWxsIGhhbmRsZXJzIGlmIGl0IG1hdGNoZXMsIHR1cm5pbmcgdGhlbSBvZmYgaWYgaXQgZG9lc24ndCBtYXRjaFxuICAgICAgICAqL1xuICAgIGFzc2VzcyA6IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgYWN0aW9uID0gdGhpcy5tYXRjaGVzKCkgPyAnb24nIDogJ29mZic7XG5cbiAgICAgICAgZWFjaCh0aGlzLmhhbmRsZXJzLCBmdW5jdGlvbihoYW5kbGVyKSB7XG4gICAgICAgICAgICBoYW5kbGVyW2FjdGlvbl0oKTtcbiAgICAgICAgfSk7XG4gICAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBNZWRpYVF1ZXJ5O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/enquire.js/src/MediaQuery.js\n"); + +/***/ }), + +/***/ "./node_modules/enquire.js/src/MediaQueryDispatch.js": +/*!***********************************************************!*\ + !*** ./node_modules/enquire.js/src/MediaQueryDispatch.js ***! + \***********************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var MediaQuery = __webpack_require__(/*! ./MediaQuery */ \"./node_modules/enquire.js/src/MediaQuery.js\");\nvar Util = __webpack_require__(/*! ./Util */ \"./node_modules/enquire.js/src/Util.js\");\nvar each = Util.each;\nvar isFunction = Util.isFunction;\nvar isArray = Util.isArray;\n\n/**\n * Allows for registration of query handlers.\n * Manages the query handler's state and is responsible for wiring up browser events\n *\n * @constructor\n */\nfunction MediaQueryDispatch () {\n if(!window.matchMedia) {\n throw new Error('matchMedia not present, legacy browsers require a polyfill');\n }\n\n this.queries = {};\n this.browserIsIncapable = !window.matchMedia('only all').matches;\n}\n\nMediaQueryDispatch.prototype = {\n\n constructor : MediaQueryDispatch,\n\n /**\n * Registers a handler for the given media query\n *\n * @param {string} q the media query\n * @param {object || Array || Function} options either a single query handler object, a function, or an array of query handlers\n * @param {function} options.match fired when query matched\n * @param {function} [options.unmatch] fired when a query is no longer matched\n * @param {function} [options.setup] fired when handler first triggered\n * @param {boolean} [options.deferSetup=false] whether setup should be run immediately or deferred until query is first matched\n * @param {boolean} [shouldDegrade=false] whether this particular media query should always run on incapable browsers\n */\n register : function(q, options, shouldDegrade) {\n var queries = this.queries,\n isUnconditional = shouldDegrade && this.browserIsIncapable;\n\n if(!queries[q]) {\n queries[q] = new MediaQuery(q, isUnconditional);\n }\n\n //normalise to object in an array\n if(isFunction(options)) {\n options = { match : options };\n }\n if(!isArray(options)) {\n options = [options];\n }\n each(options, function(handler) {\n if (isFunction(handler)) {\n handler = { match : handler };\n }\n queries[q].addHandler(handler);\n });\n\n return this;\n },\n\n /**\n * unregisters a query and all it's handlers, or a specific handler for a query\n *\n * @param {string} q the media query to target\n * @param {object || function} [handler] specific handler to unregister\n */\n unregister : function(q, handler) {\n var query = this.queries[q];\n\n if(query) {\n if(handler) {\n query.removeHandler(handler);\n }\n else {\n query.clear();\n delete this.queries[q];\n }\n }\n\n return this;\n }\n};\n\nmodule.exports = MediaQueryDispatch;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvZW5xdWlyZS5qcy9zcmMvTWVkaWFRdWVyeURpc3BhdGNoLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBLGlCQUFpQixtQkFBTyxDQUFDLGlFQUFjO0FBQ3ZDLFdBQVcsbUJBQU8sQ0FBQyxxREFBUTtBQUMzQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsUUFBUTtBQUN2QixlQUFlLDZCQUE2QjtBQUM1QyxlQUFlLFVBQVU7QUFDekIsZUFBZSxVQUFVO0FBQ3pCLGVBQWUsVUFBVTtBQUN6QixlQUFlLFNBQVM7QUFDeEIsZUFBZSxTQUFTO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0Esd0JBQXdCO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QjtBQUM1QjtBQUNBO0FBQ0EsU0FBUzs7QUFFVDtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0EsZUFBZSxRQUFRO0FBQ3ZCLGVBQWUsb0JBQW9CO0FBQ25DO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9lbnF1aXJlLmpzL3NyYy9NZWRpYVF1ZXJ5RGlzcGF0Y2guanM/NDE5OSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgTWVkaWFRdWVyeSA9IHJlcXVpcmUoJy4vTWVkaWFRdWVyeScpO1xudmFyIFV0aWwgPSByZXF1aXJlKCcuL1V0aWwnKTtcbnZhciBlYWNoID0gVXRpbC5lYWNoO1xudmFyIGlzRnVuY3Rpb24gPSBVdGlsLmlzRnVuY3Rpb247XG52YXIgaXNBcnJheSA9IFV0aWwuaXNBcnJheTtcblxuLyoqXG4gKiBBbGxvd3MgZm9yIHJlZ2lzdHJhdGlvbiBvZiBxdWVyeSBoYW5kbGVycy5cbiAqIE1hbmFnZXMgdGhlIHF1ZXJ5IGhhbmRsZXIncyBzdGF0ZSBhbmQgaXMgcmVzcG9uc2libGUgZm9yIHdpcmluZyB1cCBicm93c2VyIGV2ZW50c1xuICpcbiAqIEBjb25zdHJ1Y3RvclxuICovXG5mdW5jdGlvbiBNZWRpYVF1ZXJ5RGlzcGF0Y2ggKCkge1xuICAgIGlmKCF3aW5kb3cubWF0Y2hNZWRpYSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ21hdGNoTWVkaWEgbm90IHByZXNlbnQsIGxlZ2FjeSBicm93c2VycyByZXF1aXJlIGEgcG9seWZpbGwnKTtcbiAgICB9XG5cbiAgICB0aGlzLnF1ZXJpZXMgPSB7fTtcbiAgICB0aGlzLmJyb3dzZXJJc0luY2FwYWJsZSA9ICF3aW5kb3cubWF0Y2hNZWRpYSgnb25seSBhbGwnKS5tYXRjaGVzO1xufVxuXG5NZWRpYVF1ZXJ5RGlzcGF0Y2gucHJvdG90eXBlID0ge1xuXG4gICAgY29uc3RydWN0b3IgOiBNZWRpYVF1ZXJ5RGlzcGF0Y2gsXG5cbiAgICAvKipcbiAgICAgKiBSZWdpc3RlcnMgYSBoYW5kbGVyIGZvciB0aGUgZ2l2ZW4gbWVkaWEgcXVlcnlcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBxIHRoZSBtZWRpYSBxdWVyeVxuICAgICAqIEBwYXJhbSB7b2JqZWN0IHx8IEFycmF5IHx8IEZ1bmN0aW9ufSBvcHRpb25zIGVpdGhlciBhIHNpbmdsZSBxdWVyeSBoYW5kbGVyIG9iamVjdCwgYSBmdW5jdGlvbiwgb3IgYW4gYXJyYXkgb2YgcXVlcnkgaGFuZGxlcnNcbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBvcHRpb25zLm1hdGNoIGZpcmVkIHdoZW4gcXVlcnkgbWF0Y2hlZFxuICAgICAqIEBwYXJhbSB7ZnVuY3Rpb259IFtvcHRpb25zLnVubWF0Y2hdIGZpcmVkIHdoZW4gYSBxdWVyeSBpcyBubyBsb25nZXIgbWF0Y2hlZFxuICAgICAqIEBwYXJhbSB7ZnVuY3Rpb259IFtvcHRpb25zLnNldHVwXSBmaXJlZCB3aGVuIGhhbmRsZXIgZmlyc3QgdHJpZ2dlcmVkXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5kZWZlclNldHVwPWZhbHNlXSB3aGV0aGVyIHNldHVwIHNob3VsZCBiZSBydW4gaW1tZWRpYXRlbHkgb3IgZGVmZXJyZWQgdW50aWwgcXVlcnkgaXMgZmlyc3QgbWF0Y2hlZFxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW3Nob3VsZERlZ3JhZGU9ZmFsc2VdIHdoZXRoZXIgdGhpcyBwYXJ0aWN1bGFyIG1lZGlhIHF1ZXJ5IHNob3VsZCBhbHdheXMgcnVuIG9uIGluY2FwYWJsZSBicm93c2Vyc1xuICAgICAqL1xuICAgIHJlZ2lzdGVyIDogZnVuY3Rpb24ocSwgb3B0aW9ucywgc2hvdWxkRGVncmFkZSkge1xuICAgICAgICB2YXIgcXVlcmllcyAgICAgICAgID0gdGhpcy5xdWVyaWVzLFxuICAgICAgICAgICAgaXNVbmNvbmRpdGlvbmFsID0gc2hvdWxkRGVncmFkZSAmJiB0aGlzLmJyb3dzZXJJc0luY2FwYWJsZTtcblxuICAgICAgICBpZighcXVlcmllc1txXSkge1xuICAgICAgICAgICAgcXVlcmllc1txXSA9IG5ldyBNZWRpYVF1ZXJ5KHEsIGlzVW5jb25kaXRpb25hbCk7XG4gICAgICAgIH1cblxuICAgICAgICAvL25vcm1hbGlzZSB0byBvYmplY3QgaW4gYW4gYXJyYXlcbiAgICAgICAgaWYoaXNGdW5jdGlvbihvcHRpb25zKSkge1xuICAgICAgICAgICAgb3B0aW9ucyA9IHsgbWF0Y2ggOiBvcHRpb25zIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYoIWlzQXJyYXkob3B0aW9ucykpIHtcbiAgICAgICAgICAgIG9wdGlvbnMgPSBbb3B0aW9uc107XG4gICAgICAgIH1cbiAgICAgICAgZWFjaChvcHRpb25zLCBmdW5jdGlvbihoYW5kbGVyKSB7XG4gICAgICAgICAgICBpZiAoaXNGdW5jdGlvbihoYW5kbGVyKSkge1xuICAgICAgICAgICAgICAgIGhhbmRsZXIgPSB7IG1hdGNoIDogaGFuZGxlciB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcXVlcmllc1txXS5hZGRIYW5kbGVyKGhhbmRsZXIpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogdW5yZWdpc3RlcnMgYSBxdWVyeSBhbmQgYWxsIGl0J3MgaGFuZGxlcnMsIG9yIGEgc3BlY2lmaWMgaGFuZGxlciBmb3IgYSBxdWVyeVxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHEgdGhlIG1lZGlhIHF1ZXJ5IHRvIHRhcmdldFxuICAgICAqIEBwYXJhbSB7b2JqZWN0IHx8IGZ1bmN0aW9ufSBbaGFuZGxlcl0gc3BlY2lmaWMgaGFuZGxlciB0byB1bnJlZ2lzdGVyXG4gICAgICovXG4gICAgdW5yZWdpc3RlciA6IGZ1bmN0aW9uKHEsIGhhbmRsZXIpIHtcbiAgICAgICAgdmFyIHF1ZXJ5ID0gdGhpcy5xdWVyaWVzW3FdO1xuXG4gICAgICAgIGlmKHF1ZXJ5KSB7XG4gICAgICAgICAgICBpZihoYW5kbGVyKSB7XG4gICAgICAgICAgICAgICAgcXVlcnkucmVtb3ZlSGFuZGxlcihoYW5kbGVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHF1ZXJ5LmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMucXVlcmllc1txXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gTWVkaWFRdWVyeURpc3BhdGNoO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/enquire.js/src/MediaQueryDispatch.js\n"); + +/***/ }), + +/***/ "./node_modules/enquire.js/src/QueryHandler.js": +/*!*****************************************************!*\ + !*** ./node_modules/enquire.js/src/QueryHandler.js ***! + \*****************************************************/ +/***/ (function(module) { + +eval("/**\n * Delegate to handle a media query being matched and unmatched.\n *\n * @param {object} options\n * @param {function} options.match callback for when the media query is matched\n * @param {function} [options.unmatch] callback for when the media query is unmatched\n * @param {function} [options.setup] one-time callback triggered the first time a query is matched\n * @param {boolean} [options.deferSetup=false] should the setup callback be run immediately, rather than first time query is matched?\n * @constructor\n */\nfunction QueryHandler(options) {\n this.options = options;\n !options.deferSetup && this.setup();\n}\n\nQueryHandler.prototype = {\n\n constructor : QueryHandler,\n\n /**\n * coordinates setup of the handler\n *\n * @function\n */\n setup : function() {\n if(this.options.setup) {\n this.options.setup();\n }\n this.initialised = true;\n },\n\n /**\n * coordinates setup and triggering of the handler\n *\n * @function\n */\n on : function() {\n !this.initialised && this.setup();\n this.options.match && this.options.match();\n },\n\n /**\n * coordinates the unmatch event for the handler\n *\n * @function\n */\n off : function() {\n this.options.unmatch && this.options.unmatch();\n },\n\n /**\n * called when a handler is to be destroyed.\n * delegates to the destroy or unmatch callbacks, depending on availability.\n *\n * @function\n */\n destroy : function() {\n this.options.destroy ? this.options.destroy() : this.off();\n },\n\n /**\n * determines equality by reference.\n * if object is supplied compare options, if function, compare match callback\n *\n * @function\n * @param {object || function} [target] the target for comparison\n */\n equals : function(target) {\n return this.options === target || this.options.match === target;\n }\n\n};\n\nmodule.exports = QueryHandler;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvZW5xdWlyZS5qcy9zcmMvUXVlcnlIYW5kbGVyLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLFVBQVU7QUFDckIsV0FBVyxVQUFVO0FBQ3JCLFdBQVcsVUFBVTtBQUNyQixXQUFXLFNBQVM7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsb0JBQW9CO0FBQ25DO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9lbnF1aXJlLmpzL3NyYy9RdWVyeUhhbmRsZXIuanM/NjQwMyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERlbGVnYXRlIHRvIGhhbmRsZSBhIG1lZGlhIHF1ZXJ5IGJlaW5nIG1hdGNoZWQgYW5kIHVubWF0Y2hlZC5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gb3B0aW9uc1xuICogQHBhcmFtIHtmdW5jdGlvbn0gb3B0aW9ucy5tYXRjaCBjYWxsYmFjayBmb3Igd2hlbiB0aGUgbWVkaWEgcXVlcnkgaXMgbWF0Y2hlZFxuICogQHBhcmFtIHtmdW5jdGlvbn0gW29wdGlvbnMudW5tYXRjaF0gY2FsbGJhY2sgZm9yIHdoZW4gdGhlIG1lZGlhIHF1ZXJ5IGlzIHVubWF0Y2hlZFxuICogQHBhcmFtIHtmdW5jdGlvbn0gW29wdGlvbnMuc2V0dXBdIG9uZS10aW1lIGNhbGxiYWNrIHRyaWdnZXJlZCB0aGUgZmlyc3QgdGltZSBhIHF1ZXJ5IGlzIG1hdGNoZWRcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuZGVmZXJTZXR1cD1mYWxzZV0gc2hvdWxkIHRoZSBzZXR1cCBjYWxsYmFjayBiZSBydW4gaW1tZWRpYXRlbHksIHJhdGhlciB0aGFuIGZpcnN0IHRpbWUgcXVlcnkgaXMgbWF0Y2hlZD9cbiAqIEBjb25zdHJ1Y3RvclxuICovXG5mdW5jdGlvbiBRdWVyeUhhbmRsZXIob3B0aW9ucykge1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgIW9wdGlvbnMuZGVmZXJTZXR1cCAmJiB0aGlzLnNldHVwKCk7XG59XG5cblF1ZXJ5SGFuZGxlci5wcm90b3R5cGUgPSB7XG5cbiAgICBjb25zdHJ1Y3RvciA6IFF1ZXJ5SGFuZGxlcixcblxuICAgIC8qKlxuICAgICAqIGNvb3JkaW5hdGVzIHNldHVwIG9mIHRoZSBoYW5kbGVyXG4gICAgICpcbiAgICAgKiBAZnVuY3Rpb25cbiAgICAgKi9cbiAgICBzZXR1cCA6IGZ1bmN0aW9uKCkge1xuICAgICAgICBpZih0aGlzLm9wdGlvbnMuc2V0dXApIHtcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucy5zZXR1cCgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW5pdGlhbGlzZWQgPSB0cnVlO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBjb29yZGluYXRlcyBzZXR1cCBhbmQgdHJpZ2dlcmluZyBvZiB0aGUgaGFuZGxlclxuICAgICAqXG4gICAgICogQGZ1bmN0aW9uXG4gICAgICovXG4gICAgb24gOiBmdW5jdGlvbigpIHtcbiAgICAgICAgIXRoaXMuaW5pdGlhbGlzZWQgJiYgdGhpcy5zZXR1cCgpO1xuICAgICAgICB0aGlzLm9wdGlvbnMubWF0Y2ggJiYgdGhpcy5vcHRpb25zLm1hdGNoKCk7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIGNvb3JkaW5hdGVzIHRoZSB1bm1hdGNoIGV2ZW50IGZvciB0aGUgaGFuZGxlclxuICAgICAqXG4gICAgICogQGZ1bmN0aW9uXG4gICAgICovXG4gICAgb2ZmIDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHRoaXMub3B0aW9ucy51bm1hdGNoICYmIHRoaXMub3B0aW9ucy51bm1hdGNoKCk7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIGNhbGxlZCB3aGVuIGEgaGFuZGxlciBpcyB0byBiZSBkZXN0cm95ZWQuXG4gICAgICogZGVsZWdhdGVzIHRvIHRoZSBkZXN0cm95IG9yIHVubWF0Y2ggY2FsbGJhY2tzLCBkZXBlbmRpbmcgb24gYXZhaWxhYmlsaXR5LlxuICAgICAqXG4gICAgICogQGZ1bmN0aW9uXG4gICAgICovXG4gICAgZGVzdHJveSA6IGZ1bmN0aW9uKCkge1xuICAgICAgICB0aGlzLm9wdGlvbnMuZGVzdHJveSA/IHRoaXMub3B0aW9ucy5kZXN0cm95KCkgOiB0aGlzLm9mZigpO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBkZXRlcm1pbmVzIGVxdWFsaXR5IGJ5IHJlZmVyZW5jZS5cbiAgICAgKiBpZiBvYmplY3QgaXMgc3VwcGxpZWQgY29tcGFyZSBvcHRpb25zLCBpZiBmdW5jdGlvbiwgY29tcGFyZSBtYXRjaCBjYWxsYmFja1xuICAgICAqXG4gICAgICogQGZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtvYmplY3QgfHwgZnVuY3Rpb259IFt0YXJnZXRdIHRoZSB0YXJnZXQgZm9yIGNvbXBhcmlzb25cbiAgICAgKi9cbiAgICBlcXVhbHMgOiBmdW5jdGlvbih0YXJnZXQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucyA9PT0gdGFyZ2V0IHx8IHRoaXMub3B0aW9ucy5tYXRjaCA9PT0gdGFyZ2V0O1xuICAgIH1cblxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBRdWVyeUhhbmRsZXI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/enquire.js/src/QueryHandler.js\n"); + +/***/ }), + +/***/ "./node_modules/enquire.js/src/Util.js": +/*!*********************************************!*\ + !*** ./node_modules/enquire.js/src/Util.js ***! + \*********************************************/ +/***/ (function(module) { + +eval("/**\n * Helper function for iterating over a collection\n *\n * @param collection\n * @param fn\n */\nfunction each(collection, fn) {\n var i = 0,\n length = collection.length,\n cont;\n\n for(i; i < length; i++) {\n cont = fn(collection[i], i);\n if(cont === false) {\n break; //allow early exit\n }\n }\n}\n\n/**\n * Helper function for determining whether target object is an array\n *\n * @param target the object under test\n * @return {Boolean} true if array, false otherwise\n */\nfunction isArray(target) {\n return Object.prototype.toString.apply(target) === '[object Array]';\n}\n\n/**\n * Helper function for determining whether target object is a function\n *\n * @param target the object under test\n * @return {Boolean} true if function, false otherwise\n */\nfunction isFunction(target) {\n return typeof target === 'function';\n}\n\nmodule.exports = {\n isFunction : isFunction,\n isArray : isArray,\n each : each\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvZW5xdWlyZS5qcy9zcmMvVXRpbC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxXQUFXLFlBQVk7QUFDdkI7QUFDQTtBQUNBLG1CQUFtQjtBQUNuQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLFNBQVM7QUFDckI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLFNBQVM7QUFDckI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvZW5xdWlyZS5qcy9zcmMvVXRpbC5qcz8wMTA1Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIGZvciBpdGVyYXRpbmcgb3ZlciBhIGNvbGxlY3Rpb25cbiAqXG4gKiBAcGFyYW0gY29sbGVjdGlvblxuICogQHBhcmFtIGZuXG4gKi9cbmZ1bmN0aW9uIGVhY2goY29sbGVjdGlvbiwgZm4pIHtcbiAgICB2YXIgaSAgICAgID0gMCxcbiAgICAgICAgbGVuZ3RoID0gY29sbGVjdGlvbi5sZW5ndGgsXG4gICAgICAgIGNvbnQ7XG5cbiAgICBmb3IoaTsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnQgPSBmbihjb2xsZWN0aW9uW2ldLCBpKTtcbiAgICAgICAgaWYoY29udCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGJyZWFrOyAvL2FsbG93IGVhcmx5IGV4aXRcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gZm9yIGRldGVybWluaW5nIHdoZXRoZXIgdGFyZ2V0IG9iamVjdCBpcyBhbiBhcnJheVxuICpcbiAqIEBwYXJhbSB0YXJnZXQgdGhlIG9iamVjdCB1bmRlciB0ZXN0XG4gKiBAcmV0dXJuIHtCb29sZWFufSB0cnVlIGlmIGFycmF5LCBmYWxzZSBvdGhlcndpc2VcbiAqL1xuZnVuY3Rpb24gaXNBcnJheSh0YXJnZXQpIHtcbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5hcHBseSh0YXJnZXQpID09PSAnW29iamVjdCBBcnJheV0nO1xufVxuXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiBmb3IgZGV0ZXJtaW5pbmcgd2hldGhlciB0YXJnZXQgb2JqZWN0IGlzIGEgZnVuY3Rpb25cbiAqXG4gKiBAcGFyYW0gdGFyZ2V0IHRoZSBvYmplY3QgdW5kZXIgdGVzdFxuICogQHJldHVybiB7Qm9vbGVhbn0gdHJ1ZSBpZiBmdW5jdGlvbiwgZmFsc2Ugb3RoZXJ3aXNlXG4gKi9cbmZ1bmN0aW9uIGlzRnVuY3Rpb24odGFyZ2V0KSB7XG4gICAgcmV0dXJuIHR5cGVvZiB0YXJnZXQgPT09ICdmdW5jdGlvbic7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIGlzRnVuY3Rpb24gOiBpc0Z1bmN0aW9uLFxuICAgIGlzQXJyYXkgOiBpc0FycmF5LFxuICAgIGVhY2ggOiBlYWNoXG59O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/enquire.js/src/Util.js\n"); + +/***/ }), + +/***/ "./node_modules/enquire.js/src/index.js": +/*!**********************************************!*\ + !*** ./node_modules/enquire.js/src/index.js ***! + \**********************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var MediaQueryDispatch = __webpack_require__(/*! ./MediaQueryDispatch */ \"./node_modules/enquire.js/src/MediaQueryDispatch.js\");\nmodule.exports = new MediaQueryDispatch();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvZW5xdWlyZS5qcy9zcmMvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQUEseUJBQXlCLG1CQUFPLENBQUMsaUZBQXNCO0FBQ3ZEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9lbnF1aXJlLmpzL3NyYy9pbmRleC5qcz83YjFiIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBNZWRpYVF1ZXJ5RGlzcGF0Y2ggPSByZXF1aXJlKCcuL01lZGlhUXVlcnlEaXNwYXRjaCcpO1xubW9kdWxlLmV4cG9ydHMgPSBuZXcgTWVkaWFRdWVyeURpc3BhdGNoKCk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/enquire.js/src/index.js\n"); + +/***/ }), + +/***/ "./node_modules/json2mq/index.js": +/*!***************************************!*\ + !*** ./node_modules/json2mq/index.js ***! + \***************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var camel2hyphen = __webpack_require__(/*! string-convert/camel2hyphen */ \"./node_modules/string-convert/camel2hyphen.js\");\n\nvar isDimension = function (feature) {\n var re = /[height|width]$/;\n return re.test(feature);\n};\n\nvar obj2mq = function (obj) {\n var mq = '';\n var features = Object.keys(obj);\n features.forEach(function (feature, index) {\n var value = obj[feature];\n feature = camel2hyphen(feature);\n // Add px to dimension features\n if (isDimension(feature) && typeof value === 'number') {\n value = value + 'px';\n }\n if (value === true) {\n mq += feature;\n } else if (value === false) {\n mq += 'not ' + feature;\n } else {\n mq += '(' + feature + ': ' + value + ')';\n }\n if (index < features.length-1) {\n mq += ' and '\n }\n });\n return mq;\n};\n\nvar json2mq = function (query) {\n var mq = '';\n if (typeof query === 'string') {\n return query;\n }\n // Handling array of media queries\n if (query instanceof Array) {\n query.forEach(function (q, index) {\n mq += obj2mq(q);\n if (index < query.length-1) {\n mq += ', '\n }\n });\n return mq;\n }\n // Handling single media query\n return obj2mq(query);\n};\n\nmodule.exports = json2mq;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvanNvbjJtcS9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQSxtQkFBbUIsbUJBQU8sQ0FBQyxrRkFBNkI7O0FBRXhEO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2pzb24ybXEvaW5kZXguanM/YTRkZSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgY2FtZWwyaHlwaGVuID0gcmVxdWlyZSgnc3RyaW5nLWNvbnZlcnQvY2FtZWwyaHlwaGVuJyk7XG5cbnZhciBpc0RpbWVuc2lvbiA9IGZ1bmN0aW9uIChmZWF0dXJlKSB7XG4gIHZhciByZSA9IC9baGVpZ2h0fHdpZHRoXSQvO1xuICByZXR1cm4gcmUudGVzdChmZWF0dXJlKTtcbn07XG5cbnZhciBvYmoybXEgPSBmdW5jdGlvbiAob2JqKSB7XG4gIHZhciBtcSA9ICcnO1xuICB2YXIgZmVhdHVyZXMgPSBPYmplY3Qua2V5cyhvYmopO1xuICBmZWF0dXJlcy5mb3JFYWNoKGZ1bmN0aW9uIChmZWF0dXJlLCBpbmRleCkge1xuICAgIHZhciB2YWx1ZSA9IG9ialtmZWF0dXJlXTtcbiAgICBmZWF0dXJlID0gY2FtZWwyaHlwaGVuKGZlYXR1cmUpO1xuICAgIC8vIEFkZCBweCB0byBkaW1lbnNpb24gZmVhdHVyZXNcbiAgICBpZiAoaXNEaW1lbnNpb24oZmVhdHVyZSkgJiYgdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgdmFsdWUgPSB2YWx1ZSArICdweCc7XG4gICAgfVxuICAgIGlmICh2YWx1ZSA9PT0gdHJ1ZSkge1xuICAgICAgbXEgKz0gZmVhdHVyZTtcbiAgICB9IGVsc2UgaWYgKHZhbHVlID09PSBmYWxzZSkge1xuICAgICAgbXEgKz0gJ25vdCAnICsgZmVhdHVyZTtcbiAgICB9IGVsc2Uge1xuICAgICAgbXEgKz0gJygnICsgZmVhdHVyZSArICc6ICcgKyB2YWx1ZSArICcpJztcbiAgICB9XG4gICAgaWYgKGluZGV4IDwgZmVhdHVyZXMubGVuZ3RoLTEpIHtcbiAgICAgIG1xICs9ICcgYW5kICdcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gbXE7XG59O1xuXG52YXIganNvbjJtcSA9IGZ1bmN0aW9uIChxdWVyeSkge1xuICB2YXIgbXEgPSAnJztcbiAgaWYgKHR5cGVvZiBxdWVyeSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gcXVlcnk7XG4gIH1cbiAgLy8gSGFuZGxpbmcgYXJyYXkgb2YgbWVkaWEgcXVlcmllc1xuICBpZiAocXVlcnkgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgIHF1ZXJ5LmZvckVhY2goZnVuY3Rpb24gKHEsIGluZGV4KSB7XG4gICAgICBtcSArPSBvYmoybXEocSk7XG4gICAgICBpZiAoaW5kZXggPCBxdWVyeS5sZW5ndGgtMSkge1xuICAgICAgICBtcSArPSAnLCAnXG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIG1xO1xuICB9XG4gIC8vIEhhbmRsaW5nIHNpbmdsZSBtZWRpYSBxdWVyeVxuICByZXR1cm4gb2JqMm1xKHF1ZXJ5KTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ganNvbjJtcTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/json2mq/index.js\n"); + +/***/ }), + +/***/ "./node_modules/lodash.debounce/index.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash.debounce/index.js ***! + \***********************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof __webpack_require__.g == 'object' && __webpack_require__.g && __webpack_require__.g.Object === Object && __webpack_require__.g;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLmRlYm91bmNlL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0Esd0JBQXdCLHFCQUFNLGdCQUFnQixxQkFBTSxJQUFJLHFCQUFNLHNCQUFzQixxQkFBTTs7QUFFMUY7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFVBQVU7QUFDckIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUSxXQUFXO0FBQzlCLFdBQVcsU0FBUztBQUNwQjtBQUNBLFdBQVcsUUFBUTtBQUNuQjtBQUNBLFdBQVcsU0FBUztBQUNwQjtBQUNBLGFBQWEsVUFBVTtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLCtDQUErQyxpQkFBaUI7QUFDaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2QsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9sb2Rhc2guZGVib3VuY2UvaW5kZXguanM/ODlhOCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGxvZGFzaCAoQ3VzdG9tIEJ1aWxkKSA8aHR0cHM6Ly9sb2Rhc2guY29tLz5cbiAqIEJ1aWxkOiBgbG9kYXNoIG1vZHVsYXJpemUgZXhwb3J0cz1cIm5wbVwiIC1vIC4vYFxuICogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMgPGh0dHBzOi8vanF1ZXJ5Lm9yZy8+XG4gKiBSZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZSA8aHR0cHM6Ly9sb2Rhc2guY29tL2xpY2Vuc2U+XG4gKiBCYXNlZCBvbiBVbmRlcnNjb3JlLmpzIDEuOC4zIDxodHRwOi8vdW5kZXJzY29yZWpzLm9yZy9MSUNFTlNFPlxuICogQ29weXJpZ2h0IEplcmVteSBBc2hrZW5hcywgRG9jdW1lbnRDbG91ZCBhbmQgSW52ZXN0aWdhdGl2ZSBSZXBvcnRlcnMgJiBFZGl0b3JzXG4gKi9cblxuLyoqIFVzZWQgYXMgdGhlIGBUeXBlRXJyb3JgIG1lc3NhZ2UgZm9yIFwiRnVuY3Rpb25zXCIgbWV0aG9kcy4gKi9cbnZhciBGVU5DX0VSUk9SX1RFWFQgPSAnRXhwZWN0ZWQgYSBmdW5jdGlvbic7XG5cbi8qKiBVc2VkIGFzIHJlZmVyZW5jZXMgZm9yIHZhcmlvdXMgYE51bWJlcmAgY29uc3RhbnRzLiAqL1xudmFyIE5BTiA9IDAgLyAwO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgc3ltYm9sVGFnID0gJ1tvYmplY3QgU3ltYm9sXSc7XG5cbi8qKiBVc2VkIHRvIG1hdGNoIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2UuICovXG52YXIgcmVUcmltID0gL15cXHMrfFxccyskL2c7XG5cbi8qKiBVc2VkIHRvIGRldGVjdCBiYWQgc2lnbmVkIGhleGFkZWNpbWFsIHN0cmluZyB2YWx1ZXMuICovXG52YXIgcmVJc0JhZEhleCA9IC9eWy0rXTB4WzAtOWEtZl0rJC9pO1xuXG4vKiogVXNlZCB0byBkZXRlY3QgYmluYXJ5IHN0cmluZyB2YWx1ZXMuICovXG52YXIgcmVJc0JpbmFyeSA9IC9eMGJbMDFdKyQvaTtcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IG9jdGFsIHN0cmluZyB2YWx1ZXMuICovXG52YXIgcmVJc09jdGFsID0gL14wb1swLTddKyQvaTtcblxuLyoqIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIHdpdGhvdXQgYSBkZXBlbmRlbmN5IG9uIGByb290YC4gKi9cbnZhciBmcmVlUGFyc2VJbnQgPSBwYXJzZUludDtcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBnbG9iYWxgIGZyb20gTm9kZS5qcy4gKi9cbnZhciBmcmVlR2xvYmFsID0gdHlwZW9mIGdsb2JhbCA9PSAnb2JqZWN0JyAmJiBnbG9iYWwgJiYgZ2xvYmFsLk9iamVjdCA9PT0gT2JqZWN0ICYmIGdsb2JhbDtcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBzZWxmYC4gKi9cbnZhciBmcmVlU2VsZiA9IHR5cGVvZiBzZWxmID09ICdvYmplY3QnICYmIHNlbGYgJiYgc2VsZi5PYmplY3QgPT09IE9iamVjdCAmJiBzZWxmO1xuXG4vKiogVXNlZCBhcyBhIHJlZmVyZW5jZSB0byB0aGUgZ2xvYmFsIG9iamVjdC4gKi9cbnZhciByb290ID0gZnJlZUdsb2JhbCB8fCBmcmVlU2VsZiB8fCBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKipcbiAqIFVzZWQgdG8gcmVzb2x2ZSB0aGVcbiAqIFtgdG9TdHJpbmdUYWdgXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1vYmplY3QucHJvdG90eXBlLnRvc3RyaW5nKVxuICogb2YgdmFsdWVzLlxuICovXG52YXIgb2JqZWN0VG9TdHJpbmcgPSBvYmplY3RQcm90by50b1N0cmluZztcblxuLyogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xudmFyIG5hdGl2ZU1heCA9IE1hdGgubWF4LFxuICAgIG5hdGl2ZU1pbiA9IE1hdGgubWluO1xuXG4vKipcbiAqIEdldHMgdGhlIHRpbWVzdGFtcCBvZiB0aGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0aGF0IGhhdmUgZWxhcHNlZCBzaW5jZVxuICogdGhlIFVuaXggZXBvY2ggKDEgSmFudWFyeSAxOTcwIDAwOjAwOjAwIFVUQykuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAyLjQuMFxuICogQGNhdGVnb3J5IERhdGVcbiAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHRpbWVzdGFtcC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5kZWZlcihmdW5jdGlvbihzdGFtcCkge1xuICogICBjb25zb2xlLmxvZyhfLm5vdygpIC0gc3RhbXApO1xuICogfSwgXy5ub3coKSk7XG4gKiAvLyA9PiBMb2dzIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGl0IHRvb2sgZm9yIHRoZSBkZWZlcnJlZCBpbnZvY2F0aW9uLlxuICovXG52YXIgbm93ID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiByb290LkRhdGUubm93KCk7XG59O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBkZWJvdW5jZWQgZnVuY3Rpb24gdGhhdCBkZWxheXMgaW52b2tpbmcgYGZ1bmNgIHVudGlsIGFmdGVyIGB3YWl0YFxuICogbWlsbGlzZWNvbmRzIGhhdmUgZWxhcHNlZCBzaW5jZSB0aGUgbGFzdCB0aW1lIHRoZSBkZWJvdW5jZWQgZnVuY3Rpb24gd2FzXG4gKiBpbnZva2VkLiBUaGUgZGVib3VuY2VkIGZ1bmN0aW9uIGNvbWVzIHdpdGggYSBgY2FuY2VsYCBtZXRob2QgdG8gY2FuY2VsXG4gKiBkZWxheWVkIGBmdW5jYCBpbnZvY2F0aW9ucyBhbmQgYSBgZmx1c2hgIG1ldGhvZCB0byBpbW1lZGlhdGVseSBpbnZva2UgdGhlbS5cbiAqIFByb3ZpZGUgYG9wdGlvbnNgIHRvIGluZGljYXRlIHdoZXRoZXIgYGZ1bmNgIHNob3VsZCBiZSBpbnZva2VkIG9uIHRoZVxuICogbGVhZGluZyBhbmQvb3IgdHJhaWxpbmcgZWRnZSBvZiB0aGUgYHdhaXRgIHRpbWVvdXQuIFRoZSBgZnVuY2AgaXMgaW52b2tlZFxuICogd2l0aCB0aGUgbGFzdCBhcmd1bWVudHMgcHJvdmlkZWQgdG8gdGhlIGRlYm91bmNlZCBmdW5jdGlvbi4gU3Vic2VxdWVudFxuICogY2FsbHMgdG8gdGhlIGRlYm91bmNlZCBmdW5jdGlvbiByZXR1cm4gdGhlIHJlc3VsdCBvZiB0aGUgbGFzdCBgZnVuY2BcbiAqIGludm9jYXRpb24uXG4gKlxuICogKipOb3RlOioqIElmIGBsZWFkaW5nYCBhbmQgYHRyYWlsaW5nYCBvcHRpb25zIGFyZSBgdHJ1ZWAsIGBmdW5jYCBpc1xuICogaW52b2tlZCBvbiB0aGUgdHJhaWxpbmcgZWRnZSBvZiB0aGUgdGltZW91dCBvbmx5IGlmIHRoZSBkZWJvdW5jZWQgZnVuY3Rpb25cbiAqIGlzIGludm9rZWQgbW9yZSB0aGFuIG9uY2UgZHVyaW5nIHRoZSBgd2FpdGAgdGltZW91dC5cbiAqXG4gKiBJZiBgd2FpdGAgaXMgYDBgIGFuZCBgbGVhZGluZ2AgaXMgYGZhbHNlYCwgYGZ1bmNgIGludm9jYXRpb24gaXMgZGVmZXJyZWRcbiAqIHVudGlsIHRvIHRoZSBuZXh0IHRpY2ssIHNpbWlsYXIgdG8gYHNldFRpbWVvdXRgIHdpdGggYSB0aW1lb3V0IG9mIGAwYC5cbiAqXG4gKiBTZWUgW0RhdmlkIENvcmJhY2hvJ3MgYXJ0aWNsZV0oaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS9kZWJvdW5jaW5nLXRocm90dGxpbmctZXhwbGFpbmVkLWV4YW1wbGVzLylcbiAqIGZvciBkZXRhaWxzIG92ZXIgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gYF8uZGVib3VuY2VgIGFuZCBgXy50aHJvdHRsZWAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBkZWJvdW5jZS5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbd2FpdD0wXSBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byBkZWxheS5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9ucz17fV0gVGhlIG9wdGlvbnMgb2JqZWN0LlxuICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWFkaW5nPWZhbHNlXVxuICogIFNwZWNpZnkgaW52b2tpbmcgb24gdGhlIGxlYWRpbmcgZWRnZSBvZiB0aGUgdGltZW91dC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5tYXhXYWl0XVxuICogIFRoZSBtYXhpbXVtIHRpbWUgYGZ1bmNgIGlzIGFsbG93ZWQgdG8gYmUgZGVsYXllZCBiZWZvcmUgaXQncyBpbnZva2VkLlxuICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy50cmFpbGluZz10cnVlXVxuICogIFNwZWNpZnkgaW52b2tpbmcgb24gdGhlIHRyYWlsaW5nIGVkZ2Ugb2YgdGhlIHRpbWVvdXQuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBkZWJvdW5jZWQgZnVuY3Rpb24uXG4gKiBAZXhhbXBsZVxuICpcbiAqIC8vIEF2b2lkIGNvc3RseSBjYWxjdWxhdGlvbnMgd2hpbGUgdGhlIHdpbmRvdyBzaXplIGlzIGluIGZsdXguXG4gKiBqUXVlcnkod2luZG93KS5vbigncmVzaXplJywgXy5kZWJvdW5jZShjYWxjdWxhdGVMYXlvdXQsIDE1MCkpO1xuICpcbiAqIC8vIEludm9rZSBgc2VuZE1haWxgIHdoZW4gY2xpY2tlZCwgZGVib3VuY2luZyBzdWJzZXF1ZW50IGNhbGxzLlxuICogalF1ZXJ5KGVsZW1lbnQpLm9uKCdjbGljaycsIF8uZGVib3VuY2Uoc2VuZE1haWwsIDMwMCwge1xuICogICAnbGVhZGluZyc6IHRydWUsXG4gKiAgICd0cmFpbGluZyc6IGZhbHNlXG4gKiB9KSk7XG4gKlxuICogLy8gRW5zdXJlIGBiYXRjaExvZ2AgaXMgaW52b2tlZCBvbmNlIGFmdGVyIDEgc2Vjb25kIG9mIGRlYm91bmNlZCBjYWxscy5cbiAqIHZhciBkZWJvdW5jZWQgPSBfLmRlYm91bmNlKGJhdGNoTG9nLCAyNTAsIHsgJ21heFdhaXQnOiAxMDAwIH0pO1xuICogdmFyIHNvdXJjZSA9IG5ldyBFdmVudFNvdXJjZSgnL3N0cmVhbScpO1xuICogalF1ZXJ5KHNvdXJjZSkub24oJ21lc3NhZ2UnLCBkZWJvdW5jZWQpO1xuICpcbiAqIC8vIENhbmNlbCB0aGUgdHJhaWxpbmcgZGVib3VuY2VkIGludm9jYXRpb24uXG4gKiBqUXVlcnkod2luZG93KS5vbigncG9wc3RhdGUnLCBkZWJvdW5jZWQuY2FuY2VsKTtcbiAqL1xuZnVuY3Rpb24gZGVib3VuY2UoZnVuYywgd2FpdCwgb3B0aW9ucykge1xuICB2YXIgbGFzdEFyZ3MsXG4gICAgICBsYXN0VGhpcyxcbiAgICAgIG1heFdhaXQsXG4gICAgICByZXN1bHQsXG4gICAgICB0aW1lcklkLFxuICAgICAgbGFzdENhbGxUaW1lLFxuICAgICAgbGFzdEludm9rZVRpbWUgPSAwLFxuICAgICAgbGVhZGluZyA9IGZhbHNlLFxuICAgICAgbWF4aW5nID0gZmFsc2UsXG4gICAgICB0cmFpbGluZyA9IHRydWU7XG5cbiAgaWYgKHR5cGVvZiBmdW5jICE9ICdmdW5jdGlvbicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEZVTkNfRVJST1JfVEVYVCk7XG4gIH1cbiAgd2FpdCA9IHRvTnVtYmVyKHdhaXQpIHx8IDA7XG4gIGlmIChpc09iamVjdChvcHRpb25zKSkge1xuICAgIGxlYWRpbmcgPSAhIW9wdGlvbnMubGVhZGluZztcbiAgICBtYXhpbmcgPSAnbWF4V2FpdCcgaW4gb3B0aW9ucztcbiAgICBtYXhXYWl0ID0gbWF4aW5nID8gbmF0aXZlTWF4KHRvTnVtYmVyKG9wdGlvbnMubWF4V2FpdCkgfHwgMCwgd2FpdCkgOiBtYXhXYWl0O1xuICAgIHRyYWlsaW5nID0gJ3RyYWlsaW5nJyBpbiBvcHRpb25zID8gISFvcHRpb25zLnRyYWlsaW5nIDogdHJhaWxpbmc7XG4gIH1cblxuICBmdW5jdGlvbiBpbnZva2VGdW5jKHRpbWUpIHtcbiAgICB2YXIgYXJncyA9IGxhc3RBcmdzLFxuICAgICAgICB0aGlzQXJnID0gbGFzdFRoaXM7XG5cbiAgICBsYXN0QXJncyA9IGxhc3RUaGlzID0gdW5kZWZpbmVkO1xuICAgIGxhc3RJbnZva2VUaW1lID0gdGltZTtcbiAgICByZXN1bHQgPSBmdW5jLmFwcGx5KHRoaXNBcmcsIGFyZ3MpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBmdW5jdGlvbiBsZWFkaW5nRWRnZSh0aW1lKSB7XG4gICAgLy8gUmVzZXQgYW55IGBtYXhXYWl0YCB0aW1lci5cbiAgICBsYXN0SW52b2tlVGltZSA9IHRpbWU7XG4gICAgLy8gU3RhcnQgdGhlIHRpbWVyIGZvciB0aGUgdHJhaWxpbmcgZWRnZS5cbiAgICB0aW1lcklkID0gc2V0VGltZW91dCh0aW1lckV4cGlyZWQsIHdhaXQpO1xuICAgIC8vIEludm9rZSB0aGUgbGVhZGluZyBlZGdlLlxuICAgIHJldHVybiBsZWFkaW5nID8gaW52b2tlRnVuYyh0aW1lKSA6IHJlc3VsdDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlbWFpbmluZ1dhaXQodGltZSkge1xuICAgIHZhciB0aW1lU2luY2VMYXN0Q2FsbCA9IHRpbWUgLSBsYXN0Q2FsbFRpbWUsXG4gICAgICAgIHRpbWVTaW5jZUxhc3RJbnZva2UgPSB0aW1lIC0gbGFzdEludm9rZVRpbWUsXG4gICAgICAgIHJlc3VsdCA9IHdhaXQgLSB0aW1lU2luY2VMYXN0Q2FsbDtcblxuICAgIHJldHVybiBtYXhpbmcgPyBuYXRpdmVNaW4ocmVzdWx0LCBtYXhXYWl0IC0gdGltZVNpbmNlTGFzdEludm9rZSkgOiByZXN1bHQ7XG4gIH1cblxuICBmdW5jdGlvbiBzaG91bGRJbnZva2UodGltZSkge1xuICAgIHZhciB0aW1lU2luY2VMYXN0Q2FsbCA9IHRpbWUgLSBsYXN0Q2FsbFRpbWUsXG4gICAgICAgIHRpbWVTaW5jZUxhc3RJbnZva2UgPSB0aW1lIC0gbGFzdEludm9rZVRpbWU7XG5cbiAgICAvLyBFaXRoZXIgdGhpcyBpcyB0aGUgZmlyc3QgY2FsbCwgYWN0aXZpdHkgaGFzIHN0b3BwZWQgYW5kIHdlJ3JlIGF0IHRoZVxuICAgIC8vIHRyYWlsaW5nIGVkZ2UsIHRoZSBzeXN0ZW0gdGltZSBoYXMgZ29uZSBiYWNrd2FyZHMgYW5kIHdlJ3JlIHRyZWF0aW5nXG4gICAgLy8gaXQgYXMgdGhlIHRyYWlsaW5nIGVkZ2UsIG9yIHdlJ3ZlIGhpdCB0aGUgYG1heFdhaXRgIGxpbWl0LlxuICAgIHJldHVybiAobGFzdENhbGxUaW1lID09PSB1bmRlZmluZWQgfHwgKHRpbWVTaW5jZUxhc3RDYWxsID49IHdhaXQpIHx8XG4gICAgICAodGltZVNpbmNlTGFzdENhbGwgPCAwKSB8fCAobWF4aW5nICYmIHRpbWVTaW5jZUxhc3RJbnZva2UgPj0gbWF4V2FpdCkpO1xuICB9XG5cbiAgZnVuY3Rpb24gdGltZXJFeHBpcmVkKCkge1xuICAgIHZhciB0aW1lID0gbm93KCk7XG4gICAgaWYgKHNob3VsZEludm9rZSh0aW1lKSkge1xuICAgICAgcmV0dXJuIHRyYWlsaW5nRWRnZSh0aW1lKTtcbiAgICB9XG4gICAgLy8gUmVzdGFydCB0aGUgdGltZXIuXG4gICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCByZW1haW5pbmdXYWl0KHRpbWUpKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHRyYWlsaW5nRWRnZSh0aW1lKSB7XG4gICAgdGltZXJJZCA9IHVuZGVmaW5lZDtcblxuICAgIC8vIE9ubHkgaW52b2tlIGlmIHdlIGhhdmUgYGxhc3RBcmdzYCB3aGljaCBtZWFucyBgZnVuY2AgaGFzIGJlZW5cbiAgICAvLyBkZWJvdW5jZWQgYXQgbGVhc3Qgb25jZS5cbiAgICBpZiAodHJhaWxpbmcgJiYgbGFzdEFyZ3MpIHtcbiAgICAgIHJldHVybiBpbnZva2VGdW5jKHRpbWUpO1xuICAgIH1cbiAgICBsYXN0QXJncyA9IGxhc3RUaGlzID0gdW5kZWZpbmVkO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBmdW5jdGlvbiBjYW5jZWwoKSB7XG4gICAgaWYgKHRpbWVySWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRpbWVySWQpO1xuICAgIH1cbiAgICBsYXN0SW52b2tlVGltZSA9IDA7XG4gICAgbGFzdEFyZ3MgPSBsYXN0Q2FsbFRpbWUgPSBsYXN0VGhpcyA9IHRpbWVySWQgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBmdW5jdGlvbiBmbHVzaCgpIHtcbiAgICByZXR1cm4gdGltZXJJZCA9PT0gdW5kZWZpbmVkID8gcmVzdWx0IDogdHJhaWxpbmdFZGdlKG5vdygpKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGRlYm91bmNlZCgpIHtcbiAgICB2YXIgdGltZSA9IG5vdygpLFxuICAgICAgICBpc0ludm9raW5nID0gc2hvdWxkSW52b2tlKHRpbWUpO1xuXG4gICAgbGFzdEFyZ3MgPSBhcmd1bWVudHM7XG4gICAgbGFzdFRoaXMgPSB0aGlzO1xuICAgIGxhc3RDYWxsVGltZSA9IHRpbWU7XG5cbiAgICBpZiAoaXNJbnZva2luZykge1xuICAgICAgaWYgKHRpbWVySWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gbGVhZGluZ0VkZ2UobGFzdENhbGxUaW1lKTtcbiAgICAgIH1cbiAgICAgIGlmIChtYXhpbmcpIHtcbiAgICAgICAgLy8gSGFuZGxlIGludm9jYXRpb25zIGluIGEgdGlnaHQgbG9vcC5cbiAgICAgICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCB3YWl0KTtcbiAgICAgICAgcmV0dXJuIGludm9rZUZ1bmMobGFzdENhbGxUaW1lKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRpbWVySWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCB3YWl0KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICBkZWJvdW5jZWQuY2FuY2VsID0gY2FuY2VsO1xuICBkZWJvdW5jZWQuZmx1c2ggPSBmbHVzaDtcbiAgcmV0dXJuIGRlYm91bmNlZDtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyB0aGVcbiAqIFtsYW5ndWFnZSB0eXBlXShodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtZWNtYXNjcmlwdC1sYW5ndWFnZS10eXBlcylcbiAqIG9mIGBPYmplY3RgLiAoZS5nLiBhcnJheXMsIGZ1bmN0aW9ucywgb2JqZWN0cywgcmVnZXhlcywgYG5ldyBOdW1iZXIoMClgLCBhbmQgYG5ldyBTdHJpbmcoJycpYClcbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc09iamVjdCh7fSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdChbMSwgMiwgM10pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3QoXy5ub29wKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0KG51bGwpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNPYmplY3QodmFsdWUpIHtcbiAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gIHJldHVybiAhIXZhbHVlICYmICh0eXBlID09ICdvYmplY3QnIHx8IHR5cGUgPT0gJ2Z1bmN0aW9uJyk7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgb2JqZWN0LWxpa2UuIEEgdmFsdWUgaXMgb2JqZWN0LWxpa2UgaWYgaXQncyBub3QgYG51bGxgXG4gKiBhbmQgaGFzIGEgYHR5cGVvZmAgcmVzdWx0IG9mIFwib2JqZWN0XCIuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgb2JqZWN0LWxpa2UsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc09iamVjdExpa2Uoe30pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3RMaWtlKFsxLCAyLCAzXSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdExpa2UoXy5ub29wKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc09iamVjdExpa2UobnVsbCk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc09iamVjdExpa2UodmFsdWUpIHtcbiAgcmV0dXJuICEhdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09ICdvYmplY3QnO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgU3ltYm9sYCBwcmltaXRpdmUgb3Igb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgc3ltYm9sLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNTeW1ib2woU3ltYm9sLml0ZXJhdG9yKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzU3ltYm9sKCdhYmMnKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzU3ltYm9sKHZhbHVlKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gJ3N5bWJvbCcgfHxcbiAgICAoaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBvYmplY3RUb1N0cmluZy5jYWxsKHZhbHVlKSA9PSBzeW1ib2xUYWcpO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBudW1iZXIuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHByb2Nlc3MuXG4gKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBudW1iZXIuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8udG9OdW1iZXIoMy4yKTtcbiAqIC8vID0+IDMuMlxuICpcbiAqIF8udG9OdW1iZXIoTnVtYmVyLk1JTl9WQUxVRSk7XG4gKiAvLyA9PiA1ZS0zMjRcbiAqXG4gKiBfLnRvTnVtYmVyKEluZmluaXR5KTtcbiAqIC8vID0+IEluZmluaXR5XG4gKlxuICogXy50b051bWJlcignMy4yJyk7XG4gKiAvLyA9PiAzLjJcbiAqL1xuZnVuY3Rpb24gdG9OdW1iZXIodmFsdWUpIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnbnVtYmVyJykge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICBpZiAoaXNTeW1ib2wodmFsdWUpKSB7XG4gICAgcmV0dXJuIE5BTjtcbiAgfVxuICBpZiAoaXNPYmplY3QodmFsdWUpKSB7XG4gICAgdmFyIG90aGVyID0gdHlwZW9mIHZhbHVlLnZhbHVlT2YgPT0gJ2Z1bmN0aW9uJyA/IHZhbHVlLnZhbHVlT2YoKSA6IHZhbHVlO1xuICAgIHZhbHVlID0gaXNPYmplY3Qob3RoZXIpID8gKG90aGVyICsgJycpIDogb3RoZXI7XG4gIH1cbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPSAnc3RyaW5nJykge1xuICAgIHJldHVybiB2YWx1ZSA9PT0gMCA/IHZhbHVlIDogK3ZhbHVlO1xuICB9XG4gIHZhbHVlID0gdmFsdWUucmVwbGFjZShyZVRyaW0sICcnKTtcbiAgdmFyIGlzQmluYXJ5ID0gcmVJc0JpbmFyeS50ZXN0KHZhbHVlKTtcbiAgcmV0dXJuIChpc0JpbmFyeSB8fCByZUlzT2N0YWwudGVzdCh2YWx1ZSkpXG4gICAgPyBmcmVlUGFyc2VJbnQodmFsdWUuc2xpY2UoMiksIGlzQmluYXJ5ID8gMiA6IDgpXG4gICAgOiAocmVJc0JhZEhleC50ZXN0KHZhbHVlKSA/IE5BTiA6ICt2YWx1ZSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZGVib3VuY2U7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash.debounce/index.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/react-circular-progressbar/dist/styles.css": +/*!*********************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/react-circular-progressbar/dist/styles.css ***! + \*********************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../next/dist/build/webpack/loaders/css-loader/src/runtime/api.js */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js\");\n/* harmony import */ var _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);\n// Imports\n\nvar ___CSS_LOADER_EXPORT___ = _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/*\\n * react-circular-progressbar styles\\n * All of the styles in this file are configurable!\\n */\\n\\n.CircularProgressbar {\\n /*\\n * This fixes an issue where the CircularProgressbar svg has\\n * 0 width inside a \\\"display: flex\\\" container, and thus not visible.\\n */\\n width: 100%;\\n /*\\n * This fixes a centering issue with CircularProgressbarWithChildren:\\n * https://github.com/kevinsqi/react-circular-progressbar/issues/94\\n */\\n vertical-align: middle;\\n}\\n\\n.CircularProgressbar .CircularProgressbar-path {\\n stroke: #3e98c7;\\n stroke-linecap: round;\\n transition: stroke-dashoffset 0.5s ease 0s;\\n}\\n\\n.CircularProgressbar .CircularProgressbar-trail {\\n stroke: #d6d6d6;\\n /* Used when trail is not full diameter, i.e. when props.circleRatio is set */\\n stroke-linecap: round;\\n}\\n\\n.CircularProgressbar .CircularProgressbar-text {\\n fill: #3e98c7;\\n font-size: 20px;\\n dominant-baseline: middle;\\n text-anchor: middle;\\n}\\n\\n.CircularProgressbar .CircularProgressbar-background {\\n fill: #d6d6d6;\\n}\\n\\n/*\\n * Sample background styles. Use these with e.g.:\\n *\\n * <CircularProgressbar\\n * className=\\\"CircularProgressbar-inverted\\\"\\n * background\\n * percentage={50}\\n * />\\n */\\n.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-background {\\n fill: #3e98c7;\\n}\\n\\n.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-text {\\n fill: #fff;\\n}\\n\\n.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-path {\\n stroke: #fff;\\n}\\n\\n.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-trail {\\n stroke: transparent;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://node_modules/react-circular-progressbar/dist/styles.css\"],\"names\":[],\"mappings\":\"AAAA;;;EAGE;;AAEF;EACE;;;IAGE;EACF,WAAW;EACX;;;IAGE;EACF,sBAAsB;AACxB;;AAEA;EACE,eAAe;EACf,qBAAqB;EAErB,0CAA0C;AAC5C;;AAEA;EACE,eAAe;EACf,6EAA6E;EAC7E,qBAAqB;AACvB;;AAEA;EACE,aAAa;EACb,eAAe;EACf,yBAAyB;EACzB,mBAAmB;AACrB;;AAEA;EACE,aAAa;AACf;;AAEA;;;;;;;;EAQE;AACF;EACE,aAAa;AACf;;AAEA;EACE,UAAU;AACZ;;AAEA;EACE,YAAY;AACd;;AAEA;EACE,mBAAmB;AACrB\",\"sourcesContent\":[\"/*\\n * react-circular-progressbar styles\\n * All of the styles in this file are configurable!\\n */\\n\\n.CircularProgressbar {\\n /*\\n * This fixes an issue where the CircularProgressbar svg has\\n * 0 width inside a \\\"display: flex\\\" container, and thus not visible.\\n */\\n width: 100%;\\n /*\\n * This fixes a centering issue with CircularProgressbarWithChildren:\\n * https://github.com/kevinsqi/react-circular-progressbar/issues/94\\n */\\n vertical-align: middle;\\n}\\n\\n.CircularProgressbar .CircularProgressbar-path {\\n stroke: #3e98c7;\\n stroke-linecap: round;\\n -webkit-transition: stroke-dashoffset 0.5s ease 0s;\\n transition: stroke-dashoffset 0.5s ease 0s;\\n}\\n\\n.CircularProgressbar .CircularProgressbar-trail {\\n stroke: #d6d6d6;\\n /* Used when trail is not full diameter, i.e. when props.circleRatio is set */\\n stroke-linecap: round;\\n}\\n\\n.CircularProgressbar .CircularProgressbar-text {\\n fill: #3e98c7;\\n font-size: 20px;\\n dominant-baseline: middle;\\n text-anchor: middle;\\n}\\n\\n.CircularProgressbar .CircularProgressbar-background {\\n fill: #d6d6d6;\\n}\\n\\n/*\\n * Sample background styles. Use these with e.g.:\\n *\\n * <CircularProgressbar\\n * className=\\\"CircularProgressbar-inverted\\\"\\n * background\\n * percentage={50}\\n * />\\n */\\n.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-background {\\n fill: #3e98c7;\\n}\\n\\n.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-text {\\n fill: #fff;\\n}\\n\\n.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-path {\\n stroke: #fff;\\n}\\n\\n.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-trail {\\n stroke: transparent;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMV0hLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3JlYWN0LWNpcmN1bGFyLXByb2dyZXNzYmFyL2Rpc3Qvc3R5bGVzLmNzcy5qcyIsIm1hcHBpbmdzIjoiOzs7QUFBQTtBQUM4RztBQUM5Ryw4QkFBOEIscUdBQTJCO0FBQ3pEO0FBQ0Esc0tBQXNLLHVLQUF1Syx3TEFBd0wsR0FBRyxvREFBb0Qsb0JBQW9CLDBCQUEwQiwrQ0FBK0MsR0FBRyxxREFBcUQsb0JBQW9CLDRHQUE0RyxHQUFHLG9EQUFvRCxrQkFBa0Isb0JBQW9CLDhCQUE4Qix3QkFBd0IsR0FBRywwREFBMEQsa0JBQWtCLEdBQUcsbUxBQW1MLEdBQUcsbUdBQW1HLGtCQUFrQixHQUFHLGlGQUFpRixlQUFlLEdBQUcsaUZBQWlGLGlCQUFpQixHQUFHLGtGQUFrRix3QkFBd0IsR0FBRyxTQUFTLDBIQUEwSCxNQUFNLEtBQUssT0FBTyxLQUFLLFVBQVUsT0FBTyxLQUFLLFlBQVksT0FBTyxLQUFLLFVBQVUsWUFBWSxhQUFhLE9BQU8sS0FBSyxVQUFVLFlBQVksYUFBYSxPQUFPLEtBQUssVUFBVSxVQUFVLFlBQVksYUFBYSxPQUFPLEtBQUssVUFBVSxNQUFNLFlBQVksS0FBSyxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFlBQVksc0pBQXNKLHVLQUF1Syx3TEFBd0wsR0FBRyxvREFBb0Qsb0JBQW9CLDBCQUEwQix1REFBdUQsK0NBQStDLEdBQUcscURBQXFELG9CQUFvQiw0R0FBNEcsR0FBRyxvREFBb0Qsa0JBQWtCLG9CQUFvQiw4QkFBOEIsd0JBQXdCLEdBQUcsMERBQTBELGtCQUFrQixHQUFHLG1MQUFtTCxHQUFHLG1HQUFtRyxrQkFBa0IsR0FBRyxpRkFBaUYsZUFBZSxHQUFHLGlGQUFpRixpQkFBaUIsR0FBRyxrRkFBa0Ysd0JBQXdCLEdBQUcscUJBQXFCO0FBQzl6SDtBQUNBLCtEQUFlLHVCQUF1QixFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9yZWFjdC1jaXJjdWxhci1wcm9ncmVzc2Jhci9kaXN0L3N0eWxlcy5jc3M/NzVlZiJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL2Nzcy1sb2FkZXIvc3JjL3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18odHJ1ZSk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCIvKlxcbiAqIHJlYWN0LWNpcmN1bGFyLXByb2dyZXNzYmFyIHN0eWxlc1xcbiAqIEFsbCBvZiB0aGUgc3R5bGVzIGluIHRoaXMgZmlsZSBhcmUgY29uZmlndXJhYmxlIVxcbiAqL1xcblxcbi5DaXJjdWxhclByb2dyZXNzYmFyIHtcXG4gIC8qXFxuICAgKiBUaGlzIGZpeGVzIGFuIGlzc3VlIHdoZXJlIHRoZSBDaXJjdWxhclByb2dyZXNzYmFyIHN2ZyBoYXNcXG4gICAqIDAgd2lkdGggaW5zaWRlIGEgXFxcImRpc3BsYXk6IGZsZXhcXFwiIGNvbnRhaW5lciwgYW5kIHRodXMgbm90IHZpc2libGUuXFxuICAgKi9cXG4gIHdpZHRoOiAxMDAlO1xcbiAgLypcXG4gICAqIFRoaXMgZml4ZXMgYSBjZW50ZXJpbmcgaXNzdWUgd2l0aCBDaXJjdWxhclByb2dyZXNzYmFyV2l0aENoaWxkcmVuOlxcbiAgICogaHR0cHM6Ly9naXRodWIuY29tL2tldmluc3FpL3JlYWN0LWNpcmN1bGFyLXByb2dyZXNzYmFyL2lzc3Vlcy85NFxcbiAgICovXFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbn1cXG5cXG4uQ2lyY3VsYXJQcm9ncmVzc2JhciAuQ2lyY3VsYXJQcm9ncmVzc2Jhci1wYXRoIHtcXG4gIHN0cm9rZTogIzNlOThjNztcXG4gIHN0cm9rZS1saW5lY2FwOiByb3VuZDtcXG4gIHRyYW5zaXRpb246IHN0cm9rZS1kYXNob2Zmc2V0IDAuNXMgZWFzZSAwcztcXG59XFxuXFxuLkNpcmN1bGFyUHJvZ3Jlc3NiYXIgLkNpcmN1bGFyUHJvZ3Jlc3NiYXItdHJhaWwge1xcbiAgc3Ryb2tlOiAjZDZkNmQ2O1xcbiAgLyogVXNlZCB3aGVuIHRyYWlsIGlzIG5vdCBmdWxsIGRpYW1ldGVyLCBpLmUuIHdoZW4gcHJvcHMuY2lyY2xlUmF0aW8gaXMgc2V0ICovXFxuICBzdHJva2UtbGluZWNhcDogcm91bmQ7XFxufVxcblxcbi5DaXJjdWxhclByb2dyZXNzYmFyIC5DaXJjdWxhclByb2dyZXNzYmFyLXRleHQge1xcbiAgZmlsbDogIzNlOThjNztcXG4gIGZvbnQtc2l6ZTogMjBweDtcXG4gIGRvbWluYW50LWJhc2VsaW5lOiBtaWRkbGU7XFxuICB0ZXh0LWFuY2hvcjogbWlkZGxlO1xcbn1cXG5cXG4uQ2lyY3VsYXJQcm9ncmVzc2JhciAuQ2lyY3VsYXJQcm9ncmVzc2Jhci1iYWNrZ3JvdW5kIHtcXG4gIGZpbGw6ICNkNmQ2ZDY7XFxufVxcblxcbi8qXFxuICogU2FtcGxlIGJhY2tncm91bmQgc3R5bGVzLiBVc2UgdGhlc2Ugd2l0aCBlLmcuOlxcbiAqXFxuICogICA8Q2lyY3VsYXJQcm9ncmVzc2JhclxcbiAqICAgICBjbGFzc05hbWU9XFxcIkNpcmN1bGFyUHJvZ3Jlc3NiYXItaW52ZXJ0ZWRcXFwiXFxuICogICAgIGJhY2tncm91bmRcXG4gKiAgICAgcGVyY2VudGFnZT17NTB9XFxuICogICAvPlxcbiAqL1xcbi5DaXJjdWxhclByb2dyZXNzYmFyLkNpcmN1bGFyUHJvZ3Jlc3NiYXItaW52ZXJ0ZWQgLkNpcmN1bGFyUHJvZ3Jlc3NiYXItYmFja2dyb3VuZCB7XFxuICBmaWxsOiAjM2U5OGM3O1xcbn1cXG5cXG4uQ2lyY3VsYXJQcm9ncmVzc2Jhci5DaXJjdWxhclByb2dyZXNzYmFyLWludmVydGVkIC5DaXJjdWxhclByb2dyZXNzYmFyLXRleHQge1xcbiAgZmlsbDogI2ZmZjtcXG59XFxuXFxuLkNpcmN1bGFyUHJvZ3Jlc3NiYXIuQ2lyY3VsYXJQcm9ncmVzc2Jhci1pbnZlcnRlZCAuQ2lyY3VsYXJQcm9ncmVzc2Jhci1wYXRoIHtcXG4gIHN0cm9rZTogI2ZmZjtcXG59XFxuXFxuLkNpcmN1bGFyUHJvZ3Jlc3NiYXIuQ2lyY3VsYXJQcm9ncmVzc2Jhci1pbnZlcnRlZCAuQ2lyY3VsYXJQcm9ncmVzc2Jhci10cmFpbCB7XFxuICBzdHJva2U6IHRyYW5zcGFyZW50O1xcbn1cXG5cIiwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vbm9kZV9tb2R1bGVzL3JlYWN0LWNpcmN1bGFyLXByb2dyZXNzYmFyL2Rpc3Qvc3R5bGVzLmNzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQTs7O0VBR0U7O0FBRUY7RUFDRTs7O0lBR0U7RUFDRixXQUFXO0VBQ1g7OztJQUdFO0VBQ0Ysc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0UsZUFBZTtFQUNmLHFCQUFxQjtFQUVyQiwwQ0FBMEM7QUFDNUM7O0FBRUE7RUFDRSxlQUFlO0VBQ2YsNkVBQTZFO0VBQzdFLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUNFLGFBQWE7RUFDYixlQUFlO0VBQ2YseUJBQXlCO0VBQ3pCLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLGFBQWE7QUFDZjs7QUFFQTs7Ozs7Ozs7RUFRRTtBQUNGO0VBQ0UsYUFBYTtBQUNmOztBQUVBO0VBQ0UsVUFBVTtBQUNaOztBQUVBO0VBQ0UsWUFBWTtBQUNkOztBQUVBO0VBQ0UsbUJBQW1CO0FBQ3JCXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIi8qXFxuICogcmVhY3QtY2lyY3VsYXItcHJvZ3Jlc3NiYXIgc3R5bGVzXFxuICogQWxsIG9mIHRoZSBzdHlsZXMgaW4gdGhpcyBmaWxlIGFyZSBjb25maWd1cmFibGUhXFxuICovXFxuXFxuLkNpcmN1bGFyUHJvZ3Jlc3NiYXIge1xcbiAgLypcXG4gICAqIFRoaXMgZml4ZXMgYW4gaXNzdWUgd2hlcmUgdGhlIENpcmN1bGFyUHJvZ3Jlc3NiYXIgc3ZnIGhhc1xcbiAgICogMCB3aWR0aCBpbnNpZGUgYSBcXFwiZGlzcGxheTogZmxleFxcXCIgY29udGFpbmVyLCBhbmQgdGh1cyBub3QgdmlzaWJsZS5cXG4gICAqL1xcbiAgd2lkdGg6IDEwMCU7XFxuICAvKlxcbiAgICogVGhpcyBmaXhlcyBhIGNlbnRlcmluZyBpc3N1ZSB3aXRoIENpcmN1bGFyUHJvZ3Jlc3NiYXJXaXRoQ2hpbGRyZW46XFxuICAgKiBodHRwczovL2dpdGh1Yi5jb20va2V2aW5zcWkvcmVhY3QtY2lyY3VsYXItcHJvZ3Jlc3NiYXIvaXNzdWVzLzk0XFxuICAgKi9cXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxufVxcblxcbi5DaXJjdWxhclByb2dyZXNzYmFyIC5DaXJjdWxhclByb2dyZXNzYmFyLXBhdGgge1xcbiAgc3Ryb2tlOiAjM2U5OGM3O1xcbiAgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBzdHJva2UtZGFzaG9mZnNldCAwLjVzIGVhc2UgMHM7XFxuICB0cmFuc2l0aW9uOiBzdHJva2UtZGFzaG9mZnNldCAwLjVzIGVhc2UgMHM7XFxufVxcblxcbi5DaXJjdWxhclByb2dyZXNzYmFyIC5DaXJjdWxhclByb2dyZXNzYmFyLXRyYWlsIHtcXG4gIHN0cm9rZTogI2Q2ZDZkNjtcXG4gIC8qIFVzZWQgd2hlbiB0cmFpbCBpcyBub3QgZnVsbCBkaWFtZXRlciwgaS5lLiB3aGVuIHByb3BzLmNpcmNsZVJhdGlvIGlzIHNldCAqL1xcbiAgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kO1xcbn1cXG5cXG4uQ2lyY3VsYXJQcm9ncmVzc2JhciAuQ2lyY3VsYXJQcm9ncmVzc2Jhci10ZXh0IHtcXG4gIGZpbGw6ICMzZTk4Yzc7XFxuICBmb250LXNpemU6IDIwcHg7XFxuICBkb21pbmFudC1iYXNlbGluZTogbWlkZGxlO1xcbiAgdGV4dC1hbmNob3I6IG1pZGRsZTtcXG59XFxuXFxuLkNpcmN1bGFyUHJvZ3Jlc3NiYXIgLkNpcmN1bGFyUHJvZ3Jlc3NiYXItYmFja2dyb3VuZCB7XFxuICBmaWxsOiAjZDZkNmQ2O1xcbn1cXG5cXG4vKlxcbiAqIFNhbXBsZSBiYWNrZ3JvdW5kIHN0eWxlcy4gVXNlIHRoZXNlIHdpdGggZS5nLjpcXG4gKlxcbiAqICAgPENpcmN1bGFyUHJvZ3Jlc3NiYXJcXG4gKiAgICAgY2xhc3NOYW1lPVxcXCJDaXJjdWxhclByb2dyZXNzYmFyLWludmVydGVkXFxcIlxcbiAqICAgICBiYWNrZ3JvdW5kXFxuICogICAgIHBlcmNlbnRhZ2U9ezUwfVxcbiAqICAgLz5cXG4gKi9cXG4uQ2lyY3VsYXJQcm9ncmVzc2Jhci5DaXJjdWxhclByb2dyZXNzYmFyLWludmVydGVkIC5DaXJjdWxhclByb2dyZXNzYmFyLWJhY2tncm91bmQge1xcbiAgZmlsbDogIzNlOThjNztcXG59XFxuXFxuLkNpcmN1bGFyUHJvZ3Jlc3NiYXIuQ2lyY3VsYXJQcm9ncmVzc2Jhci1pbnZlcnRlZCAuQ2lyY3VsYXJQcm9ncmVzc2Jhci10ZXh0IHtcXG4gIGZpbGw6ICNmZmY7XFxufVxcblxcbi5DaXJjdWxhclByb2dyZXNzYmFyLkNpcmN1bGFyUHJvZ3Jlc3NiYXItaW52ZXJ0ZWQgLkNpcmN1bGFyUHJvZ3Jlc3NiYXItcGF0aCB7XFxuICBzdHJva2U6ICNmZmY7XFxufVxcblxcbi5DaXJjdWxhclByb2dyZXNzYmFyLkNpcmN1bGFyUHJvZ3Jlc3NiYXItaW52ZXJ0ZWQgLkNpcmN1bGFyUHJvZ3Jlc3NiYXItdHJhaWwge1xcbiAgc3Ryb2tlOiB0cmFuc3BhcmVudDtcXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/react-circular-progressbar/dist/styles.css\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/react-modal-video/css/modal-video.css": +/*!****************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/react-modal-video/css/modal-video.css ***! + \****************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../next/dist/build/webpack/loaders/css-loader/src/runtime/api.js */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js\");\n/* harmony import */ var _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);\n// Imports\n\nvar ___CSS_LOADER_EXPORT___ = _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"@keyframes modal-video {\\n from {\\n opacity: 0;\\n }\\n to {\\n opacity: 1;\\n }\\n}\\n\\n@keyframes modal-video-inner {\\n from {\\n transform: translate(0, 100px);\\n }\\n to {\\n transform: translate(0, 0);\\n }\\n}\\n\\n.modal-video {\\n position: fixed;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n background-color: rgba(0, 0, 0, 0.5);\\n z-index: 1000000;\\n cursor: pointer;\\n opacity: 1;\\n animation-timing-function: ease-out;\\n animation-duration: 0.3s;\\n animation-name: modal-video;\\n transition: opacity 0.3s ease-out;\\n}\\n\\n.modal-video-effect-exit {\\n opacity: 0;\\n}\\n\\n.modal-video-effect-exit .modal-video-movie-wrap {\\n transform: translate(0, 100px);\\n}\\n\\n.modal-video-body {\\n max-width: 960px;\\n width: 100%;\\n height: 100%;\\n margin: 0 auto;\\n padding: 0 10px;\\n display: flex;\\n justify-content: center;\\n box-sizing: border-box;\\n}\\n\\n.modal-video-inner {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n width: 100%;\\n height: 100%;\\n}\\n\\n@media (orientation: landscape) {\\n .modal-video-inner {\\n padding: 10px 60px;\\n box-sizing: border-box;\\n }\\n}\\n\\n.modal-video-movie-wrap {\\n width: 100%;\\n height: 0;\\n position: relative;\\n padding-bottom: 56.25%;\\n background-color: #333;\\n animation-timing-function: ease-out;\\n animation-duration: 0.3s;\\n animation-name: modal-video-inner;\\n transform: translate(0, 0);\\n transition: transform 0.3s ease-out;\\n}\\n\\n.modal-video-movie-wrap iframe {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n}\\n\\n.modal-video-close-btn {\\n position: absolute;\\n z-index: 2;\\n top: -45px;\\n right: 0px;\\n display: inline-block;\\n width: 35px;\\n height: 35px;\\n overflow: hidden;\\n border: none;\\n background: transparent;\\n}\\n\\n@media (orientation: landscape) {\\n .modal-video-close-btn {\\n top: 0;\\n right: -45px;\\n }\\n}\\n\\n.modal-video-close-btn:before {\\n transform: rotate(45deg);\\n}\\n\\n.modal-video-close-btn:after {\\n transform: rotate(-45deg);\\n}\\n\\n.modal-video-close-btn:before, .modal-video-close-btn:after {\\n content: '';\\n position: absolute;\\n height: 2px;\\n width: 100%;\\n top: 50%;\\n left: 0;\\n margin-top: -1px;\\n background: #fff;\\n border-radius: 5px;\\n margin-top: -6px;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://node_modules/react-modal-video/css/modal-video.css\"],\"names\":[],\"mappings\":\"AAAA;EACE;IACE,UAAU;EACZ;EACA;IACE,UAAU;EACZ;AACF;;AAEA;EACE;IACE,8BAA8B;EAChC;EACA;IACE,0BAA0B;EAC5B;AACF;;AAEA;EACE,eAAe;EACf,MAAM;EACN,OAAO;EACP,WAAW;EACX,YAAY;EACZ,oCAAoC;EACpC,gBAAgB;EAChB,eAAe;EACf,UAAU;EACV,mCAAmC;EACnC,wBAAwB;EACxB,2BAA2B;EAK3B,iCAAiC;AACnC;;AAEA;EACE,UAAU;AACZ;;AAEA;EAKE,8BAA8B;AAChC;;AAEA;EACE,gBAAgB;EAChB,WAAW;EACX,YAAY;EACZ,cAAc;EACd,eAAe;EACf,aAAa;EACb,uBAAuB;EACvB,sBAAsB;AACxB;;AAEA;EACE,aAAa;EACb,uBAAuB;EACvB,mBAAmB;EACnB,WAAW;EACX,YAAY;AACd;;AAEA;EACE;IACE,kBAAkB;IAClB,sBAAsB;EACxB;AACF;;AAEA;EACE,WAAW;EACX,SAAS;EACT,kBAAkB;EAClB,sBAAsB;EACtB,sBAAsB;EACtB,mCAAmC;EACnC,wBAAwB;EACxB,iCAAiC;EAKjC,0BAA0B;EAK1B,mCAAmC;AACrC;;AAEA;EACE,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,WAAW;EACX,YAAY;AACd;;AAEA;EACE,kBAAkB;EAClB,UAAU;EACV,UAAU;EACV,UAAU;EACV,qBAAqB;EACrB,WAAW;EACX,YAAY;EACZ,gBAAgB;EAChB,YAAY;EACZ,uBAAuB;AACzB;;AAEA;EACE;IACE,MAAM;IACN,YAAY;EACd;AACF;;AAEA;EACE,wBAAwB;AAC1B;;AAEA;EACE,yBAAyB;AAC3B;;AAEA;EACE,WAAW;EACX,kBAAkB;EAClB,WAAW;EACX,WAAW;EACX,QAAQ;EACR,OAAO;EACP,gBAAgB;EAChB,gBAAgB;EAChB,kBAAkB;EAClB,gBAAgB;AAClB\",\"sourcesContent\":[\"@keyframes modal-video {\\n from {\\n opacity: 0;\\n }\\n to {\\n opacity: 1;\\n }\\n}\\n\\n@keyframes modal-video-inner {\\n from {\\n transform: translate(0, 100px);\\n }\\n to {\\n transform: translate(0, 0);\\n }\\n}\\n\\n.modal-video {\\n position: fixed;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n background-color: rgba(0, 0, 0, 0.5);\\n z-index: 1000000;\\n cursor: pointer;\\n opacity: 1;\\n animation-timing-function: ease-out;\\n animation-duration: 0.3s;\\n animation-name: modal-video;\\n -webkit-transition: opacity 0.3s ease-out;\\n -moz-transition: opacity 0.3s ease-out;\\n -ms-transition: opacity 0.3s ease-out;\\n -o-transition: opacity 0.3s ease-out;\\n transition: opacity 0.3s ease-out;\\n}\\n\\n.modal-video-effect-exit {\\n opacity: 0;\\n}\\n\\n.modal-video-effect-exit .modal-video-movie-wrap {\\n -webkit-transform: translate(0, 100px);\\n -moz-transform: translate(0, 100px);\\n -ms-transform: translate(0, 100px);\\n -o-transform: translate(0, 100px);\\n transform: translate(0, 100px);\\n}\\n\\n.modal-video-body {\\n max-width: 960px;\\n width: 100%;\\n height: 100%;\\n margin: 0 auto;\\n padding: 0 10px;\\n display: flex;\\n justify-content: center;\\n box-sizing: border-box;\\n}\\n\\n.modal-video-inner {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n width: 100%;\\n height: 100%;\\n}\\n\\n@media (orientation: landscape) {\\n .modal-video-inner {\\n padding: 10px 60px;\\n box-sizing: border-box;\\n }\\n}\\n\\n.modal-video-movie-wrap {\\n width: 100%;\\n height: 0;\\n position: relative;\\n padding-bottom: 56.25%;\\n background-color: #333;\\n animation-timing-function: ease-out;\\n animation-duration: 0.3s;\\n animation-name: modal-video-inner;\\n -webkit-transform: translate(0, 0);\\n -moz-transform: translate(0, 0);\\n -ms-transform: translate(0, 0);\\n -o-transform: translate(0, 0);\\n transform: translate(0, 0);\\n -webkit-transition: -webkit-transform 0.3s ease-out;\\n -moz-transition: -moz-transform 0.3s ease-out;\\n -ms-transition: -ms-transform 0.3s ease-out;\\n -o-transition: -o-transform 0.3s ease-out;\\n transition: transform 0.3s ease-out;\\n}\\n\\n.modal-video-movie-wrap iframe {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n}\\n\\n.modal-video-close-btn {\\n position: absolute;\\n z-index: 2;\\n top: -45px;\\n right: 0px;\\n display: inline-block;\\n width: 35px;\\n height: 35px;\\n overflow: hidden;\\n border: none;\\n background: transparent;\\n}\\n\\n@media (orientation: landscape) {\\n .modal-video-close-btn {\\n top: 0;\\n right: -45px;\\n }\\n}\\n\\n.modal-video-close-btn:before {\\n transform: rotate(45deg);\\n}\\n\\n.modal-video-close-btn:after {\\n transform: rotate(-45deg);\\n}\\n\\n.modal-video-close-btn:before, .modal-video-close-btn:after {\\n content: '';\\n position: absolute;\\n height: 2px;\\n width: 100%;\\n top: 50%;\\n left: 0;\\n margin-top: -1px;\\n background: #fff;\\n border-radius: 5px;\\n margin-top: -6px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMV0hLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3JlYWN0LW1vZGFsLXZpZGVvL2Nzcy9tb2RhbC12aWRlby5jc3MuanMiLCJtYXBwaW5ncyI6Ijs7O0FBQUE7QUFDOEc7QUFDOUcsOEJBQThCLHFHQUEyQjtBQUN6RDtBQUNBLGtFQUFrRSxVQUFVLGlCQUFpQixLQUFLLFFBQVEsaUJBQWlCLEtBQUssR0FBRyxrQ0FBa0MsVUFBVSxxQ0FBcUMsS0FBSyxRQUFRLGlDQUFpQyxLQUFLLEdBQUcsa0JBQWtCLG9CQUFvQixXQUFXLFlBQVksZ0JBQWdCLGlCQUFpQix5Q0FBeUMscUJBQXFCLG9CQUFvQixlQUFlLHdDQUF3Qyw2QkFBNkIsZ0NBQWdDLHNDQUFzQyxHQUFHLDhCQUE4QixlQUFlLEdBQUcsc0RBQXNELG1DQUFtQyxHQUFHLHVCQUF1QixxQkFBcUIsZ0JBQWdCLGlCQUFpQixtQkFBbUIsb0JBQW9CLGtCQUFrQiw0QkFBNEIsMkJBQTJCLEdBQUcsd0JBQXdCLGtCQUFrQiw0QkFBNEIsd0JBQXdCLGdCQUFnQixpQkFBaUIsR0FBRyxxQ0FBcUMsd0JBQXdCLHlCQUF5Qiw2QkFBNkIsS0FBSyxHQUFHLDZCQUE2QixnQkFBZ0IsY0FBYyx1QkFBdUIsMkJBQTJCLDJCQUEyQix3Q0FBd0MsNkJBQTZCLHNDQUFzQywrQkFBK0Isd0NBQXdDLEdBQUcsb0NBQW9DLHVCQUF1QixXQUFXLFlBQVksZ0JBQWdCLGlCQUFpQixHQUFHLDRCQUE0Qix1QkFBdUIsZUFBZSxlQUFlLGVBQWUsMEJBQTBCLGdCQUFnQixpQkFBaUIscUJBQXFCLGlCQUFpQiw0QkFBNEIsR0FBRyxxQ0FBcUMsNEJBQTRCLGFBQWEsbUJBQW1CLEtBQUssR0FBRyxtQ0FBbUMsNkJBQTZCLEdBQUcsa0NBQWtDLDhCQUE4QixHQUFHLGlFQUFpRSxnQkFBZ0IsdUJBQXVCLGdCQUFnQixnQkFBZ0IsYUFBYSxZQUFZLHFCQUFxQixxQkFBcUIsdUJBQXVCLHFCQUFxQixHQUFHLFNBQVMsbUhBQW1ILEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLE1BQU0sS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLEtBQUssVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxXQUFXLFVBQVUsWUFBWSxhQUFhLGFBQWEsYUFBYSxPQUFPLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxPQUFPLEtBQUssWUFBWSxXQUFXLFVBQVUsVUFBVSxVQUFVLFVBQVUsWUFBWSxhQUFhLE9BQU8sS0FBSyxVQUFVLFlBQVksYUFBYSxXQUFXLFVBQVUsTUFBTSxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sTUFBTSxLQUFLLFVBQVUsVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsT0FBTyxLQUFLLFlBQVksV0FBVyxVQUFVLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxXQUFXLFVBQVUsVUFBVSxZQUFZLFdBQVcsVUFBVSxZQUFZLFdBQVcsWUFBWSxPQUFPLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxNQUFNLEtBQUssWUFBWSxPQUFPLEtBQUssWUFBWSxPQUFPLEtBQUssVUFBVSxZQUFZLFdBQVcsVUFBVSxVQUFVLFVBQVUsWUFBWSxhQUFhLGFBQWEsYUFBYSxrREFBa0QsVUFBVSxpQkFBaUIsS0FBSyxRQUFRLGlCQUFpQixLQUFLLEdBQUcsa0NBQWtDLFVBQVUscUNBQXFDLEtBQUssUUFBUSxpQ0FBaUMsS0FBSyxHQUFHLGtCQUFrQixvQkFBb0IsV0FBVyxZQUFZLGdCQUFnQixpQkFBaUIseUNBQXlDLHFCQUFxQixvQkFBb0IsZUFBZSx3Q0FBd0MsNkJBQTZCLGdDQUFnQyw4Q0FBOEMsMkNBQTJDLDBDQUEwQyx5Q0FBeUMsc0NBQXNDLEdBQUcsOEJBQThCLGVBQWUsR0FBRyxzREFBc0QsMkNBQTJDLHdDQUF3Qyx1Q0FBdUMsc0NBQXNDLG1DQUFtQyxHQUFHLHVCQUF1QixxQkFBcUIsZ0JBQWdCLGlCQUFpQixtQkFBbUIsb0JBQW9CLGtCQUFrQiw0QkFBNEIsMkJBQTJCLEdBQUcsd0JBQXdCLGtCQUFrQiw0QkFBNEIsd0JBQXdCLGdCQUFnQixpQkFBaUIsR0FBRyxxQ0FBcUMsd0JBQXdCLHlCQUF5Qiw2QkFBNkIsS0FBSyxHQUFHLDZCQUE2QixnQkFBZ0IsY0FBYyx1QkFBdUIsMkJBQTJCLDJCQUEyQix3Q0FBd0MsNkJBQTZCLHNDQUFzQyx1Q0FBdUMsb0NBQW9DLG1DQUFtQyxrQ0FBa0MsK0JBQStCLHdEQUF3RCxrREFBa0QsZ0RBQWdELDhDQUE4Qyx3Q0FBd0MsR0FBRyxvQ0FBb0MsdUJBQXVCLFdBQVcsWUFBWSxnQkFBZ0IsaUJBQWlCLEdBQUcsNEJBQTRCLHVCQUF1QixlQUFlLGVBQWUsZUFBZSwwQkFBMEIsZ0JBQWdCLGlCQUFpQixxQkFBcUIsaUJBQWlCLDRCQUE0QixHQUFHLHFDQUFxQyw0QkFBNEIsYUFBYSxtQkFBbUIsS0FBSyxHQUFHLG1DQUFtQyw2QkFBNkIsR0FBRyxrQ0FBa0MsOEJBQThCLEdBQUcsaUVBQWlFLGdCQUFnQix1QkFBdUIsZ0JBQWdCLGdCQUFnQixhQUFhLFlBQVkscUJBQXFCLHFCQUFxQix1QkFBdUIscUJBQXFCLEdBQUcscUJBQXFCO0FBQ3gzTTtBQUNBLCtEQUFlLHVCQUF1QixFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9yZWFjdC1tb2RhbC12aWRlby9jc3MvbW9kYWwtdmlkZW8uY3NzPzc3MDYiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKHRydWUpO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiQGtleWZyYW1lcyBtb2RhbC12aWRlbyB7XFxuICBmcm9tIHtcXG4gICAgb3BhY2l0eTogMDtcXG4gIH1cXG4gIHRvIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gIH1cXG59XFxuXFxuQGtleWZyYW1lcyBtb2RhbC12aWRlby1pbm5lciB7XFxuICBmcm9tIHtcXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTAwcHgpO1xcbiAgfVxcbiAgdG8ge1xcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcXG4gIH1cXG59XFxuXFxuLm1vZGFsLXZpZGVvIHtcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMTAwJTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcXG4gIHotaW5kZXg6IDEwMDAwMDA7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxuICBvcGFjaXR5OiAxO1xcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XFxuICBhbmltYXRpb24tZHVyYXRpb246IDAuM3M7XFxuICBhbmltYXRpb24tbmFtZTogbW9kYWwtdmlkZW87XFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZS1vdXQ7XFxufVxcblxcbi5tb2RhbC12aWRlby1lZmZlY3QtZXhpdCB7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG5cXG4ubW9kYWwtdmlkZW8tZWZmZWN0LWV4aXQgLm1vZGFsLXZpZGVvLW1vdmllLXdyYXAge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTAwcHgpO1xcbn1cXG5cXG4ubW9kYWwtdmlkZW8tYm9keSB7XFxuICBtYXgtd2lkdGg6IDk2MHB4O1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICBtYXJnaW46IDAgYXV0bztcXG4gIHBhZGRpbmc6IDAgMTBweDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxufVxcblxcbi5tb2RhbC12aWRlby1pbm5lciB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEwMCU7XFxufVxcblxcbkBtZWRpYSAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xcbiAgLm1vZGFsLXZpZGVvLWlubmVyIHtcXG4gICAgcGFkZGluZzogMTBweCA2MHB4O1xcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgfVxcbn1cXG5cXG4ubW9kYWwtdmlkZW8tbW92aWUtd3JhcCB7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMDtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XFxuICBhbmltYXRpb24tZHVyYXRpb246IDAuM3M7XFxuICBhbmltYXRpb24tbmFtZTogbW9kYWwtdmlkZW8taW5uZXI7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2Utb3V0O1xcbn1cXG5cXG4ubW9kYWwtdmlkZW8tbW92aWUtd3JhcCBpZnJhbWUge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbn1cXG5cXG4ubW9kYWwtdmlkZW8tY2xvc2UtYnRuIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHotaW5kZXg6IDI7XFxuICB0b3A6IC00NXB4O1xcbiAgcmlnaHQ6IDBweDtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIHdpZHRoOiAzNXB4O1xcbiAgaGVpZ2h0OiAzNXB4O1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIGJvcmRlcjogbm9uZTtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbn1cXG5cXG5AbWVkaWEgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHtcXG4gIC5tb2RhbC12aWRlby1jbG9zZS1idG4ge1xcbiAgICB0b3A6IDA7XFxuICAgIHJpZ2h0OiAtNDVweDtcXG4gIH1cXG59XFxuXFxuLm1vZGFsLXZpZGVvLWNsb3NlLWJ0bjpiZWZvcmUge1xcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xcbn1cXG5cXG4ubW9kYWwtdmlkZW8tY2xvc2UtYnRuOmFmdGVyIHtcXG4gIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XFxufVxcblxcbi5tb2RhbC12aWRlby1jbG9zZS1idG46YmVmb3JlLCAubW9kYWwtdmlkZW8tY2xvc2UtYnRuOmFmdGVyIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgaGVpZ2h0OiAycHg7XFxuICB3aWR0aDogMTAwJTtcXG4gIHRvcDogNTAlO1xcbiAgbGVmdDogMDtcXG4gIG1hcmdpbi10b3A6IC0xcHg7XFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xcbiAgbWFyZ2luLXRvcDogLTZweDtcXG59XFxuXCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovL25vZGVfbW9kdWxlcy9yZWFjdC1tb2RhbC12aWRlby9jc3MvbW9kYWwtdmlkZW8uY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBO0VBQ0U7SUFDRSxVQUFVO0VBQ1o7RUFDQTtJQUNFLFVBQVU7RUFDWjtBQUNGOztBQUVBO0VBQ0U7SUFDRSw4QkFBOEI7RUFDaEM7RUFDQTtJQUNFLDBCQUEwQjtFQUM1QjtBQUNGOztBQUVBO0VBQ0UsZUFBZTtFQUNmLE1BQU07RUFDTixPQUFPO0VBQ1AsV0FBVztFQUNYLFlBQVk7RUFDWixvQ0FBb0M7RUFDcEMsZ0JBQWdCO0VBQ2hCLGVBQWU7RUFDZixVQUFVO0VBQ1YsbUNBQW1DO0VBQ25DLHdCQUF3QjtFQUN4QiwyQkFBMkI7RUFLM0IsaUNBQWlDO0FBQ25DOztBQUVBO0VBQ0UsVUFBVTtBQUNaOztBQUVBO0VBS0UsOEJBQThCO0FBQ2hDOztBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLFdBQVc7RUFDWCxZQUFZO0VBQ1osY0FBYztFQUNkLGVBQWU7RUFDZixhQUFhO0VBQ2IsdUJBQXVCO0VBQ3ZCLHNCQUFzQjtBQUN4Qjs7QUFFQTtFQUNFLGFBQWE7RUFDYix1QkFBdUI7RUFDdkIsbUJBQW1CO0VBQ25CLFdBQVc7RUFDWCxZQUFZO0FBQ2Q7O0FBRUE7RUFDRTtJQUNFLGtCQUFrQjtJQUNsQixzQkFBc0I7RUFDeEI7QUFDRjs7QUFFQTtFQUNFLFdBQVc7RUFDWCxTQUFTO0VBQ1Qsa0JBQWtCO0VBQ2xCLHNCQUFzQjtFQUN0QixzQkFBc0I7RUFDdEIsbUNBQW1DO0VBQ25DLHdCQUF3QjtFQUN4QixpQ0FBaUM7RUFLakMsMEJBQTBCO0VBSzFCLG1DQUFtQztBQUNyQzs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixNQUFNO0VBQ04sT0FBTztFQUNQLFdBQVc7RUFDWCxZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsVUFBVTtFQUNWLFVBQVU7RUFDVixVQUFVO0VBQ1YscUJBQXFCO0VBQ3JCLFdBQVc7RUFDWCxZQUFZO0VBQ1osZ0JBQWdCO0VBQ2hCLFlBQVk7RUFDWix1QkFBdUI7QUFDekI7O0FBRUE7RUFDRTtJQUNFLE1BQU07SUFDTixZQUFZO0VBQ2Q7QUFDRjs7QUFFQTtFQUNFLHdCQUF3QjtBQUMxQjs7QUFFQTtFQUNFLHlCQUF5QjtBQUMzQjs7QUFFQTtFQUNFLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsV0FBVztFQUNYLFdBQVc7RUFDWCxRQUFRO0VBQ1IsT0FBTztFQUNQLGdCQUFnQjtFQUNoQixnQkFBZ0I7RUFDaEIsa0JBQWtCO0VBQ2xCLGdCQUFnQjtBQUNsQlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCJAa2V5ZnJhbWVzIG1vZGFsLXZpZGVvIHtcXG4gIGZyb20ge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgfVxcbiAgdG8ge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgfVxcbn1cXG5cXG5Aa2V5ZnJhbWVzIG1vZGFsLXZpZGVvLWlubmVyIHtcXG4gIGZyb20ge1xcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxMDBweCk7XFxuICB9XFxuICB0byB7XFxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xcbiAgfVxcbn1cXG5cXG4ubW9kYWwtdmlkZW8ge1xcbiAgcG9zaXRpb246IGZpeGVkO1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xcbiAgei1pbmRleDogMTAwMDAwMDtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIG9wYWNpdHk6IDE7XFxuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcXG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMC4zcztcXG4gIGFuaW1hdGlvbi1uYW1lOiBtb2RhbC12aWRlbztcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2Utb3V0O1xcbiAgLW1vei10cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZS1vdXQ7XFxuICAtbXMtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2Utb3V0O1xcbiAgLW8tdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2Utb3V0O1xcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2Utb3V0O1xcbn1cXG5cXG4ubW9kYWwtdmlkZW8tZWZmZWN0LWV4aXQge1xcbiAgb3BhY2l0eTogMDtcXG59XFxuXFxuLm1vZGFsLXZpZGVvLWVmZmVjdC1leGl0IC5tb2RhbC12aWRlby1tb3ZpZS13cmFwIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTAwcHgpO1xcbiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxMDBweCk7XFxuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTAwcHgpO1xcbiAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTAwcHgpO1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTAwcHgpO1xcbn1cXG5cXG4ubW9kYWwtdmlkZW8tYm9keSB7XFxuICBtYXgtd2lkdGg6IDk2MHB4O1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICBtYXJnaW46IDAgYXV0bztcXG4gIHBhZGRpbmc6IDAgMTBweDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxufVxcblxcbi5tb2RhbC12aWRlby1pbm5lciB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEwMCU7XFxufVxcblxcbkBtZWRpYSAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xcbiAgLm1vZGFsLXZpZGVvLWlubmVyIHtcXG4gICAgcGFkZGluZzogMTBweCA2MHB4O1xcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgfVxcbn1cXG5cXG4ubW9kYWwtdmlkZW8tbW92aWUtd3JhcCB7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMDtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XFxuICBhbmltYXRpb24tZHVyYXRpb246IDAuM3M7XFxuICBhbmltYXRpb24tbmFtZTogbW9kYWwtdmlkZW8taW5uZXI7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xcbiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcXG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcXG4gIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQ7XFxuICAtbW96LXRyYW5zaXRpb246IC1tb3otdHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQ7XFxuICAtbXMtdHJhbnNpdGlvbjogLW1zLXRyYW5zZm9ybSAwLjNzIGVhc2Utb3V0O1xcbiAgLW8tdHJhbnNpdGlvbjogLW8tdHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQ7XFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlLW91dDtcXG59XFxuXFxuLm1vZGFsLXZpZGVvLW1vdmllLXdyYXAgaWZyYW1lIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMTAwJTtcXG59XFxuXFxuLm1vZGFsLXZpZGVvLWNsb3NlLWJ0biB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB6LWluZGV4OiAyO1xcbiAgdG9wOiAtNDVweDtcXG4gIHJpZ2h0OiAwcHg7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICB3aWR0aDogMzVweDtcXG4gIGhlaWdodDogMzVweDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBib3JkZXI6IG5vbmU7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG59XFxuXFxuQG1lZGlhIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7XFxuICAubW9kYWwtdmlkZW8tY2xvc2UtYnRuIHtcXG4gICAgdG9wOiAwO1xcbiAgICByaWdodDogLTQ1cHg7XFxuICB9XFxufVxcblxcbi5tb2RhbC12aWRlby1jbG9zZS1idG46YmVmb3JlIHtcXG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcXG59XFxuXFxuLm1vZGFsLXZpZGVvLWNsb3NlLWJ0bjphZnRlciB7XFxuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xcbn1cXG5cXG4ubW9kYWwtdmlkZW8tY2xvc2UtYnRuOmJlZm9yZSwgLm1vZGFsLXZpZGVvLWNsb3NlLWJ0bjphZnRlciB7XFxuICBjb250ZW50OiAnJztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGhlaWdodDogMnB4O1xcbiAgd2lkdGg6IDEwMCU7XFxuICB0b3A6IDUwJTtcXG4gIGxlZnQ6IDA7XFxuICBtYXJnaW4tdG9wOiAtMXB4O1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcXG4gIG1hcmdpbi10b3A6IC02cHg7XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/react-modal-video/css/modal-video.css\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick-theme.css": +/*!***************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick-theme.css ***! + \***************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../next/dist/build/webpack/loaders/css-loader/src/runtime/api.js */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js\");\n/* harmony import */ var _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _next_dist_build_webpack_loaders_css_loader_src_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../next/dist/build/webpack/loaders/css-loader/src/runtime/getUrl.js */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/getUrl.js\");\n/* harmony import */ var _next_dist_build_webpack_loaders_css_loader_src_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_next_dist_build_webpack_loaders_css_loader_src_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _ajax_loader_gif__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ajax-loader.gif */ \"./node_modules/slick-carousel/slick/ajax-loader.gif\");\n/* harmony import */ var _fonts_slick_eot__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./fonts/slick.eot */ \"./node_modules/slick-carousel/slick/fonts/slick.eot\");\n/* harmony import */ var _fonts_slick_woff__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./fonts/slick.woff */ \"./node_modules/slick-carousel/slick/fonts/slick.woff\");\n/* harmony import */ var _fonts_slick_ttf__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./fonts/slick.ttf */ \"./node_modules/slick-carousel/slick/fonts/slick.ttf\");\n/* harmony import */ var _fonts_slick_svg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./fonts/slick.svg */ \"./node_modules/slick-carousel/slick/fonts/slick.svg\");\n// Imports\n\n\n\n\n\n\n\nvar ___CSS_LOADER_EXPORT___ = _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(true);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = _next_dist_build_webpack_loaders_css_loader_src_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1___default()(_ajax_loader_gif__WEBPACK_IMPORTED_MODULE_2__);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = _next_dist_build_webpack_loaders_css_loader_src_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1___default()(_fonts_slick_eot__WEBPACK_IMPORTED_MODULE_3__);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = _next_dist_build_webpack_loaders_css_loader_src_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1___default()(_fonts_slick_eot__WEBPACK_IMPORTED_MODULE_3__, { hash: \"?#iefix\" });\nvar ___CSS_LOADER_URL_REPLACEMENT_3___ = _next_dist_build_webpack_loaders_css_loader_src_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1___default()(_fonts_slick_woff__WEBPACK_IMPORTED_MODULE_4__);\nvar ___CSS_LOADER_URL_REPLACEMENT_4___ = _next_dist_build_webpack_loaders_css_loader_src_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1___default()(_fonts_slick_ttf__WEBPACK_IMPORTED_MODULE_5__);\nvar ___CSS_LOADER_URL_REPLACEMENT_5___ = _next_dist_build_webpack_loaders_css_loader_src_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1___default()(_fonts_slick_svg__WEBPACK_IMPORTED_MODULE_6__, { hash: \"#slick\" });\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"@charset 'UTF-8';\\n/* Slider */\\n.slick-loading .slick-list\\n{\\n background: #fff url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \") center center no-repeat;\\n}\\n\\n/* Icons */\\n@font-face\\n{\\n font-family: 'slick';\\n font-weight: normal;\\n font-style: normal;\\n\\n src: url(\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \");\\n src: url(\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \") format('embedded-opentype'), url(\" + ___CSS_LOADER_URL_REPLACEMENT_3___ + \") format('woff'), url(\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \") format('truetype'), url(\" + ___CSS_LOADER_URL_REPLACEMENT_5___ + \") format('svg');\\n}\\n/* Arrows */\\n.slick-prev,\\n.slick-next\\n{\\n font-size: 0;\\n line-height: 0;\\n\\n position: absolute;\\n top: 50%;\\n\\n display: block;\\n\\n width: 20px;\\n height: 20px;\\n padding: 0;\\n transform: translate(0, -50%);\\n\\n cursor: pointer;\\n\\n color: transparent;\\n border: none;\\n outline: none;\\n background: transparent;\\n}\\n.slick-prev:hover,\\n.slick-prev:focus,\\n.slick-next:hover,\\n.slick-next:focus\\n{\\n color: transparent;\\n outline: none;\\n background: transparent;\\n}\\n.slick-prev:hover:before,\\n.slick-prev:focus:before,\\n.slick-next:hover:before,\\n.slick-next:focus:before\\n{\\n opacity: 1;\\n}\\n.slick-prev.slick-disabled:before,\\n.slick-next.slick-disabled:before\\n{\\n opacity: .25;\\n}\\n\\n.slick-prev:before,\\n.slick-next:before\\n{\\n font-family: 'slick';\\n font-size: 20px;\\n line-height: 1;\\n\\n opacity: .75;\\n color: white;\\n\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.slick-prev\\n{\\n left: -25px;\\n}\\n[dir='rtl'] .slick-prev\\n{\\n right: -25px;\\n left: auto;\\n}\\n.slick-prev:before\\n{\\n content: '←';\\n}\\n[dir='rtl'] .slick-prev:before\\n{\\n content: '→';\\n}\\n\\n.slick-next\\n{\\n right: -25px;\\n}\\n[dir='rtl'] .slick-next\\n{\\n right: auto;\\n left: -25px;\\n}\\n.slick-next:before\\n{\\n content: '→';\\n}\\n[dir='rtl'] .slick-next:before\\n{\\n content: '←';\\n}\\n\\n/* Dots */\\n.slick-dotted.slick-slider\\n{\\n margin-bottom: 30px;\\n}\\n\\n.slick-dots\\n{\\n position: absolute;\\n bottom: -25px;\\n\\n display: block;\\n\\n width: 100%;\\n padding: 0;\\n margin: 0;\\n\\n list-style: none;\\n\\n text-align: center;\\n}\\n.slick-dots li\\n{\\n position: relative;\\n\\n display: inline-block;\\n\\n width: 20px;\\n height: 20px;\\n margin: 0 5px;\\n padding: 0;\\n\\n cursor: pointer;\\n}\\n.slick-dots li button\\n{\\n font-size: 0;\\n line-height: 0;\\n\\n display: block;\\n\\n width: 20px;\\n height: 20px;\\n padding: 5px;\\n\\n cursor: pointer;\\n\\n color: transparent;\\n border: 0;\\n outline: none;\\n background: transparent;\\n}\\n.slick-dots li button:hover,\\n.slick-dots li button:focus\\n{\\n outline: none;\\n}\\n.slick-dots li button:hover:before,\\n.slick-dots li button:focus:before\\n{\\n opacity: 1;\\n}\\n.slick-dots li button:before\\n{\\n font-family: 'slick';\\n font-size: 6px;\\n line-height: 20px;\\n\\n position: absolute;\\n top: 0;\\n left: 0;\\n\\n width: 20px;\\n height: 20px;\\n\\n content: '•';\\n text-align: center;\\n\\n opacity: .25;\\n color: black;\\n\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n.slick-dots li.slick-active button:before\\n{\\n opacity: .75;\\n color: black;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://node_modules/slick-carousel/slick/slick-theme.css\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;AAChB,WAAW;AACX;;IAEI,gFAAiE;AACrE;;AAEA,UAAU;AACV;;IAEI,oBAAoB;IACpB,mBAAmB;IACnB,kBAAkB;;IAElB,4CAA6B;IAC7B,mPAAqM;AACzM;AACA,WAAW;AACX;;;IAGI,YAAY;IACZ,cAAc;;IAEd,kBAAkB;IAClB,QAAQ;;IAER,cAAc;;IAEd,WAAW;IACX,YAAY;IACZ,UAAU;IAGV,6BAA6B;;IAE7B,eAAe;;IAEf,kBAAkB;IAClB,YAAY;IACZ,aAAa;IACb,uBAAuB;AAC3B;AACA;;;;;IAKI,kBAAkB;IAClB,aAAa;IACb,uBAAuB;AAC3B;AACA;;;;;IAKI,UAAU;AACd;AACA;;;IAGI,YAAY;AAChB;;AAEA;;;IAGI,oBAAoB;IACpB,eAAe;IACf,cAAc;;IAEd,YAAY;IACZ,YAAY;;IAEZ,mCAAmC;IACnC,kCAAkC;AACtC;;AAEA;;IAEI,WAAW;AACf;AACA;;IAEI,YAAY;IACZ,UAAU;AACd;AACA;;IAEI,YAAY;AAChB;AACA;;IAEI,YAAY;AAChB;;AAEA;;IAEI,YAAY;AAChB;AACA;;IAEI,WAAW;IACX,WAAW;AACf;AACA;;IAEI,YAAY;AAChB;AACA;;IAEI,YAAY;AAChB;;AAEA,SAAS;AACT;;IAEI,mBAAmB;AACvB;;AAEA;;IAEI,kBAAkB;IAClB,aAAa;;IAEb,cAAc;;IAEd,WAAW;IACX,UAAU;IACV,SAAS;;IAET,gBAAgB;;IAEhB,kBAAkB;AACtB;AACA;;IAEI,kBAAkB;;IAElB,qBAAqB;;IAErB,WAAW;IACX,YAAY;IACZ,aAAa;IACb,UAAU;;IAEV,eAAe;AACnB;AACA;;IAEI,YAAY;IACZ,cAAc;;IAEd,cAAc;;IAEd,WAAW;IACX,YAAY;IACZ,YAAY;;IAEZ,eAAe;;IAEf,kBAAkB;IAClB,SAAS;IACT,aAAa;IACb,uBAAuB;AAC3B;AACA;;;IAGI,aAAa;AACjB;AACA;;;IAGI,UAAU;AACd;AACA;;IAEI,oBAAoB;IACpB,cAAc;IACd,iBAAiB;;IAEjB,kBAAkB;IAClB,MAAM;IACN,OAAO;;IAEP,WAAW;IACX,YAAY;;IAEZ,YAAY;IACZ,kBAAkB;;IAElB,YAAY;IACZ,YAAY;;IAEZ,mCAAmC;IACnC,kCAAkC;AACtC;AACA;;IAEI,YAAY;IACZ,YAAY;AAChB\",\"sourcesContent\":[\"@charset 'UTF-8';\\n/* Slider */\\n.slick-loading .slick-list\\n{\\n background: #fff url('./ajax-loader.gif') center center no-repeat;\\n}\\n\\n/* Icons */\\n@font-face\\n{\\n font-family: 'slick';\\n font-weight: normal;\\n font-style: normal;\\n\\n src: url('./fonts/slick.eot');\\n src: url('./fonts/slick.eot?#iefix') format('embedded-opentype'), url('./fonts/slick.woff') format('woff'), url('./fonts/slick.ttf') format('truetype'), url('./fonts/slick.svg#slick') format('svg');\\n}\\n/* Arrows */\\n.slick-prev,\\n.slick-next\\n{\\n font-size: 0;\\n line-height: 0;\\n\\n position: absolute;\\n top: 50%;\\n\\n display: block;\\n\\n width: 20px;\\n height: 20px;\\n padding: 0;\\n -webkit-transform: translate(0, -50%);\\n -ms-transform: translate(0, -50%);\\n transform: translate(0, -50%);\\n\\n cursor: pointer;\\n\\n color: transparent;\\n border: none;\\n outline: none;\\n background: transparent;\\n}\\n.slick-prev:hover,\\n.slick-prev:focus,\\n.slick-next:hover,\\n.slick-next:focus\\n{\\n color: transparent;\\n outline: none;\\n background: transparent;\\n}\\n.slick-prev:hover:before,\\n.slick-prev:focus:before,\\n.slick-next:hover:before,\\n.slick-next:focus:before\\n{\\n opacity: 1;\\n}\\n.slick-prev.slick-disabled:before,\\n.slick-next.slick-disabled:before\\n{\\n opacity: .25;\\n}\\n\\n.slick-prev:before,\\n.slick-next:before\\n{\\n font-family: 'slick';\\n font-size: 20px;\\n line-height: 1;\\n\\n opacity: .75;\\n color: white;\\n\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.slick-prev\\n{\\n left: -25px;\\n}\\n[dir='rtl'] .slick-prev\\n{\\n right: -25px;\\n left: auto;\\n}\\n.slick-prev:before\\n{\\n content: '←';\\n}\\n[dir='rtl'] .slick-prev:before\\n{\\n content: '→';\\n}\\n\\n.slick-next\\n{\\n right: -25px;\\n}\\n[dir='rtl'] .slick-next\\n{\\n right: auto;\\n left: -25px;\\n}\\n.slick-next:before\\n{\\n content: '→';\\n}\\n[dir='rtl'] .slick-next:before\\n{\\n content: '←';\\n}\\n\\n/* Dots */\\n.slick-dotted.slick-slider\\n{\\n margin-bottom: 30px;\\n}\\n\\n.slick-dots\\n{\\n position: absolute;\\n bottom: -25px;\\n\\n display: block;\\n\\n width: 100%;\\n padding: 0;\\n margin: 0;\\n\\n list-style: none;\\n\\n text-align: center;\\n}\\n.slick-dots li\\n{\\n position: relative;\\n\\n display: inline-block;\\n\\n width: 20px;\\n height: 20px;\\n margin: 0 5px;\\n padding: 0;\\n\\n cursor: pointer;\\n}\\n.slick-dots li button\\n{\\n font-size: 0;\\n line-height: 0;\\n\\n display: block;\\n\\n width: 20px;\\n height: 20px;\\n padding: 5px;\\n\\n cursor: pointer;\\n\\n color: transparent;\\n border: 0;\\n outline: none;\\n background: transparent;\\n}\\n.slick-dots li button:hover,\\n.slick-dots li button:focus\\n{\\n outline: none;\\n}\\n.slick-dots li button:hover:before,\\n.slick-dots li button:focus:before\\n{\\n opacity: 1;\\n}\\n.slick-dots li button:before\\n{\\n font-family: 'slick';\\n font-size: 6px;\\n line-height: 20px;\\n\\n position: absolute;\\n top: 0;\\n left: 0;\\n\\n width: 20px;\\n height: 20px;\\n\\n content: '•';\\n text-align: center;\\n\\n opacity: .25;\\n color: black;\\n\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n.slick-dots li.slick-active button:before\\n{\\n opacity: .75;\\n color: black;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMV0hLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3NsaWNrLWNhcm91c2VsL3NsaWNrL3NsaWNrLXRoZW1lLmNzcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7QUFDOEc7QUFDTztBQUN2RDtBQUNBO0FBQ0M7QUFDRDtBQUNBO0FBQzlELDhCQUE4QixxR0FBMkI7QUFDekQseUNBQXlDLHdHQUErQixDQUFDLDZDQUE2QjtBQUN0Ryx5Q0FBeUMsd0dBQStCLENBQUMsNkNBQTZCO0FBQ3RHLHlDQUF5Qyx3R0FBK0IsQ0FBQyw2Q0FBNkIsSUFBSSxpQkFBaUI7QUFDM0gseUNBQXlDLHdHQUErQixDQUFDLDhDQUE2QjtBQUN0Ryx5Q0FBeUMsd0dBQStCLENBQUMsNkNBQTZCO0FBQ3RHLHlDQUF5Qyx3R0FBK0IsQ0FBQyw2Q0FBNkIsSUFBSSxnQkFBZ0I7QUFDMUg7QUFDQSwyREFBMkQsNkNBQTZDLCtGQUErRixHQUFHLDhCQUE4QiwyQkFBMkIsMEJBQTBCLHlCQUF5Qiw2REFBNkQsMFJBQTBSLEdBQUcsNENBQTRDLG1CQUFtQixxQkFBcUIsMkJBQTJCLGVBQWUsdUJBQXVCLG9CQUFvQixtQkFBbUIsaUJBQWlCLG9DQUFvQyx3QkFBd0IsMkJBQTJCLG1CQUFtQixvQkFBb0IsOEJBQThCLEdBQUcsa0ZBQWtGLHlCQUF5QixvQkFBb0IsOEJBQThCLEdBQUcsOEdBQThHLGlCQUFpQixHQUFHLDBFQUEwRSxtQkFBbUIsR0FBRyw4Q0FBOEMsMkJBQTJCLHNCQUFzQixxQkFBcUIscUJBQXFCLG1CQUFt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QUFrQix5QkFBeUIsb0JBQW9CLHVCQUF1QixvQkFBb0IsaUJBQWlCLGdCQUFnQix5QkFBeUIsMkJBQTJCLEdBQUcsbUJBQW1CLHlCQUF5Qiw4QkFBOEIsb0JBQW9CLG1CQUFtQixvQkFBb0IsaUJBQWlCLHdCQUF3QixHQUFHLDBCQUEwQixtQkFBbUIscUJBQXFCLHVCQUF1QixvQkFBb0IsbUJBQW1CLG1CQUFtQix3QkFBd0IsMkJBQTJCLGdCQUFnQixvQkFBb0IsOEJBQThCLEdBQUcsOERBQThELG9CQUFvQixHQUFHLDRFQUE0RSxpQkFBaUIsR0FBRyxpQ0FBaUMsMkJBQTJCLHFCQUFxQix3QkFBd0IsMkJBQTJCLGFBQWEsY0FBYyxvQkFBb0IsbUJBQW1CLHFCQUFxQix5QkFBeUIscUJBQXFCLG1CQUFtQiw0Q0FBNEMseUNBQXlDLEdBQUcsOENBQThDLG1CQUFtQixtQkFBbUIsR0FBRyxxQkFBcUI7QUFDcGlRO0FBQ0EsK0RBQWUsdUJBQXVCLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3NsaWNrLWNhcm91c2VsL3NsaWNrL3NsaWNrLXRoZW1lLmNzcz8xOWQ2Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvY3NzLWxvYWRlci9zcmMvcnVudGltZS9hcGkuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0dFVF9VUkxfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL2Nzcy1sb2FkZXIvc3JjL3J1bnRpbWUvZ2V0VXJsLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9VUkxfSU1QT1JUXzBfX18gZnJvbSBcIi4vYWpheC1sb2FkZXIuZ2lmXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9VUkxfSU1QT1JUXzFfX18gZnJvbSBcIi4vZm9udHMvc2xpY2suZW90XCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9VUkxfSU1QT1JUXzJfX18gZnJvbSBcIi4vZm9udHMvc2xpY2sud29mZlwiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF8zX19fIGZyb20gXCIuL2ZvbnRzL3NsaWNrLnR0ZlwiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF80X19fIGZyb20gXCIuL2ZvbnRzL3NsaWNrLnN2Z1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKHRydWUpO1xudmFyIF9fX0NTU19MT0FERVJfVVJMX1JFUExBQ0VNRU5UXzBfX18gPSBfX19DU1NfTE9BREVSX0dFVF9VUkxfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF8wX19fKTtcbnZhciBfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8xX19fID0gX19fQ1NTX0xPQURFUl9HRVRfVVJMX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX1VSTF9JTVBPUlRfMV9fXyk7XG52YXIgX19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfMl9fXyA9IF9fX0NTU19MT0FERVJfR0VUX1VSTF9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9VUkxfSU1QT1JUXzFfX18sIHsgaGFzaDogXCI/I2llZml4XCIgfSk7XG52YXIgX19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfM19fXyA9IF9fX0NTU19MT0FERVJfR0VUX1VSTF9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9VUkxfSU1QT1JUXzJfX18pO1xudmFyIF9fX0NTU19MT0FERVJfVVJMX1JFUExBQ0VNRU5UXzRfX18gPSBfX19DU1NfTE9BREVSX0dFVF9VUkxfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF8zX19fKTtcbnZhciBfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF81X19fID0gX19fQ1NTX0xPQURFUl9HRVRfVVJMX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX1VSTF9JTVBPUlRfNF9fXywgeyBoYXNoOiBcIiNzbGlja1wiIH0pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiQGNoYXJzZXQgJ1VURi04JztcXG4vKiBTbGlkZXIgKi9cXG4uc2xpY2stbG9hZGluZyAuc2xpY2stbGlzdFxcbntcXG4gICAgYmFja2dyb3VuZDogI2ZmZiB1cmwoXCIgKyBfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8wX19fICsgXCIpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0O1xcbn1cXG5cXG4vKiBJY29ucyAqL1xcbkBmb250LWZhY2VcXG57XFxuICAgIGZvbnQtZmFtaWx5OiAnc2xpY2snO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XFxuXFxuICAgIHNyYzogdXJsKFwiICsgX19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfMV9fXyArIFwiKTtcXG4gICAgc3JjOiB1cmwoXCIgKyBfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8yX19fICsgXCIpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKFwiICsgX19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfM19fXyArIFwiKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKFwiICsgX19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfNF9fXyArIFwiKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybChcIiArIF9fX0NTU19MT0FERVJfVVJMX1JFUExBQ0VNRU5UXzVfX18gKyBcIikgZm9ybWF0KCdzdmcnKTtcXG59XFxuLyogQXJyb3dzICovXFxuLnNsaWNrLXByZXYsXFxuLnNsaWNrLW5leHRcXG57XFxuICAgIGZvbnQtc2l6ZTogMDtcXG4gICAgbGluZS1oZWlnaHQ6IDA7XFxuXFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdG9wOiA1MCU7XFxuXFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcblxcbiAgICB3aWR0aDogMjBweDtcXG4gICAgaGVpZ2h0OiAyMHB4O1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTtcXG5cXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcblxcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAgIGJvcmRlcjogbm9uZTtcXG4gICAgb3V0bGluZTogbm9uZTtcXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxufVxcbi5zbGljay1wcmV2OmhvdmVyLFxcbi5zbGljay1wcmV2OmZvY3VzLFxcbi5zbGljay1uZXh0OmhvdmVyLFxcbi5zbGljay1uZXh0OmZvY3VzXFxue1xcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAgIG91dGxpbmU6IG5vbmU7XFxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbn1cXG4uc2xpY2stcHJldjpob3ZlcjpiZWZvcmUsXFxuLnNsaWNrLXByZXY6Zm9jdXM6YmVmb3JlLFxcbi5zbGljay1uZXh0OmhvdmVyOmJlZm9yZSxcXG4uc2xpY2stbmV4dDpmb2N1czpiZWZvcmVcXG57XFxuICAgIG9wYWNpdHk6IDE7XFxufVxcbi5zbGljay1wcmV2LnNsaWNrLWRpc2FibGVkOmJlZm9yZSxcXG4uc2xpY2stbmV4dC5zbGljay1kaXNhYmxlZDpiZWZvcmVcXG57XFxuICAgIG9wYWNpdHk6IC4yNTtcXG59XFxuXFxuLnNsaWNrLXByZXY6YmVmb3JlLFxcbi5zbGljay1uZXh0OmJlZm9yZVxcbntcXG4gICAgZm9udC1mYW1pbHk6ICdzbGljayc7XFxuICAgIGZvbnQtc2l6ZTogMjBweDtcXG4gICAgbGluZS1oZWlnaHQ6IDE7XFxuXFxuICAgIG9wYWNpdHk6IC43NTtcXG4gICAgY29sb3I6IHdoaXRlO1xcblxcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG59XFxuXFxuLnNsaWNrLXByZXZcXG57XFxuICAgIGxlZnQ6IC0yNXB4O1xcbn1cXG5bZGlyPSdydGwnXSAuc2xpY2stcHJldlxcbntcXG4gICAgcmlnaHQ6IC0yNXB4O1xcbiAgICBsZWZ0OiBhdXRvO1xcbn1cXG4uc2xpY2stcHJldjpiZWZvcmVcXG57XFxuICAgIGNvbnRlbnQ6ICfihpAnO1xcbn1cXG5bZGlyPSdydGwnXSAuc2xpY2stcHJldjpiZWZvcmVcXG57XFxuICAgIGNvbnRlbnQ6ICfihpInO1xcbn1cXG5cXG4uc2xpY2stbmV4dFxcbntcXG4gICAgcmlnaHQ6IC0yNXB4O1xcbn1cXG5bZGlyPSdydGwnXSAuc2xpY2stbmV4dFxcbntcXG4gICAgcmlnaHQ6IGF1dG87XFxuICAgIGxlZnQ6IC0yNXB4O1xcbn1cXG4uc2xpY2stbmV4dDpiZWZvcmVcXG57XFxuICAgIGNvbnRlbnQ6ICfihpInO1xcbn1cXG5bZGlyPSdydGwnXSAuc2xpY2stbmV4dDpiZWZvcmVcXG57XFxuICAgIGNvbnRlbnQ6ICfihpAnO1xcbn1cXG5cXG4vKiBEb3RzICovXFxuLnNsaWNrLWRvdHRlZC5zbGljay1zbGlkZXJcXG57XFxuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XFxufVxcblxcbi5zbGljay1kb3RzXFxue1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIGJvdHRvbTogLTI1cHg7XFxuXFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcblxcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgbWFyZ2luOiAwO1xcblxcbiAgICBsaXN0LXN0eWxlOiBub25lO1xcblxcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxufVxcbi5zbGljay1kb3RzIGxpXFxue1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuXFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG5cXG4gICAgd2lkdGg6IDIwcHg7XFxuICAgIGhlaWdodDogMjBweDtcXG4gICAgbWFyZ2luOiAwIDVweDtcXG4gICAgcGFkZGluZzogMDtcXG5cXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG4uc2xpY2stZG90cyBsaSBidXR0b25cXG57XFxuICAgIGZvbnQtc2l6ZTogMDtcXG4gICAgbGluZS1oZWlnaHQ6IDA7XFxuXFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcblxcbiAgICB3aWR0aDogMjBweDtcXG4gICAgaGVpZ2h0OiAyMHB4O1xcbiAgICBwYWRkaW5nOiA1cHg7XFxuXFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG5cXG4gICAgY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICBib3JkZXI6IDA7XFxuICAgIG91dGxpbmU6IG5vbmU7XFxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbn1cXG4uc2xpY2stZG90cyBsaSBidXR0b246aG92ZXIsXFxuLnNsaWNrLWRvdHMgbGkgYnV0dG9uOmZvY3VzXFxue1xcbiAgICBvdXRsaW5lOiBub25lO1xcbn1cXG4uc2xpY2stZG90cyBsaSBidXR0b246aG92ZXI6YmVmb3JlLFxcbi5zbGljay1kb3RzIGxpIGJ1dHRvbjpmb2N1czpiZWZvcmVcXG57XFxuICAgIG9wYWNpdHk6IDE7XFxufVxcbi5zbGljay1kb3RzIGxpIGJ1dHRvbjpiZWZvcmVcXG57XFxuICAgIGZvbnQtZmFtaWx5OiAnc2xpY2snO1xcbiAgICBmb250LXNpemU6IDZweDtcXG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XFxuXFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdG9wOiAwO1xcbiAgICBsZWZ0OiAwO1xcblxcbiAgICB3aWR0aDogMjBweDtcXG4gICAgaGVpZ2h0OiAyMHB4O1xcblxcbiAgICBjb250ZW50OiAn4oCiJztcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xcblxcbiAgICBvcGFjaXR5OiAuMjU7XFxuICAgIGNvbG9yOiBibGFjaztcXG5cXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxufVxcbi5zbGljay1kb3RzIGxpLnNsaWNrLWFjdGl2ZSBidXR0b246YmVmb3JlXFxue1xcbiAgICBvcGFjaXR5OiAuNzU7XFxuICAgIGNvbG9yOiBibGFjaztcXG59XFxuXCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovL25vZGVfbW9kdWxlcy9zbGljay1jYXJvdXNlbC9zbGljay9zbGljay10aGVtZS5jc3NcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBQUEsZ0JBQWdCO0FBQ2hCLFdBQVc7QUFDWDs7SUFFSSxnRkFBaUU7QUFDckU7O0FBRUEsVUFBVTtBQUNWOztJQUVJLG9CQUFvQjtJQUNwQixtQkFBbUI7SUFDbkIsa0JBQWtCOztJQUVsQiw0Q0FBNkI7SUFDN0IsbVBBQXFNO0FBQ3pNO0FBQ0EsV0FBVztBQUNYOzs7SUFHSSxZQUFZO0lBQ1osY0FBYzs7SUFFZCxrQkFBa0I7SUFDbEIsUUFBUTs7SUFFUixjQUFjOztJQUVkLFdBQVc7SUFDWCxZQUFZO0lBQ1osVUFBVTtJQUdWLDZCQUE2Qjs7SUFFN0IsZUFBZTs7SUFFZixrQkFBa0I7SUFDbEIsWUFBWTtJQUNaLGFBQWE7SUFDYix1QkFBdUI7QUFDM0I7QUFDQTs7Ozs7SUFLSSxrQkFBa0I7SUFDbEIsYUFBYTtJQUNiLHVCQUF1QjtBQUMzQjtBQUNBOzs7OztJQUtJLFVBQVU7QUFDZDtBQUNBOzs7SUFHSSxZQUFZO0FBQ2hCOztBQUVBOzs7SUFHSSxvQkFBb0I7SUFDcEIsZUFBZTtJQUNmLGNBQWM7O0lBRWQsWUFBWTtJQUNaLFlBQVk7O0lBRVosbUNBQW1DO0lBQ25DLGtDQUFrQztBQUN0Qzs7QUFFQTs7SUFFSSxXQUFXO0FBQ2Y7QUFDQTs7SUFFSSxZQUFZO0lBQ1osVUFBVTtBQUNkO0FBQ0E7O0lBRUksWUFBWTtBQUNoQjtBQUNBOztJQUVJLFlBQVk7QUFDaEI7O0FBRUE7O0lBRUksWUFBWTtBQUNoQjtBQUNBOztJQUVJLFdBQVc7SUFDWCxXQUFXO0FBQ2Y7QUFDQTs7SUFFSSxZQUFZO0FBQ2hCO0FBQ0E7O0lBRUksWUFBWTtBQUNoQjs7QUFFQSxTQUFTO0FBQ1Q7O0lBRUksbUJBQW1CO0FBQ3ZCOztBQUVBOztJQUVJLGtCQUFrQjtJQUNsQixhQUFhOztJQUViLGNBQWM7O0lBRWQsV0FBVztJQUNYLFVBQVU7SUFDVixTQUFTOztJQUVULGdCQUFnQjs7SUFFaEIsa0JBQWtCO0FBQ3RCO0FBQ0E7O0lBRUksa0JBQWtCOztJQUVsQixxQkFBcUI7O0lBRXJCLFdBQVc7SUFDWCxZQUFZO0lBQ1osYUFBYTtJQUNiLFVBQVU7O0lBRVYsZUFBZTtBQUNuQjtBQUNBOztJQUVJLFlBQVk7SUFDWixjQUFjOztJQUVkLGNBQWM7O0lBRWQsV0FBVztJQUNYLFlBQVk7SUFDWixZQUFZOztJQUVaLGVBQWU7O0lBRWYsa0JBQWtCO0lBQ2xCLFNBQVM7SUFDVCxhQUFhO0lBQ2IsdUJBQXVCO0FBQzNCO0FBQ0E7OztJQUdJLGFBQWE7QUFDakI7QUFDQTs7O0lBR0ksVUFBVTtBQUNkO0FBQ0E7O0lBRUksb0JBQW9CO0lBQ3BCLGNBQWM7SUFDZCxpQkFBaUI7O0lBRWpCLGtCQUFrQjtJQUNsQixNQUFNO0lBQ04sT0FBTzs7SUFFUCxXQUFXO0lBQ1gsWUFBWTs7SUFFWixZQUFZO0lBQ1osa0JBQWtCOztJQUVsQixZQUFZO0lBQ1osWUFBWTs7SUFFWixtQ0FBbUM7SUFDbkMsa0NBQWtDO0FBQ3RDO0FBQ0E7O0lBRUksWUFBWTtJQUNaLFlBQVk7QUFDaEJcIixcInNvdXJjZXNDb250ZW50XCI6W1wiQGNoYXJzZXQgJ1VURi04JztcXG4vKiBTbGlkZXIgKi9cXG4uc2xpY2stbG9hZGluZyAuc2xpY2stbGlzdFxcbntcXG4gICAgYmFja2dyb3VuZDogI2ZmZiB1cmwoJy4vYWpheC1sb2FkZXIuZ2lmJykgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7XFxufVxcblxcbi8qIEljb25zICovXFxuQGZvbnQtZmFjZVxcbntcXG4gICAgZm9udC1mYW1pbHk6ICdzbGljayc7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcXG5cXG4gICAgc3JjOiB1cmwoJy4vZm9udHMvc2xpY2suZW90Jyk7XFxuICAgIHNyYzogdXJsKCcuL2ZvbnRzL3NsaWNrLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnLi9mb250cy9zbGljay53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnLi9mb250cy9zbGljay50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnLi9mb250cy9zbGljay5zdmcjc2xpY2snKSBmb3JtYXQoJ3N2ZycpO1xcbn1cXG4vKiBBcnJvd3MgKi9cXG4uc2xpY2stcHJldixcXG4uc2xpY2stbmV4dFxcbntcXG4gICAgZm9udC1zaXplOiAwO1xcbiAgICBsaW5lLWhlaWdodDogMDtcXG5cXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0b3A6IDUwJTtcXG5cXG4gICAgZGlzcGxheTogYmxvY2s7XFxuXFxuICAgIHdpZHRoOiAyMHB4O1xcbiAgICBoZWlnaHQ6IDIwcHg7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XFxuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTtcXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XFxuXFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG5cXG4gICAgY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICBib3JkZXI6IG5vbmU7XFxuICAgIG91dGxpbmU6IG5vbmU7XFxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbn1cXG4uc2xpY2stcHJldjpob3ZlcixcXG4uc2xpY2stcHJldjpmb2N1cyxcXG4uc2xpY2stbmV4dDpob3ZlcixcXG4uc2xpY2stbmV4dDpmb2N1c1xcbntcXG4gICAgY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICBvdXRsaW5lOiBub25lO1xcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG59XFxuLnNsaWNrLXByZXY6aG92ZXI6YmVmb3JlLFxcbi5zbGljay1wcmV2OmZvY3VzOmJlZm9yZSxcXG4uc2xpY2stbmV4dDpob3ZlcjpiZWZvcmUsXFxuLnNsaWNrLW5leHQ6Zm9jdXM6YmVmb3JlXFxue1xcbiAgICBvcGFjaXR5OiAxO1xcbn1cXG4uc2xpY2stcHJldi5zbGljay1kaXNhYmxlZDpiZWZvcmUsXFxuLnNsaWNrLW5leHQuc2xpY2stZGlzYWJsZWQ6YmVmb3JlXFxue1xcbiAgICBvcGFjaXR5OiAuMjU7XFxufVxcblxcbi5zbGljay1wcmV2OmJlZm9yZSxcXG4uc2xpY2stbmV4dDpiZWZvcmVcXG57XFxuICAgIGZvbnQtZmFtaWx5OiAnc2xpY2snO1xcbiAgICBmb250LXNpemU6IDIwcHg7XFxuICAgIGxpbmUtaGVpZ2h0OiAxO1xcblxcbiAgICBvcGFjaXR5OiAuNzU7XFxuICAgIGNvbG9yOiB3aGl0ZTtcXG5cXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxufVxcblxcbi5zbGljay1wcmV2XFxue1xcbiAgICBsZWZ0OiAtMjVweDtcXG59XFxuW2Rpcj0ncnRsJ10gLnNsaWNrLXByZXZcXG57XFxuICAgIHJpZ2h0OiAtMjVweDtcXG4gICAgbGVmdDogYXV0bztcXG59XFxuLnNsaWNrLXByZXY6YmVmb3JlXFxue1xcbiAgICBjb250ZW50OiAn4oaQJztcXG59XFxuW2Rpcj0ncnRsJ10gLnNsaWNrLXByZXY6YmVmb3JlXFxue1xcbiAgICBjb250ZW50OiAn4oaSJztcXG59XFxuXFxuLnNsaWNrLW5leHRcXG57XFxuICAgIHJpZ2h0OiAtMjVweDtcXG59XFxuW2Rpcj0ncnRsJ10gLnNsaWNrLW5leHRcXG57XFxuICAgIHJpZ2h0OiBhdXRvO1xcbiAgICBsZWZ0OiAtMjVweDtcXG59XFxuLnNsaWNrLW5leHQ6YmVmb3JlXFxue1xcbiAgICBjb250ZW50OiAn4oaSJztcXG59XFxuW2Rpcj0ncnRsJ10gLnNsaWNrLW5leHQ6YmVmb3JlXFxue1xcbiAgICBjb250ZW50OiAn4oaQJztcXG59XFxuXFxuLyogRG90cyAqL1xcbi5zbGljay1kb3R0ZWQuc2xpY2stc2xpZGVyXFxue1xcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xcbn1cXG5cXG4uc2xpY2stZG90c1xcbntcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICBib3R0b206IC0yNXB4O1xcblxcbiAgICBkaXNwbGF5OiBibG9jaztcXG5cXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIG1hcmdpbjogMDtcXG5cXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcXG5cXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xcbn1cXG4uc2xpY2stZG90cyBsaVxcbntcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcblxcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuXFxuICAgIHdpZHRoOiAyMHB4O1xcbiAgICBoZWlnaHQ6IDIwcHg7XFxuICAgIG1hcmdpbjogMCA1cHg7XFxuICAgIHBhZGRpbmc6IDA7XFxuXFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuLnNsaWNrLWRvdHMgbGkgYnV0dG9uXFxue1xcbiAgICBmb250LXNpemU6IDA7XFxuICAgIGxpbmUtaGVpZ2h0OiAwO1xcblxcbiAgICBkaXNwbGF5OiBibG9jaztcXG5cXG4gICAgd2lkdGg6IDIwcHg7XFxuICAgIGhlaWdodDogMjBweDtcXG4gICAgcGFkZGluZzogNXB4O1xcblxcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuXFxuICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBvdXRsaW5lOiBub25lO1xcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG59XFxuLnNsaWNrLWRvdHMgbGkgYnV0dG9uOmhvdmVyLFxcbi5zbGljay1kb3RzIGxpIGJ1dHRvbjpmb2N1c1xcbntcXG4gICAgb3V0bGluZTogbm9uZTtcXG59XFxuLnNsaWNrLWRvdHMgbGkgYnV0dG9uOmhvdmVyOmJlZm9yZSxcXG4uc2xpY2stZG90cyBsaSBidXR0b246Zm9jdXM6YmVmb3JlXFxue1xcbiAgICBvcGFjaXR5OiAxO1xcbn1cXG4uc2xpY2stZG90cyBsaSBidXR0b246YmVmb3JlXFxue1xcbiAgICBmb250LWZhbWlseTogJ3NsaWNrJztcXG4gICAgZm9udC1zaXplOiA2cHg7XFxuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xcblxcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHRvcDogMDtcXG4gICAgbGVmdDogMDtcXG5cXG4gICAgd2lkdGg6IDIwcHg7XFxuICAgIGhlaWdodDogMjBweDtcXG5cXG4gICAgY29udGVudDogJ+KAoic7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG5cXG4gICAgb3BhY2l0eTogLjI1O1xcbiAgICBjb2xvcjogYmxhY2s7XFxuXFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbn1cXG4uc2xpY2stZG90cyBsaS5zbGljay1hY3RpdmUgYnV0dG9uOmJlZm9yZVxcbntcXG4gICAgb3BhY2l0eTogLjc1O1xcbiAgICBjb2xvcjogYmxhY2s7XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick-theme.css\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick.css": +/*!*********************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick.css ***! + \*********************************************************************************************************************************************************************************************************************************************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../next/dist/build/webpack/loaders/css-loader/src/runtime/api.js */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js\");\n/* harmony import */ var _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);\n// Imports\n\nvar ___CSS_LOADER_EXPORT___ = _next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/* Slider */\\n.slick-slider\\n{\\n position: relative;\\n\\n display: block;\\n box-sizing: border-box;\\n\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n\\n -webkit-touch-callout: none;\\n -khtml-user-select: none;\\n touch-action: pan-y;\\n -webkit-tap-highlight-color: transparent;\\n}\\n\\n.slick-list\\n{\\n position: relative;\\n\\n display: block;\\n overflow: hidden;\\n\\n margin: 0;\\n padding: 0;\\n}\\n.slick-list:focus\\n{\\n outline: none;\\n}\\n.slick-list.dragging\\n{\\n cursor: pointer;\\n cursor: hand;\\n}\\n\\n.slick-slider .slick-track,\\n.slick-slider .slick-list\\n{\\n transform: translate3d(0, 0, 0);\\n}\\n\\n.slick-track\\n{\\n position: relative;\\n top: 0;\\n left: 0;\\n\\n display: block;\\n margin-left: auto;\\n margin-right: auto;\\n}\\n.slick-track:before,\\n.slick-track:after\\n{\\n display: table;\\n\\n content: '';\\n}\\n.slick-track:after\\n{\\n clear: both;\\n}\\n.slick-loading .slick-track\\n{\\n visibility: hidden;\\n}\\n\\n.slick-slide\\n{\\n display: none;\\n float: left;\\n\\n height: 100%;\\n min-height: 1px;\\n}\\n[dir='rtl'] .slick-slide\\n{\\n float: right;\\n}\\n.slick-slide img\\n{\\n display: block;\\n}\\n.slick-slide.slick-loading img\\n{\\n display: none;\\n}\\n.slick-slide.dragging img\\n{\\n pointer-events: none;\\n}\\n.slick-initialized .slick-slide\\n{\\n display: block;\\n}\\n.slick-loading .slick-slide\\n{\\n visibility: hidden;\\n}\\n.slick-vertical .slick-slide\\n{\\n display: block;\\n\\n height: auto;\\n\\n border: 1px solid transparent;\\n}\\n.slick-arrow.slick-hidden {\\n display: none;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://node_modules/slick-carousel/slick/slick.css\"],\"names\":[],\"mappings\":\"AAAA,WAAW;AACX;;IAEI,kBAAkB;;IAElB,cAAc;IACd,sBAAsB;;IAEtB,yBAAyB;OACtB,sBAAsB;QACrB,qBAAqB;YACjB,iBAAiB;;IAEzB,2BAA2B;IAC3B,wBAAwB;IAEpB,mBAAmB;IACvB,wCAAwC;AAC5C;;AAEA;;IAEI,kBAAkB;;IAElB,cAAc;IACd,gBAAgB;;IAEhB,SAAS;IACT,UAAU;AACd;AACA;;IAEI,aAAa;AACjB;AACA;;IAEI,eAAe;IACf,YAAY;AAChB;;AAEA;;;IAOY,+BAA+B;AAC3C;;AAEA;;IAEI,kBAAkB;IAClB,MAAM;IACN,OAAO;;IAEP,cAAc;IACd,iBAAiB;IACjB,kBAAkB;AACtB;AACA;;;IAGI,cAAc;;IAEd,WAAW;AACf;AACA;;IAEI,WAAW;AACf;AACA;;IAEI,kBAAkB;AACtB;;AAEA;;IAEI,aAAa;IACb,WAAW;;IAEX,YAAY;IACZ,eAAe;AACnB;AACA;;IAEI,YAAY;AAChB;AACA;;IAEI,cAAc;AAClB;AACA;;IAEI,aAAa;AACjB;AACA;;IAEI,oBAAoB;AACxB;AACA;;IAEI,cAAc;AAClB;AACA;;IAEI,kBAAkB;AACtB;AACA;;IAEI,cAAc;;IAEd,YAAY;;IAEZ,6BAA6B;AACjC;AACA;IACI,aAAa;AACjB\",\"sourcesContent\":[\"/* Slider */\\n.slick-slider\\n{\\n position: relative;\\n\\n display: block;\\n box-sizing: border-box;\\n\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n\\n -webkit-touch-callout: none;\\n -khtml-user-select: none;\\n -ms-touch-action: pan-y;\\n touch-action: pan-y;\\n -webkit-tap-highlight-color: transparent;\\n}\\n\\n.slick-list\\n{\\n position: relative;\\n\\n display: block;\\n overflow: hidden;\\n\\n margin: 0;\\n padding: 0;\\n}\\n.slick-list:focus\\n{\\n outline: none;\\n}\\n.slick-list.dragging\\n{\\n cursor: pointer;\\n cursor: hand;\\n}\\n\\n.slick-slider .slick-track,\\n.slick-slider .slick-list\\n{\\n -webkit-transform: translate3d(0, 0, 0);\\n -moz-transform: translate3d(0, 0, 0);\\n -ms-transform: translate3d(0, 0, 0);\\n -o-transform: translate3d(0, 0, 0);\\n transform: translate3d(0, 0, 0);\\n}\\n\\n.slick-track\\n{\\n position: relative;\\n top: 0;\\n left: 0;\\n\\n display: block;\\n margin-left: auto;\\n margin-right: auto;\\n}\\n.slick-track:before,\\n.slick-track:after\\n{\\n display: table;\\n\\n content: '';\\n}\\n.slick-track:after\\n{\\n clear: both;\\n}\\n.slick-loading .slick-track\\n{\\n visibility: hidden;\\n}\\n\\n.slick-slide\\n{\\n display: none;\\n float: left;\\n\\n height: 100%;\\n min-height: 1px;\\n}\\n[dir='rtl'] .slick-slide\\n{\\n float: right;\\n}\\n.slick-slide img\\n{\\n display: block;\\n}\\n.slick-slide.slick-loading img\\n{\\n display: none;\\n}\\n.slick-slide.dragging img\\n{\\n pointer-events: none;\\n}\\n.slick-initialized .slick-slide\\n{\\n display: block;\\n}\\n.slick-loading .slick-slide\\n{\\n visibility: hidden;\\n}\\n.slick-vertical .slick-slide\\n{\\n display: block;\\n\\n height: auto;\\n\\n border: 1px solid transparent;\\n}\\n.slick-arrow.slick-hidden {\\n display: none;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMV0hLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzJdIS4vbm9kZV9tb2R1bGVzL3NsaWNrLWNhcm91c2VsL3NsaWNrL3NsaWNrLmNzcy5qcyIsIm1hcHBpbmdzIjoiOzs7QUFBQTtBQUM4RztBQUM5Ryw4QkFBOEIscUdBQTJCO0FBQ3pEO0FBQ0Esd0VBQXdFLHlCQUF5Qix1QkFBdUIsNkJBQTZCLGtDQUFrQyxnQ0FBZ0MsZ0NBQWdDLGdDQUFnQyxvQ0FBb0MsK0JBQStCLDBCQUEwQiwrQ0FBK0MsR0FBRyxrQkFBa0IseUJBQXlCLHVCQUF1Qix1QkFBdUIsa0JBQWtCLGlCQUFpQixHQUFHLHNCQUFzQixvQkFBb0IsR0FBRyx5QkFBeUIsc0JBQXNCLG1CQUFtQixHQUFHLDZEQUE2RCxzQ0FBc0MsR0FBRyxtQkFBbUIseUJBQXlCLGFBQWEsY0FBYyx1QkFBdUIsd0JBQXdCLHlCQUF5QixHQUFHLDZDQUE2QyxxQkFBcUIsb0JBQW9CLEdBQUcsdUJBQXVCLGtCQUFrQixHQUFHLGdDQUFnQyx5QkFBeUIsR0FBRyxtQkFBbUIsb0JBQW9CLGtCQUFrQixxQkFBcUIsc0JBQXNCLEdBQUcsNkJBQTZCLG1CQUFtQixHQUFHLHFCQUFxQixxQkFBcUIsR0FBRyxtQ0FBbUMsb0JBQW9CLEdBQUcsOEJBQThCLDJCQUEyQixHQUFHLG9DQUFvQyxxQkFBcUIsR0FBRyxnQ0FBZ0MseUJBQXlCLEdBQUcsaUNBQWlDLHFCQUFxQixxQkFBcUIsc0NBQXNDLEdBQUcsNkJBQTZCLG9CQUFvQixHQUFHLFNBQVMsaUhBQWlILE1BQU0sYUFBYSxXQUFXLGFBQWEsYUFBYSxhQUFhLGFBQWEsY0FBYyxhQUFhLGFBQWEsYUFBYSxhQUFhLE9BQU8sTUFBTSxhQUFhLFdBQVcsYUFBYSxXQUFXLFVBQVUsS0FBSyxNQUFNLFVBQVUsTUFBTSxNQUFNLFVBQVUsVUFBVSxPQUFPLE9BQU8sWUFBWSxPQUFPLE1BQU0sWUFBWSxXQUFXLFdBQVcsVUFBVSxZQUFZLGFBQWEsTUFBTSxPQUFPLFdBQVcsVUFBVSxLQUFLLE1BQU0sVUFBVSxLQUFLLE1BQU0sWUFBWSxPQUFPLE1BQU0sVUFBVSxXQUFXLFVBQVUsVUFBVSxNQUFNLE1BQU0sVUFBVSxNQUFNLE1BQU0sVUFBVSxNQUFNLE1BQU0sVUFBVSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sVUFBVSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sV0FBVyxXQUFXLFlBQVksTUFBTSxLQUFLLFVBQVUsd0RBQXdELHlCQUF5Qix1QkFBdUIsNkJBQTZCLGtDQUFrQyxnQ0FBZ0MsZ0NBQWdDLGdDQUFnQyxvQ0FBb0MsK0JBQStCLDhCQUE4Qiw4QkFBOEIsK0NBQStDLEdBQUcsa0JBQWtCLHlCQUF5Qix1QkFBdUIsdUJBQXVCLGtCQUFrQixpQkFBaUIsR0FBRyxzQkFBc0Isb0JBQW9CLEdBQUcseUJBQXlCLHNCQUFzQixtQkFBbUIsR0FBRyw2REFBNkQsOENBQThDLDhDQUE4Qyw4Q0FBOEMsOENBQThDLDhDQUE4QyxHQUFHLG1CQUFtQix5QkFBeUIsYUFBYSxjQUFjLHVCQUF1Qix3QkFBd0IseUJBQXlCLEdBQUcsNkNBQTZDLHFCQUFxQixvQkFBb0IsR0FBRyx1QkFBdUIsa0JBQWtCLEdBQUcsZ0NBQWdDLHlCQUF5QixHQUFHLG1CQUFtQixvQkFBb0Isa0JBQWtCLHFCQUFxQixzQkFBc0IsR0FBRyw2QkFBNkIsbUJBQW1CLEdBQUcscUJBQXFCLHFCQUFxQixHQUFHLG1DQUFtQyxvQkFBb0IsR0FBRyw4QkFBOEIsMkJBQTJCLEdBQUcsb0NBQW9DLHFCQUFxQixHQUFHLGdDQUFnQyx5QkFBeUIsR0FBRyxpQ0FBaUMscUJBQXFCLHFCQUFxQixzQ0FBc0MsR0FBRyw2QkFBNkIsb0JBQW9CLEdBQUcscUJBQXFCO0FBQ3Q0STtBQUNBLCtEQUFlLHVCQUF1QixFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zbGljay1jYXJvdXNlbC9zbGljay9zbGljay5jc3M/NDZmMyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL2Nzcy1sb2FkZXIvc3JjL3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18odHJ1ZSk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCIvKiBTbGlkZXIgKi9cXG4uc2xpY2stc2xpZGVyXFxue1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuXFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcblxcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xcblxcbiAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XFxuICAgIC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgdG91Y2gtYWN0aW9uOiBwYW4teTtcXG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuXFxuLnNsaWNrLWxpc3RcXG57XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG5cXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuXFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogMDtcXG59XFxuLnNsaWNrLWxpc3Q6Zm9jdXNcXG57XFxuICAgIG91dGxpbmU6IG5vbmU7XFxufVxcbi5zbGljay1saXN0LmRyYWdnaW5nXFxue1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgIGN1cnNvcjogaGFuZDtcXG59XFxuXFxuLnNsaWNrLXNsaWRlciAuc2xpY2stdHJhY2ssXFxuLnNsaWNrLXNsaWRlciAuc2xpY2stbGlzdFxcbntcXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcXG59XFxuXFxuLnNsaWNrLXRyYWNrXFxue1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIHRvcDogMDtcXG4gICAgbGVmdDogMDtcXG5cXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XFxufVxcbi5zbGljay10cmFjazpiZWZvcmUsXFxuLnNsaWNrLXRyYWNrOmFmdGVyXFxue1xcbiAgICBkaXNwbGF5OiB0YWJsZTtcXG5cXG4gICAgY29udGVudDogJyc7XFxufVxcbi5zbGljay10cmFjazphZnRlclxcbntcXG4gICAgY2xlYXI6IGJvdGg7XFxufVxcbi5zbGljay1sb2FkaW5nIC5zbGljay10cmFja1xcbntcXG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xcbn1cXG5cXG4uc2xpY2stc2xpZGVcXG57XFxuICAgIGRpc3BsYXk6IG5vbmU7XFxuICAgIGZsb2F0OiBsZWZ0O1xcblxcbiAgICBoZWlnaHQ6IDEwMCU7XFxuICAgIG1pbi1oZWlnaHQ6IDFweDtcXG59XFxuW2Rpcj0ncnRsJ10gLnNsaWNrLXNsaWRlXFxue1xcbiAgICBmbG9hdDogcmlnaHQ7XFxufVxcbi5zbGljay1zbGlkZSBpbWdcXG57XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbn1cXG4uc2xpY2stc2xpZGUuc2xpY2stbG9hZGluZyBpbWdcXG57XFxuICAgIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5zbGljay1zbGlkZS5kcmFnZ2luZyBpbWdcXG57XFxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbn1cXG4uc2xpY2staW5pdGlhbGl6ZWQgLnNsaWNrLXNsaWRlXFxue1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG59XFxuLnNsaWNrLWxvYWRpbmcgLnNsaWNrLXNsaWRlXFxue1xcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XFxufVxcbi5zbGljay12ZXJ0aWNhbCAuc2xpY2stc2xpZGVcXG57XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcblxcbiAgICBoZWlnaHQ6IGF1dG87XFxuXFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xcbn1cXG4uc2xpY2stYXJyb3cuc2xpY2staGlkZGVuIHtcXG4gICAgZGlzcGxheTogbm9uZTtcXG59XFxuXCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovL25vZGVfbW9kdWxlcy9zbGljay1jYXJvdXNlbC9zbGljay9zbGljay5jc3NcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBQUEsV0FBVztBQUNYOztJQUVJLGtCQUFrQjs7SUFFbEIsY0FBYztJQUNkLHNCQUFzQjs7SUFFdEIseUJBQXlCO09BQ3RCLHNCQUFzQjtRQUNyQixxQkFBcUI7WUFDakIsaUJBQWlCOztJQUV6QiwyQkFBMkI7SUFDM0Isd0JBQXdCO0lBRXBCLG1CQUFtQjtJQUN2Qix3Q0FBd0M7QUFDNUM7O0FBRUE7O0lBRUksa0JBQWtCOztJQUVsQixjQUFjO0lBQ2QsZ0JBQWdCOztJQUVoQixTQUFTO0lBQ1QsVUFBVTtBQUNkO0FBQ0E7O0lBRUksYUFBYTtBQUNqQjtBQUNBOztJQUVJLGVBQWU7SUFDZixZQUFZO0FBQ2hCOztBQUVBOzs7SUFPWSwrQkFBK0I7QUFDM0M7O0FBRUE7O0lBRUksa0JBQWtCO0lBQ2xCLE1BQU07SUFDTixPQUFPOztJQUVQLGNBQWM7SUFDZCxpQkFBaUI7SUFDakIsa0JBQWtCO0FBQ3RCO0FBQ0E7OztJQUdJLGNBQWM7O0lBRWQsV0FBVztBQUNmO0FBQ0E7O0lBRUksV0FBVztBQUNmO0FBQ0E7O0lBRUksa0JBQWtCO0FBQ3RCOztBQUVBOztJQUVJLGFBQWE7SUFDYixXQUFXOztJQUVYLFlBQVk7SUFDWixlQUFlO0FBQ25CO0FBQ0E7O0lBRUksWUFBWTtBQUNoQjtBQUNBOztJQUVJLGNBQWM7QUFDbEI7QUFDQTs7SUFFSSxhQUFhO0FBQ2pCO0FBQ0E7O0lBRUksb0JBQW9CO0FBQ3hCO0FBQ0E7O0lBRUksY0FBYztBQUNsQjtBQUNBOztJQUVJLGtCQUFrQjtBQUN0QjtBQUNBOztJQUVJLGNBQWM7O0lBRWQsWUFBWTs7SUFFWiw2QkFBNkI7QUFDakM7QUFDQTtJQUNJLGFBQWE7QUFDakJcIixcInNvdXJjZXNDb250ZW50XCI6W1wiLyogU2xpZGVyICovXFxuLnNsaWNrLXNsaWRlclxcbntcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcblxcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG5cXG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG5cXG4gICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xcbiAgICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgIC1tcy10b3VjaC1hY3Rpb246IHBhbi15O1xcbiAgICAgICAgdG91Y2gtYWN0aW9uOiBwYW4teTtcXG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuXFxuLnNsaWNrLWxpc3RcXG57XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG5cXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuXFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogMDtcXG59XFxuLnNsaWNrLWxpc3Q6Zm9jdXNcXG57XFxuICAgIG91dGxpbmU6IG5vbmU7XFxufVxcbi5zbGljay1saXN0LmRyYWdnaW5nXFxue1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgIGN1cnNvcjogaGFuZDtcXG59XFxuXFxuLnNsaWNrLXNsaWRlciAuc2xpY2stdHJhY2ssXFxuLnNsaWNrLXNsaWRlciAuc2xpY2stbGlzdFxcbntcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xcbiAgICAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XFxuICAgICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcXG4gICAgICAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XFxufVxcblxcbi5zbGljay10cmFja1xcbntcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICB0b3A6IDA7XFxuICAgIGxlZnQ6IDA7XFxuXFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcXG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xcbn1cXG4uc2xpY2stdHJhY2s6YmVmb3JlLFxcbi5zbGljay10cmFjazphZnRlclxcbntcXG4gICAgZGlzcGxheTogdGFibGU7XFxuXFxuICAgIGNvbnRlbnQ6ICcnO1xcbn1cXG4uc2xpY2stdHJhY2s6YWZ0ZXJcXG57XFxuICAgIGNsZWFyOiBib3RoO1xcbn1cXG4uc2xpY2stbG9hZGluZyAuc2xpY2stdHJhY2tcXG57XFxuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcXG59XFxuXFxuLnNsaWNrLXNsaWRlXFxue1xcbiAgICBkaXNwbGF5OiBub25lO1xcbiAgICBmbG9hdDogbGVmdDtcXG5cXG4gICAgaGVpZ2h0OiAxMDAlO1xcbiAgICBtaW4taGVpZ2h0OiAxcHg7XFxufVxcbltkaXI9J3J0bCddIC5zbGljay1zbGlkZVxcbntcXG4gICAgZmxvYXQ6IHJpZ2h0O1xcbn1cXG4uc2xpY2stc2xpZGUgaW1nXFxue1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG59XFxuLnNsaWNrLXNsaWRlLnNsaWNrLWxvYWRpbmcgaW1nXFxue1xcbiAgICBkaXNwbGF5OiBub25lO1xcbn1cXG4uc2xpY2stc2xpZGUuZHJhZ2dpbmcgaW1nXFxue1xcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG59XFxuLnNsaWNrLWluaXRpYWxpemVkIC5zbGljay1zbGlkZVxcbntcXG4gICAgZGlzcGxheTogYmxvY2s7XFxufVxcbi5zbGljay1sb2FkaW5nIC5zbGljay1zbGlkZVxcbntcXG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xcbn1cXG4uc2xpY2stdmVydGljYWwgLnNsaWNrLXNsaWRlXFxue1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG5cXG4gICAgaGVpZ2h0OiBhdXRvO1xcblxcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcXG59XFxuLnNsaWNrLWFycm93LnNsaWNrLWhpZGRlbiB7XFxuICAgIGRpc3BsYXk6IG5vbmU7XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick.css\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/getUrl.js": +/*!***************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/getUrl.js ***! + \***************************************************************************************/ +/***/ (function(module) { + +"use strict"; +eval("\nmodule.exports = function(url, options) {\n if (!options) {\n // eslint-disable-next-line no-param-reassign\n options = {\n };\n } // eslint-disable-next-line no-underscore-dangle, no-param-reassign\n url = url && url.__esModule ? url.default : url;\n if (typeof url !== 'string') {\n return url;\n } // If url is already wrapped in quotes, remove them\n if (/^['\"].*['\"]$/.test(url)) {\n // eslint-disable-next-line no-param-reassign\n url = url.slice(1, -1);\n }\n if (options.hash) {\n // eslint-disable-next-line no-param-reassign\n url += options.hash;\n } // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n if (/[\"'() \\t\\n]/.test(url) || options.needQuotes) {\n return '\"'.concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, '\\\\n'), '\"');\n }\n return url;\n};\n\n//# sourceMappingURL=getUrl.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9ydW50aW1lL2dldFVybC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9ydW50aW1lL2dldFVybC5qcz8wZTcxIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbih1cmwsIG9wdGlvbnMpIHtcbiAgICBpZiAoIW9wdGlvbnMpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgIG9wdGlvbnMgPSB7XG4gICAgICAgIH07XG4gICAgfSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZXJzY29yZS1kYW5nbGUsIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgdXJsID0gdXJsICYmIHVybC5fX2VzTW9kdWxlID8gdXJsLmRlZmF1bHQgOiB1cmw7XG4gICAgaWYgKHR5cGVvZiB1cmwgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiB1cmw7XG4gICAgfSAvLyBJZiB1cmwgaXMgYWxyZWFkeSB3cmFwcGVkIGluIHF1b3RlcywgcmVtb3ZlIHRoZW1cbiAgICBpZiAoL15bJ1wiXS4qWydcIl0kLy50ZXN0KHVybCkpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgIHVybCA9IHVybC5zbGljZSgxLCAtMSk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLmhhc2gpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgIHVybCArPSBvcHRpb25zLmhhc2g7XG4gICAgfSAvLyBTaG91bGQgdXJsIGJlIHdyYXBwZWQ/XG4gICAgLy8gU2VlIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtdmFsdWVzLTMvI3VybHNcbiAgICBpZiAoL1tcIicoKSBcXHRcXG5dLy50ZXN0KHVybCkgfHwgb3B0aW9ucy5uZWVkUXVvdGVzKSB7XG4gICAgICAgIHJldHVybiAnXCInLmNvbmNhdCh1cmwucmVwbGFjZSgvXCIvZywgJ1xcXFxcIicpLnJlcGxhY2UoL1xcbi9nLCAnXFxcXG4nKSwgJ1wiJyk7XG4gICAgfVxuICAgIHJldHVybiB1cmw7XG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1nZXRVcmwuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/getUrl.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2Fservices&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cservices%5Cindex.jsx!": +/*!*****************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2Fservices&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cservices%5Cindex.jsx! ***! + \*****************************************************************************************************************************************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/services\",\n function () {\n return __webpack_require__(/*! ./src/pages/services/index.jsx */ \"./src/pages/services/index.jsx\");\n }\n ]);\n if(true) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/services\"])\n });\n }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWNsaWVudC1wYWdlcy1sb2FkZXIuanM/cGFnZT0lMkZzZXJ2aWNlcyZhYnNvbHV0ZVBhZ2VQYXRoPUMlM0ElNUNVc2VycyU1Q2hwJTVDRGVza3RvcCU1Q2J1c2luZXNzLWh1YiU1Q3NyYyU1Q3BhZ2VzJTVDc2VydmljZXMlNUNpbmRleC5qc3ghLmpzIiwibWFwcGluZ3MiOiI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLG1CQUFPLENBQUMsc0VBQWdDO0FBQ3ZEO0FBQ0E7QUFDQSxPQUFPLElBQVU7QUFDakIsTUFBTSxVQUFVO0FBQ2hCO0FBQ0EsT0FBTztBQUNQO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLz81YjBlIl0sInNvdXJjZXNDb250ZW50IjpbIlxuICAgICh3aW5kb3cuX19ORVhUX1AgPSB3aW5kb3cuX19ORVhUX1AgfHwgW10pLnB1c2goW1xuICAgICAgXCIvc2VydmljZXNcIixcbiAgICAgIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHJlcXVpcmUoXCIuL3NyYy9wYWdlcy9zZXJ2aWNlcy9pbmRleC5qc3hcIik7XG4gICAgICB9XG4gICAgXSk7XG4gICAgaWYobW9kdWxlLmhvdCkge1xuICAgICAgbW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgd2luZG93Ll9fTkVYVF9QLnB1c2goW1wiL3NlcnZpY2VzXCJdKVxuICAgICAgfSk7XG4gICAgfVxuICAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2Fservices&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cservices%5Cindex.jsx!\n"); + +/***/ }), + +/***/ "./node_modules/react-circular-progressbar/dist/styles.css": +/*!*****************************************************************!*\ + !*** ./node_modules/react-circular-progressbar/dist/styles.css ***! + \*****************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var api = __webpack_require__(/*! !../../next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js */ \"./node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js\");\n var content = __webpack_require__(/*! !!../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./styles.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/react-circular-progressbar/dist/styles.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = function(element) {\n // These elements should always exist. If they do not,\n // this code should fail.\n var anchorElement = document.querySelector('#__next_css__DO_NOT_USE__');\n var parentNode = anchorElement.parentNode// Normally <head>\n ;\n // Each style tag should be placed right before our\n // anchor. By inserting before and not after, we do not\n // need to track the last inserted element.\n parentNode.insertBefore(element, anchorElement);\n };\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\nif (true) {\n if (!content.locals || module.hot.invalidate) {\n var isEqualLocals = function isEqualLocals(a, b, isNamedExport) {\n if (!a && b || a && !b) {\n return false;\n }\n let p;\n for(p in a){\n if (isNamedExport && p === 'default') {\n continue;\n }\n if (a[p] !== b[p]) {\n return false;\n }\n }\n for(p in b){\n if (isNamedExport && p === 'default') {\n continue;\n }\n if (!a[p]) {\n return false;\n }\n }\n return true;\n};\n var oldLocals = content.locals;\n\n module.hot.accept(\n /*! !!../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./styles.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/react-circular-progressbar/dist/styles.css\",\n function () {\n content = __webpack_require__(/*! !!../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./styles.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/react-circular-progressbar/dist/styles.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\n if (!isEqualLocals(oldLocals, content.locals)) {\n module.hot.invalidate();\n\n return;\n }\n\n oldLocals = content.locals;\n\n update(content);\n }\n )\n }\n\n module.hot.dispose(function() {\n update();\n });\n}\n\nmodule.exports = content.locals || {};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtY2lyY3VsYXItcHJvZ3Jlc3NiYXIvZGlzdC9zdHlsZXMuY3NzLmpzIiwibWFwcGluZ3MiOiJBQUFBLFVBQVUsbUJBQU8sQ0FBQywwTUFBOEY7QUFDaEgsMEJBQTBCLG1CQUFPLENBQUMsdWZBQTBOOztBQUU1UDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOzs7QUFHQSxJQUFJLElBQVU7QUFDZCx5QkFBeUIsVUFBVTtBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsSUFBSSxpQkFBaUI7QUFDckIsTUFBTSx1ZkFBME47QUFDaE87QUFDQSxrQkFBa0IsbUJBQU8sQ0FBQyx1ZkFBME47O0FBRXBQOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGdCQUFnQixVQUFVOztBQUUxQjtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLEVBQUUsVUFBVTtBQUNaO0FBQ0EsR0FBRztBQUNIOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9yZWFjdC1jaXJjdWxhci1wcm9ncmVzc2Jhci9kaXN0L3N0eWxlcy5jc3M/ZWEwYSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgYXBpID0gcmVxdWlyZShcIiEuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtc3R5bGUtbG9hZGVyL3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCIpO1xuICAgICAgICAgICAgdmFyIGNvbnRlbnQgPSByZXF1aXJlKFwiISEuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL2Nzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzhdLnVzZVsxXSEuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMl0hLi9zdHlsZXMuY3NzXCIpO1xuXG4gICAgICAgICAgICBjb250ZW50ID0gY29udGVudC5fX2VzTW9kdWxlID8gY29udGVudC5kZWZhdWx0IDogY29udGVudDtcblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICBjb250ZW50ID0gW1ttb2R1bGUuaWQsIGNvbnRlbnQsICcnXV07XG4gICAgICAgICAgICB9XG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuaW5zZXJ0ID0gZnVuY3Rpb24oZWxlbWVudCkge1xuICAgICAgICAgICAgICAgIC8vIFRoZXNlIGVsZW1lbnRzIHNob3VsZCBhbHdheXMgZXhpc3QuIElmIHRoZXkgZG8gbm90LFxuICAgICAgICAgICAgICAgIC8vIHRoaXMgY29kZSBzaG91bGQgZmFpbC5cbiAgICAgICAgICAgICAgICB2YXIgYW5jaG9yRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNfX25leHRfY3NzX19ET19OT1RfVVNFX18nKTtcbiAgICAgICAgICAgICAgICB2YXIgcGFyZW50Tm9kZSA9IGFuY2hvckVsZW1lbnQucGFyZW50Tm9kZS8vIE5vcm1hbGx5IDxoZWFkPlxuICAgICAgICAgICAgICAgIDtcbiAgICAgICAgICAgICAgICAvLyBFYWNoIHN0eWxlIHRhZyBzaG91bGQgYmUgcGxhY2VkIHJpZ2h0IGJlZm9yZSBvdXJcbiAgICAgICAgICAgICAgICAvLyBhbmNob3IuIEJ5IGluc2VydGluZyBiZWZvcmUgYW5kIG5vdCBhZnRlciwgd2UgZG8gbm90XG4gICAgICAgICAgICAgICAgLy8gbmVlZCB0byB0cmFjayB0aGUgbGFzdCBpbnNlcnRlZCBlbGVtZW50LlxuICAgICAgICAgICAgICAgIHBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGVsZW1lbnQsIGFuY2hvckVsZW1lbnQpO1xuICAgICAgICAgICAgfTtcbm9wdGlvbnMuc2luZ2xldG9uID0gZmFsc2U7XG5cbnZhciB1cGRhdGUgPSBhcGkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuaWYgKG1vZHVsZS5ob3QpIHtcbiAgaWYgKCFjb250ZW50LmxvY2FscyB8fCBtb2R1bGUuaG90LmludmFsaWRhdGUpIHtcbiAgICB2YXIgaXNFcXVhbExvY2FscyA9IGZ1bmN0aW9uIGlzRXF1YWxMb2NhbHMoYSwgYiwgaXNOYW1lZEV4cG9ydCkge1xuICAgIGlmICghYSAmJiBiIHx8IGEgJiYgIWIpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBsZXQgcDtcbiAgICBmb3IocCBpbiBhKXtcbiAgICAgICAgaWYgKGlzTmFtZWRFeHBvcnQgJiYgcCA9PT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYVtwXSAhPT0gYltwXSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZvcihwIGluIGIpe1xuICAgICAgICBpZiAoaXNOYW1lZEV4cG9ydCAmJiBwID09PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghYVtwXSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufTtcbiAgICB2YXIgb2xkTG9jYWxzID0gY29udGVudC5sb2NhbHM7XG5cbiAgICBtb2R1bGUuaG90LmFjY2VwdChcbiAgICAgIFwiISEuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL2Nzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzhdLnVzZVsxXSEuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMl0hLi9zdHlsZXMuY3NzXCIsXG4gICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNvbnRlbnQgPSByZXF1aXJlKFwiISEuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL2Nzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzhdLnVzZVsxXSEuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMl0hLi9zdHlsZXMuY3NzXCIpO1xuXG4gICAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50Ll9fZXNNb2R1bGUgPyBjb250ZW50LmRlZmF1bHQgOiBjb250ZW50O1xuXG4gICAgICAgICAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBjb250ZW50ID0gW1ttb2R1bGUuaWQsIGNvbnRlbnQsICcnXV07XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBpZiAoIWlzRXF1YWxMb2NhbHMob2xkTG9jYWxzLCBjb250ZW50LmxvY2FscykpIHtcbiAgICAgICAgICAgICAgICBtb2R1bGUuaG90LmludmFsaWRhdGUoKTtcblxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIG9sZExvY2FscyA9IGNvbnRlbnQubG9jYWxzO1xuXG4gICAgICAgICAgICAgIHVwZGF0ZShjb250ZW50KTtcbiAgICAgIH1cbiAgICApXG4gIH1cblxuICBtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24oKSB7XG4gICAgdXBkYXRlKCk7XG4gIH0pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNvbnRlbnQubG9jYWxzIHx8IHt9OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-circular-progressbar/dist/styles.css\n"); + +/***/ }), + +/***/ "./node_modules/react-modal-video/css/modal-video.css": +/*!************************************************************!*\ + !*** ./node_modules/react-modal-video/css/modal-video.css ***! + \************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var api = __webpack_require__(/*! !../../next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js */ \"./node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js\");\n var content = __webpack_require__(/*! !!../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./modal-video.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/react-modal-video/css/modal-video.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = function(element) {\n // These elements should always exist. If they do not,\n // this code should fail.\n var anchorElement = document.querySelector('#__next_css__DO_NOT_USE__');\n var parentNode = anchorElement.parentNode// Normally <head>\n ;\n // Each style tag should be placed right before our\n // anchor. By inserting before and not after, we do not\n // need to track the last inserted element.\n parentNode.insertBefore(element, anchorElement);\n };\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\nif (true) {\n if (!content.locals || module.hot.invalidate) {\n var isEqualLocals = function isEqualLocals(a, b, isNamedExport) {\n if (!a && b || a && !b) {\n return false;\n }\n let p;\n for(p in a){\n if (isNamedExport && p === 'default') {\n continue;\n }\n if (a[p] !== b[p]) {\n return false;\n }\n }\n for(p in b){\n if (isNamedExport && p === 'default') {\n continue;\n }\n if (!a[p]) {\n return false;\n }\n }\n return true;\n};\n var oldLocals = content.locals;\n\n module.hot.accept(\n /*! !!../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./modal-video.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/react-modal-video/css/modal-video.css\",\n function () {\n content = __webpack_require__(/*! !!../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./modal-video.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/react-modal-video/css/modal-video.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\n if (!isEqualLocals(oldLocals, content.locals)) {\n module.hot.invalidate();\n\n return;\n }\n\n oldLocals = content.locals;\n\n update(content);\n }\n )\n }\n\n module.hot.dispose(function() {\n update();\n });\n}\n\nmodule.exports = content.locals || {};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtbW9kYWwtdmlkZW8vY3NzL21vZGFsLXZpZGVvLmNzcy5qcyIsIm1hcHBpbmdzIjoiQUFBQSxVQUFVLG1CQUFPLENBQUMsME1BQThGO0FBQ2hILDBCQUEwQixtQkFBTyxDQUFDLHVmQUErTjs7QUFFalE7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7O0FBR0EsSUFBSSxJQUFVO0FBQ2QseUJBQXlCLFVBQVU7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLElBQUksaUJBQWlCO0FBQ3JCLE1BQU0sdWZBQStOO0FBQ3JPO0FBQ0Esa0JBQWtCLG1CQUFPLENBQUMsdWZBQStOOztBQUV6UDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxnQkFBZ0IsVUFBVTs7QUFFMUI7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxFQUFFLFVBQVU7QUFDWjtBQUNBLEdBQUc7QUFDSDs7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmVhY3QtbW9kYWwtdmlkZW8vY3NzL21vZGFsLXZpZGVvLmNzcz80YzUxIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBhcGkgPSByZXF1aXJlKFwiIS4uLy4uL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvbmV4dC1zdHlsZS1sb2FkZXIvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIik7XG4gICAgICAgICAgICB2YXIgY29udGVudCA9IHJlcXVpcmUoXCIhIS4uLy4uL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvY3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzFdIS4uLy4uL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzhdLnVzZVsyXSEuL21vZGFsLXZpZGVvLmNzc1wiKTtcblxuICAgICAgICAgICAgY29udGVudCA9IGNvbnRlbnQuX19lc01vZHVsZSA/IGNvbnRlbnQuZGVmYXVsdCA6IGNvbnRlbnQ7XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgY29udGVudCA9IFtbbW9kdWxlLmlkLCBjb250ZW50LCAnJ11dO1xuICAgICAgICAgICAgfVxuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLmluc2VydCA9IGZ1bmN0aW9uKGVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAvLyBUaGVzZSBlbGVtZW50cyBzaG91bGQgYWx3YXlzIGV4aXN0LiBJZiB0aGV5IGRvIG5vdCxcbiAgICAgICAgICAgICAgICAvLyB0aGlzIGNvZGUgc2hvdWxkIGZhaWwuXG4gICAgICAgICAgICAgICAgdmFyIGFuY2hvckVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjX19uZXh0X2Nzc19fRE9fTk9UX1VTRV9fJyk7XG4gICAgICAgICAgICAgICAgdmFyIHBhcmVudE5vZGUgPSBhbmNob3JFbGVtZW50LnBhcmVudE5vZGUvLyBOb3JtYWxseSA8aGVhZD5cbiAgICAgICAgICAgICAgICA7XG4gICAgICAgICAgICAgICAgLy8gRWFjaCBzdHlsZSB0YWcgc2hvdWxkIGJlIHBsYWNlZCByaWdodCBiZWZvcmUgb3VyXG4gICAgICAgICAgICAgICAgLy8gYW5jaG9yLiBCeSBpbnNlcnRpbmcgYmVmb3JlIGFuZCBub3QgYWZ0ZXIsIHdlIGRvIG5vdFxuICAgICAgICAgICAgICAgIC8vIG5lZWQgdG8gdHJhY2sgdGhlIGxhc3QgaW5zZXJ0ZWQgZWxlbWVudC5cbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlLmluc2VydEJlZm9yZShlbGVtZW50LCBhbmNob3JFbGVtZW50KTtcbiAgICAgICAgICAgIH07XG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xuXG52YXIgdXBkYXRlID0gYXBpKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cbmlmIChtb2R1bGUuaG90KSB7XG4gIGlmICghY29udGVudC5sb2NhbHMgfHwgbW9kdWxlLmhvdC5pbnZhbGlkYXRlKSB7XG4gICAgdmFyIGlzRXF1YWxMb2NhbHMgPSBmdW5jdGlvbiBpc0VxdWFsTG9jYWxzKGEsIGIsIGlzTmFtZWRFeHBvcnQpIHtcbiAgICBpZiAoIWEgJiYgYiB8fCBhICYmICFiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgbGV0IHA7XG4gICAgZm9yKHAgaW4gYSl7XG4gICAgICAgIGlmIChpc05hbWVkRXhwb3J0ICYmIHAgPT09ICdkZWZhdWx0Jykge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFbcF0gIT09IGJbcF0pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmb3IocCBpbiBiKXtcbiAgICAgICAgaWYgKGlzTmFtZWRFeHBvcnQgJiYgcCA9PT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWFbcF0pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn07XG4gICAgdmFyIG9sZExvY2FscyA9IGNvbnRlbnQubG9jYWxzO1xuXG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoXG4gICAgICBcIiEhLi4vLi4vbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMV0hLi4vLi4vbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzJdIS4vbW9kYWwtdmlkZW8uY3NzXCIsXG4gICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNvbnRlbnQgPSByZXF1aXJlKFwiISEuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL2Nzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzhdLnVzZVsxXSEuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMl0hLi9tb2RhbC12aWRlby5jc3NcIik7XG5cbiAgICAgICAgICAgICAgY29udGVudCA9IGNvbnRlbnQuX19lc01vZHVsZSA/IGNvbnRlbnQuZGVmYXVsdCA6IGNvbnRlbnQ7XG5cbiAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmICghaXNFcXVhbExvY2FscyhvbGRMb2NhbHMsIGNvbnRlbnQubG9jYWxzKSkge1xuICAgICAgICAgICAgICAgIG1vZHVsZS5ob3QuaW52YWxpZGF0ZSgpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgb2xkTG9jYWxzID0gY29udGVudC5sb2NhbHM7XG5cbiAgICAgICAgICAgICAgdXBkYXRlKGNvbnRlbnQpO1xuICAgICAgfVxuICAgIClcbiAgfVxuXG4gIG1vZHVsZS5ob3QuZGlzcG9zZShmdW5jdGlvbigpIHtcbiAgICB1cGRhdGUoKTtcbiAgfSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY29udGVudC5sb2NhbHMgfHwge307Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/react-modal-video/css/modal-video.css\n"); + +/***/ }), + +/***/ "./node_modules/slick-carousel/slick/slick-theme.css": +/*!***********************************************************!*\ + !*** ./node_modules/slick-carousel/slick/slick-theme.css ***! + \***********************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var api = __webpack_require__(/*! !../../next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js */ \"./node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js\");\n var content = __webpack_require__(/*! !!../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./slick-theme.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick-theme.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = function(element) {\n // These elements should always exist. If they do not,\n // this code should fail.\n var anchorElement = document.querySelector('#__next_css__DO_NOT_USE__');\n var parentNode = anchorElement.parentNode// Normally <head>\n ;\n // Each style tag should be placed right before our\n // anchor. By inserting before and not after, we do not\n // need to track the last inserted element.\n parentNode.insertBefore(element, anchorElement);\n };\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\nif (true) {\n if (!content.locals || module.hot.invalidate) {\n var isEqualLocals = function isEqualLocals(a, b, isNamedExport) {\n if (!a && b || a && !b) {\n return false;\n }\n let p;\n for(p in a){\n if (isNamedExport && p === 'default') {\n continue;\n }\n if (a[p] !== b[p]) {\n return false;\n }\n }\n for(p in b){\n if (isNamedExport && p === 'default') {\n continue;\n }\n if (!a[p]) {\n return false;\n }\n }\n return true;\n};\n var oldLocals = content.locals;\n\n module.hot.accept(\n /*! !!../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./slick-theme.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick-theme.css\",\n function () {\n content = __webpack_require__(/*! !!../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./slick-theme.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick-theme.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\n if (!isEqualLocals(oldLocals, content.locals)) {\n module.hot.invalidate();\n\n return;\n }\n\n oldLocals = content.locals;\n\n update(content);\n }\n )\n }\n\n module.hot.dispose(function() {\n update();\n });\n}\n\nmodule.exports = content.locals || {};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc2xpY2stY2Fyb3VzZWwvc2xpY2svc2xpY2stdGhlbWUuY3NzLmpzIiwibWFwcGluZ3MiOiJBQUFBLFVBQVUsbUJBQU8sQ0FBQywwTUFBOEY7QUFDaEgsMEJBQTBCLG1CQUFPLENBQUMsc2ZBQStOOztBQUVqUTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOzs7QUFHQSxJQUFJLElBQVU7QUFDZCx5QkFBeUIsVUFBVTtBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsSUFBSSxpQkFBaUI7QUFDckIsTUFBTSxzZkFBK047QUFDck87QUFDQSxrQkFBa0IsbUJBQU8sQ0FBQyxzZkFBK047O0FBRXpQOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGdCQUFnQixVQUFVOztBQUUxQjtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLEVBQUUsVUFBVTtBQUNaO0FBQ0EsR0FBRztBQUNIOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zbGljay1jYXJvdXNlbC9zbGljay9zbGljay10aGVtZS5jc3M/NzcyOCJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgYXBpID0gcmVxdWlyZShcIiEuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtc3R5bGUtbG9hZGVyL3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCIpO1xuICAgICAgICAgICAgdmFyIGNvbnRlbnQgPSByZXF1aXJlKFwiISEuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL2Nzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzhdLnVzZVsxXSEuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMl0hLi9zbGljay10aGVtZS5jc3NcIik7XG5cbiAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50Ll9fZXNNb2R1bGUgPyBjb250ZW50LmRlZmF1bHQgOiBjb250ZW50O1xuXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcbiAgICAgICAgICAgIH1cblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5pbnNlcnQgPSBmdW5jdGlvbihlbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgLy8gVGhlc2UgZWxlbWVudHMgc2hvdWxkIGFsd2F5cyBleGlzdC4gSWYgdGhleSBkbyBub3QsXG4gICAgICAgICAgICAgICAgLy8gdGhpcyBjb2RlIHNob3VsZCBmYWlsLlxuICAgICAgICAgICAgICAgIHZhciBhbmNob3JFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI19fbmV4dF9jc3NfX0RPX05PVF9VU0VfXycpO1xuICAgICAgICAgICAgICAgIHZhciBwYXJlbnROb2RlID0gYW5jaG9yRWxlbWVudC5wYXJlbnROb2RlLy8gTm9ybWFsbHkgPGhlYWQ+XG4gICAgICAgICAgICAgICAgO1xuICAgICAgICAgICAgICAgIC8vIEVhY2ggc3R5bGUgdGFnIHNob3VsZCBiZSBwbGFjZWQgcmlnaHQgYmVmb3JlIG91clxuICAgICAgICAgICAgICAgIC8vIGFuY2hvci4gQnkgaW5zZXJ0aW5nIGJlZm9yZSBhbmQgbm90IGFmdGVyLCB3ZSBkbyBub3RcbiAgICAgICAgICAgICAgICAvLyBuZWVkIHRvIHRyYWNrIHRoZSBsYXN0IGluc2VydGVkIGVsZW1lbnQuXG4gICAgICAgICAgICAgICAgcGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZWxlbWVudCwgYW5jaG9yRWxlbWVudCk7XG4gICAgICAgICAgICB9O1xub3B0aW9ucy5zaW5nbGV0b24gPSBmYWxzZTtcblxudmFyIHVwZGF0ZSA9IGFwaShjb250ZW50LCBvcHRpb25zKTtcblxuXG5pZiAobW9kdWxlLmhvdCkge1xuICBpZiAoIWNvbnRlbnQubG9jYWxzIHx8IG1vZHVsZS5ob3QuaW52YWxpZGF0ZSkge1xuICAgIHZhciBpc0VxdWFsTG9jYWxzID0gZnVuY3Rpb24gaXNFcXVhbExvY2FscyhhLCBiLCBpc05hbWVkRXhwb3J0KSB7XG4gICAgaWYgKCFhICYmIGIgfHwgYSAmJiAhYikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGxldCBwO1xuICAgIGZvcihwIGluIGEpe1xuICAgICAgICBpZiAoaXNOYW1lZEV4cG9ydCAmJiBwID09PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhW3BdICE9PSBiW3BdKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZm9yKHAgaW4gYil7XG4gICAgICAgIGlmIChpc05hbWVkRXhwb3J0ICYmIHAgPT09ICdkZWZhdWx0Jykge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFhW3BdKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG59O1xuICAgIHZhciBvbGRMb2NhbHMgPSBjb250ZW50LmxvY2FscztcblxuICAgIG1vZHVsZS5ob3QuYWNjZXB0KFxuICAgICAgXCIhIS4uLy4uL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvY3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzFdIS4uLy4uL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzhdLnVzZVsyXSEuL3NsaWNrLXRoZW1lLmNzc1wiLFxuICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICBjb250ZW50ID0gcmVxdWlyZShcIiEhLi4vLi4vbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMV0hLi4vLi4vbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzJdIS4vc2xpY2stdGhlbWUuY3NzXCIpO1xuXG4gICAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50Ll9fZXNNb2R1bGUgPyBjb250ZW50LmRlZmF1bHQgOiBjb250ZW50O1xuXG4gICAgICAgICAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBjb250ZW50ID0gW1ttb2R1bGUuaWQsIGNvbnRlbnQsICcnXV07XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBpZiAoIWlzRXF1YWxMb2NhbHMob2xkTG9jYWxzLCBjb250ZW50LmxvY2FscykpIHtcbiAgICAgICAgICAgICAgICBtb2R1bGUuaG90LmludmFsaWRhdGUoKTtcblxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIG9sZExvY2FscyA9IGNvbnRlbnQubG9jYWxzO1xuXG4gICAgICAgICAgICAgIHVwZGF0ZShjb250ZW50KTtcbiAgICAgIH1cbiAgICApXG4gIH1cblxuICBtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24oKSB7XG4gICAgdXBkYXRlKCk7XG4gIH0pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNvbnRlbnQubG9jYWxzIHx8IHt9OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/slick-carousel/slick/slick-theme.css\n"); + +/***/ }), + +/***/ "./node_modules/slick-carousel/slick/slick.css": +/*!*****************************************************!*\ + !*** ./node_modules/slick-carousel/slick/slick.css ***! + \*****************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var api = __webpack_require__(/*! !../../next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js */ \"./node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js\");\n var content = __webpack_require__(/*! !!../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./slick.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = function(element) {\n // These elements should always exist. If they do not,\n // this code should fail.\n var anchorElement = document.querySelector('#__next_css__DO_NOT_USE__');\n var parentNode = anchorElement.parentNode// Normally <head>\n ;\n // Each style tag should be placed right before our\n // anchor. By inserting before and not after, we do not\n // need to track the last inserted element.\n parentNode.insertBefore(element, anchorElement);\n };\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\nif (true) {\n if (!content.locals || module.hot.invalidate) {\n var isEqualLocals = function isEqualLocals(a, b, isNamedExport) {\n if (!a && b || a && !b) {\n return false;\n }\n let p;\n for(p in a){\n if (isNamedExport && p === 'default') {\n continue;\n }\n if (a[p] !== b[p]) {\n return false;\n }\n }\n for(p in b){\n if (isNamedExport && p === 'default') {\n continue;\n }\n if (!a[p]) {\n return false;\n }\n }\n return true;\n};\n var oldLocals = content.locals;\n\n module.hot.accept(\n /*! !!../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./slick.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick.css\",\n function () {\n content = __webpack_require__(/*! !!../../next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!../../next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./slick.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\n if (!isEqualLocals(oldLocals, content.locals)) {\n module.hot.invalidate();\n\n return;\n }\n\n oldLocals = content.locals;\n\n update(content);\n }\n )\n }\n\n module.hot.dispose(function() {\n update();\n });\n}\n\nmodule.exports = content.locals || {};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc2xpY2stY2Fyb3VzZWwvc2xpY2svc2xpY2suY3NzLmpzIiwibWFwcGluZ3MiOiJBQUFBLFVBQVUsbUJBQU8sQ0FBQywwTUFBOEY7QUFDaEgsMEJBQTBCLG1CQUFPLENBQUMsMGVBQXlOOztBQUUzUDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOzs7QUFHQSxJQUFJLElBQVU7QUFDZCx5QkFBeUIsVUFBVTtBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsSUFBSSxpQkFBaUI7QUFDckIsTUFBTSwwZUFBeU47QUFDL047QUFDQSxrQkFBa0IsbUJBQU8sQ0FBQywwZUFBeU47O0FBRW5QOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGdCQUFnQixVQUFVOztBQUUxQjtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLEVBQUUsVUFBVTtBQUNaO0FBQ0EsR0FBRztBQUNIOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9zbGljay1jYXJvdXNlbC9zbGljay9zbGljay5jc3M/NGM1YiJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgYXBpID0gcmVxdWlyZShcIiEuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtc3R5bGUtbG9hZGVyL3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCIpO1xuICAgICAgICAgICAgdmFyIGNvbnRlbnQgPSByZXF1aXJlKFwiISEuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL2Nzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzhdLnVzZVsxXSEuLi8uLi9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMl0hLi9zbGljay5jc3NcIik7XG5cbiAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50Ll9fZXNNb2R1bGUgPyBjb250ZW50LmRlZmF1bHQgOiBjb250ZW50O1xuXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcbiAgICAgICAgICAgIH1cblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5pbnNlcnQgPSBmdW5jdGlvbihlbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgLy8gVGhlc2UgZWxlbWVudHMgc2hvdWxkIGFsd2F5cyBleGlzdC4gSWYgdGhleSBkbyBub3QsXG4gICAgICAgICAgICAgICAgLy8gdGhpcyBjb2RlIHNob3VsZCBmYWlsLlxuICAgICAgICAgICAgICAgIHZhciBhbmNob3JFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI19fbmV4dF9jc3NfX0RPX05PVF9VU0VfXycpO1xuICAgICAgICAgICAgICAgIHZhciBwYXJlbnROb2RlID0gYW5jaG9yRWxlbWVudC5wYXJlbnROb2RlLy8gTm9ybWFsbHkgPGhlYWQ+XG4gICAgICAgICAgICAgICAgO1xuICAgICAgICAgICAgICAgIC8vIEVhY2ggc3R5bGUgdGFnIHNob3VsZCBiZSBwbGFjZWQgcmlnaHQgYmVmb3JlIG91clxuICAgICAgICAgICAgICAgIC8vIGFuY2hvci4gQnkgaW5zZXJ0aW5nIGJlZm9yZSBhbmQgbm90IGFmdGVyLCB3ZSBkbyBub3RcbiAgICAgICAgICAgICAgICAvLyBuZWVkIHRvIHRyYWNrIHRoZSBsYXN0IGluc2VydGVkIGVsZW1lbnQuXG4gICAgICAgICAgICAgICAgcGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZWxlbWVudCwgYW5jaG9yRWxlbWVudCk7XG4gICAgICAgICAgICB9O1xub3B0aW9ucy5zaW5nbGV0b24gPSBmYWxzZTtcblxudmFyIHVwZGF0ZSA9IGFwaShjb250ZW50LCBvcHRpb25zKTtcblxuXG5pZiAobW9kdWxlLmhvdCkge1xuICBpZiAoIWNvbnRlbnQubG9jYWxzIHx8IG1vZHVsZS5ob3QuaW52YWxpZGF0ZSkge1xuICAgIHZhciBpc0VxdWFsTG9jYWxzID0gZnVuY3Rpb24gaXNFcXVhbExvY2FscyhhLCBiLCBpc05hbWVkRXhwb3J0KSB7XG4gICAgaWYgKCFhICYmIGIgfHwgYSAmJiAhYikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGxldCBwO1xuICAgIGZvcihwIGluIGEpe1xuICAgICAgICBpZiAoaXNOYW1lZEV4cG9ydCAmJiBwID09PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhW3BdICE9PSBiW3BdKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZm9yKHAgaW4gYil7XG4gICAgICAgIGlmIChpc05hbWVkRXhwb3J0ICYmIHAgPT09ICdkZWZhdWx0Jykge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFhW3BdKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG59O1xuICAgIHZhciBvbGRMb2NhbHMgPSBjb250ZW50LmxvY2FscztcblxuICAgIG1vZHVsZS5ob3QuYWNjZXB0KFxuICAgICAgXCIhIS4uLy4uL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvY3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzFdIS4uLy4uL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzhdLnVzZVsyXSEuL3NsaWNrLmNzc1wiLFxuICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICBjb250ZW50ID0gcmVxdWlyZShcIiEhLi4vLi4vbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls4XS51c2VbMV0hLi4vLi4vbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOF0udXNlWzJdIS4vc2xpY2suY3NzXCIpO1xuXG4gICAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50Ll9fZXNNb2R1bGUgPyBjb250ZW50LmRlZmF1bHQgOiBjb250ZW50O1xuXG4gICAgICAgICAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBjb250ZW50ID0gW1ttb2R1bGUuaWQsIGNvbnRlbnQsICcnXV07XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBpZiAoIWlzRXF1YWxMb2NhbHMob2xkTG9jYWxzLCBjb250ZW50LmxvY2FscykpIHtcbiAgICAgICAgICAgICAgICBtb2R1bGUuaG90LmludmFsaWRhdGUoKTtcblxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIG9sZExvY2FscyA9IGNvbnRlbnQubG9jYWxzO1xuXG4gICAgICAgICAgICAgIHVwZGF0ZShjb250ZW50KTtcbiAgICAgIH1cbiAgICApXG4gIH1cblxuICBtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24oKSB7XG4gICAgdXBkYXRlKCk7XG4gIH0pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNvbnRlbnQubG9jYWxzIHx8IHt9OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/slick-carousel/slick/slick.css\n"); + +/***/ }), + +/***/ "./node_modules/next/link.js": +/*!***********************************!*\ + !*** ./node_modules/next/link.js ***! + \***********************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("module.exports = __webpack_require__(/*! ./dist/client/link */ \"./node_modules/next/dist/client/link.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9saW5rLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBLHlHQUE4QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9saW5rLmpzPzc1YjMiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Rpc3QvY2xpZW50L2xpbmsnKVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/link.js\n"); + +/***/ }), + +/***/ "./node_modules/prop-types/checkPropTypes.js": +/*!***************************************************!*\ + !*** ./node_modules/prop-types/checkPropTypes.js ***! + \***************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\n\n\nvar printWarning = function() {};\n\nif (true) {\n var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ \"./node_modules/prop-types/lib/ReactPropTypesSecret.js\");\n var loggedTypeFailures = {};\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (true) {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (true) {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9jaGVja1Byb3BUeXBlcy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWE7O0FBRWI7O0FBRUEsSUFBSSxJQUFxQztBQUN6Qyw2QkFBNkIsbUJBQU8sQ0FBQyx5RkFBNEI7QUFDakU7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsV0FBVztBQUN0QjtBQUNBO0FBQ0E7QUFDQSxNQUFNLElBQXFDO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2R0FBNkc7QUFDN0c7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0REFBNEQ7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLElBQXFDO0FBQzNDO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9jaGVja1Byb3BUeXBlcy5qcz8yNjI2Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgcHJpbnRXYXJuaW5nID0gZnVuY3Rpb24oKSB7fTtcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgdmFyIFJlYWN0UHJvcFR5cGVzU2VjcmV0ID0gcmVxdWlyZSgnLi9saWIvUmVhY3RQcm9wVHlwZXNTZWNyZXQnKTtcbiAgdmFyIGxvZ2dlZFR5cGVGYWlsdXJlcyA9IHt9O1xuICB2YXIgaGFzID0gRnVuY3Rpb24uY2FsbC5iaW5kKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkpO1xuXG4gIHByaW50V2FybmluZyA9IGZ1bmN0aW9uKHRleHQpIHtcbiAgICB2YXIgbWVzc2FnZSA9ICdXYXJuaW5nOiAnICsgdGV4dDtcbiAgICBpZiAodHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBjb25zb2xlLmVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgLy8gLS0tIFdlbGNvbWUgdG8gZGVidWdnaW5nIFJlYWN0IC0tLVxuICAgICAgLy8gVGhpcyBlcnJvciB3YXMgdGhyb3duIGFzIGEgY29udmVuaWVuY2Ugc28gdGhhdCB5b3UgY2FuIHVzZSB0aGlzIHN0YWNrXG4gICAgICAvLyB0byBmaW5kIHRoZSBjYWxsc2l0ZSB0aGF0IGNhdXNlZCB0aGlzIHdhcm5pbmcgdG8gZmlyZS5cbiAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgICB9IGNhdGNoICh4KSB7fVxuICB9O1xufVxuXG4vKipcbiAqIEFzc2VydCB0aGF0IHRoZSB2YWx1ZXMgbWF0Y2ggd2l0aCB0aGUgdHlwZSBzcGVjcy5cbiAqIEVycm9yIG1lc3NhZ2VzIGFyZSBtZW1vcml6ZWQgYW5kIHdpbGwgb25seSBiZSBzaG93biBvbmNlLlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSB0eXBlU3BlY3MgTWFwIG9mIG5hbWUgdG8gYSBSZWFjdFByb3BUeXBlXG4gKiBAcGFyYW0ge29iamVjdH0gdmFsdWVzIFJ1bnRpbWUgdmFsdWVzIHRoYXQgbmVlZCB0byBiZSB0eXBlLWNoZWNrZWRcbiAqIEBwYXJhbSB7c3RyaW5nfSBsb2NhdGlvbiBlLmcuIFwicHJvcFwiLCBcImNvbnRleHRcIiwgXCJjaGlsZCBjb250ZXh0XCJcbiAqIEBwYXJhbSB7c3RyaW5nfSBjb21wb25lbnROYW1lIE5hbWUgb2YgdGhlIGNvbXBvbmVudCBmb3IgZXJyb3IgbWVzc2FnZXMuXG4gKiBAcGFyYW0gez9GdW5jdGlvbn0gZ2V0U3RhY2sgUmV0dXJucyB0aGUgY29tcG9uZW50IHN0YWNrLlxuICogQHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gY2hlY2tQcm9wVHlwZXModHlwZVNwZWNzLCB2YWx1ZXMsIGxvY2F0aW9uLCBjb21wb25lbnROYW1lLCBnZXRTdGFjaykge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGZvciAodmFyIHR5cGVTcGVjTmFtZSBpbiB0eXBlU3BlY3MpIHtcbiAgICAgIGlmIChoYXModHlwZVNwZWNzLCB0eXBlU3BlY05hbWUpKSB7XG4gICAgICAgIHZhciBlcnJvcjtcbiAgICAgICAgLy8gUHJvcCB0eXBlIHZhbGlkYXRpb24gbWF5IHRocm93LiBJbiBjYXNlIHRoZXkgZG8sIHdlIGRvbid0IHdhbnQgdG9cbiAgICAgICAgLy8gZmFpbCB0aGUgcmVuZGVyIHBoYXNlIHdoZXJlIGl0IGRpZG4ndCBmYWlsIGJlZm9yZS4gU28gd2UgbG9nIGl0LlxuICAgICAgICAvLyBBZnRlciB0aGVzZSBoYXZlIGJlZW4gY2xlYW5lZCB1cCwgd2UnbGwgbGV0IHRoZW0gdGhyb3cuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgLy8gVGhpcyBpcyBpbnRlbnRpb25hbGx5IGFuIGludmFyaWFudCB0aGF0IGdldHMgY2F1Z2h0LiBJdCdzIHRoZSBzYW1lXG4gICAgICAgICAgLy8gYmVoYXZpb3IgYXMgd2l0aG91dCB0aGlzIHN0YXRlbWVudCBleGNlcHQgd2l0aCBhIGJldHRlciBtZXNzYWdlLlxuICAgICAgICAgIGlmICh0eXBlb2YgdHlwZVNwZWNzW3R5cGVTcGVjTmFtZV0gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHZhciBlcnIgPSBFcnJvcihcbiAgICAgICAgICAgICAgKGNvbXBvbmVudE5hbWUgfHwgJ1JlYWN0IGNsYXNzJykgKyAnOiAnICsgbG9jYXRpb24gKyAnIHR5cGUgYCcgKyB0eXBlU3BlY05hbWUgKyAnYCBpcyBpbnZhbGlkOyAnICtcbiAgICAgICAgICAgICAgJ2l0IG11c3QgYmUgYSBmdW5jdGlvbiwgdXN1YWxseSBmcm9tIHRoZSBgcHJvcC10eXBlc2AgcGFja2FnZSwgYnV0IHJlY2VpdmVkIGAnICsgdHlwZW9mIHR5cGVTcGVjc1t0eXBlU3BlY05hbWVdICsgJ2AuJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGVyci5uYW1lID0gJ0ludmFyaWFudCBWaW9sYXRpb24nO1xuICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlcnJvciA9IHR5cGVTcGVjc1t0eXBlU3BlY05hbWVdKHZhbHVlcywgdHlwZVNwZWNOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgbnVsbCwgUmVhY3RQcm9wVHlwZXNTZWNyZXQpO1xuICAgICAgICB9IGNhdGNoIChleCkge1xuICAgICAgICAgIGVycm9yID0gZXg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVycm9yICYmICEoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikpIHtcbiAgICAgICAgICBwcmludFdhcm5pbmcoXG4gICAgICAgICAgICAoY29tcG9uZW50TmFtZSB8fCAnUmVhY3QgY2xhc3MnKSArICc6IHR5cGUgc3BlY2lmaWNhdGlvbiBvZiAnICtcbiAgICAgICAgICAgIGxvY2F0aW9uICsgJyBgJyArIHR5cGVTcGVjTmFtZSArICdgIGlzIGludmFsaWQ7IHRoZSB0eXBlIGNoZWNrZXIgJyArXG4gICAgICAgICAgICAnZnVuY3Rpb24gbXVzdCByZXR1cm4gYG51bGxgIG9yIGFuIGBFcnJvcmAgYnV0IHJldHVybmVkIGEgJyArIHR5cGVvZiBlcnJvciArICcuICcgK1xuICAgICAgICAgICAgJ1lvdSBtYXkgaGF2ZSBmb3Jnb3R0ZW4gdG8gcGFzcyBhbiBhcmd1bWVudCB0byB0aGUgdHlwZSBjaGVja2VyICcgK1xuICAgICAgICAgICAgJ2NyZWF0b3IgKGFycmF5T2YsIGluc3RhbmNlT2YsIG9iamVjdE9mLCBvbmVPZiwgb25lT2ZUeXBlLCBhbmQgJyArXG4gICAgICAgICAgICAnc2hhcGUgYWxsIHJlcXVpcmUgYW4gYXJndW1lbnQpLidcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yICYmICEoZXJyb3IubWVzc2FnZSBpbiBsb2dnZWRUeXBlRmFpbHVyZXMpKSB7XG4gICAgICAgICAgLy8gT25seSBtb25pdG9yIHRoaXMgZmFpbHVyZSBvbmNlIGJlY2F1c2UgdGhlcmUgdGVuZHMgdG8gYmUgYSBsb3Qgb2YgdGhlXG4gICAgICAgICAgLy8gc2FtZSBlcnJvci5cbiAgICAgICAgICBsb2dnZWRUeXBlRmFpbHVyZXNbZXJyb3IubWVzc2FnZV0gPSB0cnVlO1xuXG4gICAgICAgICAgdmFyIHN0YWNrID0gZ2V0U3RhY2sgPyBnZXRTdGFjaygpIDogJyc7XG5cbiAgICAgICAgICBwcmludFdhcm5pbmcoXG4gICAgICAgICAgICAnRmFpbGVkICcgKyBsb2NhdGlvbiArICcgdHlwZTogJyArIGVycm9yLm1lc3NhZ2UgKyAoc3RhY2sgIT0gbnVsbCA/IHN0YWNrIDogJycpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFJlc2V0cyB3YXJuaW5nIGNhY2hlIHdoZW4gdGVzdGluZy5cbiAqXG4gKiBAcHJpdmF0ZVxuICovXG5jaGVja1Byb3BUeXBlcy5yZXNldFdhcm5pbmdDYWNoZSA9IGZ1bmN0aW9uKCkge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGxvZ2dlZFR5cGVGYWlsdXJlcyA9IHt9O1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY2hlY2tQcm9wVHlwZXM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/prop-types/checkPropTypes.js\n"); + +/***/ }), + +/***/ "./node_modules/prop-types/factoryWithTypeCheckers.js": +/*!************************************************************!*\ + !*** ./node_modules/prop-types/factoryWithTypeCheckers.js ***! + \************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\n\n\nvar ReactIs = __webpack_require__(/*! react-is */ \"./node_modules/prop-types/node_modules/react-is/index.js\");\nvar assign = __webpack_require__(/*! object-assign */ \"./node_modules/next/dist/build/polyfills/object-assign.js\");\n\nvar ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ \"./node_modules/prop-types/lib/ReactPropTypesSecret.js\");\nvar checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ \"./node_modules/prop-types/checkPropTypes.js\");\n\nvar has = Function.call.bind(Object.prototype.hasOwnProperty);\nvar printWarning = function() {};\n\nif (true) {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (true) {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if ( true && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (true) {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n true ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9mYWN0b3J5V2l0aFR5cGVDaGVja2Vycy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWE7O0FBRWIsY0FBYyxtQkFBTyxDQUFDLDBFQUFVO0FBQ2hDLGFBQWEsbUJBQU8sQ0FBQyxnRkFBZTs7QUFFcEMsMkJBQTJCLG1CQUFPLENBQUMseUZBQTRCO0FBQy9ELHFCQUFxQixtQkFBTyxDQUFDLHFFQUFrQjs7QUFFL0M7QUFDQTs7QUFFQSxJQUFJLElBQXFDO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQzs7QUFFM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsU0FBUztBQUN0QixjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWLDhCQUE4QjtBQUM5QixRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQkFBK0IsS0FBSztBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULDRCQUE0QjtBQUM1QixPQUFPO0FBQ1A7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxRQUFRLElBQXFDO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVUsU0FBUyxLQUFxQztBQUN4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixzQkFBc0I7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxVQUFVLElBQXFDO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0Esc0JBQXNCLDJCQUEyQjtBQUNqRDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU0sS0FBcUMsNEZBQTRGLENBQU07QUFDN0k7QUFDQTs7QUFFQSxvQkFBb0IsZ0NBQWdDO0FBQ3BEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHNCQUFzQixnQ0FBZ0M7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QjtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9mYWN0b3J5V2l0aFR5cGVDaGVja2Vycy5qcz9iNzZiIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUmVhY3RJcyA9IHJlcXVpcmUoJ3JlYWN0LWlzJyk7XG52YXIgYXNzaWduID0gcmVxdWlyZSgnb2JqZWN0LWFzc2lnbicpO1xuXG52YXIgUmVhY3RQcm9wVHlwZXNTZWNyZXQgPSByZXF1aXJlKCcuL2xpYi9SZWFjdFByb3BUeXBlc1NlY3JldCcpO1xudmFyIGNoZWNrUHJvcFR5cGVzID0gcmVxdWlyZSgnLi9jaGVja1Byb3BUeXBlcycpO1xuXG52YXIgaGFzID0gRnVuY3Rpb24uY2FsbC5iaW5kKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkpO1xudmFyIHByaW50V2FybmluZyA9IGZ1bmN0aW9uKCkge307XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIHByaW50V2FybmluZyA9IGZ1bmN0aW9uKHRleHQpIHtcbiAgICB2YXIgbWVzc2FnZSA9ICdXYXJuaW5nOiAnICsgdGV4dDtcbiAgICBpZiAodHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBjb25zb2xlLmVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgLy8gLS0tIFdlbGNvbWUgdG8gZGVidWdnaW5nIFJlYWN0IC0tLVxuICAgICAgLy8gVGhpcyBlcnJvciB3YXMgdGhyb3duIGFzIGEgY29udmVuaWVuY2Ugc28gdGhhdCB5b3UgY2FuIHVzZSB0aGlzIHN0YWNrXG4gICAgICAvLyB0byBmaW5kIHRoZSBjYWxsc2l0ZSB0aGF0IGNhdXNlZCB0aGlzIHdhcm5pbmcgdG8gZmlyZS5cbiAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgICB9IGNhdGNoICh4KSB7fVxuICB9O1xufVxuXG5mdW5jdGlvbiBlbXB0eUZ1bmN0aW9uVGhhdFJldHVybnNOdWxsKCkge1xuICByZXR1cm4gbnVsbDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihpc1ZhbGlkRWxlbWVudCwgdGhyb3dPbkRpcmVjdEFjY2Vzcykge1xuICAvKiBnbG9iYWwgU3ltYm9sICovXG4gIHZhciBJVEVSQVRPUl9TWU1CT0wgPSB0eXBlb2YgU3ltYm9sID09PSAnZnVuY3Rpb24nICYmIFN5bWJvbC5pdGVyYXRvcjtcbiAgdmFyIEZBVVhfSVRFUkFUT1JfU1lNQk9MID0gJ0BAaXRlcmF0b3InOyAvLyBCZWZvcmUgU3ltYm9sIHNwZWMuXG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGl0ZXJhdG9yIG1ldGhvZCBmdW5jdGlvbiBjb250YWluZWQgb24gdGhlIGl0ZXJhYmxlIG9iamVjdC5cbiAgICpcbiAgICogQmUgc3VyZSB0byBpbnZva2UgdGhlIGZ1bmN0aW9uIHdpdGggdGhlIGl0ZXJhYmxlIGFzIGNvbnRleHQ6XG4gICAqXG4gICAqICAgICB2YXIgaXRlcmF0b3JGbiA9IGdldEl0ZXJhdG9yRm4obXlJdGVyYWJsZSk7XG4gICAqICAgICBpZiAoaXRlcmF0b3JGbikge1xuICAgKiAgICAgICB2YXIgaXRlcmF0b3IgPSBpdGVyYXRvckZuLmNhbGwobXlJdGVyYWJsZSk7XG4gICAqICAgICAgIC4uLlxuICAgKiAgICAgfVxuICAgKlxuICAgKiBAcGFyYW0gez9vYmplY3R9IG1heWJlSXRlcmFibGVcbiAgICogQHJldHVybiB7P2Z1bmN0aW9ufVxuICAgKi9cbiAgZnVuY3Rpb24gZ2V0SXRlcmF0b3JGbihtYXliZUl0ZXJhYmxlKSB7XG4gICAgdmFyIGl0ZXJhdG9yRm4gPSBtYXliZUl0ZXJhYmxlICYmIChJVEVSQVRPUl9TWU1CT0wgJiYgbWF5YmVJdGVyYWJsZVtJVEVSQVRPUl9TWU1CT0xdIHx8IG1heWJlSXRlcmFibGVbRkFVWF9JVEVSQVRPUl9TWU1CT0xdKTtcbiAgICBpZiAodHlwZW9mIGl0ZXJhdG9yRm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiBpdGVyYXRvckZuO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDb2xsZWN0aW9uIG9mIG1ldGhvZHMgdGhhdCBhbGxvdyBkZWNsYXJhdGlvbiBhbmQgdmFsaWRhdGlvbiBvZiBwcm9wcyB0aGF0IGFyZVxuICAgKiBzdXBwbGllZCB0byBSZWFjdCBjb21wb25lbnRzLiBFeGFtcGxlIHVzYWdlOlxuICAgKlxuICAgKiAgIHZhciBQcm9wcyA9IHJlcXVpcmUoJ1JlYWN0UHJvcFR5cGVzJyk7XG4gICAqICAgdmFyIE15QXJ0aWNsZSA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtcbiAgICogICAgIHByb3BUeXBlczoge1xuICAgKiAgICAgICAvLyBBbiBvcHRpb25hbCBzdHJpbmcgcHJvcCBuYW1lZCBcImRlc2NyaXB0aW9uXCIuXG4gICAqICAgICAgIGRlc2NyaXB0aW9uOiBQcm9wcy5zdHJpbmcsXG4gICAqXG4gICAqICAgICAgIC8vIEEgcmVxdWlyZWQgZW51bSBwcm9wIG5hbWVkIFwiY2F0ZWdvcnlcIi5cbiAgICogICAgICAgY2F0ZWdvcnk6IFByb3BzLm9uZU9mKFsnTmV3cycsJ1Bob3RvcyddKS5pc1JlcXVpcmVkLFxuICAgKlxuICAgKiAgICAgICAvLyBBIHByb3AgbmFtZWQgXCJkaWFsb2dcIiB0aGF0IHJlcXVpcmVzIGFuIGluc3RhbmNlIG9mIERpYWxvZy5cbiAgICogICAgICAgZGlhbG9nOiBQcm9wcy5pbnN0YW5jZU9mKERpYWxvZykuaXNSZXF1aXJlZFxuICAgKiAgICAgfSxcbiAgICogICAgIHJlbmRlcjogZnVuY3Rpb24oKSB7IC4uLiB9XG4gICAqICAgfSk7XG4gICAqXG4gICAqIEEgbW9yZSBmb3JtYWwgc3BlY2lmaWNhdGlvbiBvZiBob3cgdGhlc2UgbWV0aG9kcyBhcmUgdXNlZDpcbiAgICpcbiAgICogICB0eXBlIDo9IGFycmF5fGJvb2x8ZnVuY3xvYmplY3R8bnVtYmVyfHN0cmluZ3xvbmVPZihbLi4uXSl8aW5zdGFuY2VPZiguLi4pXG4gICAqICAgZGVjbCA6PSBSZWFjdFByb3BUeXBlcy57dHlwZX0oLmlzUmVxdWlyZWQpP1xuICAgKlxuICAgKiBFYWNoIGFuZCBldmVyeSBkZWNsYXJhdGlvbiBwcm9kdWNlcyBhIGZ1bmN0aW9uIHdpdGggdGhlIHNhbWUgc2lnbmF0dXJlLiBUaGlzXG4gICAqIGFsbG93cyB0aGUgY3JlYXRpb24gb2YgY3VzdG9tIHZhbGlkYXRpb24gZnVuY3Rpb25zLiBGb3IgZXhhbXBsZTpcbiAgICpcbiAgICogIHZhciBNeUxpbmsgPSBSZWFjdC5jcmVhdGVDbGFzcyh7XG4gICAqICAgIHByb3BUeXBlczoge1xuICAgKiAgICAgIC8vIEFuIG9wdGlvbmFsIHN0cmluZyBvciBVUkkgcHJvcCBuYW1lZCBcImhyZWZcIi5cbiAgICogICAgICBocmVmOiBmdW5jdGlvbihwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUpIHtcbiAgICogICAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wTmFtZV07XG4gICAqICAgICAgICBpZiAocHJvcFZhbHVlICE9IG51bGwgJiYgdHlwZW9mIHByb3BWYWx1ZSAhPT0gJ3N0cmluZycgJiZcbiAgICogICAgICAgICAgICAhKHByb3BWYWx1ZSBpbnN0YW5jZW9mIFVSSSkpIHtcbiAgICogICAgICAgICAgcmV0dXJuIG5ldyBFcnJvcihcbiAgICogICAgICAgICAgICAnRXhwZWN0ZWQgYSBzdHJpbmcgb3IgYW4gVVJJIGZvciAnICsgcHJvcE5hbWUgKyAnIGluICcgK1xuICAgKiAgICAgICAgICAgIGNvbXBvbmVudE5hbWVcbiAgICogICAgICAgICAgKTtcbiAgICogICAgICAgIH1cbiAgICogICAgICB9XG4gICAqICAgIH0sXG4gICAqICAgIHJlbmRlcjogZnVuY3Rpb24oKSB7Li4ufVxuICAgKiAgfSk7XG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cblxuICB2YXIgQU5PTllNT1VTID0gJzw8YW5vbnltb3VzPj4nO1xuXG4gIC8vIEltcG9ydGFudCFcbiAgLy8gS2VlcCB0aGlzIGxpc3QgaW4gc3luYyB3aXRoIHByb2R1Y3Rpb24gdmVyc2lvbiBpbiBgLi9mYWN0b3J5V2l0aFRocm93aW5nU2hpbXMuanNgLlxuICB2YXIgUmVhY3RQcm9wVHlwZXMgPSB7XG4gICAgYXJyYXk6IGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyKCdhcnJheScpLFxuICAgIGJvb2w6IGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyKCdib29sZWFuJyksXG4gICAgZnVuYzogY3JlYXRlUHJpbWl0aXZlVHlwZUNoZWNrZXIoJ2Z1bmN0aW9uJyksXG4gICAgbnVtYmVyOiBjcmVhdGVQcmltaXRpdmVUeXBlQ2hlY2tlcignbnVtYmVyJyksXG4gICAgb2JqZWN0OiBjcmVhdGVQcmltaXRpdmVUeXBlQ2hlY2tlcignb2JqZWN0JyksXG4gICAgc3RyaW5nOiBjcmVhdGVQcmltaXRpdmVUeXBlQ2hlY2tlcignc3RyaW5nJyksXG4gICAgc3ltYm9sOiBjcmVhdGVQcmltaXRpdmVUeXBlQ2hlY2tlcignc3ltYm9sJyksXG5cbiAgICBhbnk6IGNyZWF0ZUFueVR5cGVDaGVja2VyKCksXG4gICAgYXJyYXlPZjogY3JlYXRlQXJyYXlPZlR5cGVDaGVja2VyLFxuICAgIGVsZW1lbnQ6IGNyZWF0ZUVsZW1lbnRUeXBlQ2hlY2tlcigpLFxuICAgIGVsZW1lbnRUeXBlOiBjcmVhdGVFbGVtZW50VHlwZVR5cGVDaGVja2VyKCksXG4gICAgaW5zdGFuY2VPZjogY3JlYXRlSW5zdGFuY2VUeXBlQ2hlY2tlcixcbiAgICBub2RlOiBjcmVhdGVOb2RlQ2hlY2tlcigpLFxuICAgIG9iamVjdE9mOiBjcmVhdGVPYmplY3RPZlR5cGVDaGVja2VyLFxuICAgIG9uZU9mOiBjcmVhdGVFbnVtVHlwZUNoZWNrZXIsXG4gICAgb25lT2ZUeXBlOiBjcmVhdGVVbmlvblR5cGVDaGVja2VyLFxuICAgIHNoYXBlOiBjcmVhdGVTaGFwZVR5cGVDaGVja2VyLFxuICAgIGV4YWN0OiBjcmVhdGVTdHJpY3RTaGFwZVR5cGVDaGVja2VyLFxuICB9O1xuXG4gIC8qKlxuICAgKiBpbmxpbmVkIE9iamVjdC5pcyBwb2x5ZmlsbCB0byBhdm9pZCByZXF1aXJpbmcgY29uc3VtZXJzIHNoaXAgdGhlaXIgb3duXG4gICAqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL09iamVjdC9pc1xuICAgKi9cbiAgLyplc2xpbnQtZGlzYWJsZSBuby1zZWxmLWNvbXBhcmUqL1xuICBmdW5jdGlvbiBpcyh4LCB5KSB7XG4gICAgLy8gU2FtZVZhbHVlIGFsZ29yaXRobVxuICAgIGlmICh4ID09PSB5KSB7XG4gICAgICAvLyBTdGVwcyAxLTUsIDctMTBcbiAgICAgIC8vIFN0ZXBzIDYuYi02LmU6ICswICE9IC0wXG4gICAgICByZXR1cm4geCAhPT0gMCB8fCAxIC8geCA9PT0gMSAvIHk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFN0ZXAgNi5hOiBOYU4gPT0gTmFOXG4gICAgICByZXR1cm4geCAhPT0geCAmJiB5ICE9PSB5O1xuICAgIH1cbiAgfVxuICAvKmVzbGludC1lbmFibGUgbm8tc2VsZi1jb21wYXJlKi9cblxuICAvKipcbiAgICogV2UgdXNlIGFuIEVycm9yLWxpa2Ugb2JqZWN0IGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGFzIHBlb3BsZSBtYXkgY2FsbFxuICAgKiBQcm9wVHlwZXMgZGlyZWN0bHkgYW5kIGluc3BlY3QgdGhlaXIgb3V0cHV0LiBIb3dldmVyLCB3ZSBkb24ndCB1c2UgcmVhbFxuICAgKiBFcnJvcnMgYW55bW9yZS4gV2UgZG9uJ3QgaW5zcGVjdCB0aGVpciBzdGFjayBhbnl3YXksIGFuZCBjcmVhdGluZyB0aGVtXG4gICAqIGlzIHByb2hpYml0aXZlbHkgZXhwZW5zaXZlIGlmIHRoZXkgYXJlIGNyZWF0ZWQgdG9vIG9mdGVuLCBzdWNoIGFzIHdoYXRcbiAgICogaGFwcGVucyBpbiBvbmVPZlR5cGUoKSBmb3IgYW55IHR5cGUgYmVmb3JlIHRoZSBvbmUgdGhhdCBtYXRjaGVkLlxuICAgKi9cbiAgZnVuY3Rpb24gUHJvcFR5cGVFcnJvcihtZXNzYWdlKSB7XG4gICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZTtcbiAgICB0aGlzLnN0YWNrID0gJyc7XG4gIH1cbiAgLy8gTWFrZSBgaW5zdGFuY2VvZiBFcnJvcmAgc3RpbGwgd29yayBmb3IgcmV0dXJuZWQgZXJyb3JzLlxuICBQcm9wVHlwZUVycm9yLnByb3RvdHlwZSA9IEVycm9yLnByb3RvdHlwZTtcblxuICBmdW5jdGlvbiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSkge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICB2YXIgbWFudWFsUHJvcFR5cGVDYWxsQ2FjaGUgPSB7fTtcbiAgICAgIHZhciBtYW51YWxQcm9wVHlwZVdhcm5pbmdDb3VudCA9IDA7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNoZWNrVHlwZShpc1JlcXVpcmVkLCBwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUsIHNlY3JldCkge1xuICAgICAgY29tcG9uZW50TmFtZSA9IGNvbXBvbmVudE5hbWUgfHwgQU5PTllNT1VTO1xuICAgICAgcHJvcEZ1bGxOYW1lID0gcHJvcEZ1bGxOYW1lIHx8IHByb3BOYW1lO1xuXG4gICAgICBpZiAoc2VjcmV0ICE9PSBSZWFjdFByb3BUeXBlc1NlY3JldCkge1xuICAgICAgICBpZiAodGhyb3dPbkRpcmVjdEFjY2Vzcykge1xuICAgICAgICAgIC8vIE5ldyBiZWhhdmlvciBvbmx5IGZvciB1c2VycyBvZiBgcHJvcC10eXBlc2AgcGFja2FnZVxuICAgICAgICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoXG4gICAgICAgICAgICAnQ2FsbGluZyBQcm9wVHlwZXMgdmFsaWRhdG9ycyBkaXJlY3RseSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBgcHJvcC10eXBlc2AgcGFja2FnZS4gJyArXG4gICAgICAgICAgICAnVXNlIGBQcm9wVHlwZXMuY2hlY2tQcm9wVHlwZXMoKWAgdG8gY2FsbCB0aGVtLiAnICtcbiAgICAgICAgICAgICdSZWFkIG1vcmUgYXQgaHR0cDovL2ZiLm1lL3VzZS1jaGVjay1wcm9wLXR5cGVzJ1xuICAgICAgICAgICk7XG4gICAgICAgICAgZXJyLm5hbWUgPSAnSW52YXJpYW50IFZpb2xhdGlvbic7XG4gICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICB9IGVsc2UgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgdHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgLy8gT2xkIGJlaGF2aW9yIGZvciBwZW9wbGUgdXNpbmcgUmVhY3QuUHJvcFR5cGVzXG4gICAgICAgICAgdmFyIGNhY2hlS2V5ID0gY29tcG9uZW50TmFtZSArICc6JyArIHByb3BOYW1lO1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICFtYW51YWxQcm9wVHlwZUNhbGxDYWNoZVtjYWNoZUtleV0gJiZcbiAgICAgICAgICAgIC8vIEF2b2lkIHNwYW1taW5nIHRoZSBjb25zb2xlIGJlY2F1c2UgdGhleSBhcmUgb2Z0ZW4gbm90IGFjdGlvbmFibGUgZXhjZXB0IGZvciBsaWIgYXV0aG9yc1xuICAgICAgICAgICAgbWFudWFsUHJvcFR5cGVXYXJuaW5nQ291bnQgPCAzXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBwcmludFdhcm5pbmcoXG4gICAgICAgICAgICAgICdZb3UgYXJlIG1hbnVhbGx5IGNhbGxpbmcgYSBSZWFjdC5Qcm9wVHlwZXMgdmFsaWRhdGlvbiAnICtcbiAgICAgICAgICAgICAgJ2Z1bmN0aW9uIGZvciB0aGUgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBwcm9wIG9uIGAnICsgY29tcG9uZW50TmFtZSAgKyAnYC4gVGhpcyBpcyBkZXByZWNhdGVkICcgK1xuICAgICAgICAgICAgICAnYW5kIHdpbGwgdGhyb3cgaW4gdGhlIHN0YW5kYWxvbmUgYHByb3AtdHlwZXNgIHBhY2thZ2UuICcgK1xuICAgICAgICAgICAgICAnWW91IG1heSBiZSBzZWVpbmcgdGhpcyB3YXJuaW5nIGR1ZSB0byBhIHRoaXJkLXBhcnR5IFByb3BUeXBlcyAnICtcbiAgICAgICAgICAgICAgJ2xpYnJhcnkuIFNlZSBodHRwczovL2ZiLm1lL3JlYWN0LXdhcm5pbmctZG9udC1jYWxsLXByb3B0eXBlcyAnICsgJ2ZvciBkZXRhaWxzLidcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBtYW51YWxQcm9wVHlwZUNhbGxDYWNoZVtjYWNoZUtleV0gPSB0cnVlO1xuICAgICAgICAgICAgbWFudWFsUHJvcFR5cGVXYXJuaW5nQ291bnQrKztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChwcm9wc1twcm9wTmFtZV0gPT0gbnVsbCkge1xuICAgICAgICBpZiAoaXNSZXF1aXJlZCkge1xuICAgICAgICAgIGlmIChwcm9wc1twcm9wTmFtZV0gPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignVGhlICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBpcyBtYXJrZWQgYXMgcmVxdWlyZWQgJyArICgnaW4gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGJ1dCBpdHMgdmFsdWUgaXMgYG51bGxgLicpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdUaGUgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIGlzIG1hcmtlZCBhcyByZXF1aXJlZCBpbiAnICsgKCdgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgYnV0IGl0cyB2YWx1ZSBpcyBgdW5kZWZpbmVkYC4nKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdmFsaWRhdGUocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgY2hhaW5lZENoZWNrVHlwZSA9IGNoZWNrVHlwZS5iaW5kKG51bGwsIGZhbHNlKTtcbiAgICBjaGFpbmVkQ2hlY2tUeXBlLmlzUmVxdWlyZWQgPSBjaGVja1R5cGUuYmluZChudWxsLCB0cnVlKTtcblxuICAgIHJldHVybiBjaGFpbmVkQ2hlY2tUeXBlO1xuICB9XG5cbiAgZnVuY3Rpb24gY3JlYXRlUHJpbWl0aXZlVHlwZUNoZWNrZXIoZXhwZWN0ZWRUeXBlKSB7XG4gICAgZnVuY3Rpb24gdmFsaWRhdGUocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lLCBzZWNyZXQpIHtcbiAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wTmFtZV07XG4gICAgICB2YXIgcHJvcFR5cGUgPSBnZXRQcm9wVHlwZShwcm9wVmFsdWUpO1xuICAgICAgaWYgKHByb3BUeXBlICE9PSBleHBlY3RlZFR5cGUpIHtcbiAgICAgICAgLy8gYHByb3BWYWx1ZWAgYmVpbmcgaW5zdGFuY2Ugb2YsIHNheSwgZGF0ZS9yZWdleHAsIHBhc3MgdGhlICdvYmplY3QnXG4gICAgICAgIC8vIGNoZWNrLCBidXQgd2UgY2FuIG9mZmVyIGEgbW9yZSBwcmVjaXNlIGVycm9yIG1lc3NhZ2UgaGVyZSByYXRoZXIgdGhhblxuICAgICAgICAvLyAnb2YgdHlwZSBgb2JqZWN0YCcuXG4gICAgICAgIHZhciBwcmVjaXNlVHlwZSA9IGdldFByZWNpc2VUeXBlKHByb3BWYWx1ZSk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB0eXBlICcgKyAoJ2AnICsgcHJlY2lzZVR5cGUgKyAnYCBzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgJykgKyAoJ2AnICsgZXhwZWN0ZWRUeXBlICsgJ2AuJykpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVBbnlUeXBlQ2hlY2tlcigpIHtcbiAgICByZXR1cm4gY3JlYXRlQ2hhaW5hYmxlVHlwZUNoZWNrZXIoZW1wdHlGdW5jdGlvblRoYXRSZXR1cm5zTnVsbCk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVBcnJheU9mVHlwZUNoZWNrZXIodHlwZUNoZWNrZXIpIHtcbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIGlmICh0eXBlb2YgdHlwZUNoZWNrZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdQcm9wZXJ0eSBgJyArIHByb3BGdWxsTmFtZSArICdgIG9mIGNvbXBvbmVudCBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCBoYXMgaW52YWxpZCBQcm9wVHlwZSBub3RhdGlvbiBpbnNpZGUgYXJyYXlPZi4nKTtcbiAgICAgIH1cbiAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wTmFtZV07XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkocHJvcFZhbHVlKSkge1xuICAgICAgICB2YXIgcHJvcFR5cGUgPSBnZXRQcm9wVHlwZShwcm9wVmFsdWUpO1xuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIG9mIHR5cGUgJyArICgnYCcgKyBwcm9wVHlwZSArICdgIHN1cHBsaWVkIHRvIGAnICsgY29tcG9uZW50TmFtZSArICdgLCBleHBlY3RlZCBhbiBhcnJheS4nKSk7XG4gICAgICB9XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BWYWx1ZS5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgZXJyb3IgPSB0eXBlQ2hlY2tlcihwcm9wVmFsdWUsIGksIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUgKyAnWycgKyBpICsgJ10nLCBSZWFjdFByb3BUeXBlc1NlY3JldCk7XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnRUeXBlQ2hlY2tlcigpIHtcbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wTmFtZV07XG4gICAgICBpZiAoIWlzVmFsaWRFbGVtZW50KHByb3BWYWx1ZSkpIHtcbiAgICAgICAgdmFyIHByb3BUeXBlID0gZ2V0UHJvcFR5cGUocHJvcFZhbHVlKTtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB0eXBlICcgKyAoJ2AnICsgcHJvcFR5cGUgKyAnYCBzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgYSBzaW5nbGUgUmVhY3RFbGVtZW50LicpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gY3JlYXRlQ2hhaW5hYmxlVHlwZUNoZWNrZXIodmFsaWRhdGUpO1xuICB9XG5cbiAgZnVuY3Rpb24gY3JlYXRlRWxlbWVudFR5cGVUeXBlQ2hlY2tlcigpIHtcbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wTmFtZV07XG4gICAgICBpZiAoIVJlYWN0SXMuaXNWYWxpZEVsZW1lbnRUeXBlKHByb3BWYWx1ZSkpIHtcbiAgICAgICAgdmFyIHByb3BUeXBlID0gZ2V0UHJvcFR5cGUocHJvcFZhbHVlKTtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB0eXBlICcgKyAoJ2AnICsgcHJvcFR5cGUgKyAnYCBzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgYSBzaW5nbGUgUmVhY3RFbGVtZW50IHR5cGUuJykpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVJbnN0YW5jZVR5cGVDaGVja2VyKGV4cGVjdGVkQ2xhc3MpIHtcbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIGlmICghKHByb3BzW3Byb3BOYW1lXSBpbnN0YW5jZW9mIGV4cGVjdGVkQ2xhc3MpKSB7XG4gICAgICAgIHZhciBleHBlY3RlZENsYXNzTmFtZSA9IGV4cGVjdGVkQ2xhc3MubmFtZSB8fCBBTk9OWU1PVVM7XG4gICAgICAgIHZhciBhY3R1YWxDbGFzc05hbWUgPSBnZXRDbGFzc05hbWUocHJvcHNbcHJvcE5hbWVdKTtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB0eXBlICcgKyAoJ2AnICsgYWN0dWFsQ2xhc3NOYW1lICsgJ2Agc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkICcpICsgKCdpbnN0YW5jZSBvZiBgJyArIGV4cGVjdGVkQ2xhc3NOYW1lICsgJ2AuJykpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVFbnVtVHlwZUNoZWNrZXIoZXhwZWN0ZWRWYWx1ZXMpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoZXhwZWN0ZWRWYWx1ZXMpKSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICBwcmludFdhcm5pbmcoXG4gICAgICAgICAgICAnSW52YWxpZCBhcmd1bWVudHMgc3VwcGxpZWQgdG8gb25lT2YsIGV4cGVjdGVkIGFuIGFycmF5LCBnb3QgJyArIGFyZ3VtZW50cy5sZW5ndGggKyAnIGFyZ3VtZW50cy4gJyArXG4gICAgICAgICAgICAnQSBjb21tb24gbWlzdGFrZSBpcyB0byB3cml0ZSBvbmVPZih4LCB5LCB6KSBpbnN0ZWFkIG9mIG9uZU9mKFt4LCB5LCB6XSkuJ1xuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcHJpbnRXYXJuaW5nKCdJbnZhbGlkIGFyZ3VtZW50IHN1cHBsaWVkIHRvIG9uZU9mLCBleHBlY3RlZCBhbiBhcnJheS4nKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGVtcHR5RnVuY3Rpb25UaGF0UmV0dXJuc051bGw7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdmFsaWRhdGUocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lKSB7XG4gICAgICB2YXIgcHJvcFZhbHVlID0gcHJvcHNbcHJvcE5hbWVdO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBleHBlY3RlZFZhbHVlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoaXMocHJvcFZhbHVlLCBleHBlY3RlZFZhbHVlc1tpXSkpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB2YXIgdmFsdWVzU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoZXhwZWN0ZWRWYWx1ZXMsIGZ1bmN0aW9uIHJlcGxhY2VyKGtleSwgdmFsdWUpIHtcbiAgICAgICAgdmFyIHR5cGUgPSBnZXRQcmVjaXNlVHlwZSh2YWx1ZSk7XG4gICAgICAgIGlmICh0eXBlID09PSAnc3ltYm9sJykge1xuICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB2YWx1ZSBgJyArIFN0cmluZyhwcm9wVmFsdWUpICsgJ2AgJyArICgnc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkIG9uZSBvZiAnICsgdmFsdWVzU3RyaW5nICsgJy4nKSk7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVPYmplY3RPZlR5cGVDaGVja2VyKHR5cGVDaGVja2VyKSB7XG4gICAgZnVuY3Rpb24gdmFsaWRhdGUocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lKSB7XG4gICAgICBpZiAodHlwZW9mIHR5cGVDaGVja2VyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignUHJvcGVydHkgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiBjb21wb25lbnQgYCcgKyBjb21wb25lbnROYW1lICsgJ2AgaGFzIGludmFsaWQgUHJvcFR5cGUgbm90YXRpb24gaW5zaWRlIG9iamVjdE9mLicpO1xuICAgICAgfVxuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICAgIHZhciBwcm9wVHlwZSA9IGdldFByb3BUeXBlKHByb3BWYWx1ZSk7XG4gICAgICBpZiAocHJvcFR5cGUgIT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignSW52YWxpZCAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Agb2YgdHlwZSAnICsgKCdgJyArIHByb3BUeXBlICsgJ2Agc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkIGFuIG9iamVjdC4nKSk7XG4gICAgICB9XG4gICAgICBmb3IgKHZhciBrZXkgaW4gcHJvcFZhbHVlKSB7XG4gICAgICAgIGlmIChoYXMocHJvcFZhbHVlLCBrZXkpKSB7XG4gICAgICAgICAgdmFyIGVycm9yID0gdHlwZUNoZWNrZXIocHJvcFZhbHVlLCBrZXksIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUgKyAnLicgKyBrZXksIFJlYWN0UHJvcFR5cGVzU2VjcmV0KTtcbiAgICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVVbmlvblR5cGVDaGVja2VyKGFycmF5T2ZUeXBlQ2hlY2tlcnMpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoYXJyYXlPZlR5cGVDaGVja2VycykpIHtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBwcmludFdhcm5pbmcoJ0ludmFsaWQgYXJndW1lbnQgc3VwcGxpZWQgdG8gb25lT2ZUeXBlLCBleHBlY3RlZCBhbiBpbnN0YW5jZSBvZiBhcnJheS4nKSA6IHZvaWQgMDtcbiAgICAgIHJldHVybiBlbXB0eUZ1bmN0aW9uVGhhdFJldHVybnNOdWxsO1xuICAgIH1cblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXlPZlR5cGVDaGVja2Vycy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGNoZWNrZXIgPSBhcnJheU9mVHlwZUNoZWNrZXJzW2ldO1xuICAgICAgaWYgKHR5cGVvZiBjaGVja2VyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHByaW50V2FybmluZyhcbiAgICAgICAgICAnSW52YWxpZCBhcmd1bWVudCBzdXBwbGllZCB0byBvbmVPZlR5cGUuIEV4cGVjdGVkIGFuIGFycmF5IG9mIGNoZWNrIGZ1bmN0aW9ucywgYnV0ICcgK1xuICAgICAgICAgICdyZWNlaXZlZCAnICsgZ2V0UG9zdGZpeEZvclR5cGVXYXJuaW5nKGNoZWNrZXIpICsgJyBhdCBpbmRleCAnICsgaSArICcuJ1xuICAgICAgICApO1xuICAgICAgICByZXR1cm4gZW1wdHlGdW5jdGlvblRoYXRSZXR1cm5zTnVsbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXlPZlR5cGVDaGVja2Vycy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgY2hlY2tlciA9IGFycmF5T2ZUeXBlQ2hlY2tlcnNbaV07XG4gICAgICAgIGlmIChjaGVja2VyKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSwgUmVhY3RQcm9wVHlwZXNTZWNyZXQpID09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIHN1cHBsaWVkIHRvICcgKyAoJ2AnICsgY29tcG9uZW50TmFtZSArICdgLicpKTtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZU5vZGVDaGVja2VyKCkge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgaWYgKCFpc05vZGUocHJvcHNbcHJvcE5hbWVdKSkge1xuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIHN1cHBsaWVkIHRvICcgKyAoJ2AnICsgY29tcG9uZW50TmFtZSArICdgLCBleHBlY3RlZCBhIFJlYWN0Tm9kZS4nKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZVNoYXBlVHlwZUNoZWNrZXIoc2hhcGVUeXBlcykge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICAgIHZhciBwcm9wVHlwZSA9IGdldFByb3BUeXBlKHByb3BWYWx1ZSk7XG4gICAgICBpZiAocHJvcFR5cGUgIT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignSW52YWxpZCAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Agb2YgdHlwZSBgJyArIHByb3BUeXBlICsgJ2AgJyArICgnc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkIGBvYmplY3RgLicpKTtcbiAgICAgIH1cbiAgICAgIGZvciAodmFyIGtleSBpbiBzaGFwZVR5cGVzKSB7XG4gICAgICAgIHZhciBjaGVja2VyID0gc2hhcGVUeXBlc1trZXldO1xuICAgICAgICBpZiAoIWNoZWNrZXIpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZXJyb3IgPSBjaGVja2VyKHByb3BWYWx1ZSwga2V5LCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lICsgJy4nICsga2V5LCBSZWFjdFByb3BUeXBlc1NlY3JldCk7XG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgIHJldHVybiBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVTdHJpY3RTaGFwZVR5cGVDaGVja2VyKHNoYXBlVHlwZXMpIHtcbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wTmFtZV07XG4gICAgICB2YXIgcHJvcFR5cGUgPSBnZXRQcm9wVHlwZShwcm9wVmFsdWUpO1xuICAgICAgaWYgKHByb3BUeXBlICE9PSAnb2JqZWN0Jykge1xuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIG9mIHR5cGUgYCcgKyBwcm9wVHlwZSArICdgICcgKyAoJ3N1cHBsaWVkIHRvIGAnICsgY29tcG9uZW50TmFtZSArICdgLCBleHBlY3RlZCBgb2JqZWN0YC4nKSk7XG4gICAgICB9XG4gICAgICAvLyBXZSBuZWVkIHRvIGNoZWNrIGFsbCBrZXlzIGluIGNhc2Ugc29tZSBhcmUgcmVxdWlyZWQgYnV0IG1pc3NpbmcgZnJvbVxuICAgICAgLy8gcHJvcHMuXG4gICAgICB2YXIgYWxsS2V5cyA9IGFzc2lnbih7fSwgcHJvcHNbcHJvcE5hbWVdLCBzaGFwZVR5cGVzKTtcbiAgICAgIGZvciAodmFyIGtleSBpbiBhbGxLZXlzKSB7XG4gICAgICAgIHZhciBjaGVja2VyID0gc2hhcGVUeXBlc1trZXldO1xuICAgICAgICBpZiAoIWNoZWNrZXIpIHtcbiAgICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoXG4gICAgICAgICAgICAnSW52YWxpZCAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Aga2V5IGAnICsga2V5ICsgJ2Agc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AuJyArXG4gICAgICAgICAgICAnXFxuQmFkIG9iamVjdDogJyArIEpTT04uc3RyaW5naWZ5KHByb3BzW3Byb3BOYW1lXSwgbnVsbCwgJyAgJykgK1xuICAgICAgICAgICAgJ1xcblZhbGlkIGtleXM6ICcgKyAgSlNPTi5zdHJpbmdpZnkoT2JqZWN0LmtleXMoc2hhcGVUeXBlcyksIG51bGwsICcgICcpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZXJyb3IgPSBjaGVja2VyKHByb3BWYWx1ZSwga2V5LCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lICsgJy4nICsga2V5LCBSZWFjdFByb3BUeXBlc1NlY3JldCk7XG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgIHJldHVybiBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGlzTm9kZShwcm9wVmFsdWUpIHtcbiAgICBzd2l0Y2ggKHR5cGVvZiBwcm9wVmFsdWUpIHtcbiAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgY2FzZSAndW5kZWZpbmVkJzpcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICBjYXNlICdib29sZWFuJzpcbiAgICAgICAgcmV0dXJuICFwcm9wVmFsdWU7XG4gICAgICBjYXNlICdvYmplY3QnOlxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShwcm9wVmFsdWUpKSB7XG4gICAgICAgICAgcmV0dXJuIHByb3BWYWx1ZS5ldmVyeShpc05vZGUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwcm9wVmFsdWUgPT09IG51bGwgfHwgaXNWYWxpZEVsZW1lbnQocHJvcFZhbHVlKSkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGl0ZXJhdG9yRm4gPSBnZXRJdGVyYXRvckZuKHByb3BWYWx1ZSk7XG4gICAgICAgIGlmIChpdGVyYXRvckZuKSB7XG4gICAgICAgICAgdmFyIGl0ZXJhdG9yID0gaXRlcmF0b3JGbi5jYWxsKHByb3BWYWx1ZSk7XG4gICAgICAgICAgdmFyIHN0ZXA7XG4gICAgICAgICAgaWYgKGl0ZXJhdG9yRm4gIT09IHByb3BWYWx1ZS5lbnRyaWVzKSB7XG4gICAgICAgICAgICB3aGlsZSAoIShzdGVwID0gaXRlcmF0b3IubmV4dCgpKS5kb25lKSB7XG4gICAgICAgICAgICAgIGlmICghaXNOb2RlKHN0ZXAudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEl0ZXJhdG9yIHdpbGwgcHJvdmlkZSBlbnRyeSBbayx2XSB0dXBsZXMgcmF0aGVyIHRoYW4gdmFsdWVzLlxuICAgICAgICAgICAgd2hpbGUgKCEoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSkuZG9uZSkge1xuICAgICAgICAgICAgICB2YXIgZW50cnkgPSBzdGVwLnZhbHVlO1xuICAgICAgICAgICAgICBpZiAoZW50cnkpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWlzTm9kZShlbnRyeVsxXSkpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gaXNTeW1ib2wocHJvcFR5cGUsIHByb3BWYWx1ZSkge1xuICAgIC8vIE5hdGl2ZSBTeW1ib2wuXG4gICAgaWYgKHByb3BUeXBlID09PSAnc3ltYm9sJykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gZmFsc3kgdmFsdWUgY2FuJ3QgYmUgYSBTeW1ib2xcbiAgICBpZiAoIXByb3BWYWx1ZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIDE5LjQuMy41IFN5bWJvbC5wcm90b3R5cGVbQEB0b1N0cmluZ1RhZ10gPT09ICdTeW1ib2wnXG4gICAgaWYgKHByb3BWYWx1ZVsnQEB0b1N0cmluZ1RhZyddID09PSAnU3ltYm9sJykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gRmFsbGJhY2sgZm9yIG5vbi1zcGVjIGNvbXBsaWFudCBTeW1ib2xzIHdoaWNoIGFyZSBwb2x5ZmlsbGVkLlxuICAgIGlmICh0eXBlb2YgU3ltYm9sID09PSAnZnVuY3Rpb24nICYmIHByb3BWYWx1ZSBpbnN0YW5jZW9mIFN5bWJvbCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gRXF1aXZhbGVudCBvZiBgdHlwZW9mYCBidXQgd2l0aCBzcGVjaWFsIGhhbmRsaW5nIGZvciBhcnJheSBhbmQgcmVnZXhwLlxuICBmdW5jdGlvbiBnZXRQcm9wVHlwZShwcm9wVmFsdWUpIHtcbiAgICB2YXIgcHJvcFR5cGUgPSB0eXBlb2YgcHJvcFZhbHVlO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHByb3BWYWx1ZSkpIHtcbiAgICAgIHJldHVybiAnYXJyYXknO1xuICAgIH1cbiAgICBpZiAocHJvcFZhbHVlIGluc3RhbmNlb2YgUmVnRXhwKSB7XG4gICAgICAvLyBPbGQgd2Via2l0cyAoYXQgbGVhc3QgdW50aWwgQW5kcm9pZCA0LjApIHJldHVybiAnZnVuY3Rpb24nIHJhdGhlciB0aGFuXG4gICAgICAvLyAnb2JqZWN0JyBmb3IgdHlwZW9mIGEgUmVnRXhwLiBXZSdsbCBub3JtYWxpemUgdGhpcyBoZXJlIHNvIHRoYXQgL2JsYS9cbiAgICAgIC8vIHBhc3NlcyBQcm9wVHlwZXMub2JqZWN0LlxuICAgICAgcmV0dXJuICdvYmplY3QnO1xuICAgIH1cbiAgICBpZiAoaXNTeW1ib2wocHJvcFR5cGUsIHByb3BWYWx1ZSkpIHtcbiAgICAgIHJldHVybiAnc3ltYm9sJztcbiAgICB9XG4gICAgcmV0dXJuIHByb3BUeXBlO1xuICB9XG5cbiAgLy8gVGhpcyBoYW5kbGVzIG1vcmUgdHlwZXMgdGhhbiBgZ2V0UHJvcFR5cGVgLiBPbmx5IHVzZWQgZm9yIGVycm9yIG1lc3NhZ2VzLlxuICAvLyBTZWUgYGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyYC5cbiAgZnVuY3Rpb24gZ2V0UHJlY2lzZVR5cGUocHJvcFZhbHVlKSB7XG4gICAgaWYgKHR5cGVvZiBwcm9wVmFsdWUgPT09ICd1bmRlZmluZWQnIHx8IHByb3BWYWx1ZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuICcnICsgcHJvcFZhbHVlO1xuICAgIH1cbiAgICB2YXIgcHJvcFR5cGUgPSBnZXRQcm9wVHlwZShwcm9wVmFsdWUpO1xuICAgIGlmIChwcm9wVHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGlmIChwcm9wVmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgIHJldHVybiAnZGF0ZSc7XG4gICAgICB9IGVsc2UgaWYgKHByb3BWYWx1ZSBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgICByZXR1cm4gJ3JlZ2V4cCc7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwcm9wVHlwZTtcbiAgfVxuXG4gIC8vIFJldHVybnMgYSBzdHJpbmcgdGhhdCBpcyBwb3N0Zml4ZWQgdG8gYSB3YXJuaW5nIGFib3V0IGFuIGludmFsaWQgdHlwZS5cbiAgLy8gRm9yIGV4YW1wbGUsIFwidW5kZWZpbmVkXCIgb3IgXCJvZiB0eXBlIGFycmF5XCJcbiAgZnVuY3Rpb24gZ2V0UG9zdGZpeEZvclR5cGVXYXJuaW5nKHZhbHVlKSB7XG4gICAgdmFyIHR5cGUgPSBnZXRQcmVjaXNlVHlwZSh2YWx1ZSk7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdhcnJheSc6XG4gICAgICBjYXNlICdvYmplY3QnOlxuICAgICAgICByZXR1cm4gJ2FuICcgKyB0eXBlO1xuICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICBjYXNlICdkYXRlJzpcbiAgICAgIGNhc2UgJ3JlZ2V4cCc6XG4gICAgICAgIHJldHVybiAnYSAnICsgdHlwZTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB0eXBlO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJldHVybnMgY2xhc3MgbmFtZSBvZiB0aGUgb2JqZWN0LCBpZiBhbnkuXG4gIGZ1bmN0aW9uIGdldENsYXNzTmFtZShwcm9wVmFsdWUpIHtcbiAgICBpZiAoIXByb3BWYWx1ZS5jb25zdHJ1Y3RvciB8fCAhcHJvcFZhbHVlLmNvbnN0cnVjdG9yLm5hbWUpIHtcbiAgICAgIHJldHVybiBBTk9OWU1PVVM7XG4gICAgfVxuICAgIHJldHVybiBwcm9wVmFsdWUuY29uc3RydWN0b3IubmFtZTtcbiAgfVxuXG4gIFJlYWN0UHJvcFR5cGVzLmNoZWNrUHJvcFR5cGVzID0gY2hlY2tQcm9wVHlwZXM7XG4gIFJlYWN0UHJvcFR5cGVzLnJlc2V0V2FybmluZ0NhY2hlID0gY2hlY2tQcm9wVHlwZXMucmVzZXRXYXJuaW5nQ2FjaGU7XG4gIFJlYWN0UHJvcFR5cGVzLlByb3BUeXBlcyA9IFJlYWN0UHJvcFR5cGVzO1xuXG4gIHJldHVybiBSZWFjdFByb3BUeXBlcztcbn07XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/prop-types/factoryWithTypeCheckers.js\n"); + +/***/ }), + +/***/ "./node_modules/prop-types/index.js": +/*!******************************************!*\ + !*** ./node_modules/prop-types/index.js ***! + \******************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\nif (true) {\n var ReactIs = __webpack_require__(/*! react-is */ \"./node_modules/prop-types/node_modules/react-is/index.js\");\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = __webpack_require__(/*! ./factoryWithTypeCheckers */ \"./node_modules/prop-types/factoryWithTypeCheckers.js\")(ReactIs.isElement, throwOnDirectAccess);\n} else {}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsSUFBSSxJQUFxQztBQUN6QyxnQkFBZ0IsbUJBQU8sQ0FBQywwRUFBVTs7QUFFbEM7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLG1CQUFPLENBQUMsdUZBQTJCO0FBQ3RELEVBQUUsS0FBSyxFQUlOIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2luZGV4LmpzP2JkZTEiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICB2YXIgUmVhY3RJcyA9IHJlcXVpcmUoJ3JlYWN0LWlzJyk7XG5cbiAgLy8gQnkgZXhwbGljaXRseSB1c2luZyBgcHJvcC10eXBlc2AgeW91IGFyZSBvcHRpbmcgaW50byBuZXcgZGV2ZWxvcG1lbnQgYmVoYXZpb3IuXG4gIC8vIGh0dHA6Ly9mYi5tZS9wcm9wLXR5cGVzLWluLXByb2RcbiAgdmFyIHRocm93T25EaXJlY3RBY2Nlc3MgPSB0cnVlO1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vZmFjdG9yeVdpdGhUeXBlQ2hlY2tlcnMnKShSZWFjdElzLmlzRWxlbWVudCwgdGhyb3dPbkRpcmVjdEFjY2Vzcyk7XG59IGVsc2Uge1xuICAvLyBCeSBleHBsaWNpdGx5IHVzaW5nIGBwcm9wLXR5cGVzYCB5b3UgYXJlIG9wdGluZyBpbnRvIG5ldyBwcm9kdWN0aW9uIGJlaGF2aW9yLlxuICAvLyBodHRwOi8vZmIubWUvcHJvcC10eXBlcy1pbi1wcm9kXG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9mYWN0b3J5V2l0aFRocm93aW5nU2hpbXMnKSgpO1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/prop-types/index.js\n"); + +/***/ }), + +/***/ "./node_modules/prop-types/lib/ReactPropTypesSecret.js": +/*!*************************************************************!*\ + !*** ./node_modules/prop-types/lib/ReactPropTypesSecret.js ***! + \*************************************************************/ +/***/ (function(module) { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\n\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9saWIvUmVhY3RQcm9wVHlwZXNTZWNyZXQuanMuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVhOztBQUViOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2xpYi9SZWFjdFByb3BUeXBlc1NlY3JldC5qcz9lMDk4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUmVhY3RQcm9wVHlwZXNTZWNyZXQgPSAnU0VDUkVUX0RPX05PVF9QQVNTX1RISVNfT1JfWU9VX1dJTExfQkVfRklSRUQnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0UHJvcFR5cGVzU2VjcmV0O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/prop-types/lib/ReactPropTypesSecret.js\n"); + +/***/ }), + +/***/ "./node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js ***! + \***********************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its 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\n\n\n\n\nif (true) {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9ub2RlX21vZHVsZXMvcmVhY3QtaXMvY2pzL3JlYWN0LWlzLmRldmVsb3BtZW50LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWE7Ozs7QUFJYixJQUFJLElBQXFDO0FBQ3pDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkVBQTJFO0FBQzNFOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlEQUFpRDs7QUFFakQ7QUFDQTtBQUNBO0FBQ0Esa0RBQWtEOztBQUVsRDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxpQkFBaUI7QUFDakIsc0JBQXNCO0FBQ3RCLHVCQUF1QjtBQUN2Qix1QkFBdUI7QUFDdkIsZUFBZTtBQUNmLGtCQUFrQjtBQUNsQixnQkFBZ0I7QUFDaEIsWUFBWTtBQUNaLFlBQVk7QUFDWixjQUFjO0FBQ2QsZ0JBQWdCO0FBQ2hCLGtCQUFrQjtBQUNsQixnQkFBZ0I7QUFDaEIsbUJBQW1CO0FBQ25CLHdCQUF3QjtBQUN4Qix5QkFBeUI7QUFDekIseUJBQXlCO0FBQ3pCLGlCQUFpQjtBQUNqQixvQkFBb0I7QUFDcEIsa0JBQWtCO0FBQ2xCLGNBQWM7QUFDZCxjQUFjO0FBQ2QsZ0JBQWdCO0FBQ2hCLGtCQUFrQjtBQUNsQixvQkFBb0I7QUFDcEIsa0JBQWtCO0FBQ2xCLDBCQUEwQjtBQUMxQixjQUFjO0FBQ2QsR0FBRztBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL25vZGVfbW9kdWxlcy9yZWFjdC1pcy9janMvcmVhY3QtaXMuZGV2ZWxvcG1lbnQuanM/Yzk1NyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQGxpY2Vuc2UgUmVhY3QgdjE2LjEzLjFcbiAqIHJlYWN0LWlzLmRldmVsb3BtZW50LmpzXG4gKlxuICogQ29weXJpZ2h0IChjKSBGYWNlYm9vaywgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5cblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAoZnVuY3Rpb24oKSB7XG4ndXNlIHN0cmljdCc7XG5cbi8vIFRoZSBTeW1ib2wgdXNlZCB0byB0YWcgdGhlIFJlYWN0RWxlbWVudC1saWtlIHR5cGVzLiBJZiB0aGVyZSBpcyBubyBuYXRpdmUgU3ltYm9sXG4vLyBub3IgcG9seWZpbGwsIHRoZW4gYSBwbGFpbiBudW1iZXIgaXMgdXNlZCBmb3IgcGVyZm9ybWFuY2UuXG52YXIgaGFzU3ltYm9sID0gdHlwZW9mIFN5bWJvbCA9PT0gJ2Z1bmN0aW9uJyAmJiBTeW1ib2wuZm9yO1xudmFyIFJFQUNUX0VMRU1FTlRfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmVsZW1lbnQnKSA6IDB4ZWFjNztcbnZhciBSRUFDVF9QT1JUQUxfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LnBvcnRhbCcpIDogMHhlYWNhO1xudmFyIFJFQUNUX0ZSQUdNRU5UX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5mcmFnbWVudCcpIDogMHhlYWNiO1xudmFyIFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5zdHJpY3RfbW9kZScpIDogMHhlYWNjO1xudmFyIFJFQUNUX1BST0ZJTEVSX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5wcm9maWxlcicpIDogMHhlYWQyO1xudmFyIFJFQUNUX1BST1ZJREVSX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5wcm92aWRlcicpIDogMHhlYWNkO1xudmFyIFJFQUNUX0NPTlRFWFRfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmNvbnRleHQnKSA6IDB4ZWFjZTsgLy8gVE9ETzogV2UgZG9uJ3QgdXNlIEFzeW5jTW9kZSBvciBDb25jdXJyZW50TW9kZSBhbnltb3JlLiBUaGV5IHdlcmUgdGVtcG9yYXJ5XG4vLyAodW5zdGFibGUpIEFQSXMgdGhhdCBoYXZlIGJlZW4gcmVtb3ZlZC4gQ2FuIHdlIHJlbW92ZSB0aGUgc3ltYm9scz9cblxudmFyIFJFQUNUX0FTWU5DX01PREVfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmFzeW5jX21vZGUnKSA6IDB4ZWFjZjtcbnZhciBSRUFDVF9DT05DVVJSRU5UX01PREVfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmNvbmN1cnJlbnRfbW9kZScpIDogMHhlYWNmO1xudmFyIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5mb3J3YXJkX3JlZicpIDogMHhlYWQwO1xudmFyIFJFQUNUX1NVU1BFTlNFX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5zdXNwZW5zZScpIDogMHhlYWQxO1xudmFyIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LnN1c3BlbnNlX2xpc3QnKSA6IDB4ZWFkODtcbnZhciBSRUFDVF9NRU1PX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5tZW1vJykgOiAweGVhZDM7XG52YXIgUkVBQ1RfTEFaWV9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3QubGF6eScpIDogMHhlYWQ0O1xudmFyIFJFQUNUX0JMT0NLX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5ibG9jaycpIDogMHhlYWQ5O1xudmFyIFJFQUNUX0ZVTkRBTUVOVEFMX1RZUEUgPSBoYXNTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5mdW5kYW1lbnRhbCcpIDogMHhlYWQ1O1xudmFyIFJFQUNUX1JFU1BPTkRFUl9UWVBFID0gaGFzU3ltYm9sID8gU3ltYm9sLmZvcigncmVhY3QucmVzcG9uZGVyJykgOiAweGVhZDY7XG52YXIgUkVBQ1RfU0NPUEVfVFlQRSA9IGhhc1N5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LnNjb3BlJykgOiAweGVhZDc7XG5cbmZ1bmN0aW9uIGlzVmFsaWRFbGVtZW50VHlwZSh0eXBlKSB7XG4gIHJldHVybiB0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicgfHwgLy8gTm90ZTogaXRzIHR5cGVvZiBtaWdodCBiZSBvdGhlciB0aGFuICdzeW1ib2wnIG9yICdudW1iZXInIGlmIGl0J3MgYSBwb2x5ZmlsbC5cbiAgdHlwZSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9DT05DVVJSRU5UX01PREVfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9QUk9GSUxFUl9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgfHwgdHlwZSA9PT0gUkVBQ1RfU1VTUEVOU0VfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUgfHwgdHlwZW9mIHR5cGUgPT09ICdvYmplY3QnICYmIHR5cGUgIT09IG51bGwgJiYgKHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0xBWllfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9NRU1PX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfUFJPVklERVJfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9DT05URVhUX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9GVU5EQU1FTlRBTF9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX1JFU1BPTkRFUl9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX1NDT1BFX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQkxPQ0tfVFlQRSk7XG59XG5cbmZ1bmN0aW9uIHR5cGVPZihvYmplY3QpIHtcbiAgaWYgKHR5cGVvZiBvYmplY3QgPT09ICdvYmplY3QnICYmIG9iamVjdCAhPT0gbnVsbCkge1xuICAgIHZhciAkJHR5cGVvZiA9IG9iamVjdC4kJHR5cGVvZjtcblxuICAgIHN3aXRjaCAoJCR0eXBlb2YpIHtcbiAgICAgIGNhc2UgUkVBQ1RfRUxFTUVOVF9UWVBFOlxuICAgICAgICB2YXIgdHlwZSA9IG9iamVjdC50eXBlO1xuXG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgIGNhc2UgUkVBQ1RfQVNZTkNfTU9ERV9UWVBFOlxuICAgICAgICAgIGNhc2UgUkVBQ1RfQ09OQ1VSUkVOVF9NT0RFX1RZUEU6XG4gICAgICAgICAgY2FzZSBSRUFDVF9GUkFHTUVOVF9UWVBFOlxuICAgICAgICAgIGNhc2UgUkVBQ1RfUFJPRklMRVJfVFlQRTpcbiAgICAgICAgICBjYXNlIFJFQUNUX1NUUklDVF9NT0RFX1RZUEU6XG4gICAgICAgICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9UWVBFOlxuICAgICAgICAgICAgcmV0dXJuIHR5cGU7XG5cbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdmFyICQkdHlwZW9mVHlwZSA9IHR5cGUgJiYgdHlwZS4kJHR5cGVvZjtcblxuICAgICAgICAgICAgc3dpdGNoICgkJHR5cGVvZlR5cGUpIHtcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9DT05URVhUX1RZUEU6XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTpcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOlxuICAgICAgICAgICAgICBjYXNlIFJFQUNUX1BST1ZJREVSX1RZUEU6XG4gICAgICAgICAgICAgICAgcmV0dXJuICQkdHlwZW9mVHlwZTtcblxuICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiAkJHR5cGVvZjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgIGNhc2UgUkVBQ1RfUE9SVEFMX1RZUEU6XG4gICAgICAgIHJldHVybiAkJHR5cGVvZjtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufSAvLyBBc3luY01vZGUgaXMgZGVwcmVjYXRlZCBhbG9uZyB3aXRoIGlzQXN5bmNNb2RlXG5cbnZhciBBc3luY01vZGUgPSBSRUFDVF9BU1lOQ19NT0RFX1RZUEU7XG52YXIgQ29uY3VycmVudE1vZGUgPSBSRUFDVF9DT05DVVJSRU5UX01PREVfVFlQRTtcbnZhciBDb250ZXh0Q29uc3VtZXIgPSBSRUFDVF9DT05URVhUX1RZUEU7XG52YXIgQ29udGV4dFByb3ZpZGVyID0gUkVBQ1RfUFJPVklERVJfVFlQRTtcbnZhciBFbGVtZW50ID0gUkVBQ1RfRUxFTUVOVF9UWVBFO1xudmFyIEZvcndhcmRSZWYgPSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFO1xudmFyIEZyYWdtZW50ID0gUkVBQ1RfRlJBR01FTlRfVFlQRTtcbnZhciBMYXp5ID0gUkVBQ1RfTEFaWV9UWVBFO1xudmFyIE1lbW8gPSBSRUFDVF9NRU1PX1RZUEU7XG52YXIgUG9ydGFsID0gUkVBQ1RfUE9SVEFMX1RZUEU7XG52YXIgUHJvZmlsZXIgPSBSRUFDVF9QUk9GSUxFUl9UWVBFO1xudmFyIFN0cmljdE1vZGUgPSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFO1xudmFyIFN1c3BlbnNlID0gUkVBQ1RfU1VTUEVOU0VfVFlQRTtcbnZhciBoYXNXYXJuZWRBYm91dERlcHJlY2F0ZWRJc0FzeW5jTW9kZSA9IGZhbHNlOyAvLyBBc3luY01vZGUgc2hvdWxkIGJlIGRlcHJlY2F0ZWRcblxuZnVuY3Rpb24gaXNBc3luY01vZGUob2JqZWN0KSB7XG4gIHtcbiAgICBpZiAoIWhhc1dhcm5lZEFib3V0RGVwcmVjYXRlZElzQXN5bmNNb2RlKSB7XG4gICAgICBoYXNXYXJuZWRBYm91dERlcHJlY2F0ZWRJc0FzeW5jTW9kZSA9IHRydWU7IC8vIFVzaW5nIGNvbnNvbGVbJ3dhcm4nXSB0byBldmFkZSBCYWJlbCBhbmQgRVNMaW50XG5cbiAgICAgIGNvbnNvbGVbJ3dhcm4nXSgnVGhlIFJlYWN0SXMuaXNBc3luY01vZGUoKSBhbGlhcyBoYXMgYmVlbiBkZXByZWNhdGVkLCAnICsgJ2FuZCB3aWxsIGJlIHJlbW92ZWQgaW4gUmVhY3QgMTcrLiBVcGRhdGUgeW91ciBjb2RlIHRvIHVzZSAnICsgJ1JlYWN0SXMuaXNDb25jdXJyZW50TW9kZSgpIGluc3RlYWQuIEl0IGhhcyB0aGUgZXhhY3Qgc2FtZSBBUEkuJyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGlzQ29uY3VycmVudE1vZGUob2JqZWN0KSB8fCB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfQVNZTkNfTU9ERV9UWVBFO1xufVxuZnVuY3Rpb24gaXNDb25jdXJyZW50TW9kZShvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9DT05DVVJSRU5UX01PREVfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzQ29udGV4dENvbnN1bWVyKG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX0NPTlRFWFRfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzQ29udGV4dFByb3ZpZGVyKG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX1BST1ZJREVSX1RZUEU7XG59XG5mdW5jdGlvbiBpc0VsZW1lbnQob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlb2Ygb2JqZWN0ID09PSAnb2JqZWN0JyAmJiBvYmplY3QgIT09IG51bGwgJiYgb2JqZWN0LiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEU7XG59XG5mdW5jdGlvbiBpc0ZvcndhcmRSZWYob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzRnJhZ21lbnQob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzTGF6eShvYmplY3QpIHtcbiAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9MQVpZX1RZUEU7XG59XG5mdW5jdGlvbiBpc01lbW8ob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfTUVNT19UWVBFO1xufVxuZnVuY3Rpb24gaXNQb3J0YWwob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfUE9SVEFMX1RZUEU7XG59XG5mdW5jdGlvbiBpc1Byb2ZpbGVyKG9iamVjdCkge1xuICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX1BST0ZJTEVSX1RZUEU7XG59XG5mdW5jdGlvbiBpc1N0cmljdE1vZGUob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfU1RSSUNUX01PREVfVFlQRTtcbn1cbmZ1bmN0aW9uIGlzU3VzcGVuc2Uob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfU1VTUEVOU0VfVFlQRTtcbn1cblxuZXhwb3J0cy5Bc3luY01vZGUgPSBBc3luY01vZGU7XG5leHBvcnRzLkNvbmN1cnJlbnRNb2RlID0gQ29uY3VycmVudE1vZGU7XG5leHBvcnRzLkNvbnRleHRDb25zdW1lciA9IENvbnRleHRDb25zdW1lcjtcbmV4cG9ydHMuQ29udGV4dFByb3ZpZGVyID0gQ29udGV4dFByb3ZpZGVyO1xuZXhwb3J0cy5FbGVtZW50ID0gRWxlbWVudDtcbmV4cG9ydHMuRm9yd2FyZFJlZiA9IEZvcndhcmRSZWY7XG5leHBvcnRzLkZyYWdtZW50ID0gRnJhZ21lbnQ7XG5leHBvcnRzLkxhenkgPSBMYXp5O1xuZXhwb3J0cy5NZW1vID0gTWVtbztcbmV4cG9ydHMuUG9ydGFsID0gUG9ydGFsO1xuZXhwb3J0cy5Qcm9maWxlciA9IFByb2ZpbGVyO1xuZXhwb3J0cy5TdHJpY3RNb2RlID0gU3RyaWN0TW9kZTtcbmV4cG9ydHMuU3VzcGVuc2UgPSBTdXNwZW5zZTtcbmV4cG9ydHMuaXNBc3luY01vZGUgPSBpc0FzeW5jTW9kZTtcbmV4cG9ydHMuaXNDb25jdXJyZW50TW9kZSA9IGlzQ29uY3VycmVudE1vZGU7XG5leHBvcnRzLmlzQ29udGV4dENvbnN1bWVyID0gaXNDb250ZXh0Q29uc3VtZXI7XG5leHBvcnRzLmlzQ29udGV4dFByb3ZpZGVyID0gaXNDb250ZXh0UHJvdmlkZXI7XG5leHBvcnRzLmlzRWxlbWVudCA9IGlzRWxlbWVudDtcbmV4cG9ydHMuaXNGb3J3YXJkUmVmID0gaXNGb3J3YXJkUmVmO1xuZXhwb3J0cy5pc0ZyYWdtZW50ID0gaXNGcmFnbWVudDtcbmV4cG9ydHMuaXNMYXp5ID0gaXNMYXp5O1xuZXhwb3J0cy5pc01lbW8gPSBpc01lbW87XG5leHBvcnRzLmlzUG9ydGFsID0gaXNQb3J0YWw7XG5leHBvcnRzLmlzUHJvZmlsZXIgPSBpc1Byb2ZpbGVyO1xuZXhwb3J0cy5pc1N0cmljdE1vZGUgPSBpc1N0cmljdE1vZGU7XG5leHBvcnRzLmlzU3VzcGVuc2UgPSBpc1N1c3BlbnNlO1xuZXhwb3J0cy5pc1ZhbGlkRWxlbWVudFR5cGUgPSBpc1ZhbGlkRWxlbWVudFR5cGU7XG5leHBvcnRzLnR5cGVPZiA9IHR5cGVPZjtcbiAgfSkoKTtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js\n"); + +/***/ }), + +/***/ "./node_modules/prop-types/node_modules/react-is/index.js": +/*!****************************************************************!*\ + !*** ./node_modules/prop-types/node_modules/react-is/index.js ***! + \****************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ \"./node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9ub2RlX21vZHVsZXMvcmVhY3QtaXMvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsSUFBSSxLQUFxQyxFQUFFLEVBRTFDLENBQUM7QUFDRixFQUFFLHdKQUF5RDtBQUMzRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9ub2RlX21vZHVsZXMvcmVhY3QtaXMvaW5kZXguanM/NWQ1MCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtaXMucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtaXMuZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/prop-types/node_modules/react-is/index.js\n"); + +/***/ }), + +/***/ "./node_modules/react-circular-progressbar/dist/index.esm.js": +/*!*******************************************************************!*\ + !*** ./node_modules/react-circular-progressbar/dist/index.esm.js ***! + \*******************************************************************/ +/***/ (function(__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 */ \"CircularProgressbar\": function() { return /* binding */ CircularProgressbar; },\n/* harmony export */ \"CircularProgressbarWithChildren\": function() { return /* binding */ CircularProgressbarWithChildren; },\n/* harmony export */ \"buildStyles\": function() { return /* binding */ buildStyles; }\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\n\nvar VIEWBOX_WIDTH = 100;\r\nvar VIEWBOX_HEIGHT = 100;\r\nvar VIEWBOX_HEIGHT_HALF = 50;\r\nvar VIEWBOX_CENTER_X = 50;\r\nvar VIEWBOX_CENTER_Y = 50;\n\nfunction Path(_a) {\r\n var className = _a.className, counterClockwise = _a.counterClockwise, dashRatio = _a.dashRatio, pathRadius = _a.pathRadius, strokeWidth = _a.strokeWidth, style = _a.style;\r\n return ((0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"path\", { className: className, style: Object.assign({}, style, getDashStyle({ pathRadius: pathRadius, dashRatio: dashRatio, counterClockwise: counterClockwise })), d: getPathDescription({\r\n pathRadius: pathRadius,\r\n counterClockwise: counterClockwise,\r\n }), strokeWidth: strokeWidth, fillOpacity: 0 }));\r\n}\r\nfunction getPathDescription(_a) {\r\n var pathRadius = _a.pathRadius, counterClockwise = _a.counterClockwise;\r\n var radius = pathRadius;\r\n var rotation = counterClockwise ? 1 : 0;\r\n return \"\\n M \" + VIEWBOX_CENTER_X + \",\" + VIEWBOX_CENTER_Y + \"\\n m 0,-\" + radius + \"\\n a \" + radius + \",\" + radius + \" \" + rotation + \" 1 1 0,\" + 2 * radius + \"\\n a \" + radius + \",\" + radius + \" \" + rotation + \" 1 1 0,-\" + 2 * radius + \"\\n \";\r\n}\r\nfunction getDashStyle(_a) {\r\n var counterClockwise = _a.counterClockwise, dashRatio = _a.dashRatio, pathRadius = _a.pathRadius;\r\n var diameter = Math.PI * 2 * pathRadius;\r\n var gapLength = (1 - dashRatio) * diameter;\r\n return {\r\n strokeDasharray: diameter + \"px \" + diameter + \"px\",\r\n strokeDashoffset: (counterClockwise ? -gapLength : gapLength) + \"px\",\r\n };\r\n}\n\nvar CircularProgressbar = (function (_super) {\r\n __extends(CircularProgressbar, _super);\r\n function CircularProgressbar() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n CircularProgressbar.prototype.getBackgroundPadding = function () {\r\n if (!this.props.background) {\r\n return 0;\r\n }\r\n return this.props.backgroundPadding;\r\n };\r\n CircularProgressbar.prototype.getPathRadius = function () {\r\n return VIEWBOX_HEIGHT_HALF - this.props.strokeWidth / 2 - this.getBackgroundPadding();\r\n };\r\n CircularProgressbar.prototype.getPathRatio = function () {\r\n var _a = this.props, value = _a.value, minValue = _a.minValue, maxValue = _a.maxValue;\r\n var boundedValue = Math.min(Math.max(value, minValue), maxValue);\r\n return (boundedValue - minValue) / (maxValue - minValue);\r\n };\r\n CircularProgressbar.prototype.render = function () {\r\n var _a = this.props, circleRatio = _a.circleRatio, className = _a.className, classes = _a.classes, counterClockwise = _a.counterClockwise, styles = _a.styles, strokeWidth = _a.strokeWidth, text = _a.text;\r\n var pathRadius = this.getPathRadius();\r\n var pathRatio = this.getPathRatio();\r\n return ((0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"svg\", { className: classes.root + \" \" + className, style: styles.root, viewBox: \"0 0 \" + VIEWBOX_WIDTH + \" \" + VIEWBOX_HEIGHT, \"data-test-id\": \"CircularProgressbar\" },\r\n this.props.background ? ((0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"circle\", { className: classes.background, style: styles.background, cx: VIEWBOX_CENTER_X, cy: VIEWBOX_CENTER_Y, r: VIEWBOX_HEIGHT_HALF })) : null,\r\n (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Path, { className: classes.trail, counterClockwise: counterClockwise, dashRatio: circleRatio, pathRadius: pathRadius, strokeWidth: strokeWidth, style: styles.trail }),\r\n (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Path, { className: classes.path, counterClockwise: counterClockwise, dashRatio: pathRatio * circleRatio, pathRadius: pathRadius, strokeWidth: strokeWidth, style: styles.path }),\r\n text ? ((0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"text\", { className: classes.text, style: styles.text, x: VIEWBOX_CENTER_X, y: VIEWBOX_CENTER_Y }, text)) : null));\r\n };\r\n CircularProgressbar.defaultProps = {\r\n background: false,\r\n backgroundPadding: 0,\r\n circleRatio: 1,\r\n classes: {\r\n root: 'CircularProgressbar',\r\n trail: 'CircularProgressbar-trail',\r\n path: 'CircularProgressbar-path',\r\n text: 'CircularProgressbar-text',\r\n background: 'CircularProgressbar-background',\r\n },\r\n counterClockwise: false,\r\n className: '',\r\n maxValue: 100,\r\n minValue: 0,\r\n strokeWidth: 8,\r\n styles: {\r\n root: {},\r\n trail: {},\r\n path: {},\r\n text: {},\r\n background: {},\r\n },\r\n text: '',\r\n };\r\n return CircularProgressbar;\r\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component));\n\nfunction CircularProgressbarWithChildren(props) {\r\n var children = props.children, circularProgressbarProps = __rest(props, [\"children\"]);\r\n return ((0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"div\", { \"data-test-id\": \"CircularProgressbarWithChildren\" },\r\n (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"div\", { style: { position: 'relative', width: '100%', height: '100%' } },\r\n (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(CircularProgressbar, __assign({}, circularProgressbarProps)),\r\n props.children ? ((0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"div\", { \"data-test-id\": \"CircularProgressbarWithChildren__children\", style: {\r\n position: 'absolute',\r\n width: '100%',\r\n height: '100%',\r\n marginTop: '-100%',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n } }, props.children)) : null)));\r\n}\n\nfunction buildStyles(_a) {\r\n var rotation = _a.rotation, strokeLinecap = _a.strokeLinecap, textColor = _a.textColor, textSize = _a.textSize, pathColor = _a.pathColor, pathTransition = _a.pathTransition, pathTransitionDuration = _a.pathTransitionDuration, trailColor = _a.trailColor, backgroundColor = _a.backgroundColor;\r\n var rotationTransform = rotation == null ? undefined : \"rotate(\" + rotation + \"turn)\";\r\n var rotationTransformOrigin = rotation == null ? undefined : 'center center';\r\n return {\r\n root: {},\r\n path: removeUndefinedValues({\r\n stroke: pathColor,\r\n strokeLinecap: strokeLinecap,\r\n transform: rotationTransform,\r\n transformOrigin: rotationTransformOrigin,\r\n transition: pathTransition,\r\n transitionDuration: pathTransitionDuration == null ? undefined : pathTransitionDuration + \"s\",\r\n }),\r\n trail: removeUndefinedValues({\r\n stroke: trailColor,\r\n strokeLinecap: strokeLinecap,\r\n transform: rotationTransform,\r\n transformOrigin: rotationTransformOrigin,\r\n }),\r\n text: removeUndefinedValues({\r\n fill: textColor,\r\n fontSize: textSize,\r\n }),\r\n background: removeUndefinedValues({\r\n fill: backgroundColor,\r\n }),\r\n };\r\n}\r\nfunction removeUndefinedValues(obj) {\r\n Object.keys(obj).forEach(function (key) {\r\n if (obj[key] == null) {\r\n delete obj[key];\r\n }\r\n });\r\n return obj;\r\n}\n\n\n//# sourceMappingURL=index.esm.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtY2lyY3VsYXItcHJvZ3Jlc3NiYXIvZGlzdC9pbmRleC5lc20uanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBaUQ7O0FBRWpEO0FBQ0E7QUFDQSxnRUFBZ0U7QUFDaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxnQkFBZ0Isc0NBQXNDLGtCQUFrQjtBQUNuRiwwQkFBMEI7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaURBQWlELE9BQU87QUFDeEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2REFBNkQsY0FBYztBQUMzRTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsWUFBWSxvREFBYSxXQUFXLDZDQUE2Qyx3QkFBd0Isa0ZBQWtGO0FBQzNMO0FBQ0E7QUFDQSxTQUFTLDZDQUE2QztBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLG9EQUFhLFVBQVUsOEpBQThKO0FBQ3JNLHFDQUFxQyxvREFBYSxhQUFhLDZIQUE2SDtBQUM1TCxZQUFZLG9EQUFhLFNBQVMsNkpBQTZKO0FBQy9MLFlBQVksb0RBQWEsU0FBUyx1S0FBdUs7QUFDek0sb0JBQW9CLG9EQUFhLFdBQVcsdUZBQXVGO0FBQ25JO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCLHFCQUFxQjtBQUNyQixvQkFBb0I7QUFDcEIsb0JBQW9CO0FBQ3BCLDBCQUEwQjtBQUMxQixTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxDQUFDLDRDQUFTOztBQUVYO0FBQ0E7QUFDQSxZQUFZLG9EQUFhLFVBQVUsbURBQW1EO0FBQ3RGLFFBQVEsb0RBQWEsVUFBVSxTQUFTLHVEQUF1RDtBQUMvRixZQUFZLG9EQUFhLGlDQUFpQztBQUMxRCw4QkFBOEIsb0RBQWEsVUFBVTtBQUNyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CO0FBQ25COztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUU2RTtBQUM3RSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmVhY3QtY2lyY3VsYXItcHJvZ3Jlc3NiYXIvZGlzdC9pbmRleC5lc20uanM/YjQ4OSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVFbGVtZW50LCBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5cbi8qISAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5Db3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTsgeW91IG1heSBub3QgdXNlXHJcbnRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlXHJcbkxpY2Vuc2UgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcblxyXG5USElTIENPREUgSVMgUFJPVklERUQgT04gQU4gKkFTIElTKiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZXHJcbktJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gQU5ZIElNUExJRURcclxuV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSxcclxuTUVSQ0hBTlRBQkxJVFkgT1IgTk9OLUlORlJJTkdFTUVOVC5cclxuXHJcblNlZSB0aGUgQXBhY2hlIFZlcnNpb24gMi4wIExpY2Vuc2UgZm9yIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xyXG5hbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXHJcbi8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlICovXHJcblxyXG52YXIgZXh0ZW5kU3RhdGljcyA9IGZ1bmN0aW9uKGQsIGIpIHtcclxuICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcclxuICAgICAgICAoeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbiAoZCwgYikgeyBkLl9fcHJvdG9fXyA9IGI7IH0pIHx8XHJcbiAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07XHJcbiAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTtcclxufTtcclxuXHJcbmZ1bmN0aW9uIF9fZXh0ZW5kcyhkLCBiKSB7XHJcbiAgICBleHRlbmRTdGF0aWNzKGQsIGIpO1xyXG4gICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9XHJcbiAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XHJcbn1cclxuXHJcbnZhciBfX2Fzc2lnbiA9IGZ1bmN0aW9uKCkge1xyXG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uIF9fYXNzaWduKHQpIHtcclxuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcclxuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcclxuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKSB0W3BdID0gc1twXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHQ7XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XHJcbn07XHJcblxyXG5mdW5jdGlvbiBfX3Jlc3QocywgZSkge1xyXG4gICAgdmFyIHQgPSB7fTtcclxuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxyXG4gICAgICAgIHRbcF0gPSBzW3BdO1xyXG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIGlmIChlLmluZGV4T2YocFtpXSkgPCAwKVxyXG4gICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcclxuICAgIHJldHVybiB0O1xyXG59XG5cbnZhciBWSUVXQk9YX1dJRFRIID0gMTAwO1xyXG52YXIgVklFV0JPWF9IRUlHSFQgPSAxMDA7XHJcbnZhciBWSUVXQk9YX0hFSUdIVF9IQUxGID0gNTA7XHJcbnZhciBWSUVXQk9YX0NFTlRFUl9YID0gNTA7XHJcbnZhciBWSUVXQk9YX0NFTlRFUl9ZID0gNTA7XG5cbmZ1bmN0aW9uIFBhdGgoX2EpIHtcclxuICAgIHZhciBjbGFzc05hbWUgPSBfYS5jbGFzc05hbWUsIGNvdW50ZXJDbG9ja3dpc2UgPSBfYS5jb3VudGVyQ2xvY2t3aXNlLCBkYXNoUmF0aW8gPSBfYS5kYXNoUmF0aW8sIHBhdGhSYWRpdXMgPSBfYS5wYXRoUmFkaXVzLCBzdHJva2VXaWR0aCA9IF9hLnN0cm9rZVdpZHRoLCBzdHlsZSA9IF9hLnN0eWxlO1xyXG4gICAgcmV0dXJuIChjcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7IGNsYXNzTmFtZTogY2xhc3NOYW1lLCBzdHlsZTogT2JqZWN0LmFzc2lnbih7fSwgc3R5bGUsIGdldERhc2hTdHlsZSh7IHBhdGhSYWRpdXM6IHBhdGhSYWRpdXMsIGRhc2hSYXRpbzogZGFzaFJhdGlvLCBjb3VudGVyQ2xvY2t3aXNlOiBjb3VudGVyQ2xvY2t3aXNlIH0pKSwgZDogZ2V0UGF0aERlc2NyaXB0aW9uKHtcclxuICAgICAgICAgICAgcGF0aFJhZGl1czogcGF0aFJhZGl1cyxcclxuICAgICAgICAgICAgY291bnRlckNsb2Nrd2lzZTogY291bnRlckNsb2Nrd2lzZSxcclxuICAgICAgICB9KSwgc3Ryb2tlV2lkdGg6IHN0cm9rZVdpZHRoLCBmaWxsT3BhY2l0eTogMCB9KSk7XHJcbn1cclxuZnVuY3Rpb24gZ2V0UGF0aERlc2NyaXB0aW9uKF9hKSB7XHJcbiAgICB2YXIgcGF0aFJhZGl1cyA9IF9hLnBhdGhSYWRpdXMsIGNvdW50ZXJDbG9ja3dpc2UgPSBfYS5jb3VudGVyQ2xvY2t3aXNlO1xyXG4gICAgdmFyIHJhZGl1cyA9IHBhdGhSYWRpdXM7XHJcbiAgICB2YXIgcm90YXRpb24gPSBjb3VudGVyQ2xvY2t3aXNlID8gMSA6IDA7XHJcbiAgICByZXR1cm4gXCJcXG4gICAgICBNIFwiICsgVklFV0JPWF9DRU5URVJfWCArIFwiLFwiICsgVklFV0JPWF9DRU5URVJfWSArIFwiXFxuICAgICAgbSAwLC1cIiArIHJhZGl1cyArIFwiXFxuICAgICAgYSBcIiArIHJhZGl1cyArIFwiLFwiICsgcmFkaXVzICsgXCIgXCIgKyByb3RhdGlvbiArIFwiIDEgMSAwLFwiICsgMiAqIHJhZGl1cyArIFwiXFxuICAgICAgYSBcIiArIHJhZGl1cyArIFwiLFwiICsgcmFkaXVzICsgXCIgXCIgKyByb3RhdGlvbiArIFwiIDEgMSAwLC1cIiArIDIgKiByYWRpdXMgKyBcIlxcbiAgICBcIjtcclxufVxyXG5mdW5jdGlvbiBnZXREYXNoU3R5bGUoX2EpIHtcclxuICAgIHZhciBjb3VudGVyQ2xvY2t3aXNlID0gX2EuY291bnRlckNsb2Nrd2lzZSwgZGFzaFJhdGlvID0gX2EuZGFzaFJhdGlvLCBwYXRoUmFkaXVzID0gX2EucGF0aFJhZGl1cztcclxuICAgIHZhciBkaWFtZXRlciA9IE1hdGguUEkgKiAyICogcGF0aFJhZGl1cztcclxuICAgIHZhciBnYXBMZW5ndGggPSAoMSAtIGRhc2hSYXRpbykgKiBkaWFtZXRlcjtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgc3Ryb2tlRGFzaGFycmF5OiBkaWFtZXRlciArIFwicHggXCIgKyBkaWFtZXRlciArIFwicHhcIixcclxuICAgICAgICBzdHJva2VEYXNob2Zmc2V0OiAoY291bnRlckNsb2Nrd2lzZSA/IC1nYXBMZW5ndGggOiBnYXBMZW5ndGgpICsgXCJweFwiLFxyXG4gICAgfTtcclxufVxuXG52YXIgQ2lyY3VsYXJQcm9ncmVzc2JhciA9IChmdW5jdGlvbiAoX3N1cGVyKSB7XHJcbiAgICBfX2V4dGVuZHMoQ2lyY3VsYXJQcm9ncmVzc2JhciwgX3N1cGVyKTtcclxuICAgIGZ1bmN0aW9uIENpcmN1bGFyUHJvZ3Jlc3NiYXIoKSB7XHJcbiAgICAgICAgcmV0dXJuIF9zdXBlciAhPT0gbnVsbCAmJiBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xyXG4gICAgfVxyXG4gICAgQ2lyY3VsYXJQcm9ncmVzc2Jhci5wcm90b3R5cGUuZ2V0QmFja2dyb3VuZFBhZGRpbmcgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnByb3BzLmJhY2tncm91bmQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLnByb3BzLmJhY2tncm91bmRQYWRkaW5nO1xyXG4gICAgfTtcclxuICAgIENpcmN1bGFyUHJvZ3Jlc3NiYXIucHJvdG90eXBlLmdldFBhdGhSYWRpdXMgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgcmV0dXJuIFZJRVdCT1hfSEVJR0hUX0hBTEYgLSB0aGlzLnByb3BzLnN0cm9rZVdpZHRoIC8gMiAtIHRoaXMuZ2V0QmFja2dyb3VuZFBhZGRpbmcoKTtcclxuICAgIH07XHJcbiAgICBDaXJjdWxhclByb2dyZXNzYmFyLnByb3RvdHlwZS5nZXRQYXRoUmF0aW8gPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdmFyIF9hID0gdGhpcy5wcm9wcywgdmFsdWUgPSBfYS52YWx1ZSwgbWluVmFsdWUgPSBfYS5taW5WYWx1ZSwgbWF4VmFsdWUgPSBfYS5tYXhWYWx1ZTtcclxuICAgICAgICB2YXIgYm91bmRlZFZhbHVlID0gTWF0aC5taW4oTWF0aC5tYXgodmFsdWUsIG1pblZhbHVlKSwgbWF4VmFsdWUpO1xyXG4gICAgICAgIHJldHVybiAoYm91bmRlZFZhbHVlIC0gbWluVmFsdWUpIC8gKG1heFZhbHVlIC0gbWluVmFsdWUpO1xyXG4gICAgfTtcclxuICAgIENpcmN1bGFyUHJvZ3Jlc3NiYXIucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB2YXIgX2EgPSB0aGlzLnByb3BzLCBjaXJjbGVSYXRpbyA9IF9hLmNpcmNsZVJhdGlvLCBjbGFzc05hbWUgPSBfYS5jbGFzc05hbWUsIGNsYXNzZXMgPSBfYS5jbGFzc2VzLCBjb3VudGVyQ2xvY2t3aXNlID0gX2EuY291bnRlckNsb2Nrd2lzZSwgc3R5bGVzID0gX2Euc3R5bGVzLCBzdHJva2VXaWR0aCA9IF9hLnN0cm9rZVdpZHRoLCB0ZXh0ID0gX2EudGV4dDtcclxuICAgICAgICB2YXIgcGF0aFJhZGl1cyA9IHRoaXMuZ2V0UGF0aFJhZGl1cygpO1xyXG4gICAgICAgIHZhciBwYXRoUmF0aW8gPSB0aGlzLmdldFBhdGhSYXRpbygpO1xyXG4gICAgICAgIHJldHVybiAoY3JlYXRlRWxlbWVudChcInN2Z1wiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcy5yb290ICsgXCIgXCIgKyBjbGFzc05hbWUsIHN0eWxlOiBzdHlsZXMucm9vdCwgdmlld0JveDogXCIwIDAgXCIgKyBWSUVXQk9YX1dJRFRIICsgXCIgXCIgKyBWSUVXQk9YX0hFSUdIVCwgXCJkYXRhLXRlc3QtaWRcIjogXCJDaXJjdWxhclByb2dyZXNzYmFyXCIgfSxcclxuICAgICAgICAgICAgdGhpcy5wcm9wcy5iYWNrZ3JvdW5kID8gKGNyZWF0ZUVsZW1lbnQoXCJjaXJjbGVcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMuYmFja2dyb3VuZCwgc3R5bGU6IHN0eWxlcy5iYWNrZ3JvdW5kLCBjeDogVklFV0JPWF9DRU5URVJfWCwgY3k6IFZJRVdCT1hfQ0VOVEVSX1ksIHI6IFZJRVdCT1hfSEVJR0hUX0hBTEYgfSkpIDogbnVsbCxcclxuICAgICAgICAgICAgY3JlYXRlRWxlbWVudChQYXRoLCB7IGNsYXNzTmFtZTogY2xhc3Nlcy50cmFpbCwgY291bnRlckNsb2Nrd2lzZTogY291bnRlckNsb2Nrd2lzZSwgZGFzaFJhdGlvOiBjaXJjbGVSYXRpbywgcGF0aFJhZGl1czogcGF0aFJhZGl1cywgc3Ryb2tlV2lkdGg6IHN0cm9rZVdpZHRoLCBzdHlsZTogc3R5bGVzLnRyYWlsIH0pLFxyXG4gICAgICAgICAgICBjcmVhdGVFbGVtZW50KFBhdGgsIHsgY2xhc3NOYW1lOiBjbGFzc2VzLnBhdGgsIGNvdW50ZXJDbG9ja3dpc2U6IGNvdW50ZXJDbG9ja3dpc2UsIGRhc2hSYXRpbzogcGF0aFJhdGlvICogY2lyY2xlUmF0aW8sIHBhdGhSYWRpdXM6IHBhdGhSYWRpdXMsIHN0cm9rZVdpZHRoOiBzdHJva2VXaWR0aCwgc3R5bGU6IHN0eWxlcy5wYXRoIH0pLFxyXG4gICAgICAgICAgICB0ZXh0ID8gKGNyZWF0ZUVsZW1lbnQoXCJ0ZXh0XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzLnRleHQsIHN0eWxlOiBzdHlsZXMudGV4dCwgeDogVklFV0JPWF9DRU5URVJfWCwgeTogVklFV0JPWF9DRU5URVJfWSB9LCB0ZXh0KSkgOiBudWxsKSk7XHJcbiAgICB9O1xyXG4gICAgQ2lyY3VsYXJQcm9ncmVzc2Jhci5kZWZhdWx0UHJvcHMgPSB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogZmFsc2UsXHJcbiAgICAgICAgYmFja2dyb3VuZFBhZGRpbmc6IDAsXHJcbiAgICAgICAgY2lyY2xlUmF0aW86IDEsXHJcbiAgICAgICAgY2xhc3Nlczoge1xyXG4gICAgICAgICAgICByb290OiAnQ2lyY3VsYXJQcm9ncmVzc2JhcicsXHJcbiAgICAgICAgICAgIHRyYWlsOiAnQ2lyY3VsYXJQcm9ncmVzc2Jhci10cmFpbCcsXHJcbiAgICAgICAgICAgIHBhdGg6ICdDaXJjdWxhclByb2dyZXNzYmFyLXBhdGgnLFxyXG4gICAgICAgICAgICB0ZXh0OiAnQ2lyY3VsYXJQcm9ncmVzc2Jhci10ZXh0JyxcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogJ0NpcmN1bGFyUHJvZ3Jlc3NiYXItYmFja2dyb3VuZCcsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBjb3VudGVyQ2xvY2t3aXNlOiBmYWxzZSxcclxuICAgICAgICBjbGFzc05hbWU6ICcnLFxyXG4gICAgICAgIG1heFZhbHVlOiAxMDAsXHJcbiAgICAgICAgbWluVmFsdWU6IDAsXHJcbiAgICAgICAgc3Ryb2tlV2lkdGg6IDgsXHJcbiAgICAgICAgc3R5bGVzOiB7XHJcbiAgICAgICAgICAgIHJvb3Q6IHt9LFxyXG4gICAgICAgICAgICB0cmFpbDoge30sXHJcbiAgICAgICAgICAgIHBhdGg6IHt9LFxyXG4gICAgICAgICAgICB0ZXh0OiB7fSxcclxuICAgICAgICAgICAgYmFja2dyb3VuZDoge30sXHJcbiAgICAgICAgfSxcclxuICAgICAgICB0ZXh0OiAnJyxcclxuICAgIH07XHJcbiAgICByZXR1cm4gQ2lyY3VsYXJQcm9ncmVzc2JhcjtcclxufShDb21wb25lbnQpKTtcblxuZnVuY3Rpb24gQ2lyY3VsYXJQcm9ncmVzc2JhcldpdGhDaGlsZHJlbihwcm9wcykge1xyXG4gICAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sIGNpcmN1bGFyUHJvZ3Jlc3NiYXJQcm9wcyA9IF9fcmVzdChwcm9wcywgW1wiY2hpbGRyZW5cIl0pO1xyXG4gICAgcmV0dXJuIChjcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgXCJkYXRhLXRlc3QtaWRcIjogXCJDaXJjdWxhclByb2dyZXNzYmFyV2l0aENoaWxkcmVuXCIgfSxcclxuICAgICAgICBjcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgc3R5bGU6IHsgcG9zaXRpb246ICdyZWxhdGl2ZScsIHdpZHRoOiAnMTAwJScsIGhlaWdodDogJzEwMCUnIH0gfSxcclxuICAgICAgICAgICAgY3JlYXRlRWxlbWVudChDaXJjdWxhclByb2dyZXNzYmFyLCBfX2Fzc2lnbih7fSwgY2lyY3VsYXJQcm9ncmVzc2JhclByb3BzKSksXHJcbiAgICAgICAgICAgIHByb3BzLmNoaWxkcmVuID8gKGNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyBcImRhdGEtdGVzdC1pZFwiOiBcIkNpcmN1bGFyUHJvZ3Jlc3NiYXJXaXRoQ2hpbGRyZW5fX2NoaWxkcmVuXCIsIHN0eWxlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICcxMDAlJyxcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW5Ub3A6ICctMTAwJScsXHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxyXG4gICAgICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxyXG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcclxuICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcclxuICAgICAgICAgICAgICAgIH0gfSwgcHJvcHMuY2hpbGRyZW4pKSA6IG51bGwpKSk7XHJcbn1cblxuZnVuY3Rpb24gYnVpbGRTdHlsZXMoX2EpIHtcclxuICAgIHZhciByb3RhdGlvbiA9IF9hLnJvdGF0aW9uLCBzdHJva2VMaW5lY2FwID0gX2Euc3Ryb2tlTGluZWNhcCwgdGV4dENvbG9yID0gX2EudGV4dENvbG9yLCB0ZXh0U2l6ZSA9IF9hLnRleHRTaXplLCBwYXRoQ29sb3IgPSBfYS5wYXRoQ29sb3IsIHBhdGhUcmFuc2l0aW9uID0gX2EucGF0aFRyYW5zaXRpb24sIHBhdGhUcmFuc2l0aW9uRHVyYXRpb24gPSBfYS5wYXRoVHJhbnNpdGlvbkR1cmF0aW9uLCB0cmFpbENvbG9yID0gX2EudHJhaWxDb2xvciwgYmFja2dyb3VuZENvbG9yID0gX2EuYmFja2dyb3VuZENvbG9yO1xyXG4gICAgdmFyIHJvdGF0aW9uVHJhbnNmb3JtID0gcm90YXRpb24gPT0gbnVsbCA/IHVuZGVmaW5lZCA6IFwicm90YXRlKFwiICsgcm90YXRpb24gKyBcInR1cm4pXCI7XHJcbiAgICB2YXIgcm90YXRpb25UcmFuc2Zvcm1PcmlnaW4gPSByb3RhdGlvbiA9PSBudWxsID8gdW5kZWZpbmVkIDogJ2NlbnRlciBjZW50ZXInO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICByb290OiB7fSxcclxuICAgICAgICBwYXRoOiByZW1vdmVVbmRlZmluZWRWYWx1ZXMoe1xyXG4gICAgICAgICAgICBzdHJva2U6IHBhdGhDb2xvcixcclxuICAgICAgICAgICAgc3Ryb2tlTGluZWNhcDogc3Ryb2tlTGluZWNhcCxcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGlvblRyYW5zZm9ybSxcclxuICAgICAgICAgICAgdHJhbnNmb3JtT3JpZ2luOiByb3RhdGlvblRyYW5zZm9ybU9yaWdpbixcclxuICAgICAgICAgICAgdHJhbnNpdGlvbjogcGF0aFRyYW5zaXRpb24sXHJcbiAgICAgICAgICAgIHRyYW5zaXRpb25EdXJhdGlvbjogcGF0aFRyYW5zaXRpb25EdXJhdGlvbiA9PSBudWxsID8gdW5kZWZpbmVkIDogcGF0aFRyYW5zaXRpb25EdXJhdGlvbiArIFwic1wiLFxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIHRyYWlsOiByZW1vdmVVbmRlZmluZWRWYWx1ZXMoe1xyXG4gICAgICAgICAgICBzdHJva2U6IHRyYWlsQ29sb3IsXHJcbiAgICAgICAgICAgIHN0cm9rZUxpbmVjYXA6IHN0cm9rZUxpbmVjYXAsXHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRpb25UcmFuc2Zvcm0sXHJcbiAgICAgICAgICAgIHRyYW5zZm9ybU9yaWdpbjogcm90YXRpb25UcmFuc2Zvcm1PcmlnaW4sXHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgdGV4dDogcmVtb3ZlVW5kZWZpbmVkVmFsdWVzKHtcclxuICAgICAgICAgICAgZmlsbDogdGV4dENvbG9yLFxyXG4gICAgICAgICAgICBmb250U2l6ZTogdGV4dFNpemUsXHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgYmFja2dyb3VuZDogcmVtb3ZlVW5kZWZpbmVkVmFsdWVzKHtcclxuICAgICAgICAgICAgZmlsbDogYmFja2dyb3VuZENvbG9yLFxyXG4gICAgICAgIH0pLFxyXG4gICAgfTtcclxufVxyXG5mdW5jdGlvbiByZW1vdmVVbmRlZmluZWRWYWx1ZXMob2JqKSB7XHJcbiAgICBPYmplY3Qua2V5cyhvYmopLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xyXG4gICAgICAgIGlmIChvYmpba2V5XSA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIGRlbGV0ZSBvYmpba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBvYmo7XHJcbn1cblxuZXhwb3J0IHsgQ2lyY3VsYXJQcm9ncmVzc2JhciwgQ2lyY3VsYXJQcm9ncmVzc2JhcldpdGhDaGlsZHJlbiwgYnVpbGRTdHlsZXMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmVzbS5qcy5tYXBcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-circular-progressbar/dist/index.esm.js\n"); + +/***/ }), + +/***/ "./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js": +/*!****************************************************************************!*\ + !*** ./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js ***! + \****************************************************************************/ +/***/ (function(__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 */ \"polyfill\": function() { return /* binding */ polyfill; }\n/* harmony export */ });\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtbGlmZWN5Y2xlcy1jb21wYXQvcmVhY3QtbGlmZWN5Y2xlcy1jb21wYXQuZXMuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRW9CIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9yZWFjdC1saWZlY3ljbGVzLWNvbXBhdC9yZWFjdC1saWZlY3ljbGVzLWNvbXBhdC5lcy5qcz81MzY5Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuZnVuY3Rpb24gY29tcG9uZW50V2lsbE1vdW50KCkge1xuICAvLyBDYWxsIHRoaXMuY29uc3RydWN0b3IuZ0RTRlAgdG8gc3VwcG9ydCBzdWItY2xhc3Nlcy5cbiAgdmFyIHN0YXRlID0gdGhpcy5jb25zdHJ1Y3Rvci5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHModGhpcy5wcm9wcywgdGhpcy5zdGF0ZSk7XG4gIGlmIChzdGF0ZSAhPT0gbnVsbCAmJiBzdGF0ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5zZXRTdGF0ZShzdGF0ZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMpIHtcbiAgLy8gQ2FsbCB0aGlzLmNvbnN0cnVjdG9yLmdEU0ZQIHRvIHN1cHBvcnQgc3ViLWNsYXNzZXMuXG4gIC8vIFVzZSB0aGUgc2V0U3RhdGUoKSB1cGRhdGVyIHRvIGVuc3VyZSBzdGF0ZSBpc24ndCBzdGFsZSBpbiBjZXJ0YWluIGVkZ2UgY2FzZXMuXG4gIGZ1bmN0aW9uIHVwZGF0ZXIocHJldlN0YXRlKSB7XG4gICAgdmFyIHN0YXRlID0gdGhpcy5jb25zdHJ1Y3Rvci5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMobmV4dFByb3BzLCBwcmV2U3RhdGUpO1xuICAgIHJldHVybiBzdGF0ZSAhPT0gbnVsbCAmJiBzdGF0ZSAhPT0gdW5kZWZpbmVkID8gc3RhdGUgOiBudWxsO1xuICB9XG4gIC8vIEJpbmRpbmcgXCJ0aGlzXCIgaXMgaW1wb3J0YW50IGZvciBzaGFsbG93IHJlbmRlcmVyIHN1cHBvcnQuXG4gIHRoaXMuc2V0U3RhdGUodXBkYXRlci5iaW5kKHRoaXMpKTtcbn1cblxuZnVuY3Rpb24gY29tcG9uZW50V2lsbFVwZGF0ZShuZXh0UHJvcHMsIG5leHRTdGF0ZSkge1xuICB0cnkge1xuICAgIHZhciBwcmV2UHJvcHMgPSB0aGlzLnByb3BzO1xuICAgIHZhciBwcmV2U3RhdGUgPSB0aGlzLnN0YXRlO1xuICAgIHRoaXMucHJvcHMgPSBuZXh0UHJvcHM7XG4gICAgdGhpcy5zdGF0ZSA9IG5leHRTdGF0ZTtcbiAgICB0aGlzLl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90RmxhZyA9IHRydWU7XG4gICAgdGhpcy5fX3JlYWN0SW50ZXJuYWxTbmFwc2hvdCA9IHRoaXMuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUoXG4gICAgICBwcmV2UHJvcHMsXG4gICAgICBwcmV2U3RhdGVcbiAgICApO1xuICB9IGZpbmFsbHkge1xuICAgIHRoaXMucHJvcHMgPSBwcmV2UHJvcHM7XG4gICAgdGhpcy5zdGF0ZSA9IHByZXZTdGF0ZTtcbiAgfVxufVxuXG4vLyBSZWFjdCBtYXkgd2FybiBhYm91dCBjV00vY1dSUC9jV1UgbWV0aG9kcyBiZWluZyBkZXByZWNhdGVkLlxuLy8gQWRkIGEgZmxhZyB0byBzdXBwcmVzcyB0aGVzZSB3YXJuaW5ncyBmb3IgdGhpcyBzcGVjaWFsIGNhc2UuXG5jb21wb25lbnRXaWxsTW91bnQuX19zdXBwcmVzc0RlcHJlY2F0aW9uV2FybmluZyA9IHRydWU7XG5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzLl9fc3VwcHJlc3NEZXByZWNhdGlvbldhcm5pbmcgPSB0cnVlO1xuY29tcG9uZW50V2lsbFVwZGF0ZS5fX3N1cHByZXNzRGVwcmVjYXRpb25XYXJuaW5nID0gdHJ1ZTtcblxuZnVuY3Rpb24gcG9seWZpbGwoQ29tcG9uZW50KSB7XG4gIHZhciBwcm90b3R5cGUgPSBDb21wb25lbnQucHJvdG90eXBlO1xuXG4gIGlmICghcHJvdG90eXBlIHx8ICFwcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudCkge1xuICAgIHRocm93IG5ldyBFcnJvcignQ2FuIG9ubHkgcG9seWZpbGwgY2xhc3MgY29tcG9uZW50cycpO1xuICB9XG5cbiAgaWYgKFxuICAgIHR5cGVvZiBDb21wb25lbnQuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzICE9PSAnZnVuY3Rpb24nICYmXG4gICAgdHlwZW9mIHByb3RvdHlwZS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSAhPT0gJ2Z1bmN0aW9uJ1xuICApIHtcbiAgICByZXR1cm4gQ29tcG9uZW50O1xuICB9XG5cbiAgLy8gSWYgbmV3IGNvbXBvbmVudCBBUElzIGFyZSBkZWZpbmVkLCBcInVuc2FmZVwiIGxpZmVjeWNsZXMgd29uJ3QgYmUgY2FsbGVkLlxuICAvLyBFcnJvciBpZiBhbnkgb2YgdGhlc2UgbGlmZWN5Y2xlcyBhcmUgcHJlc2VudCxcbiAgLy8gQmVjYXVzZSB0aGV5IHdvdWxkIHdvcmsgZGlmZmVyZW50bHkgYmV0d2VlbiBvbGRlciBhbmQgbmV3ZXIgKDE2LjMrKSB2ZXJzaW9ucyBvZiBSZWFjdC5cbiAgdmFyIGZvdW5kV2lsbE1vdW50TmFtZSA9IG51bGw7XG4gIHZhciBmb3VuZFdpbGxSZWNlaXZlUHJvcHNOYW1lID0gbnVsbDtcbiAgdmFyIGZvdW5kV2lsbFVwZGF0ZU5hbWUgPSBudWxsO1xuICBpZiAodHlwZW9mIHByb3RvdHlwZS5jb21wb25lbnRXaWxsTW91bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICBmb3VuZFdpbGxNb3VudE5hbWUgPSAnY29tcG9uZW50V2lsbE1vdW50JztcbiAgfSBlbHNlIGlmICh0eXBlb2YgcHJvdG90eXBlLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICBmb3VuZFdpbGxNb3VudE5hbWUgPSAnVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCc7XG4gIH1cbiAgaWYgKHR5cGVvZiBwcm90b3R5cGUuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGZvdW5kV2lsbFJlY2VpdmVQcm9wc05hbWUgPSAnY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyc7XG4gIH0gZWxzZSBpZiAodHlwZW9mIHByb3RvdHlwZS5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGZvdW5kV2lsbFJlY2VpdmVQcm9wc05hbWUgPSAnVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMnO1xuICB9XG4gIGlmICh0eXBlb2YgcHJvdG90eXBlLmNvbXBvbmVudFdpbGxVcGRhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICBmb3VuZFdpbGxVcGRhdGVOYW1lID0gJ2NvbXBvbmVudFdpbGxVcGRhdGUnO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBwcm90b3R5cGUuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICBmb3VuZFdpbGxVcGRhdGVOYW1lID0gJ1VOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlJztcbiAgfVxuICBpZiAoXG4gICAgZm91bmRXaWxsTW91bnROYW1lICE9PSBudWxsIHx8XG4gICAgZm91bmRXaWxsUmVjZWl2ZVByb3BzTmFtZSAhPT0gbnVsbCB8fFxuICAgIGZvdW5kV2lsbFVwZGF0ZU5hbWUgIT09IG51bGxcbiAgKSB7XG4gICAgdmFyIGNvbXBvbmVudE5hbWUgPSBDb21wb25lbnQuZGlzcGxheU5hbWUgfHwgQ29tcG9uZW50Lm5hbWU7XG4gICAgdmFyIG5ld0FwaU5hbWUgPVxuICAgICAgdHlwZW9mIENvbXBvbmVudC5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgPT09ICdmdW5jdGlvbidcbiAgICAgICAgPyAnZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKCknXG4gICAgICAgIDogJ2dldFNuYXBzaG90QmVmb3JlVXBkYXRlKCknO1xuXG4gICAgdGhyb3cgRXJyb3IoXG4gICAgICAnVW5zYWZlIGxlZ2FjeSBsaWZlY3ljbGVzIHdpbGwgbm90IGJlIGNhbGxlZCBmb3IgY29tcG9uZW50cyB1c2luZyBuZXcgY29tcG9uZW50IEFQSXMuXFxuXFxuJyArXG4gICAgICAgIGNvbXBvbmVudE5hbWUgK1xuICAgICAgICAnIHVzZXMgJyArXG4gICAgICAgIG5ld0FwaU5hbWUgK1xuICAgICAgICAnIGJ1dCBhbHNvIGNvbnRhaW5zIHRoZSBmb2xsb3dpbmcgbGVnYWN5IGxpZmVjeWNsZXM6JyArXG4gICAgICAgIChmb3VuZFdpbGxNb3VudE5hbWUgIT09IG51bGwgPyAnXFxuICAnICsgZm91bmRXaWxsTW91bnROYW1lIDogJycpICtcbiAgICAgICAgKGZvdW5kV2lsbFJlY2VpdmVQcm9wc05hbWUgIT09IG51bGxcbiAgICAgICAgICA/ICdcXG4gICcgKyBmb3VuZFdpbGxSZWNlaXZlUHJvcHNOYW1lXG4gICAgICAgICAgOiAnJykgK1xuICAgICAgICAoZm91bmRXaWxsVXBkYXRlTmFtZSAhPT0gbnVsbCA/ICdcXG4gICcgKyBmb3VuZFdpbGxVcGRhdGVOYW1lIDogJycpICtcbiAgICAgICAgJ1xcblxcblRoZSBhYm92ZSBsaWZlY3ljbGVzIHNob3VsZCBiZSByZW1vdmVkLiBMZWFybiBtb3JlIGFib3V0IHRoaXMgd2FybmluZyBoZXJlOlxcbicgK1xuICAgICAgICAnaHR0cHM6Ly9mYi5tZS9yZWFjdC1hc3luYy1jb21wb25lbnQtbGlmZWN5Y2xlLWhvb2tzJ1xuICAgICk7XG4gIH1cblxuICAvLyBSZWFjdCA8PSAxNi4yIGRvZXMgbm90IHN1cHBvcnQgc3RhdGljIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcy5cbiAgLy8gQXMgYSB3b3JrYXJvdW5kLCB1c2UgY1dNIGFuZCBjV1JQIHRvIGludm9rZSB0aGUgbmV3IHN0YXRpYyBsaWZlY3ljbGUuXG4gIC8vIE5ld2VyIHZlcnNpb25zIG9mIFJlYWN0IHdpbGwgaWdub3JlIHRoZXNlIGxpZmVjeWNsZXMgaWYgZ0RTRlAgZXhpc3RzLlxuICBpZiAodHlwZW9mIENvbXBvbmVudC5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICBwcm90b3R5cGUuY29tcG9uZW50V2lsbE1vdW50ID0gY29tcG9uZW50V2lsbE1vdW50O1xuICAgIHByb3RvdHlwZS5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzID0gY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcztcbiAgfVxuXG4gIC8vIFJlYWN0IDw9IDE2LjIgZG9lcyBub3Qgc3VwcG9ydCBnZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZS5cbiAgLy8gQXMgYSB3b3JrYXJvdW5kLCB1c2UgY1dVIHRvIGludm9rZSB0aGUgbmV3IGxpZmVjeWNsZS5cbiAgLy8gTmV3ZXIgdmVyc2lvbnMgb2YgUmVhY3Qgd2lsbCBpZ25vcmUgdGhhdCBsaWZlY3ljbGUgaWYgZ1NCVSBleGlzdHMuXG4gIGlmICh0eXBlb2YgcHJvdG90eXBlLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgaWYgKHR5cGVvZiBwcm90b3R5cGUuY29tcG9uZW50RGlkVXBkYXRlICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdDYW5ub3QgcG9seWZpbGwgZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUoKSBmb3IgY29tcG9uZW50cyB0aGF0IGRvIG5vdCBkZWZpbmUgY29tcG9uZW50RGlkVXBkYXRlKCkgb24gdGhlIHByb3RvdHlwZSdcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdG90eXBlLmNvbXBvbmVudFdpbGxVcGRhdGUgPSBjb21wb25lbnRXaWxsVXBkYXRlO1xuXG4gICAgdmFyIGNvbXBvbmVudERpZFVwZGF0ZSA9IHByb3RvdHlwZS5jb21wb25lbnREaWRVcGRhdGU7XG5cbiAgICBwcm90b3R5cGUuY29tcG9uZW50RGlkVXBkYXRlID0gZnVuY3Rpb24gY29tcG9uZW50RGlkVXBkYXRlUG9seWZpbGwoXG4gICAgICBwcmV2UHJvcHMsXG4gICAgICBwcmV2U3RhdGUsXG4gICAgICBtYXliZVNuYXBzaG90XG4gICAgKSB7XG4gICAgICAvLyAxNi4zKyB3aWxsIG5vdCBleGVjdXRlIG91ciB3aWxsLXVwZGF0ZSBtZXRob2Q7XG4gICAgICAvLyBJdCB3aWxsIHBhc3MgYSBzbmFwc2hvdCB2YWx1ZSB0byBkaWQtdXBkYXRlIHRob3VnaC5cbiAgICAgIC8vIE9sZGVyIHZlcnNpb25zIHdpbGwgcmVxdWlyZSBvdXIgcG9seWZpbGxlZCB3aWxsLXVwZGF0ZSB2YWx1ZS5cbiAgICAgIC8vIFdlIG5lZWQgdG8gaGFuZGxlIGJvdGggY2FzZXMsIGJ1dCBjYW4ndCBqdXN0IGNoZWNrIGZvciB0aGUgcHJlc2VuY2Ugb2YgXCJtYXliZVNuYXBzaG90XCIsXG4gICAgICAvLyBCZWNhdXNlIGZvciA8PSAxNS54IHZlcnNpb25zIHRoaXMgbWlnaHQgYmUgYSBcInByZXZDb250ZXh0XCIgb2JqZWN0LlxuICAgICAgLy8gV2UgYWxzbyBjYW4ndCBqdXN0IGNoZWNrIFwiX19yZWFjdEludGVybmFsU25hcHNob3RcIixcbiAgICAgIC8vIEJlY2F1c2UgZ2V0LXNuYXBzaG90IG1pZ2h0IHJldHVybiBhIGZhbHN5IHZhbHVlLlxuICAgICAgLy8gU28gY2hlY2sgZm9yIHRoZSBleHBsaWNpdCBfX3JlYWN0SW50ZXJuYWxTbmFwc2hvdEZsYWcgZmxhZyB0byBkZXRlcm1pbmUgYmVoYXZpb3IuXG4gICAgICB2YXIgc25hcHNob3QgPSB0aGlzLl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90RmxhZ1xuICAgICAgICA/IHRoaXMuX19yZWFjdEludGVybmFsU25hcHNob3RcbiAgICAgICAgOiBtYXliZVNuYXBzaG90O1xuXG4gICAgICBjb21wb25lbnREaWRVcGRhdGUuY2FsbCh0aGlzLCBwcmV2UHJvcHMsIHByZXZTdGF0ZSwgc25hcHNob3QpO1xuICAgIH07XG4gIH1cblxuICByZXR1cm4gQ29tcG9uZW50O1xufVxuXG5leHBvcnQgeyBwb2x5ZmlsbCB9O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js\n"); + +/***/ }), + +/***/ "./node_modules/react-modal-video/lib/index.js": +/*!*****************************************************!*\ + !*** ./node_modules/react-modal-video/lib/index.js ***! + \*****************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _CSSTransition = __webpack_require__(/*! react-transition-group/CSSTransition */ \"./node_modules/react-modal-video/node_modules/react-transition-group/CSSTransition.js\");\n\nvar _CSSTransition2 = _interopRequireDefault(_CSSTransition);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ModalVideo = function (_React$Component) {\n _inherits(ModalVideo, _React$Component);\n\n function ModalVideo(props) {\n _classCallCheck(this, ModalVideo);\n\n var _this = _possibleConstructorReturn(this, (ModalVideo.__proto__ || Object.getPrototypeOf(ModalVideo)).call(this, props));\n\n _this.state = {\n isOpen: false,\n modalVideoWidth: _this.getWidthFulfillAspectRatio(_this.props.ratio, window.innerHeight, window.innerWidth)\n };\n _this.closeModal = _this.closeModal.bind(_this);\n _this.updateFocus = _this.updateFocus.bind(_this);\n\n _this.timeout; // used for resizing video.\n return _this;\n }\n\n _createClass(ModalVideo, [{\n key: 'openModal',\n value: function openModal() {\n this.setState({ isOpen: true });\n }\n }, {\n key: 'closeModal',\n value: function closeModal() {\n this.setState({ isOpen: false });\n if (typeof this.props.onClose === 'function') {\n this.props.onClose();\n }\n }\n }, {\n key: 'keydownHandler',\n value: function keydownHandler(e) {\n if (e.keyCode === 27) {\n this.closeModal();\n }\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n document.addEventListener('keydown', this.keydownHandler.bind(this));\n window.addEventListener('resize', this.resizeModalVideoWhenHeightGreaterThanWindowHeight.bind(this));\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n document.removeEventListener('keydown', this.keydownHandler.bind(this));\n window.removeEventListener('resize', this.resizeModalVideoWhenHeightGreaterThanWindowHeight.bind(this));\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n if (this.state.isOpen && this.modal) {\n this.modal.focus();\n }\n }\n }, {\n key: 'updateFocus',\n value: function updateFocus(e) {\n if (e.keyCode === 9) {\n e.preventDefault();\n e.stopPropagation();\n if (this.modal === document.activeElement) {\n this.modalbtn.focus();\n } else {\n this.modal.focus();\n }\n }\n }\n\n /**\n * Resize modal-video-iframe-wrap when window size changed when the height of the video is greater than the height of the window.\n */\n\n }, {\n key: 'resizeModalVideoWhenHeightGreaterThanWindowHeight',\n value: function resizeModalVideoWhenHeightGreaterThanWindowHeight() {\n var _this2 = this;\n\n clearTimeout(this.timeout);\n\n this.timeout = setTimeout(function () {\n var width = _this2.getWidthFulfillAspectRatio(_this2.props.ratio, window.innerHeight, window.innerWidth);\n if (_this2.state.modalVideoWidth != width) {\n _this2.setState({\n modalVideoWidth: width\n });\n }\n }, 10);\n }\n }, {\n key: 'getQueryString',\n value: function getQueryString(obj) {\n var url = '';\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n if (obj[key] !== null) {\n url += key + '=' + obj[key] + '&';\n }\n }\n }\n return url.substr(0, url.length - 1);\n }\n }, {\n key: 'getYoutubeUrl',\n value: function getYoutubeUrl(youtube, videoId) {\n var query = this.getQueryString(youtube);\n return '//www.youtube.com/embed/' + videoId + '?' + query;\n }\n }, {\n key: 'getVimeoUrl',\n value: function getVimeoUrl(vimeo, videoId) {\n var query = this.getQueryString(vimeo);\n return '//player.vimeo.com/video/' + videoId + '?' + query;\n }\n }, {\n key: 'getYoukuUrl',\n value: function getYoukuUrl(youku, videoId) {\n var query = this.getQueryString(youku);\n return '//player.youku.com/embed/' + videoId + '?' + query;\n }\n }, {\n key: 'getVideoUrl',\n value: function getVideoUrl(opt, videoId) {\n if (opt.channel === 'youtube') {\n return this.getYoutubeUrl(opt.youtube, videoId);\n } else if (opt.channel === 'vimeo') {\n return this.getVimeoUrl(opt.vimeo, videoId);\n } else if (opt.channel === 'youku') {\n return this.getYoukuUrl(opt.youku, videoId);\n } else if (opt.channel === 'custom') {\n return opt.url;\n }\n }\n }, {\n key: 'getPadding',\n value: function getPadding(ratio) {\n var arr = ratio.split(':');\n var width = Number(arr[0]);\n var height = Number(arr[1]);\n var padding = height * 100 / width;\n return padding + '%';\n }\n\n /**\n * Calculate the width of the video fulfill aspect ratio.\n * When the height of the video is greater than the height of the window,\n * this function return the width that fulfill the aspect ratio for the height of the window.\n * In other cases, this function return '100%'(the height relative to the width is determined by css).\n * \n * @param string ratio\n * @param number maxWidth\n * @returns number | '100%'\n */\n\n }, {\n key: 'getWidthFulfillAspectRatio',\n value: function getWidthFulfillAspectRatio(ratio, maxHeight, maxWidth) {\n var arr = ratio.split(':');\n var width = Number(arr[0]);\n var height = Number(arr[1]);\n\n // Height that fulfill the aspect ratio for maxWidth.\n var videoHeight = maxWidth * (height / width);\n\n if (maxHeight < videoHeight) {\n // when the height of the video is greater than the height of the window.\n // calculate the width that fulfill the aspect ratio for the height of the window.\n\n // ex: 16:9 aspect ratio\n // 16:9 = width : height\n // → width = 16 / 9 * height\n return Math.floor(width / height * maxHeight);\n }\n\n return '100%';\n }\n }, {\n key: 'render',\n value: function render() {\n var _this3 = this;\n\n var modalVideoInnerStyle = {\n width: this.state.modalVideoWidth\n };\n\n var modalVideoIframeWrapStyle = {\n paddingBottom: this.getPadding(this.props.ratio)\n };\n\n return _react2.default.createElement(\n _CSSTransition2.default,\n {\n classNames: this.props.classNames.modalVideoEffect,\n timeout: this.props.animationSpeed\n },\n function () {\n if (!_this3.state.isOpen) {\n return null;\n }\n\n return _react2.default.createElement(\n 'div',\n { className: _this3.props.classNames.modalVideo, tabIndex: '-1', role: 'dialog',\n 'aria-label': _this3.props.aria.openMessage, onClick: _this3.closeModal, ref: function ref(node) {\n _this3.modal = node;\n }, onKeyDown: _this3.updateFocus },\n _react2.default.createElement(\n 'div',\n { className: _this3.props.classNames.modalVideoBody },\n _react2.default.createElement(\n 'div',\n { className: _this3.props.classNames.modalVideoInner, style: modalVideoInnerStyle },\n _react2.default.createElement(\n 'div',\n { className: _this3.props.classNames.modalVideoIframeWrap, style: modalVideoIframeWrapStyle },\n _react2.default.createElement('button', { className: _this3.props.classNames.modalVideoCloseBtn, 'aria-label': _this3.props.aria.dismissBtnMessage, ref: function ref(node) {\n _this3.modalbtn = node;\n }, onKeyDown: _this3.updateFocus }),\n _this3.props.children || _react2.default.createElement('iframe', { width: '460', height: '230', src: _this3.getVideoUrl(_this3.props, _this3.props.videoId), frameBorder: '0', allow: 'accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture', allowFullScreen: _this3.props.allowFullScreen, tabIndex: '-1' })\n )\n )\n )\n );\n }\n );\n }\n }], [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(props) {\n return { isOpen: props.isOpen };\n }\n }]);\n\n return ModalVideo;\n}(_react2.default.Component);\n\nexports[\"default\"] = ModalVideo;\n\n\nModalVideo.defaultProps = {\n channel: 'youtube',\n isOpen: false,\n youtube: {\n autoplay: 1,\n cc_load_policy: 1,\n color: null,\n controls: 1,\n disablekb: 0,\n enablejsapi: 0,\n end: null,\n fs: 1,\n h1: null,\n iv_load_policy: 1,\n list: null,\n listType: null,\n loop: 0,\n modestbranding: null,\n origin: null,\n playlist: null,\n playsinline: null,\n rel: 0,\n showinfo: 1,\n start: 0,\n wmode: 'transparent',\n theme: 'dark',\n mute: 0\n },\n ratio: '16:9',\n vimeo: {\n api: false,\n autopause: true,\n autoplay: true,\n byline: true,\n callback: null,\n color: null,\n height: null,\n loop: false,\n maxheight: null,\n maxwidth: null,\n player_id: null,\n portrait: true,\n title: true,\n width: null,\n xhtml: false\n },\n youku: {\n autoplay: 1,\n show_related: 0\n },\n allowFullScreen: true,\n animationSpeed: 300,\n classNames: {\n modalVideoEffect: 'modal-video-effect',\n modalVideo: 'modal-video',\n modalVideoClose: 'modal-video-close',\n modalVideoBody: 'modal-video-body',\n modalVideoInner: 'modal-video-inner',\n modalVideoIframeWrap: 'modal-video-movie-wrap',\n modalVideoCloseBtn: 'modal-video-close-btn'\n },\n aria: {\n openMessage: 'You just opened the modal video',\n dismissBtnMessage: 'Close the modal by clicking here'\n }\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtbW9kYWwtdmlkZW8vbGliL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQzs7QUFFRixpQ0FBaUMsMkNBQTJDLGdCQUFnQixrQkFBa0IsT0FBTywyQkFBMkIsd0RBQXdELGdDQUFnQyx1REFBdUQsK0RBQStELHlEQUF5RCxxRUFBcUUsNkRBQTZELHdCQUF3Qjs7QUFFampCLGFBQWEsbUJBQU8sQ0FBQyw0Q0FBTzs7QUFFNUI7O0FBRUEscUJBQXFCLG1CQUFPLENBQUMsbUlBQXNDOztBQUVuRTs7QUFFQSx1Q0FBdUMsdUNBQXVDOztBQUU5RSxrREFBa0QsMENBQTBDOztBQUU1RixrREFBa0QsYUFBYSx5RkFBeUY7O0FBRXhKLDJDQUEyQywrREFBK0QsdUdBQXVHLHlFQUF5RSxlQUFlLDBFQUEwRSxHQUFHOztBQUV0WDtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLG1CQUFtQjtBQUNuQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixjQUFjO0FBQ3BDO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxzQkFBc0IsZUFBZTtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0EsT0FBTztBQUNQO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBLFFBQVE7QUFDUjtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQSxlQUFlLGlDQUFpQztBQUNoRDtBQUNBO0FBQ0EsZ0JBQWdCLG1EQUFtRDtBQUNuRTtBQUNBO0FBQ0Esa0JBQWtCLGlGQUFpRjtBQUNuRztBQUNBO0FBQ0Esb0JBQW9CLDJGQUEyRjtBQUMvRyw0REFBNEQ7QUFDNUQ7QUFDQSxxQkFBcUIsaUNBQWlDO0FBQ3RELHFGQUFxRixtSUFBbUksVUFBVSxpQkFBaUIsV0FBVyxvRkFBb0Y7QUFDbFY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLGVBQWU7QUFDZjtBQUNBLEdBQUc7O0FBRUg7QUFDQSxDQUFDOztBQUVELGtCQUFlOzs7QUFHZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmVhY3QtbW9kYWwtdmlkZW8vbGliL2luZGV4LmpzP2M2OTAiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuXG52YXIgX2NyZWF0ZUNsYXNzID0gZnVuY3Rpb24gKCkgeyBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH0gcmV0dXJuIGZ1bmN0aW9uIChDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfTsgfSgpO1xuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfQ1NTVHJhbnNpdGlvbiA9IHJlcXVpcmUoJ3JlYWN0LXRyYW5zaXRpb24tZ3JvdXAvQ1NTVHJhbnNpdGlvbicpO1xuXG52YXIgX0NTU1RyYW5zaXRpb24yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQ1NTVHJhbnNpdGlvbik7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHNlbGYsIGNhbGwpIHsgaWYgKCFzZWxmKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gY2FsbCAmJiAodHlwZW9mIGNhbGwgPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGNhbGwgPT09IFwiZnVuY3Rpb25cIikgPyBjYWxsIDogc2VsZjsgfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCBcIiArIHR5cGVvZiBzdXBlckNsYXNzKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7IH1cblxudmFyIE1vZGFsVmlkZW8gPSBmdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoTW9kYWxWaWRlbywgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgZnVuY3Rpb24gTW9kYWxWaWRlbyhwcm9wcykge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBNb2RhbFZpZGVvKTtcblxuICAgIHZhciBfdGhpcyA9IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIChNb2RhbFZpZGVvLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2YoTW9kYWxWaWRlbykpLmNhbGwodGhpcywgcHJvcHMpKTtcblxuICAgIF90aGlzLnN0YXRlID0ge1xuICAgICAgaXNPcGVuOiBmYWxzZSxcbiAgICAgIG1vZGFsVmlkZW9XaWR0aDogX3RoaXMuZ2V0V2lkdGhGdWxmaWxsQXNwZWN0UmF0aW8oX3RoaXMucHJvcHMucmF0aW8sIHdpbmRvdy5pbm5lckhlaWdodCwgd2luZG93LmlubmVyV2lkdGgpXG4gICAgfTtcbiAgICBfdGhpcy5jbG9zZU1vZGFsID0gX3RoaXMuY2xvc2VNb2RhbC5iaW5kKF90aGlzKTtcbiAgICBfdGhpcy51cGRhdGVGb2N1cyA9IF90aGlzLnVwZGF0ZUZvY3VzLmJpbmQoX3RoaXMpO1xuXG4gICAgX3RoaXMudGltZW91dDsgLy8gdXNlZCBmb3IgcmVzaXppbmcgdmlkZW8uXG4gICAgcmV0dXJuIF90aGlzO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKE1vZGFsVmlkZW8sIFt7XG4gICAga2V5OiAnb3Blbk1vZGFsJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gb3Blbk1vZGFsKCkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGlzT3BlbjogdHJ1ZSB9KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdjbG9zZU1vZGFsJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gY2xvc2VNb2RhbCgpIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyBpc09wZW46IGZhbHNlIH0pO1xuICAgICAgaWYgKHR5cGVvZiB0aGlzLnByb3BzLm9uQ2xvc2UgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhpcy5wcm9wcy5vbkNsb3NlKCk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAna2V5ZG93bkhhbmRsZXInLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBrZXlkb3duSGFuZGxlcihlKSB7XG4gICAgICBpZiAoZS5rZXlDb2RlID09PSAyNykge1xuICAgICAgICB0aGlzLmNsb3NlTW9kYWwoKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdjb21wb25lbnREaWRNb3VudCcsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMua2V5ZG93bkhhbmRsZXIuYmluZCh0aGlzKSk7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5yZXNpemVNb2RhbFZpZGVvV2hlbkhlaWdodEdyZWF0ZXJUaGFuV2luZG93SGVpZ2h0LmJpbmQodGhpcykpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ2NvbXBvbmVudFdpbGxVbm1vdW50JyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5rZXlkb3duSGFuZGxlci5iaW5kKHRoaXMpKTtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLnJlc2l6ZU1vZGFsVmlkZW9XaGVuSGVpZ2h0R3JlYXRlclRoYW5XaW5kb3dIZWlnaHQuYmluZCh0aGlzKSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnY29tcG9uZW50RGlkVXBkYXRlJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkVXBkYXRlKCkge1xuICAgICAgaWYgKHRoaXMuc3RhdGUuaXNPcGVuICYmIHRoaXMubW9kYWwpIHtcbiAgICAgICAgdGhpcy5tb2RhbC5mb2N1cygpO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ3VwZGF0ZUZvY3VzJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gdXBkYXRlRm9jdXMoZSkge1xuICAgICAgaWYgKGUua2V5Q29kZSA9PT0gOSkge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGlmICh0aGlzLm1vZGFsID09PSBkb2N1bWVudC5hY3RpdmVFbGVtZW50KSB7XG4gICAgICAgICAgdGhpcy5tb2RhbGJ0bi5mb2N1cygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMubW9kYWwuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlc2l6ZSBtb2RhbC12aWRlby1pZnJhbWUtd3JhcCB3aGVuIHdpbmRvdyBzaXplIGNoYW5nZWQgd2hlbiB0aGUgaGVpZ2h0IG9mIHRoZSB2aWRlbyBpcyBncmVhdGVyIHRoYW4gdGhlIGhlaWdodCBvZiB0aGUgd2luZG93LlxuICAgICAqL1xuXG4gIH0sIHtcbiAgICBrZXk6ICdyZXNpemVNb2RhbFZpZGVvV2hlbkhlaWdodEdyZWF0ZXJUaGFuV2luZG93SGVpZ2h0JyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVzaXplTW9kYWxWaWRlb1doZW5IZWlnaHRHcmVhdGVyVGhhbldpbmRvd0hlaWdodCgpIHtcbiAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0KTtcblxuICAgICAgdGhpcy50aW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciB3aWR0aCA9IF90aGlzMi5nZXRXaWR0aEZ1bGZpbGxBc3BlY3RSYXRpbyhfdGhpczIucHJvcHMucmF0aW8sIHdpbmRvdy5pbm5lckhlaWdodCwgd2luZG93LmlubmVyV2lkdGgpO1xuICAgICAgICBpZiAoX3RoaXMyLnN0YXRlLm1vZGFsVmlkZW9XaWR0aCAhPSB3aWR0aCkge1xuICAgICAgICAgIF90aGlzMi5zZXRTdGF0ZSh7XG4gICAgICAgICAgICBtb2RhbFZpZGVvV2lkdGg6IHdpZHRoXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sIDEwKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdnZXRRdWVyeVN0cmluZycsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldFF1ZXJ5U3RyaW5nKG9iaikge1xuICAgICAgdmFyIHVybCA9ICcnO1xuICAgICAgZm9yICh2YXIga2V5IGluIG9iaikge1xuICAgICAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICBpZiAob2JqW2tleV0gIT09IG51bGwpIHtcbiAgICAgICAgICAgIHVybCArPSBrZXkgKyAnPScgKyBvYmpba2V5XSArICcmJztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB1cmwuc3Vic3RyKDAsIHVybC5sZW5ndGggLSAxKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdnZXRZb3V0dWJlVXJsJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0WW91dHViZVVybCh5b3V0dWJlLCB2aWRlb0lkKSB7XG4gICAgICB2YXIgcXVlcnkgPSB0aGlzLmdldFF1ZXJ5U3RyaW5nKHlvdXR1YmUpO1xuICAgICAgcmV0dXJuICcvL3d3dy55b3V0dWJlLmNvbS9lbWJlZC8nICsgdmlkZW9JZCArICc/JyArIHF1ZXJ5O1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ2dldFZpbWVvVXJsJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0VmltZW9VcmwodmltZW8sIHZpZGVvSWQpIHtcbiAgICAgIHZhciBxdWVyeSA9IHRoaXMuZ2V0UXVlcnlTdHJpbmcodmltZW8pO1xuICAgICAgcmV0dXJuICcvL3BsYXllci52aW1lby5jb20vdmlkZW8vJyArIHZpZGVvSWQgKyAnPycgKyBxdWVyeTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdnZXRZb3VrdVVybCcsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldFlvdWt1VXJsKHlvdWt1LCB2aWRlb0lkKSB7XG4gICAgICB2YXIgcXVlcnkgPSB0aGlzLmdldFF1ZXJ5U3RyaW5nKHlvdWt1KTtcbiAgICAgIHJldHVybiAnLy9wbGF5ZXIueW91a3UuY29tL2VtYmVkLycgKyB2aWRlb0lkICsgJz8nICsgcXVlcnk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnZ2V0VmlkZW9VcmwnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRWaWRlb1VybChvcHQsIHZpZGVvSWQpIHtcbiAgICAgIGlmIChvcHQuY2hhbm5lbCA9PT0gJ3lvdXR1YmUnKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFlvdXR1YmVVcmwob3B0LnlvdXR1YmUsIHZpZGVvSWQpO1xuICAgICAgfSBlbHNlIGlmIChvcHQuY2hhbm5lbCA9PT0gJ3ZpbWVvJykge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRWaW1lb1VybChvcHQudmltZW8sIHZpZGVvSWQpO1xuICAgICAgfSBlbHNlIGlmIChvcHQuY2hhbm5lbCA9PT0gJ3lvdWt1Jykge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRZb3VrdVVybChvcHQueW91a3UsIHZpZGVvSWQpO1xuICAgICAgfSBlbHNlIGlmIChvcHQuY2hhbm5lbCA9PT0gJ2N1c3RvbScpIHtcbiAgICAgICAgcmV0dXJuIG9wdC51cmw7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnZ2V0UGFkZGluZycsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldFBhZGRpbmcocmF0aW8pIHtcbiAgICAgIHZhciBhcnIgPSByYXRpby5zcGxpdCgnOicpO1xuICAgICAgdmFyIHdpZHRoID0gTnVtYmVyKGFyclswXSk7XG4gICAgICB2YXIgaGVpZ2h0ID0gTnVtYmVyKGFyclsxXSk7XG4gICAgICB2YXIgcGFkZGluZyA9IGhlaWdodCAqIDEwMCAvIHdpZHRoO1xuICAgICAgcmV0dXJuIHBhZGRpbmcgKyAnJSc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlIHRoZSB3aWR0aCBvZiB0aGUgdmlkZW8gZnVsZmlsbCBhc3BlY3QgcmF0aW8uXG4gICAgICogV2hlbiB0aGUgaGVpZ2h0IG9mIHRoZSB2aWRlbyBpcyBncmVhdGVyIHRoYW4gdGhlIGhlaWdodCBvZiB0aGUgd2luZG93LFxuICAgICAqIHRoaXMgZnVuY3Rpb24gcmV0dXJuIHRoZSB3aWR0aCB0aGF0IGZ1bGZpbGwgdGhlIGFzcGVjdCByYXRpbyBmb3IgdGhlIGhlaWdodCBvZiB0aGUgd2luZG93LlxuICAgICAqIEluIG90aGVyIGNhc2VzLCB0aGlzIGZ1bmN0aW9uIHJldHVybiAnMTAwJScodGhlIGhlaWdodCByZWxhdGl2ZSB0byB0aGUgd2lkdGggaXMgZGV0ZXJtaW5lZCBieSBjc3MpLlxuICAgICAqIFxuICAgICAqIEBwYXJhbSBzdHJpbmcgcmF0aW9cbiAgICAgKiBAcGFyYW0gbnVtYmVyIG1heFdpZHRoXG4gICAgICogQHJldHVybnMgbnVtYmVyIHwgJzEwMCUnXG4gICAgICovXG5cbiAgfSwge1xuICAgIGtleTogJ2dldFdpZHRoRnVsZmlsbEFzcGVjdFJhdGlvJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0V2lkdGhGdWxmaWxsQXNwZWN0UmF0aW8ocmF0aW8sIG1heEhlaWdodCwgbWF4V2lkdGgpIHtcbiAgICAgIHZhciBhcnIgPSByYXRpby5zcGxpdCgnOicpO1xuICAgICAgdmFyIHdpZHRoID0gTnVtYmVyKGFyclswXSk7XG4gICAgICB2YXIgaGVpZ2h0ID0gTnVtYmVyKGFyclsxXSk7XG5cbiAgICAgIC8vIEhlaWdodCB0aGF0IGZ1bGZpbGwgdGhlIGFzcGVjdCByYXRpbyBmb3IgbWF4V2lkdGguXG4gICAgICB2YXIgdmlkZW9IZWlnaHQgPSBtYXhXaWR0aCAqIChoZWlnaHQgLyB3aWR0aCk7XG5cbiAgICAgIGlmIChtYXhIZWlnaHQgPCB2aWRlb0hlaWdodCkge1xuICAgICAgICAvLyB3aGVuIHRoZSBoZWlnaHQgb2YgdGhlIHZpZGVvIGlzIGdyZWF0ZXIgdGhhbiB0aGUgaGVpZ2h0IG9mIHRoZSB3aW5kb3cuXG4gICAgICAgIC8vIGNhbGN1bGF0ZSB0aGUgd2lkdGggdGhhdCBmdWxmaWxsIHRoZSBhc3BlY3QgcmF0aW8gZm9yIHRoZSBoZWlnaHQgb2YgdGhlIHdpbmRvdy5cblxuICAgICAgICAvLyBleDogMTY6OSBhc3BlY3QgcmF0aW9cbiAgICAgICAgLy8gMTY6OSA9IHdpZHRoIDogaGVpZ2h0XG4gICAgICAgIC8vIOKGkiB3aWR0aCA9IDE2IC8gOSAqIGhlaWdodFxuICAgICAgICByZXR1cm4gTWF0aC5mbG9vcih3aWR0aCAvIGhlaWdodCAqIG1heEhlaWdodCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnMTAwJSc7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAncmVuZGVyJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgdmFyIF90aGlzMyA9IHRoaXM7XG5cbiAgICAgIHZhciBtb2RhbFZpZGVvSW5uZXJTdHlsZSA9IHtcbiAgICAgICAgd2lkdGg6IHRoaXMuc3RhdGUubW9kYWxWaWRlb1dpZHRoXG4gICAgICB9O1xuXG4gICAgICB2YXIgbW9kYWxWaWRlb0lmcmFtZVdyYXBTdHlsZSA9IHtcbiAgICAgICAgcGFkZGluZ0JvdHRvbTogdGhpcy5nZXRQYWRkaW5nKHRoaXMucHJvcHMucmF0aW8pXG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gX3JlYWN0Mi5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgIF9DU1NUcmFuc2l0aW9uMi5kZWZhdWx0LFxuICAgICAgICB7XG4gICAgICAgICAgY2xhc3NOYW1lczogdGhpcy5wcm9wcy5jbGFzc05hbWVzLm1vZGFsVmlkZW9FZmZlY3QsXG4gICAgICAgICAgdGltZW91dDogdGhpcy5wcm9wcy5hbmltYXRpb25TcGVlZFxuICAgICAgICB9LFxuICAgICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgaWYgKCFfdGhpczMuc3RhdGUuaXNPcGVuKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gX3JlYWN0Mi5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgIHsgY2xhc3NOYW1lOiBfdGhpczMucHJvcHMuY2xhc3NOYW1lcy5tb2RhbFZpZGVvLCB0YWJJbmRleDogJy0xJywgcm9sZTogJ2RpYWxvZycsXG4gICAgICAgICAgICAgICdhcmlhLWxhYmVsJzogX3RoaXMzLnByb3BzLmFyaWEub3Blbk1lc3NhZ2UsIG9uQ2xpY2s6IF90aGlzMy5jbG9zZU1vZGFsLCByZWY6IGZ1bmN0aW9uIHJlZihub2RlKSB7XG4gICAgICAgICAgICAgICAgX3RoaXMzLm1vZGFsID0gbm9kZTtcbiAgICAgICAgICAgICAgfSwgb25LZXlEb3duOiBfdGhpczMudXBkYXRlRm9jdXMgfSxcbiAgICAgICAgICAgIF9yZWFjdDIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgeyBjbGFzc05hbWU6IF90aGlzMy5wcm9wcy5jbGFzc05hbWVzLm1vZGFsVmlkZW9Cb2R5IH0sXG4gICAgICAgICAgICAgIF9yZWFjdDIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgIHsgY2xhc3NOYW1lOiBfdGhpczMucHJvcHMuY2xhc3NOYW1lcy5tb2RhbFZpZGVvSW5uZXIsIHN0eWxlOiBtb2RhbFZpZGVvSW5uZXJTdHlsZSB9LFxuICAgICAgICAgICAgICAgIF9yZWFjdDIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgICB7IGNsYXNzTmFtZTogX3RoaXMzLnByb3BzLmNsYXNzTmFtZXMubW9kYWxWaWRlb0lmcmFtZVdyYXAsIHN0eWxlOiBtb2RhbFZpZGVvSWZyYW1lV3JhcFN0eWxlIH0sXG4gICAgICAgICAgICAgICAgICBfcmVhY3QyLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJywgeyBjbGFzc05hbWU6IF90aGlzMy5wcm9wcy5jbGFzc05hbWVzLm1vZGFsVmlkZW9DbG9zZUJ0biwgJ2FyaWEtbGFiZWwnOiBfdGhpczMucHJvcHMuYXJpYS5kaXNtaXNzQnRuTWVzc2FnZSwgcmVmOiBmdW5jdGlvbiByZWYobm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgIF90aGlzMy5tb2RhbGJ0biA9IG5vZGU7XG4gICAgICAgICAgICAgICAgICAgIH0sIG9uS2V5RG93bjogX3RoaXMzLnVwZGF0ZUZvY3VzIH0pLFxuICAgICAgICAgICAgICAgICAgX3RoaXMzLnByb3BzLmNoaWxkcmVuIHx8IF9yZWFjdDIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnLCB7IHdpZHRoOiAnNDYwJywgaGVpZ2h0OiAnMjMwJywgc3JjOiBfdGhpczMuZ2V0VmlkZW9VcmwoX3RoaXMzLnByb3BzLCBfdGhpczMucHJvcHMudmlkZW9JZCksIGZyYW1lQm9yZGVyOiAnMCcsIGFsbG93OiAnYWNjZWxlcm9tZXRlcjsgYXV0b3BsYXk7IGVuY3J5cHRlZC1tZWRpYTsgZ3lyb3Njb3BlOyBwaWN0dXJlLWluLXBpY3R1cmUnLCBhbGxvd0Z1bGxTY3JlZW46IF90aGlzMy5wcm9wcy5hbGxvd0Z1bGxTY3JlZW4sIHRhYkluZGV4OiAnLTEnIH0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gIH1dLCBbe1xuICAgIGtleTogJ2dldERlcml2ZWRTdGF0ZUZyb21Qcm9wcycsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyhwcm9wcykge1xuICAgICAgcmV0dXJuIHsgaXNPcGVuOiBwcm9wcy5pc09wZW4gfTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gTW9kYWxWaWRlbztcbn0oX3JlYWN0Mi5kZWZhdWx0LkNvbXBvbmVudCk7XG5cbmV4cG9ydHMuZGVmYXVsdCA9IE1vZGFsVmlkZW87XG5cblxuTW9kYWxWaWRlby5kZWZhdWx0UHJvcHMgPSB7XG4gIGNoYW5uZWw6ICd5b3V0dWJlJyxcbiAgaXNPcGVuOiBmYWxzZSxcbiAgeW91dHViZToge1xuICAgIGF1dG9wbGF5OiAxLFxuICAgIGNjX2xvYWRfcG9saWN5OiAxLFxuICAgIGNvbG9yOiBudWxsLFxuICAgIGNvbnRyb2xzOiAxLFxuICAgIGRpc2FibGVrYjogMCxcbiAgICBlbmFibGVqc2FwaTogMCxcbiAgICBlbmQ6IG51bGwsXG4gICAgZnM6IDEsXG4gICAgaDE6IG51bGwsXG4gICAgaXZfbG9hZF9wb2xpY3k6IDEsXG4gICAgbGlzdDogbnVsbCxcbiAgICBsaXN0VHlwZTogbnVsbCxcbiAgICBsb29wOiAwLFxuICAgIG1vZGVzdGJyYW5kaW5nOiBudWxsLFxuICAgIG9yaWdpbjogbnVsbCxcbiAgICBwbGF5bGlzdDogbnVsbCxcbiAgICBwbGF5c2lubGluZTogbnVsbCxcbiAgICByZWw6IDAsXG4gICAgc2hvd2luZm86IDEsXG4gICAgc3RhcnQ6IDAsXG4gICAgd21vZGU6ICd0cmFuc3BhcmVudCcsXG4gICAgdGhlbWU6ICdkYXJrJyxcbiAgICBtdXRlOiAwXG4gIH0sXG4gIHJhdGlvOiAnMTY6OScsXG4gIHZpbWVvOiB7XG4gICAgYXBpOiBmYWxzZSxcbiAgICBhdXRvcGF1c2U6IHRydWUsXG4gICAgYXV0b3BsYXk6IHRydWUsXG4gICAgYnlsaW5lOiB0cnVlLFxuICAgIGNhbGxiYWNrOiBudWxsLFxuICAgIGNvbG9yOiBudWxsLFxuICAgIGhlaWdodDogbnVsbCxcbiAgICBsb29wOiBmYWxzZSxcbiAgICBtYXhoZWlnaHQ6IG51bGwsXG4gICAgbWF4d2lkdGg6IG51bGwsXG4gICAgcGxheWVyX2lkOiBudWxsLFxuICAgIHBvcnRyYWl0OiB0cnVlLFxuICAgIHRpdGxlOiB0cnVlLFxuICAgIHdpZHRoOiBudWxsLFxuICAgIHhodG1sOiBmYWxzZVxuICB9LFxuICB5b3VrdToge1xuICAgIGF1dG9wbGF5OiAxLFxuICAgIHNob3dfcmVsYXRlZDogMFxuICB9LFxuICBhbGxvd0Z1bGxTY3JlZW46IHRydWUsXG4gIGFuaW1hdGlvblNwZWVkOiAzMDAsXG4gIGNsYXNzTmFtZXM6IHtcbiAgICBtb2RhbFZpZGVvRWZmZWN0OiAnbW9kYWwtdmlkZW8tZWZmZWN0JyxcbiAgICBtb2RhbFZpZGVvOiAnbW9kYWwtdmlkZW8nLFxuICAgIG1vZGFsVmlkZW9DbG9zZTogJ21vZGFsLXZpZGVvLWNsb3NlJyxcbiAgICBtb2RhbFZpZGVvQm9keTogJ21vZGFsLXZpZGVvLWJvZHknLFxuICAgIG1vZGFsVmlkZW9Jbm5lcjogJ21vZGFsLXZpZGVvLWlubmVyJyxcbiAgICBtb2RhbFZpZGVvSWZyYW1lV3JhcDogJ21vZGFsLXZpZGVvLW1vdmllLXdyYXAnLFxuICAgIG1vZGFsVmlkZW9DbG9zZUJ0bjogJ21vZGFsLXZpZGVvLWNsb3NlLWJ0bidcbiAgfSxcbiAgYXJpYToge1xuICAgIG9wZW5NZXNzYWdlOiAnWW91IGp1c3Qgb3BlbmVkIHRoZSBtb2RhbCB2aWRlbycsXG4gICAgZGlzbWlzc0J0bk1lc3NhZ2U6ICdDbG9zZSB0aGUgbW9kYWwgYnkgY2xpY2tpbmcgaGVyZSdcbiAgfVxufTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-modal-video/lib/index.js\n"); + +/***/ }), + +/***/ "./node_modules/react-modal-video/node_modules/dom-helpers/class/addClass.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/react-modal-video/node_modules/dom-helpers/class/addClass.js ***! + \***********************************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nexports.__esModule = true;\nexports[\"default\"] = addClass;\n\nvar _hasClass = _interopRequireDefault(__webpack_require__(/*! ./hasClass */ \"./node_modules/react-modal-video/node_modules/dom-helpers/class/hasClass.js\"));\n\nfunction addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!(0, _hasClass.default)(element, className)) if (typeof element.className === 'string') element.className = element.className + ' ' + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + ' ' + className);\n}\n\nmodule.exports = exports[\"default\"];//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtbW9kYWwtdmlkZW8vbm9kZV9tb2R1bGVzL2RvbS1oZWxwZXJzL2NsYXNzL2FkZENsYXNzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDZCQUE2QixtQkFBTyxDQUFDLG9IQUE4Qzs7QUFFbkYsa0JBQWtCO0FBQ2xCLGtCQUFlOztBQUVmLHVDQUF1QyxtQkFBTyxDQUFDLCtGQUFZOztBQUUzRDtBQUNBLDBEQUEwRCx5SkFBeUo7QUFDbk47O0FBRUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LW1vZGFsLXZpZGVvL25vZGVfbW9kdWxlcy9kb20taGVscGVycy9jbGFzcy9hZGRDbGFzcy5qcz80ZTY3Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG52YXIgX2ludGVyb3BSZXF1aXJlRGVmYXVsdCA9IHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2ludGVyb3BSZXF1aXJlRGVmYXVsdFwiKTtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHMuZGVmYXVsdCA9IGFkZENsYXNzO1xuXG52YXIgX2hhc0NsYXNzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9oYXNDbGFzc1wiKSk7XG5cbmZ1bmN0aW9uIGFkZENsYXNzKGVsZW1lbnQsIGNsYXNzTmFtZSkge1xuICBpZiAoZWxlbWVudC5jbGFzc0xpc3QpIGVsZW1lbnQuY2xhc3NMaXN0LmFkZChjbGFzc05hbWUpO2Vsc2UgaWYgKCEoMCwgX2hhc0NsYXNzLmRlZmF1bHQpKGVsZW1lbnQsIGNsYXNzTmFtZSkpIGlmICh0eXBlb2YgZWxlbWVudC5jbGFzc05hbWUgPT09ICdzdHJpbmcnKSBlbGVtZW50LmNsYXNzTmFtZSA9IGVsZW1lbnQuY2xhc3NOYW1lICsgJyAnICsgY2xhc3NOYW1lO2Vsc2UgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgKGVsZW1lbnQuY2xhc3NOYW1lICYmIGVsZW1lbnQuY2xhc3NOYW1lLmJhc2VWYWwgfHwgJycpICsgJyAnICsgY2xhc3NOYW1lKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzW1wiZGVmYXVsdFwiXTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-modal-video/node_modules/dom-helpers/class/addClass.js\n"); + +/***/ }), + +/***/ "./node_modules/react-modal-video/node_modules/dom-helpers/class/hasClass.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/react-modal-video/node_modules/dom-helpers/class/hasClass.js ***! + \***********************************************************************************/ +/***/ (function(module, exports) { + +"use strict"; +eval("\n\nexports.__esModule = true;\nexports[\"default\"] = hasClass;\n\nfunction hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);else return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}\n\nmodule.exports = exports[\"default\"];//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtbW9kYWwtdmlkZW8vbm9kZV9tb2R1bGVzL2RvbS1oZWxwZXJzL2NsYXNzL2hhc0NsYXNzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLGtCQUFrQjtBQUNsQixrQkFBZTs7QUFFZjtBQUNBLHFGQUFxRjtBQUNyRjs7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmVhY3QtbW9kYWwtdmlkZW8vbm9kZV9tb2R1bGVzL2RvbS1oZWxwZXJzL2NsYXNzL2hhc0NsYXNzLmpzPzc1ZjgiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLmRlZmF1bHQgPSBoYXNDbGFzcztcblxuZnVuY3Rpb24gaGFzQ2xhc3MoZWxlbWVudCwgY2xhc3NOYW1lKSB7XG4gIGlmIChlbGVtZW50LmNsYXNzTGlzdCkgcmV0dXJuICEhY2xhc3NOYW1lICYmIGVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKGNsYXNzTmFtZSk7ZWxzZSByZXR1cm4gKFwiIFwiICsgKGVsZW1lbnQuY2xhc3NOYW1lLmJhc2VWYWwgfHwgZWxlbWVudC5jbGFzc05hbWUpICsgXCIgXCIpLmluZGV4T2YoXCIgXCIgKyBjbGFzc05hbWUgKyBcIiBcIikgIT09IC0xO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbXCJkZWZhdWx0XCJdOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-modal-video/node_modules/dom-helpers/class/hasClass.js\n"); + +/***/ }), + +/***/ "./node_modules/react-modal-video/node_modules/dom-helpers/class/removeClass.js": +/*!**************************************************************************************!*\ + !*** ./node_modules/react-modal-video/node_modules/dom-helpers/class/removeClass.js ***! + \**************************************************************************************/ +/***/ (function(module) { + +"use strict"; +eval("\n\nfunction replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp('(^|\\\\s)' + classToRemove + '(?:\\\\s|$)', 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n\nmodule.exports = function removeClass(element, className) {\n if (element.classList) element.classList.remove(className);else if (typeof element.className === 'string') element.className = replaceClassName(element.className, className);else element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtbW9kYWwtdmlkZW8vbm9kZV9tb2R1bGVzL2RvbS1oZWxwZXJzL2NsYXNzL3JlbW92ZUNsYXNzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDZEQUE2RCxtSEFBbUg7QUFDaEwiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LW1vZGFsLXZpZGVvL25vZGVfbW9kdWxlcy9kb20taGVscGVycy9jbGFzcy9yZW1vdmVDbGFzcy5qcz85YzIxIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuZnVuY3Rpb24gcmVwbGFjZUNsYXNzTmFtZShvcmlnQ2xhc3MsIGNsYXNzVG9SZW1vdmUpIHtcbiAgcmV0dXJuIG9yaWdDbGFzcy5yZXBsYWNlKG5ldyBSZWdFeHAoJyhefFxcXFxzKScgKyBjbGFzc1RvUmVtb3ZlICsgJyg/OlxcXFxzfCQpJywgJ2cnKSwgJyQxJykucmVwbGFjZSgvXFxzKy9nLCAnICcpLnJlcGxhY2UoL15cXHMqfFxccyokL2csICcnKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiByZW1vdmVDbGFzcyhlbGVtZW50LCBjbGFzc05hbWUpIHtcbiAgaWYgKGVsZW1lbnQuY2xhc3NMaXN0KSBlbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoY2xhc3NOYW1lKTtlbHNlIGlmICh0eXBlb2YgZWxlbWVudC5jbGFzc05hbWUgPT09ICdzdHJpbmcnKSBlbGVtZW50LmNsYXNzTmFtZSA9IHJlcGxhY2VDbGFzc05hbWUoZWxlbWVudC5jbGFzc05hbWUsIGNsYXNzTmFtZSk7ZWxzZSBlbGVtZW50LnNldEF0dHJpYnV0ZSgnY2xhc3MnLCByZXBsYWNlQ2xhc3NOYW1lKGVsZW1lbnQuY2xhc3NOYW1lICYmIGVsZW1lbnQuY2xhc3NOYW1lLmJhc2VWYWwgfHwgJycsIGNsYXNzTmFtZSkpO1xufTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-modal-video/node_modules/dom-helpers/class/removeClass.js\n"); + +/***/ }), + +/***/ "./node_modules/react-modal-video/node_modules/react-transition-group/CSSTransition.js": +/*!*********************************************************************************************!*\ + !*** ./node_modules/react-modal-video/node_modules/react-transition-group/CSSTransition.js ***! + \*********************************************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar PropTypes = _interopRequireWildcard(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\n\nvar _addClass = _interopRequireDefault(__webpack_require__(/*! dom-helpers/class/addClass */ \"./node_modules/react-modal-video/node_modules/dom-helpers/class/addClass.js\"));\n\nvar _removeClass = _interopRequireDefault(__webpack_require__(/*! dom-helpers/class/removeClass */ \"./node_modules/react-modal-video/node_modules/dom-helpers/class/removeClass.js\"));\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _Transition = _interopRequireDefault(__webpack_require__(/*! ./Transition */ \"./node_modules/react-modal-video/node_modules/react-transition-group/Transition.js\"));\n\nvar _PropTypes = __webpack_require__(/*! ./utils/PropTypes */ \"./node_modules/react-modal-video/node_modules/react-transition-group/utils/PropTypes.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return (0, _addClass.default)(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return (0, _removeClass.default)(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](http://www.nganimate.org/) library, you should use it if you're\n * using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n * <div>\n * <CSSTransition in={inProp} timeout={200} classNames=\"my-node\">\n * <div>\n * {\"I'll receive my-node-* classes\"}\n * </div>\n * </CSSTransition>\n * <button type=\"button\" onClick={() => setInProp(true)}>\n * Click to Enter\n * </button>\n * </div>\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity: 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**.\n */\n\n\nvar CSSTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.onEnter = function (node, appearing) {\n var _this$getClassNames = _this.getClassNames(appearing ? 'appear' : 'enter'),\n className = _this$getClassNames.className;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, className);\n\n if (_this.props.onEnter) {\n _this.props.onEnter(node, appearing);\n }\n };\n\n _this.onEntering = function (node, appearing) {\n var _this$getClassNames2 = _this.getClassNames(appearing ? 'appear' : 'enter'),\n activeClassName = _this$getClassNames2.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onEntering) {\n _this.props.onEntering(node, appearing);\n }\n };\n\n _this.onEntered = function (node, appearing) {\n var appearClassName = _this.getClassNames('appear').doneClassName;\n\n var enterClassName = _this.getClassNames('enter').doneClassName;\n\n var doneClassName = appearing ? appearClassName + \" \" + enterClassName : enterClassName;\n\n _this.removeClasses(node, appearing ? 'appear' : 'enter');\n\n addClass(node, doneClassName);\n\n if (_this.props.onEntered) {\n _this.props.onEntered(node, appearing);\n }\n };\n\n _this.onExit = function (node) {\n var _this$getClassNames3 = _this.getClassNames('exit'),\n className = _this$getClassNames3.className;\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n addClass(node, className);\n\n if (_this.props.onExit) {\n _this.props.onExit(node);\n }\n };\n\n _this.onExiting = function (node) {\n var _this$getClassNames4 = _this.getClassNames('exit'),\n activeClassName = _this$getClassNames4.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onExiting) {\n _this.props.onExiting(node);\n }\n };\n\n _this.onExited = function (node) {\n var _this$getClassNames5 = _this.getClassNames('exit'),\n doneClassName = _this$getClassNames5.doneClassName;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, doneClassName);\n\n if (_this.props.onExited) {\n _this.props.onExited(node);\n }\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + '-' : '';\n var className = isStringClassNames ? prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? className + '-active' : classNames[type + 'Active'];\n var doneClassName = isStringClassNames ? className + '-done' : classNames[type + 'Done'];\n return {\n className: className,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$getClassNames6 = this.getClassNames(type),\n className = _this$getClassNames6.className,\n activeClassName = _this$getClassNames6.activeClassName,\n doneClassName = _this$getClassNames6.doneClassName;\n\n className && removeClass(node, className);\n activeClassName && removeClass(node, activeClassName);\n doneClassName && removeClass(node, doneClassName);\n };\n\n _proto.reflowAndAddClass = function reflowAndAddClass(node, className) {\n // This is for to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n if (className) {\n /* eslint-disable no-unused-expressions */\n node && node.scrollTop;\n /* eslint-enable no-unused-expressions */\n\n addClass(node, className);\n }\n };\n\n _proto.render = function render() {\n var props = _extends({}, this.props);\n\n delete props.classNames;\n return _react.default.createElement(_Transition.default, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(_react.default.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = true ? _extends({}, _Transition.default.propTypes, {\n /**\n * The animation classNames applied to the component as it enters, exits or\n * has finished the transition. A single name can be provided and it will be\n * suffixed for each stage: e.g.\n *\n * `classNames=\"fade\"` applies `fade-enter`, `fade-enter-active`,\n * `fade-enter-done`, `fade-exit`, `fade-exit-active`, `fade-exit-done`,\n * `fade-appear`, `fade-appear-active`, and `fade-appear-done`.\n *\n * **Note**: `fade-appear-done` and `fade-enter-done` will _both_ be applied.\n * This allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply an\n * epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: _PropTypes.classNamesShape,\n\n /**\n * A `<Transition>` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'exit' class is\n * applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'exit-active' is applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : 0;\nvar _default = CSSTransition;\nexports[\"default\"] = _default;\nmodule.exports = exports[\"default\"];//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtbW9kYWwtdmlkZW8vbm9kZV9tb2R1bGVzL3JlYWN0LXRyYW5zaXRpb24tZ3JvdXAvQ1NTVHJhbnNpdGlvbi5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYixrQkFBa0I7QUFDbEIsa0JBQWU7O0FBRWYsd0NBQXdDLG1CQUFPLENBQUMsc0RBQVk7O0FBRTVELHVDQUF1QyxtQkFBTyxDQUFDLCtHQUE0Qjs7QUFFM0UsMENBQTBDLG1CQUFPLENBQUMscUhBQStCOztBQUVqRixvQ0FBb0MsbUJBQU8sQ0FBQyw0Q0FBTzs7QUFFbkQseUNBQXlDLG1CQUFPLENBQUMsd0dBQWM7O0FBRS9ELGlCQUFpQixtQkFBTyxDQUFDLGtIQUFtQjs7QUFFNUMsdUNBQXVDLHVDQUF1Qzs7QUFFOUUsd0NBQXdDLDZCQUE2QixjQUFjLE9BQU8saUJBQWlCLG1CQUFtQix1QkFBdUIsc0RBQXNELHNIQUFzSCw0QkFBNEIsNENBQTRDLE9BQU8sZ0NBQWdDLHNCQUFzQjs7QUFFdGMsc0JBQXNCLGdEQUFnRCxnQkFBZ0Isc0JBQXNCLE9BQU8sMkJBQTJCLDBCQUEwQix5REFBeUQsaUNBQWlDLGtCQUFrQjs7QUFFcFIsZ0RBQWdELDBEQUEwRCwyQ0FBMkM7O0FBRXJKO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIsUUFBUSxTQUFTLEtBQUs7QUFDbEQ7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBLHdDQUF3QyxzQkFBc0I7QUFDOUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBLHdFQUF3RSxhQUFhO0FBQ3JGO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSwyQkFBMkI7O0FBRTNCO0FBQ0Esd0VBQXdFO0FBQ3hFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLEtBQXFDLGNBQWM7QUFDN0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxJQUFJLENBQUU7QUFDUDtBQUNBLGtCQUFlO0FBQ2YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LW1vZGFsLXZpZGVvL25vZGVfbW9kdWxlcy9yZWFjdC10cmFuc2l0aW9uLWdyb3VwL0NTU1RyYW5zaXRpb24uanM/OTVhOSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHMuZGVmYXVsdCA9IHZvaWQgMDtcblxudmFyIFByb3BUeXBlcyA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJwcm9wLXR5cGVzXCIpKTtcblxudmFyIF9hZGRDbGFzcyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcImRvbS1oZWxwZXJzL2NsYXNzL2FkZENsYXNzXCIpKTtcblxudmFyIF9yZW1vdmVDbGFzcyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcImRvbS1oZWxwZXJzL2NsYXNzL3JlbW92ZUNsYXNzXCIpKTtcblxudmFyIF9yZWFjdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJlYWN0XCIpKTtcblxudmFyIF9UcmFuc2l0aW9uID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9UcmFuc2l0aW9uXCIpKTtcblxudmFyIF9Qcm9wVHlwZXMgPSByZXF1aXJlKFwiLi91dGlscy9Qcm9wVHlwZXNcIik7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKG9iaikgeyBpZiAob2JqICYmIG9iai5fX2VzTW9kdWxlKSB7IHJldHVybiBvYmo7IH0gZWxzZSB7IHZhciBuZXdPYmogPSB7fTsgaWYgKG9iaiAhPSBudWxsKSB7IGZvciAodmFyIGtleSBpbiBvYmopIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHsgdmFyIGRlc2MgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDoge307IGlmIChkZXNjLmdldCB8fCBkZXNjLnNldCkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpOyB9IGVsc2UgeyBuZXdPYmpba2V5XSA9IG9ialtrZXldOyB9IH0gfSB9IG5ld09iai5kZWZhdWx0ID0gb2JqOyByZXR1cm4gbmV3T2JqOyB9IH1cblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzTG9vc2Uoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzLnByb3RvdHlwZSk7IHN1YkNsYXNzLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IHN1YkNsYXNzOyBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBhZGRDbGFzcyA9IGZ1bmN0aW9uIGFkZENsYXNzKG5vZGUsIGNsYXNzZXMpIHtcbiAgcmV0dXJuIG5vZGUgJiYgY2xhc3NlcyAmJiBjbGFzc2VzLnNwbGl0KCcgJykuZm9yRWFjaChmdW5jdGlvbiAoYykge1xuICAgIHJldHVybiAoMCwgX2FkZENsYXNzLmRlZmF1bHQpKG5vZGUsIGMpO1xuICB9KTtcbn07XG5cbnZhciByZW1vdmVDbGFzcyA9IGZ1bmN0aW9uIHJlbW92ZUNsYXNzKG5vZGUsIGNsYXNzZXMpIHtcbiAgcmV0dXJuIG5vZGUgJiYgY2xhc3NlcyAmJiBjbGFzc2VzLnNwbGl0KCcgJykuZm9yRWFjaChmdW5jdGlvbiAoYykge1xuICAgIHJldHVybiAoMCwgX3JlbW92ZUNsYXNzLmRlZmF1bHQpKG5vZGUsIGMpO1xuICB9KTtcbn07XG4vKipcbiAqIEEgdHJhbnNpdGlvbiBjb21wb25lbnQgaW5zcGlyZWQgYnkgdGhlIGV4Y2VsbGVudFxuICogW25nLWFuaW1hdGVdKGh0dHA6Ly93d3cubmdhbmltYXRlLm9yZy8pIGxpYnJhcnksIHlvdSBzaG91bGQgdXNlIGl0IGlmIHlvdSdyZVxuICogdXNpbmcgQ1NTIHRyYW5zaXRpb25zIG9yIGFuaW1hdGlvbnMuIEl0J3MgYnVpbHQgdXBvbiB0aGVcbiAqIFtgVHJhbnNpdGlvbmBdKGh0dHBzOi8vcmVhY3Rjb21tdW5pdHkub3JnL3JlYWN0LXRyYW5zaXRpb24tZ3JvdXAvdHJhbnNpdGlvbilcbiAqIGNvbXBvbmVudCwgc28gaXQgaW5oZXJpdHMgYWxsIG9mIGl0cyBwcm9wcy5cbiAqXG4gKiBgQ1NTVHJhbnNpdGlvbmAgYXBwbGllcyBhIHBhaXIgb2YgY2xhc3MgbmFtZXMgZHVyaW5nIHRoZSBgYXBwZWFyYCwgYGVudGVyYCxcbiAqIGFuZCBgZXhpdGAgc3RhdGVzIG9mIHRoZSB0cmFuc2l0aW9uLiBUaGUgZmlyc3QgY2xhc3MgaXMgYXBwbGllZCBhbmQgdGhlbiBhXG4gKiBzZWNvbmQgYCotYWN0aXZlYCBjbGFzcyBpbiBvcmRlciB0byBhY3RpdmF0ZSB0aGUgQ1NTUyB0cmFuc2l0aW9uLiBBZnRlciB0aGVcbiAqIHRyYW5zaXRpb24sIG1hdGNoaW5nIGAqLWRvbmVgIGNsYXNzIG5hbWVzIGFyZSBhcHBsaWVkIHRvIHBlcnNpc3QgdGhlXG4gKiB0cmFuc2l0aW9uIHN0YXRlLlxuICpcbiAqIGBgYGpzeFxuICogZnVuY3Rpb24gQXBwKCkge1xuICogICBjb25zdCBbaW5Qcm9wLCBzZXRJblByb3BdID0gdXNlU3RhdGUoZmFsc2UpO1xuICogICByZXR1cm4gKFxuICogICAgIDxkaXY+XG4gKiAgICAgICA8Q1NTVHJhbnNpdGlvbiBpbj17aW5Qcm9wfSB0aW1lb3V0PXsyMDB9IGNsYXNzTmFtZXM9XCJteS1ub2RlXCI+XG4gKiAgICAgICAgIDxkaXY+XG4gKiAgICAgICAgICAge1wiSSdsbCByZWNlaXZlIG15LW5vZGUtKiBjbGFzc2VzXCJ9XG4gKiAgICAgICAgIDwvZGl2PlxuICogICAgICAgPC9DU1NUcmFuc2l0aW9uPlxuICogICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgb25DbGljaz17KCkgPT4gc2V0SW5Qcm9wKHRydWUpfT5cbiAqICAgICAgICAgQ2xpY2sgdG8gRW50ZXJcbiAqICAgICAgIDwvYnV0dG9uPlxuICogICAgIDwvZGl2PlxuICogICApO1xuICogfVxuICogYGBgXG4gKlxuICogV2hlbiB0aGUgYGluYCBwcm9wIGlzIHNldCB0byBgdHJ1ZWAsIHRoZSBjaGlsZCBjb21wb25lbnQgd2lsbCBmaXJzdCByZWNlaXZlXG4gKiB0aGUgY2xhc3MgYGV4YW1wbGUtZW50ZXJgLCB0aGVuIHRoZSBgZXhhbXBsZS1lbnRlci1hY3RpdmVgIHdpbGwgYmUgYWRkZWQgaW5cbiAqIHRoZSBuZXh0IHRpY2suIGBDU1NUcmFuc2l0aW9uYCBbZm9yY2VzIGFcbiAqIHJlZmxvd10oaHR0cHM6Ly9naXRodWIuY29tL3JlYWN0anMvcmVhY3QtdHJhbnNpdGlvbi1ncm91cC9ibG9iLzUwMDczMDNlNzI5YTc0YmU2NmEyMWMzZTIyMDVlNDkxNjgyMTUyNGIvc3JjL0NTU1RyYW5zaXRpb24uanMjTDIwOC1MMjE1KVxuICogYmV0d2VlbiBiZWZvcmUgYWRkaW5nIHRoZSBgZXhhbXBsZS1lbnRlci1hY3RpdmVgLiBUaGlzIGlzIGFuIGltcG9ydGFudCB0cmlja1xuICogYmVjYXVzZSBpdCBhbGxvd3MgdXMgdG8gdHJhbnNpdGlvbiBiZXR3ZWVuIGBleGFtcGxlLWVudGVyYCBhbmRcbiAqIGBleGFtcGxlLWVudGVyLWFjdGl2ZWAgZXZlbiB0aG91Z2ggdGhleSB3ZXJlIGFkZGVkIGltbWVkaWF0ZWx5IG9uZSBhZnRlclxuICogYW5vdGhlci4gTW9zdCBub3RhYmx5LCB0aGlzIGlzIHdoYXQgbWFrZXMgaXQgcG9zc2libGUgZm9yIHVzIHRvIGFuaW1hdGVcbiAqIF9hcHBlYXJhbmNlXy5cbiAqXG4gKiBgYGBjc3NcbiAqIC5teS1ub2RlLWVudGVyIHtcbiAqICAgb3BhY2l0eTogMDtcbiAqIH1cbiAqIC5teS1ub2RlLWVudGVyLWFjdGl2ZSB7XG4gKiAgIG9wYWNpdHk6IDE7XG4gKiAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXM7XG4gKiB9XG4gKiAubXktbm9kZS1leGl0IHtcbiAqICAgb3BhY2l0eTogMTtcbiAqIH1cbiAqIC5teS1ub2RlLWV4aXQtYWN0aXZlIHtcbiAqICAgb3BhY2l0eTogMDtcbiAqICAgdHJhbnNpdGlvbjogb3BhY2l0eTogMjAwbXM7XG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBgKi1hY3RpdmVgIGNsYXNzZXMgcmVwcmVzZW50IHdoaWNoIHN0eWxlcyB5b3Ugd2FudCB0byBhbmltYXRlICoqdG8qKi5cbiAqL1xuXG5cbnZhciBDU1NUcmFuc2l0aW9uID1cbi8qI19fUFVSRV9fKi9cbmZ1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0c0xvb3NlKENTU1RyYW5zaXRpb24sIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIGZ1bmN0aW9uIENTU1RyYW5zaXRpb24oKSB7XG4gICAgdmFyIF90aGlzO1xuXG4gICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICBhcmdzW19rZXldID0gYXJndW1lbnRzW19rZXldO1xuICAgIH1cblxuICAgIF90aGlzID0gX1JlYWN0JENvbXBvbmVudC5jYWxsLmFwcGx5KF9SZWFjdCRDb21wb25lbnQsIFt0aGlzXS5jb25jYXQoYXJncykpIHx8IHRoaXM7XG5cbiAgICBfdGhpcy5vbkVudGVyID0gZnVuY3Rpb24gKG5vZGUsIGFwcGVhcmluZykge1xuICAgICAgdmFyIF90aGlzJGdldENsYXNzTmFtZXMgPSBfdGhpcy5nZXRDbGFzc05hbWVzKGFwcGVhcmluZyA/ICdhcHBlYXInIDogJ2VudGVyJyksXG4gICAgICAgICAgY2xhc3NOYW1lID0gX3RoaXMkZ2V0Q2xhc3NOYW1lcy5jbGFzc05hbWU7XG5cbiAgICAgIF90aGlzLnJlbW92ZUNsYXNzZXMobm9kZSwgJ2V4aXQnKTtcblxuICAgICAgYWRkQ2xhc3Mobm9kZSwgY2xhc3NOYW1lKTtcblxuICAgICAgaWYgKF90aGlzLnByb3BzLm9uRW50ZXIpIHtcbiAgICAgICAgX3RoaXMucHJvcHMub25FbnRlcihub2RlLCBhcHBlYXJpbmcpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBfdGhpcy5vbkVudGVyaW5nID0gZnVuY3Rpb24gKG5vZGUsIGFwcGVhcmluZykge1xuICAgICAgdmFyIF90aGlzJGdldENsYXNzTmFtZXMyID0gX3RoaXMuZ2V0Q2xhc3NOYW1lcyhhcHBlYXJpbmcgPyAnYXBwZWFyJyA6ICdlbnRlcicpLFxuICAgICAgICAgIGFjdGl2ZUNsYXNzTmFtZSA9IF90aGlzJGdldENsYXNzTmFtZXMyLmFjdGl2ZUNsYXNzTmFtZTtcblxuICAgICAgX3RoaXMucmVmbG93QW5kQWRkQ2xhc3Mobm9kZSwgYWN0aXZlQ2xhc3NOYW1lKTtcblxuICAgICAgaWYgKF90aGlzLnByb3BzLm9uRW50ZXJpbmcpIHtcbiAgICAgICAgX3RoaXMucHJvcHMub25FbnRlcmluZyhub2RlLCBhcHBlYXJpbmcpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBfdGhpcy5vbkVudGVyZWQgPSBmdW5jdGlvbiAobm9kZSwgYXBwZWFyaW5nKSB7XG4gICAgICB2YXIgYXBwZWFyQ2xhc3NOYW1lID0gX3RoaXMuZ2V0Q2xhc3NOYW1lcygnYXBwZWFyJykuZG9uZUNsYXNzTmFtZTtcblxuICAgICAgdmFyIGVudGVyQ2xhc3NOYW1lID0gX3RoaXMuZ2V0Q2xhc3NOYW1lcygnZW50ZXInKS5kb25lQ2xhc3NOYW1lO1xuXG4gICAgICB2YXIgZG9uZUNsYXNzTmFtZSA9IGFwcGVhcmluZyA/IGFwcGVhckNsYXNzTmFtZSArIFwiIFwiICsgZW50ZXJDbGFzc05hbWUgOiBlbnRlckNsYXNzTmFtZTtcblxuICAgICAgX3RoaXMucmVtb3ZlQ2xhc3Nlcyhub2RlLCBhcHBlYXJpbmcgPyAnYXBwZWFyJyA6ICdlbnRlcicpO1xuXG4gICAgICBhZGRDbGFzcyhub2RlLCBkb25lQ2xhc3NOYW1lKTtcblxuICAgICAgaWYgKF90aGlzLnByb3BzLm9uRW50ZXJlZCkge1xuICAgICAgICBfdGhpcy5wcm9wcy5vbkVudGVyZWQobm9kZSwgYXBwZWFyaW5nKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX3RoaXMub25FeGl0ID0gZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgIHZhciBfdGhpcyRnZXRDbGFzc05hbWVzMyA9IF90aGlzLmdldENsYXNzTmFtZXMoJ2V4aXQnKSxcbiAgICAgICAgICBjbGFzc05hbWUgPSBfdGhpcyRnZXRDbGFzc05hbWVzMy5jbGFzc05hbWU7XG5cbiAgICAgIF90aGlzLnJlbW92ZUNsYXNzZXMobm9kZSwgJ2FwcGVhcicpO1xuXG4gICAgICBfdGhpcy5yZW1vdmVDbGFzc2VzKG5vZGUsICdlbnRlcicpO1xuXG4gICAgICBhZGRDbGFzcyhub2RlLCBjbGFzc05hbWUpO1xuXG4gICAgICBpZiAoX3RoaXMucHJvcHMub25FeGl0KSB7XG4gICAgICAgIF90aGlzLnByb3BzLm9uRXhpdChub2RlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX3RoaXMub25FeGl0aW5nID0gZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgIHZhciBfdGhpcyRnZXRDbGFzc05hbWVzNCA9IF90aGlzLmdldENsYXNzTmFtZXMoJ2V4aXQnKSxcbiAgICAgICAgICBhY3RpdmVDbGFzc05hbWUgPSBfdGhpcyRnZXRDbGFzc05hbWVzNC5hY3RpdmVDbGFzc05hbWU7XG5cbiAgICAgIF90aGlzLnJlZmxvd0FuZEFkZENsYXNzKG5vZGUsIGFjdGl2ZUNsYXNzTmFtZSk7XG5cbiAgICAgIGlmIChfdGhpcy5wcm9wcy5vbkV4aXRpbmcpIHtcbiAgICAgICAgX3RoaXMucHJvcHMub25FeGl0aW5nKG5vZGUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBfdGhpcy5vbkV4aXRlZCA9IGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICB2YXIgX3RoaXMkZ2V0Q2xhc3NOYW1lczUgPSBfdGhpcy5nZXRDbGFzc05hbWVzKCdleGl0JyksXG4gICAgICAgICAgZG9uZUNsYXNzTmFtZSA9IF90aGlzJGdldENsYXNzTmFtZXM1LmRvbmVDbGFzc05hbWU7XG5cbiAgICAgIF90aGlzLnJlbW92ZUNsYXNzZXMobm9kZSwgJ2V4aXQnKTtcblxuICAgICAgYWRkQ2xhc3Mobm9kZSwgZG9uZUNsYXNzTmFtZSk7XG5cbiAgICAgIGlmIChfdGhpcy5wcm9wcy5vbkV4aXRlZCkge1xuICAgICAgICBfdGhpcy5wcm9wcy5vbkV4aXRlZChub2RlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX3RoaXMuZ2V0Q2xhc3NOYW1lcyA9IGZ1bmN0aW9uICh0eXBlKSB7XG4gICAgICB2YXIgY2xhc3NOYW1lcyA9IF90aGlzLnByb3BzLmNsYXNzTmFtZXM7XG4gICAgICB2YXIgaXNTdHJpbmdDbGFzc05hbWVzID0gdHlwZW9mIGNsYXNzTmFtZXMgPT09ICdzdHJpbmcnO1xuICAgICAgdmFyIHByZWZpeCA9IGlzU3RyaW5nQ2xhc3NOYW1lcyAmJiBjbGFzc05hbWVzID8gY2xhc3NOYW1lcyArICctJyA6ICcnO1xuICAgICAgdmFyIGNsYXNzTmFtZSA9IGlzU3RyaW5nQ2xhc3NOYW1lcyA/IHByZWZpeCArIHR5cGUgOiBjbGFzc05hbWVzW3R5cGVdO1xuICAgICAgdmFyIGFjdGl2ZUNsYXNzTmFtZSA9IGlzU3RyaW5nQ2xhc3NOYW1lcyA/IGNsYXNzTmFtZSArICctYWN0aXZlJyA6IGNsYXNzTmFtZXNbdHlwZSArICdBY3RpdmUnXTtcbiAgICAgIHZhciBkb25lQ2xhc3NOYW1lID0gaXNTdHJpbmdDbGFzc05hbWVzID8gY2xhc3NOYW1lICsgJy1kb25lJyA6IGNsYXNzTmFtZXNbdHlwZSArICdEb25lJ107XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjbGFzc05hbWU6IGNsYXNzTmFtZSxcbiAgICAgICAgYWN0aXZlQ2xhc3NOYW1lOiBhY3RpdmVDbGFzc05hbWUsXG4gICAgICAgIGRvbmVDbGFzc05hbWU6IGRvbmVDbGFzc05hbWVcbiAgICAgIH07XG4gICAgfTtcblxuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIHZhciBfcHJvdG8gPSBDU1NUcmFuc2l0aW9uLnByb3RvdHlwZTtcblxuICBfcHJvdG8ucmVtb3ZlQ2xhc3NlcyA9IGZ1bmN0aW9uIHJlbW92ZUNsYXNzZXMobm9kZSwgdHlwZSkge1xuICAgIHZhciBfdGhpcyRnZXRDbGFzc05hbWVzNiA9IHRoaXMuZ2V0Q2xhc3NOYW1lcyh0eXBlKSxcbiAgICAgICAgY2xhc3NOYW1lID0gX3RoaXMkZ2V0Q2xhc3NOYW1lczYuY2xhc3NOYW1lLFxuICAgICAgICBhY3RpdmVDbGFzc05hbWUgPSBfdGhpcyRnZXRDbGFzc05hbWVzNi5hY3RpdmVDbGFzc05hbWUsXG4gICAgICAgIGRvbmVDbGFzc05hbWUgPSBfdGhpcyRnZXRDbGFzc05hbWVzNi5kb25lQ2xhc3NOYW1lO1xuXG4gICAgY2xhc3NOYW1lICYmIHJlbW92ZUNsYXNzKG5vZGUsIGNsYXNzTmFtZSk7XG4gICAgYWN0aXZlQ2xhc3NOYW1lICYmIHJlbW92ZUNsYXNzKG5vZGUsIGFjdGl2ZUNsYXNzTmFtZSk7XG4gICAgZG9uZUNsYXNzTmFtZSAmJiByZW1vdmVDbGFzcyhub2RlLCBkb25lQ2xhc3NOYW1lKTtcbiAgfTtcblxuICBfcHJvdG8ucmVmbG93QW5kQWRkQ2xhc3MgPSBmdW5jdGlvbiByZWZsb3dBbmRBZGRDbGFzcyhub2RlLCBjbGFzc05hbWUpIHtcbiAgICAvLyBUaGlzIGlzIGZvciB0byBmb3JjZSBhIHJlcGFpbnQsXG4gICAgLy8gd2hpY2ggaXMgbmVjZXNzYXJ5IGluIG9yZGVyIHRvIHRyYW5zaXRpb24gc3R5bGVzIHdoZW4gYWRkaW5nIGEgY2xhc3MgbmFtZS5cbiAgICBpZiAoY2xhc3NOYW1lKSB7XG4gICAgICAvKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtZXhwcmVzc2lvbnMgKi9cbiAgICAgIG5vZGUgJiYgbm9kZS5zY3JvbGxUb3A7XG4gICAgICAvKiBlc2xpbnQtZW5hYmxlIG5vLXVudXNlZC1leHByZXNzaW9ucyAqL1xuXG4gICAgICBhZGRDbGFzcyhub2RlLCBjbGFzc05hbWUpO1xuICAgIH1cbiAgfTtcblxuICBfcHJvdG8ucmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgIHZhciBwcm9wcyA9IF9leHRlbmRzKHt9LCB0aGlzLnByb3BzKTtcblxuICAgIGRlbGV0ZSBwcm9wcy5jbGFzc05hbWVzO1xuICAgIHJldHVybiBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KF9UcmFuc2l0aW9uLmRlZmF1bHQsIF9leHRlbmRzKHt9LCBwcm9wcywge1xuICAgICAgb25FbnRlcjogdGhpcy5vbkVudGVyLFxuICAgICAgb25FbnRlcmVkOiB0aGlzLm9uRW50ZXJlZCxcbiAgICAgIG9uRW50ZXJpbmc6IHRoaXMub25FbnRlcmluZyxcbiAgICAgIG9uRXhpdDogdGhpcy5vbkV4aXQsXG4gICAgICBvbkV4aXRpbmc6IHRoaXMub25FeGl0aW5nLFxuICAgICAgb25FeGl0ZWQ6IHRoaXMub25FeGl0ZWRcbiAgICB9KSk7XG4gIH07XG5cbiAgcmV0dXJuIENTU1RyYW5zaXRpb247XG59KF9yZWFjdC5kZWZhdWx0LkNvbXBvbmVudCk7XG5cbkNTU1RyYW5zaXRpb24uZGVmYXVsdFByb3BzID0ge1xuICBjbGFzc05hbWVzOiAnJ1xufTtcbkNTU1RyYW5zaXRpb24ucHJvcFR5cGVzID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gX2V4dGVuZHMoe30sIF9UcmFuc2l0aW9uLmRlZmF1bHQucHJvcFR5cGVzLCB7XG4gIC8qKlxuICAgKiBUaGUgYW5pbWF0aW9uIGNsYXNzTmFtZXMgYXBwbGllZCB0byB0aGUgY29tcG9uZW50IGFzIGl0IGVudGVycywgZXhpdHMgb3JcbiAgICogaGFzIGZpbmlzaGVkIHRoZSB0cmFuc2l0aW9uLiBBIHNpbmdsZSBuYW1lIGNhbiBiZSBwcm92aWRlZCBhbmQgaXQgd2lsbCBiZVxuICAgKiBzdWZmaXhlZCBmb3IgZWFjaCBzdGFnZTogZS5nLlxuICAgKlxuICAgKiBgY2xhc3NOYW1lcz1cImZhZGVcImAgYXBwbGllcyBgZmFkZS1lbnRlcmAsIGBmYWRlLWVudGVyLWFjdGl2ZWAsXG4gICAqIGBmYWRlLWVudGVyLWRvbmVgLCBgZmFkZS1leGl0YCwgYGZhZGUtZXhpdC1hY3RpdmVgLCBgZmFkZS1leGl0LWRvbmVgLFxuICAgKiBgZmFkZS1hcHBlYXJgLCBgZmFkZS1hcHBlYXItYWN0aXZlYCwgYW5kIGBmYWRlLWFwcGVhci1kb25lYC5cbiAgICpcbiAgICogKipOb3RlKio6IGBmYWRlLWFwcGVhci1kb25lYCBhbmQgYGZhZGUtZW50ZXItZG9uZWAgd2lsbCBfYm90aF8gYmUgYXBwbGllZC5cbiAgICogVGhpcyBhbGxvd3MgeW91IHRvIGRlZmluZSBkaWZmZXJlbnQgYmVoYXZpb3IgZm9yIHdoZW4gYXBwZWFyaW5nIGlzIGRvbmUgYW5kXG4gICAqIHdoZW4gcmVndWxhciBlbnRlcmluZyBpcyBkb25lLCB1c2luZyBzZWxlY3RvcnMgbGlrZVxuICAgKiBgLmZhZGUtZW50ZXItZG9uZTpub3QoLmZhZGUtYXBwZWFyLWRvbmUpYC4gRm9yIGV4YW1wbGUsIHlvdSBjb3VsZCBhcHBseSBhblxuICAgKiBlcGljIGVudHJhbmNlIGFuaW1hdGlvbiB3aGVuIGVsZW1lbnQgZmlyc3QgYXBwZWFycyBpbiB0aGUgRE9NIHVzaW5nXG4gICAqIFtBbmltYXRlLmNzc10oaHR0cHM6Ly9kYW5lZGVuLmdpdGh1Yi5pby9hbmltYXRlLmNzcy8pLiBPdGhlcndpc2UgeW91IGNhblxuICAgKiBzaW1wbHkgdXNlIGBmYWRlLWVudGVyLWRvbmVgIGZvciBkZWZpbmluZyBib3RoIGNhc2VzLlxuICAgKlxuICAgKiBFYWNoIGluZGl2aWR1YWwgY2xhc3NOYW1lcyBjYW4gYWxzbyBiZSBzcGVjaWZpZWQgaW5kZXBlbmRlbnRseSBsaWtlOlxuICAgKlxuICAgKiBgYGBqc1xuICAgKiBjbGFzc05hbWVzPXt7XG4gICAqICBhcHBlYXI6ICdteS1hcHBlYXInLFxuICAgKiAgYXBwZWFyQWN0aXZlOiAnbXktYWN0aXZlLWFwcGVhcicsXG4gICAqICBhcHBlYXJEb25lOiAnbXktZG9uZS1hcHBlYXInLFxuICAgKiAgZW50ZXI6ICdteS1lbnRlcicsXG4gICAqICBlbnRlckFjdGl2ZTogJ215LWFjdGl2ZS1lbnRlcicsXG4gICAqICBlbnRlckRvbmU6ICdteS1kb25lLWVudGVyJyxcbiAgICogIGV4aXQ6ICdteS1leGl0JyxcbiAgICogIGV4aXRBY3RpdmU6ICdteS1hY3RpdmUtZXhpdCcsXG4gICAqICBleGl0RG9uZTogJ215LWRvbmUtZXhpdCcsXG4gICAqIH19XG4gICAqIGBgYFxuICAgKlxuICAgKiBJZiB5b3Ugd2FudCB0byBzZXQgdGhlc2UgY2xhc3NlcyB1c2luZyBDU1MgTW9kdWxlczpcbiAgICpcbiAgICogYGBganNcbiAgICogaW1wb3J0IHN0eWxlcyBmcm9tICcuL3N0eWxlcy5jc3MnO1xuICAgKiBgYGBcbiAgICpcbiAgICogeW91IG1pZ2h0IHdhbnQgdG8gdXNlIGNhbWVsQ2FzZSBpbiB5b3VyIENTUyBmaWxlLCB0aGF0IHdheSBjb3VsZCBzaW1wbHlcbiAgICogc3ByZWFkIHRoZW0gaW5zdGVhZCBvZiBsaXN0aW5nIHRoZW0gb25lIGJ5IG9uZTpcbiAgICpcbiAgICogYGBganNcbiAgICogY2xhc3NOYW1lcz17eyAuLi5zdHlsZXMgfX1cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmcgfCB7XG4gICAqICBhcHBlYXI/OiBzdHJpbmcsXG4gICAqICBhcHBlYXJBY3RpdmU/OiBzdHJpbmcsXG4gICAqICBhcHBlYXJEb25lPzogc3RyaW5nLFxuICAgKiAgZW50ZXI/OiBzdHJpbmcsXG4gICAqICBlbnRlckFjdGl2ZT86IHN0cmluZyxcbiAgICogIGVudGVyRG9uZT86IHN0cmluZyxcbiAgICogIGV4aXQ/OiBzdHJpbmcsXG4gICAqICBleGl0QWN0aXZlPzogc3RyaW5nLFxuICAgKiAgZXhpdERvbmU/OiBzdHJpbmcsXG4gICAqIH19XG4gICAqL1xuICBjbGFzc05hbWVzOiBfUHJvcFR5cGVzLmNsYXNzTmFtZXNTaGFwZSxcblxuICAvKipcbiAgICogQSBgPFRyYW5zaXRpb24+YCBjYWxsYmFjayBmaXJlZCBpbW1lZGlhdGVseSBhZnRlciB0aGUgJ2VudGVyJyBvciAnYXBwZWFyJyBjbGFzcyBpc1xuICAgKiBhcHBsaWVkLlxuICAgKlxuICAgKiBAdHlwZSBGdW5jdGlvbihub2RlOiBIdG1sRWxlbWVudCwgaXNBcHBlYXJpbmc6IGJvb2wpXG4gICAqL1xuICBvbkVudGVyOiBQcm9wVHlwZXMuZnVuYyxcblxuICAvKipcbiAgICogQSBgPFRyYW5zaXRpb24+YCBjYWxsYmFjayBmaXJlZCBpbW1lZGlhdGVseSBhZnRlciB0aGUgJ2VudGVyLWFjdGl2ZScgb3JcbiAgICogJ2FwcGVhci1hY3RpdmUnIGNsYXNzIGlzIGFwcGxpZWQuXG4gICAqXG4gICAqIEB0eXBlIEZ1bmN0aW9uKG5vZGU6IEh0bWxFbGVtZW50LCBpc0FwcGVhcmluZzogYm9vbClcbiAgICovXG4gIG9uRW50ZXJpbmc6IFByb3BUeXBlcy5mdW5jLFxuXG4gIC8qKlxuICAgKiBBIGA8VHJhbnNpdGlvbj5gIGNhbGxiYWNrIGZpcmVkIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSAnZW50ZXInIG9yXG4gICAqICdhcHBlYXInIGNsYXNzZXMgYXJlICoqcmVtb3ZlZCoqIGFuZCB0aGUgYGRvbmVgIGNsYXNzIGlzIGFkZGVkIHRvIHRoZSBET00gbm9kZS5cbiAgICpcbiAgICogQHR5cGUgRnVuY3Rpb24obm9kZTogSHRtbEVsZW1lbnQsIGlzQXBwZWFyaW5nOiBib29sKVxuICAgKi9cbiAgb25FbnRlcmVkOiBQcm9wVHlwZXMuZnVuYyxcblxuICAvKipcbiAgICogQSBgPFRyYW5zaXRpb24+YCBjYWxsYmFjayBmaXJlZCBpbW1lZGlhdGVseSBhZnRlciB0aGUgJ2V4aXQnIGNsYXNzIGlzXG4gICAqIGFwcGxpZWQuXG4gICAqXG4gICAqIEB0eXBlIEZ1bmN0aW9uKG5vZGU6IEh0bWxFbGVtZW50KVxuICAgKi9cbiAgb25FeGl0OiBQcm9wVHlwZXMuZnVuYyxcblxuICAvKipcbiAgICogQSBgPFRyYW5zaXRpb24+YCBjYWxsYmFjayBmaXJlZCBpbW1lZGlhdGVseSBhZnRlciB0aGUgJ2V4aXQtYWN0aXZlJyBpcyBhcHBsaWVkLlxuICAgKlxuICAgKiBAdHlwZSBGdW5jdGlvbihub2RlOiBIdG1sRWxlbWVudClcbiAgICovXG4gIG9uRXhpdGluZzogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgLyoqXG4gICAqIEEgYDxUcmFuc2l0aW9uPmAgY2FsbGJhY2sgZmlyZWQgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlICdleGl0JyBjbGFzc2VzXG4gICAqIGFyZSAqKnJlbW92ZWQqKiBhbmQgdGhlIGBleGl0LWRvbmVgIGNsYXNzIGlzIGFkZGVkIHRvIHRoZSBET00gbm9kZS5cbiAgICpcbiAgICogQHR5cGUgRnVuY3Rpb24obm9kZTogSHRtbEVsZW1lbnQpXG4gICAqL1xuICBvbkV4aXRlZDogUHJvcFR5cGVzLmZ1bmNcbn0pIDoge307XG52YXIgX2RlZmF1bHQgPSBDU1NUcmFuc2l0aW9uO1xuZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbXCJkZWZhdWx0XCJdOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-modal-video/node_modules/react-transition-group/CSSTransition.js\n"); + +/***/ }), + +/***/ "./node_modules/react-modal-video/node_modules/react-transition-group/Transition.js": +/*!******************************************************************************************!*\ + !*** ./node_modules/react-modal-video/node_modules/react-transition-group/Transition.js ***! + \******************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nexports.__esModule = true;\nexports[\"default\"] = exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = void 0;\n\nvar PropTypes = _interopRequireWildcard(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _reactDom = _interopRequireDefault(__webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\"));\n\nvar _reactLifecyclesCompat = __webpack_require__(/*! react-lifecycles-compat */ \"./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js\");\n\nvar _PropTypes = __webpack_require__(/*! ./utils/PropTypes */ \"./node_modules/react-modal-video/node_modules/react-transition-group/utils/PropTypes.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar UNMOUNTED = 'unmounted';\nexports.UNMOUNTED = UNMOUNTED;\nvar EXITED = 'exited';\nexports.EXITED = EXITED;\nvar ENTERING = 'entering';\nexports.ENTERING = ENTERING;\nvar ENTERED = 'entered';\nexports.ENTERED = ENTERED;\nvar EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 0 },\n * entered: { opacity: 1 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * <Transition in={inProp} timeout={duration}>\n * {state => (\n * <div style={{\n * ...defaultStyle,\n * ...transitionStyles[state]\n * }}>\n * I'm a fade Transition!\n * </div>\n * )}\n * </Transition>\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n * <div>\n * <Transition in={inProp} timeout={500}>\n * {state => (\n * // ...\n * )}\n * </Transition>\n * <button onClick={() => setInProp(true)}>\n * Click to Enter\n * </button>\n * </div>\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nexports.EXITING = EXITING;\n\nvar Transition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context.transitionGroup; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n var _proto = Transition.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: null // allows for nested Transitions\n\n };\n };\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n }; // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n var node = _reactDom.default.findDOMNode(this);\n\n if (nextStatus === ENTERING) {\n this.performEnter(node, mounting);\n } else {\n this.performExit(node);\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(node, mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting;\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node);\n });\n return;\n }\n\n this.props.onEnter(node, appearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(node, appearing);\n\n _this2.onTransitionEnd(node, enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node, appearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit(node) {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED\n\n if (!exit) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n return;\n }\n\n this.props.onExit(node);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(node);\n\n _this3.onTransitionEnd(node, timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {\n this.setNextCallback(handler);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n this.props.addEndListener(node, this.nextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\"]); // filter props for Transtition\n\n\n delete childProps.in;\n delete childProps.mountOnEnter;\n delete childProps.unmountOnExit;\n delete childProps.appear;\n delete childProps.enter;\n delete childProps.exit;\n delete childProps.timeout;\n delete childProps.addEndListener;\n delete childProps.onEnter;\n delete childProps.onEntering;\n delete childProps.onEntered;\n delete childProps.onExit;\n delete childProps.onExiting;\n delete childProps.onExited;\n\n if (typeof children === 'function') {\n return children(status, childProps);\n }\n\n var child = _react.default.Children.only(children);\n\n return _react.default.cloneElement(child, childProps);\n };\n\n return Transition;\n}(_react.default.Component);\n\nTransition.contextTypes = {\n transitionGroup: PropTypes.object\n};\nTransition.childContextTypes = {\n transitionGroup: function transitionGroup() {}\n};\nTransition.propTypes = true ? {\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`, `'unmounted'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * <Transition in={this.state.in} timeout={150}>\n * {state => (\n * <MyComponent className={`fade fade-${state}`} />\n * )}\n * </Transition>\n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * Normally a component is not transitioned if it is shown when the `<Transition>` component mounts.\n * If you want to transition on the first mount set `appear` to `true`, and the\n * component will transition in as soon as the `<Transition>` mounts.\n *\n * > Note: there are no specific \"appear\" states. `appear` only adds an additional `enter` transition.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = _PropTypes.timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\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\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. **Note:** Timeouts are still used as a fallback if provided.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func // Name the function so it is clearer in the documentation\n\n} : 0;\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = 0;\nTransition.EXITED = 1;\nTransition.ENTERING = 2;\nTransition.ENTERED = 3;\nTransition.EXITING = 4;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(Transition);\n\nexports[\"default\"] = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtbW9kYWwtdmlkZW8vbm9kZV9tb2R1bGVzL3JlYWN0LXRyYW5zaXRpb24tZ3JvdXAvVHJhbnNpdGlvbi5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYixrQkFBa0I7QUFDbEIsa0JBQWUsR0FBRyxlQUFlLEdBQUcsZUFBZSxHQUFHLGdCQUFnQixHQUFHLGNBQWMsR0FBRyxpQkFBaUI7O0FBRTNHLHdDQUF3QyxtQkFBTyxDQUFDLHNEQUFZOztBQUU1RCxvQ0FBb0MsbUJBQU8sQ0FBQyw0Q0FBTzs7QUFFbkQsdUNBQXVDLG1CQUFPLENBQUMsb0RBQVc7O0FBRTFELDZCQUE2QixtQkFBTyxDQUFDLHFHQUF5Qjs7QUFFOUQsaUJBQWlCLG1CQUFPLENBQUMsa0hBQW1COztBQUU1Qyx1Q0FBdUMsdUNBQXVDOztBQUU5RSx3Q0FBd0MsNkJBQTZCLGNBQWMsT0FBTyxpQkFBaUIsbUJBQW1CLHVCQUF1QixzREFBc0Qsc0hBQXNILDRCQUE0Qiw0Q0FBNEMsT0FBTyxnQ0FBZ0Msc0JBQXNCOztBQUV0YywyREFBMkQsK0JBQStCLGlCQUFpQixzQ0FBc0MsWUFBWSxZQUFZLHVCQUF1QixPQUFPLHFCQUFxQiwwQ0FBMEMsNkJBQTZCOztBQUVuUyxnREFBZ0QsMERBQTBELDJDQUEyQzs7QUFFcko7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxjQUFjO0FBQ2Q7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQSxlQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxhQUFhO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLFNBQVM7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsWUFBWTtBQUM3QixpQkFBaUIsWUFBWTtBQUM3QjtBQUNBO0FBQ0EsbUJBQW1CLFlBQVk7QUFDL0IscUJBQXFCLFFBQVEsU0FBUyxTQUFTO0FBQy9DLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsUUFBUSxTQUFTLElBQUk7QUFDOUMsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQixzQkFBc0I7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxlQUFlOztBQUVmO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSwrQ0FBK0M7O0FBRS9DO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLGlCQUFpQixTQUFTO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7OztBQUdBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsNkJBQTZCOztBQUU3QjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHFFQUFxRTtBQUNyRTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSxPQUFPO0FBQ1A7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EsU0FBUztBQUNULE9BQU87QUFDUCxLQUFLO0FBQ0w7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLHVDQUF1Qzs7QUFFdkM7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EsT0FBTztBQUNQO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBLFNBQVM7QUFDVCxPQUFPO0FBQ1AsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLCtFQUErRTs7O0FBRy9FO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QixLQUFxQztBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQixlQUFlLFNBQVMsSUFBSTtBQUNqRCxRQUFRO0FBQ1IsaUNBQWlDLGFBQWEsTUFBTSxHQUFHO0FBQ3ZEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSx5QkFBeUI7QUFDekI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsS0FBSztBQUNyQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxXQUFXO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBOztBQUVBLDJGQUEyRixhQUFhO0FBQ3hHO0FBQ0E7O0FBRUE7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsRUFBRSxFQUFFLENBQUU7O0FBRU47O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUEsa0JBQWUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LW1vZGFsLXZpZGVvL25vZGVfbW9kdWxlcy9yZWFjdC10cmFuc2l0aW9uLWdyb3VwL1RyYW5zaXRpb24uanM/ODE3MSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHMuZGVmYXVsdCA9IGV4cG9ydHMuRVhJVElORyA9IGV4cG9ydHMuRU5URVJFRCA9IGV4cG9ydHMuRU5URVJJTkcgPSBleHBvcnRzLkVYSVRFRCA9IGV4cG9ydHMuVU5NT1VOVEVEID0gdm9pZCAwO1xuXG52YXIgUHJvcFR5cGVzID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInByb3AtdHlwZXNcIikpO1xuXG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX3JlYWN0RG9tID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3QtZG9tXCIpKTtcblxudmFyIF9yZWFjdExpZmVjeWNsZXNDb21wYXQgPSByZXF1aXJlKFwicmVhY3QtbGlmZWN5Y2xlcy1jb21wYXRcIik7XG5cbnZhciBfUHJvcFR5cGVzID0gcmVxdWlyZShcIi4vdXRpbHMvUHJvcFR5cGVzXCIpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHsgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkgeyByZXR1cm4gb2JqOyB9IGVsc2UgeyB2YXIgbmV3T2JqID0ge307IGlmIChvYmogIT0gbnVsbCkgeyBmb3IgKHZhciBrZXkgaW4gb2JqKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7IHZhciBkZXNjID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IHt9OyBpZiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTsgfSBlbHNlIHsgbmV3T2JqW2tleV0gPSBvYmpba2V5XTsgfSB9IH0gfSBuZXdPYmouZGVmYXVsdCA9IG9iajsgcmV0dXJuIG5ld09iajsgfSB9XG5cbmZ1bmN0aW9uIF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKHNvdXJjZSwgZXhjbHVkZWQpIHsgaWYgKHNvdXJjZSA9PSBudWxsKSByZXR1cm4ge307IHZhciB0YXJnZXQgPSB7fTsgdmFyIHNvdXJjZUtleXMgPSBPYmplY3Qua2V5cyhzb3VyY2UpOyB2YXIga2V5LCBpOyBmb3IgKGkgPSAwOyBpIDwgc291cmNlS2V5cy5sZW5ndGg7IGkrKykgeyBrZXkgPSBzb3VyY2VLZXlzW2ldOyBpZiAoZXhjbHVkZWQuaW5kZXhPZihrZXkpID49IDApIGNvbnRpbnVlOyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IHJldHVybiB0YXJnZXQ7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzTG9vc2Uoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzLnByb3RvdHlwZSk7IHN1YkNsYXNzLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IHN1YkNsYXNzOyBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBVTk1PVU5URUQgPSAndW5tb3VudGVkJztcbmV4cG9ydHMuVU5NT1VOVEVEID0gVU5NT1VOVEVEO1xudmFyIEVYSVRFRCA9ICdleGl0ZWQnO1xuZXhwb3J0cy5FWElURUQgPSBFWElURUQ7XG52YXIgRU5URVJJTkcgPSAnZW50ZXJpbmcnO1xuZXhwb3J0cy5FTlRFUklORyA9IEVOVEVSSU5HO1xudmFyIEVOVEVSRUQgPSAnZW50ZXJlZCc7XG5leHBvcnRzLkVOVEVSRUQgPSBFTlRFUkVEO1xudmFyIEVYSVRJTkcgPSAnZXhpdGluZyc7XG4vKipcbiAqIFRoZSBUcmFuc2l0aW9uIGNvbXBvbmVudCBsZXRzIHlvdSBkZXNjcmliZSBhIHRyYW5zaXRpb24gZnJvbSBvbmUgY29tcG9uZW50XG4gKiBzdGF0ZSB0byBhbm90aGVyIF9vdmVyIHRpbWVfIHdpdGggYSBzaW1wbGUgZGVjbGFyYXRpdmUgQVBJLiBNb3N0IGNvbW1vbmx5XG4gKiBpdCdzIHVzZWQgdG8gYW5pbWF0ZSB0aGUgbW91bnRpbmcgYW5kIHVubW91bnRpbmcgb2YgYSBjb21wb25lbnQsIGJ1dCBjYW4gYWxzb1xuICogYmUgdXNlZCB0byBkZXNjcmliZSBpbi1wbGFjZSB0cmFuc2l0aW9uIHN0YXRlcyBhcyB3ZWxsLlxuICpcbiAqIC0tLVxuICpcbiAqICoqTm90ZSoqOiBgVHJhbnNpdGlvbmAgaXMgYSBwbGF0Zm9ybS1hZ25vc3RpYyBiYXNlIGNvbXBvbmVudC4gSWYgeW91J3JlIHVzaW5nXG4gKiB0cmFuc2l0aW9ucyBpbiBDU1MsIHlvdSdsbCBwcm9iYWJseSB3YW50IHRvIHVzZVxuICogW2BDU1NUcmFuc2l0aW9uYF0oaHR0cHM6Ly9yZWFjdGNvbW11bml0eS5vcmcvcmVhY3QtdHJhbnNpdGlvbi1ncm91cC9jc3MtdHJhbnNpdGlvbilcbiAqIGluc3RlYWQuIEl0IGluaGVyaXRzIGFsbCB0aGUgZmVhdHVyZXMgb2YgYFRyYW5zaXRpb25gLCBidXQgY29udGFpbnNcbiAqIGFkZGl0aW9uYWwgZmVhdHVyZXMgbmVjZXNzYXJ5IHRvIHBsYXkgbmljZSB3aXRoIENTUyB0cmFuc2l0aW9ucyAoaGVuY2UgdGhlXG4gKiBuYW1lIG9mIHRoZSBjb21wb25lbnQpLlxuICpcbiAqIC0tLVxuICpcbiAqIEJ5IGRlZmF1bHQgdGhlIGBUcmFuc2l0aW9uYCBjb21wb25lbnQgZG9lcyBub3QgYWx0ZXIgdGhlIGJlaGF2aW9yIG9mIHRoZVxuICogY29tcG9uZW50IGl0IHJlbmRlcnMsIGl0IG9ubHkgdHJhY2tzIFwiZW50ZXJcIiBhbmQgXCJleGl0XCIgc3RhdGVzIGZvciB0aGVcbiAqIGNvbXBvbmVudHMuIEl0J3MgdXAgdG8geW91IHRvIGdpdmUgbWVhbmluZyBhbmQgZWZmZWN0IHRvIHRob3NlIHN0YXRlcy4gRm9yXG4gKiBleGFtcGxlIHdlIGNhbiBhZGQgc3R5bGVzIHRvIGEgY29tcG9uZW50IHdoZW4gaXQgZW50ZXJzIG9yIGV4aXRzOlxuICpcbiAqIGBgYGpzeFxuICogaW1wb3J0IHsgVHJhbnNpdGlvbiB9IGZyb20gJ3JlYWN0LXRyYW5zaXRpb24tZ3JvdXAnO1xuICpcbiAqIGNvbnN0IGR1cmF0aW9uID0gMzAwO1xuICpcbiAqIGNvbnN0IGRlZmF1bHRTdHlsZSA9IHtcbiAqICAgdHJhbnNpdGlvbjogYG9wYWNpdHkgJHtkdXJhdGlvbn1tcyBlYXNlLWluLW91dGAsXG4gKiAgIG9wYWNpdHk6IDAsXG4gKiB9XG4gKlxuICogY29uc3QgdHJhbnNpdGlvblN0eWxlcyA9IHtcbiAqICAgZW50ZXJpbmc6IHsgb3BhY2l0eTogMCB9LFxuICogICBlbnRlcmVkOiAgeyBvcGFjaXR5OiAxIH0sXG4gKiB9O1xuICpcbiAqIGNvbnN0IEZhZGUgPSAoeyBpbjogaW5Qcm9wIH0pID0+IChcbiAqICAgPFRyYW5zaXRpb24gaW49e2luUHJvcH0gdGltZW91dD17ZHVyYXRpb259PlxuICogICAgIHtzdGF0ZSA9PiAoXG4gKiAgICAgICA8ZGl2IHN0eWxlPXt7XG4gKiAgICAgICAgIC4uLmRlZmF1bHRTdHlsZSxcbiAqICAgICAgICAgLi4udHJhbnNpdGlvblN0eWxlc1tzdGF0ZV1cbiAqICAgICAgIH19PlxuICogICAgICAgICBJJ20gYSBmYWRlIFRyYW5zaXRpb24hXG4gKiAgICAgICA8L2Rpdj5cbiAqICAgICApfVxuICogICA8L1RyYW5zaXRpb24+XG4gKiApO1xuICogYGBgXG4gKlxuICogVGhlcmUgYXJlIDQgbWFpbiBzdGF0ZXMgYSBUcmFuc2l0aW9uIGNhbiBiZSBpbjpcbiAqICAtIGAnZW50ZXJpbmcnYFxuICogIC0gYCdlbnRlcmVkJ2BcbiAqICAtIGAnZXhpdGluZydgXG4gKiAgLSBgJ2V4aXRlZCdgXG4gKlxuICogVHJhbnNpdGlvbiBzdGF0ZSBpcyB0b2dnbGVkIHZpYSB0aGUgYGluYCBwcm9wLiBXaGVuIGB0cnVlYCB0aGUgY29tcG9uZW50XG4gKiBiZWdpbnMgdGhlIFwiRW50ZXJcIiBzdGFnZS4gRHVyaW5nIHRoaXMgc3RhZ2UsIHRoZSBjb21wb25lbnQgd2lsbCBzaGlmdCBmcm9tXG4gKiBpdHMgY3VycmVudCB0cmFuc2l0aW9uIHN0YXRlLCB0byBgJ2VudGVyaW5nJ2AgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGVcbiAqIHRyYW5zaXRpb24gYW5kIHRoZW4gdG8gdGhlIGAnZW50ZXJlZCdgIHN0YWdlIG9uY2UgaXQncyBjb21wbGV0ZS4gTGV0J3MgdGFrZVxuICogdGhlIGZvbGxvd2luZyBleGFtcGxlICh3ZSdsbCB1c2UgdGhlXG4gKiBbdXNlU3RhdGVdKGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9ob29rcy1yZWZlcmVuY2UuaHRtbCN1c2VzdGF0ZSkgaG9vayk6XG4gKlxuICogYGBganN4XG4gKiBmdW5jdGlvbiBBcHAoKSB7XG4gKiAgIGNvbnN0IFtpblByb3AsIHNldEluUHJvcF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gKiAgIHJldHVybiAoXG4gKiAgICAgPGRpdj5cbiAqICAgICAgIDxUcmFuc2l0aW9uIGluPXtpblByb3B9IHRpbWVvdXQ9ezUwMH0+XG4gKiAgICAgICAgIHtzdGF0ZSA9PiAoXG4gKiAgICAgICAgICAgLy8gLi4uXG4gKiAgICAgICAgICl9XG4gKiAgICAgICA8L1RyYW5zaXRpb24+XG4gKiAgICAgICA8YnV0dG9uIG9uQ2xpY2s9eygpID0+IHNldEluUHJvcCh0cnVlKX0+XG4gKiAgICAgICAgIENsaWNrIHRvIEVudGVyXG4gKiAgICAgICA8L2J1dHRvbj5cbiAqICAgICA8L2Rpdj5cbiAqICAgKTtcbiAqIH1cbiAqIGBgYFxuICpcbiAqIFdoZW4gdGhlIGJ1dHRvbiBpcyBjbGlja2VkIHRoZSBjb21wb25lbnQgd2lsbCBzaGlmdCB0byB0aGUgYCdlbnRlcmluZydgIHN0YXRlXG4gKiBhbmQgc3RheSB0aGVyZSBmb3IgNTAwbXMgKHRoZSB2YWx1ZSBvZiBgdGltZW91dGApIGJlZm9yZSBpdCBmaW5hbGx5IHN3aXRjaGVzXG4gKiB0byBgJ2VudGVyZWQnYC5cbiAqXG4gKiBXaGVuIGBpbmAgaXMgYGZhbHNlYCB0aGUgc2FtZSB0aGluZyBoYXBwZW5zIGV4Y2VwdCB0aGUgc3RhdGUgbW92ZXMgZnJvbVxuICogYCdleGl0aW5nJ2AgdG8gYCdleGl0ZWQnYC5cbiAqL1xuXG5leHBvcnRzLkVYSVRJTkcgPSBFWElUSU5HO1xuXG52YXIgVHJhbnNpdGlvbiA9XG4vKiNfX1BVUkVfXyovXG5mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHNMb29zZShUcmFuc2l0aW9uLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICBmdW5jdGlvbiBUcmFuc2l0aW9uKHByb3BzLCBjb250ZXh0KSB7XG4gICAgdmFyIF90aGlzO1xuXG4gICAgX3RoaXMgPSBfUmVhY3QkQ29tcG9uZW50LmNhbGwodGhpcywgcHJvcHMsIGNvbnRleHQpIHx8IHRoaXM7XG4gICAgdmFyIHBhcmVudEdyb3VwID0gY29udGV4dC50cmFuc2l0aW9uR3JvdXA7IC8vIEluIHRoZSBjb250ZXh0IG9mIGEgVHJhbnNpdGlvbkdyb3VwIGFsbCBlbnRlcnMgYXJlIHJlYWxseSBhcHBlYXJzXG5cbiAgICB2YXIgYXBwZWFyID0gcGFyZW50R3JvdXAgJiYgIXBhcmVudEdyb3VwLmlzTW91bnRpbmcgPyBwcm9wcy5lbnRlciA6IHByb3BzLmFwcGVhcjtcbiAgICB2YXIgaW5pdGlhbFN0YXR1cztcbiAgICBfdGhpcy5hcHBlYXJTdGF0dXMgPSBudWxsO1xuXG4gICAgaWYgKHByb3BzLmluKSB7XG4gICAgICBpZiAoYXBwZWFyKSB7XG4gICAgICAgIGluaXRpYWxTdGF0dXMgPSBFWElURUQ7XG4gICAgICAgIF90aGlzLmFwcGVhclN0YXR1cyA9IEVOVEVSSU5HO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaW5pdGlhbFN0YXR1cyA9IEVOVEVSRUQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChwcm9wcy51bm1vdW50T25FeGl0IHx8IHByb3BzLm1vdW50T25FbnRlcikge1xuICAgICAgICBpbml0aWFsU3RhdHVzID0gVU5NT1VOVEVEO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaW5pdGlhbFN0YXR1cyA9IEVYSVRFRDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBfdGhpcy5zdGF0ZSA9IHtcbiAgICAgIHN0YXR1czogaW5pdGlhbFN0YXR1c1xuICAgIH07XG4gICAgX3RoaXMubmV4dENhbGxiYWNrID0gbnVsbDtcbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICB2YXIgX3Byb3RvID0gVHJhbnNpdGlvbi5wcm90b3R5cGU7XG5cbiAgX3Byb3RvLmdldENoaWxkQ29udGV4dCA9IGZ1bmN0aW9uIGdldENoaWxkQ29udGV4dCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHJhbnNpdGlvbkdyb3VwOiBudWxsIC8vIGFsbG93cyBmb3IgbmVzdGVkIFRyYW5zaXRpb25zXG5cbiAgICB9O1xuICB9O1xuXG4gIFRyYW5zaXRpb24uZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzID0gZnVuY3Rpb24gZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKF9yZWYsIHByZXZTdGF0ZSkge1xuICAgIHZhciBuZXh0SW4gPSBfcmVmLmluO1xuXG4gICAgaWYgKG5leHRJbiAmJiBwcmV2U3RhdGUuc3RhdHVzID09PSBVTk1PVU5URUQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN0YXR1czogRVhJVEVEXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9OyAvLyBnZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgLy8gICBsZXQgbmV4dFN0YXR1cyA9IG51bGxcbiAgLy8gICBpZiAocHJldlByb3BzICE9PSB0aGlzLnByb3BzKSB7XG4gIC8vICAgICBjb25zdCB7IHN0YXR1cyB9ID0gdGhpcy5zdGF0ZVxuICAvLyAgICAgaWYgKHRoaXMucHJvcHMuaW4pIHtcbiAgLy8gICAgICAgaWYgKHN0YXR1cyAhPT0gRU5URVJJTkcgJiYgc3RhdHVzICE9PSBFTlRFUkVEKSB7XG4gIC8vICAgICAgICAgbmV4dFN0YXR1cyA9IEVOVEVSSU5HXG4gIC8vICAgICAgIH1cbiAgLy8gICAgIH0gZWxzZSB7XG4gIC8vICAgICAgIGlmIChzdGF0dXMgPT09IEVOVEVSSU5HIHx8IHN0YXR1cyA9PT0gRU5URVJFRCkge1xuICAvLyAgICAgICAgIG5leHRTdGF0dXMgPSBFWElUSU5HXG4gIC8vICAgICAgIH1cbiAgLy8gICAgIH1cbiAgLy8gICB9XG4gIC8vICAgcmV0dXJuIHsgbmV4dFN0YXR1cyB9XG4gIC8vIH1cblxuXG4gIF9wcm90by5jb21wb25lbnREaWRNb3VudCA9IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIHRoaXMudXBkYXRlU3RhdHVzKHRydWUsIHRoaXMuYXBwZWFyU3RhdHVzKTtcbiAgfTtcblxuICBfcHJvdG8uY29tcG9uZW50RGlkVXBkYXRlID0gZnVuY3Rpb24gY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcykge1xuICAgIHZhciBuZXh0U3RhdHVzID0gbnVsbDtcblxuICAgIGlmIChwcmV2UHJvcHMgIT09IHRoaXMucHJvcHMpIHtcbiAgICAgIHZhciBzdGF0dXMgPSB0aGlzLnN0YXRlLnN0YXR1cztcblxuICAgICAgaWYgKHRoaXMucHJvcHMuaW4pIHtcbiAgICAgICAgaWYgKHN0YXR1cyAhPT0gRU5URVJJTkcgJiYgc3RhdHVzICE9PSBFTlRFUkVEKSB7XG4gICAgICAgICAgbmV4dFN0YXR1cyA9IEVOVEVSSU5HO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoc3RhdHVzID09PSBFTlRFUklORyB8fCBzdGF0dXMgPT09IEVOVEVSRUQpIHtcbiAgICAgICAgICBuZXh0U3RhdHVzID0gRVhJVElORztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMudXBkYXRlU3RhdHVzKGZhbHNlLCBuZXh0U3RhdHVzKTtcbiAgfTtcblxuICBfcHJvdG8uY29tcG9uZW50V2lsbFVubW91bnQgPSBmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICB0aGlzLmNhbmNlbE5leHRDYWxsYmFjaygpO1xuICB9O1xuXG4gIF9wcm90by5nZXRUaW1lb3V0cyA9IGZ1bmN0aW9uIGdldFRpbWVvdXRzKCkge1xuICAgIHZhciB0aW1lb3V0ID0gdGhpcy5wcm9wcy50aW1lb3V0O1xuICAgIHZhciBleGl0LCBlbnRlciwgYXBwZWFyO1xuICAgIGV4aXQgPSBlbnRlciA9IGFwcGVhciA9IHRpbWVvdXQ7XG5cbiAgICBpZiAodGltZW91dCAhPSBudWxsICYmIHR5cGVvZiB0aW1lb3V0ICE9PSAnbnVtYmVyJykge1xuICAgICAgZXhpdCA9IHRpbWVvdXQuZXhpdDtcbiAgICAgIGVudGVyID0gdGltZW91dC5lbnRlcjsgLy8gVE9ETzogcmVtb3ZlIGZhbGxiYWNrIGZvciBuZXh0IG1ham9yXG5cbiAgICAgIGFwcGVhciA9IHRpbWVvdXQuYXBwZWFyICE9PSB1bmRlZmluZWQgPyB0aW1lb3V0LmFwcGVhciA6IGVudGVyO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBleGl0OiBleGl0LFxuICAgICAgZW50ZXI6IGVudGVyLFxuICAgICAgYXBwZWFyOiBhcHBlYXJcbiAgICB9O1xuICB9O1xuXG4gIF9wcm90by51cGRhdGVTdGF0dXMgPSBmdW5jdGlvbiB1cGRhdGVTdGF0dXMobW91bnRpbmcsIG5leHRTdGF0dXMpIHtcbiAgICBpZiAobW91bnRpbmcgPT09IHZvaWQgMCkge1xuICAgICAgbW91bnRpbmcgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAobmV4dFN0YXR1cyAhPT0gbnVsbCkge1xuICAgICAgLy8gbmV4dFN0YXR1cyB3aWxsIGFsd2F5cyBiZSBFTlRFUklORyBvciBFWElUSU5HLlxuICAgICAgdGhpcy5jYW5jZWxOZXh0Q2FsbGJhY2soKTtcblxuICAgICAgdmFyIG5vZGUgPSBfcmVhY3REb20uZGVmYXVsdC5maW5kRE9NTm9kZSh0aGlzKTtcblxuICAgICAgaWYgKG5leHRTdGF0dXMgPT09IEVOVEVSSU5HKSB7XG4gICAgICAgIHRoaXMucGVyZm9ybUVudGVyKG5vZGUsIG1vdW50aW5nKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucGVyZm9ybUV4aXQobm9kZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLnByb3BzLnVubW91bnRPbkV4aXQgJiYgdGhpcy5zdGF0ZS5zdGF0dXMgPT09IEVYSVRFRCkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIHN0YXR1czogVU5NT1VOVEVEXG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgX3Byb3RvLnBlcmZvcm1FbnRlciA9IGZ1bmN0aW9uIHBlcmZvcm1FbnRlcihub2RlLCBtb3VudGluZykge1xuICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgdmFyIGVudGVyID0gdGhpcy5wcm9wcy5lbnRlcjtcbiAgICB2YXIgYXBwZWFyaW5nID0gdGhpcy5jb250ZXh0LnRyYW5zaXRpb25Hcm91cCA/IHRoaXMuY29udGV4dC50cmFuc2l0aW9uR3JvdXAuaXNNb3VudGluZyA6IG1vdW50aW5nO1xuICAgIHZhciB0aW1lb3V0cyA9IHRoaXMuZ2V0VGltZW91dHMoKTtcbiAgICB2YXIgZW50ZXJUaW1lb3V0ID0gYXBwZWFyaW5nID8gdGltZW91dHMuYXBwZWFyIDogdGltZW91dHMuZW50ZXI7IC8vIG5vIGVudGVyIGFuaW1hdGlvbiBza2lwIHJpZ2h0IHRvIEVOVEVSRURcbiAgICAvLyBpZiB3ZSBhcmUgbW91bnRpbmcgYW5kIHJ1bm5pbmcgdGhpcyBpdCBtZWFucyBhcHBlYXIgX211c3RfIGJlIHNldFxuXG4gICAgaWYgKCFtb3VudGluZyAmJiAhZW50ZXIpIHtcbiAgICAgIHRoaXMuc2FmZVNldFN0YXRlKHtcbiAgICAgICAgc3RhdHVzOiBFTlRFUkVEXG4gICAgICB9LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIF90aGlzMi5wcm9wcy5vbkVudGVyZWQobm9kZSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnByb3BzLm9uRW50ZXIobm9kZSwgYXBwZWFyaW5nKTtcbiAgICB0aGlzLnNhZmVTZXRTdGF0ZSh7XG4gICAgICBzdGF0dXM6IEVOVEVSSU5HXG4gICAgfSwgZnVuY3Rpb24gKCkge1xuICAgICAgX3RoaXMyLnByb3BzLm9uRW50ZXJpbmcobm9kZSwgYXBwZWFyaW5nKTtcblxuICAgICAgX3RoaXMyLm9uVHJhbnNpdGlvbkVuZChub2RlLCBlbnRlclRpbWVvdXQsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgX3RoaXMyLnNhZmVTZXRTdGF0ZSh7XG4gICAgICAgICAgc3RhdHVzOiBFTlRFUkVEXG4gICAgICAgIH0sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBfdGhpczIucHJvcHMub25FbnRlcmVkKG5vZGUsIGFwcGVhcmluZyk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH07XG5cbiAgX3Byb3RvLnBlcmZvcm1FeGl0ID0gZnVuY3Rpb24gcGVyZm9ybUV4aXQobm9kZSkge1xuICAgIHZhciBfdGhpczMgPSB0aGlzO1xuXG4gICAgdmFyIGV4aXQgPSB0aGlzLnByb3BzLmV4aXQ7XG4gICAgdmFyIHRpbWVvdXRzID0gdGhpcy5nZXRUaW1lb3V0cygpOyAvLyBubyBleGl0IGFuaW1hdGlvbiBza2lwIHJpZ2h0IHRvIEVYSVRFRFxuXG4gICAgaWYgKCFleGl0KSB7XG4gICAgICB0aGlzLnNhZmVTZXRTdGF0ZSh7XG4gICAgICAgIHN0YXR1czogRVhJVEVEXG4gICAgICB9LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIF90aGlzMy5wcm9wcy5vbkV4aXRlZChub2RlKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucHJvcHMub25FeGl0KG5vZGUpO1xuICAgIHRoaXMuc2FmZVNldFN0YXRlKHtcbiAgICAgIHN0YXR1czogRVhJVElOR1xuICAgIH0sIGZ1bmN0aW9uICgpIHtcbiAgICAgIF90aGlzMy5wcm9wcy5vbkV4aXRpbmcobm9kZSk7XG5cbiAgICAgIF90aGlzMy5vblRyYW5zaXRpb25FbmQobm9kZSwgdGltZW91dHMuZXhpdCwgZnVuY3Rpb24gKCkge1xuICAgICAgICBfdGhpczMuc2FmZVNldFN0YXRlKHtcbiAgICAgICAgICBzdGF0dXM6IEVYSVRFRFxuICAgICAgICB9LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgX3RoaXMzLnByb3BzLm9uRXhpdGVkKG5vZGUpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9O1xuXG4gIF9wcm90by5jYW5jZWxOZXh0Q2FsbGJhY2sgPSBmdW5jdGlvbiBjYW5jZWxOZXh0Q2FsbGJhY2soKSB7XG4gICAgaWYgKHRoaXMubmV4dENhbGxiYWNrICE9PSBudWxsKSB7XG4gICAgICB0aGlzLm5leHRDYWxsYmFjay5jYW5jZWwoKTtcbiAgICAgIHRoaXMubmV4dENhbGxiYWNrID0gbnVsbDtcbiAgICB9XG4gIH07XG5cbiAgX3Byb3RvLnNhZmVTZXRTdGF0ZSA9IGZ1bmN0aW9uIHNhZmVTZXRTdGF0ZShuZXh0U3RhdGUsIGNhbGxiYWNrKSB7XG4gICAgLy8gVGhpcyBzaG91bGRuJ3QgYmUgbmVjZXNzYXJ5LCBidXQgdGhlcmUgYXJlIHdlaXJkIHJhY2UgY29uZGl0aW9ucyB3aXRoXG4gICAgLy8gc2V0U3RhdGUgY2FsbGJhY2tzIGFuZCB1bm1vdW50aW5nIGluIHRlc3RpbmcsIHNvIGFsd2F5cyBtYWtlIHN1cmUgdGhhdFxuICAgIC8vIHdlIGNhbiBjYW5jZWwgYW55IHBlbmRpbmcgc2V0U3RhdGUgY2FsbGJhY2tzIGFmdGVyIHdlIHVubW91bnQuXG4gICAgY2FsbGJhY2sgPSB0aGlzLnNldE5leHRDYWxsYmFjayhjYWxsYmFjayk7XG4gICAgdGhpcy5zZXRTdGF0ZShuZXh0U3RhdGUsIGNhbGxiYWNrKTtcbiAgfTtcblxuICBfcHJvdG8uc2V0TmV4dENhbGxiYWNrID0gZnVuY3Rpb24gc2V0TmV4dENhbGxiYWNrKGNhbGxiYWNrKSB7XG4gICAgdmFyIF90aGlzNCA9IHRoaXM7XG5cbiAgICB2YXIgYWN0aXZlID0gdHJ1ZTtcblxuICAgIHRoaXMubmV4dENhbGxiYWNrID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICBpZiAoYWN0aXZlKSB7XG4gICAgICAgIGFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICBfdGhpczQubmV4dENhbGxiYWNrID0gbnVsbDtcbiAgICAgICAgY2FsbGJhY2soZXZlbnQpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB0aGlzLm5leHRDYWxsYmFjay5jYW5jZWwgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBhY3RpdmUgPSBmYWxzZTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMubmV4dENhbGxiYWNrO1xuICB9O1xuXG4gIF9wcm90by5vblRyYW5zaXRpb25FbmQgPSBmdW5jdGlvbiBvblRyYW5zaXRpb25FbmQobm9kZSwgdGltZW91dCwgaGFuZGxlcikge1xuICAgIHRoaXMuc2V0TmV4dENhbGxiYWNrKGhhbmRsZXIpO1xuICAgIHZhciBkb2VzTm90SGF2ZVRpbWVvdXRPckxpc3RlbmVyID0gdGltZW91dCA9PSBudWxsICYmICF0aGlzLnByb3BzLmFkZEVuZExpc3RlbmVyO1xuXG4gICAgaWYgKCFub2RlIHx8IGRvZXNOb3RIYXZlVGltZW91dE9yTGlzdGVuZXIpIHtcbiAgICAgIHNldFRpbWVvdXQodGhpcy5uZXh0Q2FsbGJhY2ssIDApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByb3BzLmFkZEVuZExpc3RlbmVyKSB7XG4gICAgICB0aGlzLnByb3BzLmFkZEVuZExpc3RlbmVyKG5vZGUsIHRoaXMubmV4dENhbGxiYWNrKTtcbiAgICB9XG5cbiAgICBpZiAodGltZW91dCAhPSBudWxsKSB7XG4gICAgICBzZXRUaW1lb3V0KHRoaXMubmV4dENhbGxiYWNrLCB0aW1lb3V0KTtcbiAgICB9XG4gIH07XG5cbiAgX3Byb3RvLnJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICB2YXIgc3RhdHVzID0gdGhpcy5zdGF0ZS5zdGF0dXM7XG5cbiAgICBpZiAoc3RhdHVzID09PSBVTk1PVU5URUQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHZhciBfdGhpcyRwcm9wcyA9IHRoaXMucHJvcHMsXG4gICAgICAgIGNoaWxkcmVuID0gX3RoaXMkcHJvcHMuY2hpbGRyZW4sXG4gICAgICAgIGNoaWxkUHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShfdGhpcyRwcm9wcywgW1wiY2hpbGRyZW5cIl0pOyAvLyBmaWx0ZXIgcHJvcHMgZm9yIFRyYW5zdGl0aW9uXG5cblxuICAgIGRlbGV0ZSBjaGlsZFByb3BzLmluO1xuICAgIGRlbGV0ZSBjaGlsZFByb3BzLm1vdW50T25FbnRlcjtcbiAgICBkZWxldGUgY2hpbGRQcm9wcy51bm1vdW50T25FeGl0O1xuICAgIGRlbGV0ZSBjaGlsZFByb3BzLmFwcGVhcjtcbiAgICBkZWxldGUgY2hpbGRQcm9wcy5lbnRlcjtcbiAgICBkZWxldGUgY2hpbGRQcm9wcy5leGl0O1xuICAgIGRlbGV0ZSBjaGlsZFByb3BzLnRpbWVvdXQ7XG4gICAgZGVsZXRlIGNoaWxkUHJvcHMuYWRkRW5kTGlzdGVuZXI7XG4gICAgZGVsZXRlIGNoaWxkUHJvcHMub25FbnRlcjtcbiAgICBkZWxldGUgY2hpbGRQcm9wcy5vbkVudGVyaW5nO1xuICAgIGRlbGV0ZSBjaGlsZFByb3BzLm9uRW50ZXJlZDtcbiAgICBkZWxldGUgY2hpbGRQcm9wcy5vbkV4aXQ7XG4gICAgZGVsZXRlIGNoaWxkUHJvcHMub25FeGl0aW5nO1xuICAgIGRlbGV0ZSBjaGlsZFByb3BzLm9uRXhpdGVkO1xuXG4gICAgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIGNoaWxkcmVuKHN0YXR1cywgY2hpbGRQcm9wcyk7XG4gICAgfVxuXG4gICAgdmFyIGNoaWxkID0gX3JlYWN0LmRlZmF1bHQuQ2hpbGRyZW4ub25seShjaGlsZHJlbik7XG5cbiAgICByZXR1cm4gX3JlYWN0LmRlZmF1bHQuY2xvbmVFbGVtZW50KGNoaWxkLCBjaGlsZFByb3BzKTtcbiAgfTtcblxuICByZXR1cm4gVHJhbnNpdGlvbjtcbn0oX3JlYWN0LmRlZmF1bHQuQ29tcG9uZW50KTtcblxuVHJhbnNpdGlvbi5jb250ZXh0VHlwZXMgPSB7XG4gIHRyYW5zaXRpb25Hcm91cDogUHJvcFR5cGVzLm9iamVjdFxufTtcblRyYW5zaXRpb24uY2hpbGRDb250ZXh0VHlwZXMgPSB7XG4gIHRyYW5zaXRpb25Hcm91cDogZnVuY3Rpb24gdHJhbnNpdGlvbkdyb3VwKCkge31cbn07XG5UcmFuc2l0aW9uLnByb3BUeXBlcyA9IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IHtcbiAgLyoqXG4gICAqIEEgYGZ1bmN0aW9uYCBjaGlsZCBjYW4gYmUgdXNlZCBpbnN0ZWFkIG9mIGEgUmVhY3QgZWxlbWVudC4gVGhpcyBmdW5jdGlvbiBpc1xuICAgKiBjYWxsZWQgd2l0aCB0aGUgY3VycmVudCB0cmFuc2l0aW9uIHN0YXR1cyAoYCdlbnRlcmluZydgLCBgJ2VudGVyZWQnYCxcbiAgICogYCdleGl0aW5nJ2AsIGAnZXhpdGVkJ2AsIGAndW5tb3VudGVkJ2ApLCB3aGljaCBjYW4gYmUgdXNlZCB0byBhcHBseSBjb250ZXh0XG4gICAqIHNwZWNpZmljIHByb3BzIHRvIGEgY29tcG9uZW50LlxuICAgKlxuICAgKiBgYGBqc3hcbiAgICogPFRyYW5zaXRpb24gaW49e3RoaXMuc3RhdGUuaW59IHRpbWVvdXQ9ezE1MH0+XG4gICAqICAge3N0YXRlID0+IChcbiAgICogICAgIDxNeUNvbXBvbmVudCBjbGFzc05hbWU9e2BmYWRlIGZhZGUtJHtzdGF0ZX1gfSAvPlxuICAgKiAgICl9XG4gICAqIDwvVHJhbnNpdGlvbj5cbiAgICogYGBgXG4gICAqL1xuICBjaGlsZHJlbjogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCwgUHJvcFR5cGVzLmVsZW1lbnQuaXNSZXF1aXJlZF0pLmlzUmVxdWlyZWQsXG5cbiAgLyoqXG4gICAqIFNob3cgdGhlIGNvbXBvbmVudDsgdHJpZ2dlcnMgdGhlIGVudGVyIG9yIGV4aXQgc3RhdGVzXG4gICAqL1xuICBpbjogUHJvcFR5cGVzLmJvb2wsXG5cbiAgLyoqXG4gICAqIEJ5IGRlZmF1bHQgdGhlIGNoaWxkIGNvbXBvbmVudCBpcyBtb3VudGVkIGltbWVkaWF0ZWx5IGFsb25nIHdpdGhcbiAgICogdGhlIHBhcmVudCBgVHJhbnNpdGlvbmAgY29tcG9uZW50LiBJZiB5b3Ugd2FudCB0byBcImxhenkgbW91bnRcIiB0aGUgY29tcG9uZW50IG9uIHRoZVxuICAgKiBmaXJzdCBgaW49e3RydWV9YCB5b3UgY2FuIHNldCBgbW91bnRPbkVudGVyYC4gQWZ0ZXIgdGhlIGZpcnN0IGVudGVyIHRyYW5zaXRpb24gdGhlIGNvbXBvbmVudCB3aWxsIHN0YXlcbiAgICogbW91bnRlZCwgZXZlbiBvbiBcImV4aXRlZFwiLCB1bmxlc3MgeW91IGFsc28gc3BlY2lmeSBgdW5tb3VudE9uRXhpdGAuXG4gICAqL1xuICBtb3VudE9uRW50ZXI6IFByb3BUeXBlcy5ib29sLFxuXG4gIC8qKlxuICAgKiBCeSBkZWZhdWx0IHRoZSBjaGlsZCBjb21wb25lbnQgc3RheXMgbW91bnRlZCBhZnRlciBpdCByZWFjaGVzIHRoZSBgJ2V4aXRlZCdgIHN0YXRlLlxuICAgKiBTZXQgYHVubW91bnRPbkV4aXRgIGlmIHlvdSdkIHByZWZlciB0byB1bm1vdW50IHRoZSBjb21wb25lbnQgYWZ0ZXIgaXQgZmluaXNoZXMgZXhpdGluZy5cbiAgICovXG4gIHVubW91bnRPbkV4aXQ6IFByb3BUeXBlcy5ib29sLFxuXG4gIC8qKlxuICAgKiBOb3JtYWxseSBhIGNvbXBvbmVudCBpcyBub3QgdHJhbnNpdGlvbmVkIGlmIGl0IGlzIHNob3duIHdoZW4gdGhlIGA8VHJhbnNpdGlvbj5gIGNvbXBvbmVudCBtb3VudHMuXG4gICAqIElmIHlvdSB3YW50IHRvIHRyYW5zaXRpb24gb24gdGhlIGZpcnN0IG1vdW50IHNldCBgYXBwZWFyYCB0byBgdHJ1ZWAsIGFuZCB0aGVcbiAgICogY29tcG9uZW50IHdpbGwgdHJhbnNpdGlvbiBpbiBhcyBzb29uIGFzIHRoZSBgPFRyYW5zaXRpb24+YCBtb3VudHMuXG4gICAqXG4gICAqID4gTm90ZTogdGhlcmUgYXJlIG5vIHNwZWNpZmljIFwiYXBwZWFyXCIgc3RhdGVzLiBgYXBwZWFyYCBvbmx5IGFkZHMgYW4gYWRkaXRpb25hbCBgZW50ZXJgIHRyYW5zaXRpb24uXG4gICAqL1xuICBhcHBlYXI6IFByb3BUeXBlcy5ib29sLFxuXG4gIC8qKlxuICAgKiBFbmFibGUgb3IgZGlzYWJsZSBlbnRlciB0cmFuc2l0aW9ucy5cbiAgICovXG4gIGVudGVyOiBQcm9wVHlwZXMuYm9vbCxcblxuICAvKipcbiAgICogRW5hYmxlIG9yIGRpc2FibGUgZXhpdCB0cmFuc2l0aW9ucy5cbiAgICovXG4gIGV4aXQ6IFByb3BUeXBlcy5ib29sLFxuXG4gIC8qKlxuICAgKiBUaGUgZHVyYXRpb24gb2YgdGhlIHRyYW5zaXRpb24sIGluIG1pbGxpc2Vjb25kcy5cbiAgICogUmVxdWlyZWQgdW5sZXNzIGBhZGRFbmRMaXN0ZW5lcmAgaXMgcHJvdmlkZWQuXG4gICAqXG4gICAqIFlvdSBtYXkgc3BlY2lmeSBhIHNpbmdsZSB0aW1lb3V0IGZvciBhbGwgdHJhbnNpdGlvbnM6XG4gICAqXG4gICAqIGBgYGpzeFxuICAgKiB0aW1lb3V0PXs1MDB9XG4gICAqIGBgYFxuICAgKlxuICAgKiBvciBpbmRpdmlkdWFsbHk6XG4gICAqXG4gICAqIGBgYGpzeFxuICAgKiB0aW1lb3V0PXt7XG4gICAqICBhcHBlYXI6IDUwMCxcbiAgICogIGVudGVyOiAzMDAsXG4gICAqICBleGl0OiA1MDAsXG4gICAqIH19XG4gICAqIGBgYFxuICAgKlxuICAgKiAtIGBhcHBlYXJgIGRlZmF1bHRzIHRvIHRoZSB2YWx1ZSBvZiBgZW50ZXJgXG4gICAqIC0gYGVudGVyYCBkZWZhdWx0cyB0byBgMGBcbiAgICogLSBgZXhpdGAgZGVmYXVsdHMgdG8gYDBgXG4gICAqXG4gICAqIEB0eXBlIHtudW1iZXIgfCB7IGVudGVyPzogbnVtYmVyLCBleGl0PzogbnVtYmVyLCBhcHBlYXI/OiBudW1iZXIgfX1cbiAgICovXG4gIHRpbWVvdXQ6IGZ1bmN0aW9uIHRpbWVvdXQocHJvcHMpIHtcbiAgICB2YXIgcHQgPSBfUHJvcFR5cGVzLnRpbWVvdXRzU2hhcGU7XG4gICAgaWYgKCFwcm9wcy5hZGRFbmRMaXN0ZW5lcikgcHQgPSBwdC5pc1JlcXVpcmVkO1xuXG4gICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiA+IDEgPyBfbGVuIC0gMSA6IDApLCBfa2V5ID0gMTsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgICAgYXJnc1tfa2V5IC0gMV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgfVxuXG4gICAgcmV0dXJuIHB0LmFwcGx5KHZvaWQgMCwgW3Byb3BzXS5jb25jYXQoYXJncykpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBBZGQgYSBjdXN0b20gdHJhbnNpdGlvbiBlbmQgdHJpZ2dlci4gQ2FsbGVkIHdpdGggdGhlIHRyYW5zaXRpb25pbmdcbiAgICogRE9NIG5vZGUgYW5kIGEgYGRvbmVgIGNhbGxiYWNrLiBBbGxvd3MgZm9yIG1vcmUgZmluZSBncmFpbmVkIHRyYW5zaXRpb24gZW5kXG4gICAqIGxvZ2ljLiAqKk5vdGU6KiogVGltZW91dHMgYXJlIHN0aWxsIHVzZWQgYXMgYSBmYWxsYmFjayBpZiBwcm92aWRlZC5cbiAgICpcbiAgICogYGBganN4XG4gICAqIGFkZEVuZExpc3RlbmVyPXsobm9kZSwgZG9uZSkgPT4ge1xuICAgKiAgIC8vIHVzZSB0aGUgY3NzIHRyYW5zaXRpb25lbmQgZXZlbnQgdG8gbWFyayB0aGUgZmluaXNoIG9mIGEgdHJhbnNpdGlvblxuICAgKiAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcigndHJhbnNpdGlvbmVuZCcsIGRvbmUsIGZhbHNlKTtcbiAgICogfX1cbiAgICogYGBgXG4gICAqL1xuICBhZGRFbmRMaXN0ZW5lcjogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIGZpcmVkIGJlZm9yZSB0aGUgXCJlbnRlcmluZ1wiIHN0YXR1cyBpcyBhcHBsaWVkLiBBbiBleHRyYSBwYXJhbWV0ZXJcbiAgICogYGlzQXBwZWFyaW5nYCBpcyBzdXBwbGllZCB0byBpbmRpY2F0ZSBpZiB0aGUgZW50ZXIgc3RhZ2UgaXMgb2NjdXJyaW5nIG9uIHRoZSBpbml0aWFsIG1vdW50XG4gICAqXG4gICAqIEB0eXBlIEZ1bmN0aW9uKG5vZGU6IEh0bWxFbGVtZW50LCBpc0FwcGVhcmluZzogYm9vbCkgLT4gdm9pZFxuICAgKi9cbiAgb25FbnRlcjogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIGZpcmVkIGFmdGVyIHRoZSBcImVudGVyaW5nXCIgc3RhdHVzIGlzIGFwcGxpZWQuIEFuIGV4dHJhIHBhcmFtZXRlclxuICAgKiBgaXNBcHBlYXJpbmdgIGlzIHN1cHBsaWVkIHRvIGluZGljYXRlIGlmIHRoZSBlbnRlciBzdGFnZSBpcyBvY2N1cnJpbmcgb24gdGhlIGluaXRpYWwgbW91bnRcbiAgICpcbiAgICogQHR5cGUgRnVuY3Rpb24obm9kZTogSHRtbEVsZW1lbnQsIGlzQXBwZWFyaW5nOiBib29sKVxuICAgKi9cbiAgb25FbnRlcmluZzogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIGZpcmVkIGFmdGVyIHRoZSBcImVudGVyZWRcIiBzdGF0dXMgaXMgYXBwbGllZC4gQW4gZXh0cmEgcGFyYW1ldGVyXG4gICAqIGBpc0FwcGVhcmluZ2AgaXMgc3VwcGxpZWQgdG8gaW5kaWNhdGUgaWYgdGhlIGVudGVyIHN0YWdlIGlzIG9jY3VycmluZyBvbiB0aGUgaW5pdGlhbCBtb3VudFxuICAgKlxuICAgKiBAdHlwZSBGdW5jdGlvbihub2RlOiBIdG1sRWxlbWVudCwgaXNBcHBlYXJpbmc6IGJvb2wpIC0+IHZvaWRcbiAgICovXG4gIG9uRW50ZXJlZDogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIGZpcmVkIGJlZm9yZSB0aGUgXCJleGl0aW5nXCIgc3RhdHVzIGlzIGFwcGxpZWQuXG4gICAqXG4gICAqIEB0eXBlIEZ1bmN0aW9uKG5vZGU6IEh0bWxFbGVtZW50KSAtPiB2b2lkXG4gICAqL1xuICBvbkV4aXQ6IFByb3BUeXBlcy5mdW5jLFxuXG4gIC8qKlxuICAgKiBDYWxsYmFjayBmaXJlZCBhZnRlciB0aGUgXCJleGl0aW5nXCIgc3RhdHVzIGlzIGFwcGxpZWQuXG4gICAqXG4gICAqIEB0eXBlIEZ1bmN0aW9uKG5vZGU6IEh0bWxFbGVtZW50KSAtPiB2b2lkXG4gICAqL1xuICBvbkV4aXRpbmc6IFByb3BUeXBlcy5mdW5jLFxuXG4gIC8qKlxuICAgKiBDYWxsYmFjayBmaXJlZCBhZnRlciB0aGUgXCJleGl0ZWRcIiBzdGF0dXMgaXMgYXBwbGllZC5cbiAgICpcbiAgICogQHR5cGUgRnVuY3Rpb24obm9kZTogSHRtbEVsZW1lbnQpIC0+IHZvaWRcbiAgICovXG4gIG9uRXhpdGVkOiBQcm9wVHlwZXMuZnVuYyAvLyBOYW1lIHRoZSBmdW5jdGlvbiBzbyBpdCBpcyBjbGVhcmVyIGluIHRoZSBkb2N1bWVudGF0aW9uXG5cbn0gOiB7fTtcblxuZnVuY3Rpb24gbm9vcCgpIHt9XG5cblRyYW5zaXRpb24uZGVmYXVsdFByb3BzID0ge1xuICBpbjogZmFsc2UsXG4gIG1vdW50T25FbnRlcjogZmFsc2UsXG4gIHVubW91bnRPbkV4aXQ6IGZhbHNlLFxuICBhcHBlYXI6IGZhbHNlLFxuICBlbnRlcjogdHJ1ZSxcbiAgZXhpdDogdHJ1ZSxcbiAgb25FbnRlcjogbm9vcCxcbiAgb25FbnRlcmluZzogbm9vcCxcbiAgb25FbnRlcmVkOiBub29wLFxuICBvbkV4aXQ6IG5vb3AsXG4gIG9uRXhpdGluZzogbm9vcCxcbiAgb25FeGl0ZWQ6IG5vb3Bcbn07XG5UcmFuc2l0aW9uLlVOTU9VTlRFRCA9IDA7XG5UcmFuc2l0aW9uLkVYSVRFRCA9IDE7XG5UcmFuc2l0aW9uLkVOVEVSSU5HID0gMjtcblRyYW5zaXRpb24uRU5URVJFRCA9IDM7XG5UcmFuc2l0aW9uLkVYSVRJTkcgPSA0O1xuXG52YXIgX2RlZmF1bHQgPSAoMCwgX3JlYWN0TGlmZWN5Y2xlc0NvbXBhdC5wb2x5ZmlsbCkoVHJhbnNpdGlvbik7XG5cbmV4cG9ydHMuZGVmYXVsdCA9IF9kZWZhdWx0OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-modal-video/node_modules/react-transition-group/Transition.js\n"); + +/***/ }), + +/***/ "./node_modules/react-modal-video/node_modules/react-transition-group/utils/PropTypes.js": +/*!***********************************************************************************************!*\ + !*** ./node_modules/react-modal-video/node_modules/react-transition-group/utils/PropTypes.js ***! + \***********************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nexports.__esModule = true;\nexports.classNamesShape = exports.timeoutsShape = void 0;\n\nvar _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar timeoutsShape = true ? _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n enter: _propTypes.default.number,\n exit: _propTypes.default.number,\n appear: _propTypes.default.number\n}).isRequired]) : 0;\nexports.timeoutsShape = timeoutsShape;\nvar classNamesShape = true ? _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.shape({\n enter: _propTypes.default.string,\n exit: _propTypes.default.string,\n active: _propTypes.default.string\n}), _propTypes.default.shape({\n enter: _propTypes.default.string,\n enterDone: _propTypes.default.string,\n enterActive: _propTypes.default.string,\n exit: _propTypes.default.string,\n exitDone: _propTypes.default.string,\n exitActive: _propTypes.default.string\n})]) : 0;\nexports.classNamesShape = classNamesShape;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtbW9kYWwtdmlkZW8vbm9kZV9tb2R1bGVzL3JlYWN0LXRyYW5zaXRpb24tZ3JvdXAvdXRpbHMvUHJvcFR5cGVzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLGtCQUFrQjtBQUNsQix1QkFBdUIsR0FBRyxxQkFBcUI7O0FBRS9DLHdDQUF3QyxtQkFBTyxDQUFDLHNEQUFZOztBQUU1RCx1Q0FBdUMsdUNBQXVDOztBQUU5RSxvQkFBb0IsS0FBcUM7QUFDekQ7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxpQkFBaUIsQ0FBSTtBQUN0QixxQkFBcUI7QUFDckIsc0JBQXNCLEtBQXFDO0FBQzNEO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLE1BQU0sQ0FBSTtBQUNYLHVCQUF1QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmVhY3QtbW9kYWwtdmlkZW8vbm9kZV9tb2R1bGVzL3JlYWN0LXRyYW5zaXRpb24tZ3JvdXAvdXRpbHMvUHJvcFR5cGVzLmpzP2M5ZWIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLmNsYXNzTmFtZXNTaGFwZSA9IGV4cG9ydHMudGltZW91dHNTaGFwZSA9IHZvaWQgMDtcblxudmFyIF9wcm9wVHlwZXMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJwcm9wLXR5cGVzXCIpKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxudmFyIHRpbWVvdXRzU2hhcGUgPSBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gX3Byb3BUeXBlcy5kZWZhdWx0Lm9uZU9mVHlwZShbX3Byb3BUeXBlcy5kZWZhdWx0Lm51bWJlciwgX3Byb3BUeXBlcy5kZWZhdWx0LnNoYXBlKHtcbiAgZW50ZXI6IF9wcm9wVHlwZXMuZGVmYXVsdC5udW1iZXIsXG4gIGV4aXQ6IF9wcm9wVHlwZXMuZGVmYXVsdC5udW1iZXIsXG4gIGFwcGVhcjogX3Byb3BUeXBlcy5kZWZhdWx0Lm51bWJlclxufSkuaXNSZXF1aXJlZF0pIDogbnVsbDtcbmV4cG9ydHMudGltZW91dHNTaGFwZSA9IHRpbWVvdXRzU2hhcGU7XG52YXIgY2xhc3NOYW1lc1NoYXBlID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IF9wcm9wVHlwZXMuZGVmYXVsdC5vbmVPZlR5cGUoW19wcm9wVHlwZXMuZGVmYXVsdC5zdHJpbmcsIF9wcm9wVHlwZXMuZGVmYXVsdC5zaGFwZSh7XG4gIGVudGVyOiBfcHJvcFR5cGVzLmRlZmF1bHQuc3RyaW5nLFxuICBleGl0OiBfcHJvcFR5cGVzLmRlZmF1bHQuc3RyaW5nLFxuICBhY3RpdmU6IF9wcm9wVHlwZXMuZGVmYXVsdC5zdHJpbmdcbn0pLCBfcHJvcFR5cGVzLmRlZmF1bHQuc2hhcGUoe1xuICBlbnRlcjogX3Byb3BUeXBlcy5kZWZhdWx0LnN0cmluZyxcbiAgZW50ZXJEb25lOiBfcHJvcFR5cGVzLmRlZmF1bHQuc3RyaW5nLFxuICBlbnRlckFjdGl2ZTogX3Byb3BUeXBlcy5kZWZhdWx0LnN0cmluZyxcbiAgZXhpdDogX3Byb3BUeXBlcy5kZWZhdWx0LnN0cmluZyxcbiAgZXhpdERvbmU6IF9wcm9wVHlwZXMuZGVmYXVsdC5zdHJpbmcsXG4gIGV4aXRBY3RpdmU6IF9wcm9wVHlwZXMuZGVmYXVsdC5zdHJpbmdcbn0pXSkgOiBudWxsO1xuZXhwb3J0cy5jbGFzc05hbWVzU2hhcGUgPSBjbGFzc05hbWVzU2hhcGU7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/react-modal-video/node_modules/react-transition-group/utils/PropTypes.js\n"); + +/***/ }), + +/***/ "./node_modules/react-slick/lib/arrows.js": +/*!************************************************!*\ + !*** ./node_modules/react-slick/lib/arrows.js ***! + \************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.NextArrow = exports.PrevArrow = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _classnames = _interopRequireDefault(__webpack_require__(/*! classnames */ \"./node_modules/classnames/index.js\"));\n\nvar _innerSliderUtils = __webpack_require__(/*! ./utils/innerSliderUtils */ \"./node_modules/react-slick/lib/utils/innerSliderUtils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar PrevArrow = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(PrevArrow, _React$PureComponent);\n\n var _super = _createSuper(PrevArrow);\n\n function PrevArrow() {\n _classCallCheck(this, PrevArrow);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(PrevArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var prevClasses = {\n \"slick-arrow\": true,\n \"slick-prev\": true\n };\n var prevHandler = this.clickHandler.bind(this, {\n message: \"previous\"\n });\n\n if (!this.props.infinite && (this.props.currentSlide === 0 || this.props.slideCount <= this.props.slidesToShow)) {\n prevClasses[\"slick-disabled\"] = true;\n prevHandler = null;\n }\n\n var prevArrowProps = {\n key: \"0\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(prevClasses),\n style: {\n display: \"block\"\n },\n onClick: prevHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var prevArrow;\n\n if (this.props.prevArrow) {\n prevArrow = /*#__PURE__*/_react[\"default\"].cloneElement(this.props.prevArrow, _objectSpread(_objectSpread({}, prevArrowProps), customProps));\n } else {\n prevArrow = /*#__PURE__*/_react[\"default\"].createElement(\"button\", _extends({\n key: \"0\",\n type: \"button\"\n }, prevArrowProps), \" \", \"Previous\");\n }\n\n return prevArrow;\n }\n }]);\n\n return PrevArrow;\n}(_react[\"default\"].PureComponent);\n\nexports.PrevArrow = PrevArrow;\n\nvar NextArrow = /*#__PURE__*/function (_React$PureComponent2) {\n _inherits(NextArrow, _React$PureComponent2);\n\n var _super2 = _createSuper(NextArrow);\n\n function NextArrow() {\n _classCallCheck(this, NextArrow);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(NextArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var nextClasses = {\n \"slick-arrow\": true,\n \"slick-next\": true\n };\n var nextHandler = this.clickHandler.bind(this, {\n message: \"next\"\n });\n\n if (!(0, _innerSliderUtils.canGoNext)(this.props)) {\n nextClasses[\"slick-disabled\"] = true;\n nextHandler = null;\n }\n\n var nextArrowProps = {\n key: \"1\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(nextClasses),\n style: {\n display: \"block\"\n },\n onClick: nextHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var nextArrow;\n\n if (this.props.nextArrow) {\n nextArrow = /*#__PURE__*/_react[\"default\"].cloneElement(this.props.nextArrow, _objectSpread(_objectSpread({}, nextArrowProps), customProps));\n } else {\n nextArrow = /*#__PURE__*/_react[\"default\"].createElement(\"button\", _extends({\n key: \"1\",\n type: \"button\"\n }, nextArrowProps), \" \", \"Next\");\n }\n\n return nextArrow;\n }\n }]);\n\n return NextArrow;\n}(_react[\"default\"].PureComponent);\n\nexports.NextArrow = NextArrow;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2xpY2svbGliL2Fycm93cy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixpQkFBaUIsR0FBRyxpQkFBaUI7O0FBRXJDLG9DQUFvQyxtQkFBTyxDQUFDLDRDQUFPOztBQUVuRCx5Q0FBeUMsbUJBQU8sQ0FBQyxzREFBWTs7QUFFN0Qsd0JBQXdCLG1CQUFPLENBQUMsMEZBQTBCOztBQUUxRCx1Q0FBdUMsdUNBQXVDOztBQUU5RSx3QkFBd0IsMkJBQTJCLDJFQUEyRSxrQ0FBa0Msd0JBQXdCLE9BQU8sa0NBQWtDLG1JQUFtSTs7QUFFcFcsc0JBQXNCLGdEQUFnRCxnQkFBZ0Isc0JBQXNCLE9BQU8sMkJBQTJCLDBCQUEwQix5REFBeUQsaUNBQWlDLGtCQUFrQjs7QUFFcFIsMkNBQTJDLGdDQUFnQyxvQ0FBb0Msb0RBQW9ELDhEQUE4RCxpRUFBaUUsR0FBRyxrQ0FBa0M7O0FBRXZVLGlDQUFpQyxnQkFBZ0Isc0JBQXNCLE9BQU8sdURBQXVELGFBQWEsdURBQXVELDRDQUE0QyxLQUFLLDZDQUE2Qyw2RUFBNkUsT0FBTyxpREFBaUQsbUZBQW1GLE9BQU87O0FBRXRnQiw0Q0FBNEMsa0JBQWtCLGtDQUFrQyxvRUFBb0UsS0FBSyxPQUFPLG9CQUFvQjs7QUFFcE0sa0RBQWtELDBDQUEwQzs7QUFFNUYsNENBQTRDLGdCQUFnQixrQkFBa0IsT0FBTywyQkFBMkIsd0RBQXdELGdDQUFnQyx1REFBdUQ7O0FBRS9QLDhEQUE4RCxzRUFBc0UsOERBQThEOztBQUVsTSwyQ0FBMkMsK0RBQStELDZFQUE2RSx5RUFBeUUsZUFBZSx1REFBdUQsR0FBRzs7QUFFelUsaUNBQWlDLDRFQUE0RSxpQkFBaUIsYUFBYTs7QUFFM0ksaUNBQWlDLDZEQUE2RCx5Q0FBeUMsOENBQThDLGlDQUFpQyxtREFBbUQsMkRBQTJELE9BQU8seUNBQXlDOztBQUVwWCxrREFBa0QsMEVBQTBFLGVBQWU7O0FBRTNJLHdDQUF3Qyx1QkFBdUIseUZBQXlGOztBQUV4Six1Q0FBdUMsd0VBQXdFLDBDQUEwQyw4Q0FBOEMsTUFBTSx1RUFBdUUsSUFBSSxlQUFlLFlBQVk7O0FBRW5ULDhCQUE4QixnR0FBZ0csbURBQW1EOztBQUVqTDtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTzs7QUFFUDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxvSEFBb0g7QUFDcEgsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDs7QUFFQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBLENBQUM7O0FBRUQsaUJBQWlCOztBQUVqQjtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTzs7QUFFUDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxvSEFBb0g7QUFDcEgsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDs7QUFFQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBLENBQUM7O0FBRUQsaUJBQWlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zbGljay9saWIvYXJyb3dzLmpzPzY2ODciXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLk5leHRBcnJvdyA9IGV4cG9ydHMuUHJldkFycm93ID0gdm9pZCAwO1xuXG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX2NsYXNzbmFtZXMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJjbGFzc25hbWVzXCIpKTtcblxudmFyIF9pbm5lclNsaWRlclV0aWxzID0gcmVxdWlyZShcIi4vdXRpbHMvaW5uZXJTbGlkZXJVdGlsc1wiKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjsgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiKSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfTsgfSBlbHNlIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9OyB9IHJldHVybiBfdHlwZW9mKG9iaik7IH1cblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cblxuZnVuY3Rpb24gb3duS2V5cyhvYmplY3QsIGVudW1lcmFibGVPbmx5KSB7IHZhciBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KTsgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHsgdmFyIHN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG9iamVjdCk7IGlmIChlbnVtZXJhYmxlT25seSkgc3ltYm9scyA9IHN5bWJvbHMuZmlsdGVyKGZ1bmN0aW9uIChzeW0pIHsgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LCBzeW0pLmVudW1lcmFibGU7IH0pOyBrZXlzLnB1c2guYXBwbHkoa2V5cywgc3ltYm9scyk7IH0gcmV0dXJuIGtleXM7IH1cblxuZnVuY3Rpb24gX29iamVjdFNwcmVhZCh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXSAhPSBudWxsID8gYXJndW1lbnRzW2ldIDoge307IGlmIChpICUgMikgeyBvd25LZXlzKE9iamVjdChzb3VyY2UpLCB0cnVlKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsgX2RlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBzb3VyY2Vba2V5XSk7IH0pOyB9IGVsc2UgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoc291cmNlKSk7IH0gZWxzZSB7IG93bktleXMoT2JqZWN0KHNvdXJjZSkpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc291cmNlLCBrZXkpKTsgfSk7IH0gfSByZXR1cm4gdGFyZ2V0OyB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsgaWYgKGtleSBpbiBvYmopIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsgfSBlbHNlIHsgb2JqW2tleV0gPSB2YWx1ZTsgfSByZXR1cm4gb2JqOyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH1cblxuZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIF9zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcyk7IH1cblxuZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgX3NldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IG8uX19wcm90b19fID0gcDsgcmV0dXJuIG87IH07IHJldHVybiBfc2V0UHJvdG90eXBlT2YobywgcCk7IH1cblxuZnVuY3Rpb24gX2NyZWF0ZVN1cGVyKERlcml2ZWQpIHsgdmFyIGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCk7IHJldHVybiBmdW5jdGlvbiBfY3JlYXRlU3VwZXJJbnRlcm5hbCgpIHsgdmFyIFN1cGVyID0gX2dldFByb3RvdHlwZU9mKERlcml2ZWQpLCByZXN1bHQ7IGlmIChoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KSB7IHZhciBOZXdUYXJnZXQgPSBfZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3I7IHJlc3VsdCA9IFJlZmxlY3QuY29uc3RydWN0KFN1cGVyLCBhcmd1bWVudHMsIE5ld1RhcmdldCk7IH0gZWxzZSB7IHJlc3VsdCA9IFN1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH0gcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIHJlc3VsdCk7IH07IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoY2FsbCAmJiAoX3R5cGVvZihjYWxsKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkgeyByZXR1cm4gY2FsbDsgfSByZXR1cm4gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKTsgfVxuXG5mdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpIHsgaWYgKHNlbGYgPT09IHZvaWQgMCkgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIHNlbGY7IH1cblxuZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHsgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiIHx8ICFSZWZsZWN0LmNvbnN0cnVjdCkgcmV0dXJuIGZhbHNlOyBpZiAoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSkgcmV0dXJuIGZhbHNlOyBpZiAodHlwZW9mIFByb3h5ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB0cnVlOyB0cnkgeyBEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFJlZmxlY3QuY29uc3RydWN0KERhdGUsIFtdLCBmdW5jdGlvbiAoKSB7fSkpOyByZXR1cm4gdHJ1ZTsgfSBjYXRjaCAoZSkgeyByZXR1cm4gZmFsc2U7IH0gfVxuXG5mdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyByZXR1cm4gby5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pOyB9OyByZXR1cm4gX2dldFByb3RvdHlwZU9mKG8pOyB9XG5cbnZhciBQcmV2QXJyb3cgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9SZWFjdCRQdXJlQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhQcmV2QXJyb3csIF9SZWFjdCRQdXJlQ29tcG9uZW50KTtcblxuICB2YXIgX3N1cGVyID0gX2NyZWF0ZVN1cGVyKFByZXZBcnJvdyk7XG5cbiAgZnVuY3Rpb24gUHJldkFycm93KCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBQcmV2QXJyb3cpO1xuXG4gICAgcmV0dXJuIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKFByZXZBcnJvdywgW3tcbiAgICBrZXk6IFwiY2xpY2tIYW5kbGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNsaWNrSGFuZGxlcihvcHRpb25zLCBlKSB7XG4gICAgICBpZiAoZSkge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMucHJvcHMuY2xpY2tIYW5kbGVyKG9wdGlvbnMsIGUpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW5kZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgdmFyIHByZXZDbGFzc2VzID0ge1xuICAgICAgICBcInNsaWNrLWFycm93XCI6IHRydWUsXG4gICAgICAgIFwic2xpY2stcHJldlwiOiB0cnVlXG4gICAgICB9O1xuICAgICAgdmFyIHByZXZIYW5kbGVyID0gdGhpcy5jbGlja0hhbmRsZXIuYmluZCh0aGlzLCB7XG4gICAgICAgIG1lc3NhZ2U6IFwicHJldmlvdXNcIlxuICAgICAgfSk7XG5cbiAgICAgIGlmICghdGhpcy5wcm9wcy5pbmZpbml0ZSAmJiAodGhpcy5wcm9wcy5jdXJyZW50U2xpZGUgPT09IDAgfHwgdGhpcy5wcm9wcy5zbGlkZUNvdW50IDw9IHRoaXMucHJvcHMuc2xpZGVzVG9TaG93KSkge1xuICAgICAgICBwcmV2Q2xhc3Nlc1tcInNsaWNrLWRpc2FibGVkXCJdID0gdHJ1ZTtcbiAgICAgICAgcHJldkhhbmRsZXIgPSBudWxsO1xuICAgICAgfVxuXG4gICAgICB2YXIgcHJldkFycm93UHJvcHMgPSB7XG4gICAgICAgIGtleTogXCIwXCIsXG4gICAgICAgIFwiZGF0YS1yb2xlXCI6IFwibm9uZVwiLFxuICAgICAgICBjbGFzc05hbWU6ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKHByZXZDbGFzc2VzKSxcbiAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICBkaXNwbGF5OiBcImJsb2NrXCJcbiAgICAgICAgfSxcbiAgICAgICAgb25DbGljazogcHJldkhhbmRsZXJcbiAgICAgIH07XG4gICAgICB2YXIgY3VzdG9tUHJvcHMgPSB7XG4gICAgICAgIGN1cnJlbnRTbGlkZTogdGhpcy5wcm9wcy5jdXJyZW50U2xpZGUsXG4gICAgICAgIHNsaWRlQ291bnQ6IHRoaXMucHJvcHMuc2xpZGVDb3VudFxuICAgICAgfTtcbiAgICAgIHZhciBwcmV2QXJyb3c7XG5cbiAgICAgIGlmICh0aGlzLnByb3BzLnByZXZBcnJvdykge1xuICAgICAgICBwcmV2QXJyb3cgPSAvKiNfX1BVUkVfXyovX3JlYWN0W1wiZGVmYXVsdFwiXS5jbG9uZUVsZW1lbnQodGhpcy5wcm9wcy5wcmV2QXJyb3csIF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgcHJldkFycm93UHJvcHMpLCBjdXN0b21Qcm9wcykpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcHJldkFycm93ID0gLyojX19QVVJFX18qL19yZWFjdFtcImRlZmF1bHRcIl0uY3JlYXRlRWxlbWVudChcImJ1dHRvblwiLCBfZXh0ZW5kcyh7XG4gICAgICAgICAga2V5OiBcIjBcIixcbiAgICAgICAgICB0eXBlOiBcImJ1dHRvblwiXG4gICAgICAgIH0sIHByZXZBcnJvd1Byb3BzKSwgXCIgXCIsIFwiUHJldmlvdXNcIik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBwcmV2QXJyb3c7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIFByZXZBcnJvdztcbn0oX3JlYWN0W1wiZGVmYXVsdFwiXS5QdXJlQ29tcG9uZW50KTtcblxuZXhwb3J0cy5QcmV2QXJyb3cgPSBQcmV2QXJyb3c7XG5cbnZhciBOZXh0QXJyb3cgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9SZWFjdCRQdXJlQ29tcG9uZW50Mikge1xuICBfaW5oZXJpdHMoTmV4dEFycm93LCBfUmVhY3QkUHVyZUNvbXBvbmVudDIpO1xuXG4gIHZhciBfc3VwZXIyID0gX2NyZWF0ZVN1cGVyKE5leHRBcnJvdyk7XG5cbiAgZnVuY3Rpb24gTmV4dEFycm93KCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBOZXh0QXJyb3cpO1xuXG4gICAgcmV0dXJuIF9zdXBlcjIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhOZXh0QXJyb3csIFt7XG4gICAga2V5OiBcImNsaWNrSGFuZGxlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjbGlja0hhbmRsZXIob3B0aW9ucywgZSkge1xuICAgICAgaWYgKGUpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnByb3BzLmNsaWNrSGFuZGxlcihvcHRpb25zLCBlKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHZhciBuZXh0Q2xhc3NlcyA9IHtcbiAgICAgICAgXCJzbGljay1hcnJvd1wiOiB0cnVlLFxuICAgICAgICBcInNsaWNrLW5leHRcIjogdHJ1ZVxuICAgICAgfTtcbiAgICAgIHZhciBuZXh0SGFuZGxlciA9IHRoaXMuY2xpY2tIYW5kbGVyLmJpbmQodGhpcywge1xuICAgICAgICBtZXNzYWdlOiBcIm5leHRcIlxuICAgICAgfSk7XG5cbiAgICAgIGlmICghKDAsIF9pbm5lclNsaWRlclV0aWxzLmNhbkdvTmV4dCkodGhpcy5wcm9wcykpIHtcbiAgICAgICAgbmV4dENsYXNzZXNbXCJzbGljay1kaXNhYmxlZFwiXSA9IHRydWU7XG4gICAgICAgIG5leHRIYW5kbGVyID0gbnVsbDtcbiAgICAgIH1cblxuICAgICAgdmFyIG5leHRBcnJvd1Byb3BzID0ge1xuICAgICAgICBrZXk6IFwiMVwiLFxuICAgICAgICBcImRhdGEtcm9sZVwiOiBcIm5vbmVcIixcbiAgICAgICAgY2xhc3NOYW1lOiAoMCwgX2NsYXNzbmFtZXNbXCJkZWZhdWx0XCJdKShuZXh0Q2xhc3NlcyksXG4gICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgZGlzcGxheTogXCJibG9ja1wiXG4gICAgICAgIH0sXG4gICAgICAgIG9uQ2xpY2s6IG5leHRIYW5kbGVyXG4gICAgICB9O1xuICAgICAgdmFyIGN1c3RvbVByb3BzID0ge1xuICAgICAgICBjdXJyZW50U2xpZGU6IHRoaXMucHJvcHMuY3VycmVudFNsaWRlLFxuICAgICAgICBzbGlkZUNvdW50OiB0aGlzLnByb3BzLnNsaWRlQ291bnRcbiAgICAgIH07XG4gICAgICB2YXIgbmV4dEFycm93O1xuXG4gICAgICBpZiAodGhpcy5wcm9wcy5uZXh0QXJyb3cpIHtcbiAgICAgICAgbmV4dEFycm93ID0gLyojX19QVVJFX18qL19yZWFjdFtcImRlZmF1bHRcIl0uY2xvbmVFbGVtZW50KHRoaXMucHJvcHMubmV4dEFycm93LCBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIG5leHRBcnJvd1Byb3BzKSwgY3VzdG9tUHJvcHMpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5leHRBcnJvdyA9IC8qI19fUFVSRV9fKi9fcmVhY3RbXCJkZWZhdWx0XCJdLmNyZWF0ZUVsZW1lbnQoXCJidXR0b25cIiwgX2V4dGVuZHMoe1xuICAgICAgICAgIGtleTogXCIxXCIsXG4gICAgICAgICAgdHlwZTogXCJidXR0b25cIlxuICAgICAgICB9LCBuZXh0QXJyb3dQcm9wcyksIFwiIFwiLCBcIk5leHRcIik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBuZXh0QXJyb3c7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIE5leHRBcnJvdztcbn0oX3JlYWN0W1wiZGVmYXVsdFwiXS5QdXJlQ29tcG9uZW50KTtcblxuZXhwb3J0cy5OZXh0QXJyb3cgPSBOZXh0QXJyb3c7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/react-slick/lib/arrows.js\n"); + +/***/ }), + +/***/ "./node_modules/react-slick/lib/default-props.js": +/*!*******************************************************!*\ + !*** ./node_modules/react-slick/lib/default-props.js ***! + \*******************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar defaultProps = {\n accessibility: true,\n adaptiveHeight: false,\n afterChange: null,\n appendDots: function appendDots(dots) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"ul\", {\n style: {\n display: \"block\"\n }\n }, dots);\n },\n arrows: true,\n autoplay: false,\n autoplaySpeed: 3000,\n beforeChange: null,\n centerMode: false,\n centerPadding: \"50px\",\n className: \"\",\n cssEase: \"ease\",\n customPaging: function customPaging(i) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"button\", null, i + 1);\n },\n dots: false,\n dotsClass: \"slick-dots\",\n draggable: true,\n easing: \"linear\",\n edgeFriction: 0.35,\n fade: false,\n focusOnSelect: false,\n infinite: true,\n initialSlide: 0,\n lazyLoad: null,\n nextArrow: null,\n onEdge: null,\n onInit: null,\n onLazyLoadError: null,\n onReInit: null,\n pauseOnDotsHover: false,\n pauseOnFocus: false,\n pauseOnHover: true,\n prevArrow: null,\n responsive: null,\n rows: 1,\n rtl: false,\n slide: \"div\",\n slidesPerRow: 1,\n slidesToScroll: 1,\n slidesToShow: 1,\n speed: 500,\n swipe: true,\n swipeEvent: null,\n swipeToSlide: false,\n touchMove: true,\n touchThreshold: 5,\n useCSS: true,\n useTransform: true,\n variableWidth: false,\n vertical: false,\n waitForAnimate: true\n};\nvar _default = defaultProps;\nexports[\"default\"] = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2xpY2svbGliL2RlZmF1bHQtcHJvcHMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Ysa0JBQWtCOztBQUVsQixvQ0FBb0MsbUJBQU8sQ0FBQyw0Q0FBTzs7QUFFbkQsdUNBQXVDLHVDQUF1Qzs7QUFFOUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXNsaWNrL2xpYi9kZWZhdWx0LXByb3BzLmpzP2M5NTciXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcblxudmFyIF9yZWFjdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJlYWN0XCIpKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbnZhciBkZWZhdWx0UHJvcHMgPSB7XG4gIGFjY2Vzc2liaWxpdHk6IHRydWUsXG4gIGFkYXB0aXZlSGVpZ2h0OiBmYWxzZSxcbiAgYWZ0ZXJDaGFuZ2U6IG51bGwsXG4gIGFwcGVuZERvdHM6IGZ1bmN0aW9uIGFwcGVuZERvdHMoZG90cykge1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovX3JlYWN0W1wiZGVmYXVsdFwiXS5jcmVhdGVFbGVtZW50KFwidWxcIiwge1xuICAgICAgc3R5bGU6IHtcbiAgICAgICAgZGlzcGxheTogXCJibG9ja1wiXG4gICAgICB9XG4gICAgfSwgZG90cyk7XG4gIH0sXG4gIGFycm93czogdHJ1ZSxcbiAgYXV0b3BsYXk6IGZhbHNlLFxuICBhdXRvcGxheVNwZWVkOiAzMDAwLFxuICBiZWZvcmVDaGFuZ2U6IG51bGwsXG4gIGNlbnRlck1vZGU6IGZhbHNlLFxuICBjZW50ZXJQYWRkaW5nOiBcIjUwcHhcIixcbiAgY2xhc3NOYW1lOiBcIlwiLFxuICBjc3NFYXNlOiBcImVhc2VcIixcbiAgY3VzdG9tUGFnaW5nOiBmdW5jdGlvbiBjdXN0b21QYWdpbmcoaSkge1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovX3JlYWN0W1wiZGVmYXVsdFwiXS5jcmVhdGVFbGVtZW50KFwiYnV0dG9uXCIsIG51bGwsIGkgKyAxKTtcbiAgfSxcbiAgZG90czogZmFsc2UsXG4gIGRvdHNDbGFzczogXCJzbGljay1kb3RzXCIsXG4gIGRyYWdnYWJsZTogdHJ1ZSxcbiAgZWFzaW5nOiBcImxpbmVhclwiLFxuICBlZGdlRnJpY3Rpb246IDAuMzUsXG4gIGZhZGU6IGZhbHNlLFxuICBmb2N1c09uU2VsZWN0OiBmYWxzZSxcbiAgaW5maW5pdGU6IHRydWUsXG4gIGluaXRpYWxTbGlkZTogMCxcbiAgbGF6eUxvYWQ6IG51bGwsXG4gIG5leHRBcnJvdzogbnVsbCxcbiAgb25FZGdlOiBudWxsLFxuICBvbkluaXQ6IG51bGwsXG4gIG9uTGF6eUxvYWRFcnJvcjogbnVsbCxcbiAgb25SZUluaXQ6IG51bGwsXG4gIHBhdXNlT25Eb3RzSG92ZXI6IGZhbHNlLFxuICBwYXVzZU9uRm9jdXM6IGZhbHNlLFxuICBwYXVzZU9uSG92ZXI6IHRydWUsXG4gIHByZXZBcnJvdzogbnVsbCxcbiAgcmVzcG9uc2l2ZTogbnVsbCxcbiAgcm93czogMSxcbiAgcnRsOiBmYWxzZSxcbiAgc2xpZGU6IFwiZGl2XCIsXG4gIHNsaWRlc1BlclJvdzogMSxcbiAgc2xpZGVzVG9TY3JvbGw6IDEsXG4gIHNsaWRlc1RvU2hvdzogMSxcbiAgc3BlZWQ6IDUwMCxcbiAgc3dpcGU6IHRydWUsXG4gIHN3aXBlRXZlbnQ6IG51bGwsXG4gIHN3aXBlVG9TbGlkZTogZmFsc2UsXG4gIHRvdWNoTW92ZTogdHJ1ZSxcbiAgdG91Y2hUaHJlc2hvbGQ6IDUsXG4gIHVzZUNTUzogdHJ1ZSxcbiAgdXNlVHJhbnNmb3JtOiB0cnVlLFxuICB2YXJpYWJsZVdpZHRoOiBmYWxzZSxcbiAgdmVydGljYWw6IGZhbHNlLFxuICB3YWl0Rm9yQW5pbWF0ZTogdHJ1ZVxufTtcbnZhciBfZGVmYXVsdCA9IGRlZmF1bHRQcm9wcztcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gX2RlZmF1bHQ7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/react-slick/lib/default-props.js\n"); + +/***/ }), + +/***/ "./node_modules/react-slick/lib/dots.js": +/*!**********************************************!*\ + !*** ./node_modules/react-slick/lib/dots.js ***! + \**********************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.Dots = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _classnames = _interopRequireDefault(__webpack_require__(/*! classnames */ \"./node_modules/classnames/index.js\"));\n\nvar _innerSliderUtils = __webpack_require__(/*! ./utils/innerSliderUtils */ \"./node_modules/react-slick/lib/utils/innerSliderUtils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar getDotCount = function getDotCount(spec) {\n var dots;\n\n if (spec.infinite) {\n dots = Math.ceil(spec.slideCount / spec.slidesToScroll);\n } else {\n dots = Math.ceil((spec.slideCount - spec.slidesToShow) / spec.slidesToScroll) + 1;\n }\n\n return dots;\n};\n\nvar Dots = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Dots, _React$PureComponent);\n\n var _super = _createSuper(Dots);\n\n function Dots() {\n _classCallCheck(this, Dots);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Dots, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n // In Autoplay the focus stays on clicked button even after transition\n // to next slide. That only goes away by click somewhere outside\n e.preventDefault();\n this.props.clickHandler(options);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave,\n infinite = _this$props.infinite,\n slidesToScroll = _this$props.slidesToScroll,\n slidesToShow = _this$props.slidesToShow,\n slideCount = _this$props.slideCount,\n currentSlide = _this$props.currentSlide;\n var dotCount = getDotCount({\n slideCount: slideCount,\n slidesToScroll: slidesToScroll,\n slidesToShow: slidesToShow,\n infinite: infinite\n });\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n var dots = [];\n\n for (var i = 0; i < dotCount; i++) {\n var _rightBound = (i + 1) * slidesToScroll - 1;\n\n var rightBound = infinite ? _rightBound : (0, _innerSliderUtils.clamp)(_rightBound, 0, slideCount - 1);\n\n var _leftBound = rightBound - (slidesToScroll - 1);\n\n var leftBound = infinite ? _leftBound : (0, _innerSliderUtils.clamp)(_leftBound, 0, slideCount - 1);\n var className = (0, _classnames[\"default\"])({\n \"slick-active\": infinite ? currentSlide >= leftBound && currentSlide <= rightBound : currentSlide === leftBound\n });\n var dotOptions = {\n message: \"dots\",\n index: i,\n slidesToScroll: slidesToScroll,\n currentSlide: currentSlide\n };\n var onClick = this.clickHandler.bind(this, dotOptions);\n dots = dots.concat( /*#__PURE__*/_react[\"default\"].createElement(\"li\", {\n key: i,\n className: className\n }, /*#__PURE__*/_react[\"default\"].cloneElement(this.props.customPaging(i), {\n onClick: onClick\n })));\n }\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(this.props.appendDots(dots), _objectSpread({\n className: this.props.dotsClass\n }, mouseEvents));\n }\n }]);\n\n return Dots;\n}(_react[\"default\"].PureComponent);\n\nexports.Dots = Dots;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2xpY2svbGliL2RvdHMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsWUFBWTs7QUFFWixvQ0FBb0MsbUJBQU8sQ0FBQyw0Q0FBTzs7QUFFbkQseUNBQXlDLG1CQUFPLENBQUMsc0RBQVk7O0FBRTdELHdCQUF3QixtQkFBTyxDQUFDLDBGQUEwQjs7QUFFMUQsdUNBQXVDLHVDQUF1Qzs7QUFFOUUsd0JBQXdCLDJCQUEyQiwyRUFBMkUsa0NBQWtDLHdCQUF3QixPQUFPLGtDQUFrQyxtSUFBbUk7O0FBRXBXLDJDQUEyQyxnQ0FBZ0Msb0NBQW9DLG9EQUFvRCw4REFBOEQsaUVBQWlFLEdBQUcsa0NBQWtDOztBQUV2VSxpQ0FBaUMsZ0JBQWdCLHNCQUFzQixPQUFPLHVEQUF1RCxhQUFhLHVEQUF1RCw0Q0FBNEMsS0FBSyw2Q0FBNkMsNkVBQTZFLE9BQU8saURBQWlELG1GQUFtRixPQUFPOztBQUV0Z0IsNENBQTRDLGtCQUFrQixrQ0FBa0Msb0VBQW9FLEtBQUssT0FBTyxvQkFBb0I7O0FBRXBNLGtEQUFrRCwwQ0FBMEM7O0FBRTVGLDRDQUE0QyxnQkFBZ0Isa0JBQWtCLE9BQU8sMkJBQTJCLHdEQUF3RCxnQ0FBZ0MsdURBQXVEOztBQUUvUCw4REFBOEQsc0VBQXNFLDhEQUE4RDs7QUFFbE0sMkNBQTJDLCtEQUErRCw2RUFBNkUseUVBQXlFLGVBQWUsdURBQXVELEdBQUc7O0FBRXpVLGlDQUFpQyw0RUFBNEUsaUJBQWlCLGFBQWE7O0FBRTNJLGlDQUFpQyw2REFBNkQseUNBQXlDLDhDQUE4QyxpQ0FBaUMsbURBQW1ELDJEQUEyRCxPQUFPLHlDQUF5Qzs7QUFFcFgsa0RBQWtELDBFQUEwRSxlQUFlOztBQUUzSSx3Q0FBd0MsdUJBQXVCLHlGQUF5Rjs7QUFFeEosdUNBQXVDLHdFQUF3RSwwQ0FBMEMsOENBQThDLE1BQU0sdUVBQXVFLElBQUksZUFBZSxZQUFZOztBQUVuVCw4QkFBOEIsZ0dBQWdHLG1EQUFtRDs7QUFFakw7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxzQkFBc0IsY0FBYztBQUNwQzs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQSxTQUFTO0FBQ1Q7O0FBRUE7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLEdBQUc7O0FBRUg7QUFDQSxDQUFDOztBQUVELFlBQVkiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXNsaWNrL2xpYi9kb3RzLmpzP2VmYjMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLkRvdHMgPSB2b2lkIDA7XG5cbnZhciBfcmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbnZhciBfY2xhc3NuYW1lcyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcImNsYXNzbmFtZXNcIikpO1xuXG52YXIgX2lubmVyU2xpZGVyVXRpbHMgPSByZXF1aXJlKFwiLi91dGlscy9pbm5lclNsaWRlclV0aWxzXCIpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiOyBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiB0eXBlb2Ygb2JqOyB9OyB9IGVsc2UgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7IH07IH0gcmV0dXJuIF90eXBlb2Yob2JqKTsgfVxuXG5mdW5jdGlvbiBvd25LZXlzKG9iamVjdCwgZW51bWVyYWJsZU9ubHkpIHsgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhvYmplY3QpOyBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scykgeyB2YXIgc3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMob2JqZWN0KTsgaWYgKGVudW1lcmFibGVPbmx5KSBzeW1ib2xzID0gc3ltYm9scy5maWx0ZXIoZnVuY3Rpb24gKHN5bSkgeyByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmplY3QsIHN5bSkuZW51bWVyYWJsZTsgfSk7IGtleXMucHVzaC5hcHBseShrZXlzLCBzeW1ib2xzKTsgfSByZXR1cm4ga2V5czsgfVxuXG5mdW5jdGlvbiBfb2JqZWN0U3ByZWFkKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldICE9IG51bGwgPyBhcmd1bWVudHNbaV0gOiB7fTsgaWYgKGkgJSAyKSB7IG93bktleXMoT2JqZWN0KHNvdXJjZSksIHRydWUpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgeyBfZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHNvdXJjZVtrZXldKTsgfSk7IH0gZWxzZSBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMpIHsgT2JqZWN0LmRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhzb3VyY2UpKTsgfSBlbHNlIHsgb3duS2V5cyhPYmplY3Qoc291cmNlKSkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzb3VyY2UsIGtleSkpOyB9KTsgfSB9IHJldHVybiB0YXJnZXQ7IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KG9iaiwga2V5LCB2YWx1ZSkgeyBpZiAoa2V5IGluIG9iaikgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHsgdmFsdWU6IHZhbHVlLCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlIH0pOyB9IGVsc2UgeyBvYmpba2V5XSA9IHZhbHVlOyB9IHJldHVybiBvYmo7IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfVxuXG5mdW5jdGlvbiBfY3JlYXRlQ2xhc3MoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgX3NldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKTsgfVxuXG5mdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBfc2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgby5fX3Byb3RvX18gPSBwOyByZXR1cm4gbzsgfTsgcmV0dXJuIF9zZXRQcm90b3R5cGVPZihvLCBwKTsgfVxuXG5mdW5jdGlvbiBfY3JlYXRlU3VwZXIoRGVyaXZlZCkgeyB2YXIgaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCA9IF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKTsgcmV0dXJuIGZ1bmN0aW9uIF9jcmVhdGVTdXBlckludGVybmFsKCkgeyB2YXIgU3VwZXIgPSBfZ2V0UHJvdG90eXBlT2YoRGVyaXZlZCksIHJlc3VsdDsgaWYgKGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QpIHsgdmFyIE5ld1RhcmdldCA9IF9nZXRQcm90b3R5cGVPZih0aGlzKS5jb25zdHJ1Y3RvcjsgcmVzdWx0ID0gUmVmbGVjdC5jb25zdHJ1Y3QoU3VwZXIsIGFyZ3VtZW50cywgTmV3VGFyZ2V0KTsgfSBlbHNlIHsgcmVzdWx0ID0gU3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfSByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgcmVzdWx0KTsgfTsgfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmIChjYWxsICYmIChfdHlwZW9mKGNhbGwpID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpKSB7IHJldHVybiBjYWxsOyB9IHJldHVybiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpOyB9XG5cbmZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikgeyBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gc2VsZjsgfVxuXG5mdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkgeyBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwidW5kZWZpbmVkXCIgfHwgIVJlZmxlY3QuY29uc3RydWN0KSByZXR1cm4gZmFsc2U7IGlmIChSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKSByZXR1cm4gZmFsc2U7IGlmICh0eXBlb2YgUHJveHkgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHRydWU7IHRyeSB7IERhdGUucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoRGF0ZSwgW10sIGZ1bmN0aW9uICgpIHt9KSk7IHJldHVybiB0cnVlOyB9IGNhdGNoIChlKSB7IHJldHVybiBmYWxzZTsgfSB9XG5cbmZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IF9nZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5nZXRQcm90b3R5cGVPZiA6IGZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IHJldHVybiBvLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2Yobyk7IH07IHJldHVybiBfZ2V0UHJvdG90eXBlT2Yobyk7IH1cblxudmFyIGdldERvdENvdW50ID0gZnVuY3Rpb24gZ2V0RG90Q291bnQoc3BlYykge1xuICB2YXIgZG90cztcblxuICBpZiAoc3BlYy5pbmZpbml0ZSkge1xuICAgIGRvdHMgPSBNYXRoLmNlaWwoc3BlYy5zbGlkZUNvdW50IC8gc3BlYy5zbGlkZXNUb1Njcm9sbCk7XG4gIH0gZWxzZSB7XG4gICAgZG90cyA9IE1hdGguY2VpbCgoc3BlYy5zbGlkZUNvdW50IC0gc3BlYy5zbGlkZXNUb1Nob3cpIC8gc3BlYy5zbGlkZXNUb1Njcm9sbCkgKyAxO1xuICB9XG5cbiAgcmV0dXJuIGRvdHM7XG59O1xuXG52YXIgRG90cyA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX1JlYWN0JFB1cmVDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKERvdHMsIF9SZWFjdCRQdXJlQ29tcG9uZW50KTtcblxuICB2YXIgX3N1cGVyID0gX2NyZWF0ZVN1cGVyKERvdHMpO1xuXG4gIGZ1bmN0aW9uIERvdHMoKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIERvdHMpO1xuXG4gICAgcmV0dXJuIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKERvdHMsIFt7XG4gICAga2V5OiBcImNsaWNrSGFuZGxlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjbGlja0hhbmRsZXIob3B0aW9ucywgZSkge1xuICAgICAgLy8gSW4gQXV0b3BsYXkgdGhlIGZvY3VzIHN0YXlzIG9uIGNsaWNrZWQgYnV0dG9uIGV2ZW4gYWZ0ZXIgdHJhbnNpdGlvblxuICAgICAgLy8gdG8gbmV4dCBzbGlkZS4gVGhhdCBvbmx5IGdvZXMgYXdheSBieSBjbGljayBzb21ld2hlcmUgb3V0c2lkZVxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5wcm9wcy5jbGlja0hhbmRsZXIob3B0aW9ucyk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgX3RoaXMkcHJvcHMgPSB0aGlzLnByb3BzLFxuICAgICAgICAgIG9uTW91c2VFbnRlciA9IF90aGlzJHByb3BzLm9uTW91c2VFbnRlcixcbiAgICAgICAgICBvbk1vdXNlT3ZlciA9IF90aGlzJHByb3BzLm9uTW91c2VPdmVyLFxuICAgICAgICAgIG9uTW91c2VMZWF2ZSA9IF90aGlzJHByb3BzLm9uTW91c2VMZWF2ZSxcbiAgICAgICAgICBpbmZpbml0ZSA9IF90aGlzJHByb3BzLmluZmluaXRlLFxuICAgICAgICAgIHNsaWRlc1RvU2Nyb2xsID0gX3RoaXMkcHJvcHMuc2xpZGVzVG9TY3JvbGwsXG4gICAgICAgICAgc2xpZGVzVG9TaG93ID0gX3RoaXMkcHJvcHMuc2xpZGVzVG9TaG93LFxuICAgICAgICAgIHNsaWRlQ291bnQgPSBfdGhpcyRwcm9wcy5zbGlkZUNvdW50LFxuICAgICAgICAgIGN1cnJlbnRTbGlkZSA9IF90aGlzJHByb3BzLmN1cnJlbnRTbGlkZTtcbiAgICAgIHZhciBkb3RDb3VudCA9IGdldERvdENvdW50KHtcbiAgICAgICAgc2xpZGVDb3VudDogc2xpZGVDb3VudCxcbiAgICAgICAgc2xpZGVzVG9TY3JvbGw6IHNsaWRlc1RvU2Nyb2xsLFxuICAgICAgICBzbGlkZXNUb1Nob3c6IHNsaWRlc1RvU2hvdyxcbiAgICAgICAgaW5maW5pdGU6IGluZmluaXRlXG4gICAgICB9KTtcbiAgICAgIHZhciBtb3VzZUV2ZW50cyA9IHtcbiAgICAgICAgb25Nb3VzZUVudGVyOiBvbk1vdXNlRW50ZXIsXG4gICAgICAgIG9uTW91c2VPdmVyOiBvbk1vdXNlT3ZlcixcbiAgICAgICAgb25Nb3VzZUxlYXZlOiBvbk1vdXNlTGVhdmVcbiAgICAgIH07XG4gICAgICB2YXIgZG90cyA9IFtdO1xuXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRvdENvdW50OyBpKyspIHtcbiAgICAgICAgdmFyIF9yaWdodEJvdW5kID0gKGkgKyAxKSAqIHNsaWRlc1RvU2Nyb2xsIC0gMTtcblxuICAgICAgICB2YXIgcmlnaHRCb3VuZCA9IGluZmluaXRlID8gX3JpZ2h0Qm91bmQgOiAoMCwgX2lubmVyU2xpZGVyVXRpbHMuY2xhbXApKF9yaWdodEJvdW5kLCAwLCBzbGlkZUNvdW50IC0gMSk7XG5cbiAgICAgICAgdmFyIF9sZWZ0Qm91bmQgPSByaWdodEJvdW5kIC0gKHNsaWRlc1RvU2Nyb2xsIC0gMSk7XG5cbiAgICAgICAgdmFyIGxlZnRCb3VuZCA9IGluZmluaXRlID8gX2xlZnRCb3VuZCA6ICgwLCBfaW5uZXJTbGlkZXJVdGlscy5jbGFtcCkoX2xlZnRCb3VuZCwgMCwgc2xpZGVDb3VudCAtIDEpO1xuICAgICAgICB2YXIgY2xhc3NOYW1lID0gKDAsIF9jbGFzc25hbWVzW1wiZGVmYXVsdFwiXSkoe1xuICAgICAgICAgIFwic2xpY2stYWN0aXZlXCI6IGluZmluaXRlID8gY3VycmVudFNsaWRlID49IGxlZnRCb3VuZCAmJiBjdXJyZW50U2xpZGUgPD0gcmlnaHRCb3VuZCA6IGN1cnJlbnRTbGlkZSA9PT0gbGVmdEJvdW5kXG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgZG90T3B0aW9ucyA9IHtcbiAgICAgICAgICBtZXNzYWdlOiBcImRvdHNcIixcbiAgICAgICAgICBpbmRleDogaSxcbiAgICAgICAgICBzbGlkZXNUb1Njcm9sbDogc2xpZGVzVG9TY3JvbGwsXG4gICAgICAgICAgY3VycmVudFNsaWRlOiBjdXJyZW50U2xpZGVcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIG9uQ2xpY2sgPSB0aGlzLmNsaWNrSGFuZGxlci5iaW5kKHRoaXMsIGRvdE9wdGlvbnMpO1xuICAgICAgICBkb3RzID0gZG90cy5jb25jYXQoIC8qI19fUFVSRV9fKi9fcmVhY3RbXCJkZWZhdWx0XCJdLmNyZWF0ZUVsZW1lbnQoXCJsaVwiLCB7XG4gICAgICAgICAga2V5OiBpLFxuICAgICAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lXG4gICAgICAgIH0sIC8qI19fUFVSRV9fKi9fcmVhY3RbXCJkZWZhdWx0XCJdLmNsb25lRWxlbWVudCh0aGlzLnByb3BzLmN1c3RvbVBhZ2luZyhpKSwge1xuICAgICAgICAgIG9uQ2xpY2s6IG9uQ2xpY2tcbiAgICAgICAgfSkpKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9fcmVhY3RbXCJkZWZhdWx0XCJdLmNsb25lRWxlbWVudCh0aGlzLnByb3BzLmFwcGVuZERvdHMoZG90cyksIF9vYmplY3RTcHJlYWQoe1xuICAgICAgICBjbGFzc05hbWU6IHRoaXMucHJvcHMuZG90c0NsYXNzXG4gICAgICB9LCBtb3VzZUV2ZW50cykpO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBEb3RzO1xufShfcmVhY3RbXCJkZWZhdWx0XCJdLlB1cmVDb21wb25lbnQpO1xuXG5leHBvcnRzLkRvdHMgPSBEb3RzOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-slick/lib/dots.js\n"); + +/***/ }), + +/***/ "./node_modules/react-slick/lib/index.js": +/*!***********************************************!*\ + !*** ./node_modules/react-slick/lib/index.js ***! + \***********************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _slider = _interopRequireDefault(__webpack_require__(/*! ./slider */ \"./node_modules/react-slick/lib/slider.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _default = _slider[\"default\"];\nexports[\"default\"] = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2xpY2svbGliL2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGtCQUFrQjs7QUFFbEIscUNBQXFDLG1CQUFPLENBQUMsMERBQVU7O0FBRXZELHVDQUF1Qyx1Q0FBdUM7O0FBRTlFO0FBQ0Esa0JBQWtCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zbGljay9saWIvaW5kZXguanM/YTA3NCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xuXG52YXIgX3NsaWRlciA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vc2xpZGVyXCIpKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbnZhciBfZGVmYXVsdCA9IF9zbGlkZXJbXCJkZWZhdWx0XCJdO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-slick/lib/index.js\n"); + +/***/ }), + +/***/ "./node_modules/react-slick/lib/initial-state.js": +/*!*******************************************************!*\ + !*** ./node_modules/react-slick/lib/initial-state.js ***! + \*******************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\nvar initialState = {\n animating: false,\n autoplaying: null,\n currentDirection: 0,\n currentLeft: null,\n currentSlide: 0,\n direction: 1,\n dragging: false,\n edgeDragged: false,\n initialized: false,\n lazyLoadedList: [],\n listHeight: null,\n listWidth: null,\n scrolling: false,\n slideCount: null,\n slideHeight: null,\n slideWidth: null,\n swipeLeft: null,\n swiped: false,\n // used by swipeEvent. differentites between touch and swipe.\n swiping: false,\n touchObject: {\n startX: 0,\n startY: 0,\n curX: 0,\n curY: 0\n },\n trackStyle: {},\n trackWidth: 0,\n targetSlide: 0\n};\nvar _default = initialState;\nexports[\"default\"] = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2xpY2svbGliL2luaXRpYWwtc3RhdGUuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Ysa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0gsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zbGljay9saWIvaW5pdGlhbC1zdGF0ZS5qcz82MzU2Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG52YXIgaW5pdGlhbFN0YXRlID0ge1xuICBhbmltYXRpbmc6IGZhbHNlLFxuICBhdXRvcGxheWluZzogbnVsbCxcbiAgY3VycmVudERpcmVjdGlvbjogMCxcbiAgY3VycmVudExlZnQ6IG51bGwsXG4gIGN1cnJlbnRTbGlkZTogMCxcbiAgZGlyZWN0aW9uOiAxLFxuICBkcmFnZ2luZzogZmFsc2UsXG4gIGVkZ2VEcmFnZ2VkOiBmYWxzZSxcbiAgaW5pdGlhbGl6ZWQ6IGZhbHNlLFxuICBsYXp5TG9hZGVkTGlzdDogW10sXG4gIGxpc3RIZWlnaHQ6IG51bGwsXG4gIGxpc3RXaWR0aDogbnVsbCxcbiAgc2Nyb2xsaW5nOiBmYWxzZSxcbiAgc2xpZGVDb3VudDogbnVsbCxcbiAgc2xpZGVIZWlnaHQ6IG51bGwsXG4gIHNsaWRlV2lkdGg6IG51bGwsXG4gIHN3aXBlTGVmdDogbnVsbCxcbiAgc3dpcGVkOiBmYWxzZSxcbiAgLy8gdXNlZCBieSBzd2lwZUV2ZW50LiBkaWZmZXJlbnRpdGVzIGJldHdlZW4gdG91Y2ggYW5kIHN3aXBlLlxuICBzd2lwaW5nOiBmYWxzZSxcbiAgdG91Y2hPYmplY3Q6IHtcbiAgICBzdGFydFg6IDAsXG4gICAgc3RhcnRZOiAwLFxuICAgIGN1clg6IDAsXG4gICAgY3VyWTogMFxuICB9LFxuICB0cmFja1N0eWxlOiB7fSxcbiAgdHJhY2tXaWR0aDogMCxcbiAgdGFyZ2V0U2xpZGU6IDBcbn07XG52YXIgX2RlZmF1bHQgPSBpbml0aWFsU3RhdGU7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IF9kZWZhdWx0OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-slick/lib/initial-state.js\n"); + +/***/ }), + +/***/ "./node_modules/react-slick/lib/inner-slider.js": +/*!******************************************************!*\ + !*** ./node_modules/react-slick/lib/inner-slider.js ***! + \******************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.InnerSlider = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _initialState = _interopRequireDefault(__webpack_require__(/*! ./initial-state */ \"./node_modules/react-slick/lib/initial-state.js\"));\n\nvar _lodash = _interopRequireDefault(__webpack_require__(/*! lodash.debounce */ \"./node_modules/lodash.debounce/index.js\"));\n\nvar _classnames = _interopRequireDefault(__webpack_require__(/*! classnames */ \"./node_modules/classnames/index.js\"));\n\nvar _innerSliderUtils = __webpack_require__(/*! ./utils/innerSliderUtils */ \"./node_modules/react-slick/lib/utils/innerSliderUtils.js\");\n\nvar _track = __webpack_require__(/*! ./track */ \"./node_modules/react-slick/lib/track.js\");\n\nvar _dots = __webpack_require__(/*! ./dots */ \"./node_modules/react-slick/lib/dots.js\");\n\nvar _arrows = __webpack_require__(/*! ./arrows */ \"./node_modules/react-slick/lib/arrows.js\");\n\nvar _resizeObserverPolyfill = _interopRequireDefault(__webpack_require__(/*! resize-observer-polyfill */ \"./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar InnerSlider = /*#__PURE__*/function (_React$Component) {\n _inherits(InnerSlider, _React$Component);\n\n var _super = _createSuper(InnerSlider);\n\n function InnerSlider(props) {\n var _this;\n\n _classCallCheck(this, InnerSlider);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"listRefHandler\", function (ref) {\n return _this.list = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"trackRefHandler\", function (ref) {\n return _this.track = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"adaptHeight\", function () {\n if (_this.props.adaptiveHeight && _this.list) {\n var elem = _this.list.querySelector(\"[data-index=\\\"\".concat(_this.state.currentSlide, \"\\\"]\"));\n\n _this.list.style.height = (0, _innerSliderUtils.getHeight)(elem) + \"px\";\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentDidMount\", function () {\n _this.props.onInit && _this.props.onInit();\n\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n }\n\n var spec = _objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props);\n\n _this.updateState(spec, true, function () {\n _this.adaptHeight();\n\n _this.props.autoplay && _this.autoPlay(\"update\");\n });\n\n if (_this.props.lazyLoad === \"progressive\") {\n _this.lazyLoadTimer = setInterval(_this.progressiveLazyLoad, 1000);\n }\n\n _this.ro = new _resizeObserverPolyfill[\"default\"](function () {\n if (_this.state.animating) {\n _this.onWindowResized(false); // don't set trackStyle hence don't break animation\n\n\n _this.callbackTimers.push(setTimeout(function () {\n return _this.onWindowResized();\n }, _this.props.speed));\n } else {\n _this.onWindowResized();\n }\n });\n\n _this.ro.observe(_this.list);\n\n document.querySelectorAll && Array.prototype.forEach.call(document.querySelectorAll(\".slick-slide\"), function (slide) {\n slide.onfocus = _this.props.pauseOnFocus ? _this.onSlideFocus : null;\n slide.onblur = _this.props.pauseOnFocus ? _this.onSlideBlur : null;\n });\n\n if (window.addEventListener) {\n window.addEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.attachEvent(\"onresize\", _this.onWindowResized);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentWillUnmount\", function () {\n if (_this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n }\n\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n }\n\n if (_this.callbackTimers.length) {\n _this.callbackTimers.forEach(function (timer) {\n return clearTimeout(timer);\n });\n\n _this.callbackTimers = [];\n }\n\n if (window.addEventListener) {\n window.removeEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.detachEvent(\"onresize\", _this.onWindowResized);\n }\n\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n\n _this.ro.disconnect();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentDidUpdate\", function (prevProps) {\n _this.checkImagesLoad();\n\n _this.props.onReInit && _this.props.onReInit();\n\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n } // if (this.props.onLazyLoad) {\n // this.props.onLazyLoad([leftMostSlide])\n // }\n\n\n _this.adaptHeight();\n\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n\n var setTrackStyle = _this.didPropsChange(prevProps);\n\n setTrackStyle && _this.updateState(spec, setTrackStyle, function () {\n if (_this.state.currentSlide >= _react[\"default\"].Children.count(_this.props.children)) {\n _this.changeSlide({\n message: \"index\",\n index: _react[\"default\"].Children.count(_this.props.children) - _this.props.slidesToShow,\n currentSlide: _this.state.currentSlide\n });\n }\n\n if (_this.props.autoplay) {\n _this.autoPlay(\"update\");\n } else {\n _this.pause(\"paused\");\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onWindowResized\", function (setTrackStyle) {\n if (_this.debouncedResize) _this.debouncedResize.cancel();\n _this.debouncedResize = (0, _lodash[\"default\"])(function () {\n return _this.resizeWindow(setTrackStyle);\n }, 50);\n\n _this.debouncedResize();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"resizeWindow\", function () {\n var setTrackStyle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var isTrackMounted = Boolean(_this.track && _this.track.node); // prevent warning: setting state on unmounted component (server side rendering)\n\n if (!isTrackMounted) return;\n\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n\n _this.updateState(spec, setTrackStyle, function () {\n if (_this.props.autoplay) _this.autoPlay(\"update\");else _this.pause(\"paused\");\n }); // animating state should be cleared while resizing, otherwise autoplay stops working\n\n\n _this.setState({\n animating: false\n });\n\n clearTimeout(_this.animationEndCallback);\n delete _this.animationEndCallback;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updateState\", function (spec, setTrackStyle, callback) {\n var updatedState = (0, _innerSliderUtils.initializedState)(spec);\n spec = _objectSpread(_objectSpread(_objectSpread({}, spec), updatedState), {}, {\n slideIndex: updatedState.currentSlide\n });\n var targetLeft = (0, _innerSliderUtils.getTrackLeft)(spec);\n spec = _objectSpread(_objectSpread({}, spec), {}, {\n left: targetLeft\n });\n var trackStyle = (0, _innerSliderUtils.getTrackCSS)(spec);\n\n if (setTrackStyle || _react[\"default\"].Children.count(_this.props.children) !== _react[\"default\"].Children.count(spec.children)) {\n updatedState[\"trackStyle\"] = trackStyle;\n }\n\n _this.setState(updatedState, callback);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ssrInit\", function () {\n if (_this.props.variableWidth) {\n var _trackWidth = 0,\n _trackLeft = 0;\n var childrenWidths = [];\n var preClones = (0, _innerSliderUtils.getPreClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n var postClones = (0, _innerSliderUtils.getPostClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n\n _this.props.children.forEach(function (child) {\n childrenWidths.push(child.props.style.width);\n _trackWidth += child.props.style.width;\n });\n\n for (var i = 0; i < preClones; i++) {\n _trackLeft += childrenWidths[childrenWidths.length - 1 - i];\n _trackWidth += childrenWidths[childrenWidths.length - 1 - i];\n }\n\n for (var _i = 0; _i < postClones; _i++) {\n _trackWidth += childrenWidths[_i];\n }\n\n for (var _i2 = 0; _i2 < _this.state.currentSlide; _i2++) {\n _trackLeft += childrenWidths[_i2];\n }\n\n var _trackStyle = {\n width: _trackWidth + \"px\",\n left: -_trackLeft + \"px\"\n };\n\n if (_this.props.centerMode) {\n var currentWidth = \"\".concat(childrenWidths[_this.state.currentSlide], \"px\");\n _trackStyle.left = \"calc(\".concat(_trackStyle.left, \" + (100% - \").concat(currentWidth, \") / 2 ) \");\n }\n\n return {\n trackStyle: _trackStyle\n };\n }\n\n var childrenCount = _react[\"default\"].Children.count(_this.props.children);\n\n var spec = _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: childrenCount\n });\n\n var slideCount = (0, _innerSliderUtils.getPreClones)(spec) + (0, _innerSliderUtils.getPostClones)(spec) + childrenCount;\n var trackWidth = 100 / _this.props.slidesToShow * slideCount;\n var slideWidth = 100 / slideCount;\n var trackLeft = -slideWidth * ((0, _innerSliderUtils.getPreClones)(spec) + _this.state.currentSlide) * trackWidth / 100;\n\n if (_this.props.centerMode) {\n trackLeft += (100 - slideWidth * trackWidth / 100) / 2;\n }\n\n var trackStyle = {\n width: trackWidth + \"%\",\n left: trackLeft + \"%\"\n };\n return {\n slideWidth: slideWidth + \"%\",\n trackStyle: trackStyle\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), \"checkImagesLoad\", function () {\n var images = _this.list && _this.list.querySelectorAll && _this.list.querySelectorAll(\".slick-slide img\") || [];\n var imagesCount = images.length,\n loadedCount = 0;\n Array.prototype.forEach.call(images, function (image) {\n var handler = function handler() {\n return ++loadedCount && loadedCount >= imagesCount && _this.onWindowResized();\n };\n\n if (!image.onclick) {\n image.onclick = function () {\n return image.parentNode.focus();\n };\n } else {\n var prevClickHandler = image.onclick;\n\n image.onclick = function () {\n prevClickHandler();\n image.parentNode.focus();\n };\n }\n\n if (!image.onload) {\n if (_this.props.lazyLoad) {\n image.onload = function () {\n _this.adaptHeight();\n\n _this.callbackTimers.push(setTimeout(_this.onWindowResized, _this.props.speed));\n };\n } else {\n image.onload = handler;\n\n image.onerror = function () {\n handler();\n _this.props.onLazyLoadError && _this.props.onLazyLoadError();\n };\n }\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"progressiveLazyLoad\", function () {\n var slidesToLoad = [];\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n for (var index = _this.state.currentSlide; index < _this.state.slideCount + (0, _innerSliderUtils.getPostClones)(spec); index++) {\n if (_this.state.lazyLoadedList.indexOf(index) < 0) {\n slidesToLoad.push(index);\n break;\n }\n }\n\n for (var _index = _this.state.currentSlide - 1; _index >= -(0, _innerSliderUtils.getPreClones)(spec); _index--) {\n if (_this.state.lazyLoadedList.indexOf(_index) < 0) {\n slidesToLoad.push(_index);\n break;\n }\n }\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (state) {\n return {\n lazyLoadedList: state.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n } else {\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n delete _this.lazyLoadTimer;\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slideHandler\", function (index) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var _this$props = _this.props,\n asNavFor = _this$props.asNavFor,\n beforeChange = _this$props.beforeChange,\n onLazyLoad = _this$props.onLazyLoad,\n speed = _this$props.speed,\n afterChange = _this$props.afterChange; // capture currentslide before state is updated\n\n var currentSlide = _this.state.currentSlide;\n\n var _slideHandler = (0, _innerSliderUtils.slideHandler)(_objectSpread(_objectSpread(_objectSpread({\n index: index\n }, _this.props), _this.state), {}, {\n trackRef: _this.track,\n useCSS: _this.props.useCSS && !dontAnimate\n })),\n state = _slideHandler.state,\n nextState = _slideHandler.nextState;\n\n if (!state) return;\n beforeChange && beforeChange(currentSlide, state.currentSlide);\n var slidesToLoad = state.lazyLoadedList.filter(function (value) {\n return _this.state.lazyLoadedList.indexOf(value) < 0;\n });\n onLazyLoad && slidesToLoad.length > 0 && onLazyLoad(slidesToLoad);\n\n if (!_this.props.waitForAnimate && _this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n afterChange && afterChange(currentSlide);\n delete _this.animationEndCallback;\n }\n\n _this.setState(state, function () {\n // asNavForIndex check is to avoid recursive calls of slideHandler in waitForAnimate=false mode\n if (asNavFor && _this.asNavForIndex !== index) {\n _this.asNavForIndex = index;\n asNavFor.innerSlider.slideHandler(index);\n }\n\n if (!nextState) return;\n _this.animationEndCallback = setTimeout(function () {\n var animating = nextState.animating,\n firstBatch = _objectWithoutProperties(nextState, [\"animating\"]);\n\n _this.setState(firstBatch, function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.setState({\n animating: animating\n });\n }, 10));\n\n afterChange && afterChange(state.currentSlide);\n delete _this.animationEndCallback;\n });\n }, speed);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"changeSlide\", function (options) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n var targetSlide = (0, _innerSliderUtils.changeSlide)(spec, options);\n if (targetSlide !== 0 && !targetSlide) return;\n\n if (dontAnimate === true) {\n _this.slideHandler(targetSlide, dontAnimate);\n } else {\n _this.slideHandler(targetSlide);\n }\n\n _this.props.autoplay && _this.autoPlay(\"update\");\n\n if (_this.props.focusOnSelect) {\n var nodes = _this.list.querySelectorAll(\".slick-current\");\n\n nodes[0] && nodes[0].focus();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"clickHandler\", function (e) {\n if (_this.clickable === false) {\n e.stopPropagation();\n e.preventDefault();\n }\n\n _this.clickable = true;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"keyHandler\", function (e) {\n var dir = (0, _innerSliderUtils.keyHandler)(e, _this.props.accessibility, _this.props.rtl);\n dir !== \"\" && _this.changeSlide({\n message: dir\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"selectHandler\", function (options) {\n _this.changeSlide(options);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"disableBodyScroll\", function () {\n var preventDefault = function preventDefault(e) {\n e = e || window.event;\n if (e.preventDefault) e.preventDefault();\n e.returnValue = false;\n };\n\n window.ontouchmove = preventDefault;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"enableBodyScroll\", function () {\n window.ontouchmove = null;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeStart\", function (e) {\n if (_this.props.verticalSwiping) {\n _this.disableBodyScroll();\n }\n\n var state = (0, _innerSliderUtils.swipeStart)(e, _this.props.swipe, _this.props.draggable);\n state !== \"\" && _this.setState(state);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeMove\", function (e) {\n var state = (0, _innerSliderUtils.swipeMove)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n\n if (state[\"swiping\"]) {\n _this.clickable = false;\n }\n\n _this.setState(state);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeEnd\", function (e) {\n var state = (0, _innerSliderUtils.swipeEnd)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n var triggerSlideHandler = state[\"triggerSlideHandler\"];\n delete state[\"triggerSlideHandler\"];\n\n _this.setState(state);\n\n if (triggerSlideHandler === undefined) return;\n\n _this.slideHandler(triggerSlideHandler);\n\n if (_this.props.verticalSwiping) {\n _this.enableBodyScroll();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"touchEnd\", function (e) {\n _this.swipeEnd(e);\n\n _this.clickable = true;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n // this and fellow methods are wrapped in setTimeout\n // to make sure initialize setState has happened before\n // any of such methods are called\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"previous\"\n });\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"next\"\n });\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n slide = Number(slide);\n if (isNaN(slide)) return \"\";\n\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"index\",\n index: slide,\n currentSlide: _this.state.currentSlide\n }, dontAnimate);\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"play\", function () {\n var nextIndex;\n\n if (_this.props.rtl) {\n nextIndex = _this.state.currentSlide - _this.props.slidesToScroll;\n } else {\n if ((0, _innerSliderUtils.canGoNext)(_objectSpread(_objectSpread({}, _this.props), _this.state))) {\n nextIndex = _this.state.currentSlide + _this.props.slidesToScroll;\n } else {\n return false;\n }\n }\n\n _this.slideHandler(nextIndex);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"autoPlay\", function (playType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n\n var autoplaying = _this.state.autoplaying;\n\n if (playType === \"update\") {\n if (autoplaying === \"hovered\" || autoplaying === \"focused\" || autoplaying === \"paused\") {\n return;\n }\n } else if (playType === \"leave\") {\n if (autoplaying === \"paused\" || autoplaying === \"focused\") {\n return;\n }\n } else if (playType === \"blur\") {\n if (autoplaying === \"paused\" || autoplaying === \"hovered\") {\n return;\n }\n }\n\n _this.autoplayTimer = setInterval(_this.play, _this.props.autoplaySpeed + 50);\n\n _this.setState({\n autoplaying: \"playing\"\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"pause\", function (pauseType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n _this.autoplayTimer = null;\n }\n\n var autoplaying = _this.state.autoplaying;\n\n if (pauseType === \"paused\") {\n _this.setState({\n autoplaying: \"paused\"\n });\n } else if (pauseType === \"focused\") {\n if (autoplaying === \"hovered\" || autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"focused\"\n });\n }\n } else {\n // pauseType is 'hovered'\n if (autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"hovered\"\n });\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDotsOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDotsLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTrackOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTrackLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSlideFocus\", function () {\n return _this.props.autoplay && _this.pause(\"focused\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSlideBlur\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"focused\" && _this.autoPlay(\"blur\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"render\", function () {\n var className = (0, _classnames[\"default\"])(\"slick-slider\", _this.props.className, {\n \"slick-vertical\": _this.props.vertical,\n \"slick-initialized\": true\n });\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n var trackProps = (0, _innerSliderUtils.extractObject)(spec, [\"fade\", \"cssEase\", \"speed\", \"infinite\", \"centerMode\", \"focusOnSelect\", \"currentSlide\", \"lazyLoad\", \"lazyLoadedList\", \"rtl\", \"slideWidth\", \"slideHeight\", \"listHeight\", \"vertical\", \"slidesToShow\", \"slidesToScroll\", \"slideCount\", \"trackStyle\", \"variableWidth\", \"unslick\", \"centerPadding\", \"targetSlide\", \"useCSS\"]);\n var pauseOnHover = _this.props.pauseOnHover;\n trackProps = _objectSpread(_objectSpread({}, trackProps), {}, {\n onMouseEnter: pauseOnHover ? _this.onTrackOver : null,\n onMouseLeave: pauseOnHover ? _this.onTrackLeave : null,\n onMouseOver: pauseOnHover ? _this.onTrackOver : null,\n focusOnSelect: _this.props.focusOnSelect && _this.clickable ? _this.selectHandler : null\n });\n var dots;\n\n if (_this.props.dots === true && _this.state.slideCount >= _this.props.slidesToShow) {\n var dotProps = (0, _innerSliderUtils.extractObject)(spec, [\"dotsClass\", \"slideCount\", \"slidesToShow\", \"currentSlide\", \"slidesToScroll\", \"clickHandler\", \"children\", \"customPaging\", \"infinite\", \"appendDots\"]);\n var pauseOnDotsHover = _this.props.pauseOnDotsHover;\n dotProps = _objectSpread(_objectSpread({}, dotProps), {}, {\n clickHandler: _this.changeSlide,\n onMouseEnter: pauseOnDotsHover ? _this.onDotsLeave : null,\n onMouseOver: pauseOnDotsHover ? _this.onDotsOver : null,\n onMouseLeave: pauseOnDotsHover ? _this.onDotsLeave : null\n });\n dots = /*#__PURE__*/_react[\"default\"].createElement(_dots.Dots, dotProps);\n }\n\n var prevArrow, nextArrow;\n var arrowProps = (0, _innerSliderUtils.extractObject)(spec, [\"infinite\", \"centerMode\", \"currentSlide\", \"slideCount\", \"slidesToShow\", \"prevArrow\", \"nextArrow\"]);\n arrowProps.clickHandler = _this.changeSlide;\n\n if (_this.props.arrows) {\n prevArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.PrevArrow, arrowProps);\n nextArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.NextArrow, arrowProps);\n }\n\n var verticalHeightStyle = null;\n\n if (_this.props.vertical) {\n verticalHeightStyle = {\n height: _this.state.listHeight\n };\n }\n\n var centerPaddingStyle = null;\n\n if (_this.props.vertical === false) {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: \"0px \" + _this.props.centerPadding\n };\n }\n } else {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: _this.props.centerPadding + \" 0px\"\n };\n }\n }\n\n var listStyle = _objectSpread(_objectSpread({}, verticalHeightStyle), centerPaddingStyle);\n\n var touchMove = _this.props.touchMove;\n var listProps = {\n className: \"slick-list\",\n style: listStyle,\n onClick: _this.clickHandler,\n onMouseDown: touchMove ? _this.swipeStart : null,\n onMouseMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onMouseUp: touchMove ? _this.swipeEnd : null,\n onMouseLeave: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onTouchStart: touchMove ? _this.swipeStart : null,\n onTouchMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onTouchEnd: touchMove ? _this.touchEnd : null,\n onTouchCancel: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onKeyDown: _this.props.accessibility ? _this.keyHandler : null\n };\n var innerSliderProps = {\n className: className,\n dir: \"ltr\",\n style: _this.props.style\n };\n\n if (_this.props.unslick) {\n listProps = {\n className: \"slick-list\"\n };\n innerSliderProps = {\n className: className\n };\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", innerSliderProps, !_this.props.unslick ? prevArrow : \"\", /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: _this.listRefHandler\n }, listProps), /*#__PURE__*/_react[\"default\"].createElement(_track.Track, _extends({\n ref: _this.trackRefHandler\n }, trackProps), _this.props.children)), !_this.props.unslick ? nextArrow : \"\", !_this.props.unslick ? dots : \"\");\n });\n\n _this.list = null;\n _this.track = null;\n _this.state = _objectSpread(_objectSpread({}, _initialState[\"default\"]), {}, {\n currentSlide: _this.props.initialSlide,\n slideCount: _react[\"default\"].Children.count(_this.props.children)\n });\n _this.callbackTimers = [];\n _this.clickable = true;\n _this.debouncedResize = null;\n\n var ssrState = _this.ssrInit();\n\n _this.state = _objectSpread(_objectSpread({}, _this.state), ssrState);\n return _this;\n }\n\n _createClass(InnerSlider, [{\n key: \"didPropsChange\",\n value: function didPropsChange(prevProps) {\n var setTrackStyle = false;\n\n for (var _i3 = 0, _Object$keys = Object.keys(this.props); _i3 < _Object$keys.length; _i3++) {\n var key = _Object$keys[_i3];\n\n if (!prevProps.hasOwnProperty(key)) {\n setTrackStyle = true;\n break;\n }\n\n if (_typeof(prevProps[key]) === \"object\" || typeof prevProps[key] === \"function\") {\n continue;\n }\n\n if (prevProps[key] !== this.props[key]) {\n setTrackStyle = true;\n break;\n }\n }\n\n return setTrackStyle || _react[\"default\"].Children.count(this.props.children) !== _react[\"default\"].Children.count(prevProps.children);\n }\n }]);\n\n return InnerSlider;\n}(_react[\"default\"].Component);\n\nexports.InnerSlider = InnerSlider;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2xpY2svbGliL2lubmVyLXNsaWRlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixtQkFBbUI7O0FBRW5CLG9DQUFvQyxtQkFBTyxDQUFDLDRDQUFPOztBQUVuRCwyQ0FBMkMsbUJBQU8sQ0FBQyx3RUFBaUI7O0FBRXBFLHFDQUFxQyxtQkFBTyxDQUFDLGdFQUFpQjs7QUFFOUQseUNBQXlDLG1CQUFPLENBQUMsc0RBQVk7O0FBRTdELHdCQUF3QixtQkFBTyxDQUFDLDBGQUEwQjs7QUFFMUQsYUFBYSxtQkFBTyxDQUFDLHdEQUFTOztBQUU5QixZQUFZLG1CQUFPLENBQUMsc0RBQVE7O0FBRTVCLGNBQWMsbUJBQU8sQ0FBQywwREFBVTs7QUFFaEMscURBQXFELG1CQUFPLENBQUMsbUdBQTBCOztBQUV2Rix1Q0FBdUMsdUNBQXVDOztBQUU5RSx3QkFBd0IsMkJBQTJCLDJFQUEyRSxrQ0FBa0Msd0JBQXdCLE9BQU8sa0NBQWtDLG1JQUFtSTs7QUFFcFcsc0JBQXNCLGdEQUFnRCxnQkFBZ0Isc0JBQXNCLE9BQU8sMkJBQTJCLDBCQUEwQix5REFBeUQsaUNBQWlDLGtCQUFrQjs7QUFFcFIsc0RBQXNELCtCQUErQiw4REFBOEQsWUFBWSxvQ0FBb0MsNkRBQTZELFlBQVksNkJBQTZCLE9BQU8sMkJBQTJCLDBDQUEwQyx3RUFBd0UsK0JBQStCOztBQUU1ZCwyREFBMkQsK0JBQStCLGlCQUFpQixzQ0FBc0MsWUFBWSxZQUFZLHVCQUF1QixPQUFPLHFCQUFxQiwwQ0FBMEMsNkJBQTZCOztBQUVuUywyQ0FBMkMsZ0NBQWdDLG9DQUFvQyxvREFBb0QsOERBQThELGlFQUFpRSxHQUFHLGtDQUFrQzs7QUFFdlUsaUNBQWlDLGdCQUFnQixzQkFBc0IsT0FBTyx1REFBdUQsYUFBYSx1REFBdUQsNENBQTRDLEtBQUssNkNBQTZDLDZFQUE2RSxPQUFPLGlEQUFpRCxtRkFBbUYsT0FB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O0FBQ1AsS0FBSzs7QUFFTDtBQUNBO0FBQ0EsZ0RBQWdELCtCQUErQjtBQUMvRTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQSxnREFBZ0Q7QUFDaEQ7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxnRUFBZ0UsMkJBQTJCO0FBQzNGOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0EsQ0FBQzs7QUFFRCxtQkFBbUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXNsaWNrL2xpYi9pbm5lci1zbGlkZXIuanM/ZThhZCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuSW5uZXJTbGlkZXIgPSB2b2lkIDA7XG5cbnZhciBfcmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbnZhciBfaW5pdGlhbFN0YXRlID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9pbml0aWFsLXN0YXRlXCIpKTtcblxudmFyIF9sb2Rhc2ggPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJsb2Rhc2guZGVib3VuY2VcIikpO1xuXG52YXIgX2NsYXNzbmFtZXMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJjbGFzc25hbWVzXCIpKTtcblxudmFyIF9pbm5lclNsaWRlclV0aWxzID0gcmVxdWlyZShcIi4vdXRpbHMvaW5uZXJTbGlkZXJVdGlsc1wiKTtcblxudmFyIF90cmFjayA9IHJlcXVpcmUoXCIuL3RyYWNrXCIpO1xuXG52YXIgX2RvdHMgPSByZXF1aXJlKFwiLi9kb3RzXCIpO1xuXG52YXIgX2Fycm93cyA9IHJlcXVpcmUoXCIuL2Fycm93c1wiKTtcblxudmFyIF9yZXNpemVPYnNlcnZlclBvbHlmaWxsID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVzaXplLW9ic2VydmVyLXBvbHlmaWxsXCIpKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjsgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiKSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfTsgfSBlbHNlIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9OyB9IHJldHVybiBfdHlwZW9mKG9iaik7IH1cblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cblxuZnVuY3Rpb24gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKHNvdXJjZSwgZXhjbHVkZWQpIHsgaWYgKHNvdXJjZSA9PSBudWxsKSByZXR1cm4ge307IHZhciB0YXJnZXQgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShzb3VyY2UsIGV4Y2x1ZGVkKTsgdmFyIGtleSwgaTsgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHsgdmFyIHNvdXJjZVN5bWJvbEtleXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHNvdXJjZSk7IGZvciAoaSA9IDA7IGkgPCBzb3VyY2VTeW1ib2xLZXlzLmxlbmd0aDsgaSsrKSB7IGtleSA9IHNvdXJjZVN5bWJvbEtleXNbaV07IGlmIChleGNsdWRlZC5pbmRleE9mKGtleSkgPj0gMCkgY29udGludWU7IGlmICghT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHNvdXJjZSwga2V5KSkgY29udGludWU7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSByZXR1cm4gdGFyZ2V0OyB9XG5cbmZ1bmN0aW9uIF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKHNvdXJjZSwgZXhjbHVkZWQpIHsgaWYgKHNvdXJjZSA9PSBudWxsKSByZXR1cm4ge307IHZhciB0YXJnZXQgPSB7fTsgdmFyIHNvdXJjZUtleXMgPSBPYmplY3Qua2V5cyhzb3VyY2UpOyB2YXIga2V5LCBpOyBmb3IgKGkgPSAwOyBpIDwgc291cmNlS2V5cy5sZW5ndGg7IGkrKykgeyBrZXkgPSBzb3VyY2VLZXlzW2ldOyBpZiAoZXhjbHVkZWQuaW5kZXhPZihrZXkpID49IDApIGNvbnRpbnVlOyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IHJldHVybiB0YXJnZXQ7IH1cblxuZnVuY3Rpb24gb3duS2V5cyhvYmplY3QsIGVudW1lcmFibGVPbmx5KSB7IHZhciBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KTsgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHsgdmFyIHN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG9iamVjdCk7IGlmIChlbnVtZXJhYmxlT25seSkgc3ltYm9scyA9IHN5bWJvbHMuZmlsdGVyKGZ1bmN0aW9uIChzeW0pIHsgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LCBzeW0pLmVudW1lcmFibGU7IH0pOyBrZXlzLnB1c2guYXBwbHkoa2V5cywgc3ltYm9scyk7IH0gcmV0dXJuIGtleXM7IH1cblxuZnVuY3Rpb24gX29iamVjdFNwcmVhZCh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXSAhPSBudWxsID8gYXJndW1lbnRzW2ldIDoge307IGlmIChpICUgMikgeyBvd25LZXlzKE9iamVjdChzb3VyY2UpLCB0cnVlKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsgX2RlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBzb3VyY2Vba2V5XSk7IH0pOyB9IGVsc2UgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoc291cmNlKSk7IH0gZWxzZSB7IG93bktleXMoT2JqZWN0KHNvdXJjZSkpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc291cmNlLCBrZXkpKTsgfSk7IH0gfSByZXR1cm4gdGFyZ2V0OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH1cblxuZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIF9zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcyk7IH1cblxuZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgX3NldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IG8uX19wcm90b19fID0gcDsgcmV0dXJuIG87IH07IHJldHVybiBfc2V0UHJvdG90eXBlT2YobywgcCk7IH1cblxuZnVuY3Rpb24gX2NyZWF0ZVN1cGVyKERlcml2ZWQpIHsgdmFyIGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCk7IHJldHVybiBmdW5jdGlvbiBfY3JlYXRlU3VwZXJJbnRlcm5hbCgpIHsgdmFyIFN1cGVyID0gX2dldFByb3RvdHlwZU9mKERlcml2ZWQpLCByZXN1bHQ7IGlmIChoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KSB7IHZhciBOZXdUYXJnZXQgPSBfZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3I7IHJlc3VsdCA9IFJlZmxlY3QuY29uc3RydWN0KFN1cGVyLCBhcmd1bWVudHMsIE5ld1RhcmdldCk7IH0gZWxzZSB7IHJlc3VsdCA9IFN1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH0gcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIHJlc3VsdCk7IH07IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoY2FsbCAmJiAoX3R5cGVvZihjYWxsKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkgeyByZXR1cm4gY2FsbDsgfSByZXR1cm4gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKTsgfVxuXG5mdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpIHsgaWYgKHNlbGYgPT09IHZvaWQgMCkgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIHNlbGY7IH1cblxuZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHsgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiIHx8ICFSZWZsZWN0LmNvbnN0cnVjdCkgcmV0dXJuIGZhbHNlOyBpZiAoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSkgcmV0dXJuIGZhbHNlOyBpZiAodHlwZW9mIFByb3h5ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB0cnVlOyB0cnkgeyBEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFJlZmxlY3QuY29uc3RydWN0KERhdGUsIFtdLCBmdW5jdGlvbiAoKSB7fSkpOyByZXR1cm4gdHJ1ZTsgfSBjYXRjaCAoZSkgeyByZXR1cm4gZmFsc2U7IH0gfVxuXG5mdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyByZXR1cm4gby5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pOyB9OyByZXR1cm4gX2dldFByb3RvdHlwZU9mKG8pOyB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsgaWYgKGtleSBpbiBvYmopIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsgfSBlbHNlIHsgb2JqW2tleV0gPSB2YWx1ZTsgfSByZXR1cm4gb2JqOyB9XG5cbnZhciBJbm5lclNsaWRlciA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoSW5uZXJTbGlkZXIsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIHZhciBfc3VwZXIgPSBfY3JlYXRlU3VwZXIoSW5uZXJTbGlkZXIpO1xuXG4gIGZ1bmN0aW9uIElubmVyU2xpZGVyKHByb3BzKSB7XG4gICAgdmFyIF90aGlzO1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIElubmVyU2xpZGVyKTtcblxuICAgIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgcHJvcHMpO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcImxpc3RSZWZIYW5kbGVyXCIsIGZ1bmN0aW9uIChyZWYpIHtcbiAgICAgIHJldHVybiBfdGhpcy5saXN0ID0gcmVmO1xuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcInRyYWNrUmVmSGFuZGxlclwiLCBmdW5jdGlvbiAocmVmKSB7XG4gICAgICByZXR1cm4gX3RoaXMudHJhY2sgPSByZWY7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwiYWRhcHRIZWlnaHRcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKF90aGlzLnByb3BzLmFkYXB0aXZlSGVpZ2h0ICYmIF90aGlzLmxpc3QpIHtcbiAgICAgICAgdmFyIGVsZW0gPSBfdGhpcy5saXN0LnF1ZXJ5U2VsZWN0b3IoXCJbZGF0YS1pbmRleD1cXFwiXCIuY29uY2F0KF90aGlzLnN0YXRlLmN1cnJlbnRTbGlkZSwgXCJcXFwiXVwiKSk7XG5cbiAgICAgICAgX3RoaXMubGlzdC5zdHlsZS5oZWlnaHQgPSAoMCwgX2lubmVyU2xpZGVyVXRpbHMuZ2V0SGVpZ2h0KShlbGVtKSArIFwicHhcIjtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJjb21wb25lbnREaWRNb3VudFwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICBfdGhpcy5wcm9wcy5vbkluaXQgJiYgX3RoaXMucHJvcHMub25Jbml0KCk7XG5cbiAgICAgIGlmIChfdGhpcy5wcm9wcy5sYXp5TG9hZCkge1xuICAgICAgICB2YXIgc2xpZGVzVG9Mb2FkID0gKDAsIF9pbm5lclNsaWRlclV0aWxzLmdldE9uRGVtYW5kTGF6eVNsaWRlcykoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBfdGhpcy5wcm9wcyksIF90aGlzLnN0YXRlKSk7XG5cbiAgICAgICAgaWYgKHNsaWRlc1RvTG9hZC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgX3RoaXMuc2V0U3RhdGUoZnVuY3Rpb24gKHByZXZTdGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgbGF6eUxvYWRlZExpc3Q6IHByZXZTdGF0ZS5sYXp5TG9hZGVkTGlzdC5jb25jYXQoc2xpZGVzVG9Mb2FkKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGlmIChfdGhpcy5wcm9wcy5vbkxhenlMb2FkKSB7XG4gICAgICAgICAgICBfdGhpcy5wcm9wcy5vbkxhenlMb2FkKHNsaWRlc1RvTG9hZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHZhciBzcGVjID0gX29iamVjdFNwcmVhZCh7XG4gICAgICAgIGxpc3RSZWY6IF90aGlzLmxpc3QsXG4gICAgICAgIHRyYWNrUmVmOiBfdGhpcy50cmFja1xuICAgICAgfSwgX3RoaXMucHJvcHMpO1xuXG4gICAgICBfdGhpcy51cGRhdGVTdGF0ZShzcGVjLCB0cnVlLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIF90aGlzLmFkYXB0SGVpZ2h0KCk7XG5cbiAgICAgICAgX3RoaXMucHJvcHMuYXV0b3BsYXkgJiYgX3RoaXMuYXV0b1BsYXkoXCJ1cGRhdGVcIik7XG4gICAgICB9KTtcblxuICAgICAgaWYgKF90aGlzLnByb3BzLmxhenlMb2FkID09PSBcInByb2dyZXNzaXZlXCIpIHtcbiAgICAgICAgX3RoaXMubGF6eUxvYWRUaW1lciA9IHNldEludGVydmFsKF90aGlzLnByb2dyZXNzaXZlTGF6eUxvYWQsIDEwMDApO1xuICAgICAgfVxuXG4gICAgICBfdGhpcy5ybyA9IG5ldyBfcmVzaXplT2JzZXJ2ZXJQb2x5ZmlsbFtcImRlZmF1bHRcIl0oZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoX3RoaXMuc3RhdGUuYW5pbWF0aW5nKSB7XG4gICAgICAgICAgX3RoaXMub25XaW5kb3dSZXNpemVkKGZhbHNlKTsgLy8gZG9uJ3Qgc2V0IHRyYWNrU3R5bGUgaGVuY2UgZG9uJ3QgYnJlYWsgYW5pbWF0aW9uXG5cblxuICAgICAgICAgIF90aGlzLmNhbGxiYWNrVGltZXJzLnB1c2goc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gX3RoaXMub25XaW5kb3dSZXNpemVkKCk7XG4gICAgICAgICAgfSwgX3RoaXMucHJvcHMuc3BlZWQpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBfdGhpcy5vbldpbmRvd1Jlc2l6ZWQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIF90aGlzLnJvLm9ic2VydmUoX3RoaXMubGlzdCk7XG5cbiAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwgJiYgQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLnNsaWNrLXNsaWRlXCIpLCBmdW5jdGlvbiAoc2xpZGUpIHtcbiAgICAgICAgc2xpZGUub25mb2N1cyA9IF90aGlzLnByb3BzLnBhdXNlT25Gb2N1cyA/IF90aGlzLm9uU2xpZGVGb2N1cyA6IG51bGw7XG4gICAgICAgIHNsaWRlLm9uYmx1ciA9IF90aGlzLnByb3BzLnBhdXNlT25Gb2N1cyA/IF90aGlzLm9uU2xpZGVCbHVyIDogbnVsbDtcbiAgICAgIH0pO1xuXG4gICAgICBpZiAod2luZG93LmFkZEV2ZW50TGlzdGVuZXIpIHtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgX3RoaXMub25XaW5kb3dSZXNpemVkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHdpbmRvdy5hdHRhY2hFdmVudChcIm9ucmVzaXplXCIsIF90aGlzLm9uV2luZG93UmVzaXplZCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwiY29tcG9uZW50V2lsbFVubW91bnRcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKF90aGlzLmFuaW1hdGlvbkVuZENhbGxiYWNrKSB7XG4gICAgICAgIGNsZWFyVGltZW91dChfdGhpcy5hbmltYXRpb25FbmRDYWxsYmFjayk7XG4gICAgICB9XG5cbiAgICAgIGlmIChfdGhpcy5sYXp5TG9hZFRpbWVyKSB7XG4gICAgICAgIGNsZWFySW50ZXJ2YWwoX3RoaXMubGF6eUxvYWRUaW1lcik7XG4gICAgICB9XG5cbiAgICAgIGlmIChfdGhpcy5jYWxsYmFja1RpbWVycy5sZW5ndGgpIHtcbiAgICAgICAgX3RoaXMuY2FsbGJhY2tUaW1lcnMuZm9yRWFjaChmdW5jdGlvbiAodGltZXIpIHtcbiAgICAgICAgICByZXR1cm4gY2xlYXJUaW1lb3V0KHRpbWVyKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgX3RoaXMuY2FsbGJhY2tUaW1lcnMgPSBbXTtcbiAgICAgIH1cblxuICAgICAgaWYgKHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKSB7XG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIF90aGlzLm9uV2luZG93UmVzaXplZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB3aW5kb3cuZGV0YWNoRXZlbnQoXCJvbnJlc2l6ZVwiLCBfdGhpcy5vbldpbmRvd1Jlc2l6ZWQpO1xuICAgICAgfVxuXG4gICAgICBpZiAoX3RoaXMuYXV0b3BsYXlUaW1lcikge1xuICAgICAgICBjbGVhckludGVydmFsKF90aGlzLmF1dG9wbGF5VGltZXIpO1xuICAgICAgfVxuXG4gICAgICBfdGhpcy5yby5kaXNjb25uZWN0KCk7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwiY29tcG9uZW50RGlkVXBkYXRlXCIsIGZ1bmN0aW9uIChwcmV2UHJvcHMpIHtcbiAgICAgIF90aGlzLmNoZWNrSW1hZ2VzTG9hZCgpO1xuXG4gICAgICBfdGhpcy5wcm9wcy5vblJlSW5pdCAmJiBfdGhpcy5wcm9wcy5vblJlSW5pdCgpO1xuXG4gICAgICBpZiAoX3RoaXMucHJvcHMubGF6eUxvYWQpIHtcbiAgICAgICAgdmFyIHNsaWRlc1RvTG9hZCA9ICgwLCBfaW5uZXJTbGlkZXJVdGlscy5nZXRPbkRlbWFuZExhenlTbGlkZXMpKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgX3RoaXMucHJvcHMpLCBfdGhpcy5zdGF0ZSkpO1xuXG4gICAgICAgIGlmIChzbGlkZXNUb0xvYWQubGVuZ3RoID4gMCkge1xuICAgICAgICAgIF90aGlzLnNldFN0YXRlKGZ1bmN0aW9uIChwcmV2U3RhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGxhenlMb2FkZWRMaXN0OiBwcmV2U3RhdGUubGF6eUxvYWRlZExpc3QuY29uY2F0KHNsaWRlc1RvTG9hZClcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBpZiAoX3RoaXMucHJvcHMub25MYXp5TG9hZCkge1xuICAgICAgICAgICAgX3RoaXMucHJvcHMub25MYXp5TG9hZChzbGlkZXNUb0xvYWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSAvLyBpZiAodGhpcy5wcm9wcy5vbkxhenlMb2FkKSB7XG4gICAgICAvLyAgIHRoaXMucHJvcHMub25MYXp5TG9hZChbbGVmdE1vc3RTbGlkZV0pXG4gICAgICAvLyB9XG5cblxuICAgICAgX3RoaXMuYWRhcHRIZWlnaHQoKTtcblxuICAgICAgdmFyIHNwZWMgPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe1xuICAgICAgICBsaXN0UmVmOiBfdGhpcy5saXN0LFxuICAgICAgICB0cmFja1JlZjogX3RoaXMudHJhY2tcbiAgICAgIH0sIF90aGlzLnByb3BzKSwgX3RoaXMuc3RhdGUpO1xuXG4gICAgICB2YXIgc2V0VHJhY2tTdHlsZSA9IF90aGlzLmRpZFByb3BzQ2hhbmdlKHByZXZQcm9wcyk7XG5cbiAgICAgIHNldFRyYWNrU3R5bGUgJiYgX3RoaXMudXBkYXRlU3RhdGUoc3BlYywgc2V0VHJhY2tTdHlsZSwgZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoX3RoaXMuc3RhdGUuY3VycmVudFNsaWRlID49IF9yZWFjdFtcImRlZmF1bHRcIl0uQ2hpbGRyZW4uY291bnQoX3RoaXMucHJvcHMuY2hpbGRyZW4pKSB7XG4gICAgICAgICAgX3RoaXMuY2hhbmdlU2xpZGUoe1xuICAgICAgICAgICAgbWVzc2FnZTogXCJpbmRleFwiLFxuICAgICAgICAgICAgaW5kZXg6IF9yZWFjdFtcImRlZmF1bHRcIl0uQ2hpbGRyZW4uY291bnQoX3RoaXMucHJvcHMuY2hpbGRyZW4pIC0gX3RoaXMucHJvcHMuc2xpZGVzVG9TaG93LFxuICAgICAgICAgICAgY3VycmVudFNsaWRlOiBfdGhpcy5zdGF0ZS5jdXJyZW50U2xpZGVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChfdGhpcy5wcm9wcy5hdXRvcGxheSkge1xuICAgICAgICAgIF90aGlzLmF1dG9QbGF5KFwidXBkYXRlXCIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIF90aGlzLnBhdXNlKFwicGF1c2VkXCIpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJvbldpbmRvd1Jlc2l6ZWRcIiwgZnVuY3Rpb24gKHNldFRyYWNrU3R5bGUpIHtcbiAgICAgIGlmIChfdGhpcy5kZWJvdW5jZWRSZXNpemUpIF90aGlzLmRlYm91bmNlZFJlc2l6ZS5jYW5jZWwoKTtcbiAgICAgIF90aGlzLmRlYm91bmNlZFJlc2l6ZSA9ICgwLCBfbG9kYXNoW1wiZGVmYXVsdFwiXSkoZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gX3RoaXMucmVzaXplV2luZG93KHNldFRyYWNrU3R5bGUpO1xuICAgICAgfSwgNTApO1xuXG4gICAgICBfdGhpcy5kZWJvdW5jZWRSZXNpemUoKTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJyZXNpemVXaW5kb3dcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIHNldFRyYWNrU3R5bGUgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHRydWU7XG4gICAgICB2YXIgaXNUcmFja01vdW50ZWQgPSBCb29sZWFuKF90aGlzLnRyYWNrICYmIF90aGlzLnRyYWNrLm5vZGUpOyAvLyBwcmV2ZW50IHdhcm5pbmc6IHNldHRpbmcgc3RhdGUgb24gdW5tb3VudGVkIGNvbXBvbmVudCAoc2VydmVyIHNpZGUgcmVuZGVyaW5nKVxuXG4gICAgICBpZiAoIWlzVHJhY2tNb3VudGVkKSByZXR1cm47XG5cbiAgICAgIHZhciBzcGVjID0gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHtcbiAgICAgICAgbGlzdFJlZjogX3RoaXMubGlzdCxcbiAgICAgICAgdHJhY2tSZWY6IF90aGlzLnRyYWNrXG4gICAgICB9LCBfdGhpcy5wcm9wcyksIF90aGlzLnN0YXRlKTtcblxuICAgICAgX3RoaXMudXBkYXRlU3RhdGUoc3BlYywgc2V0VHJhY2tTdHlsZSwgZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoX3RoaXMucHJvcHMuYXV0b3BsYXkpIF90aGlzLmF1dG9QbGF5KFwidXBkYXRlXCIpO2Vsc2UgX3RoaXMucGF1c2UoXCJwYXVzZWRcIik7XG4gICAgICB9KTsgLy8gYW5pbWF0aW5nIHN0YXRlIHNob3VsZCBiZSBjbGVhcmVkIHdoaWxlIHJlc2l6aW5nLCBvdGhlcndpc2UgYXV0b3BsYXkgc3RvcHMgd29ya2luZ1xuXG5cbiAgICAgIF90aGlzLnNldFN0YXRlKHtcbiAgICAgICAgYW5pbWF0aW5nOiBmYWxzZVxuICAgICAgfSk7XG5cbiAgICAgIGNsZWFyVGltZW91dChfdGhpcy5hbmltYXRpb25FbmRDYWxsYmFjayk7XG4gICAgICBkZWxldGUgX3RoaXMuYW5pbWF0aW9uRW5kQ2FsbGJhY2s7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwidXBkYXRlU3RhdGVcIiwgZnVuY3Rpb24gKHNwZWMsIHNldFRyYWNrU3R5bGUsIGNhbGxiYWNrKSB7XG4gICAgICB2YXIgdXBkYXRlZFN0YXRlID0gKDAsIF9pbm5lclNsaWRlclV0aWxzLmluaXRpYWxpemVkU3RhdGUpKHNwZWMpO1xuICAgICAgc3BlYyA9IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzcGVjKSwgdXBkYXRlZFN0YXRlKSwge30sIHtcbiAgICAgICAgc2xpZGVJbmRleDogdXBkYXRlZFN0YXRlLmN1cnJlbnRTbGlkZVxuICAgICAgfSk7XG4gICAgICB2YXIgdGFyZ2V0TGVmdCA9ICgwLCBfaW5uZXJTbGlkZXJVdGlscy5nZXRUcmFja0xlZnQpKHNwZWMpO1xuICAgICAgc3BlYyA9IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgc3BlYyksIHt9LCB7XG4gICAgICAgIGxlZnQ6IHRhcmdldExlZnRcbiAgICAgIH0pO1xuICAgICAgdmFyIHRyYWNrU3R5bGUgPSAoMCwgX2lubmVyU2xpZGVyVXRpbHMuZ2V0VHJhY2tDU1MpKHNwZWMpO1xuXG4gICAgICBpZiAoc2V0VHJhY2tTdHlsZSB8fCBfcmVhY3RbXCJkZWZhdWx0XCJdLkNoaWxkcmVuLmNvdW50KF90aGlzLnByb3BzLmNoaWxkcmVuKSAhPT0gX3JlYWN0W1wiZGVmYXVsdFwiXS5DaGlsZHJlbi5jb3VudChzcGVjLmNoaWxkcmVuKSkge1xuICAgICAgICB1cGRhdGVkU3RhdGVbXCJ0cmFja1N0eWxlXCJdID0gdHJhY2tTdHlsZTtcbiAgICAgIH1cblxuICAgICAgX3RoaXMuc2V0U3RhdGUodXBkYXRlZFN0YXRlLCBjYWxsYmFjayk7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwic3NySW5pdFwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAoX3RoaXMucHJvcHMudmFyaWFibGVXaWR0aCkge1xuICAgICAgICB2YXIgX3RyYWNrV2lkdGggPSAwLFxuICAgICAgICAgICAgX3RyYWNrTGVmdCA9IDA7XG4gICAgICAgIHZhciBjaGlsZHJlbldpZHRocyA9IFtdO1xuICAgICAgICB2YXIgcHJlQ2xvbmVzID0gKDAsIF9pbm5lclNsaWRlclV0aWxzLmdldFByZUNsb25lcykoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIF90aGlzLnByb3BzKSwgX3RoaXMuc3RhdGUpLCB7fSwge1xuICAgICAgICAgIHNsaWRlQ291bnQ6IF90aGlzLnByb3BzLmNoaWxkcmVuLmxlbmd0aFxuICAgICAgICB9KSk7XG4gICAgICAgIHZhciBwb3N0Q2xvbmVzID0gKDAsIF9pbm5lclNsaWRlclV0aWxzLmdldFBvc3RDbG9uZXMpKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBfdGhpcy5wcm9wcyksIF90aGlzLnN0YXRlKSwge30sIHtcbiAgICAgICAgICBzbGlkZUNvdW50OiBfdGhpcy5wcm9wcy5jaGlsZHJlbi5sZW5ndGhcbiAgICAgICAgfSkpO1xuXG4gICAgICAgIF90aGlzLnByb3BzLmNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgICAgICAgY2hpbGRyZW5XaWR0aHMucHVzaChjaGlsZC5wcm9wcy5zdHlsZS53aWR0aCk7XG4gICAgICAgICAgX3RyYWNrV2lkdGggKz0gY2hpbGQucHJvcHMuc3R5bGUud2lkdGg7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJlQ2xvbmVzOyBpKyspIHtcbiAgICAgICAgICBfdHJhY2tMZWZ0ICs9IGNoaWxkcmVuV2lkdGhzW2NoaWxkcmVuV2lkdGhzLmxlbmd0aCAtIDEgLSBpXTtcbiAgICAgICAgICBfdHJhY2tXaWR0aCArPSBjaGlsZHJlbldpZHRoc1tjaGlsZHJlbldpZHRocy5sZW5ndGggLSAxIC0gaV07XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgcG9zdENsb25lczsgX2krKykge1xuICAgICAgICAgIF90cmFja1dpZHRoICs9IGNoaWxkcmVuV2lkdGhzW19pXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAodmFyIF9pMiA9IDA7IF9pMiA8IF90aGlzLnN0YXRlLmN1cnJlbnRTbGlkZTsgX2kyKyspIHtcbiAgICAgICAgICBfdHJhY2tMZWZ0ICs9IGNoaWxkcmVuV2lkdGhzW19pMl07XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgX3RyYWNrU3R5bGUgPSB7XG4gICAgICAgICAgd2lkdGg6IF90cmFja1dpZHRoICsgXCJweFwiLFxuICAgICAgICAgIGxlZnQ6IC1fdHJhY2tMZWZ0ICsgXCJweFwiXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKF90aGlzLnByb3BzLmNlbnRlck1vZGUpIHtcbiAgICAgICAgICB2YXIgY3VycmVudFdpZHRoID0gXCJcIi5jb25jYXQoY2hpbGRyZW5XaWR0aHNbX3RoaXMuc3RhdGUuY3VycmVudFNsaWRlXSwgXCJweFwiKTtcbiAgICAgICAgICBfdHJhY2tTdHlsZS5sZWZ0ID0gXCJjYWxjKFwiLmNvbmNhdChfdHJhY2tTdHlsZS5sZWZ0LCBcIiArICgxMDAlIC0gXCIpLmNvbmNhdChjdXJyZW50V2lkdGgsIFwiKSAvIDIgKSBcIik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHRyYWNrU3R5bGU6IF90cmFja1N0eWxlXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHZhciBjaGlsZHJlbkNvdW50ID0gX3JlYWN0W1wiZGVmYXVsdFwiXS5DaGlsZHJlbi5jb3VudChfdGhpcy5wcm9wcy5jaGlsZHJlbik7XG5cbiAgICAgIHZhciBzcGVjID0gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIF90aGlzLnByb3BzKSwgX3RoaXMuc3RhdGUpLCB7fSwge1xuICAgICAgICBzbGlkZUNvdW50OiBjaGlsZHJlbkNvdW50XG4gICAgICB9KTtcblxuICAgICAgdmFyIHNsaWRlQ291bnQgPSAoMCwgX2lubmVyU2xpZGVyVXRpbHMuZ2V0UHJlQ2xvbmVzKShzcGVjKSArICgwLCBfaW5uZXJTbGlkZXJVdGlscy5nZXRQb3N0Q2xvbmVzKShzcGVjKSArIGNoaWxkcmVuQ291bnQ7XG4gICAgICB2YXIgdHJhY2tXaWR0aCA9IDEwMCAvIF90aGlzLnByb3BzLnNsaWRlc1RvU2hvdyAqIHNsaWRlQ291bnQ7XG4gICAgICB2YXIgc2xpZGVXaWR0aCA9IDEwMCAvIHNsaWRlQ291bnQ7XG4gICAgICB2YXIgdHJhY2tMZWZ0ID0gLXNsaWRlV2lkdGggKiAoKDAsIF9pbm5lclNsaWRlclV0aWxzLmdldFByZUNsb25lcykoc3BlYykgKyBfdGhpcy5zdGF0ZS5jdXJyZW50U2xpZGUpICogdHJhY2tXaWR0aCAvIDEwMDtcblxuICAgICAgaWYgKF90aGlzLnByb3BzLmNlbnRlck1vZGUpIHtcbiAgICAgICAgdHJhY2tMZWZ0ICs9ICgxMDAgLSBzbGlkZVdpZHRoICogdHJhY2tXaWR0aCAvIDEwMCkgLyAyO1xuICAgICAgfVxuXG4gICAgICB2YXIgdHJhY2tTdHlsZSA9IHtcbiAgICAgICAgd2lkdGg6IHRyYWNrV2lkdGggKyBcIiVcIixcbiAgICAgICAgbGVmdDogdHJhY2tMZWZ0ICsgXCIlXCJcbiAgICAgIH07XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzbGlkZVdpZHRoOiBzbGlkZVdpZHRoICsgXCIlXCIsXG4gICAgICAgIHRyYWNrU3R5bGU6IHRyYWNrU3R5bGVcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwiY2hlY2tJbWFnZXNMb2FkXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBpbWFnZXMgPSBfdGhpcy5saXN0ICYmIF90aGlzLmxpc3QucXVlcnlTZWxlY3RvckFsbCAmJiBfdGhpcy5saXN0LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuc2xpY2stc2xpZGUgaW1nXCIpIHx8IFtdO1xuICAgICAgdmFyIGltYWdlc0NvdW50ID0gaW1hZ2VzLmxlbmd0aCxcbiAgICAgICAgICBsb2FkZWRDb3VudCA9IDA7XG4gICAgICBBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGltYWdlcywgZnVuY3Rpb24gKGltYWdlKSB7XG4gICAgICAgIHZhciBoYW5kbGVyID0gZnVuY3Rpb24gaGFuZGxlcigpIHtcbiAgICAgICAgICByZXR1cm4gKytsb2FkZWRDb3VudCAmJiBsb2FkZWRDb3VudCA+PSBpbWFnZXNDb3VudCAmJiBfdGhpcy5vbldpbmRvd1Jlc2l6ZWQoKTtcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoIWltYWdlLm9uY2xpY2spIHtcbiAgICAgICAgICBpbWFnZS5vbmNsaWNrID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIGltYWdlLnBhcmVudE5vZGUuZm9jdXMoKTtcbiAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhciBwcmV2Q2xpY2tIYW5kbGVyID0gaW1hZ2Uub25jbGljaztcblxuICAgICAgICAgIGltYWdlLm9uY2xpY2sgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBwcmV2Q2xpY2tIYW5kbGVyKCk7XG4gICAgICAgICAgICBpbWFnZS5wYXJlbnROb2RlLmZvY3VzKCk7XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaW1hZ2Uub25sb2FkKSB7XG4gICAgICAgICAgaWYgKF90aGlzLnByb3BzLmxhenlMb2FkKSB7XG4gICAgICAgICAgICBpbWFnZS5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIF90aGlzLmFkYXB0SGVpZ2h0KCk7XG5cbiAgICAgICAgICAgICAgX3RoaXMuY2FsbGJhY2tUaW1lcnMucHVzaChzZXRUaW1lb3V0KF90aGlzLm9uV2luZG93UmVzaXplZCwgX3RoaXMucHJvcHMuc3BlZWQpKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGltYWdlLm9ubG9hZCA9IGhhbmRsZXI7XG5cbiAgICAgICAgICAgIGltYWdlLm9uZXJyb3IgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIGhhbmRsZXIoKTtcbiAgICAgICAgICAgICAgX3RoaXMucHJvcHMub25MYXp5TG9hZEVycm9yICYmIF90aGlzLnByb3BzLm9uTGF6eUxvYWRFcnJvcigpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcInByb2dyZXNzaXZlTGF6eUxvYWRcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIHNsaWRlc1RvTG9hZCA9IFtdO1xuXG4gICAgICB2YXIgc3BlYyA9IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgX3RoaXMucHJvcHMpLCBfdGhpcy5zdGF0ZSk7XG5cbiAgICAgIGZvciAodmFyIGluZGV4ID0gX3RoaXMuc3RhdGUuY3VycmVudFNsaWRlOyBpbmRleCA8IF90aGlzLnN0YXRlLnNsaWRlQ291bnQgKyAoMCwgX2lubmVyU2xpZGVyVXRpbHMuZ2V0UG9zdENsb25lcykoc3BlYyk7IGluZGV4KyspIHtcbiAgICAgICAgaWYgKF90aGlzLnN0YXRlLmxhenlMb2FkZWRMaXN0LmluZGV4T2YoaW5kZXgpIDwgMCkge1xuICAgICAgICAgIHNsaWRlc1RvTG9hZC5wdXNoKGluZGV4KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBmb3IgKHZhciBfaW5kZXggPSBfdGhpcy5zdGF0ZS5jdXJyZW50U2xpZGUgLSAxOyBfaW5kZXggPj0gLSgwLCBfaW5uZXJTbGlkZXJVdGlscy5nZXRQcmVDbG9uZXMpKHNwZWMpOyBfaW5kZXgtLSkge1xuICAgICAgICBpZiAoX3RoaXMuc3RhdGUubGF6eUxvYWRlZExpc3QuaW5kZXhPZihfaW5kZXgpIDwgMCkge1xuICAgICAgICAgIHNsaWRlc1RvTG9hZC5wdXNoKF9pbmRleCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHNsaWRlc1RvTG9hZC5sZW5ndGggPiAwKSB7XG4gICAgICAgIF90aGlzLnNldFN0YXRlKGZ1bmN0aW9uIChzdGF0ZSkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBsYXp5TG9hZGVkTGlzdDogc3RhdGUubGF6eUxvYWRlZExpc3QuY29uY2F0KHNsaWRlc1RvTG9hZClcbiAgICAgICAgICB9O1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoX3RoaXMucHJvcHMub25MYXp5TG9hZCkge1xuICAgICAgICAgIF90aGlzLnByb3BzLm9uTGF6eUxvYWQoc2xpZGVzVG9Mb2FkKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKF90aGlzLmxhenlMb2FkVGltZXIpIHtcbiAgICAgICAgICBjbGVhckludGVydmFsKF90aGlzLmxhenlMb2FkVGltZXIpO1xuICAgICAgICAgIGRlbGV0ZSBfdGhpcy5sYXp5TG9hZFRpbWVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwic2xpZGVIYW5kbGVyXCIsIGZ1bmN0aW9uIChpbmRleCkge1xuICAgICAgdmFyIGRvbnRBbmltYXRlID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiBmYWxzZTtcbiAgICAgIHZhciBfdGhpcyRwcm9wcyA9IF90aGlzLnByb3BzLFxuICAgICAgICAgIGFzTmF2Rm9yID0gX3RoaXMkcHJvcHMuYXNOYXZGb3IsXG4gICAgICAgICAgYmVmb3JlQ2hhbmdlID0gX3RoaXMkcHJvcHMuYmVmb3JlQ2hhbmdlLFxuICAgICAgICAgIG9uTGF6eUxvYWQgPSBfdGhpcyRwcm9wcy5vbkxhenlMb2FkLFxuICAgICAgICAgIHNwZWVkID0gX3RoaXMkcHJvcHMuc3BlZWQsXG4gICAgICAgICAgYWZ0ZXJDaGFuZ2UgPSBfdGhpcyRwcm9wcy5hZnRlckNoYW5nZTsgLy8gY2FwdHVyZSBjdXJyZW50c2xpZGUgYmVmb3JlIHN0YXRlIGlzIHVwZGF0ZWRcblxuICAgICAgdmFyIGN1cnJlbnRTbGlkZSA9IF90aGlzLnN0YXRlLmN1cnJlbnRTbGlkZTtcblxuICAgICAgdmFyIF9zbGlkZUhhbmRsZXIgPSAoMCwgX2lubmVyU2xpZGVyVXRpbHMuc2xpZGVIYW5kbGVyKShfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7XG4gICAgICAgIGluZGV4OiBpbmRleFxuICAgICAgfSwgX3RoaXMucHJvcHMpLCBfdGhpcy5zdGF0ZSksIHt9LCB7XG4gICAgICAgIHRyYWNrUmVmOiBfdGhpcy50cmFjayxcbiAgICAgICAgdXNlQ1NTOiBfdGhpcy5wcm9wcy51c2VDU1MgJiYgIWRvbnRBbmltYXRlXG4gICAgICB9KSksXG4gICAgICAgICAgc3RhdGUgPSBfc2xpZGVIYW5kbGVyLnN0YXRlLFxuICAgICAgICAgIG5leHRTdGF0ZSA9IF9zbGlkZUhhbmRsZXIubmV4dFN0YXRlO1xuXG4gICAgICBpZiAoIXN0YXRlKSByZXR1cm47XG4gICAgICBiZWZvcmVDaGFuZ2UgJiYgYmVmb3JlQ2hhbmdlKGN1cnJlbnRTbGlkZSwgc3RhdGUuY3VycmVudFNsaWRlKTtcbiAgICAgIHZhciBzbGlkZXNUb0xvYWQgPSBzdGF0ZS5sYXp5TG9hZGVkTGlzdC5maWx0ZXIoZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBfdGhpcy5zdGF0ZS5sYXp5TG9hZGVkTGlzdC5pbmRleE9mKHZhbHVlKSA8IDA7XG4gICAgICB9KTtcbiAgICAgIG9uTGF6eUxvYWQgJiYgc2xpZGVzVG9Mb2FkLmxlbmd0aCA+IDAgJiYgb25MYXp5TG9hZChzbGlkZXNUb0xvYWQpO1xuXG4gICAgICBpZiAoIV90aGlzLnByb3BzLndhaXRGb3JBbmltYXRlICYmIF90aGlzLmFuaW1hdGlvbkVuZENhbGxiYWNrKSB7XG4gICAgICAgIGNsZWFyVGltZW91dChfdGhpcy5hbmltYXRpb25FbmRDYWxsYmFjayk7XG4gICAgICAgIGFmdGVyQ2hhbmdlICYmIGFmdGVyQ2hhbmdlKGN1cnJlbnRTbGlkZSk7XG4gICAgICAgIGRlbGV0ZSBfdGhpcy5hbmltYXRpb25FbmRDYWxsYmFjaztcbiAgICAgIH1cblxuICAgICAgX3RoaXMuc2V0U3RhdGUoc3RhdGUsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgLy8gYXNOYXZGb3JJbmRleCBjaGVjayBpcyB0byBhdm9pZCByZWN1cnNpdmUgY2FsbHMgb2Ygc2xpZGVIYW5kbGVyIGluIHdhaXRGb3JBbmltYXRlPWZhbHNlIG1vZGVcbiAgICAgICAgaWYgKGFzTmF2Rm9yICYmIF90aGlzLmFzTmF2Rm9ySW5kZXggIT09IGluZGV4KSB7XG4gICAgICAgICAgX3RoaXMuYXNOYXZGb3JJbmRleCA9IGluZGV4O1xuICAgICAgICAgIGFzTmF2Rm9yLmlubmVyU2xpZGVyLnNsaWRlSGFuZGxlcihpbmRleCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIW5leHRTdGF0ZSkgcmV0dXJuO1xuICAgICAgICBfdGhpcy5hbmltYXRpb25FbmRDYWxsYmFjayA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHZhciBhbmltYXRpbmcgPSBuZXh0U3RhdGUuYW5pbWF0aW5nLFxuICAgICAgICAgICAgICBmaXJzdEJhdGNoID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKG5leHRTdGF0ZSwgW1wiYW5pbWF0aW5nXCJdKTtcblxuICAgICAgICAgIF90aGlzLnNldFN0YXRlKGZpcnN0QmF0Y2gsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIF90aGlzLmNhbGxiYWNrVGltZXJzLnB1c2goc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIHJldHVybiBfdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW5nOiBhbmltYXRpbmdcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LCAxMCkpO1xuXG4gICAgICAgICAgICBhZnRlckNoYW5nZSAmJiBhZnRlckNoYW5nZShzdGF0ZS5jdXJyZW50U2xpZGUpO1xuICAgICAgICAgICAgZGVsZXRlIF90aGlzLmFuaW1hdGlvbkVuZENhbGxiYWNrO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9LCBzcGVlZCk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJjaGFuZ2VTbGlkZVwiLCBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgdmFyIGRvbnRBbmltYXRlID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiBmYWxzZTtcblxuICAgICAgdmFyIHNwZWMgPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIF90aGlzLnByb3BzKSwgX3RoaXMuc3RhdGUpO1xuXG4gICAgICB2YXIgdGFyZ2V0U2xpZGUgPSAoMCwgX2lubmVyU2xpZGVyVXRpbHMuY2hhbmdlU2xpZGUpKHNwZWMsIG9wdGlvbnMpO1xuICAgICAgaWYgKHRhcmdldFNsaWRlICE9PSAwICYmICF0YXJnZXRTbGlkZSkgcmV0dXJuO1xuXG4gICAgICBpZiAoZG9udEFuaW1hdGUgPT09IHRydWUpIHtcbiAgICAgICAgX3RoaXMuc2xpZGVIYW5kbGVyKHRhcmdldFNsaWRlLCBkb250QW5pbWF0ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBfdGhpcy5zbGlkZUhhbmRsZXIodGFyZ2V0U2xpZGUpO1xuICAgICAgfVxuXG4gICAgICBfdGhpcy5wcm9wcy5hdXRvcGxheSAmJiBfdGhpcy5hdXRvUGxheShcInVwZGF0ZVwiKTtcblxuICAgICAgaWYgKF90aGlzLnByb3BzLmZvY3VzT25TZWxlY3QpIHtcbiAgICAgICAgdmFyIG5vZGVzID0gX3RoaXMubGlzdC5xdWVyeVNlbGVjdG9yQWxsKFwiLnNsaWNrLWN1cnJlbnRcIik7XG5cbiAgICAgICAgbm9kZXNbMF0gJiYgbm9kZXNbMF0uZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJjbGlja0hhbmRsZXJcIiwgZnVuY3Rpb24gKGUpIHtcbiAgICAgIGlmIChfdGhpcy5jbGlja2FibGUgPT09IGZhbHNlKSB7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cblxuICAgICAgX3RoaXMuY2xpY2thYmxlID0gdHJ1ZTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJrZXlIYW5kbGVyXCIsIGZ1bmN0aW9uIChlKSB7XG4gICAgICB2YXIgZGlyID0gKDAsIF9pbm5lclNsaWRlclV0aWxzLmtleUhhbmRsZXIpKGUsIF90aGlzLnByb3BzLmFjY2Vzc2liaWxpdHksIF90aGlzLnByb3BzLnJ0bCk7XG4gICAgICBkaXIgIT09IFwiXCIgJiYgX3RoaXMuY2hhbmdlU2xpZGUoe1xuICAgICAgICBtZXNzYWdlOiBkaXJcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcInNlbGVjdEhhbmRsZXJcIiwgZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgIF90aGlzLmNoYW5nZVNsaWRlKG9wdGlvbnMpO1xuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcImRpc2FibGVCb2R5U2Nyb2xsXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBwcmV2ZW50RGVmYXVsdCA9IGZ1bmN0aW9uIHByZXZlbnREZWZhdWx0KGUpIHtcbiAgICAgICAgZSA9IGUgfHwgd2luZG93LmV2ZW50O1xuICAgICAgICBpZiAoZS5wcmV2ZW50RGVmYXVsdCkgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBlLnJldHVyblZhbHVlID0gZmFsc2U7XG4gICAgICB9O1xuXG4gICAgICB3aW5kb3cub250b3VjaG1vdmUgPSBwcmV2ZW50RGVmYXVsdDtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJlbmFibGVCb2R5U2Nyb2xsXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHdpbmRvdy5vbnRvdWNobW92ZSA9IG51bGw7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwic3dpcGVTdGFydFwiLCBmdW5jdGlvbiAoZSkge1xuICAgICAgaWYgKF90aGlzLnByb3BzLnZlcnRpY2FsU3dpcGluZykge1xuICAgICAgICBfdGhpcy5kaXNhYmxlQm9keVNjcm9sbCgpO1xuICAgICAgfVxuXG4gICAgICB2YXIgc3RhdGUgPSAoMCwgX2lubmVyU2xpZGVyVXRpbHMuc3dpcGVTdGFydCkoZSwgX3RoaXMucHJvcHMuc3dpcGUsIF90aGlzLnByb3BzLmRyYWdnYWJsZSk7XG4gICAgICBzdGF0ZSAhPT0gXCJcIiAmJiBfdGhpcy5zZXRTdGF0ZShzdGF0ZSk7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwic3dpcGVNb3ZlXCIsIGZ1bmN0aW9uIChlKSB7XG4gICAgICB2YXIgc3RhdGUgPSAoMCwgX2lubmVyU2xpZGVyVXRpbHMuc3dpcGVNb3ZlKShlLCBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgX3RoaXMucHJvcHMpLCBfdGhpcy5zdGF0ZSksIHt9LCB7XG4gICAgICAgIHRyYWNrUmVmOiBfdGhpcy50cmFjayxcbiAgICAgICAgbGlzdFJlZjogX3RoaXMubGlzdCxcbiAgICAgICAgc2xpZGVJbmRleDogX3RoaXMuc3RhdGUuY3VycmVudFNsaWRlXG4gICAgICB9KSk7XG4gICAgICBpZiAoIXN0YXRlKSByZXR1cm47XG5cbiAgICAgIGlmIChzdGF0ZVtcInN3aXBpbmdcIl0pIHtcbiAgICAgICAgX3RoaXMuY2xpY2thYmxlID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIF90aGlzLnNldFN0YXRlKHN0YXRlKTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJzd2lwZUVuZFwiLCBmdW5jdGlvbiAoZSkge1xuICAgICAgdmFyIHN0YXRlID0gKDAsIF9pbm5lclNsaWRlclV0aWxzLnN3aXBlRW5kKShlLCBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgX3RoaXMucHJvcHMpLCBfdGhpcy5zdGF0ZSksIHt9LCB7XG4gICAgICAgIHRyYWNrUmVmOiBfdGhpcy50cmFjayxcbiAgICAgICAgbGlzdFJlZjogX3RoaXMubGlzdCxcbiAgICAgICAgc2xpZGVJbmRleDogX3RoaXMuc3RhdGUuY3VycmVudFNsaWRlXG4gICAgICB9KSk7XG4gICAgICBpZiAoIXN0YXRlKSByZXR1cm47XG4gICAgICB2YXIgdHJpZ2dlclNsaWRlSGFuZGxlciA9IHN0YXRlW1widHJpZ2dlclNsaWRlSGFuZGxlclwiXTtcbiAgICAgIGRlbGV0ZSBzdGF0ZVtcInRyaWdnZXJTbGlkZUhhbmRsZXJcIl07XG5cbiAgICAgIF90aGlzLnNldFN0YXRlKHN0YXRlKTtcblxuICAgICAgaWYgKHRyaWdnZXJTbGlkZUhhbmRsZXIgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuXG4gICAgICBfdGhpcy5zbGlkZUhhbmRsZXIodHJpZ2dlclNsaWRlSGFuZGxlcik7XG5cbiAgICAgIGlmIChfdGhpcy5wcm9wcy52ZXJ0aWNhbFN3aXBpbmcpIHtcbiAgICAgICAgX3RoaXMuZW5hYmxlQm9keVNjcm9sbCgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcInRvdWNoRW5kXCIsIGZ1bmN0aW9uIChlKSB7XG4gICAgICBfdGhpcy5zd2lwZUVuZChlKTtcblxuICAgICAgX3RoaXMuY2xpY2thYmxlID0gdHJ1ZTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJzbGlja1ByZXZcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgLy8gdGhpcyBhbmQgZmVsbG93IG1ldGhvZHMgYXJlIHdyYXBwZWQgaW4gc2V0VGltZW91dFxuICAgICAgLy8gdG8gbWFrZSBzdXJlIGluaXRpYWxpemUgc2V0U3RhdGUgaGFzIGhhcHBlbmVkIGJlZm9yZVxuICAgICAgLy8gYW55IG9mIHN1Y2ggbWV0aG9kcyBhcmUgY2FsbGVkXG4gICAgICBfdGhpcy5jYWxsYmFja1RpbWVycy5wdXNoKHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gX3RoaXMuY2hhbmdlU2xpZGUoe1xuICAgICAgICAgIG1lc3NhZ2U6IFwicHJldmlvdXNcIlxuICAgICAgICB9KTtcbiAgICAgIH0sIDApKTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJzbGlja05leHRcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgX3RoaXMuY2FsbGJhY2tUaW1lcnMucHVzaChzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIF90aGlzLmNoYW5nZVNsaWRlKHtcbiAgICAgICAgICBtZXNzYWdlOiBcIm5leHRcIlxuICAgICAgICB9KTtcbiAgICAgIH0sIDApKTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJzbGlja0dvVG9cIiwgZnVuY3Rpb24gKHNsaWRlKSB7XG4gICAgICB2YXIgZG9udEFuaW1hdGUgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IGZhbHNlO1xuICAgICAgc2xpZGUgPSBOdW1iZXIoc2xpZGUpO1xuICAgICAgaWYgKGlzTmFOKHNsaWRlKSkgcmV0dXJuIFwiXCI7XG5cbiAgICAgIF90aGlzLmNhbGxiYWNrVGltZXJzLnB1c2goc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBfdGhpcy5jaGFuZ2VTbGlkZSh7XG4gICAgICAgICAgbWVzc2FnZTogXCJpbmRleFwiLFxuICAgICAgICAgIGluZGV4OiBzbGlkZSxcbiAgICAgICAgICBjdXJyZW50U2xpZGU6IF90aGlzLnN0YXRlLmN1cnJlbnRTbGlkZVxuICAgICAgICB9LCBkb250QW5pbWF0ZSk7XG4gICAgICB9LCAwKSk7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwicGxheVwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgbmV4dEluZGV4O1xuXG4gICAgICBpZiAoX3RoaXMucHJvcHMucnRsKSB7XG4gICAgICAgIG5leHRJbmRleCA9IF90aGlzLnN0YXRlLmN1cnJlbnRTbGlkZSAtIF90aGlzLnByb3BzLnNsaWRlc1RvU2Nyb2xsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCgwLCBfaW5uZXJTbGlkZXJVdGlscy5jYW5Hb05leHQpKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgX3RoaXMucHJvcHMpLCBfdGhpcy5zdGF0ZSkpKSB7XG4gICAgICAgICAgbmV4dEluZGV4ID0gX3RoaXMuc3RhdGUuY3VycmVudFNsaWRlICsgX3RoaXMucHJvcHMuc2xpZGVzVG9TY3JvbGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIF90aGlzLnNsaWRlSGFuZGxlcihuZXh0SW5kZXgpO1xuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcImF1dG9QbGF5XCIsIGZ1bmN0aW9uIChwbGF5VHlwZSkge1xuICAgICAgaWYgKF90aGlzLmF1dG9wbGF5VGltZXIpIHtcbiAgICAgICAgY2xlYXJJbnRlcnZhbChfdGhpcy5hdXRvcGxheVRpbWVyKTtcbiAgICAgIH1cblxuICAgICAgdmFyIGF1dG9wbGF5aW5nID0gX3RoaXMuc3RhdGUuYXV0b3BsYXlpbmc7XG5cbiAgICAgIGlmIChwbGF5VHlwZSA9PT0gXCJ1cGRhdGVcIikge1xuICAgICAgICBpZiAoYXV0b3BsYXlpbmcgPT09IFwiaG92ZXJlZFwiIHx8IGF1dG9wbGF5aW5nID09PSBcImZvY3VzZWRcIiB8fCBhdXRvcGxheWluZyA9PT0gXCJwYXVzZWRcIikge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChwbGF5VHlwZSA9PT0gXCJsZWF2ZVwiKSB7XG4gICAgICAgIGlmIChhdXRvcGxheWluZyA9PT0gXCJwYXVzZWRcIiB8fCBhdXRvcGxheWluZyA9PT0gXCJmb2N1c2VkXCIpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAocGxheVR5cGUgPT09IFwiYmx1clwiKSB7XG4gICAgICAgIGlmIChhdXRvcGxheWluZyA9PT0gXCJwYXVzZWRcIiB8fCBhdXRvcGxheWluZyA9PT0gXCJob3ZlcmVkXCIpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgX3RoaXMuYXV0b3BsYXlUaW1lciA9IHNldEludGVydmFsKF90aGlzLnBsYXksIF90aGlzLnByb3BzLmF1dG9wbGF5U3BlZWQgKyA1MCk7XG5cbiAgICAgIF90aGlzLnNldFN0YXRlKHtcbiAgICAgICAgYXV0b3BsYXlpbmc6IFwicGxheWluZ1wiXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJwYXVzZVwiLCBmdW5jdGlvbiAocGF1c2VUeXBlKSB7XG4gICAgICBpZiAoX3RoaXMuYXV0b3BsYXlUaW1lcikge1xuICAgICAgICBjbGVhckludGVydmFsKF90aGlzLmF1dG9wbGF5VGltZXIpO1xuICAgICAgICBfdGhpcy5hdXRvcGxheVRpbWVyID0gbnVsbDtcbiAgICAgIH1cblxuICAgICAgdmFyIGF1dG9wbGF5aW5nID0gX3RoaXMuc3RhdGUuYXV0b3BsYXlpbmc7XG5cbiAgICAgIGlmIChwYXVzZVR5cGUgPT09IFwicGF1c2VkXCIpIHtcbiAgICAgICAgX3RoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgIGF1dG9wbGF5aW5nOiBcInBhdXNlZFwiXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmIChwYXVzZVR5cGUgPT09IFwiZm9jdXNlZFwiKSB7XG4gICAgICAgIGlmIChhdXRvcGxheWluZyA9PT0gXCJob3ZlcmVkXCIgfHwgYXV0b3BsYXlpbmcgPT09IFwicGxheWluZ1wiKSB7XG4gICAgICAgICAgX3RoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgYXV0b3BsYXlpbmc6IFwiZm9jdXNlZFwiXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIHBhdXNlVHlwZSAgaXMgJ2hvdmVyZWQnXG4gICAgICAgIGlmIChhdXRvcGxheWluZyA9PT0gXCJwbGF5aW5nXCIpIHtcbiAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICBhdXRvcGxheWluZzogXCJob3ZlcmVkXCJcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcIm9uRG90c092ZXJcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIF90aGlzLnByb3BzLmF1dG9wbGF5ICYmIF90aGlzLnBhdXNlKFwiaG92ZXJlZFwiKTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJvbkRvdHNMZWF2ZVwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gX3RoaXMucHJvcHMuYXV0b3BsYXkgJiYgX3RoaXMuc3RhdGUuYXV0b3BsYXlpbmcgPT09IFwiaG92ZXJlZFwiICYmIF90aGlzLmF1dG9QbGF5KFwibGVhdmVcIik7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwib25UcmFja092ZXJcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIF90aGlzLnByb3BzLmF1dG9wbGF5ICYmIF90aGlzLnBhdXNlKFwiaG92ZXJlZFwiKTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJvblRyYWNrTGVhdmVcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIF90aGlzLnByb3BzLmF1dG9wbGF5ICYmIF90aGlzLnN0YXRlLmF1dG9wbGF5aW5nID09PSBcImhvdmVyZWRcIiAmJiBfdGhpcy5hdXRvUGxheShcImxlYXZlXCIpO1xuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcIm9uU2xpZGVGb2N1c1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gX3RoaXMucHJvcHMuYXV0b3BsYXkgJiYgX3RoaXMucGF1c2UoXCJmb2N1c2VkXCIpO1xuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcIm9uU2xpZGVCbHVyXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBfdGhpcy5wcm9wcy5hdXRvcGxheSAmJiBfdGhpcy5zdGF0ZS5hdXRvcGxheWluZyA9PT0gXCJmb2N1c2VkXCIgJiYgX3RoaXMuYXV0b1BsYXkoXCJibHVyXCIpO1xuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcInJlbmRlclwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgY2xhc3NOYW1lID0gKDAsIF9jbGFzc25hbWVzW1wiZGVmYXVsdFwiXSkoXCJzbGljay1zbGlkZXJcIiwgX3RoaXMucHJvcHMuY2xhc3NOYW1lLCB7XG4gICAgICAgIFwic2xpY2stdmVydGljYWxcIjogX3RoaXMucHJvcHMudmVydGljYWwsXG4gICAgICAgIFwic2xpY2staW5pdGlhbGl6ZWRcIjogdHJ1ZVxuICAgICAgfSk7XG5cbiAgICAgIHZhciBzcGVjID0gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBfdGhpcy5wcm9wcyksIF90aGlzLnN0YXRlKTtcblxuICAgICAgdmFyIHRyYWNrUHJvcHMgPSAoMCwgX2lubmVyU2xpZGVyVXRpbHMuZXh0cmFjdE9iamVjdCkoc3BlYywgW1wiZmFkZVwiLCBcImNzc0Vhc2VcIiwgXCJzcGVlZFwiLCBcImluZmluaXRlXCIsIFwiY2VudGVyTW9kZVwiLCBcImZvY3VzT25TZWxlY3RcIiwgXCJjdXJyZW50U2xpZGVcIiwgXCJsYXp5TG9hZFwiLCBcImxhenlMb2FkZWRMaXN0XCIsIFwicnRsXCIsIFwic2xpZGVXaWR0aFwiLCBcInNsaWRlSGVpZ2h0XCIsIFwibGlzdEhlaWdodFwiLCBcInZlcnRpY2FsXCIsIFwic2xpZGVzVG9TaG93XCIsIFwic2xpZGVzVG9TY3JvbGxcIiwgXCJzbGlkZUNvdW50XCIsIFwidHJhY2tTdHlsZVwiLCBcInZhcmlhYmxlV2lkdGhcIiwgXCJ1bnNsaWNrXCIsIFwiY2VudGVyUGFkZGluZ1wiLCBcInRhcmdldFNsaWRlXCIsIFwidXNlQ1NTXCJdKTtcbiAgICAgIHZhciBwYXVzZU9uSG92ZXIgPSBfdGhpcy5wcm9wcy5wYXVzZU9uSG92ZXI7XG4gICAgICB0cmFja1Byb3BzID0gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCB0cmFja1Byb3BzKSwge30sIHtcbiAgICAgICAgb25Nb3VzZUVudGVyOiBwYXVzZU9uSG92ZXIgPyBfdGhpcy5vblRyYWNrT3ZlciA6IG51bGwsXG4gICAgICAgIG9uTW91c2VMZWF2ZTogcGF1c2VPbkhvdmVyID8gX3RoaXMub25UcmFja0xlYXZlIDogbnVsbCxcbiAgICAgICAgb25Nb3VzZU92ZXI6IHBhdXNlT25Ib3ZlciA/IF90aGlzLm9uVHJhY2tPdmVyIDogbnVsbCxcbiAgICAgICAgZm9jdXNPblNlbGVjdDogX3RoaXMucHJvcHMuZm9jdXNPblNlbGVjdCAmJiBfdGhpcy5jbGlja2FibGUgPyBfdGhpcy5zZWxlY3RIYW5kbGVyIDogbnVsbFxuICAgICAgfSk7XG4gICAgICB2YXIgZG90cztcblxuICAgICAgaWYgKF90aGlzLnByb3BzLmRvdHMgPT09IHRydWUgJiYgX3RoaXMuc3RhdGUuc2xpZGVDb3VudCA+PSBfdGhpcy5wcm9wcy5zbGlkZXNUb1Nob3cpIHtcbiAgICAgICAgdmFyIGRvdFByb3BzID0gKDAsIF9pbm5lclNsaWRlclV0aWxzLmV4dHJhY3RPYmplY3QpKHNwZWMsIFtcImRvdHNDbGFzc1wiLCBcInNsaWRlQ291bnRcIiwgXCJzbGlkZXNUb1Nob3dcIiwgXCJjdXJyZW50U2xpZGVcIiwgXCJzbGlkZXNUb1Njcm9sbFwiLCBcImNsaWNrSGFuZGxlclwiLCBcImNoaWxkcmVuXCIsIFwiY3VzdG9tUGFnaW5nXCIsIFwiaW5maW5pdGVcIiwgXCJhcHBlbmREb3RzXCJdKTtcbiAgICAgICAgdmFyIHBhdXNlT25Eb3RzSG92ZXIgPSBfdGhpcy5wcm9wcy5wYXVzZU9uRG90c0hvdmVyO1xuICAgICAgICBkb3RQcm9wcyA9IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgZG90UHJvcHMpLCB7fSwge1xuICAgICAgICAgIGNsaWNrSGFuZGxlcjogX3RoaXMuY2hhbmdlU2xpZGUsXG4gICAgICAgICAgb25Nb3VzZUVudGVyOiBwYXVzZU9uRG90c0hvdmVyID8gX3RoaXMub25Eb3RzTGVhdmUgOiBudWxsLFxuICAgICAgICAgIG9uTW91c2VPdmVyOiBwYXVzZU9uRG90c0hvdmVyID8gX3RoaXMub25Eb3RzT3ZlciA6IG51bGwsXG4gICAgICAgICAgb25Nb3VzZUxlYXZlOiBwYXVzZU9uRG90c0hvdmVyID8gX3RoaXMub25Eb3RzTGVhdmUgOiBudWxsXG4gICAgICAgIH0pO1xuICAgICAgICBkb3RzID0gLyojX19QVVJFX18qL19yZWFjdFtcImRlZmF1bHRcIl0uY3JlYXRlRWxlbWVudChfZG90cy5Eb3RzLCBkb3RQcm9wcyk7XG4gICAgICB9XG5cbiAgICAgIHZhciBwcmV2QXJyb3csIG5leHRBcnJvdztcbiAgICAgIHZhciBhcnJvd1Byb3BzID0gKDAsIF9pbm5lclNsaWRlclV0aWxzLmV4dHJhY3RPYmplY3QpKHNwZWMsIFtcImluZmluaXRlXCIsIFwiY2VudGVyTW9kZVwiLCBcImN1cnJlbnRTbGlkZVwiLCBcInNsaWRlQ291bnRcIiwgXCJzbGlkZXNUb1Nob3dcIiwgXCJwcmV2QXJyb3dcIiwgXCJuZXh0QXJyb3dcIl0pO1xuICAgICAgYXJyb3dQcm9wcy5jbGlja0hhbmRsZXIgPSBfdGhpcy5jaGFuZ2VTbGlkZTtcblxuICAgICAgaWYgKF90aGlzLnByb3BzLmFycm93cykge1xuICAgICAgICBwcmV2QXJyb3cgPSAvKiNfX1BVUkVfXyovX3JlYWN0W1wiZGVmYXVsdFwiXS5jcmVhdGVFbGVtZW50KF9hcnJvd3MuUHJldkFycm93LCBhcnJvd1Byb3BzKTtcbiAgICAgICAgbmV4dEFycm93ID0gLyojX19QVVJFX18qL19yZWFjdFtcImRlZmF1bHRcIl0uY3JlYXRlRWxlbWVudChfYXJyb3dzLk5leHRBcnJvdywgYXJyb3dQcm9wcyk7XG4gICAgICB9XG5cbiAgICAgIHZhciB2ZXJ0aWNhbEhlaWdodFN0eWxlID0gbnVsbDtcblxuICAgICAgaWYgKF90aGlzLnByb3BzLnZlcnRpY2FsKSB7XG4gICAgICAgIHZlcnRpY2FsSGVpZ2h0U3R5bGUgPSB7XG4gICAgICAgICAgaGVpZ2h0OiBfdGhpcy5zdGF0ZS5saXN0SGVpZ2h0XG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHZhciBjZW50ZXJQYWRkaW5nU3R5bGUgPSBudWxsO1xuXG4gICAgICBpZiAoX3RoaXMucHJvcHMudmVydGljYWwgPT09IGZhbHNlKSB7XG4gICAgICAgIGlmIChfdGhpcy5wcm9wcy5jZW50ZXJNb2RlID09PSB0cnVlKSB7XG4gICAgICAgICAgY2VudGVyUGFkZGluZ1N0eWxlID0ge1xuICAgICAgICAgICAgcGFkZGluZzogXCIwcHggXCIgKyBfdGhpcy5wcm9wcy5jZW50ZXJQYWRkaW5nXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKF90aGlzLnByb3BzLmNlbnRlck1vZGUgPT09IHRydWUpIHtcbiAgICAgICAgICBjZW50ZXJQYWRkaW5nU3R5bGUgPSB7XG4gICAgICAgICAgICBwYWRkaW5nOiBfdGhpcy5wcm9wcy5jZW50ZXJQYWRkaW5nICsgXCIgMHB4XCJcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHZhciBsaXN0U3R5bGUgPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHZlcnRpY2FsSGVpZ2h0U3R5bGUpLCBjZW50ZXJQYWRkaW5nU3R5bGUpO1xuXG4gICAgICB2YXIgdG91Y2hNb3ZlID0gX3RoaXMucHJvcHMudG91Y2hNb3ZlO1xuICAgICAgdmFyIGxpc3RQcm9wcyA9IHtcbiAgICAgICAgY2xhc3NOYW1lOiBcInNsaWNrLWxpc3RcIixcbiAgICAgICAgc3R5bGU6IGxpc3RTdHlsZSxcbiAgICAgICAgb25DbGljazogX3RoaXMuY2xpY2tIYW5kbGVyLFxuICAgICAgICBvbk1vdXNlRG93bjogdG91Y2hNb3ZlID8gX3RoaXMuc3dpcGVTdGFydCA6IG51bGwsXG4gICAgICAgIG9uTW91c2VNb3ZlOiBfdGhpcy5zdGF0ZS5kcmFnZ2luZyAmJiB0b3VjaE1vdmUgPyBfdGhpcy5zd2lwZU1vdmUgOiBudWxsLFxuICAgICAgICBvbk1vdXNlVXA6IHRvdWNoTW92ZSA/IF90aGlzLnN3aXBlRW5kIDogbnVsbCxcbiAgICAgICAgb25Nb3VzZUxlYXZlOiBfdGhpcy5zdGF0ZS5kcmFnZ2luZyAmJiB0b3VjaE1vdmUgPyBfdGhpcy5zd2lwZUVuZCA6IG51bGwsXG4gICAgICAgIG9uVG91Y2hTdGFydDogdG91Y2hNb3ZlID8gX3RoaXMuc3dpcGVTdGFydCA6IG51bGwsXG4gICAgICAgIG9uVG91Y2hNb3ZlOiBfdGhpcy5zdGF0ZS5kcmFnZ2luZyAmJiB0b3VjaE1vdmUgPyBfdGhpcy5zd2lwZU1vdmUgOiBudWxsLFxuICAgICAgICBvblRvdWNoRW5kOiB0b3VjaE1vdmUgPyBfdGhpcy50b3VjaEVuZCA6IG51bGwsXG4gICAgICAgIG9uVG91Y2hDYW5jZWw6IF90aGlzLnN0YXRlLmRyYWdnaW5nICYmIHRvdWNoTW92ZSA/IF90aGlzLnN3aXBlRW5kIDogbnVsbCxcbiAgICAgICAgb25LZXlEb3duOiBfdGhpcy5wcm9wcy5hY2Nlc3NpYmlsaXR5ID8gX3RoaXMua2V5SGFuZGxlciA6IG51bGxcbiAgICAgIH07XG4gICAgICB2YXIgaW5uZXJTbGlkZXJQcm9wcyA9IHtcbiAgICAgICAgY2xhc3NOYW1lOiBjbGFzc05hbWUsXG4gICAgICAgIGRpcjogXCJsdHJcIixcbiAgICAgICAgc3R5bGU6IF90aGlzLnByb3BzLnN0eWxlXG4gICAgICB9O1xuXG4gICAgICBpZiAoX3RoaXMucHJvcHMudW5zbGljaykge1xuICAgICAgICBsaXN0UHJvcHMgPSB7XG4gICAgICAgICAgY2xhc3NOYW1lOiBcInNsaWNrLWxpc3RcIlxuICAgICAgICB9O1xuICAgICAgICBpbm5lclNsaWRlclByb3BzID0ge1xuICAgICAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovX3JlYWN0W1wiZGVmYXVsdFwiXS5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIGlubmVyU2xpZGVyUHJvcHMsICFfdGhpcy5wcm9wcy51bnNsaWNrID8gcHJldkFycm93IDogXCJcIiwgLyojX19QVVJFX18qL19yZWFjdFtcImRlZmF1bHRcIl0uY3JlYXRlRWxlbWVudChcImRpdlwiLCBfZXh0ZW5kcyh7XG4gICAgICAgIHJlZjogX3RoaXMubGlzdFJlZkhhbmRsZXJcbiAgICAgIH0sIGxpc3RQcm9wcyksIC8qI19fUFVSRV9fKi9fcmVhY3RbXCJkZWZhdWx0XCJdLmNyZWF0ZUVsZW1lbnQoX3RyYWNrLlRyYWNrLCBfZXh0ZW5kcyh7XG4gICAgICAgIHJlZjogX3RoaXMudHJhY2tSZWZIYW5kbGVyXG4gICAgICB9LCB0cmFja1Byb3BzKSwgX3RoaXMucHJvcHMuY2hpbGRyZW4pKSwgIV90aGlzLnByb3BzLnVuc2xpY2sgPyBuZXh0QXJyb3cgOiBcIlwiLCAhX3RoaXMucHJvcHMudW5zbGljayA/IGRvdHMgOiBcIlwiKTtcbiAgICB9KTtcblxuICAgIF90aGlzLmxpc3QgPSBudWxsO1xuICAgIF90aGlzLnRyYWNrID0gbnVsbDtcbiAgICBfdGhpcy5zdGF0ZSA9IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgX2luaXRpYWxTdGF0ZVtcImRlZmF1bHRcIl0pLCB7fSwge1xuICAgICAgY3VycmVudFNsaWRlOiBfdGhpcy5wcm9wcy5pbml0aWFsU2xpZGUsXG4gICAgICBzbGlkZUNvdW50OiBfcmVhY3RbXCJkZWZhdWx0XCJdLkNoaWxkcmVuLmNvdW50KF90aGlzLnByb3BzLmNoaWxkcmVuKVxuICAgIH0pO1xuICAgIF90aGlzLmNhbGxiYWNrVGltZXJzID0gW107XG4gICAgX3RoaXMuY2xpY2thYmxlID0gdHJ1ZTtcbiAgICBfdGhpcy5kZWJvdW5jZWRSZXNpemUgPSBudWxsO1xuXG4gICAgdmFyIHNzclN0YXRlID0gX3RoaXMuc3NySW5pdCgpO1xuXG4gICAgX3RoaXMuc3RhdGUgPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIF90aGlzLnN0YXRlKSwgc3NyU3RhdGUpO1xuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhJbm5lclNsaWRlciwgW3tcbiAgICBrZXk6IFwiZGlkUHJvcHNDaGFuZ2VcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZGlkUHJvcHNDaGFuZ2UocHJldlByb3BzKSB7XG4gICAgICB2YXIgc2V0VHJhY2tTdHlsZSA9IGZhbHNlO1xuXG4gICAgICBmb3IgKHZhciBfaTMgPSAwLCBfT2JqZWN0JGtleXMgPSBPYmplY3Qua2V5cyh0aGlzLnByb3BzKTsgX2kzIDwgX09iamVjdCRrZXlzLmxlbmd0aDsgX2kzKyspIHtcbiAgICAgICAgdmFyIGtleSA9IF9PYmplY3Qka2V5c1tfaTNdO1xuXG4gICAgICAgIGlmICghcHJldlByb3BzLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICBzZXRUcmFja1N0eWxlID0gdHJ1ZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChfdHlwZW9mKHByZXZQcm9wc1trZXldKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgcHJldlByb3BzW2tleV0gPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHByZXZQcm9wc1trZXldICE9PSB0aGlzLnByb3BzW2tleV0pIHtcbiAgICAgICAgICBzZXRUcmFja1N0eWxlID0gdHJ1ZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gc2V0VHJhY2tTdHlsZSB8fCBfcmVhY3RbXCJkZWZhdWx0XCJdLkNoaWxkcmVuLmNvdW50KHRoaXMucHJvcHMuY2hpbGRyZW4pICE9PSBfcmVhY3RbXCJkZWZhdWx0XCJdLkNoaWxkcmVuLmNvdW50KHByZXZQcm9wcy5jaGlsZHJlbik7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIElubmVyU2xpZGVyO1xufShfcmVhY3RbXCJkZWZhdWx0XCJdLkNvbXBvbmVudCk7XG5cbmV4cG9ydHMuSW5uZXJTbGlkZXIgPSBJbm5lclNsaWRlcjsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-slick/lib/inner-slider.js\n"); + +/***/ }), + +/***/ "./node_modules/react-slick/lib/slider.js": +/*!************************************************!*\ + !*** ./node_modules/react-slick/lib/slider.js ***! + \************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _innerSlider = __webpack_require__(/*! ./inner-slider */ \"./node_modules/react-slick/lib/inner-slider.js\");\n\nvar _json2mq = _interopRequireDefault(__webpack_require__(/*! json2mq */ \"./node_modules/json2mq/index.js\"));\n\nvar _defaultProps = _interopRequireDefault(__webpack_require__(/*! ./default-props */ \"./node_modules/react-slick/lib/default-props.js\"));\n\nvar _innerSliderUtils = __webpack_require__(/*! ./utils/innerSliderUtils */ \"./node_modules/react-slick/lib/utils/innerSliderUtils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar enquire = (0, _innerSliderUtils.canUseDOM)() && __webpack_require__(/*! enquire.js */ \"./node_modules/enquire.js/src/index.js\");\n\nvar Slider = /*#__PURE__*/function (_React$Component) {\n _inherits(Slider, _React$Component);\n\n var _super = _createSuper(Slider);\n\n function Slider(props) {\n var _this;\n\n _classCallCheck(this, Slider);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"innerSliderRefHandler\", function (ref) {\n return _this.innerSlider = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n return _this.innerSlider.slickPrev();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n return _this.innerSlider.slickNext();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return _this.innerSlider.slickGoTo(slide, dontAnimate);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPause\", function () {\n return _this.innerSlider.pause(\"paused\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPlay\", function () {\n return _this.innerSlider.autoPlay(\"play\");\n });\n\n _this.state = {\n breakpoint: null\n };\n _this._responsiveMediaHandlers = [];\n return _this;\n }\n\n _createClass(Slider, [{\n key: \"media\",\n value: function media(query, handler) {\n // javascript handler for css media query\n enquire.register(query, handler);\n\n this._responsiveMediaHandlers.push({\n query: query,\n handler: handler\n });\n } // handles responsive breakpoints\n\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n // performance monitoring\n //if (process.env.NODE_ENV !== 'production') {\n //const { whyDidYouUpdate } = require('why-did-you-update')\n //whyDidYouUpdate(React)\n //}\n if (this.props.responsive) {\n var breakpoints = this.props.responsive.map(function (breakpt) {\n return breakpt.breakpoint;\n }); // sort them in increasing order of their numerical value\n\n breakpoints.sort(function (x, y) {\n return x - y;\n });\n breakpoints.forEach(function (breakpoint, index) {\n // media query for each breakpoint\n var bQuery;\n\n if (index === 0) {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: 0,\n maxWidth: breakpoint\n });\n } else {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: breakpoints[index - 1] + 1,\n maxWidth: breakpoint\n });\n } // when not using server side rendering\n\n\n (0, _innerSliderUtils.canUseDOM)() && _this2.media(bQuery, function () {\n _this2.setState({\n breakpoint: breakpoint\n });\n });\n }); // Register media query for full screen. Need to support resize from small to large\n // convert javascript object to media query string\n\n var query = (0, _json2mq[\"default\"])({\n minWidth: breakpoints.slice(-1)[0]\n });\n (0, _innerSliderUtils.canUseDOM)() && this.media(query, function () {\n _this2.setState({\n breakpoint: null\n });\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._responsiveMediaHandlers.forEach(function (obj) {\n enquire.unregister(obj.query, obj.handler);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var settings;\n var newProps;\n\n if (this.state.breakpoint) {\n newProps = this.props.responsive.filter(function (resp) {\n return resp.breakpoint === _this3.state.breakpoint;\n });\n settings = newProps[0].settings === \"unslick\" ? \"unslick\" : _objectSpread(_objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props), newProps[0].settings);\n } else {\n settings = _objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props);\n } // force scrolling by one if centerMode is on\n\n\n if (settings.centerMode) {\n if (settings.slidesToScroll > 1 && \"development\" !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 in centerMode, you are using \".concat(settings.slidesToScroll));\n }\n\n settings.slidesToScroll = 1;\n } // force showing one slide and scrolling by one if the fade mode is on\n\n\n if (settings.fade) {\n if (settings.slidesToShow > 1 && \"development\" !== \"production\") {\n console.warn(\"slidesToShow should be equal to 1 when fade is true, you're using \".concat(settings.slidesToShow));\n }\n\n if (settings.slidesToScroll > 1 && \"development\" !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 when fade is true, you're using \".concat(settings.slidesToScroll));\n }\n\n settings.slidesToShow = 1;\n settings.slidesToScroll = 1;\n } // makes sure that children is an array, even when there is only 1 child\n\n\n var children = _react[\"default\"].Children.toArray(this.props.children); // Children may contain false or null, so we should filter them\n // children may also contain string filled with spaces (in certain cases where we use jsx strings)\n\n\n children = children.filter(function (child) {\n if (typeof child === \"string\") {\n return !!child.trim();\n }\n\n return !!child;\n }); // rows and slidesPerRow logic is handled here\n\n if (settings.variableWidth && (settings.rows > 1 || settings.slidesPerRow > 1)) {\n console.warn(\"variableWidth is not supported in case of rows > 1 or slidesPerRow > 1\");\n settings.variableWidth = false;\n }\n\n var newChildren = [];\n var currentWidth = null;\n\n for (var i = 0; i < children.length; i += settings.rows * settings.slidesPerRow) {\n var newSlide = [];\n\n for (var j = i; j < i + settings.rows * settings.slidesPerRow; j += settings.slidesPerRow) {\n var row = [];\n\n for (var k = j; k < j + settings.slidesPerRow; k += 1) {\n if (settings.variableWidth && children[k].props.style) {\n currentWidth = children[k].props.style.width;\n }\n\n if (k >= children.length) break;\n row.push( /*#__PURE__*/_react[\"default\"].cloneElement(children[k], {\n key: 100 * i + 10 * j + k,\n tabIndex: -1,\n style: {\n width: \"\".concat(100 / settings.slidesPerRow, \"%\"),\n display: \"inline-block\"\n }\n }));\n }\n\n newSlide.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: 10 * i + j\n }, row));\n }\n\n if (settings.variableWidth) {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i,\n style: {\n width: currentWidth\n }\n }, newSlide));\n } else {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i\n }, newSlide));\n }\n }\n\n if (settings === \"unslick\") {\n var className = \"regular slider \" + (this.props.className || \"\");\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: className\n }, children);\n } else if (newChildren.length <= settings.slidesToShow) {\n settings.unslick = true;\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(_innerSlider.InnerSlider, _extends({\n style: this.props.style,\n ref: this.innerSliderRefHandler\n }, settings), newChildren);\n }\n }]);\n\n return Slider;\n}(_react[\"default\"].Component);\n\nexports[\"default\"] = Slider;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2xpY2svbGliL3NsaWRlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixrQkFBa0I7O0FBRWxCLG9DQUFvQyxtQkFBTyxDQUFDLDRDQUFPOztBQUVuRCxtQkFBbUIsbUJBQU8sQ0FBQyxzRUFBZ0I7O0FBRTNDLHNDQUFzQyxtQkFBTyxDQUFDLGdEQUFTOztBQUV2RCwyQ0FBMkMsbUJBQU8sQ0FBQyx3RUFBaUI7O0FBRXBFLHdCQUF3QixtQkFBTyxDQUFDLDBGQUEwQjs7QUFFMUQsdUNBQXVDLHVDQUF1Qzs7QUFFOUUsd0JBQXdCLDJCQUEyQiwyRUFBMkUsa0NBQWtDLHdCQUF3QixPQUFPLGtDQUFrQyxtSUFBbUk7O0FBRXBXLHNCQUFzQixnREFBZ0QsZ0JBQWdCLHNCQUFzQixPQUFPLDJCQUEyQiwwQkFBMEIseURBQXlELGlDQUFpQyxrQkFBa0I7O0FBRXBSLDJDQUEyQyxnQ0FBZ0Msb0NBQW9DLG9EQUFvRCw4REFBOEQsaUVBQWlFLEdBQUcsa0NBQWtDOztBQUV2VSxpQ0FBaUMsZ0JBQWdCLHNCQUFzQixPQUFPLHVEQUF1RCxhQUFhLHVEQUF1RCw0Q0FBNEMsS0FBSyw2Q0FBNkMsNkVBQTZFLE9BQU8saURBQWlELG1GQUFtRixPQUFPOztBQUV0Z0Isa0RBQWtELDBDQUEwQzs7QUFFNUYsNENBQTRDLGdCQUFnQixrQkFBa0IsT0FBTywyQkFBMkIsd0RBQXdELGdDQUFnQyx1REFBdUQ7O0FBRS9QLDhEQUE4RCxzRUFBc0UsOERBQThEOztBQUVsTSwyQ0FBMkMsK0RBQStELDZFQUE2RSx5RUFBeUUsZUFBZSx1REFBdUQsR0FBRzs7QUFFelUsaUNBQWlDLDRFQUE0RSxpQkFBaUIsYUFBYTs7QUFFM0ksaUNBQWlDLDZEQUE2RCx5Q0FBeUMsOENBQThDLGlDQUFpQyxtREFBbUQsMkRBQTJELE9BQU8seUNBQXlDOztBQUVwWCxrREFBa0QsMEVBQTBFLGVBQWU7O0FBRTNJLHdDQUF3Qyx1QkFBdUIseUZBQXlGOztBQUV4Six1Q0FBdUMsd0VBQXdFLDBDQUEwQyw4Q0FBOEMsTUFBTSx1RUFBdUUsSUFBSSxlQUFlLFlBQVk7O0FBRW5ULDhCQUE4QixnR0FBZ0csbURBQW1EOztBQUVqTCw0Q0FBNEMsa0JBQWtCLGtDQUFrQyxvRUFBb0UsS0FBSyxPQUFPLG9CQUFvQjs7QUFFcE0sb0RBQW9ELG1CQUFPLENBQUMsMERBQVk7O0FBRXhFO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxNQUFNOztBQUVOLEdBQUc7QUFDSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGdCQUFnQixrQkFBa0I7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVMsR0FBRzs7QUFFWjtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYixZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiLFlBQVk7OztBQUdaO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYixXQUFXO0FBQ1gsU0FBUyxHQUFHO0FBQ1o7O0FBRUE7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1gsU0FBUztBQUNUO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULGdIQUFnSDtBQUNoSCxRQUFRO0FBQ1IsaURBQWlEO0FBQ2pELFFBQVE7OztBQUdSO0FBQ0EsMkNBQTJDLGFBQW9CO0FBQy9EO0FBQ0E7O0FBRUE7QUFDQSxRQUFROzs7QUFHUjtBQUNBLHlDQUF5QyxhQUFvQjtBQUM3RDtBQUNBOztBQUVBLDJDQUEyQyxhQUFvQjtBQUMvRDtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFROzs7QUFHUiw4RUFBOEU7QUFDOUU7OztBQUdBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsT0FBTyxHQUFHOztBQUVWO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEsc0JBQXNCLHFCQUFxQjtBQUMzQzs7QUFFQSx3QkFBd0IsK0NBQStDO0FBQ3ZFOztBQUVBLDBCQUEwQiwrQkFBK0I7QUFDekQ7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7O0FBRUE7QUFDQTtBQUNBLFdBQVc7QUFDWDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1gsVUFBVTtBQUNWO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxRQUFRO0FBQ1I7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSxHQUFHOztBQUVIO0FBQ0EsQ0FBQzs7QUFFRCxrQkFBa0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXNsaWNrL2xpYi9zbGlkZXIuanM/ZDRhYSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xuXG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX2lubmVyU2xpZGVyID0gcmVxdWlyZShcIi4vaW5uZXItc2xpZGVyXCIpO1xuXG52YXIgX2pzb24ybXEgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJqc29uMm1xXCIpKTtcblxudmFyIF9kZWZhdWx0UHJvcHMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL2RlZmF1bHQtcHJvcHNcIikpO1xuXG52YXIgX2lubmVyU2xpZGVyVXRpbHMgPSByZXF1aXJlKFwiLi91dGlscy9pbm5lclNsaWRlclV0aWxzXCIpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiOyBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiB0eXBlb2Ygb2JqOyB9OyB9IGVsc2UgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7IH07IH0gcmV0dXJuIF90eXBlb2Yob2JqKTsgfVxuXG5mdW5jdGlvbiBfZXh0ZW5kcygpIHsgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9OyByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfVxuXG5mdW5jdGlvbiBvd25LZXlzKG9iamVjdCwgZW51bWVyYWJsZU9ubHkpIHsgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhvYmplY3QpOyBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scykgeyB2YXIgc3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMob2JqZWN0KTsgaWYgKGVudW1lcmFibGVPbmx5KSBzeW1ib2xzID0gc3ltYm9scy5maWx0ZXIoZnVuY3Rpb24gKHN5bSkgeyByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmplY3QsIHN5bSkuZW51bWVyYWJsZTsgfSk7IGtleXMucHVzaC5hcHBseShrZXlzLCBzeW1ib2xzKTsgfSByZXR1cm4ga2V5czsgfVxuXG5mdW5jdGlvbiBfb2JqZWN0U3ByZWFkKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldICE9IG51bGwgPyBhcmd1bWVudHNbaV0gOiB7fTsgaWYgKGkgJSAyKSB7IG93bktleXMoT2JqZWN0KHNvdXJjZSksIHRydWUpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgeyBfZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHNvdXJjZVtrZXldKTsgfSk7IH0gZWxzZSBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMpIHsgT2JqZWN0LmRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhzb3VyY2UpKTsgfSBlbHNlIHsgb3duS2V5cyhPYmplY3Qoc291cmNlKSkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzb3VyY2UsIGtleSkpOyB9KTsgfSB9IHJldHVybiB0YXJnZXQ7IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfVxuXG5mdW5jdGlvbiBfY3JlYXRlQ2xhc3MoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgX3NldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKTsgfVxuXG5mdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBfc2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgby5fX3Byb3RvX18gPSBwOyByZXR1cm4gbzsgfTsgcmV0dXJuIF9zZXRQcm90b3R5cGVPZihvLCBwKTsgfVxuXG5mdW5jdGlvbiBfY3JlYXRlU3VwZXIoRGVyaXZlZCkgeyB2YXIgaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCA9IF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKTsgcmV0dXJuIGZ1bmN0aW9uIF9jcmVhdGVTdXBlckludGVybmFsKCkgeyB2YXIgU3VwZXIgPSBfZ2V0UHJvdG90eXBlT2YoRGVyaXZlZCksIHJlc3VsdDsgaWYgKGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QpIHsgdmFyIE5ld1RhcmdldCA9IF9nZXRQcm90b3R5cGVPZih0aGlzKS5jb25zdHJ1Y3RvcjsgcmVzdWx0ID0gUmVmbGVjdC5jb25zdHJ1Y3QoU3VwZXIsIGFyZ3VtZW50cywgTmV3VGFyZ2V0KTsgfSBlbHNlIHsgcmVzdWx0ID0gU3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfSByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgcmVzdWx0KTsgfTsgfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmIChjYWxsICYmIChfdHlwZW9mKGNhbGwpID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpKSB7IHJldHVybiBjYWxsOyB9IHJldHVybiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpOyB9XG5cbmZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikgeyBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gc2VsZjsgfVxuXG5mdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkgeyBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwidW5kZWZpbmVkXCIgfHwgIVJlZmxlY3QuY29uc3RydWN0KSByZXR1cm4gZmFsc2U7IGlmIChSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKSByZXR1cm4gZmFsc2U7IGlmICh0eXBlb2YgUHJveHkgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHRydWU7IHRyeSB7IERhdGUucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoRGF0ZSwgW10sIGZ1bmN0aW9uICgpIHt9KSk7IHJldHVybiB0cnVlOyB9IGNhdGNoIChlKSB7IHJldHVybiBmYWxzZTsgfSB9XG5cbmZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IF9nZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5nZXRQcm90b3R5cGVPZiA6IGZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IHJldHVybiBvLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2Yobyk7IH07IHJldHVybiBfZ2V0UHJvdG90eXBlT2Yobyk7IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KG9iaiwga2V5LCB2YWx1ZSkgeyBpZiAoa2V5IGluIG9iaikgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHsgdmFsdWU6IHZhbHVlLCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlIH0pOyB9IGVsc2UgeyBvYmpba2V5XSA9IHZhbHVlOyB9IHJldHVybiBvYmo7IH1cblxudmFyIGVucXVpcmUgPSAoMCwgX2lubmVyU2xpZGVyVXRpbHMuY2FuVXNlRE9NKSgpICYmIHJlcXVpcmUoXCJlbnF1aXJlLmpzXCIpO1xuXG52YXIgU2xpZGVyID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhTbGlkZXIsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIHZhciBfc3VwZXIgPSBfY3JlYXRlU3VwZXIoU2xpZGVyKTtcblxuICBmdW5jdGlvbiBTbGlkZXIocHJvcHMpIHtcbiAgICB2YXIgX3RoaXM7XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgU2xpZGVyKTtcblxuICAgIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgcHJvcHMpO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcImlubmVyU2xpZGVyUmVmSGFuZGxlclwiLCBmdW5jdGlvbiAocmVmKSB7XG4gICAgICByZXR1cm4gX3RoaXMuaW5uZXJTbGlkZXIgPSByZWY7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwic2xpY2tQcmV2XCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBfdGhpcy5pbm5lclNsaWRlci5zbGlja1ByZXYoKTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJzbGlja05leHRcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIF90aGlzLmlubmVyU2xpZGVyLnNsaWNrTmV4dCgpO1xuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcInNsaWNrR29Ub1wiLCBmdW5jdGlvbiAoc2xpZGUpIHtcbiAgICAgIHZhciBkb250QW5pbWF0ZSA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogZmFsc2U7XG4gICAgICByZXR1cm4gX3RoaXMuaW5uZXJTbGlkZXIuc2xpY2tHb1RvKHNsaWRlLCBkb250QW5pbWF0ZSk7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwic2xpY2tQYXVzZVwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gX3RoaXMuaW5uZXJTbGlkZXIucGF1c2UoXCJwYXVzZWRcIik7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwic2xpY2tQbGF5XCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBfdGhpcy5pbm5lclNsaWRlci5hdXRvUGxheShcInBsYXlcIik7XG4gICAgfSk7XG5cbiAgICBfdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGJyZWFrcG9pbnQ6IG51bGxcbiAgICB9O1xuICAgIF90aGlzLl9yZXNwb25zaXZlTWVkaWFIYW5kbGVycyA9IFtdO1xuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhTbGlkZXIsIFt7XG4gICAga2V5OiBcIm1lZGlhXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIG1lZGlhKHF1ZXJ5LCBoYW5kbGVyKSB7XG4gICAgICAvLyBqYXZhc2NyaXB0IGhhbmRsZXIgZm9yICBjc3MgbWVkaWEgcXVlcnlcbiAgICAgIGVucXVpcmUucmVnaXN0ZXIocXVlcnksIGhhbmRsZXIpO1xuXG4gICAgICB0aGlzLl9yZXNwb25zaXZlTWVkaWFIYW5kbGVycy5wdXNoKHtcbiAgICAgICAgcXVlcnk6IHF1ZXJ5LFxuICAgICAgICBoYW5kbGVyOiBoYW5kbGVyXG4gICAgICB9KTtcbiAgICB9IC8vIGhhbmRsZXMgcmVzcG9uc2l2ZSBicmVha3BvaW50c1xuXG4gIH0sIHtcbiAgICBrZXk6IFwiY29tcG9uZW50RGlkTW91bnRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgLy8gcGVyZm9ybWFuY2UgbW9uaXRvcmluZ1xuICAgICAgLy9pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgLy9jb25zdCB7IHdoeURpZFlvdVVwZGF0ZSB9ID0gcmVxdWlyZSgnd2h5LWRpZC15b3UtdXBkYXRlJylcbiAgICAgIC8vd2h5RGlkWW91VXBkYXRlKFJlYWN0KVxuICAgICAgLy99XG4gICAgICBpZiAodGhpcy5wcm9wcy5yZXNwb25zaXZlKSB7XG4gICAgICAgIHZhciBicmVha3BvaW50cyA9IHRoaXMucHJvcHMucmVzcG9uc2l2ZS5tYXAoZnVuY3Rpb24gKGJyZWFrcHQpIHtcbiAgICAgICAgICByZXR1cm4gYnJlYWtwdC5icmVha3BvaW50O1xuICAgICAgICB9KTsgLy8gc29ydCB0aGVtIGluIGluY3JlYXNpbmcgb3JkZXIgb2YgdGhlaXIgbnVtZXJpY2FsIHZhbHVlXG5cbiAgICAgICAgYnJlYWtwb2ludHMuc29ydChmdW5jdGlvbiAoeCwgeSkge1xuICAgICAgICAgIHJldHVybiB4IC0geTtcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrcG9pbnRzLmZvckVhY2goZnVuY3Rpb24gKGJyZWFrcG9pbnQsIGluZGV4KSB7XG4gICAgICAgICAgLy8gbWVkaWEgcXVlcnkgZm9yIGVhY2ggYnJlYWtwb2ludFxuICAgICAgICAgIHZhciBiUXVlcnk7XG5cbiAgICAgICAgICBpZiAoaW5kZXggPT09IDApIHtcbiAgICAgICAgICAgIGJRdWVyeSA9ICgwLCBfanNvbjJtcVtcImRlZmF1bHRcIl0pKHtcbiAgICAgICAgICAgICAgbWluV2lkdGg6IDAsXG4gICAgICAgICAgICAgIG1heFdpZHRoOiBicmVha3BvaW50XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYlF1ZXJ5ID0gKDAsIF9qc29uMm1xW1wiZGVmYXVsdFwiXSkoe1xuICAgICAgICAgICAgICBtaW5XaWR0aDogYnJlYWtwb2ludHNbaW5kZXggLSAxXSArIDEsXG4gICAgICAgICAgICAgIG1heFdpZHRoOiBicmVha3BvaW50XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IC8vIHdoZW4gbm90IHVzaW5nIHNlcnZlciBzaWRlIHJlbmRlcmluZ1xuXG5cbiAgICAgICAgICAoMCwgX2lubmVyU2xpZGVyVXRpbHMuY2FuVXNlRE9NKSgpICYmIF90aGlzMi5tZWRpYShiUXVlcnksIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIF90aGlzMi5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAgIGJyZWFrcG9pbnQ6IGJyZWFrcG9pbnRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTsgLy8gUmVnaXN0ZXIgbWVkaWEgcXVlcnkgZm9yIGZ1bGwgc2NyZWVuLiBOZWVkIHRvIHN1cHBvcnQgcmVzaXplIGZyb20gc21hbGwgdG8gbGFyZ2VcbiAgICAgICAgLy8gY29udmVydCBqYXZhc2NyaXB0IG9iamVjdCB0byBtZWRpYSBxdWVyeSBzdHJpbmdcblxuICAgICAgICB2YXIgcXVlcnkgPSAoMCwgX2pzb24ybXFbXCJkZWZhdWx0XCJdKSh7XG4gICAgICAgICAgbWluV2lkdGg6IGJyZWFrcG9pbnRzLnNsaWNlKC0xKVswXVxuICAgICAgICB9KTtcbiAgICAgICAgKDAsIF9pbm5lclNsaWRlclV0aWxzLmNhblVzZURPTSkoKSAmJiB0aGlzLm1lZGlhKHF1ZXJ5LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgX3RoaXMyLnNldFN0YXRlKHtcbiAgICAgICAgICAgIGJyZWFrcG9pbnQ6IG51bGxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImNvbXBvbmVudFdpbGxVbm1vdW50XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgdGhpcy5fcmVzcG9uc2l2ZU1lZGlhSGFuZGxlcnMuZm9yRWFjaChmdW5jdGlvbiAob2JqKSB7XG4gICAgICAgIGVucXVpcmUudW5yZWdpc3RlcihvYmoucXVlcnksIG9iai5oYW5kbGVyKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW5kZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgdmFyIF90aGlzMyA9IHRoaXM7XG5cbiAgICAgIHZhciBzZXR0aW5ncztcbiAgICAgIHZhciBuZXdQcm9wcztcblxuICAgICAgaWYgKHRoaXMuc3RhdGUuYnJlYWtwb2ludCkge1xuICAgICAgICBuZXdQcm9wcyA9IHRoaXMucHJvcHMucmVzcG9uc2l2ZS5maWx0ZXIoZnVuY3Rpb24gKHJlc3ApIHtcbiAgICAgICAgICByZXR1cm4gcmVzcC5icmVha3BvaW50ID09PSBfdGhpczMuc3RhdGUuYnJlYWtwb2ludDtcbiAgICAgICAgfSk7XG4gICAgICAgIHNldHRpbmdzID0gbmV3UHJvcHNbMF0uc2V0dGluZ3MgPT09IFwidW5zbGlja1wiID8gXCJ1bnNsaWNrXCIgOiBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgX2RlZmF1bHRQcm9wc1tcImRlZmF1bHRcIl0pLCB0aGlzLnByb3BzKSwgbmV3UHJvcHNbMF0uc2V0dGluZ3MpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0dGluZ3MgPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIF9kZWZhdWx0UHJvcHNbXCJkZWZhdWx0XCJdKSwgdGhpcy5wcm9wcyk7XG4gICAgICB9IC8vIGZvcmNlIHNjcm9sbGluZyBieSBvbmUgaWYgY2VudGVyTW9kZSBpcyBvblxuXG5cbiAgICAgIGlmIChzZXR0aW5ncy5jZW50ZXJNb2RlKSB7XG4gICAgICAgIGlmIChzZXR0aW5ncy5zbGlkZXNUb1Njcm9sbCA+IDEgJiYgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFwic2xpZGVzVG9TY3JvbGwgc2hvdWxkIGJlIGVxdWFsIHRvIDEgaW4gY2VudGVyTW9kZSwgeW91IGFyZSB1c2luZyBcIi5jb25jYXQoc2V0dGluZ3Muc2xpZGVzVG9TY3JvbGwpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldHRpbmdzLnNsaWRlc1RvU2Nyb2xsID0gMTtcbiAgICAgIH0gLy8gZm9yY2Ugc2hvd2luZyBvbmUgc2xpZGUgYW5kIHNjcm9sbGluZyBieSBvbmUgaWYgdGhlIGZhZGUgbW9kZSBpcyBvblxuXG5cbiAgICAgIGlmIChzZXR0aW5ncy5mYWRlKSB7XG4gICAgICAgIGlmIChzZXR0aW5ncy5zbGlkZXNUb1Nob3cgPiAxICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcInNsaWRlc1RvU2hvdyBzaG91bGQgYmUgZXF1YWwgdG8gMSB3aGVuIGZhZGUgaXMgdHJ1ZSwgeW91J3JlIHVzaW5nIFwiLmNvbmNhdChzZXR0aW5ncy5zbGlkZXNUb1Nob3cpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzZXR0aW5ncy5zbGlkZXNUb1Njcm9sbCA+IDEgJiYgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFwic2xpZGVzVG9TY3JvbGwgc2hvdWxkIGJlIGVxdWFsIHRvIDEgd2hlbiBmYWRlIGlzIHRydWUsIHlvdSdyZSB1c2luZyBcIi5jb25jYXQoc2V0dGluZ3Muc2xpZGVzVG9TY3JvbGwpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldHRpbmdzLnNsaWRlc1RvU2hvdyA9IDE7XG4gICAgICAgIHNldHRpbmdzLnNsaWRlc1RvU2Nyb2xsID0gMTtcbiAgICAgIH0gLy8gbWFrZXMgc3VyZSB0aGF0IGNoaWxkcmVuIGlzIGFuIGFycmF5LCBldmVuIHdoZW4gdGhlcmUgaXMgb25seSAxIGNoaWxkXG5cblxuICAgICAgdmFyIGNoaWxkcmVuID0gX3JlYWN0W1wiZGVmYXVsdFwiXS5DaGlsZHJlbi50b0FycmF5KHRoaXMucHJvcHMuY2hpbGRyZW4pOyAvLyBDaGlsZHJlbiBtYXkgY29udGFpbiBmYWxzZSBvciBudWxsLCBzbyB3ZSBzaG91bGQgZmlsdGVyIHRoZW1cbiAgICAgIC8vIGNoaWxkcmVuIG1heSBhbHNvIGNvbnRhaW4gc3RyaW5nIGZpbGxlZCB3aXRoIHNwYWNlcyAoaW4gY2VydGFpbiBjYXNlcyB3aGVyZSB3ZSB1c2UganN4IHN0cmluZ3MpXG5cblxuICAgICAgY2hpbGRyZW4gPSBjaGlsZHJlbi5maWx0ZXIoZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgICAgIGlmICh0eXBlb2YgY2hpbGQgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICByZXR1cm4gISFjaGlsZC50cmltKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gISFjaGlsZDtcbiAgICAgIH0pOyAvLyByb3dzIGFuZCBzbGlkZXNQZXJSb3cgbG9naWMgaXMgaGFuZGxlZCBoZXJlXG5cbiAgICAgIGlmIChzZXR0aW5ncy52YXJpYWJsZVdpZHRoICYmIChzZXR0aW5ncy5yb3dzID4gMSB8fCBzZXR0aW5ncy5zbGlkZXNQZXJSb3cgPiAxKSkge1xuICAgICAgICBjb25zb2xlLndhcm4oXCJ2YXJpYWJsZVdpZHRoIGlzIG5vdCBzdXBwb3J0ZWQgaW4gY2FzZSBvZiByb3dzID4gMSBvciBzbGlkZXNQZXJSb3cgPiAxXCIpO1xuICAgICAgICBzZXR0aW5ncy52YXJpYWJsZVdpZHRoID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIHZhciBuZXdDaGlsZHJlbiA9IFtdO1xuICAgICAgdmFyIGN1cnJlbnRXaWR0aCA9IG51bGw7XG5cbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpICs9IHNldHRpbmdzLnJvd3MgKiBzZXR0aW5ncy5zbGlkZXNQZXJSb3cpIHtcbiAgICAgICAgdmFyIG5ld1NsaWRlID0gW107XG5cbiAgICAgICAgZm9yICh2YXIgaiA9IGk7IGogPCBpICsgc2V0dGluZ3Mucm93cyAqIHNldHRpbmdzLnNsaWRlc1BlclJvdzsgaiArPSBzZXR0aW5ncy5zbGlkZXNQZXJSb3cpIHtcbiAgICAgICAgICB2YXIgcm93ID0gW107XG5cbiAgICAgICAgICBmb3IgKHZhciBrID0gajsgayA8IGogKyBzZXR0aW5ncy5zbGlkZXNQZXJSb3c7IGsgKz0gMSkge1xuICAgICAgICAgICAgaWYgKHNldHRpbmdzLnZhcmlhYmxlV2lkdGggJiYgY2hpbGRyZW5ba10ucHJvcHMuc3R5bGUpIHtcbiAgICAgICAgICAgICAgY3VycmVudFdpZHRoID0gY2hpbGRyZW5ba10ucHJvcHMuc3R5bGUud2lkdGg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChrID49IGNoaWxkcmVuLmxlbmd0aCkgYnJlYWs7XG4gICAgICAgICAgICByb3cucHVzaCggLyojX19QVVJFX18qL19yZWFjdFtcImRlZmF1bHRcIl0uY2xvbmVFbGVtZW50KGNoaWxkcmVuW2tdLCB7XG4gICAgICAgICAgICAgIGtleTogMTAwICogaSArIDEwICogaiArIGssXG4gICAgICAgICAgICAgIHRhYkluZGV4OiAtMSxcbiAgICAgICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogXCJcIi5jb25jYXQoMTAwIC8gc2V0dGluZ3Muc2xpZGVzUGVyUm93LCBcIiVcIiksXG4gICAgICAgICAgICAgICAgZGlzcGxheTogXCJpbmxpbmUtYmxvY2tcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbmV3U2xpZGUucHVzaCggLyojX19QVVJFX18qL19yZWFjdFtcImRlZmF1bHRcIl0uY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgICAgICBrZXk6IDEwICogaSArIGpcbiAgICAgICAgICB9LCByb3cpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzZXR0aW5ncy52YXJpYWJsZVdpZHRoKSB7XG4gICAgICAgICAgbmV3Q2hpbGRyZW4ucHVzaCggLyojX19QVVJFX18qL19yZWFjdFtcImRlZmF1bHRcIl0uY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgICAgICBrZXk6IGksXG4gICAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgICB3aWR0aDogY3VycmVudFdpZHRoXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSwgbmV3U2xpZGUpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBuZXdDaGlsZHJlbi5wdXNoKCAvKiNfX1BVUkVfXyovX3JlYWN0W1wiZGVmYXVsdFwiXS5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgICAgICAgIGtleTogaVxuICAgICAgICAgIH0sIG5ld1NsaWRlKSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHNldHRpbmdzID09PSBcInVuc2xpY2tcIikge1xuICAgICAgICB2YXIgY2xhc3NOYW1lID0gXCJyZWd1bGFyIHNsaWRlciBcIiArICh0aGlzLnByb3BzLmNsYXNzTmFtZSB8fCBcIlwiKTtcbiAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9fcmVhY3RbXCJkZWZhdWx0XCJdLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lXG4gICAgICAgIH0sIGNoaWxkcmVuKTtcbiAgICAgIH0gZWxzZSBpZiAobmV3Q2hpbGRyZW4ubGVuZ3RoIDw9IHNldHRpbmdzLnNsaWRlc1RvU2hvdykge1xuICAgICAgICBzZXR0aW5ncy51bnNsaWNrID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9fcmVhY3RbXCJkZWZhdWx0XCJdLmNyZWF0ZUVsZW1lbnQoX2lubmVyU2xpZGVyLklubmVyU2xpZGVyLCBfZXh0ZW5kcyh7XG4gICAgICAgIHN0eWxlOiB0aGlzLnByb3BzLnN0eWxlLFxuICAgICAgICByZWY6IHRoaXMuaW5uZXJTbGlkZXJSZWZIYW5kbGVyXG4gICAgICB9LCBzZXR0aW5ncyksIG5ld0NoaWxkcmVuKTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gU2xpZGVyO1xufShfcmVhY3RbXCJkZWZhdWx0XCJdLkNvbXBvbmVudCk7XG5cbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gU2xpZGVyOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-slick/lib/slider.js\n"); + +/***/ }), + +/***/ "./node_modules/react-slick/lib/track.js": +/*!***********************************************!*\ + !*** ./node_modules/react-slick/lib/track.js ***! + \***********************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.Track = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _classnames = _interopRequireDefault(__webpack_require__(/*! classnames */ \"./node_modules/classnames/index.js\"));\n\nvar _innerSliderUtils = __webpack_require__(/*! ./utils/innerSliderUtils */ \"./node_modules/react-slick/lib/utils/innerSliderUtils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// given specifications/props for a slide, fetch all the classes that need to be applied to the slide\nvar getSlideClasses = function getSlideClasses(spec) {\n var slickActive, slickCenter, slickCloned;\n var centerOffset, index;\n\n if (spec.rtl) {\n index = spec.slideCount - 1 - spec.index;\n } else {\n index = spec.index;\n }\n\n slickCloned = index < 0 || index >= spec.slideCount;\n\n if (spec.centerMode) {\n centerOffset = Math.floor(spec.slidesToShow / 2);\n slickCenter = (index - spec.currentSlide) % spec.slideCount === 0;\n\n if (index > spec.currentSlide - centerOffset - 1 && index <= spec.currentSlide + centerOffset) {\n slickActive = true;\n }\n } else {\n slickActive = spec.currentSlide <= index && index < spec.currentSlide + spec.slidesToShow;\n }\n\n var focusedSlide;\n\n if (spec.targetSlide < 0) {\n focusedSlide = spec.targetSlide + spec.slideCount;\n } else if (spec.targetSlide >= spec.slideCount) {\n focusedSlide = spec.targetSlide - spec.slideCount;\n } else {\n focusedSlide = spec.targetSlide;\n }\n\n var slickCurrent = index === focusedSlide;\n return {\n \"slick-slide\": true,\n \"slick-active\": slickActive,\n \"slick-center\": slickCenter,\n \"slick-cloned\": slickCloned,\n \"slick-current\": slickCurrent // dubious in case of RTL\n\n };\n};\n\nvar getSlideStyle = function getSlideStyle(spec) {\n var style = {};\n\n if (spec.variableWidth === undefined || spec.variableWidth === false) {\n style.width = spec.slideWidth;\n }\n\n if (spec.fade) {\n style.position = \"relative\";\n\n if (spec.vertical) {\n style.top = -spec.index * parseInt(spec.slideHeight);\n } else {\n style.left = -spec.index * parseInt(spec.slideWidth);\n }\n\n style.opacity = spec.currentSlide === spec.index ? 1 : 0;\n\n if (spec.useCSS) {\n style.transition = \"opacity \" + spec.speed + \"ms \" + spec.cssEase + \", \" + \"visibility \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n\n return style;\n};\n\nvar getKey = function getKey(child, fallbackKey) {\n return child.key || fallbackKey;\n};\n\nvar renderSlides = function renderSlides(spec) {\n var key;\n var slides = [];\n var preCloneSlides = [];\n var postCloneSlides = [];\n\n var childrenCount = _react[\"default\"].Children.count(spec.children);\n\n var startIndex = (0, _innerSliderUtils.lazyStartIndex)(spec);\n var endIndex = (0, _innerSliderUtils.lazyEndIndex)(spec);\n\n _react[\"default\"].Children.forEach(spec.children, function (elem, index) {\n var child;\n var childOnClickOptions = {\n message: \"children\",\n index: index,\n slidesToScroll: spec.slidesToScroll,\n currentSlide: spec.currentSlide\n }; // in case of lazyLoad, whether or not we want to fetch the slide\n\n if (!spec.lazyLoad || spec.lazyLoad && spec.lazyLoadedList.indexOf(index) >= 0) {\n child = elem;\n } else {\n child = /*#__PURE__*/_react[\"default\"].createElement(\"div\", null);\n }\n\n var childStyle = getSlideStyle(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n }));\n var slideClass = child.props.className || \"\";\n var slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n })); // push a cloned element of the desired slide\n\n slides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"original\" + getKey(child, index),\n \"data-index\": index,\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n tabIndex: \"-1\",\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({\n outline: \"none\"\n }, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n })); // if slide needs to be precloned or postcloned\n\n if (spec.infinite && spec.fade === false) {\n var preCloneNo = childrenCount - index;\n\n if (preCloneNo <= (0, _innerSliderUtils.getPreClones)(spec) && childrenCount !== spec.slidesToShow) {\n key = -preCloneNo;\n\n if (key >= startIndex) {\n child = elem;\n }\n\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n preCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"precloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n\n if (childrenCount !== spec.slidesToShow) {\n key = childrenCount + index;\n\n if (key < endIndex) {\n child = elem;\n }\n\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n postCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"postcloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n }\n });\n\n if (spec.rtl) {\n return preCloneSlides.concat(slides, postCloneSlides).reverse();\n } else {\n return preCloneSlides.concat(slides, postCloneSlides);\n }\n};\n\nvar Track = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Track, _React$PureComponent);\n\n var _super = _createSuper(Track);\n\n function Track() {\n var _this;\n\n _classCallCheck(this, Track);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"node\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"handleRef\", function (ref) {\n _this.node = ref;\n });\n\n return _this;\n }\n\n _createClass(Track, [{\n key: \"render\",\n value: function render() {\n var slides = renderSlides(this.props);\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave;\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: this.handleRef,\n className: \"slick-track\",\n style: this.props.trackStyle\n }, mouseEvents), slides);\n }\n }]);\n\n return Track;\n}(_react[\"default\"].PureComponent);\n\nexports.Track = Track;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2xpY2svbGliL3RyYWNrLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGFBQWE7O0FBRWIsb0NBQW9DLG1CQUFPLENBQUMsNENBQU87O0FBRW5ELHlDQUF5QyxtQkFBTyxDQUFDLHNEQUFZOztBQUU3RCx3QkFBd0IsbUJBQU8sQ0FBQywwRkFBMEI7O0FBRTFELHVDQUF1Qyx1Q0FBdUM7O0FBRTlFLHdCQUF3QiwyQkFBMkIsMkVBQTJFLGtDQUFrQyx3QkFBd0IsT0FBTyxrQ0FBa0MsbUlBQW1JOztBQUVwVyxzQkFBc0IsZ0RBQWdELGdCQUFnQixzQkFBc0IsT0FBTywyQkFBMkIsMEJBQTBCLHlEQUF5RCxpQ0FBaUMsa0JBQWtCOztBQUVwUixrREFBa0QsMENBQTBDOztBQUU1Riw0Q0FBNEMsZ0JBQWdCLGtCQUFrQixPQUFPLDJCQUEyQix3REFBd0QsZ0NBQWdDLHVEQUF1RDs7QUFFL1AsOERBQThELHNFQUFzRSw4REFBOEQ7O0FBRWxNLDJDQUEyQywrREFBK0QsNkVBQTZFLHlFQUF5RSxlQUFlLHVEQUF1RCxHQUFHOztBQUV6VSxpQ0FBaUMsNEVBQTRFLGlCQUFpQixhQUFhOztBQUUzSSxpQ0FBaUMsNkRBQTZELHlDQUF5Qyw4Q0FBOEMsaUNBQWlDLG1EQUFtRCwyREFBMkQsT0FBTyx5Q0FBeUM7O0FBRXBYLGtEQUFrRCwwRUFBMEUsZUFBZTs7QUFFM0ksd0NBQXdDLHVCQUF1Qix5RkFBeUY7O0FBRXhKLHVDQUF1Qyx3RUFBd0UsMENBQTBDLDhDQUE4QyxNQUFNLHVFQUF1RSxJQUFJLGVBQWUsWUFBWTs7QUFFblQsOEJBQThCLGdHQUFnRyxtREFBbUQ7O0FBRWpMLDJDQUEyQyxnQ0FBZ0Msb0NBQW9DLG9EQUFvRCw4REFBOEQsaUVBQWlFLEdBQUcsa0NBQWtDOztBQUV2VSxpQ0FBaUMsZ0JBQWdCLHNCQUFzQixPQUFPLHVEQUF1RCxhQUFhLHVEQUF1RCw0Q0FBNEMsS0FBSyw2Q0FBNkMsNkVBQTZFLE9BQU8saURBQWlELG1GQUFtRixPQUFPOztBQUV0Z0IsNENBQTRDLGtCQUFrQixrQ0FBa0Msb0VBQW9FLEtBQUssT0FBTyxvQkFBb0I7O0FBRXBNO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTzs7QUFFUDtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUEsaUVBQWlFLFdBQVc7QUFDNUU7QUFDQSxLQUFLO0FBQ0w7QUFDQSxxRUFBcUUsV0FBVztBQUNoRjtBQUNBLEtBQUssSUFBSTs7QUFFVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyx5QkFBeUI7QUFDaEM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUssSUFBSTs7QUFFVDtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLHFFQUFxRSxXQUFXO0FBQ2hGO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtDQUErQyx5QkFBeUI7QUFDeEU7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSxxRUFBcUUsV0FBVztBQUNoRjtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0MseUJBQXlCO0FBQ3hFO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBLHdFQUF3RSxhQUFhO0FBQ3JGO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EsR0FBRzs7QUFFSDtBQUNBLENBQUM7O0FBRUQsYUFBYSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2xpY2svbGliL3RyYWNrLmpzP2MwZmYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLlRyYWNrID0gdm9pZCAwO1xuXG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX2NsYXNzbmFtZXMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJjbGFzc25hbWVzXCIpKTtcblxudmFyIF9pbm5lclNsaWRlclV0aWxzID0gcmVxdWlyZShcIi4vdXRpbHMvaW5uZXJTbGlkZXJVdGlsc1wiKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjsgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiKSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfTsgfSBlbHNlIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9OyB9IHJldHVybiBfdHlwZW9mKG9iaik7IH1cblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfVxuXG5mdW5jdGlvbiBfY3JlYXRlQ2xhc3MoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgX3NldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKTsgfVxuXG5mdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBfc2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgby5fX3Byb3RvX18gPSBwOyByZXR1cm4gbzsgfTsgcmV0dXJuIF9zZXRQcm90b3R5cGVPZihvLCBwKTsgfVxuXG5mdW5jdGlvbiBfY3JlYXRlU3VwZXIoRGVyaXZlZCkgeyB2YXIgaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCA9IF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKTsgcmV0dXJuIGZ1bmN0aW9uIF9jcmVhdGVTdXBlckludGVybmFsKCkgeyB2YXIgU3VwZXIgPSBfZ2V0UHJvdG90eXBlT2YoRGVyaXZlZCksIHJlc3VsdDsgaWYgKGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QpIHsgdmFyIE5ld1RhcmdldCA9IF9nZXRQcm90b3R5cGVPZih0aGlzKS5jb25zdHJ1Y3RvcjsgcmVzdWx0ID0gUmVmbGVjdC5jb25zdHJ1Y3QoU3VwZXIsIGFyZ3VtZW50cywgTmV3VGFyZ2V0KTsgfSBlbHNlIHsgcmVzdWx0ID0gU3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfSByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgcmVzdWx0KTsgfTsgfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmIChjYWxsICYmIChfdHlwZW9mKGNhbGwpID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpKSB7IHJldHVybiBjYWxsOyB9IHJldHVybiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpOyB9XG5cbmZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikgeyBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gc2VsZjsgfVxuXG5mdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkgeyBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwidW5kZWZpbmVkXCIgfHwgIVJlZmxlY3QuY29uc3RydWN0KSByZXR1cm4gZmFsc2U7IGlmIChSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKSByZXR1cm4gZmFsc2U7IGlmICh0eXBlb2YgUHJveHkgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHRydWU7IHRyeSB7IERhdGUucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoRGF0ZSwgW10sIGZ1bmN0aW9uICgpIHt9KSk7IHJldHVybiB0cnVlOyB9IGNhdGNoIChlKSB7IHJldHVybiBmYWxzZTsgfSB9XG5cbmZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IF9nZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5nZXRQcm90b3R5cGVPZiA6IGZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IHJldHVybiBvLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2Yobyk7IH07IHJldHVybiBfZ2V0UHJvdG90eXBlT2Yobyk7IH1cblxuZnVuY3Rpb24gb3duS2V5cyhvYmplY3QsIGVudW1lcmFibGVPbmx5KSB7IHZhciBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KTsgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHsgdmFyIHN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG9iamVjdCk7IGlmIChlbnVtZXJhYmxlT25seSkgc3ltYm9scyA9IHN5bWJvbHMuZmlsdGVyKGZ1bmN0aW9uIChzeW0pIHsgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LCBzeW0pLmVudW1lcmFibGU7IH0pOyBrZXlzLnB1c2guYXBwbHkoa2V5cywgc3ltYm9scyk7IH0gcmV0dXJuIGtleXM7IH1cblxuZnVuY3Rpb24gX29iamVjdFNwcmVhZCh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXSAhPSBudWxsID8gYXJndW1lbnRzW2ldIDoge307IGlmIChpICUgMikgeyBvd25LZXlzKE9iamVjdChzb3VyY2UpLCB0cnVlKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsgX2RlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBzb3VyY2Vba2V5XSk7IH0pOyB9IGVsc2UgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoc291cmNlKSk7IH0gZWxzZSB7IG93bktleXMoT2JqZWN0KHNvdXJjZSkpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc291cmNlLCBrZXkpKTsgfSk7IH0gfSByZXR1cm4gdGFyZ2V0OyB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsgaWYgKGtleSBpbiBvYmopIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsgfSBlbHNlIHsgb2JqW2tleV0gPSB2YWx1ZTsgfSByZXR1cm4gb2JqOyB9XG5cbi8vIGdpdmVuIHNwZWNpZmljYXRpb25zL3Byb3BzIGZvciBhIHNsaWRlLCBmZXRjaCBhbGwgdGhlIGNsYXNzZXMgdGhhdCBuZWVkIHRvIGJlIGFwcGxpZWQgdG8gdGhlIHNsaWRlXG52YXIgZ2V0U2xpZGVDbGFzc2VzID0gZnVuY3Rpb24gZ2V0U2xpZGVDbGFzc2VzKHNwZWMpIHtcbiAgdmFyIHNsaWNrQWN0aXZlLCBzbGlja0NlbnRlciwgc2xpY2tDbG9uZWQ7XG4gIHZhciBjZW50ZXJPZmZzZXQsIGluZGV4O1xuXG4gIGlmIChzcGVjLnJ0bCkge1xuICAgIGluZGV4ID0gc3BlYy5zbGlkZUNvdW50IC0gMSAtIHNwZWMuaW5kZXg7XG4gIH0gZWxzZSB7XG4gICAgaW5kZXggPSBzcGVjLmluZGV4O1xuICB9XG5cbiAgc2xpY2tDbG9uZWQgPSBpbmRleCA8IDAgfHwgaW5kZXggPj0gc3BlYy5zbGlkZUNvdW50O1xuXG4gIGlmIChzcGVjLmNlbnRlck1vZGUpIHtcbiAgICBjZW50ZXJPZmZzZXQgPSBNYXRoLmZsb29yKHNwZWMuc2xpZGVzVG9TaG93IC8gMik7XG4gICAgc2xpY2tDZW50ZXIgPSAoaW5kZXggLSBzcGVjLmN1cnJlbnRTbGlkZSkgJSBzcGVjLnNsaWRlQ291bnQgPT09IDA7XG5cbiAgICBpZiAoaW5kZXggPiBzcGVjLmN1cnJlbnRTbGlkZSAtIGNlbnRlck9mZnNldCAtIDEgJiYgaW5kZXggPD0gc3BlYy5jdXJyZW50U2xpZGUgKyBjZW50ZXJPZmZzZXQpIHtcbiAgICAgIHNsaWNrQWN0aXZlID0gdHJ1ZTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgc2xpY2tBY3RpdmUgPSBzcGVjLmN1cnJlbnRTbGlkZSA8PSBpbmRleCAmJiBpbmRleCA8IHNwZWMuY3VycmVudFNsaWRlICsgc3BlYy5zbGlkZXNUb1Nob3c7XG4gIH1cblxuICB2YXIgZm9jdXNlZFNsaWRlO1xuXG4gIGlmIChzcGVjLnRhcmdldFNsaWRlIDwgMCkge1xuICAgIGZvY3VzZWRTbGlkZSA9IHNwZWMudGFyZ2V0U2xpZGUgKyBzcGVjLnNsaWRlQ291bnQ7XG4gIH0gZWxzZSBpZiAoc3BlYy50YXJnZXRTbGlkZSA+PSBzcGVjLnNsaWRlQ291bnQpIHtcbiAgICBmb2N1c2VkU2xpZGUgPSBzcGVjLnRhcmdldFNsaWRlIC0gc3BlYy5zbGlkZUNvdW50O1xuICB9IGVsc2Uge1xuICAgIGZvY3VzZWRTbGlkZSA9IHNwZWMudGFyZ2V0U2xpZGU7XG4gIH1cblxuICB2YXIgc2xpY2tDdXJyZW50ID0gaW5kZXggPT09IGZvY3VzZWRTbGlkZTtcbiAgcmV0dXJuIHtcbiAgICBcInNsaWNrLXNsaWRlXCI6IHRydWUsXG4gICAgXCJzbGljay1hY3RpdmVcIjogc2xpY2tBY3RpdmUsXG4gICAgXCJzbGljay1jZW50ZXJcIjogc2xpY2tDZW50ZXIsXG4gICAgXCJzbGljay1jbG9uZWRcIjogc2xpY2tDbG9uZWQsXG4gICAgXCJzbGljay1jdXJyZW50XCI6IHNsaWNrQ3VycmVudCAvLyBkdWJpb3VzIGluIGNhc2Ugb2YgUlRMXG5cbiAgfTtcbn07XG5cbnZhciBnZXRTbGlkZVN0eWxlID0gZnVuY3Rpb24gZ2V0U2xpZGVTdHlsZShzcGVjKSB7XG4gIHZhciBzdHlsZSA9IHt9O1xuXG4gIGlmIChzcGVjLnZhcmlhYmxlV2lkdGggPT09IHVuZGVmaW5lZCB8fCBzcGVjLnZhcmlhYmxlV2lkdGggPT09IGZhbHNlKSB7XG4gICAgc3R5bGUud2lkdGggPSBzcGVjLnNsaWRlV2lkdGg7XG4gIH1cblxuICBpZiAoc3BlYy5mYWRlKSB7XG4gICAgc3R5bGUucG9zaXRpb24gPSBcInJlbGF0aXZlXCI7XG5cbiAgICBpZiAoc3BlYy52ZXJ0aWNhbCkge1xuICAgICAgc3R5bGUudG9wID0gLXNwZWMuaW5kZXggKiBwYXJzZUludChzcGVjLnNsaWRlSGVpZ2h0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3R5bGUubGVmdCA9IC1zcGVjLmluZGV4ICogcGFyc2VJbnQoc3BlYy5zbGlkZVdpZHRoKTtcbiAgICB9XG5cbiAgICBzdHlsZS5vcGFjaXR5ID0gc3BlYy5jdXJyZW50U2xpZGUgPT09IHNwZWMuaW5kZXggPyAxIDogMDtcblxuICAgIGlmIChzcGVjLnVzZUNTUykge1xuICAgICAgc3R5bGUudHJhbnNpdGlvbiA9IFwib3BhY2l0eSBcIiArIHNwZWMuc3BlZWQgKyBcIm1zIFwiICsgc3BlYy5jc3NFYXNlICsgXCIsIFwiICsgXCJ2aXNpYmlsaXR5IFwiICsgc3BlYy5zcGVlZCArIFwibXMgXCIgKyBzcGVjLmNzc0Vhc2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0eWxlO1xufTtcblxudmFyIGdldEtleSA9IGZ1bmN0aW9uIGdldEtleShjaGlsZCwgZmFsbGJhY2tLZXkpIHtcbiAgcmV0dXJuIGNoaWxkLmtleSB8fCBmYWxsYmFja0tleTtcbn07XG5cbnZhciByZW5kZXJTbGlkZXMgPSBmdW5jdGlvbiByZW5kZXJTbGlkZXMoc3BlYykge1xuICB2YXIga2V5O1xuICB2YXIgc2xpZGVzID0gW107XG4gIHZhciBwcmVDbG9uZVNsaWRlcyA9IFtdO1xuICB2YXIgcG9zdENsb25lU2xpZGVzID0gW107XG5cbiAgdmFyIGNoaWxkcmVuQ291bnQgPSBfcmVhY3RbXCJkZWZhdWx0XCJdLkNoaWxkcmVuLmNvdW50KHNwZWMuY2hpbGRyZW4pO1xuXG4gIHZhciBzdGFydEluZGV4ID0gKDAsIF9pbm5lclNsaWRlclV0aWxzLmxhenlTdGFydEluZGV4KShzcGVjKTtcbiAgdmFyIGVuZEluZGV4ID0gKDAsIF9pbm5lclNsaWRlclV0aWxzLmxhenlFbmRJbmRleCkoc3BlYyk7XG5cbiAgX3JlYWN0W1wiZGVmYXVsdFwiXS5DaGlsZHJlbi5mb3JFYWNoKHNwZWMuY2hpbGRyZW4sIGZ1bmN0aW9uIChlbGVtLCBpbmRleCkge1xuICAgIHZhciBjaGlsZDtcbiAgICB2YXIgY2hpbGRPbkNsaWNrT3B0aW9ucyA9IHtcbiAgICAgIG1lc3NhZ2U6IFwiY2hpbGRyZW5cIixcbiAgICAgIGluZGV4OiBpbmRleCxcbiAgICAgIHNsaWRlc1RvU2Nyb2xsOiBzcGVjLnNsaWRlc1RvU2Nyb2xsLFxuICAgICAgY3VycmVudFNsaWRlOiBzcGVjLmN1cnJlbnRTbGlkZVxuICAgIH07IC8vIGluIGNhc2Ugb2YgbGF6eUxvYWQsIHdoZXRoZXIgb3Igbm90IHdlIHdhbnQgdG8gZmV0Y2ggdGhlIHNsaWRlXG5cbiAgICBpZiAoIXNwZWMubGF6eUxvYWQgfHwgc3BlYy5sYXp5TG9hZCAmJiBzcGVjLmxhenlMb2FkZWRMaXN0LmluZGV4T2YoaW5kZXgpID49IDApIHtcbiAgICAgIGNoaWxkID0gZWxlbTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2hpbGQgPSAvKiNfX1BVUkVfXyovX3JlYWN0W1wiZGVmYXVsdFwiXS5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIG51bGwpO1xuICAgIH1cblxuICAgIHZhciBjaGlsZFN0eWxlID0gZ2V0U2xpZGVTdHlsZShfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHNwZWMpLCB7fSwge1xuICAgICAgaW5kZXg6IGluZGV4XG4gICAgfSkpO1xuICAgIHZhciBzbGlkZUNsYXNzID0gY2hpbGQucHJvcHMuY2xhc3NOYW1lIHx8IFwiXCI7XG4gICAgdmFyIHNsaWRlQ2xhc3NlcyA9IGdldFNsaWRlQ2xhc3Nlcyhfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHNwZWMpLCB7fSwge1xuICAgICAgaW5kZXg6IGluZGV4XG4gICAgfSkpOyAvLyBwdXNoIGEgY2xvbmVkIGVsZW1lbnQgb2YgdGhlIGRlc2lyZWQgc2xpZGVcblxuICAgIHNsaWRlcy5wdXNoKCAvKiNfX1BVUkVfXyovX3JlYWN0W1wiZGVmYXVsdFwiXS5jbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgIGtleTogXCJvcmlnaW5hbFwiICsgZ2V0S2V5KGNoaWxkLCBpbmRleCksXG4gICAgICBcImRhdGEtaW5kZXhcIjogaW5kZXgsXG4gICAgICBjbGFzc05hbWU6ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKHNsaWRlQ2xhc3Nlcywgc2xpZGVDbGFzcyksXG4gICAgICB0YWJJbmRleDogXCItMVwiLFxuICAgICAgXCJhcmlhLWhpZGRlblwiOiAhc2xpZGVDbGFzc2VzW1wic2xpY2stYWN0aXZlXCJdLFxuICAgICAgc3R5bGU6IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7XG4gICAgICAgIG91dGxpbmU6IFwibm9uZVwiXG4gICAgICB9LCBjaGlsZC5wcm9wcy5zdHlsZSB8fCB7fSksIGNoaWxkU3R5bGUpLFxuICAgICAgb25DbGljazogZnVuY3Rpb24gb25DbGljayhlKSB7XG4gICAgICAgIGNoaWxkLnByb3BzICYmIGNoaWxkLnByb3BzLm9uQ2xpY2sgJiYgY2hpbGQucHJvcHMub25DbGljayhlKTtcblxuICAgICAgICBpZiAoc3BlYy5mb2N1c09uU2VsZWN0KSB7XG4gICAgICAgICAgc3BlYy5mb2N1c09uU2VsZWN0KGNoaWxkT25DbGlja09wdGlvbnMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSkpOyAvLyBpZiBzbGlkZSBuZWVkcyB0byBiZSBwcmVjbG9uZWQgb3IgcG9zdGNsb25lZFxuXG4gICAgaWYgKHNwZWMuaW5maW5pdGUgJiYgc3BlYy5mYWRlID09PSBmYWxzZSkge1xuICAgICAgdmFyIHByZUNsb25lTm8gPSBjaGlsZHJlbkNvdW50IC0gaW5kZXg7XG5cbiAgICAgIGlmIChwcmVDbG9uZU5vIDw9ICgwLCBfaW5uZXJTbGlkZXJVdGlscy5nZXRQcmVDbG9uZXMpKHNwZWMpICYmIGNoaWxkcmVuQ291bnQgIT09IHNwZWMuc2xpZGVzVG9TaG93KSB7XG4gICAgICAgIGtleSA9IC1wcmVDbG9uZU5vO1xuXG4gICAgICAgIGlmIChrZXkgPj0gc3RhcnRJbmRleCkge1xuICAgICAgICAgIGNoaWxkID0gZWxlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNsaWRlQ2xhc3NlcyA9IGdldFNsaWRlQ2xhc3Nlcyhfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHNwZWMpLCB7fSwge1xuICAgICAgICAgIGluZGV4OiBrZXlcbiAgICAgICAgfSkpO1xuICAgICAgICBwcmVDbG9uZVNsaWRlcy5wdXNoKCAvKiNfX1BVUkVfXyovX3JlYWN0W1wiZGVmYXVsdFwiXS5jbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICBrZXk6IFwicHJlY2xvbmVkXCIgKyBnZXRLZXkoY2hpbGQsIGtleSksXG4gICAgICAgICAgXCJkYXRhLWluZGV4XCI6IGtleSxcbiAgICAgICAgICB0YWJJbmRleDogXCItMVwiLFxuICAgICAgICAgIGNsYXNzTmFtZTogKDAsIF9jbGFzc25hbWVzW1wiZGVmYXVsdFwiXSkoc2xpZGVDbGFzc2VzLCBzbGlkZUNsYXNzKSxcbiAgICAgICAgICBcImFyaWEtaGlkZGVuXCI6ICFzbGlkZUNsYXNzZXNbXCJzbGljay1hY3RpdmVcIl0sXG4gICAgICAgICAgc3R5bGU6IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgY2hpbGQucHJvcHMuc3R5bGUgfHwge30pLCBjaGlsZFN0eWxlKSxcbiAgICAgICAgICBvbkNsaWNrOiBmdW5jdGlvbiBvbkNsaWNrKGUpIHtcbiAgICAgICAgICAgIGNoaWxkLnByb3BzICYmIGNoaWxkLnByb3BzLm9uQ2xpY2sgJiYgY2hpbGQucHJvcHMub25DbGljayhlKTtcblxuICAgICAgICAgICAgaWYgKHNwZWMuZm9jdXNPblNlbGVjdCkge1xuICAgICAgICAgICAgICBzcGVjLmZvY3VzT25TZWxlY3QoY2hpbGRPbkNsaWNrT3B0aW9ucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChjaGlsZHJlbkNvdW50ICE9PSBzcGVjLnNsaWRlc1RvU2hvdykge1xuICAgICAgICBrZXkgPSBjaGlsZHJlbkNvdW50ICsgaW5kZXg7XG5cbiAgICAgICAgaWYgKGtleSA8IGVuZEluZGV4KSB7XG4gICAgICAgICAgY2hpbGQgPSBlbGVtO1xuICAgICAgICB9XG5cbiAgICAgICAgc2xpZGVDbGFzc2VzID0gZ2V0U2xpZGVDbGFzc2VzKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgc3BlYyksIHt9LCB7XG4gICAgICAgICAgaW5kZXg6IGtleVxuICAgICAgICB9KSk7XG4gICAgICAgIHBvc3RDbG9uZVNsaWRlcy5wdXNoKCAvKiNfX1BVUkVfXyovX3JlYWN0W1wiZGVmYXVsdFwiXS5jbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICBrZXk6IFwicG9zdGNsb25lZFwiICsgZ2V0S2V5KGNoaWxkLCBrZXkpLFxuICAgICAgICAgIFwiZGF0YS1pbmRleFwiOiBrZXksXG4gICAgICAgICAgdGFiSW5kZXg6IFwiLTFcIixcbiAgICAgICAgICBjbGFzc05hbWU6ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKHNsaWRlQ2xhc3Nlcywgc2xpZGVDbGFzcyksXG4gICAgICAgICAgXCJhcmlhLWhpZGRlblwiOiAhc2xpZGVDbGFzc2VzW1wic2xpY2stYWN0aXZlXCJdLFxuICAgICAgICAgIHN0eWxlOiBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIGNoaWxkLnByb3BzLnN0eWxlIHx8IHt9KSwgY2hpbGRTdHlsZSksXG4gICAgICAgICAgb25DbGljazogZnVuY3Rpb24gb25DbGljayhlKSB7XG4gICAgICAgICAgICBjaGlsZC5wcm9wcyAmJiBjaGlsZC5wcm9wcy5vbkNsaWNrICYmIGNoaWxkLnByb3BzLm9uQ2xpY2soZSk7XG5cbiAgICAgICAgICAgIGlmIChzcGVjLmZvY3VzT25TZWxlY3QpIHtcbiAgICAgICAgICAgICAgc3BlYy5mb2N1c09uU2VsZWN0KGNoaWxkT25DbGlja09wdGlvbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSkpO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgaWYgKHNwZWMucnRsKSB7XG4gICAgcmV0dXJuIHByZUNsb25lU2xpZGVzLmNvbmNhdChzbGlkZXMsIHBvc3RDbG9uZVNsaWRlcykucmV2ZXJzZSgpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBwcmVDbG9uZVNsaWRlcy5jb25jYXQoc2xpZGVzLCBwb3N0Q2xvbmVTbGlkZXMpO1xuICB9XG59O1xuXG52YXIgVHJhY2sgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9SZWFjdCRQdXJlQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhUcmFjaywgX1JlYWN0JFB1cmVDb21wb25lbnQpO1xuXG4gIHZhciBfc3VwZXIgPSBfY3JlYXRlU3VwZXIoVHJhY2spO1xuXG4gIGZ1bmN0aW9uIFRyYWNrKCkge1xuICAgIHZhciBfdGhpcztcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBUcmFjayk7XG5cbiAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgIGFyZ3NbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgfVxuXG4gICAgX3RoaXMgPSBfc3VwZXIuY2FsbC5hcHBseShfc3VwZXIsIFt0aGlzXS5jb25jYXQoYXJncykpO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcIm5vZGVcIiwgbnVsbCk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwiaGFuZGxlUmVmXCIsIGZ1bmN0aW9uIChyZWYpIHtcbiAgICAgIF90aGlzLm5vZGUgPSByZWY7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoVHJhY2ssIFt7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgc2xpZGVzID0gcmVuZGVyU2xpZGVzKHRoaXMucHJvcHMpO1xuICAgICAgdmFyIF90aGlzJHByb3BzID0gdGhpcy5wcm9wcyxcbiAgICAgICAgICBvbk1vdXNlRW50ZXIgPSBfdGhpcyRwcm9wcy5vbk1vdXNlRW50ZXIsXG4gICAgICAgICAgb25Nb3VzZU92ZXIgPSBfdGhpcyRwcm9wcy5vbk1vdXNlT3ZlcixcbiAgICAgICAgICBvbk1vdXNlTGVhdmUgPSBfdGhpcyRwcm9wcy5vbk1vdXNlTGVhdmU7XG4gICAgICB2YXIgbW91c2VFdmVudHMgPSB7XG4gICAgICAgIG9uTW91c2VFbnRlcjogb25Nb3VzZUVudGVyLFxuICAgICAgICBvbk1vdXNlT3Zlcjogb25Nb3VzZU92ZXIsXG4gICAgICAgIG9uTW91c2VMZWF2ZTogb25Nb3VzZUxlYXZlXG4gICAgICB9O1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9fcmVhY3RbXCJkZWZhdWx0XCJdLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgX2V4dGVuZHMoe1xuICAgICAgICByZWY6IHRoaXMuaGFuZGxlUmVmLFxuICAgICAgICBjbGFzc05hbWU6IFwic2xpY2stdHJhY2tcIixcbiAgICAgICAgc3R5bGU6IHRoaXMucHJvcHMudHJhY2tTdHlsZVxuICAgICAgfSwgbW91c2VFdmVudHMpLCBzbGlkZXMpO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBUcmFjaztcbn0oX3JlYWN0W1wiZGVmYXVsdFwiXS5QdXJlQ29tcG9uZW50KTtcblxuZXhwb3J0cy5UcmFjayA9IFRyYWNrOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-slick/lib/track.js\n"); + +/***/ }), + +/***/ "./node_modules/react-slick/lib/utils/innerSliderUtils.js": +/*!****************************************************************!*\ + !*** ./node_modules/react-slick/lib/utils/innerSliderUtils.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.clamp = clamp;\nexports.canUseDOM = exports.slidesOnLeft = exports.slidesOnRight = exports.siblingDirection = exports.getTotalSlides = exports.getPostClones = exports.getPreClones = exports.getTrackLeft = exports.getTrackAnimateCSS = exports.getTrackCSS = exports.checkSpecKeys = exports.getSlideCount = exports.checkNavigable = exports.getNavigableIndexes = exports.swipeEnd = exports.swipeMove = exports.swipeStart = exports.keyHandler = exports.changeSlide = exports.slideHandler = exports.initializedState = exports.extractObject = exports.canGoNext = exports.getSwipeDirection = exports.getHeight = exports.getWidth = exports.lazySlidesOnRight = exports.lazySlidesOnLeft = exports.lazyEndIndex = exports.lazyStartIndex = exports.getRequiredLazySlides = exports.getOnDemandLazySlides = exports.safePreventDefault = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction clamp(number, lowerBound, upperBound) {\n return Math.max(lowerBound, Math.min(number, upperBound));\n}\n\nvar safePreventDefault = function safePreventDefault(event) {\n var passiveEvents = [\"onTouchStart\", \"onTouchMove\", \"onWheel\"];\n\n if (!passiveEvents.includes(event._reactName)) {\n event.preventDefault();\n }\n};\n\nexports.safePreventDefault = safePreventDefault;\n\nvar getOnDemandLazySlides = function getOnDemandLazySlides(spec) {\n var onDemandSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n if (spec.lazyLoadedList.indexOf(slideIndex) < 0) {\n onDemandSlides.push(slideIndex);\n }\n }\n\n return onDemandSlides;\n}; // return list of slides that need to be present\n\n\nexports.getOnDemandLazySlides = getOnDemandLazySlides;\n\nvar getRequiredLazySlides = function getRequiredLazySlides(spec) {\n var requiredSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n requiredSlides.push(slideIndex);\n }\n\n return requiredSlides;\n}; // startIndex that needs to be present\n\n\nexports.getRequiredLazySlides = getRequiredLazySlides;\n\nvar lazyStartIndex = function lazyStartIndex(spec) {\n return spec.currentSlide - lazySlidesOnLeft(spec);\n};\n\nexports.lazyStartIndex = lazyStartIndex;\n\nvar lazyEndIndex = function lazyEndIndex(spec) {\n return spec.currentSlide + lazySlidesOnRight(spec);\n};\n\nexports.lazyEndIndex = lazyEndIndex;\n\nvar lazySlidesOnLeft = function lazySlidesOnLeft(spec) {\n return spec.centerMode ? Math.floor(spec.slidesToShow / 2) + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : 0;\n};\n\nexports.lazySlidesOnLeft = lazySlidesOnLeft;\n\nvar lazySlidesOnRight = function lazySlidesOnRight(spec) {\n return spec.centerMode ? Math.floor((spec.slidesToShow - 1) / 2) + 1 + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : spec.slidesToShow;\n}; // get width of an element\n\n\nexports.lazySlidesOnRight = lazySlidesOnRight;\n\nvar getWidth = function getWidth(elem) {\n return elem && elem.offsetWidth || 0;\n};\n\nexports.getWidth = getWidth;\n\nvar getHeight = function getHeight(elem) {\n return elem && elem.offsetHeight || 0;\n};\n\nexports.getHeight = getHeight;\n\nvar getSwipeDirection = function getSwipeDirection(touchObject) {\n var verticalSwiping = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var xDist, yDist, r, swipeAngle;\n xDist = touchObject.startX - touchObject.curX;\n yDist = touchObject.startY - touchObject.curY;\n r = Math.atan2(yDist, xDist);\n swipeAngle = Math.round(r * 180 / Math.PI);\n\n if (swipeAngle < 0) {\n swipeAngle = 360 - Math.abs(swipeAngle);\n }\n\n if (swipeAngle <= 45 && swipeAngle >= 0 || swipeAngle <= 360 && swipeAngle >= 315) {\n return \"left\";\n }\n\n if (swipeAngle >= 135 && swipeAngle <= 225) {\n return \"right\";\n }\n\n if (verticalSwiping === true) {\n if (swipeAngle >= 35 && swipeAngle <= 135) {\n return \"up\";\n } else {\n return \"down\";\n }\n }\n\n return \"vertical\";\n}; // whether or not we can go next\n\n\nexports.getSwipeDirection = getSwipeDirection;\n\nvar canGoNext = function canGoNext(spec) {\n var canGo = true;\n\n if (!spec.infinite) {\n if (spec.centerMode && spec.currentSlide >= spec.slideCount - 1) {\n canGo = false;\n } else if (spec.slideCount <= spec.slidesToShow || spec.currentSlide >= spec.slideCount - spec.slidesToShow) {\n canGo = false;\n }\n }\n\n return canGo;\n}; // given an object and a list of keys, return new object with given keys\n\n\nexports.canGoNext = canGoNext;\n\nvar extractObject = function extractObject(spec, keys) {\n var newObject = {};\n keys.forEach(function (key) {\n return newObject[key] = spec[key];\n });\n return newObject;\n}; // get initialized state\n\n\nexports.extractObject = extractObject;\n\nvar initializedState = function initializedState(spec) {\n // spec also contains listRef, trackRef\n var slideCount = _react[\"default\"].Children.count(spec.children);\n\n var listNode = spec.listRef;\n var listWidth = Math.ceil(getWidth(listNode));\n var trackNode = spec.trackRef && spec.trackRef.node;\n var trackWidth = Math.ceil(getWidth(trackNode));\n var slideWidth;\n\n if (!spec.vertical) {\n var centerPaddingAdj = spec.centerMode && parseInt(spec.centerPadding) * 2;\n\n if (typeof spec.centerPadding === \"string\" && spec.centerPadding.slice(-1) === \"%\") {\n centerPaddingAdj *= listWidth / 100;\n }\n\n slideWidth = Math.ceil((listWidth - centerPaddingAdj) / spec.slidesToShow);\n } else {\n slideWidth = listWidth;\n }\n\n var slideHeight = listNode && getHeight(listNode.querySelector('[data-index=\"0\"]'));\n var listHeight = slideHeight * spec.slidesToShow;\n var currentSlide = spec.currentSlide === undefined ? spec.initialSlide : spec.currentSlide;\n\n if (spec.rtl && spec.currentSlide === undefined) {\n currentSlide = slideCount - 1 - spec.initialSlide;\n }\n\n var lazyLoadedList = spec.lazyLoadedList || [];\n var slidesToLoad = getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: currentSlide,\n lazyLoadedList: lazyLoadedList\n }));\n lazyLoadedList = lazyLoadedList.concat(slidesToLoad);\n var state = {\n slideCount: slideCount,\n slideWidth: slideWidth,\n listWidth: listWidth,\n trackWidth: trackWidth,\n currentSlide: currentSlide,\n slideHeight: slideHeight,\n listHeight: listHeight,\n lazyLoadedList: lazyLoadedList\n };\n\n if (spec.autoplaying === null && spec.autoplay) {\n state[\"autoplaying\"] = \"playing\";\n }\n\n return state;\n};\n\nexports.initializedState = initializedState;\n\nvar slideHandler = function slideHandler(spec) {\n var waitForAnimate = spec.waitForAnimate,\n animating = spec.animating,\n fade = spec.fade,\n infinite = spec.infinite,\n index = spec.index,\n slideCount = spec.slideCount,\n lazyLoad = spec.lazyLoad,\n currentSlide = spec.currentSlide,\n centerMode = spec.centerMode,\n slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n useCSS = spec.useCSS;\n var lazyLoadedList = spec.lazyLoadedList;\n if (waitForAnimate && animating) return {};\n var animationSlide = index,\n finalSlide,\n animationLeft,\n finalLeft;\n var state = {},\n nextState = {};\n var targetSlide = infinite ? index : clamp(index, 0, slideCount - 1);\n\n if (fade) {\n if (!infinite && (index < 0 || index >= slideCount)) return {};\n\n if (index < 0) {\n animationSlide = index + slideCount;\n } else if (index >= slideCount) {\n animationSlide = index - slideCount;\n }\n\n if (lazyLoad && lazyLoadedList.indexOf(animationSlide) < 0) {\n lazyLoadedList = lazyLoadedList.concat(animationSlide);\n }\n\n state = {\n animating: true,\n currentSlide: animationSlide,\n lazyLoadedList: lazyLoadedList,\n targetSlide: animationSlide\n };\n nextState = {\n animating: false,\n targetSlide: animationSlide\n };\n } else {\n finalSlide = animationSlide;\n\n if (animationSlide < 0) {\n finalSlide = animationSlide + slideCount;\n if (!infinite) finalSlide = 0;else if (slideCount % slidesToScroll !== 0) finalSlide = slideCount - slideCount % slidesToScroll;\n } else if (!canGoNext(spec) && animationSlide > currentSlide) {\n animationSlide = finalSlide = currentSlide;\n } else if (centerMode && animationSlide >= slideCount) {\n animationSlide = infinite ? slideCount : slideCount - 1;\n finalSlide = infinite ? 0 : slideCount - 1;\n } else if (animationSlide >= slideCount) {\n finalSlide = animationSlide - slideCount;\n if (!infinite) finalSlide = slideCount - slidesToShow;else if (slideCount % slidesToScroll !== 0) finalSlide = 0;\n }\n\n if (!infinite && animationSlide + slidesToShow >= slideCount) {\n finalSlide = slideCount - slidesToShow;\n }\n\n animationLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: animationSlide\n }));\n finalLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: finalSlide\n }));\n\n if (!infinite) {\n if (animationLeft === finalLeft) animationSlide = finalSlide;\n animationLeft = finalLeft;\n }\n\n if (lazyLoad) {\n lazyLoadedList = lazyLoadedList.concat(getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: animationSlide\n })));\n }\n\n if (!useCSS) {\n state = {\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n } else {\n state = {\n animating: true,\n currentSlide: finalSlide,\n trackStyle: getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: animationLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n nextState = {\n animating: false,\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n swipeLeft: null,\n targetSlide: targetSlide\n };\n }\n }\n\n return {\n state: state,\n nextState: nextState\n };\n};\n\nexports.slideHandler = slideHandler;\n\nvar changeSlide = function changeSlide(spec, options) {\n var indexOffset, previousInt, slideOffset, unevenOffset, targetSlide;\n var slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n slideCount = spec.slideCount,\n currentSlide = spec.currentSlide,\n previousTargetSlide = spec.targetSlide,\n lazyLoad = spec.lazyLoad,\n infinite = spec.infinite;\n unevenOffset = slideCount % slidesToScroll !== 0;\n indexOffset = unevenOffset ? 0 : (slideCount - currentSlide) % slidesToScroll;\n\n if (options.message === \"previous\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : slidesToShow - indexOffset;\n targetSlide = currentSlide - slideOffset;\n\n if (lazyLoad && !infinite) {\n previousInt = currentSlide - slideOffset;\n targetSlide = previousInt === -1 ? slideCount - 1 : previousInt;\n }\n\n if (!infinite) {\n targetSlide = previousTargetSlide - slidesToScroll;\n }\n } else if (options.message === \"next\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : indexOffset;\n targetSlide = currentSlide + slideOffset;\n\n if (lazyLoad && !infinite) {\n targetSlide = (currentSlide + slidesToScroll) % slideCount + indexOffset;\n }\n\n if (!infinite) {\n targetSlide = previousTargetSlide + slidesToScroll;\n }\n } else if (options.message === \"dots\") {\n // Click on dots\n targetSlide = options.index * options.slidesToScroll;\n } else if (options.message === \"children\") {\n // Click on the slides\n targetSlide = options.index;\n\n if (infinite) {\n var direction = siblingDirection(_objectSpread(_objectSpread({}, spec), {}, {\n targetSlide: targetSlide\n }));\n\n if (targetSlide > options.currentSlide && direction === \"left\") {\n targetSlide = targetSlide - slideCount;\n } else if (targetSlide < options.currentSlide && direction === \"right\") {\n targetSlide = targetSlide + slideCount;\n }\n }\n } else if (options.message === \"index\") {\n targetSlide = Number(options.index);\n }\n\n return targetSlide;\n};\n\nexports.changeSlide = changeSlide;\n\nvar keyHandler = function keyHandler(e, accessibility, rtl) {\n if (e.target.tagName.match(\"TEXTAREA|INPUT|SELECT\") || !accessibility) return \"\";\n if (e.keyCode === 37) return rtl ? \"next\" : \"previous\";\n if (e.keyCode === 39) return rtl ? \"previous\" : \"next\";\n return \"\";\n};\n\nexports.keyHandler = keyHandler;\n\nvar swipeStart = function swipeStart(e, swipe, draggable) {\n e.target.tagName === \"IMG\" && safePreventDefault(e);\n if (!swipe || !draggable && e.type.indexOf(\"mouse\") !== -1) return \"\";\n return {\n dragging: true,\n touchObject: {\n startX: e.touches ? e.touches[0].pageX : e.clientX,\n startY: e.touches ? e.touches[0].pageY : e.clientY,\n curX: e.touches ? e.touches[0].pageX : e.clientX,\n curY: e.touches ? e.touches[0].pageY : e.clientY\n }\n };\n};\n\nexports.swipeStart = swipeStart;\n\nvar swipeMove = function swipeMove(e, spec) {\n // spec also contains, trackRef and slideIndex\n var scrolling = spec.scrolling,\n animating = spec.animating,\n vertical = spec.vertical,\n swipeToSlide = spec.swipeToSlide,\n verticalSwiping = spec.verticalSwiping,\n rtl = spec.rtl,\n currentSlide = spec.currentSlide,\n edgeFriction = spec.edgeFriction,\n edgeDragged = spec.edgeDragged,\n onEdge = spec.onEdge,\n swiped = spec.swiped,\n swiping = spec.swiping,\n slideCount = spec.slideCount,\n slidesToScroll = spec.slidesToScroll,\n infinite = spec.infinite,\n touchObject = spec.touchObject,\n swipeEvent = spec.swipeEvent,\n listHeight = spec.listHeight,\n listWidth = spec.listWidth;\n if (scrolling) return;\n if (animating) return safePreventDefault(e);\n if (vertical && swipeToSlide && verticalSwiping) safePreventDefault(e);\n var swipeLeft,\n state = {};\n var curLeft = getTrackLeft(spec);\n touchObject.curX = e.touches ? e.touches[0].pageX : e.clientX;\n touchObject.curY = e.touches ? e.touches[0].pageY : e.clientY;\n touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curX - touchObject.startX, 2)));\n var verticalSwipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curY - touchObject.startY, 2)));\n\n if (!verticalSwiping && !swiping && verticalSwipeLength > 10) {\n return {\n scrolling: true\n };\n }\n\n if (verticalSwiping) touchObject.swipeLength = verticalSwipeLength;\n var positionOffset = (!rtl ? 1 : -1) * (touchObject.curX > touchObject.startX ? 1 : -1);\n if (verticalSwiping) positionOffset = touchObject.curY > touchObject.startY ? 1 : -1;\n var dotCount = Math.ceil(slideCount / slidesToScroll);\n var swipeDirection = getSwipeDirection(spec.touchObject, verticalSwiping);\n var touchSwipeLength = touchObject.swipeLength;\n\n if (!infinite) {\n if (currentSlide === 0 && (swipeDirection === \"right\" || swipeDirection === \"down\") || currentSlide + 1 >= dotCount && (swipeDirection === \"left\" || swipeDirection === \"up\") || !canGoNext(spec) && (swipeDirection === \"left\" || swipeDirection === \"up\")) {\n touchSwipeLength = touchObject.swipeLength * edgeFriction;\n\n if (edgeDragged === false && onEdge) {\n onEdge(swipeDirection);\n state[\"edgeDragged\"] = true;\n }\n }\n }\n\n if (!swiped && swipeEvent) {\n swipeEvent(swipeDirection);\n state[\"swiped\"] = true;\n }\n\n if (!vertical) {\n if (!rtl) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n } else {\n swipeLeft = curLeft - touchSwipeLength * positionOffset;\n }\n } else {\n swipeLeft = curLeft + touchSwipeLength * (listHeight / listWidth) * positionOffset;\n }\n\n if (verticalSwiping) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n }\n\n state = _objectSpread(_objectSpread({}, state), {}, {\n touchObject: touchObject,\n swipeLeft: swipeLeft,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: swipeLeft\n }))\n });\n\n if (Math.abs(touchObject.curX - touchObject.startX) < Math.abs(touchObject.curY - touchObject.startY) * 0.8) {\n return state;\n }\n\n if (touchObject.swipeLength > 10) {\n state[\"swiping\"] = true;\n safePreventDefault(e);\n }\n\n return state;\n};\n\nexports.swipeMove = swipeMove;\n\nvar swipeEnd = function swipeEnd(e, spec) {\n var dragging = spec.dragging,\n swipe = spec.swipe,\n touchObject = spec.touchObject,\n listWidth = spec.listWidth,\n touchThreshold = spec.touchThreshold,\n verticalSwiping = spec.verticalSwiping,\n listHeight = spec.listHeight,\n swipeToSlide = spec.swipeToSlide,\n scrolling = spec.scrolling,\n onSwipe = spec.onSwipe,\n targetSlide = spec.targetSlide,\n currentSlide = spec.currentSlide,\n infinite = spec.infinite;\n\n if (!dragging) {\n if (swipe) safePreventDefault(e);\n return {};\n }\n\n var minSwipe = verticalSwiping ? listHeight / touchThreshold : listWidth / touchThreshold;\n var swipeDirection = getSwipeDirection(touchObject, verticalSwiping); // reset the state of touch related state variables.\n\n var state = {\n dragging: false,\n edgeDragged: false,\n scrolling: false,\n swiping: false,\n swiped: false,\n swipeLeft: null,\n touchObject: {}\n };\n\n if (scrolling) {\n return state;\n }\n\n if (!touchObject.swipeLength) {\n return state;\n }\n\n if (touchObject.swipeLength > minSwipe) {\n safePreventDefault(e);\n\n if (onSwipe) {\n onSwipe(swipeDirection);\n }\n\n var slideCount, newSlide;\n var activeSlide = infinite ? currentSlide : targetSlide;\n\n switch (swipeDirection) {\n case \"left\":\n case \"up\":\n newSlide = activeSlide + getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 0;\n break;\n\n case \"right\":\n case \"down\":\n newSlide = activeSlide - getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 1;\n break;\n\n default:\n slideCount = activeSlide;\n }\n\n state[\"triggerSlideHandler\"] = slideCount;\n } else {\n // Adjust the track back to it's original position.\n var currentLeft = getTrackLeft(spec);\n state[\"trackStyle\"] = getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: currentLeft\n }));\n }\n\n return state;\n};\n\nexports.swipeEnd = swipeEnd;\n\nvar getNavigableIndexes = function getNavigableIndexes(spec) {\n var max = spec.infinite ? spec.slideCount * 2 : spec.slideCount;\n var breakpoint = spec.infinite ? spec.slidesToShow * -1 : 0;\n var counter = spec.infinite ? spec.slidesToShow * -1 : 0;\n var indexes = [];\n\n while (breakpoint < max) {\n indexes.push(breakpoint);\n breakpoint = counter + spec.slidesToScroll;\n counter += Math.min(spec.slidesToScroll, spec.slidesToShow);\n }\n\n return indexes;\n};\n\nexports.getNavigableIndexes = getNavigableIndexes;\n\nvar checkNavigable = function checkNavigable(spec, index) {\n var navigables = getNavigableIndexes(spec);\n var prevNavigable = 0;\n\n if (index > navigables[navigables.length - 1]) {\n index = navigables[navigables.length - 1];\n } else {\n for (var n in navigables) {\n if (index < navigables[n]) {\n index = prevNavigable;\n break;\n }\n\n prevNavigable = navigables[n];\n }\n }\n\n return index;\n};\n\nexports.checkNavigable = checkNavigable;\n\nvar getSlideCount = function getSlideCount(spec) {\n var centerOffset = spec.centerMode ? spec.slideWidth * Math.floor(spec.slidesToShow / 2) : 0;\n\n if (spec.swipeToSlide) {\n var swipedSlide;\n var slickList = spec.listRef;\n var slides = slickList.querySelectorAll && slickList.querySelectorAll(\".slick-slide\") || [];\n Array.from(slides).every(function (slide) {\n if (!spec.vertical) {\n if (slide.offsetLeft - centerOffset + getWidth(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n } else {\n if (slide.offsetTop + getHeight(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n }\n\n return true;\n });\n\n if (!swipedSlide) {\n return 0;\n }\n\n var currentIndex = spec.rtl === true ? spec.slideCount - spec.currentSlide : spec.currentSlide;\n var slidesTraversed = Math.abs(swipedSlide.dataset.index - currentIndex) || 1;\n return slidesTraversed;\n } else {\n return spec.slidesToScroll;\n }\n};\n\nexports.getSlideCount = getSlideCount;\n\nvar checkSpecKeys = function checkSpecKeys(spec, keysArray) {\n return keysArray.reduce(function (value, key) {\n return value && spec.hasOwnProperty(key);\n }, true) ? null : console.error(\"Keys Missing:\", spec);\n};\n\nexports.checkSpecKeys = checkSpecKeys;\n\nvar getTrackCSS = function getTrackCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\"]);\n var trackWidth, trackHeight;\n var trackChildren = spec.slideCount + 2 * spec.slidesToShow;\n\n if (!spec.vertical) {\n trackWidth = getTotalSlides(spec) * spec.slideWidth;\n } else {\n trackHeight = trackChildren * spec.slideHeight;\n }\n\n var style = {\n opacity: 1,\n transition: \"\",\n WebkitTransition: \"\"\n };\n\n if (spec.useTransform) {\n var WebkitTransform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var transform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var msTransform = !spec.vertical ? \"translateX(\" + spec.left + \"px)\" : \"translateY(\" + spec.left + \"px)\";\n style = _objectSpread(_objectSpread({}, style), {}, {\n WebkitTransform: WebkitTransform,\n transform: transform,\n msTransform: msTransform\n });\n } else {\n if (spec.vertical) {\n style[\"top\"] = spec.left;\n } else {\n style[\"left\"] = spec.left;\n }\n }\n\n if (spec.fade) style = {\n opacity: 1\n };\n if (trackWidth) style.width = trackWidth;\n if (trackHeight) style.height = trackHeight; // Fallback for IE8\n\n if (window && !window.addEventListener && window.attachEvent) {\n if (!spec.vertical) {\n style.marginLeft = spec.left + \"px\";\n } else {\n style.marginTop = spec.left + \"px\";\n }\n }\n\n return style;\n};\n\nexports.getTrackCSS = getTrackCSS;\n\nvar getTrackAnimateCSS = function getTrackAnimateCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\", \"speed\", \"cssEase\"]);\n var style = getTrackCSS(spec); // useCSS is true by default so it can be undefined\n\n if (spec.useTransform) {\n style.WebkitTransition = \"-webkit-transform \" + spec.speed + \"ms \" + spec.cssEase;\n style.transition = \"transform \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n if (spec.vertical) {\n style.transition = \"top \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n style.transition = \"left \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n\n return style;\n};\n\nexports.getTrackAnimateCSS = getTrackAnimateCSS;\n\nvar getTrackLeft = function getTrackLeft(spec) {\n if (spec.unslick) {\n return 0;\n }\n\n checkSpecKeys(spec, [\"slideIndex\", \"trackRef\", \"infinite\", \"centerMode\", \"slideCount\", \"slidesToShow\", \"slidesToScroll\", \"slideWidth\", \"listWidth\", \"variableWidth\", \"slideHeight\"]);\n var slideIndex = spec.slideIndex,\n trackRef = spec.trackRef,\n infinite = spec.infinite,\n centerMode = spec.centerMode,\n slideCount = spec.slideCount,\n slidesToShow = spec.slidesToShow,\n slidesToScroll = spec.slidesToScroll,\n slideWidth = spec.slideWidth,\n listWidth = spec.listWidth,\n variableWidth = spec.variableWidth,\n slideHeight = spec.slideHeight,\n fade = spec.fade,\n vertical = spec.vertical;\n var slideOffset = 0;\n var targetLeft;\n var targetSlide;\n var verticalOffset = 0;\n\n if (fade || spec.slideCount === 1) {\n return 0;\n }\n\n var slidesToOffset = 0;\n\n if (infinite) {\n slidesToOffset = -getPreClones(spec); // bring active slide to the beginning of visual area\n // if next scroll doesn't have enough children, just reach till the end of original slides instead of shifting slidesToScroll children\n\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = -(slideIndex > slideCount ? slidesToShow - (slideIndex - slideCount) : slideCount % slidesToScroll);\n } // shift current slide to center of the frame\n\n\n if (centerMode) {\n slidesToOffset += parseInt(slidesToShow / 2);\n }\n } else {\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = slidesToShow - slideCount % slidesToScroll;\n }\n\n if (centerMode) {\n slidesToOffset = parseInt(slidesToShow / 2);\n }\n }\n\n slideOffset = slidesToOffset * slideWidth;\n verticalOffset = slidesToOffset * slideHeight;\n\n if (!vertical) {\n targetLeft = slideIndex * slideWidth * -1 + slideOffset;\n } else {\n targetLeft = slideIndex * slideHeight * -1 + verticalOffset;\n }\n\n if (variableWidth === true) {\n var targetSlideIndex;\n var trackElem = trackRef && trackRef.node;\n targetSlideIndex = slideIndex + getPreClones(spec);\n targetSlide = trackElem && trackElem.childNodes[targetSlideIndex];\n targetLeft = targetSlide ? targetSlide.offsetLeft * -1 : 0;\n\n if (centerMode === true) {\n targetSlideIndex = infinite ? slideIndex + getPreClones(spec) : slideIndex;\n targetSlide = trackElem && trackElem.children[targetSlideIndex];\n targetLeft = 0;\n\n for (var slide = 0; slide < targetSlideIndex; slide++) {\n targetLeft -= trackElem && trackElem.children[slide] && trackElem.children[slide].offsetWidth;\n }\n\n targetLeft -= parseInt(spec.centerPadding);\n targetLeft += targetSlide && (listWidth - targetSlide.offsetWidth) / 2;\n }\n }\n\n return targetLeft;\n};\n\nexports.getTrackLeft = getTrackLeft;\n\nvar getPreClones = function getPreClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n\n if (spec.variableWidth) {\n return spec.slideCount;\n }\n\n return spec.slidesToShow + (spec.centerMode ? 1 : 0);\n};\n\nexports.getPreClones = getPreClones;\n\nvar getPostClones = function getPostClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n\n return spec.slideCount;\n};\n\nexports.getPostClones = getPostClones;\n\nvar getTotalSlides = function getTotalSlides(spec) {\n return spec.slideCount === 1 ? 1 : getPreClones(spec) + spec.slideCount + getPostClones(spec);\n};\n\nexports.getTotalSlides = getTotalSlides;\n\nvar siblingDirection = function siblingDirection(spec) {\n if (spec.targetSlide > spec.currentSlide) {\n if (spec.targetSlide > spec.currentSlide + slidesOnRight(spec)) {\n return \"left\";\n }\n\n return \"right\";\n } else {\n if (spec.targetSlide < spec.currentSlide - slidesOnLeft(spec)) {\n return \"right\";\n }\n\n return \"left\";\n }\n};\n\nexports.siblingDirection = siblingDirection;\n\nvar slidesOnRight = function slidesOnRight(_ref) {\n var slidesToShow = _ref.slidesToShow,\n centerMode = _ref.centerMode,\n rtl = _ref.rtl,\n centerPadding = _ref.centerPadding;\n\n // returns no of slides on the right of active slide\n if (centerMode) {\n var right = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) right += 1;\n if (rtl && slidesToShow % 2 === 0) right += 1;\n return right;\n }\n\n if (rtl) {\n return 0;\n }\n\n return slidesToShow - 1;\n};\n\nexports.slidesOnRight = slidesOnRight;\n\nvar slidesOnLeft = function slidesOnLeft(_ref2) {\n var slidesToShow = _ref2.slidesToShow,\n centerMode = _ref2.centerMode,\n rtl = _ref2.rtl,\n centerPadding = _ref2.centerPadding;\n\n // returns no of slides on the left of active slide\n if (centerMode) {\n var left = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) left += 1;\n if (!rtl && slidesToShow % 2 === 0) left += 1;\n return left;\n }\n\n if (rtl) {\n return slidesToShow - 1;\n }\n\n return 0;\n};\n\nexports.slidesOnLeft = slidesOnLeft;\n\nvar canUseDOM = function canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n};\n\nexports.canUseDOM = canUseDOM;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3Qtc2xpY2svbGliL3V0aWxzL2lubmVyU2xpZGVyVXRpbHMuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsYUFBYTtBQUNiLGlCQUFpQixHQUFHLG9CQUFvQixHQUFHLHFCQUFxQixHQUFHLHdCQUF3QixHQUFHLHNCQUFzQixHQUFHLHFCQUFxQixHQUFHLG9CQUFvQixHQUFHLG9CQUFvQixHQUFHLDBCQUEwQixHQUFHLG1CQUFtQixHQUFHLHFCQUFxQixHQUFHLHFCQUFxQixHQUFHLHNCQUFzQixHQUFHLDJCQUEyQixHQUFHLGdCQUFnQixHQUFHLGlCQUFpQixHQUFHLGtCQUFrQixHQUFHLGtCQUFrQixHQUFHLG1CQUFtQixHQUFHLG9CQUFvQixHQUFHLHdCQUF3QixHQUFHLHFCQUFxQixHQUFHLGlCQUFpQixHQUFHLHlCQUF5QixHQUFHLGlCQUFpQixHQUFHLGdCQUFnQixHQUFHLHlCQUF5QixHQUFHLHdCQUF3QixHQUFHLG9CQUFvQixHQUFHLHNCQUFzQixHQUFHLDZCQUE2QixHQUFHLDZCQUE2QixHQUFHLDBCQUEwQjs7QUFFaHlCLG9DQUFvQyxtQkFBTyxDQUFDLDRDQUFPOztBQUVuRCx1Q0FBdUMsdUNBQXVDOztBQUU5RSwyQ0FBMkMsZ0NBQWdDLG9DQUFvQyxvREFBb0QsOERBQThELGlFQUFpRSxHQUFHLGtDQUFrQzs7QUFFdlUsaUNBQWlDLGdCQUFnQixzQkFBc0IsT0FBTyx1REFBdUQsYUFBYSx1REFBdUQsNENBQTRDLEtBQUssNkNBQTZDLDZFQUE2RSxPQUFPLGlEQUFpRCxtRkFBbUYsT0FBTzs7QUFFdGdCLDRDQUE0QyxrQkFBa0Isa0NBQWtDLG9FQUFvRSxLQUFLLE9BQU8sb0JBQW9COztBQUVwTTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwwQkFBMEI7O0FBRTFCO0FBQ0E7QUFDQTtBQUNBOztBQUVBLG9D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QUVBLHFCQUFxQjs7QUFFckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSxvQkFBb0I7O0FBRXBCO0FBQ0E7QUFDQTs7QUFFQSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXNsaWNrL2xpYi91dGlscy9pbm5lclNsaWRlclV0aWxzLmpzP2E5OWEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmNsYW1wID0gY2xhbXA7XG5leHBvcnRzLmNhblVzZURPTSA9IGV4cG9ydHMuc2xpZGVzT25MZWZ0ID0gZXhwb3J0cy5zbGlkZXNPblJpZ2h0ID0gZXhwb3J0cy5zaWJsaW5nRGlyZWN0aW9uID0gZXhwb3J0cy5nZXRUb3RhbFNsaWRlcyA9IGV4cG9ydHMuZ2V0UG9zdENsb25lcyA9IGV4cG9ydHMuZ2V0UHJlQ2xvbmVzID0gZXhwb3J0cy5nZXRUcmFja0xlZnQgPSBleHBvcnRzLmdldFRyYWNrQW5pbWF0ZUNTUyA9IGV4cG9ydHMuZ2V0VHJhY2tDU1MgPSBleHBvcnRzLmNoZWNrU3BlY0tleXMgPSBleHBvcnRzLmdldFNsaWRlQ291bnQgPSBleHBvcnRzLmNoZWNrTmF2aWdhYmxlID0gZXhwb3J0cy5nZXROYXZpZ2FibGVJbmRleGVzID0gZXhwb3J0cy5zd2lwZUVuZCA9IGV4cG9ydHMuc3dpcGVNb3ZlID0gZXhwb3J0cy5zd2lwZVN0YXJ0ID0gZXhwb3J0cy5rZXlIYW5kbGVyID0gZXhwb3J0cy5jaGFuZ2VTbGlkZSA9IGV4cG9ydHMuc2xpZGVIYW5kbGVyID0gZXhwb3J0cy5pbml0aWFsaXplZFN0YXRlID0gZXhwb3J0cy5leHRyYWN0T2JqZWN0ID0gZXhwb3J0cy5jYW5Hb05leHQgPSBleHBvcnRzLmdldFN3aXBlRGlyZWN0aW9uID0gZXhwb3J0cy5nZXRIZWlnaHQgPSBleHBvcnRzLmdldFdpZHRoID0gZXhwb3J0cy5sYXp5U2xpZGVzT25SaWdodCA9IGV4cG9ydHMubGF6eVNsaWRlc09uTGVmdCA9IGV4cG9ydHMubGF6eUVuZEluZGV4ID0gZXhwb3J0cy5sYXp5U3RhcnRJbmRleCA9IGV4cG9ydHMuZ2V0UmVxdWlyZWRMYXp5U2xpZGVzID0gZXhwb3J0cy5nZXRPbkRlbWFuZExhenlTbGlkZXMgPSBleHBvcnRzLnNhZmVQcmV2ZW50RGVmYXVsdCA9IHZvaWQgMDtcblxudmFyIF9yZWFjdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJlYWN0XCIpKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIG93bktleXMob2JqZWN0LCBlbnVtZXJhYmxlT25seSkgeyB2YXIga2V5cyA9IE9iamVjdC5rZXlzKG9iamVjdCk7IGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7IHZhciBzeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhvYmplY3QpOyBpZiAoZW51bWVyYWJsZU9ubHkpIHN5bWJvbHMgPSBzeW1ib2xzLmZpbHRlcihmdW5jdGlvbiAoc3ltKSB7IHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iamVjdCwgc3ltKS5lbnVtZXJhYmxlOyB9KTsga2V5cy5wdXNoLmFwcGx5KGtleXMsIHN5bWJvbHMpOyB9IHJldHVybiBrZXlzOyB9XG5cbmZ1bmN0aW9uIF9vYmplY3RTcHJlYWQodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV0gIT0gbnVsbCA/IGFyZ3VtZW50c1tpXSA6IHt9OyBpZiAoaSAlIDIpIHsgb3duS2V5cyhPYmplY3Qoc291cmNlKSwgdHJ1ZSkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7IF9kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgc291cmNlW2tleV0pOyB9KTsgfSBlbHNlIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycykgeyBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHNvdXJjZSkpOyB9IGVsc2UgeyBvd25LZXlzKE9iamVjdChzb3VyY2UpKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNvdXJjZSwga2V5KSk7IH0pOyB9IH0gcmV0dXJuIHRhcmdldDsgfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHZhbHVlKSB7IGlmIChrZXkgaW4gb2JqKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgeyB2YWx1ZTogdmFsdWUsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUgfSk7IH0gZWxzZSB7IG9ialtrZXldID0gdmFsdWU7IH0gcmV0dXJuIG9iajsgfVxuXG5mdW5jdGlvbiBjbGFtcChudW1iZXIsIGxvd2VyQm91bmQsIHVwcGVyQm91bmQpIHtcbiAgcmV0dXJuIE1hdGgubWF4KGxvd2VyQm91bmQsIE1hdGgubWluKG51bWJlciwgdXBwZXJCb3VuZCkpO1xufVxuXG52YXIgc2FmZVByZXZlbnREZWZhdWx0ID0gZnVuY3Rpb24gc2FmZVByZXZlbnREZWZhdWx0KGV2ZW50KSB7XG4gIHZhciBwYXNzaXZlRXZlbnRzID0gW1wib25Ub3VjaFN0YXJ0XCIsIFwib25Ub3VjaE1vdmVcIiwgXCJvbldoZWVsXCJdO1xuXG4gIGlmICghcGFzc2l2ZUV2ZW50cy5pbmNsdWRlcyhldmVudC5fcmVhY3ROYW1lKSkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cbn07XG5cbmV4cG9ydHMuc2FmZVByZXZlbnREZWZhdWx0ID0gc2FmZVByZXZlbnREZWZhdWx0O1xuXG52YXIgZ2V0T25EZW1hbmRMYXp5U2xpZGVzID0gZnVuY3Rpb24gZ2V0T25EZW1hbmRMYXp5U2xpZGVzKHNwZWMpIHtcbiAgdmFyIG9uRGVtYW5kU2xpZGVzID0gW107XG4gIHZhciBzdGFydEluZGV4ID0gbGF6eVN0YXJ0SW5kZXgoc3BlYyk7XG4gIHZhciBlbmRJbmRleCA9IGxhenlFbmRJbmRleChzcGVjKTtcblxuICBmb3IgKHZhciBzbGlkZUluZGV4ID0gc3RhcnRJbmRleDsgc2xpZGVJbmRleCA8IGVuZEluZGV4OyBzbGlkZUluZGV4KyspIHtcbiAgICBpZiAoc3BlYy5sYXp5TG9hZGVkTGlzdC5pbmRleE9mKHNsaWRlSW5kZXgpIDwgMCkge1xuICAgICAgb25EZW1hbmRTbGlkZXMucHVzaChzbGlkZUluZGV4KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gb25EZW1hbmRTbGlkZXM7XG59OyAvLyByZXR1cm4gbGlzdCBvZiBzbGlkZXMgdGhhdCBuZWVkIHRvIGJlIHByZXNlbnRcblxuXG5leHBvcnRzLmdldE9uRGVtYW5kTGF6eVNsaWRlcyA9IGdldE9uRGVtYW5kTGF6eVNsaWRlcztcblxudmFyIGdldFJlcXVpcmVkTGF6eVNsaWRlcyA9IGZ1bmN0aW9uIGdldFJlcXVpcmVkTGF6eVNsaWRlcyhzcGVjKSB7XG4gIHZhciByZXF1aXJlZFNsaWRlcyA9IFtdO1xuICB2YXIgc3RhcnRJbmRleCA9IGxhenlTdGFydEluZGV4KHNwZWMpO1xuICB2YXIgZW5kSW5kZXggPSBsYXp5RW5kSW5kZXgoc3BlYyk7XG5cbiAgZm9yICh2YXIgc2xpZGVJbmRleCA9IHN0YXJ0SW5kZXg7IHNsaWRlSW5kZXggPCBlbmRJbmRleDsgc2xpZGVJbmRleCsrKSB7XG4gICAgcmVxdWlyZWRTbGlkZXMucHVzaChzbGlkZUluZGV4KTtcbiAgfVxuXG4gIHJldHVybiByZXF1aXJlZFNsaWRlcztcbn07IC8vIHN0YXJ0SW5kZXggdGhhdCBuZWVkcyB0byBiZSBwcmVzZW50XG5cblxuZXhwb3J0cy5nZXRSZXF1aXJlZExhenlTbGlkZXMgPSBnZXRSZXF1aXJlZExhenlTbGlkZXM7XG5cbnZhciBsYXp5U3RhcnRJbmRleCA9IGZ1bmN0aW9uIGxhenlTdGFydEluZGV4KHNwZWMpIHtcbiAgcmV0dXJuIHNwZWMuY3VycmVudFNsaWRlIC0gbGF6eVNsaWRlc09uTGVmdChzcGVjKTtcbn07XG5cbmV4cG9ydHMubGF6eVN0YXJ0SW5kZXggPSBsYXp5U3RhcnRJbmRleDtcblxudmFyIGxhenlFbmRJbmRleCA9IGZ1bmN0aW9uIGxhenlFbmRJbmRleChzcGVjKSB7XG4gIHJldHVybiBzcGVjLmN1cnJlbnRTbGlkZSArIGxhenlTbGlkZXNPblJpZ2h0KHNwZWMpO1xufTtcblxuZXhwb3J0cy5sYXp5RW5kSW5kZXggPSBsYXp5RW5kSW5kZXg7XG5cbnZhciBsYXp5U2xpZGVzT25MZWZ0ID0gZnVuY3Rpb24gbGF6eVNsaWRlc09uTGVmdChzcGVjKSB7XG4gIHJldHVybiBzcGVjLmNlbnRlck1vZGUgPyBNYXRoLmZsb29yKHNwZWMuc2xpZGVzVG9TaG93IC8gMikgKyAocGFyc2VJbnQoc3BlYy5jZW50ZXJQYWRkaW5nKSA+IDAgPyAxIDogMCkgOiAwO1xufTtcblxuZXhwb3J0cy5sYXp5U2xpZGVzT25MZWZ0ID0gbGF6eVNsaWRlc09uTGVmdDtcblxudmFyIGxhenlTbGlkZXNPblJpZ2h0ID0gZnVuY3Rpb24gbGF6eVNsaWRlc09uUmlnaHQoc3BlYykge1xuICByZXR1cm4gc3BlYy5jZW50ZXJNb2RlID8gTWF0aC5mbG9vcigoc3BlYy5zbGlkZXNUb1Nob3cgLSAxKSAvIDIpICsgMSArIChwYXJzZUludChzcGVjLmNlbnRlclBhZGRpbmcpID4gMCA/IDEgOiAwKSA6IHNwZWMuc2xpZGVzVG9TaG93O1xufTsgLy8gZ2V0IHdpZHRoIG9mIGFuIGVsZW1lbnRcblxuXG5leHBvcnRzLmxhenlTbGlkZXNPblJpZ2h0ID0gbGF6eVNsaWRlc09uUmlnaHQ7XG5cbnZhciBnZXRXaWR0aCA9IGZ1bmN0aW9uIGdldFdpZHRoKGVsZW0pIHtcbiAgcmV0dXJuIGVsZW0gJiYgZWxlbS5vZmZzZXRXaWR0aCB8fCAwO1xufTtcblxuZXhwb3J0cy5nZXRXaWR0aCA9IGdldFdpZHRoO1xuXG52YXIgZ2V0SGVpZ2h0ID0gZnVuY3Rpb24gZ2V0SGVpZ2h0KGVsZW0pIHtcbiAgcmV0dXJuIGVsZW0gJiYgZWxlbS5vZmZzZXRIZWlnaHQgfHwgMDtcbn07XG5cbmV4cG9ydHMuZ2V0SGVpZ2h0ID0gZ2V0SGVpZ2h0O1xuXG52YXIgZ2V0U3dpcGVEaXJlY3Rpb24gPSBmdW5jdGlvbiBnZXRTd2lwZURpcmVjdGlvbih0b3VjaE9iamVjdCkge1xuICB2YXIgdmVydGljYWxTd2lwaW5nID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiBmYWxzZTtcbiAgdmFyIHhEaXN0LCB5RGlzdCwgciwgc3dpcGVBbmdsZTtcbiAgeERpc3QgPSB0b3VjaE9iamVjdC5zdGFydFggLSB0b3VjaE9iamVjdC5jdXJYO1xuICB5RGlzdCA9IHRvdWNoT2JqZWN0LnN0YXJ0WSAtIHRvdWNoT2JqZWN0LmN1clk7XG4gIHIgPSBNYXRoLmF0YW4yKHlEaXN0LCB4RGlzdCk7XG4gIHN3aXBlQW5nbGUgPSBNYXRoLnJvdW5kKHIgKiAxODAgLyBNYXRoLlBJKTtcblxuICBpZiAoc3dpcGVBbmdsZSA8IDApIHtcbiAgICBzd2lwZUFuZ2xlID0gMzYwIC0gTWF0aC5hYnMoc3dpcGVBbmdsZSk7XG4gIH1cblxuICBpZiAoc3dpcGVBbmdsZSA8PSA0NSAmJiBzd2lwZUFuZ2xlID49IDAgfHwgc3dpcGVBbmdsZSA8PSAzNjAgJiYgc3dpcGVBbmdsZSA+PSAzMTUpIHtcbiAgICByZXR1cm4gXCJsZWZ0XCI7XG4gIH1cblxuICBpZiAoc3dpcGVBbmdsZSA+PSAxMzUgJiYgc3dpcGVBbmdsZSA8PSAyMjUpIHtcbiAgICByZXR1cm4gXCJyaWdodFwiO1xuICB9XG5cbiAgaWYgKHZlcnRpY2FsU3dpcGluZyA9PT0gdHJ1ZSkge1xuICAgIGlmIChzd2lwZUFuZ2xlID49IDM1ICYmIHN3aXBlQW5nbGUgPD0gMTM1KSB7XG4gICAgICByZXR1cm4gXCJ1cFwiO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gXCJkb3duXCI7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFwidmVydGljYWxcIjtcbn07IC8vIHdoZXRoZXIgb3Igbm90IHdlIGNhbiBnbyBuZXh0XG5cblxuZXhwb3J0cy5nZXRTd2lwZURpcmVjdGlvbiA9IGdldFN3aXBlRGlyZWN0aW9uO1xuXG52YXIgY2FuR29OZXh0ID0gZnVuY3Rpb24gY2FuR29OZXh0KHNwZWMpIHtcbiAgdmFyIGNhbkdvID0gdHJ1ZTtcblxuICBpZiAoIXNwZWMuaW5maW5pdGUpIHtcbiAgICBpZiAoc3BlYy5jZW50ZXJNb2RlICYmIHNwZWMuY3VycmVudFNsaWRlID49IHNwZWMuc2xpZGVDb3VudCAtIDEpIHtcbiAgICAgIGNhbkdvID0gZmFsc2U7XG4gICAgfSBlbHNlIGlmIChzcGVjLnNsaWRlQ291bnQgPD0gc3BlYy5zbGlkZXNUb1Nob3cgfHwgc3BlYy5jdXJyZW50U2xpZGUgPj0gc3BlYy5zbGlkZUNvdW50IC0gc3BlYy5zbGlkZXNUb1Nob3cpIHtcbiAgICAgIGNhbkdvID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNhbkdvO1xufTsgLy8gZ2l2ZW4gYW4gb2JqZWN0IGFuZCBhIGxpc3Qgb2Yga2V5cywgcmV0dXJuIG5ldyBvYmplY3Qgd2l0aCBnaXZlbiBrZXlzXG5cblxuZXhwb3J0cy5jYW5Hb05leHQgPSBjYW5Hb05leHQ7XG5cbnZhciBleHRyYWN0T2JqZWN0ID0gZnVuY3Rpb24gZXh0cmFjdE9iamVjdChzcGVjLCBrZXlzKSB7XG4gIHZhciBuZXdPYmplY3QgPSB7fTtcbiAga2V5cy5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICByZXR1cm4gbmV3T2JqZWN0W2tleV0gPSBzcGVjW2tleV07XG4gIH0pO1xuICByZXR1cm4gbmV3T2JqZWN0O1xufTsgLy8gZ2V0IGluaXRpYWxpemVkIHN0YXRlXG5cblxuZXhwb3J0cy5leHRyYWN0T2JqZWN0ID0gZXh0cmFjdE9iamVjdDtcblxudmFyIGluaXRpYWxpemVkU3RhdGUgPSBmdW5jdGlvbiBpbml0aWFsaXplZFN0YXRlKHNwZWMpIHtcbiAgLy8gc3BlYyBhbHNvIGNvbnRhaW5zIGxpc3RSZWYsIHRyYWNrUmVmXG4gIHZhciBzbGlkZUNvdW50ID0gX3JlYWN0W1wiZGVmYXVsdFwiXS5DaGlsZHJlbi5jb3VudChzcGVjLmNoaWxkcmVuKTtcblxuICB2YXIgbGlzdE5vZGUgPSBzcGVjLmxpc3RSZWY7XG4gIHZhciBsaXN0V2lkdGggPSBNYXRoLmNlaWwoZ2V0V2lkdGgobGlzdE5vZGUpKTtcbiAgdmFyIHRyYWNrTm9kZSA9IHNwZWMudHJhY2tSZWYgJiYgc3BlYy50cmFja1JlZi5ub2RlO1xuICB2YXIgdHJhY2tXaWR0aCA9IE1hdGguY2VpbChnZXRXaWR0aCh0cmFja05vZGUpKTtcbiAgdmFyIHNsaWRlV2lkdGg7XG5cbiAgaWYgKCFzcGVjLnZlcnRpY2FsKSB7XG4gICAgdmFyIGNlbnRlclBhZGRpbmdBZGogPSBzcGVjLmNlbnRlck1vZGUgJiYgcGFyc2VJbnQoc3BlYy5jZW50ZXJQYWRkaW5nKSAqIDI7XG5cbiAgICBpZiAodHlwZW9mIHNwZWMuY2VudGVyUGFkZGluZyA9PT0gXCJzdHJpbmdcIiAmJiBzcGVjLmNlbnRlclBhZGRpbmcuc2xpY2UoLTEpID09PSBcIiVcIikge1xuICAgICAgY2VudGVyUGFkZGluZ0FkaiAqPSBsaXN0V2lkdGggLyAxMDA7XG4gICAgfVxuXG4gICAgc2xpZGVXaWR0aCA9IE1hdGguY2VpbCgobGlzdFdpZHRoIC0gY2VudGVyUGFkZGluZ0FkaikgLyBzcGVjLnNsaWRlc1RvU2hvdyk7XG4gIH0gZWxzZSB7XG4gICAgc2xpZGVXaWR0aCA9IGxpc3RXaWR0aDtcbiAgfVxuXG4gIHZhciBzbGlkZUhlaWdodCA9IGxpc3ROb2RlICYmIGdldEhlaWdodChsaXN0Tm9kZS5xdWVyeVNlbGVjdG9yKCdbZGF0YS1pbmRleD1cIjBcIl0nKSk7XG4gIHZhciBsaXN0SGVpZ2h0ID0gc2xpZGVIZWlnaHQgKiBzcGVjLnNsaWRlc1RvU2hvdztcbiAgdmFyIGN1cnJlbnRTbGlkZSA9IHNwZWMuY3VycmVudFNsaWRlID09PSB1bmRlZmluZWQgPyBzcGVjLmluaXRpYWxTbGlkZSA6IHNwZWMuY3VycmVudFNsaWRlO1xuXG4gIGlmIChzcGVjLnJ0bCAmJiBzcGVjLmN1cnJlbnRTbGlkZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgY3VycmVudFNsaWRlID0gc2xpZGVDb3VudCAtIDEgLSBzcGVjLmluaXRpYWxTbGlkZTtcbiAgfVxuXG4gIHZhciBsYXp5TG9hZGVkTGlzdCA9IHNwZWMubGF6eUxvYWRlZExpc3QgfHwgW107XG4gIHZhciBzbGlkZXNUb0xvYWQgPSBnZXRPbkRlbWFuZExhenlTbGlkZXMoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzcGVjKSwge30sIHtcbiAgICBjdXJyZW50U2xpZGU6IGN1cnJlbnRTbGlkZSxcbiAgICBsYXp5TG9hZGVkTGlzdDogbGF6eUxvYWRlZExpc3RcbiAgfSkpO1xuICBsYXp5TG9hZGVkTGlzdCA9IGxhenlMb2FkZWRMaXN0LmNvbmNhdChzbGlkZXNUb0xvYWQpO1xuICB2YXIgc3RhdGUgPSB7XG4gICAgc2xpZGVDb3VudDogc2xpZGVDb3VudCxcbiAgICBzbGlkZVdpZHRoOiBzbGlkZVdpZHRoLFxuICAgIGxpc3RXaWR0aDogbGlzdFdpZHRoLFxuICAgIHRyYWNrV2lkdGg6IHRyYWNrV2lkdGgsXG4gICAgY3VycmVudFNsaWRlOiBjdXJyZW50U2xpZGUsXG4gICAgc2xpZGVIZWlnaHQ6IHNsaWRlSGVpZ2h0LFxuICAgIGxpc3RIZWlnaHQ6IGxpc3RIZWlnaHQsXG4gICAgbGF6eUxvYWRlZExpc3Q6IGxhenlMb2FkZWRMaXN0XG4gIH07XG5cbiAgaWYgKHNwZWMuYXV0b3BsYXlpbmcgPT09IG51bGwgJiYgc3BlYy5hdXRvcGxheSkge1xuICAgIHN0YXRlW1wiYXV0b3BsYXlpbmdcIl0gPSBcInBsYXlpbmdcIjtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZTtcbn07XG5cbmV4cG9ydHMuaW5pdGlhbGl6ZWRTdGF0ZSA9IGluaXRpYWxpemVkU3RhdGU7XG5cbnZhciBzbGlkZUhhbmRsZXIgPSBmdW5jdGlvbiBzbGlkZUhhbmRsZXIoc3BlYykge1xuICB2YXIgd2FpdEZvckFuaW1hdGUgPSBzcGVjLndhaXRGb3JBbmltYXRlLFxuICAgICAgYW5pbWF0aW5nID0gc3BlYy5hbmltYXRpbmcsXG4gICAgICBmYWRlID0gc3BlYy5mYWRlLFxuICAgICAgaW5maW5pdGUgPSBzcGVjLmluZmluaXRlLFxuICAgICAgaW5kZXggPSBzcGVjLmluZGV4LFxuICAgICAgc2xpZGVDb3VudCA9IHNwZWMuc2xpZGVDb3VudCxcbiAgICAgIGxhenlMb2FkID0gc3BlYy5sYXp5TG9hZCxcbiAgICAgIGN1cnJlbnRTbGlkZSA9IHNwZWMuY3VycmVudFNsaWRlLFxuICAgICAgY2VudGVyTW9kZSA9IHNwZWMuY2VudGVyTW9kZSxcbiAgICAgIHNsaWRlc1RvU2Nyb2xsID0gc3BlYy5zbGlkZXNUb1Njcm9sbCxcbiAgICAgIHNsaWRlc1RvU2hvdyA9IHNwZWMuc2xpZGVzVG9TaG93LFxuICAgICAgdXNlQ1NTID0gc3BlYy51c2VDU1M7XG4gIHZhciBsYXp5TG9hZGVkTGlzdCA9IHNwZWMubGF6eUxvYWRlZExpc3Q7XG4gIGlmICh3YWl0Rm9yQW5pbWF0ZSAmJiBhbmltYXRpbmcpIHJldHVybiB7fTtcbiAgdmFyIGFuaW1hdGlvblNsaWRlID0gaW5kZXgsXG4gICAgICBmaW5hbFNsaWRlLFxuICAgICAgYW5pbWF0aW9uTGVmdCxcbiAgICAgIGZpbmFsTGVmdDtcbiAgdmFyIHN0YXRlID0ge30sXG4gICAgICBuZXh0U3RhdGUgPSB7fTtcbiAgdmFyIHRhcmdldFNsaWRlID0gaW5maW5pdGUgPyBpbmRleCA6IGNsYW1wKGluZGV4LCAwLCBzbGlkZUNvdW50IC0gMSk7XG5cbiAgaWYgKGZhZGUpIHtcbiAgICBpZiAoIWluZmluaXRlICYmIChpbmRleCA8IDAgfHwgaW5kZXggPj0gc2xpZGVDb3VudCkpIHJldHVybiB7fTtcblxuICAgIGlmIChpbmRleCA8IDApIHtcbiAgICAgIGFuaW1hdGlvblNsaWRlID0gaW5kZXggKyBzbGlkZUNvdW50O1xuICAgIH0gZWxzZSBpZiAoaW5kZXggPj0gc2xpZGVDb3VudCkge1xuICAgICAgYW5pbWF0aW9uU2xpZGUgPSBpbmRleCAtIHNsaWRlQ291bnQ7XG4gICAgfVxuXG4gICAgaWYgKGxhenlMb2FkICYmIGxhenlMb2FkZWRMaXN0LmluZGV4T2YoYW5pbWF0aW9uU2xpZGUpIDwgMCkge1xuICAgICAgbGF6eUxvYWRlZExpc3QgPSBsYXp5TG9hZGVkTGlzdC5jb25jYXQoYW5pbWF0aW9uU2xpZGUpO1xuICAgIH1cblxuICAgIHN0YXRlID0ge1xuICAgICAgYW5pbWF0aW5nOiB0cnVlLFxuICAgICAgY3VycmVudFNsaWRlOiBhbmltYXRpb25TbGlkZSxcbiAgICAgIGxhenlMb2FkZWRMaXN0OiBsYXp5TG9hZGVkTGlzdCxcbiAgICAgIHRhcmdldFNsaWRlOiBhbmltYXRpb25TbGlkZVxuICAgIH07XG4gICAgbmV4dFN0YXRlID0ge1xuICAgICAgYW5pbWF0aW5nOiBmYWxzZSxcbiAgICAgIHRhcmdldFNsaWRlOiBhbmltYXRpb25TbGlkZVxuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgZmluYWxTbGlkZSA9IGFuaW1hdGlvblNsaWRlO1xuXG4gICAgaWYgKGFuaW1hdGlvblNsaWRlIDwgMCkge1xuICAgICAgZmluYWxTbGlkZSA9IGFuaW1hdGlvblNsaWRlICsgc2xpZGVDb3VudDtcbiAgICAgIGlmICghaW5maW5pdGUpIGZpbmFsU2xpZGUgPSAwO2Vsc2UgaWYgKHNsaWRlQ291bnQgJSBzbGlkZXNUb1Njcm9sbCAhPT0gMCkgZmluYWxTbGlkZSA9IHNsaWRlQ291bnQgLSBzbGlkZUNvdW50ICUgc2xpZGVzVG9TY3JvbGw7XG4gICAgfSBlbHNlIGlmICghY2FuR29OZXh0KHNwZWMpICYmIGFuaW1hdGlvblNsaWRlID4gY3VycmVudFNsaWRlKSB7XG4gICAgICBhbmltYXRpb25TbGlkZSA9IGZpbmFsU2xpZGUgPSBjdXJyZW50U2xpZGU7XG4gICAgfSBlbHNlIGlmIChjZW50ZXJNb2RlICYmIGFuaW1hdGlvblNsaWRlID49IHNsaWRlQ291bnQpIHtcbiAgICAgIGFuaW1hdGlvblNsaWRlID0gaW5maW5pdGUgPyBzbGlkZUNvdW50IDogc2xpZGVDb3VudCAtIDE7XG4gICAgICBmaW5hbFNsaWRlID0gaW5maW5pdGUgPyAwIDogc2xpZGVDb3VudCAtIDE7XG4gICAgfSBlbHNlIGlmIChhbmltYXRpb25TbGlkZSA+PSBzbGlkZUNvdW50KSB7XG4gICAgICBmaW5hbFNsaWRlID0gYW5pbWF0aW9uU2xpZGUgLSBzbGlkZUNvdW50O1xuICAgICAgaWYgKCFpbmZpbml0ZSkgZmluYWxTbGlkZSA9IHNsaWRlQ291bnQgLSBzbGlkZXNUb1Nob3c7ZWxzZSBpZiAoc2xpZGVDb3VudCAlIHNsaWRlc1RvU2Nyb2xsICE9PSAwKSBmaW5hbFNsaWRlID0gMDtcbiAgICB9XG5cbiAgICBpZiAoIWluZmluaXRlICYmIGFuaW1hdGlvblNsaWRlICsgc2xpZGVzVG9TaG93ID49IHNsaWRlQ291bnQpIHtcbiAgICAgIGZpbmFsU2xpZGUgPSBzbGlkZUNvdW50IC0gc2xpZGVzVG9TaG93O1xuICAgIH1cblxuICAgIGFuaW1hdGlvbkxlZnQgPSBnZXRUcmFja0xlZnQoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzcGVjKSwge30sIHtcbiAgICAgIHNsaWRlSW5kZXg6IGFuaW1hdGlvblNsaWRlXG4gICAgfSkpO1xuICAgIGZpbmFsTGVmdCA9IGdldFRyYWNrTGVmdChfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHNwZWMpLCB7fSwge1xuICAgICAgc2xpZGVJbmRleDogZmluYWxTbGlkZVxuICAgIH0pKTtcblxuICAgIGlmICghaW5maW5pdGUpIHtcbiAgICAgIGlmIChhbmltYXRpb25MZWZ0ID09PSBmaW5hbExlZnQpIGFuaW1hdGlvblNsaWRlID0gZmluYWxTbGlkZTtcbiAgICAgIGFuaW1hdGlvbkxlZnQgPSBmaW5hbExlZnQ7XG4gICAgfVxuXG4gICAgaWYgKGxhenlMb2FkKSB7XG4gICAgICBsYXp5TG9hZGVkTGlzdCA9IGxhenlMb2FkZWRMaXN0LmNvbmNhdChnZXRPbkRlbWFuZExhenlTbGlkZXMoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzcGVjKSwge30sIHtcbiAgICAgICAgY3VycmVudFNsaWRlOiBhbmltYXRpb25TbGlkZVxuICAgICAgfSkpKTtcbiAgICB9XG5cbiAgICBpZiAoIXVzZUNTUykge1xuICAgICAgc3RhdGUgPSB7XG4gICAgICAgIGN1cnJlbnRTbGlkZTogZmluYWxTbGlkZSxcbiAgICAgICAgdHJhY2tTdHlsZTogZ2V0VHJhY2tDU1MoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzcGVjKSwge30sIHtcbiAgICAgICAgICBsZWZ0OiBmaW5hbExlZnRcbiAgICAgICAgfSkpLFxuICAgICAgICBsYXp5TG9hZGVkTGlzdDogbGF6eUxvYWRlZExpc3QsXG4gICAgICAgIHRhcmdldFNsaWRlOiB0YXJnZXRTbGlkZVxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RhdGUgPSB7XG4gICAgICAgIGFuaW1hdGluZzogdHJ1ZSxcbiAgICAgICAgY3VycmVudFNsaWRlOiBmaW5hbFNsaWRlLFxuICAgICAgICB0cmFja1N0eWxlOiBnZXRUcmFja0FuaW1hdGVDU1MoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzcGVjKSwge30sIHtcbiAgICAgICAgICBsZWZ0OiBhbmltYXRpb25MZWZ0XG4gICAgICAgIH0pKSxcbiAgICAgICAgbGF6eUxvYWRlZExpc3Q6IGxhenlMb2FkZWRMaXN0LFxuICAgICAgICB0YXJnZXRTbGlkZTogdGFyZ2V0U2xpZGVcbiAgICAgIH07XG4gICAgICBuZXh0U3RhdGUgPSB7XG4gICAgICAgIGFuaW1hdGluZzogZmFsc2UsXG4gICAgICAgIGN1cnJlbnRTbGlkZTogZmluYWxTbGlkZSxcbiAgICAgICAgdHJhY2tTdHlsZTogZ2V0VHJhY2tDU1MoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzcGVjKSwge30sIHtcbiAgICAgICAgICBsZWZ0OiBmaW5hbExlZnRcbiAgICAgICAgfSkpLFxuICAgICAgICBzd2lwZUxlZnQ6IG51bGwsXG4gICAgICAgIHRhcmdldFNsaWRlOiB0YXJnZXRTbGlkZVxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHN0YXRlOiBzdGF0ZSxcbiAgICBuZXh0U3RhdGU6IG5leHRTdGF0ZVxuICB9O1xufTtcblxuZXhwb3J0cy5zbGlkZUhhbmRsZXIgPSBzbGlkZUhhbmRsZXI7XG5cbnZhciBjaGFuZ2VTbGlkZSA9IGZ1bmN0aW9uIGNoYW5nZVNsaWRlKHNwZWMsIG9wdGlvbnMpIHtcbiAgdmFyIGluZGV4T2Zmc2V0LCBwcmV2aW91c0ludCwgc2xpZGVPZmZzZXQsIHVuZXZlbk9mZnNldCwgdGFyZ2V0U2xpZGU7XG4gIHZhciBzbGlkZXNUb1Njcm9sbCA9IHNwZWMuc2xpZGVzVG9TY3JvbGwsXG4gICAgICBzbGlkZXNUb1Nob3cgPSBzcGVjLnNsaWRlc1RvU2hvdyxcbiAgICAgIHNsaWRlQ291bnQgPSBzcGVjLnNsaWRlQ291bnQsXG4gICAgICBjdXJyZW50U2xpZGUgPSBzcGVjLmN1cnJlbnRTbGlkZSxcbiAgICAgIHByZXZpb3VzVGFyZ2V0U2xpZGUgPSBzcGVjLnRhcmdldFNsaWRlLFxuICAgICAgbGF6eUxvYWQgPSBzcGVjLmxhenlMb2FkLFxuICAgICAgaW5maW5pdGUgPSBzcGVjLmluZmluaXRlO1xuICB1bmV2ZW5PZmZzZXQgPSBzbGlkZUNvdW50ICUgc2xpZGVzVG9TY3JvbGwgIT09IDA7XG4gIGluZGV4T2Zmc2V0ID0gdW5ldmVuT2Zmc2V0ID8gMCA6IChzbGlkZUNvdW50IC0gY3VycmVudFNsaWRlKSAlIHNsaWRlc1RvU2Nyb2xsO1xuXG4gIGlmIChvcHRpb25zLm1lc3NhZ2UgPT09IFwicHJldmlvdXNcIikge1xuICAgIHNsaWRlT2Zmc2V0ID0gaW5kZXhPZmZzZXQgPT09IDAgPyBzbGlkZXNUb1Njcm9sbCA6IHNsaWRlc1RvU2hvdyAtIGluZGV4T2Zmc2V0O1xuICAgIHRhcmdldFNsaWRlID0gY3VycmVudFNsaWRlIC0gc2xpZGVPZmZzZXQ7XG5cbiAgICBpZiAobGF6eUxvYWQgJiYgIWluZmluaXRlKSB7XG4gICAgICBwcmV2aW91c0ludCA9IGN1cnJlbnRTbGlkZSAtIHNsaWRlT2Zmc2V0O1xuICAgICAgdGFyZ2V0U2xpZGUgPSBwcmV2aW91c0ludCA9PT0gLTEgPyBzbGlkZUNvdW50IC0gMSA6IHByZXZpb3VzSW50O1xuICAgIH1cblxuICAgIGlmICghaW5maW5pdGUpIHtcbiAgICAgIHRhcmdldFNsaWRlID0gcHJldmlvdXNUYXJnZXRTbGlkZSAtIHNsaWRlc1RvU2Nyb2xsO1xuICAgIH1cbiAgfSBlbHNlIGlmIChvcHRpb25zLm1lc3NhZ2UgPT09IFwibmV4dFwiKSB7XG4gICAgc2xpZGVPZmZzZXQgPSBpbmRleE9mZnNldCA9PT0gMCA/IHNsaWRlc1RvU2Nyb2xsIDogaW5kZXhPZmZzZXQ7XG4gICAgdGFyZ2V0U2xpZGUgPSBjdXJyZW50U2xpZGUgKyBzbGlkZU9mZnNldDtcblxuICAgIGlmIChsYXp5TG9hZCAmJiAhaW5maW5pdGUpIHtcbiAgICAgIHRhcmdldFNsaWRlID0gKGN1cnJlbnRTbGlkZSArIHNsaWRlc1RvU2Nyb2xsKSAlIHNsaWRlQ291bnQgKyBpbmRleE9mZnNldDtcbiAgICB9XG5cbiAgICBpZiAoIWluZmluaXRlKSB7XG4gICAgICB0YXJnZXRTbGlkZSA9IHByZXZpb3VzVGFyZ2V0U2xpZGUgKyBzbGlkZXNUb1Njcm9sbDtcbiAgICB9XG4gIH0gZWxzZSBpZiAob3B0aW9ucy5tZXNzYWdlID09PSBcImRvdHNcIikge1xuICAgIC8vIENsaWNrIG9uIGRvdHNcbiAgICB0YXJnZXRTbGlkZSA9IG9wdGlvbnMuaW5kZXggKiBvcHRpb25zLnNsaWRlc1RvU2Nyb2xsO1xuICB9IGVsc2UgaWYgKG9wdGlvbnMubWVzc2FnZSA9PT0gXCJjaGlsZHJlblwiKSB7XG4gICAgLy8gQ2xpY2sgb24gdGhlIHNsaWRlc1xuICAgIHRhcmdldFNsaWRlID0gb3B0aW9ucy5pbmRleDtcblxuICAgIGlmIChpbmZpbml0ZSkge1xuICAgICAgdmFyIGRpcmVjdGlvbiA9IHNpYmxpbmdEaXJlY3Rpb24oX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzcGVjKSwge30sIHtcbiAgICAgICAgdGFyZ2V0U2xpZGU6IHRhcmdldFNsaWRlXG4gICAgICB9KSk7XG5cbiAgICAgIGlmICh0YXJnZXRTbGlkZSA+IG9wdGlvbnMuY3VycmVudFNsaWRlICYmIGRpcmVjdGlvbiA9PT0gXCJsZWZ0XCIpIHtcbiAgICAgICAgdGFyZ2V0U2xpZGUgPSB0YXJnZXRTbGlkZSAtIHNsaWRlQ291bnQ7XG4gICAgICB9IGVsc2UgaWYgKHRhcmdldFNsaWRlIDwgb3B0aW9ucy5jdXJyZW50U2xpZGUgJiYgZGlyZWN0aW9uID09PSBcInJpZ2h0XCIpIHtcbiAgICAgICAgdGFyZ2V0U2xpZGUgPSB0YXJnZXRTbGlkZSArIHNsaWRlQ291bnQ7XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2UgaWYgKG9wdGlvbnMubWVzc2FnZSA9PT0gXCJpbmRleFwiKSB7XG4gICAgdGFyZ2V0U2xpZGUgPSBOdW1iZXIob3B0aW9ucy5pbmRleCk7XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0U2xpZGU7XG59O1xuXG5leHBvcnRzLmNoYW5nZVNsaWRlID0gY2hhbmdlU2xpZGU7XG5cbnZhciBrZXlIYW5kbGVyID0gZnVuY3Rpb24ga2V5SGFuZGxlcihlLCBhY2Nlc3NpYmlsaXR5LCBydGwpIHtcbiAgaWYgKGUudGFyZ2V0LnRhZ05hbWUubWF0Y2goXCJURVhUQVJFQXxJTlBVVHxTRUxFQ1RcIikgfHwgIWFjY2Vzc2liaWxpdHkpIHJldHVybiBcIlwiO1xuICBpZiAoZS5rZXlDb2RlID09PSAzNykgcmV0dXJuIHJ0bCA/IFwibmV4dFwiIDogXCJwcmV2aW91c1wiO1xuICBpZiAoZS5rZXlDb2RlID09PSAzOSkgcmV0dXJuIHJ0bCA/IFwicHJldmlvdXNcIiA6IFwibmV4dFwiO1xuICByZXR1cm4gXCJcIjtcbn07XG5cbmV4cG9ydHMua2V5SGFuZGxlciA9IGtleUhhbmRsZXI7XG5cbnZhciBzd2lwZVN0YXJ0ID0gZnVuY3Rpb24gc3dpcGVTdGFydChlLCBzd2lwZSwgZHJhZ2dhYmxlKSB7XG4gIGUudGFyZ2V0LnRhZ05hbWUgPT09IFwiSU1HXCIgJiYgc2FmZVByZXZlbnREZWZhdWx0KGUpO1xuICBpZiAoIXN3aXBlIHx8ICFkcmFnZ2FibGUgJiYgZS50eXBlLmluZGV4T2YoXCJtb3VzZVwiKSAhPT0gLTEpIHJldHVybiBcIlwiO1xuICByZXR1cm4ge1xuICAgIGRyYWdnaW5nOiB0cnVlLFxuICAgIHRvdWNoT2JqZWN0OiB7XG4gICAgICBzdGFydFg6IGUudG91Y2hlcyA/IGUudG91Y2hlc1swXS5wYWdlWCA6IGUuY2xpZW50WCxcbiAgICAgIHN0YXJ0WTogZS50b3VjaGVzID8gZS50b3VjaGVzWzBdLnBhZ2VZIDogZS5jbGllbnRZLFxuICAgICAgY3VyWDogZS50b3VjaGVzID8gZS50b3VjaGVzWzBdLnBhZ2VYIDogZS5jbGllbnRYLFxuICAgICAgY3VyWTogZS50b3VjaGVzID8gZS50b3VjaGVzWzBdLnBhZ2VZIDogZS5jbGllbnRZXG4gICAgfVxuICB9O1xufTtcblxuZXhwb3J0cy5zd2lwZVN0YXJ0ID0gc3dpcGVTdGFydDtcblxudmFyIHN3aXBlTW92ZSA9IGZ1bmN0aW9uIHN3aXBlTW92ZShlLCBzcGVjKSB7XG4gIC8vIHNwZWMgYWxzbyBjb250YWlucywgdHJhY2tSZWYgYW5kIHNsaWRlSW5kZXhcbiAgdmFyIHNjcm9sbGluZyA9IHNwZWMuc2Nyb2xsaW5nLFxuICAgICAgYW5pbWF0aW5nID0gc3BlYy5hbmltYXRpbmcsXG4gICAgICB2ZXJ0aWNhbCA9IHNwZWMudmVydGljYWwsXG4gICAgICBzd2lwZVRvU2xpZGUgPSBzcGVjLnN3aXBlVG9TbGlkZSxcbiAgICAgIHZlcnRpY2FsU3dpcGluZyA9IHNwZWMudmVydGljYWxTd2lwaW5nLFxuICAgICAgcnRsID0gc3BlYy5ydGwsXG4gICAgICBjdXJyZW50U2xpZGUgPSBzcGVjLmN1cnJlbnRTbGlkZSxcbiAgICAgIGVkZ2VGcmljdGlvbiA9IHNwZWMuZWRnZUZyaWN0aW9uLFxuICAgICAgZWRnZURyYWdnZWQgPSBzcGVjLmVkZ2VEcmFnZ2VkLFxuICAgICAgb25FZGdlID0gc3BlYy5vbkVkZ2UsXG4gICAgICBzd2lwZWQgPSBzcGVjLnN3aXBlZCxcbiAgICAgIHN3aXBpbmcgPSBzcGVjLnN3aXBpbmcsXG4gICAgICBzbGlkZUNvdW50ID0gc3BlYy5zbGlkZUNvdW50LFxuICAgICAgc2xpZGVzVG9TY3JvbGwgPSBzcGVjLnNsaWRlc1RvU2Nyb2xsLFxuICAgICAgaW5maW5pdGUgPSBzcGVjLmluZmluaXRlLFxuICAgICAgdG91Y2hPYmplY3QgPSBzcGVjLnRvdWNoT2JqZWN0LFxuICAgICAgc3dpcGVFdmVudCA9IHNwZWMuc3dpcGVFdmVudCxcbiAgICAgIGxpc3RIZWlnaHQgPSBzcGVjLmxpc3RIZWlnaHQsXG4gICAgICBsaXN0V2lkdGggPSBzcGVjLmxpc3RXaWR0aDtcbiAgaWYgKHNjcm9sbGluZykgcmV0dXJuO1xuICBpZiAoYW5pbWF0aW5nKSByZXR1cm4gc2FmZVByZXZlbnREZWZhdWx0KGUpO1xuICBpZiAodmVydGljYWwgJiYgc3dpcGVUb1NsaWRlICYmIHZlcnRpY2FsU3dpcGluZykgc2FmZVByZXZlbnREZWZhdWx0KGUpO1xuICB2YXIgc3dpcGVMZWZ0LFxuICAgICAgc3RhdGUgPSB7fTtcbiAgdmFyIGN1ckxlZnQgPSBnZXRUcmFja0xlZnQoc3BlYyk7XG4gIHRvdWNoT2JqZWN0LmN1clggPSBlLnRvdWNoZXMgPyBlLnRvdWNoZXNbMF0ucGFnZVggOiBlLmNsaWVudFg7XG4gIHRvdWNoT2JqZWN0LmN1clkgPSBlLnRvdWNoZXMgPyBlLnRvdWNoZXNbMF0ucGFnZVkgOiBlLmNsaWVudFk7XG4gIHRvdWNoT2JqZWN0LnN3aXBlTGVuZ3RoID0gTWF0aC5yb3VuZChNYXRoLnNxcnQoTWF0aC5wb3codG91Y2hPYmplY3QuY3VyWCAtIHRvdWNoT2JqZWN0LnN0YXJ0WCwgMikpKTtcbiAgdmFyIHZlcnRpY2FsU3dpcGVMZW5ndGggPSBNYXRoLnJvdW5kKE1hdGguc3FydChNYXRoLnBvdyh0b3VjaE9iamVjdC5jdXJZIC0gdG91Y2hPYmplY3Quc3RhcnRZLCAyKSkpO1xuXG4gIGlmICghdmVydGljYWxTd2lwaW5nICYmICFzd2lwaW5nICYmIHZlcnRpY2FsU3dpcGVMZW5ndGggPiAxMCkge1xuICAgIHJldHVybiB7XG4gICAgICBzY3JvbGxpbmc6IHRydWVcbiAgICB9O1xuICB9XG5cbiAgaWYgKHZlcnRpY2FsU3dpcGluZykgdG91Y2hPYmplY3Quc3dpcGVMZW5ndGggPSB2ZXJ0aWNhbFN3aXBlTGVuZ3RoO1xuICB2YXIgcG9zaXRpb25PZmZzZXQgPSAoIXJ0bCA/IDEgOiAtMSkgKiAodG91Y2hPYmplY3QuY3VyWCA+IHRvdWNoT2JqZWN0LnN0YXJ0WCA/IDEgOiAtMSk7XG4gIGlmICh2ZXJ0aWNhbFN3aXBpbmcpIHBvc2l0aW9uT2Zmc2V0ID0gdG91Y2hPYmplY3QuY3VyWSA+IHRvdWNoT2JqZWN0LnN0YXJ0WSA/IDEgOiAtMTtcbiAgdmFyIGRvdENvdW50ID0gTWF0aC5jZWlsKHNsaWRlQ291bnQgLyBzbGlkZXNUb1Njcm9sbCk7XG4gIHZhciBzd2lwZURpcmVjdGlvbiA9IGdldFN3aXBlRGlyZWN0aW9uKHNwZWMudG91Y2hPYmplY3QsIHZlcnRpY2FsU3dpcGluZyk7XG4gIHZhciB0b3VjaFN3aXBlTGVuZ3RoID0gdG91Y2hPYmplY3Quc3dpcGVMZW5ndGg7XG5cbiAgaWYgKCFpbmZpbml0ZSkge1xuICAgIGlmIChjdXJyZW50U2xpZGUgPT09IDAgJiYgKHN3aXBlRGlyZWN0aW9uID09PSBcInJpZ2h0XCIgfHwgc3dpcGVEaXJlY3Rpb24gPT09IFwiZG93blwiKSB8fCBjdXJyZW50U2xpZGUgKyAxID49IGRvdENvdW50ICYmIChzd2lwZURpcmVjdGlvbiA9PT0gXCJsZWZ0XCIgfHwgc3dpcGVEaXJlY3Rpb24gPT09IFwidXBcIikgfHwgIWNhbkdvTmV4dChzcGVjKSAmJiAoc3dpcGVEaXJlY3Rpb24gPT09IFwibGVmdFwiIHx8IHN3aXBlRGlyZWN0aW9uID09PSBcInVwXCIpKSB7XG4gICAgICB0b3VjaFN3aXBlTGVuZ3RoID0gdG91Y2hPYmplY3Quc3dpcGVMZW5ndGggKiBlZGdlRnJpY3Rpb247XG5cbiAgICAgIGlmIChlZGdlRHJhZ2dlZCA9PT0gZmFsc2UgJiYgb25FZGdlKSB7XG4gICAgICAgIG9uRWRnZShzd2lwZURpcmVjdGlvbik7XG4gICAgICAgIHN0YXRlW1wiZWRnZURyYWdnZWRcIl0gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmICghc3dpcGVkICYmIHN3aXBlRXZlbnQpIHtcbiAgICBzd2lwZUV2ZW50KHN3aXBlRGlyZWN0aW9uKTtcbiAgICBzdGF0ZVtcInN3aXBlZFwiXSA9IHRydWU7XG4gIH1cblxuICBpZiAoIXZlcnRpY2FsKSB7XG4gICAgaWYgKCFydGwpIHtcbiAgICAgIHN3aXBlTGVmdCA9IGN1ckxlZnQgKyB0b3VjaFN3aXBlTGVuZ3RoICogcG9zaXRpb25PZmZzZXQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN3aXBlTGVmdCA9IGN1ckxlZnQgLSB0b3VjaFN3aXBlTGVuZ3RoICogcG9zaXRpb25PZmZzZXQ7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHN3aXBlTGVmdCA9IGN1ckxlZnQgKyB0b3VjaFN3aXBlTGVuZ3RoICogKGxpc3RIZWlnaHQgLyBsaXN0V2lkdGgpICogcG9zaXRpb25PZmZzZXQ7XG4gIH1cblxuICBpZiAodmVydGljYWxTd2lwaW5nKSB7XG4gICAgc3dpcGVMZWZ0ID0gY3VyTGVmdCArIHRvdWNoU3dpcGVMZW5ndGggKiBwb3NpdGlvbk9mZnNldDtcbiAgfVxuXG4gIHN0YXRlID0gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzdGF0ZSksIHt9LCB7XG4gICAgdG91Y2hPYmplY3Q6IHRvdWNoT2JqZWN0LFxuICAgIHN3aXBlTGVmdDogc3dpcGVMZWZ0LFxuICAgIHRyYWNrU3R5bGU6IGdldFRyYWNrQ1NTKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgc3BlYyksIHt9LCB7XG4gICAgICBsZWZ0OiBzd2lwZUxlZnRcbiAgICB9KSlcbiAgfSk7XG5cbiAgaWYgKE1hdGguYWJzKHRvdWNoT2JqZWN0LmN1clggLSB0b3VjaE9iamVjdC5zdGFydFgpIDwgTWF0aC5hYnModG91Y2hPYmplY3QuY3VyWSAtIHRvdWNoT2JqZWN0LnN0YXJ0WSkgKiAwLjgpIHtcbiAgICByZXR1cm4gc3RhdGU7XG4gIH1cblxuICBpZiAodG91Y2hPYmplY3Quc3dpcGVMZW5ndGggPiAxMCkge1xuICAgIHN0YXRlW1wic3dpcGluZ1wiXSA9IHRydWU7XG4gICAgc2FmZVByZXZlbnREZWZhdWx0KGUpO1xuICB9XG5cbiAgcmV0dXJuIHN0YXRlO1xufTtcblxuZXhwb3J0cy5zd2lwZU1vdmUgPSBzd2lwZU1vdmU7XG5cbnZhciBzd2lwZUVuZCA9IGZ1bmN0aW9uIHN3aXBlRW5kKGUsIHNwZWMpIHtcbiAgdmFyIGRyYWdnaW5nID0gc3BlYy5kcmFnZ2luZyxcbiAgICAgIHN3aXBlID0gc3BlYy5zd2lwZSxcbiAgICAgIHRvdWNoT2JqZWN0ID0gc3BlYy50b3VjaE9iamVjdCxcbiAgICAgIGxpc3RXaWR0aCA9IHNwZWMubGlzdFdpZHRoLFxuICAgICAgdG91Y2hUaHJlc2hvbGQgPSBzcGVjLnRvdWNoVGhyZXNob2xkLFxuICAgICAgdmVydGljYWxTd2lwaW5nID0gc3BlYy52ZXJ0aWNhbFN3aXBpbmcsXG4gICAgICBsaXN0SGVpZ2h0ID0gc3BlYy5saXN0SGVpZ2h0LFxuICAgICAgc3dpcGVUb1NsaWRlID0gc3BlYy5zd2lwZVRvU2xpZGUsXG4gICAgICBzY3JvbGxpbmcgPSBzcGVjLnNjcm9sbGluZyxcbiAgICAgIG9uU3dpcGUgPSBzcGVjLm9uU3dpcGUsXG4gICAgICB0YXJnZXRTbGlkZSA9IHNwZWMudGFyZ2V0U2xpZGUsXG4gICAgICBjdXJyZW50U2xpZGUgPSBzcGVjLmN1cnJlbnRTbGlkZSxcbiAgICAgIGluZmluaXRlID0gc3BlYy5pbmZpbml0ZTtcblxuICBpZiAoIWRyYWdnaW5nKSB7XG4gICAgaWYgKHN3aXBlKSBzYWZlUHJldmVudERlZmF1bHQoZSk7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgdmFyIG1pblN3aXBlID0gdmVydGljYWxTd2lwaW5nID8gbGlzdEhlaWdodCAvIHRvdWNoVGhyZXNob2xkIDogbGlzdFdpZHRoIC8gdG91Y2hUaHJlc2hvbGQ7XG4gIHZhciBzd2lwZURpcmVjdGlvbiA9IGdldFN3aXBlRGlyZWN0aW9uKHRvdWNoT2JqZWN0LCB2ZXJ0aWNhbFN3aXBpbmcpOyAvLyByZXNldCB0aGUgc3RhdGUgb2YgdG91Y2ggcmVsYXRlZCBzdGF0ZSB2YXJpYWJsZXMuXG5cbiAgdmFyIHN0YXRlID0ge1xuICAgIGRyYWdnaW5nOiBmYWxzZSxcbiAgICBlZGdlRHJhZ2dlZDogZmFsc2UsXG4gICAgc2Nyb2xsaW5nOiBmYWxzZSxcbiAgICBzd2lwaW5nOiBmYWxzZSxcbiAgICBzd2lwZWQ6IGZhbHNlLFxuICAgIHN3aXBlTGVmdDogbnVsbCxcbiAgICB0b3VjaE9iamVjdDoge31cbiAgfTtcblxuICBpZiAoc2Nyb2xsaW5nKSB7XG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG5cbiAgaWYgKCF0b3VjaE9iamVjdC5zd2lwZUxlbmd0aCkge1xuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuXG4gIGlmICh0b3VjaE9iamVjdC5zd2lwZUxlbmd0aCA+IG1pblN3aXBlKSB7XG4gICAgc2FmZVByZXZlbnREZWZhdWx0KGUpO1xuXG4gICAgaWYgKG9uU3dpcGUpIHtcbiAgICAgIG9uU3dpcGUoc3dpcGVEaXJlY3Rpb24pO1xuICAgIH1cblxuICAgIHZhciBzbGlkZUNvdW50LCBuZXdTbGlkZTtcbiAgICB2YXIgYWN0aXZlU2xpZGUgPSBpbmZpbml0ZSA/IGN1cnJlbnRTbGlkZSA6IHRhcmdldFNsaWRlO1xuXG4gICAgc3dpdGNoIChzd2lwZURpcmVjdGlvbikge1xuICAgICAgY2FzZSBcImxlZnRcIjpcbiAgICAgIGNhc2UgXCJ1cFwiOlxuICAgICAgICBuZXdTbGlkZSA9IGFjdGl2ZVNsaWRlICsgZ2V0U2xpZGVDb3VudChzcGVjKTtcbiAgICAgICAgc2xpZGVDb3VudCA9IHN3aXBlVG9TbGlkZSA/IGNoZWNrTmF2aWdhYmxlKHNwZWMsIG5ld1NsaWRlKSA6IG5ld1NsaWRlO1xuICAgICAgICBzdGF0ZVtcImN1cnJlbnREaXJlY3Rpb25cIl0gPSAwO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBcInJpZ2h0XCI6XG4gICAgICBjYXNlIFwiZG93blwiOlxuICAgICAgICBuZXdTbGlkZSA9IGFjdGl2ZVNsaWRlIC0gZ2V0U2xpZGVDb3VudChzcGVjKTtcbiAgICAgICAgc2xpZGVDb3VudCA9IHN3aXBlVG9TbGlkZSA/IGNoZWNrTmF2aWdhYmxlKHNwZWMsIG5ld1NsaWRlKSA6IG5ld1NsaWRlO1xuICAgICAgICBzdGF0ZVtcImN1cnJlbnREaXJlY3Rpb25cIl0gPSAxO1xuICAgICAgICBicmVhaztcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgc2xpZGVDb3VudCA9IGFjdGl2ZVNsaWRlO1xuICAgIH1cblxuICAgIHN0YXRlW1widHJpZ2dlclNsaWRlSGFuZGxlclwiXSA9IHNsaWRlQ291bnQ7XG4gIH0gZWxzZSB7XG4gICAgLy8gQWRqdXN0IHRoZSB0cmFjayBiYWNrIHRvIGl0J3Mgb3JpZ2luYWwgcG9zaXRpb24uXG4gICAgdmFyIGN1cnJlbnRMZWZ0ID0gZ2V0VHJhY2tMZWZ0KHNwZWMpO1xuICAgIHN0YXRlW1widHJhY2tTdHlsZVwiXSA9IGdldFRyYWNrQW5pbWF0ZUNTUyhfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHNwZWMpLCB7fSwge1xuICAgICAgbGVmdDogY3VycmVudExlZnRcbiAgICB9KSk7XG4gIH1cblxuICByZXR1cm4gc3RhdGU7XG59O1xuXG5leHBvcnRzLnN3aXBlRW5kID0gc3dpcGVFbmQ7XG5cbnZhciBnZXROYXZpZ2FibGVJbmRleGVzID0gZnVuY3Rpb24gZ2V0TmF2aWdhYmxlSW5kZXhlcyhzcGVjKSB7XG4gIHZhciBtYXggPSBzcGVjLmluZmluaXRlID8gc3BlYy5zbGlkZUNvdW50ICogMiA6IHNwZWMuc2xpZGVDb3VudDtcbiAgdmFyIGJyZWFrcG9pbnQgPSBzcGVjLmluZmluaXRlID8gc3BlYy5zbGlkZXNUb1Nob3cgKiAtMSA6IDA7XG4gIHZhciBjb3VudGVyID0gc3BlYy5pbmZpbml0ZSA/IHNwZWMuc2xpZGVzVG9TaG93ICogLTEgOiAwO1xuICB2YXIgaW5kZXhlcyA9IFtdO1xuXG4gIHdoaWxlIChicmVha3BvaW50IDwgbWF4KSB7XG4gICAgaW5kZXhlcy5wdXNoKGJyZWFrcG9pbnQpO1xuICAgIGJyZWFrcG9pbnQgPSBjb3VudGVyICsgc3BlYy5zbGlkZXNUb1Njcm9sbDtcbiAgICBjb3VudGVyICs9IE1hdGgubWluKHNwZWMuc2xpZGVzVG9TY3JvbGwsIHNwZWMuc2xpZGVzVG9TaG93KTtcbiAgfVxuXG4gIHJldHVybiBpbmRleGVzO1xufTtcblxuZXhwb3J0cy5nZXROYXZpZ2FibGVJbmRleGVzID0gZ2V0TmF2aWdhYmxlSW5kZXhlcztcblxudmFyIGNoZWNrTmF2aWdhYmxlID0gZnVuY3Rpb24gY2hlY2tOYXZpZ2FibGUoc3BlYywgaW5kZXgpIHtcbiAgdmFyIG5hdmlnYWJsZXMgPSBnZXROYXZpZ2FibGVJbmRleGVzKHNwZWMpO1xuICB2YXIgcHJldk5hdmlnYWJsZSA9IDA7XG5cbiAgaWYgKGluZGV4ID4gbmF2aWdhYmxlc1tuYXZpZ2FibGVzLmxlbmd0aCAtIDFdKSB7XG4gICAgaW5kZXggPSBuYXZpZ2FibGVzW25hdmlnYWJsZXMubGVuZ3RoIC0gMV07XG4gIH0gZWxzZSB7XG4gICAgZm9yICh2YXIgbiBpbiBuYXZpZ2FibGVzKSB7XG4gICAgICBpZiAoaW5kZXggPCBuYXZpZ2FibGVzW25dKSB7XG4gICAgICAgIGluZGV4ID0gcHJldk5hdmlnYWJsZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIHByZXZOYXZpZ2FibGUgPSBuYXZpZ2FibGVzW25dO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBpbmRleDtcbn07XG5cbmV4cG9ydHMuY2hlY2tOYXZpZ2FibGUgPSBjaGVja05hdmlnYWJsZTtcblxudmFyIGdldFNsaWRlQ291bnQgPSBmdW5jdGlvbiBnZXRTbGlkZUNvdW50KHNwZWMpIHtcbiAgdmFyIGNlbnRlck9mZnNldCA9IHNwZWMuY2VudGVyTW9kZSA/IHNwZWMuc2xpZGVXaWR0aCAqIE1hdGguZmxvb3Ioc3BlYy5zbGlkZXNUb1Nob3cgLyAyKSA6IDA7XG5cbiAgaWYgKHNwZWMuc3dpcGVUb1NsaWRlKSB7XG4gICAgdmFyIHN3aXBlZFNsaWRlO1xuICAgIHZhciBzbGlja0xpc3QgPSBzcGVjLmxpc3RSZWY7XG4gICAgdmFyIHNsaWRlcyA9IHNsaWNrTGlzdC5xdWVyeVNlbGVjdG9yQWxsICYmIHNsaWNrTGlzdC5xdWVyeVNlbGVjdG9yQWxsKFwiLnNsaWNrLXNsaWRlXCIpIHx8IFtdO1xuICAgIEFycmF5LmZyb20oc2xpZGVzKS5ldmVyeShmdW5jdGlvbiAoc2xpZGUpIHtcbiAgICAgIGlmICghc3BlYy52ZXJ0aWNhbCkge1xuICAgICAgICBpZiAoc2xpZGUub2Zmc2V0TGVmdCAtIGNlbnRlck9mZnNldCArIGdldFdpZHRoKHNsaWRlKSAvIDIgPiBzcGVjLnN3aXBlTGVmdCAqIC0xKSB7XG4gICAgICAgICAgc3dpcGVkU2xpZGUgPSBzbGlkZTtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChzbGlkZS5vZmZzZXRUb3AgKyBnZXRIZWlnaHQoc2xpZGUpIC8gMiA+IHNwZWMuc3dpcGVMZWZ0ICogLTEpIHtcbiAgICAgICAgICBzd2lwZWRTbGlkZSA9IHNsaWRlO1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9KTtcblxuICAgIGlmICghc3dpcGVkU2xpZGUpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIHZhciBjdXJyZW50SW5kZXggPSBzcGVjLnJ0bCA9PT0gdHJ1ZSA/IHNwZWMuc2xpZGVDb3VudCAtIHNwZWMuY3VycmVudFNsaWRlIDogc3BlYy5jdXJyZW50U2xpZGU7XG4gICAgdmFyIHNsaWRlc1RyYXZlcnNlZCA9IE1hdGguYWJzKHN3aXBlZFNsaWRlLmRhdGFzZXQuaW5kZXggLSBjdXJyZW50SW5kZXgpIHx8IDE7XG4gICAgcmV0dXJuIHNsaWRlc1RyYXZlcnNlZDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gc3BlYy5zbGlkZXNUb1Njcm9sbDtcbiAgfVxufTtcblxuZXhwb3J0cy5nZXRTbGlkZUNvdW50ID0gZ2V0U2xpZGVDb3VudDtcblxudmFyIGNoZWNrU3BlY0tleXMgPSBmdW5jdGlvbiBjaGVja1NwZWNLZXlzKHNwZWMsIGtleXNBcnJheSkge1xuICByZXR1cm4ga2V5c0FycmF5LnJlZHVjZShmdW5jdGlvbiAodmFsdWUsIGtleSkge1xuICAgIHJldHVybiB2YWx1ZSAmJiBzcGVjLmhhc093blByb3BlcnR5KGtleSk7XG4gIH0sIHRydWUpID8gbnVsbCA6IGNvbnNvbGUuZXJyb3IoXCJLZXlzIE1pc3Npbmc6XCIsIHNwZWMpO1xufTtcblxuZXhwb3J0cy5jaGVja1NwZWNLZXlzID0gY2hlY2tTcGVjS2V5cztcblxudmFyIGdldFRyYWNrQ1NTID0gZnVuY3Rpb24gZ2V0VHJhY2tDU1Moc3BlYykge1xuICBjaGVja1NwZWNLZXlzKHNwZWMsIFtcImxlZnRcIiwgXCJ2YXJpYWJsZVdpZHRoXCIsIFwic2xpZGVDb3VudFwiLCBcInNsaWRlc1RvU2hvd1wiLCBcInNsaWRlV2lkdGhcIl0pO1xuICB2YXIgdHJhY2tXaWR0aCwgdHJhY2tIZWlnaHQ7XG4gIHZhciB0cmFja0NoaWxkcmVuID0gc3BlYy5zbGlkZUNvdW50ICsgMiAqIHNwZWMuc2xpZGVzVG9TaG93O1xuXG4gIGlmICghc3BlYy52ZXJ0aWNhbCkge1xuICAgIHRyYWNrV2lkdGggPSBnZXRUb3RhbFNsaWRlcyhzcGVjKSAqIHNwZWMuc2xpZGVXaWR0aDtcbiAgfSBlbHNlIHtcbiAgICB0cmFja0hlaWdodCA9IHRyYWNrQ2hpbGRyZW4gKiBzcGVjLnNsaWRlSGVpZ2h0O1xuICB9XG5cbiAgdmFyIHN0eWxlID0ge1xuICAgIG9wYWNpdHk6IDEsXG4gICAgdHJhbnNpdGlvbjogXCJcIixcbiAgICBXZWJraXRUcmFuc2l0aW9uOiBcIlwiXG4gIH07XG5cbiAgaWYgKHNwZWMudXNlVHJhbnNmb3JtKSB7XG4gICAgdmFyIFdlYmtpdFRyYW5zZm9ybSA9ICFzcGVjLnZlcnRpY2FsID8gXCJ0cmFuc2xhdGUzZChcIiArIHNwZWMubGVmdCArIFwicHgsIDBweCwgMHB4KVwiIDogXCJ0cmFuc2xhdGUzZCgwcHgsIFwiICsgc3BlYy5sZWZ0ICsgXCJweCwgMHB4KVwiO1xuICAgIHZhciB0cmFuc2Zvcm0gPSAhc3BlYy52ZXJ0aWNhbCA/IFwidHJhbnNsYXRlM2QoXCIgKyBzcGVjLmxlZnQgKyBcInB4LCAwcHgsIDBweClcIiA6IFwidHJhbnNsYXRlM2QoMHB4LCBcIiArIHNwZWMubGVmdCArIFwicHgsIDBweClcIjtcbiAgICB2YXIgbXNUcmFuc2Zvcm0gPSAhc3BlYy52ZXJ0aWNhbCA/IFwidHJhbnNsYXRlWChcIiArIHNwZWMubGVmdCArIFwicHgpXCIgOiBcInRyYW5zbGF0ZVkoXCIgKyBzcGVjLmxlZnQgKyBcInB4KVwiO1xuICAgIHN0eWxlID0gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzdHlsZSksIHt9LCB7XG4gICAgICBXZWJraXRUcmFuc2Zvcm06IFdlYmtpdFRyYW5zZm9ybSxcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNmb3JtLFxuICAgICAgbXNUcmFuc2Zvcm06IG1zVHJhbnNmb3JtXG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgaWYgKHNwZWMudmVydGljYWwpIHtcbiAgICAgIHN0eWxlW1widG9wXCJdID0gc3BlYy5sZWZ0O1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHlsZVtcImxlZnRcIl0gPSBzcGVjLmxlZnQ7XG4gICAgfVxuICB9XG5cbiAgaWYgKHNwZWMuZmFkZSkgc3R5bGUgPSB7XG4gICAgb3BhY2l0eTogMVxuICB9O1xuICBpZiAodHJhY2tXaWR0aCkgc3R5bGUud2lkdGggPSB0cmFja1dpZHRoO1xuICBpZiAodHJhY2tIZWlnaHQpIHN0eWxlLmhlaWdodCA9IHRyYWNrSGVpZ2h0OyAvLyBGYWxsYmFjayBmb3IgSUU4XG5cbiAgaWYgKHdpbmRvdyAmJiAhd2luZG93LmFkZEV2ZW50TGlzdGVuZXIgJiYgd2luZG93LmF0dGFjaEV2ZW50KSB7XG4gICAgaWYgKCFzcGVjLnZlcnRpY2FsKSB7XG4gICAgICBzdHlsZS5tYXJnaW5MZWZ0ID0gc3BlYy5sZWZ0ICsgXCJweFwiO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHlsZS5tYXJnaW5Ub3AgPSBzcGVjLmxlZnQgKyBcInB4XCI7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0eWxlO1xufTtcblxuZXhwb3J0cy5nZXRUcmFja0NTUyA9IGdldFRyYWNrQ1NTO1xuXG52YXIgZ2V0VHJhY2tBbmltYXRlQ1NTID0gZnVuY3Rpb24gZ2V0VHJhY2tBbmltYXRlQ1NTKHNwZWMpIHtcbiAgY2hlY2tTcGVjS2V5cyhzcGVjLCBbXCJsZWZ0XCIsIFwidmFyaWFibGVXaWR0aFwiLCBcInNsaWRlQ291bnRcIiwgXCJzbGlkZXNUb1Nob3dcIiwgXCJzbGlkZVdpZHRoXCIsIFwic3BlZWRcIiwgXCJjc3NFYXNlXCJdKTtcbiAgdmFyIHN0eWxlID0gZ2V0VHJhY2tDU1Moc3BlYyk7IC8vIHVzZUNTUyBpcyB0cnVlIGJ5IGRlZmF1bHQgc28gaXQgY2FuIGJlIHVuZGVmaW5lZFxuXG4gIGlmIChzcGVjLnVzZVRyYW5zZm9ybSkge1xuICAgIHN0eWxlLldlYmtpdFRyYW5zaXRpb24gPSBcIi13ZWJraXQtdHJhbnNmb3JtIFwiICsgc3BlYy5zcGVlZCArIFwibXMgXCIgKyBzcGVjLmNzc0Vhc2U7XG4gICAgc3R5bGUudHJhbnNpdGlvbiA9IFwidHJhbnNmb3JtIFwiICsgc3BlYy5zcGVlZCArIFwibXMgXCIgKyBzcGVjLmNzc0Vhc2U7XG4gIH0gZWxzZSB7XG4gICAgaWYgKHNwZWMudmVydGljYWwpIHtcbiAgICAgIHN0eWxlLnRyYW5zaXRpb24gPSBcInRvcCBcIiArIHNwZWMuc3BlZWQgKyBcIm1zIFwiICsgc3BlYy5jc3NFYXNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHlsZS50cmFuc2l0aW9uID0gXCJsZWZ0IFwiICsgc3BlYy5zcGVlZCArIFwibXMgXCIgKyBzcGVjLmNzc0Vhc2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0eWxlO1xufTtcblxuZXhwb3J0cy5nZXRUcmFja0FuaW1hdGVDU1MgPSBnZXRUcmFja0FuaW1hdGVDU1M7XG5cbnZhciBnZXRUcmFja0xlZnQgPSBmdW5jdGlvbiBnZXRUcmFja0xlZnQoc3BlYykge1xuICBpZiAoc3BlYy51bnNsaWNrKSB7XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICBjaGVja1NwZWNLZXlzKHNwZWMsIFtcInNsaWRlSW5kZXhcIiwgXCJ0cmFja1JlZlwiLCBcImluZmluaXRlXCIsIFwiY2VudGVyTW9kZVwiLCBcInNsaWRlQ291bnRcIiwgXCJzbGlkZXNUb1Nob3dcIiwgXCJzbGlkZXNUb1Njcm9sbFwiLCBcInNsaWRlV2lkdGhcIiwgXCJsaXN0V2lkdGhcIiwgXCJ2YXJpYWJsZVdpZHRoXCIsIFwic2xpZGVIZWlnaHRcIl0pO1xuICB2YXIgc2xpZGVJbmRleCA9IHNwZWMuc2xpZGVJbmRleCxcbiAgICAgIHRyYWNrUmVmID0gc3BlYy50cmFja1JlZixcbiAgICAgIGluZmluaXRlID0gc3BlYy5pbmZpbml0ZSxcbiAgICAgIGNlbnRlck1vZGUgPSBzcGVjLmNlbnRlck1vZGUsXG4gICAgICBzbGlkZUNvdW50ID0gc3BlYy5zbGlkZUNvdW50LFxuICAgICAgc2xpZGVzVG9TaG93ID0gc3BlYy5zbGlkZXNUb1Nob3csXG4gICAgICBzbGlkZXNUb1Njcm9sbCA9IHNwZWMuc2xpZGVzVG9TY3JvbGwsXG4gICAgICBzbGlkZVdpZHRoID0gc3BlYy5zbGlkZVdpZHRoLFxuICAgICAgbGlzdFdpZHRoID0gc3BlYy5saXN0V2lkdGgsXG4gICAgICB2YXJpYWJsZVdpZHRoID0gc3BlYy52YXJpYWJsZVdpZHRoLFxuICAgICAgc2xpZGVIZWlnaHQgPSBzcGVjLnNsaWRlSGVpZ2h0LFxuICAgICAgZmFkZSA9IHNwZWMuZmFkZSxcbiAgICAgIHZlcnRpY2FsID0gc3BlYy52ZXJ0aWNhbDtcbiAgdmFyIHNsaWRlT2Zmc2V0ID0gMDtcbiAgdmFyIHRhcmdldExlZnQ7XG4gIHZhciB0YXJnZXRTbGlkZTtcbiAgdmFyIHZlcnRpY2FsT2Zmc2V0ID0gMDtcblxuICBpZiAoZmFkZSB8fCBzcGVjLnNsaWRlQ291bnQgPT09IDEpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHZhciBzbGlkZXNUb09mZnNldCA9IDA7XG5cbiAgaWYgKGluZmluaXRlKSB7XG4gICAgc2xpZGVzVG9PZmZzZXQgPSAtZ2V0UHJlQ2xvbmVzKHNwZWMpOyAvLyBicmluZyBhY3RpdmUgc2xpZGUgdG8gdGhlIGJlZ2lubmluZyBvZiB2aXN1YWwgYXJlYVxuICAgIC8vIGlmIG5leHQgc2Nyb2xsIGRvZXNuJ3QgaGF2ZSBlbm91Z2ggY2hpbGRyZW4sIGp1c3QgcmVhY2ggdGlsbCB0aGUgZW5kIG9mIG9yaWdpbmFsIHNsaWRlcyBpbnN0ZWFkIG9mIHNoaWZ0aW5nIHNsaWRlc1RvU2Nyb2xsIGNoaWxkcmVuXG5cbiAgICBpZiAoc2xpZGVDb3VudCAlIHNsaWRlc1RvU2Nyb2xsICE9PSAwICYmIHNsaWRlSW5kZXggKyBzbGlkZXNUb1Njcm9sbCA+IHNsaWRlQ291bnQpIHtcbiAgICAgIHNsaWRlc1RvT2Zmc2V0ID0gLShzbGlkZUluZGV4ID4gc2xpZGVDb3VudCA/IHNsaWRlc1RvU2hvdyAtIChzbGlkZUluZGV4IC0gc2xpZGVDb3VudCkgOiBzbGlkZUNvdW50ICUgc2xpZGVzVG9TY3JvbGwpO1xuICAgIH0gLy8gc2hpZnQgY3VycmVudCBzbGlkZSB0byBjZW50ZXIgb2YgdGhlIGZyYW1lXG5cblxuICAgIGlmIChjZW50ZXJNb2RlKSB7XG4gICAgICBzbGlkZXNUb09mZnNldCArPSBwYXJzZUludChzbGlkZXNUb1Nob3cgLyAyKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgaWYgKHNsaWRlQ291bnQgJSBzbGlkZXNUb1Njcm9sbCAhPT0gMCAmJiBzbGlkZUluZGV4ICsgc2xpZGVzVG9TY3JvbGwgPiBzbGlkZUNvdW50KSB7XG4gICAgICBzbGlkZXNUb09mZnNldCA9IHNsaWRlc1RvU2hvdyAtIHNsaWRlQ291bnQgJSBzbGlkZXNUb1Njcm9sbDtcbiAgICB9XG5cbiAgICBpZiAoY2VudGVyTW9kZSkge1xuICAgICAgc2xpZGVzVG9PZmZzZXQgPSBwYXJzZUludChzbGlkZXNUb1Nob3cgLyAyKTtcbiAgICB9XG4gIH1cblxuICBzbGlkZU9mZnNldCA9IHNsaWRlc1RvT2Zmc2V0ICogc2xpZGVXaWR0aDtcbiAgdmVydGljYWxPZmZzZXQgPSBzbGlkZXNUb09mZnNldCAqIHNsaWRlSGVpZ2h0O1xuXG4gIGlmICghdmVydGljYWwpIHtcbiAgICB0YXJnZXRMZWZ0ID0gc2xpZGVJbmRleCAqIHNsaWRlV2lkdGggKiAtMSArIHNsaWRlT2Zmc2V0O1xuICB9IGVsc2Uge1xuICAgIHRhcmdldExlZnQgPSBzbGlkZUluZGV4ICogc2xpZGVIZWlnaHQgKiAtMSArIHZlcnRpY2FsT2Zmc2V0O1xuICB9XG5cbiAgaWYgKHZhcmlhYmxlV2lkdGggPT09IHRydWUpIHtcbiAgICB2YXIgdGFyZ2V0U2xpZGVJbmRleDtcbiAgICB2YXIgdHJhY2tFbGVtID0gdHJhY2tSZWYgJiYgdHJhY2tSZWYubm9kZTtcbiAgICB0YXJnZXRTbGlkZUluZGV4ID0gc2xpZGVJbmRleCArIGdldFByZUNsb25lcyhzcGVjKTtcbiAgICB0YXJnZXRTbGlkZSA9IHRyYWNrRWxlbSAmJiB0cmFja0VsZW0uY2hpbGROb2Rlc1t0YXJnZXRTbGlkZUluZGV4XTtcbiAgICB0YXJnZXRMZWZ0ID0gdGFyZ2V0U2xpZGUgPyB0YXJnZXRTbGlkZS5vZmZzZXRMZWZ0ICogLTEgOiAwO1xuXG4gICAgaWYgKGNlbnRlck1vZGUgPT09IHRydWUpIHtcbiAgICAgIHRhcmdldFNsaWRlSW5kZXggPSBpbmZpbml0ZSA/IHNsaWRlSW5kZXggKyBnZXRQcmVDbG9uZXMoc3BlYykgOiBzbGlkZUluZGV4O1xuICAgICAgdGFyZ2V0U2xpZGUgPSB0cmFja0VsZW0gJiYgdHJhY2tFbGVtLmNoaWxkcmVuW3RhcmdldFNsaWRlSW5kZXhdO1xuICAgICAgdGFyZ2V0TGVmdCA9IDA7XG5cbiAgICAgIGZvciAodmFyIHNsaWRlID0gMDsgc2xpZGUgPCB0YXJnZXRTbGlkZUluZGV4OyBzbGlkZSsrKSB7XG4gICAgICAgIHRhcmdldExlZnQgLT0gdHJhY2tFbGVtICYmIHRyYWNrRWxlbS5jaGlsZHJlbltzbGlkZV0gJiYgdHJhY2tFbGVtLmNoaWxkcmVuW3NsaWRlXS5vZmZzZXRXaWR0aDtcbiAgICAgIH1cblxuICAgICAgdGFyZ2V0TGVmdCAtPSBwYXJzZUludChzcGVjLmNlbnRlclBhZGRpbmcpO1xuICAgICAgdGFyZ2V0TGVmdCArPSB0YXJnZXRTbGlkZSAmJiAobGlzdFdpZHRoIC0gdGFyZ2V0U2xpZGUub2Zmc2V0V2lkdGgpIC8gMjtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0TGVmdDtcbn07XG5cbmV4cG9ydHMuZ2V0VHJhY2tMZWZ0ID0gZ2V0VHJhY2tMZWZ0O1xuXG52YXIgZ2V0UHJlQ2xvbmVzID0gZnVuY3Rpb24gZ2V0UHJlQ2xvbmVzKHNwZWMpIHtcbiAgaWYgKHNwZWMudW5zbGljayB8fCAhc3BlYy5pbmZpbml0ZSkge1xuICAgIHJldHVybiAwO1xuICB9XG5cbiAgaWYgKHNwZWMudmFyaWFibGVXaWR0aCkge1xuICAgIHJldHVybiBzcGVjLnNsaWRlQ291bnQ7XG4gIH1cblxuICByZXR1cm4gc3BlYy5zbGlkZXNUb1Nob3cgKyAoc3BlYy5jZW50ZXJNb2RlID8gMSA6IDApO1xufTtcblxuZXhwb3J0cy5nZXRQcmVDbG9uZXMgPSBnZXRQcmVDbG9uZXM7XG5cbnZhciBnZXRQb3N0Q2xvbmVzID0gZnVuY3Rpb24gZ2V0UG9zdENsb25lcyhzcGVjKSB7XG4gIGlmIChzcGVjLnVuc2xpY2sgfHwgIXNwZWMuaW5maW5pdGUpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHJldHVybiBzcGVjLnNsaWRlQ291bnQ7XG59O1xuXG5leHBvcnRzLmdldFBvc3RDbG9uZXMgPSBnZXRQb3N0Q2xvbmVzO1xuXG52YXIgZ2V0VG90YWxTbGlkZXMgPSBmdW5jdGlvbiBnZXRUb3RhbFNsaWRlcyhzcGVjKSB7XG4gIHJldHVybiBzcGVjLnNsaWRlQ291bnQgPT09IDEgPyAxIDogZ2V0UHJlQ2xvbmVzKHNwZWMpICsgc3BlYy5zbGlkZUNvdW50ICsgZ2V0UG9zdENsb25lcyhzcGVjKTtcbn07XG5cbmV4cG9ydHMuZ2V0VG90YWxTbGlkZXMgPSBnZXRUb3RhbFNsaWRlcztcblxudmFyIHNpYmxpbmdEaXJlY3Rpb24gPSBmdW5jdGlvbiBzaWJsaW5nRGlyZWN0aW9uKHNwZWMpIHtcbiAgaWYgKHNwZWMudGFyZ2V0U2xpZGUgPiBzcGVjLmN1cnJlbnRTbGlkZSkge1xuICAgIGlmIChzcGVjLnRhcmdldFNsaWRlID4gc3BlYy5jdXJyZW50U2xpZGUgKyBzbGlkZXNPblJpZ2h0KHNwZWMpKSB7XG4gICAgICByZXR1cm4gXCJsZWZ0XCI7XG4gICAgfVxuXG4gICAgcmV0dXJuIFwicmlnaHRcIjtcbiAgfSBlbHNlIHtcbiAgICBpZiAoc3BlYy50YXJnZXRTbGlkZSA8IHNwZWMuY3VycmVudFNsaWRlIC0gc2xpZGVzT25MZWZ0KHNwZWMpKSB7XG4gICAgICByZXR1cm4gXCJyaWdodFwiO1xuICAgIH1cblxuICAgIHJldHVybiBcImxlZnRcIjtcbiAgfVxufTtcblxuZXhwb3J0cy5zaWJsaW5nRGlyZWN0aW9uID0gc2libGluZ0RpcmVjdGlvbjtcblxudmFyIHNsaWRlc09uUmlnaHQgPSBmdW5jdGlvbiBzbGlkZXNPblJpZ2h0KF9yZWYpIHtcbiAgdmFyIHNsaWRlc1RvU2hvdyA9IF9yZWYuc2xpZGVzVG9TaG93LFxuICAgICAgY2VudGVyTW9kZSA9IF9yZWYuY2VudGVyTW9kZSxcbiAgICAgIHJ0bCA9IF9yZWYucnRsLFxuICAgICAgY2VudGVyUGFkZGluZyA9IF9yZWYuY2VudGVyUGFkZGluZztcblxuICAvLyByZXR1cm5zIG5vIG9mIHNsaWRlcyBvbiB0aGUgcmlnaHQgb2YgYWN0aXZlIHNsaWRlXG4gIGlmIChjZW50ZXJNb2RlKSB7XG4gICAgdmFyIHJpZ2h0ID0gKHNsaWRlc1RvU2hvdyAtIDEpIC8gMiArIDE7XG4gICAgaWYgKHBhcnNlSW50KGNlbnRlclBhZGRpbmcpID4gMCkgcmlnaHQgKz0gMTtcbiAgICBpZiAocnRsICYmIHNsaWRlc1RvU2hvdyAlIDIgPT09IDApIHJpZ2h0ICs9IDE7XG4gICAgcmV0dXJuIHJpZ2h0O1xuICB9XG5cbiAgaWYgKHJ0bCkge1xuICAgIHJldHVybiAwO1xuICB9XG5cbiAgcmV0dXJuIHNsaWRlc1RvU2hvdyAtIDE7XG59O1xuXG5leHBvcnRzLnNsaWRlc09uUmlnaHQgPSBzbGlkZXNPblJpZ2h0O1xuXG52YXIgc2xpZGVzT25MZWZ0ID0gZnVuY3Rpb24gc2xpZGVzT25MZWZ0KF9yZWYyKSB7XG4gIHZhciBzbGlkZXNUb1Nob3cgPSBfcmVmMi5zbGlkZXNUb1Nob3csXG4gICAgICBjZW50ZXJNb2RlID0gX3JlZjIuY2VudGVyTW9kZSxcbiAgICAgIHJ0bCA9IF9yZWYyLnJ0bCxcbiAgICAgIGNlbnRlclBhZGRpbmcgPSBfcmVmMi5jZW50ZXJQYWRkaW5nO1xuXG4gIC8vIHJldHVybnMgbm8gb2Ygc2xpZGVzIG9uIHRoZSBsZWZ0IG9mIGFjdGl2ZSBzbGlkZVxuICBpZiAoY2VudGVyTW9kZSkge1xuICAgIHZhciBsZWZ0ID0gKHNsaWRlc1RvU2hvdyAtIDEpIC8gMiArIDE7XG4gICAgaWYgKHBhcnNlSW50KGNlbnRlclBhZGRpbmcpID4gMCkgbGVmdCArPSAxO1xuICAgIGlmICghcnRsICYmIHNsaWRlc1RvU2hvdyAlIDIgPT09IDApIGxlZnQgKz0gMTtcbiAgICByZXR1cm4gbGVmdDtcbiAgfVxuXG4gIGlmIChydGwpIHtcbiAgICByZXR1cm4gc2xpZGVzVG9TaG93IC0gMTtcbiAgfVxuXG4gIHJldHVybiAwO1xufTtcblxuZXhwb3J0cy5zbGlkZXNPbkxlZnQgPSBzbGlkZXNPbkxlZnQ7XG5cbnZhciBjYW5Vc2VET00gPSBmdW5jdGlvbiBjYW5Vc2VET00oKSB7XG4gIHJldHVybiAhISh0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiICYmIHdpbmRvdy5kb2N1bWVudCAmJiB3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCk7XG59O1xuXG5leHBvcnRzLmNhblVzZURPTSA9IGNhblVzZURPTTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-slick/lib/utils/innerSliderUtils.js\n"); + +/***/ }), + +/***/ "./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js": +/*!*************************************************************************!*\ + !*** ./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array<Array>} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof __webpack_require__.g !== 'undefined' && __webpack_require__.g.Math === Math) {\r\n return __webpack_require__.g;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array<ResizeObserverSPI>}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the <html> itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element (<html>).\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array<ResizeObservation>}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map<Element, ResizeObservation>}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (index);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVzaXplLW9ic2VydmVyLXBvbHlmaWxsL2Rpc3QvUmVzaXplT2JzZXJ2ZXIuZXMuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLGNBQWM7QUFDN0IsZUFBZSxHQUFHO0FBQ2xCLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBLG1CQUFtQixHQUFHO0FBQ3RCLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixHQUFHO0FBQ3RCLG1CQUFtQixHQUFHO0FBQ3RCLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLEdBQUc7QUFDdEIscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixHQUFHO0FBQ3RCLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUIsVUFBVTtBQUM3QixtQkFBbUIsR0FBRztBQUN0QixxQkFBcUI7QUFDckI7QUFDQTtBQUNBLGtDQUFrQztBQUNsQyxvREFBb0QsZ0JBQWdCO0FBQ3BFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsZUFBZSxxQkFB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QTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSx3QkFBd0I7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRCwrREFBZSxLQUFLLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3Jlc2l6ZS1vYnNlcnZlci1wb2x5ZmlsbC9kaXN0L1Jlc2l6ZU9ic2VydmVyLmVzLmpzP2YzNDciXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEEgY29sbGVjdGlvbiBvZiBzaGltcyB0aGF0IHByb3ZpZGUgbWluaW1hbCBmdW5jdGlvbmFsaXR5IG9mIHRoZSBFUzYgY29sbGVjdGlvbnMuXHJcbiAqXHJcbiAqIFRoZXNlIGltcGxlbWVudGF0aW9ucyBhcmUgbm90IG1lYW50IHRvIGJlIHVzZWQgb3V0c2lkZSBvZiB0aGUgUmVzaXplT2JzZXJ2ZXJcclxuICogbW9kdWxlcyBhcyB0aGV5IGNvdmVyIG9ubHkgYSBsaW1pdGVkIHJhbmdlIG9mIHVzZSBjYXNlcy5cclxuICovXHJcbi8qIGVzbGludC1kaXNhYmxlIHJlcXVpcmUtanNkb2MsIHZhbGlkLWpzZG9jICovXHJcbnZhciBNYXBTaGltID0gKGZ1bmN0aW9uICgpIHtcclxuICAgIGlmICh0eXBlb2YgTWFwICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgIHJldHVybiBNYXA7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgaW5kZXggaW4gcHJvdmlkZWQgYXJyYXkgdGhhdCBtYXRjaGVzIHRoZSBzcGVjaWZpZWQga2V5LlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7QXJyYXk8QXJyYXk+fSBhcnJcclxuICAgICAqIEBwYXJhbSB7Kn0ga2V5XHJcbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfVxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiBnZXRJbmRleChhcnIsIGtleSkge1xyXG4gICAgICAgIHZhciByZXN1bHQgPSAtMTtcclxuICAgICAgICBhcnIuc29tZShmdW5jdGlvbiAoZW50cnksIGluZGV4KSB7XHJcbiAgICAgICAgICAgIGlmIChlbnRyeVswXSA9PT0ga2V5KSB7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQgPSBpbmRleDtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBmdW5jdGlvbiBjbGFzc18xKCkge1xyXG4gICAgICAgICAgICB0aGlzLl9fZW50cmllc19fID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjbGFzc18xLnByb3RvdHlwZSwgXCJzaXplXCIsIHtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIEByZXR1cm5zIHtib29sZWFufVxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fX2VudHJpZXNfXy5sZW5ndGg7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXHJcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBwYXJhbSB7Kn0ga2V5XHJcbiAgICAgICAgICogQHJldHVybnMgeyp9XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgY2xhc3NfMS5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24gKGtleSkge1xyXG4gICAgICAgICAgICB2YXIgaW5kZXggPSBnZXRJbmRleCh0aGlzLl9fZW50cmllc19fLCBrZXkpO1xyXG4gICAgICAgICAgICB2YXIgZW50cnkgPSB0aGlzLl9fZW50cmllc19fW2luZGV4XTtcclxuICAgICAgICAgICAgcmV0dXJuIGVudHJ5ICYmIGVudHJ5WzFdO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQHBhcmFtIHsqfSBrZXlcclxuICAgICAgICAgKiBAcGFyYW0geyp9IHZhbHVlXHJcbiAgICAgICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgY2xhc3NfMS5wcm90b3R5cGUuc2V0ID0gZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcclxuICAgICAgICAgICAgdmFyIGluZGV4ID0gZ2V0SW5kZXgodGhpcy5fX2VudHJpZXNfXywga2V5KTtcclxuICAgICAgICAgICAgaWYgKH5pbmRleCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fX2VudHJpZXNfX1tpbmRleF1bMV0gPSB2YWx1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX19lbnRyaWVzX18ucHVzaChba2V5LCB2YWx1ZV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAcGFyYW0geyp9IGtleVxyXG4gICAgICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGNsYXNzXzEucHJvdG90eXBlLmRlbGV0ZSA9IGZ1bmN0aW9uIChrZXkpIHtcclxuICAgICAgICAgICAgdmFyIGVudHJpZXMgPSB0aGlzLl9fZW50cmllc19fO1xyXG4gICAgICAgICAgICB2YXIgaW5kZXggPSBnZXRJbmRleChlbnRyaWVzLCBrZXkpO1xyXG4gICAgICAgICAgICBpZiAofmluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICBlbnRyaWVzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBwYXJhbSB7Kn0ga2V5XHJcbiAgICAgICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgY2xhc3NfMS5wcm90b3R5cGUuaGFzID0gZnVuY3Rpb24gKGtleSkge1xyXG4gICAgICAgICAgICByZXR1cm4gISF+Z2V0SW5kZXgodGhpcy5fX2VudHJpZXNfXywga2V5KTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGNsYXNzXzEucHJvdG90eXBlLmNsZWFyID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICB0aGlzLl9fZW50cmllc19fLnNwbGljZSgwKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrXHJcbiAgICAgICAgICogQHBhcmFtIHsqfSBbY3R4PW51bGxdXHJcbiAgICAgICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgY2xhc3NfMS5wcm90b3R5cGUuZm9yRWFjaCA9IGZ1bmN0aW9uIChjYWxsYmFjaywgY3R4KSB7XHJcbiAgICAgICAgICAgIGlmIChjdHggPT09IHZvaWQgMCkgeyBjdHggPSBudWxsOyB9XHJcbiAgICAgICAgICAgIGZvciAodmFyIF9pID0gMCwgX2EgPSB0aGlzLl9fZW50cmllc19fOyBfaSA8IF9hLmxlbmd0aDsgX2krKykge1xyXG4gICAgICAgICAgICAgICAgdmFyIGVudHJ5ID0gX2FbX2ldO1xyXG4gICAgICAgICAgICAgICAgY2FsbGJhY2suY2FsbChjdHgsIGVudHJ5WzFdLCBlbnRyeVswXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiBjbGFzc18xO1xyXG4gICAgfSgpKTtcclxufSkoKTtcblxuLyoqXHJcbiAqIERldGVjdHMgd2hldGhlciB3aW5kb3cgYW5kIGRvY3VtZW50IG9iamVjdHMgYXJlIGF2YWlsYWJsZSBpbiBjdXJyZW50IGVudmlyb25tZW50LlxyXG4gKi9cclxudmFyIGlzQnJvd3NlciA9IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LmRvY3VtZW50ID09PSBkb2N1bWVudDtcblxuLy8gUmV0dXJucyBnbG9iYWwgb2JqZWN0IG9mIGEgY3VycmVudCBlbnZpcm9ubWVudC5cclxudmFyIGdsb2JhbCQxID0gKGZ1bmN0aW9uICgpIHtcclxuICAgIGlmICh0eXBlb2YgZ2xvYmFsICE9PSAndW5kZWZpbmVkJyAmJiBnbG9iYWwuTWF0aCA9PT0gTWF0aCkge1xyXG4gICAgICAgIHJldHVybiBnbG9iYWw7XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZW9mIHNlbGYgIT09ICd1bmRlZmluZWQnICYmIHNlbGYuTWF0aCA9PT0gTWF0aCkge1xyXG4gICAgICAgIHJldHVybiBzZWxmO1xyXG4gICAgfVxyXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5NYXRoID09PSBNYXRoKSB7XHJcbiAgICAgICAgcmV0dXJuIHdpbmRvdztcclxuICAgIH1cclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1uZXctZnVuY1xyXG4gICAgcmV0dXJuIEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XHJcbn0pKCk7XG5cbi8qKlxyXG4gKiBBIHNoaW0gZm9yIHRoZSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgd2hpY2ggZmFsbHMgYmFjayB0byB0aGUgc2V0VGltZW91dCBpZlxyXG4gKiBmaXJzdCBvbmUgaXMgbm90IHN1cHBvcnRlZC5cclxuICpcclxuICogQHJldHVybnMge251bWJlcn0gUmVxdWVzdHMnIGlkZW50aWZpZXIuXHJcbiAqL1xyXG52YXIgcmVxdWVzdEFuaW1hdGlvbkZyYW1lJDEgPSAoZnVuY3Rpb24gKCkge1xyXG4gICAgaWYgKHR5cGVvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAvLyBJdCdzIHJlcXVpcmVkIHRvIHVzZSBhIGJvdW5kZWQgZnVuY3Rpb24gYmVjYXVzZSBJRSBzb21ldGltZXMgdGhyb3dzXHJcbiAgICAgICAgLy8gYW4gXCJJbnZhbGlkIGNhbGxpbmcgb2JqZWN0XCIgZXJyb3IgaWYgckFGIGlzIGludm9rZWQgd2l0aG91dCB0aGUgZ2xvYmFsXHJcbiAgICAgICAgLy8gb2JqZWN0IG9uIHRoZSBsZWZ0IGhhbmQgc2lkZS5cclxuICAgICAgICByZXR1cm4gcmVxdWVzdEFuaW1hdGlvbkZyYW1lLmJpbmQoZ2xvYmFsJDEpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZ1bmN0aW9uIChjYWxsYmFjaykgeyByZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7IHJldHVybiBjYWxsYmFjayhEYXRlLm5vdygpKTsgfSwgMTAwMCAvIDYwKTsgfTtcclxufSkoKTtcblxuLy8gRGVmaW5lcyBtaW5pbXVtIHRpbWVvdXQgYmVmb3JlIGFkZGluZyBhIHRyYWlsaW5nIGNhbGwuXHJcbnZhciB0cmFpbGluZ1RpbWVvdXQgPSAyO1xyXG4vKipcclxuICogQ3JlYXRlcyBhIHdyYXBwZXIgZnVuY3Rpb24gd2hpY2ggZW5zdXJlcyB0aGF0IHByb3ZpZGVkIGNhbGxiYWNrIHdpbGwgYmVcclxuICogaW52b2tlZCBvbmx5IG9uY2UgZHVyaW5nIHRoZSBzcGVjaWZpZWQgZGVsYXkgcGVyaW9kLlxyXG4gKlxyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFjayAtIEZ1bmN0aW9uIHRvIGJlIGludm9rZWQgYWZ0ZXIgdGhlIGRlbGF5IHBlcmlvZC5cclxuICogQHBhcmFtIHtudW1iZXJ9IGRlbGF5IC0gRGVsYXkgYWZ0ZXIgd2hpY2ggdG8gaW52b2tlIGNhbGxiYWNrLlxyXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259XHJcbiAqL1xyXG5mdW5jdGlvbiB0aHJvdHRsZSAoY2FsbGJhY2ssIGRlbGF5KSB7XHJcbiAgICB2YXIgbGVhZGluZ0NhbGwgPSBmYWxzZSwgdHJhaWxpbmdDYWxsID0gZmFsc2UsIGxhc3RDYWxsVGltZSA9IDA7XHJcbiAgICAvKipcclxuICAgICAqIEludm9rZXMgdGhlIG9yaWdpbmFsIGNhbGxiYWNrIGZ1bmN0aW9uIGFuZCBzY2hlZHVsZXMgbmV3IGludm9jYXRpb24gaWZcclxuICAgICAqIHRoZSBcInByb3h5XCIgd2FzIGNhbGxlZCBkdXJpbmcgY3VycmVudCByZXF1ZXN0LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiByZXNvbHZlUGVuZGluZygpIHtcclxuICAgICAgICBpZiAobGVhZGluZ0NhbGwpIHtcclxuICAgICAgICAgICAgbGVhZGluZ0NhbGwgPSBmYWxzZTtcclxuICAgICAgICAgICAgY2FsbGJhY2soKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRyYWlsaW5nQ2FsbCkge1xyXG4gICAgICAgICAgICBwcm94eSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGJhY2sgaW52b2tlZCBhZnRlciB0aGUgc3BlY2lmaWVkIGRlbGF5LiBJdCB3aWxsIGZ1cnRoZXIgcG9zdHBvbmVcclxuICAgICAqIGludm9jYXRpb24gb2YgdGhlIG9yaWdpbmFsIGZ1bmN0aW9uIGRlbGVnYXRpbmcgaXQgdG8gdGhlXHJcbiAgICAgKiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgKi9cclxuICAgIGZ1bmN0aW9uIHRpbWVvdXRDYWxsYmFjaygpIHtcclxuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUkMShyZXNvbHZlUGVuZGluZyk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFNjaGVkdWxlcyBpbnZvY2F0aW9uIG9mIHRoZSBvcmlnaW5hbCBmdW5jdGlvbi5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgZnVuY3Rpb24gcHJveHkoKSB7XHJcbiAgICAgICAgdmFyIHRpbWVTdGFtcCA9IERhdGUubm93KCk7XHJcbiAgICAgICAgaWYgKGxlYWRpbmdDYWxsKSB7XHJcbiAgICAgICAgICAgIC8vIFJlamVjdCBpbW1lZGlhdGVseSBmb2xsb3dpbmcgY2FsbHMuXHJcbiAgICAgICAgICAgIGlmICh0aW1lU3RhbXAgLSBsYXN0Q2FsbFRpbWUgPCB0cmFpbGluZ1RpbWVvdXQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBTY2hlZHVsZSBuZXcgY2FsbCB0byBiZSBpbiBpbnZva2VkIHdoZW4gdGhlIHBlbmRpbmcgb25lIGlzIHJlc29sdmVkLlxyXG4gICAgICAgICAgICAvLyBUaGlzIGlzIGltcG9ydGFudCBmb3IgXCJ0cmFuc2l0aW9uc1wiIHdoaWNoIG5ldmVyIGFjdHVhbGx5IHN0YXJ0XHJcbiAgICAgICAgICAgIC8vIGltbWVkaWF0ZWx5IHNvIHRoZXJlIGlzIGEgY2hhbmNlIHRoYXQgd2UgbWlnaHQgbWlzcyBvbmUgaWYgY2hhbmdlXHJcbiAgICAgICAgICAgIC8vIGhhcHBlbnMgYW1pZHMgdGhlIHBlbmRpbmcgaW52b2NhdGlvbi5cclxuICAgICAgICAgICAgdHJhaWxpbmdDYWxsID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGxlYWRpbmdDYWxsID0gdHJ1ZTtcclxuICAgICAgICAgICAgdHJhaWxpbmdDYWxsID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQodGltZW91dENhbGxiYWNrLCBkZWxheSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxhc3RDYWxsVGltZSA9IHRpbWVTdGFtcDtcclxuICAgIH1cclxuICAgIHJldHVybiBwcm94eTtcclxufVxuXG4vLyBNaW5pbXVtIGRlbGF5IGJlZm9yZSBpbnZva2luZyB0aGUgdXBkYXRlIG9mIG9ic2VydmVycy5cclxudmFyIFJFRlJFU0hfREVMQVkgPSAyMDtcclxuLy8gQSBsaXN0IG9mIHN1YnN0cmluZ3Mgb2YgQ1NTIHByb3BlcnRpZXMgdXNlZCB0byBmaW5kIHRyYW5zaXRpb24gZXZlbnRzIHRoYXRcclxuLy8gbWlnaHQgYWZmZWN0IGRpbWVuc2lvbnMgb2Ygb2JzZXJ2ZWQgZWxlbWVudHMuXHJcbnZhciB0cmFuc2l0aW9uS2V5cyA9IFsndG9wJywgJ3JpZ2h0JywgJ2JvdHRvbScsICdsZWZ0JywgJ3dpZHRoJywgJ2hlaWdodCcsICdzaXplJywgJ3dlaWdodCddO1xyXG4vLyBDaGVjayBpZiBNdXRhdGlvbk9ic2VydmVyIGlzIGF2YWlsYWJsZS5cclxudmFyIG11dGF0aW9uT2JzZXJ2ZXJTdXBwb3J0ZWQgPSB0eXBlb2YgTXV0YXRpb25PYnNlcnZlciAhPT0gJ3VuZGVmaW5lZCc7XHJcbi8qKlxyXG4gKiBTaW5nbGV0b24gY29udHJvbGxlciBjbGFzcyB3aGljaCBoYW5kbGVzIHVwZGF0ZXMgb2YgUmVzaXplT2JzZXJ2ZXIgaW5zdGFuY2VzLlxyXG4gKi9cclxudmFyIFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlciA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiBSZXNpemVPYnNlcnZlckNvbnRyb2xsZXIuXHJcbiAgICAgKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgZnVuY3Rpb24gUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyKCkge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEluZGljYXRlcyB3aGV0aGVyIERPTSBsaXN0ZW5lcnMgaGF2ZSBiZWVuIGFkZGVkLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHByaXZhdGUge2Jvb2xlYW59XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5jb25uZWN0ZWRfID0gZmFsc2U7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGVsbHMgdGhhdCBjb250cm9sbGVyIGhhcyBzdWJzY3JpYmVkIGZvciBNdXRhdGlvbiBFdmVudHMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAcHJpdmF0ZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLm11dGF0aW9uRXZlbnRzQWRkZWRfID0gZmFsc2U7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogS2VlcHMgcmVmZXJlbmNlIHRvIHRoZSBpbnN0YW5jZSBvZiBNdXRhdGlvbk9ic2VydmVyLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHByaXZhdGUge011dGF0aW9uT2JzZXJ2ZXJ9XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5tdXRhdGlvbnNPYnNlcnZlcl8gPSBudWxsO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEEgbGlzdCBvZiBjb25uZWN0ZWQgb2JzZXJ2ZXJzLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHByaXZhdGUge0FycmF5PFJlc2l6ZU9ic2VydmVyU1BJPn1cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLm9ic2VydmVyc18gPSBbXTtcclxuICAgICAgICB0aGlzLm9uVHJhbnNpdGlvbkVuZF8gPSB0aGlzLm9uVHJhbnNpdGlvbkVuZF8uYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLnJlZnJlc2ggPSB0aHJvdHRsZSh0aGlzLnJlZnJlc2guYmluZCh0aGlzKSwgUkVGUkVTSF9ERUxBWSk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIEFkZHMgb2JzZXJ2ZXIgdG8gb2JzZXJ2ZXJzIGxpc3QuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtSZXNpemVPYnNlcnZlclNQSX0gb2JzZXJ2ZXIgLSBPYnNlcnZlciB0byBiZSBhZGRlZC5cclxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZlckNvbnRyb2xsZXIucHJvdG90eXBlLmFkZE9ic2VydmVyID0gZnVuY3Rpb24gKG9ic2VydmVyKSB7XHJcbiAgICAgICAgaWYgKCF+dGhpcy5vYnNlcnZlcnNfLmluZGV4T2Yob2JzZXJ2ZXIpKSB7XHJcbiAgICAgICAgICAgIHRoaXMub2JzZXJ2ZXJzXy5wdXNoKG9ic2VydmVyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gQWRkIGxpc3RlbmVycyBpZiB0aGV5IGhhdmVuJ3QgYmVlbiBhZGRlZCB5ZXQuXHJcbiAgICAgICAgaWYgKCF0aGlzLmNvbm5lY3RlZF8pIHtcclxuICAgICAgICAgICAgdGhpcy5jb25uZWN0XygpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIFJlbW92ZXMgb2JzZXJ2ZXIgZnJvbSBvYnNlcnZlcnMgbGlzdC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1Jlc2l6ZU9ic2VydmVyU1BJfSBvYnNlcnZlciAtIE9ic2VydmVyIHRvIGJlIHJlbW92ZWQuXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyLnByb3RvdHlwZS5yZW1vdmVPYnNlcnZlciA9IGZ1bmN0aW9uIChvYnNlcnZlcikge1xyXG4gICAgICAgIHZhciBvYnNlcnZlcnMgPSB0aGlzLm9ic2VydmVyc187XHJcbiAgICAgICAgdmFyIGluZGV4ID0gb2JzZXJ2ZXJzLmluZGV4T2Yob2JzZXJ2ZXIpO1xyXG4gICAgICAgIC8vIFJlbW92ZSBvYnNlcnZlciBpZiBpdCdzIHByZXNlbnQgaW4gcmVnaXN0cnkuXHJcbiAgICAgICAgaWYgKH5pbmRleCkge1xyXG4gICAgICAgICAgICBvYnNlcnZlcnMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gUmVtb3ZlIGxpc3RlbmVycyBpZiBjb250cm9sbGVyIGhhcyBubyBjb25uZWN0ZWQgb2JzZXJ2ZXJzLlxyXG4gICAgICAgIGlmICghb2JzZXJ2ZXJzLmxlbmd0aCAmJiB0aGlzLmNvbm5lY3RlZF8pIHtcclxuICAgICAgICAgICAgdGhpcy5kaXNjb25uZWN0XygpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIEludm9rZXMgdGhlIHVwZGF0ZSBvZiBvYnNlcnZlcnMuIEl0IHdpbGwgY29udGludWUgcnVubmluZyB1cGRhdGVzIGluc29mYXJcclxuICAgICAqIGl0IGRldGVjdHMgY2hhbmdlcy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyLnByb3RvdHlwZS5yZWZyZXNoID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHZhciBjaGFuZ2VzRGV0ZWN0ZWQgPSB0aGlzLnVwZGF0ZU9ic2VydmVyc18oKTtcclxuICAgICAgICAvLyBDb250aW51ZSBydW5uaW5nIHVwZGF0ZXMgaWYgY2hhbmdlcyBoYXZlIGJlZW4gZGV0ZWN0ZWQgYXMgdGhlcmUgbWlnaHRcclxuICAgICAgICAvLyBiZSBmdXR1cmUgb25lcyBjYXVzZWQgYnkgQ1NTIHRyYW5zaXRpb25zLlxyXG4gICAgICAgIGlmIChjaGFuZ2VzRGV0ZWN0ZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlcyBldmVyeSBvYnNlcnZlciBmcm9tIG9ic2VydmVycyBsaXN0IGFuZCBub3RpZmllcyB0aGVtIG9mIHF1ZXVlZFxyXG4gICAgICogZW50cmllcy5cclxuICAgICAqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgXCJ0cnVlXCIgaWYgYW55IG9ic2VydmVyIGhhcyBkZXRlY3RlZCBjaGFuZ2VzIGluXHJcbiAgICAgKiAgICAgIGRpbWVuc2lvbnMgb2YgaXQncyBlbGVtZW50cy5cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyLnByb3RvdHlwZS51cGRhdGVPYnNlcnZlcnNfID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIC8vIENvbGxlY3Qgb2JzZXJ2ZXJzIHRoYXQgaGF2ZSBhY3RpdmUgb2JzZXJ2YXRpb25zLlxyXG4gICAgICAgIHZhciBhY3RpdmVPYnNlcnZlcnMgPSB0aGlzLm9ic2VydmVyc18uZmlsdGVyKGZ1bmN0aW9uIChvYnNlcnZlcikge1xyXG4gICAgICAgICAgICByZXR1cm4gb2JzZXJ2ZXIuZ2F0aGVyQWN0aXZlKCksIG9ic2VydmVyLmhhc0FjdGl2ZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8vIERlbGl2ZXIgbm90aWZpY2F0aW9ucyBpbiBhIHNlcGFyYXRlIGN5Y2xlIGluIG9yZGVyIHRvIGF2b2lkIGFueVxyXG4gICAgICAgIC8vIGNvbGxpc2lvbnMgYmV0d2VlbiBvYnNlcnZlcnMsIGUuZy4gd2hlbiBtdWx0aXBsZSBpbnN0YW5jZXMgb2ZcclxuICAgICAgICAvLyBSZXNpemVPYnNlcnZlciBhcmUgdHJhY2tpbmcgdGhlIHNhbWUgZWxlbWVudCBhbmQgdGhlIGNhbGxiYWNrIG9mIG9uZVxyXG4gICAgICAgIC8vIG9mIHRoZW0gY2hhbmdlcyBjb250ZW50IGRpbWVuc2lvbnMgb2YgdGhlIG9ic2VydmVkIHRhcmdldC4gU29tZXRpbWVzXHJcbiAgICAgICAgLy8gdGhpcyBtYXkgcmVzdWx0IGluIG5vdGlmaWNhdGlvbnMgYmVpbmcgYmxvY2tlZCBmb3IgdGhlIHJlc3Qgb2Ygb2JzZXJ2ZXJzLlxyXG4gICAgICAgIGFjdGl2ZU9ic2VydmVycy5mb3JFYWNoKGZ1bmN0aW9uIChvYnNlcnZlcikgeyByZXR1cm4gb2JzZXJ2ZXIuYnJvYWRjYXN0QWN0aXZlKCk7IH0pO1xyXG4gICAgICAgIHJldHVybiBhY3RpdmVPYnNlcnZlcnMubGVuZ3RoID4gMDtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemVzIERPTSBsaXN0ZW5lcnMuXHJcbiAgICAgKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZlckNvbnRyb2xsZXIucHJvdG90eXBlLmNvbm5lY3RfID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIC8vIERvIG5vdGhpbmcgaWYgcnVubmluZyBpbiBhIG5vbi1icm93c2VyIGVudmlyb25tZW50IG9yIGlmIGxpc3RlbmVyc1xyXG4gICAgICAgIC8vIGhhdmUgYmVlbiBhbHJlYWR5IGFkZGVkLlxyXG4gICAgICAgIGlmICghaXNCcm93c2VyIHx8IHRoaXMuY29ubmVjdGVkXykge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFN1YnNjcmlwdGlvbiB0byB0aGUgXCJUcmFuc2l0aW9uZW5kXCIgZXZlbnQgaXMgdXNlZCBhcyBhIHdvcmthcm91bmQgZm9yXHJcbiAgICAgICAgLy8gZGVsYXllZCB0cmFuc2l0aW9ucy4gVGhpcyB3YXkgaXQncyBwb3NzaWJsZSB0byBjYXB0dXJlIGF0IGxlYXN0IHRoZVxyXG4gICAgICAgIC8vIGZpbmFsIHN0YXRlIG9mIGFuIGVsZW1lbnQuXHJcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndHJhbnNpdGlvbmVuZCcsIHRoaXMub25UcmFuc2l0aW9uRW5kXyk7XHJcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMucmVmcmVzaCk7XHJcbiAgICAgICAgaWYgKG11dGF0aW9uT2JzZXJ2ZXJTdXBwb3J0ZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5tdXRhdGlvbnNPYnNlcnZlcl8gPSBuZXcgTXV0YXRpb25PYnNlcnZlcih0aGlzLnJlZnJlc2gpO1xyXG4gICAgICAgICAgICB0aGlzLm11dGF0aW9uc09ic2VydmVyXy5vYnNlcnZlKGRvY3VtZW50LCB7XHJcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgY2hpbGRMaXN0OiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgY2hhcmFjdGVyRGF0YTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIHN1YnRyZWU6IHRydWVcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01TdWJ0cmVlTW9kaWZpZWQnLCB0aGlzLnJlZnJlc2gpO1xyXG4gICAgICAgICAgICB0aGlzLm11dGF0aW9uRXZlbnRzQWRkZWRfID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jb25uZWN0ZWRfID0gdHJ1ZTtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIFJlbW92ZXMgRE9NIGxpc3RlbmVycy5cclxuICAgICAqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgKi9cclxuICAgIFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlci5wcm90b3R5cGUuZGlzY29ubmVjdF8gPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgLy8gRG8gbm90aGluZyBpZiBydW5uaW5nIGluIGEgbm9uLWJyb3dzZXIgZW52aXJvbm1lbnQgb3IgaWYgbGlzdGVuZXJzXHJcbiAgICAgICAgLy8gaGF2ZSBiZWVuIGFscmVhZHkgcmVtb3ZlZC5cclxuICAgICAgICBpZiAoIWlzQnJvd3NlciB8fCAhdGhpcy5jb25uZWN0ZWRfKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndHJhbnNpdGlvbmVuZCcsIHRoaXMub25UcmFuc2l0aW9uRW5kXyk7XHJcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMucmVmcmVzaCk7XHJcbiAgICAgICAgaWYgKHRoaXMubXV0YXRpb25zT2JzZXJ2ZXJfKSB7XHJcbiAgICAgICAgICAgIHRoaXMubXV0YXRpb25zT2JzZXJ2ZXJfLmRpc2Nvbm5lY3QoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMubXV0YXRpb25FdmVudHNBZGRlZF8pIHtcclxuICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignRE9NU3VidHJlZU1vZGlmaWVkJywgdGhpcy5yZWZyZXNoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5tdXRhdGlvbnNPYnNlcnZlcl8gPSBudWxsO1xyXG4gICAgICAgIHRoaXMubXV0YXRpb25FdmVudHNBZGRlZF8gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmNvbm5lY3RlZF8gPSBmYWxzZTtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIFwiVHJhbnNpdGlvbmVuZFwiIGV2ZW50IGhhbmRsZXIuXHJcbiAgICAgKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEBwYXJhbSB7VHJhbnNpdGlvbkV2ZW50fSBldmVudFxyXG4gICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgKi9cclxuICAgIFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlci5wcm90b3R5cGUub25UcmFuc2l0aW9uRW5kXyA9IGZ1bmN0aW9uIChfYSkge1xyXG4gICAgICAgIHZhciBfYiA9IF9hLnByb3BlcnR5TmFtZSwgcHJvcGVydHlOYW1lID0gX2IgPT09IHZvaWQgMCA/ICcnIDogX2I7XHJcbiAgICAgICAgLy8gRGV0ZWN0IHdoZXRoZXIgdHJhbnNpdGlvbiBtYXkgYWZmZWN0IGRpbWVuc2lvbnMgb2YgYW4gZWxlbWVudC5cclxuICAgICAgICB2YXIgaXNSZWZsb3dQcm9wZXJ0eSA9IHRyYW5zaXRpb25LZXlzLnNvbWUoZnVuY3Rpb24gKGtleSkge1xyXG4gICAgICAgICAgICByZXR1cm4gISF+cHJvcGVydHlOYW1lLmluZGV4T2Yoa2V5KTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAoaXNSZWZsb3dQcm9wZXJ0eSkge1xyXG4gICAgICAgICAgICB0aGlzLnJlZnJlc2goKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIGluc3RhbmNlIG9mIHRoZSBSZXNpemVPYnNlcnZlckNvbnRyb2xsZXIuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMge1Jlc2l6ZU9ic2VydmVyQ29udHJvbGxlcn1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyLmdldEluc3RhbmNlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5pbnN0YW5jZV8pIHtcclxuICAgICAgICAgICAgdGhpcy5pbnN0YW5jZV8gPSBuZXcgUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmluc3RhbmNlXztcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIEhvbGRzIHJlZmVyZW5jZSB0byB0aGUgY29udHJvbGxlcidzIGluc3RhbmNlLlxyXG4gICAgICpcclxuICAgICAqIEBwcml2YXRlIHtSZXNpemVPYnNlcnZlckNvbnRyb2xsZXJ9XHJcbiAgICAgKi9cclxuICAgIFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlci5pbnN0YW5jZV8gPSBudWxsO1xyXG4gICAgcmV0dXJuIFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlcjtcclxufSgpKTtcblxuLyoqXHJcbiAqIERlZmluZXMgbm9uLXdyaXRhYmxlL2VudW1lcmFibGUgcHJvcGVydGllcyBvZiB0aGUgcHJvdmlkZWQgdGFyZ2V0IG9iamVjdC5cclxuICpcclxuICogQHBhcmFtIHtPYmplY3R9IHRhcmdldCAtIE9iamVjdCBmb3Igd2hpY2ggdG8gZGVmaW5lIHByb3BlcnRpZXMuXHJcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIFByb3BlcnRpZXMgdG8gYmUgZGVmaW5lZC5cclxuICogQHJldHVybnMge09iamVjdH0gVGFyZ2V0IG9iamVjdC5cclxuICovXHJcbnZhciBkZWZpbmVDb25maWd1cmFibGUgPSAoZnVuY3Rpb24gKHRhcmdldCwgcHJvcHMpIHtcclxuICAgIGZvciAodmFyIF9pID0gMCwgX2EgPSBPYmplY3Qua2V5cyhwcm9wcyk7IF9pIDwgX2EubGVuZ3RoOyBfaSsrKSB7XHJcbiAgICAgICAgdmFyIGtleSA9IF9hW19pXTtcclxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHtcclxuICAgICAgICAgICAgdmFsdWU6IHByb3BzW2tleV0sXHJcbiAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxyXG4gICAgICAgICAgICB3cml0YWJsZTogZmFsc2UsXHJcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRhcmdldDtcclxufSk7XG5cbi8qKlxyXG4gKiBSZXR1cm5zIHRoZSBnbG9iYWwgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCBwcm92aWRlZCBlbGVtZW50LlxyXG4gKlxyXG4gKiBAcGFyYW0ge09iamVjdH0gdGFyZ2V0XHJcbiAqIEByZXR1cm5zIHtPYmplY3R9XHJcbiAqL1xyXG52YXIgZ2V0V2luZG93T2YgPSAoZnVuY3Rpb24gKHRhcmdldCkge1xyXG4gICAgLy8gQXNzdW1lIHRoYXQgdGhlIGVsZW1lbnQgaXMgYW4gaW5zdGFuY2Ugb2YgTm9kZSwgd2hpY2ggbWVhbnMgdGhhdCBpdFxyXG4gICAgLy8gaGFzIHRoZSBcIm93bmVyRG9jdW1lbnRcIiBwcm9wZXJ0eSBmcm9tIHdoaWNoIHdlIGNhbiByZXRyaWV2ZSBhXHJcbiAgICAvLyBjb3JyZXNwb25kaW5nIGdsb2JhbCBvYmplY3QuXHJcbiAgICB2YXIgb3duZXJHbG9iYWwgPSB0YXJnZXQgJiYgdGFyZ2V0Lm93bmVyRG9jdW1lbnQgJiYgdGFyZ2V0Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc7XHJcbiAgICAvLyBSZXR1cm4gdGhlIGxvY2FsIGdsb2JhbCBvYmplY3QgaWYgaXQncyBub3QgcG9zc2libGUgZXh0cmFjdCBvbmUgZnJvbVxyXG4gICAgLy8gcHJvdmlkZWQgZWxlbWVudC5cclxuICAgIHJldHVybiBvd25lckdsb2JhbCB8fCBnbG9iYWwkMTtcclxufSk7XG5cbi8vIFBsYWNlaG9sZGVyIG9mIGFuIGVtcHR5IGNvbnRlbnQgcmVjdGFuZ2xlLlxyXG52YXIgZW1wdHlSZWN0ID0gY3JlYXRlUmVjdEluaXQoMCwgMCwgMCwgMCk7XHJcbi8qKlxyXG4gKiBDb252ZXJ0cyBwcm92aWRlZCBzdHJpbmcgdG8gYSBudW1iZXIuXHJcbiAqXHJcbiAqIEBwYXJhbSB7bnVtYmVyfHN0cmluZ30gdmFsdWVcclxuICogQHJldHVybnMge251bWJlcn1cclxuICovXHJcbmZ1bmN0aW9uIHRvRmxvYXQodmFsdWUpIHtcclxuICAgIHJldHVybiBwYXJzZUZsb2F0KHZhbHVlKSB8fCAwO1xyXG59XHJcbi8qKlxyXG4gKiBFeHRyYWN0cyBib3JkZXJzIHNpemUgZnJvbSBwcm92aWRlZCBzdHlsZXMuXHJcbiAqXHJcbiAqIEBwYXJhbSB7Q1NTU3R5bGVEZWNsYXJhdGlvbn0gc3R5bGVzXHJcbiAqIEBwYXJhbSB7Li4uc3RyaW5nfSBwb3NpdGlvbnMgLSBCb3JkZXJzIHBvc2l0aW9ucyAodG9wLCByaWdodCwgLi4uKVxyXG4gKiBAcmV0dXJucyB7bnVtYmVyfVxyXG4gKi9cclxuZnVuY3Rpb24gZ2V0Qm9yZGVyc1NpemUoc3R5bGVzKSB7XHJcbiAgICB2YXIgcG9zaXRpb25zID0gW107XHJcbiAgICBmb3IgKHZhciBfaSA9IDE7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykge1xyXG4gICAgICAgIHBvc2l0aW9uc1tfaSAtIDFdID0gYXJndW1lbnRzW19pXTtcclxuICAgIH1cclxuICAgIHJldHVybiBwb3NpdGlvbnMucmVkdWNlKGZ1bmN0aW9uIChzaXplLCBwb3NpdGlvbikge1xyXG4gICAgICAgIHZhciB2YWx1ZSA9IHN0eWxlc1snYm9yZGVyLScgKyBwb3NpdGlvbiArICctd2lkdGgnXTtcclxuICAgICAgICByZXR1cm4gc2l6ZSArIHRvRmxvYXQodmFsdWUpO1xyXG4gICAgfSwgMCk7XHJcbn1cclxuLyoqXHJcbiAqIEV4dHJhY3RzIHBhZGRpbmdzIHNpemVzIGZyb20gcHJvdmlkZWQgc3R5bGVzLlxyXG4gKlxyXG4gKiBAcGFyYW0ge0NTU1N0eWxlRGVjbGFyYXRpb259IHN0eWxlc1xyXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBQYWRkaW5ncyBib3guXHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRQYWRkaW5ncyhzdHlsZXMpIHtcclxuICAgIHZhciBwb3NpdGlvbnMgPSBbJ3RvcCcsICdyaWdodCcsICdib3R0b20nLCAnbGVmdCddO1xyXG4gICAgdmFyIHBhZGRpbmdzID0ge307XHJcbiAgICBmb3IgKHZhciBfaSA9IDAsIHBvc2l0aW9uc18xID0gcG9zaXRpb25zOyBfaSA8IHBvc2l0aW9uc18xLmxlbmd0aDsgX2krKykge1xyXG4gICAgICAgIHZhciBwb3NpdGlvbiA9IHBvc2l0aW9uc18xW19pXTtcclxuICAgICAgICB2YXIgdmFsdWUgPSBzdHlsZXNbJ3BhZGRpbmctJyArIHBvc2l0aW9uXTtcclxuICAgICAgICBwYWRkaW5nc1twb3NpdGlvbl0gPSB0b0Zsb2F0KHZhbHVlKTtcclxuICAgIH1cclxuICAgIHJldHVybiBwYWRkaW5ncztcclxufVxyXG4vKipcclxuICogQ2FsY3VsYXRlcyBjb250ZW50IHJlY3RhbmdsZSBvZiBwcm92aWRlZCBTVkcgZWxlbWVudC5cclxuICpcclxuICogQHBhcmFtIHtTVkdHcmFwaGljc0VsZW1lbnR9IHRhcmdldCAtIEVsZW1lbnQgY29udGVudCByZWN0YW5nbGUgb2Ygd2hpY2ggbmVlZHNcclxuICogICAgICB0byBiZSBjYWxjdWxhdGVkLlxyXG4gKiBAcmV0dXJucyB7RE9NUmVjdEluaXR9XHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRTVkdDb250ZW50UmVjdCh0YXJnZXQpIHtcclxuICAgIHZhciBiYm94ID0gdGFyZ2V0LmdldEJCb3goKTtcclxuICAgIHJldHVybiBjcmVhdGVSZWN0SW5pdCgwLCAwLCBiYm94LndpZHRoLCBiYm94LmhlaWdodCk7XHJcbn1cclxuLyoqXHJcbiAqIENhbGN1bGF0ZXMgY29udGVudCByZWN0YW5nbGUgb2YgcHJvdmlkZWQgSFRNTEVsZW1lbnQuXHJcbiAqXHJcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IHRhcmdldCAtIEVsZW1lbnQgZm9yIHdoaWNoIHRvIGNhbGN1bGF0ZSB0aGUgY29udGVudCByZWN0YW5nbGUuXHJcbiAqIEByZXR1cm5zIHtET01SZWN0SW5pdH1cclxuICovXHJcbmZ1bmN0aW9uIGdldEhUTUxFbGVtZW50Q29udGVudFJlY3QodGFyZ2V0KSB7XHJcbiAgICAvLyBDbGllbnQgd2lkdGggJiBoZWlnaHQgcHJvcGVydGllcyBjYW4ndCBiZVxyXG4gICAgLy8gdXNlZCBleGNsdXNpdmVseSBhcyB0aGV5IHByb3ZpZGUgcm91bmRlZCB2YWx1ZXMuXHJcbiAgICB2YXIgY2xpZW50V2lkdGggPSB0YXJnZXQuY2xpZW50V2lkdGgsIGNsaWVudEhlaWdodCA9IHRhcmdldC5jbGllbnRIZWlnaHQ7XHJcbiAgICAvLyBCeSB0aGlzIGNvbmRpdGlvbiB3ZSBjYW4gY2F0Y2ggYWxsIG5vbi1yZXBsYWNlZCBpbmxpbmUsIGhpZGRlbiBhbmRcclxuICAgIC8vIGRldGFjaGVkIGVsZW1lbnRzLiBUaG91Z2ggZWxlbWVudHMgd2l0aCB3aWR0aCAmIGhlaWdodCBwcm9wZXJ0aWVzIGxlc3NcclxuICAgIC8vIHRoYW4gMC41IHdpbGwgYmUgZGlzY2FyZGVkIGFzIHdlbGwuXHJcbiAgICAvL1xyXG4gICAgLy8gV2l0aG91dCBpdCB3ZSB3b3VsZCBuZWVkIHRvIGltcGxlbWVudCBzZXBhcmF0ZSBtZXRob2RzIGZvciBlYWNoIG9mXHJcbiAgICAvLyB0aG9zZSBjYXNlcyBhbmQgaXQncyBub3QgcG9zc2libGUgdG8gcGVyZm9ybSBhIHByZWNpc2UgYW5kIHBlcmZvcm1hbmNlXHJcbiAgICAvLyBlZmZlY3RpdmUgdGVzdCBmb3IgaGlkZGVuIGVsZW1lbnRzLiBFLmcuIGV2ZW4galF1ZXJ5J3MgJzp2aXNpYmxlJyBmaWx0ZXJcclxuICAgIC8vIGdpdmVzIHdyb25nIHJlc3VsdHMgZm9yIGVsZW1lbnRzIHdpdGggd2lkdGggJiBoZWlnaHQgbGVzcyB0aGFuIDAuNS5cclxuICAgIGlmICghY2xpZW50V2lkdGggJiYgIWNsaWVudEhlaWdodCkge1xyXG4gICAgICAgIHJldHVybiBlbXB0eVJlY3Q7XHJcbiAgICB9XHJcbiAgICB2YXIgc3R5bGVzID0gZ2V0V2luZG93T2YodGFyZ2V0KS5nZXRDb21wdXRlZFN0eWxlKHRhcmdldCk7XHJcbiAgICB2YXIgcGFkZGluZ3MgPSBnZXRQYWRkaW5ncyhzdHlsZXMpO1xyXG4gICAgdmFyIGhvcml6UGFkID0gcGFkZGluZ3MubGVmdCArIHBhZGRpbmdzLnJpZ2h0O1xyXG4gICAgdmFyIHZlcnRQYWQgPSBwYWRkaW5ncy50b3AgKyBwYWRkaW5ncy5ib3R0b207XHJcbiAgICAvLyBDb21wdXRlZCBzdHlsZXMgb2Ygd2lkdGggJiBoZWlnaHQgYXJlIGJlaW5nIHVzZWQgYmVjYXVzZSB0aGV5IGFyZSB0aGVcclxuICAgIC8vIG9ubHkgZGltZW5zaW9ucyBhdmFpbGFibGUgdG8gSlMgdGhhdCBjb250YWluIG5vbi1yb3VuZGVkIHZhbHVlcy4gSXQgY291bGRcclxuICAgIC8vIGJlIHBvc3NpYmxlIHRvIHV0aWxpemUgdGhlIGdldEJvdW5kaW5nQ2xpZW50UmVjdCBpZiBvbmx5IGl0J3MgZGF0YSB3YXNuJ3RcclxuICAgIC8vIGFmZmVjdGVkIGJ5IENTUyB0cmFuc2Zvcm1hdGlvbnMgbGV0IGFsb25lIHBhZGRpbmdzLCBib3JkZXJzIGFuZCBzY3JvbGwgYmFycy5cclxuICAgIHZhciB3aWR0aCA9IHRvRmxvYXQoc3R5bGVzLndpZHRoKSwgaGVpZ2h0ID0gdG9GbG9hdChzdHlsZXMuaGVpZ2h0KTtcclxuICAgIC8vIFdpZHRoICYgaGVpZ2h0IGluY2x1ZGUgcGFkZGluZ3MgYW5kIGJvcmRlcnMgd2hlbiB0aGUgJ2JvcmRlci1ib3gnIGJveFxyXG4gICAgLy8gbW9kZWwgaXMgYXBwbGllZCAoZXhjZXB0IGZvciBJRSkuXHJcbiAgICBpZiAoc3R5bGVzLmJveFNpemluZyA9PT0gJ2JvcmRlci1ib3gnKSB7XHJcbiAgICAgICAgLy8gRm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIHJlcXVpcmVkIHRvIGhhbmRsZSBJbnRlcm5ldCBFeHBsb3JlciB3aGljaFxyXG4gICAgICAgIC8vIGRvZXNuJ3QgaW5jbHVkZSBwYWRkaW5ncyBhbmQgYm9yZGVycyB0byBjb21wdXRlZCBDU1MgZGltZW5zaW9ucy5cclxuICAgICAgICAvL1xyXG4gICAgICAgIC8vIFdlIGNhbiBzYXkgdGhhdCBpZiBDU1MgZGltZW5zaW9ucyArIHBhZGRpbmdzIGFyZSBlcXVhbCB0byB0aGUgXCJjbGllbnRcIlxyXG4gICAgICAgIC8vIHByb3BlcnRpZXMgdGhlbiBpdCdzIGVpdGhlciBJRSwgYW5kIHRodXMgd2UgZG9uJ3QgbmVlZCB0byBzdWJ0cmFjdFxyXG4gICAgICAgIC8vIGFueXRoaW5nLCBvciBhbiBlbGVtZW50IG1lcmVseSBkb2Vzbid0IGhhdmUgcGFkZGluZ3MvYm9yZGVycyBzdHlsZXMuXHJcbiAgICAgICAgaWYgKE1hdGgucm91bmQod2lkdGggKyBob3JpelBhZCkgIT09IGNsaWVudFdpZHRoKSB7XHJcbiAgICAgICAgICAgIHdpZHRoIC09IGdldEJvcmRlcnNTaXplKHN0eWxlcywgJ2xlZnQnLCAncmlnaHQnKSArIGhvcml6UGFkO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoTWF0aC5yb3VuZChoZWlnaHQgKyB2ZXJ0UGFkKSAhPT0gY2xpZW50SGVpZ2h0KSB7XHJcbiAgICAgICAgICAgIGhlaWdodCAtPSBnZXRCb3JkZXJzU2l6ZShzdHlsZXMsICd0b3AnLCAnYm90dG9tJykgKyB2ZXJ0UGFkO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIEZvbGxvd2luZyBzdGVwcyBjYW4ndCBiZSBhcHBsaWVkIHRvIHRoZSBkb2N1bWVudCdzIHJvb3QgZWxlbWVudCBhcyBpdHNcclxuICAgIC8vIGNsaWVudFtXaWR0aC9IZWlnaHRdIHByb3BlcnRpZXMgcmVwcmVzZW50IHZpZXdwb3J0IGFyZWEgb2YgdGhlIHdpbmRvdy5cclxuICAgIC8vIEJlc2lkZXMsIGl0J3MgYXMgd2VsbCBub3QgbmVjZXNzYXJ5IGFzIHRoZSA8aHRtbD4gaXRzZWxmIG5laXRoZXIgaGFzXHJcbiAgICAvLyByZW5kZXJlZCBzY3JvbGwgYmFycyBub3IgaXQgY2FuIGJlIGNsaXBwZWQuXHJcbiAgICBpZiAoIWlzRG9jdW1lbnRFbGVtZW50KHRhcmdldCkpIHtcclxuICAgICAgICAvLyBJbiBzb21lIGJyb3dzZXJzIChvbmx5IGluIEZpcmVmb3gsIGFjdHVhbGx5KSBDU1Mgd2lkdGggJiBoZWlnaHRcclxuICAgICAgICAvLyBpbmNsdWRlIHNjcm9sbCBiYXJzIHNpemUgd2hpY2ggY2FuIGJlIHJlbW92ZWQgYXQgdGhpcyBzdGVwIGFzIHNjcm9sbFxyXG4gICAgICAgIC8vIGJhcnMgYXJlIHRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiByb3VuZGVkIGRpbWVuc2lvbnMgKyBwYWRkaW5nc1xyXG4gICAgICAgIC8vIGFuZCBcImNsaWVudFwiIHByb3BlcnRpZXMsIHRob3VnaCB0aGF0IGlzIG5vdCBhbHdheXMgdHJ1ZSBpbiBDaHJvbWUuXHJcbiAgICAgICAgdmFyIHZlcnRTY3JvbGxiYXIgPSBNYXRoLnJvdW5kKHdpZHRoICsgaG9yaXpQYWQpIC0gY2xpZW50V2lkdGg7XHJcbiAgICAgICAgdmFyIGhvcml6U2Nyb2xsYmFyID0gTWF0aC5yb3VuZChoZWlnaHQgKyB2ZXJ0UGFkKSAtIGNsaWVudEhlaWdodDtcclxuICAgICAgICAvLyBDaHJvbWUgaGFzIGEgcmF0aGVyIHdlaXJkIHJvdW5kaW5nIG9mIFwiY2xpZW50XCIgcHJvcGVydGllcy5cclxuICAgICAgICAvLyBFLmcuIGZvciBhbiBlbGVtZW50IHdpdGggY29udGVudCB3aWR0aCBvZiAzMTQuMnB4IGl0IHNvbWV0aW1lcyBnaXZlc1xyXG4gICAgICAgIC8vIHRoZSBjbGllbnQgd2lkdGggb2YgMzE1cHggYW5kIGZvciB0aGUgd2lkdGggb2YgMzE0LjdweCBpdCBtYXkgZ2l2ZVxyXG4gICAgICAgIC8vIDMxNHB4LiBBbmQgaXQgZG9lc24ndCBoYXBwZW4gYWxsIHRoZSB0aW1lLiBTbyBqdXN0IGlnbm9yZSB0aGlzIGRlbHRhXHJcbiAgICAgICAgLy8gYXMgYSBub24tcmVsZXZhbnQuXHJcbiAgICAgICAgaWYgKE1hdGguYWJzKHZlcnRTY3JvbGxiYXIpICE9PSAxKSB7XHJcbiAgICAgICAgICAgIHdpZHRoIC09IHZlcnRTY3JvbGxiYXI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChNYXRoLmFicyhob3JpelNjcm9sbGJhcikgIT09IDEpIHtcclxuICAgICAgICAgICAgaGVpZ2h0IC09IGhvcml6U2Nyb2xsYmFyO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBjcmVhdGVSZWN0SW5pdChwYWRkaW5ncy5sZWZ0LCBwYWRkaW5ncy50b3AsIHdpZHRoLCBoZWlnaHQpO1xyXG59XHJcbi8qKlxyXG4gKiBDaGVja3Mgd2hldGhlciBwcm92aWRlZCBlbGVtZW50IGlzIGFuIGluc3RhbmNlIG9mIHRoZSBTVkdHcmFwaGljc0VsZW1lbnQuXHJcbiAqXHJcbiAqIEBwYXJhbSB7RWxlbWVudH0gdGFyZ2V0IC0gRWxlbWVudCB0byBiZSBjaGVja2VkLlxyXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cclxuICovXHJcbnZhciBpc1NWR0dyYXBoaWNzRWxlbWVudCA9IChmdW5jdGlvbiAoKSB7XHJcbiAgICAvLyBTb21lIGJyb3dzZXJzLCBuYW1lbHkgSUUgYW5kIEVkZ2UsIGRvbid0IGhhdmUgdGhlIFNWR0dyYXBoaWNzRWxlbWVudFxyXG4gICAgLy8gaW50ZXJmYWNlLlxyXG4gICAgaWYgKHR5cGVvZiBTVkdHcmFwaGljc0VsZW1lbnQgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQpIHsgcmV0dXJuIHRhcmdldCBpbnN0YW5jZW9mIGdldFdpbmRvd09mKHRhcmdldCkuU1ZHR3JhcGhpY3NFbGVtZW50OyB9O1xyXG4gICAgfVxyXG4gICAgLy8gSWYgaXQncyBzbywgdGhlbiBjaGVjayB0aGF0IGVsZW1lbnQgaXMgYXQgbGVhc3QgYW4gaW5zdGFuY2Ugb2YgdGhlXHJcbiAgICAvLyBTVkdFbGVtZW50IGFuZCB0aGF0IGl0IGhhcyB0aGUgXCJnZXRCQm94XCIgbWV0aG9kLlxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWV4dHJhLXBhcmVuc1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQpIHsgcmV0dXJuICh0YXJnZXQgaW5zdGFuY2VvZiBnZXRXaW5kb3dPZih0YXJnZXQpLlNWR0VsZW1lbnQgJiZcclxuICAgICAgICB0eXBlb2YgdGFyZ2V0LmdldEJCb3ggPT09ICdmdW5jdGlvbicpOyB9O1xyXG59KSgpO1xyXG4vKipcclxuICogQ2hlY2tzIHdoZXRoZXIgcHJvdmlkZWQgZWxlbWVudCBpcyBhIGRvY3VtZW50IGVsZW1lbnQgKDxodG1sPikuXHJcbiAqXHJcbiAqIEBwYXJhbSB7RWxlbWVudH0gdGFyZ2V0IC0gRWxlbWVudCB0byBiZSBjaGVja2VkLlxyXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cclxuICovXHJcbmZ1bmN0aW9uIGlzRG9jdW1lbnRFbGVtZW50KHRhcmdldCkge1xyXG4gICAgcmV0dXJuIHRhcmdldCA9PT0gZ2V0V2luZG93T2YodGFyZ2V0KS5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XHJcbn1cclxuLyoqXHJcbiAqIENhbGN1bGF0ZXMgYW4gYXBwcm9wcmlhdGUgY29udGVudCByZWN0YW5nbGUgZm9yIHByb3ZpZGVkIGh0bWwgb3Igc3ZnIGVsZW1lbnQuXHJcbiAqXHJcbiAqIEBwYXJhbSB7RWxlbWVudH0gdGFyZ2V0IC0gRWxlbWVudCBjb250ZW50IHJlY3RhbmdsZSBvZiB3aGljaCBuZWVkcyB0byBiZSBjYWxjdWxhdGVkLlxyXG4gKiBAcmV0dXJucyB7RE9NUmVjdEluaXR9XHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRDb250ZW50UmVjdCh0YXJnZXQpIHtcclxuICAgIGlmICghaXNCcm93c2VyKSB7XHJcbiAgICAgICAgcmV0dXJuIGVtcHR5UmVjdDtcclxuICAgIH1cclxuICAgIGlmIChpc1NWR0dyYXBoaWNzRWxlbWVudCh0YXJnZXQpKSB7XHJcbiAgICAgICAgcmV0dXJuIGdldFNWR0NvbnRlbnRSZWN0KHRhcmdldCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZ2V0SFRNTEVsZW1lbnRDb250ZW50UmVjdCh0YXJnZXQpO1xyXG59XHJcbi8qKlxyXG4gKiBDcmVhdGVzIHJlY3RhbmdsZSB3aXRoIGFuIGludGVyZmFjZSBvZiB0aGUgRE9NUmVjdFJlYWRPbmx5LlxyXG4gKiBTcGVjOiBodHRwczovL2RyYWZ0cy5meHRmLm9yZy9nZW9tZXRyeS8jZG9tcmVjdHJlYWRvbmx5XHJcbiAqXHJcbiAqIEBwYXJhbSB7RE9NUmVjdEluaXR9IHJlY3RJbml0IC0gT2JqZWN0IHdpdGggcmVjdGFuZ2xlJ3MgeC95IGNvb3JkaW5hdGVzIGFuZCBkaW1lbnNpb25zLlxyXG4gKiBAcmV0dXJucyB7RE9NUmVjdFJlYWRPbmx5fVxyXG4gKi9cclxuZnVuY3Rpb24gY3JlYXRlUmVhZE9ubHlSZWN0KF9hKSB7XHJcbiAgICB2YXIgeCA9IF9hLngsIHkgPSBfYS55LCB3aWR0aCA9IF9hLndpZHRoLCBoZWlnaHQgPSBfYS5oZWlnaHQ7XHJcbiAgICAvLyBJZiBET01SZWN0UmVhZE9ubHkgaXMgYXZhaWxhYmxlIHVzZSBpdCBhcyBhIHByb3RvdHlwZSBmb3IgdGhlIHJlY3RhbmdsZS5cclxuICAgIHZhciBDb25zdHIgPSB0eXBlb2YgRE9NUmVjdFJlYWRPbmx5ICE9PSAndW5kZWZpbmVkJyA/IERPTVJlY3RSZWFkT25seSA6IE9iamVjdDtcclxuICAgIHZhciByZWN0ID0gT2JqZWN0LmNyZWF0ZShDb25zdHIucHJvdG90eXBlKTtcclxuICAgIC8vIFJlY3RhbmdsZSdzIHByb3BlcnRpZXMgYXJlIG5vdCB3cml0YWJsZSBhbmQgbm9uLWVudW1lcmFibGUuXHJcbiAgICBkZWZpbmVDb25maWd1cmFibGUocmVjdCwge1xyXG4gICAgICAgIHg6IHgsIHk6IHksIHdpZHRoOiB3aWR0aCwgaGVpZ2h0OiBoZWlnaHQsXHJcbiAgICAgICAgdG9wOiB5LFxyXG4gICAgICAgIHJpZ2h0OiB4ICsgd2lkdGgsXHJcbiAgICAgICAgYm90dG9tOiBoZWlnaHQgKyB5LFxyXG4gICAgICAgIGxlZnQ6IHhcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHJlY3Q7XHJcbn1cclxuLyoqXHJcbiAqIENyZWF0ZXMgRE9NUmVjdEluaXQgb2JqZWN0IGJhc2VkIG9uIHRoZSBwcm92aWRlZCBkaW1lbnNpb25zIGFuZCB0aGUgeC95IGNvb3JkaW5hdGVzLlxyXG4gKiBTcGVjOiBodHRwczovL2RyYWZ0cy5meHRmLm9yZy9nZW9tZXRyeS8jZGljdGRlZi1kb21yZWN0aW5pdFxyXG4gKlxyXG4gKiBAcGFyYW0ge251bWJlcn0geCAtIFggY29vcmRpbmF0ZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IHkgLSBZIGNvb3JkaW5hdGUuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSB3aWR0aCAtIFJlY3RhbmdsZSdzIHdpZHRoLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gaGVpZ2h0IC0gUmVjdGFuZ2xlJ3MgaGVpZ2h0LlxyXG4gKiBAcmV0dXJucyB7RE9NUmVjdEluaXR9XHJcbiAqL1xyXG5mdW5jdGlvbiBjcmVhdGVSZWN0SW5pdCh4LCB5LCB3aWR0aCwgaGVpZ2h0KSB7XHJcbiAgICByZXR1cm4geyB4OiB4LCB5OiB5LCB3aWR0aDogd2lkdGgsIGhlaWdodDogaGVpZ2h0IH07XHJcbn1cblxuLyoqXHJcbiAqIENsYXNzIHRoYXQgaXMgcmVzcG9uc2libGUgZm9yIGNvbXB1dGF0aW9ucyBvZiB0aGUgY29udGVudCByZWN0YW5nbGUgb2ZcclxuICogcHJvdmlkZWQgRE9NIGVsZW1lbnQgYW5kIGZvciBrZWVwaW5nIHRyYWNrIG9mIGl0J3MgY2hhbmdlcy5cclxuICovXHJcbnZhciBSZXNpemVPYnNlcnZhdGlvbiA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBSZXNpemVPYnNlcnZhdGlvbi5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge0VsZW1lbnR9IHRhcmdldCAtIEVsZW1lbnQgdG8gYmUgb2JzZXJ2ZWQuXHJcbiAgICAgKi9cclxuICAgIGZ1bmN0aW9uIFJlc2l6ZU9ic2VydmF0aW9uKHRhcmdldCkge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEJyb2FkY2FzdGVkIHdpZHRoIG9mIGNvbnRlbnQgcmVjdGFuZ2xlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmJyb2FkY2FzdFdpZHRoID0gMDtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBCcm9hZGNhc3RlZCBoZWlnaHQgb2YgY29udGVudCByZWN0YW5nbGUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuYnJvYWRjYXN0SGVpZ2h0ID0gMDtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBSZWZlcmVuY2UgdG8gdGhlIGxhc3Qgb2JzZXJ2ZWQgY29udGVudCByZWN0YW5nbGUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAcHJpdmF0ZSB7RE9NUmVjdEluaXR9XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5jb250ZW50UmVjdF8gPSBjcmVhdGVSZWN0SW5pdCgwLCAwLCAwLCAwKTtcclxuICAgICAgICB0aGlzLnRhcmdldCA9IHRhcmdldDtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlcyBjb250ZW50IHJlY3RhbmdsZSBhbmQgdGVsbHMgd2hldGhlciBpdCdzIHdpZHRoIG9yIGhlaWdodCBwcm9wZXJ0aWVzXHJcbiAgICAgKiBoYXZlIGNoYW5nZWQgc2luY2UgdGhlIGxhc3QgYnJvYWRjYXN0LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHtib29sZWFufVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZhdGlvbi5wcm90b3R5cGUuaXNBY3RpdmUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdmFyIHJlY3QgPSBnZXRDb250ZW50UmVjdCh0aGlzLnRhcmdldCk7XHJcbiAgICAgICAgdGhpcy5jb250ZW50UmVjdF8gPSByZWN0O1xyXG4gICAgICAgIHJldHVybiAocmVjdC53aWR0aCAhPT0gdGhpcy5icm9hZGNhc3RXaWR0aCB8fFxyXG4gICAgICAgICAgICByZWN0LmhlaWdodCAhPT0gdGhpcy5icm9hZGNhc3RIZWlnaHQpO1xyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlcyAnYnJvYWRjYXN0V2lkdGgnIGFuZCAnYnJvYWRjYXN0SGVpZ2h0JyBwcm9wZXJ0aWVzIHdpdGggYSBkYXRhXHJcbiAgICAgKiBmcm9tIHRoZSBjb3JyZXNwb25kaW5nIHByb3BlcnRpZXMgb2YgdGhlIGxhc3Qgb2JzZXJ2ZWQgY29udGVudCByZWN0YW5nbGUuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMge0RPTVJlY3RJbml0fSBMYXN0IG9ic2VydmVkIGNvbnRlbnQgcmVjdGFuZ2xlLlxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZhdGlvbi5wcm90b3R5cGUuYnJvYWRjYXN0UmVjdCA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB2YXIgcmVjdCA9IHRoaXMuY29udGVudFJlY3RfO1xyXG4gICAgICAgIHRoaXMuYnJvYWRjYXN0V2lkdGggPSByZWN0LndpZHRoO1xyXG4gICAgICAgIHRoaXMuYnJvYWRjYXN0SGVpZ2h0ID0gcmVjdC5oZWlnaHQ7XHJcbiAgICAgICAgcmV0dXJuIHJlY3Q7XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIFJlc2l6ZU9ic2VydmF0aW9uO1xyXG59KCkpO1xuXG52YXIgUmVzaXplT2JzZXJ2ZXJFbnRyeSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBSZXNpemVPYnNlcnZlckVudHJ5LlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7RWxlbWVudH0gdGFyZ2V0IC0gRWxlbWVudCB0aGF0IGlzIGJlaW5nIG9ic2VydmVkLlxyXG4gICAgICogQHBhcmFtIHtET01SZWN0SW5pdH0gcmVjdEluaXQgLSBEYXRhIG9mIHRoZSBlbGVtZW50J3MgY29udGVudCByZWN0YW5nbGUuXHJcbiAgICAgKi9cclxuICAgIGZ1bmN0aW9uIFJlc2l6ZU9ic2VydmVyRW50cnkodGFyZ2V0LCByZWN0SW5pdCkge1xyXG4gICAgICAgIHZhciBjb250ZW50UmVjdCA9IGNyZWF0ZVJlYWRPbmx5UmVjdChyZWN0SW5pdCk7XHJcbiAgICAgICAgLy8gQWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpY2F0aW9uIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBub3Qgd3JpdGFibGVcclxuICAgICAgICAvLyBhbmQgYXJlIGFsc28gbm90IGVudW1lcmFibGUgaW4gdGhlIG5hdGl2ZSBpbXBsZW1lbnRhdGlvbi5cclxuICAgICAgICAvL1xyXG4gICAgICAgIC8vIFByb3BlcnR5IGFjY2Vzc29ycyBhcmUgbm90IGJlaW5nIHVzZWQgYXMgdGhleSdkIHJlcXVpcmUgdG8gZGVmaW5lIGFcclxuICAgICAgICAvLyBwcml2YXRlIFdlYWtNYXAgc3RvcmFnZSB3aGljaCBtYXkgY2F1c2UgbWVtb3J5IGxlYWtzIGluIGJyb3dzZXJzIHRoYXRcclxuICAgICAgICAvLyBkb24ndCBzdXBwb3J0IHRoaXMgdHlwZSBvZiBjb2xsZWN0aW9ucy5cclxuICAgICAgICBkZWZpbmVDb25maWd1cmFibGUodGhpcywgeyB0YXJnZXQ6IHRhcmdldCwgY29udGVudFJlY3Q6IGNvbnRlbnRSZWN0IH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFJlc2l6ZU9ic2VydmVyRW50cnk7XHJcbn0oKSk7XG5cbnZhciBSZXNpemVPYnNlcnZlclNQSSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiBSZXNpemVPYnNlcnZlci5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1Jlc2l6ZU9ic2VydmVyQ2FsbGJhY2t9IGNhbGxiYWNrIC0gQ2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBpcyBpbnZva2VkXHJcbiAgICAgKiAgICAgIHdoZW4gb25lIG9mIHRoZSBvYnNlcnZlZCBlbGVtZW50cyBjaGFuZ2VzIGl0J3MgY29udGVudCBkaW1lbnNpb25zLlxyXG4gICAgICogQHBhcmFtIHtSZXNpemVPYnNlcnZlckNvbnRyb2xsZXJ9IGNvbnRyb2xsZXIgLSBDb250cm9sbGVyIGluc3RhbmNlIHdoaWNoXHJcbiAgICAgKiAgICAgIGlzIHJlc3BvbnNpYmxlIGZvciB0aGUgdXBkYXRlcyBvZiBvYnNlcnZlci5cclxuICAgICAqIEBwYXJhbSB7UmVzaXplT2JzZXJ2ZXJ9IGNhbGxiYWNrQ3R4IC0gUmVmZXJlbmNlIHRvIHRoZSBwdWJsaWNcclxuICAgICAqICAgICAgUmVzaXplT2JzZXJ2ZXIgaW5zdGFuY2Ugd2hpY2ggd2lsbCBiZSBwYXNzZWQgdG8gY2FsbGJhY2sgZnVuY3Rpb24uXHJcbiAgICAgKi9cclxuICAgIGZ1bmN0aW9uIFJlc2l6ZU9ic2VydmVyU1BJKGNhbGxiYWNrLCBjb250cm9sbGVyLCBjYWxsYmFja0N0eCkge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIENvbGxlY3Rpb24gb2YgcmVzaXplIG9ic2VydmF0aW9ucyB0aGF0IGhhdmUgZGV0ZWN0ZWQgY2hhbmdlcyBpbiBkaW1lbnNpb25zXHJcbiAgICAgICAgICogb2YgZWxlbWVudHMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAcHJpdmF0ZSB7QXJyYXk8UmVzaXplT2JzZXJ2YXRpb24+fVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuYWN0aXZlT2JzZXJ2YXRpb25zXyA9IFtdO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFJlZ2lzdHJ5IG9mIHRoZSBSZXNpemVPYnNlcnZhdGlvbiBpbnN0YW5jZXMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAcHJpdmF0ZSB7TWFwPEVsZW1lbnQsIFJlc2l6ZU9ic2VydmF0aW9uPn1cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLm9ic2VydmF0aW9uc18gPSBuZXcgTWFwU2hpbSgpO1xyXG4gICAgICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIGNhbGxiYWNrIHByb3ZpZGVkIGFzIHBhcmFtZXRlciAxIGlzIG5vdCBhIGZ1bmN0aW9uLicpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNhbGxiYWNrXyA9IGNhbGxiYWNrO1xyXG4gICAgICAgIHRoaXMuY29udHJvbGxlcl8gPSBjb250cm9sbGVyO1xyXG4gICAgICAgIHRoaXMuY2FsbGJhY2tDdHhfID0gY2FsbGJhY2tDdHg7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFN0YXJ0cyBvYnNlcnZpbmcgcHJvdmlkZWQgZWxlbWVudC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge0VsZW1lbnR9IHRhcmdldCAtIEVsZW1lbnQgdG8gYmUgb2JzZXJ2ZWQuXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJTUEkucHJvdG90eXBlLm9ic2VydmUgPSBmdW5jdGlvbiAodGFyZ2V0KSB7XHJcbiAgICAgICAgaWYgKCFhcmd1bWVudHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJzEgYXJndW1lbnQgcmVxdWlyZWQsIGJ1dCBvbmx5IDAgcHJlc2VudC4nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gRG8gbm90aGluZyBpZiBjdXJyZW50IGVudmlyb25tZW50IGRvZXNuJ3QgaGF2ZSB0aGUgRWxlbWVudCBpbnRlcmZhY2UuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBFbGVtZW50ID09PSAndW5kZWZpbmVkJyB8fCAhKEVsZW1lbnQgaW5zdGFuY2VvZiBPYmplY3QpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCEodGFyZ2V0IGluc3RhbmNlb2YgZ2V0V2luZG93T2YodGFyZ2V0KS5FbGVtZW50KSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdwYXJhbWV0ZXIgMSBpcyBub3Qgb2YgdHlwZSBcIkVsZW1lbnRcIi4nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIG9ic2VydmF0aW9ucyA9IHRoaXMub2JzZXJ2YXRpb25zXztcclxuICAgICAgICAvLyBEbyBub3RoaW5nIGlmIGVsZW1lbnQgaXMgYWxyZWFkeSBiZWluZyBvYnNlcnZlZC5cclxuICAgICAgICBpZiAob2JzZXJ2YXRpb25zLmhhcyh0YXJnZXQpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgb2JzZXJ2YXRpb25zLnNldCh0YXJnZXQsIG5ldyBSZXNpemVPYnNlcnZhdGlvbih0YXJnZXQpKTtcclxuICAgICAgICB0aGlzLmNvbnRyb2xsZXJfLmFkZE9ic2VydmVyKHRoaXMpO1xyXG4gICAgICAgIC8vIEZvcmNlIHRoZSB1cGRhdGUgb2Ygb2JzZXJ2YXRpb25zLlxyXG4gICAgICAgIHRoaXMuY29udHJvbGxlcl8ucmVmcmVzaCgpO1xyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogU3RvcHMgb2JzZXJ2aW5nIHByb3ZpZGVkIGVsZW1lbnQuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtFbGVtZW50fSB0YXJnZXQgLSBFbGVtZW50IHRvIHN0b3Agb2JzZXJ2aW5nLlxyXG4gICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgKi9cclxuICAgIFJlc2l6ZU9ic2VydmVyU1BJLnByb3RvdHlwZS51bm9ic2VydmUgPSBmdW5jdGlvbiAodGFyZ2V0KSB7XHJcbiAgICAgICAgaWYgKCFhcmd1bWVudHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJzEgYXJndW1lbnQgcmVxdWlyZWQsIGJ1dCBvbmx5IDAgcHJlc2VudC4nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gRG8gbm90aGluZyBpZiBjdXJyZW50IGVudmlyb25tZW50IGRvZXNuJ3QgaGF2ZSB0aGUgRWxlbWVudCBpbnRlcmZhY2UuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBFbGVtZW50ID09PSAndW5kZWZpbmVkJyB8fCAhKEVsZW1lbnQgaW5zdGFuY2VvZiBPYmplY3QpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCEodGFyZ2V0IGluc3RhbmNlb2YgZ2V0V2luZG93T2YodGFyZ2V0KS5FbGVtZW50KSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdwYXJhbWV0ZXIgMSBpcyBub3Qgb2YgdHlwZSBcIkVsZW1lbnRcIi4nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIG9ic2VydmF0aW9ucyA9IHRoaXMub2JzZXJ2YXRpb25zXztcclxuICAgICAgICAvLyBEbyBub3RoaW5nIGlmIGVsZW1lbnQgaXMgbm90IGJlaW5nIG9ic2VydmVkLlxyXG4gICAgICAgIGlmICghb2JzZXJ2YXRpb25zLmhhcyh0YXJnZXQpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgb2JzZXJ2YXRpb25zLmRlbGV0ZSh0YXJnZXQpO1xyXG4gICAgICAgIGlmICghb2JzZXJ2YXRpb25zLnNpemUpIHtcclxuICAgICAgICAgICAgdGhpcy5jb250cm9sbGVyXy5yZW1vdmVPYnNlcnZlcih0aGlzKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBTdG9wcyBvYnNlcnZpbmcgYWxsIGVsZW1lbnRzLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZlclNQSS5wcm90b3R5cGUuZGlzY29ubmVjdCA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB0aGlzLmNsZWFyQWN0aXZlKCk7XHJcbiAgICAgICAgdGhpcy5vYnNlcnZhdGlvbnNfLmNsZWFyKCk7XHJcbiAgICAgICAgdGhpcy5jb250cm9sbGVyXy5yZW1vdmVPYnNlcnZlcih0aGlzKTtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIENvbGxlY3RzIG9ic2VydmF0aW9uIGluc3RhbmNlcyB0aGUgYXNzb2NpYXRlZCBlbGVtZW50IG9mIHdoaWNoIGhhcyBjaGFuZ2VkXHJcbiAgICAgKiBpdCdzIGNvbnRlbnQgcmVjdGFuZ2xlLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZlclNQSS5wcm90b3R5cGUuZ2F0aGVyQWN0aXZlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XHJcbiAgICAgICAgdGhpcy5jbGVhckFjdGl2ZSgpO1xyXG4gICAgICAgIHRoaXMub2JzZXJ2YXRpb25zXy5mb3JFYWNoKGZ1bmN0aW9uIChvYnNlcnZhdGlvbikge1xyXG4gICAgICAgICAgICBpZiAob2JzZXJ2YXRpb24uaXNBY3RpdmUoKSkge1xyXG4gICAgICAgICAgICAgICAgX3RoaXMuYWN0aXZlT2JzZXJ2YXRpb25zXy5wdXNoKG9ic2VydmF0aW9uKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogSW52b2tlcyBpbml0aWFsIGNhbGxiYWNrIGZ1bmN0aW9uIHdpdGggYSBsaXN0IG9mIFJlc2l6ZU9ic2VydmVyRW50cnlcclxuICAgICAqIGluc3RhbmNlcyBjb2xsZWN0ZWQgZnJvbSBhY3RpdmUgcmVzaXplIG9ic2VydmF0aW9ucy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJTUEkucHJvdG90eXBlLmJyb2FkY2FzdEFjdGl2ZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAvLyBEbyBub3RoaW5nIGlmIG9ic2VydmVyIGRvZXNuJ3QgaGF2ZSBhY3RpdmUgb2JzZXJ2YXRpb25zLlxyXG4gICAgICAgIGlmICghdGhpcy5oYXNBY3RpdmUoKSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBjdHggPSB0aGlzLmNhbGxiYWNrQ3R4XztcclxuICAgICAgICAvLyBDcmVhdGUgUmVzaXplT2JzZXJ2ZXJFbnRyeSBpbnN0YW5jZSBmb3IgZXZlcnkgYWN0aXZlIG9ic2VydmF0aW9uLlxyXG4gICAgICAgIHZhciBlbnRyaWVzID0gdGhpcy5hY3RpdmVPYnNlcnZhdGlvbnNfLm1hcChmdW5jdGlvbiAob2JzZXJ2YXRpb24pIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBSZXNpemVPYnNlcnZlckVudHJ5KG9ic2VydmF0aW9uLnRhcmdldCwgb2JzZXJ2YXRpb24uYnJvYWRjYXN0UmVjdCgpKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmNhbGxiYWNrXy5jYWxsKGN0eCwgZW50cmllcywgY3R4KTtcclxuICAgICAgICB0aGlzLmNsZWFyQWN0aXZlKCk7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBDbGVhcnMgdGhlIGNvbGxlY3Rpb24gb2YgYWN0aXZlIG9ic2VydmF0aW9ucy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJTUEkucHJvdG90eXBlLmNsZWFyQWN0aXZlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHRoaXMuYWN0aXZlT2JzZXJ2YXRpb25zXy5zcGxpY2UoMCk7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBUZWxscyB3aGV0aGVyIG9ic2VydmVyIGhhcyBhY3RpdmUgb2JzZXJ2YXRpb25zLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHtib29sZWFufVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZlclNQSS5wcm90b3R5cGUuaGFzQWN0aXZlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFjdGl2ZU9ic2VydmF0aW9uc18ubGVuZ3RoID4gMDtcclxuICAgIH07XHJcbiAgICByZXR1cm4gUmVzaXplT2JzZXJ2ZXJTUEk7XHJcbn0oKSk7XG5cbi8vIFJlZ2lzdHJ5IG9mIGludGVybmFsIG9ic2VydmVycy4gSWYgV2Vha01hcCBpcyBub3QgYXZhaWxhYmxlIHVzZSBjdXJyZW50IHNoaW1cclxuLy8gZm9yIHRoZSBNYXAgY29sbGVjdGlvbiBhcyBpdCBoYXMgYWxsIHJlcXVpcmVkIG1ldGhvZHMgYW5kIGJlY2F1c2UgV2Vha01hcFxyXG4vLyBjYW4ndCBiZSBmdWxseSBwb2x5ZmlsbGVkIGFueXdheS5cclxudmFyIG9ic2VydmVycyA9IHR5cGVvZiBXZWFrTWFwICE9PSAndW5kZWZpbmVkJyA/IG5ldyBXZWFrTWFwKCkgOiBuZXcgTWFwU2hpbSgpO1xyXG4vKipcclxuICogUmVzaXplT2JzZXJ2ZXIgQVBJLiBFbmNhcHN1bGF0ZXMgdGhlIFJlc2l6ZU9ic2VydmVyIFNQSSBpbXBsZW1lbnRhdGlvblxyXG4gKiBleHBvc2luZyBvbmx5IHRob3NlIG1ldGhvZHMgYW5kIHByb3BlcnRpZXMgdGhhdCBhcmUgZGVmaW5lZCBpbiB0aGUgc3BlYy5cclxuICovXHJcbnZhciBSZXNpemVPYnNlcnZlciA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiBSZXNpemVPYnNlcnZlci5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1Jlc2l6ZU9ic2VydmVyQ2FsbGJhY2t9IGNhbGxiYWNrIC0gQ2FsbGJhY2sgdGhhdCBpcyBpbnZva2VkIHdoZW5cclxuICAgICAqICAgICAgZGltZW5zaW9ucyBvZiB0aGUgb2JzZXJ2ZWQgZWxlbWVudHMgY2hhbmdlLlxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiBSZXNpemVPYnNlcnZlcihjYWxsYmFjaykge1xyXG4gICAgICAgIGlmICghKHRoaXMgaW5zdGFuY2VvZiBSZXNpemVPYnNlcnZlcikpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uLicpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIWFyZ3VtZW50cy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignMSBhcmd1bWVudCByZXF1aXJlZCwgYnV0IG9ubHkgMCBwcmVzZW50LicpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgY29udHJvbGxlciA9IFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpO1xyXG4gICAgICAgIHZhciBvYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlclNQSShjYWxsYmFjaywgY29udHJvbGxlciwgdGhpcyk7XHJcbiAgICAgICAgb2JzZXJ2ZXJzLnNldCh0aGlzLCBvYnNlcnZlcik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gUmVzaXplT2JzZXJ2ZXI7XHJcbn0oKSk7XHJcbi8vIEV4cG9zZSBwdWJsaWMgbWV0aG9kcyBvZiBSZXNpemVPYnNlcnZlci5cclxuW1xyXG4gICAgJ29ic2VydmUnLFxyXG4gICAgJ3Vub2JzZXJ2ZScsXHJcbiAgICAnZGlzY29ubmVjdCdcclxuXS5mb3JFYWNoKGZ1bmN0aW9uIChtZXRob2QpIHtcclxuICAgIFJlc2l6ZU9ic2VydmVyLnByb3RvdHlwZVttZXRob2RdID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHZhciBfYTtcclxuICAgICAgICByZXR1cm4gKF9hID0gb2JzZXJ2ZXJzLmdldCh0aGlzKSlbbWV0aG9kXS5hcHBseShfYSwgYXJndW1lbnRzKTtcclxuICAgIH07XHJcbn0pO1xuXG52YXIgaW5kZXggPSAoZnVuY3Rpb24gKCkge1xyXG4gICAgLy8gRXhwb3J0IGV4aXN0aW5nIGltcGxlbWVudGF0aW9uIGlmIGF2YWlsYWJsZS5cclxuICAgIGlmICh0eXBlb2YgZ2xvYmFsJDEuUmVzaXplT2JzZXJ2ZXIgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgcmV0dXJuIGdsb2JhbCQxLlJlc2l6ZU9ic2VydmVyO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFJlc2l6ZU9ic2VydmVyO1xyXG59KSgpO1xuXG5leHBvcnQgZGVmYXVsdCBpbmRleDtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js\n"); + +/***/ }), + +/***/ "./node_modules/string-convert/camel2hyphen.js": +/*!*****************************************************!*\ + !*** ./node_modules/string-convert/camel2hyphen.js ***! + \*****************************************************/ +/***/ (function(module) { + +eval("var camel2hyphen = function (str) {\n return str\n .replace(/[A-Z]/g, function (match) {\n return '-' + match.toLowerCase();\n })\n .toLowerCase();\n};\n\nmodule.exports = camel2hyphen;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3RyaW5nLWNvbnZlcnQvY2FtZWwyaHlwaGVuLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3N0cmluZy1jb252ZXJ0L2NhbWVsMmh5cGhlbi5qcz82ZTgwIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBjYW1lbDJoeXBoZW4gPSBmdW5jdGlvbiAoc3RyKSB7XG4gIHJldHVybiBzdHJcbiAgICAgICAgICAucmVwbGFjZSgvW0EtWl0vZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICByZXR1cm4gJy0nICsgbWF0Y2gudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC50b0xvd2VyQ2FzZSgpO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBjYW1lbDJoeXBoZW47Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/string-convert/camel2hyphen.js\n"); + +/***/ }), + +/***/ "./node_modules/slick-carousel/slick/ajax-loader.gif": +/*!***********************************************************!*\ + !*** ./node_modules/slick-carousel/slick/ajax-loader.gif ***! + \***********************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +module.exports = __webpack_require__.p + "static/media/ajax-loader.0b80f665.gif"; + +/***/ }), + +/***/ "./node_modules/slick-carousel/slick/fonts/slick.eot": +/*!***********************************************************!*\ + !*** ./node_modules/slick-carousel/slick/fonts/slick.eot ***! + \***********************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +module.exports = __webpack_require__.p + "static/media/slick.25572f22.eot"; + +/***/ }), + +/***/ "./node_modules/slick-carousel/slick/fonts/slick.svg": +/*!***********************************************************!*\ + !*** ./node_modules/slick-carousel/slick/fonts/slick.svg ***! + \***********************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +module.exports = __webpack_require__.p + "static/media/slick.f895cfdf.svg"; + +/***/ }), + +/***/ "./node_modules/slick-carousel/slick/fonts/slick.ttf": +/*!***********************************************************!*\ + !*** ./node_modules/slick-carousel/slick/fonts/slick.ttf ***! + \***********************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +module.exports = __webpack_require__.p + "static/media/slick.6aa1ee46.ttf"; + +/***/ }), + +/***/ "./node_modules/slick-carousel/slick/fonts/slick.woff": +/*!************************************************************!*\ + !*** ./node_modules/slick-carousel/slick/fonts/slick.woff ***! + \************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +module.exports = __webpack_require__.p + "static/media/slick.653a4cbb.woff"; + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js ***! + \*********************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _arrayLikeToArray; }\n/* harmony export */ });\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXJyYXlMaWtlVG9BcnJheS5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQWU7QUFDZjs7QUFFQSx5Q0FBeUMsU0FBUztBQUNsRDtBQUNBOztBQUVBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2FycmF5TGlrZVRvQXJyYXkuanM/MTkxYiJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfYXJyYXlMaWtlVG9BcnJheShhcnIsIGxlbikge1xuICBpZiAobGVuID09IG51bGwgfHwgbGVuID4gYXJyLmxlbmd0aCkgbGVuID0gYXJyLmxlbmd0aDtcblxuICBmb3IgKHZhciBpID0gMCwgYXJyMiA9IG5ldyBBcnJheShsZW4pOyBpIDwgbGVuOyBpKyspIHtcbiAgICBhcnIyW2ldID0gYXJyW2ldO1xuICB9XG5cbiAgcmV0dXJuIGFycjI7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _arrayWithHoles; }\n/* harmony export */ });\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXJyYXlXaXRoSG9sZXMuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFlO0FBQ2Y7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXJyYXlXaXRoSG9sZXMuanM/M2VlMSJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfYXJyYXlXaXRoSG9sZXMoYXJyKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGFycikpIHJldHVybiBhcnI7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js": +/*!**************************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js ***! + \**************************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _assertThisInitialized; }\n/* harmony export */ });\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXNzZXJ0VGhpc0luaXRpYWxpemVkLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBZTtBQUNmO0FBQ0E7QUFDQTs7QUFFQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQuanM/ZWMyZCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpIHtcbiAgaWYgKHNlbGYgPT09IHZvaWQgMCkge1xuICAgIHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTtcbiAgfVxuXG4gIHJldHVybiBzZWxmO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _classCallCheck; }\n/* harmony export */ });\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY2xhc3NDYWxsQ2hlY2suanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2NsYXNzQ2FsbENoZWNrLmpzP2UyZDAiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3Rvcikge1xuICBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7XG4gIH1cbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/createClass.js": +/*!****************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/createClass.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _createClass; }\n/* harmony export */ });\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY3JlYXRlQ2xhc3MuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0Esa0JBQWtCLGtCQUFrQjtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFZTtBQUNmO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jcmVhdGVDbGFzcy5qcz8xNDgwIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07XG4gICAgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlO1xuICAgIGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTtcbiAgICBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfY3JlYXRlQ2xhc3MoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7XG4gIGlmIChwcm90b1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpO1xuICBpZiAoc3RhdGljUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7XG4gIHJldHVybiBDb25zdHJ1Y3Rvcjtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/createClass.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _getPrototypeOf; }\n/* harmony export */ });\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZ2V0UHJvdG90eXBlT2YuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZ2V0UHJvdG90eXBlT2YuanM/NjYyOCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2Yobykge1xuICBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2Yobykge1xuICAgIHJldHVybiBvLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2Yobyk7XG4gIH07XG4gIHJldHVybiBfZ2V0UHJvdG90eXBlT2Yobyk7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/inherits.js": +/*!*************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/inherits.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _inherits; }\n/* harmony export */ });\n/* harmony import */ var _setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setPrototypeOf.js */ \"./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) (0,_setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(subClass, superClass);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaW5oZXJpdHMuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBaUQ7QUFDbEM7QUFDZjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNILGtCQUFrQiw4REFBYztBQUNoQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaW5oZXJpdHMuanM/NmRmMyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc2V0UHJvdG90eXBlT2YgZnJvbSBcIi4vc2V0UHJvdG90eXBlT2YuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykge1xuICBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpO1xuICB9XG5cbiAgc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7XG4gICAgY29uc3RydWN0b3I6IHtcbiAgICAgIHZhbHVlOiBzdWJDbGFzcyxcbiAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfVxuICB9KTtcbiAgaWYgKHN1cGVyQ2xhc3MpIHNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/inherits.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js": +/*!*************************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _iterableToArrayLimit; }\n/* harmony export */ });\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaXRlcmFibGVUb0FycmF5TGltaXQuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFlO0FBQ2Y7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQSw0QkFBNEIsK0JBQStCO0FBQzNEOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTs7QUFFQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9pdGVyYWJsZVRvQXJyYXlMaW1pdC5qcz8yZjBlIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9pdGVyYWJsZVRvQXJyYXlMaW1pdChhcnIsIGkpIHtcbiAgdmFyIF9pID0gYXJyID09IG51bGwgPyBudWxsIDogdHlwZW9mIFN5bWJvbCAhPT0gXCJ1bmRlZmluZWRcIiAmJiBhcnJbU3ltYm9sLml0ZXJhdG9yXSB8fCBhcnJbXCJAQGl0ZXJhdG9yXCJdO1xuXG4gIGlmIChfaSA9PSBudWxsKSByZXR1cm47XG4gIHZhciBfYXJyID0gW107XG4gIHZhciBfbiA9IHRydWU7XG4gIHZhciBfZCA9IGZhbHNlO1xuXG4gIHZhciBfcywgX2U7XG5cbiAgdHJ5IHtcbiAgICBmb3IgKF9pID0gX2kuY2FsbChhcnIpOyAhKF9uID0gKF9zID0gX2kubmV4dCgpKS5kb25lKTsgX24gPSB0cnVlKSB7XG4gICAgICBfYXJyLnB1c2goX3MudmFsdWUpO1xuXG4gICAgICBpZiAoaSAmJiBfYXJyLmxlbmd0aCA9PT0gaSkgYnJlYWs7XG4gICAgfVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICBfZCA9IHRydWU7XG4gICAgX2UgPSBlcnI7XG4gIH0gZmluYWxseSB7XG4gICAgdHJ5IHtcbiAgICAgIGlmICghX24gJiYgX2lbXCJyZXR1cm5cIl0gIT0gbnVsbCkgX2lbXCJyZXR1cm5cIl0oKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgaWYgKF9kKSB0aHJvdyBfZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gX2Fycjtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js": +/*!********************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _nonIterableRest; }\n/* harmony export */ });\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vbm9uSXRlcmFibGVSZXN0LmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBZTtBQUNmO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL25vbkl0ZXJhYmxlUmVzdC5qcz8xODYyIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9ub25JdGVyYWJsZVJlc3QoKSB7XG4gIHRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIik7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js": +/*!******************************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js ***! + \******************************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _possibleConstructorReturn; }\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/typeof */ \"./node_modules/@babel/runtime/helpers/esm/typeof.js\");\n/* harmony import */ var _assertThisInitialized_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./assertThisInitialized.js */ \"./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js\");\n\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && ((0,_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return (0,_assertThisInitialized_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(self);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vcG9zc2libGVDb25zdHJ1Y3RvclJldHVybi5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBb0Q7QUFDVztBQUNoRDtBQUNmLGVBQWUseUVBQU87QUFDdEI7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQSxTQUFTLHFFQUFxQjtBQUM5QiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vcG9zc2libGVDb25zdHJ1Y3RvclJldHVybi5qcz8zOWZkIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfdHlwZW9mIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL3R5cGVvZlwiO1xuaW1wb3J0IGFzc2VydFRoaXNJbml0aWFsaXplZCBmcm9tIFwiLi9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHNlbGYsIGNhbGwpIHtcbiAgaWYgKGNhbGwgJiYgKF90eXBlb2YoY2FsbCkgPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGNhbGwgPT09IFwiZnVuY3Rpb25cIikpIHtcbiAgICByZXR1cm4gY2FsbDtcbiAgfSBlbHNlIGlmIChjYWxsICE9PSB2b2lkIDApIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWRcIik7XG4gIH1cblxuICByZXR1cm4gYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _setPrototypeOf; }\n/* harmony export */ });\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vc2V0UHJvdG90eXBlT2YuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vc2V0UHJvdG90eXBlT2YuanM/MmM2OSJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkge1xuICBfc2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHtcbiAgICBvLl9fcHJvdG9fXyA9IHA7XG4gICAgcmV0dXJuIG87XG4gIH07XG5cbiAgcmV0dXJuIF9zZXRQcm90b3R5cGVPZihvLCBwKTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/slicedToArray.js": +/*!******************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js ***! + \******************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _slicedToArray; }\n/* harmony export */ });\n/* harmony import */ var _arrayWithHoles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayWithHoles.js */ \"./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\");\n/* harmony import */ var _iterableToArrayLimit_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iterableToArrayLimit.js */ \"./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\");\n/* harmony import */ var _unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./unsupportedIterableToArray.js */ \"./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\");\n/* harmony import */ var _nonIterableRest_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nonIterableRest.js */ \"./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\");\n\n\n\n\nfunction _slicedToArray(arr, i) {\n return (0,_arrayWithHoles_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(arr) || (0,_iterableToArrayLimit_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(arr, i) || (0,_unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(arr, i) || (0,_nonIterableRest_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])();\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vc2xpY2VkVG9BcnJheS5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFpRDtBQUNZO0FBQ1k7QUFDdEI7QUFDcEM7QUFDZixTQUFTLDhEQUFjLFNBQVMsb0VBQW9CLFlBQVksMEVBQTBCLFlBQVksK0RBQWU7QUFDckgiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3NsaWNlZFRvQXJyYXkuanM/Y2Y4OCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXJyYXlXaXRoSG9sZXMgZnJvbSBcIi4vYXJyYXlXaXRoSG9sZXMuanNcIjtcbmltcG9ydCBpdGVyYWJsZVRvQXJyYXlMaW1pdCBmcm9tIFwiLi9pdGVyYWJsZVRvQXJyYXlMaW1pdC5qc1wiO1xuaW1wb3J0IHVuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IGZyb20gXCIuL3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5LmpzXCI7XG5pbXBvcnQgbm9uSXRlcmFibGVSZXN0IGZyb20gXCIuL25vbkl0ZXJhYmxlUmVzdC5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX3NsaWNlZFRvQXJyYXkoYXJyLCBpKSB7XG4gIHJldHVybiBhcnJheVdpdGhIb2xlcyhhcnIpIHx8IGl0ZXJhYmxlVG9BcnJheUxpbWl0KGFyciwgaSkgfHwgdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkoYXJyLCBpKSB8fCBub25JdGVyYWJsZVJlc3QoKTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/typeof.js": +/*!***********************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/typeof.js ***! + \***********************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _typeof; }\n/* harmony export */ });\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdHlwZW9mLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBZTtBQUNmOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3R5cGVvZi5qcz9hZDE5Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7XG4gIFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjtcblxuICBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHtcbiAgICBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHtcbiAgICAgIHJldHVybiB0eXBlb2Ygb2JqO1xuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7XG4gICAgICByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIF90eXBlb2Yob2JqKTtcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/typeof.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js ***! + \*******************************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _unsupportedIterableToArray; }\n/* harmony export */ });\n/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ \"./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(o, minLen);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBcUQ7QUFDdEM7QUFDZjtBQUNBLG9DQUFvQyxnRUFBZ0I7QUFDcEQ7QUFDQTtBQUNBO0FBQ0Esc0ZBQXNGLGdFQUFnQjtBQUN0RyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkuanM/ODliMyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXJyYXlMaWtlVG9BcnJheSBmcm9tIFwiLi9hcnJheUxpa2VUb0FycmF5LmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkobywgbWluTGVuKSB7XG4gIGlmICghbykgcmV0dXJuO1xuICBpZiAodHlwZW9mIG8gPT09IFwic3RyaW5nXCIpIHJldHVybiBhcnJheUxpa2VUb0FycmF5KG8sIG1pbkxlbik7XG4gIHZhciBuID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pLnNsaWNlKDgsIC0xKTtcbiAgaWYgKG4gPT09IFwiT2JqZWN0XCIgJiYgby5jb25zdHJ1Y3RvcikgbiA9IG8uY29uc3RydWN0b3IubmFtZTtcbiAgaWYgKG4gPT09IFwiTWFwXCIgfHwgbiA9PT0gXCJTZXRcIikgcmV0dXJuIEFycmF5LmZyb20obyk7XG4gIGlmIChuID09PSBcIkFyZ3VtZW50c1wiIHx8IC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKSByZXR1cm4gYXJyYXlMaWtlVG9BcnJheShvLCBtaW5MZW4pO1xufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\n"); + +/***/ }), + +/***/ "./src/data/sections/about-info1.json": +/*!********************************************!*\ + !*** ./src/data/sections/about-info1.json ***! + \********************************************/ +/***/ (function(module) { + +"use strict"; +module.exports = JSON.parse('{"id":1,"title":"Who We Are ?","paragraph1":"We provide business establishment services in the free zone with comprehensive solutions for entrepreneurs, which reduces the burdens and complexities associated with establishing a business in the Emirates. As a one-stop platform for entrepreneurs, we ensure a seamless experience by offering a range of business support services in a customer-centric environment making us the best choice for obtaining business licenses in the UAE.","paragraph2":"With over 2,000 business activities, our region offers a wide range of business licenses in various sectors, allowing entrepreneurs to explore countless business opportunities. Whether you work in the publishing field or are considering establishing a commercial, industrial or service company, we provide the necessary licenses and modern facilities to meet your project requirements"}'); + +/***/ }), + +/***/ "./src/data/sections/clients.json": +/*!****************************************!*\ + !*** ./src/data/sections/clients.json ***! + \****************************************/ +/***/ (function(module) { + +"use strict"; +module.exports = JSON.parse('[{"id":1,"lightImage":"/img/clients/brands/light/client1.webp","darkImage":"/img/clients/brands/dark/01.png","url":"www.Vie.com"},{"id":2,"lightImage":"/img/clients/brands/light/client2.webp","darkImage":"/img/clients/brands/dark/02.png","url":"www.Vie.com"},{"id":3,"lightImage":"/img/clients/brands/light/client3.webp","darkImage":"/img/clients/brands/dark/03.png","url":"www.Vie.com"},{"id":4,"lightImage":"/img/clients/brands/light/client4.webp","darkImage":"/img/clients/brands/dark/04.png","url":"www.Vie.com"},{"id":5,"lightImage":"/img/clients/brands/light/client5.webp","darkImage":"/img/clients/brands/dark/05.png","url":"www.Vie.com"},{"id":6,"lightImage":"/img/clients/brands/light/client6.webp","darkImage":"/img/clients/brands/dark/06.png","url":"www.Vie.com"},{"id":7,"lightImage":"/img/clients/brands/light/client7.webp","darkImage":"/img/clients/brands/dark/07.png","url":"www.Vie.com"},{"id":8,"lightImage":"/img/clients/brands/light/client8.webp","darkImage":"/img/clients/brands/dark/08.png","url":"www.Vie.com"}]'); + +/***/ }), + +/***/ "./src/data/sections/features.json": +/*!*****************************************!*\ + !*** ./src/data/sections/features.json ***! + \*****************************************/ +/***/ (function(module) { + +"use strict"; +module.exports = JSON.parse('[{"id":1,"icon":"pe-7s-paint-bucket","title":"Marketing services","content":"To achieve success in the local market, it requires effective marketing, whether through electronic or non-electronic media"},{"id":2,"icon":"pe-7s-phone","title":"Restructuring projects","content":"Business Hub offers restructuring projects in a way that serves the interest of business continuity by reducing expenses and reemploying the workforce correctly."},{"id":3,"icon":"pe-7s-display1","title":"Commercial brokerage","content":"Mediation in buying and selling operations: We mediate between sellers and buyers to ensure that deals are achieved in a profitable manner for both parties."},{"id":4,"icon":"pe-7s-diskette","title":"Commercial representation","content":"Business Hub provides commercial representation services to companies inside and outside the UAE, provided that our role is limited to representing other companies."}]'); + +/***/ }), + +/***/ "./src/data/sections/features1.json": +/*!******************************************!*\ + !*** ./src/data/sections/features1.json ***! + \******************************************/ +/***/ (function(module) { + +"use strict"; +module.exports = JSON.parse('[{"id":1,"icon":"pe-7s-paint-bucket","title":"Investment opportunities","content":"In the era of innovation and development, companies and entrepreneurs are racing to achieve success and excellence in the global business market."},{"id":2,"icon":"pe-7s-phone","title":"Establishing projects","content":"The UAE is one of the most attractive destinations for entrepreneurship in the world, and is characterized by an encouraging environment and advanced regulatory facilities."},{"id":3,"icon":"pe-7s-display1","title":"Project development","content":"Business Hub provides project development services as it includes experts in the field of marketing and sales and is one of the most important companies in commercial brokerage "},{"id":4,"icon":"pe-7s-diskette","title":"Project management","content":" Business Hub provides project management services and works to provide all the employees necessary to manage your project and helps you reduce the cost of your operational budget."}]'); + +/***/ }), + +/***/ "./src/data/sections/features2.json": +/*!******************************************!*\ + !*** ./src/data/sections/features2.json ***! + \******************************************/ +/***/ (function(module) { + +"use strict"; +module.exports = JSON.parse('[{"id":1,"icon":"pe-7s-paint-bucket","title":"Petroleum consulting","content":" We provide consultations and solutions in the oil field in the oil fields and oil refineries sector, assessing the extent of the damage and finding alternative solutions. "},{"id":2,"icon":"pe-7s-phone","title":"Marketing consulting","content":"BUSINESS HUB provides marketing consulting service as a specialized service aimed at enhancing the success of companies in the market…."},{"id":3,"icon":"pe-7s-display1","title":"Economic advice","content":"Economic consulting service as part of our range of specialized services. We work to help companies understand and analyze economic dynamics..."}]'); + +/***/ }), + +/***/ "./src/data/sections/team.json": +/*!*************************************!*\ + !*** ./src/data/sections/team.json ***! + \*************************************/ +/***/ (function(module) { + +"use strict"; +module.exports = JSON.parse('{"teams":[{"id":1,"image":"/img/team/01.webp","title":"Stephanie Lawrence","sub":"CEO, Colabrio Media"},{"id":2,"image":"/img/team/02.webp","title":"Alex Regelman","sub":"CEO, Colabrio Media"},{"id":3,"image":"/img/team/03.webp","title":"Stacey Stamper","sub":"CEO, Colabrio Media"},{"id":4,"image":"/img/team/04.webp","title":"Stephanie Lawrence","sub":"CEO, Colabrio Media"},{"id":5,"image":"/img/team/05.webp","title":"Stephanie Lawrence","sub":"CEO, Colabrio Media"},{"id":6,"image":"/img/team/06.webp","title":"Alex Regelman","sub":"CEO, Colabrio Media"},{"id":7,"image":"/img/team/07.webp","title":"Stacey Stamper","sub":"CEO, Colabrio Media"},{"id":8,"image":"/img/team/08.webp","title":"Stephanie Lawrence","sub":"CEO, Colabrio Media"},{"id":9,"image":"/img/team/09.webp","title":"Stephanie Lawrence","sub":"CEO, Colabrio Media"},{"id":10,"image":"/img/team/10.webp","title":"Alex Regelman","sub":"CEO, Colabrio Media"},{"id":11,"image":"/img/team/11.webp","title":"Stacey Stamper","sub":"CEO, Colabrio Media"},{"id":12,"image":"/img/team/12.webp","title":"Stephanie Lawrence","sub":"CEO, Colabrio Media"}],"skills":[{"id":1,"text":"UI / UX Design","value":"90%"},{"id":2,"text":"Apps Development","value":"80%"}]}'); + +/***/ }) + +}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); } +/******/ __webpack_require__.O(0, ["pages/_app","main"], function() { return __webpack_exec__("./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2Fservices&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cservices%5Cindex.jsx!"); }); +/******/ var __webpack_exports__ = __webpack_require__.O(); +/******/ _N_E = __webpack_exports__; +/******/ } +]); \ No newline at end of file diff --git a/.next/static/chunks/polyfills.js b/.next/static/chunks/polyfills.js new file mode 100644 index 0000000..5b230b6 --- /dev/null +++ b/.next/static/chunks/polyfills.js @@ -0,0 +1 @@ +!function(){var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function e(t){var e={exports:{}};return t(e,e.exports),e.exports}var r=function(t){return t&&t.Math==Math&&t},n=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof t&&t)||Function("return this")(),o=function(t){try{return!!t()}catch(t){return!0}},i=!o(function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}),a={}.propertyIsEnumerable,u=Object.getOwnPropertyDescriptor,s={f:u&&!a.call({1:2},1)?function(t){var e=u(this,t);return!!e&&e.enumerable}:a},c=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},f={}.toString,l=function(t){return f.call(t).slice(8,-1)},h="".split,p=o(function(){return!Object("z").propertyIsEnumerable(0)})?function(t){return"String"==l(t)?h.call(t,""):Object(t)}:Object,d=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t},v=function(t){return p(d(t))},g=function(t){return"object"==typeof t?null!==t:"function"==typeof t},y=function(t,e){if(!g(t))return t;var r,n;if(e&&"function"==typeof(r=t.toString)&&!g(n=r.call(t)))return n;if("function"==typeof(r=t.valueOf)&&!g(n=r.call(t)))return n;if(!e&&"function"==typeof(r=t.toString)&&!g(n=r.call(t)))return n;throw TypeError("Can't convert object to primitive value")},m={}.hasOwnProperty,b=function(t,e){return m.call(t,e)},w=n.document,S=g(w)&&g(w.createElement),E=function(t){return S?w.createElement(t):{}},x=!i&&!o(function(){return 7!=Object.defineProperty(E("div"),"a",{get:function(){return 7}}).a}),A=Object.getOwnPropertyDescriptor,O={f:i?A:function(t,e){if(t=v(t),e=y(e,!0),x)try{return A(t,e)}catch(t){}if(b(t,e))return c(!s.f.call(t,e),t[e])}},R=function(t){if(!g(t))throw TypeError(String(t)+" is not an object");return t},j=Object.defineProperty,P={f:i?j:function(t,e,r){if(R(t),e=y(e,!0),R(r),x)try{return j(t,e,r)}catch(t){}if("get"in r||"set"in r)throw TypeError("Accessors not supported");return"value"in r&&(t[e]=r.value),t}},I=i?function(t,e,r){return P.f(t,e,c(1,r))}:function(t,e,r){return t[e]=r,t},T=function(t,e){try{I(n,t,e)}catch(r){n[t]=e}return e},k="__core-js_shared__",L=n[k]||T(k,{}),U=Function.toString;"function"!=typeof L.inspectSource&&(L.inspectSource=function(t){return U.call(t)});var M,_,N,C=L.inspectSource,F=n.WeakMap,B="function"==typeof F&&/native code/.test(C(F)),D=!1,q=e(function(t){(t.exports=function(t,e){return L[t]||(L[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.6.5",mode:"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})}),z=0,W=Math.random(),K=function(t){return"Symbol("+String(void 0===t?"":t)+")_"+(++z+W).toString(36)},G=q("keys"),$=function(t){return G[t]||(G[t]=K(t))},V={};if(B){var H=new(0,n.WeakMap),X=H.get,Y=H.has,J=H.set;M=function(t,e){return J.call(H,t,e),e},_=function(t){return X.call(H,t)||{}},N=function(t){return Y.call(H,t)}}else{var Q=$("state");V[Q]=!0,M=function(t,e){return I(t,Q,e),e},_=function(t){return b(t,Q)?t[Q]:{}},N=function(t){return b(t,Q)}}var Z,tt={set:M,get:_,has:N,enforce:function(t){return N(t)?_(t):M(t,{})},getterFor:function(t){return function(e){var r;if(!g(e)||(r=_(e)).type!==t)throw TypeError("Incompatible receiver, "+t+" required");return r}}},et=e(function(t){var e=tt.get,r=tt.enforce,o=String(String).split("String");(t.exports=function(t,e,i,a){var u=!!a&&!!a.unsafe,s=!!a&&!!a.enumerable,c=!!a&&!!a.noTargetGet;"function"==typeof i&&("string"!=typeof e||b(i,"name")||I(i,"name",e),r(i).source=o.join("string"==typeof e?e:"")),t!==n?(u?!c&&t[e]&&(s=!0):delete t[e],s?t[e]=i:I(t,e,i)):s?t[e]=i:T(e,i)})(Function.prototype,"toString",function(){return"function"==typeof this&&e(this).source||C(this)})}),rt=n,nt=function(t){return"function"==typeof t?t:void 0},ot=function(t,e){return arguments.length<2?nt(rt[t])||nt(n[t]):rt[t]&&rt[t][e]||n[t]&&n[t][e]},it=Math.ceil,at=Math.floor,ut=function(t){return isNaN(t=+t)?0:(t>0?at:it)(t)},st=Math.min,ct=function(t){return t>0?st(ut(t),9007199254740991):0},ft=Math.max,lt=Math.min,ht=function(t,e){var r=ut(t);return r<0?ft(r+e,0):lt(r,e)},pt=function(t){return function(e,r,n){var o,i=v(e),a=ct(i.length),u=ht(n,a);if(t&&r!=r){for(;a>u;)if((o=i[u++])!=o)return!0}else for(;a>u;u++)if((t||u in i)&&i[u]===r)return t||u||0;return!t&&-1}},dt={includes:pt(!0),indexOf:pt(!1)},vt=dt.indexOf,gt=function(t,e){var r,n=v(t),o=0,i=[];for(r in n)!b(V,r)&&b(n,r)&&i.push(r);for(;e.length>o;)b(n,r=e[o++])&&(~vt(i,r)||i.push(r));return i},yt=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],mt=yt.concat("length","prototype"),bt={f:Object.getOwnPropertyNames||function(t){return gt(t,mt)}},wt={f:Object.getOwnPropertySymbols},St=ot("Reflect","ownKeys")||function(t){var e=bt.f(R(t)),r=wt.f;return r?e.concat(r(t)):e},Et=function(t,e){for(var r=St(e),n=P.f,o=O.f,i=0;i<r.length;i++){var a=r[i];b(t,a)||n(t,a,o(e,a))}},xt=/#|\.prototype\./,At=function(t,e){var r=Rt[Ot(t)];return r==Pt||r!=jt&&("function"==typeof e?o(e):!!e)},Ot=At.normalize=function(t){return String(t).replace(xt,".").toLowerCase()},Rt=At.data={},jt=At.NATIVE="N",Pt=At.POLYFILL="P",It=At,Tt=O.f,kt=function(t,e){var r,o,i,a,u,s=t.target,c=t.global,f=t.stat;if(r=c?n:f?n[s]||T(s,{}):(n[s]||{}).prototype)for(o in e){if(a=e[o],i=t.noTargetGet?(u=Tt(r,o))&&u.value:r[o],!It(c?o:s+(f?".":"#")+o,t.forced)&&void 0!==i){if(typeof a==typeof i)continue;Et(a,i)}(t.sham||i&&i.sham)&&I(a,"sham",!0),et(r,o,a,t)}},Lt=function(t){return Object(d(t))},Ut=Math.min,Mt=[].copyWithin||function(t,e){var r=Lt(this),n=ct(r.length),o=ht(t,n),i=ht(e,n),a=arguments.length>2?arguments[2]:void 0,u=Ut((void 0===a?n:ht(a,n))-i,n-o),s=1;for(i<o&&o<i+u&&(s=-1,i+=u-1,o+=u-1);u-- >0;)i in r?r[o]=r[i]:delete r[o],o+=s,i+=s;return r},_t=!!Object.getOwnPropertySymbols&&!o(function(){return!String(Symbol())}),Nt=_t&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,Ct=q("wks"),Ft=n.Symbol,Bt=Nt?Ft:Ft&&Ft.withoutSetter||K,Dt=function(t){return b(Ct,t)||(Ct[t]=_t&&b(Ft,t)?Ft[t]:Bt("Symbol."+t)),Ct[t]},qt=Object.keys||function(t){return gt(t,yt)},zt=i?Object.defineProperties:function(t,e){R(t);for(var r,n=qt(e),o=n.length,i=0;o>i;)P.f(t,r=n[i++],e[r]);return t},Wt=ot("document","documentElement"),Kt=$("IE_PROTO"),Gt=function(){},$t=function(t){return"<script>"+t+"<\/script>"},Vt=function(){try{Z=document.domain&&new ActiveXObject("htmlfile")}catch(t){}var t,e;Vt=Z?function(t){t.write($t("")),t.close();var e=t.parentWindow.Object;return t=null,e}(Z):((e=E("iframe")).style.display="none",Wt.appendChild(e),e.src=String("javascript:"),(t=e.contentWindow.document).open(),t.write($t("document.F=Object")),t.close(),t.F);for(var r=yt.length;r--;)delete Vt.prototype[yt[r]];return Vt()};V[Kt]=!0;var Ht=Object.create||function(t,e){var r;return null!==t?(Gt.prototype=R(t),r=new Gt,Gt.prototype=null,r[Kt]=t):r=Vt(),void 0===e?r:zt(r,e)},Xt=Dt("unscopables"),Yt=Array.prototype;null==Yt[Xt]&&P.f(Yt,Xt,{configurable:!0,value:Ht(null)});var Jt=function(t){Yt[Xt][t]=!0};kt({target:"Array",proto:!0},{copyWithin:Mt}),Jt("copyWithin");var Qt=function(t){if("function"!=typeof t)throw TypeError(String(t)+" is not a function");return t},Zt=function(t,e,r){if(Qt(t),void 0===e)return t;switch(r){case 0:return function(){return t.call(e)};case 1:return function(r){return t.call(e,r)};case 2:return function(r,n){return t.call(e,r,n)};case 3:return function(r,n,o){return t.call(e,r,n,o)}}return function(){return t.apply(e,arguments)}},te=Function.call,ee=function(t,e,r){return Zt(te,n[t].prototype[e],r)};ee("Array","copyWithin"),kt({target:"Array",proto:!0},{fill:function(t){for(var e=Lt(this),r=ct(e.length),n=arguments.length,o=ht(n>1?arguments[1]:void 0,r),i=n>2?arguments[2]:void 0,a=void 0===i?r:ht(i,r);a>o;)e[o++]=t;return e}}),Jt("fill"),ee("Array","fill");var re=Array.isArray||function(t){return"Array"==l(t)},ne=Dt("species"),oe=function(t,e){var r;return re(t)&&("function"!=typeof(r=t.constructor)||r!==Array&&!re(r.prototype)?g(r)&&null===(r=r[ne])&&(r=void 0):r=void 0),new(void 0===r?Array:r)(0===e?0:e)},ie=[].push,ae=function(t){var e=1==t,r=2==t,n=3==t,o=4==t,i=6==t,a=5==t||i;return function(u,s,c,f){for(var l,h,d=Lt(u),v=p(d),g=Zt(s,c,3),y=ct(v.length),m=0,b=f||oe,w=e?b(u,y):r?b(u,0):void 0;y>m;m++)if((a||m in v)&&(h=g(l=v[m],m,d),t))if(e)w[m]=h;else if(h)switch(t){case 3:return!0;case 5:return l;case 6:return m;case 2:ie.call(w,l)}else if(o)return!1;return i?-1:n||o?o:w}},ue={forEach:ae(0),map:ae(1),filter:ae(2),some:ae(3),every:ae(4),find:ae(5),findIndex:ae(6)},se=Object.defineProperty,ce={},fe=function(t){throw t},le=function(t,e){if(b(ce,t))return ce[t];e||(e={});var r=[][t],n=!!b(e,"ACCESSORS")&&e.ACCESSORS,a=b(e,0)?e[0]:fe,u=b(e,1)?e[1]:void 0;return ce[t]=!!r&&!o(function(){if(n&&!i)return!0;var t={length:-1};n?se(t,1,{enumerable:!0,get:fe}):t[1]=1,r.call(t,a,u)})},he=ue.find,pe="find",de=!0,ve=le(pe);pe in[]&&Array(1).find(function(){de=!1}),kt({target:"Array",proto:!0,forced:de||!ve},{find:function(t){return he(this,t,arguments.length>1?arguments[1]:void 0)}}),Jt(pe),ee("Array","find");var ge=ue.findIndex,ye="findIndex",me=!0,be=le(ye);ye in[]&&Array(1).findIndex(function(){me=!1}),kt({target:"Array",proto:!0,forced:me||!be},{findIndex:function(t){return ge(this,t,arguments.length>1?arguments[1]:void 0)}}),Jt(ye),ee("Array","findIndex");var we=function t(e,r,n,o,i,a,u,s){for(var c,f=i,l=0,h=!!u&&Zt(u,s,3);l<o;){if(l in n){if(c=h?h(n[l],l,r):n[l],a>0&&re(c))f=t(e,r,c,ct(c.length),f,a-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");e[f]=c}f++}l++}return f};kt({target:"Array",proto:!0},{flatMap:function(t){var e,r=Lt(this),n=ct(r.length);return Qt(t),(e=oe(r,0)).length=we(e,r,r,n,0,1,t,arguments.length>1?arguments[1]:void 0),e}}),Jt("flatMap"),ee("Array","flatMap"),kt({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=Lt(this),r=ct(e.length),n=oe(e,0);return n.length=we(n,e,e,r,0,void 0===t?1:ut(t)),n}}),Jt("flat"),ee("Array","flat");var Se,Ee,xe,Ae=function(t){return function(e,r){var n,o,i=String(d(e)),a=ut(r),u=i.length;return a<0||a>=u?t?"":void 0:(n=i.charCodeAt(a))<55296||n>56319||a+1===u||(o=i.charCodeAt(a+1))<56320||o>57343?t?i.charAt(a):n:t?i.slice(a,a+2):o-56320+(n-55296<<10)+65536}},Oe={codeAt:Ae(!1),charAt:Ae(!0)},Re=!o(function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}),je=$("IE_PROTO"),Pe=Object.prototype,Ie=Re?Object.getPrototypeOf:function(t){return t=Lt(t),b(t,je)?t[je]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?Pe:null},Te=Dt("iterator"),ke=!1;[].keys&&("next"in(xe=[].keys())?(Ee=Ie(Ie(xe)))!==Object.prototype&&(Se=Ee):ke=!0),null==Se&&(Se={}),b(Se,Te)||I(Se,Te,function(){return this});var Le={IteratorPrototype:Se,BUGGY_SAFARI_ITERATORS:ke},Ue=P.f,Me=Dt("toStringTag"),_e=function(t,e,r){t&&!b(t=r?t:t.prototype,Me)&&Ue(t,Me,{configurable:!0,value:e})},Ne={},Ce=Le.IteratorPrototype,Fe=function(){return this},Be=function(t,e,r){var n=e+" Iterator";return t.prototype=Ht(Ce,{next:c(1,r)}),_e(t,n,!1),Ne[n]=Fe,t},De=function(t){if(!g(t)&&null!==t)throw TypeError("Can't set "+String(t)+" as a prototype");return t},qe=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,r={};try{(t=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(r,[]),e=r instanceof Array}catch(t){}return function(r,n){return R(r),De(n),e?t.call(r,n):r.__proto__=n,r}}():void 0),ze=Le.IteratorPrototype,We=Le.BUGGY_SAFARI_ITERATORS,Ke=Dt("iterator"),Ge="keys",$e="values",Ve="entries",He=function(){return this},Xe=function(t,e,r,n,o,i,a){Be(r,e,n);var u,s,c,f=function(t){if(t===o&&v)return v;if(!We&&t in p)return p[t];switch(t){case Ge:case $e:case Ve:return function(){return new r(this,t)}}return function(){return new r(this)}},l=e+" Iterator",h=!1,p=t.prototype,d=p[Ke]||p["@@iterator"]||o&&p[o],v=!We&&d||f(o),g="Array"==e&&p.entries||d;if(g&&(u=Ie(g.call(new t)),ze!==Object.prototype&&u.next&&(Ie(u)!==ze&&(qe?qe(u,ze):"function"!=typeof u[Ke]&&I(u,Ke,He)),_e(u,l,!0))),o==$e&&d&&d.name!==$e&&(h=!0,v=function(){return d.call(this)}),p[Ke]!==v&&I(p,Ke,v),Ne[e]=v,o)if(s={values:f($e),keys:i?v:f(Ge),entries:f(Ve)},a)for(c in s)(We||h||!(c in p))&&et(p,c,s[c]);else kt({target:e,proto:!0,forced:We||h},s);return s},Ye=Oe.charAt,Je="String Iterator",Qe=tt.set,Ze=tt.getterFor(Je);Xe(String,"String",function(t){Qe(this,{type:Je,string:String(t),index:0})},function(){var t,e=Ze(this),r=e.string,n=e.index;return n>=r.length?{value:void 0,done:!0}:(t=Ye(r,n),e.index+=t.length,{value:t,done:!1})});var tr=function(t,e,r,n){try{return n?e(R(r)[0],r[1]):e(r)}catch(e){var o=t.return;throw void 0!==o&&R(o.call(t)),e}},er=Dt("iterator"),rr=Array.prototype,nr=function(t){return void 0!==t&&(Ne.Array===t||rr[er]===t)},or=function(t,e,r){var n=y(e);n in t?P.f(t,n,c(0,r)):t[n]=r},ir={};ir[Dt("toStringTag")]="z";var ar="[object z]"===String(ir),ur=Dt("toStringTag"),sr="Arguments"==l(function(){return arguments}()),cr=ar?l:function(t){var e,r,n;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(r=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),ur))?r:sr?l(e):"Object"==(n=l(e))&&"function"==typeof e.callee?"Arguments":n},fr=Dt("iterator"),lr=function(t){if(null!=t)return t[fr]||t["@@iterator"]||Ne[cr(t)]},hr=function(t){var e,r,n,o,i,a,u=Lt(t),s="function"==typeof this?this:Array,c=arguments.length,f=c>1?arguments[1]:void 0,l=void 0!==f,h=lr(u),p=0;if(l&&(f=Zt(f,c>2?arguments[2]:void 0,2)),null==h||s==Array&&nr(h))for(r=new s(e=ct(u.length));e>p;p++)a=l?f(u[p],p):u[p],or(r,p,a);else for(i=(o=h.call(u)).next,r=new s;!(n=i.call(o)).done;p++)a=l?tr(o,f,[n.value,p],!0):n.value,or(r,p,a);return r.length=p,r},pr=Dt("iterator"),dr=!1;try{var vr=0,gr={next:function(){return{done:!!vr++}},return:function(){dr=!0}};gr[pr]=function(){return this},Array.from(gr,function(){throw 2})}catch(t){}var yr=function(t,e){if(!e&&!dr)return!1;var r=!1;try{var n={};n[pr]=function(){return{next:function(){return{done:r=!0}}}},t(n)}catch(t){}return r},mr=!yr(function(t){Array.from(t)});kt({target:"Array",stat:!0,forced:mr},{from:hr});var br=dt.includes,wr=le("indexOf",{ACCESSORS:!0,1:0});kt({target:"Array",proto:!0,forced:!wr},{includes:function(t){return br(this,t,arguments.length>1?arguments[1]:void 0)}}),Jt("includes"),ee("Array","includes");var Sr="Array Iterator",Er=tt.set,xr=tt.getterFor(Sr),Ar=Xe(Array,"Array",function(t,e){Er(this,{type:Sr,target:v(t),index:0,kind:e})},function(){var t=xr(this),e=t.target,r=t.kind,n=t.index++;return!e||n>=e.length?(t.target=void 0,{value:void 0,done:!0}):"keys"==r?{value:n,done:!1}:"values"==r?{value:e[n],done:!1}:{value:[n,e[n]],done:!1}},"values");Ne.Arguments=Ne.Array,Jt("keys"),Jt("values"),Jt("entries"),ee("Array","values");var Or=o(function(){function t(){}return!(Array.of.call(t)instanceof t)});kt({target:"Array",stat:!0,forced:Or},{of:function(){for(var t=0,e=arguments.length,r=new("function"==typeof this?this:Array)(e);e>t;)or(r,t,arguments[t++]);return r.length=e,r}});var Rr=Dt("hasInstance"),jr=Function.prototype;Rr in jr||P.f(jr,Rr,{value:function(t){if("function"!=typeof this||!g(t))return!1;if(!g(this.prototype))return t instanceof this;for(;t=Ie(t);)if(this.prototype===t)return!0;return!1}}),Dt("hasInstance");var Pr=Function.prototype,Ir=Pr.toString,Tr=/^\s*function ([^ (]*)/,kr="name";i&&!(kr in Pr)&&(0,P.f)(Pr,kr,{configurable:!0,get:function(){try{return Ir.call(this).match(Tr)[1]}catch(t){return""}}});var Lr=!o(function(){return Object.isExtensible(Object.preventExtensions({}))}),Ur=e(function(t){var e=P.f,r=K("meta"),n=0,o=Object.isExtensible||function(){return!0},i=function(t){e(t,r,{value:{objectID:"O"+ ++n,weakData:{}}})},a=t.exports={REQUIRED:!1,fastKey:function(t,e){if(!g(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!b(t,r)){if(!o(t))return"F";if(!e)return"E";i(t)}return t[r].objectID},getWeakData:function(t,e){if(!b(t,r)){if(!o(t))return!0;if(!e)return!1;i(t)}return t[r].weakData},onFreeze:function(t){return Lr&&a.REQUIRED&&o(t)&&!b(t,r)&&i(t),t}};V[r]=!0}),Mr=e(function(t){var e=function(t,e){this.stopped=t,this.result=e};(t.exports=function(t,r,n,o,i){var a,u,s,c,f,l,h,p=Zt(r,n,o?2:1);if(i)a=t;else{if("function"!=typeof(u=lr(t)))throw TypeError("Target is not iterable");if(nr(u)){for(s=0,c=ct(t.length);c>s;s++)if((f=o?p(R(h=t[s])[0],h[1]):p(t[s]))&&f instanceof e)return f;return new e(!1)}a=u.call(t)}for(l=a.next;!(h=l.call(a)).done;)if("object"==typeof(f=tr(a,p,h.value,o))&&f&&f instanceof e)return f;return new e(!1)}).stop=function(t){return new e(!0,t)}}),_r=function(t,e,r){if(!(t instanceof e))throw TypeError("Incorrect "+(r?r+" ":"")+"invocation");return t},Nr=function(t,e,r){var n,o;return qe&&"function"==typeof(n=e.constructor)&&n!==r&&g(o=n.prototype)&&o!==r.prototype&&qe(t,o),t},Cr=function(t,e,r){var i=-1!==t.indexOf("Map"),a=-1!==t.indexOf("Weak"),u=i?"set":"add",s=n[t],c=s&&s.prototype,f=s,l={},h=function(t){var e=c[t];et(c,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(a&&!g(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return a&&!g(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(a&&!g(t))&&e.call(this,0===t?0:t)}:function(t,r){return e.call(this,0===t?0:t,r),this})};if(It(t,"function"!=typeof s||!(a||c.forEach&&!o(function(){(new s).entries().next()}))))f=r.getConstructor(e,t,i,u),Ur.REQUIRED=!0;else if(It(t,!0)){var p=new f,d=p[u](a?{}:-0,1)!=p,v=o(function(){p.has(1)}),y=yr(function(t){new s(t)}),m=!a&&o(function(){for(var t=new s,e=5;e--;)t[u](e,e);return!t.has(-0)});y||((f=e(function(e,r){_r(e,f,t);var n=Nr(new s,e,f);return null!=r&&Mr(r,n[u],n,i),n})).prototype=c,c.constructor=f),(v||m)&&(h("delete"),h("has"),i&&h("get")),(m||d)&&h(u),a&&c.clear&&delete c.clear}return l[t]=f,kt({global:!0,forced:f!=s},l),_e(f,t),a||r.setStrong(f,t,i),f},Fr=function(t,e,r){for(var n in e)et(t,n,e[n],r);return t},Br=Dt("species"),Dr=function(t){var e=ot(t);i&&e&&!e[Br]&&(0,P.f)(e,Br,{configurable:!0,get:function(){return this}})},qr=P.f,zr=Ur.fastKey,Wr=tt.set,Kr=tt.getterFor,Gr={getConstructor:function(t,e,r,n){var o=t(function(t,a){_r(t,o,e),Wr(t,{type:e,index:Ht(null),first:void 0,last:void 0,size:0}),i||(t.size=0),null!=a&&Mr(a,t[n],t,r)}),a=Kr(e),u=function(t,e,r){var n,o,u=a(t),c=s(t,e);return c?c.value=r:(u.last=c={index:o=zr(e,!0),key:e,value:r,previous:n=u.last,next:void 0,removed:!1},u.first||(u.first=c),n&&(n.next=c),i?u.size++:t.size++,"F"!==o&&(u.index[o]=c)),t},s=function(t,e){var r,n=a(t),o=zr(e);if("F"!==o)return n.index[o];for(r=n.first;r;r=r.next)if(r.key==e)return r};return Fr(o.prototype,{clear:function(){for(var t=a(this),e=t.index,r=t.first;r;)r.removed=!0,r.previous&&(r.previous=r.previous.next=void 0),delete e[r.index],r=r.next;t.first=t.last=void 0,i?t.size=0:this.size=0},delete:function(t){var e=this,r=a(e),n=s(e,t);if(n){var o=n.next,u=n.previous;delete r.index[n.index],n.removed=!0,u&&(u.next=o),o&&(o.previous=u),r.first==n&&(r.first=o),r.last==n&&(r.last=u),i?r.size--:e.size--}return!!n},forEach:function(t){for(var e,r=a(this),n=Zt(t,arguments.length>1?arguments[1]:void 0,3);e=e?e.next:r.first;)for(n(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!s(this,t)}}),Fr(o.prototype,r?{get:function(t){var e=s(this,t);return e&&e.value},set:function(t,e){return u(this,0===t?0:t,e)}}:{add:function(t){return u(this,t=0===t?0:t,t)}}),i&&qr(o.prototype,"size",{get:function(){return a(this).size}}),o},setStrong:function(t,e,r){var n=e+" Iterator",o=Kr(e),i=Kr(n);Xe(t,e,function(t,e){Wr(this,{type:n,target:t,state:o(t),kind:e,last:void 0})},function(){for(var t=i(this),e=t.kind,r=t.last;r&&r.removed;)r=r.previous;return t.target&&(t.last=r=r?r.next:t.state.first)?"keys"==e?{value:r.key,done:!1}:"values"==e?{value:r.value,done:!1}:{value:[r.key,r.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})},r?"entries":"values",!r,!0),Dr(e)}},$r=Cr("Map",function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},Gr);ar||et(Object.prototype,"toString",ar?{}.toString:function(){return"[object "+cr(this)+"]"},{unsafe:!0});var Vr={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},Hr=Dt("iterator"),Xr=Dt("toStringTag"),Yr=Ar.values;for(var Jr in Vr){var Qr=n[Jr],Zr=Qr&&Qr.prototype;if(Zr){if(Zr[Hr]!==Yr)try{I(Zr,Hr,Yr)}catch(t){Zr[Hr]=Yr}if(Zr[Xr]||I(Zr,Xr,Jr),Vr[Jr])for(var tn in Ar)if(Zr[tn]!==Ar[tn])try{I(Zr,tn,Ar[tn])}catch(t){Zr[tn]=Ar[tn]}}}var en=function(t){var e,r,n,o,i=arguments.length,a=i>1?arguments[1]:void 0;return Qt(this),(e=void 0!==a)&&Qt(a),null==t?new this:(r=[],e?(n=0,o=Zt(a,i>2?arguments[2]:void 0,2),Mr(t,function(t){r.push(o(t,n++))})):Mr(t,r.push,r),new this(r))};kt({target:"Map",stat:!0},{from:en});var rn=function(){for(var t=arguments.length,e=new Array(t);t--;)e[t]=arguments[t];return new this(e)};kt({target:"Map",stat:!0},{of:rn});var nn=function(){for(var t,e=R(this),r=Qt(e.delete),n=!0,o=0,i=arguments.length;o<i;o++)t=r.call(e,arguments[o]),n=n&&t;return!!n};kt({target:"Map",proto:!0,real:!0,forced:D},{deleteAll:function(){return nn.apply(this,arguments)}});var on=function(t){var e=lr(t);if("function"!=typeof e)throw TypeError(String(t)+" is not iterable");return R(e.call(t))},an=function(t){return Map.prototype.entries.call(t)};kt({target:"Map",proto:!0,real:!0,forced:D},{every:function(t){var e=R(this),r=an(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3);return!Mr(r,function(t,r){if(!n(r,t,e))return Mr.stop()},void 0,!0,!0).stopped}});var un=Dt("species"),sn=function(t,e){var r,n=R(t).constructor;return void 0===n||null==(r=R(n)[un])?e:Qt(r)};kt({target:"Map",proto:!0,real:!0,forced:D},{filter:function(t){var e=R(this),r=an(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3),o=new(sn(e,ot("Map"))),i=Qt(o.set);return Mr(r,function(t,r){n(r,t,e)&&i.call(o,t,r)},void 0,!0,!0),o}}),kt({target:"Map",proto:!0,real:!0,forced:D},{find:function(t){var e=R(this),r=an(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3);return Mr(r,function(t,r){if(n(r,t,e))return Mr.stop(r)},void 0,!0,!0).result}}),kt({target:"Map",proto:!0,real:!0,forced:D},{findKey:function(t){var e=R(this),r=an(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3);return Mr(r,function(t,r){if(n(r,t,e))return Mr.stop(t)},void 0,!0,!0).result}}),kt({target:"Map",stat:!0},{groupBy:function(t,e){var r=new this;Qt(e);var n=Qt(r.has),o=Qt(r.get),i=Qt(r.set);return Mr(t,function(t){var a=e(t);n.call(r,a)?o.call(r,a).push(t):i.call(r,a,[t])}),r}}),kt({target:"Map",proto:!0,real:!0,forced:D},{includes:function(t){return Mr(an(R(this)),function(e,r){if((n=r)===(o=t)||n!=n&&o!=o)return Mr.stop();var n,o},void 0,!0,!0).stopped}}),kt({target:"Map",stat:!0},{keyBy:function(t,e){var r=new this;Qt(e);var n=Qt(r.set);return Mr(t,function(t){n.call(r,e(t),t)}),r}}),kt({target:"Map",proto:!0,real:!0,forced:D},{keyOf:function(t){return Mr(an(R(this)),function(e,r){if(r===t)return Mr.stop(e)},void 0,!0,!0).result}}),kt({target:"Map",proto:!0,real:!0,forced:D},{mapKeys:function(t){var e=R(this),r=an(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3),o=new(sn(e,ot("Map"))),i=Qt(o.set);return Mr(r,function(t,r){i.call(o,n(r,t,e),r)},void 0,!0,!0),o}}),kt({target:"Map",proto:!0,real:!0,forced:D},{mapValues:function(t){var e=R(this),r=an(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3),o=new(sn(e,ot("Map"))),i=Qt(o.set);return Mr(r,function(t,r){i.call(o,t,n(r,t,e))},void 0,!0,!0),o}}),kt({target:"Map",proto:!0,real:!0,forced:D},{merge:function(t){for(var e=R(this),r=Qt(e.set),n=0;n<arguments.length;)Mr(arguments[n++],r,e,!0);return e}}),kt({target:"Map",proto:!0,real:!0,forced:D},{reduce:function(t){var e=R(this),r=an(e),n=arguments.length<2,o=n?void 0:arguments[1];if(Qt(t),Mr(r,function(r,i){n?(n=!1,o=i):o=t(o,i,r,e)},void 0,!0,!0),n)throw TypeError("Reduce of empty map with no initial value");return o}}),kt({target:"Map",proto:!0,real:!0,forced:D},{some:function(t){var e=R(this),r=an(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3);return Mr(r,function(t,r){if(n(r,t,e))return Mr.stop()},void 0,!0,!0).stopped}}),kt({target:"Map",proto:!0,real:!0,forced:D},{update:function(t,e){var r=R(this),n=arguments.length;Qt(e);var o=r.has(t);if(!o&&n<3)throw TypeError("Updating absent value");var i=o?r.get(t):Qt(n>2?arguments[2]:void 0)(t,r);return r.set(t,e(i,t,r)),r}});var cn=function(t,e){var r,n=R(this),o=arguments.length>2?arguments[2]:void 0;if("function"!=typeof e&&"function"!=typeof o)throw TypeError("At least one callback required");return n.has(t)?(r=n.get(t),"function"==typeof e&&(r=e(r),n.set(t,r))):"function"==typeof o&&(r=o(),n.set(t,r)),r};kt({target:"Map",proto:!0,real:!0,forced:D},{upsert:cn}),kt({target:"Map",proto:!0,real:!0,forced:D},{updateOrInsert:cn});var fn="\t\n\v\f\r                 \u2028\u2029\ufeff",ln="["+fn+"]",hn=RegExp("^"+ln+ln+"*"),pn=RegExp(ln+ln+"*$"),dn=function(t){return function(e){var r=String(d(e));return 1&t&&(r=r.replace(hn,"")),2&t&&(r=r.replace(pn,"")),r}},vn={start:dn(1),end:dn(2),trim:dn(3)},gn=bt.f,yn=O.f,mn=P.f,bn=vn.trim,wn="Number",Sn=n.Number,En=Sn.prototype,xn=l(Ht(En))==wn,An=function(t){var e,r,n,o,i,a,u,s,c=y(t,!1);if("string"==typeof c&&c.length>2)if(43===(e=(c=bn(c)).charCodeAt(0))||45===e){if(88===(r=c.charCodeAt(2))||120===r)return NaN}else if(48===e){switch(c.charCodeAt(1)){case 66:case 98:n=2,o=49;break;case 79:case 111:n=8,o=55;break;default:return+c}for(a=(i=c.slice(2)).length,u=0;u<a;u++)if((s=i.charCodeAt(u))<48||s>o)return NaN;return parseInt(i,n)}return+c};if(It(wn,!Sn(" 0o1")||!Sn("0b1")||Sn("+0x1"))){for(var On,Rn=function(t){var e=arguments.length<1?0:t,r=this;return r instanceof Rn&&(xn?o(function(){En.valueOf.call(r)}):l(r)!=wn)?Nr(new Sn(An(e)),r,Rn):An(e)},jn=i?gn(Sn):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),Pn=0;jn.length>Pn;Pn++)b(Sn,On=jn[Pn])&&!b(Rn,On)&&mn(Rn,On,yn(Sn,On));Rn.prototype=En,En.constructor=Rn,et(n,wn,Rn)}kt({target:"Number",stat:!0},{EPSILON:Math.pow(2,-52)});var In=n.isFinite;kt({target:"Number",stat:!0},{isFinite:Number.isFinite||function(t){return"number"==typeof t&&In(t)}});var Tn=Math.floor,kn=function(t){return!g(t)&&isFinite(t)&&Tn(t)===t};kt({target:"Number",stat:!0},{isInteger:kn}),kt({target:"Number",stat:!0},{isNaN:function(t){return t!=t}});var Ln=Math.abs;kt({target:"Number",stat:!0},{isSafeInteger:function(t){return kn(t)&&Ln(t)<=9007199254740991}}),kt({target:"Number",stat:!0},{MAX_SAFE_INTEGER:9007199254740991}),kt({target:"Number",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991});var Un=vn.trim,Mn=n.parseFloat,_n=1/Mn(fn+"-0")!=-Infinity?function(t){var e=Un(String(t)),r=Mn(e);return 0===r&&"-"==e.charAt(0)?-0:r}:Mn;kt({target:"Number",stat:!0,forced:Number.parseFloat!=_n},{parseFloat:_n});var Nn=vn.trim,Cn=n.parseInt,Fn=/^[+-]?0[Xx]/,Bn=8!==Cn(fn+"08")||22!==Cn(fn+"0x16")?function(t,e){var r=Nn(String(t));return Cn(r,e>>>0||(Fn.test(r)?16:10))}:Cn;kt({target:"Number",stat:!0,forced:Number.parseInt!=Bn},{parseInt:Bn});var Dn=s.f,qn=function(t){return function(e){for(var r,n=v(e),o=qt(n),a=o.length,u=0,s=[];a>u;)r=o[u++],i&&!Dn.call(n,r)||s.push(t?[r,n[r]]:n[r]);return s}},zn={entries:qn(!0),values:qn(!1)},Wn=zn.entries;kt({target:"Object",stat:!0},{entries:function(t){return Wn(t)}}),kt({target:"Object",stat:!0,sham:!i},{getOwnPropertyDescriptors:function(t){for(var e,r,n=v(t),o=O.f,i=St(n),a={},u=0;i.length>u;)void 0!==(r=o(n,e=i[u++]))&&or(a,e,r);return a}});var Kn=o(function(){qt(1)});kt({target:"Object",stat:!0,forced:Kn},{keys:function(t){return qt(Lt(t))}});var Gn=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e};kt({target:"Object",stat:!0},{is:Gn});var $n=zn.values;kt({target:"Object",stat:!0},{values:function(t){return $n(t)}});var Vn=ot("Reflect","apply"),Hn=Function.apply,Xn=!o(function(){Vn(function(){})});kt({target:"Reflect",stat:!0,forced:Xn},{apply:function(t,e,r){return Qt(t),R(r),Vn?Vn(t,e,r):Hn.call(t,e,r)}});var Yn=[].slice,Jn={},Qn=function(t,e,r){if(!(e in Jn)){for(var n=[],o=0;o<e;o++)n[o]="a["+o+"]";Jn[e]=Function("C,a","return new C("+n.join(",")+")")}return Jn[e](t,r)},Zn=Function.bind||function(t){var e=Qt(this),r=Yn.call(arguments,1),n=function(){var o=r.concat(Yn.call(arguments));return this instanceof n?Qn(e,o.length,o):e.apply(t,o)};return g(e.prototype)&&(n.prototype=e.prototype),n},to=ot("Reflect","construct"),eo=o(function(){function t(){}return!(to(function(){},[],t)instanceof t)}),ro=!o(function(){to(function(){})}),no=eo||ro;kt({target:"Reflect",stat:!0,forced:no,sham:no},{construct:function(t,e){Qt(t),R(e);var r=arguments.length<3?t:Qt(arguments[2]);if(ro&&!eo)return to(t,e,r);if(t==r){switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3])}var n=[null];return n.push.apply(n,e),new(Zn.apply(t,n))}var o=r.prototype,i=Ht(g(o)?o:Object.prototype),a=Function.apply.call(t,i,e);return g(a)?a:i}});var oo=o(function(){Reflect.defineProperty(P.f({},1,{value:1}),1,{value:2})});kt({target:"Reflect",stat:!0,forced:oo,sham:!i},{defineProperty:function(t,e,r){R(t);var n=y(e,!0);R(r);try{return P.f(t,n,r),!0}catch(t){return!1}}});var io=O.f;kt({target:"Reflect",stat:!0},{deleteProperty:function(t,e){var r=io(R(t),e);return!(r&&!r.configurable)&&delete t[e]}}),kt({target:"Reflect",stat:!0},{get:function t(e,r){var n,o,i=arguments.length<3?e:arguments[2];return R(e)===i?e[r]:(n=O.f(e,r))?b(n,"value")?n.value:void 0===n.get?void 0:n.get.call(i):g(o=Ie(e))?t(o,r,i):void 0}}),kt({target:"Reflect",stat:!0,sham:!i},{getOwnPropertyDescriptor:function(t,e){return O.f(R(t),e)}}),kt({target:"Reflect",stat:!0,sham:!Re},{getPrototypeOf:function(t){return Ie(R(t))}}),kt({target:"Reflect",stat:!0},{has:function(t,e){return e in t}});var ao=Object.isExtensible;kt({target:"Reflect",stat:!0},{isExtensible:function(t){return R(t),!ao||ao(t)}}),kt({target:"Reflect",stat:!0},{ownKeys:St}),kt({target:"Reflect",stat:!0,sham:!Lr},{preventExtensions:function(t){R(t);try{var e=ot("Object","preventExtensions");return e&&e(t),!0}catch(t){return!1}}});var uo=o(function(){var t=P.f({},"a",{configurable:!0});return!1!==Reflect.set(Ie(t),"a",1,t)});kt({target:"Reflect",stat:!0,forced:uo},{set:function t(e,r,n){var o,i,a=arguments.length<4?e:arguments[3],u=O.f(R(e),r);if(!u){if(g(i=Ie(e)))return t(i,r,n,a);u=c(0)}if(b(u,"value")){if(!1===u.writable||!g(a))return!1;if(o=O.f(a,r)){if(o.get||o.set||!1===o.writable)return!1;o.value=n,P.f(a,r,o)}else P.f(a,r,c(0,n));return!0}return void 0!==u.set&&(u.set.call(a,n),!0)}}),qe&&kt({target:"Reflect",stat:!0},{setPrototypeOf:function(t,e){R(t),De(e);try{return qe(t,e),!0}catch(t){return!1}}});var so=Ur.getWeakData,co=tt.set,fo=tt.getterFor,lo=ue.find,ho=ue.findIndex,po=0,vo=function(t){return t.frozen||(t.frozen=new go)},go=function(){this.entries=[]},yo=function(t,e){return lo(t.entries,function(t){return t[0]===e})};go.prototype={get:function(t){var e=yo(this,t);if(e)return e[1]},has:function(t){return!!yo(this,t)},set:function(t,e){var r=yo(this,t);r?r[1]=e:this.entries.push([t,e])},delete:function(t){var e=ho(this.entries,function(e){return e[0]===t});return~e&&this.entries.splice(e,1),!!~e}};var mo={getConstructor:function(t,e,r,n){var o=t(function(t,i){_r(t,o,e),co(t,{type:e,id:po++,frozen:void 0}),null!=i&&Mr(i,t[n],t,r)}),i=fo(e),a=function(t,e,r){var n=i(t),o=so(R(e),!0);return!0===o?vo(n).set(e,r):o[n.id]=r,t};return Fr(o.prototype,{delete:function(t){var e=i(this);if(!g(t))return!1;var r=so(t);return!0===r?vo(e).delete(t):r&&b(r,e.id)&&delete r[e.id]},has:function(t){var e=i(this);if(!g(t))return!1;var r=so(t);return!0===r?vo(e).has(t):r&&b(r,e.id)}}),Fr(o.prototype,r?{get:function(t){var e=i(this);if(g(t)){var r=so(t);return!0===r?vo(e).get(t):r?r[e.id]:void 0}},set:function(t,e){return a(this,t,e)}}:{add:function(t){return a(this,t,!0)}}),o}},bo=e(function(t){var e,r=tt.enforce,o=!n.ActiveXObject&&"ActiveXObject"in n,i=Object.isExtensible,a=function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},u=t.exports=Cr("WeakMap",a,mo);if(B&&o){e=mo.getConstructor(a,"WeakMap",!0),Ur.REQUIRED=!0;var s=u.prototype,c=s.delete,f=s.has,l=s.get,h=s.set;Fr(s,{delete:function(t){if(g(t)&&!i(t)){var n=r(this);return n.frozen||(n.frozen=new e),c.call(this,t)||n.frozen.delete(t)}return c.call(this,t)},has:function(t){if(g(t)&&!i(t)){var n=r(this);return n.frozen||(n.frozen=new e),f.call(this,t)||n.frozen.has(t)}return f.call(this,t)},get:function(t){if(g(t)&&!i(t)){var n=r(this);return n.frozen||(n.frozen=new e),f.call(this,t)?l.call(this,t):n.frozen.get(t)}return l.call(this,t)},set:function(t,n){if(g(t)&&!i(t)){var o=r(this);o.frozen||(o.frozen=new e),f.call(this,t)?h.call(this,t,n):o.frozen.set(t,n)}else h.call(this,t,n);return this}})}}),wo=q("metadata"),So=wo.store||(wo.store=new bo),Eo=function(t,e,r){var n=So.get(t);if(!n){if(!r)return;So.set(t,n=new $r)}var o=n.get(e);if(!o){if(!r)return;n.set(e,o=new $r)}return o},xo={store:So,getMap:Eo,has:function(t,e,r){var n=Eo(e,r,!1);return void 0!==n&&n.has(t)},get:function(t,e,r){var n=Eo(e,r,!1);return void 0===n?void 0:n.get(t)},set:function(t,e,r,n){Eo(r,n,!0).set(t,e)},keys:function(t,e){var r=Eo(t,e,!1),n=[];return r&&r.forEach(function(t,e){n.push(e)}),n},toKey:function(t){return void 0===t||"symbol"==typeof t?t:String(t)}},Ao=xo.toKey,Oo=xo.set;kt({target:"Reflect",stat:!0},{defineMetadata:function(t,e,r){var n=arguments.length<4?void 0:Ao(arguments[3]);Oo(t,e,R(r),n)}});var Ro=xo.toKey,jo=xo.getMap,Po=xo.store;kt({target:"Reflect",stat:!0},{deleteMetadata:function(t,e){var r=arguments.length<3?void 0:Ro(arguments[2]),n=jo(R(e),r,!1);if(void 0===n||!n.delete(t))return!1;if(n.size)return!0;var o=Po.get(e);return o.delete(r),!!o.size||Po.delete(e)}});var Io=xo.has,To=xo.get,ko=xo.toKey,Lo=function t(e,r,n){if(Io(e,r,n))return To(e,r,n);var o=Ie(r);return null!==o?t(e,o,n):void 0};kt({target:"Reflect",stat:!0},{getMetadata:function(t,e){var r=arguments.length<3?void 0:ko(arguments[2]);return Lo(t,R(e),r)}});var Uo=Cr("Set",function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},Gr),Mo=xo.keys,_o=xo.toKey,No=function t(e,r){var n=Mo(e,r),o=Ie(e);if(null===o)return n;var i,a,u=t(o,r);return u.length?n.length?(i=new Uo(n.concat(u)),Mr(i,(a=[]).push,a),a):u:n};kt({target:"Reflect",stat:!0},{getMetadataKeys:function(t){var e=arguments.length<2?void 0:_o(arguments[1]);return No(R(t),e)}});var Co=xo.get,Fo=xo.toKey;kt({target:"Reflect",stat:!0},{getOwnMetadata:function(t,e){var r=arguments.length<3?void 0:Fo(arguments[2]);return Co(t,R(e),r)}});var Bo=xo.keys,Do=xo.toKey;kt({target:"Reflect",stat:!0},{getOwnMetadataKeys:function(t){var e=arguments.length<2?void 0:Do(arguments[1]);return Bo(R(t),e)}});var qo=xo.has,zo=xo.toKey,Wo=function t(e,r,n){if(qo(e,r,n))return!0;var o=Ie(r);return null!==o&&t(e,o,n)};kt({target:"Reflect",stat:!0},{hasMetadata:function(t,e){var r=arguments.length<3?void 0:zo(arguments[2]);return Wo(t,R(e),r)}});var Ko=xo.has,Go=xo.toKey;kt({target:"Reflect",stat:!0},{hasOwnMetadata:function(t,e){var r=arguments.length<3?void 0:Go(arguments[2]);return Ko(t,R(e),r)}});var $o=xo.toKey,Vo=xo.set;kt({target:"Reflect",stat:!0},{metadata:function(t,e){return function(r,n){Vo(t,e,R(r),$o(n))}}});var Ho=Dt("match"),Xo=function(t){var e;return g(t)&&(void 0!==(e=t[Ho])?!!e:"RegExp"==l(t))},Yo=function(){var t=R(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.dotAll&&(e+="s"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e};function Jo(t,e){return RegExp(t,e)}var Qo={UNSUPPORTED_Y:o(function(){var t=Jo("a","y");return t.lastIndex=2,null!=t.exec("abcd")}),BROKEN_CARET:o(function(){var t=Jo("^r","gy");return t.lastIndex=2,null!=t.exec("str")})},Zo=P.f,ti=bt.f,ei=tt.set,ri=Dt("match"),ni=n.RegExp,oi=ni.prototype,ii=/a/g,ai=/a/g,ui=new ni(ii)!==ii,si=Qo.UNSUPPORTED_Y;if(i&&It("RegExp",!ui||si||o(function(){return ai[ri]=!1,ni(ii)!=ii||ni(ai)==ai||"/a/i"!=ni(ii,"i")}))){for(var ci=function(t,e){var r,n=this instanceof ci,o=Xo(t),i=void 0===e;if(!n&&o&&t.constructor===ci&&i)return t;ui?o&&!i&&(t=t.source):t instanceof ci&&(i&&(e=Yo.call(t)),t=t.source),si&&(r=!!e&&e.indexOf("y")>-1)&&(e=e.replace(/y/g,""));var a=Nr(ui?new ni(t,e):ni(t,e),n?this:oi,ci);return si&&r&&ei(a,{sticky:r}),a},fi=function(t){t in ci||Zo(ci,t,{configurable:!0,get:function(){return ni[t]},set:function(e){ni[t]=e}})},li=ti(ni),hi=0;li.length>hi;)fi(li[hi++]);oi.constructor=ci,ci.prototype=oi,et(n,"RegExp",ci)}Dr("RegExp");var pi="toString",di=RegExp.prototype,vi=di.toString;(o(function(){return"/a/b"!=vi.call({source:"a",flags:"b"})})||vi.name!=pi)&&et(RegExp.prototype,pi,function(){var t=R(this),e=String(t.source),r=t.flags;return"/"+e+"/"+String(void 0===r&&t instanceof RegExp&&!("flags"in di)?Yo.call(t):r)},{unsafe:!0});var gi=RegExp.prototype.exec,yi=String.prototype.replace,mi=gi,bi=function(){var t=/a/,e=/b*/g;return gi.call(t,"a"),gi.call(e,"a"),0!==t.lastIndex||0!==e.lastIndex}(),wi=Qo.UNSUPPORTED_Y||Qo.BROKEN_CARET,Si=void 0!==/()??/.exec("")[1];(bi||Si||wi)&&(mi=function(t){var e,r,n,o,i=this,a=wi&&i.sticky,u=Yo.call(i),s=i.source,c=0,f=t;return a&&(-1===(u=u.replace("y","")).indexOf("g")&&(u+="g"),f=String(t).slice(i.lastIndex),i.lastIndex>0&&(!i.multiline||i.multiline&&"\n"!==t[i.lastIndex-1])&&(s="(?: "+s+")",f=" "+f,c++),r=new RegExp("^(?:"+s+")",u)),Si&&(r=new RegExp("^"+s+"$(?!\\s)",u)),bi&&(e=i.lastIndex),n=gi.call(a?r:i,f),a?n?(n.input=n.input.slice(c),n[0]=n[0].slice(c),n.index=i.lastIndex,i.lastIndex+=n[0].length):i.lastIndex=0:bi&&n&&(i.lastIndex=i.global?n.index+n[0].length:e),Si&&n&&n.length>1&&yi.call(n[0],r,function(){for(o=1;o<arguments.length-2;o++)void 0===arguments[o]&&(n[o]=void 0)}),n});var Ei=mi;kt({target:"RegExp",proto:!0,forced:/./.exec!==Ei},{exec:Ei}),i&&("g"!=/./g.flags||Qo.UNSUPPORTED_Y)&&P.f(RegExp.prototype,"flags",{configurable:!0,get:Yo});var xi=tt.get,Ai=RegExp.prototype;i&&Qo.UNSUPPORTED_Y&&(0,P.f)(RegExp.prototype,"sticky",{configurable:!0,get:function(){if(this!==Ai){if(this instanceof RegExp)return!!xi(this).sticky;throw TypeError("Incompatible receiver, RegExp required")}}});var Oi,Ri,ji=(Oi=!1,(Ri=/[ac]/).exec=function(){return Oi=!0,/./.exec.apply(this,arguments)},!0===Ri.test("abc")&&Oi),Pi=/./.test;kt({target:"RegExp",proto:!0,forced:!ji},{test:function(t){if("function"!=typeof this.exec)return Pi.call(this,t);var e=this.exec(t);if(null!==e&&!g(e))throw new Error("RegExp exec method returned something other than an Object or null");return!!e}});var Ii=Dt("species"),Ti=!o(function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$<a>")}),ki="$0"==="a".replace(/./,"$0"),Li=Dt("replace"),Ui=!!/./[Li]&&""===/./[Li]("a","$0"),Mi=!o(function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var r="ab".split(t);return 2!==r.length||"a"!==r[0]||"b"!==r[1]}),_i=function(t,e,r,n){var i=Dt(t),a=!o(function(){var e={};return e[i]=function(){return 7},7!=""[t](e)}),u=a&&!o(function(){var e=!1,r=/a/;return"split"===t&&((r={}).constructor={},r.constructor[Ii]=function(){return r},r.flags="",r[i]=/./[i]),r.exec=function(){return e=!0,null},r[i](""),!e});if(!a||!u||"replace"===t&&(!Ti||!ki||Ui)||"split"===t&&!Mi){var s=/./[i],c=r(i,""[t],function(t,e,r,n,o){return e.exec===Ei?a&&!o?{done:!0,value:s.call(e,r,n)}:{done:!0,value:t.call(r,e,n)}:{done:!1}},{REPLACE_KEEPS_$0:ki,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:Ui}),f=c[1];et(String.prototype,t,c[0]),et(RegExp.prototype,i,2==e?function(t,e){return f.call(t,this,e)}:function(t){return f.call(t,this)})}n&&I(RegExp.prototype[i],"sham",!0)},Ni=Oe.charAt,Ci=function(t,e,r){return e+(r?Ni(t,e).length:1)},Fi=function(t,e){var r=t.exec;if("function"==typeof r){var n=r.call(t,e);if("object"!=typeof n)throw TypeError("RegExp exec method returned something other than an Object or null");return n}if("RegExp"!==l(t))throw TypeError("RegExp#exec called on incompatible receiver");return Ei.call(t,e)};_i("match",1,function(t,e,r){return[function(e){var r=d(this),n=null==e?void 0:e[t];return void 0!==n?n.call(e,r):new RegExp(e)[t](String(r))},function(t){var n=r(e,t,this);if(n.done)return n.value;var o=R(t),i=String(this);if(!o.global)return Fi(o,i);var a=o.unicode;o.lastIndex=0;for(var u,s=[],c=0;null!==(u=Fi(o,i));){var f=String(u[0]);s[c]=f,""===f&&(o.lastIndex=Ci(i,ct(o.lastIndex),a)),c++}return 0===c?null:s}]});var Bi=Math.max,Di=Math.min,qi=Math.floor,zi=/\$([$&'`]|\d\d?|<[^>]*>)/g,Wi=/\$([$&'`]|\d\d?)/g;_i("replace",2,function(t,e,r,n){var o=n.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,i=n.REPLACE_KEEPS_$0,a=o?"$":"$0";return[function(r,n){var o=d(this),i=null==r?void 0:r[t];return void 0!==i?i.call(r,o,n):e.call(String(o),r,n)},function(t,n){if(!o&&i||"string"==typeof n&&-1===n.indexOf(a)){var s=r(e,t,this,n);if(s.done)return s.value}var c=R(t),f=String(this),l="function"==typeof n;l||(n=String(n));var h=c.global;if(h){var p=c.unicode;c.lastIndex=0}for(var d=[];;){var v=Fi(c,f);if(null===v)break;if(d.push(v),!h)break;""===String(v[0])&&(c.lastIndex=Ci(f,ct(c.lastIndex),p))}for(var g,y="",m=0,b=0;b<d.length;b++){v=d[b];for(var w=String(v[0]),S=Bi(Di(ut(v.index),f.length),0),E=[],x=1;x<v.length;x++)E.push(void 0===(g=v[x])?g:String(g));var A=v.groups;if(l){var O=[w].concat(E,S,f);void 0!==A&&O.push(A);var j=String(n.apply(void 0,O))}else j=u(w,f,S,E,A,n);S>=m&&(y+=f.slice(m,S)+j,m=S+w.length)}return y+f.slice(m)}];function u(t,r,n,o,i,a){var u=n+t.length,s=o.length,c=Wi;return void 0!==i&&(i=Lt(i),c=zi),e.call(a,c,function(e,a){var c;switch(a.charAt(0)){case"$":return"$";case"&":return t;case"`":return r.slice(0,n);case"'":return r.slice(u);case"<":c=i[a.slice(1,-1)];break;default:var f=+a;if(0===f)return e;if(f>s){var l=qi(f/10);return 0===l?e:l<=s?void 0===o[l-1]?a.charAt(1):o[l-1]+a.charAt(1):e}c=o[f-1]}return void 0===c?"":c})}}),_i("search",1,function(t,e,r){return[function(e){var r=d(this),n=null==e?void 0:e[t];return void 0!==n?n.call(e,r):new RegExp(e)[t](String(r))},function(t){var n=r(e,t,this);if(n.done)return n.value;var o=R(t),i=String(this),a=o.lastIndex;Gn(a,0)||(o.lastIndex=0);var u=Fi(o,i);return Gn(o.lastIndex,a)||(o.lastIndex=a),null===u?-1:u.index}]});var Ki=[].push,Gi=Math.min,$i=4294967295,Vi=!o(function(){return!RegExp($i,"y")});_i("split",2,function(t,e,r){var n;return n="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(t,r){var n=String(d(this)),o=void 0===r?$i:r>>>0;if(0===o)return[];if(void 0===t)return[n];if(!Xo(t))return e.call(n,t,o);for(var i,a,u,s=[],c=0,f=new RegExp(t.source,(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":"")+"g");(i=Ei.call(f,n))&&!((a=f.lastIndex)>c&&(s.push(n.slice(c,i.index)),i.length>1&&i.index<n.length&&Ki.apply(s,i.slice(1)),u=i[0].length,c=a,s.length>=o));)f.lastIndex===i.index&&f.lastIndex++;return c===n.length?!u&&f.test("")||s.push(""):s.push(n.slice(c)),s.length>o?s.slice(0,o):s}:"0".split(void 0,0).length?function(t,r){return void 0===t&&0===r?[]:e.call(this,t,r)}:e,[function(e,r){var o=d(this),i=null==e?void 0:e[t];return void 0!==i?i.call(e,o,r):n.call(String(o),e,r)},function(t,o){var i=r(n,t,this,o,n!==e);if(i.done)return i.value;var a=R(t),u=String(this),s=sn(a,RegExp),c=a.unicode,f=new s(Vi?a:"^(?:"+a.source+")",(a.ignoreCase?"i":"")+(a.multiline?"m":"")+(a.unicode?"u":"")+(Vi?"y":"g")),l=void 0===o?$i:o>>>0;if(0===l)return[];if(0===u.length)return null===Fi(f,u)?[u]:[];for(var h=0,p=0,d=[];p<u.length;){f.lastIndex=Vi?p:0;var v,g=Fi(f,Vi?u:u.slice(p));if(null===g||(v=Gi(ct(f.lastIndex+(Vi?0:p)),u.length))===h)p=Ci(u,p,c);else{if(d.push(u.slice(h,p)),d.length===l)return d;for(var y=1;y<=g.length-1;y++)if(d.push(g[y]),d.length===l)return d;p=h=v}}return d.push(u.slice(h)),d}]},!Vi),kt({target:"Set",stat:!0},{from:en}),kt({target:"Set",stat:!0},{of:rn});var Hi=function(){for(var t=R(this),e=Qt(t.add),r=0,n=arguments.length;r<n;r++)e.call(t,arguments[r]);return t};kt({target:"Set",proto:!0,real:!0,forced:D},{addAll:function(){return Hi.apply(this,arguments)}}),kt({target:"Set",proto:!0,real:!0,forced:D},{deleteAll:function(){return nn.apply(this,arguments)}});var Xi=function(t){return Set.prototype.values.call(t)};kt({target:"Set",proto:!0,real:!0,forced:D},{every:function(t){var e=R(this),r=Xi(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3);return!Mr(r,function(t){if(!n(t,t,e))return Mr.stop()},void 0,!1,!0).stopped}}),kt({target:"Set",proto:!0,real:!0,forced:D},{difference:function(t){var e=R(this),r=new(sn(e,ot("Set")))(e),n=Qt(r.delete);return Mr(t,function(t){n.call(r,t)}),r}}),kt({target:"Set",proto:!0,real:!0,forced:D},{filter:function(t){var e=R(this),r=Xi(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3),o=new(sn(e,ot("Set"))),i=Qt(o.add);return Mr(r,function(t){n(t,t,e)&&i.call(o,t)},void 0,!1,!0),o}}),kt({target:"Set",proto:!0,real:!0,forced:D},{find:function(t){var e=R(this),r=Xi(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3);return Mr(r,function(t){if(n(t,t,e))return Mr.stop(t)},void 0,!1,!0).result}}),kt({target:"Set",proto:!0,real:!0,forced:D},{intersection:function(t){var e=R(this),r=new(sn(e,ot("Set"))),n=Qt(e.has),o=Qt(r.add);return Mr(t,function(t){n.call(e,t)&&o.call(r,t)}),r}}),kt({target:"Set",proto:!0,real:!0,forced:D},{isDisjointFrom:function(t){var e=R(this),r=Qt(e.has);return!Mr(t,function(t){if(!0===r.call(e,t))return Mr.stop()}).stopped}}),kt({target:"Set",proto:!0,real:!0,forced:D},{isSubsetOf:function(t){var e=on(this),r=R(t),n=r.has;return"function"!=typeof n&&(r=new(ot("Set"))(t),n=Qt(r.has)),!Mr(e,function(t){if(!1===n.call(r,t))return Mr.stop()},void 0,!1,!0).stopped}}),kt({target:"Set",proto:!0,real:!0,forced:D},{isSupersetOf:function(t){var e=R(this),r=Qt(e.has);return!Mr(t,function(t){if(!1===r.call(e,t))return Mr.stop()}).stopped}}),kt({target:"Set",proto:!0,real:!0,forced:D},{join:function(t){var e=R(this),r=Xi(e),n=void 0===t?",":String(t),o=[];return Mr(r,o.push,o,!1,!0),o.join(n)}}),kt({target:"Set",proto:!0,real:!0,forced:D},{map:function(t){var e=R(this),r=Xi(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3),o=new(sn(e,ot("Set"))),i=Qt(o.add);return Mr(r,function(t){i.call(o,n(t,t,e))},void 0,!1,!0),o}}),kt({target:"Set",proto:!0,real:!0,forced:D},{reduce:function(t){var e=R(this),r=Xi(e),n=arguments.length<2,o=n?void 0:arguments[1];if(Qt(t),Mr(r,function(r){n?(n=!1,o=r):o=t(o,r,r,e)},void 0,!1,!0),n)throw TypeError("Reduce of empty set with no initial value");return o}}),kt({target:"Set",proto:!0,real:!0,forced:D},{some:function(t){var e=R(this),r=Xi(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3);return Mr(r,function(t){if(n(t,t,e))return Mr.stop()},void 0,!1,!0).stopped}}),kt({target:"Set",proto:!0,real:!0,forced:D},{symmetricDifference:function(t){var e=R(this),r=new(sn(e,ot("Set")))(e),n=Qt(r.delete),o=Qt(r.add);return Mr(t,function(t){n.call(r,t)||o.call(r,t)}),r}}),kt({target:"Set",proto:!0,real:!0,forced:D},{union:function(t){var e=R(this),r=new(sn(e,ot("Set")))(e);return Mr(t,Qt(r.add),r),r}});var Yi,Ji,Qi=ot("navigator","userAgent")||"",Zi=n.process,ta=Zi&&Zi.versions,ea=ta&&ta.v8;ea?Ji=(Yi=ea.split("."))[0]+Yi[1]:Qi&&(!(Yi=Qi.match(/Edge\/(\d+)/))||Yi[1]>=74)&&(Yi=Qi.match(/Chrome\/(\d+)/))&&(Ji=Yi[1]);var ra=Ji&&+Ji,na=Dt("species"),oa=Dt("isConcatSpreadable"),ia=9007199254740991,aa="Maximum allowed index exceeded",ua=ra>=51||!o(function(){var t=[];return t[oa]=!1,t.concat()[0]!==t}),sa=ra>=51||!o(function(){var t=[];return(t.constructor={})[na]=function(){return{foo:1}},1!==t.concat(Boolean).foo}),ca=function(t){if(!g(t))return!1;var e=t[oa];return void 0!==e?!!e:re(t)};kt({target:"Array",proto:!0,forced:!ua||!sa},{concat:function(t){var e,r,n,o,i,a=Lt(this),u=oe(a,0),s=0;for(e=-1,n=arguments.length;e<n;e++)if(ca(i=-1===e?a:arguments[e])){if(s+(o=ct(i.length))>ia)throw TypeError(aa);for(r=0;r<o;r++,s++)r in i&&or(u,s,i[r])}else{if(s>=ia)throw TypeError(aa);or(u,s++,i)}return u.length=s,u}});var fa=bt.f,la={}.toString,ha="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],pa={f:function(t){return ha&&"[object Window]"==la.call(t)?function(t){try{return fa(t)}catch(t){return ha.slice()}}(t):fa(v(t))}},da={f:Dt},va=P.f,ga=function(t){var e=rt.Symbol||(rt.Symbol={});b(e,t)||va(e,t,{value:da.f(t)})},ya=ue.forEach,ma=$("hidden"),ba="Symbol",wa=Dt("toPrimitive"),Sa=tt.set,Ea=tt.getterFor(ba),xa=Object.prototype,Aa=n.Symbol,Oa=ot("JSON","stringify"),Ra=O.f,ja=P.f,Pa=pa.f,Ia=s.f,Ta=q("symbols"),ka=q("op-symbols"),La=q("string-to-symbol-registry"),Ua=q("symbol-to-string-registry"),Ma=q("wks"),_a=n.QObject,Na=!_a||!_a.prototype||!_a.prototype.findChild,Ca=i&&o(function(){return 7!=Ht(ja({},"a",{get:function(){return ja(this,"a",{value:7}).a}})).a})?function(t,e,r){var n=Ra(xa,e);n&&delete xa[e],ja(t,e,r),n&&t!==xa&&ja(xa,e,n)}:ja,Fa=function(t,e){var r=Ta[t]=Ht(Aa.prototype);return Sa(r,{type:ba,tag:t,description:e}),i||(r.description=e),r},Ba=Nt?function(t){return"symbol"==typeof t}:function(t){return Object(t)instanceof Aa},Da=function(t,e,r){t===xa&&Da(ka,e,r),R(t);var n=y(e,!0);return R(r),b(Ta,n)?(r.enumerable?(b(t,ma)&&t[ma][n]&&(t[ma][n]=!1),r=Ht(r,{enumerable:c(0,!1)})):(b(t,ma)||ja(t,ma,c(1,{})),t[ma][n]=!0),Ca(t,n,r)):ja(t,n,r)},qa=function(t,e){R(t);var r=v(e),n=qt(r).concat(Ga(r));return ya(n,function(e){i&&!za.call(r,e)||Da(t,e,r[e])}),t},za=function(t){var e=y(t,!0),r=Ia.call(this,e);return!(this===xa&&b(Ta,e)&&!b(ka,e))&&(!(r||!b(this,e)||!b(Ta,e)||b(this,ma)&&this[ma][e])||r)},Wa=function(t,e){var r=v(t),n=y(e,!0);if(r!==xa||!b(Ta,n)||b(ka,n)){var o=Ra(r,n);return!o||!b(Ta,n)||b(r,ma)&&r[ma][n]||(o.enumerable=!0),o}},Ka=function(t){var e=Pa(v(t)),r=[];return ya(e,function(t){b(Ta,t)||b(V,t)||r.push(t)}),r},Ga=function(t){var e=t===xa,r=Pa(e?ka:v(t)),n=[];return ya(r,function(t){!b(Ta,t)||e&&!b(xa,t)||n.push(Ta[t])}),n};if(_t||(et((Aa=function(){if(this instanceof Aa)throw TypeError("Symbol is not a constructor");var t=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,e=K(t),r=function t(r){this===xa&&t.call(ka,r),b(this,ma)&&b(this[ma],e)&&(this[ma][e]=!1),Ca(this,e,c(1,r))};return i&&Na&&Ca(xa,e,{configurable:!0,set:r}),Fa(e,t)}).prototype,"toString",function(){return Ea(this).tag}),et(Aa,"withoutSetter",function(t){return Fa(K(t),t)}),s.f=za,P.f=Da,O.f=Wa,bt.f=pa.f=Ka,wt.f=Ga,da.f=function(t){return Fa(Dt(t),t)},i&&(ja(Aa.prototype,"description",{configurable:!0,get:function(){return Ea(this).description}}),et(xa,"propertyIsEnumerable",za,{unsafe:!0}))),kt({global:!0,wrap:!0,forced:!_t,sham:!_t},{Symbol:Aa}),ya(qt(Ma),function(t){ga(t)}),kt({target:ba,stat:!0,forced:!_t},{for:function(t){var e=String(t);if(b(La,e))return La[e];var r=Aa(e);return La[e]=r,Ua[r]=e,r},keyFor:function(t){if(!Ba(t))throw TypeError(t+" is not a symbol");if(b(Ua,t))return Ua[t]},useSetter:function(){Na=!0},useSimple:function(){Na=!1}}),kt({target:"Object",stat:!0,forced:!_t,sham:!i},{create:function(t,e){return void 0===e?Ht(t):qa(Ht(t),e)},defineProperty:Da,defineProperties:qa,getOwnPropertyDescriptor:Wa}),kt({target:"Object",stat:!0,forced:!_t},{getOwnPropertyNames:Ka,getOwnPropertySymbols:Ga}),kt({target:"Object",stat:!0,forced:o(function(){wt.f(1)})},{getOwnPropertySymbols:function(t){return wt.f(Lt(t))}}),Oa){var $a=!_t||o(function(){var t=Aa();return"[null]"!=Oa([t])||"{}"!=Oa({a:t})||"{}"!=Oa(Object(t))});kt({target:"JSON",stat:!0,forced:$a},{stringify:function(t,e,r){for(var n,o=[t],i=1;arguments.length>i;)o.push(arguments[i++]);if(n=e,(g(e)||void 0!==t)&&!Ba(t))return re(e)||(e=function(t,e){if("function"==typeof n&&(e=n.call(this,t,e)),!Ba(e))return e}),o[1]=e,Oa.apply(null,o)}})}Aa.prototype[wa]||I(Aa.prototype,wa,Aa.prototype.valueOf),_e(Aa,ba),V[ma]=!0,ga("asyncIterator");var Va=P.f,Ha=n.Symbol;if(i&&"function"==typeof Ha&&(!("description"in Ha.prototype)||void 0!==Ha().description)){var Xa={},Ya=function(){var t=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),e=this instanceof Ya?new Ha(t):void 0===t?Ha():Ha(t);return""===t&&(Xa[e]=!0),e};Et(Ya,Ha);var Ja=Ya.prototype=Ha.prototype;Ja.constructor=Ya;var Qa=Ja.toString,Za="Symbol(test)"==String(Ha("test")),tu=/^Symbol\((.*)\)[^)]+$/;Va(Ja,"description",{configurable:!0,get:function(){var t=g(this)?this.valueOf():this,e=Qa.call(t);if(b(Xa,t))return"";var r=Za?e.slice(7,-1):e.replace(tu,"$1");return""===r?void 0:r}}),kt({global:!0,forced:!0},{Symbol:Ya})}ga("hasInstance"),ga("isConcatSpreadable"),ga("iterator"),ga("match"),ga("matchAll"),ga("replace"),ga("search"),ga("species"),ga("split"),ga("toPrimitive"),ga("toStringTag"),ga("unscopables"),_e(Math,"Math",!0),_e(n.JSON,"JSON",!0),ga("asyncDispose"),ga("dispose"),ga("observable"),ga("patternMatch"),ga("replaceAll"),da.f("asyncIterator");var eu=Oe.codeAt;kt({target:"String",proto:!0},{codePointAt:function(t){return eu(this,t)}}),ee("String","codePointAt");var ru,nu=function(t){if(Xo(t))throw TypeError("The method doesn't accept regular expressions");return t},ou=Dt("match"),iu=function(t){var e=/./;try{"/./"[t](e)}catch(r){try{return e[ou]=!1,"/./"[t](e)}catch(t){}}return!1},au=O.f,uu="".endsWith,su=Math.min,cu=iu("endsWith"),fu=!(cu||(ru=au(String.prototype,"endsWith"),!ru||ru.writable));kt({target:"String",proto:!0,forced:!fu&&!cu},{endsWith:function(t){var e=String(d(this));nu(t);var r=arguments.length>1?arguments[1]:void 0,n=ct(e.length),o=void 0===r?n:su(ct(r),n),i=String(t);return uu?uu.call(e,i,o):e.slice(o-i.length,o)===i}}),ee("String","endsWith");var lu=String.fromCharCode,hu=String.fromCodePoint;kt({target:"String",stat:!0,forced:!!hu&&1!=hu.length},{fromCodePoint:function(t){for(var e,r=[],n=arguments.length,o=0;n>o;){if(e=+arguments[o++],ht(e,1114111)!==e)throw RangeError(e+" is not a valid code point");r.push(e<65536?lu(e):lu(55296+((e-=65536)>>10),e%1024+56320))}return r.join("")}}),kt({target:"String",proto:!0,forced:!iu("includes")},{includes:function(t){return!!~String(d(this)).indexOf(nu(t),arguments.length>1?arguments[1]:void 0)}}),ee("String","includes");var pu="".repeat||function(t){var e=String(d(this)),r="",n=ut(t);if(n<0||Infinity==n)throw RangeError("Wrong number of repetitions");for(;n>0;(n>>>=1)&&(e+=e))1&n&&(r+=e);return r},du=Math.ceil,vu=function(t){return function(e,r,n){var o,i,a=String(d(e)),u=a.length,s=void 0===n?" ":String(n),c=ct(r);return c<=u||""==s?a:((i=pu.call(s,du((o=c-u)/s.length))).length>o&&(i=i.slice(0,o)),t?a+i:i+a)}},gu={start:vu(!1),end:vu(!0)},yu=/Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(Qi),mu=gu.start;kt({target:"String",proto:!0,forced:yu},{padStart:function(t){return mu(this,t,arguments.length>1?arguments[1]:void 0)}}),ee("String","padStart");var bu=gu.end;kt({target:"String",proto:!0,forced:yu},{padEnd:function(t){return bu(this,t,arguments.length>1?arguments[1]:void 0)}}),ee("String","padEnd"),kt({target:"String",stat:!0},{raw:function(t){for(var e=v(t.raw),r=ct(e.length),n=arguments.length,o=[],i=0;r>i;)o.push(String(e[i++])),i<n&&o.push(String(arguments[i]));return o.join("")}}),kt({target:"String",proto:!0},{repeat:pu}),ee("String","repeat");var wu=O.f,Su="".startsWith,Eu=Math.min,xu=iu("startsWith"),Au=!xu&&!!function(){var t=wu(String.prototype,"startsWith");return t&&!t.writable}();kt({target:"String",proto:!0,forced:!Au&&!xu},{startsWith:function(t){var e=String(d(this));nu(t);var r=ct(Eu(arguments.length>1?arguments[1]:void 0,e.length)),n=String(t);return Su?Su.call(e,n,r):e.slice(r,r+n.length)===n}}),ee("String","startsWith");var Ou=function(t){return o(function(){return!!fn[t]()||"​…᠎"!="​…᠎"[t]()||fn[t].name!==t})},Ru=vn.start,ju=Ou("trimStart"),Pu=ju?function(){return Ru(this)}:"".trimStart;kt({target:"String",proto:!0,forced:ju},{trimStart:Pu,trimLeft:Pu}),ee("String","trimLeft");var Iu=vn.end,Tu=Ou("trimEnd"),ku=Tu?function(){return Iu(this)}:"".trimEnd;kt({target:"String",proto:!0,forced:Tu},{trimEnd:ku,trimRight:ku}),ee("String","trimRight");var Lu=Dt("iterator"),Uu=!o(function(){var t=new URL("b?a=1&b=2&c=3","http://a"),e=t.searchParams,r="";return t.pathname="c%20d",e.forEach(function(t,n){e.delete("b"),r+=n+t}),!e.sort||"http://a/c%20d?a=1&c=3"!==t.href||"3"!==e.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!e[Lu]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("http://тест").host||"#%D0%B1"!==new URL("http://a#б").hash||"a1c3"!==r||"x"!==new URL("http://x",void 0).host}),Mu=Object.assign,_u=Object.defineProperty,Nu=!Mu||o(function(){if(i&&1!==Mu({b:1},Mu(_u({},"a",{enumerable:!0,get:function(){_u(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},r=Symbol(),n="abcdefghijklmnopqrst";return t[r]=7,n.split("").forEach(function(t){e[t]=t}),7!=Mu({},t)[r]||qt(Mu({},e)).join("")!=n})?function(t,e){for(var r=Lt(t),n=arguments.length,o=1,a=wt.f,u=s.f;n>o;)for(var c,f=p(arguments[o++]),l=a?qt(f).concat(a(f)):qt(f),h=l.length,d=0;h>d;)c=l[d++],i&&!u.call(f,c)||(r[c]=f[c]);return r}:Mu,Cu=2147483647,Fu=/[^\0-\u007E]/,Bu=/[.\u3002\uFF0E\uFF61]/g,Du="Overflow: input needs wider integers to process",qu=Math.floor,zu=String.fromCharCode,Wu=function(t){return t+22+75*(t<26)},Ku=function(t,e,r){var n=0;for(t=r?qu(t/700):t>>1,t+=qu(t/e);t>455;n+=36)t=qu(t/35);return qu(n+36*t/(t+38))},Gu=function(t){var e,r,n=[],o=(t=function(t){for(var e=[],r=0,n=t.length;r<n;){var o=t.charCodeAt(r++);if(o>=55296&&o<=56319&&r<n){var i=t.charCodeAt(r++);56320==(64512&i)?e.push(((1023&o)<<10)+(1023&i)+65536):(e.push(o),r--)}else e.push(o)}return e}(t)).length,i=128,a=0,u=72;for(e=0;e<t.length;e++)(r=t[e])<128&&n.push(zu(r));var s=n.length,c=s;for(s&&n.push("-");c<o;){var f=Cu;for(e=0;e<t.length;e++)(r=t[e])>=i&&r<f&&(f=r);var l=c+1;if(f-i>qu((Cu-a)/l))throw RangeError(Du);for(a+=(f-i)*l,i=f,e=0;e<t.length;e++){if((r=t[e])<i&&++a>Cu)throw RangeError(Du);if(r==i){for(var h=a,p=36;;p+=36){var d=p<=u?1:p>=u+26?26:p-u;if(h<d)break;var v=h-d,g=36-d;n.push(zu(Wu(d+v%g))),h=qu(v/g)}n.push(zu(Wu(h))),u=Ku(a,l,c==s),a=0,++c}}++a,++i}return n.join("")},$u=ot("fetch"),Vu=ot("Headers"),Hu=Dt("iterator"),Xu="URLSearchParams",Yu="URLSearchParamsIterator",Ju=tt.set,Qu=tt.getterFor(Xu),Zu=tt.getterFor(Yu),ts=/\+/g,es=Array(4),rs=function(t){return es[t-1]||(es[t-1]=RegExp("((?:%[\\da-f]{2}){"+t+"})","gi"))},ns=function(t){try{return decodeURIComponent(t)}catch(e){return t}},os=function(t){var e=t.replace(ts," "),r=4;try{return decodeURIComponent(e)}catch(t){for(;r;)e=e.replace(rs(r--),ns);return e}},is=/[!'()~]|%20/g,as={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},us=function(t){return as[t]},ss=function(t){return encodeURIComponent(t).replace(is,us)},cs=function(t,e){if(e)for(var r,n,o=e.split("&"),i=0;i<o.length;)(r=o[i++]).length&&(n=r.split("="),t.push({key:os(n.shift()),value:os(n.join("="))}))},fs=function(t){this.entries.length=0,cs(this.entries,t)},ls=function(t,e){if(t<e)throw TypeError("Not enough arguments")},hs=Be(function(t,e){Ju(this,{type:Yu,iterator:on(Qu(t).entries),kind:e})},"Iterator",function(){var t=Zu(this),e=t.kind,r=t.iterator.next(),n=r.value;return r.done||(r.value="keys"===e?n.key:"values"===e?n.value:[n.key,n.value]),r}),ps=function(){_r(this,ps,Xu);var t,e,r,n,o,i,a,u,s,c=arguments.length>0?arguments[0]:void 0,f=this,l=[];if(Ju(f,{type:Xu,entries:l,updateURL:function(){},updateSearchParams:fs}),void 0!==c)if(g(c))if("function"==typeof(t=lr(c)))for(r=(e=t.call(c)).next;!(n=r.call(e)).done;){if((a=(i=(o=on(R(n.value))).next).call(o)).done||(u=i.call(o)).done||!i.call(o).done)throw TypeError("Expected sequence with length 2");l.push({key:a.value+"",value:u.value+""})}else for(s in c)b(c,s)&&l.push({key:s,value:c[s]+""});else cs(l,"string"==typeof c?"?"===c.charAt(0)?c.slice(1):c:c+"")},ds=ps.prototype;Fr(ds,{append:function(t,e){ls(arguments.length,2);var r=Qu(this);r.entries.push({key:t+"",value:e+""}),r.updateURL()},delete:function(t){ls(arguments.length,1);for(var e=Qu(this),r=e.entries,n=t+"",o=0;o<r.length;)r[o].key===n?r.splice(o,1):o++;e.updateURL()},get:function(t){ls(arguments.length,1);for(var e=Qu(this).entries,r=t+"",n=0;n<e.length;n++)if(e[n].key===r)return e[n].value;return null},getAll:function(t){ls(arguments.length,1);for(var e=Qu(this).entries,r=t+"",n=[],o=0;o<e.length;o++)e[o].key===r&&n.push(e[o].value);return n},has:function(t){ls(arguments.length,1);for(var e=Qu(this).entries,r=t+"",n=0;n<e.length;)if(e[n++].key===r)return!0;return!1},set:function(t,e){ls(arguments.length,1);for(var r,n=Qu(this),o=n.entries,i=!1,a=t+"",u=e+"",s=0;s<o.length;s++)(r=o[s]).key===a&&(i?o.splice(s--,1):(i=!0,r.value=u));i||o.push({key:a,value:u}),n.updateURL()},sort:function(){var t,e,r,n=Qu(this),o=n.entries,i=o.slice();for(o.length=0,r=0;r<i.length;r++){for(t=i[r],e=0;e<r;e++)if(o[e].key>t.key){o.splice(e,0,t);break}e===r&&o.push(t)}n.updateURL()},forEach:function(t){for(var e,r=Qu(this).entries,n=Zt(t,arguments.length>1?arguments[1]:void 0,3),o=0;o<r.length;)n((e=r[o++]).value,e.key,this)},keys:function(){return new hs(this,"keys")},values:function(){return new hs(this,"values")},entries:function(){return new hs(this,"entries")}},{enumerable:!0}),et(ds,Hu,ds.entries),et(ds,"toString",function(){for(var t,e=Qu(this).entries,r=[],n=0;n<e.length;)t=e[n++],r.push(ss(t.key)+"="+ss(t.value));return r.join("&")},{enumerable:!0}),_e(ps,Xu),kt({global:!0,forced:!Uu},{URLSearchParams:ps}),Uu||"function"!=typeof $u||"function"!=typeof Vu||kt({global:!0,enumerable:!0,forced:!0},{fetch:function(t){var e,r,n,o=[t];return arguments.length>1&&(g(e=arguments[1])&&cr(r=e.body)===Xu&&((n=e.headers?new Vu(e.headers):new Vu).has("content-type")||n.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"),e=Ht(e,{body:c(0,String(r)),headers:c(0,n)})),o.push(e)),$u.apply(this,o)}});var vs,gs={URLSearchParams:ps,getState:Qu},ys=Oe.codeAt,ms=n.URL,bs=gs.URLSearchParams,ws=gs.getState,Ss=tt.set,Es=tt.getterFor("URL"),xs=Math.floor,As=Math.pow,Os="Invalid scheme",Rs="Invalid host",js="Invalid port",Ps=/[A-Za-z]/,Is=/[\d+-.A-Za-z]/,Ts=/\d/,ks=/^(0x|0X)/,Ls=/^[0-7]+$/,Us=/^\d+$/,Ms=/^[\dA-Fa-f]+$/,_s=/[\u0000\u0009\u000A\u000D #%/:?@[\\]]/,Ns=/[\u0000\u0009\u000A\u000D #/:?@[\\]]/,Cs=/^[\u0000-\u001F ]+|[\u0000-\u001F ]+$/g,Fs=/[\u0009\u000A\u000D]/g,Bs=function(t,e){var r,n,o;if("["==e.charAt(0)){if("]"!=e.charAt(e.length-1))return Rs;if(!(r=qs(e.slice(1,-1))))return Rs;t.host=r}else if(Xs(t)){if(e=function(t){var e,r,n=[],o=t.toLowerCase().replace(Bu,".").split(".");for(e=0;e<o.length;e++)n.push(Fu.test(r=o[e])?"xn--"+Gu(r):r);return n.join(".")}(e),_s.test(e))return Rs;if(null===(r=Ds(e)))return Rs;t.host=r}else{if(Ns.test(e))return Rs;for(r="",n=hr(e),o=0;o<n.length;o++)r+=Vs(n[o],Ws);t.host=r}},Ds=function(t){var e,r,n,o,i,a,u,s=t.split(".");if(s.length&&""==s[s.length-1]&&s.pop(),(e=s.length)>4)return t;for(r=[],n=0;n<e;n++){if(""==(o=s[n]))return t;if(i=10,o.length>1&&"0"==o.charAt(0)&&(i=ks.test(o)?16:8,o=o.slice(8==i?1:2)),""===o)a=0;else{if(!(10==i?Us:8==i?Ls:Ms).test(o))return t;a=parseInt(o,i)}r.push(a)}for(n=0;n<e;n++)if(a=r[n],n==e-1){if(a>=As(256,5-e))return null}else if(a>255)return null;for(u=r.pop(),n=0;n<r.length;n++)u+=r[n]*As(256,3-n);return u},qs=function(t){var e,r,n,o,i,a,u,s=[0,0,0,0,0,0,0,0],c=0,f=null,l=0,h=function(){return t.charAt(l)};if(":"==h()){if(":"!=t.charAt(1))return;l+=2,f=++c}for(;h();){if(8==c)return;if(":"!=h()){for(e=r=0;r<4&&Ms.test(h());)e=16*e+parseInt(h(),16),l++,r++;if("."==h()){if(0==r)return;if(l-=r,c>6)return;for(n=0;h();){if(o=null,n>0){if(!("."==h()&&n<4))return;l++}if(!Ts.test(h()))return;for(;Ts.test(h());){if(i=parseInt(h(),10),null===o)o=i;else{if(0==o)return;o=10*o+i}if(o>255)return;l++}s[c]=256*s[c]+o,2!=++n&&4!=n||c++}if(4!=n)return;break}if(":"==h()){if(l++,!h())return}else if(h())return;s[c++]=e}else{if(null!==f)return;l++,f=++c}}if(null!==f)for(a=c-f,c=7;0!=c&&a>0;)u=s[c],s[c--]=s[f+a-1],s[f+--a]=u;else if(8!=c)return;return s},zs=function(t){var e,r,n,o;if("number"==typeof t){for(e=[],r=0;r<4;r++)e.unshift(t%256),t=xs(t/256);return e.join(".")}if("object"==typeof t){for(e="",n=function(t){for(var e=null,r=1,n=null,o=0,i=0;i<8;i++)0!==t[i]?(o>r&&(e=n,r=o),n=null,o=0):(null===n&&(n=i),++o);return o>r&&(e=n,r=o),e}(t),r=0;r<8;r++)o&&0===t[r]||(o&&(o=!1),n===r?(e+=r?":":"::",o=!0):(e+=t[r].toString(16),r<7&&(e+=":")));return"["+e+"]"}return t},Ws={},Ks=Nu({},Ws,{" ":1,'"':1,"<":1,">":1,"`":1}),Gs=Nu({},Ks,{"#":1,"?":1,"{":1,"}":1}),$s=Nu({},Gs,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),Vs=function(t,e){var r=ys(t,0);return r>32&&r<127&&!b(e,t)?t:encodeURIComponent(t)},Hs={ftp:21,file:null,http:80,https:443,ws:80,wss:443},Xs=function(t){return b(Hs,t.scheme)},Ys=function(t){return""!=t.username||""!=t.password},Js=function(t){return!t.host||t.cannotBeABaseURL||"file"==t.scheme},Qs=function(t,e){var r;return 2==t.length&&Ps.test(t.charAt(0))&&(":"==(r=t.charAt(1))||!e&&"|"==r)},Zs=function(t){var e;return t.length>1&&Qs(t.slice(0,2))&&(2==t.length||"/"===(e=t.charAt(2))||"\\"===e||"?"===e||"#"===e)},tc=function(t){var e=t.path,r=e.length;!r||"file"==t.scheme&&1==r&&Qs(e[0],!0)||e.pop()},ec=function(t){return"."===t||"%2e"===t.toLowerCase()},rc={},nc={},oc={},ic={},ac={},uc={},sc={},cc={},fc={},lc={},hc={},pc={},dc={},vc={},gc={},yc={},mc={},bc={},wc={},Sc={},Ec={},xc=function(t,e,r,n){var o,i,a,u,s,c=r||rc,f=0,l="",h=!1,p=!1,d=!1;for(r||(t.scheme="",t.username="",t.password="",t.host=null,t.port=null,t.path=[],t.query=null,t.fragment=null,t.cannotBeABaseURL=!1,e=e.replace(Cs,"")),e=e.replace(Fs,""),o=hr(e);f<=o.length;){switch(i=o[f],c){case rc:if(!i||!Ps.test(i)){if(r)return Os;c=oc;continue}l+=i.toLowerCase(),c=nc;break;case nc:if(i&&(Is.test(i)||"+"==i||"-"==i||"."==i))l+=i.toLowerCase();else{if(":"!=i){if(r)return Os;l="",c=oc,f=0;continue}if(r&&(Xs(t)!=b(Hs,l)||"file"==l&&(Ys(t)||null!==t.port)||"file"==t.scheme&&!t.host))return;if(t.scheme=l,r)return void(Xs(t)&&Hs[t.scheme]==t.port&&(t.port=null));l="","file"==t.scheme?c=vc:Xs(t)&&n&&n.scheme==t.scheme?c=ic:Xs(t)?c=cc:"/"==o[f+1]?(c=ac,f++):(t.cannotBeABaseURL=!0,t.path.push(""),c=wc)}break;case oc:if(!n||n.cannotBeABaseURL&&"#"!=i)return Os;if(n.cannotBeABaseURL&&"#"==i){t.scheme=n.scheme,t.path=n.path.slice(),t.query=n.query,t.fragment="",t.cannotBeABaseURL=!0,c=Ec;break}c="file"==n.scheme?vc:uc;continue;case ic:if("/"!=i||"/"!=o[f+1]){c=uc;continue}c=fc,f++;break;case ac:if("/"==i){c=lc;break}c=bc;continue;case uc:if(t.scheme=n.scheme,i==vs)t.username=n.username,t.password=n.password,t.host=n.host,t.port=n.port,t.path=n.path.slice(),t.query=n.query;else if("/"==i||"\\"==i&&Xs(t))c=sc;else if("?"==i)t.username=n.username,t.password=n.password,t.host=n.host,t.port=n.port,t.path=n.path.slice(),t.query="",c=Sc;else{if("#"!=i){t.username=n.username,t.password=n.password,t.host=n.host,t.port=n.port,t.path=n.path.slice(),t.path.pop(),c=bc;continue}t.username=n.username,t.password=n.password,t.host=n.host,t.port=n.port,t.path=n.path.slice(),t.query=n.query,t.fragment="",c=Ec}break;case sc:if(!Xs(t)||"/"!=i&&"\\"!=i){if("/"!=i){t.username=n.username,t.password=n.password,t.host=n.host,t.port=n.port,c=bc;continue}c=lc}else c=fc;break;case cc:if(c=fc,"/"!=i||"/"!=l.charAt(f+1))continue;f++;break;case fc:if("/"!=i&&"\\"!=i){c=lc;continue}break;case lc:if("@"==i){h&&(l="%40"+l),h=!0,a=hr(l);for(var v=0;v<a.length;v++){var g=a[v];if(":"!=g||d){var y=Vs(g,$s);d?t.password+=y:t.username+=y}else d=!0}l=""}else if(i==vs||"/"==i||"?"==i||"#"==i||"\\"==i&&Xs(t)){if(h&&""==l)return"Invalid authority";f-=hr(l).length+1,l="",c=hc}else l+=i;break;case hc:case pc:if(r&&"file"==t.scheme){c=yc;continue}if(":"!=i||p){if(i==vs||"/"==i||"?"==i||"#"==i||"\\"==i&&Xs(t)){if(Xs(t)&&""==l)return Rs;if(r&&""==l&&(Ys(t)||null!==t.port))return;if(u=Bs(t,l))return u;if(l="",c=mc,r)return;continue}"["==i?p=!0:"]"==i&&(p=!1),l+=i}else{if(""==l)return Rs;if(u=Bs(t,l))return u;if(l="",c=dc,r==pc)return}break;case dc:if(!Ts.test(i)){if(i==vs||"/"==i||"?"==i||"#"==i||"\\"==i&&Xs(t)||r){if(""!=l){var m=parseInt(l,10);if(m>65535)return js;t.port=Xs(t)&&m===Hs[t.scheme]?null:m,l=""}if(r)return;c=mc;continue}return js}l+=i;break;case vc:if(t.scheme="file","/"==i||"\\"==i)c=gc;else{if(!n||"file"!=n.scheme){c=bc;continue}if(i==vs)t.host=n.host,t.path=n.path.slice(),t.query=n.query;else if("?"==i)t.host=n.host,t.path=n.path.slice(),t.query="",c=Sc;else{if("#"!=i){Zs(o.slice(f).join(""))||(t.host=n.host,t.path=n.path.slice(),tc(t)),c=bc;continue}t.host=n.host,t.path=n.path.slice(),t.query=n.query,t.fragment="",c=Ec}}break;case gc:if("/"==i||"\\"==i){c=yc;break}n&&"file"==n.scheme&&!Zs(o.slice(f).join(""))&&(Qs(n.path[0],!0)?t.path.push(n.path[0]):t.host=n.host),c=bc;continue;case yc:if(i==vs||"/"==i||"\\"==i||"?"==i||"#"==i){if(!r&&Qs(l))c=bc;else if(""==l){if(t.host="",r)return;c=mc}else{if(u=Bs(t,l))return u;if("localhost"==t.host&&(t.host=""),r)return;l="",c=mc}continue}l+=i;break;case mc:if(Xs(t)){if(c=bc,"/"!=i&&"\\"!=i)continue}else if(r||"?"!=i)if(r||"#"!=i){if(i!=vs&&(c=bc,"/"!=i))continue}else t.fragment="",c=Ec;else t.query="",c=Sc;break;case bc:if(i==vs||"/"==i||"\\"==i&&Xs(t)||!r&&("?"==i||"#"==i)){if(".."===(s=(s=l).toLowerCase())||"%2e."===s||".%2e"===s||"%2e%2e"===s?(tc(t),"/"==i||"\\"==i&&Xs(t)||t.path.push("")):ec(l)?"/"==i||"\\"==i&&Xs(t)||t.path.push(""):("file"==t.scheme&&!t.path.length&&Qs(l)&&(t.host&&(t.host=""),l=l.charAt(0)+":"),t.path.push(l)),l="","file"==t.scheme&&(i==vs||"?"==i||"#"==i))for(;t.path.length>1&&""===t.path[0];)t.path.shift();"?"==i?(t.query="",c=Sc):"#"==i&&(t.fragment="",c=Ec)}else l+=Vs(i,Gs);break;case wc:"?"==i?(t.query="",c=Sc):"#"==i?(t.fragment="",c=Ec):i!=vs&&(t.path[0]+=Vs(i,Ws));break;case Sc:r||"#"!=i?i!=vs&&("'"==i&&Xs(t)?t.query+="%27":t.query+="#"==i?"%23":Vs(i,Ws)):(t.fragment="",c=Ec);break;case Ec:i!=vs&&(t.fragment+=Vs(i,Ks))}f++}},Ac=function(t){var e,r,n=_r(this,Ac,"URL"),o=arguments.length>1?arguments[1]:void 0,a=String(t),u=Ss(n,{type:"URL"});if(void 0!==o)if(o instanceof Ac)e=Es(o);else if(r=xc(e={},String(o)))throw TypeError(r);if(r=xc(u,a,null,e))throw TypeError(r);var s=u.searchParams=new bs,c=ws(s);c.updateSearchParams(u.query),c.updateURL=function(){u.query=String(s)||null},i||(n.href=Rc.call(n),n.origin=jc.call(n),n.protocol=Pc.call(n),n.username=Ic.call(n),n.password=Tc.call(n),n.host=kc.call(n),n.hostname=Lc.call(n),n.port=Uc.call(n),n.pathname=Mc.call(n),n.search=_c.call(n),n.searchParams=Nc.call(n),n.hash=Cc.call(n))},Oc=Ac.prototype,Rc=function(){var t=Es(this),e=t.scheme,r=t.username,n=t.password,o=t.host,i=t.port,a=t.path,u=t.query,s=t.fragment,c=e+":";return null!==o?(c+="//",Ys(t)&&(c+=r+(n?":"+n:"")+"@"),c+=zs(o),null!==i&&(c+=":"+i)):"file"==e&&(c+="//"),c+=t.cannotBeABaseURL?a[0]:a.length?"/"+a.join("/"):"",null!==u&&(c+="?"+u),null!==s&&(c+="#"+s),c},jc=function(){var t=Es(this),e=t.scheme,r=t.port;if("blob"==e)try{return new URL(e.path[0]).origin}catch(t){return"null"}return"file"!=e&&Xs(t)?e+"://"+zs(t.host)+(null!==r?":"+r:""):"null"},Pc=function(){return Es(this).scheme+":"},Ic=function(){return Es(this).username},Tc=function(){return Es(this).password},kc=function(){var t=Es(this),e=t.host,r=t.port;return null===e?"":null===r?zs(e):zs(e)+":"+r},Lc=function(){var t=Es(this).host;return null===t?"":zs(t)},Uc=function(){var t=Es(this).port;return null===t?"":String(t)},Mc=function(){var t=Es(this),e=t.path;return t.cannotBeABaseURL?e[0]:e.length?"/"+e.join("/"):""},_c=function(){var t=Es(this).query;return t?"?"+t:""},Nc=function(){return Es(this).searchParams},Cc=function(){var t=Es(this).fragment;return t?"#"+t:""},Fc=function(t,e){return{get:t,set:e,configurable:!0,enumerable:!0}};if(i&&zt(Oc,{href:Fc(Rc,function(t){var e=Es(this),r=String(t),n=xc(e,r);if(n)throw TypeError(n);ws(e.searchParams).updateSearchParams(e.query)}),origin:Fc(jc),protocol:Fc(Pc,function(t){var e=Es(this);xc(e,String(t)+":",rc)}),username:Fc(Ic,function(t){var e=Es(this),r=hr(String(t));if(!Js(e)){e.username="";for(var n=0;n<r.length;n++)e.username+=Vs(r[n],$s)}}),password:Fc(Tc,function(t){var e=Es(this),r=hr(String(t));if(!Js(e)){e.password="";for(var n=0;n<r.length;n++)e.password+=Vs(r[n],$s)}}),host:Fc(kc,function(t){var e=Es(this);e.cannotBeABaseURL||xc(e,String(t),hc)}),hostname:Fc(Lc,function(t){var e=Es(this);e.cannotBeABaseURL||xc(e,String(t),pc)}),port:Fc(Uc,function(t){var e=Es(this);Js(e)||(""==(t=String(t))?e.port=null:xc(e,t,dc))}),pathname:Fc(Mc,function(t){var e=Es(this);e.cannotBeABaseURL||(e.path=[],xc(e,t+"",mc))}),search:Fc(_c,function(t){var e=Es(this);""==(t=String(t))?e.query=null:("?"==t.charAt(0)&&(t=t.slice(1)),e.query="",xc(e,t,Sc)),ws(e.searchParams).updateSearchParams(e.query)}),searchParams:Fc(Nc),hash:Fc(Cc,function(t){var e=Es(this);""!=(t=String(t))?("#"==t.charAt(0)&&(t=t.slice(1)),e.fragment="",xc(e,t,Ec)):e.fragment=null})}),et(Oc,"toJSON",function(){return Rc.call(this)},{enumerable:!0}),et(Oc,"toString",function(){return Rc.call(this)},{enumerable:!0}),ms){var Bc=ms.createObjectURL,Dc=ms.revokeObjectURL;Bc&&et(Ac,"createObjectURL",function(t){return Bc.apply(ms,arguments)}),Dc&&et(Ac,"revokeObjectURL",function(t){return Dc.apply(ms,arguments)})}_e(Ac,"URL"),kt({global:!0,forced:!Uu,sham:!i},{URL:Ac}),kt({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return URL.prototype.toString.call(this)}}),kt({target:"WeakMap",stat:!0},{from:en}),kt({target:"WeakMap",stat:!0},{of:rn}),kt({target:"WeakMap",proto:!0,real:!0,forced:D},{deleteAll:function(){return nn.apply(this,arguments)}}),kt({target:"WeakMap",proto:!0,real:!0,forced:D},{upsert:cn}),Cr("WeakSet",function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},mo),kt({target:"WeakSet",proto:!0,real:!0,forced:D},{addAll:function(){return Hi.apply(this,arguments)}}),kt({target:"WeakSet",proto:!0,real:!0,forced:D},{deleteAll:function(){return nn.apply(this,arguments)}}),kt({target:"WeakSet",stat:!0},{from:en}),kt({target:"WeakSet",stat:!0},{of:rn});var qc,zc,Wc,Kc=n.Promise,Gc=/(iphone|ipod|ipad).*applewebkit/i.test(Qi),$c=n.location,Vc=n.setImmediate,Hc=n.clearImmediate,Xc=n.process,Yc=n.MessageChannel,Jc=n.Dispatch,Qc=0,Zc={},tf=function(t){if(Zc.hasOwnProperty(t)){var e=Zc[t];delete Zc[t],e()}},ef=function(t){return function(){tf(t)}},rf=function(t){tf(t.data)},nf=function(t){n.postMessage(t+"",$c.protocol+"//"+$c.host)};Vc&&Hc||(Vc=function(t){for(var e=[],r=1;arguments.length>r;)e.push(arguments[r++]);return Zc[++Qc]=function(){("function"==typeof t?t:Function(t)).apply(void 0,e)},qc(Qc),Qc},Hc=function(t){delete Zc[t]},"process"==l(Xc)?qc=function(t){Xc.nextTick(ef(t))}:Jc&&Jc.now?qc=function(t){Jc.now(ef(t))}:Yc&&!Gc?(Wc=(zc=new Yc).port2,zc.port1.onmessage=rf,qc=Zt(Wc.postMessage,Wc,1)):!n.addEventListener||"function"!=typeof postMessage||n.importScripts||o(nf)||"file:"===$c.protocol?qc="onreadystatechange"in E("script")?function(t){Wt.appendChild(E("script")).onreadystatechange=function(){Wt.removeChild(this),tf(t)}}:function(t){setTimeout(ef(t),0)}:(qc=nf,n.addEventListener("message",rf,!1)));var of,af,uf,sf,cf,ff,lf,hf,pf={set:Vc,clear:Hc},df=O.f,vf=pf.set,gf=n.MutationObserver||n.WebKitMutationObserver,yf=n.process,mf=n.Promise,bf="process"==l(yf),wf=df(n,"queueMicrotask"),Sf=wf&&wf.value;Sf||(of=function(){var t,e;for(bf&&(t=yf.domain)&&t.exit();af;){e=af.fn,af=af.next;try{e()}catch(t){throw af?sf():uf=void 0,t}}uf=void 0,t&&t.enter()},bf?sf=function(){yf.nextTick(of)}:gf&&!Gc?(cf=!0,ff=document.createTextNode(""),new gf(of).observe(ff,{characterData:!0}),sf=function(){ff.data=cf=!cf}):mf&&mf.resolve?(lf=mf.resolve(void 0),hf=lf.then,sf=function(){hf.call(lf,of)}):sf=function(){vf.call(n,of)});var Ef,xf,Af,Of,Rf=Sf||function(t){var e={fn:t,next:void 0};uf&&(uf.next=e),af||(af=e,sf()),uf=e},jf=function(t){var e,r;this.promise=new t(function(t,n){if(void 0!==e||void 0!==r)throw TypeError("Bad Promise constructor");e=t,r=n}),this.resolve=Qt(e),this.reject=Qt(r)},Pf={f:function(t){return new jf(t)}},If=function(t,e){if(R(t),g(e)&&e.constructor===t)return e;var r=Pf.f(t);return(0,r.resolve)(e),r.promise},Tf=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}},kf=pf.set,Lf=Dt("species"),Uf="Promise",Mf=tt.get,_f=tt.set,Nf=tt.getterFor(Uf),Cf=Kc,Ff=n.TypeError,Bf=n.document,Df=n.process,qf=ot("fetch"),zf=Pf.f,Wf=zf,Kf="process"==l(Df),Gf=!!(Bf&&Bf.createEvent&&n.dispatchEvent),$f="unhandledrejection",Vf=It(Uf,function(){if(C(Cf)===String(Cf)){if(66===ra)return!0;if(!Kf&&"function"!=typeof PromiseRejectionEvent)return!0}if(ra>=51&&/native code/.test(Cf))return!1;var t=Cf.resolve(1),e=function(t){t(function(){},function(){})};return(t.constructor={})[Lf]=e,!(t.then(function(){})instanceof e)}),Hf=Vf||!yr(function(t){Cf.all(t).catch(function(){})}),Xf=function(t){var e;return!(!g(t)||"function"!=typeof(e=t.then))&&e},Yf=function(t,e,r){if(!e.notified){e.notified=!0;var n=e.reactions;Rf(function(){for(var o=e.value,i=1==e.state,a=0;n.length>a;){var u,s,c,f=n[a++],l=i?f.ok:f.fail,h=f.resolve,p=f.reject,d=f.domain;try{l?(i||(2===e.rejection&&tl(t,e),e.rejection=1),!0===l?u=o:(d&&d.enter(),u=l(o),d&&(d.exit(),c=!0)),u===f.promise?p(Ff("Promise-chain cycle")):(s=Xf(u))?s.call(u,h,p):h(u)):p(o)}catch(t){d&&!c&&d.exit(),p(t)}}e.reactions=[],e.notified=!1,r&&!e.rejection&&Qf(t,e)})}},Jf=function(t,e,r){var o,i;Gf?((o=Bf.createEvent("Event")).promise=e,o.reason=r,o.initEvent(t,!1,!0),n.dispatchEvent(o)):o={promise:e,reason:r},(i=n["on"+t])?i(o):t===$f&&function(t,e){var r=n.console;r&&r.error&&(1===arguments.length?r.error(t):r.error(t,e))}("Unhandled promise rejection",r)},Qf=function(t,e){kf.call(n,function(){var r,n=e.value;if(Zf(e)&&(r=Tf(function(){Kf?Df.emit("unhandledRejection",n,t):Jf($f,t,n)}),e.rejection=Kf||Zf(e)?2:1,r.error))throw r.value})},Zf=function(t){return 1!==t.rejection&&!t.parent},tl=function(t,e){kf.call(n,function(){Kf?Df.emit("rejectionHandled",t):Jf("rejectionhandled",t,e.value)})},el=function(t,e,r,n){return function(o){t(e,r,o,n)}},rl=function(t,e,r,n){e.done||(e.done=!0,n&&(e=n),e.value=r,e.state=2,Yf(t,e,!0))},nl=function t(e,r,n,o){if(!r.done){r.done=!0,o&&(r=o);try{if(e===n)throw Ff("Promise can't be resolved itself");var i=Xf(n);i?Rf(function(){var o={done:!1};try{i.call(n,el(t,e,o,r),el(rl,e,o,r))}catch(t){rl(e,o,t,r)}}):(r.value=n,r.state=1,Yf(e,r,!1))}catch(t){rl(e,{done:!1},t,r)}}};Vf&&(Cf=function(t){_r(this,Cf,Uf),Qt(t),Ef.call(this);var e=Mf(this);try{t(el(nl,this,e),el(rl,this,e))}catch(t){rl(this,e,t)}},(Ef=function(t){_f(this,{type:Uf,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=Fr(Cf.prototype,{then:function(t,e){var r=Nf(this),n=zf(sn(this,Cf));return n.ok="function"!=typeof t||t,n.fail="function"==typeof e&&e,n.domain=Kf?Df.domain:void 0,r.parent=!0,r.reactions.push(n),0!=r.state&&Yf(this,r,!1),n.promise},catch:function(t){return this.then(void 0,t)}}),xf=function(){var t=new Ef,e=Mf(t);this.promise=t,this.resolve=el(nl,t,e),this.reject=el(rl,t,e)},Pf.f=zf=function(t){return t===Cf||t===Af?new xf(t):Wf(t)},"function"==typeof Kc&&(Of=Kc.prototype.then,et(Kc.prototype,"then",function(t,e){var r=this;return new Cf(function(t,e){Of.call(r,t,e)}).then(t,e)},{unsafe:!0}),"function"==typeof qf&&kt({global:!0,enumerable:!0,forced:!0},{fetch:function(t){return If(Cf,qf.apply(n,arguments))}}))),kt({global:!0,wrap:!0,forced:Vf},{Promise:Cf}),_e(Cf,Uf,!1),Dr(Uf),Af=ot(Uf),kt({target:Uf,stat:!0,forced:Vf},{reject:function(t){var e=zf(this);return e.reject.call(void 0,t),e.promise}}),kt({target:Uf,stat:!0,forced:Vf},{resolve:function(t){return If(this,t)}}),kt({target:Uf,stat:!0,forced:Hf},{all:function(t){var e=this,r=zf(e),n=r.resolve,o=r.reject,i=Tf(function(){var r=Qt(e.resolve),i=[],a=0,u=1;Mr(t,function(t){var s=a++,c=!1;i.push(void 0),u++,r.call(e,t).then(function(t){c||(c=!0,i[s]=t,--u||n(i))},o)}),--u||n(i)});return i.error&&o(i.value),r.promise},race:function(t){var e=this,r=zf(e),n=r.reject,o=Tf(function(){var o=Qt(e.resolve);Mr(t,function(t){o.call(e,t).then(r.resolve,n)})});return o.error&&n(o.value),r.promise}}),kt({target:"Promise",stat:!0},{allSettled:function(t){var e=this,r=Pf.f(e),n=r.resolve,o=r.reject,i=Tf(function(){var r=Qt(e.resolve),o=[],i=0,a=1;Mr(t,function(t){var u=i++,s=!1;o.push(void 0),a++,r.call(e,t).then(function(t){s||(s=!0,o[u]={status:"fulfilled",value:t},--a||n(o))},function(t){s||(s=!0,o[u]={status:"rejected",reason:t},--a||n(o))})}),--a||n(o)});return i.error&&o(i.value),r.promise}});var ol=!!Kc&&o(function(){Kc.prototype.finally.call({then:function(){}},function(){})});kt({target:"Promise",proto:!0,real:!0,forced:ol},{finally:function(t){var e=sn(this,ot("Promise")),r="function"==typeof t;return this.then(r?function(r){return If(e,t()).then(function(){return r})}:t,r?function(r){return If(e,t()).then(function(){throw r})}:t)}}),"function"!=typeof Kc||Kc.prototype.finally||et(Kc.prototype,"finally",ot("Promise").prototype.finally);var il=tt.set,al=tt.getterFor("AggregateError"),ul=function(t,e){var r=this;if(!(r instanceof ul))return new ul(t,e);qe&&(r=qe(new Error(e),Ie(r)));var n=[];return Mr(t,n.push,n),i?il(r,{errors:n,type:"AggregateError"}):r.errors=n,void 0!==e&&I(r,"message",String(e)),r};ul.prototype=Ht(Error.prototype,{constructor:c(5,ul),message:c(5,""),name:c(5,"AggregateError")}),i&&P.f(ul.prototype,"errors",{get:function(){return al(this).errors},configurable:!0}),kt({global:!0},{AggregateError:ul}),kt({target:"Promise",stat:!0},{try:function(t){var e=Pf.f(this),r=Tf(t);return(r.error?e.reject:e.resolve)(r.value),e.promise}});var sl="No one promise resolved";kt({target:"Promise",stat:!0},{any:function(t){var e=this,r=Pf.f(e),n=r.resolve,o=r.reject,i=Tf(function(){var r=Qt(e.resolve),i=[],a=0,u=1,s=!1;Mr(t,function(t){var c=a++,f=!1;i.push(void 0),u++,r.call(e,t).then(function(t){f||s||(s=!0,n(t))},function(t){f||s||(f=!0,i[c]=t,--u||o(new(ot("AggregateError"))(i,sl)))})}),--u||o(new(ot("AggregateError"))(i,sl))});return i.error&&o(i.value),r.promise}}),ee("Promise","finally");var cl="URLSearchParams"in self,fl="Symbol"in self&&"iterator"in Symbol,ll="FileReader"in self&&"Blob"in self&&function(){try{return new Blob,!0}catch(t){return!1}}(),hl="FormData"in self,pl="ArrayBuffer"in self;if(pl)var dl=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],vl=ArrayBuffer.isView||function(t){return t&&dl.indexOf(Object.prototype.toString.call(t))>-1};function gl(t){if("string"!=typeof t&&(t=String(t)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(t))throw new TypeError("Invalid character in header field name");return t.toLowerCase()}function yl(t){return"string"!=typeof t&&(t=String(t)),t}function ml(t){var e={next:function(){var e=t.shift();return{done:void 0===e,value:e}}};return fl&&(e[Symbol.iterator]=function(){return e}),e}function bl(t){this.map={},t instanceof bl?t.forEach(function(t,e){this.append(e,t)},this):Array.isArray(t)?t.forEach(function(t){this.append(t[0],t[1])},this):t&&Object.getOwnPropertyNames(t).forEach(function(e){this.append(e,t[e])},this)}function wl(t){if(t.bodyUsed)return Promise.reject(new TypeError("Already read"));t.bodyUsed=!0}function Sl(t){return new Promise(function(e,r){t.onload=function(){e(t.result)},t.onerror=function(){r(t.error)}})}function El(t){var e=new FileReader,r=Sl(e);return e.readAsArrayBuffer(t),r}function xl(t){if(t.slice)return t.slice(0);var e=new Uint8Array(t.byteLength);return e.set(new Uint8Array(t)),e.buffer}function Al(){return this.bodyUsed=!1,this._initBody=function(t){var e;this._bodyInit=t,t?"string"==typeof t?this._bodyText=t:ll&&Blob.prototype.isPrototypeOf(t)?this._bodyBlob=t:hl&&FormData.prototype.isPrototypeOf(t)?this._bodyFormData=t:cl&&URLSearchParams.prototype.isPrototypeOf(t)?this._bodyText=t.toString():pl&&ll&&(e=t)&&DataView.prototype.isPrototypeOf(e)?(this._bodyArrayBuffer=xl(t.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):pl&&(ArrayBuffer.prototype.isPrototypeOf(t)||vl(t))?this._bodyArrayBuffer=xl(t):this._bodyText=t=Object.prototype.toString.call(t):this._bodyText="",this.headers.get("content-type")||("string"==typeof t?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):cl&&URLSearchParams.prototype.isPrototypeOf(t)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},ll&&(this.blob=function(){var t=wl(this);if(t)return t;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?wl(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(El)}),this.text=function(){var t=wl(this);if(t)return t;if(this._bodyBlob)return function(t){var e=new FileReader,r=Sl(e);return e.readAsText(t),r}(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(function(t){for(var e=new Uint8Array(t),r=new Array(e.length),n=0;n<e.length;n++)r[n]=String.fromCharCode(e[n]);return r.join("")}(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},hl&&(this.formData=function(){return this.text().then(jl)}),this.json=function(){return this.text().then(JSON.parse)},this}bl.prototype.append=function(t,e){t=gl(t),e=yl(e);var r=this.map[t];this.map[t]=r?r+", "+e:e},bl.prototype.delete=function(t){delete this.map[gl(t)]},bl.prototype.get=function(t){return t=gl(t),this.has(t)?this.map[t]:null},bl.prototype.has=function(t){return this.map.hasOwnProperty(gl(t))},bl.prototype.set=function(t,e){this.map[gl(t)]=yl(e)},bl.prototype.forEach=function(t,e){for(var r in this.map)this.map.hasOwnProperty(r)&&t.call(e,this.map[r],r,this)},bl.prototype.keys=function(){var t=[];return this.forEach(function(e,r){t.push(r)}),ml(t)},bl.prototype.values=function(){var t=[];return this.forEach(function(e){t.push(e)}),ml(t)},bl.prototype.entries=function(){var t=[];return this.forEach(function(e,r){t.push([r,e])}),ml(t)},fl&&(bl.prototype[Symbol.iterator]=bl.prototype.entries);var Ol=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function Rl(t,e){var r,n,o=(e=e||{}).body;if(t instanceof Rl){if(t.bodyUsed)throw new TypeError("Already read");this.url=t.url,this.credentials=t.credentials,e.headers||(this.headers=new bl(t.headers)),this.method=t.method,this.mode=t.mode,this.signal=t.signal,o||null==t._bodyInit||(o=t._bodyInit,t.bodyUsed=!0)}else this.url=String(t);if(this.credentials=e.credentials||this.credentials||"same-origin",!e.headers&&this.headers||(this.headers=new bl(e.headers)),this.method=(n=(r=e.method||this.method||"GET").toUpperCase(),Ol.indexOf(n)>-1?n:r),this.mode=e.mode||this.mode||null,this.signal=e.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&o)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(o)}function jl(t){var e=new FormData;return t.trim().split("&").forEach(function(t){if(t){var r=t.split("="),n=r.shift().replace(/\+/g," "),o=r.join("=").replace(/\+/g," ");e.append(decodeURIComponent(n),decodeURIComponent(o))}}),e}function Pl(t,e){e||(e={}),this.type="default",this.status=void 0===e.status?200:e.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in e?e.statusText:"OK",this.headers=new bl(e.headers),this.url=e.url||"",this._initBody(t)}Rl.prototype.clone=function(){return new Rl(this,{body:this._bodyInit})},Al.call(Rl.prototype),Al.call(Pl.prototype),Pl.prototype.clone=function(){return new Pl(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new bl(this.headers),url:this.url})},Pl.error=function(){var t=new Pl(null,{status:0,statusText:""});return t.type="error",t};var Il=[301,302,303,307,308];Pl.redirect=function(t,e){if(-1===Il.indexOf(e))throw new RangeError("Invalid status code");return new Pl(null,{status:e,headers:{location:t}})};var Tl=self.DOMException;try{new Tl}catch(t){(Tl=function(t,e){this.message=t,this.name=e;var r=Error(t);this.stack=r.stack}).prototype=Object.create(Error.prototype),Tl.prototype.constructor=Tl}function kl(t,e){return new Promise(function(r,n){var o=new Rl(t,e);if(o.signal&&o.signal.aborted)return n(new Tl("Aborted","AbortError"));var i=new XMLHttpRequest;function a(){i.abort()}i.onload=function(){var t,e,n={status:i.status,statusText:i.statusText,headers:(t=i.getAllResponseHeaders()||"",e=new bl,t.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach(function(t){var r=t.split(":"),n=r.shift().trim();if(n){var o=r.join(":").trim();e.append(n,o)}}),e)};n.url="responseURL"in i?i.responseURL:n.headers.get("X-Request-URL"),r(new Pl("response"in i?i.response:i.responseText,n))},i.onerror=function(){n(new TypeError("Network request failed"))},i.ontimeout=function(){n(new TypeError("Network request failed"))},i.onabort=function(){n(new Tl("Aborted","AbortError"))},i.open(o.method,o.url,!0),"include"===o.credentials?i.withCredentials=!0:"omit"===o.credentials&&(i.withCredentials=!1),"responseType"in i&&ll&&(i.responseType="blob"),o.headers.forEach(function(t,e){i.setRequestHeader(e,t)}),o.signal&&(o.signal.addEventListener("abort",a),i.onreadystatechange=function(){4===i.readyState&&o.signal.removeEventListener("abort",a)}),i.send(void 0===o._bodyInit?null:o._bodyInit)})}kl.polyfill=!0,self.fetch||(self.fetch=kl,self.Headers=bl,self.Request=Rl,self.Response=Pl);var Ll=Object.getOwnPropertySymbols,Ul=Object.prototype.hasOwnProperty,Ml=Object.prototype.propertyIsEnumerable;function _l(t){if(null==t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}var Nl=function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},r=0;r<10;r++)e["_"+String.fromCharCode(r)]=r;if("0123456789"!==Object.getOwnPropertyNames(e).map(function(t){return e[t]}).join(""))return!1;var n={};return"abcdefghijklmnopqrst".split("").forEach(function(t){n[t]=t}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},n)).join("")}catch(t){return!1}}()?Object.assign:function(t,e){for(var r,n,o=_l(t),i=1;i<arguments.length;i++){for(var a in r=Object(arguments[i]))Ul.call(r,a)&&(o[a]=r[a]);if(Ll){n=Ll(r);for(var u=0;u<n.length;u++)Ml.call(r,n[u])&&(o[n[u]]=r[n[u]])}}return o};Object.assign=Nl}(); diff --git a/.next/static/chunks/react-refresh.js b/.next/static/chunks/react-refresh.js new file mode 100644 index 0000000..d6ea912 --- /dev/null +++ b/.next/static/chunks/react-refresh.js @@ -0,0 +1,62 @@ +// runtime can't be in strict mode because a global variable is assign and maybe created. +/* + * 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/). + */ +(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["react-refresh"],{ + +/***/ "./node_modules/@next/react-refresh-utils/internal/helpers.js": +/*!********************************************************************!*\ + !*** ./node_modules/@next/react-refresh-utils/internal/helpers.js ***! + \********************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n/**\n * MIT License\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n// This file is copied from the Metro JavaScript bundler, with minor tweaks for\n// webpack 4 compatibility.\n//\n// https://github.com/facebook/metro/blob/d6b9685c730d0d63577db40f41369157f28dfa3a/packages/metro/src/lib/polyfills/require.js\nconst runtime_1 = __importDefault(__webpack_require__(/*! react-refresh/runtime */ \"./node_modules/react-refresh/runtime.js\"));\nfunction isSafeExport(key) {\n return (key === '__esModule' ||\n key === '__N_SSG' ||\n key === '__N_SSP' ||\n key === '__N_RSC' ||\n // TODO: remove this key from page config instead of allow listing it\n key === 'config');\n}\nfunction registerExportsForReactRefresh(moduleExports, moduleID) {\n runtime_1.default.register(moduleExports, moduleID + ' %exports%');\n if (moduleExports == null || typeof moduleExports !== 'object') {\n // Exit if we can't iterate over exports.\n // (This is important for legacy environments.)\n return;\n }\n for (var key in moduleExports) {\n if (isSafeExport(key)) {\n continue;\n }\n var exportValue = moduleExports[key];\n var typeID = moduleID + ' %exports% ' + key;\n runtime_1.default.register(exportValue, typeID);\n }\n}\nfunction isReactRefreshBoundary(moduleExports) {\n if (runtime_1.default.isLikelyComponentType(moduleExports)) {\n return true;\n }\n if (moduleExports == null || typeof moduleExports !== 'object') {\n // Exit if we can't iterate over exports.\n return false;\n }\n var hasExports = false;\n var areAllExportsComponents = true;\n for (var key in moduleExports) {\n hasExports = true;\n if (isSafeExport(key)) {\n continue;\n }\n var exportValue = moduleExports[key];\n if (!runtime_1.default.isLikelyComponentType(exportValue)) {\n areAllExportsComponents = false;\n }\n }\n return hasExports && areAllExportsComponents;\n}\nfunction shouldInvalidateReactRefreshBoundary(prevExports, nextExports) {\n var prevSignature = getRefreshBoundarySignature(prevExports);\n var nextSignature = getRefreshBoundarySignature(nextExports);\n if (prevSignature.length !== nextSignature.length) {\n return true;\n }\n for (var i = 0; i < nextSignature.length; i++) {\n if (prevSignature[i] !== nextSignature[i]) {\n return true;\n }\n }\n return false;\n}\nfunction getRefreshBoundarySignature(moduleExports) {\n var signature = [];\n signature.push(runtime_1.default.getFamilyByType(moduleExports));\n if (moduleExports == null || typeof moduleExports !== 'object') {\n // Exit if we can't iterate over exports.\n // (This is important for legacy environments.)\n return signature;\n }\n for (var key in moduleExports) {\n if (isSafeExport(key)) {\n continue;\n }\n var exportValue = moduleExports[key];\n signature.push(key);\n signature.push(runtime_1.default.getFamilyByType(exportValue));\n }\n return signature;\n}\nvar isUpdateScheduled = false;\nfunction scheduleUpdate() {\n if (isUpdateScheduled) {\n return;\n }\n function canApplyUpdate() {\n return module.hot.status() === 'idle';\n }\n isUpdateScheduled = true;\n setTimeout(function () {\n isUpdateScheduled = false;\n // Only trigger refresh if the webpack HMR state is idle\n if (canApplyUpdate()) {\n try {\n runtime_1.default.performReactRefresh();\n }\n catch (err) {\n console.warn('Warning: Failed to re-render. We will retry on the next Fast Refresh event.\\n' +\n err);\n }\n return;\n }\n return scheduleUpdate();\n }, 30);\n}\n// Needs to be compatible with IE11\nexports[\"default\"] = {\n registerExportsForReactRefresh: registerExportsForReactRefresh,\n isReactRefreshBoundary: isReactRefreshBoundary,\n shouldInvalidateReactRefreshBoundary: shouldInvalidateReactRefreshBoundary,\n getRefreshBoundarySignature: getRefreshBoundarySignature,\n scheduleUpdate: scheduleUpdate,\n};\n//# sourceMappingURL=helpers.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtcmVmcmVzaC11dGlscy9pbnRlcm5hbC9oZWxwZXJzLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkNBQTZDO0FBQzdDO0FBQ0EsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0NBQWtDLG1CQUFPLENBQUMsc0VBQXVCO0FBQ2pFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLDBCQUEwQjtBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLFVBQVU7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLGtCQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BuZXh0L3JlYWN0LXJlZnJlc2gtdXRpbHMvaW50ZXJuYWwvaGVscGVycy5qcz85MDA5Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuLyoqXG4gKiBNSVQgTGljZW5zZVxuICpcbiAqIENvcHlyaWdodCAoYykgRmFjZWJvb2ssIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLlxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbiAqIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuICogU09GVFdBUkUuXG4gKi9cbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbi8vIFRoaXMgZmlsZSBpcyBjb3BpZWQgZnJvbSB0aGUgTWV0cm8gSmF2YVNjcmlwdCBidW5kbGVyLCB3aXRoIG1pbm9yIHR3ZWFrcyBmb3Jcbi8vIHdlYnBhY2sgNCBjb21wYXRpYmlsaXR5LlxuLy9cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9tZXRyby9ibG9iL2Q2Yjk2ODVjNzMwZDBkNjM1NzdkYjQwZjQxMzY5MTU3ZjI4ZGZhM2EvcGFja2FnZXMvbWV0cm8vc3JjL2xpYi9wb2x5ZmlsbHMvcmVxdWlyZS5qc1xuY29uc3QgcnVudGltZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJyZWFjdC1yZWZyZXNoL3J1bnRpbWVcIikpO1xuZnVuY3Rpb24gaXNTYWZlRXhwb3J0KGtleSkge1xuICAgIHJldHVybiAoa2V5ID09PSAnX19lc01vZHVsZScgfHxcbiAgICAgICAga2V5ID09PSAnX19OX1NTRycgfHxcbiAgICAgICAga2V5ID09PSAnX19OX1NTUCcgfHxcbiAgICAgICAga2V5ID09PSAnX19OX1JTQycgfHxcbiAgICAgICAgLy8gVE9ETzogcmVtb3ZlIHRoaXMga2V5IGZyb20gcGFnZSBjb25maWcgaW5zdGVhZCBvZiBhbGxvdyBsaXN0aW5nIGl0XG4gICAgICAgIGtleSA9PT0gJ2NvbmZpZycpO1xufVxuZnVuY3Rpb24gcmVnaXN0ZXJFeHBvcnRzRm9yUmVhY3RSZWZyZXNoKG1vZHVsZUV4cG9ydHMsIG1vZHVsZUlEKSB7XG4gICAgcnVudGltZV8xLmRlZmF1bHQucmVnaXN0ZXIobW9kdWxlRXhwb3J0cywgbW9kdWxlSUQgKyAnICVleHBvcnRzJScpO1xuICAgIGlmIChtb2R1bGVFeHBvcnRzID09IG51bGwgfHwgdHlwZW9mIG1vZHVsZUV4cG9ydHMgIT09ICdvYmplY3QnKSB7XG4gICAgICAgIC8vIEV4aXQgaWYgd2UgY2FuJ3QgaXRlcmF0ZSBvdmVyIGV4cG9ydHMuXG4gICAgICAgIC8vIChUaGlzIGlzIGltcG9ydGFudCBmb3IgbGVnYWN5IGVudmlyb25tZW50cy4pXG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZm9yICh2YXIga2V5IGluIG1vZHVsZUV4cG9ydHMpIHtcbiAgICAgICAgaWYgKGlzU2FmZUV4cG9ydChrZXkpKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZXhwb3J0VmFsdWUgPSBtb2R1bGVFeHBvcnRzW2tleV07XG4gICAgICAgIHZhciB0eXBlSUQgPSBtb2R1bGVJRCArICcgJWV4cG9ydHMlICcgKyBrZXk7XG4gICAgICAgIHJ1bnRpbWVfMS5kZWZhdWx0LnJlZ2lzdGVyKGV4cG9ydFZhbHVlLCB0eXBlSUQpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGlzUmVhY3RSZWZyZXNoQm91bmRhcnkobW9kdWxlRXhwb3J0cykge1xuICAgIGlmIChydW50aW1lXzEuZGVmYXVsdC5pc0xpa2VseUNvbXBvbmVudFR5cGUobW9kdWxlRXhwb3J0cykpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChtb2R1bGVFeHBvcnRzID09IG51bGwgfHwgdHlwZW9mIG1vZHVsZUV4cG9ydHMgIT09ICdvYmplY3QnKSB7XG4gICAgICAgIC8vIEV4aXQgaWYgd2UgY2FuJ3QgaXRlcmF0ZSBvdmVyIGV4cG9ydHMuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgdmFyIGhhc0V4cG9ydHMgPSBmYWxzZTtcbiAgICB2YXIgYXJlQWxsRXhwb3J0c0NvbXBvbmVudHMgPSB0cnVlO1xuICAgIGZvciAodmFyIGtleSBpbiBtb2R1bGVFeHBvcnRzKSB7XG4gICAgICAgIGhhc0V4cG9ydHMgPSB0cnVlO1xuICAgICAgICBpZiAoaXNTYWZlRXhwb3J0KGtleSkpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIHZhciBleHBvcnRWYWx1ZSA9IG1vZHVsZUV4cG9ydHNba2V5XTtcbiAgICAgICAgaWYgKCFydW50aW1lXzEuZGVmYXVsdC5pc0xpa2VseUNvbXBvbmVudFR5cGUoZXhwb3J0VmFsdWUpKSB7XG4gICAgICAgICAgICBhcmVBbGxFeHBvcnRzQ29tcG9uZW50cyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBoYXNFeHBvcnRzICYmIGFyZUFsbEV4cG9ydHNDb21wb25lbnRzO1xufVxuZnVuY3Rpb24gc2hvdWxkSW52YWxpZGF0ZVJlYWN0UmVmcmVzaEJvdW5kYXJ5KHByZXZFeHBvcnRzLCBuZXh0RXhwb3J0cykge1xuICAgIHZhciBwcmV2U2lnbmF0dXJlID0gZ2V0UmVmcmVzaEJvdW5kYXJ5U2lnbmF0dXJlKHByZXZFeHBvcnRzKTtcbiAgICB2YXIgbmV4dFNpZ25hdHVyZSA9IGdldFJlZnJlc2hCb3VuZGFyeVNpZ25hdHVyZShuZXh0RXhwb3J0cyk7XG4gICAgaWYgKHByZXZTaWduYXR1cmUubGVuZ3RoICE9PSBuZXh0U2lnbmF0dXJlLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuZXh0U2lnbmF0dXJlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChwcmV2U2lnbmF0dXJlW2ldICE9PSBuZXh0U2lnbmF0dXJlW2ldKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59XG5mdW5jdGlvbiBnZXRSZWZyZXNoQm91bmRhcnlTaWduYXR1cmUobW9kdWxlRXhwb3J0cykge1xuICAgIHZhciBzaWduYXR1cmUgPSBbXTtcbiAgICBzaWduYXR1cmUucHVzaChydW50aW1lXzEuZGVmYXVsdC5nZXRGYW1pbHlCeVR5cGUobW9kdWxlRXhwb3J0cykpO1xuICAgIGlmIChtb2R1bGVFeHBvcnRzID09IG51bGwgfHwgdHlwZW9mIG1vZHVsZUV4cG9ydHMgIT09ICdvYmplY3QnKSB7XG4gICAgICAgIC8vIEV4aXQgaWYgd2UgY2FuJ3QgaXRlcmF0ZSBvdmVyIGV4cG9ydHMuXG4gICAgICAgIC8vIChUaGlzIGlzIGltcG9ydGFudCBmb3IgbGVnYWN5IGVudmlyb25tZW50cy4pXG4gICAgICAgIHJldHVybiBzaWduYXR1cmU7XG4gICAgfVxuICAgIGZvciAodmFyIGtleSBpbiBtb2R1bGVFeHBvcnRzKSB7XG4gICAgICAgIGlmIChpc1NhZmVFeHBvcnQoa2V5KSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGV4cG9ydFZhbHVlID0gbW9kdWxlRXhwb3J0c1trZXldO1xuICAgICAgICBzaWduYXR1cmUucHVzaChrZXkpO1xuICAgICAgICBzaWduYXR1cmUucHVzaChydW50aW1lXzEuZGVmYXVsdC5nZXRGYW1pbHlCeVR5cGUoZXhwb3J0VmFsdWUpKTtcbiAgICB9XG4gICAgcmV0dXJuIHNpZ25hdHVyZTtcbn1cbnZhciBpc1VwZGF0ZVNjaGVkdWxlZCA9IGZhbHNlO1xuZnVuY3Rpb24gc2NoZWR1bGVVcGRhdGUoKSB7XG4gICAgaWYgKGlzVXBkYXRlU2NoZWR1bGVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZnVuY3Rpb24gY2FuQXBwbHlVcGRhdGUoKSB7XG4gICAgICAgIHJldHVybiBtb2R1bGUuaG90LnN0YXR1cygpID09PSAnaWRsZSc7XG4gICAgfVxuICAgIGlzVXBkYXRlU2NoZWR1bGVkID0gdHJ1ZTtcbiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaXNVcGRhdGVTY2hlZHVsZWQgPSBmYWxzZTtcbiAgICAgICAgLy8gT25seSB0cmlnZ2VyIHJlZnJlc2ggaWYgdGhlIHdlYnBhY2sgSE1SIHN0YXRlIGlzIGlkbGVcbiAgICAgICAgaWYgKGNhbkFwcGx5VXBkYXRlKCkpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcnVudGltZV8xLmRlZmF1bHQucGVyZm9ybVJlYWN0UmVmcmVzaCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignV2FybmluZzogRmFpbGVkIHRvIHJlLXJlbmRlci4gV2Ugd2lsbCByZXRyeSBvbiB0aGUgbmV4dCBGYXN0IFJlZnJlc2ggZXZlbnQuXFxuJyArXG4gICAgICAgICAgICAgICAgICAgIGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNjaGVkdWxlVXBkYXRlKCk7XG4gICAgfSwgMzApO1xufVxuLy8gTmVlZHMgdG8gYmUgY29tcGF0aWJsZSB3aXRoIElFMTFcbmV4cG9ydHMuZGVmYXVsdCA9IHtcbiAgICByZWdpc3RlckV4cG9ydHNGb3JSZWFjdFJlZnJlc2g6IHJlZ2lzdGVyRXhwb3J0c0ZvclJlYWN0UmVmcmVzaCxcbiAgICBpc1JlYWN0UmVmcmVzaEJvdW5kYXJ5OiBpc1JlYWN0UmVmcmVzaEJvdW5kYXJ5LFxuICAgIHNob3VsZEludmFsaWRhdGVSZWFjdFJlZnJlc2hCb3VuZGFyeTogc2hvdWxkSW52YWxpZGF0ZVJlYWN0UmVmcmVzaEJvdW5kYXJ5LFxuICAgIGdldFJlZnJlc2hCb3VuZGFyeVNpZ25hdHVyZTogZ2V0UmVmcmVzaEJvdW5kYXJ5U2lnbmF0dXJlLFxuICAgIHNjaGVkdWxlVXBkYXRlOiBzY2hlZHVsZVVwZGF0ZSxcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1oZWxwZXJzLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@next/react-refresh-utils/internal/helpers.js\n"); + +/***/ }), + +/***/ "./node_modules/@next/react-refresh-utils/runtime.js": +/*!***********************************************************!*\ + !*** ./node_modules/@next/react-refresh-utils/runtime.js ***! + \***********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst runtime_1 = __importDefault(__webpack_require__(/*! react-refresh/runtime */ \"./node_modules/react-refresh/runtime.js\"));\nconst helpers_1 = __importDefault(__webpack_require__(/*! ./internal/helpers */ \"./node_modules/@next/react-refresh-utils/internal/helpers.js\"));\n// Hook into ReactDOM initialization\nruntime_1.default.injectIntoGlobalHook(self);\n// Register global helpers\nself.$RefreshHelpers$ = helpers_1.default;\n// Register a helper for module execution interception\nself.$RefreshInterceptModuleExecution$ = function (webpackModuleId) {\n var prevRefreshReg = self.$RefreshReg$;\n var prevRefreshSig = self.$RefreshSig$;\n self.$RefreshReg$ = function (type, id) {\n runtime_1.default.register(type, webpackModuleId + ' ' + id);\n };\n self.$RefreshSig$ = runtime_1.default.createSignatureFunctionForTransform;\n // Modeled after `useEffect` cleanup pattern:\n // https://reactjs.org/docs/hooks-effect.html#effects-with-cleanup\n return function () {\n self.$RefreshReg$ = prevRefreshReg;\n self.$RefreshSig$ = prevRefreshSig;\n };\n};\n//# sourceMappingURL=runtime.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG5leHQvcmVhY3QtcmVmcmVzaC11dGlscy9ydW50aW1lLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQSw2Q0FBNkM7QUFDN0M7QUFDQSw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsa0NBQWtDLG1CQUFPLENBQUMsc0VBQXVCO0FBQ2pFLGtDQUFrQyxtQkFBTyxDQUFDLHdGQUFvQjtBQUM5RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AbmV4dC9yZWFjdC1yZWZyZXNoLXV0aWxzL3J1bnRpbWUuanM/MjMxOSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmNvbnN0IHJ1bnRpbWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwicmVhY3QtcmVmcmVzaC9ydW50aW1lXCIpKTtcbmNvbnN0IGhlbHBlcnNfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi9pbnRlcm5hbC9oZWxwZXJzXCIpKTtcbi8vIEhvb2sgaW50byBSZWFjdERPTSBpbml0aWFsaXphdGlvblxucnVudGltZV8xLmRlZmF1bHQuaW5qZWN0SW50b0dsb2JhbEhvb2soc2VsZik7XG4vLyBSZWdpc3RlciBnbG9iYWwgaGVscGVyc1xuc2VsZi4kUmVmcmVzaEhlbHBlcnMkID0gaGVscGVyc18xLmRlZmF1bHQ7XG4vLyBSZWdpc3RlciBhIGhlbHBlciBmb3IgbW9kdWxlIGV4ZWN1dGlvbiBpbnRlcmNlcHRpb25cbnNlbGYuJFJlZnJlc2hJbnRlcmNlcHRNb2R1bGVFeGVjdXRpb24kID0gZnVuY3Rpb24gKHdlYnBhY2tNb2R1bGVJZCkge1xuICAgIHZhciBwcmV2UmVmcmVzaFJlZyA9IHNlbGYuJFJlZnJlc2hSZWckO1xuICAgIHZhciBwcmV2UmVmcmVzaFNpZyA9IHNlbGYuJFJlZnJlc2hTaWckO1xuICAgIHNlbGYuJFJlZnJlc2hSZWckID0gZnVuY3Rpb24gKHR5cGUsIGlkKSB7XG4gICAgICAgIHJ1bnRpbWVfMS5kZWZhdWx0LnJlZ2lzdGVyKHR5cGUsIHdlYnBhY2tNb2R1bGVJZCArICcgJyArIGlkKTtcbiAgICB9O1xuICAgIHNlbGYuJFJlZnJlc2hTaWckID0gcnVudGltZV8xLmRlZmF1bHQuY3JlYXRlU2lnbmF0dXJlRnVuY3Rpb25Gb3JUcmFuc2Zvcm07XG4gICAgLy8gTW9kZWxlZCBhZnRlciBgdXNlRWZmZWN0YCBjbGVhbnVwIHBhdHRlcm46XG4gICAgLy8gaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL2hvb2tzLWVmZmVjdC5odG1sI2VmZmVjdHMtd2l0aC1jbGVhbnVwXG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgc2VsZi4kUmVmcmVzaFJlZyQgPSBwcmV2UmVmcmVzaFJlZztcbiAgICAgICAgc2VsZi4kUmVmcmVzaFNpZyQgPSBwcmV2UmVmcmVzaFNpZztcbiAgICB9O1xufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJ1bnRpbWUuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@next/react-refresh-utils/runtime.js\n"); + +/***/ }), + +/***/ "./node_modules/react-refresh/cjs/react-refresh-runtime.development.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/react-refresh/cjs/react-refresh-runtime.development.js ***! + \*****************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +eval("/** @license React vundefined\n * react-refresh-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its 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\n\n\n\n\nif (true) {\n (function() {\n'use strict';\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar REACT_ELEMENT_TYPE = 0xeac7;\nvar REACT_PORTAL_TYPE = 0xeaca;\nvar REACT_FRAGMENT_TYPE = 0xeacb;\nvar REACT_STRICT_MODE_TYPE = 0xeacc;\nvar REACT_PROFILER_TYPE = 0xead2;\nvar REACT_PROVIDER_TYPE = 0xeacd;\nvar REACT_CONTEXT_TYPE = 0xeace;\nvar REACT_FORWARD_REF_TYPE = 0xead0;\nvar REACT_SUSPENSE_TYPE = 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = 0xead8;\nvar REACT_MEMO_TYPE = 0xead3;\nvar REACT_LAZY_TYPE = 0xead4;\nvar REACT_BLOCK_TYPE = 0xead9;\nvar REACT_SERVER_BLOCK_TYPE = 0xeada;\nvar REACT_FUNDAMENTAL_TYPE = 0xead5;\nvar REACT_RESPONDER_TYPE = 0xead6;\nvar REACT_SCOPE_TYPE = 0xead7;\nvar REACT_OPAQUE_ID_TYPE = 0xeae0;\nvar REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1;\nvar REACT_OFFSCREEN_TYPE = 0xeae2;\nvar REACT_LEGACY_HIDDEN_TYPE = 0xeae3;\n\nif (typeof Symbol === 'function' && Symbol.for) {\n var symbolFor = Symbol.for;\n REACT_ELEMENT_TYPE = symbolFor('react.element');\n REACT_PORTAL_TYPE = symbolFor('react.portal');\n REACT_FRAGMENT_TYPE = symbolFor('react.fragment');\n REACT_STRICT_MODE_TYPE = symbolFor('react.strict_mode');\n REACT_PROFILER_TYPE = symbolFor('react.profiler');\n REACT_PROVIDER_TYPE = symbolFor('react.provider');\n REACT_CONTEXT_TYPE = symbolFor('react.context');\n REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref');\n REACT_SUSPENSE_TYPE = symbolFor('react.suspense');\n REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list');\n REACT_MEMO_TYPE = symbolFor('react.memo');\n REACT_LAZY_TYPE = symbolFor('react.lazy');\n REACT_BLOCK_TYPE = symbolFor('react.block');\n REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block');\n REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental');\n REACT_RESPONDER_TYPE = symbolFor('react.responder');\n REACT_SCOPE_TYPE = symbolFor('react.scope');\n REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id');\n REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode');\n REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen');\n REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden');\n}\n\nvar PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map; // We never remove these associations.\n// It's OK to reference families, but use WeakMap/Set for types.\n\nvar allFamiliesByID = new Map();\nvar allFamiliesByType = new PossiblyWeakMap();\nvar allSignaturesByType = new PossiblyWeakMap(); // This WeakMap is read by React, so we only put families\n// that have actually been edited here. This keeps checks fast.\n// $FlowIssue\n\nvar updatedFamiliesByType = new PossiblyWeakMap(); // This is cleared on every performReactRefresh() call.\n// It is an array of [Family, NextType] tuples.\n\nvar pendingUpdates = []; // This is injected by the renderer via DevTools global hook.\n\nvar helpersByRendererID = new Map();\nvar helpersByRoot = new Map(); // We keep track of mounted roots so we can schedule updates.\n\nvar mountedRoots = new Set(); // If a root captures an error, we remember it so we can retry on edit.\n\nvar failedRoots = new Set(); // In environments that support WeakMap, we also remember the last element for every root.\n// It needs to be weak because we do this even for roots that failed to mount.\n// If there is no WeakMap, we won't attempt to do retrying.\n// $FlowIssue\n\nvar rootElements = // $FlowIssue\ntypeof WeakMap === 'function' ? new WeakMap() : null;\nvar isPerformingRefresh = false;\n\nfunction computeFullKey(signature) {\n if (signature.fullKey !== null) {\n return signature.fullKey;\n }\n\n var fullKey = signature.ownKey;\n var hooks;\n\n try {\n hooks = signature.getCustomHooks();\n } catch (err) {\n // This can happen in an edge case, e.g. if expression like Foo.useSomething\n // depends on Foo which is lazily initialized during rendering.\n // In that case just assume we'll have to remount.\n signature.forceReset = true;\n signature.fullKey = fullKey;\n return fullKey;\n }\n\n for (var i = 0; i < hooks.length; i++) {\n var hook = hooks[i];\n\n if (typeof hook !== 'function') {\n // Something's wrong. Assume we need to remount.\n signature.forceReset = true;\n signature.fullKey = fullKey;\n return fullKey;\n }\n\n var nestedHookSignature = allSignaturesByType.get(hook);\n\n if (nestedHookSignature === undefined) {\n // No signature means Hook wasn't in the source code, e.g. in a library.\n // We'll skip it because we can assume it won't change during this session.\n continue;\n }\n\n var nestedHookKey = computeFullKey(nestedHookSignature);\n\n if (nestedHookSignature.forceReset) {\n signature.forceReset = true;\n }\n\n fullKey += '\\n---\\n' + nestedHookKey;\n }\n\n signature.fullKey = fullKey;\n return fullKey;\n}\n\nfunction haveEqualSignatures(prevType, nextType) {\n var prevSignature = allSignaturesByType.get(prevType);\n var nextSignature = allSignaturesByType.get(nextType);\n\n if (prevSignature === undefined && nextSignature === undefined) {\n return true;\n }\n\n if (prevSignature === undefined || nextSignature === undefined) {\n return false;\n }\n\n if (computeFullKey(prevSignature) !== computeFullKey(nextSignature)) {\n return false;\n }\n\n if (nextSignature.forceReset) {\n return false;\n }\n\n return true;\n}\n\nfunction isReactClass(type) {\n return type.prototype && type.prototype.isReactComponent;\n}\n\nfunction canPreserveStateBetween(prevType, nextType) {\n if (isReactClass(prevType) || isReactClass(nextType)) {\n return false;\n }\n\n if (haveEqualSignatures(prevType, nextType)) {\n return true;\n }\n\n return false;\n}\n\nfunction resolveFamily(type) {\n // Only check updated types to keep lookups fast.\n return updatedFamiliesByType.get(type);\n} // If we didn't care about IE11, we could use new Map/Set(iterable).\n\n\nfunction cloneMap(map) {\n var clone = new Map();\n map.forEach(function (value, key) {\n clone.set(key, value);\n });\n return clone;\n}\n\nfunction cloneSet(set) {\n var clone = new Set();\n set.forEach(function (value) {\n clone.add(value);\n });\n return clone;\n}\n\nfunction performReactRefresh() {\n\n if (pendingUpdates.length === 0) {\n return null;\n }\n\n if (isPerformingRefresh) {\n return null;\n }\n\n isPerformingRefresh = true;\n\n try {\n var staleFamilies = new Set();\n var updatedFamilies = new Set();\n var updates = pendingUpdates;\n pendingUpdates = [];\n updates.forEach(function (_ref) {\n var family = _ref[0],\n nextType = _ref[1];\n // Now that we got a real edit, we can create associations\n // that will be read by the React reconciler.\n var prevType = family.current;\n updatedFamiliesByType.set(prevType, family);\n updatedFamiliesByType.set(nextType, family);\n family.current = nextType; // Determine whether this should be a re-render or a re-mount.\n\n if (canPreserveStateBetween(prevType, nextType)) {\n updatedFamilies.add(family);\n } else {\n staleFamilies.add(family);\n }\n }); // TODO: rename these fields to something more meaningful.\n\n var update = {\n updatedFamilies: updatedFamilies,\n // Families that will re-render preserving state\n staleFamilies: staleFamilies // Families that will be remounted\n\n };\n helpersByRendererID.forEach(function (helpers) {\n // Even if there are no roots, set the handler on first update.\n // This ensures that if *new* roots are mounted, they'll use the resolve handler.\n helpers.setRefreshHandler(resolveFamily);\n });\n var didError = false;\n var firstError = null; // We snapshot maps and sets that are mutated during commits.\n // If we don't do this, there is a risk they will be mutated while\n // we iterate over them. For example, trying to recover a failed root\n // may cause another root to be added to the failed list -- an infinite loop.\n\n var failedRootsSnapshot = cloneSet(failedRoots);\n var mountedRootsSnapshot = cloneSet(mountedRoots);\n var helpersByRootSnapshot = cloneMap(helpersByRoot);\n failedRootsSnapshot.forEach(function (root) {\n var helpers = helpersByRootSnapshot.get(root);\n\n if (helpers === undefined) {\n throw new Error('Could not find helpers for a root. This is a bug in React Refresh.');\n }\n\n if (!failedRoots.has(root)) {// No longer failed.\n }\n\n if (rootElements === null) {\n return;\n }\n\n if (!rootElements.has(root)) {\n return;\n }\n\n var element = rootElements.get(root);\n\n try {\n helpers.scheduleRoot(root, element);\n } catch (err) {\n if (!didError) {\n didError = true;\n firstError = err;\n } // Keep trying other roots.\n\n }\n });\n mountedRootsSnapshot.forEach(function (root) {\n var helpers = helpersByRootSnapshot.get(root);\n\n if (helpers === undefined) {\n throw new Error('Could not find helpers for a root. This is a bug in React Refresh.');\n }\n\n if (!mountedRoots.has(root)) {// No longer mounted.\n }\n\n try {\n helpers.scheduleRefresh(root, update);\n } catch (err) {\n if (!didError) {\n didError = true;\n firstError = err;\n } // Keep trying other roots.\n\n }\n });\n\n if (didError) {\n throw firstError;\n }\n\n return update;\n } finally {\n isPerformingRefresh = false;\n }\n}\nfunction register(type, id) {\n {\n if (type === null) {\n return;\n }\n\n if (typeof type !== 'function' && typeof type !== 'object') {\n return;\n } // This can happen in an edge case, e.g. if we register\n // return value of a HOC but it returns a cached component.\n // Ignore anything but the first registration for each type.\n\n\n if (allFamiliesByType.has(type)) {\n return;\n } // Create family or remember to update it.\n // None of this bookkeeping affects reconciliation\n // until the first performReactRefresh() call above.\n\n\n var family = allFamiliesByID.get(id);\n\n if (family === undefined) {\n family = {\n current: type\n };\n allFamiliesByID.set(id, family);\n } else {\n pendingUpdates.push([family, type]);\n }\n\n allFamiliesByType.set(type, family); // Visit inner types because we might not have registered them.\n\n if (typeof type === 'object' && type !== null) {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n register(type.render, id + '$render');\n break;\n\n case REACT_MEMO_TYPE:\n register(type.type, id + '$type');\n break;\n }\n }\n }\n}\nfunction setSignature(type, key) {\n var forceReset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var getCustomHooks = arguments.length > 3 ? arguments[3] : undefined;\n\n {\n allSignaturesByType.set(type, {\n forceReset: forceReset,\n ownKey: key,\n fullKey: null,\n getCustomHooks: getCustomHooks || function () {\n return [];\n }\n });\n }\n} // This is lazily called during first render for a type.\n// It captures Hook list at that time so inline requires don't break comparisons.\n\nfunction collectCustomHooksForSignature(type) {\n {\n var signature = allSignaturesByType.get(type);\n\n if (signature !== undefined) {\n computeFullKey(signature);\n }\n }\n}\nfunction getFamilyByID(id) {\n {\n return allFamiliesByID.get(id);\n }\n}\nfunction getFamilyByType(type) {\n {\n return allFamiliesByType.get(type);\n }\n}\nfunction findAffectedHostInstances(families) {\n {\n var affectedInstances = new Set();\n mountedRoots.forEach(function (root) {\n var helpers = helpersByRoot.get(root);\n\n if (helpers === undefined) {\n throw new Error('Could not find helpers for a root. This is a bug in React Refresh.');\n }\n\n var instancesForRoot = helpers.findHostInstancesForRefresh(root, families);\n instancesForRoot.forEach(function (inst) {\n affectedInstances.add(inst);\n });\n });\n return affectedInstances;\n }\n}\nfunction injectIntoGlobalHook(globalObject) {\n {\n // For React Native, the global hook will be set up by require('react-devtools-core').\n // That code will run before us. So we need to monkeypatch functions on existing hook.\n // For React Web, the global hook will be set up by the extension.\n // This will also run before us.\n var hook = globalObject.__REACT_DEVTOOLS_GLOBAL_HOOK__;\n\n if (hook === undefined) {\n // However, if there is no DevTools extension, we'll need to set up the global hook ourselves.\n // Note that in this case it's important that renderer code runs *after* this method call.\n // Otherwise, the renderer will think that there is no global hook, and won't do the injection.\n var nextID = 0;\n globalObject.__REACT_DEVTOOLS_GLOBAL_HOOK__ = hook = {\n renderers: new Map(),\n supportsFiber: true,\n inject: function (injected) {\n return nextID++;\n },\n onScheduleFiberRoot: function (id, root, children) {},\n onCommitFiberRoot: function (id, root, maybePriorityLevel, didError) {},\n onCommitFiberUnmount: function () {}\n };\n } // Here, we just want to get a reference to scheduleRefresh.\n\n\n var oldInject = hook.inject;\n\n hook.inject = function (injected) {\n var id = oldInject.apply(this, arguments);\n\n if (typeof injected.scheduleRefresh === 'function' && typeof injected.setRefreshHandler === 'function') {\n // This version supports React Refresh.\n helpersByRendererID.set(id, injected);\n }\n\n return id;\n }; // Do the same for any already injected roots.\n // This is useful if ReactDOM has already been initialized.\n // https://github.com/facebook/react/issues/17626\n\n\n hook.renderers.forEach(function (injected, id) {\n if (typeof injected.scheduleRefresh === 'function' && typeof injected.setRefreshHandler === 'function') {\n // This version supports React Refresh.\n helpersByRendererID.set(id, injected);\n }\n }); // We also want to track currently mounted roots.\n\n var oldOnCommitFiberRoot = hook.onCommitFiberRoot;\n\n var oldOnScheduleFiberRoot = hook.onScheduleFiberRoot || function () {};\n\n hook.onScheduleFiberRoot = function (id, root, children) {\n if (!isPerformingRefresh) {\n // If it was intentionally scheduled, don't attempt to restore.\n // This includes intentionally scheduled unmounts.\n failedRoots.delete(root);\n\n if (rootElements !== null) {\n rootElements.set(root, children);\n }\n }\n\n return oldOnScheduleFiberRoot.apply(this, arguments);\n };\n\n hook.onCommitFiberRoot = function (id, root, maybePriorityLevel, didError) {\n var helpers = helpersByRendererID.get(id);\n\n if (helpers === undefined) {\n return;\n }\n\n helpersByRoot.set(root, helpers);\n var current = root.current;\n var alternate = current.alternate; // We need to determine whether this root has just (un)mounted.\n // This logic is copy-pasted from similar logic in the DevTools backend.\n // If this breaks with some refactoring, you'll want to update DevTools too.\n\n if (alternate !== null) {\n var wasMounted = alternate.memoizedState != null && alternate.memoizedState.element != null;\n var isMounted = current.memoizedState != null && current.memoizedState.element != null;\n\n if (!wasMounted && isMounted) {\n // Mount a new root.\n mountedRoots.add(root);\n failedRoots.delete(root);\n } else if (wasMounted && isMounted) ; else if (wasMounted && !isMounted) {\n // Unmount an existing root.\n mountedRoots.delete(root);\n\n if (didError) {\n // We'll remount it on future edits.\n failedRoots.add(root);\n } else {\n helpersByRoot.delete(root);\n }\n } else if (!wasMounted && !isMounted) {\n if (didError) {\n // We'll remount it on future edits.\n failedRoots.add(root);\n }\n }\n } else {\n // Mount a new root.\n mountedRoots.add(root);\n }\n\n return oldOnCommitFiberRoot.apply(this, arguments);\n };\n }\n}\nfunction hasUnrecoverableErrors() {\n // TODO: delete this after removing dependency in RN.\n return false;\n} // Exposed for testing.\n\nfunction _getMountedRootCount() {\n {\n return mountedRoots.size;\n }\n} // This is a wrapper over more primitive functions for setting signature.\n// Signatures let us decide whether the Hook order has changed on refresh.\n//\n// This function is intended to be used as a transform target, e.g.:\n// var _s = createSignatureFunctionForTransform()\n//\n// function Hello() {\n// const [foo, setFoo] = useState(0);\n// const value = useCustomHook();\n// _s(); /* Second call triggers collecting the custom Hook list.\n// * This doesn't happen during the module evaluation because we\n// * don't want to change the module order with inline requires.\n// * Next calls are noops. */\n// return <h1>Hi</h1>;\n// }\n//\n// /* First call specifies the signature: */\n// _s(\n// Hello,\n// 'useState{[foo, setFoo]}(0)',\n// () => [useCustomHook], /* Lazy to avoid triggering inline requires */\n// );\n\nfunction createSignatureFunctionForTransform() {\n {\n // We'll fill in the signature in two steps.\n // First, we'll know the signature itself. This happens outside the component.\n // Then, we'll know the references to custom Hooks. This happens inside the component.\n // After that, the returned function will be a fast path no-op.\n var status = 'needsSignature';\n var savedType;\n var hasCustomHooks;\n return function (type, key, forceReset, getCustomHooks) {\n switch (status) {\n case 'needsSignature':\n if (type !== undefined) {\n // If we received an argument, this is the initial registration call.\n savedType = type;\n hasCustomHooks = typeof getCustomHooks === 'function';\n setSignature(type, key, forceReset, getCustomHooks); // The next call we expect is from inside a function, to fill in the custom Hooks.\n\n status = 'needsCustomHooks';\n }\n\n break;\n\n case 'needsCustomHooks':\n if (hasCustomHooks) {\n collectCustomHooksForSignature(savedType);\n }\n\n status = 'resolved';\n break;\n }\n\n return type;\n };\n }\n}\nfunction isLikelyComponentType(type) {\n {\n switch (typeof type) {\n case 'function':\n {\n // First, deal with classes.\n if (type.prototype != null) {\n if (type.prototype.isReactComponent) {\n // React class.\n return true;\n }\n\n var ownNames = Object.getOwnPropertyNames(type.prototype);\n\n if (ownNames.length > 1 || ownNames[0] !== 'constructor') {\n // This looks like a class.\n return false;\n } // eslint-disable-next-line no-proto\n\n\n if (type.prototype.__proto__ !== Object.prototype) {\n // It has a superclass.\n return false;\n } // Pass through.\n // This looks like a regular function with empty prototype.\n\n } // For plain functions and arrows, use name as a heuristic.\n\n\n var name = type.name || type.displayName;\n return typeof name === 'string' && /^[A-Z]/.test(name);\n }\n\n case 'object':\n {\n if (type != null) {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n case REACT_MEMO_TYPE:\n // Definitely React components.\n return true;\n\n default:\n return false;\n }\n }\n\n return false;\n }\n\n default:\n {\n return false;\n }\n }\n }\n}\n\nexports._getMountedRootCount = _getMountedRootCount;\nexports.collectCustomHooksForSignature = collectCustomHooksForSignature;\nexports.createSignatureFunctionForTransform = createSignatureFunctionForTransform;\nexports.findAffectedHostInstances = findAffectedHostInstances;\nexports.getFamilyByID = getFamilyByID;\nexports.getFamilyByType = getFamilyByType;\nexports.hasUnrecoverableErrors = hasUnrecoverableErrors;\nexports.injectIntoGlobalHook = injectIntoGlobalHook;\nexports.isLikelyComponentType = isLikelyComponentType;\nexports.performReactRefresh = performReactRefresh;\nexports.register = register;\nexports.setSignature = setSignature;\n })();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtcmVmcmVzaC9janMvcmVhY3QtcmVmcmVzaC1ydW50aW1lLmRldmVsb3BtZW50LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWE7Ozs7QUFJYixJQUFJLElBQXFDO0FBQ3pDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEscUVBQXFFO0FBQ3JFOztBQUVBO0FBQ0E7QUFDQSxpREFBaUQ7QUFDakQ7QUFDQTs7QUFFQSxtREFBbUQ7QUFDbkQ7O0FBRUEseUJBQXlCOztBQUV6QjtBQUNBLCtCQUErQjs7QUFFL0IsOEJBQThCOztBQUU5Qiw2QkFBNkI7QUFDN0I7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsa0JBQWtCLGtCQUFrQjtBQUNwQzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7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QTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFOztBQUVGO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxjQUFjO0FBQzdCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpRUFBaUU7O0FBRWpFO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxjQUFjOzs7QUFHZDtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7O0FBRUEsWUFBWTs7O0FBR1o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSw0QkFBNEI7QUFDNUIsc0NBQXNDO0FBQ3RDLDJDQUEyQztBQUMzQyxpQ0FBaUM7QUFDakMscUJBQXFCO0FBQ3JCLHVCQUF1QjtBQUN2Qiw4QkFBOEI7QUFDOUIsNEJBQTRCO0FBQzVCLDZCQUE2QjtBQUM3QiwyQkFBMkI7QUFDM0IsZ0JBQWdCO0FBQ2hCLG9CQUFvQjtBQUNwQixHQUFHO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXJlZnJlc2gvY2pzL3JlYWN0LXJlZnJlc2gtcnVudGltZS5kZXZlbG9wbWVudC5qcz83ODYyIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBAbGljZW5zZSBSZWFjdCB2dW5kZWZpbmVkXG4gKiByZWFjdC1yZWZyZXNoLXJ1bnRpbWUuZGV2ZWxvcG1lbnQuanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIEZhY2Vib29rLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cblxuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gIChmdW5jdGlvbigpIHtcbid1c2Ugc3RyaWN0JztcblxuLy8gQVRURU5USU9OXG4vLyBXaGVuIGFkZGluZyBuZXcgc3ltYm9scyB0byB0aGlzIGZpbGUsXG4vLyBQbGVhc2UgY29uc2lkZXIgYWxzbyBhZGRpbmcgdG8gJ3JlYWN0LWRldnRvb2xzLXNoYXJlZC9zcmMvYmFja2VuZC9SZWFjdFN5bWJvbHMnXG4vLyBUaGUgU3ltYm9sIHVzZWQgdG8gdGFnIHRoZSBSZWFjdEVsZW1lbnQtbGlrZSB0eXBlcy4gSWYgdGhlcmUgaXMgbm8gbmF0aXZlIFN5bWJvbFxuLy8gbm9yIHBvbHlmaWxsLCB0aGVuIGEgcGxhaW4gbnVtYmVyIGlzIHVzZWQgZm9yIHBlcmZvcm1hbmNlLlxudmFyIFJFQUNUX0VMRU1FTlRfVFlQRSA9IDB4ZWFjNztcbnZhciBSRUFDVF9QT1JUQUxfVFlQRSA9IDB4ZWFjYTtcbnZhciBSRUFDVF9GUkFHTUVOVF9UWVBFID0gMHhlYWNiO1xudmFyIFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgPSAweGVhY2M7XG52YXIgUkVBQ1RfUFJPRklMRVJfVFlQRSA9IDB4ZWFkMjtcbnZhciBSRUFDVF9QUk9WSURFUl9UWVBFID0gMHhlYWNkO1xudmFyIFJFQUNUX0NPTlRFWFRfVFlQRSA9IDB4ZWFjZTtcbnZhciBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFID0gMHhlYWQwO1xudmFyIFJFQUNUX1NVU1BFTlNFX1RZUEUgPSAweGVhZDE7XG52YXIgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFID0gMHhlYWQ4O1xudmFyIFJFQUNUX01FTU9fVFlQRSA9IDB4ZWFkMztcbnZhciBSRUFDVF9MQVpZX1RZUEUgPSAweGVhZDQ7XG52YXIgUkVBQ1RfQkxPQ0tfVFlQRSA9IDB4ZWFkOTtcbnZhciBSRUFDVF9TRVJWRVJfQkxPQ0tfVFlQRSA9IDB4ZWFkYTtcbnZhciBSRUFDVF9GVU5EQU1FTlRBTF9UWVBFID0gMHhlYWQ1O1xudmFyIFJFQUNUX1JFU1BPTkRFUl9UWVBFID0gMHhlYWQ2O1xudmFyIFJFQUNUX1NDT1BFX1RZUEUgPSAweGVhZDc7XG52YXIgUkVBQ1RfT1BBUVVFX0lEX1RZUEUgPSAweGVhZTA7XG52YXIgUkVBQ1RfREVCVUdfVFJBQ0lOR19NT0RFX1RZUEUgPSAweGVhZTE7XG52YXIgUkVBQ1RfT0ZGU0NSRUVOX1RZUEUgPSAweGVhZTI7XG52YXIgUkVBQ1RfTEVHQUNZX0hJRERFTl9UWVBFID0gMHhlYWUzO1xuXG5pZiAodHlwZW9mIFN5bWJvbCA9PT0gJ2Z1bmN0aW9uJyAmJiBTeW1ib2wuZm9yKSB7XG4gIHZhciBzeW1ib2xGb3IgPSBTeW1ib2wuZm9yO1xuICBSRUFDVF9FTEVNRU5UX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LmVsZW1lbnQnKTtcbiAgUkVBQ1RfUE9SVEFMX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LnBvcnRhbCcpO1xuICBSRUFDVF9GUkFHTUVOVF9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5mcmFnbWVudCcpO1xuICBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5zdHJpY3RfbW9kZScpO1xuICBSRUFDVF9QUk9GSUxFUl9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5wcm9maWxlcicpO1xuICBSRUFDVF9QUk9WSURFUl9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5wcm92aWRlcicpO1xuICBSRUFDVF9DT05URVhUX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LmNvbnRleHQnKTtcbiAgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QuZm9yd2FyZF9yZWYnKTtcbiAgUkVBQ1RfU1VTUEVOU0VfVFlQRSA9IHN5bWJvbEZvcigncmVhY3Quc3VzcGVuc2UnKTtcbiAgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5zdXNwZW5zZV9saXN0Jyk7XG4gIFJFQUNUX01FTU9fVFlQRSA9IHN5bWJvbEZvcigncmVhY3QubWVtbycpO1xuICBSRUFDVF9MQVpZX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LmxhenknKTtcbiAgUkVBQ1RfQkxPQ0tfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QuYmxvY2snKTtcbiAgUkVBQ1RfU0VSVkVSX0JMT0NLX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LnNlcnZlci5ibG9jaycpO1xuICBSRUFDVF9GVU5EQU1FTlRBTF9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5mdW5kYW1lbnRhbCcpO1xuICBSRUFDVF9SRVNQT05ERVJfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QucmVzcG9uZGVyJyk7XG4gIFJFQUNUX1NDT1BFX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LnNjb3BlJyk7XG4gIFJFQUNUX09QQVFVRV9JRF9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5vcGFxdWUuaWQnKTtcbiAgUkVBQ1RfREVCVUdfVFJBQ0lOR19NT0RFX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LmRlYnVnX3RyYWNlX21vZGUnKTtcbiAgUkVBQ1RfT0ZGU0NSRUVOX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0Lm9mZnNjcmVlbicpO1xuICBSRUFDVF9MRUdBQ1lfSElEREVOX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LmxlZ2FjeV9oaWRkZW4nKTtcbn1cblxudmFyIFBvc3NpYmx5V2Vha01hcCA9IHR5cGVvZiBXZWFrTWFwID09PSAnZnVuY3Rpb24nID8gV2Vha01hcCA6IE1hcDsgLy8gV2UgbmV2ZXIgcmVtb3ZlIHRoZXNlIGFzc29jaWF0aW9ucy5cbi8vIEl0J3MgT0sgdG8gcmVmZXJlbmNlIGZhbWlsaWVzLCBidXQgdXNlIFdlYWtNYXAvU2V0IGZvciB0eXBlcy5cblxudmFyIGFsbEZhbWlsaWVzQnlJRCA9IG5ldyBNYXAoKTtcbnZhciBhbGxGYW1pbGllc0J5VHlwZSA9IG5ldyBQb3NzaWJseVdlYWtNYXAoKTtcbnZhciBhbGxTaWduYXR1cmVzQnlUeXBlID0gbmV3IFBvc3NpYmx5V2Vha01hcCgpOyAvLyBUaGlzIFdlYWtNYXAgaXMgcmVhZCBieSBSZWFjdCwgc28gd2Ugb25seSBwdXQgZmFtaWxpZXNcbi8vIHRoYXQgaGF2ZSBhY3R1YWxseSBiZWVuIGVkaXRlZCBoZXJlLiBUaGlzIGtlZXBzIGNoZWNrcyBmYXN0LlxuLy8gJEZsb3dJc3N1ZVxuXG52YXIgdXBkYXRlZEZhbWlsaWVzQnlUeXBlID0gbmV3IFBvc3NpYmx5V2Vha01hcCgpOyAvLyBUaGlzIGlzIGNsZWFyZWQgb24gZXZlcnkgcGVyZm9ybVJlYWN0UmVmcmVzaCgpIGNhbGwuXG4vLyBJdCBpcyBhbiBhcnJheSBvZiBbRmFtaWx5LCBOZXh0VHlwZV0gdHVwbGVzLlxuXG52YXIgcGVuZGluZ1VwZGF0ZXMgPSBbXTsgLy8gVGhpcyBpcyBpbmplY3RlZCBieSB0aGUgcmVuZGVyZXIgdmlhIERldlRvb2xzIGdsb2JhbCBob29rLlxuXG52YXIgaGVscGVyc0J5UmVuZGVyZXJJRCA9IG5ldyBNYXAoKTtcbnZhciBoZWxwZXJzQnlSb290ID0gbmV3IE1hcCgpOyAvLyBXZSBrZWVwIHRyYWNrIG9mIG1vdW50ZWQgcm9vdHMgc28gd2UgY2FuIHNjaGVkdWxlIHVwZGF0ZXMuXG5cbnZhciBtb3VudGVkUm9vdHMgPSBuZXcgU2V0KCk7IC8vIElmIGEgcm9vdCBjYXB0dXJlcyBhbiBlcnJvciwgd2UgcmVtZW1iZXIgaXQgc28gd2UgY2FuIHJldHJ5IG9uIGVkaXQuXG5cbnZhciBmYWlsZWRSb290cyA9IG5ldyBTZXQoKTsgLy8gSW4gZW52aXJvbm1lbnRzIHRoYXQgc3VwcG9ydCBXZWFrTWFwLCB3ZSBhbHNvIHJlbWVtYmVyIHRoZSBsYXN0IGVsZW1lbnQgZm9yIGV2ZXJ5IHJvb3QuXG4vLyBJdCBuZWVkcyB0byBiZSB3ZWFrIGJlY2F1c2Ugd2UgZG8gdGhpcyBldmVuIGZvciByb290cyB0aGF0IGZhaWxlZCB0byBtb3VudC5cbi8vIElmIHRoZXJlIGlzIG5vIFdlYWtNYXAsIHdlIHdvbid0IGF0dGVtcHQgdG8gZG8gcmV0cnlpbmcuXG4vLyAkRmxvd0lzc3VlXG5cbnZhciByb290RWxlbWVudHMgPSAvLyAkRmxvd0lzc3VlXG50eXBlb2YgV2Vha01hcCA9PT0gJ2Z1bmN0aW9uJyA/IG5ldyBXZWFrTWFwKCkgOiBudWxsO1xudmFyIGlzUGVyZm9ybWluZ1JlZnJlc2ggPSBmYWxzZTtcblxuZnVuY3Rpb24gY29tcHV0ZUZ1bGxLZXkoc2lnbmF0dXJlKSB7XG4gIGlmIChzaWduYXR1cmUuZnVsbEtleSAhPT0gbnVsbCkge1xuICAgIHJldHVybiBzaWduYXR1cmUuZnVsbEtleTtcbiAgfVxuXG4gIHZhciBmdWxsS2V5ID0gc2lnbmF0dXJlLm93bktleTtcbiAgdmFyIGhvb2tzO1xuXG4gIHRyeSB7XG4gICAgaG9va3MgPSBzaWduYXR1cmUuZ2V0Q3VzdG9tSG9va3MoKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgLy8gVGhpcyBjYW4gaGFwcGVuIGluIGFuIGVkZ2UgY2FzZSwgZS5nLiBpZiBleHByZXNzaW9uIGxpa2UgRm9vLnVzZVNvbWV0aGluZ1xuICAgIC8vIGRlcGVuZHMgb24gRm9vIHdoaWNoIGlzIGxhemlseSBpbml0aWFsaXplZCBkdXJpbmcgcmVuZGVyaW5nLlxuICAgIC8vIEluIHRoYXQgY2FzZSBqdXN0IGFzc3VtZSB3ZSdsbCBoYXZlIHRvIHJlbW91bnQuXG4gICAgc2lnbmF0dXJlLmZvcmNlUmVzZXQgPSB0cnVlO1xuICAgIHNpZ25hdHVyZS5mdWxsS2V5ID0gZnVsbEtleTtcbiAgICByZXR1cm4gZnVsbEtleTtcbiAgfVxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgaG9va3MubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaG9vayA9IGhvb2tzW2ldO1xuXG4gICAgaWYgKHR5cGVvZiBob29rICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAvLyBTb21ldGhpbmcncyB3cm9uZy4gQXNzdW1lIHdlIG5lZWQgdG8gcmVtb3VudC5cbiAgICAgIHNpZ25hdHVyZS5mb3JjZVJlc2V0ID0gdHJ1ZTtcbiAgICAgIHNpZ25hdHVyZS5mdWxsS2V5ID0gZnVsbEtleTtcbiAgICAgIHJldHVybiBmdWxsS2V5O1xuICAgIH1cblxuICAgIHZhciBuZXN0ZWRIb29rU2lnbmF0dXJlID0gYWxsU2lnbmF0dXJlc0J5VHlwZS5nZXQoaG9vayk7XG5cbiAgICBpZiAobmVzdGVkSG9va1NpZ25hdHVyZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBObyBzaWduYXR1cmUgbWVhbnMgSG9vayB3YXNuJ3QgaW4gdGhlIHNvdXJjZSBjb2RlLCBlLmcuIGluIGEgbGlicmFyeS5cbiAgICAgIC8vIFdlJ2xsIHNraXAgaXQgYmVjYXVzZSB3ZSBjYW4gYXNzdW1lIGl0IHdvbid0IGNoYW5nZSBkdXJpbmcgdGhpcyBzZXNzaW9uLlxuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgdmFyIG5lc3RlZEhvb2tLZXkgPSBjb21wdXRlRnVsbEtleShuZXN0ZWRIb29rU2lnbmF0dXJlKTtcblxuICAgIGlmIChuZXN0ZWRIb29rU2lnbmF0dXJlLmZvcmNlUmVzZXQpIHtcbiAgICAgIHNpZ25hdHVyZS5mb3JjZVJlc2V0ID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBmdWxsS2V5ICs9ICdcXG4tLS1cXG4nICsgbmVzdGVkSG9va0tleTtcbiAgfVxuXG4gIHNpZ25hdHVyZS5mdWxsS2V5ID0gZnVsbEtleTtcbiAgcmV0dXJuIGZ1bGxLZXk7XG59XG5cbmZ1bmN0aW9uIGhhdmVFcXVhbFNpZ25hdHVyZXMocHJldlR5cGUsIG5leHRUeXBlKSB7XG4gIHZhciBwcmV2U2lnbmF0dXJlID0gYWxsU2lnbmF0dXJlc0J5VHlwZS5nZXQocHJldlR5cGUpO1xuICB2YXIgbmV4dFNpZ25hdHVyZSA9IGFsbFNpZ25hdHVyZXNCeVR5cGUuZ2V0KG5leHRUeXBlKTtcblxuICBpZiAocHJldlNpZ25hdHVyZSA9PT0gdW5kZWZpbmVkICYmIG5leHRTaWduYXR1cmUgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWYgKHByZXZTaWduYXR1cmUgPT09IHVuZGVmaW5lZCB8fCBuZXh0U2lnbmF0dXJlID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoY29tcHV0ZUZ1bGxLZXkocHJldlNpZ25hdHVyZSkgIT09IGNvbXB1dGVGdWxsS2V5KG5leHRTaWduYXR1cmUpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKG5leHRTaWduYXR1cmUuZm9yY2VSZXNldCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBpc1JlYWN0Q2xhc3ModHlwZSkge1xuICByZXR1cm4gdHlwZS5wcm90b3R5cGUgJiYgdHlwZS5wcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudDtcbn1cblxuZnVuY3Rpb24gY2FuUHJlc2VydmVTdGF0ZUJldHdlZW4ocHJldlR5cGUsIG5leHRUeXBlKSB7XG4gIGlmIChpc1JlYWN0Q2xhc3MocHJldlR5cGUpIHx8IGlzUmVhY3RDbGFzcyhuZXh0VHlwZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoaGF2ZUVxdWFsU2lnbmF0dXJlcyhwcmV2VHlwZSwgbmV4dFR5cGUpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIHJlc29sdmVGYW1pbHkodHlwZSkge1xuICAvLyBPbmx5IGNoZWNrIHVwZGF0ZWQgdHlwZXMgdG8ga2VlcCBsb29rdXBzIGZhc3QuXG4gIHJldHVybiB1cGRhdGVkRmFtaWxpZXNCeVR5cGUuZ2V0KHR5cGUpO1xufSAvLyBJZiB3ZSBkaWRuJ3QgY2FyZSBhYm91dCBJRTExLCB3ZSBjb3VsZCB1c2UgbmV3IE1hcC9TZXQoaXRlcmFibGUpLlxuXG5cbmZ1bmN0aW9uIGNsb25lTWFwKG1hcCkge1xuICB2YXIgY2xvbmUgPSBuZXcgTWFwKCk7XG4gIG1hcC5mb3JFYWNoKGZ1bmN0aW9uICh2YWx1ZSwga2V5KSB7XG4gICAgY2xvbmUuc2V0KGtleSwgdmFsdWUpO1xuICB9KTtcbiAgcmV0dXJuIGNsb25lO1xufVxuXG5mdW5jdGlvbiBjbG9uZVNldChzZXQpIHtcbiAgdmFyIGNsb25lID0gbmV3IFNldCgpO1xuICBzZXQuZm9yRWFjaChmdW5jdGlvbiAodmFsdWUpIHtcbiAgICBjbG9uZS5hZGQodmFsdWUpO1xuICB9KTtcbiAgcmV0dXJuIGNsb25lO1xufVxuXG5mdW5jdGlvbiBwZXJmb3JtUmVhY3RSZWZyZXNoKCkge1xuXG4gIGlmIChwZW5kaW5nVXBkYXRlcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmIChpc1BlcmZvcm1pbmdSZWZyZXNoKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpc1BlcmZvcm1pbmdSZWZyZXNoID0gdHJ1ZTtcblxuICB0cnkge1xuICAgIHZhciBzdGFsZUZhbWlsaWVzID0gbmV3IFNldCgpO1xuICAgIHZhciB1cGRhdGVkRmFtaWxpZXMgPSBuZXcgU2V0KCk7XG4gICAgdmFyIHVwZGF0ZXMgPSBwZW5kaW5nVXBkYXRlcztcbiAgICBwZW5kaW5nVXBkYXRlcyA9IFtdO1xuICAgIHVwZGF0ZXMuZm9yRWFjaChmdW5jdGlvbiAoX3JlZikge1xuICAgICAgdmFyIGZhbWlseSA9IF9yZWZbMF0sXG4gICAgICAgICAgbmV4dFR5cGUgPSBfcmVmWzFdO1xuICAgICAgLy8gTm93IHRoYXQgd2UgZ290IGEgcmVhbCBlZGl0LCB3ZSBjYW4gY3JlYXRlIGFzc29jaWF0aW9uc1xuICAgICAgLy8gdGhhdCB3aWxsIGJlIHJlYWQgYnkgdGhlIFJlYWN0IHJlY29uY2lsZXIuXG4gICAgICB2YXIgcHJldlR5cGUgPSBmYW1pbHkuY3VycmVudDtcbiAgICAgIHVwZGF0ZWRGYW1pbGllc0J5VHlwZS5zZXQocHJldlR5cGUsIGZhbWlseSk7XG4gICAgICB1cGRhdGVkRmFtaWxpZXNCeVR5cGUuc2V0KG5leHRUeXBlLCBmYW1pbHkpO1xuICAgICAgZmFtaWx5LmN1cnJlbnQgPSBuZXh0VHlwZTsgLy8gRGV0ZXJtaW5lIHdoZXRoZXIgdGhpcyBzaG91bGQgYmUgYSByZS1yZW5kZXIgb3IgYSByZS1tb3VudC5cblxuICAgICAgaWYgKGNhblByZXNlcnZlU3RhdGVCZXR3ZWVuKHByZXZUeXBlLCBuZXh0VHlwZSkpIHtcbiAgICAgICAgdXBkYXRlZEZhbWlsaWVzLmFkZChmYW1pbHkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3RhbGVGYW1pbGllcy5hZGQoZmFtaWx5KTtcbiAgICAgIH1cbiAgICB9KTsgLy8gVE9ETzogcmVuYW1lIHRoZXNlIGZpZWxkcyB0byBzb21ldGhpbmcgbW9yZSBtZWFuaW5nZnVsLlxuXG4gICAgdmFyIHVwZGF0ZSA9IHtcbiAgICAgIHVwZGF0ZWRGYW1pbGllczogdXBkYXRlZEZhbWlsaWVzLFxuICAgICAgLy8gRmFtaWxpZXMgdGhhdCB3aWxsIHJlLXJlbmRlciBwcmVzZXJ2aW5nIHN0YXRlXG4gICAgICBzdGFsZUZhbWlsaWVzOiBzdGFsZUZhbWlsaWVzIC8vIEZhbWlsaWVzIHRoYXQgd2lsbCBiZSByZW1vdW50ZWRcblxuICAgIH07XG4gICAgaGVscGVyc0J5UmVuZGVyZXJJRC5mb3JFYWNoKGZ1bmN0aW9uIChoZWxwZXJzKSB7XG4gICAgICAvLyBFdmVuIGlmIHRoZXJlIGFyZSBubyByb290cywgc2V0IHRoZSBoYW5kbGVyIG9uIGZpcnN0IHVwZGF0ZS5cbiAgICAgIC8vIFRoaXMgZW5zdXJlcyB0aGF0IGlmICpuZXcqIHJvb3RzIGFyZSBtb3VudGVkLCB0aGV5J2xsIHVzZSB0aGUgcmVzb2x2ZSBoYW5kbGVyLlxuICAgICAgaGVscGVycy5zZXRSZWZyZXNoSGFuZGxlcihyZXNvbHZlRmFtaWx5KTtcbiAgICB9KTtcbiAgICB2YXIgZGlkRXJyb3IgPSBmYWxzZTtcbiAgICB2YXIgZmlyc3RFcnJvciA9IG51bGw7IC8vIFdlIHNuYXBzaG90IG1hcHMgYW5kIHNldHMgdGhhdCBhcmUgbXV0YXRlZCBkdXJpbmcgY29tbWl0cy5cbiAgICAvLyBJZiB3ZSBkb24ndCBkbyB0aGlzLCB0aGVyZSBpcyBhIHJpc2sgdGhleSB3aWxsIGJlIG11dGF0ZWQgd2hpbGVcbiAgICAvLyB3ZSBpdGVyYXRlIG92ZXIgdGhlbS4gRm9yIGV4YW1wbGUsIHRyeWluZyB0byByZWNvdmVyIGEgZmFpbGVkIHJvb3RcbiAgICAvLyBtYXkgY2F1c2UgYW5vdGhlciByb290IHRvIGJlIGFkZGVkIHRvIHRoZSBmYWlsZWQgbGlzdCAtLSBhbiBpbmZpbml0ZSBsb29wLlxuXG4gICAgdmFyIGZhaWxlZFJvb3RzU25hcHNob3QgPSBjbG9uZVNldChmYWlsZWRSb290cyk7XG4gICAgdmFyIG1vdW50ZWRSb290c1NuYXBzaG90ID0gY2xvbmVTZXQobW91bnRlZFJvb3RzKTtcbiAgICB2YXIgaGVscGVyc0J5Um9vdFNuYXBzaG90ID0gY2xvbmVNYXAoaGVscGVyc0J5Um9vdCk7XG4gICAgZmFpbGVkUm9vdHNTbmFwc2hvdC5mb3JFYWNoKGZ1bmN0aW9uIChyb290KSB7XG4gICAgICB2YXIgaGVscGVycyA9IGhlbHBlcnNCeVJvb3RTbmFwc2hvdC5nZXQocm9vdCk7XG5cbiAgICAgIGlmIChoZWxwZXJzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgZmluZCBoZWxwZXJzIGZvciBhIHJvb3QuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QgUmVmcmVzaC4nKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFmYWlsZWRSb290cy5oYXMocm9vdCkpIHsvLyBObyBsb25nZXIgZmFpbGVkLlxuICAgICAgfVxuXG4gICAgICBpZiAocm9vdEVsZW1lbnRzID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKCFyb290RWxlbWVudHMuaGFzKHJvb3QpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdmFyIGVsZW1lbnQgPSByb290RWxlbWVudHMuZ2V0KHJvb3QpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBoZWxwZXJzLnNjaGVkdWxlUm9vdChyb290LCBlbGVtZW50KTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBpZiAoIWRpZEVycm9yKSB7XG4gICAgICAgICAgZGlkRXJyb3IgPSB0cnVlO1xuICAgICAgICAgIGZpcnN0RXJyb3IgPSBlcnI7XG4gICAgICAgIH0gLy8gS2VlcCB0cnlpbmcgb3RoZXIgcm9vdHMuXG5cbiAgICAgIH1cbiAgICB9KTtcbiAgICBtb3VudGVkUm9vdHNTbmFwc2hvdC5mb3JFYWNoKGZ1bmN0aW9uIChyb290KSB7XG4gICAgICB2YXIgaGVscGVycyA9IGhlbHBlcnNCeVJvb3RTbmFwc2hvdC5nZXQocm9vdCk7XG5cbiAgICAgIGlmIChoZWxwZXJzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgZmluZCBoZWxwZXJzIGZvciBhIHJvb3QuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QgUmVmcmVzaC4nKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFtb3VudGVkUm9vdHMuaGFzKHJvb3QpKSB7Ly8gTm8gbG9uZ2VyIG1vdW50ZWQuXG4gICAgICB9XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGhlbHBlcnMuc2NoZWR1bGVSZWZyZXNoKHJvb3QsIHVwZGF0ZSk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgaWYgKCFkaWRFcnJvcikge1xuICAgICAgICAgIGRpZEVycm9yID0gdHJ1ZTtcbiAgICAgICAgICBmaXJzdEVycm9yID0gZXJyO1xuICAgICAgICB9IC8vIEtlZXAgdHJ5aW5nIG90aGVyIHJvb3RzLlxuXG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoZGlkRXJyb3IpIHtcbiAgICAgIHRocm93IGZpcnN0RXJyb3I7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVwZGF0ZTtcbiAgfSBmaW5hbGx5IHtcbiAgICBpc1BlcmZvcm1pbmdSZWZyZXNoID0gZmFsc2U7XG4gIH1cbn1cbmZ1bmN0aW9uIHJlZ2lzdGVyKHR5cGUsIGlkKSB7XG4gIHtcbiAgICBpZiAodHlwZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdHlwZSAhPT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgdHlwZSAhPT0gJ29iamVjdCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9IC8vIFRoaXMgY2FuIGhhcHBlbiBpbiBhbiBlZGdlIGNhc2UsIGUuZy4gaWYgd2UgcmVnaXN0ZXJcbiAgICAvLyByZXR1cm4gdmFsdWUgb2YgYSBIT0MgYnV0IGl0IHJldHVybnMgYSBjYWNoZWQgY29tcG9uZW50LlxuICAgIC8vIElnbm9yZSBhbnl0aGluZyBidXQgdGhlIGZpcnN0IHJlZ2lzdHJhdGlvbiBmb3IgZWFjaCB0eXBlLlxuXG5cbiAgICBpZiAoYWxsRmFtaWxpZXNCeVR5cGUuaGFzKHR5cGUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfSAvLyBDcmVhdGUgZmFtaWx5IG9yIHJlbWVtYmVyIHRvIHVwZGF0ZSBpdC5cbiAgICAvLyBOb25lIG9mIHRoaXMgYm9va2tlZXBpbmcgYWZmZWN0cyByZWNvbmNpbGlhdGlvblxuICAgIC8vIHVudGlsIHRoZSBmaXJzdCBwZXJmb3JtUmVhY3RSZWZyZXNoKCkgY2FsbCBhYm92ZS5cblxuXG4gICAgdmFyIGZhbWlseSA9IGFsbEZhbWlsaWVzQnlJRC5nZXQoaWQpO1xuXG4gICAgaWYgKGZhbWlseSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBmYW1pbHkgPSB7XG4gICAgICAgIGN1cnJlbnQ6IHR5cGVcbiAgICAgIH07XG4gICAgICBhbGxGYW1pbGllc0J5SUQuc2V0KGlkLCBmYW1pbHkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBwZW5kaW5nVXBkYXRlcy5wdXNoKFtmYW1pbHksIHR5cGVdKTtcbiAgICB9XG5cbiAgICBhbGxGYW1pbGllc0J5VHlwZS5zZXQodHlwZSwgZmFtaWx5KTsgLy8gVmlzaXQgaW5uZXIgdHlwZXMgYmVjYXVzZSB3ZSBtaWdodCBub3QgaGF2ZSByZWdpc3RlcmVkIHRoZW0uXG5cbiAgICBpZiAodHlwZW9mIHR5cGUgPT09ICdvYmplY3QnICYmIHR5cGUgIT09IG51bGwpIHtcbiAgICAgIHN3aXRjaCAodHlwZS4kJHR5cGVvZikge1xuICAgICAgICBjYXNlIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU6XG4gICAgICAgICAgcmVnaXN0ZXIodHlwZS5yZW5kZXIsIGlkICsgJyRyZW5kZXInKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIFJFQUNUX01FTU9fVFlQRTpcbiAgICAgICAgICByZWdpc3Rlcih0eXBlLnR5cGUsIGlkICsgJyR0eXBlJyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBzZXRTaWduYXR1cmUodHlwZSwga2V5KSB7XG4gIHZhciBmb3JjZVJlc2V0ID0gYXJndW1lbnRzLmxlbmd0aCA+IDIgJiYgYXJndW1lbnRzWzJdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMl0gOiBmYWxzZTtcbiAgdmFyIGdldEN1c3RvbUhvb2tzID0gYXJndW1lbnRzLmxlbmd0aCA+IDMgPyBhcmd1bWVudHNbM10gOiB1bmRlZmluZWQ7XG5cbiAge1xuICAgIGFsbFNpZ25hdHVyZXNCeVR5cGUuc2V0KHR5cGUsIHtcbiAgICAgIGZvcmNlUmVzZXQ6IGZvcmNlUmVzZXQsXG4gICAgICBvd25LZXk6IGtleSxcbiAgICAgIGZ1bGxLZXk6IG51bGwsXG4gICAgICBnZXRDdXN0b21Ib29rczogZ2V0Q3VzdG9tSG9va3MgfHwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn0gLy8gVGhpcyBpcyBsYXppbHkgY2FsbGVkIGR1cmluZyBmaXJzdCByZW5kZXIgZm9yIGEgdHlwZS5cbi8vIEl0IGNhcHR1cmVzIEhvb2sgbGlzdCBhdCB0aGF0IHRpbWUgc28gaW5saW5lIHJlcXVpcmVzIGRvbid0IGJyZWFrIGNvbXBhcmlzb25zLlxuXG5mdW5jdGlvbiBjb2xsZWN0Q3VzdG9tSG9va3NGb3JTaWduYXR1cmUodHlwZSkge1xuICB7XG4gICAgdmFyIHNpZ25hdHVyZSA9IGFsbFNpZ25hdHVyZXNCeVR5cGUuZ2V0KHR5cGUpO1xuXG4gICAgaWYgKHNpZ25hdHVyZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb21wdXRlRnVsbEtleShzaWduYXR1cmUpO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gZ2V0RmFtaWx5QnlJRChpZCkge1xuICB7XG4gICAgcmV0dXJuIGFsbEZhbWlsaWVzQnlJRC5nZXQoaWQpO1xuICB9XG59XG5mdW5jdGlvbiBnZXRGYW1pbHlCeVR5cGUodHlwZSkge1xuICB7XG4gICAgcmV0dXJuIGFsbEZhbWlsaWVzQnlUeXBlLmdldCh0eXBlKTtcbiAgfVxufVxuZnVuY3Rpb24gZmluZEFmZmVjdGVkSG9zdEluc3RhbmNlcyhmYW1pbGllcykge1xuICB7XG4gICAgdmFyIGFmZmVjdGVkSW5zdGFuY2VzID0gbmV3IFNldCgpO1xuICAgIG1vdW50ZWRSb290cy5mb3JFYWNoKGZ1bmN0aW9uIChyb290KSB7XG4gICAgICB2YXIgaGVscGVycyA9IGhlbHBlcnNCeVJvb3QuZ2V0KHJvb3QpO1xuXG4gICAgICBpZiAoaGVscGVycyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQ291bGQgbm90IGZpbmQgaGVscGVycyBmb3IgYSByb290LiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0IFJlZnJlc2guJyk7XG4gICAgICB9XG5cbiAgICAgIHZhciBpbnN0YW5jZXNGb3JSb290ID0gaGVscGVycy5maW5kSG9zdEluc3RhbmNlc0ZvclJlZnJlc2gocm9vdCwgZmFtaWxpZXMpO1xuICAgICAgaW5zdGFuY2VzRm9yUm9vdC5mb3JFYWNoKGZ1bmN0aW9uIChpbnN0KSB7XG4gICAgICAgIGFmZmVjdGVkSW5zdGFuY2VzLmFkZChpbnN0KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiBhZmZlY3RlZEluc3RhbmNlcztcbiAgfVxufVxuZnVuY3Rpb24gaW5qZWN0SW50b0dsb2JhbEhvb2soZ2xvYmFsT2JqZWN0KSB7XG4gIHtcbiAgICAvLyBGb3IgUmVhY3QgTmF0aXZlLCB0aGUgZ2xvYmFsIGhvb2sgd2lsbCBiZSBzZXQgdXAgYnkgcmVxdWlyZSgncmVhY3QtZGV2dG9vbHMtY29yZScpLlxuICAgIC8vIFRoYXQgY29kZSB3aWxsIHJ1biBiZWZvcmUgdXMuIFNvIHdlIG5lZWQgdG8gbW9ua2V5cGF0Y2ggZnVuY3Rpb25zIG9uIGV4aXN0aW5nIGhvb2suXG4gICAgLy8gRm9yIFJlYWN0IFdlYiwgdGhlIGdsb2JhbCBob29rIHdpbGwgYmUgc2V0IHVwIGJ5IHRoZSBleHRlbnNpb24uXG4gICAgLy8gVGhpcyB3aWxsIGFsc28gcnVuIGJlZm9yZSB1cy5cbiAgICB2YXIgaG9vayA9IGdsb2JhbE9iamVjdC5fX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX187XG5cbiAgICBpZiAoaG9vayA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBIb3dldmVyLCBpZiB0aGVyZSBpcyBubyBEZXZUb29scyBleHRlbnNpb24sIHdlJ2xsIG5lZWQgdG8gc2V0IHVwIHRoZSBnbG9iYWwgaG9vayBvdXJzZWx2ZXMuXG4gICAgICAvLyBOb3RlIHRoYXQgaW4gdGhpcyBjYXNlIGl0J3MgaW1wb3J0YW50IHRoYXQgcmVuZGVyZXIgY29kZSBydW5zICphZnRlciogdGhpcyBtZXRob2QgY2FsbC5cbiAgICAgIC8vIE90aGVyd2lzZSwgdGhlIHJlbmRlcmVyIHdpbGwgdGhpbmsgdGhhdCB0aGVyZSBpcyBubyBnbG9iYWwgaG9vaywgYW5kIHdvbid0IGRvIHRoZSBpbmplY3Rpb24uXG4gICAgICB2YXIgbmV4dElEID0gMDtcbiAgICAgIGdsb2JhbE9iamVjdC5fX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gPSBob29rID0ge1xuICAgICAgICByZW5kZXJlcnM6IG5ldyBNYXAoKSxcbiAgICAgICAgc3VwcG9ydHNGaWJlcjogdHJ1ZSxcbiAgICAgICAgaW5qZWN0OiBmdW5jdGlvbiAoaW5qZWN0ZWQpIHtcbiAgICAgICAgICByZXR1cm4gbmV4dElEKys7XG4gICAgICAgIH0sXG4gICAgICAgIG9uU2NoZWR1bGVGaWJlclJvb3Q6IGZ1bmN0aW9uIChpZCwgcm9vdCwgY2hpbGRyZW4pIHt9LFxuICAgICAgICBvbkNvbW1pdEZpYmVyUm9vdDogZnVuY3Rpb24gKGlkLCByb290LCBtYXliZVByaW9yaXR5TGV2ZWwsIGRpZEVycm9yKSB7fSxcbiAgICAgICAgb25Db21taXRGaWJlclVubW91bnQ6IGZ1bmN0aW9uICgpIHt9XG4gICAgICB9O1xuICAgIH0gLy8gSGVyZSwgd2UganVzdCB3YW50IHRvIGdldCBhIHJlZmVyZW5jZSB0byBzY2hlZHVsZVJlZnJlc2guXG5cblxuICAgIHZhciBvbGRJbmplY3QgPSBob29rLmluamVjdDtcblxuICAgIGhvb2suaW5qZWN0ID0gZnVuY3Rpb24gKGluamVjdGVkKSB7XG4gICAgICB2YXIgaWQgPSBvbGRJbmplY3QuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcblxuICAgICAgaWYgKHR5cGVvZiBpbmplY3RlZC5zY2hlZHVsZVJlZnJlc2ggPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIGluamVjdGVkLnNldFJlZnJlc2hIYW5kbGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIC8vIFRoaXMgdmVyc2lvbiBzdXBwb3J0cyBSZWFjdCBSZWZyZXNoLlxuICAgICAgICBoZWxwZXJzQnlSZW5kZXJlcklELnNldChpZCwgaW5qZWN0ZWQpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gaWQ7XG4gICAgfTsgLy8gRG8gdGhlIHNhbWUgZm9yIGFueSBhbHJlYWR5IGluamVjdGVkIHJvb3RzLlxuICAgIC8vIFRoaXMgaXMgdXNlZnVsIGlmIFJlYWN0RE9NIGhhcyBhbHJlYWR5IGJlZW4gaW5pdGlhbGl6ZWQuXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xNzYyNlxuXG5cbiAgICBob29rLnJlbmRlcmVycy5mb3JFYWNoKGZ1bmN0aW9uIChpbmplY3RlZCwgaWQpIHtcbiAgICAgIGlmICh0eXBlb2YgaW5qZWN0ZWQuc2NoZWR1bGVSZWZyZXNoID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBpbmplY3RlZC5zZXRSZWZyZXNoSGFuZGxlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAvLyBUaGlzIHZlcnNpb24gc3VwcG9ydHMgUmVhY3QgUmVmcmVzaC5cbiAgICAgICAgaGVscGVyc0J5UmVuZGVyZXJJRC5zZXQoaWQsIGluamVjdGVkKTtcbiAgICAgIH1cbiAgICB9KTsgLy8gV2UgYWxzbyB3YW50IHRvIHRyYWNrIGN1cnJlbnRseSBtb3VudGVkIHJvb3RzLlxuXG4gICAgdmFyIG9sZE9uQ29tbWl0RmliZXJSb290ID0gaG9vay5vbkNvbW1pdEZpYmVyUm9vdDtcblxuICAgIHZhciBvbGRPblNjaGVkdWxlRmliZXJSb290ID0gaG9vay5vblNjaGVkdWxlRmliZXJSb290IHx8IGZ1bmN0aW9uICgpIHt9O1xuXG4gICAgaG9vay5vblNjaGVkdWxlRmliZXJSb290ID0gZnVuY3Rpb24gKGlkLCByb290LCBjaGlsZHJlbikge1xuICAgICAgaWYgKCFpc1BlcmZvcm1pbmdSZWZyZXNoKSB7XG4gICAgICAgIC8vIElmIGl0IHdhcyBpbnRlbnRpb25hbGx5IHNjaGVkdWxlZCwgZG9uJ3QgYXR0ZW1wdCB0byByZXN0b3JlLlxuICAgICAgICAvLyBUaGlzIGluY2x1ZGVzIGludGVudGlvbmFsbHkgc2NoZWR1bGVkIHVubW91bnRzLlxuICAgICAgICBmYWlsZWRSb290cy5kZWxldGUocm9vdCk7XG5cbiAgICAgICAgaWYgKHJvb3RFbGVtZW50cyAhPT0gbnVsbCkge1xuICAgICAgICAgIHJvb3RFbGVtZW50cy5zZXQocm9vdCwgY2hpbGRyZW4pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvbGRPblNjaGVkdWxlRmliZXJSb290LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgfTtcblxuICAgIGhvb2sub25Db21taXRGaWJlclJvb3QgPSBmdW5jdGlvbiAoaWQsIHJvb3QsIG1heWJlUHJpb3JpdHlMZXZlbCwgZGlkRXJyb3IpIHtcbiAgICAgIHZhciBoZWxwZXJzID0gaGVscGVyc0J5UmVuZGVyZXJJRC5nZXQoaWQpO1xuXG4gICAgICBpZiAoaGVscGVycyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaGVscGVyc0J5Um9vdC5zZXQocm9vdCwgaGVscGVycyk7XG4gICAgICB2YXIgY3VycmVudCA9IHJvb3QuY3VycmVudDtcbiAgICAgIHZhciBhbHRlcm5hdGUgPSBjdXJyZW50LmFsdGVybmF0ZTsgLy8gV2UgbmVlZCB0byBkZXRlcm1pbmUgd2hldGhlciB0aGlzIHJvb3QgaGFzIGp1c3QgKHVuKW1vdW50ZWQuXG4gICAgICAvLyBUaGlzIGxvZ2ljIGlzIGNvcHktcGFzdGVkIGZyb20gc2ltaWxhciBsb2dpYyBpbiB0aGUgRGV2VG9vbHMgYmFja2VuZC5cbiAgICAgIC8vIElmIHRoaXMgYnJlYWtzIHdpdGggc29tZSByZWZhY3RvcmluZywgeW91J2xsIHdhbnQgdG8gdXBkYXRlIERldlRvb2xzIHRvby5cblxuICAgICAgaWYgKGFsdGVybmF0ZSAhPT0gbnVsbCkge1xuICAgICAgICB2YXIgd2FzTW91bnRlZCA9IGFsdGVybmF0ZS5tZW1vaXplZFN0YXRlICE9IG51bGwgJiYgYWx0ZXJuYXRlLm1lbW9pemVkU3RhdGUuZWxlbWVudCAhPSBudWxsO1xuICAgICAgICB2YXIgaXNNb3VudGVkID0gY3VycmVudC5tZW1vaXplZFN0YXRlICE9IG51bGwgJiYgY3VycmVudC5tZW1vaXplZFN0YXRlLmVsZW1lbnQgIT0gbnVsbDtcblxuICAgICAgICBpZiAoIXdhc01vdW50ZWQgJiYgaXNNb3VudGVkKSB7XG4gICAgICAgICAgLy8gTW91bnQgYSBuZXcgcm9vdC5cbiAgICAgICAgICBtb3VudGVkUm9vdHMuYWRkKHJvb3QpO1xuICAgICAgICAgIGZhaWxlZFJvb3RzLmRlbGV0ZShyb290KTtcbiAgICAgICAgfSBlbHNlIGlmICh3YXNNb3VudGVkICYmIGlzTW91bnRlZCkgOyBlbHNlIGlmICh3YXNNb3VudGVkICYmICFpc01vdW50ZWQpIHtcbiAgICAgICAgICAvLyBVbm1vdW50IGFuIGV4aXN0aW5nIHJvb3QuXG4gICAgICAgICAgbW91bnRlZFJvb3RzLmRlbGV0ZShyb290KTtcblxuICAgICAgICAgIGlmIChkaWRFcnJvcikge1xuICAgICAgICAgICAgLy8gV2UnbGwgcmVtb3VudCBpdCBvbiBmdXR1cmUgZWRpdHMuXG4gICAgICAgICAgICBmYWlsZWRSb290cy5hZGQocm9vdCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGhlbHBlcnNCeVJvb3QuZGVsZXRlKHJvb3QpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICghd2FzTW91bnRlZCAmJiAhaXNNb3VudGVkKSB7XG4gICAgICAgICAgaWYgKGRpZEVycm9yKSB7XG4gICAgICAgICAgICAvLyBXZSdsbCByZW1vdW50IGl0IG9uIGZ1dHVyZSBlZGl0cy5cbiAgICAgICAgICAgIGZhaWxlZFJvb3RzLmFkZChyb290KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIE1vdW50IGEgbmV3IHJvb3QuXG4gICAgICAgIG1vdW50ZWRSb290cy5hZGQocm9vdCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvbGRPbkNvbW1pdEZpYmVyUm9vdC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIH07XG4gIH1cbn1cbmZ1bmN0aW9uIGhhc1VucmVjb3ZlcmFibGVFcnJvcnMoKSB7XG4gIC8vIFRPRE86IGRlbGV0ZSB0aGlzIGFmdGVyIHJlbW92aW5nIGRlcGVuZGVuY3kgaW4gUk4uXG4gIHJldHVybiBmYWxzZTtcbn0gLy8gRXhwb3NlZCBmb3IgdGVzdGluZy5cblxuZnVuY3Rpb24gX2dldE1vdW50ZWRSb290Q291bnQoKSB7XG4gIHtcbiAgICByZXR1cm4gbW91bnRlZFJvb3RzLnNpemU7XG4gIH1cbn0gLy8gVGhpcyBpcyBhIHdyYXBwZXIgb3ZlciBtb3JlIHByaW1pdGl2ZSBmdW5jdGlvbnMgZm9yIHNldHRpbmcgc2lnbmF0dXJlLlxuLy8gU2lnbmF0dXJlcyBsZXQgdXMgZGVjaWRlIHdoZXRoZXIgdGhlIEhvb2sgb3JkZXIgaGFzIGNoYW5nZWQgb24gcmVmcmVzaC5cbi8vXG4vLyBUaGlzIGZ1bmN0aW9uIGlzIGludGVuZGVkIHRvIGJlIHVzZWQgYXMgYSB0cmFuc2Zvcm0gdGFyZ2V0LCBlLmcuOlxuLy8gdmFyIF9zID0gY3JlYXRlU2lnbmF0dXJlRnVuY3Rpb25Gb3JUcmFuc2Zvcm0oKVxuLy9cbi8vIGZ1bmN0aW9uIEhlbGxvKCkge1xuLy8gICBjb25zdCBbZm9vLCBzZXRGb29dID0gdXNlU3RhdGUoMCk7XG4vLyAgIGNvbnN0IHZhbHVlID0gdXNlQ3VzdG9tSG9vaygpO1xuLy8gICBfcygpOyAvKiBTZWNvbmQgY2FsbCB0cmlnZ2VycyBjb2xsZWN0aW5nIHRoZSBjdXN0b20gSG9vayBsaXN0LlxuLy8gICAgICAgICAgKiBUaGlzIGRvZXNuJ3QgaGFwcGVuIGR1cmluZyB0aGUgbW9kdWxlIGV2YWx1YXRpb24gYmVjYXVzZSB3ZVxuLy8gICAgICAgICAgKiBkb24ndCB3YW50IHRvIGNoYW5nZSB0aGUgbW9kdWxlIG9yZGVyIHdpdGggaW5saW5lIHJlcXVpcmVzLlxuLy8gICAgICAgICAgKiBOZXh0IGNhbGxzIGFyZSBub29wcy4gKi9cbi8vICAgcmV0dXJuIDxoMT5IaTwvaDE+O1xuLy8gfVxuLy9cbi8vIC8qIEZpcnN0IGNhbGwgc3BlY2lmaWVzIHRoZSBzaWduYXR1cmU6ICovXG4vLyBfcyhcbi8vICAgSGVsbG8sXG4vLyAgICd1c2VTdGF0ZXtbZm9vLCBzZXRGb29dfSgwKScsXG4vLyAgICgpID0+IFt1c2VDdXN0b21Ib29rXSwgLyogTGF6eSB0byBhdm9pZCB0cmlnZ2VyaW5nIGlubGluZSByZXF1aXJlcyAqL1xuLy8gKTtcblxuZnVuY3Rpb24gY3JlYXRlU2lnbmF0dXJlRnVuY3Rpb25Gb3JUcmFuc2Zvcm0oKSB7XG4gIHtcbiAgICAvLyBXZSdsbCBmaWxsIGluIHRoZSBzaWduYXR1cmUgaW4gdHdvIHN0ZXBzLlxuICAgIC8vIEZpcnN0LCB3ZSdsbCBrbm93IHRoZSBzaWduYXR1cmUgaXRzZWxmLiBUaGlzIGhhcHBlbnMgb3V0c2lkZSB0aGUgY29tcG9uZW50LlxuICAgIC8vIFRoZW4sIHdlJ2xsIGtub3cgdGhlIHJlZmVyZW5jZXMgdG8gY3VzdG9tIEhvb2tzLiBUaGlzIGhhcHBlbnMgaW5zaWRlIHRoZSBjb21wb25lbnQuXG4gICAgLy8gQWZ0ZXIgdGhhdCwgdGhlIHJldHVybmVkIGZ1bmN0aW9uIHdpbGwgYmUgYSBmYXN0IHBhdGggbm8tb3AuXG4gICAgdmFyIHN0YXR1cyA9ICduZWVkc1NpZ25hdHVyZSc7XG4gICAgdmFyIHNhdmVkVHlwZTtcbiAgICB2YXIgaGFzQ3VzdG9tSG9va3M7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0eXBlLCBrZXksIGZvcmNlUmVzZXQsIGdldEN1c3RvbUhvb2tzKSB7XG4gICAgICBzd2l0Y2ggKHN0YXR1cykge1xuICAgICAgICBjYXNlICduZWVkc1NpZ25hdHVyZSc6XG4gICAgICAgICAgaWYgKHR5cGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgLy8gSWYgd2UgcmVjZWl2ZWQgYW4gYXJndW1lbnQsIHRoaXMgaXMgdGhlIGluaXRpYWwgcmVnaXN0cmF0aW9uIGNhbGwuXG4gICAgICAgICAgICBzYXZlZFR5cGUgPSB0eXBlO1xuICAgICAgICAgICAgaGFzQ3VzdG9tSG9va3MgPSB0eXBlb2YgZ2V0Q3VzdG9tSG9va3MgPT09ICdmdW5jdGlvbic7XG4gICAgICAgICAgICBzZXRTaWduYXR1cmUodHlwZSwga2V5LCBmb3JjZVJlc2V0LCBnZXRDdXN0b21Ib29rcyk7IC8vIFRoZSBuZXh0IGNhbGwgd2UgZXhwZWN0IGlzIGZyb20gaW5zaWRlIGEgZnVuY3Rpb24sIHRvIGZpbGwgaW4gdGhlIGN1c3RvbSBIb29rcy5cblxuICAgICAgICAgICAgc3RhdHVzID0gJ25lZWRzQ3VzdG9tSG9va3MnO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ25lZWRzQ3VzdG9tSG9va3MnOlxuICAgICAgICAgIGlmIChoYXNDdXN0b21Ib29rcykge1xuICAgICAgICAgICAgY29sbGVjdEN1c3RvbUhvb2tzRm9yU2lnbmF0dXJlKHNhdmVkVHlwZSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgc3RhdHVzID0gJ3Jlc29sdmVkJztcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHR5cGU7XG4gICAgfTtcbiAgfVxufVxuZnVuY3Rpb24gaXNMaWtlbHlDb21wb25lbnRUeXBlKHR5cGUpIHtcbiAge1xuICAgIHN3aXRjaCAodHlwZW9mIHR5cGUpIHtcbiAgICAgIGNhc2UgJ2Z1bmN0aW9uJzpcbiAgICAgICAge1xuICAgICAgICAgIC8vIEZpcnN0LCBkZWFsIHdpdGggY2xhc3Nlcy5cbiAgICAgICAgICBpZiAodHlwZS5wcm90b3R5cGUgIT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKHR5cGUucHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQpIHtcbiAgICAgICAgICAgICAgLy8gUmVhY3QgY2xhc3MuXG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgb3duTmFtZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0eXBlLnByb3RvdHlwZSk7XG5cbiAgICAgICAgICAgIGlmIChvd25OYW1lcy5sZW5ndGggPiAxIHx8IG93bk5hbWVzWzBdICE9PSAnY29uc3RydWN0b3InKSB7XG4gICAgICAgICAgICAgIC8vIFRoaXMgbG9va3MgbGlrZSBhIGNsYXNzLlxuICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm90b1xuXG5cbiAgICAgICAgICAgIGlmICh0eXBlLnByb3RvdHlwZS5fX3Byb3RvX18gIT09IE9iamVjdC5wcm90b3R5cGUpIHtcbiAgICAgICAgICAgICAgLy8gSXQgaGFzIGEgc3VwZXJjbGFzcy5cbiAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfSAvLyBQYXNzIHRocm91Z2guXG4gICAgICAgICAgICAvLyBUaGlzIGxvb2tzIGxpa2UgYSByZWd1bGFyIGZ1bmN0aW9uIHdpdGggZW1wdHkgcHJvdG90eXBlLlxuXG4gICAgICAgICAgfSAvLyBGb3IgcGxhaW4gZnVuY3Rpb25zIGFuZCBhcnJvd3MsIHVzZSBuYW1lIGFzIGEgaGV1cmlzdGljLlxuXG5cbiAgICAgICAgICB2YXIgbmFtZSA9IHR5cGUubmFtZSB8fCB0eXBlLmRpc3BsYXlOYW1lO1xuICAgICAgICAgIHJldHVybiB0eXBlb2YgbmFtZSA9PT0gJ3N0cmluZycgJiYgL15bQS1aXS8udGVzdChuYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICBjYXNlICdvYmplY3QnOlxuICAgICAgICB7XG4gICAgICAgICAgaWYgKHR5cGUgIT0gbnVsbCkge1xuICAgICAgICAgICAgc3dpdGNoICh0eXBlLiQkdHlwZW9mKSB7XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTpcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9NRU1PX1RZUEU6XG4gICAgICAgICAgICAgICAgLy8gRGVmaW5pdGVseSBSZWFjdCBjb21wb25lbnRzLlxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuXG4gICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydHMuX2dldE1vdW50ZWRSb290Q291bnQgPSBfZ2V0TW91bnRlZFJvb3RDb3VudDtcbmV4cG9ydHMuY29sbGVjdEN1c3RvbUhvb2tzRm9yU2lnbmF0dXJlID0gY29sbGVjdEN1c3RvbUhvb2tzRm9yU2lnbmF0dXJlO1xuZXhwb3J0cy5jcmVhdGVTaWduYXR1cmVGdW5jdGlvbkZvclRyYW5zZm9ybSA9IGNyZWF0ZVNpZ25hdHVyZUZ1bmN0aW9uRm9yVHJhbnNmb3JtO1xuZXhwb3J0cy5maW5kQWZmZWN0ZWRIb3N0SW5zdGFuY2VzID0gZmluZEFmZmVjdGVkSG9zdEluc3RhbmNlcztcbmV4cG9ydHMuZ2V0RmFtaWx5QnlJRCA9IGdldEZhbWlseUJ5SUQ7XG5leHBvcnRzLmdldEZhbWlseUJ5VHlwZSA9IGdldEZhbWlseUJ5VHlwZTtcbmV4cG9ydHMuaGFzVW5yZWNvdmVyYWJsZUVycm9ycyA9IGhhc1VucmVjb3ZlcmFibGVFcnJvcnM7XG5leHBvcnRzLmluamVjdEludG9HbG9iYWxIb29rID0gaW5qZWN0SW50b0dsb2JhbEhvb2s7XG5leHBvcnRzLmlzTGlrZWx5Q29tcG9uZW50VHlwZSA9IGlzTGlrZWx5Q29tcG9uZW50VHlwZTtcbmV4cG9ydHMucGVyZm9ybVJlYWN0UmVmcmVzaCA9IHBlcmZvcm1SZWFjdFJlZnJlc2g7XG5leHBvcnRzLnJlZ2lzdGVyID0gcmVnaXN0ZXI7XG5leHBvcnRzLnNldFNpZ25hdHVyZSA9IHNldFNpZ25hdHVyZTtcbiAgfSkoKTtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-refresh/cjs/react-refresh-runtime.development.js\n"); + +/***/ }), + +/***/ "./node_modules/react-refresh/runtime.js": +/*!***********************************************!*\ + !*** ./node_modules/react-refresh/runtime.js ***! + \***********************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-refresh-runtime.development.js */ \"./node_modules/react-refresh/cjs/react-refresh-runtime.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtcmVmcmVzaC9ydW50aW1lLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLElBQUksS0FBcUMsRUFBRSxFQUUxQyxDQUFDO0FBQ0YsRUFBRSwrSkFBc0U7QUFDeEUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXJlZnJlc2gvcnVudGltZS5qcz81ZmVkIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1yZWZyZXNoLXJ1bnRpbWUucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtcmVmcmVzaC1ydW50aW1lLmRldmVsb3BtZW50LmpzJyk7XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-refresh/runtime.js\n"); + +/***/ }) + +}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); } +/******/ var __webpack_exports__ = (__webpack_exec__("./node_modules/@next/react-refresh-utils/runtime.js")); +/******/ _N_E = __webpack_exports__; +/******/ } +]); \ No newline at end of file diff --git a/.next/static/chunks/webpack.js b/.next/static/chunks/webpack.js new file mode 100644 index 0000000..bd19609 --- /dev/null +++ b/.next/static/chunks/webpack.js @@ -0,0 +1,1291 @@ +/* + * 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/). + */ +/******/ (function() { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({}); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ if (cachedModule.error !== undefined) throw cachedModule.error; +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ id: moduleId, +/******/ loaded: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ var threw = true; +/******/ try { +/******/ var execOptions = { id: moduleId, module: module, factory: __webpack_modules__[moduleId], require: __webpack_require__ }; +/******/ __webpack_require__.i.forEach(function(handler) { handler(execOptions); }); +/******/ module = execOptions.module; +/******/ execOptions.factory.call(module.exports, module, module.exports, execOptions.require); +/******/ threw = false; +/******/ } finally { +/******/ if(threw) delete __webpack_module_cache__[moduleId]; +/******/ } +/******/ +/******/ // Flag the module as loaded +/******/ module.loaded = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = __webpack_module_cache__; +/******/ +/******/ // expose the module execution interceptor +/******/ __webpack_require__.i = []; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ !function() { +/******/ var deferred = []; +/******/ __webpack_require__.O = function(result, chunkIds, fn, priority) { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var chunkIds = deferred[i][0]; +/******/ var fn = deferred[i][1]; +/******/ var priority = deferred[i][2]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ var r = fn(); +/******/ if (r !== undefined) result = r; +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ !function() { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function() { return module['default']; } : +/******/ function() { return module; }; +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/create fake namespace object */ +/******/ !function() { +/******/ var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; }; +/******/ var leafPrototypes; +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 16: return value when it's Promise-like +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = this(value); +/******/ if(mode & 8) return value; +/******/ if(typeof value === 'object' && value) { +/******/ if((mode & 4) && value.__esModule) return value; +/******/ if((mode & 16) && typeof value.then === 'function') return value; +/******/ } +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ var def = {}; +/******/ leafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)]; +/******/ for(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) { +/******/ Object.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; }); +/******/ } +/******/ def['default'] = function() { return value; }; +/******/ __webpack_require__.d(ns, def); +/******/ return ns; +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ !function() { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = function(exports, definition) { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/ensure chunk */ +/******/ !function() { +/******/ __webpack_require__.f = {}; +/******/ // This file contains only the entry chunk. +/******/ // The chunk loading function for additional chunks +/******/ __webpack_require__.e = function(chunkId) { +/******/ return Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) { +/******/ __webpack_require__.f[key](chunkId, promises); +/******/ return promises; +/******/ }, [])); +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/get javascript chunk filename */ +/******/ !function() { +/******/ // This function allow to reference async chunks +/******/ __webpack_require__.u = function(chunkId) { +/******/ // return url for filenames based on template +/******/ return "static/chunks/" + chunkId + ".js"; +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/get javascript update chunk filename */ +/******/ !function() { +/******/ // This function allow to reference all chunks +/******/ __webpack_require__.hu = function(chunkId) { +/******/ // return url for filenames based on template +/******/ return "static/webpack/" + chunkId + "." + __webpack_require__.h() + ".hot-update.js"; +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/get update manifest filename */ +/******/ !function() { +/******/ __webpack_require__.hmrF = function() { return "static/webpack/" + __webpack_require__.h() + ".webpack.hot-update.json"; }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "058bc7563fa15600"; } +/******/ }(); +/******/ +/******/ /* webpack/runtime/global */ +/******/ !function() { +/******/ __webpack_require__.g = (function() { +/******/ if (typeof globalThis === 'object') return globalThis; +/******/ try { +/******/ return this || new Function('return this')(); +/******/ } catch (e) { +/******/ if (typeof window === 'object') return window; +/******/ } +/******/ })(); +/******/ }(); +/******/ +/******/ /* webpack/runtime/harmony module decorator */ +/******/ !function() { +/******/ __webpack_require__.hmd = function(module) { +/******/ module = Object.create(module); +/******/ if (!module.children) module.children = []; +/******/ Object.defineProperty(module, 'exports', { +/******/ enumerable: true, +/******/ set: function() { +/******/ throw new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id); +/******/ } +/******/ }); +/******/ return module; +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ !function() { +/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } +/******/ }(); +/******/ +/******/ /* webpack/runtime/load script */ +/******/ !function() { +/******/ var inProgress = {}; +/******/ var dataWebpackPrefix = "_N_E:"; +/******/ // loadScript function to load a script via script tag +/******/ __webpack_require__.l = function(url, done, key, chunkId) { +/******/ if(inProgress[url]) { inProgress[url].push(done); return; } +/******/ var script, needAttach; +/******/ if(key !== undefined) { +/******/ var scripts = document.getElementsByTagName("script"); +/******/ for(var i = 0; i < scripts.length; i++) { +/******/ var s = scripts[i]; +/******/ if(s.getAttribute("src") == url || s.getAttribute("data-webpack") == dataWebpackPrefix + key) { script = s; break; } +/******/ } +/******/ } +/******/ if(!script) { +/******/ needAttach = true; +/******/ script = document.createElement('script'); +/******/ +/******/ script.charset = 'utf-8'; +/******/ script.timeout = 120; +/******/ if (__webpack_require__.nc) { +/******/ script.setAttribute("nonce", __webpack_require__.nc); +/******/ } +/******/ script.setAttribute("data-webpack", dataWebpackPrefix + key); +/******/ script.src = url; +/******/ } +/******/ inProgress[url] = [done]; +/******/ var onScriptComplete = function(prev, event) { +/******/ // avoid mem leaks in IE. +/******/ script.onerror = script.onload = null; +/******/ clearTimeout(timeout); +/******/ var doneFns = inProgress[url]; +/******/ delete inProgress[url]; +/******/ script.parentNode && script.parentNode.removeChild(script); +/******/ doneFns && doneFns.forEach(function(fn) { return fn(event); }); +/******/ if(prev) return prev(event); +/******/ } +/******/ ; +/******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000); +/******/ script.onerror = onScriptComplete.bind(null, script.onerror); +/******/ script.onload = onScriptComplete.bind(null, script.onload); +/******/ needAttach && document.head.appendChild(script); +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ !function() { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/node module decorator */ +/******/ !function() { +/******/ __webpack_require__.nmd = function(module) { +/******/ module.paths = []; +/******/ if (!module.children) module.children = []; +/******/ return module; +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/runtimeId */ +/******/ !function() { +/******/ __webpack_require__.j = "webpack"; +/******/ }(); +/******/ +/******/ /* webpack/runtime/hot module replacement */ +/******/ !function() { +/******/ var currentModuleData = {}; +/******/ var installedModules = __webpack_require__.c; +/******/ +/******/ // module and require creation +/******/ var currentChildModule; +/******/ var currentParents = []; +/******/ +/******/ // status +/******/ var registeredStatusHandlers = []; +/******/ var currentStatus = "idle"; +/******/ +/******/ // while downloading +/******/ var blockingPromises; +/******/ +/******/ // The update info +/******/ var currentUpdateApplyHandlers; +/******/ var queuedInvalidatedModules; +/******/ +/******/ // eslint-disable-next-line no-unused-vars +/******/ __webpack_require__.hmrD = currentModuleData; +/******/ +/******/ __webpack_require__.i.push(function (options) { +/******/ var module = options.module; +/******/ var require = createRequire(options.require, options.id); +/******/ module.hot = createModuleHotObject(options.id, module); +/******/ module.parents = currentParents; +/******/ module.children = []; +/******/ currentParents = []; +/******/ options.require = require; +/******/ }); +/******/ +/******/ __webpack_require__.hmrC = {}; +/******/ __webpack_require__.hmrI = {}; +/******/ +/******/ function createRequire(require, moduleId) { +/******/ var me = installedModules[moduleId]; +/******/ if (!me) return require; +/******/ var fn = function (request) { +/******/ if (me.hot.active) { +/******/ if (installedModules[request]) { +/******/ var parents = installedModules[request].parents; +/******/ if (parents.indexOf(moduleId) === -1) { +/******/ parents.push(moduleId); +/******/ } +/******/ } else { +/******/ currentParents = [moduleId]; +/******/ currentChildModule = request; +/******/ } +/******/ if (me.children.indexOf(request) === -1) { +/******/ me.children.push(request); +/******/ } +/******/ } else { +/******/ console.warn( +/******/ "[HMR] unexpected require(" + +/******/ request + +/******/ ") from disposed module " + +/******/ moduleId +/******/ ); +/******/ currentParents = []; +/******/ } +/******/ return require(request); +/******/ }; +/******/ var createPropertyDescriptor = function (name) { +/******/ return { +/******/ configurable: true, +/******/ enumerable: true, +/******/ get: function () { +/******/ return require[name]; +/******/ }, +/******/ set: function (value) { +/******/ require[name] = value; +/******/ } +/******/ }; +/******/ }; +/******/ for (var name in require) { +/******/ if (Object.prototype.hasOwnProperty.call(require, name) && name !== "e") { +/******/ Object.defineProperty(fn, name, createPropertyDescriptor(name)); +/******/ } +/******/ } +/******/ fn.e = function (chunkId) { +/******/ return trackBlockingPromise(require.e(chunkId)); +/******/ }; +/******/ return fn; +/******/ } +/******/ +/******/ function createModuleHotObject(moduleId, me) { +/******/ var _main = currentChildModule !== moduleId; +/******/ var hot = { +/******/ // private stuff +/******/ _acceptedDependencies: {}, +/******/ _acceptedErrorHandlers: {}, +/******/ _declinedDependencies: {}, +/******/ _selfAccepted: false, +/******/ _selfDeclined: false, +/******/ _selfInvalidated: false, +/******/ _disposeHandlers: [], +/******/ _main: _main, +/******/ _requireSelf: function () { +/******/ currentParents = me.parents.slice(); +/******/ currentChildModule = _main ? undefined : moduleId; +/******/ __webpack_require__(moduleId); +/******/ }, +/******/ +/******/ // Module API +/******/ active: true, +/******/ accept: function (dep, callback, errorHandler) { +/******/ if (dep === undefined) hot._selfAccepted = true; +/******/ else if (typeof dep === "function") hot._selfAccepted = dep; +/******/ else if (typeof dep === "object" && dep !== null) { +/******/ for (var i = 0; i < dep.length; i++) { +/******/ hot._acceptedDependencies[dep[i]] = callback || function () {}; +/******/ hot._acceptedErrorHandlers[dep[i]] = errorHandler; +/******/ } +/******/ } else { +/******/ hot._acceptedDependencies[dep] = callback || function () {}; +/******/ hot._acceptedErrorHandlers[dep] = errorHandler; +/******/ } +/******/ }, +/******/ decline: function (dep) { +/******/ if (dep === undefined) hot._selfDeclined = true; +/******/ else if (typeof dep === "object" && dep !== null) +/******/ for (var i = 0; i < dep.length; i++) +/******/ hot._declinedDependencies[dep[i]] = true; +/******/ else hot._declinedDependencies[dep] = true; +/******/ }, +/******/ dispose: function (callback) { +/******/ hot._disposeHandlers.push(callback); +/******/ }, +/******/ addDisposeHandler: function (callback) { +/******/ hot._disposeHandlers.push(callback); +/******/ }, +/******/ removeDisposeHandler: function (callback) { +/******/ var idx = hot._disposeHandlers.indexOf(callback); +/******/ if (idx >= 0) hot._disposeHandlers.splice(idx, 1); +/******/ }, +/******/ invalidate: function () { +/******/ this._selfInvalidated = true; +/******/ switch (currentStatus) { +/******/ case "idle": +/******/ currentUpdateApplyHandlers = []; +/******/ Object.keys(__webpack_require__.hmrI).forEach(function (key) { +/******/ __webpack_require__.hmrI[key]( +/******/ moduleId, +/******/ currentUpdateApplyHandlers +/******/ ); +/******/ }); +/******/ setStatus("ready"); +/******/ break; +/******/ case "ready": +/******/ Object.keys(__webpack_require__.hmrI).forEach(function (key) { +/******/ __webpack_require__.hmrI[key]( +/******/ moduleId, +/******/ currentUpdateApplyHandlers +/******/ ); +/******/ }); +/******/ break; +/******/ case "prepare": +/******/ case "check": +/******/ case "dispose": +/******/ case "apply": +/******/ (queuedInvalidatedModules = queuedInvalidatedModules || []).push( +/******/ moduleId +/******/ ); +/******/ break; +/******/ default: +/******/ // ignore requests in error states +/******/ break; +/******/ } +/******/ }, +/******/ +/******/ // Management API +/******/ check: hotCheck, +/******/ apply: hotApply, +/******/ status: function (l) { +/******/ if (!l) return currentStatus; +/******/ registeredStatusHandlers.push(l); +/******/ }, +/******/ addStatusHandler: function (l) { +/******/ registeredStatusHandlers.push(l); +/******/ }, +/******/ removeStatusHandler: function (l) { +/******/ var idx = registeredStatusHandlers.indexOf(l); +/******/ if (idx >= 0) registeredStatusHandlers.splice(idx, 1); +/******/ }, +/******/ +/******/ //inherit from previous dispose call +/******/ data: currentModuleData[moduleId] +/******/ }; +/******/ currentChildModule = undefined; +/******/ return hot; +/******/ } +/******/ +/******/ function setStatus(newStatus) { +/******/ currentStatus = newStatus; +/******/ var results = []; +/******/ +/******/ for (var i = 0; i < registeredStatusHandlers.length; i++) +/******/ results[i] = registeredStatusHandlers[i].call(null, newStatus); +/******/ +/******/ return Promise.all(results); +/******/ } +/******/ +/******/ function trackBlockingPromise(promise) { +/******/ switch (currentStatus) { +/******/ case "ready": +/******/ setStatus("prepare"); +/******/ blockingPromises.push(promise); +/******/ waitForBlockingPromises(function () { +/******/ return setStatus("ready"); +/******/ }); +/******/ return promise; +/******/ case "prepare": +/******/ blockingPromises.push(promise); +/******/ return promise; +/******/ default: +/******/ return promise; +/******/ } +/******/ } +/******/ +/******/ function waitForBlockingPromises(fn) { +/******/ if (blockingPromises.length === 0) return fn(); +/******/ var blocker = blockingPromises; +/******/ blockingPromises = []; +/******/ return Promise.all(blocker).then(function () { +/******/ return waitForBlockingPromises(fn); +/******/ }); +/******/ } +/******/ +/******/ function hotCheck(applyOnUpdate) { +/******/ if (currentStatus !== "idle") { +/******/ throw new Error("check() is only allowed in idle status"); +/******/ } +/******/ return setStatus("check") +/******/ .then(__webpack_require__.hmrM) +/******/ .then(function (update) { +/******/ if (!update) { +/******/ return setStatus(applyInvalidatedModules() ? "ready" : "idle").then( +/******/ function () { +/******/ return null; +/******/ } +/******/ ); +/******/ } +/******/ +/******/ return setStatus("prepare").then(function () { +/******/ var updatedModules = []; +/******/ blockingPromises = []; +/******/ currentUpdateApplyHandlers = []; +/******/ +/******/ return Promise.all( +/******/ Object.keys(__webpack_require__.hmrC).reduce(function ( +/******/ promises, +/******/ key +/******/ ) { +/******/ __webpack_require__.hmrC[key]( +/******/ update.c, +/******/ update.r, +/******/ update.m, +/******/ promises, +/******/ currentUpdateApplyHandlers, +/******/ updatedModules +/******/ ); +/******/ return promises; +/******/ }, +/******/ []) +/******/ ).then(function () { +/******/ return waitForBlockingPromises(function () { +/******/ if (applyOnUpdate) { +/******/ return internalApply(applyOnUpdate); +/******/ } else { +/******/ return setStatus("ready").then(function () { +/******/ return updatedModules; +/******/ }); +/******/ } +/******/ }); +/******/ }); +/******/ }); +/******/ }); +/******/ } +/******/ +/******/ function hotApply(options) { +/******/ if (currentStatus !== "ready") { +/******/ return Promise.resolve().then(function () { +/******/ throw new Error("apply() is only allowed in ready status"); +/******/ }); +/******/ } +/******/ return internalApply(options); +/******/ } +/******/ +/******/ function internalApply(options) { +/******/ options = options || {}; +/******/ +/******/ applyInvalidatedModules(); +/******/ +/******/ var results = currentUpdateApplyHandlers.map(function (handler) { +/******/ return handler(options); +/******/ }); +/******/ currentUpdateApplyHandlers = undefined; +/******/ +/******/ var errors = results +/******/ .map(function (r) { +/******/ return r.error; +/******/ }) +/******/ .filter(Boolean); +/******/ +/******/ if (errors.length > 0) { +/******/ return setStatus("abort").then(function () { +/******/ throw errors[0]; +/******/ }); +/******/ } +/******/ +/******/ // Now in "dispose" phase +/******/ var disposePromise = setStatus("dispose"); +/******/ +/******/ results.forEach(function (result) { +/******/ if (result.dispose) result.dispose(); +/******/ }); +/******/ +/******/ // Now in "apply" phase +/******/ var applyPromise = setStatus("apply"); +/******/ +/******/ var error; +/******/ var reportError = function (err) { +/******/ if (!error) error = err; +/******/ }; +/******/ +/******/ var outdatedModules = []; +/******/ results.forEach(function (result) { +/******/ if (result.apply) { +/******/ var modules = result.apply(reportError); +/******/ if (modules) { +/******/ for (var i = 0; i < modules.length; i++) { +/******/ outdatedModules.push(modules[i]); +/******/ } +/******/ } +/******/ } +/******/ }); +/******/ +/******/ return Promise.all([disposePromise, applyPromise]).then(function () { +/******/ // handle errors in accept handlers and self accepted module load +/******/ if (error) { +/******/ return setStatus("fail").then(function () { +/******/ throw error; +/******/ }); +/******/ } +/******/ +/******/ if (queuedInvalidatedModules) { +/******/ return internalApply(options).then(function (list) { +/******/ outdatedModules.forEach(function (moduleId) { +/******/ if (list.indexOf(moduleId) < 0) list.push(moduleId); +/******/ }); +/******/ return list; +/******/ }); +/******/ } +/******/ +/******/ return setStatus("idle").then(function () { +/******/ return outdatedModules; +/******/ }); +/******/ }); +/******/ } +/******/ +/******/ function applyInvalidatedModules() { +/******/ if (queuedInvalidatedModules) { +/******/ if (!currentUpdateApplyHandlers) currentUpdateApplyHandlers = []; +/******/ Object.keys(__webpack_require__.hmrI).forEach(function (key) { +/******/ queuedInvalidatedModules.forEach(function (moduleId) { +/******/ __webpack_require__.hmrI[key]( +/******/ moduleId, +/******/ currentUpdateApplyHandlers +/******/ ); +/******/ }); +/******/ }); +/******/ queuedInvalidatedModules = undefined; +/******/ return true; +/******/ } +/******/ } +/******/ }(); +/******/ +/******/ /* webpack/runtime/publicPath */ +/******/ !function() { +/******/ __webpack_require__.p = "/_next/"; +/******/ }(); +/******/ +/******/ /* webpack/runtime/react refresh */ +/******/ !function() { +/******/ if (__webpack_require__.i) { +/******/ __webpack_require__.i.push(function(options) { +/******/ var originalFactory = options.factory; +/******/ options.factory = function(moduleObject, moduleExports, webpackRequire) { +/******/ var hasRefresh = typeof self !== "undefined" && !!self.$RefreshInterceptModuleExecution$; +/******/ var cleanup = hasRefresh ? self.$RefreshInterceptModuleExecution$(moduleObject.id) : function() {}; +/******/ try { +/******/ originalFactory.call(this, moduleObject, moduleExports, webpackRequire); +/******/ } finally { +/******/ cleanup(); +/******/ } +/******/ } +/******/ }) +/******/ } +/******/ }(); +/******/ +/******/ /* webpack/runtime/compat */ +/******/ +/******/ +/******/ // noop fns to prevent runtime errors during initialization +/******/ if (typeof self !== "undefined") { +/******/ self.$RefreshReg$ = function () {}; +/******/ self.$RefreshSig$ = function () { +/******/ return function (type) { +/******/ return type; +/******/ }; +/******/ }; +/******/ } +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ !function() { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = __webpack_require__.hmrS_jsonp = __webpack_require__.hmrS_jsonp || { +/******/ "webpack": 0 +/******/ }; +/******/ +/******/ __webpack_require__.f.j = function(chunkId, promises) { +/******/ // JSONP chunk loading for javascript +/******/ var installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined; +/******/ if(installedChunkData !== 0) { // 0 means "already installed". +/******/ +/******/ // a Promise means "currently loading". +/******/ if(installedChunkData) { +/******/ promises.push(installedChunkData[2]); +/******/ } else { +/******/ if("webpack" != chunkId) { +/******/ // setup Promise in chunk cache +/******/ var promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; }); +/******/ promises.push(installedChunkData[2] = promise); +/******/ +/******/ // start chunk loading +/******/ var url = __webpack_require__.p + __webpack_require__.u(chunkId); +/******/ // create error before stack unwound to get useful stacktrace later +/******/ var error = new Error(); +/******/ var loadingEnded = function(event) { +/******/ if(__webpack_require__.o(installedChunks, chunkId)) { +/******/ installedChunkData = installedChunks[chunkId]; +/******/ if(installedChunkData !== 0) installedChunks[chunkId] = undefined; +/******/ if(installedChunkData) { +/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); +/******/ var realSrc = event && event.target && event.target.src; +/******/ error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')'; +/******/ error.name = 'ChunkLoadError'; +/******/ error.type = errorType; +/******/ error.request = realSrc; +/******/ installedChunkData[1](error); +/******/ } +/******/ } +/******/ }; +/******/ __webpack_require__.l(url, loadingEnded, "chunk-" + chunkId, chunkId); +/******/ } else installedChunks[chunkId] = 0; +/******/ } +/******/ } +/******/ }; +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ var currentUpdatedModulesList; +/******/ var waitingUpdateResolves = {}; +/******/ function loadUpdateChunk(chunkId) { +/******/ return new Promise(function(resolve, reject) { +/******/ waitingUpdateResolves[chunkId] = resolve; +/******/ // start update chunk loading +/******/ var url = __webpack_require__.p + __webpack_require__.hu(chunkId); +/******/ // create error before stack unwound to get useful stacktrace later +/******/ var error = new Error(); +/******/ var loadingEnded = function(event) { +/******/ if(waitingUpdateResolves[chunkId]) { +/******/ waitingUpdateResolves[chunkId] = undefined +/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); +/******/ var realSrc = event && event.target && event.target.src; +/******/ error.message = 'Loading hot update chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')'; +/******/ error.name = 'ChunkLoadError'; +/******/ error.type = errorType; +/******/ error.request = realSrc; +/******/ reject(error); +/******/ } +/******/ }; +/******/ __webpack_require__.l(url, loadingEnded); +/******/ }); +/******/ } +/******/ +/******/ self["webpackHotUpdate_N_E"] = function(chunkId, moreModules, runtime) { +/******/ for(var moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ currentUpdate[moduleId] = moreModules[moduleId]; +/******/ if(currentUpdatedModulesList) currentUpdatedModulesList.push(moduleId); +/******/ } +/******/ } +/******/ if(runtime) currentUpdateRuntime.push(runtime); +/******/ if(waitingUpdateResolves[chunkId]) { +/******/ waitingUpdateResolves[chunkId](); +/******/ waitingUpdateResolves[chunkId] = undefined; +/******/ } +/******/ }; +/******/ +/******/ var currentUpdateChunks; +/******/ var currentUpdate; +/******/ var currentUpdateRemovedChunks; +/******/ var currentUpdateRuntime; +/******/ function applyHandler(options) { +/******/ if (__webpack_require__.f) delete __webpack_require__.f.jsonpHmr; +/******/ currentUpdateChunks = undefined; +/******/ function getAffectedModuleEffects(updateModuleId) { +/******/ var outdatedModules = [updateModuleId]; +/******/ var outdatedDependencies = {}; +/******/ +/******/ var queue = outdatedModules.map(function (id) { +/******/ return { +/******/ chain: [id], +/******/ id: id +/******/ }; +/******/ }); +/******/ while (queue.length > 0) { +/******/ var queueItem = queue.pop(); +/******/ var moduleId = queueItem.id; +/******/ var chain = queueItem.chain; +/******/ var module = __webpack_require__.c[moduleId]; +/******/ if ( +/******/ !module || +/******/ (module.hot._selfAccepted && !module.hot._selfInvalidated) +/******/ ) +/******/ continue; +/******/ if (module.hot._selfDeclined) { +/******/ return { +/******/ type: "self-declined", +/******/ chain: chain, +/******/ moduleId: moduleId +/******/ }; +/******/ } +/******/ if (module.hot._main) { +/******/ return { +/******/ type: "unaccepted", +/******/ chain: chain, +/******/ moduleId: moduleId +/******/ }; +/******/ } +/******/ for (var i = 0; i < module.parents.length; i++) { +/******/ var parentId = module.parents[i]; +/******/ var parent = __webpack_require__.c[parentId]; +/******/ if (!parent) continue; +/******/ if (parent.hot._declinedDependencies[moduleId]) { +/******/ return { +/******/ type: "declined", +/******/ chain: chain.concat([parentId]), +/******/ moduleId: moduleId, +/******/ parentId: parentId +/******/ }; +/******/ } +/******/ if (outdatedModules.indexOf(parentId) !== -1) continue; +/******/ if (parent.hot._acceptedDependencies[moduleId]) { +/******/ if (!outdatedDependencies[parentId]) +/******/ outdatedDependencies[parentId] = []; +/******/ addAllToSet(outdatedDependencies[parentId], [moduleId]); +/******/ continue; +/******/ } +/******/ delete outdatedDependencies[parentId]; +/******/ outdatedModules.push(parentId); +/******/ queue.push({ +/******/ chain: chain.concat([parentId]), +/******/ id: parentId +/******/ }); +/******/ } +/******/ } +/******/ +/******/ return { +/******/ type: "accepted", +/******/ moduleId: updateModuleId, +/******/ outdatedModules: outdatedModules, +/******/ outdatedDependencies: outdatedDependencies +/******/ }; +/******/ } +/******/ +/******/ function addAllToSet(a, b) { +/******/ for (var i = 0; i < b.length; i++) { +/******/ var item = b[i]; +/******/ if (a.indexOf(item) === -1) a.push(item); +/******/ } +/******/ } +/******/ +/******/ // at begin all updates modules are outdated +/******/ // the "outdated" status can propagate to parents if they don't accept the children +/******/ var outdatedDependencies = {}; +/******/ var outdatedModules = []; +/******/ var appliedUpdate = {}; +/******/ +/******/ var warnUnexpectedRequire = function warnUnexpectedRequire(module) { +/******/ console.warn( +/******/ "[HMR] unexpected require(" + module.id + ") to disposed module" +/******/ ); +/******/ }; +/******/ +/******/ for (var moduleId in currentUpdate) { +/******/ if (__webpack_require__.o(currentUpdate, moduleId)) { +/******/ var newModuleFactory = currentUpdate[moduleId]; +/******/ /** @type {TODO} */ +/******/ var result; +/******/ if (newModuleFactory) { +/******/ result = getAffectedModuleEffects(moduleId); +/******/ } else { +/******/ result = { +/******/ type: "disposed", +/******/ moduleId: moduleId +/******/ }; +/******/ } +/******/ /** @type {Error|false} */ +/******/ var abortError = false; +/******/ var doApply = false; +/******/ var doDispose = false; +/******/ var chainInfo = ""; +/******/ if (result.chain) { +/******/ chainInfo = "\nUpdate propagation: " + result.chain.join(" -> "); +/******/ } +/******/ switch (result.type) { +/******/ case "self-declined": +/******/ if (options.onDeclined) options.onDeclined(result); +/******/ if (!options.ignoreDeclined) +/******/ abortError = new Error( +/******/ "Aborted because of self decline: " + +/******/ result.moduleId + +/******/ chainInfo +/******/ ); +/******/ break; +/******/ case "declined": +/******/ if (options.onDeclined) options.onDeclined(result); +/******/ if (!options.ignoreDeclined) +/******/ abortError = new Error( +/******/ "Aborted because of declined dependency: " + +/******/ result.moduleId + +/******/ " in " + +/******/ result.parentId + +/******/ chainInfo +/******/ ); +/******/ break; +/******/ case "unaccepted": +/******/ if (options.onUnaccepted) options.onUnaccepted(result); +/******/ if (!options.ignoreUnaccepted) +/******/ abortError = new Error( +/******/ "Aborted because " + moduleId + " is not accepted" + chainInfo +/******/ ); +/******/ break; +/******/ case "accepted": +/******/ if (options.onAccepted) options.onAccepted(result); +/******/ doApply = true; +/******/ break; +/******/ case "disposed": +/******/ if (options.onDisposed) options.onDisposed(result); +/******/ doDispose = true; +/******/ break; +/******/ default: +/******/ throw new Error("Unexception type " + result.type); +/******/ } +/******/ if (abortError) { +/******/ return { +/******/ error: abortError +/******/ }; +/******/ } +/******/ if (doApply) { +/******/ appliedUpdate[moduleId] = newModuleFactory; +/******/ addAllToSet(outdatedModules, result.outdatedModules); +/******/ for (moduleId in result.outdatedDependencies) { +/******/ if (__webpack_require__.o(result.outdatedDependencies, moduleId)) { +/******/ if (!outdatedDependencies[moduleId]) +/******/ outdatedDependencies[moduleId] = []; +/******/ addAllToSet( +/******/ outdatedDependencies[moduleId], +/******/ result.outdatedDependencies[moduleId] +/******/ ); +/******/ } +/******/ } +/******/ } +/******/ if (doDispose) { +/******/ addAllToSet(outdatedModules, [result.moduleId]); +/******/ appliedUpdate[moduleId] = warnUnexpectedRequire; +/******/ } +/******/ } +/******/ } +/******/ currentUpdate = undefined; +/******/ +/******/ // Store self accepted outdated modules to require them later by the module system +/******/ var outdatedSelfAcceptedModules = []; +/******/ for (var j = 0; j < outdatedModules.length; j++) { +/******/ var outdatedModuleId = outdatedModules[j]; +/******/ var module = __webpack_require__.c[outdatedModuleId]; +/******/ if ( +/******/ module && +/******/ (module.hot._selfAccepted || module.hot._main) && +/******/ // removed self-accepted modules should not be required +/******/ appliedUpdate[outdatedModuleId] !== warnUnexpectedRequire && +/******/ // when called invalidate self-accepting is not possible +/******/ !module.hot._selfInvalidated +/******/ ) { +/******/ outdatedSelfAcceptedModules.push({ +/******/ module: outdatedModuleId, +/******/ require: module.hot._requireSelf, +/******/ errorHandler: module.hot._selfAccepted +/******/ }); +/******/ } +/******/ } +/******/ +/******/ var moduleOutdatedDependencies; +/******/ +/******/ return { +/******/ dispose: function () { +/******/ currentUpdateRemovedChunks.forEach(function (chunkId) { +/******/ delete installedChunks[chunkId]; +/******/ }); +/******/ currentUpdateRemovedChunks = undefined; +/******/ +/******/ var idx; +/******/ var queue = outdatedModules.slice(); +/******/ while (queue.length > 0) { +/******/ var moduleId = queue.pop(); +/******/ var module = __webpack_require__.c[moduleId]; +/******/ if (!module) continue; +/******/ +/******/ var data = {}; +/******/ +/******/ // Call dispose handlers +/******/ var disposeHandlers = module.hot._disposeHandlers; +/******/ for (j = 0; j < disposeHandlers.length; j++) { +/******/ disposeHandlers[j].call(null, data); +/******/ } +/******/ __webpack_require__.hmrD[moduleId] = data; +/******/ +/******/ // disable module (this disables requires from this module) +/******/ module.hot.active = false; +/******/ +/******/ // remove module from cache +/******/ delete __webpack_require__.c[moduleId]; +/******/ +/******/ // when disposing there is no need to call dispose handler +/******/ delete outdatedDependencies[moduleId]; +/******/ +/******/ // remove "parents" references from all children +/******/ for (j = 0; j < module.children.length; j++) { +/******/ var child = __webpack_require__.c[module.children[j]]; +/******/ if (!child) continue; +/******/ idx = child.parents.indexOf(moduleId); +/******/ if (idx >= 0) { +/******/ child.parents.splice(idx, 1); +/******/ } +/******/ } +/******/ } +/******/ +/******/ // remove outdated dependency from module children +/******/ var dependency; +/******/ for (var outdatedModuleId in outdatedDependencies) { +/******/ if (__webpack_require__.o(outdatedDependencies, outdatedModuleId)) { +/******/ module = __webpack_require__.c[outdatedModuleId]; +/******/ if (module) { +/******/ moduleOutdatedDependencies = +/******/ outdatedDependencies[outdatedModuleId]; +/******/ for (j = 0; j < moduleOutdatedDependencies.length; j++) { +/******/ dependency = moduleOutdatedDependencies[j]; +/******/ idx = module.children.indexOf(dependency); +/******/ if (idx >= 0) module.children.splice(idx, 1); +/******/ } +/******/ } +/******/ } +/******/ } +/******/ }, +/******/ apply: function (reportError) { +/******/ // insert new code +/******/ for (var updateModuleId in appliedUpdate) { +/******/ if (__webpack_require__.o(appliedUpdate, updateModuleId)) { +/******/ __webpack_require__.m[updateModuleId] = appliedUpdate[updateModuleId]; +/******/ } +/******/ } +/******/ +/******/ // run new runtime modules +/******/ for (var i = 0; i < currentUpdateRuntime.length; i++) { +/******/ currentUpdateRuntime[i](__webpack_require__); +/******/ } +/******/ +/******/ // call accept handlers +/******/ for (var outdatedModuleId in outdatedDependencies) { +/******/ if (__webpack_require__.o(outdatedDependencies, outdatedModuleId)) { +/******/ var module = __webpack_require__.c[outdatedModuleId]; +/******/ if (module) { +/******/ moduleOutdatedDependencies = +/******/ outdatedDependencies[outdatedModuleId]; +/******/ var callbacks = []; +/******/ var errorHandlers = []; +/******/ var dependenciesForCallbacks = []; +/******/ for (var j = 0; j < moduleOutdatedDependencies.length; j++) { +/******/ var dependency = moduleOutdatedDependencies[j]; +/******/ var acceptCallback = +/******/ module.hot._acceptedDependencies[dependency]; +/******/ var errorHandler = +/******/ module.hot._acceptedErrorHandlers[dependency]; +/******/ if (acceptCallback) { +/******/ if (callbacks.indexOf(acceptCallback) !== -1) continue; +/******/ callbacks.push(acceptCallback); +/******/ errorHandlers.push(errorHandler); +/******/ dependenciesForCallbacks.push(dependency); +/******/ } +/******/ } +/******/ for (var k = 0; k < callbacks.length; k++) { +/******/ try { +/******/ callbacks[k].call(null, moduleOutdatedDependencies); +/******/ } catch (err) { +/******/ if (typeof errorHandlers[k] === "function") { +/******/ try { +/******/ errorHandlers[k](err, { +/******/ moduleId: outdatedModuleId, +/******/ dependencyId: dependenciesForCallbacks[k] +/******/ }); +/******/ } catch (err2) { +/******/ if (options.onErrored) { +/******/ options.onErrored({ +/******/ type: "accept-error-handler-errored", +/******/ moduleId: outdatedModuleId, +/******/ dependencyId: dependenciesForCallbacks[k], +/******/ error: err2, +/******/ originalError: err +/******/ }); +/******/ } +/******/ if (!options.ignoreErrored) { +/******/ reportError(err2); +/******/ reportError(err); +/******/ } +/******/ } +/******/ } else { +/******/ if (options.onErrored) { +/******/ options.onErrored({ +/******/ type: "accept-errored", +/******/ moduleId: outdatedModuleId, +/******/ dependencyId: dependenciesForCallbacks[k], +/******/ error: err +/******/ }); +/******/ } +/******/ if (!options.ignoreErrored) { +/******/ reportError(err); +/******/ } +/******/ } +/******/ } +/******/ } +/******/ } +/******/ } +/******/ } +/******/ +/******/ // Load self accepted modules +/******/ for (var o = 0; o < outdatedSelfAcceptedModules.length; o++) { +/******/ var item = outdatedSelfAcceptedModules[o]; +/******/ var moduleId = item.module; +/******/ try { +/******/ item.require(moduleId); +/******/ } catch (err) { +/******/ if (typeof item.errorHandler === "function") { +/******/ try { +/******/ item.errorHandler(err, { +/******/ moduleId: moduleId, +/******/ module: __webpack_require__.c[moduleId] +/******/ }); +/******/ } catch (err2) { +/******/ if (options.onErrored) { +/******/ options.onErrored({ +/******/ type: "self-accept-error-handler-errored", +/******/ moduleId: moduleId, +/******/ error: err2, +/******/ originalError: err +/******/ }); +/******/ } +/******/ if (!options.ignoreErrored) { +/******/ reportError(err2); +/******/ reportError(err); +/******/ } +/******/ } +/******/ } else { +/******/ if (options.onErrored) { +/******/ options.onErrored({ +/******/ type: "self-accept-errored", +/******/ moduleId: moduleId, +/******/ error: err +/******/ }); +/******/ } +/******/ if (!options.ignoreErrored) { +/******/ reportError(err); +/******/ } +/******/ } +/******/ } +/******/ } +/******/ +/******/ return outdatedModules; +/******/ } +/******/ }; +/******/ } +/******/ __webpack_require__.hmrI.jsonp = function (moduleId, applyHandlers) { +/******/ if (!currentUpdate) { +/******/ currentUpdate = {}; +/******/ currentUpdateRuntime = []; +/******/ currentUpdateRemovedChunks = []; +/******/ applyHandlers.push(applyHandler); +/******/ } +/******/ if (!__webpack_require__.o(currentUpdate, moduleId)) { +/******/ currentUpdate[moduleId] = __webpack_require__.m[moduleId]; +/******/ } +/******/ }; +/******/ __webpack_require__.hmrC.jsonp = function ( +/******/ chunkIds, +/******/ removedChunks, +/******/ removedModules, +/******/ promises, +/******/ applyHandlers, +/******/ updatedModulesList +/******/ ) { +/******/ applyHandlers.push(applyHandler); +/******/ currentUpdateChunks = {}; +/******/ currentUpdateRemovedChunks = removedChunks; +/******/ currentUpdate = removedModules.reduce(function (obj, key) { +/******/ obj[key] = false; +/******/ return obj; +/******/ }, {}); +/******/ currentUpdateRuntime = []; +/******/ chunkIds.forEach(function (chunkId) { +/******/ if ( +/******/ __webpack_require__.o(installedChunks, chunkId) && +/******/ installedChunks[chunkId] !== undefined +/******/ ) { +/******/ promises.push(loadUpdateChunk(chunkId, updatedModulesList)); +/******/ currentUpdateChunks[chunkId] = true; +/******/ } +/******/ }); +/******/ if (__webpack_require__.f) { +/******/ __webpack_require__.f.jsonpHmr = function (chunkId, promises) { +/******/ if ( +/******/ currentUpdateChunks && +/******/ !__webpack_require__.o(currentUpdateChunks, chunkId) && +/******/ __webpack_require__.o(installedChunks, chunkId) && +/******/ installedChunks[chunkId] !== undefined +/******/ ) { +/******/ promises.push(loadUpdateChunk(chunkId)); +/******/ currentUpdateChunks[chunkId] = true; +/******/ } +/******/ }; +/******/ } +/******/ }; +/******/ +/******/ __webpack_require__.hmrM = function() { +/******/ if (typeof fetch === "undefined") throw new Error("No browser support: need fetch API"); +/******/ return fetch(__webpack_require__.p + __webpack_require__.hmrF()).then(function(response) { +/******/ if(response.status === 404) return; // no update available +/******/ if(!response.ok) throw new Error("Failed to fetch update manifest " + response.statusText); +/******/ return response.json(); +/******/ }); +/******/ }; +/******/ +/******/ __webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; }; +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = function(parentChunkLoadingFunction, data) { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var runtime = data[2]; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ if(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) { +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ } +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkIds[i]] = 0; +/******/ } +/******/ return __webpack_require__.O(result); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ }(); +/******/ +/************************************************************************/ +/******/ +/******/ // module cache are used so entry inlining is disabled +/******/ +/******/ })() +; \ No newline at end of file diff --git a/.next/static/development/_buildManifest.js b/.next/static/development/_buildManifest.js new file mode 100644 index 0000000..0088203 --- /dev/null +++ b/.next/static/development/_buildManifest.js @@ -0,0 +1 @@ +self.__BUILD_MANIFEST = {__rewrites:{beforeFiles:[],afterFiles:[],fallback:[]},"/":["static\u002Fchunks\u002Fpages\u002Findex.js"],"/_error":["static\u002Fchunks\u002Fpages\u002F_error.js"],"/contact/contact-light":["static\u002Fchunks\u002Fpages\u002Fcontact\u002Fcontact-light.js"],sortedPages:["\u002F","\u002F_app","\u002F_error","\u002Fcontact\u002Fcontact-light"]};self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB() \ No newline at end of file diff --git a/.next/static/development/_middlewareManifest.js b/.next/static/development/_middlewareManifest.js new file mode 100644 index 0000000..b8ad632 --- /dev/null +++ b/.next/static/development/_middlewareManifest.js @@ -0,0 +1 @@ +self.__MIDDLEWARE_MANIFEST=new Set;self.__MIDDLEWARE_MANIFEST_CB&&self.__MIDDLEWARE_MANIFEST_CB() \ No newline at end of file diff --git a/.next/static/development/_ssgManifest.js b/.next/static/development/_ssgManifest.js new file mode 100644 index 0000000..2260768 --- /dev/null +++ b/.next/static/development/_ssgManifest.js @@ -0,0 +1 @@ +self.__SSG_MANIFEST=new Set;self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB() \ No newline at end of file diff --git a/.next/static/media/ajax-loader.0b80f665.gif b/.next/static/media/ajax-loader.0b80f665.gif new file mode 100644 index 0000000..e0e6e97 Binary files /dev/null and b/.next/static/media/ajax-loader.0b80f665.gif differ diff --git a/.next/static/media/slick.25572f22.eot b/.next/static/media/slick.25572f22.eot new file mode 100644 index 0000000..2cbab9c Binary files /dev/null and b/.next/static/media/slick.25572f22.eot differ diff --git a/.next/static/media/slick.653a4cbb.woff b/.next/static/media/slick.653a4cbb.woff new file mode 100644 index 0000000..8ee9972 Binary files /dev/null and b/.next/static/media/slick.653a4cbb.woff differ diff --git a/.next/static/media/slick.6aa1ee46.ttf b/.next/static/media/slick.6aa1ee46.ttf new file mode 100644 index 0000000..9d03461 Binary files /dev/null and b/.next/static/media/slick.6aa1ee46.ttf differ diff --git a/.next/static/media/slick.f895cfdf.svg b/.next/static/media/slick.f895cfdf.svg new file mode 100644 index 0000000..b36a66a --- /dev/null +++ b/.next/static/media/slick.f895cfdf.svg @@ -0,0 +1,14 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg xmlns="http://www.w3.org/2000/svg"> +<metadata>Generated by Fontastic.me</metadata> +<defs> +<font id="slick" horiz-adv-x="512"> +<font-face font-family="slick" units-per-em="512" ascent="480" descent="-32"/> +<missing-glyph horiz-adv-x="512" /> + +<glyph unicode="→" d="M241 113l130 130c4 4 6 8 6 13 0 5-2 9-6 13l-130 130c-3 3-7 5-12 5-5 0-10-2-13-5l-29-30c-4-3-6-7-6-12 0-5 2-10 6-13l87-88-87-88c-4-3-6-8-6-13 0-5 2-9 6-12l29-30c3-3 8-5 13-5 5 0 9 2 12 5z m234 143c0-40-9-77-29-110-20-34-46-60-80-80-33-20-70-29-110-29-40 0-77 9-110 29-34 20-60 46-80 80-20 33-29 70-29 110 0 40 9 77 29 110 20 34 46 60 80 80 33 20 70 29 110 29 40 0 77-9 110-29 34-20 60-46 80-80 20-33 29-70 29-110z"/> +<glyph unicode="←" d="M296 113l29 30c4 3 6 7 6 12 0 5-2 10-6 13l-87 88 87 88c4 3 6 8 6 13 0 5-2 9-6 12l-29 30c-3 3-8 5-13 5-5 0-9-2-12-5l-130-130c-4-4-6-8-6-13 0-5 2-9 6-13l130-130c3-3 7-5 12-5 5 0 10 2 13 5z m179 143c0-40-9-77-29-110-20-34-46-60-80-80-33-20-70-29-110-29-40 0-77 9-110 29-34 20-60 46-80 80-20 33-29 70-29 110 0 40 9 77 29 110 20 34 46 60 80 80 33 20 70 29 110 29 40 0 77-9 110-29 34-20 60-46 80-80 20-33 29-70 29-110z"/> +<glyph unicode="•" d="M475 256c0-40-9-77-29-110-20-34-46-60-80-80-33-20-70-29-110-29-40 0-77 9-110 29-34 20-60 46-80 80-20 33-29 70-29 110 0 40 9 77 29 110 20 34 46 60 80 80 33 20 70 29 110 29 40 0 77-9 110-29 34-20 60-46 80-80 20-33 29-70 29-110z"/> +<glyph unicode="a" d="M475 439l0-128c0-5-1-9-5-13-4-4-8-5-13-5l-128 0c-8 0-13 3-17 11-3 7-2 14 4 20l40 39c-28 26-62 39-100 39-20 0-39-4-57-11-18-8-33-18-46-32-14-13-24-28-32-46-7-18-11-37-11-57 0-20 4-39 11-57 8-18 18-33 32-46 13-14 28-24 46-32 18-7 37-11 57-11 23 0 44 5 64 15 20 9 38 23 51 42 2 1 4 3 7 3 3 0 5-1 7-3l39-39c2-2 3-3 3-6 0-2-1-4-2-6-21-25-46-45-76-59-29-14-60-20-93-20-30 0-58 5-85 17-27 12-51 27-70 47-20 19-35 43-47 70-12 27-17 55-17 85 0 30 5 58 17 85 12 27 27 51 47 70 19 20 43 35 70 47 27 12 55 17 85 17 28 0 55-5 81-15 26-11 50-26 70-45l37 37c6 6 12 7 20 4 8-4 11-9 11-17z"/> +</font></defs></svg> diff --git a/.next/static/webpack/034483604fba37f4.webpack.hot-update.json b/.next/static/webpack/034483604fba37f4.webpack.hot-update.json new file mode 100644 index 0000000..af32317 --- /dev/null +++ b/.next/static/webpack/034483604fba37f4.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["pages/about","pages/index","webpack"],"r":[],"m":[]} \ No newline at end of file diff --git a/.next/static/webpack/097f8e60072fae7a.webpack.hot-update.json b/.next/static/webpack/097f8e60072fae7a.webpack.hot-update.json new file mode 100644 index 0000000..473985b --- /dev/null +++ b/.next/static/webpack/097f8e60072fae7a.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["webpack"],"r":["pages/index"],"m":["./node_modules/dom7/dom7.esm.js","./node_modules/fast-deep-equal/react.js","./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/swiper/modules/effect-fade/effect-fade.min.css","./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/swiper/modules/navigation/navigation.min.css","./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/swiper/modules/pagination/pagination.min.css","./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/swiper/swiper.min.css","./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2F&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cindex.jsx!","./node_modules/react-tsparticles/cjs/particles.js","./node_modules/react-tsparticles/index.js","./node_modules/ssr-window/ssr-window.esm.js","./node_modules/styled-jsx/dist/style.js","./node_modules/styled-jsx/style.js","./node_modules/swiper/core/breakpoints/getBreakpoint.js","./node_modules/swiper/core/breakpoints/index.js","./node_modules/swiper/core/breakpoints/setBreakpoint.js","./node_modules/swiper/core/check-overflow/index.js","./node_modules/swiper/core/classes/addClasses.js","./node_modules/swiper/core/classes/index.js","./node_modules/swiper/core/classes/removeClasses.js","./node_modules/swiper/core/core.js","./node_modules/swiper/core/defaults.js","./node_modules/swiper/core/events-emitter.js","./node_modules/swiper/core/events/index.js","./node_modules/swiper/core/events/onClick.js","./node_modules/swiper/core/events/onResize.js","./node_modules/swiper/core/events/onScroll.js","./node_modules/swiper/core/events/onTouchEnd.js","./node_modules/swiper/core/events/onTouchMove.js","./node_modules/swiper/core/events/onTouchStart.js","./node_modules/swiper/core/grab-cursor/index.js","./node_modules/swiper/core/grab-cursor/setGrabCursor.js","./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","./node_modules/swiper/core/images/index.js","./node_modules/swiper/core/images/loadImage.js","./node_modules/swiper/core/images/preloadImages.js","./node_modules/swiper/core/loop/index.js","./node_modules/swiper/core/loop/loopCreate.js","./node_modules/swiper/core/loop/loopDestroy.js","./node_modules/swiper/core/loop/loopFix.js","./node_modules/swiper/core/moduleExtendParams.js","./node_modules/swiper/core/modules/observer/observer.js","./node_modules/swiper/core/modules/resize/resize.js","./node_modules/swiper/core/slide/index.js","./node_modules/swiper/core/slide/slideNext.js","./node_modules/swiper/core/slide/slidePrev.js","./node_modules/swiper/core/slide/slideReset.js","./node_modules/swiper/core/slide/slideTo.js","./node_modules/swiper/core/slide/slideToClickedSlide.js","./node_modules/swiper/core/slide/slideToClosest.js","./node_modules/swiper/core/slide/slideToLoop.js","./node_modules/swiper/core/transition/index.js","./node_modules/swiper/core/transition/setTransition.js","./node_modules/swiper/core/transition/transitionEmit.js","./node_modules/swiper/core/transition/transitionEnd.js","./node_modules/swiper/core/transition/transitionStart.js","./node_modules/swiper/core/translate/getTranslate.js","./node_modules/swiper/core/translate/index.js","./node_modules/swiper/core/translate/maxTranslate.js","./node_modules/swiper/core/translate/minTranslate.js","./node_modules/swiper/core/translate/setTranslate.js","./node_modules/swiper/core/translate/translateTo.js","./node_modules/swiper/core/update/index.js","./node_modules/swiper/core/update/updateActiveIndex.js","./node_modules/swiper/core/update/updateAutoHeight.js","./node_modules/swiper/core/update/updateClickedSlide.js","./node_modules/swiper/core/update/updateProgress.js","./node_modules/swiper/core/update/updateSize.js","./node_modules/swiper/core/update/updateSlides.js","./node_modules/swiper/core/update/updateSlidesClasses.js","./node_modules/swiper/core/update/updateSlidesOffset.js","./node_modules/swiper/core/update/updateSlidesProgress.js","./node_modules/swiper/modules/a11y/a11y.js","./node_modules/swiper/modules/autoplay/autoplay.js","./node_modules/swiper/modules/controller/controller.js","./node_modules/swiper/modules/effect-cards/effect-cards.js","./node_modules/swiper/modules/effect-coverflow/effect-coverflow.js","./node_modules/swiper/modules/effect-creative/effect-creative.js","./node_modules/swiper/modules/effect-cube/effect-cube.js","./node_modules/swiper/modules/effect-fade/effect-fade.js","./node_modules/swiper/modules/effect-fade/effect-fade.min.css","./node_modules/swiper/modules/effect-flip/effect-flip.js","./node_modules/swiper/modules/free-mode/free-mode.js","./node_modules/swiper/modules/grid/grid.js","./node_modules/swiper/modules/hash-navigation/hash-navigation.js","./node_modules/swiper/modules/history/history.js","./node_modules/swiper/modules/keyboard/keyboard.js","./node_modules/swiper/modules/lazy/lazy.js","./node_modules/swiper/modules/manipulation/manipulation.js","./node_modules/swiper/modules/manipulation/methods/addSlide.js","./node_modules/swiper/modules/manipulation/methods/appendSlide.js","./node_modules/swiper/modules/manipulation/methods/prependSlide.js","./node_modules/swiper/modules/manipulation/methods/removeAllSlides.js","./node_modules/swiper/modules/manipulation/methods/removeSlide.js","./node_modules/swiper/modules/mousewheel/mousewheel.js","./node_modules/swiper/modules/navigation/navigation.js","./node_modules/swiper/modules/navigation/navigation.min.css","./node_modules/swiper/modules/pagination/pagination.js","./node_modules/swiper/modules/pagination/pagination.min.css","./node_modules/swiper/modules/parallax/parallax.js","./node_modules/swiper/modules/scrollbar/scrollbar.js","./node_modules/swiper/modules/thumbs/thumbs.js","./node_modules/swiper/modules/virtual/virtual.js","./node_modules/swiper/modules/zoom/zoom.js","./node_modules/swiper/react/get-changed-params.js","./node_modules/swiper/react/get-children.js","./node_modules/swiper/react/get-params.js","./node_modules/swiper/react/init-swiper.js","./node_modules/swiper/react/loop.js","./node_modules/swiper/react/params-list.js","./node_modules/swiper/react/swiper-react.js","./node_modules/swiper/react/swiper-slide.js","./node_modules/swiper/react/swiper.js","./node_modules/swiper/react/update-swiper.js","./node_modules/swiper/react/use-isomorphic-layout-effect.js","./node_modules/swiper/react/utils.js","./node_modules/swiper/react/virtual.js","./node_modules/swiper/shared/classes-to-selector.js","./node_modules/swiper/shared/create-element-if-not-defined.js","./node_modules/swiper/shared/create-shadow.js","./node_modules/swiper/shared/dom.js","./node_modules/swiper/shared/effect-init.js","./node_modules/swiper/shared/effect-target.js","./node_modules/swiper/shared/effect-virtual-transition-end.js","./node_modules/swiper/shared/get-browser.js","./node_modules/swiper/shared/get-device.js","./node_modules/swiper/shared/get-support.js","./node_modules/swiper/shared/utils.js","./node_modules/swiper/swiper.esm.js","./node_modules/swiper/swiper.min.css","./node_modules/tsparticles/Core/Canvas.js","./node_modules/tsparticles/Core/Container.js","./node_modules/tsparticles/Core/ExternalInteractorBase.js","./node_modules/tsparticles/Core/FrameManager.js","./node_modules/tsparticles/Core/InteractionManager.js","./node_modules/tsparticles/Core/Interfaces/Colors.js","./node_modules/tsparticles/Core/Interfaces/Gradients.js","./node_modules/tsparticles/Core/Interfaces/IAttract.js","./node_modules/tsparticles/Core/Interfaces/IBounds.js","./node_modules/tsparticles/Core/Interfaces/IBubble.js","./node_modules/tsparticles/Core/Interfaces/IBubbleParticleData.js","./node_modules/tsparticles/Core/Interfaces/ICircleBouncer.js","./node_modules/tsparticles/Core/Interfaces/IContainerInteractivity.js","./node_modules/tsparticles/Core/Interfaces/IContainerPlugin.js","./node_modules/tsparticles/Core/Interfaces/ICoordinates.js","./node_modules/tsparticles/Core/Interfaces/IDelta.js","./node_modules/tsparticles/Core/Interfaces/IDimension.js","./node_modules/tsparticles/Core/Interfaces/IDistance.js","./node_modules/tsparticles/Core/Interfaces/IExternalInteractor.js","./node_modules/tsparticles/Core/Interfaces/IInteractor.js","./node_modules/tsparticles/Core/Interfaces/IMouseData.js","./node_modules/tsparticles/Core/Interfaces/IMovePathGenerator.js","./node_modules/tsparticles/Core/Interfaces/IParticle.js","./node_modules/tsparticles/Core/Interfaces/IParticleGradientAnimation.js","./node_modules/tsparticles/Core/Interfaces/IParticleGradientColorAnimation.js","./node_modules/tsparticles/Core/Interfaces/IParticleHslAnimation.js","./node_modules/tsparticles/Core/Interfaces/IParticleLife.js","./node_modules/tsparticles/Core/Interfaces/IParticleLoops.js","./node_modules/tsparticles/Core/Interfaces/IParticleRetinaProps.js","./node_modules/tsparticles/Core/Interfaces/IParticleSpin.js","./node_modules/tsparticles/Core/Interfaces/IParticleUpdater.js","./node_modules/tsparticles/Core/Interfaces/IParticleValueAnimation.js","./node_modules/tsparticles/Core/Interfaces/IParticlesInteractor.js","./node_modules/tsparticles/Core/Interfaces/IPlugin.js","./node_modules/tsparticles/Core/Interfaces/IRangeValue.js","./node_modules/tsparticles/Core/Interfaces/IRectSideResult.js","./node_modules/tsparticles/Core/Interfaces/IRepulse.js","./node_modules/tsparticles/Core/Interfaces/IShapeDrawer.js","./node_modules/tsparticles/Core/Interfaces/IShapeValues.js","./node_modules/tsparticles/Core/Interfaces/index.js","./node_modules/tsparticles/Core/Loader.js","./node_modules/tsparticles/Core/Particle.js","./node_modules/tsparticles/Core/Particle/Mover.js","./node_modules/tsparticles/Core/Particle/Vector.js","./node_modules/tsparticles/Core/Particle/Vector3d.js","./node_modules/tsparticles/Core/Particles.js","./node_modules/tsparticles/Core/ParticlesInteractorBase.js","./node_modules/tsparticles/Core/Retina.js","./node_modules/tsparticles/Enums/AnimationStatus.js","./node_modules/tsparticles/Enums/Directions/MoveDirection.js","./node_modules/tsparticles/Enums/Directions/OutModeDirection.js","./node_modules/tsparticles/Enums/Directions/RotateDirection.js","./node_modules/tsparticles/Enums/Directions/TiltDirection.js","./node_modules/tsparticles/Enums/Directions/index.js","./node_modules/tsparticles/Enums/InteractivityDetect.js","./node_modules/tsparticles/Enums/Modes/ClickMode.js","./node_modules/tsparticles/Enums/Modes/CollisionMode.js","./node_modules/tsparticles/Enums/Modes/DestroyMode.js","./node_modules/tsparticles/Enums/Modes/DivMode.js","./node_modules/tsparticles/Enums/Modes/HoverMode.js","./node_modules/tsparticles/Enums/Modes/OutMode.js","./node_modules/tsparticles/Enums/Modes/ResponsiveMode.js","./node_modules/tsparticles/Enums/Modes/RollMode.js","./node_modules/tsparticles/Enums/Modes/SizeMode.js","./node_modules/tsparticles/Enums/Modes/ThemeMode.js","./node_modules/tsparticles/Enums/Modes/index.js","./node_modules/tsparticles/Enums/Types/AlterType.js","./node_modules/tsparticles/Enums/Types/DestroyType.js","./node_modules/tsparticles/Enums/Types/DivType.js","./node_modules/tsparticles/Enums/Types/EasingType.js","./node_modules/tsparticles/Enums/Types/GradientType.js","./node_modules/tsparticles/Enums/Types/InteractorType.js","./node_modules/tsparticles/Enums/Types/OrbitType.js","./node_modules/tsparticles/Enums/Types/ShapeType.js","./node_modules/tsparticles/Enums/Types/StartValueType.js","./node_modules/tsparticles/Enums/Types/index.js","./node_modules/tsparticles/Enums/index.js","./node_modules/tsparticles/Interactions/External/Attract/Attractor.js","./node_modules/tsparticles/Interactions/External/Attract/index.js","./node_modules/tsparticles/Interactions/External/Bounce/Bouncer.js","./node_modules/tsparticles/Interactions/External/Bounce/index.js","./node_modules/tsparticles/Interactions/External/Bubble/Bubbler.js","./node_modules/tsparticles/Interactions/External/Bubble/ProcessBubbleType.js","./node_modules/tsparticles/Interactions/External/Bubble/index.js","./node_modules/tsparticles/Interactions/External/Connect/Connector.js","./node_modules/tsparticles/Interactions/External/Connect/index.js","./node_modules/tsparticles/Interactions/External/Grab/Grabber.js","./node_modules/tsparticles/Interactions/External/Grab/index.js","./node_modules/tsparticles/Interactions/External/Repulse/Repulser.js","./node_modules/tsparticles/Interactions/External/Repulse/index.js","./node_modules/tsparticles/Interactions/External/Trail/TrailMaker.js","./node_modules/tsparticles/Interactions/External/Trail/index.js","./node_modules/tsparticles/Interactions/Particles/Attract/Attractor.js","./node_modules/tsparticles/Interactions/Particles/Attract/index.js","./node_modules/tsparticles/Interactions/Particles/Collisions/Collider.js","./node_modules/tsparticles/Interactions/Particles/Collisions/index.js","./node_modules/tsparticles/Interactions/Particles/Links/LinkInstance.js","./node_modules/tsparticles/Interactions/Particles/Links/Linker.js","./node_modules/tsparticles/Interactions/Particles/Links/index.js","./node_modules/tsparticles/Interactions/Particles/Links/plugin.js","./node_modules/tsparticles/Options/Classes/AnimatableColor.js","./node_modules/tsparticles/Options/Classes/AnimatableGradient.js","./node_modules/tsparticles/Options/Classes/AnimationOptions.js","./node_modules/tsparticles/Options/Classes/Background/Background.js","./node_modules/tsparticles/Options/Classes/BackgroundMask/BackgroundMask.js","./node_modules/tsparticles/Options/Classes/BackgroundMask/BackgroundMaskCover.js","./node_modules/tsparticles/Options/Classes/ColorAnimation.js","./node_modules/tsparticles/Options/Classes/FullScreen/FullScreen.js","./node_modules/tsparticles/Options/Classes/HslAnimation.js","./node_modules/tsparticles/Options/Classes/Interactivity/Events/ClickEvent.js","./node_modules/tsparticles/Options/Classes/Interactivity/Events/DivEvent.js","./node_modules/tsparticles/Options/Classes/Interactivity/Events/Events.js","./node_modules/tsparticles/Options/Classes/Interactivity/Events/HoverEvent.js","./node_modules/tsparticles/Options/Classes/Interactivity/Events/Parallax.js","./node_modules/tsparticles/Options/Classes/Interactivity/Interactivity.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Attract.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Bounce.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Bubble.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/BubbleBase.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/BubbleDiv.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Connect.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/ConnectLinks.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Grab.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/GrabLinks.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Light.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/LightArea.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/LightGradient.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/LightShadow.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Modes.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Push.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Remove.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Repulse.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/RepulseBase.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/RepulseDiv.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Slow.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Trail.js","./node_modules/tsparticles/Options/Classes/ManualParticle.js","./node_modules/tsparticles/Options/Classes/Motion/Motion.js","./node_modules/tsparticles/Options/Classes/Motion/MotionReduce.js","./node_modules/tsparticles/Options/Classes/Options.js","./node_modules/tsparticles/Options/Classes/OptionsColor.js","./node_modules/tsparticles/Options/Classes/Particles/Bounce/Bounce.js","./node_modules/tsparticles/Options/Classes/Particles/Bounce/BounceFactor.js","./node_modules/tsparticles/Options/Classes/Particles/Collisions/Collisions.js","./node_modules/tsparticles/Options/Classes/Particles/Collisions/CollisionsOverlap.js","./node_modules/tsparticles/Options/Classes/Particles/Destroy/Destroy.js","./node_modules/tsparticles/Options/Classes/Particles/Destroy/Split.js","./node_modules/tsparticles/Options/Classes/Particles/Destroy/SplitFactor.js","./node_modules/tsparticles/Options/Classes/Particles/Destroy/SplitRate.js","./node_modules/tsparticles/Options/Classes/Particles/Life/Life.js","./node_modules/tsparticles/Options/Classes/Particles/Life/LifeDelay.js","./node_modules/tsparticles/Options/Classes/Particles/Life/LifeDuration.js","./node_modules/tsparticles/Options/Classes/Particles/Links/Links.js","./node_modules/tsparticles/Options/Classes/Particles/Links/LinksShadow.js","./node_modules/tsparticles/Options/Classes/Particles/Links/LinksTriangle.js","./node_modules/tsparticles/Options/Classes/Particles/Move/Attract.js","./node_modules/tsparticles/Options/Classes/Particles/Move/Move.js","./node_modules/tsparticles/Options/Classes/Particles/Move/MoveAngle.js","./node_modules/tsparticles/Options/Classes/Particles/Move/MoveGravity.js","./node_modules/tsparticles/Options/Classes/Particles/Move/OutModes.js","./node_modules/tsparticles/Options/Classes/Particles/Move/Path/Path.js","./node_modules/tsparticles/Options/Classes/Particles/Move/Path/PathDelay.js","./node_modules/tsparticles/Options/Classes/Particles/Move/Spin.js","./node_modules/tsparticles/Options/Classes/Particles/Move/Trail.js","./node_modules/tsparticles/Options/Classes/Particles/Number/Density.js","./node_modules/tsparticles/Options/Classes/Particles/Number/ParticlesNumber.js","./node_modules/tsparticles/Options/Classes/Particles/Opacity/Opacity.js","./node_modules/tsparticles/Options/Classes/Particles/Opacity/OpacityAnimation.js","./node_modules/tsparticles/Options/Classes/Particles/Orbit/Orbit.js","./node_modules/tsparticles/Options/Classes/Particles/Orbit/OrbitRotation.js","./node_modules/tsparticles/Options/Classes/Particles/ParticlesOptions.js","./node_modules/tsparticles/Options/Classes/Particles/Repulse/Repulse.js","./node_modules/tsparticles/Options/Classes/Particles/Roll/Roll.js","./node_modules/tsparticles/Options/Classes/Particles/Roll/RollLight.js","./node_modules/tsparticles/Options/Classes/Particles/Rotate/Rotate.js","./node_modules/tsparticles/Options/Classes/Particles/Rotate/RotateAnimation.js","./node_modules/tsparticles/Options/Classes/Particles/Shadow.js","./node_modules/tsparticles/Options/Classes/Particles/Shape/Shape.js","./node_modules/tsparticles/Options/Classes/Particles/Size/Size.js","./node_modules/tsparticles/Options/Classes/Particles/Size/SizeAnimation.js","./node_modules/tsparticles/Options/Classes/Particles/Stroke.js","./node_modules/tsparticles/Options/Classes/Particles/Tilt/Tilt.js","./node_modules/tsparticles/Options/Classes/Particles/Tilt/TiltAnimation.js","./node_modules/tsparticles/Options/Classes/Particles/Twinkle/Twinkle.js","./node_modules/tsparticles/Options/Classes/Particles/Twinkle/TwinkleValues.js","./node_modules/tsparticles/Options/Classes/Particles/Wobble/Wobble.js","./node_modules/tsparticles/Options/Classes/Particles/ZIndex/ZIndex.js","./node_modules/tsparticles/Options/Classes/Random.js","./node_modules/tsparticles/Options/Classes/Responsive.js","./node_modules/tsparticles/Options/Classes/Theme/Theme.js","./node_modules/tsparticles/Options/Classes/Theme/ThemeDefault.js","./node_modules/tsparticles/Options/Classes/ValueWithRandom.js","./node_modules/tsparticles/Plugins/Absorbers/AbsorberInstance.js","./node_modules/tsparticles/Plugins/Absorbers/Absorbers.js","./node_modules/tsparticles/Plugins/Absorbers/Enums/AbsorberClickMode.js","./node_modules/tsparticles/Plugins/Absorbers/Enums/index.js","./node_modules/tsparticles/Plugins/Absorbers/Options/Classes/Absorber.js","./node_modules/tsparticles/Plugins/Absorbers/Options/Classes/AbsorberSize.js","./node_modules/tsparticles/Plugins/Absorbers/Options/Classes/AbsorberSizeLimit.js","./node_modules/tsparticles/Plugins/Absorbers/plugin.js","./node_modules/tsparticles/Plugins/Emitters/EmitterInstance.js","./node_modules/tsparticles/Plugins/Emitters/Emitters.js","./node_modules/tsparticles/Plugins/Emitters/EmittersMain.js","./node_modules/tsparticles/Plugins/Emitters/Enums/EmitterClickMode.js","./node_modules/tsparticles/Plugins/Emitters/Enums/EmitterShapeType.js","./node_modules/tsparticles/Plugins/Emitters/Enums/index.js","./node_modules/tsparticles/Plugins/Emitters/Options/Classes/Emitter.js","./node_modules/tsparticles/Plugins/Emitters/Options/Classes/EmitterLife.js","./node_modules/tsparticles/Plugins/Emitters/Options/Classes/EmitterRate.js","./node_modules/tsparticles/Plugins/Emitters/Options/Classes/EmitterSize.js","./node_modules/tsparticles/Plugins/Emitters/ShapeManager.js","./node_modules/tsparticles/Plugins/Emitters/Shapes/Circle/CircleShape.js","./node_modules/tsparticles/Plugins/Emitters/Shapes/Square/SquareShape.js","./node_modules/tsparticles/Plugins/Emitters/plugin.js","./node_modules/tsparticles/Plugins/PolygonMask/Enums/InlineArrangement.js","./node_modules/tsparticles/Plugins/PolygonMask/Enums/MoveType.js","./node_modules/tsparticles/Plugins/PolygonMask/Enums/Type.js","./node_modules/tsparticles/Plugins/PolygonMask/Enums/index.js","./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/Draw.js","./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/DrawStroke.js","./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/Inline.js","./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/LocalSvg.js","./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/Move.js","./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/PolygonMask.js","./node_modules/tsparticles/Plugins/PolygonMask/PolygonMaskInstance.js","./node_modules/tsparticles/Plugins/PolygonMask/pathseg.js","./node_modules/tsparticles/Plugins/PolygonMask/plugin.js","./node_modules/tsparticles/Plugins/PolygonMask/utils.js","./node_modules/tsparticles/Shapes/Circle/CircleDrawer.js","./node_modules/tsparticles/Shapes/Circle/index.js","./node_modules/tsparticles/Shapes/Image/ImageDrawer.js","./node_modules/tsparticles/Shapes/Image/Utils.js","./node_modules/tsparticles/Shapes/Image/index.js","./node_modules/tsparticles/Shapes/Line/LineDrawer.js","./node_modules/tsparticles/Shapes/Line/index.js","./node_modules/tsparticles/Shapes/Polygon/PolygonDrawer.js","./node_modules/tsparticles/Shapes/Polygon/PolygonDrawerBase.js","./node_modules/tsparticles/Shapes/Polygon/TriangleDrawer.js","./node_modules/tsparticles/Shapes/Polygon/index.js","./node_modules/tsparticles/Shapes/Square/SquareDrawer.js","./node_modules/tsparticles/Shapes/Square/index.js","./node_modules/tsparticles/Shapes/Star/StarDrawer.js","./node_modules/tsparticles/Shapes/Star/index.js","./node_modules/tsparticles/Shapes/Text/TextDrawer.js","./node_modules/tsparticles/Shapes/Text/index.js","./node_modules/tsparticles/Types/PathOptions.js","./node_modules/tsparticles/Types/RangeValue.js","./node_modules/tsparticles/Types/RecursivePartial.js","./node_modules/tsparticles/Types/ShapeData.js","./node_modules/tsparticles/Types/ShapeDrawerFunctions.js","./node_modules/tsparticles/Types/SingleOrMultiple.js","./node_modules/tsparticles/Types/index.js","./node_modules/tsparticles/Updaters/Angle/AngleUpdater.js","./node_modules/tsparticles/Updaters/Angle/index.js","./node_modules/tsparticles/Updaters/Color/ColorUpdater.js","./node_modules/tsparticles/Updaters/Color/index.js","./node_modules/tsparticles/Updaters/Life/LifeUpdater.js","./node_modules/tsparticles/Updaters/Life/index.js","./node_modules/tsparticles/Updaters/Opacity/OpacityUpdater.js","./node_modules/tsparticles/Updaters/Opacity/index.js","./node_modules/tsparticles/Updaters/OutModes/OutOfCanvasUpdater.js","./node_modules/tsparticles/Updaters/OutModes/Utils.js","./node_modules/tsparticles/Updaters/OutModes/index.js","./node_modules/tsparticles/Updaters/Roll/RollUpdater.js","./node_modules/tsparticles/Updaters/Roll/index.js","./node_modules/tsparticles/Updaters/Size/SizeUpdater.js","./node_modules/tsparticles/Updaters/Size/index.js","./node_modules/tsparticles/Updaters/StrokeColor/StrokeColorUpdater.js","./node_modules/tsparticles/Updaters/StrokeColor/index.js","./node_modules/tsparticles/Updaters/Tilt/TiltUpdater.js","./node_modules/tsparticles/Updaters/Tilt/index.js","./node_modules/tsparticles/Updaters/Wobble/WobbleUpdater.js","./node_modules/tsparticles/Updaters/Wobble/index.js","./node_modules/tsparticles/Utils/CanvasUtils.js","./node_modules/tsparticles/Utils/Circle.js","./node_modules/tsparticles/Utils/CircleWarp.js","./node_modules/tsparticles/Utils/ColorUtils.js","./node_modules/tsparticles/Utils/Constants.js","./node_modules/tsparticles/Utils/EventListeners.js","./node_modules/tsparticles/Utils/NumberUtils.js","./node_modules/tsparticles/Utils/Plugins.js","./node_modules/tsparticles/Utils/Point.js","./node_modules/tsparticles/Utils/QuadTree.js","./node_modules/tsparticles/Utils/Range.js","./node_modules/tsparticles/Utils/Rectangle.js","./node_modules/tsparticles/Utils/Utils.js","./node_modules/tsparticles/Utils/index.js","./node_modules/tsparticles/full.js","./node_modules/tsparticles/index.js","./node_modules/tsparticles/main.js","./node_modules/tsparticles/pjs.js","./node_modules/tsparticles/slim.js","./src/common/initIsotope.js","./src/common/removeSlashpagination.js","./src/components/About-us3/about-us3.jsx","./src/components/Full-testimonials/full-testimonials.jsx","./src/components/Intro4/intro4.jsx","./src/components/Minimal-Area2/minimal-area2.jsx","./src/components/Services3/services3.jsx","./src/components/Works3/works3.jsx","./src/components/blogs/Blogs4/blogs4.jsx","./src/config/particle-config.js","./src/config/pr-s-black.js","./src/data/sections/about-us3.json","./src/data/sections/works.json","./src/layouts/Dark.jsx","./src/pages/demos/demos.jsx","./src/pages/index.jsx"]} \ No newline at end of file diff --git a/.next/static/webpack/0aeb85f6a56c9e6e.webpack.hot-update.json b/.next/static/webpack/0aeb85f6a56c9e6e.webpack.hot-update.json new file mode 100644 index 0000000..68ad3d7 --- /dev/null +++ b/.next/static/webpack/0aeb85f6a56c9e6e.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["pages/about","webpack"],"r":[],"m":[]} \ No newline at end of file diff --git a/.next/static/webpack/0b7a364af5a62ce6.webpack.hot-update.json b/.next/static/webpack/0b7a364af5a62ce6.webpack.hot-update.json new file mode 100644 index 0000000..10c41d6 --- /dev/null +++ b/.next/static/webpack/0b7a364af5a62ce6.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["pages/index","pages/about","webpack"],"r":[],"m":[]} \ No newline at end of file diff --git a/.next/static/webpack/0c777c5c41991727.webpack.hot-update.json b/.next/static/webpack/0c777c5c41991727.webpack.hot-update.json new file mode 100644 index 0000000..3823c4c --- /dev/null +++ b/.next/static/webpack/0c777c5c41991727.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["webpack"],"r":[],"m":[]} \ No newline at end of file diff --git a/.next/static/webpack/14b03416c56e5a2c.webpack.hot-update.json b/.next/static/webpack/14b03416c56e5a2c.webpack.hot-update.json new file mode 100644 index 0000000..af32317 --- /dev/null +++ b/.next/static/webpack/14b03416c56e5a2c.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["pages/about","pages/index","webpack"],"r":[],"m":[]} \ No newline at end of file diff --git a/.next/static/webpack/22069ec70f2eba56.webpack.hot-update.json b/.next/static/webpack/22069ec70f2eba56.webpack.hot-update.json new file mode 100644 index 0000000..d9cfadf --- /dev/null +++ b/.next/static/webpack/22069ec70f2eba56.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["webpack"],"r":["pages/blog/blog-light"],"m":["./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2Fblog%2Fblog-light&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cblog%5Cblog-light.jsx!","./src/components/Blog-standerd/blog-standerd.jsx","./src/data/blog1.json","./src/pages/blog/blog-light.jsx"]} \ No newline at end of file diff --git a/.next/static/webpack/27fbdb223e7cc361.webpack.hot-update.json b/.next/static/webpack/27fbdb223e7cc361.webpack.hot-update.json new file mode 100644 index 0000000..10c41d6 --- /dev/null +++ b/.next/static/webpack/27fbdb223e7cc361.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["pages/index","pages/about","webpack"],"r":[],"m":[]} \ No newline at end of file diff --git a/.next/static/webpack/2a8ba3bbae45e83d.webpack.hot-update.json b/.next/static/webpack/2a8ba3bbae45e83d.webpack.hot-update.json new file mode 100644 index 0000000..d7f885e --- /dev/null +++ b/.next/static/webpack/2a8ba3bbae45e83d.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["webpack"],"r":["pages/contact/contact-light","pages/about"],"m":["./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2Fcontact%2Fcontact-light&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Ccontact%5Ccontact-light.jsx!","./src/components/Contact-form/contact-form.jsx","./src/components/Contact-header/contact-header.jsx","./src/data/sections/contact-header.json","./src/data/sections/form-info.json","./src/pages/contact/contact-light.jsx","./node_modules/@babel/runtime/helpers/interopRequireDefault.js","./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/react-circular-progressbar/dist/styles.css","./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/react-modal-video/css/modal-video.css","./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2Fabout&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cabout%5Cindex.jsx!","./node_modules/react-circular-progressbar/dist/index.esm.js","./node_modules/react-circular-progressbar/dist/styles.css","./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","./node_modules/react-modal-video/css/modal-video.css","./node_modules/react-modal-video/lib/index.js","./node_modules/react-modal-video/node_modules/dom-helpers/class/addClass.js","./node_modules/react-modal-video/node_modules/dom-helpers/class/hasClass.js","./node_modules/react-modal-video/node_modules/dom-helpers/class/removeClass.js","./node_modules/react-modal-video/node_modules/react-transition-group/CSSTransition.js","./node_modules/react-modal-video/node_modules/react-transition-group/Transition.js","./node_modules/react-modal-video/node_modules/react-transition-group/utils/PropTypes.js","./src/components/About-intro/index.jsx","./src/components/Clients/clients.jsx","./src/components/Minimal-Area/minimal-area.jsx","./src/components/Pages-header/index.jsx","./src/components/Services/services.jsx","./src/components/Skills-circle/skills-circle.jsx","./src/components/Video-with-testimonials/video-with-testimonials.jsx","./src/data/sections/about-info1.json","./src/data/sections/clients.json","./src/data/sections/features.json","./src/pages/about/index.jsx"]} \ No newline at end of file diff --git a/.next/static/webpack/391c934f4fe378ea.webpack.hot-update.json b/.next/static/webpack/391c934f4fe378ea.webpack.hot-update.json new file mode 100644 index 0000000..10c41d6 --- /dev/null +++ b/.next/static/webpack/391c934f4fe378ea.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["pages/index","pages/about","webpack"],"r":[],"m":[]} \ No newline at end of file diff --git a/.next/static/webpack/3ccbe004deb5758f.webpack.hot-update.json b/.next/static/webpack/3ccbe004deb5758f.webpack.hot-update.json new file mode 100644 index 0000000..d66e2cf --- /dev/null +++ b/.next/static/webpack/3ccbe004deb5758f.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["pages/_app","pages/_error","webpack"],"r":["pages/index"],"m":["./node_modules/@babel/runtime/helpers/esm/defineProperty.js","./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[10].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[10].use[2]!./node_modules/next/dist/compiled/resolve-url-loader/index.js??ruleSet[1].rules[2].oneOf[10].use[3]!./node_modules/next/dist/compiled/sass-loader/cjs.js??ruleSet[1].rules[2].oneOf[10].use[4]!./src/styles/main.scss","./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[9].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[9].use[2]!./src/styles/preloader.css","./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js","./node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js","./node_modules/next/head.js","./node_modules/next/script.js","./node_modules/react/cjs/react-jsx-dev-runtime.development.js","./node_modules/react/jsx-dev-runtime.js","./src/common/loadingPace.js","./src/common/mouseEffect.js","./src/common/scrollToTop.js","./src/components/Loading-Screen/index.jsx","./src/components/cursor/index.jsx","./src/components/scrollToTop/index.jsx","./src/data/app.json","./src/pages/_app.js","./src/styles/main.scss","./src/styles/preloader.css","./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","./node_modules/@babel/runtime/helpers/esm/createClass.js","./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","./node_modules/@babel/runtime/helpers/esm/inherits.js","./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","./node_modules/@babel/runtime/helpers/esm/typeof.js","./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","./node_modules/fast-deep-equal/react.js","./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2F&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cindex.jsx!","./node_modules/next/dist/client/link.js","./node_modules/next/dist/client/use-intersection.js","./node_modules/next/link.js","./node_modules/react-tsparticles/cjs/particles.js","./node_modules/react-tsparticles/index.js","./node_modules/styled-jsx/dist/style.js","./node_modules/styled-jsx/style.js","./node_modules/tsparticles/Core/Canvas.js","./node_modules/tsparticles/Core/Container.js","./node_modules/tsparticles/Core/ExternalInteractorBase.js","./node_modules/tsparticles/Core/FrameManager.js","./node_modules/tsparticles/Core/InteractionManager.js","./node_modules/tsparticles/Core/Interfaces/Colors.js","./node_modules/tsparticles/Core/Interfaces/Gradients.js","./node_modules/tsparticles/Core/Interfaces/IAttract.js","./node_modules/tsparticles/Core/Interfaces/IBounds.js","./node_modules/tsparticles/Core/Interfaces/IBubble.js","./node_modules/tsparticles/Core/Interfaces/IBubbleParticleData.js","./node_modules/tsparticles/Core/Interfaces/ICircleBouncer.js","./node_modules/tsparticles/Core/Interfaces/IContainerInteractivity.js","./node_modules/tsparticles/Core/Interfaces/IContainerPlugin.js","./node_modules/tsparticles/Core/Interfaces/ICoordinates.js","./node_modules/tsparticles/Core/Interfaces/IDelta.js","./node_modules/tsparticles/Core/Interfaces/IDimension.js","./node_modules/tsparticles/Core/Interfaces/IDistance.js","./node_modules/tsparticles/Core/Interfaces/IExternalInteractor.js","./node_modules/tsparticles/Core/Interfaces/IInteractor.js","./node_modules/tsparticles/Core/Interfaces/IMouseData.js","./node_modules/tsparticles/Core/Interfaces/IMovePathGenerator.js","./node_modules/tsparticles/Core/Interfaces/IParticle.js","./node_modules/tsparticles/Core/Interfaces/IParticleGradientAnimation.js","./node_modules/tsparticles/Core/Interfaces/IParticleGradientColorAnimation.js","./node_modules/tsparticles/Core/Interfaces/IParticleHslAnimation.js","./node_modules/tsparticles/Core/Interfaces/IParticleLife.js","./node_modules/tsparticles/Core/Interfaces/IParticleLoops.js","./node_modules/tsparticles/Core/Interfaces/IParticleRetinaProps.js","./node_modules/tsparticles/Core/Interfaces/IParticleSpin.js","./node_modules/tsparticles/Core/Interfaces/IParticleUpdater.js","./node_modules/tsparticles/Core/Interfaces/IParticleValueAnimation.js","./node_modules/tsparticles/Core/Interfaces/IParticlesInteractor.js","./node_modules/tsparticles/Core/Interfaces/IPlugin.js","./node_modules/tsparticles/Core/Interfaces/IRangeValue.js","./node_modules/tsparticles/Core/Interfaces/IRectSideResult.js","./node_modules/tsparticles/Core/Interfaces/IRepulse.js","./node_modules/tsparticles/Core/Interfaces/IShapeDrawer.js","./node_modules/tsparticles/Core/Interfaces/IShapeValues.js","./node_modules/tsparticles/Core/Interfaces/index.js","./node_modules/tsparticles/Core/Loader.js","./node_modules/tsparticles/Core/Particle.js","./node_modules/tsparticles/Core/Particle/Mover.js","./node_modules/tsparticles/Core/Particle/Vector.js","./node_modules/tsparticles/Core/Particle/Vector3d.js","./node_modules/tsparticles/Core/Particles.js","./node_modules/tsparticles/Core/ParticlesInteractorBase.js","./node_modules/tsparticles/Core/Retina.js","./node_modules/tsparticles/Enums/AnimationStatus.js","./node_modules/tsparticles/Enums/Directions/MoveDirection.js","./node_modules/tsparticles/Enums/Directions/OutModeDirection.js","./node_modules/tsparticles/Enums/Directions/RotateDirection.js","./node_modules/tsparticles/Enums/Directions/TiltDirection.js","./node_modules/tsparticles/Enums/Directions/index.js","./node_modules/tsparticles/Enums/InteractivityDetect.js","./node_modules/tsparticles/Enums/Modes/ClickMode.js","./node_modules/tsparticles/Enums/Modes/CollisionMode.js","./node_modules/tsparticles/Enums/Modes/DestroyMode.js","./node_modules/tsparticles/Enums/Modes/DivMode.js","./node_modules/tsparticles/Enums/Modes/HoverMode.js","./node_modules/tsparticles/Enums/Modes/OutMode.js","./node_modules/tsparticles/Enums/Modes/ResponsiveMode.js","./node_modules/tsparticles/Enums/Modes/RollMode.js","./node_modules/tsparticles/Enums/Modes/SizeMode.js","./node_modules/tsparticles/Enums/Modes/ThemeMode.js","./node_modules/tsparticles/Enums/Modes/index.js","./node_modules/tsparticles/Enums/Types/AlterType.js","./node_modules/tsparticles/Enums/Types/DestroyType.js","./node_modules/tsparticles/Enums/Types/DivType.js","./node_modules/tsparticles/Enums/Types/EasingType.js","./node_modules/tsparticles/Enums/Types/GradientType.js","./node_modules/tsparticles/Enums/Types/InteractorType.js","./node_modules/tsparticles/Enums/Types/OrbitType.js","./node_modules/tsparticles/Enums/Types/ShapeType.js","./node_modules/tsparticles/Enums/Types/StartValueType.js","./node_modules/tsparticles/Enums/Types/index.js","./node_modules/tsparticles/Enums/index.js","./node_modules/tsparticles/Interactions/External/Attract/Attractor.js","./node_modules/tsparticles/Interactions/External/Attract/index.js","./node_modules/tsparticles/Interactions/External/Bounce/Bouncer.js","./node_modules/tsparticles/Interactions/External/Bounce/index.js","./node_modules/tsparticles/Interactions/External/Bubble/Bubbler.js","./node_modules/tsparticles/Interactions/External/Bubble/ProcessBubbleType.js","./node_modules/tsparticles/Interactions/External/Bubble/index.js","./node_modules/tsparticles/Interactions/External/Connect/Connector.js","./node_modules/tsparticles/Interactions/External/Connect/index.js","./node_modules/tsparticles/Interactions/External/Grab/Grabber.js","./node_modules/tsparticles/Interactions/External/Grab/index.js","./node_modules/tsparticles/Interactions/External/Repulse/Repulser.js","./node_modules/tsparticles/Interactions/External/Repulse/index.js","./node_modules/tsparticles/Interactions/External/Trail/TrailMaker.js","./node_modules/tsparticles/Interactions/External/Trail/index.js","./node_modules/tsparticles/Interactions/Particles/Attract/Attractor.js","./node_modules/tsparticles/Interactions/Particles/Attract/index.js","./node_modules/tsparticles/Interactions/Particles/Collisions/Collider.js","./node_modules/tsparticles/Interactions/Particles/Collisions/index.js","./node_modules/tsparticles/Interactions/Particles/Links/LinkInstance.js","./node_modules/tsparticles/Interactions/Particles/Links/Linker.js","./node_modules/tsparticles/Interactions/Particles/Links/index.js","./node_modules/tsparticles/Interactions/Particles/Links/plugin.js","./node_modules/tsparticles/Options/Classes/AnimatableColor.js","./node_modules/tsparticles/Options/Classes/AnimatableGradient.js","./node_modules/tsparticles/Options/Classes/AnimationOptions.js","./node_modules/tsparticles/Options/Classes/Background/Background.js","./node_modules/tsparticles/Options/Classes/BackgroundMask/BackgroundMask.js","./node_modules/tsparticles/Options/Classes/BackgroundMask/BackgroundMaskCover.js","./node_modules/tsparticles/Options/Classes/ColorAnimation.js","./node_modules/tsparticles/Options/Classes/FullScreen/FullScreen.js","./node_modules/tsparticles/Options/Classes/HslAnimation.js","./node_modules/tsparticles/Options/Classes/Interactivity/Events/ClickEvent.js","./node_modules/tsparticles/Options/Classes/Interactivity/Events/DivEvent.js","./node_modules/tsparticles/Options/Classes/Interactivity/Events/Events.js","./node_modules/tsparticles/Options/Classes/Interactivity/Events/HoverEvent.js","./node_modules/tsparticles/Options/Classes/Interactivity/Events/Parallax.js","./node_modules/tsparticles/Options/Classes/Interactivity/Interactivity.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Attract.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Bounce.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Bubble.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/BubbleBase.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/BubbleDiv.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Connect.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/ConnectLinks.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Grab.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/GrabLinks.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Light.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/LightArea.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/LightGradient.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/LightShadow.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Modes.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Push.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Remove.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Repulse.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/RepulseBase.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/RepulseDiv.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Slow.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Trail.js","./node_modules/tsparticles/Options/Classes/ManualParticle.js","./node_modules/tsparticles/Options/Classes/Motion/Motion.js","./node_modules/tsparticles/Options/Classes/Motion/MotionReduce.js","./node_modules/tsparticles/Options/Classes/Options.js","./node_modules/tsparticles/Options/Classes/OptionsColor.js","./node_modules/tsparticles/Options/Classes/Particles/Bounce/Bounce.js","./node_modules/tsparticles/Options/Classes/Particles/Bounce/BounceFactor.js","./node_modules/tsparticles/Options/Classes/Particles/Collisions/Collisions.js","./node_modules/tsparticles/Options/Classes/Particles/Collisions/CollisionsOverlap.js","./node_modules/tsparticles/Options/Classes/Particles/Destroy/Destroy.js","./node_modules/tsparticles/Options/Classes/Particles/Destroy/Split.js","./node_modules/tsparticles/Options/Classes/Particles/Destroy/SplitFactor.js","./node_modules/tsparticles/Options/Classes/Particles/Destroy/SplitRate.js","./node_modules/tsparticles/Options/Classes/Particles/Life/Life.js","./node_modules/tsparticles/Options/Classes/Particles/Life/LifeDelay.js","./node_modules/tsparticles/Options/Classes/Particles/Life/LifeDuration.js","./node_modules/tsparticles/Options/Classes/Particles/Links/Links.js","./node_modules/tsparticles/Options/Classes/Particles/Links/LinksShadow.js","./node_modules/tsparticles/Options/Classes/Particles/Links/LinksTriangle.js","./node_modules/tsparticles/Options/Classes/Particles/Move/Attract.js","./node_modules/tsparticles/Options/Classes/Particles/Move/Move.js","./node_modules/tsparticles/Options/Classes/Particles/Move/MoveAngle.js","./node_modules/tsparticles/Options/Classes/Particles/Move/MoveGravity.js","./node_modules/tsparticles/Options/Classes/Particles/Move/OutModes.js","./node_modules/tsparticles/Options/Classes/Particles/Move/Path/Path.js","./node_modules/tsparticles/Options/Classes/Particles/Move/Path/PathDelay.js","./node_modules/tsparticles/Options/Classes/Particles/Move/Spin.js","./node_modules/tsparticles/Options/Classes/Particles/Move/Trail.js","./node_modules/tsparticles/Options/Classes/Particles/Number/Density.js","./node_modules/tsparticles/Options/Classes/Particles/Number/ParticlesNumber.js","./node_modules/tsparticles/Options/Classes/Particles/Opacity/Opacity.js","./node_modules/tsparticles/Options/Classes/Particles/Opacity/OpacityAnimation.js","./node_modules/tsparticles/Options/Classes/Particles/Orbit/Orbit.js","./node_modules/tsparticles/Options/Classes/Particles/Orbit/OrbitRotation.js","./node_modules/tsparticles/Options/Classes/Particles/ParticlesOptions.js","./node_modules/tsparticles/Options/Classes/Particles/Repulse/Repulse.js","./node_modules/tsparticles/Options/Classes/Particles/Roll/Roll.js","./node_modules/tsparticles/Options/Classes/Particles/Roll/RollLight.js","./node_modules/tsparticles/Options/Classes/Particles/Rotate/Rotate.js","./node_modules/tsparticles/Options/Classes/Particles/Rotate/RotateAnimation.js","./node_modules/tsparticles/Options/Classes/Particles/Shadow.js","./node_modules/tsparticles/Options/Classes/Particles/Shape/Shape.js","./node_modules/tsparticles/Options/Classes/Particles/Size/Size.js","./node_modules/tsparticles/Options/Classes/Particles/Size/SizeAnimation.js","./node_modules/tsparticles/Options/Classes/Particles/Stroke.js","./node_modules/tsparticles/Options/Classes/Particles/Tilt/Tilt.js","./node_modules/tsparticles/Options/Classes/Particles/Tilt/TiltAnimation.js","./node_modules/tsparticles/Options/Classes/Particles/Twinkle/Twinkle.js","./node_modules/tsparticles/Options/Classes/Particles/Twinkle/TwinkleValues.js","./node_modules/tsparticles/Options/Classes/Particles/Wobble/Wobble.js","./node_modules/tsparticles/Options/Classes/Particles/ZIndex/ZIndex.js","./node_modules/tsparticles/Options/Classes/Random.js","./node_modules/tsparticles/Options/Classes/Responsive.js","./node_modules/tsparticles/Options/Classes/Theme/Theme.js","./node_modules/tsparticles/Options/Classes/Theme/ThemeDefault.js","./node_modules/tsparticles/Options/Classes/ValueWithRandom.js","./node_modules/tsparticles/Plugins/Absorbers/AbsorberInstance.js","./node_modules/tsparticles/Plugins/Absorbers/Absorbers.js","./node_modules/tsparticles/Plugins/Absorbers/Enums/AbsorberClickMode.js","./node_modules/tsparticles/Plugins/Absorbers/Enums/index.js","./node_modules/tsparticles/Plugins/Absorbers/Options/Classes/Absorber.js","./node_modules/tsparticles/Plugins/Absorbers/Options/Classes/AbsorberSize.js","./node_modules/tsparticles/Plugins/Absorbers/Options/Classes/AbsorberSizeLimit.js","./node_modules/tsparticles/Plugins/Absorbers/plugin.js","./node_modules/tsparticles/Plugins/Emitters/EmitterInstance.js","./node_modules/tsparticles/Plugins/Emitters/Emitters.js","./node_modules/tsparticles/Plugins/Emitters/EmittersMain.js","./node_modules/tsparticles/Plugins/Emitters/Enums/EmitterClickMode.js","./node_modules/tsparticles/Plugins/Emitters/Enums/EmitterShapeType.js","./node_modules/tsparticles/Plugins/Emitters/Enums/index.js","./node_modules/tsparticles/Plugins/Emitters/Options/Classes/Emitter.js","./node_modules/tsparticles/Plugins/Emitters/Options/Classes/EmitterLife.js","./node_modules/tsparticles/Plugins/Emitters/Options/Classes/EmitterRate.js","./node_modules/tsparticles/Plugins/Emitters/Options/Classes/EmitterSize.js","./node_modules/tsparticles/Plugins/Emitters/ShapeManager.js","./node_modules/tsparticles/Plugins/Emitters/Shapes/Circle/CircleShape.js","./node_modules/tsparticles/Plugins/Emitters/Shapes/Square/SquareShape.js","./node_modules/tsparticles/Plugins/Emitters/plugin.js","./node_modules/tsparticles/Plugins/PolygonMask/Enums/InlineArrangement.js","./node_modules/tsparticles/Plugins/PolygonMask/Enums/MoveType.js","./node_modules/tsparticles/Plugins/PolygonMask/Enums/Type.js","./node_modules/tsparticles/Plugins/PolygonMask/Enums/index.js","./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/Draw.js","./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/DrawStroke.js","./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/Inline.js","./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/LocalSvg.js","./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/Move.js","./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/PolygonMask.js","./node_modules/tsparticles/Plugins/PolygonMask/PolygonMaskInstance.js","./node_modules/tsparticles/Plugins/PolygonMask/pathseg.js","./node_modules/tsparticles/Plugins/PolygonMask/plugin.js","./node_modules/tsparticles/Plugins/PolygonMask/utils.js","./node_modules/tsparticles/Shapes/Circle/CircleDrawer.js","./node_modules/tsparticles/Shapes/Circle/index.js","./node_modules/tsparticles/Shapes/Image/ImageDrawer.js","./node_modules/tsparticles/Shapes/Image/Utils.js","./node_modules/tsparticles/Shapes/Image/index.js","./node_modules/tsparticles/Shapes/Line/LineDrawer.js","./node_modules/tsparticles/Shapes/Line/index.js","./node_modules/tsparticles/Shapes/Polygon/PolygonDrawer.js","./node_modules/tsparticles/Shapes/Polygon/PolygonDrawerBase.js","./node_modules/tsparticles/Shapes/Polygon/TriangleDrawer.js","./node_modules/tsparticles/Shapes/Polygon/index.js","./node_modules/tsparticles/Shapes/Square/SquareDrawer.js","./node_modules/tsparticles/Shapes/Square/index.js","./node_modules/tsparticles/Shapes/Star/StarDrawer.js","./node_modules/tsparticles/Shapes/Star/index.js","./node_modules/tsparticles/Shapes/Text/TextDrawer.js","./node_modules/tsparticles/Shapes/Text/index.js","./node_modules/tsparticles/Types/PathOptions.js","./node_modules/tsparticles/Types/RangeValue.js","./node_modules/tsparticles/Types/RecursivePartial.js","./node_modules/tsparticles/Types/ShapeData.js","./node_modules/tsparticles/Types/ShapeDrawerFunctions.js","./node_modules/tsparticles/Types/SingleOrMultiple.js","./node_modules/tsparticles/Types/index.js","./node_modules/tsparticles/Updaters/Angle/AngleUpdater.js","./node_modules/tsparticles/Updaters/Angle/index.js","./node_modules/tsparticles/Updaters/Color/ColorUpdater.js","./node_modules/tsparticles/Updaters/Color/index.js","./node_modules/tsparticles/Updaters/Life/LifeUpdater.js","./node_modules/tsparticles/Updaters/Life/index.js","./node_modules/tsparticles/Updaters/Opacity/OpacityUpdater.js","./node_modules/tsparticles/Updaters/Opacity/index.js","./node_modules/tsparticles/Updaters/OutModes/OutOfCanvasUpdater.js","./node_modules/tsparticles/Updaters/OutModes/Utils.js","./node_modules/tsparticles/Updaters/OutModes/index.js","./node_modules/tsparticles/Updaters/Roll/RollUpdater.js","./node_modules/tsparticles/Updaters/Roll/index.js","./node_modules/tsparticles/Updaters/Size/SizeUpdater.js","./node_modules/tsparticles/Updaters/Size/index.js","./node_modules/tsparticles/Updaters/StrokeColor/StrokeColorUpdater.js","./node_modules/tsparticles/Updaters/StrokeColor/index.js","./node_modules/tsparticles/Updaters/Tilt/TiltUpdater.js","./node_modules/tsparticles/Updaters/Tilt/index.js","./node_modules/tsparticles/Updaters/Wobble/WobbleUpdater.js","./node_modules/tsparticles/Updaters/Wobble/index.js","./node_modules/tsparticles/Utils/CanvasUtils.js","./node_modules/tsparticles/Utils/Circle.js","./node_modules/tsparticles/Utils/CircleWarp.js","./node_modules/tsparticles/Utils/ColorUtils.js","./node_modules/tsparticles/Utils/Constants.js","./node_modules/tsparticles/Utils/EventListeners.js","./node_modules/tsparticles/Utils/NumberUtils.js","./node_modules/tsparticles/Utils/Plugins.js","./node_modules/tsparticles/Utils/Point.js","./node_modules/tsparticles/Utils/QuadTree.js","./node_modules/tsparticles/Utils/Range.js","./node_modules/tsparticles/Utils/Rectangle.js","./node_modules/tsparticles/Utils/Utils.js","./node_modules/tsparticles/Utils/index.js","./node_modules/tsparticles/full.js","./node_modules/tsparticles/index.js","./node_modules/tsparticles/main.js","./node_modules/tsparticles/pjs.js","./node_modules/tsparticles/slim.js","./src/common/initIsotope.js","./src/components/Split/index.jsx","./src/config/particle-config.js","./src/layouts/Dark.jsx","./src/pages/demos/demos.jsx","./src/pages/index.jsx"]} \ No newline at end of file diff --git a/.next/static/webpack/483e2ab146d7afcb.webpack.hot-update.json b/.next/static/webpack/483e2ab146d7afcb.webpack.hot-update.json new file mode 100644 index 0000000..da3cf80 --- /dev/null +++ b/.next/static/webpack/483e2ab146d7afcb.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["pages/_app","webpack"],"r":[],"m":[]} \ No newline at end of file diff --git a/.next/static/webpack/505f5fcbf6bfc6f2.webpack.hot-update.json b/.next/static/webpack/505f5fcbf6bfc6f2.webpack.hot-update.json new file mode 100644 index 0000000..10c41d6 --- /dev/null +++ b/.next/static/webpack/505f5fcbf6bfc6f2.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["pages/index","pages/about","webpack"],"r":[],"m":[]} \ No newline at end of file diff --git a/.next/static/webpack/5874610de2b600a7.webpack.hot-update.json b/.next/static/webpack/5874610de2b600a7.webpack.hot-update.json new file mode 100644 index 0000000..3823c4c --- /dev/null +++ b/.next/static/webpack/5874610de2b600a7.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["webpack"],"r":[],"m":[]} \ No newline at end of file diff --git a/.next/static/webpack/6462c7a69105e22a.webpack.hot-update.json b/.next/static/webpack/6462c7a69105e22a.webpack.hot-update.json new file mode 100644 index 0000000..725a309 --- /dev/null +++ b/.next/static/webpack/6462c7a69105e22a.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["pages/contact/contact-light","webpack"],"r":["pages/index"],"m":["./node_modules/dom7/dom7.esm.js","./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/swiper/modules/effect-fade/effect-fade.min.css","./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/swiper/modules/navigation/navigation.min.css","./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/swiper/modules/pagination/pagination.min.css","./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/swiper/swiper.min.css","./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2F&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cindex.jsx!","./node_modules/ssr-window/ssr-window.esm.js","./node_modules/styled-jsx/dist/style.js","./node_modules/styled-jsx/style.js","./node_modules/swiper/core/breakpoints/getBreakpoint.js","./node_modules/swiper/core/breakpoints/index.js","./node_modules/swiper/core/breakpoints/setBreakpoint.js","./node_modules/swiper/core/check-overflow/index.js","./node_modules/swiper/core/classes/addClasses.js","./node_modules/swiper/core/classes/index.js","./node_modules/swiper/core/classes/removeClasses.js","./node_modules/swiper/core/core.js","./node_modules/swiper/core/defaults.js","./node_modules/swiper/core/events-emitter.js","./node_modules/swiper/core/events/index.js","./node_modules/swiper/core/events/onClick.js","./node_modules/swiper/core/events/onResize.js","./node_modules/swiper/core/events/onScroll.js","./node_modules/swiper/core/events/onTouchEnd.js","./node_modules/swiper/core/events/onTouchMove.js","./node_modules/swiper/core/events/onTouchStart.js","./node_modules/swiper/core/grab-cursor/index.js","./node_modules/swiper/core/grab-cursor/setGrabCursor.js","./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","./node_modules/swiper/core/images/index.js","./node_modules/swiper/core/images/loadImage.js","./node_modules/swiper/core/images/preloadImages.js","./node_modules/swiper/core/loop/index.js","./node_modules/swiper/core/loop/loopCreate.js","./node_modules/swiper/core/loop/loopDestroy.js","./node_modules/swiper/core/loop/loopFix.js","./node_modules/swiper/core/moduleExtendParams.js","./node_modules/swiper/core/modules/observer/observer.js","./node_modules/swiper/core/modules/resize/resize.js","./node_modules/swiper/core/slide/index.js","./node_modules/swiper/core/slide/slideNext.js","./node_modules/swiper/core/slide/slidePrev.js","./node_modules/swiper/core/slide/slideReset.js","./node_modules/swiper/core/slide/slideTo.js","./node_modules/swiper/core/slide/slideToClickedSlide.js","./node_modules/swiper/core/slide/slideToClosest.js","./node_modules/swiper/core/slide/slideToLoop.js","./node_modules/swiper/core/transition/index.js","./node_modules/swiper/core/transition/setTransition.js","./node_modules/swiper/core/transition/transitionEmit.js","./node_modules/swiper/core/transition/transitionEnd.js","./node_modules/swiper/core/transition/transitionStart.js","./node_modules/swiper/core/translate/getTranslate.js","./node_modules/swiper/core/translate/index.js","./node_modules/swiper/core/translate/maxTranslate.js","./node_modules/swiper/core/translate/minTranslate.js","./node_modules/swiper/core/translate/setTranslate.js","./node_modules/swiper/core/translate/translateTo.js","./node_modules/swiper/core/update/index.js","./node_modules/swiper/core/update/updateActiveIndex.js","./node_modules/swiper/core/update/updateAutoHeight.js","./node_modules/swiper/core/update/updateClickedSlide.js","./node_modules/swiper/core/update/updateProgress.js","./node_modules/swiper/core/update/updateSize.js","./node_modules/swiper/core/update/updateSlides.js","./node_modules/swiper/core/update/updateSlidesClasses.js","./node_modules/swiper/core/update/updateSlidesOffset.js","./node_modules/swiper/core/update/updateSlidesProgress.js","./node_modules/swiper/modules/a11y/a11y.js","./node_modules/swiper/modules/autoplay/autoplay.js","./node_modules/swiper/modules/controller/controller.js","./node_modules/swiper/modules/effect-cards/effect-cards.js","./node_modules/swiper/modules/effect-coverflow/effect-coverflow.js","./node_modules/swiper/modules/effect-creative/effect-creative.js","./node_modules/swiper/modules/effect-cube/effect-cube.js","./node_modules/swiper/modules/effect-fade/effect-fade.js","./node_modules/swiper/modules/effect-fade/effect-fade.min.css","./node_modules/swiper/modules/effect-flip/effect-flip.js","./node_modules/swiper/modules/free-mode/free-mode.js","./node_modules/swiper/modules/grid/grid.js","./node_modules/swiper/modules/hash-navigation/hash-navigation.js","./node_modules/swiper/modules/history/history.js","./node_modules/swiper/modules/keyboard/keyboard.js","./node_modules/swiper/modules/lazy/lazy.js","./node_modules/swiper/modules/manipulation/manipulation.js","./node_modules/swiper/modules/manipulation/methods/addSlide.js","./node_modules/swiper/modules/manipulation/methods/appendSlide.js","./node_modules/swiper/modules/manipulation/methods/prependSlide.js","./node_modules/swiper/modules/manipulation/methods/removeAllSlides.js","./node_modules/swiper/modules/manipulation/methods/removeSlide.js","./node_modules/swiper/modules/mousewheel/mousewheel.js","./node_modules/swiper/modules/navigation/navigation.js","./node_modules/swiper/modules/navigation/navigation.min.css","./node_modules/swiper/modules/pagination/pagination.js","./node_modules/swiper/modules/pagination/pagination.min.css","./node_modules/swiper/modules/parallax/parallax.js","./node_modules/swiper/modules/scrollbar/scrollbar.js","./node_modules/swiper/modules/thumbs/thumbs.js","./node_modules/swiper/modules/virtual/virtual.js","./node_modules/swiper/modules/zoom/zoom.js","./node_modules/swiper/react/get-changed-params.js","./node_modules/swiper/react/get-children.js","./node_modules/swiper/react/get-params.js","./node_modules/swiper/react/init-swiper.js","./node_modules/swiper/react/loop.js","./node_modules/swiper/react/params-list.js","./node_modules/swiper/react/swiper-react.js","./node_modules/swiper/react/swiper-slide.js","./node_modules/swiper/react/swiper.js","./node_modules/swiper/react/update-swiper.js","./node_modules/swiper/react/use-isomorphic-layout-effect.js","./node_modules/swiper/react/utils.js","./node_modules/swiper/react/virtual.js","./node_modules/swiper/shared/classes-to-selector.js","./node_modules/swiper/shared/create-element-if-not-defined.js","./node_modules/swiper/shared/create-shadow.js","./node_modules/swiper/shared/dom.js","./node_modules/swiper/shared/effect-init.js","./node_modules/swiper/shared/effect-target.js","./node_modules/swiper/shared/effect-virtual-transition-end.js","./node_modules/swiper/shared/get-browser.js","./node_modules/swiper/shared/get-device.js","./node_modules/swiper/shared/get-support.js","./node_modules/swiper/shared/utils.js","./node_modules/swiper/swiper.esm.js","./node_modules/swiper/swiper.min.css","./src/common/initIsotope.js","./src/common/removeSlashpagination.js","./src/components/About-us3/about-us3.jsx","./src/components/Full-testimonials/full-testimonials.jsx","./src/components/Intro4/intro4.jsx","./src/components/Minimal-Area2/minimal-area2.jsx","./src/components/Services3/services3.jsx","./src/components/Works3/works3.jsx","./src/components/blogs/Blogs4/blogs4.jsx","./src/data/sections/about-us3.json","./src/data/sections/works.json","./src/layouts/Dark.jsx","./src/pages/demos/demos.jsx","./src/pages/index.jsx"]} \ No newline at end of file diff --git a/.next/static/webpack/69b0909539c40de9.webpack.hot-update.json b/.next/static/webpack/69b0909539c40de9.webpack.hot-update.json new file mode 100644 index 0000000..10c41d6 --- /dev/null +++ b/.next/static/webpack/69b0909539c40de9.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["pages/index","pages/about","webpack"],"r":[],"m":[]} \ No newline at end of file diff --git a/.next/static/webpack/6d4205e34873ba67.webpack.hot-update.json b/.next/static/webpack/6d4205e34873ba67.webpack.hot-update.json new file mode 100644 index 0000000..10c41d6 --- /dev/null +++ b/.next/static/webpack/6d4205e34873ba67.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["pages/index","pages/about","webpack"],"r":[],"m":[]} \ No newline at end of file diff --git a/.next/static/webpack/7330e17b5d62bf2b.webpack.hot-update.json b/.next/static/webpack/7330e17b5d62bf2b.webpack.hot-update.json new file mode 100644 index 0000000..28942d3 --- /dev/null +++ b/.next/static/webpack/7330e17b5d62bf2b.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["webpack"],"r":["pages/blog-details/blog-details-4"],"m":["./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","./node_modules/deepmerge/dist/es.js","./node_modules/formik/dist/formik.esm.js","./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","./node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.development.js","./node_modules/hoist-non-react-statics/node_modules/react-is/index.js","./node_modules/lodash-es/_DataView.js","./node_modules/lodash-es/_Hash.js","./node_modules/lodash-es/_ListCache.js","./node_modules/lodash-es/_Map.js","./node_modules/lodash-es/_MapCache.js","./node_modules/lodash-es/_Promise.js","./node_modules/lodash-es/_Set.js","./node_modules/lodash-es/_Stack.js","./node_modules/lodash-es/_Symbol.js","./node_modules/lodash-es/_Uint8Array.js","./node_modules/lodash-es/_WeakMap.js","./node_modules/lodash-es/_arrayEach.js","./node_modules/lodash-es/_arrayFilter.js","./node_modules/lodash-es/_arrayLikeKeys.js","./node_modules/lodash-es/_arrayMap.js","./node_modules/lodash-es/_arrayPush.js","./node_modules/lodash-es/_assignValue.js","./node_modules/lodash-es/_assocIndexOf.js","./node_modules/lodash-es/_baseAssign.js","./node_modules/lodash-es/_baseAssignIn.js","./node_modules/lodash-es/_baseAssignValue.js","./node_modules/lodash-es/_baseClone.js","./node_modules/lodash-es/_baseCreate.js","./node_modules/lodash-es/_baseGetAllKeys.js","./node_modules/lodash-es/_baseGetTag.js","./node_modules/lodash-es/_baseIsArguments.js","./node_modules/lodash-es/_baseIsMap.js","./node_modules/lodash-es/_baseIsNative.js","./node_modules/lodash-es/_baseIsSet.js","./node_modules/lodash-es/_baseIsTypedArray.js","./node_modules/lodash-es/_baseKeys.js","./node_modules/lodash-es/_baseKeysIn.js","./node_modules/lodash-es/_baseTimes.js","./node_modules/lodash-es/_baseToString.js","./node_modules/lodash-es/_baseUnary.js","./node_modules/lodash-es/_cloneArrayBuffer.js","./node_modules/lodash-es/_cloneBuffer.js","./node_modules/lodash-es/_cloneDataView.js","./node_modules/lodash-es/_cloneRegExp.js","./node_modules/lodash-es/_cloneSymbol.js","./node_modules/lodash-es/_cloneTypedArray.js","./node_modules/lodash-es/_copyArray.js","./node_modules/lodash-es/_copyObject.js","./node_modules/lodash-es/_copySymbols.js","./node_modules/lodash-es/_copySymbolsIn.js","./node_modules/lodash-es/_coreJsData.js","./node_modules/lodash-es/_defineProperty.js","./node_modules/lodash-es/_freeGlobal.js","./node_modules/lodash-es/_getAllKeys.js","./node_modules/lodash-es/_getAllKeysIn.js","./node_modules/lodash-es/_getMapData.js","./node_modules/lodash-es/_getNative.js","./node_modules/lodash-es/_getPrototype.js","./node_modules/lodash-es/_getRawTag.js","./node_modules/lodash-es/_getSymbols.js","./node_modules/lodash-es/_getSymbolsIn.js","./node_modules/lodash-es/_getTag.js","./node_modules/lodash-es/_getValue.js","./node_modules/lodash-es/_hashClear.js","./node_modules/lodash-es/_hashDelete.js","./node_modules/lodash-es/_hashGet.js","./node_modules/lodash-es/_hashHas.js","./node_modules/lodash-es/_hashSet.js","./node_modules/lodash-es/_initCloneArray.js","./node_modules/lodash-es/_initCloneByTag.js","./node_modules/lodash-es/_initCloneObject.js","./node_modules/lodash-es/_isIndex.js","./node_modules/lodash-es/_isKeyable.js","./node_modules/lodash-es/_isMasked.js","./node_modules/lodash-es/_isPrototype.js","./node_modules/lodash-es/_listCacheClear.js","./node_modules/lodash-es/_listCacheDelete.js","./node_modules/lodash-es/_listCacheGet.js","./node_modules/lodash-es/_listCacheHas.js","./node_modules/lodash-es/_listCacheSet.js","./node_modules/lodash-es/_mapCacheClear.js","./node_modules/lodash-es/_mapCacheDelete.js","./node_modules/lodash-es/_mapCacheGet.js","./node_modules/lodash-es/_mapCacheHas.js","./node_modules/lodash-es/_mapCacheSet.js","./node_modules/lodash-es/_memoizeCapped.js","./node_modules/lodash-es/_nativeCreate.js","./node_modules/lodash-es/_nativeKeys.js","./node_modules/lodash-es/_nativeKeysIn.js","./node_modules/lodash-es/_nodeUtil.js","./node_modules/lodash-es/_objectToString.js","./node_modules/lodash-es/_overArg.js","./node_modules/lodash-es/_root.js","./node_modules/lodash-es/_stackClear.js","./node_modules/lodash-es/_stackDelete.js","./node_modules/lodash-es/_stackGet.js","./node_modules/lodash-es/_stackHas.js","./node_modules/lodash-es/_stackSet.js","./node_modules/lodash-es/_stringToPath.js","./node_modules/lodash-es/_toKey.js","./node_modules/lodash-es/_toSource.js","./node_modules/lodash-es/clone.js","./node_modules/lodash-es/cloneDeep.js","./node_modules/lodash-es/eq.js","./node_modules/lodash-es/isArguments.js","./node_modules/lodash-es/isArray.js","./node_modules/lodash-es/isArrayLike.js","./node_modules/lodash-es/isBuffer.js","./node_modules/lodash-es/isFunction.js","./node_modules/lodash-es/isLength.js","./node_modules/lodash-es/isMap.js","./node_modules/lodash-es/isObject.js","./node_modules/lodash-es/isObjectLike.js","./node_modules/lodash-es/isPlainObject.js","./node_modules/lodash-es/isSet.js","./node_modules/lodash-es/isSymbol.js","./node_modules/lodash-es/isTypedArray.js","./node_modules/lodash-es/keys.js","./node_modules/lodash-es/keysIn.js","./node_modules/lodash-es/memoize.js","./node_modules/lodash-es/stubArray.js","./node_modules/lodash-es/stubFalse.js","./node_modules/lodash-es/toPath.js","./node_modules/lodash-es/toString.js","./node_modules/lodash.throttle/index.js","./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2Fblog-details%2Fblog-details-4&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cblog-details%5Cblog-details-4.jsx!","./node_modules/react-fast-compare/index.js","./node_modules/react-scroll/modules/components/Button.js","./node_modules/react-scroll/modules/components/Element.js","./node_modules/react-scroll/modules/components/Link.js","./node_modules/react-scroll/modules/index.js","./node_modules/react-scroll/modules/mixins/Helpers.js","./node_modules/react-scroll/modules/mixins/animate-scroll.js","./node_modules/react-scroll/modules/mixins/cancel-events.js","./node_modules/react-scroll/modules/mixins/passive-event-listeners.js","./node_modules/react-scroll/modules/mixins/scroll-element.js","./node_modules/react-scroll/modules/mixins/scroll-events.js","./node_modules/react-scroll/modules/mixins/scroll-hash.js","./node_modules/react-scroll/modules/mixins/scroll-link.js","./node_modules/react-scroll/modules/mixins/scroll-spy.js","./node_modules/react-scroll/modules/mixins/scroller.js","./node_modules/react-scroll/modules/mixins/smooth.js","./node_modules/react-scroll/modules/mixins/utils.js","./node_modules/tiny-warning/dist/tiny-warning.esm.js","./src/components/Blog-details/blog-details.jsx","./src/components/Page-header/page-header.jsx","./src/data/blog3.json","./src/pages/blog-details/blog-details-4.jsx"]} \ No newline at end of file diff --git a/.next/static/webpack/7523881d416ea968.webpack.hot-update.json b/.next/static/webpack/7523881d416ea968.webpack.hot-update.json new file mode 100644 index 0000000..10c41d6 --- /dev/null +++ b/.next/static/webpack/7523881d416ea968.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["pages/index","pages/about","webpack"],"r":[],"m":[]} \ No newline at end of file diff --git a/.next/static/webpack/865ba9bea3e8e879.webpack.hot-update.json b/.next/static/webpack/865ba9bea3e8e879.webpack.hot-update.json new file mode 100644 index 0000000..10c41d6 --- /dev/null +++ b/.next/static/webpack/865ba9bea3e8e879.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["pages/index","pages/about","webpack"],"r":[],"m":[]} \ No newline at end of file diff --git a/.next/static/webpack/8ba321f476cc3ed9.webpack.hot-update.json b/.next/static/webpack/8ba321f476cc3ed9.webpack.hot-update.json new file mode 100644 index 0000000..3823c4c --- /dev/null +++ b/.next/static/webpack/8ba321f476cc3ed9.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["webpack"],"r":[],"m":[]} \ No newline at end of file diff --git a/.next/static/webpack/942186135cc3656b.webpack.hot-update.json b/.next/static/webpack/942186135cc3656b.webpack.hot-update.json new file mode 100644 index 0000000..10c41d6 --- /dev/null +++ b/.next/static/webpack/942186135cc3656b.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["pages/index","pages/about","webpack"],"r":[],"m":[]} \ No newline at end of file diff --git a/.next/static/webpack/976feb7437cdc842.webpack.hot-update.json b/.next/static/webpack/976feb7437cdc842.webpack.hot-update.json new file mode 100644 index 0000000..10c41d6 --- /dev/null +++ b/.next/static/webpack/976feb7437cdc842.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["pages/index","pages/about","webpack"],"r":[],"m":[]} \ No newline at end of file diff --git a/.next/static/webpack/97d1c9890e848e76.webpack.hot-update.json b/.next/static/webpack/97d1c9890e848e76.webpack.hot-update.json new file mode 100644 index 0000000..7824eec --- /dev/null +++ b/.next/static/webpack/97d1c9890e848e76.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["webpack"],"r":["pages/contact/contact-light"],"m":["./node_modules/fast-deep-equal/react.js","./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2Fcontact%2Fcontact-light&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Ccontact%5Ccontact-light.jsx!","./node_modules/react-tsparticles/cjs/particles.js","./node_modules/react-tsparticles/index.js","./node_modules/tsparticles/Core/Canvas.js","./node_modules/tsparticles/Core/Container.js","./node_modules/tsparticles/Core/ExternalInteractorBase.js","./node_modules/tsparticles/Core/FrameManager.js","./node_modules/tsparticles/Core/InteractionManager.js","./node_modules/tsparticles/Core/Interfaces/Colors.js","./node_modules/tsparticles/Core/Interfaces/Gradients.js","./node_modules/tsparticles/Core/Interfaces/IAttract.js","./node_modules/tsparticles/Core/Interfaces/IBounds.js","./node_modules/tsparticles/Core/Interfaces/IBubble.js","./node_modules/tsparticles/Core/Interfaces/IBubbleParticleData.js","./node_modules/tsparticles/Core/Interfaces/ICircleBouncer.js","./node_modules/tsparticles/Core/Interfaces/IContainerInteractivity.js","./node_modules/tsparticles/Core/Interfaces/IContainerPlugin.js","./node_modules/tsparticles/Core/Interfaces/ICoordinates.js","./node_modules/tsparticles/Core/Interfaces/IDelta.js","./node_modules/tsparticles/Core/Interfaces/IDimension.js","./node_modules/tsparticles/Core/Interfaces/IDistance.js","./node_modules/tsparticles/Core/Interfaces/IExternalInteractor.js","./node_modules/tsparticles/Core/Interfaces/IInteractor.js","./node_modules/tsparticles/Core/Interfaces/IMouseData.js","./node_modules/tsparticles/Core/Interfaces/IMovePathGenerator.js","./node_modules/tsparticles/Core/Interfaces/IParticle.js","./node_modules/tsparticles/Core/Interfaces/IParticleGradientAnimation.js","./node_modules/tsparticles/Core/Interfaces/IParticleGradientColorAnimation.js","./node_modules/tsparticles/Core/Interfaces/IParticleHslAnimation.js","./node_modules/tsparticles/Core/Interfaces/IParticleLife.js","./node_modules/tsparticles/Core/Interfaces/IParticleLoops.js","./node_modules/tsparticles/Core/Interfaces/IParticleRetinaProps.js","./node_modules/tsparticles/Core/Interfaces/IParticleSpin.js","./node_modules/tsparticles/Core/Interfaces/IParticleUpdater.js","./node_modules/tsparticles/Core/Interfaces/IParticleValueAnimation.js","./node_modules/tsparticles/Core/Interfaces/IParticlesInteractor.js","./node_modules/tsparticles/Core/Interfaces/IPlugin.js","./node_modules/tsparticles/Core/Interfaces/IRangeValue.js","./node_modules/tsparticles/Core/Interfaces/IRectSideResult.js","./node_modules/tsparticles/Core/Interfaces/IRepulse.js","./node_modules/tsparticles/Core/Interfaces/IShapeDrawer.js","./node_modules/tsparticles/Core/Interfaces/IShapeValues.js","./node_modules/tsparticles/Core/Interfaces/index.js","./node_modules/tsparticles/Core/Loader.js","./node_modules/tsparticles/Core/Particle.js","./node_modules/tsparticles/Core/Particle/Mover.js","./node_modules/tsparticles/Core/Particle/Vector.js","./node_modules/tsparticles/Core/Particle/Vector3d.js","./node_modules/tsparticles/Core/Particles.js","./node_modules/tsparticles/Core/ParticlesInteractorBase.js","./node_modules/tsparticles/Core/Retina.js","./node_modules/tsparticles/Enums/AnimationStatus.js","./node_modules/tsparticles/Enums/Directions/MoveDirection.js","./node_modules/tsparticles/Enums/Directions/OutModeDirection.js","./node_modules/tsparticles/Enums/Directions/RotateDirection.js","./node_modules/tsparticles/Enums/Directions/TiltDirection.js","./node_modules/tsparticles/Enums/Directions/index.js","./node_modules/tsparticles/Enums/InteractivityDetect.js","./node_modules/tsparticles/Enums/Modes/ClickMode.js","./node_modules/tsparticles/Enums/Modes/CollisionMode.js","./node_modules/tsparticles/Enums/Modes/DestroyMode.js","./node_modules/tsparticles/Enums/Modes/DivMode.js","./node_modules/tsparticles/Enums/Modes/HoverMode.js","./node_modules/tsparticles/Enums/Modes/OutMode.js","./node_modules/tsparticles/Enums/Modes/ResponsiveMode.js","./node_modules/tsparticles/Enums/Modes/RollMode.js","./node_modules/tsparticles/Enums/Modes/SizeMode.js","./node_modules/tsparticles/Enums/Modes/ThemeMode.js","./node_modules/tsparticles/Enums/Modes/index.js","./node_modules/tsparticles/Enums/Types/AlterType.js","./node_modules/tsparticles/Enums/Types/DestroyType.js","./node_modules/tsparticles/Enums/Types/DivType.js","./node_modules/tsparticles/Enums/Types/EasingType.js","./node_modules/tsparticles/Enums/Types/GradientType.js","./node_modules/tsparticles/Enums/Types/InteractorType.js","./node_modules/tsparticles/Enums/Types/OrbitType.js","./node_modules/tsparticles/Enums/Types/ShapeType.js","./node_modules/tsparticles/Enums/Types/StartValueType.js","./node_modules/tsparticles/Enums/Types/index.js","./node_modules/tsparticles/Enums/index.js","./node_modules/tsparticles/Interactions/External/Attract/Attractor.js","./node_modules/tsparticles/Interactions/External/Attract/index.js","./node_modules/tsparticles/Interactions/External/Bounce/Bouncer.js","./node_modules/tsparticles/Interactions/External/Bounce/index.js","./node_modules/tsparticles/Interactions/External/Bubble/Bubbler.js","./node_modules/tsparticles/Interactions/External/Bubble/ProcessBubbleType.js","./node_modules/tsparticles/Interactions/External/Bubble/index.js","./node_modules/tsparticles/Interactions/External/Connect/Connector.js","./node_modules/tsparticles/Interactions/External/Connect/index.js","./node_modules/tsparticles/Interactions/External/Grab/Grabber.js","./node_modules/tsparticles/Interactions/External/Grab/index.js","./node_modules/tsparticles/Interactions/External/Repulse/Repulser.js","./node_modules/tsparticles/Interactions/External/Repulse/index.js","./node_modules/tsparticles/Interactions/External/Trail/TrailMaker.js","./node_modules/tsparticles/Interactions/External/Trail/index.js","./node_modules/tsparticles/Interactions/Particles/Attract/Attractor.js","./node_modules/tsparticles/Interactions/Particles/Attract/index.js","./node_modules/tsparticles/Interactions/Particles/Collisions/Collider.js","./node_modules/tsparticles/Interactions/Particles/Collisions/index.js","./node_modules/tsparticles/Interactions/Particles/Links/LinkInstance.js","./node_modules/tsparticles/Interactions/Particles/Links/Linker.js","./node_modules/tsparticles/Interactions/Particles/Links/index.js","./node_modules/tsparticles/Interactions/Particles/Links/plugin.js","./node_modules/tsparticles/Options/Classes/AnimatableColor.js","./node_modules/tsparticles/Options/Classes/AnimatableGradient.js","./node_modules/tsparticles/Options/Classes/AnimationOptions.js","./node_modules/tsparticles/Options/Classes/Background/Background.js","./node_modules/tsparticles/Options/Classes/BackgroundMask/BackgroundMask.js","./node_modules/tsparticles/Options/Classes/BackgroundMask/BackgroundMaskCover.js","./node_modules/tsparticles/Options/Classes/ColorAnimation.js","./node_modules/tsparticles/Options/Classes/FullScreen/FullScreen.js","./node_modules/tsparticles/Options/Classes/HslAnimation.js","./node_modules/tsparticles/Options/Classes/Interactivity/Events/ClickEvent.js","./node_modules/tsparticles/Options/Classes/Interactivity/Events/DivEvent.js","./node_modules/tsparticles/Options/Classes/Interactivity/Events/Events.js","./node_modules/tsparticles/Options/Classes/Interactivity/Events/HoverEvent.js","./node_modules/tsparticles/Options/Classes/Interactivity/Events/Parallax.js","./node_modules/tsparticles/Options/Classes/Interactivity/Interactivity.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Attract.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Bounce.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Bubble.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/BubbleBase.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/BubbleDiv.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Connect.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/ConnectLinks.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Grab.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/GrabLinks.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Light.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/LightArea.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/LightGradient.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/LightShadow.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Modes.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Push.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Remove.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Repulse.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/RepulseBase.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/RepulseDiv.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Slow.js","./node_modules/tsparticles/Options/Classes/Interactivity/Modes/Trail.js","./node_modules/tsparticles/Options/Classes/ManualParticle.js","./node_modules/tsparticles/Options/Classes/Motion/Motion.js","./node_modules/tsparticles/Options/Classes/Motion/MotionReduce.js","./node_modules/tsparticles/Options/Classes/Options.js","./node_modules/tsparticles/Options/Classes/OptionsColor.js","./node_modules/tsparticles/Options/Classes/Particles/Bounce/Bounce.js","./node_modules/tsparticles/Options/Classes/Particles/Bounce/BounceFactor.js","./node_modules/tsparticles/Options/Classes/Particles/Collisions/Collisions.js","./node_modules/tsparticles/Options/Classes/Particles/Collisions/CollisionsOverlap.js","./node_modules/tsparticles/Options/Classes/Particles/Destroy/Destroy.js","./node_modules/tsparticles/Options/Classes/Particles/Destroy/Split.js","./node_modules/tsparticles/Options/Classes/Particles/Destroy/SplitFactor.js","./node_modules/tsparticles/Options/Classes/Particles/Destroy/SplitRate.js","./node_modules/tsparticles/Options/Classes/Particles/Life/Life.js","./node_modules/tsparticles/Options/Classes/Particles/Life/LifeDelay.js","./node_modules/tsparticles/Options/Classes/Particles/Life/LifeDuration.js","./node_modules/tsparticles/Options/Classes/Particles/Links/Links.js","./node_modules/tsparticles/Options/Classes/Particles/Links/LinksShadow.js","./node_modules/tsparticles/Options/Classes/Particles/Links/LinksTriangle.js","./node_modules/tsparticles/Options/Classes/Particles/Move/Attract.js","./node_modules/tsparticles/Options/Classes/Particles/Move/Move.js","./node_modules/tsparticles/Options/Classes/Particles/Move/MoveAngle.js","./node_modules/tsparticles/Options/Classes/Particles/Move/MoveGravity.js","./node_modules/tsparticles/Options/Classes/Particles/Move/OutModes.js","./node_modules/tsparticles/Options/Classes/Particles/Move/Path/Path.js","./node_modules/tsparticles/Options/Classes/Particles/Move/Path/PathDelay.js","./node_modules/tsparticles/Options/Classes/Particles/Move/Spin.js","./node_modules/tsparticles/Options/Classes/Particles/Move/Trail.js","./node_modules/tsparticles/Options/Classes/Particles/Number/Density.js","./node_modules/tsparticles/Options/Classes/Particles/Number/ParticlesNumber.js","./node_modules/tsparticles/Options/Classes/Particles/Opacity/Opacity.js","./node_modules/tsparticles/Options/Classes/Particles/Opacity/OpacityAnimation.js","./node_modules/tsparticles/Options/Classes/Particles/Orbit/Orbit.js","./node_modules/tsparticles/Options/Classes/Particles/Orbit/OrbitRotation.js","./node_modules/tsparticles/Options/Classes/Particles/ParticlesOptions.js","./node_modules/tsparticles/Options/Classes/Particles/Repulse/Repulse.js","./node_modules/tsparticles/Options/Classes/Particles/Roll/Roll.js","./node_modules/tsparticles/Options/Classes/Particles/Roll/RollLight.js","./node_modules/tsparticles/Options/Classes/Particles/Rotate/Rotate.js","./node_modules/tsparticles/Options/Classes/Particles/Rotate/RotateAnimation.js","./node_modules/tsparticles/Options/Classes/Particles/Shadow.js","./node_modules/tsparticles/Options/Classes/Particles/Shape/Shape.js","./node_modules/tsparticles/Options/Classes/Particles/Size/Size.js","./node_modules/tsparticles/Options/Classes/Particles/Size/SizeAnimation.js","./node_modules/tsparticles/Options/Classes/Particles/Stroke.js","./node_modules/tsparticles/Options/Classes/Particles/Tilt/Tilt.js","./node_modules/tsparticles/Options/Classes/Particles/Tilt/TiltAnimation.js","./node_modules/tsparticles/Options/Classes/Particles/Twinkle/Twinkle.js","./node_modules/tsparticles/Options/Classes/Particles/Twinkle/TwinkleValues.js","./node_modules/tsparticles/Options/Classes/Particles/Wobble/Wobble.js","./node_modules/tsparticles/Options/Classes/Particles/ZIndex/ZIndex.js","./node_modules/tsparticles/Options/Classes/Random.js","./node_modules/tsparticles/Options/Classes/Responsive.js","./node_modules/tsparticles/Options/Classes/Theme/Theme.js","./node_modules/tsparticles/Options/Classes/Theme/ThemeDefault.js","./node_modules/tsparticles/Options/Classes/ValueWithRandom.js","./node_modules/tsparticles/Plugins/Absorbers/AbsorberInstance.js","./node_modules/tsparticles/Plugins/Absorbers/Absorbers.js","./node_modules/tsparticles/Plugins/Absorbers/Enums/AbsorberClickMode.js","./node_modules/tsparticles/Plugins/Absorbers/Enums/index.js","./node_modules/tsparticles/Plugins/Absorbers/Options/Classes/Absorber.js","./node_modules/tsparticles/Plugins/Absorbers/Options/Classes/AbsorberSize.js","./node_modules/tsparticles/Plugins/Absorbers/Options/Classes/AbsorberSizeLimit.js","./node_modules/tsparticles/Plugins/Absorbers/plugin.js","./node_modules/tsparticles/Plugins/Emitters/EmitterInstance.js","./node_modules/tsparticles/Plugins/Emitters/Emitters.js","./node_modules/tsparticles/Plugins/Emitters/EmittersMain.js","./node_modules/tsparticles/Plugins/Emitters/Enums/EmitterClickMode.js","./node_modules/tsparticles/Plugins/Emitters/Enums/EmitterShapeType.js","./node_modules/tsparticles/Plugins/Emitters/Enums/index.js","./node_modules/tsparticles/Plugins/Emitters/Options/Classes/Emitter.js","./node_modules/tsparticles/Plugins/Emitters/Options/Classes/EmitterLife.js","./node_modules/tsparticles/Plugins/Emitters/Options/Classes/EmitterRate.js","./node_modules/tsparticles/Plugins/Emitters/Options/Classes/EmitterSize.js","./node_modules/tsparticles/Plugins/Emitters/ShapeManager.js","./node_modules/tsparticles/Plugins/Emitters/Shapes/Circle/CircleShape.js","./node_modules/tsparticles/Plugins/Emitters/Shapes/Square/SquareShape.js","./node_modules/tsparticles/Plugins/Emitters/plugin.js","./node_modules/tsparticles/Plugins/PolygonMask/Enums/InlineArrangement.js","./node_modules/tsparticles/Plugins/PolygonMask/Enums/MoveType.js","./node_modules/tsparticles/Plugins/PolygonMask/Enums/Type.js","./node_modules/tsparticles/Plugins/PolygonMask/Enums/index.js","./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/Draw.js","./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/DrawStroke.js","./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/Inline.js","./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/LocalSvg.js","./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/Move.js","./node_modules/tsparticles/Plugins/PolygonMask/Options/Classes/PolygonMask.js","./node_modules/tsparticles/Plugins/PolygonMask/PolygonMaskInstance.js","./node_modules/tsparticles/Plugins/PolygonMask/pathseg.js","./node_modules/tsparticles/Plugins/PolygonMask/plugin.js","./node_modules/tsparticles/Plugins/PolygonMask/utils.js","./node_modules/tsparticles/Shapes/Circle/CircleDrawer.js","./node_modules/tsparticles/Shapes/Circle/index.js","./node_modules/tsparticles/Shapes/Image/ImageDrawer.js","./node_modules/tsparticles/Shapes/Image/Utils.js","./node_modules/tsparticles/Shapes/Image/index.js","./node_modules/tsparticles/Shapes/Line/LineDrawer.js","./node_modules/tsparticles/Shapes/Line/index.js","./node_modules/tsparticles/Shapes/Polygon/PolygonDrawer.js","./node_modules/tsparticles/Shapes/Polygon/PolygonDrawerBase.js","./node_modules/tsparticles/Shapes/Polygon/TriangleDrawer.js","./node_modules/tsparticles/Shapes/Polygon/index.js","./node_modules/tsparticles/Shapes/Square/SquareDrawer.js","./node_modules/tsparticles/Shapes/Square/index.js","./node_modules/tsparticles/Shapes/Star/StarDrawer.js","./node_modules/tsparticles/Shapes/Star/index.js","./node_modules/tsparticles/Shapes/Text/TextDrawer.js","./node_modules/tsparticles/Shapes/Text/index.js","./node_modules/tsparticles/Types/PathOptions.js","./node_modules/tsparticles/Types/RangeValue.js","./node_modules/tsparticles/Types/RecursivePartial.js","./node_modules/tsparticles/Types/ShapeData.js","./node_modules/tsparticles/Types/ShapeDrawerFunctions.js","./node_modules/tsparticles/Types/SingleOrMultiple.js","./node_modules/tsparticles/Types/index.js","./node_modules/tsparticles/Updaters/Angle/AngleUpdater.js","./node_modules/tsparticles/Updaters/Angle/index.js","./node_modules/tsparticles/Updaters/Color/ColorUpdater.js","./node_modules/tsparticles/Updaters/Color/index.js","./node_modules/tsparticles/Updaters/Life/LifeUpdater.js","./node_modules/tsparticles/Updaters/Life/index.js","./node_modules/tsparticles/Updaters/Opacity/OpacityUpdater.js","./node_modules/tsparticles/Updaters/Opacity/index.js","./node_modules/tsparticles/Updaters/OutModes/OutOfCanvasUpdater.js","./node_modules/tsparticles/Updaters/OutModes/Utils.js","./node_modules/tsparticles/Updaters/OutModes/index.js","./node_modules/tsparticles/Updaters/Roll/RollUpdater.js","./node_modules/tsparticles/Updaters/Roll/index.js","./node_modules/tsparticles/Updaters/Size/SizeUpdater.js","./node_modules/tsparticles/Updaters/Size/index.js","./node_modules/tsparticles/Updaters/StrokeColor/StrokeColorUpdater.js","./node_modules/tsparticles/Updaters/StrokeColor/index.js","./node_modules/tsparticles/Updaters/Tilt/TiltUpdater.js","./node_modules/tsparticles/Updaters/Tilt/index.js","./node_modules/tsparticles/Updaters/Wobble/WobbleUpdater.js","./node_modules/tsparticles/Updaters/Wobble/index.js","./node_modules/tsparticles/Utils/CanvasUtils.js","./node_modules/tsparticles/Utils/Circle.js","./node_modules/tsparticles/Utils/CircleWarp.js","./node_modules/tsparticles/Utils/ColorUtils.js","./node_modules/tsparticles/Utils/Constants.js","./node_modules/tsparticles/Utils/EventListeners.js","./node_modules/tsparticles/Utils/NumberUtils.js","./node_modules/tsparticles/Utils/Plugins.js","./node_modules/tsparticles/Utils/Point.js","./node_modules/tsparticles/Utils/QuadTree.js","./node_modules/tsparticles/Utils/Range.js","./node_modules/tsparticles/Utils/Rectangle.js","./node_modules/tsparticles/Utils/Utils.js","./node_modules/tsparticles/Utils/index.js","./node_modules/tsparticles/full.js","./node_modules/tsparticles/index.js","./node_modules/tsparticles/main.js","./node_modules/tsparticles/pjs.js","./node_modules/tsparticles/slim.js","./src/components/Contact-form/contact-form.jsx","./src/components/Contact-header/contact-header.jsx","./src/config/particle-config.js","./src/config/pr-s-black.js","./src/data/sections/contact-header.json","./src/data/sections/form-info.json","./src/pages/contact/contact-light.jsx"]} \ No newline at end of file diff --git a/.next/static/webpack/99e1201d5af809ef.webpack.hot-update.json b/.next/static/webpack/99e1201d5af809ef.webpack.hot-update.json new file mode 100644 index 0000000..af32317 --- /dev/null +++ b/.next/static/webpack/99e1201d5af809ef.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["pages/about","pages/index","webpack"],"r":[],"m":[]} \ No newline at end of file diff --git a/.next/static/webpack/9efc4064513bf841.webpack.hot-update.json b/.next/static/webpack/9efc4064513bf841.webpack.hot-update.json new file mode 100644 index 0000000..45437ff --- /dev/null +++ b/.next/static/webpack/9efc4064513bf841.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["pages/index","webpack"],"r":[],"m":[]} \ No newline at end of file diff --git a/.next/static/webpack/a3656d0b2ef2cb37.webpack.hot-update.json b/.next/static/webpack/a3656d0b2ef2cb37.webpack.hot-update.json new file mode 100644 index 0000000..3823c4c --- /dev/null +++ b/.next/static/webpack/a3656d0b2ef2cb37.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["webpack"],"r":[],"m":[]} \ No newline at end of file diff --git a/.next/static/webpack/adeed3a538806dce.webpack.hot-update.json b/.next/static/webpack/adeed3a538806dce.webpack.hot-update.json new file mode 100644 index 0000000..09f6150 --- /dev/null +++ b/.next/static/webpack/adeed3a538806dce.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["webpack"],"r":["pages/404"],"m":["./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2F404&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5C404.js!","./src/pages/404.js"]} \ No newline at end of file diff --git a/.next/static/webpack/be65fe127a28d26b.webpack.hot-update.json b/.next/static/webpack/be65fe127a28d26b.webpack.hot-update.json new file mode 100644 index 0000000..af32317 --- /dev/null +++ b/.next/static/webpack/be65fe127a28d26b.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["pages/about","pages/index","webpack"],"r":[],"m":[]} \ No newline at end of file diff --git a/.next/static/webpack/bed8cb474397671c.webpack.hot-update.json b/.next/static/webpack/bed8cb474397671c.webpack.hot-update.json new file mode 100644 index 0000000..ea662ff --- /dev/null +++ b/.next/static/webpack/bed8cb474397671c.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["webpack"],"r":["pages/about"],"m":["./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2Fabout&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cabout%5Cindex.jsx!","./src/common/cardMouseEffect.js","./src/common/thumparallax.js","./src/components/Minimal-Area/minimal-area.jsx","./src/pages/about/index.jsx"]} \ No newline at end of file diff --git a/.next/static/webpack/bf5abb6f7bfbabc3.webpack.hot-update.json b/.next/static/webpack/bf5abb6f7bfbabc3.webpack.hot-update.json new file mode 100644 index 0000000..5c1944a --- /dev/null +++ b/.next/static/webpack/bf5abb6f7bfbabc3.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["pages/about","pages/index","webpack"],"r":["pages/homepage/home2-light"],"m":["./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2Fhomepage%2Fhome2-light&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Chomepage%5Chome2-light.jsx!","./src/components/Intro2/intro2.jsx","./src/components/Portfolio/portfolio.jsx","./src/components/Team2/team2.jsx","./src/components/Video2/video2.jsx","./src/components/blogs/Blogs2/blogs2.jsx","./src/pages/homepage/home2-light.jsx"]} \ No newline at end of file diff --git a/.next/static/webpack/c2399be6206f0aba.webpack.hot-update.json b/.next/static/webpack/c2399be6206f0aba.webpack.hot-update.json new file mode 100644 index 0000000..af32317 --- /dev/null +++ b/.next/static/webpack/c2399be6206f0aba.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["pages/about","pages/index","webpack"],"r":[],"m":[]} \ No newline at end of file diff --git a/.next/static/webpack/c30e24cf1fcf0177.webpack.hot-update.json b/.next/static/webpack/c30e24cf1fcf0177.webpack.hot-update.json new file mode 100644 index 0000000..3823c4c --- /dev/null +++ b/.next/static/webpack/c30e24cf1fcf0177.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["webpack"],"r":[],"m":[]} \ No newline at end of file diff --git a/.next/static/webpack/d3a9ded394cefaae.webpack.hot-update.json b/.next/static/webpack/d3a9ded394cefaae.webpack.hot-update.json new file mode 100644 index 0000000..3823c4c --- /dev/null +++ b/.next/static/webpack/d3a9ded394cefaae.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["webpack"],"r":[],"m":[]} \ No newline at end of file diff --git a/.next/static/webpack/d71f4b3c4b9bed51.webpack.hot-update.json b/.next/static/webpack/d71f4b3c4b9bed51.webpack.hot-update.json new file mode 100644 index 0000000..3823c4c --- /dev/null +++ b/.next/static/webpack/d71f4b3c4b9bed51.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["webpack"],"r":[],"m":[]} \ No newline at end of file diff --git a/.next/static/webpack/d7ba70e7dde277fe.webpack.hot-update.json b/.next/static/webpack/d7ba70e7dde277fe.webpack.hot-update.json new file mode 100644 index 0000000..09f6150 --- /dev/null +++ b/.next/static/webpack/d7ba70e7dde277fe.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["webpack"],"r":["pages/404"],"m":["./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2F404&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5C404.js!","./src/pages/404.js"]} \ No newline at end of file diff --git a/.next/static/webpack/e3fcf932e8e10bcc.webpack.hot-update.json b/.next/static/webpack/e3fcf932e8e10bcc.webpack.hot-update.json new file mode 100644 index 0000000..3823c4c --- /dev/null +++ b/.next/static/webpack/e3fcf932e8e10bcc.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["webpack"],"r":[],"m":[]} \ No newline at end of file diff --git a/.next/static/webpack/e4173c3213e1a52a.webpack.hot-update.json b/.next/static/webpack/e4173c3213e1a52a.webpack.hot-update.json new file mode 100644 index 0000000..7d197ac --- /dev/null +++ b/.next/static/webpack/e4173c3213e1a52a.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["pages/contact/contact-light","webpack"],"r":["pages/blog-details/blog-details-1"],"m":["./node_modules/lodash.throttle/index.js","./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2Fblog-details%2Fblog-details-1&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cblog-details%5Cblog-details-1.jsx!","./node_modules/prop-types/checkPropTypes.js","./node_modules/prop-types/factoryWithTypeCheckers.js","./node_modules/prop-types/index.js","./node_modules/prop-types/lib/ReactPropTypesSecret.js","./node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js","./node_modules/prop-types/node_modules/react-is/index.js","./node_modules/react-scroll/modules/components/Button.js","./node_modules/react-scroll/modules/components/Element.js","./node_modules/react-scroll/modules/components/Link.js","./node_modules/react-scroll/modules/index.js","./node_modules/react-scroll/modules/mixins/Helpers.js","./node_modules/react-scroll/modules/mixins/animate-scroll.js","./node_modules/react-scroll/modules/mixins/cancel-events.js","./node_modules/react-scroll/modules/mixins/passive-event-listeners.js","./node_modules/react-scroll/modules/mixins/scroll-element.js","./node_modules/react-scroll/modules/mixins/scroll-events.js","./node_modules/react-scroll/modules/mixins/scroll-hash.js","./node_modules/react-scroll/modules/mixins/scroll-link.js","./node_modules/react-scroll/modules/mixins/scroll-spy.js","./node_modules/react-scroll/modules/mixins/scroller.js","./node_modules/react-scroll/modules/mixins/smooth.js","./node_modules/react-scroll/modules/mixins/utils.js","./src/components/Blog-details/blog-details.jsx","./src/components/Page-header/page-header.jsx","./src/data/blog3.json","./src/pages/blog-details/blog-details-1.jsx"]} \ No newline at end of file diff --git a/.next/static/webpack/ea74209d2be75825.webpack.hot-update.json b/.next/static/webpack/ea74209d2be75825.webpack.hot-update.json new file mode 100644 index 0000000..64d5634 --- /dev/null +++ b/.next/static/webpack/ea74209d2be75825.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["webpack"],"r":["/_error"],"m":["./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2F_error&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Cnode_modules%5Cnext%5Cdist%5Cpages%5C_error.js!"]} \ No newline at end of file diff --git a/.next/static/webpack/eef28e4e1b3e8b7b.webpack.hot-update.json b/.next/static/webpack/eef28e4e1b3e8b7b.webpack.hot-update.json new file mode 100644 index 0000000..2fb6ba9 --- /dev/null +++ b/.next/static/webpack/eef28e4e1b3e8b7b.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["webpack"],"r":["pages/services"],"m":["./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","./node_modules/@babel/runtime/helpers/esm/createClass.js","./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","./node_modules/@babel/runtime/helpers/esm/inherits.js","./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","./node_modules/@babel/runtime/helpers/esm/typeof.js","./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","./node_modules/@babel/runtime/helpers/interopRequireDefault.js","./node_modules/classnames/index.js","./node_modules/enquire.js/src/MediaQuery.js","./node_modules/enquire.js/src/MediaQueryDispatch.js","./node_modules/enquire.js/src/QueryHandler.js","./node_modules/enquire.js/src/Util.js","./node_modules/enquire.js/src/index.js","./node_modules/json2mq/index.js","./node_modules/lodash.debounce/index.js","./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/react-circular-progressbar/dist/styles.css","./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/react-modal-video/css/modal-video.css","./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick-theme.css","./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./node_modules/slick-carousel/slick/slick.css","./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/getUrl.js","./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2Fservices&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cservices%5Cindex.jsx!","./node_modules/react-circular-progressbar/dist/index.esm.js","./node_modules/react-circular-progressbar/dist/styles.css","./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","./node_modules/react-modal-video/css/modal-video.css","./node_modules/react-modal-video/lib/index.js","./node_modules/react-modal-video/node_modules/dom-helpers/class/addClass.js","./node_modules/react-modal-video/node_modules/dom-helpers/class/hasClass.js","./node_modules/react-modal-video/node_modules/dom-helpers/class/removeClass.js","./node_modules/react-modal-video/node_modules/react-transition-group/CSSTransition.js","./node_modules/react-modal-video/node_modules/react-transition-group/Transition.js","./node_modules/react-modal-video/node_modules/react-transition-group/utils/PropTypes.js","./node_modules/react-slick/lib/arrows.js","./node_modules/react-slick/lib/default-props.js","./node_modules/react-slick/lib/dots.js","./node_modules/react-slick/lib/index.js","./node_modules/react-slick/lib/initial-state.js","./node_modules/react-slick/lib/inner-slider.js","./node_modules/react-slick/lib/slider.js","./node_modules/react-slick/lib/track.js","./node_modules/react-slick/lib/utils/innerSliderUtils.js","./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","./node_modules/slick-carousel/slick/ajax-loader.gif","./node_modules/slick-carousel/slick/fonts/slick.eot","./node_modules/slick-carousel/slick/fonts/slick.svg","./node_modules/slick-carousel/slick/fonts/slick.ttf","./node_modules/slick-carousel/slick/fonts/slick.woff","./node_modules/slick-carousel/slick/slick-theme.css","./node_modules/slick-carousel/slick/slick.css","./node_modules/string-convert/camel2hyphen.js","./src/common/fadeInFadeOut.js","./src/common/teamSkillsProgress.js","./src/common/tooltipEffect.js","./src/components/About-intro/index.jsx","./src/components/Call-to-action/call-to-action.jsx","./src/components/Clients/clients.jsx","./src/components/Pages-header/index.jsx","./src/components/Services/services.jsx","./src/components/Services5/services5.jsx","./src/components/Skills-circle/skills-circle.jsx","./src/components/Split/index.jsx","./src/components/Team/team.jsx","./src/components/Video-with-testimonials/video-with-testimonials.jsx","./src/data/sections/about-info1.json","./src/data/sections/clients.json","./src/data/sections/features.json","./src/data/sections/features1.json","./src/data/sections/features2.json","./src/data/sections/team.json","./src/pages/services/index.jsx"]} \ No newline at end of file diff --git a/.next/static/webpack/f2eccf131ac3f1a2.webpack.hot-update.json b/.next/static/webpack/f2eccf131ac3f1a2.webpack.hot-update.json new file mode 100644 index 0000000..20b9374 --- /dev/null +++ b/.next/static/webpack/f2eccf131ac3f1a2.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["pages/index","webpack"],"r":["pages/blog/blog-light"],"m":["./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2Fblog%2Fblog-light&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cblog%5Cblog-light.jsx!","./src/components/Blog-standerd/blog-standerd.jsx","./src/data/blog1.json","./src/pages/blog/blog-light.jsx"]} \ No newline at end of file diff --git a/.next/static/webpack/fc75ecc9530f94e7.webpack.hot-update.json b/.next/static/webpack/fc75ecc9530f94e7.webpack.hot-update.json new file mode 100644 index 0000000..2e2c759 --- /dev/null +++ b/.next/static/webpack/fc75ecc9530f94e7.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["pages/_app","webpack"],"r":[],"m":["./node_modules/next/dist/pages/_app.js"]} \ No newline at end of file diff --git a/.next/static/webpack/fcc1171977653d0d.webpack.hot-update.json b/.next/static/webpack/fcc1171977653d0d.webpack.hot-update.json new file mode 100644 index 0000000..10c41d6 --- /dev/null +++ b/.next/static/webpack/fcc1171977653d0d.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["pages/index","pages/about","webpack"],"r":[],"m":[]} \ No newline at end of file diff --git a/.next/static/webpack/pages/_app.3ccbe004deb5758f.hot-update.js b/.next/static/webpack/pages/_app.3ccbe004deb5758f.hot-update.js new file mode 100644 index 0000000..8299073 --- /dev/null +++ b/.next/static/webpack/pages/_app.3ccbe004deb5758f.hot-update.js @@ -0,0 +1,32 @@ +/* + * 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/). + */ +self["webpackHotUpdate_N_E"]("pages/_app",{ + +/***/ "./node_modules/next/dist/pages/_app.js": +/*!**********************************************!*\ + !*** ./node_modules/next/dist/pages/_app.js ***! + \**********************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _classCallCheck = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\");\n\nvar _createClass = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\");\n\nvar _inherits = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/inherits */ \"./node_modules/@babel/runtime/helpers/inherits.js\");\n\nvar _possibleConstructorReturn = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/possibleConstructorReturn */ \"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\");\n\nvar _getPrototypeOf = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/getPrototypeOf */ \"./node_modules/@babel/runtime/helpers/getPrototypeOf.js\");\n\nvar _regeneratorRuntime = __webpack_require__(/*! ./node_modules/@babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"AppInitialProps\", ({\n enumerable: true,\n get: function get() {\n return _utils.AppInitialProps;\n }\n}));\nObject.defineProperty(exports, \"NextWebVitalsMetric\", ({\n enumerable: true,\n get: function get() {\n return _utils.NextWebVitalsMetric;\n }\n}));\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _utils = __webpack_require__(/*! ../shared/lib/utils */ \"./node_modules/next/dist/shared/lib/utils.js\");\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _appGetInitialProps() {\n _appGetInitialProps =\n /**\n * `App` component is used for initialize of pages. It allows for overwriting and full control of the `page` initialization.\n * This allows for keeping state between navigation, custom error handling, injecting additional data.\n */\n _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {\n var Component, ctx, pageProps;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n Component = _ref.Component, ctx = _ref.ctx;\n _context.next = 3;\n return (0, _utils).loadGetInitialProps(Component, ctx);\n\n case 3:\n pageProps = _context.sent;\n return _context.abrupt(\"return\", {\n pageProps: pageProps\n });\n\n case 5:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n return _appGetInitialProps.apply(this, arguments);\n}\n\nfunction appGetInitialProps(_) {\n return _appGetInitialProps.apply(this, arguments);\n}\n\nvar App = /*#__PURE__*/function (_react$default$Compon) {\n _inherits(App, _react$default$Compon);\n\n var _super = _createSuper(App);\n\n function App() {\n _classCallCheck(this, App);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(App, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n Component = _this$props.Component,\n pageProps = _this$props.pageProps;\n return /*#__PURE__*/_react[\"default\"].createElement(Component, Object.assign({}, pageProps));\n }\n }]);\n\n return App;\n}(_react[\"default\"].Component);\n\nApp.origGetInitialProps = appGetInitialProps;\nApp.getInitialProps = appGetInitialProps;\nexports[\"default\"] = App;\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3BhZ2VzL19hcHAuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDYkEsOENBQTZDO0FBQ3pDRyxFQUFBQSxLQUFLLEVBQUU7QUFEa0MsQ0FBN0M7QUFHQUgsbURBQWtEO0FBQzlDSSxFQUFBQSxVQUFVLEVBQUUsSUFEa0M7QUFFOUNDLEVBQUFBLEdBQUcsRUFBRSxlQUFXO0FBQ1osV0FBT0MsTUFBTSxDQUFDQyxlQUFkO0FBQ0g7QUFKNkMsQ0FBbEQ7QUFNQVAsdURBQXNEO0FBQ2xESSxFQUFBQSxVQUFVLEVBQUUsSUFEc0M7QUFFbERDLEVBQUFBLEdBQUcsRUFBRSxlQUFXO0FBQ1osV0FBT0MsTUFBTSxDQUFDRSxtQkFBZDtBQUNIO0FBSmlELENBQXREO0FBTUFOLGtCQUFBLEdBQWtCLEtBQUssQ0FBdkI7O0FBQ0EsSUFBSU8sTUFBTSxHQUFHQyxzQkFBc0IsQ0FBQ0MsbUJBQU8sQ0FBQyw0Q0FBRCxDQUFSLENBQW5DOztBQUNBLElBQUlMLE1BQU0sR0FBR0ssbUJBQU8sQ0FBQyx5RUFBRCxDQUFwQjs7QUFDQSxTQUFTQyxrQkFBVCxDQUE0QkMsR0FBNUIsRUFBaUNDLE9BQWpDLEVBQTBDQyxNQUExQyxFQUFrREMsS0FBbEQsRUFBeURDLE1BQXpELEVBQWlFQyxHQUFqRSxFQUFzRUMsR0FBdEUsRUFBMkU7QUFDdkUsTUFBSTtBQUNBLFFBQUlDLElBQUksR0FBR1AsR0FBRyxDQUFDSyxHQUFELENBQUgsQ0FBU0MsR0FBVCxDQUFYO0FBQ0EsUUFBSWhCLEtBQUssR0FBR2lCLElBQUksQ0FBQ2pCLEtBQWpCO0FBQ0gsR0FIRCxDQUdFLE9BQU9rQixLQUFQLEVBQWM7QUFDWk4sSUFBQUEsTUFBTSxDQUFDTSxLQUFELENBQU47QUFDQTtBQUNIOztBQUNELE1BQUlELElBQUksQ0FBQ0UsSUFBVCxFQUFlO0FBQ1hSLElBQUFBLE9BQU8sQ0FBQ1gsS0FBRCxDQUFQO0FBQ0gsR0FGRCxNQUVPO0FBQ0hvQixJQUFBQSxPQUFPLENBQUNULE9BQVIsQ0FBZ0JYLEtBQWhCLEVBQXVCcUIsSUFBdkIsQ0FBNEJSLEtBQTVCLEVBQW1DQyxNQUFuQztBQUNIO0FBQ0o7O0FBQ0QsU0FBU1EsaUJBQVQsQ0FBMkJDLEVBQTNCLEVBQStCO0FBQzNCLFNBQU8sWUFBVztBQUNkLFFBQUlDLElBQUksR0FBRyxJQUFYO0FBQUEsUUFBaUJDLElBQUksR0FBR0MsU0FBeEI7QUFDQSxXQUFPLElBQUlOLE9BQUosQ0FBWSxVQUFTVCxPQUFULEVBQWtCQyxNQUFsQixFQUEwQjtBQUN6QyxVQUFJRixHQUFHLEdBQUdhLEVBQUUsQ0FBQ0ksS0FBSCxDQUFTSCxJQUFULEVBQWVDLElBQWYsQ0FBVjs7QUFDQSxlQUFTWixLQUFULENBQWViLEtBQWYsRUFBc0I7QUFDbEJTLFFBQUFBLGtCQUFrQixDQUFDQyxHQUFELEVBQU1DLE9BQU4sRUFBZUMsTUFBZixFQUF1QkMsS0FBdkIsRUFBOEJDLE1BQTlCLEVBQXNDLE1BQXRDLEVBQThDZCxLQUE5QyxDQUFsQjtBQUNIOztBQUNELGVBQVNjLE1BQVQsQ0FBZ0JjLEdBQWhCLEVBQXFCO0FBQ2pCbkIsUUFBQUEsa0JBQWtCLENBQUNDLEdBQUQsRUFBTUMsT0FBTixFQUFlQyxNQUFmLEVBQXVCQyxLQUF2QixFQUE4QkMsTUFBOUIsRUFBc0MsT0FBdEMsRUFBK0NjLEdBQS9DLENBQWxCO0FBQ0g7O0FBQ0RmLE1BQUFBLEtBQUssQ0FBQ2dCLFNBQUQsQ0FBTDtBQUNILEtBVE0sQ0FBUDtBQVVILEdBWkQ7QUFhSDs7QUFDRCxTQUFTdEIsc0JBQVQsQ0FBZ0N1QixHQUFoQyxFQUFxQztBQUNqQyxTQUFPQSxHQUFHLElBQUlBLEdBQUcsQ0FBQ0MsVUFBWCxHQUF3QkQsR0FBeEIsR0FBOEI7QUFDakMsZUFBU0E7QUFEd0IsR0FBckM7QUFHSDs7QUFDRCxTQUFTRSxtQkFBVCxHQUErQjtBQUMzQkEsRUFBQUEsbUJBQW1CO0FBQUc7QUFDMUI7QUFDQTtBQUNBO0FBQUlWLEVBQUFBLGlCQUFpQix3Q0FBQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBWVcsWUFBQUEsU0FBWixRQUFZQSxTQUFaLEVBQXdCQyxHQUF4QixRQUF3QkEsR0FBeEI7QUFBQTtBQUNJLG1CQUFNLENBQUMsR0FBRy9CLE1BQUosRUFBWWdDLG1CQUFaLENBQWdDRixTQUFoQyxFQUEyQ0MsR0FBM0MsQ0FBTjs7QUFESjtBQUNSRSxZQUFBQSxTQURRO0FBQUEsNkNBRVA7QUFDSEEsY0FBQUEsU0FBUyxFQUFUQTtBQURHLGFBRk87O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsR0FBRCxFQUhqQjtBQVNBLFNBQU9KLG1CQUFtQixDQUFDTCxLQUFwQixDQUEwQixJQUExQixFQUFnQ0QsU0FBaEMsQ0FBUDtBQUNIOztBQUNELFNBQVNXLGtCQUFULENBQTRCQyxDQUE1QixFQUErQjtBQUMzQixTQUFPTixtQkFBbUIsQ0FBQ0wsS0FBcEIsQ0FBMEIsSUFBMUIsRUFBZ0NELFNBQWhDLENBQVA7QUFDSDs7SUFDS2E7Ozs7Ozs7Ozs7Ozs7V0FDRixrQkFBUztBQUNMLHdCQUFtQyxLQUFLQyxLQUF4QztBQUFBLFVBQVFQLFNBQVIsZUFBUUEsU0FBUjtBQUFBLFVBQW9CRyxTQUFwQixlQUFvQkEsU0FBcEI7QUFDQSxhQUFPLGFBQWM5QixNQUFNLFdBQU4sQ0FBZW1DLGFBQWYsQ0FBNkJSLFNBQTdCLEVBQXdDcEMsTUFBTSxDQUFDNkMsTUFBUCxDQUFjLEVBQWQsRUFDMUROLFNBRDBELENBQXhDLENBQXJCO0FBRUg7Ozs7RUFMYTlCLE1BQU0sV0FBTixDQUFlMkI7O0FBT2pDTSxHQUFHLENBQUNJLG1CQUFKLEdBQTBCTixrQkFBMUI7QUFDQUUsR0FBRyxDQUFDSyxlQUFKLEdBQXNCUCxrQkFBdEI7QUFDQXRDLGtCQUFBLEdBQWtCd0MsR0FBbEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9wYWdlcy9fYXBwLmpzPzk2MWQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJBcHBJbml0aWFsUHJvcHNcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF91dGlscy5BcHBJbml0aWFsUHJvcHM7XG4gICAgfVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJOZXh0V2ViVml0YWxzTWV0cmljXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfdXRpbHMuTmV4dFdlYlZpdGFsc01ldHJpYztcbiAgICB9XG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IHZvaWQgMDtcbnZhciBfcmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG52YXIgX3V0aWxzID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvdXRpbHNcIik7XG5mdW5jdGlvbiBhc3luY0dlbmVyYXRvclN0ZXAoZ2VuLCByZXNvbHZlLCByZWplY3QsIF9uZXh0LCBfdGhyb3csIGtleSwgYXJnKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgdmFyIGluZm8gPSBnZW5ba2V5XShhcmcpO1xuICAgICAgICB2YXIgdmFsdWUgPSBpbmZvLnZhbHVlO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGluZm8uZG9uZSkge1xuICAgICAgICByZXNvbHZlKHZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBQcm9taXNlLnJlc29sdmUodmFsdWUpLnRoZW4oX25leHQsIF90aHJvdyk7XG4gICAgfVxufVxuZnVuY3Rpb24gX2FzeW5jVG9HZW5lcmF0b3IoZm4pIHtcbiAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBzZWxmID0gdGhpcywgYXJncyA9IGFyZ3VtZW50cztcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICAgICAgdmFyIGdlbiA9IGZuLmFwcGx5KHNlbGYsIGFyZ3MpO1xuICAgICAgICAgICAgZnVuY3Rpb24gX25leHQodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBhc3luY0dlbmVyYXRvclN0ZXAoZ2VuLCByZXNvbHZlLCByZWplY3QsIF9uZXh0LCBfdGhyb3csIFwibmV4dFwiLCB2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmdW5jdGlvbiBfdGhyb3coZXJyKSB7XG4gICAgICAgICAgICAgICAgYXN5bmNHZW5lcmF0b3JTdGVwKGdlbiwgcmVzb2x2ZSwgcmVqZWN0LCBfbmV4dCwgX3Rocm93LCBcInRocm93XCIsIGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBfbmV4dCh1bmRlZmluZWQpO1xuICAgICAgICB9KTtcbiAgICB9O1xufVxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuZnVuY3Rpb24gX2FwcEdldEluaXRpYWxQcm9wcygpIHtcbiAgICBfYXBwR2V0SW5pdGlhbFByb3BzID0gLyoqXG4gKiBgQXBwYCBjb21wb25lbnQgaXMgdXNlZCBmb3IgaW5pdGlhbGl6ZSBvZiBwYWdlcy4gSXQgYWxsb3dzIGZvciBvdmVyd3JpdGluZyBhbmQgZnVsbCBjb250cm9sIG9mIHRoZSBgcGFnZWAgaW5pdGlhbGl6YXRpb24uXG4gKiBUaGlzIGFsbG93cyBmb3Iga2VlcGluZyBzdGF0ZSBiZXR3ZWVuIG5hdmlnYXRpb24sIGN1c3RvbSBlcnJvciBoYW5kbGluZywgaW5qZWN0aW5nIGFkZGl0aW9uYWwgZGF0YS5cbiAqLyBfYXN5bmNUb0dlbmVyYXRvcihmdW5jdGlvbiooeyBDb21wb25lbnQgLCBjdHggIH0pIHtcbiAgICAgICAgY29uc3QgcGFnZVByb3BzID0geWllbGQgKDAsIF91dGlscykubG9hZEdldEluaXRpYWxQcm9wcyhDb21wb25lbnQsIGN0eCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwYWdlUHJvcHNcbiAgICAgICAgfTtcbiAgICB9KTtcbiAgICByZXR1cm4gX2FwcEdldEluaXRpYWxQcm9wcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufVxuZnVuY3Rpb24gYXBwR2V0SW5pdGlhbFByb3BzKF8pIHtcbiAgICByZXR1cm4gX2FwcEdldEluaXRpYWxQcm9wcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufVxuY2xhc3MgQXBwIGV4dGVuZHMgX3JlYWN0LmRlZmF1bHQuQ29tcG9uZW50IHtcbiAgICByZW5kZXIoKSB7XG4gICAgICAgIGNvbnN0IHsgQ29tcG9uZW50ICwgcGFnZVByb3BzICB9ID0gdGhpcy5wcm9wcztcbiAgICAgICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChDb21wb25lbnQsIE9iamVjdC5hc3NpZ24oe1xuICAgICAgICB9LCBwYWdlUHJvcHMpKSk7XG4gICAgfVxufVxuQXBwLm9yaWdHZXRJbml0aWFsUHJvcHMgPSBhcHBHZXRJbml0aWFsUHJvcHM7XG5BcHAuZ2V0SW5pdGlhbFByb3BzID0gYXBwR2V0SW5pdGlhbFByb3BzO1xuZXhwb3J0cy5kZWZhdWx0ID0gQXBwO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1fYXBwLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImVudW1lcmFibGUiLCJnZXQiLCJfdXRpbHMiLCJBcHBJbml0aWFsUHJvcHMiLCJOZXh0V2ViVml0YWxzTWV0cmljIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJnZW4iLCJyZXNvbHZlIiwicmVqZWN0IiwiX25leHQiLCJfdGhyb3ciLCJrZXkiLCJhcmciLCJpbmZvIiwiZXJyb3IiLCJkb25lIiwiUHJvbWlzZSIsInRoZW4iLCJfYXN5bmNUb0dlbmVyYXRvciIsImZuIiwic2VsZiIsImFyZ3MiLCJhcmd1bWVudHMiLCJhcHBseSIsImVyciIsInVuZGVmaW5lZCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfYXBwR2V0SW5pdGlhbFByb3BzIiwiQ29tcG9uZW50IiwiY3R4IiwibG9hZEdldEluaXRpYWxQcm9wcyIsInBhZ2VQcm9wcyIsImFwcEdldEluaXRpYWxQcm9wcyIsIl8iLCJBcHAiLCJwcm9wcyIsImNyZWF0ZUVsZW1lbnQiLCJhc3NpZ24iLCJvcmlnR2V0SW5pdGlhbFByb3BzIiwiZ2V0SW5pdGlhbFByb3BzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/pages/_app.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2F_app&absolutePagePath=private-next-pages%2F_app!": +/*!*******************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2F_app&absolutePagePath=private-next-pages%2F_app! ***! + \*******************************************************************************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/_app\",\n function () {\n return __webpack_require__(/*! private-next-pages/_app */ \"./node_modules/next/dist/pages/_app.js\");\n }\n ]);\n if(true) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/_app\"])\n });\n }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWNsaWVudC1wYWdlcy1sb2FkZXIuanM/cGFnZT0lMkZfYXBwJmFic29sdXRlUGFnZVBhdGg9cHJpdmF0ZS1uZXh0LXBhZ2VzJTJGX2FwcCEuanMiLCJtYXBwaW5ncyI6IjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsbUJBQU8sQ0FBQyx1RUFBeUI7QUFDaEQ7QUFDQTtBQUNBLE9BQU8sSUFBVTtBQUNqQixNQUFNLFVBQVU7QUFDaEI7QUFDQSxPQUFPO0FBQ1A7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvPzYzZWQiXSwic291cmNlc0NvbnRlbnQiOlsiXG4gICAgKHdpbmRvdy5fX05FWFRfUCA9IHdpbmRvdy5fX05FWFRfUCB8fCBbXSkucHVzaChbXG4gICAgICBcIi9fYXBwXCIsXG4gICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiByZXF1aXJlKFwicHJpdmF0ZS1uZXh0LXBhZ2VzL19hcHBcIik7XG4gICAgICB9XG4gICAgXSk7XG4gICAgaWYobW9kdWxlLmhvdCkge1xuICAgICAgbW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgd2luZG93Ll9fTkVYVF9QLnB1c2goW1wiL19hcHBcIl0pXG4gICAgICB9KTtcbiAgICB9XG4gICJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2F_app&absolutePagePath=private-next-pages%2F_app!\n"); + +/***/ }) + +}); \ No newline at end of file diff --git a/.next/static/webpack/pages/_app.483e2ab146d7afcb.hot-update.js b/.next/static/webpack/pages/_app.483e2ab146d7afcb.hot-update.js new file mode 100644 index 0000000..49232cb --- /dev/null +++ b/.next/static/webpack/pages/_app.483e2ab146d7afcb.hot-update.js @@ -0,0 +1,22 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("pages/_app",{ + +/***/ "./src/data/app.json": +/*!***************************!*\ + !*** ./src/data/app.json ***! + \***************************/ +/***/ (function(module) { + +module.exports = JSON.parse('{"lightLogo":"/img/logo.png","darkLogo":"/img/logo.png","footerLogo":"/img/logo white.png","showLoading":true}'); + +/***/ }) + +}); \ No newline at end of file diff --git a/.next/static/webpack/pages/_app.fc75ecc9530f94e7.hot-update.js b/.next/static/webpack/pages/_app.fc75ecc9530f94e7.hot-update.js new file mode 100644 index 0000000..141dbcf --- /dev/null +++ b/.next/static/webpack/pages/_app.fc75ecc9530f94e7.hot-update.js @@ -0,0 +1,270 @@ +/* + * 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/). + */ +self["webpackHotUpdate_N_E"]("pages/_app",{ + +/***/ "./node_modules/next/dist/shared/lib/amp-context.js": +/*!**********************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/amp-context.js ***! + \**********************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.AmpStateContext = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar AmpStateContext = _react[\"default\"].createContext({});\n\nexports.AmpStateContext = AmpStateContext;\n\nif (true) {\n AmpStateContext.displayName = 'AmpStateContext';\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvYW1wLWNvbnRleHQuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCx1QkFBQSxHQUEwQixLQUFLLENBQS9COztBQUNBLElBQUlHLE1BQU0sR0FBR0Msc0JBQXNCLENBQUNDLG1CQUFPLENBQUMsNENBQUQsQ0FBUixDQUFuQzs7QUFDQSxTQUFTRCxzQkFBVCxDQUFnQ0UsR0FBaEMsRUFBcUM7QUFDakMsU0FBT0EsR0FBRyxJQUFJQSxHQUFHLENBQUNDLFVBQVgsR0FBd0JELEdBQXhCLEdBQThCO0FBQ2pDLGVBQVNBO0FBRHdCLEdBQXJDO0FBR0g7O0FBQ0QsSUFBTUosZUFBZSxHQUFHQyxNQUFNLFdBQU4sQ0FBZUssYUFBZixDQUE2QixFQUE3QixDQUF4Qjs7QUFFQVIsdUJBQUEsR0FBMEJFLGVBQTFCOztBQUNBLElBQUksTUFBdUM7QUFDdkNBLEVBQUFBLGVBQWUsQ0FBQ08sV0FBaEIsR0FBOEIsaUJBQTlCO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zaGFyZWQvbGliL2FtcC1jb250ZXh0LmpzP2U1YTciXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLkFtcFN0YXRlQ29udGV4dCA9IHZvaWQgMDtcbnZhciBfcmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5jb25zdCBBbXBTdGF0ZUNvbnRleHQgPSBfcmVhY3QuZGVmYXVsdC5jcmVhdGVDb250ZXh0KHtcbn0pO1xuZXhwb3J0cy5BbXBTdGF0ZUNvbnRleHQgPSBBbXBTdGF0ZUNvbnRleHQ7XG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIEFtcFN0YXRlQ29udGV4dC5kaXNwbGF5TmFtZSA9ICdBbXBTdGF0ZUNvbnRleHQnO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hbXAtY29udGV4dC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJBbXBTdGF0ZUNvbnRleHQiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIm9iaiIsIl9fZXNNb2R1bGUiLCJjcmVhdGVDb250ZXh0IiwiZGlzcGxheU5hbWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/amp-context.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/amp.js": +/*!**************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/amp.js ***! + \**************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _s = $RefreshSig$();\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.isInAmpMode = isInAmpMode;\nexports.useAmp = useAmp;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _ampContext = __webpack_require__(/*! ./amp-context */ \"./node_modules/next/dist/shared/lib/amp-context.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction isInAmpMode() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$ampFirst = _ref.ampFirst,\n ampFirst = _ref$ampFirst === void 0 ? false : _ref$ampFirst,\n _ref$hybrid = _ref.hybrid,\n hybrid = _ref$hybrid === void 0 ? false : _ref$hybrid,\n _ref$hasQuery = _ref.hasQuery,\n hasQuery = _ref$hasQuery === void 0 ? false : _ref$hasQuery;\n\n return ampFirst || hybrid && hasQuery;\n}\n\nfunction useAmp() {\n _s();\n\n // Don't assign the context value to a variable to save bytes\n return isInAmpMode(_react[\"default\"].useContext(_ampContext.AmpStateContext));\n}\n\n_s(useAmp, \"gDsCjeeItUuvgOWf1v4qoK9RF6k=\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvYW1wLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7OztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxtQkFBQSxHQUFzQkUsV0FBdEI7QUFDQUYsY0FBQSxHQUFpQkcsTUFBakI7O0FBQ0EsSUFBSUMsTUFBTSxHQUFHQyxzQkFBc0IsQ0FBQ0MsbUJBQU8sQ0FBQyw0Q0FBRCxDQUFSLENBQW5DOztBQUNBLElBQUlDLFdBQVcsR0FBR0QsbUJBQU8sQ0FBQyx5RUFBRCxDQUF6Qjs7QUFDQSxTQUFTRCxzQkFBVCxDQUFnQ0csR0FBaEMsRUFBcUM7QUFDakMsU0FBT0EsR0FBRyxJQUFJQSxHQUFHLENBQUNDLFVBQVgsR0FBd0JELEdBQXhCLEdBQThCO0FBQ2pDLGVBQVNBO0FBRHdCLEdBQXJDO0FBR0g7O0FBQ0QsU0FBU04sV0FBVCxHQUNHO0FBQUEsaUZBRDZFLEVBQzdFO0FBQUEsMkJBRG9CUSxRQUNwQjtBQUFBLE1BRG9CQSxRQUNwQiw4QkFEOEIsS0FDOUI7QUFBQSx5QkFEc0NDLE1BQ3RDO0FBQUEsTUFEc0NBLE1BQ3RDLDRCQUQ4QyxLQUM5QztBQUFBLDJCQURzREMsUUFDdEQ7QUFBQSxNQURzREEsUUFDdEQsOEJBRGdFLEtBQ2hFOztBQUNDLFNBQU9GLFFBQVEsSUFBSUMsTUFBTSxJQUFJQyxRQUE3QjtBQUNIOztBQUNELFNBQVNULE1BQVQsR0FBa0I7QUFBQTs7QUFDZDtBQUNBLFNBQU9ELFdBQVcsQ0FBQ0UsTUFBTSxXQUFOLENBQWVTLFVBQWYsQ0FBMEJOLFdBQVcsQ0FBQ08sZUFBdEMsQ0FBRCxDQUFsQjtBQUNIOztHQUhRWCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvYW1wLmpzPzVlNGYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmlzSW5BbXBNb2RlID0gaXNJbkFtcE1vZGU7XG5leHBvcnRzLnVzZUFtcCA9IHVzZUFtcDtcbnZhciBfcmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG52YXIgX2FtcENvbnRleHQgPSByZXF1aXJlKFwiLi9hbXAtY29udGV4dFwiKTtcbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGlzSW5BbXBNb2RlKHsgYW1wRmlyc3QgPWZhbHNlICwgaHlicmlkID1mYWxzZSAsIGhhc1F1ZXJ5ID1mYWxzZSAsICB9ID0ge1xufSkge1xuICAgIHJldHVybiBhbXBGaXJzdCB8fCBoeWJyaWQgJiYgaGFzUXVlcnk7XG59XG5mdW5jdGlvbiB1c2VBbXAoKSB7XG4gICAgLy8gRG9uJ3QgYXNzaWduIHRoZSBjb250ZXh0IHZhbHVlIHRvIGEgdmFyaWFibGUgdG8gc2F2ZSBieXRlc1xuICAgIHJldHVybiBpc0luQW1wTW9kZShfcmVhY3QuZGVmYXVsdC51c2VDb250ZXh0KF9hbXBDb250ZXh0LkFtcFN0YXRlQ29udGV4dCkpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hbXAuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiaXNJbkFtcE1vZGUiLCJ1c2VBbXAiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9hbXBDb250ZXh0Iiwib2JqIiwiX19lc01vZHVsZSIsImFtcEZpcnN0IiwiaHlicmlkIiwiaGFzUXVlcnkiLCJ1c2VDb250ZXh0IiwiQW1wU3RhdGVDb250ZXh0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/amp.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/head.js": +/*!***************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/head.js ***! + \***************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _defineProperty = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/defineProperty.js\");\n\nvar _s = $RefreshSig$();\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.defaultHead = defaultHead;\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _sideEffect = _interopRequireDefault(__webpack_require__(/*! ./side-effect */ \"./node_modules/next/dist/shared/lib/side-effect.js\"));\n\nvar _ampContext = __webpack_require__(/*! ./amp-context */ \"./node_modules/next/dist/shared/lib/amp-context.js\");\n\nvar _headManagerContext = __webpack_require__(/*! ./head-manager-context */ \"./node_modules/next/dist/shared/lib/head-manager-context.js\");\n\nvar _amp = __webpack_require__(/*! ./amp */ \"./node_modules/next/dist/shared/lib/amp.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n return newObj;\n }\n}\n\nfunction defaultHead() {\n var inAmpMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var head = [/*#__PURE__*/_react[\"default\"].createElement(\"meta\", {\n charSet: \"utf-8\"\n })];\n\n if (!inAmpMode) {\n head.push( /*#__PURE__*/_react[\"default\"].createElement(\"meta\", {\n name: \"viewport\",\n content: \"width=device-width\"\n }));\n }\n\n return head;\n}\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 } // Adds support for React.Fragment\n\n\n if (child.type === _react[\"default\"].Fragment) {\n return list.concat(_react[\"default\"].Children.toArray(child.props.children).reduce(function (fragmentList, fragmentChild) {\n if (typeof fragmentChild === 'string' || typeof fragmentChild === 'number') {\n return fragmentList;\n }\n\n return fragmentList.concat(fragmentChild);\n }, []));\n }\n\n return list.concat(child);\n}\n\nvar METATYPES = ['name', 'httpEquiv', 'charSet', 'itemProp'];\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*/\n\nfunction unique() {\n var keys = new Set();\n var tags = new Set();\n var metaTypes = new Set();\n var metaCategories = {};\n return function (h) {\n var isUnique = true;\n var hasKey = false;\n\n if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {\n hasKey = true;\n var key = h.key.slice(h.key.indexOf('$') + 1);\n\n if (keys.has(key)) {\n isUnique = false;\n } else {\n keys.add(key);\n }\n } // eslint-disable-next-line default-case\n\n\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\n break;\n\n case 'meta':\n for (var i = 0, len = METATYPES.length; i < len; i++) {\n var metatype = METATYPES[i];\n if (!h.props.hasOwnProperty(metatype)) continue;\n\n if (metatype === 'charSet') {\n if (metaTypes.has(metatype)) {\n isUnique = false;\n } else {\n metaTypes.add(metatype);\n }\n } else {\n var category = h.props[metatype];\n var categories = metaCategories[metatype] || new Set();\n\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\n break;\n }\n\n return isUnique;\n };\n}\n/**\n *\n * @param headElements List of multiple <Head> instances\n */\n\n\nfunction reduceComponents(headElements, props) {\n return headElements.reduce(function (list, headElement) {\n var headElementChildren = _react[\"default\"].Children.toArray(headElement.props.children);\n\n return list.concat(headElementChildren);\n }, []).reduce(onlyReactElement, []).reverse().concat(defaultHead(props.inAmpMode)).filter(unique()).reverse().map(function (c, i) {\n var key = c.key || i;\n\n if (false) { var newProps; }\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(c, {\n key: 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 */\n\n\nfunction Head(_ref) {\n _s();\n\n var children = _ref.children;\n var ampState = (0, _react).useContext(_ampContext.AmpStateContext);\n var headManager = (0, _react).useContext(_headManagerContext.HeadManagerContext);\n return /*#__PURE__*/_react[\"default\"].createElement(_sideEffect[\"default\"], {\n reduceComponentsToState: reduceComponents,\n headManager: headManager,\n inAmpMode: (0, _amp).isInAmpMode(ampState)\n }, children);\n}\n\n_s(Head, \"sCUayZmr5V93tUjujy03KdMBCec=\");\n\n_c = Head;\nvar _default = Head;\nexports[\"default\"] = _default;\n\nvar _c;\n\n$RefreshReg$(_c, \"Head\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaGVhZC5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7Ozs7Ozs7Ozs7QUFDYkEsOENBQTZDO0FBQ3pDRyxFQUFBQSxLQUFLLEVBQUU7QUFEa0MsQ0FBN0M7QUFHQUQsbUJBQUEsR0FBc0JFLFdBQXRCO0FBQ0FGLGtCQUFBLEdBQWtCLEtBQUssQ0FBdkI7O0FBQ0EsSUFBSUcsTUFBTSxHQUFHQyx1QkFBdUIsQ0FBQ0MsbUJBQU8sQ0FBQyw0Q0FBRCxDQUFSLENBQXBDOztBQUNBLElBQUlDLFdBQVcsR0FBR0Msc0JBQXNCLENBQUNGLG1CQUFPLENBQUMseUVBQUQsQ0FBUixDQUF4Qzs7QUFDQSxJQUFJRyxXQUFXLEdBQUdILG1CQUFPLENBQUMseUVBQUQsQ0FBekI7O0FBQ0EsSUFBSUksbUJBQW1CLEdBQUdKLG1CQUFPLENBQUMsMkZBQUQsQ0FBakM7O0FBQ0EsSUFBSUssSUFBSSxHQUFHTCxtQkFBTyxDQUFDLHlEQUFELENBQWxCOztBQUNBLFNBQVNFLHNCQUFULENBQWdDSSxHQUFoQyxFQUFxQztBQUNqQyxTQUFPQSxHQUFHLElBQUlBLEdBQUcsQ0FBQ0MsVUFBWCxHQUF3QkQsR0FBeEIsR0FBOEI7QUFDakMsZUFBU0E7QUFEd0IsR0FBckM7QUFHSDs7QUFDRCxTQUFTUCx1QkFBVCxDQUFpQ08sR0FBakMsRUFBc0M7QUFDbEMsTUFBSUEsR0FBRyxJQUFJQSxHQUFHLENBQUNDLFVBQWYsRUFBMkI7QUFDdkIsV0FBT0QsR0FBUDtBQUNILEdBRkQsTUFFTztBQUNILFFBQUlFLE1BQU0sR0FBRyxFQUFiOztBQUVBLFFBQUlGLEdBQUcsSUFBSSxJQUFYLEVBQWlCO0FBQ2IsV0FBSSxJQUFJRyxHQUFSLElBQWVILEdBQWYsRUFBbUI7QUFDZixZQUFJYixNQUFNLENBQUNpQixTQUFQLENBQWlCQyxjQUFqQixDQUFnQ0MsSUFBaEMsQ0FBcUNOLEdBQXJDLEVBQTBDRyxHQUExQyxDQUFKLEVBQW9EO0FBQ2hELGNB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cyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9oZWFkLmpzP2ZiNWQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHRIZWFkID0gZGVmYXVsdEhlYWQ7XG5leHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7XG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcbnZhciBfc2lkZUVmZmVjdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vc2lkZS1lZmZlY3RcIikpO1xudmFyIF9hbXBDb250ZXh0ID0gcmVxdWlyZShcIi4vYW1wLWNvbnRleHRcIik7XG52YXIgX2hlYWRNYW5hZ2VyQ29udGV4dCA9IHJlcXVpcmUoXCIuL2hlYWQtbWFuYWdlci1jb250ZXh0XCIpO1xudmFyIF9hbXAgPSByZXF1aXJlKFwiLi9hbXBcIik7XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHtcbiAgICBpZiAob2JqICYmIG9iai5fX2VzTW9kdWxlKSB7XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIG5ld09iaiA9IHtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKG9iaiAhPSBudWxsKSB7XG4gICAgICAgICAgICBmb3IodmFyIGtleSBpbiBvYmope1xuICAgICAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBkZXNjID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IHtcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3T2JqW2tleV0gPSBvYmpba2V5XTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBuZXdPYmouZGVmYXVsdCA9IG9iajtcbiAgICAgICAgcmV0dXJuIG5ld09iajtcbiAgICB9XG59XG5mdW5jdGlvbiBkZWZhdWx0SGVhZChpbkFtcE1vZGUgPSBmYWxzZSkge1xuICAgIGNvbnN0IGhlYWQgPSBbXG4gICAgICAgIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChcIm1ldGFcIiwge1xuICAgICAgICAgICAgY2hhclNldDogXCJ1dGYtOFwiXG4gICAgICAgIH0pXG4gICAgXTtcbiAgICBpZiAoIWluQW1wTW9kZSkge1xuICAgICAgICBoZWFkLnB1c2goLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwibWV0YVwiLCB7XG4gICAgICAgICAgICBuYW1lOiBcInZpZXdwb3J0XCIsXG4gICAgICAgICAgICBjb250ZW50OiBcIndpZHRoPWRldmljZS13aWR0aFwiXG4gICAgICAgIH0pKTtcbiAgICB9XG4gICAgcmV0dXJuIGhlYWQ7XG59XG5mdW5jdGlvbiBvbmx5UmVhY3RFbGVtZW50KGxpc3QsIGNoaWxkKSB7XG4gICAgLy8gUmVhY3QgY2hpbGRyZW4gY2FuIGJlIFwic3RyaW5nXCIgb3IgXCJudW1iZXJcIiBpbiB0aGlzIGNhc2Ugd2UgaWdub3JlIHRoZW0gZm9yIGJhY2t3YXJkcyBjb21wYXRcbiAgICBpZiAodHlwZW9mIGNoaWxkID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgY2hpbGQgPT09ICdudW1iZXInKSB7XG4gICAgICAgIHJldHVybiBsaXN0O1xuICAgIH1cbiAgICAvLyBBZGRzIHN1cHBvcnQgZm9yIFJlYWN0LkZyYWdtZW50XG4gICAgaWYgKGNoaWxkLnR5cGUgPT09IF9yZWFjdC5kZWZhdWx0LkZyYWdtZW50KSB7XG4gICAgICAgIHJldHVybiBsaXN0LmNvbmNhdChfcmVhY3QuZGVmYXVsdC5DaGlsZHJlbi50b0FycmF5KGNoaWxkLnByb3BzLmNoaWxkcmVuKS5yZWR1Y2UoKGZyYWdtZW50TGlzdCwgZnJhZ21lbnRDaGlsZCk9PntcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZnJhZ21lbnRDaGlsZCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIGZyYWdtZW50Q2hpbGQgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZyYWdtZW50TGlzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmcmFnbWVudExpc3QuY29uY2F0KGZyYWdtZW50Q2hpbGQpO1xuICAgICAgICB9LCBbXSkpO1xuICAgIH1cbiAgICByZXR1cm4gbGlzdC5jb25jYXQoY2hpbGQpO1xufVxuY29uc3QgTUVUQVRZUEVTID0gW1xuICAgICduYW1lJyxcbiAgICAnaHR0cEVxdWl2JyxcbiAgICAnY2hhclNldCcsXG4gICAgJ2l0ZW1Qcm9wJ1xuXTtcbi8qXG4gcmV0dXJucyBhIGZ1bmN0aW9uIGZvciBmaWx0ZXJpbmcgaGVhZCBjaGlsZCBlbGVtZW50c1xuIHdoaWNoIHNob3VsZG4ndCBiZSBkdXBsaWNhdGVkLCBsaWtlIDx0aXRsZS8+XG4gQWxzbyBhZGRzIHN1cHBvcnQgZm9yIGRlZHVwbGljYXRlZCBga2V5YCBwcm9wZXJ0aWVzXG4qLyBmdW5jdGlvbiB1bmlxdWUoKSB7XG4gICAgY29uc3Qga2V5cyA9IG5ldyBTZXQoKTtcbiAgICBjb25zdCB0YWdzID0gbmV3IFNldCgpO1xuICAgIGNvbnN0IG1ldGFUeXBlcyA9IG5ldyBTZXQoKTtcbiAgICBjb25zdCBtZXRhQ2F0ZWdvcmllcyA9IHtcbiAgICB9O1xuICAgIHJldHVybiAoaCk9PntcbiAgICAgICAgbGV0IGlzVW5pcXVlID0gdHJ1ZTtcbiAgICAgICAgbGV0IGhhc0tleSA9IGZhbHNlO1xuICAgICAgICBpZiAoaC5rZXkgJiYgdHlwZW9mIGgua2V5ICE9PSAnbnVtYmVyJyAmJiBoLmtleS5pbmRleE9mKCckJykgPiAwKSB7XG4gICAgICAgICAgICBoYXNLZXkgPSB0cnVlO1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gaC5rZXkuc2xpY2UoaC5rZXkuaW5kZXhPZignJCcpICsgMSk7XG4gICAgICAgICAgICBpZiAoa2V5cy5oYXMoa2V5KSkge1xuICAgICAgICAgICAgICAgIGlzVW5pcXVlID0gZmFsc2U7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGtleXMuYWRkKGtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGRlZmF1bHQtY2FzZVxuICAgICAgICBzd2l0Y2goaC50eXBlKXtcbiAgICAgICAgICAgIGNhc2UgJ3RpdGxlJzpcbiAgICAgICAgICAgIGNhc2UgJ2Jhc2UnOlxuICAgICAgICAgICAgICAgIGlmICh0YWdzLmhhcyhoLnR5cGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlzVW5pcXVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGFncy5hZGQoaC50eXBlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtZXRhJzpcbiAgICAgICAgICAgICAgICBmb3IobGV0IGkgPSAwLCBsZW4gPSBNRVRBVFlQRVMubGVuZ3RoOyBpIDwgbGVuOyBpKyspe1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtZXRhdHlwZSA9IE1FVEFUWVBFU1tpXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFoLnByb3BzLmhhc093blByb3BlcnR5KG1ldGF0eXBlKSkgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChtZXRhdHlwZSA9PT0gJ2NoYXJTZXQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobWV0YVR5cGVzLmhhcyhtZXRhdHlwZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1VuaXF1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhVHlwZXMuYWRkKG1ldGF0eXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNhdGVnb3J5ID0gaC5wcm9wc1ttZXRhdHlwZV07XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjYXRlZ29yaWVzID0gbWV0YUNhdGVnb3JpZXNbbWV0YXR5cGVdIHx8IG5ldyBTZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgobWV0YXR5cGUgIT09ICduYW1lJyB8fCAhaGFzS2V5KSAmJiBjYXRlZ29yaWVzLmhhcyhjYXRlZ29yeSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1VuaXF1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yaWVzLmFkZChjYXRlZ29yeSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YUNhdGVnb3JpZXNbbWV0YXR5cGVdID0gY2F0ZWdvcmllcztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNVbmlxdWU7XG4gICAgfTtcbn1cbi8qKlxuICpcbiAqIEBwYXJhbSBoZWFkRWxlbWVudHMgTGlzdCBvZiBtdWx0aXBsZSA8SGVhZD4gaW5zdGFuY2VzXG4gKi8gZnVuY3Rpb24gcmVkdWNlQ29tcG9uZW50cyhoZWFkRWxlbWVudHMsIHByb3BzKSB7XG4gICAgcmV0dXJuIGhlYWRFbGVtZW50cy5yZWR1Y2UoKGxpc3QsIGhlYWRFbGVtZW50KT0+e1xuICAgICAgICBjb25zdCBoZWFkRWxlbWVudENoaWxkcmVuID0gX3JlYWN0LmRlZmF1bHQuQ2hpbGRyZW4udG9BcnJheShoZWFkRWxlbWVudC5wcm9wcy5jaGlsZHJlbik7XG4gICAgICAgIHJldHVybiBsaXN0LmNvbmNhdChoZWFkRWxlbWVudENoaWxkcmVuKTtcbiAgICB9LCBbXSkucmVkdWNlKG9ubHlSZWFjdEVsZW1lbnQsIFtdKS5yZXZlcnNlKCkuY29uY2F0KGRlZmF1bHRIZWFkKHByb3BzLmluQW1wTW9kZSkpLmZpbHRlcih1bmlxdWUoKSkucmV2ZXJzZSgpLm1hcCgoYywgaSk9PntcbiAgICAgICAgY29uc3Qga2V5ID0gYy5rZXkgfHwgaTtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAnZGV2ZWxvcG1lbnQnICYmIHByb2Nlc3MuZW52Ll9fTkVYVF9PUFRJTUlaRV9GT05UUyAmJiAhcHJvcHMuaW5BbXBNb2RlKSB7XG4gICAgICAgICAgICBpZiAoYy50eXBlID09PSAnbGluaycgJiYgYy5wcm9wc1snaHJlZiddICYmIC8vIFRPRE8ocHJhdGVla2JoQCk6IFJlcGxhY2UgdGhpcyB3aXRoIGNvbnN0IGZyb20gYGNvbnN0YW50c2Agd2hlbiB0aGUgdHJlZSBzaGFraW5nIHdvcmtzLlxuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzcycsXG4gICAgICAgICAgICAgICAgJ2h0dHBzOi8vdXNlLnR5cGVraXQubmV0LydcbiAgICAgICAgICAgIF0uc29tZSgodXJsKT0+Yy5wcm9wc1snaHJlZiddLnN0YXJ0c1dpdGgodXJsKVxuICAgICAgICAgICAgKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld1Byb3BzID0ge1xuICAgICAgICAgICAgICAgICAgICAuLi5jLnByb3BzIHx8IHtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgbmV3UHJvcHNbJ2RhdGEtaHJlZiddID0gbmV3UHJvcHNbJ2hyZWYnXTtcbiAgICAgICAgICAgICAgICBuZXdQcm9wc1snaHJlZiddID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIC8vIEFkZCB0aGlzIGF0dHJpYnV0ZSB0byBtYWtlIGl0IGVhc3kgdG8gaWRlbnRpZnkgb3B0aW1pemVkIHRhZ3NcbiAgICAgICAgICAgICAgICBuZXdQcm9wc1snZGF0YS1vcHRpbWl6ZWQtZm9udHMnXSA9IHRydWU7XG4gICAgICAgICAgICAgICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY2xvbmVFbGVtZW50KGMsIG5ld1Byb3BzKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY2xvbmVFbGVtZW50KGMsIHtcbiAgICAgICAgICAgIGtleVxuICAgICAgICB9KSk7XG4gICAgfSk7XG59XG4vKipcbiAqIFRoaXMgY29tcG9uZW50IGluamVjdHMgZWxlbWVudHMgdG8gYDxoZWFkPmAgb2YgeW91ciBwYWdlLlxuICogVG8gYXZvaWQgZHVwbGljYXRlZCBgdGFnc2AgaW4gYDxoZWFkPmAgeW91IGNhbiB1c2UgdGhlIGBrZXlgIHByb3BlcnR5LCB3aGljaCB3aWxsIG1ha2Ugc3VyZSBldmVyeSB0YWcgaXMgb25seSByZW5kZXJlZCBvbmNlLlxuICovIGZ1bmN0aW9uIEhlYWQoeyBjaGlsZHJlbiAgfSkge1xuICAgIGNvbnN0IGFtcFN0YXRlID0gKDAsIF9yZWFjdCkudXNlQ29udGV4dChfYW1wQ29udGV4dC5BbXBTdGF0ZUNvbnRleHQpO1xuICAgIGNvbnN0IGhlYWRNYW5hZ2VyID0gKDAsIF9yZWFjdCkudXNlQ29udGV4dChfaGVhZE1hbmFnZXJDb250ZXh0LkhlYWRNYW5hZ2VyQ29udGV4dCk7XG4gICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChfc2lkZUVmZmVjdC5kZWZhdWx0LCB7XG4gICAgICAgIHJlZHVjZUNvbXBvbmVudHNUb1N0YXRlOiByZWR1Y2VDb21wb25lbnRzLFxuICAgICAgICBoZWFkTWFuYWdlcjogaGVhZE1hbmFnZXIsXG4gICAgICAgIGluQW1wTW9kZTogKDAsIF9hbXApLmlzSW5BbXBNb2RlKGFtcFN0YXRlKVxuICAgIH0sIGNoaWxkcmVuKSk7XG59XG52YXIgX2RlZmF1bHQgPSBIZWFkO1xuZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhlYWQuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiZGVmYXVsdEhlYWQiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc2lkZUVmZmVjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfYW1wQ29udGV4dCIsIl9oZWFkTWFuYWdlckNvbnRleHQiLCJfYW1wIiwib2JqIiwiX19lc01vZHVsZSIsIm5ld09iaiIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJnZXQiLCJzZXQiLCJpbkFtcE1vZGUiLCJoZWFkIiwiY3JlYXRlRWxlbWVudCIsImNoYXJTZXQiLCJwdXNoIiwibmFtZSIsImNvbnRlbnQiLCJvbmx5UmVhY3RFbGVtZW50IiwibGlzdCIsImNoaWxkIiwidHlwZSIsIkZyYWdtZW50IiwiY29uY2F0IiwiQ2hpbGRyZW4iLCJ0b0FycmF5IiwicHJvcHMiLCJjaGlsZHJlbiIsInJlZHVjZSIsImZyYWdtZW50TGlzdCIsImZyYWdtZW50Q2hpbGQiLCJNRVRBVFlQRVMiLCJ1bmlxdWUiLCJrZXlzIiwiU2V0IiwidGFncyIsIm1ldGFUeXBlcyIsIm1ldGFDYXRlZ29yaWVzIiwiaCIsImlzVW5pcXVlIiwiaGFzS2V5IiwiaW5kZXhPZiIsInNsaWNlIiwiaGFzIiwiYWRkIiwiaSIsImxlbiIsImxlbmd0aCIsIm1ldGF0eXBlIiwiY2F0ZWdvcnkiLCJjYXRlZ29yaWVzIiwicmVkdWNlQ29tcG9uZW50cyIsImhlYWRFbGVtZW50cyIsImhlYWRFbGVtZW50IiwiaGVhZEVsZW1lbnRDaGlsZHJlbiIsInJldmVyc2UiLCJmaWx0ZXIiLCJtYXAiLCJjIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9PUFRJTUlaRV9GT05UUyIsInNvbWUiLCJ1cmwiLCJzdGFydHNXaXRoIiwibmV3UHJvcHMiLCJ1bmRlZmluZWQiLCJjbG9uZUVsZW1lbnQiLCJIZWFkIiwiYW1wU3RhdGUiLCJ1c2VDb250ZXh0IiwiQW1wU3RhdGVDb250ZXh0IiwiaGVhZE1hbmFnZXIiLCJIZWFkTWFuYWdlckNvbnRleHQiLCJyZWR1Y2VDb21wb25lbnRzVG9TdGF0ZSIsImlzSW5BbXBNb2RlIiwiX2RlZmF1bHQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/head.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/side-effect.js": +/*!**********************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/side-effect.js ***! + \**********************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _toConsumableArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/toConsumableArray.js\");\n\nvar _classCallCheck = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\");\n\nvar _createClass = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\");\n\nvar _assertThisInitialized = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/assertThisInitialized */ \"./node_modules/@babel/runtime/helpers/assertThisInitialized.js\");\n\nvar _inherits = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/inherits */ \"./node_modules/@babel/runtime/helpers/inherits.js\");\n\nvar _possibleConstructorReturn = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/possibleConstructorReturn */ \"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\");\n\nvar _getPrototypeOf = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/getPrototypeOf */ \"./node_modules/@babel/runtime/helpers/getPrototypeOf.js\");\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n return newObj;\n }\n}\n\nvar isServer = false;\n\nvar _class = /*#__PURE__*/function (_react$Component) {\n _inherits(_class, _react$Component);\n\n var _super = _createSuper(_class);\n\n function _class(props) {\n var _this;\n\n _classCallCheck(this, _class);\n\n _this = _super.call(this, props);\n\n _this.emitChange = function () {\n if (_this._hasHeadManager) {\n _this.props.headManager.updateHead(_this.props.reduceComponentsToState(_toConsumableArray(_this.props.headManager.mountedInstances), _this.props));\n }\n };\n\n _this._hasHeadManager = _this.props.headManager && _this.props.headManager.mountedInstances;\n\n if (isServer && _this._hasHeadManager) {\n _this.props.headManager.mountedInstances.add(_assertThisInitialized(_this));\n\n _this.emitChange();\n }\n\n return _this;\n }\n\n _createClass(_class, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this._hasHeadManager) {\n this.props.headManager.mountedInstances.add(this);\n }\n\n this.emitChange();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.emitChange();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this._hasHeadManager) {\n this.props.headManager.mountedInstances[\"delete\"](this);\n }\n\n this.emitChange();\n }\n }, {\n key: \"render\",\n value: function render() {\n return null;\n }\n }]);\n\n return _class;\n}(_react.Component);\n\nexports[\"default\"] = _class;\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvc2lkZS1lZmZlY3QuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxrQkFBQSxHQUFrQixLQUFLLENBQXZCOztBQUNBLElBQUlFLE1BQU0sR0FBR0MsdUJBQXVCLENBQUNDLG1CQUFPLENBQUMsNENBQUQsQ0FBUixDQUFwQzs7QUFDQSxTQUFTRCx1QkFBVCxDQUFpQ0UsR0FBakMsRUFBc0M7QUFDbEMsTUFBSUEsR0FBRyxJQUFJQSxHQUFHLENBQUNDLFVBQWYsRUFBMkI7QUFDdkIsV0FBT0QsR0FBUDtBQUNILEdBRkQsTUFFTztBQUNILFFBQUlFLE1BQU0sR0FBRyxFQUFiOztBQUVBLFFBQUlGLEdBQUcsSUFBSSxJQUFYLEVBQWlCO0FBQ2IsV0FBSSxJQUFJRyxHQUFSLElBQWVILEdBQWYsRUFBbUI7QUFDZixZQUFJUCxNQUFNLENBQUNXLFNBQVAsQ0FBaUJDLGNBQWpCLENBQWdDQyxJQUFoQyxDQUFxQ04sR0FBckMsRUFBMENHLEdBQTFDLENBQUosRUFBb0Q7QUFDaEQsY0FBSUksSUFBSSxHQUFHZCxNQUFNLENBQUNDLGNBQVAsSUFBeUJELE1BQU0sQ0FBQ2Usd0JBQWhDLEdBQTJEZixNQUFNLENBQUNlLHdCQUFQLENBQWdDUixHQUFoQyxFQUFxQ0csR0FBckMsQ0FBM0QsR0FBdUcsRUFBbEg7O0FBRUEsY0FBSUksSUFBSSxDQUFDRSxHQUFMLElBQVlGLElBQUksQ0FBQ0csR0FBckIsRUFBMEI7QUFDdEJqQixZQUFBQSxNQUFNLENBQUNDLGNBQVAsQ0FBc0JRLE1BQXRCLEVBQThCQyxHQUE5QixFQUFtQ0ksSUFBbkM7QUFDSCxXQUZELE1BRU87QUFDSEwsWUFBQUEsTUFBTSxDQUFDQyxHQUFELENBQU4sR0FBY0gsR0FBRyxDQUFDRyxHQUFELENBQWpCO0FBQ0g7QUFDSjtBQUNKO0FBQ0o7O0FBQ0RELElBQUFBLE1BQU0sV0FBTixHQUFpQkYsR0FBakI7QUFDQSxXQUFPRSxNQUFQO0FBQ0g7QUFDSjs7QUFDRCxJQUFNUyxRQUFRLFFBQWQ7O0lBQ01DOzs7OztBQUNGLGtCQUFZQyxLQUFaLEVBQWtCO0FBQUE7O0FBQUE7O0FBQ2QsOEJBQU1BLEtBQU47O0FBQ0EsVUFBS0MsVUFBTCxHQUFrQixZQUFJO0FBQ2xCLFVBQUksTUFBS0MsZUFBVCxFQUEwQjtBQUN0QixjQUFLRixLQUFMLENBQVdHLFdBQVgsQ0FBdUJDLFVBQXZCLENBQWtDLE1BQUtKLEtBQUwsQ0FBV0ssdUJBQVgsb0JBQzNCLE1BQUtMLEtBQUwsQ0FBV0csV0FBWCxDQUF1QkcsZ0JBREksR0FFL0IsTUFBS04sS0FGMEIsQ0FBbEM7QUFHSDtBQUNKLEtBTkQ7O0FBT0EsVUFBS0UsZUFBTCxHQUF1QixNQUFLRixLQUFMLENBQVdHLFdBQVgsSUFBMEIsTUFBS0gsS0FBTCxDQUFXRyxXQUFYLENBQXVCRyxnQkFBeEU7O0FBQ0EsUUFBSVIsUUFBUSxJQUFJLE1BQUtJLGVBQXJCLEVBQXNDO0FBQ2xDLFlBQUtGLEtBQUwsQ0FBV0csV0FBWCxDQUF1QkcsZ0JBQXZCLENBQXdDQyxHQUF4Qzs7QUFDQSxZQUFLTixVQUFMO0FBQ0g7O0FBYmE7QUFjakI7Ozs7V0FDRCw2QkFBb0I7QUFDaEIsVUFBSSxLQUFLQyxlQUFULEVBQTBCO0FBQ3RCLGFBQUtGLEtBQUwsQ0FBV0csV0FBWCxDQUF1QkcsZ0JBQXZCLENBQXdDQyxHQUF4QyxDQUE0QyxJQUE1QztBQUNIOztBQUNELFdBQUtOLFVBQUw7QUFDSDs7O1dBQ0QsOEJBQXFCO0FBQ2pCLFdBQUtBLFVBQUw7QUFDSDs7O1dBQ0QsZ0NBQXVCO0FBQ25CLFVBQUksS0FBS0MsZUFBVCxFQUEwQjtBQUN0QixhQUFLRixLQUFMLENBQVdHLFdBQVgsQ0FBdUJHLGdCQUF2QixXQUErQyxJQUEvQztBQUNIOztBQUNELFdBQUtMLFVBQUw7QUFDSDs7O1dBQ0Qsa0JBQVM7QUFDTCxhQUFPLElBQVA7QUFDSDs7OztFQWpDZ0JqQixNQUFNLENBQUN3Qjs7QUFtQzVCMUIsa0JBQUEsR0FBa0JpQixNQUFsQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvc2lkZS1lZmZlY3QuanM/NDA4YyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IHZvaWQgMDtcbnZhciBfcmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7XG4gICAgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkge1xuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBuZXdPYmogPSB7XG4gICAgICAgIH07XG4gICAgICAgIGlmIChvYmogIT0gbnVsbCkge1xuICAgICAgICAgICAgZm9yKHZhciBrZXkgaW4gb2JqKXtcbiAgICAgICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiB7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGlmIChkZXNjLmdldCB8fCBkZXNjLnNldCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld09ialtrZXldID0gb2JqW2tleV07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbmV3T2JqLmRlZmF1bHQgPSBvYmo7XG4gICAgICAgIHJldHVybiBuZXdPYmo7XG4gICAgfVxufVxuY29uc3QgaXNTZXJ2ZXIgPSB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJztcbmNsYXNzIF9jbGFzcyBleHRlbmRzIF9yZWFjdC5Db21wb25lbnQge1xuICAgIGNvbnN0cnVjdG9yKHByb3BzKXtcbiAgICAgICAgc3VwZXIocHJvcHMpO1xuICAgICAgICB0aGlzLmVtaXRDaGFuZ2UgPSAoKT0+e1xuICAgICAgICAgICAgaWYgKHRoaXMuX2hhc0hlYWRNYW5hZ2VyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5oZWFkTWFuYWdlci51cGRhdGVIZWFkKHRoaXMucHJvcHMucmVkdWNlQ29tcG9uZW50c1RvU3RhdGUoW1xuICAgICAgICAgICAgICAgICAgICAuLi50aGlzLnByb3BzLmhlYWRNYW5hZ2VyLm1vdW50ZWRJbnN0YW5jZXNcbiAgICAgICAgICAgICAgICBdLCB0aGlzLnByb3BzKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuX2hhc0hlYWRNYW5hZ2VyID0gdGhpcy5wcm9wcy5oZWFkTWFuYWdlciAmJiB0aGlzLnByb3BzLmhlYWRNYW5hZ2VyLm1vdW50ZWRJbnN0YW5jZXM7XG4gICAgICAgIGlmIChpc1NlcnZlciAmJiB0aGlzLl9oYXNIZWFkTWFuYWdlcikge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5oZWFkTWFuYWdlci5tb3VudGVkSW5zdGFuY2VzLmFkZCh0aGlzKTtcbiAgICAgICAgICAgIHRoaXMuZW1pdENoYW5nZSgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgICBpZiAodGhpcy5faGFzSGVhZE1hbmFnZXIpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMuaGVhZE1hbmFnZXIubW91bnRlZEluc3RhbmNlcy5hZGQodGhpcyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbWl0Q2hhbmdlKCk7XG4gICAgfVxuICAgIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICAgICAgdGhpcy5lbWl0Q2hhbmdlKCk7XG4gICAgfVxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgICBpZiAodGhpcy5faGFzSGVhZE1hbmFnZXIpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMuaGVhZE1hbmFnZXIubW91bnRlZEluc3RhbmNlcy5kZWxldGUodGhpcyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbWl0Q2hhbmdlKCk7XG4gICAgfVxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxufVxuZXhwb3J0cy5kZWZhdWx0ID0gX2NsYXNzO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zaWRlLWVmZmVjdC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJvYmoiLCJfX2VzTW9kdWxlIiwibmV3T2JqIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImdldCIsInNldCIsImlzU2VydmVyIiwiX2NsYXNzIiwicHJvcHMiLCJlbWl0Q2hhbmdlIiwiX2hhc0hlYWRNYW5hZ2VyIiwiaGVhZE1hbmFnZXIiLCJ1cGRhdGVIZWFkIiwicmVkdWNlQ29tcG9uZW50c1RvU3RhdGUiLCJtb3VudGVkSW5zdGFuY2VzIiwiYWRkIiwiQ29tcG9uZW50Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/side-effect.js\n"); + +/***/ }), + +/***/ "./src/common/loadingPace.js": +/*!***********************************!*\ + !*** ./src/common/loadingPace.js ***! + \***********************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar loadingPace = function loadingPace() {\n Pace.on(\"start\", function () {\n document.querySelector(\"#preloader\").classList.remove(\"isdone\");\n document.querySelector(\".loading\").classList.remove(\"isdone\");\n });\n Pace.on(\"done\", function () {\n document.querySelector(\"#preloader\").classList.add(\"isdone\");\n document.querySelector(\".loading\").classList.add(\"isdone\");\n });\n\n if (document.querySelector(\"body\").classList.contains(\"pace-done\")) {\n document.querySelector(\"#preloader\").classList.add(\"isdone\");\n document.querySelector(\".loading\").classList.add(\"isdone\");\n }\n\n window.addEventListener(\"load\", function () {\n document.querySelector(\"#preloader\").classList.add(\"isdone\");\n document.querySelector(\".loading\").classList.add(\"isdone\");\n\n if (document.querySelector('.pace-running.pace-running')) {\n document.querySelector('.pace-running.pace-running').classList.remove('pace-running');\n }\n });\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (loadingPace);\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL2xvYWRpbmdQYWNlLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQUEsSUFBTUEsV0FBVyxHQUFHLFNBQWRBLFdBQWMsR0FBTTtBQUV4QkMsRUFBQUEsSUFBSSxDQUFDQyxFQUFMLENBQVEsT0FBUixFQUFpQixZQUFZO0FBQzNCQyxJQUFBQSxRQUFRLENBQUNDLGFBQVQsQ0FBdUIsWUFBdkIsRUFBcUNDLFNBQXJDLENBQStDQyxNQUEvQyxDQUFzRCxRQUF0RDtBQUNBSCxJQUFBQSxRQUFRLENBQUNDLGFBQVQsQ0FBdUIsVUFBdkIsRUFBbUNDLFNBQW5DLENBQTZDQyxNQUE3QyxDQUFvRCxRQUFwRDtBQUNELEdBSEQ7QUFJQUwsRUFBQUEsSUFBSSxDQUFDQyxFQUFMLENBQVEsTUFBUixFQUFnQixZQUFZO0FBQzFCQyxJQUFBQSxRQUFRLENBQUNDLGFBQVQsQ0FBdUIsWUFBdkIsRUFBcUNDLFNBQXJDLENBQStDRSxHQUEvQyxDQUFtRCxRQUFuRDtBQUNBSixJQUFBQSxRQUFRLENBQUNDLGFBQVQsQ0FBdUIsVUFBdkIsRUFBbUNDLFNBQW5DLENBQTZDRSxHQUE3QyxDQUFpRCxRQUFqRDtBQUVELEdBSkQ7O0FBTUEsTUFBSUosUUFBUSxDQUFDQyxhQUFULENBQXVCLE1BQXZCLEVBQStCQyxTQUEvQixDQUF5Q0csUUFBekMsQ0FBa0QsV0FBbEQsQ0FBSixFQUFvRTtBQUNsRUwsSUFBQUEsUUFBUSxDQUFDQyxhQUFULENBQXVCLFlBQXZCLEVBQXFDQyxTQUFyQyxDQUErQ0UsR0FBL0MsQ0FBbUQsUUFBbkQ7QUFDQUosSUFBQUEsUUFBUSxDQUFDQyxhQUFULENBQXVCLFVBQXZCLEVBQW1DQyxTQUFuQyxDQUE2Q0UsR0FBN0MsQ0FBaUQsUUFBakQ7QUFDRDs7QUFFREUsRUFBQUEsTUFBTSxDQUFDQyxnQkFBUCxDQUF3QixNQUF4QixFQUFnQyxZQUFNO0FBQ3BDUCxJQUFBQSxRQUFRLENBQUNDLGFBQVQsQ0FBdUIsWUFBdkIsRUFBcUNDLFNBQXJDLENBQStDRSxHQUEvQyxDQUFtRCxRQUFuRDtBQUNBSixJQUFBQSxRQUFRLENBQUNDLGFBQVQsQ0FBdUIsVUFBdkIsRUFBbUNDLFNBQW5DLENBQTZDRSxHQUE3QyxDQUFpRCxRQUFqRDs7QUFDQSxRQUFJSixRQUFRLENBQUNDLGFBQVQsQ0FBdUIsNEJBQXZCLENBQUosRUFBMEQ7QUFDeERELE1BQUFBLFFBQVEsQ0FBQ0MsYUFBVCxDQUF1Qiw0QkFBdkIsRUFBcURDLFNBQXJELENBQStEQyxNQUEvRCxDQUFzRSxjQUF0RTtBQUNEO0FBQ0YsR0FORDtBQU9ELENBeEJEOztBQTBCQSwrREFBZU4sV0FBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tbW9uL2xvYWRpbmdQYWNlLmpzPzdmMDEiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgbG9hZGluZ1BhY2UgPSAoKSA9PiB7XHJcbiBcclxuICBQYWNlLm9uKFwic3RhcnRcIiwgZnVuY3Rpb24gKCkge1xyXG4gICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIiNwcmVsb2FkZXJcIikuY2xhc3NMaXN0LnJlbW92ZShcImlzZG9uZVwiKTtcclxuICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIubG9hZGluZ1wiKS5jbGFzc0xpc3QucmVtb3ZlKFwiaXNkb25lXCIpO1xyXG4gIH0pO1xyXG4gIFBhY2Uub24oXCJkb25lXCIsIGZ1bmN0aW9uICgpIHtcclxuICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIjcHJlbG9hZGVyXCIpLmNsYXNzTGlzdC5hZGQoXCJpc2RvbmVcIik7XHJcbiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLmxvYWRpbmdcIikuY2xhc3NMaXN0LmFkZChcImlzZG9uZVwiKTtcclxuICAgIFxyXG4gIH0pO1xyXG5cclxuICBpZiAoZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcImJvZHlcIikuY2xhc3NMaXN0LmNvbnRhaW5zKFwicGFjZS1kb25lXCIpKSB7XHJcbiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiI3ByZWxvYWRlclwiKS5jbGFzc0xpc3QuYWRkKFwiaXNkb25lXCIpO1xyXG4gICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5sb2FkaW5nXCIpLmNsYXNzTGlzdC5hZGQoXCJpc2RvbmVcIik7XHJcbiAgfVxyXG5cclxuICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImxvYWRcIiwgKCkgPT4ge1xyXG4gICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIiNwcmVsb2FkZXJcIikuY2xhc3NMaXN0LmFkZChcImlzZG9uZVwiKTtcclxuICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIubG9hZGluZ1wiKS5jbGFzc0xpc3QuYWRkKFwiaXNkb25lXCIpO1xyXG4gICAgaWYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5wYWNlLXJ1bm5pbmcucGFjZS1ydW5uaW5nJykpIHtcclxuICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnBhY2UtcnVubmluZy5wYWNlLXJ1bm5pbmcnKS5jbGFzc0xpc3QucmVtb3ZlKCdwYWNlLXJ1bm5pbmcnKVxyXG4gICAgfVxyXG4gIH0pO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgbG9hZGluZ1BhY2U7XHJcbiJdLCJuYW1lcyI6WyJsb2FkaW5nUGFjZSIsIlBhY2UiLCJvbiIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsImNsYXNzTGlzdCIsInJlbW92ZSIsImFkZCIsImNvbnRhaW5zIiwid2luZG93IiwiYWRkRXZlbnRMaXN0ZW5lciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/common/loadingPace.js\n"); + +/***/ }), + +/***/ "./src/common/mouseEffect.js": +/*!***********************************!*\ + !*** ./src/common/mouseEffect.js ***! + \***********************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar mouseEffect = function mouseEffect() {\n function mousecursor() {\n var cursorInner = document.querySelector(\".cursor-inner\"),\n cursorOuter = document.querySelector(\".cursor-outer\");\n var n,\n i = 0,\n o = !1;\n\n window.onmousemove = function (s) {\n o || (cursorOuter.style.transform = \"translate(\" + s.clientX + \"px, \" + s.clientY + \"px)\"), cursorInner.style.transform = \"translate(\" + s.clientX + \"px, \" + s.clientY + \"px)\", n = s.clientY, i = s.clientX;\n };\n\n if (document.querySelector(\".cursor-pointer\")) {\n document.querySelector(\".cursor-pointer\").addEventListener(\"mouseenter\", function () {\n cursorInner.classList.add(\"cursor-hover\"), cursorOuter.classList.add(\"cursor-hover\");\n });\n document.querySelector(\".cursor-pointer\").addEventListener(\"mouseleave\", function () {\n cursorInner.classList.remove(\"cursor-hover\"), cursorOuter.classList.remove(\"cursor-hover\");\n }), cursorInner.style.visibility = \"visible\", cursorOuter.style.visibility = \"visible\";\n }\n\n document.querySelectorAll(\"a\").forEach(function (item) {\n item.addEventListener(\"mouseenter\", function () {\n cursorInner.classList.add(\"cursor-hover\"), cursorOuter.classList.add(\"cursor-hover\");\n });\n });\n document.querySelectorAll(\"a\").forEach(function (item) {\n item.addEventListener(\"mouseleave\", function () {\n cursorInner.classList.remove(\"cursor-hover\"), cursorOuter.classList.remove(\"cursor-hover\");\n });\n }), cursorInner.style.visibility = \"visible\", cursorOuter.style.visibility = \"visible\";\n }\n\n mousecursor();\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (mouseEffect);\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q08sS0FBWixDQUFrQlEsVUFBbEIsR0FBK0IsU0FQbEM7QUFRRDs7QUFDRG5CLEVBQUFBLFdBQVc7QUFDWixDQWhERDs7QUFrREEsK0RBQWVELFdBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbW1vbi9tb3VzZUVmZmVjdC5qcz81YThkIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IG1vdXNlRWZmZWN0ID0gKCkgPT4ge1xyXG4gIGZ1bmN0aW9uIG1vdXNlY3Vyc29yKCkge1xyXG4gICAgY29uc3QgY3Vyc29ySW5uZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLmN1cnNvci1pbm5lclwiKSxcclxuICAgICAgY3Vyc29yT3V0ZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLmN1cnNvci1vdXRlclwiKTtcclxuICAgIGxldCBuLFxyXG4gICAgICBpID0gMCxcclxuICAgICAgbyA9ICExO1xyXG4gICAgd2luZG93Lm9ubW91c2Vtb3ZlID0gZnVuY3Rpb24gKHMpIHtcclxuICAgICAgbyB8fFxyXG4gICAgICAgIChjdXJzb3JPdXRlci5zdHlsZS50cmFuc2Zvcm0gPVxyXG4gICAgICAgICAgXCJ0cmFuc2xhdGUoXCIgKyBzLmNsaWVudFggKyBcInB4LCBcIiArIHMuY2xpZW50WSArIFwicHgpXCIpLFxyXG4gICAgICAgIChjdXJzb3JJbm5lci5zdHlsZS50cmFuc2Zvcm0gPVxyXG4gICAgICAgICAgXCJ0cmFuc2xhdGUoXCIgKyBzLmNsaWVudFggKyBcInB4LCBcIiArIHMuY2xpZW50WSArIFwicHgpXCIpLFxyXG4gICAgICAgIChuID0gcy5jbGllbnRZKSxcclxuICAgICAgICAoaSA9IHMuY2xpZW50WCk7XHJcbiAgICB9O1xyXG4gICAgaWYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIuY3Vyc29yLXBvaW50ZXJcIikpIHtcclxuICAgICAgZG9jdW1lbnRcclxuICAgICAgICAucXVlcnlTZWxlY3RvcihcIi5jdXJzb3ItcG9pbnRlclwiKVxyXG4gICAgICAgIC5hZGRFdmVudExpc3RlbmVyKFwibW91c2VlbnRlclwiLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICBjdXJzb3JJbm5lci5jbGFzc0xpc3QuYWRkKFwiY3Vyc29yLWhvdmVyXCIpLFxyXG4gICAgICAgICAgICBjdXJzb3JPdXRlci5jbGFzc0xpc3QuYWRkKFwiY3Vyc29yLWhvdmVyXCIpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICBkb2N1bWVudFxyXG4gICAgICAgIC5xdWVyeVNlbGVjdG9yKFwiLmN1cnNvci1wb2ludGVyXCIpXHJcbiAgICAgICAgLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIsIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgIGN1cnNvcklubmVyLmNsYXNzTGlzdC5yZW1vdmUoXCJjdXJzb3ItaG92ZXJcIiksXHJcbiAgICAgICAgICAgIGN1cnNvck91dGVyLmNsYXNzTGlzdC5yZW1vdmUoXCJjdXJzb3ItaG92ZXJcIik7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgKGN1cnNvcklubmVyLnN0eWxlLnZpc2liaWxpdHkgPSBcInZpc2libGVcIiksXHJcbiAgICAgICAgKGN1cnNvck91dGVyLnN0eWxlLnZpc2liaWxpdHkgPSBcInZpc2libGVcIik7XHJcbiAgICB9XHJcbiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiYVwiKS5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtKSB7XHJcbiAgICAgIGl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlZW50ZXJcIiwgZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGN1cnNvcklubmVyLmNsYXNzTGlzdC5hZGQoXCJjdXJzb3ItaG92ZXJcIiksXHJcbiAgICAgICAgICBjdXJzb3JPdXRlci5jbGFzc0xpc3QuYWRkKFwiY3Vyc29yLWhvdmVyXCIpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcImFcIikuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSkge1xyXG4gICAgICBpdGVtLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIsIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBjdXJzb3JJbm5lci5jbGFzc0xpc3QucmVtb3ZlKFwiY3Vyc29yLWhvdmVyXCIpLFxyXG4gICAgICAgICAgY3Vyc29yT3V0ZXIuY2xhc3NMaXN0LnJlbW92ZShcImN1cnNvci1ob3ZlclwiKTtcclxuICAgICAgfSk7XHJcbiAgICB9KSxcclxuICAgICAgKGN1cnNvcklubmVyLnN0eWxlLnZpc2liaWxpdHkgPSBcInZpc2libGVcIiksXHJcbiAgICAgIChjdXJzb3JPdXRlci5zdHlsZS52aXNpYmlsaXR5ID0gXCJ2aXNpYmxlXCIpO1xyXG4gIH1cclxuICBtb3VzZWN1cnNvcigpO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgbW91c2VFZmZlY3Q7XHJcbiJdLCJuYW1lcyI6WyJtb3VzZUVmZmVjdCIsIm1vdXNlY3Vyc29yIiwiY3Vyc29ySW5uZXIiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJjdXJzb3JPdXRlciIsIm4iLCJpIiwibyIsIndpbmRvdyIsIm9ubW91c2Vtb3ZlIiwicyIsInN0eWxlIiwidHJhbnNmb3JtIiwiY2xpZW50WCIsImNsaWVudFkiLCJhZGRFdmVudExpc3RlbmVyIiwiY2xhc3NMaXN0IiwiYWRkIiwicmVtb3ZlIiwidmlzaWJpbGl0eSIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJmb3JFYWNoIiwiaXRlbSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/common/mouseEffect.js\n"); + +/***/ }), + +/***/ "./src/common/scrollToTop.js": +/*!***********************************!*\ + !*** ./src/common/scrollToTop.js ***! + \***********************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar scrollToTop = function scrollToTop() {\n var progressPath = document.querySelector(\".progress-wrap path\");\n var pathLength = progressPath.getTotalLength();\n progressPath.style.transition = progressPath.style.WebkitTransition = \"none\";\n progressPath.style.strokeDasharray = pathLength + \" \" + pathLength;\n progressPath.style.strokeDashoffset = pathLength;\n progressPath.getBoundingClientRect();\n progressPath.style.transition = progressPath.style.WebkitTransition = \"stroke-dashoffset 10ms linear\";\n\n var updateProgress = function updateProgress() {\n var scroll = window.pageYOffset;\n var height = document.documentElement.scrollHeight - window.innerHeight;\n var progress = pathLength - scroll * pathLength / height;\n progressPath.style.strokeDashoffset = progress;\n };\n\n updateProgress();\n window.addEventListener(\"scroll\", updateProgress);\n var progressWrap = document.querySelector(\".progress-wrap\");\n var offset = 150;\n window.addEventListener(\"scroll\", function () {\n if (window.pageYOffset > offset) {\n progressWrap.classList.add(\"active-progress\");\n } else {\n document.querySelector(\".progress-wrap\").classList.remove(\"active-progress\");\n }\n });\n progressWrap.addEventListener(\"click\", function (event) {\n event.preventDefault();\n window.scrollTo({\n top: 0,\n behavior: \"smooth\"\n });\n return false;\n });\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (scrollToTop);\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tbW9uL3Njcm9sbFRvVG9wLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQUEsSUFBTUEsV0FBVyxHQUFHLFNBQWRBLFdBQWMsR0FBTTtBQUN4QixNQUFJQyxZQUFZLEdBQUdDLFFBQVEsQ0FBQ0MsYUFBVCxDQUF1QixxQkFBdkIsQ0FBbkI7QUFDQSxNQUFJQyxVQUFVLEdBQUdILFlBQVksQ0FBQ0ksY0FBYixFQUFqQjtBQUNBSixFQUFBQSxZQUFZLENBQUNLLEtBQWIsQ0FBbUJDLFVBQW5CLEdBQWdDTixZQUFZLENBQUNLLEtBQWIsQ0FBbUJFLGdCQUFuQixHQUFzQyxNQUF0RTtBQUNBUCxFQUFBQSxZQUFZLENBQUNLLEtBQWIsQ0FBbUJHLGVBQW5CLEdBQXFDTCxVQUFVLEdBQUcsR0FBYixHQUFtQkEsVUFBeEQ7QUFDQUgsRUFBQUEsWUFBWSxDQUFDSyxLQUFiLENBQW1CSSxnQkFBbkIsR0FBc0NOLFVBQXRDO0FBQ0FILEVBQUFBLFlBQVksQ0FBQ1UscUJBQWI7QUFDQVYsRUFBQUEsWUFBWSxDQUFDSyxLQUFiLENBQW1CQyxVQUFuQixHQUFnQ04sWUFBWSxDQUFDSyxLQUFiLENBQW1CRSxnQkFBbkIsR0FDOUIsK0JBREY7O0FBRUEsTUFBTUksY0FBYyxHQUFHLFNBQWpCQSxjQUFpQixHQUFZO0FBQ2pDLFFBQUlDLE1BQU0sR0FBR0MsTUFBTSxDQUFDQyxXQUFwQjtBQUNBLFFBQUlDLE1BQU0sR0FBR2QsUUFBUSxDQUFDZSxlQUFULENBQXlCQyxZQUF6QixHQUF3Q0osTUFBTSxDQUFDSyxXQUE1RDtBQUNBLFFBQUlDLFFBQVEsR0FBR2hCLFVBQVUsR0FBSVMsTUFBTSxHQUFHVCxVQUFWLEdBQXdCWSxNQUFwRDtBQUNBZixJQUFBQSxZQUFZLENBQUNLLEtBQWIsQ0FBbUJJLGdCQUFuQixHQUFzQ1UsUUFBdEM7QUFDRCxHQUxEOztBQU1BUixFQUFBQSxjQUFjO0FBQ2RFLEVBQUFBLE1BQU0sQ0FBQ08sZ0JBQVAsQ0FBd0IsUUFBeEIsRUFBa0NULGNBQWxDO0FBQ0EsTUFBSVUsWUFBWSxHQUFHcEIsUUFBUSxDQUFDQyxhQUFULENBQXVCLGdCQUF2QixDQUFuQjtBQUNBLE1BQUlvQixNQUFNLEdBQUcsR0FBYjtBQUNBVCxFQUFBQSxNQUFNLENBQUNPLGdCQUFQLENBQXdCLFFBQXhCLEVBQWtDLFlBQVk7QUFDNUMsUUFBSVAsTUFBTSxDQUFDQyxXQUFQLEdBQXFCUSxNQUF6QixFQUFpQztBQUMvQkQsTUFBQUEsWUFBWSxDQUFDRSxTQUFiLENBQXVCQyxHQUF2QixDQUEyQixpQkFBM0I7QUFDRCxLQUZELE1BRU87QUFDTHZCLE1BQUFBLFFBQVEsQ0FDTEMsYUFESCxDQUNpQixnQkFEakIsRUFFR3FCLFNBRkgsQ0FFYUUsTUFGYixDQUVvQixpQkFGcEI7QUFHRDtBQUNGLEdBUkQ7QUFTQUosRUFBQUEsWUFBWSxDQUFDRCxnQkFBYixDQUE4QixPQUE5QixFQUF1QyxVQUFVTSxLQUFWLEVBQWlCO0FBQ3REQSxJQUFBQSxLQUFLLENBQUNDLGNBQU47QUFDQWQsSUFBQUEsTUFBTSxDQUFDZSxRQUFQLENBQWdCO0FBQUVDLE1BQUFBLEdBQUcsRUFBRSxDQUFQO0FBQVVDLE1BQUFBLFFBQVEsRUFBRTtBQUFwQixLQUFoQjtBQUNBLFdBQU8sS0FBUDtBQUNELEdBSkQ7QUFLRCxDQWpDRDs7QUFtQ0EsK0RBQWUvQixXQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21tb24vc2Nyb2xsVG9Ub3AuanM/ODUwZSJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBzY3JvbGxUb1RvcCA9ICgpID0+IHtcclxuICBsZXQgcHJvZ3Jlc3NQYXRoID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5wcm9ncmVzcy13cmFwIHBhdGhcIik7XHJcbiAgbGV0IHBhdGhMZW5ndGggPSBwcm9ncmVzc1BhdGguZ2V0VG90YWxMZW5ndGgoKTtcclxuICBwcm9ncmVzc1BhdGguc3R5bGUudHJhbnNpdGlvbiA9IHByb2dyZXNzUGF0aC5zdHlsZS5XZWJraXRUcmFuc2l0aW9uID0gXCJub25lXCI7XHJcbiAgcHJvZ3Jlc3NQYXRoLnN0eWxlLnN0cm9rZURhc2hhcnJheSA9IHBhdGhMZW5ndGggKyBcIiBcIiArIHBhdGhMZW5ndGg7XHJcbiAgcHJvZ3Jlc3NQYXRoLnN0eWxlLnN0cm9rZURhc2hvZmZzZXQgPSBwYXRoTGVuZ3RoO1xyXG4gIHByb2dyZXNzUGF0aC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICBwcm9ncmVzc1BhdGguc3R5bGUudHJhbnNpdGlvbiA9IHByb2dyZXNzUGF0aC5zdHlsZS5XZWJraXRUcmFuc2l0aW9uID1cclxuICAgIFwic3Ryb2tlLWRhc2hvZmZzZXQgMTBtcyBsaW5lYXJcIjtcclxuICBjb25zdCB1cGRhdGVQcm9ncmVzcyA9IGZ1bmN0aW9uICgpIHtcclxuICAgIGxldCBzY3JvbGwgPSB3aW5kb3cucGFnZVlPZmZzZXQ7XHJcbiAgICBsZXQgaGVpZ2h0ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbEhlaWdodCAtIHdpbmRvdy5pbm5lckhlaWdodDtcclxuICAgIGxldCBwcm9ncmVzcyA9IHBhdGhMZW5ndGggLSAoc2Nyb2xsICogcGF0aExlbmd0aCkgLyBoZWlnaHQ7XHJcbiAgICBwcm9ncmVzc1BhdGguc3R5bGUuc3Ryb2tlRGFzaG9mZnNldCA9IHByb2dyZXNzO1xyXG4gIH07XHJcbiAgdXBkYXRlUHJvZ3Jlc3MoKTtcclxuICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCB1cGRhdGVQcm9ncmVzcyk7XHJcbiAgbGV0IHByb2dyZXNzV3JhcCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIucHJvZ3Jlc3Mtd3JhcFwiKTtcclxuICBsZXQgb2Zmc2V0ID0gMTUwO1xyXG4gIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIGZ1bmN0aW9uICgpIHtcclxuICAgIGlmICh3aW5kb3cucGFnZVlPZmZzZXQgPiBvZmZzZXQpIHtcclxuICAgICAgcHJvZ3Jlc3NXcmFwLmNsYXNzTGlzdC5hZGQoXCJhY3RpdmUtcHJvZ3Jlc3NcIik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkb2N1bWVudFxyXG4gICAgICAgIC5xdWVyeVNlbGVjdG9yKFwiLnByb2dyZXNzLXdyYXBcIilcclxuICAgICAgICAuY2xhc3NMaXN0LnJlbW92ZShcImFjdGl2ZS1wcm9ncmVzc1wiKTtcclxuICAgIH1cclxuICB9KTtcclxuICBwcm9ncmVzc1dyYXAuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGZ1bmN0aW9uIChldmVudCkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIHdpbmRvdy5zY3JvbGxUbyh7IHRvcDogMCwgYmVoYXZpb3I6IFwic21vb3RoXCIgfSk7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfSk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBzY3JvbGxUb1RvcDtcclxuIl0sIm5hbWVzIjpbInNjcm9sbFRvVG9wIiwicHJvZ3Jlc3NQYXRoIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwicGF0aExlbmd0aCIsImdldFRvdGFsTGVuZ3RoIiwic3R5bGUiLCJ0cmFuc2l0aW9uIiwiV2Via2l0VHJhbnNpdGlvbiIsInN0cm9rZURhc2hhcnJheSIsInN0cm9rZURhc2hvZmZzZXQiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJ1cGRhdGVQcm9ncmVzcyIsInNjcm9sbCIsIndpbmRvdyIsInBhZ2VZT2Zmc2V0IiwiaGVpZ2h0IiwiZG9jdW1lbnRFbGVtZW50Iiwic2Nyb2xsSGVpZ2h0IiwiaW5uZXJIZWlnaHQiLCJwcm9ncmVzcyIsImFkZEV2ZW50TGlzdGVuZXIiLCJwcm9ncmVzc1dyYXAiLCJvZmZzZXQiLCJjbGFzc0xpc3QiLCJhZGQiLCJyZW1vdmUiLCJldmVudCIsInByZXZlbnREZWZhdWx0Iiwic2Nyb2xsVG8iLCJ0b3AiLCJiZWhhdmlvciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/common/scrollToTop.js\n"); + +/***/ }), + +/***/ "./src/components/Loading-Screen/index.jsx": +/*!*************************************************!*\ + !*** ./src/components/Loading-Screen/index.jsx ***! + \*************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_loadingPace__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/loadingPace */ \"./src/common/loadingPace.js\");\n/* harmony import */ var _data_app_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../data/app.json */ \"./src/data/app.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Loading-Screen\\\\index.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n\n\n\n\n\n\nvar LoadingScreen = function LoadingScreen() {\n _s();\n\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n var bodyEl = document.querySelector(\"body\");\n\n if (_data_app_json__WEBPACK_IMPORTED_MODULE_2__.showLoading) {\n (0,_common_loadingPace__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n if (bodyEl.classList.contains(\"hideX\")) bodyEl.classList.remove(\"hideX\");\n } else {\n bodyEl.classList.add(\"hideX\");\n }\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.Fragment, {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"\".concat(_data_app_json__WEBPACK_IMPORTED_MODULE_2__.showLoading === true ? \"showX\" : \"hideX\"),\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"loading\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: \"L\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: \"o\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: \"a\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: \"d\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: \"i\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: \"n\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n children: \"g\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n id: \"preloader\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 7\n }, _this)\n }, void 0, false);\n};\n\n_s(LoadingScreen, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = LoadingScreen;\n/* harmony default export */ __webpack_exports__[\"default\"] = (LoadingScreen);\n\nvar _c;\n\n$RefreshReg$(_c, \"LoadingScreen\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9Mb2FkaW5nLVNjcmVlbi9pbmRleC5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBOzs7O0FBRUEsSUFBTUcsYUFBYSxHQUFHLFNBQWhCQSxhQUFnQixHQUFNO0FBQUE7O0FBRTFCSCxFQUFBQSxzREFBQSxDQUFnQixZQUFNO0FBQ3BCLFFBQUlLLE1BQU0sR0FBR0MsUUFBUSxDQUFDQyxhQUFULENBQXVCLE1BQXZCLENBQWI7O0FBRUEsUUFBSUwsdURBQUosRUFBeUI7QUFDdkJELE1BQUFBLCtEQUFXO0FBQ1gsVUFBSUksTUFBTSxDQUFDSSxTQUFQLENBQWlCQyxRQUFqQixDQUEwQixPQUExQixDQUFKLEVBQXdDTCxNQUFNLENBQUNJLFNBQVAsQ0FBaUJFLE1BQWpCLENBQXdCLE9BQXhCO0FBQ3pDLEtBSEQsTUFHTztBQUNMTixNQUFBQSxNQUFNLENBQUNJLFNBQVAsQ0FBaUJHLEdBQWpCLENBQXFCLE9BQXJCO0FBQ0Q7QUFDRixHQVRELEVBU0csRUFUSDtBQVdBLHNCQUNFO0FBQUEsMkJBQ0U7QUFBSyxlQUFTLFlBQUtWLHVEQUFBLEtBQXdCLElBQXhCLEdBQStCLE9BQS9CLEdBQXlDLE9BQTlDLENBQWQ7QUFBQSw4QkFDRTtBQUFLLGlCQUFTLEVBQUMsU0FBZjtBQUFBLGdDQUNFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQURGLGVBRUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBRkYsZUFHRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFIRixlQUlFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQUpGLGVBS0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBTEYsZUFNRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFORixlQU9FO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQVBGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxlQURGLGVBVUU7QUFBSyxVQUFFLEVBQUM7QUFBUjtBQUFBO0FBQUE7QUFBQTtBQUFBLGVBVkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREYsbUJBREY7QUFnQkQsQ0E3QkQ7O0dBQU1DOztLQUFBQTtBQStCTiwrREFBZUEsYUFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tcG9uZW50cy9Mb2FkaW5nLVNjcmVlbi9pbmRleC5qc3g/NjhiNyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBsb2FkaW5nUGFjZSBmcm9tIFwiLi4vLi4vY29tbW9uL2xvYWRpbmdQYWNlXCI7XHJcbmltcG9ydCBhcHBEYXRhIGZyb20gXCIuLi8uLi9kYXRhL2FwcC5qc29uXCI7XHJcblxyXG5jb25zdCBMb2FkaW5nU2NyZWVuID0gKCkgPT4ge1xyXG5cclxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgbGV0IGJvZHlFbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCJib2R5XCIpO1xyXG5cclxuICAgIGlmIChhcHBEYXRhLnNob3dMb2FkaW5nKSB7XHJcbiAgICAgIGxvYWRpbmdQYWNlKCk7XHJcbiAgICAgIGlmIChib2R5RWwuY2xhc3NMaXN0LmNvbnRhaW5zKFwiaGlkZVhcIikpIGJvZHlFbC5jbGFzc0xpc3QucmVtb3ZlKFwiaGlkZVhcIik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBib2R5RWwuY2xhc3NMaXN0LmFkZChcImhpZGVYXCIpO1xyXG4gICAgfVxyXG4gIH0sIFtdKTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDw+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHthcHBEYXRhLnNob3dMb2FkaW5nID09PSB0cnVlID8gXCJzaG93WFwiIDogXCJoaWRlWFwifWB9PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibG9hZGluZ1wiPlxyXG4gICAgICAgICAgPHNwYW4+TDwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuPm88L3NwYW4+XHJcbiAgICAgICAgICA8c3Bhbj5hPC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4+ZDwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuPmk8L3NwYW4+XHJcbiAgICAgICAgICA8c3Bhbj5uPC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4+Zzwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGlkPVwicHJlbG9hZGVyXCI+PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC8+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IExvYWRpbmdTY3JlZW47XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsImxvYWRpbmdQYWNlIiwiYXBwRGF0YSIsIkxvYWRpbmdTY3JlZW4iLCJ1c2VFZmZlY3QiLCJib2R5RWwiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJzaG93TG9hZGluZyIsImNsYXNzTGlzdCIsImNvbnRhaW5zIiwicmVtb3ZlIiwiYWRkIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Loading-Screen/index.jsx\n"); + +/***/ }), + +/***/ "./src/components/cursor/index.jsx": +/*!*****************************************!*\ + !*** ./src/components/cursor/index.jsx ***! + \*****************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_mouseEffect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/mouseEffect */ \"./src/common/mouseEffect.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\cursor\\\\index.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n\n\n\n\n\nvar Cursor = function Cursor() {\n _s();\n\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n (0,_common_mouseEffect__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"mouse-cursor cursor-outer\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"mouse-cursor cursor-inner\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 7\n }, _this)]\n }, void 0, true);\n};\n\n_s(Cursor, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = Cursor;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Cursor);\n\nvar _c;\n\n$RefreshReg$(_c, \"Cursor\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9jdXJzb3IvaW5kZXguanN4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTs7OztBQUVBLElBQU1FLE1BQU0sR0FBRyxTQUFUQSxNQUFTLEdBQU07QUFBQTs7QUFDbkJGLEVBQUFBLHNEQUFBLENBQWdCLFlBQU07QUFDcEJDLElBQUFBLCtEQUFXO0FBQ1osR0FGRCxFQUVHLEVBRkg7QUFHQSxzQkFDRTtBQUFBLDRCQUNFO0FBQUssZUFBUyxFQUFDO0FBQWY7QUFBQTtBQUFBO0FBQUE7QUFBQSxhQURGLGVBRUU7QUFBSyxlQUFTLEVBQUM7QUFBZjtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBRkY7QUFBQSxrQkFERjtBQU1ELENBVkQ7O0dBQU1DOztLQUFBQTtBQVlOLCtEQUFlQSxNQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL2N1cnNvci9pbmRleC5qc3g/NDU5NSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBtb3VzZUVmZmVjdCBmcm9tIFwiLi4vLi4vY29tbW9uL21vdXNlRWZmZWN0XCI7XHJcblxyXG5jb25zdCBDdXJzb3IgPSAoKSA9PiB7XHJcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgIG1vdXNlRWZmZWN0KCk7XHJcbiAgfSwgW10pO1xyXG4gIHJldHVybiAoXHJcbiAgICA8PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1vdXNlLWN1cnNvciBjdXJzb3Itb3V0ZXJcIj48L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJtb3VzZS1jdXJzb3IgY3Vyc29yLWlubmVyXCI+PC9kaXY+XHJcbiAgICA8Lz5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgQ3Vyc29yO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJtb3VzZUVmZmVjdCIsIkN1cnNvciIsInVzZUVmZmVjdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/cursor/index.jsx\n"); + +/***/ }), + +/***/ "./src/components/scrollToTop/index.jsx": +/*!**********************************************!*\ + !*** ./src/components/scrollToTop/index.jsx ***! + \**********************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_scrollToTop__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/scrollToTop */ \"./src/common/scrollToTop.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\scrollToTop\\\\index.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n\n\n\n\nvar ScrollToTop = function ScrollToTop() {\n _s();\n\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n (0,_common_scrollToTop__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"progress-wrap cursor-pointer\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"svg\", {\n className: \"progress-circle svg-content\",\n width: \"100%\",\n height: \"100%\",\n viewBox: \"-1 -1 102 102\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"path\", {\n d: \"M50,1 a49,49 0 0,1 0,98 a49,49 0 0,1 0,-98\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, _this);\n};\n\n_s(ScrollToTop, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = ScrollToTop;\n/* harmony default export */ __webpack_exports__[\"default\"] = (ScrollToTop);\n\nvar _c;\n\n$RefreshReg$(_c, \"ScrollToTop\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9zY3JvbGxUb1RvcC9pbmRleC5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTtBQUNBOzs7QUFFQSxJQUFNRSxXQUFXLEdBQUcsU0FBZEEsV0FBYyxHQUFNO0FBQUE7O0FBQ3hCRixFQUFBQSxzREFBQSxDQUFnQixZQUFNO0FBQ3BCQyxJQUFBQSwrREFBVztBQUNaLEdBRkQsRUFFRyxFQUZIO0FBR0Esc0JBQ0U7QUFBSyxhQUFTLEVBQUMsOEJBQWY7QUFBQSwyQkFDRTtBQUNFLGVBQVMsRUFBQyw2QkFEWjtBQUVFLFdBQUssRUFBQyxNQUZSO0FBR0UsWUFBTSxFQUFDLE1BSFQ7QUFJRSxhQUFPLEVBQUMsZUFKVjtBQUFBLDZCQU1FO0FBQU0sU0FBQyxFQUFDO0FBQVI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU5GO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBREY7QUFZRCxDQWhCRDs7R0FBTUM7O0tBQUFBO0FBa0JOLCtEQUFlQSxXQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL3Njcm9sbFRvVG9wL2luZGV4LmpzeD9kNWVkIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHNjcm9sbFRvVG9wIGZyb20gXCIuLi8uLi9jb21tb24vc2Nyb2xsVG9Ub3BcIjtcclxuXHJcbmNvbnN0IFNjcm9sbFRvVG9wID0gKCkgPT4ge1xyXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBzY3JvbGxUb1RvcCgpO1xyXG4gIH0sIFtdKTtcclxuICByZXR1cm4gKFxyXG4gICAgPGRpdiBjbGFzc05hbWU9XCJwcm9ncmVzcy13cmFwIGN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgIDxzdmdcclxuICAgICAgICBjbGFzc05hbWU9XCJwcm9ncmVzcy1jaXJjbGUgc3ZnLWNvbnRlbnRcIlxyXG4gICAgICAgIHdpZHRoPVwiMTAwJVwiXHJcbiAgICAgICAgaGVpZ2h0PVwiMTAwJVwiXHJcbiAgICAgICAgdmlld0JveD1cIi0xIC0xIDEwMiAxMDJcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPHBhdGggZD1cIk01MCwxIGE0OSw0OSAwIDAsMSAwLDk4IGE0OSw0OSAwIDAsMSAwLC05OFwiIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9kaXY+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IFNjcm9sbFRvVG9wO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJzY3JvbGxUb1RvcCIsIlNjcm9sbFRvVG9wIiwidXNlRWZmZWN0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/scrollToTop/index.jsx\n"); + +/***/ }), + +/***/ "./src/pages/_app.js": +/*!***************************!*\ + !*** ./src/pages/_app.js ***! + \***************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/head */ \"./node_modules/next/head.js\");\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_head__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var next_script__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/script */ \"./node_modules/next/script.js\");\n/* harmony import */ var next_script__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_script__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _components_cursor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../components/cursor */ \"./src/components/cursor/index.jsx\");\n/* harmony import */ var _components_scrollToTop__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../components/scrollToTop */ \"./src/components/scrollToTop/index.jsx\");\n/* harmony import */ var _components_Loading_Screen__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../components/Loading-Screen */ \"./src/components/Loading-Screen/index.jsx\");\n/* harmony import */ var _styles_preloader_css__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../styles/preloader.css */ \"./src/styles/preloader.css\");\n/* harmony import */ var _styles_preloader_css__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_styles_preloader_css__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _styles_main_scss__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../styles/main.scss */ \"./src/styles/main.scss\");\n/* harmony import */ var _styles_main_scss__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_styles_main_scss__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__);\n/* module decorator */ module = __webpack_require__.hmd(module);\n\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\pages\\\\_app.js\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/* eslint-disable @next/next/no-css-tags */\n\n\n\n\n\n\n\n\n\n\n\nfunction MyApp(_ref) {\n var Component = _ref.Component,\n pageProps = _ref.pageProps;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.Fragment, {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_head__WEBPACK_IMPORTED_MODULE_2___default()), {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"title\", {\n children: \"Project Marketing: Marketing strategies for the success of your project\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 9\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(\"link\", {\n rel: \"icon\",\n href: \"/img/favicon.ico\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 7\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(_components_cursor__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 7\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(_components_Loading_Screen__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 7\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(Component, _objectSpread({}, pageProps), void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 7\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)(_components_scrollToTop__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 7\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_script__WEBPACK_IMPORTED_MODULE_3___default()), {\n id: \"pace\",\n strategy: \"beforeInteractive\",\n src: \"/js/pace.min.js\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 7\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_script__WEBPACK_IMPORTED_MODULE_3___default()), {\n id: \"wow\",\n src: \"/js/wow.min.js\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 7\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_script__WEBPACK_IMPORTED_MODULE_3___default()), {\n strategy: \"beforeInteractive\",\n id: \"splitting\",\n src: \"/js/splitting.min.js\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 7\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_script__WEBPACK_IMPORTED_MODULE_3___default()), {\n id: \"simpleParallax\",\n src: \"/js/simpleParallax.min.js\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 7\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_script__WEBPACK_IMPORTED_MODULE_3___default()), {\n id: \"isotope\",\n strategy: \"beforeInteractive\",\n src: \"/js/isotope.pkgd.min.js\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 7\n }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxDEV)((next_script__WEBPACK_IMPORTED_MODULE_3___default()), {\n id: \"wowInit\",\n strategy: \"lazyOnload\",\n src: \"/js/wowInit.js\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 7\n }, this)]\n }, void 0, true);\n}\n\n_c = MyApp;\n/* harmony default export */ __webpack_exports__[\"default\"] = (MyApp);\n\nvar _c;\n\n$RefreshReg$(_c, \"MyApp\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvcGFnZXMvX2FwcC5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FBRUEsU0FBU00sS0FBVCxPQUF5QztBQUFBLE1BQXhCQyxTQUF3QixRQUF4QkEsU0FBd0I7QUFBQSxNQUFiQyxTQUFhLFFBQWJBLFNBQWE7QUFDdkMsc0JBQ0U7QUFBQSw0QkFDRSw4REFBQyxrREFBRDtBQUFBLDhCQUNFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGNBREYsZUFLRTtBQUFNLFdBQUcsRUFBQyxNQUFWO0FBQWlCLFlBQUksRUFBQztBQUF0QjtBQUFBO0FBQUE7QUFBQTtBQUFBLGNBTEY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFlBREYsZUFRRSw4REFBQywwREFBRDtBQUFBO0FBQUE7QUFBQTtBQUFBLFlBUkYsZUFTRSw4REFBQyxrRUFBRDtBQUFBO0FBQUE7QUFBQTtBQUFBLFlBVEYsZUFVRSw4REFBQyxTQUFELG9CQUFlQSxTQUFmO0FBQUE7QUFBQTtBQUFBO0FBQUEsWUFWRixlQVdFLDhEQUFDLCtEQUFEO0FBQUE7QUFBQTtBQUFBO0FBQUEsWUFYRixlQVlFLDhEQUFDLG9EQUFEO0FBQ0UsUUFBRSxFQUFDLE1BREw7QUFFRSxjQUFRLEVBQUMsbUJBRlg7QUFHRSxTQUFHLEVBQUM7QUFITjtBQUFBO0FBQUE7QUFBQTtBQUFBLFlBWkYsZUFpQkUsOERBQUMsb0RBQUQ7QUFBUSxRQUFFLEVBQUMsS0FBWDtBQUFpQixTQUFHLEVBQUM7QUFBckI7QUFBQTtBQUFBO0FBQUE7QUFBQSxZQWpCRixlQWtCRSw4REFBQyxvREFBRDtBQUNFLGNBQVEsRUFBQyxtQkFEWDtBQUVFLFFBQUUsRUFBQyxXQUZMO0FBR0UsU0FBRyxFQUFDO0FBSE47QUFBQTtBQUFBO0FBQUE7QUFBQSxZQWxCRixlQXVCRSw4REFBQyxvREFBRDtBQUFRLFFBQUUsRUFBQyxnQkFBWDtBQUE0QixTQUFHLEVBQUM7QUFBaEM7QUFBQTtBQUFBO0FBQUE7QUFBQSxZQXZCRixlQXdCRSw4REFBQyxvREFBRDtBQUNFLFFBQUUsRUFBQyxTQURMO0FBRUUsY0FBUSxFQUFDLG1CQUZYO0FBR0UsU0FBRyxFQUFDO0FBSE47QUFBQTtBQUFBO0FBQUE7QUFBQSxZQXhCRixlQTZCRSw4REFBQyxvREFBRDtBQUFRLFFBQUUsRUFBQyxTQUFYO0FBQXFCLGNBQVEsRUFBQyxZQUE5QjtBQUEyQyxTQUFHLEVBQUM7QUFBL0M7QUFBQTtBQUFBO0FBQUE7QUFBQSxZQTdCRjtBQUFBLGtCQURGO0FBaUNEOztLQWxDUUY7QUFvQ1QsK0RBQWVBLEtBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL3BhZ2VzL19hcHAuanM/OGZkYSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAbmV4dC9uZXh0L25vLWNzcy10YWdzICovXHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IEhlYWQgZnJvbSBcIm5leHQvaGVhZFwiO1xyXG5pbXBvcnQgU2NyaXB0IGZyb20gXCJuZXh0L3NjcmlwdFwiO1xyXG5pbXBvcnQgQ3Vyc29yIGZyb20gXCIuLi9jb21wb25lbnRzL2N1cnNvclwiO1xyXG5pbXBvcnQgU2Nyb2xsVG9Ub3AgZnJvbSBcIi4uL2NvbXBvbmVudHMvc2Nyb2xsVG9Ub3BcIjtcclxuaW1wb3J0IExvYWRpbmdTY3JlZW4gZnJvbSBcIi4uL2NvbXBvbmVudHMvTG9hZGluZy1TY3JlZW5cIjtcclxuaW1wb3J0IFwiLi4vc3R5bGVzL3ByZWxvYWRlci5jc3NcIjtcclxuaW1wb3J0IFwiLi4vc3R5bGVzL21haW4uc2Nzc1wiO1xyXG5cclxuZnVuY3Rpb24gTXlBcHAoeyBDb21wb25lbnQsIHBhZ2VQcm9wcyB9KSB7XHJcbiAgcmV0dXJuIChcclxuICAgIDw+XHJcbiAgICAgIDxIZWFkPlxyXG4gICAgICAgIDx0aXRsZT5cclxuICAgICAgICAgIFByb2plY3QgTWFya2V0aW5nOiBNYXJrZXRpbmcgc3RyYXRlZ2llcyBmb3IgdGhlIHN1Y2Nlc3Mgb2YgeW91clxyXG4gICAgICAgICAgcHJvamVjdFxyXG4gICAgICAgIDwvdGl0bGU+XHJcbiAgICAgICAgPGxpbmsgcmVsPVwiaWNvblwiIGhyZWY9XCIvaW1nL2Zhdmljb24uaWNvXCIgLz5cclxuICAgICAgPC9IZWFkPlxyXG4gICAgICA8Q3Vyc29yIC8+XHJcbiAgICAgIDxMb2FkaW5nU2NyZWVuIC8+XHJcbiAgICAgIDxDb21wb25lbnQgey4uLnBhZ2VQcm9wc30gLz5cclxuICAgICAgPFNjcm9sbFRvVG9wIC8+XHJcbiAgICAgIDxTY3JpcHRcclxuICAgICAgICBpZD1cInBhY2VcIlxyXG4gICAgICAgIHN0cmF0ZWd5PVwiYmVmb3JlSW50ZXJhY3RpdmVcIlxyXG4gICAgICAgIHNyYz1cIi9qcy9wYWNlLm1pbi5qc1wiXHJcbiAgICAgID48L1NjcmlwdD5cclxuICAgICAgPFNjcmlwdCBpZD1cIndvd1wiIHNyYz1cIi9qcy93b3cubWluLmpzXCI+PC9TY3JpcHQ+XHJcbiAgICAgIDxTY3JpcHRcclxuICAgICAgICBzdHJhdGVneT1cImJlZm9yZUludGVyYWN0aXZlXCJcclxuICAgICAgICBpZD1cInNwbGl0dGluZ1wiXHJcbiAgICAgICAgc3JjPVwiL2pzL3NwbGl0dGluZy5taW4uanNcIlxyXG4gICAgICA+PC9TY3JpcHQ+XHJcbiAgICAgIDxTY3JpcHQgaWQ9XCJzaW1wbGVQYXJhbGxheFwiIHNyYz1cIi9qcy9zaW1wbGVQYXJhbGxheC5taW4uanNcIj48L1NjcmlwdD5cclxuICAgICAgPFNjcmlwdFxyXG4gICAgICAgIGlkPVwiaXNvdG9wZVwiXHJcbiAgICAgICAgc3RyYXRlZ3k9XCJiZWZvcmVJbnRlcmFjdGl2ZVwiXHJcbiAgICAgICAgc3JjPVwiL2pzL2lzb3RvcGUucGtnZC5taW4uanNcIlxyXG4gICAgICA+PC9TY3JpcHQ+XHJcbiAgICAgIDxTY3JpcHQgaWQ9XCJ3b3dJbml0XCIgc3RyYXRlZ3k9XCJsYXp5T25sb2FkXCIgc3JjPVwiL2pzL3dvd0luaXQuanNcIj48L1NjcmlwdD5cclxuICAgIDwvPlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IE15QXBwO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJIZWFkIiwiU2NyaXB0IiwiQ3Vyc29yIiwiU2Nyb2xsVG9Ub3AiLCJMb2FkaW5nU2NyZWVuIiwiTXlBcHAiLCJDb21wb25lbnQiLCJwYWdlUHJvcHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/pages/_app.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[10].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[10].use[2]!./node_modules/next/dist/compiled/resolve-url-loader/index.js??ruleSet[1].rules[2].oneOf[10].use[3]!./node_modules/next/dist/compiled/sass-loader/cjs.js??ruleSet[1].rules[2].oneOf[10].use[4]!./src/styles/main.scss": +/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[10].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[10].use[2]!./node_modules/next/dist/compiled/resolve-url-loader/index.js??ruleSet[1].rules[2].oneOf[10].use[3]!./node_modules/next/dist/compiled/sass-loader/cjs.js??ruleSet[1].rules[2].oneOf[10].use[4]!./src/styles/main.scss ***! + \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js\");\n/* harmony import */ var _node_modules_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);\n// Imports\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".blog-crv .item {\\n display: flex;\\n align-items: center;\\n height: 100%;\\n}\\n\\n.block-sec .testim-box .slick-dots li button {\\n display: block;\\n opacity: 0;\\n width: 0;\\n height: 0;\\n}\\n\\n.slider .social-icon a {\\n margin: 0 3px;\\n}\\n\\n.navbar .navbar-nav .nav-link,\\n.video .vid .vid-butn .icon,\\n.video-wrapper .vid .vid-butn .icon {\\n cursor: pointer;\\n}\\n\\n.block-sec .vid-area {\\n z-index: 99;\\n}\\n\\n.div-tooltip-tit,\\n.div-tooltip-sub {\\n display: block;\\n padding: 0;\\n}\\n\\nsection.testimonials {\\n overflow: hidden;\\n}\\n\\n.contact-page .pages-header {\\n overflow: hidden;\\n}\\n\\ndiv#ieatmaps iframe {\\n width: 100%;\\n height: 100%;\\n border: 0;\\n}\\n\\nbutton.nb {\\n background: transparent;\\n color: #fff;\\n cursor: pointer;\\n}\\n\\nbutton.nb:hover {\\n background: #fff;\\n color: #222;\\n}\\n\\n.replay {\\n cursor: pointer;\\n}\\n\\n.pace-done #preloader:after {\\n bottom: 0;\\n}\\n\\n#preloader {\\n top: 0;\\n left: 0;\\n}\\n\\n.pace-done #preloader {\\n visibility: hidden;\\n transition-delay: 1.5s;\\n}\\n\\n.pace-done #preloader:after,\\n.pace-done #preloader:before {\\n height: 0;\\n transition: all 0.7s cubic-bezier(1, 0, 0.55, 1);\\n transition-delay: 1s;\\n}\\n\\nbody.hideX #preloader {\\n display: none !important;\\n z-index: -1111111;\\n height: 0;\\n width: 0;\\n overflow: hidden;\\n}\\n\\nbody.hideX .pace {\\n display: none !important;\\n background-color: transparent;\\n}\\n\\n.app-footer .social a {\\n margin-right: 4px;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://main.scss\"],\"names\":[],\"mappings\":\"AAAA;EACE,aAAA;EACA,mBAAA;EACA,YAAA;AACF;;AAEA;EACE,cAAA;EACA,UAAA;EACA,QAAA;EACA,SAAA;AACF;;AAEA;EACE,aAAA;AACF;;AAEA;;;EAGE,eAAA;AACF;;AAEA;EACE,WAAA;AACF;;AAEA;;EAEE,cAAA;EACA,UAAA;AACF;;AAEA;EACE,gBAAA;AACF;;AAEA;EACE,gBAAA;AACF;;AAEA;EACE,WAAA;EACA,YAAA;EACA,SAAA;AACF;;AAEA;EACE,uBAAA;EACA,WAAA;EACA,eAAA;AACF;;AAEA;EACE,gBAAA;EACA,WAAA;AACF;;AAEA;EACE,eAAA;AACF;;AAEA;EACE,SAAA;AACF;;AAEA;EACE,MAAA;EACA,OAAA;AACF;;AAGA;EACE,kBAAA;EAGA,sBAAA;AAAF;;AAGA;;EAEE,SAAA;EAGA,gDAAA;EAGA,oBAAA;AAAF;;AAGA;EACE,wBAAA;EACA,iBAAA;EACA,SAAA;EACA,QAAA;EACA,gBAAA;AAAF;;AAGA;EACE,wBAAA;EACA,6BAAA;AAAF;;AAGA;EACE,iBAAA;AAAF\",\"sourcesContent\":[\".blog-crv .item {\\r\\n display: flex;\\r\\n align-items: center;\\r\\n height: 100%;\\r\\n}\\r\\n\\r\\n.block-sec .testim-box .slick-dots li button {\\r\\n display: block;\\r\\n opacity: 0;\\r\\n width: 0;\\r\\n height: 0;\\r\\n}\\r\\n\\r\\n.slider .social-icon a {\\r\\n margin: 0 3px;\\r\\n}\\r\\n\\r\\n.navbar .navbar-nav .nav-link,\\r\\n.video .vid .vid-butn .icon,\\r\\n.video-wrapper .vid .vid-butn .icon {\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.block-sec .vid-area {\\r\\n z-index: 99;\\r\\n}\\r\\n\\r\\n.div-tooltip-tit,\\r\\n.div-tooltip-sub {\\r\\n display: block;\\r\\n padding: 0;\\r\\n}\\r\\n\\r\\nsection.testimonials {\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.contact-page .pages-header {\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\ndiv#ieatmaps iframe {\\r\\n width: 100%;\\r\\n height: 100%;\\r\\n border: 0;\\r\\n}\\r\\n\\r\\nbutton.nb {\\r\\n background: transparent;\\r\\n color: #fff;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\nbutton.nb:hover {\\r\\n background: #fff;\\r\\n color: #222;\\r\\n}\\r\\n\\r\\n.replay {\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.pace-done #preloader:after {\\r\\n bottom: 0;\\r\\n}\\r\\n\\r\\n#preloader {\\r\\n top: 0;\\r\\n left: 0;\\r\\n ;\\r\\n}\\r\\n\\r\\n.pace-done #preloader {\\r\\n visibility: hidden;\\r\\n -webkit-transition-delay: 1.5s;\\r\\n -o-transition-delay: 1.5s;\\r\\n transition-delay: 1.5s;\\r\\n}\\r\\n\\r\\n.pace-done #preloader:after,\\r\\n.pace-done #preloader:before {\\r\\n height: 0;\\r\\n -webkit-transition: all 0.7s cubic-bezier(1, 0, 0.55, 1);\\r\\n -o-transition: all 0.7s cubic-bezier(1, 0, 0.55, 1);\\r\\n transition: all 0.7s cubic-bezier(1, 0, 0.55, 1);\\r\\n -webkit-transition-delay: 1s;\\r\\n -o-transition-delay: 1s;\\r\\n transition-delay: 1s;\\r\\n}\\r\\n\\r\\nbody.hideX #preloader {\\r\\n display: none !important;\\r\\n z-index: -1111111;\\r\\n height: 0;\\r\\n width: 0;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\nbody.hideX .pace {\\r\\n display: none !important;\\r\\n background-color: transparent;\\r\\n}\\r\\n\\r\\n.app-footer .social a {\\r\\n margin-right: 4px;\\r\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZlsxMF0udXNlWzFdIS4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzEwXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3Jlc29sdmUtdXJsLWxvYWRlci9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZlsxMF0udXNlWzNdIS4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9zYXNzLWxvYWRlci9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbMTBdLnVzZVs0XSEuL3NyYy9zdHlsZXMvbWFpbi5zY3NzLmpzIiwibWFwcGluZ3MiOiI7OztBQUFBO0FBQzJIO0FBQzNILDhCQUE4QixrSEFBMkI7QUFDekQ7QUFDQSwyREFBMkQsa0JBQWtCLHdCQUF3QixpQkFBaUIsR0FBRyxrREFBa0QsbUJBQW1CLGVBQWUsYUFBYSxjQUFjLEdBQUcsNEJBQTRCLGtCQUFrQixHQUFHLHVHQUF1RyxvQkFBb0IsR0FBRywwQkFBMEIsZ0JBQWdCLEdBQUcseUNBQXlDLG1CQUFtQixlQUFlLEdBQUcsMEJBQTBCLHFCQUFxQixHQUFHLGlDQUFpQyxxQkFBcUIsR0FBRyx5QkFBeUIsZ0JBQWdCLGlCQUFpQixjQUFjLEdBQUcsZUFBZSw0QkFBNEIsZ0JBQWdCLG9CQUFvQixHQUFHLHFCQUFxQixxQkFBcUIsZ0JBQWdCLEdBQUcsYUFBYSxvQkFBb0IsR0FBRyxpQ0FBaUMsY0FBYyxHQUFHLGdCQUFnQixXQUFXLFlBQVksR0FBRywyQkFBMkIsdUJBQXVCLDJCQUEyQixHQUFHLGdFQUFnRSxjQUFjLHFEQUFxRCx5QkFBeUIsR0FBRywyQkFBMkIsNkJBQTZCLHNCQUFzQixjQUFjLGFBQWEscUJBQXFCLEdBQUcsc0JBQXNCLDZCQUE2QixrQ0FBa0MsR0FBRywyQkFBMkIsc0JBQXNCLEdBQUcsT0FBTywwRUFBMEUsVUFBVSxXQUFXLFVBQVUsTUFBTSxLQUFLLFVBQVUsVUFBVSxVQUFVLFVBQVUsTUFBTSxLQUFLLFVBQVUsTUFBTSxPQUFPLFVBQVUsTUFBTSxLQUFLLFVBQVUsTUFBTSxNQUFNLFVBQVUsVUFBVSxNQUFNLEtBQUssV0FBVyxNQUFNLEtBQUssV0FBVyxNQUFNLEtBQUssVUFBVSxVQUFVLFVBQVUsTUFBTSxLQUFLLFdBQVcsVUFBVSxVQUFVLE1BQU0sS0FBSyxXQUFXLFVBQVUsTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssV0FBVyxXQUFXLE1BQU0sTUFBTSxVQUFVLFdBQVcsV0FBVyxNQUFNLEtBQUssV0FBVyxXQUFXLFVBQVUsVUFBVSxXQUFXLE1BQU0sS0FBSyxXQUFXLFdBQVcsTUFBTSxLQUFLLFdBQVcsMENBQTBDLG9CQUFvQiwwQkFBMEIsbUJBQW1CLEtBQUssc0RBQXNELHFCQUFxQixpQkFBaUIsZUFBZSxnQkFBZ0IsS0FBSyxnQ0FBZ0Msb0JBQW9CLEtBQUssK0dBQStHLHNCQUFzQixLQUFLLDhCQUE4QixrQkFBa0IsS0FBSywrQ0FBK0MscUJBQXFCLGlCQUFpQixLQUFLLDhCQUE4Qix1QkFBdUIsS0FBSyxxQ0FBcUMsdUJBQXVCLEtBQUssNkJBQTZCLGtCQUFrQixtQkFBbUIsZ0JBQWdCLEtBQUssbUJBQW1CLDhCQUE4QixrQkFBa0Isc0JBQXNCLEtBQUsseUJBQXlCLHVCQUF1QixrQkFBa0IsS0FBSyxpQkFBaUIsc0JBQXNCLEtBQUsscUNBQXFDLGdCQUFnQixLQUFLLG9CQUFvQixhQUFhLGNBQWMsT0FBTyxLQUFLLCtCQUErQix5QkFBeUIscUNBQXFDLGdDQUFnQyw2QkFBNkIsS0FBSyxzRUFBc0UsZ0JBQWdCLCtEQUErRCwwREFBMEQsdURBQXVELG1DQUFtQyw4QkFBOEIsMkJBQTJCLEtBQUssK0JBQStCLCtCQUErQix3QkFBd0IsZ0JBQWdCLGVBQWUsdUJBQXVCLEtBQUssMEJBQTBCLCtCQUErQixvQ0FBb0MsS0FBSywrQkFBK0Isd0JBQXdCLEtBQUssbUJBQW1CO0FBQ3hpSTtBQUNBLCtEQUFlLHVCQUF1QixFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9zdHlsZXMvbWFpbi5zY3NzP2ZmZWMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvY3NzLWxvYWRlci9zcmMvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyh0cnVlKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIi5ibG9nLWNydiAuaXRlbSB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGhlaWdodDogMTAwJTtcXG59XFxuXFxuLmJsb2NrLXNlYyAudGVzdGltLWJveCAuc2xpY2stZG90cyBsaSBidXR0b24ge1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBvcGFjaXR5OiAwO1xcbiAgd2lkdGg6IDA7XFxuICBoZWlnaHQ6IDA7XFxufVxcblxcbi5zbGlkZXIgLnNvY2lhbC1pY29uIGEge1xcbiAgbWFyZ2luOiAwIDNweDtcXG59XFxuXFxuLm5hdmJhciAubmF2YmFyLW5hdiAubmF2LWxpbmssXFxuLnZpZGVvIC52aWQgLnZpZC1idXRuIC5pY29uLFxcbi52aWRlby13cmFwcGVyIC52aWQgLnZpZC1idXRuIC5pY29uIHtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuXFxuLmJsb2NrLXNlYyAudmlkLWFyZWEge1xcbiAgei1pbmRleDogOTk7XFxufVxcblxcbi5kaXYtdG9vbHRpcC10aXQsXFxuLmRpdi10b29sdGlwLXN1YiB7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIHBhZGRpbmc6IDA7XFxufVxcblxcbnNlY3Rpb24udGVzdGltb25pYWxzIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcblxcbi5jb250YWN0LXBhZ2UgLnBhZ2VzLWhlYWRlciB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbn1cXG5cXG5kaXYjaWVhdG1hcHMgaWZyYW1lIHtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgYm9yZGVyOiAwO1xcbn1cXG5cXG5idXR0b24ubmIge1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICBjb2xvcjogI2ZmZjtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuXFxuYnV0dG9uLm5iOmhvdmVyIHtcXG4gIGJhY2tncm91bmQ6ICNmZmY7XFxuICBjb2xvcjogIzIyMjtcXG59XFxuXFxuLnJlcGxheSB7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcblxcbi5wYWNlLWRvbmUgI3ByZWxvYWRlcjphZnRlciB7XFxuICBib3R0b206IDA7XFxufVxcblxcbiNwcmVsb2FkZXIge1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG59XFxuXFxuLnBhY2UtZG9uZSAjcHJlbG9hZGVyIHtcXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcXG4gIHRyYW5zaXRpb24tZGVsYXk6IDEuNXM7XFxufVxcblxcbi5wYWNlLWRvbmUgI3ByZWxvYWRlcjphZnRlcixcXG4ucGFjZS1kb25lICNwcmVsb2FkZXI6YmVmb3JlIHtcXG4gIGhlaWdodDogMDtcXG4gIHRyYW5zaXRpb246IGFsbCAwLjdzIGN1YmljLWJlemllcigxLCAwLCAwLjU1LCAxKTtcXG4gIHRyYW5zaXRpb24tZGVsYXk6IDFzO1xcbn1cXG5cXG5ib2R5LmhpZGVYICNwcmVsb2FkZXIge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbiAgei1pbmRleDogLTExMTExMTE7XFxuICBoZWlnaHQ6IDA7XFxuICB3aWR0aDogMDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcblxcbmJvZHkuaGlkZVggLnBhY2Uge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcblxcbi5hcHAtZm9vdGVyIC5zb2NpYWwgYSB7XFxuICBtYXJnaW4tcmlnaHQ6IDRweDtcXG59XCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovL21haW4uc2Nzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQTtFQUNFLGFBQUE7RUFDQSxtQkFBQTtFQUNBLFlBQUE7QUFDRjs7QUFFQTtFQUNFLGNBQUE7RUFDQSxVQUFBO0VBQ0EsUUFBQTtFQUNBLFNBQUE7QUFDRjs7QUFFQTtFQUNFLGFBQUE7QUFDRjs7QUFFQTs7O0VBR0UsZUFBQTtBQUNGOztBQUVBO0VBQ0UsV0FBQTtBQUNGOztBQUVBOztFQUVFLGNBQUE7RUFDQSxVQUFBO0FBQ0Y7O0FBRUE7RUFDRSxnQkFBQTtBQUNGOztBQUVBO0VBQ0UsZ0JBQUE7QUFDRjs7QUFFQTtFQUNFLFdBQUE7RUFDQSxZQUFBO0VBQ0EsU0FBQTtBQUNGOztBQUVBO0VBQ0UsdUJBQUE7RUFDQSxXQUFBO0VBQ0EsZUFBQTtBQUNGOztBQUVBO0VBQ0UsZ0JBQUE7RUFDQSxXQUFBO0FBQ0Y7O0FBRUE7RUFDRSxlQUFBO0FBQ0Y7O0FBRUE7RUFDRSxTQUFBO0FBQ0Y7O0FBRUE7RUFDRSxNQUFBO0VBQ0EsT0FBQTtBQUNGOztBQUdBO0VBQ0Usa0JBQUE7RUFHQSxzQkFBQTtBQUFGOztBQUdBOztFQUVFLFNBQUE7RUFHQSxnREFBQTtFQUdBLG9CQUFBO0FBQUY7O0FBR0E7RUFDRSx3QkFBQTtFQUNBLGlCQUFBO0VBQ0EsU0FBQTtFQUNBLFFBQUE7RUFDQSxnQkFBQTtBQUFGOztBQUdBO0VBQ0Usd0JBQUE7RUFDQSw2QkFBQTtBQUFGOztBQUdBO0VBQ0UsaUJBQUE7QUFBRlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCIuYmxvZy1jcnYgLml0ZW0ge1xcclxcbiAgZGlzcGxheTogZmxleDtcXHJcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxyXFxuICBoZWlnaHQ6IDEwMCU7XFxyXFxufVxcclxcblxcclxcbi5ibG9jay1zZWMgLnRlc3RpbS1ib3ggLnNsaWNrLWRvdHMgbGkgYnV0dG9uIHtcXHJcXG4gIGRpc3BsYXk6IGJsb2NrO1xcclxcbiAgb3BhY2l0eTogMDtcXHJcXG4gIHdpZHRoOiAwO1xcclxcbiAgaGVpZ2h0OiAwO1xcclxcbn1cXHJcXG5cXHJcXG4uc2xpZGVyIC5zb2NpYWwtaWNvbiBhIHtcXHJcXG4gIG1hcmdpbjogMCAzcHg7XFxyXFxufVxcclxcblxcclxcbi5uYXZiYXIgLm5hdmJhci1uYXYgLm5hdi1saW5rLFxcclxcbi52aWRlbyAudmlkIC52aWQtYnV0biAuaWNvbixcXHJcXG4udmlkZW8td3JhcHBlciAudmlkIC52aWQtYnV0biAuaWNvbiB7XFxyXFxuICBjdXJzb3I6IHBvaW50ZXI7XFxyXFxufVxcclxcblxcclxcbi5ibG9jay1zZWMgLnZpZC1hcmVhIHtcXHJcXG4gIHotaW5kZXg6IDk5O1xcclxcbn1cXHJcXG5cXHJcXG4uZGl2LXRvb2x0aXAtdGl0LFxcclxcbi5kaXYtdG9vbHRpcC1zdWIge1xcclxcbiAgZGlzcGxheTogYmxvY2s7XFxyXFxuICBwYWRkaW5nOiAwO1xcclxcbn1cXHJcXG5cXHJcXG5zZWN0aW9uLnRlc3RpbW9uaWFscyB7XFxyXFxuICBvdmVyZmxvdzogaGlkZGVuO1xcclxcbn1cXHJcXG5cXHJcXG4uY29udGFjdC1wYWdlIC5wYWdlcy1oZWFkZXIge1xcclxcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXHJcXG59XFxyXFxuXFxyXFxuZGl2I2llYXRtYXBzIGlmcmFtZSB7XFxyXFxuICB3aWR0aDogMTAwJTtcXHJcXG4gIGhlaWdodDogMTAwJTtcXHJcXG4gIGJvcmRlcjogMDtcXHJcXG59XFxyXFxuXFxyXFxuYnV0dG9uLm5iIHtcXHJcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcclxcbiAgY29sb3I6ICNmZmY7XFxyXFxuICBjdXJzb3I6IHBvaW50ZXI7XFxyXFxufVxcclxcblxcclxcbmJ1dHRvbi5uYjpob3ZlciB7XFxyXFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcclxcbiAgY29sb3I6ICMyMjI7XFxyXFxufVxcclxcblxcclxcbi5yZXBsYXkge1xcclxcbiAgY3Vyc29yOiBwb2ludGVyO1xcclxcbn1cXHJcXG5cXHJcXG4ucGFjZS1kb25lICNwcmVsb2FkZXI6YWZ0ZXIge1xcclxcbiAgYm90dG9tOiAwO1xcclxcbn1cXHJcXG5cXHJcXG4jcHJlbG9hZGVyIHtcXHJcXG4gIHRvcDogMDtcXHJcXG4gIGxlZnQ6IDA7XFxyXFxuICA7XFxyXFxufVxcclxcblxcclxcbi5wYWNlLWRvbmUgI3ByZWxvYWRlciB7XFxyXFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XFxyXFxuICAtd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6IDEuNXM7XFxyXFxuICAtby10cmFuc2l0aW9uLWRlbGF5OiAxLjVzO1xcclxcbiAgdHJhbnNpdGlvbi1kZWxheTogMS41cztcXHJcXG59XFxyXFxuXFxyXFxuLnBhY2UtZG9uZSAjcHJlbG9hZGVyOmFmdGVyLFxcclxcbi5wYWNlLWRvbmUgI3ByZWxvYWRlcjpiZWZvcmUge1xcclxcbiAgaGVpZ2h0OiAwO1xcclxcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC43cyBjdWJpYy1iZXppZXIoMSwgMCwgMC41NSwgMSk7XFxyXFxuICAtby10cmFuc2l0aW9uOiBhbGwgMC43cyBjdWJpYy1iZXppZXIoMSwgMCwgMC41NSwgMSk7XFxyXFxuICB0cmFuc2l0aW9uOiBhbGwgMC43cyBjdWJpYy1iZXppZXIoMSwgMCwgMC41NSwgMSk7XFxyXFxuICAtd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6IDFzO1xcclxcbiAgLW8tdHJhbnNpdGlvbi1kZWxheTogMXM7XFxyXFxuICB0cmFuc2l0aW9uLWRlbGF5OiAxcztcXHJcXG59XFxyXFxuXFxyXFxuYm9keS5oaWRlWCAjcHJlbG9hZGVyIHtcXHJcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXHJcXG4gIHotaW5kZXg6IC0xMTExMTExO1xcclxcbiAgaGVpZ2h0OiAwO1xcclxcbiAgd2lkdGg6IDA7XFxyXFxuICBvdmVyZmxvdzogaGlkZGVuO1xcclxcbn1cXHJcXG5cXHJcXG5ib2R5LmhpZGVYIC5wYWNlIHtcXHJcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXHJcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcclxcbn1cXHJcXG5cXHJcXG4uYXBwLWZvb3RlciAuc29jaWFsIGEge1xcclxcbiAgbWFyZ2luLXJpZ2h0OiA0cHg7XFxyXFxufVwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[10].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[10].use[2]!./node_modules/next/dist/compiled/resolve-url-loader/index.js??ruleSet[1].rules[2].oneOf[10].use[3]!./node_modules/next/dist/compiled/sass-loader/cjs.js??ruleSet[1].rules[2].oneOf[10].use[4]!./src/styles/main.scss\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[9].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[9].use[2]!./src/styles/preloader.css": +/*!**************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[9].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[9].use[2]!./src/styles/preloader.css ***! + \**************************************************************************************************************************************************************************************************************************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js\");\n/* harmony import */ var _node_modules_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);\n// Imports\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/* ====================== [ Start Preloader ] ====================== */\\r\\n.pace {\\r\\n pointer-events: none;\\r\\n -webkit-user-select: none;\\r\\n -moz-user-select: none;\\r\\n -ms-user-select: none;\\r\\n user-select: none;\\r\\n z-index: 99999999999999;\\r\\n position: fixed;\\r\\n margin: auto;\\r\\n top: 0;\\r\\n left: 0;\\r\\n right: 0;\\r\\n bottom: 0;\\r\\n width: 400px;\\r\\n border: 0px;\\r\\n height: 1px;\\r\\n overflow: hidden;\\r\\n background: rgba(255, 255, 255, 0.05);\\r\\n transition: all 1s;\\r\\n}\\r\\n\\r\\n.pace .pace-progress {\\r\\n transform: translate3d(0, 0, 0);\\r\\n max-width: 300px;\\r\\n position: fixed;\\r\\n z-index: 99999999999999;\\r\\n display: block;\\r\\n position: absolute;\\r\\n top: 0;\\r\\n right: 100%;\\r\\n height: 100%;\\r\\n width: 100%;\\r\\n background: #12c2e9;\\r\\n background: linear-gradient(to right, #12c2e9, #c471ed, #f64f59);\\r\\n}\\r\\n\\r\\n.pace.pace-inactive {\\r\\n width: 100vw;\\r\\n opacity: 0;\\r\\n}\\r\\n\\r\\n.pace.pace-inactive .pace-progress {\\r\\n max-width: 100vw;\\r\\n}\\r\\n\\r\\n#preloader {\\r\\n width: 100%;\\r\\n height: 100vh;\\r\\n overflow: hidden;\\r\\n position: fixed;\\r\\n z-index: 9999999;\\r\\n}\\r\\n\\r\\n#preloader:after,\\r\\n#preloader:before {\\r\\n content: \\\"\\\";\\r\\n position: fixed;\\r\\n left: 0;\\r\\n height: 50%;\\r\\n width: 100%;\\r\\n background: #252531;\\r\\n transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1);\\r\\n}\\r\\n\\r\\n#preloader:before {\\r\\n top: 0;\\r\\n}\\r\\n\\r\\n#preloader:after {\\r\\n bottom: 0;\\r\\n}\\r\\n\\r\\n#preloader.isdone {\\r\\n visibility: hidden;\\r\\n transition-delay: 1.5s;\\r\\n}\\r\\n\\r\\n#preloader.isdone:after,\\r\\n#preloader.isdone:before {\\r\\n height: 0;\\r\\n transition: all 0.7s cubic-bezier(1, 0, 0.55, 1);\\r\\n transition-delay: 1s;\\r\\n}\\r\\n\\r\\n.loading {\\r\\n position: fixed;\\r\\n left: 50%;\\r\\n top: calc(50% - 40px);\\r\\n transform: translateX(-50%) translateY(-50%);\\r\\n font-weight: 300;\\r\\n font-size: 13px;\\r\\n text-transform: uppercase;\\r\\n letter-spacing: 10px;\\r\\n z-index: 9999999999;\\r\\n}\\r\\n\\r\\n.loading.isdone {\\r\\n top: 50%;\\r\\n opacity: 0;\\r\\n transition: all 0.8s;\\r\\n transition-delay: 0.5s;\\r\\n}\\r\\n\\r\\n.loading span {\\r\\n animation: loading 1.4s infinite alternate;\\r\\n}\\r\\n\\r\\n.loading span:nth-child(1) {\\r\\n animation-delay: 0s;\\r\\n}\\r\\n\\r\\n.loading span:nth-child(2) {\\r\\n animation-delay: 0.1s;\\r\\n}\\r\\n\\r\\n.loading span:nth-child(3) {\\r\\n animation-delay: 0.2s;\\r\\n}\\r\\n\\r\\n.loading span:nth-child(4) {\\r\\n animation-delay: 0.3s;\\r\\n}\\r\\n\\r\\n.loading span:nth-child(5) {\\r\\n animation-delay: 0.4s;\\r\\n}\\r\\n\\r\\n.loading span:nth-child(6) {\\r\\n animation-delay: 0.5s;\\r\\n}\\r\\n\\r\\n.loading span:nth-child(7) {\\r\\n animation-delay: 0.6s;\\r\\n}\\r\\n\\r\\n@keyframes loading {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n/* ====================== [ End Preloader ] ====================== */\", \"\",{\"version\":3,\"sources\":[\"webpack://src/styles/preloader.css\"],\"names\":[],\"mappings\":\"AAAA,sEAAsE;AACtE;EACE,oBAAoB;EACpB,yBAAyB;EACzB,sBAAsB;EACtB,qBAAqB;EACrB,iBAAiB;EACjB,uBAAuB;EACvB,eAAe;EACf,YAAY;EACZ,MAAM;EACN,OAAO;EACP,QAAQ;EACR,SAAS;EACT,YAAY;EACZ,WAAW;EACX,WAAW;EACX,gBAAgB;EAChB,qCAAqC;EAGrC,kBAAkB;AACpB;;AAEA;EAEE,+BAA+B;EAC/B,gBAAgB;EAChB,eAAe;EACf,uBAAuB;EACvB,cAAc;EACd,kBAAkB;EAClB,MAAM;EACN,WAAW;EACX,YAAY;EACZ,WAAW;EACX,mBAAmB;EAWnB,gEAAgE;AAClE;;AAEA;EACE,YAAY;EACZ,UAAU;AACZ;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,WAAW;EACX,aAAa;EACb,gBAAgB;EAChB,eAAe;EACf,gBAAgB;AAClB;;AAEA;;EAEE,WAAW;EACX,eAAe;EACf,OAAO;EACP,WAAW;EACX,WAAW;EACX,mBAAmB;EAGnB,0DAA0D;AAC5D;;AAEA;EACE,MAAM;AACR;;AAEA;EACE,SAAS;AACX;;AAEA;EACE,kBAAkB;EAGlB,sBAAsB;AACxB;;AAEA;;EAEE,SAAS;EAGT,gDAAgD;EAGhD,oBAAoB;AACtB;;AAEA;EACE,eAAe;EACf,SAAS;EACT,qBAAqB;EAGrB,4CAA4C;EAC5C,gBAAgB;EAChB,eAAe;EACf,yBAAyB;EACzB,oBAAoB;EACpB,mBAAmB;AACrB;;AAEA;EACE,QAAQ;EACR,UAAU;EAGV,oBAAoB;EAGpB,sBAAsB;AACxB;;AAEA;EAEE,0CAA0C;AAC5C;;AAEA;EAEE,mBAAmB;AACrB;;AAEA;EAEE,qBAAqB;AACvB;;AAEA;EAEE,qBAAqB;AACvB;;AAEA;EAEE,qBAAqB;AACvB;;AAEA;EAEE,qBAAqB;AACvB;;AAEA;EAEE,qBAAqB;AACvB;;AAEA;EAEE,qBAAqB;AACvB;;AAYA;EACE;IACE,UAAU;EACZ;;EAEA;IACE,UAAU;EACZ;AACF;;AAEA,oEAAoE\",\"sourcesContent\":[\"/* ====================== [ Start Preloader ] ====================== */\\r\\n.pace {\\r\\n pointer-events: none;\\r\\n -webkit-user-select: none;\\r\\n -moz-user-select: none;\\r\\n -ms-user-select: none;\\r\\n user-select: none;\\r\\n z-index: 99999999999999;\\r\\n position: fixed;\\r\\n margin: auto;\\r\\n top: 0;\\r\\n left: 0;\\r\\n right: 0;\\r\\n bottom: 0;\\r\\n width: 400px;\\r\\n border: 0px;\\r\\n height: 1px;\\r\\n overflow: hidden;\\r\\n background: rgba(255, 255, 255, 0.05);\\r\\n -webkit-transition: all 1s;\\r\\n -o-transition: all 1s;\\r\\n transition: all 1s;\\r\\n}\\r\\n\\r\\n.pace .pace-progress {\\r\\n -webkit-transform: translate3d(0, 0, 0);\\r\\n transform: translate3d(0, 0, 0);\\r\\n max-width: 300px;\\r\\n position: fixed;\\r\\n z-index: 99999999999999;\\r\\n display: block;\\r\\n position: absolute;\\r\\n top: 0;\\r\\n right: 100%;\\r\\n height: 100%;\\r\\n width: 100%;\\r\\n background: #12c2e9;\\r\\n background: -webkit-gradient(\\r\\n linear,\\r\\n left top,\\r\\n right top,\\r\\n from(#12c2e9),\\r\\n color-stop(#c471ed),\\r\\n to(#f64f59)\\r\\n );\\r\\n background: -webkit-linear-gradient(left, #12c2e9, #c471ed, #f64f59);\\r\\n background: -o-linear-gradient(left, #12c2e9, #c471ed, #f64f59);\\r\\n background: linear-gradient(to right, #12c2e9, #c471ed, #f64f59);\\r\\n}\\r\\n\\r\\n.pace.pace-inactive {\\r\\n width: 100vw;\\r\\n opacity: 0;\\r\\n}\\r\\n\\r\\n.pace.pace-inactive .pace-progress {\\r\\n max-width: 100vw;\\r\\n}\\r\\n\\r\\n#preloader {\\r\\n width: 100%;\\r\\n height: 100vh;\\r\\n overflow: hidden;\\r\\n position: fixed;\\r\\n z-index: 9999999;\\r\\n}\\r\\n\\r\\n#preloader:after,\\r\\n#preloader:before {\\r\\n content: \\\"\\\";\\r\\n position: fixed;\\r\\n left: 0;\\r\\n height: 50%;\\r\\n width: 100%;\\r\\n background: #252531;\\r\\n -webkit-transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1);\\r\\n -o-transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1);\\r\\n transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1);\\r\\n}\\r\\n\\r\\n#preloader:before {\\r\\n top: 0;\\r\\n}\\r\\n\\r\\n#preloader:after {\\r\\n bottom: 0;\\r\\n}\\r\\n\\r\\n#preloader.isdone {\\r\\n visibility: hidden;\\r\\n -webkit-transition-delay: 1.5s;\\r\\n -o-transition-delay: 1.5s;\\r\\n transition-delay: 1.5s;\\r\\n}\\r\\n\\r\\n#preloader.isdone:after,\\r\\n#preloader.isdone:before {\\r\\n height: 0;\\r\\n -webkit-transition: all 0.7s cubic-bezier(1, 0, 0.55, 1);\\r\\n -o-transition: all 0.7s cubic-bezier(1, 0, 0.55, 1);\\r\\n transition: all 0.7s cubic-bezier(1, 0, 0.55, 1);\\r\\n -webkit-transition-delay: 1s;\\r\\n -o-transition-delay: 1s;\\r\\n transition-delay: 1s;\\r\\n}\\r\\n\\r\\n.loading {\\r\\n position: fixed;\\r\\n left: 50%;\\r\\n top: calc(50% - 40px);\\r\\n -webkit-transform: translateX(-50%) translateY(-50%);\\r\\n -ms-transform: translateX(-50%) translateY(-50%);\\r\\n transform: translateX(-50%) translateY(-50%);\\r\\n font-weight: 300;\\r\\n font-size: 13px;\\r\\n text-transform: uppercase;\\r\\n letter-spacing: 10px;\\r\\n z-index: 9999999999;\\r\\n}\\r\\n\\r\\n.loading.isdone {\\r\\n top: 50%;\\r\\n opacity: 0;\\r\\n -webkit-transition: all 0.8s;\\r\\n -o-transition: all 0.8s;\\r\\n transition: all 0.8s;\\r\\n -webkit-transition-delay: 0.5s;\\r\\n -o-transition-delay: 0.5s;\\r\\n transition-delay: 0.5s;\\r\\n}\\r\\n\\r\\n.loading span {\\r\\n -webkit-animation: loading 1.4s infinite alternate;\\r\\n animation: loading 1.4s infinite alternate;\\r\\n}\\r\\n\\r\\n.loading span:nth-child(1) {\\r\\n -webkit-animation-delay: 0s;\\r\\n animation-delay: 0s;\\r\\n}\\r\\n\\r\\n.loading span:nth-child(2) {\\r\\n -webkit-animation-delay: 0.1s;\\r\\n animation-delay: 0.1s;\\r\\n}\\r\\n\\r\\n.loading span:nth-child(3) {\\r\\n -webkit-animation-delay: 0.2s;\\r\\n animation-delay: 0.2s;\\r\\n}\\r\\n\\r\\n.loading span:nth-child(4) {\\r\\n -webkit-animation-delay: 0.3s;\\r\\n animation-delay: 0.3s;\\r\\n}\\r\\n\\r\\n.loading span:nth-child(5) {\\r\\n -webkit-animation-delay: 0.4s;\\r\\n animation-delay: 0.4s;\\r\\n}\\r\\n\\r\\n.loading span:nth-child(6) {\\r\\n -webkit-animation-delay: 0.5s;\\r\\n animation-delay: 0.5s;\\r\\n}\\r\\n\\r\\n.loading span:nth-child(7) {\\r\\n -webkit-animation-delay: 0.6s;\\r\\n animation-delay: 0.6s;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes loading {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes loading {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n/* ====================== [ End Preloader ] ====================== */\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls5XS51c2VbMV0hLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOV0udXNlWzJdIS4vc3JjL3N0eWxlcy9wcmVsb2FkZXIuY3NzLmpzIiwibWFwcGluZ3MiOiI7OztBQUFBO0FBQzJIO0FBQzNILDhCQUE4QixrSEFBMkI7QUFDekQ7QUFDQSw0SEFBNEgsMkJBQTJCLGdDQUFnQyw2QkFBNkIsNEJBQTRCLHdCQUF3Qiw4QkFBOEIsc0JBQXNCLG1CQUFtQixhQUFhLGNBQWMsZUFBZSxnQkFBZ0IsbUJBQW1CLGtCQUFrQixrQkFBa0IsdUJBQXVCLDRDQUE0Qyx5QkFBeUIsS0FBSyw4QkFBOEIsc0NBQXNDLHVCQUF1QixzQkFBc0IsOEJBQThCLHFCQUFxQix5QkFBeUIsYUFBYSxrQkFBa0IsbUJBQW1CLGtCQUFrQiwwQkFBMEIsdUVBQXVFLEtBQUssNkJBQTZCLG1CQUFtQixpQkFBaUIsS0FBSyw0Q0FBNEMsdUJBQXVCLEtBQUssb0JBQW9CLGtCQUFrQixvQkFBb0IsdUJBQXVCLHNCQUFzQix1QkFBdUIsS0FBSyxnREFBZ0Qsb0JBQW9CLHNCQUFzQixjQUFjLGtCQUFrQixrQkFBa0IsMEJBQTBCLGlFQUFpRSxLQUFLLDJCQUEyQixhQUFhLEtBQUssMEJBQTBCLGdCQUFnQixLQUFLLDJCQUEyQix5QkFBeUIsNkJBQTZCLEtBQUssOERBQThELGdCQUFnQix1REFBdUQsMkJBQTJCLEtBQUssa0JBQWtCLHNCQUFzQixnQkFBZ0IsNEJBQTRCLG1EQUFtRCx1QkFBdUIsc0JBQXNCLGdDQUFnQywyQkFBMkIsMEJBQTBCLEtBQUsseUJBQXlCLGVBQWUsaUJBQWlCLDJCQUEy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QW1CLE9BQU8sS0FBSyw0QkFBNEIsVUFBVSxtQkFBbUIsT0FBTyxnQkFBZ0IsbUJBQW1CLE9BQU8sS0FBSyxnR0FBZ0c7QUFDcnpRO0FBQ0EsK0RBQWUsdUJBQXVCLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL3N0eWxlcy9wcmVsb2FkZXIuY3NzPzI2YmUiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvY3NzLWxvYWRlci9zcmMvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyh0cnVlKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIi8qID09PT09PT09PT09PT09PT09PT09PT0gWyBTdGFydCBQcmVsb2FkZXIgXSA9PT09PT09PT09PT09PT09PT09PT09ICovXFxyXFxuLnBhY2Uge1xcclxcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxyXFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcclxcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcXHJcXG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcXHJcXG4gIHVzZXItc2VsZWN0OiBub25lO1xcclxcbiAgei1pbmRleDogOTk5OTk5OTk5OTk5OTk7XFxyXFxuICBwb3NpdGlvbjogZml4ZWQ7XFxyXFxuICBtYXJnaW46IGF1dG87XFxyXFxuICB0b3A6IDA7XFxyXFxuICBsZWZ0OiAwO1xcclxcbiAgcmlnaHQ6IDA7XFxyXFxuICBib3R0b206IDA7XFxyXFxuICB3aWR0aDogNDAwcHg7XFxyXFxuICBib3JkZXI6IDBweDtcXHJcXG4gIGhlaWdodDogMXB4O1xcclxcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXHJcXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSk7XFxyXFxuICB0cmFuc2l0aW9uOiBhbGwgMXM7XFxyXFxufVxcclxcblxcclxcbi5wYWNlIC5wYWNlLXByb2dyZXNzIHtcXHJcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XFxyXFxuICBtYXgtd2lkdGg6IDMwMHB4O1xcclxcbiAgcG9zaXRpb246IGZpeGVkO1xcclxcbiAgei1pbmRleDogOTk5OTk5OTk5OTk5OTk7XFxyXFxuICBkaXNwbGF5OiBibG9jaztcXHJcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXHJcXG4gIHRvcDogMDtcXHJcXG4gIHJpZ2h0OiAxMDAlO1xcclxcbiAgaGVpZ2h0OiAxMDAlO1xcclxcbiAgd2lkdGg6IDEwMCU7XFxyXFxuICBiYWNrZ3JvdW5kOiAjMTJjMmU5O1xcclxcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjMTJjMmU5LCAjYzQ3MWVkLCAjZjY0ZjU5KTtcXHJcXG59XFxyXFxuXFxyXFxuLnBhY2UucGFjZS1pbmFjdGl2ZSB7XFxyXFxuICB3aWR0aDogMTAwdnc7XFxyXFxuICBvcGFjaXR5OiAwO1xcclxcbn1cXHJcXG5cXHJcXG4ucGFjZS5wYWNlLWluYWN0aXZlIC5wYWNlLXByb2dyZXNzIHtcXHJcXG4gIG1heC13aWR0aDogMTAwdnc7XFxyXFxufVxcclxcblxcclxcbiNwcmVsb2FkZXIge1xcclxcbiAgd2lkdGg6IDEwMCU7XFxyXFxuICBoZWlnaHQ6IDEwMHZoO1xcclxcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXHJcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXHJcXG4gIHotaW5kZXg6IDk5OTk5OTk7XFxyXFxufVxcclxcblxcclxcbiNwcmVsb2FkZXI6YWZ0ZXIsXFxyXFxuI3ByZWxvYWRlcjpiZWZvcmUge1xcclxcbiAgY29udGVudDogXFxcIlxcXCI7XFxyXFxuICBwb3NpdGlvbjogZml4ZWQ7XFxyXFxuICBsZWZ0OiAwO1xcclxcbiAgaGVpZ2h0OiA1MCU7XFxyXFxuICB3aWR0aDogMTAwJTtcXHJcXG4gIGJhY2tncm91bmQ6ICMyNTI1MzE7XFxyXFxuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTksIDEsIDAuMjIsIDEpO1xcclxcbn1cXHJcXG5cXHJcXG4jcHJlbG9hZGVyOmJlZm9yZSB7XFxyXFxuICB0b3A6IDA7XFxyXFxufVxcclxcblxcclxcbiNwcmVsb2FkZXI6YWZ0ZXIge1xcclxcbiAgYm90dG9tOiAwO1xcclxcbn1cXHJcXG5cXHJcXG4jcHJlbG9hZGVyLmlzZG9uZSB7XFxyXFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XFxyXFxuICB0cmFuc2l0aW9uLWRlbGF5OiAxLjVzO1xcclxcbn1cXHJcXG5cXHJcXG4jcHJlbG9hZGVyLmlzZG9uZTphZnRlcixcXHJcXG4jcHJlbG9hZGVyLmlzZG9uZTpiZWZvcmUge1xcclxcbiAgaGVpZ2h0OiAwO1xcclxcbiAgdHJhbnNpdGlvbjogYWxsIDAuN3MgY3ViaWMtYmV6aWVyKDEsIDAsIDAuNTUsIDEpO1xcclxcbiAgdHJhbnNpdGlvbi1kZWxheTogMXM7XFxyXFxufVxcclxcblxcclxcbi5sb2FkaW5nIHtcXHJcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXHJcXG4gIGxlZnQ6IDUwJTtcXHJcXG4gIHRvcDogY2FsYyg1MCUgLSA0MHB4KTtcXHJcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xcclxcbiAgZm9udC13ZWlnaHQ6IDMwMDtcXHJcXG4gIGZvbnQtc2l6ZTogMTNweDtcXHJcXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XFxyXFxuICBsZXR0ZXItc3BhY2luZzogMTBweDtcXHJcXG4gIHotaW5kZXg6IDk5OTk5OTk5OTk7XFxyXFxufVxcclxcblxcclxcbi5sb2FkaW5nLmlzZG9uZSB7XFxyXFxuICB0b3A6IDUwJTtcXHJcXG4gIG9wYWNpdHk6IDA7XFxyXFxuICB0cmFuc2l0aW9uOiBhbGwgMC44cztcXHJcXG4gIHRyYW5zaXRpb24tZGVsYXk6IDAuNXM7XFxyXFxufVxcclxcblxcclxcbi5sb2FkaW5nIHNwYW4ge1xcclxcbiAgYW5pbWF0aW9uOiBsb2FkaW5nIDEuNHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xcclxcbn1cXHJcXG5cXHJcXG4ubG9hZGluZyBzcGFuOm50aC1jaGlsZCgxKSB7XFxyXFxuICBhbmltYXRpb24tZGVsYXk6IDBzO1xcclxcbn1cXHJcXG5cXHJcXG4ubG9hZGluZyBzcGFuOm50aC1jaGlsZCgyKSB7XFxyXFxuICBhbmltYXRpb24tZGVsYXk6IDAuMXM7XFxyXFxufVxcclxcblxcclxcbi5sb2FkaW5nIHNwYW46bnRoLWNoaWxkKDMpIHtcXHJcXG4gIGFuaW1hdGlvbi1kZWxheTogMC4ycztcXHJcXG59XFxyXFxuXFxyXFxuLmxvYWRpbmcgc3BhbjpudGgtY2hpbGQoNCkge1xcclxcbiAgYW5pbWF0aW9uLWRlbGF5OiAwLjNzO1xcclxcbn1cXHJcXG5cXHJcXG4ubG9hZGluZyBzcGFuOm50aC1jaGlsZCg1KSB7XFxyXFxuICBhbmltYXRpb24tZGVsYXk6IDAuNHM7XFxyXFxufVxcclxcblxcclxcbi5sb2FkaW5nIHNwYW46bnRoLWNoaWxkKDYpIHtcXHJcXG4gIGFuaW1hdGlvbi1kZWxheTogMC41cztcXHJcXG59XFxyXFxuXFxyXFxuLmxvYWRpbmcgc3BhbjpudGgtY2hpbGQoNykge1xcclxcbiAgYW5pbWF0aW9uLWRlbGF5OiAwLjZzO1xcclxcbn1cXHJcXG5cXHJcXG5Aa2V5ZnJhbWVzIGxvYWRpbmcge1xcclxcbiAgMCUge1xcclxcbiAgICBvcGFjaXR5OiAxO1xcclxcbiAgfVxcclxcblxcclxcbiAgMTAwJSB7XFxyXFxuICAgIG9wYWNpdHk6IDA7XFxyXFxuICB9XFxyXFxufVxcclxcblxcclxcbi8qID09PT09PT09PT09PT09PT09PT09PT0gWyBFbmQgUHJlbG9hZGVyIF0gPT09PT09PT09PT09PT09PT09PT09PSAqL1wiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly9zcmMvc3R5bGVzL3ByZWxvYWRlci5jc3NcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBQUEsc0VBQXNFO0FBQ3RFO0VBQ0Usb0JBQW9CO0VBQ3BCLHlCQUF5QjtFQUN6QixzQkFBc0I7RUFDdEIscUJBQXFCO0VBQ3JCLGlCQUFpQjtFQUNqQix1QkFBdUI7RUFDdkIsZUFBZTtFQUNmLFlBQVk7RUFDWixNQUFNO0VBQ04sT0FBTztFQUNQLFFBQVE7RUFDUixTQUFTO0VBQ1QsWUFBWTtFQUNaLFdBQVc7RUFDWCxXQUFXO0VBQ1gsZ0JBQWdCO0VBQ2hCLHFDQUFxQztFQUdyQyxrQkFBa0I7QUFDcEI7O0FBRUE7RUFFRSwrQkFBK0I7RUFDL0IsZ0JBQWdCO0VBQ2hCLGVBQWU7RUFDZix1QkFBdUI7RUFDdkIsY0FBYztFQUNkLGtCQUFrQjtFQUNsQixNQUFNO0VBQ04sV0FBVztFQUNYLFlBQVk7RUFDWixXQUFXO0VBQ1gsbUJBQW1CO0VBV25CLGdFQUFnRTtBQUNsRTs7QUFFQTtFQUNFLFlBQVk7RUFDWixVQUFVO0FBQ1o7O0FBRUE7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxXQUFXO0VBQ1gsYUFBYTtFQUNiLGdCQUFnQjtFQUNoQixlQUFlO0VBQ2YsZ0JBQWdCO0FBQ2xCOztBQUVBOztFQUVFLFdBQVc7RUFDWCxlQUFlO0VBQ2YsT0FBTztFQUNQLFdBQVc7RUFDWCxXQUFXO0VBQ1gsbUJBQW1CO0VBR25CLDBEQUEwRDtBQUM1RDs7QUFFQTtFQUNFLE1BQU07QUFDUjs7QUFFQTtFQUNFLFNBQVM7QUFDWDs7QUFFQTtFQUNFLGtCQUFrQjtFQUdsQixzQkFBc0I7QUFDeEI7O0FBRUE7O0VBRUUsU0FBUztFQUdULGdEQUFnRDtFQUdoRCxvQkFBb0I7QUFDdEI7O0FBRUE7RUFDRSxlQUFlO0VBQ2YsU0FBUztFQUNULHFCQUFxQjtFQUdyQiw0Q0FBNEM7RUFDNUMsZ0JBQWdCO0VBQ2hCLGVBQWU7RUFDZix5QkFBeUI7RUFDekIsb0JBQW9CO0VBQ3BCLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLFFBQVE7RUFDUixVQUFVO0VBR1Ysb0JBQW9CO0VBR3BCLHNCQUFzQjtBQUN4Qjs7QUFFQTtFQUVFLDBDQUEwQztBQUM1Qzs7QUFFQTtFQUVFLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUVFLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUVFLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUVFLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUVFLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUVFLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUVFLHFCQUFxQjtBQUN2Qjs7QUFZQTtFQUNFO0lBQ0UsVUFBVTtFQUNaOztFQUVBO0lBQ0UsVUFBVTtFQUNaO0FBQ0Y7O0FBRUEsb0VBQW9FXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIi8qID09PT09PT09PT09PT09PT09PT09PT0gWyBTdGFydCBQcmVsb2FkZXIgXSA9PT09PT09PT09PT09PT09PT09PT09ICovXFxyXFxuLnBhY2Uge1xcclxcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxyXFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcclxcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcXHJcXG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcXHJcXG4gIHVzZXItc2VsZWN0OiBub25lO1xcclxcbiAgei1pbmRleDogOTk5OTk5OTk5OTk5OTk7XFxyXFxuICBwb3NpdGlvbjogZml4ZWQ7XFxyXFxuICBtYXJnaW46IGF1dG87XFxyXFxuICB0b3A6IDA7XFxyXFxuICBsZWZ0OiAwO1xcclxcbiAgcmlnaHQ6IDA7XFxyXFxuICBib3R0b206IDA7XFxyXFxuICB3aWR0aDogNDAwcHg7XFxyXFxuICBib3JkZXI6IDBweDtcXHJcXG4gIGhlaWdodDogMXB4O1xcclxcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXHJcXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSk7XFxyXFxuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAxcztcXHJcXG4gIC1vLXRyYW5zaXRpb246IGFsbCAxcztcXHJcXG4gIHRyYW5zaXRpb246IGFsbCAxcztcXHJcXG59XFxyXFxuXFxyXFxuLnBhY2UgLnBhY2UtcHJvZ3Jlc3Mge1xcclxcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xcclxcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcXHJcXG4gIG1heC13aWR0aDogMzAwcHg7XFxyXFxuICBwb3NpdGlvbjogZml4ZWQ7XFxyXFxuICB6LWluZGV4OiA5OTk5OTk5OTk5OTk5OTtcXHJcXG4gIGRpc3BsYXk6IGJsb2NrO1xcclxcbiAgcG9zaXRpb246IGFic29sdXRlO1xcclxcbiAgdG9wOiAwO1xcclxcbiAgcmlnaHQ6IDEwMCU7XFxyXFxuICBoZWlnaHQ6IDEwMCU7XFxyXFxuICB3aWR0aDogMTAwJTtcXHJcXG4gIGJhY2tncm91bmQ6ICMxMmMyZTk7XFxyXFxuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KFxcclxcbiAgICBsaW5lYXIsXFxyXFxuICAgIGxlZnQgdG9wLFxcclxcbiAgICByaWdodCB0b3AsXFxyXFxuICAgIGZyb20oIzEyYzJlOSksXFxyXFxuICAgIGNvbG9yLXN0b3AoI2M0NzFlZCksXFxyXFxuICAgIHRvKCNmNjRmNTkpXFxyXFxuICApO1xcclxcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgIzEyYzJlOSwgI2M0NzFlZCwgI2Y2NGY1OSk7XFxyXFxuICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQobGVmdCwgIzEyYzJlOSwgI2M0NzFlZCwgI2Y2NGY1OSk7XFxyXFxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICMxMmMyZTksICNjNDcxZWQsICNmNjRmNTkpO1xcclxcbn1cXHJcXG5cXHJcXG4ucGFjZS5wYWNlLWluYWN0aXZlIHtcXHJcXG4gIHdpZHRoOiAxMDB2dztcXHJcXG4gIG9wYWNpdHk6IDA7XFxyXFxufVxcclxcblxcclxcbi5wYWNlLnBhY2UtaW5hY3RpdmUgLnBhY2UtcHJvZ3Jlc3Mge1xcclxcbiAgbWF4LXdpZHRoOiAxMDB2dztcXHJcXG59XFxyXFxuXFxyXFxuI3ByZWxvYWRlciB7XFxyXFxuICB3aWR0aDogMTAwJTtcXHJcXG4gIGhlaWdodDogMTAwdmg7XFxyXFxuICBvdmVyZmxvdzogaGlkZGVuO1xcclxcbiAgcG9zaXRpb246IGZpeGVkO1xcclxcbiAgei1pbmRleDogOTk5OTk5OTtcXHJcXG59XFxyXFxuXFxyXFxuI3ByZWxvYWRlcjphZnRlcixcXHJcXG4jcHJlbG9hZGVyOmJlZm9yZSB7XFxyXFxuICBjb250ZW50OiBcXFwiXFxcIjtcXHJcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXHJcXG4gIGxlZnQ6IDA7XFxyXFxuICBoZWlnaHQ6IDUwJTtcXHJcXG4gIHdpZHRoOiAxMDAlO1xcclxcbiAgYmFja2dyb3VuZDogIzI1MjUzMTtcXHJcXG4gIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE5LCAxLCAwLjIyLCAxKTtcXHJcXG4gIC1vLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xOSwgMSwgMC4yMiwgMSk7XFxyXFxuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTksIDEsIDAuMjIsIDEpO1xcclxcbn1cXHJcXG5cXHJcXG4jcHJlbG9hZGVyOmJlZm9yZSB7XFxyXFxuICB0b3A6IDA7XFxyXFxufVxcclxcblxcclxcbiNwcmVsb2FkZXI6YWZ0ZXIge1xcclxcbiAgYm90dG9tOiAwO1xcclxcbn1cXHJcXG5cXHJcXG4jcHJlbG9hZGVyLmlzZG9uZSB7XFxyXFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XFxyXFxuICAtd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6IDEuNXM7XFxyXFxuICAtby10cmFuc2l0aW9uLWRlbGF5OiAxLjVzO1xcclxcbiAgdHJhbnNpdGlvbi1kZWxheTogMS41cztcXHJcXG59XFxyXFxuXFxyXFxuI3ByZWxvYWRlci5pc2RvbmU6YWZ0ZXIsXFxyXFxuI3ByZWxvYWRlci5pc2RvbmU6YmVmb3JlIHtcXHJcXG4gIGhlaWdodDogMDtcXHJcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuN3MgY3ViaWMtYmV6aWVyKDEsIDAsIDAuNTUsIDEpO1xcclxcbiAgLW8tdHJhbnNpdGlvbjogYWxsIDAuN3MgY3ViaWMtYmV6aWVyKDEsIDAsIDAuNTUsIDEpO1xcclxcbiAgdHJhbnNpdGlvbjogYWxsIDAuN3MgY3ViaWMtYmV6aWVyKDEsIDAsIDAuNTUsIDEpO1xcclxcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5OiAxcztcXHJcXG4gIC1vLXRyYW5zaXRpb24tZGVsYXk6IDFzO1xcclxcbiAgdHJhbnNpdGlvbi1kZWxheTogMXM7XFxyXFxufVxcclxcblxcclxcbi5sb2FkaW5nIHtcXHJcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXHJcXG4gIGxlZnQ6IDUwJTtcXHJcXG4gIHRvcDogY2FsYyg1MCUgLSA0MHB4KTtcXHJcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XFxyXFxuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XFxyXFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcXHJcXG4gIGZvbnQtd2VpZ2h0OiAzMDA7XFxyXFxuICBmb250LXNpemU6IDEzcHg7XFxyXFxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xcclxcbiAgbGV0dGVyLXNwYWNpbmc6IDEwcHg7XFxyXFxuICB6LWluZGV4OiA5OTk5OTk5OTk5O1xcclxcbn1cXHJcXG5cXHJcXG4ubG9hZGluZy5pc2RvbmUge1xcclxcbiAgdG9wOiA1MCU7XFxyXFxuICBvcGFjaXR5OiAwO1xcclxcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC44cztcXHJcXG4gIC1vLXRyYW5zaXRpb246IGFsbCAwLjhzO1xcclxcbiAgdHJhbnNpdGlvbjogYWxsIDAuOHM7XFxyXFxuICAtd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6IDAuNXM7XFxyXFxuICAtby10cmFuc2l0aW9uLWRlbGF5OiAwLjVzO1xcclxcbiAgdHJhbnNpdGlvbi1kZWxheTogMC41cztcXHJcXG59XFxyXFxuXFxyXFxuLmxvYWRpbmcgc3BhbiB7XFxyXFxuICAtd2Via2l0LWFuaW1hdGlvbjogbG9hZGluZyAxLjRzIGluZmluaXRlIGFsdGVybmF0ZTtcXHJcXG4gIGFuaW1hdGlvbjogbG9hZGluZyAxLjRzIGluZmluaXRlIGFsdGVybmF0ZTtcXHJcXG59XFxyXFxuXFxyXFxuLmxvYWRpbmcgc3BhbjpudGgtY2hpbGQoMSkge1xcclxcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDBzO1xcclxcbiAgYW5pbWF0aW9uLWRlbGF5OiAwcztcXHJcXG59XFxyXFxuXFxyXFxuLmxvYWRpbmcgc3BhbjpudGgtY2hpbGQoMikge1xcclxcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDAuMXM7XFxyXFxuICBhbmltYXRpb24tZGVsYXk6IDAuMXM7XFxyXFxufVxcclxcblxcclxcbi5sb2FkaW5nIHNwYW46bnRoLWNoaWxkKDMpIHtcXHJcXG4gIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAwLjJzO1xcclxcbiAgYW5pbWF0aW9uLWRlbGF5OiAwLjJzO1xcclxcbn1cXHJcXG5cXHJcXG4ubG9hZGluZyBzcGFuOm50aC1jaGlsZCg0KSB7XFxyXFxuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMC4zcztcXHJcXG4gIGFuaW1hdGlvbi1kZWxheTogMC4zcztcXHJcXG59XFxyXFxuXFxyXFxuLmxvYWRpbmcgc3BhbjpudGgtY2hpbGQoNSkge1xcclxcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDAuNHM7XFxyXFxuICBhbmltYXRpb24tZGVsYXk6IDAuNHM7XFxyXFxufVxcclxcblxcclxcbi5sb2FkaW5nIHNwYW46bnRoLWNoaWxkKDYpIHtcXHJcXG4gIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAwLjVzO1xcclxcbiAgYW5pbWF0aW9uLWRlbGF5OiAwLjVzO1xcclxcbn1cXHJcXG5cXHJcXG4ubG9hZGluZyBzcGFuOm50aC1jaGlsZCg3KSB7XFxyXFxuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMC42cztcXHJcXG4gIGFuaW1hdGlvbi1kZWxheTogMC42cztcXHJcXG59XFxyXFxuXFxyXFxuQC13ZWJraXQta2V5ZnJhbWVzIGxvYWRpbmcge1xcclxcbiAgMCUge1xcclxcbiAgICBvcGFjaXR5OiAxO1xcclxcbiAgfVxcclxcblxcclxcbiAgMTAwJSB7XFxyXFxuICAgIG9wYWNpdHk6IDA7XFxyXFxuICB9XFxyXFxufVxcclxcblxcclxcbkBrZXlmcmFtZXMgbG9hZGluZyB7XFxyXFxuICAwJSB7XFxyXFxuICAgIG9wYWNpdHk6IDE7XFxyXFxuICB9XFxyXFxuXFxyXFxuICAxMDAlIHtcXHJcXG4gICAgb3BhY2l0eTogMDtcXHJcXG4gIH1cXHJcXG59XFxyXFxuXFxyXFxuLyogPT09PT09PT09PT09PT09PT09PT09PSBbIEVuZCBQcmVsb2FkZXIgXSA9PT09PT09PT09PT09PT09PT09PT09ICovXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[9].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[9].use[2]!./src/styles/preloader.css\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js": +/*!************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js ***! + \************************************************************************************/ +/***/ (function(module) { + +"use strict"; +eval("\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/ // css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function(useSourceMap) {\n var list = [] // return the list of modules as css string\n ;\n list.toString = function toString() {\n return this.map(function(item) {\n var content = cssWithMappingToString(item, useSourceMap);\n if (item[2]) {\n return '@media '.concat(item[2], ' {').concat(content, '}');\n }\n return content;\n }).join('');\n } // import a list of modules into the list\n ;\n // eslint-disable-next-line func-names\n list.i = function(modules, mediaQuery, dedupe) {\n if (typeof modules === 'string') {\n // eslint-disable-next-line no-param-reassign\n modules = [\n [\n null,\n modules,\n ''\n ]\n ];\n }\n var alreadyImportedModules = {\n };\n if (dedupe) {\n for(var i = 0; i < this.length; i++){\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for(var _i = 0; _i < modules.length; _i++){\n var item = [].concat(modules[_i]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = ''.concat(mediaQuery, ' and ').concat(item[2]);\n }\n }\n list.push(item);\n }\n };\n return list;\n};\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || '' // eslint-disable-next-line prefer-destructuring\n ;\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function(source) {\n return '/*# sourceURL='.concat(cssMapping.sourceRoot || '').concat(source, ' */');\n });\n return [\n content\n ].concat(sourceURLs).concat([\n sourceMapping\n ]).join('\\n');\n }\n return [\n content\n ].join('\\n');\n} // Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,'.concat(base64);\n return '/*# '.concat(data, ' */');\n}\n\n//# sourceMappingURL=api.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9ydW50aW1lL2FwaS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9EQUFvRCxxQkFBcUI7QUFDekU7QUFDQTtBQUNBLFNBQVM7QUFDVCxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQkFBMkIsaUJBQWlCO0FBQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLHFCQUFxQjtBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBO0FBQ0EsdURBQXVELGNBQWM7QUFDckU7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9ydW50aW1lL2FwaS5qcz9jYTRkIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuLypcbiAgTUlUIExpY2Vuc2UgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHBcbiAgQXV0aG9yIFRvYmlhcyBLb3BwZXJzIEBzb2tyYVxuKi8gLy8gY3NzIGJhc2UgY29kZSwgaW5qZWN0ZWQgYnkgdGhlIGNzcy1sb2FkZXJcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBmdW5jLW5hbWVzXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKHVzZVNvdXJjZU1hcCkge1xuICAgIHZhciBsaXN0ID0gW10gLy8gcmV0dXJuIHRoZSBsaXN0IG9mIG1vZHVsZXMgYXMgY3NzIHN0cmluZ1xuICAgIDtcbiAgICBsaXN0LnRvU3RyaW5nID0gZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1hcChmdW5jdGlvbihpdGVtKSB7XG4gICAgICAgICAgICB2YXIgY29udGVudCA9IGNzc1dpdGhNYXBwaW5nVG9TdHJpbmcoaXRlbSwgdXNlU291cmNlTWFwKTtcbiAgICAgICAgICAgIGlmIChpdGVtWzJdKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdAbWVkaWEgJy5jb25jYXQoaXRlbVsyXSwgJyB7JykuY29uY2F0KGNvbnRlbnQsICd9Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gY29udGVudDtcbiAgICAgICAgfSkuam9pbignJyk7XG4gICAgfSAvLyBpbXBvcnQgYSBsaXN0IG9mIG1vZHVsZXMgaW50byB0aGUgbGlzdFxuICAgIDtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZnVuYy1uYW1lc1xuICAgIGxpc3QuaSA9IGZ1bmN0aW9uKG1vZHVsZXMsIG1lZGlhUXVlcnksIGRlZHVwZSkge1xuICAgICAgICBpZiAodHlwZW9mIG1vZHVsZXMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgICAgICAgIG1vZHVsZXMgPSBbXG4gICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgICAgICBtb2R1bGVzLFxuICAgICAgICAgICAgICAgICAgICAnJ1xuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIF07XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGFscmVhZHlJbXBvcnRlZE1vZHVsZXMgPSB7XG4gICAgICAgIH07XG4gICAgICAgIGlmIChkZWR1cGUpIHtcbiAgICAgICAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLWRlc3RydWN0dXJpbmdcbiAgICAgICAgICAgICAgICB2YXIgaWQgPSB0aGlzW2ldWzBdO1xuICAgICAgICAgICAgICAgIGlmIChpZCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGFscmVhZHlJbXBvcnRlZE1vZHVsZXNbaWRdID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZm9yKHZhciBfaSA9IDA7IF9pIDwgbW9kdWxlcy5sZW5ndGg7IF9pKyspe1xuICAgICAgICAgICAgdmFyIGl0ZW0gPSBbXS5jb25jYXQobW9kdWxlc1tfaV0pO1xuICAgICAgICAgICAgaWYgKGRlZHVwZSAmJiBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzW2l0ZW1bMF1dKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWVkaWFRdWVyeSkge1xuICAgICAgICAgICAgICAgIGlmICghaXRlbVsyXSkge1xuICAgICAgICAgICAgICAgICAgICBpdGVtWzJdID0gbWVkaWFRdWVyeTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpdGVtWzJdID0gJycuY29uY2F0KG1lZGlhUXVlcnksICcgYW5kICcpLmNvbmNhdChpdGVtWzJdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsaXN0LnB1c2goaXRlbSk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIHJldHVybiBsaXN0O1xufTtcbmZ1bmN0aW9uIGNzc1dpdGhNYXBwaW5nVG9TdHJpbmcoaXRlbSwgdXNlU291cmNlTWFwKSB7XG4gICAgdmFyIGNvbnRlbnQgPSBpdGVtWzFdIHx8ICcnIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItZGVzdHJ1Y3R1cmluZ1xuICAgIDtcbiAgICB2YXIgY3NzTWFwcGluZyA9IGl0ZW1bM107XG4gICAgaWYgKCFjc3NNYXBwaW5nKSB7XG4gICAgICAgIHJldHVybiBjb250ZW50O1xuICAgIH1cbiAgICBpZiAodXNlU291cmNlTWFwICYmIHR5cGVvZiBidG9hID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHZhciBzb3VyY2VNYXBwaW5nID0gdG9Db21tZW50KGNzc01hcHBpbmcpO1xuICAgICAgICB2YXIgc291cmNlVVJMcyA9IGNzc01hcHBpbmcuc291cmNlcy5tYXAoZnVuY3Rpb24oc291cmNlKSB7XG4gICAgICAgICAgICByZXR1cm4gJy8qIyBzb3VyY2VVUkw9Jy5jb25jYXQoY3NzTWFwcGluZy5zb3VyY2VSb290IHx8ICcnKS5jb25jYXQoc291cmNlLCAnICovJyk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgY29udGVudFxuICAgICAgICBdLmNvbmNhdChzb3VyY2VVUkxzKS5jb25jYXQoW1xuICAgICAgICAgICAgc291cmNlTWFwcGluZ1xuICAgICAgICBdKS5qb2luKCdcXG4nKTtcbiAgICB9XG4gICAgcmV0dXJuIFtcbiAgICAgICAgY29udGVudFxuICAgIF0uam9pbignXFxuJyk7XG59IC8vIEFkYXB0ZWQgZnJvbSBjb252ZXJ0LXNvdXJjZS1tYXAgKE1JVClcbmZ1bmN0aW9uIHRvQ29tbWVudChzb3VyY2VNYXApIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZWZcbiAgICB2YXIgYmFzZTY0ID0gYnRvYSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoc291cmNlTWFwKSkpKTtcbiAgICB2YXIgZGF0YSA9ICdzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCwnLmNvbmNhdChiYXNlNjQpO1xuICAgIHJldHVybiAnLyojICcuY29uY2F0KGRhdGEsICcgKi8nKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YXBpLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2F_app&absolutePagePath=private-next-pages%2F_app!": +/*!*******************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2F_app&absolutePagePath=private-next-pages%2F_app! ***! + \*******************************************************************************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/_app\",\n function () {\n return __webpack_require__(/*! private-next-pages/_app */ \"./src/pages/_app.js\");\n }\n ]);\n if(true) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/_app\"])\n });\n }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWNsaWVudC1wYWdlcy1sb2FkZXIuanM/cGFnZT0lMkZfYXBwJmFic29sdXRlUGFnZVBhdGg9cHJpdmF0ZS1uZXh0LXBhZ2VzJTJGX2FwcCEuanMiLCJtYXBwaW5ncyI6IjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsbUJBQU8sQ0FBQyxvREFBeUI7QUFDaEQ7QUFDQTtBQUNBLE9BQU8sSUFBVTtBQUNqQixNQUFNLFVBQVU7QUFDaEI7QUFDQSxPQUFPO0FBQ1A7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvPzYzZWQiXSwic291cmNlc0NvbnRlbnQiOlsiXG4gICAgKHdpbmRvdy5fX05FWFRfUCA9IHdpbmRvdy5fX05FWFRfUCB8fCBbXSkucHVzaChbXG4gICAgICBcIi9fYXBwXCIsXG4gICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiByZXF1aXJlKFwicHJpdmF0ZS1uZXh0LXBhZ2VzL19hcHBcIik7XG4gICAgICB9XG4gICAgXSk7XG4gICAgaWYobW9kdWxlLmhvdCkge1xuICAgICAgbW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgd2luZG93Ll9fTkVYVF9QLnB1c2goW1wiL19hcHBcIl0pXG4gICAgICB9KTtcbiAgICB9XG4gICJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2F_app&absolutePagePath=private-next-pages%2F_app!\n"); + +/***/ }), + +/***/ "./src/styles/main.scss": +/*!******************************!*\ + !*** ./src/styles/main.scss ***! + \******************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var api = __webpack_require__(/*! !../../node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js */ \"./node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js\");\n var content = __webpack_require__(/*! !!../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[10].use[1]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[10].use[2]!../../node_modules/next/dist/compiled/resolve-url-loader/index.js??ruleSet[1].rules[2].oneOf[10].use[3]!../../node_modules/next/dist/compiled/sass-loader/cjs.js??ruleSet[1].rules[2].oneOf[10].use[4]!./main.scss */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[10].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[10].use[2]!./node_modules/next/dist/compiled/resolve-url-loader/index.js??ruleSet[1].rules[2].oneOf[10].use[3]!./node_modules/next/dist/compiled/sass-loader/cjs.js??ruleSet[1].rules[2].oneOf[10].use[4]!./src/styles/main.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = function(element) {\n // These elements should always exist. If they do not,\n // this code should fail.\n var anchorElement = document.querySelector('#__next_css__DO_NOT_USE__');\n var parentNode = anchorElement.parentNode// Normally <head>\n ;\n // Each style tag should be placed right before our\n // anchor. By inserting before and not after, we do not\n // need to track the last inserted element.\n parentNode.insertBefore(element, anchorElement);\n };\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\nif (true) {\n if (!content.locals || module.hot.invalidate) {\n var isEqualLocals = function isEqualLocals(a, b, isNamedExport) {\n if (!a && b || a && !b) {\n return false;\n }\n let p;\n for(p in a){\n if (isNamedExport && p === 'default') {\n continue;\n }\n if (a[p] !== b[p]) {\n return false;\n }\n }\n for(p in b){\n if (isNamedExport && p === 'default') {\n continue;\n }\n if (!a[p]) {\n return false;\n }\n }\n return true;\n};\n var oldLocals = content.locals;\n\n module.hot.accept(\n /*! !!../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[10].use[1]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[10].use[2]!../../node_modules/next/dist/compiled/resolve-url-loader/index.js??ruleSet[1].rules[2].oneOf[10].use[3]!../../node_modules/next/dist/compiled/sass-loader/cjs.js??ruleSet[1].rules[2].oneOf[10].use[4]!./main.scss */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[10].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[10].use[2]!./node_modules/next/dist/compiled/resolve-url-loader/index.js??ruleSet[1].rules[2].oneOf[10].use[3]!./node_modules/next/dist/compiled/sass-loader/cjs.js??ruleSet[1].rules[2].oneOf[10].use[4]!./src/styles/main.scss\",\n function () {\n content = __webpack_require__(/*! !!../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[10].use[1]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[10].use[2]!../../node_modules/next/dist/compiled/resolve-url-loader/index.js??ruleSet[1].rules[2].oneOf[10].use[3]!../../node_modules/next/dist/compiled/sass-loader/cjs.js??ruleSet[1].rules[2].oneOf[10].use[4]!./main.scss */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[10].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[10].use[2]!./node_modules/next/dist/compiled/resolve-url-loader/index.js??ruleSet[1].rules[2].oneOf[10].use[3]!./node_modules/next/dist/compiled/sass-loader/cjs.js??ruleSet[1].rules[2].oneOf[10].use[4]!./src/styles/main.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\n if (!isEqualLocals(oldLocals, content.locals)) {\n module.hot.invalidate();\n\n return;\n }\n\n oldLocals = content.locals;\n\n update(content);\n }\n )\n }\n\n module.hot.dispose(function() {\n update();\n });\n}\n\nmodule.exports = content.locals || {};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvc3R5bGVzL21haW4uc2Nzcy5qcyIsIm1hcHBpbmdzIjoiQUFBQSxVQUFVLG1CQUFPLENBQUMsdU5BQTJHO0FBQzdILDBCQUEwQixtQkFBTyxDQUFDLHUzQkFBNGI7O0FBRTlkOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7OztBQUdBLElBQUksSUFBVTtBQUNkLHlCQUF5QixVQUFVO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxJQUFJLGlCQUFpQjtBQUNyQixNQUFNLHUzQkFBNGI7QUFDbGM7QUFDQSxrQkFBa0IsbUJBQU8sQ0FBQyx1M0JBQTRiOztBQUV0ZDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxnQkFBZ0IsVUFBVTs7QUFFMUI7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxFQUFFLFVBQVU7QUFDWjtBQUNBLEdBQUc7QUFDSDs7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvc3R5bGVzL21haW4uc2Nzcz9hMzU5Il0sInNvdXJjZXNDb250ZW50IjpbInZhciBhcGkgPSByZXF1aXJlKFwiIS4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtc3R5bGUtbG9hZGVyL3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCIpO1xuICAgICAgICAgICAgdmFyIGNvbnRlbnQgPSByZXF1aXJlKFwiISEuLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZlsxMF0udXNlWzFdIS4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZlsxMF0udXNlWzJdIS4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcmVzb2x2ZS11cmwtbG9hZGVyL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzEwXS51c2VbM10hLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9zYXNzLWxvYWRlci9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbMTBdLnVzZVs0XSEuL21haW4uc2Nzc1wiKTtcblxuICAgICAgICAgICAgY29udGVudCA9IGNvbnRlbnQuX19lc01vZHVsZSA/IGNvbnRlbnQuZGVmYXVsdCA6IGNvbnRlbnQ7XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgY29udGVudCA9IFtbbW9kdWxlLmlkLCBjb250ZW50LCAnJ11dO1xuICAgICAgICAgICAgfVxuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLmluc2VydCA9IGZ1bmN0aW9uKGVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAvLyBUaGVzZSBlbGVtZW50cyBzaG91bGQgYWx3YXlzIGV4aXN0LiBJZiB0aGV5IGRvIG5vdCxcbiAgICAgICAgICAgICAgICAvLyB0aGlzIGNvZGUgc2hvdWxkIGZhaWwuXG4gICAgICAgICAgICAgICAgdmFyIGFuY2hvckVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjX19uZXh0X2Nzc19fRE9fTk9UX1VTRV9fJyk7XG4gICAgICAgICAgICAgICAgdmFyIHBhcmVudE5vZGUgPSBhbmNob3JFbGVtZW50LnBhcmVudE5vZGUvLyBOb3JtYWxseSA8aGVhZD5cbiAgICAgICAgICAgICAgICA7XG4gICAgICAgICAgICAgICAgLy8gRWFjaCBzdHlsZSB0YWcgc2hvdWxkIGJlIHBsYWNlZCByaWdodCBiZWZvcmUgb3VyXG4gICAgICAgICAgICAgICAgLy8gYW5jaG9yLiBCeSBpbnNlcnRpbmcgYmVmb3JlIGFuZCBub3QgYWZ0ZXIsIHdlIGRvIG5vdFxuICAgICAgICAgICAgICAgIC8vIG5lZWQgdG8gdHJhY2sgdGhlIGxhc3QgaW5zZXJ0ZWQgZWxlbWVudC5cbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlLmluc2VydEJlZm9yZShlbGVtZW50LCBhbmNob3JFbGVtZW50KTtcbiAgICAgICAgICAgIH07XG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xuXG52YXIgdXBkYXRlID0gYXBpKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cbmlmIChtb2R1bGUuaG90KSB7XG4gIGlmICghY29udGVudC5sb2NhbHMgfHwgbW9kdWxlLmhvdC5pbnZhbGlkYXRlKSB7XG4gICAgdmFyIGlzRXF1YWxMb2NhbHMgPSBmdW5jdGlvbiBpc0VxdWFsTG9jYWxzKGEsIGIsIGlzTmFtZWRFeHBvcnQpIHtcbiAgICBpZiAoIWEgJiYgYiB8fCBhICYmICFiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgbGV0IHA7XG4gICAgZm9yKHAgaW4gYSl7XG4gICAgICAgIGlmIChpc05hbWVkRXhwb3J0ICYmIHAgPT09ICdkZWZhdWx0Jykge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFbcF0gIT09IGJbcF0pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmb3IocCBpbiBiKXtcbiAgICAgICAgaWYgKGlzTmFtZWRFeHBvcnQgJiYgcCA9PT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWFbcF0pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn07XG4gICAgdmFyIG9sZExvY2FscyA9IGNvbnRlbnQubG9jYWxzO1xuXG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoXG4gICAgICBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvY3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbMTBdLnVzZVsxXSEuLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbMTBdLnVzZVsyXSEuLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3Jlc29sdmUtdXJsLWxvYWRlci9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZlsxMF0udXNlWzNdIS4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvc2Fzcy1sb2FkZXIvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzEwXS51c2VbNF0hLi9tYWluLnNjc3NcIixcbiAgICAgIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29udGVudCA9IHJlcXVpcmUoXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL2Nzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzEwXS51c2VbMV0hLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzEwXS51c2VbMl0hLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9yZXNvbHZlLXVybC1sb2FkZXIvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbMTBdLnVzZVszXSEuLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3Nhc3MtbG9hZGVyL2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZlsxMF0udXNlWzRdIS4vbWFpbi5zY3NzXCIpO1xuXG4gICAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50Ll9fZXNNb2R1bGUgPyBjb250ZW50LmRlZmF1bHQgOiBjb250ZW50O1xuXG4gICAgICAgICAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBjb250ZW50ID0gW1ttb2R1bGUuaWQsIGNvbnRlbnQsICcnXV07XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBpZiAoIWlzRXF1YWxMb2NhbHMob2xkTG9jYWxzLCBjb250ZW50LmxvY2FscykpIHtcbiAgICAgICAgICAgICAgICBtb2R1bGUuaG90LmludmFsaWRhdGUoKTtcblxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIG9sZExvY2FscyA9IGNvbnRlbnQubG9jYWxzO1xuXG4gICAgICAgICAgICAgIHVwZGF0ZShjb250ZW50KTtcbiAgICAgIH1cbiAgICApXG4gIH1cblxuICBtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24oKSB7XG4gICAgdXBkYXRlKCk7XG4gIH0pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNvbnRlbnQubG9jYWxzIHx8IHt9OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/styles/main.scss\n"); + +/***/ }), + +/***/ "./src/styles/preloader.css": +/*!**********************************!*\ + !*** ./src/styles/preloader.css ***! + \**********************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("var api = __webpack_require__(/*! !../../node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js */ \"./node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js\");\n var content = __webpack_require__(/*! !!../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[9].use[1]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[9].use[2]!./preloader.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[9].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[9].use[2]!./src/styles/preloader.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = function(element) {\n // These elements should always exist. If they do not,\n // this code should fail.\n var anchorElement = document.querySelector('#__next_css__DO_NOT_USE__');\n var parentNode = anchorElement.parentNode// Normally <head>\n ;\n // Each style tag should be placed right before our\n // anchor. By inserting before and not after, we do not\n // need to track the last inserted element.\n parentNode.insertBefore(element, anchorElement);\n };\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\nif (true) {\n if (!content.locals || module.hot.invalidate) {\n var isEqualLocals = function isEqualLocals(a, b, isNamedExport) {\n if (!a && b || a && !b) {\n return false;\n }\n let p;\n for(p in a){\n if (isNamedExport && p === 'default') {\n continue;\n }\n if (a[p] !== b[p]) {\n return false;\n }\n }\n for(p in b){\n if (isNamedExport && p === 'default') {\n continue;\n }\n if (!a[p]) {\n return false;\n }\n }\n return true;\n};\n var oldLocals = content.locals;\n\n module.hot.accept(\n /*! !!../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[9].use[1]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[9].use[2]!./preloader.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[9].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[9].use[2]!./src/styles/preloader.css\",\n function () {\n content = __webpack_require__(/*! !!../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[9].use[1]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[9].use[2]!./preloader.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[9].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[9].use[2]!./src/styles/preloader.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\n if (!isEqualLocals(oldLocals, content.locals)) {\n module.hot.invalidate();\n\n return;\n }\n\n oldLocals = content.locals;\n\n update(content);\n }\n )\n }\n\n module.hot.dispose(function() {\n update();\n });\n}\n\nmodule.exports = content.locals || {};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvc3R5bGVzL3ByZWxvYWRlci5jc3MuanMiLCJtYXBwaW5ncyI6IkFBQUEsVUFBVSxtQkFBTyxDQUFDLHVOQUEyRztBQUM3SCwwQkFBMEIsbUJBQU8sQ0FBQyxxZkFBdVA7O0FBRXpSOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7OztBQUdBLElBQUksSUFBVTtBQUNkLHlCQUF5QixVQUFVO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxJQUFJLGlCQUFpQjtBQUNyQixNQUFNLHFmQUF1UDtBQUM3UDtBQUNBLGtCQUFrQixtQkFBTyxDQUFDLHFmQUF1UDs7QUFFalI7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsZ0JBQWdCLFVBQVU7O0FBRTFCO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsRUFBRSxVQUFVO0FBQ1o7QUFDQSxHQUFHO0FBQ0g7O0FBRUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL3N0eWxlcy9wcmVsb2FkZXIuY3NzP2QxY2MiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGFwaSA9IHJlcXVpcmUoXCIhLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvbmV4dC1zdHlsZS1sb2FkZXIvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIik7XG4gICAgICAgICAgICB2YXIgY29udGVudCA9IHJlcXVpcmUoXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL2Nzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzldLnVzZVsxXSEuLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOV0udXNlWzJdIS4vcHJlbG9hZGVyLmNzc1wiKTtcblxuICAgICAgICAgICAgY29udGVudCA9IGNvbnRlbnQuX19lc01vZHVsZSA/IGNvbnRlbnQuZGVmYXVsdCA6IGNvbnRlbnQ7XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgY29udGVudCA9IFtbbW9kdWxlLmlkLCBjb250ZW50LCAnJ11dO1xuICAgICAgICAgICAgfVxuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLmluc2VydCA9IGZ1bmN0aW9uKGVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAvLyBUaGVzZSBlbGVtZW50cyBzaG91bGQgYWx3YXlzIGV4aXN0LiBJZiB0aGV5IGRvIG5vdCxcbiAgICAgICAgICAgICAgICAvLyB0aGlzIGNvZGUgc2hvdWxkIGZhaWwuXG4gICAgICAgICAgICAgICAgdmFyIGFuY2hvckVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjX19uZXh0X2Nzc19fRE9fTk9UX1VTRV9fJyk7XG4gICAgICAgICAgICAgICAgdmFyIHBhcmVudE5vZGUgPSBhbmNob3JFbGVtZW50LnBhcmVudE5vZGUvLyBOb3JtYWxseSA8aGVhZD5cbiAgICAgICAgICAgICAgICA7XG4gICAgICAgICAgICAgICAgLy8gRWFjaCBzdHlsZSB0YWcgc2hvdWxkIGJlIHBsYWNlZCByaWdodCBiZWZvcmUgb3VyXG4gICAgICAgICAgICAgICAgLy8gYW5jaG9yLiBCeSBpbnNlcnRpbmcgYmVmb3JlIGFuZCBub3QgYWZ0ZXIsIHdlIGRvIG5vdFxuICAgICAgICAgICAgICAgIC8vIG5lZWQgdG8gdHJhY2sgdGhlIGxhc3QgaW5zZXJ0ZWQgZWxlbWVudC5cbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlLmluc2VydEJlZm9yZShlbGVtZW50LCBhbmNob3JFbGVtZW50KTtcbiAgICAgICAgICAgIH07XG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xuXG52YXIgdXBkYXRlID0gYXBpKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cbmlmIChtb2R1bGUuaG90KSB7XG4gIGlmICghY29udGVudC5sb2NhbHMgfHwgbW9kdWxlLmhvdC5pbnZhbGlkYXRlKSB7XG4gICAgdmFyIGlzRXF1YWxMb2NhbHMgPSBmdW5jdGlvbiBpc0VxdWFsTG9jYWxzKGEsIGIsIGlzTmFtZWRFeHBvcnQpIHtcbiAgICBpZiAoIWEgJiYgYiB8fCBhICYmICFiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgbGV0IHA7XG4gICAgZm9yKHAgaW4gYSl7XG4gICAgICAgIGlmIChpc05hbWVkRXhwb3J0ICYmIHAgPT09ICdkZWZhdWx0Jykge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFbcF0gIT09IGJbcF0pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmb3IocCBpbiBiKXtcbiAgICAgICAgaWYgKGlzTmFtZWRFeHBvcnQgJiYgcCA9PT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWFbcF0pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn07XG4gICAgdmFyIG9sZExvY2FscyA9IGNvbnRlbnQubG9jYWxzO1xuXG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoXG4gICAgICBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvY3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0ub25lT2ZbOV0udXNlWzFdIS4uLy4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls5XS51c2VbMl0hLi9wcmVsb2FkZXIuY3NzXCIsXG4gICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNvbnRlbnQgPSByZXF1aXJlKFwiISEuLi8uLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS5vbmVPZls5XS51c2VbMV0hLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLm9uZU9mWzldLnVzZVsyXSEuL3ByZWxvYWRlci5jc3NcIik7XG5cbiAgICAgICAgICAgICAgY29udGVudCA9IGNvbnRlbnQuX19lc01vZHVsZSA/IGNvbnRlbnQuZGVmYXVsdCA6IGNvbnRlbnQ7XG5cbiAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmICghaXNFcXVhbExvY2FscyhvbGRMb2NhbHMsIGNvbnRlbnQubG9jYWxzKSkge1xuICAgICAgICAgICAgICAgIG1vZHVsZS5ob3QuaW52YWxpZGF0ZSgpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgb2xkTG9jYWxzID0gY29udGVudC5sb2NhbHM7XG5cbiAgICAgICAgICAgICAgdXBkYXRlKGNvbnRlbnQpO1xuICAgICAgfVxuICAgIClcbiAgfVxuXG4gIG1vZHVsZS5ob3QuZGlzcG9zZShmdW5jdGlvbigpIHtcbiAgICB1cGRhdGUoKTtcbiAgfSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY29udGVudC5sb2NhbHMgfHwge307Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/styles/preloader.css\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js": +/*!************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js ***! + \************************************************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("\nconst isOldIE = function isOldIE() {\n let memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n return memo;\n };\n}();\nconst getTarget = function getTarget() {\n const memo = {\n };\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n let styleTarget = document.querySelector(target);\n // Special case to return head of iframe instead of iframe itself\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n memo[target] = styleTarget;\n }\n return memo[target];\n };\n}();\nconst stylesInDom = [];\nfunction getIndexByIdentifier(identifier) {\n let result = -1;\n for(let i = 0; i < stylesInDom.length; i++){\n if (stylesInDom[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n return result;\n}\nfunction modulesToDom(list, options) {\n const idCountMap = {\n };\n const identifiers = [];\n for(let i = 0; i < list.length; i++){\n const item = list[i];\n const id = options.base ? item[0] + options.base : item[0];\n const count = idCountMap[id] || 0;\n const identifier = id + ' ' + count.toString();\n idCountMap[id] = count + 1;\n const index = getIndexByIdentifier(identifier);\n const obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3]\n };\n if (index !== -1) {\n stylesInDom[index].references++;\n stylesInDom[index].updater(obj);\n } else {\n stylesInDom.push({\n identifier: identifier,\n updater: addStyle(obj, options),\n references: 1\n });\n }\n identifiers.push(identifier);\n }\n return identifiers;\n}\nfunction insertStyleElement(options) {\n const style = document.createElement('style');\n const attributes = options.attributes || {\n };\n if (typeof attributes.nonce === 'undefined') {\n const nonce = // eslint-disable-next-line no-undef\n true ? __webpack_require__.nc : 0;\n if (nonce) {\n attributes.nonce = nonce;\n }\n }\n Object.keys(attributes).forEach(function(key) {\n style.setAttribute(key, attributes[key]);\n });\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n const target = getTarget(options.insert || 'head');\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n target.appendChild(style);\n }\n return style;\n}\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */ const replaceText = function replaceText() {\n const textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\nfunction applyToSingletonTag(style, index, remove, obj) {\n const css = remove ? '' : obj.media ? '@media ' + obj.media + ' {' + obj.css + '}' : obj.css;\n // For old IE\n /* istanbul ignore if */ if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n const cssNode = document.createTextNode(css);\n const childNodes = style.childNodes;\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\nfunction applyToTag(style, options, obj) {\n let css = obj.css;\n const media = obj.media;\n const sourceMap = obj.sourceMap;\n if (media) {\n style.setAttribute('media', media);\n } else {\n style.removeAttribute('media');\n }\n if (sourceMap && typeof btoa !== 'undefined') {\n css += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */';\n }\n // For old IE\n /* istanbul ignore if */ if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while(style.firstChild){\n style.removeChild(style.firstChild);\n }\n style.appendChild(document.createTextNode(css));\n }\n}\nlet singleton = null;\nlet singletonCounter = 0;\nfunction addStyle(obj, options) {\n let style;\n let update;\n let remove;\n if (options.singleton) {\n const styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n remove = function() {\n removeStyleElement(style);\n };\n }\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\nmodule.exports = function(list, options) {\n options = options || {\n };\n // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n // tags it will allow on a page\n if (!options.singleton && typeof options.singleton !== 'boolean') {\n options.singleton = isOldIE();\n }\n list = list || [];\n let lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n if (Object.prototype.toString.call(newList) !== '[object Array]') {\n return;\n }\n for(let i = 0; i < lastIdentifiers.length; i++){\n const identifier = lastIdentifiers[i];\n const index = getIndexByIdentifier(identifier);\n stylesInDom[index].references--;\n }\n const newLastIdentifiers = modulesToDom(newList, options);\n for(let i1 = 0; i1 < lastIdentifiers.length; i1++){\n const identifier = lastIdentifiers[i1];\n const index = getIndexByIdentifier(identifier);\n if (stylesInDom[index].references === 0) {\n stylesInDom[index].updater();\n stylesInDom.splice(index, 1);\n }\n }\n lastIdentifiers = newLastIdentifiers;\n };\n};\n\n//# sourceMappingURL=injectStylesIntoStyleTag.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LXN0eWxlLWxvYWRlci9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQix3QkFBd0I7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixpQkFBaUI7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxLQUF3QyxHQUFHLHNCQUFpQixHQUFHLENBQUk7QUFDM0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0EscUVBQXFFLGdCQUFnQjtBQUNyRjtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsNkRBQTZEO0FBQzdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIsNEJBQTRCO0FBQ25EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsNkJBQTZCO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtc3R5bGUtbG9hZGVyL3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzPzI2ZWQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5jb25zdCBpc09sZElFID0gZnVuY3Rpb24gaXNPbGRJRSgpIHtcbiAgICBsZXQgbWVtbztcbiAgICByZXR1cm4gZnVuY3Rpb24gbWVtb3JpemUoKSB7XG4gICAgICAgIGlmICh0eXBlb2YgbWVtbyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIC8vIFRlc3QgZm9yIElFIDw9IDkgYXMgcHJvcG9zZWQgYnkgQnJvd3NlcmhhY2tzXG4gICAgICAgICAgICAvLyBAc2VlIGh0dHA6Ly9icm93c2VyaGFja3MuY29tLyNoYWNrLWU3MWQ4NjkyZjY1MzM0MTczZmVlNzE1YzIyMmNiODA1XG4gICAgICAgICAgICAvLyBUZXN0cyBmb3IgZXhpc3RlbmNlIG9mIHN0YW5kYXJkIGdsb2JhbHMgaXMgdG8gYWxsb3cgc3R5bGUtbG9hZGVyXG4gICAgICAgICAgICAvLyB0byBvcGVyYXRlIGNvcnJlY3RseSBpbnRvIG5vbi1zdGFuZGFyZCBlbnZpcm9ubWVudHNcbiAgICAgICAgICAgIC8vIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3dlYnBhY2stY29udHJpYi9zdHlsZS1sb2FkZXIvaXNzdWVzLzE3N1xuICAgICAgICAgICAgbWVtbyA9IEJvb2xlYW4od2luZG93ICYmIGRvY3VtZW50ICYmIGRvY3VtZW50LmFsbCAmJiAhd2luZG93LmF0b2IpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtZW1vO1xuICAgIH07XG59KCk7XG5jb25zdCBnZXRUYXJnZXQgPSBmdW5jdGlvbiBnZXRUYXJnZXQoKSB7XG4gICAgY29uc3QgbWVtbyA9IHtcbiAgICB9O1xuICAgIHJldHVybiBmdW5jdGlvbiBtZW1vcml6ZSh0YXJnZXQpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBtZW1vW3RhcmdldF0gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBsZXQgc3R5bGVUYXJnZXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHRhcmdldCk7XG4gICAgICAgICAgICAvLyBTcGVjaWFsIGNhc2UgdG8gcmV0dXJuIGhlYWQgb2YgaWZyYW1lIGluc3RlYWQgb2YgaWZyYW1lIGl0c2VsZlxuICAgICAgICAgICAgaWYgKHdpbmRvdy5IVE1MSUZyYW1lRWxlbWVudCAmJiBzdHlsZVRhcmdldCBpbnN0YW5jZW9mIHdpbmRvdy5IVE1MSUZyYW1lRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgd2lsbCB0aHJvdyBhbiBleGNlcHRpb24gaWYgYWNjZXNzIHRvIGlmcmFtZSBpcyBibG9ja2VkXG4gICAgICAgICAgICAgICAgICAgIC8vIGR1ZSB0byBjcm9zcy1vcmlnaW4gcmVzdHJpY3Rpb25zXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlVGFyZ2V0ID0gc3R5bGVUYXJnZXQuY29udGVudERvY3VtZW50LmhlYWQ7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuICAgICAgICAgICAgICAgICAgICBzdHlsZVRhcmdldCA9IG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbWVtb1t0YXJnZXRdID0gc3R5bGVUYXJnZXQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1lbW9bdGFyZ2V0XTtcbiAgICB9O1xufSgpO1xuY29uc3Qgc3R5bGVzSW5Eb20gPSBbXTtcbmZ1bmN0aW9uIGdldEluZGV4QnlJZGVudGlmaWVyKGlkZW50aWZpZXIpIHtcbiAgICBsZXQgcmVzdWx0ID0gLTE7XG4gICAgZm9yKGxldCBpID0gMDsgaSA8IHN0eWxlc0luRG9tLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgaWYgKHN0eWxlc0luRG9tW2ldLmlkZW50aWZpZXIgPT09IGlkZW50aWZpZXIpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IGk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuZnVuY3Rpb24gbW9kdWxlc1RvRG9tKGxpc3QsIG9wdGlvbnMpIHtcbiAgICBjb25zdCBpZENvdW50TWFwID0ge1xuICAgIH07XG4gICAgY29uc3QgaWRlbnRpZmllcnMgPSBbXTtcbiAgICBmb3IobGV0IGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKyl7XG4gICAgICAgIGNvbnN0IGl0ZW0gPSBsaXN0W2ldO1xuICAgICAgICBjb25zdCBpZCA9IG9wdGlvbnMuYmFzZSA/IGl0ZW1bMF0gKyBvcHRpb25zLmJhc2UgOiBpdGVtWzBdO1xuICAgICAgICBjb25zdCBjb3VudCA9IGlkQ291bnRNYXBbaWRdIHx8IDA7XG4gICAgICAgIGNvbnN0IGlkZW50aWZpZXIgPSBpZCArICcgJyArIGNvdW50LnRvU3RyaW5nKCk7XG4gICAgICAgIGlkQ291bnRNYXBbaWRdID0gY291bnQgKyAxO1xuICAgICAgICBjb25zdCBpbmRleCA9IGdldEluZGV4QnlJZGVudGlmaWVyKGlkZW50aWZpZXIpO1xuICAgICAgICBjb25zdCBvYmogPSB7XG4gICAgICAgICAgICBjc3M6IGl0ZW1bMV0sXG4gICAgICAgICAgICBtZWRpYTogaXRlbVsyXSxcbiAgICAgICAgICAgIHNvdXJjZU1hcDogaXRlbVszXVxuICAgICAgICB9O1xuICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICBzdHlsZXNJbkRvbVtpbmRleF0ucmVmZXJlbmNlcysrO1xuICAgICAgICAgICAgc3R5bGVzSW5Eb21baW5kZXhdLnVwZGF0ZXIob2JqKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN0eWxlc0luRG9tLnB1c2goe1xuICAgICAgICAgICAgICAgIGlkZW50aWZpZXI6IGlkZW50aWZpZXIsXG4gICAgICAgICAgICAgICAgdXBkYXRlcjogYWRkU3R5bGUob2JqLCBvcHRpb25zKSxcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VzOiAxXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZGVudGlmaWVycy5wdXNoKGlkZW50aWZpZXIpO1xuICAgIH1cbiAgICByZXR1cm4gaWRlbnRpZmllcnM7XG59XG5mdW5jdGlvbiBpbnNlcnRTdHlsZUVsZW1lbnQob3B0aW9ucykge1xuICAgIGNvbnN0IHN0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcbiAgICBjb25zdCBhdHRyaWJ1dGVzID0gb3B0aW9ucy5hdHRyaWJ1dGVzIHx8IHtcbiAgICB9O1xuICAgIGlmICh0eXBlb2YgYXR0cmlidXRlcy5ub25jZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgY29uc3Qgbm9uY2UgPSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZWZcbiAgICAgICAgdHlwZW9mIF9fd2VicGFja19ub25jZV9fICE9PSAndW5kZWZpbmVkJyA/IF9fd2VicGFja19ub25jZV9fIDogbnVsbDtcbiAgICAgICAgaWYgKG5vbmNlKSB7XG4gICAgICAgICAgICBhdHRyaWJ1dGVzLm5vbmNlID0gbm9uY2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgT2JqZWN0LmtleXMoYXR0cmlidXRlcykuZm9yRWFjaChmdW5jdGlvbihrZXkpIHtcbiAgICAgICAgc3R5bGUuc2V0QXR0cmlidXRlKGtleSwgYXR0cmlidXRlc1trZXldKTtcbiAgICB9KTtcbiAgICBpZiAodHlwZW9mIG9wdGlvbnMuaW5zZXJ0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIG9wdGlvbnMuaW5zZXJ0KHN0eWxlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBnZXRUYXJnZXQob3B0aW9ucy5pbnNlcnQgfHwgJ2hlYWQnKTtcbiAgICAgICAgaWYgKCF0YXJnZXQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNvdWxkbid0IGZpbmQgYSBzdHlsZSB0YXJnZXQuIFRoaXMgcHJvYmFibHkgbWVhbnMgdGhhdCB0aGUgdmFsdWUgZm9yIHRoZSAnaW5zZXJ0JyBwYXJhbWV0ZXIgaXMgaW52YWxpZC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgdGFyZ2V0LmFwcGVuZENoaWxkKHN0eWxlKTtcbiAgICB9XG4gICAgcmV0dXJuIHN0eWxlO1xufVxuZnVuY3Rpb24gcmVtb3ZlU3R5bGVFbGVtZW50KHN0eWxlKSB7XG4gICAgLy8gaXN0YW5idWwgaWdub3JlIGlmXG4gICAgaWYgKHN0eWxlLnBhcmVudE5vZGUgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBzdHlsZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHN0eWxlKTtcbn1cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqLyBjb25zdCByZXBsYWNlVGV4dCA9IGZ1bmN0aW9uIHJlcGxhY2VUZXh0KCkge1xuICAgIGNvbnN0IHRleHRTdG9yZSA9IFtdO1xuICAgIHJldHVybiBmdW5jdGlvbiByZXBsYWNlKGluZGV4LCByZXBsYWNlbWVudCkge1xuICAgICAgICB0ZXh0U3RvcmVbaW5kZXhdID0gcmVwbGFjZW1lbnQ7XG4gICAgICAgIHJldHVybiB0ZXh0U3RvcmUuZmlsdGVyKEJvb2xlYW4pLmpvaW4oJ1xcbicpO1xuICAgIH07XG59KCk7XG5mdW5jdGlvbiBhcHBseVRvU2luZ2xldG9uVGFnKHN0eWxlLCBpbmRleCwgcmVtb3ZlLCBvYmopIHtcbiAgICBjb25zdCBjc3MgPSByZW1vdmUgPyAnJyA6IG9iai5tZWRpYSA/ICdAbWVkaWEgJyArIG9iai5tZWRpYSArICcgeycgKyBvYmouY3NzICsgJ30nIDogb2JqLmNzcztcbiAgICAvLyBGb3Igb2xkIElFXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICAqLyBpZiAoc3R5bGUuc3R5bGVTaGVldCkge1xuICAgICAgICBzdHlsZS5zdHlsZVNoZWV0LmNzc1RleHQgPSByZXBsYWNlVGV4dChpbmRleCwgY3NzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBjc3NOb2RlID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzKTtcbiAgICAgICAgY29uc3QgY2hpbGROb2RlcyA9IHN0eWxlLmNoaWxkTm9kZXM7XG4gICAgICAgIGlmIChjaGlsZE5vZGVzW2luZGV4XSkge1xuICAgICAgICAgICAgc3R5bGUucmVtb3ZlQ2hpbGQoY2hpbGROb2Rlc1tpbmRleF0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjaGlsZE5vZGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgc3R5bGUuaW5zZXJ0QmVmb3JlKGNzc05vZGUsIGNoaWxkTm9kZXNbaW5kZXhdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN0eWxlLmFwcGVuZENoaWxkKGNzc05vZGUpO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gYXBwbHlUb1RhZyhzdHlsZSwgb3B0aW9ucywgb2JqKSB7XG4gICAgbGV0IGNzcyA9IG9iai5jc3M7XG4gICAgY29uc3QgbWVkaWEgPSBvYmoubWVkaWE7XG4gICAgY29uc3Qgc291cmNlTWFwID0gb2JqLnNvdXJjZU1hcDtcbiAgICBpZiAobWVkaWEpIHtcbiAgICAgICAgc3R5bGUuc2V0QXR0cmlidXRlKCdtZWRpYScsIG1lZGlhKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBzdHlsZS5yZW1vdmVBdHRyaWJ1dGUoJ21lZGlhJyk7XG4gICAgfVxuICAgIGlmIChzb3VyY2VNYXAgJiYgdHlwZW9mIGJ0b2EgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGNzcyArPSAnXFxuLyojIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCwnICsgYnRvYSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoc291cmNlTWFwKSkpKSArICcgKi8nO1xuICAgIH1cbiAgICAvLyBGb3Igb2xkIElFXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICAqLyBpZiAoc3R5bGUuc3R5bGVTaGVldCkge1xuICAgICAgICBzdHlsZS5zdHlsZVNoZWV0LmNzc1RleHQgPSBjc3M7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgd2hpbGUoc3R5bGUuZmlyc3RDaGlsZCl7XG4gICAgICAgICAgICBzdHlsZS5yZW1vdmVDaGlsZChzdHlsZS5maXJzdENoaWxkKTtcbiAgICAgICAgfVxuICAgICAgICBzdHlsZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjc3MpKTtcbiAgICB9XG59XG5sZXQgc2luZ2xldG9uID0gbnVsbDtcbmxldCBzaW5nbGV0b25Db3VudGVyID0gMDtcbmZ1bmN0aW9uIGFkZFN0eWxlKG9iaiwgb3B0aW9ucykge1xuICAgIGxldCBzdHlsZTtcbiAgICBsZXQgdXBkYXRlO1xuICAgIGxldCByZW1vdmU7XG4gICAgaWYgKG9wdGlvbnMuc2luZ2xldG9uKSB7XG4gICAgICAgIGNvbnN0IHN0eWxlSW5kZXggPSBzaW5nbGV0b25Db3VudGVyKys7XG4gICAgICAgIHN0eWxlID0gc2luZ2xldG9uIHx8IChzaW5nbGV0b24gPSBpbnNlcnRTdHlsZUVsZW1lbnQob3B0aW9ucykpO1xuICAgICAgICB1cGRhdGUgPSBhcHBseVRvU2luZ2xldG9uVGFnLmJpbmQobnVsbCwgc3R5bGUsIHN0eWxlSW5kZXgsIGZhbHNlKTtcbiAgICAgICAgcmVtb3ZlID0gYXBwbHlUb1NpbmdsZXRvblRhZy5iaW5kKG51bGwsIHN0eWxlLCBzdHlsZUluZGV4LCB0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBzdHlsZSA9IGluc2VydFN0eWxlRWxlbWVudChvcHRpb25zKTtcbiAgICAgICAgdXBkYXRlID0gYXBwbHlUb1RhZy5iaW5kKG51bGwsIHN0eWxlLCBvcHRpb25zKTtcbiAgICAgICAgcmVtb3ZlID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICByZW1vdmVTdHlsZUVsZW1lbnQoc3R5bGUpO1xuICAgICAgICB9O1xuICAgIH1cbiAgICB1cGRhdGUob2JqKTtcbiAgICByZXR1cm4gZnVuY3Rpb24gdXBkYXRlU3R5bGUobmV3T2JqKSB7XG4gICAgICAgIGlmIChuZXdPYmopIHtcbiAgICAgICAgICAgIGlmIChuZXdPYmouY3NzID09PSBvYmouY3NzICYmIG5ld09iai5tZWRpYSA9PT0gb2JqLm1lZGlhICYmIG5ld09iai5zb3VyY2VNYXAgPT09IG9iai5zb3VyY2VNYXApIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB1cGRhdGUob2JqID0gbmV3T2JqKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlbW92ZSgpO1xuICAgICAgICB9XG4gICAgfTtcbn1cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24obGlzdCwgb3B0aW9ucykge1xuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHtcbiAgICB9O1xuICAgIC8vIEZvcmNlIHNpbmdsZS10YWcgc29sdXRpb24gb24gSUU2LTksIHdoaWNoIGhhcyBhIGhhcmQgbGltaXQgb24gdGhlICMgb2YgPHN0eWxlPlxuICAgIC8vIHRhZ3MgaXQgd2lsbCBhbGxvdyBvbiBhIHBhZ2VcbiAgICBpZiAoIW9wdGlvbnMuc2luZ2xldG9uICYmIHR5cGVvZiBvcHRpb25zLnNpbmdsZXRvbiAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgIG9wdGlvbnMuc2luZ2xldG9uID0gaXNPbGRJRSgpO1xuICAgIH1cbiAgICBsaXN0ID0gbGlzdCB8fCBbXTtcbiAgICBsZXQgbGFzdElkZW50aWZpZXJzID0gbW9kdWxlc1RvRG9tKGxpc3QsIG9wdGlvbnMpO1xuICAgIHJldHVybiBmdW5jdGlvbiB1cGRhdGUobmV3TGlzdCkge1xuICAgICAgICBuZXdMaXN0ID0gbmV3TGlzdCB8fCBbXTtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChuZXdMaXN0KSAhPT0gJ1tvYmplY3QgQXJyYXldJykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCBsYXN0SWRlbnRpZmllcnMubGVuZ3RoOyBpKyspe1xuICAgICAgICAgICAgY29uc3QgaWRlbnRpZmllciA9IGxhc3RJZGVudGlmaWVyc1tpXTtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gZ2V0SW5kZXhCeUlkZW50aWZpZXIoaWRlbnRpZmllcik7XG4gICAgICAgICAgICBzdHlsZXNJbkRvbVtpbmRleF0ucmVmZXJlbmNlcy0tO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5ld0xhc3RJZGVudGlmaWVycyA9IG1vZHVsZXNUb0RvbShuZXdMaXN0LCBvcHRpb25zKTtcbiAgICAgICAgZm9yKGxldCBpMSA9IDA7IGkxIDwgbGFzdElkZW50aWZpZXJzLmxlbmd0aDsgaTErKyl7XG4gICAgICAgICAgICBjb25zdCBpZGVudGlmaWVyID0gbGFzdElkZW50aWZpZXJzW2kxXTtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gZ2V0SW5kZXhCeUlkZW50aWZpZXIoaWRlbnRpZmllcik7XG4gICAgICAgICAgICBpZiAoc3R5bGVzSW5Eb21baW5kZXhdLnJlZmVyZW5jZXMgPT09IDApIHtcbiAgICAgICAgICAgICAgICBzdHlsZXNJbkRvbVtpbmRleF0udXBkYXRlcigpO1xuICAgICAgICAgICAgICAgIHN0eWxlc0luRG9tLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbGFzdElkZW50aWZpZXJzID0gbmV3TGFzdElkZW50aWZpZXJzO1xuICAgIH07XG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js\n"); + +/***/ }), + +/***/ "./node_modules/next/head.js": +/*!***********************************!*\ + !*** ./node_modules/next/head.js ***! + \***********************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("module.exports = __webpack_require__(/*! ./dist/shared/lib/head */ \"./node_modules/next/dist/shared/lib/head.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9oZWFkLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFBLGlIQUFrRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9oZWFkLmpzPzg4NDkiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Rpc3Qvc2hhcmVkL2xpYi9oZWFkJylcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/head.js\n"); + +/***/ }), + +/***/ "./node_modules/next/script.js": +/*!*************************************!*\ + !*** ./node_modules/next/script.js ***! + \*************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +eval("module.exports = __webpack_require__(/*! ./dist/client/script */ \"./node_modules/next/dist/client/script.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9zY3JpcHQuanMuanMiLCJtYXBwaW5ncyI6IkFBQUEsNkdBQWdEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L3NjcmlwdC5qcz9lNGJhIl0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9kaXN0L2NsaWVudC9zY3JpcHQnKVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/script.js\n"); + +/***/ }), + +/***/ "./node_modules/react/cjs/react-jsx-dev-runtime.development.js": +/*!*********************************************************************!*\ + !*** ./node_modules/react/cjs/react-jsx-dev-runtime.development.js ***! + \*********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("/** @license React v17.0.2\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its 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\n\n\nif (true) {\n (function() {\n'use strict';\n\nvar React = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\nvar _assign = __webpack_require__(/*! object-assign */ \"./node_modules/next/dist/build/polyfills/object-assign.js\");\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar REACT_ELEMENT_TYPE = 0xeac7;\nvar REACT_PORTAL_TYPE = 0xeaca;\nexports.Fragment = 0xeacb;\nvar REACT_STRICT_MODE_TYPE = 0xeacc;\nvar REACT_PROFILER_TYPE = 0xead2;\nvar REACT_PROVIDER_TYPE = 0xeacd;\nvar REACT_CONTEXT_TYPE = 0xeace;\nvar REACT_FORWARD_REF_TYPE = 0xead0;\nvar REACT_SUSPENSE_TYPE = 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = 0xead8;\nvar REACT_MEMO_TYPE = 0xead3;\nvar REACT_LAZY_TYPE = 0xead4;\nvar REACT_BLOCK_TYPE = 0xead9;\nvar REACT_SERVER_BLOCK_TYPE = 0xeada;\nvar REACT_FUNDAMENTAL_TYPE = 0xead5;\nvar REACT_SCOPE_TYPE = 0xead7;\nvar REACT_OPAQUE_ID_TYPE = 0xeae0;\nvar REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1;\nvar REACT_OFFSCREEN_TYPE = 0xeae2;\nvar REACT_LEGACY_HIDDEN_TYPE = 0xeae3;\n\nif (typeof Symbol === 'function' && Symbol.for) {\n var symbolFor = Symbol.for;\n REACT_ELEMENT_TYPE = symbolFor('react.element');\n REACT_PORTAL_TYPE = symbolFor('react.portal');\n exports.Fragment = symbolFor('react.fragment');\n REACT_STRICT_MODE_TYPE = symbolFor('react.strict_mode');\n REACT_PROFILER_TYPE = symbolFor('react.profiler');\n REACT_PROVIDER_TYPE = symbolFor('react.provider');\n REACT_CONTEXT_TYPE = symbolFor('react.context');\n REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref');\n REACT_SUSPENSE_TYPE = symbolFor('react.suspense');\n REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list');\n REACT_MEMO_TYPE = symbolFor('react.memo');\n REACT_LAZY_TYPE = symbolFor('react.lazy');\n REACT_BLOCK_TYPE = symbolFor('react.block');\n REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block');\n REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental');\n REACT_SCOPE_TYPE = symbolFor('react.scope');\n REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id');\n REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode');\n REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen');\n REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden');\n}\n\nvar MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\n return null;\n }\n\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n\n return null;\n}\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\nfunction error(format) {\n {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n printWarning('error', format, args);\n }\n}\n\nfunction printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n }\n\n var argsWithFormat = args.map(function (item) {\n return '' + item;\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n}\n\n// Filter certain DOM attributes (e.g. src, href) if their values are empty strings.\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === exports.Fragment || type === REACT_PROFILER_TYPE || type === REACT_DEBUG_TRACING_MODE_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_LEGACY_HIDDEN_TYPE || enableScopeAPI ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_BLOCK_TYPE || type[0] === REACT_SERVER_BLOCK_TYPE) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var functionName = innerType.displayName || innerType.name || '';\n return outerType.displayName || (functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName);\n}\n\nfunction getContextName(type) {\n return type.displayName || 'Context';\n}\n\nfunction getComponentName(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n\n {\n if (typeof type.tag === 'number') {\n error('Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.');\n }\n }\n\n if (typeof type === 'function') {\n return type.displayName || type.name || null;\n }\n\n if (typeof type === 'string') {\n return type;\n }\n\n switch (type) {\n case exports.Fragment:\n return 'Fragment';\n\n case REACT_PORTAL_TYPE:\n return 'Portal';\n\n case REACT_PROFILER_TYPE:\n return 'Profiler';\n\n case REACT_STRICT_MODE_TYPE:\n return 'StrictMode';\n\n case REACT_SUSPENSE_TYPE:\n return 'Suspense';\n\n case REACT_SUSPENSE_LIST_TYPE:\n return 'SuspenseList';\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + '.Consumer';\n\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + '.Provider';\n\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, 'ForwardRef');\n\n case REACT_MEMO_TYPE:\n return getComponentName(type.type);\n\n case REACT_BLOCK_TYPE:\n return getComponentName(type._render);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n return getComponentName(init(payload));\n } catch (x) {\n return null;\n }\n }\n }\n }\n\n return null;\n}\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n disabledDepth++;\n }\n}\nfunction reenableLogs() {\n {\n disabledDepth--;\n\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n log: _assign({}, props, {\n value: prevLog\n }),\n info: _assign({}, props, {\n value: prevInfo\n }),\n warn: _assign({}, props, {\n value: prevWarn\n }),\n error: _assign({}, props, {\n value: prevError\n }),\n group: _assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: _assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: _assign({}, props, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n if (disabledDepth < 0) {\n error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n }\n }\n}\n\nvar ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || '';\n }\n } // We use the prefix to ensure our stacks line up with native stack frames.\n\n\n return '\\n' + prefix + name;\n }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n}\n\nfunction describeNativeComponentFrame(fn, construct) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if (!fn || reentry) {\n return '';\n }\n\n {\n var frame = componentFrameCache.get(fn);\n\n if (frame !== undefined) {\n return frame;\n }\n }\n\n var control;\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n\n {\n previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function\n // for warnings.\n\n ReactCurrentDispatcher.current = null;\n disableLogs();\n }\n\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function () {\n throw Error();\n }; // $FlowFixMe\n\n\n Object.defineProperty(Fake.prototype, 'props', {\n set: function () {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n\n if (typeof Reflect === 'object' && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n }\n\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n }\n\n fn();\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === 'string') {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sample.stack.split('\\n');\n var controlLines = control.stack.split('\\n');\n var s = sampleLines.length - 1;\n var c = controlLines.length - 1;\n\n while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n\n for (; s >= 1 && c >= 0; s--, c--) {\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at ');\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, _frame);\n }\n } // Return the line we found.\n\n\n return _frame;\n }\n } while (s >= 1 && c >= 0);\n }\n\n break;\n }\n }\n }\n } finally {\n reentry = false;\n\n {\n ReactCurrentDispatcher.current = previousDispatcher;\n reenableLogs();\n }\n\n Error.prepareStackTrace = previousPrepareStackTrace;\n } // Fallback to just using the name if we couldn't make it throw.\n\n\n var name = fn ? fn.displayName || fn.name : '';\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n\n return syntheticFrame;\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n}\n\nfunction shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n if (type == null) {\n return '';\n }\n\n if (typeof type === 'function') {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n\n if (typeof type === 'string') {\n return describeBuiltInComponentFrame(type);\n }\n\n switch (type) {\n case REACT_SUSPENSE_TYPE:\n return describeBuiltInComponentFrame('Suspense');\n\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame('SuspenseList');\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n\n case REACT_MEMO_TYPE:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n case REACT_BLOCK_TYPE:\n return describeFunctionComponentFrame(type._render);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n\n return '';\n}\n\nvar loggedTypeFailures = {};\nvar ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame.setExtraStackFrame(null);\n }\n }\n}\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\n {\n // $FlowFixMe This is okay but Flow doesn't know it.\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n } catch (ex) {\n error$1 = ex;\n }\n\n if (error$1 && !(error$1 instanceof Error)) {\n setCurrentlyValidatingElement(element);\n\n error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n\n setCurrentlyValidatingElement(null);\n }\n\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error$1.message] = true;\n setCurrentlyValidatingElement(element);\n\n error('Failed %s type: %s', location, error$1.message);\n\n setCurrentlyValidatingElement(null);\n }\n }\n }\n }\n}\n\nvar ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n};\nvar specialPropKeyWarningShown;\nvar specialPropRefWarningShown;\nvar didWarnAboutStringRefs;\n\n{\n didWarnAboutStringRefs = {};\n}\n\nfunction hasValidRef(config) {\n {\n if (hasOwnProperty.call(config, 'ref')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n {\n if (hasOwnProperty.call(config, 'key')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.key !== undefined;\n}\n\nfunction warnIfStringRefCannotBeAutoConverted(config, self) {\n {\n if (typeof config.ref === 'string' && ReactCurrentOwner.current && self && ReactCurrentOwner.current.stateNode !== self) {\n var componentName = getComponentName(ReactCurrentOwner.current.type);\n\n if (!didWarnAboutStringRefs[componentName]) {\n error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', getComponentName(ReactCurrentOwner.current.type), config.ref);\n\n didWarnAboutStringRefs[componentName] = true;\n }\n }\n }\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingKey = function () {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n\n error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n }\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingRef = function () {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n\n error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n }\n}\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */\n\n\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allows us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n // Record the component responsible for creating this element.\n _owner: owner\n };\n\n {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n\n Object.defineProperty(element._store, 'validated', {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n }); // self and source are DEV only properties.\n\n Object.defineProperty(element, '_self', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n }); // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n\n Object.defineProperty(element, '_source', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n\n return element;\n};\n/**\n * https://github.com/reactjs/rfcs/pull/107\n * @param {*} type\n * @param {object} props\n * @param {string} key\n */\n\nfunction jsxDEV(type, config, maybeKey, source, self) {\n {\n var propName; // Reserved names are extracted\n\n var props = {};\n var key = null;\n var ref = null; // Currently, key can be spread in as a prop. This causes a potential\n // issue if key is also explicitly declared (ie. <div {...props} key=\"Hi\" />\n // or <div key=\"Hi\" {...props} /> ). We want to deprecate key spread,\n // but as an intermediary step, we will use jsxDEV for everything except\n // <div {...props} key=\"Hi\" />, because we aren't currently able to tell if\n // key is explicitly declared to be undefined or not.\n\n if (maybeKey !== undefined) {\n key = '' + maybeKey;\n }\n\n if (hasValidKey(config)) {\n key = '' + config.key;\n }\n\n if (hasValidRef(config)) {\n ref = config.ref;\n warnIfStringRefCannotBeAutoConverted(config, self);\n } // Remaining properties are added to a new props object\n\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n } // Resolve default props\n\n\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n\n if (key || ref) {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n }\n}\n\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement$1(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n }\n }\n}\n\nvar propTypesMisspellWarningShown;\n\n{\n propTypesMisspellWarningShown = false;\n}\n/**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */\n\nfunction isValidElement(object) {\n {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n }\n}\n\nfunction getDeclarationErrorAddendum() {\n {\n if (ReactCurrentOwner$1.current) {\n var name = getComponentName(ReactCurrentOwner$1.current.type);\n\n if (name) {\n return '\\n\\nCheck the render method of `' + name + '`.';\n }\n }\n\n return '';\n }\n}\n\nfunction getSourceInfoErrorAddendum(source) {\n {\n if (source !== undefined) {\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n var lineNumber = source.lineNumber;\n return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n }\n\n return '';\n }\n}\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n\n\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n {\n var info = getDeclarationErrorAddendum();\n\n if (!info) {\n var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n\n if (parentName) {\n info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n }\n }\n\n return info;\n }\n}\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\n\n\nfunction validateExplicitKey(element, parentType) {\n {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n\n element._store.validated = true;\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n return;\n }\n\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n\n var childOwner = '';\n\n if (element && element._owner && element._owner !== ReactCurrentOwner$1.current) {\n // Give the component that originally created this child.\n childOwner = \" It was passed a child from \" + getComponentName(element._owner.type) + \".\";\n }\n\n setCurrentlyValidatingElement$1(element);\n\n error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\n\n setCurrentlyValidatingElement$1(null);\n }\n}\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\n\n\nfunction validateChildKeys(node, parentType) {\n {\n if (typeof node !== 'object') {\n return;\n }\n\n if (Array.isArray(node)) {\n for (var i = 0; i < node.length; i++) {\n var child = node[i];\n\n if (isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else if (node) {\n var iteratorFn = getIteratorFn(node);\n\n if (typeof iteratorFn === 'function') {\n // Entry iterators used to provide implicit keys,\n // but now we print a separate warning for them later.\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n\n while (!(step = iterator.next()).done) {\n if (isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n }\n}\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\n\n\nfunction validatePropTypes(element) {\n {\n var type = element.type;\n\n if (type === null || type === undefined || typeof type === 'string') {\n return;\n }\n\n var propTypes;\n\n if (typeof type === 'function') {\n propTypes = type.propTypes;\n } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n // Inner props are checked in the reconciler.\n type.$$typeof === REACT_MEMO_TYPE)) {\n propTypes = type.propTypes;\n } else {\n return;\n }\n\n if (propTypes) {\n // Intentionally inside to avoid triggering lazy initializers:\n var name = getComponentName(type);\n checkPropTypes(propTypes, element.props, 'prop', name, element);\n } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n\n var _name = getComponentName(type);\n\n error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');\n }\n\n if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\n error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\n }\n }\n}\n/**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\n\n\nfunction validateFragmentProps(fragment) {\n {\n var keys = Object.keys(fragment.props);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (key !== 'children' && key !== 'key') {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n\n setCurrentlyValidatingElement$1(null);\n break;\n }\n }\n\n if (fragment.ref !== null) {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid attribute `ref` supplied to `React.Fragment`.');\n\n setCurrentlyValidatingElement$1(null);\n }\n }\n}\n\nfunction jsxWithValidation(type, props, key, isStaticChildren, source, self) {\n {\n var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n\n if (!validType) {\n var info = '';\n\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n }\n\n var sourceInfo = getSourceInfoErrorAddendum(source);\n\n if (sourceInfo) {\n info += sourceInfo;\n } else {\n info += getDeclarationErrorAddendum();\n }\n\n var typeString;\n\n if (type === null) {\n typeString = 'null';\n } else if (Array.isArray(type)) {\n typeString = 'array';\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n typeString = \"<\" + (getComponentName(type.type) || 'Unknown') + \" />\";\n info = ' Did you accidentally export a JSX literal instead of a component?';\n } else {\n typeString = typeof type;\n }\n\n error('React.jsx: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n }\n\n var element = jsxDEV(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n\n if (element == null) {\n return element;\n } // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n\n\n if (validType) {\n var children = props.children;\n\n if (children !== undefined) {\n if (isStaticChildren) {\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n validateChildKeys(children[i], type);\n }\n\n if (Object.freeze) {\n Object.freeze(children);\n }\n } else {\n error('React.jsx: Static children should always be an array. ' + 'You are likely explicitly calling React.jsxs or React.jsxDEV. ' + 'Use the Babel transform instead.');\n }\n } else {\n validateChildKeys(children, type);\n }\n }\n }\n\n if (type === exports.Fragment) {\n validateFragmentProps(element);\n } else {\n validatePropTypes(element);\n }\n\n return element;\n }\n} // These two functions exist to still get child warnings in dev\n\nvar jsxDEV$1 = jsxWithValidation ;\n\nexports.jsxDEV = jsxDEV$1;\n })();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QvY2pzL3JlYWN0LWpzeC1kZXYtcnVudGltZS5kZXZlbG9wbWVudC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVhOztBQUViLElBQUksSUFBcUM7QUFDekM7QUFDQTs7QUFFQSxZQUFZLG1CQUFPLENBQUMsNENBQU87QUFDM0IsY0FBYyxtQkFBTyxDQUFDLGdGQUFlOztBQUVyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRSxnQkFBZ0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsK0ZBQStGLGVBQWU7QUFDOUc7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxLQUFLLEdBQUc7O0FBRVIsa0RBQWtEO0FBQ2xEO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBLDRCQUE0Qjs7QUFFNUI7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7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QUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSw4QkFBOEI7QUFDOUI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJIQUEySDtBQUMzSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxVQUFVO0FBQ1Y7QUFDQTs7QUFFQTtBQUNBOztBQUVBLG9FQUFvRTs7QUFFcEU7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNM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QTtBQUNBLE1BQU07QUFDTjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOLDRDQUE0Qzs7QUFFNUM7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsY0FBYztBQUN6Qjs7O0FBR0E7QUFDQTtBQUNBOztBQUVBLG9CQUFvQixpQkFBaUI7QUFDckM7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSw4Q0FBOEM7QUFDOUM7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBOztBQUVBO0FBQ0E7O0FBRUEsMERBQTBEO0FBQzFEOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLHFCQUFxQjtBQUNqRDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7QUFFQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRjs7QUFFQSxjQUFjO0FBQ2QsR0FBRztBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9yZWFjdC9janMvcmVhY3QtanN4LWRldi1ydW50aW1lLmRldmVsb3BtZW50LmpzPzE3ZTEiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBsaWNlbnNlIFJlYWN0IHYxNy4wLjJcbiAqIHJlYWN0LWpzeC1kZXYtcnVudGltZS5kZXZlbG9wbWVudC5qc1xuICpcbiAqIENvcHlyaWdodCAoYykgRmFjZWJvb2ssIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAoZnVuY3Rpb24oKSB7XG4ndXNlIHN0cmljdCc7XG5cbnZhciBSZWFjdCA9IHJlcXVpcmUoJ3JlYWN0Jyk7XG52YXIgX2Fzc2lnbiA9IHJlcXVpcmUoJ29iamVjdC1hc3NpZ24nKTtcblxuLy8gQVRURU5USU9OXG4vLyBXaGVuIGFkZGluZyBuZXcgc3ltYm9scyB0byB0aGlzIGZpbGUsXG4vLyBQbGVhc2UgY29uc2lkZXIgYWxzbyBhZGRpbmcgdG8gJ3JlYWN0LWRldnRvb2xzLXNoYXJlZC9zcmMvYmFja2VuZC9SZWFjdFN5bWJvbHMnXG4vLyBUaGUgU3ltYm9sIHVzZWQgdG8gdGFnIHRoZSBSZWFjdEVsZW1lbnQtbGlrZSB0eXBlcy4gSWYgdGhlcmUgaXMgbm8gbmF0aXZlIFN5bWJvbFxuLy8gbm9yIHBvbHlmaWxsLCB0aGVuIGEgcGxhaW4gbnVtYmVyIGlzIHVzZWQgZm9yIHBlcmZvcm1hbmNlLlxudmFyIFJFQUNUX0VMRU1FTlRfVFlQRSA9IDB4ZWFjNztcbnZhciBSRUFDVF9QT1JUQUxfVFlQRSA9IDB4ZWFjYTtcbmV4cG9ydHMuRnJhZ21lbnQgPSAweGVhY2I7XG52YXIgUkVBQ1RfU1RSSUNUX01PREVfVFlQRSA9IDB4ZWFjYztcbnZhciBSRUFDVF9QUk9GSUxFUl9UWVBFID0gMHhlYWQyO1xudmFyIFJFQUNUX1BST1ZJREVSX1RZUEUgPSAweGVhY2Q7XG52YXIgUkVBQ1RfQ09OVEVYVF9UWVBFID0gMHhlYWNlO1xudmFyIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgPSAweGVhZDA7XG52YXIgUkVBQ1RfU1VTUEVOU0VfVFlQRSA9IDB4ZWFkMTtcbnZhciBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUgPSAweGVhZDg7XG52YXIgUkVBQ1RfTUVNT19UWVBFID0gMHhlYWQzO1xudmFyIFJFQUNUX0xBWllfVFlQRSA9IDB4ZWFkNDtcbnZhciBSRUFDVF9CTE9DS19UWVBFID0gMHhlYWQ5O1xudmFyIFJFQUNUX1NFUlZFUl9CTE9DS19UWVBFID0gMHhlYWRhO1xudmFyIFJFQUNUX0ZVTkRBTUVOVEFMX1RZUEUgPSAweGVhZDU7XG52YXIgUkVBQ1RfU0NPUEVfVFlQRSA9IDB4ZWFkNztcbnZhciBSRUFDVF9PUEFRVUVfSURfVFlQRSA9IDB4ZWFlMDtcbnZhciBSRUFDVF9ERUJVR19UUkFDSU5HX01PREVfVFlQRSA9IDB4ZWFlMTtcbnZhciBSRUFDVF9PRkZTQ1JFRU5fVFlQRSA9IDB4ZWFlMjtcbnZhciBSRUFDVF9MRUdBQ1lfSElEREVOX1RZUEUgPSAweGVhZTM7XG5cbmlmICh0eXBlb2YgU3ltYm9sID09PSAnZnVuY3Rpb24nICYmIFN5bWJvbC5mb3IpIHtcbiAgdmFyIHN5bWJvbEZvciA9IFN5bWJvbC5mb3I7XG4gIFJFQUNUX0VMRU1FTlRfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QuZWxlbWVudCcpO1xuICBSRUFDVF9QT1JUQUxfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QucG9ydGFsJyk7XG4gIGV4cG9ydHMuRnJhZ21lbnQgPSBzeW1ib2xGb3IoJ3JlYWN0LmZyYWdtZW50Jyk7XG4gIFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LnN0cmljdF9tb2RlJyk7XG4gIFJFQUNUX1BST0ZJTEVSX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LnByb2ZpbGVyJyk7XG4gIFJFQUNUX1BST1ZJREVSX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LnByb3ZpZGVyJyk7XG4gIFJFQUNUX0NPTlRFWFRfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QuY29udGV4dCcpO1xuICBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5mb3J3YXJkX3JlZicpO1xuICBSRUFDVF9TVVNQRU5TRV9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5zdXNwZW5zZScpO1xuICBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LnN1c3BlbnNlX2xpc3QnKTtcbiAgUkVBQ1RfTUVNT19UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5tZW1vJyk7XG4gIFJFQUNUX0xBWllfVFlQRSA9IHN5bWJvbEZvcigncmVhY3QubGF6eScpO1xuICBSRUFDVF9CTE9DS19UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5ibG9jaycpO1xuICBSRUFDVF9TRVJWRVJfQkxPQ0tfVFlQRSA9IHN5bWJvbEZvcigncmVhY3Quc2VydmVyLmJsb2NrJyk7XG4gIFJFQUNUX0ZVTkRBTUVOVEFMX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LmZ1bmRhbWVudGFsJyk7XG4gIFJFQUNUX1NDT1BFX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LnNjb3BlJyk7XG4gIFJFQUNUX09QQVFVRV9JRF9UWVBFID0gc3ltYm9sRm9yKCdyZWFjdC5vcGFxdWUuaWQnKTtcbiAgUkVBQ1RfREVCVUdfVFJBQ0lOR19NT0RFX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LmRlYnVnX3RyYWNlX21vZGUnKTtcbiAgUkVBQ1RfT0ZGU0NSRUVOX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0Lm9mZnNjcmVlbicpO1xuICBSRUFDVF9MRUdBQ1lfSElEREVOX1RZUEUgPSBzeW1ib2xGb3IoJ3JlYWN0LmxlZ2FjeV9oaWRkZW4nKTtcbn1cblxudmFyIE1BWUJFX0lURVJBVE9SX1NZTUJPTCA9IHR5cGVvZiBTeW1ib2wgPT09ICdmdW5jdGlvbicgJiYgU3ltYm9sLml0ZXJhdG9yO1xudmFyIEZBVVhfSVRFUkFUT1JfU1lNQk9MID0gJ0BAaXRlcmF0b3InO1xuZnVuY3Rpb24gZ2V0SXRlcmF0b3JGbihtYXliZUl0ZXJhYmxlKSB7XG4gIGlmIChtYXliZUl0ZXJhYmxlID09PSBudWxsIHx8IHR5cGVvZiBtYXliZUl0ZXJhYmxlICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgdmFyIG1heWJlSXRlcmF0b3IgPSBNQVlCRV9JVEVSQVRPUl9TWU1CT0wgJiYgbWF5YmVJdGVyYWJsZVtNQVlCRV9JVEVSQVRPUl9TWU1CT0xdIHx8IG1heWJlSXRlcmFibGVbRkFVWF9JVEVSQVRPUl9TWU1CT0xdO1xuXG4gIGlmICh0eXBlb2YgbWF5YmVJdGVyYXRvciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBtYXliZUl0ZXJhdG9yO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbnZhciBSZWFjdFNoYXJlZEludGVybmFscyA9IFJlYWN0Ll9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEO1xuXG5mdW5jdGlvbiBlcnJvcihmb3JtYXQpIHtcbiAge1xuICAgIGZvciAodmFyIF9sZW4yID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuMiA+IDEgPyBfbGVuMiAtIDEgOiAwKSwgX2tleTIgPSAxOyBfa2V5MiA8IF9sZW4yOyBfa2V5MisrKSB7XG4gICAgICBhcmdzW19rZXkyIC0gMV0gPSBhcmd1bWVudHNbX2tleTJdO1xuICAgIH1cblxuICAgIHByaW50V2FybmluZygnZXJyb3InLCBmb3JtYXQsIGFyZ3MpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHByaW50V2FybmluZyhsZXZlbCwgZm9ybWF0LCBhcmdzKSB7XG4gIC8vIFdoZW4gY2hhbmdpbmcgdGhpcyBsb2dpYywgeW91IG1pZ2h0IHdhbnQgdG8gYWxzb1xuICAvLyB1cGRhdGUgY29uc29sZVdpdGhTdGFja0Rldi53d3cuanMgYXMgd2VsbC5cbiAge1xuICAgIHZhciBSZWFjdERlYnVnQ3VycmVudEZyYW1lID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZTtcbiAgICB2YXIgc3RhY2sgPSBSZWFjdERlYnVnQ3VycmVudEZyYW1lLmdldFN0YWNrQWRkZW5kdW0oKTtcblxuICAgIGlmIChzdGFjayAhPT0gJycpIHtcbiAgICAgIGZvcm1hdCArPSAnJXMnO1xuICAgICAgYXJncyA9IGFyZ3MuY29uY2F0KFtzdGFja10pO1xuICAgIH1cblxuICAgIHZhciBhcmdzV2l0aEZvcm1hdCA9IGFyZ3MubWFwKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICByZXR1cm4gJycgKyBpdGVtO1xuICAgIH0pOyAvLyBDYXJlZnVsOiBSTiBjdXJyZW50bHkgZGVwZW5kcyBvbiB0aGlzIHByZWZpeFxuXG4gICAgYXJnc1dpdGhGb3JtYXQudW5zaGlmdCgnV2FybmluZzogJyArIGZvcm1hdCk7IC8vIFdlIGludGVudGlvbmFsbHkgZG9uJ3QgdXNlIHNwcmVhZCAob3IgLmFwcGx5KSBkaXJlY3RseSBiZWNhdXNlIGl0XG4gICAgLy8gYnJlYWtzIElFOTogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xMzYxMFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9uby1wcm9kdWN0aW9uLWxvZ2dpbmdcblxuICAgIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5jYWxsKGNvbnNvbGVbbGV2ZWxdLCBjb25zb2xlLCBhcmdzV2l0aEZvcm1hdCk7XG4gIH1cbn1cblxuLy8gRmlsdGVyIGNlcnRhaW4gRE9NIGF0dHJpYnV0ZXMgKGUuZy4gc3JjLCBocmVmKSBpZiB0aGVpciB2YWx1ZXMgYXJlIGVtcHR5IHN0cmluZ3MuXG5cbnZhciBlbmFibGVTY29wZUFQSSA9IGZhbHNlOyAvLyBFeHBlcmltZW50YWwgQ3JlYXRlIEV2ZW50IEhhbmRsZSBBUEkuXG5cbmZ1bmN0aW9uIGlzVmFsaWRFbGVtZW50VHlwZSh0eXBlKSB7XG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSAvLyBOb3RlOiB0eXBlb2YgbWlnaHQgYmUgb3RoZXIgdGhhbiAnc3ltYm9sJyBvciAnbnVtYmVyJyAoZS5nLiBpZiBpdCdzIGEgcG9seWZpbGwpLlxuXG5cbiAgaWYgKHR5cGUgPT09IGV4cG9ydHMuRnJhZ21lbnQgfHwgdHlwZSA9PT0gUkVBQ1RfUFJPRklMRVJfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9ERUJVR19UUkFDSU5HX01PREVfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX1NVU1BFTlNFX1RZUEUgfHwgdHlwZSA9PT0gUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX0xFR0FDWV9ISURERU5fVFlQRSB8fCBlbmFibGVTY29wZUFQSSApIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcgJiYgdHlwZSAhPT0gbnVsbCkge1xuICAgIGlmICh0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9MQVpZX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTUVNT19UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX1BST1ZJREVSX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQ09OVEVYVF9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfRlVOREFNRU5UQUxfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9CTE9DS19UWVBFIHx8IHR5cGVbMF0gPT09IFJFQUNUX1NFUlZFUl9CTE9DS19UWVBFKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIGdldFdyYXBwZWROYW1lKG91dGVyVHlwZSwgaW5uZXJUeXBlLCB3cmFwcGVyTmFtZSkge1xuICB2YXIgZnVuY3Rpb25OYW1lID0gaW5uZXJUeXBlLmRpc3BsYXlOYW1lIHx8IGlubmVyVHlwZS5uYW1lIHx8ICcnO1xuICByZXR1cm4gb3V0ZXJUeXBlLmRpc3BsYXlOYW1lIHx8IChmdW5jdGlvbk5hbWUgIT09ICcnID8gd3JhcHBlck5hbWUgKyBcIihcIiArIGZ1bmN0aW9uTmFtZSArIFwiKVwiIDogd3JhcHBlck5hbWUpO1xufVxuXG5mdW5jdGlvbiBnZXRDb250ZXh0TmFtZSh0eXBlKSB7XG4gIHJldHVybiB0eXBlLmRpc3BsYXlOYW1lIHx8ICdDb250ZXh0Jztcbn1cblxuZnVuY3Rpb24gZ2V0Q29tcG9uZW50TmFtZSh0eXBlKSB7XG4gIGlmICh0eXBlID09IG51bGwpIHtcbiAgICAvLyBIb3N0IHJvb3QsIHRleHQgbm9kZSBvciBqdXN0IGludmFsaWQgdHlwZS5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHtcbiAgICBpZiAodHlwZW9mIHR5cGUudGFnID09PSAnbnVtYmVyJykge1xuICAgICAgZXJyb3IoJ1JlY2VpdmVkIGFuIHVuZXhwZWN0ZWQgb2JqZWN0IGluIGdldENvbXBvbmVudE5hbWUoKS4gJyArICdUaGlzIGlzIGxpa2VseSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJyk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIHR5cGUuZGlzcGxheU5hbWUgfHwgdHlwZS5uYW1lIHx8IG51bGw7XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cblxuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlIGV4cG9ydHMuRnJhZ21lbnQ6XG4gICAgICByZXR1cm4gJ0ZyYWdtZW50JztcblxuICAgIGNhc2UgUkVBQ1RfUE9SVEFMX1RZUEU6XG4gICAgICByZXR1cm4gJ1BvcnRhbCc7XG5cbiAgICBjYXNlIFJFQUNUX1BST0ZJTEVSX1RZUEU6XG4gICAgICByZXR1cm4gJ1Byb2ZpbGVyJztcblxuICAgIGNhc2UgUkVBQ1RfU1RSSUNUX01PREVfVFlQRTpcbiAgICAgIHJldHVybiAnU3RyaWN0TW9kZSc7XG5cbiAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX1RZUEU6XG4gICAgICByZXR1cm4gJ1N1c3BlbnNlJztcblxuICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFOlxuICAgICAgcmV0dXJuICdTdXNwZW5zZUxpc3QnO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnb2JqZWN0Jykge1xuICAgIHN3aXRjaCAodHlwZS4kJHR5cGVvZikge1xuICAgICAgY2FzZSBSRUFDVF9DT05URVhUX1RZUEU6XG4gICAgICAgIHZhciBjb250ZXh0ID0gdHlwZTtcbiAgICAgICAgcmV0dXJuIGdldENvbnRleHROYW1lKGNvbnRleHQpICsgJy5Db25zdW1lcic7XG5cbiAgICAgIGNhc2UgUkVBQ1RfUFJPVklERVJfVFlQRTpcbiAgICAgICAgdmFyIHByb3ZpZGVyID0gdHlwZTtcbiAgICAgICAgcmV0dXJuIGdldENvbnRleHROYW1lKHByb3ZpZGVyLl9jb250ZXh0KSArICcuUHJvdmlkZXInO1xuXG4gICAgICBjYXNlIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU6XG4gICAgICAgIHJldHVybiBnZXRXcmFwcGVkTmFtZSh0eXBlLCB0eXBlLnJlbmRlciwgJ0ZvcndhcmRSZWYnKTtcblxuICAgICAgY2FzZSBSRUFDVF9NRU1PX1RZUEU6XG4gICAgICAgIHJldHVybiBnZXRDb21wb25lbnROYW1lKHR5cGUudHlwZSk7XG5cbiAgICAgIGNhc2UgUkVBQ1RfQkxPQ0tfVFlQRTpcbiAgICAgICAgcmV0dXJuIGdldENvbXBvbmVudE5hbWUodHlwZS5fcmVuZGVyKTtcblxuICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgbGF6eUNvbXBvbmVudCA9IHR5cGU7XG4gICAgICAgICAgdmFyIHBheWxvYWQgPSBsYXp5Q29tcG9uZW50Ll9wYXlsb2FkO1xuICAgICAgICAgIHZhciBpbml0ID0gbGF6eUNvbXBvbmVudC5faW5pdDtcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0Q29tcG9uZW50TmFtZShpbml0KHBheWxvYWQpKTtcbiAgICAgICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuLy8gSGVscGVycyB0byBwYXRjaCBjb25zb2xlLmxvZ3MgdG8gYXZvaWQgbG9nZ2luZyBkdXJpbmcgc2lkZS1lZmZlY3QgZnJlZVxuLy8gcmVwbGF5aW5nIG9uIHJlbmRlciBmdW5jdGlvbi4gVGhpcyBjdXJyZW50bHkgb25seSBwYXRjaGVzIHRoZSBvYmplY3Rcbi8vIGxhemlseSB3aGljaCB3b24ndCBjb3ZlciBpZiB0aGUgbG9nIGZ1bmN0aW9uIHdhcyBleHRyYWN0ZWQgZWFnZXJseS5cbi8vIFdlIGNvdWxkIGFsc28gZWFnZXJseSBwYXRjaCB0aGUgbWV0aG9kLlxudmFyIGRpc2FibGVkRGVwdGggPSAwO1xudmFyIHByZXZMb2c7XG52YXIgcHJldkluZm87XG52YXIgcHJldldhcm47XG52YXIgcHJldkVycm9yO1xudmFyIHByZXZHcm91cDtcbnZhciBwcmV2R3JvdXBDb2xsYXBzZWQ7XG52YXIgcHJldkdyb3VwRW5kO1xuXG5mdW5jdGlvbiBkaXNhYmxlZExvZygpIHt9XG5cbmRpc2FibGVkTG9nLl9fcmVhY3REaXNhYmxlZExvZyA9IHRydWU7XG5mdW5jdGlvbiBkaXNhYmxlTG9ncygpIHtcbiAge1xuICAgIGlmIChkaXNhYmxlZERlcHRoID09PSAwKSB7XG4gICAgICAvKiBlc2xpbnQtZGlzYWJsZSByZWFjdC1pbnRlcm5hbC9uby1wcm9kdWN0aW9uLWxvZ2dpbmcgKi9cbiAgICAgIHByZXZMb2cgPSBjb25zb2xlLmxvZztcbiAgICAgIHByZXZJbmZvID0gY29uc29sZS5pbmZvO1xuICAgICAgcHJldldhcm4gPSBjb25zb2xlLndhcm47XG4gICAgICBwcmV2RXJyb3IgPSBjb25zb2xlLmVycm9yO1xuICAgICAgcHJldkdyb3VwID0gY29uc29sZS5ncm91cDtcbiAgICAgIHByZXZHcm91cENvbGxhcHNlZCA9IGNvbnNvbGUuZ3JvdXBDb2xsYXBzZWQ7XG4gICAgICBwcmV2R3JvdXBFbmQgPSBjb25zb2xlLmdyb3VwRW5kOyAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzE5MDk5XG5cbiAgICAgIHZhciBwcm9wcyA9IHtcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICB2YWx1ZTogZGlzYWJsZWRMb2csXG4gICAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgICB9OyAvLyAkRmxvd0ZpeE1lIEZsb3cgdGhpbmtzIGNvbnNvbGUgaXMgaW1tdXRhYmxlLlxuXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhjb25zb2xlLCB7XG4gICAgICAgIGluZm86IHByb3BzLFxuICAgICAgICBsb2c6IHByb3BzLFxuICAgICAgICB3YXJuOiBwcm9wcyxcbiAgICAgICAgZXJyb3I6IHByb3BzLFxuICAgICAgICBncm91cDogcHJvcHMsXG4gICAgICAgIGdyb3VwQ29sbGFwc2VkOiBwcm9wcyxcbiAgICAgICAgZ3JvdXBFbmQ6IHByb3BzXG4gICAgICB9KTtcbiAgICAgIC8qIGVzbGludC1lbmFibGUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nICovXG4gICAgfVxuXG4gICAgZGlzYWJsZWREZXB0aCsrO1xuICB9XG59XG5mdW5jdGlvbiByZWVuYWJsZUxvZ3MoKSB7XG4gIHtcbiAgICBkaXNhYmxlZERlcHRoLS07XG5cbiAgICBpZiAoZGlzYWJsZWREZXB0aCA9PT0gMCkge1xuICAgICAgLyogZXNsaW50LWRpc2FibGUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nICovXG4gICAgICB2YXIgcHJvcHMgPSB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgd3JpdGFibGU6IHRydWVcbiAgICAgIH07IC8vICRGbG93Rml4TWUgRmxvdyB0aGlua3MgY29uc29sZSBpcyBpbW11dGFibGUuXG5cbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGNvbnNvbGUsIHtcbiAgICAgICAgbG9nOiBfYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2TG9nXG4gICAgICAgIH0pLFxuICAgICAgICBpbmZvOiBfYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2SW5mb1xuICAgICAgICB9KSxcbiAgICAgICAgd2FybjogX2Fzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldldhcm5cbiAgICAgICAgfSksXG4gICAgICAgIGVycm9yOiBfYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2RXJyb3JcbiAgICAgICAgfSksXG4gICAgICAgIGdyb3VwOiBfYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2R3JvdXBcbiAgICAgICAgfSksXG4gICAgICAgIGdyb3VwQ29sbGFwc2VkOiBfYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2R3JvdXBDb2xsYXBzZWRcbiAgICAgICAgfSksXG4gICAgICAgIGdyb3VwRW5kOiBfYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2R3JvdXBFbmRcbiAgICAgICAgfSlcbiAgICAgIH0pO1xuICAgICAgLyogZXNsaW50LWVuYWJsZSByZWFjdC1pbnRlcm5hbC9uby1wcm9kdWN0aW9uLWxvZ2dpbmcgKi9cbiAgICB9XG5cbiAgICBpZiAoZGlzYWJsZWREZXB0aCA8IDApIHtcbiAgICAgIGVycm9yKCdkaXNhYmxlZERlcHRoIGZlbGwgYmVsb3cgemVyby4gJyArICdUaGlzIGlzIGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nKTtcbiAgICB9XG4gIH1cbn1cblxudmFyIFJlYWN0Q3VycmVudERpc3BhdGNoZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdEN1cnJlbnREaXNwYXRjaGVyO1xudmFyIHByZWZpeDtcbmZ1bmN0aW9uIGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKG5hbWUsIHNvdXJjZSwgb3duZXJGbikge1xuICB7XG4gICAgaWYgKHByZWZpeCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBFeHRyYWN0IHRoZSBWTSBzcGVjaWZpYyBwcmVmaXggdXNlZCBieSBlYWNoIGxpbmUuXG4gICAgICB0cnkge1xuICAgICAgICB0aHJvdyBFcnJvcigpO1xuICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICB2YXIgbWF0Y2ggPSB4LnN0YWNrLnRyaW0oKS5tYXRjaCgvXFxuKCAqKGF0ICk/KS8pO1xuICAgICAgICBwcmVmaXggPSBtYXRjaCAmJiBtYXRjaFsxXSB8fCAnJztcbiAgICAgIH1cbiAgICB9IC8vIFdlIHVzZSB0aGUgcHJlZml4IHRvIGVuc3VyZSBvdXIgc3RhY2tzIGxpbmUgdXAgd2l0aCBuYXRpdmUgc3RhY2sgZnJhbWVzLlxuXG5cbiAgICByZXR1cm4gJ1xcbicgKyBwcmVmaXggKyBuYW1lO1xuICB9XG59XG52YXIgcmVlbnRyeSA9IGZhbHNlO1xudmFyIGNvbXBvbmVudEZyYW1lQ2FjaGU7XG5cbntcbiAgdmFyIFBvc3NpYmx5V2Vha01hcCA9IHR5cGVvZiBXZWFrTWFwID09PSAnZnVuY3Rpb24nID8gV2Vha01hcCA6IE1hcDtcbiAgY29tcG9uZW50RnJhbWVDYWNoZSA9IG5ldyBQb3NzaWJseVdlYWtNYXAoKTtcbn1cblxuZnVuY3Rpb24gZGVzY3JpYmVOYXRpdmVDb21wb25lbnRGcmFtZShmbiwgY29uc3RydWN0KSB7XG4gIC8vIElmIHNvbWV0aGluZyBhc2tlZCBmb3IgYSBzdGFjayBpbnNpZGUgYSBmYWtlIHJlbmRlciwgaXQgc2hvdWxkIGdldCBpZ25vcmVkLlxuICBpZiAoIWZuIHx8IHJlZW50cnkpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICB7XG4gICAgdmFyIGZyYW1lID0gY29tcG9uZW50RnJhbWVDYWNoZS5nZXQoZm4pO1xuXG4gICAgaWYgKGZyYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBmcmFtZTtcbiAgICB9XG4gIH1cblxuICB2YXIgY29udHJvbDtcbiAgcmVlbnRyeSA9IHRydWU7XG4gIHZhciBwcmV2aW91c1ByZXBhcmVTdGFja1RyYWNlID0gRXJyb3IucHJlcGFyZVN0YWNrVHJhY2U7IC8vICRGbG93Rml4TWUgSXQgZG9lcyBhY2NlcHQgdW5kZWZpbmVkLlxuXG4gIEVycm9yLnByZXBhcmVTdGFja1RyYWNlID0gdW5kZWZpbmVkO1xuICB2YXIgcHJldmlvdXNEaXNwYXRjaGVyO1xuXG4gIHtcbiAgICBwcmV2aW91c0Rpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyLmN1cnJlbnQ7IC8vIFNldCB0aGUgZGlzcGF0Y2hlciBpbiBERVYgYmVjYXVzZSB0aGlzIG1pZ2h0IGJlIGNhbGwgaW4gdGhlIHJlbmRlciBmdW5jdGlvblxuICAgIC8vIGZvciB3YXJuaW5ncy5cblxuICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIuY3VycmVudCA9IG51bGw7XG4gICAgZGlzYWJsZUxvZ3MoKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgLy8gVGhpcyBzaG91bGQgdGhyb3cuXG4gICAgaWYgKGNvbnN0cnVjdCkge1xuICAgICAgLy8gU29tZXRoaW5nIHNob3VsZCBiZSBzZXR0aW5nIHRoZSBwcm9wcyBpbiB0aGUgY29uc3RydWN0b3IuXG4gICAgICB2YXIgRmFrZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoKTtcbiAgICAgIH07IC8vICRGbG93Rml4TWVcblxuXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRmFrZS5wcm90b3R5cGUsICdwcm9wcycsIHtcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgLy8gV2UgdXNlIGEgdGhyb3dpbmcgc2V0dGVyIGluc3RlYWQgb2YgZnJvemVuIG9yIG5vbi13cml0YWJsZSBwcm9wc1xuICAgICAgICAgIC8vIGJlY2F1c2UgdGhhdCB3b24ndCB0aHJvdyBpbiBhIG5vbi1zdHJpY3QgbW9kZSBmdW5jdGlvbi5cbiAgICAgICAgICB0aHJvdyBFcnJvcigpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSAnb2JqZWN0JyAmJiBSZWZsZWN0LmNvbnN0cnVjdCkge1xuICAgICAgICAvLyBXZSBjb25zdHJ1Y3QgYSBkaWZmZXJlbnQgY29udHJvbCBmb3IgdGhpcyBjYXNlIHRvIGluY2x1ZGUgYW55IGV4dHJhXG4gICAgICAgIC8vIGZyYW1lcyBhZGRlZCBieSB0aGUgY29uc3RydWN0IGNhbGwuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgUmVmbGVjdC5jb25zdHJ1Y3QoRmFrZSwgW10pO1xuICAgICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgICAgY29udHJvbCA9IHg7XG4gICAgICAgIH1cblxuICAgICAgICBSZWZsZWN0LmNvbnN0cnVjdChmbiwgW10sIEZha2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBGYWtlLmNhbGwoKTtcbiAgICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICAgIGNvbnRyb2wgPSB4O1xuICAgICAgICB9XG5cbiAgICAgICAgZm4uY2FsbChGYWtlLnByb3RvdHlwZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRocm93IEVycm9yKCk7XG4gICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgIGNvbnRyb2wgPSB4O1xuICAgICAgfVxuXG4gICAgICBmbigpO1xuICAgIH1cbiAgfSBjYXRjaCAoc2FtcGxlKSB7XG4gICAgLy8gVGhpcyBpcyBpbmxpbmVkIG1hbnVhbGx5IGJlY2F1c2UgY2xvc3VyZSBkb2Vzbid0IGRvIGl0IGZvciB1cy5cbiAgICBpZiAoc2FtcGxlICYmIGNvbnRyb2wgJiYgdHlwZW9mIHNhbXBsZS5zdGFjayA9PT0gJ3N0cmluZycpIHtcbiAgICAgIC8vIFRoaXMgZXh0cmFjdHMgdGhlIGZpcnN0IGZyYW1lIGZyb20gdGhlIHNhbXBsZSB0aGF0IGlzbid0IGFsc28gaW4gdGhlIGNvbnRyb2wuXG4gICAgICAvLyBTa2lwcGluZyBvbmUgZnJhbWUgdGhhdCB3ZSBhc3N1bWUgaXMgdGhlIGZyYW1lIHRoYXQgY2FsbHMgdGhlIHR3by5cbiAgICAgIHZhciBzYW1wbGVMaW5lcyA9IHNhbXBsZS5zdGFjay5zcGxpdCgnXFxuJyk7XG4gICAgICB2YXIgY29udHJvbExpbmVzID0gY29udHJvbC5zdGFjay5zcGxpdCgnXFxuJyk7XG4gICAgICB2YXIgcyA9IHNhbXBsZUxpbmVzLmxlbmd0aCAtIDE7XG4gICAgICB2YXIgYyA9IGNvbnRyb2xMaW5lcy5sZW5ndGggLSAxO1xuXG4gICAgICB3aGlsZSAocyA+PSAxICYmIGMgPj0gMCAmJiBzYW1wbGVMaW5lc1tzXSAhPT0gY29udHJvbExpbmVzW2NdKSB7XG4gICAgICAgIC8vIFdlIGV4cGVjdCBhdCBsZWFzdCBvbmUgc3RhY2sgZnJhbWUgdG8gYmUgc2hhcmVkLlxuICAgICAgICAvLyBUeXBpY2FsbHkgdGhpcyB3aWxsIGJlIHRoZSByb290IG1vc3Qgb25lLiBIb3dldmVyLCBzdGFjayBmcmFtZXMgbWF5IGJlXG4gICAgICAgIC8vIGN1dCBvZmYgZHVlIHRvIG1heGltdW0gc3RhY2sgbGltaXRzLiBJbiB0aGlzIGNhc2UsIG9uZSBtYXliZSBjdXQgb2ZmXG4gICAgICAgIC8vIGVhcmxpZXIgdGhhbiB0aGUgb3RoZXIuIFdlIGFzc3VtZSB0aGF0IHRoZSBzYW1wbGUgaXMgbG9uZ2VyIG9yIHRoZSBzYW1lXG4gICAgICAgIC8vIGFuZCB0aGVyZSBmb3IgY3V0IG9mZiBlYXJsaWVyLiBTbyB3ZSBzaG91bGQgZmluZCB0aGUgcm9vdCBtb3N0IGZyYW1lIGluXG4gICAgICAgIC8vIHRoZSBzYW1wbGUgc29tZXdoZXJlIGluIHRoZSBjb250cm9sLlxuICAgICAgICBjLS07XG4gICAgICB9XG5cbiAgICAgIGZvciAoOyBzID49IDEgJiYgYyA+PSAwOyBzLS0sIGMtLSkge1xuICAgICAgICAvLyBOZXh0IHdlIGZpbmQgdGhlIGZpcnN0IG9uZSB0aGF0IGlzbid0IHRoZSBzYW1lIHdoaWNoIHNob3VsZCBiZSB0aGVcbiAgICAgICAgLy8gZnJhbWUgdGhhdCBjYWxsZWQgb3VyIHNhbXBsZSBmdW5jdGlvbiBhbmQgdGhlIGNvbnRyb2wuXG4gICAgICAgIGlmIChzYW1wbGVMaW5lc1tzXSAhPT0gY29udHJvbExpbmVzW2NdKSB7XG4gICAgICAgICAgLy8gSW4gVjgsIHRoZSBmaXJzdCBsaW5lIGlzIGRlc2NyaWJpbmcgdGhlIG1lc3NhZ2UgYnV0IG90aGVyIFZNcyBkb24ndC5cbiAgICAgICAgICAvLyBJZiB3ZSdyZSBhYm91dCB0byByZXR1cm4gdGhlIGZpcnN0IGxpbmUsIGFuZCB0aGUgY29udHJvbCBpcyBhbHNvIG9uIHRoZSBzYW1lXG4gICAgICAgICAgLy8gbGluZSwgdGhhdCdzIGEgcHJldHR5IGdvb2QgaW5kaWNhdG9yIHRoYXQgb3VyIHNhbXBsZSB0aHJldyBhdCBzYW1lIGxpbmUgYXNcbiAgICAgICAgICAvLyB0aGUgY29udHJvbC4gSS5lLiBiZWZvcmUgd2UgZW50ZXJlZCB0aGUgc2FtcGxlIGZyYW1lLiBTbyB3ZSBpZ25vcmUgdGhpcyByZXN1bHQuXG4gICAgICAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIGlmIHlvdSBwYXNzZWQgYSBjbGFzcyB0byBmdW5jdGlvbiBjb21wb25lbnQsIG9yIG5vbi1mdW5jdGlvbi5cbiAgICAgICAgICBpZiAocyAhPT0gMSB8fCBjICE9PSAxKSB7XG4gICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgIHMtLTtcbiAgICAgICAgICAgICAgYy0tOyAvLyBXZSBtYXkgc3RpbGwgaGF2ZSBzaW1pbGFyIGludGVybWVkaWF0ZSBmcmFtZXMgZnJvbSB0aGUgY29uc3RydWN0IGNhbGwuXG4gICAgICAgICAgICAgIC8vIFRoZSBuZXh0IG9uZSB0aGF0IGlzbid0IHRoZSBzYW1lIHNob3VsZCBiZSBvdXIgbWF0Y2ggdGhvdWdoLlxuXG4gICAgICAgICAgICAgIGlmIChjIDwgMCB8fCBzYW1wbGVMaW5lc1tzXSAhPT0gY29udHJvbExpbmVzW2NdKSB7XG4gICAgICAgICAgICAgICAgLy8gVjggYWRkcyBhIFwibmV3XCIgcHJlZml4IGZvciBuYXRpdmUgY2xhc3Nlcy4gTGV0J3MgcmVtb3ZlIGl0IHRvIG1ha2UgaXQgcHJldHRpZXIuXG4gICAgICAgICAgICAgICAgdmFyIF9mcmFtZSA9ICdcXG4nICsgc2FtcGxlTGluZXNbc10ucmVwbGFjZSgnIGF0IG5ldyAnLCAnIGF0ICcpO1xuXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBmbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRGcmFtZUNhY2hlLnNldChmbiwgX2ZyYW1lKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IC8vIFJldHVybiB0aGUgbGluZSB3ZSBmb3VuZC5cblxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIF9mcmFtZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSB3aGlsZSAocyA+PSAxICYmIGMgPj0gMCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0gZmluYWxseSB7XG4gICAgcmVlbnRyeSA9IGZhbHNlO1xuXG4gICAge1xuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlci5jdXJyZW50ID0gcHJldmlvdXNEaXNwYXRjaGVyO1xuICAgICAgcmVlbmFibGVMb2dzKCk7XG4gICAgfVxuXG4gICAgRXJyb3IucHJlcGFyZVN0YWNrVHJhY2UgPSBwcmV2aW91c1ByZXBhcmVTdGFja1RyYWNlO1xuICB9IC8vIEZhbGxiYWNrIHRvIGp1c3QgdXNpbmcgdGhlIG5hbWUgaWYgd2UgY291bGRuJ3QgbWFrZSBpdCB0aHJvdy5cblxuXG4gIHZhciBuYW1lID0gZm4gPyBmbi5kaXNwbGF5TmFtZSB8fCBmbi5uYW1lIDogJyc7XG4gIHZhciBzeW50aGV0aWNGcmFtZSA9IG5hbWUgPyBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZShuYW1lKSA6ICcnO1xuXG4gIHtcbiAgICBpZiAodHlwZW9mIGZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb21wb25lbnRGcmFtZUNhY2hlLnNldChmbiwgc3ludGhldGljRnJhbWUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzeW50aGV0aWNGcmFtZTtcbn1cbmZ1bmN0aW9uIGRlc2NyaWJlRnVuY3Rpb25Db21wb25lbnRGcmFtZShmbiwgc291cmNlLCBvd25lckZuKSB7XG4gIHtcbiAgICByZXR1cm4gZGVzY3JpYmVOYXRpdmVDb21wb25lbnRGcmFtZShmbiwgZmFsc2UpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHNob3VsZENvbnN0cnVjdChDb21wb25lbnQpIHtcbiAgdmFyIHByb3RvdHlwZSA9IENvbXBvbmVudC5wcm90b3R5cGU7XG4gIHJldHVybiAhIShwcm90b3R5cGUgJiYgcHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQpO1xufVxuXG5mdW5jdGlvbiBkZXNjcmliZVVua25vd25FbGVtZW50VHlwZUZyYW1lSW5ERVYodHlwZSwgc291cmNlLCBvd25lckZuKSB7XG5cbiAgaWYgKHR5cGUgPT0gbnVsbCkge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHtcbiAgICAgIHJldHVybiBkZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lKHR5cGUsIHNob3VsZENvbnN0cnVjdCh0eXBlKSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZSh0eXBlKTtcbiAgfVxuXG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfVFlQRTpcbiAgICAgIHJldHVybiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZSgnU3VzcGVuc2UnKTtcblxuICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFOlxuICAgICAgcmV0dXJuIGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKCdTdXNwZW5zZUxpc3QnKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICBzd2l0Y2ggKHR5cGUuJCR0eXBlb2YpIHtcbiAgICAgIGNhc2UgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTpcbiAgICAgICAgcmV0dXJuIGRlc2NyaWJlRnVuY3Rpb25Db21wb25lbnRGcmFtZSh0eXBlLnJlbmRlcik7XG5cbiAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOlxuICAgICAgICAvLyBNZW1vIG1heSBjb250YWluIGFueSBjb21wb25lbnQgdHlwZSBzbyB3ZSByZWN1cnNpdmVseSByZXNvbHZlIGl0LlxuICAgICAgICByZXR1cm4gZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWKHR5cGUudHlwZSwgc291cmNlLCBvd25lckZuKTtcblxuICAgICAgY2FzZSBSRUFDVF9CTE9DS19UWVBFOlxuICAgICAgICByZXR1cm4gZGVzY3JpYmVGdW5jdGlvbkNvbXBvbmVudEZyYW1lKHR5cGUuX3JlbmRlcik7XG5cbiAgICAgIGNhc2UgUkVBQ1RfTEFaWV9UWVBFOlxuICAgICAgICB7XG4gICAgICAgICAgdmFyIGxhenlDb21wb25lbnQgPSB0eXBlO1xuICAgICAgICAgIHZhciBwYXlsb2FkID0gbGF6eUNvbXBvbmVudC5fcGF5bG9hZDtcbiAgICAgICAgICB2YXIgaW5pdCA9IGxhenlDb21wb25lbnQuX2luaXQ7XG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gTGF6eSBtYXkgY29udGFpbiBhbnkgY29tcG9uZW50IHR5cGUgc28gd2UgcmVjdXJzaXZlbHkgcmVzb2x2ZSBpdC5cbiAgICAgICAgICAgIHJldHVybiBkZXNjcmliZVVua25vd25FbGVtZW50VHlwZUZyYW1lSW5ERVYoaW5pdChwYXlsb2FkKSwgc291cmNlLCBvd25lckZuKTtcbiAgICAgICAgICB9IGNhdGNoICh4KSB7fVxuICAgICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuICcnO1xufVxuXG52YXIgbG9nZ2VkVHlwZUZhaWx1cmVzID0ge307XG52YXIgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0RGVidWdDdXJyZW50RnJhbWU7XG5cbmZ1bmN0aW9uIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50KGVsZW1lbnQpIHtcbiAge1xuICAgIGlmIChlbGVtZW50KSB7XG4gICAgICB2YXIgb3duZXIgPSBlbGVtZW50Ll9vd25lcjtcbiAgICAgIHZhciBzdGFjayA9IGRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFVihlbGVtZW50LnR5cGUsIGVsZW1lbnQuX3NvdXJjZSwgb3duZXIgPyBvd25lci50eXBlIDogbnVsbCk7XG4gICAgICBSZWFjdERlYnVnQ3VycmVudEZyYW1lLnNldEV4dHJhU3RhY2tGcmFtZShzdGFjayk7XG4gICAgfSBlbHNlIHtcbiAgICAgIFJlYWN0RGVidWdDdXJyZW50RnJhbWUuc2V0RXh0cmFTdGFja0ZyYW1lKG51bGwpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjaGVja1Byb3BUeXBlcyh0eXBlU3BlY3MsIHZhbHVlcywgbG9jYXRpb24sIGNvbXBvbmVudE5hbWUsIGVsZW1lbnQpIHtcbiAge1xuICAgIC8vICRGbG93Rml4TWUgVGhpcyBpcyBva2F5IGJ1dCBGbG93IGRvZXNuJ3Qga25vdyBpdC5cbiAgICB2YXIgaGFzID0gRnVuY3Rpb24uY2FsbC5iaW5kKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkpO1xuXG4gICAgZm9yICh2YXIgdHlwZVNwZWNOYW1lIGluIHR5cGVTcGVjcykge1xuICAgICAgaWYgKGhhcyh0eXBlU3BlY3MsIHR5cGVTcGVjTmFtZSkpIHtcbiAgICAgICAgdmFyIGVycm9yJDEgPSB2b2lkIDA7IC8vIFByb3AgdHlwZSB2YWxpZGF0aW9uIG1heSB0aHJvdy4gSW4gY2FzZSB0aGV5IGRvLCB3ZSBkb24ndCB3YW50IHRvXG4gICAgICAgIC8vIGZhaWwgdGhlIHJlbmRlciBwaGFzZSB3aGVyZSBpdCBkaWRuJ3QgZmFpbCBiZWZvcmUuIFNvIHdlIGxvZyBpdC5cbiAgICAgICAgLy8gQWZ0ZXIgdGhlc2UgaGF2ZSBiZWVuIGNsZWFuZWQgdXAsIHdlJ2xsIGxldCB0aGVtIHRocm93LlxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgLy8gVGhpcyBpcyBpbnRlbnRpb25hbGx5IGFuIGludmFyaWFudCB0aGF0IGdldHMgY2F1Z2h0LiBJdCdzIHRoZSBzYW1lXG4gICAgICAgICAgLy8gYmVoYXZpb3IgYXMgd2l0aG91dCB0aGlzIHN0YXRlbWVudCBleGNlcHQgd2l0aCBhIGJldHRlciBtZXNzYWdlLlxuICAgICAgICAgIGlmICh0eXBlb2YgdHlwZVNwZWNzW3R5cGVTcGVjTmFtZV0gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHZhciBlcnIgPSBFcnJvcigoY29tcG9uZW50TmFtZSB8fCAnUmVhY3QgY2xhc3MnKSArICc6ICcgKyBsb2NhdGlvbiArICcgdHlwZSBgJyArIHR5cGVTcGVjTmFtZSArICdgIGlzIGludmFsaWQ7ICcgKyAnaXQgbXVzdCBiZSBhIGZ1bmN0aW9uLCB1c3VhbGx5IGZyb20gdGhlIGBwcm9wLXR5cGVzYCBwYWNrYWdlLCBidXQgcmVjZWl2ZWQgYCcgKyB0eXBlb2YgdHlwZVNwZWNzW3R5cGVTcGVjTmFtZV0gKyAnYC4nICsgJ1RoaXMgb2Z0ZW4gaGFwcGVucyBiZWNhdXNlIG9mIHR5cG9zIHN1Y2ggYXMgYFByb3BUeXBlcy5mdW5jdGlvbmAgaW5zdGVhZCBvZiBgUHJvcFR5cGVzLmZ1bmNgLicpO1xuICAgICAgICAgICAgZXJyLm5hbWUgPSAnSW52YXJpYW50IFZpb2xhdGlvbic7XG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZXJyb3IkMSA9IHR5cGVTcGVjc1t0eXBlU3BlY05hbWVdKHZhbHVlcywgdHlwZVNwZWNOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgbnVsbCwgJ1NFQ1JFVF9ET19OT1RfUEFTU19USElTX09SX1lPVV9XSUxMX0JFX0ZJUkVEJyk7XG4gICAgICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICAgICAgZXJyb3IkMSA9IGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGVycm9yJDEgJiYgIShlcnJvciQxIGluc3RhbmNlb2YgRXJyb3IpKSB7XG4gICAgICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQoZWxlbWVudCk7XG5cbiAgICAgICAgICBlcnJvcignJXM6IHR5cGUgc3BlY2lmaWNhdGlvbiBvZiAlcycgKyAnIGAlc2AgaXMgaW52YWxpZDsgdGhlIHR5cGUgY2hlY2tlciAnICsgJ2Z1bmN0aW9uIG11c3QgcmV0dXJuIGBudWxsYCBvciBhbiBgRXJyb3JgIGJ1dCByZXR1cm5lZCBhICVzLiAnICsgJ1lvdSBtYXkgaGF2ZSBmb3Jnb3R0ZW4gdG8gcGFzcyBhbiBhcmd1bWVudCB0byB0aGUgdHlwZSBjaGVja2VyICcgKyAnY3JlYXRvciAoYXJyYXlPZiwgaW5zdGFuY2VPZiwgb2JqZWN0T2YsIG9uZU9mLCBvbmVPZlR5cGUsIGFuZCAnICsgJ3NoYXBlIGFsbCByZXF1aXJlIGFuIGFyZ3VtZW50KS4nLCBjb21wb25lbnROYW1lIHx8ICdSZWFjdCBjbGFzcycsIGxvY2F0aW9uLCB0eXBlU3BlY05hbWUsIHR5cGVvZiBlcnJvciQxKTtcblxuICAgICAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50KG51bGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGVycm9yJDEgaW5zdGFuY2VvZiBFcnJvciAmJiAhKGVycm9yJDEubWVzc2FnZSBpbiBsb2dnZWRUeXBlRmFpbHVyZXMpKSB7XG4gICAgICAgICAgLy8gT25seSBtb25pdG9yIHRoaXMgZmFpbHVyZSBvbmNlIGJlY2F1c2UgdGhlcmUgdGVuZHMgdG8gYmUgYSBsb3Qgb2YgdGhlXG4gICAgICAgICAgLy8gc2FtZSBlcnJvci5cbiAgICAgICAgICBsb2dnZWRUeXBlRmFpbHVyZXNbZXJyb3IkMS5tZXNzYWdlXSA9IHRydWU7XG4gICAgICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQoZWxlbWVudCk7XG5cbiAgICAgICAgICBlcnJvcignRmFpbGVkICVzIHR5cGU6ICVzJywgbG9jYXRpb24sIGVycm9yJDEubWVzc2FnZSk7XG5cbiAgICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChudWxsKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG52YXIgUmVhY3RDdXJyZW50T3duZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdEN1cnJlbnRPd25lcjtcbnZhciBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG52YXIgUkVTRVJWRURfUFJPUFMgPSB7XG4gIGtleTogdHJ1ZSxcbiAgcmVmOiB0cnVlLFxuICBfX3NlbGY6IHRydWUsXG4gIF9fc291cmNlOiB0cnVlXG59O1xudmFyIHNwZWNpYWxQcm9wS2V5V2FybmluZ1Nob3duO1xudmFyIHNwZWNpYWxQcm9wUmVmV2FybmluZ1Nob3duO1xudmFyIGRpZFdhcm5BYm91dFN0cmluZ1JlZnM7XG5cbntcbiAgZGlkV2FybkFib3V0U3RyaW5nUmVmcyA9IHt9O1xufVxuXG5mdW5jdGlvbiBoYXNWYWxpZFJlZihjb25maWcpIHtcbiAge1xuICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbmZpZywgJ3JlZicpKSB7XG4gICAgICB2YXIgZ2V0dGVyID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjb25maWcsICdyZWYnKS5nZXQ7XG5cbiAgICAgIGlmIChnZXR0ZXIgJiYgZ2V0dGVyLmlzUmVhY3RXYXJuaW5nKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gY29uZmlnLnJlZiAhPT0gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBoYXNWYWxpZEtleShjb25maWcpIHtcbiAge1xuICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbmZpZywgJ2tleScpKSB7XG4gICAgICB2YXIgZ2V0dGVyID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjb25maWcsICdrZXknKS5nZXQ7XG5cbiAgICAgIGlmIChnZXR0ZXIgJiYgZ2V0dGVyLmlzUmVhY3RXYXJuaW5nKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gY29uZmlnLmtleSAhPT0gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiB3YXJuSWZTdHJpbmdSZWZDYW5ub3RCZUF1dG9Db252ZXJ0ZWQoY29uZmlnLCBzZWxmKSB7XG4gIHtcbiAgICBpZiAodHlwZW9mIGNvbmZpZy5yZWYgPT09ICdzdHJpbmcnICYmIFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQgJiYgc2VsZiAmJiBSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50LnN0YXRlTm9kZSAhPT0gc2VsZikge1xuICAgICAgdmFyIGNvbXBvbmVudE5hbWUgPSBnZXRDb21wb25lbnROYW1lKFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQudHlwZSk7XG5cbiAgICAgIGlmICghZGlkV2FybkFib3V0U3RyaW5nUmVmc1tjb21wb25lbnROYW1lXSkge1xuICAgICAgICBlcnJvcignQ29tcG9uZW50IFwiJXNcIiBjb250YWlucyB0aGUgc3RyaW5nIHJlZiBcIiVzXCIuICcgKyAnU3VwcG9ydCBmb3Igc3RyaW5nIHJlZnMgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIG1ham9yIHJlbGVhc2UuICcgKyAnVGhpcyBjYXNlIGNhbm5vdCBiZSBhdXRvbWF0aWNhbGx5IGNvbnZlcnRlZCB0byBhbiBhcnJvdyBmdW5jdGlvbi4gJyArICdXZSBhc2sgeW91IHRvIG1hbnVhbGx5IGZpeCB0aGlzIGNhc2UgYnkgdXNpbmcgdXNlUmVmKCkgb3IgY3JlYXRlUmVmKCkgaW5zdGVhZC4gJyArICdMZWFybiBtb3JlIGFib3V0IHVzaW5nIHJlZnMgc2FmZWx5IGhlcmU6ICcgKyAnaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3N0cmljdC1tb2RlLXN0cmluZy1yZWYnLCBnZXRDb21wb25lbnROYW1lKFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQudHlwZSksIGNvbmZpZy5yZWYpO1xuXG4gICAgICAgIGRpZFdhcm5BYm91dFN0cmluZ1JlZnNbY29tcG9uZW50TmFtZV0gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBkZWZpbmVLZXlQcm9wV2FybmluZ0dldHRlcihwcm9wcywgZGlzcGxheU5hbWUpIHtcbiAge1xuICAgIHZhciB3YXJuQWJvdXRBY2Nlc3NpbmdLZXkgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAoIXNwZWNpYWxQcm9wS2V5V2FybmluZ1Nob3duKSB7XG4gICAgICAgIHNwZWNpYWxQcm9wS2V5V2FybmluZ1Nob3duID0gdHJ1ZTtcblxuICAgICAgICBlcnJvcignJXM6IGBrZXlgIGlzIG5vdCBhIHByb3AuIFRyeWluZyB0byBhY2Nlc3MgaXQgd2lsbCByZXN1bHQgJyArICdpbiBgdW5kZWZpbmVkYCBiZWluZyByZXR1cm5lZC4gSWYgeW91IG5lZWQgdG8gYWNjZXNzIHRoZSBzYW1lICcgKyAndmFsdWUgd2l0aGluIHRoZSBjaGlsZCBjb21wb25lbnQsIHlvdSBzaG91bGQgcGFzcyBpdCBhcyBhIGRpZmZlcmVudCAnICsgJ3Byb3AuIChodHRwczovL3JlYWN0anMub3JnL2xpbmsvc3BlY2lhbC1wcm9wcyknLCBkaXNwbGF5TmFtZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHdhcm5BYm91dEFjY2Vzc2luZ0tleS5pc1JlYWN0V2FybmluZyA9IHRydWU7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3BzLCAna2V5Jywge1xuICAgICAgZ2V0OiB3YXJuQWJvdXRBY2Nlc3NpbmdLZXksXG4gICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBkZWZpbmVSZWZQcm9wV2FybmluZ0dldHRlcihwcm9wcywgZGlzcGxheU5hbWUpIHtcbiAge1xuICAgIHZhciB3YXJuQWJvdXRBY2Nlc3NpbmdSZWYgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAoIXNwZWNpYWxQcm9wUmVmV2FybmluZ1Nob3duKSB7XG4gICAgICAgIHNwZWNpYWxQcm9wUmVmV2FybmluZ1Nob3duID0gdHJ1ZTtcblxuICAgICAgICBlcnJvcignJXM6IGByZWZgIGlzIG5vdCBhIHByb3AuIFRyeWluZyB0byBhY2Nlc3MgaXQgd2lsbCByZXN1bHQgJyArICdpbiBgdW5kZWZpbmVkYCBiZWluZyByZXR1cm5lZC4gSWYgeW91IG5lZWQgdG8gYWNjZXNzIHRoZSBzYW1lICcgKyAndmFsdWUgd2l0aGluIHRoZSBjaGlsZCBjb21wb25lbnQsIHlvdSBzaG91bGQgcGFzcyBpdCBhcyBhIGRpZmZlcmVudCAnICsgJ3Byb3AuIChodHRwczovL3JlYWN0anMub3JnL2xpbmsvc3BlY2lhbC1wcm9wcyknLCBkaXNwbGF5TmFtZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHdhcm5BYm91dEFjY2Vzc2luZ1JlZi5pc1JlYWN0V2FybmluZyA9IHRydWU7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3BzLCAncmVmJywge1xuICAgICAgZ2V0OiB3YXJuQWJvdXRBY2Nlc3NpbmdSZWYsXG4gICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgfVxufVxuLyoqXG4gKiBGYWN0b3J5IG1ldGhvZCB0byBjcmVhdGUgYSBuZXcgUmVhY3QgZWxlbWVudC4gVGhpcyBubyBsb25nZXIgYWRoZXJlcyB0b1xuICogdGhlIGNsYXNzIHBhdHRlcm4sIHNvIGRvIG5vdCB1c2UgbmV3IHRvIGNhbGwgaXQuIEFsc28sIGluc3RhbmNlb2YgY2hlY2tcbiAqIHdpbGwgbm90IHdvcmsuIEluc3RlYWQgdGVzdCAkJHR5cGVvZiBmaWVsZCBhZ2FpbnN0IFN5bWJvbC5mb3IoJ3JlYWN0LmVsZW1lbnQnKSB0byBjaGVja1xuICogaWYgc29tZXRoaW5nIGlzIGEgUmVhY3QgRWxlbWVudC5cbiAqXG4gKiBAcGFyYW0geyp9IHR5cGVcbiAqIEBwYXJhbSB7Kn0gcHJvcHNcbiAqIEBwYXJhbSB7Kn0ga2V5XG4gKiBAcGFyYW0ge3N0cmluZ3xvYmplY3R9IHJlZlxuICogQHBhcmFtIHsqfSBvd25lclxuICogQHBhcmFtIHsqfSBzZWxmIEEgKnRlbXBvcmFyeSogaGVscGVyIHRvIGRldGVjdCBwbGFjZXMgd2hlcmUgYHRoaXNgIGlzXG4gKiBkaWZmZXJlbnQgZnJvbSB0aGUgYG93bmVyYCB3aGVuIFJlYWN0LmNyZWF0ZUVsZW1lbnQgaXMgY2FsbGVkLCBzbyB0aGF0IHdlXG4gKiBjYW4gd2Fybi4gV2Ugd2FudCB0byBnZXQgcmlkIG9mIG93bmVyIGFuZCByZXBsYWNlIHN0cmluZyBgcmVmYHMgd2l0aCBhcnJvd1xuICogZnVuY3Rpb25zLCBhbmQgYXMgbG9uZyBhcyBgdGhpc2AgYW5kIG93bmVyIGFyZSB0aGUgc2FtZSwgdGhlcmUgd2lsbCBiZSBub1xuICogY2hhbmdlIGluIGJlaGF2aW9yLlxuICogQHBhcmFtIHsqfSBzb3VyY2UgQW4gYW5ub3RhdGlvbiBvYmplY3QgKGFkZGVkIGJ5IGEgdHJhbnNwaWxlciBvciBvdGhlcndpc2UpXG4gKiBpbmRpY2F0aW5nIGZpbGVuYW1lLCBsaW5lIG51bWJlciwgYW5kL29yIG90aGVyIGluZm9ybWF0aW9uLlxuICogQGludGVybmFsXG4gKi9cblxuXG52YXIgUmVhY3RFbGVtZW50ID0gZnVuY3Rpb24gKHR5cGUsIGtleSwgcmVmLCBzZWxmLCBzb3VyY2UsIG93bmVyLCBwcm9wcykge1xuICB2YXIgZWxlbWVudCA9IHtcbiAgICAvLyBUaGlzIHRhZyBhbGxvd3MgdXMgdG8gdW5pcXVlbHkgaWRlbnRpZnkgdGhpcyBhcyBhIFJlYWN0IEVsZW1lbnRcbiAgICAkJHR5cGVvZjogUkVBQ1RfRUxFTUVOVF9UWVBFLFxuICAgIC8vIEJ1aWx0LWluIHByb3BlcnRpZXMgdGhhdCBiZWxvbmcgb24gdGhlIGVsZW1lbnRcbiAgICB0eXBlOiB0eXBlLFxuICAgIGtleToga2V5LFxuICAgIHJlZjogcmVmLFxuICAgIHByb3BzOiBwcm9wcyxcbiAgICAvLyBSZWNvcmQgdGhlIGNvbXBvbmVudCByZXNwb25zaWJsZSBmb3IgY3JlYXRpbmcgdGhpcyBlbGVtZW50LlxuICAgIF9vd25lcjogb3duZXJcbiAgfTtcblxuICB7XG4gICAgLy8gVGhlIHZhbGlkYXRpb24gZmxhZyBpcyBjdXJyZW50bHkgbXV0YXRpdmUuIFdlIHB1dCBpdCBvblxuICAgIC8vIGFuIGV4dGVybmFsIGJhY2tpbmcgc3RvcmUgc28gdGhhdCB3ZSBjYW4gZnJlZXplIHRoZSB3aG9sZSBvYmplY3QuXG4gICAgLy8gVGhpcyBjYW4gYmUgcmVwbGFjZWQgd2l0aCBhIFdlYWtNYXAgb25jZSB0aGV5IGFyZSBpbXBsZW1lbnRlZCBpblxuICAgIC8vIGNvbW1vbmx5IHVzZWQgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnRzLlxuICAgIGVsZW1lbnQuX3N0b3JlID0ge307IC8vIFRvIG1ha2UgY29tcGFyaW5nIFJlYWN0RWxlbWVudHMgZWFzaWVyIGZvciB0ZXN0aW5nIHB1cnBvc2VzLCB3ZSBtYWtlXG4gICAgLy8gdGhlIHZhbGlkYXRpb24gZmxhZyBub24tZW51bWVyYWJsZSAod2hlcmUgcG9zc2libGUsIHdoaWNoIHNob3VsZFxuICAgIC8vIGluY2x1ZGUgZXZlcnkgZW52aXJvbm1lbnQgd2UgcnVuIHRlc3RzIGluKSwgc28gdGhlIHRlc3QgZnJhbWV3b3JrXG4gICAgLy8gaWdub3JlcyBpdC5cblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlbGVtZW50Ll9zdG9yZSwgJ3ZhbGlkYXRlZCcsIHtcbiAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgdmFsdWU6IGZhbHNlXG4gICAgfSk7IC8vIHNlbGYgYW5kIHNvdXJjZSBhcmUgREVWIG9ubHkgcHJvcGVydGllcy5cblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlbGVtZW50LCAnX3NlbGYnLCB7XG4gICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICB2YWx1ZTogc2VsZlxuICAgIH0pOyAvLyBUd28gZWxlbWVudHMgY3JlYXRlZCBpbiB0d28gZGlmZmVyZW50IHBsYWNlcyBzaG91bGQgYmUgY29uc2lkZXJlZFxuICAgIC8vIGVxdWFsIGZvciB0ZXN0aW5nIHB1cnBvc2VzIGFuZCB0aGVyZWZvcmUgd2UgaGlkZSBpdCBmcm9tIGVudW1lcmF0aW9uLlxuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGVsZW1lbnQsICdfc291cmNlJywge1xuICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgICAgdmFsdWU6IHNvdXJjZVxuICAgIH0pO1xuXG4gICAgaWYgKE9iamVjdC5mcmVlemUpIHtcbiAgICAgIE9iamVjdC5mcmVlemUoZWxlbWVudC5wcm9wcyk7XG4gICAgICBPYmplY3QuZnJlZXplKGVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBlbGVtZW50O1xufTtcbi8qKlxuICogaHR0cHM6Ly9naXRodWIuY29tL3JlYWN0anMvcmZjcy9wdWxsLzEwN1xuICogQHBhcmFtIHsqfSB0eXBlXG4gKiBAcGFyYW0ge29iamVjdH0gcHJvcHNcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXlcbiAqL1xuXG5mdW5jdGlvbiBqc3hERVYodHlwZSwgY29uZmlnLCBtYXliZUtleSwgc291cmNlLCBzZWxmKSB7XG4gIHtcbiAgICB2YXIgcHJvcE5hbWU7IC8vIFJlc2VydmVkIG5hbWVzIGFyZSBleHRyYWN0ZWRcblxuICAgIHZhciBwcm9wcyA9IHt9O1xuICAgIHZhciBrZXkgPSBudWxsO1xuICAgIHZhciByZWYgPSBudWxsOyAvLyBDdXJyZW50bHksIGtleSBjYW4gYmUgc3ByZWFkIGluIGFzIGEgcHJvcC4gVGhpcyBjYXVzZXMgYSBwb3RlbnRpYWxcbiAgICAvLyBpc3N1ZSBpZiBrZXkgaXMgYWxzbyBleHBsaWNpdGx5IGRlY2xhcmVkIChpZS4gPGRpdiB7Li4ucHJvcHN9IGtleT1cIkhpXCIgLz5cbiAgICAvLyBvciA8ZGl2IGtleT1cIkhpXCIgey4uLnByb3BzfSAvPiApLiBXZSB3YW50IHRvIGRlcHJlY2F0ZSBrZXkgc3ByZWFkLFxuICAgIC8vIGJ1dCBhcyBhbiBpbnRlcm1lZGlhcnkgc3RlcCwgd2Ugd2lsbCB1c2UganN4REVWIGZvciBldmVyeXRoaW5nIGV4Y2VwdFxuICAgIC8vIDxkaXYgey4uLnByb3BzfSBrZXk9XCJIaVwiIC8+LCBiZWNhdXNlIHdlIGFyZW4ndCBjdXJyZW50bHkgYWJsZSB0byB0ZWxsIGlmXG4gICAgLy8ga2V5IGlzIGV4cGxpY2l0bHkgZGVjbGFyZWQgdG8gYmUgdW5kZWZpbmVkIG9yIG5vdC5cblxuICAgIGlmIChtYXliZUtleSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBrZXkgPSAnJyArIG1heWJlS2V5O1xuICAgIH1cblxuICAgIGlmIChoYXNWYWxpZEtleShjb25maWcpKSB7XG4gICAgICBrZXkgPSAnJyArIGNvbmZpZy5rZXk7XG4gICAgfVxuXG4gICAgaWYgKGhhc1ZhbGlkUmVmKGNvbmZpZykpIHtcbiAgICAgIHJlZiA9IGNvbmZpZy5yZWY7XG4gICAgICB3YXJuSWZTdHJpbmdSZWZDYW5ub3RCZUF1dG9Db252ZXJ0ZWQoY29uZmlnLCBzZWxmKTtcbiAgICB9IC8vIFJlbWFpbmluZyBwcm9wZXJ0aWVzIGFyZSBhZGRlZCB0byBhIG5ldyBwcm9wcyBvYmplY3RcblxuXG4gICAgZm9yIChwcm9wTmFtZSBpbiBjb25maWcpIHtcbiAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbmZpZywgcHJvcE5hbWUpICYmICFSRVNFUlZFRF9QUk9QUy5oYXNPd25Qcm9wZXJ0eShwcm9wTmFtZSkpIHtcbiAgICAgICAgcHJvcHNbcHJvcE5hbWVdID0gY29uZmlnW3Byb3BOYW1lXTtcbiAgICAgIH1cbiAgICB9IC8vIFJlc29sdmUgZGVmYXVsdCBwcm9wc1xuXG5cbiAgICBpZiAodHlwZSAmJiB0eXBlLmRlZmF1bHRQcm9wcykge1xuICAgICAgdmFyIGRlZmF1bHRQcm9wcyA9IHR5cGUuZGVmYXVsdFByb3BzO1xuXG4gICAgICBmb3IgKHByb3BOYW1lIGluIGRlZmF1bHRQcm9wcykge1xuICAgICAgICBpZiAocHJvcHNbcHJvcE5hbWVdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBwcm9wc1twcm9wTmFtZV0gPSBkZWZhdWx0UHJvcHNbcHJvcE5hbWVdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGtleSB8fCByZWYpIHtcbiAgICAgIHZhciBkaXNwbGF5TmFtZSA9IHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nID8gdHlwZS5kaXNwbGF5TmFtZSB8fCB0eXBlLm5hbWUgfHwgJ1Vua25vd24nIDogdHlwZTtcblxuICAgICAgaWYgKGtleSkge1xuICAgICAgICBkZWZpbmVLZXlQcm9wV2FybmluZ0dldHRlcihwcm9wcywgZGlzcGxheU5hbWUpO1xuICAgICAgfVxuXG4gICAgICBpZiAocmVmKSB7XG4gICAgICAgIGRlZmluZVJlZlByb3BXYXJuaW5nR2V0dGVyKHByb3BzLCBkaXNwbGF5TmFtZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIFJlYWN0RWxlbWVudCh0eXBlLCBrZXksIHJlZiwgc2VsZiwgc291cmNlLCBSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50LCBwcm9wcyk7XG4gIH1cbn1cblxudmFyIFJlYWN0Q3VycmVudE93bmVyJDEgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdEN1cnJlbnRPd25lcjtcbnZhciBSZWFjdERlYnVnQ3VycmVudEZyYW1lJDEgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdERlYnVnQ3VycmVudEZyYW1lO1xuXG5mdW5jdGlvbiBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudCQxKGVsZW1lbnQpIHtcbiAge1xuICAgIGlmIChlbGVtZW50KSB7XG4gICAgICB2YXIgb3duZXIgPSBlbGVtZW50Ll9vd25lcjtcbiAgICAgIHZhciBzdGFjayA9IGRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFVihlbGVtZW50LnR5cGUsIGVsZW1lbnQuX3NvdXJjZSwgb3duZXIgPyBvd25lci50eXBlIDogbnVsbCk7XG4gICAgICBSZWFjdERlYnVnQ3VycmVudEZyYW1lJDEuc2V0RXh0cmFTdGFja0ZyYW1lKHN0YWNrKTtcbiAgICB9IGVsc2Uge1xuICAgICAgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSQxLnNldEV4dHJhU3RhY2tGcmFtZShudWxsKTtcbiAgICB9XG4gIH1cbn1cblxudmFyIHByb3BUeXBlc01pc3NwZWxsV2FybmluZ1Nob3duO1xuXG57XG4gIHByb3BUeXBlc01pc3NwZWxsV2FybmluZ1Nob3duID0gZmFsc2U7XG59XG4vKipcbiAqIFZlcmlmaWVzIHRoZSBvYmplY3QgaXMgYSBSZWFjdEVsZW1lbnQuXG4gKiBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL3JlYWN0LWFwaS5odG1sI2lzdmFsaWRlbGVtZW50XG4gKiBAcGFyYW0gez9vYmplY3R9IG9iamVjdFxuICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSBpZiBgb2JqZWN0YCBpcyBhIFJlYWN0RWxlbWVudC5cbiAqIEBmaW5hbFxuICovXG5cbmZ1bmN0aW9uIGlzVmFsaWRFbGVtZW50KG9iamVjdCkge1xuICB7XG4gICAgcmV0dXJuIHR5cGVvZiBvYmplY3QgPT09ICdvYmplY3QnICYmIG9iamVjdCAhPT0gbnVsbCAmJiBvYmplY3QuJCR0eXBlb2YgPT09IFJFQUNUX0VMRU1FTlRfVFlQRTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0oKSB7XG4gIHtcbiAgICBpZiAoUmVhY3RDdXJyZW50T3duZXIkMS5jdXJyZW50KSB7XG4gICAgICB2YXIgbmFtZSA9IGdldENvbXBvbmVudE5hbWUoUmVhY3RDdXJyZW50T3duZXIkMS5jdXJyZW50LnR5cGUpO1xuXG4gICAgICBpZiAobmFtZSkge1xuICAgICAgICByZXR1cm4gJ1xcblxcbkNoZWNrIHRoZSByZW5kZXIgbWV0aG9kIG9mIGAnICsgbmFtZSArICdgLic7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuICcnO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldFNvdXJjZUluZm9FcnJvckFkZGVuZHVtKHNvdXJjZSkge1xuICB7XG4gICAgaWYgKHNvdXJjZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB2YXIgZmlsZU5hbWUgPSBzb3VyY2UuZmlsZU5hbWUucmVwbGFjZSgvXi4qW1xcXFxcXC9dLywgJycpO1xuICAgICAgdmFyIGxpbmVOdW1iZXIgPSBzb3VyY2UubGluZU51bWJlcjtcbiAgICAgIHJldHVybiAnXFxuXFxuQ2hlY2sgeW91ciBjb2RlIGF0ICcgKyBmaWxlTmFtZSArICc6JyArIGxpbmVOdW1iZXIgKyAnLic7XG4gICAgfVxuXG4gICAgcmV0dXJuICcnO1xuICB9XG59XG4vKipcbiAqIFdhcm4gaWYgdGhlcmUncyBubyBrZXkgZXhwbGljaXRseSBzZXQgb24gZHluYW1pYyBhcnJheXMgb2YgY2hpbGRyZW4gb3JcbiAqIG9iamVjdCBrZXlzIGFyZSBub3QgdmFsaWQuIFRoaXMgYWxsb3dzIHVzIHRvIGtlZXAgdHJhY2sgb2YgY2hpbGRyZW4gYmV0d2VlblxuICogdXBkYXRlcy5cbiAqL1xuXG5cbnZhciBvd25lckhhc0tleVVzZVdhcm5pbmcgPSB7fTtcblxuZnVuY3Rpb24gZ2V0Q3VycmVudENvbXBvbmVudEVycm9ySW5mbyhwYXJlbnRUeXBlKSB7XG4gIHtcbiAgICB2YXIgaW5mbyA9IGdldERlY2xhcmF0aW9uRXJyb3JBZGRlbmR1bSgpO1xuXG4gICAgaWYgKCFpbmZvKSB7XG4gICAgICB2YXIgcGFyZW50TmFtZSA9IHR5cGVvZiBwYXJlbnRUeXBlID09PSAnc3RyaW5nJyA/IHBhcmVudFR5cGUgOiBwYXJlbnRUeXBlLmRpc3BsYXlOYW1lIHx8IHBhcmVudFR5cGUubmFtZTtcblxuICAgICAgaWYgKHBhcmVudE5hbWUpIHtcbiAgICAgICAgaW5mbyA9IFwiXFxuXFxuQ2hlY2sgdGhlIHRvcC1sZXZlbCByZW5kZXIgY2FsbCB1c2luZyA8XCIgKyBwYXJlbnROYW1lICsgXCI+LlwiO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBpbmZvO1xuICB9XG59XG4vKipcbiAqIFdhcm4gaWYgdGhlIGVsZW1lbnQgZG9lc24ndCBoYXZlIGFuIGV4cGxpY2l0IGtleSBhc3NpZ25lZCB0byBpdC5cbiAqIFRoaXMgZWxlbWVudCBpcyBpbiBhbiBhcnJheS4gVGhlIGFycmF5IGNvdWxkIGdyb3cgYW5kIHNocmluayBvciBiZVxuICogcmVvcmRlcmVkLiBBbGwgY2hpbGRyZW4gdGhhdCBoYXZlbid0IGFscmVhZHkgYmVlbiB2YWxpZGF0ZWQgYXJlIHJlcXVpcmVkIHRvXG4gKiBoYXZlIGEgXCJrZXlcIiBwcm9wZXJ0eSBhc3NpZ25lZCB0byBpdC4gRXJyb3Igc3RhdHVzZXMgYXJlIGNhY2hlZCBzbyBhIHdhcm5pbmdcbiAqIHdpbGwgb25seSBiZSBzaG93biBvbmNlLlxuICpcbiAqIEBpbnRlcm5hbFxuICogQHBhcmFtIHtSZWFjdEVsZW1lbnR9IGVsZW1lbnQgRWxlbWVudCB0aGF0IHJlcXVpcmVzIGEga2V5LlxuICogQHBhcmFtIHsqfSBwYXJlbnRUeXBlIGVsZW1lbnQncyBwYXJlbnQncyB0eXBlLlxuICovXG5cblxuZnVuY3Rpb24gdmFsaWRhdGVFeHBsaWNpdEtleShlbGVtZW50LCBwYXJlbnRUeXBlKSB7XG4gIHtcbiAgICBpZiAoIWVsZW1lbnQuX3N0b3JlIHx8IGVsZW1lbnQuX3N0b3JlLnZhbGlkYXRlZCB8fCBlbGVtZW50LmtleSAhPSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZWxlbWVudC5fc3RvcmUudmFsaWRhdGVkID0gdHJ1ZTtcbiAgICB2YXIgY3VycmVudENvbXBvbmVudEVycm9ySW5mbyA9IGdldEN1cnJlbnRDb21wb25lbnRFcnJvckluZm8ocGFyZW50VHlwZSk7XG5cbiAgICBpZiAob3duZXJIYXNLZXlVc2VXYXJuaW5nW2N1cnJlbnRDb21wb25lbnRFcnJvckluZm9dKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgb3duZXJIYXNLZXlVc2VXYXJuaW5nW2N1cnJlbnRDb21wb25lbnRFcnJvckluZm9dID0gdHJ1ZTsgLy8gVXN1YWxseSB0aGUgY3VycmVudCBvd25lciBpcyB0aGUgb2ZmZW5kZXIsIGJ1dCBpZiBpdCBhY2NlcHRzIGNoaWxkcmVuIGFzIGFcbiAgICAvLyBwcm9wZXJ0eSwgaXQgbWF5IGJlIHRoZSBjcmVhdG9yIG9mIHRoZSBjaGlsZCB0aGF0J3MgcmVzcG9uc2libGUgZm9yXG4gICAgLy8gYXNzaWduaW5nIGl0IGEga2V5LlxuXG4gICAgdmFyIGNoaWxkT3duZXIgPSAnJztcblxuICAgIGlmIChlbGVtZW50ICYmIGVsZW1lbnQuX293bmVyICYmIGVsZW1lbnQuX293bmVyICE9PSBSZWFjdEN1cnJlbnRPd25lciQxLmN1cnJlbnQpIHtcbiAgICAgIC8vIEdpdmUgdGhlIGNvbXBvbmVudCB0aGF0IG9yaWdpbmFsbHkgY3JlYXRlZCB0aGlzIGNoaWxkLlxuICAgICAgY2hpbGRPd25lciA9IFwiIEl0IHdhcyBwYXNzZWQgYSBjaGlsZCBmcm9tIFwiICsgZ2V0Q29tcG9uZW50TmFtZShlbGVtZW50Ll9vd25lci50eXBlKSArIFwiLlwiO1xuICAgIH1cblxuICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50JDEoZWxlbWVudCk7XG5cbiAgICBlcnJvcignRWFjaCBjaGlsZCBpbiBhIGxpc3Qgc2hvdWxkIGhhdmUgYSB1bmlxdWUgXCJrZXlcIiBwcm9wLicgKyAnJXMlcyBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3dhcm5pbmcta2V5cyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4nLCBjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvLCBjaGlsZE93bmVyKTtcblxuICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50JDEobnVsbCk7XG4gIH1cbn1cbi8qKlxuICogRW5zdXJlIHRoYXQgZXZlcnkgZWxlbWVudCBlaXRoZXIgaXMgcGFzc2VkIGluIGEgc3RhdGljIGxvY2F0aW9uLCBpbiBhblxuICogYXJyYXkgd2l0aCBhbiBleHBsaWNpdCBrZXlzIHByb3BlcnR5IGRlZmluZWQsIG9yIGluIGFuIG9iamVjdCBsaXRlcmFsXG4gKiB3aXRoIHZhbGlkIGtleSBwcm9wZXJ0eS5cbiAqXG4gKiBAaW50ZXJuYWxcbiAqIEBwYXJhbSB7UmVhY3ROb2RlfSBub2RlIFN0YXRpY2FsbHkgcGFzc2VkIGNoaWxkIG9mIGFueSB0eXBlLlxuICogQHBhcmFtIHsqfSBwYXJlbnRUeXBlIG5vZGUncyBwYXJlbnQncyB0eXBlLlxuICovXG5cblxuZnVuY3Rpb24gdmFsaWRhdGVDaGlsZEtleXMobm9kZSwgcGFyZW50VHlwZSkge1xuICB7XG4gICAgaWYgKHR5cGVvZiBub2RlICE9PSAnb2JqZWN0Jykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KG5vZGUpKSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIGNoaWxkID0gbm9kZVtpXTtcblxuICAgICAgICBpZiAoaXNWYWxpZEVsZW1lbnQoY2hpbGQpKSB7XG4gICAgICAgICAgdmFsaWRhdGVFeHBsaWNpdEtleShjaGlsZCwgcGFyZW50VHlwZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGlzVmFsaWRFbGVtZW50KG5vZGUpKSB7XG4gICAgICAvLyBUaGlzIGVsZW1lbnQgd2FzIHBhc3NlZCBpbiBhIHZhbGlkIGxvY2F0aW9uLlxuICAgICAgaWYgKG5vZGUuX3N0b3JlKSB7XG4gICAgICAgIG5vZGUuX3N0b3JlLnZhbGlkYXRlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChub2RlKSB7XG4gICAgICB2YXIgaXRlcmF0b3JGbiA9IGdldEl0ZXJhdG9yRm4obm9kZSk7XG5cbiAgICAgIGlmICh0eXBlb2YgaXRlcmF0b3JGbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAvLyBFbnRyeSBpdGVyYXRvcnMgdXNlZCB0byBwcm92aWRlIGltcGxpY2l0IGtleXMsXG4gICAgICAgIC8vIGJ1dCBub3cgd2UgcHJpbnQgYSBzZXBhcmF0ZSB3YXJuaW5nIGZvciB0aGVtIGxhdGVyLlxuICAgICAgICBpZiAoaXRlcmF0b3JGbiAhPT0gbm9kZS5lbnRyaWVzKSB7XG4gICAgICAgICAgdmFyIGl0ZXJhdG9yID0gaXRlcmF0b3JGbi5jYWxsKG5vZGUpO1xuICAgICAgICAgIHZhciBzdGVwO1xuXG4gICAgICAgICAgd2hpbGUgKCEoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSkuZG9uZSkge1xuICAgICAgICAgICAgaWYgKGlzVmFsaWRFbGVtZW50KHN0ZXAudmFsdWUpKSB7XG4gICAgICAgICAgICAgIHZhbGlkYXRlRXhwbGljaXRLZXkoc3RlcC52YWx1ZSwgcGFyZW50VHlwZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4vKipcbiAqIEdpdmVuIGFuIGVsZW1lbnQsIHZhbGlkYXRlIHRoYXQgaXRzIHByb3BzIGZvbGxvdyB0aGUgcHJvcFR5cGVzIGRlZmluaXRpb24sXG4gKiBwcm92aWRlZCBieSB0aGUgdHlwZS5cbiAqXG4gKiBAcGFyYW0ge1JlYWN0RWxlbWVudH0gZWxlbWVudFxuICovXG5cblxuZnVuY3Rpb24gdmFsaWRhdGVQcm9wVHlwZXMoZWxlbWVudCkge1xuICB7XG4gICAgdmFyIHR5cGUgPSBlbGVtZW50LnR5cGU7XG5cbiAgICBpZiAodHlwZSA9PT0gbnVsbCB8fCB0eXBlID09PSB1bmRlZmluZWQgfHwgdHlwZW9mIHR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIHByb3BUeXBlcztcblxuICAgIGlmICh0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcHJvcFR5cGVzID0gdHlwZS5wcm9wVHlwZXM7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcgJiYgKHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgfHwgLy8gTm90ZTogTWVtbyBvbmx5IGNoZWNrcyBvdXRlciBwcm9wcyBoZXJlLlxuICAgIC8vIElubmVyIHByb3BzIGFyZSBjaGVja2VkIGluIHRoZSByZWNvbmNpbGVyLlxuICAgIHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX01FTU9fVFlQRSkpIHtcbiAgICAgIHByb3BUeXBlcyA9IHR5cGUucHJvcFR5cGVzO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHByb3BUeXBlcykge1xuICAgICAgLy8gSW50ZW50aW9uYWxseSBpbnNpZGUgdG8gYXZvaWQgdHJpZ2dlcmluZyBsYXp5IGluaXRpYWxpemVyczpcbiAgICAgIHZhciBuYW1lID0gZ2V0Q29tcG9uZW50TmFtZSh0eXBlKTtcbiAgICAgIGNoZWNrUHJvcFR5cGVzKHByb3BUeXBlcywgZWxlbWVudC5wcm9wcywgJ3Byb3AnLCBuYW1lLCBlbGVtZW50KTtcbiAgICB9IGVsc2UgaWYgKHR5cGUuUHJvcFR5cGVzICE9PSB1bmRlZmluZWQgJiYgIXByb3BUeXBlc01pc3NwZWxsV2FybmluZ1Nob3duKSB7XG4gICAgICBwcm9wVHlwZXNNaXNzcGVsbFdhcm5pbmdTaG93biA9IHRydWU7IC8vIEludGVudGlvbmFsbHkgaW5zaWRlIHRvIGF2b2lkIHRyaWdnZXJpbmcgbGF6eSBpbml0aWFsaXplcnM6XG5cbiAgICAgIHZhciBfbmFtZSA9IGdldENvbXBvbmVudE5hbWUodHlwZSk7XG5cbiAgICAgIGVycm9yKCdDb21wb25lbnQgJXMgZGVjbGFyZWQgYFByb3BUeXBlc2AgaW5zdGVhZCBvZiBgcHJvcFR5cGVzYC4gRGlkIHlvdSBtaXNzcGVsbCB0aGUgcHJvcGVydHkgYXNzaWdubWVudD8nLCBfbmFtZSB8fCAnVW5rbm93bicpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdHlwZS5nZXREZWZhdWx0UHJvcHMgPT09ICdmdW5jdGlvbicgJiYgIXR5cGUuZ2V0RGVmYXVsdFByb3BzLmlzUmVhY3RDbGFzc0FwcHJvdmVkKSB7XG4gICAgICBlcnJvcignZ2V0RGVmYXVsdFByb3BzIGlzIG9ubHkgdXNlZCBvbiBjbGFzc2ljIFJlYWN0LmNyZWF0ZUNsYXNzICcgKyAnZGVmaW5pdGlvbnMuIFVzZSBhIHN0YXRpYyBwcm9wZXJ0eSBuYW1lZCBgZGVmYXVsdFByb3BzYCBpbnN0ZWFkLicpO1xuICAgIH1cbiAgfVxufVxuLyoqXG4gKiBHaXZlbiBhIGZyYWdtZW50LCB2YWxpZGF0ZSB0aGF0IGl0IGNhbiBvbmx5IGJlIHByb3ZpZGVkIHdpdGggZnJhZ21lbnQgcHJvcHNcbiAqIEBwYXJhbSB7UmVhY3RFbGVtZW50fSBmcmFnbWVudFxuICovXG5cblxuZnVuY3Rpb24gdmFsaWRhdGVGcmFnbWVudFByb3BzKGZyYWdtZW50KSB7XG4gIHtcbiAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKGZyYWdtZW50LnByb3BzKTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGtleSA9IGtleXNbaV07XG5cbiAgICAgIGlmIChrZXkgIT09ICdjaGlsZHJlbicgJiYga2V5ICE9PSAna2V5Jykge1xuICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudCQxKGZyYWdtZW50KTtcblxuICAgICAgICBlcnJvcignSW52YWxpZCBwcm9wIGAlc2Agc3VwcGxpZWQgdG8gYFJlYWN0LkZyYWdtZW50YC4gJyArICdSZWFjdC5GcmFnbWVudCBjYW4gb25seSBoYXZlIGBrZXlgIGFuZCBgY2hpbGRyZW5gIHByb3BzLicsIGtleSk7XG5cbiAgICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQkMShudWxsKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGZyYWdtZW50LnJlZiAhPT0gbnVsbCkge1xuICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQkMShmcmFnbWVudCk7XG5cbiAgICAgIGVycm9yKCdJbnZhbGlkIGF0dHJpYnV0ZSBgcmVmYCBzdXBwbGllZCB0byBgUmVhY3QuRnJhZ21lbnRgLicpO1xuXG4gICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudCQxKG51bGwpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBqc3hXaXRoVmFsaWRhdGlvbih0eXBlLCBwcm9wcywga2V5LCBpc1N0YXRpY0NoaWxkcmVuLCBzb3VyY2UsIHNlbGYpIHtcbiAge1xuICAgIHZhciB2YWxpZFR5cGUgPSBpc1ZhbGlkRWxlbWVudFR5cGUodHlwZSk7IC8vIFdlIHdhcm4gaW4gdGhpcyBjYXNlIGJ1dCBkb24ndCB0aHJvdy4gV2UgZXhwZWN0IHRoZSBlbGVtZW50IGNyZWF0aW9uIHRvXG4gICAgLy8gc3VjY2VlZCBhbmQgdGhlcmUgd2lsbCBsaWtlbHkgYmUgZXJyb3JzIGluIHJlbmRlci5cblxuICAgIGlmICghdmFsaWRUeXBlKSB7XG4gICAgICB2YXIgaW5mbyA9ICcnO1xuXG4gICAgICBpZiAodHlwZSA9PT0gdW5kZWZpbmVkIHx8IHR5cGVvZiB0eXBlID09PSAnb2JqZWN0JyAmJiB0eXBlICE9PSBudWxsICYmIE9iamVjdC5rZXlzKHR5cGUpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBpbmZvICs9ICcgWW91IGxpa2VseSBmb3Jnb3QgdG8gZXhwb3J0IHlvdXIgY29tcG9uZW50IGZyb20gdGhlIGZpbGUgJyArIFwiaXQncyBkZWZpbmVkIGluLCBvciB5b3UgbWlnaHQgaGF2ZSBtaXhlZCB1cCBkZWZhdWx0IGFuZCBuYW1lZCBpbXBvcnRzLlwiO1xuICAgICAgfVxuXG4gICAgICB2YXIgc291cmNlSW5mbyA9IGdldFNvdXJjZUluZm9FcnJvckFkZGVuZHVtKHNvdXJjZSk7XG5cbiAgICAgIGlmIChzb3VyY2VJbmZvKSB7XG4gICAgICAgIGluZm8gKz0gc291cmNlSW5mbztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGluZm8gKz0gZ2V0RGVjbGFyYXRpb25FcnJvckFkZGVuZHVtKCk7XG4gICAgICB9XG5cbiAgICAgIHZhciB0eXBlU3RyaW5nO1xuXG4gICAgICBpZiAodHlwZSA9PT0gbnVsbCkge1xuICAgICAgICB0eXBlU3RyaW5nID0gJ251bGwnO1xuICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHR5cGUpKSB7XG4gICAgICAgIHR5cGVTdHJpbmcgPSAnYXJyYXknO1xuICAgICAgfSBlbHNlIGlmICh0eXBlICE9PSB1bmRlZmluZWQgJiYgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfRUxFTUVOVF9UWVBFKSB7XG4gICAgICAgIHR5cGVTdHJpbmcgPSBcIjxcIiArIChnZXRDb21wb25lbnROYW1lKHR5cGUudHlwZSkgfHwgJ1Vua25vd24nKSArIFwiIC8+XCI7XG4gICAgICAgIGluZm8gPSAnIERpZCB5b3UgYWNjaWRlbnRhbGx5IGV4cG9ydCBhIEpTWCBsaXRlcmFsIGluc3RlYWQgb2YgYSBjb21wb25lbnQ/JztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHR5cGVTdHJpbmcgPSB0eXBlb2YgdHlwZTtcbiAgICAgIH1cblxuICAgICAgZXJyb3IoJ1JlYWN0LmpzeDogdHlwZSBpcyBpbnZhbGlkIC0tIGV4cGVjdGVkIGEgc3RyaW5nIChmb3IgJyArICdidWlsdC1pbiBjb21wb25lbnRzKSBvciBhIGNsYXNzL2Z1bmN0aW9uIChmb3IgY29tcG9zaXRlICcgKyAnY29tcG9uZW50cykgYnV0IGdvdDogJXMuJXMnLCB0eXBlU3RyaW5nLCBpbmZvKTtcbiAgICB9XG5cbiAgICB2YXIgZWxlbWVudCA9IGpzeERFVih0eXBlLCBwcm9wcywga2V5LCBzb3VyY2UsIHNlbGYpOyAvLyBUaGUgcmVzdWx0IGNhbiBiZSBudWxsaXNoIGlmIGEgbW9jayBvciBhIGN1c3RvbSBmdW5jdGlvbiBpcyB1c2VkLlxuICAgIC8vIFRPRE86IERyb3AgdGhpcyB3aGVuIHRoZXNlIGFyZSBubyBsb25nZXIgYWxsb3dlZCBhcyB0aGUgdHlwZSBhcmd1bWVudC5cblxuICAgIGlmIChlbGVtZW50ID09IG51bGwpIHtcbiAgICAgIHJldHVybiBlbGVtZW50O1xuICAgIH0gLy8gU2tpcCBrZXkgd2FybmluZyBpZiB0aGUgdHlwZSBpc24ndCB2YWxpZCBzaW5jZSBvdXIga2V5IHZhbGlkYXRpb24gbG9naWNcbiAgICAvLyBkb2Vzbid0IGV4cGVjdCBhIG5vbi1zdHJpbmcvZnVuY3Rpb24gdHlwZSBhbmQgY2FuIHRocm93IGNvbmZ1c2luZyBlcnJvcnMuXG4gICAgLy8gV2UgZG9uJ3Qgd2FudCBleGNlcHRpb24gYmVoYXZpb3IgdG8gZGlmZmVyIGJldHdlZW4gZGV2IGFuZCBwcm9kLlxuICAgIC8vIChSZW5kZXJpbmcgd2lsbCB0aHJvdyB3aXRoIGEgaGVscGZ1bCBtZXNzYWdlIGFuZCBhcyBzb29uIGFzIHRoZSB0eXBlIGlzXG4gICAgLy8gZml4ZWQsIHRoZSBrZXkgd2FybmluZ3Mgd2lsbCBhcHBlYXIuKVxuXG5cbiAgICBpZiAodmFsaWRUeXBlKSB7XG4gICAgICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbjtcblxuICAgICAgaWYgKGNoaWxkcmVuICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKGlzU3RhdGljQ2hpbGRyZW4pIHtcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShjaGlsZHJlbikpIHtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgdmFsaWRhdGVDaGlsZEtleXMoY2hpbGRyZW5baV0sIHR5cGUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoT2JqZWN0LmZyZWV6ZSkge1xuICAgICAgICAgICAgICBPYmplY3QuZnJlZXplKGNoaWxkcmVuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXJyb3IoJ1JlYWN0LmpzeDogU3RhdGljIGNoaWxkcmVuIHNob3VsZCBhbHdheXMgYmUgYW4gYXJyYXkuICcgKyAnWW91IGFyZSBsaWtlbHkgZXhwbGljaXRseSBjYWxsaW5nIFJlYWN0LmpzeHMgb3IgUmVhY3QuanN4REVWLiAnICsgJ1VzZSB0aGUgQmFiZWwgdHJhbnNmb3JtIGluc3RlYWQuJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhbGlkYXRlQ2hpbGRLZXlzKGNoaWxkcmVuLCB0eXBlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0eXBlID09PSBleHBvcnRzLkZyYWdtZW50KSB7XG4gICAgICB2YWxpZGF0ZUZyYWdtZW50UHJvcHMoZWxlbWVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbGlkYXRlUHJvcFR5cGVzKGVsZW1lbnQpO1xuICAgIH1cblxuICAgIHJldHVybiBlbGVtZW50O1xuICB9XG59IC8vIFRoZXNlIHR3byBmdW5jdGlvbnMgZXhpc3QgdG8gc3RpbGwgZ2V0IGNoaWxkIHdhcm5pbmdzIGluIGRldlxuXG52YXIganN4REVWJDEgPSAganN4V2l0aFZhbGlkYXRpb24gO1xuXG5leHBvcnRzLmpzeERFViA9IGpzeERFViQxO1xuICB9KSgpO1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/react/cjs/react-jsx-dev-runtime.development.js\n"); + +/***/ }), + +/***/ "./node_modules/react/jsx-dev-runtime.js": +/*!***********************************************!*\ + !*** ./node_modules/react/jsx-dev-runtime.js ***! + \***********************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +eval("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-jsx-dev-runtime.development.js */ \"./node_modules/react/cjs/react-jsx-dev-runtime.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QvanN4LWRldi1ydW50aW1lLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLElBQUksS0FBcUMsRUFBRSxFQUUxQyxDQUFDO0FBQ0YsRUFBRSx1SkFBc0U7QUFDeEUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL3JlYWN0L2pzeC1kZXYtcnVudGltZS5qcz81Nzc3Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1qc3gtZGV2LXJ1bnRpbWUucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtanN4LWRldi1ydW50aW1lLmRldmVsb3BtZW50LmpzJyk7XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react/jsx-dev-runtime.js\n"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/defineProperty.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack___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\": function() { return /* binding */ _defineProperty; }\n/* harmony export */ });\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZGVmaW5lUHJvcGVydHkuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2RlZmluZVByb3BlcnR5LmpzPzg5MTAiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KG9iaiwga2V5LCB2YWx1ZSkge1xuICBpZiAoa2V5IGluIG9iaikge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwge1xuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgb2JqW2tleV0gPSB2YWx1ZTtcbiAgfVxuXG4gIHJldHVybiBvYmo7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js\n"); + +/***/ }), + +/***/ "./src/data/app.json": +/*!***************************!*\ + !*** ./src/data/app.json ***! + \***************************/ +/***/ (function(module) { + +"use strict"; +module.exports = JSON.parse('{"lightLogo":"/img/logo.png","darkLogo":"/img/logo.png","showLoading":true}'); + +/***/ }) + +}); \ No newline at end of file diff --git a/.next/static/webpack/pages/_error.3ccbe004deb5758f.hot-update.js b/.next/static/webpack/pages/_error.3ccbe004deb5758f.hot-update.js new file mode 100644 index 0000000..f7dcf21 --- /dev/null +++ b/.next/static/webpack/pages/_error.3ccbe004deb5758f.hot-update.js @@ -0,0 +1,52 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("pages/_error",{ + +/***/ "./node_modules/next/dist/shared/lib/amp-context.js": +/*!**********************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/amp-context.js ***! + \**********************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.AmpStateContext = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar AmpStateContext = _react[\"default\"].createContext({});\n\nexports.AmpStateContext = AmpStateContext;\n\nif (true) {\n AmpStateContext.displayName = 'AmpStateContext';\n}\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvYW1wLWNvbnRleHQuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCx1QkFBQSxHQUEwQixLQUFLLENBQS9COztBQUNBLElBQUlHLE1BQU0sR0FBR0Msc0JBQXNCLENBQUNDLG1CQUFPLENBQUMsNENBQUQsQ0FBUixDQUFuQzs7QUFDQSxTQUFTRCxzQkFBVCxDQUFnQ0UsR0FBaEMsRUFBcUM7QUFDakMsU0FBT0EsR0FBRyxJQUFJQSxHQUFHLENBQUNDLFVBQVgsR0FBd0JELEdBQXhCLEdBQThCO0FBQ2pDLGVBQVNBO0FBRHdCLEdBQXJDO0FBR0g7O0FBQ0QsSUFBTUosZUFBZSxHQUFHQyxNQUFNLFdBQU4sQ0FBZUssYUFBZixDQUE2QixFQUE3QixDQUF4Qjs7QUFFQVIsdUJBQUEsR0FBMEJFLGVBQTFCOztBQUNBLElBQUksTUFBdUM7QUFDdkNBLEVBQUFBLGVBQWUsQ0FBQ08sV0FBaEIsR0FBOEIsaUJBQTlCO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zaGFyZWQvbGliL2FtcC1jb250ZXh0LmpzP2U1YTciXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLkFtcFN0YXRlQ29udGV4dCA9IHZvaWQgMDtcbnZhciBfcmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5jb25zdCBBbXBTdGF0ZUNvbnRleHQgPSBfcmVhY3QuZGVmYXVsdC5jcmVhdGVDb250ZXh0KHtcbn0pO1xuZXhwb3J0cy5BbXBTdGF0ZUNvbnRleHQgPSBBbXBTdGF0ZUNvbnRleHQ7XG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIEFtcFN0YXRlQ29udGV4dC5kaXNwbGF5TmFtZSA9ICdBbXBTdGF0ZUNvbnRleHQnO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hbXAtY29udGV4dC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJBbXBTdGF0ZUNvbnRleHQiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIm9iaiIsIl9fZXNNb2R1bGUiLCJjcmVhdGVDb250ZXh0IiwiZGlzcGxheU5hbWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/amp-context.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/amp.js": +/*!**************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/amp.js ***! + \**************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _s = $RefreshSig$();\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.isInAmpMode = isInAmpMode;\nexports.useAmp = useAmp;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _ampContext = __webpack_require__(/*! ./amp-context */ \"./node_modules/next/dist/shared/lib/amp-context.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction isInAmpMode() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$ampFirst = _ref.ampFirst,\n ampFirst = _ref$ampFirst === void 0 ? false : _ref$ampFirst,\n _ref$hybrid = _ref.hybrid,\n hybrid = _ref$hybrid === void 0 ? false : _ref$hybrid,\n _ref$hasQuery = _ref.hasQuery,\n hasQuery = _ref$hasQuery === void 0 ? false : _ref$hasQuery;\n\n return ampFirst || hybrid && hasQuery;\n}\n\nfunction useAmp() {\n _s();\n\n // Don't assign the context value to a variable to save bytes\n return isInAmpMode(_react[\"default\"].useContext(_ampContext.AmpStateContext));\n}\n\n_s(useAmp, \"gDsCjeeItUuvgOWf1v4qoK9RF6k=\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvYW1wLmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBYTs7OztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxtQkFBQSxHQUFzQkUsV0FBdEI7QUFDQUYsY0FBQSxHQUFpQkcsTUFBakI7O0FBQ0EsSUFBSUMsTUFBTSxHQUFHQyxzQkFBc0IsQ0FBQ0MsbUJBQU8sQ0FBQyw0Q0FBRCxDQUFSLENBQW5DOztBQUNBLElBQUlDLFdBQVcsR0FBR0QsbUJBQU8sQ0FBQyx5RUFBRCxDQUF6Qjs7QUFDQSxTQUFTRCxzQkFBVCxDQUFnQ0csR0FBaEMsRUFBcUM7QUFDakMsU0FBT0EsR0FBRyxJQUFJQSxHQUFHLENBQUNDLFVBQVgsR0FBd0JELEdBQXhCLEdBQThCO0FBQ2pDLGVBQVNBO0FBRHdCLEdBQXJDO0FBR0g7O0FBQ0QsU0FBU04sV0FBVCxHQUNHO0FBQUEsaUZBRDZFLEVBQzdFO0FBQUEsMkJBRG9CUSxRQUNwQjtBQUFBLE1BRG9CQSxRQUNwQiw4QkFEOEIsS0FDOUI7QUFBQSx5QkFEc0NDLE1BQ3RDO0FBQUEsTUFEc0NBLE1BQ3RDLDRCQUQ4QyxLQUM5QztBQUFBLDJCQURzREMsUUFDdEQ7QUFBQSxNQURzREEsUUFDdEQsOEJBRGdFLEtBQ2hFOztBQUNDLFNBQU9GLFFBQVEsSUFBSUMsTUFBTSxJQUFJQyxRQUE3QjtBQUNIOztBQUNELFNBQVNULE1BQVQsR0FBa0I7QUFBQTs7QUFDZDtBQUNBLFNBQU9ELFdBQVcsQ0FBQ0UsTUFBTSxXQUFOLENBQWVTLFVBQWYsQ0FBMEJOLFdBQVcsQ0FBQ08sZUFBdEMsQ0FBRCxDQUFsQjtBQUNIOztHQUhRWCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvYW1wLmpzPzVlNGYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmlzSW5BbXBNb2RlID0gaXNJbkFtcE1vZGU7XG5leHBvcnRzLnVzZUFtcCA9IHVzZUFtcDtcbnZhciBfcmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG52YXIgX2FtcENvbnRleHQgPSByZXF1aXJlKFwiLi9hbXAtY29udGV4dFwiKTtcbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGlzSW5BbXBNb2RlKHsgYW1wRmlyc3QgPWZhbHNlICwgaHlicmlkID1mYWxzZSAsIGhhc1F1ZXJ5ID1mYWxzZSAsICB9ID0ge1xufSkge1xuICAgIHJldHVybiBhbXBGaXJzdCB8fCBoeWJyaWQgJiYgaGFzUXVlcnk7XG59XG5mdW5jdGlvbiB1c2VBbXAoKSB7XG4gICAgLy8gRG9uJ3QgYXNzaWduIHRoZSBjb250ZXh0IHZhbHVlIHRvIGEgdmFyaWFibGUgdG8gc2F2ZSBieXRlc1xuICAgIHJldHVybiBpc0luQW1wTW9kZShfcmVhY3QuZGVmYXVsdC51c2VDb250ZXh0KF9hbXBDb250ZXh0LkFtcFN0YXRlQ29udGV4dCkpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hbXAuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiaXNJbkFtcE1vZGUiLCJ1c2VBbXAiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9hbXBDb250ZXh0Iiwib2JqIiwiX19lc01vZHVsZSIsImFtcEZpcnN0IiwiaHlicmlkIiwiaGFzUXVlcnkiLCJ1c2VDb250ZXh0IiwiQW1wU3RhdGVDb250ZXh0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/amp.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/head.js": +/*!***************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/head.js ***! + \***************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _defineProperty = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/defineProperty.js\");\n\nvar _s = $RefreshSig$();\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.defaultHead = defaultHead;\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _sideEffect = _interopRequireDefault(__webpack_require__(/*! ./side-effect */ \"./node_modules/next/dist/shared/lib/side-effect.js\"));\n\nvar _ampContext = __webpack_require__(/*! ./amp-context */ \"./node_modules/next/dist/shared/lib/amp-context.js\");\n\nvar _headManagerContext = __webpack_require__(/*! ./head-manager-context */ \"./node_modules/next/dist/shared/lib/head-manager-context.js\");\n\nvar _amp = __webpack_require__(/*! ./amp */ \"./node_modules/next/dist/shared/lib/amp.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n return newObj;\n }\n}\n\nfunction defaultHead() {\n var inAmpMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var head = [/*#__PURE__*/_react[\"default\"].createElement(\"meta\", {\n charSet: \"utf-8\"\n })];\n\n if (!inAmpMode) {\n head.push( /*#__PURE__*/_react[\"default\"].createElement(\"meta\", {\n name: \"viewport\",\n content: \"width=device-width\"\n }));\n }\n\n return head;\n}\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 } // Adds support for React.Fragment\n\n\n if (child.type === _react[\"default\"].Fragment) {\n return list.concat(_react[\"default\"].Children.toArray(child.props.children).reduce(function (fragmentList, fragmentChild) {\n if (typeof fragmentChild === 'string' || typeof fragmentChild === 'number') {\n return fragmentList;\n }\n\n return fragmentList.concat(fragmentChild);\n }, []));\n }\n\n return list.concat(child);\n}\n\nvar METATYPES = ['name', 'httpEquiv', 'charSet', 'itemProp'];\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*/\n\nfunction unique() {\n var keys = new Set();\n var tags = new Set();\n var metaTypes = new Set();\n var metaCategories = {};\n return function (h) {\n var isUnique = true;\n var hasKey = false;\n\n if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {\n hasKey = true;\n var key = h.key.slice(h.key.indexOf('$') + 1);\n\n if (keys.has(key)) {\n isUnique = false;\n } else {\n keys.add(key);\n }\n } // eslint-disable-next-line default-case\n\n\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\n break;\n\n case 'meta':\n for (var i = 0, len = METATYPES.length; i < len; i++) {\n var metatype = METATYPES[i];\n if (!h.props.hasOwnProperty(metatype)) continue;\n\n if (metatype === 'charSet') {\n if (metaTypes.has(metatype)) {\n isUnique = false;\n } else {\n metaTypes.add(metatype);\n }\n } else {\n var category = h.props[metatype];\n var categories = metaCategories[metatype] || new Set();\n\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\n break;\n }\n\n return isUnique;\n };\n}\n/**\n *\n * @param headElements List of multiple <Head> instances\n */\n\n\nfunction reduceComponents(headElements, props) {\n return headElements.reduce(function (list, headElement) {\n var headElementChildren = _react[\"default\"].Children.toArray(headElement.props.children);\n\n return list.concat(headElementChildren);\n }, []).reduce(onlyReactElement, []).reverse().concat(defaultHead(props.inAmpMode)).filter(unique()).reverse().map(function (c, i) {\n var key = c.key || i;\n\n if (false) { var newProps; }\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(c, {\n key: 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 */\n\n\nfunction Head(_ref) {\n _s();\n\n var children = _ref.children;\n var ampState = (0, _react).useContext(_ampContext.AmpStateContext);\n var headManager = (0, _react).useContext(_headManagerContext.HeadManagerContext);\n return /*#__PURE__*/_react[\"default\"].createElement(_sideEffect[\"default\"], {\n reduceComponentsToState: reduceComponents,\n headManager: headManager,\n inAmpMode: (0, _amp).isInAmpMode(ampState)\n }, children);\n}\n\n_s(Head, \"sCUayZmr5V93tUjujy03KdMBCec=\");\n\n_c = Head;\nvar _default = Head;\nexports[\"default\"] = _default;\n\nvar _c;\n\n$RefreshReg$(_c, \"Head\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaGVhZC5qcy5qcyIsIm1hcHBpbmdzIjoiO0FBQWE7Ozs7Ozs7Ozs7QUFDYkEsOENBQTZDO0FBQ3pDRyxFQUFBQSxLQUFLLEVBQUU7QUFEa0MsQ0FBN0M7QUFHQUQsbUJBQUEsR0FBc0JFLFdBQXRCO0FBQ0FGLGtCQUFBLEdBQWtCLEtBQUssQ0FBdkI7O0FBQ0EsSUFBSUcsTUFBTSxHQUFHQyx1QkFBdUIsQ0FBQ0MsbUJBQU8sQ0FBQyw0Q0FBRCxDQUFSLENBQXBDOztBQUNBLElBQUlDLFdBQVcsR0FBR0Msc0JBQXNCLENBQUNGLG1CQUFPLENBQUMseUVBQUQsQ0FBUixDQUF4Qzs7QUFDQSxJQUFJRyxXQUFXLEdBQUdILG1CQUFPLENBQUMseUVBQUQsQ0FBekI7O0FBQ0EsSUFBSUksbUJBQW1CLEdBQUdKLG1CQUFPLENBQUMsMkZBQUQsQ0FBakM7O0FBQ0EsSUFBSUssSUFBSSxHQUFHTCxtQkFBTyxDQUFDLHlEQUFELENBQWxCOztBQUNBLFNBQVNFLHNCQUFULENBQWdDSSxHQUFoQyxFQUFxQztBQUNqQyxTQUFPQSxHQUFHLElBQUlBLEdBQUcsQ0FBQ0MsVUFBWCxHQUF3QkQsR0FBeEIsR0FBOEI7QUFDakMsZUFBU0E7QUFEd0IsR0FBckM7QUFHSDs7QUFDRCxTQUFTUCx1QkFBVCxDQUFpQ08sR0FBakMsRUFBc0M7QUFDbEMsTUFBSUEsR0FBRyxJQUFJQSxHQUFHLENBQUNDLFVBQWYsRUFBMkI7QUFDdkIsV0FBT0QsR0FBUDtBQUNILEdBRkQsTUFFTztBQUNILFFBQUlFLE1BQU0sR0FBRyxFQUFiOztBQUVBLFFBQUlGLEdBQUcsSUFBSSxJQUFYLEVBQWlCO0FBQ2IsV0FBSSxJQUFJRyxHQUFSLElBQWVILEdBQWYsRUFBbUI7QUFDZixZQUFJYixNQUFNLENBQUNpQixTQUFQLENBQWlCQyxjQUFqQixDQUFnQ0MsSUFBaEMsQ0FBcUNOLEdBQXJDLEVBQTBDRyxHQUExQyxDQUFKLEVBQW9EO0FBQ2hELGNBQUlJLElBQUksR0FBR3BCLE1BQU0sQ0FBQ0MsY0FBUCxJQUF5QkQsTUFBTSxDQUFDcUIsd0JBQWhDLEdBQTJEckIsTUFBTSxDQUFDcUIsd0JBQVAsQ0FBZ0NSLEdBQWhDLEVBQXFDRyxHQUFyQyxDQUEzRCxHQUF1RyxFQUFsSDs7QUFFQSxjQUFJSSxJQUFJLENBQUNFLEdBQUwsSUFBWUYsSUFBSSxDQUFDRyxHQUFyQixFQUEwQjtBQUN0QnZCLFlBQUFBLE1BQU0sQ0FBQ0MsY0FBUCxDQUFzQmMsTUFBdEIsRUFBOEJDLEdBQTlCLEVBQW1DSSxJQUFuQztBQUNILFdBRkQsTUFFTztBQUNITCxZQUFBQSxNQUFNLENBQUNDLEdBQUQsQ0FBTixHQUFjSCxHQUFHLENBQUNHLEdBQUQsQ0FBakI7QUFDSDtBQUNKO0FBQ0o7QUFDSjs7QUFDREQsSUFBQUEsTUFBTSxXQUFOLEdBQWlCRixHQUFqQjtBQUNBLFdBQU9FLE1BQVA7QUFDSDtBQUNKOztBQUNELFNBQVNYLFdBQVQsR0FBd0M7QUFBQSxNQUFuQm9CLFNBQW1CLHVFQUFQLEtBQU87QUFDcEMsTUFBTUMsSUFBSSxHQUFHLENBQ1QsYUFBY3BCLE1BQU0sV0FBTixDQUFlcUIsYUFBZixDQUE2QixNQUE3QixFQUFxQztBQUMvQ0MsSUFBQUEsT0FBTyxFQUFFO0FBRHNDLEdBQXJDLENBREwsQ0FBYjs7QUFLQSxNQUFJLENBQUNILFNBQUwsRUFBZ0I7QUFDWkMsSUFBQUEsSUFBSSxDQUFDRyxJQUFMLEVBQVUsYUFBY3ZCLE1BQU0sV0FBTixDQUFlcUIsYUFBZixDQUE2QixNQUE3QixFQUFxQztBQUN6REcsTUFBQUEsSUFBSSxFQUFFLFVBRG1EO0FBRXpEQyxNQUFBQSxPQUFPLEVBQUU7QUFGZ0QsS0FBckMsQ0FBeEI7QUFJSDs7QUFDRCxTQUFPTCxJQUFQO0FBQ0g7O0FBQ0QsU0FBU00sZ0JBQVQsQ0FBMEJDLElBQTFCLEVBQWdDQyxLQUFoQyxFQUF1QztBQUNuQztBQUNBLE1BQUksT0FBT0EsS0FBUCxLQUFpQixRQUFqQixJQUE2QixPQUFPQSxLQUFQLEtBQWlCLFFBQWxELEVBQTREO0FBQ3hELFdBQU9ELElBQVA7QUFDSCxHQUprQyxDQUtuQzs7O0FBQ0EsTUFBSUMsS0FBSyxDQUFDQyxJQUFOLEtBQWU3QixNQUFNLFdBQU4sQ0FBZThCLFFBQWxDLEVBQTRDO0FBQ3hDLFdBQU9ILElBQUksQ0FBQ0ksTUFBTCxDQUFZL0IsTUFBTSxXQUFOLENBQWVnQyxRQUFmLENBQXdCQyxPQUF4QixDQUFnQ0wsS0FBSyxDQUFDTSxLQUFOLENBQVlDLFFBQTVDLEVBQXNEQyxNQUF0RCxDQUE2RCxVQUFDQyxZQUFELEVBQWVDLGFBQWYsRUFBK0I7QUFDM0csVUFBSSxPQUFPQSxhQUFQLEtBQXlCLFFBQXpCLElBQXFDLE9BQU9BLGFBQVAsS0FBeUIsUUFBbEUsRUFBNEU7QUFDeEUsZUFBT0QsWUFBUDtBQUNIOztBQUNELGFBQU9BLFlBQVksQ0FBQ04sTUFBYixDQUFvQk8sYUFBcEIsQ0FBUDtBQUNILEtBTGtCLEVBS2hCLEVBTGdCLENBQVosQ0FBUDtBQU1IOztBQUNELFNBQU9YLElBQUksQ0FBQ0ksTUFBTCxDQUFZSCxLQUFaLENBQVA7QUFDSDs7QUFDRCxJQUFNVyxTQUFTLEdBQUcsQ0FDZCxNQURjLEVBRWQsV0FGYyxFQUdkLFNBSGMsRUFJZCxVQUpjLENBQWxCO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFBRyxTQUFTQyxNQUFULEdBQWtCO0FBQ2pCLE1BQU1DLElBQUksR0FBRyxJQUFJQyxHQUFKLEVBQWI7QUFDQSxNQUFNQyxJQUFJLEdBQUcsSUFBSUQsR0FBSixFQUFiO0FBQ0EsTUFBTUUsU0FBUyxHQUFHLElBQUlGLEdBQUosRUFBbEI7QUFDQSxNQUFNRyxjQUFjLEdBQUcsRUFBdkI7QUFFQSxTQUFPLFVBQUNDLENBQUQsRUFBSztBQUNSLFFBQUlDLFFBQVEsR0FBRyxJQUFmO0FBQ0EsUUFBSUMsTUFBTSxHQUFHLEtBQWI7O0FBQ0EsUUFBSUYsQ0FBQyxDQUFDbkMsR0FBRixJQUFTLE9BQU9tQyxDQUFDLENBQUNuQyxHQUFULEtBQWlCLFFBQTFCLElBQXNDbUMsQ0FBQyxDQUFDbkMsR0FBRixDQUFNc0MsT0FBTixDQUFjLEdBQWQsSUFBcUIsQ0FBL0QsRUFBa0U7QUFDOURELE1BQUFBLE1BQU0sR0FBRyxJQUFUO0FBQ0EsVUFBTXJDLEdBQUcsR0FBR21DLENBQUMsQ0FBQ25DLEdBQUYsQ0FBTXVDLEtBQU4sQ0FBWUosQ0FBQyxDQUFDbkMsR0FBRixDQUFNc0MsT0FBTixDQUFjLEdBQWQsSUFBcUIsQ0FBakMsQ0FBWjs7QUFDQSxVQUFJUixJQUFJLENBQUNVLEdBQUwsQ0FBU3hDLEdBQVQsQ0FBSixFQUFtQjtBQUNmb0MsUUFBQUEsUUFBUSxHQUFHLEtBQVg7QUFDSCxPQUZELE1BRU87QUFDSE4sUUFBQUEsSUFBSSxDQUFDVyxHQUFMLENBQVN6QyxHQUFUO0FBQ0g7QUFDSixLQVhPLENBWVI7OztBQUNBLFlBQU9tQyxDQUFDLENBQUNqQixJQUFUO0FBQ0ksV0FBSyxPQUFMO0FBQ0EsV0FBSyxNQUFMO0FBQ0ksWUFBSWMsSUFBSSxDQUFDUSxHQUFMLENBQVNMLENBQUMsQ0FBQ2pCLElBQVgsQ0FBSixFQUFzQjtBQUNsQmtCLFVBQUFBLFFBQVEsR0FBRyxLQUFYO0FBQ0gsU0FGRCxNQUVPO0FBQ0hKLFVBQUFBLElBQUksQ0FBQ1MsR0FBTCxDQUFTTixDQUFDLENBQUNqQixJQUFYO0FBQ0g7O0FBQ0Q7O0FBQ0osV0FBSyxNQUFMO0FBQ0ksYUFBSSxJQUFJd0IsQ0FBQyxHQUFHLENBQVIsRUFBV0MsR0FBRyxHQUFHZixTQUFTLENBQUNnQixNQUEvQixFQUF1Q0YsQ0FBQyxHQUFHQyxHQUEzQyxFQUFnREQsQ0FBQyxFQUFqRCxFQUFvRDtBQUNoRCxjQUFNRyxRQUFRLEdBQUdqQixTQUFTLENBQUNjLENBQUQsQ0FBMUI7QUFDQSxjQUFJLENBQUNQLENBQUMsQ0FBQ1osS0FBRixDQUFRckIsY0FBUixDQUF1QjJDLFFBQXZCLENBQUwsRUFBdUM7O0FBQ3ZDLGNBQUlBLFFBQVEsS0FBSyxTQUFqQixFQUE0QjtBQUN4QixnQkFBSVosU0FBUyxDQUFDTyxHQUFWLENBQWNLLFFBQWQsQ0FBSixFQUE2QjtBQUN6QlQsY0FBQUEsUUFBUSxHQUFHLEtBQVg7QUFDSCxhQUZELE1BRU87QUFDSEgsY0FBQUEsU0FBUyxDQUFDUSxHQUFWLENBQWNJLFFBQWQ7QUFDSDtBQUNKLFdBTkQsTUFNTztBQUNILGdCQUFNQyxRQUFRLEdBQUdYLENBQUMsQ0FBQ1osS0FBRixDQUFRc0IsUUFBUixDQUFqQjtBQUNBLGdCQUFNRSxVQUFVLEdBQUdiLGNBQWMsQ0FBQ1csUUFBRCxDQUFkLElBQTRCLElBQUlkLEdBQUosRUFBL0M7O0FBQ0EsZ0JBQUksQ0FBQ2MsUUFBUSxLQUFLLE1BQWIsSUFBdUIsQ0FBQ1IsTUFBekIsS0FBb0NVLFVBQVUsQ0FBQ1AsR0FBWCxDQUFlTSxRQUFmLENBQXhDLEVBQWtFO0FBQzlEVixjQUFBQSxRQUFRLEdBQUcsS0FBWDtBQUNILGFBRkQsTUFFTztBQUNIVyxjQUFBQSxVQUFVLENBQUNOLEdBQVgsQ0FBZUssUUFBZjtBQUNBWixjQUFBQSxjQUFjLENBQUNXLFFBQUQsQ0FBZCxHQUEyQkUsVUFBM0I7QUFDSDtBQUNKO0FBQ0o7O0FBQ0Q7QUE5QlI7O0FBZ0NBLFdBQU9YLFFBQVA7QUFDSCxHQTlDRDtBQStDSDtBQUNEO0FBQ0E7QUFDQTtBQUNBOzs7QUFBSSxTQUFTWSxnQkFBVCxDQUEwQkMsWUFBMUIsRUFBd0MxQixLQUF4QyxFQUErQztBQUMvQyxTQUFPMEIsWUFBWSxDQUFDeEIsTUFBYixDQUFvQixVQUFDVCxJQUFELEVBQU9rQyxXQUFQLEVBQXFCO0FBQzVDLFFBQU1DLG1CQUFtQixHQUFHOUQsTUFBTSxXQUFOLENBQWVnQyxRQUFmLENBQXdCQyxPQUF4QixDQUFnQzRCLFdBQVcsQ0FBQzNCLEtBQVosQ0FBa0JDLFFBQWxELENBQTVCOztBQUNBLFdBQU9SLElBQUksQ0FBQ0ksTUFBTCxDQUFZK0IsbUJBQVosQ0FBUDtBQUNILEdBSE0sRUFHSixFQUhJLEVBR0ExQixNQUhBLENBR09WLGdCQUhQLEVBR3lCLEVBSHpCLEVBRzZCcUMsT0FIN0IsR0FHdUNoQyxNQUh2QyxDQUc4Q2hDLFdBQVcsQ0FBQ21DLEtBQUssQ0FBQ2YsU0FBUCxDQUh6RCxFQUc0RTZDLE1BSDVFLENBR21GeEIsTUFBTSxFQUh6RixFQUc2RnVCLE9BSDdGLEdBR3VHRSxHQUh2RyxDQUcyRyxVQUFDQyxDQUFELEVBQUliLENBQUosRUFBUTtBQUN0SCxRQUFNMUMsR0FBRyxHQUFHdUQsQ0FBQyxDQUFDdkQsR0FBRixJQUFTMEMsQ0FBckI7O0FBQ0EsUUFBSSxLQUFKLEVBQXFHLGlCQWlCcEc7O0FBQ0QsV0FBTyxhQUFjckQsTUFBTSxXQUFOLENBQWUyRSxZQUFmLENBQTRCVCxDQUE1QixFQUErQjtBQUNoRHZELE1BQUFBLEdBQUcsRUFBSEE7QUFEZ0QsS0FBL0IsQ0FBckI7QUFHSCxHQTFCTSxDQUFQO0FBMkJIO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7OztBQUFJLFNBQVNpRSxJQUFULE9BQTZCO0FBQUE7O0FBQUEsTUFBYnpDLFFBQWEsUUFBYkEsUUFBYTtBQUM3QixNQUFNMEMsUUFBUSxHQUFHLENBQUMsR0FBRzdFLE1BQUosRUFBWThFLFVBQVosQ0FBdUJ6RSxXQUFXLENBQUMwRSxlQUFuQyxDQUFqQjtBQUNBLE1BQU1DLFdBQVcsR0FBRyxDQUFDLEdBQUdoRixNQUFKLEVBQVk4RSxVQUFaLENBQXVCeEUsbUJBQW1CLENBQUMyRSxrQkFBM0MsQ0FBcEI7QUFDQSxTQUFPLGFBQWNqRixNQUFNLFdBQU4sQ0FBZXFCLGFBQWYsQ0FBNkJsQixXQUFXLFdBQXhDLEVBQWtEO0FBQ25FK0UsSUFBQUEsdUJBQXVCLEVBQUV2QixnQkFEMEM7QUFFbkVxQixJQUFBQSxXQUFXLEVBQUVBLFdBRnNEO0FBR25FN0QsSUFBQUEsU0FBUyxFQUFFLENBQUMsR0FBR1osSUFBSixFQUFVNEUsV0FBVixDQUFzQk4sUUFBdEI7QUFId0QsR0FBbEQsRUFJbEIxQyxRQUprQixDQUFyQjtBQUtIOztHQVJZeUM7O0tBQUFBO0FBU2IsSUFBSVEsUUFBUSxHQUFHUixJQUFmO0FBQ0EvRSxrQkFBQSxHQUFrQnVGLFFBQWxCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9oZWFkLmpzP2ZiNWQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHRIZWFkID0gZGVmYXVsdEhlYWQ7XG5leHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7XG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcbnZhciBfc2lkZUVmZmVjdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vc2lkZS1lZmZlY3RcIikpO1xudmFyIF9hbXBDb250ZXh0ID0gcmVxdWlyZShcIi4vYW1wLWNvbnRleHRcIik7XG52YXIgX2hlYWRNYW5hZ2VyQ29udGV4dCA9IHJlcXVpcmUoXCIuL2hlYWQtbWFuYWdlci1jb250ZXh0XCIpO1xudmFyIF9hbXAgPSByZXF1aXJlKFwiLi9hbXBcIik7XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHtcbiAgICBpZiAob2JqICYmIG9iai5fX2VzTW9kdWxlKSB7XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIG5ld09iaiA9IHtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKG9iaiAhPSBudWxsKSB7XG4gICAgICAgICAgICBmb3IodmFyIGtleSBpbiBvYmope1xuICAgICAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBkZXNjID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IHtcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3T2JqW2tleV0gPSBvYmpba2V5XTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBuZXdPYmouZGVmYXVsdCA9IG9iajtcbiAgICAgICAgcmV0dXJuIG5ld09iajtcbiAgICB9XG59XG5mdW5jdGlvbiBkZWZhdWx0SGVhZChpbkFtcE1vZGUgPSBmYWxzZSkge1xuICAgIGNvbnN0IGhlYWQgPSBbXG4gICAgICAgIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChcIm1ldGFcIiwge1xuICAgICAgICAgICAgY2hhclNldDogXCJ1dGYtOFwiXG4gICAgICAgIH0pXG4gICAgXTtcbiAgICBpZiAoIWluQW1wTW9kZSkge1xuICAgICAgICBoZWFkLnB1c2goLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwibWV0YVwiLCB7XG4gICAgICAgICAgICBuYW1lOiBcInZpZXdwb3J0XCIsXG4gICAgICAgICAgICBjb250ZW50OiBcIndpZHRoPWRldmljZS13aWR0aFwiXG4gICAgICAgIH0pKTtcbiAgICB9XG4gICAgcmV0dXJuIGhlYWQ7XG59XG5mdW5jdGlvbiBvbmx5UmVhY3RFbGVtZW50KGxpc3QsIGNoaWxkKSB7XG4gICAgLy8gUmVhY3QgY2hpbGRyZW4gY2FuIGJlIFwic3RyaW5nXCIgb3IgXCJudW1iZXJcIiBpbiB0aGlzIGNhc2Ugd2UgaWdub3JlIHRoZW0gZm9yIGJhY2t3YXJkcyBjb21wYXRcbiAgICBpZiAodHlwZW9mIGNoaWxkID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgY2hpbGQgPT09ICdudW1iZXInKSB7XG4gICAgICAgIHJldHVybiBsaXN0O1xuICAgIH1cbiAgICAvLyBBZGRzIHN1cHBvcnQgZm9yIFJlYWN0LkZyYWdtZW50XG4gICAgaWYgKGNoaWxkLnR5cGUgPT09IF9yZWFjdC5kZWZhdWx0LkZyYWdtZW50KSB7XG4gICAgICAgIHJldHVybiBsaXN0LmNvbmNhdChfcmVhY3QuZGVmYXVsdC5DaGlsZHJlbi50b0FycmF5KGNoaWxkLnByb3BzLmNoaWxkcmVuKS5yZWR1Y2UoKGZyYWdtZW50TGlzdCwgZnJhZ21lbnRDaGlsZCk9PntcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZnJhZ21lbnRDaGlsZCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIGZyYWdtZW50Q2hpbGQgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZyYWdtZW50TGlzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmcmFnbWVudExpc3QuY29uY2F0KGZyYWdtZW50Q2hpbGQpO1xuICAgICAgICB9LCBbXSkpO1xuICAgIH1cbiAgICByZXR1cm4gbGlzdC5jb25jYXQoY2hpbGQpO1xufVxuY29uc3QgTUVUQVRZUEVTID0gW1xuICAgICduYW1lJyxcbiAgICAnaHR0cEVxdWl2JyxcbiAgICAnY2hhclNldCcsXG4gICAgJ2l0ZW1Qcm9wJ1xuXTtcbi8qXG4gcmV0dXJucyBhIGZ1bmN0aW9uIGZvciBmaWx0ZXJpbmcgaGVhZCBjaGlsZCBlbGVtZW50c1xuIHdoaWNoIHNob3VsZG4ndCBiZSBkdXBsaWNhdGVkLCBsaWtlIDx0aXRsZS8+XG4gQWxzbyBhZGRzIHN1cHBvcnQgZm9yIGRlZHVwbGljYXRlZCBga2V5YCBwcm9wZXJ0aWVzXG4qLyBmdW5jdGlvbiB1bmlxdWUoKSB7XG4gICAgY29uc3Qga2V5cyA9IG5ldyBTZXQoKTtcbiAgICBjb25zdCB0YWdzID0gbmV3IFNldCgpO1xuICAgIGNvbnN0IG1ldGFUeXBlcyA9IG5ldyBTZXQoKTtcbiAgICBjb25zdCBtZXRhQ2F0ZWdvcmllcyA9IHtcbiAgICB9O1xuICAgIHJldHVybiAoaCk9PntcbiAgICAgICAgbGV0IGlzVW5pcXVlID0gdHJ1ZTtcbiAgICAgICAgbGV0IGhhc0tleSA9IGZhbHNlO1xuICAgICAgICBpZiAoaC5rZXkgJiYgdHlwZW9mIGgua2V5ICE9PSAnbnVtYmVyJyAmJiBoLmtleS5pbmRleE9mKCckJykgPiAwKSB7XG4gICAgICAgICAgICBoYXNLZXkgPSB0cnVlO1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gaC5rZXkuc2xpY2UoaC5rZXkuaW5kZXhPZignJCcpICsgMSk7XG4gICAgICAgICAgICBpZiAoa2V5cy5oYXMoa2V5KSkge1xuICAgICAgICAgICAgICAgIGlzVW5pcXVlID0gZmFsc2U7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGtleXMuYWRkKGtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGRlZmF1bHQtY2FzZVxuICAgICAgICBzd2l0Y2goaC50eXBlKXtcbiAgICAgICAgICAgIGNhc2UgJ3RpdGxlJzpcbiAgICAgICAgICAgIGNhc2UgJ2Jhc2UnOlxuICAgICAgICAgICAgICAgIGlmICh0YWdzLmhhcyhoLnR5cGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlzVW5pcXVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGFncy5hZGQoaC50eXBlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtZXRhJzpcbiAgICAgICAgICAgICAgICBmb3IobGV0IGkgPSAwLCBsZW4gPSBNRVRBVFlQRVMubGVuZ3RoOyBpIDwgbGVuOyBpKyspe1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtZXRhdHlwZSA9IE1FVEFUWVBFU1tpXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFoLnByb3BzLmhhc093blByb3BlcnR5KG1ldGF0eXBlKSkgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChtZXRhdHlwZSA9PT0gJ2NoYXJTZXQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobWV0YVR5cGVzLmhhcyhtZXRhdHlwZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1VuaXF1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhVHlwZXMuYWRkKG1ldGF0eXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNhdGVnb3J5ID0gaC5wcm9wc1ttZXRhdHlwZV07XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjYXRlZ29yaWVzID0gbWV0YUNhdGVnb3JpZXNbbWV0YXR5cGVdIHx8IG5ldyBTZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgobWV0YXR5cGUgIT09ICduYW1lJyB8fCAhaGFzS2V5KSAmJiBjYXRlZ29yaWVzLmhhcyhjYXRlZ29yeSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1VuaXF1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yaWVzLmFkZChjYXRlZ29yeSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YUNhdGVnb3JpZXNbbWV0YXR5cGVdID0gY2F0ZWdvcmllcztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNVbmlxdWU7XG4gICAgfTtcbn1cbi8qKlxuICpcbiAqIEBwYXJhbSBoZWFkRWxlbWVudHMgTGlzdCBvZiBtdWx0aXBsZSA8SGVhZD4gaW5zdGFuY2VzXG4gKi8gZnVuY3Rpb24gcmVkdWNlQ29tcG9uZW50cyhoZWFkRWxlbWVudHMsIHByb3BzKSB7XG4gICAgcmV0dXJuIGhlYWRFbGVtZW50cy5yZWR1Y2UoKGxpc3QsIGhlYWRFbGVtZW50KT0+e1xuICAgICAgICBjb25zdCBoZWFkRWxlbWVudENoaWxkcmVuID0gX3JlYWN0LmRlZmF1bHQuQ2hpbGRyZW4udG9BcnJheShoZWFkRWxlbWVudC5wcm9wcy5jaGlsZHJlbik7XG4gICAgICAgIHJldHVybiBsaXN0LmNvbmNhdChoZWFkRWxlbWVudENoaWxkcmVuKTtcbiAgICB9LCBbXSkucmVkdWNlKG9ubHlSZWFjdEVsZW1lbnQsIFtdKS5yZXZlcnNlKCkuY29uY2F0KGRlZmF1bHRIZWFkKHByb3BzLmluQW1wTW9kZSkpLmZpbHRlcih1bmlxdWUoKSkucmV2ZXJzZSgpLm1hcCgoYywgaSk9PntcbiAgICAgICAgY29uc3Qga2V5ID0gYy5rZXkgfHwgaTtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAnZGV2ZWxvcG1lbnQnICYmIHByb2Nlc3MuZW52Ll9fTkVYVF9PUFRJTUlaRV9GT05UUyAmJiAhcHJvcHMuaW5BbXBNb2RlKSB7XG4gICAgICAgICAgICBpZiAoYy50eXBlID09PSAnbGluaycgJiYgYy5wcm9wc1snaHJlZiddICYmIC8vIFRPRE8ocHJhdGVla2JoQCk6IFJlcGxhY2UgdGhpcyB3aXRoIGNvbnN0IGZyb20gYGNvbnN0YW50c2Agd2hlbiB0aGUgdHJlZSBzaGFraW5nIHdvcmtzLlxuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzcycsXG4gICAgICAgICAgICAgICAgJ2h0dHBzOi8vdXNlLnR5cGVraXQubmV0LydcbiAgICAgICAgICAgIF0uc29tZSgodXJsKT0+Yy5wcm9wc1snaHJlZiddLnN0YXJ0c1dpdGgodXJsKVxuICAgICAgICAgICAgKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld1Byb3BzID0ge1xuICAgICAgICAgICAgICAgICAgICAuLi5jLnByb3BzIHx8IHtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgbmV3UHJvcHNbJ2RhdGEtaHJlZiddID0gbmV3UHJvcHNbJ2hyZWYnXTtcbiAgICAgICAgICAgICAgICBuZXdQcm9wc1snaHJlZiddID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIC8vIEFkZCB0aGlzIGF0dHJpYnV0ZSB0byBtYWtlIGl0IGVhc3kgdG8gaWRlbnRpZnkgb3B0aW1pemVkIHRhZ3NcbiAgICAgICAgICAgICAgICBuZXdQcm9wc1snZGF0YS1vcHRpbWl6ZWQtZm9udHMnXSA9IHRydWU7XG4gICAgICAgICAgICAgICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY2xvbmVFbGVtZW50KGMsIG5ld1Byb3BzKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY2xvbmVFbGVtZW50KGMsIHtcbiAgICAgICAgICAgIGtleVxuICAgICAgICB9KSk7XG4gICAgfSk7XG59XG4vKipcbiAqIFRoaXMgY29tcG9uZW50IGluamVjdHMgZWxlbWVudHMgdG8gYDxoZWFkPmAgb2YgeW91ciBwYWdlLlxuICogVG8gYXZvaWQgZHVwbGljYXRlZCBgdGFnc2AgaW4gYDxoZWFkPmAgeW91IGNhbiB1c2UgdGhlIGBrZXlgIHByb3BlcnR5LCB3aGljaCB3aWxsIG1ha2Ugc3VyZSBldmVyeSB0YWcgaXMgb25seSByZW5kZXJlZCBvbmNlLlxuICovIGZ1bmN0aW9uIEhlYWQoeyBjaGlsZHJlbiAgfSkge1xuICAgIGNvbnN0IGFtcFN0YXRlID0gKDAsIF9yZWFjdCkudXNlQ29udGV4dChfYW1wQ29udGV4dC5BbXBTdGF0ZUNvbnRleHQpO1xuICAgIGNvbnN0IGhlYWRNYW5hZ2VyID0gKDAsIF9yZWFjdCkudXNlQ29udGV4dChfaGVhZE1hbmFnZXJDb250ZXh0LkhlYWRNYW5hZ2VyQ29udGV4dCk7XG4gICAgcmV0dXJuKC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChfc2lkZUVmZmVjdC5kZWZhdWx0LCB7XG4gICAgICAgIHJlZHVjZUNvbXBvbmVudHNUb1N0YXRlOiByZWR1Y2VDb21wb25lbnRzLFxuICAgICAgICBoZWFkTWFuYWdlcjogaGVhZE1hbmFnZXIsXG4gICAgICAgIGluQW1wTW9kZTogKDAsIF9hbXApLmlzSW5BbXBNb2RlKGFtcFN0YXRlKVxuICAgIH0sIGNoaWxkcmVuKSk7XG59XG52YXIgX2RlZmF1bHQgPSBIZWFkO1xuZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhlYWQuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiZGVmYXVsdEhlYWQiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc2lkZUVmZmVjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfYW1wQ29udGV4dCIsIl9oZWFkTWFuYWdlckNvbnRleHQiLCJfYW1wIiwib2JqIiwiX19lc01vZHVsZSIsIm5ld09iaiIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJnZXQiLCJzZXQiLCJpbkFtcE1vZGUiLCJoZWFkIiwiY3JlYXRlRWxlbWVudCIsImNoYXJTZXQiLCJwdXNoIiwibmFtZSIsImNvbnRlbnQiLCJvbmx5UmVhY3RFbGVtZW50IiwibGlzdCIsImNoaWxkIiwidHlwZSIsIkZyYWdtZW50IiwiY29uY2F0IiwiQ2hpbGRyZW4iLCJ0b0FycmF5IiwicHJvcHMiLCJjaGlsZHJlbiIsInJlZHVjZSIsImZyYWdtZW50TGlzdCIsImZyYWdtZW50Q2hpbGQiLCJNRVRBVFlQRVMiLCJ1bmlxdWUiLCJrZXlzIiwiU2V0IiwidGFncyIsIm1ldGFUeXBlcyIsIm1ldGFDYXRlZ29yaWVzIiwiaCIsImlzVW5pcXVlIiwiaGFzS2V5IiwiaW5kZXhPZiIsInNsaWNlIiwiaGFzIiwiYWRkIiwiaSIsImxlbiIsImxlbmd0aCIsIm1ldGF0eXBlIiwiY2F0ZWdvcnkiLCJjYXRlZ29yaWVzIiwicmVkdWNlQ29tcG9uZW50cyIsImhlYWRFbGVtZW50cyIsImhlYWRFbGVtZW50IiwiaGVhZEVsZW1lbnRDaGlsZHJlbiIsInJldmVyc2UiLCJmaWx0ZXIiLCJtYXAiLCJjIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9PUFRJTUlaRV9GT05UUyIsInNvbWUiLCJ1cmwiLCJzdGFydHNXaXRoIiwibmV3UHJvcHMiLCJ1bmRlZmluZWQiLCJjbG9uZUVsZW1lbnQiLCJIZWFkIiwiYW1wU3RhdGUiLCJ1c2VDb250ZXh0IiwiQW1wU3RhdGVDb250ZXh0IiwiaGVhZE1hbmFnZXIiLCJIZWFkTWFuYWdlckNvbnRleHQiLCJyZWR1Y2VDb21wb25lbnRzVG9TdGF0ZSIsImlzSW5BbXBNb2RlIiwiX2RlZmF1bHQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/head.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/side-effect.js": +/*!**********************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/side-effect.js ***! + \**********************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\nvar _toConsumableArray = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/toConsumableArray.js\");\n\nvar _classCallCheck = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\");\n\nvar _createClass = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\");\n\nvar _assertThisInitialized = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/assertThisInitialized */ \"./node_modules/@babel/runtime/helpers/assertThisInitialized.js\");\n\nvar _inherits = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/inherits */ \"./node_modules/@babel/runtime/helpers/inherits.js\");\n\nvar _possibleConstructorReturn = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/possibleConstructorReturn */ \"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\");\n\nvar _getPrototypeOf = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/getPrototypeOf */ \"./node_modules/@babel/runtime/helpers/getPrototypeOf.js\");\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj[\"default\"] = obj;\n return newObj;\n }\n}\n\nvar isServer = false;\n\nvar _class = /*#__PURE__*/function (_react$Component) {\n _inherits(_class, _react$Component);\n\n var _super = _createSuper(_class);\n\n function _class(props) {\n var _this;\n\n _classCallCheck(this, _class);\n\n _this = _super.call(this, props);\n\n _this.emitChange = function () {\n if (_this._hasHeadManager) {\n _this.props.headManager.updateHead(_this.props.reduceComponentsToState(_toConsumableArray(_this.props.headManager.mountedInstances), _this.props));\n }\n };\n\n _this._hasHeadManager = _this.props.headManager && _this.props.headManager.mountedInstances;\n\n if (isServer && _this._hasHeadManager) {\n _this.props.headManager.mountedInstances.add(_assertThisInitialized(_this));\n\n _this.emitChange();\n }\n\n return _this;\n }\n\n _createClass(_class, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this._hasHeadManager) {\n this.props.headManager.mountedInstances.add(this);\n }\n\n this.emitChange();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.emitChange();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this._hasHeadManager) {\n this.props.headManager.mountedInstances[\"delete\"](this);\n }\n\n this.emitChange();\n }\n }, {\n key: \"render\",\n value: function render() {\n return null;\n }\n }]);\n\n return _class;\n}(_react.Component);\n\nexports[\"default\"] = _class;\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvc2lkZS1lZmZlY3QuanMuanMiLCJtYXBwaW5ncyI6IjtBQUFhOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNiQSw4Q0FBNkM7QUFDekNHLEVBQUFBLEtBQUssRUFBRTtBQURrQyxDQUE3QztBQUdBRCxrQkFBQSxHQUFrQixLQUFLLENBQXZCOztBQUNBLElBQUlFLE1BQU0sR0FBR0MsdUJBQXVCLENBQUNDLG1CQUFPLENBQUMsNENBQUQsQ0FBUixDQUFwQzs7QUFDQSxTQUFTRCx1QkFBVCxDQUFpQ0UsR0FBakMsRUFBc0M7QUFDbEMsTUFBSUEsR0FBRyxJQUFJQSxHQUFHLENBQUNDLFVBQWYsRUFBMkI7QUFDdkIsV0FBT0QsR0FBUDtBQUNILEdBRkQsTUFFTztBQUNILFFBQUlFLE1BQU0sR0FBRyxFQUFiOztBQUVBLFFBQUlGLEdBQUcsSUFBSSxJQUFYLEVBQWlCO0FBQ2IsV0FBSSxJQUFJRyxHQUFSLElBQWVILEdBQWYsRUFBbUI7QUFDZixZQUFJUCxNQUFNLENBQUNXLFNBQVAsQ0FBaUJDLGNBQWpCLENBQWdDQyxJQUFoQyxDQUFxQ04sR0FBckMsRUFBMENHLEdBQTFDLENBQUosRUFBb0Q7QUFDaEQsY0FBSUksSUFBSSxHQUFHZCxNQUFNLENBQUNDLGNBQVAsSUFBeUJELE1BQU0sQ0FBQ2Usd0JBQWhDLEdBQTJEZixNQUFNLENBQUNlLHdCQUFQLENBQWdDUixHQUFoQyxFQUFxQ0csR0FBckMsQ0FBM0QsR0FBdUcsRUFBbEg7O0FBRUEsY0FBSUksSUFBSSxDQUFDRSxHQUFMLElBQVlGLElBQUksQ0FBQ0csR0FBckIsRUFBMEI7QUFDdEJqQixZQUFBQSxNQUFNLENBQUNDLGNBQVAsQ0FBc0JRLE1BQXRCLEVBQThCQyxHQUE5QixFQUFtQ0ksSUFBbkM7QUFDSCxXQUZELE1BRU87QUFDSEwsWUFBQUEsTUFBTSxDQUFDQyxHQUFELENBQU4sR0FBY0gsR0FBRyxDQUFDRyxHQUFELENBQWpCO0FBQ0g7QUFDSjtBQUNKO0FBQ0o7O0FBQ0RELElBQUFBLE1BQU0sV0FBTixHQUFpQkYsR0FBakI7QUFDQSxXQUFPRSxNQUFQO0FBQ0g7QUFDSjs7QUFDRCxJQUFNUyxRQUFRLFFBQWQ7O0lBQ01DOzs7OztBQUNGLGtCQUFZQyxLQUFaLEVBQWtCO0FBQUE7O0FBQUE7O0FBQ2QsOEJBQU1BLEtBQU47O0FBQ0EsVUFBS0MsVUFBTCxHQUFrQixZQUFJO0FBQ2xCLFVBQUksTUFBS0MsZUFBVCxFQUEwQjtBQUN0QixjQUFLRixLQUFMLENBQVdHLFdBQVgsQ0FBdUJDLFVBQXZCLENBQWtDLE1BQUtKLEtBQUwsQ0FBV0ssdUJBQVgsb0JBQzNCLE1BQUtMLEtBQUwsQ0FBV0csV0FBWCxDQUF1QkcsZ0JBREksR0FFL0IsTUFBS04sS0FGMEIsQ0FBbEM7QUFHSDtBQUNKLEtBTkQ7O0FBT0EsVUFBS0UsZUFBTCxHQUF1QixNQUFLRixLQUFMLENBQVdHLFdBQVgsSUFBMEIsTUFBS0gsS0FBTCxDQUFXRyxXQUFYLENBQXVCRyxnQkFBeEU7O0FBQ0EsUUFBSVIsUUFBUSxJQUFJLE1BQUtJLGVBQXJCLEVBQXNDO0FBQ2xDLFlBQUtGLEtBQUwsQ0FBV0csV0FBWCxDQUF1QkcsZ0JBQXZCLENBQXdDQyxHQUF4Qzs7QUFDQSxZQUFLTixVQUFMO0FBQ0g7O0FBYmE7QUFjakI7Ozs7V0FDRCw2QkFBb0I7QUFDaEIsVUFBSSxLQUFLQyxlQUFULEVBQTBCO0FBQ3RCLGFBQUtGLEtBQUwsQ0FBV0csV0FBWCxDQUF1QkcsZ0JBQXZCLENBQXdDQyxHQUF4QyxDQUE0QyxJQUE1QztBQUNIOztBQUNELFdBQUtOLFVBQUw7QUFDSDs7O1dBQ0QsOEJBQXFCO0FBQ2pCLFdBQUtBLFVBQUw7QUFDSDs7O1dBQ0QsZ0NBQXVCO0FBQ25CLFVBQUksS0FBS0MsZUFBVCxFQUEwQjtBQUN0QixhQUFLRixLQUFMLENBQVdHLFdBQVgsQ0FBdUJHLGdCQUF2QixXQUErQyxJQUEvQztBQUNIOztBQUNELFdBQUtMLFVBQUw7QUFDSDs7O1dBQ0Qsa0JBQVM7QUFDTCxhQUFPLElBQVA7QUFDSDs7OztFQWpDZ0JqQixNQUFNLENBQUN3Qjs7QUFtQzVCMUIsa0JBQUEsR0FBa0JpQixNQUFsQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvc2lkZS1lZmZlY3QuanM/NDA4YyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IHZvaWQgMDtcbnZhciBfcmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7XG4gICAgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkge1xuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBuZXdPYmogPSB7XG4gICAgICAgIH07XG4gICAgICAgIGlmIChvYmogIT0gbnVsbCkge1xuICAgICAgICAgICAgZm9yKHZhciBrZXkgaW4gb2JqKXtcbiAgICAgICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiB7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGlmIChkZXNjLmdldCB8fCBkZXNjLnNldCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld09ialtrZXldID0gb2JqW2tleV07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbmV3T2JqLmRlZmF1bHQgPSBvYmo7XG4gICAgICAgIHJldHVybiBuZXdPYmo7XG4gICAgfVxufVxuY29uc3QgaXNTZXJ2ZXIgPSB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJztcbmNsYXNzIF9jbGFzcyBleHRlbmRzIF9yZWFjdC5Db21wb25lbnQge1xuICAgIGNvbnN0cnVjdG9yKHByb3BzKXtcbiAgICAgICAgc3VwZXIocHJvcHMpO1xuICAgICAgICB0aGlzLmVtaXRDaGFuZ2UgPSAoKT0+e1xuICAgICAgICAgICAgaWYgKHRoaXMuX2hhc0hlYWRNYW5hZ2VyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5oZWFkTWFuYWdlci51cGRhdGVIZWFkKHRoaXMucHJvcHMucmVkdWNlQ29tcG9uZW50c1RvU3RhdGUoW1xuICAgICAgICAgICAgICAgICAgICAuLi50aGlzLnByb3BzLmhlYWRNYW5hZ2VyLm1vdW50ZWRJbnN0YW5jZXNcbiAgICAgICAgICAgICAgICBdLCB0aGlzLnByb3BzKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuX2hhc0hlYWRNYW5hZ2VyID0gdGhpcy5wcm9wcy5oZWFkTWFuYWdlciAmJiB0aGlzLnByb3BzLmhlYWRNYW5hZ2VyLm1vdW50ZWRJbnN0YW5jZXM7XG4gICAgICAgIGlmIChpc1NlcnZlciAmJiB0aGlzLl9oYXNIZWFkTWFuYWdlcikge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5oZWFkTWFuYWdlci5tb3VudGVkSW5zdGFuY2VzLmFkZCh0aGlzKTtcbiAgICAgICAgICAgIHRoaXMuZW1pdENoYW5nZSgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgICBpZiAodGhpcy5faGFzSGVhZE1hbmFnZXIpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMuaGVhZE1hbmFnZXIubW91bnRlZEluc3RhbmNlcy5hZGQodGhpcyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbWl0Q2hhbmdlKCk7XG4gICAgfVxuICAgIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICAgICAgdGhpcy5lbWl0Q2hhbmdlKCk7XG4gICAgfVxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgICBpZiAodGhpcy5faGFzSGVhZE1hbmFnZXIpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMuaGVhZE1hbmFnZXIubW91bnRlZEluc3RhbmNlcy5kZWxldGUodGhpcyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbWl0Q2hhbmdlKCk7XG4gICAgfVxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxufVxuZXhwb3J0cy5kZWZhdWx0ID0gX2NsYXNzO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zaWRlLWVmZmVjdC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJvYmoiLCJfX2VzTW9kdWxlIiwibmV3T2JqIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImdldCIsInNldCIsImlzU2VydmVyIiwiX2NsYXNzIiwicHJvcHMiLCJlbWl0Q2hhbmdlIiwiX2hhc0hlYWRNYW5hZ2VyIiwiaGVhZE1hbmFnZXIiLCJ1cGRhdGVIZWFkIiwicmVkdWNlQ29tcG9uZW50c1RvU3RhdGUiLCJtb3VudGVkSW5zdGFuY2VzIiwiYWRkIiwiQ29tcG9uZW50Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/side-effect.js\n"); + +/***/ }) + +}); \ No newline at end of file diff --git a/.next/static/webpack/pages/about.034483604fba37f4.hot-update.js b/.next/static/webpack/pages/about.034483604fba37f4.hot-update.js new file mode 100644 index 0000000..64cf44e --- /dev/null +++ b/.next/static/webpack/pages/about.034483604fba37f4.hot-update.js @@ -0,0 +1,22 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("pages/about",{ + +/***/ "./src/components/Team/team.jsx": +/*!**************************************!*\ + !*** ./src/components/Team/team.jsx ***! + \**************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/teamSkillsProgress */ \"./src/common/teamSkillsProgress.js\");\n/* harmony import */ var _common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/tooltipEffect */ \"./src/common/tooltipEffect.js\");\n/* harmony import */ var _data_sections_team_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../data/sections/team.json */ \"./src/data/sections/team.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Team\\\\team.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nvar Team = function Team() {\n _s();\n\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n (0,_common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n setTimeout(function () {\n (0,_common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__[\"default\"])();\n }, 1000);\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"section\", {\n className: \"team section-padding\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Our Team\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: \"Our team will simplify business setup in the UAE\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container-fluid\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/01.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/02.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/03.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 117,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/04.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/05.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/06.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/07.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 292,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 291,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 297,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 299,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 298,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 280,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 275,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/08.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 319,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 333,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 332,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 338,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 340,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 339,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 321,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 320,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 318,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 317,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 316,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/09.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 361,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 375,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 374,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 380,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 382,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 381,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 363,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 362,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 360,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 359,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 358,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/10.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 401,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 415,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 414,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 420,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 422,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 421,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 403,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 402,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 400,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 399,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 398,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/11.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 441,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 455,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 454,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 460,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 462,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 461,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 443,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 442,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 440,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 439,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 438,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/12.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 482,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 496,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 495,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 501,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 503,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 502,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 484,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 483,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 481,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 480,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 479,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 357,\n columnNumber: 9\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 5\n }, _this);\n};\n\n_s(Team, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = Team;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Team);\n\nvar _c;\n\n$RefreshReg$(_c, \"Team\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFBQSxXQURGO0FBNmZELENBcGdCRDs7R0FBTUU7O0tBQUFBO0FBc2dCTiwrREFBZUEsSUFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tcG9uZW50cy9UZWFtL3RlYW0uanN4P2I2OGUiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB0ZWFtU2tpbGxzUHJvZ3Jlc3MgZnJvbSBcIi4uLy4uL2NvbW1vbi90ZWFtU2tpbGxzUHJvZ3Jlc3NcIjtcclxuaW1wb3J0IHRvb2x0aXBFZmZlY3QgZnJvbSBcIi4uLy4uL2NvbW1vbi90b29sdGlwRWZmZWN0XCI7XHJcbmltcG9ydCB0ZWFtc0RhdGUgZnJvbSBcIi4uLy4uL2RhdGEvc2VjdGlvbnMvdGVhbS5qc29uXCI7XHJcblxyXG5jb25zdCBUZWFtID0gKCkgPT4ge1xyXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICB0ZWFtU2tpbGxzUHJvZ3Jlc3MoKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0b29sdGlwRWZmZWN0KCk7XHJcbiAgICB9LCAxMDAwKTtcclxuICB9LCBbXSk7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInRlYW0gc2VjdGlvbi1wYWRkaW5nXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOCBjb2wtbWQtMTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWMtaGVhZCB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNiBjbGFzc05hbWU9XCJ3b3cgZmFkZUluXCIgZGF0YS13b3ctZGVsYXk9XCIuNXNcIj5cclxuICAgICAgICAgICAgICAgIE91ciBUZWFtXHJcbiAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwid293IGNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgIE91ciB0ZWFtIHdpbGwgc2ltcGxpZnkgYnVzaW5lc3Mgc2V0dXAgaW4gdGhlIFVBRVxyXG4gICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wMS53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUxXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDRU8gTWFuYWdlciBDRU8gTWFuYWdlciBDRU8gTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzAyLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTJcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIHNtLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDMud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlM1wiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDQud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlNFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzA1LndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTFcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgxXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENFTyBNYW5hZ2VyIENFTyBNYW5hZ2VyIENFTyBNYW5hZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDYud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlMlwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDJcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJpb3IgRGVzaWduZXIgSW50ZXJpb3IgRGVzaWduZXIgSW50ZXJpb3IgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgc20tbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wNy53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUzXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wOC53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGU0XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoNFwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDbGllbnQgTWFuYWdlciBDbGllbnQgTWFuYWdlciBDbGllbnQgTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDkud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlMVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ0VPIE1hbmFnZXIgQ0VPIE1hbmFnZXIgQ0VPIE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8xMC53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMlwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBJbnRlcmlvciBEZXNpZ25lciBJbnRlcmlvciBEZXNpZ25lciBJbnRlcmlvciBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBzbS1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzExLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTNcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzEyLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTRcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGg0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGg0XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGg0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENsaWVudCBNYW5hZ2VyIENsaWVudCBNYW5hZ2VyIENsaWVudCBNYW5hZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvc2VjdGlvbj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgVGVhbTtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwidGVhbVNraWxsc1Byb2dyZXNzIiwidG9vbHRpcEVmZmVjdCIsInRlYW1zRGF0ZSIsIlRlYW0iLCJ1c2VFZmZlY3QiLCJzZXRUaW1lb3V0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Team/team.jsx\n"); + +/***/ }) + +}); \ No newline at end of file diff --git a/.next/static/webpack/pages/about.0aeb85f6a56c9e6e.hot-update.js b/.next/static/webpack/pages/about.0aeb85f6a56c9e6e.hot-update.js new file mode 100644 index 0000000..f3ef19f --- /dev/null +++ b/.next/static/webpack/pages/about.0aeb85f6a56c9e6e.hot-update.js @@ -0,0 +1,22 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("pages/about",{ + +/***/ "./src/components/Services/services.jsx": +/*!**********************************************!*\ + !*** ./src/components/Services/services.jsx ***! + \**********************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _data_sections_features_json__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../data/sections/features.json */ \"./src/data/sections/features.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Services\\\\services.jsx\",\n _this = undefined;\n\n\n\n\n\n\nvar Services = function Services(_ref) {\n var style = _ref.style,\n lines = _ref.lines;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"section\", {\n className: \"services bords section-padding \".concat(style === \"4item\" ? \"lficon\" : lines ? \"\" : \"pt-0\"),\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"container\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Best Features\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: \"We are a new business development agency\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"row\",\n children: style === \"4item\" ? _data_sections_features_json__WEBPACK_IMPORTED_MODULE_1__.map(function (feature) {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"col-lg-6 wow fadeInLeft\",\n \"data-wow-delay\": \"\".concat(feature.id == 1 ? \".5\" : feature.id === 2 ? \".7\" : feature.id === 3 ? \".9\" : \"1.1\", \"s\"),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"item-box\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"span\", {\n className: \"icon \".concat(feature.icon)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"h6\", {\n children: feature.title\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"p\", {\n children: feature.content\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 23\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 44,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 19\n }, _this)\n }, feature.id, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 17\n }, _this);\n }) : // max item 3 in Home page\n _data_sections_features_json__WEBPACK_IMPORTED_MODULE_1__.slice(0, 3).map(function (feature) {\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"col-lg-4 wow fadeInLeft\",\n \"data-wow-delay\": \".5s\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"item-box md-mb50\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"span\", {\n className: \"icon \".concat(feature.icon)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 59,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"h6\", {\n children: feature.title\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 60,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"p\", {\n children: feature.content\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 61,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 19\n }, _this)\n }, feature.id, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 17\n }, _this);\n })\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 9\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 7\n }, _this), lines ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"line top left\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(\"div\", {\n className: \"line bottom right\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 11\n }, _this)]\n }, void 0, true) : null]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 6,\n columnNumber: 5\n }, _this);\n};\n\n_c = Services;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Services);\n\nvar _c;\n\n$RefreshReg$(_c, \"Services\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9TZXJ2aWNlcy9zZXJ2aWNlcy5qc3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBO0FBQ0E7Ozs7QUFFQSxJQUFNRSxRQUFRLEdBQUcsU0FBWEEsUUFBVyxPQUFzQjtBQUFBLE1BQW5CQyxLQUFtQixRQUFuQkEsS0FBbUI7QUFBQSxNQUFaQyxLQUFZLFFBQVpBLEtBQVk7QUFDckMsc0JBQ0U7QUFDRSxhQUFTLDJDQUNQRCxLQUFLLEtBQUssT0FBVixHQUFvQixRQUFwQixHQUErQkMsS0FBSyxHQUFHLEVBQUgsR0FBUSxNQURyQyxDQURYO0FBQUEsNEJBS0U7QUFBSyxlQUFTLEVBQUMsV0FBZjtBQUFBLDhCQUNFO0FBQUssaUJBQVMsRUFBQyw0QkFBZjtBQUFBLCtCQUNFO0FBQUssbUJBQVMsRUFBQyxvQkFBZjtBQUFBLGlDQUNFO0FBQUsscUJBQVMsRUFBQyx1QkFBZjtBQUFBLG9DQUNFO0FBQUksdUJBQVMsRUFBQyxZQUFkO0FBQTJCLGdDQUFlLEtBQTFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQURGLGVBSUU7QUFBSSx1QkFBUyxFQUFDLGdCQUFkO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQUpGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGVBREYsZUFhRTtBQUFLLGlCQUFTLEVBQUMsS0FBZjtBQUFBLGtCQUNHRCxLQUFLLEtBQUssT0FBVixHQUNHRiw2REFBQSxDQUFpQixVQUFDSyxPQUFEO0FBQUEsOEJBQ2Y7QUFFRSxxQkFBUyxFQUFDLHlCQUZaO0FBR0Usd0NBQ0VBLE9BQU8sQ0FBQ0MsRUFBUixJQUFjLENBQWQsR0FDSSxJQURKLEdBRUlELE9BQU8sQ0FBQ0MsRUFBUixLQUFlLENBQWYsR0FDQSxJQURBLEdBRUFELE9BQU8sQ0FBQ0MsRUFBUixLQUFlLENBQWYsR0FDQSxJQURBLEdBRUEsS0FQTixNQUhGO0FBQUEsbUNBYUU7QUFBSyx1QkFBUyxFQUFDLFVBQWY7QUFBQSxzQ0FDRTtBQUFBLHVDQUNFO0FBQU0sMkJBQVMsaUJBQVVELE9BQU8sQ0FBQ0UsSUFBbEI7QUFBZjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFERixlQUlFO0FBQUsseUJBQVMsRUFBQyxNQUFmO0FBQUEsd0NBQ0U7QUFBQSw0QkFBS0YsT0FBTyxDQUFDRztBQUFiO0FBQUE7QUFBQTtBQUFBO0FBQUEseUJBREYsZUFFRTtBQUFBLDRCQUFJSCxPQUFPLENBQUNJO0FBQVo7QUFBQTtBQUFBO0FBQUE7QUFBQSx5QkFGRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBSkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBYkYsYUFDT0osT0FBTyxDQUFDQyxFQURmO0FBQUE7QUFBQTtBQUFBO0FBQUEsbUJBRGU7QUFBQSxTQUFqQixDQURILEdBMEJHO0FBQ0FOLFFBQUFBLCtEQUFBLENBQW1CLENBQW5CLEVBQXNCLENBQXRCLEVBQXlCSSxHQUF6QixDQUE2QixVQUFDQyxPQUFEO0FBQUEsOEJBQzNCO0FBRUUscUJBQVMsRUFBQyx5QkFGWjtBQUdFLDhCQUFlLEtBSGpCO0FBQUEsbUNBS0U7QUFBSyx1QkFBUyxFQUFDLGtCQUFmO0FBQUEsc0NBQ0U7QUFBTSx5QkFBUyxpQkFBVUEsT0FBTyxDQUFDRSxJQUFsQjtBQUFmO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBREYsZUFFRTtBQUFBLDBCQUFLRixPQUFPLENBQUNHO0FBQWI7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFGRixlQUdFO0FBQUEsMEJBQUlILE9BQU8sQ0FBQ0k7QUFBWjtBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQUhGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUxGLGFBQ09KLE9BQU8sQ0FBQ0MsRUFEZjtBQUFBO0FBQUE7QUFBQTtBQUFBLG1CQUQyQjtBQUFBLFNBQTdCO0FBNUJOO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFiRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsYUFMRixFQTZER0gsS0FBSyxnQkFDSjtBQUFBLDhCQUNFO0FBQUssaUJBQVMsRUFBQztBQUFmO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFERixlQUVFO0FBQUssaUJBQVMsRUFBQztBQUFmO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFGRjtBQUFBLG9CQURJLEdBS0YsSUFsRU47QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBREY7QUFzRUQsQ0F2RUQ7O0tBQU1GO0FBeUVOLCtEQUFlQSxRQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL1NlcnZpY2VzL3NlcnZpY2VzLmpzeD8yZWU0Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IGZlYXR1cmVzRGF0YSBmcm9tIFwiLi4vLi4vZGF0YS9zZWN0aW9ucy9mZWF0dXJlcy5qc29uXCI7XHJcblxyXG5jb25zdCBTZXJ2aWNlcyA9ICh7IHN0eWxlLCBsaW5lcyB9KSA9PiB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uXHJcbiAgICAgIGNsYXNzTmFtZT17YHNlcnZpY2VzIGJvcmRzIHNlY3Rpb24tcGFkZGluZyAke1xyXG4gICAgICAgIHN0eWxlID09PSBcIjRpdGVtXCIgPyBcImxmaWNvblwiIDogbGluZXMgPyBcIlwiIDogXCJwdC0wXCJcclxuICAgICAgfWB9XHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOCBjb2wtbWQtMTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWMtaGVhZCAgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8aDYgY2xhc3NOYW1lPVwid293IGZhZGVJblwiIGRhdGEtd293LWRlbGF5PVwiLjVzXCI+XHJcbiAgICAgICAgICAgICAgICBCZXN0IEZlYXR1cmVzXHJcbiAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwid293IGNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgIFdlIGFyZSBhIG5ldyBidXNpbmVzcyBkZXZlbG9wbWVudCBhZ2VuY3lcclxuICAgICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICB7c3R5bGUgPT09IFwiNGl0ZW1cIlxyXG4gICAgICAgICAgICA/IGZlYXR1cmVzRGF0YS5tYXAoKGZlYXR1cmUpID0+IChcclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAga2V5PXtmZWF0dXJlLmlkfVxyXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJjb2wtbGctNiB3b3cgZmFkZUluTGVmdFwiXHJcbiAgICAgICAgICAgICAgICAgIGRhdGEtd293LWRlbGF5PXtgJHtcclxuICAgICAgICAgICAgICAgICAgICBmZWF0dXJlLmlkID09IDFcclxuICAgICAgICAgICAgICAgICAgICAgID8gXCIuNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICA6IGZlYXR1cmUuaWQgPT09IDJcclxuICAgICAgICAgICAgICAgICAgICAgID8gXCIuN1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICA6IGZlYXR1cmUuaWQgPT09IDNcclxuICAgICAgICAgICAgICAgICAgICAgID8gXCIuOVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICA6IFwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgfXNgfVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0tYm94XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17YGljb24gJHtmZWF0dXJlLmljb259YH0+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGg2PntmZWF0dXJlLnRpdGxlfTwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cD57ZmVhdHVyZS5jb250ZW50fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICApKVxyXG4gICAgICAgICAgICA6IC8vIG1heCBpdGVtIDMgaW4gSG9tZSBwYWdlXHJcbiAgICAgICAgICAgICAgZmVhdHVyZXNEYXRhLnNsaWNlKDAsIDMpLm1hcCgoZmVhdHVyZSkgPT4gKFxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICBrZXk9e2ZlYXR1cmUuaWR9XHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImNvbC1sZy00IHdvdyBmYWRlSW5MZWZ0XCJcclxuICAgICAgICAgICAgICAgICAgZGF0YS13b3ctZGVsYXk9XCIuNXNcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0tYm94IG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2BpY29uICR7ZmVhdHVyZS5pY29ufWB9Pjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+e2ZlYXR1cmUudGl0bGV9PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICA8cD57ZmVhdHVyZS5jb250ZW50fTwvcD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICApKX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIHtsaW5lcyA/IChcclxuICAgICAgICA8PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsaW5lIHRvcCBsZWZ0XCI+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxpbmUgYm90dG9tIHJpZ2h0XCI+PC9kaXY+XHJcbiAgICAgICAgPC8+XHJcbiAgICAgICkgOiBudWxsfVxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBTZXJ2aWNlcztcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiZmVhdHVyZXNEYXRhIiwiU2VydmljZXMiLCJzdHlsZSIsImxpbmVzIiwibWFwIiwiZmVhdHVyZSIsImlkIiwiaWNvbiIsInRpdGxlIiwiY29udGVudCIsInNsaWNlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Services/services.jsx\n"); + +/***/ }) + +}); \ No newline at end of file diff --git a/.next/static/webpack/pages/about.0b7a364af5a62ce6.hot-update.js b/.next/static/webpack/pages/about.0b7a364af5a62ce6.hot-update.js new file mode 100644 index 0000000..b1a382d --- /dev/null +++ b/.next/static/webpack/pages/about.0b7a364af5a62ce6.hot-update.js @@ -0,0 +1,22 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("pages/about",{ + +/***/ "./src/components/Footer/footer.jsx": +/*!******************************************!*\ + !*** ./src/components/Footer/footer.jsx ***! + \******************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _data_app_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../data/app.json */ \"./src/data/app.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Footer\\\\footer.jsx\",\n _this = undefined;\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\nvar Footer = function Footer(_ref) {\n var hideBGCOLOR = _ref.hideBGCOLOR;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"footer\", {\n className: \"\".concat(!hideBGCOLOR ? \"sub-bg\" : \"\"),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item md-mb50\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"title\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h5\", {\n children: \"Contact Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"ul\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-map-marker\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Officeal Address\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"Baghdad Street, Al Dana area, Abu Dhabi, United Arab Emirates\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-mail\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Email Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"hello@businesshub.abudhabi\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-call\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Call Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"+971 26340404\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"logo\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.footerLogo,\n style: {\n width: \"150px\"\n },\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"social\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-facebook-f\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-twitter\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 59,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-instagram\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 61,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-youtube\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"copy-right\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"\\xA9 2024, 2024 Business HUB international investment - All Rights Reserved.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 5\n }, _this);\n};\n\n_c = Footer;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Footer);\n\nvar _c;\n\n$RefreshReg$(_c, \"Footer\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QkFBSSxFQUFDLElBQVI7QUFBQSx1Q0FDRTtBQUFHLDJCQUFTLEVBQUM7QUFBYjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFQRixlQVVFO0FBQUcsb0JBQUksRUFBQyxJQUFSO0FBQUEsdUNBQ0U7QUFBRywyQkFBUyxFQUFDO0FBQWI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBVkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQVJGLGVBc0JFO0FBQUssdUJBQVMsRUFBQyxZQUFmO0FBQUEscUNBQ0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQXRCRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQW5DRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxXQURGO0FBeUVELENBMUVEOztLQUFNSDtBQTRFTiwrREFBZUEsTUFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tcG9uZW50cy9Gb290ZXIvZm9vdGVyLmpzeD9mMzk0Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBuZXh0L25leHQvbm8taW1nLWVsZW1lbnQgKi9cclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgTGluayBmcm9tIFwibmV4dC9saW5rXCI7XHJcbmltcG9ydCBhcHBEYXRhIGZyb20gXCIuLi8uLi9kYXRhL2FwcC5qc29uXCI7XHJcblxyXG5jb25zdCBGb290ZXIgPSAoeyBoaWRlQkdDT0xPUiB9KSA9PiB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxmb290ZXIgY2xhc3NOYW1lPXtgJHshaGlkZUJHQ09MT1IgPyBcInN1Yi1iZ1wiIDogXCJcIn1gfT5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctNFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGl0bGVcIj5cclxuICAgICAgICAgICAgICAgIDxoNT5Db250YWN0IFVzPC9oNT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24gcGUtN3MtbWFwLW1hcmtlclwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg2Pk9mZmljZWFsIEFkZHJlc3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgQmFnaGRhZCBTdHJlZXQsIEFsIERhbmEgYXJlYSwgQWJ1IERoYWJpLCBVbml0ZWQgQXJhYlxyXG4gICAgICAgICAgICAgICAgICAgICAgRW1pcmF0ZXNcclxuICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvbiBwZS03cy1tYWlsXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+RW1haWwgVXM8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPmhlbGxvQGJ1c2luZXNzaHViLmFidWRoYWJpPC9wPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24gcGUtN3MtY2FsbFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg2PkNhbGwgVXM8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPis5NzEgMjYzNDA0MDQ8L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsb2dvXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgICAgIHNyYz17YXBwRGF0YS5mb290ZXJMb2dvfVxyXG4gICAgICAgICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogXCIxNTBweFwiIH19XHJcbiAgICAgICAgICAgICAgICAgIGFsdD1cIlwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic29jaWFsXCI+XHJcbiAgICAgICAgICAgICAgICA8YSBocmVmPVwiIzBcIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwiZmFiIGZhLWZhY2Vib29rLWZcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICA8YSBocmVmPVwiIzBcIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwiZmFiIGZhLXR3aXR0ZXJcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICA8YSBocmVmPVwiIzBcIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwiZmFiIGZhLWluc3RhZ3JhbVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYWIgZmEteW91dHViZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvcHktcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICDCqSAyMDI0LCAyMDI0IEJ1c2luZXNzIEhVQiBpbnRlcm5hdGlvbmFsIGludmVzdG1lbnQgLSBBbGxcclxuICAgICAgICAgICAgICAgICAgUmlnaHRzIFJlc2VydmVkLlxyXG4gICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZm9vdGVyPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBGb290ZXI7XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIkxpbmsiLCJhcHBEYXRhIiwiRm9vdGVyIiwiaGlkZUJHQ09MT1IiLCJmb290ZXJMb2dvIiwid2lkdGgiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/components/Footer/footer.jsx\n"); + +/***/ }) + +}); \ No newline at end of file diff --git a/.next/static/webpack/pages/about.14b03416c56e5a2c.hot-update.js b/.next/static/webpack/pages/about.14b03416c56e5a2c.hot-update.js new file mode 100644 index 0000000..a6dcac2 --- /dev/null +++ b/.next/static/webpack/pages/about.14b03416c56e5a2c.hot-update.js @@ -0,0 +1,22 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("pages/about",{ + +/***/ "./src/components/Team/team.jsx": +/*!**************************************!*\ + !*** ./src/components/Team/team.jsx ***! + \**************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/teamSkillsProgress */ \"./src/common/teamSkillsProgress.js\");\n/* harmony import */ var _common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/tooltipEffect */ \"./src/common/tooltipEffect.js\");\n/* harmony import */ var _data_sections_team_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../data/sections/team.json */ \"./src/data/sections/team.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Team\\\\team.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nvar Team = function Team() {\n _s();\n\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n (0,_common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n setTimeout(function () {\n (0,_common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__[\"default\"])();\n }, 1000);\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"section\", {\n className: \"team section-padding\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Our Team\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: \"Our team will simplify business setup in the UAE\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container-fluid\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/01.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/02.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/03.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 117,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/04.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 5\n }, _this);\n};\n\n_s(Team, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = Team;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Team);\n\nvar _c;\n\n$RefreshReg$(_c, \"Team\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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X0UvLi9zcmMvY29tcG9uZW50cy9UZWFtL3RlYW0uanN4P2I2OGUiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB0ZWFtU2tpbGxzUHJvZ3Jlc3MgZnJvbSBcIi4uLy4uL2NvbW1vbi90ZWFtU2tpbGxzUHJvZ3Jlc3NcIjtcclxuaW1wb3J0IHRvb2x0aXBFZmZlY3QgZnJvbSBcIi4uLy4uL2NvbW1vbi90b29sdGlwRWZmZWN0XCI7XHJcbmltcG9ydCB0ZWFtc0RhdGUgZnJvbSBcIi4uLy4uL2RhdGEvc2VjdGlvbnMvdGVhbS5qc29uXCI7XHJcblxyXG5jb25zdCBUZWFtID0gKCkgPT4ge1xyXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICB0ZWFtU2tpbGxzUHJvZ3Jlc3MoKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0b29sdGlwRWZmZWN0KCk7XHJcbiAgICB9LCAxMDAwKTtcclxuICB9LCBbXSk7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInRlYW0gc2VjdGlvbi1wYWRkaW5nXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOCBjb2wtbWQtMTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWMtaGVhZCB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNiBjbGFzc05hbWU9XCJ3b3cgZmFkZUluXCIgZGF0YS13b3ctZGVsYXk9XCIuNXNcIj5cclxuICAgICAgICAgICAgICAgIE91ciBUZWFtXHJcbiAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwid293IGNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgIE91ciB0ZWFtIHdpbGwgc2ltcGxpZnkgYnVzaW5lc3Mgc2V0dXAgaW4gdGhlIFVBRVxyXG4gICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wMS53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUxXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDRU8gTWFuYWdlciBDRU8gTWFuYWdlciBDRU8gTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzAyLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTJcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIHNtLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDMud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlM1wiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDQud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlNFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBUZWFtO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJ0ZWFtU2tpbGxzUHJvZ3Jlc3MiLCJ0b29sdGlwRWZmZWN0IiwidGVhbXNEYXRlIiwiVGVhbSIsInVzZUVmZmVjdCIsInNldFRpbWVvdXQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/components/Team/team.jsx\n"); + +/***/ }) + +}); \ No newline at end of file diff --git a/.next/static/webpack/pages/about.27fbdb223e7cc361.hot-update.js b/.next/static/webpack/pages/about.27fbdb223e7cc361.hot-update.js new file mode 100644 index 0000000..64cf44e --- /dev/null +++ b/.next/static/webpack/pages/about.27fbdb223e7cc361.hot-update.js @@ -0,0 +1,22 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("pages/about",{ + +/***/ "./src/components/Team/team.jsx": +/*!**************************************!*\ + !*** ./src/components/Team/team.jsx ***! + \**************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/teamSkillsProgress */ \"./src/common/teamSkillsProgress.js\");\n/* harmony import */ var _common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/tooltipEffect */ \"./src/common/tooltipEffect.js\");\n/* harmony import */ var _data_sections_team_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../data/sections/team.json */ \"./src/data/sections/team.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Team\\\\team.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nvar Team = function Team() {\n _s();\n\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n (0,_common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n setTimeout(function () {\n (0,_common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__[\"default\"])();\n }, 1000);\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"section\", {\n className: \"team section-padding\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Our Team\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: \"Our team will simplify business setup in the UAE\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container-fluid\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/01.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/02.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/03.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 117,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/04.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/05.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/06.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/07.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 292,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 291,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 297,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 299,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 298,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 280,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 275,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/08.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 319,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 333,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 332,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 338,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 340,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 339,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 321,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 320,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 318,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 317,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 316,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/09.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 361,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 375,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 374,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 380,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 382,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 381,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 363,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 362,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 360,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 359,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 358,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/10.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 401,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 415,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 414,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 420,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 422,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 421,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 403,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 402,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 400,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 399,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 398,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/11.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 441,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 455,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 454,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 460,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 462,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 461,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 443,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 442,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 440,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 439,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 438,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/12.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 482,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 496,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 495,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 501,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 503,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 502,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 484,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 483,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 481,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 480,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 479,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 357,\n columnNumber: 9\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 5\n }, _this);\n};\n\n_s(Team, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = Team;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Team);\n\nvar _c;\n\n$RefreshReg$(_c, \"Team\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFBQSxXQURGO0FBNmZELENBcGdCRDs7R0FBTUU7O0tBQUFBO0FBc2dCTiwrREFBZUEsSUFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tcG9uZW50cy9UZWFtL3RlYW0uanN4P2I2OGUiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB0ZWFtU2tpbGxzUHJvZ3Jlc3MgZnJvbSBcIi4uLy4uL2NvbW1vbi90ZWFtU2tpbGxzUHJvZ3Jlc3NcIjtcclxuaW1wb3J0IHRvb2x0aXBFZmZlY3QgZnJvbSBcIi4uLy4uL2NvbW1vbi90b29sdGlwRWZmZWN0XCI7XHJcbmltcG9ydCB0ZWFtc0RhdGUgZnJvbSBcIi4uLy4uL2RhdGEvc2VjdGlvbnMvdGVhbS5qc29uXCI7XHJcblxyXG5jb25zdCBUZWFtID0gKCkgPT4ge1xyXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICB0ZWFtU2tpbGxzUHJvZ3Jlc3MoKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0b29sdGlwRWZmZWN0KCk7XHJcbiAgICB9LCAxMDAwKTtcclxuICB9LCBbXSk7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInRlYW0gc2VjdGlvbi1wYWRkaW5nXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOCBjb2wtbWQtMTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWMtaGVhZCB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNiBjbGFzc05hbWU9XCJ3b3cgZmFkZUluXCIgZGF0YS13b3ctZGVsYXk9XCIuNXNcIj5cclxuICAgICAgICAgICAgICAgIE91ciBUZWFtXHJcbiAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwid293IGNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgIE91ciB0ZWFtIHdpbGwgc2ltcGxpZnkgYnVzaW5lc3Mgc2V0dXAgaW4gdGhlIFVBRVxyXG4gICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wMS53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUxXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDRU8gTWFuYWdlciBDRU8gTWFuYWdlciBDRU8gTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzAyLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTJcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIHNtLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDMud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlM1wiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDQud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlNFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzA1LndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTFcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgxXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENFTyBNYW5hZ2VyIENFTyBNYW5hZ2VyIENFTyBNYW5hZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDYud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlMlwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDJcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJpb3IgRGVzaWduZXIgSW50ZXJpb3IgRGVzaWduZXIgSW50ZXJpb3IgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgc20tbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wNy53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUzXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wOC53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGU0XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoNFwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDbGllbnQgTWFuYWdlciBDbGllbnQgTWFuYWdlciBDbGllbnQgTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDkud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlMVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ0VPIE1hbmFnZXIgQ0VPIE1hbmFnZXIgQ0VPIE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8xMC53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMlwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBJbnRlcmlvciBEZXNpZ25lciBJbnRlcmlvciBEZXNpZ25lciBJbnRlcmlvciBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBzbS1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzExLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTNcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzEyLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTRcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGg0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGg0XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGg0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENsaWVudCBNYW5hZ2VyIENsaWVudCBNYW5hZ2VyIENsaWVudCBNYW5hZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvc2VjdGlvbj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgVGVhbTtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwidGVhbVNraWxsc1Byb2dyZXNzIiwidG9vbHRpcEVmZmVjdCIsInRlYW1zRGF0ZSIsIlRlYW0iLCJ1c2VFZmZlY3QiLCJzZXRUaW1lb3V0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Team/team.jsx\n"); + +/***/ }) + +}); \ No newline at end of file diff --git a/.next/static/webpack/pages/about.391c934f4fe378ea.hot-update.js b/.next/static/webpack/pages/about.391c934f4fe378ea.hot-update.js new file mode 100644 index 0000000..64cf44e --- /dev/null +++ b/.next/static/webpack/pages/about.391c934f4fe378ea.hot-update.js @@ -0,0 +1,22 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("pages/about",{ + +/***/ "./src/components/Team/team.jsx": +/*!**************************************!*\ + !*** ./src/components/Team/team.jsx ***! + \**************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/teamSkillsProgress */ \"./src/common/teamSkillsProgress.js\");\n/* harmony import */ var _common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/tooltipEffect */ \"./src/common/tooltipEffect.js\");\n/* harmony import */ var _data_sections_team_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../data/sections/team.json */ \"./src/data/sections/team.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Team\\\\team.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nvar Team = function Team() {\n _s();\n\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n (0,_common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n setTimeout(function () {\n (0,_common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__[\"default\"])();\n }, 1000);\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"section\", {\n className: \"team section-padding\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Our Team\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: \"Our team will simplify business setup in the UAE\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container-fluid\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/01.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/02.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/03.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 117,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/04.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/05.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/06.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/07.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 292,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 291,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 297,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 299,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 298,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 280,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 275,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/08.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 319,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 333,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 332,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 338,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 340,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 339,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 321,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 320,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 318,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 317,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 316,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/09.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 361,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 375,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 374,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 380,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 382,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 381,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 363,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 362,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 360,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 359,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 358,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/10.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 401,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 415,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 414,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 420,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 422,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 421,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 403,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 402,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 400,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 399,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 398,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/11.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 441,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 455,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 454,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 460,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 462,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 461,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 443,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 442,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 440,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 439,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 438,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/12.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 482,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 496,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 495,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 501,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 503,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 502,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 484,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 483,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 481,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 480,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 479,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 357,\n columnNumber: 9\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 5\n }, _this);\n};\n\n_s(Team, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = Team;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Team);\n\nvar _c;\n\n$RefreshReg$(_c, \"Team\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFBQSxXQURGO0FBNmZELENBcGdCRDs7R0FBTUU7O0tBQUFBO0FBc2dCTiwrREFBZUEsSUFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tcG9uZW50cy9UZWFtL3RlYW0uanN4P2I2OGUiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB0ZWFtU2tpbGxzUHJvZ3Jlc3MgZnJvbSBcIi4uLy4uL2NvbW1vbi90ZWFtU2tpbGxzUHJvZ3Jlc3NcIjtcclxuaW1wb3J0IHRvb2x0aXBFZmZlY3QgZnJvbSBcIi4uLy4uL2NvbW1vbi90b29sdGlwRWZmZWN0XCI7XHJcbmltcG9ydCB0ZWFtc0RhdGUgZnJvbSBcIi4uLy4uL2RhdGEvc2VjdGlvbnMvdGVhbS5qc29uXCI7XHJcblxyXG5jb25zdCBUZWFtID0gKCkgPT4ge1xyXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICB0ZWFtU2tpbGxzUHJvZ3Jlc3MoKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0b29sdGlwRWZmZWN0KCk7XHJcbiAgICB9LCAxMDAwKTtcclxuICB9LCBbXSk7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInRlYW0gc2VjdGlvbi1wYWRkaW5nXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOCBjb2wtbWQtMTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWMtaGVhZCB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNiBjbGFzc05hbWU9XCJ3b3cgZmFkZUluXCIgZGF0YS13b3ctZGVsYXk9XCIuNXNcIj5cclxuICAgICAgICAgICAgICAgIE91ciBUZWFtXHJcbiAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwid293IGNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgIE91ciB0ZWFtIHdpbGwgc2ltcGxpZnkgYnVzaW5lc3Mgc2V0dXAgaW4gdGhlIFVBRVxyXG4gICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wMS53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUxXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDRU8gTWFuYWdlciBDRU8gTWFuYWdlciBDRU8gTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzAyLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTJcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIHNtLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDMud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlM1wiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDQud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlNFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzA1LndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTFcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgxXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENFTyBNYW5hZ2VyIENFTyBNYW5hZ2VyIENFTyBNYW5hZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDYud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlMlwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDJcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJpb3IgRGVzaWduZXIgSW50ZXJpb3IgRGVzaWduZXIgSW50ZXJpb3IgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgc20tbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wNy53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUzXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wOC53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGU0XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoNFwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDbGllbnQgTWFuYWdlciBDbGllbnQgTWFuYWdlciBDbGllbnQgTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDkud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlMVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ0VPIE1hbmFnZXIgQ0VPIE1hbmFnZXIgQ0VPIE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8xMC53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMlwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBJbnRlcmlvciBEZXNpZ25lciBJbnRlcmlvciBEZXNpZ25lciBJbnRlcmlvciBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBzbS1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzExLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTNcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzEyLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTRcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGg0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGg0XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGg0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENsaWVudCBNYW5hZ2VyIENsaWVudCBNYW5hZ2VyIENsaWVudCBNYW5hZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvc2VjdGlvbj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgVGVhbTtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwidGVhbVNraWxsc1Byb2dyZXNzIiwidG9vbHRpcEVmZmVjdCIsInRlYW1zRGF0ZSIsIlRlYW0iLCJ1c2VFZmZlY3QiLCJzZXRUaW1lb3V0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Team/team.jsx\n"); + +/***/ }) + +}); \ No newline at end of file diff --git a/.next/static/webpack/pages/about.505f5fcbf6bfc6f2.hot-update.js b/.next/static/webpack/pages/about.505f5fcbf6bfc6f2.hot-update.js new file mode 100644 index 0000000..dd0e009 --- /dev/null +++ b/.next/static/webpack/pages/about.505f5fcbf6bfc6f2.hot-update.js @@ -0,0 +1,22 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("pages/about",{ + +/***/ "./src/components/Footer/footer.jsx": +/*!******************************************!*\ + !*** ./src/components/Footer/footer.jsx ***! + \******************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _data_app_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../data/app.json */ \"./src/data/app.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Footer\\\\footer.jsx\",\n _this = undefined;\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\nvar Footer = function Footer(_ref) {\n var hideBGCOLOR = _ref.hideBGCOLOR;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"footer\", {\n className: \"\".concat(!hideBGCOLOR ? \"sub-bg\" : \"\"),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item md-mb50\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"title\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h5\", {\n children: \"Contact Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"ul\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-map-marker\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Officeal Address\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"Baghdad Street, Al Dana area, Abu Dhabi, United Arab Emirates\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-mail\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Email Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"hello@businesshub.abudhabi\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-call\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Call Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"+971 26340404\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"logo\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.footerLogo,\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"social\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-facebook-f\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 51,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-twitter\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-instagram\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-youtube\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 61,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 60,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"copy-right\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"\\xA9 2024, 2024 Business HUB international investment - All Rights Reserved.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 5\n }, _this);\n};\n\n_c = Footer;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Footer);\n\nvar _c;\n\n$RefreshReg$(_c, \"Footer\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFQRixlQVVFO0FBQUcsb0JBQUksRUFBQyxJQUFSO0FBQUEsdUNBQ0U7QUFBRywyQkFBUyxFQUFDO0FBQWI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBVkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQUpGLGVBa0JFO0FBQUssdUJBQVMsRUFBQyxZQUFmO0FBQUEscUNBQ0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQWxCRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQW5DRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxXQURGO0FBcUVELENBdEVEOztLQUFNQztBQXdFTiwrREFBZUEsTUFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tcG9uZW50cy9Gb290ZXIvZm9vdGVyLmpzeD9mMzk0Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBuZXh0L25leHQvbm8taW1nLWVsZW1lbnQgKi9cclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgTGluayBmcm9tIFwibmV4dC9saW5rXCI7XHJcbmltcG9ydCBhcHBEYXRhIGZyb20gXCIuLi8uLi9kYXRhL2FwcC5qc29uXCI7XHJcblxyXG5jb25zdCBGb290ZXIgPSAoeyBoaWRlQkdDT0xPUiB9KSA9PiB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxmb290ZXIgY2xhc3NOYW1lPXtgJHshaGlkZUJHQ09MT1IgPyBcInN1Yi1iZ1wiIDogXCJcIn1gfT5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctNFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGl0bGVcIj5cclxuICAgICAgICAgICAgICAgIDxoNT5Db250YWN0IFVzPC9oNT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24gcGUtN3MtbWFwLW1hcmtlclwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg2Pk9mZmljZWFsIEFkZHJlc3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgQmFnaGRhZCBTdHJlZXQsIEFsIERhbmEgYXJlYSwgQWJ1IERoYWJpLCBVbml0ZWQgQXJhYlxyXG4gICAgICAgICAgICAgICAgICAgICAgRW1pcmF0ZXNcclxuICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvbiBwZS03cy1tYWlsXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+RW1haWwgVXM8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPmhlbGxvQGJ1c2luZXNzaHViLmFidWRoYWJpPC9wPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24gcGUtN3MtY2FsbFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg2PkNhbGwgVXM8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPis5NzEgMjYzNDA0MDQ8L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsb2dvXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz17YXBwRGF0YS5mb290ZXJMb2dvfSBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic29jaWFsXCI+XHJcbiAgICAgICAgICAgICAgICA8YSBocmVmPVwiIzBcIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwiZmFiIGZhLWZhY2Vib29rLWZcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICA8YSBocmVmPVwiIzBcIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwiZmFiIGZhLXR3aXR0ZXJcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICA8YSBocmVmPVwiIzBcIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwiZmFiIGZhLWluc3RhZ3JhbVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYWIgZmEteW91dHViZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvcHktcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICDCqSAyMDI0LCAyMDI0IEJ1c2luZXNzIEhVQiBpbnRlcm5hdGlvbmFsIGludmVzdG1lbnQgLSBBbGxcclxuICAgICAgICAgICAgICAgICAgUmlnaHRzIFJlc2VydmVkLlxyXG4gICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZm9vdGVyPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBGb290ZXI7XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIkxpbmsiLCJhcHBEYXRhIiwiRm9vdGVyIiwiaGlkZUJHQ09MT1IiLCJmb290ZXJMb2dvIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Footer/footer.jsx\n"); + +/***/ }) + +}); \ No newline at end of file diff --git a/.next/static/webpack/pages/about.69b0909539c40de9.hot-update.js b/.next/static/webpack/pages/about.69b0909539c40de9.hot-update.js new file mode 100644 index 0000000..c159a51 --- /dev/null +++ b/.next/static/webpack/pages/about.69b0909539c40de9.hot-update.js @@ -0,0 +1,22 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("pages/about",{ + +/***/ "./src/components/Footer/footer.jsx": +/*!******************************************!*\ + !*** ./src/components/Footer/footer.jsx ***! + \******************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _data_app_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../data/app.json */ \"./src/data/app.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Footer\\\\footer.jsx\",\n _this = undefined;\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\nvar Footer = function Footer(_ref) {\n var hideBGCOLOR = _ref.hideBGCOLOR;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"footer\", {\n className: \"\".concat(!hideBGCOLOR ? \"sub-bg\" : \"\"),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item md-mb50\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"title\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h5\", {\n children: \"Contact Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"ul\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-map-marker\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Officeal Address\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"Baghdad Street, Al Dana area, Abu Dhabi, United Arab Emirates\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-mail\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Email Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"hello@businesshub.abudhabi\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-call\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Call Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"+971 26340404\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"logo\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.footerLogo,\n style: {\n width: \"150px\"\n },\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"social\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"https://www.facebook.com/profile.php?id=100057392223857 \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-facebook-f\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"https://www.linkedin.com/company/business-hub-international-investment\\r\\n\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-linkedin\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"https://www.instagram.com/businesshubi/?igsh=MTJ3ejZneWdmbTM3bQ%3D%3D \\r\\n\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-instagram\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"copy-right\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"\\xA9 2024, 2024 Business HUB international investment - All Rights Reserved.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 5\n }, _this);\n};\n\n_c = Footer;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Footer);\n\nvar _c;\n\n$RefreshReg$(_c, \"Footer\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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LG9CQUFJLEVBQUMsNEVBRFA7QUFBQSx1Q0FJRTtBQUFHLDJCQUFTLEVBQUM7QUFBYjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSkY7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFWRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBUkYsZUF5QkU7QUFBSyx1QkFBUyxFQUFDLFlBQWY7QUFBQSxxQ0FDRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBekJGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBbkNGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBREY7QUE0RUQsQ0E3RUQ7O0tBQU1IO0FBK0VOLCtEQUFlQSxNQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL0Zvb3Rlci9mb290ZXIuanN4P2YzOTQiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcclxuaW1wb3J0IGFwcERhdGEgZnJvbSBcIi4uLy4uL2RhdGEvYXBwLmpzb25cIjtcclxuXHJcbmNvbnN0IEZvb3RlciA9ICh7IGhpZGVCR0NPTE9SIH0pID0+IHtcclxuICByZXR1cm4gKFxyXG4gICAgPGZvb3RlciBjbGFzc05hbWU9e2AkeyFoaWRlQkdDT0xPUiA/IFwic3ViLWJnXCIgOiBcIlwifWB9PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy00XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgPGg1PkNvbnRhY3QgVXM8L2g1PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDx1bD5cclxuICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvbiBwZS03cy1tYXAtbWFya2VyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+T2ZmaWNlYWwgQWRkcmVzczwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICBCYWdoZGFkIFN0cmVldCwgQWwgRGFuYSBhcmVhLCBBYnUgRGhhYmksIFVuaXRlZCBBcmFiXHJcbiAgICAgICAgICAgICAgICAgICAgICBFbWlyYXRlc1xyXG4gICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJpY29uIHBlLTdzLW1haWxcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoNj5FbWFpbCBVczwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+aGVsbG9AYnVzaW5lc3NodWIuYWJ1ZGhhYmk8L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvbiBwZS03cy1jYWxsXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+Q2FsbCBVczwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+Kzk3MSAyNjM0MDQwNDwvcD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctNFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxvZ29cIj5cclxuICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgc3JjPXthcHBEYXRhLmZvb3RlckxvZ299XHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IHdpZHRoOiBcIjE1MHB4XCIgfX1cclxuICAgICAgICAgICAgICAgICAgYWx0PVwiXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzb2NpYWxcIj5cclxuICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJodHRwczovL3d3dy5mYWNlYm9vay5jb20vcHJvZmlsZS5waHA/aWQ9MTAwMDU3MzkyMjIzODU3IFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYWIgZmEtZmFjZWJvb2stZlwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL3d3dy5saW5rZWRpbi5jb20vY29tcGFueS9idXNpbmVzcy1odWItaW50ZXJuYXRpb25hbC1pbnZlc3RtZW50XHJcblwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhYiBmYS1saW5rZWRpblwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL3d3dy5pbnN0YWdyYW0uY29tL2J1c2luZXNzaHViaS8/aWdzaD1NVEozZWpabmVXZG1iVE0zYlElM0QlM0QgXHJcblwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhYiBmYS1pbnN0YWdyYW1cIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb3B5LXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgwqkgMjAyNCwgMjAyNCBCdXNpbmVzcyBIVUIgaW50ZXJuYXRpb25hbCBpbnZlc3RtZW50IC0gQWxsXHJcbiAgICAgICAgICAgICAgICAgIFJpZ2h0cyBSZXNlcnZlZC5cclxuICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Zvb3Rlcj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgRm9vdGVyO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJMaW5rIiwiYXBwRGF0YSIsIkZvb3RlciIsImhpZGVCR0NPTE9SIiwiZm9vdGVyTG9nbyIsIndpZHRoIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Footer/footer.jsx\n"); + +/***/ }) + +}); \ No newline at end of file diff --git a/.next/static/webpack/pages/about.6d4205e34873ba67.hot-update.js b/.next/static/webpack/pages/about.6d4205e34873ba67.hot-update.js new file mode 100644 index 0000000..3098016 --- /dev/null +++ b/.next/static/webpack/pages/about.6d4205e34873ba67.hot-update.js @@ -0,0 +1,22 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("pages/about",{ + +/***/ "./src/components/Team/team.jsx": +/*!**************************************!*\ + !*** ./src/components/Team/team.jsx ***! + \**************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/teamSkillsProgress */ \"./src/common/teamSkillsProgress.js\");\n/* harmony import */ var _common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/tooltipEffect */ \"./src/common/tooltipEffect.js\");\n/* harmony import */ var _data_sections_team_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../data/sections/team.json */ \"./src/data/sections/team.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Team\\\\team.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nvar Team = function Team() {\n _s();\n\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n (0,_common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n setTimeout(function () {\n (0,_common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__[\"default\"])();\n }, 1000);\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"section\", {\n className: \"team section-padding\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Our Team\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: \"Our team will simplify business setup in the UAE\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container-fluid\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/01.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/02.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/03.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 117,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/04.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/05.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/06.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/07.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 292,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 291,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 297,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 299,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 298,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 280,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 275,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/08.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 319,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 333,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 332,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 338,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 340,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 339,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 321,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 320,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 318,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 317,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 316,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/09.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 361,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 375,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 374,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 380,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 382,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 381,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 363,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 362,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 360,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 359,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 358,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/10.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 401,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 415,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 414,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 420,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 422,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 421,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 403,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 402,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 400,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 399,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 398,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/11.webp\",\n style: {\n borderRadius: \"100%\"\n },\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 441,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 459,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 458,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 464,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 466,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 465,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 447,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 446,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 440,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 439,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 438,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/12.webp\",\n style: {\n borderRadius: \"100%\"\n },\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 486,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 504,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 503,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 509,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 511,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 510,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 492,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 491,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 485,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 484,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 483,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 357,\n columnNumber: 9\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 5\n }, _this);\n};\n\n_s(Team, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = Team;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Team);\n\nvar _c;\n\n$RefreshReg$(_c, \"Team\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFBQTtBQUFBLGlCQTlIRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUF2VUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBZkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBREY7QUFxZ0JELENBNWdCRDs7R0FBTUg7O0tBQUFBO0FBOGdCTiwrREFBZUEsSUFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tcG9uZW50cy9UZWFtL3RlYW0uanN4P2I2OGUiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB0ZWFtU2tpbGxzUHJvZ3Jlc3MgZnJvbSBcIi4uLy4uL2NvbW1vbi90ZWFtU2tpbGxzUHJvZ3Jlc3NcIjtcclxuaW1wb3J0IHRvb2x0aXBFZmZlY3QgZnJvbSBcIi4uLy4uL2NvbW1vbi90b29sdGlwRWZmZWN0XCI7XHJcbmltcG9ydCB0ZWFtc0RhdGUgZnJvbSBcIi4uLy4uL2RhdGEvc2VjdGlvbnMvdGVhbS5qc29uXCI7XHJcblxyXG5jb25zdCBUZWFtID0gKCkgPT4ge1xyXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICB0ZWFtU2tpbGxzUHJvZ3Jlc3MoKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0b29sdGlwRWZmZWN0KCk7XHJcbiAgICB9LCAxMDAwKTtcclxuICB9LCBbXSk7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInRlYW0gc2VjdGlvbi1wYWRkaW5nXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOCBjb2wtbWQtMTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWMtaGVhZCB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNiBjbGFzc05hbWU9XCJ3b3cgZmFkZUluXCIgZGF0YS13b3ctZGVsYXk9XCIuNXNcIj5cclxuICAgICAgICAgICAgICAgIE91ciBUZWFtXHJcbiAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwid293IGNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgIE91ciB0ZWFtIHdpbGwgc2ltcGxpZnkgYnVzaW5lc3Mgc2V0dXAgaW4gdGhlIFVBRVxyXG4gICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wMS53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUxXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDRU8gTWFuYWdlciBDRU8gTWFuYWdlciBDRU8gTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzAyLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTJcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIHNtLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDMud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlM1wiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDQud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlNFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzA1LndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTFcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgxXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENFTyBNYW5hZ2VyIENFTyBNYW5hZ2VyIENFTyBNYW5hZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDYud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlMlwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDJcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJpb3IgRGVzaWduZXIgSW50ZXJpb3IgRGVzaWduZXIgSW50ZXJpb3IgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgc20tbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wNy53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUzXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wOC53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGU0XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoNFwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDbGllbnQgTWFuYWdlciBDbGllbnQgTWFuYWdlciBDbGllbnQgTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDkud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlMVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ0VPIE1hbmFnZXIgQ0VPIE1hbmFnZXIgQ0VPIE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8xMC53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMlwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBJbnRlcmlvciBEZXNpZ25lciBJbnRlcmlvciBEZXNpZ25lciBJbnRlcmlvciBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBzbS1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgc3JjPVwiL2ltZy90ZWFtLzExLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgICBzdHlsZT17eyBib3JkZXJSYWRpdXM6IFwiMTAwJVwiIH19XHJcbiAgICAgICAgICAgICAgICAgIGFsdD1cIlwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTNcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgc3JjPVwiL2ltZy90ZWFtLzEyLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgICBzdHlsZT17eyBib3JkZXJSYWRpdXM6IFwiMTAwJVwiIH19XHJcbiAgICAgICAgICAgICAgICAgIGFsdD1cIlwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTRcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGg0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGg0XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGg0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENsaWVudCBNYW5hZ2VyIENsaWVudCBNYW5hZ2VyIENsaWVudCBNYW5hZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvc2VjdGlvbj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgVGVhbTtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwidGVhbVNraWxsc1Byb2dyZXNzIiwidG9vbHRpcEVmZmVjdCIsInRlYW1zRGF0ZSIsIlRlYW0iLCJ1c2VFZmZlY3QiLCJzZXRUaW1lb3V0IiwiYm9yZGVyUmFkaXVzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Team/team.jsx\n"); + +/***/ }) + +}); \ No newline at end of file diff --git a/.next/static/webpack/pages/about.7523881d416ea968.hot-update.js b/.next/static/webpack/pages/about.7523881d416ea968.hot-update.js new file mode 100644 index 0000000..5795e45 --- /dev/null +++ b/.next/static/webpack/pages/about.7523881d416ea968.hot-update.js @@ -0,0 +1,22 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("pages/about",{ + +/***/ "./src/components/Team/team.jsx": +/*!**************************************!*\ + !*** ./src/components/Team/team.jsx ***! + \**************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/teamSkillsProgress */ \"./src/common/teamSkillsProgress.js\");\n/* harmony import */ var _common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/tooltipEffect */ \"./src/common/tooltipEffect.js\");\n/* harmony import */ var _data_sections_team_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../data/sections/team.json */ \"./src/data/sections/team.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Team\\\\team.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nvar Team = function Team() {\n _s();\n\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n (0,_common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n setTimeout(function () {\n (0,_common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__[\"default\"])();\n }, 1000);\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"section\", {\n className: \"team section-padding\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Our Team\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: \"Our team will simplify business setup in the UAE\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container-fluid\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/01.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/02.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/03.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 117,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/04.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/05.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/06.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/07.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 292,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 291,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 297,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 299,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 298,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 280,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 275,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/08.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 319,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 333,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 332,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 338,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 340,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 339,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 321,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 320,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 318,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 317,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 316,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/09.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 361,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 375,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 374,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 380,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 382,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 381,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 363,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 362,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 360,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 359,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 358,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/10.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 401,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 415,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 414,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 420,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 422,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 421,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 403,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 402,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 400,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 399,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 398,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/11.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 441,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 455,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 454,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 460,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 462,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 461,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 443,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 442,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 440,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 439,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 438,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/12.webp\",\n style: {\n borderRadius: \"100%\"\n },\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 482,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 500,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 499,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 505,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 507,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 506,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 488,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 487,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 481,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 480,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 479,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 357,\n columnNumber: 9\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 5\n }, _this);\n};\n\n_s(Team, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = Team;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Team);\n\nvar _c;\n\n$RefreshReg$(_c, \"Team\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9UZWFtL3RlYW0uanN4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFFQSxJQUFNSSxJQUFJLEdBQUcsU0FBUEEsSUFBTyxHQUFNO0FBQUE7O0FBQ2pCSixFQUFBQSxzREFBQSxDQUFnQixZQUFNO0FBQ3BCQyxJQUFBQSxzRUFBa0I7QUFDbEJLLElBQUFBLFVBQVUsQ0FBQyxZQUFNO0FBQ2ZKLE1BQUFBLGlFQUFhO0FBQ2QsS0FGUyxFQUVQLElBRk8sQ0FBVjtBQUdELEdBTEQsRUFLRyxFQUxIO0FBTUEsc0JBQ0U7QUFBUyxhQUFTLEVBQUMsc0JBQW5CO0FBQUEsNEJBQ0U7QUFBSyxlQUFTLEVBQUMsV0FBZjtBQUFBLDZCQUNFO0FBQUssaUJBQVMsRUFBQyw0QkFBZjtBQUFBLCtCQUNFO0FBQUssbUJBQVMsRUFBQyxvQkFBZjtBQUFBLGlDQUNFO0FBQUsscUJBQVMsRUFBQyxzQkFBZjtBQUFBLG9DQUNFO0FBQUksdUJBQVMsRUFBQyxZQUFkO0FBQTJCLGdDQUFlLEtBQTFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQURGLGVBSUU7QUFBSSx1QkFBUyxFQUFDLGdCQUFkO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQUpGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxhQURGLGVBZUU7QUFBSyxlQUFTLEVBQUMsaUJBQWY7QUFBQSw4QkFDRTtBQUFLLGlCQUFTLEVBQUMsS0FBZjtBQUFBLGdDQUNFO0FBQUssbUJBQVMsRUFBQyxtQkFBZjtBQUFBLGlDQUNFO0FBQUsscUJBQVMsRUFBQyxrQkFBZjtBQUFBLG1DQUNFO0FBQUssdUJBQVMsRUFBQyxLQUFmO0FBQUEsc0NBQ0U7QUFBSyxtQkFBRyxFQUFDLG1CQUFUO0FBQTZCLG1CQUFHLEVBQUM7QUFBakM7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFERixlQUVFO0FBQUssa0JBQUUsRUFBQyxTQUFSO0FBQUEsdUNBQ0U7QUFDRSx5QkFBTyxFQUFDLEtBRFY7QUFFRSx1QkFBSyxFQUFDLDRCQUZSO0FBR0UsbUJBQUMsRUFBQyxLQUhKO0FBSUUsbUJBQUMsRUFBQyxLQUpKO0FBS0UsdUJBQUssRUFBQyxPQUxSO0FBTUUsd0JBQU0sRUFBQyxPQU5UO0FBT0UseUJBQU8sRUFBQyxhQVBWO0FBUUUsa0NBQWdCLEVBQUMsaUJBUm5CO0FBU0UsMEJBQVEsRUFBQyxVQVRYO0FBQUEsMENBV0U7QUFBQSwyQ0FDRTtBQUNFLHdCQUFFLEVBQUMsYUFETDtBQUVFLHVCQUFDLEVBQUM7QUFGSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSwyQkFYRixlQWlCRTtBQUFRLHNCQUFFLEVBQUMsS0FBWDtBQUFpQixzQkFBRSxFQUFDLEtBQXBCO0FBQTBCLHFCQUFDLEVBQUMsSUFBNUI7QUFBaUMsd0JBQUksRUFBQztBQUF0QztBQUFBO0FBQUE7QUFBQTtBQUFBLDJCQWpCRixlQWtCRTtBQUFBLDJDQUNFO0FBQUssK0JBQVMsRUFBQyxjQUFmO0FBQThCLDBCQUFJLEVBQUM7QUFBbkM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBbEJGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBRkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBREYsZUF5Q0U7QUFBSyxtQkFBUyxFQUFDLG1CQUFmO0FBQUEsaUNBQ0U7QUFBSyxxQkFBUyxFQUFDLGtCQUFmO0FBQUEsbUNBQ0U7QUFBSyx1QkFBUyxFQUFDLEtBQWY7QUFBQSxzQ0FDRTtBQUFLLG1CQUFHLEVBQUMsbUJBQVQ7QUFBNkIsbUJBQUcsRUFBQztBQUFqQztBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQURGLGVBRUU7QUFBSyxrQkFBRSxFQUFDLFNBQVI7QUFBQSx1Q0FDRTtBQUNFLHlCQUFPLEVBQUMsS0FEVjtBQUVFLHVCQUFLLEVBQUMsNEJBRlI7QUFHRSxtQkFBQyxFQUFDLEtBSEo7QUFJRSxtQkFBQyxFQUFDLEtBSko7QUFLRSx1QkFBSyxFQUFDLE9BTFI7QUFNRSx3QkFBTSxFQUFDLE9BTlQ7QUFPRSx5QkFBTyxFQUFDLGFBUFY7QUFRRSxrQ0FBZ0IsRUFBQyxpQkFSbkI7QUFTRSwwQkFBUSxFQUFDLFVBVFg7QUFBQSwwQ0FXRTtBQUFBLDJDQUNFO0FBQ0Usd0JBQUUsRUFBQyxhQURMO0FBRUUsdUJBQUMsRUFBQztBQUZKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLDJCQVhGLGVBaUJFO0FBQVEsc0JBQUUsRUFBQyxLQUFYO0FBQWlCLHNCQUFFLEVBQUMsS0FBcEI7QUFBMEIscUJBQUMsRUFBQyxJQUE1QjtBQUFpQyx3QkFBSSxFQUFDO0FBQXRDO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBakJGLGVBa0JFO0FBQUEsMkNBQ0U7QUFBSywrQkFBUyxFQUFDLGNBQWY7QUFBOEIsMEJBQUksRUFBQztBQUFuQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSwyQkFsQkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFGRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkF6Q0YsZUFpRkU7QUFBSyxtQkFBUyxFQUFDLG1CQUFmO0FBQUEsaUNBQ0U7QUFBSyxxQkFBUyxFQUFDLGtCQUFmO0FBQUEsbUNBQ0U7QUFBSyx1QkFBUyxFQUFDLEtBQWY7QUFBQSxzQ0FDRTtBQUFLLG1CQUFHLEVBQUMsbUJBQVQ7QUFBNkIsbUJBQUcsRUFBQztBQUFqQztBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQURGLGVBRUU7QUFBSyxrQkFBRSxFQUFDLFNBQVI7QUFBQSx1Q0FDRTtBQUNFLHlCQUFPLEVBQUMsS0FEVjtBQUVFLHVCQUFLLEVBQUMsNEJBRlI7QUFHRSxtQkFBQyxFQUFDLEtBSEo7QUFJRSxtQkFBQyxFQUFDLEtBSko7QUFLRSx1QkFBSyxFQUFDLE9BTFI7QUFNRSx3QkFBTSxFQUFDLE9BTlQ7QUFPRSx5QkFBTyxFQUFDLGFBUFY7QUFRRSxrQ0FBZ0IsRUFBQyxpQkFSbkI7QUFTRSwwQkFBUSxFQUFDLFVBVFg7QUFBQSwwQ0FXRTtBQUFBLDJDQUNFO0FBQ0Usd0JBQUUsRUFBQyxhQURMO0FBRUUsdUJBQUMsRUFBQztBQUZKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLDJCQVhGLGVBaUJFO0FBQVEsc0JBQUUsRUFBQyxLQUFYO0FBQWlCLHNCQUFFLEVBQUMsS0FBcEI7QUFBMEIscUJBQUMsRUFBQyxJQUE1QjtBQUFpQyx3QkFBSSxFQUFDO0FBQXRDO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBakJGLGVBa0JFO0FBQUEsMkNBQ0U7QUFBSywrQkFBUyxFQUFDLGNBQWY7QUFBOEIsMEJBQUksRUFBQztBQUFuQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSwyQkFsQkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFGRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFqRkYsZUEwSEU7QUFBSyxtQkFBUyxFQUFDLG1CQUFmO0FBQUEsaUNBQ0U7QUFBSyxxQkFBUyxFQUFDLFVBQWY7QUFBQSxtQ0FDRTtBQUFLLHVCQUFTLEVBQUMsS0FBZjtBQUFBLHNDQUNFO0FBQUssbUJBQUcsRUFBQyxtQkFBVDtBQUE2QixtQkFBRyxFQUFDO0FBQWpDO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBREYsZUFFRTtBQUFLLGtCQUFFLEVBQUMsU0FBUjtBQUFBLHVDQUNFO0FBQ0UseUJBQU8sRUFBQyxLQURWO0FBRUUsdUJBQUssRUFBQyw0QkFGUjtBQUdFLG1CQUFDLEVBQUMsS0FISjtBQUlFLG1CQUFDLEVBQUMsS0FKSjtBQUtFLHVCQUFLLEVBQUMsT0FMUjtBQU1FLHdCQUFNLEVBQUMsT0FOVDtBQU9FLHlCQUFPLEVBQUMsYUFQVjtBQVFFLGtDQUFnQixFQUFDLGlCQVJuQjtBQVNFLDBCQUFRLEVBQUMsVUFUWDtBQUFBLDBDQVdFO0FBQUEsMkNBQ0U7QUFDRSx3QkFBRSxFQUFDLGFBREw7QUFFRSx1QkFBQyxFQUFDO0FBRko7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBWEYsZUFpQkU7QUFBUSxzQkFBRSxFQUFDLEtBQVg7QUFBaUIsc0JBQUUsRUFBQyxLQUFwQjtBQUEwQixxQkFBQyxFQUFDLElBQTVCO0FBQWlDLHdCQUFJLEVBQUM7QUFBdEM7QUFBQTtBQUFBO0FBQUE7QUFBQSwyQkFqQkYsZUFrQkU7QUFBQSwyQ0FDRTtBQUFLLCtCQUFTLEVBQUMsY0FBZjtBQUE4QiwwQkFBSSxFQUFDO0FBQW5DO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLDJCQWxCRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQUZGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQTFIRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFERixlQW9LRTtBQUFLLGlCQUFTLEVBQUMsS0FBZjtBQUFBLGdDQUNFO0FBQUssbUJBQVMsRUFBQyxtQkFBZjtBQUFBLGlDQUNFO0FBQUsscUJBQVMsRUFBQyxrQkFBZjtBQUFBLG1DQUNFO0FBQUssdUJBQVMsRUFBQyxLQUFmO0FBQUEsc0NBQ0U7QUFBSyxtQkFBRyxFQUFDLG1CQUFUO0FBQTZCLG1CQUFHLEVBQUM7QUFBakM7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFERixlQUVFO0FBQUssa0JBQUUsRUFBQyxTQUFSO0FBQUEsdUNBQ0U7QUFDRSx5QkFBTyxFQUFDLEtBRFY7QUFFRSx1QkFBSyxFQUFDLDRCQUZSO0FBR0UsbUJBQUMsRUFBQyxLQUhKO0FBSUUsbUJBQUMsRUFBQyxLQUpKO0FBS0UsdUJBQUssRUFBQyxPQUxSO0FBTUUsd0JBQU0sRUFBQyxPQU5UO0FBT0UseUJBQU8sRUFBQyxhQVBWO0FBUUUsa0NBQWdCLEVBQUMsaUJBUm5CO0FBU0UsMEJBQVEsRUFBQyxVQVRYO0FBQUEsMENBV0U7QUFBQSwyQ0FDRTtBQUNFLHdCQUFFLEVBQUMsYUFETDtBQUVFLHVCQUFDLEVBQUM7QUFGSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSwyQkFYRixlQWlCRTtBQUFRLHNCQUFFLEVBQUMsS0FBWDtBQUFpQixzQkFBRSxFQUFDLEtBQXBCO0FBQTBCLHFCQUFDLEVBQUMsSUFBNUI7QUFBaUMsd0JBQUksRUFBQztBQUF0QztBQUFBO0FBQUE7QUFBQTtBQUFBLDJCQWpCRixlQWtCRTtBQUFBLDJDQUNFO0FBQUssK0JBQVMsRUFBQyxjQUFmO0FBQThCLDBCQUFJLEVBQUM7QUFBbkM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBbEJGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBRkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBREYsZUF5Q0U7QUFBSyxtQkFBUyxFQUFDLG1CQUFmO0FBQUEsaUNBQ0U7QUFBSyxxQkFBUyxFQUFDLGtCQUFmO0FBQUEsbUNBQ0U7QUFBSyx1QkFBUyxFQUFDLEtBQWY7QUFBQSxzQ0FDRTtBQUFLLG1CQUFHLEVBQUMsbUJBQVQ7QUFBNkIsbUJBQUcsRUFBQztBQUFqQztBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQURGLGVBRUU7QUFBSyxrQkFBRSxFQUFDLFNBQVI7QUFBQSx1Q0FDRTtBQUNFLHlCQUFPLEVBQUMsS0FEVjtBQUVFLHVCQUFLLEVBQUMsNEJBRlI7QUFHRSxtQkFBQyxFQUFDLEtBSEo7QUFJRSxtQkFBQyxFQUFDLEtBSko7QUFLRSx1QkFBSyxFQUFDLE9BTFI7QUFNRSx3QkFBTSxFQUFDLE9BTlQ7QUFPRSx5QkFBTyxFQUFDLGFBUFY7QUFRRSxrQ0FBZ0IsRUFBQyxpQkFSbkI7QUFTRSwwQkFBUSxFQUFDLFVBVFg7QUFBQSwwQ0FXRTtBQUFBLDJDQUNFO0FBQ0Usd0JBQUUsRUFBQyxhQURMO0FBRUUsdUJBQUMsRUFBQztBQUZKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLDJCQVhGLGVBaUJFO0FBQVEsc0JBQUUsRUFBQyxLQUFYO0FBQWlCLHNCQUFFLEVBQUMsS0FBcEI7QUFBMEIscUJBQUMsRUFBQyxJQUE1QjtBQUFpQyx3QkFBSSxFQUFDO0FBQXRDO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBakJGLGVBa0JFO0FBQUEsMkNBQ0U7QUFBSywrQkFBUyxFQUFDLGNBQWY7QUFBOEIsMEJBQUksRUFBQztBQUFuQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSwyQkFsQkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFGRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkF6Q0YsZUFpRkU7QUFBSyxtQkFBUyxFQUFDLG1CQUFmO0FBQUEsaUNBQ0U7QUFBSyxxQkFBUyxFQUFDLGtCQUFmO0FBQUEsbUNBQ0U7QUFBSyx1QkFBUyxFQUFDLEtBQWY7QUFBQSxzQ0FDRTtBQUFLLG1CQUFHLEVBQUMsbUJBQVQ7QUFBNkIsbUJBQUcsRUFBQztBQUFqQztBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQURGLGVBRUU7QUFBSyxrQkFBRSxFQUFDLFNBQVI7QUFBQSx1Q0FDRTtBQUNFLHlCQUFPLEVBQUMsS0FEVjtBQUVFLHVCQUFLLEVBQUMsNEJBRlI7QUFHRSxtQkFBQyxFQUFDLEtBSEo7QUFJRSxtQkFBQyxFQUFDLEtBSko7QUFLRSx1QkFBSyxFQUFDLE9BTFI7QUFNRSx3QkFBTSxFQUFDLE9BTlQ7QUFPRSx5QkFBTyxFQUFDLGFBUFY7QUFRRSxrQ0FBZ0IsRUFBQyxpQkFSbkI7QUFTRSwwQkFBUSxFQUFDLFVBVFg7QUFBQSwwQ0FXRTtBQUFBLDJDQUNFO0FBQ0Usd0JBQUUsRUFBQyxhQURMO0FBRUUsdUJBQUMsRUFBQztBQUZKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLDJCQVhGLGVBaUJFO0FBQVEsc0JBQUUsRUFBQyxLQUFYO0FBQWlCLHNCQUFFLEVBQUMsS0FBcEI7QUFBMEIscUJBQUMsRUFBQyxJQUE1QjtBQUFpQyx3QkFBSSxFQUFDO0FBQXRDO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBakJGLGVBa0JFO0FBQUEsMkNBQ0U7QUFBSywrQkFBUyxFQUFDLGNBQWY7QUFBOEIsMEJBQUksRUFBQztBQUFuQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSwyQkFsQkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFGRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFqRkYsZUEwSEU7QUFBSyxtQkFBUyxFQUFDLG1CQUFmO0FBQUEsaUNBQ0U7QUFBSyxxQkFBUyxFQUFDLFVBQWY7QUFBQSxtQ0FDRTtBQUFLLHVCQUFTLEVBQUMsS0FBZjtBQUFBLHNDQUNFO0FBQUssbUJBQUcsRUFBQyxtQkFBVDtBQUE2QixtQkFBRyxFQUFDO0FBQWpDO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBREYsZUFFRTtBQUFLLGtCQUFFLEVBQUMsU0FBUjtBQUFBLHVDQUNFO0FBQ0UseUJBQU8sRUFBQyxLQURWO0FBRUUsdUJBQUssRUFBQyw0QkFGUjtBQUdFLG1CQUFDLEVBQUMsS0FISjtBQUlFLG1CQUFDLEVBQUMsS0FKSjtBQUtFLHVCQUFLLEVBQUMsT0FMUjtBQU1FLHdCQUFNLEVBQUMsT0FOVDtBQU9FLHlCQUFPLEVBQUMsYUFQVjtBQVFFLGtDQUFnQixFQUFDLGlCQVJuQjtBQVNFLDBCQUFRLEVBQUMsVUFUWDtBQUFBLDBDQVdFO0FBQUEsMkNBQ0U7QUFDRSx3QkFBRSxFQUFDLGFBREw7QUFFRSx1QkFBQyxFQUFDO0FBRko7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBWEYsZUFpQkU7QUFBUSxzQkFBRSxFQUFDLEtBQVg7QUFBaUIsc0JBQUUsRUFBQyxLQUFwQjtBQUEwQixxQkFBQyxFQUFDLElBQTVCO0FBQWlDLHdCQUFJLEVBQUM7QUFBdEM7QUFBQTtBQUFBO0FBQUE7QUFBQSwyQkFqQkYsZUFrQkU7QUFBQSwyQ0FDRTtBQUFLLCtCQUFTLEVBQUMsY0FBZjtBQUE4QiwwQkFBSSxFQUFDO0FBQW5DO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLDJCQWxCRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQUZGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQTFIRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFwS0YsZUF1VUU7QUFBSyxpQkFBUyxFQUFDLEtBQWY7QUFBQSxnQ0FDRTtBQUFLLG1CQUFTLEVBQUMsbUJBQWY7QUFBQSxpQ0FDRTtBQUFLLHFCQUFTLEVBQUMsa0JBQWY7QUFBQSxtQ0FDRTtBQUFLLHVCQUFTLEVBQUMsS0FBZjtBQUFBLHNDQUNFO0FBQUssbUJBQUcsRUFBQyxtQkFBVDtBQUE2QixtQkFBRyxFQUFDO0FBQWpDO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBREYsZUFFRTtBQUFLLGtCQUFFLEVBQUMsU0FBUjtBQUFBLHVDQUNFO0FBQ0UseUJBQU8sRUFBQyxLQURWO0FBRUUsdUJBQUssRUFBQyw0QkFGUjtBQUdFLG1CQUFDLEVBQUMsS0FISjtBQUlFLG1CQUFDLEVBQUMsS0FKSjtBQUtFLHVCQUFLLEVBQUMsT0FMUjtBQU1FLHdCQUFNLEVBQUMsT0FOVDtBQU9FLHlCQUFPLEVBQUMsYUFQVjtBQVFFLGtDQUFnQixFQUFDLGlCQVJuQjtBQVNFLDBCQUFRLEVBQUMsVUFUWDtBQUFBLDBDQVdFO0FBQUEsMkNBQ0U7QUFDRSx3QkFBRSxFQUFDLGFBREw7QUFFRSx1QkFBQyxFQUFDO0FBRko7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBWEYsZUFpQkU7QUFBUSxzQkFBRSxFQUFDLEtBQVg7QUFBaUIsc0JBQUUsRUFBQyxLQUFwQjtBQUEwQixxQkFBQyxFQUFDLElBQTVCO0FBQWlDLHdCQUFJLEVBQUM7QUFBdEM7QUFBQTtBQUFBO0FBQUE7QUFBQSwyQkFqQkYsZUFrQkU7QUFBQSwyQ0FDRTtBQUFLLCtCQUFTLEVBQUMsY0FBZjtBQUE4QiwwQkFBSSxFQUFDO0FBQW5DO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLDJCQWxCRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQUZGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQURGLGVBeUNFO0FBQUssbUJBQVMsRUFBQyxtQkFBZjtBQUFBLGlDQUNFO0FBQUsscUJBQVMsRUFBQyxrQkFBZjtBQUFBLG1DQUNFO0FBQUssdUJBQVMsRUFBQyxLQUFmO0FBQUEsc0NBQ0U7QUFBSyxtQkFBRyxFQUFDLG1CQUFUO0FBQTZCLG1CQUFHLEVBQUM7QUFBakM7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFERixlQUVFO0FBQUssa0JBQUUsRUFBQyxTQUFSO0FBQUEsdUNBQ0U7QUFDRSx5QkFBTyxFQUFDLEtBRFY7QUFFRSx1QkFBSyxFQUFDLDRCQUZSO0FBR0UsbUJBQUMsRUFBQyxLQUhKO0FBSUUsbUJBQUMsRUFBQyxLQUpKO0FBS0UsdUJBQUssRUFBQyxPQUxSO0FBTUUsd0JBQU0sRUFBQyxPQU5UO0FBT0UseUJBQU8sRUFBQyxhQVBWO0FBUUUsa0NBQWdCLEVBQUMsaUJBUm5CO0FBU0UsMEJBQVEsRUFBQyxVQVRYO0FBQUEsMENBV0U7QUFBQSwyQ0FDRTtBQUNFLHdCQUFFLEVBQUMsYUFETDtBQUVFLHVCQUFDLEVBQUM7QUFGSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSwyQkFYRixlQWlCRTtBQUFRLHNCQUFFLEVBQUMsS0FBWDtBQUFpQixzQkFBRSxFQUFDLEtBQXBCO0FBQTBCLHFCQUFDLEVBQUMsSUFBNUI7QUFBaUMsd0JBQUksRUFBQztBQUF0QztBQUFBO0FBQUE7QUFBQTtBQUFBLDJCQWpCRixlQWtCRTtBQUFBLDJDQUNFO0FBQUssK0JBQVMsRUFBQyxjQUFmO0FBQThCLDBCQUFJLEVBQUM7QUFBbkM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBbEJGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBRkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBekNGLGVBaUZFO0FBQUssbUJBQVMsRUFBQyxtQkFBZjtBQUFBLGlDQUNFO0FBQUsscUJBQVMsRUFBQyxrQkFBZjtBQUFBLG1DQUNFO0FBQUssdUJBQVMsRUFBQyxLQUFmO0FBQUEsc0NBQ0U7QUFBSyxtQkFBRyxFQUFDLG1CQUFUO0FBQTZCLG1CQUFHLEVBQUM7QUFBakM7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFERixlQUVFO0FBQUssa0JBQUUsRUFBQyxTQUFSO0FBQUEsdUNBQ0U7QUFDRSx5QkFBTyxFQUFDLEtBRFY7QUFFRSx1QkFBSyxFQUFDLDRCQUZSO0FBR0UsbUJBQUMsRUFBQyxLQUhKO0FBSUUsbUJBQUMsRUFBQyxLQUpKO0FBS0UsdUJBQUssRUFBQyxPQUxSO0FBTUUsd0JBQU0sRUFBQyxPQU5UO0FBT0UseUJBQU8sRUFBQyxhQVBWO0FBUUUsa0NBQWdCLEVBQUMsaUJBUm5CO0FBU0UsMEJBQVEsRUFBQyxVQVRYO0FBQUEsMENBV0U7QUFBQSwyQ0FDRTtBQUNFLHdCQUFFLEVBQUMsYUFETDtBQUVFLHVCQUFDLEVBQUM7QUFGSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSwyQkFYRixlQWlCRTtBQUFRLHNCQUFFLEVBQUMsS0FBWDtBQUFpQixzQkFBRSxFQUFDLEtBQXBCO0FBQTBCLHFCQUFDLEVBQUMsSUFBNUI7QUFBaUMsd0JBQUksRUFBQztBQUF0QztBQUFBO0FBQUE7QUFBQTtBQUFBLDJCQWpCRixlQWtCRTtBQUFBLDJDQUNFO0FBQUssK0JBQVMsRUFBQyxjQUFmO0FBQThCLDBCQUFJLEVBQUM7QUFBbkM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBbEJGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBRkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBakZGLGVBMEhFO0FBQUssbUJBQVMsRUFBQyxtQkFBZjtBQUFBLGlDQUNFO0FBQUsscUJBQVMsRUFBQyxVQUFmO0FBQUEsbUNBQ0U7QUFBSyx1QkFBUyxFQUFDLEtBQWY7QUFBQSxzQ0FDRTtBQUNFLG1CQUFHLEVBQUMsbUJBRE47QUFFRSxxQkFBSyxFQUFFO0FBQUVLLGtCQUFBQSxZQUFZLEVBQUU7QUFBaEIsaUJBRlQ7QUFHRSxtQkFBRyxFQUFDO0FBSE47QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFERixlQU1FO0FBQUssa0JBQUUsRUFBQyxTQUFSO0FBQUEsdUNBQ0U7QUFDRSx5QkFBTyxFQUFDLEtBRFY7QUFFRSx1QkFBSyxFQUFDLDRCQUZSO0FBR0UsbUJBQUMsRUFBQyxLQUhKO0FBSUUsbUJBQUMsRUFBQyxLQUpKO0FBS0UsdUJBQUssRUFBQyxPQUxSO0FBTUUsd0JBQU0sRUFBQyxPQU5UO0FBT0UseUJBQU8sRUFBQyxhQVBWO0FBUUUsa0NBQWdCLEVBQUMsaUJBUm5CO0FBU0UsMEJBQVEsRUFBQyxVQVRYO0FBQUEsMENBV0U7QUFBQSwyQ0FDRTtBQUNFLHdCQUFFLEVBQUMsYUFETDtBQUVFLHVCQUFDLEVBQUM7QUFGSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSwyQkFYRixlQWlCRTtBQUFRLHNCQUFFLEVBQUMsS0FBWDtBQUFpQixzQkFBRSxFQUFDLEtBQXBCO0FBQTBCLHFCQUFDLEVBQUMsSUFBNUI7QUFBaUMsd0JBQUksRUFBQztBQUF0QztBQUFBO0FBQUE7QUFBQTtBQUFBLDJCQWpCRixlQWtCRTtBQUFBLDJDQUNFO0FBQUssK0JBQVMsRUFBQyxjQUFmO0FBQThCLDBCQUFJLEVBQUM7QUFBbkM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBbEJGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBTkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBMUhGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxlQXZVRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsYUFmRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsV0FERjtBQWlnQkQsQ0F4Z0JEOztHQUFNSDs7S0FBQUE7QUEwZ0JOLCtEQUFlQSxJQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL1RlYW0vdGVhbS5qc3g/YjY4ZSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAbmV4dC9uZXh0L25vLWltZy1lbGVtZW50ICovXHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHRlYW1Ta2lsbHNQcm9ncmVzcyBmcm9tIFwiLi4vLi4vY29tbW9uL3RlYW1Ta2lsbHNQcm9ncmVzc1wiO1xyXG5pbXBvcnQgdG9vbHRpcEVmZmVjdCBmcm9tIFwiLi4vLi4vY29tbW9uL3Rvb2x0aXBFZmZlY3RcIjtcclxuaW1wb3J0IHRlYW1zRGF0ZSBmcm9tIFwiLi4vLi4vZGF0YS9zZWN0aW9ucy90ZWFtLmpzb25cIjtcclxuXHJcbmNvbnN0IFRlYW0gPSAoKSA9PiB7XHJcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgIHRlYW1Ta2lsbHNQcm9ncmVzcygpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRvb2x0aXBFZmZlY3QoKTtcclxuICAgIH0sIDEwMDApO1xyXG4gIH0sIFtdKTtcclxuICByZXR1cm4gKFxyXG4gICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwidGVhbSBzZWN0aW9uLXBhZGRpbmdcIj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy04IGNvbC1tZC0xMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNlYy1oZWFkIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGg2IGNsYXNzTmFtZT1cIndvdyBmYWRlSW5cIiBkYXRhLXdvdy1kZWxheT1cIi41c1wiPlxyXG4gICAgICAgICAgICAgICAgT3VyIFRlYW1cclxuICAgICAgICAgICAgICA8L2g2PlxyXG4gICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJ3b3cgY29sb3ItZm9udFwiPlxyXG4gICAgICAgICAgICAgICAgT3VyIHRlYW0gd2lsbCBzaW1wbGlmeSBidXNpbmVzcyBzZXR1cCBpbiB0aGUgVUFFXHJcbiAgICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyLWZsdWlkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzAxLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTFcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgxXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENFTyBNYW5hZ2VyIENFTyBNYW5hZ2VyIENFTyBNYW5hZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDIud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlMlwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDJcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJpb3IgRGVzaWduZXIgSW50ZXJpb3IgRGVzaWduZXIgSW50ZXJpb3IgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgc20tbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wMy53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUzXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wNC53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGU0XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoNFwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDbGllbnQgTWFuYWdlciBDbGllbnQgTWFuYWdlciBDbGllbnQgTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDUud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlMVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ0VPIE1hbmFnZXIgQ0VPIE1hbmFnZXIgQ0VPIE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wNi53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMlwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBJbnRlcmlvciBEZXNpZ25lciBJbnRlcmlvciBEZXNpZ25lciBJbnRlcmlvciBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBzbS1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzA3LndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTNcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzA4LndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTRcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGg0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGg0XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGg0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENsaWVudCBNYW5hZ2VyIENsaWVudCBNYW5hZ2VyIENsaWVudCBNYW5hZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wOS53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUxXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDRU8gTWFuYWdlciBDRU8gTWFuYWdlciBDRU8gTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzEwLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTJcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIHNtLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMTEud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlM1wiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICAgICBzcmM9XCIvaW1nL3RlYW0vMTIud2VicFwiXHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGJvcmRlclJhZGl1czogXCIxMDAlXCIgfX1cclxuICAgICAgICAgICAgICAgICAgYWx0PVwiXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlNFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBUZWFtO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJ0ZWFtU2tpbGxzUHJvZ3Jlc3MiLCJ0b29sdGlwRWZmZWN0IiwidGVhbXNEYXRlIiwiVGVhbSIsInVzZUVmZmVjdCIsInNldFRpbWVvdXQiLCJib3JkZXJSYWRpdXMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/components/Team/team.jsx\n"); + +/***/ }) + +}); \ No newline at end of file diff --git a/.next/static/webpack/pages/about.865ba9bea3e8e879.hot-update.js b/.next/static/webpack/pages/about.865ba9bea3e8e879.hot-update.js new file mode 100644 index 0000000..d1f9dca --- /dev/null +++ b/.next/static/webpack/pages/about.865ba9bea3e8e879.hot-update.js @@ -0,0 +1,22 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("pages/about",{ + +/***/ "./src/components/Team/team.jsx": +/*!**************************************!*\ + !*** ./src/components/Team/team.jsx ***! + \**************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/teamSkillsProgress */ \"./src/common/teamSkillsProgress.js\");\n/* harmony import */ var _common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/tooltipEffect */ \"./src/common/tooltipEffect.js\");\n/* harmony import */ var _data_sections_team_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../data/sections/team.json */ \"./src/data/sections/team.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Team\\\\team.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nvar Team = function Team() {\n _s();\n\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n (0,_common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n setTimeout(function () {\n (0,_common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__[\"default\"])();\n }, 1000);\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"section\", {\n className: \"team section-padding\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Our Team\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: \"Our team will simplify business setup in the UAE\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container-fluid\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/01.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/02.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/03.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 117,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/04.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/03.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 5\n }, _this);\n};\n\n_s(Team, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = Team;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Team);\n\nvar _c;\n\n$RefreshReg$(_c, \"Team\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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cmMvY29tcG9uZW50cy9UZWFtL3RlYW0uanN4P2I2OGUiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB0ZWFtU2tpbGxzUHJvZ3Jlc3MgZnJvbSBcIi4uLy4uL2NvbW1vbi90ZWFtU2tpbGxzUHJvZ3Jlc3NcIjtcclxuaW1wb3J0IHRvb2x0aXBFZmZlY3QgZnJvbSBcIi4uLy4uL2NvbW1vbi90b29sdGlwRWZmZWN0XCI7XHJcbmltcG9ydCB0ZWFtc0RhdGUgZnJvbSBcIi4uLy4uL2RhdGEvc2VjdGlvbnMvdGVhbS5qc29uXCI7XHJcblxyXG5jb25zdCBUZWFtID0gKCkgPT4ge1xyXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICB0ZWFtU2tpbGxzUHJvZ3Jlc3MoKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0b29sdGlwRWZmZWN0KCk7XHJcbiAgICB9LCAxMDAwKTtcclxuICB9LCBbXSk7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInRlYW0gc2VjdGlvbi1wYWRkaW5nXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOCBjb2wtbWQtMTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWMtaGVhZCB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNiBjbGFzc05hbWU9XCJ3b3cgZmFkZUluXCIgZGF0YS13b3ctZGVsYXk9XCIuNXNcIj5cclxuICAgICAgICAgICAgICAgIE91ciBUZWFtXHJcbiAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwid293IGNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgIE91ciB0ZWFtIHdpbGwgc2ltcGxpZnkgYnVzaW5lc3Mgc2V0dXAgaW4gdGhlIFVBRVxyXG4gICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wMS53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUxXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDRU8gTWFuYWdlciBDRU8gTWFuYWdlciBDRU8gTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzAyLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTJcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIHNtLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDMud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlM1wiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDQud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlNFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgc20tbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wMy53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUzXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L3NlY3Rpb24+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IFRlYW07XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsInRlYW1Ta2lsbHNQcm9ncmVzcyIsInRvb2x0aXBFZmZlY3QiLCJ0ZWFtc0RhdGUiLCJUZWFtIiwidXNlRWZmZWN0Iiwic2V0VGltZW91dCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Team/team.jsx\n"); + +/***/ }) + +}); \ No newline at end of file diff --git a/.next/static/webpack/pages/about.942186135cc3656b.hot-update.js b/.next/static/webpack/pages/about.942186135cc3656b.hot-update.js new file mode 100644 index 0000000..33ef009 --- /dev/null +++ b/.next/static/webpack/pages/about.942186135cc3656b.hot-update.js @@ -0,0 +1,22 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("pages/about",{ + +/***/ "./src/components/Footer/footer.jsx": +/*!******************************************!*\ + !*** ./src/components/Footer/footer.jsx ***! + \******************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _data_app_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../data/app.json */ \"./src/data/app.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Footer\\\\footer.jsx\",\n _this = undefined;\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\nvar Footer = function Footer(_ref) {\n var hideBGCOLOR = _ref.hideBGCOLOR;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"footer\", {\n className: \"\".concat(!hideBGCOLOR ? \"sub-bg\" : \"\"),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item md-mb50\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"title\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h5\", {\n children: \"Contact Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"ul\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-map-marker\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Officeal Address\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"Baghdad Street, Al Dana area, Abu Dhabi, United Arab Emirates\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-mail\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Email Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"hello@businesshub.abudhabi\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-call\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Call Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"+971 26340404\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"logo\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.footerLogo,\n style: {\n width: \"150px\"\n },\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"social\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"https://www.facebook.com/profile.php?id=100057392223857 \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-facebook-f\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-linkedin\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 59,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"https://www.instagram.com/businesshubi/?igsh=MTJ3ejZneWdmbTM3bQ%3D%3D \\r\\n\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-instagram\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 61,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-youtube\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"copy-right\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"\\xA9 2024, 2024 Business HUB international investment - All Rights Reserved.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 5\n }, _this);\n};\n\n_c = Footer;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Footer);\n\nvar _c;\n\n$RefreshReg$(_c, \"Footer\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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b0JBQUksRUFBQyw0RUFEUDtBQUFBLHVDQUlFO0FBQUcsMkJBQVMsRUFBQztBQUFiO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFKRjtBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQVBGLGVBYUU7QUFBRyxvQkFBSSxFQUFDLElBQVI7QUFBQSx1Q0FDRTtBQUFHLDJCQUFTLEVBQUM7QUFBYjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFiRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBUkYsZUF5QkU7QUFBSyx1QkFBUyxFQUFDLFlBQWY7QUFBQSxxQ0FDRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBekJGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBbkNGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBREY7QUE0RUQsQ0E3RUQ7O0tBQU1IO0FBK0VOLCtEQUFlQSxNQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL0Zvb3Rlci9mb290ZXIuanN4P2YzOTQiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcclxuaW1wb3J0IGFwcERhdGEgZnJvbSBcIi4uLy4uL2RhdGEvYXBwLmpzb25cIjtcclxuXHJcbmNvbnN0IEZvb3RlciA9ICh7IGhpZGVCR0NPTE9SIH0pID0+IHtcclxuICByZXR1cm4gKFxyXG4gICAgPGZvb3RlciBjbGFzc05hbWU9e2AkeyFoaWRlQkdDT0xPUiA/IFwic3ViLWJnXCIgOiBcIlwifWB9PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy00XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgPGg1PkNvbnRhY3QgVXM8L2g1PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDx1bD5cclxuICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvbiBwZS03cy1tYXAtbWFya2VyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+T2ZmaWNlYWwgQWRkcmVzczwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICBCYWdoZGFkIFN0cmVldCwgQWwgRGFuYSBhcmVhLCBBYnUgRGhhYmksIFVuaXRlZCBBcmFiXHJcbiAgICAgICAgICAgICAgICAgICAgICBFbWlyYXRlc1xyXG4gICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJpY29uIHBlLTdzLW1haWxcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoNj5FbWFpbCBVczwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+aGVsbG9AYnVzaW5lc3NodWIuYWJ1ZGhhYmk8L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvbiBwZS03cy1jYWxsXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+Q2FsbCBVczwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+Kzk3MSAyNjM0MDQwNDwvcD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctNFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxvZ29cIj5cclxuICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgc3JjPXthcHBEYXRhLmZvb3RlckxvZ299XHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IHdpZHRoOiBcIjE1MHB4XCIgfX1cclxuICAgICAgICAgICAgICAgICAgYWx0PVwiXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzb2NpYWxcIj5cclxuICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJodHRwczovL3d3dy5mYWNlYm9vay5jb20vcHJvZmlsZS5waHA/aWQ9MTAwMDU3MzkyMjIzODU3IFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYWIgZmEtZmFjZWJvb2stZlwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYWIgZmEtbGlua2VkaW5cIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICBocmVmPVwiaHR0cHM6Ly93d3cuaW5zdGFncmFtLmNvbS9idXNpbmVzc2h1YmkvP2lnc2g9TVRKM2VqWm5lV2RtYlRNM2JRJTNEJTNEIFxyXG5cIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYWIgZmEtaW5zdGFncmFtXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgPGEgaHJlZj1cIiMwXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhYiBmYS15b3V0dWJlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29weS1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgIMKpIDIwMjQsIDIwMjQgQnVzaW5lc3MgSFVCIGludGVybmF0aW9uYWwgaW52ZXN0bWVudCAtIEFsbFxyXG4gICAgICAgICAgICAgICAgICBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9mb290ZXI+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IEZvb3RlcjtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiTGluayIsImFwcERhdGEiLCJGb290ZXIiLCJoaWRlQkdDT0xPUiIsImZvb3RlckxvZ28iLCJ3aWR0aCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Footer/footer.jsx\n"); + +/***/ }) + +}); \ No newline at end of file diff --git a/.next/static/webpack/pages/about.976feb7437cdc842.hot-update.js b/.next/static/webpack/pages/about.976feb7437cdc842.hot-update.js new file mode 100644 index 0000000..5b3ce67 --- /dev/null +++ b/.next/static/webpack/pages/about.976feb7437cdc842.hot-update.js @@ -0,0 +1,22 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("pages/about",{ + +/***/ "./src/components/Team/team.jsx": +/*!**************************************!*\ + !*** ./src/components/Team/team.jsx ***! + \**************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/teamSkillsProgress */ \"./src/common/teamSkillsProgress.js\");\n/* harmony import */ var _common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/tooltipEffect */ \"./src/common/tooltipEffect.js\");\n/* harmony import */ var _data_sections_team_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../data/sections/team.json */ \"./src/data/sections/team.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Team\\\\team.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nvar Team = function Team() {\n _s();\n\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n (0,_common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n setTimeout(function () {\n (0,_common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__[\"default\"])();\n }, 1000);\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"section\", {\n className: \"team section-padding\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Our Team\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: \"Our team will simplify business setup in the UAE\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container-fluid\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/01.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/02.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/03.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 117,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/04.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/01.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/02.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/03.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 292,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 291,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 297,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 299,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 298,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 280,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 275,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/04.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 319,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 333,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 332,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 338,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 340,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 339,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 321,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 320,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 318,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 317,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 316,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/01.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 361,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 375,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 374,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 380,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 382,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 381,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 363,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 362,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 360,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 359,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 358,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/02.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 401,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 415,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 414,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 420,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 422,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 421,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 403,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 402,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 400,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 399,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 398,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/03.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 441,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 455,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 454,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 460,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 462,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 461,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 443,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 442,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 440,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 439,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 438,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/04.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 482,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 496,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 495,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 501,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 503,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 502,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 484,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 483,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 481,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 480,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 479,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 357,\n columnNumber: 9\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 5\n }, _this);\n};\n\n_s(Team, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = Team;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Team);\n\nvar _c;\n\n$RefreshReg$(_c, \"Team\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFBQSxXQURGO0FBNmZELENBcGdCRDs7R0FBTUU7O0tBQUFBO0FBc2dCTiwrREFBZUEsSUFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tcG9uZW50cy9UZWFtL3RlYW0uanN4P2I2OGUiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB0ZWFtU2tpbGxzUHJvZ3Jlc3MgZnJvbSBcIi4uLy4uL2NvbW1vbi90ZWFtU2tpbGxzUHJvZ3Jlc3NcIjtcclxuaW1wb3J0IHRvb2x0aXBFZmZlY3QgZnJvbSBcIi4uLy4uL2NvbW1vbi90b29sdGlwRWZmZWN0XCI7XHJcbmltcG9ydCB0ZWFtc0RhdGUgZnJvbSBcIi4uLy4uL2RhdGEvc2VjdGlvbnMvdGVhbS5qc29uXCI7XHJcblxyXG5jb25zdCBUZWFtID0gKCkgPT4ge1xyXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICB0ZWFtU2tpbGxzUHJvZ3Jlc3MoKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0b29sdGlwRWZmZWN0KCk7XHJcbiAgICB9LCAxMDAwKTtcclxuICB9LCBbXSk7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInRlYW0gc2VjdGlvbi1wYWRkaW5nXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOCBjb2wtbWQtMTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWMtaGVhZCB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNiBjbGFzc05hbWU9XCJ3b3cgZmFkZUluXCIgZGF0YS13b3ctZGVsYXk9XCIuNXNcIj5cclxuICAgICAgICAgICAgICAgIE91ciBUZWFtXHJcbiAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwid293IGNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgIE91ciB0ZWFtIHdpbGwgc2ltcGxpZnkgYnVzaW5lc3Mgc2V0dXAgaW4gdGhlIFVBRVxyXG4gICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wMS53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUxXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDRU8gTWFuYWdlciBDRU8gTWFuYWdlciBDRU8gTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzAyLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTJcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIHNtLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDMud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlM1wiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDQud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlNFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzAxLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTFcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgxXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENFTyBNYW5hZ2VyIENFTyBNYW5hZ2VyIENFTyBNYW5hZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDIud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlMlwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDJcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJpb3IgRGVzaWduZXIgSW50ZXJpb3IgRGVzaWduZXIgSW50ZXJpb3IgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgc20tbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wMy53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUzXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wNC53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGU0XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoNFwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDbGllbnQgTWFuYWdlciBDbGllbnQgTWFuYWdlciBDbGllbnQgTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDEud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlMVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ0VPIE1hbmFnZXIgQ0VPIE1hbmFnZXIgQ0VPIE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wMi53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMlwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBJbnRlcmlvciBEZXNpZ25lciBJbnRlcmlvciBEZXNpZ25lciBJbnRlcmlvciBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBzbS1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzAzLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTNcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzA0LndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTRcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGg0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGg0XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGg0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENsaWVudCBNYW5hZ2VyIENsaWVudCBNYW5hZ2VyIENsaWVudCBNYW5hZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvc2VjdGlvbj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgVGVhbTtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwidGVhbVNraWxsc1Byb2dyZXNzIiwidG9vbHRpcEVmZmVjdCIsInRlYW1zRGF0ZSIsIlRlYW0iLCJ1c2VFZmZlY3QiLCJzZXRUaW1lb3V0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Team/team.jsx\n"); + +/***/ }) + +}); \ No newline at end of file diff --git a/.next/static/webpack/pages/about.99e1201d5af809ef.hot-update.js b/.next/static/webpack/pages/about.99e1201d5af809ef.hot-update.js new file mode 100644 index 0000000..ba42b4c --- /dev/null +++ b/.next/static/webpack/pages/about.99e1201d5af809ef.hot-update.js @@ -0,0 +1,22 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("pages/about",{ + +/***/ "./src/components/Team/team.jsx": +/*!**************************************!*\ + !*** ./src/components/Team/team.jsx ***! + \**************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/teamSkillsProgress */ \"./src/common/teamSkillsProgress.js\");\n/* harmony import */ var _common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/tooltipEffect */ \"./src/common/tooltipEffect.js\");\n/* harmony import */ var _data_sections_team_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../data/sections/team.json */ \"./src/data/sections/team.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Team\\\\team.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nvar Team = function Team() {\n _s();\n\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n (0,_common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n setTimeout(function () {\n (0,_common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__[\"default\"])();\n }, 1000);\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"section\", {\n className: \"team section-padding\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Our Team\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: \"Our team will simplify business setup in the UAE\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container-fluid\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/01.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/02.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/03.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 117,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/04.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/05.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/06.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/07.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 292,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 291,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 297,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 299,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 298,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 280,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 275,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/08.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 319,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 333,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 332,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 338,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 340,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 339,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 321,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 320,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 318,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 317,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 316,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/09.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 361,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 375,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 374,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 380,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 382,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 381,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 363,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 362,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 360,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 359,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 358,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/10.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 401,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 415,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 414,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 420,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 422,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 421,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 403,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 402,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 400,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 399,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 398,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/11.webp\",\n style: {\n borderRadius: \"100%\"\n },\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 441,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 459,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 458,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 464,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 466,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 465,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 447,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 446,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 440,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 439,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 438,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/12.webp\",\n style: {\n borderRadius: \"100%\"\n },\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 486,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 504,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 503,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 509,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 511,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 510,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 492,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 491,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 485,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 484,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 483,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 357,\n columnNumber: 9\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 5\n }, _this);\n};\n\n_s(Team, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = Team;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Team);\n\nvar _c;\n\n$RefreshReg$(_c, \"Team\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFBO0FBQUEsaUJBOUhGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxlQXZVRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsYUFmRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsV0FERjtBQXFnQkQsQ0E1Z0JEOztHQUFNSDs7S0FBQUE7QUE4Z0JOLCtEQUFlQSxJQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL1RlYW0vdGVhbS5qc3g/YjY4ZSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAbmV4dC9uZXh0L25vLWltZy1lbGVtZW50ICovXHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHRlYW1Ta2lsbHNQcm9ncmVzcyBmcm9tIFwiLi4vLi4vY29tbW9uL3RlYW1Ta2lsbHNQcm9ncmVzc1wiO1xyXG5pbXBvcnQgdG9vbHRpcEVmZmVjdCBmcm9tIFwiLi4vLi4vY29tbW9uL3Rvb2x0aXBFZmZlY3RcIjtcclxuaW1wb3J0IHRlYW1zRGF0ZSBmcm9tIFwiLi4vLi4vZGF0YS9zZWN0aW9ucy90ZWFtLmpzb25cIjtcclxuXHJcbmNvbnN0IFRlYW0gPSAoKSA9PiB7XHJcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgIHRlYW1Ta2lsbHNQcm9ncmVzcygpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRvb2x0aXBFZmZlY3QoKTtcclxuICAgIH0sIDEwMDApO1xyXG4gIH0sIFtdKTtcclxuICByZXR1cm4gKFxyXG4gICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwidGVhbSBzZWN0aW9uLXBhZGRpbmdcIj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy04IGNvbC1tZC0xMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNlYy1oZWFkIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGg2IGNsYXNzTmFtZT1cIndvdyBmYWRlSW5cIiBkYXRhLXdvdy1kZWxheT1cIi41c1wiPlxyXG4gICAgICAgICAgICAgICAgT3VyIFRlYW1cclxuICAgICAgICAgICAgICA8L2g2PlxyXG4gICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJ3b3cgY29sb3ItZm9udFwiPlxyXG4gICAgICAgICAgICAgICAgT3VyIHRlYW0gd2lsbCBzaW1wbGlmeSBidXNpbmVzcyBzZXR1cCBpbiB0aGUgVUFFXHJcbiAgICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyLWZsdWlkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzAxLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTFcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgxXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENFTyBNYW5hZ2VyIENFTyBNYW5hZ2VyIENFTyBNYW5hZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDIud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlMlwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDJcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJpb3IgRGVzaWduZXIgSW50ZXJpb3IgRGVzaWduZXIgSW50ZXJpb3IgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgc20tbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wMy53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUzXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wNC53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGU0XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoNFwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDbGllbnQgTWFuYWdlciBDbGllbnQgTWFuYWdlciBDbGllbnQgTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDUud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlMVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ0VPIE1hbmFnZXIgQ0VPIE1hbmFnZXIgQ0VPIE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wNi53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMlwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBJbnRlcmlvciBEZXNpZ25lciBJbnRlcmlvciBEZXNpZ25lciBJbnRlcmlvciBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBzbS1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzA3LndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTNcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzA4LndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTRcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGg0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGg0XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGg0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENsaWVudCBNYW5hZ2VyIENsaWVudCBNYW5hZ2VyIENsaWVudCBNYW5hZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wOS53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUxXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDRU8gTWFuYWdlciBDRU8gTWFuYWdlciBDRU8gTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzEwLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTJcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gIHNtLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICAgICBzcmM9XCIvaW1nL3RlYW0vMTEud2VicFwiXHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGJvcmRlclJhZGl1czogXCIxMDAlXCIgfX1cclxuICAgICAgICAgICAgICAgICAgYWx0PVwiXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlM1wiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICAgICBzcmM9XCIvaW1nL3RlYW0vMTIud2VicFwiXHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGJvcmRlclJhZGl1czogXCIxMDAlXCIgfX1cclxuICAgICAgICAgICAgICAgICAgYWx0PVwiXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlNFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBUZWFtO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJ0ZWFtU2tpbGxzUHJvZ3Jlc3MiLCJ0b29sdGlwRWZmZWN0IiwidGVhbXNEYXRlIiwiVGVhbSIsInVzZUVmZmVjdCIsInNldFRpbWVvdXQiLCJib3JkZXJSYWRpdXMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/components/Team/team.jsx\n"); + +/***/ }) + +}); \ No newline at end of file diff --git a/.next/static/webpack/pages/about.be65fe127a28d26b.hot-update.js b/.next/static/webpack/pages/about.be65fe127a28d26b.hot-update.js new file mode 100644 index 0000000..909624b --- /dev/null +++ b/.next/static/webpack/pages/about.be65fe127a28d26b.hot-update.js @@ -0,0 +1,22 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("pages/about",{ + +/***/ "./src/components/Team/team.jsx": +/*!**************************************!*\ + !*** ./src/components/Team/team.jsx ***! + \**************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/teamSkillsProgress */ \"./src/common/teamSkillsProgress.js\");\n/* harmony import */ var _common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/tooltipEffect */ \"./src/common/tooltipEffect.js\");\n/* harmony import */ var _data_sections_team_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../data/sections/team.json */ \"./src/data/sections/team.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Team\\\\team.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nvar Team = function Team() {\n _s();\n\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n (0,_common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n setTimeout(function () {\n (0,_common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__[\"default\"])();\n }, 1000);\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"section\", {\n className: \"team section-padding\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Our Team\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: \"Our team will simplify business setup in the UAE\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container-fluid\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/01.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/02.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/03.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 117,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/04.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/05.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/06.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/07.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 292,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 291,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 297,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 299,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 298,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 280,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 275,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/08.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 319,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 333,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 332,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 338,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 340,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 339,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 321,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 320,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 318,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 317,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 316,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/09.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 361,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 375,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 374,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 380,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 382,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 381,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 363,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 362,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 360,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 359,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 358,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/10.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 401,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 415,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 414,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 420,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 422,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 421,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 403,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 402,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 400,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 399,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 398,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/11.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 441,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 455,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 454,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 460,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 462,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 461,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 443,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 442,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 440,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 439,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 438,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/12.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 482,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 481,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 480,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 479,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 357,\n columnNumber: 9\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 5\n }, _this);\n};\n\n_s(Team, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = Team;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Team);\n\nvar _c;\n\n$RefreshReg$(_c, \"Team\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Syx1QkFBUyxFQUFDLEtBQWY7QUFBQSxxQ0FDRTtBQUFLLG1CQUFHLEVBQUMsbUJBQVQ7QUFBNkIsbUJBQUcsRUFBQztBQUFqQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQTFIRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUF2VUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBZkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBREY7QUFpZUQsQ0F4ZUQ7O0dBQU1FOztLQUFBQTtBQTBlTiwrREFBZUEsSUFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tcG9uZW50cy9UZWFtL3RlYW0uanN4P2I2OGUiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB0ZWFtU2tpbGxzUHJvZ3Jlc3MgZnJvbSBcIi4uLy4uL2NvbW1vbi90ZWFtU2tpbGxzUHJvZ3Jlc3NcIjtcclxuaW1wb3J0IHRvb2x0aXBFZmZlY3QgZnJvbSBcIi4uLy4uL2NvbW1vbi90b29sdGlwRWZmZWN0XCI7XHJcbmltcG9ydCB0ZWFtc0RhdGUgZnJvbSBcIi4uLy4uL2RhdGEvc2VjdGlvbnMvdGVhbS5qc29uXCI7XHJcblxyXG5jb25zdCBUZWFtID0gKCkgPT4ge1xyXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICB0ZWFtU2tpbGxzUHJvZ3Jlc3MoKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0b29sdGlwRWZmZWN0KCk7XHJcbiAgICB9LCAxMDAwKTtcclxuICB9LCBbXSk7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInRlYW0gc2VjdGlvbi1wYWRkaW5nXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOCBjb2wtbWQtMTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWMtaGVhZCB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNiBjbGFzc05hbWU9XCJ3b3cgZmFkZUluXCIgZGF0YS13b3ctZGVsYXk9XCIuNXNcIj5cclxuICAgICAgICAgICAgICAgIE91ciBUZWFtXHJcbiAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwid293IGNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgIE91ciB0ZWFtIHdpbGwgc2ltcGxpZnkgYnVzaW5lc3Mgc2V0dXAgaW4gdGhlIFVBRVxyXG4gICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wMS53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUxXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDRU8gTWFuYWdlciBDRU8gTWFuYWdlciBDRU8gTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzAyLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTJcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIHNtLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDMud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlM1wiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDQud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlNFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzA1LndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTFcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgxXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENFTyBNYW5hZ2VyIENFTyBNYW5hZ2VyIENFTyBNYW5hZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDYud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlMlwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDJcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJpb3IgRGVzaWduZXIgSW50ZXJpb3IgRGVzaWduZXIgSW50ZXJpb3IgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgc20tbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wNy53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUzXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wOC53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGU0XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoNFwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDbGllbnQgTWFuYWdlciBDbGllbnQgTWFuYWdlciBDbGllbnQgTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDkud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlMVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ0VPIE1hbmFnZXIgQ0VPIE1hbmFnZXIgQ0VPIE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8xMC53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMlwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBJbnRlcmlvciBEZXNpZ25lciBJbnRlcmlvciBEZXNpZ25lciBJbnRlcmlvciBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBzbS1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzExLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTNcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzEyLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L3NlY3Rpb24+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IFRlYW07XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsInRlYW1Ta2lsbHNQcm9ncmVzcyIsInRvb2x0aXBFZmZlY3QiLCJ0ZWFtc0RhdGUiLCJUZWFtIiwidXNlRWZmZWN0Iiwic2V0VGltZW91dCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Team/team.jsx\n"); + +/***/ }) + +}); \ No newline at end of file diff --git a/.next/static/webpack/pages/about.bf5abb6f7bfbabc3.hot-update.js b/.next/static/webpack/pages/about.bf5abb6f7bfbabc3.hot-update.js new file mode 100644 index 0000000..775bff7 --- /dev/null +++ b/.next/static/webpack/pages/about.bf5abb6f7bfbabc3.hot-update.js @@ -0,0 +1,22 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("pages/about",{ + +/***/ "./src/components/Team/team.jsx": +/*!**************************************!*\ + !*** ./src/components/Team/team.jsx ***! + \**************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/teamSkillsProgress */ \"./src/common/teamSkillsProgress.js\");\n/* harmony import */ var _common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/tooltipEffect */ \"./src/common/tooltipEffect.js\");\n/* harmony import */ var _data_sections_team_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../data/sections/team.json */ \"./src/data/sections/team.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Team\\\\team.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nvar Team = function Team() {\n _s();\n\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n (0,_common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n setTimeout(function () {\n (0,_common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__[\"default\"])();\n }, 1000);\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"section\", {\n className: \"team section-padding\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Our Team\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: \"\\\"Our team will simplify business setup in the UAE..\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container-fluid\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/01.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/02.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/03.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 117,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/04.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 5\n }, _this);\n};\n\n_s(Team, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = Team;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Team);\n\nvar _c;\n\n$RefreshReg$(_c, \"Team\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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X0UvLi9zcmMvY29tcG9uZW50cy9UZWFtL3RlYW0uanN4P2I2OGUiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB0ZWFtU2tpbGxzUHJvZ3Jlc3MgZnJvbSBcIi4uLy4uL2NvbW1vbi90ZWFtU2tpbGxzUHJvZ3Jlc3NcIjtcclxuaW1wb3J0IHRvb2x0aXBFZmZlY3QgZnJvbSBcIi4uLy4uL2NvbW1vbi90b29sdGlwRWZmZWN0XCI7XHJcbmltcG9ydCB0ZWFtc0RhdGUgZnJvbSBcIi4uLy4uL2RhdGEvc2VjdGlvbnMvdGVhbS5qc29uXCI7XHJcblxyXG5jb25zdCBUZWFtID0gKCkgPT4ge1xyXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICB0ZWFtU2tpbGxzUHJvZ3Jlc3MoKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0b29sdGlwRWZmZWN0KCk7XHJcbiAgICB9LCAxMDAwKTtcclxuICB9LCBbXSk7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInRlYW0gc2VjdGlvbi1wYWRkaW5nXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOCBjb2wtbWQtMTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWMtaGVhZCB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNiBjbGFzc05hbWU9XCJ3b3cgZmFkZUluXCIgZGF0YS13b3ctZGVsYXk9XCIuNXNcIj5cclxuICAgICAgICAgICAgICAgIE91ciBUZWFtXHJcbiAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwid293IGNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgIFwiT3VyIHRlYW0gd2lsbCBzaW1wbGlmeSBidXNpbmVzcyBzZXR1cCBpbiB0aGUgVUFFLi5cclxuICAgICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXItZmx1aWRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDEud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlMVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ0VPIE1hbmFnZXIgQ0VPIE1hbmFnZXIgQ0VPIE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wMi53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMlwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBJbnRlcmlvciBEZXNpZ25lciBJbnRlcmlvciBEZXNpZ25lciBJbnRlcmlvciBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBzbS1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzAzLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTNcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzA0LndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTRcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGg0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGg0XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGg0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENsaWVudCBNYW5hZ2VyIENsaWVudCBNYW5hZ2VyIENsaWVudCBNYW5hZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvc2VjdGlvbj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgVGVhbTtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwidGVhbVNraWxsc1Byb2dyZXNzIiwidG9vbHRpcEVmZmVjdCIsInRlYW1zRGF0ZSIsIlRlYW0iLCJ1c2VFZmZlY3QiLCJzZXRUaW1lb3V0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Team/team.jsx\n"); + +/***/ }) + +}); \ No newline at end of file diff --git a/.next/static/webpack/pages/about.c2399be6206f0aba.hot-update.js b/.next/static/webpack/pages/about.c2399be6206f0aba.hot-update.js new file mode 100644 index 0000000..642ef32 --- /dev/null +++ b/.next/static/webpack/pages/about.c2399be6206f0aba.hot-update.js @@ -0,0 +1,22 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("pages/about",{ + +/***/ "./src/components/Team/team.jsx": +/*!**************************************!*\ + !*** ./src/components/Team/team.jsx ***! + \**************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/teamSkillsProgress */ \"./src/common/teamSkillsProgress.js\");\n/* harmony import */ var _common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/tooltipEffect */ \"./src/common/tooltipEffect.js\");\n/* harmony import */ var _data_sections_team_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../data/sections/team.json */ \"./src/data/sections/team.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Team\\\\team.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nvar Team = function Team() {\n _s();\n\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n (0,_common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n setTimeout(function () {\n (0,_common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__[\"default\"])();\n }, 1000);\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"section\", {\n className: \"team section-padding\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Our Team\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: \"Our team will simplify business setup in the UAE\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container-fluid\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/01.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/02.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/03.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 117,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/04.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/03.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/03.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 250,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 256,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 5\n }, _this);\n};\n\n_s(Team, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = Team;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Team);\n\nvar _c;\n\n$RefreshReg$(_c, \"Team\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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cG9uZW50cy9UZWFtL3RlYW0uanN4P2I2OGUiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB0ZWFtU2tpbGxzUHJvZ3Jlc3MgZnJvbSBcIi4uLy4uL2NvbW1vbi90ZWFtU2tpbGxzUHJvZ3Jlc3NcIjtcclxuaW1wb3J0IHRvb2x0aXBFZmZlY3QgZnJvbSBcIi4uLy4uL2NvbW1vbi90b29sdGlwRWZmZWN0XCI7XHJcbmltcG9ydCB0ZWFtc0RhdGUgZnJvbSBcIi4uLy4uL2RhdGEvc2VjdGlvbnMvdGVhbS5qc29uXCI7XHJcblxyXG5jb25zdCBUZWFtID0gKCkgPT4ge1xyXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICB0ZWFtU2tpbGxzUHJvZ3Jlc3MoKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0b29sdGlwRWZmZWN0KCk7XHJcbiAgICB9LCAxMDAwKTtcclxuICB9LCBbXSk7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInRlYW0gc2VjdGlvbi1wYWRkaW5nXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOCBjb2wtbWQtMTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWMtaGVhZCB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNiBjbGFzc05hbWU9XCJ3b3cgZmFkZUluXCIgZGF0YS13b3ctZGVsYXk9XCIuNXNcIj5cclxuICAgICAgICAgICAgICAgIE91ciBUZWFtXHJcbiAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwid293IGNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgIE91ciB0ZWFtIHdpbGwgc2ltcGxpZnkgYnVzaW5lc3Mgc2V0dXAgaW4gdGhlIFVBRVxyXG4gICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wMS53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUxXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDRU8gTWFuYWdlciBDRU8gTWFuYWdlciBDRU8gTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzAyLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTJcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIHNtLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDMud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlM1wiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDQud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlNFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgc20tbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wMy53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUzXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBzbS1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzAzLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTNcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvc2VjdGlvbj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgVGVhbTtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwidGVhbVNraWxsc1Byb2dyZXNzIiwidG9vbHRpcEVmZmVjdCIsInRlYW1zRGF0ZSIsIlRlYW0iLCJ1c2VFZmZlY3QiLCJzZXRUaW1lb3V0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Team/team.jsx\n"); + +/***/ }) + +}); \ No newline at end of file diff --git a/.next/static/webpack/pages/about.fcc1171977653d0d.hot-update.js b/.next/static/webpack/pages/about.fcc1171977653d0d.hot-update.js new file mode 100644 index 0000000..576bc5e --- /dev/null +++ b/.next/static/webpack/pages/about.fcc1171977653d0d.hot-update.js @@ -0,0 +1,22 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("pages/about",{ + +/***/ "./src/components/Footer/footer.jsx": +/*!******************************************!*\ + !*** ./src/components/Footer/footer.jsx ***! + \******************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _data_app_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../data/app.json */ \"./src/data/app.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Footer\\\\footer.jsx\",\n _this = undefined;\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\nvar Footer = function Footer(_ref) {\n var hideBGCOLOR = _ref.hideBGCOLOR;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"footer\", {\n className: \"\".concat(!hideBGCOLOR ? \"sub-bg\" : \"\"),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item md-mb50\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"title\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h5\", {\n children: \"Contact Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"ul\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-map-marker\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Officeal Address\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"Baghdad Street, Al Dana area, Abu Dhabi, United Arab Emirates\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-mail\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Email Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"hello@businesshub.abudhabi\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-call\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Call Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"+971 26340404\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"logo\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.footerLogo,\n style: {\n width: \"150px\"\n },\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"social\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"https://www.facebook.com/profile.php?id=100057392223857 \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-facebook-f\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"https://www.linkedin.com/company/business-hub-international-investment\\r\\n\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-linkedin\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"https://www.instagram.com/businesshubi/?igsh=MTJ3ejZneWdmbTM3bQ%3D%3D \\r\\n\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-instagram\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"https://www.tiktok.com/@businesshubi?_t=8kpkLWbTrAU&_r=1 \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-tiktok\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"copy-right\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"\\xA9 2024, 2024 Business HUB international investment - All Rights Reserved.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 5\n }, _this);\n};\n\n_c = Footer;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Footer);\n\nvar _c;\n\n$RefreshReg$(_c, \"Footer\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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LG9CQUFJLEVBQUMsNEVBRFA7QUFBQSx1Q0FJRTtBQUFHLDJCQUFTLEVBQUM7QUFBYjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSkY7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFWRixlQWdCRTtBQUFHLG9CQUFJLEVBQUMsMkRBQVI7QUFBQSx1Q0FDRTtBQUFHLDJCQUFTLEVBQUM7QUFBYjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFoQkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQVJGLGVBNEJFO0FBQUssdUJBQVMsRUFBQyxZQUFmO0FBQUEscUNBQ0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQTVCRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQW5DRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxXQURGO0FBK0VELENBaEZEOztLQUFNSDtBQWtGTiwrREFBZUEsTUFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tcG9uZW50cy9Gb290ZXIvZm9vdGVyLmpzeD9mMzk0Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBuZXh0L25leHQvbm8taW1nLWVsZW1lbnQgKi9cclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgTGluayBmcm9tIFwibmV4dC9saW5rXCI7XHJcbmltcG9ydCBhcHBEYXRhIGZyb20gXCIuLi8uLi9kYXRhL2FwcC5qc29uXCI7XHJcblxyXG5jb25zdCBGb290ZXIgPSAoeyBoaWRlQkdDT0xPUiB9KSA9PiB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxmb290ZXIgY2xhc3NOYW1lPXtgJHshaGlkZUJHQ09MT1IgPyBcInN1Yi1iZ1wiIDogXCJcIn1gfT5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctNFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGl0bGVcIj5cclxuICAgICAgICAgICAgICAgIDxoNT5Db250YWN0IFVzPC9oNT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24gcGUtN3MtbWFwLW1hcmtlclwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg2Pk9mZmljZWFsIEFkZHJlc3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgQmFnaGRhZCBTdHJlZXQsIEFsIERhbmEgYXJlYSwgQWJ1IERoYWJpLCBVbml0ZWQgQXJhYlxyXG4gICAgICAgICAgICAgICAgICAgICAgRW1pcmF0ZXNcclxuICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvbiBwZS03cy1tYWlsXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+RW1haWwgVXM8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPmhlbGxvQGJ1c2luZXNzaHViLmFidWRoYWJpPC9wPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24gcGUtN3MtY2FsbFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg2PkNhbGwgVXM8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPis5NzEgMjYzNDA0MDQ8L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsb2dvXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgICAgIHNyYz17YXBwRGF0YS5mb290ZXJMb2dvfVxyXG4gICAgICAgICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogXCIxNTBweFwiIH19XHJcbiAgICAgICAgICAgICAgICAgIGFsdD1cIlwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic29jaWFsXCI+XHJcbiAgICAgICAgICAgICAgICA8YSBocmVmPVwiaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL3Byb2ZpbGUucGhwP2lkPTEwMDA1NzM5MjIyMzg1NyBcIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwiZmFiIGZhLWZhY2Vib29rLWZcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICBocmVmPVwiaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2NvbXBhbnkvYnVzaW5lc3MtaHViLWludGVybmF0aW9uYWwtaW52ZXN0bWVudFxyXG5cIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYWIgZmEtbGlua2VkaW5cIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICBocmVmPVwiaHR0cHM6Ly93d3cuaW5zdGFncmFtLmNvbS9idXNpbmVzc2h1YmkvP2lnc2g9TVRKM2VqWm5lV2RtYlRNM2JRJTNEJTNEIFxyXG5cIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYWIgZmEtaW5zdGFncmFtXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgPGEgaHJlZj1cImh0dHBzOi8vd3d3LnRpa3Rvay5jb20vQGJ1c2luZXNzaHViaT9fdD04a3BrTFdiVHJBVSZfcj0xIFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYWIgZmEtdGlrdG9rXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29weS1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgIMKpIDIwMjQsIDIwMjQgQnVzaW5lc3MgSFVCIGludGVybmF0aW9uYWwgaW52ZXN0bWVudCAtIEFsbFxyXG4gICAgICAgICAgICAgICAgICBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9mb290ZXI+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IEZvb3RlcjtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiTGluayIsImFwcERhdGEiLCJGb290ZXIiLCJoaWRlQkdDT0xPUiIsImZvb3RlckxvZ28iLCJ3aWR0aCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Footer/footer.jsx\n"); + +/***/ }) + +}); \ No newline at end of file diff --git a/.next/static/webpack/pages/contact/contact-light.6462c7a69105e22a.hot-update.js b/.next/static/webpack/pages/contact/contact-light.6462c7a69105e22a.hot-update.js new file mode 100644 index 0000000..5789670 --- /dev/null +++ b/.next/static/webpack/pages/contact/contact-light.6462c7a69105e22a.hot-update.js @@ -0,0 +1,22 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("pages/contact/contact-light",{ + +/***/ "./src/components/Contact-form/contact-form.jsx": +/*!******************************************************!*\ + !*** ./src/components/Contact-form/contact-form.jsx ***! + \******************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node_modules/@babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n/* harmony import */ var C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _data_sections_form_info_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../data/sections/form-info.json */ \"./src/data/sections/form-info.json\");\n/* harmony import */ var formik__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! formik */ \"./node_modules/formik/dist/formik.esm.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__);\n/* module decorator */ module = __webpack_require__.hmd(module);\n\n\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Contact-form\\\\contact-form.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n\n\n\n\n\n\nvar ContactForm = function ContactForm() {\n _s();\n\n var messageRef = react__WEBPACK_IMPORTED_MODULE_2___default().useRef(null);\n\n function validateEmail(value) {\n var error;\n\n if (!value) {\n error = \"Required\";\n } else if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i.test(value)) {\n error = \"Invalid email address\";\n }\n\n return error;\n }\n\n var sendMessage = function sendMessage(ms) {\n return new Promise(function (r) {\n return setTimeout(r, ms);\n });\n };\n\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"section\", {\n className: \"contact section-padding\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"col-lg-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"form md-mb50\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"h4\", {\n className: \"fw-700 color-font mb-50\",\n children: \"Get In Touch.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(formik__WEBPACK_IMPORTED_MODULE_4__.Formik, {\n initialValues: {\n name: \"\",\n email: \"\",\n message: \"\"\n },\n onSubmit: /*#__PURE__*/function () {\n var _ref = (0,C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee(values) {\n return C_Users_hp_Desktop_business_hub_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return sendMessage(500);\n\n case 2:\n alert(JSON.stringify(values, null, 2)); // show message\n\n messageRef.current.innerText = \"Your Message has been successfully sent. I will contact you soon.\"; // Reset the values\n\n values.name = \"\";\n values.email = \"\";\n values.message = \"\"; // clear message\n\n setTimeout(function () {\n messageRef.current.innerText = \"\";\n }, 2000);\n\n case 8:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function (_x) {\n return _ref.apply(this, arguments);\n };\n }(),\n children: function children(_ref2) {\n var errors = _ref2.errors,\n touched = _ref2.touched;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(formik__WEBPACK_IMPORTED_MODULE_4__.Form, {\n id: \"contact-form\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"messages\",\n ref: messageRef\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"controls\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"form-group\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(formik__WEBPACK_IMPORTED_MODULE_4__.Field, {\n id: \"form_name\",\n type: \"text\",\n name: \"name\",\n placeholder: \"Name\",\n required: \"required\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 25\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 51,\n columnNumber: 23\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"form-group\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(formik__WEBPACK_IMPORTED_MODULE_4__.Field, {\n validate: validateEmail,\n id: \"form_email\",\n type: \"email\",\n name: \"email\",\n placeholder: \"Email\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 61,\n columnNumber: 25\n }, _this), errors.email && touched.email && /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n children: errors.email\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 27\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 60,\n columnNumber: 23\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"form-group\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(formik__WEBPACK_IMPORTED_MODULE_4__.Field, {\n as: \"textarea\",\n id: \"form_message\",\n name: \"message\",\n placeholder: \"Message\",\n rows: \"4\",\n required: \"required\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"button\", {\n type: \"submit\",\n className: \"butn bord\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"span\", {\n children: \"Send Message\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 84,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 19\n }, _this);\n }\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"col-lg-5 offset-lg-1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"cont-info\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"h4\", {\n className: \"fw-700 color-font mb-50\",\n children: \"Contact Info.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"h3\", {\n className: \"wow\",\n \"data-splitting\": true,\n children: _data_sections_form_info_json__WEBPACK_IMPORTED_MODULE_3__.title\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"item mb-40\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"h5\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: _data_sections_form_info_json__WEBPACK_IMPORTED_MODULE_3__.email\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 100,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 99,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"h5\", {\n children: _data_sections_form_info_json__WEBPACK_IMPORTED_MODULE_3__.phone\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 102,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 98,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"h3\", {\n className: \"wow\",\n \"data-splitting\": true,\n children: \"Visit Us.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 104,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"item\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"h6\", {\n children: [_data_sections_form_info_json__WEBPACK_IMPORTED_MODULE_3__.location.first, /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"br\", {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 19\n }, _this), _data_sections_form_info_json__WEBPACK_IMPORTED_MODULE_3__.location.second]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 108,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 107,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"div\", {\n className: \"social mt-50\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"a\", {\n href: \"https://www.facebook.com/profile.php?id=100057392223857 \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"i\", {\n className: \"fab fa-facebook-f\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"a\", {\n href: \"https://www.linkedin.com/company/business-hub-international-investment\\r\\n\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"i\", {\n className: \"fab fa-linkedin\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 122,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"a\", {\n href: \"https://www.instagram.com/businesshubi/?igsh=MTJ3ejZneWdmbTM3bQ%3D%3D \\r\\n\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(\"i\", {\n className: \"fab fa-instagram\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 5\n }, _this);\n};\n\n_s(ContactForm, \"08wNPsqzPEHJlhuELMqsTELuLqk=\");\n\n_c = ContactForm;\n/* harmony default export */ __webpack_exports__[\"default\"] = (ContactForm);\n\nvar _c;\n\n$RefreshReg$(_c, \"ContactForm\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9Db250YWN0LWZvcm0vY29udGFjdC1mb3JtLmpzeC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7OztBQUVBLElBQU1LLFdBQVcsR0FBRyxTQUFkQSxXQUFjLEdBQU07QUFBQTs7QUFDeEIsTUFBTUMsVUFBVSxHQUFHTixtREFBQSxDQUFhLElBQWIsQ0FBbkI7O0FBQ0EsV0FBU1EsYUFBVCxDQUF1QkMsS0FBdkIsRUFBOEI7QUFDNUIsUUFBSUMsS0FBSjs7QUFDQSxRQUFJLENBQUNELEtBQUwsRUFBWTtBQUNWQyxNQUFBQSxLQUFLLEdBQUcsVUFBUjtBQUNELEtBRkQsTUFFTyxJQUFJLENBQUMsNENBQTRDQyxJQUE1QyxDQUFpREYsS0FBakQsQ0FBTCxFQUE4RDtBQUNuRUMsTUFBQUEsS0FBSyxHQUFHLHVCQUFSO0FBQ0Q7O0FBQ0QsV0FBT0EsS0FBUDtBQUNEOztBQUNELE1BQU1FLFdBQVcsR0FBRyxTQUFkQSxXQUFjLENBQUNDLEVBQUQ7QUFBQSxXQUFRLElBQUlDLE9BQUosQ0FBWSxVQUFDQyxDQUFEO0FBQUEsYUFBT0MsVUFBVSxDQUFDRCxDQUFELEVBQUlGLEVBQUosQ0FBakI7QUFBQSxLQUFaLENBQVI7QUFBQSxHQUFwQjs7QUFDQSxzQkFDRTtBQUFTLGFBQVMsRUFBQyx5QkFBbkI7QUFBQSwyQkFDRTtBQUFLLGVBQVMsRUFBQyxXQUFmO0FBQUEsNkJBQ0U7QUFBSyxpQkFBUyxFQUFDLEtBQWY7QUFBQSxnQ0FDRTtBQUFLLG1CQUFTLEVBQUMsVUFBZjtBQUFBLGlDQUNFO0FBQUsscUJBQVMsRUFBQyxjQUFmO0FBQUEsb0NBQ0U7QUFBSSx1QkFBUyxFQUFDLHlCQUFkO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQURGLGVBRUUsOERBQUMsMENBQUQ7QUFDRSwyQkFBYSxFQUFFO0FBQ2JJLGdCQUFBQSxJQUFJLEVBQUUsRUFETztBQUViQyxnQkFBQUEsS0FBSyxFQUFFLEVB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Q0Usb0JBQUksRUFBQyw0RUFEUDtBQUFBLHVDQUlFO0FBQUcsMkJBQVMsRUFBQztBQUFiO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFKRjtBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQUpGLGVBVUU7QUFDRSxvQkFBSSxFQUFDLDRFQURQO0FBQUEsdUNBSUU7QUFBRywyQkFBUyxFQUFDO0FBQWI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUpGO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBVkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQXJCRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQXhFRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxXQURGO0FBd0hELENBcElEOztHQUFNSTs7S0FBQUE7QUFzSU4sK0RBQWVBLFdBQWYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2NvbXBvbmVudHMvQ29udGFjdC1mb3JtL2NvbnRhY3QtZm9ybS5qc3g/NGViOSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBDb250YWN0RnJvbURhdGUgZnJvbSBcIi4uLy4uL2RhdGEvc2VjdGlvbnMvZm9ybS1pbmZvLmpzb25cIjtcclxuaW1wb3J0IHsgRm9ybWlrLCBGb3JtLCBGaWVsZCB9IGZyb20gXCJmb3JtaWtcIjtcclxuXHJcbmNvbnN0IENvbnRhY3RGb3JtID0gKCkgPT4ge1xyXG4gIGNvbnN0IG1lc3NhZ2VSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XHJcbiAgZnVuY3Rpb24gdmFsaWRhdGVFbWFpbCh2YWx1ZSkge1xyXG4gICAgbGV0IGVycm9yO1xyXG4gICAgaWYgKCF2YWx1ZSkge1xyXG4gICAgICBlcnJvciA9IFwiUmVxdWlyZWRcIjtcclxuICAgIH0gZWxzZSBpZiAoIS9eW0EtWjAtOS5fJSstXStAW0EtWjAtOS4tXStcXC5bQS1aXXsyLDR9JC9pLnRlc3QodmFsdWUpKSB7XHJcbiAgICAgIGVycm9yID0gXCJJbnZhbGlkIGVtYWlsIGFkZHJlc3NcIjtcclxuICAgIH1cclxuICAgIHJldHVybiBlcnJvcjtcclxuICB9XHJcbiAgY29uc3Qgc2VuZE1lc3NhZ2UgPSAobXMpID0+IG5ldyBQcm9taXNlKChyKSA9PiBzZXRUaW1lb3V0KHIsIG1zKSk7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cImNvbnRhY3Qgc2VjdGlvbi1wYWRkaW5nXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb3JtIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwiZnctNzAwIGNvbG9yLWZvbnQgbWItNTBcIj5HZXQgSW4gVG91Y2guPC9oND5cclxuICAgICAgICAgICAgICA8Rm9ybWlrXHJcbiAgICAgICAgICAgICAgICBpbml0aWFsVmFsdWVzPXt7XHJcbiAgICAgICAgICAgICAgICAgIG5hbWU6IFwiXCIsXHJcbiAgICAgICAgICAgICAgICAgIGVtYWlsOiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIG9uU3VibWl0PXthc3luYyAodmFsdWVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGF3YWl0IHNlbmRNZXNzYWdlKDUwMCk7XHJcbiAgICAgICAgICAgICAgICAgIGFsZXJ0KEpTT04uc3RyaW5naWZ5KHZhbHVlcywgbnVsbCwgMikpO1xyXG4gICAgICAgICAgICAgICAgICAvLyBzaG93IG1lc3NhZ2VcclxuXHJcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2VSZWYuY3VycmVudC5pbm5lclRleHQgPVxyXG4gICAgICAgICAgICAgICAgICAgIFwiWW91ciBNZXNzYWdlIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSBzZW50LiBJIHdpbGwgY29udGFjdCB5b3Ugc29vbi5cIjtcclxuICAgICAgICAgICAgICAgICAgLy8gUmVzZXQgdGhlIHZhbHVlc1xyXG4gICAgICAgICAgICAgICAgICB2YWx1ZXMubmFtZSA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgICAgIHZhbHVlcy5lbWFpbCA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgICAgIHZhbHVlcy5tZXNzYWdlID0gXCJcIjtcclxuICAgICAgICAgICAgICAgICAgLy8gY2xlYXIgbWVzc2FnZVxyXG4gICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlUmVmLmN1cnJlbnQuaW5uZXJUZXh0ID0gXCJcIjtcclxuICAgICAgICAgICAgICAgICAgfSwgMjAwMCk7XHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIHsoeyBlcnJvcnMsIHRvdWNoZWQgfSkgPT4gKFxyXG4gICAgICAgICAgICAgICAgICA8Rm9ybSBpZD1cImNvbnRhY3QtZm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWVzc2FnZXNcIiByZWY9e21lc3NhZ2VSZWZ9PjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udHJvbHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8RmllbGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImZvcm1fbmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJuYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIk5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPVwicmVxdWlyZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPEZpZWxkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGU9e3ZhbGlkYXRlRW1haWx9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJmb3JtX2VtYWlsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiZW1haWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJlbWFpbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFbWFpbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtlcnJvcnMuZW1haWwgJiYgdG91Y2hlZC5lbWFpbCAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj57ZXJyb3JzLmVtYWlsfTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8RmllbGRcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXM9XCJ0ZXh0YXJlYVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiZm9ybV9tZXNzYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cIm1lc3NhZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIk1lc3NhZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByb3dzPVwiNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPVwicmVxdWlyZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3NOYW1lPVwiYnV0biBib3JkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5TZW5kIE1lc3NhZ2U8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDwvRm9ybT5cclxuICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgPC9Gb3JtaWs+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy01IG9mZnNldC1sZy0xXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udC1pbmZvXCI+XHJcbiAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cImZ3LTcwMCBjb2xvci1mb250IG1iLTUwXCI+Q29udGFjdCBJbmZvLjwvaDQ+XHJcbiAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cIndvd1wiIGRhdGEtc3BsaXR0aW5nPlxyXG4gICAgICAgICAgICAgICAge0NvbnRhY3RGcm9tRGF0ZS50aXRsZX1cclxuICAgICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBtYi00MFwiPlxyXG4gICAgICAgICAgICAgICAgPGg1PlxyXG4gICAgICAgICAgICAgICAgICA8YSBocmVmPVwiIzBcIj57Q29udGFjdEZyb21EYXRlLmVtYWlsfTwvYT5cclxuICAgICAgICAgICAgICAgIDwvaDU+XHJcbiAgICAgICAgICAgICAgICA8aDU+e0NvbnRhY3RGcm9tRGF0ZS5waG9uZX08L2g1PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJ3b3dcIiBkYXRhLXNwbGl0dGluZz5cclxuICAgICAgICAgICAgICAgIFZpc2l0IFVzLlxyXG4gICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+XHJcbiAgICAgICAgICAgICAgICAgIHtDb250YWN0RnJvbURhdGUubG9jYXRpb24uZmlyc3R9XHJcbiAgICAgICAgICAgICAgICAgIDxiciAvPlxyXG4gICAgICAgICAgICAgICAgICB7Q29udGFjdEZyb21EYXRlLmxvY2F0aW9uLnNlY29uZH1cclxuICAgICAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzb2NpYWwgbXQtNTBcIj5cclxuICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJodHRwczovL3d3dy5mYWNlYm9vay5jb20vcHJvZmlsZS5waHA/aWQ9MTAwMDU3MzkyMjIzODU3IFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYWIgZmEtZmFjZWJvb2stZlwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL3d3dy5saW5rZWRpbi5jb20vY29tcGFueS9idXNpbmVzcy1odWItaW50ZXJuYXRpb25hbC1pbnZlc3RtZW50XHJcblwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhYiBmYS1saW5rZWRpblwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL3d3dy5pbnN0YWdyYW0uY29tL2J1c2luZXNzaHViaS8/aWdzaD1NVEozZWpabmVXZG1iVE0zYlElM0QlM0QgXHJcblwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhYiBmYS1pbnN0YWdyYW1cIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBDb250YWN0Rm9ybTtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiQ29udGFjdEZyb21EYXRlIiwiRm9ybWlrIiwiRm9ybSIsIkZpZWxkIiwiQ29udGFjdEZvcm0iLCJtZXNzYWdlUmVmIiwidXNlUmVmIiwidmFsaWRhdGVFbWFpbCIsInZhbHVlIiwiZXJyb3IiLCJ0ZXN0Iiwic2VuZE1lc3NhZ2UiLCJtcyIsIlByb21pc2UiLCJyIiwic2V0VGltZW91dCIsIm5hbWUiLCJlbWFpbCIsIm1lc3NhZ2UiLCJ2YWx1ZXMiLCJhbGVydCIsIkpTT04iLCJzdHJpbmdpZnkiLCJjdXJyZW50IiwiaW5uZXJUZXh0IiwiZXJyb3JzIiwidG91Y2hlZCIsInRpdGxlIiwicGhvbmUiLCJsb2NhdGlvbiIsImZpcnN0Iiwic2Vjb25kIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Contact-form/contact-form.jsx\n"); + +/***/ }) + +}); \ No newline at end of file diff --git a/.next/static/webpack/pages/contact/contact-light.e4173c3213e1a52a.hot-update.js b/.next/static/webpack/pages/contact/contact-light.e4173c3213e1a52a.hot-update.js new file mode 100644 index 0000000..8072335 --- /dev/null +++ b/.next/static/webpack/pages/contact/contact-light.e4173c3213e1a52a.hot-update.js @@ -0,0 +1,22 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("pages/contact/contact-light",{ + +/***/ "./src/pages/contact/contact-light.jsx": +/*!*********************************************!*\ + !*** ./src/pages/contact/contact-light.jsx ***! + \*********************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _components_Navbar_navbar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../components/Navbar/navbar */ \"./src/components/Navbar/navbar.jsx\");\n/* harmony import */ var _components_Footer_footer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../components/Footer/footer */ \"./src/components/Footer/footer.jsx\");\n/* harmony import */ var _layouts_Light__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../layouts/Light */ \"./src/layouts/Light.jsx\");\n/* harmony import */ var _components_Contact_header_contact_header__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../components/Contact-header/contact-header */ \"./src/components/Contact-header/contact-header.jsx\");\n/* harmony import */ var _components_Contact_form_contact_form__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../components/Contact-form/contact-form */ \"./src/components/Contact-form/contact-form.jsx\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\pages\\\\contact\\\\contact-light.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n/* eslint-disable @next/next/no-sync-scripts */\n\n\n\n\n\n\n\n\nvar Contact = function Contact() {\n _s();\n\n var navbarRef = react__WEBPACK_IMPORTED_MODULE_0___default().useRef(null);\n var logoRef = react__WEBPACK_IMPORTED_MODULE_0___default().useRef(null);\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n document.querySelector(\"body\").classList.add(\"contact-page\");\n var navbar = navbarRef.current,\n logo = logoRef.current;\n\n if (window.pageYOffset > 300) {\n navbar.classList.add(\"nav-scroll\");\n } else {\n navbar.classList.remove(\"nav-scroll\");\n }\n\n window.addEventListener(\"scroll\", function () {\n if (window.pageYOffset > 300) {\n navbar.classList.add(\"nav-scroll\");\n } else {\n navbar.classList.remove(\"nav-scroll\");\n }\n });\n return function () {\n document.querySelector(\"body\").classList.remove(\"contact-page\");\n };\n }, [navbarRef]);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(_layouts_Light__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(_components_Navbar_navbar__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n nr: navbarRef,\n lr: logoRef,\n theme: \"themeL\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(_components_Contact_header_contact_header__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n blackStar: true\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(\"div\", {\n className: \"main-content\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(_components_Contact_form_contact_form__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(_components_Footer_footer__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n hideBGCOLOR: true\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 9\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 5\n }, _this);\n};\n\n_s(Contact, \"NJv/rvX5fPwWhnPtkwq0tuwt7xI=\");\n\n_c = Contact;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Contact);\n\nvar _c;\n\n$RefreshReg$(_c, \"Contact\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvcGFnZXMvY29udGFjdC9jb250YWN0LWxpZ2h0LmpzeC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsSUFBTU0sT0FBTyxHQUFHLFNBQVZBLE9BQVUsR0FBTTtBQUFBOztBQUNwQixNQUFNQyxTQUFTLEdBQUdQLG1EQUFBLENBQWEsSUFBYixDQUFsQjtBQUNBLE1BQU1TLE9BQU8sR0FBR1QsbURBQUEsQ0FBYSxJQUFiLENBQWhCO0FBRUFBLEVBQUFBLHNEQUFBLENBQWdCLFlBQU07QUFDcEJXLElBQUFBLFFBQVEsQ0FBQ0MsYUFBVCxDQUF1QixNQUF2QixFQUErQkMsU0FBL0IsQ0FBeUNDLEdBQXpDLENBQTZDLGNBQTdDO0FBQ0EsUUFBSUMsTUFBTSxHQUFHUixTQUFTLENBQUNTLE9BQXZCO0FBQUEsUUFDRUMsSUFBSSxHQUFHUixPQUFPLENBQUNPLE9BRGpCOztBQUVBLFFBQUlFLE1BQU0sQ0FBQ0MsV0FBUCxHQUFxQixHQUF6QixFQUE4QjtBQUM1QkosTUFBQUEsTUFBTSxDQUFDRixTQUFQLENBQWlCQyxHQUFqQixDQUFxQixZQUFyQjtBQUNELEtBRkQsTUFFTztBQUNMQyxNQUFBQSxNQUFNLENBQUNGLFNBQVAsQ0FBaUJPLE1BQWpCLENBQXdCLFlBQXhCO0FBQ0Q7O0FBQ0RGLElBQUFBLE1BQU0sQ0FBQ0csZ0JBQVAsQ0FBd0IsUUFBeEIsRUFBa0MsWUFBTTtBQUN0QyxVQUFJSCxNQUFNLENBQUNDLFdBQVAsR0FBcUIsR0FBekIsRUFBOEI7QUFDNUJKLFFBQUFBLE1BQU0sQ0FBQ0YsU0FBUCxDQUFpQkMsR0FBakIsQ0FBcUIsWUFBckI7QUFDRCxPQUZELE1BRU87QUFDTEMsUUFBQUEsTUFBTSxDQUFDRixTQUFQLENBQWlCTyxNQUFqQixDQUF3QixZQUF4QjtBQUNEO0FBQ0YsS0FORDtBQU9BLFdBQU8sWUFBTTtBQUNYVCxNQUFBQSxRQUFRLENBQUNDLGFBQVQsQ0FBdUIsTUFBdkIsRUFBK0JDLFNBQS9CLENBQXlDTyxNQUF6QyxDQUFnRCxjQUFoRDtBQUNELEtBRkQ7QUFHRCxHQW5CRCxFQW1CRyxDQUFDYixTQUFELENBbkJIO0FBcUJBLHNCQUNFLDhEQUFDLHNEQUFEO0FBQUEsNEJBQ0UsOERBQUMsaUVBQUQ7QUFBUSxRQUFFLEVBQUVBLFNBQVo7QUFBdUIsUUFBRSxFQUFFRSxPQUEzQjtBQUFvQyxXQUFLLEVBQUM7QUFBMUM7QUFBQTtBQUFBO0FBQUE7QUFBQSxhQURGLGVBRUUsOERBQUMsaUZBQUQ7QUFBZSxlQUFTO0FBQXhCO0FBQUE7QUFBQTtBQUFBO0FBQUEsYUFGRixlQUdFO0FBQUssZUFBUyxFQUFDLGNBQWY7QUFBQSw4QkFDRSw4REFBQyw2RUFBRDtBQUFBO0FBQUE7QUFBQTtBQUFBLGVBREYsZUFRRSw4REFBQyxpRUFBRDtBQUFRLG1CQUFXO0FBQW5CO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFSRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsYUFIRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsV0FERjtBQWdCRCxDQXpDRDs7R0FBTUg7O0tBQUFBO0FBMkNOLCtEQUFlQSxPQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9wYWdlcy9jb250YWN0L2NvbnRhY3QtbGlnaHQuanN4Pzk1MmIiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1zeW5jLXNjcmlwdHMgKi9cclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgTmF2YmFyIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL05hdmJhci9uYXZiYXJcIjtcclxuaW1wb3J0IEZvb3RlciBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9Gb290ZXIvZm9vdGVyXCI7XHJcbmltcG9ydCBMaWdodFRoZW1lIGZyb20gXCIuLi8uLi9sYXlvdXRzL0xpZ2h0XCI7XHJcbmltcG9ydCBDb250YWN0SGVhZGVyIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL0NvbnRhY3QtaGVhZGVyL2NvbnRhY3QtaGVhZGVyXCI7XHJcbmltcG9ydCBDb250YWN0Rm9ybSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9Db250YWN0LWZvcm0vY29udGFjdC1mb3JtXCI7XHJcblxyXG5jb25zdCBDb250YWN0ID0gKCkgPT4ge1xyXG4gIGNvbnN0IG5hdmJhclJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcclxuICBjb25zdCBsb2dvUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xyXG5cclxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcImJvZHlcIikuY2xhc3NMaXN0LmFkZChcImNvbnRhY3QtcGFnZVwiKTtcclxuICAgIHZhciBuYXZiYXIgPSBuYXZiYXJSZWYuY3VycmVudCxcclxuICAgICAgbG9nbyA9IGxvZ29SZWYuY3VycmVudDtcclxuICAgIGlmICh3aW5kb3cucGFnZVlPZmZzZXQgPiAzMDApIHtcclxuICAgICAgbmF2YmFyLmNsYXNzTGlzdC5hZGQoXCJuYXYtc2Nyb2xsXCIpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbmF2YmFyLmNsYXNzTGlzdC5yZW1vdmUoXCJuYXYtc2Nyb2xsXCIpO1xyXG4gICAgfVxyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgKCkgPT4ge1xyXG4gICAgICBpZiAod2luZG93LnBhZ2VZT2Zmc2V0ID4gMzAwKSB7XHJcbiAgICAgICAgbmF2YmFyLmNsYXNzTGlzdC5hZGQoXCJuYXYtc2Nyb2xsXCIpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG5hdmJhci5jbGFzc0xpc3QucmVtb3ZlKFwibmF2LXNjcm9sbFwiKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiYm9keVwiKS5jbGFzc0xpc3QucmVtb3ZlKFwiY29udGFjdC1wYWdlXCIpO1xyXG4gICAgfTtcclxuICB9LCBbbmF2YmFyUmVmXSk7XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8TGlnaHRUaGVtZT5cclxuICAgICAgPE5hdmJhciBucj17bmF2YmFyUmVmfSBscj17bG9nb1JlZn0gdGhlbWU9XCJ0aGVtZUxcIiAvPlxyXG4gICAgICA8Q29udGFjdEhlYWRlciBibGFja1N0YXIgLz5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYWluLWNvbnRlbnRcIj5cclxuICAgICAgICA8Q29udGFjdEZvcm0gLz5cclxuICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJtYXBcIiBpZD1cImllYXRtYXBzXCI+XHJcbiAgICAgICAgICA8aWZyYW1lXHJcbiAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vbWFwcy5hcHAuZ29vLmdsL2c2OUo5RFRLUmZqS0U5VkM5XCJcclxuICAgICAgICAgICAgbG9hZGluZz1cImxhenlcIlxyXG4gICAgICAgICAgPjwvaWZyYW1lPlxyXG4gICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICA8Rm9vdGVyIGhpZGVCR0NPTE9SIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9MaWdodFRoZW1lPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBDb250YWN0O1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJOYXZiYXIiLCJGb290ZXIiLCJMaWdodFRoZW1lIiwiQ29udGFjdEhlYWRlciIsIkNvbnRhY3RGb3JtIiwiQ29udGFjdCIsIm5hdmJhclJlZiIsInVzZVJlZiIsImxvZ29SZWYiLCJ1c2VFZmZlY3QiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJjbGFzc0xpc3QiLCJhZGQiLCJuYXZiYXIiLCJjdXJyZW50IiwibG9nbyIsIndpbmRvdyIsInBhZ2VZT2Zmc2V0IiwicmVtb3ZlIiwiYWRkRXZlbnRMaXN0ZW5lciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/pages/contact/contact-light.jsx\n"); + +/***/ }) + +}); \ No newline at end of file diff --git a/.next/static/webpack/pages/index.034483604fba37f4.hot-update.js b/.next/static/webpack/pages/index.034483604fba37f4.hot-update.js new file mode 100644 index 0000000..70e52c5 --- /dev/null +++ b/.next/static/webpack/pages/index.034483604fba37f4.hot-update.js @@ -0,0 +1,22 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("pages/index",{ + +/***/ "./src/components/Team/team.jsx": +/*!**************************************!*\ + !*** ./src/components/Team/team.jsx ***! + \**************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/teamSkillsProgress */ \"./src/common/teamSkillsProgress.js\");\n/* harmony import */ var _common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/tooltipEffect */ \"./src/common/tooltipEffect.js\");\n/* harmony import */ var _data_sections_team_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../data/sections/team.json */ \"./src/data/sections/team.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Team\\\\team.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nvar Team = function Team() {\n _s();\n\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n (0,_common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n setTimeout(function () {\n (0,_common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__[\"default\"])();\n }, 1000);\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"section\", {\n className: \"team section-padding\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Our Team\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: \"Our team will simplify business setup in the UAE\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container-fluid\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/01.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/02.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/03.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 117,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/04.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/05.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/06.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/07.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 292,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 291,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 297,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 299,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 298,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 280,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 275,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/08.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 319,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 333,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 332,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 338,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 340,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 339,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 321,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 320,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 318,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 317,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 316,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/09.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 361,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 375,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 374,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 380,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 382,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 381,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 363,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 362,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 360,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 359,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 358,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/10.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 401,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 415,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 414,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 420,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 422,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 421,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 403,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 402,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 400,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 399,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 398,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/11.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 441,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 455,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 454,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 460,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 462,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 461,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 443,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 442,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 440,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 439,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 438,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/12.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 482,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 496,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 495,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 501,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 503,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 502,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 484,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 483,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 481,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 480,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 479,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 357,\n columnNumber: 9\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 5\n }, _this);\n};\n\n_s(Team, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = Team;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Team);\n\nvar _c;\n\n$RefreshReg$(_c, \"Team\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFBQSxXQURGO0FBNmZELENBcGdCRDs7R0FBTUU7O0tBQUFBO0FBc2dCTiwrREFBZUEsSUFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tcG9uZW50cy9UZWFtL3RlYW0uanN4P2I2OGUiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB0ZWFtU2tpbGxzUHJvZ3Jlc3MgZnJvbSBcIi4uLy4uL2NvbW1vbi90ZWFtU2tpbGxzUHJvZ3Jlc3NcIjtcclxuaW1wb3J0IHRvb2x0aXBFZmZlY3QgZnJvbSBcIi4uLy4uL2NvbW1vbi90b29sdGlwRWZmZWN0XCI7XHJcbmltcG9ydCB0ZWFtc0RhdGUgZnJvbSBcIi4uLy4uL2RhdGEvc2VjdGlvbnMvdGVhbS5qc29uXCI7XHJcblxyXG5jb25zdCBUZWFtID0gKCkgPT4ge1xyXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICB0ZWFtU2tpbGxzUHJvZ3Jlc3MoKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0b29sdGlwRWZmZWN0KCk7XHJcbiAgICB9LCAxMDAwKTtcclxuICB9LCBbXSk7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInRlYW0gc2VjdGlvbi1wYWRkaW5nXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOCBjb2wtbWQtMTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWMtaGVhZCB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNiBjbGFzc05hbWU9XCJ3b3cgZmFkZUluXCIgZGF0YS13b3ctZGVsYXk9XCIuNXNcIj5cclxuICAgICAgICAgICAgICAgIE91ciBUZWFtXHJcbiAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwid293IGNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgIE91ciB0ZWFtIHdpbGwgc2ltcGxpZnkgYnVzaW5lc3Mgc2V0dXAgaW4gdGhlIFVBRVxyXG4gICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wMS53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUxXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDRU8gTWFuYWdlciBDRU8gTWFuYWdlciBDRU8gTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzAyLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTJcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIHNtLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDMud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlM1wiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDQud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlNFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzA1LndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTFcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgxXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENFTyBNYW5hZ2VyIENFTyBNYW5hZ2VyIENFTyBNYW5hZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDYud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlMlwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDJcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJpb3IgRGVzaWduZXIgSW50ZXJpb3IgRGVzaWduZXIgSW50ZXJpb3IgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgc20tbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wNy53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUzXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wOC53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGU0XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoNFwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDbGllbnQgTWFuYWdlciBDbGllbnQgTWFuYWdlciBDbGllbnQgTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDkud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlMVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ0VPIE1hbmFnZXIgQ0VPIE1hbmFnZXIgQ0VPIE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8xMC53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMlwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBJbnRlcmlvciBEZXNpZ25lciBJbnRlcmlvciBEZXNpZ25lciBJbnRlcmlvciBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBzbS1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzExLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTNcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzEyLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTRcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGg0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGg0XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGg0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENsaWVudCBNYW5hZ2VyIENsaWVudCBNYW5hZ2VyIENsaWVudCBNYW5hZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvc2VjdGlvbj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgVGVhbTtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwidGVhbVNraWxsc1Byb2dyZXNzIiwidG9vbHRpcEVmZmVjdCIsInRlYW1zRGF0ZSIsIlRlYW0iLCJ1c2VFZmZlY3QiLCJzZXRUaW1lb3V0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Team/team.jsx\n"); + +/***/ }) + +}); \ No newline at end of file diff --git a/.next/static/webpack/pages/index.0b7a364af5a62ce6.hot-update.js b/.next/static/webpack/pages/index.0b7a364af5a62ce6.hot-update.js new file mode 100644 index 0000000..7017a2a --- /dev/null +++ b/.next/static/webpack/pages/index.0b7a364af5a62ce6.hot-update.js @@ -0,0 +1,22 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("pages/index",{ + +/***/ "./src/components/Footer/footer.jsx": +/*!******************************************!*\ + !*** ./src/components/Footer/footer.jsx ***! + \******************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _data_app_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../data/app.json */ \"./src/data/app.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Footer\\\\footer.jsx\",\n _this = undefined;\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\nvar Footer = function Footer(_ref) {\n var hideBGCOLOR = _ref.hideBGCOLOR;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"footer\", {\n className: \"\".concat(!hideBGCOLOR ? \"sub-bg\" : \"\"),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item md-mb50\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"title\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h5\", {\n children: \"Contact Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"ul\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-map-marker\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Officeal Address\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"Baghdad Street, Al Dana area, Abu Dhabi, United Arab Emirates\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-mail\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Email Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"hello@businesshub.abudhabi\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-call\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Call Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"+971 26340404\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"logo\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.footerLogo,\n style: {\n width: \"150px\"\n },\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"social\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-facebook-f\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-twitter\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 59,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-instagram\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 61,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-youtube\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"copy-right\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"\\xA9 2024, 2024 Business HUB international investment - All Rights Reserved.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 5\n }, _this);\n};\n\n_c = Footer;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Footer);\n\nvar _c;\n\n$RefreshReg$(_c, \"Footer\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QkFBSSxFQUFDLElBQVI7QUFBQSx1Q0FDRTtBQUFHLDJCQUFTLEVBQUM7QUFBYjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFQRixlQVVFO0FBQUcsb0JBQUksRUFBQyxJQUFSO0FBQUEsdUNBQ0U7QUFBRywyQkFBUyxFQUFDO0FBQWI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBVkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQVJGLGVBc0JFO0FBQUssdUJBQVMsRUFBQyxZQUFmO0FBQUEscUNBQ0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQXRCRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQW5DRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxXQURGO0FBeUVELENBMUVEOztLQUFNSDtBQTRFTiwrREFBZUEsTUFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tcG9uZW50cy9Gb290ZXIvZm9vdGVyLmpzeD9mMzk0Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBuZXh0L25leHQvbm8taW1nLWVsZW1lbnQgKi9cclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgTGluayBmcm9tIFwibmV4dC9saW5rXCI7XHJcbmltcG9ydCBhcHBEYXRhIGZyb20gXCIuLi8uLi9kYXRhL2FwcC5qc29uXCI7XHJcblxyXG5jb25zdCBGb290ZXIgPSAoeyBoaWRlQkdDT0xPUiB9KSA9PiB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxmb290ZXIgY2xhc3NOYW1lPXtgJHshaGlkZUJHQ09MT1IgPyBcInN1Yi1iZ1wiIDogXCJcIn1gfT5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctNFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGl0bGVcIj5cclxuICAgICAgICAgICAgICAgIDxoNT5Db250YWN0IFVzPC9oNT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24gcGUtN3MtbWFwLW1hcmtlclwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg2Pk9mZmljZWFsIEFkZHJlc3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgQmFnaGRhZCBTdHJlZXQsIEFsIERhbmEgYXJlYSwgQWJ1IERoYWJpLCBVbml0ZWQgQXJhYlxyXG4gICAgICAgICAgICAgICAgICAgICAgRW1pcmF0ZXNcclxuICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvbiBwZS03cy1tYWlsXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+RW1haWwgVXM8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPmhlbGxvQGJ1c2luZXNzaHViLmFidWRoYWJpPC9wPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24gcGUtN3MtY2FsbFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg2PkNhbGwgVXM8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPis5NzEgMjYzNDA0MDQ8L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsb2dvXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgICAgIHNyYz17YXBwRGF0YS5mb290ZXJMb2dvfVxyXG4gICAgICAgICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogXCIxNTBweFwiIH19XHJcbiAgICAgICAgICAgICAgICAgIGFsdD1cIlwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic29jaWFsXCI+XHJcbiAgICAgICAgICAgICAgICA8YSBocmVmPVwiIzBcIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwiZmFiIGZhLWZhY2Vib29rLWZcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICA8YSBocmVmPVwiIzBcIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwiZmFiIGZhLXR3aXR0ZXJcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICA8YSBocmVmPVwiIzBcIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwiZmFiIGZhLWluc3RhZ3JhbVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYWIgZmEteW91dHViZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvcHktcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICDCqSAyMDI0LCAyMDI0IEJ1c2luZXNzIEhVQiBpbnRlcm5hdGlvbmFsIGludmVzdG1lbnQgLSBBbGxcclxuICAgICAgICAgICAgICAgICAgUmlnaHRzIFJlc2VydmVkLlxyXG4gICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZm9vdGVyPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBGb290ZXI7XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIkxpbmsiLCJhcHBEYXRhIiwiRm9vdGVyIiwiaGlkZUJHQ09MT1IiLCJmb290ZXJMb2dvIiwid2lkdGgiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/components/Footer/footer.jsx\n"); + +/***/ }) + +}); \ No newline at end of file diff --git a/.next/static/webpack/pages/index.14b03416c56e5a2c.hot-update.js b/.next/static/webpack/pages/index.14b03416c56e5a2c.hot-update.js new file mode 100644 index 0000000..804a959 --- /dev/null +++ b/.next/static/webpack/pages/index.14b03416c56e5a2c.hot-update.js @@ -0,0 +1,22 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("pages/index",{ + +/***/ "./src/components/Team/team.jsx": +/*!**************************************!*\ + !*** ./src/components/Team/team.jsx ***! + \**************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/teamSkillsProgress */ \"./src/common/teamSkillsProgress.js\");\n/* harmony import */ var _common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/tooltipEffect */ \"./src/common/tooltipEffect.js\");\n/* harmony import */ var _data_sections_team_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../data/sections/team.json */ \"./src/data/sections/team.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Team\\\\team.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nvar Team = function Team() {\n _s();\n\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n (0,_common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n setTimeout(function () {\n (0,_common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__[\"default\"])();\n }, 1000);\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"section\", {\n className: \"team section-padding\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Our Team\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: \"Our team will simplify business setup in the UAE\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container-fluid\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/01.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/02.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/03.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 117,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/04.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 5\n }, _this);\n};\n\n_s(Team, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = Team;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Team);\n\nvar _c;\n\n$RefreshReg$(_c, \"Team\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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X0UvLi9zcmMvY29tcG9uZW50cy9UZWFtL3RlYW0uanN4P2I2OGUiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB0ZWFtU2tpbGxzUHJvZ3Jlc3MgZnJvbSBcIi4uLy4uL2NvbW1vbi90ZWFtU2tpbGxzUHJvZ3Jlc3NcIjtcclxuaW1wb3J0IHRvb2x0aXBFZmZlY3QgZnJvbSBcIi4uLy4uL2NvbW1vbi90b29sdGlwRWZmZWN0XCI7XHJcbmltcG9ydCB0ZWFtc0RhdGUgZnJvbSBcIi4uLy4uL2RhdGEvc2VjdGlvbnMvdGVhbS5qc29uXCI7XHJcblxyXG5jb25zdCBUZWFtID0gKCkgPT4ge1xyXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICB0ZWFtU2tpbGxzUHJvZ3Jlc3MoKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0b29sdGlwRWZmZWN0KCk7XHJcbiAgICB9LCAxMDAwKTtcclxuICB9LCBbXSk7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInRlYW0gc2VjdGlvbi1wYWRkaW5nXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOCBjb2wtbWQtMTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWMtaGVhZCB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNiBjbGFzc05hbWU9XCJ3b3cgZmFkZUluXCIgZGF0YS13b3ctZGVsYXk9XCIuNXNcIj5cclxuICAgICAgICAgICAgICAgIE91ciBUZWFtXHJcbiAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwid293IGNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgIE91ciB0ZWFtIHdpbGwgc2ltcGxpZnkgYnVzaW5lc3Mgc2V0dXAgaW4gdGhlIFVBRVxyXG4gICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wMS53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUxXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDRU8gTWFuYWdlciBDRU8gTWFuYWdlciBDRU8gTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzAyLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTJcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIHNtLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDMud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlM1wiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDQud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlNFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBUZWFtO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJ0ZWFtU2tpbGxzUHJvZ3Jlc3MiLCJ0b29sdGlwRWZmZWN0IiwidGVhbXNEYXRlIiwiVGVhbSIsInVzZUVmZmVjdCIsInNldFRpbWVvdXQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/components/Team/team.jsx\n"); + +/***/ }) + +}); \ No newline at end of file diff --git a/.next/static/webpack/pages/index.27fbdb223e7cc361.hot-update.js b/.next/static/webpack/pages/index.27fbdb223e7cc361.hot-update.js new file mode 100644 index 0000000..70e52c5 --- /dev/null +++ b/.next/static/webpack/pages/index.27fbdb223e7cc361.hot-update.js @@ -0,0 +1,22 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("pages/index",{ + +/***/ "./src/components/Team/team.jsx": +/*!**************************************!*\ + !*** ./src/components/Team/team.jsx ***! + \**************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/teamSkillsProgress */ \"./src/common/teamSkillsProgress.js\");\n/* harmony import */ var _common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/tooltipEffect */ \"./src/common/tooltipEffect.js\");\n/* harmony import */ var _data_sections_team_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../data/sections/team.json */ \"./src/data/sections/team.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Team\\\\team.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nvar Team = function Team() {\n _s();\n\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n (0,_common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n setTimeout(function () {\n (0,_common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__[\"default\"])();\n }, 1000);\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"section\", {\n className: \"team section-padding\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Our Team\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: \"Our team will simplify business setup in the UAE\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container-fluid\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/01.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/02.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/03.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 117,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/04.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/05.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/06.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/07.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 292,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 291,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 297,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 299,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 298,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 280,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 275,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/08.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 319,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 333,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 332,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 338,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 340,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 339,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 321,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 320,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 318,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 317,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 316,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/09.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 361,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 375,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 374,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 380,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 382,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 381,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 363,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 362,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 360,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 359,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 358,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/10.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 401,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 415,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 414,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 420,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 422,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 421,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 403,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 402,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 400,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 399,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 398,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/11.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 441,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 455,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 454,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 460,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 462,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 461,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 443,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 442,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 440,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 439,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 438,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/12.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 482,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 496,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 495,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 501,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 503,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 502,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 484,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 483,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 481,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 480,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 479,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 357,\n columnNumber: 9\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 5\n }, _this);\n};\n\n_s(Team, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = Team;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Team);\n\nvar _c;\n\n$RefreshReg$(_c, \"Team\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9UZWFtL3RlYW0uanN4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFFQSxJQUFNSSxJQUFJLEdBQUcsU0FBUEEsSUFBTyxHQUFNO0FBQUE7O0FBQ2pCSixFQUFBQSxzREFBQSxDQUFnQixZQUFNO0FBQ3BCQyxJQUFBQSxzRUFBa0I7QUFDbEJLLElBQUFBLFVBQVUsQ0FBQyxZQUFNO0FBQ2ZKLE1BQUFBLGlFQUFhO0FBQ2QsS0FGUyxFQUVQLElBRk8sQ0FBVjtBQUdELEdBTEQsRUFLRyxFQUxIO0FBTUEsc0JBQ0U7QUFBUyxhQUFTLEVBQUMsc0JBQW5CO0FBQUEsNEJBQ0U7QUFBSyxlQUFTLEVBQUMsV0FBZjtBQUFBLDZCQUNFO0FBQUssaUJBQVMsRUFBQyw0QkFBZjtBQUFBLCtCQUNFO0FBQUssbUJBQVMsRUFBQyxvQkFBZjtBQUFBLGlDQUNFO0FBQUsscUJBQVMsRUFBQyxzQkFBZjtBQUFBLG9DQUNFO0FBQUksdUJBQVMsRUFBQyxZQUFkO0FBQTJCLGdDQUFlLEtBQTFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQURGLGVBSUU7QUFBSSx1QkFBUyxFQUFDLGdCQUFkO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQUpGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxhQURGLGVBZUU7QUFBSyxlQUFTLEVBQUMsaUJBQWY7QUFBQSw4QkFDRTtBQUFLLGlCQUFTLEVBQUMsS0FBZjtBQUFBLGdDQUNFO0FBQUssbUJBQVMsRUFBQyxtQkFBZjtBQUFBLGlDQUNFO0FBQUsscUJBQVMsRUFBQyxrQkFBZjtBQUFBLG1DQUNFO0FBQUssdUJBQVMsRUFBQyxLQUFmO0FBQUEsc0NBQ0U7QUFBSyxtQkFBRyxFQUFDLG1CQUFUO0FBQTZCLG1CQUFHLEVBQUM7QUFBakM7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFERixlQUVFO0FBQUssa0JBQUUsRUFBQyxTQUFSO0FBQUEsdUNBQ0U7QUFDRSx5QkFBTyxFQUFDLEtBRFY7QUFFRSx1QkFBSyxFQUFDLDRCQUZSO0FBR0UsbUJBQUMsRUFBQyxLQUhKO0FBSUUsbUJBQUMsRUFBQyxLQUpKO0FBS0UsdUJBQUssRUFBQyxPQUxSO0FBTUUsd0JBQU0sRUFBQyxPQU5UO0FBT0UseUJBQU8sRUFBQyxhQVBWO0FBUUUsa0NBQWdCLEVBQUMsaUJBUm5CO0FBU0UsMEJBQVEsRUFBQyxVQVRYO0FBQUEsMENBV0U7QUFBQSwyQ0FDRTtBQUNFLHdCQUFFLEVBQUMsYUFETDtBQUVFLHVCQUFDLEVBQUM7QUFGSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSwyQkFYRixlQWlCRTtBQUFRLHNCQUFFLEVBQUMsS0FBWDtBQUFpQixzQkFBRSxFQUFDLEtBQXBCO0FBQTBCLHFCQUFDLEVBQUMsSUFBNUI7QUFBaUMsd0JBQUksRUFBQztBQUF0QztBQUFBO0FBQUE7QUFBQTtBQUFBLDJCQWpCRixlQWtCRTtBQUFBLDJDQUNFO0FBQUssK0JBQVMsRUFBQyxjQUFmO0FBQThCLDBCQUFJLEVBQUM7QUFBbkM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBbEJGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBRkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBREYsZUF5Q0U7QUFBSyxtQkFBUyxFQUFDLG1CQUFmO0FBQUEsaUNBQ0U7QUFBSyxxQkFBUyxFQUFDLGtCQUFmO0FBQUEsbUNBQ0U7QUFBSyx1QkFBUyxFQUFDLEtBQWY7QUFBQSxzQ0FDRTtBQUFLLG1CQUFHLEVBQUMsbUJBQVQ7QUFBNkIsbUJBQUcsRUFBQztBQUFqQztBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQURGLGVBRUU7QUFBSyxrQkFBRSxFQUFDLFNBQVI7QUFBQSx1Q0FDRTtBQUNFLHlCQUFPLEVBQUMsS0FEVjtBQUVFLHVCQUFLLEVBQUMsNEJBRlI7QUFHRSxtQkFBQyxFQUFDLEtBSEo7QUFJRSxtQkFBQyxFQUFDLEtBSko7QUFLRSx1QkFBSyxFQUFDLE9BTFI7QUFNRSx3QkFBTSxFQUFDLE9BTlQ7QUFPRSx5QkFBTyxFQUFDLGFBUFY7QUFRRSxrQ0FBZ0IsRUFBQyxpQkFSbkI7QUFTRSwwQkFBUSxFQUFDLFVBVFg7QUFBQSwwQ0FXRTtBQUFBLDJDQUNFO0FBQ0Usd0JBQUUsRUFBQyxhQURMO0FBRUUsdUJBQUMsRUFBQztBQUZKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLDJCQVhGLGVBaUJFO0FBQVEsc0JBQUUsRUFBQyxLQUFYO0FBQWlCLHNCQUFFLEVBQUMsS0FBcEI7QUFBMEIscUJBQUMsRUFBQyxJQUE1QjtBQUFpQyx3QkFBSSxFQUFDO0FBQXRDO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBakJGLGVBa0JFO0FBQUEsMkNBQ0U7QUFBSywrQkFBUyxFQUFDLGNBQWY7QUFBOEIsMEJBQUksRUFBQztBQUFuQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSwyQkFsQkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFGRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkF6Q0YsZUFpRkU7QUFBSyxtQkFBUyxFQUFDLG1CQUFmO0FBQUEsaUNBQ0U7QUFBSyxxQkFBUyxFQUFDLGtCQUFmO0FBQUEsbUNBQ0U7QUFBSyx1QkFBUyxFQUFDLEtBQWY7QUFBQSxzQ0FDRTtBQUFLLG1CQUFHLEVBQUMsbUJBQVQ7QUFBNkIsbUJBQUcsRUFBQztBQUFqQztBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQURGLGVBRUU7QUFBSyxrQkFBRSxFQUFDLFNBQVI7QUFBQSx1Q0FDRTtBQUNFLHlCQUFPLEVBQUMsS0FEVjtBQUVFLHVCQUFLLEVBQUMsNEJBRlI7QUFHRSxtQkFBQyxFQUFDLEtBSEo7QUFJRSxtQkFBQyxFQUFDLEtBSko7QUFLRSx1QkFBSyxFQUFDLE9BTFI7QUFNRSx3QkFBTSxFQUFDLE9BTlQ7QUFPRSx5QkFBTyxFQUFDLGFBUFY7QUFRRSxrQ0FBZ0IsRUFBQyxpQkFSbkI7QUFTRSwwQkFBUSxFQUFDLFVBVFg7QUFBQSwwQ0FXRTtBQUFBLDJDQUNFO0FBQ0Usd0JBQUUsRUFBQyxhQURMO0FBRUUsdUJBQUMsRUFBQztBQUZKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLDJCQVhGLGVBaUJFO0FBQVEsc0JBQUUsRUFBQyxLQUFYO0FBQWlCLHNCQUFFLEVBQUMsS0FBcEI7QUFBMEIscUJBQUMsRUFBQyxJQUE1QjtBQUFpQyx3QkFBSSxFQUFDO0FBQXRDO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBakJGLGVBa0JFO0FBQUEsMkNBQ0U7QUFBSywrQkFBUyxFQUFDLGNBQWY7QUFBOEIsMEJBQUksRUFBQztBQUFuQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSwyQkFsQkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFGRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFqRkYsZUEwSEU7QUFBSyxtQkFBUyxFQUFDLG1CQUFmO0FBQUEsaUNBQ0U7QUFBSyxxQkFBUyxFQUFDLFVBQWY7QUFBQSxtQ0FDRTtBQUFLLHVCQUFTLEVBQUMsS0FBZjtBQUFBLHNDQUNFO0FBQUssbUJBQUcsRUFBQyxtQkFBVDtBQUE2QixtQkFBRyxFQUFDO0FBQWpDO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBREYsZUFFRTtBQUFLLGtCQUFFLEVBQUMsU0FBUjtBQUFBLHVDQUNFO0FBQ0UseUJBQU8sRUFBQyxLQURWO0FBRUUsdUJBQUssRUFBQyw0QkFGUjtBQUdFLG1CQUFDLEVBQUMsS0FISjtBQUlFLG1CQUFDLEVBQUMsS0FKSjtBQUtFLHVCQUFLLEVBQUMsT0FMUjtBQU1FLHdCQUFNLEVBQUMsT0FOVDtBQU9FLHlCQUFPLEVBQUMsYUFQVjtBQVFFLGtDQUFnQixFQUFDLGlCQVJuQjtBQVNFLDBCQUFRLEVBQUMsVUFUWDtBQUFBLDBDQVdFO0FBQUEsMkNBQ0U7QUFDRSx3QkFBRSxFQUFDLGFBREw7QUFFRSx1QkFBQyxFQUFDO0FBRko7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBWEYsZUFpQkU7QUFBUSxzQkFBRSxFQUFDLEtBQVg7QUFBaUIsc0JBQUUsRUFBQyxLQUFwQjtBQUEwQixxQkFBQyxFQUFDLElBQTVCO0FBQWlDLHdCQUFJLEVBQUM7QUFBdEM7QUFBQTtBQUFBO0FBQUE7QUFBQSwyQkFqQkYsZUFrQkU7QUFBQSwyQ0FDRTtBQUFLLCtCQUFTLEVBQUMsY0FBZjtBQUE4QiwwQkFBSSxFQUFDO0FBQW5DO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLDJCQWxCRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQUZGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQTFIRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFERixlQW9LRTtBQUFLLGlCQUFTLEVBQUMsS0FBZjtBQUFBLGdDQUNFO0FBQUssbUJBQVMsRUFBQyxtQkFBZjtBQUFBLGlDQUNFO0FBQUsscUJBQVMsRUFBQyxrQkFBZjtBQUFBLG1DQUNFO0FBQUssdUJBQVMsRUFBQyxLQUFmO0FBQUEsc0NBQ0U7QUFBSyxtQkFBRyxFQUFDLG1CQUFUO0FBQTZCLG1CQUFHLEVBQUM7QUFBakM7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFERixlQUVFO0FBQUssa0JBQUUsRUFBQyxTQUFSO0FBQUEsdUNBQ0U7QUFDRSx5QkFBTyxFQUFDLEtBRFY7QUFFRSx1QkFBSyxFQUFDLDRCQUZSO0FBR0UsbUJBQUMsRUFBQyxLQUhKO0FBSUUsbUJBQUMsRUFBQyxLQUpKO0FBS0UsdUJBQUssRUFBQyxPQUxSO0FBTUUsd0JBQU0sRUFBQyxPQU5UO0FBT0UseUJBQU8sRUFBQyxhQVBWO0FBUUUsa0NBQWdCLEVBQUMsaUJBUm5CO0FBU0UsMEJBQVEsRUFBQyxVQVRYO0FBQUEsMENBV0U7QUFBQSwyQ0FDRTtBQUNFLHdCQUFFLEVBQUMsYUFETDtBQUVFLHVCQUFDLEVBQUM7QUFGSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSwyQkFYRixlQWlCRTtBQUFRLHNCQUFFLEVBQUMsS0FBWDtBQUFpQixzQkFBRSxFQUFDLEtBQXBCO0FBQTBCLHFCQUFDLEVBQUMsSUFBNUI7QUFBaUMsd0JBQUksRUFBQztBQUF0QztBQUFBO0FBQUE7QUFBQTtBQUFBLDJCQWpCRixlQWtCRTtBQUFBLDJDQUNFO0FBQUssK0JBQVMsRUFBQyxjQUFmO0FBQThCLDBCQUFJLEVBQUM7QUFBbkM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBbEJGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBRkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBREYsZUF5Q0U7QUFBSyxtQkFBUyxFQUFDLG1CQUFmO0FBQUEsaUNBQ0U7QUFBSyxxQkFBUyxFQUFDLGtCQUFmO0FBQUEsbUNBQ0U7QUFBSyx1QkFBUyxFQUFDLEtBQWY7QUFBQSxzQ0FDRTtBQUFLLG1CQUFHLEVBQUMsbUJBQVQ7QUFBNkIsbUJBQUcsRUFBQztBQUFqQztBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQURGLGVBRUU7QUFBSyxrQkFBRSxFQUFDLFNBQVI7QUFBQSx1Q0FDRTtBQUNFLHlCQUFPLEVBQUMsS0FEVjtBQUVFLHVCQUFLLEVBQUMsNEJBRlI7QUFHRSxtQkFBQyxFQUFDLEtBSEo7QUFJRSxtQkFBQyxFQUFDLEtBSko7QUFLRSx1QkFBSyxFQUFDLE9BTFI7QUFNRSx3QkFBTSxFQUFDLE9BTlQ7QUFPRSx5QkFBTyxFQUFDLGFBUFY7QUFRRSxrQ0FBZ0IsRUFBQyxpQkFSbkI7QUFTRSwwQkFBUSxFQUFDLFVBVFg7QUFBQSwwQ0FXRTtBQUFBLDJDQUNFO0FBQ0Usd0JBQUUsRUFBQyxhQURMO0FBRUUsdUJBQUMsRUFBQztBQUZKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLDJCQVhGLGVBaUJFO0FBQVEsc0JBQUUsRUFBQyxLQUFYO0FBQWlCLHNCQUFFLEVBQUMsS0FBcEI7QUFBMEIscUJBQUMsRUFBQyxJQUE1QjtBQUFpQyx3QkFBSSxFQUFDO0FBQXRDO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBakJGLGVBa0JFO0FBQUEsMkNBQ0U7QUFBSywrQkFBUyxFQUFDLGNBQWY7QUFBOEIsMEJBQUksRUFBQztBQUFuQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSwyQkFsQkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFGRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkF6Q0YsZUFpRkU7QUFBSyxtQkFBUyxFQUFDLG1CQUFmO0FBQUEsaUNBQ0U7QUFBSyxxQkFBUyxFQUFDLGtCQUFmO0FBQUEsbUNBQ0U7QUFBSyx1QkFBUyxFQUFDLEtBQWY7QUFBQSxzQ0FDRTtBQUFLLG1CQUFHLEVBQUMsbUJBQVQ7QUFBNkIsbUJBQUcsRUFBQztBQUFqQztBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQURGLGVBRUU7QUFBSyxrQkFBRSxFQUFDLFNBQVI7QUFBQSx1Q0FDRTtBQUNFLHlCQUFPLEVBQUMsS0FEVjtBQUVFLHVCQUFLLEVBQUMsNEJBRlI7QUFHRSxtQkFBQyxFQUFDLEtBSEo7QUFJRSxtQkFBQyxFQUFDLEtBSko7QUFLRSx1QkFBSyxFQUFDLE9BTFI7QUFNRSx3QkFBTSxFQUFDLE9BTlQ7QUFPRSx5QkFBTyxFQUFDLGFBUFY7QUFRRSxrQ0FBZ0IsRUFBQyxpQkFSbkI7QUFTRSwwQkFBUSxFQUFDLFVBVFg7QUFBQSwwQ0FXRTtBQUFBLDJDQUNFO0FBQ0Usd0JBQUUsRUFBQyxhQURMO0FBRUUsdUJBQUMsRUFBQztBQUZKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLDJCQVhGLGVBaUJFO0FBQVEsc0JBQUUsRUFBQyxLQUFYO0FBQWlCLHNCQUFFLEVBQUMsS0FBcEI7QUFBMEIscUJBQUMsRUFBQyxJQUE1QjtBQUFpQyx3QkFBSSxFQUFDO0FBQXRDO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBakJGLGVBa0JFO0FBQUEsMkNBQ0U7QUFBSywrQkFBUyxFQUFDLGNBQWY7QUFBOEIsMEJBQUksRUFBQztBQUFuQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSwyQkFsQkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFGRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFqRkYsZUEwSEU7QUFBSyxtQkFBUyxFQUFDLG1CQUFmO0FBQUEsaUNBQ0U7QUFBSyxxQkFBUyxFQUFDLFVBQWY7QUFBQSxtQ0FDRTtBQUFLLHVCQUFTLEVBQUMsS0FBZjtBQUFBLHNDQUNFO0FBQUssbUJBQUcsRUFBQyxtQkFBVDtBQUE2QixtQkFBRyxFQUFDO0FBQWpDO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBREYsZUFFRTtBQUFLLGtCQUFFLEVBQUMsU0FBUjtBQUFBLHVDQUNFO0FBQ0UseUJBQU8sRUFBQyxLQURWO0FBRUUsdUJBQUssRUFBQyw0QkFGUjtBQUdFLG1CQUFDLEVBQUMsS0FISjtBQUlFLG1CQUFDLEVBQUMsS0FKSjtBQUtFLHVCQUFLLEVBQUMsT0FMUjtBQU1FLHdCQUFNLEVBQUMsT0FOVDtBQU9FLHlCQUFPLEVBQUMsYUFQVjtBQVFFLGtDQUFnQixFQUFDLGlCQVJuQjtBQVNFLDBCQUFRLEVBQUMsVUFUWDtBQUFBLDBDQVdFO0FBQUEsMkNBQ0U7QUFDRSx3QkFBRSxFQUFDLGFBREw7QUFFRSx1QkFBQyxFQUFDO0FBRko7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBWEYsZUFpQkU7QUFBUSxzQkFBRSxFQUFDLEtBQVg7QUFBaUIsc0JBQUUsRUFBQyxLQUFwQjtBQUEwQixxQkFBQyxFQUFDLElBQTVCO0FBQWlDLHdCQUFJLEVBQUM7QUFBdEM7QUFBQTtBQUFBO0FBQUE7QUFBQSwyQkFqQkYsZUFrQkU7QUFBQSwyQ0FDRTtBQUFLLCtCQUFTLEVBQUMsY0FBZjtBQUE4QiwwQkFBSSxFQUFDO0FBQW5DO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLDJCQWxCRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQUZGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQTFIRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFwS0YsZUF1VUU7QUFBSyxpQkFBUyxFQUFDLEtBQWY7QUFBQSxnQ0FDRTtBQUFLLG1CQUFTLEVBQUMsbUJBQWY7QUFBQSxpQ0FDRTtBQUFLLHFCQUFTLEVBQUMsa0JBQWY7QUFBQSxtQ0FDRTtBQUFLLHVCQUFTLEVBQUMsS0FBZjtBQUFBLHNDQUNFO0FBQUssbUJBQUcsRUFBQyxtQkFBVDtBQUE2QixtQkFBRyxFQUFDO0FBQWpDO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBREYsZUFFRTtBQUFLLGtCQUFFLEVBQUMsU0FBUjtBQUFBLHVDQUNFO0FBQ0UseUJBQU8sRUFBQyxLQURWO0FBRUUsdUJBQUssRUFBQyw0QkFGUjtBQUdFLG1CQUFDLEVBQUMsS0FISjtBQUlFLG1CQUFDLEVBQUMsS0FKSjtBQUtFLHVCQUFLLEVBQUMsT0FMUjtBQU1FLHdCQUFNLEVBQUMsT0FOVDtBQU9FLHlCQUFPLEVBQUMsYUFQVjtBQVFFLGtDQUFnQixFQUFDLGlCQVJuQjtBQVNFLDBCQUFRLEVBQUMsVUFUWDtBQUFBLDBDQVdFO0FBQUEsMkNBQ0U7QUFDRSx3QkFBRSxFQUFDLGFBREw7QUFFRSx1QkFBQyxFQUFDO0FBRko7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBWEYsZUFpQkU7QUFBUSxzQkFBRSxFQUFDLEtBQVg7QUFBaUIsc0JBQUUsRUFBQyxLQUFwQjtBQUEwQixxQkFBQyxFQUFDLElBQTVCO0FBQWlDLHdCQUFJLEVBQUM7QUFBdEM7QUFBQTtBQUFBO0FBQUE7QUFBQSwyQkFqQkYsZUFrQkU7QUFBQSwyQ0FDRTtBQUFLLCtCQUFTLEVBQUMsY0FBZjtBQUE4QiwwQkFBSSxFQUFDO0FBQW5DO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLDJCQWxCRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQUZGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQURGLGVBeUNFO0FBQUssbUJBQVMsRUFBQyxtQkFBZjtBQUFBLGlDQUNFO0FBQUsscUJBQVMsRUFBQyxrQkFBZjtBQUFBLG1DQUNFO0FBQUssdUJBQVMsRUFBQyxLQUFmO0FBQUEsc0NBQ0U7QUFBSyxtQkFBRyxFQUFDLG1CQUFUO0FBQTZCLG1CQUFHLEVBQUM7QUFBakM7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFERixlQUVFO0FBQUssa0JBQUUsRUFBQyxTQUFSO0FBQUEsdUNBQ0U7QUFDRSx5QkFBTyxFQUFDLEtBRFY7QUFFRSx1QkFBSyxFQUFDLDRCQUZSO0FBR0UsbUJBQUMsRUFBQyxLQUhKO0FBSUUsbUJBQUMsRUFBQyxLQUpKO0FBS0UsdUJBQUssRUFBQyxPQUxSO0FBTUUsd0JBQU0sRUFBQyxPQU5UO0FBT0UseUJBQU8sRUFBQyxhQVBWO0FBUUUsa0NBQWdCLEVBQUMsaUJBUm5CO0FBU0UsMEJBQVEsRUFBQyxVQVRYO0FBQUEsMENBV0U7QUFBQSwyQ0FDRTtBQUNFLHdCQUFFLEVBQUMsYUFETDtBQUVFLHVCQUFDLEVBQUM7QUFGSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSwyQkFYRixlQWlCRTtBQUFRLHNCQUFFLEVBQUMsS0FBWDtBQUFpQixzQkFBRSxFQUFDLEtBQXBCO0FBQTBCLHFCQUFDLEVBQUMsSUFBNUI7QUFBaUMsd0JBQUksRUFBQztBQUF0QztBQUFBO0FBQUE7QUFBQTtBQUFBLDJCQWpCRixlQWtCRTtBQUFBLDJDQUNFO0FBQUssK0JBQVMsRUFBQyxjQUFmO0FBQThCLDBCQUFJLEVBQUM7QUFBbkM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBbEJGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBRkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBekNGLGVBaUZFO0FBQUssbUJBQVMsRUFBQyxtQkFBZjtBQUFBLGlDQUNFO0FBQUsscUJBQVMsRUFBQyxrQkFBZjtBQUFBLG1DQUNFO0FBQUssdUJBQVMsRUFBQyxLQUFmO0FBQUEsc0NBQ0U7QUFBSyxtQkFBRyxFQUFDLG1CQUFUO0FBQTZCLG1CQUFHLEVBQUM7QUFBakM7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFERixlQUVFO0FBQUssa0JBQUUsRUFBQyxTQUFSO0FBQUEsdUNBQ0U7QUFDRSx5QkFBTyxFQUFDLEtBRFY7QUFFRSx1QkFBSyxFQUFDLDRCQUZSO0FBR0UsbUJBQUMsRUFBQyxLQUhKO0FBSUUsbUJBQUMsRUFBQyxLQUpKO0FBS0UsdUJBQUssRUFBQyxPQUxSO0FBTUUsd0JBQU0sRUFBQyxPQU5UO0FBT0UseUJBQU8sRUFBQyxhQVBWO0FBUUUsa0NBQWdCLEVBQUMsaUJBUm5CO0FBU0UsMEJBQVEsRUFBQyxVQVRYO0FBQUEsMENBV0U7QUFBQSwyQ0FDRTtBQUNFLHdCQUFFLEVBQUMsYUFETDtBQUVFLHVCQUFDLEVBQUM7QUFGSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSwyQkFYRixlQWlCRTtBQUFRLHNCQUFFLEVBQUMsS0FBWDtBQUFpQixzQkFBRSxFQUFDLEtBQXBCO0FBQTBCLHFCQUFDLEVBQUMsSUFBNUI7QUFBaUMsd0JBQUksRUFBQztBQUF0QztBQUFBO0FBQUE7QUFBQTtBQUFBLDJCQWpCRixlQWtCRTtBQUFBLDJDQUNFO0FBQUssK0JBQVMsRUFBQyxjQUFmO0FBQThCLDBCQUFJLEVBQUM7QUFBbkM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBbEJGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBRkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBakZGLGVBMEhFO0FBQUssbUJBQVMsRUFBQyxtQkFBZjtBQUFBLGlDQUNFO0FBQUsscUJBQVMsRUFBQyxVQUFmO0FBQUEsbUNBQ0U7QUFBSyx1QkFBUyxFQUFDLEtBQWY7QUFBQSxzQ0FDRTtBQUFLLG1CQUFHLEVBQUMsbUJBQVQ7QUFBNkIsbUJBQUcsRUFBQztBQUFqQztBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQURGLGVBRUU7QUFBSyxrQkFBRSxFQUFDLFNBQVI7QUFBQSx1Q0FDRTtBQUNFLHlCQUFPLEVBQUMsS0FEVjtBQUVFLHVCQUFLLEVBQUMsNEJBRlI7QUFHRSxtQkFBQyxFQUFDLEtBSEo7QUFJRSxtQkFBQyxFQUFDLEtBSko7QUFLRSx1QkFBSyxFQUFDLE9BTFI7QUFNRSx3QkFBTSxFQUFDLE9BTlQ7QUFPRSx5QkFBTyxFQUFDLGFBUFY7QUFRRSxrQ0FBZ0IsRUFBQyxpQkFSbkI7QUFTRSwwQkFBUSxFQUFDLFVBVFg7QUFBQSwwQ0FXRTtBQUFBLDJDQUNFO0FBQ0Usd0JBQUUsRUFBQyxhQURMO0FBRUUsdUJBQUMsRUFBQztBQUZKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLDJCQVhGLGVBaUJFO0FBQVEsc0JBQUUsRUFBQyxLQUFYO0FBQWlCLHNCQUFFLEVBQUMsS0FBcEI7QUFBMEIscUJBQUMsRUFBQyxJQUE1QjtBQUFpQyx3QkFBSSxFQUFDO0FBQXRDO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBakJGLGVBa0JFO0FBQUEsMkNBQ0U7QUFBSywrQkFBUyxFQUFDLGNBQWY7QUFBOEIsMEJBQUksRUFBQztBQUFuQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSwyQkFsQkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFGRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkExSEY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGVBdlVGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxhQWZGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxXQURGO0FBNmZELENBcGdCRDs7R0FBTUU7O0tBQUFBO0FBc2dCTiwrREFBZUEsSUFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tcG9uZW50cy9UZWFtL3RlYW0uanN4P2I2OGUiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB0ZWFtU2tpbGxzUHJvZ3Jlc3MgZnJvbSBcIi4uLy4uL2NvbW1vbi90ZWFtU2tpbGxzUHJvZ3Jlc3NcIjtcclxuaW1wb3J0IHRvb2x0aXBFZmZlY3QgZnJvbSBcIi4uLy4uL2NvbW1vbi90b29sdGlwRWZmZWN0XCI7XHJcbmltcG9ydCB0ZWFtc0RhdGUgZnJvbSBcIi4uLy4uL2RhdGEvc2VjdGlvbnMvdGVhbS5qc29uXCI7XHJcblxyXG5jb25zdCBUZWFtID0gKCkgPT4ge1xyXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICB0ZWFtU2tpbGxzUHJvZ3Jlc3MoKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0b29sdGlwRWZmZWN0KCk7XHJcbiAgICB9LCAxMDAwKTtcclxuICB9LCBbXSk7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInRlYW0gc2VjdGlvbi1wYWRkaW5nXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOCBjb2wtbWQtMTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWMtaGVhZCB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNiBjbGFzc05hbWU9XCJ3b3cgZmFkZUluXCIgZGF0YS13b3ctZGVsYXk9XCIuNXNcIj5cclxuICAgICAgICAgICAgICAgIE91ciBUZWFtXHJcbiAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwid293IGNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgIE91ciB0ZWFtIHdpbGwgc2ltcGxpZnkgYnVzaW5lc3Mgc2V0dXAgaW4gdGhlIFVBRVxyXG4gICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wMS53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUxXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDRU8gTWFuYWdlciBDRU8gTWFuYWdlciBDRU8gTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzAyLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTJcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIHNtLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDMud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlM1wiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDQud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlNFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzA1LndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTFcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgxXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENFTyBNYW5hZ2VyIENFTyBNYW5hZ2VyIENFTyBNYW5hZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDYud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlMlwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDJcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJpb3IgRGVzaWduZXIgSW50ZXJpb3IgRGVzaWduZXIgSW50ZXJpb3IgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgc20tbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wNy53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUzXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wOC53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGU0XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoNFwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDbGllbnQgTWFuYWdlciBDbGllbnQgTWFuYWdlciBDbGllbnQgTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDkud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlMVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ0VPIE1hbmFnZXIgQ0VPIE1hbmFnZXIgQ0VPIE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8xMC53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMlwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBJbnRlcmlvciBEZXNpZ25lciBJbnRlcmlvciBEZXNpZ25lciBJbnRlcmlvciBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBzbS1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzExLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTNcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzEyLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTRcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGg0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGg0XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGg0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENsaWVudCBNYW5hZ2VyIENsaWVudCBNYW5hZ2VyIENsaWVudCBNYW5hZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvc2VjdGlvbj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgVGVhbTtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwidGVhbVNraWxsc1Byb2dyZXNzIiwidG9vbHRpcEVmZmVjdCIsInRlYW1zRGF0ZSIsIlRlYW0iLCJ1c2VFZmZlY3QiLCJzZXRUaW1lb3V0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Team/team.jsx\n"); + +/***/ }) + +}); \ No newline at end of file diff --git a/.next/static/webpack/pages/index.391c934f4fe378ea.hot-update.js b/.next/static/webpack/pages/index.391c934f4fe378ea.hot-update.js new file mode 100644 index 0000000..70e52c5 --- /dev/null +++ b/.next/static/webpack/pages/index.391c934f4fe378ea.hot-update.js @@ -0,0 +1,22 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("pages/index",{ + +/***/ "./src/components/Team/team.jsx": +/*!**************************************!*\ + !*** ./src/components/Team/team.jsx ***! + \**************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/teamSkillsProgress */ \"./src/common/teamSkillsProgress.js\");\n/* harmony import */ var _common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/tooltipEffect */ \"./src/common/tooltipEffect.js\");\n/* harmony import */ var _data_sections_team_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../data/sections/team.json */ \"./src/data/sections/team.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Team\\\\team.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nvar Team = function Team() {\n _s();\n\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n (0,_common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n setTimeout(function () {\n (0,_common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__[\"default\"])();\n }, 1000);\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"section\", {\n className: \"team section-padding\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Our Team\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: \"Our team will simplify business setup in the UAE\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container-fluid\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/01.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/02.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/03.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 117,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/04.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/05.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/06.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/07.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 292,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 291,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 297,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 299,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 298,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 280,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 275,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/08.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 319,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 333,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 332,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 338,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 340,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 339,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 321,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 320,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 318,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 317,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 316,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/09.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 361,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 375,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 374,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 380,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 382,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 381,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 363,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 362,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 360,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 359,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 358,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/10.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 401,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 415,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 414,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 420,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 422,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 421,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 403,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 402,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 400,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 399,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 398,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/11.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 441,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 455,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 454,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 460,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 462,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 461,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 443,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 442,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 440,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 439,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 438,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/12.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 482,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 496,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 495,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 501,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 503,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 502,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 484,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 483,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 481,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 480,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 479,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 357,\n columnNumber: 9\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 5\n }, _this);\n};\n\n_s(Team, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = Team;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Team);\n\nvar _c;\n\n$RefreshReg$(_c, \"Team\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFBQSxXQURGO0FBNmZELENBcGdCRDs7R0FBTUU7O0tBQUFBO0FBc2dCTiwrREFBZUEsSUFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tcG9uZW50cy9UZWFtL3RlYW0uanN4P2I2OGUiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB0ZWFtU2tpbGxzUHJvZ3Jlc3MgZnJvbSBcIi4uLy4uL2NvbW1vbi90ZWFtU2tpbGxzUHJvZ3Jlc3NcIjtcclxuaW1wb3J0IHRvb2x0aXBFZmZlY3QgZnJvbSBcIi4uLy4uL2NvbW1vbi90b29sdGlwRWZmZWN0XCI7XHJcbmltcG9ydCB0ZWFtc0RhdGUgZnJvbSBcIi4uLy4uL2RhdGEvc2VjdGlvbnMvdGVhbS5qc29uXCI7XHJcblxyXG5jb25zdCBUZWFtID0gKCkgPT4ge1xyXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICB0ZWFtU2tpbGxzUHJvZ3Jlc3MoKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0b29sdGlwRWZmZWN0KCk7XHJcbiAgICB9LCAxMDAwKTtcclxuICB9LCBbXSk7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInRlYW0gc2VjdGlvbi1wYWRkaW5nXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOCBjb2wtbWQtMTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWMtaGVhZCB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNiBjbGFzc05hbWU9XCJ3b3cgZmFkZUluXCIgZGF0YS13b3ctZGVsYXk9XCIuNXNcIj5cclxuICAgICAgICAgICAgICAgIE91ciBUZWFtXHJcbiAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwid293IGNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgIE91ciB0ZWFtIHdpbGwgc2ltcGxpZnkgYnVzaW5lc3Mgc2V0dXAgaW4gdGhlIFVBRVxyXG4gICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wMS53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUxXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDRU8gTWFuYWdlciBDRU8gTWFuYWdlciBDRU8gTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzAyLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTJcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIHNtLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDMud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlM1wiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDQud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlNFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzA1LndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTFcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgxXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENFTyBNYW5hZ2VyIENFTyBNYW5hZ2VyIENFTyBNYW5hZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDYud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlMlwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDJcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJpb3IgRGVzaWduZXIgSW50ZXJpb3IgRGVzaWduZXIgSW50ZXJpb3IgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgc20tbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wNy53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUzXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wOC53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGU0XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoNFwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDbGllbnQgTWFuYWdlciBDbGllbnQgTWFuYWdlciBDbGllbnQgTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDkud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlMVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ0VPIE1hbmFnZXIgQ0VPIE1hbmFnZXIgQ0VPIE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8xMC53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMlwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBJbnRlcmlvciBEZXNpZ25lciBJbnRlcmlvciBEZXNpZ25lciBJbnRlcmlvciBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBzbS1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzExLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTNcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzEyLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTRcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGg0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGg0XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGg0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENsaWVudCBNYW5hZ2VyIENsaWVudCBNYW5hZ2VyIENsaWVudCBNYW5hZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvc2VjdGlvbj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgVGVhbTtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwidGVhbVNraWxsc1Byb2dyZXNzIiwidG9vbHRpcEVmZmVjdCIsInRlYW1zRGF0ZSIsIlRlYW0iLCJ1c2VFZmZlY3QiLCJzZXRUaW1lb3V0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Team/team.jsx\n"); + +/***/ }) + +}); \ No newline at end of file diff --git a/.next/static/webpack/pages/index.505f5fcbf6bfc6f2.hot-update.js b/.next/static/webpack/pages/index.505f5fcbf6bfc6f2.hot-update.js new file mode 100644 index 0000000..5704d29 --- /dev/null +++ b/.next/static/webpack/pages/index.505f5fcbf6bfc6f2.hot-update.js @@ -0,0 +1,22 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("pages/index",{ + +/***/ "./src/components/Footer/footer.jsx": +/*!******************************************!*\ + !*** ./src/components/Footer/footer.jsx ***! + \******************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _data_app_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../data/app.json */ \"./src/data/app.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Footer\\\\footer.jsx\",\n _this = undefined;\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\nvar Footer = function Footer(_ref) {\n var hideBGCOLOR = _ref.hideBGCOLOR;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"footer\", {\n className: \"\".concat(!hideBGCOLOR ? \"sub-bg\" : \"\"),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item md-mb50\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"title\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h5\", {\n children: \"Contact Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"ul\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-map-marker\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Officeal Address\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"Baghdad Street, Al Dana area, Abu Dhabi, United Arab Emirates\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-mail\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Email Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"hello@businesshub.abudhabi\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-call\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Call Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"+971 26340404\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"logo\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.footerLogo,\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"social\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-facebook-f\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 51,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-twitter\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-instagram\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-youtube\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 61,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 60,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"copy-right\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"\\xA9 2024, 2024 Business HUB international investment - All Rights Reserved.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 5\n }, _this);\n};\n\n_c = Footer;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Footer);\n\nvar _c;\n\n$RefreshReg$(_c, \"Footer\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFQRixlQVVFO0FBQUcsb0JBQUksRUFBQyxJQUFSO0FBQUEsdUNBQ0U7QUFBRywyQkFBUyxFQUFDO0FBQWI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBVkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQUpGLGVBa0JFO0FBQUssdUJBQVMsRUFBQyxZQUFmO0FBQUEscUNBQ0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQWxCRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQW5DRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxXQURGO0FBcUVELENBdEVEOztLQUFNQztBQXdFTiwrREFBZUEsTUFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tcG9uZW50cy9Gb290ZXIvZm9vdGVyLmpzeD9mMzk0Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBuZXh0L25leHQvbm8taW1nLWVsZW1lbnQgKi9cclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgTGluayBmcm9tIFwibmV4dC9saW5rXCI7XHJcbmltcG9ydCBhcHBEYXRhIGZyb20gXCIuLi8uLi9kYXRhL2FwcC5qc29uXCI7XHJcblxyXG5jb25zdCBGb290ZXIgPSAoeyBoaWRlQkdDT0xPUiB9KSA9PiB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxmb290ZXIgY2xhc3NOYW1lPXtgJHshaGlkZUJHQ09MT1IgPyBcInN1Yi1iZ1wiIDogXCJcIn1gfT5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctNFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGl0bGVcIj5cclxuICAgICAgICAgICAgICAgIDxoNT5Db250YWN0IFVzPC9oNT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24gcGUtN3MtbWFwLW1hcmtlclwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg2Pk9mZmljZWFsIEFkZHJlc3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgQmFnaGRhZCBTdHJlZXQsIEFsIERhbmEgYXJlYSwgQWJ1IERoYWJpLCBVbml0ZWQgQXJhYlxyXG4gICAgICAgICAgICAgICAgICAgICAgRW1pcmF0ZXNcclxuICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvbiBwZS03cy1tYWlsXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+RW1haWwgVXM8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPmhlbGxvQGJ1c2luZXNzaHViLmFidWRoYWJpPC9wPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24gcGUtN3MtY2FsbFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg2PkNhbGwgVXM8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPis5NzEgMjYzNDA0MDQ8L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsb2dvXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz17YXBwRGF0YS5mb290ZXJMb2dvfSBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic29jaWFsXCI+XHJcbiAgICAgICAgICAgICAgICA8YSBocmVmPVwiIzBcIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwiZmFiIGZhLWZhY2Vib29rLWZcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICA8YSBocmVmPVwiIzBcIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwiZmFiIGZhLXR3aXR0ZXJcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICA8YSBocmVmPVwiIzBcIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwiZmFiIGZhLWluc3RhZ3JhbVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYWIgZmEteW91dHViZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvcHktcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICDCqSAyMDI0LCAyMDI0IEJ1c2luZXNzIEhVQiBpbnRlcm5hdGlvbmFsIGludmVzdG1lbnQgLSBBbGxcclxuICAgICAgICAgICAgICAgICAgUmlnaHRzIFJlc2VydmVkLlxyXG4gICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZm9vdGVyPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBGb290ZXI7XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIkxpbmsiLCJhcHBEYXRhIiwiRm9vdGVyIiwiaGlkZUJHQ09MT1IiLCJmb290ZXJMb2dvIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Footer/footer.jsx\n"); + +/***/ }) + +}); \ No newline at end of file diff --git a/.next/static/webpack/pages/index.69b0909539c40de9.hot-update.js b/.next/static/webpack/pages/index.69b0909539c40de9.hot-update.js new file mode 100644 index 0000000..9b29a6f --- /dev/null +++ b/.next/static/webpack/pages/index.69b0909539c40de9.hot-update.js @@ -0,0 +1,22 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("pages/index",{ + +/***/ "./src/components/Footer/footer.jsx": +/*!******************************************!*\ + !*** ./src/components/Footer/footer.jsx ***! + \******************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _data_app_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../data/app.json */ \"./src/data/app.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Footer\\\\footer.jsx\",\n _this = undefined;\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\nvar Footer = function Footer(_ref) {\n var hideBGCOLOR = _ref.hideBGCOLOR;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"footer\", {\n className: \"\".concat(!hideBGCOLOR ? \"sub-bg\" : \"\"),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item md-mb50\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"title\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h5\", {\n children: \"Contact Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"ul\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-map-marker\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Officeal Address\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"Baghdad Street, Al Dana area, Abu Dhabi, United Arab Emirates\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-mail\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Email Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"hello@businesshub.abudhabi\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-call\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Call Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"+971 26340404\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"logo\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.footerLogo,\n style: {\n width: \"150px\"\n },\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"social\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"https://www.facebook.com/profile.php?id=100057392223857 \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-facebook-f\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"https://www.linkedin.com/company/business-hub-international-investment\\r\\n\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-linkedin\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"https://www.instagram.com/businesshubi/?igsh=MTJ3ejZneWdmbTM3bQ%3D%3D \\r\\n\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-instagram\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"copy-right\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"\\xA9 2024, 2024 Business HUB international investment - All Rights Reserved.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 5\n }, _this);\n};\n\n_c = Footer;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Footer);\n\nvar _c;\n\n$RefreshReg$(_c, \"Footer\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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LG9CQUFJLEVBQUMsNEVBRFA7QUFBQSx1Q0FJRTtBQUFHLDJCQUFTLEVBQUM7QUFBYjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSkY7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFWRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBUkYsZUF5QkU7QUFBSyx1QkFBUyxFQUFDLFlBQWY7QUFBQSxxQ0FDRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBekJGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBbkNGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBREY7QUE0RUQsQ0E3RUQ7O0tBQU1IO0FBK0VOLCtEQUFlQSxNQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL0Zvb3Rlci9mb290ZXIuanN4P2YzOTQiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcclxuaW1wb3J0IGFwcERhdGEgZnJvbSBcIi4uLy4uL2RhdGEvYXBwLmpzb25cIjtcclxuXHJcbmNvbnN0IEZvb3RlciA9ICh7IGhpZGVCR0NPTE9SIH0pID0+IHtcclxuICByZXR1cm4gKFxyXG4gICAgPGZvb3RlciBjbGFzc05hbWU9e2AkeyFoaWRlQkdDT0xPUiA/IFwic3ViLWJnXCIgOiBcIlwifWB9PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy00XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgPGg1PkNvbnRhY3QgVXM8L2g1PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDx1bD5cclxuICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvbiBwZS03cy1tYXAtbWFya2VyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+T2ZmaWNlYWwgQWRkcmVzczwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICBCYWdoZGFkIFN0cmVldCwgQWwgRGFuYSBhcmVhLCBBYnUgRGhhYmksIFVuaXRlZCBBcmFiXHJcbiAgICAgICAgICAgICAgICAgICAgICBFbWlyYXRlc1xyXG4gICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJpY29uIHBlLTdzLW1haWxcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoNj5FbWFpbCBVczwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+aGVsbG9AYnVzaW5lc3NodWIuYWJ1ZGhhYmk8L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvbiBwZS03cy1jYWxsXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+Q2FsbCBVczwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+Kzk3MSAyNjM0MDQwNDwvcD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctNFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxvZ29cIj5cclxuICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgc3JjPXthcHBEYXRhLmZvb3RlckxvZ299XHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IHdpZHRoOiBcIjE1MHB4XCIgfX1cclxuICAgICAgICAgICAgICAgICAgYWx0PVwiXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzb2NpYWxcIj5cclxuICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJodHRwczovL3d3dy5mYWNlYm9vay5jb20vcHJvZmlsZS5waHA/aWQ9MTAwMDU3MzkyMjIzODU3IFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYWIgZmEtZmFjZWJvb2stZlwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL3d3dy5saW5rZWRpbi5jb20vY29tcGFueS9idXNpbmVzcy1odWItaW50ZXJuYXRpb25hbC1pbnZlc3RtZW50XHJcblwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhYiBmYS1saW5rZWRpblwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL3d3dy5pbnN0YWdyYW0uY29tL2J1c2luZXNzaHViaS8/aWdzaD1NVEozZWpabmVXZG1iVE0zYlElM0QlM0QgXHJcblwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhYiBmYS1pbnN0YWdyYW1cIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb3B5LXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgwqkgMjAyNCwgMjAyNCBCdXNpbmVzcyBIVUIgaW50ZXJuYXRpb25hbCBpbnZlc3RtZW50IC0gQWxsXHJcbiAgICAgICAgICAgICAgICAgIFJpZ2h0cyBSZXNlcnZlZC5cclxuICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Zvb3Rlcj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgRm9vdGVyO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJMaW5rIiwiYXBwRGF0YSIsIkZvb3RlciIsImhpZGVCR0NPTE9SIiwiZm9vdGVyTG9nbyIsIndpZHRoIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Footer/footer.jsx\n"); + +/***/ }) + +}); \ No newline at end of file diff --git a/.next/static/webpack/pages/index.6d4205e34873ba67.hot-update.js b/.next/static/webpack/pages/index.6d4205e34873ba67.hot-update.js new file mode 100644 index 0000000..b2d03db --- /dev/null +++ b/.next/static/webpack/pages/index.6d4205e34873ba67.hot-update.js @@ -0,0 +1,22 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("pages/index",{ + +/***/ "./src/components/Team/team.jsx": +/*!**************************************!*\ + !*** ./src/components/Team/team.jsx ***! + \**************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/teamSkillsProgress */ \"./src/common/teamSkillsProgress.js\");\n/* harmony import */ var _common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/tooltipEffect */ \"./src/common/tooltipEffect.js\");\n/* harmony import */ var _data_sections_team_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../data/sections/team.json */ \"./src/data/sections/team.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Team\\\\team.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nvar Team = function Team() {\n _s();\n\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n (0,_common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n setTimeout(function () {\n (0,_common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__[\"default\"])();\n }, 1000);\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"section\", {\n className: \"team section-padding\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Our Team\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: \"Our team will simplify business setup in the UAE\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container-fluid\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/01.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/02.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/03.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 117,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/04.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/05.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/06.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/07.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 292,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 291,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 297,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 299,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 298,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 280,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 275,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/08.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 319,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 333,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 332,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 338,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 340,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 339,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 321,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 320,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 318,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 317,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 316,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/09.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 361,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 375,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 374,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 380,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 382,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 381,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 363,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 362,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 360,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 359,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 358,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/10.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 401,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 415,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 414,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 420,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 422,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 421,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 403,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 402,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 400,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 399,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 398,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/11.webp\",\n style: {\n borderRadius: \"100%\"\n },\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 441,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 459,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 458,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 464,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 466,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 465,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 447,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 446,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 440,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 439,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 438,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/12.webp\",\n style: {\n borderRadius: \"100%\"\n },\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 486,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 504,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 503,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 509,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 511,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 510,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 492,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 491,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 485,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 484,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 483,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 357,\n columnNumber: 9\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 5\n }, _this);\n};\n\n_s(Team, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = Team;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Team);\n\nvar _c;\n\n$RefreshReg$(_c, \"Team\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFBQTtBQUFBLGlCQTlIRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUF2VUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBZkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBREY7QUFxZ0JELENBNWdCRDs7R0FBTUg7O0tBQUFBO0FBOGdCTiwrREFBZUEsSUFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tcG9uZW50cy9UZWFtL3RlYW0uanN4P2I2OGUiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB0ZWFtU2tpbGxzUHJvZ3Jlc3MgZnJvbSBcIi4uLy4uL2NvbW1vbi90ZWFtU2tpbGxzUHJvZ3Jlc3NcIjtcclxuaW1wb3J0IHRvb2x0aXBFZmZlY3QgZnJvbSBcIi4uLy4uL2NvbW1vbi90b29sdGlwRWZmZWN0XCI7XHJcbmltcG9ydCB0ZWFtc0RhdGUgZnJvbSBcIi4uLy4uL2RhdGEvc2VjdGlvbnMvdGVhbS5qc29uXCI7XHJcblxyXG5jb25zdCBUZWFtID0gKCkgPT4ge1xyXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICB0ZWFtU2tpbGxzUHJvZ3Jlc3MoKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0b29sdGlwRWZmZWN0KCk7XHJcbiAgICB9LCAxMDAwKTtcclxuICB9LCBbXSk7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInRlYW0gc2VjdGlvbi1wYWRkaW5nXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOCBjb2wtbWQtMTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWMtaGVhZCB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNiBjbGFzc05hbWU9XCJ3b3cgZmFkZUluXCIgZGF0YS13b3ctZGVsYXk9XCIuNXNcIj5cclxuICAgICAgICAgICAgICAgIE91ciBUZWFtXHJcbiAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwid293IGNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgIE91ciB0ZWFtIHdpbGwgc2ltcGxpZnkgYnVzaW5lc3Mgc2V0dXAgaW4gdGhlIFVBRVxyXG4gICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wMS53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUxXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDRU8gTWFuYWdlciBDRU8gTWFuYWdlciBDRU8gTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzAyLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTJcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIHNtLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDMud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlM1wiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDQud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlNFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzA1LndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTFcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgxXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENFTyBNYW5hZ2VyIENFTyBNYW5hZ2VyIENFTyBNYW5hZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDYud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlMlwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDJcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJpb3IgRGVzaWduZXIgSW50ZXJpb3IgRGVzaWduZXIgSW50ZXJpb3IgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgc20tbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wNy53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUzXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wOC53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGU0XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoNFwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDbGllbnQgTWFuYWdlciBDbGllbnQgTWFuYWdlciBDbGllbnQgTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDkud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlMVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ0VPIE1hbmFnZXIgQ0VPIE1hbmFnZXIgQ0VPIE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8xMC53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMlwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBJbnRlcmlvciBEZXNpZ25lciBJbnRlcmlvciBEZXNpZ25lciBJbnRlcmlvciBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBzbS1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgc3JjPVwiL2ltZy90ZWFtLzExLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgICBzdHlsZT17eyBib3JkZXJSYWRpdXM6IFwiMTAwJVwiIH19XHJcbiAgICAgICAgICAgICAgICAgIGFsdD1cIlwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTNcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgc3JjPVwiL2ltZy90ZWFtLzEyLndlYnBcIlxyXG4gICAgICAgICAgICAgICAgICBzdHlsZT17eyBib3JkZXJSYWRpdXM6IFwiMTAwJVwiIH19XHJcbiAgICAgICAgICAgICAgICAgIGFsdD1cIlwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTRcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGg0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGg0XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGg0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENsaWVudCBNYW5hZ2VyIENsaWVudCBNYW5hZ2VyIENsaWVudCBNYW5hZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvc2VjdGlvbj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgVGVhbTtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwidGVhbVNraWxsc1Byb2dyZXNzIiwidG9vbHRpcEVmZmVjdCIsInRlYW1zRGF0ZSIsIlRlYW0iLCJ1c2VFZmZlY3QiLCJzZXRUaW1lb3V0IiwiYm9yZGVyUmFkaXVzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Team/team.jsx\n"); + +/***/ }) + +}); \ No newline at end of file diff --git a/.next/static/webpack/pages/index.7523881d416ea968.hot-update.js b/.next/static/webpack/pages/index.7523881d416ea968.hot-update.js new file mode 100644 index 0000000..35f1235 --- /dev/null +++ b/.next/static/webpack/pages/index.7523881d416ea968.hot-update.js @@ -0,0 +1,22 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("pages/index",{ + +/***/ "./src/components/Team/team.jsx": +/*!**************************************!*\ + !*** ./src/components/Team/team.jsx ***! + \**************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/teamSkillsProgress */ \"./src/common/teamSkillsProgress.js\");\n/* harmony import */ var _common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/tooltipEffect */ \"./src/common/tooltipEffect.js\");\n/* harmony import */ var _data_sections_team_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../data/sections/team.json */ \"./src/data/sections/team.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Team\\\\team.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nvar Team = function Team() {\n _s();\n\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n (0,_common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n setTimeout(function () {\n (0,_common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__[\"default\"])();\n }, 1000);\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"section\", {\n className: \"team section-padding\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Our Team\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: \"Our team will simplify business setup in the UAE\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container-fluid\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/01.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/02.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/03.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 117,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/04.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/05.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/06.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/07.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 292,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 291,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 297,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 299,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 298,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 280,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 275,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/08.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 319,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 333,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 332,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 338,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 340,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 339,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 321,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 320,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 318,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 317,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 316,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/09.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 361,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 375,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 374,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 380,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 382,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 381,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 363,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 362,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 360,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 359,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 358,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/10.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 401,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 415,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 414,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 420,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 422,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 421,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 403,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 402,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 400,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 399,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 398,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/11.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 441,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 455,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 454,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 460,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 462,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 461,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 443,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 442,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 440,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 439,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 438,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/12.webp\",\n style: {\n borderRadius: \"100%\"\n },\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 482,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 500,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 499,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 505,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 507,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 506,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 488,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 487,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 481,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 480,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 479,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 357,\n columnNumber: 9\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 5\n }, _this);\n};\n\n_s(Team, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = Team;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Team);\n\nvar _c;\n\n$RefreshReg$(_c, \"Team\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsYUFmRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsV0FERjtBQWlnQkQsQ0F4Z0JEOztHQUFNSDs7S0FBQUE7QUEwZ0JOLCtEQUFlQSxJQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL1RlYW0vdGVhbS5qc3g/YjY4ZSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAbmV4dC9uZXh0L25vLWltZy1lbGVtZW50ICovXHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHRlYW1Ta2lsbHNQcm9ncmVzcyBmcm9tIFwiLi4vLi4vY29tbW9uL3RlYW1Ta2lsbHNQcm9ncmVzc1wiO1xyXG5pbXBvcnQgdG9vbHRpcEVmZmVjdCBmcm9tIFwiLi4vLi4vY29tbW9uL3Rvb2x0aXBFZmZlY3RcIjtcclxuaW1wb3J0IHRlYW1zRGF0ZSBmcm9tIFwiLi4vLi4vZGF0YS9zZWN0aW9ucy90ZWFtLmpzb25cIjtcclxuXHJcbmNvbnN0IFRlYW0gPSAoKSA9PiB7XHJcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgIHRlYW1Ta2lsbHNQcm9ncmVzcygpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRvb2x0aXBFZmZlY3QoKTtcclxuICAgIH0sIDEwMDApO1xyXG4gIH0sIFtdKTtcclxuICByZXR1cm4gKFxyXG4gICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwidGVhbSBzZWN0aW9uLXBhZGRpbmdcIj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy04IGNvbC1tZC0xMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNlYy1oZWFkIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGg2IGNsYXNzTmFtZT1cIndvdyBmYWRlSW5cIiBkYXRhLXdvdy1kZWxheT1cIi41c1wiPlxyXG4gICAgICAgICAgICAgICAgT3VyIFRlYW1cclxuICAgICAgICAgICAgICA8L2g2PlxyXG4gICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJ3b3cgY29sb3ItZm9udFwiPlxyXG4gICAgICAgICAgICAgICAgT3VyIHRlYW0gd2lsbCBzaW1wbGlmeSBidXNpbmVzcyBzZXR1cCBpbiB0aGUgVUFFXHJcbiAgICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyLWZsdWlkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzAxLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTFcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgxXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENFTyBNYW5hZ2VyIENFTyBNYW5hZ2VyIENFTyBNYW5hZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDIud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlMlwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDJcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJpb3IgRGVzaWduZXIgSW50ZXJpb3IgRGVzaWduZXIgSW50ZXJpb3IgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgc20tbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wMy53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUzXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wNC53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGU0XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoNFwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDbGllbnQgTWFuYWdlciBDbGllbnQgTWFuYWdlciBDbGllbnQgTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDUud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlMVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ0VPIE1hbmFnZXIgQ0VPIE1hbmFnZXIgQ0VPIE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wNi53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMlwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBJbnRlcmlvciBEZXNpZ25lciBJbnRlcmlvciBEZXNpZ25lciBJbnRlcmlvciBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBzbS1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzA3LndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTNcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzA4LndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTRcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGg0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGg0XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGg0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENsaWVudCBNYW5hZ2VyIENsaWVudCBNYW5hZ2VyIENsaWVudCBNYW5hZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wOS53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUxXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDRU8gTWFuYWdlciBDRU8gTWFuYWdlciBDRU8gTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzEwLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTJcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIHNtLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMTEud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlM1wiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICAgICBzcmM9XCIvaW1nL3RlYW0vMTIud2VicFwiXHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGJvcmRlclJhZGl1czogXCIxMDAlXCIgfX1cclxuICAgICAgICAgICAgICAgICAgYWx0PVwiXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlNFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBUZWFtO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJ0ZWFtU2tpbGxzUHJvZ3Jlc3MiLCJ0b29sdGlwRWZmZWN0IiwidGVhbXNEYXRlIiwiVGVhbSIsInVzZUVmZmVjdCIsInNldFRpbWVvdXQiLCJib3JkZXJSYWRpdXMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/components/Team/team.jsx\n"); + +/***/ }) + +}); \ No newline at end of file diff --git a/.next/static/webpack/pages/index.865ba9bea3e8e879.hot-update.js b/.next/static/webpack/pages/index.865ba9bea3e8e879.hot-update.js new file mode 100644 index 0000000..f53ccd6 --- /dev/null +++ b/.next/static/webpack/pages/index.865ba9bea3e8e879.hot-update.js @@ -0,0 +1,22 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("pages/index",{ + +/***/ "./src/components/Team/team.jsx": +/*!**************************************!*\ + !*** ./src/components/Team/team.jsx ***! + \**************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/teamSkillsProgress */ \"./src/common/teamSkillsProgress.js\");\n/* harmony import */ var _common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/tooltipEffect */ \"./src/common/tooltipEffect.js\");\n/* harmony import */ var _data_sections_team_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../data/sections/team.json */ \"./src/data/sections/team.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Team\\\\team.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nvar Team = function Team() {\n _s();\n\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n (0,_common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n setTimeout(function () {\n (0,_common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__[\"default\"])();\n }, 1000);\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"section\", {\n className: \"team section-padding\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Our Team\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: \"Our team will simplify business setup in the UAE\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container-fluid\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/01.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/02.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/03.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 117,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/04.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/03.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 5\n }, _this);\n};\n\n_s(Team, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = Team;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Team);\n\nvar _c;\n\n$RefreshReg$(_c, \"Team\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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cmMvY29tcG9uZW50cy9UZWFtL3RlYW0uanN4P2I2OGUiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB0ZWFtU2tpbGxzUHJvZ3Jlc3MgZnJvbSBcIi4uLy4uL2NvbW1vbi90ZWFtU2tpbGxzUHJvZ3Jlc3NcIjtcclxuaW1wb3J0IHRvb2x0aXBFZmZlY3QgZnJvbSBcIi4uLy4uL2NvbW1vbi90b29sdGlwRWZmZWN0XCI7XHJcbmltcG9ydCB0ZWFtc0RhdGUgZnJvbSBcIi4uLy4uL2RhdGEvc2VjdGlvbnMvdGVhbS5qc29uXCI7XHJcblxyXG5jb25zdCBUZWFtID0gKCkgPT4ge1xyXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICB0ZWFtU2tpbGxzUHJvZ3Jlc3MoKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0b29sdGlwRWZmZWN0KCk7XHJcbiAgICB9LCAxMDAwKTtcclxuICB9LCBbXSk7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInRlYW0gc2VjdGlvbi1wYWRkaW5nXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOCBjb2wtbWQtMTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWMtaGVhZCB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNiBjbGFzc05hbWU9XCJ3b3cgZmFkZUluXCIgZGF0YS13b3ctZGVsYXk9XCIuNXNcIj5cclxuICAgICAgICAgICAgICAgIE91ciBUZWFtXHJcbiAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwid293IGNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgIE91ciB0ZWFtIHdpbGwgc2ltcGxpZnkgYnVzaW5lc3Mgc2V0dXAgaW4gdGhlIFVBRVxyXG4gICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wMS53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUxXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDRU8gTWFuYWdlciBDRU8gTWFuYWdlciBDRU8gTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzAyLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTJcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIHNtLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDMud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlM1wiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDQud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlNFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgc20tbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wMy53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUzXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L3NlY3Rpb24+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IFRlYW07XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsInRlYW1Ta2lsbHNQcm9ncmVzcyIsInRvb2x0aXBFZmZlY3QiLCJ0ZWFtc0RhdGUiLCJUZWFtIiwidXNlRWZmZWN0Iiwic2V0VGltZW91dCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Team/team.jsx\n"); + +/***/ }) + +}); \ No newline at end of file diff --git a/.next/static/webpack/pages/index.942186135cc3656b.hot-update.js b/.next/static/webpack/pages/index.942186135cc3656b.hot-update.js new file mode 100644 index 0000000..d95bcc4 --- /dev/null +++ b/.next/static/webpack/pages/index.942186135cc3656b.hot-update.js @@ -0,0 +1,22 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("pages/index",{ + +/***/ "./src/components/Footer/footer.jsx": +/*!******************************************!*\ + !*** ./src/components/Footer/footer.jsx ***! + \******************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _data_app_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../data/app.json */ \"./src/data/app.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Footer\\\\footer.jsx\",\n _this = undefined;\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\nvar Footer = function Footer(_ref) {\n var hideBGCOLOR = _ref.hideBGCOLOR;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"footer\", {\n className: \"\".concat(!hideBGCOLOR ? \"sub-bg\" : \"\"),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item md-mb50\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"title\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h5\", {\n children: \"Contact Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"ul\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-map-marker\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Officeal Address\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"Baghdad Street, Al Dana area, Abu Dhabi, United Arab Emirates\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-mail\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Email Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"hello@businesshub.abudhabi\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-call\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Call Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"+971 26340404\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"logo\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.footerLogo,\n style: {\n width: \"150px\"\n },\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"social\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"https://www.facebook.com/profile.php?id=100057392223857 \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-facebook-f\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-linkedin\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 59,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"https://www.instagram.com/businesshubi/?igsh=MTJ3ejZneWdmbTM3bQ%3D%3D \\r\\n\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-instagram\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 61,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"#0\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-youtube\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"copy-right\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"\\xA9 2024, 2024 Business HUB international investment - All Rights Reserved.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 5\n }, _this);\n};\n\n_c = Footer;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Footer);\n\nvar _c;\n\n$RefreshReg$(_c, \"Footer\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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b0JBQUksRUFBQyw0RUFEUDtBQUFBLHVDQUlFO0FBQUcsMkJBQVMsRUFBQztBQUFiO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFKRjtBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQVBGLGVBYUU7QUFBRyxvQkFBSSxFQUFDLElBQVI7QUFBQSx1Q0FDRTtBQUFHLDJCQUFTLEVBQUM7QUFBYjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFiRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBUkYsZUF5QkU7QUFBSyx1QkFBUyxFQUFDLFlBQWY7QUFBQSxxQ0FDRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBekJGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUJBbkNGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBREY7QUE0RUQsQ0E3RUQ7O0tBQU1IO0FBK0VOLCtEQUFlQSxNQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL0Zvb3Rlci9mb290ZXIuanN4P2YzOTQiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcclxuaW1wb3J0IGFwcERhdGEgZnJvbSBcIi4uLy4uL2RhdGEvYXBwLmpzb25cIjtcclxuXHJcbmNvbnN0IEZvb3RlciA9ICh7IGhpZGVCR0NPTE9SIH0pID0+IHtcclxuICByZXR1cm4gKFxyXG4gICAgPGZvb3RlciBjbGFzc05hbWU9e2AkeyFoaWRlQkdDT0xPUiA/IFwic3ViLWJnXCIgOiBcIlwifWB9PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy00XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgPGg1PkNvbnRhY3QgVXM8L2g1PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDx1bD5cclxuICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvbiBwZS03cy1tYXAtbWFya2VyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+T2ZmaWNlYWwgQWRkcmVzczwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICBCYWdoZGFkIFN0cmVldCwgQWwgRGFuYSBhcmVhLCBBYnUgRGhhYmksIFVuaXRlZCBBcmFiXHJcbiAgICAgICAgICAgICAgICAgICAgICBFbWlyYXRlc1xyXG4gICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJpY29uIHBlLTdzLW1haWxcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoNj5FbWFpbCBVczwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+aGVsbG9AYnVzaW5lc3NodWIuYWJ1ZGhhYmk8L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvbiBwZS03cy1jYWxsXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+Q2FsbCBVczwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+Kzk3MSAyNjM0MDQwNDwvcD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctNFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxvZ29cIj5cclxuICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgc3JjPXthcHBEYXRhLmZvb3RlckxvZ299XHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IHdpZHRoOiBcIjE1MHB4XCIgfX1cclxuICAgICAgICAgICAgICAgICAgYWx0PVwiXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzb2NpYWxcIj5cclxuICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJodHRwczovL3d3dy5mYWNlYm9vay5jb20vcHJvZmlsZS5waHA/aWQ9MTAwMDU3MzkyMjIzODU3IFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYWIgZmEtZmFjZWJvb2stZlwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYWIgZmEtbGlua2VkaW5cIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICBocmVmPVwiaHR0cHM6Ly93d3cuaW5zdGFncmFtLmNvbS9idXNpbmVzc2h1YmkvP2lnc2g9TVRKM2VqWm5lV2RtYlRNM2JRJTNEJTNEIFxyXG5cIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYWIgZmEtaW5zdGFncmFtXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgPGEgaHJlZj1cIiMwXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImZhYiBmYS15b3V0dWJlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29weS1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgIMKpIDIwMjQsIDIwMjQgQnVzaW5lc3MgSFVCIGludGVybmF0aW9uYWwgaW52ZXN0bWVudCAtIEFsbFxyXG4gICAgICAgICAgICAgICAgICBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9mb290ZXI+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IEZvb3RlcjtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiTGluayIsImFwcERhdGEiLCJGb290ZXIiLCJoaWRlQkdDT0xPUiIsImZvb3RlckxvZ28iLCJ3aWR0aCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Footer/footer.jsx\n"); + +/***/ }) + +}); \ No newline at end of file diff --git a/.next/static/webpack/pages/index.976feb7437cdc842.hot-update.js b/.next/static/webpack/pages/index.976feb7437cdc842.hot-update.js new file mode 100644 index 0000000..98a4dc0 --- /dev/null +++ b/.next/static/webpack/pages/index.976feb7437cdc842.hot-update.js @@ -0,0 +1,22 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("pages/index",{ + +/***/ "./src/components/Team/team.jsx": +/*!**************************************!*\ + !*** ./src/components/Team/team.jsx ***! + \**************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/teamSkillsProgress */ \"./src/common/teamSkillsProgress.js\");\n/* harmony import */ var _common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/tooltipEffect */ \"./src/common/tooltipEffect.js\");\n/* harmony import */ var _data_sections_team_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../data/sections/team.json */ \"./src/data/sections/team.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Team\\\\team.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nvar Team = function Team() {\n _s();\n\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n (0,_common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n setTimeout(function () {\n (0,_common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__[\"default\"])();\n }, 1000);\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"section\", {\n className: \"team section-padding\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Our Team\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: \"Our team will simplify business setup in the UAE\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container-fluid\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/01.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/02.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/03.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 117,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/04.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/01.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/02.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/03.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 292,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 291,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 297,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 299,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 298,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 280,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 275,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/04.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 319,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 333,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 332,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 338,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 340,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 339,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 321,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 320,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 318,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 317,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 316,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/01.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 361,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 375,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 374,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 380,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 382,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 381,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 363,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 362,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 360,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 359,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 358,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/02.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 401,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 415,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 414,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 420,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 422,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 421,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 403,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 402,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 400,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 399,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 398,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/03.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 441,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 455,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 454,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 460,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 462,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 461,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 443,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 442,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 440,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 439,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 438,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/04.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 482,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 496,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 495,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 501,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 503,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 502,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 484,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 483,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 481,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 480,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 479,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 357,\n columnNumber: 9\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 5\n }, _this);\n};\n\n_s(Team, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = Team;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Team);\n\nvar _c;\n\n$RefreshReg$(_c, \"Team\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFBQSxXQURGO0FBNmZELENBcGdCRDs7R0FBTUU7O0tBQUFBO0FBc2dCTiwrREFBZUEsSUFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tcG9uZW50cy9UZWFtL3RlYW0uanN4P2I2OGUiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB0ZWFtU2tpbGxzUHJvZ3Jlc3MgZnJvbSBcIi4uLy4uL2NvbW1vbi90ZWFtU2tpbGxzUHJvZ3Jlc3NcIjtcclxuaW1wb3J0IHRvb2x0aXBFZmZlY3QgZnJvbSBcIi4uLy4uL2NvbW1vbi90b29sdGlwRWZmZWN0XCI7XHJcbmltcG9ydCB0ZWFtc0RhdGUgZnJvbSBcIi4uLy4uL2RhdGEvc2VjdGlvbnMvdGVhbS5qc29uXCI7XHJcblxyXG5jb25zdCBUZWFtID0gKCkgPT4ge1xyXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICB0ZWFtU2tpbGxzUHJvZ3Jlc3MoKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0b29sdGlwRWZmZWN0KCk7XHJcbiAgICB9LCAxMDAwKTtcclxuICB9LCBbXSk7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInRlYW0gc2VjdGlvbi1wYWRkaW5nXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOCBjb2wtbWQtMTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWMtaGVhZCB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNiBjbGFzc05hbWU9XCJ3b3cgZmFkZUluXCIgZGF0YS13b3ctZGVsYXk9XCIuNXNcIj5cclxuICAgICAgICAgICAgICAgIE91ciBUZWFtXHJcbiAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwid293IGNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgIE91ciB0ZWFtIHdpbGwgc2ltcGxpZnkgYnVzaW5lc3Mgc2V0dXAgaW4gdGhlIFVBRVxyXG4gICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wMS53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUxXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDRU8gTWFuYWdlciBDRU8gTWFuYWdlciBDRU8gTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzAyLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTJcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIHNtLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDMud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlM1wiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDQud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlNFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzAxLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTFcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgxXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENFTyBNYW5hZ2VyIENFTyBNYW5hZ2VyIENFTyBNYW5hZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDIud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlMlwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDJcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJpb3IgRGVzaWduZXIgSW50ZXJpb3IgRGVzaWduZXIgSW50ZXJpb3IgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgc20tbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wMy53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUzXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wNC53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGU0XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoNFwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDbGllbnQgTWFuYWdlciBDbGllbnQgTWFuYWdlciBDbGllbnQgTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDEud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlMVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ0VPIE1hbmFnZXIgQ0VPIE1hbmFnZXIgQ0VPIE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wMi53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMlwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBJbnRlcmlvciBEZXNpZ25lciBJbnRlcmlvciBEZXNpZ25lciBJbnRlcmlvciBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBzbS1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzAzLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTNcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzA0LndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTRcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGg0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGg0XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGg0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENsaWVudCBNYW5hZ2VyIENsaWVudCBNYW5hZ2VyIENsaWVudCBNYW5hZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvc2VjdGlvbj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgVGVhbTtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwidGVhbVNraWxsc1Byb2dyZXNzIiwidG9vbHRpcEVmZmVjdCIsInRlYW1zRGF0ZSIsIlRlYW0iLCJ1c2VFZmZlY3QiLCJzZXRUaW1lb3V0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Team/team.jsx\n"); + +/***/ }) + +}); \ No newline at end of file diff --git a/.next/static/webpack/pages/index.99e1201d5af809ef.hot-update.js b/.next/static/webpack/pages/index.99e1201d5af809ef.hot-update.js new file mode 100644 index 0000000..d58766c --- /dev/null +++ b/.next/static/webpack/pages/index.99e1201d5af809ef.hot-update.js @@ -0,0 +1,22 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("pages/index",{ + +/***/ "./src/components/Team/team.jsx": +/*!**************************************!*\ + !*** ./src/components/Team/team.jsx ***! + \**************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/teamSkillsProgress */ \"./src/common/teamSkillsProgress.js\");\n/* harmony import */ var _common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/tooltipEffect */ \"./src/common/tooltipEffect.js\");\n/* harmony import */ var _data_sections_team_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../data/sections/team.json */ \"./src/data/sections/team.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Team\\\\team.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nvar Team = function Team() {\n _s();\n\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n (0,_common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n setTimeout(function () {\n (0,_common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__[\"default\"])();\n }, 1000);\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"section\", {\n className: \"team section-padding\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Our Team\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: \"Our team will simplify business setup in the UAE\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container-fluid\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/01.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/02.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/03.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 117,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/04.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/05.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/06.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/07.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 292,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 291,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 297,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 299,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 298,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 280,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 275,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/08.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 319,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 333,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 332,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 338,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 340,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 339,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 321,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 320,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 318,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 317,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 316,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/09.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 361,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 375,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 374,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 380,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 382,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 381,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 363,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 362,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 360,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 359,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 358,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/10.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 401,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 415,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 414,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 420,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 422,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 421,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 403,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 402,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 400,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 399,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 398,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/11.webp\",\n style: {\n borderRadius: \"100%\"\n },\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 441,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 459,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 458,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 464,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 466,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 465,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 447,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 446,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 440,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 439,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 438,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/12.webp\",\n style: {\n borderRadius: \"100%\"\n },\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 486,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 504,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 503,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 509,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 511,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 510,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 492,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 491,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 485,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 484,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 483,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 357,\n columnNumber: 9\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 5\n }, _this);\n};\n\n_s(Team, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = Team;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Team);\n\nvar _c;\n\n$RefreshReg$(_c, \"Team\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFBO0FBQUEsaUJBOUhGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxlQXZVRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsYUFmRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsV0FERjtBQXFnQkQsQ0E1Z0JEOztHQUFNSDs7S0FBQUE7QUE4Z0JOLCtEQUFlQSxJQUFmIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9jb21wb25lbnRzL1RlYW0vdGVhbS5qc3g/YjY4ZSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAbmV4dC9uZXh0L25vLWltZy1lbGVtZW50ICovXHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHRlYW1Ta2lsbHNQcm9ncmVzcyBmcm9tIFwiLi4vLi4vY29tbW9uL3RlYW1Ta2lsbHNQcm9ncmVzc1wiO1xyXG5pbXBvcnQgdG9vbHRpcEVmZmVjdCBmcm9tIFwiLi4vLi4vY29tbW9uL3Rvb2x0aXBFZmZlY3RcIjtcclxuaW1wb3J0IHRlYW1zRGF0ZSBmcm9tIFwiLi4vLi4vZGF0YS9zZWN0aW9ucy90ZWFtLmpzb25cIjtcclxuXHJcbmNvbnN0IFRlYW0gPSAoKSA9PiB7XHJcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgIHRlYW1Ta2lsbHNQcm9ncmVzcygpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRvb2x0aXBFZmZlY3QoKTtcclxuICAgIH0sIDEwMDApO1xyXG4gIH0sIFtdKTtcclxuICByZXR1cm4gKFxyXG4gICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwidGVhbSBzZWN0aW9uLXBhZGRpbmdcIj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy04IGNvbC1tZC0xMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNlYy1oZWFkIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGg2IGNsYXNzTmFtZT1cIndvdyBmYWRlSW5cIiBkYXRhLXdvdy1kZWxheT1cIi41c1wiPlxyXG4gICAgICAgICAgICAgICAgT3VyIFRlYW1cclxuICAgICAgICAgICAgICA8L2g2PlxyXG4gICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJ3b3cgY29sb3ItZm9udFwiPlxyXG4gICAgICAgICAgICAgICAgT3VyIHRlYW0gd2lsbCBzaW1wbGlmeSBidXNpbmVzcyBzZXR1cCBpbiB0aGUgVUFFXHJcbiAgICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyLWZsdWlkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzAxLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTFcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgxXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENFTyBNYW5hZ2VyIENFTyBNYW5hZ2VyIENFTyBNYW5hZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDIud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlMlwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDJcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJpb3IgRGVzaWduZXIgSW50ZXJpb3IgRGVzaWduZXIgSW50ZXJpb3IgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgc20tbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wMy53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUzXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wNC53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGU0XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoNFwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDbGllbnQgTWFuYWdlciBDbGllbnQgTWFuYWdlciBDbGllbnQgTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDUud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlMVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ0VPIE1hbmFnZXIgQ0VPIE1hbmFnZXIgQ0VPIE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wNi53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMlwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBJbnRlcmlvciBEZXNpZ25lciBJbnRlcmlvciBEZXNpZ25lciBJbnRlcmlvciBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBzbS1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzA3LndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTNcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzA4LndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTRcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGg0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGg0XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGg0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENsaWVudCBNYW5hZ2VyIENsaWVudCBNYW5hZ2VyIENsaWVudCBNYW5hZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wOS53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUxXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDRU8gTWFuYWdlciBDRU8gTWFuYWdlciBDRU8gTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzEwLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTJcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gIHNtLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICAgICBzcmM9XCIvaW1nL3RlYW0vMTEud2VicFwiXHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGJvcmRlclJhZGl1czogXCIxMDAlXCIgfX1cclxuICAgICAgICAgICAgICAgICAgYWx0PVwiXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlM1wiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICAgICBzcmM9XCIvaW1nL3RlYW0vMTIud2VicFwiXHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGJvcmRlclJhZGl1czogXCIxMDAlXCIgfX1cclxuICAgICAgICAgICAgICAgICAgYWx0PVwiXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlNFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBUZWFtO1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJ0ZWFtU2tpbGxzUHJvZ3Jlc3MiLCJ0b29sdGlwRWZmZWN0IiwidGVhbXNEYXRlIiwiVGVhbSIsInVzZUVmZmVjdCIsInNldFRpbWVvdXQiLCJib3JkZXJSYWRpdXMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/components/Team/team.jsx\n"); + +/***/ }) + +}); \ No newline at end of file diff --git a/.next/static/webpack/pages/index.9efc4064513bf841.hot-update.js b/.next/static/webpack/pages/index.9efc4064513bf841.hot-update.js new file mode 100644 index 0000000..d658dea --- /dev/null +++ b/.next/static/webpack/pages/index.9efc4064513bf841.hot-update.js @@ -0,0 +1,22 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("pages/index",{ + +/***/ "./src/components/Intro4/intro4.jsx": +/*!******************************************!*\ + !*** ./src/components/Intro4/intro4.jsx ***! + \******************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _config_particle_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../config/particle-config */ \"./src/config/particle-config.js\");\n/* harmony import */ var _config_pr_s_black__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../config/pr-s-black */ \"./src/config/pr-s-black.js\");\n/* harmony import */ var react_tsparticles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-tsparticles */ \"./node_modules/react-tsparticles/index.js\");\n/* harmony import */ var react_tsparticles__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_tsparticles__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Intro4\\\\intro4.jsx\",\n _this = undefined;\n\n\n\n\n\n\n\nvar Intro4 = function Intro4(_ref) {\n var sliderRef = _ref.sliderRef,\n blackStar = _ref.blackStar;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"header\", {\n ref: sliderRef,\n className: \"particles circle-bg valign\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"cont text-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h1\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"color-font\",\n children: \"Begin \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 17\n }, _this), \" your UAE project with\", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"color-font\",\n children: \"Business Hub\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 17\n }, _this), \".\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((react_tsparticles__WEBPACK_IMPORTED_MODULE_3___default()), {\n id: \"particles-js\",\n options: blackStar ? _config_pr_s_black__WEBPACK_IMPORTED_MODULE_2__[\"default\"] : _config_particle_config__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"gradient-circle\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"gradient-circle two\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"line bottom left\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 5\n }, _this);\n};\n\n_c = Intro4;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Intro4);\n\nvar _c;\n\n$RefreshReg$(_c, \"Intro4\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9JbnRybzQvaW50cm80LmpzeC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7OztBQUVBLElBQU1JLE1BQU0sR0FBRyxTQUFUQSxNQUFTLE9BQThCO0FBQUEsTUFBM0JDLFNBQTJCLFFBQTNCQSxTQUEyQjtBQUFBLE1BQWhCQyxTQUFnQixRQUFoQkEsU0FBZ0I7QUFDM0Msc0JBQ0U7QUFBUSxPQUFHLEVBQUVELFNBQWI7QUFBd0IsYUFBUyxFQUFDLDRCQUFsQztBQUFBLDRCQUNFO0FBQUssZUFBUyxFQUFDLFdBQWY7QUFBQSw2QkFDRTtBQUFLLGlCQUFTLEVBQUMsNEJBQWY7QUFBQSwrQkFDRTtBQUFLLG1CQUFTLEVBQUMsV0FBZjtBQUFBLGlDQUNFO0FBQUsscUJBQVMsRUFBQyxrQkFBZjtBQUFBLG1DQUNFO0FBQUEsc0NBQ0U7QUFBTSx5QkFBUyxFQUFDLFlBQWhCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQURGLHlDQUVFO0FBQU0seUJBQVMsRUFBQyxZQUFoQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFGRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBREYsZUFjRSw4REFBQywwREFBRDtBQUNFLFFBQUUsRUFBQyxjQURMO0FBRUUsYUFBTyxFQUFFQyxTQUFTLEdBQUdKLDBEQUFILEdBQTBCRCwrREFBZUE7QUFGN0Q7QUFBQTtBQUFBO0FBQUE7QUFBQSxhQWRGLGVBbUJFO0FBQUssZUFBUyxFQUFDO0FBQWY7QUFBQTtBQUFBO0FBQUE7QUFBQSxhQW5CRixlQW9CRTtBQUFLLGVBQVMsRUFBQztBQUFmO0FBQUE7QUFBQTtBQUFBO0FBQUEsYUFwQkYsZUFxQkU7QUFBSyxlQUFTLEVBQUM7QUFBZjtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBckJGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxXQURGO0FBeUJELENBMUJEOztLQUFNRztBQTRCTiwrREFBZUEsTUFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tcG9uZW50cy9JbnRybzQvaW50cm80LmpzeD80ODBlIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHBhcnRpY2xlc0NvbmZpZyBmcm9tIFwiLi4vLi4vY29uZmlnL3BhcnRpY2xlLWNvbmZpZ1wiO1xyXG5pbXBvcnQgcGFydGljbGVzQmxhY2tDb25maWcgZnJvbSBcIi4uLy4uL2NvbmZpZy9wci1zLWJsYWNrXCI7XHJcbmltcG9ydCBQYXJ0aWNsZXMgZnJvbSBcInJlYWN0LXRzcGFydGljbGVzXCI7XHJcblxyXG5jb25zdCBJbnRybzQgPSAoeyBzbGlkZXJSZWYsIGJsYWNrU3RhciB9KSA9PiB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxoZWFkZXIgcmVmPXtzbGlkZXJSZWZ9IGNsYXNzTmFtZT1cInBhcnRpY2xlcyBjaXJjbGUtYmcgdmFsaWduXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250IHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGgxPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiY29sb3ItZm9udFwiPkJlZ2luIDwvc3Bhbj4geW91ciBVQUUgcHJvamVjdCB3aXRoXHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJjb2xvci1mb250XCI+QnVzaW5lc3MgSHViPC9zcGFuPi5cclxuICAgICAgICAgICAgICA8L2gxPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxQYXJ0aWNsZXNcclxuICAgICAgICBpZD1cInBhcnRpY2xlcy1qc1wiXHJcbiAgICAgICAgb3B0aW9ucz17YmxhY2tTdGFyID8gcGFydGljbGVzQmxhY2tDb25maWcgOiBwYXJ0aWNsZXNDb25maWd9XHJcbiAgICAgIC8+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyYWRpZW50LWNpcmNsZVwiPjwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyYWRpZW50LWNpcmNsZSB0d29cIj48L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJsaW5lIGJvdHRvbSBsZWZ0XCI+PC9kaXY+XHJcbiAgICA8L2hlYWRlcj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgSW50cm80O1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJwYXJ0aWNsZXNDb25maWciLCJwYXJ0aWNsZXNCbGFja0NvbmZpZyIsIlBhcnRpY2xlcyIsIkludHJvNCIsInNsaWRlclJlZiIsImJsYWNrU3RhciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Intro4/intro4.jsx\n"); + +/***/ }) + +}); \ No newline at end of file diff --git a/.next/static/webpack/pages/index.be65fe127a28d26b.hot-update.js b/.next/static/webpack/pages/index.be65fe127a28d26b.hot-update.js new file mode 100644 index 0000000..41d48e1 --- /dev/null +++ b/.next/static/webpack/pages/index.be65fe127a28d26b.hot-update.js @@ -0,0 +1,22 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("pages/index",{ + +/***/ "./src/components/Team/team.jsx": +/*!**************************************!*\ + !*** ./src/components/Team/team.jsx ***! + \**************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/teamSkillsProgress */ \"./src/common/teamSkillsProgress.js\");\n/* harmony import */ var _common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/tooltipEffect */ \"./src/common/tooltipEffect.js\");\n/* harmony import */ var _data_sections_team_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../data/sections/team.json */ \"./src/data/sections/team.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Team\\\\team.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nvar Team = function Team() {\n _s();\n\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n (0,_common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n setTimeout(function () {\n (0,_common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__[\"default\"])();\n }, 1000);\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"section\", {\n className: \"team section-padding\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Our Team\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: \"Our team will simplify business setup in the UAE\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container-fluid\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/01.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/02.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/03.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 117,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/04.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/05.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/06.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/07.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 292,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 291,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 297,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 299,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 298,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 280,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 275,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/08.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 319,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 333,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 332,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 338,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 340,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 339,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 321,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 320,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 318,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 317,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 316,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 9\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/09.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 361,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 375,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 374,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 380,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 382,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 381,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 363,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 362,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 360,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 359,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 358,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/10.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 401,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 415,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 414,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 420,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 422,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 421,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 403,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 402,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 400,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 399,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 398,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/11.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 441,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 455,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 454,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 460,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 462,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 461,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 443,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 442,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 440,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 439,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 438,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/12.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 482,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 481,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 480,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 479,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 357,\n columnNumber: 9\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 5\n }, _this);\n};\n\n_s(Team, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = Team;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Team);\n\nvar _c;\n\n$RefreshReg$(_c, \"Team\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Syx1QkFBUyxFQUFDLEtBQWY7QUFBQSxxQ0FDRTtBQUFLLG1CQUFHLEVBQUMsbUJBQVQ7QUFBNkIsbUJBQUcsRUFBQztBQUFqQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQTFIRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUF2VUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBZkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBREY7QUFpZUQsQ0F4ZUQ7O0dBQU1FOztLQUFBQTtBQTBlTiwrREFBZUEsSUFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tcG9uZW50cy9UZWFtL3RlYW0uanN4P2I2OGUiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB0ZWFtU2tpbGxzUHJvZ3Jlc3MgZnJvbSBcIi4uLy4uL2NvbW1vbi90ZWFtU2tpbGxzUHJvZ3Jlc3NcIjtcclxuaW1wb3J0IHRvb2x0aXBFZmZlY3QgZnJvbSBcIi4uLy4uL2NvbW1vbi90b29sdGlwRWZmZWN0XCI7XHJcbmltcG9ydCB0ZWFtc0RhdGUgZnJvbSBcIi4uLy4uL2RhdGEvc2VjdGlvbnMvdGVhbS5qc29uXCI7XHJcblxyXG5jb25zdCBUZWFtID0gKCkgPT4ge1xyXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICB0ZWFtU2tpbGxzUHJvZ3Jlc3MoKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0b29sdGlwRWZmZWN0KCk7XHJcbiAgICB9LCAxMDAwKTtcclxuICB9LCBbXSk7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInRlYW0gc2VjdGlvbi1wYWRkaW5nXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOCBjb2wtbWQtMTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWMtaGVhZCB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNiBjbGFzc05hbWU9XCJ3b3cgZmFkZUluXCIgZGF0YS13b3ctZGVsYXk9XCIuNXNcIj5cclxuICAgICAgICAgICAgICAgIE91ciBUZWFtXHJcbiAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwid293IGNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgIE91ciB0ZWFtIHdpbGwgc2ltcGxpZnkgYnVzaW5lc3Mgc2V0dXAgaW4gdGhlIFVBRVxyXG4gICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wMS53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUxXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDRU8gTWFuYWdlciBDRU8gTWFuYWdlciBDRU8gTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzAyLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTJcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIHNtLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDMud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlM1wiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDQud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlNFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzA1LndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTFcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgxXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENFTyBNYW5hZ2VyIENFTyBNYW5hZ2VyIENFTyBNYW5hZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDYud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlMlwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDJcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJpb3IgRGVzaWduZXIgSW50ZXJpb3IgRGVzaWduZXIgSW50ZXJpb3IgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgc20tbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wNy53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUzXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wOC53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGU0XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoNFwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDbGllbnQgTWFuYWdlciBDbGllbnQgTWFuYWdlciBDbGllbnQgTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDkud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlMVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ0VPIE1hbmFnZXIgQ0VPIE1hbmFnZXIgQ0VPIE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8xMC53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMlwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBJbnRlcmlvciBEZXNpZ25lciBJbnRlcmlvciBEZXNpZ25lciBJbnRlcmlvciBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBzbS1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzExLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTNcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzEyLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L3NlY3Rpb24+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IFRlYW07XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsInRlYW1Ta2lsbHNQcm9ncmVzcyIsInRvb2x0aXBFZmZlY3QiLCJ0ZWFtc0RhdGUiLCJUZWFtIiwidXNlRWZmZWN0Iiwic2V0VGltZW91dCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Team/team.jsx\n"); + +/***/ }) + +}); \ No newline at end of file diff --git a/.next/static/webpack/pages/index.bf5abb6f7bfbabc3.hot-update.js b/.next/static/webpack/pages/index.bf5abb6f7bfbabc3.hot-update.js new file mode 100644 index 0000000..df10c82 --- /dev/null +++ b/.next/static/webpack/pages/index.bf5abb6f7bfbabc3.hot-update.js @@ -0,0 +1,22 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("pages/index",{ + +/***/ "./src/components/Team/team.jsx": +/*!**************************************!*\ + !*** ./src/components/Team/team.jsx ***! + \**************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/teamSkillsProgress */ \"./src/common/teamSkillsProgress.js\");\n/* harmony import */ var _common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/tooltipEffect */ \"./src/common/tooltipEffect.js\");\n/* harmony import */ var _data_sections_team_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../data/sections/team.json */ \"./src/data/sections/team.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Team\\\\team.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nvar Team = function Team() {\n _s();\n\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n (0,_common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n setTimeout(function () {\n (0,_common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__[\"default\"])();\n }, 1000);\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"section\", {\n className: \"team section-padding\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Our Team\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: \"\\\"Our team will simplify business setup in the UAE..\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container-fluid\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/01.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/02.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/03.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 117,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/04.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 5\n }, _this);\n};\n\n_s(Team, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = Team;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Team);\n\nvar _c;\n\n$RefreshReg$(_c, \"Team\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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X0UvLi9zcmMvY29tcG9uZW50cy9UZWFtL3RlYW0uanN4P2I2OGUiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB0ZWFtU2tpbGxzUHJvZ3Jlc3MgZnJvbSBcIi4uLy4uL2NvbW1vbi90ZWFtU2tpbGxzUHJvZ3Jlc3NcIjtcclxuaW1wb3J0IHRvb2x0aXBFZmZlY3QgZnJvbSBcIi4uLy4uL2NvbW1vbi90b29sdGlwRWZmZWN0XCI7XHJcbmltcG9ydCB0ZWFtc0RhdGUgZnJvbSBcIi4uLy4uL2RhdGEvc2VjdGlvbnMvdGVhbS5qc29uXCI7XHJcblxyXG5jb25zdCBUZWFtID0gKCkgPT4ge1xyXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICB0ZWFtU2tpbGxzUHJvZ3Jlc3MoKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0b29sdGlwRWZmZWN0KCk7XHJcbiAgICB9LCAxMDAwKTtcclxuICB9LCBbXSk7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInRlYW0gc2VjdGlvbi1wYWRkaW5nXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOCBjb2wtbWQtMTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWMtaGVhZCB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNiBjbGFzc05hbWU9XCJ3b3cgZmFkZUluXCIgZGF0YS13b3ctZGVsYXk9XCIuNXNcIj5cclxuICAgICAgICAgICAgICAgIE91ciBUZWFtXHJcbiAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwid293IGNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgIFwiT3VyIHRlYW0gd2lsbCBzaW1wbGlmeSBidXNpbmVzcyBzZXR1cCBpbiB0aGUgVUFFLi5cclxuICAgICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXItZmx1aWRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIG1kLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDEud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlMVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ0VPIE1hbmFnZXIgQ0VPIE1hbmFnZXIgQ0VPIE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wMi53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMlwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBJbnRlcmlvciBEZXNpZ25lciBJbnRlcmlvciBEZXNpZ25lciBJbnRlcmlvciBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBzbS1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzAzLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTNcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzA0LndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTRcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGg0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGg0XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGg0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENsaWVudCBNYW5hZ2VyIENsaWVudCBNYW5hZ2VyIENsaWVudCBNYW5hZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvc2VjdGlvbj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgVGVhbTtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwidGVhbVNraWxsc1Byb2dyZXNzIiwidG9vbHRpcEVmZmVjdCIsInRlYW1zRGF0ZSIsIlRlYW0iLCJ1c2VFZmZlY3QiLCJzZXRUaW1lb3V0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Team/team.jsx\n"); + +/***/ }) + +}); \ No newline at end of file diff --git a/.next/static/webpack/pages/index.c2399be6206f0aba.hot-update.js b/.next/static/webpack/pages/index.c2399be6206f0aba.hot-update.js new file mode 100644 index 0000000..1e93c79 --- /dev/null +++ b/.next/static/webpack/pages/index.c2399be6206f0aba.hot-update.js @@ -0,0 +1,22 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("pages/index",{ + +/***/ "./src/components/Team/team.jsx": +/*!**************************************!*\ + !*** ./src/components/Team/team.jsx ***! + \**************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/teamSkillsProgress */ \"./src/common/teamSkillsProgress.js\");\n/* harmony import */ var _common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/tooltipEffect */ \"./src/common/tooltipEffect.js\");\n/* harmony import */ var _data_sections_team_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../data/sections/team.json */ \"./src/data/sections/team.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Team\\\\team.jsx\",\n _this = undefined,\n _s = $RefreshSig$();\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\n\nvar Team = function Team() {\n _s();\n\n react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () {\n (0,_common_teamSkillsProgress__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n setTimeout(function () {\n (0,_common_tooltipEffect__WEBPACK_IMPORTED_MODULE_2__[\"default\"])();\n }, 1000);\n }, []);\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"section\", {\n className: \"team section-padding\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-8 col-md-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"sec-head text-center\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h6\", {\n className: \"wow fadeIn\",\n \"data-wow-delay\": \".5s\",\n children: \"Our Team\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h3\", {\n className: \"wow color-font\",\n children: \"Our team will simplify business setup in the UAE\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container-fluid\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/01.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle1\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath1\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath1\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir md-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/02.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle2\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath2\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath2\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/03.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 117,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/04.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath4\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath4\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/03.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-3 col-md-6\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"item cir sm-mb50\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"img\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"img\", {\n src: \"/img/team/03.webp\",\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n id: \"circle3\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"svg\", {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n width: \"300px\",\n height: \"300px\",\n viewBox: \"0 0 300 300\",\n enableBackground: \"new 0 0 300 300\",\n xmlSpace: \"preserve\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"path\", {\n id: \"circlePath3\",\n d: \" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 250,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"circle\", {\n cx: \"150\",\n cy: \"100\",\n r: \"75\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 256,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"g\", {\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"use\", {\n xlinkHref: \"#circlePath3\",\n fill: \"none\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 23\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 5\n }, _this);\n};\n\n_s(Team, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n\n_c = Team;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Team);\n\nvar _c;\n\n$RefreshReg$(_c, \"Team\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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cG9uZW50cy9UZWFtL3RlYW0uanN4P2I2OGUiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB0ZWFtU2tpbGxzUHJvZ3Jlc3MgZnJvbSBcIi4uLy4uL2NvbW1vbi90ZWFtU2tpbGxzUHJvZ3Jlc3NcIjtcclxuaW1wb3J0IHRvb2x0aXBFZmZlY3QgZnJvbSBcIi4uLy4uL2NvbW1vbi90b29sdGlwRWZmZWN0XCI7XHJcbmltcG9ydCB0ZWFtc0RhdGUgZnJvbSBcIi4uLy4uL2RhdGEvc2VjdGlvbnMvdGVhbS5qc29uXCI7XHJcblxyXG5jb25zdCBUZWFtID0gKCkgPT4ge1xyXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICB0ZWFtU2tpbGxzUHJvZ3Jlc3MoKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0b29sdGlwRWZmZWN0KCk7XHJcbiAgICB9LCAxMDAwKTtcclxuICB9LCBbXSk7XHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInRlYW0gc2VjdGlvbi1wYWRkaW5nXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctOCBjb2wtbWQtMTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWMtaGVhZCB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxoNiBjbGFzc05hbWU9XCJ3b3cgZmFkZUluXCIgZGF0YS13b3ctZGVsYXk9XCIuNXNcIj5cclxuICAgICAgICAgICAgICAgIE91ciBUZWFtXHJcbiAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwid293IGNvbG9yLWZvbnRcIj5cclxuICAgICAgICAgICAgICAgIE91ciB0ZWFtIHdpbGwgc2ltcGxpZnkgYnVzaW5lc3Mgc2V0dXAgaW4gdGhlIFVBRVxyXG4gICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wMS53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUxXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDRU8gTWFuYWdlciBDRU8gTWFuYWdlciBDRU8gTWFuYWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBtZC1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzAyLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTJcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyIEludGVyaW9yIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMyBjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gY2lyIHNtLW1iNTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDMud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlM1wiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgRGVzaWduZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvaW1nL3RlYW0vMDQud2VicFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2lyY2xlNFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMzAwIDMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sU3BhY2U9XCJwcmVzZXJ2ZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlUGF0aDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiIE0gMTUwLCAxNTAgbSAtNjAsIDAgYSA2MCw2MCAwIDAsMSAxMjAsMCBhIDYwLDYwIDAgMCwxIC0xMjAsMCBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1MFwiIGN5PVwiMTAwXCIgcj1cIjc1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7LyogPHRleHQgZmlsbD1cIiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCB4bGlua0hyZWY9XCIjY2lyY2xlUGF0aDRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXIgQ2xpZW50IE1hbmFnZXJcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZXh0PiAqL31cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDY+UnlhbiBIaWNrczwvaDY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5DbGllbnQgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1sZy0zIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbSBjaXIgc20tbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi9pbWcvdGVhbS8wMy53ZWJwXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaXJjbGUzXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAzMDAgMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxTcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVQYXRoM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCIgTSAxNTAsIDE1MCBtIC02MCwgMCBhIDYwLDYwIDAgMCwxIDEyMCwwIGEgNjAsNjAgMCAwLDEgLTEyMCwwIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTUwXCIgY3k9XCIxMDBcIiByPVwiNzVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHsvKiA8dGV4dCBmaWxsPVwiI2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRQYXRoIHhsaW5rSHJlZj1cIiNjaXJjbGVQYXRoM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlIERlc2lnbmVyIExhbmRzY2FwZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBEZXNpZ25lclxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZXh0UGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RleHQ+ICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNj5SeWFuIEhpY2tzPC9oNj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkNsaWVudCBNYW5hZ2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTMgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtIGNpciBzbS1tYjUwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL2ltZy90ZWFtLzAzLndlYnBcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImNpcmNsZTNcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHg9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHk9XCIwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZUJhY2tncm91bmQ9XCJuZXcgMCAwIDMwMCAzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbFNwYWNlPVwicHJlc2VydmVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNpcmNsZVBhdGgzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIiBNIDE1MCwgMTUwIG0gLTYwLCAwIGEgNjAsNjAgMCAwLDEgMTIwLDAgYSA2MCw2MCAwIDAsMSAtMTIwLDAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNTBcIiBjeT1cIjEwMFwiIHI9XCI3NVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgey8qIDx0ZXh0IGZpbGw9XCIjZmZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dFBhdGggeGxpbmtIcmVmPVwiI2NpcmNsZVBhdGgzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIExhbmRzY2FwZSBEZXNpZ25lciBMYW5kc2NhcGUgRGVzaWduZXIgTGFuZHNjYXBlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIERlc2lnbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RleHRQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dD4gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGg2PlJ5YW4gSGlja3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Q2xpZW50IE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvc2VjdGlvbj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgVGVhbTtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwidGVhbVNraWxsc1Byb2dyZXNzIiwidG9vbHRpcEVmZmVjdCIsInRlYW1zRGF0ZSIsIlRlYW0iLCJ1c2VFZmZlY3QiLCJzZXRUaW1lb3V0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Team/team.jsx\n"); + +/***/ }) + +}); \ No newline at end of file diff --git a/.next/static/webpack/pages/index.f2eccf131ac3f1a2.hot-update.js b/.next/static/webpack/pages/index.f2eccf131ac3f1a2.hot-update.js new file mode 100644 index 0000000..739727e --- /dev/null +++ b/.next/static/webpack/pages/index.f2eccf131ac3f1a2.hot-update.js @@ -0,0 +1,22 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("pages/index",{ + +/***/ "./src/components/Intro4/intro4.jsx": +/*!******************************************!*\ + !*** ./src/components/Intro4/intro4.jsx ***! + \******************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _config_particle_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../config/particle-config */ \"./src/config/particle-config.js\");\n/* harmony import */ var _config_pr_s_black__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../config/pr-s-black */ \"./src/config/pr-s-black.js\");\n/* harmony import */ var react_tsparticles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-tsparticles */ \"./node_modules/react-tsparticles/index.js\");\n/* harmony import */ var react_tsparticles__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_tsparticles__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Intro4\\\\intro4.jsx\",\n _this = undefined;\n\n\n\n\n\n\n\nvar Intro4 = function Intro4(_ref) {\n var sliderRef = _ref.sliderRef,\n blackStar = _ref.blackStar;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"header\", {\n ref: sliderRef,\n className: \"particles circle-bg valign\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"row justify-content-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"col-lg-10\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"cont text-center\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"h1\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"color-font\",\n children: \"Begin \"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 17\n }, _this), \"your UAE project with\", /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"span\", {\n className: \"color-font\",\n children: \"Business Hub\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 17\n }, _this), \".\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 15\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)((react_tsparticles__WEBPACK_IMPORTED_MODULE_3___default()), {\n id: \"particles-js\",\n options: blackStar ? _config_pr_s_black__WEBPACK_IMPORTED_MODULE_2__[\"default\"] : _config_particle_config__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"gradient-circle\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"gradient-circle two\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 7\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(\"div\", {\n className: \"line bottom left\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 7\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 5\n }, _this);\n};\n\n_c = Intro4;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Intro4);\n\nvar _c;\n\n$RefreshReg$(_c, \"Intro4\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9JbnRybzQvaW50cm80LmpzeC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7OztBQUVBLElBQU1JLE1BQU0sR0FBRyxTQUFUQSxNQUFTLE9BQThCO0FBQUEsTUFBM0JDLFNBQTJCLFFBQTNCQSxTQUEyQjtBQUFBLE1BQWhCQyxTQUFnQixRQUFoQkEsU0FBZ0I7QUFDM0Msc0JBQ0U7QUFBUSxPQUFHLEVBQUVELFNBQWI7QUFBd0IsYUFBUyxFQUFDLDRCQUFsQztBQUFBLDRCQUNFO0FBQUssZUFBUyxFQUFDLFdBQWY7QUFBQSw2QkFDRTtBQUFLLGlCQUFTLEVBQUMsNEJBQWY7QUFBQSwrQkFDRTtBQUFLLG1CQUFTLEVBQUMsV0FBZjtBQUFBLGlDQUNFO0FBQUsscUJBQVMsRUFBQyxrQkFBZjtBQUFBLG1DQUNFO0FBQUEsc0NBQ0U7QUFBTSx5QkFBUyxFQUFDLFlBQWhCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQURGLHdDQUdFO0FBQU0seUJBQVMsRUFBQyxZQUFoQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFIRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBREYsZUFlRSw4REFBQywwREFBRDtBQUNFLFFBQUUsRUFBQyxjQURMO0FBRUUsYUFBTyxFQUFFQyxTQUFTLEdBQUdKLDBEQUFILEdBQTBCRCwrREFBZUE7QUFGN0Q7QUFBQTtBQUFBO0FBQUE7QUFBQSxhQWZGLGVBb0JFO0FBQUssZUFBUyxFQUFDO0FBQWY7QUFBQTtBQUFBO0FBQUE7QUFBQSxhQXBCRixlQXFCRTtBQUFLLGVBQVMsRUFBQztBQUFmO0FBQUE7QUFBQTtBQUFBO0FBQUEsYUFyQkYsZUFzQkU7QUFBSyxlQUFTLEVBQUM7QUFBZjtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBdEJGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxXQURGO0FBMEJELENBM0JEOztLQUFNRztBQTZCTiwrREFBZUEsTUFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tcG9uZW50cy9JbnRybzQvaW50cm80LmpzeD80ODBlIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHBhcnRpY2xlc0NvbmZpZyBmcm9tIFwiLi4vLi4vY29uZmlnL3BhcnRpY2xlLWNvbmZpZ1wiO1xyXG5pbXBvcnQgcGFydGljbGVzQmxhY2tDb25maWcgZnJvbSBcIi4uLy4uL2NvbmZpZy9wci1zLWJsYWNrXCI7XHJcbmltcG9ydCBQYXJ0aWNsZXMgZnJvbSBcInJlYWN0LXRzcGFydGljbGVzXCI7XHJcblxyXG5jb25zdCBJbnRybzQgPSAoeyBzbGlkZXJSZWYsIGJsYWNrU3RhciB9KSA9PiB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxoZWFkZXIgcmVmPXtzbGlkZXJSZWZ9IGNsYXNzTmFtZT1cInBhcnRpY2xlcyBjaXJjbGUtYmcgdmFsaWduXCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctMTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250IHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGgxPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiY29sb3ItZm9udFwiPkJlZ2luIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIHlvdXIgVUFFIHByb2plY3Qgd2l0aFxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiY29sb3ItZm9udFwiPkJ1c2luZXNzIEh1Yjwvc3Bhbj4uXHJcbiAgICAgICAgICAgICAgPC9oMT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8UGFydGljbGVzXHJcbiAgICAgICAgaWQ9XCJwYXJ0aWNsZXMtanNcIlxyXG4gICAgICAgIG9wdGlvbnM9e2JsYWNrU3RhciA/IHBhcnRpY2xlc0JsYWNrQ29uZmlnIDogcGFydGljbGVzQ29uZmlnfVxyXG4gICAgICAvPlxyXG5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmFkaWVudC1jaXJjbGVcIj48L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmFkaWVudC1jaXJjbGUgdHdvXCI+PC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGluZSBib3R0b20gbGVmdFwiPjwvZGl2PlxyXG4gICAgPC9oZWFkZXI+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IEludHJvNDtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwicGFydGljbGVzQ29uZmlnIiwicGFydGljbGVzQmxhY2tDb25maWciLCJQYXJ0aWNsZXMiLCJJbnRybzQiLCJzbGlkZXJSZWYiLCJibGFja1N0YXIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/components/Intro4/intro4.jsx\n"); + +/***/ }) + +}); \ No newline at end of file diff --git a/.next/static/webpack/pages/index.fcc1171977653d0d.hot-update.js b/.next/static/webpack/pages/index.fcc1171977653d0d.hot-update.js new file mode 100644 index 0000000..bd0ecc1 --- /dev/null +++ b/.next/static/webpack/pages/index.fcc1171977653d0d.hot-update.js @@ -0,0 +1,22 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("pages/index",{ + +/***/ "./src/components/Footer/footer.jsx": +/*!******************************************!*\ + !*** ./src/components/Footer/footer.jsx ***! + \******************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"./node_modules/next/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _data_app_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../data/app.json */ \"./src/data/app.json\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar _jsxFileName = \"C:\\\\Users\\\\hp\\\\Desktop\\\\business-hub\\\\src\\\\components\\\\Footer\\\\footer.jsx\",\n _this = undefined;\n\n/* eslint-disable @next/next/no-img-element */\n\n\n\n\n\nvar Footer = function Footer(_ref) {\n var hideBGCOLOR = _ref.hideBGCOLOR;\n return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"footer\", {\n className: \"\".concat(!hideBGCOLOR ? \"sub-bg\" : \"\"),\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"container\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"row\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item md-mb50\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"title\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h5\", {\n children: \"Contact Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"ul\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-map-marker\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Officeal Address\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"Baghdad Street, Al Dana area, Abu Dhabi, United Arab Emirates\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-mail\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Email Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"hello@businesshub.abudhabi\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"li\", {\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"span\", {\n className: \"icon pe-7s-call\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 19\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"cont\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"h6\", {\n children: \"Call Us\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 21\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"+971 26340404\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 21\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 19\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"col-lg-4\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"item\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"logo\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"img\", {\n src: _data_app_json__WEBPACK_IMPORTED_MODULE_2__.footerLogo,\n style: {\n width: \"150px\"\n },\n alt: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"social\",\n children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"https://www.facebook.com/profile.php?id=100057392223857 \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-facebook-f\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"https://www.linkedin.com/company/business-hub-international-investment\\r\\n\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-linkedin\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"https://www.instagram.com/businesshubi/?igsh=MTJ3ejZneWdmbTM3bQ%3D%3D \\r\\n\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-instagram\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 17\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"a\", {\n href: \"https://www.tiktok.com/@businesshubi?_t=8kpkLWbTrAU&_r=1 \",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"i\", {\n className: \"fab fa-tiktok\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 19\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 17\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 15\n }, _this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"div\", {\n className: \"copy-right\",\n children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(\"p\", {\n children: \"\\xA9 2024, 2024 Business HUB international investment - All Rights Reserved.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 17\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 15\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 13\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 11\n }, _this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 7\n }, _this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 5\n }, _this);\n};\n\n_c = Footer;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Footer);\n\nvar _c;\n\n$RefreshReg$(_c, \"Footer\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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LG9CQUFJLEVBQUMsNEVBRFA7QUFBQSx1Q0FJRTtBQUFHLDJCQUFTLEVBQUM7QUFBYjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSkY7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFWRixlQWdCRTtBQUFHLG9CQUFJLEVBQUMsMkRBQVI7QUFBQSx1Q0FDRTtBQUFHLDJCQUFTLEVBQUM7QUFBYjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFoQkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQVJGLGVBNEJFO0FBQUssdUJBQVMsRUFBQyxZQUFmO0FBQUEscUNBQ0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQTVCRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQW5DRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQSxXQURGO0FBK0VELENBaEZEOztLQUFNSDtBQWtGTiwrREFBZUEsTUFBZiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tcG9uZW50cy9Gb290ZXIvZm9vdGVyLmpzeD9mMzk0Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBuZXh0L25leHQvbm8taW1nLWVsZW1lbnQgKi9cclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgTGluayBmcm9tIFwibmV4dC9saW5rXCI7XHJcbmltcG9ydCBhcHBEYXRhIGZyb20gXCIuLi8uLi9kYXRhL2FwcC5qc29uXCI7XHJcblxyXG5jb25zdCBGb290ZXIgPSAoeyBoaWRlQkdDT0xPUiB9KSA9PiB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxmb290ZXIgY2xhc3NOYW1lPXtgJHshaGlkZUJHQ09MT1IgPyBcInN1Yi1iZ1wiIDogXCJcIn1gfT5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctNFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIml0ZW0gbWQtbWI1MFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGl0bGVcIj5cclxuICAgICAgICAgICAgICAgIDxoNT5Db250YWN0IFVzPC9oNT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24gcGUtN3MtbWFwLW1hcmtlclwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg2Pk9mZmljZWFsIEFkZHJlc3M8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgQmFnaGRhZCBTdHJlZXQsIEFsIERhbmEgYXJlYSwgQWJ1IERoYWJpLCBVbml0ZWQgQXJhYlxyXG4gICAgICAgICAgICAgICAgICAgICAgRW1pcmF0ZXNcclxuICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvbiBwZS03cy1tYWlsXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDY+RW1haWwgVXM8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPmhlbGxvQGJ1c2luZXNzaHViLmFidWRoYWJpPC9wPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImljb24gcGUtN3MtY2FsbFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg2PkNhbGwgVXM8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPis5NzEgMjYzNDA0MDQ8L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsb2dvXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgICAgIHNyYz17YXBwRGF0YS5mb290ZXJMb2dvfVxyXG4gICAgICAgICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogXCIxNTBweFwiIH19XHJcbiAgICAgICAgICAgICAgICAgIGFsdD1cIlwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic29jaWFsXCI+XHJcbiAgICAgICAgICAgICAgICA8YSBocmVmPVwiaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL3Byb2ZpbGUucGhwP2lkPTEwMDA1NzM5MjIyMzg1NyBcIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwiZmFiIGZhLWZhY2Vib29rLWZcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICBocmVmPVwiaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2NvbXBhbnkvYnVzaW5lc3MtaHViLWludGVybmF0aW9uYWwtaW52ZXN0bWVudFxyXG5cIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYWIgZmEtbGlua2VkaW5cIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICBocmVmPVwiaHR0cHM6Ly93d3cuaW5zdGFncmFtLmNvbS9idXNpbmVzc2h1YmkvP2lnc2g9TVRKM2VqWm5lV2RtYlRNM2JRJTNEJTNEIFxyXG5cIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYWIgZmEtaW5zdGFncmFtXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgPGEgaHJlZj1cImh0dHBzOi8vd3d3LnRpa3Rvay5jb20vQGJ1c2luZXNzaHViaT9fdD04a3BrTFdiVHJBVSZfcj0xIFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYWIgZmEtdGlrdG9rXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29weS1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgIMKpIDIwMjQsIDIwMjQgQnVzaW5lc3MgSFVCIGludGVybmF0aW9uYWwgaW52ZXN0bWVudCAtIEFsbFxyXG4gICAgICAgICAgICAgICAgICBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9mb290ZXI+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IEZvb3RlcjtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiTGluayIsImFwcERhdGEiLCJGb290ZXIiLCJoaWRlQkdDT0xPUiIsImZvb3RlckxvZ28iLCJ3aWR0aCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Footer/footer.jsx\n"); + +/***/ }) + +}); \ No newline at end of file diff --git a/.next/static/webpack/webpack.034483604fba37f4.hot-update.js b/.next/static/webpack/webpack.034483604fba37f4.hot-update.js new file mode 100644 index 0000000..7c14384 --- /dev/null +++ b/.next/static/webpack/webpack.034483604fba37f4.hot-update.js @@ -0,0 +1,18 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "0aeb85f6a56c9e6e"; } +/******/ }(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/static/webpack/webpack.097f8e60072fae7a.hot-update.js b/.next/static/webpack/webpack.097f8e60072fae7a.hot-update.js new file mode 100644 index 0000000..29d224b --- /dev/null +++ b/.next/static/webpack/webpack.097f8e60072fae7a.hot-update.js @@ -0,0 +1,18 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "ea74209d2be75825"; } +/******/ }(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/static/webpack/webpack.0aeb85f6a56c9e6e.hot-update.js b/.next/static/webpack/webpack.0aeb85f6a56c9e6e.hot-update.js new file mode 100644 index 0000000..cf854c9 --- /dev/null +++ b/.next/static/webpack/webpack.0aeb85f6a56c9e6e.hot-update.js @@ -0,0 +1,18 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "483e2ab146d7afcb"; } +/******/ }(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/static/webpack/webpack.0b7a364af5a62ce6.hot-update.js b/.next/static/webpack/webpack.0b7a364af5a62ce6.hot-update.js new file mode 100644 index 0000000..c1a1eda --- /dev/null +++ b/.next/static/webpack/webpack.0b7a364af5a62ce6.hot-update.js @@ -0,0 +1,18 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "942186135cc3656b"; } +/******/ }(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/static/webpack/webpack.0c777c5c41991727.hot-update.js b/.next/static/webpack/webpack.0c777c5c41991727.hot-update.js new file mode 100644 index 0000000..4d75adb --- /dev/null +++ b/.next/static/webpack/webpack.0c777c5c41991727.hot-update.js @@ -0,0 +1,18 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "2a8ba3bbae45e83d"; } +/******/ }(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/static/webpack/webpack.14b03416c56e5a2c.hot-update.js b/.next/static/webpack/webpack.14b03416c56e5a2c.hot-update.js new file mode 100644 index 0000000..332eb2f --- /dev/null +++ b/.next/static/webpack/webpack.14b03416c56e5a2c.hot-update.js @@ -0,0 +1,18 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "976feb7437cdc842"; } +/******/ }(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/static/webpack/webpack.22069ec70f2eba56.hot-update.js b/.next/static/webpack/webpack.22069ec70f2eba56.hot-update.js new file mode 100644 index 0000000..1bc39c7 --- /dev/null +++ b/.next/static/webpack/webpack.22069ec70f2eba56.hot-update.js @@ -0,0 +1,18 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "7330e17b5d62bf2b"; } +/******/ }(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/static/webpack/webpack.27fbdb223e7cc361.hot-update.js b/.next/static/webpack/webpack.27fbdb223e7cc361.hot-update.js new file mode 100644 index 0000000..208e3cf --- /dev/null +++ b/.next/static/webpack/webpack.27fbdb223e7cc361.hot-update.js @@ -0,0 +1,18 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "7523881d416ea968"; } +/******/ }(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/static/webpack/webpack.2a8ba3bbae45e83d.hot-update.js b/.next/static/webpack/webpack.2a8ba3bbae45e83d.hot-update.js new file mode 100644 index 0000000..4b30e87 --- /dev/null +++ b/.next/static/webpack/webpack.2a8ba3bbae45e83d.hot-update.js @@ -0,0 +1,18 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "f2eccf131ac3f1a2"; } +/******/ }(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/static/webpack/webpack.391c934f4fe378ea.hot-update.js b/.next/static/webpack/webpack.391c934f4fe378ea.hot-update.js new file mode 100644 index 0000000..5115323 --- /dev/null +++ b/.next/static/webpack/webpack.391c934f4fe378ea.hot-update.js @@ -0,0 +1,18 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "be65fe127a28d26b"; } +/******/ }(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/static/webpack/webpack.3ccbe004deb5758f.hot-update.js b/.next/static/webpack/webpack.3ccbe004deb5758f.hot-update.js new file mode 100644 index 0000000..daf5708 --- /dev/null +++ b/.next/static/webpack/webpack.3ccbe004deb5758f.hot-update.js @@ -0,0 +1,18 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "5874610de2b600a7"; } +/******/ }(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/static/webpack/webpack.483e2ab146d7afcb.hot-update.js b/.next/static/webpack/webpack.483e2ab146d7afcb.hot-update.js new file mode 100644 index 0000000..90be2eb --- /dev/null +++ b/.next/static/webpack/webpack.483e2ab146d7afcb.hot-update.js @@ -0,0 +1,18 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "505f5fcbf6bfc6f2"; } +/******/ }(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/static/webpack/webpack.505f5fcbf6bfc6f2.hot-update.js b/.next/static/webpack/webpack.505f5fcbf6bfc6f2.hot-update.js new file mode 100644 index 0000000..c8e3d8a --- /dev/null +++ b/.next/static/webpack/webpack.505f5fcbf6bfc6f2.hot-update.js @@ -0,0 +1,18 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "0b7a364af5a62ce6"; } +/******/ }(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/static/webpack/webpack.5874610de2b600a7.hot-update.js b/.next/static/webpack/webpack.5874610de2b600a7.hot-update.js new file mode 100644 index 0000000..7b35f28 --- /dev/null +++ b/.next/static/webpack/webpack.5874610de2b600a7.hot-update.js @@ -0,0 +1,18 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "fc75ecc9530f94e7"; } +/******/ }(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/static/webpack/webpack.6462c7a69105e22a.hot-update.js b/.next/static/webpack/webpack.6462c7a69105e22a.hot-update.js new file mode 100644 index 0000000..b2c0041 --- /dev/null +++ b/.next/static/webpack/webpack.6462c7a69105e22a.hot-update.js @@ -0,0 +1,18 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "e3fcf932e8e10bcc"; } +/******/ }(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/static/webpack/webpack.69b0909539c40de9.hot-update.js b/.next/static/webpack/webpack.69b0909539c40de9.hot-update.js new file mode 100644 index 0000000..f56847c --- /dev/null +++ b/.next/static/webpack/webpack.69b0909539c40de9.hot-update.js @@ -0,0 +1,18 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "a3656d0b2ef2cb37"; } +/******/ }(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/static/webpack/webpack.6d4205e34873ba67.hot-update.js b/.next/static/webpack/webpack.6d4205e34873ba67.hot-update.js new file mode 100644 index 0000000..2590626 --- /dev/null +++ b/.next/static/webpack/webpack.6d4205e34873ba67.hot-update.js @@ -0,0 +1,18 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "99e1201d5af809ef"; } +/******/ }(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/static/webpack/webpack.7330e17b5d62bf2b.hot-update.js b/.next/static/webpack/webpack.7330e17b5d62bf2b.hot-update.js new file mode 100644 index 0000000..18a6943 --- /dev/null +++ b/.next/static/webpack/webpack.7330e17b5d62bf2b.hot-update.js @@ -0,0 +1,18 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "adeed3a538806dce"; } +/******/ }(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/static/webpack/webpack.7523881d416ea968.hot-update.js b/.next/static/webpack/webpack.7523881d416ea968.hot-update.js new file mode 100644 index 0000000..bfae5ca --- /dev/null +++ b/.next/static/webpack/webpack.7523881d416ea968.hot-update.js @@ -0,0 +1,18 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "6d4205e34873ba67"; } +/******/ }(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/static/webpack/webpack.865ba9bea3e8e879.hot-update.js b/.next/static/webpack/webpack.865ba9bea3e8e879.hot-update.js new file mode 100644 index 0000000..e32e1f3 --- /dev/null +++ b/.next/static/webpack/webpack.865ba9bea3e8e879.hot-update.js @@ -0,0 +1,18 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "14b03416c56e5a2c"; } +/******/ }(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/static/webpack/webpack.8ba321f476cc3ed9.hot-update.js b/.next/static/webpack/webpack.8ba321f476cc3ed9.hot-update.js new file mode 100644 index 0000000..83ecf26 --- /dev/null +++ b/.next/static/webpack/webpack.8ba321f476cc3ed9.hot-update.js @@ -0,0 +1,31 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "3ccbe004deb5758f"; } +/******/ }(); +/******/ +/******/ /* webpack/runtime/compat */ +/******/ +/******/ +/******/ // noop fns to prevent runtime errors during initialization +/******/ if (typeof self !== "undefined") { +/******/ self.$RefreshReg$ = function () {}; +/******/ self.$RefreshSig$ = function () { +/******/ return function (type) { +/******/ return type; +/******/ }; +/******/ }; +/******/ } +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/static/webpack/webpack.942186135cc3656b.hot-update.js b/.next/static/webpack/webpack.942186135cc3656b.hot-update.js new file mode 100644 index 0000000..de32c68 --- /dev/null +++ b/.next/static/webpack/webpack.942186135cc3656b.hot-update.js @@ -0,0 +1,18 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "fcc1171977653d0d"; } +/******/ }(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/static/webpack/webpack.976feb7437cdc842.hot-update.js b/.next/static/webpack/webpack.976feb7437cdc842.hot-update.js new file mode 100644 index 0000000..93afb06 --- /dev/null +++ b/.next/static/webpack/webpack.976feb7437cdc842.hot-update.js @@ -0,0 +1,18 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "391c934f4fe378ea"; } +/******/ }(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/static/webpack/webpack.97d1c9890e848e76.hot-update.js b/.next/static/webpack/webpack.97d1c9890e848e76.hot-update.js new file mode 100644 index 0000000..5cc66a3 --- /dev/null +++ b/.next/static/webpack/webpack.97d1c9890e848e76.hot-update.js @@ -0,0 +1,18 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "22069ec70f2eba56"; } +/******/ }(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/static/webpack/webpack.99e1201d5af809ef.hot-update.js b/.next/static/webpack/webpack.99e1201d5af809ef.hot-update.js new file mode 100644 index 0000000..69825bc --- /dev/null +++ b/.next/static/webpack/webpack.99e1201d5af809ef.hot-update.js @@ -0,0 +1,18 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "034483604fba37f4"; } +/******/ }(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/static/webpack/webpack.9efc4064513bf841.hot-update.js b/.next/static/webpack/webpack.9efc4064513bf841.hot-update.js new file mode 100644 index 0000000..d43aadb --- /dev/null +++ b/.next/static/webpack/webpack.9efc4064513bf841.hot-update.js @@ -0,0 +1,18 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "c30e24cf1fcf0177"; } +/******/ }(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/static/webpack/webpack.a3656d0b2ef2cb37.hot-update.js b/.next/static/webpack/webpack.a3656d0b2ef2cb37.hot-update.js new file mode 100644 index 0000000..99d6f5b --- /dev/null +++ b/.next/static/webpack/webpack.a3656d0b2ef2cb37.hot-update.js @@ -0,0 +1,18 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "6462c7a69105e22a"; } +/******/ }(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/static/webpack/webpack.adeed3a538806dce.hot-update.js b/.next/static/webpack/webpack.adeed3a538806dce.hot-update.js new file mode 100644 index 0000000..8e7bcf4 --- /dev/null +++ b/.next/static/webpack/webpack.adeed3a538806dce.hot-update.js @@ -0,0 +1,18 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "bf5abb6f7bfbabc3"; } +/******/ }(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/static/webpack/webpack.be65fe127a28d26b.hot-update.js b/.next/static/webpack/webpack.be65fe127a28d26b.hot-update.js new file mode 100644 index 0000000..e8ec40f --- /dev/null +++ b/.next/static/webpack/webpack.be65fe127a28d26b.hot-update.js @@ -0,0 +1,18 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "27fbdb223e7cc361"; } +/******/ }(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/static/webpack/webpack.bed8cb474397671c.hot-update.js b/.next/static/webpack/webpack.bed8cb474397671c.hot-update.js new file mode 100644 index 0000000..509e0c9 --- /dev/null +++ b/.next/static/webpack/webpack.bed8cb474397671c.hot-update.js @@ -0,0 +1,18 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "eef28e4e1b3e8b7b"; } +/******/ }(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/static/webpack/webpack.bf5abb6f7bfbabc3.hot-update.js b/.next/static/webpack/webpack.bf5abb6f7bfbabc3.hot-update.js new file mode 100644 index 0000000..ca2c14b --- /dev/null +++ b/.next/static/webpack/webpack.bf5abb6f7bfbabc3.hot-update.js @@ -0,0 +1,18 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "c2399be6206f0aba"; } +/******/ }(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/static/webpack/webpack.c2399be6206f0aba.hot-update.js b/.next/static/webpack/webpack.c2399be6206f0aba.hot-update.js new file mode 100644 index 0000000..3deea75 --- /dev/null +++ b/.next/static/webpack/webpack.c2399be6206f0aba.hot-update.js @@ -0,0 +1,18 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "865ba9bea3e8e879"; } +/******/ }(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/static/webpack/webpack.c30e24cf1fcf0177.hot-update.js b/.next/static/webpack/webpack.c30e24cf1fcf0177.hot-update.js new file mode 100644 index 0000000..44e197a --- /dev/null +++ b/.next/static/webpack/webpack.c30e24cf1fcf0177.hot-update.js @@ -0,0 +1,18 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "e4173c3213e1a52a"; } +/******/ }(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/static/webpack/webpack.d3a9ded394cefaae.hot-update.js b/.next/static/webpack/webpack.d3a9ded394cefaae.hot-update.js new file mode 100644 index 0000000..15513e6 --- /dev/null +++ b/.next/static/webpack/webpack.d3a9ded394cefaae.hot-update.js @@ -0,0 +1,18 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "d71f4b3c4b9bed51"; } +/******/ }(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/static/webpack/webpack.d71f4b3c4b9bed51.hot-update.js b/.next/static/webpack/webpack.d71f4b3c4b9bed51.hot-update.js new file mode 100644 index 0000000..d25ba4a --- /dev/null +++ b/.next/static/webpack/webpack.d71f4b3c4b9bed51.hot-update.js @@ -0,0 +1,18 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "d7ba70e7dde277fe"; } +/******/ }(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/static/webpack/webpack.d7ba70e7dde277fe.hot-update.js b/.next/static/webpack/webpack.d7ba70e7dde277fe.hot-update.js new file mode 100644 index 0000000..de56810 --- /dev/null +++ b/.next/static/webpack/webpack.d7ba70e7dde277fe.hot-update.js @@ -0,0 +1,18 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "097f8e60072fae7a"; } +/******/ }(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/static/webpack/webpack.e3fcf932e8e10bcc.hot-update.js b/.next/static/webpack/webpack.e3fcf932e8e10bcc.hot-update.js new file mode 100644 index 0000000..7c640f6 --- /dev/null +++ b/.next/static/webpack/webpack.e3fcf932e8e10bcc.hot-update.js @@ -0,0 +1,18 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "0c777c5c41991727"; } +/******/ }(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/static/webpack/webpack.e4173c3213e1a52a.hot-update.js b/.next/static/webpack/webpack.e4173c3213e1a52a.hot-update.js new file mode 100644 index 0000000..221c28c --- /dev/null +++ b/.next/static/webpack/webpack.e4173c3213e1a52a.hot-update.js @@ -0,0 +1,18 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "058bc7563fa15600"; } +/******/ }(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/static/webpack/webpack.ea74209d2be75825.hot-update.js b/.next/static/webpack/webpack.ea74209d2be75825.hot-update.js new file mode 100644 index 0000000..a645f9a --- /dev/null +++ b/.next/static/webpack/webpack.ea74209d2be75825.hot-update.js @@ -0,0 +1,18 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "bed8cb474397671c"; } +/******/ }(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/static/webpack/webpack.eef28e4e1b3e8b7b.hot-update.js b/.next/static/webpack/webpack.eef28e4e1b3e8b7b.hot-update.js new file mode 100644 index 0000000..5c27c20 --- /dev/null +++ b/.next/static/webpack/webpack.eef28e4e1b3e8b7b.hot-update.js @@ -0,0 +1,18 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "97d1c9890e848e76"; } +/******/ }(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/static/webpack/webpack.f2eccf131ac3f1a2.hot-update.js b/.next/static/webpack/webpack.f2eccf131ac3f1a2.hot-update.js new file mode 100644 index 0000000..33bf8c8 --- /dev/null +++ b/.next/static/webpack/webpack.f2eccf131ac3f1a2.hot-update.js @@ -0,0 +1,18 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "9efc4064513bf841"; } +/******/ }(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/static/webpack/webpack.fc75ecc9530f94e7.hot-update.js b/.next/static/webpack/webpack.fc75ecc9530f94e7.hot-update.js new file mode 100644 index 0000000..4aa8b5c --- /dev/null +++ b/.next/static/webpack/webpack.fc75ecc9530f94e7.hot-update.js @@ -0,0 +1,45 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/compat get default export */ +/******/ !function() { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function() { return module['default']; } : +/******/ function() { return module; }; +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "d3a9ded394cefaae"; } +/******/ }(); +/******/ +/******/ /* webpack/runtime/harmony module decorator */ +/******/ !function() { +/******/ __webpack_require__.hmd = function(module) { +/******/ module = Object.create(module); +/******/ if (!module.children) module.children = []; +/******/ Object.defineProperty(module, 'exports', { +/******/ enumerable: true, +/******/ set: function() { +/******/ throw new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id); +/******/ } +/******/ }); +/******/ return module; +/******/ }; +/******/ }(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/static/webpack/webpack.fcc1171977653d0d.hot-update.js b/.next/static/webpack/webpack.fcc1171977653d0d.hot-update.js new file mode 100644 index 0000000..536bc02 --- /dev/null +++ b/.next/static/webpack/webpack.fcc1171977653d0d.hot-update.js @@ -0,0 +1,18 @@ +"use strict"; +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/getFullHash */ +/******/ !function() { +/******/ __webpack_require__.h = function() { return "69b0909539c40de9"; } +/******/ }(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/trace b/.next/trace new file mode 100644 index 0000000..9fbf4f1 --- /dev/null +++ b/.next/trace @@ -0,0 +1,89 @@ +[{"traceId":"a40c92b03843b256","name":"hot-reloader","id":"6736383279716832","timestamp":96633676202,"duration":65,"tags":{"version":"12.0.4"}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"start","id":"3467376176796f64","timestamp":96633677524,"duration":1,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3467376176796f64","name":"clean","id":"6d7a673734377735","timestamp":96633677606,"duration":34097,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7937746364696269","name":"get-page-paths","id":"6d717a6175347738","timestamp":96633712102,"duration":2690,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7937746364696269","name":"create-pages-mapping","id":"6d397a3877316931","timestamp":96633714890,"duration":547,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7937746364696269","name":"create-entrypoints","id":"66327934396d7467","timestamp":96633715502,"duration":2464,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7937746364696269","name":"generate-webpack-config","id":"6d7970723469636d","timestamp":96633718042,"duration":783009,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3467376176796f64","name":"get-webpack-config","id":"7937746364696269","timestamp":96633711980,"duration":789099,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"797a7a773673766c","name":"next-client-pages-loader","id":"6279327475656a68","timestamp":96634948380,"duration":1005,"tags":{"absolutePagePath":"private-next-pages/_app"}},{"traceId":"a40c92b03843b256","parentId":"6271306968623737","name":"build-module-js?page=%2F_app&absolutePagePath=private-next-pages%2F_app!","id":"797a7a773673766c","timestamp":96634944518,"duration":22588,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-client-pages-loader.js?page=%2F_app&absolutePagePath=private-next-pages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"6c70317679637765","name":"next-client-pages-loader","id":"34686f707a6c6762","timestamp":96634967575,"duration":334,"tags":{"absolutePagePath":"private-next-pages/_error"}},{"traceId":"a40c92b03843b256","parentId":"6271306968623737","name":"build-module-js?page=%2F_error&absolutePagePath=private-next-pages%2F_error!","id":"6c70317679637765","timestamp":96634967348,"duration":3791,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-client-pages-loader.js?page=%2F_error&absolutePagePath=private-next-pages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"313672736f657063","name":"read-resource","id":"756f6c6b306d3064","timestamp":96634943823,"duration":33118,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6271306968623737","name":"build-module-js","id":"313672736f657063","timestamp":96634935440,"duration":51902,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"6a776e7276687838","name":"read-resource","id":"3278713836656a38","timestamp":96635346379,"duration":3123,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"677074726c356861","name":"get-options","id":"7931317775726f77","timestamp":96635350050,"duration":22,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7673317568673631","name":"babel-turbo-get-config","id":"33726a396e767663","timestamp":96635350211,"duration":506986,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7673317568673631","name":"babel-turbo-normalize-file","id":"7a3433323961656a","timestamp":96635857280,"duration":49140,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6573323230396339","name":"babel-turbo-traverse","id":"68306d32366a6c70","timestamp":96635908776,"duration":155232,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7673317568673631","name":"babel-turbo-transform","id":"6573323230396339","timestamp":96635906466,"duration":157928,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7673317568673631","name":"babel-turbo-generate","id":"707565326b647376","timestamp":96636064436,"duration":25280,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"677074726c356861","name":"next-babel-turbo-transform","id":"7673317568673631","timestamp":96635350091,"duration":739653,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a776e7276687838","name":"next-babel-turbo-loader","id":"677074726c356861","timestamp":96635349959,"duration":739836,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79696b736c6c6d78","name":"read-resource","id":"3339776661706363","timestamp":96635346027,"duration":767856,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736713867356f63","name":"get-options","id":"67793174746e3039","timestamp":96636113938,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6379766f676b706a","name":"babel-turbo-get-config","id":"36316a686e32656c","timestamp":96636113955,"duration":108,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6379766f676b706a","name":"babel-turbo-normalize-file","id":"316a766867746c65","timestamp":96636114073,"duration":11348,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"33643166636e7279","name":"babel-turbo-traverse","id":"3563656b366d6b6f","timestamp":96636126965,"duration":35457,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6379766f676b706a","name":"babel-turbo-transform","id":"33643166636e7279","timestamp":96636125470,"duration":36984,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6379766f676b706a","name":"babel-turbo-generate","id":"6d69636e6473616b","timestamp":96636162485,"duration":7396,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736713867356f63","name":"next-babel-turbo-transform","id":"6379766f676b706a","timestamp":96636113950,"duration":55955,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79696b736c6c6d78","name":"next-babel-turbo-loader","id":"6736713867356f63","timestamp":96636113930,"duration":56004,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7970626230356766","name":"read-resource","id":"6a32653863646c72","timestamp":96635346595,"duration":832196,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"34357a35766e6831","name":"get-options","id":"357a796178686b76","timestamp":96636178841,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"376578633374336b","name":"babel-turbo-get-config","id":"6661777330306773","timestamp":96636178859,"duration":33,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"376578633374336b","name":"babel-turbo-normalize-file","id":"6577636a37383139","timestamp":96636178900,"duration":8606,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"396c72703376326a","name":"babel-turbo-traverse","id":"346a737930666f72","timestamp":96636188854,"duration":36713,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"376578633374336b","name":"babel-turbo-transform","id":"396c72703376326a","timestamp":96636187569,"duration":38028,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"376578633374336b","name":"babel-turbo-generate","id":"676938727168376f","timestamp":96636225629,"duration":8176,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"34357a35766e6831","name":"next-babel-turbo-transform","id":"376578633374336b","timestamp":96636178854,"duration":54970,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7970626230356766","name":"next-babel-turbo-loader","id":"34357a35766e6831","timestamp":96636178834,"duration":55092,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6271306968623737","name":"build-module-js","id":"6a776e7276687838","timestamp":96635346139,"duration":905573,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"6271306968623737","name":"build-module-js","id":"79696b736c6c6d78","timestamp":96634994202,"duration":1257544,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"6271306968623737","name":"build-module-js","id":"7970626230356766","timestamp":96635346434,"duration":905327,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\dev\\amp-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"3679353165796f39","name":"read-resource","id":"3979316833307432","timestamp":96636257524,"duration":6478,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"313672736f657063","name":"build-module-js","id":"3679353165796f39","timestamp":96636257350,"duration":9886,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\internal\\helpers.js"}},{"traceId":"a40c92b03843b256","parentId":"717965753763346f","name":"read-resource","id":"61366c683570306e","timestamp":96636277162,"duration":5360,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"737a31316a363430","name":"get-options","id":"716364626c6d696a","timestamp":96636282639,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"616b3437716e7632","name":"babel-turbo-get-config","id":"6173323676706c77","timestamp":96636282655,"duration":33,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"616b3437716e7632","name":"babel-turbo-normalize-file","id":"7779717376726d64","timestamp":96636282694,"duration":6008,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a77737072616330","name":"babel-turbo-traverse","id":"363261376c676c61","timestamp":96636289561,"duration":16846,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"616b3437716e7632","name":"babel-turbo-transform","id":"6a77737072616330","timestamp":96636288747,"duration":17723,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"616b3437716e7632","name":"babel-turbo-generate","id":"646f6e6238336e61","timestamp":96636306510,"duration":5103,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"737a31316a363430","name":"next-babel-turbo-transform","id":"616b3437716e7632","timestamp":96636282650,"duration":28978,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"717965753763346f","name":"next-babel-turbo-loader","id":"737a31316a363430","timestamp":96636282630,"duration":29026,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79696b736c6c6d78","name":"build-module-js","id":"717965753763346f","timestamp":96636277021,"duration":40438,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\dev\\dev-build-watcher.js"}},{"traceId":"a40c92b03843b256","parentId":"656d613532713431","name":"read-resource","id":"6e676d6867616436","timestamp":96636276173,"duration":41363,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7470347438357238","name":"get-options","id":"6b61797462786431","timestamp":96636317659,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3662627564333763","name":"babel-turbo-get-config","id":"6c6f653431776f64","timestamp":96636317708,"duration":39,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3662627564333763","name":"babel-turbo-normalize-file","id":"6e637a6c7539346c","timestamp":96636317754,"duration":2163,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"77627734736a3833","name":"babel-turbo-traverse","id":"36647a6d6c6f7a39","timestamp":96636320745,"duration":4816,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3662627564333763","name":"babel-turbo-transform","id":"77627734736a3833","timestamp":96636319982,"duration":5608,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3662627564333763","name":"babel-turbo-generate","id":"34686b777a6d6c62","timestamp":96636325618,"duration":1377,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7470347438357238","name":"next-babel-turbo-transform","id":"3662627564333763","timestamp":96636317670,"duration":9336,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"656d613532713431","name":"next-babel-turbo-loader","id":"7470347438357238","timestamp":96636317653,"duration":9375,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a776e7276687838","name":"build-module-js","id":"656d613532713431","timestamp":96636275960,"duration":53285,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\with-router.js"}},{"traceId":"a40c92b03843b256","parentId":"64713376387a7363","name":"read-resource","id":"6267636839387833","timestamp":96636276490,"duration":52822,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"326763656a793973","name":"get-options","id":"3268363934733070","timestamp":96636329361,"duration":13,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"757474636c396772","name":"babel-turbo-get-config","id":"7938616532326676","timestamp":96636329386,"duration":32,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"757474636c396772","name":"babel-turbo-normalize-file","id":"6873356531373834","timestamp":96636329424,"duration":3743,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"68767673626c616d","name":"babel-turbo-traverse","id":"6a656a6461683466","timestamp":96636342336,"duration":15282,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"757474636c396772","name":"babel-turbo-transform","id":"68767673626c616d","timestamp":96636333211,"duration":24433,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"757474636c396772","name":"babel-turbo-generate","id":"35616b7263373679","timestamp":96636357672,"duration":6773,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"326763656a793973","name":"next-babel-turbo-transform","id":"757474636c396772","timestamp":96636329381,"duration":35076,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"64713376387a7363","name":"next-babel-turbo-loader","id":"326763656a793973","timestamp":96636329355,"duration":35125,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79696b736c6c6d78","name":"build-module-js","id":"64713376387a7363","timestamp":96636276315,"duration":91418,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\dev\\on-demand-entries-client.js"}},{"traceId":"a40c92b03843b256","parentId":"3263376a6a723773","name":"read-resource","id":"747673396a383278","timestamp":96636277809,"duration":90063,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a346b6b7a707872","name":"get-options","id":"6766633666387464","timestamp":96636367965,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c6c763970653232","name":"babel-turbo-get-config","id":"7430726162346336","timestamp":96636367982,"duration":43,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c6c763970653232","name":"babel-turbo-normalize-file","id":"6d38337265747763","timestamp":96636368031,"duration":34668,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"62646c6e6e343737","name":"babel-turbo-traverse","id":"6270346f357a6e70","timestamp":96636408374,"duration":175044,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c6c763970653232","name":"babel-turbo-transform","id":"62646c6e6e343737","timestamp":96636402741,"duration":180705,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c6c763970653232","name":"babel-turbo-generate","id":"316a316731676475","timestamp":96636583474,"duration":28288,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a346b6b7a707872","name":"next-babel-turbo-transform","id":"6c6c763970653232","timestamp":96636367977,"duration":243807,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3263376a6a723773","name":"next-babel-turbo-loader","id":"6a346b6b7a707872","timestamp":96636367958,"duration":243859,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79696b736c6c6d78","name":"build-module-js","id":"3263376a6a723773","timestamp":96636277639,"duration":357303,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"65377a667832686d","name":"read-resource","id":"75336a3735727076","timestamp":96636277337,"duration":357658,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"627934737737616c","name":"get-options","id":"637969706a637774","timestamp":96636635036,"duration":11,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"38676e77756c3570","name":"babel-turbo-get-config","id":"326f67753771766f","timestamp":96636635057,"duration":29,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"38676e77756c3570","name":"babel-turbo-normalize-file","id":"7937723334357574","timestamp":96636635091,"duration":1188,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c79377130717677","name":"babel-turbo-traverse","id":"7661667339346672","timestamp":96636636831,"duration":1448,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"38676e77756c3570","name":"babel-turbo-transform","id":"6c79377130717677","timestamp":96636636306,"duration":2003,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"38676e77756c3570","name":"babel-turbo-generate","id":"6f64766b786e6d6a","timestamp":96636638335,"duration":526,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"627934737737616c","name":"next-babel-turbo-transform","id":"38676e77756c3570","timestamp":96636635052,"duration":3815,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"65377a667832686d","name":"next-babel-turbo-loader","id":"627934737737616c","timestamp":96636635030,"duration":3991,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79696b736c6c6d78","name":"build-module-js","id":"65377a667832686d","timestamp":96636277240,"duration":363092,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\dev\\fouc.js"}},{"traceId":"a40c92b03843b256","parentId":"7538636d6f706f37","name":"read-resource","id":"7733693561707574","timestamp":96636276888,"duration":363616,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f336b6375757a76","name":"get-options","id":"7679777a79316a36","timestamp":96636640572,"duration":7,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"68646a6762757439","name":"babel-turbo-get-config","id":"3473786361366d72","timestamp":96636640590,"duration":40,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"68646a6762757439","name":"babel-turbo-normalize-file","id":"6463717a30696179","timestamp":96636640635,"duration":2037,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69787a6774356571","name":"babel-turbo-traverse","id":"3068373168366e33","timestamp":96636643323,"duration":5394,"tags":{}}] +[{"traceId":"a40c92b03843b256","parentId":"68646a6762757439","name":"babel-turbo-transform","id":"69787a6774356571","timestamp":96636642741,"duration":6243,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"68646a6762757439","name":"babel-turbo-generate","id":"70347661646c6633","timestamp":96636649010,"duration":1068,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f336b6375757a76","name":"next-babel-turbo-transform","id":"68646a6762757439","timestamp":96636640585,"duration":9552,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7538636d6f706f37","name":"next-babel-turbo-loader","id":"6f336b6375757a76","timestamp":96636640567,"duration":9594,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79696b736c6c6d78","name":"build-module-js","id":"7538636d6f706f37","timestamp":96636276659,"duration":375240,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\dev\\webpack-hot-middleware-client.js"}},{"traceId":"a40c92b03843b256","parentId":"636f62397a736234","name":"read-resource","id":"786f703671333937","timestamp":96636277505,"duration":374508,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7376373363633538","name":"get-options","id":"713877327275776a","timestamp":96636652071,"duration":7,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3770766c6e323770","name":"babel-turbo-get-config","id":"6e75346277333277","timestamp":96636652090,"duration":45,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3770766c6e323770","name":"babel-turbo-normalize-file","id":"3264353269677036","timestamp":96636652141,"duration":710,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7876353479727430","name":"babel-turbo-traverse","id":"633573756c713072","timestamp":96636653345,"duration":198,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3770766c6e323770","name":"babel-turbo-transform","id":"7876353479727430","timestamp":96636652873,"duration":690,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3770766c6e323770","name":"babel-turbo-generate","id":"69746a627336766c","timestamp":96636653574,"duration":335,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7376373363633538","name":"next-babel-turbo-transform","id":"3770766c6e323770","timestamp":96636652084,"duration":1834,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"636f62397a736234","name":"next-babel-turbo-loader","id":"7376373363633538","timestamp":96636652063,"duration":1881,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79696b736c6c6d78","name":"build-module-js","id":"636f62397a736234","timestamp":96636277376,"duration":377769,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\dev\\noop.js"}},{"traceId":"a40c92b03843b256","parentId":"6975647a67376435","name":"read-resource","id":"7377336469763267","timestamp":96636279132,"duration":381555,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a776e7276687838","name":"build-module-js","id":"6975647a67376435","timestamp":96636278944,"duration":382456,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\lib\\is-error.js"}},{"traceId":"a40c92b03843b256","parentId":"317974617a747a74","name":"read-resource","id":"776531326c353534","timestamp":96636279466,"duration":383151,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76613862316a6f64","name":"get-options","id":"7676717779713069","timestamp":96636662698,"duration":9,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3864366837646a62","name":"babel-turbo-get-config","id":"6b743278666a6932","timestamp":96636662717,"duration":33,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3864366837646a62","name":"babel-turbo-normalize-file","id":"3372337632763871","timestamp":96636662756,"duration":3005,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"356c667134347037","name":"babel-turbo-traverse","id":"6133633766616965","timestamp":96636666238,"duration":6367,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3864366837646a62","name":"babel-turbo-transform","id":"356c667134347037","timestamp":96636665795,"duration":6848,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3864366837646a62","name":"babel-turbo-generate","id":"71746e7437643170","timestamp":96636672669,"duration":1873,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76613862316a6f64","name":"next-babel-turbo-transform","id":"3864366837646a62","timestamp":96636662712,"duration":11843,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"317974617a747a74","name":"next-babel-turbo-loader","id":"76613862316a6f64","timestamp":96636662688,"duration":11900,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79696b736c6c6d78","name":"build-module-js","id":"317974617a747a74","timestamp":96636279196,"duration":397847,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\dev\\error-overlay\\websocket.js"}},{"traceId":"a40c92b03843b256","parentId":"68306b7436726171","name":"read-resource","id":"3936306673346175","timestamp":96636281738,"duration":401216,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37346b6479767865","name":"get-options","id":"347a6662306e6468","timestamp":96636683015,"duration":9,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3338307436733232","name":"babel-turbo-get-config","id":"3567687168746e70","timestamp":96636683034,"duration":19,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3338307436733232","name":"babel-turbo-normalize-file","id":"7562337167687163","timestamp":96636683058,"duration":1210,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76776a727168726f","name":"babel-turbo-traverse","id":"6370396479303578","timestamp":96636684755,"duration":1459,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3338307436733232","name":"babel-turbo-transform","id":"76776a727168726f","timestamp":96636684299,"duration":1939,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3338307436733232","name":"babel-turbo-generate","id":"6b38753032386b73","timestamp":96636686264,"duration":496,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37346b6479767865","name":"next-babel-turbo-transform","id":"3338307436733232","timestamp":96636683030,"duration":3736,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"68306b7436726171","name":"next-babel-turbo-loader","id":"37346b6479767865","timestamp":96636683008,"duration":3852,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a776e7276687838","name":"build-module-js","id":"68306b7436726171","timestamp":96636281588,"duration":406487,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\router-context.js"}},{"traceId":"a40c92b03843b256","parentId":"6969316b30786d72","name":"read-resource","id":"6f626e6866327175","timestamp":96636281835,"duration":406294,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f7a7a386e786f67","name":"get-options","id":"6d70717872656462","timestamp":96636688256,"duration":10,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7636743469646f68","name":"babel-turbo-get-config","id":"387a376e6334797a","timestamp":96636688312,"duration":44,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7636743469646f68","name":"babel-turbo-normalize-file","id":"6574317162696a37","timestamp":96636688361,"duration":46481,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"386d796a70336934","name":"babel-turbo-traverse","id":"7032636e7332756b","timestamp":96636735364,"duration":411090,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7636743469646f68","name":"babel-turbo-transform","id":"386d796a70336934","timestamp":96636734897,"duration":411587,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7636743469646f68","name":"babel-turbo-generate","id":"3571717a38386f31","timestamp":96637146511,"duration":55579,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f7a7a386e786f67","name":"next-babel-turbo-transform","id":"7636743469646f68","timestamp":96636688272,"duration":513835,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6969316b30786d72","name":"next-babel-turbo-loader","id":"6f7a7a386e786f67","timestamp":96636688248,"duration":513883,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a776e7276687838","name":"build-module-js","id":"6969316b30786d72","timestamp":96636281763,"duration":945903,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\router\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"306732316b653233","name":"read-resource","id":"337a387967726770","timestamp":96636281557,"duration":946190,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"313672736f657063","name":"build-module-js","id":"306732316b653233","timestamp":96636281474,"duration":947650,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-refresh\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"667365396476317a","name":"read-resource","id":"3631367930747167","timestamp":96636281947,"duration":957197,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a377a6476693261","name":"get-options","id":"387532716774356e","timestamp":96637239216,"duration":7,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"68666a3579697134","name":"babel-turbo-get-config","id":"3679637364337876","timestamp":96637239233,"duration":23,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"68666a3579697134","name":"babel-turbo-normalize-file","id":"766e356d77316c6a","timestamp":96637239260,"duration":2167,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3668366f6f6b626a","name":"babel-turbo-traverse","id":"6e65686e6366656f","timestamp":96637241926,"duration":9160,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"68666a3579697134","name":"babel-turbo-transform","id":"3668366f6f6b626a","timestamp":96637241469,"duration":9648,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"68666a3579697134","name":"babel-turbo-generate","id":"6c6561746d757470","timestamp":96637251143,"duration":1233,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a377a6476693261","name":"next-babel-turbo-transform","id":"68666a3579697134","timestamp":96637239228,"duration":13152,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"667365396476317a","name":"next-babel-turbo-loader","id":"6a377a6476693261","timestamp":96637239207,"duration":13191,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79696b736c6c6d78","name":"build-module-js","id":"667365396476317a","timestamp":96636281858,"duration":972862,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\querystring.js"}},{"traceId":"a40c92b03843b256","parentId":"6969316b30786d72","name":"build-module","id":"616b7634746b7877","timestamp":96637270185,"duration":111,"tags":{"name":"undefined"}},{"traceId":"a40c92b03843b256","parentId":"7a66696c30613636","name":"read-resource","id":"786c313274676d6a","timestamp":96637261435,"duration":13648,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a776e7276687838","name":"build-module-js","id":"7a66696c30613636","timestamp":96637261350,"duration":14705,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\construct.js"}},{"traceId":"a40c92b03843b256","parentId":"6166766d6769766f","name":"read-resource","id":"79707870346c686b","timestamp":96637266566,"duration":11640,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3263376a6a723773","name":"build-module-js","id":"6166766d6769766f","timestamp":96637266477,"duration":12585,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\createClass.js"}},{"traceId":"a40c92b03843b256","parentId":"7478336d37307474","name":"read-resource","id":"6c397a6d70313730","timestamp":96637266723,"duration":12488,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3263376a6a723773","name":"build-module-js","id":"7478336d37307474","timestamp":96637266688,"duration":12971,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\getPrototypeOf.js"}},{"traceId":"a40c92b03843b256","parentId":"3767356373363830","name":"read-resource","id":"6d30716f6d77656e","timestamp":96637266623,"duration":13061,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3263376a6a723773","name":"build-module-js","id":"3767356373363830","timestamp":96637266597,"duration":13321,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\classCallCheck.js"}},{"traceId":"a40c92b03843b256","parentId":"6539396872766733","name":"read-resource","id":"6875376d6934656c","timestamp":96637266844,"duration":13094,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3263376a6a723773","name":"build-module-js","id":"6539396872766733","timestamp":96637266819,"duration":14022,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\possibleConstructorReturn.js"}},{"traceId":"a40c92b03843b256","parentId":"32666d663477617a","name":"read-resource","id":"736c793566716e63","timestamp":96637266802,"duration":14067,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"636172346c686a30","name":"get-options","id":"706b717634766336","timestamp":96637280912,"duration":3,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"613461756b737430","name":"babel-turbo-get-config","id":"34773530396f3872","timestamp":96637280924,"duration":28,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"613461756b737430","name":"babel-turbo-normalize-file","id":"3438356f72716672","timestamp":96637280957,"duration":5508,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7032703233737a72","name":"babel-turbo-traverse","id":"696468343434796c","timestamp":96637286996,"duration":17837,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"613461756b737430","name":"babel-turbo-transform","id":"7032703233737a72","timestamp":96637286518,"duration":18350,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"613461756b737430","name":"babel-turbo-generate","id":"7666647232736a36","timestamp":96637304895,"duration":3118,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"636172346c686a30","name":"next-babel-turbo-transform","id":"613461756b737430","timestamp":96637280920,"duration":27103,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"32666d663477617a","name":"next-babel-turbo-loader","id":"636172346c686a30","timestamp":96637280901,"duration":27141,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3263376a6a723773","name":"build-module-js","id":"32666d663477617a","timestamp":96637266740,"duration":45547,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\head-manager.js"}},{"traceId":"a40c92b03843b256","parentId":"387835723535626e","name":"read-resource","id":"6663746f30367178","timestamp":96637266662,"duration":45675,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3263376a6a723773","name":"build-module-js","id":"387835723535626e","timestamp":96637266640,"duration":46450,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\inherits.js"}},{"traceId":"a40c92b03843b256","parentId":"696e376c37626e72","name":"read-resource","id":"6c31386434636432","timestamp":96637267086,"duration":46058,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3439626d30306e36","name":"get-options","id":"69673438666b3733","timestamp":96637313204,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6868706731303839","name":"babel-turbo-get-config","id":"6a75713276617630","timestamp":96637313217,"duration":16,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6868706731303839","name":"babel-turbo-normalize-file","id":"7a35786e6c777467","timestamp":96637313240,"duration":5809,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"73653962796b6363","name":"babel-turbo-traverse","id":"366771746c306931","timestamp":96637319553,"duration":23090,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6868706731303839","name":"babel-turbo-transform","id":"73653962796b6363","timestamp":96637319090,"duration":23582,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6868706731303839","name":"babel-turbo-generate","id":"676e797574727864","timestamp":96637342697,"duration":2981,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3439626d30306e36","name":"next-babel-turbo-transform","id":"6868706731303839","timestamp":96637313214,"duration":32475,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"696e376c37626e72","name":"next-babel-turbo-loader","id":"3439626d30306e36","timestamp":96637313195,"duration":32517,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3263376a6a723773","name":"build-module-js","id":"696e376c37626e72","timestamp":96637267051,"duration":81499,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\page-loader.js"}},{"traceId":"a40c92b03843b256","parentId":"34326e6f79756275","name":"read-resource","id":"3065383864677466","timestamp":96637266944,"duration":81663,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"73306b3861326162","name":"get-options","id":"6a78327a356a3876","timestamp":96637348706,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f6932777a776932","name":"babel-turbo-get-config","id":"6965387675726e31","timestamp":96637348720,"duration":18,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f6932777a776932","name":"babel-turbo-normalize-file","id":"787266673331727a","timestamp":96637348742,"duration":1975,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3175676f706e386d","name":"babel-turbo-traverse","id":"637279316f677867","timestamp":96637351270,"duration":6328,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f6932777a776932","name":"babel-turbo-transform","id":"3175676f706e386d","timestamp":96637350755,"duration":6873,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f6932777a776932","name":"babel-turbo-generate","id":"6e766262356f3033","timestamp":96637357651,"duration":1650,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"73306b3861326162","name":"next-babel-turbo-transform","id":"6f6932777a776932","timestamp":96637348717,"duration":10598,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"34326e6f79756275","name":"next-babel-turbo-loader","id":"73306b3861326162","timestamp":96637348646,"duration":10690,"tags":{}}] +[{"traceId":"a40c92b03843b256","parentId":"3263376a6a723773","name":"build-module-js","id":"34326e6f79756275","timestamp":96637266901,"duration":94181,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\route-announcer.js"}},{"traceId":"a40c92b03843b256","parentId":"74386f306d767731","name":"read-resource","id":"6f616672346c7533","timestamp":96637267153,"duration":93979,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3565746970357374","name":"get-options","id":"6775706476613938","timestamp":96637361166,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6767386839353569","name":"babel-turbo-get-config","id":"376c356f6235656c","timestamp":96637361177,"duration":15,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6767386839353569","name":"babel-turbo-normalize-file","id":"7377397632796b34","timestamp":96637361196,"duration":1444,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"663466386e763270","name":"babel-turbo-traverse","id":"656c387764317835","timestamp":96637367216,"duration":3540,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6767386839353569","name":"babel-turbo-transform","id":"663466386e763270","timestamp":96637362694,"duration":8090,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6767386839353569","name":"babel-turbo-generate","id":"7675627939726669","timestamp":96637370805,"duration":751,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3565746970357374","name":"next-babel-turbo-transform","id":"6767386839353569","timestamp":96637361174,"duration":10388,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"74386f306d767731","name":"next-babel-turbo-loader","id":"3565746970357374","timestamp":96637361161,"duration":10419,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3263376a6a723773","name":"build-module-js","id":"74386f306d767731","timestamp":96637267108,"duration":105600,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\vitals.js"}},{"traceId":"a40c92b03843b256","parentId":"643474623874356f","name":"read-resource","id":"3539666567717a62","timestamp":96637267271,"duration":105482,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3130723037313761","name":"get-options","id":"37626f366c6b6f74","timestamp":96637372788,"duration":3,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3077663231796371","name":"babel-turbo-get-config","id":"6a35797531647a69","timestamp":96637372799,"duration":19,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3077663231796371","name":"babel-turbo-normalize-file","id":"7a333671786b7a6e","timestamp":96637372822,"duration":5521,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6631636667766f74","name":"babel-turbo-traverse","id":"7868706335346936","timestamp":96637378817,"duration":20073,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3077663231796371","name":"babel-turbo-transform","id":"6631636667766f74","timestamp":96637378386,"duration":20530,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3077663231796371","name":"babel-turbo-generate","id":"6375753774757731","timestamp":96637398936,"duration":7474,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3130723037313761","name":"next-babel-turbo-transform","id":"3077663231796371","timestamp":96637372796,"duration":33629,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"643474623874356f","name":"next-babel-turbo-loader","id":"3130723037313761","timestamp":96637372784,"duration":33663,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3263376a6a723773","name":"build-module-js","id":"643474623874356f","timestamp":96637267229,"duration":142875,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\script.js"}},{"traceId":"a40c92b03843b256","parentId":"356c736a64677168","name":"read-resource","id":"67617a3037746470","timestamp":96637267034,"duration":143151,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"306f646c6b626172","name":"get-options","id":"32747463646a6339","timestamp":96637410236,"duration":36,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"36367439636e727a","name":"babel-turbo-get-config","id":"3678327a63666e77","timestamp":96637410280,"duration":13,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"36367439636e727a","name":"babel-turbo-normalize-file","id":"77787a6b66766836","timestamp":96637410296,"duration":2166,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"65326e706f387536","name":"babel-turbo-traverse","id":"3163747534323471","timestamp":96637412938,"duration":4568,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"36367439636e727a","name":"babel-turbo-transform","id":"65326e706f387536","timestamp":96637412501,"duration":5033,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"36367439636e727a","name":"babel-turbo-generate","id":"317275737479706c","timestamp":96637417559,"duration":1837,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"306f646c6b626172","name":"next-babel-turbo-transform","id":"36367439636e727a","timestamp":96637410277,"duration":9129,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"356c736a64677168","name":"next-babel-turbo-loader","id":"306f646c6b626172","timestamp":96637410230,"duration":9194,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3263376a6a723773","name":"build-module-js","id":"356c736a64677168","timestamp":96637266992,"duration":153983,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\performance-relayer.js"}},{"traceId":"a40c92b03843b256","parentId":"316c787361737738","name":"read-resource","id":"34367430386b6b36","timestamp":96637267214,"duration":153834,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c67697371707136","name":"get-options","id":"746c70707a797176","timestamp":96637421116,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f39387671796378","name":"babel-turbo-get-config","id":"69726c646979746c","timestamp":96637421128,"duration":13,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f39387671796378","name":"babel-turbo-normalize-file","id":"643275707a756c34","timestamp":96637421145,"duration":989,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"62706f7137756d68","name":"babel-turbo-traverse","id":"386a6e3765316132","timestamp":96637422582,"duration":1460,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f39387671796378","name":"babel-turbo-transform","id":"62706f7137756d68","timestamp":96637422163,"duration":1907,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f39387671796378","name":"babel-turbo-generate","id":"6e3169797136396d","timestamp":96637424094,"duration":408,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c67697371707136","name":"next-babel-turbo-transform","id":"6f39387671796378","timestamp":96637421126,"duration":3381,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"316c787361737738","name":"next-babel-turbo-loader","id":"6c67697371707136","timestamp":96637421081,"duration":3444,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3263376a6a723773","name":"build-module-js","id":"316c787361737738","timestamp":96637267170,"duration":158232,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\head-manager-context.js"}},{"traceId":"a40c92b03843b256","parentId":"306963346662787a","name":"read-resource","id":"7870313163763063","timestamp":96637267476,"duration":157996,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"67677a6c6a367373","name":"get-options","id":"3076737772727273","timestamp":96637425517,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"77376d657a656b38","name":"babel-turbo-get-config","id":"6531763664726b77","timestamp":96637425530,"duration":15,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"77376d657a656b38","name":"babel-turbo-normalize-file","id":"3162756b66746e39","timestamp":96637425549,"duration":3573,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"397436656874627a","name":"babel-turbo-traverse","id":"67656c75316d6463","timestamp":96637429593,"duration":32601,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"77376d657a656b38","name":"babel-turbo-transform","id":"397436656874627a","timestamp":96637429162,"duration":33060,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"77376d657a656b38","name":"babel-turbo-generate","id":"366f797934616179","timestamp":96637462247,"duration":4066,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"67677a6c6a367373","name":"next-babel-turbo-transform","id":"77376d657a656b38","timestamp":96637425527,"duration":40802,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"306963346662787a","name":"next-babel-turbo-loader","id":"67677a6c6a367373","timestamp":96637425512,"duration":40844,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3263376a6a723773","name":"build-module-js","id":"306963346662787a","timestamp":96637267345,"duration":201679,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\utils.js"}},{"traceId":"a40c92b03843b256","parentId":"756d796b6673616e","name":"read-resource","id":"666a6e3965756266","timestamp":96637267327,"duration":201746,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a65316d70653063","name":"get-options","id":"6f7574766f307775","timestamp":96637469113,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"74716d6235767874","name":"babel-turbo-get-config","id":"30646d7977763173","timestamp":96637469123,"duration":13,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"74716d6235767874","name":"babel-turbo-normalize-file","id":"616b696d75316937","timestamp":96637469139,"duration":1103,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"33677468616b3231","name":"babel-turbo-traverse","id":"6867766a626b3675","timestamp":96637470699,"duration":1154,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"74716d6235767874","name":"babel-turbo-transform","id":"33677468616b3231","timestamp":96637470270,"duration":1614,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"74716d6235767874","name":"babel-turbo-generate","id":"7475647164783073","timestamp":96637471907,"duration":363,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a65316d70653063","name":"next-babel-turbo-transform","id":"74716d6235767874","timestamp":96637469120,"duration":3157,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"756d796b6673616e","name":"next-babel-turbo-loader","id":"6a65316d70653063","timestamp":96637469107,"duration":3189,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3263376a6a723773","name":"build-module-js","id":"756d796b6673616e","timestamp":96637267291,"duration":205989,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\runtime-config.js"}},{"traceId":"a40c92b03843b256","parentId":"6b35366b7a677262","name":"read-resource","id":"6e30636931773635","timestamp":96637267632,"duration":205703,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"64713376387a7363","name":"build-module-js","id":"6b35366b7a677262","timestamp":96637267607,"duration":205997,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"71776a6362746c6a","name":"read-resource","id":"67666b6f70357536","timestamp":96637267537,"duration":206086,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"30736f797231316d","name":"get-options","id":"387138376b733436","timestamp":96637473649,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"707276356d6c6c70","name":"babel-turbo-get-config","id":"3936633369796232","timestamp":96637473660,"duration":9,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"707276356d6c6c70","name":"babel-turbo-normalize-file","id":"6f6f7a793232316d","timestamp":96637473672,"duration":1311,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3875396a77767930","name":"babel-turbo-traverse","id":"64656968396d7539","timestamp":96637475435,"duration":4076,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"707276356d6c6c70","name":"babel-turbo-transform","id":"3875396a77767930","timestamp":96637475011,"duration":4534,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"707276356d6c6c70","name":"babel-turbo-generate","id":"6d70617a78767239","timestamp":96637479567,"duration":749,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"30736f797231316d","name":"next-babel-turbo-transform","id":"707276356d6c6c70","timestamp":96637473657,"duration":6668,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"71776a6362746c6a","name":"next-babel-turbo-loader","id":"30736f797231316d","timestamp":96637473645,"duration":6700,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3263376a6a723773","name":"build-module-js","id":"71776a6362746c6a","timestamp":96637267497,"duration":213790,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\mitt.js"}},{"traceId":"a40c92b03843b256","parentId":"3666786767617232","name":"read-resource","id":"3874683335316f39","timestamp":96637267734,"duration":213597,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3862346f77773532","name":"get-options","id":"65706674716f6c78","timestamp":96637481387,"duration":3,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3965376d31367163","name":"babel-turbo-get-config","id":"3032756a7176706b","timestamp":96637481398,"duration":7181,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3965376d31367163","name":"babel-turbo-normalize-file","id":"706d6e3374357231","timestamp":96637488608,"duration":3484,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"32683836616f6569","name":"babel-turbo-traverse","id":"6c66716a676b766d","timestamp":96637492557,"duration":24923,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3965376d31367163","name":"babel-turbo-transform","id":"32683836616f6569","timestamp":96637492125,"duration":25391,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3965376d31367163","name":"babel-turbo-generate","id":"6131777571673168","timestamp":96637517540,"duration":2521,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3862346f77773532","name":"next-babel-turbo-transform","id":"3965376d31367163","timestamp":96637481395,"duration":38681,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3666786767617232","name":"next-babel-turbo-loader","id":"3862346f77773532","timestamp":96637481357,"duration":38748,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"797a7a773673766c","name":"build-module-js","id":"3666786767617232","timestamp":96637267700,"duration":256738,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\pages\\_app.js"}},{"traceId":"a40c92b03843b256","parentId":"317677306e797836","name":"read-resource","id":"3036737664386e34","timestamp":96637267682,"duration":256801,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79366e6a73776476","name":"get-options","id":"337339386574306b","timestamp":96637524515,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"63747964616c7166","name":"babel-turbo-get-config","id":"3734376370756d39","timestamp":96637524525,"duration":15,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"63747964616c7166","name":"babel-turbo-normalize-file","id":"64736b7173796a74","timestamp":96637524543,"duration":6070,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"396465626e667669","name":"babel-turbo-traverse","id":"6870633130786c64","timestamp":96637531088,"duration":14663,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"63747964616c7166","name":"babel-turbo-transform","id":"396465626e667669","timestamp":96637530650,"duration":15142,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"63747964616c7166","name":"babel-turbo-generate","id":"7337396738373133","timestamp":96637545827,"duration":8975,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79366e6a73776476","name":"next-babel-turbo-transform","id":"63747964616c7166","timestamp":96637524522,"duration":30295,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"317677306e797836","name":"next-babel-turbo-loader","id":"79366e6a73776476","timestamp":96637524510,"duration":30330,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7538636d6f706f37","name":"build-module-js","id":"317677306e797836","timestamp":96637267646,"duration":289959,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\dev\\error-overlay\\hot-dev-client.js"}},{"traceId":"a40c92b03843b256","parentId":"31727138706e6268","name":"read-resource","id":"6378366430343330","timestamp":96637267591,"duration":290071,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"32626c7a78656266","name":"get-options","id":"73717a376b6c6e30","timestamp":96637557704,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f6d32746e6e7731","name":"babel-turbo-get-config","id":"7775707a63727077","timestamp":96637557716,"duration":14,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f6d32746e6e7731","name":"babel-turbo-normalize-file","id":"6f3662776a647a33","timestamp":96637557733,"duration":898,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3670796137673868","name":"babel-turbo-traverse","id":"6b6b776a77626b38","timestamp":96637559072,"duration":798,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f6d32746e6e7731","name":"babel-turbo-transform","id":"3670796137673868","timestamp":96637558656,"duration":1238,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f6d32746e6e7731","name":"babel-turbo-generate","id":"6c3338313875396a","timestamp":96637559912,"duration":294,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"32626c7a78656266","name":"next-babel-turbo-transform","id":"6f6d32746e6e7731","timestamp":96637557713,"duration":2496,"tags":{}}] +[{"traceId":"a40c92b03843b256","parentId":"31727138706e6268","name":"next-babel-turbo-loader","id":"32626c7a78656266","timestamp":96637557698,"duration":2703,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3263376a6a723773","name":"build-module-js","id":"31727138706e6268","timestamp":96637267553,"duration":293796,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\is-dynamic.js"}},{"traceId":"a40c92b03843b256","parentId":"65696c766b6c6376","name":"read-resource","id":"656f34336e726165","timestamp":96637266885,"duration":294514,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3263376a6a723773","name":"build-module-js","id":"65696c766b6c6376","timestamp":96637266862,"duration":295087,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\slicedToArray.js"}},{"traceId":"a40c92b03843b256","parentId":"6679386b397a3569","name":"read-resource","id":"6b37776963346e74","timestamp":96637274497,"duration":302629,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7970626230356766","name":"build-module-js","id":"6679386b397a3569","timestamp":96637274458,"duration":303096,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\regenerator\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"35706b69756a3239","name":"read-resource","id":"3871646c72726635","timestamp":96637274416,"duration":303285,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7334643462627068","name":"get-options","id":"696939756a6a6670","timestamp":96637577739,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"746b367779373436","name":"babel-turbo-get-config","id":"716b64706f66716d","timestamp":96637577750,"duration":13,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"746b367779373436","name":"babel-turbo-normalize-file","id":"716b39316a6b3737","timestamp":96637577767,"duration":2991,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f6666783335637a","name":"babel-turbo-traverse","id":"74656d7334707a66","timestamp":96637581257,"duration":13460,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"746b367779373436","name":"babel-turbo-transform","id":"6f6666783335637a","timestamp":96637580823,"duration":13928,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"746b367779373436","name":"babel-turbo-generate","id":"3077796e306a6b79","timestamp":96637594775,"duration":2153,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7334643462627068","name":"next-babel-turbo-transform","id":"746b367779373436","timestamp":96637577747,"duration":19191,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"35706b69756a3239","name":"next-babel-turbo-loader","id":"7334643462627068","timestamp":96637577733,"duration":19225,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3263376a6a723773","name":"build-module-js","id":"35706b69756a3239","timestamp":96637274301,"duration":324204,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\pages\\_error.js"}},{"traceId":"a40c92b03843b256","parentId":"6b377130316c7279","name":"read-resource","id":"67766a6438313477","timestamp":96637276378,"duration":329956,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"306732316b653233","name":"build-module-js","id":"6b377130316c7279","timestamp":96637276317,"duration":334638,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-refresh\\cjs\\react-refresh-runtime.development.js"}},{"traceId":"a40c92b03843b256","parentId":"3565336d6d346679","name":"read-resource","id":"303777636c6d6262","timestamp":96637276588,"duration":334611,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"796d327232336972","name":"get-options","id":"7264307170613361","timestamp":96637611237,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"31316639657a7132","name":"babel-turbo-get-config","id":"386935756e396830","timestamp":96637611249,"duration":98,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"31316639657a7132","name":"babel-turbo-normalize-file","id":"666d6c327a306779","timestamp":96637611352,"duration":1606,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"33646a31696f6732","name":"babel-turbo-traverse","id":"3235343635627475","timestamp":96637613507,"duration":1490,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"31316639657a7132","name":"babel-turbo-transform","id":"33646a31696f6732","timestamp":96637612985,"duration":2039,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"31316639657a7132","name":"babel-turbo-generate","id":"3361326e62673375","timestamp":96637615041,"duration":546,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"796d327232336972","name":"next-babel-turbo-transform","id":"31316639657a7132","timestamp":96637611245,"duration":4346,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3565336d6d346679","name":"next-babel-turbo-loader","id":"796d327232336972","timestamp":96637611231,"duration":4378,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6969316b30786d72","name":"build-module-js","id":"3565336d6d346679","timestamp":96637276415,"duration":340442,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\normalize-trailing-slash.js"}},{"traceId":"a40c92b03843b256","parentId":"7275683862657476","name":"read-resource","id":"64737130336d6e77","timestamp":96637276650,"duration":340252,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6969316b30786d72","name":"build-module-js","id":"7275683862657476","timestamp":96637276621,"duration":340585,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\defineProperty.js"}},{"traceId":"a40c92b03843b256","parentId":"3762316871747869","name":"read-resource","id":"7a71326977386373","timestamp":96637276757,"duration":340470,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6969316b30786d72","name":"build-module-js","id":"3762316871747869","timestamp":96637276734,"duration":340954,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\asyncToGenerator.js"}},{"traceId":"a40c92b03843b256","parentId":"336c646f66323365","name":"read-resource","id":"707977336c753338","timestamp":96637276708,"duration":341006,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f6f6637786c7970","name":"get-options","id":"6464363466676136","timestamp":96637617745,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3167666d7a656f6b","name":"babel-turbo-get-config","id":"6e31316a68766c71","timestamp":96637617756,"duration":14,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3167666d7a656f6b","name":"babel-turbo-normalize-file","id":"3571776b63676e7a","timestamp":96637617773,"duration":8444,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"646832376e38377a","name":"babel-turbo-traverse","id":"6c35673873656b6f","timestamp":96637626689,"duration":33058,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3167666d7a656f6b","name":"babel-turbo-transform","id":"646832376e38377a","timestamp":96637626256,"duration":33528,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3167666d7a656f6b","name":"babel-turbo-generate","id":"75666d783263687a","timestamp":96637659808,"duration":6637,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f6f6637786c7970","name":"next-babel-turbo-transform","id":"3167666d7a656f6b","timestamp":96637617753,"duration":48707,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"336c646f66323365","name":"next-babel-turbo-loader","id":"6f6f6637786c7970","timestamp":96637617741,"duration":48744,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6969316b30786d72","name":"build-module-js","id":"336c646f66323365","timestamp":96637276669,"duration":394115,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\route-loader.js"}},{"traceId":"a40c92b03843b256","parentId":"373874646f796b77","name":"read-resource","id":"6133653477766a72","timestamp":96637276809,"duration":394046,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7767676c3770336b","name":"get-options","id":"79307a7938766439","timestamp":96637670904,"duration":9,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"757571786b676668","name":"babel-turbo-get-config","id":"7265386269783674","timestamp":96637670920,"duration":16,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"757571786b676668","name":"babel-turbo-normalize-file","id":"3336656e356e6d68","timestamp":96637670940,"duration":1817,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7037706737703176","name":"babel-turbo-traverse","id":"3961787a73726668","timestamp":96637674033,"duration":4168,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"757571786b676668","name":"babel-turbo-transform","id":"7037706737703176","timestamp":96637672803,"duration":5474,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"757571786b676668","name":"babel-turbo-generate","id":"7239306238616779","timestamp":96637678301,"duration":939,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7767676c3770336b","name":"next-babel-turbo-transform","id":"757571786b676668","timestamp":96637670917,"duration":8329,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"373874646f796b77","name":"next-babel-turbo-loader","id":"7767676c3770336b","timestamp":96637670898,"duration":8368,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6969316b30786d72","name":"build-module-js","id":"373874646f796b77","timestamp":96637276773,"duration":403479,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\route-matcher.js"}},{"traceId":"a40c92b03843b256","parentId":"3471627039743534","name":"read-resource","id":"6c38723068356a61","timestamp":96637276919,"duration":403380,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7335643130773876","name":"get-options","id":"317a316c7763656c","timestamp":96637680331,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a35326f75343431","name":"babel-turbo-get-config","id":"3135327534657567","timestamp":96637680368,"duration":12,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a35326f75343431","name":"babel-turbo-normalize-file","id":"6e70393267317766","timestamp":96637680384,"duration":1426,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766c796c6768686b","name":"babel-turbo-traverse","id":"6233697369773572","timestamp":96637682306,"duration":6731,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a35326f75343431","name":"babel-turbo-transform","id":"766c796c6768686b","timestamp":96637681839,"duration":7218,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a35326f75343431","name":"babel-turbo-generate","id":"716d3162757a7a35","timestamp":96637689082,"duration":890,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7335643130773876","name":"next-babel-turbo-transform","id":"7a35326f75343431","timestamp":96637680339,"duration":9637,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3471627039743534","name":"next-babel-turbo-loader","id":"7335643130773876","timestamp":96637680327,"duration":9668,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6969316b30786d72","name":"build-module-js","id":"3471627039743534","timestamp":96637276880,"duration":414129,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\get-middleware-regex.js"}},{"traceId":"a40c92b03843b256","parentId":"35306f7362616766","name":"read-resource","id":"6e71697077627861","timestamp":96637276864,"duration":414189,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6961346b66697470","name":"get-options","id":"78306c6465317079","timestamp":96637691084,"duration":7,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e6f34676c6e706a","name":"babel-turbo-get-config","id":"6a63767038666e66","timestamp":96637691100,"duration":12,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e6f34676c6e706a","name":"babel-turbo-normalize-file","id":"716b6f3633776634","timestamp":96637691115,"duration":1265,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"757471747a773470","name":"babel-turbo-traverse","id":"6369616d6c793876","timestamp":96637692798,"duration":2568,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e6f34676c6e706a","name":"babel-turbo-transform","id":"757471747a773470","timestamp":96637692402,"duration":2985,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e6f34676c6e706a","name":"babel-turbo-generate","id":"677770717666696c","timestamp":96637695410,"duration":887,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6961346b66697470","name":"next-babel-turbo-transform","id":"6e6f34676c6e706a","timestamp":96637691096,"duration":5211,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"35306f7362616766","name":"next-babel-turbo-loader","id":"6961346b66697470","timestamp":96637691080,"duration":5249,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6969316b30786d72","name":"build-module-js","id":"35306f7362616766","timestamp":96637276826,"duration":420606,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\parse-relative-url.js"}},{"traceId":"a40c92b03843b256","parentId":"6f77726f31766731","name":"read-resource","id":"3139377777623278","timestamp":96637276972,"duration":420513,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"686d66383236746b","name":"get-options","id":"7361343175696863","timestamp":96637697519,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"736a6d3775306f70","name":"babel-turbo-get-config","id":"7265747477366e34","timestamp":96637697531,"duration":12,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"736a6d3775306f70","name":"babel-turbo-normalize-file","id":"386c733130386564","timestamp":96637697547,"duration":2790,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7167376d31797271","name":"babel-turbo-traverse","id":"396c316e6d363335","timestamp":96637700756,"duration":8837,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"736a6d3775306f70","name":"babel-turbo-transform","id":"7167376d31797271","timestamp":96637700363,"duration":9249,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"736a6d3775306f70","name":"babel-turbo-generate","id":"39397074796c6b62","timestamp":96637709634,"duration":2783,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"686d66383236746b","name":"next-babel-turbo-transform","id":"736a6d3775306f70","timestamp":96637697528,"duration":14908,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f77726f31766731","name":"next-babel-turbo-loader","id":"686d66383236746b","timestamp":96637697515,"duration":14956,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6969316b30786d72","name":"build-module-js","id":"6f77726f31766731","timestamp":96637276937,"duration":438578,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\route-regex.js"}},{"traceId":"a40c92b03843b256","parentId":"6271306968623737","name":"add-entry","id":"74707a72776d757a","timestamp":96634730323,"duration":2987644,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"733738666e373365","name":"read-resource","id":"77346630787a7a78","timestamp":96637575708,"duration":147437,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6969316b30786d72","name":"build-module-js","id":"733738666e373365","timestamp":96637575682,"duration":148142,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\server\\denormalize-page-path.js"}},{"traceId":"a40c92b03843b256","parentId":"363377317973706b","name":"read-resource","id":"63776b79706a7a38","timestamp":96637575643,"duration":148229,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6472793563656c63","name":"get-options","id":"307234747230616b","timestamp":96637723906,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f76767876373438","name":"babel-turbo-get-config","id":"6d61676d647a7336","timestamp":96637723918,"duration":12,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f76767876373438","name":"babel-turbo-normalize-file","id":"726d6a3777706432","timestamp":96637723934,"duration":1161,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f333377776c7470","name":"babel-turbo-traverse","id":"6e6935327065706d","timestamp":96637725534,"duration":1608,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f76767876373438","name":"babel-turbo-transform","id":"6f333377776c7470","timestamp":96637725124,"duration":2034,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f76767876373438","name":"babel-turbo-generate","id":"6a3076313873676f","timestamp":96637727173,"duration":550,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6472793563656c63","name":"next-babel-turbo-transform","id":"6f76767876373438","timestamp":96637723915,"duration":3812,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"363377317973706b","name":"next-babel-turbo-loader","id":"6472793563656c63","timestamp":96637723901,"duration":3847,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6969316b30786d72","name":"build-module-js","id":"363377317973706b","timestamp":96637575500,"duration":153206,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\i18n\\normalize-locale-path.js"}},{"traceId":"a40c92b03843b256","parentId":"7a66346d37633377","name":"read-resource","id":"6277653268387a69","timestamp":96637604282,"duration":129001,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a776e7276687838","name":"build-module-js","id":"7a66346d37633377","timestamp":96637604188,"duration":129479,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"7a66356a61656976","name":"read-resource","id":"356777306e733167","timestamp":96637718390,"duration":16678,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a66696c30613636","name":"build-module-js","id":"7a66356a61656976","timestamp":96637718316,"duration":17213,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\setPrototypeOf.js"}},{"traceId":"a40c92b03843b256","parentId":"656867676c306b74","name":"read-resource","id":"6e33333573716836","timestamp":96637718454,"duration":17104,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a66696c30613636","name":"build-module-js","id":"656867676c306b74","timestamp":96637718431,"duration":17453,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\isNativeReflectConstruct.js"}}] +[{"traceId":"a40c92b03843b256","parentId":"6d61666165326176","name":"read-resource","id":"717a386465647635","timestamp":96637718493,"duration":17657,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6539396872766733","name":"build-module-js","id":"6d61666165326176","timestamp":96637718471,"duration":18071,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\assertThisInitialized.js"}},{"traceId":"a40c92b03843b256","parentId":"3565656739733879","name":"read-resource","id":"6336326277396e38","timestamp":96637718615,"duration":17954,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"65696c766b6c6376","name":"build-module-js","id":"3565656739733879","timestamp":96637718592,"duration":18680,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\unsupportedIterableToArray.js"}},{"traceId":"a40c92b03843b256","parentId":"636f6a347977376e","name":"read-resource","id":"326c6537656a6736","timestamp":96637718670,"duration":18636,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"65696c766b6c6376","name":"build-module-js","id":"636f6a347977376e","timestamp":96637718629,"duration":18908,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\arrayWithHoles.js"}},{"traceId":"a40c92b03843b256","parentId":"3137786438776332","name":"read-resource","id":"666e666b74646a73","timestamp":96637718573,"duration":18982,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"65696c766b6c6376","name":"build-module-js","id":"3137786438776332","timestamp":96637718510,"duration":19491,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\iterableToArrayLimit.js"}},{"traceId":"a40c92b03843b256","parentId":"7776773139357032","name":"read-resource","id":"6e34647964796b36","timestamp":96637718707,"duration":19316,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"65696c766b6c6376","name":"build-module-js","id":"7776773139357032","timestamp":96637718686,"duration":19515,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\nonIterableRest.js"}},{"traceId":"a40c92b03843b256","parentId":"6433363168683036","name":"read-resource","id":"676f346234653775","timestamp":96637722074,"duration":17852,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"78743778686a6135","name":"get-options","id":"6f3761743766306c","timestamp":96637739982,"duration":7,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"366e753632306f65","name":"babel-turbo-get-config","id":"6962707263306674","timestamp":96637740000,"duration":15,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"366e753632306f65","name":"babel-turbo-normalize-file","id":"66766932316e7538","timestamp":96637740021,"duration":1283,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6968683874673475","name":"babel-turbo-traverse","id":"6d703437636b766a","timestamp":96637741939,"duration":6563,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"366e753632306f65","name":"babel-turbo-transform","id":"6968683874673475","timestamp":96637741510,"duration":7017,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"366e753632306f65","name":"babel-turbo-generate","id":"6577643436693565","timestamp":96637748552,"duration":1081,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"78743778686a6135","name":"next-babel-turbo-transform","id":"366e753632306f65","timestamp":96637739995,"duration":9649,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6433363168683036","name":"next-babel-turbo-loader","id":"78743778686a6135","timestamp":96637739974,"duration":9693,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3263376a6a723773","name":"build-module-js","id":"6433363168683036","timestamp":96637721962,"duration":28786,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\portal\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"7936776b6f6c346c","name":"read-resource","id":"6331337337666575","timestamp":96637722139,"duration":28654,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6539396872766733","name":"build-module-js","id":"7936776b6f6c346c","timestamp":96637722112,"duration":29112,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\typeof.js"}},{"traceId":"a40c92b03843b256","parentId":"657471776967646b","name":"read-resource","id":"7a6472386b6f3262","timestamp":96637731684,"duration":23437,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3263376a6a723773","name":"build-module-js","id":"657471776967646b","timestamp":96637731576,"duration":26446,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\client.js"}},{"traceId":"a40c92b03843b256","parentId":"306e32306b6d7076","name":"read-resource","id":"6435316777716133","timestamp":96637731952,"duration":26165,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3666786767617232","name":"build-module-js","id":"306e32306b6d7076","timestamp":96637731930,"duration":26536,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\script.js"}},{"traceId":"a40c92b03843b256","parentId":"6e6c68733869757a","name":"read-resource","id":"6635676167306f65","timestamp":96637731791,"duration":26713,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6936346e3831686d","name":"get-options","id":"77706168766a6a70","timestamp":96637758540,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"74386175787a7537","name":"babel-turbo-get-config","id":"306c647938756635","timestamp":96637758553,"duration":13,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"74386175787a7537","name":"babel-turbo-normalize-file","id":"7a62737565693369","timestamp":96637758570,"duration":1221,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"313462696a757471","name":"babel-turbo-traverse","id":"326667666e7a376a","timestamp":96637760260,"duration":2086,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"74386175787a7537","name":"babel-turbo-transform","id":"313462696a757471","timestamp":96637759823,"duration":2542,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"74386175787a7537","name":"babel-turbo-generate","id":"6b3635366b7a6373","timestamp":96637762387,"duration":696,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6936346e3831686d","name":"next-babel-turbo-transform","id":"74386175787a7537","timestamp":96637758549,"duration":4539,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e6c68733869757a","name":"next-babel-turbo-loader","id":"6936346e3831686d","timestamp":96637758534,"duration":4573,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"643474623874356f","name":"build-module-js","id":"6e6c68733869757a","timestamp":96637731732,"duration":32307,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\request-idle-callback.js"}},{"traceId":"a40c92b03843b256","parentId":"783167646b687678","name":"read-resource","id":"6f3667687a756b61","timestamp":96637731864,"duration":32218,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"306963346662787a","name":"build-module-js","id":"783167646b687678","timestamp":96637731809,"duration":32868,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\wrapNativeSuper.js"}},{"traceId":"a40c92b03843b256","parentId":"7639656931756865","name":"read-resource","id":"687772326d767463","timestamp":96637732005,"duration":32791,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"34636d6b7268676a","name":"get-options","id":"75627266686b3566","timestamp":96637764829,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6b767669717a33","name":"babel-turbo-get-config","id":"62707432736a757a","timestamp":96637764843,"duration":13,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6b767669717a33","name":"babel-turbo-normalize-file","id":"3734337463673866","timestamp":96637764860,"duration":959,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3432626e7869386d","name":"babel-turbo-traverse","id":"656c66306679346d","timestamp":96637766334,"duration":1962,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6b767669717a33","name":"babel-turbo-transform","id":"3432626e7869386d","timestamp":96637765847,"duration":2474,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6b767669717a33","name":"babel-turbo-generate","id":"6f386a77336e7964","timestamp":96637768628,"duration":433,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"34636d6b7268676a","name":"next-babel-turbo-transform","id":"7a6b767669717a33","timestamp":96637764839,"duration":4231,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7639656931756865","name":"next-babel-turbo-loader","id":"34636d6b7268676a","timestamp":96637764825,"duration":4272,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"696e376c37626e72","name":"build-module-js","id":"7639656931756865","timestamp":96637731966,"duration":38648,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\get-asset-path-from-route.js"}},{"traceId":"a40c92b03843b256","parentId":"6a37726262723562","name":"read-resource","id":"6a31646830346270","timestamp":96637731910,"duration":38757,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3666786767617232","name":"build-module-js","id":"6a37726262723562","timestamp":96637731887,"duration":39015,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\head.js"}},{"traceId":"a40c92b03843b256","parentId":"65326a6863716a65","name":"read-resource","id":"7232697067796f76","timestamp":96637732062,"duration":38861,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"786d397266766978","name":"get-options","id":"32613171667a6b64","timestamp":96637770951,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69656c3932727971","name":"babel-turbo-get-config","id":"61736c69626f3834","timestamp":96637770964,"duration":10,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69656c3932727971","name":"babel-turbo-normalize-file","id":"33377a6677643437","timestamp":96637770978,"duration":2557,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37386e6666307231","name":"babel-turbo-traverse","id":"716d6c7133713631","timestamp":96637773978,"duration":6549,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69656c3932727971","name":"babel-turbo-transform","id":"37386e6666307231","timestamp":96637773571,"duration":6975,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69656c3932727971","name":"babel-turbo-generate","id":"3676673164386e6a","timestamp":96637780567,"duration":1541,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"786d397266766978","name":"next-babel-turbo-transform","id":"69656c3932727971","timestamp":96637770960,"duration":11154,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"65326a6863716a65","name":"next-babel-turbo-loader","id":"786d397266766978","timestamp":96637770946,"duration":11185,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"306963346662787a","name":"build-module-js","id":"65326a6863716a65","timestamp":96637732024,"duration":55105,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\format-url.js"}},{"traceId":"a40c92b03843b256","parentId":"356173376e703672","name":"read-resource","id":"336e733679676a7a","timestamp":96637732165,"duration":55029,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"366570636d32616a","name":"get-options","id":"7779626f717a7035","timestamp":96637787243,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7869726677716272","name":"babel-turbo-get-config","id":"30303363637a3239","timestamp":96637787257,"duration":4427,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7869726677716272","name":"babel-turbo-normalize-file","id":"6739383665687679","timestamp":96637791724,"duration":3859,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7536696f36373161","name":"babel-turbo-traverse","id":"32376d686a786271","timestamp":96637796041,"duration":12025,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7869726677716272","name":"babel-turbo-transform","id":"7536696f36373161","timestamp":96637795627,"duration":12457,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7869726677716272","name":"babel-turbo-generate","id":"756a626b7939696d","timestamp":96637808109,"duration":2783,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"366570636d32616a","name":"next-babel-turbo-transform","id":"7869726677716272","timestamp":96637787254,"duration":23652,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"356173376e703672","name":"next-babel-turbo-loader","id":"366570636d32616a","timestamp":96637787238,"duration":23690,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"317677306e797836","name":"build-module-js","id":"356173376e703672","timestamp":96637732078,"duration":82671,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\dev\\error-overlay\\format-webpack-messages.js"}},{"traceId":"a40c92b03843b256","parentId":"63756d66726f6c73","name":"read-resource","id":"663673647a78696f","timestamp":96637734262,"duration":84896,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3263376a6a723773","name":"build-module-js","id":"63756d66726f6c73","timestamp":96637734235,"duration":85499,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-is\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"6b36797678376430","name":"read-resource","id":"6874303234646f68","timestamp":96637734204,"duration":85591,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3263376a6a723773","name":"build-module-js","id":"6b36797678376430","timestamp":96637734130,"duration":86258,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-dom\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"7730626a69386574","name":"read-resource","id":"7677633674613767","timestamp":96637738839,"duration":87742,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3666786767617232","name":"build-module-js","id":"7730626a69386574","timestamp":96637738682,"duration":88297,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react\\jsx-dev-runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"6c6e716b6f797165","name":"read-resource","id":"61717a6c6168666c","timestamp":96637738934,"duration":88071,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b376b356f61636d","name":"get-options","id":"376a723877373175","timestamp":96637827033,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6637386e7a7a7132","name":"babel-turbo-get-config","id":"766a6f3867377a79","timestamp":96637827045,"duration":13,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6637386e7a7a7132","name":"babel-turbo-normalize-file","id":"6a65326f79637766","timestamp":96637827061,"duration":4623,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7232756a6b623832","name":"babel-turbo-traverse","id":"6230793677746a65","timestamp":96637832177,"duration":19664,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6637386e7a7a7132","name":"babel-turbo-transform","id":"7232756a6b623832","timestamp":96637831736,"duration":20129,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6637386e7a7a7132","name":"babel-turbo-generate","id":"707678737362356e","timestamp":96637851894,"duration":4903,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b376b356f61636d","name":"next-babel-turbo-transform","id":"6637386e7a7a7132","timestamp":96637827042,"duration":29771,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c6e716b6f797165","name":"next-babel-turbo-loader","id":"6b376b356f61636d","timestamp":96637827028,"duration":29808,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"35706b69756a3239","name":"build-module-js","id":"6c6e716b6f797165","timestamp":96637738877,"duration":120379,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\head.js"}},{"traceId":"a40c92b03843b256","parentId":"346b61796a636a66","name":"read-resource","id":"6d663465666e6a31","timestamp":96637751826,"duration":110707,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3263376a6a723773","name":"build-module-js","id":"346b61796a636a66","timestamp":96637751746,"duration":111113,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\styled-jsx\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"686734316269356b","name":"read-resource","id":"31387a346f757774","timestamp":96637816933,"duration":49295,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3263376a6a723773","name":"build-module-js","id":"686734316269356b","timestamp":96637816868,"duration":50326,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\polyfill-module\\dist\\polyfill-module.js"}},{"traceId":"a40c92b03843b256","parentId":"623578626f6e7376","name":"read-resource","id":"696768636366376c","timestamp":96637825686,"duration":44030,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3565656739733879","name":"build-module-js","id":"623578626f6e7376","timestamp":96637825415,"duration":45023,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\arrayLikeToArray.js"}},{"traceId":"a40c92b03843b256","parentId":"6d32396135773332","name":"read-resource","id":"6635686770363468","timestamp":96637825331,"duration":45598,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3666786767617232","name":"build-module-js","id":"6d32396135773332","timestamp":96637825211,"duration":46774,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\esm\\defineProperty.js"}},{"traceId":"a40c92b03843b256","parentId":"706f386571757765","name":"next-style-loader","id":"7a37356f6e6a6d71","timestamp":96637875285,"duration":348,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3666786767617232","name":"build-module-css","id":"706f386571757765","timestamp":96637872418,"duration":5152,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\styles\\preloader.css"}},{"traceId":"a40c92b03843b256","parentId":"6637636738333274","name":"read-resource","id":"6d3179726c6f3078","timestamp":96637861049,"duration":18314,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a66346d37633377","name":"build-module-js","id":"6637636738333274","timestamp":96637860960,"duration":33519,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react\\cjs\\react.development.js"}},{"traceId":"a40c92b03843b256","parentId":"7579686b6734356a","name":"next-style-loader","id":"616177627168786b","timestamp":96637895802,"duration":125,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3666786767617232","name":"build-module-scss","id":"7579686b6734356a","timestamp":96637895617,"duration":1476,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\styles\\main.scss"}},{"traceId":"a40c92b03843b256","parentId":"3065346536643277","name":"read-resource","id":"6779757174736161","timestamp":96637865582,"duration":33352,"tags":{}}] +[{"traceId":"a40c92b03843b256","parentId":"783167646b687678","name":"build-module-js","id":"3065346536643277","timestamp":96637865482,"duration":34216,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\isNativeFunction.js"}},{"traceId":"a40c92b03843b256","parentId":"396d727468386364","name":"read-resource","id":"6d726265736b6c37","timestamp":96637877694,"duration":54216,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"356173376e703672","name":"build-module-js","id":"396d727468386364","timestamp":96637877618,"duration":54717,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\toConsumableArray.js"}},{"traceId":"a40c92b03843b256","parentId":"636330786473656b","name":"read-resource","id":"6871737172387a69","timestamp":96637877771,"duration":54711,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7730626a69386574","name":"build-module-js","id":"636330786473656b","timestamp":96637877738,"duration":60249,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react\\cjs\\react-jsx-dev-runtime.development.js"}},{"traceId":"a40c92b03843b256","parentId":"76347968736e3266","name":"read-resource","id":"316c676172776b6e","timestamp":96637897525,"duration":56414,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"356c736a64677168","name":"build-module-js","id":"76347968736e3266","timestamp":96637897496,"duration":59009,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\compiled\\web-vitals\\web-vitals.umd.js"}},{"traceId":"a40c92b03843b256","parentId":"3072356c6730626d","name":"read-resource","id":"61626370626e7867","timestamp":96637897598,"duration":58959,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"63756d66726f6c73","name":"build-module-js","id":"3072356c6730626d","timestamp":96637897567,"duration":60789,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-is\\cjs\\react-is.development.js"}},{"traceId":"a40c92b03843b256","parentId":"6c38766973693179","name":"read-resource","id":"3737796263793931","timestamp":96637897439,"duration":60989,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"346c31376936736b","name":"get-options","id":"6c306439747a6731","timestamp":96637958467,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"706633356363766e","name":"babel-turbo-get-config","id":"39396765336e7862","timestamp":96637958481,"duration":2968,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"706633356363766e","name":"babel-turbo-normalize-file","id":"787637327a6d6335","timestamp":96637961543,"duration":6050,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7035336a6f626e73","name":"babel-turbo-traverse","id":"637364666677386e","timestamp":96637968092,"duration":6070,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"706633356363766e","name":"babel-turbo-transform","id":"7035336a6f626e73","timestamp":96637967635,"duration":6547,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"706633356363766e","name":"babel-turbo-generate","id":"3239707668326b79","timestamp":96637974205,"duration":892,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"346c31376936736b","name":"next-babel-turbo-transform","id":"706633356363766e","timestamp":96637958478,"duration":16628,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c38766973693179","name":"next-babel-turbo-loader","id":"346c31376936736b","timestamp":96637958462,"duration":16663,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"317677306e797836","name":"build-module-js","id":"6c38766973693179","timestamp":96637897224,"duration":78917,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\compiled\\strip-ansi\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"6f6a667271676f77","name":"read-resource","id":"34363071616a3168","timestamp":96637900611,"duration":76866,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"657471776967646b","name":"build-module-js","id":"6f6a667271676f77","timestamp":96637900586,"duration":77717,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\bus.js"}},{"traceId":"a40c92b03843b256","parentId":"6b3266636c70746b","name":"read-resource","id":"306f7a693565707a","timestamp":96637900720,"duration":77622,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"657471776967646b","name":"build-module-js","id":"6b3266636c70746b","timestamp":96637900700,"duration":78497,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\helpers\\nodeStackFrames.js"}},{"traceId":"a40c92b03843b256","parentId":"3467316e6f727864","name":"read-resource","id":"6b64776674387132","timestamp":96637900686,"duration":78555,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"657471776967646b","name":"build-module-js","id":"3467316e6f727864","timestamp":96637900665,"duration":79244,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\helpers\\parseStack.js"}},{"traceId":"a40c92b03843b256","parentId":"697333776a766d6f","name":"read-resource","id":"7263723366387171","timestamp":96637900649,"duration":79321,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"657471776967646b","name":"build-module-js","id":"697333776a766d6f","timestamp":96637900626,"duration":80699,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\ReactDevOverlay.js"}},{"traceId":"a40c92b03843b256","parentId":"7a726e7033673076","name":"read-resource","id":"7134363232637a6b","timestamp":96637900790,"duration":80583,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a71706b36716839","name":"get-options","id":"347a34796e306272","timestamp":96637981410,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72376361756b6f6c","name":"babel-turbo-get-config","id":"6d35387932726575","timestamp":96637981421,"duration":11,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72376361756b6f6c","name":"babel-turbo-normalize-file","id":"35797a68326f3779","timestamp":96637981436,"duration":1079,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3867767076676b6d","name":"babel-turbo-traverse","id":"393067367a616b32","timestamp":96637982933,"duration":1251,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72376361756b6f6c","name":"babel-turbo-transform","id":"3867767076676b6d","timestamp":96637982541,"duration":1658,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72376361756b6f6c","name":"babel-turbo-generate","id":"3037313864357367","timestamp":96637984215,"duration":390,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a71706b36716839","name":"next-babel-turbo-transform","id":"72376361756b6f6c","timestamp":96637981418,"duration":3190,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a726e7033673076","name":"next-babel-turbo-loader","id":"6a71706b36716839","timestamp":96637981405,"duration":3248,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c6e716b6f797165","name":"build-module-js","id":"7a726e7033673076","timestamp":96637900734,"duration":84702,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\amp-context.js"}},{"traceId":"a40c92b03843b256","parentId":"696664346c306b6a","name":"read-resource","id":"7032703439703876","timestamp":96637900844,"duration":84638,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"636c306a32366471","name":"get-options","id":"757a6b6975636177","timestamp":96637985510,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"65356e6276673632","name":"babel-turbo-get-config","id":"313271756a753767","timestamp":96637985530,"duration":11,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"65356e6276673632","name":"babel-turbo-normalize-file","id":"336b686930747539","timestamp":96637985545,"duration":1171,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7574716676613979","name":"babel-turbo-traverse","id":"33346a6e3436366b","timestamp":96637987168,"duration":4701,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"65356e6276673632","name":"babel-turbo-transform","id":"7574716676613979","timestamp":96637986772,"duration":5135,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"65356e6276673632","name":"babel-turbo-generate","id":"636937376d696467","timestamp":96637991944,"duration":966,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"636c306a32366471","name":"next-babel-turbo-transform","id":"65356e6276673632","timestamp":96637985527,"duration":7399,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"696664346c306b6a","name":"next-babel-turbo-loader","id":"636c306a32366471","timestamp":96637985506,"duration":7442,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c6e716b6f797165","name":"build-module-js","id":"696664346c306b6a","timestamp":96637900806,"duration":93223,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\amp.js"}},{"traceId":"a40c92b03843b256","parentId":"346b683133686879","name":"read-resource","id":"6765333570753171","timestamp":96637900919,"duration":93172,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7162667969306972","name":"get-options","id":"32786b736d6b7a35","timestamp":96637994134,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3632366979647079","name":"babel-turbo-get-config","id":"32726b796a706c30","timestamp":96637994147,"duration":14,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3632366979647079","name":"babel-turbo-normalize-file","id":"316579756a757865","timestamp":96637994165,"duration":3231,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6636723636796575","name":"babel-turbo-traverse","id":"373270386a373539","timestamp":96637998150,"duration":14240,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3632366979647079","name":"babel-turbo-transform","id":"6636723636796575","timestamp":96637997440,"duration":14974,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3632366979647079","name":"babel-turbo-generate","id":"70786a7a386a616f","timestamp":96638012438,"duration":4315,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7162667969306972","name":"next-babel-turbo-transform","id":"3632366979647079","timestamp":96637994144,"duration":22621,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"346b683133686879","name":"next-babel-turbo-loader","id":"7162667969306972","timestamp":96637994129,"duration":22657,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c6e716b6f797165","name":"build-module-js","id":"346b683133686879","timestamp":96637900860,"duration":117479,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\side-effect.js"}},{"traceId":"a40c92b03843b256","parentId":"61736a786b376834","name":"read-resource","id":"3471367868323777","timestamp":96637931360,"duration":90689,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d32396d78746c6f","name":"postcss-process","id":"6231363374737969","timestamp":96638022461,"duration":46499,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"61736a786b376834","name":"postcss-loader","id":"6d32396d78746c6f","timestamp":96638022267,"duration":48039,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"61736a786b376834","name":"css-loader","id":"74646a3436653935","timestamp":96638070739,"duration":6998,"tags":{"astUsed":"true"}},{"traceId":"a40c92b03843b256","parentId":"706f386571757765","name":"build-module-css","id":"61736a786b376834","timestamp":96637902167,"duration":176302,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\css-loader\\src\\index.js??ruleSet[1].rules[2].oneOf[9].use[1]!C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\postcss-loader\\src\\index.js??ruleSet[1].rules[2].oneOf[9].use[2]!C:\\Users\\hp\\Desktop\\business-hub\\src\\styles\\preloader.css"}},{"traceId":"a40c92b03843b256","parentId":"74656e7862783939","name":"read-resource","id":"3073316a3234386d","timestamp":96637931576,"duration":146938,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3963316131623777","name":"get-options","id":"736d78766d6c3178","timestamp":96638078577,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6362306462783872","name":"babel-turbo-get-config","id":"717875676e70616a","timestamp":96638078590,"duration":3039,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6362306462783872","name":"babel-turbo-normalize-file","id":"6f383065316c7066","timestamp":96638081663,"duration":761,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f30356b3477666b","name":"babel-turbo-traverse","id":"387531366a386631","timestamp":96638082844,"duration":7482,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6362306462783872","name":"babel-turbo-transform","id":"6f30356b3477666b","timestamp":96638082450,"duration":7893,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6362306462783872","name":"babel-turbo-generate","id":"63676f6b6c636c69","timestamp":96638090362,"duration":785,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3963316131623777","name":"next-babel-turbo-transform","id":"6362306462783872","timestamp":96638078587,"duration":12565,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"74656e7862783939","name":"next-babel-turbo-loader","id":"3963316131623777","timestamp":96638078571,"duration":12598,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3666786767617232","name":"build-module-jsx","id":"74656e7862783939","timestamp":96637931452,"duration":160774,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\cursor\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"766e763674383472","name":"read-resource","id":"337a376c75627838","timestamp":96637900542,"duration":191756,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b36797678376430","name":"build-module-js","id":"766e763674383472","timestamp":96637900419,"duration":337730,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-dom\\cjs\\react-dom.development.js"}},{"traceId":"a40c92b03843b256","parentId":"686e346e636d6c6c","name":"read-resource","id":"33657075376f6670","timestamp":96637953204,"duration":287723,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7669777470373061","name":"get-options","id":"396d397836657434","timestamp":96638240983,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f396a776d746d6c","name":"babel-turbo-get-config","id":"3078316837657264","timestamp":96638241022,"duration":11,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f396a776d746d6c","name":"babel-turbo-normalize-file","id":"6c73637273717031","timestamp":96638241037,"duration":885,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"34757162686c316c","name":"babel-turbo-traverse","id":"617778756832756a","timestamp":96638242647,"duration":4537,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f396a776d746d6c","name":"babel-turbo-transform","id":"34757162686c316c","timestamp":96638241948,"duration":5256,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f396a776d746d6c","name":"babel-turbo-generate","id":"6962783969387465","timestamp":96638247224,"duration":844,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7669777470373061","name":"next-babel-turbo-transform","id":"6f396a776d746d6c","timestamp":96638241018,"duration":7060,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"686e346e636d6c6c","name":"next-babel-turbo-loader","id":"7669777470373061","timestamp":96638240978,"duration":7120,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3666786767617232","name":"build-module-jsx","id":"686e346e636d6c6c","timestamp":96637953088,"duration":295898,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\scrollToTop\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"6e77716933617567","name":"read-resource","id":"7564313674766b77","timestamp":96637953015,"duration":296019,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b6a38786d657675","name":"normalize-source-map","id":"6b73366b73783530","timestamp":96638500869,"duration":99,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b6a38786d657675","name":"postcss-process","id":"32377a6b70746971","timestamp":96638500986,"duration":6016,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e77716933617567","name":"postcss-loader","id":"6b6a38786d657675","timestamp":96638500849,"duration":6251,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e77716933617567","name":"css-loader","id":"6339693369747764","timestamp":96638507146,"duration":1643,"tags":{"astUsed":"true"}},{"traceId":"a40c92b03843b256","parentId":"7579686b6734356a","name":"build-module-scss","id":"6e77716933617567","timestamp":96637938720,"duration":571173,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\css-loader\\src\\index.js??ruleSet[1].rules[2].oneOf[10].use[1]!C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\postcss-loader\\src\\index.js??ruleSet[1].rules[2].oneOf[10].use[2]!C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\compiled\\resolve-url-loader\\index.js??ruleSet[1].rules[2].oneOf[10].use[3]!C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\compiled\\sass-loader\\cjs.js??ruleSet[1].rules[2].oneOf[10].use[4]!C:\\Users\\hp\\Desktop\\business-hub\\src\\styles\\main.scss"}},{"traceId":"a40c92b03843b256","parentId":"6d7379746e646b6f","name":"read-resource","id":"707932726462306a","timestamp":96637977187,"duration":533142,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3966683463686d66","name":"get-options","id":"6b67756d75736f6f","timestamp":96638510383,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"666a647072316666","name":"babel-turbo-get-config","id":"7065383337753333","timestamp":96638510398,"duration":11,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"666a647072316666","name":"babel-turbo-normalize-file","id":"78626433766c7731","timestamp":96638510414,"duration":1651,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e72756e72703762","name":"babel-turbo-traverse","id":"62396d3065626177","timestamp":96638513561,"duration":23962,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"666a647072316666","name":"babel-turbo-transform","id":"6e72756e72703762","timestamp":96638512141,"duration":25411,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"666a647072316666","name":"babel-turbo-generate","id":"61676b653861646d","timestamp":96638537573,"duration":1381,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3966683463686d66","name":"next-babel-turbo-transform","id":"666a647072316666","timestamp":96638510392,"duration":28567,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d7379746e646b6f","name":"next-babel-turbo-loader","id":"3966683463686d66","timestamp":96638510374,"duration":28602,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3666786767617232","name":"build-module-jsx","id":"6d7379746e646b6f","timestamp":96637977069,"duration":563998,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Loading-Screen\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"63636e6d316e386c","name":"read-resource","id":"3271646138366f64","timestamp":96638020268,"duration":525177,"tags":{}}] +[{"traceId":"a40c92b03843b256","parentId":"6637636738333274","name":"build-module-js","id":"63636e6d316e386c","timestamp":96638020203,"duration":525886,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\polyfills\\object-assign.js"}},{"traceId":"a40c92b03843b256","parentId":"6364386571337a33","name":"read-resource","id":"7066786261643465","timestamp":96638020353,"duration":525784,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"706f386571757765","name":"build-module-js","id":"6364386571337a33","timestamp":96638020317,"duration":528524,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-style-loader\\runtime\\injectStylesIntoStyleTag.js"}},{"traceId":"a40c92b03843b256","parentId":"6271306968623737","name":"add-entry","id":"763768796d7a6675","timestamp":96634731457,"duration":3819602,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=private-next-pages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"7738783636627237","name":"read-resource","id":"6333776d73366666","timestamp":96638239732,"duration":312025,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"396d727468386364","name":"build-module-js","id":"7738783636627237","timestamp":96638239706,"duration":312522,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\nonIterableSpread.js"}},{"traceId":"a40c92b03843b256","parentId":"626e69667a796868","name":"read-resource","id":"68616a386a78716d","timestamp":96638239661,"duration":312611,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"396d727468386364","name":"build-module-js","id":"626e69667a796868","timestamp":96638239465,"duration":313379,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\arrayWithoutHoles.js"}},{"traceId":"a40c92b03843b256","parentId":"6d7a613230327763","name":"read-resource","id":"68786c3175677172","timestamp":96638460646,"duration":94649,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6679386b397a3569","name":"build-module-js","id":"6d7a613230327763","timestamp":96638460558,"duration":99276,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\regenerator-runtime\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"76706a3070717334","name":"read-resource","id":"326c6d303837726b","timestamp":96638460704,"duration":99202,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"396d727468386364","name":"build-module-js","id":"76706a3070717334","timestamp":96638460678,"duration":99927,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\iterableToArray.js"}},{"traceId":"a40c92b03843b256","parentId":"6271306968623737","name":"add-entry","id":"7778747137736666","timestamp":96634731266,"duration":3830095,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"}},{"traceId":"a40c92b03843b256","parentId":"6271306968623737","name":"add-entry","id":"3966327465306870","timestamp":96634731410,"duration":3829975,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"7a6f786834637236","name":"read-resource","id":"7937697475767773","timestamp":96638554380,"duration":11683,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"697333776a766d6f","name":"build-module-js","id":"7a6f786834637236","timestamp":96638554317,"duration":12897,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\ErrorBoundary.js"}},{"traceId":"a40c92b03843b256","parentId":"677965303379376e","name":"read-resource","id":"74636d6679787833","timestamp":96638561195,"duration":6786,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"346b61796a636a66","name":"build-module-js","id":"677965303379376e","timestamp":96638561098,"duration":7370,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\styled-jsx\\dist\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"336e696f717a6967","name":"read-resource","id":"6c3139643931697a","timestamp":96638561260,"duration":7262,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"61736a786b376834","name":"build-module-js","id":"336e696f717a6967","timestamp":96638561231,"duration":8202,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\css-loader\\src\\runtime\\api.js"}},{"traceId":"a40c92b03843b256","parentId":"7175706d376b796c","name":"read-resource","id":"35786f6169787272","timestamp":96638562285,"duration":8322,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"697333776a766d6f","name":"build-module-js","id":"7175706d376b796c","timestamp":96638562258,"duration":9452,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\container\\BuildError.js"}},{"traceId":"a40c92b03843b256","parentId":"76387a30756d7362","name":"read-resource","id":"646d6a366f6f6772","timestamp":96638562220,"duration":9614,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"697333776a766d6f","name":"build-module-js","id":"76387a30756d7362","timestamp":96638562120,"duration":15357,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\container\\Errors.js"}},{"traceId":"a40c92b03843b256","parentId":"356e65386a757864","name":"read-resource","id":"6b61387776653831","timestamp":96638562474,"duration":15070,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"697333776a766d6f","name":"build-module-js","id":"356e65386a757864","timestamp":96638562424,"duration":16307,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\styles\\Base.js"}},{"traceId":"a40c92b03843b256","parentId":"617769796d746839","name":"read-resource","id":"72746668686b3936","timestamp":96638562659,"duration":16174,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"697333776a766d6f","name":"build-module-js","id":"617769796d746839","timestamp":96638562607,"duration":18814,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\styles\\ComponentStyles.js"}},{"traceId":"a40c92b03843b256","parentId":"6532623835786431","name":"read-resource","id":"6832396532616639","timestamp":96638562818,"duration":18656,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"697333776a766d6f","name":"build-module-js","id":"6532623835786431","timestamp":96638562779,"duration":20361,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\ShadowPortal.js"}},{"traceId":"a40c92b03843b256","parentId":"61346f6971663261","name":"read-resource","id":"7a70696c30697068","timestamp":96638562545,"duration":20689,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"697333776a766d6f","name":"build-module-js","id":"61346f6971663261","timestamp":96638562507,"duration":21851,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\styles\\CssReset.js"}},{"traceId":"a40c92b03843b256","parentId":"326a636b62643531","name":"read-resource","id":"6a31356b7a617961","timestamp":96638565846,"duration":27553,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6938663975336b67","name":"get-options","id":"366d676f677a6a67","timestamp":96638593458,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"756735773965716f","name":"babel-turbo-get-config","id":"3569366966346e39","timestamp":96638593474,"duration":2931,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"756735773965716f","name":"babel-turbo-normalize-file","id":"7a63667564746f6d","timestamp":96638596453,"duration":4930,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7663706230697161","name":"babel-turbo-traverse","id":"78613775396e3365","timestamp":96638602058,"duration":6000,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"756735773965716f","name":"babel-turbo-transform","id":"7663706230697161","timestamp":96638601422,"duration":6663,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"756735773965716f","name":"babel-turbo-generate","id":"3137346f70333779","timestamp":96638608112,"duration":1334,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6938663975336b67","name":"next-babel-turbo-transform","id":"756735773965716f","timestamp":96638593470,"duration":15985,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"326a636b62643531","name":"next-babel-turbo-loader","id":"6938663975336b67","timestamp":96638593451,"duration":16023,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"74656e7862783939","name":"build-module-js","id":"326a636b62643531","timestamp":96638565661,"duration":44898,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\common\\mouseEffect.js"}},{"traceId":"a40c92b03843b256","parentId":"7a61763675356d68","name":"read-resource","id":"6d6b7571756f617a","timestamp":96638565627,"duration":44984,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6361333536793267","name":"get-options","id":"6372366173617365","timestamp":96638610648,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"696e776463666276","name":"babel-turbo-get-config","id":"66323177316d6367","timestamp":96638610661,"duration":11,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"696e776463666276","name":"babel-turbo-normalize-file","id":"6366723265766c37","timestamp":96638610676,"duration":1324,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"626b6d716e6f6964","name":"babel-turbo-traverse","id":"6b6c6c3878726a38","timestamp":96638612629,"duration":3801,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"696e776463666276","name":"babel-turbo-transform","id":"626b6d716e6f6964","timestamp":96638612031,"duration":4423,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"696e776463666276","name":"babel-turbo-generate","id":"6b7266647a62306c","timestamp":96638616480,"duration":968,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6361333536793267","name":"next-babel-turbo-transform","id":"696e776463666276","timestamp":96638610657,"duration":6796,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a61763675356d68","name":"next-babel-turbo-loader","id":"6361333536793267","timestamp":96638610642,"duration":6831,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"686e346e636d6c6c","name":"build-module-js","id":"7a61763675356d68","timestamp":96638565491,"duration":53187,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\common\\scrollToTop.js"}},{"traceId":"a40c92b03843b256","parentId":"72797a6f72317273","name":"read-resource","id":"7271387539656134","timestamp":96638565954,"duration":52769,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"636834646b63776b","name":"get-options","id":"637734767a37636b","timestamp":96638618783,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b39653935626576","name":"babel-turbo-get-config","id":"7764317333656336","timestamp":96638618798,"duration":11,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b39653935626576","name":"babel-turbo-normalize-file","id":"6d6a78756e646664","timestamp":96638618814,"duration":1065,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a7a796d6c306435","name":"babel-turbo-traverse","id":"69336f666b726469","timestamp":96638621540,"duration":3261,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b39653935626576","name":"babel-turbo-transform","id":"6a7a796d6c306435","timestamp":96638619928,"duration":4898,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b39653935626576","name":"babel-turbo-generate","id":"7170673537707265","timestamp":96638624852,"duration":713,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"636834646b63776b","name":"next-babel-turbo-transform","id":"6b39653935626576","timestamp":96638618794,"duration":6784,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72797a6f72317273","name":"next-babel-turbo-loader","id":"636834646b63776b","timestamp":96638618777,"duration":6825,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d7379746e646b6f","name":"build-module-js","id":"72797a6f72317273","timestamp":96638565903,"duration":60769,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\common\\loadingPace.js"}},{"traceId":"a40c92b03843b256","parentId":"6b746d77627a6e6c","name":"read-resource","id":"776a68696a656672","timestamp":96638566013,"duration":61480,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d7379746e646b6f","name":"build-module-json","id":"6b746d77627a6e6c","timestamp":96638565977,"duration":62056,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\data\\app.json"}},{"traceId":"a40c92b03843b256","parentId":"6271306968623737","name":"add-entry","id":"7171796267627974","timestamp":96634731373,"duration":3897188,"tags":{"request":"next-client-pages-loader?page=%2F_app&absolutePagePath=private-next-pages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"766a323232366471","name":"read-resource","id":"6b6f7a783376766d","timestamp":96638628700,"duration":5438,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766e763674383472","name":"build-module-js","id":"766a323232366471","timestamp":96638628610,"duration":5993,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\scheduler\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"737a37633270396e","name":"read-resource","id":"6f616a627a71786d","timestamp":96638628761,"duration":5887,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766e763674383472","name":"build-module-js","id":"737a37633270396e","timestamp":96638628733,"duration":6192,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\scheduler\\tracing.js"}},{"traceId":"a40c92b03843b256","parentId":"7873307138746774","name":"read-resource","id":"77786a3973687070","timestamp":96638631004,"duration":5111,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7175706d376b796c","name":"build-module-js","id":"7873307138746774","timestamp":96638630975,"duration":5900,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\helpers\\noop-template.js"}},{"traceId":"a40c92b03843b256","parentId":"743639726d6b6d33","name":"read-resource","id":"74316e6a70757377","timestamp":96638630948,"duration":5984,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"677965303379376e","name":"build-module-js","id":"743639726d6b6d33","timestamp":96638630860,"duration":8107,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\styled-jsx\\dist\\stylesheet-registry.js"}},{"traceId":"a40c92b03843b256","parentId":"31776d336a727867","name":"read-resource","id":"34706d7774763432","timestamp":96638631044,"duration":8741,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76387a30756d7362","name":"build-module-js","id":"31776d336a727867","timestamp":96638631021,"duration":10706,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\container\\RuntimeError.js"}},{"traceId":"a40c92b03843b256","parentId":"7a38667635396964","name":"read-resource","id":"70756e7169656173","timestamp":96638631084,"duration":11040,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76387a30756d7362","name":"build-module-js","id":"7a38667635396964","timestamp":96638631061,"duration":17313,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\helpers\\stack-frame.js"}},{"traceId":"a40c92b03843b256","parentId":"6564746f6c74346a","name":"read-resource","id":"6a6c3471646a6675","timestamp":96638633741,"duration":16282,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"617769796d746839","name":"build-module-js","id":"6564746f6c74346a","timestamp":96638633711,"duration":16919,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Overlay\\styles.js"}},{"traceId":"a40c92b03843b256","parentId":"6a67787772383133","name":"read-resource","id":"70356d7731643467","timestamp":96638633829,"duration":16861,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"617769796d746839","name":"build-module-js","id":"6a67787772383133","timestamp":96638633803,"duration":17246,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Terminal\\styles.js"}},{"traceId":"a40c92b03843b256","parentId":"6a3634736b756c6a","name":"read-resource","id":"366f6e6b6171677a","timestamp":96638633674,"duration":17400,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"617769796d746839","name":"build-module-js","id":"6a3634736b756c6a","timestamp":96638633577,"duration":17833,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\CodeFrame\\styles.js"}},{"traceId":"a40c92b03843b256","parentId":"6e7564796e693338","name":"read-resource","id":"3132753072796a36","timestamp":96638633782,"duration":17656,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"617769796d746839","name":"build-module-js","id":"6e7564796e693338","timestamp":96638633759,"duration":17997,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\LeftRightDialogHeader\\styles.js"}},{"traceId":"a40c92b03843b256","parentId":"63643536766a7666","name":"read-resource","id":"396c73637430747a","timestamp":96638652227,"duration":5710,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7175706d376b796c","name":"build-module-js","id":"63643536766a7666","timestamp":96638652137,"duration":6535,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Overlay\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"7735377335336962","name":"read-resource","id":"6e67796b65347977","timestamp":96638652799,"duration":6259,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76387a30756d7362","name":"build-module-js","id":"7735377335336962","timestamp":96638652757,"duration":6905,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\LeftRightDialogHeader\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"6c70613272383965","name":"read-resource","id":"66776a626f36616d","timestamp":96638652703,"duration":6996,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7175706d376b796c","name":"build-module-js","id":"6c70613272383965","timestamp":96638652253,"duration":7765,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Terminal\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"6d6c706736653977","name":"read-resource","id":"6474313774767537","timestamp":96638656449,"duration":6060,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7175706d376b796c","name":"build-module-js","id":"6d6c706736653977","timestamp":96638656362,"duration":6799,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Dialog\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"7561636a63356834","name":"read-resource","id":"7035716861306d33","timestamp":96638656509,"duration":6702,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76387a30756d7362","name":"build-module-js","id":"7561636a63356834","timestamp":96638656480,"duration":7171,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Toast\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"3564307737327031","name":"read-resource","id":"6666767a6c336266","timestamp":96638657355,"duration":7543,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"737a37633270396e","name":"build-module-js","id":"3564307737327031","timestamp":96638657259,"duration":9183,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\scheduler\\cjs\\scheduler-tracing.development.js"}},{"traceId":"a40c92b03843b256","parentId":"3575736f61676768","name":"read-resource","id":"62716d7875657262","timestamp":96638657421,"duration":9725,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766a323232366471","name":"build-module-js","id":"3575736f61676768","timestamp":96638657392,"duration":13376,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\scheduler\\cjs\\scheduler.development.js"}},{"traceId":"a40c92b03843b256","parentId":"6d3639796b7a626e","name":"read-resource","id":"6a72666371327177","timestamp":96638662268,"duration":11055,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b3266636c70746b","name":"build-module-js","id":"6d3639796b7a626e","timestamp":96638662184,"duration":14123,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\stacktrace-parser\\dist\\stack-trace-parser.esm.js"}}] +[{"traceId":"a40c92b03843b256","parentId":"74623536306b3664","name":"read-resource","id":"73616234636f636e","timestamp":96638664132,"duration":12473,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"743639726d6b6d33","name":"build-module-js","id":"74623536306b3664","timestamp":96638664047,"duration":15049,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\styled-jsx\\dist\\lib\\stylesheet.js"}},{"traceId":"a40c92b03843b256","parentId":"7a36703334653232","name":"read-resource","id":"337a737179737876","timestamp":96638664192,"duration":14968,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"743639726d6b6d33","name":"build-module-js","id":"7a36703334653232","timestamp":96638664165,"duration":15824,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\styled-jsx\\dist\\lib\\hash.js"}},{"traceId":"a40c92b03843b256","parentId":"6b7674766e627335","name":"read-resource","id":"776f746835786c6b","timestamp":96638673004,"duration":10286,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c70613272383965","name":"build-module-js","id":"6b7674766e627335","timestamp":96638672917,"duration":11293,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Terminal\\Terminal.js"}},{"traceId":"a40c92b03843b256","parentId":"656d356a6f763032","name":"read-resource","id":"6c676970776a396b","timestamp":96638673118,"duration":11685,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"63643536766a7666","name":"build-module-js","id":"656d356a6f763032","timestamp":96638673087,"duration":13225,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Overlay\\Overlay.js"}},{"traceId":"a40c92b03843b256","parentId":"6665646569733731","name":"read-resource","id":"347075766262326e","timestamp":96638673069,"duration":13320,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7735377335336962","name":"build-module-js","id":"6665646569733731","timestamp":96638673033,"duration":15323,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\LeftRightDialogHeader\\LeftRightDialogHeader.js"}},{"traceId":"a40c92b03843b256","parentId":"676e337971357a33","name":"read-resource","id":"343736377a667537","timestamp":96638682374,"duration":7684,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"31776d336a727867","name":"build-module-js","id":"676e337971357a33","timestamp":96638682307,"duration":8517,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\CodeFrame\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"696b753174617467","name":"read-resource","id":"70626c7764647671","timestamp":96638682444,"duration":8518,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d6c706736653977","name":"build-module-js","id":"696b753174617467","timestamp":96638682417,"duration":9754,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Dialog\\Dialog.js"}},{"traceId":"a40c92b03843b256","parentId":"6a6e32776a646a30","name":"read-resource","id":"34336e6930687572","timestamp":96638682527,"duration":9695,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d6c706736653977","name":"build-module-js","id":"6a6e32776a646a30","timestamp":96638682461,"duration":10374,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Dialog\\DialogBody.js"}},{"traceId":"a40c92b03843b256","parentId":"626338726e307932","name":"read-resource","id":"726238337770747a","timestamp":96638682645,"duration":10227,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7561636a63356834","name":"build-module-js","id":"626338726e307932","timestamp":96638682618,"duration":10634,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Toast\\styles.js"}},{"traceId":"a40c92b03843b256","parentId":"7177306831796f32","name":"read-resource","id":"38716b7438766f66","timestamp":96638682739,"duration":10539,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d6c706736653977","name":"build-module-js","id":"7177306831796f32","timestamp":96638682701,"duration":11052,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Dialog\\DialogContent.js"}},{"traceId":"a40c92b03843b256","parentId":"7a6c7a756e736774","name":"read-resource","id":"38676b3061777a77","timestamp":96638682601,"duration":11176,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d6c706736653977","name":"build-module-js","id":"7a6c7a756e736774","timestamp":96638682551,"duration":11571,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Dialog\\styles.js"}},{"traceId":"a40c92b03843b256","parentId":"76796f6c62626c6a","name":"read-resource","id":"71686b306c33366e","timestamp":96638682683,"duration":11462,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d6c706736653977","name":"build-module-js","id":"76796f6c62626c6a","timestamp":96638682661,"duration":11950,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Dialog\\DialogHeader.js"}},{"traceId":"a40c92b03843b256","parentId":"6667767833633362","name":"read-resource","id":"6172317767397369","timestamp":96638683172,"duration":15631,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7561636a63356834","name":"build-module-js","id":"6667767833633362","timestamp":96638683100,"duration":16432,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Toast\\Toast.js"}},{"traceId":"a40c92b03843b256","parentId":"7431636632723268","name":"read-resource","id":"30396a3474787734","timestamp":96638702263,"duration":1703,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"656d356a6f763032","name":"build-module-js","id":"7431636632723268","timestamp":96638702222,"duration":2292,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Overlay\\body-locker.js"}},{"traceId":"a40c92b03843b256","parentId":"7a6f32636b6c6a6c","name":"read-resource","id":"34317a366675667a","timestamp":96638702550,"duration":2006,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"676e337971357a33","name":"build-module-js","id":"7a6f32636b6c6a6c","timestamp":96638702307,"duration":3818,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\CodeFrame\\CodeFrame.js"}},{"traceId":"a40c92b03843b256","parentId":"673562696a34346f","name":"read-resource","id":"7461303972736435","timestamp":96638702184,"duration":5117,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"656d356a6f763032","name":"build-module-js","id":"673562696a34346f","timestamp":96638702067,"duration":23951,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Overlay\\maintain--tab-focus.js"}},{"traceId":"a40c92b03843b256","parentId":"31656c306e617330","name":"read-resource","id":"6c6a316338386939","timestamp":96638703797,"duration":23892,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"696b753174617467","name":"build-module-js","id":"31656c306e617330","timestamp":96638703680,"duration":24684,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\hooks\\use-on-click-outside.js"}},{"traceId":"a40c92b03843b256","parentId":"627a696f62766775","name":"read-resource","id":"786372326f6f6168","timestamp":96638732492,"duration":1518,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"74623536306b3664","name":"build-module-js","id":"627a696f62766775","timestamp":96638732383,"duration":2501,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\process\\browser.js"}},{"traceId":"a40c92b03843b256","parentId":"326232783868316c","name":"read-resource","id":"6e6d79646a306964","timestamp":96638732807,"duration":2407,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a36703334653232","name":"build-module-js","id":"326232783868316c","timestamp":96638732756,"duration":3236,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\string-hash\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"356836757668636f","name":"read-resource","id":"686b6f6539376f33","timestamp":96638733986,"duration":3362,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b7674766e627335","name":"build-module-js","id":"356836757668636f","timestamp":96638733898,"duration":6108,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\anser\\lib\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"3530367466746d34","name":"read-resource","id":"777a6973726a3237","timestamp":96638742399,"duration":912,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"673562696a34346f","name":"build-module-js","id":"3530367466746d34","timestamp":96638742296,"duration":10531,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\platform\\platform.js"}},{"traceId":"a40c92b03843b256","parentId":"6a3365786d6c746d","name":"read-resource","id":"796e7669316a346c","timestamp":96638742933,"duration":12664,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"673562696a34346f","name":"build-module-js","id":"6a3365786d6c746d","timestamp":96638742854,"duration":13840,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\css.escape\\css.escape.js"}},{"traceId":"a40c92b03843b256","parentId":"6b6d3431396c796d","name":"read-resource","id":"7a69356431637578","timestamp":96638743174,"duration":13679,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3477637031646b77","name":"get-options","id":"6c63656a65676175","timestamp":96638756890,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"366833747a367366","name":"babel-turbo-get-config","id":"3767366b77616d6a","timestamp":96638756926,"duration":10,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"366833747a367366","name":"babel-turbo-normalize-file","id":"3677676a72746b74","timestamp":96638756941,"duration":489,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f79653230367939","name":"babel-turbo-traverse","id":"6933636e6f617330","timestamp":96638758034,"duration":902,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"366833747a367366","name":"babel-turbo-transform","id":"6f79653230367939","timestamp":96638757443,"duration":1515,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"366833747a367366","name":"babel-turbo-generate","id":"6135757266377538","timestamp":96638758976,"duration":289,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3477637031646b77","name":"next-babel-turbo-transform","id":"366833747a367366","timestamp":96638756900,"duration":2369,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b6d3431396c796d","name":"next-babel-turbo-loader","id":"3477637031646b77","timestamp":96638756884,"duration":2402,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6f32636b6c6a6c","name":"build-module-js","id":"6b6d3431396c796d","timestamp":96638743070,"duration":17060,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\strip-ansi\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"3467746963696331","name":"read-resource","id":"397567307a626134","timestamp":96638763536,"duration":321,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6132673436673361","name":"get-options","id":"366b7a6962396978","timestamp":96638763894,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e346f796c723073","name":"babel-turbo-get-config","id":"33306a68766a7039","timestamp":96638763909,"duration":10,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e346f796c723073","name":"babel-turbo-normalize-file","id":"6e6a6e31736c6867","timestamp":96638763924,"duration":658,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"78777773686a7072","name":"babel-turbo-traverse","id":"74653865337a3274","timestamp":96638765296,"duration":2379,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e346f796c723073","name":"babel-turbo-transform","id":"78777773686a7072","timestamp":96638764595,"duration":3109,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e346f796c723073","name":"babel-turbo-generate","id":"3538753331717069","timestamp":96638767730,"duration":479,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6132673436673361","name":"next-babel-turbo-transform","id":"6e346f796c723073","timestamp":96638763905,"duration":4309,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3467746963696331","name":"next-babel-turbo-loader","id":"6132673436673361","timestamp":96638763889,"duration":4346,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b6d3431396c796d","name":"build-module-js","id":"3467746963696331","timestamp":96638763447,"duration":5893,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\ansi-regex\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"6271306968623737","name":"add-entry","id":"3972687378313835","timestamp":96634731329,"duration":4038212,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"make","id":"747678686e37316c","timestamp":96634728580,"duration":4041483,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6271306968623737","name":"webpack-compilation-chunk-graph","id":"666c346667686574","timestamp":96638776539,"duration":7759,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6271306968623737","name":"webpack-compilation-optimize-modules","id":"6b307639686a3168","timestamp":96638784425,"duration":172,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6271306968623737","name":"webpack-compilation-optimize-chunks","id":"763761676b336c35","timestamp":96638784683,"duration":391,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6271306968623737","name":"webpack-compilation-optimize-tree","id":"6f6e317630756834","timestamp":96638785147,"duration":130,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6271306968623737","name":"webpack-compilation-optimize","id":"7330706f3372716c","timestamp":96638784374,"duration":1237,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6271306968623737","name":"webpack-compilation-hash","id":"6f71776a78686b75","timestamp":96638819382,"duration":20582,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6271306968623737","name":"NextJsBuildManifest-generateClientManifest","id":"3338703074787a79","timestamp":96639126803,"duration":782,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6271306968623737","name":"NextJsBuildManifest-createassets","id":"6b38666668773738","timestamp":96639126019,"duration":1595,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6271306968623737","name":"webpack-compilation-seal","id":"69306c6377706439","timestamp":96638775493,"duration":353610,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-compilation","id":"6271306968623737","timestamp":96634717417,"duration":4412121,"tags":{"name":"client"}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"emit","id":"617831666c783573","timestamp":96639130135,"duration":66897,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6367383771693979","name":"read-resource","id":"67736e6f74616c32","timestamp":96639234253,"duration":453,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"367931767273756a","name":"get-options","id":"376d656a32386f32","timestamp":96639234774,"duration":7,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6863333062386f37","name":"babel-turbo-get-config","id":"76727a3937673534","timestamp":96639234790,"duration":9170,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6863333062386f37","name":"babel-turbo-normalize-file","id":"78316276316f3575","timestamp":96639243992,"duration":2147,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6e32756a30306f","name":"babel-turbo-traverse","id":"3177713863396138","timestamp":96639246459,"duration":16004,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6863333062386f37","name":"babel-turbo-transform","id":"7a6e32756a30306f","timestamp":96639246186,"duration":16302,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6863333062386f37","name":"babel-turbo-generate","id":"726c6b3561307973","timestamp":96639262524,"duration":8262,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"367931767273756a","name":"next-babel-turbo-transform","id":"6863333062386f37","timestamp":96639234786,"duration":36014,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6367383771693979","name":"next-babel-turbo-loader","id":"367931767273756a","timestamp":96639234768,"duration":36057,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"797a396630677535","name":"read-resource","id":"3770636674796a75","timestamp":96639234434,"duration":41812,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"727166376e666a71","name":"get-options","id":"6b6e77307075796a","timestamp":96639276288,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7938367062653861","name":"babel-turbo-get-config","id":"366b7a6d746e6536","timestamp":96639276300,"duration":2044,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7938367062653861","name":"babel-turbo-normalize-file","id":"3533703864327a33","timestamp":96639278381,"duration":3235,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79377164636b7137","name":"babel-turbo-traverse","id":"306130626d6c777a","timestamp":96639282085,"duration":3297,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7938367062653861","name":"babel-turbo-transform","id":"79377164636b7137","timestamp":96639281663,"duration":3754,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7938367062653861","name":"babel-turbo-generate","id":"767775336d6b7771","timestamp":96639285463,"duration":2960,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"727166376e666a71","name":"next-babel-turbo-transform","id":"7938367062653861","timestamp":96639276296,"duration":12141,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"797a396630677535","name":"next-babel-turbo-loader","id":"727166376e666a71","timestamp":96639276282,"duration":12179,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a306e363536686a","name":"read-resource","id":"7135637579696464","timestamp":96639234379,"duration":59999,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c7a39656862326e","name":"get-options","id":"3065373636627a72","timestamp":96639294429,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"36377a3679716c70","name":"babel-turbo-get-config","id":"6174667766793864","timestamp":96639294445,"duration":19,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"36377a3679716c70","name":"babel-turbo-normalize-file","id":"6335307278653268","timestamp":96639294469,"duration":1846,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3230346832727364","name":"babel-turbo-traverse","id":"7334796b386d6139","timestamp":96639296584,"duration":12035,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"36377a3679716c70","name":"babel-turbo-transform","id":"3230346832727364","timestamp":96639296352,"duration":12291,"tags":{}}] +[{"traceId":"a40c92b03843b256","parentId":"36377a3679716c70","name":"babel-turbo-generate","id":"72356770726c7565","timestamp":96639309001,"duration":2474,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c7a39656862326e","name":"next-babel-turbo-transform","id":"36377a3679716c70","timestamp":96639294441,"duration":17048,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a306e363536686a","name":"next-babel-turbo-loader","id":"6c7a39656862326e","timestamp":96639294422,"duration":17092,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6f366d786f686a","name":"build-module-js","id":"6367383771693979","timestamp":96639233556,"duration":85412,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\pages\\_app.js"}},{"traceId":"a40c92b03843b256","parentId":"7a6f366d786f686a","name":"build-module-js","id":"797a396630677535","timestamp":96639234400,"duration":84666,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\pages\\_error.js"}},{"traceId":"a40c92b03843b256","parentId":"7a6f366d786f686a","name":"build-module-js","id":"7a306e363536686a","timestamp":96639234331,"duration":84745,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\pages\\_document.js"}},{"traceId":"a40c92b03843b256","parentId":"6438746a6e737773","name":"read-resource","id":"7164686834686265","timestamp":96639327879,"duration":8360,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a306e363536686a","name":"build-module-js","id":"6438746a6e737773","timestamp":96639327782,"duration":8943,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\document.js"}},{"traceId":"a40c92b03843b256","parentId":"7a6f366d786f686a","name":"add-entry","id":"7a74366e34786c79","timestamp":96639216860,"duration":120112,"tags":{"request":"private-next-pages/_error"}},{"traceId":"a40c92b03843b256","parentId":"6963657a6872677a","name":"read-resource","id":"696f616e396d6b35","timestamp":96639343191,"duration":2291,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a35636373327764","name":"get-options","id":"706772656d306d30","timestamp":96639345535,"duration":10,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"676f773061633233","name":"babel-turbo-get-config","id":"6169623261387332","timestamp":96639345553,"duration":21,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"676f773061633233","name":"babel-turbo-normalize-file","id":"7936303738333866","timestamp":96639345578,"duration":16787,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e637466656f336d","name":"babel-turbo-traverse","id":"387972727665756b","timestamp":96639362666,"duration":48664,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"676f773061633233","name":"babel-turbo-transform","id":"6e637466656f336d","timestamp":96639362421,"duration":48931,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"676f773061633233","name":"babel-turbo-generate","id":"6275726c31353876","timestamp":96639411376,"duration":26612,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a35636373327764","name":"next-babel-turbo-transform","id":"676f773061633233","timestamp":96639345549,"duration":92455,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6963657a6872677a","name":"next-babel-turbo-loader","id":"6a35636373327764","timestamp":96639345529,"duration":92502,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6438746a6e737773","name":"build-module-js","id":"6963657a6872677a","timestamp":96639343040,"duration":113863,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\pages\\_document.js"}},{"traceId":"a40c92b03843b256","parentId":"3767356631797433","name":"read-resource","id":"77797378626e396a","timestamp":96639345121,"duration":113021,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6367383771693979","name":"build-module-css","id":"3767356631797433","timestamp":96639345048,"duration":113418,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\styles\\preloader.css"}},{"traceId":"a40c92b03843b256","parentId":"33796f656d68356b","name":"read-resource","id":"766d6b78696d3663","timestamp":96639344988,"duration":113516,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6367383771693979","name":"build-module-scss","id":"33796f656d68356b","timestamp":96639343980,"duration":114614,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\styles\\main.scss"}},{"traceId":"a40c92b03843b256","parentId":"6b686533386a3365","name":"read-resource","id":"6969316a7778366a","timestamp":96639461624,"duration":1121,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7236716e6e776339","name":"get-options","id":"3238357061736361","timestamp":96639462784,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e69773336663638","name":"babel-turbo-get-config","id":"6b74783837623131","timestamp":96639462798,"duration":2120,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e69773336663638","name":"babel-turbo-normalize-file","id":"7672727472353269","timestamp":96639465002,"duration":1321,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6975736831646136","name":"babel-turbo-traverse","id":"366c356b67327932","timestamp":96639466600,"duration":6563,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e69773336663638","name":"babel-turbo-transform","id":"6975736831646136","timestamp":96639466356,"duration":6827,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e69773336663638","name":"babel-turbo-generate","id":"387162626f6a6b6d","timestamp":96639473206,"duration":3101,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7236716e6e776339","name":"next-babel-turbo-transform","id":"6e69773336663638","timestamp":96639462794,"duration":13525,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b686533386a3365","name":"next-babel-turbo-loader","id":"7236716e6e776339","timestamp":96639462779,"duration":13564,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6367383771693979","name":"build-module-jsx","id":"6b686533386a3365","timestamp":96639461583,"duration":16237,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Loading-Screen\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"67696c6a36713676","name":"read-resource","id":"6266613336673567","timestamp":96639461683,"duration":16232,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c716a626b336d39","name":"get-options","id":"78316a3762776579","timestamp":96639477956,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"363733357933376d","name":"babel-turbo-get-config","id":"713437616962726d","timestamp":96639477968,"duration":12,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"363733357933376d","name":"babel-turbo-normalize-file","id":"7271777961786c67","timestamp":96639477983,"duration":648,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3132763137713163","name":"babel-turbo-traverse","id":"77777171766b306b","timestamp":96639478956,"duration":1423,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"363733357933376d","name":"babel-turbo-transform","id":"3132763137713163","timestamp":96639478675,"duration":1719,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"363733357933376d","name":"babel-turbo-generate","id":"6b68613866397565","timestamp":96639480406,"duration":421,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c716a626b336d39","name":"next-babel-turbo-transform","id":"363733357933376d","timestamp":96639477965,"duration":2868,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"67696c6a36713676","name":"next-babel-turbo-loader","id":"6c716a626b336d39","timestamp":96639477952,"duration":2904,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6367383771693979","name":"build-module-jsx","id":"67696c6a36713676","timestamp":96639461645,"duration":19958,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\cursor\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"7963667977337765","name":"read-resource","id":"6168306a726f6d63","timestamp":96639461542,"duration":20702,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b7830336f6e6b6d","name":"get-options","id":"7668677336717565","timestamp":96639482289,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79396c6a32306368","name":"babel-turbo-get-config","id":"3862306976773466","timestamp":96639482300,"duration":10,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79396c6a32306368","name":"babel-turbo-normalize-file","id":"33386a6d7538376f","timestamp":96639482314,"duration":667,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"357765756f68786c","name":"babel-turbo-traverse","id":"7a6c32626d66746f","timestamp":96639483213,"duration":1749,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79396c6a32306368","name":"babel-turbo-transform","id":"357765756f68786c","timestamp":96639483009,"duration":1972,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79396c6a32306368","name":"babel-turbo-generate","id":"32326b3763306377","timestamp":96639485002,"duration":653,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b7830336f6e6b6d","name":"next-babel-turbo-transform","id":"79396c6a32306368","timestamp":96639482297,"duration":3371,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7963667977337765","name":"next-babel-turbo-loader","id":"6b7830336f6e6b6d","timestamp":96639482284,"duration":3410,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6367383771693979","name":"build-module-jsx","id":"7963667977337765","timestamp":96639461447,"duration":25766,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\scrollToTop\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"32336f7634346a69","name":"read-resource","id":"6d6c733069703572","timestamp":96639462418,"duration":24912,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6963657a6872677a","name":"build-module-js","id":"32336f7634346a69","timestamp":96639462390,"duration":26009,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\lib\\pretty-bytes.js"}},{"traceId":"a40c92b03843b256","parentId":"7971757637766e33","name":"read-resource","id":"7231693035756632","timestamp":96639462359,"duration":26632,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6963657a6872677a","name":"build-module-js","id":"7971757637766e33","timestamp":96639462292,"duration":27313,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\lib\\is-error.js"}},{"traceId":"a40c92b03843b256","parentId":"376266376a327033","name":"read-resource","id":"3135733331666c37","timestamp":96639462651,"duration":27349,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"61393968656a646a","name":"get-options","id":"6531636330656f33","timestamp":96639490062,"duration":8,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6264647933376878","name":"babel-turbo-get-config","id":"66306e6d6d777566","timestamp":96639490210,"duration":19,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6264647933376878","name":"babel-turbo-normalize-file","id":"37763636676b7539","timestamp":96639490235,"duration":5296,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"763970766e797237","name":"babel-turbo-traverse","id":"6a6f686e6a306937","timestamp":96639495786,"duration":7313,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6264647933376878","name":"babel-turbo-transform","id":"763970766e797237","timestamp":96639495572,"duration":7547,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6264647933376878","name":"babel-turbo-generate","id":"733239346539336e","timestamp":96639503144,"duration":4240,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"61393968656a646a","name":"next-babel-turbo-transform","id":"6264647933376878","timestamp":96639490203,"duration":17193,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"376266376a327033","name":"next-babel-turbo-loader","id":"61393968656a646a","timestamp":96639490053,"duration":17365,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6963657a6872677a","name":"build-module-js","id":"376266376a327033","timestamp":96639462586,"duration":48540,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\script.js"}},{"traceId":"a40c92b03843b256","parentId":"6b716a6b6d737930","name":"read-resource","id":"75756d7132707239","timestamp":96639518649,"duration":2487,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b686533386a3365","name":"build-module-json","id":"6b716a6b6d737930","timestamp":96639518574,"duration":2743,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\data\\app.json"}},{"traceId":"a40c92b03843b256","parentId":"7a393372387a3168","name":"read-resource","id":"6e76783879716279","timestamp":96639519649,"duration":1818,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7169786d71636466","name":"get-options","id":"336476386f326a32","timestamp":96639521498,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"63657a7169347a78","name":"babel-turbo-get-config","id":"3162727975643971","timestamp":96639521509,"duration":12,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"63657a7169347a78","name":"babel-turbo-normalize-file","id":"72326b36376b7164","timestamp":96639521524,"duration":1198,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"336f6731386c7666","name":"babel-turbo-traverse","id":"69646b377a306c79","timestamp":96639523030,"duration":1115,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"63657a7169347a78","name":"babel-turbo-transform","id":"336f6731386c7666","timestamp":96639522753,"duration":1413,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"63657a7169347a78","name":"babel-turbo-generate","id":"617066786e396c30","timestamp":96639524192,"duration":746,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7169786d71636466","name":"next-babel-turbo-transform","id":"63657a7169347a78","timestamp":96639521506,"duration":3441,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a393372387a3168","name":"next-babel-turbo-loader","id":"7169786d71636466","timestamp":96639521493,"duration":3477,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"376266376a327033","name":"build-module-js","id":"7a393372387a3168","timestamp":96639519433,"duration":6407,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\request-idle-callback.js"}},{"traceId":"a40c92b03843b256","parentId":"63347875626b766d","name":"read-resource","id":"686173356d657a70","timestamp":96639519883,"duration":6148,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"68387a747a6d6e38","name":"get-options","id":"6672787576613265","timestamp":96639526082,"duration":7,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7064637130673561","name":"babel-turbo-get-config","id":"64336e34356b3875","timestamp":96639526095,"duration":14,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7064637130673561","name":"babel-turbo-normalize-file","id":"3162683063683033","timestamp":96639526112,"duration":3752,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"726562656d757831","name":"babel-turbo-traverse","id":"366878316d676a73","timestamp":96639530112,"duration":5589,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7064637130673561","name":"babel-turbo-transform","id":"726562656d757831","timestamp":96639529903,"duration":5817,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7064637130673561","name":"babel-turbo-generate","id":"6332376e6b7a7a6a","timestamp":96639535743,"duration":3223,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"68387a747a6d6e38","name":"next-babel-turbo-transform","id":"7064637130673561","timestamp":96639526092,"duration":12886,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"63347875626b766d","name":"next-babel-turbo-loader","id":"68387a747a6d6e38","timestamp":96639526076,"duration":12928,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"376266376a327033","name":"build-module-js","id":"63347875626b766d","timestamp":96639519827,"duration":21462,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\head-manager.js"}},{"traceId":"a40c92b03843b256","parentId":"7a6f366d786f686a","name":"add-entry","id":"737464786238386e","timestamp":96639216729,"duration":324653,"tags":{"request":"private-next-pages/_document"}},{"traceId":"a40c92b03843b256","parentId":"6f35676274746570","name":"read-resource","id":"6639793672783772","timestamp":96639521060,"duration":20516,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3869786865627175","name":"get-options","id":"7637306966796377","timestamp":96639541668,"duration":9,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"796e626d30776b6a","name":"babel-turbo-get-config","id":"643036386b697175","timestamp":96639541691,"duration":2053,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"796e626d30776b6a","name":"babel-turbo-normalize-file","id":"383965646d666832","timestamp":96639543773,"duration":1249,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3371777a3368676e","name":"babel-turbo-traverse","id":"61357074636b6c38","timestamp":96639545227,"duration":1818,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"796e626d30776b6a","name":"babel-turbo-transform","id":"3371777a3368676e","timestamp":96639545044,"duration":2016,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"796e626d30776b6a","name":"babel-turbo-generate","id":"6475347377797539","timestamp":96639547077,"duration":1038,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3869786865627175","name":"next-babel-turbo-transform","id":"796e626d30776b6a","timestamp":96639541685,"duration":6440,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f35676274746570","name":"next-babel-turbo-loader","id":"3869786865627175","timestamp":96639541658,"duration":6494,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"67696c6a36713676","name":"build-module-js","id":"6f35676274746570","timestamp":96639521019,"duration":28135,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\common\\mouseEffect.js"}},{"traceId":"a40c92b03843b256","parentId":"7232686a71633030","name":"read-resource","id":"7a6578677a646970","timestamp":96639520986,"duration":28229,"tags":{}}] +[{"traceId":"a40c92b03843b256","parentId":"6262336563396762","name":"get-options","id":"383164397a317976","timestamp":96639549478,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"32346a3668646538","name":"babel-turbo-get-config","id":"3566697439776978","timestamp":96639549491,"duration":12,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"32346a3668646538","name":"babel-turbo-normalize-file","id":"6778693738366431","timestamp":96639549506,"duration":1111,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"336a74343366386d","name":"babel-turbo-traverse","id":"6d72776c6470656c","timestamp":96639550899,"duration":5179,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"32346a3668646538","name":"babel-turbo-transform","id":"336a74343366386d","timestamp":96639550642,"duration":5460,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"32346a3668646538","name":"babel-turbo-generate","id":"6337636479736732","timestamp":96639556137,"duration":831,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6262336563396762","name":"next-babel-turbo-transform","id":"32346a3668646538","timestamp":96639549488,"duration":7489,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7232686a71633030","name":"next-babel-turbo-loader","id":"6262336563396762","timestamp":96639549446,"duration":7551,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7963667977337765","name":"build-module-js","id":"7232686a71633030","timestamp":96639520891,"duration":37144,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\common\\scrollToTop.js"}},{"traceId":"a40c92b03843b256","parentId":"687664666a766d36","name":"read-resource","id":"6167336e66677235","timestamp":96639521108,"duration":36996,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"36786567736e6567","name":"get-options","id":"3776336c316c3933","timestamp":96639558144,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"736d356b696c6c6a","name":"babel-turbo-get-config","id":"61347a32726d326e","timestamp":96639558157,"duration":14,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"736d356b696c6c6a","name":"babel-turbo-normalize-file","id":"6a6571347334337a","timestamp":96639558175,"duration":1163,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"776871736f356d6d","name":"babel-turbo-traverse","id":"626f7a6b7a673264","timestamp":96639559581,"duration":1172,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"736d356b696c6c6a","name":"babel-turbo-transform","id":"776871736f356d6d","timestamp":96639559376,"duration":1400,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"736d356b696c6c6a","name":"babel-turbo-generate","id":"386a71666b753832","timestamp":96639560798,"duration":595,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"36786567736e6567","name":"next-babel-turbo-transform","id":"736d356b696c6c6a","timestamp":96639558154,"duration":3245,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"687664666a766d36","name":"next-babel-turbo-loader","id":"36786567736e6567","timestamp":96639558138,"duration":3289,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b686533386a3365","name":"build-module-js","id":"687664666a766d36","timestamp":96639521078,"duration":41466,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\common\\loadingPace.js"}},{"traceId":"a40c92b03843b256","parentId":"7a6f366d786f686a","name":"add-entry","id":"7565697735656169","timestamp":96639216577,"duration":346064,"tags":{"request":"private-next-pages/_app"}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"make","id":"77776d736262686c","timestamp":96639206096,"duration":356778,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6f366d786f686a","name":"webpack-compilation-chunk-graph","id":"7a78317434746569","timestamp":96639563977,"duration":843,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6f366d786f686a","name":"webpack-compilation-optimize-modules","id":"7778323766693979","timestamp":96639564882,"duration":95,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6f366d786f686a","name":"webpack-compilation-optimize-chunks","id":"696f36616b6f716e","timestamp":96639565051,"duration":373,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6f366d786f686a","name":"webpack-compilation-optimize-tree","id":"796b6175766f7368","timestamp":96639565498,"duration":26,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6f366d786f686a","name":"webpack-compilation-optimize","id":"38666c306d657077","timestamp":96639564858,"duration":787,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6f366d786f686a","name":"webpack-compilation-hash","id":"6b33336a6f6b3174","timestamp":96639571700,"duration":2174,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6f366d786f686a","name":"webpack-compilation-seal","id":"6731676964347176","timestamp":96639563863,"duration":19607,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-compilation","id":"7a6f366d786f686a","timestamp":96639205234,"duration":378408,"tags":{"name":"server"}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"emit","id":"6e727930316b7a32","timestamp":96639583735,"duration":8100,"tags":{}}] +[{"traceId":"a40c92b03843b256","parentId":"62737430736e3739","name":"add-entry","id":"696d6d3468667832","timestamp":96640774449,"duration":33530,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"62737430736e3739","name":"add-entry","id":"6d6332366e643367","timestamp":96640774818,"duration":35898,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=private-next-pages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"62737430736e3739","name":"add-entry","id":"776b6e716331776f","timestamp":96640774657,"duration":36583,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"62737430736e3739","name":"add-entry","id":"7479376477626371","timestamp":96640774562,"duration":38535,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"}},{"traceId":"a40c92b03843b256","parentId":"62737430736e3739","name":"add-entry","id":"6d36333832783178","timestamp":96640774621,"duration":38675,"tags":{"request":"next-client-pages-loader?page=%2F_app&absolutePagePath=private-next-pages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"62737430736e3739","name":"add-entry","id":"3335723535317465","timestamp":96640774601,"duration":53662,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"6938776e7161776c","name":"next-client-pages-loader","id":"3939667473657175","timestamp":96642186572,"duration":543,"tags":{"absolutePagePath":"C:\\Users\\hp\\Desktop\\business-hub\\src\\pages\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"62737430736e3739","name":"build-module-jsx!","id":"6938776e7161776c","timestamp":96642186149,"duration":2731,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-client-pages-loader.js?page=%2F&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"6f39623872656d36","name":"read-resource","id":"626134376274706a","timestamp":96642190951,"duration":503,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"306269316a307077","name":"get-options","id":"6f61343775756334","timestamp":96642191514,"duration":8,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"667a393074666b74","name":"babel-turbo-get-config","id":"6532613031653266","timestamp":96642191529,"duration":3739,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"667a393074666b74","name":"babel-turbo-normalize-file","id":"7436727a67656375","timestamp":96642195311,"duration":1256,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"347776796f35386c","name":"babel-turbo-traverse","id":"616d666e7562747a","timestamp":96642197361,"duration":4733,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"667a393074666b74","name":"babel-turbo-transform","id":"347776796f35386c","timestamp":96642196605,"duration":5561,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"667a393074666b74","name":"babel-turbo-generate","id":"74746f6439367630","timestamp":96642202197,"duration":624,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"306269316a307077","name":"next-babel-turbo-transform","id":"667a393074666b74","timestamp":96642191526,"duration":11303,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f39623872656d36","name":"next-babel-turbo-loader","id":"306269316a307077","timestamp":96642191509,"duration":11342,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6938776e7161776c","name":"build-module-jsx","id":"6f39623872656d36","timestamp":96642190652,"duration":14624,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\pages\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"34707a376d686971","name":"read-resource","id":"7866756232697330","timestamp":96642207862,"duration":394,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7867637965766f37","name":"get-options","id":"3279723965656d76","timestamp":96642208309,"duration":12,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"33396e6d6b617a78","name":"babel-turbo-get-config","id":"6571337a39317732","timestamp":96642208328,"duration":25,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"33396e6d6b617a78","name":"babel-turbo-normalize-file","id":"676232727a616f35","timestamp":96642208356,"duration":35497,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"657a713439656c6e","name":"babel-turbo-traverse","id":"6a717a6131613067","timestamp":96642244430,"duration":1234606,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"33396e6d6b617a78","name":"babel-turbo-transform","id":"657a713439656c6e","timestamp":96642243914,"duration":1235216,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"33396e6d6b617a78","name":"babel-turbo-generate","id":"6e646f6b77736a6d","timestamp":96643479179,"duration":78667,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7867637965766f37","name":"next-babel-turbo-transform","id":"33396e6d6b617a78","timestamp":96642208325,"duration":1349546,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"34707a376d686971","name":"next-babel-turbo-loader","id":"7867637965766f37","timestamp":96642208304,"duration":1349599,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f39623872656d36","name":"build-module-jsx","id":"34707a376d686971","timestamp":96642207755,"duration":1390983,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\pages\\demos\\demos.jsx"}},{"traceId":"a40c92b03843b256","parentId":"30363674336c6232","name":"read-resource","id":"303639786f366936","timestamp":96643610035,"duration":2346,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"34707a376d686971","name":"build-module-js","id":"30363674336c6232","timestamp":96643610006,"duration":2835,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\link.js"}},{"traceId":"a40c92b03843b256","parentId":"31646a396f63346e","name":"read-resource","id":"6d75356e35653038","timestamp":96643610076,"duration":2808,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"34707a376d686971","name":"build-module-js","id":"31646a396f63346e","timestamp":96643610050,"duration":2975,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\styled-jsx\\style.js"}},{"traceId":"a40c92b03843b256","parentId":"7a79776578717337","name":"read-resource","id":"79387a6369396c75","timestamp":96643609978,"duration":3163,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"34707a376d686971","name":"build-module-js","id":"7a79776578717337","timestamp":96643609868,"duration":4239,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\esm\\slicedToArray.js"}},{"traceId":"a40c92b03843b256","parentId":"6a6a367132786137","name":"read-resource","id":"61643031646e7a78","timestamp":96643610861,"duration":5662,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b33703679616a68","name":"get-options","id":"766d6137627a6f77","timestamp":96643616614,"duration":19,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3666656137717931","name":"babel-turbo-get-config","id":"3363337436366b6f","timestamp":96643616641,"duration":18,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3666656137717931","name":"babel-turbo-normalize-file","id":"7670397438683532","timestamp":96643616663,"duration":3251,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7274696463357033","name":"babel-turbo-traverse","id":"7237623869617066","timestamp":96643620474,"duration":4856,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3666656137717931","name":"babel-turbo-transform","id":"7274696463357033","timestamp":96643619959,"duration":5412,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3666656137717931","name":"babel-turbo-generate","id":"6e39326e666a7a33","timestamp":96643625402,"duration":1020,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b33703679616a68","name":"next-babel-turbo-transform","id":"3666656137717931","timestamp":96643616638,"duration":9792,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a6a367132786137","name":"next-babel-turbo-loader","id":"6b33703679616a68","timestamp":96643616608,"duration":9847,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"34707a376d686971","name":"build-module-js","id":"6a6a367132786137","timestamp":96643610723,"duration":17529,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\common\\initIsotope.js"}},{"traceId":"a40c92b03843b256","parentId":"627666756a73706b","name":"read-resource","id":"3178617276663134","timestamp":96643612207,"duration":20264,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"327677346962696e","name":"get-options","id":"7176626c7039326a","timestamp":96643632572,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"616467723030326d","name":"babel-turbo-get-config","id":"6432707434637866","timestamp":96643632587,"duration":21,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"616467723030326d","name":"babel-turbo-normalize-file","id":"316c7235747a3439","timestamp":96643632614,"duration":2887,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d73736833763679","name":"babel-turbo-traverse","id":"76763973397a6970","timestamp":96643636203,"duration":2700,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"616467723030326d","name":"babel-turbo-transform","id":"6d73736833763679","timestamp":96643635569,"duration":3378,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"616467723030326d","name":"babel-turbo-generate","id":"3137316339637168","timestamp":96643638985,"duration":1364,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"327677346962696e","name":"next-babel-turbo-transform","id":"616467723030326d","timestamp":96643632583,"duration":7783,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"627666756a73706b","name":"next-babel-turbo-loader","id":"327677346962696e","timestamp":96643632563,"duration":7829,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"34707a376d686971","name":"build-module-js","id":"627666756a73706b","timestamp":96643612032,"duration":29677,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\config\\particle-config.js"}},{"traceId":"a40c92b03843b256","parentId":"75677034716f7669","name":"read-resource","id":"656d6438347a346b","timestamp":96643614801,"duration":26976,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7572316b7165636f","name":"get-options","id":"6463393561363364","timestamp":96643641825,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"77377a7a6f337565","name":"babel-turbo-get-config","id":"74647931676e3868","timestamp":96643641836,"duration":19,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"77377a7a6f337565","name":"babel-turbo-normalize-file","id":"756363766f6a3768","timestamp":96643641858,"duration":1049,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b6a6c67646a7679","name":"babel-turbo-traverse","id":"6f33633670723069","timestamp":96643643351,"duration":7623,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"77377a7a6f337565","name":"babel-turbo-transform","id":"6b6a6c67646a7679","timestamp":96643642943,"duration":8070,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"77377a7a6f337565","name":"babel-turbo-generate","id":"3732736e32776d77","timestamp":96643651042,"duration":1224,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7572316b7165636f","name":"next-babel-turbo-transform","id":"77377a7a6f337565","timestamp":96643641833,"duration":10454,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"75677034716f7669","name":"next-babel-turbo-loader","id":"7572316b7165636f","timestamp":96643641820,"duration":10501,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"34707a376d686971","name":"build-module-jsx","id":"75677034716f7669","timestamp":96643614550,"duration":39258,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\layouts\\Dark.jsx"}},{"traceId":"a40c92b03843b256","parentId":"7a386e7633796363","name":"read-resource","id":"6d666f627630346f","timestamp":96643632152,"duration":25378,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a79776578717337","name":"build-module-js","id":"7a386e7633796363","timestamp":96643631987,"duration":26517,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\esm\\iterableToArrayLimit.js"}},{"traceId":"a40c92b03843b256","parentId":"6139677162727131","name":"read-resource","id":"3572346234347335","timestamp":96643654615,"duration":4047,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a79776578717337","name":"build-module-js","id":"6139677162727131","timestamp":96643654474,"duration":4634,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\esm\\arrayWithHoles.js"}},{"traceId":"a40c92b03843b256","parentId":"7a6f6c6631677976","name":"read-resource","id":"3674687465646d64","timestamp":96643654682,"duration":4479,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a79776578717337","name":"build-module-js","id":"7a6f6c6631677976","timestamp":96643654649,"duration":5210,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\esm\\unsupportedIterableToArray.js"}},{"traceId":"a40c92b03843b256","parentId":"78796f6a6b6b797a","name":"read-resource","id":"6d396b6132307874","timestamp":96643654739,"duration":5179,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a79776578717337","name":"build-module-js","id":"78796f6a6b6b797a","timestamp":96643654699,"duration":5579,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\esm\\nonIterableRest.js"}},{"traceId":"a40c92b03843b256","parentId":"376f326a6d6d7a6c","name":"read-resource","id":"683062786c703564","timestamp":96643657233,"duration":3600,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"34707a376d686971","name":"build-module-js","id":"376f326a6d6d7a6c","timestamp":96643657153,"duration":4227,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-tsparticles\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"69616f3469686f34","name":"read-resource","id":"7869686134637838","timestamp":96643657322,"duration":4553,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"773572686e613036","name":"get-options","id":"74747630637a7262","timestamp":96643661956,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c3079723262646b","name":"babel-turbo-get-config","id":"66686331646d7475","timestamp":96643661968,"duration":16,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c3079723262646b","name":"babel-turbo-normalize-file","id":"686d30386b75396c","timestamp":96643661988,"duration":1156,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a36726368347170","name":"babel-turbo-traverse","id":"7275646d75796938","timestamp":96643663620,"duration":18475,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c3079723262646b","name":"babel-turbo-transform","id":"7a36726368347170","timestamp":96643663181,"duration":18946,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c3079723262646b","name":"babel-turbo-generate","id":"666f6d353775696a","timestamp":96643682155,"duration":1469,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"773572686e613036","name":"next-babel-turbo-transform","id":"6c3079723262646b","timestamp":96643661965,"duration":21672,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69616f3469686f34","name":"next-babel-turbo-loader","id":"773572686e613036","timestamp":96643661950,"duration":21716,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"34707a376d686971","name":"build-module-jsx","id":"69616f3469686f34","timestamp":96643657263,"duration":30912,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Split\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"7031366e6c676478","name":"read-resource","id":"31376f6473737a62","timestamp":96643657362,"duration":30892,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"31646a396f63346e","name":"build-module-js","id":"7031366e6c676478","timestamp":96643657338,"duration":31843,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\styled-jsx\\dist\\style.js"}},{"traceId":"a40c92b03843b256","parentId":"6164377476306134","name":"read-resource","id":"7a33353538696135","timestamp":96643657414,"duration":33872,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"367a656264656d6d","name":"get-options","id":"74353465717a776c","timestamp":96643691372,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"613735737666726d","name":"babel-turbo-get-config","id":"37636e6767376c76","timestamp":96643691383,"duration":16,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"613735737666726d","name":"babel-turbo-normalize-file","id":"6f39797032623339","timestamp":96643691402,"duration":13805,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3266797a6b6a6363","name":"babel-turbo-traverse","id":"643065713162746b","timestamp":96643705879,"duration":31439,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"613735737666726d","name":"babel-turbo-transform","id":"3266797a6b6a6363","timestamp":96643705275,"duration":32097,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"613735737666726d","name":"babel-turbo-generate","id":"657139346f636668","timestamp":96643737403,"duration":6855,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"367a656264656d6d","name":"next-babel-turbo-transform","id":"613735737666726d","timestamp":96643691380,"duration":52894,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6164377476306134","name":"next-babel-turbo-loader","id":"367a656264656d6d","timestamp":96643691366,"duration":52935,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"30363674336c6232","name":"build-module-js","id":"6164377476306134","timestamp":96643657375,"duration":93947,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\link.js"}},{"traceId":"a40c92b03843b256","parentId":"71646e7476367264","name":"read-resource","id":"76706b3165306572","timestamp":96643754688,"duration":2132,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6f6c6631677976","name":"build-module-js","id":"71646e7476367264","timestamp":96643754600,"duration":2774,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\esm\\arrayLikeToArray.js"}},{"traceId":"a40c92b03843b256","parentId":"7274686c6d66376f","name":"read-resource","id":"6f6f6778786a3767","timestamp":96643756742,"duration":1662,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69616f3469686f34","name":"build-module-js","id":"7274686c6d66376f","timestamp":96643756722,"duration":2259,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\esm\\possibleConstructorReturn.js"}},{"traceId":"a40c92b03843b256","parentId":"6c64376275683568","name":"read-resource","id":"3764306d746d7765","timestamp":96643756586,"duration":2467,"tags":{}}] +[{"traceId":"a40c92b03843b256","parentId":"69616f3469686f34","name":"build-module-js","id":"6c64376275683568","timestamp":96643756506,"duration":3320,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\esm\\classCallCheck.js"}},{"traceId":"a40c92b03843b256","parentId":"6a32346a38396b62","name":"read-resource","id":"6f6f6e7139317137","timestamp":96643756638,"duration":3850,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69616f3469686f34","name":"build-module-js","id":"6a32346a38396b62","timestamp":96643756613,"duration":4607,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\esm\\inherits.js"}},{"traceId":"a40c92b03843b256","parentId":"6267716c33746b63","name":"read-resource","id":"7861726a746c6f64","timestamp":96643756672,"duration":4603,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69616f3469686f34","name":"build-module-js","id":"6267716c33746b63","timestamp":96643756651,"duration":5007,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\esm\\assertThisInitialized.js"}},{"traceId":"a40c92b03843b256","parentId":"39716637326d7567","name":"read-resource","id":"7a37676c6d386770","timestamp":96643756709,"duration":4990,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69616f3469686f34","name":"build-module-js","id":"39716637326d7567","timestamp":96643756685,"duration":5368,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\esm\\getPrototypeOf.js"}},{"traceId":"a40c92b03843b256","parentId":"6139793164376f78","name":"read-resource","id":"63387a7077763763","timestamp":96643758037,"duration":4555,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69616f3469686f34","name":"build-module-js","id":"6139793164376f78","timestamp":96643757954,"duration":5154,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\esm\\createClass.js"}},{"traceId":"a40c92b03843b256","parentId":"716476796f366b78","name":"read-resource","id":"6833666838723266","timestamp":96643758253,"duration":5411,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"376f326a6d6d7a6c","name":"build-module-js","id":"716476796f366b78","timestamp":96643758205,"duration":11135,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-tsparticles\\cjs\\particles.js"}},{"traceId":"a40c92b03843b256","parentId":"6861326868377465","name":"read-resource","id":"36646663736d3236","timestamp":96643758330,"duration":11581,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3376726333746867","name":"get-options","id":"3371767062657638","timestamp":96643769991,"duration":7,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f72353677336b6b","name":"babel-turbo-get-config","id":"6f6962657163686f","timestamp":96643770007,"duration":20,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f72353677336b6b","name":"babel-turbo-normalize-file","id":"7771397a35307935","timestamp":96643770031,"duration":3097,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"703261783969636f","name":"babel-turbo-traverse","id":"386f3676796f6268","timestamp":96643773667,"duration":11011,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f72353677336b6b","name":"babel-turbo-transform","id":"703261783969636f","timestamp":96643773174,"duration":11534,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f72353677336b6b","name":"babel-turbo-generate","id":"6e306d6774646337","timestamp":96643784738,"duration":3201,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3376726333746867","name":"next-babel-turbo-transform","id":"6f72353677336b6b","timestamp":96643770003,"duration":17956,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6861326868377465","name":"next-babel-turbo-loader","id":"3376726333746867","timestamp":96643769982,"duration":18006,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6164377476306134","name":"build-module-js","id":"6861326868377465","timestamp":96643758271,"duration":31496,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\use-intersection.js"}},{"traceId":"a40c92b03843b256","parentId":"69686e6261733264","name":"read-resource","id":"7836637164713666","timestamp":96643791072,"duration":1819,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a32346a38396b62","name":"build-module-js","id":"69686e6261733264","timestamp":96643790989,"duration":2735,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\esm\\setPrototypeOf.js"}},{"traceId":"a40c92b03843b256","parentId":"3936686a7a346137","name":"read-resource","id":"7331376837636669","timestamp":96643792354,"duration":1931,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7274686c6d66376f","name":"build-module-js","id":"3936686a7a346137","timestamp":96643792169,"duration":2877,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\esm\\typeof.js"}},{"traceId":"a40c92b03843b256","parentId":"6864786e6d7a7433","name":"read-resource","id":"776c646977706161","timestamp":96643797301,"duration":1060,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"716476796f366b78","name":"build-module-js","id":"6864786e6d7a7433","timestamp":96643797202,"duration":2109,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\fast-deep-equal\\react.js"}},{"traceId":"a40c92b03843b256","parentId":"3935673233666f6e","name":"read-resource","id":"3532707a63646831","timestamp":96643798173,"duration":1584,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"716476796f366b78","name":"build-module-js","id":"3935673233666f6e","timestamp":96643798024,"duration":4106,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"3969716772636a68","name":"read-resource","id":"3732766c636f6d33","timestamp":96643810906,"duration":4032,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3935673233666f6e","name":"build-module-js","id":"3969716772636a68","timestamp":96643810784,"duration":4837,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\pjs.js"}},{"traceId":"a40c92b03843b256","parentId":"766e6970727a6b6e","name":"read-resource","id":"6d37706a71663965","timestamp":96643811013,"duration":4928,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3935673233666f6e","name":"build-module-js","id":"766e6970727a6b6e","timestamp":96643810989,"duration":7213,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\full.js"}},{"traceId":"a40c92b03843b256","parentId":"3333306930776736","name":"read-resource","id":"316c766962396766","timestamp":96643810974,"duration":7311,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3935673233666f6e","name":"build-module-js","id":"3333306930776736","timestamp":96643810944,"duration":9774,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\main.js"}},{"traceId":"a40c92b03843b256","parentId":"307662616b757363","name":"read-resource","id":"7931696d78663633","timestamp":96643813947,"duration":10059,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3935673233666f6e","name":"build-module-js","id":"307662616b757363","timestamp":96643813811,"duration":16180,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\Particle.js"}},{"traceId":"a40c92b03843b256","parentId":"3475787033393778","name":"read-resource","id":"7178363861626673","timestamp":96643814017,"duration":16067,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3935673233666f6e","name":"build-module-js","id":"3475787033393778","timestamp":96643813984,"duration":21099,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\Container.js"}},{"traceId":"a40c92b03843b256","parentId":"7965776275676268","name":"read-resource","id":"6934396e63663976","timestamp":96643814128,"duration":21042,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3935673233666f6e","name":"build-module-js","id":"7965776275676268","timestamp":96643814108,"duration":27044,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Utils\\ColorUtils.js"}},{"traceId":"a40c92b03843b256","parentId":"6c62793461707a78","name":"read-resource","id":"366336763130366a","timestamp":96643814092,"duration":27255,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3935673233666f6e","name":"build-module-js","id":"6c62793461707a78","timestamp":96643814067,"duration":27852,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\ParticlesInteractorBase.js"}},{"traceId":"a40c92b03843b256","parentId":"3761767769633374","name":"read-resource","id":"7a3979343832796b","timestamp":96643814051,"duration":27926,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3935673233666f6e","name":"build-module-js","id":"3761767769633374","timestamp":96643814030,"duration":28568,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\ExternalInteractorBase.js"}},{"traceId":"a40c92b03843b256","parentId":"66707163796e6376","name":"read-resource","id":"33396e7a72367138","timestamp":96643814208,"duration":28443,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3935673233666f6e","name":"build-module-js","id":"66707163796e6376","timestamp":96643814185,"duration":32447,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Utils\\CanvasUtils.js"}},{"traceId":"a40c92b03843b256","parentId":"7238783673307870","name":"read-resource","id":"3530316230787264","timestamp":96643814168,"duration":32529,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3935673233666f6e","name":"build-module-js","id":"7238783673307870","timestamp":96643814142,"duration":34558,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Utils\\NumberUtils.js"}},{"traceId":"a40c92b03843b256","parentId":"3065757732736c78","name":"read-resource","id":"67646d7a646b3571","timestamp":96643814273,"duration":34504,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3935673233666f6e","name":"build-module-js","id":"3065757732736c78","timestamp":96643814253,"duration":36422,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\Particle\\Vector.js"}},{"traceId":"a40c92b03843b256","parentId":"777869327470636d","name":"read-resource","id":"6d37643738777a61","timestamp":96643814241,"duration":36521,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3935673233666f6e","name":"build-module-js","id":"777869327470636d","timestamp":96643814221,"duration":40033,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Utils\\Utils.js"}},{"traceId":"a40c92b03843b256","parentId":"706863706d326830","name":"read-resource","id":"776a616164613661","timestamp":96643823827,"duration":36695,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3935673233666f6e","name":"build-module-js","id":"706863706d326830","timestamp":96643823704,"duration":37822,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Utils\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"79726d7a67633535","name":"read-resource","id":"7472657265623568","timestamp":96643859736,"duration":6644,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3935673233666f6e","name":"build-module-js","id":"79726d7a67633535","timestamp":96643859715,"duration":8324,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\Interfaces\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"64637961316b6169","name":"read-resource","id":"6b39666f32653565","timestamp":96643859702,"duration":8434,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3935673233666f6e","name":"build-module-js","id":"64637961316b6169","timestamp":96643859676,"duration":9334,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Types\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"3065327869383973","name":"read-resource","id":"30326b6479716277","timestamp":96643859648,"duration":9411,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3935673233666f6e","name":"build-module-js","id":"3065327869383973","timestamp":96643859541,"duration":12709,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Enums\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"717a6c6676726c6f","name":"read-resource","id":"3235656566366676","timestamp":96643860496,"duration":16507,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3333306930776736","name":"build-module-js","id":"717a6c6676726c6f","timestamp":96643860473,"duration":19355,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\Loader.js"}},{"traceId":"a40c92b03843b256","parentId":"6662726d7238366d","name":"read-resource","id":"3238347470706672","timestamp":96643860450,"duration":19455,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766e6970727a6b6e","name":"build-module-js","id":"6662726d7238366d","timestamp":96643860367,"duration":20699,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\slim.js"}},{"traceId":"a40c92b03843b256","parentId":"6a3635336c336238","name":"read-resource","id":"3264667574377331","timestamp":96643865467,"duration":21400,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3935673233666f6e","name":"build-module-js","id":"6a3635336c336238","timestamp":96643865442,"duration":22225,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Plugins\\Absorbers\\Enums\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"30336c6134756332","name":"read-resource","id":"6b6d656173316d76","timestamp":96643865418,"duration":22310,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766e6970727a6b6e","name":"build-module-js","id":"30336c6134756332","timestamp":96643865333,"duration":23537,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Plugins\\Absorbers\\plugin.js"}},{"traceId":"a40c92b03843b256","parentId":"6a71773734716371","name":"read-resource","id":"6674333567726b61","timestamp":96643865501,"duration":23419,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766e6970727a6b6e","name":"build-module-js","id":"6a71773734716371","timestamp":96643865480,"duration":25031,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Plugins\\Emitters\\plugin.js"}},{"traceId":"a40c92b03843b256","parentId":"32356f3233366479","name":"read-resource","id":"32726b3334696977","timestamp":96643865541,"duration":25023,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3935673233666f6e","name":"build-module-js","id":"32356f3233366479","timestamp":96643865514,"duration":25589,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Plugins\\Emitters\\Enums\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"3038713369396373","name":"read-resource","id":"726d79667330636f","timestamp":96643865608,"duration":25523,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3935673233666f6e","name":"build-module-js","id":"3038713369396373","timestamp":96643865590,"duration":26126,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Plugins\\PolygonMask\\Enums\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"71786f6c3565366b","name":"read-resource","id":"6b7a6c6b6175697a","timestamp":96643865577,"duration":26189,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766e6970727a6b6e","name":"build-module-js","id":"71786f6c3565366b","timestamp":96643865554,"duration":27512,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Plugins\\PolygonMask\\plugin.js"}},{"traceId":"a40c92b03843b256","parentId":"7a73646e79677473","name":"read-resource","id":"3763667a6c72746b","timestamp":96643865640,"duration":27507,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3475787033393778","name":"build-module-js","id":"7a73646e79677473","timestamp":96643865622,"duration":30795,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\Canvas.js"}},{"traceId":"a40c92b03843b256","parentId":"676f346d79373278","name":"read-resource","id":"6d316a636f623376","timestamp":96643865684,"duration":30798,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3475787033393778","name":"build-module-js","id":"676f346d79373278","timestamp":96643865660,"duration":32872,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\Retina.js"}},{"traceId":"a40c92b03843b256","parentId":"6169693076646d34","name":"read-resource","id":"7a32696737643075","timestamp":96643865714,"duration":33036,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3475787033393778","name":"build-module-js","id":"6169693076646d34","timestamp":96643865696,"duration":34049,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\FrameManager.js"}},{"traceId":"a40c92b03843b256","parentId":"633567746e6a7266","name":"read-resource","id":"6d6e617739747435","timestamp":96643865747,"duration":34069,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7965776275676268","name":"build-module-js","id":"633567746e6a7266","timestamp":96643865729,"duration":34788,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Utils\\Constants.js"}},{"traceId":"a40c92b03843b256","parentId":"6d39396a67366170","name":"read-resource","id":"6b697766646f6164","timestamp":96643865812,"duration":40771,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"307662616b757363","name":"build-module-js","id":"6d39396a67366170","timestamp":96643865791,"duration":41988,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\Particle\\Vector3d.js"}},{"traceId":"a40c92b03843b256","parentId":"64316832336d7976","name":"read-resource","id":"746e33326b6c3039","timestamp":96643865778,"duration":42121,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3475787033393778","name":"build-module-js","id":"64316832336d7976","timestamp":96643865758,"duration":46123,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\Particles.js"}},{"traceId":"a40c92b03843b256","parentId":"726f657834616572","name":"read-resource","id":"6971307638387037","timestamp":96643903624,"duration":25850,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3475787033393778","name":"build-module-js","id":"726f657834616572","timestamp":96643903534,"duration":27860,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Options.js"}},{"traceId":"a40c92b03843b256","parentId":"3938367a75776469","name":"read-resource","id":"34656f3264387130","timestamp":96643903792,"duration":27658,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"307662616b757363","name":"build-module-js","id":"3938367a75776469","timestamp":96643903769,"duration":28911,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\Shape\\Shape.js"}},{"traceId":"a40c92b03843b256","parentId":"3974696562346f6c","name":"read-resource","id":"7230686c62733336","timestamp":96643903723,"duration":29135,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"307662616b757363","name":"build-module-js","id":"3974696562346f6c","timestamp":96643903679,"duration":31257,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\ParticlesOptions.js"}},{"traceId":"a40c92b03843b256","parentId":"6131617a6b673172","name":"read-resource","id":"35716b6774626c38","timestamp":96643918525,"duration":20325,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"706863706d326830","name":"build-module-js","id":"6131617a6b673172","timestamp":96643918429,"duration":21240,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Utils\\CircleWarp.js"}},{"traceId":"a40c92b03843b256","parentId":"6278377566676f6d","name":"read-resource","id":"67676475356f3063","timestamp":96643918687,"duration":21030,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"706863706d326830","name":"build-module-js","id":"6278377566676f6d","timestamp":96643918665,"duration":21463,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Utils\\Range.js"}},{"traceId":"a40c92b03843b256","parentId":"693572796372366a","name":"read-resource","id":"7138747977626b73","timestamp":96643918610,"duration":21569,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"706863706d326830","name":"build-module-js","id":"693572796372366a","timestamp":96643918574,"duration":24503,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Utils\\EventListeners.js"}}] +[{"traceId":"a40c92b03843b256","parentId":"6c37377474333866","name":"read-resource","id":"3774717034656c6d","timestamp":96643918649,"duration":24800,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"706863706d326830","name":"build-module-js","id":"6c37377474333866","timestamp":96643918627,"duration":25829,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Utils\\Plugins.js"}},{"traceId":"a40c92b03843b256","parentId":"3468757479766d34","name":"read-resource","id":"7a6d613177306532","timestamp":96643925376,"duration":22628,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"706863706d326830","name":"build-module-js","id":"3468757479766d34","timestamp":96643925289,"duration":23183,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Utils\\Point.js"}},{"traceId":"a40c92b03843b256","parentId":"6d39677365727578","name":"read-resource","id":"38703079387a6b30","timestamp":96643925571,"duration":22950,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"64637961316b6169","name":"build-module-js","id":"6d39677365727578","timestamp":96643925549,"duration":23152,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Types\\RecursivePartial.js"}},{"traceId":"a40c92b03843b256","parentId":"7838366575316931","name":"read-resource","id":"3066637268326e66","timestamp":96643925609,"duration":23107,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"64637961316b6169","name":"build-module-js","id":"7838366575316931","timestamp":96643925588,"duration":23233,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Types\\ShapeDrawerFunctions.js"}},{"traceId":"a40c92b03843b256","parentId":"6469673336336465","name":"read-resource","id":"77383433656e7864","timestamp":96643925680,"duration":23154,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"64637961316b6169","name":"build-module-js","id":"6469673336336465","timestamp":96643925658,"duration":23273,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Types\\ShapeData.js"}},{"traceId":"a40c92b03843b256","parentId":"6f6b73646c693167","name":"read-resource","id":"74687a6467796431","timestamp":96643925536,"duration":23417,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"64637961316b6169","name":"build-module-js","id":"6f6b73646c693167","timestamp":96643925515,"duration":23548,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Types\\SingleOrMultiple.js"}},{"traceId":"a40c92b03843b256","parentId":"3170336330786478","name":"read-resource","id":"3572387438796477","timestamp":96643925466,"duration":23610,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"706863706d326830","name":"build-module-js","id":"3170336330786478","timestamp":96643925440,"duration":24831,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Utils\\QuadTree.js"}},{"traceId":"a40c92b03843b256","parentId":"687478396b733372","name":"read-resource","id":"626b71376237676a","timestamp":96643925428,"duration":24912,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"706863706d326830","name":"build-module-js","id":"687478396b733372","timestamp":96643925403,"duration":25962,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Utils\\Circle.js"}},{"traceId":"a40c92b03843b256","parentId":"746c746d306a7a76","name":"read-resource","id":"6c73776563366464","timestamp":96643925502,"duration":25964,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"706863706d326830","name":"build-module-js","id":"746c746d306a7a76","timestamp":96643925479,"duration":26887,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Utils\\Rectangle.js"}},{"traceId":"a40c92b03843b256","parentId":"3034777a71666e6e","name":"read-resource","id":"756d79796736636e","timestamp":96643925645,"duration":26779,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"64637961316b6169","name":"build-module-js","id":"3034777a71666e6e","timestamp":96643925621,"duration":27105,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Types\\RangeValue.js"}},{"traceId":"a40c92b03843b256","parentId":"356c376568323631","name":"read-resource","id":"6f7a717977336e62","timestamp":96643925735,"duration":27023,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3065327869383973","name":"build-module-js","id":"356c376568323631","timestamp":96643925691,"duration":27443,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Enums\\AnimationStatus.js"}},{"traceId":"a40c92b03843b256","parentId":"717370326a79717a","name":"read-resource","id":"7772336a726a6479","timestamp":96643925811,"duration":27360,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3065327869383973","name":"build-module-js","id":"717370326a79717a","timestamp":96643925787,"duration":27702,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Enums\\InteractivityDetect.js"}},{"traceId":"a40c92b03843b256","parentId":"66336c7578316136","name":"read-resource","id":"3962326972353532","timestamp":96643925911,"duration":27613,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79726d7a67633535","name":"build-module-js","id":"66336c7578316136","timestamp":96643925890,"duration":27813,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\Interfaces\\IBubble.js"}},{"traceId":"a40c92b03843b256","parentId":"6c796d63656c6c6b","name":"read-resource","id":"7237346635756465","timestamp":96643925943,"duration":27780,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79726d7a67633535","name":"build-module-js","id":"6c796d63656c6c6b","timestamp":96643925922,"duration":27924,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\Interfaces\\Gradients.js"}},{"traceId":"a40c92b03843b256","parentId":"7563386331336231","name":"read-resource","id":"673477616a75346b","timestamp":96643925776,"duration":28086,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"64637961316b6169","name":"build-module-js","id":"7563386331336231","timestamp":96643925754,"duration":28215,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Types\\PathOptions.js"}},{"traceId":"a40c92b03843b256","parentId":"6774756564397a62","name":"read-resource","id":"7464637531347534","timestamp":96643925847,"duration":28137,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79726d7a67633535","name":"build-module-js","id":"6774756564397a62","timestamp":96643925823,"duration":28262,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\Interfaces\\Colors.js"}},{"traceId":"a40c92b03843b256","parentId":"3678753877696c71","name":"read-resource","id":"6d34676c79616c70","timestamp":96643925879,"duration":28221,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79726d7a67633535","name":"build-module-js","id":"3678753877696c71","timestamp":96643925858,"duration":28342,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\Interfaces\\IAttract.js"}},{"traceId":"a40c92b03843b256","parentId":"77686d346d686833","name":"read-resource","id":"6c6a31676c393579","timestamp":96643926014,"duration":28200,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79726d7a67633535","name":"build-module-js","id":"77686d346d686833","timestamp":96643925993,"duration":28325,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\Interfaces\\IBubbleParticleData.js"}},{"traceId":"a40c92b03843b256","parentId":"70376e3379666862","name":"read-resource","id":"3862363578707835","timestamp":96643926139,"duration":28195,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79726d7a67633535","name":"build-module-js","id":"70376e3379666862","timestamp":96643926068,"duration":28374,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\Interfaces\\IContainerInteractivity.js"}},{"traceId":"a40c92b03843b256","parentId":"7879657170773630","name":"read-resource","id":"726b31343878716e","timestamp":96643926207,"duration":28251,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79726d7a67633535","name":"build-module-js","id":"7879657170773630","timestamp":96643926187,"duration":28381,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\Interfaces\\IDelta.js"}},{"traceId":"a40c92b03843b256","parentId":"6d6d63766b777379","name":"read-resource","id":"35666d31316b6b61","timestamp":96643925981,"duration":28601,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79726d7a67633535","name":"build-module-js","id":"6d6d63766b777379","timestamp":96643925958,"duration":28729,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\Interfaces\\IBounds.js"}},{"traceId":"a40c92b03843b256","parentId":"72387531336b6e36","name":"read-resource","id":"30773975396f706e","timestamp":96643926351,"duration":28351,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79726d7a67633535","name":"build-module-js","id":"72387531336b6e36","timestamp":96643926318,"duration":28481,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\Interfaces\\IContainerPlugin.js"}},{"traceId":"a40c92b03843b256","parentId":"793161633076316e","name":"read-resource","id":"3865646a76706933","timestamp":96643926056,"duration":28759,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79726d7a67633535","name":"build-module-js","id":"793161633076316e","timestamp":96643926026,"duration":28952,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\Interfaces\\ICircleBouncer.js"}},{"traceId":"a40c92b03843b256","parentId":"793233656639706c","name":"read-resource","id":"727370346c6a6131","timestamp":96643926175,"duration":28831,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79726d7a67633535","name":"build-module-js","id":"793233656639706c","timestamp":96643926152,"duration":29010,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\Interfaces\\ICoordinates.js"}},{"traceId":"a40c92b03843b256","parentId":"7538733638666439","name":"read-resource","id":"366d6e3664666c61","timestamp":96643926240,"duration":28941,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79726d7a67633535","name":"build-module-js","id":"7538733638666439","timestamp":96643926219,"duration":29093,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\Interfaces\\IDistance.js"}},{"traceId":"a40c92b03843b256","parentId":"79326a7437746f75","name":"read-resource","id":"6c6c6e673073356e","timestamp":96643926273,"duration":29061,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79726d7a67633535","name":"build-module-js","id":"79326a7437746f75","timestamp":96643926253,"duration":29244,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\Interfaces\\IDimension.js"}},{"traceId":"a40c92b03843b256","parentId":"6836626776636e73","name":"read-resource","id":"37767a38656f3874","timestamp":96643926392,"duration":29127,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79726d7a67633535","name":"build-module-js","id":"6836626776636e73","timestamp":96643926367,"duration":29319,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\Interfaces\\IExternalInteractor.js"}},{"traceId":"a40c92b03843b256","parentId":"6265396b76657537","name":"read-resource","id":"3778667662717476","timestamp":96643926303,"duration":29437,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79726d7a67633535","name":"build-module-js","id":"6265396b76657537","timestamp":96643926283,"duration":29578,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\Interfaces\\IMouseData.js"}},{"traceId":"a40c92b03843b256","parentId":"6f6e6168676f396a","name":"read-resource","id":"62337273706c7a7a","timestamp":96643926423,"duration":29457,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79726d7a67633535","name":"build-module-js","id":"6f6e6168676f396a","timestamp":96643926403,"duration":29573,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\Interfaces\\IInteractor.js"}},{"traceId":"a40c92b03843b256","parentId":"6663617632647673","name":"read-resource","id":"3973663138317331","timestamp":96643926460,"duration":29530,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79726d7a67633535","name":"build-module-js","id":"6663617632647673","timestamp":96643926439,"duration":29648,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\Interfaces\\IParticle.js"}},{"traceId":"a40c92b03843b256","parentId":"6e75726670316e67","name":"read-resource","id":"7666666b64653230","timestamp":96643926492,"duration":29608,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79726d7a67633535","name":"build-module-js","id":"6e75726670316e67","timestamp":96643926471,"duration":29723,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\Interfaces\\IMovePathGenerator.js"}},{"traceId":"a40c92b03843b256","parentId":"3767777962306b73","name":"read-resource","id":"62666c6636643371","timestamp":96643926550,"duration":29657,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79726d7a67633535","name":"build-module-js","id":"3767777962306b73","timestamp":96643926532,"duration":29769,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\Interfaces\\IParticleHslAnimation.js"}},{"traceId":"a40c92b03843b256","parentId":"39357037356b6b72","name":"read-resource","id":"667474393773336d","timestamp":96643926639,"duration":29675,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79726d7a67633535","name":"build-module-js","id":"39357037356b6b72","timestamp":96643926620,"duration":29790,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\Interfaces\\IParticleLoops.js"}},{"traceId":"a40c92b03843b256","parentId":"39386e6e67707333","name":"read-resource","id":"68716f7271393775","timestamp":96643926579,"duration":29862,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79726d7a67633535","name":"build-module-js","id":"39386e6e67707333","timestamp":96643926561,"duration":29986,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\Interfaces\\IParticleRetinaProps.js"}},{"traceId":"a40c92b03843b256","parentId":"37617a6a39616733","name":"read-resource","id":"7265656e6c6e646e","timestamp":96643926609,"duration":29952,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79726d7a67633535","name":"build-module-js","id":"37617a6a39616733","timestamp":96643926591,"duration":30072,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\Interfaces\\IParticleLife.js"}},{"traceId":"a40c92b03843b256","parentId":"7671636677767336","name":"read-resource","id":"7a736c37366f6e30","timestamp":96643926668,"duration":30008,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79726d7a67633535","name":"build-module-js","id":"7671636677767336","timestamp":96643926650,"duration":30128,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\Interfaces\\IParticleGradientColorAnimation.js"}},{"traceId":"a40c92b03843b256","parentId":"7031336f31653936","name":"read-resource","id":"7074687a30727662","timestamp":96643926784,"duration":30010,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79726d7a67633535","name":"build-module-js","id":"7031336f31653936","timestamp":96643926765,"duration":30144,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\Interfaces\\IPlugin.js"}},{"traceId":"a40c92b03843b256","parentId":"653536316d77716d","name":"read-resource","id":"6933717835386270","timestamp":96643926522,"duration":30402,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79726d7a67633535","name":"build-module-js","id":"653536316d77716d","timestamp":96643926503,"duration":30528,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\Interfaces\\IParticleGradientAnimation.js"}},{"traceId":"a40c92b03843b256","parentId":"376d326865377868","name":"read-resource","id":"376731396c626c36","timestamp":96643926697,"duration":30349,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79726d7a67633535","name":"build-module-js","id":"376d326865377868","timestamp":96643926679,"duration":30466,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\Interfaces\\IParticleSpin.js"}},{"traceId":"a40c92b03843b256","parentId":"753967316c727135","name":"read-resource","id":"347136773731796a","timestamp":96643926725,"duration":30433,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79726d7a67633535","name":"build-module-js","id":"753967316c727135","timestamp":96643926708,"duration":30551,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\Interfaces\\IParticleValueAnimation.js"}},{"traceId":"a40c92b03843b256","parentId":"686d38636a646a33","name":"read-resource","id":"696d77376b32796a","timestamp":96643926754,"duration":30526,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79726d7a67633535","name":"build-module-js","id":"686d38636a646a33","timestamp":96643926736,"duration":30649,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\Interfaces\\IParticleUpdater.js"}},{"traceId":"a40c92b03843b256","parentId":"6f693367376a3169","name":"read-resource","id":"653833336e616b70","timestamp":96643926813,"duration":30587,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79726d7a67633535","name":"build-module-js","id":"6f693367376a3169","timestamp":96643926796,"duration":30775,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\Interfaces\\IRangeValue.js"}},{"traceId":"a40c92b03843b256","parentId":"6e736a6674713178","name":"read-resource","id":"3678317461646171","timestamp":96643928696,"duration":33161,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79726d7a67633535","name":"build-module-js","id":"6e736a6674713178","timestamp":96643928672,"duration":33505,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\Interfaces\\IRepulse.js"}},{"traceId":"a40c92b03843b256","parentId":"66666c6568747a33","name":"read-resource","id":"6e6b6538666e7861","timestamp":96643928648,"duration":33674,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79726d7a67633535","name":"build-module-js","id":"66666c6568747a33","timestamp":96643928537,"duration":34003,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\Interfaces\\IParticlesInteractor.js"}},{"traceId":"a40c92b03843b256","parentId":"3071306c34336b74","name":"read-resource","id":"7672726e70326577","timestamp":96643928730,"duration":37104,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79726d7a67633535","name":"build-module-js","id":"3071306c34336b74","timestamp":96643928710,"duration":37683,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\Interfaces\\IRectSideResult.js"}},{"traceId":"a40c92b03843b256","parentId":"7a68746f76787138","name":"read-resource","id":"346735737a343831","timestamp":96643959350,"duration":14591,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79726d7a67633535","name":"build-module-js","id":"7a68746f76787138","timestamp":96643959327,"duration":14978,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\Interfaces\\IShapeValues.js"}},{"traceId":"a40c92b03843b256","parentId":"646a6d6d6536346c","name":"read-resource","id":"7031787265787371","timestamp":96643959390,"duration":14945,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766e6970727a6b6e","name":"build-module-js","id":"646a6d6d6536346c","timestamp":96643959364,"duration":15278,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Updaters\\Wobble\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"31696f6864773064","name":"read-resource","id":"6a6d616e6d6f3472","timestamp":96643959428,"duration":15231,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766e6970727a6b6e","name":"build-module-js","id":"31696f6864773064","timestamp":96643959406,"duration":15451,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Updaters\\Tilt\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"7539623462773570","name":"read-resource","id":"756e373464667532","timestamp":96643959289,"duration":15583,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79726d7a67633535","name":"build-module-js","id":"7539623462773570","timestamp":96643959225,"duration":15770,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\Interfaces\\IShapeDrawer.js"}},{"traceId":"a40c92b03843b256","parentId":"7a67746c706e7869","name":"read-resource","id":"336f616735766d69","timestamp":96643959496,"duration":15514,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a71773734716371","name":"build-module-js","id":"7a67746c706e7869","timestamp":96643959476,"duration":15768,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Plugins\\Emitters\\ShapeManager.js"}},{"traceId":"a40c92b03843b256","parentId":"6963683862397576","name":"read-resource","id":"656c74736c697072","timestamp":96643959463,"duration":15796,"tags":{}}] +[{"traceId":"a40c92b03843b256","parentId":"766e6970727a6b6e","name":"build-module-js","id":"6963683862397576","timestamp":96643959445,"duration":16411,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Updaters\\Roll\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"386a35767974726d","name":"read-resource","id":"72647530776d667a","timestamp":96643959566,"duration":16325,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"30336c6134756332","name":"build-module-js","id":"386a35767974726d","timestamp":96643959543,"duration":17474,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Plugins\\Absorbers\\Absorbers.js"}},{"traceId":"a40c92b03843b256","parentId":"75346c707a326777","name":"read-resource","id":"6379336875737a7a","timestamp":96643959530,"duration":17545,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a71773734716371","name":"build-module-js","id":"75346c707a326777","timestamp":96643959510,"duration":17775,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Plugins\\Emitters\\EmittersMain.js"}},{"traceId":"a40c92b03843b256","parentId":"69357a7576713576","name":"read-resource","id":"316c66396a7a3472","timestamp":96643959661,"duration":17641,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a71773734716371","name":"build-module-js","id":"69357a7576713576","timestamp":96643959643,"duration":18714,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Plugins\\Emitters\\Emitters.js"}},{"traceId":"a40c92b03843b256","parentId":"3737746c636a6d76","name":"read-resource","id":"6a6163657770776c","timestamp":96643959765,"duration":18646,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"32356f3233366479","name":"build-module-js","id":"3737746c636a6d76","timestamp":96643959744,"duration":19002,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Plugins\\Emitters\\Enums\\EmitterShapeType.js"}},{"traceId":"a40c92b03843b256","parentId":"336f393074306265","name":"read-resource","id":"34697a75666d3974","timestamp":96643959599,"duration":19172,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"71786f6c3565366b","name":"build-module-js","id":"336f393074306265","timestamp":96643959580,"duration":23463,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Plugins\\PolygonMask\\PolygonMaskInstance.js"}},{"traceId":"a40c92b03843b256","parentId":"7a6b6139316c756e","name":"read-resource","id":"79727967326d3879","timestamp":96643959728,"duration":23385,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"32356f3233366479","name":"build-module-js","id":"7a6b6139316c756e","timestamp":96643959673,"duration":23869,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Plugins\\Emitters\\Enums\\EmitterClickMode.js"}},{"traceId":"a40c92b03843b256","parentId":"7a70343369787377","name":"read-resource","id":"746a6c7a32336734","timestamp":96643959631,"duration":23934,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"71786f6c3565366b","name":"build-module-js","id":"7a70343369787377","timestamp":96643959613,"duration":34668,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Plugins\\PolygonMask\\pathseg.js"}},{"traceId":"a40c92b03843b256","parentId":"6f37676972643569","name":"read-resource","id":"3732386639746834","timestamp":96643959829,"duration":34512,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3038713369396373","name":"build-module-js","id":"6f37676972643569","timestamp":96643959804,"duration":34944,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Plugins\\PolygonMask\\Enums\\InlineArrangement.js"}},{"traceId":"a40c92b03843b256","parentId":"787a373433656438","name":"read-resource","id":"6b77387a38357365","timestamp":96643959928,"duration":34841,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3038713369396373","name":"build-module-js","id":"787a373433656438","timestamp":96643959909,"duration":35060,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Plugins\\PolygonMask\\Enums\\MoveType.js"}},{"traceId":"a40c92b03843b256","parentId":"38767a6f676a3472","name":"read-resource","id":"6b66397333316a66","timestamp":96643959862,"duration":35124,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a3635336c336238","name":"build-module-js","id":"38767a6f676a3472","timestamp":96643959842,"duration":35326,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Plugins\\Absorbers\\Enums\\AbsorberClickMode.js"}},{"traceId":"a40c92b03843b256","parentId":"366d75313579336a","name":"read-resource","id":"3262687273396439","timestamp":96643959896,"duration":35290,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3038713369396373","name":"build-module-js","id":"366d75313579336a","timestamp":96643959874,"duration":35518,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Plugins\\PolygonMask\\Enums\\Type.js"}},{"traceId":"a40c92b03843b256","parentId":"733436723937716d","name":"read-resource","id":"626a737661683761","timestamp":96643960037,"duration":35401,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"64316832336d7976","name":"build-module-js","id":"733436723937716d","timestamp":96643960018,"duration":36049,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\InteractionManager.js"}},{"traceId":"a40c92b03843b256","parentId":"626263313766666b","name":"read-resource","id":"387666396e30316d","timestamp":96643959963,"duration":36178,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766e6970727a6b6e","name":"build-module-js","id":"626263313766666b","timestamp":96643959941,"duration":36588,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Interactions\\External\\Trail\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"7534717263717479","name":"read-resource","id":"3571347436323565","timestamp":96643960004,"duration":36554,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"64316832336d7976","name":"build-module-js","id":"7534717263717479","timestamp":96643959982,"duration":39280,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Core\\Particle\\Mover.js"}},{"traceId":"a40c92b03843b256","parentId":"7569317734387070","name":"read-resource","id":"6433356b736b7a31","timestamp":96643972708,"duration":41803,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a71773734716371","name":"build-module-js","id":"7569317734387070","timestamp":96643972683,"duration":42513,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Plugins\\Emitters\\Shapes\\Square\\SquareShape.js"}},{"traceId":"a40c92b03843b256","parentId":"7062376c37756272","name":"read-resource","id":"6e7a69693463686b","timestamp":96643972654,"duration":42598,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a71773734716371","name":"build-module-js","id":"7062376c37756272","timestamp":96643972550,"duration":43286,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Plugins\\Emitters\\Shapes\\Circle\\CircleShape.js"}},{"traceId":"a40c92b03843b256","parentId":"3032666130793963","name":"read-resource","id":"706a726339676464","timestamp":96643972744,"duration":43137,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"30336c6134756332","name":"build-module-js","id":"3032666130793963","timestamp":96643972722,"duration":43844,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Plugins\\Absorbers\\Options\\Classes\\Absorber.js"}},{"traceId":"a40c92b03843b256","parentId":"637079786f757265","name":"read-resource","id":"676f39787074386d","timestamp":96643972780,"duration":43846,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"71786f6c3565366b","name":"build-module-js","id":"637079786f757265","timestamp":96643972758,"duration":45198,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Plugins\\PolygonMask\\Options\\Classes\\PolygonMask.js"}},{"traceId":"a40c92b03843b256","parentId":"686c677177776636","name":"read-resource","id":"6875716f3032316e","timestamp":96643972819,"duration":45291,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a71773734716371","name":"build-module-js","id":"686c677177776636","timestamp":96643972794,"duration":46747,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Plugins\\Emitters\\Options\\Classes\\Emitter.js"}},{"traceId":"a40c92b03843b256","parentId":"6568743130336d33","name":"read-resource","id":"66733030716f3631","timestamp":96644002467,"duration":20325,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3065327869383973","name":"build-module-js","id":"6568743130336d33","timestamp":96644002445,"duration":21025,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Enums\\Types\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"37373638696a7572","name":"read-resource","id":"3664387731667375","timestamp":96644002428,"duration":21102,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3065327869383973","name":"build-module-js","id":"37373638696a7572","timestamp":96644002399,"duration":21738,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Enums\\Directions\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"3535777064377879","name":"read-resource","id":"307a6b61306d796c","timestamp":96644002760,"duration":21411,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3974696562346f6c","name":"build-module-js","id":"3535777064377879","timestamp":96644002733,"duration":21729,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\Stroke.js"}},{"traceId":"a40c92b03843b256","parentId":"6131653635746161","name":"read-resource","id":"3274396234736b71","timestamp":96644002350,"duration":22131,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3065327869383973","name":"build-module-js","id":"6131653635746161","timestamp":96644002223,"duration":22644,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Enums\\Modes\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"3578356764763763","name":"read-resource","id":"353775363562646b","timestamp":96644002654,"duration":22230,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"726f657834616572","name":"build-module-js","id":"3578356764763763","timestamp":96644002589,"duration":22588,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Responsive.js"}},{"traceId":"a40c92b03843b256","parentId":"3464383163656934","name":"read-resource","id":"7439746874773562","timestamp":96644002507,"duration":22688,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"726f657834616572","name":"build-module-js","id":"3464383163656934","timestamp":96644002485,"duration":22959,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\ManualParticle.js"}},{"traceId":"a40c92b03843b256","parentId":"6a39673869793434","name":"read-resource","id":"6a65756b64366235","timestamp":96644002718,"duration":22743,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3974696562346f6c","name":"build-module-js","id":"6a39673869793434","timestamp":96644002684,"duration":23094,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\Shadow.js"}},{"traceId":"a40c92b03843b256","parentId":"39736e32666e3239","name":"read-resource","id":"7661743272366431","timestamp":96644010806,"duration":19077,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"726f657834616572","name":"build-module-js","id":"39736e32666e3239","timestamp":96644010783,"duration":19682,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Theme\\Theme.js"}},{"traceId":"a40c92b03843b256","parentId":"3930637034726577","name":"read-resource","id":"6c78627579746530","timestamp":96644010690,"duration":19827,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"726f657834616572","name":"build-module-js","id":"3930637034726577","timestamp":96644010573,"duration":20456,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\BackgroundMask\\BackgroundMask.js"}},{"traceId":"a40c92b03843b256","parentId":"67656c6c79653039","name":"read-resource","id":"7277317179703971","timestamp":96644010881,"duration":20202,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3974696562346f6c","name":"build-module-js","id":"67656c6c79653039","timestamp":96644010857,"duration":21435,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\AnimatableGradient.js"}},{"traceId":"a40c92b03843b256","parentId":"683530766263736f","name":"read-resource","id":"7075347562743368","timestamp":96644010768,"duration":21590,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"726f657834616572","name":"build-module-js","id":"683530766263736f","timestamp":96644010736,"duration":22813,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Interactivity\\Interactivity.js"}},{"traceId":"a40c92b03843b256","parentId":"7064377838733567","name":"read-resource","id":"6f62796c66693967","timestamp":96644010843,"duration":22782,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"726f657834616572","name":"build-module-js","id":"7064377838733567","timestamp":96644010821,"duration":23545,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Background\\Background.js"}},{"traceId":"a40c92b03843b256","parentId":"7062766966696e6d","name":"read-resource","id":"3070333267696a79","timestamp":96644010916,"duration":23533,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3974696562346f6c","name":"build-module-js","id":"7062766966696e6d","timestamp":96644010891,"duration":24199,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\AnimatableColor.js"}},{"traceId":"a40c92b03843b256","parentId":"6f3761696b386f77","name":"read-resource","id":"37766c3139317462","timestamp":96644012736,"duration":25380,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6662726d7238366d","name":"build-module-js","id":"6f3761696b386f77","timestamp":96644012706,"duration":25826,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Updaters\\StrokeColor\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"6d72336269616a35","name":"read-resource","id":"396b63316a656564","timestamp":96644012769,"duration":25792,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6662726d7238366d","name":"build-module-js","id":"6d72336269616a35","timestamp":96644012748,"duration":26003,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Updaters\\OutModes\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"76356876776e686b","name":"read-resource","id":"3879657370346974","timestamp":96644012809,"duration":25958,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6662726d7238366d","name":"build-module-js","id":"76356876776e686b","timestamp":96644012782,"duration":26161,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Updaters\\Life\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"6939643963357a73","name":"read-resource","id":"7477796964366768","timestamp":96644012679,"duration":26278,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6662726d7238366d","name":"build-module-js","id":"6939643963357a73","timestamp":96644012598,"duration":26525,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Updaters\\Opacity\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"31787430626a6537","name":"read-resource","id":"6e6263726f797232","timestamp":96644012842,"duration":26297,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6662726d7238366d","name":"build-module-js","id":"31787430626a6537","timestamp":96644012822,"duration":26474,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Updaters\\Size\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"713576396b623270","name":"read-resource","id":"6e70356674347031","timestamp":96644012980,"duration":26330,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6662726d7238366d","name":"build-module-js","id":"713576396b623270","timestamp":96644012958,"duration":26516,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Interactions\\External\\Bubble\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"6d76336c32336762","name":"read-resource","id":"70676c63326c3132","timestamp":96644012874,"duration":26615,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6662726d7238366d","name":"build-module-js","id":"6d76336c32336762","timestamp":96644012854,"duration":26809,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Updaters\\Color\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"7567313331686171","name":"read-resource","id":"396a327464367766","timestamp":96644013011,"duration":26674,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6662726d7238366d","name":"build-module-js","id":"7567313331686171","timestamp":96644012992,"duration":26900,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Interactions\\External\\Connect\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"306c36707772367a","name":"read-resource","id":"6f756d6466696c31","timestamp":96644013114,"duration":26803,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6662726d7238366d","name":"build-module-js","id":"306c36707772367a","timestamp":96644013088,"duration":27072,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Interactions\\External\\Repulse\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"79646d367938656c","name":"read-resource","id":"6872727232746969","timestamp":96644013043,"duration":27146,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6662726d7238366d","name":"build-module-js","id":"79646d367938656c","timestamp":96644013024,"duration":27356,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Interactions\\External\\Bounce\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"6170676736667a31","name":"read-resource","id":"75656e7a75756c70","timestamp":96644012945,"duration":27452,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6662726d7238366d","name":"build-module-js","id":"6170676736667a31","timestamp":96644012891,"duration":27688,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Updaters\\Angle\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"6668346b6f703269","name":"read-resource","id":"3565653575783076","timestamp":96644013147,"duration":27446,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6662726d7238366d","name":"build-module-js","id":"6668346b6f703269","timestamp":96644013126,"duration":27636,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Interactions\\External\\Grab\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"35396f6f717a3339","name":"read-resource","id":"647576716e656271","timestamp":96644013075,"duration":27703,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6662726d7238366d","name":"build-module-js","id":"35396f6f717a3339","timestamp":96644013056,"duration":27893,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Interactions\\External\\Attract\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"7674637a616d6f68","name":"read-resource","id":"786c676f6671737a","timestamp":96644013182,"duration":27782,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"726f657834616572","name":"build-module-js","id":"7674637a616d6f68","timestamp":96644013161,"duration":28099,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Motion\\Motion.js"}},{"traceId":"a40c92b03843b256","parentId":"63367133706f3662","name":"read-resource","id":"6473796b737a3874","timestamp":96644013255,"duration":28025,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3974696562346f6c","name":"build-module-js","id":"63367133706f3662","timestamp":96644013232,"duration":28394,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\Number\\ParticlesNumber.js"}},{"traceId":"a40c92b03843b256","parentId":"776e343477366134","name":"read-resource","id":"39667a7a68336768","timestamp":96644013291,"duration":28356,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3974696562346f6c","name":"build-module-js","id":"776e343477366134","timestamp":96644013271,"duration":28773,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\Links\\Links.js"}},{"traceId":"a40c92b03843b256","parentId":"71357a3377746a66","name":"read-resource","id":"79366c6e7a793061","timestamp":96644013215,"duration":28847,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"726f657834616572","name":"build-module-js","id":"71357a3377746a66","timestamp":96644013195,"duration":29060,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\FullScreen\\FullScreen.js"}},{"traceId":"a40c92b03843b256","parentId":"766d397a65623261","name":"read-resource","id":"7733636d68373832","timestamp":96644013323,"duration":28946,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3974696562346f6c","name":"build-module-js","id":"766d397a65623261","timestamp":96644013303,"duration":29845,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\Move\\Move.js"}}] +[{"traceId":"a40c92b03843b256","parentId":"6e6279706b666a75","name":"read-resource","id":"3433616830706466","timestamp":96644013460,"duration":29957,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3974696562346f6c","name":"build-module-js","id":"6e6279706b666a75","timestamp":96644013440,"duration":30558,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\Size\\Size.js"}},{"traceId":"a40c92b03843b256","parentId":"66676f6d696d6a39","name":"read-resource","id":"3976686765633177","timestamp":96644013428,"duration":30614,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3974696562346f6c","name":"build-module-js","id":"66676f6d696d6a39","timestamp":96644013408,"duration":30913,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\Twinkle\\Twinkle.js"}},{"traceId":"a40c92b03843b256","parentId":"6b6e6e75646a7a61","name":"read-resource","id":"3675646d6b757372","timestamp":96644013535,"duration":30807,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3974696562346f6c","name":"build-module-js","id":"6b6e6e75646a7a61","timestamp":96644013493,"duration":31211,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\Opacity\\Opacity.js"}},{"traceId":"a40c92b03843b256","parentId":"6f7a36713079756d","name":"read-resource","id":"6861346e77626a68","timestamp":96644013391,"duration":31392,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3974696562346f6c","name":"build-module-js","id":"6f7a36713079756d","timestamp":96644013371,"duration":31742,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\Collisions\\Collisions.js"}},{"traceId":"a40c92b03843b256","parentId":"6470343239743137","name":"read-resource","id":"366a33636f746835","timestamp":96644013359,"duration":31777,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3974696562346f6c","name":"build-module-js","id":"6470343239743137","timestamp":96644013338,"duration":32087,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\Rotate\\Rotate.js"}},{"traceId":"a40c92b03843b256","parentId":"766d6b6779767a62","name":"read-resource","id":"736d727130683273","timestamp":96644020603,"duration":31753,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3974696562346f6c","name":"build-module-js","id":"766d6b6779767a62","timestamp":96644020579,"duration":32703,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\Tilt\\Tilt.js"}},{"traceId":"a40c92b03843b256","parentId":"6337726c306a7a77","name":"read-resource","id":"3064316f3163666a","timestamp":96644020413,"duration":32917,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3974696562346f6c","name":"build-module-js","id":"6337726c306a7a77","timestamp":96644020320,"duration":33495,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\Wobble\\Wobble.js"}},{"traceId":"a40c92b03843b256","parentId":"7a65686869736174","name":"read-resource","id":"6a6e736b7a30786a","timestamp":96644020680,"duration":33166,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3974696562346f6c","name":"build-module-js","id":"7a65686869736174","timestamp":96644020655,"duration":33500,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\ZIndex\\ZIndex.js"}},{"traceId":"a40c92b03843b256","parentId":"3777653730787a37","name":"read-resource","id":"756b6c637a343375","timestamp":96644020482,"duration":33696,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3974696562346f6c","name":"build-module-js","id":"3777653730787a37","timestamp":96644020449,"duration":33974,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\Bounce\\Bounce.js"}},{"traceId":"a40c92b03843b256","parentId":"693076727961376b","name":"read-resource","id":"356c33316e723778","timestamp":96644020641,"duration":33798,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3974696562346f6c","name":"build-module-js","id":"693076727961376b","timestamp":96644020617,"duration":34135,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\Orbit\\Orbit.js"}},{"traceId":"a40c92b03843b256","parentId":"316e68796e78746b","name":"read-resource","id":"7262757866383863","timestamp":96644020712,"duration":34065,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3974696562346f6c","name":"build-module-js","id":"316e68796e78746b","timestamp":96644020693,"duration":34383,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\Repulse\\Repulse.js"}},{"traceId":"a40c92b03843b256","parentId":"3972677562717774","name":"read-resource","id":"626a773538747532","timestamp":96644020746,"duration":34350,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3974696562346f6c","name":"build-module-js","id":"3972677562717774","timestamp":96644020726,"duration":34616,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\Destroy\\Destroy.js"}},{"traceId":"a40c92b03843b256","parentId":"343665656d693065","name":"read-resource","id":"326f3132356b3837","timestamp":96644020523,"duration":34838,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3974696562346f6c","name":"build-module-js","id":"343665656d693065","timestamp":96644020498,"duration":35185,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\Roll\\Roll.js"}},{"traceId":"a40c92b03843b256","parentId":"767268387a667565","name":"read-resource","id":"613638726c6a7038","timestamp":96644020565,"duration":35139,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3974696562346f6c","name":"build-module-js","id":"767268387a667565","timestamp":96644020539,"duration":35470,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\Life\\Life.js"}},{"traceId":"a40c92b03843b256","parentId":"616e7564636e6c30","name":"read-resource","id":"663861676a356d74","timestamp":96644028158,"duration":36010,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6662726d7238366d","name":"build-module-js","id":"616e7564636e6c30","timestamp":96644028091,"duration":36527,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Shapes\\Star\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"7165666479373767","name":"read-resource","id":"6169733065747836","timestamp":96644028221,"duration":36440,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6662726d7238366d","name":"build-module-js","id":"7165666479373767","timestamp":96644028197,"duration":36767,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Shapes\\Image\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"39733930726b7131","name":"read-resource","id":"666a343667697576","timestamp":96644028330,"duration":36659,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6662726d7238366d","name":"build-module-js","id":"39733930726b7131","timestamp":96644028310,"duration":36944,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Shapes\\Polygon\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"656e737468346932","name":"read-resource","id":"77666f6b6a733774","timestamp":96644028298,"duration":36976,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6662726d7238366d","name":"build-module-js","id":"656e737468346932","timestamp":96644028275,"duration":37202,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Shapes\\Circle\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"7639317135707a69","name":"read-resource","id":"7237707569706b73","timestamp":96644028462,"duration":37036,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6662726d7238366d","name":"build-module-js","id":"7639317135707a69","timestamp":96644028440,"duration":37294,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Interactions\\Particles\\Links\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"7479746d6e716e6e","name":"read-resource","id":"6f64687961346767","timestamp":96644028262,"duration":37489,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6662726d7238366d","name":"build-module-js","id":"7479746d6e716e6e","timestamp":96644028235,"duration":37716,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Shapes\\Square\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"7264386266616e75","name":"read-resource","id":"386d31366a616274","timestamp":96644028423,"duration":37550,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6662726d7238366d","name":"build-module-js","id":"7264386266616e75","timestamp":96644028399,"duration":37842,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Shapes\\Line\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"636d7032316e7773","name":"read-resource","id":"3069613473376834","timestamp":96644028362,"duration":37915,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6662726d7238366d","name":"build-module-js","id":"636d7032316e7773","timestamp":96644028342,"duration":38309,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Shapes\\Text\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"30617231746d696a","name":"read-resource","id":"6f356e3973766e72","timestamp":96644028528,"duration":38170,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6662726d7238366d","name":"build-module-js","id":"30617231746d696a","timestamp":96644028507,"duration":38549,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Interactions\\Particles\\Attract\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"727a353538643667","name":"read-resource","id":"7863786367673938","timestamp":96644028495,"duration":38610,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6662726d7238366d","name":"build-module-js","id":"727a353538643667","timestamp":96644028475,"duration":38950,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Interactions\\Particles\\Collisions\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"336935346e32346b","name":"read-resource","id":"33636f356e766835","timestamp":96644036835,"duration":36336,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"386a35767974726d","name":"build-module-js","id":"336935346e32346b","timestamp":96644036814,"duration":37871,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Plugins\\Absorbers\\AbsorberInstance.js"}},{"traceId":"a40c92b03843b256","parentId":"71697a7a74356473","name":"read-resource","id":"6570316761777778","timestamp":96644036760,"duration":37984,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"646a6d6d6536346c","name":"build-module-js","id":"71697a7a74356473","timestamp":96644036730,"duration":38617,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Updaters\\Wobble\\WobbleUpdater.js"}},{"traceId":"a40c92b03843b256","parentId":"6e6366676d766436","name":"read-resource","id":"6e77377073707133","timestamp":96644036697,"duration":38678,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"31696f6864773064","name":"build-module-js","id":"6e6366676d766436","timestamp":96644036624,"duration":39288,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Updaters\\Tilt\\TiltUpdater.js"}},{"traceId":"a40c92b03843b256","parentId":"696463726d706165","name":"read-resource","id":"33326a6b7762336b","timestamp":96644036800,"duration":39132,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69357a7576713576","name":"build-module-js","id":"696463726d706165","timestamp":96644036776,"duration":41129,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Plugins\\Emitters\\EmitterInstance.js"}},{"traceId":"a40c92b03843b256","parentId":"7974383178327162","name":"read-resource","id":"78633674376b6774","timestamp":96644036881,"duration":41072,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6963683862397576","name":"build-module-js","id":"7974383178327162","timestamp":96644036849,"duration":41636,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Updaters\\Roll\\RollUpdater.js"}},{"traceId":"a40c92b03843b256","parentId":"7073656872623378","name":"read-resource","id":"6265763664317035","timestamp":96644036961,"duration":41548,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"626263313766666b","name":"build-module-js","id":"7073656872623378","timestamp":96644036941,"duration":42337,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Interactions\\External\\Trail\\TrailMaker.js"}},{"traceId":"a40c92b03843b256","parentId":"6230763734716f34","name":"read-resource","id":"6a76306a77317964","timestamp":96644036928,"duration":42399,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"336f393074306265","name":"build-module-js","id":"6230763734716f34","timestamp":96644036905,"duration":43727,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Plugins\\PolygonMask\\utils.js"}},{"traceId":"a40c92b03843b256","parentId":"643574686e796f66","name":"read-resource","id":"3269767563796176","timestamp":96644071139,"duration":29321,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"637079786f757265","name":"build-module-js","id":"643574686e796f66","timestamp":96644071052,"duration":30136,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Plugins\\PolygonMask\\Options\\Classes\\Draw.js"}},{"traceId":"a40c92b03843b256","parentId":"3964337270387575","name":"read-resource","id":"693037706c643834","timestamp":96644071303,"duration":29934,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"637079786f757265","name":"build-module-js","id":"3964337270387575","timestamp":96644071284,"duration":30445,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Plugins\\PolygonMask\\Options\\Classes\\Move.js"}},{"traceId":"a40c92b03843b256","parentId":"7379666c70773075","name":"read-resource","id":"61636b6935683871","timestamp":96644071230,"duration":30593,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"637079786f757265","name":"build-module-js","id":"7379666c70773075","timestamp":96644071210,"duration":31252,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Plugins\\PolygonMask\\Options\\Classes\\Inline.js"}},{"traceId":"a40c92b03843b256","parentId":"7263693478367167","name":"read-resource","id":"396665347a6b3062","timestamp":96644071197,"duration":31310,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3032666130793963","name":"build-module-js","id":"7263693478367167","timestamp":96644071174,"duration":32140,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Plugins\\Absorbers\\Options\\Classes\\AbsorberSize.js"}},{"traceId":"a40c92b03843b256","parentId":"65786179397a3562","name":"read-resource","id":"387966727437747a","timestamp":96644071394,"duration":31978,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"637079786f757265","name":"build-module-js","id":"65786179397a3562","timestamp":96644071375,"duration":32537,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Plugins\\PolygonMask\\Options\\Classes\\LocalSvg.js"}},{"traceId":"a40c92b03843b256","parentId":"676f65336e316573","name":"read-resource","id":"37376c33746f3672","timestamp":96644071272,"duration":32682,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3032666130793963","name":"build-module-js","id":"676f65336e316573","timestamp":96644071244,"duration":33191,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\OptionsColor.js"}},{"traceId":"a40c92b03843b256","parentId":"617277757a32697a","name":"read-resource","id":"616578636378727a","timestamp":96644071360,"duration":33126,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"686c677177776636","name":"build-module-js","id":"617277757a32697a","timestamp":96644071338,"duration":33560,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Plugins\\Emitters\\Options\\Classes\\EmitterRate.js"}},{"traceId":"a40c92b03843b256","parentId":"6f736d7768766c67","name":"read-resource","id":"7333733436653032","timestamp":96644084611,"duration":23623,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"686c677177776636","name":"build-module-js","id":"6f736d7768766c67","timestamp":96644084510,"duration":24227,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Plugins\\Emitters\\Options\\Classes\\EmitterSize.js"}},{"traceId":"a40c92b03843b256","parentId":"6171396b6a316872","name":"read-resource","id":"623931366e316f32","timestamp":96644084759,"duration":24026,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6568743130336d33","name":"build-module-js","id":"6171396b6a316872","timestamp":96644084730,"duration":24416,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Enums\\Types\\AlterType.js"}},{"traceId":"a40c92b03843b256","parentId":"6a3665706f723078","name":"read-resource","id":"6a6b726c31613779","timestamp":96644084711,"duration":24472,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"686c677177776636","name":"build-module-js","id":"6a3665706f723078","timestamp":96644084669,"duration":25007,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Plugins\\Emitters\\Options\\Classes\\EmitterLife.js"}},{"traceId":"a40c92b03843b256","parentId":"6e6c6a6d73657065","name":"read-resource","id":"797670767333776f","timestamp":96644085131,"duration":24594,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6568743130336d33","name":"build-module-js","id":"6e6c6a6d73657065","timestamp":96644085085,"duration":24995,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Enums\\Types\\DivType.js"}},{"traceId":"a40c92b03843b256","parentId":"30696938736f316d","name":"read-resource","id":"336d73667a756d6a","timestamp":96644085038,"duration":25074,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6568743130336d33","name":"build-module-js","id":"30696938736f316d","timestamp":96644084933,"duration":25375,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Enums\\Types\\StartValueType.js"}},{"traceId":"a40c92b03843b256","parentId":"3067323070777766","name":"read-resource","id":"38387a33656c6667","timestamp":96644085227,"duration":25103,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6568743130336d33","name":"build-module-js","id":"3067323070777766","timestamp":96644085194,"duration":25326,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Enums\\Types\\ShapeType.js"}},{"traceId":"a40c92b03843b256","parentId":"6c616e3737343839","name":"read-resource","id":"6a323566796f636f","timestamp":96644085272,"duration":25265,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6568743130336d33","name":"build-module-js","id":"6c616e3737343839","timestamp":96644085245,"duration":25458,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Enums\\Types\\InteractorType.js"}},{"traceId":"a40c92b03843b256","parentId":"6436707975367766","name":"read-resource","id":"76616e776a323776","timestamp":96644085178,"duration":25541,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6568743130336d33","name":"build-module-js","id":"6436707975367766","timestamp":96644085149,"duration":25735,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Enums\\Types\\DestroyType.js"}},{"traceId":"a40c92b03843b256","parentId":"3364307265696a74","name":"read-resource","id":"7238686a75756736","timestamp":96644085543,"duration":25357,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6568743130336d33","name":"build-module-js","id":"3364307265696a74","timestamp":96644085505,"duration":25555,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Enums\\Types\\OrbitType.js"}},{"traceId":"a40c92b03843b256","parentId":"6671367039613231","name":"read-resource","id":"377a6d6470373979","timestamp":96644085936,"duration":25139,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37373638696a7572","name":"build-module-js","id":"6671367039613231","timestamp":96644085688,"duration":25567,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Enums\\Directions\\MoveDirection.js"}},{"traceId":"a40c92b03843b256","parentId":"3078686975696467","name":"read-resource","id":"38356d776f31346a","timestamp":96644085598,"duration":25672,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6568743130336d33","name":"build-module-js","id":"3078686975696467","timestamp":96644085569,"duration":25859,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Enums\\Types\\GradientType.js"}},{"traceId":"a40c92b03843b256","parentId":"6f74377372737876","name":"read-resource","id":"333866646b75396f","timestamp":96644085460,"duration":25982,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6568743130336d33","name":"build-module-js","id":"6f74377372737876","timestamp":96644085356,"duration":26270,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Enums\\Types\\EasingType.js"}},{"traceId":"a40c92b03843b256","parentId":"377664636f627367","name":"read-resource","id":"77316f6767363874","timestamp":96644086112,"duration":25528,"tags":{}}] +[{"traceId":"a40c92b03843b256","parentId":"6131653635746161","name":"build-module-js","id":"377664636f627367","timestamp":96644086091,"duration":26097,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Enums\\Modes\\DivMode.js"}},{"traceId":"a40c92b03843b256","parentId":"78376c343237366b","name":"read-resource","id":"386579346e357279","timestamp":96644086148,"duration":26081,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37373638696a7572","name":"build-module-js","id":"78376c343237366b","timestamp":96644086126,"duration":26369,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Enums\\Directions\\OutModeDirection.js"}},{"traceId":"a40c92b03843b256","parentId":"3833346375696161","name":"read-resource","id":"376e72726a366f69","timestamp":96644086186,"duration":26339,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6131653635746161","name":"build-module-js","id":"3833346375696161","timestamp":96644086161,"duration":26599,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Enums\\Modes\\DestroyMode.js"}},{"traceId":"a40c92b03843b256","parentId":"3472303368637a63","name":"read-resource","id":"346f393131757770","timestamp":96644086290,"duration":26495,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6131653635746161","name":"build-module-js","id":"3472303368637a63","timestamp":96644086269,"duration":26764,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Enums\\Modes\\ClickMode.js"}},{"traceId":"a40c92b03843b256","parentId":"7472747731697138","name":"read-resource","id":"6330623830313232","timestamp":96644086220,"duration":26836,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6131653635746161","name":"build-module-js","id":"7472747731697138","timestamp":96644086199,"duration":27131,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Enums\\Modes\\HoverMode.js"}},{"traceId":"a40c92b03843b256","parentId":"73356e6575646432","name":"read-resource","id":"7633617569773830","timestamp":96644086012,"duration":27347,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37373638696a7572","name":"build-module-js","id":"73356e6575646432","timestamp":96644085983,"duration":27594,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Enums\\Directions\\TiltDirection.js"}},{"traceId":"a40c92b03843b256","parentId":"646771727668756f","name":"read-resource","id":"396b737a7933306c","timestamp":96644086047,"duration":27548,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37373638696a7572","name":"build-module-js","id":"646771727668756f","timestamp":96644086026,"duration":27747,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Enums\\Directions\\RotateDirection.js"}},{"traceId":"a40c92b03843b256","parentId":"75346d32656e6f6e","name":"read-resource","id":"326a633530317439","timestamp":96644086322,"duration":27469,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6131653635746161","name":"build-module-js","id":"75346d32656e6f6e","timestamp":96644086302,"duration":27681,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Enums\\Modes\\OutMode.js"}},{"traceId":"a40c92b03843b256","parentId":"716f6e7937337661","name":"read-resource","id":"676374786d64306e","timestamp":96644086255,"duration":27747,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6131653635746161","name":"build-module-js","id":"716f6e7937337661","timestamp":96644086234,"duration":27968,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Enums\\Modes\\CollisionMode.js"}},{"traceId":"a40c92b03843b256","parentId":"6163627270723468","name":"read-resource","id":"36756f6d66756a37","timestamp":96644092309,"duration":25320,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7062766966696e6d","name":"build-module-js","id":"6163627270723468","timestamp":96644092287,"duration":26290,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\HslAnimation.js"}},{"traceId":"a40c92b03843b256","parentId":"6e613430697a6861","name":"read-resource","id":"7a6d7168666a7062","timestamp":96644092390,"duration":26271,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3930637034726577","name":"build-module-js","id":"6e613430697a6861","timestamp":96644092361,"duration":26997,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\BackgroundMask\\BackgroundMaskCover.js"}},{"traceId":"a40c92b03843b256","parentId":"6472783364683561","name":"read-resource","id":"6a3068306579756d","timestamp":96644092348,"duration":27065,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"39736e32666e3239","name":"build-module-js","id":"6472783364683561","timestamp":96644092327,"duration":27514,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Theme\\ThemeDefault.js"}},{"traceId":"a40c92b03843b256","parentId":"37676930706e7969","name":"read-resource","id":"6c346766746c3734","timestamp":96644092269,"duration":27619,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6131653635746161","name":"build-module-js","id":"37676930706e7969","timestamp":96644092250,"duration":28009,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Enums\\Modes\\ThemeMode.js"}},{"traceId":"a40c92b03843b256","parentId":"6d3736377a687a37","name":"read-resource","id":"776f316875726d30","timestamp":96644092156,"duration":28158,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6131653635746161","name":"build-module-js","id":"6d3736377a687a37","timestamp":96644092054,"duration":28768,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Enums\\Modes\\RollMode.js"}},{"traceId":"a40c92b03843b256","parentId":"387375346b383474","name":"read-resource","id":"33326d3473777471","timestamp":96644092238,"duration":28615,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6131653635746161","name":"build-module-js","id":"387375346b383474","timestamp":96644092218,"duration":28849,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Enums\\Modes\\ResponsiveMode.js"}},{"traceId":"a40c92b03843b256","parentId":"6b65646c78386f36","name":"read-resource","id":"626d327773616f75","timestamp":96644092205,"duration":28887,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6131653635746161","name":"build-module-js","id":"6b65646c78386f36","timestamp":96644092183,"duration":29091,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Enums\\Modes\\SizeMode.js"}},{"traceId":"a40c92b03843b256","parentId":"64636c3679386236","name":"read-resource","id":"656a3667726e7468","timestamp":96644094930,"duration":27651,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d72336269616a35","name":"build-module-js","id":"64636c3679386236","timestamp":96644094880,"duration":29177,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Updaters\\OutModes\\OutOfCanvasUpdater.js"}},{"traceId":"a40c92b03843b256","parentId":"3364383061746a67","name":"read-resource","id":"7838353778717634","timestamp":96644095101,"duration":29084,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6939643963357a73","name":"build-module-js","id":"3364383061746a67","timestamp":96644095055,"duration":31091,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Updaters\\Opacity\\OpacityUpdater.js"}},{"traceId":"a40c92b03843b256","parentId":"676e75767932746a","name":"read-resource","id":"3639357168366268","timestamp":96644095557,"duration":30661,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"31787430626a6537","name":"build-module-js","id":"676e75767932746a","timestamp":96644095517,"duration":31894,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Updaters\\Size\\SizeUpdater.js"}},{"traceId":"a40c92b03843b256","parentId":"6e67677a34627435","name":"read-resource","id":"636667386573686d","timestamp":96644094803,"duration":32653,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f3761696b386f77","name":"build-module-js","id":"6e67677a34627435","timestamp":96644094607,"duration":34012,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Updaters\\StrokeColor\\StrokeColorUpdater.js"}},{"traceId":"a40c92b03843b256","parentId":"6267786d39713838","name":"read-resource","id":"6b64676b76796832","timestamp":96644095446,"duration":33233,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d76336c32336762","name":"build-module-js","id":"6267786d39713838","timestamp":96644095400,"duration":34100,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Updaters\\Color\\ColorUpdater.js"}},{"traceId":"a40c92b03843b256","parentId":"3275387078673576","name":"read-resource","id":"69646364687a6a77","timestamp":96644095631,"duration":33917,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6170676736667a31","name":"build-module-js","id":"3275387078673576","timestamp":96644095603,"duration":34920,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Updaters\\Angle\\AngleUpdater.js"}},{"traceId":"a40c92b03843b256","parentId":"7776716b68637162","name":"read-resource","id":"6d3935326b6d3331","timestamp":96644095348,"duration":35226,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76356876776e686b","name":"build-module-js","id":"7776716b68637162","timestamp":96644095201,"duration":35925,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Updaters\\Life\\LifeUpdater.js"}},{"traceId":"a40c92b03843b256","parentId":"7261787971767532","name":"read-resource","id":"3178637832666c36","timestamp":96644095737,"duration":35423,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6668346b6f703269","name":"build-module-js","id":"7261787971767532","timestamp":96644095714,"duration":36062,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Interactions\\External\\Grab\\Grabber.js"}},{"traceId":"a40c92b03843b256","parentId":"33786f6e736b7637","name":"read-resource","id":"6f346c6c73763738","timestamp":96644095814,"duration":35995,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79646d367938656c","name":"build-module-js","id":"33786f6e736b7637","timestamp":96644095787,"duration":36836,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Interactions\\External\\Bounce\\Bouncer.js"}},{"traceId":"a40c92b03843b256","parentId":"7a39786b62686e6b","name":"read-resource","id":"6a356d6f72306868","timestamp":96644095907,"duration":36772,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"35396f6f717a3339","name":"build-module-js","id":"7a39786b62686e6b","timestamp":96644095883,"duration":38030,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Interactions\\External\\Attract\\Attractor.js"}},{"traceId":"a40c92b03843b256","parentId":"37636c79306c3732","name":"read-resource","id":"62396c3732767464","timestamp":96644095678,"duration":38307,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"306c36707772367a","name":"build-module-js","id":"37636c79306c3732","timestamp":96644095647,"duration":40456,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Interactions\\External\\Repulse\\Repulser.js"}},{"traceId":"a40c92b03843b256","parentId":"6666613278376f79","name":"read-resource","id":"766431677135346c","timestamp":96644095870,"duration":40324,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"713576396b623270","name":"build-module-js","id":"6666613278376f79","timestamp":96644095849,"duration":43300,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Interactions\\External\\Bubble\\Bubbler.js"}},{"traceId":"a40c92b03843b256","parentId":"766d33646a6a686e","name":"read-resource","id":"6539616c63367638","timestamp":96644095940,"duration":43273,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e6279706b666a75","name":"build-module-js","id":"766d33646a6a686e","timestamp":96644095921,"duration":43834,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\ValueWithRandom.js"}},{"traceId":"a40c92b03843b256","parentId":"33766a31356b7537","name":"read-resource","id":"75306e6a77643477","timestamp":96644095773,"duration":44033,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7567313331686171","name":"build-module-js","id":"33766a31356b7537","timestamp":96644095751,"duration":44668,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Interactions\\External\\Connect\\Connector.js"}},{"traceId":"a40c92b03843b256","parentId":"3667357a63643561","name":"read-resource","id":"616a6d3031387470","timestamp":96644095975,"duration":44485,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7674637a616d6f68","name":"build-module-js","id":"3667357a63643561","timestamp":96644095956,"duration":44888,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Motion\\MotionReduce.js"}},{"traceId":"a40c92b03843b256","parentId":"727768357971736e","name":"read-resource","id":"776d33776a656d73","timestamp":96644096190,"duration":44690,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766d397a65623261","name":"build-module-js","id":"727768357971736e","timestamp":96644096076,"duration":45238,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\Move\\Attract.js"}},{"traceId":"a40c92b03843b256","parentId":"6932736662686169","name":"read-resource","id":"36357a6d366e7937","timestamp":96644096334,"duration":45003,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766d397a65623261","name":"build-module-js","id":"6932736662686169","timestamp":96644096291,"duration":45242,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\Move\\MoveAngle.js"}},{"traceId":"a40c92b03843b256","parentId":"6d6e6f3074773261","name":"read-resource","id":"3733796f766b6669","timestamp":96644096479,"duration":45070,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"776e343477366134","name":"build-module-js","id":"6d6e6f3074773261","timestamp":96644096455,"duration":45356,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\Links\\LinksShadow.js"}},{"traceId":"a40c92b03843b256","parentId":"726574686465686d","name":"read-resource","id":"6172776b647a7938","timestamp":96644096390,"duration":45440,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"63367133706f3662","name":"build-module-js","id":"726574686465686d","timestamp":96644096359,"duration":45823,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\Number\\Density.js"}},{"traceId":"a40c92b03843b256","parentId":"617a757832377630","name":"read-resource","id":"393731703379376c","timestamp":96644096716,"duration":45483,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766d397a65623261","name":"build-module-js","id":"617a757832377630","timestamp":96644096631,"duration":45833,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\Move\\OutModes.js"}},{"traceId":"a40c92b03843b256","parentId":"303839767861716b","name":"read-resource","id":"73366738786f7473","timestamp":96644096513,"duration":45992,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766d397a65623261","name":"build-module-js","id":"303839767861716b","timestamp":96644096493,"duration":46295,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\Move\\Trail.js"}},{"traceId":"a40c92b03843b256","parentId":"35356f66716a6d74","name":"read-resource","id":"6a39726635373577","timestamp":96644096880,"duration":45930,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766d397a65623261","name":"build-module-js","id":"35356f66716a6d74","timestamp":96644096752,"duration":46272,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\Move\\MoveGravity.js"}},{"traceId":"a40c92b03843b256","parentId":"373774397970736c","name":"read-resource","id":"6630676235656932","timestamp":96644096548,"duration":46491,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"776e343477366134","name":"build-module-js","id":"373774397970736c","timestamp":96644096527,"duration":46726,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\Links\\LinksTriangle.js"}},{"traceId":"a40c92b03843b256","parentId":"3575767235306376","name":"read-resource","id":"6a7362396d6f6f69","timestamp":96644096963,"duration":46305,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b6e6e75646a7a61","name":"build-module-js","id":"3575767235306376","timestamp":96644096941,"duration":46644,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\Opacity\\OpacityAnimation.js"}},{"traceId":"a40c92b03843b256","parentId":"636579356c6b397a","name":"read-resource","id":"7974683730336f73","timestamp":96644096998,"duration":46608,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e6279706b666a75","name":"build-module-js","id":"636579356c6b397a","timestamp":96644096978,"duration":46959,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\Size\\SizeAnimation.js"}},{"traceId":"a40c92b03843b256","parentId":"336f7161776b336a","name":"read-resource","id":"726e743562776262","timestamp":96644096922,"duration":47032,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766d397a65623261","name":"build-module-js","id":"336f7161776b336a","timestamp":96644096897,"duration":47295,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\Move\\Spin.js"}},{"traceId":"a40c92b03843b256","parentId":"6638396f7a706435","name":"read-resource","id":"7766656c71787064","timestamp":96644097033,"duration":47216,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"66676f6d696d6a39","name":"build-module-js","id":"6638396f7a706435","timestamp":96644097013,"duration":47528,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\Twinkle\\TwinkleValues.js"}},{"traceId":"a40c92b03843b256","parentId":"6c31697270303075","name":"read-resource","id":"786361746c6f6b74","timestamp":96644107144,"duration":49994,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f7a36713079756d","name":"build-module-js","id":"6c31697270303075","timestamp":96644107122,"duration":50642,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\Collisions\\CollisionsOverlap.js"}},{"traceId":"a40c92b03843b256","parentId":"696d743639357065","name":"read-resource","id":"6b3165653668697a","timestamp":96644107056,"duration":50756,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"683530766263736f","name":"build-module-js","id":"696d743639357065","timestamp":96644107031,"duration":51281,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Interactivity\\Events\\Events.js"}},{"traceId":"a40c92b03843b256","parentId":"646576796b796375","name":"read-resource","id":"357574757861696c","timestamp":96644107103,"duration":51231,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"693076727961376b","name":"build-module-js","id":"646576796b796375","timestamp":96644107069,"duration":51481,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\AnimationOptions.js"}},{"traceId":"a40c92b03843b256","parentId":"77777474396f7168","name":"read-resource","id":"647966716d70746a","timestamp":96644107308,"duration":51261,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3777653730787a37","name":"build-module-js","id":"77777474396f7168","timestamp":96644107283,"duration":51468,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\Bounce\\BounceFactor.js"}},{"traceId":"a40c92b03843b256","parentId":"646e396879796272","name":"read-resource","id":"71626f3477797030","timestamp":96644107179,"duration":51586,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6470343239743137","name":"build-module-js","id":"646e396879796272","timestamp":96644107158,"duration":51802,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\Rotate\\RotateAnimation.js"}},{"traceId":"a40c92b03843b256","parentId":"6f77386c70766675","name":"read-resource","id":"643639326e7a616a","timestamp":96644107245,"duration":51735,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766d6b6779767a62","name":"build-module-js","id":"6f77386c70766675","timestamp":96644107225,"duration":51952,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\Tilt\\TiltAnimation.js"}},{"traceId":"a40c92b03843b256","parentId":"6179716b34317674","name":"read-resource","id":"6d7131787a636a6f","timestamp":96644107212,"duration":51982,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"693076727961376b","name":"build-module-js","id":"6179716b34317674","timestamp":96644107192,"duration":52209,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\Orbit\\OrbitRotation.js"}},{"traceId":"a40c92b03843b256","parentId":"357938733234726f","name":"read-resource","id":"39336b3339733871","timestamp":96644106995,"duration":52444,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"683530766263736f","name":"build-module-js","id":"357938733234726f","timestamp":96644106929,"duration":52899,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Interactivity\\Modes\\Modes.js"}}] +[{"traceId":"a40c92b03843b256","parentId":"7031646e62356264","name":"read-resource","id":"3062397a33316b34","timestamp":96644115127,"duration":46876,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766d397a65623261","name":"build-module-js","id":"7031646e62356264","timestamp":96644115029,"duration":47487,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\Move\\Path\\Path.js"}},{"traceId":"a40c92b03843b256","parentId":"706566316e636777","name":"read-resource","id":"7179706a64706466","timestamp":96644115195,"duration":47363,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7165666479373767","name":"build-module-js","id":"706566316e636777","timestamp":96644115169,"duration":49482,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Shapes\\Image\\ImageDrawer.js"}},{"traceId":"a40c92b03843b256","parentId":"656276686d746371","name":"read-resource","id":"367631776662396e","timestamp":96644115244,"duration":49460,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7479746d6e716e6e","name":"build-module-js","id":"656276686d746371","timestamp":96644115212,"duration":49837,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Shapes\\Square\\SquareDrawer.js"}},{"traceId":"a40c92b03843b256","parentId":"3038653871783939","name":"read-resource","id":"68346c6979636773","timestamp":96644115328,"duration":49778,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7264386266616e75","name":"build-module-js","id":"3038653871783939","timestamp":96644115295,"duration":50149,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Shapes\\Line\\LineDrawer.js"}},{"traceId":"a40c92b03843b256","parentId":"7367366e6c626a77","name":"read-resource","id":"637a633563783734","timestamp":96644115452,"duration":50027,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"39733930726b7131","name":"build-module-js","id":"7367366e6c626a77","timestamp":96644115426,"duration":50379,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Shapes\\Polygon\\TriangleDrawer.js"}},{"traceId":"a40c92b03843b256","parentId":"7065616469363064","name":"read-resource","id":"337577613335646b","timestamp":96644115366,"duration":50470,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"656e737468346932","name":"build-module-js","id":"7065616469363064","timestamp":96644115344,"duration":50826,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Shapes\\Circle\\CircleDrawer.js"}},{"traceId":"a40c92b03843b256","parentId":"367a753365337174","name":"read-resource","id":"3068776661633279","timestamp":96644115501,"duration":50704,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7639317135707a69","name":"build-module-js","id":"367a753365337174","timestamp":96644115475,"duration":52026,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Interactions\\Particles\\Links\\Linker.js"}},{"traceId":"a40c92b03843b256","parentId":"3876356734656879","name":"read-resource","id":"7039656b7775797a","timestamp":96644115412,"duration":52152,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"616e7564636e6c30","name":"build-module-js","id":"3876356734656879","timestamp":96644115383,"duration":52994,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Shapes\\Star\\StarDrawer.js"}},{"traceId":"a40c92b03843b256","parentId":"7475326235796b6c","name":"read-resource","id":"757a667470703635","timestamp":96644116080,"duration":52397,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"727a353538643667","name":"build-module-js","id":"7475326235796b6c","timestamp":96644115776,"duration":53790,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Interactions\\Particles\\Collisions\\Collider.js"}},{"traceId":"a40c92b03843b256","parentId":"3779657532323434","name":"read-resource","id":"3771743131733477","timestamp":96644115678,"duration":53960,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"30617231746d696a","name":"build-module-js","id":"3779657532323434","timestamp":96644115562,"duration":54848,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Interactions\\Particles\\Attract\\Attractor.js"}},{"traceId":"a40c92b03843b256","parentId":"7175657368743671","name":"read-resource","id":"3875626f79796775","timestamp":96644115281,"duration":55204,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"39733930726b7131","name":"build-module-js","id":"7175657368743671","timestamp":96644115258,"duration":55776,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Shapes\\Polygon\\PolygonDrawer.js"}},{"traceId":"a40c92b03843b256","parentId":"3270387977667671","name":"read-resource","id":"36326c6b62716432","timestamp":96644116480,"duration":54598,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3972677562717774","name":"build-module-js","id":"3270387977667671","timestamp":96644116401,"duration":55441,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\Destroy\\Split.js"}},{"traceId":"a40c92b03843b256","parentId":"6d3363796f736973","name":"read-resource","id":"666668766c613636","timestamp":96644116628,"duration":55290,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"767268387a667565","name":"build-module-js","id":"6d3363796f736973","timestamp":96644116569,"duration":55866,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\Life\\LifeDuration.js"}},{"traceId":"a40c92b03843b256","parentId":"6239616d33656934","name":"read-resource","id":"366e707637376c79","timestamp":96644116302,"duration":56168,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"343665656d693065","name":"build-module-js","id":"6239616d33656934","timestamp":96644116204,"duration":56592,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\Roll\\RollLight.js"}},{"traceId":"a40c92b03843b256","parentId":"336f62396d716869","name":"read-resource","id":"38736231626e6134","timestamp":96644115547,"duration":57268,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"636d7032316e7773","name":"build-module-js","id":"336f62396d716869","timestamp":96644115520,"duration":57916,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Shapes\\Text\\TextDrawer.js"}},{"traceId":"a40c92b03843b256","parentId":"6d6878333637656b","name":"read-resource","id":"38626e7634316174","timestamp":96644116550,"duration":56915,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"767268387a667565","name":"build-module-js","id":"6d6878333637656b","timestamp":96644116516,"duration":57209,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\Life\\LifeDelay.js"}},{"traceId":"a40c92b03843b256","parentId":"6972643874776d79","name":"read-resource","id":"327838657876776d","timestamp":96644116366,"duration":57380,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7639317135707a69","name":"build-module-js","id":"6972643874776d79","timestamp":96644116327,"duration":57664,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Interactions\\Particles\\Links\\plugin.js"}},{"traceId":"a40c92b03843b256","parentId":"616163626b346468","name":"read-resource","id":"7a38346f6d6d7779","timestamp":96644175034,"duration":6202,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7263693478367167","name":"build-module-js","id":"616163626b346468","timestamp":96644174949,"duration":6713,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Plugins\\Absorbers\\Options\\Classes\\AbsorberSizeLimit.js"}},{"traceId":"a40c92b03843b256","parentId":"77697a617375357a","name":"read-resource","id":"30306c6d38626777","timestamp":96644175092,"duration":6601,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"643574686e796f66","name":"build-module-js","id":"77697a617375357a","timestamp":96644175067,"duration":7001,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Plugins\\PolygonMask\\Options\\Classes\\DrawStroke.js"}},{"traceId":"a40c92b03843b256","parentId":"32753237636b7766","name":"read-resource","id":"67666a3973313832","timestamp":96644181063,"duration":5283,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"64636c3679386236","name":"build-module-js","id":"32753237636b7766","timestamp":96644181041,"duration":6209,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Updaters\\OutModes\\Utils.js"}},{"traceId":"a40c92b03843b256","parentId":"367365673730346c","name":"read-resource","id":"6d7a797565643462","timestamp":96644180980,"duration":6360,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6666613278376f79","name":"build-module-js","id":"367365673730346c","timestamp":96644180892,"duration":7433,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Interactions\\External\\Bubble\\ProcessBubbleType.js"}},{"traceId":"a40c92b03843b256","parentId":"39316e3773667265","name":"read-resource","id":"3061797365316868","timestamp":96644181028,"duration":7400,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766d33646a6a686e","name":"build-module-js","id":"39316e3773667265","timestamp":96644181005,"duration":8091,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Random.js"}},{"traceId":"a40c92b03843b256","parentId":"6530677a35696236","name":"read-resource","id":"6875706d75377277","timestamp":96644179467,"duration":10041,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6163627270723468","name":"build-module-js","id":"6530677a35696236","timestamp":96644179381,"duration":10975,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\ColorAnimation.js"}},{"traceId":"a40c92b03843b256","parentId":"653630697a746165","name":"read-resource","id":"6439796630307362","timestamp":96644183313,"duration":7624,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"357938733234726f","name":"build-module-js","id":"653630697a746165","timestamp":96644183284,"duration":8204,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Interactivity\\Modes\\Bubble.js"}},{"traceId":"a40c92b03843b256","parentId":"747970727832326f","name":"read-resource","id":"3276346571307272","timestamp":96644183269,"duration":8267,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"696d743639357065","name":"build-module-js","id":"747970727832326f","timestamp":96644183242,"duration":8650,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Interactivity\\Events\\ClickEvent.js"}},{"traceId":"a40c92b03843b256","parentId":"6238327131763435","name":"read-resource","id":"3870786c35786f63","timestamp":96644183364,"duration":8563,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"357938733234726f","name":"build-module-js","id":"6238327131763435","timestamp":96644183340,"duration":8890,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Interactivity\\Modes\\Remove.js"}},{"traceId":"a40c92b03843b256","parentId":"3265776b6f707830","name":"read-resource","id":"6c646f766e72706d","timestamp":96644183203,"duration":9053,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"696d743639357065","name":"build-module-js","id":"3265776b6f707830","timestamp":96644183123,"duration":9430,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Interactivity\\Events\\HoverEvent.js"}},{"traceId":"a40c92b03843b256","parentId":"7234746533636232","name":"read-resource","id":"66313370796a346e","timestamp":96644183401,"duration":9176,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"357938733234726f","name":"build-module-js","id":"7234746533636232","timestamp":96644183379,"duration":9571,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Interactivity\\Modes\\Grab.js"}},{"traceId":"a40c92b03843b256","parentId":"7534326363676a37","name":"read-resource","id":"7035397970656839","timestamp":96644183438,"duration":9545,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"357938733234726f","name":"build-module-js","id":"7534326363676a37","timestamp":96644183415,"duration":9969,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Interactivity\\Modes\\Repulse.js"}},{"traceId":"a40c92b03843b256","parentId":"30307a6c67333632","name":"read-resource","id":"7a7335686a7a756f","timestamp":96644183757,"duration":9656,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"357938733234726f","name":"build-module-js","id":"30307a6c67333632","timestamp":96644183605,"duration":10040,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Interactivity\\Modes\\Slow.js"}},{"traceId":"a40c92b03843b256","parentId":"6e6f36773770306b","name":"read-resource","id":"6978387477393234","timestamp":96644183582,"duration":10082,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"357938733234726f","name":"build-module-js","id":"6e6f36773770306b","timestamp":96644183483,"duration":10492,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Interactivity\\Modes\\Push.js"}},{"traceId":"a40c92b03843b256","parentId":"3735703976666c71","name":"read-resource","id":"6e6b6576386f6670","timestamp":96644184291,"duration":9702,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"696d743639357065","name":"build-module-js","id":"3735703976666c71","timestamp":96644184117,"duration":10320,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Interactivity\\Events\\DivEvent.js"}},{"traceId":"a40c92b03843b256","parentId":"39656f3433653133","name":"read-resource","id":"74386d316e696b79","timestamp":96644183959,"duration":10527,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"357938733234726f","name":"build-module-js","id":"39656f3433653133","timestamp":96644183893,"duration":10975,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Interactivity\\Modes\\Connect.js"}},{"traceId":"a40c92b03843b256","parentId":"7173386d6f37656f","name":"read-resource","id":"7862696e63623764","timestamp":96644184527,"duration":10367,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"357938733234726f","name":"build-module-js","id":"7173386d6f37656f","timestamp":96644184448,"duration":12910,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Interactivity\\Modes\\Attract.js"}},{"traceId":"a40c92b03843b256","parentId":"383773326570306f","name":"read-resource","id":"6462336561696a65","timestamp":96644184418,"duration":13006,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"357938733234726f","name":"build-module-js","id":"383773326570306f","timestamp":96644184351,"duration":13734,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Interactivity\\Modes\\Trail.js"}},{"traceId":"a40c92b03843b256","parentId":"6e3563376e63716d","name":"read-resource","id":"3733666d66757472","timestamp":96644184576,"duration":13539,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"357938733234726f","name":"build-module-js","id":"6e3563376e63716d","timestamp":96644184542,"duration":13766,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Interactivity\\Modes\\Bounce.js"}},{"traceId":"a40c92b03843b256","parentId":"736c653979773362","name":"read-resource","id":"7170656e6878346f","timestamp":96644184621,"duration":13702,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"357938733234726f","name":"build-module-js","id":"736c653979773362","timestamp":96644184598,"duration":13936,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Interactivity\\Modes\\Light.js"}},{"traceId":"a40c92b03843b256","parentId":"766d66696b6b396b","name":"read-resource","id":"633933707a636b71","timestamp":96644185525,"duration":14772,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7031646e62356264","name":"build-module-js","id":"766d66696b6b396b","timestamp":96644185433,"duration":15441,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\Move\\Path\\PathDelay.js"}},{"traceId":"a40c92b03843b256","parentId":"7576366b6869716b","name":"read-resource","id":"3130743938786366","timestamp":96644185417,"duration":15512,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3270387977667671","name":"build-module-js","id":"7576366b6869716b","timestamp":96644185387,"duration":15863,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\Destroy\\SplitRate.js"}},{"traceId":"a40c92b03843b256","parentId":"6636667762673630","name":"read-resource","id":"73706b6c74706e6f","timestamp":96644185280,"duration":16001,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"706566316e636777","name":"build-module-js","id":"6636667762673630","timestamp":96644185116,"duration":17017,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Shapes\\Image\\Utils.js"}},{"traceId":"a40c92b03843b256","parentId":"6467746d65657932","name":"read-resource","id":"6466326c6f647176","timestamp":96644185368,"duration":16793,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7367366e6c626a77","name":"build-module-js","id":"6467746d65657932","timestamp":96644185327,"duration":17354,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Shapes\\Polygon\\PolygonDrawerBase.js"}},{"traceId":"a40c92b03843b256","parentId":"6b6f647377706735","name":"read-resource","id":"3661323237396a74","timestamp":96644185596,"duration":18369,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6972643874776d79","name":"build-module-js","id":"6b6f647377706735","timestamp":96644185561,"duration":19481,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Interactions\\Particles\\Links\\LinkInstance.js"}},{"traceId":"a40c92b03843b256","parentId":"723872356c6e6666","name":"read-resource","id":"6771616674397278","timestamp":96644185799,"duration":19281,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3270387977667671","name":"build-module-js","id":"723872356c6e6666","timestamp":96644185616,"duration":19693,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Particles\\Destroy\\SplitFactor.js"}},{"traceId":"a40c92b03843b256","parentId":"706d7a71696a6775","name":"read-resource","id":"627a773068376f69","timestamp":96644207381,"duration":558,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"653630697a746165","name":"build-module-js","id":"706d7a71696a6775","timestamp":96644207355,"duration":1294,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Interactivity\\Modes\\BubbleDiv.js"}},{"traceId":"a40c92b03843b256","parentId":"303233757963636f","name":"read-resource","id":"78356f6275666737","timestamp":96644207204,"duration":1496,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7534326363676a37","name":"build-module-js","id":"303233757963636f","timestamp":96644207134,"duration":2242,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Interactivity\\Modes\\RepulseDiv.js"}},{"traceId":"a40c92b03843b256","parentId":"7378393878686b39","name":"read-resource","id":"7234327136796935","timestamp":96644207445,"duration":1981,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"653630697a746165","name":"build-module-js","id":"7378393878686b39","timestamp":96644207396,"duration":2825,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Interactivity\\Modes\\BubbleBase.js"}},{"traceId":"a40c92b03843b256","parentId":"6d72336f6d367a6b","name":"read-resource","id":"74656570396c3330","timestamp":96644207481,"duration":3380,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"39656f3433653133","name":"build-module-js","id":"6d72336f6d367a6b","timestamp":96644207459,"duration":3797,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Interactivity\\Modes\\ConnectLinks.js"}},{"traceId":"a40c92b03843b256","parentId":"746f34777670726f","name":"read-resource","id":"76316b34327a3832","timestamp":96644207515,"duration":3771,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7234746533636232","name":"build-module-js","id":"746f34777670726f","timestamp":96644207495,"duration":4121,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Interactivity\\Modes\\GrabLinks.js"}},{"traceId":"a40c92b03843b256","parentId":"676d656b63746939","name":"read-resource","id":"797977316c6c6e31","timestamp":96644207562,"duration":4094,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"736c653979773362","name":"build-module-js","id":"676d656b63746939","timestamp":96644207533,"duration":4407,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Interactivity\\Modes\\LightShadow.js"}},{"traceId":"a40c92b03843b256","parentId":"3334756b72786134","name":"read-resource","id":"6377346974307375","timestamp":96644207636,"duration":4329,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"736c653979773362","name":"build-module-js","id":"3334756b72786134","timestamp":96644207617,"duration":4622,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Interactivity\\Modes\\LightArea.js"}},{"traceId":"a40c92b03843b256","parentId":"71337a7230337772","name":"read-resource","id":"31386d3277396f61","timestamp":96644207263,"duration":4998,"tags":{}}] +[{"traceId":"a40c92b03843b256","parentId":"7534326363676a37","name":"build-module-js","id":"71337a7230337772","timestamp":96644207239,"duration":5643,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Interactivity\\Modes\\RepulseBase.js"}},{"traceId":"a40c92b03843b256","parentId":"6135647673763531","name":"read-resource","id":"343735707935726d","timestamp":96644207603,"duration":5829,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3265776b6f707830","name":"build-module-js","id":"6135647673763531","timestamp":96644207583,"duration":6254,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Interactivity\\Events\\Parallax.js"}},{"traceId":"a40c92b03843b256","parentId":"3968716536696a6e","name":"read-resource","id":"743077316f6a3067","timestamp":96644214949,"duration":572,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3334756b72786134","name":"build-module-js","id":"3968716536696a6e","timestamp":96644214885,"duration":1101,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tsparticles\\Options\\Classes\\Interactivity\\Modes\\LightGradient.js"}},{"traceId":"a40c92b03843b256","parentId":"62737430736e3739","name":"add-entry","id":"6c7a716f6d313967","timestamp":96640774841,"duration":3441405,"tags":{"request":"next-client-pages-loader?page=%2F&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"6f39736b30396470","name":"make","id":"6d3934346a7a6d76","timestamp":96640771610,"duration":3444711,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"62737430736e3739","name":"webpack-compilation-chunk-graph","id":"6164697537763176","timestamp":96644222142,"duration":5256,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"62737430736e3739","name":"webpack-compilation-optimize-modules","id":"67616370746d687a","timestamp":96644227466,"duration":98,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"62737430736e3739","name":"webpack-compilation-optimize-chunks","id":"697676616a686d61","timestamp":96644227592,"duration":95,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"62737430736e3739","name":"webpack-compilation-optimize-tree","id":"30627a626c787878","timestamp":96644227718,"duration":7,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"62737430736e3739","name":"webpack-compilation-optimize","id":"3470646f72393433","timestamp":96644227448,"duration":852,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"62737430736e3739","name":"webpack-compilation-hash","id":"686c707974366439","timestamp":96644264397,"duration":10753,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"62737430736e3739","name":"NextJsBuildManifest-generateClientManifest","id":"3270386e63673475","timestamp":96644339794,"duration":254,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"62737430736e3739","name":"NextJsBuildManifest-createassets","id":"3631677469306e64","timestamp":96644339551,"duration":511,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"62737430736e3739","name":"webpack-compilation-seal","id":"706d397973657a6b","timestamp":96644221684,"duration":119934,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f39736b30396470","name":"webpack-compilation","id":"62737430736e3739","timestamp":96640769970,"duration":3571734,"tags":{"name":"client"}},{"traceId":"a40c92b03843b256","parentId":"6f39736b30396470","name":"emit","id":"363068686f64756b","timestamp":96644341759,"duration":29567,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-client","id":"6f39736b30396470","timestamp":96640763699,"duration":3609158,"tags":{"trigger":"manual"}},{"traceId":"a40c92b03843b256","parentId":"366a646a6d636574","name":"add-entry","id":"6331766138686c75","timestamp":96644381484,"duration":4857,"tags":{"request":"private-next-pages/_error"}},{"traceId":"a40c92b03843b256","parentId":"366a646a6d636574","name":"add-entry","id":"376a6b31666e3131","timestamp":96644381310,"duration":10147,"tags":{"request":"private-next-pages/_app"}},{"traceId":"a40c92b03843b256","parentId":"366a646a6d636574","name":"add-entry","id":"6862316a656e3332","timestamp":96644381450,"duration":10484,"tags":{"request":"private-next-pages/_document"}},{"traceId":"a40c92b03843b256","parentId":"6f306e6b716b7777","name":"read-resource","id":"696d6c647964346a","timestamp":96644392896,"duration":466,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3334683632383873","name":"get-options","id":"7a7a34766b6c3374","timestamp":96644393451,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e66756e79687468","name":"babel-turbo-get-config","id":"7276356b79363375","timestamp":96644393464,"duration":3514,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e66756e79687468","name":"babel-turbo-normalize-file","id":"6631306463353171","timestamp":96644397026,"duration":1571,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"366270316466776b","name":"babel-turbo-traverse","id":"71396b773136726b","timestamp":96644399164,"duration":2714,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e66756e79687468","name":"babel-turbo-transform","id":"366270316466776b","timestamp":96644398641,"duration":3259,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e66756e79687468","name":"babel-turbo-generate","id":"396a716d386e6a75","timestamp":96644401932,"duration":658,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3334683632383873","name":"next-babel-turbo-transform","id":"6e66756e79687468","timestamp":96644393462,"duration":9141,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f306e6b716b7777","name":"next-babel-turbo-loader","id":"3334683632383873","timestamp":96644393444,"duration":9195,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"366a646a6d636574","name":"build-module-jsx","id":"6f306e6b716b7777","timestamp":96644392657,"duration":11037,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\pages\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"3038306676786b65","name":"read-resource","id":"687069376e753130","timestamp":96644407161,"duration":422,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e6b323062646a38","name":"get-options","id":"3774716b73623375","timestamp":96644407643,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"646f386874783938","name":"babel-turbo-get-config","id":"3576773472306179","timestamp":96644407654,"duration":27,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"646f386874783938","name":"babel-turbo-normalize-file","id":"66686b3639387a38","timestamp":96644407684,"duration":27127,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"696d373733617030","name":"babel-turbo-traverse","id":"6277307430786b75","timestamp":96644435036,"duration":571681,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"646f386874783938","name":"babel-turbo-transform","id":"696d373733617030","timestamp":96644434850,"duration":571886,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"646f386874783938","name":"babel-turbo-generate","id":"3934397363716e69","timestamp":96645006757,"duration":39903,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e6b323062646a38","name":"next-babel-turbo-transform","id":"646f386874783938","timestamp":96644407651,"duration":639026,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3038306676786b65","name":"next-babel-turbo-loader","id":"6e6b323062646a38","timestamp":96644407639,"duration":639070,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f306e6b716b7777","name":"build-module-jsx","id":"3038306676786b65","timestamp":96644407059,"duration":661934,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\pages\\demos\\demos.jsx"}},{"traceId":"a40c92b03843b256","parentId":"356f646a6f737a63","name":"read-resource","id":"7377656770706932","timestamp":96645073728,"duration":2244,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3038306676786b65","name":"build-module-js","id":"356f646a6f737a63","timestamp":96645073656,"duration":2715,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\link.js"}},{"traceId":"a40c92b03843b256","parentId":"36733866396c7967","name":"read-resource","id":"6b74746c64317a75","timestamp":96645074029,"duration":3450,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"77706e33336b6f37","name":"get-options","id":"377a627a69666b67","timestamp":96645077528,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76367631666c3961","name":"babel-turbo-get-config","id":"6c74383335686c64","timestamp":96645077539,"duration":15,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76367631666c3961","name":"babel-turbo-normalize-file","id":"7275703173753736","timestamp":96645077557,"duration":1413,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7530326d6f6f7133","name":"babel-turbo-traverse","id":"6d6661623839696e","timestamp":96645079153,"duration":1567,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76367631666c3961","name":"babel-turbo-transform","id":"7530326d6f6f7133","timestamp":96645079001,"duration":1737,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76367631666c3961","name":"babel-turbo-generate","id":"6278616a77336330","timestamp":96645080760,"duration":872,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"77706e33336b6f37","name":"next-babel-turbo-transform","id":"76367631666c3961","timestamp":96645077536,"duration":4103,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"36733866396c7967","name":"next-babel-turbo-loader","id":"77706e33336b6f37","timestamp":96645077523,"duration":4135,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3038306676786b65","name":"build-module-js","id":"36733866396c7967","timestamp":96645073948,"duration":8660,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\common\\initIsotope.js"}},{"traceId":"a40c92b03843b256","parentId":"6175316d61697637","name":"read-resource","id":"3039396262783967","timestamp":96645076916,"duration":8121,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6234723861313434","name":"get-options","id":"3239796566743767","timestamp":96645085114,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"776c73696c346934","name":"babel-turbo-get-config","id":"6637616271316c70","timestamp":96645085124,"duration":12,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"776c73696c346934","name":"babel-turbo-normalize-file","id":"7a67346361386f67","timestamp":96645085138,"duration":1208,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"746d663763316d74","name":"babel-turbo-traverse","id":"6e6b65396d6b6166","timestamp":96645086534,"duration":1161,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"776c73696c346934","name":"babel-turbo-transform","id":"746d663763316d74","timestamp":96645086376,"duration":1339,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"776c73696c346934","name":"babel-turbo-generate","id":"307636636f647664","timestamp":96645087736,"duration":938,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6234723861313434","name":"next-babel-turbo-transform","id":"776c73696c346934","timestamp":96645085122,"duration":3558,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6175316d61697637","name":"next-babel-turbo-loader","id":"6234723861313434","timestamp":96645085109,"duration":3589,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3038306676786b65","name":"build-module-js","id":"6175316d61697637","timestamp":96645076811,"duration":12583,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\config\\particle-config.js"}},{"traceId":"a40c92b03843b256","parentId":"31386e773366646d","name":"read-resource","id":"3361787066377937","timestamp":96645090069,"duration":13103,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7375616972626b30","name":"get-options","id":"77767463697a3079","timestamp":96645103230,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"796136613232786c","name":"babel-turbo-get-config","id":"6e39747738666969","timestamp":96645103241,"duration":15,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"796136613232786c","name":"babel-turbo-normalize-file","id":"3861756137797635","timestamp":96645103259,"duration":863,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b3371636f6e7130","name":"babel-turbo-traverse","id":"3639376367343561","timestamp":96645104277,"duration":2676,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"796136613232786c","name":"babel-turbo-transform","id":"6b3371636f6e7130","timestamp":96645104135,"duration":2836,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"796136613232786c","name":"babel-turbo-generate","id":"30357a656c693578","timestamp":96645106989,"duration":601,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7375616972626b30","name":"next-babel-turbo-transform","id":"796136613232786c","timestamp":96645103238,"duration":4355,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"31386e773366646d","name":"next-babel-turbo-loader","id":"7375616972626b30","timestamp":96645103225,"duration":4385,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3038306676786b65","name":"build-module-jsx","id":"31386e773366646d","timestamp":96645089906,"duration":18407,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\layouts\\Dark.jsx"}},{"traceId":"a40c92b03843b256","parentId":"7330786b66633863","name":"read-resource","id":"76646f3134306a6a","timestamp":96645090158,"duration":18197,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"62616c6c3337346d","name":"get-options","id":"6d3667726678786c","timestamp":96645108394,"duration":2,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"776a38307332736d","name":"babel-turbo-get-config","id":"386c35776a316d7a","timestamp":96645108402,"duration":12,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"776a38307332736d","name":"babel-turbo-normalize-file","id":"3865357169373468","timestamp":96645108416,"duration":4806,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c766d7672303562","name":"babel-turbo-traverse","id":"6a75776e676f7362","timestamp":96645113436,"duration":9932,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"776a38307332736d","name":"babel-turbo-transform","id":"6c766d7672303562","timestamp":96645113250,"duration":10138,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"776a38307332736d","name":"babel-turbo-generate","id":"386b316b71317635","timestamp":96645123413,"duration":7594,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"62616c6c3337346d","name":"next-babel-turbo-transform","id":"776a38307332736d","timestamp":96645108399,"duration":22629,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7330786b66633863","name":"next-babel-turbo-loader","id":"62616c6c3337346d","timestamp":96645108391,"duration":22665,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"356f646a6f737a63","name":"build-module-js","id":"7330786b66633863","timestamp":96645090110,"duration":43553,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\link.js"}},{"traceId":"a40c92b03843b256","parentId":"3864616c63617335","name":"read-resource","id":"6469637538627230","timestamp":96645136650,"duration":2031,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7769733637677471","name":"get-options","id":"727a733272306c6d","timestamp":96645138730,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"78797a6a6e647363","name":"babel-turbo-get-config","id":"783334693378706a","timestamp":96645138742,"duration":10,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"78797a6a6e647363","name":"babel-turbo-normalize-file","id":"356637736e783870","timestamp":96645138755,"duration":725,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"39746d6f34616e68","name":"babel-turbo-traverse","id":"636d377335386b68","timestamp":96645139661,"duration":3025,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"78797a6a6e647363","name":"babel-turbo-transform","id":"39746d6f34616e68","timestamp":96645139505,"duration":3199,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"78797a6a6e647363","name":"babel-turbo-generate","id":"6d783463787a3230","timestamp":96645142724,"duration":624,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7769733637677471","name":"next-babel-turbo-transform","id":"78797a6a6e647363","timestamp":96645138740,"duration":4613,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3864616c63617335","name":"next-babel-turbo-loader","id":"7769733637677471","timestamp":96645138726,"duration":4647,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3038306676786b65","name":"build-module-jsx","id":"3864616c63617335","timestamp":96645136532,"duration":7679,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Split\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"6a636f6c3636716f","name":"read-resource","id":"6d79723876326467","timestamp":96645137776,"duration":6808,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b35766f636a6439","name":"get-options","id":"373234706e336e64","timestamp":96645144618,"duration":3,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6462347668396e39","name":"babel-turbo-get-config","id":"7132637279796864","timestamp":96645144627,"duration":12,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6462347668396e39","name":"babel-turbo-normalize-file","id":"796e633961313773","timestamp":96645144642,"duration":3044,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3773736464347865","name":"babel-turbo-traverse","id":"336d3066766b356c","timestamp":96645147881,"duration":5508,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6462347668396e39","name":"babel-turbo-transform","id":"3773736464347865","timestamp":96645147715,"duration":5694,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6462347668396e39","name":"babel-turbo-generate","id":"797a656c6538617a","timestamp":96645153437,"duration":2431,"tags":{}}] +[{"traceId":"a40c92b03843b256","parentId":"6b35766f636a6439","name":"next-babel-turbo-transform","id":"6462347668396e39","timestamp":96645144625,"duration":11509,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a636f6c3636716f","name":"next-babel-turbo-loader","id":"6b35766f636a6439","timestamp":96645144613,"duration":11542,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7330786b66633863","name":"build-module-js","id":"6a636f6c3636716f","timestamp":96645137676,"duration":20144,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"7476726432756f65","name":"read-resource","id":"63666775337a716b","timestamp":96645137879,"duration":20859,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7264706e7a36396d","name":"get-options","id":"6363617238673631","timestamp":96645158786,"duration":7,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a7a683767637379","name":"babel-turbo-get-config","id":"76336e686d6a6e34","timestamp":96645158798,"duration":12,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a7a683767637379","name":"babel-turbo-normalize-file","id":"6e306e3977667a67","timestamp":96645158814,"duration":2335,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3874673278653777","name":"babel-turbo-traverse","id":"6d6c7174376a6e7a","timestamp":96645161356,"duration":2659,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a7a683767637379","name":"babel-turbo-transform","id":"3874673278653777","timestamp":96645161180,"duration":2851,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a7a683767637379","name":"babel-turbo-generate","id":"61756a6931747a75","timestamp":96645164056,"duration":5818,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7264706e7a36396d","name":"next-babel-turbo-transform","id":"7a7a683767637379","timestamp":96645158796,"duration":11090,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7476726432756f65","name":"next-babel-turbo-loader","id":"7264706e7a36396d","timestamp":96645158782,"duration":11125,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7330786b66633863","name":"build-module-js","id":"7476726432756f65","timestamp":96645137829,"duration":33036,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\use-intersection.js"}},{"traceId":"a40c92b03843b256","parentId":"79376f3070316532","name":"read-resource","id":"617a767738366b70","timestamp":96645144461,"duration":28126,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"633563377139356d","name":"get-options","id":"687439666a747a68","timestamp":96645172784,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e6c716a69786135","name":"babel-turbo-get-config","id":"6576636e75737361","timestamp":96645172838,"duration":32,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e6c716a69786135","name":"babel-turbo-normalize-file","id":"796f6b3533656f72","timestamp":96645172900,"duration":30300,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"707968337030686a","name":"babel-turbo-traverse","id":"367962746d356439","timestamp":96645203565,"duration":63806,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e6c716a69786135","name":"babel-turbo-transform","id":"707968337030686a","timestamp":96645203236,"duration":64155,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e6c716a69786135","name":"babel-turbo-generate","id":"637463636e316c69","timestamp":96645267421,"duration":29362,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"633563377139356d","name":"next-babel-turbo-transform","id":"6e6c716a69786135","timestamp":96645172836,"duration":123960,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79376f3070316532","name":"next-babel-turbo-loader","id":"633563377139356d","timestamp":96645172780,"duration":124043,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7330786b66633863","name":"build-module-js","id":"79376f3070316532","timestamp":96645144354,"duration":166721,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\router\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"69626e7477366b6d","name":"read-resource","id":"72696c3335373330","timestamp":96645313596,"duration":2883,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"73663367727a306e","name":"get-options","id":"3262797673696762","timestamp":96645316537,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6237343363387778","name":"babel-turbo-get-config","id":"303661716e766e68","timestamp":96645316549,"duration":15,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6237343363387778","name":"babel-turbo-normalize-file","id":"746e6d667834686f","timestamp":96645316568,"duration":1759,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f76786c79693633","name":"babel-turbo-traverse","id":"616b316737303336","timestamp":96645318628,"duration":1320,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6237343363387778","name":"babel-turbo-transform","id":"6f76786c79693633","timestamp":96645318375,"duration":1586,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6237343363387778","name":"babel-turbo-generate","id":"3334396273646f34","timestamp":96645319982,"duration":599,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"73663367727a306e","name":"next-babel-turbo-transform","id":"6237343363387778","timestamp":96645316546,"duration":4037,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69626e7477366b6d","name":"next-babel-turbo-loader","id":"73663367727a306e","timestamp":96645316531,"duration":4070,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a636f6c3636716f","name":"build-module-js","id":"69626e7477366b6d","timestamp":96645313457,"duration":7726,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\with-router.js"}},{"traceId":"a40c92b03843b256","parentId":"35336a6f32743274","name":"read-resource","id":"6e65336d66796b73","timestamp":96645315859,"duration":6157,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"616362616b387666","name":"get-options","id":"736364766b76776b","timestamp":96645322131,"duration":7,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d72653272316e62","name":"babel-turbo-get-config","id":"65686468756b716b","timestamp":96645322149,"duration":27,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d72653272316e62","name":"babel-turbo-normalize-file","id":"70353434636c7665","timestamp":96645322182,"duration":7097,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"316261386e766f6d","name":"babel-turbo-traverse","id":"72626a633173746b","timestamp":96645329479,"duration":14526,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d72653272316e62","name":"babel-turbo-transform","id":"316261386e766f6d","timestamp":96645329308,"duration":14721,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d72653272316e62","name":"babel-turbo-generate","id":"3464397171626679","timestamp":96645344059,"duration":7021,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"616362616b387666","name":"next-babel-turbo-transform","id":"6d72653272316e62","timestamp":96645322144,"duration":28948,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"35336a6f32743274","name":"next-babel-turbo-loader","id":"616362616b387666","timestamp":96645322064,"duration":29054,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79376f3070316532","name":"build-module-js","id":"35336a6f32743274","timestamp":96645315825,"duration":38256,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\route-loader.js"}},{"traceId":"a40c92b03843b256","parentId":"386b3275746c6e6c","name":"read-resource","id":"696f706f727a3665","timestamp":96645315787,"duration":38371,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69396d7063316e6d","name":"get-options","id":"31706e65726c3334","timestamp":96645354193,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37726d6c6763736e","name":"babel-turbo-get-config","id":"3738387579776964","timestamp":96645354202,"duration":13,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37726d6c6763736e","name":"babel-turbo-normalize-file","id":"7433357679703273","timestamp":96645354245,"duration":963,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e6b6c716a683263","name":"babel-turbo-traverse","id":"3771666665787775","timestamp":96645355384,"duration":859,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37726d6c6763736e","name":"babel-turbo-transform","id":"6e6b6c716a683263","timestamp":96645355226,"duration":1036,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37726d6c6763736e","name":"babel-turbo-generate","id":"3169653435306e37","timestamp":96645356293,"duration":553,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69396d7063316e6d","name":"next-babel-turbo-transform","id":"37726d6c6763736e","timestamp":96645354200,"duration":2651,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"386b3275746c6e6c","name":"next-babel-turbo-loader","id":"69396d7063316e6d","timestamp":96645354189,"duration":2682,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79376f3070316532","name":"build-module-js","id":"386b3275746c6e6c","timestamp":96645315685,"duration":41909,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\normalize-trailing-slash.js"}},{"traceId":"a40c92b03843b256","parentId":"366a646a6d636574","name":"add-entry","id":"63396b326a6e6e38","timestamp":96644381640,"duration":979152,"tags":{"request":"./src\\pages\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"6764386e37376a6d","name":"make","id":"6167327975723172","timestamp":96644375258,"duration":985600,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"366a646a6d636574","name":"webpack-compilation-chunk-graph","id":"79746c6b31716a6f","timestamp":96645362240,"duration":1548,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"366a646a6d636574","name":"webpack-compilation-optimize-modules","id":"3068697279716a6c","timestamp":96645363886,"duration":14,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"366a646a6d636574","name":"webpack-compilation-optimize-chunks","id":"6c6f773568317a37","timestamp":96645363942,"duration":102,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"366a646a6d636574","name":"webpack-compilation-optimize-tree","id":"3563337a72643774","timestamp":96645364081,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"366a646a6d636574","name":"webpack-compilation-optimize","id":"7a726a78366a3377","timestamp":96645363856,"duration":418,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"366a646a6d636574","name":"webpack-compilation-hash","id":"3730766c77766479","timestamp":96645375997,"duration":1665,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"366a646a6d636574","name":"webpack-compilation-seal","id":"636b74696563716b","timestamp":96645361972,"duration":36799,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6764386e37376a6d","name":"webpack-compilation","id":"366a646a6d636574","timestamp":96644374710,"duration":1024131,"tags":{"name":"server"}},{"traceId":"a40c92b03843b256","parentId":"6764386e37376a6d","name":"emit","id":"7933796378783768","timestamp":96645398898,"duration":8991,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-server","id":"6764386e37376a6d","timestamp":96640764940,"duration":4644408,"tags":{"trigger":"manual"}}] +[{"traceId":"a40c92b03843b256","parentId":"69397a3135627979","name":"add-entry","id":"347768696c347275","timestamp":96680753515,"duration":22922,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"38633778346d6830","name":"read-resource","id":"703061636b636270","timestamp":96680777579,"duration":5200,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69397a3135627979","name":"build-module-js","id":"38633778346d6830","timestamp":96680777228,"duration":6223,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\common\\mouseEffect.js"}},{"traceId":"a40c92b03843b256","parentId":"78637973736a6b70","name":"read-resource","id":"6a3765617a746172","timestamp":96680777802,"duration":5691,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69397a3135627979","name":"build-module-js","id":"78637973736a6b70","timestamp":96680777714,"duration":5847,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\common\\scrollToTop.js"}},{"traceId":"a40c92b03843b256","parentId":"7131666e726e3075","name":"read-resource","id":"6276673073737867","timestamp":96680781671,"duration":1911,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69397a3135627979","name":"build-module-js","id":"7131666e726e3075","timestamp":96680777844,"duration":5782,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\common\\loadingPace.js"}},{"traceId":"a40c92b03843b256","parentId":"697a70756f307932","name":"read-resource","id":"746a776267356668","timestamp":96680782255,"duration":1389,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69397a3135627979","name":"build-module-js","id":"697a70756f307932","timestamp":96680782111,"duration":1577,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\common\\initIsotope.js"}},{"traceId":"a40c92b03843b256","parentId":"69397a3135627979","name":"add-entry","id":"6568326b61773070","timestamp":96680753877,"duration":29988,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=private-next-pages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"69397a3135627979","name":"add-entry","id":"786b657a67696376","timestamp":96680753854,"duration":30341,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"69397a3135627979","name":"add-entry","id":"7665673439357772","timestamp":96680753755,"duration":31898,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"}},{"traceId":"a40c92b03843b256","parentId":"69397a3135627979","name":"add-entry","id":"3931636464616c35","timestamp":96680753804,"duration":32012,"tags":{"request":"next-client-pages-loader?page=%2F_app&absolutePagePath=private-next-pages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"69397a3135627979","name":"add-entry","id":"666771313578636e","timestamp":96680753787,"duration":42512,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"69397a3135627979","name":"add-entry","id":"6d616e3268333638","timestamp":96680753894,"duration":43935,"tags":{"request":"next-client-pages-loader?page=%2F&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"6e63746f32706669","name":"make","id":"62656d7974746d37","timestamp":96680747717,"duration":50172,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69397a3135627979","name":"webpack-compilation-chunk-graph","id":"776f6c7779356665","timestamp":96680802307,"duration":4989,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69397a3135627979","name":"webpack-compilation-optimize-modules","id":"66763236726c6465","timestamp":96680807371,"duration":32,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69397a3135627979","name":"webpack-compilation-optimize-chunks","id":"74356377706c6179","timestamp":96680807446,"duration":148,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69397a3135627979","name":"webpack-compilation-optimize-tree","id":"676e73717434326c","timestamp":96680807762,"duration":25,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69397a3135627979","name":"webpack-compilation-optimize","id":"6570647838386d6e","timestamp":96680807347,"duration":1075,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69397a3135627979","name":"webpack-compilation-hash","id":"79356d3836733437","timestamp":96680828599,"duration":9637,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69397a3135627979","name":"NextJsBuildManifest-generateClientManifest","id":"35636b676d717a78","timestamp":96680846450,"duration":452,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69397a3135627979","name":"NextJsBuildManifest-createassets","id":"3769313378353271","timestamp":96680846285,"duration":639,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69397a3135627979","name":"webpack-compilation-seal","id":"726f626270753765","timestamp":96680801303,"duration":48934,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e63746f32706669","name":"webpack-compilation","id":"69397a3135627979","timestamp":96680746749,"duration":103581,"tags":{"name":"client"}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-client","id":"6e63746f32706669","timestamp":96680741325,"duration":116028,"tags":{"trigger":"manual"}}] +[{"traceId":"a40c92b03843b256","parentId":"6a716f3779373133","name":"read-resource","id":"707277373838796f","timestamp":96680874856,"duration":200,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b6472783637796e","name":"build-module-css","id":"6a716f3779373133","timestamp":96680874569,"duration":1376,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\styles\\preloader.css"}},{"traceId":"a40c92b03843b256","parentId":"36616c7064783677","name":"read-resource","id":"3439397334356d67","timestamp":96680875004,"duration":958,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b6472783637796e","name":"build-module-scss","id":"36616c7064783677","timestamp":96680874925,"duration":1181,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\styles\\main.scss"}},{"traceId":"a40c92b03843b256","parentId":"6b6472783637796e","name":"add-entry","id":"647765686233796f","timestamp":96680866528,"duration":9936,"tags":{"request":"private-next-pages/_error"}},{"traceId":"a40c92b03843b256","parentId":"37376e66706a6978","name":"read-resource","id":"306d6c6b73343035","timestamp":96680877107,"duration":27,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b6472783637796e","name":"build-module-json","id":"37376e66706a6978","timestamp":96680877070,"duration":252,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\data\\app.json"}},{"traceId":"a40c92b03843b256","parentId":"79326937376d3569","name":"read-resource","id":"3971327368617a77","timestamp":96680876760,"duration":859,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b6472783637796e","name":"build-module-js","id":"79326937376d3569","timestamp":96680876640,"duration":1107,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\common\\mouseEffect.js"}},{"traceId":"a40c92b03843b256","parentId":"7369623136673272","name":"read-resource","id":"7865766a34626933","timestamp":96680876922,"duration":854,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b6472783637796e","name":"build-module-js","id":"7369623136673272","timestamp":96680876850,"duration":974,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\common\\scrollToTop.js"}},{"traceId":"a40c92b03843b256","parentId":"706672756e78676f","name":"read-resource","id":"65377874637a386a","timestamp":96680877018,"duration":837,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b6472783637796e","name":"build-module-js","id":"706672756e78676f","timestamp":96680876962,"duration":937,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\common\\loadingPace.js"}},{"traceId":"a40c92b03843b256","parentId":"6b6472783637796e","name":"add-entry","id":"7a6b346e77617932","timestamp":96680866438,"duration":11499,"tags":{"request":"private-next-pages/_app"}},{"traceId":"a40c92b03843b256","parentId":"6b6472783637796e","name":"add-entry","id":"7378697166716c66","timestamp":96680866515,"duration":11755,"tags":{"request":"private-next-pages/_document"}},{"traceId":"a40c92b03843b256","parentId":"7179723438626868","name":"make","id":"6a66687439756c30","timestamp":96680861247,"duration":17055,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b6472783637796e","name":"webpack-compilation-chunk-graph","id":"7064717435736a70","timestamp":96680879041,"duration":631,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b6472783637796e","name":"webpack-compilation-optimize-modules","id":"3861777a34666e31","timestamp":96680879747,"duration":10,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b6472783637796e","name":"webpack-compilation-optimize-chunks","id":"70373262666d3135","timestamp":96680879828,"duration":348,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b6472783637796e","name":"webpack-compilation-optimize-tree","id":"653075396a756568","timestamp":96680880281,"duration":14,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b6472783637796e","name":"webpack-compilation-optimize","id":"6239657468326e6b","timestamp":96680879725,"duration":728,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b6472783637796e","name":"webpack-compilation-hash","id":"73696a6b6761646f","timestamp":96680883010,"duration":1611,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b6472783637796e","name":"webpack-compilation-seal","id":"3263647177646278","timestamp":96680878880,"duration":7432,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7179723438626868","name":"webpack-compilation","id":"6b6472783637796e","timestamp":96680860798,"duration":25594,"tags":{"name":"server"}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-server","id":"7179723438626868","timestamp":96680858149,"duration":32102,"tags":{"trigger":"manual"}}] +[{"traceId":"a40c92b03843b256","parentId":"3331663366616b6f","name":"read-resource","id":"6234716632773732","timestamp":96740772918,"duration":539,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7967396a6632776f","name":"build-module-jsx","id":"3331663366616b6f","timestamp":96740772629,"duration":1083,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\cursor\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"7967396a6632776f","name":"add-entry","id":"6130773265396c76","timestamp":96740749873,"duration":28561,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"386f666a6f363661","name":"read-resource","id":"70696a3176656831","timestamp":96740776514,"duration":3177,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6272333230353873","name":"get-options","id":"30616574376b766b","timestamp":96740779826,"duration":9,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766674746d71326b","name":"babel-turbo-get-config","id":"356f757571333236","timestamp":96740779858,"duration":32,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766674746d71326b","name":"babel-turbo-normalize-file","id":"6170697a65397336","timestamp":96740779893,"duration":11964,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"61676d3974647a65","name":"babel-turbo-traverse","id":"6c69736866716576","timestamp":96740794576,"duration":26511,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766674746d71326b","name":"babel-turbo-transform","id":"61676d3974647a65","timestamp":96740791913,"duration":29245,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766674746d71326b","name":"babel-turbo-generate","id":"317466693671366f","timestamp":96740821197,"duration":7115,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6272333230353873","name":"next-babel-turbo-transform","id":"766674746d71326b","timestamp":96740779840,"duration":48490,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"386f666a6f363661","name":"next-babel-turbo-loader","id":"6272333230353873","timestamp":96740779772,"duration":48595,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7967396a6632776f","name":"build-module-js","id":"386f666a6f363661","timestamp":96740774899,"duration":63262,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\common\\scrollToTop.js"}},{"traceId":"a40c92b03843b256","parentId":"6b737a37356f7534","name":"read-resource","id":"6630326865376d77","timestamp":96740776778,"duration":61473,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3665797330326271","name":"get-options","id":"6a64356332726f68","timestamp":96740838307,"duration":7,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6262326d6f773172","name":"babel-turbo-get-config","id":"706f3367796a7976","timestamp":96740838324,"duration":24,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6262326d6f773172","name":"babel-turbo-normalize-file","id":"6168783476626832","timestamp":96740838352,"duration":5358,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"337062796e333279","name":"babel-turbo-traverse","id":"776873306a627573","timestamp":96740844770,"duration":14829,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6262326d6f773172","name":"babel-turbo-transform","id":"337062796e333279","timestamp":96740843775,"duration":15884,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6262326d6f773172","name":"babel-turbo-generate","id":"336f727765317371","timestamp":96740859698,"duration":3042,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3665797330326271","name":"next-babel-turbo-transform","id":"6262326d6f773172","timestamp":96740838319,"duration":24446,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b737a37356f7534","name":"next-babel-turbo-loader","id":"3665797330326271","timestamp":96740838299,"duration":24521,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7967396a6632776f","name":"build-module-js","id":"6b737a37356f7534","timestamp":96740776649,"duration":91777,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\common\\loadingPace.js"}},{"traceId":"a40c92b03843b256","parentId":"6f77646838336978","name":"read-resource","id":"736b6d35307a7331","timestamp":96740777157,"duration":91379,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"36787872317a7638","name":"postcss-process","id":"6476777333307a61","timestamp":96740868677,"duration":17942,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f77646838336978","name":"postcss-loader","id":"36787872317a7638","timestamp":96740868592,"duration":18347,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f77646838336978","name":"css-loader","id":"7a75627536793866","timestamp":96740887038,"duration":6207,"tags":{"astUsed":"true"}},{"traceId":"a40c92b03843b256","parentId":"7967396a6632776f","name":"build-module-css","id":"6f77646838336978","timestamp":96740777076,"duration":119655,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\css-loader\\src\\index.js??ruleSet[1].rules[2].oneOf[9].use[1]!C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\postcss-loader\\src\\index.js??ruleSet[1].rules[2].oneOf[9].use[2]!C:\\Users\\hp\\Desktop\\business-hub\\src\\styles\\preloader.css"}},{"traceId":"a40c92b03843b256","parentId":"396c6d7a78307a6f","name":"read-resource","id":"31696f756b307435","timestamp":96740777524,"duration":120901,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37677363706a6261","name":"get-options","id":"616e6f7138366861","timestamp":96740898507,"duration":8,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"707a367667756236","name":"babel-turbo-get-config","id":"6467717a616d7732","timestamp":96740898525,"duration":28,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"707a367667756236","name":"babel-turbo-normalize-file","id":"30333577777a7968","timestamp":96740898560,"duration":5304,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"74307134717a6e72","name":"babel-turbo-traverse","id":"7a6d396569736861","timestamp":96740905025,"duration":9918,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"707a367667756236","name":"babel-turbo-transform","id":"74307134717a6e72","timestamp":96740903915,"duration":11246,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"707a367667756236","name":"babel-turbo-generate","id":"6731656c7a72736d","timestamp":96740915201,"duration":6500,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37677363706a6261","name":"next-babel-turbo-transform","id":"707a367667756236","timestamp":96740898519,"duration":23203,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"396c6d7a78307a6f","name":"next-babel-turbo-loader","id":"37677363706a6261","timestamp":96740898498,"duration":23318,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7967396a6632776f","name":"build-module-js","id":"396c6d7a78307a6f","timestamp":96740777449,"duration":151181,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\config\\particle-config.js"}},{"traceId":"a40c92b03843b256","parentId":"7562656d68386f70","name":"read-resource","id":"65396d7134323079","timestamp":96740777318,"duration":151401,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"366e717a6a333530","name":"read-resource","id":"32766f326a6c6f6e","timestamp":96740777668,"duration":167321,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e346d7476677a36","name":"get-options","id":"6870396963733933","timestamp":96740945082,"duration":10,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a7235726d737a71","name":"babel-turbo-get-config","id":"6b703072757a7078","timestamp":96740945101,"duration":30,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a7235726d737a71","name":"babel-turbo-normalize-file","id":"716966323570796d","timestamp":96740945136,"duration":3748,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3269376739643479","name":"babel-turbo-traverse","id":"6b316f3367757462","timestamp":96740950008,"duration":25540,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a7235726d737a71","name":"babel-turbo-transform","id":"3269376739643479","timestamp":96740948939,"duration":26673,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a7235726d737a71","name":"babel-turbo-generate","id":"3831376639327930","timestamp":96740975643,"duration":4128,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e346d7476677a36","name":"next-babel-turbo-transform","id":"6a7235726d737a71","timestamp":96740945096,"duration":34699,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"366e717a6a333530","name":"next-babel-turbo-loader","id":"6e346d7476677a36","timestamp":96740945072,"duration":34782,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7967396a6632776f","name":"build-module-jsx","id":"366e717a6a333530","timestamp":96740777605,"duration":207633,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\layouts\\Dark.jsx"}},{"traceId":"a40c92b03843b256","parentId":"3275793475663566","name":"read-resource","id":"3436337835756777","timestamp":96740777754,"duration":207594,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6667356866726334","name":"get-options","id":"696566686c687934","timestamp":96740985419,"duration":93,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7573633735613834","name":"babel-turbo-get-config","id":"65706a7975633178","timestamp":96740985524,"duration":26,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7573633735613834","name":"babel-turbo-normalize-file","id":"3278393736387336","timestamp":96740985554,"duration":6066,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c6f33743570346f","name":"babel-turbo-traverse","id":"656a6c3131667461","timestamp":96740992842,"duration":20988,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7573633735613834","name":"babel-turbo-transform","id":"6c6f33743570346f","timestamp":96740991784,"duration":22108,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7573633735613834","name":"babel-turbo-generate","id":"676f6e647237326a","timestamp":96741013935,"duration":4197,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6667356866726334","name":"next-babel-turbo-transform","id":"7573633735613834","timestamp":96740985518,"duration":32629,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3275793475663566","name":"next-babel-turbo-loader","id":"6667356866726334","timestamp":96740985410,"duration":32791,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7967396a6632776f","name":"build-module-js","id":"3275793475663566","timestamp":96740777696,"duration":244880,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\common\\initIsotope.js"}},{"traceId":"a40c92b03843b256","parentId":"343339337a633772","name":"read-resource","id":"6277743932346d6b","timestamp":96740776915,"duration":245765,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7967396a6632776f","name":"build-module-json","id":"343339337a633772","timestamp":96740776867,"duration":246049,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\data\\app.json"}},{"traceId":"a40c92b03843b256","parentId":"7967396a6632776f","name":"add-entry","id":"666d7279786e6a32","timestamp":96740750089,"duration":278553,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=private-next-pages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"3874347169306f71","name":"normalize-source-map","id":"776d6a7565746a79","timestamp":96741060413,"duration":36,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3874347169306f71","name":"postcss-process","id":"78746d353077756b","timestamp":96741060474,"duration":9583,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7562656d68386f70","name":"postcss-loader","id":"3874347169306f71","timestamp":96741060376,"duration":9908,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7562656d68386f70","name":"css-loader","id":"307063637037376c","timestamp":96741070372,"duration":4578,"tags":{"astUsed":"true"}},{"traceId":"a40c92b03843b256","parentId":"7967396a6632776f","name":"build-module-scss","id":"7562656d68386f70","timestamp":96740777207,"duration":299047,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\css-loader\\src\\index.js??ruleSet[1].rules[2].oneOf[10].use[1]!C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\postcss-loader\\src\\index.js??ruleSet[1].rules[2].oneOf[10].use[2]!C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\compiled\\resolve-url-loader\\index.js??ruleSet[1].rules[2].oneOf[10].use[3]!C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\compiled\\sass-loader\\cjs.js??ruleSet[1].rules[2].oneOf[10].use[4]!C:\\Users\\hp\\Desktop\\business-hub\\src\\styles\\main.scss"}},{"traceId":"a40c92b03843b256","parentId":"7967396a6632776f","name":"add-entry","id":"6f396f6669323038","timestamp":96740750062,"duration":488627,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"7967396a6632776f","name":"add-entry","id":"78776d6b64716976","timestamp":96740750046,"duration":494570,"tags":{"request":"next-client-pages-loader?page=%2F_app&absolutePagePath=private-next-pages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"7967396a6632776f","name":"add-entry","id":"7733396b74643761","timestamp":96740750003,"duration":498627,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"}},{"traceId":"a40c92b03843b256","parentId":"7967396a6632776f","name":"add-entry","id":"7463613362356a78","timestamp":96740750101,"duration":634841,"tags":{"request":"next-client-pages-loader?page=%2F&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"7967396a6632776f","name":"add-entry","id":"7668736978357178","timestamp":96740750031,"duration":638576,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"703175736d316a72","name":"make","id":"6137743931337970","timestamp":96740746511,"duration":642143,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7967396a6632776f","name":"webpack-compilation-chunk-graph","id":"6639707079706977","timestamp":96741391604,"duration":7139,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7967396a6632776f","name":"webpack-compilation-optimize-modules","id":"6c786273336e3068","timestamp":96741398824,"duration":32,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7967396a6632776f","name":"webpack-compilation-optimize-chunks","id":"30753136686a6262","timestamp":96741398884,"duration":418,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7967396a6632776f","name":"webpack-compilation-optimize-tree","id":"3235623863363665","timestamp":96741399353,"duration":10,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7967396a6632776f","name":"webpack-compilation-optimize","id":"33366f6d32713461","timestamp":96741398800,"duration":1428,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7967396a6632776f","name":"webpack-compilation-hash","id":"656932796a6b796c","timestamp":96741415901,"duration":8756,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7967396a6632776f","name":"NextJsBuildManifest-generateClientManifest","id":"7373377765703974","timestamp":96741436189,"duration":210,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7967396a6632776f","name":"NextJsBuildManifest-createassets","id":"786b6c65626d326a","timestamp":96741435978,"duration":435,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7967396a6632776f","name":"webpack-compilation-seal","id":"6569763475616464","timestamp":96741390790,"duration":46981,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"703175736d316a72","name":"webpack-compilation","id":"7967396a6632776f","timestamp":96740745273,"duration":692613,"tags":{"name":"client"}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-client","id":"703175736d316a72","timestamp":96740740792,"duration":701206,"tags":{"trigger":"manual"}}] +[{"traceId":"a40c92b03843b256","parentId":"3437683337697477","name":"read-resource","id":"7669757568786f39","timestamp":96741466855,"duration":806,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7966726f68397672","name":"build-module-jsx","id":"3437683337697477","timestamp":96741466589,"duration":1457,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\cursor\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"7966726f68397672","name":"add-entry","id":"66796a6e76776b61","timestamp":96741456815,"duration":11463,"tags":{"request":"private-next-pages/_error"}},{"traceId":"a40c92b03843b256","parentId":"6171337a6d373671","name":"read-resource","id":"73797a746f68727a","timestamp":96741467391,"duration":1291,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7966726f68397672","name":"build-module-jsx","id":"6171337a6d373671","timestamp":96741467230,"duration":1606,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\scrollToTop\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"76726b327a666761","name":"read-resource","id":"316a326268797264","timestamp":96741467519,"duration":1352,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7966726f68397672","name":"build-module-jsx","id":"76726b327a666761","timestamp":96741467459,"duration":1465,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Loading-Screen\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"7966726f68397672","name":"add-entry","id":"6a35656163396a38","timestamp":96741456626,"duration":12326,"tags":{"request":"private-next-pages/_app"}},{"traceId":"a40c92b03843b256","parentId":"7966726f68397672","name":"add-entry","id":"79796e7864646c34","timestamp":96741456799,"duration":12504,"tags":{"request":"private-next-pages/_document"}},{"traceId":"a40c92b03843b256","parentId":"6867633363716734","name":"make","id":"6f79786330316c64","timestamp":96741449608,"duration":19732,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7966726f68397672","name":"webpack-compilation-chunk-graph","id":"727633653737346c","timestamp":96741469840,"duration":453,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7966726f68397672","name":"webpack-compilation-optimize-modules","id":"7332616b307a6971","timestamp":96741470338,"duration":8,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7966726f68397672","name":"webpack-compilation-optimize-chunks","id":"3862706379703430","timestamp":96741470541,"duration":58,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7966726f68397672","name":"webpack-compilation-optimize-tree","id":"3676353465673972","timestamp":96741470634,"duration":9,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7966726f68397672","name":"webpack-compilation-optimize","id":"67313763346c6d6e","timestamp":96741470321,"duration":582,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7966726f68397672","name":"webpack-compilation-hash","id":"72346d3962783931","timestamp":96741473292,"duration":1496,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7966726f68397672","name":"webpack-compilation-seal","id":"3373346562766c68","timestamp":96741469712,"duration":7692,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6867633363716734","name":"webpack-compilation","id":"7966726f68397672","timestamp":96741447300,"duration":30190,"tags":{"name":"server"}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-server","id":"6867633363716734","timestamp":96741443042,"duration":41208,"tags":{"trigger":"manual"}}] +[{"traceId":"a40c92b03843b256","parentId":"786d613261323961","name":"read-resource","id":"646475656c7a6e6d","timestamp":96741515450,"duration":463,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7872323772727634","name":"build-module-jsx","id":"786d613261323961","timestamp":96741515207,"duration":906,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\cursor\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"6b6a6f3571716c6e","name":"read-resource","id":"6d6e7a766b767265","timestamp":96741515598,"duration":1071,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7872323772727634","name":"build-module-jsx","id":"6b6a6f3571716c6e","timestamp":96741515515,"duration":1417,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\scrollToTop\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"346d337273626e75","name":"read-resource","id":"7661663771746577","timestamp":96741515744,"duration":1233,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7872323772727634","name":"build-module-jsx","id":"346d337273626e75","timestamp":96741515677,"duration":1380,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Loading-Screen\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"7872323772727634","name":"add-entry","id":"776b686f79636268","timestamp":96741504952,"duration":12735,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"6c726430796a6772","name":"read-resource","id":"376b616a76633474","timestamp":96741518359,"duration":295,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7872323772727634","name":"build-module-jsx","id":"6c726430796a6772","timestamp":96741518171,"duration":599,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Split\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"7872323772727634","name":"add-entry","id":"797a77687331366f","timestamp":96741505073,"duration":13873,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=private-next-pages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"7872323772727634","name":"add-entry","id":"363678686e66626e","timestamp":96741505060,"duration":14277,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"7872323772727634","name":"add-entry","id":"3338637169706b74","timestamp":96741505028,"duration":15413,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"}},{"traceId":"a40c92b03843b256","parentId":"7872323772727634","name":"add-entry","id":"336d64367369796f","timestamp":96741505049,"duration":15542,"tags":{"request":"next-client-pages-loader?page=%2F_app&absolutePagePath=private-next-pages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"7872323772727634","name":"add-entry","id":"6e6462636f6a6f31","timestamp":96741505040,"duration":25929,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"7872323772727634","name":"add-entry","id":"6e34756178657770","timestamp":96741505081,"duration":26920,"tags":{"request":"next-client-pages-loader?page=%2F&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"3472396e65376f6c","name":"make","id":"6136653535746f75","timestamp":96741503851,"duration":28204,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7872323772727634","name":"webpack-compilation-chunk-graph","id":"7a3134336e653367","timestamp":96741534985,"duration":3460,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7872323772727634","name":"webpack-compilation-optimize-modules","id":"636f6b6b34783235","timestamp":96741538575,"duration":31,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7872323772727634","name":"webpack-compilation-optimize-chunks","id":"73363832696b6f65","timestamp":96741538634,"duration":136,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7872323772727634","name":"webpack-compilation-optimize-tree","id":"616c6f7336767634","timestamp":96741538807,"duration":9,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7872323772727634","name":"webpack-compilation-optimize","id":"33366269746e716e","timestamp":96741538505,"duration":766,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7872323772727634","name":"webpack-compilation-hash","id":"78626171307a6635","timestamp":96741550207,"duration":9392,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7872323772727634","name":"NextJsBuildManifest-generateClientManifest","id":"71346c726275366f","timestamp":96741569563,"duration":181,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7872323772727634","name":"NextJsBuildManifest-createassets","id":"3838706871317534","timestamp":96741569413,"duration":346,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7872323772727634","name":"webpack-compilation-seal","id":"7a396b79676e7170","timestamp":96741534232,"duration":37399,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3472396e65376f6c","name":"webpack-compilation","id":"7872323772727634","timestamp":96741502482,"duration":69295,"tags":{"name":"client"}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-client","id":"3472396e65376f6c","timestamp":96741498293,"duration":76346,"tags":{"trigger":"manual"}}] +[{"traceId":"a40c92b03843b256","parentId":"6a68617578636f6e","name":"add-entry","id":"677231746b657362","timestamp":96781761413,"duration":16869,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"6a68617578636f6e","name":"add-entry","id":"693963666578756b","timestamp":96781761529,"duration":19001,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=private-next-pages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"6a68617578636f6e","name":"add-entry","id":"6a326f68346a6636","timestamp":96781761518,"duration":19187,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"6a68617578636f6e","name":"add-entry","id":"7170657a666a3268","timestamp":96781761485,"duration":22787,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"}},{"traceId":"a40c92b03843b256","parentId":"6a68617578636f6e","name":"add-entry","id":"6f6961306371307a","timestamp":96781761496,"duration":26762,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"70396a747473676d","name":"read-resource","id":"386e6a6367616373","timestamp":96781796647,"duration":501,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"71357a71776e6172","name":"get-options","id":"37686c68306e786d","timestamp":96781797198,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"32676d6933766878","name":"babel-turbo-get-config","id":"786130667333716e","timestamp":96781797210,"duration":16,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"32676d6933766878","name":"babel-turbo-normalize-file","id":"7737696738366e74","timestamp":96781797230,"duration":17081,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d78753677366266","name":"babel-turbo-traverse","id":"33676a7367316570","timestamp":96781815487,"duration":46650,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"32676d6933766878","name":"babel-turbo-transform","id":"6d78753677366266","timestamp":96781814343,"duration":47827,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"32676d6933766878","name":"babel-turbo-generate","id":"776a3166786d3872","timestamp":96781862194,"duration":8459,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"71357a71776e6172","name":"next-babel-turbo-transform","id":"32676d6933766878","timestamp":96781797207,"duration":73455,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"70396a747473676d","name":"next-babel-turbo-loader","id":"71357a71776e6172","timestamp":96781797192,"duration":73498,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a68617578636f6e","name":"build-module-js","id":"70396a747473676d","timestamp":96781796447,"duration":84590,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\pages\\_app.js"}},{"traceId":"a40c92b03843b256","parentId":"6a68617578636f6e","name":"add-entry","id":"6136307439706372","timestamp":96781761507,"duration":140584,"tags":{"request":"next-client-pages-loader?page=%2F_app&absolutePagePath=private-next-pages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"6939647977396b6a","name":"make","id":"326d643163363037","timestamp":96781756281,"duration":145852,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a68617578636f6e","name":"webpack-compilation-chunk-graph","id":"6938626a6e703376","timestamp":96781904082,"duration":1432,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a68617578636f6e","name":"webpack-compilation-optimize-modules","id":"73746d6771743231","timestamp":96781905568,"duration":99,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a68617578636f6e","name":"webpack-compilation-optimize-chunks","id":"6b33707235766770","timestamp":96781905698,"duration":61,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a68617578636f6e","name":"webpack-compilation-optimize-tree","id":"797871677473706d","timestamp":96781905795,"duration":11,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a68617578636f6e","name":"webpack-compilation-optimize","id":"61726b63706a6565","timestamp":96781905547,"duration":468,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a68617578636f6e","name":"webpack-compilation-hash","id":"73317a383672776f","timestamp":96781912268,"duration":5341,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a68617578636f6e","name":"NextJsBuildManifest-generateClientManifest","id":"6637786974387474","timestamp":96781921861,"duration":102,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a68617578636f6e","name":"NextJsBuildManifest-createassets","id":"6a6330773879796c","timestamp":96781921741,"duration":233,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a68617578636f6e","name":"webpack-compilation-seal","id":"366462663461366c","timestamp":96781902809,"duration":20080,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6939647977396b6a","name":"webpack-compilation","id":"6a68617578636f6e","timestamp":96781755205,"duration":167906,"tags":{"name":"client"}},{"traceId":"a40c92b03843b256","parentId":"6939647977396b6a","name":"emit","id":"6e696369316c3169","timestamp":96781923314,"duration":20290,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-client","id":"6939647977396b6a","timestamp":96781751402,"duration":194364,"tags":{"trigger":"manual"}}] +[{"traceId":"a40c92b03843b256","parentId":"337136676a696b78","name":"add-entry","id":"7a76333472716670","timestamp":96781954979,"duration":10397,"tags":{"request":"private-next-pages/_error"}},{"traceId":"a40c92b03843b256","parentId":"68616b706e69616e","name":"next-client-pages-loader","id":"657a797731313832","timestamp":96782142886,"duration":129,"tags":{"absolutePagePath":"next/dist/pages/_app"}},{"traceId":"a40c92b03843b256","parentId":"63397176767a6235","name":"build-module-js?page=%2F_app&absolutePagePath=next%2Fdist%2Fpages%2F_app!","id":"68616b706e69616e","timestamp":96782142040,"duration":1984,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-client-pages-loader.js?page=%2F_app&absolutePagePath=next%2Fdist%2Fpages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"727279716b6b377a","name":"next-client-pages-loader","id":"65366a6d39737073","timestamp":96782144224,"duration":69,"tags":{"absolutePagePath":"next/dist/pages/_error"}},{"traceId":"a40c92b03843b256","parentId":"63397176767a6235","name":"build-module-js?page=%2F_error&absolutePagePath=next%2Fdist%2Fpages%2F_error!","id":"727279716b6b377a","timestamp":96782144122,"duration":763,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-client-pages-loader.js?page=%2F_error&absolutePagePath=next%2Fdist%2Fpages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"7132736b37346274","name":"read-resource","id":"6c6f3873777a7761","timestamp":96782141932,"duration":7558,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"63397176767a6235","name":"build-module-js","id":"7132736b37346274","timestamp":96782140364,"duration":10648,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"337136676a696b78","name":"add-entry","id":"6e6c737a6e357875","timestamp":96781954966,"duration":230599,"tags":{"request":"private-next-pages/_document"}},{"traceId":"a40c92b03843b256","parentId":"76686a6937306977","name":"read-resource","id":"7a61787979666f72","timestamp":96782200788,"duration":41623,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3370777a6b6b7a6d","name":"get-options","id":"75746a6532316b65","timestamp":96782242650,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"727734343976617a","name":"babel-turbo-get-config","id":"776f66353032356e","timestamp":96782242666,"duration":19,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"727734343976617a","name":"babel-turbo-normalize-file","id":"3378746266773770","timestamp":96782242688,"duration":15089,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"68666e756a74626d","name":"babel-turbo-traverse","id":"616d6d79626c6d38","timestamp":96782258616,"duration":36891,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"727734343976617a","name":"babel-turbo-transform","id":"68666e756a74626d","timestamp":96782257822,"duration":37715,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"727734343976617a","name":"babel-turbo-generate","id":"347670786238716e","timestamp":96782295562,"duration":5705,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3370777a6b6b7a6d","name":"next-babel-turbo-transform","id":"727734343976617a","timestamp":96782242660,"duration":58616,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76686a6937306977","name":"next-babel-turbo-loader","id":"3370777a6b6b7a6d","timestamp":96782242644,"duration":58660,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"746d6e7339363131","name":"read-resource","id":"61366f6a34667779","timestamp":96782200197,"duration":109289,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"637a6b7736337139","name":"get-options","id":"38796b70626b6b7a","timestamp":96782309540,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7274733968636f6e","name":"babel-turbo-get-config","id":"326c63753933666f","timestamp":96782309552,"duration":16,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7274733968636f6e","name":"babel-turbo-normalize-file","id":"79633438646b676a","timestamp":96782309572,"duration":6186,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"767761326970766d","name":"babel-turbo-traverse","id":"776368767931626b","timestamp":96782316465,"duration":20112,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7274733968636f6e","name":"babel-turbo-transform","id":"767761326970766d","timestamp":96782315789,"duration":20814,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7274733968636f6e","name":"babel-turbo-generate","id":"333237396c626b33","timestamp":96782336626,"duration":4229,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"637a6b7736337139","name":"next-babel-turbo-transform","id":"7274733968636f6e","timestamp":96782309549,"duration":31318,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"746d6e7339363131","name":"next-babel-turbo-loader","id":"637a6b7736337139","timestamp":96782309534,"duration":31366,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"686634706d667638","name":"read-resource","id":"6331613032707a6d","timestamp":96782200317,"duration":145608,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a68623665336532","name":"get-options","id":"6c6f326b30763738","timestamp":96782345986,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"773371356d687334","name":"babel-turbo-get-config","id":"797964746c6d3778","timestamp":96782346042,"duration":21,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"773371356d687334","name":"babel-turbo-normalize-file","id":"776e387239716e73","timestamp":96782346067,"duration":6956,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3572376f30317a76","name":"babel-turbo-traverse","id":"396e763374337061","timestamp":96782353758,"duration":47119,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"773371356d687334","name":"babel-turbo-transform","id":"3572376f30317a76","timestamp":96782353056,"duration":47859,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"773371356d687334","name":"babel-turbo-generate","id":"6c756e7961686d31","timestamp":96782400937,"duration":8716,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a68623665336532","name":"next-babel-turbo-transform","id":"773371356d687334","timestamp":96782345996,"duration":63668,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"686634706d667638","name":"next-babel-turbo-loader","id":"7a68623665336532","timestamp":96782345979,"duration":63831,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3131697835746268","name":"read-resource","id":"707a757262656630","timestamp":96782201218,"duration":218780,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"70696633786e7065","name":"get-options","id":"32397779647a3865","timestamp":96782420060,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7468676236376730","name":"babel-turbo-get-config","id":"33617331656d3777","timestamp":96782420073,"duration":20,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7468676236376730","name":"babel-turbo-normalize-file","id":"39386e6f66306879","timestamp":96782420095,"duration":12826,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b7a6d3538316e6e","name":"babel-turbo-traverse","id":"397735397376316c","timestamp":96782433281,"duration":11843,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7468676236376730","name":"babel-turbo-transform","id":"6b7a6d3538316e6e","timestamp":96782432953,"duration":12193,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7468676236376730","name":"babel-turbo-generate","id":"6e646368336e7779","timestamp":96782445173,"duration":3017,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"70696633786e7065","name":"next-babel-turbo-transform","id":"7468676236376730","timestamp":96782420069,"duration":28129,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3131697835746268","name":"next-babel-turbo-loader","id":"70696633786e7065","timestamp":96782420053,"duration":28177,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"337136676a696b78","name":"build-module-js","id":"3131697835746268","timestamp":96782200967,"duration":250958,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\pages\\_app.js"}},{"traceId":"a40c92b03843b256","parentId":"63397176767a6235","name":"build-module-js","id":"76686a6937306977","timestamp":96782200584,"duration":254888,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\dev\\amp-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"63397176767a6235","name":"build-module-js","id":"746d6e7339363131","timestamp":96782200016,"duration":255515,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"63397176767a6235","name":"build-module-js","id":"686634706d667638","timestamp":96782200248,"duration":255298,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"337136676a696b78","name":"add-entry","id":"3270733061396e6d","timestamp":96781954868,"duration":501879,"tags":{"request":"private-next-pages/_app"}},{"traceId":"a40c92b03843b256","parentId":"336e613975743672","name":"make","id":"3066773530633061","timestamp":96781951502,"duration":505333,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"337136676a696b78","name":"webpack-compilation-chunk-graph","id":"397779723466386d","timestamp":96782457423,"duration":1866,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"337136676a696b78","name":"webpack-compilation-optimize-modules","id":"6f326c6375667763","timestamp":96782459384,"duration":14,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"337136676a696b78","name":"webpack-compilation-optimize-chunks","id":"6a39696a79703971","timestamp":96782459537,"duration":80,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"337136676a696b78","name":"webpack-compilation-optimize-tree","id":"7874633835357079","timestamp":96782459672,"duration":15,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"337136676a696b78","name":"webpack-compilation-optimize","id":"336f3335766d6e74","timestamp":96782459356,"duration":455,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"337136676a696b78","name":"webpack-compilation-hash","id":"69666c6172616a6b","timestamp":96782463183,"duration":2022,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"337136676a696b78","name":"webpack-compilation-seal","id":"7934327873716766","timestamp":96782457272,"duration":12686,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"336e613975743672","name":"webpack-compilation","id":"337136676a696b78","timestamp":96781950795,"duration":519255,"tags":{"name":"server"}},{"traceId":"a40c92b03843b256","parentId":"34687a73726c3939","name":"read-resource","id":"7276666e3365666e","timestamp":96782203447,"duration":278176,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"743567327536756b","name":"get-options","id":"6f786e767a356a67","timestamp":96782481763,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c6d643035676333","name":"babel-turbo-get-config","id":"38657863756f3864","timestamp":96782481776,"duration":20,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c6d643035676333","name":"babel-turbo-normalize-file","id":"326368327a747335","timestamp":96782481800,"duration":6568,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"77687230346b3461","name":"babel-turbo-traverse","id":"387277776c71656c","timestamp":96782491398,"duration":106037,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c6d643035676333","name":"babel-turbo-transform","id":"77687230346b3461","timestamp":96782488403,"duration":109075,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c6d643035676333","name":"babel-turbo-generate","id":"7071317876763031","timestamp":96782597513,"duration":6366,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"743567327536756b","name":"next-babel-turbo-transform","id":"6c6d643035676333","timestamp":96782481773,"duration":122117,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"34687a73726c3939","name":"next-babel-turbo-loader","id":"743567327536756b","timestamp":96782481756,"duration":122168,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"727279716b6b377a","name":"build-module-js","id":"34687a73726c3939","timestamp":96782203289,"duration":408969,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\pages\\_error.js"}},{"traceId":"a40c92b03843b256","parentId":"7832657961783068","name":"read-resource","id":"7a6634673162756d","timestamp":96782203560,"duration":408782,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6436707a63667876","name":"get-options","id":"696164696f686471","timestamp":96782612393,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6a766d646c3064","name":"babel-turbo-get-config","id":"3162757a6370736f","timestamp":96782612448,"duration":21,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6a766d646c3064","name":"babel-turbo-normalize-file","id":"6f6f317231333671","timestamp":96782612472,"duration":4801,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69393062626d6f78","name":"babel-turbo-traverse","id":"686235317a6c6474","timestamp":96782618220,"duration":30540,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6a766d646c3064","name":"babel-turbo-transform","id":"69393062626d6f78","timestamp":96782617313,"duration":31495,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6a766d646c3064","name":"babel-turbo-generate","id":"766e6735356b6236","timestamp":96782648839,"duration":4207,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6436707a63667876","name":"next-babel-turbo-transform","id":"7a6a766d646c3064","timestamp":96782612402,"duration":40652,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7832657961783068","name":"next-babel-turbo-loader","id":"6436707a63667876","timestamp":96782612387,"duration":40694,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"68616b706e69616e","name":"build-module-js","id":"7832657961783068","timestamp":96782203485,"duration":454878,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\pages\\_app.js"}},{"traceId":"a40c92b03843b256","parentId":"336e613975743672","name":"emit","id":"356a637862656a63","timestamp":96782470128,"duration":208483,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-server","id":"336e613975743672","timestamp":96781946951,"duration":734191,"tags":{"trigger":"manual"}}] +[{"traceId":"a40c92b03843b256","parentId":"7a78367a74766b64","name":"read-resource","id":"6f3574677830666e","timestamp":96782662362,"duration":22341,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7132736b37346274","name":"build-module-js","id":"7a78367a74766b64","timestamp":96782662236,"duration":25675,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\internal\\helpers.js"}},{"traceId":"a40c92b03843b256","parentId":"65307177656c7a78","name":"read-resource","id":"666534346f747762","timestamp":96782684485,"duration":19195,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e3473636f756d70","name":"get-options","id":"7734756e76647a35","timestamp":96782703745,"duration":7,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a707171666a7967","name":"babel-turbo-get-config","id":"727172307a637664","timestamp":96782703759,"duration":17,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a707171666a7967","name":"babel-turbo-normalize-file","id":"6174386c67753479","timestamp":96782703780,"duration":1657,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"64366d6c6f326473","name":"babel-turbo-traverse","id":"7373643333757467","timestamp":96782706720,"duration":2390,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a707171666a7967","name":"babel-turbo-transform","id":"64366d6c6f326473","timestamp":96782705459,"duration":3683,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a707171666a7967","name":"babel-turbo-generate","id":"346c6a666a666633","timestamp":96782709208,"duration":744,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e3473636f756d70","name":"next-babel-turbo-transform","id":"7a707171666a7967","timestamp":96782703756,"duration":6209,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"65307177656c7a78","name":"next-babel-turbo-loader","id":"6e3473636f756d70","timestamp":96782703739,"duration":6258,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"746d6e7339363131","name":"build-module-js","id":"65307177656c7a78","timestamp":96782684418,"duration":27718,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\dev\\fouc.js"}},{"traceId":"a40c92b03843b256","parentId":"30673374616a6569","name":"read-resource","id":"7a6d7430746d6e62","timestamp":96782684392,"duration":27800,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3773746c76757869","name":"get-options","id":"777a636973646c69","timestamp":96782712241,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7164796c39397663","name":"babel-turbo-get-config","id":"70397a617770766a","timestamp":96782712253,"duration":15,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7164796c39397663","name":"babel-turbo-normalize-file","id":"62696967796f3162","timestamp":96782712272,"duration":2248,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7533667876786c37","name":"babel-turbo-traverse","id":"386d79306b343766","timestamp":96782715200,"duration":7118,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7164796c39397663","name":"babel-turbo-transform","id":"7533667876786c37","timestamp":96782714542,"duration":7806,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7164796c39397663","name":"babel-turbo-generate","id":"6174336732683333","timestamp":96782722370,"duration":2310,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3773746c76757869","name":"next-babel-turbo-transform","id":"7164796c39397663","timestamp":96782712250,"duration":12439,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"30673374616a6569","name":"next-babel-turbo-loader","id":"3773746c76757869","timestamp":96782712235,"duration":12479,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"746d6e7339363131","name":"build-module-js","id":"30673374616a6569","timestamp":96782684325,"duration":42549,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\dev\\webpack-hot-middleware-client.js"}},{"traceId":"a40c92b03843b256","parentId":"6170763267717935","name":"read-resource","id":"6e6e336b32653438","timestamp":96782684166,"duration":42782,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69616f616a6f6975","name":"get-options","id":"776c323476786b38","timestamp":96782726995,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6478693770327977","name":"babel-turbo-get-config","id":"6b613264726b6476","timestamp":96782727007,"duration":19,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6478693770327977","name":"babel-turbo-normalize-file","id":"776176633667776d","timestamp":96782727029,"duration":2438,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d3377317066306b","name":"babel-turbo-traverse","id":"7a79336870366733","timestamp":96782730178,"duration":4929,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6478693770327977","name":"babel-turbo-transform","id":"6d3377317066306b","timestamp":96782729499,"duration":5638,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6478693770327977","name":"babel-turbo-generate","id":"636e787469336433","timestamp":96782735160,"duration":1103,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69616f616a6f6975","name":"next-babel-turbo-transform","id":"6478693770327977","timestamp":96782727004,"duration":9265,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6170763267717935","name":"next-babel-turbo-loader","id":"69616f616a6f6975","timestamp":96782726989,"duration":9303,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"686634706d667638","name":"build-module-js","id":"6170763267717935","timestamp":96782684013,"duration":54197,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\with-router.js"}},{"traceId":"a40c92b03843b256","parentId":"676e623238636234","name":"read-resource","id":"7535336169797133","timestamp":96782684297,"duration":53964,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c69797768756d75","name":"get-options","id":"6239716d66676165","timestamp":96782738302,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"396b667972767175","name":"babel-turbo-get-config","id":"39336534746b6e38","timestamp":96782738313,"duration":16,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"396b667972767175","name":"babel-turbo-normalize-file","id":"7533706577776561","timestamp":96782738333,"duration":5252,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3763686235356e64","name":"babel-turbo-traverse","id":"6c30376262716978","timestamp":96782744300,"duration":20730,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"396b667972767175","name":"babel-turbo-transform","id":"3763686235356e64","timestamp":96782743620,"duration":21463,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"396b667972767175","name":"babel-turbo-generate","id":"3777726176737073","timestamp":96782765112,"duration":3419,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c69797768756d75","name":"next-babel-turbo-transform","id":"396b667972767175","timestamp":96782738310,"duration":30234,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"676e623238636234","name":"next-babel-turbo-loader","id":"6c69797768756d75","timestamp":96782738296,"duration":30276,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"746d6e7339363131","name":"build-module-js","id":"676e623238636234","timestamp":96782684223,"duration":87943,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\dev\\on-demand-entries-client.js"}},{"traceId":"a40c92b03843b256","parentId":"677a6c6267377268","name":"read-resource","id":"7a65716a686d686b","timestamp":96782692927,"duration":83064,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7436306832376f36","name":"get-options","id":"6c736c647a616336","timestamp":96782776050,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"343271636b793633","name":"babel-turbo-get-config","id":"6172316d36697763","timestamp":96782776066,"duration":18,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"343271636b793633","name":"babel-turbo-normalize-file","id":"7872326571727232","timestamp":96782776087,"duration":702,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"786373657a67736a","name":"babel-turbo-traverse","id":"676c6f327a716434","timestamp":96782781847,"duration":249,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"343271636b793633","name":"babel-turbo-transform","id":"786373657a67736a","timestamp":96782776816,"duration":5310,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"343271636b793633","name":"babel-turbo-generate","id":"676e723571786768","timestamp":96782782134,"duration":126,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7436306832376f36","name":"next-babel-turbo-transform","id":"343271636b793633","timestamp":96782776062,"duration":6199,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"677a6c6267377268","name":"next-babel-turbo-loader","id":"7436306832376f36","timestamp":96782776044,"duration":6239,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"746d6e7339363131","name":"build-module-js","id":"677a6c6267377268","timestamp":96782692690,"duration":90954,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\dev\\noop.js"}},{"traceId":"a40c92b03843b256","parentId":"6e31716879653961","name":"read-resource","id":"763239656e6c7735","timestamp":96782693101,"duration":90601,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b79793532336275","name":"get-options","id":"736c6d6c74336e35","timestamp":96782783753,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"366c38376b313162","name":"babel-turbo-get-config","id":"6d79327739356464","timestamp":96782783765,"duration":32,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"366c38376b313162","name":"babel-turbo-normalize-file","id":"796968746d366a6e","timestamp":96782783800,"duration":52224,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a35626277736372","name":"babel-turbo-traverse","id":"7176756475316976","timestamp":96782836774,"duration":239854,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"366c38376b313162","name":"babel-turbo-transform","id":"6a35626277736372","timestamp":96782836068,"duration":240604,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"366c38376b313162","name":"babel-turbo-generate","id":"7234796f32393362","timestamp":96783076704,"duration":51591,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b79793532336275","name":"next-babel-turbo-transform","id":"366c38376b313162","timestamp":96782783761,"duration":344544,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e31716879653961","name":"next-babel-turbo-loader","id":"6b79793532336275","timestamp":96782783748,"duration":344592,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"746d6e7339363131","name":"build-module-js","id":"6e31716879653961","timestamp":96782693020,"duration":463307,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"686c776a6a733234","name":"read-resource","id":"616d7238757a6d77","timestamp":96782692394,"duration":464018,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6b7a64766f6861","name":"get-options","id":"7866616770373030","timestamp":96783156472,"duration":7,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"67393976616d627a","name":"babel-turbo-get-config","id":"6a737238376f6530","timestamp":96783156485,"duration":22,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"67393976616d627a","name":"babel-turbo-normalize-file","id":"6c616b746838726e","timestamp":96783156511,"duration":5873,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7534646969706d6d","name":"babel-turbo-traverse","id":"756b38736f76776c","timestamp":96783163172,"duration":15548,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"67393976616d627a","name":"babel-turbo-transform","id":"7534646969706d6d","timestamp":96783162425,"duration":16329,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"67393976616d627a","name":"babel-turbo-generate","id":"6d6533347a676d64","timestamp":96783178777,"duration":3265,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6b7a64766f6861","name":"next-babel-turbo-transform","id":"67393976616d627a","timestamp":96783156482,"duration":25568,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"686c776a6a733234","name":"next-babel-turbo-loader","id":"7a6b7a64766f6861","timestamp":96783156464,"duration":25617,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"746d6e7339363131","name":"build-module-js","id":"686c776a6a733234","timestamp":96782692190,"duration":495668,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\dev\\dev-build-watcher.js"}},{"traceId":"a40c92b03843b256","parentId":"786f743135366468","name":"read-resource","id":"7939727a676b6669","timestamp":96782700356,"duration":493376,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7163376171726467","name":"get-options","id":"616b636876746e32","timestamp":96783193828,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"326a63696f387a32","name":"babel-turbo-get-config","id":"796768307a786832","timestamp":96783193842,"duration":18,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"326a63696f387a32","name":"babel-turbo-normalize-file","id":"746a37696b6f7833","timestamp":96783193863,"duration":3747,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e68336a37666666","name":"babel-turbo-traverse","id":"6d716a6f39383168","timestamp":96783198308,"duration":11847,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"326a63696f387a32","name":"babel-turbo-transform","id":"6e68336a37666666","timestamp":96783197642,"duration":12544,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"326a63696f387a32","name":"babel-turbo-generate","id":"6a636d7379366b32","timestamp":96783210211,"duration":2174,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7163376171726467","name":"next-babel-turbo-transform","id":"326a63696f387a32","timestamp":96783193838,"duration":18554,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"786f743135366468","name":"next-babel-turbo-loader","id":"7163376171726467","timestamp":96783193793,"duration":18624,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"746d6e7339363131","name":"build-module-js","id":"786f743135366468","timestamp":96782700201,"duration":515056,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\dev\\error-overlay\\websocket.js"}},{"traceId":"a40c92b03843b256","parentId":"6e66366936787472","name":"read-resource","id":"316a62356b663662","timestamp":96782700447,"duration":517424,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"686634706d667638","name":"build-module-js","id":"6e66366936787472","timestamp":96782700405,"duration":518037,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\lib\\is-error.js"}},{"traceId":"a40c92b03843b256","parentId":"723335327a626476","name":"read-resource","id":"6c6c6c743973396d","timestamp":96782773842,"duration":446903,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3533626863696c65","name":"get-options","id":"6862696276657a67","timestamp":96783220813,"duration":8,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a62733434677471","name":"babel-turbo-get-config","id":"6a37636f756d6264","timestamp":96783220829,"duration":18,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a62733434677471","name":"babel-turbo-normalize-file","id":"6a30396f38386962","timestamp":96783220851,"duration":5583,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6372343962387337","name":"babel-turbo-traverse","id":"327876636b75656f","timestamp":96783227228,"duration":46651,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a62733434677471","name":"babel-turbo-transform","id":"6372343962387337","timestamp":96783226468,"duration":47445,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a62733434677471","name":"babel-turbo-generate","id":"6c68316c6763726b","timestamp":96783273938,"duration":5029,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3533626863696c65","name":"next-babel-turbo-transform","id":"7a62733434677471","timestamp":96783220826,"duration":58150,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"723335327a626476","name":"next-babel-turbo-loader","id":"3533626863696c65","timestamp":96783220806,"duration":58195,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7832657961783068","name":"build-module-js","id":"723335327a626476","timestamp":96782773772,"duration":509368,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\utils.js"}},{"traceId":"a40c92b03843b256","parentId":"393732676b703469","name":"read-resource","id":"636667646b317465","timestamp":96782773702,"duration":509504,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6934767536653174","name":"get-options","id":"75667766376e3165","timestamp":96783283251,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a31616e6b69346d","name":"babel-turbo-get-config","id":"627073686d31626b","timestamp":96783283262,"duration":15,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a31616e6b69346d","name":"babel-turbo-normalize-file","id":"7239757832636d76","timestamp":96783283280,"duration":1359,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7266786f37787537","name":"babel-turbo-traverse","id":"7272686139777a76","timestamp":96783285345,"duration":2069,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a31616e6b69346d","name":"babel-turbo-transform","id":"7266786f37787537","timestamp":96783284663,"duration":2781,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a31616e6b69346d","name":"babel-turbo-generate","id":"783634646a797067","timestamp":96783287465,"duration":595,"tags":{}}] +[{"traceId":"a40c92b03843b256","parentId":"6934767536653174","name":"next-babel-turbo-transform","id":"6a31616e6b69346d","timestamp":96783283259,"duration":5125,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"393732676b703469","name":"next-babel-turbo-loader","id":"6934767536653174","timestamp":96783283245,"duration":5159,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"686634706d667638","name":"build-module-js","id":"393732676b703469","timestamp":96782773558,"duration":516314,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\router-context.js"}},{"traceId":"a40c92b03843b256","parentId":"6e72726a716c3836","name":"read-resource","id":"76306c7463797275","timestamp":96782773940,"duration":515987,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"32796332776b396c","name":"get-options","id":"7973353866767330","timestamp":96783289968,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"75627475356d3363","name":"babel-turbo-get-config","id":"7a306933716e756e","timestamp":96783289979,"duration":18,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"75627475356d3363","name":"babel-turbo-normalize-file","id":"6479316238377a78","timestamp":96783290001,"duration":6363,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6735316b67663533","name":"babel-turbo-traverse","id":"6c393965366a3861","timestamp":96783297097,"duration":43270,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"75627475356d3363","name":"babel-turbo-transform","id":"6735316b67663533","timestamp":96783296399,"duration":44002,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"75627475356d3363","name":"babel-turbo-generate","id":"716e77693637737a","timestamp":96783340461,"duration":6277,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"32796332776b396c","name":"next-babel-turbo-transform","id":"75627475356d3363","timestamp":96783289976,"duration":56773,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e72726a716c3836","name":"next-babel-turbo-loader","id":"32796332776b396c","timestamp":96783289963,"duration":56817,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"34687a73726c3939","name":"build-module-js","id":"6e72726a716c3836","timestamp":96782773871,"duration":577352,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\head.js"}},{"traceId":"a40c92b03843b256","parentId":"7033717465366577","name":"read-resource","id":"6e70686a696c7a64","timestamp":96782774104,"duration":577172,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d3169746b756962","name":"get-options","id":"387861766f793970","timestamp":96783351439,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"757671716d777761","name":"babel-turbo-get-config","id":"7433793575386e65","timestamp":96783351451,"duration":48,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"757671716d777761","name":"babel-turbo-normalize-file","id":"30797067346f3867","timestamp":96783351509,"duration":47984,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"376b736965357876","name":"babel-turbo-traverse","id":"737663676139756d","timestamp":96783400219,"duration":550194,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"757671716d777761","name":"babel-turbo-transform","id":"376b736965357876","timestamp":96783399528,"duration":550917,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"757671716d777761","name":"babel-turbo-generate","id":"36326b71646a3272","timestamp":96783950472,"duration":65165,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d3169746b756962","name":"next-babel-turbo-transform","id":"757671716d777761","timestamp":96783351447,"duration":664200,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7033717465366577","name":"next-babel-turbo-loader","id":"6d3169746b756962","timestamp":96783351434,"duration":664243,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"686634706d667638","name":"build-module-js","id":"7033717465366577","timestamp":96782774005,"duration":1276317,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\router\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"6a34326577763432","name":"read-resource","id":"72726761306c3770","timestamp":96782774201,"duration":1276188,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766f676862386639","name":"get-options","id":"7965707168346636","timestamp":96784050482,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7732626e65686a74","name":"babel-turbo-get-config","id":"7064656f766b6779","timestamp":96784050494,"duration":20,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7732626e65686a74","name":"babel-turbo-normalize-file","id":"6e653378686c3238","timestamp":96784050518,"duration":2559,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6862726869646b69","name":"babel-turbo-traverse","id":"6f6173616b303864","timestamp":96784053755,"duration":11931,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7732626e65686a74","name":"babel-turbo-transform","id":"6862726869646b69","timestamp":96784053097,"duration":12620,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7732626e65686a74","name":"babel-turbo-generate","id":"656a743032743534","timestamp":96784065738,"duration":1828,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766f676862386639","name":"next-babel-turbo-transform","id":"7732626e65686a74","timestamp":96784050490,"duration":17082,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a34326577763432","name":"next-babel-turbo-loader","id":"766f676862386639","timestamp":96784050475,"duration":17119,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"746d6e7339363131","name":"build-module-js","id":"6a34326577763432","timestamp":96782774135,"duration":1295198,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\querystring.js"}},{"traceId":"a40c92b03843b256","parentId":"696e616c646a6972","name":"read-resource","id":"35646d6966316d68","timestamp":96783189550,"duration":891340,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7132736b37346274","name":"build-module-js","id":"696e616c646a6972","timestamp":96783189439,"duration":892078,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-refresh\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"7033717465366577","name":"build-module","id":"7575653970326535","timestamp":96784096166,"duration":141,"tags":{"name":"undefined"}},{"traceId":"a40c92b03843b256","parentId":"343078746c6c3236","name":"read-resource","id":"316d6738377a7a7a","timestamp":96784091710,"duration":11438,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"34687a73726c3939","name":"build-module-js","id":"343078746c6c3236","timestamp":96784091662,"duration":12369,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\createClass.js"}},{"traceId":"a40c92b03843b256","parentId":"3979617862623564","name":"read-resource","id":"6733306665656d6a","timestamp":96784091819,"duration":12267,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"34687a73726c3939","name":"build-module-js","id":"3979617862623564","timestamp":96784091784,"duration":12849,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\inherits.js"}},{"traceId":"a40c92b03843b256","parentId":"7470757a6e743272","name":"read-resource","id":"7235376e76697164","timestamp":96784091867,"duration":13159,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"34687a73726c3939","name":"build-module-js","id":"7470757a6e743272","timestamp":96784091837,"duration":13857,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\getPrototypeOf.js"}},{"traceId":"a40c92b03843b256","parentId":"69397970376a7675","name":"read-resource","id":"306a75716c727368","timestamp":96784091917,"duration":13828,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"34687a73726c3939","name":"build-module-js","id":"69397970376a7675","timestamp":96784091885,"duration":14827,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\possibleConstructorReturn.js"}},{"traceId":"a40c92b03843b256","parentId":"75326b646c6f3365","name":"read-resource","id":"3561667a6b617363","timestamp":96784091623,"duration":15130,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"686634706d667638","name":"build-module-js","id":"75326b646c6f3365","timestamp":96784091517,"duration":15986,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\construct.js"}},{"traceId":"a40c92b03843b256","parentId":"7874327677676f68","name":"read-resource","id":"3039797a31346568","timestamp":96784091766,"duration":15770,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"34687a73726c3939","name":"build-module-js","id":"7874327677676f68","timestamp":96784091732,"duration":16119,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\classCallCheck.js"}},{"traceId":"a40c92b03843b256","parentId":"7436363379796d7a","name":"read-resource","id":"3338303465756769","timestamp":96784092072,"duration":15802,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"676e623238636234","name":"build-module-js","id":"7436363379796d7a","timestamp":96784092002,"duration":16047,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"626d333970626d73","name":"read-resource","id":"7439306a3075646f","timestamp":96784092172,"duration":15892,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"346a6c7a62316867","name":"get-options","id":"766e626c6b797a70","timestamp":96784108097,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7567353030747477","name":"babel-turbo-get-config","id":"7639683933346c73","timestamp":96784108108,"duration":18,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7567353030747477","name":"babel-turbo-normalize-file","id":"71336e6379357838","timestamp":96784108131,"duration":8297,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7730396436786675","name":"babel-turbo-traverse","id":"65337a6a66396b62","timestamp":96784117147,"duration":23957,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7567353030747477","name":"babel-turbo-transform","id":"7730396436786675","timestamp":96784116459,"duration":24676,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7567353030747477","name":"babel-turbo-generate","id":"73613963616e6674","timestamp":96784141158,"duration":6060,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"346a6c7a62316867","name":"next-babel-turbo-transform","id":"7567353030747477","timestamp":96784108105,"duration":39120,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"626d333970626d73","name":"next-babel-turbo-loader","id":"346a6c7a62316867","timestamp":96784108091,"duration":39159,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"30673374616a6569","name":"build-module-js","id":"626d333970626d73","timestamp":96784092094,"duration":64845,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\dev\\error-overlay\\hot-dev-client.js"}},{"traceId":"a40c92b03843b256","parentId":"6f62343077613771","name":"read-resource","id":"67747a7379646767","timestamp":96784091981,"duration":65026,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"30673374616a6569","name":"build-module-js","id":"6f62343077613771","timestamp":96784091941,"duration":65731,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\slicedToArray.js"}},{"traceId":"a40c92b03843b256","parentId":"6a32683273617839","name":"read-resource","id":"34386f63647a3666","timestamp":96784092332,"duration":65397,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"706c63736b38646c","name":"get-options","id":"6366736a69763834","timestamp":96784157771,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"383165723938317a","name":"babel-turbo-get-config","id":"6f616a7730723832","timestamp":96784157783,"duration":18,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"383165723938317a","name":"babel-turbo-normalize-file","id":"7071686377653232","timestamp":96784157842,"duration":5350,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a766a3374633372","name":"babel-turbo-traverse","id":"7a786e656c707069","timestamp":96784164261,"duration":22899,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"383165723938317a","name":"babel-turbo-transform","id":"6a766a3374633372","timestamp":96784163218,"duration":23982,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"383165723938317a","name":"babel-turbo-generate","id":"316c756f3061646f","timestamp":96784187224,"duration":5387,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"706c63736b38646c","name":"next-babel-turbo-transform","id":"383165723938317a","timestamp":96784157780,"duration":34841,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a32683273617839","name":"next-babel-turbo-loader","id":"706c63736b38646c","timestamp":96784157765,"duration":34883,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e31716879653961","name":"build-module-js","id":"6a32683273617839","timestamp":96784092278,"duration":105123,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\head-manager.js"}},{"traceId":"a40c92b03843b256","parentId":"6771316d717a7272","name":"read-resource","id":"797a7a6239353575","timestamp":96784092412,"duration":105419,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a797a6f32797268","name":"get-options","id":"7a7835386f31337a","timestamp":96784197919,"duration":7,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"376f65636e676a7a","name":"babel-turbo-get-config","id":"366d7072386a696e","timestamp":96784197934,"duration":23,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"376f65636e676a7a","name":"babel-turbo-normalize-file","id":"6c687438756d7836","timestamp":96784197960,"duration":3879,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"31746a706a653774","name":"babel-turbo-traverse","id":"78347939706b347a","timestamp":96784202980,"duration":7766,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"376f65636e676a7a","name":"babel-turbo-transform","id":"31746a706a653774","timestamp":96784201875,"duration":8956,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"376f65636e676a7a","name":"babel-turbo-generate","id":"7a376a3237383839","timestamp":96784210858,"duration":2204,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a797a6f32797268","name":"next-babel-turbo-transform","id":"376f65636e676a7a","timestamp":96784197930,"duration":15141,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6771316d717a7272","name":"next-babel-turbo-loader","id":"6a797a6f32797268","timestamp":96784197911,"duration":15184,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e31716879653961","name":"build-module-js","id":"6771316d717a7272","timestamp":96784092362,"duration":122447,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\performance-relayer.js"}},{"traceId":"a40c92b03843b256","parentId":"6a33626a75716537","name":"read-resource","id":"7a6a34306a6a316a","timestamp":96784092480,"duration":122397,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"78797a66796d3736","name":"get-options","id":"7262786673613664","timestamp":96784214947,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6873707075347664","name":"babel-turbo-get-config","id":"3169793172657270","timestamp":96784214965,"duration":22,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6873707075347664","name":"babel-turbo-normalize-file","id":"6e756b75316c7a74","timestamp":96784214993,"duration":7506,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"78636c3636796178","name":"babel-turbo-traverse","id":"797668356f397070","timestamp":96784223179,"duration":9402,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6873707075347664","name":"babel-turbo-transform","id":"78636c3636796178","timestamp":96784222530,"duration":10069,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6873707075347664","name":"babel-turbo-generate","id":"3162786d76357435","timestamp":96784232620,"duration":1967,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"78797a66796d3736","name":"next-babel-turbo-transform","id":"6873707075347664","timestamp":96784214959,"duration":19637,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a33626a75716537","name":"next-babel-turbo-loader","id":"78797a66796d3736","timestamp":96784214938,"duration":19686,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e31716879653961","name":"build-module-js","id":"6a33626a75716537","timestamp":96784092431,"duration":144170,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\route-announcer.js"}},{"traceId":"a40c92b03843b256","parentId":"783775707a397072","name":"read-resource","id":"6f6e7138317a316b","timestamp":96784092253,"duration":144942,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6379766633777066","name":"get-options","id":"7678756779787a79","timestamp":96784237248,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37336b33686a616d","name":"babel-turbo-get-config","id":"7075396872356a65","timestamp":96784237260,"duration":16,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37336b33686a616d","name":"babel-turbo-normalize-file","id":"346c783568326536","timestamp":96784237280,"duration":6542,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"32363831726c3863","name":"babel-turbo-traverse","id":"3666746c6177786a","timestamp":96784244594,"duration":31404,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37336b33686a616d","name":"babel-turbo-transform","id":"32363831726c3863","timestamp":96784243869,"duration":32365,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37336b33686a616d","name":"babel-turbo-generate","id":"3274696e6b38736e","timestamp":96784276264,"duration":4569,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6379766633777066","name":"next-babel-turbo-transform","id":"37336b33686a616d","timestamp":96784237257,"duration":43584,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"783775707a397072","name":"next-babel-turbo-loader","id":"6379766633777066","timestamp":96784237242,"duration":43623,"tags":{}}] +[{"traceId":"a40c92b03843b256","parentId":"6e31716879653961","name":"build-module-js","id":"783775707a397072","timestamp":96784092194,"duration":196134,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\page-loader.js"}},{"traceId":"a40c92b03843b256","parentId":"7665676565767673","name":"read-resource","id":"6c77356f72357367","timestamp":96784092558,"duration":195939,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"726666357537306c","name":"get-options","id":"383164643530306f","timestamp":96784288547,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"386239616e65706e","name":"babel-turbo-get-config","id":"313239396a783961","timestamp":96784288596,"duration":21,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"386239616e65706e","name":"babel-turbo-normalize-file","id":"766d35776e736e61","timestamp":96784288620,"duration":2257,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7364356176323530","name":"babel-turbo-traverse","id":"756838386e726b70","timestamp":96784291789,"duration":4947,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"386239616e65706e","name":"babel-turbo-transform","id":"7364356176323530","timestamp":96784290915,"duration":5845,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"386239616e65706e","name":"babel-turbo-generate","id":"38796b316b7a7639","timestamp":96784296778,"duration":1193,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"726666357537306c","name":"next-babel-turbo-transform","id":"386239616e65706e","timestamp":96784288556,"duration":9423,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7665676565767673","name":"next-babel-turbo-loader","id":"726666357537306c","timestamp":96784288542,"duration":9459,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e31716879653961","name":"build-module-js","id":"7665676565767673","timestamp":96784092499,"duration":206843,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\vitals.js"}},{"traceId":"a40c92b03843b256","parentId":"70387a7868666e61","name":"read-resource","id":"6b32766d63777639","timestamp":96784092629,"duration":206759,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6935767a647a7676","name":"get-options","id":"787876373375626f","timestamp":96784299424,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"71716e6c67687776","name":"babel-turbo-get-config","id":"3278626a61746d33","timestamp":96784299435,"duration":14,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"71716e6c67687776","name":"babel-turbo-normalize-file","id":"6b67797839637670","timestamp":96784299452,"duration":8684,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"396a317a38797537","name":"babel-turbo-traverse","id":"7769756378316a39","timestamp":96784308843,"duration":32460,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"71716e6c67687776","name":"babel-turbo-transform","id":"396a317a38797537","timestamp":96784308171,"duration":33152,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"71716e6c67687776","name":"babel-turbo-generate","id":"3266776576736938","timestamp":96784341345,"duration":10609,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6935767a647a7676","name":"next-babel-turbo-transform","id":"71716e6c67687776","timestamp":96784299432,"duration":52534,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"70387a7868666e61","name":"next-babel-turbo-loader","id":"6935767a647a7676","timestamp":96784299419,"duration":52573,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e31716879653961","name":"build-module-js","id":"70387a7868666e61","timestamp":96784092578,"duration":262904,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\script.js"}},{"traceId":"a40c92b03843b256","parentId":"743632766b747336","name":"read-resource","id":"3135643066386d31","timestamp":96784092937,"duration":262615,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79306f6232793632","name":"get-options","id":"336b6765746e6a6c","timestamp":96784355599,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"706c33697a6d3364","name":"babel-turbo-get-config","id":"66397979646b707a","timestamp":96784355612,"duration":16,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"706c33697a6d3364","name":"babel-turbo-normalize-file","id":"7a35707733317876","timestamp":96784355631,"duration":1112,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3531346d37377164","name":"babel-turbo-traverse","id":"3633346d756b6c6a","timestamp":96784357431,"duration":1142,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"706c33697a6d3364","name":"babel-turbo-transform","id":"3531346d37377164","timestamp":96784356768,"duration":1819,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"706c33697a6d3364","name":"babel-turbo-generate","id":"6b39776a67797467","timestamp":96784358607,"duration":380,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79306f6232793632","name":"next-babel-turbo-transform","id":"706c33697a6d3364","timestamp":96784355608,"duration":3383,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"743632766b747336","name":"next-babel-turbo-loader","id":"79306f6232793632","timestamp":96784355592,"duration":3420,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e31716879653961","name":"build-module-js","id":"743632766b747336","timestamp":96784092887,"duration":267245,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\is-dynamic.js"}},{"traceId":"a40c92b03843b256","parentId":"3677676732627966","name":"read-resource","id":"6d6265676c6c7877","timestamp":96784092860,"duration":267321,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"66336d776f373331","name":"get-options","id":"787864367269377a","timestamp":96784360220,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c7a663179756170","name":"babel-turbo-get-config","id":"7161733079643768","timestamp":96784360231,"duration":16,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c7a663179756170","name":"babel-turbo-normalize-file","id":"73716c6f65337567","timestamp":96784360250,"duration":1165,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"746d396f32316638","name":"babel-turbo-traverse","id":"79796f71356d7236","timestamp":96784362059,"duration":1517,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c7a663179756170","name":"babel-turbo-transform","id":"746d396f32316638","timestamp":96784361436,"duration":2154,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c7a663179756170","name":"babel-turbo-generate","id":"37657a7969353433","timestamp":96784363612,"duration":578,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"66336d776f373331","name":"next-babel-turbo-transform","id":"6c7a663179756170","timestamp":96784360228,"duration":3965,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3677676732627966","name":"next-babel-turbo-loader","id":"66336d776f373331","timestamp":96784360215,"duration":4001,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e31716879653961","name":"build-module-js","id":"3677676732627966","timestamp":96784092807,"duration":272356,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\runtime-config.js"}},{"traceId":"a40c92b03843b256","parentId":"626e7a3938617a63","name":"read-resource","id":"343169793764646e","timestamp":96784092781,"duration":272424,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6864733265356a33","name":"get-options","id":"3077756f6c773069","timestamp":96784365241,"duration":3,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"697037386a737337","name":"babel-turbo-get-config","id":"7378656735687a37","timestamp":96784365283,"duration":14,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"697037386a737337","name":"babel-turbo-normalize-file","id":"67306f367937796b","timestamp":96784365302,"duration":1236,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6e6837676d6634","name":"babel-turbo-traverse","id":"386f387931763578","timestamp":96784367188,"duration":2022,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"697037386a737337","name":"babel-turbo-transform","id":"7a6e6837676d6634","timestamp":96784366557,"duration":2675,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"697037386a737337","name":"babel-turbo-generate","id":"3870306e316b3534","timestamp":96784369279,"duration":878,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6864733265356a33","name":"next-babel-turbo-transform","id":"697037386a737337","timestamp":96784365248,"duration":4914,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"626e7a3938617a63","name":"next-babel-turbo-loader","id":"6864733265356a33","timestamp":96784365236,"duration":4956,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e31716879653961","name":"build-module-js","id":"626e7a3938617a63","timestamp":96784092720,"duration":278648,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\head-manager-context.js"}},{"traceId":"a40c92b03843b256","parentId":"676b693534637366","name":"read-resource","id":"7336636538743965","timestamp":96784092700,"duration":278726,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"686261386a363176","name":"get-options","id":"377a7a3239626a6b","timestamp":96784371474,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"66327172796f6467","name":"babel-turbo-get-config","id":"756d766a647a3363","timestamp":96784371486,"duration":18,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"66327172796f6467","name":"babel-turbo-normalize-file","id":"336679636d777661","timestamp":96784371507,"duration":1676,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e31376f75326434","name":"babel-turbo-traverse","id":"776b717068336239","timestamp":96784373867,"duration":6057,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"66327172796f6467","name":"babel-turbo-transform","id":"6e31376f75326434","timestamp":96784373206,"duration":6732,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"66327172796f6467","name":"babel-turbo-generate","id":"633172716d656532","timestamp":96784379961,"duration":1044,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"686261386a363176","name":"next-babel-turbo-transform","id":"66327172796f6467","timestamp":96784371482,"duration":9530,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"676b693534637366","name":"next-babel-turbo-loader","id":"686261386a363176","timestamp":96784371468,"duration":9569,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e31716879653961","name":"build-module-js","id":"676b693534637366","timestamp":96784092649,"duration":289690,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\mitt.js"}},{"traceId":"a40c92b03843b256","parentId":"6965316963317662","name":"read-resource","id":"7234617772706737","timestamp":96784100293,"duration":295585,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76686a6937306977","name":"build-module-js","id":"6965316963317662","timestamp":96784100198,"duration":296045,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\regenerator\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"65336e727a307563","name":"next-client-pages-loader","id":"71393770646d7868","timestamp":96784400211,"duration":63,"tags":{"absolutePagePath":"next/dist/pages/_app"}},{"traceId":"a40c92b03843b256","parentId":"667832386a79676e","name":"build-module-js?page=%2F_app&absolutePagePath=next%2Fdist%2Fpages%2F_app!","id":"65336e727a307563","timestamp":96784399537,"duration":1481,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-client-pages-loader.js?page=%2F_app&absolutePagePath=next%2Fdist%2Fpages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"6863783762786e73","name":"next-client-pages-loader","id":"7933736476623836","timestamp":96784401176,"duration":51,"tags":{"absolutePagePath":"next/dist/pages/_error"}},{"traceId":"a40c92b03843b256","parentId":"667832386a79676e","name":"build-module-js?page=%2F_error&absolutePagePath=next%2Fdist%2Fpages%2F_error!","id":"6863783762786e73","timestamp":96784401094,"duration":409,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-client-pages-loader.js?page=%2F_error&absolutePagePath=next%2Fdist%2Fpages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"757277773636326d","name":"read-resource","id":"6138696671613474","timestamp":96784101540,"duration":300607,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e72726a716c3836","name":"build-module-js","id":"757277773636326d","timestamp":96784101499,"duration":301087,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\defineProperty.js"}},{"traceId":"a40c92b03843b256","parentId":"707a6b6d7a677a6a","name":"read-resource","id":"376b393476643538","timestamp":96784101411,"duration":301204,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"723335327a626476","name":"build-module-js","id":"707a6b6d7a677a6a","timestamp":96784101335,"duration":301805,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\asyncToGenerator.js"}},{"traceId":"a40c92b03843b256","parentId":"37783832627a3378","name":"read-resource","id":"70356467796b6766","timestamp":96784101471,"duration":301695,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"723335327a626476","name":"build-module-js","id":"37783832627a3378","timestamp":96784101438,"duration":302352,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\wrapNativeSuper.js"}},{"traceId":"a40c92b03843b256","parentId":"367634306c6d6d79","name":"read-resource","id":"3236366d32636e6f","timestamp":96784102035,"duration":301782,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d31616267697066","name":"get-options","id":"756232726b633276","timestamp":96784403850,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"776936727932667a","name":"babel-turbo-get-config","id":"656d773670703763","timestamp":96784403860,"duration":15,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"776936727932667a","name":"babel-turbo-normalize-file","id":"64746a3761777739","timestamp":96784403921,"duration":3517,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6664663366756663","name":"babel-turbo-traverse","id":"6e63656563636269","timestamp":96784408169,"duration":13612,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"776936727932667a","name":"babel-turbo-transform","id":"6664663366756663","timestamp":96784407471,"duration":14328,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"776936727932667a","name":"babel-turbo-generate","id":"32786b356e636a7a","timestamp":96784421828,"duration":2622,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d31616267697066","name":"next-babel-turbo-transform","id":"776936727932667a","timestamp":96784403857,"duration":20600,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"367634306c6d6d79","name":"next-babel-turbo-loader","id":"6d31616267697066","timestamp":96784403844,"duration":20641,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"723335327a626476","name":"build-module-js","id":"367634306c6d6d79","timestamp":96784101980,"duration":325033,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\format-url.js"}},{"traceId":"a40c92b03843b256","parentId":"61693166706f6b75","name":"read-resource","id":"386e756c76783362","timestamp":96784101801,"duration":325279,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72306c6968797737","name":"get-options","id":"67736473706a7575","timestamp":96784427135,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d6e723065736773","name":"babel-turbo-get-config","id":"38796e6961387372","timestamp":96784427147,"duration":17,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d6e723065736773","name":"babel-turbo-normalize-file","id":"3265696c6c72746a","timestamp":96784427167,"duration":3099,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7135636c7a776969","name":"babel-turbo-traverse","id":"626b7174616f6133","timestamp":96784430948,"duration":19148,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d6e723065736773","name":"babel-turbo-transform","id":"7135636c7a776969","timestamp":96784430298,"duration":19814,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d6e723065736773","name":"babel-turbo-generate","id":"6d63303536306f35","timestamp":96784450134,"duration":2302,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72306c6968797737","name":"next-babel-turbo-transform","id":"6d6e723065736773","timestamp":96784427144,"duration":25298,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"61693166706f6b75","name":"next-babel-turbo-loader","id":"72306c6968797737","timestamp":96784427128,"duration":25336,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e72726a716c3836","name":"build-module-js","id":"61693166706f6b75","timestamp":96784101747,"duration":352930,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\side-effect.js"}},{"traceId":"a40c92b03843b256","parentId":"376a336832343165","name":"read-resource","id":"3273373669647474","timestamp":96784101654,"duration":353072,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"396378697a313976","name":"get-options","id":"39776e6a31673165","timestamp":96784454769,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"613963326c327274","name":"babel-turbo-get-config","id":"777765787a726575","timestamp":96784454786,"duration":15,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"613963326c327274","name":"babel-turbo-normalize-file","id":"707a6a7270353074","timestamp":96784454805,"duration":1485,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"356d627931657837","name":"babel-turbo-traverse","id":"766473636f6a7677","timestamp":96784457203,"duration":2124,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"613963326c327274","name":"babel-turbo-transform","id":"356d627931657837","timestamp":96784456314,"duration":3032,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"613963326c327274","name":"babel-turbo-generate","id":"616d647072636467","timestamp":96784459380,"duration":600,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"396378697a313976","name":"next-babel-turbo-transform","id":"613963326c327274","timestamp":96784454783,"duration":5201,"tags":{}}] +[{"traceId":"a40c92b03843b256","parentId":"376a336832343165","name":"next-babel-turbo-loader","id":"396378697a313976","timestamp":96784454763,"duration":5545,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e72726a716c3836","name":"build-module-js","id":"376a336832343165","timestamp":96784101585,"duration":360013,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\amp-context.js"}},{"traceId":"a40c92b03843b256","parentId":"6c69707475726865","name":"read-resource","id":"7175646567316575","timestamp":96784101727,"duration":359916,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"39656f747a63676d","name":"get-options","id":"6d7a307067346c76","timestamp":96784461681,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f64313661703932","name":"babel-turbo-get-config","id":"3332366572623566","timestamp":96784461692,"duration":15,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f64313661703932","name":"babel-turbo-normalize-file","id":"6f39337776313435","timestamp":96784461710,"duration":1747,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"716d726274347079","name":"babel-turbo-traverse","id":"767169757934676e","timestamp":96784464103,"duration":9950,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f64313661703932","name":"babel-turbo-transform","id":"716d726274347079","timestamp":96784463479,"duration":10588,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f64313661703932","name":"babel-turbo-generate","id":"30796567366b6a33","timestamp":96784474089,"duration":1085,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"39656f747a63676d","name":"next-babel-turbo-transform","id":"6f64313661703932","timestamp":96784461689,"duration":13491,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c69707475726865","name":"next-babel-turbo-loader","id":"39656f747a63676d","timestamp":96784461675,"duration":13529,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e72726a716c3836","name":"build-module-js","id":"6c69707475726865","timestamp":96784101677,"duration":375016,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\amp.js"}},{"traceId":"a40c92b03843b256","parentId":"3977303834727870","name":"read-resource","id":"6568786964787973","timestamp":96784102111,"duration":374640,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3731346c386b6330","name":"get-options","id":"6c37666166656378","timestamp":96784476795,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e63697763386b78","name":"babel-turbo-get-config","id":"33666b6c78707233","timestamp":96784476807,"duration":18,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e63697763386b78","name":"babel-turbo-normalize-file","id":"7a31616838753273","timestamp":96784476862,"duration":1790,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e36303670337a69","name":"babel-turbo-traverse","id":"3173703537773073","timestamp":96784479389,"duration":4305,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e63697763386b78","name":"babel-turbo-transform","id":"6e36303670337a69","timestamp":96784478678,"duration":5034,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e63697763386b78","name":"babel-turbo-generate","id":"697a766c39797834","timestamp":96784483741,"duration":1144,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3731346c386b6330","name":"next-babel-turbo-transform","id":"6e63697763386b78","timestamp":96784476804,"duration":8087,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3977303834727870","name":"next-babel-turbo-loader","id":"3731346c386b6330","timestamp":96784476790,"duration":8123,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7033717465366577","name":"build-module-js","id":"3977303834727870","timestamp":96784102058,"duration":384273,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\parse-relative-url.js"}},{"traceId":"a40c92b03843b256","parentId":"6e7278337a343763","name":"read-resource","id":"6c33726d38796577","timestamp":96784101959,"duration":384424,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c66353438786279","name":"get-options","id":"35686c6434786571","timestamp":96784486430,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f773777396a3970","name":"babel-turbo-get-config","id":"356b6e71777a7a6b","timestamp":96784486443,"duration":24,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f773777396a3970","name":"babel-turbo-normalize-file","id":"61367571337a6d6a","timestamp":96784486470,"duration":9542,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3167623069676b6e","name":"babel-turbo-traverse","id":"3977327531673277","timestamp":96784496710,"duration":53967,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f773777396a3970","name":"babel-turbo-transform","id":"3167623069676b6e","timestamp":96784496052,"duration":54641,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f773777396a3970","name":"babel-turbo-generate","id":"6c69656f73743678","timestamp":96784550720,"duration":16868,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c66353438786279","name":"next-babel-turbo-transform","id":"6f773777396a3970","timestamp":96784486439,"duration":81160,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e7278337a343763","name":"next-babel-turbo-loader","id":"6c66353438786279","timestamp":96784486425,"duration":81234,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7033717465366577","name":"build-module-js","id":"6e7278337a343763","timestamp":96784101909,"duration":470821,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\route-loader.js"}},{"traceId":"a40c92b03843b256","parentId":"62726938376b736d","name":"read-resource","id":"7a65767573387861","timestamp":96784101884,"duration":470937,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3866397067323536","name":"get-options","id":"757275763532676b","timestamp":96784572895,"duration":7,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b69666733693476","name":"babel-turbo-get-config","id":"6961663979337672","timestamp":96784572915,"duration":28,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b69666733693476","name":"babel-turbo-normalize-file","id":"6a316e696f767467","timestamp":96784572949,"duration":1883,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3030366c36346339","name":"babel-turbo-traverse","id":"377979386f76796e","timestamp":96784575553,"duration":2307,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b69666733693476","name":"babel-turbo-transform","id":"3030366c36346339","timestamp":96784574858,"duration":3020,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b69666733693476","name":"babel-turbo-generate","id":"6f6a6f6931387531","timestamp":96784577906,"duration":819,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3866397067323536","name":"next-babel-turbo-transform","id":"6b69666733693476","timestamp":96784572909,"duration":5821,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"62726938376b736d","name":"next-babel-turbo-loader","id":"3866397067323536","timestamp":96784572884,"duration":5867,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7033717465366577","name":"build-module-js","id":"62726938376b736d","timestamp":96784101830,"duration":478466,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\normalize-trailing-slash.js"}},{"traceId":"a40c92b03843b256","parentId":"61376a3478776875","name":"read-resource","id":"7177327966666668","timestamp":96784102336,"duration":478015,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"376e7a6b32327337","name":"get-options","id":"6438763473646d66","timestamp":96784580396,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7569616a6d763773","name":"babel-turbo-get-config","id":"3367313078737935","timestamp":96784580408,"duration":19,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7569616a6d763773","name":"babel-turbo-normalize-file","id":"6d71676130396e7a","timestamp":96784580431,"duration":2003,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b6636666f756677","name":"babel-turbo-traverse","id":"6b616d6a6663356a","timestamp":96784583065,"duration":5092,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7569616a6d763773","name":"babel-turbo-transform","id":"6b6636666f756677","timestamp":96784582455,"duration":5728,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7569616a6d763773","name":"babel-turbo-generate","id":"613833636b667163","timestamp":96784588205,"duration":1287,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"376e7a6b32327337","name":"next-babel-turbo-transform","id":"7569616a6d763773","timestamp":96784580405,"duration":9094,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"61376a3478776875","name":"next-babel-turbo-loader","id":"376e7a6b32327337","timestamp":96784580390,"duration":9139,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7033717465366577","name":"build-module-js","id":"61376a3478776875","timestamp":96784102282,"duration":488608,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\route-matcher.js"}},{"traceId":"a40c92b03843b256","parentId":"6c3838776b797667","name":"read-resource","id":"733239366e797863","timestamp":96784102184,"duration":489005,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"797a6a6169717137","name":"get-options","id":"3872337379767169","timestamp":96784591228,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"34696e6476747065","name":"babel-turbo-get-config","id":"65757a64617a6a32","timestamp":96784591239,"duration":20,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"34696e6476747065","name":"babel-turbo-normalize-file","id":"6d79646f79613177","timestamp":96784591301,"duration":4255,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"30743436316d7275","name":"babel-turbo-traverse","id":"3179386263626c69","timestamp":96784596321,"duration":17754,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"34696e6476747065","name":"babel-turbo-transform","id":"30743436316d7275","timestamp":96784595587,"duration":18501,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"34696e6476747065","name":"babel-turbo-generate","id":"3178376237746a7a","timestamp":96784614112,"duration":3721,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"797a6a6169717137","name":"next-babel-turbo-transform","id":"34696e6476747065","timestamp":96784591236,"duration":26605,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c3838776b797667","name":"next-babel-turbo-loader","id":"797a6a6169717137","timestamp":96784591222,"duration":26646,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7033717465366577","name":"build-module-js","id":"6c3838776b797667","timestamp":96784102135,"duration":518012,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\route-regex.js"}},{"traceId":"a40c92b03843b256","parentId":"6e78356b6c64716e","name":"read-resource","id":"3966776b66737268","timestamp":96784102255,"duration":517947,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"396a697433783670","name":"get-options","id":"7863617163617335","timestamp":96784620246,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b6f6a776e776867","name":"babel-turbo-get-config","id":"73696c6469336766","timestamp":96784620258,"duration":18,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b6f6a776e776867","name":"babel-turbo-normalize-file","id":"637570626f776b61","timestamp":96784620279,"duration":1876,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6762743864333166","name":"babel-turbo-traverse","id":"75386e73316d3278","timestamp":96784623096,"duration":5313,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b6f6a776e776867","name":"babel-turbo-transform","id":"6762743864333166","timestamp":96784622187,"duration":6238,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b6f6a776e776867","name":"babel-turbo-generate","id":"3376727037796f74","timestamp":96784628459,"duration":1271,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"396a697433783670","name":"next-babel-turbo-transform","id":"6b6f6a776e776867","timestamp":96784620254,"duration":9480,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e78356b6c64716e","name":"next-babel-turbo-loader","id":"396a697433783670","timestamp":96784620241,"duration":9516,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7033717465366577","name":"build-module-js","id":"6e78356b6c64716e","timestamp":96784102206,"duration":528899,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\get-middleware-regex.js"}},{"traceId":"a40c92b03843b256","parentId":"6d6e366437796b63","name":"read-resource","id":"67336b396b787976","timestamp":96784394797,"duration":246961,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"696e616c646a6972","name":"build-module-js","id":"6d6e366437796b63","timestamp":96784394698,"duration":251943,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-refresh\\cjs\\react-refresh-runtime.development.js"}},{"traceId":"a40c92b03843b256","parentId":"3074323873663071","name":"read-resource","id":"6b6d743262363031","timestamp":96784394907,"duration":252020,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f727a7a356b6265","name":"get-options","id":"6a6a38656f663978","timestamp":96784646975,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6468797967373132","name":"babel-turbo-get-config","id":"71696a6566716364","timestamp":96784647022,"duration":23,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6468797967373132","name":"babel-turbo-normalize-file","id":"6639787770687a37","timestamp":96784647048,"duration":1655,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7961693633317335","name":"babel-turbo-traverse","id":"36356e34766e3631","timestamp":96784649459,"duration":2920,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6468797967373132","name":"babel-turbo-transform","id":"7961693633317335","timestamp":96784648724,"duration":3669,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6468797967373132","name":"babel-turbo-generate","id":"3066646437366635","timestamp":96784652417,"duration":870,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f727a7a356b6265","name":"next-babel-turbo-transform","id":"6468797967373132","timestamp":96784647018,"duration":6274,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3074323873663071","name":"next-babel-turbo-loader","id":"6f727a7a356b6265","timestamp":96784646968,"duration":6346,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7033717465366577","name":"build-module-js","id":"3074323873663071","timestamp":96784394830,"duration":259663,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\i18n\\normalize-locale-path.js"}},{"traceId":"a40c92b03843b256","parentId":"32673577646e7933","name":"read-resource","id":"736d623567643073","timestamp":96784394981,"duration":259642,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7033717465366577","name":"build-module-js","id":"32673577646e7933","timestamp":96784394938,"duration":260356,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\server\\denormalize-page-path.js"}},{"traceId":"a40c92b03843b256","parentId":"63397176767a6235","name":"add-entry","id":"737a38366a333474","timestamp":96782111286,"duration":2546070,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"677932356e717574","name":"read-resource","id":"666a303776776271","timestamp":96784398096,"duration":260626,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"686634706d667638","name":"build-module-js","id":"677932356e717574","timestamp":96784397998,"duration":261184,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"3238763076663077","name":"read-resource","id":"6339736b79306f35","timestamp":96784399453,"duration":259802,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"667832386a79676e","name":"build-module-js","id":"3238763076663077","timestamp":96784398599,"duration":261392,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"78667a32747a3074","name":"read-resource","id":"7568657074677169","timestamp":96784633561,"duration":32559,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69397970376a7675","name":"build-module-js","id":"78667a32747a3074","timestamp":96784633529,"duration":33110,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\assertThisInitialized.js"}},{"traceId":"a40c92b03843b256","parentId":"306666646879786c","name":"read-resource","id":"6e6965627a783076","timestamp":96784633407,"duration":33270,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3979617862623564","name":"build-module-js","id":"306666646879786c","timestamp":96784633320,"duration":33756,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\setPrototypeOf.js"}},{"traceId":"a40c92b03843b256","parentId":"65616d7a666c6737","name":"read-resource","id":"386d68756e333031","timestamp":96784633623,"duration":33480,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f62343077613771","name":"build-module-js","id":"65616d7a666c6737","timestamp":96784633584,"duration":33805,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\arrayWithHoles.js"}},{"traceId":"a40c92b03843b256","parentId":"3371693539757378","name":"read-resource","id":"696b653669657277","timestamp":96784633503,"duration":33935,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"75326b646c6f3365","name":"build-module-js","id":"3371693539757378","timestamp":96784633466,"duration":34395,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\isNativeReflectConstruct.js"}},{"traceId":"a40c92b03843b256","parentId":"6d37727864776771","name":"read-resource","id":"783676646a6a7661","timestamp":96784633684,"duration":34224,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f62343077613771","name":"build-module-js","id":"6d37727864776771","timestamp":96784633654,"duration":35062,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\iterableToArrayLimit.js"}}] +[{"traceId":"a40c92b03843b256","parentId":"3367363467363277","name":"read-resource","id":"676a756a76667972","timestamp":96784633737,"duration":35390,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f62343077613771","name":"build-module-js","id":"3367363467363277","timestamp":96784633706,"duration":36213,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\unsupportedIterableToArray.js"}},{"traceId":"a40c92b03843b256","parentId":"6477397964673633","name":"read-resource","id":"7330613275773378","timestamp":96784633791,"duration":36171,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f62343077613771","name":"build-module-js","id":"6477397964673633","timestamp":96784633761,"duration":36475,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\nonIterableRest.js"}},{"traceId":"a40c92b03843b256","parentId":"316f66616c6d6a72","name":"read-resource","id":"77356c3739326934","timestamp":96784640811,"duration":31805,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e696b3275666978","name":"get-options","id":"7071677664707738","timestamp":96784672684,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6567386977346e39","name":"babel-turbo-get-config","id":"6672646336747a36","timestamp":96784672698,"duration":22,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6567386977346e39","name":"babel-turbo-normalize-file","id":"6c79773536656474","timestamp":96784672723,"duration":1843,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"73667a75316f3678","name":"babel-turbo-traverse","id":"6d6e363837697131","timestamp":96784675224,"duration":7970,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6567386977346e39","name":"babel-turbo-transform","id":"73667a75316f3678","timestamp":96784674593,"duration":8614,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6567386977346e39","name":"babel-turbo-generate","id":"777a7665796e3964","timestamp":96784683228,"duration":1408,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e696b3275666978","name":"next-babel-turbo-transform","id":"6567386977346e39","timestamp":96784672694,"duration":11949,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"316f66616c6d6a72","name":"next-babel-turbo-loader","id":"6e696b3275666978","timestamp":96784672676,"duration":11993,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e31716879653961","name":"build-module-js","id":"316f66616c6d6a72","timestamp":96784640666,"duration":45501,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\portal\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"323731716862716b","name":"read-resource","id":"6b6d676d67306d7a","timestamp":96784640929,"duration":45291,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69397970376a7675","name":"build-module-js","id":"323731716862716b","timestamp":96784640882,"duration":46002,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\typeof.js"}},{"traceId":"a40c92b03843b256","parentId":"767865337262786b","name":"read-resource","id":"7673656a7a6d7169","timestamp":96784658003,"duration":31195,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6375336334616638","name":"get-options","id":"686c763061727a70","timestamp":96784689254,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3037743539647265","name":"babel-turbo-get-config","id":"6b756939797a3139","timestamp":96784689268,"duration":23,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3037743539647265","name":"babel-turbo-normalize-file","id":"336b7479336f6e38","timestamp":96784689294,"duration":1366,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6478383730316a65","name":"babel-turbo-traverse","id":"77387767636f6335","timestamp":96784691306,"duration":2474,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3037743539647265","name":"babel-turbo-transform","id":"6478383730316a65","timestamp":96784690684,"duration":3110,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3037743539647265","name":"babel-turbo-generate","id":"35686b6166787736","timestamp":96784693815,"duration":736,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6375336334616638","name":"next-babel-turbo-transform","id":"3037743539647265","timestamp":96784689264,"duration":5298,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"767865337262786b","name":"next-babel-turbo-loader","id":"6375336334616638","timestamp":96784689249,"duration":5348,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"783775707a397072","name":"build-module-js","id":"767865337262786b","timestamp":96784657898,"duration":38921,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\get-asset-path-from-route.js"}},{"traceId":"a40c92b03843b256","parentId":"3866786878786676","name":"read-resource","id":"36626f6538386130","timestamp":96784657649,"duration":39240,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e31716879653961","name":"build-module-js","id":"3866786878786676","timestamp":96784657509,"duration":41417,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\client.js"}},{"traceId":"a40c92b03843b256","parentId":"626e686e38766563","name":"read-resource","id":"7238626174736136","timestamp":96784657858,"duration":41140,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3266366331766771","name":"get-options","id":"69393665706d666c","timestamp":96784699041,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f656b396c396462","name":"babel-turbo-get-config","id":"306c643978316764","timestamp":96784699054,"duration":16,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f656b396c396462","name":"babel-turbo-normalize-file","id":"67696f39756c3832","timestamp":96784699073,"duration":1630,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7139736237327031","name":"babel-turbo-traverse","id":"3674637673643936","timestamp":96784701474,"duration":3101,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f656b396c396462","name":"babel-turbo-transform","id":"7139736237327031","timestamp":96784700731,"duration":3859,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f656b396c396462","name":"babel-turbo-generate","id":"6d69706f79313369","timestamp":96784704612,"duration":1021,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3266366331766771","name":"next-babel-turbo-transform","id":"6f656b396c396462","timestamp":96784699050,"duration":6589,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"626e686e38766563","name":"next-babel-turbo-loader","id":"3266366331766771","timestamp":96784699034,"duration":6629,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"70387a7868666e61","name":"build-module-js","id":"626e686e38766563","timestamp":96784657729,"duration":49550,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\request-idle-callback.js"}},{"traceId":"a40c92b03843b256","parentId":"79366b6c76636a72","name":"read-resource","id":"6f627a6a6766736b","timestamp":96784658156,"duration":49552,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"746275396f6b7079","name":"get-options","id":"613372323737346e","timestamp":96784707770,"duration":7,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"77327036356c7a73","name":"babel-turbo-get-config","id":"3268707433633266","timestamp":96784707784,"duration":24,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"77327036356c7a73","name":"babel-turbo-normalize-file","id":"7962317176787565","timestamp":96784707811,"duration":4894,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6477733476366938","name":"babel-turbo-traverse","id":"35787230656c3674","timestamp":96784713369,"duration":18734,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"77327036356c7a73","name":"babel-turbo-transform","id":"6477733476366938","timestamp":96784712739,"duration":19379,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"77327036356c7a73","name":"babel-turbo-generate","id":"63616f306d773433","timestamp":96784732145,"duration":7356,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"746275396f6b7079","name":"next-babel-turbo-transform","id":"77327036356c7a73","timestamp":96784707781,"duration":31732,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79366b6c76636a72","name":"next-babel-turbo-loader","id":"746275396f6b7079","timestamp":96784707763,"duration":31782,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"626d333970626d73","name":"build-module-js","id":"79366b6c76636a72","timestamp":96784658056,"duration":85160,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\dev\\error-overlay\\format-webpack-messages.js"}},{"traceId":"a40c92b03843b256","parentId":"6b70326972683637","name":"read-resource","id":"79737167376d6d73","timestamp":96784663739,"duration":83190,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37783832627a3378","name":"build-module-js","id":"6b70326972683637","timestamp":96784663699,"duration":83728,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\isNativeFunction.js"}},{"traceId":"a40c92b03843b256","parentId":"6e62363270766536","name":"read-resource","id":"76706f67386a7431","timestamp":96784663675,"duration":83787,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e31716879653961","name":"build-module-js","id":"6e62363270766536","timestamp":96784663634,"duration":84367,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-dom\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"7972336e79713430","name":"read-resource","id":"6a79776d627a7471","timestamp":96784663573,"duration":84452,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e31716879653961","name":"build-module-js","id":"7972336e79713430","timestamp":96784663456,"duration":84809,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-is\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"716a6d6e33667131","name":"read-resource","id":"3232397234716d34","timestamp":96784687675,"duration":63651,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"61693166706f6b75","name":"build-module-js","id":"716a6d6e33667131","timestamp":96784687633,"duration":64253,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\toConsumableArray.js"}},{"traceId":"a40c92b03843b256","parentId":"356b6971796d6f62","name":"read-resource","id":"62656b6639617674","timestamp":96784687585,"duration":64349,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e31716879653961","name":"build-module-js","id":"356b6971796d6f62","timestamp":96784687482,"duration":64627,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\styled-jsx\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"72306235736e6b76","name":"read-resource","id":"716b6331796c3931","timestamp":96784688738,"duration":63406,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"797466646f757a6e","name":"get-options","id":"6e78653638387179","timestamp":96784752176,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e73353167636471","name":"babel-turbo-get-config","id":"3567653176333570","timestamp":96784752187,"duration":13,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e73353167636471","name":"babel-turbo-normalize-file","id":"3666696176366962","timestamp":96784752204,"duration":3361,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6878393331626662","name":"babel-turbo-traverse","id":"6977637877716468","timestamp":96784756217,"duration":13496,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e73353167636471","name":"babel-turbo-transform","id":"6878393331626662","timestamp":96784755593,"duration":14133,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e73353167636471","name":"babel-turbo-generate","id":"38366867316d3362","timestamp":96784769750,"duration":2705,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"797466646f757a6e","name":"next-babel-turbo-transform","id":"6e73353167636471","timestamp":96784752184,"duration":20279,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72306235736e6b76","name":"next-babel-turbo-loader","id":"797466646f757a6e","timestamp":96784752170,"duration":20318,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7338366962716f33","name":"read-resource","id":"7438306e76313670","timestamp":96784688926,"duration":87640,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"746571753131626c","name":"get-options","id":"76343232676f7532","timestamp":96784776627,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3837346d6e727362","name":"babel-turbo-get-config","id":"7064746476763662","timestamp":96784776640,"duration":20,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3837346d6e727362","name":"babel-turbo-normalize-file","id":"3572316f7a613873","timestamp":96784776664,"duration":4648,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"736238706b676571","name":"babel-turbo-traverse","id":"657872696c313877","timestamp":96784782117,"duration":30833,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3837346d6e727362","name":"babel-turbo-transform","id":"736238706b676571","timestamp":96784781344,"duration":31621,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3837346d6e727362","name":"babel-turbo-generate","id":"3737737a31627277","timestamp":96784812987,"duration":4975,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"746571753131626c","name":"next-babel-turbo-transform","id":"3837346d6e727362","timestamp":96784776637,"duration":41334,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7338366962716f33","name":"next-babel-turbo-loader","id":"746571753131626c","timestamp":96784776621,"duration":41376,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a3773626269357a","name":"read-resource","id":"786171387070777a","timestamp":96784688851,"duration":133184,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7674677166686634","name":"get-options","id":"376332636f30397a","timestamp":96784822094,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7167683269647436","name":"babel-turbo-get-config","id":"3765776277663736","timestamp":96784822107,"duration":21,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7167683269647436","name":"babel-turbo-normalize-file","id":"7270756a37346132","timestamp":96784822131,"duration":4742,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6475696f396d6c37","name":"babel-turbo-traverse","id":"6134396c66653161","timestamp":96784827553,"duration":37607,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7167683269647436","name":"babel-turbo-transform","id":"6475696f396d6c37","timestamp":96784826906,"duration":38267,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7167683269647436","name":"babel-turbo-generate","id":"6f74316e346d7530","timestamp":96784865194,"duration":4534,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7674677166686634","name":"next-babel-turbo-transform","id":"7167683269647436","timestamp":96784822104,"duration":47635,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a3773626269357a","name":"next-babel-turbo-loader","id":"7674677166686634","timestamp":96784822088,"duration":47680,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"357775706e776862","name":"read-resource","id":"6c6671753763756a","timestamp":96784745579,"duration":134277,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e31716879653961","name":"build-module-js","id":"357775706e776862","timestamp":96784745495,"duration":135386,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\polyfill-module\\dist\\polyfill-module.js"}},{"traceId":"a40c92b03843b256","parentId":"667832386a79676e","name":"build-module-js","id":"72306235736e6b76","timestamp":96784688597,"duration":193354,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"667832386a79676e","name":"build-module-js","id":"7338366962716f33","timestamp":96784688873,"duration":193208,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\dev\\amp-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"667832386a79676e","name":"build-module-js","id":"7a3773626269357a","timestamp":96784688792,"duration":193301,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"73353030626f7270","name":"read-resource","id":"67756d7772646c6b","timestamp":96784749311,"duration":133910,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3367363467363277","name":"build-module-js","id":"73353030626f7270","timestamp":96784749204,"duration":134901,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\arrayLikeToArray.js"}},{"traceId":"a40c92b03843b256","parentId":"386a3574376e6b6e","name":"read-resource","id":"323738736a713873","timestamp":96784749719,"duration":134461,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"63666f7a70666d69","name":"get-options","id":"727777387a757979","timestamp":96784884233,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f6a64376a787a36","name":"babel-turbo-get-config","id":"7271396c766d6f67","timestamp":96784884246,"duration":20,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f6a64376a787a36","name":"babel-turbo-normalize-file","id":"7a65667330706770","timestamp":96784884270,"duration":3598,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"647162716a366430","name":"babel-turbo-traverse","id":"6d33363933757578","timestamp":96784889447,"duration":25083,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f6a64376a787a36","name":"babel-turbo-transform","id":"647162716a366430","timestamp":96784887902,"duration":26643,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f6a64376a787a36","name":"babel-turbo-generate","id":"6e726c66737a6f68","timestamp":96784914570,"duration":3210,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"63666f7a70666d69","name":"next-babel-turbo-transform","id":"6f6a64376a787a36","timestamp":96784884243,"duration":33544,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"386a3574376e6b6e","name":"next-babel-turbo-loader","id":"63666f7a70666d69","timestamp":96784884223,"duration":33590,"tags":{}}] +[{"traceId":"a40c92b03843b256","parentId":"65336e727a307563","name":"build-module-js","id":"386a3574376e6b6e","timestamp":96784749587,"duration":170784,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\pages\\_app.js"}},{"traceId":"a40c92b03843b256","parentId":"35733866746a366c","name":"read-resource","id":"77627132716f356e","timestamp":96784749824,"duration":179756,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"616c623538736761","name":"get-options","id":"686c666c3334776b","timestamp":96784929644,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7338656236643437","name":"babel-turbo-get-config","id":"346f346f727a636b","timestamp":96784929656,"duration":15,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7338656236643437","name":"babel-turbo-normalize-file","id":"7465317a336d386a","timestamp":96784929674,"duration":3297,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a31617171333136","name":"babel-turbo-traverse","id":"6d7467646a326b38","timestamp":96784933644,"duration":18838,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7338656236643437","name":"babel-turbo-transform","id":"7a31617171333136","timestamp":96784933004,"duration":19492,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7338656236643437","name":"babel-turbo-generate","id":"7a3739356f34726a","timestamp":96784952521,"duration":3253,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"616c623538736761","name":"next-babel-turbo-transform","id":"7338656236643437","timestamp":96784929652,"duration":26132,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"35733866746a366c","name":"next-babel-turbo-loader","id":"616c623538736761","timestamp":96784929637,"duration":26184,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6863783762786e73","name":"build-module-js","id":"35733866746a366c","timestamp":96784749747,"duration":208343,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\pages\\_error.js"}},{"traceId":"a40c92b03843b256","parentId":"64687866776b6736","name":"read-resource","id":"3068796962616966","timestamp":96784751123,"duration":210835,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"677932356e717574","name":"build-module-js","id":"64687866776b6736","timestamp":96784751025,"duration":225758,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react\\cjs\\react.development.js"}},{"traceId":"a40c92b03843b256","parentId":"6234656b796c6178","name":"read-resource","id":"706d35716f616b6a","timestamp":96784926729,"duration":63323,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3238763076663077","name":"build-module-js","id":"6234656b796c6178","timestamp":96784926625,"duration":64999,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\internal\\helpers.js"}},{"traceId":"a40c92b03843b256","parentId":"3239737635327a32","name":"next-client-pages-loader","id":"7667643076336f67","timestamp":96784996732,"duration":87,"tags":{"absolutePagePath":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\pages\\_error.js"}},{"traceId":"a40c92b03843b256","parentId":"7132796939377a39","name":"build-module-js!","id":"3239737635327a32","timestamp":96784996394,"duration":1428,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-client-pages-loader.js?page=%2F_error&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Cnode_modules%5Cnext%5Cdist%5Cpages%5C_error.js!"}},{"traceId":"a40c92b03843b256","parentId":"6734376268696467","name":"read-resource","id":"64376430726d3169","timestamp":96784961702,"duration":38845,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7972336e79713430","name":"build-module-js","id":"6734376268696467","timestamp":96784961636,"duration":42370,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-is\\cjs\\react-is.development.js"}},{"traceId":"a40c92b03843b256","parentId":"6c377071696e716a","name":"read-resource","id":"617532746f337262","timestamp":96784961775,"duration":42305,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"716a6d6e33667131","name":"build-module-js","id":"6c377071696e716a","timestamp":96784961728,"duration":42973,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\arrayWithoutHoles.js"}},{"traceId":"a40c92b03843b256","parentId":"6379627763303867","name":"read-resource","id":"39316c6476667275","timestamp":96784961833,"duration":47415,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"716a6d6e33667131","name":"build-module-js","id":"6379627763303867","timestamp":96784961799,"duration":48298,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\iterableToArray.js"}},{"traceId":"a40c92b03843b256","parentId":"6b74713637633976","name":"read-resource","id":"7938676338617937","timestamp":96784981396,"duration":30657,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3866786878786676","name":"build-module-js","id":"6b74713637633976","timestamp":96784981324,"duration":32510,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\bus.js"}},{"traceId":"a40c92b03843b256","parentId":"7a73766131647835","name":"read-resource","id":"6179767173766c64","timestamp":96784981657,"duration":32248,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3866786878786676","name":"build-module-js","id":"7a73766131647835","timestamp":96784981573,"duration":33776,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\helpers\\parseStack.js"}},{"traceId":"a40c92b03843b256","parentId":"67397771336c6578","name":"read-resource","id":"6266727279713634","timestamp":96784981740,"duration":33663,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3866786878786676","name":"build-module-js","id":"67397771336c6578","timestamp":96784981696,"duration":35914,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\helpers\\nodeStackFrames.js"}},{"traceId":"a40c92b03843b256","parentId":"7266766274703266","name":"read-resource","id":"6e31767a6a786179","timestamp":96784981456,"duration":36211,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3866786878786676","name":"build-module-js","id":"7266766274703266","timestamp":96784981421,"duration":40179,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\ReactDevOverlay.js"}},{"traceId":"a40c92b03843b256","parentId":"6e3472387232706a","name":"read-resource","id":"7666353037626f35","timestamp":96784981828,"duration":39843,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6771316d717a7272","name":"build-module-js","id":"6e3472387232706a","timestamp":96784981779,"duration":49695,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\compiled\\web-vitals\\web-vitals.umd.js"}},{"traceId":"a40c92b03843b256","parentId":"7a7276756279706f","name":"read-resource","id":"666e72746a6b6369","timestamp":96784982017,"duration":49571,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"66696d6731693361","name":"get-options","id":"6f7065337a706873","timestamp":96785031666,"duration":7,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7475356439796574","name":"babel-turbo-get-config","id":"686831796b7a7767","timestamp":96785031681,"duration":21,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7475356439796574","name":"babel-turbo-normalize-file","id":"6170757877677232","timestamp":96785031706,"duration":3355,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736626e74343171","name":"babel-turbo-traverse","id":"38376a6578363366","timestamp":96785036277,"duration":15431,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7475356439796574","name":"babel-turbo-transform","id":"6736626e74343171","timestamp":96785035098,"duration":16625,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7475356439796574","name":"babel-turbo-generate","id":"34656b7569367073","timestamp":96785051749,"duration":2575,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"66696d6731693361","name":"next-babel-turbo-transform","id":"7475356439796574","timestamp":96785031677,"duration":22658,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a7276756279706f","name":"next-babel-turbo-loader","id":"66696d6731693361","timestamp":96785031657,"duration":22708,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"626d333970626d73","name":"build-module-js","id":"7a7276756279706f","timestamp":96784981890,"duration":75187,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\compiled\\strip-ansi\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"7a736d7678737566","name":"read-resource","id":"3462686134696130","timestamp":96784981251,"duration":75889,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"716a6d6e33667131","name":"build-module-js","id":"7a736d7678737566","timestamp":96784981164,"duration":76619,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\nonIterableSpread.js"}},{"traceId":"a40c92b03843b256","parentId":"30796d6d7369627a","name":"read-resource","id":"7a6d357366346130","timestamp":96784961574,"duration":96262,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e62363270766536","name":"build-module-js","id":"30796d6d7369627a","timestamp":96784961478,"duration":303578,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-dom\\cjs\\react-dom.development.js"}},{"traceId":"a40c92b03843b256","parentId":"7132796939377a39","name":"add-entry","id":"387865646f6b3970","timestamp":96784882493,"duration":383815,"tags":{"request":"next-client-pages-loader?page=%2F_app&absolutePagePath=private-next-pages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"7132796939377a39","name":"add-entry","id":"30657073696b356c","timestamp":96784882519,"duration":387525,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Cnode_modules%5Cnext%5Cdist%5Cpages%5C_error.js!"}},{"traceId":"a40c92b03843b256","parentId":"7132796939377a39","name":"add-entry","id":"796c616576743178","timestamp":96784882415,"duration":388213,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"7132796939377a39","name":"add-entry","id":"377a727937307333","timestamp":96784882511,"duration":391206,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=private-next-pages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"7132796939377a39","name":"add-entry","id":"396c71786566366f","timestamp":96784882502,"duration":391384,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"6c35306373657073","name":"read-resource","id":"317a647169796a7a","timestamp":96785007991,"duration":266958,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3274636a7a397073","name":"get-options","id":"736130316d766578","timestamp":96785275005,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"656b657668776c38","name":"babel-turbo-get-config","id":"6836693764746a74","timestamp":96785275018,"duration":16,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"656b657668776c38","name":"babel-turbo-normalize-file","id":"7662617469726169","timestamp":96785275038,"duration":2542,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f6979316e76796d","name":"babel-turbo-traverse","id":"7665796335333461","timestamp":96785278285,"duration":4444,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"656b657668776c38","name":"babel-turbo-transform","id":"6f6979316e76796d","timestamp":96785277612,"duration":5131,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"656b657668776c38","name":"babel-turbo-generate","id":"3631797471636b35","timestamp":96785282762,"duration":1034,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3274636a7a397073","name":"next-babel-turbo-transform","id":"656b657668776c38","timestamp":96785275015,"duration":8785,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c35306373657073","name":"next-babel-turbo-loader","id":"3274636a7a397073","timestamp":96785274998,"duration":8821,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a3773626269357a","name":"build-module-js","id":"6c35306373657073","timestamp":96785007903,"duration":276969,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\with-router.js"}},{"traceId":"a40c92b03843b256","parentId":"6e616a7573633764","name":"read-resource","id":"6b62626276687236","timestamp":96785007834,"duration":277078,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"77617a3838307077","name":"get-options","id":"6c67673161353331","timestamp":96785284944,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3768336333776c38","name":"babel-turbo-get-config","id":"3866396a72366130","timestamp":96785284986,"duration":14,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3768336333776c38","name":"babel-turbo-normalize-file","id":"35323773736e3235","timestamp":96785285004,"duration":2781,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d3778636c643131","name":"babel-turbo-traverse","id":"646f6561716b6831","timestamp":96785288423,"duration":16331,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3768336333776c38","name":"babel-turbo-transform","id":"6d3778636c643131","timestamp":96785287807,"duration":16964,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3768336333776c38","name":"babel-turbo-generate","id":"34683032316a386e","timestamp":96785304798,"duration":2902,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"77617a3838307077","name":"next-babel-turbo-transform","id":"3768336333776c38","timestamp":96785284983,"duration":22726,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e616a7573633764","name":"next-babel-turbo-loader","id":"77617a3838307077","timestamp":96785284939,"duration":22796,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72306235736e6b76","name":"build-module-js","id":"6e616a7573633764","timestamp":96785007472,"duration":301780,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\dev\\on-demand-entries-client.js"}},{"traceId":"a40c92b03843b256","parentId":"6f6a726c6c756875","name":"read-resource","id":"7866786a36777832","timestamp":96785008599,"duration":300713,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"396563686f677472","name":"get-options","id":"36376f6268646439","timestamp":96785309352,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3361767837776e66","name":"babel-turbo-get-config","id":"6c76666a69667273","timestamp":96785309363,"duration":16,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3361767837776e66","name":"babel-turbo-normalize-file","id":"6965636237646532","timestamp":96785309381,"duration":602,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"326337643772346b","name":"babel-turbo-traverse","id":"667673776b776178","timestamp":96785310616,"duration":164,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3361767837776e66","name":"babel-turbo-transform","id":"326337643772346b","timestamp":96785309995,"duration":793,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3361767837776e66","name":"babel-turbo-generate","id":"6b36797a6c343878","timestamp":96785310793,"duration":85,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"396563686f677472","name":"next-babel-turbo-transform","id":"3361767837776e66","timestamp":96785309359,"duration":1520,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f6a726c6c756875","name":"next-babel-turbo-loader","id":"396563686f677472","timestamp":96785309346,"duration":1551,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72306235736e6b76","name":"build-module-js","id":"6f6a726c6c756875","timestamp":96785008522,"duration":303125,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\dev\\noop.js"}},{"traceId":"a40c92b03843b256","parentId":"36637965646e6336","name":"read-resource","id":"7032796c78323773","timestamp":96785008330,"duration":303355,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"326b683561677978","name":"get-options","id":"6439313662686a64","timestamp":96785311720,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6e6f3973326a36","name":"babel-turbo-get-config","id":"6f777372346c3574","timestamp":96785311730,"duration":14,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6e6f3973326a36","name":"babel-turbo-normalize-file","id":"34746a64776a6c63","timestamp":96785311748,"duration":6165,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6869683237693476","name":"babel-turbo-traverse","id":"6b30386c36716b69","timestamp":96785318542,"duration":16451,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6e6f3973326a36","name":"babel-turbo-transform","id":"6869683237693476","timestamp":96785317939,"duration":17069,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6e6f3973326a36","name":"babel-turbo-generate","id":"676a7261766f3276","timestamp":96785335036,"duration":4068,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"326b683561677978","name":"next-babel-turbo-transform","id":"7a6e6f3973326a36","timestamp":96785311727,"duration":27390,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"36637965646e6336","name":"next-babel-turbo-loader","id":"326b683561677978","timestamp":96785311715,"duration":27438,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72306235736e6b76","name":"build-module-js","id":"36637965646e6336","timestamp":96785008112,"duration":333232,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\dev\\dev-build-watcher.js"}},{"traceId":"a40c92b03843b256","parentId":"6230736171797934","name":"read-resource","id":"3762677663746774","timestamp":96785008087,"duration":333396,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a65796b31663837","name":"get-options","id":"37656d6b67363237","timestamp":96785341527,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7338756838326676","name":"babel-turbo-get-config","id":"6266636d716e7661","timestamp":96785341539,"duration":17,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7338756838326676","name":"babel-turbo-normalize-file","id":"387371703872637a","timestamp":96785341559,"duration":1598,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"64777878306a6973","name":"babel-turbo-traverse","id":"3636736439307668","timestamp":96785344013,"duration":1805,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7338756838326676","name":"babel-turbo-transform","id":"64777878306a6973","timestamp":96785343193,"duration":2640,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7338756838326676","name":"babel-turbo-generate","id":"797238676b677369","timestamp":96785345851,"duration":527,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a65796b31663837","name":"next-babel-turbo-transform","id":"7338756838326676","timestamp":96785341536,"duration":4845,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6230736171797934","name":"next-babel-turbo-loader","id":"7a65796b31663837","timestamp":96785341521,"duration":4881,"tags":{}}] +[{"traceId":"a40c92b03843b256","parentId":"72306235736e6b76","name":"build-module-js","id":"6230736171797934","timestamp":96785008015,"duration":339688,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\dev\\fouc.js"}},{"traceId":"a40c92b03843b256","parentId":"6c78767169797372","name":"read-resource","id":"33756a6838756838","timestamp":96785008453,"duration":339302,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"327a6c6b65346f37","name":"get-options","id":"707061326977746e","timestamp":96785347798,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a38376133323437","name":"babel-turbo-get-config","id":"37727a3766746c72","timestamp":96785347848,"duration":17,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a38376133323437","name":"babel-turbo-normalize-file","id":"383836663370396b","timestamp":96785347868,"duration":1798,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6b3274707a7966","name":"babel-turbo-traverse","id":"6e666d3664683679","timestamp":96785350576,"duration":11352,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a38376133323437","name":"babel-turbo-transform","id":"7a6b3274707a7966","timestamp":96785349693,"duration":12258,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a38376133323437","name":"babel-turbo-generate","id":"71693679706c6a6e","timestamp":96785361978,"duration":1685,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"327a6c6b65346f37","name":"next-babel-turbo-transform","id":"7a38376133323437","timestamp":96785347845,"duration":15829,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c78767169797372","name":"next-babel-turbo-loader","id":"327a6c6b65346f37","timestamp":96785347792,"duration":16148,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72306235736e6b76","name":"build-module-js","id":"6c78767169797372","timestamp":96785008361,"duration":358009,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\dev\\webpack-hot-middleware-client.js"}},{"traceId":"a40c92b03843b256","parentId":"7132796939377a39","name":"add-entry","id":"6173317639756961","timestamp":96784882475,"duration":485587,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"}},{"traceId":"a40c92b03843b256","parentId":"72376a6b31367636","name":"read-resource","id":"6a65656778726773","timestamp":96785266924,"duration":109466,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e326b6d316b336a","name":"get-options","id":"306c707170676732","timestamp":96785376454,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"666c6f7935693838","name":"babel-turbo-get-config","id":"7a387268786b6e61","timestamp":96785376468,"duration":33,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"666c6f7935693838","name":"babel-turbo-normalize-file","id":"30696a666733666b","timestamp":96785376509,"duration":34473,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6763306878317763","name":"babel-turbo-traverse","id":"6b7975746a336533","timestamp":96785411693,"duration":199826,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"666c6f7935693838","name":"babel-turbo-transform","id":"6763306878317763","timestamp":96785411026,"duration":200507,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"666c6f7935693838","name":"babel-turbo-generate","id":"65726e6a39326173","timestamp":96785611557,"duration":23876,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e326b6d316b336a","name":"next-babel-turbo-transform","id":"666c6f7935693838","timestamp":96785376464,"duration":258978,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72376a6b31367636","name":"next-babel-turbo-loader","id":"6e326b6d316b336a","timestamp":96785376447,"duration":259022,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72306235736e6b76","name":"build-module-js","id":"72376a6b31367636","timestamp":96785266786,"duration":381968,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"7935706f32646772","name":"read-resource","id":"736a333330353765","timestamp":96785271362,"duration":385315,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a3773626269357a","name":"build-module-js","id":"7935706f32646772","timestamp":96785271318,"duration":385970,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\lib\\is-error.js"}},{"traceId":"a40c92b03843b256","parentId":"66647a3433756569","name":"read-resource","id":"7062337637357a63","timestamp":96785271234,"duration":386106,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"307737726e673270","name":"get-options","id":"626562627a336173","timestamp":96785657384,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766263726a646e71","name":"babel-turbo-get-config","id":"7534767561697a6b","timestamp":96785657397,"duration":16,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766263726a646e71","name":"babel-turbo-normalize-file","id":"397033693439776e","timestamp":96785657415,"duration":3462,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"647a37766d6c6d31","name":"babel-turbo-traverse","id":"30766d636f376865","timestamp":96785661601,"duration":10956,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766263726a646e71","name":"babel-turbo-transform","id":"647a37766d6c6d31","timestamp":96785660907,"duration":11667,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766263726a646e71","name":"babel-turbo-generate","id":"6436346a7730676a","timestamp":96785672601,"duration":2195,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"307737726e673270","name":"next-babel-turbo-transform","id":"766263726a646e71","timestamp":96785657393,"duration":17412,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"66647a3433756569","name":"next-babel-turbo-loader","id":"307737726e673270","timestamp":96785657376,"duration":17456,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72306235736e6b76","name":"build-module-js","id":"66647a3433756569","timestamp":96785271074,"duration":405405,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\dev\\error-overlay\\websocket.js"}},{"traceId":"a40c92b03843b256","parentId":"386a75746b7a7362","name":"read-resource","id":"72356e3737316d36","timestamp":96785271485,"duration":405130,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6965316963317662","name":"build-module-js","id":"386a75746b7a7362","timestamp":96785271425,"duration":409429,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\regenerator-runtime\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"63397176767a6235","name":"add-entry","id":"3030746565367564","timestamp":96782111347,"duration":3572231,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"}},{"traceId":"a40c92b03843b256","parentId":"75713138366d6f77","name":"read-resource","id":"7a66663531643874","timestamp":96785274335,"duration":410577,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"64687866776b6736","name":"build-module-js","id":"75713138366d6f77","timestamp":96785274239,"duration":411140,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\polyfills\\object-assign.js"}},{"traceId":"a40c92b03843b256","parentId":"63397176767a6235","name":"add-entry","id":"35756e653137786f","timestamp":96782111366,"duration":3575083,"tags":{"request":"next-client-pages-loader?page=%2F_app&absolutePagePath=next%2Fdist%2Fpages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"63397176767a6235","name":"add-entry","id":"647a31386f767237","timestamp":96782111376,"duration":3575085,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"63397176767a6235","name":"add-entry","id":"6c73686c73347567","timestamp":96782111385,"duration":3575089,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=next%2Fdist%2Fpages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"7677746d6d723366","name":"read-resource","id":"617264686b626763","timestamp":96785369747,"duration":317330,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6738657675736678","name":"get-options","id":"7766773377656d66","timestamp":96785687127,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"376864747a726976","name":"babel-turbo-get-config","id":"326d387969757665","timestamp":96785687140,"duration":21,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"376864747a726976","name":"babel-turbo-normalize-file","id":"746d6f6735713463","timestamp":96785687165,"duration":6047,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c73386a71307a75","name":"babel-turbo-traverse","id":"79316b6365307269","timestamp":96785693879,"duration":40781,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"376864747a726976","name":"babel-turbo-transform","id":"6c73386a71307a75","timestamp":96785693243,"duration":41431,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"376864747a726976","name":"babel-turbo-generate","id":"6865733362313171","timestamp":96785734699,"duration":8498,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6738657675736678","name":"next-babel-turbo-transform","id":"376864747a726976","timestamp":96785687137,"duration":56073,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7677746d6d723366","name":"next-babel-turbo-loader","id":"6738657675736678","timestamp":96785687121,"duration":56123,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"35733866746a366c","name":"build-module-js","id":"7677746d6d723366","timestamp":96785369678,"duration":376112,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\head.js"}},{"traceId":"a40c92b03843b256","parentId":"776767656c70386b","name":"read-resource","id":"357670353233306b","timestamp":96785369511,"duration":376339,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76726d666c737732","name":"get-options","id":"63777861676c7965","timestamp":96785745892,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6533636275356869","name":"babel-turbo-get-config","id":"3332763772657a75","timestamp":96785745903,"duration":18,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6533636275356869","name":"babel-turbo-normalize-file","id":"6777676630346b6c","timestamp":96785745924,"duration":1780,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"746c756a396b686f","name":"babel-turbo-traverse","id":"6576767831316377","timestamp":96785748771,"duration":1859,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6533636275356869","name":"babel-turbo-transform","id":"746c756a396b686f","timestamp":96785747739,"duration":2904,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6533636275356869","name":"babel-turbo-generate","id":"6c68746377793033","timestamp":96785750661,"duration":561,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76726d666c737732","name":"next-babel-turbo-transform","id":"6533636275356869","timestamp":96785745900,"duration":5326,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"776767656c70386b","name":"next-babel-turbo-loader","id":"76726d666c737732","timestamp":96785745885,"duration":5362,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a3773626269357a","name":"build-module-js","id":"776767656c70386b","timestamp":96785369331,"duration":382885,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\router-context.js"}},{"traceId":"a40c92b03843b256","parentId":"6b6f6a68716f696e","name":"read-resource","id":"6b327539666b6c36","timestamp":96785369978,"duration":382293,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"703070676974346d","name":"get-options","id":"3035737677706432","timestamp":96785752436,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f74627732626975","name":"babel-turbo-get-config","id":"3671767133313979","timestamp":96785752448,"duration":48,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f74627732626975","name":"babel-turbo-normalize-file","id":"32326431766b7661","timestamp":96785752499,"duration":45913,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6265373039743967","name":"babel-turbo-traverse","id":"7476683869773635","timestamp":96785799271,"duration":608177,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f74627732626975","name":"babel-turbo-transform","id":"6265373039743967","timestamp":96785798448,"duration":609020,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f74627732626975","name":"babel-turbo-generate","id":"3761383766746330","timestamp":96786407504,"duration":52305,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"703070676974346d","name":"next-babel-turbo-transform","id":"6f74627732626975","timestamp":96785752445,"duration":707377,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b6f6a68716f696e","name":"next-babel-turbo-loader","id":"703070676974346d","timestamp":96785752430,"duration":707436,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a3773626269357a","name":"build-module-js","id":"6b6f6a68716f696e","timestamp":96785369768,"duration":1109501,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\router\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"7230683162323676","name":"read-resource","id":"7a743863616c3678","timestamp":96785369653,"duration":1109682,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3133753134367173","name":"get-options","id":"32326f356275336d","timestamp":96786479428,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"336f626d34756734","name":"babel-turbo-get-config","id":"6e77627731787061","timestamp":96786479442,"duration":21,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"336f626d34756734","name":"babel-turbo-normalize-file","id":"7571667470657266","timestamp":96786479467,"duration":4302,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6166386b66646167","name":"babel-turbo-traverse","id":"35726f6e676e676e","timestamp":96786484430,"duration":42344,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"336f626d34756734","name":"babel-turbo-transform","id":"6166386b66646167","timestamp":96786483799,"duration":42990,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"336f626d34756734","name":"babel-turbo-generate","id":"39346f7330366733","timestamp":96786526811,"duration":4353,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3133753134367173","name":"next-babel-turbo-transform","id":"336f626d34756734","timestamp":96786479438,"duration":51733,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7230683162323676","name":"next-babel-turbo-loader","id":"3133753134367173","timestamp":96786479381,"duration":51817,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"386a3574376e6b6e","name":"build-module-js","id":"7230683162323676","timestamp":96785369576,"duration":1164166,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\utils.js"}},{"traceId":"a40c92b03843b256","parentId":"306263686c397438","name":"read-resource","id":"766f756a62377377","timestamp":96785370137,"duration":1163668,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6671663338757171","name":"get-options","id":"38353834636e6b63","timestamp":96786533854,"duration":7,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"676d7a6d72746b64","name":"babel-turbo-get-config","id":"7276747a38333235","timestamp":96786533868,"duration":16,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"676d7a6d72746b64","name":"babel-turbo-normalize-file","id":"393734356f737738","timestamp":96786533888,"duration":2202,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6978386372796970","name":"babel-turbo-traverse","id":"6270687869636870","timestamp":96786536741,"duration":11242,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"676d7a6d72746b64","name":"babel-turbo-transform","id":"6978386372796970","timestamp":96786536111,"duration":11887,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"676d7a6d72746b64","name":"babel-turbo-generate","id":"76756c386f663269","timestamp":96786548018,"duration":1761,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6671663338757171","name":"next-babel-turbo-transform","id":"676d7a6d72746b64","timestamp":96786533865,"duration":15923,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"306263686c397438","name":"next-babel-turbo-loader","id":"6671663338757171","timestamp":96786533848,"duration":15966,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72306235736e6b76","name":"build-module-js","id":"306263686c397438","timestamp":96785370054,"duration":1181029,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\querystring.js"}},{"traceId":"a40c92b03843b256","parentId":"3462627565797563","name":"read-resource","id":"6231323770633270","timestamp":96785651406,"duration":909364,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3238763076663077","name":"build-module-js","id":"3462627565797563","timestamp":96785651314,"duration":910495,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-refresh\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"7132796939377a39","name":"add-entry","id":"6d6e39636f646777","timestamp":96784882485,"duration":1685258,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"66353434766f6c34","name":"make","id":"6566773439323938","timestamp":96784879334,"duration":1688524,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7132796939377a39","name":"webpack-compilation-chunk-graph","id":"65316238767a3170","timestamp":96786568678,"duration":1538,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7132796939377a39","name":"webpack-compilation-optimize-modules","id":"316d30617561737a","timestamp":96786570268,"duration":27,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7132796939377a39","name":"webpack-compilation-optimize-chunks","id":"3432676368357331","timestamp":96786570318,"duration":55,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7132796939377a39","name":"webpack-compilation-optimize-tree","id":"6c6e33626a74786d","timestamp":96786570442,"duration":16,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7132796939377a39","name":"webpack-compilation-optimize","id":"6f61733272626a6c","timestamp":96786570251,"duration":428,"tags":{}}] +[{"traceId":"a40c92b03843b256","parentId":"7132796939377a39","name":"webpack-compilation-hash","id":"6b69766635383730","timestamp":96786576107,"duration":4333,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7132796939377a39","name":"NextJsBuildManifest-generateClientManifest","id":"366370356963786e","timestamp":96786584104,"duration":126,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7132796939377a39","name":"NextJsBuildManifest-createassets","id":"6d363861666a3765","timestamp":96786583959,"duration":475,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7132796939377a39","name":"webpack-compilation-seal","id":"7876786166366173","timestamp":96786568382,"duration":16823,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"66353434766f6c34","name":"webpack-compilation","id":"7132796939377a39","timestamp":96784878537,"duration":1706727,"tags":{"name":"client"}},{"traceId":"a40c92b03843b256","parentId":"71666f6732797069","name":"read-resource","id":"67683633626a6563","timestamp":96785683545,"duration":904705,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7266766274703266","name":"build-module-js","id":"71666f6732797069","timestamp":96785683499,"duration":906127,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\ErrorBoundary.js"}},{"traceId":"a40c92b03843b256","parentId":"6d76707639396e39","name":"read-resource","id":"356d33636f6b3075","timestamp":96785683428,"duration":906261,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"356b6971796d6f62","name":"build-module-js","id":"6d76707639396e39","timestamp":96785683284,"duration":906782,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\styled-jsx\\dist\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"6b6f6a68716f696e","name":"build-module","id":"7336613461346668","timestamp":96786598039,"duration":54,"tags":{"name":"undefined"}},{"traceId":"a40c92b03843b256","parentId":"6d676e7169617373","name":"read-resource","id":"637033627a75686e","timestamp":96786552486,"duration":46497,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7266766274703266","name":"build-module-js","id":"6d676e7169617373","timestamp":96786552386,"duration":50748,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\container\\Errors.js"}},{"traceId":"a40c92b03843b256","parentId":"63347178666e386d","name":"read-resource","id":"766a733168633870","timestamp":96786552724,"duration":50667,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7266766274703266","name":"build-module-js","id":"63347178666e386d","timestamp":96786552695,"duration":52075,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\styles\\CssReset.js"}},{"traceId":"a40c92b03843b256","parentId":"6561666736653263","name":"read-resource","id":"6f30337035783635","timestamp":96786552676,"duration":52168,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7266766274703266","name":"build-module-js","id":"6561666736653263","timestamp":96786552641,"duration":53378,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\styles\\ComponentStyles.js"}},{"traceId":"a40c92b03843b256","parentId":"34626a7970326f68","name":"read-resource","id":"796b6931746a7673","timestamp":96786552564,"duration":53514,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7266766274703266","name":"build-module-js","id":"34626a7970326f68","timestamp":96786552523,"duration":54545,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\container\\BuildError.js"}},{"traceId":"a40c92b03843b256","parentId":"396630703037366d","name":"read-resource","id":"7068667879387031","timestamp":96786552622,"duration":54496,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7266766274703266","name":"build-module-js","id":"396630703037366d","timestamp":96786552584,"duration":55639,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\ShadowPortal.js"}},{"traceId":"a40c92b03843b256","parentId":"32347137317a7534","name":"read-resource","id":"34796f3076307766","timestamp":96786552770,"duration":55654,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7266766274703266","name":"build-module-js","id":"32347137317a7534","timestamp":96786552741,"duration":56639,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\styles\\Base.js"}},{"traceId":"a40c92b03843b256","parentId":"666b716434383239","name":"read-resource","id":"7761736669626f77","timestamp":96786586875,"duration":32510,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e616a7573633764","name":"build-module-js","id":"666b716434383239","timestamp":96786586826,"duration":33106,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"6c39736a6e727433","name":"read-resource","id":"7776347672646a68","timestamp":96786586769,"duration":33306,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3138756377667378","name":"get-options","id":"6e6e766f7237716d","timestamp":96786620134,"duration":7,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"696977746a703168","name":"babel-turbo-get-config","id":"6879343839657563","timestamp":96786620153,"duration":32,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"696977746a703168","name":"babel-turbo-normalize-file","id":"7673663932337a64","timestamp":96786620191,"duration":6630,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6931706b31646479","name":"babel-turbo-traverse","id":"726d756938677971","timestamp":96786627479,"duration":25425,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"696977746a703168","name":"babel-turbo-transform","id":"6931706b31646479","timestamp":96786626852,"duration":26065,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"696977746a703168","name":"babel-turbo-generate","id":"716d6e6b726f6676","timestamp":96786652942,"duration":7001,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3138756377667378","name":"next-babel-turbo-transform","id":"696977746a703168","timestamp":96786620147,"duration":39806,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c39736a6e727433","name":"next-babel-turbo-loader","id":"3138756377667378","timestamp":96786620125,"duration":39856,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c78767169797372","name":"build-module-js","id":"6c39736a6e727433","timestamp":96786586641,"duration":77031,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\dev\\error-overlay\\hot-dev-client.js"}},{"traceId":"a40c92b03843b256","parentId":"34747a6839773630","name":"read-resource","id":"317031687a317734","timestamp":96786592497,"duration":82457,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a3773626269357a","name":"build-module-js","id":"34747a6839773630","timestamp":96786592387,"duration":83347,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\construct.js"}},{"traceId":"a40c92b03843b256","parentId":"677972646d773968","name":"read-resource","id":"74776579396d3472","timestamp":96786592572,"duration":83213,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"386a3574376e6b6e","name":"build-module-js","id":"677972646d773968","timestamp":96786592534,"duration":83631,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\classCallCheck.js"}},{"traceId":"a40c92b03843b256","parentId":"746c6b3973346861","name":"read-resource","id":"7530317878666774","timestamp":96786592633,"duration":83575,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"386a3574376e6b6e","name":"build-module-js","id":"746c6b3973346861","timestamp":96786592589,"duration":84495,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\possibleConstructorReturn.js"}},{"traceId":"a40c92b03843b256","parentId":"6831733071716e64","name":"read-resource","id":"7237756f66327837","timestamp":96786592686,"duration":84454,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"386a3574376e6b6e","name":"build-module-js","id":"6831733071716e64","timestamp":96786592649,"duration":84887,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\getPrototypeOf.js"}},{"traceId":"a40c92b03843b256","parentId":"68346f636f74326b","name":"read-resource","id":"31636d397a647562","timestamp":96786592815,"duration":84744,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"386a3574376e6b6e","name":"build-module-js","id":"68346f636f74326b","timestamp":96786592708,"duration":85172,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\createClass.js"}},{"traceId":"a40c92b03843b256","parentId":"6d6f6e3674766b34","name":"read-resource","id":"306b30626e707171","timestamp":96786592886,"duration":85015,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"386a3574376e6b6e","name":"build-module-js","id":"6d6f6e3674766b34","timestamp":96786592840,"duration":85386,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\inherits.js"}},{"traceId":"a40c92b03843b256","parentId":"78706f7376693178","name":"read-resource","id":"696f7a746b69317a","timestamp":96786592989,"duration":85308,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c78767169797372","name":"build-module-js","id":"78706f7376693178","timestamp":96786592907,"duration":85749,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\slicedToArray.js"}},{"traceId":"a40c92b03843b256","parentId":"7537706e69616e7a","name":"read-resource","id":"6676397378687464","timestamp":96786593245,"duration":85438,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7332736272376267","name":"get-options","id":"3363637578753471","timestamp":96786678725,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6768737a3076726c","name":"babel-turbo-get-config","id":"7477396469737838","timestamp":96786678737,"duration":16,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6768737a3076726c","name":"babel-turbo-normalize-file","id":"6d71707436653436","timestamp":96786678756,"duration":2319,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3762313179696670","name":"babel-turbo-traverse","id":"73706a6130733334","timestamp":96786681742,"duration":9328,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6768737a3076726c","name":"babel-turbo-transform","id":"3762313179696670","timestamp":96786681102,"duration":9982,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6768737a3076726c","name":"babel-turbo-generate","id":"65756f646f763137","timestamp":96786691108,"duration":2038,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7332736272376267","name":"next-babel-turbo-transform","id":"6768737a3076726c","timestamp":96786678733,"duration":14420,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7537706e69616e7a","name":"next-babel-turbo-loader","id":"7332736272376267","timestamp":96786678719,"duration":14457,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72376a6b31367636","name":"build-module-js","id":"7537706e69616e7a","timestamp":96786593193,"duration":105302,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\route-announcer.js"}},{"traceId":"a40c92b03843b256","parentId":"647133326b6d6a67","name":"read-resource","id":"3273647537656662","timestamp":96786593174,"duration":105387,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e6a756f31747371","name":"get-options","id":"62717232626a3679","timestamp":96786698606,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3070656638397461","name":"babel-turbo-get-config","id":"366162637378326d","timestamp":96786698648,"duration":17,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3070656638397461","name":"babel-turbo-normalize-file","id":"723930716a7a316d","timestamp":96786698669,"duration":4459,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"623269746e72736f","name":"babel-turbo-traverse","id":"346d616d38337138","timestamp":96786704265,"duration":29231,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3070656638397461","name":"babel-turbo-transform","id":"623269746e72736f","timestamp":96786703154,"duration":30359,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3070656638397461","name":"babel-turbo-generate","id":"757a64637a346732","timestamp":96786733539,"duration":4103,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e6a756f31747371","name":"next-babel-turbo-transform","id":"3070656638397461","timestamp":96786698645,"duration":39007,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"647133326b6d6a67","name":"next-babel-turbo-loader","id":"6e6a756f31747371","timestamp":96786698600,"duration":39080,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72376a6b31367636","name":"build-module-js","id":"647133326b6d6a67","timestamp":96786593121,"duration":146931,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\page-loader.js"}},{"traceId":"a40c92b03843b256","parentId":"386d6d7a6963316f","name":"read-resource","id":"39693669656c7463","timestamp":96786593328,"duration":146778,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"306279733579746a","name":"get-options","id":"6c623069396f6637","timestamp":96786740151,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3774337173786f38","name":"babel-turbo-get-config","id":"356974306b667939","timestamp":96786740163,"duration":16,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3774337173786f38","name":"babel-turbo-normalize-file","id":"706f6d3066626978","timestamp":96786740192,"duration":2300,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"65666b7a70353336","name":"babel-turbo-traverse","id":"64397a7539643463","timestamp":96786743176,"duration":7886,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3774337173786f38","name":"babel-turbo-transform","id":"65666b7a70353336","timestamp":96786742529,"duration":8552,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3774337173786f38","name":"babel-turbo-generate","id":"3869766d75393578","timestamp":96786751114,"duration":1627,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"306279733579746a","name":"next-babel-turbo-transform","id":"3774337173786f38","timestamp":96786740160,"duration":12586,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"386d6d7a6963316f","name":"next-babel-turbo-loader","id":"306279733579746a","timestamp":96786740145,"duration":12621,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72376a6b31367636","name":"build-module-js","id":"386d6d7a6963316f","timestamp":96786593266,"duration":164513,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\performance-relayer.js"}},{"traceId":"a40c92b03843b256","parentId":"6774346f6175676f","name":"read-resource","id":"76666d6f67323679","timestamp":96786593426,"duration":164401,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"747173316b793678","name":"get-options","id":"6434366b79626c6c","timestamp":96786757869,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6931313737717374","name":"babel-turbo-get-config","id":"646167676e773630","timestamp":96786757881,"duration":16,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6931313737717374","name":"babel-turbo-normalize-file","id":"386d3977686b3836","timestamp":96786757900,"duration":1759,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"346d6f7539357a77","name":"babel-turbo-traverse","id":"726d32616d647573","timestamp":96786760297,"duration":5088,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6931313737717374","name":"babel-turbo-transform","id":"346d6f7539357a77","timestamp":96786759683,"duration":5717,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6931313737717374","name":"babel-turbo-generate","id":"3965766a696c6474","timestamp":96786765417,"duration":1059,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"747173316b793678","name":"next-babel-turbo-transform","id":"6931313737717374","timestamp":96786757877,"duration":8605,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6774346f6175676f","name":"next-babel-turbo-loader","id":"747173316b793678","timestamp":96786757863,"duration":8643,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72376a6b31367636","name":"build-module-js","id":"6774346f6175676f","timestamp":96786593346,"duration":174294,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\vitals.js"}},{"traceId":"a40c92b03843b256","parentId":"66756a6161377a6f","name":"read-resource","id":"6236753469696430","timestamp":96786593663,"duration":174029,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"31746a6232706a70","name":"get-options","id":"6a77396930636a68","timestamp":96786767733,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"647178676379616e","name":"babel-turbo-get-config","id":"716b677863727665","timestamp":96786767743,"duration":15,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"647178676379616e","name":"babel-turbo-normalize-file","id":"6b703670736b6f69","timestamp":96786767761,"duration":1462,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f363737626c316c","name":"babel-turbo-traverse","id":"7734746a65747237","timestamp":96786769873,"duration":6253,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"647178676379616e","name":"babel-turbo-transform","id":"6f363737626c316c","timestamp":96786769248,"duration":6893,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"647178676379616e","name":"babel-turbo-generate","id":"33356b6735757a79","timestamp":96786776162,"duration":1025,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"31746a6232706a70","name":"next-babel-turbo-transform","id":"647178676379616e","timestamp":96786767740,"duration":9450,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"66756a6161377a6f","name":"next-babel-turbo-loader","id":"31746a6232706a70","timestamp":96786767727,"duration":9483,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72376a6b31367636","name":"build-module-js","id":"66756a6161377a6f","timestamp":96786593614,"duration":184576,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\mitt.js"}},{"traceId":"a40c92b03843b256","parentId":"3769696770787133","name":"read-resource","id":"6f676d386533676d","timestamp":96786593101,"duration":185132,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7030736278307236","name":"get-options","id":"76646d75786a7061","timestamp":96786778298,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"677071346837756e","name":"babel-turbo-get-config","id":"7071336a71387576","timestamp":96786778308,"duration":16,"tags":{}}] +[{"traceId":"a40c92b03843b256","parentId":"677071346837756e","name":"babel-turbo-normalize-file","id":"7736346465737263","timestamp":96786778616,"duration":5639,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"796a316e70773465","name":"babel-turbo-traverse","id":"656a6b7a7868367a","timestamp":96786784920,"duration":22351,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"677071346837756e","name":"babel-turbo-transform","id":"796a316e70773465","timestamp":96786784288,"duration":22998,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"677071346837756e","name":"babel-turbo-generate","id":"6470626b6f673963","timestamp":96786807310,"duration":4283,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7030736278307236","name":"next-babel-turbo-transform","id":"677071346837756e","timestamp":96786778305,"duration":33300,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3769696770787133","name":"next-babel-turbo-loader","id":"7030736278307236","timestamp":96786778262,"duration":33377,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72376a6b31367636","name":"build-module-js","id":"3769696770787133","timestamp":96786593018,"duration":223573,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\head-manager.js"}},{"traceId":"a40c92b03843b256","parentId":"356266386468746d","name":"read-resource","id":"716e6570647a736d","timestamp":96786593512,"duration":223129,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6534687679346275","name":"get-options","id":"677768716b70706f","timestamp":96786816680,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6664737861676c34","name":"babel-turbo-get-config","id":"31373833776d3968","timestamp":96786816691,"duration":16,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6664737861676c34","name":"babel-turbo-normalize-file","id":"747870676b6e6975","timestamp":96786816710,"duration":1163,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6871677639386134","name":"babel-turbo-traverse","id":"3767367070693776","timestamp":96786818502,"duration":1827,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6664737861676c34","name":"babel-turbo-transform","id":"6871677639386134","timestamp":96786817888,"duration":2454,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6664737861676c34","name":"babel-turbo-generate","id":"746e7534766d7831","timestamp":96786820371,"duration":584,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6534687679346275","name":"next-babel-turbo-transform","id":"6664737861676c34","timestamp":96786816688,"duration":4272,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"356266386468746d","name":"next-babel-turbo-loader","id":"6534687679346275","timestamp":96786816675,"duration":4307,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72376a6b31367636","name":"build-module-js","id":"356266386468746d","timestamp":96786593456,"duration":228479,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\head-manager-context.js"}},{"traceId":"a40c92b03843b256","parentId":"36356e6d72326434","name":"read-resource","id":"7978696e7077706c","timestamp":96786593591,"duration":228394,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3339687170773232","name":"get-options","id":"65386d7861766a75","timestamp":96786822025,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3072316e7a653576","name":"babel-turbo-get-config","id":"3135307876776971","timestamp":96786822036,"duration":15,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3072316e7a653576","name":"babel-turbo-normalize-file","id":"6d3231363961756c","timestamp":96786822055,"duration":7002,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79773462346d7031","name":"babel-turbo-traverse","id":"776f796161633937","timestamp":96786829731,"duration":29647,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3072316e7a653576","name":"babel-turbo-transform","id":"79773462346d7031","timestamp":96786829092,"duration":30299,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3072316e7a653576","name":"babel-turbo-generate","id":"34696b6f30627267","timestamp":96786859411,"duration":11443,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3339687170773232","name":"next-babel-turbo-transform","id":"3072316e7a653576","timestamp":96786822033,"duration":48830,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"36356e6d72326434","name":"next-babel-turbo-loader","id":"3339687170773232","timestamp":96786822020,"duration":48873,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72376a6b31367636","name":"build-module-js","id":"36356e6d72326434","timestamp":96786593536,"duration":280204,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\script.js"}},{"traceId":"a40c92b03843b256","parentId":"75616b367269776b","name":"read-resource","id":"79643535766e3777","timestamp":96786593734,"duration":280063,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"336c70796e777071","name":"get-options","id":"6a327a723673676c","timestamp":96786873843,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"38667034396a676f","name":"babel-turbo-get-config","id":"3761633033683967","timestamp":96786873854,"duration":16,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"38667034396a676f","name":"babel-turbo-normalize-file","id":"76716f336d307477","timestamp":96786873873,"duration":1166,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"796e7434796b6677","name":"babel-turbo-traverse","id":"7837703965366337","timestamp":96786875671,"duration":1317,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"38667034396a676f","name":"babel-turbo-transform","id":"796e7434796b6677","timestamp":96786875062,"duration":1939,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"38667034396a676f","name":"babel-turbo-generate","id":"6770773230356264","timestamp":96786877021,"duration":484,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"336c70796e777071","name":"next-babel-turbo-transform","id":"38667034396a676f","timestamp":96786873850,"duration":3659,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"75616b367269776b","name":"next-babel-turbo-loader","id":"336c70796e777071","timestamp":96786873837,"duration":3696,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72376a6b31367636","name":"build-module-js","id":"75616b367269776b","timestamp":96786593683,"duration":284699,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\runtime-config.js"}},{"traceId":"a40c92b03843b256","parentId":"6d70647038697539","name":"read-resource","id":"716d6b6c3433776b","timestamp":96786593804,"duration":284624,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"746c6c6732707530","name":"get-options","id":"6661656579333932","timestamp":96786878495,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6631686431736470","name":"babel-turbo-get-config","id":"36647967717a7269","timestamp":96786878506,"duration":15,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6631686431736470","name":"babel-turbo-normalize-file","id":"6f6c363867707537","timestamp":96786878524,"duration":953,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3638723368786932","name":"babel-turbo-traverse","id":"77316a7039617936","timestamp":96786880074,"duration":1004,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6631686431736470","name":"babel-turbo-transform","id":"3638723368786932","timestamp":96786879495,"duration":1595,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6631686431736470","name":"babel-turbo-generate","id":"37776b746a353061","timestamp":96786881107,"duration":390,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"746c6c6732707530","name":"next-babel-turbo-transform","id":"6631686431736470","timestamp":96786878503,"duration":2998,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d70647038697539","name":"next-babel-turbo-loader","id":"746c6c6732707530","timestamp":96786878458,"duration":3065,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72376a6b31367636","name":"build-module-js","id":"6d70647038697539","timestamp":96786593751,"duration":288635,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\is-dynamic.js"}},{"traceId":"a40c92b03843b256","parentId":"66353434766f6c34","name":"emit","id":"6670317a7a796e33","timestamp":96786585326,"duration":310834,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-client","id":"66353434766f6c34","timestamp":96784875047,"duration":2022598,"tags":{"trigger":"manual"}},{"traceId":"a40c92b03843b256","parentId":"3473363037653071","name":"read-resource","id":"65786d363666626f","timestamp":96786614009,"duration":290958,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"386a3574376e6b6e","name":"build-module-js","id":"3473363037653071","timestamp":96786613825,"duration":291538,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\regenerator\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"323475726e787776","name":"read-resource","id":"30757964686a657a","timestamp":96786669274,"duration":241277,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7677746d6d723366","name":"build-module-js","id":"323475726e787776","timestamp":96786669188,"duration":241913,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\defineProperty.js"}},{"traceId":"a40c92b03843b256","parentId":"75636f386a796564","name":"read-resource","id":"7963306972616d35","timestamp":96786669399,"duration":241749,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d367a7436766939","name":"get-options","id":"7079763533306773","timestamp":96786911199,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7177737974643663","name":"babel-turbo-get-config","id":"38796b626d36626a","timestamp":96786911217,"duration":20,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7177737974643663","name":"babel-turbo-normalize-file","id":"317077733974346c","timestamp":96786911242,"duration":1354,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f75766438647968","name":"babel-turbo-traverse","id":"787975656f677572","timestamp":96786913209,"duration":1792,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7177737974643663","name":"babel-turbo-transform","id":"6f75766438647968","timestamp":96786912614,"duration":2399,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7177737974643663","name":"babel-turbo-generate","id":"7471693466386b36","timestamp":96786915033,"duration":600,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d367a7436766939","name":"next-babel-turbo-transform","id":"7177737974643663","timestamp":96786911211,"duration":4427,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"75636f386a796564","name":"next-babel-turbo-loader","id":"6d367a7436766939","timestamp":96786911190,"duration":4470,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7677746d6d723366","name":"build-module-js","id":"75636f386a796564","timestamp":96786669312,"duration":247260,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\amp-context.js"}},{"traceId":"a40c92b03843b256","parentId":"346f62386e6a3932","name":"read-resource","id":"6773776134793271","timestamp":96786669548,"duration":247071,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7230683162323676","name":"build-module-js","id":"346f62386e6a3932","timestamp":96786669517,"duration":247719,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\wrapNativeSuper.js"}},{"traceId":"a40c92b03843b256","parentId":"78636d746f656664","name":"read-resource","id":"3763686e70357a39","timestamp":96786669626,"duration":247648,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7230683162323676","name":"build-module-js","id":"78636d746f656664","timestamp":96786669566,"duration":248147,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\asyncToGenerator.js"}},{"traceId":"a40c92b03843b256","parentId":"726b7972616d6c74","name":"read-resource","id":"7464396d346c6773","timestamp":96786669720,"duration":248025,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"66746c6d32307768","name":"get-options","id":"3066637962696e66","timestamp":96786917809,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6b39686f627a73","name":"babel-turbo-get-config","id":"713678367073776f","timestamp":96786917821,"duration":15,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6b39686f627a73","name":"babel-turbo-normalize-file","id":"36306f6f766c7465","timestamp":96786917839,"duration":1379,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3035706f6f343433","name":"babel-turbo-traverse","id":"6b776d6b6e793235","timestamp":96786919888,"duration":5375,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6b39686f627a73","name":"babel-turbo-transform","id":"3035706f6f343433","timestamp":96786919240,"duration":6037,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6b39686f627a73","name":"babel-turbo-generate","id":"6d676e676b78696d","timestamp":96786925298,"duration":883,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"66746c6d32307768","name":"next-babel-turbo-transform","id":"7a6b39686f627a73","timestamp":96786917818,"duration":8370,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"726b7972616d6c74","name":"next-babel-turbo-loader","id":"66746c6d32307768","timestamp":96786917774,"duration":8438,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7677746d6d723366","name":"build-module-js","id":"726b7972616d6c74","timestamp":96786669646,"duration":257816,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\amp.js"}},{"traceId":"a40c92b03843b256","parentId":"67683568306a396b","name":"read-resource","id":"78686a7a6762776d","timestamp":96786669909,"duration":257606,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"673366306771346e","name":"get-options","id":"3977337863777932","timestamp":96786927556,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7630707a6561307a","name":"babel-turbo-get-config","id":"30316c33616c3769","timestamp":96786927566,"duration":20,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7630707a6561307a","name":"babel-turbo-normalize-file","id":"7267686c6f336a77","timestamp":96786927590,"duration":1439,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6670756b69383638","name":"babel-turbo-traverse","id":"7965647639356371","timestamp":96786929657,"duration":2291,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7630707a6561307a","name":"babel-turbo-transform","id":"6670756b69383638","timestamp":96786929057,"duration":2904,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7630707a6561307a","name":"babel-turbo-generate","id":"6e3537786b7a7863","timestamp":96786931985,"duration":744,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"673366306771346e","name":"next-babel-turbo-transform","id":"7630707a6561307a","timestamp":96786927563,"duration":5170,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"67683568306a396b","name":"next-babel-turbo-loader","id":"673366306771346e","timestamp":96786927550,"duration":5257,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b6f6a68716f696e","name":"build-module-js","id":"67683568306a396b","timestamp":96786669844,"duration":264197,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\normalize-trailing-slash.js"}},{"traceId":"a40c92b03843b256","parentId":"6978646d35347675","name":"read-resource","id":"6d63737638623367","timestamp":96786669816,"duration":264270,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e376a326e683832","name":"get-options","id":"327977396569776f","timestamp":96786934123,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7361617335753963","name":"babel-turbo-get-config","id":"753163383778726d","timestamp":96786934134,"duration":20,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7361617335753963","name":"babel-turbo-normalize-file","id":"72356e3630793065","timestamp":96786934158,"duration":12900,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7464793531686461","name":"babel-turbo-traverse","id":"7a63386431713265","timestamp":96786947672,"duration":45423,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7361617335753963","name":"babel-turbo-transform","id":"7464793531686461","timestamp":96786947092,"duration":46017,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7361617335753963","name":"babel-turbo-generate","id":"6d37326e647a6733","timestamp":96786993131,"duration":13703,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e376a326e683832","name":"next-babel-turbo-transform","id":"7361617335753963","timestamp":96786934131,"duration":72711,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6978646d35347675","name":"next-babel-turbo-loader","id":"6e376a326e683832","timestamp":96786934118,"duration":72751,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b6f6a68716f696e","name":"build-module-js","id":"6978646d35347675","timestamp":96786669750,"duration":340025,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\route-loader.js"}},{"traceId":"a40c92b03843b256","parentId":"7a763968316d6737","name":"read-resource","id":"6d6f613465783279","timestamp":96786669496,"duration":340329,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7163383132757570","name":"get-options","id":"6c6e33356e666437","timestamp":96787009866,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3079363674713873","name":"babel-turbo-get-config","id":"6d74353571333438","timestamp":96787009877,"duration":16,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3079363674713873","name":"babel-turbo-normalize-file","id":"7761667062627772","timestamp":96787009897,"duration":2228,"tags":{}}] +[{"traceId":"a40c92b03843b256","parentId":"667161316167306b","name":"babel-turbo-traverse","id":"686f796e69727365","timestamp":96787013056,"duration":18606,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3079363674713873","name":"babel-turbo-transform","id":"667161316167306b","timestamp":96787012485,"duration":19193,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3079363674713873","name":"babel-turbo-generate","id":"6b626762756b617a","timestamp":96787031710,"duration":2099,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7163383132757570","name":"next-babel-turbo-transform","id":"3079363674713873","timestamp":96787009874,"duration":23943,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a763968316d6737","name":"next-babel-turbo-loader","id":"7163383132757570","timestamp":96787009861,"duration":23982,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7677746d6d723366","name":"build-module-js","id":"7a763968316d6737","timestamp":96786669420,"duration":366091,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\side-effect.js"}},{"traceId":"a40c92b03843b256","parentId":"7339706932307565","name":"read-resource","id":"6e6435767079656a","timestamp":96786670000,"duration":365567,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6e70666d397175","name":"get-options","id":"7475317737693579","timestamp":96787035643,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3637386667347870","name":"babel-turbo-get-config","id":"6b756a7375727673","timestamp":96787035655,"duration":16,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3637386667347870","name":"babel-turbo-normalize-file","id":"366a7a707a756a79","timestamp":96787035674,"duration":3232,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"316a706175617977","name":"babel-turbo-traverse","id":"7735386c6b746d76","timestamp":96787039535,"duration":10517,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3637386667347870","name":"babel-turbo-transform","id":"316a706175617977","timestamp":96787038932,"duration":11133,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3637386667347870","name":"babel-turbo-generate","id":"3675646c716d3237","timestamp":96787050086,"duration":2471,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6e70666d397175","name":"next-babel-turbo-transform","id":"3637386667347870","timestamp":96787035652,"duration":16909,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7339706932307565","name":"next-babel-turbo-loader","id":"7a6e70666d397175","timestamp":96787035604,"duration":16978,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7230683162323676","name":"build-module-js","id":"7339706932307565","timestamp":96786669930,"duration":384057,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\format-url.js"}},{"traceId":"a40c92b03843b256","parentId":"6a797a3476397671","name":"read-resource","id":"6572683778776c61","timestamp":96786670084,"duration":383970,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"646e72787a706b76","name":"get-options","id":"6c34733536303765","timestamp":96787054091,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a796b616a65776a","name":"babel-turbo-get-config","id":"6e3169316e6e6971","timestamp":96787054101,"duration":16,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a796b616a65776a","name":"babel-turbo-normalize-file","id":"38733261306d7363","timestamp":96787054120,"duration":1430,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"656975647a366470","name":"babel-turbo-traverse","id":"7068717333327730","timestamp":96787056106,"duration":3193,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a796b616a65776a","name":"babel-turbo-transform","id":"656975647a366470","timestamp":96787055566,"duration":3744,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a796b616a65776a","name":"babel-turbo-generate","id":"7162317432657178","timestamp":96787059328,"duration":959,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"646e72787a706b76","name":"next-babel-turbo-transform","id":"7a796b616a65776a","timestamp":96787054098,"duration":6192,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a797a3476397671","name":"next-babel-turbo-loader","id":"646e72787a706b76","timestamp":96787054086,"duration":6224,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b6f6a68716f696e","name":"build-module-js","id":"6a797a3476397671","timestamp":96786670019,"duration":391404,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\parse-relative-url.js"}},{"traceId":"a40c92b03843b256","parentId":"6536396d35743775","name":"read-resource","id":"386e743630303634","timestamp":96786670256,"duration":391212,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6965776879327173","name":"get-options","id":"7778323174343868","timestamp":96787061506,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"733076316c677069","name":"babel-turbo-get-config","id":"6c7266373270626c","timestamp":96787061516,"duration":16,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"733076316c677069","name":"babel-turbo-normalize-file","id":"3362653665343572","timestamp":96787061535,"duration":3260,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e7a386e64647a77","name":"babel-turbo-traverse","id":"6739713535776f6e","timestamp":96787065358,"duration":13122,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"733076316c677069","name":"babel-turbo-transform","id":"6e7a386e64647a77","timestamp":96787064817,"duration":13677,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"733076316c677069","name":"babel-turbo-generate","id":"69366a6939646478","timestamp":96787078515,"duration":3356,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6965776879327173","name":"next-babel-turbo-transform","id":"733076316c677069","timestamp":96787061513,"duration":20366,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6536396d35743775","name":"next-babel-turbo-loader","id":"6965776879327173","timestamp":96787061501,"duration":20403,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b6f6a68716f696e","name":"build-module-js","id":"6536396d35743775","timestamp":96786670194,"duration":413149,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\route-regex.js"}},{"traceId":"a40c92b03843b256","parentId":"3476667863383572","name":"read-resource","id":"6279646638733271","timestamp":96786670355,"duration":413043,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"333938726e797836","name":"get-options","id":"65656c396377366b","timestamp":96787083459,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f72616473393763","name":"babel-turbo-get-config","id":"38356b6b35673065","timestamp":96787083469,"duration":16,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f72616473393763","name":"babel-turbo-normalize-file","id":"6d6b793971393472","timestamp":96787083488,"duration":1485,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3636696c33657a38","name":"babel-turbo-traverse","id":"30706c7569697033","timestamp":96787085548,"duration":4957,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f72616473393763","name":"babel-turbo-transform","id":"3636696c33657a38","timestamp":96787084996,"duration":5522,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f72616473393763","name":"babel-turbo-generate","id":"75747377686c6a75","timestamp":96787090542,"duration":4607,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"333938726e797836","name":"next-babel-turbo-transform","id":"6f72616473393763","timestamp":96787083466,"duration":11692,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3476667863383572","name":"next-babel-turbo-loader","id":"333938726e797836","timestamp":96787083454,"duration":11740,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b6f6a68716f696e","name":"build-module-js","id":"3476667863383572","timestamp":96786670279,"duration":425980,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\get-middleware-regex.js"}},{"traceId":"a40c92b03843b256","parentId":"6c316d327368306a","name":"read-resource","id":"3036616c377a6e6f","timestamp":96786670173,"duration":426137,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7839383237656431","name":"get-options","id":"386b7474786c7169","timestamp":96787096380,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c33306162343276","name":"babel-turbo-get-config","id":"6e67307565393171","timestamp":96787096391,"duration":17,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c33306162343276","name":"babel-turbo-normalize-file","id":"6177676b6e667877","timestamp":96787096410,"duration":1629,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3139337464667368","name":"babel-turbo-traverse","id":"7330697531373874","timestamp":96787098627,"duration":5238,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c33306162343276","name":"babel-turbo-transform","id":"3139337464667368","timestamp":96787098066,"duration":5817,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c33306162343276","name":"babel-turbo-generate","id":"6963787330396f68","timestamp":96787103914,"duration":1324,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7839383237656431","name":"next-babel-turbo-transform","id":"6c33306162343276","timestamp":96787096388,"duration":8856,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c316d327368306a","name":"next-babel-turbo-loader","id":"7839383237656431","timestamp":96787096374,"duration":8896,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b6f6a68716f696e","name":"build-module-js","id":"6c316d327368306a","timestamp":96786670109,"duration":436185,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\route-matcher.js"}},{"traceId":"a40c92b03843b256","parentId":"7a306b336b306b62","name":"read-resource","id":"7a746f6162377064","timestamp":96786672948,"duration":433398,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"30796d6d7369627a","name":"build-module-js","id":"7a306b336b306b62","timestamp":96786672911,"duration":433856,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\scheduler\\tracing.js"}},{"traceId":"a40c92b03843b256","parentId":"676431396e397a69","name":"read-resource","id":"75306733656b3634","timestamp":96786672874,"duration":433990,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"30796d6d7369627a","name":"build-module-js","id":"676431396e397a69","timestamp":96786672763,"duration":434444,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\scheduler\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"787132646b616837","name":"read-resource","id":"633338336f636377","timestamp":96786903861,"duration":216731,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"356c6d75786c7772","name":"get-options","id":"6f6b746869657972","timestamp":96787120658,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"776f66726c6d7534","name":"babel-turbo-get-config","id":"386972343372336b","timestamp":96787120671,"duration":22,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"776f66726c6d7534","name":"babel-turbo-normalize-file","id":"727939727a6c6667","timestamp":96787120696,"duration":1457,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3868737937746d67","name":"babel-turbo-traverse","id":"7972343964783263","timestamp":96787122966,"duration":2578,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"776f66726c6d7534","name":"babel-turbo-transform","id":"3868737937746d67","timestamp":96787122177,"duration":3383,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"776f66726c6d7534","name":"babel-turbo-generate","id":"6d64327330726435","timestamp":96787125587,"duration":856,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"356c6d75786c7772","name":"next-babel-turbo-transform","id":"776f66726c6d7534","timestamp":96787120668,"duration":5782,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"787132646b616837","name":"next-babel-turbo-loader","id":"356c6d75786c7772","timestamp":96787120651,"duration":5825,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b6f6a68716f696e","name":"build-module-js","id":"787132646b616837","timestamp":96786903751,"duration":223714,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\i18n\\normalize-locale-path.js"}},{"traceId":"a40c92b03843b256","parentId":"6a38657135316161","name":"read-resource","id":"73383369326c6c69","timestamp":96786903709,"duration":223924,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3462627565797563","name":"build-module-js","id":"6a38657135316161","timestamp":96786903601,"duration":227033,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-refresh\\cjs\\react-refresh-runtime.development.js"}},{"traceId":"a40c92b03843b256","parentId":"7a67687978716634","name":"read-resource","id":"313338657266777a","timestamp":96786904112,"duration":226577,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a3773626269357a","name":"build-module-js","id":"7a67687978716634","timestamp":96786904025,"duration":227040,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"3639733765796b33","name":"read-resource","id":"3270363578717934","timestamp":96786903937,"duration":227163,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b6f6a68716f696e","name":"build-module-js","id":"3639733765796b33","timestamp":96786903888,"duration":227567,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\server\\denormalize-page-path.js"}},{"traceId":"a40c92b03843b256","parentId":"667832386a79676e","name":"add-entry","id":"75736d336d616471","timestamp":96782242243,"duration":4890307,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"6539377539783233","name":"read-resource","id":"6c727a6f71667861","timestamp":96786908201,"duration":227765,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d76707639396e39","name":"build-module-js","id":"6539377539783233","timestamp":96786908117,"duration":229749,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\styled-jsx\\dist\\stylesheet-registry.js"}},{"traceId":"a40c92b03843b256","parentId":"73317a716b7a7775","name":"read-resource","id":"7a65393632696172","timestamp":96787108437,"duration":31501,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d676e7169617373","name":"build-module-js","id":"73317a716b7a7775","timestamp":96787108319,"duration":33631,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\helpers\\stack-frame.js"}},{"traceId":"a40c92b03843b256","parentId":"39637a6938383563","name":"read-resource","id":"7562626337316f31","timestamp":96787108535,"duration":33466,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d676e7169617373","name":"build-module-js","id":"39637a6938383563","timestamp":96787108497,"duration":33810,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\helpers\\noop-template.js"}},{"traceId":"a40c92b03843b256","parentId":"353872686f30356c","name":"read-resource","id":"7a78353275727438","timestamp":96787108582,"duration":33745,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d676e7169617373","name":"build-module-js","id":"353872686f30356c","timestamp":96787108555,"duration":35361,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\container\\RuntimeError.js"}},{"traceId":"a40c92b03843b256","parentId":"356d6a7136706e78","name":"read-resource","id":"656f79716775396b","timestamp":96787110266,"duration":33699,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"34747a6839773630","name":"build-module-js","id":"356d6a7136706e78","timestamp":96787110180,"duration":34130,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\setPrototypeOf.js"}},{"traceId":"a40c92b03843b256","parentId":"6164683632756d6a","name":"read-resource","id":"386a396279366869","timestamp":96787110363,"duration":34080,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"78706f7376693178","name":"build-module-js","id":"6164683632756d6a","timestamp":96787110326,"duration":34372,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\arrayWithHoles.js"}},{"traceId":"a40c92b03843b256","parentId":"7437626b32386265","name":"read-resource","id":"7072326a7a616c72","timestamp":96787110544,"duration":34188,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"78706f7376693178","name":"build-module-js","id":"7437626b32386265","timestamp":96787110520,"duration":34657,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\unsupportedIterableToArray.js"}},{"traceId":"a40c92b03843b256","parentId":"6f6169396d377331","name":"read-resource","id":"6d6a75366c786d71","timestamp":96787110412,"duration":34814,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"34747a6839773630","name":"build-module-js","id":"6f6169396d377331","timestamp":96787110384,"duration":35127,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\isNativeReflectConstruct.js"}},{"traceId":"a40c92b03843b256","parentId":"75736b6435366969","name":"read-resource","id":"6a6d733867383773","timestamp":96787110459,"duration":35075,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"78706f7376693178","name":"build-module-js","id":"75736b6435366969","timestamp":96787110433,"duration":35471,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\iterableToArrayLimit.js"}},{"traceId":"a40c92b03843b256","parentId":"6c35666638737378","name":"read-resource","id":"316b3578357a7038","timestamp":96787110504,"duration":35430,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"746c6b3973346861","name":"build-module-js","id":"6c35666638737378","timestamp":96787110478,"duration":35683,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\assertThisInitialized.js"}},{"traceId":"a40c92b03843b256","parentId":"6d74646775367735","name":"read-resource","id":"7767366c76776b68","timestamp":96787110589,"duration":35595,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"78706f7376693178","name":"build-module-js","id":"6d74646775367735","timestamp":96787110564,"duration":35804,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\nonIterableRest.js"}},{"traceId":"a40c92b03843b256","parentId":"616a796e336f3971","name":"add-entry","id":"756d646d64707768","timestamp":96786905595,"duration":241500,"tags":{"request":"private-next-pages/_app"}},{"traceId":"a40c92b03843b256","parentId":"616a796e336f3971","name":"add-entry","id":"377a73316e656c32","timestamp":96786905673,"duration":241557,"tags":{"request":"private-next-pages/_error"}}] +[{"traceId":"a40c92b03843b256","parentId":"616a796e336f3971","name":"add-entry","id":"6732373263626163","timestamp":96786905681,"duration":241882,"tags":{"request":"./node_modules\\next\\dist\\pages\\_error.js"}},{"traceId":"a40c92b03843b256","parentId":"6671726873306e71","name":"read-resource","id":"7031707479307736","timestamp":96787116262,"duration":33485,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a76356d756d3465","name":"get-options","id":"3333793237337667","timestamp":96787149823,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a74363966766266","name":"babel-turbo-get-config","id":"35316937706f6636","timestamp":96787149834,"duration":17,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a74363966766266","name":"babel-turbo-normalize-file","id":"3875373575726f70","timestamp":96787149853,"duration":7740,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f7a77776a317867","name":"babel-turbo-traverse","id":"6a68797169626370","timestamp":96787158203,"duration":14597,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a74363966766266","name":"babel-turbo-transform","id":"6f7a77776a317867","timestamp":96787157626,"duration":15186,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a74363966766266","name":"babel-turbo-generate","id":"696931306d6d7679","timestamp":96787172833,"duration":3716,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a76356d756d3465","name":"next-babel-turbo-transform","id":"6a74363966766266","timestamp":96787149831,"duration":26727,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6671726873306e71","name":"next-babel-turbo-loader","id":"7a76356d756d3465","timestamp":96787149792,"duration":26787,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c39736a6e727433","name":"build-module-js","id":"6671726873306e71","timestamp":96787116190,"duration":62793,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\dev\\error-overlay\\format-webpack-messages.js"}},{"traceId":"a40c92b03843b256","parentId":"7732667173693132","name":"read-resource","id":"6a73736d7a706539","timestamp":96787116424,"duration":62606,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"746c6b3973346861","name":"build-module-js","id":"7732667173693132","timestamp":96787116326,"duration":63098,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\typeof.js"}},{"traceId":"a40c92b03843b256","parentId":"33617472736c337a","name":"read-resource","id":"3135686770713366","timestamp":96787116152,"duration":63295,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"793568326c377438","name":"get-options","id":"67306565716a3776","timestamp":96787179476,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6534353334687a79","name":"babel-turbo-get-config","id":"38696a7962363071","timestamp":96787179486,"duration":13,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6534353334687a79","name":"babel-turbo-normalize-file","id":"6d30386361746330","timestamp":96787179501,"duration":1554,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b6d7a6462327336","name":"babel-turbo-traverse","id":"63306d65786e6162","timestamp":96787181594,"duration":6367,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6534353334687a79","name":"babel-turbo-transform","id":"6b6d7a6462327336","timestamp":96787181074,"duration":6901,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6534353334687a79","name":"babel-turbo-generate","id":"326e79683975346a","timestamp":96787187996,"duration":1236,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"793568326c377438","name":"next-babel-turbo-transform","id":"6534353334687a79","timestamp":96787179483,"duration":9757,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"33617472736c337a","name":"next-babel-turbo-loader","id":"793568326c377438","timestamp":96787179471,"duration":9806,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72376a6b31367636","name":"build-module-js","id":"33617472736c337a","timestamp":96787115990,"duration":74497,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\portal\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"616a796e336f3971","name":"add-entry","id":"697473796b303864","timestamp":96786905662,"duration":285314,"tags":{"request":"private-next-pages/_document"}},{"traceId":"a40c92b03843b256","parentId":"346c65777a35376c","name":"make","id":"6d686b696b6f7261","timestamp":96786899612,"duration":291430,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"616a796e336f3971","name":"webpack-compilation-chunk-graph","id":"646f396463767a6e","timestamp":96787191436,"duration":249,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"616a796e336f3971","name":"webpack-compilation-optimize-modules","id":"6a77797231776266","timestamp":96787191713,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"616a796e336f3971","name":"webpack-compilation-optimize-chunks","id":"6f75673473346773","timestamp":96787191736,"duration":58,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"616a796e336f3971","name":"webpack-compilation-optimize-tree","id":"6b636c65386a6c6c","timestamp":96787191820,"duration":8,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"616a796e336f3971","name":"webpack-compilation-optimize","id":"646266717536616c","timestamp":96787191703,"duration":269,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"616a796e336f3971","name":"webpack-compilation-hash","id":"3367616375327633","timestamp":96787192845,"duration":1276,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"616a796e336f3971","name":"webpack-compilation-seal","id":"6364696c75703576","timestamp":96787191358,"duration":4613,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"346c65777a35376c","name":"webpack-compilation","id":"616a796e336f3971","timestamp":96786899212,"duration":296801,"tags":{"name":"server"}},{"traceId":"a40c92b03843b256","parentId":"783562717a333061","name":"read-resource","id":"7874676c32363335","timestamp":96787134325,"duration":64964,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6561666736653263","name":"build-module-js","id":"783562717a333061","timestamp":96787134258,"duration":65641,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\CodeFrame\\styles.js"}},{"traceId":"a40c92b03843b256","parentId":"72626477796b7762","name":"read-resource","id":"68667a7630757769","timestamp":96787132908,"duration":67046,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72376a6b31367636","name":"build-module-js","id":"72626477796b7762","timestamp":96787132789,"duration":68126,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\client.js"}},{"traceId":"a40c92b03843b256","parentId":"7579626631386473","name":"read-resource","id":"34627278336d3930","timestamp":96787133048,"duration":67895,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6276646d78656338","name":"get-options","id":"75327a7670666169","timestamp":96787201001,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"64626c6768657275","name":"babel-turbo-get-config","id":"39306e7239327a74","timestamp":96787201012,"duration":13,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"64626c6768657275","name":"babel-turbo-normalize-file","id":"7877796372653865","timestamp":96787201029,"duration":1300,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"656662757a663765","name":"babel-turbo-traverse","id":"69636d3176683776","timestamp":96787202867,"duration":6873,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"64626c6768657275","name":"babel-turbo-transform","id":"656662757a663765","timestamp":96787202345,"duration":7406,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"64626c6768657275","name":"babel-turbo-generate","id":"66676b3263713070","timestamp":96787209772,"duration":911,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6276646d78656338","name":"next-babel-turbo-transform","id":"64626c6768657275","timestamp":96787201009,"duration":9677,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7579626631386473","name":"next-babel-turbo-loader","id":"6276646d78656338","timestamp":96787200968,"duration":9737,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"36356e6d72326434","name":"build-module-js","id":"7579626631386473","timestamp":96787132963,"duration":78756,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\request-idle-callback.js"}},{"traceId":"a40c92b03843b256","parentId":"6766633037776e6b","name":"read-resource","id":"62306d7069673268","timestamp":96787133142,"duration":78626,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3761343534363173","name":"get-options","id":"3673696b62756361","timestamp":96787211799,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f70766534766133","name":"babel-turbo-get-config","id":"616d6a666a316d6b","timestamp":96787211809,"duration":16,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f70766534766133","name":"babel-turbo-normalize-file","id":"3878617362377778","timestamp":96787211827,"duration":949,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"636d6e6e39623862","name":"babel-turbo-traverse","id":"32386a6e6d626f73","timestamp":96787213307,"duration":2087,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f70766534766133","name":"babel-turbo-transform","id":"636d6e6e39623862","timestamp":96787212788,"duration":2619,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f70766534766133","name":"babel-turbo-generate","id":"6466303669706770","timestamp":96787215427,"duration":599,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3761343534363173","name":"next-babel-turbo-transform","id":"6f70766534766133","timestamp":96787211806,"duration":4224,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6766633037776e6b","name":"next-babel-turbo-loader","id":"3761343534363173","timestamp":96787211795,"duration":4257,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"647133326b6d6a67","name":"build-module-js","id":"6766633037776e6b","timestamp":96787133072,"duration":83907,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\shared\\lib\\router\\utils\\get-asset-path-from-route.js"}},{"traceId":"a40c92b03843b256","parentId":"646d747969673470","name":"read-resource","id":"6b396c7637716466","timestamp":96787134176,"duration":82858,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6561666736653263","name":"build-module-js","id":"646d747969673470","timestamp":96787134011,"duration":83534,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Overlay\\styles.js"}},{"traceId":"a40c92b03843b256","parentId":"7932657a65657663","name":"read-resource","id":"696530387a686f63","timestamp":96787134429,"duration":83150,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6561666736653263","name":"build-module-js","id":"7932657a65657663","timestamp":96787134370,"duration":83559,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\LeftRightDialogHeader\\styles.js"}},{"traceId":"a40c92b03843b256","parentId":"34733862736e3367","name":"read-resource","id":"343963787a616e68","timestamp":96787134518,"duration":83434,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6561666736653263","name":"build-module-js","id":"34733862736e3367","timestamp":96787134463,"duration":83783,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Terminal\\styles.js"}},{"traceId":"a40c92b03843b256","parentId":"3270303331367267","name":"read-resource","id":"72346b6e7a366563","timestamp":96787138530,"duration":85526,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"346f62386e6a3932","name":"build-module-js","id":"3270303331367267","timestamp":96787138503,"duration":85980,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\isNativeFunction.js"}},{"traceId":"a40c92b03843b256","parentId":"686e3137716d776b","name":"read-resource","id":"3169677637353737","timestamp":96787138420,"duration":86099,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72376a6b31367636","name":"build-module-js","id":"686e3137716d776b","timestamp":96787138324,"duration":86731,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-dom\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"69327964796e3267","name":"read-resource","id":"637831647a666e39","timestamp":96787138482,"duration":86609,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72376a6b31367636","name":"build-module-js","id":"69327964796e3267","timestamp":96787138450,"duration":86857,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-is\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"33646b6d7a336d72","name":"read-resource","id":"7074773967677037","timestamp":96787196504,"duration":32637,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72376a6b31367636","name":"build-module-js","id":"33646b6d7a336d72","timestamp":96787196413,"duration":33075,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\styled-jsx\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"3570637133773579","name":"read-resource","id":"7870616c33696277","timestamp":96787196585,"duration":32948,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a763968316d6737","name":"build-module-js","id":"3570637133773579","timestamp":96787196553,"duration":33365,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\toConsumableArray.js"}},{"traceId":"a40c92b03843b256","parentId":"3068696633736561","name":"read-resource","id":"6977616e75326373","timestamp":96787198374,"duration":31605,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"676431396e397a69","name":"build-module-js","id":"3068696633736561","timestamp":96787198237,"duration":34684,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\scheduler\\cjs\\scheduler.development.js"}},{"traceId":"a40c92b03843b256","parentId":"397337663736657a","name":"read-resource","id":"3475613167697531","timestamp":96787198487,"duration":34504,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a306b336b306b62","name":"build-module-js","id":"397337663736657a","timestamp":96787198454,"duration":36071,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\scheduler\\cjs\\scheduler-tracing.development.js"}},{"traceId":"a40c92b03843b256","parentId":"6271776976783377","name":"read-resource","id":"7132337836696f32","timestamp":96787220918,"duration":35252,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72376a6b31367636","name":"build-module-js","id":"6271776976783377","timestamp":96787220812,"duration":35973,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\polyfill-module\\dist\\polyfill-module.js"}},{"traceId":"a40c92b03843b256","parentId":"6274333434397137","name":"read-resource","id":"77716a703973726b","timestamp":96787221597,"duration":35306,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d676e7169617373","name":"build-module-js","id":"6274333434397137","timestamp":96787221569,"duration":35790,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Overlay\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"3679747273693831","name":"read-resource","id":"6e70716a33396262","timestamp":96787221537,"duration":35857,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"34626a7970326f68","name":"build-module-js","id":"3679747273693831","timestamp":96787221454,"duration":36308,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Terminal\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"616a726168376932","name":"read-resource","id":"3369756461343579","timestamp":96787221637,"duration":36158,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d676e7169617373","name":"build-module-js","id":"616a726168376932","timestamp":96787221612,"duration":36549,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\LeftRightDialogHeader\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"627961363577686f","name":"read-resource","id":"756d686c62303961","timestamp":96787226354,"duration":33873,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a67687978716634","name":"build-module-js","id":"627961363577686f","timestamp":96787226265,"duration":42869,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react\\cjs\\react.development.js"}},{"traceId":"a40c92b03843b256","parentId":"623664617a317364","name":"read-resource","id":"6639743739326376","timestamp":96787226451,"duration":43019,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7437626b32386265","name":"build-module-js","id":"623664617a317364","timestamp":96787226397,"duration":43424,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\arrayLikeToArray.js"}},{"traceId":"a40c92b03843b256","parentId":"346c65777a35376c","name":"emit","id":"6a31753462636363","timestamp":96787196056,"duration":76896,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-server","id":"346c65777a35376c","timestamp":96784876185,"duration":2397978,"tags":{"trigger":"manual"}}] +[{"traceId":"a40c92b03843b256","parentId":"6767663972316864","name":"read-resource","id":"786b77666c387379","timestamp":96787228686,"duration":62526,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d676e7169617373","name":"build-module-js","id":"6767663972316864","timestamp":96787228589,"duration":63232,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Dialog\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"38346e7a656f6235","name":"read-resource","id":"6b396c6933733861","timestamp":96787228755,"duration":63103,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d676e7169617373","name":"build-module-js","id":"38346e7a656f6235","timestamp":96787228721,"duration":63435,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Toast\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"7537796677786362","name":"read-resource","id":"6d68757471787739","timestamp":96787258809,"duration":38938,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a73766131647835","name":"build-module-js","id":"7537796677786362","timestamp":96787258696,"duration":41881,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\stacktrace-parser\\dist\\stack-trace-parser.esm.js"}},{"traceId":"a40c92b03843b256","parentId":"6d69336237333531","name":"read-resource","id":"7a6b326d7839746f","timestamp":96787288137,"duration":14226,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6539377539783233","name":"build-module-js","id":"6d69336237333531","timestamp":96787288103,"duration":15032,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\styled-jsx\\dist\\lib\\hash.js"}},{"traceId":"a40c92b03843b256","parentId":"78723171386c6c67","name":"read-resource","id":"6a7174356f617866","timestamp":96787288065,"duration":15112,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6539377539783233","name":"build-module-js","id":"78723171386c6c67","timestamp":96787287910,"duration":17680,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\styled-jsx\\dist\\lib\\stylesheet.js"}},{"traceId":"a40c92b03843b256","parentId":"7a36747a67746468","name":"read-resource","id":"39626f356b326b64","timestamp":96787290953,"duration":17513,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3570637133773579","name":"build-module-js","id":"7a36747a67746468","timestamp":96787290930,"duration":18166,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\arrayWithoutHoles.js"}},{"traceId":"a40c92b03843b256","parentId":"3670613062637235","name":"read-resource","id":"366269376e347266","timestamp":96787290718,"duration":18423,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"39646439356c6236","name":"get-options","id":"6930736534356564","timestamp":96787309172,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"74696b6665303361","name":"babel-turbo-get-config","id":"61726c6d6a6a7165","timestamp":96787309182,"duration":13,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"74696b6665303361","name":"babel-turbo-normalize-file","id":"6661346166357264","timestamp":96787309198,"duration":1227,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3972787767656935","name":"babel-turbo-traverse","id":"67746c6e646f3636","timestamp":96787311464,"duration":5482,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"74696b6665303361","name":"babel-turbo-transform","id":"3972787767656935","timestamp":96787310440,"duration":6519,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"74696b6665303361","name":"babel-turbo-generate","id":"30636f33736b3174","timestamp":96787316979,"duration":1000,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"39646439356c6236","name":"next-babel-turbo-transform","id":"74696b6665303361","timestamp":96787309180,"duration":8803,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3670613062637235","name":"next-babel-turbo-loader","id":"39646439356c6236","timestamp":96787309168,"duration":8833,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c39736a6e727433","name":"build-module-js","id":"3670613062637235","timestamp":96787290584,"duration":28411,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\compiled\\strip-ansi\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"736f6f6c7a373669","name":"read-resource","id":"616a636b70336636","timestamp":96787290802,"duration":28233,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"386d6d7a6963316f","name":"build-module-js","id":"736f6f6c7a373669","timestamp":96787290759,"duration":30179,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\compiled\\web-vitals\\web-vitals.umd.js"}},{"traceId":"a40c92b03843b256","parentId":"356d633537646e64","name":"read-resource","id":"33356a796c346474","timestamp":96787290867,"duration":30129,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69327964796e3267","name":"build-module-js","id":"356d633537646e64","timestamp":96787290827,"duration":31528,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-is\\cjs\\react-is.development.js"}},{"traceId":"a40c92b03843b256","parentId":"66346b353277627a","name":"read-resource","id":"72767a7668676168","timestamp":96787290998,"duration":31406,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3570637133773579","name":"build-module-js","id":"66346b353277627a","timestamp":96787290969,"duration":31746,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\nonIterableSpread.js"}},{"traceId":"a40c92b03843b256","parentId":"6463663230357261","name":"read-resource","id":"626d676c30733371","timestamp":96787296315,"duration":28222,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3570637133773579","name":"build-module-js","id":"6463663230357261","timestamp":96787296158,"duration":28977,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\iterableToArray.js"}},{"traceId":"a40c92b03843b256","parentId":"6776726a39656b79","name":"read-resource","id":"736a396561626833","timestamp":96787296573,"duration":28597,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72626477796b7762","name":"build-module-js","id":"6776726a39656b79","timestamp":96787296536,"duration":29382,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\helpers\\nodeStackFrames.js"}},{"traceId":"a40c92b03843b256","parentId":"36346179386d6e36","name":"read-resource","id":"7175397478353365","timestamp":96787296457,"duration":29503,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72626477796b7762","name":"build-module-js","id":"36346179386d6e36","timestamp":96787296394,"duration":30832,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\ReactDevOverlay.js"}},{"traceId":"a40c92b03843b256","parentId":"6863646765726867","name":"read-resource","id":"3337706367373561","timestamp":96787296520,"duration":30749,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72626477796b7762","name":"build-module-js","id":"6863646765726867","timestamp":96787296495,"duration":31414,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\bus.js"}},{"traceId":"a40c92b03843b256","parentId":"6d72787731736b69","name":"read-resource","id":"6f67613362736633","timestamp":96787296614,"duration":31340,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72626477796b7762","name":"build-module-js","id":"6d72787731736b69","timestamp":96787296589,"duration":32125,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\helpers\\parseStack.js"}},{"traceId":"a40c92b03843b256","parentId":"6c6f663665796c72","name":"read-resource","id":"35337866776d6769","timestamp":96787290913,"duration":40597,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"686e3137716d776b","name":"build-module-js","id":"6c6f663665796c72","timestamp":96787290888,"duration":168522,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-dom\\cjs\\react-dom.development.js"}},{"traceId":"a40c92b03843b256","parentId":"377532646a7a696b","name":"read-resource","id":"6639697176787066","timestamp":96787307323,"duration":154480,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6274333434397137","name":"build-module-js","id":"377532646a7a696b","timestamp":96787307293,"duration":155727,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Overlay\\Overlay.js"}},{"traceId":"a40c92b03843b256","parentId":"636e7976766f6268","name":"read-resource","id":"33663778376f3135","timestamp":96787307258,"duration":155810,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3679747273693831","name":"build-module-js","id":"636e7976766f6268","timestamp":96787307170,"duration":156630,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Terminal\\Terminal.js"}},{"traceId":"a40c92b03843b256","parentId":"3166773064746173","name":"read-resource","id":"7433636d61326b74","timestamp":96787307399,"duration":156424,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"616a726168376932","name":"build-module-js","id":"3166773064746173","timestamp":96787307339,"duration":157585,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\LeftRightDialogHeader\\LeftRightDialogHeader.js"}},{"traceId":"a40c92b03843b256","parentId":"6733757674627436","name":"read-resource","id":"613267666863356e","timestamp":96787323787,"duration":153187,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"353872686f30356c","name":"build-module-js","id":"6733757674627436","timestamp":96787323655,"duration":153935,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\CodeFrame\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"6e79636d6371736c","name":"read-resource","id":"66306a6139786134","timestamp":96787330366,"duration":160129,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"627961363577686f","name":"build-module-js","id":"6e79636d6371736c","timestamp":96787330290,"duration":160566,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\polyfills\\object-assign.js"}},{"traceId":"a40c92b03843b256","parentId":"667832386a79676e","name":"add-entry","id":"6879727476386f6e","timestamp":96782242368,"duration":5249511,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=next%2Fdist%2Fpages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"38696e366e346f6f","name":"read-resource","id":"7869657a36397331","timestamp":96787461347,"duration":30899,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6767663972316864","name":"build-module-js","id":"38696e366e346f6f","timestamp":96787461284,"duration":32671,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Dialog\\Dialog.js"}},{"traceId":"a40c92b03843b256","parentId":"6731617039736e30","name":"read-resource","id":"6570676b72713771","timestamp":96787460700,"duration":33435,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3473363037653071","name":"build-module-js","id":"6731617039736e30","timestamp":96787460611,"duration":37596,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\regenerator-runtime\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"7a73633471747273","name":"read-resource","id":"3978783274696c67","timestamp":96787461516,"duration":36909,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6767663972316864","name":"build-module-js","id":"7a73633471747273","timestamp":96787461488,"duration":38049,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Dialog\\DialogContent.js"}},{"traceId":"a40c92b03843b256","parentId":"696278636f676673","name":"read-resource","id":"6d63336e7268326b","timestamp":96787461464,"duration":38199,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6767663972316864","name":"build-module-js","id":"696278636f676673","timestamp":96787461386,"duration":39365,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Dialog\\DialogHeader.js"}},{"traceId":"a40c92b03843b256","parentId":"62743469737a7335","name":"read-resource","id":"6235756a6564357a","timestamp":96787461553,"duration":39276,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6767663972316864","name":"build-module-js","id":"62743469737a7335","timestamp":96787461531,"duration":40295,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Dialog\\DialogBody.js"}},{"traceId":"a40c92b03843b256","parentId":"6531766933643062","name":"read-resource","id":"71366d6d72736575","timestamp":96787461592,"duration":40348,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6767663972316864","name":"build-module-js","id":"6531766933643062","timestamp":96787461567,"duration":41449,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Dialog\\styles.js"}},{"traceId":"a40c92b03843b256","parentId":"6636337261626265","name":"read-resource","id":"3437356371707468","timestamp":96787461635,"duration":41593,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"38346e7a656f6235","name":"build-module-js","id":"6636337261626265","timestamp":96787461607,"duration":43744,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Toast\\styles.js"}},{"traceId":"a40c92b03843b256","parentId":"667832386a79676e","name":"add-entry","id":"73336371326f3432","timestamp":96782242319,"duration":5264657,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"}},{"traceId":"a40c92b03843b256","parentId":"667832386a79676e","name":"add-entry","id":"386a686968346b78","timestamp":96782242345,"duration":5264652,"tags":{"request":"next-client-pages-loader?page=%2F_app&absolutePagePath=next%2Fdist%2Fpages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"667832386a79676e","name":"add-entry","id":"38796f6a356b696d","timestamp":96782242357,"duration":5264647,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"623038326f387338","name":"read-resource","id":"626f637237317879","timestamp":96787476043,"duration":37164,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"38346e7a656f6235","name":"build-module-js","id":"623038326f387338","timestamp":96787475953,"duration":38285,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Toast\\Toast.js"}},{"traceId":"a40c92b03843b256","parentId":"3379667732343738","name":"read-resource","id":"6e66796f78626371","timestamp":96787506919,"duration":17073,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"36346179386d6e36","name":"build-module-js","id":"3379667732343738","timestamp":96787506851,"duration":18242,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\ErrorBoundary.js"}},{"traceId":"a40c92b03843b256","parentId":"6c6c6d727674376d","name":"read-resource","id":"7137387169723938","timestamp":96787506734,"duration":18424,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"33646b6d7a336d72","name":"build-module-js","id":"6c6c6d727674376d","timestamp":96787506584,"duration":19000,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\styled-jsx\\dist\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"766e613979346b72","name":"read-resource","id":"706c343932383664","timestamp":96787521467,"duration":7886,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"36346179386d6e36","name":"build-module-js","id":"766e613979346b72","timestamp":96787521437,"duration":9008,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\container\\BuildError.js"}},{"traceId":"a40c92b03843b256","parentId":"6f6661797a343876","name":"read-resource","id":"6e39657063693935","timestamp":96787521388,"duration":9137,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"36346179386d6e36","name":"build-module-js","id":"6f6661797a343876","timestamp":96787521304,"duration":12369,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\container\\Errors.js"}},{"traceId":"a40c92b03843b256","parentId":"35756d696c653970","name":"read-resource","id":"787372617132696a","timestamp":96787521722,"duration":12084,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"36346179386d6e36","name":"build-module-js","id":"35756d696c653970","timestamp":96787521617,"duration":13043,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\styles\\ComponentStyles.js"}},{"traceId":"a40c92b03843b256","parentId":"6571636233747868","name":"read-resource","id":"676c363830333773","timestamp":96787521797,"duration":12905,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"36346179386d6e36","name":"build-module-js","id":"6571636233747868","timestamp":96787521767,"duration":13718,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\styles\\CssReset.js"}},{"traceId":"a40c92b03843b256","parentId":"726e727a726b6666","name":"read-resource","id":"706779377a363939","timestamp":96787521519,"duration":14008,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"36346179386d6e36","name":"build-module-js","id":"726e727a726b6666","timestamp":96787521486,"duration":14820,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\ShadowPortal.js"}},{"traceId":"a40c92b03843b256","parentId":"6975727168347566","name":"read-resource","id":"38677a35307a306c","timestamp":96787521859,"duration":14496,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"36346179386d6e36","name":"build-module-js","id":"6975727168347566","timestamp":96787521824,"duration":15246,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\styles\\Base.js"}},{"traceId":"a40c92b03843b256","parentId":"6470613635323361","name":"read-resource","id":"7266653564337138","timestamp":96787521941,"duration":15186,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"377532646a7a696b","name":"build-module-js","id":"6470613635323361","timestamp":96787521897,"duration":15695,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Overlay\\body-locker.js"}},{"traceId":"a40c92b03843b256","parentId":"6867633971696830","name":"read-resource","id":"7133736b37333869","timestamp":96787522047,"duration":19807,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"377532646a7a696b","name":"build-module-js","id":"6867633971696830","timestamp":96787521986,"duration":33431,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Overlay\\maintain--tab-focus.js"}},{"traceId":"a40c92b03843b256","parentId":"61316f3366783370","name":"read-resource","id":"30627a6b6d776331","timestamp":96787526182,"duration":33403,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6733757674627436","name":"build-module-js","id":"61316f3366783370","timestamp":96787526045,"duration":34988,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\CodeFrame\\CodeFrame.js"}},{"traceId":"a40c92b03843b256","parentId":"343238766f683068","name":"read-resource","id":"3136637339387373","timestamp":96787558947,"duration":11122,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"38696e366e346f6f","name":"build-module-js","id":"343238766f683068","timestamp":96787558866,"duration":12197,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\hooks\\use-on-click-outside.js"}},{"traceId":"a40c92b03843b256","parentId":"3669746d67717032","name":"read-resource","id":"3237657070326179","timestamp":96787565267,"duration":13008,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c6f663665796c72","name":"build-module-js","id":"3669746d67717032","timestamp":96787565180,"duration":13537,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\scheduler\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"6f7267666b397774","name":"read-resource","id":"6f76346d33687767","timestamp":96787565340,"duration":14699,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c6f663665796c72","name":"build-module-js","id":"6f7267666b397774","timestamp":96787565311,"duration":15089,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\scheduler\\tracing.js"}},{"traceId":"a40c92b03843b256","parentId":"3937316667747832","name":"read-resource","id":"6270776e7476336d","timestamp":96787568386,"duration":14168,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c6c6d727674376d","name":"build-module-js","id":"3937316667747832","timestamp":96787568190,"duration":16353,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\styled-jsx\\dist\\stylesheet-registry.js"}},{"traceId":"a40c92b03843b256","parentId":"6c6c706868376378","name":"read-resource","id":"336932776c617732","timestamp":96787572253,"duration":15017,"tags":{}}] +[{"traceId":"a40c92b03843b256","parentId":"766e613979346b72","name":"build-module-js","id":"6c6c706868376378","timestamp":96787572103,"duration":16166,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\helpers\\noop-template.js"}},{"traceId":"a40c92b03843b256","parentId":"7532663761796b32","name":"read-resource","id":"64386d6a69383365","timestamp":96787572334,"duration":16202,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f6661797a343876","name":"build-module-js","id":"7532663761796b32","timestamp":96787572300,"duration":18628,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\helpers\\stack-frame.js"}},{"traceId":"a40c92b03843b256","parentId":"396b71686e333869","name":"read-resource","id":"6b787264746f6834","timestamp":96787572413,"duration":18585,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f6661797a343876","name":"build-module-js","id":"396b71686e333869","timestamp":96787572378,"duration":20461,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\container\\RuntimeError.js"}},{"traceId":"a40c92b03843b256","parentId":"306e7278796b6278","name":"read-resource","id":"796234396a313236","timestamp":96787579508,"duration":20252,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"35756d696c653970","name":"build-module-js","id":"306e7278796b6278","timestamp":96787579477,"duration":20860,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Terminal\\styles.js"}},{"traceId":"a40c92b03843b256","parentId":"696a687666306d71","name":"read-resource","id":"6a353533776b6932","timestamp":96787579416,"duration":20961,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"35756d696c653970","name":"build-module-js","id":"696a687666306d71","timestamp":96787579389,"duration":21297,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\CodeFrame\\styles.js"}},{"traceId":"a40c92b03843b256","parentId":"3867366d69756f6d","name":"read-resource","id":"6a73727a79653878","timestamp":96787579352,"duration":21365,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"35756d696c653970","name":"build-module-js","id":"3867366d69756f6d","timestamp":96787579273,"duration":21694,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Overlay\\styles.js"}},{"traceId":"a40c92b03843b256","parentId":"6270646762627371","name":"read-resource","id":"3632346a37377073","timestamp":96787579455,"duration":21618,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"35756d696c653970","name":"build-module-js","id":"6270646762627371","timestamp":96787579431,"duration":21994,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\LeftRightDialogHeader\\styles.js"}},{"traceId":"a40c92b03843b256","parentId":"6a71706b33677865","name":"read-resource","id":"696c343976323678","timestamp":96787596566,"duration":10067,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"78723171386c6c67","name":"build-module-js","id":"6a71706b33677865","timestamp":96787596434,"duration":11633,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\process\\browser.js"}},{"traceId":"a40c92b03843b256","parentId":"3365777368337973","name":"read-resource","id":"3039693263347467","timestamp":96787602552,"duration":9716,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f6661797a343876","name":"build-module-js","id":"3365777368337973","timestamp":96787602512,"duration":10401,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\LeftRightDialogHeader\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"38726831656d3076","name":"read-resource","id":"6871726665796231","timestamp":96787602225,"duration":10857,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d69336237333531","name":"build-module-js","id":"38726831656d3076","timestamp":96787602158,"duration":11463,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\string-hash\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"6d61753376626961","name":"read-resource","id":"396c6a786f6e616f","timestamp":96787602489,"duration":11186,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766e613979346b72","name":"build-module-js","id":"6d61753376626961","timestamp":96787602435,"duration":11707,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Terminal\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"7379736c7a683877","name":"read-resource","id":"3937393667626665","timestamp":96787602610,"duration":11575,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766e613979346b72","name":"build-module-js","id":"7379736c7a683877","timestamp":96787602574,"duration":12066,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Overlay\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"6b6b3465686b3737","name":"read-resource","id":"7536306b61686f6a","timestamp":96787605429,"duration":12036,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f7267666b397774","name":"build-module-js","id":"6b6b3465686b3737","timestamp":96787605396,"duration":13671,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\scheduler\\cjs\\scheduler-tracing.development.js"}},{"traceId":"a40c92b03843b256","parentId":"363468386771376b","name":"read-resource","id":"6b38717568397266","timestamp":96787605356,"duration":13855,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3669746d67717032","name":"build-module-js","id":"363468386771376b","timestamp":96787605216,"duration":16593,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\scheduler\\cjs\\scheduler.development.js"}},{"traceId":"a40c92b03843b256","parentId":"786d623777326834","name":"read-resource","id":"756f6933616c3630","timestamp":96787609099,"duration":15352,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f6661797a343876","name":"build-module-js","id":"786d623777326834","timestamp":96787609047,"duration":16134,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Toast\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"39717a627a7a6378","name":"read-resource","id":"7030636a65787838","timestamp":96787608990,"duration":16250,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766e613979346b72","name":"build-module-js","id":"39717a627a7a6378","timestamp":96787608815,"duration":17151,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Dialog\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"6671653233786c64","name":"read-resource","id":"6730396e6d337468","timestamp":96787611238,"duration":16909,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"636e7976766f6268","name":"build-module-js","id":"6671653233786c64","timestamp":96787611107,"duration":19867,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\anser\\lib\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"7633677835717a34","name":"read-resource","id":"3539677a6d6d6836","timestamp":96787622908,"duration":12260,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3937316667747832","name":"build-module-js","id":"7633677835717a34","timestamp":96787622861,"duration":14134,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\styled-jsx\\dist\\lib\\stylesheet.js"}},{"traceId":"a40c92b03843b256","parentId":"77636966636c7a6d","name":"read-resource","id":"7230733539686f77","timestamp":96787622843,"duration":14302,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3937316667747832","name":"build-module-js","id":"77636966636c7a6d","timestamp":96787622805,"duration":15054,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\styled-jsx\\dist\\lib\\hash.js"}},{"traceId":"a40c92b03843b256","parentId":"3673656264767736","name":"read-resource","id":"3966667038373233","timestamp":96787622728,"duration":15186,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6776726a39656b79","name":"build-module-js","id":"3673656264767736","timestamp":96787622630,"duration":16741,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\stacktrace-parser\\dist\\stack-trace-parser.esm.js"}},{"traceId":"a40c92b03843b256","parentId":"663631306e6f6a6c","name":"read-resource","id":"7772396330317833","timestamp":96787640211,"duration":5806,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d61753376626961","name":"build-module-js","id":"663631306e6f6a6c","timestamp":96787640183,"duration":6802,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Terminal\\Terminal.js"}},{"traceId":"a40c92b03843b256","parentId":"786f307866697875","name":"read-resource","id":"3737657134716f70","timestamp":96787640251,"duration":6788,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7379736c7a683877","name":"build-module-js","id":"786f307866697875","timestamp":96787640226,"duration":7607,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Overlay\\Overlay.js"}},{"traceId":"a40c92b03843b256","parentId":"6d78667464693832","name":"read-resource","id":"3171776834626d70","timestamp":96787640143,"duration":7918,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3365777368337973","name":"build-module-js","id":"6d78667464693832","timestamp":96787640027,"duration":9272,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\LeftRightDialogHeader\\LeftRightDialogHeader.js"}},{"traceId":"a40c92b03843b256","parentId":"697830366f323433","name":"read-resource","id":"6a6e797335777773","timestamp":96787643233,"duration":7977,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"396b71686e333869","name":"build-module-js","id":"697830366f323433","timestamp":96787643110,"duration":8734,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\CodeFrame\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"7935396168777162","name":"read-resource","id":"676f68396a616d79","timestamp":96787644860,"duration":10661,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"786d623777326834","name":"build-module-js","id":"7935396168777162","timestamp":96787644776,"duration":11249,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Toast\\styles.js"}},{"traceId":"a40c92b03843b256","parentId":"7a68786234316233","name":"read-resource","id":"6a64397434716534","timestamp":96787645010,"duration":11189,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"39717a627a7a6378","name":"build-module-js","id":"7a68786234316233","timestamp":96787644986,"duration":12290,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Dialog\\Dialog.js"}},{"traceId":"a40c92b03843b256","parentId":"747a72727a373876","name":"read-resource","id":"636d396b6f757578","timestamp":96787644926,"duration":12411,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"786d623777326834","name":"build-module-js","id":"747a72727a373876","timestamp":96787644892,"duration":13062,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Toast\\Toast.js"}},{"traceId":"a40c92b03843b256","parentId":"753033776b657367","name":"read-resource","id":"7269773236777a37","timestamp":96787644968,"duration":13041,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"39717a627a7a6378","name":"build-module-js","id":"753033776b657367","timestamp":96787644943,"duration":13598,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Dialog\\DialogHeader.js"}},{"traceId":"a40c92b03843b256","parentId":"68743765307a736d","name":"read-resource","id":"7a30767761786575","timestamp":96787645204,"duration":14777,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6867633971696830","name":"build-module-js","id":"68743765307a736d","timestamp":96787645163,"duration":16034,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\css.escape\\css.escape.js"}},{"traceId":"a40c92b03843b256","parentId":"6235387336363063","name":"read-resource","id":"7375743931303376","timestamp":96787645125,"duration":16117,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"39717a627a7a6378","name":"build-module-js","id":"6235387336363063","timestamp":96787645102,"duration":16827,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Dialog\\DialogContent.js"}},{"traceId":"a40c92b03843b256","parentId":"6e79627774656c7a","name":"read-resource","id":"686467376f33726f","timestamp":96787645090,"duration":16876,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"39717a627a7a6378","name":"build-module-js","id":"6e79627774656c7a","timestamp":96787645064,"duration":17325,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Dialog\\styles.js"}},{"traceId":"a40c92b03843b256","parentId":"32616b6d7a666a73","name":"read-resource","id":"686e623137636a76","timestamp":96787645050,"duration":17370,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"39717a627a7a6378","name":"build-module-js","id":"32616b6d7a666a73","timestamp":96787645028,"duration":17999,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Dialog\\DialogBody.js"}},{"traceId":"a40c92b03843b256","parentId":"6176617763677875","name":"read-resource","id":"3876713663767239","timestamp":96787645252,"duration":17845,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6867633971696830","name":"build-module-js","id":"6176617763677875","timestamp":96787645228,"duration":34878,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\platform\\platform.js"}},{"traceId":"a40c92b03843b256","parentId":"3970333871366835","name":"read-resource","id":"746f687462683837","timestamp":96787659866,"duration":26532,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3335647739626232","name":"get-options","id":"3365626466656831","timestamp":96787686462,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"34666d3878303564","name":"babel-turbo-get-config","id":"6b666762617a6363","timestamp":96787686472,"duration":19,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"34666d3878303564","name":"babel-turbo-normalize-file","id":"776e76647479367a","timestamp":96787686493,"duration":804,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3572753163626132","name":"babel-turbo-traverse","id":"776233666376327a","timestamp":96787688178,"duration":1079,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"34666d3878303564","name":"babel-turbo-transform","id":"3572753163626132","timestamp":96787687336,"duration":1934,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"34666d3878303564","name":"babel-turbo-generate","id":"6e6b65646b70347a","timestamp":96787689285,"duration":257,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3335647739626232","name":"next-babel-turbo-transform","id":"34666d3878303564","timestamp":96787686469,"duration":3074,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3970333871366835","name":"next-babel-turbo-loader","id":"3335647739626232","timestamp":96787686457,"duration":3106,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"61316f3366783370","name":"build-module-js","id":"3970333871366835","timestamp":96787659766,"duration":30474,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\strip-ansi\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"737a687965636563","name":"read-resource","id":"6965356837323475","timestamp":96787684692,"duration":7757,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"786f307866697875","name":"build-module-js","id":"737a687965636563","timestamp":96787684581,"duration":19258,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Overlay\\maintain--tab-focus.js"}},{"traceId":"a40c92b03843b256","parentId":"3038763566756b32","name":"read-resource","id":"726f6a3732327876","timestamp":96787684791,"duration":19481,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"786f307866697875","name":"build-module-js","id":"3038763566756b32","timestamp":96787684757,"duration":20190,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\Overlay\\body-locker.js"}},{"traceId":"a40c92b03843b256","parentId":"6636757363673037","name":"read-resource","id":"36666d6c68393164","timestamp":96787690694,"duration":15544,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"697830366f323433","name":"build-module-js","id":"6636757363673037","timestamp":96787690619,"duration":16946,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\components\\CodeFrame\\CodeFrame.js"}},{"traceId":"a40c92b03843b256","parentId":"6d71757a30343273","name":"read-resource","id":"646d6d7a6867617a","timestamp":96787705267,"duration":9031,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a68786234316233","name":"build-module-js","id":"6d71757a30343273","timestamp":96787705177,"duration":9804,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-dev-overlay\\lib\\internal\\hooks\\use-on-click-outside.js"}},{"traceId":"a40c92b03843b256","parentId":"363964346a6d7865","name":"read-resource","id":"703876747a776231","timestamp":96787719336,"duration":2472,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7633677835717a34","name":"build-module-js","id":"363964346a6d7865","timestamp":96787719236,"duration":3779,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\process\\browser.js"}},{"traceId":"a40c92b03843b256","parentId":"37386b6561756b33","name":"read-resource","id":"736c616e38656733","timestamp":96787720896,"duration":3148,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"77636966636c7a6d","name":"build-module-js","id":"37386b6561756b33","timestamp":96787720775,"duration":3610,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\string-hash\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"6564666c61346e6e","name":"read-resource","id":"7a3132377130776d","timestamp":96787723975,"duration":2282,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"663631306e6f6a6c","name":"build-module-js","id":"6564666c61346e6e","timestamp":96787723892,"duration":4696,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\anser\\lib\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"326835327963697a","name":"read-resource","id":"77396b73386a3138","timestamp":96787725785,"duration":4334,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"347639706477776e","name":"get-options","id":"7774676b7471306b","timestamp":96787730155,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3364336577317238","name":"babel-turbo-get-config","id":"353132756b6d3066","timestamp":96787730165,"duration":16,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3364336577317238","name":"babel-turbo-normalize-file","id":"6671637464367568","timestamp":96787730185,"duration":813,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7436753671703773","name":"babel-turbo-traverse","id":"6e37367561316378","timestamp":96787731530,"duration":2234,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3364336577317238","name":"babel-turbo-transform","id":"7436753671703773","timestamp":96787731047,"duration":2729,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3364336577317238","name":"babel-turbo-generate","id":"3373776237627933","timestamp":96787733796,"duration":406,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"347639706477776e","name":"next-babel-turbo-transform","id":"3364336577317238","timestamp":96787730163,"duration":4042,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"326835327963697a","name":"next-babel-turbo-loader","id":"347639706477776e","timestamp":96787730151,"duration":4074,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3970333871366835","name":"build-module-js","id":"326835327963697a","timestamp":96787725633,"duration":9323,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\ansi-regex\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"63397176767a6235","name":"add-entry","id":"626a75757a6d6732","timestamp":96782111358,"duration":5623988,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"make","id":"7637623375737533","timestamp":96782111046,"duration":5624549,"tags":{}}] +[{"traceId":"a40c92b03843b256","parentId":"63397176767a6235","name":"webpack-compilation-chunk-graph","id":"376e30756f317030","timestamp":96787737694,"duration":2016,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"63397176767a6235","name":"webpack-compilation-optimize-modules","id":"6434627737306138","timestamp":96787739759,"duration":19,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"63397176767a6235","name":"webpack-compilation-optimize-chunks","id":"3839796d6b307077","timestamp":96787739794,"duration":37,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"63397176767a6235","name":"webpack-compilation-optimize-tree","id":"7a3133683176306b","timestamp":96787739858,"duration":11,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"63397176767a6235","name":"webpack-compilation-optimize","id":"63346d70326d6a6a","timestamp":96787739745,"duration":168,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"63397176767a6235","name":"webpack-compilation-hash","id":"7669646e7370317a","timestamp":96787752110,"duration":5943,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"67677a7267396d76","name":"read-resource","id":"3971706e6f726b38","timestamp":96787730042,"duration":135549,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"737a687965636563","name":"build-module-js","id":"67677a7267396d76","timestamp":96787729943,"duration":140693,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\platform\\platform.js"}},{"traceId":"a40c92b03843b256","parentId":"767079627877346c","name":"read-resource","id":"6b6e78316a743635","timestamp":96787735225,"duration":136008,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"737a687965636563","name":"build-module-js","id":"767079627877346c","timestamp":96787735131,"duration":136786,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\css.escape\\css.escape.js"}},{"traceId":"a40c92b03843b256","parentId":"63397176767a6235","name":"NextJsBuildManifest-createassets","id":"6c6b317379637830","timestamp":96787873360,"duration":100,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"63397176767a6235","name":"webpack-compilation-seal","id":"306e726a64376c61","timestamp":96787737487,"duration":136532,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-compilation","id":"63397176767a6235","timestamp":96782109561,"duration":5764579,"tags":{"name":"client"}},{"traceId":"a40c92b03843b256","parentId":"777967736f653366","name":"read-resource","id":"373734307a703975","timestamp":96787872184,"duration":22201,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a766476346e6a75","name":"get-options","id":"3167777578346c64","timestamp":96787894435,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d77343272377030","name":"babel-turbo-get-config","id":"3075633637743778","timestamp":96787894445,"duration":15,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d77343272377030","name":"babel-turbo-normalize-file","id":"797974366574676e","timestamp":96787894463,"duration":466,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"71676f6367306b75","name":"babel-turbo-traverse","id":"6c386e6b76737379","timestamp":96787895342,"duration":794,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d77343272377030","name":"babel-turbo-transform","id":"71676f6367306b75","timestamp":96787894936,"duration":1210,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d77343272377030","name":"babel-turbo-generate","id":"77643668756d6963","timestamp":96787896156,"duration":247,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a766476346e6a75","name":"next-babel-turbo-transform","id":"6d77343272377030","timestamp":96787894443,"duration":1962,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"777967736f653366","name":"next-babel-turbo-loader","id":"7a766476346e6a75","timestamp":96787894430,"duration":1991,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6636757363673037","name":"build-module-js","id":"777967736f653366","timestamp":96787872087,"duration":24932,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\strip-ansi\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"emit","id":"387a6a7075786630","timestamp":96787874227,"duration":75859,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"67306e79786a6a78","name":"read-resource","id":"39733231636a6b6d","timestamp":96788428023,"duration":864,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7673327339776138","name":"get-options","id":"6d68696767787338","timestamp":96788428984,"duration":9,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"30356c6f70396b6a","name":"babel-turbo-get-config","id":"6168653239713038","timestamp":96788428999,"duration":21,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"30356c6f70396b6a","name":"babel-turbo-normalize-file","id":"6e76733337757a61","timestamp":96788429023,"duration":1698,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79626d69797a7162","name":"babel-turbo-traverse","id":"706b333470346772","timestamp":96788431632,"duration":3505,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"30356c6f70396b6a","name":"babel-turbo-transform","id":"79626d69797a7162","timestamp":96788430770,"duration":4388,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"30356c6f70396b6a","name":"babel-turbo-generate","id":"64306b7a35717675","timestamp":96788435197,"duration":769,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7673327339776138","name":"next-babel-turbo-transform","id":"30356c6f70396b6a","timestamp":96788428996,"duration":6979,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"67306e79786a6a78","name":"next-babel-turbo-loader","id":"7673327339776138","timestamp":96788428978,"duration":7028,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"777967736f653366","name":"build-module-js","id":"67306e79786a6a78","timestamp":96788427588,"duration":10684,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\ansi-regex\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"667832386a79676e","name":"add-entry","id":"337a7875786a6132","timestamp":96782242332,"duration":6196151,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"make","id":"6f307038636c326a","timestamp":96782242050,"duration":6196630,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"667832386a79676e","name":"webpack-compilation-chunk-graph","id":"7675303061727966","timestamp":96788440191,"duration":3051,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"667832386a79676e","name":"webpack-compilation-optimize-modules","id":"366e746472396533","timestamp":96788443313,"duration":158,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"667832386a79676e","name":"webpack-compilation-optimize-chunks","id":"667133327874386f","timestamp":96788443499,"duration":189,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"667832386a79676e","name":"webpack-compilation-optimize-tree","id":"336e74366b646634","timestamp":96788443761,"duration":24,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"667832386a79676e","name":"webpack-compilation-optimize","id":"786d3974346f6534","timestamp":96788443295,"duration":583,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"667832386a79676e","name":"webpack-compilation-hash","id":"6132396775377461","timestamp":96788457274,"duration":6109,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"667832386a79676e","name":"NextJsBuildManifest-createassets","id":"366f726e75626572","timestamp":96788559435,"duration":55,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"667832386a79676e","name":"webpack-compilation-seal","id":"7537716c37786b65","timestamp":96788439973,"duration":119930,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-compilation","id":"667832386a79676e","timestamp":96782240822,"duration":6319135,"tags":{"name":"client"}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"emit","id":"7036397339753978","timestamp":96788560144,"duration":52699,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69346b7a6e6c3368","name":"add-entry","id":"75386c6e70767a69","timestamp":96802008935,"duration":50146,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"69346b7a6e6c3368","name":"add-entry","id":"61667275356f396a","timestamp":96802009054,"duration":51514,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=private-next-pages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"69346b7a6e6c3368","name":"add-entry","id":"756e726c36686b38","timestamp":96802009062,"duration":51512,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Cnode_modules%5Cnext%5Cdist%5Cpages%5C_error.js!"}},{"traceId":"a40c92b03843b256","parentId":"69346b7a6e6c3368","name":"add-entry","id":"696a663475327038","timestamp":96802009043,"duration":51831,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"69346b7a6e6c3368","name":"add-entry","id":"6b73796c7a667234","timestamp":96802009012,"duration":58189,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"}},{"traceId":"a40c92b03843b256","parentId":"7965676e36343233","name":"read-resource","id":"6833656431797478","timestamp":96802064429,"duration":5739,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"386379616d39396f","name":"get-options","id":"636733336178397a","timestamp":96802070230,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f71706136323071","name":"babel-turbo-get-config","id":"7862313536376c62","timestamp":96802070242,"duration":16,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f71706136323071","name":"babel-turbo-normalize-file","id":"626b616c626e696d","timestamp":96802070262,"duration":2391,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"30626162616f7436","name":"babel-turbo-traverse","id":"7a653139386a6a79","timestamp":96802073420,"duration":33414,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f71706136323071","name":"babel-turbo-transform","id":"30626162616f7436","timestamp":96802072680,"duration":34168,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f71706136323071","name":"babel-turbo-generate","id":"3832326c67317474","timestamp":96802106875,"duration":2206,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"386379616d39396f","name":"next-babel-turbo-transform","id":"6f71706136323071","timestamp":96802070239,"duration":38847,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7965676e36343233","name":"next-babel-turbo-loader","id":"386379616d39396f","timestamp":96802070224,"duration":38882,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69346b7a6e6c3368","name":"build-module-js","id":"7965676e36343233","timestamp":96802064142,"duration":48881,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\pages\\_app.js"}},{"traceId":"a40c92b03843b256","parentId":"69346b7a6e6c3368","name":"add-entry","id":"307a677764307671","timestamp":96802009023,"duration":105292,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"77796138686c6a71","name":"read-resource","id":"3931676177306f31","timestamp":96802220988,"duration":10370,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"67356a6a33666135","name":"get-options","id":"6e326a666a753765","timestamp":96802231431,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a69306f73746237","name":"babel-turbo-get-config","id":"316171713232677a","timestamp":96802231446,"duration":24,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a69306f73746237","name":"babel-turbo-normalize-file","id":"386f77367637777a","timestamp":96802231473,"duration":1568,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a633972786d3974","name":"babel-turbo-traverse","id":"7366366437317930","timestamp":96802234208,"duration":9388,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a69306f73746237","name":"babel-turbo-transform","id":"6a633972786d3974","timestamp":96802233073,"duration":10540,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a69306f73746237","name":"babel-turbo-generate","id":"656e697a636a3769","timestamp":96802243635,"duration":1197,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"67356a6a33666135","name":"next-babel-turbo-transform","id":"7a69306f73746237","timestamp":96802231441,"duration":13399,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"77796138686c6a71","name":"next-babel-turbo-loader","id":"67356a6a33666135","timestamp":96802231424,"duration":13438,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7965676e36343233","name":"build-module-jsx","id":"77796138686c6a71","timestamp":96802220816,"duration":26648,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\cursor\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"637663716471666f","name":"read-resource","id":"376779316f6c6171","timestamp":96802221323,"duration":26230,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"78396d7075633038","name":"get-options","id":"6574387a6e657376","timestamp":96802247602,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"343467766b356c72","name":"babel-turbo-get-config","id":"35357a6e33357332","timestamp":96802247615,"duration":18,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"343467766b356c72","name":"babel-turbo-normalize-file","id":"6c366b626c746b39","timestamp":96802247637,"duration":1613,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"63346361366d786e","name":"babel-turbo-traverse","id":"7968636b69706a37","timestamp":96802250557,"duration":10106,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"343467766b356c72","name":"babel-turbo-transform","id":"63346361366d786e","timestamp":96802249279,"duration":11399,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"343467766b356c72","name":"babel-turbo-generate","id":"787a73703772666c","timestamp":96802260699,"duration":1120,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"78396d7075633038","name":"next-babel-turbo-transform","id":"343467766b356c72","timestamp":96802247612,"duration":14214,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"637663716471666f","name":"next-babel-turbo-loader","id":"78396d7075633038","timestamp":96802247596,"duration":14254,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7965676e36343233","name":"build-module-jsx","id":"637663716471666f","timestamp":96802221036,"duration":42635,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\scrollToTop\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"787a6168736a3873","name":"read-resource","id":"736c316774727375","timestamp":96802223458,"duration":58191,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"326a34333365726f","name":"get-options","id":"7076696a6735776c","timestamp":96802281755,"duration":7,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37796c6468383767","name":"babel-turbo-get-config","id":"6238626577663777","timestamp":96802281770,"duration":27,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37796c6468383767","name":"babel-turbo-normalize-file","id":"666477787432386c","timestamp":96802281803,"duration":2852,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d736f6361756a6a","name":"babel-turbo-traverse","id":"7630767776683032","timestamp":96802288925,"duration":23993,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37796c6468383767","name":"babel-turbo-transform","id":"6d736f6361756a6a","timestamp":96802284750,"duration":28191,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37796c6468383767","name":"babel-turbo-generate","id":"3377336d6a6b7361","timestamp":96802312970,"duration":1859,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"326a34333365726f","name":"next-babel-turbo-transform","id":"37796c6468383767","timestamp":96802281766,"duration":33071,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"787a6168736a3873","name":"next-babel-turbo-loader","id":"326a34333365726f","timestamp":96802281747,"duration":33114,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7965676e36343233","name":"build-module-jsx","id":"787a6168736a3873","timestamp":96802223275,"duration":95222,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Loading-Screen\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"336e35786a387a36","name":"read-resource","id":"686339386c696379","timestamp":96802224302,"duration":95044,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3575666e7575756a","name":"postcss-process","id":"6c64303432747472","timestamp":96802319500,"duration":15672,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"336e35786a387a36","name":"postcss-loader","id":"3575666e7575756a","timestamp":96802319417,"duration":16235,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"336e35786a387a36","name":"css-loader","id":"6379387873746a71","timestamp":96802335908,"duration":6107,"tags":{"astUsed":"true"}},{"traceId":"a40c92b03843b256","parentId":"69346b7a6e6c3368","name":"build-module-css","id":"336e35786a387a36","timestamp":96802224108,"duration":118893,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\css-loader\\src\\index.js??ruleSet[1].rules[2].oneOf[9].use[1]!C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\postcss-loader\\src\\index.js??ruleSet[1].rules[2].oneOf[9].use[2]!C:\\Users\\hp\\Desktop\\business-hub\\src\\styles\\preloader.css"}},{"traceId":"a40c92b03843b256","parentId":"6d6a773479743932","name":"read-resource","id":"746a647632373962","timestamp":96802225544,"duration":117528,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3368646d74703275","name":"normalize-source-map","id":"34316c376c6f6165","timestamp":96802416738,"duration":211,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3368646d74703275","name":"postcss-process","id":"686d316d76676474","timestamp":96802416975,"duration":9979,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d6a773479743932","name":"postcss-loader","id":"3368646d74703275","timestamp":96802416707,"duration":10594,"tags":{}}] +[{"traceId":"a40c92b03843b256","parentId":"6d6a773479743932","name":"css-loader","id":"7a747a756c323037","timestamp":96802427849,"duration":4279,"tags":{"astUsed":"true"}},{"traceId":"a40c92b03843b256","parentId":"69346b7a6e6c3368","name":"build-module-scss","id":"6d6a773479743932","timestamp":96802224797,"duration":209497,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\css-loader\\src\\index.js??ruleSet[1].rules[2].oneOf[10].use[1]!C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\postcss-loader\\src\\index.js??ruleSet[1].rules[2].oneOf[10].use[2]!C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\compiled\\resolve-url-loader\\index.js??ruleSet[1].rules[2].oneOf[10].use[3]!C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\compiled\\sass-loader\\cjs.js??ruleSet[1].rules[2].oneOf[10].use[4]!C:\\Users\\hp\\Desktop\\business-hub\\src\\styles\\main.scss"}},{"traceId":"a40c92b03843b256","parentId":"616537786f75387a","name":"read-resource","id":"6473306c34686d33","timestamp":96802438793,"duration":2028,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"616d317a63686864","name":"get-options","id":"6769683475323168","timestamp":96802440899,"duration":7,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3067386272347239","name":"babel-turbo-get-config","id":"73617937796e326a","timestamp":96802440915,"duration":21,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3067386272347239","name":"babel-turbo-normalize-file","id":"376b3079617a7732","timestamp":96802440939,"duration":8224,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a6230356f676438","name":"babel-turbo-traverse","id":"7078383732693537","timestamp":96802450400,"duration":51090,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3067386272347239","name":"babel-turbo-transform","id":"6a6230356f676438","timestamp":96802449199,"duration":52309,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3067386272347239","name":"babel-turbo-generate","id":"33367a3970736172","timestamp":96802501538,"duration":2057,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"616d317a63686864","name":"next-babel-turbo-transform","id":"3067386272347239","timestamp":96802440910,"duration":62696,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"616537786f75387a","name":"next-babel-turbo-loader","id":"616d317a63686864","timestamp":96802440890,"duration":62743,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"637663716471666f","name":"build-module-js","id":"616537786f75387a","timestamp":96802438155,"duration":68979,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\common\\scrollToTop.js"}},{"traceId":"a40c92b03843b256","parentId":"6f7739317832726e","name":"read-resource","id":"32746a3533367a34","timestamp":96802439397,"duration":67844,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"763372326c743368","name":"get-options","id":"6570693974627564","timestamp":96802507448,"duration":9,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"676e6f3132367230","name":"babel-turbo-get-config","id":"6d656d376c36666a","timestamp":96802507467,"duration":25,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"676e6f3132367230","name":"babel-turbo-normalize-file","id":"6535653461667162","timestamp":96802507497,"duration":2754,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"34797430386e7579","name":"babel-turbo-traverse","id":"7a66633768613631","timestamp":96802511765,"duration":15472,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"676e6f3132367230","name":"babel-turbo-transform","id":"34797430386e7579","timestamp":96802510294,"duration":16958,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"676e6f3132367230","name":"babel-turbo-generate","id":"69386a3061336b76","timestamp":96802527284,"duration":1840,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"763372326c743368","name":"next-babel-turbo-transform","id":"676e6f3132367230","timestamp":96802507463,"duration":21672,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f7739317832726e","name":"next-babel-turbo-loader","id":"763372326c743368","timestamp":96802507439,"duration":21726,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"77796138686c6a71","name":"build-module-js","id":"6f7739317832726e","timestamp":96802439283,"duration":91809,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\common\\mouseEffect.js"}},{"traceId":"a40c92b03843b256","parentId":"6a34316b6e366373","name":"read-resource","id":"7139703177663473","timestamp":96802439067,"duration":92115,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"617771636a736437","name":"get-options","id":"7269767966326a35","timestamp":96802531290,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"77677238786d6f74","name":"babel-turbo-get-config","id":"616d6871626e346d","timestamp":96802531303,"duration":21,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"77677238786d6f74","name":"babel-turbo-normalize-file","id":"63646d6335387571","timestamp":96802531327,"duration":1632,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"32687a6830773038","name":"babel-turbo-traverse","id":"6d71343070693867","timestamp":96802533891,"duration":4203,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"77677238786d6f74","name":"babel-turbo-transform","id":"32687a6830773038","timestamp":96802532996,"duration":5116,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"77677238786d6f74","name":"babel-turbo-generate","id":"72366b6b33697569","timestamp":96802538140,"duration":1164,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"617771636a736437","name":"next-babel-turbo-transform","id":"77677238786d6f74","timestamp":96802531299,"duration":8015,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a34316b6e366373","name":"next-babel-turbo-loader","id":"617771636a736437","timestamp":96802531282,"duration":8061,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"787a6168736a3873","name":"build-module-js","id":"6a34316b6e366373","timestamp":96802438915,"duration":101648,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\common\\loadingPace.js"}},{"traceId":"a40c92b03843b256","parentId":"6d73643267656c30","name":"read-resource","id":"3334777a3970387a","timestamp":96802542072,"duration":566,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"787a6168736a3873","name":"build-module-json","id":"6d73643267656c30","timestamp":96802541961,"duration":1437,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\data\\app.json"}},{"traceId":"a40c92b03843b256","parentId":"69346b7a6e6c3368","name":"add-entry","id":"6f67656a67397867","timestamp":96802009032,"duration":534483,"tags":{"request":"next-client-pages-loader?page=%2F_app&absolutePagePath=private-next-pages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"33777767656b7730","name":"make","id":"6336726939636479","timestamp":96802001198,"duration":542362,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69346b7a6e6c3368","name":"webpack-compilation-chunk-graph","id":"353278367635346f","timestamp":96802544978,"duration":2570,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69346b7a6e6c3368","name":"webpack-compilation-optimize-modules","id":"73346d3438377434","timestamp":96802547624,"duration":42,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69346b7a6e6c3368","name":"webpack-compilation-optimize-chunks","id":"6a787463336f3671","timestamp":96802547693,"duration":58,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69346b7a6e6c3368","name":"webpack-compilation-optimize-tree","id":"32306c7169343669","timestamp":96802547791,"duration":16,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69346b7a6e6c3368","name":"webpack-compilation-optimize","id":"3273793234337763","timestamp":96802547602,"duration":818,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69346b7a6e6c3368","name":"webpack-compilation-hash","id":"356568776e79706d","timestamp":96802570886,"duration":5254,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69346b7a6e6c3368","name":"NextJsBuildManifest-generateClientManifest","id":"666732686978637a","timestamp":96802585589,"duration":116,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69346b7a6e6c3368","name":"NextJsBuildManifest-createassets","id":"7772637879657338","timestamp":96802585470,"duration":249,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69346b7a6e6c3368","name":"webpack-compilation-seal","id":"6237706430683865","timestamp":96802544335,"duration":42251,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"33777767656b7730","name":"webpack-compilation","id":"69346b7a6e6c3368","timestamp":96802000665,"duration":585974,"tags":{"name":"client"}},{"traceId":"a40c92b03843b256","parentId":"33777767656b7730","name":"emit","id":"7934777a67333973","timestamp":96802586695,"duration":30247,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-client","id":"33777767656b7730","timestamp":96801993143,"duration":625457,"tags":{"trigger":"C:\\Users\\hp\\Desktop\\business-hub\\src\\pages\\_app.js"}},{"traceId":"a40c92b03843b256","parentId":"38757937786d756a","name":"add-entry","id":"3570336a73637176","timestamp":96802633860,"duration":18484,"tags":{"request":"private-next-pages/_error"}},{"traceId":"a40c92b03843b256","parentId":"38757937786d756a","name":"add-entry","id":"6b696569316b6f67","timestamp":96802633870,"duration":18489,"tags":{"request":"./node_modules\\next\\dist\\pages\\_error.js"}},{"traceId":"a40c92b03843b256","parentId":"38757937786d756a","name":"add-entry","id":"386f616133386f6a","timestamp":96802633846,"duration":19315,"tags":{"request":"private-next-pages/_document"}},{"traceId":"a40c92b03843b256","parentId":"616161366368736f","name":"read-resource","id":"6878677078763471","timestamp":96802651058,"duration":2455,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"78396867626f706b","name":"get-options","id":"6867326173387164","timestamp":96802653568,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"776731707978617a","name":"babel-turbo-get-config","id":"6b316c6971773136","timestamp":96802653581,"duration":15,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"776731707978617a","name":"babel-turbo-normalize-file","id":"7036627932616a72","timestamp":96802653630,"duration":1620,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3238376233367165","name":"babel-turbo-traverse","id":"37306b6d72706f68","timestamp":96802655588,"duration":19233,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"776731707978617a","name":"babel-turbo-transform","id":"3238376233367165","timestamp":96802655288,"duration":19547,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"776731707978617a","name":"babel-turbo-generate","id":"7134786a6a31306b","timestamp":96802674861,"duration":2225,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"78396867626f706b","name":"next-babel-turbo-transform","id":"776731707978617a","timestamp":96802653577,"duration":23519,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"616161366368736f","name":"next-babel-turbo-loader","id":"78396867626f706b","timestamp":96802653562,"duration":23563,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"38757937786d756a","name":"build-module-js","id":"616161366368736f","timestamp":96802650734,"duration":29430,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\pages\\_app.js"}},{"traceId":"a40c92b03843b256","parentId":"68666b666a7a7078","name":"read-resource","id":"696170756f31386f","timestamp":96802692427,"duration":6930,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"616161366368736f","name":"build-module-scss","id":"68666b666a7a7078","timestamp":96802692358,"duration":7386,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\styles\\main.scss"}},{"traceId":"a40c92b03843b256","parentId":"796d39366b30696a","name":"read-resource","id":"75367a7162796463","timestamp":96802692280,"duration":7510,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"616161366368736f","name":"build-module-css","id":"796d39366b30696a","timestamp":96802692121,"duration":7812,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\styles\\preloader.css"}},{"traceId":"a40c92b03843b256","parentId":"62796f31347a776b","name":"read-resource","id":"776f72326979397a","timestamp":96802701204,"duration":635,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6136397639626e34","name":"get-options","id":"3833636e30767a38","timestamp":96802701912,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"737a313163316261","name":"babel-turbo-get-config","id":"786c736435393733","timestamp":96802701925,"duration":20,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"737a313163316261","name":"babel-turbo-normalize-file","id":"66756b6f6c673962","timestamp":96802701948,"duration":885,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"33366a30736c6930","name":"babel-turbo-traverse","id":"62696f7635636973","timestamp":96802703113,"duration":2537,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"737a313163316261","name":"babel-turbo-transform","id":"33366a30736c6930","timestamp":96802702865,"duration":2797,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"737a313163316261","name":"babel-turbo-generate","id":"7868696b6b377737","timestamp":96802705682,"duration":694,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6136397639626e34","name":"next-babel-turbo-transform","id":"737a313163316261","timestamp":96802701922,"duration":4461,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"62796f31347a776b","name":"next-babel-turbo-loader","id":"6136397639626e34","timestamp":96802701905,"duration":4499,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"616161366368736f","name":"build-module-jsx","id":"62796f31347a776b","timestamp":96802700967,"duration":6593,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\cursor\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"3530707264726874","name":"read-resource","id":"313375366d616d35","timestamp":96802701335,"duration":6293,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3168787164343763","name":"get-options","id":"3831687876696e67","timestamp":96802707672,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37787374657a3875","name":"babel-turbo-get-config","id":"39366f6172766434","timestamp":96802707685,"duration":16,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37787374657a3875","name":"babel-turbo-normalize-file","id":"6d7161356a643573","timestamp":96802707703,"duration":886,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"36796f6770647767","name":"babel-turbo-traverse","id":"673830643775346d","timestamp":96802708851,"duration":3056,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37787374657a3875","name":"babel-turbo-transform","id":"36796f6770647767","timestamp":96802708617,"duration":3304,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37787374657a3875","name":"babel-turbo-generate","id":"736c6e6b71316438","timestamp":96802711947,"duration":820,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3168787164343763","name":"next-babel-turbo-transform","id":"37787374657a3875","timestamp":96802707681,"duration":5094,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3530707264726874","name":"next-babel-turbo-loader","id":"3168787164343763","timestamp":96802707666,"duration":5138,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"616161366368736f","name":"build-module-jsx","id":"3530707264726874","timestamp":96802701268,"duration":12383,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\scrollToTop\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"336662736f78637a","name":"read-resource","id":"656d323270376469","timestamp":96802701408,"duration":12614,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6461777a6f353179","name":"get-options","id":"7532366877733478","timestamp":96802714099,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"696b7a7577656f70","name":"babel-turbo-get-config","id":"327263396b777771","timestamp":96802714111,"duration":13,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"696b7a7577656f70","name":"babel-turbo-normalize-file","id":"35376672796f7169","timestamp":96802714127,"duration":1442,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3634713367317437","name":"babel-turbo-traverse","id":"306769656a676172","timestamp":96802715841,"duration":13253,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"696b7a7577656f70","name":"babel-turbo-transform","id":"3634713367317437","timestamp":96802715599,"duration":13510,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"696b7a7577656f70","name":"babel-turbo-generate","id":"3568346a62373864","timestamp":96802729140,"duration":1913,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6461777a6f353179","name":"next-babel-turbo-transform","id":"696b7a7577656f70","timestamp":96802714108,"duration":16953,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"336662736f78637a","name":"next-babel-turbo-loader","id":"6461777a6f353179","timestamp":96802714057,"duration":17027,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"616161366368736f","name":"build-module-jsx","id":"336662736f78637a","timestamp":96802701356,"duration":36368,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Loading-Screen\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"646e366f72373669","name":"read-resource","id":"7062743176713835","timestamp":96802742867,"duration":2589,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"65377963736a7461","name":"get-options","id":"746a367a6e73396e","timestamp":96802745531,"duration":8,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"736e6e6739307577","name":"babel-turbo-get-config","id":"6b6a743477736339","timestamp":96802745549,"duration":40,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"736e6e6739307577","name":"babel-turbo-normalize-file","id":"6d7138617175756d","timestamp":96802745603,"duration":1262,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7735756473626f36","name":"babel-turbo-traverse","id":"71633165657a7764","timestamp":96802747194,"duration":2378,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"736e6e6739307577","name":"babel-turbo-transform","id":"7735756473626f36","timestamp":96802746919,"duration":2676,"tags":{}}] +[{"traceId":"a40c92b03843b256","parentId":"736e6e6739307577","name":"babel-turbo-generate","id":"7738707334697168","timestamp":96802750048,"duration":991,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"65377963736a7461","name":"next-babel-turbo-transform","id":"736e6e6739307577","timestamp":96802745544,"duration":5502,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"646e366f72373669","name":"next-babel-turbo-loader","id":"65377963736a7461","timestamp":96802745524,"duration":5552,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"336662736f78637a","name":"build-module-js","id":"646e366f72373669","timestamp":96802742688,"duration":11410,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\common\\loadingPace.js"}},{"traceId":"a40c92b03843b256","parentId":"6278617573643936","name":"read-resource","id":"7036706763716566","timestamp":96802743052,"duration":11149,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3737313574617370","name":"get-options","id":"76656c6b32733770","timestamp":96802754323,"duration":52,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37616b3234613465","name":"babel-turbo-get-config","id":"7374786a3366306e","timestamp":96802754395,"duration":27,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37616b3234613465","name":"babel-turbo-normalize-file","id":"646365616c6e6e69","timestamp":96802754425,"duration":2094,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7330356c68696d6c","name":"babel-turbo-traverse","id":"6875767934356f37","timestamp":96802756809,"duration":2699,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37616b3234613465","name":"babel-turbo-transform","id":"7330356c68696d6c","timestamp":96802756556,"duration":2972,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37616b3234613465","name":"babel-turbo-generate","id":"767878306f636865","timestamp":96802759551,"duration":1138,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3737313574617370","name":"next-babel-turbo-transform","id":"37616b3234613465","timestamp":96802754389,"duration":6308,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6278617573643936","name":"next-babel-turbo-loader","id":"3737313574617370","timestamp":96802754314,"duration":6404,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3530707264726874","name":"build-module-js","id":"6278617573643936","timestamp":96802742992,"duration":19962,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\common\\scrollToTop.js"}},{"traceId":"a40c92b03843b256","parentId":"3161626777777534","name":"read-resource","id":"63677532776b6e73","timestamp":96802742973,"duration":20075,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"377a6c7730367361","name":"get-options","id":"6d6f6d3165337933","timestamp":96802763129,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6d333674333630","name":"babel-turbo-get-config","id":"64656b6b6869616f","timestamp":96802763142,"duration":18,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6d333674333630","name":"babel-turbo-normalize-file","id":"7077616c7835766c","timestamp":96802763173,"duration":1802,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"763331326675647a","name":"babel-turbo-traverse","id":"72616f6663323666","timestamp":96802765226,"duration":3157,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6d333674333630","name":"babel-turbo-transform","id":"763331326675647a","timestamp":96802765003,"duration":3393,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6d333674333630","name":"babel-turbo-generate","id":"33377162766f6365","timestamp":96802768415,"duration":1207,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"377a6c7730367361","name":"next-babel-turbo-transform","id":"7a6d333674333630","timestamp":96802763138,"duration":6490,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3161626777777534","name":"next-babel-turbo-loader","id":"377a6c7730367361","timestamp":96802763090,"duration":6563,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"62796f31347a776b","name":"build-module-js","id":"3161626777777534","timestamp":96802742920,"duration":28808,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\common\\mouseEffect.js"}},{"traceId":"a40c92b03843b256","parentId":"343937736b796378","name":"read-resource","id":"726234646e647979","timestamp":96802744910,"duration":27685,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"336662736f78637a","name":"build-module-json","id":"343937736b796378","timestamp":96802744792,"duration":28016,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\data\\app.json"}},{"traceId":"a40c92b03843b256","parentId":"38757937786d756a","name":"add-entry","id":"6e786f726b356174","timestamp":96802633658,"duration":139213,"tags":{"request":"private-next-pages/_app"}},{"traceId":"a40c92b03843b256","parentId":"676b6468616e7431","name":"make","id":"6b6e343762766a79","timestamp":96802621122,"duration":151781,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"38757937786d756a","name":"webpack-compilation-chunk-graph","id":"6431627176397374","timestamp":96802773456,"duration":400,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"38757937786d756a","name":"webpack-compilation-optimize-modules","id":"656d32666c326164","timestamp":96802773894,"duration":7,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"38757937786d756a","name":"webpack-compilation-optimize-chunks","id":"6c70346c38773930","timestamp":96802773923,"duration":41,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"38757937786d756a","name":"webpack-compilation-optimize-tree","id":"786762726a316466","timestamp":96802773993,"duration":7,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"38757937786d756a","name":"webpack-compilation-optimize","id":"6871376a75303374","timestamp":96802773879,"duration":228,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"38757937786d756a","name":"webpack-compilation-hash","id":"7266757067397133","timestamp":96802777102,"duration":1365,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"38757937786d756a","name":"webpack-compilation-seal","id":"6c30717a6d707777","timestamp":96802773283,"duration":10800,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"676b6468616e7431","name":"webpack-compilation","id":"38757937786d756a","timestamp":96802620702,"duration":163431,"tags":{"name":"server"}},{"traceId":"a40c92b03843b256","parentId":"676b6468616e7431","name":"emit","id":"3334673677707139","timestamp":96802784175,"duration":11644,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-server","id":"676b6468616e7431","timestamp":96801994050,"duration":802863,"tags":{"trigger":"C:\\Users\\hp\\Desktop\\business-hub\\src\\pages\\_app.js"}}] +[{"traceId":"a40c92b03843b256","parentId":"3872747075687939","name":"add-entry","id":"64376a616f776461","timestamp":96802804780,"duration":8608,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"3872747075687939","name":"add-entry","id":"7473633364646378","timestamp":96802804990,"duration":9458,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=private-next-pages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"3872747075687939","name":"add-entry","id":"3861786d75753468","timestamp":96802805007,"duration":9451,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Cnode_modules%5Cnext%5Cdist%5Cpages%5C_error.js!"}},{"traceId":"a40c92b03843b256","parentId":"3872747075687939","name":"add-entry","id":"3471777762657138","timestamp":96802804979,"duration":9673,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"3872747075687939","name":"add-entry","id":"6d66353875657573","timestamp":96802804910,"duration":10282,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"}},{"traceId":"a40c92b03843b256","parentId":"3872747075687939","name":"add-entry","id":"7a6f356c666b6577","timestamp":96802804968,"duration":10344,"tags":{"request":"next-client-pages-loader?page=%2F_app&absolutePagePath=private-next-pages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"6c30776b76703930","name":"read-resource","id":"70356b7071616837","timestamp":96802814262,"duration":1759,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"63737a35796e376e","name":"get-options","id":"7977616663676863","timestamp":96802816078,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"336b677973357672","name":"babel-turbo-get-config","id":"6c6f30353675386e","timestamp":96802816121,"duration":18,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"336b677973357672","name":"babel-turbo-normalize-file","id":"6e76303738766d6d","timestamp":96802816142,"duration":1825,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"70326b6367387a76","name":"babel-turbo-traverse","id":"6332773770733530","timestamp":96802818704,"duration":15404,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"336b677973357672","name":"babel-turbo-transform","id":"70326b6367387a76","timestamp":96802818004,"duration":16121,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"336b677973357672","name":"babel-turbo-generate","id":"62303562336c3031","timestamp":96802834143,"duration":1747,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"63737a35796e376e","name":"next-babel-turbo-transform","id":"336b677973357672","timestamp":96802816117,"duration":19778,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c30776b76703930","name":"next-babel-turbo-loader","id":"63737a35796e376e","timestamp":96802816072,"duration":19844,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3872747075687939","name":"build-module-jsx","id":"6c30776b76703930","timestamp":96802814051,"duration":25941,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\pages\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"3872747075687939","name":"add-entry","id":"6a306b346f74356b","timestamp":96802804955,"duration":37390,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"747a6f6b3136347a","name":"read-resource","id":"6b64727069787175","timestamp":96802848034,"duration":45681,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6675763770796c34","name":"get-options","id":"7237387161703476","timestamp":96802893777,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"756d79766b657174","name":"babel-turbo-get-config","id":"676f35636b34356a","timestamp":96802893819,"duration":20,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"756d79766b657174","name":"babel-turbo-normalize-file","id":"6b766666666c6262","timestamp":96802893843,"duration":2088,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6970776c67397279","name":"babel-turbo-traverse","id":"7878646965733278","timestamp":96802897371,"duration":12990,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"756d79766b657174","name":"babel-turbo-transform","id":"6970776c67397279","timestamp":96802896080,"duration":14294,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"756d79766b657174","name":"babel-turbo-generate","id":"7961747562613963","timestamp":96802910396,"duration":2011,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6675763770796c34","name":"next-babel-turbo-transform","id":"756d79766b657174","timestamp":96802893815,"duration":18601,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"747a6f6b3136347a","name":"next-babel-turbo-loader","id":"6675763770796c34","timestamp":96802893769,"duration":18675,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c30776b76703930","name":"build-module-jsx","id":"747a6f6b3136347a","timestamp":96802847888,"duration":67824,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\layouts\\Light.jsx"}},{"traceId":"a40c92b03843b256","parentId":"7362717831627736","name":"read-resource","id":"35796737706e6a78","timestamp":96802848348,"duration":67430,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766b386e37746d31","name":"get-options","id":"766a776631717034","timestamp":96802915820,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7570646b39326a6b","name":"babel-turbo-get-config","id":"6f66713339733233","timestamp":96802915832,"duration":20,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7570646b39326a6b","name":"babel-turbo-normalize-file","id":"6534757635766e77","timestamp":96802915855,"duration":4565,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a617037676a6232","name":"babel-turbo-traverse","id":"6c65737065796e76","timestamp":96802921561,"duration":115982,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7570646b39326a6b","name":"babel-turbo-transform","id":"6a617037676a6232","timestamp":96802920455,"duration":117103,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7570646b39326a6b","name":"babel-turbo-generate","id":"316e323239716833","timestamp":96803037578,"duration":4733,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766b386e37746d31","name":"next-babel-turbo-transform","id":"7570646b39326a6b","timestamp":96802915828,"duration":126490,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7362717831627736","name":"next-babel-turbo-loader","id":"766b386e37746d31","timestamp":96802915814,"duration":126528,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c30776b76703930","name":"build-module-jsx","id":"7362717831627736","timestamp":96802848297,"duration":199409,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Team\\team.jsx"}},{"traceId":"a40c92b03843b256","parentId":"7a306f327661756c","name":"read-resource","id":"6f6f316178746a64","timestamp":96802848132,"duration":199653,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f72746a6b61676d","name":"get-options","id":"74326c316f676464","timestamp":96803047874,"duration":7,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6938797961327261","name":"babel-turbo-get-config","id":"6364637a78747963","timestamp":96803047888,"duration":21,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6938797961327261","name":"babel-turbo-normalize-file","id":"39656f6a766b696d","timestamp":96803047912,"duration":2992,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6738726463616a77","name":"babel-turbo-traverse","id":"64316f6235753535","timestamp":96803051673,"duration":49514,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6938797961327261","name":"babel-turbo-transform","id":"6738726463616a77","timestamp":96803050934,"duration":50268,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6938797961327261","name":"babel-turbo-generate","id":"6b3173716e363133","timestamp":96803101232,"duration":3038,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f72746a6b61676d","name":"next-babel-turbo-transform","id":"6938797961327261","timestamp":96803047884,"duration":56394,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a306f327661756c","name":"next-babel-turbo-loader","id":"6f72746a6b61676d","timestamp":96803047867,"duration":56436,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c30776b76703930","name":"build-module-jsx","id":"7a306f327661756c","timestamp":96802848073,"duration":260866,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Navbar\\navbar.jsx"}},{"traceId":"a40c92b03843b256","parentId":"6d34676477677839","name":"read-resource","id":"626e746f35303738","timestamp":96802848205,"duration":260784,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"34696e7069613862","name":"get-options","id":"7230726d65777a35","timestamp":96803109043,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"34686761356b7830","name":"babel-turbo-get-config","id":"6639777a386e7238","timestamp":96803109055,"duration":20,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"34686761356b7830","name":"babel-turbo-normalize-file","id":"6a6762746c736167","timestamp":96803109077,"duration":4920,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"706c657171336c65","name":"babel-turbo-traverse","id":"6b6b79746375366e","timestamp":96803114639,"duration":131130,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"34686761356b7830","name":"babel-turbo-transform","id":"706c657171336c65","timestamp":96803114026,"duration":131761,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"34686761356b7830","name":"babel-turbo-generate","id":"6931317777746472","timestamp":96803245815,"duration":6276,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"34696e7069613862","name":"next-babel-turbo-transform","id":"34686761356b7830","timestamp":96803109052,"duration":143047,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d34676477677839","name":"next-babel-turbo-loader","id":"34696e7069613862","timestamp":96803109038,"duration":143084,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c30776b76703930","name":"build-module-jsx","id":"6d34676477677839","timestamp":96802848151,"duration":412468,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Full-testimonials\\full-testimonials.jsx"}},{"traceId":"a40c92b03843b256","parentId":"73376b626f6f6973","name":"read-resource","id":"757571326b633077","timestamp":96802848279,"duration":412396,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6663743065697632","name":"get-options","id":"687171716d326378","timestamp":96803260720,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"316a377170317338","name":"babel-turbo-get-config","id":"7862327769676379","timestamp":96803260765,"duration":18,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"316a377170317338","name":"babel-turbo-normalize-file","id":"6b346b3972686631","timestamp":96803260787,"duration":2472,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69693974346c3370","name":"babel-turbo-traverse","id":"7438796d79686875","timestamp":96803263909,"duration":69802,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"316a377170317338","name":"babel-turbo-transform","id":"69693974346c3370","timestamp":96803263288,"duration":70439,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"316a377170317338","name":"babel-turbo-generate","id":"6770306636343861","timestamp":96803333749,"duration":3402,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6663743065697632","name":"next-babel-turbo-transform","id":"316a377170317338","timestamp":96803260762,"duration":76398,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"73376b626f6f6973","name":"next-babel-turbo-loader","id":"6663743065697632","timestamp":96803260712,"duration":76474,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c30776b76703930","name":"build-module-jsx","id":"73376b626f6f6973","timestamp":96802848224,"duration":495598,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Footer\\footer.jsx"}},{"traceId":"a40c92b03843b256","parentId":"6633753671777176","name":"read-resource","id":"3568776a67746131","timestamp":96802848419,"duration":495454,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a653278796a6c6a","name":"get-options","id":"3561357672333479","timestamp":96803343921,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6866616261793669","name":"babel-turbo-get-config","id":"3777617639797964","timestamp":96803343932,"duration":20,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6866616261793669","name":"babel-turbo-normalize-file","id":"706d6f64716d3773","timestamp":96803343955,"duration":5724,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7830676e71637830","name":"babel-turbo-traverse","id":"3261353276616f75","timestamp":96803350364,"duration":157229,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6866616261793669","name":"babel-turbo-transform","id":"7830676e71637830","timestamp":96803349718,"duration":157889,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6866616261793669","name":"babel-turbo-generate","id":"67646868626e6d71","timestamp":96803507627,"duration":9015,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a653278796a6c6a","name":"next-babel-turbo-transform","id":"6866616261793669","timestamp":96803343929,"duration":172722,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6633753671777176","name":"next-babel-turbo-loader","id":"6a653278796a6c6a","timestamp":96803343916,"duration":172762,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c30776b76703930","name":"build-module-jsx","id":"6633753671777176","timestamp":96802848366,"duration":676401,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Works3\\works3.jsx"}},{"traceId":"a40c92b03843b256","parentId":"616e31646c766f6e","name":"read-resource","id":"3165696d63676f6d","timestamp":96802849139,"duration":680739,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7976686836746d31","name":"get-options","id":"6668626f62693768","timestamp":96803529950,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6161376831687973","name":"babel-turbo-get-config","id":"7173663635743437","timestamp":96803529963,"duration":19,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6161376831687973","name":"babel-turbo-normalize-file","id":"666a336430643165","timestamp":96803529986,"duration":1206,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"676a76623161737a","name":"babel-turbo-traverse","id":"65613336377a3065","timestamp":96803531874,"duration":18578,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6161376831687973","name":"babel-turbo-transform","id":"676a76623161737a","timestamp":96803531213,"duration":19266,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6161376831687973","name":"babel-turbo-generate","id":"326b36386c346478","timestamp":96803550502,"duration":1378,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7976686836746d31","name":"next-babel-turbo-transform","id":"6161376831687973","timestamp":96803529960,"duration":21926,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"616e31646c766f6e","name":"next-babel-turbo-loader","id":"7976686836746d31","timestamp":96803529942,"duration":21963,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c30776b76703930","name":"build-module-jsx","id":"616e31646c766f6e","timestamp":96802849086,"duration":704974,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Intro4\\intro4.jsx"}},{"traceId":"a40c92b03843b256","parentId":"696a7a7676767864","name":"read-resource","id":"796c74366e7a346e","timestamp":96802849209,"duration":704908,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7064736577306963","name":"get-options","id":"77323676796a3634","timestamp":96803554157,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"727076636b6d616c","name":"babel-turbo-get-config","id":"6e6633396b6d6d74","timestamp":96803554168,"duration":19,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"727076636b6d616c","name":"babel-turbo-normalize-file","id":"39657267626b3630","timestamp":96803554190,"duration":2207,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"78367467386a7534","name":"babel-turbo-traverse","id":"736d366e66306a65","timestamp":96803557220,"duration":69716,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"727076636b6d616c","name":"babel-turbo-transform","id":"78367467386a7534","timestamp":96803556431,"duration":70521,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"727076636b6d616c","name":"babel-turbo-generate","id":"357733706a777969","timestamp":96803626974,"duration":3792,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7064736577306963","name":"next-babel-turbo-transform","id":"727076636b6d616c","timestamp":96803554165,"duration":76609,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"696a7a7676767864","name":"next-babel-turbo-loader","id":"7064736577306963","timestamp":96803554152,"duration":76647,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c30776b76703930","name":"build-module-jsx","id":"696a7a7676767864","timestamp":96802849157,"duration":785761,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Services3\\services3.jsx"}},{"traceId":"a40c92b03843b256","parentId":"3874327568383432","name":"read-resource","id":"716d70683964706a","timestamp":96802849054,"duration":785933,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a7032327369366a","name":"get-options","id":"7761677978616174","timestamp":96803635032,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"35716e3463656e61","name":"babel-turbo-get-config","id":"3873747478663461","timestamp":96803635082,"duration":19,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"35716e3463656e61","name":"babel-turbo-normalize-file","id":"73386f34696c6771","timestamp":96803635105,"duration":1419,"tags":{}}] +[{"traceId":"a40c92b03843b256","parentId":"6d72673979376d63","name":"babel-turbo-traverse","id":"647a316537333137","timestamp":96803637636,"duration":27111,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"35716e3463656e61","name":"babel-turbo-transform","id":"6d72673979376d63","timestamp":96803636881,"duration":27881,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"35716e3463656e61","name":"babel-turbo-generate","id":"6c74766a616b656e","timestamp":96803664783,"duration":1530,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a7032327369366a","name":"next-babel-turbo-transform","id":"35716e3463656e61","timestamp":96803635076,"duration":31244,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3874327568383432","name":"next-babel-turbo-loader","id":"7a7032327369366a","timestamp":96803635026,"duration":31314,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c30776b76703930","name":"build-module-jsx","id":"3874327568383432","timestamp":96802848915,"duration":819530,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Call-to-action\\call-to-action.jsx"}},{"traceId":"a40c92b03843b256","parentId":"3066676b76376830","name":"read-resource","id":"3469627865356e39","timestamp":96802849284,"duration":819215,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7776616477326533","name":"get-options","id":"62306e6a6c7a6b68","timestamp":96803668538,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b70303966763979","name":"babel-turbo-get-config","id":"7037747867726136","timestamp":96803668548,"duration":17,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b70303966763979","name":"babel-turbo-normalize-file","id":"3039757079723079","timestamp":96803668569,"duration":1977,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"327a76626b653969","name":"babel-turbo-traverse","id":"3279633766726f32","timestamp":96803671159,"duration":60445,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b70303966763979","name":"babel-turbo-transform","id":"327a76626b653969","timestamp":96803670565,"duration":61053,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b70303966763979","name":"babel-turbo-generate","id":"6e71677566656c33","timestamp":96803731638,"duration":2846,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7776616477326533","name":"next-babel-turbo-transform","id":"6b70303966763979","timestamp":96803668545,"duration":65945,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3066676b76376830","name":"next-babel-turbo-loader","id":"7776616477326533","timestamp":96803668532,"duration":65979,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c30776b76703930","name":"build-module-jsx","id":"3066676b76376830","timestamp":96802849229,"duration":888594,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\About-us3\\about-us3.jsx"}},{"traceId":"a40c92b03843b256","parentId":"7a357579686d3162","name":"read-resource","id":"6b6d7a706c30706c","timestamp":96802849361,"duration":892504,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"356e396f74737778","name":"get-options","id":"38696b3779776837","timestamp":96803741919,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"62386e697135737a","name":"babel-turbo-get-config","id":"3538643861617567","timestamp":96803741933,"duration":17,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"62386e697135737a","name":"babel-turbo-normalize-file","id":"396a6c63676c326e","timestamp":96803741953,"duration":1501,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b39667831733131","name":"babel-turbo-traverse","id":"7a3070336a6a6263","timestamp":96803744101,"duration":32408,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"62386e697135737a","name":"babel-turbo-transform","id":"6b39667831733131","timestamp":96803743480,"duration":33044,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"62386e697135737a","name":"babel-turbo-generate","id":"716d6d7335617577","timestamp":96803776546,"duration":2250,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"356e396f74737778","name":"next-babel-turbo-transform","id":"62386e697135737a","timestamp":96803741929,"duration":36875,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a357579686d3162","name":"next-babel-turbo-loader","id":"356e396f74737778","timestamp":96803741913,"duration":36915,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c30776b76703930","name":"build-module-jsx","id":"7a357579686d3162","timestamp":96802849302,"duration":932032,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Minimal-Area2\\minimal-area2.jsx"}},{"traceId":"a40c92b03843b256","parentId":"32737a63386e336e","name":"read-resource","id":"6469737663687132","timestamp":96802892388,"duration":893297,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"63757a39787a3862","name":"get-options","id":"73616c6c62686161","timestamp":96803785774,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a34656275367879","name":"babel-turbo-get-config","id":"6d35776f3936757a","timestamp":96803785788,"duration":25,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a34656275367879","name":"babel-turbo-normalize-file","id":"6870787732306374","timestamp":96803785816,"duration":6693,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"71316d356c31706c","name":"babel-turbo-traverse","id":"6138633265367231","timestamp":96803793357,"duration":231912,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a34656275367879","name":"babel-turbo-transform","id":"71316d356c31706c","timestamp":96803792557,"duration":232776,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a34656275367879","name":"babel-turbo-generate","id":"776f6a316e783975","timestamp":96804025353,"duration":9610,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"63757a39787a3862","name":"next-babel-turbo-transform","id":"6a34656275367879","timestamp":96803785784,"duration":249189,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"32737a63386e336e","name":"next-babel-turbo-loader","id":"63757a39787a3862","timestamp":96803785739,"duration":249261,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c30776b76703930","name":"build-module-jsx","id":"32737a63386e336e","timestamp":96802892218,"duration":1149646,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\blogs\\Blogs4\\blogs4.jsx"}},{"traceId":"a40c92b03843b256","parentId":"743063786e63796d","name":"read-resource","id":"793563646e396c33","timestamp":96803739906,"duration":308604,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6339773331317269","name":"get-options","id":"3738336672766264","timestamp":96804048582,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"336768336f336f35","name":"babel-turbo-get-config","id":"72623539756e6d79","timestamp":96804048594,"duration":17,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"336768336f336f35","name":"babel-turbo-normalize-file","id":"6770366178333377","timestamp":96804048614,"duration":1133,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3938306b3063776c","name":"babel-turbo-traverse","id":"727534706b6a7334","timestamp":96804050407,"duration":19015,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"336768336f336f35","name":"babel-turbo-transform","id":"3938306b3063776c","timestamp":96804049778,"duration":19659,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"336768336f336f35","name":"babel-turbo-generate","id":"6466736463353539","timestamp":96804069459,"duration":1199,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6339773331317269","name":"next-babel-turbo-transform","id":"336768336f336f35","timestamp":96804048591,"duration":22072,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"743063786e63796d","name":"next-babel-turbo-loader","id":"6339773331317269","timestamp":96804048576,"duration":22109,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b6a746d6e316d30","name":"read-resource","id":"74617465736e6479","timestamp":96803740056,"duration":332601,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c76366d32756370","name":"get-options","id":"7631317573677464","timestamp":96804072695,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3334696c696a3171","name":"babel-turbo-get-config","id":"61726d6d63353671","timestamp":96804072706,"duration":14,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3334696c696a3171","name":"babel-turbo-normalize-file","id":"686d79396c356b7a","timestamp":96804072722,"duration":4720,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7562707970706e64","name":"babel-turbo-traverse","id":"6e7a66766731777a","timestamp":96804078044,"duration":5183,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3334696c696a3171","name":"babel-turbo-transform","id":"7562707970706e64","timestamp":96804077469,"duration":5770,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3334696c696a3171","name":"babel-turbo-generate","id":"7a78653069397a69","timestamp":96804083259,"duration":1119,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c76366d32756370","name":"next-babel-turbo-transform","id":"3334696c696a3171","timestamp":96804072703,"duration":11679,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b6a746d6e316d30","name":"next-babel-turbo-loader","id":"6c76366d32756370","timestamp":96804072690,"duration":11711,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3872747075687939","name":"build-module-js","id":"6b6a746d6e316d30","timestamp":96803739987,"duration":345756,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\common\\initIsotope.js"}},{"traceId":"a40c92b03843b256","parentId":"71796670336a7632","name":"read-resource","id":"6a76696d6773356b","timestamp":96803784299,"duration":303288,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3577326562783933","name":"get-options","id":"7363363038656564","timestamp":96804087638,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6374326d647a7973","name":"babel-turbo-get-config","id":"687071783272356f","timestamp":96804087649,"duration":14,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6374326d647a7973","name":"babel-turbo-normalize-file","id":"613431616d613264","timestamp":96804087665,"duration":1292,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3339696761646f61","name":"babel-turbo-traverse","id":"727969346a636a74","timestamp":96804089538,"duration":3019,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6374326d647a7973","name":"babel-turbo-transform","id":"3339696761646f61","timestamp":96804088972,"duration":3606,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6374326d647a7973","name":"babel-turbo-generate","id":"7637686e6e613771","timestamp":96804092608,"duration":1477,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3577326562783933","name":"next-babel-turbo-transform","id":"6374326d647a7973","timestamp":96804087646,"duration":6446,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"71796670336a7632","name":"next-babel-turbo-loader","id":"3577326562783933","timestamp":96804087632,"duration":6487,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3872747075687939","name":"build-module-js","id":"71796670336a7632","timestamp":96803784110,"duration":312083,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\config\\particle-config.js"}},{"traceId":"a40c92b03843b256","parentId":"6569736d7a33666b","name":"read-resource","id":"746b713568366e77","timestamp":96803784549,"duration":311762,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d64753761313031","name":"get-options","id":"3531627a70763672","timestamp":96804096397,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3531783833333063","name":"babel-turbo-get-config","id":"6b30766976613362","timestamp":96804096409,"duration":19,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3531783833333063","name":"babel-turbo-normalize-file","id":"6668797978777777","timestamp":96804096431,"duration":1089,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69706d38646d6466","name":"babel-turbo-traverse","id":"6d74653073383467","timestamp":96804098103,"duration":8963,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3531783833333063","name":"babel-turbo-transform","id":"69706d38646d6466","timestamp":96804097547,"duration":9535,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3531783833333063","name":"babel-turbo-generate","id":"783262756f623967","timestamp":96804107114,"duration":1251,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d64753761313031","name":"next-babel-turbo-transform","id":"3531783833333063","timestamp":96804096406,"duration":11970,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6569736d7a33666b","name":"next-babel-turbo-loader","id":"6d64753761313031","timestamp":96804096390,"duration":12056,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3872747075687939","name":"build-module-jsx","id":"6569736d7a33666b","timestamp":96803784438,"duration":325675,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\layouts\\Dark.jsx"}},{"traceId":"a40c92b03843b256","parentId":"3872747075687939","name":"build-module-jsx","id":"743063786e63796d","timestamp":96803739682,"duration":374019,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Split\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"3861747475347671","name":"read-resource","id":"316b31766b746969","timestamp":96804117473,"duration":17594,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6633753671777176","name":"build-module-json","id":"3861747475347671","timestamp":96804117384,"duration":18206,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\data\\sections\\works.json"}},{"traceId":"a40c92b03843b256","parentId":"31356b776d617a69","name":"read-resource","id":"78706e6868397165","timestamp":96804117555,"duration":18074,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7362717831627736","name":"build-module-json","id":"31356b776d617a69","timestamp":96804117520,"duration":18322,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\data\\sections\\team.json"}},{"traceId":"a40c92b03843b256","parentId":"6d627065756e7836","name":"read-resource","id":"71796f6b6c746173","timestamp":96804117656,"duration":18202,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3066676b76376830","name":"build-module-json","id":"6d627065756e7836","timestamp":96804117574,"duration":18396,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\data\\sections\\about-us3.json"}},{"traceId":"a40c92b03843b256","parentId":"3579736c73633131","name":"read-resource","id":"697378776c746a68","timestamp":96804122712,"duration":16625,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7278753371633364","name":"get-options","id":"65696e7a6f69796a","timestamp":96804139389,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"303976667a696563","name":"babel-turbo-get-config","id":"326b6f636c6f3476","timestamp":96804139430,"duration":15,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"303976667a696563","name":"babel-turbo-normalize-file","id":"6564746577633671","timestamp":96804139448,"duration":1246,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b6d7869716b7535","name":"babel-turbo-traverse","id":"6c6536757965306b","timestamp":96804141265,"duration":4018,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"303976667a696563","name":"babel-turbo-transform","id":"6b6d7869716b7535","timestamp":96804140717,"duration":4583,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"303976667a696563","name":"babel-turbo-generate","id":"716a666579637661","timestamp":96804145326,"duration":883,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7278753371633364","name":"next-babel-turbo-transform","id":"303976667a696563","timestamp":96804139398,"duration":6817,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3579736c73633131","name":"next-babel-turbo-loader","id":"7278753371633364","timestamp":96804139384,"duration":6853,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a306f327661756c","name":"build-module-js","id":"3579736c73633131","timestamp":96804122470,"duration":25666,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\common\\navbar.js"}},{"traceId":"a40c92b03843b256","parentId":"6336676e63387674","name":"read-resource","id":"6a67726e61696871","timestamp":96804122921,"duration":25323,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7762337a736c366d","name":"get-options","id":"70773765766c3175","timestamp":96804148279,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6368737474693673","name":"babel-turbo-get-config","id":"3931397075773237","timestamp":96804148289,"duration":13,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6368737474693673","name":"babel-turbo-normalize-file","id":"77783933796a7238","timestamp":96804148305,"duration":693,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"306d387a6d6e346c","name":"babel-turbo-traverse","id":"6b6467767966646c","timestamp":96804149614,"duration":1975,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6368737474693673","name":"babel-turbo-transform","id":"306d387a6d6e346c","timestamp":96804149010,"duration":2590,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6368737474693673","name":"babel-turbo-generate","id":"6f6d37306a756c6f","timestamp":96804151611,"duration":428,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7762337a736c366d","name":"next-babel-turbo-transform","id":"6368737474693673","timestamp":96804148286,"duration":3755,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6336676e63387674","name":"next-babel-turbo-loader","id":"7762337a736c366d","timestamp":96804148273,"duration":3785,"tags":{}}] +[{"traceId":"a40c92b03843b256","parentId":"7362717831627736","name":"build-module-js","id":"6336676e63387674","timestamp":96804122868,"duration":30455,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\common\\teamSkillsProgress.js"}},{"traceId":"a40c92b03843b256","parentId":"323965327a36386d","name":"read-resource","id":"676c3131786a756b","timestamp":96804122845,"duration":30522,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"666177646b647867","name":"get-options","id":"6476636c62396f6f","timestamp":96804153398,"duration":3,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6964366b327362","name":"babel-turbo-get-config","id":"776b38656e6c6c30","timestamp":96804153407,"duration":14,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6964366b327362","name":"babel-turbo-normalize-file","id":"6f647331377a6978","timestamp":96804153424,"duration":1671,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a65717132726633","name":"babel-turbo-traverse","id":"7977786c66756c79","timestamp":96804155680,"duration":7054,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6964366b327362","name":"babel-turbo-transform","id":"6a65717132726633","timestamp":96804155121,"duration":7625,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6964366b327362","name":"babel-turbo-generate","id":"6d6e36693869746b","timestamp":96804162767,"duration":1259,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"666177646b647867","name":"next-babel-turbo-transform","id":"7a6964366b327362","timestamp":96804153404,"duration":10626,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"323965327a36386d","name":"next-babel-turbo-loader","id":"666177646b647867","timestamp":96804153393,"duration":10658,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7362717831627736","name":"build-module-js","id":"323965327a36386d","timestamp":96804122766,"duration":42646,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\common\\tooltipEffect.js"}},{"traceId":"a40c92b03843b256","parentId":"3677343634643179","name":"read-resource","id":"3679686c396a3075","timestamp":96804122986,"duration":42470,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"376b30366434737a","name":"get-options","id":"373836753078736b","timestamp":96804165492,"duration":3,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3272716165386873","name":"babel-turbo-get-config","id":"727169726c703462","timestamp":96804165501,"duration":13,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3272716165386873","name":"babel-turbo-normalize-file","id":"6b696e38686f7475","timestamp":96804165517,"duration":792,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"386135626a326172","name":"babel-turbo-traverse","id":"396672777a736e32","timestamp":96804166858,"duration":1299,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3272716165386873","name":"babel-turbo-transform","id":"386135626a326172","timestamp":96804166321,"duration":1845,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3272716165386873","name":"babel-turbo-generate","id":"366f78746a73636f","timestamp":96804168176,"duration":431,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"376b30366434737a","name":"next-babel-turbo-transform","id":"3272716165386873","timestamp":96804165499,"duration":3111,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3677343634643179","name":"next-babel-turbo-loader","id":"376b30366434737a","timestamp":96804165487,"duration":3140,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3066676b76376830","name":"build-module-js","id":"3677343634643179","timestamp":96804122940,"duration":46685,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\common\\thumparallax.js"}},{"traceId":"a40c92b03843b256","parentId":"3272716171396475","name":"read-resource","id":"31767a7736317638","timestamp":96804123156,"duration":46509,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3375697372353633","name":"get-options","id":"7972697333696d74","timestamp":96804169698,"duration":3,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"396a39386a393333","name":"babel-turbo-get-config","id":"6c6a316c36747973","timestamp":96804169738,"duration":13,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"396a39386a393333","name":"babel-turbo-normalize-file","id":"78713370706a6168","timestamp":96804169754,"duration":1512,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"38736c7a78697a31","name":"babel-turbo-traverse","id":"68656e7832737865","timestamp":96804171844,"duration":2947,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"396a39386a393333","name":"babel-turbo-transform","id":"38736c7a78697a31","timestamp":96804171280,"duration":3524,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"396a39386a393333","name":"babel-turbo-generate","id":"7532786639396737","timestamp":96804174823,"duration":1267,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3375697372353633","name":"next-babel-turbo-transform","id":"396a39386a393333","timestamp":96804169705,"duration":6389,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3272716171396475","name":"next-babel-turbo-loader","id":"3375697372353633","timestamp":96804169694,"duration":6420,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"616e31646c766f6e","name":"build-module-js","id":"3272716171396475","timestamp":96804123112,"duration":54177,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\config\\pr-s-black.js"}},{"traceId":"a40c92b03843b256","parentId":"7162636a71677634","name":"read-resource","id":"67386d676d35626f","timestamp":96804123092,"duration":54332,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7671757175373064","name":"get-options","id":"756e73636b6c3873","timestamp":96804177462,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f396f3861703130","name":"babel-turbo-get-config","id":"7362653630796377","timestamp":96804177471,"duration":14,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f396f3861703130","name":"babel-turbo-normalize-file","id":"68386d347164616b","timestamp":96804177488,"duration":899,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7961647430397275","name":"babel-turbo-traverse","id":"356733616d63337a","timestamp":96804179086,"duration":2371,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f396f3861703130","name":"babel-turbo-transform","id":"7961647430397275","timestamp":96804178413,"duration":3061,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f396f3861703130","name":"babel-turbo-generate","id":"3031636f6b747836","timestamp":96804181497,"duration":508,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7671757175373064","name":"next-babel-turbo-transform","id":"6f396f3861703130","timestamp":96804177469,"duration":4541,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7162636a71677634","name":"next-babel-turbo-loader","id":"7671757175373064","timestamp":96804177457,"duration":4573,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"696a7a7676767864","name":"build-module-js","id":"7162636a71677634","timestamp":96804123040,"duration":60140,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\common\\cardMouseEffect.js"}},{"traceId":"a40c92b03843b256","parentId":"707a70756c367577","name":"next-style-loader","id":"7763727771346865","timestamp":96804184057,"duration":337,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6633753671777176","name":"build-module-css","id":"707a70756c367577","timestamp":96804183497,"duration":2670,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\swiper.min.css"}},{"traceId":"a40c92b03843b256","parentId":"7a30683233686963","name":"read-resource","id":"3661733177327a31","timestamp":96804133441,"duration":60223,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"70626d6e78666e35","name":"get-options","id":"3732396c6b74726f","timestamp":96804193710,"duration":3,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7175397178643678","name":"babel-turbo-get-config","id":"72367a66696a3574","timestamp":96804193719,"duration":13,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7175397178643678","name":"babel-turbo-normalize-file","id":"756c626a766a7a78","timestamp":96804193735,"duration":519,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3378703434717730","name":"babel-turbo-traverse","id":"7a6d3235786e6f77","timestamp":96804194787,"duration":1191,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7175397178643678","name":"babel-turbo-transform","id":"3378703434717730","timestamp":96804194265,"duration":1722,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7175397178643678","name":"babel-turbo-generate","id":"36656c6667666932","timestamp":96804195998,"duration":298,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"70626d6e78666e35","name":"next-babel-turbo-transform","id":"7175397178643678","timestamp":96804193716,"duration":2581,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a30683233686963","name":"next-babel-turbo-loader","id":"70626d6e78666e35","timestamp":96804193704,"duration":2610,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"32737a63386e336e","name":"build-module-js","id":"7a30683233686963","timestamp":96804133226,"duration":64017,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\common\\removeSlashpagination.js"}},{"traceId":"a40c92b03843b256","parentId":"3462793138766c62","name":"next-style-loader","id":"35647a35356e6e65","timestamp":96804198024,"duration":104,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d34676477677839","name":"build-module-css","id":"3462793138766c62","timestamp":96804197853,"duration":1314,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\slick-carousel\\slick\\slick.css"}},{"traceId":"a40c92b03843b256","parentId":"74736b7232783831","name":"next-style-loader","id":"63386e7361773378","timestamp":96804199339,"duration":81,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d34676477677839","name":"build-module-css","id":"74736b7232783831","timestamp":96804199203,"duration":1277,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\slick-carousel\\slick\\slick-theme.css"}},{"traceId":"a40c92b03843b256","parentId":"3077666a30363078","name":"next-style-loader","id":"6f726c397237636b","timestamp":96804200695,"duration":86,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6633753671777176","name":"build-module-css","id":"3077666a30363078","timestamp":96804200515,"duration":1171,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\modules\\pagination\\pagination.min.css"}},{"traceId":"a40c92b03843b256","parentId":"3268766276703074","name":"next-style-loader","id":"3471386933757179","timestamp":96804201889,"duration":85,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"32737a63386e336e","name":"build-module-css","id":"3268766276703074","timestamp":96804201724,"duration":1113,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\modules\\effect-fade\\effect-fade.min.css"}},{"traceId":"a40c92b03843b256","parentId":"627861786c683366","name":"next-style-loader","id":"3536327461696277","timestamp":96804203001,"duration":83,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6633753671777176","name":"build-module-css","id":"627861786c683366","timestamp":96804202870,"duration":1141,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\modules\\navigation\\navigation.min.css"}},{"traceId":"a40c92b03843b256","parentId":"6c62746c78746f61","name":"read-resource","id":"7534366368783835","timestamp":96804186298,"duration":21038,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6633753671777176","name":"build-module-js","id":"6c62746c78746f61","timestamp":96804186214,"duration":23118,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\swiper.esm.js"}},{"traceId":"a40c92b03843b256","parentId":"676e6e78706f6333","name":"read-resource","id":"77706e6279626833","timestamp":96804186384,"duration":22992,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6633753671777176","name":"build-module-js","id":"676e6e78706f6333","timestamp":96804186349,"duration":23399,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\react\\swiper-react.js"}},{"traceId":"a40c92b03843b256","parentId":"316333613562356a","name":"read-resource","id":"6a61396862387836","timestamp":96804217678,"duration":7810,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6578723361736973","name":"get-options","id":"6473676b6d366377","timestamp":96804225555,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"75313935686d6134","name":"babel-turbo-get-config","id":"3970646a7a616b63","timestamp":96804225566,"duration":15,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"75313935686d6134","name":"babel-turbo-normalize-file","id":"677a38636e6a3867","timestamp":96804225584,"duration":1062,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a6f6f3062717263","name":"babel-turbo-traverse","id":"6d69323776346333","timestamp":96804227189,"duration":2926,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"75313935686d6134","name":"babel-turbo-transform","id":"6a6f6f3062717263","timestamp":96804226664,"duration":3464,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"75313935686d6134","name":"babel-turbo-generate","id":"6f79397964347269","timestamp":96804230149,"duration":704,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6578723361736973","name":"next-babel-turbo-transform","id":"75313935686d6134","timestamp":96804225563,"duration":5294,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"316333613562356a","name":"next-babel-turbo-loader","id":"6578723361736973","timestamp":96804225525,"duration":5351,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"323965327a36386d","name":"build-module-js","id":"316333613562356a","timestamp":96804217565,"duration":14565,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\common\\fadeInFadeOut.js"}},{"traceId":"a40c92b03843b256","parentId":"36747037746f3136","name":"read-resource","id":"6a7a3175786b766e","timestamp":96804217781,"duration":14469,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"707a676d6966366b","name":"get-options","id":"676e31786e707765","timestamp":96804232285,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d79617972796d65","name":"babel-turbo-get-config","id":"626b6b6d37706574","timestamp":96804232295,"duration":27,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d79617972796d65","name":"babel-turbo-normalize-file","id":"33696d77376d6e6e","timestamp":96804232325,"duration":839,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"653632387733787a","name":"babel-turbo-traverse","id":"6e666a7664706779","timestamp":96804233776,"duration":1585,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d79617972796d65","name":"babel-turbo-transform","id":"653632387733787a","timestamp":96804233186,"duration":2189,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d79617972796d65","name":"babel-turbo-generate","id":"70776e7870667839","timestamp":96804235398,"duration":436,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"707a676d6966366b","name":"next-babel-turbo-transform","id":"6d79617972796d65","timestamp":96804232292,"duration":3545,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"36747037746f3136","name":"next-babel-turbo-loader","id":"707a676d6966366b","timestamp":96804232280,"duration":3577,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3579736c73633131","name":"build-module-js","id":"36747037746f3136","timestamp":96804217725,"duration":19102,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\common\\getSiblings.js"}},{"traceId":"a40c92b03843b256","parentId":"3778726d6337346b","name":"read-resource","id":"3130386539786b74","timestamp":96804220094,"duration":17159,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"676e6e78706f6333","name":"build-module-js","id":"3778726d6337346b","timestamp":96804220056,"duration":21173,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\react\\swiper.js"}},{"traceId":"a40c92b03843b256","parentId":"64687a70616f6c62","name":"read-resource","id":"6775697761797475","timestamp":96804220146,"duration":21124,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c62746c78746f61","name":"build-module-js","id":"64687a70616f6c62","timestamp":96804220117,"duration":23506,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\modules\\navigation\\navigation.js"}},{"traceId":"a40c92b03843b256","parentId":"646c746a65787837","name":"read-resource","id":"66326e397262656f","timestamp":96804220189,"duration":23478,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"676e6e78706f6333","name":"build-module-js","id":"646c746a65787837","timestamp":96804220162,"duration":25537,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\react\\swiper-slide.js"}},{"traceId":"a40c92b03843b256","parentId":"303561706a736c37","name":"read-resource","id":"3961656c336e3332","timestamp":96804220018,"duration":25724,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c62746c78746f61","name":"build-module-js","id":"303561706a736c37","timestamp":96804219909,"duration":32884,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\modules\\pagination\\pagination.js"}},{"traceId":"a40c92b03843b256","parentId":"6a7074786b707839","name":"read-resource","id":"6469783262787537","timestamp":96804220233,"duration":32603,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c62746c78746f61","name":"build-module-js","id":"6a7074786b707839","timestamp":96804220206,"duration":33913,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\modules\\effect-fade\\effect-fade.js"}},{"traceId":"a40c92b03843b256","parentId":"61636f7077777873","name":"read-resource","id":"6564766b656d7233","timestamp":96804224322,"duration":35613,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c62746c78746f61","name":"build-module-js","id":"61636f7077777873","timestamp":96804224269,"duration":38357,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\modules\\keyboard\\keyboard.js"}},{"traceId":"a40c92b03843b256","parentId":"776767636e6f6769","name":"read-resource","id":"6c70306d35726179","timestamp":96804224557,"duration":38126,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c62746c78746f61","name":"build-module-js","id":"776767636e6f6769","timestamp":96804224504,"duration":42444,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\modules\\a11y\\a11y.js"}}] +[{"traceId":"a40c92b03843b256","parentId":"6379667768307973","name":"read-resource","id":"3072646879727634","timestamp":96804224211,"duration":43077,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c62746c78746f61","name":"build-module-js","id":"6379667768307973","timestamp":96804224084,"duration":46908,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\modules\\virtual\\virtual.js"}},{"traceId":"a40c92b03843b256","parentId":"6471643261317738","name":"read-resource","id":"74366c32637a7933","timestamp":96804224450,"duration":46590,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c62746c78746f61","name":"build-module-js","id":"6471643261317738","timestamp":96804224425,"duration":51053,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\modules\\scrollbar\\scrollbar.js"}},{"traceId":"a40c92b03843b256","parentId":"6c396f7661666f36","name":"read-resource","id":"79667636636f7962","timestamp":96804224410,"duration":51120,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c62746c78746f61","name":"build-module-js","id":"6c396f7661666f36","timestamp":96804224385,"duration":59180,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\modules\\zoom\\zoom.js"}},{"traceId":"a40c92b03843b256","parentId":"6162616c7a6b6532","name":"read-resource","id":"396467626d336b6d","timestamp":96804224489,"duration":59125,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c62746c78746f61","name":"build-module-js","id":"6162616c7a6b6532","timestamp":96804224464,"duration":62989,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\modules\\lazy\\lazy.js"}},{"traceId":"a40c92b03843b256","parentId":"3870347a7a626961","name":"read-resource","id":"756b717378633430","timestamp":96804224606,"duration":62893,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c62746c78746f61","name":"build-module-js","id":"3870347a7a626961","timestamp":96804224577,"duration":67273,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\modules\\mousewheel\\mousewheel.js"}},{"traceId":"a40c92b03843b256","parentId":"6d6e6e3278376377","name":"read-resource","id":"6b76723231627662","timestamp":96804224369,"duration":67554,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c62746c78746f61","name":"build-module-js","id":"6d6e6e3278376377","timestamp":96804224341,"duration":69218,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\modules\\parallax\\parallax.js"}},{"traceId":"a40c92b03843b256","parentId":"6478313869766461","name":"read-resource","id":"76366374746a6576","timestamp":96804224766,"duration":68899,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c62746c78746f61","name":"build-module-js","id":"6478313869766461","timestamp":96804224742,"duration":71170,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\modules\\autoplay\\autoplay.js"}},{"traceId":"a40c92b03843b256","parentId":"3732326278697137","name":"read-resource","id":"6473633873793473","timestamp":96804224645,"duration":71311,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c62746c78746f61","name":"build-module-js","id":"3732326278697137","timestamp":96804224620,"duration":72591,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\modules\\hash-navigation\\hash-navigation.js"}},{"traceId":"a40c92b03843b256","parentId":"7869396f67693563","name":"read-resource","id":"7173727379666464","timestamp":96804225044,"duration":72210,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c62746c78746f61","name":"build-module-js","id":"7869396f67693563","timestamp":96804225020,"duration":72723,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\modules\\manipulation\\manipulation.js"}},{"traceId":"a40c92b03843b256","parentId":"317a3775787a326a","name":"read-resource","id":"7371746f7568746d","timestamp":96804224687,"duration":73103,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c62746c78746f61","name":"build-module-js","id":"317a3775787a326a","timestamp":96804224663,"duration":74893,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\modules\\controller\\controller.js"}},{"traceId":"a40c92b03843b256","parentId":"6878363369737879","name":"read-resource","id":"3365756264336139","timestamp":96804224809,"duration":74780,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c62746c78746f61","name":"build-module-js","id":"6878363369737879","timestamp":96804224784,"duration":78289,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\modules\\thumbs\\thumbs.js"}},{"traceId":"a40c92b03843b256","parentId":"6e32327565383439","name":"read-resource","id":"686b337477797634","timestamp":96804224968,"duration":78152,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c62746c78746f61","name":"build-module-js","id":"6e32327565383439","timestamp":96804224942,"duration":80246,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\modules\\effect-cube\\effect-cube.js"}},{"traceId":"a40c92b03843b256","parentId":"3570736368766a70","name":"read-resource","id":"316b75643376336d","timestamp":96804224728,"duration":81939,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c62746c78746f61","name":"build-module-js","id":"3570736368766a70","timestamp":96804224703,"duration":84055,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\modules\\history\\history.js"}},{"traceId":"a40c92b03843b256","parentId":"766b78396e31786d","name":"read-resource","id":"7133743168686c67","timestamp":96804224925,"duration":83884,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c62746c78746f61","name":"build-module-js","id":"766b78396e31786d","timestamp":96804224886,"duration":86126,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\modules\\free-mode\\free-mode.js"}},{"traceId":"a40c92b03843b256","parentId":"667333686a387437","name":"read-resource","id":"707634736a347a31","timestamp":96804225006,"duration":86080,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c62746c78746f61","name":"build-module-js","id":"667333686a387437","timestamp":96804224983,"duration":88881,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\modules\\grid\\grid.js"}},{"traceId":"a40c92b03843b256","parentId":"6976393479776230","name":"read-resource","id":"6365736d79353937","timestamp":96804225214,"duration":88693,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c62746c78746f61","name":"build-module-js","id":"6976393479776230","timestamp":96804225189,"duration":90524,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\modules\\effect-coverflow\\effect-coverflow.js"}},{"traceId":"a40c92b03843b256","parentId":"676e7871736c6335","name":"read-resource","id":"63316d7a656a657a","timestamp":96804225083,"duration":90690,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c62746c78746f61","name":"build-module-js","id":"676e7871736c6335","timestamp":96804225058,"duration":92970,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\modules\\effect-flip\\effect-flip.js"}},{"traceId":"a40c92b03843b256","parentId":"76396e7977356c7a","name":"read-resource","id":"7234756973786b6f","timestamp":96804225175,"duration":92897,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c62746c78746f61","name":"build-module-js","id":"76396e7977356c7a","timestamp":96804225148,"duration":101845,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\core.js"}},{"traceId":"a40c92b03843b256","parentId":"6c35706168746774","name":"read-resource","id":"3371676a32657269","timestamp":96804225127,"duration":101911,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c62746c78746f61","name":"build-module-js","id":"6c35706168746774","timestamp":96804225098,"duration":104254,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\modules\\effect-creative\\effect-creative.js"}},{"traceId":"a40c92b03843b256","parentId":"6e676b6e68657a73","name":"read-resource","id":"3333747179393967","timestamp":96804225253,"duration":111319,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c62746c78746f61","name":"build-module-js","id":"6e676b6e68657a73","timestamp":96804225228,"duration":113311,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\modules\\effect-cards\\effect-cards.js"}},{"traceId":"a40c92b03843b256","parentId":"6936726977766c79","name":"read-resource","id":"346d733668617664","timestamp":96804340863,"duration":14149,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"743065717a743833","name":"postcss-process","id":"7661707634767675","timestamp":96804355121,"duration":3294,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6936726977766c79","name":"postcss-loader","id":"743065717a743833","timestamp":96804355052,"duration":3443,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6936726977766c79","name":"css-loader","id":"656e6275786f3270","timestamp":96804358535,"duration":811,"tags":{"astUsed":"true"}},{"traceId":"a40c92b03843b256","parentId":"3268766276703074","name":"build-module-css","id":"6936726977766c79","timestamp":96804340767,"duration":19164,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\css-loader\\src\\index.js??ruleSet[1].rules[2].oneOf[8].use[1]!C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\postcss-loader\\src\\index.js??ruleSet[1].rules[2].oneOf[8].use[2]!C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\modules\\effect-fade\\effect-fade.min.css"}},{"traceId":"a40c92b03843b256","parentId":"6162683473347a77","name":"read-resource","id":"63333268617a3166","timestamp":96804340610,"duration":19367,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"71386e6774656f64","name":"postcss-process","id":"3579366b376d7866","timestamp":96804360026,"duration":4832,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6162683473347a77","name":"postcss-loader","id":"71386e6774656f64","timestamp":96804360006,"duration":4978,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6162683473347a77","name":"css-loader","id":"6c386f796965676b","timestamp":96804365032,"duration":2017,"tags":{"astUsed":"true"}},{"traceId":"a40c92b03843b256","parentId":"3462793138766c62","name":"build-module-css","id":"6162683473347a77","timestamp":96804340553,"duration":27314,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\css-loader\\src\\index.js??ruleSet[1].rules[2].oneOf[8].use[1]!C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\postcss-loader\\src\\index.js??ruleSet[1].rules[2].oneOf[8].use[2]!C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\slick-carousel\\slick\\slick.css"}},{"traceId":"a40c92b03843b256","parentId":"6e6e697461683171","name":"read-resource","id":"6476773330657673","timestamp":96804340515,"duration":27400,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6561387171636570","name":"postcss-process","id":"7371617730746978","timestamp":96804367971,"duration":6708,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e6e697461683171","name":"postcss-loader","id":"6561387171636570","timestamp":96804367951,"duration":6880,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e6e697461683171","name":"css-loader","id":"6a77753177767472","timestamp":96804374878,"duration":3927,"tags":{"astUsed":"true"}},{"traceId":"a40c92b03843b256","parentId":"707a70756c367577","name":"build-module-css","id":"6e6e697461683171","timestamp":96804340388,"duration":39336,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\css-loader\\src\\index.js??ruleSet[1].rules[2].oneOf[8].use[1]!C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\postcss-loader\\src\\index.js??ruleSet[1].rules[2].oneOf[8].use[2]!C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\swiper.min.css"}},{"traceId":"a40c92b03843b256","parentId":"667a6730706a6f75","name":"read-resource","id":"7a6768307766716a","timestamp":96804340931,"duration":38829,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"776b7066686b6630","name":"postcss-process","id":"6738326568393572","timestamp":96804379809,"duration":4021,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"667a6730706a6f75","name":"postcss-loader","id":"776b7066686b6630","timestamp":96804379791,"duration":4143,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"667a6730706a6f75","name":"css-loader","id":"3369326567336e67","timestamp":96804383984,"duration":1425,"tags":{"astUsed":"true"}},{"traceId":"a40c92b03843b256","parentId":"627861786c683366","name":"build-module-css","id":"667a6730706a6f75","timestamp":96804340883,"duration":45169,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\css-loader\\src\\index.js??ruleSet[1].rules[2].oneOf[8].use[1]!C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\postcss-loader\\src\\index.js??ruleSet[1].rules[2].oneOf[8].use[2]!C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\modules\\navigation\\navigation.min.css"}},{"traceId":"a40c92b03843b256","parentId":"6a776938656f337a","name":"read-resource","id":"3567647865636233","timestamp":96804340978,"duration":45177,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3778726d6337346b","name":"build-module-js","id":"6a776938656f337a","timestamp":96804340951,"duration":46040,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\react\\utils.js"}},{"traceId":"a40c92b03843b256","parentId":"33323170336f6433","name":"read-resource","id":"6237786f39727579","timestamp":96804340679,"duration":46339,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"783936756a376e63","name":"postcss-process","id":"666f68376a676b71","timestamp":96804387072,"duration":6717,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"33323170336f6433","name":"postcss-loader","id":"783936756a376e63","timestamp":96804387052,"duration":6930,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"33323170336f6433","name":"css-loader","id":"696a656462783038","timestamp":96804394044,"duration":8073,"tags":{"astUsed":"true"}},{"traceId":"a40c92b03843b256","parentId":"74736b7232783831","name":"build-module-css","id":"33323170336f6433","timestamp":96804340634,"duration":62573,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\css-loader\\src\\index.js??ruleSet[1].rules[2].oneOf[8].use[1]!C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\postcss-loader\\src\\index.js??ruleSet[1].rules[2].oneOf[8].use[2]!C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\slick-carousel\\slick\\slick-theme.css"}},{"traceId":"a40c92b03843b256","parentId":"356b38726d7a6664","name":"read-resource","id":"6b6a797871336463","timestamp":96804340748,"duration":62500,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a68627a6f31656d","name":"postcss-process","id":"316a7168617a6d70","timestamp":96804403311,"duration":5350,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"356b38726d7a6664","name":"postcss-loader","id":"6a68627a6f31656d","timestamp":96804403287,"duration":5545,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"356b38726d7a6664","name":"css-loader","id":"6964686779327161","timestamp":96804408882,"duration":2341,"tags":{"astUsed":"true"}},{"traceId":"a40c92b03843b256","parentId":"3077666a30363078","name":"build-module-css","id":"356b38726d7a6664","timestamp":96804340698,"duration":71439,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\css-loader\\src\\index.js??ruleSet[1].rules[2].oneOf[8].use[1]!C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\postcss-loader\\src\\index.js??ruleSet[1].rules[2].oneOf[8].use[2]!C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\modules\\pagination\\pagination.min.css"}},{"traceId":"a40c92b03843b256","parentId":"7030397861316e67","name":"read-resource","id":"746c7a75316c3971","timestamp":96804343330,"duration":71928,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3778726d6337346b","name":"build-module-js","id":"7030397861316e67","timestamp":96804343272,"duration":73178,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\react\\get-params.js"}},{"traceId":"a40c92b03843b256","parentId":"62736b7062396f66","name":"read-resource","id":"3365656774376f73","timestamp":96804343376,"duration":73115,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3778726d6337346b","name":"build-module-js","id":"62736b7062396f66","timestamp":96804343346,"duration":73867,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\react\\get-changed-params.js"}},{"traceId":"a40c92b03843b256","parentId":"386e73376a787264","name":"read-resource","id":"6b756f736f6b7571","timestamp":96804343683,"duration":73553,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3778726d6337346b","name":"build-module-js","id":"386e73376a787264","timestamp":96804343518,"duration":75051,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\react\\update-swiper.js"}},{"traceId":"a40c92b03843b256","parentId":"6b7a7164756c7662","name":"read-resource","id":"7030746d7a637769","timestamp":96804343240,"duration":75363,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3778726d6337346b","name":"build-module-js","id":"6b7a7164756c7662","timestamp":96804343087,"duration":76288,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\react\\init-swiper.js"}},{"traceId":"a40c92b03843b256","parentId":"6774613535753432","name":"read-resource","id":"386f7a3472317333","timestamp":96804343811,"duration":75602,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3778726d6337346b","name":"build-module-js","id":"6774613535753432","timestamp":96804343746,"duration":76432,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\react\\get-children.js"}},{"traceId":"a40c92b03843b256","parentId":"653471676d397030","name":"read-resource","id":"78626261636a646b","timestamp":96804343984,"duration":76236,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3778726d6337346b","name":"build-module-js","id":"653471676d397030","timestamp":96804343933,"duration":77121,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\react\\virtual.js"}},{"traceId":"a40c92b03843b256","parentId":"626467616e69796b","name":"read-resource","id":"716f383378636433","timestamp":96804343906,"duration":77187,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3778726d6337346b","name":"build-module-js","id":"626467616e69796b","timestamp":96804343851,"duration":77618,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\react\\use-isomorphic-layout-effect.js"}},{"traceId":"a40c92b03843b256","parentId":"37707269316e7a71","name":"read-resource","id":"716b3373366e6373","timestamp":96804343418,"duration":78119,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3778726d6337346b","name":"build-module-js","id":"37707269316e7a71","timestamp":96804343392,"duration":79311,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\react\\loop.js"}},{"traceId":"a40c92b03843b256","parentId":"6e65686e6573356a","name":"read-resource","id":"6970713034777431","timestamp":96804349478,"duration":75365,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76396e7977356c7a","name":"build-module-js","id":"6e65686e6573356a","timestamp":96804349416,"duration":76136,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\defaults.js"}},{"traceId":"a40c92b03843b256","parentId":"6e337a6d72397671","name":"read-resource","id":"7670636f38636874","timestamp":96804349378,"duration":76200,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76396e7977356c7a","name":"build-module-js","id":"6e337a6d72397671","timestamp":96804349311,"duration":77451,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\events-emitter.js"}},{"traceId":"a40c92b03843b256","parentId":"6331673638716274","name":"read-resource","id":"6c75336672713774","timestamp":96804349563,"duration":77243,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76396e7977356c7a","name":"build-module-js","id":"6331673638716274","timestamp":96804349505,"duration":78263,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\moduleExtendParams.js"}},{"traceId":"a40c92b03843b256","parentId":"7269696d636b3631","name":"read-resource","id":"6d65777663323462","timestamp":96804349249,"duration":78565,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d34676477677839","name":"build-module-js","id":"7269696d636b3631","timestamp":96804349087,"duration":79244,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-slick\\lib\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"676c366637386276","name":"read-resource","id":"7930786e71657277","timestamp":96804354250,"duration":80803,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a7074786b707839","name":"build-module-js","id":"676c366637386276","timestamp":96804354227,"duration":81634,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\shared\\effect-init.js"}},{"traceId":"a40c92b03843b256","parentId":"326b7a3165347373","name":"read-resource","id":"62786c6666687879","timestamp":96804354159,"duration":81749,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"64687a70616f6c62","name":"build-module-js","id":"326b7a3165347373","timestamp":96804354124,"duration":82478,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\shared\\dom.js"}},{"traceId":"a40c92b03843b256","parentId":"3838716265393861","name":"read-resource","id":"797a726b68303772","timestamp":96804354213,"duration":82423,"tags":{}}] +[{"traceId":"a40c92b03843b256","parentId":"6a7074786b707839","name":"build-module-js","id":"3838716265393861","timestamp":96804354174,"duration":83158,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\shared\\effect-target.js"}},{"traceId":"a40c92b03843b256","parentId":"7564367667773831","name":"read-resource","id":"7372756e63367968","timestamp":96804354094,"duration":83274,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"64687a70616f6c62","name":"build-module-js","id":"7564367667773831","timestamp":96804353988,"duration":83918,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\shared\\create-element-if-not-defined.js"}},{"traceId":"a40c92b03843b256","parentId":"333868366c737434","name":"read-resource","id":"6638736365356831","timestamp":96804354290,"duration":83652,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"303561706a736c37","name":"build-module-js","id":"333868366c737434","timestamp":96804354264,"duration":84233,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\shared\\classes-to-selector.js"}},{"traceId":"a40c92b03843b256","parentId":"7830317835736e73","name":"read-resource","id":"3135367764626d66","timestamp":96804354481,"duration":84057,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76396e7977356c7a","name":"build-module-js","id":"7830317835736e73","timestamp":96804354459,"duration":85161,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\shared\\get-device.js"}},{"traceId":"a40c92b03843b256","parentId":"746c753638783069","name":"read-resource","id":"686672306138626b","timestamp":96804354446,"duration":85215,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76396e7977356c7a","name":"build-module-js","id":"746c753638783069","timestamp":96804354419,"duration":86369,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\shared\\get-support.js"}},{"traceId":"a40c92b03843b256","parentId":"367930796a396c69","name":"read-resource","id":"7775613473797832","timestamp":96804354353,"duration":86493,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a7074786b707839","name":"build-module-js","id":"367930796a396c69","timestamp":96804354302,"duration":87407,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\shared\\effect-virtual-transition-end.js"}},{"traceId":"a40c92b03843b256","parentId":"7437627534376f70","name":"read-resource","id":"3262657a676e3871","timestamp":96804354515,"duration":87240,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76396e7977356c7a","name":"build-module-js","id":"7437627534376f70","timestamp":96804354493,"duration":87940,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\shared\\get-browser.js"}},{"traceId":"a40c92b03843b256","parentId":"3833693661347262","name":"read-resource","id":"7130346b657a7873","timestamp":96804354564,"duration":87911,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6976393479776230","name":"build-module-js","id":"3833693661347262","timestamp":96804354540,"duration":88453,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\shared\\create-shadow.js"}},{"traceId":"a40c92b03843b256","parentId":"34393037706c696f","name":"read-resource","id":"626c61626732796c","timestamp":96804354404,"duration":88629,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76396e7977356c7a","name":"build-module-js","id":"34393037706c696f","timestamp":96804354379,"duration":90930,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\shared\\utils.js"}},{"traceId":"a40c92b03843b256","parentId":"7773757677646f34","name":"read-resource","id":"6631743667393436","timestamp":96804412782,"duration":34091,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76396e7977356c7a","name":"build-module-js","id":"7773757677646f34","timestamp":96804412751,"duration":34592,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\translate\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"376e61777a317363","name":"read-resource","id":"3274673075356866","timestamp":96804412908,"duration":34457,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76396e7977356c7a","name":"build-module-js","id":"376e61777a317363","timestamp":96804412887,"duration":34689,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\loop\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"746a6a6e746d6634","name":"read-resource","id":"6933686d356e656e","timestamp":96804412682,"duration":34907,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76396e7977356c7a","name":"build-module-js","id":"746a6a6e746d6634","timestamp":96804412590,"duration":35289,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\transition\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"746b3768646b6271","name":"read-resource","id":"69386a6e7663386b","timestamp":96804412873,"duration":35025,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76396e7977356c7a","name":"build-module-js","id":"746b3768646b6271","timestamp":96804412850,"duration":35231,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\grab-cursor\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"6e726a6e34716d6f","name":"read-resource","id":"6575783178707772","timestamp":96804412977,"duration":35117,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76396e7977356c7a","name":"build-module-js","id":"6e726a6e34716d6f","timestamp":96804412955,"duration":35313,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\breakpoints\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"6c383132306c3864","name":"read-resource","id":"3474763166343864","timestamp":96804412823,"duration":35459,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76396e7977356c7a","name":"build-module-js","id":"6c383132306c3864","timestamp":96804412799,"duration":35722,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\slide\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"6c30333673696776","name":"read-resource","id":"776d6c7a32323264","timestamp":96804413047,"duration":35489,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76396e7977356c7a","name":"build-module-js","id":"6c30333673696776","timestamp":96804413026,"duration":35678,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\images\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"3534746c6c303563","name":"read-resource","id":"34746c776563796d","timestamp":96804413012,"duration":35706,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76396e7977356c7a","name":"build-module-js","id":"3534746c6c303563","timestamp":96804412989,"duration":36638,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\events\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"6f6465676b667579","name":"read-resource","id":"74756c6334626a6e","timestamp":96804413120,"duration":36527,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7869396f67693563","name":"build-module-js","id":"6f6465676b667579","timestamp":96804413094,"duration":36902,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\modules\\manipulation\\methods\\appendSlide.js"}},{"traceId":"a40c92b03843b256","parentId":"3437726d3575396b","name":"read-resource","id":"3265776568616c74","timestamp":96804412943,"duration":37073,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76396e7977356c7a","name":"build-module-js","id":"3437726d3575396b","timestamp":96804412921,"duration":37475,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\update\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"7266306761766637","name":"read-resource","id":"736537303234786d","timestamp":96804413081,"duration":37333,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76396e7977356c7a","name":"build-module-js","id":"7266306761766637","timestamp":96804413059,"duration":37541,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\classes\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"35637a323973346e","name":"read-resource","id":"7730397464786676","timestamp":96804413166,"duration":37454,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7869396f67693563","name":"build-module-js","id":"35637a323973346e","timestamp":96804413139,"duration":38115,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\modules\\manipulation\\methods\\prependSlide.js"}},{"traceId":"a40c92b03843b256","parentId":"626969337a7a7032","name":"read-resource","id":"7979616d36726b33","timestamp":96804413203,"duration":38085,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7869396f67693563","name":"build-module-js","id":"626969337a7a7032","timestamp":96804413180,"duration":38386,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\modules\\manipulation\\methods\\removeAllSlides.js"}},{"traceId":"a40c92b03843b256","parentId":"7668626378626474","name":"read-resource","id":"6f32366a65786e6d","timestamp":96804413279,"duration":38303,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7869396f67693563","name":"build-module-js","id":"7668626378626474","timestamp":96804413254,"duration":38833,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\modules\\manipulation\\methods\\removeSlide.js"}},{"traceId":"a40c92b03843b256","parentId":"39746f6734303832","name":"read-resource","id":"3962393272766871","timestamp":96804413240,"duration":38866,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7869396f67693563","name":"build-module-js","id":"39746f6734303832","timestamp":96804413216,"duration":39476,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\modules\\manipulation\\methods\\addSlide.js"}},{"traceId":"a40c92b03843b256","parentId":"6736343036356c73","name":"read-resource","id":"727866736c646e68","timestamp":96804413314,"duration":39400,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76396e7977356c7a","name":"build-module-js","id":"6736343036356c73","timestamp":96804413293,"duration":40504,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\check-overflow\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"356b323875366e62","name":"read-resource","id":"6c70743178387934","timestamp":96804429334,"duration":34249,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76396e7977356c7a","name":"build-module-js","id":"356b323875366e62","timestamp":96804429305,"duration":35455,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\modules\\observer\\observer.js"}},{"traceId":"a40c92b03843b256","parentId":"766a64613831366b","name":"read-resource","id":"3134776371773161","timestamp":96804429249,"duration":35566,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76396e7977356c7a","name":"build-module-js","id":"766a64613831366b","timestamp":96804429175,"duration":36536,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\modules\\resize\\resize.js"}},{"traceId":"a40c92b03843b256","parentId":"387a77646c397672","name":"read-resource","id":"73316875336b6e36","timestamp":96804456834,"duration":19372,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"33323170336f6433","name":"build-module-gif","id":"387a77646c397672","timestamp":96804456730,"duration":19778,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\slick-carousel\\slick\\ajax-loader.gif"}},{"traceId":"a40c92b03843b256","parentId":"7137667a65777537","name":"read-resource","id":"376a6a6c79716165","timestamp":96804456920,"duration":19609,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7030397861316e67","name":"build-module-js","id":"7137667a65777537","timestamp":96804456883,"duration":20387,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\react\\params-list.js"}},{"traceId":"a40c92b03843b256","parentId":"6f31357a31733572","name":"read-resource","id":"38706d6e70736630","timestamp":96804462539,"duration":16281,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"33323170336f6433","name":"build-module-js","id":"6f31357a31733572","timestamp":96804462404,"duration":17052,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\css-loader\\src\\runtime\\getUrl.js"}},{"traceId":"a40c92b03843b256","parentId":"623677786664666b","name":"read-resource","id":"3532753832703974","timestamp":96804462607,"duration":16883,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"33323170336f6433","name":"build-module-ttf","id":"623677786664666b","timestamp":96804462575,"duration":16965,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\slick-carousel\\slick\\fonts\\slick.ttf"}},{"traceId":"a40c92b03843b256","parentId":"66676a6830707670","name":"read-resource","id":"793166766a676365","timestamp":96804462719,"duration":16830,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"33323170336f6433","name":"build-module-eot","id":"66676a6830707670","timestamp":96804462696,"duration":16882,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\slick-carousel\\slick\\fonts\\slick.eot"}},{"traceId":"a40c92b03843b256","parentId":"7468377575766831","name":"read-resource","id":"313235676d616768","timestamp":96804462652,"duration":16933,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"33323170336f6433","name":"build-module-woff","id":"7468377575766831","timestamp":96804462624,"duration":16986,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\slick-carousel\\slick\\fonts\\slick.woff"}},{"traceId":"a40c92b03843b256","parentId":"696e317379727a6d","name":"read-resource","id":"6571763930696231","timestamp":96804462766,"duration":17947,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"33323170336f6433","name":"build-module-svg","id":"696e317379727a6d","timestamp":96804462743,"duration":18051,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\slick-carousel\\slick\\fonts\\slick.svg"}},{"traceId":"a40c92b03843b256","parentId":"646763306d657571","name":"read-resource","id":"3974753736343566","timestamp":96804474609,"duration":6544,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7773757677646f34","name":"build-module-js","id":"646763306d657571","timestamp":96804474548,"duration":7221,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\translate\\maxTranslate.js"}},{"traceId":"a40c92b03843b256","parentId":"6d6e616937336930","name":"read-resource","id":"3532626361703579","timestamp":96804474534,"duration":7277,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7773757677646f34","name":"build-module-js","id":"6d6e616937336930","timestamp":96804474506,"duration":7522,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\translate\\minTranslate.js"}},{"traceId":"a40c92b03843b256","parentId":"733363336d676d36","name":"read-resource","id":"6977627138693931","timestamp":96804474478,"duration":7568,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7773757677646f34","name":"build-module-js","id":"733363336d676d36","timestamp":96804474384,"duration":8038,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\translate\\getTranslate.js"}},{"traceId":"a40c92b03843b256","parentId":"67757a6c66713470","name":"read-resource","id":"68736662746a6f64","timestamp":96804474650,"duration":7789,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7773757677646f34","name":"build-module-js","id":"67757a6c66713470","timestamp":96804474624,"duration":8409,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\translate\\translateTo.js"}},{"traceId":"a40c92b03843b256","parentId":"7277766334776a66","name":"read-resource","id":"6161716d72693236","timestamp":96804474689,"duration":8362,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"376e61777a317363","name":"build-module-js","id":"7277766334776a66","timestamp":96804474663,"duration":9156,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\loop\\loopCreate.js"}},{"traceId":"a40c92b03843b256","parentId":"72773863687a646f","name":"read-resource","id":"6530677130356476","timestamp":96804474836,"duration":9006,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"746a6a6e746d6634","name":"build-module-js","id":"72773863687a646f","timestamp":96804474810,"duration":9239,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\transition\\setTransition.js"}},{"traceId":"a40c92b03843b256","parentId":"78717678796a6161","name":"read-resource","id":"7264386438723977","timestamp":96804474767,"duration":9321,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"376e61777a317363","name":"build-module-js","id":"78717678796a6161","timestamp":96804474744,"duration":9560,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\loop\\loopDestroy.js"}},{"traceId":"a40c92b03843b256","parentId":"756c6231786b7468","name":"read-resource","id":"647a6c7268343163","timestamp":96804474871,"duration":9447,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7773757677646f34","name":"build-module-js","id":"756c6231786b7468","timestamp":96804474849,"duration":9866,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\translate\\setTranslate.js"}},{"traceId":"a40c92b03843b256","parentId":"3978746263796636","name":"read-resource","id":"7276797361786168","timestamp":96804474731,"duration":10001,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"376e61777a317363","name":"build-module-js","id":"3978746263796636","timestamp":96804474701,"duration":10412,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\loop\\loopFix.js"}},{"traceId":"a40c92b03843b256","parentId":"3877366b35303175","name":"read-resource","id":"3467326f63716438","timestamp":96804474945,"duration":10190,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"746b3768646b6271","name":"build-module-js","id":"3877366b35303175","timestamp":96804474921,"duration":10453,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\grab-cursor\\setGrabCursor.js"}},{"traceId":"a40c92b03843b256","parentId":"78337a786531707a","name":"read-resource","id":"62726364647a6f74","timestamp":96804474907,"duration":10481,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"746a6a6e746d6634","name":"build-module-js","id":"78337a786531707a","timestamp":96804474883,"duration":10768,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\transition\\transitionEnd.js"}},{"traceId":"a40c92b03843b256","parentId":"6d686365686a6965","name":"read-resource","id":"79376c657a756b30","timestamp":96804474990,"duration":10677,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"746b3768646b6271","name":"build-module-js","id":"6d686365686a6965","timestamp":96804474968,"duration":10887,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\grab-cursor\\unsetGrabCursor.js"}},{"traceId":"a40c92b03843b256","parentId":"6d36666678676137","name":"read-resource","id":"786d7066646b6271","timestamp":96804475024,"duration":10850,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e726a6e34716d6f","name":"build-module-js","id":"6d36666678676137","timestamp":96804475003,"duration":11589,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\breakpoints\\setBreakpoint.js"}},{"traceId":"a40c92b03843b256","parentId":"6b66396a686f6f31","name":"read-resource","id":"36726c696d316473","timestamp":96804475175,"duration":11539,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c383132306c3864","name":"build-module-js","id":"6b66396a686f6f31","timestamp":96804475152,"duration":12343,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\slide\\slideToLoop.js"}},{"traceId":"a40c92b03843b256","parentId":"7735643732333266","name":"read-resource","id":"3779676766756c71","timestamp":96804475213,"duration":12353,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c383132306c3864","name":"build-module-js","id":"7735643732333266","timestamp":96804475188,"duration":13277,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\slide\\slideNext.js"}},{"traceId":"a40c92b03843b256","parentId":"626b776a716a7935","name":"read-resource","id":"37756c36666c666b","timestamp":96804475068,"duration":13447,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e726a6e34716d6f","name":"build-module-js","id":"626b776a716a7935","timestamp":96804475042,"duration":14298,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\breakpoints\\getBreakpoint.js"}},{"traceId":"a40c92b03843b256","parentId":"31747a7478697579","name":"read-resource","id":"7330613462696d73","timestamp":96804475256,"duration":14139,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c383132306c3864","name":"build-module-js","id":"31747a7478697579","timestamp":96804475226,"duration":15092,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\slide\\slidePrev.js"}}] +[{"traceId":"a40c92b03843b256","parentId":"786c303868646864","name":"read-resource","id":"6b656d7378647078","timestamp":96804475140,"duration":15526,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c383132306c3864","name":"build-module-js","id":"786c303868646864","timestamp":96804475118,"duration":17310,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\slide\\slideTo.js"}},{"traceId":"a40c92b03843b256","parentId":"7731716b37777838","name":"read-resource","id":"363630746d626433","timestamp":96804475105,"duration":17366,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"746a6a6e746d6634","name":"build-module-js","id":"7731716b37777838","timestamp":96804475080,"duration":17833,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\transition\\transitionStart.js"}},{"traceId":"a40c92b03843b256","parentId":"783932396939366a","name":"read-resource","id":"3761336179713662","timestamp":96804475367,"duration":17612,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c383132306c3864","name":"build-module-js","id":"783932396939366a","timestamp":96804475345,"duration":18290,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\slide\\slideToClickedSlide.js"}},{"traceId":"a40c92b03843b256","parentId":"7867677a6972646b","name":"read-resource","id":"6774776c326b6672","timestamp":96804475291,"duration":18380,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c383132306c3864","name":"build-module-js","id":"7867677a6972646b","timestamp":96804475267,"duration":18719,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\slide\\slideReset.js"}},{"traceId":"a40c92b03843b256","parentId":"7677343673656333","name":"read-resource","id":"6e656c3879756e62","timestamp":96804475418,"duration":18598,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c30333673696776","name":"build-module-js","id":"7677343673656333","timestamp":96804475380,"duration":19202,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\images\\loadImage.js"}},{"traceId":"a40c92b03843b256","parentId":"72787130396a7130","name":"read-resource","id":"3134396d34737068","timestamp":96804475327,"duration":19296,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c383132306c3864","name":"build-module-js","id":"72787130396a7130","timestamp":96804475306,"duration":19932,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\slide\\slideToClosest.js"}},{"traceId":"a40c92b03843b256","parentId":"323979796c763472","name":"read-resource","id":"38316f3269377137","timestamp":96804475494,"duration":19788,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3534746c6c303563","name":"build-module-js","id":"323979796c763472","timestamp":96804475472,"duration":21180,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\events\\onTouchStart.js"}},{"traceId":"a40c92b03843b256","parentId":"326d6862716b386f","name":"read-resource","id":"6e6a33666664346d","timestamp":96804475459,"duration":21240,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c30333673696776","name":"build-module-js","id":"326d6862716b386f","timestamp":96804475436,"duration":21836,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\images\\preloadImages.js"}},{"traceId":"a40c92b03843b256","parentId":"307768776c7a3767","name":"read-resource","id":"61707434796e6973","timestamp":96804475532,"duration":21793,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3534746c6c303563","name":"build-module-js","id":"307768776c7a3767","timestamp":96804475506,"duration":23429,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\events\\onTouchMove.js"}},{"traceId":"a40c92b03843b256","parentId":"377a73617a677575","name":"read-resource","id":"663066757037366c","timestamp":96804475572,"duration":23405,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3534746c6c303563","name":"build-module-js","id":"377a73617a677575","timestamp":96804475547,"duration":24510,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\events\\onTouchEnd.js"}},{"traceId":"a40c92b03843b256","parentId":"3764783832323733","name":"read-resource","id":"70657a6a7a746630","timestamp":96804475646,"duration":24445,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3534746c6c303563","name":"build-module-js","id":"3764783832323733","timestamp":96804475623,"duration":24772,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\events\\onClick.js"}},{"traceId":"a40c92b03843b256","parentId":"673532627970696b","name":"read-resource","id":"69756f35667a7136","timestamp":96804475609,"duration":24806,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3534746c6c303563","name":"build-module-js","id":"673532627970696b","timestamp":96804475585,"duration":25231,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\events\\onResize.js"}},{"traceId":"a40c92b03843b256","parentId":"6864656c766d6672","name":"read-resource","id":"326a666d37783262","timestamp":96804475681,"duration":25153,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3534746c6c303563","name":"build-module-js","id":"6864656c766d6672","timestamp":96804475659,"duration":25673,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\events\\onScroll.js"}},{"traceId":"a40c92b03843b256","parentId":"69376b3938637369","name":"read-resource","id":"6e3172726c6b7669","timestamp":96804475718,"duration":28431,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3437726d3575396b","name":"build-module-js","id":"69376b3938637369","timestamp":96804475694,"duration":32205,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\update\\updateSlides.js"}},{"traceId":"a40c92b03843b256","parentId":"68766768366f3470","name":"read-resource","id":"743368733767666c","timestamp":96804475787,"duration":32170,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3437726d3575396b","name":"build-module-js","id":"68766768366f3470","timestamp":96804475765,"duration":33025,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\update\\updateAutoHeight.js"}},{"traceId":"a40c92b03843b256","parentId":"616c746c3675646b","name":"read-resource","id":"7430753776367332","timestamp":96804475752,"duration":33096,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3437726d3575396b","name":"build-module-js","id":"616c746c3675646b","timestamp":96804475731,"duration":33753,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\update\\updateSize.js"}},{"traceId":"a40c92b03843b256","parentId":"65686732736a6267","name":"read-resource","id":"6e30787335686162","timestamp":96804475824,"duration":33694,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3437726d3575396b","name":"build-module-js","id":"65686732736a6267","timestamp":96804475800,"duration":34025,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\update\\updateSlidesOffset.js"}},{"traceId":"a40c92b03843b256","parentId":"766f7a3468677071","name":"read-resource","id":"796d39347a617377","timestamp":96804475862,"duration":33985,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3437726d3575396b","name":"build-module-js","id":"766f7a3468677071","timestamp":96804475838,"duration":34834,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\update\\updateSlidesProgress.js"}},{"traceId":"a40c92b03843b256","parentId":"656a33367a636766","name":"read-resource","id":"6f31643464327634","timestamp":96804475932,"duration":34778,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3437726d3575396b","name":"build-module-js","id":"656a33367a636766","timestamp":96804475910,"duration":35792,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\update\\updateSlidesClasses.js"}},{"traceId":"a40c92b03843b256","parentId":"63736b6836346264","name":"read-resource","id":"636f3168376a3069","timestamp":96804475968,"duration":35780,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3437726d3575396b","name":"build-module-js","id":"63736b6836346264","timestamp":96804475948,"duration":36511,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\update\\updateActiveIndex.js"}},{"traceId":"a40c92b03843b256","parentId":"6d33767670646463","name":"read-resource","id":"33373364726e7333","timestamp":96804475897,"duration":36585,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3437726d3575396b","name":"build-module-js","id":"6d33767670646463","timestamp":96804475873,"duration":37146,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\update\\updateProgress.js"}},{"traceId":"a40c92b03843b256","parentId":"37736f3036363933","name":"read-resource","id":"6269627478313938","timestamp":96804477855,"duration":37023,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7269696d636b3631","name":"build-module-js","id":"37736f3036363933","timestamp":96804477830,"duration":40844,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-slick\\lib\\slider.js"}},{"traceId":"a40c92b03843b256","parentId":"6178356962756f62","name":"read-resource","id":"6d69346c796f3630","timestamp":96804477817,"duration":40910,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7266306761766637","name":"build-module-js","id":"6178356962756f62","timestamp":96804477794,"duration":41333,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\classes\\removeClasses.js"}},{"traceId":"a40c92b03843b256","parentId":"3369673932643569","name":"read-resource","id":"326e6e38726f6c38","timestamp":96804477782,"duration":41385,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7266306761766637","name":"build-module-js","id":"3369673932643569","timestamp":96804477754,"duration":42072,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\classes\\addClasses.js"}},{"traceId":"a40c92b03843b256","parentId":"6131686a346e6e77","name":"read-resource","id":"386e6d756a6d6137","timestamp":96804477729,"duration":42177,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3437726d3575396b","name":"build-module-js","id":"6131686a346e6e77","timestamp":96804477614,"duration":43273,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\update\\updateClickedSlide.js"}},{"traceId":"a40c92b03843b256","parentId":"7435756b6a366d61","name":"read-resource","id":"346b66776c307035","timestamp":96804481115,"duration":44530,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76396e7977356c7a","name":"build-module-js","id":"7435756b6a366d61","timestamp":96804481033,"duration":45810,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\ssr-window\\ssr-window.esm.js"}},{"traceId":"a40c92b03843b256","parentId":"35346b6c36386e63","name":"read-resource","id":"7267346d75306134","timestamp":96804525386,"duration":4435,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"78337a786531707a","name":"build-module-js","id":"35346b6c36386e63","timestamp":96804525270,"duration":5198,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\core\\transition\\transitionEmit.js"}},{"traceId":"a40c92b03843b256","parentId":"3268636d33303372","name":"read-resource","id":"74366c3139317832","timestamp":96804530958,"duration":853,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37736f3036363933","name":"build-module-js","id":"3268636d33303372","timestamp":96804530928,"duration":8024,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-slick\\lib\\inner-slider.js"}},{"traceId":"a40c92b03843b256","parentId":"7633747376666e75","name":"read-resource","id":"6b7164776b356833","timestamp":96804530902,"duration":8111,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"326b7a3165347373","name":"build-module-js","id":"7633747376666e75","timestamp":96804530814,"duration":20363,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\dom7\\dom7.esm.js"}},{"traceId":"a40c92b03843b256","parentId":"75636c3572637461","name":"read-resource","id":"7436326b326a6f7a","timestamp":96804530999,"duration":21802,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37736f3036363933","name":"build-module-js","id":"75636c3572637461","timestamp":96804530975,"duration":22681,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-slick\\lib\\default-props.js"}},{"traceId":"a40c92b03843b256","parentId":"6f68647a75713836","name":"read-resource","id":"6d6d723070713566","timestamp":96804531551,"duration":23166,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37736f3036363933","name":"build-module-js","id":"6f68647a75713836","timestamp":96804531467,"duration":32002,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-slick\\lib\\utils\\innerSliderUtils.js"}},{"traceId":"a40c92b03843b256","parentId":"376f756d77653161","name":"read-resource","id":"7565706339626670","timestamp":96804566887,"duration":1390,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3268636d33303372","name":"build-module-js","id":"376f756d77653161","timestamp":96804566796,"duration":4202,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-slick\\lib\\dots.js"}},{"traceId":"a40c92b03843b256","parentId":"3639626730397764","name":"read-resource","id":"3271316471336a32","timestamp":96804566987,"duration":4421,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3268636d33303372","name":"build-module-js","id":"3639626730397764","timestamp":96804566964,"duration":7068,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-slick\\lib\\arrows.js"}},{"traceId":"a40c92b03843b256","parentId":"6371723037363173","name":"read-resource","id":"3831323436323277","timestamp":96804566949,"duration":7239,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3268636d33303372","name":"build-module-js","id":"6371723037363173","timestamp":96804566921,"duration":7752,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-slick\\lib\\initial-state.js"}},{"traceId":"a40c92b03843b256","parentId":"6b65627964733664","name":"read-resource","id":"67707a666d723669","timestamp":96804567678,"duration":9703,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3268636d33303372","name":"build-module-js","id":"6b65627964733664","timestamp":96804567574,"duration":13243,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-slick\\lib\\track.js"}},{"traceId":"a40c92b03843b256","parentId":"6e6a396c6b6d3768","name":"read-resource","id":"3672793373346872","timestamp":96804568074,"duration":14964,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37736f3036363933","name":"build-module-js","id":"6e6a396c6b6d3768","timestamp":96804567963,"duration":15926,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\json2mq\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"6c6168333062676c","name":"read-resource","id":"6e78747678637a66","timestamp":96804585563,"duration":1057,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3268636d33303372","name":"build-module-js","id":"6c6168333062676c","timestamp":96804585471,"duration":2119,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\classnames\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"6a38376534683637","name":"read-resource","id":"627a313162736764","timestamp":96804586038,"duration":1743,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37736f3036363933","name":"build-module-js","id":"6a38376534683637","timestamp":96804585955,"duration":2176,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\enquire.js\\src\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"64673161396e6c67","name":"read-resource","id":"316867736e363575","timestamp":96804586337,"duration":2241,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3268636d33303372","name":"build-module-js","id":"64673161396e6c67","timestamp":96804586292,"duration":4101,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash.debounce\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"6f6b713365386b6f","name":"read-resource","id":"74647573397a7238","timestamp":96804586585,"duration":4042,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3268636d33303372","name":"build-module-js","id":"6f6b713365386b6f","timestamp":96804586539,"duration":12351,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\resize-observer-polyfill\\dist\\ResizeObserver.es.js"}},{"traceId":"a40c92b03843b256","parentId":"7862343879703077","name":"read-resource","id":"676a3734676f7a6e","timestamp":96804599908,"duration":647,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a38376534683637","name":"build-module-js","id":"7862343879703077","timestamp":96804599825,"duration":1654,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\enquire.js\\src\\MediaQueryDispatch.js"}},{"traceId":"a40c92b03843b256","parentId":"726f6a6f31706367","name":"read-resource","id":"6a6c366935646278","timestamp":96804600126,"duration":1964,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e6a396c6b6d3768","name":"build-module-js","id":"726f6a6f31706367","timestamp":96804600090,"duration":2434,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\string-convert\\camel2hyphen.js"}},{"traceId":"a40c92b03843b256","parentId":"75733667656b3373","name":"read-resource","id":"763833713931696c","timestamp":96804603567,"duration":341,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7862343879703077","name":"build-module-js","id":"75733667656b3373","timestamp":96804603539,"duration":1496,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\enquire.js\\src\\MediaQuery.js"}},{"traceId":"a40c92b03843b256","parentId":"36746d6676766931","name":"read-resource","id":"396d7a6561727478","timestamp":96804603476,"duration":1619,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7862343879703077","name":"build-module-js","id":"36746d6676766931","timestamp":96804603406,"duration":2234,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\enquire.js\\src\\Util.js"}},{"traceId":"a40c92b03843b256","parentId":"6e377365646e6668","name":"read-resource","id":"6530636861307964","timestamp":96804607219,"duration":389,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"75733667656b3373","name":"build-module-js","id":"6e377365646e6668","timestamp":96804607136,"duration":1024,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\enquire.js\\src\\QueryHandler.js"}},{"traceId":"a40c92b03843b256","parentId":"3872747075687939","name":"add-entry","id":"387474687a336e64","timestamp":96802804999,"duration":1803269,"tags":{"request":"next-client-pages-loader?page=%2F&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"64396a303271636f","name":"make","id":"77357a796d347667","timestamp":96802804184,"duration":1804113,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3872747075687939","name":"webpack-compilation-chunk-graph","id":"79676f6c7a717838","timestamp":96804614290,"duration":6868,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3872747075687939","name":"webpack-compilation-optimize-modules","id":"3665783877617578","timestamp":96804621244,"duration":28,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3872747075687939","name":"webpack-compilation-optimize-chunks","id":"3737687677383166","timestamp":96804621375,"duration":163,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3872747075687939","name":"webpack-compilation-optimize-tree","id":"6c6f707769756e79","timestamp":96804621666,"duration":121,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3872747075687939","name":"webpack-compilation-optimize","id":"7033343472393967","timestamp":96804621215,"duration":1492,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3872747075687939","name":"webpack-compilation-hash","id":"6d6e6c646374696e","timestamp":96804666618,"duration":8428,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3872747075687939","name":"NextJsBuildManifest-generateClientManifest","id":"7869376b67727270","timestamp":96804758663,"duration":148,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3872747075687939","name":"NextJsBuildManifest-createassets","id":"7134316a34616137","timestamp":96804758498,"duration":325,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3872747075687939","name":"webpack-compilation-seal","id":"7662633961366335","timestamp":96804613352,"duration":147243,"tags":{}}] +[{"traceId":"a40c92b03843b256","parentId":"64396a303271636f","name":"webpack-compilation","id":"3872747075687939","timestamp":96802803574,"duration":1957556,"tags":{"name":"client"}},{"traceId":"a40c92b03843b256","parentId":"64396a303271636f","name":"emit","id":"7668316479736332","timestamp":96804761199,"duration":45065,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-client","id":"64396a303271636f","timestamp":96802800827,"duration":2006704,"tags":{"trigger":"manual"}},{"traceId":"a40c92b03843b256","parentId":"767371366b307966","name":"add-entry","id":"6f65766a326f6161","timestamp":96804826257,"duration":4858,"tags":{"request":"private-next-pages/_error"}},{"traceId":"a40c92b03843b256","parentId":"767371366b307966","name":"add-entry","id":"7374726f6d613576","timestamp":96804826269,"duration":4854,"tags":{"request":"./node_modules\\next\\dist\\pages\\_error.js"}},{"traceId":"a40c92b03843b256","parentId":"767371366b307966","name":"add-entry","id":"7371663134756371","timestamp":96804826144,"duration":5045,"tags":{"request":"private-next-pages/_app"}},{"traceId":"a40c92b03843b256","parentId":"767371366b307966","name":"add-entry","id":"637879663236726a","timestamp":96804826241,"duration":4954,"tags":{"request":"private-next-pages/_document"}},{"traceId":"a40c92b03843b256","parentId":"35376b6871647673","name":"read-resource","id":"6c77753576616b77","timestamp":96804830647,"duration":762,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"39626b6767746d67","name":"get-options","id":"65706871646c7a69","timestamp":96804831492,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c61687a6961766c","name":"babel-turbo-get-config","id":"7066336f3567626e","timestamp":96804831508,"duration":23,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c61687a6961766c","name":"babel-turbo-normalize-file","id":"7a73646b69357732","timestamp":96804831536,"duration":1448,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3438313933793872","name":"babel-turbo-traverse","id":"6272617a6d6e7266","timestamp":96804833202,"duration":5294,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c61687a6961766c","name":"babel-turbo-transform","id":"3438313933793872","timestamp":96804833006,"duration":5502,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c61687a6961766c","name":"babel-turbo-generate","id":"6e3772787561646c","timestamp":96804838531,"duration":1232,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"39626b6767746d67","name":"next-babel-turbo-transform","id":"6c61687a6961766c","timestamp":96804831504,"duration":8266,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"35376b6871647673","name":"next-babel-turbo-loader","id":"39626b6767746d67","timestamp":96804831484,"duration":8307,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"767371366b307966","name":"build-module-jsx","id":"35376b6871647673","timestamp":96804830390,"duration":10793,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\pages\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"6867326a79357979","name":"read-resource","id":"64716c68366d3531","timestamp":96804859864,"duration":2387,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"64616c657a763570","name":"get-options","id":"7a686e6c74776d35","timestamp":96804862293,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"786f376a77303036","name":"babel-turbo-get-config","id":"30663864396e6666","timestamp":96804862301,"duration":13,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"786f376a77303036","name":"babel-turbo-normalize-file","id":"3272703374657439","timestamp":96804862317,"duration":827,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"706a3461667a6a35","name":"babel-turbo-traverse","id":"3831683565326d61","timestamp":96804863323,"duration":2611,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"786f376a77303036","name":"babel-turbo-transform","id":"706a3461667a6a35","timestamp":96804863162,"duration":2782,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"786f376a77303036","name":"babel-turbo-generate","id":"72786c6f79323172","timestamp":96804865961,"duration":558,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"64616c657a763570","name":"next-babel-turbo-transform","id":"786f376a77303036","timestamp":96804862299,"duration":4223,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6867326a79357979","name":"next-babel-turbo-loader","id":"64616c657a763570","timestamp":96804862289,"duration":4249,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"35376b6871647673","name":"build-module-jsx","id":"6867326a79357979","timestamp":96804859750,"duration":7562,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\layouts\\Light.jsx"}},{"traceId":"a40c92b03843b256","parentId":"3833646469667a6f","name":"read-resource","id":"6a66697970677074","timestamp":96804861083,"duration":6670,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6372786569613179","name":"get-options","id":"6b62656630356332","timestamp":96804867781,"duration":3,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"61616a396e78657a","name":"babel-turbo-get-config","id":"776868756639346c","timestamp":96804867789,"duration":11,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"61616a396e78657a","name":"babel-turbo-normalize-file","id":"6275306e76657435","timestamp":96804867802,"duration":1458,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"616379666f786e36","name":"babel-turbo-traverse","id":"676b33776b753131","timestamp":96804869437,"duration":27824,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"61616a396e78657a","name":"babel-turbo-transform","id":"616379666f786e36","timestamp":96804869284,"duration":27991,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"61616a396e78657a","name":"babel-turbo-generate","id":"6f6a72626b65397a","timestamp":96804897303,"duration":1817,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6372786569613179","name":"next-babel-turbo-transform","id":"61616a396e78657a","timestamp":96804867786,"duration":31340,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3833646469667a6f","name":"next-babel-turbo-loader","id":"6372786569613179","timestamp":96804867777,"duration":31369,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"35376b6871647673","name":"build-module-jsx","id":"3833646469667a6f","timestamp":96804861045,"duration":39824,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Team\\team.jsx"}},{"traceId":"a40c92b03843b256","parentId":"6b65736f68766439","name":"read-resource","id":"32313832357a397a","timestamp":96804861293,"duration":39638,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3277617170637731","name":"get-options","id":"3339397934797361","timestamp":96804900972,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"75656c7165707732","name":"babel-turbo-get-config","id":"33767267656e3133","timestamp":96804900982,"duration":18,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"75656c7165707732","name":"babel-turbo-normalize-file","id":"7637676e6a327033","timestamp":96804901002,"duration":1590,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e7064756b6f7131","name":"babel-turbo-traverse","id":"6939756b6d687738","timestamp":96804902803,"duration":21137,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"75656c7165707732","name":"babel-turbo-transform","id":"6e7064756b6f7131","timestamp":96804902621,"duration":21331,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"75656c7165707732","name":"babel-turbo-generate","id":"6d7a676f30323367","timestamp":96804923977,"duration":2032,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3277617170637731","name":"next-babel-turbo-transform","id":"75656c7165707732","timestamp":96804900979,"duration":25040,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b65736f68766439","name":"next-babel-turbo-loader","id":"3277617170637731","timestamp":96804900967,"duration":25078,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"35376b6871647673","name":"build-module-jsx","id":"6b65736f68766439","timestamp":96804861195,"duration":66972,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Navbar\\navbar.jsx"}},{"traceId":"a40c92b03843b256","parentId":"6972696165713273","name":"read-resource","id":"6f793661306d796b","timestamp":96804861392,"duration":66836,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7573666869696563","name":"get-options","id":"683475666f637036","timestamp":96804928276,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"307a713834666e6b","name":"babel-turbo-get-config","id":"666a347067376879","timestamp":96804928285,"duration":19,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"307a713834666e6b","name":"babel-turbo-normalize-file","id":"7871746c756d3173","timestamp":96804928306,"duration":2506,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"30373866366d6632","name":"babel-turbo-traverse","id":"6b69773964317379","timestamp":96804931030,"duration":49189,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"307a713834666e6b","name":"babel-turbo-transform","id":"30373866366d6632","timestamp":96804930870,"duration":49364,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"307a713834666e6b","name":"babel-turbo-generate","id":"34346c306162326d","timestamp":96804980264,"duration":4261,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7573666869696563","name":"next-babel-turbo-transform","id":"307a713834666e6b","timestamp":96804928283,"duration":56250,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6972696165713273","name":"next-babel-turbo-loader","id":"7573666869696563","timestamp":96804928270,"duration":56285,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"35376b6871647673","name":"build-module-jsx","id":"6972696165713273","timestamp":96804861354,"duration":125859,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Full-testimonials\\full-testimonials.jsx"}},{"traceId":"a40c92b03843b256","parentId":"64776c3679376276","name":"read-resource","id":"7664733063636464","timestamp":96804861140,"duration":126114,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3763716a75756d66","name":"get-options","id":"306f74326f313272","timestamp":96804987292,"duration":3,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3834747372396534","name":"babel-turbo-get-config","id":"7a6e653563336b72","timestamp":96804987300,"duration":14,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3834747372396534","name":"babel-turbo-normalize-file","id":"32316e7679646c6e","timestamp":96804987317,"duration":880,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"626b6f7274363767","name":"babel-turbo-traverse","id":"3077376e30323179","timestamp":96804988384,"duration":10775,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3834747372396534","name":"babel-turbo-transform","id":"626b6f7274363767","timestamp":96804988220,"duration":10951,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3834747372396534","name":"babel-turbo-generate","id":"74306436696b3138","timestamp":96804999193,"duration":1042,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3763716a75756d66","name":"next-babel-turbo-transform","id":"3834747372396534","timestamp":96804987298,"duration":12944,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"64776c3679376276","name":"next-babel-turbo-loader","id":"3763716a75756d66","timestamp":96804987287,"duration":12974,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"35376b6871647673","name":"build-module-jsx","id":"64776c3679376276","timestamp":96804861098,"duration":140220,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Call-to-action\\call-to-action.jsx"}},{"traceId":"a40c92b03843b256","parentId":"67616b6937627a74","name":"read-resource","id":"7261633135673339","timestamp":96804861342,"duration":140016,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69723676786d3062","name":"get-options","id":"3230356579633373","timestamp":96805001391,"duration":3,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3171727471613667","name":"babel-turbo-get-config","id":"3271687333336370","timestamp":96805001399,"duration":13,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3171727471613667","name":"babel-turbo-normalize-file","id":"3564676b6c6c6674","timestamp":96805001414,"duration":1364,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6362796a69703862","name":"babel-turbo-traverse","id":"7638626532663679","timestamp":96805002981,"duration":27784,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3171727471613667","name":"babel-turbo-transform","id":"6362796a69703862","timestamp":96805002803,"duration":27975,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3171727471613667","name":"babel-turbo-generate","id":"3533743366627563","timestamp":96805030805,"duration":2428,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69723676786d3062","name":"next-babel-turbo-transform","id":"3171727471613667","timestamp":96805001397,"duration":31847,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"67616b6937627a74","name":"next-babel-turbo-loader","id":"69723676786d3062","timestamp":96805001386,"duration":31886,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"35376b6871647673","name":"build-module-jsx","id":"67616b6937627a74","timestamp":96804861309,"duration":174212,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Services3\\services3.jsx"}},{"traceId":"a40c92b03843b256","parentId":"793766356f627a79","name":"read-resource","id":"74367a7061346972","timestamp":96804861015,"duration":174589,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3278766e6c377874","name":"get-options","id":"6c38776e66363564","timestamp":96805035669,"duration":7,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b3931386b303177","name":"babel-turbo-get-config","id":"3539356c6a366f77","timestamp":96805035685,"duration":28,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b3931386b303177","name":"babel-turbo-normalize-file","id":"61747565716c3461","timestamp":96805035717,"duration":1568,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"356a793768397861","name":"babel-turbo-traverse","id":"706f723676386732","timestamp":96805037467,"duration":30534,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b3931386b303177","name":"babel-turbo-transform","id":"356a793768397861","timestamp":96805037308,"duration":30704,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b3931386b303177","name":"babel-turbo-generate","id":"396561383230736d","timestamp":96805068043,"duration":2032,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3278766e6c377874","name":"next-babel-turbo-transform","id":"6b3931386b303177","timestamp":96805035680,"duration":34401,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"793766356f627a79","name":"next-babel-turbo-loader","id":"3278766e6c377874","timestamp":96805035661,"duration":34440,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"35376b6871647673","name":"build-module-jsx","id":"793766356f627a79","timestamp":96804860899,"duration":210801,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\About-us3\\about-us3.jsx"}},{"traceId":"a40c92b03843b256","parentId":"656f656172676e68","name":"read-resource","id":"3077306231746b75","timestamp":96804861444,"duration":210297,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"646569687a337739","name":"get-options","id":"676761647573776b","timestamp":96805071777,"duration":3,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"74666e686469306f","name":"babel-turbo-get-config","id":"7030616b6c707274","timestamp":96805071785,"duration":15,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"74666e686469306f","name":"babel-turbo-normalize-file","id":"7a71613761333533","timestamp":96805071830,"duration":1263,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7039797462366870","name":"babel-turbo-traverse","id":"6f357435626e6630","timestamp":96805073287,"duration":28267,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"74666e686469306f","name":"babel-turbo-transform","id":"7039797462366870","timestamp":96805073119,"duration":28451,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"74666e686469306f","name":"babel-turbo-generate","id":"647169696d786a78","timestamp":96805101599,"duration":3844,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"646569687a337739","name":"next-babel-turbo-transform","id":"74666e686469306f","timestamp":96805071783,"duration":33671,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"656f656172676e68","name":"next-babel-turbo-loader","id":"646569687a337739","timestamp":96805071773,"duration":33707,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"35376b6871647673","name":"build-module-jsx","id":"656f656172676e68","timestamp":96804861405,"duration":245638,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Footer\\footer.jsx"}},{"traceId":"a40c92b03843b256","parentId":"39703637637a7475","name":"read-resource","id":"3472316767317768","timestamp":96804861180,"duration":245930,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"676e637a62727531","name":"get-options","id":"6273726662373864","timestamp":96805107154,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f6a7a7531636531","name":"babel-turbo-get-config","id":"6d7a6c6570716561","timestamp":96805107163,"duration":19,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f6a7a7531636531","name":"babel-turbo-normalize-file","id":"6d79383578376277","timestamp":96805107184,"duration":2775,"tags":{}}] +[{"traceId":"a40c92b03843b256","parentId":"7a673761346d7a34","name":"babel-turbo-traverse","id":"7565687a70763132","timestamp":96805110436,"duration":64482,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f6a7a7531636531","name":"babel-turbo-transform","id":"7a673761346d7a34","timestamp":96805110248,"duration":64684,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f6a7a7531636531","name":"babel-turbo-generate","id":"747538696c39386a","timestamp":96805174961,"duration":4518,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"676e637a62727531","name":"next-babel-turbo-transform","id":"6f6a7a7531636531","timestamp":96805107161,"duration":72328,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"39703637637a7475","name":"next-babel-turbo-loader","id":"676e637a62727531","timestamp":96805107149,"duration":72366,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"35376b6871647673","name":"build-module-jsx","id":"39703637637a7475","timestamp":96804861153,"duration":320848,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Works3\\works3.jsx"}},{"traceId":"a40c92b03843b256","parentId":"3736757737776d76","name":"read-resource","id":"6c6a6b7a64783267","timestamp":96804861485,"duration":322875,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"653537676230666a","name":"get-options","id":"72747a6e70767774","timestamp":96805184431,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"70697471396f3932","name":"babel-turbo-get-config","id":"6734633137397136","timestamp":96805184442,"duration":14,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"70697471396f3932","name":"babel-turbo-normalize-file","id":"7a326b776b6a7738","timestamp":96805184459,"duration":840,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"356461337a656a77","name":"babel-turbo-traverse","id":"3734353578346f71","timestamp":96805185481,"duration":6267,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"70697471396f3932","name":"babel-turbo-transform","id":"356461337a656a77","timestamp":96805185326,"duration":6435,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"70697471396f3932","name":"babel-turbo-generate","id":"6673313462796a35","timestamp":96805191784,"duration":919,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"653537676230666a","name":"next-babel-turbo-transform","id":"70697471396f3932","timestamp":96805184439,"duration":8272,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3736757737776d76","name":"next-babel-turbo-loader","id":"653537676230666a","timestamp":96805184426,"duration":8308,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"35376b6871647673","name":"build-module-jsx","id":"3736757737776d76","timestamp":96804861457,"duration":332251,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Intro4\\intro4.jsx"}},{"traceId":"a40c92b03843b256","parentId":"3875397269307a6c","name":"read-resource","id":"776e3079356f3732","timestamp":96804862168,"duration":336992,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a73763767763563","name":"get-options","id":"666e7578396b6461","timestamp":96805199262,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6978347465786872","name":"babel-turbo-get-config","id":"3970753337333667","timestamp":96805199281,"duration":16,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6978347465786872","name":"babel-turbo-normalize-file","id":"7663736839746375","timestamp":96805199299,"duration":1027,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"633572653665797a","name":"babel-turbo-traverse","id":"6e73633376367664","timestamp":96805200500,"duration":13617,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6978347465786872","name":"babel-turbo-transform","id":"633572653665797a","timestamp":96805200350,"duration":13778,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6978347465786872","name":"babel-turbo-generate","id":"646e78366f316262","timestamp":96805214151,"duration":1191,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a73763767763563","name":"next-babel-turbo-transform","id":"6978347465786872","timestamp":96805199278,"duration":16068,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3875397269307a6c","name":"next-babel-turbo-loader","id":"6a73763767763563","timestamp":96805199257,"duration":16108,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"35376b6871647673","name":"build-module-jsx","id":"3875397269307a6c","timestamp":96804862054,"duration":354312,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Minimal-Area2\\minimal-area2.jsx"}},{"traceId":"a40c92b03843b256","parentId":"35396731346b386c","name":"read-resource","id":"3272777066697332","timestamp":96804867645,"duration":350868,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"796e35703378307a","name":"get-options","id":"3278766339756473","timestamp":96805218569,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6262643773657539","name":"babel-turbo-get-config","id":"693875647833686f","timestamp":96805218579,"duration":18,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6262643773657539","name":"babel-turbo-normalize-file","id":"3069356d70786b67","timestamp":96805218627,"duration":4259,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7533373772706364","name":"babel-turbo-traverse","id":"37766a6130727931","timestamp":96805223148,"duration":85433,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6262643773657539","name":"babel-turbo-transform","id":"7533373772706364","timestamp":96805222917,"duration":85678,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6262643773657539","name":"babel-turbo-generate","id":"3071356a71356f6d","timestamp":96805308621,"duration":7876,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"796e35703378307a","name":"next-babel-turbo-transform","id":"6262643773657539","timestamp":96805218577,"duration":97935,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"35396731346b386c","name":"next-babel-turbo-loader","id":"796e35703378307a","timestamp":96805218565,"duration":97978,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"35376b6871647673","name":"build-module-jsx","id":"35396731346b386c","timestamp":96804867544,"duration":452298,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\blogs\\Blogs4\\blogs4.jsx"}},{"traceId":"a40c92b03843b256","parentId":"6565777a396d3674","name":"read-resource","id":"61337a3633613773","timestamp":96805325179,"duration":4458,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7536723364366e6c","name":"get-options","id":"6a6e363478616970","timestamp":96805329698,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6330366536616c6c","name":"babel-turbo-get-config","id":"696b307a6a6a6964","timestamp":96805329716,"duration":16,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6330366536616c6c","name":"babel-turbo-normalize-file","id":"70686a7a34716672","timestamp":96805329734,"duration":809,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a74763330353965","name":"babel-turbo-traverse","id":"363168677a78696e","timestamp":96805330737,"duration":1252,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6330366536616c6c","name":"babel-turbo-transform","id":"7a74763330353965","timestamp":96805330562,"duration":1436,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6330366536616c6c","name":"babel-turbo-generate","id":"6a67347631766e69","timestamp":96805332013,"duration":501,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7536723364366e6c","name":"next-babel-turbo-transform","id":"6330366536616c6c","timestamp":96805329713,"duration":2805,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6565777a396d3674","name":"next-babel-turbo-loader","id":"7536723364366e6c","timestamp":96805329693,"duration":2850,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b65736f68766439","name":"build-module-js","id":"6565777a396d3674","timestamp":96805325076,"duration":8122,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\common\\navbar.js"}},{"traceId":"a40c92b03843b256","parentId":"6e61717336717463","name":"read-resource","id":"6d67636e6b317932","timestamp":96805325363,"duration":8103,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"363739777534346a","name":"get-options","id":"717a6a78346c7665","timestamp":96805333498,"duration":3,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3165746c75337439","name":"babel-turbo-get-config","id":"36797471376f357a","timestamp":96805333506,"duration":15,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3165746c75337439","name":"babel-turbo-normalize-file","id":"706b69766e756d35","timestamp":96805333548,"duration":523,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"70666a6830327679","name":"babel-turbo-traverse","id":"6167333279387133","timestamp":96805334214,"duration":564,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3165746c75337439","name":"babel-turbo-transform","id":"70666a6830327679","timestamp":96805334080,"duration":703,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3165746c75337439","name":"babel-turbo-generate","id":"3533693465303934","timestamp":96805334794,"duration":339,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"363739777534346a","name":"next-babel-turbo-transform","id":"3165746c75337439","timestamp":96805333504,"duration":1630,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e61717336717463","name":"next-babel-turbo-loader","id":"363739777534346a","timestamp":96805333494,"duration":1658,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3833646469667a6f","name":"build-module-js","id":"6e61717336717463","timestamp":96805325338,"duration":10294,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\common\\teamSkillsProgress.js"}},{"traceId":"a40c92b03843b256","parentId":"37733369707a6b35","name":"read-resource","id":"316b3575626a6479","timestamp":96805325281,"duration":10401,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"783330667a646d65","name":"get-options","id":"6264317662636f37","timestamp":96805335709,"duration":3,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3135633665386665","name":"babel-turbo-get-config","id":"33756b786167686d","timestamp":96805335717,"duration":10,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3135633665386665","name":"babel-turbo-normalize-file","id":"696c71386766356f","timestamp":96805335728,"duration":633,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6536626c30763831","name":"babel-turbo-traverse","id":"38737264766e6779","timestamp":96805336523,"duration":653,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3135633665386665","name":"babel-turbo-transform","id":"6536626c30763831","timestamp":96805336378,"duration":809,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3135633665386665","name":"babel-turbo-generate","id":"6872336638753775","timestamp":96805337205,"duration":430,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"783330667a646d65","name":"next-babel-turbo-transform","id":"3135633665386665","timestamp":96805335714,"duration":1926,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37733369707a6b35","name":"next-babel-turbo-loader","id":"783330667a646d65","timestamp":96805335705,"duration":1954,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"67616b6937627a74","name":"build-module-js","id":"37733369707a6b35","timestamp":96805325252,"duration":13046,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\common\\cardMouseEffect.js"}},{"traceId":"a40c92b03843b256","parentId":"7a69643675687675","name":"read-resource","id":"6c3531336e386b77","timestamp":96805325326,"duration":13012,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"377a797764396638","name":"get-options","id":"7076663269346975","timestamp":96805338371,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"616b70696e747368","name":"babel-turbo-get-config","id":"6961773176613865","timestamp":96805338380,"duration":14,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"616b70696e747368","name":"babel-turbo-normalize-file","id":"766c633473756d76","timestamp":96805338396,"duration":560,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7261367267756a6d","name":"babel-turbo-traverse","id":"6479776d72357368","timestamp":96805339101,"duration":490,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"616b70696e747368","name":"babel-turbo-transform","id":"7261367267756a6d","timestamp":96805338968,"duration":626,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"616b70696e747368","name":"babel-turbo-generate","id":"6a396462666a346e","timestamp":96805339600,"duration":318,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"377a797764396638","name":"next-babel-turbo-transform","id":"616b70696e747368","timestamp":96805338378,"duration":1543,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a69643675687675","name":"next-babel-turbo-loader","id":"377a797764396638","timestamp":96805338367,"duration":1570,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"793766356f627a79","name":"build-module-js","id":"7a69643675687675","timestamp":96805325301,"duration":15112,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\common\\thumparallax.js"}},{"traceId":"a40c92b03843b256","parentId":"6b3277627a687832","name":"read-resource","id":"766c7370666e3470","timestamp":96805325239,"duration":15235,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"796e6a683779386b","name":"get-options","id":"6c34303831627077","timestamp":96805340501,"duration":3,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a6d3038686c7439","name":"babel-turbo-get-config","id":"75376c616864797a","timestamp":96805340509,"duration":12,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a6d3038686c7439","name":"babel-turbo-normalize-file","id":"647a78626a683375","timestamp":96805340523,"duration":1147,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f6f673974386b63","name":"babel-turbo-traverse","id":"6c316f717966336a","timestamp":96805341849,"duration":1989,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a6d3038686c7439","name":"babel-turbo-transform","id":"6f6f673974386b63","timestamp":96805341692,"duration":2160,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a6d3038686c7439","name":"babel-turbo-generate","id":"6d72663363736566","timestamp":96805343878,"duration":1096,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"796e6a683779386b","name":"next-babel-turbo-transform","id":"6a6d3038686c7439","timestamp":96805340507,"duration":4476,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b3277627a687832","name":"next-babel-turbo-loader","id":"796e6a683779386b","timestamp":96805340498,"duration":4509,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3833646469667a6f","name":"build-module-js","id":"6b3277627a687832","timestamp":96805325205,"duration":20865,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\common\\tooltipEffect.js"}},{"traceId":"a40c92b03843b256","parentId":"747a736532726333","name":"read-resource","id":"7279773161356776","timestamp":96805328351,"duration":22988,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"793766356f627a79","name":"build-module-json","id":"747a736532726333","timestamp":96805328269,"duration":23226,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\data\\sections\\about-us3.json"}},{"traceId":"a40c92b03843b256","parentId":"6b666b6864727a6a","name":"read-resource","id":"7167713875633632","timestamp":96805328388,"duration":23153,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"39703637637a7475","name":"build-module-json","id":"6b666b6864727a6a","timestamp":96805328367,"duration":23236,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\data\\sections\\works.json"}},{"traceId":"a40c92b03843b256","parentId":"6231673168646771","name":"read-resource","id":"366171337a337330","timestamp":96805328424,"duration":23187,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3833646469667a6f","name":"build-module-json","id":"6231673168646771","timestamp":96805328399,"duration":23274,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\data\\sections\\team.json"}},{"traceId":"a40c92b03843b256","parentId":"6c656e356d757263","name":"read-resource","id":"7667393933327a70","timestamp":96805346574,"duration":10346,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3564356567306c6c","name":"get-options","id":"6c6b316d3532686a","timestamp":96805356969,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7137306570666e66","name":"babel-turbo-get-config","id":"6a68676966766d70","timestamp":96805356979,"duration":11,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7137306570666e66","name":"babel-turbo-normalize-file","id":"357272736769327a","timestamp":96805356992,"duration":445,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7178346973783574","name":"babel-turbo-traverse","id":"6b77677776316b78","timestamp":96805357618,"duration":472,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7137306570666e66","name":"babel-turbo-transform","id":"7178346973783574","timestamp":96805357448,"duration":653,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7137306570666e66","name":"babel-turbo-generate","id":"62773761746b7873","timestamp":96805358116,"duration":303,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3564356567306c6c","name":"next-babel-turbo-transform","id":"7137306570666e66","timestamp":96805356976,"duration":1448,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c656e356d757263","name":"next-babel-turbo-loader","id":"3564356567306c6c","timestamp":96805356965,"duration":1481,"tags":{}}] +[{"traceId":"a40c92b03843b256","parentId":"35396731346b386c","name":"build-module-js","id":"6c656e356d757263","timestamp":96805346541,"duration":12638,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\common\\removeSlashpagination.js"}},{"traceId":"a40c92b03843b256","parentId":"766d333274373668","name":"read-resource","id":"3072777966656d35","timestamp":96805346499,"duration":12784,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3331363530367078","name":"get-options","id":"79786f30696f636a","timestamp":96805359315,"duration":3,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c30346c63756378","name":"babel-turbo-get-config","id":"7a6878687833786c","timestamp":96805359325,"duration":14,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c30346c63756378","name":"babel-turbo-normalize-file","id":"3872356869756f76","timestamp":96805359341,"duration":8584,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6135683769303276","name":"babel-turbo-traverse","id":"67766b3539773973","timestamp":96805368168,"duration":4782,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c30346c63756378","name":"babel-turbo-transform","id":"6135683769303276","timestamp":96805367956,"duration":5012,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c30346c63756378","name":"babel-turbo-generate","id":"396d693174643363","timestamp":96805372995,"duration":1140,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3331363530367078","name":"next-babel-turbo-transform","id":"6c30346c63756378","timestamp":96805359323,"duration":14820,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766d333274373668","name":"next-babel-turbo-loader","id":"3331363530367078","timestamp":96805359310,"duration":14860,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3736757737776d76","name":"build-module-js","id":"766d333274373668","timestamp":96805346371,"duration":28460,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\config\\pr-s-black.js"}},{"traceId":"a40c92b03843b256","parentId":"746566656b767375","name":"read-resource","id":"6f7070376b676933","timestamp":96805353268,"duration":34891,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"39703637637a7475","name":"build-module-css","id":"746566656b767375","timestamp":96805353097,"duration":35386,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\swiper.min.css"}},{"traceId":"a40c92b03843b256","parentId":"3136663374773865","name":"read-resource","id":"7433376f30786738","timestamp":96805375237,"duration":14267,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"786a71617a71726c","name":"get-options","id":"6463743769703861","timestamp":96805389632,"duration":7,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"74387a7032346d63","name":"babel-turbo-get-config","id":"6b70617031727667","timestamp":96805389645,"duration":22,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"74387a7032346d63","name":"babel-turbo-normalize-file","id":"6d6e6967647a3762","timestamp":96805389670,"duration":1868,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"30366c7534393875","name":"babel-turbo-traverse","id":"6d37776538763668","timestamp":96805392180,"duration":3816,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"74387a7032346d63","name":"babel-turbo-transform","id":"30366c7534393875","timestamp":96805391573,"duration":4440,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"74387a7032346d63","name":"babel-turbo-generate","id":"32306131377a6b35","timestamp":96805396045,"duration":1248,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"786a71617a71726c","name":"next-babel-turbo-transform","id":"74387a7032346d63","timestamp":96805389642,"duration":7662,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3136663374773865","name":"next-babel-turbo-loader","id":"786a71617a71726c","timestamp":96805389625,"duration":7708,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b3277627a687832","name":"build-module-js","id":"3136663374773865","timestamp":96805375203,"duration":23176,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\common\\fadeInFadeOut.js"}},{"traceId":"a40c92b03843b256","parentId":"7033767166786f35","name":"read-resource","id":"376e6872636c7a76","timestamp":96805375161,"duration":23286,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72756e7570663533","name":"get-options","id":"73696b6e736a767a","timestamp":96805398494,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3031356964317968","name":"babel-turbo-get-config","id":"33397a6a77696733","timestamp":96805398504,"duration":19,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3031356964317968","name":"babel-turbo-normalize-file","id":"6161327063797478","timestamp":96805398525,"duration":1101,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6878763076343374","name":"babel-turbo-traverse","id":"7776743977637966","timestamp":96805400133,"duration":932,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3031356964317968","name":"babel-turbo-transform","id":"6878763076343374","timestamp":96805399670,"duration":1410,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3031356964317968","name":"babel-turbo-generate","id":"66693563696b3968","timestamp":96805401110,"duration":449,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72756e7570663533","name":"next-babel-turbo-transform","id":"3031356964317968","timestamp":96805398502,"duration":3063,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7033767166786f35","name":"next-babel-turbo-loader","id":"72756e7570663533","timestamp":96805398487,"duration":3101,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6565777a396d3674","name":"build-module-js","id":"7033767166786f35","timestamp":96805375034,"duration":27423,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\common\\getSiblings.js"}},{"traceId":"a40c92b03843b256","parentId":"723831316e763639","name":"read-resource","id":"77746a3631736a70","timestamp":96805376372,"duration":26866,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"39703637637a7475","name":"build-module-css","id":"723831316e763639","timestamp":96805376343,"duration":27130,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\modules\\navigation\\navigation.min.css"}},{"traceId":"a40c92b03843b256","parentId":"77676f673262616f","name":"read-resource","id":"683069716e616576","timestamp":96805376413,"duration":27086,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"39703637637a7475","name":"build-module-css","id":"77676f673262616f","timestamp":96805376385,"duration":27192,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\modules\\pagination\\pagination.min.css"}},{"traceId":"a40c92b03843b256","parentId":"3163707363306235","name":"read-resource","id":"716a6578666a3866","timestamp":96805376267,"duration":27319,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6972696165713273","name":"build-module-css","id":"3163707363306235","timestamp":96805376147,"duration":27521,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\slick-carousel\\slick\\slick-theme.css"}},{"traceId":"a40c92b03843b256","parentId":"3571333536726b6c","name":"read-resource","id":"3936336839363767","timestamp":96805376327,"duration":27351,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6972696165713273","name":"build-module-css","id":"3571333536726b6c","timestamp":96805376296,"duration":27468,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\slick-carousel\\slick\\slick.css"}},{"traceId":"a40c92b03843b256","parentId":"7a6a366b36793968","name":"read-resource","id":"3170696e30626974","timestamp":96805376451,"duration":27324,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"35396731346b386c","name":"build-module-css","id":"7a6a366b36793968","timestamp":96805376427,"duration":27420,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\swiper\\modules\\effect-fade\\effect-fade.min.css"}},{"traceId":"a40c92b03843b256","parentId":"767371366b307966","name":"add-entry","id":"7439797465727433","timestamp":96804826283,"duration":579252,"tags":{"request":"./src\\pages\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"3464357562376e6c","name":"make","id":"30367a746b763930","timestamp":96804809139,"duration":596429,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"767371366b307966","name":"webpack-compilation-chunk-graph","id":"65343869736f786b","timestamp":96805407975,"duration":1695,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"767371366b307966","name":"webpack-compilation-optimize-modules","id":"7331653462796f75","timestamp":96805409739,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"767371366b307966","name":"webpack-compilation-optimize-chunks","id":"367733736f337964","timestamp":96805409760,"duration":69,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"767371366b307966","name":"webpack-compilation-optimize-tree","id":"7467706f71627475","timestamp":96805409868,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"767371366b307966","name":"webpack-compilation-optimize","id":"393872627a7a3575","timestamp":96805409720,"duration":2120,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"767371366b307966","name":"webpack-compilation-hash","id":"356b6274797a6863","timestamp":96805427834,"duration":1916,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"767371366b307966","name":"webpack-compilation-seal","id":"363876716a6b6378","timestamp":96805407774,"duration":36411,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3464357562376e6c","name":"webpack-compilation","id":"767371366b307966","timestamp":96804808852,"duration":635403,"tags":{"name":"server"}},{"traceId":"a40c92b03843b256","parentId":"3464357562376e6c","name":"emit","id":"683731616f306d72","timestamp":96805444316,"duration":9998,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-server","id":"3464357562376e6c","timestamp":96802801430,"duration":2653987,"tags":{"trigger":"manual"}}] +[{"traceId":"a40c92b03843b256","parentId":"3835656135673068","name":"next-client-pages-loader","id":"336e623971386862","timestamp":96805697338,"duration":103,"tags":{"absolutePagePath":"C:\\Users\\hp\\Desktop\\business-hub\\src\\pages\\404.js"}},{"traceId":"a40c92b03843b256","parentId":"6f333868366a7037","name":"build-module-js!","id":"3835656135673068","timestamp":96805697162,"duration":938,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-client-pages-loader.js?page=%2F404&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5C404.js!"}},{"traceId":"a40c92b03843b256","parentId":"6f333868366a7037","name":"add-entry","id":"667065736b36637a","timestamp":96805691625,"duration":14567,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"6f333868366a7037","name":"add-entry","id":"6765746f686b6b6c","timestamp":96805691804,"duration":15971,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=private-next-pages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"6f333868366a7037","name":"add-entry","id":"33766933746a7337","timestamp":96805691828,"duration":15968,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Cnode_modules%5Cnext%5Cdist%5Cpages%5C_error.js!"}},{"traceId":"a40c92b03843b256","parentId":"6f333868366a7037","name":"add-entry","id":"3070386a6b697278","timestamp":96805691794,"duration":16431,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"6f333868366a7037","name":"add-entry","id":"30376d676d6d6b71","timestamp":96805691735,"duration":18074,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"}},{"traceId":"a40c92b03843b256","parentId":"6f333868366a7037","name":"add-entry","id":"77733532636a6c35","timestamp":96805691754,"duration":18707,"tags":{"request":"next-client-pages-loader?page=%2F_app&absolutePagePath=private-next-pages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"663038326c6b7333","name":"read-resource","id":"3168726734727531","timestamp":96805708565,"duration":5349,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"326d653961736d64","name":"get-options","id":"696b676e627a3869","timestamp":96805713974,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"676b383432737574","name":"babel-turbo-get-config","id":"356f306b6f716e6f","timestamp":96805713986,"duration":14,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"676b383432737574","name":"babel-turbo-normalize-file","id":"727a746a6d357674","timestamp":96805714004,"duration":484,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"67307565636e3075","name":"babel-turbo-traverse","id":"6a6d717038373570","timestamp":96805714923,"duration":2228,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"676b383432737574","name":"babel-turbo-transform","id":"67307565636e3075","timestamp":96805714501,"duration":2671,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"676b383432737574","name":"babel-turbo-generate","id":"7830793874637868","timestamp":96805717198,"duration":387,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"326d653961736d64","name":"next-babel-turbo-transform","id":"676b383432737574","timestamp":96805713982,"duration":3605,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"663038326c6b7333","name":"next-babel-turbo-loader","id":"326d653961736d64","timestamp":96805713967,"duration":3636,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3835656135673068","name":"build-module-js","id":"663038326c6b7333","timestamp":96805708314,"duration":10263,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\pages\\404.js"}},{"traceId":"a40c92b03843b256","parentId":"6f333868366a7037","name":"add-entry","id":"74366167656a6f63","timestamp":96805691837,"duration":30051,"tags":{"request":"next-client-pages-loader?page=%2F404&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5C404.js!"}},{"traceId":"a40c92b03843b256","parentId":"6f333868366a7037","name":"add-entry","id":"7273796e6a613465","timestamp":96805691746,"duration":30154,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"6f333868366a7037","name":"add-entry","id":"6c30757069337369","timestamp":96805691810,"duration":38580,"tags":{"request":"next-client-pages-loader?page=%2F&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"69336f3162797231","name":"make","id":"666273746b616a34","timestamp":96805690406,"duration":40059,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f333868366a7037","name":"webpack-compilation-chunk-graph","id":"7a336d7277326d69","timestamp":96805732697,"duration":3487,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f333868366a7037","name":"webpack-compilation-optimize-modules","id":"3476796a30307968","timestamp":96805736309,"duration":24,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f333868366a7037","name":"webpack-compilation-optimize-chunks","id":"6f3172656f697770","timestamp":96805736361,"duration":145,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f333868366a7037","name":"webpack-compilation-optimize-tree","id":"3964676972316374","timestamp":96805736549,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f333868366a7037","name":"webpack-compilation-optimize","id":"6774627732747871","timestamp":96805736284,"duration":1002,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f333868366a7037","name":"webpack-compilation-hash","id":"7a64763773316c71","timestamp":96805746325,"duration":5813,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f333868366a7037","name":"NextJsBuildManifest-generateClientManifest","id":"303136326e647937","timestamp":96805754994,"duration":129,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f333868366a7037","name":"NextJsBuildManifest-createassets","id":"636b616767686e6f","timestamp":96805754900,"duration":236,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f333868366a7037","name":"webpack-compilation-seal","id":"6e70317078616233","timestamp":96805731848,"duration":24894,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69336f3162797231","name":"webpack-compilation","id":"6f333868366a7037","timestamp":96805690019,"duration":66796,"tags":{"name":"client"}},{"traceId":"a40c92b03843b256","parentId":"69336f3162797231","name":"emit","id":"7033796879677732","timestamp":96805756971,"duration":16846,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-client","id":"69336f3162797231","timestamp":96805686455,"duration":88156,"tags":{"trigger":"manual"}},{"traceId":"a40c92b03843b256","parentId":"70316a7938357069","name":"add-entry","id":"6967316b66637734","timestamp":96805781259,"duration":9735,"tags":{"request":"private-next-pages/_error"}},{"traceId":"a40c92b03843b256","parentId":"70316a7938357069","name":"add-entry","id":"307736316c323176","timestamp":96805781418,"duration":9591,"tags":{"request":"./node_modules\\next\\dist\\pages\\_error.js"}},{"traceId":"a40c92b03843b256","parentId":"70316a7938357069","name":"add-entry","id":"7335316e646b7568","timestamp":96805781168,"duration":10172,"tags":{"request":"private-next-pages/_app"}},{"traceId":"a40c92b03843b256","parentId":"70316a7938357069","name":"add-entry","id":"76626f7a72307670","timestamp":96805781247,"duration":10197,"tags":{"request":"private-next-pages/_document"}},{"traceId":"a40c92b03843b256","parentId":"6e63716462613439","name":"read-resource","id":"646b68397a737772","timestamp":96805789876,"duration":1896,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"68636c7272337634","name":"get-options","id":"316a746136717462","timestamp":96805791815,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"64396d3578746a34","name":"babel-turbo-get-config","id":"3870317a61797577","timestamp":96805791828,"duration":15,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"64396d3578746a34","name":"babel-turbo-normalize-file","id":"6c31776836616c31","timestamp":96805791846,"duration":468,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"65353637396e7778","name":"babel-turbo-traverse","id":"6e33727165707537","timestamp":96805792503,"duration":902,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"64396d3578746a34","name":"babel-turbo-transform","id":"65353637396e7778","timestamp":96805792334,"duration":1091,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"64396d3578746a34","name":"babel-turbo-generate","id":"6c35386e37697730","timestamp":96805793458,"duration":428,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"68636c7272337634","name":"next-babel-turbo-transform","id":"64396d3578746a34","timestamp":96805791823,"duration":2068,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e63716462613439","name":"next-babel-turbo-loader","id":"68636c7272337634","timestamp":96805791809,"duration":2105,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"70316a7938357069","name":"build-module-js","id":"6e63716462613439","timestamp":96805789706,"duration":5276,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\pages\\404.js"}},{"traceId":"a40c92b03843b256","parentId":"70316a7938357069","name":"add-entry","id":"797a347869333974","timestamp":96805781427,"duration":14450,"tags":{"request":"./src\\pages\\404.js"}},{"traceId":"a40c92b03843b256","parentId":"70316a7938357069","name":"add-entry","id":"626d7676386e6a6e","timestamp":96805781371,"duration":15235,"tags":{"request":"./src\\pages\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"6d346c7238627072","name":"make","id":"6a376a3234377370","timestamp":96805776536,"duration":20156,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"70316a7938357069","name":"webpack-compilation-chunk-graph","id":"7732766f39777471","timestamp":96805797494,"duration":761,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"70316a7938357069","name":"webpack-compilation-optimize-modules","id":"3562376c66793471","timestamp":96805798338,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"70316a7938357069","name":"webpack-compilation-optimize-chunks","id":"66376a6f63696335","timestamp":96805798366,"duration":71,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"70316a7938357069","name":"webpack-compilation-optimize-tree","id":"733138756d766873","timestamp":96805798479,"duration":7,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"70316a7938357069","name":"webpack-compilation-optimize","id":"686f653979623073","timestamp":96805798319,"duration":372,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"70316a7938357069","name":"webpack-compilation-hash","id":"686638337a643039","timestamp":96805802794,"duration":1491,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"70316a7938357069","name":"webpack-compilation-seal","id":"31676b7964746377","timestamp":96805797309,"duration":8211,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d346c7238627072","name":"webpack-compilation","id":"70316a7938357069","timestamp":96805776143,"duration":29424,"tags":{"name":"server"}},{"traceId":"a40c92b03843b256","parentId":"6d346c7238627072","name":"emit","id":"62396a636776386e","timestamp":96805805628,"duration":8010,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-server","id":"6d346c7238627072","timestamp":96805686999,"duration":127609,"tags":{"trigger":"manual"}}] +[{"traceId":"a40c92b03843b256","parentId":"7964656b3163376a","name":"next-client-pages-loader","id":"7335673675337065","timestamp":96915345353,"duration":122,"tags":{"absolutePagePath":"C:\\Users\\hp\\Desktop\\business-hub\\src\\pages\\about\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"31666c6d6372746e","name":"build-module-jsx!","id":"7964656b3163376a","timestamp":96915345011,"duration":5432,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-client-pages-loader.js?page=%2Fabout&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cabout%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"31666c6d6372746e","name":"add-entry","id":"6c6a68393330786d","timestamp":96915297466,"duration":54528,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"31666c6d6372746e","name":"add-entry","id":"3235303164396663","timestamp":96915297715,"duration":55453,"tags":{"request":"next-client-pages-loader?page=%2F_app&absolutePagePath=private-next-pages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"31666c6d6372746e","name":"add-entry","id":"7461797331646a68","timestamp":96915297743,"duration":55742,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=private-next-pages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"31666c6d6372746e","name":"add-entry","id":"77367a6438336d77","timestamp":96915297798,"duration":55693,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Cnode_modules%5Cnext%5Cdist%5Cpages%5C_error.js!"}},{"traceId":"a40c92b03843b256","parentId":"31666c6d6372746e","name":"add-entry","id":"327a6a3235796c74","timestamp":96915297728,"duration":55990,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"31666c6d6372746e","name":"add-entry","id":"347470716b6c7274","timestamp":96915297684,"duration":62073,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"}},{"traceId":"a40c92b03843b256","parentId":"31666c6d6372746e","name":"add-entry","id":"6a3078747274656d","timestamp":96915297755,"duration":74287,"tags":{"request":"next-client-pages-loader?page=%2F&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"31666c6d6372746e","name":"add-entry","id":"3433376262656a71","timestamp":96915297701,"duration":74985,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"32316c3470633370","name":"read-resource","id":"3973746f6c336a31","timestamp":96915373764,"duration":592,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6635367379656f69","name":"get-options","id":"636334366f767563","timestamp":96915374456,"duration":9,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6169756b7969636f","name":"babel-turbo-get-config","id":"6667687937326e6f","timestamp":96915374482,"duration":22,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6169756b7969636f","name":"babel-turbo-normalize-file","id":"71726d6832386f69","timestamp":96915374510,"duration":11065,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7861333074666272","name":"babel-turbo-traverse","id":"3272627976776376","timestamp":96915386662,"duration":49331,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6169756b7969636f","name":"babel-turbo-transform","id":"7861333074666272","timestamp":96915385617,"duration":50394,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6169756b7969636f","name":"babel-turbo-generate","id":"6e306d3265657576","timestamp":96915436040,"duration":6333,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6635367379656f69","name":"next-babel-turbo-transform","id":"6169756b7969636f","timestamp":96915374475,"duration":67911,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"32316c3470633370","name":"next-babel-turbo-loader","id":"6635367379656f69","timestamp":96915374441,"duration":67969,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7964656b3163376a","name":"build-module-jsx","id":"32316c3470633370","timestamp":96915373313,"duration":79333,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\pages\\about\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"3566757634613834","name":"read-resource","id":"3861347033786867","timestamp":96915460757,"duration":1865,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"316b356534766f6e","name":"get-options","id":"73377a636a386376","timestamp":96915462678,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7175676f6e657777","name":"babel-turbo-get-config","id":"323973793477676a","timestamp":96915462695,"duration":15,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7175676f6e657777","name":"babel-turbo-normalize-file","id":"7935323135793934","timestamp":96915462717,"duration":10443,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"713961773061736f","name":"babel-turbo-traverse","id":"65616a6c3463686e","timestamp":96915473956,"duration":73495,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7175676f6e657777","name":"babel-turbo-transform","id":"713961773061736f","timestamp":96915473199,"duration":74271,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7175676f6e657777","name":"babel-turbo-generate","id":"756a65726b796462","timestamp":96915547513,"duration":6753,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"316b356534766f6e","name":"next-babel-turbo-transform","id":"7175676f6e657777","timestamp":96915462689,"duration":91589,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3566757634613834","name":"next-babel-turbo-loader","id":"316b356534766f6e","timestamp":96915462669,"duration":91634,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"32316c3470633370","name":"build-module-jsx","id":"3566757634613834","timestamp":96915460637,"duration":100926,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Services\\services.jsx"}},{"traceId":"a40c92b03843b256","parentId":"61306e6578776c71","name":"read-resource","id":"3535717875723061","timestamp":96915460876,"duration":102071,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"623268346e396434","name":"get-options","id":"706e366d33687a6e","timestamp":96915563062,"duration":7,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3272307476306877","name":"babel-turbo-get-config","id":"327362357a727162","timestamp":96915563081,"duration":19,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3272307476306877","name":"babel-turbo-normalize-file","id":"376e32647179326d","timestamp":96915563106,"duration":4192,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b796e7034616463","name":"babel-turbo-traverse","id":"7830707037793670","timestamp":96915568087,"duration":57551,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3272307476306877","name":"babel-turbo-transform","id":"6b796e7034616463","timestamp":96915567343,"duration":58313,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3272307476306877","name":"babel-turbo-generate","id":"6977386636686161","timestamp":96915625686,"duration":4514,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"623268346e396434","name":"next-babel-turbo-transform","id":"3272307476306877","timestamp":96915563075,"duration":67138,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"61306e6578776c71","name":"next-babel-turbo-loader","id":"623268346e396434","timestamp":96915563053,"duration":67194,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"32316c3470633370","name":"build-module-jsx","id":"61306e6578776c71","timestamp":96915460803,"duration":175314,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Skills-circle\\skills-circle.jsx"}},{"traceId":"a40c92b03843b256","parentId":"7574337936633833","name":"read-resource","id":"7930756a376e3030","timestamp":96915461587,"duration":174596,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"68643169696d6762","name":"get-options","id":"7a31696539787738","timestamp":96915636240,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7632717165643866","name":"babel-turbo-get-config","id":"7a30747a757a7779","timestamp":96915636258,"duration":18,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7632717165643866","name":"babel-turbo-normalize-file","id":"397565617a313579","timestamp":96915636282,"duration":4889,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"756366306e396862","name":"babel-turbo-traverse","id":"6e717163616c7778","timestamp":96915642146,"duration":72606,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7632717165643866","name":"babel-turbo-transform","id":"756366306e396862","timestamp":96915641220,"duration":73551,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7632717165643866","name":"babel-turbo-generate","id":"66396472796f7834","timestamp":96915714803,"duration":4442,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"68643169696d6762","name":"next-babel-turbo-transform","id":"7632717165643866","timestamp":96915636252,"duration":83008,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7574337936633833","name":"next-babel-turbo-loader","id":"68643169696d6762","timestamp":96915636232,"duration":83055,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"32316c3470633370","name":"build-module-jsx","id":"7574337936633833","timestamp":96915461527,"duration":267549,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Clients\\clients.jsx"}},{"traceId":"a40c92b03843b256","parentId":"6f6e346278763863","name":"read-resource","id":"6b61616634777572","timestamp":96915461480,"duration":267685,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"636f37616f726470","name":"get-options","id":"6f31323367627961","timestamp":96915729224,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"34316834746a7979","name":"babel-turbo-get-config","id":"697636367a767864","timestamp":96915729241,"duration":20,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"34316834746a7979","name":"babel-turbo-normalize-file","id":"64777a7063726c71","timestamp":96915729267,"duration":6750,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c6e643764706d6b","name":"babel-turbo-traverse","id":"326133706b736839","timestamp":96915737022,"duration":142100,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"34316834746a7979","name":"babel-turbo-transform","id":"6c6e643764706d6b","timestamp":96915736060,"duration":143086,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"34316834746a7979","name":"babel-turbo-generate","id":"3577673934616178","timestamp":96915879188,"duration":9359,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"636f37616f726470","name":"next-babel-turbo-transform","id":"34316834746a7979","timestamp":96915729236,"duration":159329,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f6e346278763863","name":"next-babel-turbo-loader","id":"636f37616f726470","timestamp":96915729215,"duration":159390,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"32316c3470633370","name":"build-module-jsx","id":"6f6e346278763863","timestamp":96915461399,"duration":436515,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Video-with-testimonials\\video-with-testimonials.jsx"}},{"traceId":"a40c92b03843b256","parentId":"616c676f64676d33","name":"read-resource","id":"797639717764746c","timestamp":96915461673,"duration":441812,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3864303464756c77","name":"get-options","id":"6a70707274316873","timestamp":96915903554,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"626a767639733331","name":"babel-turbo-get-config","id":"3232636a35767a71","timestamp":96915903571,"duration":17,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"626a767639733331","name":"babel-turbo-normalize-file","id":"3963706a6c763174","timestamp":96915903605,"duration":4014,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6336326377643278","name":"babel-turbo-traverse","id":"75336862666b6f69","timestamp":96915908728,"duration":109697,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"626a767639733331","name":"babel-turbo-transform","id":"6336326377643278","timestamp":96915907661,"duration":110789,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"626a767639733331","name":"babel-turbo-generate","id":"3162363974346935","timestamp":96916018527,"duration":5035,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3864303464756c77","name":"next-babel-turbo-transform","id":"626a767639733331","timestamp":96915903566,"duration":120010,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"616c676f64676d33","name":"next-babel-turbo-loader","id":"3864303464756c77","timestamp":96915903544,"duration":120059,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"32316c3470633370","name":"build-module-jsx","id":"616c676f64676d33","timestamp":96915461612,"duration":569752,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Minimal-Area\\minimal-area.jsx"}},{"traceId":"a40c92b03843b256","parentId":"356a707036673833","name":"read-resource","id":"7a38353065673334","timestamp":96916037003,"duration":11791,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"716a7033726c6471","name":"get-options","id":"7937746768657866","timestamp":96916048878,"duration":114,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"61313670786d6d79","name":"babel-turbo-get-config","id":"313575756b62396c","timestamp":96916049008,"duration":20,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"61313670786d6d79","name":"babel-turbo-normalize-file","id":"68313530347a6f6c","timestamp":96916049034,"duration":1802,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"706b766b36706e61","name":"babel-turbo-traverse","id":"627437686a6e7035","timestamp":96916051582,"duration":16203,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"61313670786d6d79","name":"babel-turbo-transform","id":"706b766b36706e61","timestamp":96916050889,"duration":16917,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"61313670786d6d79","name":"babel-turbo-generate","id":"793332346674357a","timestamp":96916067839,"duration":1946,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"716a7033726c6471","name":"next-babel-turbo-transform","id":"61313670786d6d79","timestamp":96916049002,"duration":20792,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"356a707036673833","name":"next-babel-turbo-loader","id":"716a7033726c6471","timestamp":96916048867,"duration":20950,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"32316c3470633370","name":"build-module-jsx","id":"356a707036673833","timestamp":96916036787,"duration":35738,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Pages-header\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"31706d7971367873","name":"read-resource","id":"6a656d633976676f","timestamp":96916038424,"duration":34917,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"343738766e6e706e","name":"get-options","id":"65746e6d356f6764","timestamp":96916073408,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b397074727a3633","name":"babel-turbo-get-config","id":"3369643263346431","timestamp":96916073425,"duration":16,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b397074727a3633","name":"babel-turbo-normalize-file","id":"6d783961376f616d","timestamp":96916073449,"duration":1269,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"75797a663979656b","name":"babel-turbo-traverse","id":"656c7274666a766b","timestamp":96916075466,"duration":21784,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b397074727a3633","name":"babel-turbo-transform","id":"75797a663979656b","timestamp":96916074747,"duration":22521,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b397074727a3633","name":"babel-turbo-generate","id":"73706f337677756e","timestamp":96916097298,"duration":1648,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"343738766e6e706e","name":"next-babel-turbo-transform","id":"6b397074727a3633","timestamp":96916073419,"duration":25533,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"31706d7971367873","name":"next-babel-turbo-loader","id":"343738766e6e706e","timestamp":96916073400,"duration":25577,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"32316c3470633370","name":"build-module-jsx","id":"31706d7971367873","timestamp":96916038285,"duration":63502,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\About-intro\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"6d65697136653232","name":"read-resource","id":"376b646236656963","timestamp":96916107328,"duration":3960,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3566757634613834","name":"build-module-json","id":"6d65697136653232","timestamp":96916107224,"duration":4629,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\data\\sections\\features.json"}},{"traceId":"a40c92b03843b256","parentId":"376a7878356d6f37","name":"read-resource","id":"6c33337633757732","timestamp":96916107438,"duration":4582,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7574337936633833","name":"build-module-json","id":"376a7878356d6f37","timestamp":96916107380,"duration":4781,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\data\\sections\\clients.json"}},{"traceId":"a40c92b03843b256","parentId":"376f72657836637a","name":"next-style-loader","id":"616e3464626b3975","timestamp":96916114787,"duration":416,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"61306e6578776c71","name":"build-module-css","id":"376f72657836637a","timestamp":96916113768,"duration":4931,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-circular-progressbar\\dist\\styles.css"}},{"traceId":"a40c92b03843b256","parentId":"6576737164776a64","name":"next-style-loader","id":"787572723376706b","timestamp":96916119064,"duration":114,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f6e346278763863","name":"build-module-css","id":"6576737164776a64","timestamp":96916118914,"duration":2716,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-modal-video\\css\\modal-video.css"}},{"traceId":"a40c92b03843b256","parentId":"6a35797579766932","name":"read-resource","id":"34347a6938396466","timestamp":96916110844,"duration":13062,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"31706d7971367873","name":"build-module-json","id":"6a35797579766932","timestamp":96916110723,"duration":13408,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\data\\sections\\about-info1.json"}},{"traceId":"a40c92b03843b256","parentId":"396f39707437676a","name":"read-resource","id":"6b76726b616e6868","timestamp":96916118854,"duration":6675,"tags":{}}] +[{"traceId":"a40c92b03843b256","parentId":"61306e6578776c71","name":"build-module-js","id":"396f39707437676a","timestamp":96916118768,"duration":16258,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-circular-progressbar\\dist\\index.esm.js"}},{"traceId":"a40c92b03843b256","parentId":"6d73356972333467","name":"read-resource","id":"6b677436387a6368","timestamp":96916121783,"duration":14285,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f6e346278763863","name":"build-module-js","id":"6d73356972333467","timestamp":96916121686,"duration":21678,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-modal-video\\lib\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"6a327777347a6164","name":"read-resource","id":"7a75686e6d736976","timestamp":96916152703,"duration":649,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"356e6d666f397438","name":"postcss-process","id":"316a3634746b6c77","timestamp":96916153484,"duration":7055,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a327777347a6164","name":"postcss-loader","id":"356e6d666f397438","timestamp":96916153419,"duration":7378,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a327777347a6164","name":"css-loader","id":"626261387a663372","timestamp":96916160899,"duration":3353,"tags":{"astUsed":"true"}},{"traceId":"a40c92b03843b256","parentId":"376f72657836637a","name":"build-module-css","id":"6a327777347a6164","timestamp":96916152570,"duration":12540,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\css-loader\\src\\index.js??ruleSet[1].rules[2].oneOf[8].use[1]!C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\postcss-loader\\src\\index.js??ruleSet[1].rules[2].oneOf[8].use[2]!C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-circular-progressbar\\dist\\styles.css"}},{"traceId":"a40c92b03843b256","parentId":"72303975796a7835","name":"read-resource","id":"6665627377766574","timestamp":96916152828,"duration":12774,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7979736b64313378","name":"postcss-process","id":"3277327276787261","timestamp":96916165689,"duration":8351,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72303975796a7835","name":"postcss-loader","id":"7979736b64313378","timestamp":96916165658,"duration":8561,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72303975796a7835","name":"css-loader","id":"6962386f796d6339","timestamp":96916174279,"duration":2930,"tags":{"astUsed":"true"}},{"traceId":"a40c92b03843b256","parentId":"6576737164776a64","name":"build-module-css","id":"72303975796a7835","timestamp":96916152755,"duration":25403,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\css-loader\\src\\index.js??ruleSet[1].rules[2].oneOf[8].use[1]!C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\postcss-loader\\src\\index.js??ruleSet[1].rules[2].oneOf[8].use[2]!C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-modal-video\\css\\modal-video.css"}},{"traceId":"a40c92b03843b256","parentId":"676a70336161637a","name":"read-resource","id":"31716777646e6167","timestamp":96916179237,"duration":1676,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d73356972333467","name":"build-module-js","id":"676a70336161637a","timestamp":96916179147,"duration":7355,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-modal-video\\node_modules\\react-transition-group\\CSSTransition.js"}},{"traceId":"a40c92b03843b256","parentId":"6967686439736b34","name":"read-resource","id":"6b7173626e617231","timestamp":96916189324,"duration":1121,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"676a70336161637a","name":"build-module-js","id":"6967686439736b34","timestamp":96916189230,"duration":12616,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-modal-video\\node_modules\\react-transition-group\\Transition.js"}},{"traceId":"a40c92b03843b256","parentId":"696e357576357668","name":"read-resource","id":"6a74393737797836","timestamp":96916190332,"duration":13437,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"676a70336161637a","name":"build-module-js","id":"696e357576357668","timestamp":96916190260,"duration":14984,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-modal-video\\node_modules\\react-transition-group\\utils\\PropTypes.js"}},{"traceId":"a40c92b03843b256","parentId":"7661356737756966","name":"read-resource","id":"726c32356a687a68","timestamp":96916207350,"duration":4557,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"676a70336161637a","name":"build-module-js","id":"7661356737756966","timestamp":96916207228,"duration":6181,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-modal-video\\node_modules\\dom-helpers\\class\\addClass.js"}},{"traceId":"a40c92b03843b256","parentId":"61626269356c6971","name":"read-resource","id":"6e3570667a73316c","timestamp":96916207434,"duration":6035,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"676a70336161637a","name":"build-module-js","id":"61626269356c6971","timestamp":96916207396,"duration":7134,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-modal-video\\node_modules\\dom-helpers\\class\\removeClass.js"}},{"traceId":"a40c92b03843b256","parentId":"7966747a716d6e75","name":"read-resource","id":"653565676f663661","timestamp":96916217329,"duration":2798,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"676a70336161637a","name":"build-module-js","id":"7966747a716d6e75","timestamp":96916217226,"duration":3608,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\prop-types\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"646d676f71646576","name":"read-resource","id":"6868696575686665","timestamp":96916218995,"duration":2449,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7661356737756966","name":"build-module-js","id":"646d676f71646576","timestamp":96916218910,"duration":3213,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-modal-video\\node_modules\\dom-helpers\\class\\hasClass.js"}},{"traceId":"a40c92b03843b256","parentId":"3533706236797939","name":"read-resource","id":"33743269396d3667","timestamp":96916223196,"duration":900,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7661356737756966","name":"build-module-js","id":"3533706236797939","timestamp":96916223105,"duration":1629,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\interopRequireDefault.js"}},{"traceId":"a40c92b03843b256","parentId":"6c78326f6371767a","name":"read-resource","id":"77676c7869376d64","timestamp":96916223438,"duration":1630,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6967686439736b34","name":"build-module-js","id":"6c78326f6371767a","timestamp":96916223385,"duration":4112,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-lifecycles-compat\\react-lifecycles-compat.es.js"}},{"traceId":"a40c92b03843b256","parentId":"78747538326c3637","name":"read-resource","id":"6c6d346d6a386538","timestamp":96916223985,"duration":3732,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7966747a716d6e75","name":"build-module-js","id":"78747538326c3637","timestamp":96916223895,"duration":13619,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\prop-types\\factoryWithTypeCheckers.js"}},{"traceId":"a40c92b03843b256","parentId":"696b7a6a76373034","name":"read-resource","id":"7265643335736f35","timestamp":96916241213,"duration":1388,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"78747538326c3637","name":"build-module-js","id":"696b7a6a76373034","timestamp":96916241119,"duration":3550,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\prop-types\\checkPropTypes.js"}},{"traceId":"a40c92b03843b256","parentId":"79676c657a656c34","name":"read-resource","id":"7334373837716c78","timestamp":96916242503,"duration":3152,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"78747538326c3637","name":"build-module-js","id":"79676c657a656c34","timestamp":96916242415,"duration":3714,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\prop-types\\lib\\ReactPropTypesSecret.js"}},{"traceId":"a40c92b03843b256","parentId":"3035616e686f636c","name":"read-resource","id":"376171647069646b","timestamp":96916245189,"duration":1245,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7966747a716d6e75","name":"build-module-js","id":"3035616e686f636c","timestamp":96916245066,"duration":2046,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\prop-types\\node_modules\\react-is\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"7573723030757777","name":"read-resource","id":"79366173376e7635","timestamp":96916249375,"duration":647,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3035616e686f636c","name":"build-module-js","id":"7573723030757777","timestamp":96916249133,"duration":4652,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\prop-types\\node_modules\\react-is\\cjs\\react-is.development.js"}},{"traceId":"a40c92b03843b256","parentId":"31666c6d6372746e","name":"add-entry","id":"336e7838656c6f78","timestamp":96915297815,"duration":956150,"tags":{"request":"next-client-pages-loader?page=%2Fabout&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cabout%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"3972713634313575","name":"make","id":"7a766d6c6c6c3630","timestamp":96915296677,"duration":957514,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"31666c6d6372746e","name":"webpack-compilation-chunk-graph","id":"6674763162336e6e","timestamp":96916257974,"duration":6398,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"31666c6d6372746e","name":"webpack-compilation-optimize-modules","id":"6a67386a7a617269","timestamp":96916264531,"duration":59,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"31666c6d6372746e","name":"webpack-compilation-optimize-chunks","id":"756d6a7663346676","timestamp":96916264695,"duration":205,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"31666c6d6372746e","name":"webpack-compilation-optimize-tree","id":"716e62303037726e","timestamp":96916265001,"duration":45,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"31666c6d6372746e","name":"webpack-compilation-optimize","id":"613039687a346a6b","timestamp":96916264461,"duration":2685,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"31666c6d6372746e","name":"webpack-compilation-hash","id":"616a6d6275386874","timestamp":96916290041,"duration":12073,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"31666c6d6372746e","name":"NextJsBuildManifest-generateClientManifest","id":"6679716f69616d7a","timestamp":96916336768,"duration":433,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"31666c6d6372746e","name":"NextJsBuildManifest-createassets","id":"6663686770373478","timestamp":96916336510,"duration":711,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"31666c6d6372746e","name":"webpack-compilation-seal","id":"617673316973796c","timestamp":96916256959,"duration":84470,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3972713634313575","name":"webpack-compilation","id":"31666c6d6372746e","timestamp":96915296172,"duration":1045344,"tags":{"name":"client"}},{"traceId":"a40c92b03843b256","parentId":"3972713634313575","name":"emit","id":"6a75326275756863","timestamp":96916341633,"duration":22314,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-client","id":"3972713634313575","timestamp":96915292859,"duration":1073507,"tags":{"trigger":"manual"}},{"traceId":"a40c92b03843b256","parentId":"64306a3663736168","name":"add-entry","id":"39756f37736a6838","timestamp":96916384535,"duration":10431,"tags":{"request":"private-next-pages/_error"}},{"traceId":"a40c92b03843b256","parentId":"64306a3663736168","name":"add-entry","id":"67756f7769683836","timestamp":96916384425,"duration":11250,"tags":{"request":"private-next-pages/_app"}},{"traceId":"a40c92b03843b256","parentId":"64306a3663736168","name":"add-entry","id":"3137327370787930","timestamp":96916384521,"duration":11300,"tags":{"request":"private-next-pages/_document"}},{"traceId":"a40c92b03843b256","parentId":"64306a3663736168","name":"add-entry","id":"6572723672766b65","timestamp":96916384544,"duration":13306,"tags":{"request":"./src\\pages\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"3532366d61696d38","name":"make","id":"6b776f323476336b","timestamp":96916368881,"duration":29231,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"64306a3663736168","name":"webpack-compilation-chunk-graph","id":"616e6e333779326a","timestamp":96916398957,"duration":1119,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"64306a3663736168","name":"webpack-compilation-optimize-modules","id":"32746c6c3535696e","timestamp":96916400155,"duration":125,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"64306a3663736168","name":"webpack-compilation-optimize-chunks","id":"65346162786c3476","timestamp":96916400391,"duration":107,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"64306a3663736168","name":"webpack-compilation-optimize-tree","id":"33646d6c36383875","timestamp":96916400592,"duration":50,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"64306a3663736168","name":"webpack-compilation-optimize","id":"3339396c6c317837","timestamp":96916400135,"duration":841,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"64306a3663736168","name":"webpack-compilation-hash","id":"636f636b68373735","timestamp":96916403248,"duration":2564,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"64306a3663736168","name":"webpack-compilation-seal","id":"31777133357a6f71","timestamp":96916398741,"duration":8239,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3532366d61696d38","name":"webpack-compilation","id":"64306a3663736168","timestamp":96916368186,"duration":38843,"tags":{"name":"server"}},{"traceId":"a40c92b03843b256","parentId":"3532366d61696d38","name":"emit","id":"706f77747776666e","timestamp":96916407135,"duration":10186,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-server","id":"3532366d61696d38","timestamp":96915293574,"duration":1125665,"tags":{"trigger":"manual"}}] +[{"traceId":"a40c92b03843b256","parentId":"6e6e347237736d66","name":"next-client-pages-loader","id":"37793379656c7a71","timestamp":96933146556,"duration":72,"tags":{"absolutePagePath":"C:\\Users\\hp\\Desktop\\business-hub\\src\\pages\\services\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"32617262676f7439","name":"build-module-jsx!","id":"6e6e347237736d66","timestamp":96933146053,"duration":1504,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-client-pages-loader.js?page=%2Fservices&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cservices%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"32617262676f7439","name":"add-entry","id":"79316b6d6c336c6f","timestamp":96933139539,"duration":12991,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"32617262676f7439","name":"add-entry","id":"6671646272756d6e","timestamp":96933139689,"duration":13937,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=private-next-pages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"32617262676f7439","name":"add-entry","id":"3873693774346361","timestamp":96933139698,"duration":13937,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Cnode_modules%5Cnext%5Cdist%5Cpages%5C_error.js!"}},{"traceId":"a40c92b03843b256","parentId":"32617262676f7439","name":"add-entry","id":"6931356e72656472","timestamp":96933139676,"duration":14113,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"32617262676f7439","name":"add-entry","id":"35786f7134777963","timestamp":96933139639,"duration":14436,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"}},{"traceId":"a40c92b03843b256","parentId":"32617262676f7439","name":"add-entry","id":"3231627269796a74","timestamp":96933139665,"duration":15192,"tags":{"request":"next-client-pages-loader?page=%2F_app&absolutePagePath=private-next-pages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"32617262676f7439","name":"add-entry","id":"3762377a6e6e3135","timestamp":96933139652,"duration":18212,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"32617262676f7439","name":"add-entry","id":"30616b6e37657473","timestamp":96933139708,"duration":18375,"tags":{"request":"next-client-pages-loader?page=%2Fabout&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cabout%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"76776a6f6d383631","name":"read-resource","id":"69336d6464323361","timestamp":96933157173,"duration":1069,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e6a3577627a6a37","name":"get-options","id":"306678696f773575","timestamp":96933158320,"duration":7,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7730326137736338","name":"babel-turbo-get-config","id":"34326463346c3770","timestamp":96933158338,"duration":29,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7730326137736338","name":"babel-turbo-normalize-file","id":"3131357a39726167","timestamp":96933158371,"duration":2677,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3932796b626f7267","name":"babel-turbo-traverse","id":"346a693832766965","timestamp":96933161862,"duration":14471,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7730326137736338","name":"babel-turbo-transform","id":"3932796b626f7267","timestamp":96933161092,"duration":15269,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7730326137736338","name":"babel-turbo-generate","id":"7977776a376c6135","timestamp":96933176386,"duration":2080,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e6a3577627a6a37","name":"next-babel-turbo-transform","id":"7730326137736338","timestamp":96933158333,"duration":20141,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76776a6f6d383631","name":"next-babel-turbo-loader","id":"6e6a3577627a6a37","timestamp":96933158312,"duration":20185,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e6e347237736d66","name":"build-module-jsx","id":"76776a6f6d383631","timestamp":96933156577,"duration":24979,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\pages\\services\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"6635786f6e33346d","name":"read-resource","id":"78796136306f6730","timestamp":96933195319,"duration":496,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3476303475696533","name":"get-options","id":"7631616d6f726678","timestamp":96933195875,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7738316f6f666271","name":"babel-turbo-get-config","id":"38716767306a6471","timestamp":96933195889,"duration":19,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7738316f6f666271","name":"babel-turbo-normalize-file","id":"777062786a346f33","timestamp":96933195946,"duration":3507,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"706d626975333130","name":"babel-turbo-traverse","id":"6e62387268386935","timestamp":96933200149,"duration":81105,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7738316f6f666271","name":"babel-turbo-transform","id":"706d626975333130","timestamp":96933199487,"duration":81789,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7738316f6f666271","name":"babel-turbo-generate","id":"6a31793662786430","timestamp":96933281306,"duration":4299,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3476303475696533","name":"next-babel-turbo-transform","id":"7738316f6f666271","timestamp":96933195885,"duration":89732,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6635786f6e33346d","name":"next-babel-turbo-loader","id":"3476303475696533","timestamp":96933195868,"duration":89775,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76776a6f6d383631","name":"build-module-jsx","id":"6635786f6e33346d","timestamp":96933195189,"duration":94590,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Services5\\services5.jsx"}},{"traceId":"a40c92b03843b256","parentId":"326f7072626b6b30","name":"read-resource","id":"667161337a376168","timestamp":96933294559,"duration":429,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6635786f6e33346d","name":"build-module-json","id":"326f7072626b6b30","timestamp":96933294523,"duration":765,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\data\\sections\\features2.json"}},{"traceId":"a40c92b03843b256","parentId":"3577716376753575","name":"read-resource","id":"3770727430716a74","timestamp":96933294472,"duration":848,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6635786f6e33346d","name":"build-module-json","id":"3577716376753575","timestamp":96933294373,"duration":1044,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\data\\sections\\features1.json"}},{"traceId":"a40c92b03843b256","parentId":"32617262676f7439","name":"add-entry","id":"786c366c62766167","timestamp":96933139717,"duration":155747,"tags":{"request":"next-client-pages-loader?page=%2Fservices&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cservices%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"6c39657162746265","name":"make","id":"6279623739313470","timestamp":96933138637,"duration":156894,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"32617262676f7439","name":"webpack-compilation-chunk-graph","id":"327a38333679366a","timestamp":96933297173,"duration":2524,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"32617262676f7439","name":"webpack-compilation-optimize-modules","id":"6f31313276623630","timestamp":96933299782,"duration":151,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"32617262676f7439","name":"webpack-compilation-optimize-chunks","id":"3766727a72617833","timestamp":96933299964,"duration":73,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"32617262676f7439","name":"webpack-compilation-optimize-tree","id":"736c616133387572","timestamp":96933300077,"duration":61,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"32617262676f7439","name":"webpack-compilation-optimize","id":"66766f6531323767","timestamp":96933299757,"duration":760,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"32617262676f7439","name":"webpack-compilation-hash","id":"366d6e6735787a38","timestamp":96933307453,"duration":5153,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"32617262676f7439","name":"NextJsBuildManifest-generateClientManifest","id":"6a336a7979623638","timestamp":96933318462,"duration":133,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"32617262676f7439","name":"NextJsBuildManifest-createassets","id":"736f327173677672","timestamp":96933318335,"duration":273,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"32617262676f7439","name":"webpack-compilation-seal","id":"65397933747a796c","timestamp":96933296681,"duration":22996,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c39657162746265","name":"webpack-compilation","id":"32617262676f7439","timestamp":96933138208,"duration":181528,"tags":{"name":"client"}},{"traceId":"a40c92b03843b256","parentId":"6c39657162746265","name":"emit","id":"377a776638313762","timestamp":96933319780,"duration":31978,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-client","id":"6c39657162746265","timestamp":96933135143,"duration":217654,"tags":{"trigger":"manual"}},{"traceId":"a40c92b03843b256","parentId":"756a78797032716f","name":"add-entry","id":"746b78696d317032","timestamp":96933362259,"duration":4865,"tags":{"request":"private-next-pages/_error"}},{"traceId":"a40c92b03843b256","parentId":"756a78797032716f","name":"add-entry","id":"6e366b6f386a6f65","timestamp":96933362170,"duration":5041,"tags":{"request":"private-next-pages/_app"}},{"traceId":"a40c92b03843b256","parentId":"756a78797032716f","name":"add-entry","id":"6a79396d63783170","timestamp":96933362248,"duration":4972,"tags":{"request":"private-next-pages/_document"}},{"traceId":"a40c92b03843b256","parentId":"7470703470316c33","name":"make","id":"6e6c703278633171","timestamp":96933354811,"duration":12443,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"756a78797032716f","name":"webpack-compilation-chunk-graph","id":"376776683073706a","timestamp":96933367667,"duration":207,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"756a78797032716f","name":"webpack-compilation-optimize-modules","id":"7138776464723667","timestamp":96933367904,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"756a78797032716f","name":"webpack-compilation-optimize-chunks","id":"7166627934616f7a","timestamp":96933367929,"duration":35,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"756a78797032716f","name":"webpack-compilation-optimize-tree","id":"6f67646831396a69","timestamp":96933367986,"duration":7,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"756a78797032716f","name":"webpack-compilation-optimize","id":"3872703266756e6e","timestamp":96933367893,"duration":175,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"756a78797032716f","name":"webpack-compilation-hash","id":"61693437317a6830","timestamp":96933369074,"duration":1124,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"756a78797032716f","name":"webpack-compilation-seal","id":"3137677975323437","timestamp":96933367582,"duration":3532,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7470703470316c33","name":"webpack-compilation","id":"756a78797032716f","timestamp":96933354351,"duration":16816,"tags":{"name":"server"}},{"traceId":"a40c92b03843b256","parentId":"7470703470316c33","name":"emit","id":"39306e7433657076","timestamp":96933371213,"duration":8013,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-server","id":"7470703470316c33","timestamp":96933135839,"duration":244448,"tags":{"trigger":"manual"}}] +[{"traceId":"a40c92b03843b256","parentId":"3672773236366562","name":"next-client-pages-loader","id":"707262386b6e616b","timestamp":96954466712,"duration":89,"tags":{"absolutePagePath":"C:\\Users\\hp\\Desktop\\business-hub\\src\\pages\\contact\\contact-light.jsx"}},{"traceId":"a40c92b03843b256","parentId":"627a71336a763869","name":"build-module-jsx!","id":"3672773236366562","timestamp":96954466543,"duration":1133,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-client-pages-loader.js?page=%2Fcontact%2Fcontact-light&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Ccontact%5Ccontact-light.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"627a71336a763869","name":"add-entry","id":"347334356e617a6d","timestamp":96954460835,"duration":14320,"tags":{"request":"next-client-pages-loader?page=%2Fabout&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cabout%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"627a71336a763869","name":"add-entry","id":"7a756a70357a6561","timestamp":96954460650,"duration":14706,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"627a71336a763869","name":"add-entry","id":"6538373268776e37","timestamp":96954460808,"duration":16004,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=private-next-pages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"627a71336a763869","name":"add-entry","id":"7332737533637231","timestamp":96954460796,"duration":16222,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"627a71336a763869","name":"add-entry","id":"7064676466703374","timestamp":96954460759,"duration":16781,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"}},{"traceId":"a40c92b03843b256","parentId":"627a71336a763869","name":"add-entry","id":"6a64626862657771","timestamp":96954460783,"duration":17942,"tags":{"request":"next-client-pages-loader?page=%2F_app&absolutePagePath=private-next-pages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"627a71336a763869","name":"add-entry","id":"6e666f696f363137","timestamp":96954460773,"duration":21528,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"627a71336a763869","name":"add-entry","id":"67676230686b6961","timestamp":96954460817,"duration":21852,"tags":{"request":"next-client-pages-loader?page=%2Fservices&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cservices%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"6861366330397a64","name":"read-resource","id":"366c7a366a346339","timestamp":96954482170,"duration":952,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7238377472683778","name":"get-options","id":"3773627336693763","timestamp":96954483239,"duration":9,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a6f6d7533316566","name":"babel-turbo-get-config","id":"6972766837667339","timestamp":96954483258,"duration":29,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a6f6d7533316566","name":"babel-turbo-normalize-file","id":"3165696977343731","timestamp":96954483292,"duration":3317,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b36636f76356761","name":"babel-turbo-traverse","id":"71716d783734307a","timestamp":96954487547,"duration":34283,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a6f6d7533316566","name":"babel-turbo-transform","id":"6b36636f76356761","timestamp":96954486668,"duration":35193,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a6f6d7533316566","name":"babel-turbo-generate","id":"6774717669347361","timestamp":96954521902,"duration":3799,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7238377472683778","name":"next-babel-turbo-transform","id":"6a6f6d7533316566","timestamp":96954483253,"duration":42464,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6861366330397a64","name":"next-babel-turbo-loader","id":"7238377472683778","timestamp":96954483228,"duration":42535,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3672773236366562","name":"build-module-jsx","id":"6861366330397a64","timestamp":96954481857,"duration":48917,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\pages\\contact\\contact-light.jsx"}},{"traceId":"a40c92b03843b256","parentId":"6f77326c736e6264","name":"read-resource","id":"66737334706f3979","timestamp":96954538355,"duration":704,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6862726e34666461","name":"get-options","id":"337362696468326c","timestamp":96954539210,"duration":10,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c6e70373735306f","name":"babel-turbo-get-config","id":"6734326539746d67","timestamp":96954539235,"duration":32,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c6e70373735306f","name":"babel-turbo-normalize-file","id":"6566713266693737","timestamp":96954539311,"duration":2484,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"316a333773776f39","name":"babel-turbo-traverse","id":"6166396270307432","timestamp":96954542809,"duration":29886,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c6e70373735306f","name":"babel-turbo-transform","id":"316a333773776f39","timestamp":96954541834,"duration":30885,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c6e70373735306f","name":"babel-turbo-generate","id":"793579636a723567","timestamp":96954572755,"duration":1783,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6862726e34666461","name":"next-babel-turbo-transform","id":"6c6e70373735306f","timestamp":96954539229,"duration":35315,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f77326c736e6264","name":"next-babel-turbo-loader","id":"6862726e34666461","timestamp":96954539201,"duration":35373,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6861366330397a64","name":"build-module-jsx","id":"6f77326c736e6264","timestamp":96954538186,"duration":39100,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Contact-header\\contact-header.jsx"}},{"traceId":"a40c92b03843b256","parentId":"3176347961656773","name":"read-resource","id":"76716f7339637276","timestamp":96954538603,"duration":43184,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"35723775727a7377","name":"get-options","id":"7935677339653133","timestamp":96954581896,"duration":8,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"61383161706d3071","name":"babel-turbo-get-config","id":"6d376f71336f7375","timestamp":96954581915,"duration":27,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"61383161706d3071","name":"babel-turbo-normalize-file","id":"6671363664676638","timestamp":96954581947,"duration":6204,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"386579726d757379","name":"babel-turbo-traverse","id":"306966366f6d6938","timestamp":96954588912,"duration":159867,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"61383161706d3071","name":"babel-turbo-transform","id":"386579726d757379","timestamp":96954588206,"duration":160608,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"61383161706d3071","name":"babel-turbo-generate","id":"3638356339797465","timestamp":96954748857,"duration":8584,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"35723775727a7377","name":"next-babel-turbo-transform","id":"61383161706d3071","timestamp":96954581910,"duration":175548,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3176347961656773","name":"next-babel-turbo-loader","id":"35723775727a7377","timestamp":96954581887,"duration":175617,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6861366330397a64","name":"build-module-jsx","id":"3176347961656773","timestamp":96954538448,"duration":224992,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Contact-form\\contact-form.jsx"}},{"traceId":"a40c92b03843b256","parentId":"776c74326a306d73","name":"read-resource","id":"6779326869376531","timestamp":96954769987,"duration":2428,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f77326c736e6264","name":"build-module-json","id":"776c74326a306d73","timestamp":96954769849,"duration":2866,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\data\\sections\\contact-header.json"}},{"traceId":"a40c92b03843b256","parentId":"733833617579696e","name":"read-resource","id":"773238756d353237","timestamp":96954770090,"duration":2725,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3176347961656773","name":"build-module-json","id":"733833617579696e","timestamp":96954770029,"duration":2895,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\data\\sections\\form-info.json"}},{"traceId":"a40c92b03843b256","parentId":"6564747061643475","name":"read-resource","id":"31636578716c3368","timestamp":96954771597,"duration":2957,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3176347961656773","name":"build-module-js","id":"6564747061643475","timestamp":96954771458,"duration":5479,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@babel\\runtime\\helpers\\esm\\asyncToGenerator.js"}},{"traceId":"a40c92b03843b256","parentId":"6468313630313075","name":"read-resource","id":"356c70326a69786f","timestamp":96954785513,"duration":1049,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3176347961656773","name":"build-module-js","id":"6468313630313075","timestamp":96954785386,"duration":47980,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\formik\\dist\\formik.esm.js"}},{"traceId":"a40c92b03843b256","parentId":"336c787736786a73","name":"read-resource","id":"393965776c747268","timestamp":96954844105,"duration":3232,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6468313630313075","name":"build-module-js","id":"336c787736786a73","timestamp":96954843953,"duration":4462,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\toPath.js"}},{"traceId":"a40c92b03843b256","parentId":"6c7731786a377271","name":"read-resource","id":"7172696d69636b76","timestamp":96954844257,"duration":4236,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6468313630313075","name":"build-module-js","id":"6c7731786a377271","timestamp":96954844211,"duration":5388,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\isPlainObject.js"}},{"traceId":"a40c92b03843b256","parentId":"6163696f63713334","name":"read-resource","id":"766b6d6b76686173","timestamp":96954844187,"duration":7998,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6468313630313075","name":"build-module-js","id":"6163696f63713334","timestamp":96954844146,"duration":8927,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\clone.js"}},{"traceId":"a40c92b03843b256","parentId":"6b30726978793673","name":"read-resource","id":"6f7667627272366d","timestamp":96954844499,"duration":8688,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6468313630313075","name":"build-module-js","id":"6b30726978793673","timestamp":96954844357,"duration":9499,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\cloneDeep.js"}},{"traceId":"a40c92b03843b256","parentId":"78636f3566616f69","name":"read-resource","id":"6269773264746738","timestamp":96954847030,"duration":11180,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6468313630313075","name":"build-module-js","id":"78636f3566616f69","timestamp":96954846846,"duration":13584,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-fast-compare\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"7169367069316973","name":"read-resource","id":"776362677a367738","timestamp":96954854758,"duration":7376,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6468313630313075","name":"build-module-js","id":"7169367069316973","timestamp":96954854719,"duration":8594,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\tiny-warning\\dist\\tiny-warning.esm.js"}},{"traceId":"a40c92b03843b256","parentId":"333879686a396275","name":"read-resource","id":"6f7174316b696937","timestamp":96954854542,"duration":8856,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6468313630313075","name":"build-module-js","id":"333879686a396275","timestamp":96954854401,"duration":11349,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\deepmerge\\dist\\es.js"}},{"traceId":"a40c92b03843b256","parentId":"6938636937366862","name":"read-resource","id":"79386d7931797a73","timestamp":96954854685,"duration":11141,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6468313630313075","name":"build-module-js","id":"6938636937366862","timestamp":96954854635,"duration":12924,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\hoist-non-react-statics\\dist\\hoist-non-react-statics.cjs.js"}},{"traceId":"a40c92b03843b256","parentId":"753066656e69796d","name":"read-resource","id":"6f35383774346372","timestamp":96954857390,"duration":11963,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"336c787736786a73","name":"build-module-js","id":"753066656e69796d","timestamp":96954857240,"duration":12943,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_arrayMap.js"}},{"traceId":"a40c92b03843b256","parentId":"326668676d6d716f","name":"read-resource","id":"656b773976677431","timestamp":96954857480,"duration":12762,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"336c787736786a73","name":"build-module-js","id":"326668676d6d716f","timestamp":96954857439,"duration":13213,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\isArray.js"}},{"traceId":"a40c92b03843b256","parentId":"6975663238786c73","name":"read-resource","id":"776c626e75733674","timestamp":96954857664,"duration":13052,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"336c787736786a73","name":"build-module-js","id":"6975663238786c73","timestamp":96954857622,"duration":13609,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\isSymbol.js"}},{"traceId":"a40c92b03843b256","parentId":"79786c386f716975","name":"read-resource","id":"3737626e38746976","timestamp":96954857731,"duration":13544,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"336c787736786a73","name":"build-module-js","id":"79786c386f716975","timestamp":96954857689,"duration":13972,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\toString.js"}},{"traceId":"a40c92b03843b256","parentId":"7272373370317238","name":"read-resource","id":"6266356177376d6a","timestamp":96954857541,"duration":14177,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"336c787736786a73","name":"build-module-js","id":"7272373370317238","timestamp":96954857504,"duration":15062,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_toKey.js"}},{"traceId":"a40c92b03843b256","parentId":"6a39776772667437","name":"read-resource","id":"786473646c71786f","timestamp":96954857599,"duration":15032,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"336c787736786a73","name":"build-module-js","id":"6a39776772667437","timestamp":96954857563,"duration":15703,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_copyArray.js"}},{"traceId":"a40c92b03843b256","parentId":"6237626436746b76","name":"read-resource","id":"6e35753630697939","timestamp":96954857788,"duration":16796,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"336c787736786a73","name":"build-module-js","id":"6237626436746b76","timestamp":96954857754,"duration":18651,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_stringToPath.js"}},{"traceId":"a40c92b03843b256","parentId":"3739746c776d6f72","name":"read-resource","id":"616639366d6e7371","timestamp":96954860937,"duration":15559,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c7731786a377271","name":"build-module-js","id":"3739746c776d6f72","timestamp":96954860775,"duration":16222,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_getPrototype.js"}},{"traceId":"a40c92b03843b256","parentId":"623835337162767a","name":"read-resource","id":"6e307a6b366f3472","timestamp":96954861831,"duration":15320,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c7731786a377271","name":"build-module-js","id":"623835337162767a","timestamp":96954861733,"duration":16130,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\isObjectLike.js"}},{"traceId":"a40c92b03843b256","parentId":"6a6d767669317761","name":"read-resource","id":"6e36707277383079","timestamp":96954861625,"duration":16311,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c7731786a377271","name":"build-module-js","id":"6a6d767669317761","timestamp":96954861386,"duration":17871,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_baseGetTag.js"}},{"traceId":"a40c92b03843b256","parentId":"307438396a726b33","name":"read-resource","id":"776e693566303270","timestamp":96954868861,"duration":11506,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6163696f63713334","name":"build-module-js","id":"307438396a726b33","timestamp":96954868722,"duration":14959,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_baseClone.js"}},{"traceId":"a40c92b03843b256","parentId":"396e756d74623573","name":"read-resource","id":"6d656f6b38687063","timestamp":96954897083,"duration":4402,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79786c386f716975","name":"build-module-js","id":"396e756d74623573","timestamp":96954896897,"duration":5995,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_baseToString.js"}},{"traceId":"a40c92b03843b256","parentId":"6a62617466736377","name":"read-resource","id":"316a333372723538","timestamp":96954898922,"duration":4922,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3739746c776d6f72","name":"build-module-js","id":"6a62617466736377","timestamp":96954898880,"duration":5650,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_overArg.js"}},{"traceId":"a40c92b03843b256","parentId":"7a616d666868316f","name":"read-resource","id":"7579777a67726469","timestamp":96954899296,"duration":5279,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"307438396a726b33","name":"build-module-js","id":"7a616d666868316f","timestamp":96954899260,"duration":6178,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_assignValue.js"}},{"traceId":"a40c92b03843b256","parentId":"3464336974386a30","name":"read-resource","id":"386866636f6f6369","timestamp":96954899030,"duration":6486,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6237626436746b76","name":"build-module-js","id":"3464336974386a30","timestamp":96954898990,"duration":7608,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_memoizeCapped.js"}},{"traceId":"a40c92b03843b256","parentId":"6a6c62336f713839","name":"read-resource","id":"7939627331686975","timestamp":96954899236,"duration":7440,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"307438396a726b33","name":"build-module-js","id":"6a6c62336f713839","timestamp":96954899199,"duration":8169,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_Stack.js"}},{"traceId":"a40c92b03843b256","parentId":"38327278616c3663","name":"read-resource","id":"61363878306c7175","timestamp":96954899169,"duration":8227,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a6d767669317761","name":"build-module-js","id":"38327278616c3663","timestamp":96954899123,"duration":8595,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_objectToString.js"}},{"traceId":"a40c92b03843b256","parentId":"627a397275636131","name":"read-resource","id":"35716e3976676d36","timestamp":96954899094,"duration":8646,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a6d767669317761","name":"build-module-js","id":"627a397275636131","timestamp":96954899056,"duration":9279,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_getRawTag.js"}},{"traceId":"a40c92b03843b256","parentId":"6568626f667a6336","name":"read-resource","id":"716d676c68346634","timestamp":96954899354,"duration":9007,"tags":{}}] +[{"traceId":"a40c92b03843b256","parentId":"307438396a726b33","name":"build-module-js","id":"6568626f667a6336","timestamp":96954899319,"duration":9994,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_baseAssign.js"}},{"traceId":"a40c92b03843b256","parentId":"7561336d34377064","name":"read-resource","id":"3135777a77766b6a","timestamp":96954898830,"duration":10529,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a6d767669317761","name":"build-module-js","id":"7561336d34377064","timestamp":96954898676,"duration":11020,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_Symbol.js"}},{"traceId":"a40c92b03843b256","parentId":"376566766462626e","name":"read-resource","id":"357a62797566396d","timestamp":96954899476,"duration":10245,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"307438396a726b33","name":"build-module-js","id":"376566766462626e","timestamp":96954899441,"duration":10659,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_baseAssignIn.js"}},{"traceId":"a40c92b03843b256","parentId":"346b6b3378397969","name":"read-resource","id":"67716d39716f7578","timestamp":96954899419,"duration":10712,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"307438396a726b33","name":"build-module-js","id":"346b6b3378397969","timestamp":96954899378,"duration":11287,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_arrayEach.js"}},{"traceId":"a40c92b03843b256","parentId":"73677a6d6a76327a","name":"read-resource","id":"30373067396b3462","timestamp":96954899601,"duration":11099,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"307438396a726b33","name":"build-module-js","id":"73677a6d6a76327a","timestamp":96954899567,"duration":11787,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_copySymbols.js"}},{"traceId":"a40c92b03843b256","parentId":"767231666135707a","name":"read-resource","id":"3679656739346e64","timestamp":96954899790,"duration":11677,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"307438396a726b33","name":"build-module-js","id":"767231666135707a","timestamp":96954899697,"duration":12453,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_getAllKeys.js"}},{"traceId":"a40c92b03843b256","parentId":"67366b76686b6362","name":"read-resource","id":"6862347471387a76","timestamp":96954899539,"duration":12687,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"307438396a726b33","name":"build-module-js","id":"67366b76686b6362","timestamp":96954899503,"duration":14857,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_cloneBuffer.js"}},{"traceId":"a40c92b03843b256","parentId":"65637a3579696274","name":"read-resource","id":"66346a646b303865","timestamp":96954900055,"duration":16421,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"307438396a726b33","name":"build-module-js","id":"65637a3579696274","timestamp":96954900015,"duration":17329,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_initCloneArray.js"}},{"traceId":"a40c92b03843b256","parentId":"33616336656e3075","name":"read-resource","id":"7235676e79656a34","timestamp":96954899664,"duration":17740,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"307438396a726b33","name":"build-module-js","id":"33616336656e3075","timestamp":96954899623,"duration":18156,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_copySymbolsIn.js"}},{"traceId":"a40c92b03843b256","parentId":"37693963746f7476","name":"read-resource","id":"3161626d6c6f3839","timestamp":96954900268,"duration":17535,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"307438396a726b33","name":"build-module-js","id":"37693963746f7476","timestamp":96954900234,"duration":17911,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\isMap.js"}},{"traceId":"a40c92b03843b256","parentId":"7a33656c7570616c","name":"read-resource","id":"766b336965326533","timestamp":96954899947,"duration":18220,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"307438396a726b33","name":"build-module-js","id":"7a33656c7570616c","timestamp":96954899902,"duration":20259,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_getTag.js"}},{"traceId":"a40c92b03843b256","parentId":"73796f7539763336","name":"read-resource","id":"65703576696d6f64","timestamp":96954900112,"duration":20160,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"307438396a726b33","name":"build-module-js","id":"73796f7539763336","timestamp":96954900078,"duration":21749,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_initCloneByTag.js"}},{"traceId":"a40c92b03843b256","parentId":"6668353378726b68","name":"read-resource","id":"386a6e3068317177","timestamp":96954900392,"duration":21487,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"307438396a726b33","name":"build-module-js","id":"6668353378726b68","timestamp":96954900356,"duration":22061,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_initCloneObject.js"}},{"traceId":"a40c92b03843b256","parentId":"706b616b73367838","name":"read-resource","id":"366c6a6978356333","timestamp":96954899879,"duration":22573,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"307438396a726b33","name":"build-module-js","id":"706b616b73367838","timestamp":96954899835,"duration":22996,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_getAllKeysIn.js"}},{"traceId":"a40c92b03843b256","parentId":"7235397174743266","name":"read-resource","id":"6c653436796b7435","timestamp":96954900332,"duration":22522,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"307438396a726b33","name":"build-module-js","id":"7235397174743266","timestamp":96954900290,"duration":22861,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\isObject.js"}},{"traceId":"a40c92b03843b256","parentId":"7a626b706c683330","name":"read-resource","id":"6331696b64396868","timestamp":96954900209,"duration":22964,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"307438396a726b33","name":"build-module-js","id":"7a626b706c683330","timestamp":96954900173,"duration":23531,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\isBuffer.js"}},{"traceId":"a40c92b03843b256","parentId":"766e6d6465327271","name":"read-resource","id":"626d38636f663933","timestamp":96954901124,"duration":25994,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"307438396a726b33","name":"build-module-js","id":"766e6d6465327271","timestamp":96954901076,"duration":27014,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\keysIn.js"}},{"traceId":"a40c92b03843b256","parentId":"3775646e6d316369","name":"read-resource","id":"356b7a7662356c76","timestamp":96954900988,"duration":27183,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"307438396a726b33","name":"build-module-js","id":"3775646e6d316369","timestamp":96954900919,"duration":27894,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\isSet.js"}},{"traceId":"a40c92b03843b256","parentId":"7878637436646838","name":"read-resource","id":"6f67323063626767","timestamp":96954901054,"duration":27823,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"307438396a726b33","name":"build-module-js","id":"7878637436646838","timestamp":96954901016,"duration":28490,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\keys.js"}},{"traceId":"a40c92b03843b256","parentId":"3663663039626d30","name":"read-resource","id":"306a333362747a65","timestamp":96954936764,"duration":6388,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a6c62336f713839","name":"build-module-js","id":"3663663039626d30","timestamp":96954936720,"duration":7352,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_stackClear.js"}},{"traceId":"a40c92b03843b256","parentId":"3872366e67693479","name":"read-resource","id":"66746c6b38617772","timestamp":96954936673,"duration":7468,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a616d666868316f","name":"build-module-js","id":"3872366e67693479","timestamp":96954936535,"duration":8093,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\eq.js"}},{"traceId":"a40c92b03843b256","parentId":"6c396f3776733069","name":"read-resource","id":"38397161386f6567","timestamp":96954936916,"duration":7750,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a616d666868316f","name":"build-module-js","id":"6c396f3776733069","timestamp":96954936879,"duration":8583,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_baseAssignValue.js"}},{"traceId":"a40c92b03843b256","parentId":"6174793333387577","name":"read-resource","id":"6c65326366703932","timestamp":96954936976,"duration":8580,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a6c62336f713839","name":"build-module-js","id":"6174793333387577","timestamp":96954936942,"duration":9227,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_stackDelete.js"}},{"traceId":"a40c92b03843b256","parentId":"6a38387038373532","name":"read-resource","id":"3937736b33693172","timestamp":96954937106,"duration":9097,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a6c62336f713839","name":"build-module-js","id":"6a38387038373532","timestamp":96954937061,"duration":10002,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_ListCache.js"}},{"traceId":"a40c92b03843b256","parentId":"736e303134677163","name":"read-resource","id":"3372747868757170","timestamp":96954937039,"duration":10070,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a6c62336f713839","name":"build-module-js","id":"736e303134677163","timestamp":96954937001,"duration":10440,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_stackGet.js"}},{"traceId":"a40c92b03843b256","parentId":"73617032636f7136","name":"read-resource","id":"3877646d696f6e6d","timestamp":96954937166,"duration":10301,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a6c62336f713839","name":"build-module-js","id":"73617032636f7136","timestamp":96954937131,"duration":10588,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_stackHas.js"}},{"traceId":"a40c92b03843b256","parentId":"6774307a6971766c","name":"read-resource","id":"6c3269756367777a","timestamp":96954936853,"duration":10909,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3464336974386a30","name":"build-module-js","id":"6774307a6971766c","timestamp":96954936796,"duration":11840,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\memoize.js"}},{"traceId":"a40c92b03843b256","parentId":"303835686a6a6861","name":"read-resource","id":"7339366576797938","timestamp":96954937330,"duration":11364,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6568626f667a6336","name":"build-module-js","id":"303835686a6a6861","timestamp":96954937293,"duration":12324,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_copyObject.js"}},{"traceId":"a40c92b03843b256","parentId":"6230716130303539","name":"read-resource","id":"7476693764347932","timestamp":96954937403,"duration":12306,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7561336d34377064","name":"build-module-js","id":"6230716130303539","timestamp":96954937357,"duration":13323,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_root.js"}},{"traceId":"a40c92b03843b256","parentId":"3563706a6270346f","name":"read-resource","id":"37736b6b68703431","timestamp":96954937228,"duration":13528,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a6c62336f713839","name":"build-module-js","id":"3563706a6270346f","timestamp":96954937190,"duration":14521,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_stackSet.js"}},{"traceId":"a40c92b03843b256","parentId":"366d63326d62786c","name":"read-resource","id":"737a66756a637866","timestamp":96954939296,"duration":14546,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"33616336656e3075","name":"build-module-js","id":"366d63326d62786c","timestamp":96954939259,"duration":15672,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_getSymbolsIn.js"}},{"traceId":"a40c92b03843b256","parentId":"6961336c6737356f","name":"read-resource","id":"7678756a73767179","timestamp":96954939152,"duration":15843,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"73677a6d6a76327a","name":"build-module-js","id":"6961336c6737356f","timestamp":96954939038,"duration":16747,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_getSymbols.js"}},{"traceId":"a40c92b03843b256","parentId":"377a6579616e356d","name":"read-resource","id":"7671346931736177","timestamp":96954939539,"duration":16301,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37693963746f7476","name":"build-module-js","id":"377a6579616e356d","timestamp":96954939488,"duration":16841,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_baseIsMap.js"}},{"traceId":"a40c92b03843b256","parentId":"7031653675673765","name":"read-resource","id":"713738366666656f","timestamp":96954939608,"duration":16755,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a33656c7570616c","name":"build-module-js","id":"7031653675673765","timestamp":96954939572,"duration":17097,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_Promise.js"}},{"traceId":"a40c92b03843b256","parentId":"667171307931696c","name":"read-resource","id":"786c7a6f6364737a","timestamp":96954939234,"duration":17459,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"767231666135707a","name":"build-module-js","id":"667171307931696c","timestamp":96954939193,"duration":17871,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_baseGetAllKeys.js"}},{"traceId":"a40c92b03843b256","parentId":"6a75386471767370","name":"read-resource","id":"78636b627266386f","timestamp":96954939450,"duration":17639,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a33656c7570616c","name":"build-module-js","id":"6a75386471767370","timestamp":96954939383,"duration":18025,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_DataView.js"}},{"traceId":"a40c92b03843b256","parentId":"6277746539376e78","name":"read-resource","id":"3478373364356265","timestamp":96954939730,"duration":17702,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a33656c7570616c","name":"build-module-js","id":"6277746539376e78","timestamp":96954939689,"duration":18054,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_Map.js"}},{"traceId":"a40c92b03843b256","parentId":"7933316335686c66","name":"read-resource","id":"6635307576363738","timestamp":96954939355,"duration":18415,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37693963746f7476","name":"build-module-js","id":"7933316335686c66","timestamp":96954939319,"duration":18804,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_baseUnary.js"}},{"traceId":"a40c92b03843b256","parentId":"706d31336c75686d","name":"read-resource","id":"3171387277767472","timestamp":96954939663,"duration":18493,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37693963746f7476","name":"build-module-js","id":"706d31336c75686d","timestamp":96954939630,"duration":19614,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_nodeUtil.js"}},{"traceId":"a40c92b03843b256","parentId":"7575736f6c377a35","name":"read-resource","id":"6b71363968673378","timestamp":96954939844,"duration":19461,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a33656c7570616c","name":"build-module-js","id":"7575736f6c377a35","timestamp":96954939809,"duration":19873,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_WeakMap.js"}},{"traceId":"a40c92b03843b256","parentId":"786f793671317764","name":"read-resource","id":"6567677173767234","timestamp":96954939903,"duration":19803,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a33656c7570616c","name":"build-module-js","id":"786f793671317764","timestamp":96954939868,"duration":20273,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_toSource.js"}},{"traceId":"a40c92b03843b256","parentId":"74626f6663386b75","name":"read-resource","id":"3869687679723335","timestamp":96954940130,"duration":20036,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"73796f7539763336","name":"build-module-js","id":"74626f6663386b75","timestamp":96954940093,"duration":20455,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_cloneSymbol.js"}},{"traceId":"a40c92b03843b256","parentId":"6374787163313261","name":"read-resource","id":"6433783739776233","timestamp":96954939967,"duration":20606,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"73796f7539763336","name":"build-module-js","id":"6374787163313261","timestamp":96954939926,"duration":21005,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_cloneDataView.js"}},{"traceId":"a40c92b03843b256","parentId":"727a7a6e786c7476","name":"read-resource","id":"736d6a636163396b","timestamp":96954939788,"duration":21167,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a33656c7570616c","name":"build-module-js","id":"727a7a6e786c7476","timestamp":96954939753,"duration":21481,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_Set.js"}},{"traceId":"a40c92b03843b256","parentId":"683170373166386c","name":"read-resource","id":"756e6e306d657062","timestamp":96954940067,"duration":21193,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"73796f7539763336","name":"build-module-js","id":"683170373166386c","timestamp":96954939992,"duration":21671,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_cloneArrayBuffer.js"}},{"traceId":"a40c92b03843b256","parentId":"3372687767357232","name":"read-resource","id":"6c34766162696172","timestamp":96954940198,"duration":21500,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"73796f7539763336","name":"build-module-js","id":"3372687767357232","timestamp":96954940153,"duration":22071,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_cloneRegExp.js"}},{"traceId":"a40c92b03843b256","parentId":"716d7938776e3076","name":"read-resource","id":"726678717a6a3477","timestamp":96954940349,"duration":21924,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"73796f7539763336","name":"build-module-js","id":"716d7938776e3076","timestamp":96954940220,"duration":22602,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_cloneTypedArray.js"}},{"traceId":"a40c92b03843b256","parentId":"746668336c723263","name":"read-resource","id":"7173387773393466","timestamp":96954941935,"duration":24001,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a626b706c683330","name":"build-module-js","id":"746668336c723263","timestamp":96954941892,"duration":24975,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\stubFalse.js"}},{"traceId":"a40c92b03843b256","parentId":"657a317a6b387870","name":"read-resource","id":"626478367963316f","timestamp":96954942140,"duration":24805,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766e6d6465327271","name":"build-module-js","id":"657a317a6b387870","timestamp":96954942081,"duration":26252,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_arrayLikeKeys.js"}},{"traceId":"a40c92b03843b256","parentId":"66736b307239756a","name":"read-resource","id":"6e6e753165393939","timestamp":96954941709,"duration":26706,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6668353378726b68","name":"build-module-js","id":"66736b307239756a","timestamp":96954941592,"duration":27621,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_baseCreate.js"}},{"traceId":"a40c92b03843b256","parentId":"643773356d613475","name":"read-resource","id":"7a6b6a7335717370","timestamp":96954941812,"duration":27450,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6668353378726b68","name":"build-module-js","id":"643773356d613475","timestamp":96954941752,"duration":28129,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_isPrototype.js"}}] +[{"traceId":"a40c92b03843b256","parentId":"3064303177396d66","name":"read-resource","id":"656a6268316e6266","timestamp":96954942004,"duration":28418,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766e6d6465327271","name":"build-module-js","id":"3064303177396d66","timestamp":96954941963,"duration":29314,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\isArrayLike.js"}},{"traceId":"a40c92b03843b256","parentId":"6a31686665667532","name":"read-resource","id":"643932686c667263","timestamp":96954943022,"duration":33779,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7878637436646838","name":"build-module-js","id":"6a31686665667532","timestamp":96954942982,"duration":34872,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_baseKeys.js"}},{"traceId":"a40c92b03843b256","parentId":"6670656e6f32736f","name":"read-resource","id":"7032683968707a6c","timestamp":96954943081,"duration":34835,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3775646e6d316369","name":"build-module-js","id":"6670656e6f32736f","timestamp":96954943043,"duration":35514,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_baseIsSet.js"}},{"traceId":"a40c92b03843b256","parentId":"6c6b797136366c6f","name":"read-resource","id":"7735663573626335","timestamp":96954942948,"duration":35686,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766e6d6465327271","name":"build-module-js","id":"6c6b797136366c6f","timestamp":96954942859,"duration":36667,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_baseKeysIn.js"}},{"traceId":"a40c92b03843b256","parentId":"3134366f63617772","name":"read-resource","id":"3178643570357839","timestamp":96954973497,"duration":15283,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6938636937366862","name":"build-module-js","id":"3134366f63617772","timestamp":96954973366,"duration":16151,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\hoist-non-react-statics\\node_modules\\react-is\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"7a6b777073616971","name":"read-resource","id":"78316971647a3633","timestamp":96954975963,"duration":15029,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a38387038373532","name":"build-module-js","id":"7a6b777073616971","timestamp":96954975921,"duration":16079,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_listCacheDelete.js"}},{"traceId":"a40c92b03843b256","parentId":"6235377932613077","name":"read-resource","id":"74686f6937366f65","timestamp":96954975669,"duration":16394,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a38387038373532","name":"build-module-js","id":"6235377932613077","timestamp":96954975614,"duration":17013,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_listCacheHas.js"}},{"traceId":"a40c92b03843b256","parentId":"72647a6b746c6f67","name":"read-resource","id":"6e786d3367346d6f","timestamp":96954975884,"duration":16787,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a38387038373532","name":"build-module-js","id":"72647a6b746c6f67","timestamp":96954975849,"duration":17490,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_listCacheSet.js"}},{"traceId":"a40c92b03843b256","parentId":"7075666638313573","name":"read-resource","id":"7931757875347272","timestamp":96954975826,"duration":17559,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a38387038373532","name":"build-module-js","id":"7075666638313573","timestamp":96954975752,"duration":18110,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_listCacheGet.js"}},{"traceId":"a40c92b03843b256","parentId":"6e68643132667631","name":"read-resource","id":"6f786c6d63666679","timestamp":96954975561,"duration":18337,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c396f3776733069","name":"build-module-js","id":"6e68643132667631","timestamp":96954975403,"duration":18930,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_defineProperty.js"}},{"traceId":"a40c92b03843b256","parentId":"6c71697530783262","name":"read-resource","id":"6a6d636a667a3930","timestamp":96954975729,"duration":18634,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a38387038373532","name":"build-module-js","id":"6c71697530783262","timestamp":96954975693,"duration":18978,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_listCacheClear.js"}},{"traceId":"a40c92b03843b256","parentId":"6372397135627934","name":"read-resource","id":"7130673333623972","timestamp":96954976022,"duration":18676,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6774307a6971766c","name":"build-module-js","id":"6372397135627934","timestamp":96954975986,"duration":19680,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_MapCache.js"}},{"traceId":"a40c92b03843b256","parentId":"306c6c6935613563","name":"read-resource","id":"79376a786e757875","timestamp":96954986404,"duration":11265,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6961336c6737356f","name":"build-module-js","id":"306c6c6935613563","timestamp":96954986369,"duration":12169,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_arrayFilter.js"}},{"traceId":"a40c92b03843b256","parentId":"3866766370386f33","name":"read-resource","id":"33387234706b7039","timestamp":96954986234,"duration":12344,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6230716130303539","name":"build-module-js","id":"3866766370386f33","timestamp":96954986092,"duration":12846,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_freeGlobal.js"}},{"traceId":"a40c92b03843b256","parentId":"63757a6c6d306c73","name":"read-resource","id":"6d6d327039363532","timestamp":96954986344,"duration":12619,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"366d63326d62786c","name":"build-module-js","id":"63757a6c6d306c73","timestamp":96954986303,"duration":13002,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_arrayPush.js"}},{"traceId":"a40c92b03843b256","parentId":"7666616f69366964","name":"read-resource","id":"717a747733353875","timestamp":96954988063,"duration":12170,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"366d63326d62786c","name":"build-module-js","id":"7666616f69366964","timestamp":96954987947,"duration":12871,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\stubArray.js"}},{"traceId":"a40c92b03843b256","parentId":"7436676a67367779","name":"read-resource","id":"7463397635766a35","timestamp":96954988152,"duration":12725,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7031653675673765","name":"build-module-js","id":"7436676a67367779","timestamp":96954988106,"duration":13288,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_getNative.js"}},{"traceId":"a40c92b03843b256","parentId":"79666f3277733034","name":"read-resource","id":"74366666717a3631","timestamp":96954988284,"duration":13157,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"657a317a6b387870","name":"build-module-js","id":"79666f3277733034","timestamp":96954988247,"duration":13869,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\isArguments.js"}},{"traceId":"a40c92b03843b256","parentId":"6938626a35683263","name":"read-resource","id":"397176676f66396a","timestamp":96954988217,"duration":13955,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"683170373166386c","name":"build-module-js","id":"6938626a35683263","timestamp":96954988178,"duration":14373,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_Uint8Array.js"}},{"traceId":"a40c92b03843b256","parentId":"636e70746734616f","name":"read-resource","id":"376462386f686939","timestamp":96954988486,"duration":16042,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"657a317a6b387870","name":"build-module-js","id":"636e70746734616f","timestamp":96954988306,"duration":16989,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_baseTimes.js"}},{"traceId":"a40c92b03843b256","parentId":"307a6c3974373165","name":"read-resource","id":"31386d79776a6e76","timestamp":96954990077,"duration":15713,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3064303177396d66","name":"build-module-js","id":"307a6c3974373165","timestamp":96954990021,"duration":16506,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\isFunction.js"}},{"traceId":"a40c92b03843b256","parentId":"79306f7568363262","name":"read-resource","id":"736c613130636e39","timestamp":96954990214,"duration":16373,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3064303177396d66","name":"build-module-js","id":"79306f7568363262","timestamp":96954990155,"duration":16878,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\isLength.js"}},{"traceId":"a40c92b03843b256","parentId":"7367793577373674","name":"read-resource","id":"65766b347a71726e","timestamp":96954989972,"duration":17092,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"657a317a6b387870","name":"build-module-js","id":"7367793577373674","timestamp":96954989858,"duration":17917,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_isIndex.js"}},{"traceId":"a40c92b03843b256","parentId":"6c696c726c316971","name":"read-resource","id":"78776b696d316b75","timestamp":96954990134,"duration":17701,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"657a317a6b387870","name":"build-module-js","id":"6c696c726c316971","timestamp":96954990099,"duration":18250,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\isTypedArray.js"}},{"traceId":"a40c92b03843b256","parentId":"6837307175387839","name":"read-resource","id":"6b676d6271396a69","timestamp":96955000066,"duration":11769,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a31686665667532","name":"build-module-js","id":"6837307175387839","timestamp":96955000020,"duration":12554,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_nativeKeys.js"}},{"traceId":"a40c92b03843b256","parentId":"697266316b643863","name":"read-resource","id":"3969653533723761","timestamp":96954999963,"duration":12957,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c6b797136366c6f","name":"build-module-js","id":"697266316b643863","timestamp":96954999718,"duration":13706,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_nativeKeysIn.js"}},{"traceId":"a40c92b03843b256","parentId":"727375713630646d","name":"read-resource","id":"736d61693074726f","timestamp":96955009318,"duration":4978,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6b777073616971","name":"build-module-js","id":"727375713630646d","timestamp":96955009190,"duration":5843,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_assocIndexOf.js"}},{"traceId":"a40c92b03843b256","parentId":"786f343233656163","name":"read-resource","id":"68797474366c6d79","timestamp":96955009522,"duration":5554,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6372397135627934","name":"build-module-js","id":"786f343233656163","timestamp":96955009488,"duration":5973,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_mapCacheGet.js"}},{"traceId":"a40c92b03843b256","parentId":"6b6b76746577776a","name":"read-resource","id":"366d6a656c6b7339","timestamp":96955009408,"duration":6075,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6372397135627934","name":"build-module-js","id":"6b6b76746577776a","timestamp":96955009369,"duration":6760,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_mapCacheClear.js"}},{"traceId":"a40c92b03843b256","parentId":"7531733973323575","name":"read-resource","id":"3471396a317a3378","timestamp":96955009466,"duration":6704,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6372397135627934","name":"build-module-js","id":"7531733973323575","timestamp":96955009431,"duration":7158,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_mapCacheDelete.js"}},{"traceId":"a40c92b03843b256","parentId":"6f6e6f3466677461","name":"read-resource","id":"346872337a6b7970","timestamp":96955010628,"duration":7269,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6372397135627934","name":"build-module-js","id":"6f6e6f3466677461","timestamp":96955010543,"duration":8075,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_mapCacheHas.js"}},{"traceId":"a40c92b03843b256","parentId":"326f363375356335","name":"read-resource","id":"646a6d6439376670","timestamp":96955010703,"duration":8491,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6372397135627934","name":"build-module-js","id":"326f363375356335","timestamp":96955010665,"duration":9357,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_mapCacheSet.js"}},{"traceId":"a40c92b03843b256","parentId":"7433316678687935","name":"read-resource","id":"6972727937733461","timestamp":96955011560,"duration":8600,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3134366f63617772","name":"build-module-js","id":"7433316678687935","timestamp":96955011353,"duration":12064,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\hoist-non-react-statics\\node_modules\\react-is\\cjs\\react-is.development.js"}},{"traceId":"a40c92b03843b256","parentId":"646c626372767864","name":"read-resource","id":"3761776270357664","timestamp":96955011671,"duration":12065,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7436676a67367779","name":"build-module-js","id":"646c626372767864","timestamp":96955011619,"duration":13629,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_baseIsNative.js"}},{"traceId":"a40c92b03843b256","parentId":"656d6c32666b397a","name":"read-resource","id":"637776323170667a","timestamp":96955014012,"duration":11946,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7436676a67367779","name":"build-module-js","id":"656d6c32666b397a","timestamp":96955013889,"duration":12756,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_getValue.js"}},{"traceId":"a40c92b03843b256","parentId":"35316a6167306932","name":"read-resource","id":"697a396930336e71","timestamp":96955014140,"duration":13400,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79666f3277733034","name":"build-module-js","id":"35316a6167306932","timestamp":96955014085,"duration":14666,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_baseIsArguments.js"}},{"traceId":"a40c92b03843b256","parentId":"3266757a6576736b","name":"read-resource","id":"79326e7930633663","timestamp":96955017443,"duration":11407,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c696c726c316971","name":"build-module-js","id":"3266757a6576736b","timestamp":96955017323,"duration":12750,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_baseIsTypedArray.js"}},{"traceId":"a40c92b03843b256","parentId":"31657262766b6a36","name":"read-resource","id":"677062706f73786a","timestamp":96955030943,"duration":1776,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b6b76746577776a","name":"build-module-js","id":"31657262766b6a36","timestamp":96955030902,"duration":2970,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_Hash.js"}},{"traceId":"a40c92b03843b256","parentId":"3066396633776676","name":"read-resource","id":"376565306f393332","timestamp":96955030822,"duration":3128,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"786f343233656163","name":"build-module-js","id":"3066396633776676","timestamp":96955030718,"duration":3652,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_getMapData.js"}},{"traceId":"a40c92b03843b256","parentId":"64347a386e713275","name":"read-resource","id":"35787a6e65746f31","timestamp":96955032611,"duration":4783,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"646c626372767864","name":"build-module-js","id":"64347a386e713275","timestamp":96955032359,"duration":5971,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_isMasked.js"}},{"traceId":"a40c92b03843b256","parentId":"64346a7a74357936","name":"read-resource","id":"656b677a79396f67","timestamp":96955037200,"duration":2292,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"31657262766b6a36","name":"build-module-js","id":"64346a7a74357936","timestamp":96955037094,"duration":3157,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_hashClear.js"}},{"traceId":"a40c92b03843b256","parentId":"6a73626537627167","name":"read-resource","id":"71786d6f68647269","timestamp":96955038858,"duration":1460,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3066396633776676","name":"build-module-js","id":"6a73626537627167","timestamp":96955038826,"duration":2238,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_isKeyable.js"}},{"traceId":"a40c92b03843b256","parentId":"68627432736c3470","name":"read-resource","id":"353965366977777a","timestamp":96955037043,"duration":4404,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"31657262766b6a36","name":"build-module-js","id":"68627432736c3470","timestamp":96955036883,"duration":5013,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_hashDelete.js"}},{"traceId":"a40c92b03843b256","parentId":"786677746f723665","name":"read-resource","id":"693179627835376b","timestamp":96955038661,"duration":3284,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"31657262766b6a36","name":"build-module-js","id":"786677746f723665","timestamp":96955038568,"duration":3798,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_hashSet.js"}},{"traceId":"a40c92b03843b256","parentId":"64656d6172683369","name":"read-resource","id":"6574746f6475636d","timestamp":96955038798,"duration":3594,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"31657262766b6a36","name":"build-module-js","id":"64656d6172683369","timestamp":96955038708,"duration":4059,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_hashGet.js"}},{"traceId":"a40c92b03843b256","parentId":"357a666a66346239","name":"read-resource","id":"343678326c397974","timestamp":96955037271,"duration":5529,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"31657262766b6a36","name":"build-module-js","id":"357a666a66346239","timestamp":96955037233,"duration":5881,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_hashHas.js"}},{"traceId":"a40c92b03843b256","parentId":"776f646463723736","name":"read-resource","id":"7035776838647464","timestamp":96955043912,"duration":2246,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"64347a386e713275","name":"build-module-js","id":"776f646463723736","timestamp":96955043814,"duration":3391,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_coreJsData.js"}},{"traceId":"a40c92b03843b256","parentId":"6365343279707974","name":"read-resource","id":"32686f75366c3833","timestamp":96955045742,"duration":2257,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"64346a7a74357936","name":"build-module-js","id":"6365343279707974","timestamp":96955045565,"duration":3221,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash-es\\_nativeCreate.js"}},{"traceId":"a40c92b03843b256","parentId":"627a71336a763869","name":"add-entry","id":"7a377a7464727638","timestamp":96954460826,"duration":588414,"tags":{"request":"next-client-pages-loader?page=%2Fcontact%2Fcontact-light&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Ccontact%5Ccontact-light.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"766b777072317033","name":"make","id":"747a7169796d766a","timestamp":96954459859,"duration":589470,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"627a71336a763869","name":"webpack-compilation-chunk-graph","id":"36346138686d6462","timestamp":96955057152,"duration":7909,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"627a71336a763869","name":"webpack-compilation-optimize-modules","id":"6964727466737763","timestamp":96955065182,"duration":29,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"627a71336a763869","name":"webpack-compilation-optimize-chunks","id":"6c35326c79756f6e","timestamp":96955065242,"duration":315,"tags":{}}] +[{"traceId":"a40c92b03843b256","parentId":"627a71336a763869","name":"webpack-compilation-optimize-tree","id":"7363757936666762","timestamp":96955074982,"duration":29,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"627a71336a763869","name":"webpack-compilation-optimize","id":"78656475766c376d","timestamp":96955065139,"duration":11172,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"627a71336a763869","name":"webpack-compilation-hash","id":"796c76396f373669","timestamp":96955117045,"duration":19509,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"627a71336a763869","name":"NextJsBuildManifest-generateClientManifest","id":"6839693075376f36","timestamp":96955168982,"duration":190,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"627a71336a763869","name":"NextJsBuildManifest-createassets","id":"6934397733763271","timestamp":96955168820,"duration":370,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"627a71336a763869","name":"webpack-compilation-seal","id":"706c396f67646961","timestamp":96955055240,"duration":116593,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766b777072317033","name":"webpack-compilation","id":"627a71336a763869","timestamp":96954459391,"duration":712524,"tags":{"name":"client"}},{"traceId":"a40c92b03843b256","parentId":"766b777072317033","name":"emit","id":"396b66316b77636f","timestamp":96955171973,"duration":60318,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-client","id":"766b777072317033","timestamp":96954456007,"duration":779338,"tags":{"trigger":"manual"}},{"traceId":"a40c92b03843b256","parentId":"6a333872786f7075","name":"add-entry","id":"626e776879787364","timestamp":96955256484,"duration":13634,"tags":{"request":"private-next-pages/_error"}},{"traceId":"a40c92b03843b256","parentId":"6a333872786f7075","name":"add-entry","id":"78747567346d6f7a","timestamp":96955255807,"duration":14906,"tags":{"request":"private-next-pages/_app"}},{"traceId":"a40c92b03843b256","parentId":"6a333872786f7075","name":"add-entry","id":"6e767739616f3775","timestamp":96955256437,"duration":15327,"tags":{"request":"private-next-pages/_document"}},{"traceId":"a40c92b03843b256","parentId":"61316b6e37347479","name":"make","id":"6e766b6f71756c76","timestamp":96955241105,"duration":30909,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a333872786f7075","name":"webpack-compilation-chunk-graph","id":"617266336e676668","timestamp":96955272645,"duration":1432,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a333872786f7075","name":"webpack-compilation-optimize-modules","id":"356878356e396369","timestamp":96955274222,"duration":258,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a333872786f7075","name":"webpack-compilation-optimize-chunks","id":"323679693566706f","timestamp":96955274521,"duration":59,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a333872786f7075","name":"webpack-compilation-optimize-tree","id":"37386b70656a766d","timestamp":96955274625,"duration":11,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a333872786f7075","name":"webpack-compilation-optimize","id":"65707a766f676b32","timestamp":96955274190,"duration":664,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a333872786f7075","name":"webpack-compilation-hash","id":"6d62726e61313735","timestamp":96955276854,"duration":3216,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a333872786f7075","name":"webpack-compilation-seal","id":"3539617379393875","timestamp":96955272522,"duration":8769,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"61316b6e37347479","name":"webpack-compilation","id":"6a333872786f7075","timestamp":96955239921,"duration":41431,"tags":{"name":"server"}},{"traceId":"a40c92b03843b256","parentId":"61316b6e37347479","name":"emit","id":"656c30696872706b","timestamp":96955281408,"duration":8872,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-server","id":"61316b6e37347479","timestamp":96954456957,"duration":834708,"tags":{"trigger":"manual"}}] +[{"traceId":"a40c92b03843b256","parentId":"6e6b6f6f6e767369","name":"next-client-pages-loader","id":"707161656e617173","timestamp":96959181231,"duration":135,"tags":{"absolutePagePath":"C:\\Users\\hp\\Desktop\\business-hub\\src\\pages\\blog\\blog-light.jsx"}},{"traceId":"a40c92b03843b256","parentId":"3066356931373634","name":"build-module-jsx!","id":"6e6b6f6f6e767369","timestamp":96959181016,"duration":1667,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-client-pages-loader.js?page=%2Fblog%2Fblog-light&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cblog%5Cblog-light.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"3066356931373634","name":"add-entry","id":"647a7a796e74386f","timestamp":96959176427,"duration":11327,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"3066356931373634","name":"add-entry","id":"65326e6439766461","timestamp":96959176582,"duration":12301,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=private-next-pages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"3066356931373634","name":"add-entry","id":"6f67746b77736b6e","timestamp":96959176572,"duration":12459,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"3066356931373634","name":"add-entry","id":"76726636646c6e75","timestamp":96959176542,"duration":12842,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"}},{"traceId":"a40c92b03843b256","parentId":"3066356931373634","name":"add-entry","id":"3565673938396d77","timestamp":96959176562,"duration":13321,"tags":{"request":"next-client-pages-loader?page=%2F_app&absolutePagePath=private-next-pages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"3066356931373634","name":"add-entry","id":"6634347a766c6f32","timestamp":96959176553,"duration":20045,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"7435746a71637362","name":"read-resource","id":"376874317a396f7a","timestamp":96959194379,"duration":2557,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"66636b3934657770","name":"get-options","id":"796d3667306e3367","timestamp":96959196985,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3174737174383665","name":"babel-turbo-get-config","id":"6364707871366f61","timestamp":96959196997,"duration":17,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3174737174383665","name":"babel-turbo-normalize-file","id":"7a6b79667a6f7268","timestamp":96959197018,"duration":3519,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3861627074397476","name":"babel-turbo-traverse","id":"69626762646f7a38","timestamp":96959202171,"duration":21775,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3174737174383665","name":"babel-turbo-transform","id":"3861627074397476","timestamp":96959200574,"duration":23391,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3174737174383665","name":"babel-turbo-generate","id":"63356371376e7838","timestamp":96959223987,"duration":2817,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"66636b3934657770","name":"next-babel-turbo-transform","id":"3174737174383665","timestamp":96959196994,"duration":29824,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7435746a71637362","name":"next-babel-turbo-loader","id":"66636b3934657770","timestamp":96959196979,"duration":29870,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e6b6f6f6e767369","name":"build-module-jsx","id":"7435746a71637362","timestamp":96959194148,"duration":36050,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\pages\\blog\\blog-light.jsx"}},{"traceId":"a40c92b03843b256","parentId":"3066356931373634","name":"add-entry","id":"313238736c767a36","timestamp":96959176599,"duration":54127,"tags":{"request":"next-client-pages-loader?page=%2Fservices&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cservices%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"3066356931373634","name":"add-entry","id":"6e676876636f6d7a","timestamp":96959176591,"duration":60697,"tags":{"request":"next-client-pages-loader?page=%2Fcontact%2Fcontact-light&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Ccontact%5Ccontact-light.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"6e3834783477746b","name":"read-resource","id":"6c3533367a313579","timestamp":96959237763,"duration":446,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7435746a71637362","name":"build-module-json","id":"6e3834783477746b","timestamp":96959237597,"duration":1191,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\data\\blog1.json"}},{"traceId":"a40c92b03843b256","parentId":"376878696d6a3133","name":"read-resource","id":"64787973616e6335","timestamp":96959240107,"duration":442,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e657362397a6166","name":"get-options","id":"6a6b766675623473","timestamp":96959240595,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3465796f766e776a","name":"babel-turbo-get-config","id":"3875697267643965","timestamp":96959240606,"duration":16,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3465796f766e776a","name":"babel-turbo-normalize-file","id":"383837796c616976","timestamp":96959240626,"duration":3536,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d323479326b307a","name":"babel-turbo-traverse","id":"75346635746f6973","timestamp":96959245070,"duration":13173,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3465796f766e776a","name":"babel-turbo-transform","id":"6d323479326b307a","timestamp":96959244279,"duration":13983,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3465796f766e776a","name":"babel-turbo-generate","id":"337475737779796f","timestamp":96959258284,"duration":3224,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e657362397a6166","name":"next-babel-turbo-transform","id":"3465796f766e776a","timestamp":96959240603,"duration":20919,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"376878696d6a3133","name":"next-babel-turbo-loader","id":"6e657362397a6166","timestamp":96959240589,"duration":20962,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7435746a71637362","name":"build-module-jsx","id":"376878696d6a3133","timestamp":96959239995,"duration":24516,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Page-header\\page-header.jsx"}},{"traceId":"a40c92b03843b256","parentId":"6566706830786234","name":"read-resource","id":"6f7237396e336d62","timestamp":96959240249,"duration":25592,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7261663963726434","name":"get-options","id":"6866753879316266","timestamp":96959265912,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3534643374693478","name":"babel-turbo-get-config","id":"6436393331317a6a","timestamp":96959265929,"duration":18,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3534643374693478","name":"babel-turbo-normalize-file","id":"36613935726f387a","timestamp":96959265951,"duration":5102,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"386b743035307266","name":"babel-turbo-traverse","id":"71646235726a6d39","timestamp":96959272036,"duration":89116,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3534643374693478","name":"babel-turbo-transform","id":"386b743035307266","timestamp":96959271098,"duration":90071,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3534643374693478","name":"babel-turbo-generate","id":"696c396c71317977","timestamp":96959361190,"duration":2458,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7261663963726434","name":"next-babel-turbo-transform","id":"3534643374693478","timestamp":96959265922,"duration":97733,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6566706830786234","name":"next-babel-turbo-loader","id":"7261663963726434","timestamp":96959265906,"duration":97771,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7435746a71637362","name":"build-module-jsx","id":"6566706830786234","timestamp":96959240190,"duration":125946,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Blog-standerd\\blog-standerd.jsx"}},{"traceId":"a40c92b03843b256","parentId":"3066356931373634","name":"add-entry","id":"36306a3937353339","timestamp":96959176610,"duration":193424,"tags":{"request":"next-client-pages-loader?page=%2Fblog%2Fblog-light&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cblog%5Cblog-light.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"6f7a39366f796539","name":"make","id":"6265726a38353977","timestamp":96959175498,"duration":194620,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3066356931373634","name":"webpack-compilation-chunk-graph","id":"376e73706a73647a","timestamp":96959372684,"duration":2197,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3066356931373634","name":"webpack-compilation-optimize-modules","id":"66363633346b3868","timestamp":96959374941,"duration":19,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3066356931373634","name":"webpack-compilation-optimize-chunks","id":"7a6c6b3574656166","timestamp":96959374984,"duration":95,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3066356931373634","name":"webpack-compilation-optimize-tree","id":"6c70377831616269","timestamp":96959375117,"duration":8,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3066356931373634","name":"webpack-compilation-optimize","id":"6c69663369747830","timestamp":96959374922,"duration":946,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3066356931373634","name":"webpack-compilation-hash","id":"7739716d6f313967","timestamp":96959385851,"duration":5420,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3066356931373634","name":"NextJsBuildManifest-generateClientManifest","id":"6135387a62706861","timestamp":96959398664,"duration":208,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3066356931373634","name":"NextJsBuildManifest-createassets","id":"3564723274796471","timestamp":96959398460,"duration":426,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3066356931373634","name":"webpack-compilation-seal","id":"7a74747639387474","timestamp":96959371434,"duration":29493,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f7a39366f796539","name":"webpack-compilation","id":"3066356931373634","timestamp":96959175084,"duration":225919,"tags":{"name":"client"}},{"traceId":"a40c92b03843b256","parentId":"6f7a39366f796539","name":"emit","id":"397173376c336470","timestamp":96959401098,"duration":15315,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-client","id":"6f7a39366f796539","timestamp":96959172616,"duration":244951,"tags":{"trigger":"manual"}},{"traceId":"a40c92b03843b256","parentId":"39636f616e387635","name":"add-entry","id":"6d616f7464363639","timestamp":96959425935,"duration":8268,"tags":{"request":"private-next-pages/_error"}},{"traceId":"a40c92b03843b256","parentId":"39636f616e387635","name":"add-entry","id":"683436787a383333","timestamp":96959425794,"duration":8495,"tags":{"request":"private-next-pages/_app"}},{"traceId":"a40c92b03843b256","parentId":"39636f616e387635","name":"add-entry","id":"6c30696871667562","timestamp":96959425914,"duration":8385,"tags":{"request":"private-next-pages/_document"}},{"traceId":"a40c92b03843b256","parentId":"79626f376879756d","name":"make","id":"31656a7437647673","timestamp":96959419300,"duration":15043,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"39636f616e387635","name":"webpack-compilation-chunk-graph","id":"366f6f3762623233","timestamp":96959434603,"duration":184,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"39636f616e387635","name":"webpack-compilation-optimize-modules","id":"7975676d636a3771","timestamp":96959434814,"duration":7,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"39636f616e387635","name":"webpack-compilation-optimize-chunks","id":"356f327a6a783838","timestamp":96959434845,"duration":35,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"39636f616e387635","name":"webpack-compilation-optimize-tree","id":"77636d656f636c39","timestamp":96959434902,"duration":7,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"39636f616e387635","name":"webpack-compilation-optimize","id":"7862773531617668","timestamp":96959434805,"duration":186,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"39636f616e387635","name":"webpack-compilation-hash","id":"62616a647a357730","timestamp":96959436316,"duration":1078,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"39636f616e387635","name":"webpack-compilation-seal","id":"74756c3361393036","timestamp":96959434524,"duration":3566,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79626f376879756d","name":"webpack-compilation","id":"39636f616e387635","timestamp":96959418962,"duration":19178,"tags":{"name":"server"}},{"traceId":"a40c92b03843b256","parentId":"79626f376879756d","name":"emit","id":"3330313065776f6b","timestamp":96959438186,"duration":5139,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-server","id":"79626f376879756d","timestamp":96959173253,"duration":271254,"tags":{"trigger":"manual"}}] +[{"traceId":"a40c92b03843b256","parentId":"6a756c736a686b6e","name":"next-client-pages-loader","id":"7565686b7864746f","timestamp":96970682150,"duration":107,"tags":{"absolutePagePath":"C:\\Users\\hp\\Desktop\\business-hub\\src\\pages\\blog-details\\blog-details-4.jsx"}},{"traceId":"a40c92b03843b256","parentId":"686b673277673565","name":"build-module-jsx!","id":"6a756c736a686b6e","timestamp":96970681978,"duration":1085,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-client-pages-loader.js?page=%2Fblog-details%2Fblog-details-4&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cblog-details%5Cblog-details-4.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"686b673277673565","name":"add-entry","id":"7479636869766d64","timestamp":96970678016,"duration":9292,"tags":{"request":"next-client-pages-loader?page=%2Fblog%2Fblog-light&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cblog%5Cblog-light.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"686b673277673565","name":"add-entry","id":"61346d366d306675","timestamp":96970677843,"duration":11417,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"686b673277673565","name":"add-entry","id":"796a787262676f31","timestamp":96970677991,"duration":13480,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=private-next-pages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"686b673277673565","name":"add-entry","id":"316a647471656d36","timestamp":96970677980,"duration":13746,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"686b673277673565","name":"add-entry","id":"6935336c6a666931","timestamp":96970677948,"duration":14003,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"}},{"traceId":"a40c92b03843b256","parentId":"686b673277673565","name":"add-entry","id":"66693162726c7a79","timestamp":96970677968,"duration":14939,"tags":{"request":"next-client-pages-loader?page=%2F_app&absolutePagePath=private-next-pages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"686b673277673565","name":"add-entry","id":"6569666536346777","timestamp":96970677959,"duration":22758,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"74626c39646f6977","name":"read-resource","id":"3777683463687968","timestamp":96970697662,"duration":3438,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e6e323936306777","name":"get-options","id":"77746a3134636e6e","timestamp":96970701250,"duration":8,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"68743871756e7268","name":"babel-turbo-get-config","id":"756437316b696f62","timestamp":96970701267,"duration":33,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"68743871756e7268","name":"babel-turbo-normalize-file","id":"6b34393768733072","timestamp":96970701304,"duration":7880,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d6679666e307a62","name":"babel-turbo-traverse","id":"68336a7678757862","timestamp":96970710715,"duration":200066,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"68743871756e7268","name":"babel-turbo-transform","id":"6d6679666e307a62","timestamp":96970709246,"duration":201559,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"68743871756e7268","name":"babel-turbo-generate","id":"756c3565376f7332","timestamp":96970910834,"duration":8286,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e6e323936306777","name":"next-babel-turbo-transform","id":"68743871756e7268","timestamp":96970701263,"duration":217877,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"74626c39646f6977","name":"next-babel-turbo-loader","id":"6e6e323936306777","timestamp":96970701187,"duration":218000,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a756c736a686b6e","name":"build-module-jsx","id":"74626c39646f6977","timestamp":96970697311,"duration":227826,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\pages\\blog-details\\blog-details-4.jsx"}},{"traceId":"a40c92b03843b256","parentId":"686b673277673565","name":"add-entry","id":"763463706a796d31","timestamp":96970678008,"duration":253574,"tags":{"request":"next-client-pages-loader?page=%2Fcontact%2Fcontact-light&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Ccontact%5Ccontact-light.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"7135366870626c6b","name":"read-resource","id":"34783367746d7738","timestamp":96970932520,"duration":1813,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"74626c39646f6977","name":"build-module-json","id":"7135366870626c6b","timestamp":96970932384,"duration":2305,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\data\\blog3.json"}},{"traceId":"a40c92b03843b256","parentId":"6b6c367130356c66","name":"read-resource","id":"6a37346135307764","timestamp":96970935564,"duration":2076,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"32776e3236386872","name":"get-options","id":"666630746b6f7272","timestamp":96970937788,"duration":10,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"77667063326a6571","name":"babel-turbo-get-config","id":"666b74706a393364","timestamp":96970937807,"duration":40,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"77667063326a6571","name":"babel-turbo-normalize-file","id":"73317265786d6333","timestamp":96970937851,"duration":9054,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"376c6a3830663139","name":"babel-turbo-traverse","id":"6870667a656e6a64","timestamp":96970948148,"duration":390513,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"77667063326a6571","name":"babel-turbo-transform","id":"376c6a3830663139","timestamp":96970946957,"duration":391728,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"77667063326a6571","name":"babel-turbo-generate","id":"396a727233327366","timestamp":96971338713,"duration":16449,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"32776e3236386872","name":"next-babel-turbo-transform","id":"77667063326a6571","timestamp":96970937803,"duration":417377,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b6c367130356c66","name":"next-babel-turbo-loader","id":"32776e3236386872","timestamp":96970937779,"duration":417445,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"74626c39646f6977","name":"build-module-jsx","id":"6b6c367130356c66","timestamp":96970935352,"duration":431726,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Blog-details\\blog-details.jsx"}},{"traceId":"a40c92b03843b256","parentId":"387867766134726f","name":"read-resource","id":"7362796e39613379","timestamp":96971378259,"duration":621,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"74626c39646f6977","name":"build-module-js","id":"387867766134726f","timestamp":96971378146,"duration":1957,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-scroll\\modules\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"6970366b6c68366c","name":"read-resource","id":"6d6c333732777266","timestamp":96971382858,"duration":1092,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"387867766134726f","name":"build-module-js","id":"6970366b6c68366c","timestamp":96971382761,"duration":3814,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-scroll\\modules\\components\\Element.js"}},{"traceId":"a40c92b03843b256","parentId":"6c65336962337971","name":"read-resource","id":"357a33726a667830","timestamp":96971382938,"duration":3762,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"387867766134726f","name":"build-module-js","id":"6c65336962337971","timestamp":96971382900,"duration":5346,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-scroll\\modules\\components\\Button.js"}},{"traceId":"a40c92b03843b256","parentId":"396c6e6379643761","name":"read-resource","id":"6b66623232696d74","timestamp":96971382987,"duration":5996,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"387867766134726f","name":"build-module-js","id":"396c6e6379643761","timestamp":96971382959,"duration":7369,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-scroll\\modules\\components\\Link.js"}},{"traceId":"a40c92b03843b256","parentId":"75796b79797a7936","name":"read-resource","id":"787137376a366974","timestamp":96971383229,"duration":7576,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"387867766134726f","name":"build-module-js","id":"75796b79797a7936","timestamp":96971383197,"duration":8195,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-scroll\\modules\\mixins\\scroll-events.js"}},{"traceId":"a40c92b03843b256","parentId":"796f686461716e32","name":"read-resource","id":"626f737a6c6f6d6e","timestamp":96971383468,"duration":7987,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"387867766134726f","name":"build-module-js","id":"796f686461716e32","timestamp":96971383442,"duration":11882,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-scroll\\modules\\mixins\\Helpers.js"}},{"traceId":"a40c92b03843b256","parentId":"7737626d6d313932","name":"read-resource","id":"6d34643070393832","timestamp":96971383518,"duration":11887,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"387867766134726f","name":"build-module-js","id":"7737626d6d313932","timestamp":96971383491,"duration":13544,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-scroll\\modules\\mixins\\scroll-spy.js"}},{"traceId":"a40c92b03843b256","parentId":"38387176626e7135","name":"read-resource","id":"3562737035377279","timestamp":96971383372,"duration":13741,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"387867766134726f","name":"build-module-js","id":"38387176626e7135","timestamp":96971383340,"duration":17637,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-scroll\\modules\\mixins\\scroll-link.js"}},{"traceId":"a40c92b03843b256","parentId":"72647376356d7873","name":"read-resource","id":"7968327175626e61","timestamp":96971383319,"duration":17750,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"387867766134726f","name":"build-module-js","id":"72647376356d7873","timestamp":96971383250,"duration":21451,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-scroll\\modules\\mixins\\animate-scroll.js"}},{"traceId":"a40c92b03843b256","parentId":"61356b693937387a","name":"read-resource","id":"347674786c386b71","timestamp":96971383173,"duration":21623,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"387867766134726f","name":"build-module-js","id":"61356b693937387a","timestamp":96971383133,"duration":23387,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-scroll\\modules\\mixins\\scroller.js"}},{"traceId":"a40c92b03843b256","parentId":"766f3268366f3435","name":"read-resource","id":"773962707732736e","timestamp":96971383421,"duration":23184,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"387867766134726f","name":"build-module-js","id":"766f3268366f3435","timestamp":96971383392,"duration":24996,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-scroll\\modules\\mixins\\scroll-element.js"}},{"traceId":"a40c92b03843b256","parentId":"6278756a72746f6e","name":"read-resource","id":"7a3036636f696178","timestamp":96971421548,"duration":1840,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"796f686461716e32","name":"build-module-js","id":"6278756a72746f6e","timestamp":96971421416,"duration":3372,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-scroll\\modules\\mixins\\scroll-hash.js"}},{"traceId":"a40c92b03843b256","parentId":"783374616b637835","name":"read-resource","id":"7433326d6e376577","timestamp":96971421727,"duration":3569,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"796f686461716e32","name":"build-module-js","id":"783374616b637835","timestamp":96971421697,"duration":5026,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-scroll\\modules\\mixins\\utils.js"}},{"traceId":"a40c92b03843b256","parentId":"627366776c783969","name":"read-resource","id":"777a7474637a7975","timestamp":96971421663,"duration":5111,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7737626d6d313932","name":"build-module-js","id":"627366776c783969","timestamp":96971421611,"duration":5731,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-scroll\\modules\\mixins\\passive-event-listeners.js"}},{"traceId":"a40c92b03843b256","parentId":"34673733656d3767","name":"read-resource","id":"69616d3478393574","timestamp":96971422567,"duration":5070,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72647376356d7873","name":"build-module-js","id":"34673733656d3767","timestamp":96971422533,"duration":6061,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-scroll\\modules\\mixins\\cancel-events.js"}},{"traceId":"a40c92b03843b256","parentId":"3239717a376d316c","name":"read-resource","id":"387a6f3339327239","timestamp":96971422488,"duration":6199,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72647376356d7873","name":"build-module-js","id":"3239717a376d316c","timestamp":96971422380,"duration":7510,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-scroll\\modules\\mixins\\smooth.js"}},{"traceId":"a40c92b03843b256","parentId":"6167366531746131","name":"read-resource","id":"6c68326569767835","timestamp":96971432838,"duration":721,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7737626d6d313932","name":"build-module-js","id":"6167366531746131","timestamp":96971432719,"duration":3867,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\lodash.throttle\\index.js"}},{"traceId":"a40c92b03843b256","parentId":"686b673277673565","name":"add-entry","id":"6d34703161683137","timestamp":96970677999,"duration":758786,"tags":{"request":"next-client-pages-loader?page=%2Fblog-details%2Fblog-details-4&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cblog-details%5Cblog-details-4.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"79747565616e6679","name":"make","id":"69706d6b31676e68","timestamp":96970677084,"duration":759770,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"686b673277673565","name":"webpack-compilation-chunk-graph","id":"6b6633786b6e7079","timestamp":96971439621,"duration":3013,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"686b673277673565","name":"webpack-compilation-optimize-modules","id":"396f6d3233733071","timestamp":96971442700,"duration":25,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"686b673277673565","name":"webpack-compilation-optimize-chunks","id":"706367783437716f","timestamp":96971442751,"duration":110,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"686b673277673565","name":"webpack-compilation-optimize-tree","id":"6a69796f36376375","timestamp":96971442902,"duration":9,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"686b673277673565","name":"webpack-compilation-optimize","id":"7939316a36777a31","timestamp":96971442681,"duration":809,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"686b673277673565","name":"webpack-compilation-hash","id":"317468676c676c39","timestamp":96971457740,"duration":5620,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"686b673277673565","name":"NextJsBuildManifest-generateClientManifest","id":"3473376272726e66","timestamp":96971479190,"duration":175,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"686b673277673565","name":"NextJsBuildManifest-createassets","id":"7038366c7576726e","timestamp":96971479069,"duration":314,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"686b673277673565","name":"webpack-compilation-seal","id":"6b6d353339736a76","timestamp":96971438351,"duration":42960,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79747565616e6679","name":"webpack-compilation","id":"686b673277673565","timestamp":96970676602,"duration":804825,"tags":{"name":"client"}},{"traceId":"a40c92b03843b256","parentId":"79747565616e6679","name":"emit","id":"617662686a34616a","timestamp":96971481560,"duration":20588,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-client","id":"79747565616e6679","timestamp":96970673293,"duration":829964,"tags":{"trigger":"manual"}},{"traceId":"a40c92b03843b256","parentId":"6d7034766b787a6b","name":"add-entry","id":"656d796663727a66","timestamp":96971511161,"duration":5868,"tags":{"request":"private-next-pages/_error"}},{"traceId":"a40c92b03843b256","parentId":"6d7034766b787a6b","name":"add-entry","id":"6c6d343273796b67","timestamp":96971511075,"duration":6332,"tags":{"request":"private-next-pages/_app"}},{"traceId":"a40c92b03843b256","parentId":"6d7034766b787a6b","name":"add-entry","id":"3769763938383134","timestamp":96971511150,"duration":6273,"tags":{"request":"private-next-pages/_document"}},{"traceId":"a40c92b03843b256","parentId":"696a6e7361717235","name":"make","id":"397434706f323770","timestamp":96971505553,"duration":11925,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d7034766b787a6b","name":"webpack-compilation-chunk-graph","id":"6774323138327571","timestamp":96971517813,"duration":278,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d7034766b787a6b","name":"webpack-compilation-optimize-modules","id":"6672677472356762","timestamp":96971518122,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d7034766b787a6b","name":"webpack-compilation-optimize-chunks","id":"6c657a6470783876","timestamp":96971518147,"duration":37,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d7034766b787a6b","name":"webpack-compilation-optimize-tree","id":"72376e7a65757878","timestamp":96971518215,"duration":16,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d7034766b787a6b","name":"webpack-compilation-optimize","id":"327279696f306568","timestamp":96971518112,"duration":207,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d7034766b787a6b","name":"webpack-compilation-hash","id":"6f72727265783037","timestamp":96971520377,"duration":975,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d7034766b787a6b","name":"webpack-compilation-seal","id":"33676a396835797a","timestamp":96971517705,"duration":4177,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"696a6e7361717235","name":"webpack-compilation","id":"6d7034766b787a6b","timestamp":96971505177,"duration":16752,"tags":{"name":"server"}},{"traceId":"a40c92b03843b256","parentId":"696a6e7361717235","name":"emit","id":"796e73336f6c6c6b","timestamp":96971521978,"duration":6996,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-server","id":"696a6e7361717235","timestamp":96970674088,"duration":856188,"tags":{"trigger":"manual"}}] +[{"traceId":"a40c92b03843b256","parentId":"797a33676177636e","name":"add-entry","id":"336636796f726e39","timestamp":97115503231,"duration":11752,"tags":{"request":"next-client-pages-loader?page=%2F404&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5C404.js!"}},{"traceId":"a40c92b03843b256","parentId":"797a33676177636e","name":"add-entry","id":"777570626c716433","timestamp":97115503009,"duration":13035,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"797a33676177636e","name":"add-entry","id":"77366363336f3577","timestamp":97115503211,"duration":14254,"tags":{"request":"next-client-pages-loader?page=%2Fblog%2Fblog-light&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cblog%5Cblog-light.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"797a33676177636e","name":"add-entry","id":"7836313771757863","timestamp":97115503162,"duration":15386,"tags":{"request":"next-client-pages-loader?page=%2F_app&absolutePagePath=private-next-pages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"797a33676177636e","name":"add-entry","id":"323031377775776f","timestamp":97115503182,"duration":15832,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=private-next-pages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"797a33676177636e","name":"add-entry","id":"326c736666337365","timestamp":97115503172,"duration":16449,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"797a33676177636e","name":"add-entry","id":"6c6e376265393472","timestamp":97115503140,"duration":22979,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"}},{"traceId":"a40c92b03843b256","parentId":"797a33676177636e","name":"add-entry","id":"6b6e376b30366f71","timestamp":97115503220,"duration":24440,"tags":{"request":"next-client-pages-loader?page=%2Fblog-details%2Fblog-details-4&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cblog-details%5Cblog-details-4.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"797a33676177636e","name":"add-entry","id":"6936693430327768","timestamp":97115503153,"duration":24908,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"636b356777306b79","name":"make","id":"62786f39696d696f","timestamp":97115502277,"duration":25869,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"797a33676177636e","name":"webpack-compilation-chunk-graph","id":"307776616b706c72","timestamp":97115529980,"duration":2523,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"797a33676177636e","name":"webpack-compilation-optimize-modules","id":"336d6b63716d726c","timestamp":97115532556,"duration":21,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"797a33676177636e","name":"webpack-compilation-optimize-chunks","id":"7175696837337030","timestamp":97115532602,"duration":65,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"797a33676177636e","name":"webpack-compilation-optimize-tree","id":"37656f316c346b38","timestamp":97115532707,"duration":8,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"797a33676177636e","name":"webpack-compilation-optimize","id":"30763934656d3136","timestamp":97115532538,"duration":671,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"797a33676177636e","name":"webpack-compilation-hash","id":"65626d7070616d30","timestamp":97115544762,"duration":12499,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"797a33676177636e","name":"NextJsBuildManifest-generateClientManifest","id":"686c706b61613969","timestamp":97115564321,"duration":258,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"797a33676177636e","name":"NextJsBuildManifest-createassets","id":"70793871326e6537","timestamp":97115564124,"duration":480,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"797a33676177636e","name":"webpack-compilation-seal","id":"776d79396c6b6436","timestamp":97115529055,"duration":38050,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"636b356777306b79","name":"webpack-compilation","id":"797a33676177636e","timestamp":97115501814,"duration":65407,"tags":{"name":"client"}},{"traceId":"a40c92b03843b256","parentId":"636b356777306b79","name":"emit","id":"356b3932317a7472","timestamp":97115567320,"duration":21052,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-client","id":"636b356777306b79","timestamp":97115498490,"duration":93353,"tags":{"trigger":"manual"}},{"traceId":"a40c92b03843b256","parentId":"336c6e696c683434","name":"add-entry","id":"3368373779336178","timestamp":97115600838,"duration":9893,"tags":{"request":"./src\\pages\\404.js"}},{"traceId":"a40c92b03843b256","parentId":"336c6e696c683434","name":"add-entry","id":"36786d6f6e6d7765","timestamp":97115600826,"duration":11339,"tags":{"request":"private-next-pages/_error"}},{"traceId":"a40c92b03843b256","parentId":"336c6e696c683434","name":"add-entry","id":"7135627937616f34","timestamp":97115600707,"duration":11601,"tags":{"request":"private-next-pages/_app"}},{"traceId":"a40c92b03843b256","parentId":"336c6e696c683434","name":"add-entry","id":"387977353370346d","timestamp":97115600814,"duration":11530,"tags":{"request":"private-next-pages/_document"}},{"traceId":"a40c92b03843b256","parentId":"6c31337a76657664","name":"make","id":"6a706e6734387969","timestamp":97115594718,"duration":17690,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"336c6e696c683434","name":"webpack-compilation-chunk-graph","id":"71636934646c3063","timestamp":97115613164,"duration":454,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"336c6e696c683434","name":"webpack-compilation-optimize-modules","id":"753536676f6b6863","timestamp":97115613667,"duration":11,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"336c6e696c683434","name":"webpack-compilation-optimize-chunks","id":"396f6f656d763174","timestamp":97115613705,"duration":50,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"336c6e696c683434","name":"webpack-compilation-optimize-tree","id":"3966776e72353734","timestamp":97115613806,"duration":12,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"336c6e696c683434","name":"webpack-compilation-optimize","id":"6e317678626c6d7a","timestamp":97115613652,"duration":300,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"336c6e696c683434","name":"webpack-compilation-hash","id":"6b3431326a376c74","timestamp":97115615956,"duration":2192,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"336c6e696c683434","name":"webpack-compilation-seal","id":"6d6c707070693073","timestamp":97115612939,"duration":5957,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c31337a76657664","name":"webpack-compilation","id":"336c6e696c683434","timestamp":97115594279,"duration":24672,"tags":{"name":"server"}},{"traceId":"a40c92b03843b256","parentId":"6c31337a76657664","name":"emit","id":"6331636633786f6c","timestamp":97115619004,"duration":9725,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-server","id":"6c31337a76657664","timestamp":97115499362,"duration":130844,"tags":{"trigger":"manual"}}] +[{"traceId":"a40c92b03843b256","parentId":"396d6573636b3834","name":"add-entry","id":"7961733530746973","timestamp":97126844354,"duration":14693,"tags":{"request":"next-client-pages-loader?page=%2F404&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5C404.js!"}},{"traceId":"a40c92b03843b256","parentId":"396d6573636b3834","name":"add-entry","id":"78697a736f6e3638","timestamp":97126844120,"duration":15736,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"396d6573636b3834","name":"add-entry","id":"31307862367a3561","timestamp":97126844328,"duration":61233,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=private-next-pages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"396d6573636b3834","name":"add-entry","id":"6d75333564766d36","timestamp":97126844318,"duration":61467,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"396d6573636b3834","name":"add-entry","id":"7a6e6f6f787a3077","timestamp":97126844286,"duration":61703,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"}},{"traceId":"a40c92b03843b256","parentId":"396f6d78646c7662","name":"next-client-pages-loader","id":"6f6337723830656a","timestamp":97126906509,"duration":108,"tags":{"absolutePagePath":"C:\\Users\\hp\\Desktop\\business-hub\\src\\pages\\homepage\\home2-light.jsx"}},{"traceId":"a40c92b03843b256","parentId":"396d6573636b3834","name":"build-module-jsx!","id":"396f6d78646c7662","timestamp":97126906184,"duration":4712,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\build\\webpack\\loaders\\next-client-pages-loader.js?page=%2Fhomepage%2Fhome2-light&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Chomepage%5Chome2-light.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"396d6573636b3834","name":"add-entry","id":"3477633266663031","timestamp":97126844309,"duration":69440,"tags":{"request":"next-client-pages-loader?page=%2F_app&absolutePagePath=private-next-pages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"396d6573636b3834","name":"add-entry","id":"7162756161663830","timestamp":97126844299,"duration":74530,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"396d6573636b3834","name":"add-entry","id":"69746a6567617663","timestamp":97126844344,"duration":74621,"tags":{"request":"next-client-pages-loader?page=%2Fblog-details%2Fblog-details-4&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cblog-details%5Cblog-details-4.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"7167666c7135666c","name":"read-resource","id":"7032387631356938","timestamp":97126922446,"duration":447,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6966313477333431","name":"get-options","id":"713866776c61706f","timestamp":97126922937,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c65723270787a62","name":"babel-turbo-get-config","id":"6e316a6362676f33","timestamp":97126922949,"duration":15,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c65723270787a62","name":"babel-turbo-normalize-file","id":"753869316135396a","timestamp":97126922968,"duration":8268,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"62647a7968796f66","name":"babel-turbo-traverse","id":"6e72746c75303761","timestamp":97126932238,"duration":52800,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c65723270787a62","name":"babel-turbo-transform","id":"62647a7968796f66","timestamp":97126931271,"duration":53786,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c65723270787a62","name":"babel-turbo-generate","id":"6a66366b73683461","timestamp":97126985081,"duration":6824,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6966313477333431","name":"next-babel-turbo-transform","id":"6c65723270787a62","timestamp":97126922946,"duration":68970,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7167666c7135666c","name":"next-babel-turbo-loader","id":"6966313477333431","timestamp":97126922932,"duration":69009,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"396f6d78646c7662","name":"build-module-jsx","id":"7167666c7135666c","timestamp":97126922152,"duration":79045,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\pages\\homepage\\home2-light.jsx"}},{"traceId":"a40c92b03843b256","parentId":"336b676270747072","name":"read-resource","id":"3969307372706b6c","timestamp":97127010738,"duration":2817,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e37387465766e39","name":"get-options","id":"3675726a7738776f","timestamp":97127013597,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"703063746b673461","name":"babel-turbo-get-config","id":"693478786d733466","timestamp":97127013609,"duration":16,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"703063746b673461","name":"babel-turbo-normalize-file","id":"7576756c75667132","timestamp":97127013628,"duration":2713,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7670647337633338","name":"babel-turbo-traverse","id":"7771656e61713466","timestamp":97127017107,"duration":45450,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"703063746b673461","name":"babel-turbo-transform","id":"7670647337633338","timestamp":97127016367,"duration":46209,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"703063746b673461","name":"babel-turbo-generate","id":"706d356464767838","timestamp":97127062597,"duration":6771,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e37387465766e39","name":"next-babel-turbo-transform","id":"703063746b673461","timestamp":97127013605,"duration":55778,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"336b676270747072","name":"next-babel-turbo-loader","id":"6e37387465766e39","timestamp":97127013591,"duration":55829,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7167666c7135666c","name":"build-module-jsx","id":"336b676270747072","timestamp":97127010601,"duration":64201,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Intro2\\intro2.jsx"}},{"traceId":"a40c92b03843b256","parentId":"776e71633131306f","name":"read-resource","id":"396b753633756a77","timestamp":97127012439,"duration":63469,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7531326a326f7372","name":"get-options","id":"7572356c6a356d65","timestamp":97127075964,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3465767573393774","name":"babel-turbo-get-config","id":"663335716f6a7339","timestamp":97127076008,"duration":16,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3465767573393774","name":"babel-turbo-normalize-file","id":"7876683768717236","timestamp":97127076028,"duration":3722,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f347a6c706e7637","name":"babel-turbo-traverse","id":"3631347265746669","timestamp":97127080573,"duration":38213,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3465767573393774","name":"babel-turbo-transform","id":"6f347a6c706e7637","timestamp":97127079788,"duration":39016,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3465767573393774","name":"babel-turbo-generate","id":"7163736468387771","timestamp":97127118825,"duration":3908,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7531326a326f7372","name":"next-babel-turbo-transform","id":"3465767573393774","timestamp":97127075974,"duration":46768,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"776e71633131306f","name":"next-babel-turbo-loader","id":"7531326a326f7372","timestamp":97127075954,"duration":46812,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7167666c7135666c","name":"build-module-jsx","id":"776e71633131306f","timestamp":97127012324,"duration":115030,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Video2\\video2.jsx"}},{"traceId":"a40c92b03843b256","parentId":"6735757137723979","name":"read-resource","id":"6779666774317433","timestamp":97127013011,"duration":115301,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76786f766c37716c","name":"get-options","id":"6371373334696465","timestamp":97127128365,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"31636d3771303039","name":"babel-turbo-get-config","id":"6e6d72306e6a3038","timestamp":97127128378,"duration":17,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"31636d3771303039","name":"babel-turbo-normalize-file","id":"3972633076357973","timestamp":97127128398,"duration":7191,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d63386176307a69","name":"babel-turbo-traverse","id":"3735377273717077","timestamp":97127136434,"duration":163677,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"31636d3771303039","name":"babel-turbo-transform","id":"6d63386176307a69","timestamp":97127135625,"duration":164507,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"31636d3771303039","name":"babel-turbo-generate","id":"6676736a666f336d","timestamp":97127300155,"duration":18641,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76786f766c37716c","name":"next-babel-turbo-transform","id":"31636d3771303039","timestamp":97127128375,"duration":190438,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6735757137723979","name":"next-babel-turbo-loader","id":"76786f766c37716c","timestamp":97127128359,"duration":190486,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7167666c7135666c","name":"build-module-jsx","id":"6735757137723979","timestamp":97127012918,"duration":317271,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Team2\\team2.jsx"}},{"traceId":"a40c92b03843b256","parentId":"337037326a336a36","name":"read-resource","id":"36707a37636f7665","timestamp":97127013099,"duration":317154,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"316a6e3071663135","name":"get-options","id":"3433716a6b636162","timestamp":97127330302,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"396b727863363162","name":"babel-turbo-get-config","id":"766c376e31643361","timestamp":97127330314,"duration":21,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"396b727863363162","name":"babel-turbo-normalize-file","id":"726937686f686866","timestamp":97127330338,"duration":10664,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6636717235736d67","name":"babel-turbo-traverse","id":"37616e6d68767575","timestamp":97127342033,"duration":184870,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"396b727863363162","name":"babel-turbo-transform","id":"6636717235736d67","timestamp":97127341049,"duration":185872,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"396b727863363162","name":"babel-turbo-generate","id":"6e386b756d776a37","timestamp":97127526938,"duration":12939,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"316a6e3071663135","name":"next-babel-turbo-transform","id":"396b727863363162","timestamp":97127330310,"duration":209580,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"337037326a336a36","name":"next-babel-turbo-loader","id":"316a6e3071663135","timestamp":97127330296,"duration":209623,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7167666c7135666c","name":"build-module-jsx","id":"337037326a336a36","timestamp":97127013044,"duration":542744,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Portfolio\\portfolio.jsx"}},{"traceId":"a40c92b03843b256","parentId":"616f37346e717036","name":"read-resource","id":"7632796e75387076","timestamp":97127013175,"duration":542681,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79657a39316c6238","name":"get-options","id":"6865646638717532","timestamp":97127555974,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7863347767717278","name":"babel-turbo-get-config","id":"6f39347431377072","timestamp":97127555988,"duration":22,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7863347767717278","name":"babel-turbo-normalize-file","id":"356e746270316976","timestamp":97127556013,"duration":3146,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6163746733636871","name":"babel-turbo-traverse","id":"367871686978636c","timestamp":97127559848,"duration":121183,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7863347767717278","name":"babel-turbo-transform","id":"6163746733636871","timestamp":97127559190,"duration":121860,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7863347767717278","name":"babel-turbo-generate","id":"636b6f7268326b6d","timestamp":97127681071,"duration":7722,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79657a39316c6238","name":"next-babel-turbo-transform","id":"7863347767717278","timestamp":97127555984,"duration":132822,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"616f37346e717036","name":"next-babel-turbo-loader","id":"79657a39316c6238","timestamp":97127555967,"duration":132869,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7167666c7135666c","name":"build-module-jsx","id":"616f37346e717036","timestamp":97127013120,"duration":683021,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\blogs\\Blogs2\\blogs2.jsx"}},{"traceId":"a40c92b03843b256","parentId":"396d6573636b3834","name":"add-entry","id":"7377786f35656e75","timestamp":97126844336,"duration":880135,"tags":{"request":"next-client-pages-loader?page=%2Fhomepage%2Fhome2-light&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Chomepage%5Chome2-light.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"657a747875326c76","name":"make","id":"7a34387374346b72","timestamp":97126843394,"duration":881162,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"396d6573636b3834","name":"webpack-compilation-chunk-graph","id":"6868676271716c6d","timestamp":97127728844,"duration":7824,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"396d6573636b3834","name":"webpack-compilation-optimize-modules","id":"77736b3032663166","timestamp":97127736786,"duration":26,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"396d6573636b3834","name":"webpack-compilation-optimize-chunks","id":"6c6b6e6f3470686b","timestamp":97127736856,"duration":138,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"396d6573636b3834","name":"webpack-compilation-optimize-tree","id":"77766a6675767171","timestamp":97127737041,"duration":10,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"396d6573636b3834","name":"webpack-compilation-optimize","id":"7268697664787869","timestamp":97127736723,"duration":1053,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"396d6573636b3834","name":"webpack-compilation-hash","id":"386b6971666e7637","timestamp":97127808884,"duration":12497,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"396d6573636b3834","name":"NextJsBuildManifest-generateClientManifest","id":"793538767a63366d","timestamp":97127854355,"duration":209,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"396d6573636b3834","name":"NextJsBuildManifest-createassets","id":"6730706972683732","timestamp":97127854215,"duration":364,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"396d6573636b3834","name":"webpack-compilation-seal","id":"6d776137626a686d","timestamp":97127727256,"duration":128869,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"657a747875326c76","name":"webpack-compilation","id":"396d6573636b3834","timestamp":97126842990,"duration":1013218,"tags":{"name":"client"}},{"traceId":"a40c92b03843b256","parentId":"657a747875326c76","name":"emit","id":"706133377a326f6f","timestamp":97127856294,"duration":19133,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-client","id":"657a747875326c76","timestamp":97126839591,"duration":1037596,"tags":{"trigger":"manual"}},{"traceId":"a40c92b03843b256","parentId":"693239376d756f70","name":"add-entry","id":"656a6770346d6a38","timestamp":97127896351,"duration":6317,"tags":{"request":"./src\\pages\\404.js"}},{"traceId":"a40c92b03843b256","parentId":"693239376d756f70","name":"add-entry","id":"6b39797a67786c77","timestamp":97127896342,"duration":6832,"tags":{"request":"private-next-pages/_error"}},{"traceId":"a40c92b03843b256","parentId":"693239376d756f70","name":"add-entry","id":"68396f717234786b","timestamp":97127896244,"duration":14210,"tags":{"request":"private-next-pages/_app"}},{"traceId":"a40c92b03843b256","parentId":"693239376d756f70","name":"add-entry","id":"367a74347a337175","timestamp":97127896327,"duration":14154,"tags":{"request":"private-next-pages/_document"}},{"traceId":"a40c92b03843b256","parentId":"6165777539376933","name":"read-resource","id":"6275706a3767786a","timestamp":97127919088,"duration":623,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c68746d7667776b","name":"get-options","id":"7461613365767831","timestamp":97127919784,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"796d71306964786a","name":"babel-turbo-get-config","id":"6e61306e3163316a","timestamp":97127919798,"duration":20,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"796d71306964786a","name":"babel-turbo-normalize-file","id":"6d73387a6f337678","timestamp":97127919822,"duration":3644,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7479396b36676570","name":"babel-turbo-traverse","id":"713478386567736b","timestamp":97127923839,"duration":12918,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"796d71306964786a","name":"babel-turbo-transform","id":"7479396b36676570","timestamp":97127923496,"duration":13275,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"796d71306964786a","name":"babel-turbo-generate","id":"6572647a6a306e74","timestamp":97127936794,"duration":2154,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c68746d7667776b","name":"next-babel-turbo-transform","id":"796d71306964786a","timestamp":97127919795,"duration":19160,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6165777539376933","name":"next-babel-turbo-loader","id":"6c68746d7667776b","timestamp":97127919778,"duration":19200,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"693239376d756f70","name":"build-module-jsx","id":"6165777539376933","timestamp":97127918572,"duration":24769,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\pages\\homepage\\home2-light.jsx"}},{"traceId":"a40c92b03843b256","parentId":"6e74667438683768","name":"read-resource","id":"6331346661763665","timestamp":97127974938,"duration":13920,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"35786f306976666e","name":"get-options","id":"6436753461677839","timestamp":97127988919,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7270687239657475","name":"babel-turbo-get-config","id":"6c387a777033396c","timestamp":97127988932,"duration":16,"tags":{}}] +[{"traceId":"a40c92b03843b256","parentId":"7270687239657475","name":"babel-turbo-normalize-file","id":"6133726870647533","timestamp":97127989252,"duration":3345,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"777777736772726f","name":"babel-turbo-traverse","id":"6167347a64716134","timestamp":97127992894,"duration":39921,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7270687239657475","name":"babel-turbo-transform","id":"777777736772726f","timestamp":97127992629,"duration":40267,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7270687239657475","name":"babel-turbo-generate","id":"69773370656d7a67","timestamp":97128032930,"duration":3813,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"35786f306976666e","name":"next-babel-turbo-transform","id":"7270687239657475","timestamp":97127988929,"duration":47827,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e74667438683768","name":"next-babel-turbo-loader","id":"35786f306976666e","timestamp":97127988913,"duration":47879,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6165777539376933","name":"build-module-jsx","id":"6e74667438683768","timestamp":97127974811,"duration":73238,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Services\\services.jsx"}},{"traceId":"a40c92b03843b256","parentId":"6f636f72397a7669","name":"read-resource","id":"3463356768317263","timestamp":97127975200,"duration":72901,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7930756763636c31","name":"get-options","id":"62797372746b306e","timestamp":97128048143,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6663616f7869756a","name":"babel-turbo-get-config","id":"3779676e32376e35","timestamp":97128048154,"duration":16,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6663616f7869756a","name":"babel-turbo-normalize-file","id":"30647366757a6667","timestamp":97128048174,"duration":4323,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3679677866676572","name":"babel-turbo-traverse","id":"3378656b76683734","timestamp":97128052803,"duration":14356,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6663616f7869756a","name":"babel-turbo-transform","id":"3679677866676572","timestamp":97128052537,"duration":14639,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6663616f7869756a","name":"babel-turbo-generate","id":"736f343233393873","timestamp":97128067201,"duration":2060,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7930756763636c31","name":"next-babel-turbo-transform","id":"6663616f7869756a","timestamp":97128048151,"duration":21118,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f636f72397a7669","name":"next-babel-turbo-loader","id":"7930756763636c31","timestamp":97128048137,"duration":21158,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6165777539376933","name":"build-module-jsx","id":"6f636f72397a7669","timestamp":97127974987,"duration":98182,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Video2\\video2.jsx"}},{"traceId":"a40c92b03843b256","parentId":"7476657869363733","name":"read-resource","id":"71616d367a627368","timestamp":97127975368,"duration":97851,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"756274366931386c","name":"get-options","id":"76393732706e6f71","timestamp":97128073263,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b79796576706a74","name":"babel-turbo-get-config","id":"676b6e706e337a6f","timestamp":97128073275,"duration":16,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b79796576706a74","name":"babel-turbo-normalize-file","id":"6931783873786439","timestamp":97128073295,"duration":1377,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766264337a366278","name":"babel-turbo-traverse","id":"716c357979317635","timestamp":97128074952,"duration":18343,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b79796576706a74","name":"babel-turbo-transform","id":"766264337a366278","timestamp":97128074697,"duration":18613,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b79796576706a74","name":"babel-turbo-generate","id":"786d333375336c61","timestamp":97128093331,"duration":1581,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"756274366931386c","name":"next-babel-turbo-transform","id":"6b79796576706a74","timestamp":97128073272,"duration":21646,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7476657869363733","name":"next-babel-turbo-loader","id":"756274366931386c","timestamp":97128073256,"duration":21689,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6165777539376933","name":"build-module-jsx","id":"7476657869363733","timestamp":97127975294,"duration":122516,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Intro2\\intro2.jsx"}},{"traceId":"a40c92b03843b256","parentId":"6d6c703172736a30","name":"read-resource","id":"6f6a716972656f6a","timestamp":97127975275,"duration":122589,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7275763873363163","name":"get-options","id":"376a6a6a7a626c79","timestamp":97128097938,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"647473717662616c","name":"babel-turbo-get-config","id":"3878687970626265","timestamp":97128097950,"duration":18,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"647473717662616c","name":"babel-turbo-normalize-file","id":"757674646b356430","timestamp":97128097972,"duration":6695,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76756a6366333535","name":"babel-turbo-traverse","id":"38753863637a7538","timestamp":97128105037,"duration":92092,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"647473717662616c","name":"babel-turbo-transform","id":"76756a6366333535","timestamp":97128104743,"duration":92403,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"647473717662616c","name":"babel-turbo-generate","id":"356865726a323366","timestamp":97128197173,"duration":9777,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7275763873363163","name":"next-babel-turbo-transform","id":"647473717662616c","timestamp":97128097947,"duration":109015,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d6c703172736a30","name":"next-babel-turbo-loader","id":"7275763873363163","timestamp":97128097932,"duration":109060,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6165777539376933","name":"build-module-jsx","id":"6d6c703172736a30","timestamp":97127975226,"duration":246220,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Portfolio\\portfolio.jsx"}},{"traceId":"a40c92b03843b256","parentId":"6975386534347034","name":"read-resource","id":"656a3369726d626e","timestamp":97127975746,"duration":250651,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"646e373770366230","name":"get-options","id":"6566756b6a737564","timestamp":97128226472,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"793961766b396c67","name":"babel-turbo-get-config","id":"746c34666e727a38","timestamp":97128226485,"duration":22,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"793961766b396c67","name":"babel-turbo-normalize-file","id":"3272677874307663","timestamp":97128226510,"duration":4115,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f716b306b627076","name":"babel-turbo-traverse","id":"3474656635713574","timestamp":97128230924,"duration":93428,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"793961766b396c67","name":"babel-turbo-transform","id":"6f716b306b627076","timestamp":97128230658,"duration":93711,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"793961766b396c67","name":"babel-turbo-generate","id":"6961743762306373","timestamp":97128324394,"duration":8610,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"646e373770366230","name":"next-babel-turbo-transform","id":"793961766b396c67","timestamp":97128226482,"duration":106536,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6975386534347034","name":"next-babel-turbo-loader","id":"646e373770366230","timestamp":97128226465,"duration":106586,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6165777539376933","name":"build-module-jsx","id":"6975386534347034","timestamp":97127975677,"duration":364732,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Team2\\team2.jsx"}},{"traceId":"a40c92b03843b256","parentId":"386d376b65713030","name":"read-resource","id":"3864676a62616478","timestamp":97128222301,"duration":130347,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79633578386a6435","name":"get-options","id":"6e7675706b627367","timestamp":97128352718,"duration":7,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3077777936367675","name":"babel-turbo-get-config","id":"6367647331316433","timestamp":97128352736,"duration":17,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3077777936367675","name":"babel-turbo-normalize-file","id":"676435786f767979","timestamp":97128352756,"duration":3130,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c33376a6d363962","name":"babel-turbo-traverse","id":"66657a34696c3174","timestamp":97128356589,"duration":76944,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3077777936367675","name":"babel-turbo-transform","id":"6c33376a6d363962","timestamp":97128355929,"duration":77624,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3077777936367675","name":"babel-turbo-generate","id":"7463773971677679","timestamp":97128433588,"duration":5430,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"79633578386a6435","name":"next-babel-turbo-transform","id":"3077777936367675","timestamp":97128352731,"duration":86298,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"386d376b65713030","name":"next-babel-turbo-loader","id":"79633578386a6435","timestamp":97128352712,"duration":86346,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6165777539376933","name":"build-module-jsx","id":"386d376b65713030","timestamp":97128222177,"duration":223231,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\blogs\\Blogs2\\blogs2.jsx"}},{"traceId":"a40c92b03843b256","parentId":"6138667768756e33","name":"read-resource","id":"7a34616278397278","timestamp":97128457012,"duration":3089,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e74667438683768","name":"build-module-json","id":"6138667768756e33","timestamp":97128456915,"duration":3679,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\data\\sections\\features.json"}},{"traceId":"a40c92b03843b256","parentId":"396132666b6b697a","name":"read-resource","id":"356979307830766f","timestamp":97128462687,"duration":624,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f636f72397a7669","name":"build-module-css","id":"396132666b6b697a","timestamp":97128462571,"duration":1156,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-modal-video\\css\\modal-video.css"}},{"traceId":"a40c92b03843b256","parentId":"693239376d756f70","name":"add-entry","id":"7a3965626137636c","timestamp":97127896364,"duration":573296,"tags":{"request":"./src\\pages\\homepage\\home2-light.jsx"}},{"traceId":"a40c92b03843b256","parentId":"776b696677733832","name":"make","id":"3736657433697036","timestamp":97127879113,"duration":590608,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"693239376d756f70","name":"webpack-compilation-chunk-graph","id":"31737975357a3572","timestamp":97128471411,"duration":1084,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"693239376d756f70","name":"webpack-compilation-optimize-modules","id":"66617a39766c376f","timestamp":97128472537,"duration":7,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"693239376d756f70","name":"webpack-compilation-optimize-chunks","id":"6f666b687a39716b","timestamp":97128472563,"duration":97,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"693239376d756f70","name":"webpack-compilation-optimize-tree","id":"6c7863677a757236","timestamp":97128472696,"duration":8,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"693239376d756f70","name":"webpack-compilation-optimize","id":"6737757063327834","timestamp":97128472524,"duration":425,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"693239376d756f70","name":"webpack-compilation-hash","id":"6f77727578687964","timestamp":97128481593,"duration":1484,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"693239376d756f70","name":"webpack-compilation-seal","id":"6a62786a67777262","timestamp":97128471150,"duration":20654,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"776b696677733832","name":"webpack-compilation","id":"693239376d756f70","timestamp":97127878759,"duration":613107,"tags":{"name":"server"}},{"traceId":"a40c92b03843b256","parentId":"776b696677733832","name":"emit","id":"6f796b30656b3773","timestamp":97128491953,"duration":33514,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-server","id":"776b696677733832","timestamp":97126840186,"duration":1686364,"tags":{"trigger":"manual"}}] +[{"traceId":"a40c92b03843b256","parentId":"343432793830616d","name":"add-entry","id":"6430747974663765","timestamp":97713501231,"duration":21675,"tags":{"request":"next-client-pages-loader?page=%2F404&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5C404.js!"}},{"traceId":"a40c92b03843b256","parentId":"343432793830616d","name":"add-entry","id":"3631687037656c64","timestamp":97713501197,"duration":29723,"tags":{"request":"next-client-pages-loader?page=%2F_app&absolutePagePath=private-next-pages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"343432793830616d","name":"add-entry","id":"756731756b796d6a","timestamp":97713501004,"duration":30607,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"343432793830616d","name":"add-entry","id":"7366737434326873","timestamp":97713501221,"duration":33656,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=private-next-pages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"736d6977786f6f6a","name":"read-resource","id":"6c666c377a613875","timestamp":97713525531,"duration":9414,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"346166693476646d","name":"get-options","id":"7537787836663835","timestamp":97713536728,"duration":12,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"66323133666c7934","name":"babel-turbo-get-config","id":"75376f32736e7967","timestamp":97713536757,"duration":36,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"66323133666c7934","name":"babel-turbo-normalize-file","id":"3835736235753172","timestamp":97713536801,"duration":12447,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"796c62357a747277","name":"babel-turbo-traverse","id":"676b36693473756d","timestamp":97713550348,"duration":141514,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"66323133666c7934","name":"babel-turbo-transform","id":"796c62357a747277","timestamp":97713549306,"duration":142577,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"66323133666c7934","name":"babel-turbo-generate","id":"3165646464627663","timestamp":97713691907,"duration":7416,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"346166693476646d","name":"next-babel-turbo-transform","id":"66323133666c7934","timestamp":97713536753,"duration":162629,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"736d6977786f6f6a","name":"next-babel-turbo-loader","id":"346166693476646d","timestamp":97713536719,"duration":162692,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"343432793830616d","name":"build-module-jsx","id":"736d6977786f6f6a","timestamp":97713524718,"duration":183532,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Team\\team.jsx"}},{"traceId":"a40c92b03843b256","parentId":"343432793830616d","name":"add-entry","id":"6468336437373570","timestamp":97713501207,"duration":207538,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"343432793830616d","name":"add-entry","id":"327a3137307a6769","timestamp":97713501168,"duration":212969,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"}},{"traceId":"a40c92b03843b256","parentId":"343432793830616d","name":"add-entry","id":"7074336731377178","timestamp":97713501184,"duration":303816,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"343432793830616d","name":"add-entry","id":"693031366a337a68","timestamp":97713501242,"duration":331753,"tags":{"request":"next-client-pages-loader?page=%2Fhomepage%2Fhome2-light&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Chomepage%5Chome2-light.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"343432793830616d","name":"add-entry","id":"7538617664353634","timestamp":97713501252,"duration":333986,"tags":{"request":"next-client-pages-loader?page=%2F&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"7672646f72317636","name":"make","id":"6364316d69633432","timestamp":97713499928,"duration":335386,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"343432793830616d","name":"webpack-compilation-chunk-graph","id":"7062666e79676a75","timestamp":97713850625,"duration":14866,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"343432793830616d","name":"webpack-compilation-optimize-modules","id":"6672666875367661","timestamp":97713865561,"duration":22,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"343432793830616d","name":"webpack-compilation-optimize-chunks","id":"3437776968716338","timestamp":97713865751,"duration":185,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"343432793830616d","name":"webpack-compilation-optimize-tree","id":"78646f7172717a33","timestamp":97713865978,"duration":11,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"343432793830616d","name":"webpack-compilation-optimize","id":"3033626570707567","timestamp":97713865542,"duration":1636,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"343432793830616d","name":"webpack-compilation-hash","id":"707030326c686473","timestamp":97713930736,"duration":6944,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"343432793830616d","name":"NextJsBuildManifest-generateClientManifest","id":"6c32376a69723537","timestamp":97713976256,"duration":336,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"343432793830616d","name":"NextJsBuildManifest-createassets","id":"6a713574736d7473","timestamp":97713975824,"duration":789,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"343432793830616d","name":"webpack-compilation-seal","id":"6f366d7a786a6566","timestamp":97713848012,"duration":130872,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7672646f72317636","name":"webpack-compilation","id":"343432793830616d","timestamp":97713499278,"duration":479681,"tags":{"name":"client"}},{"traceId":"a40c92b03843b256","parentId":"7672646f72317636","name":"emit","id":"6f6e336168326562","timestamp":97713979024,"duration":51918,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-client","id":"7672646f72317636","timestamp":97713495511,"duration":536999,"tags":{"trigger":"manual"}},{"traceId":"a40c92b03843b256","parentId":"7777626c6e333972","name":"add-entry","id":"6e6d767871726573","timestamp":97714051532,"duration":10559,"tags":{"request":"private-next-pages/_error"}},{"traceId":"a40c92b03843b256","parentId":"7777626c6e333972","name":"add-entry","id":"74306678626c776d","timestamp":97714051427,"duration":10756,"tags":{"request":"private-next-pages/_app"}},{"traceId":"a40c92b03843b256","parentId":"7777626c6e333972","name":"add-entry","id":"6273696d7862377a","timestamp":97714051521,"duration":10678,"tags":{"request":"private-next-pages/_document"}},{"traceId":"a40c92b03843b256","parentId":"7268786133747062","name":"make","id":"6c6e693632716e6d","timestamp":97714034954,"duration":27284,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7777626c6e333972","name":"webpack-compilation-chunk-graph","id":"6f37737532306132","timestamp":97714062610,"duration":295,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7777626c6e333972","name":"webpack-compilation-optimize-modules","id":"6d7468786f386633","timestamp":97714062934,"duration":8,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7777626c6e333972","name":"webpack-compilation-optimize-chunks","id":"7678677478656362","timestamp":97714062963,"duration":42,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7777626c6e333972","name":"webpack-compilation-optimize-tree","id":"3473676c78726737","timestamp":97714063029,"duration":7,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7777626c6e333972","name":"webpack-compilation-optimize","id":"3575726b656c6869","timestamp":97714062925,"duration":225,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7777626c6e333972","name":"webpack-compilation-hash","id":"786e653239753878","timestamp":97714064440,"duration":1311,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7777626c6e333972","name":"webpack-compilation-seal","id":"6f76703873636137","timestamp":97714062503,"duration":4071,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7268786133747062","name":"webpack-compilation","id":"7777626c6e333972","timestamp":97714034487,"duration":32149,"tags":{"name":"server"}},{"traceId":"a40c92b03843b256","parentId":"7268786133747062","name":"emit","id":"7030386a326e7a6a","timestamp":97714066691,"duration":5843,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-server","id":"7268786133747062","timestamp":97713496467,"duration":577279,"tags":{"trigger":"manual"}}] +[{"traceId":"a40c92b03843b256","parentId":"68636d346d767331","name":"add-entry","id":"6f6f696934376e32","timestamp":97752013653,"duration":20087,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"68636d346d767331","name":"add-entry","id":"6162653962337a65","timestamp":97752013787,"duration":21203,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=private-next-pages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"68636d346d767331","name":"add-entry","id":"7934643579347975","timestamp":97752013777,"duration":21558,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"68636d346d767331","name":"add-entry","id":"7979786a66646c63","timestamp":97752013737,"duration":22273,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"}},{"traceId":"a40c92b03843b256","parentId":"68636d346d767331","name":"add-entry","id":"39786a3669766477","timestamp":97752013762,"duration":29615,"tags":{"request":"next-client-pages-loader?page=%2F_app&absolutePagePath=private-next-pages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"68636d346d767331","name":"add-entry","id":"6d6432396872326c","timestamp":97752013751,"duration":37922,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"68636d346d767331","name":"add-entry","id":"6c65336e386d6178","timestamp":97752013812,"duration":44169,"tags":{"request":"next-client-pages-loader?page=%2Fabout&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cabout%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"68636d346d767331","name":"add-entry","id":"30736137346b6e65","timestamp":97752013797,"duration":44659,"tags":{"request":"next-client-pages-loader?page=%2Fhomepage%2Fhome2-light&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Chomepage%5Chome2-light.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"68636d346d767331","name":"add-entry","id":"716f7968656f6366","timestamp":97752013823,"duration":44645,"tags":{"request":"next-client-pages-loader?page=%2F&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"636e786632726965","name":"make","id":"677a677568757678","timestamp":97752012901,"duration":45658,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"68636d346d767331","name":"webpack-compilation-chunk-graph","id":"373537786b623277","timestamp":97752061359,"duration":9260,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"68636d346d767331","name":"webpack-compilation-optimize-modules","id":"746862707a303732","timestamp":97752070767,"duration":69,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"68636d346d767331","name":"webpack-compilation-optimize-chunks","id":"3362646c34676739","timestamp":97752070985,"duration":1142,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"68636d346d767331","name":"webpack-compilation-optimize-tree","id":"79777437756f3063","timestamp":97752072219,"duration":12,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"68636d346d767331","name":"webpack-compilation-optimize","id":"737370786c377362","timestamp":97752070738,"duration":2786,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"68636d346d767331","name":"webpack-compilation-hash","id":"676f7a6179753765","timestamp":97752094768,"duration":8253,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"68636d346d767331","name":"NextJsBuildManifest-generateClientManifest","id":"3761366670736831","timestamp":97752109246,"duration":168,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"68636d346d767331","name":"NextJsBuildManifest-createassets","id":"3138346968796469","timestamp":97752109104,"duration":324,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"68636d346d767331","name":"webpack-compilation-seal","id":"3330393664316f6a","timestamp":97752060290,"duration":51581,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"636e786632726965","name":"webpack-compilation","id":"68636d346d767331","timestamp":97752012393,"duration":99558,"tags":{"name":"client"}},{"traceId":"a40c92b03843b256","parentId":"636e786632726965","name":"emit","id":"35627438356e3864","timestamp":97752112019,"duration":28299,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-client","id":"636e786632726965","timestamp":97752008673,"duration":133091,"tags":{"trigger":"manual"}},{"traceId":"a40c92b03843b256","parentId":"6761326173673269","name":"add-entry","id":"7a75747a62346b7a","timestamp":97752156610,"duration":7048,"tags":{"request":"private-next-pages/_error"}},{"traceId":"a40c92b03843b256","parentId":"6761326173673269","name":"add-entry","id":"627975797a356872","timestamp":97752156168,"duration":7593,"tags":{"request":"private-next-pages/_app"}},{"traceId":"a40c92b03843b256","parentId":"6761326173673269","name":"add-entry","id":"6a397a3162726f77","timestamp":97752156569,"duration":7204,"tags":{"request":"private-next-pages/_document"}},{"traceId":"a40c92b03843b256","parentId":"396b686931726572","name":"make","id":"6f30306771753364","timestamp":97752143688,"duration":20121,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6761326173673269","name":"webpack-compilation-chunk-graph","id":"667833336f303374","timestamp":97752164123,"duration":195,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6761326173673269","name":"webpack-compilation-optimize-modules","id":"737a7a7676726235","timestamp":97752164348,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6761326173673269","name":"webpack-compilation-optimize-chunks","id":"326936666f6c6332","timestamp":97752164371,"duration":37,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6761326173673269","name":"webpack-compilation-optimize-tree","id":"7772307268306672","timestamp":97752164434,"duration":7,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6761326173673269","name":"webpack-compilation-optimize","id":"316b706f68666138","timestamp":97752164338,"duration":193,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6761326173673269","name":"webpack-compilation-hash","id":"61386665376b3432","timestamp":97752165531,"duration":1149,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6761326173673269","name":"webpack-compilation-seal","id":"75676e6b6339746c","timestamp":97752164027,"duration":3252,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"396b686931726572","name":"webpack-compilation","id":"6761326173673269","timestamp":97752143273,"duration":24059,"tags":{"name":"server"}},{"traceId":"a40c92b03843b256","parentId":"396b686931726572","name":"emit","id":"3536676e6f313762","timestamp":97752167388,"duration":6792,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-server","id":"396b686931726572","timestamp":97752009442,"duration":165778,"tags":{"trigger":"manual"}}] +[{"traceId":"a40c92b03843b256","parentId":"7238356d32373533","name":"add-entry","id":"7a61336676716b71","timestamp":97906574434,"duration":40369,"tags":{"request":"next-client-pages-loader?page=%2F_app&absolutePagePath=private-next-pages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"6d636d65746c306b","name":"read-resource","id":"7670737032713467","timestamp":97906597165,"duration":18246,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"67366a7361707131","name":"get-options","id":"6937313563783137","timestamp":97906615504,"duration":10,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"74766e6274717174","name":"babel-turbo-get-config","id":"316d77736f356b32","timestamp":97906615524,"duration":31,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"74766e6274717174","name":"babel-turbo-normalize-file","id":"307a7066736b7464","timestamp":97906615562,"duration":25955,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7869777166653437","name":"babel-turbo-traverse","id":"76726c35327a7767","timestamp":97906642786,"duration":229242,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"74766e6274717174","name":"babel-turbo-transform","id":"7869777166653437","timestamp":97906641572,"duration":230482,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"74766e6274717174","name":"babel-turbo-generate","id":"6f6d357a746c3169","timestamp":97906872077,"duration":23388,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"67366a7361707131","name":"next-babel-turbo-transform","id":"74766e6274717174","timestamp":97906615519,"duration":279963,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d636d65746c306b","name":"next-babel-turbo-loader","id":"67366a7361707131","timestamp":97906615496,"duration":280034,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7238356d32373533","name":"build-module-jsx","id":"6d636d65746c306b","timestamp":97906595731,"duration":325140,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Team\\team.jsx"}},{"traceId":"a40c92b03843b256","parentId":"7238356d32373533","name":"add-entry","id":"686134616566676a","timestamp":97906574254,"duration":347060,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"7238356d32373533","name":"add-entry","id":"3577697236716136","timestamp":97906574456,"duration":349575,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=private-next-pages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"7238356d32373533","name":"add-entry","id":"3676626b736a326d","timestamp":97906574445,"duration":350970,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"7238356d32373533","name":"add-entry","id":"7678767139326a62","timestamp":97906574411,"duration":357480,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"}},{"traceId":"a40c92b03843b256","parentId":"7238356d32373533","name":"add-entry","id":"6e63656969367274","timestamp":97906574425,"duration":370228,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"7238356d32373533","name":"add-entry","id":"6233686c32366d76","timestamp":97906574473,"duration":370449,"tags":{"request":"next-client-pages-loader?page=%2F&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"7238356d32373533","name":"add-entry","id":"776e323464756f31","timestamp":97906574465,"duration":372277,"tags":{"request":"next-client-pages-loader?page=%2Fabout&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cabout%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"7068323368363575","name":"make","id":"6337327165636865","timestamp":97906573041,"duration":373760,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7238356d32373533","name":"webpack-compilation-chunk-graph","id":"6772646e76786b72","timestamp":97906950307,"duration":9053,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7238356d32373533","name":"webpack-compilation-optimize-modules","id":"7a6772376164746c","timestamp":97906959448,"duration":30,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7238356d32373533","name":"webpack-compilation-optimize-chunks","id":"77396632356e6b70","timestamp":97906959502,"duration":117,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7238356d32373533","name":"webpack-compilation-optimize-tree","id":"307972756a787665","timestamp":97906959679,"duration":9,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7238356d32373533","name":"webpack-compilation-optimize","id":"6839356835773862","timestamp":97906959425,"duration":1520,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7238356d32373533","name":"webpack-compilation-hash","id":"746172797a77306b","timestamp":97906982055,"duration":11479,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7238356d32373533","name":"NextJsBuildManifest-generateClientManifest","id":"66743366776b7433","timestamp":97907015851,"duration":176,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7238356d32373533","name":"NextJsBuildManifest-createassets","id":"7135383178633769","timestamp":97907015598,"duration":445,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7238356d32373533","name":"webpack-compilation-seal","id":"7866306567796336","timestamp":97906948906,"duration":70547,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7068323368363575","name":"webpack-compilation","id":"7238356d32373533","timestamp":97906572450,"duration":447138,"tags":{"name":"client"}},{"traceId":"a40c92b03843b256","parentId":"7068323368363575","name":"emit","id":"30367676346c6c78","timestamp":97907019704,"duration":62985,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-client","id":"7068323368363575","timestamp":97906544010,"duration":542308,"tags":{"trigger":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Team\\team.jsx"}}] +[{"traceId":"a40c92b03843b256","parentId":"7a6b6d716279706d","name":"add-entry","id":"6a33306631366b32","timestamp":98023944869,"duration":25034,"tags":{"request":"next-client-pages-loader?page=%2F_app&absolutePagePath=private-next-pages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"6c316a7a30343361","name":"read-resource","id":"3678616b786d3172","timestamp":98023953984,"duration":16231,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"657275336f786138","name":"get-options","id":"3469697767686a69","timestamp":98023970498,"duration":10,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6573616265737374","name":"babel-turbo-get-config","id":"62626a7633657967","timestamp":98023970519,"duration":32,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6573616265737374","name":"babel-turbo-normalize-file","id":"666b6a6d667a3335","timestamp":98023970554,"duration":28949,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7379357735713273","name":"babel-turbo-traverse","id":"6f3331746c71336b","timestamp":98024000876,"duration":260558,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6573616265737374","name":"babel-turbo-transform","id":"7379357735713273","timestamp":98023999555,"duration":261919,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6573616265737374","name":"babel-turbo-generate","id":"627271313878356f","timestamp":98024261621,"duration":32223,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"657275336f786138","name":"next-babel-turbo-transform","id":"6573616265737374","timestamp":98023970514,"duration":323348,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c316a7a30343361","name":"next-babel-turbo-loader","id":"657275336f786138","timestamp":98023970487,"duration":323420,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6b6d716279706d","name":"build-module-jsx","id":"6c316a7a30343361","timestamp":98023953472,"duration":357284,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Team\\team.jsx"}},{"traceId":"a40c92b03843b256","parentId":"7a6b6d716279706d","name":"add-entry","id":"6a616567376d3774","timestamp":98023944663,"duration":366297,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"7a6b6d716279706d","name":"add-entry","id":"3438303173796178","timestamp":98023944891,"duration":369913,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=private-next-pages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"7a6b6d716279706d","name":"add-entry","id":"66366b7a72306278","timestamp":98023944880,"duration":371220,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"7a6b6d716279706d","name":"add-entry","id":"34617579387a3572","timestamp":98023944844,"duration":381270,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"}},{"traceId":"a40c92b03843b256","parentId":"7a6b6d716279706d","name":"add-entry","id":"6270737077346e70","timestamp":98023944859,"duration":388603,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"7a6b6d716279706d","name":"add-entry","id":"756a7931706b3670","timestamp":98023944899,"duration":391455,"tags":{"request":"next-client-pages-loader?page=%2F&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"7a6b6d716279706d","name":"add-entry","id":"76656f6962327a71","timestamp":98023944908,"duration":393864,"tags":{"request":"next-client-pages-loader?page=%2Fabout&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cabout%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"766a626667713338","name":"make","id":"3068657374346e70","timestamp":98023943842,"duration":395020,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6b6d716279706d","name":"webpack-compilation-chunk-graph","id":"6e73396f76766d7a","timestamp":98024347248,"duration":5233,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6b6d716279706d","name":"webpack-compilation-optimize-modules","id":"3730683578663533","timestamp":98024352563,"duration":27,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6b6d716279706d","name":"webpack-compilation-optimize-chunks","id":"733574746c646b74","timestamp":98024352612,"duration":114,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6b6d716279706d","name":"webpack-compilation-optimize-tree","id":"7665316778643675","timestamp":98024352783,"duration":9,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6b6d716279706d","name":"webpack-compilation-optimize","id":"6172796d66677734","timestamp":98024352539,"duration":1733,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6b6d716279706d","name":"webpack-compilation-hash","id":"6a3164376b6f3169","timestamp":98024378693,"duration":8965,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6b6d716279706d","name":"NextJsBuildManifest-generateClientManifest","id":"6a39353372633339","timestamp":98024402319,"duration":204,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6b6d716279706d","name":"NextJsBuildManifest-createassets","id":"746a667478367a37","timestamp":98024402170,"duration":519,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a6b6d716279706d","name":"webpack-compilation-seal","id":"3937656861686e6c","timestamp":98024341694,"duration":63398,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766a626667713338","name":"webpack-compilation","id":"7a6b6d716279706d","timestamp":98023942890,"duration":462291,"tags":{"name":"client"}},{"traceId":"a40c92b03843b256","parentId":"766a626667713338","name":"emit","id":"707430776465636c","timestamp":98024405280,"duration":52844,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-client","id":"766a626667713338","timestamp":98023916233,"duration":544574,"tags":{"trigger":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Team\\team.jsx"}}] +[{"traceId":"a40c92b03843b256","parentId":"696b387868726639","name":"add-entry","id":"7170656332767975","timestamp":98044885555,"duration":17024,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"696b387868726639","name":"add-entry","id":"3472397169306138","timestamp":98044885780,"duration":20212,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=private-next-pages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"696b387868726639","name":"add-entry","id":"6a7a637969377465","timestamp":98044885762,"duration":20706,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"696b387868726639","name":"add-entry","id":"663731376d696d64","timestamp":98044885711,"duration":21893,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"}},{"traceId":"a40c92b03843b256","parentId":"37367166316a7632","name":"read-resource","id":"366b756c72766578","timestamp":98044896759,"duration":11425,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"726f6e7363383831","name":"get-options","id":"3863693534703068","timestamp":98044908350,"duration":12,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"68346f7675373768","name":"babel-turbo-get-config","id":"3164783135796c70","timestamp":98044908375,"duration":40,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"68346f7675373768","name":"babel-turbo-normalize-file","id":"30773732786f6939","timestamp":98044908420,"duration":28231,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"75367533316d3962","name":"babel-turbo-traverse","id":"667937776e307867","timestamp":98044937646,"duration":217568,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"68346f7675373768","name":"babel-turbo-transform","id":"75367533316d3962","timestamp":98044936708,"duration":218536,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"68346f7675373768","name":"babel-turbo-generate","id":"6b6d62333261366d","timestamp":98045155270,"duration":13834,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"726f6e7363383831","name":"next-babel-turbo-transform","id":"68346f7675373768","timestamp":98044908370,"duration":260749,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37367166316a7632","name":"next-babel-turbo-loader","id":"726f6e7363383831","timestamp":98044908340,"duration":260822,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"696b387868726639","name":"build-module-jsx","id":"37367166316a7632","timestamp":98044896506,"duration":287957,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Team\\team.jsx"}},{"traceId":"a40c92b03843b256","parentId":"696b387868726639","name":"add-entry","id":"397870636b706371","timestamp":98044885746,"duration":300718,"tags":{"request":"next-client-pages-loader?page=%2F_app&absolutePagePath=private-next-pages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"696b387868726639","name":"add-entry","id":"63716d7678656879","timestamp":98044885730,"duration":311560,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"696b387868726639","name":"add-entry","id":"377a383874313936","timestamp":98044885794,"duration":312916,"tags":{"request":"next-client-pages-loader?page=%2Fabout&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cabout%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"696b387868726639","name":"add-entry","id":"3035656c6d32336b","timestamp":98044885808,"duration":313022,"tags":{"request":"next-client-pages-loader?page=%2F&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"6873376465333071","name":"make","id":"68626a666e6f7839","timestamp":98044884266,"duration":314598,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"696b387868726639","name":"webpack-compilation-chunk-graph","id":"62346c3431356830","timestamp":98045202404,"duration":5661,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"696b387868726639","name":"webpack-compilation-optimize-modules","id":"3364347233377138","timestamp":98045208152,"duration":25,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"696b387868726639","name":"webpack-compilation-optimize-chunks","id":"376b657969326135","timestamp":98045208197,"duration":131,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"696b387868726639","name":"webpack-compilation-optimize-tree","id":"6837633867336c35","timestamp":98045208388,"duration":9,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"696b387868726639","name":"webpack-compilation-optimize","id":"7467343334776274","timestamp":98045208127,"duration":1139,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"696b387868726639","name":"webpack-compilation-hash","id":"6233627934643367","timestamp":98045228280,"duration":7096,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"696b387868726639","name":"NextJsBuildManifest-generateClientManifest","id":"736f656a7535756c","timestamp":98045252864,"duration":151,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"696b387868726639","name":"NextJsBuildManifest-createassets","id":"3838376579616274","timestamp":98045252708,"duration":325,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"696b387868726639","name":"webpack-compilation-seal","id":"62686c736a686d31","timestamp":98045200965,"duration":54440,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6873376465333071","name":"webpack-compilation","id":"696b387868726639","timestamp":98044883295,"duration":372197,"tags":{"name":"client"}},{"traceId":"a40c92b03843b256","parentId":"6873376465333071","name":"emit","id":"7a6935636f693263","timestamp":98045255585,"duration":53957,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-client","id":"6873376465333071","timestamp":98044862341,"duration":450978,"tags":{"trigger":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Team\\team.jsx"}}] +[{"traceId":"a40c92b03843b256","parentId":"746c783735666862","name":"add-entry","id":"7a78323074637532","timestamp":98048411338,"duration":11793,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"746c783735666862","name":"add-entry","id":"3331356c75727975","timestamp":98048411542,"duration":13700,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=private-next-pages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"746c783735666862","name":"add-entry","id":"6c34336c6a333235","timestamp":98048411530,"duration":14205,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"746c783735666862","name":"add-entry","id":"6f6175666c393039","timestamp":98048411497,"duration":17423,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"}},{"traceId":"a40c92b03843b256","parentId":"746c783735666862","name":"add-entry","id":"697679336f716178","timestamp":98048411520,"duration":19769,"tags":{"request":"next-client-pages-loader?page=%2F_app&absolutePagePath=private-next-pages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"746c783735666862","name":"add-entry","id":"71727766736d6363","timestamp":98048411511,"duration":34417,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"746c783735666862","name":"add-entry","id":"72396d6b75316f7a","timestamp":98048411551,"duration":36310,"tags":{"request":"next-client-pages-loader?page=%2Fabout&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cabout%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"746c783735666862","name":"add-entry","id":"7a34766639306968","timestamp":98048411559,"duration":36442,"tags":{"request":"next-client-pages-loader?page=%2F&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"72627536616d3636","name":"make","id":"336d6b786b636335","timestamp":98048410129,"duration":37968,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"746c783735666862","name":"webpack-compilation-chunk-graph","id":"35776f7564756e69","timestamp":98048452570,"duration":3732,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"746c783735666862","name":"webpack-compilation-optimize-modules","id":"3736373976703836","timestamp":98048456446,"duration":30,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"746c783735666862","name":"webpack-compilation-optimize-chunks","id":"6a716e7566626976","timestamp":98048456499,"duration":126,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"746c783735666862","name":"webpack-compilation-optimize-tree","id":"37346e6e396f6d33","timestamp":98048456805,"duration":14,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"746c783735666862","name":"webpack-compilation-optimize","id":"706a693078636d73","timestamp":98048456418,"duration":6173,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"746c783735666862","name":"webpack-compilation-hash","id":"7669396b72756e33","timestamp":98048486949,"duration":9067,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"746c783735666862","name":"NextJsBuildManifest-generateClientManifest","id":"336668736d6c3163","timestamp":98048498121,"duration":207,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"746c783735666862","name":"NextJsBuildManifest-createassets","id":"7a3263756b667177","timestamp":98048497858,"duration":491,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"746c783735666862","name":"webpack-compilation-seal","id":"78313574736e3169","timestamp":98048450230,"duration":49399,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72627536616d3636","name":"webpack-compilation","id":"746c783735666862","timestamp":98048409393,"duration":90305,"tags":{"name":"client"}},{"traceId":"a40c92b03843b256","parentId":"72627536616d3636","name":"emit","id":"7038683267727236","timestamp":98048499780,"duration":15171,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-client","id":"72627536616d3636","timestamp":98048405073,"duration":111202,"tags":{"trigger":"manual"}},{"traceId":"a40c92b03843b256","parentId":"67316d65646d3771","name":"add-entry","id":"68666d7672686f61","timestamp":98048524713,"duration":26182,"tags":{"request":"private-next-pages/_error"}},{"traceId":"a40c92b03843b256","parentId":"67316d65646d3771","name":"add-entry","id":"71686374696f6d6d","timestamp":98048524542,"duration":26428,"tags":{"request":"private-next-pages/_app"}},{"traceId":"a40c92b03843b256","parentId":"67316d65646d3771","name":"add-entry","id":"396b6262356a776e","timestamp":98048524689,"duration":26290,"tags":{"request":"private-next-pages/_document"}},{"traceId":"a40c92b03843b256","parentId":"613331646f656e61","name":"read-resource","id":"74776f3430676d36","timestamp":98048658122,"duration":4291,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"316a617373346134","name":"get-options","id":"6636313878316636","timestamp":98048662529,"duration":10,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f74617173783775","name":"babel-turbo-get-config","id":"733670307963636e","timestamp":98048662551,"duration":37,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f74617173783775","name":"babel-turbo-normalize-file","id":"627973397a346d6c","timestamp":98048662592,"duration":10112,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766d7a7a3233716e","name":"babel-turbo-traverse","id":"7a6e333562386934","timestamp":98048673239,"duration":131046,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f74617173783775","name":"babel-turbo-transform","id":"766d7a7a3233716e","timestamp":98048672768,"duration":131541,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f74617173783775","name":"babel-turbo-generate","id":"73346c34736b6670","timestamp":98048804345,"duration":10775,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"316a617373346134","name":"next-babel-turbo-transform","id":"6f74617173783775","timestamp":98048662547,"duration":152595,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"613331646f656e61","name":"next-babel-turbo-loader","id":"316a617373346134","timestamp":98048662521,"duration":152668,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"67316d65646d3771","name":"build-module-jsx","id":"613331646f656e61","timestamp":98048657488,"duration":167302,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Team\\team.jsx"}},{"traceId":"a40c92b03843b256","parentId":"67316d65646d3771","name":"add-entry","id":"686674776362716b","timestamp":98048524728,"duration":308043,"tags":{"request":"./src\\pages\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"3833376c37393331","name":"make","id":"31336e353664796d","timestamp":98048518611,"duration":314213,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"67316d65646d3771","name":"webpack-compilation-chunk-graph","id":"316d6b3678767933","timestamp":98048835754,"duration":1956,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"67316d65646d3771","name":"webpack-compilation-optimize-modules","id":"637731616b656369","timestamp":98048837757,"duration":9,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"67316d65646d3771","name":"webpack-compilation-optimize-chunks","id":"7468373476686c33","timestamp":98048837785,"duration":52,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"67316d65646d3771","name":"webpack-compilation-optimize-tree","id":"786f39747278666c","timestamp":98048837882,"duration":8,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"67316d65646d3771","name":"webpack-compilation-optimize","id":"68756e3564646d37","timestamp":98048837742,"duration":438,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"67316d65646d3771","name":"webpack-compilation-hash","id":"7972756839647638","timestamp":98048847853,"duration":3513,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"67316d65646d3771","name":"webpack-compilation-seal","id":"7438796576746d7a","timestamp":98048835406,"duration":32707,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3833376c37393331","name":"webpack-compilation","id":"67316d65646d3771","timestamp":98048518161,"duration":350031,"tags":{"name":"server"}},{"traceId":"a40c92b03843b256","parentId":"3833376c37393331","name":"emit","id":"747464376f787779","timestamp":98048868271,"duration":18866,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-server","id":"3833376c37393331","timestamp":98048405851,"duration":483085,"tags":{"trigger":"manual"}}] +[{"traceId":"a40c92b03843b256","parentId":"6632747262677777","name":"add-entry","id":"386f757436363433","timestamp":98080784202,"duration":16575,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"6632747262677777","name":"add-entry","id":"67326e70796a7275","timestamp":98080784348,"duration":18192,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=private-next-pages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"6632747262677777","name":"add-entry","id":"6634796372687869","timestamp":98080784338,"duration":18500,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"6632747262677777","name":"add-entry","id":"6d72643261386436","timestamp":98080784305,"duration":19303,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"}},{"traceId":"a40c92b03843b256","parentId":"6632747262677777","name":"add-entry","id":"7773327132396f6f","timestamp":98080784328,"duration":20788,"tags":{"request":"next-client-pages-loader?page=%2F_app&absolutePagePath=private-next-pages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"3834646133696b6d","name":"read-resource","id":"6179637174386c38","timestamp":98080794775,"duration":11706,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"726178393062387a","name":"get-options","id":"6b31613430746768","timestamp":98080806600,"duration":10,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c6961677873687a","name":"babel-turbo-get-config","id":"3667657864656368","timestamp":98080806618,"duration":36,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c6961677873687a","name":"babel-turbo-normalize-file","id":"7169637079787563","timestamp":98080806658,"duration":8482,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e71667a63373871","name":"babel-turbo-traverse","id":"746b6b7670793038","timestamp":98080816313,"duration":201831,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c6961677873687a","name":"babel-turbo-transform","id":"6e71667a63373871","timestamp":98080815203,"duration":202977,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c6961677873687a","name":"babel-turbo-generate","id":"6a63376373643478","timestamp":98081018221,"duration":7761,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"726178393062387a","name":"next-babel-turbo-transform","id":"6c6961677873687a","timestamp":98080806614,"duration":219387,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3834646133696b6d","name":"next-babel-turbo-loader","id":"726178393062387a","timestamp":98080806593,"duration":219464,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6632747262677777","name":"build-module-jsx","id":"3834646133696b6d","timestamp":98080794401,"duration":244372,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Team\\team.jsx"}},{"traceId":"a40c92b03843b256","parentId":"6632747262677777","name":"add-entry","id":"6579677264677335","timestamp":98080784319,"duration":263644,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"6632747262677777","name":"add-entry","id":"7a6769766d617171","timestamp":98080784366,"duration":263941,"tags":{"request":"next-client-pages-loader?page=%2Fabout&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cabout%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"6632747262677777","name":"add-entry","id":"737069766b623477","timestamp":98080784357,"duration":263965,"tags":{"request":"next-client-pages-loader?page=%2F&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"6a6d35686563726c","name":"make","id":"6f776b366f693871","timestamp":98080783423,"duration":264944,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6632747262677777","name":"webpack-compilation-chunk-graph","id":"666d356867347469","timestamp":98081052291,"duration":4143,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6632747262677777","name":"webpack-compilation-optimize-modules","id":"6b7470757164676b","timestamp":98081056524,"duration":29,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6632747262677777","name":"webpack-compilation-optimize-chunks","id":"3679383536326763","timestamp":98081056573,"duration":110,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6632747262677777","name":"webpack-compilation-optimize-tree","id":"6d32687171737273","timestamp":98081056739,"duration":9,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6632747262677777","name":"webpack-compilation-optimize","id":"793230747a677a78","timestamp":98081056499,"duration":952,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6632747262677777","name":"webpack-compilation-hash","id":"6b73626234337565","timestamp":98081072313,"duration":5663,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6632747262677777","name":"NextJsBuildManifest-generateClientManifest","id":"6465696a70653779","timestamp":98081089150,"duration":142,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6632747262677777","name":"NextJsBuildManifest-createassets","id":"356b337964666c69","timestamp":98081089011,"duration":297,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6632747262677777","name":"webpack-compilation-seal","id":"763661646e6e6a67","timestamp":98081051340,"duration":40074,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a6d35686563726c","name":"webpack-compilation","id":"6632747262677777","timestamp":98080782964,"duration":308557,"tags":{"name":"client"}},{"traceId":"a40c92b03843b256","parentId":"6a6d35686563726c","name":"emit","id":"68627a386b687162","timestamp":98081091606,"duration":56028,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-client","id":"6a6d35686563726c","timestamp":98080773286,"duration":375687,"tags":{"trigger":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Team\\team.jsx"}},{"traceId":"a40c92b03843b256","parentId":"64686165696a6536","name":"add-entry","id":"7274767338657330","timestamp":98081157969,"duration":17071,"tags":{"request":"private-next-pages/_error"}},{"traceId":"a40c92b03843b256","parentId":"64686165696a6536","name":"add-entry","id":"357174377761376d","timestamp":98081157666,"duration":17984,"tags":{"request":"private-next-pages/_app"}},{"traceId":"a40c92b03843b256","parentId":"64686165696a6536","name":"add-entry","id":"35616c3877387835","timestamp":98081157946,"duration":17737,"tags":{"request":"private-next-pages/_document"}},{"traceId":"a40c92b03843b256","parentId":"72307a6b6e326a38","name":"make","id":"337867347569366e","timestamp":98081151725,"duration":24033,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"64686165696a6536","name":"webpack-compilation-chunk-graph","id":"3632376e66776578","timestamp":98081176745,"duration":425,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"64686165696a6536","name":"webpack-compilation-optimize-modules","id":"626232756d743868","timestamp":98081177213,"duration":14,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"64686165696a6536","name":"webpack-compilation-optimize-chunks","id":"3361666a7a736b71","timestamp":98081177258,"duration":56,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"64686165696a6536","name":"webpack-compilation-optimize-tree","id":"7065646b66707965","timestamp":98081177363,"duration":14,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"64686165696a6536","name":"webpack-compilation-optimize","id":"6a31397735646379","timestamp":98081177198,"duration":312,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"64686165696a6536","name":"webpack-compilation-hash","id":"6c6d343561657638","timestamp":98081180831,"duration":2635,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"64686165696a6536","name":"webpack-compilation-seal","id":"796a3774376f3779","timestamp":98081176359,"duration":8942,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72307a6b6e326a38","name":"webpack-compilation","id":"64686165696a6536","timestamp":98081151268,"duration":34123,"tags":{"name":"server"}},{"traceId":"a40c92b03843b256","parentId":"72307a6b6e326a38","name":"emit","id":"3763783339793731","timestamp":98081185473,"duration":16457,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-server","id":"72307a6b6e326a38","timestamp":98080774991,"duration":430973,"tags":{"trigger":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Team\\team.jsx"}}] +[{"traceId":"a40c92b03843b256","parentId":"7735753735763362","name":"add-entry","id":"7175376c65656a32","timestamp":98161441460,"duration":34072,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"6d703730336a3865","name":"read-resource","id":"6374737378676439","timestamp":98161463478,"duration":12295,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7171786c6763397a","name":"get-options","id":"75666d376d613974","timestamp":98161475873,"duration":9,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"737070786d763562","name":"babel-turbo-get-config","id":"3061686638353432","timestamp":98161475891,"duration":33,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"737070786d763562","name":"babel-turbo-normalize-file","id":"3871367a7233626d","timestamp":98161475928,"duration":29368,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"383163636b763866","name":"babel-turbo-traverse","id":"706e31626671657a","timestamp":98161506478,"duration":392391,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"737070786d763562","name":"babel-turbo-transform","id":"383163636b763866","timestamp":98161505345,"duration":393554,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"737070786d763562","name":"babel-turbo-generate","id":"6373657a7a65636c","timestamp":98161898929,"duration":26556,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7171786c6763397a","name":"next-babel-turbo-transform","id":"737070786d763562","timestamp":98161475887,"duration":449617,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d703730336a3865","name":"next-babel-turbo-loader","id":"7171786c6763397a","timestamp":98161475863,"duration":449687,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7735753735763362","name":"build-module-jsx","id":"6d703730336a3865","timestamp":98161462936,"duration":480392,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Team\\team.jsx"}},{"traceId":"a40c92b03843b256","parentId":"7735753735763362","name":"add-entry","id":"7969793264387631","timestamp":98161441803,"duration":503190,"tags":{"request":"next-client-pages-loader?page=%2F_app&absolutePagePath=private-next-pages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"7735753735763362","name":"add-entry","id":"6636703233667771","timestamp":98161441917,"duration":510288,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=private-next-pages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"7735753735763362","name":"add-entry","id":"79786235646e6930","timestamp":98161441827,"duration":511204,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"7735753735763362","name":"add-entry","id":"6333333868687630","timestamp":98161441737,"duration":517400,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"}},{"traceId":"a40c92b03843b256","parentId":"7735753735763362","name":"add-entry","id":"30366b7072353566","timestamp":98161441784,"duration":526907,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"7735753735763362","name":"add-entry","id":"6674726769373470","timestamp":98161441972,"duration":527131,"tags":{"request":"next-client-pages-loader?page=%2F&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"7735753735763362","name":"add-entry","id":"6e7473387275776b","timestamp":98161441992,"duration":528381,"tags":{"request":"next-client-pages-loader?page=%2Fabout&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cabout%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"6665686f39703667","name":"make","id":"6361716a386a6b66","timestamp":98161439723,"duration":530706,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7735753735763362","name":"webpack-compilation-chunk-graph","id":"313466793278376b","timestamp":98161973495,"duration":3635,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7735753735763362","name":"webpack-compilation-optimize-modules","id":"7a7a6f6868646569","timestamp":98161977218,"duration":28,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7735753735763362","name":"webpack-compilation-optimize-chunks","id":"6b763235366a6868","timestamp":98161977270,"duration":125,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7735753735763362","name":"webpack-compilation-optimize-tree","id":"3169367a65356f36","timestamp":98161977445,"duration":11,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7735753735763362","name":"webpack-compilation-optimize","id":"78797a766f32756e","timestamp":98161977191,"duration":1608,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7735753735763362","name":"webpack-compilation-hash","id":"746a643239727576","timestamp":98161997729,"duration":7981,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7735753735763362","name":"NextJsBuildManifest-generateClientManifest","id":"6a7a69757a736c6b","timestamp":98162026605,"duration":322,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7735753735763362","name":"NextJsBuildManifest-createassets","id":"627930336a79306c","timestamp":98162026454,"duration":494,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7735753735763362","name":"webpack-compilation-seal","id":"6472756b78626464","timestamp":98161972426,"duration":57149,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6665686f39703667","name":"webpack-compilation","id":"7735753735763362","timestamp":98161438789,"duration":590892,"tags":{"name":"client"}},{"traceId":"a40c92b03843b256","parentId":"6665686f39703667","name":"emit","id":"7a38346b76707076","timestamp":98162029784,"duration":73842,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-client","id":"6665686f39703667","timestamp":98161420945,"duration":685578,"tags":{"trigger":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Team\\team.jsx"}}] +[{"traceId":"a40c92b03843b256","parentId":"386d686f39723466","name":"add-entry","id":"6b3132366c757764","timestamp":98166761329,"duration":13698,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"386d686f39723466","name":"add-entry","id":"706c6372387a7a63","timestamp":98166761668,"duration":15780,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=private-next-pages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"386d686f39723466","name":"add-entry","id":"656f726138356d74","timestamp":98166761656,"duration":16338,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"386d686f39723466","name":"add-entry","id":"757a626138657861","timestamp":98166761607,"duration":18180,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"}},{"traceId":"a40c92b03843b256","parentId":"386d686f39723466","name":"add-entry","id":"696a6b6c6a376f73","timestamp":98166761644,"duration":20748,"tags":{"request":"next-client-pages-loader?page=%2F_app&absolutePagePath=private-next-pages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"386d686f39723466","name":"add-entry","id":"396b623074387a31","timestamp":98166761633,"duration":33313,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"386d686f39723466","name":"add-entry","id":"38707a7675763570","timestamp":98166761686,"duration":35150,"tags":{"request":"next-client-pages-loader?page=%2Fabout&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cabout%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"386d686f39723466","name":"add-entry","id":"367170756e753270","timestamp":98166761677,"duration":35368,"tags":{"request":"next-client-pages-loader?page=%2F&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"6234767a79646474","name":"make","id":"346b397770676363","timestamp":98166759971,"duration":37170,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"386d686f39723466","name":"webpack-compilation-chunk-graph","id":"69306735696e3435","timestamp":98166801714,"duration":5744,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"386d686f39723466","name":"webpack-compilation-optimize-modules","id":"32397339366a7763","timestamp":98166807536,"duration":24,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"386d686f39723466","name":"webpack-compilation-optimize-chunks","id":"313679636f737632","timestamp":98166807581,"duration":110,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"386d686f39723466","name":"webpack-compilation-optimize-tree","id":"3075616c72687676","timestamp":98166807740,"duration":9,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"386d686f39723466","name":"webpack-compilation-optimize","id":"356a37716e68366b","timestamp":98166807516,"duration":2267,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"386d686f39723466","name":"webpack-compilation-hash","id":"6d72766a756d396e","timestamp":98166836815,"duration":7579,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"386d686f39723466","name":"NextJsBuildManifest-generateClientManifest","id":"6534686563397033","timestamp":98166846897,"duration":261,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"386d686f39723466","name":"NextJsBuildManifest-createassets","id":"3372777937363767","timestamp":98166846602,"duration":579,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"386d686f39723466","name":"webpack-compilation-seal","id":"3171376661346732","timestamp":98166799580,"duration":48742,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6234767a79646474","name":"webpack-compilation","id":"386d686f39723466","timestamp":98166758453,"duration":89923,"tags":{"name":"client"}},{"traceId":"a40c92b03843b256","parentId":"6234767a79646474","name":"emit","id":"7832787861707a33","timestamp":98166848431,"duration":10582,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-client","id":"6234767a79646474","timestamp":98166753514,"duration":106610,"tags":{"trigger":"manual"}},{"traceId":"a40c92b03843b256","parentId":"7279626a746e3266","name":"add-entry","id":"3769337a6f706a76","timestamp":98166868845,"duration":5754,"tags":{"request":"private-next-pages/_error"}},{"traceId":"a40c92b03843b256","parentId":"7279626a746e3266","name":"add-entry","id":"316a6332766f3639","timestamp":98166868721,"duration":9044,"tags":{"request":"private-next-pages/_app"}},{"traceId":"a40c92b03843b256","parentId":"7279626a746e3266","name":"add-entry","id":"636f347a6864686b","timestamp":98166868832,"duration":8980,"tags":{"request":"private-next-pages/_document"}},{"traceId":"a40c92b03843b256","parentId":"633168756d346d6d","name":"read-resource","id":"7869736362756378","timestamp":98166877385,"duration":4263,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37676e786961696f","name":"get-options","id":"383066616f33356e","timestamp":98166881765,"duration":9,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6235326134793664","name":"babel-turbo-get-config","id":"7773726166756c76","timestamp":98166881783,"duration":35,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6235326134793664","name":"babel-turbo-normalize-file","id":"3235696d74316b71","timestamp":98166881824,"duration":24167,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7662393664707062","name":"babel-turbo-traverse","id":"7372657973773174","timestamp":98166906546,"duration":300862,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6235326134793664","name":"babel-turbo-transform","id":"7662393664707062","timestamp":98166906050,"duration":301397,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6235326134793664","name":"babel-turbo-generate","id":"6f72627373787266","timestamp":98167207485,"duration":20413,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37676e786961696f","name":"next-babel-turbo-transform","id":"6235326134793664","timestamp":98166881778,"duration":346150,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"633168756d346d6d","name":"next-babel-turbo-loader","id":"37676e786961696f","timestamp":98166881755,"duration":346239,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7279626a746e3266","name":"build-module-jsx","id":"633168756d346d6d","timestamp":98166876593,"duration":366998,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Team\\team.jsx"}},{"traceId":"a40c92b03843b256","parentId":"7279626a746e3266","name":"add-entry","id":"34666a757a356e74","timestamp":98166868854,"duration":383427,"tags":{"request":"./src\\pages\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"61786a6f316e6c66","name":"make","id":"6262766432393870","timestamp":98166862939,"duration":389386,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7279626a746e3266","name":"webpack-compilation-chunk-graph","id":"36366e64786a7633","timestamp":98167254733,"duration":2087,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7279626a746e3266","name":"webpack-compilation-optimize-modules","id":"76623279656f767a","timestamp":98167256892,"duration":16,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7279626a746e3266","name":"webpack-compilation-optimize-chunks","id":"323270326b306f77","timestamp":98167256928,"duration":72,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7279626a746e3266","name":"webpack-compilation-optimize-tree","id":"3074613063656d39","timestamp":98167257049,"duration":8,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7279626a746e3266","name":"webpack-compilation-optimize","id":"74676c6138657362","timestamp":98167256873,"duration":440,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7279626a746e3266","name":"webpack-compilation-hash","id":"70616c766d76326e","timestamp":98167265318,"duration":1760,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7279626a746e3266","name":"webpack-compilation-seal","id":"3537356d71777175","timestamp":98167254495,"duration":23716,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"61786a6f316e6c66","name":"webpack-compilation","id":"7279626a746e3266","timestamp":98166862237,"duration":416252,"tags":{"name":"server"}},{"traceId":"a40c92b03843b256","parentId":"61786a6f316e6c66","name":"emit","id":"623572366f627672","timestamp":98167278835,"duration":19193,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-server","id":"61786a6f316e6c66","timestamp":98166754428,"duration":545749,"tags":{"trigger":"manual"}}] +[{"traceId":"a40c92b03843b256","parentId":"36766d797a6d3668","name":"read-resource","id":"7272616c69643772","timestamp":98308750753,"duration":12916,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a346b6d65696f76","name":"get-options","id":"3733643736656568","timestamp":98308763854,"duration":11,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3537696a79736a37","name":"babel-turbo-get-config","id":"6331716c64747675","timestamp":98308763876,"duration":40,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3537696a79736a37","name":"babel-turbo-normalize-file","id":"3334693638307435","timestamp":98308763920,"duration":84734,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"73763169786a3232","name":"babel-turbo-traverse","id":"77736178376d316f","timestamp":98308849843,"duration":414408,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3537696a79736a37","name":"babel-turbo-transform","id":"73763169786a3232","timestamp":98308848714,"duration":415560,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3537696a79736a37","name":"babel-turbo-generate","id":"787432766276356d","timestamp":98309264299,"duration":19331,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a346b6d65696f76","name":"next-babel-turbo-transform","id":"3537696a79736a37","timestamp":98308763871,"duration":519782,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"36766d797a6d3668","name":"next-babel-turbo-loader","id":"7a346b6d65696f76","timestamp":98308763845,"duration":519864,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3270343079776b65","name":"build-module-jsx","id":"36766d797a6d3668","timestamp":98308750361,"duration":549281,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Team\\team.jsx"}},{"traceId":"a40c92b03843b256","parentId":"3270343079776b65","name":"add-entry","id":"3836666f65346277","timestamp":98308728590,"duration":572404,"tags":{"request":"next-client-pages-loader?page=%2F_app&absolutePagePath=private-next-pages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"3270343079776b65","name":"add-entry","id":"6d39757462393577","timestamp":98308728353,"duration":575067,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"3270343079776b65","name":"add-entry","id":"646576723965386a","timestamp":98308728617,"duration":579233,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=private-next-pages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"3270343079776b65","name":"add-entry","id":"777531376b76317a","timestamp":98308728603,"duration":580051,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"3270343079776b65","name":"add-entry","id":"68626d7972716e30","timestamp":98308728512,"duration":584750,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"}},{"traceId":"a40c92b03843b256","parentId":"3270343079776b65","name":"add-entry","id":"616662673868777a","timestamp":98308728579,"duration":598123,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"3270343079776b65","name":"add-entry","id":"7638393535786735","timestamp":98308728640,"duration":598466,"tags":{"request":"next-client-pages-loader?page=%2F&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"3270343079776b65","name":"add-entry","id":"3261386e6e6a646b","timestamp":98308728629,"duration":599330,"tags":{"request":"next-client-pages-loader?page=%2Fabout&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cabout%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"3964786b78326773","name":"make","id":"7431316d3531776f","timestamp":98308721547,"duration":606444,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3270343079776b65","name":"webpack-compilation-chunk-graph","id":"787370676f733338","timestamp":98309331666,"duration":5541,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3270343079776b65","name":"webpack-compilation-optimize-modules","id":"68386173306b6538","timestamp":98309337310,"duration":167,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3270343079776b65","name":"webpack-compilation-optimize-chunks","id":"6c66746b31366d6c","timestamp":98309337501,"duration":125,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3270343079776b65","name":"webpack-compilation-optimize-tree","id":"73347034376b3473","timestamp":98309337684,"duration":10,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3270343079776b65","name":"webpack-compilation-optimize","id":"6239616434727377","timestamp":98309337275,"duration":1346,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3270343079776b65","name":"webpack-compilation-hash","id":"6f3462707a7a7736","timestamp":98309355634,"duration":13617,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3270343079776b65","name":"NextJsBuildManifest-generateClientManifest","id":"79766e3369733168","timestamp":98309387046,"duration":193,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3270343079776b65","name":"NextJsBuildManifest-createassets","id":"716c637971323766","timestamp":98309386894,"duration":364,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3270343079776b65","name":"webpack-compilation-seal","id":"6b657a7634313833","timestamp":98309330213,"duration":59540,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3964786b78326773","name":"webpack-compilation","id":"3270343079776b65","timestamp":98308720870,"duration":668956,"tags":{"name":"client"}},{"traceId":"a40c92b03843b256","parentId":"3964786b78326773","name":"emit","id":"3674736c736e3576","timestamp":98309389892,"duration":52518,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-client","id":"3964786b78326773","timestamp":98308695711,"duration":748301,"tags":{"trigger":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Team\\team.jsx"}},{"traceId":"a40c92b03843b256","parentId":"33683276706c6664","name":"add-entry","id":"743866796e783778","timestamp":98309452892,"duration":6489,"tags":{"request":"private-next-pages/_error"}},{"traceId":"a40c92b03843b256","parentId":"33683276706c6664","name":"add-entry","id":"34376b74796c6e73","timestamp":98309452765,"duration":6724,"tags":{"request":"private-next-pages/_app"}},{"traceId":"a40c92b03843b256","parentId":"33683276706c6664","name":"add-entry","id":"763667367a34656f","timestamp":98309452880,"duration":6625,"tags":{"request":"private-next-pages/_document"}},{"traceId":"a40c92b03843b256","parentId":"66346a3961326c37","name":"make","id":"666a6538706a6f30","timestamp":98309446351,"duration":13194,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"33683276706c6664","name":"webpack-compilation-chunk-graph","id":"3337647763623969","timestamp":98309460044,"duration":380,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"33683276706c6664","name":"webpack-compilation-optimize-modules","id":"69653271376e6665","timestamp":98309460454,"duration":7,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"33683276706c6664","name":"webpack-compilation-optimize-chunks","id":"6f7363753335716d","timestamp":98309460479,"duration":40,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"33683276706c6664","name":"webpack-compilation-optimize-tree","id":"336172706b616876","timestamp":98309460558,"duration":8,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"33683276706c6664","name":"webpack-compilation-optimize","id":"6172696373646d69","timestamp":98309460443,"duration":273,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"33683276706c6664","name":"webpack-compilation-hash","id":"616e737276623064","timestamp":98309462117,"duration":1424,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"33683276706c6664","name":"webpack-compilation-seal","id":"7976306870637869","timestamp":98309459955,"duration":4748,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"66346a3961326c37","name":"webpack-compilation","id":"33683276706c6664","timestamp":98309445888,"duration":18888,"tags":{"name":"server"}},{"traceId":"a40c92b03843b256","parentId":"66346a3961326c37","name":"emit","id":"6e337867746a3978","timestamp":98309464845,"duration":8461,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-server","id":"66346a3961326c37","timestamp":98308698013,"duration":776995,"tags":{"trigger":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Team\\team.jsx"}}] +[{"traceId":"a40c92b03843b256","parentId":"6168736b65787879","name":"add-entry","id":"6d66337478357634","timestamp":98358477306,"duration":20616,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"6168736b65787879","name":"add-entry","id":"63796b7369346b6e","timestamp":98358477713,"duration":23589,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=private-next-pages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"6168736b65787879","name":"add-entry","id":"7577636c39373868","timestamp":98358477693,"duration":24106,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"6168736b65787879","name":"add-entry","id":"706d357561647267","timestamp":98358477623,"duration":25549,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"}},{"traceId":"a40c92b03843b256","parentId":"6168736b65787879","name":"add-entry","id":"716e6f33706a6537","timestamp":98358477673,"duration":28541,"tags":{"request":"next-client-pages-loader?page=%2F_app&absolutePagePath=private-next-pages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"6534727373716169","name":"read-resource","id":"3971333931336132","timestamp":98358488748,"duration":17974,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"736f6c317a7a7537","name":"get-options","id":"636e6833776e3630","timestamp":98358506809,"duration":8,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"686677746b317365","name":"babel-turbo-get-config","id":"6b75787630756371","timestamp":98358506826,"duration":36,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"686677746b317365","name":"babel-turbo-normalize-file","id":"3177376968616c30","timestamp":98358506867,"duration":19366,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6162776b32677732","name":"babel-turbo-traverse","id":"36776c6476753070","timestamp":98358527442,"duration":415390,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"686677746b317365","name":"babel-turbo-transform","id":"6162776b32677732","timestamp":98358526283,"duration":416581,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"686677746b317365","name":"babel-turbo-generate","id":"7130706967306b36","timestamp":98358942895,"duration":43479,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"736f6c317a7a7537","name":"next-babel-turbo-transform","id":"686677746b317365","timestamp":98358506822,"duration":479572,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6534727373716169","name":"next-babel-turbo-loader","id":"736f6c317a7a7537","timestamp":98358506798,"duration":479654,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6168736b65787879","name":"build-module-jsx","id":"6534727373716169","timestamp":98358488481,"duration":520270,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Team\\team.jsx"}},{"traceId":"a40c92b03843b256","parentId":"6168736b65787879","name":"add-entry","id":"3561657963317a70","timestamp":98358477654,"duration":559550,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"6168736b65787879","name":"add-entry","id":"76726938616e6d38","timestamp":98358477738,"duration":559959,"tags":{"request":"next-client-pages-loader?page=%2Fabout&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cabout%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"6168736b65787879","name":"add-entry","id":"6c7a667232346472","timestamp":98358477727,"duration":559989,"tags":{"request":"next-client-pages-loader?page=%2F&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"7732653774687572","name":"make","id":"713933346a653035","timestamp":98358472311,"duration":565449,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6168736b65787879","name":"webpack-compilation-chunk-graph","id":"7a6c67706f346475","timestamp":98359044864,"duration":8961,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6168736b65787879","name":"webpack-compilation-optimize-modules","id":"326b676e67793930","timestamp":98359054043,"duration":29,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6168736b65787879","name":"webpack-compilation-optimize-chunks","id":"7773397474727830","timestamp":98359054102,"duration":180,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6168736b65787879","name":"webpack-compilation-optimize-tree","id":"347833653470756b","timestamp":98359054342,"duration":13,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6168736b65787879","name":"webpack-compilation-optimize","id":"647a6b7176693775","timestamp":98359054005,"duration":1449,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6168736b65787879","name":"webpack-compilation-hash","id":"793239683771396c","timestamp":98359100717,"duration":8367,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6168736b65787879","name":"NextJsBuildManifest-generateClientManifest","id":"65766b36626c6573","timestamp":98359127703,"duration":297,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6168736b65787879","name":"NextJsBuildManifest-createassets","id":"6237766f6c397a67","timestamp":98359127497,"duration":527,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6168736b65787879","name":"webpack-compilation-seal","id":"61346d7662347338","timestamp":98359041892,"duration":89337,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7732653774687572","name":"webpack-compilation","id":"6168736b65787879","timestamp":98358471744,"duration":659591,"tags":{"name":"client"}},{"traceId":"a40c92b03843b256","parentId":"7732653774687572","name":"emit","id":"3864687867356539","timestamp":98359131423,"duration":86739,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-client","id":"7732653774687572","timestamp":98358460575,"duration":761760,"tags":{"trigger":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Team\\team.jsx"}}] +[{"traceId":"a40c92b03843b256","parentId":"61657a32716a3136","name":"add-entry","id":"7633656c73383369","timestamp":98442688182,"duration":38197,"tags":{"request":"next-client-pages-loader?page=%2F_app&absolutePagePath=private-next-pages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"7875766331723272","name":"read-resource","id":"71707267776b6369","timestamp":98442710089,"duration":16889,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7070326131697a6d","name":"get-options","id":"6d6b716365693463","timestamp":98442727112,"duration":12,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"393936363372336d","name":"babel-turbo-get-config","id":"36706d3032627836","timestamp":98442727138,"duration":47,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"393936363372336d","name":"babel-turbo-normalize-file","id":"6a76746e766e7a77","timestamp":98442727191,"duration":38460,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"626b786166723561","name":"babel-turbo-traverse","id":"693734326d357773","timestamp":98442766767,"duration":392941,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"393936363372336d","name":"babel-turbo-transform","id":"626b786166723561","timestamp":98442765697,"duration":394035,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"393936363372336d","name":"babel-turbo-generate","id":"68333373666a6964","timestamp":98443159763,"duration":19561,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7070326131697a6d","name":"next-babel-turbo-transform","id":"393936363372336d","timestamp":98442727131,"duration":452208,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7875766331723272","name":"next-babel-turbo-loader","id":"7070326131697a6d","timestamp":98442727102,"duration":452274,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"61657a32716a3136","name":"build-module-jsx","id":"7875766331723272","timestamp":98442709554,"duration":483372,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Team\\team.jsx"}},{"traceId":"a40c92b03843b256","parentId":"61657a32716a3136","name":"add-entry","id":"6239326165623462","timestamp":98442687901,"duration":505358,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"61657a32716a3136","name":"add-entry","id":"6d756c366266326d","timestamp":98442688222,"duration":508109,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=private-next-pages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"61657a32716a3136","name":"add-entry","id":"6e7475656779666d","timestamp":98442688200,"duration":509227,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"61657a32716a3136","name":"add-entry","id":"79386f6b3372796f","timestamp":98442688128,"duration":515260,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"}},{"traceId":"a40c92b03843b256","parentId":"61657a32716a3136","name":"add-entry","id":"7674653368717664","timestamp":98442688156,"duration":522591,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"61657a32716a3136","name":"add-entry","id":"617a796934683934","timestamp":98442688241,"duration":523410,"tags":{"request":"next-client-pages-loader?page=%2F&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"61657a32716a3136","name":"add-entry","id":"3238686b68633373","timestamp":98442688259,"duration":525104,"tags":{"request":"next-client-pages-loader?page=%2Fabout&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cabout%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"6b6e6e336764386b","name":"make","id":"7a3566656166676b","timestamp":98442686779,"duration":526640,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"61657a32716a3136","name":"webpack-compilation-chunk-graph","id":"776e787876763078","timestamp":98443218247,"duration":9356,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"61657a32716a3136","name":"webpack-compilation-optimize-modules","id":"397668696b6d6865","timestamp":98443227756,"duration":30,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"61657a32716a3136","name":"webpack-compilation-optimize-chunks","id":"7536376277686531","timestamp":98443227817,"duration":145,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"61657a32716a3136","name":"webpack-compilation-optimize-tree","id":"7763626a74633568","timestamp":98443228020,"duration":14,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"61657a32716a3136","name":"webpack-compilation-optimize","id":"33746c6d6b623078","timestamp":98443227672,"duration":1393,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"61657a32716a3136","name":"webpack-compilation-hash","id":"3479626473716361","timestamp":98443245756,"duration":13295,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"61657a32716a3136","name":"NextJsBuildManifest-generateClientManifest","id":"72386c3069313537","timestamp":98443282668,"duration":196,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"61657a32716a3136","name":"NextJsBuildManifest-createassets","id":"706e756633626731","timestamp":98443282503,"duration":380,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"61657a32716a3136","name":"webpack-compilation-seal","id":"6479646e31646b37","timestamp":98443215433,"duration":69490,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b6e6e336764386b","name":"webpack-compilation","id":"61657a32716a3136","timestamp":98442685980,"duration":599009,"tags":{"name":"client"}},{"traceId":"a40c92b03843b256","parentId":"6b6e6e336764386b","name":"emit","id":"636563373161337a","timestamp":98443285042,"duration":67246,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-client","id":"6b6e6e336764386b","timestamp":98442661385,"duration":693802,"tags":{"trigger":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Team\\team.jsx"}}] +[{"traceId":"a40c92b03843b256","parentId":"627a793767373568","name":"add-entry","id":"6f3775796e716c38","timestamp":98666458656,"duration":23805,"tags":{"request":"next-client-pages-loader?page=%2F_app&absolutePagePath=private-next-pages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"7263696f736d6272","name":"read-resource","id":"69696d70686e3575","timestamp":98666472914,"duration":9946,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d6c316637383575","name":"get-options","id":"70706667746c6762","timestamp":98666482957,"duration":9,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d38717568727931","name":"babel-turbo-get-config","id":"3561393362763868","timestamp":98666482975,"duration":36,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d38717568727931","name":"babel-turbo-normalize-file","id":"6b726c7a67396d6a","timestamp":98666483014,"duration":28937,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"35646d6238773532","name":"babel-turbo-traverse","id":"647377317a376a71","timestamp":98666513212,"duration":409954,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d38717568727931","name":"babel-turbo-transform","id":"35646d6238773532","timestamp":98666512003,"duration":411187,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d38717568727931","name":"babel-turbo-generate","id":"6d696971786c6f65","timestamp":98666923215,"duration":20732,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d6c316637383575","name":"next-babel-turbo-transform","id":"6d38717568727931","timestamp":98666482971,"duration":460995,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7263696f736d6272","name":"next-babel-turbo-loader","id":"6d6c316637383575","timestamp":98666482949,"duration":461065,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"627a793767373568","name":"build-module-jsx","id":"7263696f736d6272","timestamp":98666472512,"duration":490953,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Team\\team.jsx"}},{"traceId":"a40c92b03843b256","parentId":"627a793767373568","name":"add-entry","id":"6e61336361377566","timestamp":98666458426,"duration":505378,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"627a793767373568","name":"add-entry","id":"7268773430726c72","timestamp":98666458686,"duration":508679,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=private-next-pages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"627a793767373568","name":"add-entry","id":"6477776b71666472","timestamp":98666458671,"duration":510381,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"627a793767373568","name":"add-entry","id":"397236386b6c6839","timestamp":98666458624,"duration":517499,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"}},{"traceId":"a40c92b03843b256","parentId":"627a793767373568","name":"add-entry","id":"7833376e73676c78","timestamp":98666458643,"duration":531064,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"627a793767373568","name":"add-entry","id":"30736d6b766b7571","timestamp":98666458700,"duration":531455,"tags":{"request":"next-client-pages-loader?page=%2F&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"627a793767373568","name":"add-entry","id":"7039646e6d686171","timestamp":98666458712,"duration":533032,"tags":{"request":"next-client-pages-loader?page=%2Fabout&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cabout%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"6c35776965337174","name":"make","id":"63377a3978616179","timestamp":98666453056,"duration":538753,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"627a793767373568","name":"webpack-compilation-chunk-graph","id":"7a7a666f72323770","timestamp":98666996475,"duration":12485,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"627a793767373568","name":"webpack-compilation-optimize-modules","id":"736336666b376433","timestamp":98667009068,"duration":27,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"627a793767373568","name":"webpack-compilation-optimize-chunks","id":"6235393231346435","timestamp":98667009193,"duration":131,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"627a793767373568","name":"webpack-compilation-optimize-tree","id":"6e6c77797275737a","timestamp":98667009378,"duration":10,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"627a793767373568","name":"webpack-compilation-optimize","id":"3539617772367765","timestamp":98667009040,"duration":1411,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"627a793767373568","name":"webpack-compilation-hash","id":"7639793663653374","timestamp":98667029605,"duration":10902,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"627a793767373568","name":"NextJsBuildManifest-generateClientManifest","id":"3766356d7a68796a","timestamp":98667067602,"duration":248,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"627a793767373568","name":"NextJsBuildManifest-createassets","id":"366d6c763678636d","timestamp":98667067403,"duration":472,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"627a793767373568","name":"webpack-compilation-seal","id":"7233656633726770","timestamp":98666994850,"duration":78741,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c35776965337174","name":"webpack-compilation","id":"627a793767373568","timestamp":98666452393,"duration":621282,"tags":{"name":"client"}},{"traceId":"a40c92b03843b256","parentId":"6c35776965337174","name":"emit","id":"6b653672316d3679","timestamp":98667073748,"duration":75181,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-client","id":"6c35776965337174","timestamp":98666433027,"duration":720792,"tags":{"trigger":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Team\\team.jsx"}}] +[{"traceId":"a40c92b03843b256","parentId":"6f72637171643469","name":"add-entry","id":"3168697062703165","timestamp":98711938219,"duration":12585,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"6f72637171643469","name":"add-entry","id":"6c62777433753876","timestamp":98711938403,"duration":14554,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=private-next-pages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"6f72637171643469","name":"add-entry","id":"3239363536756f37","timestamp":98711938392,"duration":14991,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"6f72637171643469","name":"add-entry","id":"69686d7374736e61","timestamp":98711938361,"duration":17890,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"}},{"traceId":"a40c92b03843b256","parentId":"6f72637171643469","name":"add-entry","id":"337a7267696c3063","timestamp":98711938382,"duration":19711,"tags":{"request":"next-client-pages-loader?page=%2F_app&absolutePagePath=private-next-pages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"706b723734703970","name":"read-resource","id":"6539627736666835","timestamp":98711945159,"duration":15278,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7769366f32736c35","name":"get-options","id":"396c377971337768","timestamp":98711960564,"duration":12,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6362703739646c74","name":"babel-turbo-get-config","id":"61316175396c7673","timestamp":98711960590,"duration":52,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6362703739646c74","name":"babel-turbo-normalize-file","id":"3368366831636465","timestamp":98711960648,"duration":22143,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3131787537657469","name":"babel-turbo-traverse","id":"726738763034786c","timestamp":98711984040,"duration":416584,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6362703739646c74","name":"babel-turbo-transform","id":"3131787537657469","timestamp":98711982859,"duration":417793,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6362703739646c74","name":"babel-turbo-generate","id":"3071756831366239","timestamp":98712400677,"duration":23470,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7769366f32736c35","name":"next-babel-turbo-transform","id":"6362703739646c74","timestamp":98711960584,"duration":463586,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"706b723734703970","name":"next-babel-turbo-loader","id":"7769366f32736c35","timestamp":98711960552,"duration":463678,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f72637171643469","name":"build-module-jsx","id":"706b723734703970","timestamp":98711944877,"duration":494701,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Team\\team.jsx"}},{"traceId":"a40c92b03843b256","parentId":"6f72637171643469","name":"add-entry","id":"333530707437756d","timestamp":98711938373,"duration":509340,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"6f72637171643469","name":"add-entry","id":"73636f376634756b","timestamp":98711938411,"duration":510222,"tags":{"request":"next-client-pages-loader?page=%2Fabout&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cabout%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"6f72637171643469","name":"add-entry","id":"616e796e3334356c","timestamp":98711938420,"duration":510286,"tags":{"request":"next-client-pages-loader?page=%2F&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"7769387a68353239","name":"make","id":"3239373938356866","timestamp":98711937425,"duration":511308,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f72637171643469","name":"webpack-compilation-chunk-graph","id":"727a613868783669","timestamp":98712451552,"duration":4907,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f72637171643469","name":"webpack-compilation-optimize-modules","id":"6e3463716a703677","timestamp":98712456535,"duration":22,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f72637171643469","name":"webpack-compilation-optimize-chunks","id":"75396e6865337878","timestamp":98712456628,"duration":106,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f72637171643469","name":"webpack-compilation-optimize-tree","id":"726a6d3775346775","timestamp":98712456779,"duration":8,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f72637171643469","name":"webpack-compilation-optimize","id":"646c756269703934","timestamp":98712456512,"duration":1304,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f72637171643469","name":"webpack-compilation-hash","id":"686b7576766e6430","timestamp":98712471853,"duration":6150,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f72637171643469","name":"NextJsBuildManifest-generateClientManifest","id":"64386c343467356c","timestamp":98712493827,"duration":175,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f72637171643469","name":"NextJsBuildManifest-createassets","id":"707836706d766d77","timestamp":98712493687,"duration":333,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f72637171643469","name":"webpack-compilation-seal","id":"6269303338783234","timestamp":98712450448,"duration":48896,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7769387a68353239","name":"webpack-compilation","id":"6f72637171643469","timestamp":98711936981,"duration":562446,"tags":{"name":"client"}},{"traceId":"a40c92b03843b256","parentId":"7769387a68353239","name":"emit","id":"63316d6976623769","timestamp":98712499497,"duration":66384,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-client","id":"7769387a68353239","timestamp":98711916510,"duration":651511,"tags":{"trigger":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Team\\team.jsx"}}] +[{"traceId":"a40c92b03843b256","parentId":"6b77733769713566","name":"add-entry","id":"6930726f716e7630","timestamp":98936891069,"duration":32600,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"6b77733769713566","name":"add-entry","id":"3633767668726e78","timestamp":98936891255,"duration":33563,"tags":{"request":"next-client-pages-loader?page=%2F_app&absolutePagePath=private-next-pages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"75397665676d7339","name":"read-resource","id":"373434633937316a","timestamp":98936912196,"duration":12997,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a39647768356973","name":"get-options","id":"7168326367326979","timestamp":98936925374,"duration":16,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a766d70736c3178","name":"babel-turbo-get-config","id":"6c7833776b666b77","timestamp":98936925405,"duration":59,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a766d70736c3178","name":"babel-turbo-normalize-file","id":"366b7678356b657a","timestamp":98936925470,"duration":33965,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"316d7a3734386d77","name":"babel-turbo-traverse","id":"7135776674396530","timestamp":98936960637,"duration":471145,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a766d70736c3178","name":"babel-turbo-transform","id":"316d7a3734386d77","timestamp":98936959483,"duration":472461,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a766d70736c3178","name":"babel-turbo-generate","id":"357534687a6e7877","timestamp":98937431969,"duration":23733,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a39647768356973","name":"next-babel-turbo-transform","id":"6a766d70736c3178","timestamp":98936925398,"duration":530322,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"75397665676d7339","name":"next-babel-turbo-loader","id":"7a39647768356973","timestamp":98936925363,"duration":530399,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b77733769713566","name":"build-module-jsx","id":"75397665676d7339","timestamp":98936911824,"duration":557691,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Team\\team.jsx"}},{"traceId":"a40c92b03843b256","parentId":"6b77733769713566","name":"add-entry","id":"646e74767330616b","timestamp":98936891282,"duration":587335,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=private-next-pages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"6b77733769713566","name":"add-entry","id":"7966306e777a6b37","timestamp":98936891268,"duration":588299,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"6b77733769713566","name":"add-entry","id":"706538316b696b6d","timestamp":98936891229,"duration":598015,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"}},{"traceId":"a40c92b03843b256","parentId":"6b77733769713566","name":"add-entry","id":"65383166716c3562","timestamp":98936891242,"duration":604704,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"6b77733769713566","name":"add-entry","id":"737071676f6f3637","timestamp":98936891305,"duration":605991,"tags":{"request":"next-client-pages-loader?page=%2F&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"6b77733769713566","name":"add-entry","id":"3775726237736537","timestamp":98936891291,"duration":607423,"tags":{"request":"next-client-pages-loader?page=%2Fabout&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cabout%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"676636697970616b","name":"make","id":"7579646b69767972","timestamp":98936890087,"duration":608786,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b77733769713566","name":"webpack-compilation-chunk-graph","id":"6537367431633638","timestamp":98937504093,"duration":4839,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b77733769713566","name":"webpack-compilation-optimize-modules","id":"6963333237313331","timestamp":98937509010,"duration":24,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b77733769713566","name":"webpack-compilation-optimize-chunks","id":"7a70796571657031","timestamp":98937509060,"duration":104,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b77733769713566","name":"webpack-compilation-optimize-tree","id":"646a697735686563","timestamp":98937509259,"duration":10,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b77733769713566","name":"webpack-compilation-optimize","id":"6163627330767131","timestamp":98937508985,"duration":1137,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b77733769713566","name":"webpack-compilation-hash","id":"3676676170636663","timestamp":98937530857,"duration":11510,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b77733769713566","name":"NextJsBuildManifest-generateClientManifest","id":"7134356d367a7769","timestamp":98937562306,"duration":229,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b77733769713566","name":"NextJsBuildManifest-createassets","id":"6f3439627863636e","timestamp":98937562071,"duration":482,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b77733769713566","name":"webpack-compilation-seal","id":"38386c7630613970","timestamp":98937503029,"duration":66737,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"676636697970616b","name":"webpack-compilation","id":"6b77733769713566","timestamp":98936889545,"duration":680305,"tags":{"name":"client"}},{"traceId":"a40c92b03843b256","parentId":"676636697970616b","name":"emit","id":"646e6c32347a6a72","timestamp":98937569924,"duration":47894,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-client","id":"676636697970616b","timestamp":98936868769,"duration":751585,"tags":{"trigger":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Team\\team.jsx"}}] +[{"traceId":"a40c92b03843b256","parentId":"666a663934307963","name":"add-entry","id":"33703863306b377a","timestamp":98945500320,"duration":9465,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"666a663934307963","name":"add-entry","id":"61737a357770626e","timestamp":98945500609,"duration":10594,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=private-next-pages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"666a663934307963","name":"add-entry","id":"686e356861617567","timestamp":98945500594,"duration":10930,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"666a663934307963","name":"add-entry","id":"743535786b357276","timestamp":98945500534,"duration":11886,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"}},{"traceId":"a40c92b03843b256","parentId":"666a663934307963","name":"add-entry","id":"396c746b6b6f3465","timestamp":98945500580,"duration":14178,"tags":{"request":"next-client-pages-loader?page=%2F_app&absolutePagePath=private-next-pages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"666a663934307963","name":"add-entry","id":"6a78376a686b7634","timestamp":98945500566,"duration":23988,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"666a663934307963","name":"add-entry","id":"736e353562686837","timestamp":98945500622,"duration":24626,"tags":{"request":"next-client-pages-loader?page=%2Fabout&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cabout%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"666a663934307963","name":"add-entry","id":"7931376a73647a38","timestamp":98945500633,"duration":24680,"tags":{"request":"next-client-pages-loader?page=%2F&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"76696c666b6c6839","name":"make","id":"3235313877786d32","timestamp":98945499571,"duration":25825,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"666a663934307963","name":"webpack-compilation-chunk-graph","id":"6e7372396b6d7038","timestamp":98945527880,"duration":6219,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"666a663934307963","name":"webpack-compilation-optimize-modules","id":"756269386f687766","timestamp":98945534207,"duration":27,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"666a663934307963","name":"webpack-compilation-optimize-chunks","id":"736e6d7561366572","timestamp":98945534261,"duration":225,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"666a663934307963","name":"webpack-compilation-optimize-tree","id":"346a316972676f35","timestamp":98945534543,"duration":180,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"666a663934307963","name":"webpack-compilation-optimize","id":"75327835686a716a","timestamp":98945534181,"duration":1392,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"666a663934307963","name":"webpack-compilation-hash","id":"6e37636332737434","timestamp":98945566997,"duration":6228,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"666a663934307963","name":"NextJsBuildManifest-generateClientManifest","id":"7432667838653564","timestamp":98945574432,"duration":104,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"666a663934307963","name":"NextJsBuildManifest-createassets","id":"647a72316f707933","timestamp":98945574328,"duration":223,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"666a663934307963","name":"webpack-compilation-seal","id":"636f38337366746f","timestamp":98945526568,"duration":48981,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76696c666b6c6839","name":"webpack-compilation","id":"666a663934307963","timestamp":98945498935,"duration":76666,"tags":{"name":"client"}},{"traceId":"a40c92b03843b256","parentId":"76696c666b6c6839","name":"emit","id":"3274613171317970","timestamp":98945575648,"duration":38575,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-client","id":"76696c666b6c6839","timestamp":98945493824,"duration":124487,"tags":{"trigger":"manual"}},{"traceId":"a40c92b03843b256","parentId":"6e6f70373235616c","name":"add-entry","id":"736f687377333734","timestamp":98945641843,"duration":13074,"tags":{"request":"private-next-pages/_error"}},{"traceId":"a40c92b03843b256","parentId":"6e6f70373235616c","name":"add-entry","id":"3537743637313868","timestamp":98945641652,"duration":14121,"tags":{"request":"private-next-pages/_app"}},{"traceId":"a40c92b03843b256","parentId":"6e6f70373235616c","name":"add-entry","id":"74796e62306e6670","timestamp":98945641776,"duration":14029,"tags":{"request":"private-next-pages/_document"}},{"traceId":"a40c92b03843b256","parentId":"676d6b3465797a31","name":"read-resource","id":"6d78706471786a69","timestamp":98945656862,"duration":9097,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a67626271306833","name":"get-options","id":"666d326b79337276","timestamp":98945666106,"duration":8,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7739356878367a6d","name":"babel-turbo-get-config","id":"376b6273626b6c77","timestamp":98945666126,"duration":53,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7739356878367a6d","name":"babel-turbo-normalize-file","id":"6c35357762727a70","timestamp":98945666187,"duration":27085,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6162653130326166","name":"babel-turbo-traverse","id":"6130737073637a30","timestamp":98945697172,"duration":270775,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7739356878367a6d","name":"babel-turbo-transform","id":"6162653130326166","timestamp":98945693329,"duration":274668,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7739356878367a6d","name":"babel-turbo-generate","id":"6c653331686a6967","timestamp":98945968046,"duration":20119,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a67626271306833","name":"next-babel-turbo-transform","id":"7739356878367a6d","timestamp":98945666120,"duration":322062,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"676d6b3465797a31","name":"next-babel-turbo-loader","id":"6a67626271306833","timestamp":98945666097,"duration":322128,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e6f70373235616c","name":"build-module-jsx","id":"676d6b3465797a31","timestamp":98945656401,"duration":343320,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Team\\team.jsx"}},{"traceId":"a40c92b03843b256","parentId":"6e6f70373235616c","name":"add-entry","id":"39336478367a3765","timestamp":98945641861,"duration":363532,"tags":{"request":"./src\\pages\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"6b3562786b72656d","name":"make","id":"6375616a776c6c69","timestamp":98945624282,"duration":381147,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e6f70373235616c","name":"webpack-compilation-chunk-graph","id":"74776b336f797767","timestamp":98946007275,"duration":2057,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e6f70373235616c","name":"webpack-compilation-optimize-modules","id":"7a346b6436663869","timestamp":98946009407,"duration":8,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e6f70373235616c","name":"webpack-compilation-optimize-chunks","id":"6431797a63736b64","timestamp":98946009438,"duration":68,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e6f70373235616c","name":"webpack-compilation-optimize-tree","id":"7736763634747a77","timestamp":98946009569,"duration":10,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e6f70373235616c","name":"webpack-compilation-optimize","id":"776a79616d6f6879","timestamp":98946009382,"duration":454,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e6f70373235616c","name":"webpack-compilation-hash","id":"7064667938787978","timestamp":98946019271,"duration":2989,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e6f70373235616c","name":"webpack-compilation-seal","id":"7070386e67707078","timestamp":98946007047,"duration":27262,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b3562786b72656d","name":"webpack-compilation","id":"6e6f70373235616c","timestamp":98945623469,"duration":410914,"tags":{"name":"server"}},{"traceId":"a40c92b03843b256","parentId":"6b3562786b72656d","name":"emit","id":"6373327973347339","timestamp":98946034449,"duration":15657,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-server","id":"6b3562786b72656d","timestamp":98945494824,"duration":558053,"tags":{"trigger":"manual"}}] +[{"traceId":"a40c92b03843b256","parentId":"69356f697971316f","name":"add-entry","id":"7379653566367a6d","timestamp":98998609254,"duration":15768,"tags":{"request":"private-next-pages/_error"}},{"traceId":"a40c92b03843b256","parentId":"69356f697971316f","name":"add-entry","id":"6666616e71676662","timestamp":98998608986,"duration":16266,"tags":{"request":"private-next-pages/_app"}},{"traceId":"a40c92b03843b256","parentId":"69356f697971316f","name":"add-entry","id":"3367633575693064","timestamp":98998609227,"duration":16047,"tags":{"request":"private-next-pages/_document"}},{"traceId":"a40c92b03843b256","parentId":"3731716763617837","name":"make","id":"776a66366639327a","timestamp":98998608365,"duration":16963,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69356f697971316f","name":"webpack-compilation-chunk-graph","id":"78637970766a6836","timestamp":98998626063,"duration":599,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69356f697971316f","name":"webpack-compilation-optimize-modules","id":"367832766c716d31","timestamp":98998626724,"duration":11,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69356f697971316f","name":"webpack-compilation-optimize-chunks","id":"3537747174646f73","timestamp":98998626837,"duration":66,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69356f697971316f","name":"webpack-compilation-optimize-tree","id":"70696f697a713465","timestamp":98998626948,"duration":15,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69356f697971316f","name":"webpack-compilation-optimize","id":"36656c3467763774","timestamp":98998626703,"duration":505,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69356f697971316f","name":"webpack-compilation-hash","id":"6e34753470686a36","timestamp":98998635959,"duration":5079,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"69356f697971316f","name":"webpack-compilation-seal","id":"7536786d79777861","timestamp":98998625880,"duration":16598,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3731716763617837","name":"webpack-compilation","id":"69356f697971316f","timestamp":98998607435,"duration":35116,"tags":{"name":"server"}},{"traceId":"a40c92b03843b256","parentId":"3731716763617837","name":"emit","id":"323964386f723962","timestamp":98998642615,"duration":10051,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-server","id":"3731716763617837","timestamp":98998586510,"duration":67533,"tags":{"trigger":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Team\\team.jsx"}},{"traceId":"a40c92b03843b256","parentId":"3367317467656d7a","name":"add-entry","id":"7a79317568706977","timestamp":98998662081,"duration":27503,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"3076686d6e6c7262","name":"read-resource","id":"6d37396b796d6971","timestamp":98998676951,"duration":12844,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"756b73376e713038","name":"get-options","id":"347269707264387a","timestamp":98998689907,"duration":11,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"796f6e637166396c","name":"babel-turbo-get-config","id":"346f79366c676a61","timestamp":98998689927,"duration":37,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"796f6e637166396c","name":"babel-turbo-normalize-file","id":"61766377716f627a","timestamp":98998689968,"duration":50913,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7139666575653167","name":"babel-turbo-traverse","id":"646d796b6967646b","timestamp":98998742213,"duration":514018,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"796f6e637166396c","name":"babel-turbo-transform","id":"7139666575653167","timestamp":98998740930,"duration":515325,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"796f6e637166396c","name":"babel-turbo-generate","id":"6a61773533686c6e","timestamp":98999256284,"duration":54972,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"756b73376e713038","name":"next-babel-turbo-transform","id":"796f6e637166396c","timestamp":98998689923,"duration":621353,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3076686d6e6c7262","name":"next-babel-turbo-loader","id":"756b73376e713038","timestamp":98998689899,"duration":621492,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3367317467656d7a","name":"build-module-jsx","id":"3076686d6e6c7262","timestamp":98998676533,"duration":670237,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Team\\team.jsx"}},{"traceId":"a40c92b03843b256","parentId":"3367317467656d7a","name":"add-entry","id":"3066633967336269","timestamp":98998662189,"duration":685915,"tags":{"request":"next-client-pages-loader?page=%2F_app&absolutePagePath=private-next-pages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"3367317467656d7a","name":"add-entry","id":"3068796939686339","timestamp":98998662208,"duration":693232,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=private-next-pages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"3367317467656d7a","name":"add-entry","id":"696167783438336d","timestamp":98998662198,"duration":693734,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"3367317467656d7a","name":"add-entry","id":"6d343135306e6a67","timestamp":98998662168,"duration":698548,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"}},{"traceId":"a40c92b03843b256","parentId":"3367317467656d7a","name":"add-entry","id":"3532776461693236","timestamp":98998662179,"duration":707031,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"3367317467656d7a","name":"add-entry","id":"73656f3175673271","timestamp":98998662226,"duration":708696,"tags":{"request":"next-client-pages-loader?page=%2F&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"3367317467656d7a","name":"add-entry","id":"7561646c34796162","timestamp":98998662217,"duration":709872,"tags":{"request":"next-client-pages-loader?page=%2Fabout&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cabout%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"6b30686a6d6c306d","name":"make","id":"777470666a35636d","timestamp":98998658375,"duration":713770,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3367317467656d7a","name":"webpack-compilation-chunk-graph","id":"6d327879736c7879","timestamp":98999374741,"duration":6191,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3367317467656d7a","name":"webpack-compilation-optimize-modules","id":"7476746534657269","timestamp":98999381016,"duration":29,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3367317467656d7a","name":"webpack-compilation-optimize-chunks","id":"746e683333733879","timestamp":98999381068,"duration":126,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3367317467656d7a","name":"webpack-compilation-optimize-tree","id":"6c6a6f6c687a7774","timestamp":98999381246,"duration":10,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3367317467656d7a","name":"webpack-compilation-optimize","id":"6b71656a326f7362","timestamp":98999380993,"duration":1473,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3367317467656d7a","name":"webpack-compilation-hash","id":"6a66656670326637","timestamp":98999408009,"duration":9156,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3367317467656d7a","name":"NextJsBuildManifest-generateClientManifest","id":"693361716176666a","timestamp":98999433467,"duration":214,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3367317467656d7a","name":"NextJsBuildManifest-createassets","id":"70356d623734776d","timestamp":98999433290,"duration":415,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3367317467656d7a","name":"webpack-compilation-seal","id":"31677a3579326c6f","timestamp":98999373886,"duration":70078,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b30686a6d6c306d","name":"webpack-compilation","id":"3367317467656d7a","timestamp":98998657913,"duration":786154,"tags":{"name":"client"}},{"traceId":"a40c92b03843b256","parentId":"6b30686a6d6c306d","name":"emit","id":"3878616c6c636d37","timestamp":98999444164,"duration":65925,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-client","id":"6b30686a6d6c306d","timestamp":98998588672,"duration":930414,"tags":{"trigger":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Team\\team.jsx"}}] +[{"traceId":"a40c92b03843b256","parentId":"677a686974637463","name":"add-entry","id":"6a6d367574376b6c","timestamp":99149262740,"duration":50263,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"626a35356b677868","name":"read-resource","id":"79703674386d6230","timestamp":99149287922,"duration":25426,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6178727237646a6e","name":"get-options","id":"6637676a786d7778","timestamp":99149313485,"duration":12,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"763875396e627971","name":"babel-turbo-get-config","id":"7670646738786c6c","timestamp":99149313509,"duration":39,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"763875396e627971","name":"babel-turbo-normalize-file","id":"706170336963736e","timestamp":99149313553,"duration":12593,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7339316873386674","name":"babel-turbo-traverse","id":"7775756972323235","timestamp":99149327053,"duration":85824,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"763875396e627971","name":"babel-turbo-transform","id":"7339316873386674","timestamp":99149326195,"duration":86736,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"763875396e627971","name":"babel-turbo-generate","id":"726b676770753067","timestamp":99149412961,"duration":8012,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6178727237646a6e","name":"next-babel-turbo-transform","id":"763875396e627971","timestamp":99149313503,"duration":107484,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"626a35356b677868","name":"next-babel-turbo-loader","id":"6178727237646a6e","timestamp":99149313470,"duration":107555,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"677a686974637463","name":"build-module-jsx","id":"626a35356b677868","timestamp":99149287109,"duration":142193,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Services\\services.jsx"}},{"traceId":"a40c92b03843b256","parentId":"677a686974637463","name":"add-entry","id":"3966696e37703365","timestamp":99149262969,"duration":167543,"tags":{"request":"next-client-pages-loader?page=%2F_app&absolutePagePath=private-next-pages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"677a686974637463","name":"add-entry","id":"6c64696432793974","timestamp":99149262992,"duration":173937,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=private-next-pages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"677a686974637463","name":"add-entry","id":"7538786f7a76746a","timestamp":99149262979,"duration":174451,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"677a686974637463","name":"add-entry","id":"353865733973656e","timestamp":99149262944,"duration":229645,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"}},{"traceId":"a40c92b03843b256","parentId":"677a686974637463","name":"add-entry","id":"6568337036657778","timestamp":99149262958,"duration":341471,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"677a686974637463","name":"add-entry","id":"3979777671373230","timestamp":99149263001,"duration":372455,"tags":{"request":"next-client-pages-loader?page=%2F&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"677a686974637463","name":"add-entry","id":"7275716e697a6261","timestamp":99149263009,"duration":373000,"tags":{"request":"next-client-pages-loader?page=%2Fabout&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cabout%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"726f323070373163","name":"make","id":"356d776137683279","timestamp":99149261579,"duration":374471,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"677a686974637463","name":"webpack-compilation-chunk-graph","id":"3876707a346b3236","timestamp":99149638815,"duration":7469,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"677a686974637463","name":"webpack-compilation-optimize-modules","id":"66746e6e6c767135","timestamp":99149646547,"duration":28,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"677a686974637463","name":"webpack-compilation-optimize-chunks","id":"6434797478786b36","timestamp":99149646599,"duration":120,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"677a686974637463","name":"webpack-compilation-optimize-tree","id":"616e62613463757a","timestamp":99149646774,"duration":12,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"677a686974637463","name":"webpack-compilation-optimize","id":"32347773396d396c","timestamp":99149646519,"duration":1231,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"677a686974637463","name":"webpack-compilation-hash","id":"723070687a6e6d69","timestamp":99149663995,"duration":8011,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"677a686974637463","name":"NextJsBuildManifest-generateClientManifest","id":"6933306676713167","timestamp":99149679953,"duration":341,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"677a686974637463","name":"NextJsBuildManifest-createassets","id":"766633763369767a","timestamp":99149679339,"duration":978,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"677a686974637463","name":"webpack-compilation-seal","id":"7379333379776d71","timestamp":99149637759,"duration":46033,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"726f323070373163","name":"webpack-compilation","id":"677a686974637463","timestamp":99149260855,"duration":423029,"tags":{"name":"client"}},{"traceId":"a40c92b03843b256","parentId":"726f323070373163","name":"emit","id":"6b693461747a7575","timestamp":99149683976,"duration":26036,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-client","id":"726f323070373163","timestamp":99149244551,"duration":468409,"tags":{"trigger":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Services\\services.jsx"}}] +[{"traceId":"a40c92b03843b256","parentId":"3731336763796636","name":"add-entry","id":"7a6f7571326a706d","timestamp":99381794301,"duration":34712,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"3731336763796636","name":"add-entry","id":"766373387a6c3374","timestamp":99381794586,"duration":41664,"tags":{"request":"next-client-pages-loader?page=%2F_app&absolutePagePath=private-next-pages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"666b7a6f6a6e746e","name":"read-resource","id":"646b7a6331376e78","timestamp":99381829925,"duration":6729,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3731336763796636","name":"build-module-json","id":"666b7a6f6a6e746e","timestamp":99381829612,"duration":8002,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\data\\app.json"}},{"traceId":"a40c92b03843b256","parentId":"3731336763796636","name":"add-entry","id":"7a646d6f636c3332","timestamp":99381794623,"duration":47833,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=private-next-pages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"3731336763796636","name":"add-entry","id":"637a6476316c6674","timestamp":99381794604,"duration":50083,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"3731336763796636","name":"add-entry","id":"65706b356e34706c","timestamp":99381794537,"duration":57021,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"}},{"traceId":"a40c92b03843b256","parentId":"3731336763796636","name":"add-entry","id":"323232316d716572","timestamp":99381794568,"duration":71164,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"3731336763796636","name":"add-entry","id":"7077316376626636","timestamp":99381794638,"duration":71694,"tags":{"request":"next-client-pages-loader?page=%2F&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"3731336763796636","name":"add-entry","id":"6d30743336396971","timestamp":99381794654,"duration":72387,"tags":{"request":"next-client-pages-loader?page=%2Fabout&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cabout%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"393176686267706e","name":"make","id":"736474326e7a6137","timestamp":99381788902,"duration":78191,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3731336763796636","name":"webpack-compilation-chunk-graph","id":"317a626c6d317864","timestamp":99381870999,"duration":8546,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3731336763796636","name":"webpack-compilation-optimize-modules","id":"7075623333797378","timestamp":99381879639,"duration":29,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3731336763796636","name":"webpack-compilation-optimize-chunks","id":"6b77317a3036616e","timestamp":99381879696,"duration":212,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3731336763796636","name":"webpack-compilation-optimize-tree","id":"7a6b336d6d366333","timestamp":99381879969,"duration":49,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3731336763796636","name":"webpack-compilation-optimize","id":"757a6e7571696777","timestamp":99381879614,"duration":1409,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3731336763796636","name":"webpack-compilation-hash","id":"7165707271366b65","timestamp":99381900754,"duration":12308,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3731336763796636","name":"NextJsBuildManifest-generateClientManifest","id":"7a34663475767374","timestamp":99381917475,"duration":167,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3731336763796636","name":"NextJsBuildManifest-createassets","id":"743578393034336a","timestamp":99381917326,"duration":334,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3731336763796636","name":"webpack-compilation-seal","id":"71707139616c7676","timestamp":99381868577,"duration":51874,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"393176686267706e","name":"webpack-compilation","id":"3731336763796636","timestamp":99381784170,"duration":136367,"tags":{"name":"client"}},{"traceId":"a40c92b03843b256","parentId":"393176686267706e","name":"emit","id":"31367579656f7476","timestamp":99381920629,"duration":17792,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-client","id":"393176686267706e","timestamp":99381760435,"duration":179252,"tags":{"trigger":"C:\\Users\\hp\\Desktop\\business-hub\\src\\data\\app.json"}},{"traceId":"a40c92b03843b256","parentId":"6d396b646676626b","name":"add-entry","id":"6765776d37677167","timestamp":99381948832,"duration":11798,"tags":{"request":"private-next-pages/_error"}},{"traceId":"a40c92b03843b256","parentId":"6d396b646676626b","name":"add-entry","id":"78796b727a6f3133","timestamp":99381948762,"duration":12598,"tags":{"request":"private-next-pages/_document"}},{"traceId":"a40c92b03843b256","parentId":"3173386b756f6433","name":"read-resource","id":"6868306170776f6b","timestamp":99381961212,"duration":763,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d396b646676626b","name":"build-module-json","id":"3173386b756f6433","timestamp":99381960879,"duration":1369,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\data\\app.json"}},{"traceId":"a40c92b03843b256","parentId":"6d396b646676626b","name":"add-entry","id":"3374766479367a67","timestamp":99381948664,"duration":13635,"tags":{"request":"private-next-pages/_app"}},{"traceId":"a40c92b03843b256","parentId":"6c6d766131707035","name":"make","id":"6c6f6a326278346c","timestamp":99381941704,"duration":20626,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d396b646676626b","name":"webpack-compilation-chunk-graph","id":"7933636532396b34","timestamp":99381962722,"duration":314,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d396b646676626b","name":"webpack-compilation-optimize-modules","id":"7a66336772613963","timestamp":99381963069,"duration":8,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d396b646676626b","name":"webpack-compilation-optimize-chunks","id":"6c6a306a706d6573","timestamp":99381963095,"duration":35,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d396b646676626b","name":"webpack-compilation-optimize-tree","id":"356f776c67303038","timestamp":99381963164,"duration":12,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d396b646676626b","name":"webpack-compilation-optimize","id":"68756a763179756b","timestamp":99381963057,"duration":243,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d396b646676626b","name":"webpack-compilation-hash","id":"76706c763979677a","timestamp":99381964859,"duration":1538,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d396b646676626b","name":"webpack-compilation-seal","id":"7770716c6c766731","timestamp":99381962632,"duration":4914,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c6d766131707035","name":"webpack-compilation","id":"6d396b646676626b","timestamp":99381941280,"duration":26318,"tags":{"name":"server"}},{"traceId":"a40c92b03843b256","parentId":"6c6d766131707035","name":"emit","id":"717573687a366167","timestamp":99381967646,"duration":9595,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-server","id":"6c6d766131707035","timestamp":99381762339,"duration":216358,"tags":{"trigger":"C:\\Users\\hp\\Desktop\\business-hub\\src\\data\\app.json"}}] +[{"traceId":"a40c92b03843b256","parentId":"6530766531776e76","name":"add-entry","id":"7639677937756e6a","timestamp":99387015727,"duration":23743,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"6530766531776e76","name":"add-entry","id":"636f6a7a37367476","timestamp":99387015926,"duration":29550,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=private-next-pages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"6530766531776e76","name":"add-entry","id":"376d79396d676b72","timestamp":99387015915,"duration":30599,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"6530766531776e76","name":"add-entry","id":"6d71693976783469","timestamp":99387015870,"duration":31925,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"}},{"traceId":"a40c92b03843b256","parentId":"6530766531776e76","name":"add-entry","id":"786d6771767a3869","timestamp":99387015904,"duration":35694,"tags":{"request":"next-client-pages-loader?page=%2F_app&absolutePagePath=private-next-pages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"6530766531776e76","name":"add-entry","id":"61376934786b7574","timestamp":99387015895,"duration":53420,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"6530766531776e76","name":"add-entry","id":"6d74676972686738","timestamp":99387015943,"duration":54938,"tags":{"request":"next-client-pages-loader?page=%2Fabout&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cabout%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"6530766531776e76","name":"add-entry","id":"3532776170666436","timestamp":99387015934,"duration":55065,"tags":{"request":"next-client-pages-loader?page=%2F&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"6964756873327833","name":"make","id":"756a70676d616c76","timestamp":99387012500,"duration":58584,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6530766531776e76","name":"webpack-compilation-chunk-graph","id":"3933376b6b707261","timestamp":99387078365,"duration":4647,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6530766531776e76","name":"webpack-compilation-optimize-modules","id":"6e6c396273777237","timestamp":99387083112,"duration":27,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6530766531776e76","name":"webpack-compilation-optimize-chunks","id":"34796e6a3577636f","timestamp":99387083167,"duration":136,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6530766531776e76","name":"webpack-compilation-optimize-tree","id":"6e6330646b336261","timestamp":99387083362,"duration":10,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6530766531776e76","name":"webpack-compilation-optimize","id":"613179616d7a3461","timestamp":99387083087,"duration":1826,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6530766531776e76","name":"webpack-compilation-hash","id":"7979767468656535","timestamp":99387099513,"duration":7575,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6530766531776e76","name":"NextJsBuildManifest-generateClientManifest","id":"6b68727730387079","timestamp":99387109716,"duration":177,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6530766531776e76","name":"NextJsBuildManifest-createassets","id":"74646f6b6f76736f","timestamp":99387109550,"duration":367,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6530766531776e76","name":"webpack-compilation-seal","id":"66366d6d366b6d38","timestamp":99387072563,"duration":38738,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6964756873327833","name":"webpack-compilation","id":"6530766531776e76","timestamp":99387011708,"duration":99659,"tags":{"name":"client"}},{"traceId":"a40c92b03843b256","parentId":"6964756873327833","name":"emit","id":"7878626939317a31","timestamp":99387111484,"duration":14401,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-client","id":"6964756873327833","timestamp":99387005851,"duration":122244,"tags":{"trigger":"manual"}},{"traceId":"a40c92b03843b256","parentId":"316c6c6a7437336b","name":"add-entry","id":"716b6c7363726b7a","timestamp":99387137761,"duration":8891,"tags":{"request":"private-next-pages/_error"}},{"traceId":"a40c92b03843b256","parentId":"316c6c6a7437336b","name":"add-entry","id":"6e616e6c65683935","timestamp":99387137639,"duration":9143,"tags":{"request":"private-next-pages/_app"}},{"traceId":"a40c92b03843b256","parentId":"316c6c6a7437336b","name":"add-entry","id":"347572647a663278","timestamp":99387137747,"duration":9050,"tags":{"request":"private-next-pages/_document"}},{"traceId":"a40c92b03843b256","parentId":"683361773436676d","name":"read-resource","id":"7369333467616a73","timestamp":99387168380,"duration":820,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"686569777038396f","name":"get-options","id":"6d32767178797632","timestamp":99387169289,"duration":9,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3773786e386c3930","name":"babel-turbo-get-config","id":"6579736163636665","timestamp":99387169307,"duration":30,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3773786e386c3930","name":"babel-turbo-normalize-file","id":"786b6c7070377a69","timestamp":99387169342,"duration":9035,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"746738733671376b","name":"babel-turbo-traverse","id":"6d6c366d61336b64","timestamp":99387178934,"duration":21978,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3773786e386c3930","name":"babel-turbo-transform","id":"746738733671376b","timestamp":99387178424,"duration":22519,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3773786e386c3930","name":"babel-turbo-generate","id":"6970317832667a38","timestamp":99387200989,"duration":3447,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"686569777038396f","name":"next-babel-turbo-transform","id":"3773786e386c3930","timestamp":99387169303,"duration":35148,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"683361773436676d","name":"next-babel-turbo-loader","id":"686569777038396f","timestamp":99387169281,"duration":35208,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"316c6c6a7437336b","name":"build-module-jsx","id":"683361773436676d","timestamp":99387167860,"duration":43329,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\pages\\about\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"7764676e66316564","name":"read-resource","id":"6b6e737864396f70","timestamp":99387247317,"duration":4070,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6578687670763936","name":"get-options","id":"767a676c65746b68","timestamp":99387251537,"duration":10,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37756f6230623061","name":"babel-turbo-get-config","id":"6469343631723275","timestamp":99387251562,"duration":49,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37756f6230623061","name":"babel-turbo-normalize-file","id":"7333366e37613161","timestamp":99387251620,"duration":14987,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"376c363236386c70","name":"babel-turbo-traverse","id":"616e713968667a33","timestamp":99387267253,"duration":176908,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37756f6230623061","name":"babel-turbo-transform","id":"376c363236386c70","timestamp":99387266726,"duration":177472,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"37756f6230623061","name":"babel-turbo-generate","id":"6e32366a32683930","timestamp":99387444258,"duration":21297,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6578687670763936","name":"next-babel-turbo-transform","id":"37756f6230623061","timestamp":99387251556,"duration":214019,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7764676e66316564","name":"next-babel-turbo-loader","id":"6578687670763936","timestamp":99387251528,"duration":214097,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"683361773436676d","name":"build-module-jsx","id":"7764676e66316564","timestamp":99387247139,"duration":244660,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Video-with-testimonials\\video-with-testimonials.jsx"}},{"traceId":"a40c92b03843b256","parentId":"6c696a31696c6d37","name":"read-resource","id":"6675333431787a79","timestamp":99387247555,"duration":244462,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"326471376b363031","name":"get-options","id":"653875627538306f","timestamp":99387492316,"duration":17,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3539306b37376637","name":"babel-turbo-get-config","id":"6f65786475337032","timestamp":99387492354,"duration":41,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3539306b37376637","name":"babel-turbo-normalize-file","id":"6e7334346b753337","timestamp":99387492399,"duration":30457,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"316263326935306a","name":"babel-turbo-traverse","id":"7262373163646d75","timestamp":99387523308,"duration":243338,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3539306b37376637","name":"babel-turbo-transform","id":"316263326935306a","timestamp":99387522924,"duration":243743,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3539306b37376637","name":"babel-turbo-generate","id":"643069357a703273","timestamp":99387766705,"duration":22061,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"326471376b363031","name":"next-babel-turbo-transform","id":"3539306b37376637","timestamp":99387492349,"duration":296440,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c696a31696c6d37","name":"next-babel-turbo-loader","id":"326471376b363031","timestamp":99387492203,"duration":296647,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"683361773436676d","name":"build-module-jsx","id":"6c696a31696c6d37","timestamp":99387247467,"duration":563243,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Team\\team.jsx"}},{"traceId":"a40c92b03843b256","parentId":"72336d6d6c693168","name":"read-resource","id":"35393671366a7837","timestamp":99387248982,"duration":563657,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"346e727238797879","name":"get-options","id":"6f726f76697a6a62","timestamp":99387812710,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"63367a3069387a6d","name":"babel-turbo-get-config","id":"6b76336c73637563","timestamp":99387812725,"duration":19,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"63367a3069387a6d","name":"babel-turbo-normalize-file","id":"7263756973643263","timestamp":99387812748,"duration":2527,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"666a326e6930716e","name":"babel-turbo-traverse","id":"3739666f71793177","timestamp":99387815564,"duration":27263,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"63367a3069387a6d","name":"babel-turbo-transform","id":"666a326e6930716e","timestamp":99387815300,"duration":27540,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"63367a3069387a6d","name":"babel-turbo-generate","id":"39363339667a6f6b","timestamp":99387842861,"duration":2530,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"346e727238797879","name":"next-babel-turbo-transform","id":"63367a3069387a6d","timestamp":99387812721,"duration":32679,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72336d6d6c693168","name":"next-babel-turbo-loader","id":"346e727238797879","timestamp":99387812705,"duration":32720,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"683361773436676d","name":"build-module-jsx","id":"72336d6d6c693168","timestamp":99387248907,"duration":600013,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Skills-circle\\skills-circle.jsx"}},{"traceId":"a40c92b03843b256","parentId":"746a316b376c6578","name":"read-resource","id":"343074386e697038","timestamp":99387248863,"duration":600107,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3066656562363571","name":"get-options","id":"356e6462626b6837","timestamp":99387849010,"duration":4,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766476676b353770","name":"babel-turbo-get-config","id":"366d6e646d733461","timestamp":99387849022,"duration":15,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766476676b353770","name":"babel-turbo-normalize-file","id":"30757831626a6c77","timestamp":99387849041,"duration":6002,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a64707364386e38","name":"babel-turbo-traverse","id":"646738716d667169","timestamp":99387855697,"duration":80275,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766476676b353770","name":"babel-turbo-transform","id":"7a64707364386e38","timestamp":99387855095,"duration":80895,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"766476676b353770","name":"babel-turbo-generate","id":"776a343272337273","timestamp":99387936022,"duration":6753,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3066656562363571","name":"next-babel-turbo-transform","id":"766476676b353770","timestamp":99387849018,"duration":93772,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"746a316b376c6578","name":"next-babel-turbo-loader","id":"3066656562363571","timestamp":99387849005,"duration":93825,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"683361773436676d","name":"build-module-jsx","id":"746a316b376c6578","timestamp":99387248721,"duration":699947,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Clients\\clients.jsx"}},{"traceId":"a40c92b03843b256","parentId":"71687332626a6366","name":"read-resource","id":"306f646365396735","timestamp":99387249771,"duration":739288,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a3275626a336165","name":"get-options","id":"777a71647379386b","timestamp":99387989116,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"676e3439776c6a72","name":"babel-turbo-get-config","id":"786e6265756c6e33","timestamp":99387989130,"duration":24,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"676e3439776c6a72","name":"babel-turbo-normalize-file","id":"6662687161746e31","timestamp":99387989159,"duration":3413,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"31686f7676777176","name":"babel-turbo-traverse","id":"7a396e70316f3474","timestamp":99387992922,"duration":23273,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"676e3439776c6a72","name":"babel-turbo-transform","id":"31686f7676777176","timestamp":99387992608,"duration":23603,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"676e3439776c6a72","name":"babel-turbo-generate","id":"6463667a7433786c","timestamp":99388016239,"duration":3574,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7a3275626a336165","name":"next-babel-turbo-transform","id":"676e3439776c6a72","timestamp":99387989126,"duration":30700,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"71687332626a6366","name":"next-babel-turbo-loader","id":"7a3275626a336165","timestamp":99387989108,"duration":30757,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"683361773436676d","name":"build-module-jsx","id":"71687332626a6366","timestamp":99387249664,"duration":773810,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Minimal-Area\\minimal-area.jsx"}},{"traceId":"a40c92b03843b256","parentId":"3763786f3376616a","name":"read-resource","id":"796963683779696a","timestamp":99387988569,"duration":39725,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b74326169386b6e","name":"get-options","id":"6d68366562307a63","timestamp":99388028355,"duration":6,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d39376761303762","name":"babel-turbo-get-config","id":"676d676c33766e71","timestamp":99388028370,"duration":16,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d39376761303762","name":"babel-turbo-normalize-file","id":"6370613668323961","timestamp":99388028389,"duration":1165,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"39386f7677727061","name":"babel-turbo-traverse","id":"3930346e34386873","timestamp":99388029803,"duration":10999,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d39376761303762","name":"babel-turbo-transform","id":"39386f7677727061","timestamp":99388029570,"duration":11249,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d39376761303762","name":"babel-turbo-generate","id":"3967646132633531","timestamp":99388040850,"duration":3347,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b74326169386b6e","name":"next-babel-turbo-transform","id":"6d39376761303762","timestamp":99388028366,"duration":15841,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3763786f3376616a","name":"next-babel-turbo-loader","id":"6b74326169386b6e","timestamp":99388028349,"duration":15881,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"683361773436676d","name":"build-module-jsx","id":"3763786f3376616a","timestamp":99387988513,"duration":57959,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Pages-header\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"6877706568637633","name":"read-resource","id":"6d6873397539636c","timestamp":99387988438,"duration":58217,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"35306d6e65706271","name":"get-options","id":"386939316579396a","timestamp":99388046699,"duration":5,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f71696130676c6a","name":"babel-turbo-get-config","id":"3430666878726a32","timestamp":99388046711,"duration":17,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f71696130676c6a","name":"babel-turbo-normalize-file","id":"37397a6d34797363","timestamp":99388046732,"duration":1270,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"39306d6974357662","name":"babel-turbo-traverse","id":"6467656637347561","timestamp":99388048264,"duration":12682,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f71696130676c6a","name":"babel-turbo-transform","id":"39306d6974357662","timestamp":99388048028,"duration":12932,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f71696130676c6a","name":"babel-turbo-generate","id":"32303330706c7267","timestamp":99388060982,"duration":1635,"tags":{}}] +[{"traceId":"a40c92b03843b256","parentId":"35306d6e65706271","name":"next-babel-turbo-transform","id":"6f71696130676c6a","timestamp":99388046708,"duration":16262,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6877706568637633","name":"next-babel-turbo-loader","id":"35306d6e65706271","timestamp":99388046693,"duration":16300,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"683361773436676d","name":"build-module-jsx","id":"6877706568637633","timestamp":99387988236,"duration":76568,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\About-intro\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"346d76756d333574","name":"read-resource","id":"3475376936337174","timestamp":99387988730,"duration":77225,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"363674306b393678","name":"get-options","id":"327a7a6c61346763","timestamp":99388066075,"duration":7,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a776265616b3965","name":"babel-turbo-get-config","id":"63306c3074696835","timestamp":99388066090,"duration":17,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a776265616b3965","name":"babel-turbo-normalize-file","id":"32386f307330777a","timestamp":99388066111,"duration":3224,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"68666677716a376c","name":"babel-turbo-traverse","id":"687a357164657937","timestamp":99388069710,"duration":28968,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a776265616b3965","name":"babel-turbo-transform","id":"68666677716a376c","timestamp":99388069375,"duration":29317,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6a776265616b3965","name":"babel-turbo-generate","id":"3262326b33353530","timestamp":99388098716,"duration":2777,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"363674306b393678","name":"next-babel-turbo-transform","id":"6a776265616b3965","timestamp":99388066086,"duration":35418,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"346d76756d333574","name":"next-babel-turbo-loader","id":"363674306b393678","timestamp":99388066070,"duration":35468,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"683361773436676d","name":"build-module-jsx","id":"346d76756d333574","timestamp":99387988634,"duration":117522,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Services\\services.jsx"}},{"traceId":"a40c92b03843b256","parentId":"6c726e77766b6968","name":"read-resource","id":"3970706965356c61","timestamp":99388112045,"duration":3246,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6877706568637633","name":"build-module-json","id":"6c726e77766b6968","timestamp":99388111947,"duration":3546,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\data\\sections\\about-info1.json"}},{"traceId":"a40c92b03843b256","parentId":"793475336c366a70","name":"read-resource","id":"74766d7233643772","timestamp":99388111881,"duration":3670,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"746a316b376c6578","name":"build-module-json","id":"793475336c366a70","timestamp":99388111750,"duration":3893,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\data\\sections\\clients.json"}},{"traceId":"a40c92b03843b256","parentId":"6b773773396d3361","name":"read-resource","id":"397a6d75306a3879","timestamp":99388149293,"duration":10234,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"72336d6d6c693168","name":"build-module-css","id":"6b773773396d3361","timestamp":99388149164,"duration":10824,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\react-circular-progressbar\\dist\\styles.css"}},{"traceId":"a40c92b03843b256","parentId":"316c6c6a7437336b","name":"add-entry","id":"6d6d66706e376e76","timestamp":99387137771,"duration":1022292,"tags":{"request":"./src\\pages\\about\\index.jsx"}},{"traceId":"a40c92b03843b256","parentId":"36636e7a326e7430","name":"make","id":"30736c3767617161","timestamp":99387130750,"duration":1029345,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"316c6c6a7437336b","name":"webpack-compilation-chunk-graph","id":"717675387a646967","timestamp":99388161240,"duration":1088,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"316c6c6a7437336b","name":"webpack-compilation-optimize-modules","id":"3938396777386561","timestamp":99388162369,"duration":8,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"316c6c6a7437336b","name":"webpack-compilation-optimize-chunks","id":"35667275376f3371","timestamp":99388162400,"duration":116,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"316c6c6a7437336b","name":"webpack-compilation-optimize-tree","id":"6c343330657a6e39","timestamp":99388162556,"duration":8,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"316c6c6a7437336b","name":"webpack-compilation-optimize","id":"396c776e6c636e61","timestamp":99388162355,"duration":424,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"316c6c6a7437336b","name":"webpack-compilation-hash","id":"6939687634687174","timestamp":99388175033,"duration":1388,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"316c6c6a7437336b","name":"webpack-compilation-seal","id":"7464666e356b6377","timestamp":99388161021,"duration":39647,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"36636e7a326e7430","name":"webpack-compilation","id":"316c6c6a7437336b","timestamp":99387130185,"duration":1070540,"tags":{"name":"server"}},{"traceId":"a40c92b03843b256","parentId":"36636e7a326e7430","name":"emit","id":"62357135766e6967","timestamp":99388200784,"duration":10390,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-server","id":"36636e7a326e7430","timestamp":99387008067,"duration":1204537,"tags":{"trigger":"manual"}}] +[{"traceId":"a40c92b03843b256","parentId":"756f646b38386c36","name":"add-entry","id":"74767339796b306d","timestamp":99409102365,"duration":14796,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"756f646b38386c36","name":"add-entry","id":"3934646369786132","timestamp":99409102520,"duration":16390,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=private-next-pages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"756f646b38386c36","name":"add-entry","id":"7036323466766764","timestamp":99409102509,"duration":16712,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"756f646b38386c36","name":"add-entry","id":"35766d796a687a35","timestamp":99409102477,"duration":17410,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"}},{"traceId":"a40c92b03843b256","parentId":"756f646b38386c36","name":"add-entry","id":"7732627266666477","timestamp":99409102498,"duration":19338,"tags":{"request":"next-client-pages-loader?page=%2F_app&absolutePagePath=private-next-pages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"6e78717932743371","name":"read-resource","id":"35347534376f7061","timestamp":99409111720,"duration":10691,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76753776307a3379","name":"get-options","id":"726e346131657777","timestamp":99409122565,"duration":9,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6b6d31776a6b7135","name":"babel-turbo-get-config","id":"3739786d396a376c","timestamp":99409122583,"duration":32,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"76753776307a3379","name":"next-babel-turbo-transform","id":"6b6d31776a6b7135","timestamp":99409122579,"duration":19337,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6e78717932743371","name":"next-babel-turbo-loader","id":"76753776307a3379","timestamp":99409122501,"duration":22022,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"756f646b38386c36","name":"build-module-jsx","id":"6e78717932743371","timestamp":99409111243,"duration":33828,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Footer\\footer.jsx"}},{"traceId":"a40c92b03843b256","parentId":"756f646b38386c36","name":"add-entry","id":"62336a62776a6f77","timestamp":99409102489,"duration":52704,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"756f646b38386c36","name":"add-entry","id":"617373726d673568","timestamp":99409102537,"duration":58063,"tags":{"request":"next-client-pages-loader?page=%2Fabout&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cabout%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"756f646b38386c36","name":"add-entry","id":"6c78786563777774","timestamp":99409102529,"duration":58330,"tags":{"request":"next-client-pages-loader?page=%2F&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"373068697563386e","name":"make","id":"777a763634633763","timestamp":99409088363,"duration":72539,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"756f646b38386c36","name":"webpack-compilation-chunk-graph","id":"6e32613467393469","timestamp":99409163857,"duration":8303,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"756f646b38386c36","name":"webpack-compilation-optimize-modules","id":"6e637a766a703061","timestamp":99409172333,"duration":48,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"756f646b38386c36","name":"webpack-compilation-optimize-chunks","id":"733174337879697a","timestamp":99409172425,"duration":204,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"756f646b38386c36","name":"webpack-compilation-optimize-tree","id":"366177726d7a6a6f","timestamp":99409172703,"duration":15,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"756f646b38386c36","name":"webpack-compilation-optimize","id":"637466697033736f","timestamp":99409172285,"duration":2690,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"756f646b38386c36","name":"webpack-compilation-hash","id":"7030756a316c666b","timestamp":99409191710,"duration":13947,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"756f646b38386c36","name":"NextJsBuildManifest-generateClientManifest","id":"6577326f71336a7a","timestamp":99409215352,"duration":156,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"756f646b38386c36","name":"NextJsBuildManifest-createassets","id":"706a35636d323130","timestamp":99409215201,"duration":326,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"756f646b38386c36","name":"webpack-compilation-seal","id":"6f70666a70656432","timestamp":99409162744,"duration":55312,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"373068697563386e","name":"webpack-compilation","id":"756f646b38386c36","timestamp":99409087350,"duration":130789,"tags":{"name":"client"}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-client","id":"373068697563386e","timestamp":99409055970,"duration":164817,"tags":{"trigger":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Footer\\footer.jsx"}},{"traceId":"a40c92b03843b256","parentId":"7366747479653771","name":"add-entry","id":"79626d676f723067","timestamp":99409238637,"duration":4948,"tags":{"request":"private-next-pages/_error"}},{"traceId":"a40c92b03843b256","parentId":"7366747479653771","name":"add-entry","id":"6572656576757735","timestamp":99409238495,"duration":5182,"tags":{"request":"private-next-pages/_app"}},{"traceId":"a40c92b03843b256","parentId":"7366747479653771","name":"add-entry","id":"7a67303769786536","timestamp":99409238620,"duration":5074,"tags":{"request":"private-next-pages/_document"}},{"traceId":"a40c92b03843b256","parentId":"726d30393866776a","name":"make","id":"7a726a6d6c723477","timestamp":99409223338,"duration":20393,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7366747479653771","name":"webpack-compilation-chunk-graph","id":"676c773737373234","timestamp":99409244106,"duration":330,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7366747479653771","name":"webpack-compilation-optimize-modules","id":"72636e697831756d","timestamp":99409244474,"duration":8,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7366747479653771","name":"webpack-compilation-optimize-chunks","id":"366f677266306f33","timestamp":99409244513,"duration":35,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7366747479653771","name":"webpack-compilation-optimize-tree","id":"6e38306933677336","timestamp":99409244574,"duration":11,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7366747479653771","name":"webpack-compilation-optimize","id":"7831787437747164","timestamp":99409244460,"duration":226,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7366747479653771","name":"webpack-compilation-hash","id":"6f6a626674733069","timestamp":99409246027,"duration":1253,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7366747479653771","name":"webpack-compilation-seal","id":"366c6e6a6732356b","timestamp":99409244003,"duration":3867,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"726d30393866776a","name":"webpack-compilation","id":"7366747479653771","timestamp":99409222867,"duration":25055,"tags":{"name":"server"}},{"traceId":"a40c92b03843b256","parentId":"726d30393866776a","name":"emit","id":"6a70643232637a33","timestamp":99409247960,"duration":6802,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-server","id":"726d30393866776a","timestamp":99409057679,"duration":201594,"tags":{"trigger":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Footer\\footer.jsx"}}] +[{"traceId":"a40c92b03843b256","parentId":"71757165306d3334","name":"add-entry","id":"727834646f727863","timestamp":99423034076,"duration":16653,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"71757165306d3334","name":"add-entry","id":"38707362716d7374","timestamp":99423034302,"duration":18368,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=private-next-pages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"71757165306d3334","name":"add-entry","id":"393838736736686f","timestamp":99423034290,"duration":18777,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"71757165306d3334","name":"add-entry","id":"6473676675737865","timestamp":99423034201,"duration":19606,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"}},{"traceId":"a40c92b03843b256","parentId":"6165396b33733137","name":"read-resource","id":"636e623432396e65","timestamp":99423043069,"duration":11146,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6271636130763668","name":"get-options","id":"3069373668377a6a","timestamp":99423054295,"duration":9,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f326a69656a3466","name":"babel-turbo-get-config","id":"3330387630626d67","timestamp":99423054315,"duration":27,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f326a69656a3466","name":"babel-turbo-normalize-file","id":"6336336b6c726530","timestamp":99423054348,"duration":3674,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d79646336303373","name":"babel-turbo-traverse","id":"6273337865376732","timestamp":99423059319,"duration":107842,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f326a69656a3466","name":"babel-turbo-transform","id":"6d79646336303373","timestamp":99423058079,"duration":109120,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6f326a69656a3466","name":"babel-turbo-generate","id":"6431627a726f6b71","timestamp":99423167234,"duration":8288,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6271636130763668","name":"next-babel-turbo-transform","id":"6f326a69656a3466","timestamp":99423054310,"duration":121232,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6165396b33733137","name":"next-babel-turbo-loader","id":"6271636130763668","timestamp":99423054287,"duration":121297,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"71757165306d3334","name":"build-module-jsx","id":"6165396b33733137","timestamp":99423042710,"duration":140916,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Footer\\footer.jsx"}},{"traceId":"a40c92b03843b256","parentId":"71757165306d3334","name":"add-entry","id":"3664797167693861","timestamp":99423034276,"duration":151953,"tags":{"request":"next-client-pages-loader?page=%2F_app&absolutePagePath=private-next-pages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"71757165306d3334","name":"add-entry","id":"6f6d303167316961","timestamp":99423034215,"duration":223513,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"71757165306d3334","name":"add-entry","id":"636a7a69326a6d6a","timestamp":99423034312,"duration":233829,"tags":{"request":"next-client-pages-loader?page=%2F&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"71757165306d3334","name":"add-entry","id":"333775623572636b","timestamp":99423034322,"duration":263177,"tags":{"request":"next-client-pages-loader?page=%2Fabout&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cabout%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"7136387471646e62","name":"make","id":"3830686779626a6f","timestamp":99423033151,"duration":264404,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"71757165306d3334","name":"webpack-compilation-chunk-graph","id":"366e31357a643665","timestamp":99423301243,"duration":8903,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"71757165306d3334","name":"webpack-compilation-optimize-modules","id":"3775773438617576","timestamp":99423310344,"duration":57,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"71757165306d3334","name":"webpack-compilation-optimize-chunks","id":"68646f3436353935","timestamp":99423310656,"duration":277,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"71757165306d3334","name":"webpack-compilation-optimize-tree","id":"6735386f78787064","timestamp":99423311019,"duration":13,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"71757165306d3334","name":"webpack-compilation-optimize","id":"323971717a377077","timestamp":99423310294,"duration":3768,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"71757165306d3334","name":"webpack-compilation-hash","id":"6f31753074733771","timestamp":99423341178,"duration":8118,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"71757165306d3334","name":"NextJsBuildManifest-generateClientManifest","id":"7a65386737657969","timestamp":99423362716,"duration":154,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"71757165306d3334","name":"NextJsBuildManifest-createassets","id":"66776d306c377672","timestamp":99423362481,"duration":416,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"71757165306d3334","name":"webpack-compilation-seal","id":"73653179746d7563","timestamp":99423300132,"duration":65478,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7136387471646e62","name":"webpack-compilation","id":"71757165306d3334","timestamp":99423032546,"duration":333192,"tags":{"name":"client"}},{"traceId":"a40c92b03843b256","parentId":"7136387471646e62","name":"emit","id":"6875346f7673646f","timestamp":99423365837,"duration":69375,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-client","id":"7136387471646e62","timestamp":99423013446,"duration":425078,"tags":{"trigger":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Footer\\footer.jsx"}}] +[{"traceId":"a40c92b03843b256","parentId":"6c7578747470386d","name":"add-entry","id":"3071646430367975","timestamp":99452929970,"duration":24225,"tags":{"request":"next-client-pages-loader?page=%2F_app&absolutePagePath=private-next-pages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"336e387871726965","name":"read-resource","id":"37696973356b6c69","timestamp":99452946182,"duration":13585,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"337332326371337a","name":"get-options","id":"317a643664777963","timestamp":99452959901,"duration":11,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"74756b7a34317237","name":"babel-turbo-get-config","id":"6d366d757a763066","timestamp":99452959923,"duration":65,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"74756b7a34317237","name":"babel-turbo-normalize-file","id":"756d76786c6a3864","timestamp":99452960004,"duration":10021,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"31647a3972726230","name":"babel-turbo-traverse","id":"6731636767757865","timestamp":99452971410,"duration":144612,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"74756b7a34317237","name":"babel-turbo-transform","id":"31647a3972726230","timestamp":99452970111,"duration":145938,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"74756b7a34317237","name":"babel-turbo-generate","id":"64347a386f787733","timestamp":99453116079,"duration":4801,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"337332326371337a","name":"next-babel-turbo-transform","id":"74756b7a34317237","timestamp":99452959918,"duration":160975,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"336e387871726965","name":"next-babel-turbo-loader","id":"337332326371337a","timestamp":99452959892,"duration":161035,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c7578747470386d","name":"build-module-jsx","id":"336e387871726965","timestamp":99452945841,"duration":182415,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Footer\\footer.jsx"}},{"traceId":"a40c92b03843b256","parentId":"6c7578747470386d","name":"add-entry","id":"6c727a6a6f773831","timestamp":99452929744,"duration":201659,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"6c7578747470386d","name":"add-entry","id":"64366d646a716636","timestamp":99452929992,"duration":205328,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=private-next-pages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"6c7578747470386d","name":"add-entry","id":"73386d646c357366","timestamp":99452929981,"duration":206398,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"6c7578747470386d","name":"add-entry","id":"6970663179386e67","timestamp":99452929899,"duration":211617,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"}},{"traceId":"a40c92b03843b256","parentId":"6c7578747470386d","name":"add-entry","id":"316a70796c7a6739","timestamp":99452929914,"duration":221675,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"6c7578747470386d","name":"add-entry","id":"38713272736f7173","timestamp":99452930001,"duration":221948,"tags":{"request":"next-client-pages-loader?page=%2F&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"6c7578747470386d","name":"add-entry","id":"3436636573353072","timestamp":99452930009,"duration":224381,"tags":{"request":"next-client-pages-loader?page=%2Fabout&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cabout%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"3970376c6534636c","name":"make","id":"6d36387578393262","timestamp":99452928923,"duration":225523,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c7578747470386d","name":"webpack-compilation-chunk-graph","id":"3071743634746838","timestamp":99453157137,"duration":6008,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c7578747470386d","name":"webpack-compilation-optimize-modules","id":"7635396d6e787a32","timestamp":99453163247,"duration":42,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c7578747470386d","name":"webpack-compilation-optimize-chunks","id":"6d67327062387973","timestamp":99453163313,"duration":118,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c7578747470386d","name":"webpack-compilation-optimize-tree","id":"616d716564716d6b","timestamp":99453163504,"duration":15,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c7578747470386d","name":"webpack-compilation-optimize","id":"3571647837333738","timestamp":99453163220,"duration":2279,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c7578747470386d","name":"webpack-compilation-hash","id":"386e6a6870317634","timestamp":99453187166,"duration":6139,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c7578747470386d","name":"NextJsBuildManifest-generateClientManifest","id":"7463643261657777","timestamp":99453207119,"duration":157,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c7578747470386d","name":"NextJsBuildManifest-createassets","id":"76707a3671363236","timestamp":99453206977,"duration":315,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6c7578747470386d","name":"webpack-compilation-seal","id":"3973636872317362","timestamp":99453156172,"duration":53250,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3970376c6534636c","name":"webpack-compilation","id":"6c7578747470386d","timestamp":99452928452,"duration":281069,"tags":{"name":"client"}},{"traceId":"a40c92b03843b256","parentId":"3970376c6534636c","name":"emit","id":"6166753271716d6e","timestamp":99453209607,"duration":50422,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-client","id":"3970376c6534636c","timestamp":99452910975,"duration":351220,"tags":{"trigger":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Footer\\footer.jsx"}}] +[{"traceId":"a40c92b03843b256","parentId":"3262637a68737135","name":"add-entry","id":"667a6e3261773831","timestamp":99473708086,"duration":30007,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\@next\\react-refresh-utils\\runtime.js"}},{"traceId":"a40c92b03843b256","parentId":"3262637a68737135","name":"add-entry","id":"6c6f693970686867","timestamp":99473708378,"duration":34104,"tags":{"request":"next-client-pages-loader?page=%2F_error&absolutePagePath=private-next-pages%2F_error!"}},{"traceId":"a40c92b03843b256","parentId":"3262637a68737135","name":"add-entry","id":"7971686765747462","timestamp":99473708355,"duration":35173,"tags":{"request":"C:\\Users\\hp\\Desktop\\business-hub\\node_modules\\next\\dist\\client\\router.js"}},{"traceId":"a40c92b03843b256","parentId":"3262637a68737135","name":"add-entry","id":"763668677a306e6a","timestamp":99473708236,"duration":40342,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"}},{"traceId":"a40c92b03843b256","parentId":"7868736f666c6663","name":"read-resource","id":"356d3235636c6837","timestamp":99473721572,"duration":28401,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7630683570697968","name":"get-options","id":"74726a6b6d6f736f","timestamp":99473750083,"duration":10,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"30666b3363673873","name":"babel-turbo-get-config","id":"3165317037627771","timestamp":99473750110,"duration":37,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"30666b3363673873","name":"babel-turbo-normalize-file","id":"733570786b777072","timestamp":99473750154,"duration":14401,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6171633676646d7a","name":"babel-turbo-traverse","id":"776f6b6b6935756a","timestamp":99473774461,"duration":177972,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"30666b3363673873","name":"babel-turbo-transform","id":"6171633676646d7a","timestamp":99473764756,"duration":187708,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"30666b3363673873","name":"babel-turbo-generate","id":"75756b666f687430","timestamp":99473952509,"duration":6867,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7630683570697968","name":"next-babel-turbo-transform","id":"30666b3363673873","timestamp":99473750104,"duration":209288,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"7868736f666c6663","name":"next-babel-turbo-loader","id":"7630683570697968","timestamp":99473750072,"duration":209362,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3262637a68737135","name":"build-module-jsx","id":"7868736f666c6663","timestamp":99473721184,"duration":244687,"tags":{"name":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Footer\\footer.jsx"}},{"traceId":"a40c92b03843b256","parentId":"3262637a68737135","name":"add-entry","id":"696e736265376762","timestamp":99473708276,"duration":260030,"tags":{"request":"next-client-pages-loader?page=%2F_app&absolutePagePath=private-next-pages%2F_app!"}},{"traceId":"a40c92b03843b256","parentId":"3262637a68737135","name":"add-entry","id":"716a6c3061397a65","timestamp":99473708258,"duration":272153,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"}},{"traceId":"a40c92b03843b256","parentId":"3262637a68737135","name":"add-entry","id":"6e767137726b7863","timestamp":99473708411,"duration":273193,"tags":{"request":"next-client-pages-loader?page=%2Fabout&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cabout%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"3262637a68737135","name":"add-entry","id":"6f6f6f396b653177","timestamp":99473708393,"duration":273299,"tags":{"request":"next-client-pages-loader?page=%2F&absolutePagePath=C%3A%5CUsers%5Chp%5CDesktop%5Cbusiness-hub%5Csrc%5Cpages%5Cindex.jsx!"}},{"traceId":"a40c92b03843b256","parentId":"6d6c713466376337","name":"make","id":"75763465327a7270","timestamp":99473706939,"duration":274789,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3262637a68737135","name":"webpack-compilation-chunk-graph","id":"7661377470303061","timestamp":99473984164,"duration":6287,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3262637a68737135","name":"webpack-compilation-optimize-modules","id":"76773377306b3437","timestamp":99473990539,"duration":29,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3262637a68737135","name":"webpack-compilation-optimize-chunks","id":"7077653330727635","timestamp":99473990591,"duration":60,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3262637a68737135","name":"webpack-compilation-optimize-tree","id":"71396b7537317565","timestamp":99473990697,"duration":10,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3262637a68737135","name":"webpack-compilation-optimize","id":"673262706e627274","timestamp":99473990516,"duration":1091,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3262637a68737135","name":"webpack-compilation-hash","id":"357669357770686f","timestamp":99474006028,"duration":9428,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3262637a68737135","name":"NextJsBuildManifest-generateClientManifest","id":"3577316a64327334","timestamp":99474017173,"duration":190,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3262637a68737135","name":"NextJsBuildManifest-createassets","id":"6e6a337031756664","timestamp":99474017027,"duration":358,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"3262637a68737135","name":"webpack-compilation-seal","id":"65706e6277636c72","timestamp":99473983206,"duration":35248,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6d6c713466376337","name":"webpack-compilation","id":"3262637a68737135","timestamp":99473706205,"duration":312308,"tags":{"name":"client"}},{"traceId":"a40c92b03843b256","parentId":"6d6c713466376337","name":"emit","id":"7136346436686567","timestamp":99474018578,"duration":10075,"tags":{}},{"traceId":"a40c92b03843b256","parentId":"6736383279716832","name":"webpack-invalidated-client","id":"6d6c713466376337","timestamp":99473683190,"duration":347797,"tags":{"trigger":"C:\\Users\\hp\\Desktop\\business-hub\\src\\components\\Footer\\footer.jsx"}}] diff --git a/next.config.js b/next.config.js new file mode 100644 index 0000000..6a17f2c --- /dev/null +++ b/next.config.js @@ -0,0 +1,15 @@ +const path = require("path"); + +module.exports = { + reactStrictMode: true, + sassOptions: { + includePaths: [path.join(__dirname, "css")], + }, + trailingSlash: true, + devIndicators: { + buildActivity: false, + }, + eslint: { + ignoreDuringBuilds: false, + }, +}; diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..7571761 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,10383 @@ +{ + "name": "vie-react", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "vie-react", + "dependencies": { + "axios": "^0.25.0", + "formik": "^2.2.9", + "next": "12.0.4", + "react": "17.0.2", + "react-circular-progressbar": "^2.0.4", + "react-countup": "^6.1.0", + "react-dom": "17.0.2", + "react-modal-video": "^1.2.8", + "react-scroll": "^1.8.4", + "react-slick": "^0.28.1", + "react-tsparticles": "^1.37.4", + "react-visibility-sensor": "^5.1.1", + "sass": "^1.45.0", + "slick-carousel": "^1.8.1", + "swiper": "^7.3.0", + "typewriter-effect": "^2.18.2" + }, + "devDependencies": { + "eslint": "7.32.0", + "eslint-config-next": "12.0.4" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz", + "integrity": "sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz", + "integrity": "sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.16.0", + "@babel/generator": "^7.16.0", + "@babel/helper-compilation-targets": "^7.16.0", + "@babel/helper-module-transforms": "^7.16.0", + "@babel/helpers": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/@babel/code-frame": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", + "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", + "peer": true, + "dependencies": { + "@babel/highlight": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core/node_modules/@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "peer": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core/node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "peer": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@babel/core/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "peer": true + }, + "node_modules/@babel/core/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/generator": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.0.tgz", + "integrity": "sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew==", + "peer": true, + "dependencies": { + "@babel/types": "^7.16.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "peer": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz", + "integrity": "sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==", + "peer": true, + "dependencies": { + "@babel/compat-data": "^7.16.0", + "@babel/helper-validator-option": "^7.14.5", + "browserslist": "^4.17.5", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/browserslist": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.18.1.tgz", + "integrity": "sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==", + "peer": true, + "dependencies": { + "caniuse-lite": "^1.0.30001280", + "electron-to-chromium": "^1.3.896", + "escalade": "^3.1.1", + "node-releases": "^2.0.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/node-releases": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", + "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", + "peer": true + }, + "node_modules/@babel/helper-function-name": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz", + "integrity": "sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog==", + "peer": true, + "dependencies": { + "@babel/helper-get-function-arity": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name/node_modules/@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "peer": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-get-function-arity": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz", + "integrity": "sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ==", + "peer": true, + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-get-function-arity/node_modules/@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "peer": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz", + "integrity": "sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg==", + "peer": true, + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables/node_modules/@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "peer": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz", + "integrity": "sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ==", + "peer": true, + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "peer": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz", + "integrity": "sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==", + "peer": true, + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports/node_modules/@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "peer": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz", + "integrity": "sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA==", + "peer": true, + "dependencies": { + "@babel/helper-module-imports": "^7.16.0", + "@babel/helper-replace-supers": "^7.16.0", + "@babel/helper-simple-access": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", + "@babel/helper-validator-identifier": "^7.15.7", + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms/node_modules/@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "peer": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz", + "integrity": "sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw==", + "peer": true, + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "peer": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", + "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz", + "integrity": "sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA==", + "peer": true, + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.16.0", + "@babel/helper-optimise-call-expression": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers/node_modules/@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "peer": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz", + "integrity": "sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw==", + "peer": true, + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access/node_modules/@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "peer": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz", + "integrity": "sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw==", + "peer": true, + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration/node_modules/@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "peer": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", + "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.3.tgz", + "integrity": "sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w==", + "peer": true, + "dependencies": { + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.3", + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers/node_modules/@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "peer": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", + "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.15.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.4.tgz", + "integrity": "sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==", + "peer": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz", + "integrity": "sha512-ohuFIsOMXJnbOMRfX7/w7LocdR6R7whhuRD4ax8IipLcLPlZGJKkBxgHp++U4N/vKyU16/YDQr2f5seajD3jIw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz", + "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==", + "dependencies": { + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/runtime-corejs3": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.16.3.tgz", + "integrity": "sha512-IAdDC7T0+wEB4y2gbIL0uOXEYpiZEeuFUTVbdGq+UwCcF35T/tS8KrmMomEwEc5wBbyfH3PJVpTSUqrhPDXFcQ==", + "dev": true, + "dependencies": { + "core-js-pure": "^3.19.0", + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.0.tgz", + "integrity": "sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template/node_modules/@babel/code-frame": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", + "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", + "peer": true, + "dependencies": { + "@babel/highlight": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template/node_modules/@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "peer": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.3.tgz", + "integrity": "sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag==", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.16.0", + "@babel/generator": "^7.16.0", + "@babel/helper-function-name": "^7.16.0", + "@babel/helper-hoist-variables": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", + "@babel/parser": "^7.16.3", + "@babel/types": "^7.16.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/code-frame": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", + "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", + "peer": true, + "dependencies": { + "@babel/highlight": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "peer": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "peer": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@babel/traverse/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "peer": true + }, + "node_modules/@babel/types": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", + "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.14.9", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", + "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@hapi/accept": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@hapi/accept/-/accept-5.0.2.tgz", + "integrity": "sha512-CmzBx/bXUR8451fnZRuZAJRlzgm0Jgu5dltTX/bszmR2lheb9BpyN47Q1RbaGTsvFzn0PXAEs+lXDKfshccYZw==", + "dependencies": { + "@hapi/boom": "9.x.x", + "@hapi/hoek": "9.x.x" + } + }, + "node_modules/@hapi/boom": { + "version": "9.1.4", + "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-9.1.4.tgz", + "integrity": "sha512-Ls1oH8jaN1vNsqcaHVYJrKmgMcKsC1wcp8bujvXrHaAqD2iDYq3HoOwsxwo09Cuda5R5nC0o0IxlrlTuvPuzSw==", + "dependencies": { + "@hapi/hoek": "9.x.x" + } + }, + "node_modules/@hapi/hoek": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", + "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==" + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@napi-rs/triples": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@napi-rs/triples/-/triples-1.0.3.tgz", + "integrity": "sha512-jDJTpta+P4p1NZTFVLHJ/TLFVYVcOqv6l8xwOeBKNPMgY/zDYH/YH7SJbvrr/h1RcS9GzbPcLKGzpuK9cV56UA==" + }, + "node_modules/@next/env": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/env/-/env-12.0.4.tgz", + "integrity": "sha512-QtZ6X5c6Zqa7oWs5csEmZ7xy+gLdtRKKg02SOT5l0Ziea4P5IU8mSOCyNC4fZmXewcRVjpbY+yGqAAP7hJUfOA==" + }, + "node_modules/@next/eslint-plugin-next": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-12.0.4.tgz", + "integrity": "sha512-3N+LG+wQQB0JLfMj4YKkefWnjcsFVBmixRWdzbVBnt/cxbVZ0izf+BR1MzvrPX1oaP0OrYk8X/9Mn9Yftuajvg==", + "dev": true, + "dependencies": { + "glob": "7.1.7" + } + }, + "node_modules/@next/polyfill-module": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/polyfill-module/-/polyfill-module-12.0.4.tgz", + "integrity": "sha512-mk9yCDNpfXINTJKFTZNgwYs7eqRFpc5D/49O/fKB59blihyKl1GY1sZ0l7a2bn5l1X/WuaZzcIfqnrwkneqeaQ==" + }, + "node_modules/@next/react-dev-overlay": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/react-dev-overlay/-/react-dev-overlay-12.0.4.tgz", + "integrity": "sha512-9O0lXyzv5goFSmDwq9Hp8JE+DcObvd+bTXvmGSSvYR91AlIoVlH8/PwATx8Rf5YEuqggn/XKR1hn2kBYcbcGnA==", + "dependencies": { + "@babel/code-frame": "7.12.11", + "anser": "1.4.9", + "chalk": "4.0.0", + "classnames": "2.2.6", + "css.escape": "1.5.1", + "data-uri-to-buffer": "3.0.1", + "platform": "1.3.6", + "shell-quote": "1.7.3", + "source-map": "0.8.0-beta.0", + "stacktrace-parser": "0.1.10", + "strip-ansi": "6.0.1" + }, + "peerDependencies": { + "react": "^17.0.2", + "react-dom": "^17.0.2", + "webpack": "^4 || ^5" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + } + } + }, + "node_modules/@next/react-dev-overlay/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@next/react-dev-overlay/node_modules/chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@next/react-dev-overlay/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@next/react-dev-overlay/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@next/react-dev-overlay/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@next/react-dev-overlay/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@next/react-refresh-utils": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/react-refresh-utils/-/react-refresh-utils-12.0.4.tgz", + "integrity": "sha512-kNUDmpBaJ+8Lb8CtKNynRFF9oijCjUKKru6Ont+JKhti9//5dNFFIcuo607bJSH86un06OEK0TZUt5XWVlbkjw==", + "peerDependencies": { + "react-refresh": "0.8.3", + "webpack": "^4 || ^5" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + } + } + }, + "node_modules/@next/swc-android-arm64": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.0.4.tgz", + "integrity": "sha512-6mXumia8ZPcy7bYu9kjItfWxrE6SFaJyqQDaFy9G9WrU9x3M1R1Yok8B2X1mboM8itD0tq+t3R/ebQEkkmevUw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.0.4.tgz", + "integrity": "sha512-7WMen1qhF5JmjKD9S5IEgEoaPJOXyIZj/Nsqa8ZSWxdF5oogp3uYYbKb/rvMYoKzpIbjyoLH/OCM5lm5IFM4iw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.0.4.tgz", + "integrity": "sha512-PVgefMWjxP6CU1HQs39+Bfpjcue6qErJfvJ/+n2zimjLzyeQAmD6LM9f1lDSttW2LjKjasoxR5qkRNLVlqzlaA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm-gnueabihf": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.0.4.tgz", + "integrity": "sha512-8xGQu3sJiIdriKiCux3jDJ9pwivELEg7z2zfW0CqmQMbKNB7qP9lc0pq6CxshtKyXRMczNWRMtQ3Cjwep+UvNg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.0.4.tgz", + "integrity": "sha512-HhEWcBkqGr3E7SYLtN9VnYUGamAWaLcXawHN33Em0WP7gzXrBqz0iIJNH7uEzHDS6980EqU/rrkLyhCHrYSZgQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.0.4.tgz", + "integrity": "sha512-oZyQ9wjtE7OX9RlnovP7izNx2AR/RzTuYWU4Ttim8ssABsipQSxSlfRaeb+Qi6jTc6k+lrPhjRfaZ+fGv/m2Ag==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.0.4.tgz", + "integrity": "sha512-aBuf78QzL93T59Lk9kEGfHcA+9SzYIH7dGon1nqVxtAd2iqicKYNVaVcb38VKeiIBXMSUHXTdu6Ee053ZCOmSw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.0.4.tgz", + "integrity": "sha512-yDgqUqL4H8M3Y0hv30ZyL9UvjnK4iXmD4I6iJz+XIHSRdA/VUiyKKoL7okf9hxr0mSxBtagbZ5A3qEoW/VliUQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.0.4.tgz", + "integrity": "sha512-evDUrEYsUo+PMHsedaymfZO98VwV9wNFzuWVCyKgqg6SD1ZRpzbpqYQY7aINIuqZVdIWZElBE6EM+oxaj7PuWQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-ia32-msvc": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.0.4.tgz", + "integrity": "sha512-Lbmz0xlo8vW4EDWyzCfy3nGfqt7skqwxaERwe+vDVTBZ56mvJ5dsdyjqK24sxu4FFkWR7SaU4eNlHwZR+A3kTg==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.0.4.tgz", + "integrity": "sha512-f+7WNIJOno5QEelrmob+3vN5EZJb3KCkOrnvUsQ0+LCCD0dIPIhCjeHAh3BGj9msGu8ijnXvD7JxVxE5V26cnQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.0.tgz", + "integrity": "sha512-JLo+Y592QzIE+q7Dl2pMUtt4q8SKYI5jDrZxrozEQxnGVOyYE+GWK9eLkwTaeN9DDctlaRAQ3TBmzZ1qdLE30A==", + "dev": true + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "dev": true + }, + "node_modules/@types/node": { + "version": "16.11.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.9.tgz", + "integrity": "sha512-MKmdASMf3LtPzwLyRrFjtFFZ48cMf8jmX5VRYrDQiJa8Ybu5VAmkqBWqKU8fdCwD8ysw4mQ9nrEHvzg6gunR7A==" + }, + "node_modules/@typescript-eslint/parser": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.33.0.tgz", + "integrity": "sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "debug": "^4.3.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser/node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz", + "integrity": "sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0" + }, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz", + "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==", + "dev": true, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", + "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0", + "debug": "^4.3.1", + "globby": "^11.0.3", + "is-glob": "^4.0.1", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", + "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "4.33.0", + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/acorn": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", + "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/anser": { + "version": "1.4.9", + "resolved": "https://registry.npmjs.org/anser/-/anser-1.4.9.tgz", + "integrity": "sha512-AI+BjTeGt2+WFk4eWcqbQ7snZpDBt8SaLlj0RT2h5xfdWaiy51OjYvqwMrNzJLGy8iOAL6nKDITWO+rd4MkYEA==" + }, + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/array-includes": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", + "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", + "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", + "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/assert": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz", + "integrity": "sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==", + "dependencies": { + "es6-object-assign": "^1.1.0", + "is-nan": "^1.2.1", + "object-is": "^1.0.1", + "util": "^0.12.0" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", + "dev": true + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.3.5.tgz", + "integrity": "sha512-WKTW1+xAzhMS5dJsxWkliixlO/PqC4VhmO9T4juNYcaTg9jzWiJsou6m5pxWYGfigWbwzJWeFY6z47a+4neRXA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/axios": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.25.0.tgz", + "integrity": "sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==", + "dependencies": { + "follow-redirects": "^1.14.7" + } + }, + "node_modules/axobject-query": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", + "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==", + "dev": true + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dependencies": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "dependencies": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "node_modules/browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/browserslist": { + "version": "4.16.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", + "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", + "dependencies": { + "caniuse-lite": "^1.0.30001219", + "colorette": "^1.2.2", + "electron-to-chromium": "^1.3.723", + "escalade": "^3.1.1", + "node-releases": "^1.1.71" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/buffer": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", + "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "node_modules/builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" + }, + "node_modules/bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001282", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001282.tgz", + "integrity": "sha512-YhF/hG6nqBEllymSIjLtR2iWDDnChvhnVJqp+vloyt2tEHFG1yBR+ac2B/rOw0qOK0m0lEXU2dv4E/sMk5P9Kg==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chokidar": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "dependencies": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.1" + } + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/classnames": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", + "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "node_modules/colorette": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", + "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" + }, + "node_modules/convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/convert-source-map/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/core-js-pure": { + "version": "3.19.1", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.19.1.tgz", + "integrity": "sha512-Q0Knr8Es84vtv62ei6/6jXH/7izKmOrtrxH9WJTHLCMAVeU+8TF8z8Nr08CsH4Ot0oJKzBzJJL9SJBYIv7WlfQ==", + "dev": true, + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/countup.js": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/countup.js/-/countup.js-2.0.8.tgz", + "integrity": "sha512-pW3xwwD+hB+xmtI16xFcuLS0D5hSQqPQWkZOdgpKQyzxCquDNo2VCFPkRw12vmvdpnicXVTcjmYiakG6biwINg==" + }, + "node_modules/create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dependencies": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" + } + }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=" + }, + "node_modules/cssnano-preset-simple": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssnano-preset-simple/-/cssnano-preset-simple-3.0.0.tgz", + "integrity": "sha512-vxQPeoMRqUT3c/9f0vWeVa2nKQIHFpogtoBvFdW4GQ3IvEJ6uauCP6p3Y5zQDLFcI7/+40FTgX12o7XUL0Ko+w==", + "dependencies": { + "caniuse-lite": "^1.0.30001202" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-simple": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssnano-simple/-/cssnano-simple-3.0.0.tgz", + "integrity": "sha512-oU3ueli5Dtwgh0DyeohcIEE00QVfbPR3HzyXdAl89SfnQG3y0/qcpfLVW+jPIh3/rgMZGwuW96rejZGaYE9eUg==", + "dependencies": { + "cssnano-preset-simple": "^3.0.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + } + } + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.7.tgz", + "integrity": "sha512-VvdQIPGdWP0SqFXghj79Wf/5LArmreyMsGLa6FG6iC4t3j7j5s71TrwWmT/4akbDQIqjfACkLZmjXhA7g2oUZw==", + "dev": true + }, + "node_modules/data-uri-to-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", + "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz", + "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom7": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/dom7/-/dom7-4.0.1.tgz", + "integrity": "sha512-y/RWjw3gK3qQnZz6IqDaIoqH6+xBhcB3Wsh5HFwl0abwuO/NAgbSB31ZbxtBDcuDe8jAX5NYUNDLTx4Ul48sIw==", + "dependencies": { + "ssr-window": "^4.0.0" + } + }, + "node_modules/domain-browser": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-4.19.0.tgz", + "integrity": "sha512-fRA+BaAWOR/yr/t7T9E9GJztHPeFjj8U35ajyAjCDtAAnTn1Rc1f6W6VGPJrO1tkQv9zWu+JRof7z6oQtiYVFQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://bevry.me/fund" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.3.904", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.904.tgz", + "integrity": "sha512-x5uZWXcVNYkTh4JubD7KSC1VMKz0vZwJUqVwY3ihsW0bst1BXDe494Uqbg3Y0fDGVjJqA8vEeGuvO5foyH2+qw==" + }, + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/enquire.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/enquire.js/-/enquire.js-2.1.6.tgz", + "integrity": "sha1-PoeAybi4NQhMP2DhZtvDwqPImBQ=" + }, + "node_modules/enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es6-object-assign": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", + "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=" + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-next": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-12.0.4.tgz", + "integrity": "sha512-uBOHBjYaRF0MaS5feB7lFOncHhSrtFxZy/oud6pEW/wn/JUQtZWeH/J4JyODBfX+G7h9mttgHLZNmUjNJis6Kw==", + "dev": true, + "dependencies": { + "@next/eslint-plugin-next": "12.0.4", + "@rushstack/eslint-patch": "^1.0.6", + "@typescript-eslint/parser": "^4.20.0", + "eslint-import-resolver-node": "^0.3.4", + "eslint-import-resolver-typescript": "^2.4.0", + "eslint-plugin-import": "^2.22.1", + "eslint-plugin-jsx-a11y": "^6.4.1", + "eslint-plugin-react": "^7.23.1", + "eslint-plugin-react-hooks": "^4.2.0" + }, + "peerDependencies": { + "eslint": "^7.23.0", + "next": ">=10.2.0", + "typescript": ">=3.3.1" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/eslint-import-resolver-typescript": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.5.0.tgz", + "integrity": "sha512-qZ6e5CFr+I7K4VVhQu3M/9xGv9/YmwsEXrsm3nimw8vWaVHRDrQRp26BgCypTxBp3vUp4o5aVEJRiy0F2DFddQ==", + "dev": true, + "dependencies": { + "debug": "^4.3.1", + "glob": "^7.1.7", + "is-glob": "^4.0.1", + "resolve": "^1.20.0", + "tsconfig-paths": "^3.9.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*" + } + }, + "node_modules/eslint-import-resolver-typescript/node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/eslint-import-resolver-typescript/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/eslint-module-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.1.tgz", + "integrity": "sha512-fjoetBXQZq2tSTWZ9yWVl2KuFrTZZH3V+9iD1V1RfpDgxzJR+mPd/KZmMiA8gbPqdBzpNiEHOuT7IYEWxrH0zQ==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "find-up": "^2.1.0", + "pkg-dir": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/eslint-module-utils/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "dependencies": { + "find-up": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.25.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.3.tgz", + "integrity": "sha512-RzAVbby+72IB3iOEL8clzPLzL3wpDrlwjsTBAQXgyp5SeTqqY+0bFubwuo+y/HLhNZcXV4XqTBO4LGsfyHIDXg==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.1", + "has": "^1.0.3", + "is-core-module": "^2.8.0", + "is-glob": "^4.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.5", + "resolve": "^1.20.0", + "tsconfig-paths": "^3.11.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz", + "integrity": "sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.16.3", + "aria-query": "^4.2.2", + "array-includes": "^3.1.4", + "ast-types-flow": "^0.0.7", + "axe-core": "^4.3.5", + "axobject-query": "^2.2.0", + "damerau-levenshtein": "^1.0.7", + "emoji-regex": "^9.2.2", + "has": "^1.0.3", + "jsx-ast-utils": "^3.2.1", + "language-tags": "^1.0.5", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-jsx-a11y/node_modules/@babel/runtime": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.3.tgz", + "integrity": "sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.27.1.tgz", + "integrity": "sha512-meyunDjMMYeWr/4EBLTV1op3iSG3mjT/pz5gti38UzfM4OPpNc2m0t2xvKCOMU5D6FSdd34BIMFOvQbW+i8GAA==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.4", + "array.prototype.flatmap": "^1.2.5", + "doctrine": "^2.1.0", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.0.4", + "object.entries": "^1.1.5", + "object.fromentries": "^2.0.5", + "object.hasown": "^1.1.0", + "object.values": "^1.1.5", + "prop-types": "^15.7.2", + "resolve": "^2.0.0-next.3", + "semver": "^6.3.0", + "string.prototype.matchall": "^4.0.6" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.3.0.tgz", + "integrity": "sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.3", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", + "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", + "dev": true, + "dependencies": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-scope/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eslint/node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", + "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/eslint/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "dev": true, + "dependencies": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/espree/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-glob": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", + "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.14.7", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.7.tgz", + "integrity": "sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" + }, + "node_modules/formik": { + "version": "2.2.9", + "resolved": "https://registry.npmjs.org/formik/-/formik-2.2.9.tgz", + "integrity": "sha512-LQLcISMmf1r5at4/gyJigGn0gOwFbeEAlji+N9InZF6LIMXnFNkO42sCI8Jt84YZggpD4cPWObAZaxpEFtSzNA==", + "funding": [ + { + "type": "individual", + "url": "https://opencollective.com/formik" + } + ], + "dependencies": { + "deepmerge": "^2.1.1", + "hoist-non-react-statics": "^3.3.0", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "react-fast-compare": "^2.0.1", + "tiny-warning": "^1.0.2", + "tslib": "^1.10.0" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-orientation": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/get-orientation/-/get-orientation-1.1.2.tgz", + "integrity": "sha512-/pViTfifW+gBbh/RnlFYHINvELT9Znt+SYyDKAUL6uV6By019AK/s+i9XP4jSwq7lwP38Fd8HVeTxym3+hkwmQ==", + "dependencies": { + "stream-parser": "^0.3.1" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", + "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby/node_modules/ignore": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", + "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/http-errors": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/image-size": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.0.0.tgz", + "integrity": "sha512-JLJ6OwBfO1KcA+TvJT+v8gbE6iWbj24LyDNFgFEN0lzegn6cC6a/p3NIDaepMsJjQjlUWqIC7wJv8lBFxPNjcw==", + "dependencies": { + "queue": "6.0.2" + }, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/immutable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", + "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==" + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", + "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-nan": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", + "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.8.tgz", + "integrity": "sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA==", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.5", + "foreach": "^2.0.5", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", + "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", + "dependencies": { + "call-bind": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/jest-worker": { + "version": "27.0.0-next.5", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.0-next.5.tgz", + "integrity": "sha512-mk0umAQ5lT+CaOJ+Qp01N6kz48sJG2kr2n1rX0koqKf6FIygQV0qLOdN9SCYID4IVeSigDOcPeGLozdMLYfb5g==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jquery": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz", + "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==", + "peer": true + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "peer": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "node_modules/json2mq": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/json2mq/-/json2mq-0.2.0.tgz", + "integrity": "sha1-tje9O6nqvhIsg+lyBIOusQ0skEo=", + "dependencies": { + "string-convert": "^0.2.0" + } + }, + "node_modules/json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "peer": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz", + "integrity": "sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.3", + "object.assign": "^4.1.2" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/language-subtag-registry": { + "version": "0.3.21", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz", + "integrity": "sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==", + "dev": true + }, + "node_modules/language-tags": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", + "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=", + "dev": true, + "dependencies": { + "language-subtag-registry": "~0.3.2" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/loader-utils/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" + }, + "node_modules/lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=" + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", + "dev": true + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/nanoid": { + "version": "3.1.30", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", + "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "node_modules/next": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/next/-/next-12.0.4.tgz", + "integrity": "sha512-1pvjcSZBm5OLoGmDhp4JwKwIE798WbqUNLuyU7w6a2jUkdWaxOYtkE/ROXQTi2pXHj7+6rm68AvhxROLX2NHQg==", + "dependencies": { + "@babel/runtime": "7.15.4", + "@hapi/accept": "5.0.2", + "@napi-rs/triples": "1.0.3", + "@next/env": "12.0.4", + "@next/polyfill-module": "12.0.4", + "@next/react-dev-overlay": "12.0.4", + "@next/react-refresh-utils": "12.0.4", + "acorn": "8.5.0", + "assert": "2.0.0", + "browserify-zlib": "0.2.0", + "browserslist": "4.16.6", + "buffer": "5.6.0", + "caniuse-lite": "^1.0.30001228", + "chalk": "2.4.2", + "chokidar": "3.5.1", + "constants-browserify": "1.0.0", + "crypto-browserify": "3.12.0", + "cssnano-simple": "3.0.0", + "domain-browser": "4.19.0", + "encoding": "0.1.13", + "etag": "1.8.1", + "events": "3.3.0", + "find-cache-dir": "3.3.1", + "get-orientation": "1.1.2", + "https-browserify": "1.0.0", + "image-size": "1.0.0", + "jest-worker": "27.0.0-next.5", + "node-fetch": "2.6.1", + "node-html-parser": "1.4.9", + "os-browserify": "0.3.0", + "p-limit": "3.1.0", + "path-browserify": "1.0.1", + "postcss": "8.2.15", + "process": "0.11.10", + "querystring-es3": "0.2.1", + "raw-body": "2.4.1", + "react-is": "17.0.2", + "react-refresh": "0.8.3", + "regenerator-runtime": "0.13.4", + "stream-browserify": "3.0.0", + "stream-http": "3.1.1", + "string_decoder": "1.3.0", + "styled-jsx": "5.0.0-beta.3", + "timers-browserify": "2.0.12", + "tty-browserify": "0.0.1", + "use-subscription": "1.5.1", + "util": "0.12.4", + "vm-browserify": "1.1.2", + "watchpack": "2.1.1" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": ">=12.22.0" + }, + "optionalDependencies": { + "@next/swc-android-arm64": "12.0.4", + "@next/swc-darwin-arm64": "12.0.4", + "@next/swc-darwin-x64": "12.0.4", + "@next/swc-linux-arm-gnueabihf": "12.0.4", + "@next/swc-linux-arm64-gnu": "12.0.4", + "@next/swc-linux-arm64-musl": "12.0.4", + "@next/swc-linux-x64-gnu": "12.0.4", + "@next/swc-linux-x64-musl": "12.0.4", + "@next/swc-win32-arm64-msvc": "12.0.4", + "@next/swc-win32-ia32-msvc": "12.0.4", + "@next/swc-win32-x64-msvc": "12.0.4" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0", + "react": "^17.0.2 || ^18.0.0", + "react-dom": "^17.0.2 || ^18.0.0", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", + "engines": { + "node": "4.x || >=6.0.0" + } + }, + "node_modules/node-html-parser": { + "version": "1.4.9", + "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-1.4.9.tgz", + "integrity": "sha512-UVcirFD1Bn0O+TSmloHeHqZZCxHjvtIeGdVdGMhyZ8/PWlEiZaZ5iJzR189yKZr8p0FXN58BUeC7RHRkf/KYGw==", + "dependencies": { + "he": "1.2.0" + } + }, + "node_modules/node-releases": { + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", + "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", + "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.hasown": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz", + "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dependencies": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "peer": true + }, + "node_modules/picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/platform": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz", + "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==" + }, + "node_modules/postcss": { + "version": "8.2.15", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.15.tgz", + "integrity": "sha512-2zO3b26eJD/8rb106Qu2o7Qgg52ND5HPjcyQiK2B98O388h43A448LCslC0dI2P97wCAQRJsFvwTRcXxTKds+Q==", + "dependencies": { + "colorette": "^1.2.2", + "nanoid": "^3.1.23", + "source-map": "^0.6.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/queue": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", + "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", + "dependencies": { + "inherits": "~2.0.3" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "dependencies": { + "performance-now": "^2.1.0" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/raw-body": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz", + "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", + "dependencies": { + "bytes": "3.1.0", + "http-errors": "1.7.3", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-circular-progressbar": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/react-circular-progressbar/-/react-circular-progressbar-2.0.4.tgz", + "integrity": "sha512-OfX0ThSxRYEVGaQSt0DlXfyl5w4DbXHsXetyeivmoQrh9xA9bzVPHNf8aAhOIiwiaxX2WYWpLDB3gcpsDJ9oww==", + "peerDependencies": { + "react": "^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/react-countup": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/react-countup/-/react-countup-6.1.0.tgz", + "integrity": "sha512-0tN65l4ksaNa4rm8ZKshpGxbIHQ4RAh8TGaKYp06EZ7nZw+haXpW3dQTVDhTey9+10jDkJgdzyXKDmC96c1M8g==", + "dependencies": { + "countup.js": "^2.0.8" + }, + "peerDependencies": { + "react": ">= 16.3.0" + } + }, + "node_modules/react-dom": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", + "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "scheduler": "^0.20.2" + }, + "peerDependencies": { + "react": "17.0.2" + } + }, + "node_modules/react-fast-compare": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-2.0.4.tgz", + "integrity": "sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==" + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, + "node_modules/react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + }, + "node_modules/react-modal-video": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/react-modal-video/-/react-modal-video-1.2.8.tgz", + "integrity": "sha512-RWOxr1l8Ovk97O80xKKzmIR+D2wPmI5KgNDsxJbW7lA+k0iYmn/5cbPczfTbYQy/qmHfZho16zi2rJ7oLdCQBQ==", + "dependencies": { + "react-transition-group": "^2.2.1" + }, + "peerDependencies": { + "react": "^16.2.0 || ^17.0.0", + "react-dom": "^16.2.0 || ^17.0.0" + } + }, + "node_modules/react-modal-video/node_modules/dom-helpers": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz", + "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==", + "dependencies": { + "@babel/runtime": "^7.1.2" + } + }, + "node_modules/react-modal-video/node_modules/react-transition-group": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.9.0.tgz", + "integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==", + "dependencies": { + "dom-helpers": "^3.4.0", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2", + "react-lifecycles-compat": "^3.0.4" + }, + "peerDependencies": { + "react": ">=15.0.0", + "react-dom": ">=15.0.0" + } + }, + "node_modules/react-refresh": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz", + "integrity": "sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-scroll": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/react-scroll/-/react-scroll-1.8.4.tgz", + "integrity": "sha512-J9rFqmdzularCXJoK2vleHVg2//y9Fs6zh7K13x7Yz3Y1kHPfQ/TTq029L09q1Gr5/5JjFLBOB2Sa3yYIqyTyQ==", + "dependencies": { + "lodash.throttle": "^4.1.1", + "prop-types": "^15.7.2" + }, + "peerDependencies": { + "react": "^15.5.4 || ^16.0.0 || ^17.0.0", + "react-dom": "^15.5.4 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/react-slick": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/react-slick/-/react-slick-0.28.1.tgz", + "integrity": "sha512-JwRQXoWGJRbUTE7eZI1rGIHaXX/4YuwX6gn7ulfvUZ4vFDVQAA25HcsHSYaUiRCduTr6rskyIuyPMpuG6bbluw==", + "dependencies": { + "classnames": "^2.2.5", + "enquire.js": "^2.1.6", + "json2mq": "^0.2.0", + "lodash.debounce": "^4.0.8", + "resize-observer-polyfill": "^1.5.0" + }, + "peerDependencies": { + "react": "^0.14.0 || ^15.0.1 || ^16.0.0 || ^17.0.0", + "react-dom": "^0.14.0 || ^15.0.1 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/react-tsparticles": { + "version": "1.37.4", + "resolved": "https://registry.npmjs.org/react-tsparticles/-/react-tsparticles-1.37.4.tgz", + "integrity": "sha512-OFLRC9Tsc4KBcRIhVJBgDY9hsZfkBvz5vr+nYhdiUuVe2e31XkL5FAZYWFvhm/wxZW2ZqwVtBPPNod2KUKiISg==", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "tsparticles": "^1.37.4" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/matteobruni" + }, + "peerDependencies": { + "react": ">=16" + } + }, + "node_modules/react-visibility-sensor": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/react-visibility-sensor/-/react-visibility-sensor-5.1.1.tgz", + "integrity": "sha512-cTUHqIK+zDYpeK19rzW6zF9YfT4486TIgizZW53wEZ+/GPBbK7cNS0EHyJVyHYacwFEvvHLEKfgJndbemWhB/w==", + "dependencies": { + "prop-types": "^15.7.2" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.4.tgz", + "integrity": "sha512-plpwicqEzfEyTQohIKktWigcLzmNStMGwbOUbykx51/29Z3JOGYldaaNGK7ngNXV+UcoqvIMmloZ48Sr74sd+g==" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", + "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" + }, + "node_modules/resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "dependencies": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sass": { + "version": "1.45.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.45.0.tgz", + "integrity": "sha512-ONy5bjppoohtNkFJRqdz1gscXamMzN3wQy1YH9qO2FiNpgjLhpz/IPRGg0PpCjyz/pWfCOaNEaiEGCcjOFAjqw==", + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/scheduler": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "node_modules/setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", + "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==" + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/slick-carousel": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/slick-carousel/-/slick-carousel-1.8.1.tgz", + "integrity": "sha512-XB9Ftrf2EEKfzoQXt3Nitrt/IPbT+f1fgqBdoxO3W/+JYvtEOW6EgxnWfr9GH6nmULv7Y2tPmEX3koxThVmebA==", + "peerDependencies": { + "jquery": ">=1.8.0" + } + }, + "node_modules/source-map": { + "version": "0.8.0-beta.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "dependencies": { + "whatwg-url": "^7.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz", + "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "node_modules/ssr-window": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/ssr-window/-/ssr-window-4.0.1.tgz", + "integrity": "sha512-5q936lkCk5Lg5hM6tG8Nutdym4vNiuFSWorslTzOn71PWb3Wnx44q/k2Ryn1LWA1G4FtxMzjywUFOiOxPkVGrA==" + }, + "node_modules/stacktrace-parser": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", + "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", + "dependencies": { + "type-fest": "^0.7.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/stream-browserify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", + "dependencies": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" + } + }, + "node_modules/stream-http": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.1.1.tgz", + "integrity": "sha512-S7OqaYu0EkFpgeGFb/NPOoPLxFko7TPqtEeFg5DXPB4v/KETHG0Ln6fRFrNezoelpaDKmycEmmZ81cC9DAwgYg==", + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" + } + }, + "node_modules/stream-parser": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/stream-parser/-/stream-parser-0.3.1.tgz", + "integrity": "sha1-FhhUhpRCACGhGC/wrxkRwSl2F3M=", + "dependencies": { + "debug": "2" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-convert": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string-convert/-/string-convert-0.2.1.tgz", + "integrity": "sha1-aYLMMEn7tM2F+LJFaLnZvznu/5c=" + }, + "node_modules/string-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", + "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=" + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz", + "integrity": "sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.3.1", + "side-channel": "^1.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/styled-jsx": { + "version": "5.0.0-beta.3", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.0-beta.3.tgz", + "integrity": "sha512-HtDDGSFPvmjHIqWf9n8Oo54tAoY/DTplvlyOH2+YOtD80Sp31Ap8ffSmxhgk5EkUoJ7xepdXMGT650mSffWuRA==", + "dependencies": { + "@babel/plugin-syntax-jsx": "7.14.5", + "@babel/types": "7.15.0", + "convert-source-map": "1.7.0", + "loader-utils": "1.2.3", + "source-map": "0.7.3", + "string-hash": "1.1.3", + "stylis": "3.5.4", + "stylis-rule-sheet": "0.0.10" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "react": ">= 16.8.0 || 17.x.x || 18.x.x" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + } + } + }, + "node_modules/styled-jsx/node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/stylis": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-3.5.4.tgz", + "integrity": "sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q==" + }, + "node_modules/stylis-rule-sheet": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz", + "integrity": "sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==", + "peerDependencies": { + "stylis": "^3.5.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/swiper": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/swiper/-/swiper-7.3.0.tgz", + "integrity": "sha512-pABfs5licxu2fmA53NrwVyeLMBKAMWBRfVbwKTF0PG40bCk3HDNWWqp1l/D3SQoO6/jx2rbKgVPymnAoXrcpKw==", + "funding": [ + { + "type": "patreon", + "url": "https://www.patreon.com/swiperjs" + }, + { + "type": "open_collective", + "url": "http://opencollective.com/swiper" + } + ], + "hasInstallScript": true, + "dependencies": { + "dom7": "^4.0.1", + "ssr-window": "^4.0.1" + }, + "engines": { + "node": ">= 4.7.0" + } + }, + "node_modules/table": { + "version": "6.7.3", + "resolved": "https://registry.npmjs.org/table/-/table-6.7.3.tgz", + "integrity": "sha512-5DkIxeA7XERBqMwJq0aHZOdMadBx4e6eDoFRuyT5VR82J0Ycg2DwM6GfA/EQAhJ+toRTaS1lIdSQCqgrmhPnlw==", + "dev": true, + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.1.tgz", + "integrity": "sha512-6CiMNDrzv0ZR916u2T+iRunnD60uWmNn8SkdB44/6stVORUg0aAkWO7PkOhpCmjmW8f2I/G/xnowD66fxGyQJg==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "node_modules/timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dependencies": { + "setimmediate": "^1.0.4" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", + "integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.0", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/tsparticles": { + "version": "1.37.4", + "resolved": "https://registry.npmjs.org/tsparticles/-/tsparticles-1.37.4.tgz", + "integrity": "sha512-ttfQX26U1WgeoRWqXv3sucVlYZJxcpKzi75rTvMOSZhtQ1FretywWc2ajM6SFygqV0ZRndE4cYlrKh71zeb6mQ==", + "hasInstallScript": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/matteobruni" + } + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tty-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", + "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", + "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/typescript": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.2.tgz", + "integrity": "sha512-5BlMof9H1yGt0P8/WF+wPNw6GfctgGjXp5hkblpyT+8rkASSmkUKMXrxR0Xg8ThVCi/JnHQiKXeBaEwCeQwMFw==", + "dev": true, + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/typewriter-effect": { + "version": "2.18.2", + "resolved": "https://registry.npmjs.org/typewriter-effect/-/typewriter-effect-2.18.2.tgz", + "integrity": "sha512-I6VLfaICftFgZ3sauoVrvHmqzD2r1t+roopD6pyQ1EV4fmq3kZ4ssfLJk9mPd1VHdnwb9XxSnDH09QHNJ/HrXw==", + "dependencies": { + "prop-types": "^15.6.2", + "raf": "^3.4.0" + }, + "peerDependencies": { + "react": "17.x", + "react-dom": "17.x" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dependencies": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/use-subscription": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/use-subscription/-/use-subscription-1.5.1.tgz", + "integrity": "sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA==", + "dependencies": { + "object-assign": "^4.1.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0" + } + }, + "node_modules/util": { + "version": "0.12.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", + "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==", + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "safe-buffer": "^5.1.2", + "which-typed-array": "^1.1.2" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "node_modules/vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" + }, + "node_modules/watchpack": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.1.1.tgz", + "integrity": "sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw==", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" + }, + "node_modules/whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.7.tgz", + "integrity": "sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw==", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.5", + "foreach": "^2.0.5", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/compat-data": { + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz", + "integrity": "sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==", + "peer": true + }, + "@babel/core": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz", + "integrity": "sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==", + "peer": true, + "requires": { + "@babel/code-frame": "^7.16.0", + "@babel/generator": "^7.16.0", + "@babel/helper-compilation-targets": "^7.16.0", + "@babel/helper-module-transforms": "^7.16.0", + "@babel/helpers": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0", + "source-map": "^0.5.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", + "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", + "peer": true, + "requires": { + "@babel/highlight": "^7.16.0" + } + }, + "@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "peer": true, + "requires": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + } + }, + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "peer": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "peer": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "peer": true + } + } + }, + "@babel/generator": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.0.tgz", + "integrity": "sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew==", + "peer": true, + "requires": { + "@babel/types": "^7.16.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "peer": true, + "requires": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "peer": true + } + } + }, + "@babel/helper-compilation-targets": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz", + "integrity": "sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==", + "peer": true, + "requires": { + "@babel/compat-data": "^7.16.0", + "@babel/helper-validator-option": "^7.14.5", + "browserslist": "^4.17.5", + "semver": "^6.3.0" + }, + "dependencies": { + "browserslist": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.18.1.tgz", + "integrity": "sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==", + "peer": true, + "requires": { + "caniuse-lite": "^1.0.30001280", + "electron-to-chromium": "^1.3.896", + "escalade": "^3.1.1", + "node-releases": "^2.0.1", + "picocolors": "^1.0.0" + } + }, + "node-releases": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", + "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", + "peer": true + } + } + }, + "@babel/helper-function-name": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz", + "integrity": "sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog==", + "peer": true, + "requires": { + "@babel/helper-get-function-arity": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/types": "^7.16.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "peer": true, + "requires": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-get-function-arity": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz", + "integrity": "sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ==", + "peer": true, + "requires": { + "@babel/types": "^7.16.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "peer": true, + "requires": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-hoist-variables": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz", + "integrity": "sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg==", + "peer": true, + "requires": { + "@babel/types": "^7.16.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "peer": true, + "requires": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz", + "integrity": "sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ==", + "peer": true, + "requires": { + "@babel/types": "^7.16.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "peer": true, + "requires": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-module-imports": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz", + "integrity": "sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==", + "peer": true, + "requires": { + "@babel/types": "^7.16.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "peer": true, + "requires": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-module-transforms": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz", + "integrity": "sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA==", + "peer": true, + "requires": { + "@babel/helper-module-imports": "^7.16.0", + "@babel/helper-replace-supers": "^7.16.0", + "@babel/helper-simple-access": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", + "@babel/helper-validator-identifier": "^7.15.7", + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "peer": true, + "requires": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz", + "integrity": "sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw==", + "peer": true, + "requires": { + "@babel/types": "^7.16.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "peer": true, + "requires": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-plugin-utils": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", + "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==" + }, + "@babel/helper-replace-supers": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz", + "integrity": "sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA==", + "peer": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.16.0", + "@babel/helper-optimise-call-expression": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "peer": true, + "requires": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-simple-access": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz", + "integrity": "sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw==", + "peer": true, + "requires": { + "@babel/types": "^7.16.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "peer": true, + "requires": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz", + "integrity": "sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw==", + "peer": true, + "requires": { + "@babel/types": "^7.16.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "peer": true, + "requires": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-validator-identifier": { + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" + }, + "@babel/helper-validator-option": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", + "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", + "peer": true + }, + "@babel/helpers": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.3.tgz", + "integrity": "sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w==", + "peer": true, + "requires": { + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.3", + "@babel/types": "^7.16.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "peer": true, + "requires": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/highlight": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", + "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", + "requires": { + "@babel/helper-validator-identifier": "^7.15.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.4.tgz", + "integrity": "sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==", + "peer": true + }, + "@babel/plugin-syntax-jsx": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz", + "integrity": "sha512-ohuFIsOMXJnbOMRfX7/w7LocdR6R7whhuRD4ax8IipLcLPlZGJKkBxgHp++U4N/vKyU16/YDQr2f5seajD3jIw==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/runtime": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz", + "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/runtime-corejs3": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.16.3.tgz", + "integrity": "sha512-IAdDC7T0+wEB4y2gbIL0uOXEYpiZEeuFUTVbdGq+UwCcF35T/tS8KrmMomEwEc5wBbyfH3PJVpTSUqrhPDXFcQ==", + "dev": true, + "requires": { + "core-js-pure": "^3.19.0", + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.0.tgz", + "integrity": "sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==", + "peer": true, + "requires": { + "@babel/code-frame": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/types": "^7.16.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", + "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", + "peer": true, + "requires": { + "@babel/highlight": "^7.16.0" + } + }, + "@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "peer": true, + "requires": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/traverse": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.3.tgz", + "integrity": "sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag==", + "peer": true, + "requires": { + "@babel/code-frame": "^7.16.0", + "@babel/generator": "^7.16.0", + "@babel/helper-function-name": "^7.16.0", + "@babel/helper-hoist-variables": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", + "@babel/parser": "^7.16.3", + "@babel/types": "^7.16.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", + "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", + "peer": true, + "requires": { + "@babel/highlight": "^7.16.0" + } + }, + "@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "peer": true, + "requires": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + } + }, + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "peer": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "peer": true + } + } + }, + "@babel/types": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", + "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", + "requires": { + "@babel/helper-validator-identifier": "^7.14.9", + "to-fast-properties": "^2.0.0" + } + }, + "@eslint/eslintrc": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "globals": { + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", + "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + } + } + }, + "@hapi/accept": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@hapi/accept/-/accept-5.0.2.tgz", + "integrity": "sha512-CmzBx/bXUR8451fnZRuZAJRlzgm0Jgu5dltTX/bszmR2lheb9BpyN47Q1RbaGTsvFzn0PXAEs+lXDKfshccYZw==", + "requires": { + "@hapi/boom": "9.x.x", + "@hapi/hoek": "9.x.x" + } + }, + "@hapi/boom": { + "version": "9.1.4", + "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-9.1.4.tgz", + "integrity": "sha512-Ls1oH8jaN1vNsqcaHVYJrKmgMcKsC1wcp8bujvXrHaAqD2iDYq3HoOwsxwo09Cuda5R5nC0o0IxlrlTuvPuzSw==", + "requires": { + "@hapi/hoek": "9.x.x" + } + }, + "@hapi/hoek": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", + "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==" + }, + "@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "@napi-rs/triples": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@napi-rs/triples/-/triples-1.0.3.tgz", + "integrity": "sha512-jDJTpta+P4p1NZTFVLHJ/TLFVYVcOqv6l8xwOeBKNPMgY/zDYH/YH7SJbvrr/h1RcS9GzbPcLKGzpuK9cV56UA==" + }, + "@next/env": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/env/-/env-12.0.4.tgz", + "integrity": "sha512-QtZ6X5c6Zqa7oWs5csEmZ7xy+gLdtRKKg02SOT5l0Ziea4P5IU8mSOCyNC4fZmXewcRVjpbY+yGqAAP7hJUfOA==" + }, + "@next/eslint-plugin-next": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-12.0.4.tgz", + "integrity": "sha512-3N+LG+wQQB0JLfMj4YKkefWnjcsFVBmixRWdzbVBnt/cxbVZ0izf+BR1MzvrPX1oaP0OrYk8X/9Mn9Yftuajvg==", + "dev": true, + "requires": { + "glob": "7.1.7" + } + }, + "@next/polyfill-module": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/polyfill-module/-/polyfill-module-12.0.4.tgz", + "integrity": "sha512-mk9yCDNpfXINTJKFTZNgwYs7eqRFpc5D/49O/fKB59blihyKl1GY1sZ0l7a2bn5l1X/WuaZzcIfqnrwkneqeaQ==" + }, + "@next/react-dev-overlay": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/react-dev-overlay/-/react-dev-overlay-12.0.4.tgz", + "integrity": "sha512-9O0lXyzv5goFSmDwq9Hp8JE+DcObvd+bTXvmGSSvYR91AlIoVlH8/PwATx8Rf5YEuqggn/XKR1hn2kBYcbcGnA==", + "requires": { + "@babel/code-frame": "7.12.11", + "anser": "1.4.9", + "chalk": "4.0.0", + "classnames": "2.2.6", + "css.escape": "1.5.1", + "data-uri-to-buffer": "3.0.1", + "platform": "1.3.6", + "shell-quote": "1.7.3", + "source-map": "0.8.0-beta.0", + "stacktrace-parser": "0.1.10", + "strip-ansi": "6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@next/react-refresh-utils": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/react-refresh-utils/-/react-refresh-utils-12.0.4.tgz", + "integrity": "sha512-kNUDmpBaJ+8Lb8CtKNynRFF9oijCjUKKru6Ont+JKhti9//5dNFFIcuo607bJSH86un06OEK0TZUt5XWVlbkjw==", + "requires": {} + }, + "@next/swc-android-arm64": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.0.4.tgz", + "integrity": "sha512-6mXumia8ZPcy7bYu9kjItfWxrE6SFaJyqQDaFy9G9WrU9x3M1R1Yok8B2X1mboM8itD0tq+t3R/ebQEkkmevUw==", + "optional": true + }, + "@next/swc-darwin-arm64": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.0.4.tgz", + "integrity": "sha512-7WMen1qhF5JmjKD9S5IEgEoaPJOXyIZj/Nsqa8ZSWxdF5oogp3uYYbKb/rvMYoKzpIbjyoLH/OCM5lm5IFM4iw==", + "optional": true + }, + "@next/swc-darwin-x64": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.0.4.tgz", + "integrity": "sha512-PVgefMWjxP6CU1HQs39+Bfpjcue6qErJfvJ/+n2zimjLzyeQAmD6LM9f1lDSttW2LjKjasoxR5qkRNLVlqzlaA==", + "optional": true + }, + "@next/swc-linux-arm-gnueabihf": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.0.4.tgz", + "integrity": "sha512-8xGQu3sJiIdriKiCux3jDJ9pwivELEg7z2zfW0CqmQMbKNB7qP9lc0pq6CxshtKyXRMczNWRMtQ3Cjwep+UvNg==", + "optional": true + }, + "@next/swc-linux-arm64-gnu": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.0.4.tgz", + "integrity": "sha512-HhEWcBkqGr3E7SYLtN9VnYUGamAWaLcXawHN33Em0WP7gzXrBqz0iIJNH7uEzHDS6980EqU/rrkLyhCHrYSZgQ==", + "optional": true + }, + "@next/swc-linux-arm64-musl": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.0.4.tgz", + "integrity": "sha512-oZyQ9wjtE7OX9RlnovP7izNx2AR/RzTuYWU4Ttim8ssABsipQSxSlfRaeb+Qi6jTc6k+lrPhjRfaZ+fGv/m2Ag==", + "optional": true + }, + "@next/swc-linux-x64-gnu": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.0.4.tgz", + "integrity": "sha512-aBuf78QzL93T59Lk9kEGfHcA+9SzYIH7dGon1nqVxtAd2iqicKYNVaVcb38VKeiIBXMSUHXTdu6Ee053ZCOmSw==", + "optional": true + }, + "@next/swc-linux-x64-musl": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.0.4.tgz", + "integrity": "sha512-yDgqUqL4H8M3Y0hv30ZyL9UvjnK4iXmD4I6iJz+XIHSRdA/VUiyKKoL7okf9hxr0mSxBtagbZ5A3qEoW/VliUQ==", + "optional": true + }, + "@next/swc-win32-arm64-msvc": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.0.4.tgz", + "integrity": "sha512-evDUrEYsUo+PMHsedaymfZO98VwV9wNFzuWVCyKgqg6SD1ZRpzbpqYQY7aINIuqZVdIWZElBE6EM+oxaj7PuWQ==", + "optional": true + }, + "@next/swc-win32-ia32-msvc": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.0.4.tgz", + "integrity": "sha512-Lbmz0xlo8vW4EDWyzCfy3nGfqt7skqwxaERwe+vDVTBZ56mvJ5dsdyjqK24sxu4FFkWR7SaU4eNlHwZR+A3kTg==", + "optional": true + }, + "@next/swc-win32-x64-msvc": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.0.4.tgz", + "integrity": "sha512-f+7WNIJOno5QEelrmob+3vN5EZJb3KCkOrnvUsQ0+LCCD0dIPIhCjeHAh3BGj9msGu8ijnXvD7JxVxE5V26cnQ==", + "optional": true + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@rushstack/eslint-patch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.0.tgz", + "integrity": "sha512-JLo+Y592QzIE+q7Dl2pMUtt4q8SKYI5jDrZxrozEQxnGVOyYE+GWK9eLkwTaeN9DDctlaRAQ3TBmzZ1qdLE30A==", + "dev": true + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "dev": true + }, + "@types/node": { + "version": "16.11.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.9.tgz", + "integrity": "sha512-MKmdASMf3LtPzwLyRrFjtFFZ48cMf8jmX5VRYrDQiJa8Ybu5VAmkqBWqKU8fdCwD8ysw4mQ9nrEHvzg6gunR7A==" + }, + "@typescript-eslint/parser": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.33.0.tgz", + "integrity": "sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "debug": "^4.3.1" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@typescript-eslint/scope-manager": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz", + "integrity": "sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0" + } + }, + "@typescript-eslint/types": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz", + "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", + "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0", + "debug": "^4.3.1", + "globby": "^11.0.3", + "is-glob": "^4.0.1", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@typescript-eslint/visitor-keys": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", + "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.33.0", + "eslint-visitor-keys": "^2.0.0" + } + }, + "acorn": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", + "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==" + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "anser": { + "version": "1.4.9", + "resolved": "https://registry.npmjs.org/anser/-/anser-1.4.9.tgz", + "integrity": "sha512-AI+BjTeGt2+WFk4eWcqbQ7snZpDBt8SaLlj0RT2h5xfdWaiy51OjYvqwMrNzJLGy8iOAL6nKDITWO+rd4MkYEA==" + }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", + "dev": true, + "requires": { + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" + } + }, + "array-includes": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", + "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + } + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "array.prototype.flat": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", + "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0" + } + }, + "array.prototype.flatmap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", + "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0" + } + }, + "asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "assert": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz", + "integrity": "sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==", + "requires": { + "es6-object-assign": "^1.1.0", + "is-nan": "^1.2.1", + "object-is": "^1.0.1", + "util": "^0.12.0" + } + }, + "ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", + "dev": true + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true + }, + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==" + }, + "axe-core": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.3.5.tgz", + "integrity": "sha512-WKTW1+xAzhMS5dJsxWkliixlO/PqC4VhmO9T4juNYcaTg9jzWiJsou6m5pxWYGfigWbwzJWeFY6z47a+4neRXA==", + "dev": true + }, + "axios": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.25.0.tgz", + "integrity": "sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==", + "requires": { + "follow-redirects": "^1.14.7" + } + }, + "axobject-query": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", + "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + }, + "bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "4.16.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", + "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", + "requires": { + "caniuse-lite": "^1.0.30001219", + "colorette": "^1.2.2", + "electron-to-chromium": "^1.3.723", + "escalade": "^3.1.1", + "node-releases": "^1.1.71" + } + }, + "buffer": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", + "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001282", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001282.tgz", + "integrity": "sha512-YhF/hG6nqBEllymSIjLtR2iWDDnChvhnVJqp+vloyt2tEHFG1yBR+ac2B/rOw0qOK0m0lEXU2dv4E/sMk5P9Kg==" + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chokidar": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.3.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + } + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "classnames": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", + "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "colorette": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", + "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "requires": { + "safe-buffer": "~5.1.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "core-js-pure": { + "version": "3.19.1", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.19.1.tgz", + "integrity": "sha512-Q0Knr8Es84vtv62ei6/6jXH/7izKmOrtrxH9WJTHLCMAVeU+8TF8z8Nr08CsH4Ot0oJKzBzJJL9SJBYIv7WlfQ==", + "dev": true + }, + "countup.js": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/countup.js/-/countup.js-2.0.8.tgz", + "integrity": "sha512-pW3xwwD+hB+xmtI16xFcuLS0D5hSQqPQWkZOdgpKQyzxCquDNo2VCFPkRw12vmvdpnicXVTcjmYiakG6biwINg==" + }, + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=" + }, + "cssnano-preset-simple": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssnano-preset-simple/-/cssnano-preset-simple-3.0.0.tgz", + "integrity": "sha512-vxQPeoMRqUT3c/9f0vWeVa2nKQIHFpogtoBvFdW4GQ3IvEJ6uauCP6p3Y5zQDLFcI7/+40FTgX12o7XUL0Ko+w==", + "requires": { + "caniuse-lite": "^1.0.30001202" + } + }, + "cssnano-simple": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssnano-simple/-/cssnano-simple-3.0.0.tgz", + "integrity": "sha512-oU3ueli5Dtwgh0DyeohcIEE00QVfbPR3HzyXdAl89SfnQG3y0/qcpfLVW+jPIh3/rgMZGwuW96rejZGaYE9eUg==", + "requires": { + "cssnano-preset-simple": "^3.0.0" + } + }, + "damerau-levenshtein": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.7.tgz", + "integrity": "sha512-VvdQIPGdWP0SqFXghj79Wf/5LArmreyMsGLa6FG6iC4t3j7j5s71TrwWmT/4akbDQIqjfACkLZmjXhA7g2oUZw==", + "dev": true + }, + "data-uri-to-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", + "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "deepmerge": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz", + "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==" + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "requires": { + "object-keys": "^1.0.12" + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "dom7": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/dom7/-/dom7-4.0.1.tgz", + "integrity": "sha512-y/RWjw3gK3qQnZz6IqDaIoqH6+xBhcB3Wsh5HFwl0abwuO/NAgbSB31ZbxtBDcuDe8jAX5NYUNDLTx4Ul48sIw==", + "requires": { + "ssr-window": "^4.0.0" + } + }, + "domain-browser": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-4.19.0.tgz", + "integrity": "sha512-fRA+BaAWOR/yr/t7T9E9GJztHPeFjj8U35ajyAjCDtAAnTn1Rc1f6W6VGPJrO1tkQv9zWu+JRof7z6oQtiYVFQ==" + }, + "electron-to-chromium": { + "version": "1.3.904", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.904.tgz", + "integrity": "sha512-x5uZWXcVNYkTh4JubD7KSC1VMKz0vZwJUqVwY3ihsW0bst1BXDe494Uqbg3Y0fDGVjJqA8vEeGuvO5foyH2+qw==" + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" + }, + "encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "requires": { + "iconv-lite": "^0.6.2" + } + }, + "enquire.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/enquire.js/-/enquire.js-2.1.6.tgz", + "integrity": "sha1-PoeAybi4NQhMP2DhZtvDwqPImBQ=" + }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1" + } + }, + "es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es6-object-assign": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", + "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=" + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "eslint": { + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "dev": true, + "requires": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "globals": { + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", + "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + } + } + }, + "eslint-config-next": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-12.0.4.tgz", + "integrity": "sha512-uBOHBjYaRF0MaS5feB7lFOncHhSrtFxZy/oud6pEW/wn/JUQtZWeH/J4JyODBfX+G7h9mttgHLZNmUjNJis6Kw==", + "dev": true, + "requires": { + "@next/eslint-plugin-next": "12.0.4", + "@rushstack/eslint-patch": "^1.0.6", + "@typescript-eslint/parser": "^4.20.0", + "eslint-import-resolver-node": "^0.3.4", + "eslint-import-resolver-typescript": "^2.4.0", + "eslint-plugin-import": "^2.22.1", + "eslint-plugin-jsx-a11y": "^6.4.1", + "eslint-plugin-react": "^7.23.1", + "eslint-plugin-react-hooks": "^4.2.0" + } + }, + "eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "dev": true, + "requires": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + } + } + }, + "eslint-import-resolver-typescript": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.5.0.tgz", + "integrity": "sha512-qZ6e5CFr+I7K4VVhQu3M/9xGv9/YmwsEXrsm3nimw8vWaVHRDrQRp26BgCypTxBp3vUp4o5aVEJRiy0F2DFddQ==", + "dev": true, + "requires": { + "debug": "^4.3.1", + "glob": "^7.1.7", + "is-glob": "^4.0.1", + "resolve": "^1.20.0", + "tsconfig-paths": "^3.9.0" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "eslint-module-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.1.tgz", + "integrity": "sha512-fjoetBXQZq2tSTWZ9yWVl2KuFrTZZH3V+9iD1V1RfpDgxzJR+mPd/KZmMiA8gbPqdBzpNiEHOuT7IYEWxrH0zQ==", + "dev": true, + "requires": { + "debug": "^3.2.7", + "find-up": "^2.1.0", + "pkg-dir": "^2.0.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + } + } + } + }, + "eslint-plugin-import": { + "version": "2.25.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.3.tgz", + "integrity": "sha512-RzAVbby+72IB3iOEL8clzPLzL3wpDrlwjsTBAQXgyp5SeTqqY+0bFubwuo+y/HLhNZcXV4XqTBO4LGsfyHIDXg==", + "dev": true, + "requires": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.1", + "has": "^1.0.3", + "is-core-module": "^2.8.0", + "is-glob": "^4.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.5", + "resolve": "^1.20.0", + "tsconfig-paths": "^3.11.0" + }, + "dependencies": { + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + } + } + }, + "eslint-plugin-jsx-a11y": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz", + "integrity": "sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==", + "dev": true, + "requires": { + "@babel/runtime": "^7.16.3", + "aria-query": "^4.2.2", + "array-includes": "^3.1.4", + "ast-types-flow": "^0.0.7", + "axe-core": "^4.3.5", + "axobject-query": "^2.2.0", + "damerau-levenshtein": "^1.0.7", + "emoji-regex": "^9.2.2", + "has": "^1.0.3", + "jsx-ast-utils": "^3.2.1", + "language-tags": "^1.0.5", + "minimatch": "^3.0.4" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.3.tgz", + "integrity": "sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + } + } + }, + "eslint-plugin-react": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.27.1.tgz", + "integrity": "sha512-meyunDjMMYeWr/4EBLTV1op3iSG3mjT/pz5gti38UzfM4OPpNc2m0t2xvKCOMU5D6FSdd34BIMFOvQbW+i8GAA==", + "dev": true, + "requires": { + "array-includes": "^3.1.4", + "array.prototype.flatmap": "^1.2.5", + "doctrine": "^2.1.0", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.0.4", + "object.entries": "^1.1.5", + "object.fromentries": "^2.0.5", + "object.hasown": "^1.1.0", + "object.values": "^1.1.5", + "prop-types": "^15.7.2", + "resolve": "^2.0.0-next.3", + "semver": "^6.3.0", + "string.prototype.matchall": "^4.0.6" + }, + "dependencies": { + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "resolve": { + "version": "2.0.0-next.3", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", + "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", + "dev": true, + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + } + } + }, + "eslint-plugin-react-hooks": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.3.0.tgz", + "integrity": "sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA==", + "dev": true, + "requires": {} + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "dependencies": { + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + } + } + }, + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } + } + }, + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + }, + "espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "dev": true, + "requires": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-glob": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", + "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", + "dev": true + }, + "follow-redirects": { + "version": "1.14.7", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.7.tgz", + "integrity": "sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ==" + }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" + }, + "formik": { + "version": "2.2.9", + "resolved": "https://registry.npmjs.org/formik/-/formik-2.2.9.tgz", + "integrity": "sha512-LQLcISMmf1r5at4/gyJigGn0gOwFbeEAlji+N9InZF6LIMXnFNkO42sCI8Jt84YZggpD4cPWObAZaxpEFtSzNA==", + "requires": { + "deepmerge": "^2.1.1", + "hoist-non-react-statics": "^3.3.0", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "react-fast-compare": "^2.0.1", + "tiny-warning": "^1.0.2", + "tslib": "^1.10.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "peer": true + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-orientation": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/get-orientation/-/get-orientation-1.1.2.tgz", + "integrity": "sha512-/pViTfifW+gBbh/RnlFYHINvELT9Znt+SYyDKAUL6uV6By019AK/s+i9XP4jSwq7lwP38Fd8HVeTxym3+hkwmQ==", + "requires": { + "stream-parser": "^0.3.1" + } + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "peer": true + }, + "globby": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", + "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + }, + "dependencies": { + "ignore": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", + "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==", + "dev": true + } + } + }, + "graceful-fs": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "requires": { + "has-symbols": "^1.0.2" + } + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + }, + "dependencies": { + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + } + } + }, + "http-errors": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" + }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "image-size": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.0.0.tgz", + "integrity": "sha512-JLJ6OwBfO1KcA+TvJT+v8gbE6iWbj24LyDNFgFEN0lzegn6cC6a/p3NIDaepMsJjQjlUWqIC7wJv8lBFxPNjcw==", + "requires": { + "queue": "6.0.2" + } + }, + "immutable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", + "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==" + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" + }, + "is-core-module": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", + "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-nan": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", + "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==" + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-number-object": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==" + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typed-array": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.8.tgz", + "integrity": "sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA==", + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.5", + "foreach": "^2.0.5", + "has-tostringtag": "^1.0.0" + } + }, + "is-weakref": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", + "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", + "requires": { + "call-bind": "^1.0.0" + } + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "jest-worker": { + "version": "27.0.0-next.5", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.0-next.5.tgz", + "integrity": "sha512-mk0umAQ5lT+CaOJ+Qp01N6kz48sJG2kr2n1rX0koqKf6FIygQV0qLOdN9SCYID4IVeSigDOcPeGLozdMLYfb5g==", + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jquery": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz", + "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==", + "peer": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "peer": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "json2mq": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/json2mq/-/json2mq-0.2.0.tgz", + "integrity": "sha1-tje9O6nqvhIsg+lyBIOusQ0skEo=", + "requires": { + "string-convert": "^0.2.0" + } + }, + "json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "peer": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "jsx-ast-utils": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz", + "integrity": "sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==", + "dev": true, + "requires": { + "array-includes": "^3.1.3", + "object.assign": "^4.1.2" + } + }, + "language-subtag-registry": { + "version": "0.3.21", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz", + "integrity": "sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==", + "dev": true + }, + "language-tags": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", + "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=", + "dev": true, + "requires": { + "language-subtag-registry": "~0.3.2" + } + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" + }, + "lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=" + }, + "lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "requires": { + "semver": "^6.0.0" + } + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "nanoid": { + "version": "3.1.30", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", + "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==" + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "next": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/next/-/next-12.0.4.tgz", + "integrity": "sha512-1pvjcSZBm5OLoGmDhp4JwKwIE798WbqUNLuyU7w6a2jUkdWaxOYtkE/ROXQTi2pXHj7+6rm68AvhxROLX2NHQg==", + "requires": { + "@babel/runtime": "7.15.4", + "@hapi/accept": "5.0.2", + "@napi-rs/triples": "1.0.3", + "@next/env": "12.0.4", + "@next/polyfill-module": "12.0.4", + "@next/react-dev-overlay": "12.0.4", + "@next/react-refresh-utils": "12.0.4", + "@next/swc-android-arm64": "12.0.4", + "@next/swc-darwin-arm64": "12.0.4", + "@next/swc-darwin-x64": "12.0.4", + "@next/swc-linux-arm-gnueabihf": "12.0.4", + "@next/swc-linux-arm64-gnu": "12.0.4", + "@next/swc-linux-arm64-musl": "12.0.4", + "@next/swc-linux-x64-gnu": "12.0.4", + "@next/swc-linux-x64-musl": "12.0.4", + "@next/swc-win32-arm64-msvc": "12.0.4", + "@next/swc-win32-ia32-msvc": "12.0.4", + "@next/swc-win32-x64-msvc": "12.0.4", + "acorn": "8.5.0", + "assert": "2.0.0", + "browserify-zlib": "0.2.0", + "browserslist": "4.16.6", + "buffer": "5.6.0", + "caniuse-lite": "^1.0.30001228", + "chalk": "2.4.2", + "chokidar": "3.5.1", + "constants-browserify": "1.0.0", + "crypto-browserify": "3.12.0", + "cssnano-simple": "3.0.0", + "domain-browser": "4.19.0", + "encoding": "0.1.13", + "etag": "1.8.1", + "events": "3.3.0", + "find-cache-dir": "3.3.1", + "get-orientation": "1.1.2", + "https-browserify": "1.0.0", + "image-size": "1.0.0", + "jest-worker": "27.0.0-next.5", + "node-fetch": "2.6.1", + "node-html-parser": "1.4.9", + "os-browserify": "0.3.0", + "p-limit": "3.1.0", + "path-browserify": "1.0.1", + "postcss": "8.2.15", + "process": "0.11.10", + "querystring-es3": "0.2.1", + "raw-body": "2.4.1", + "react-is": "17.0.2", + "react-refresh": "0.8.3", + "regenerator-runtime": "0.13.4", + "stream-browserify": "3.0.0", + "stream-http": "3.1.1", + "string_decoder": "1.3.0", + "styled-jsx": "5.0.0-beta.3", + "timers-browserify": "2.0.12", + "tty-browserify": "0.0.1", + "use-subscription": "1.5.1", + "util": "0.12.4", + "vm-browserify": "1.1.2", + "watchpack": "2.1.1" + } + }, + "node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + }, + "node-html-parser": { + "version": "1.4.9", + "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-1.4.9.tgz", + "integrity": "sha512-UVcirFD1Bn0O+TSmloHeHqZZCxHjvtIeGdVdGMhyZ8/PWlEiZaZ5iJzR189yKZr8p0FXN58BUeC7RHRkf/KYGw==", + "requires": { + "he": "1.2.0" + } + }, + "node-releases": { + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-inspect": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==" + }, + "object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "object.entries": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", + "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "object.fromentries": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", + "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "object.hasown": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz", + "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "object.values": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + }, + "dependencies": { + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + } + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "peer": true + }, + "picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "requires": { + "find-up": "^4.0.0" + } + }, + "platform": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz", + "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==" + }, + "postcss": { + "version": "8.2.15", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.15.tgz", + "integrity": "sha512-2zO3b26eJD/8rb106Qu2o7Qgg52ND5HPjcyQiK2B98O388h43A448LCslC0dI2P97wCAQRJsFvwTRcXxTKds+Q==", + "requires": { + "colorette": "^1.2.2", + "nanoid": "^3.1.23", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + }, + "dependencies": { + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + } + } + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" + }, + "queue": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", + "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", + "requires": { + "inherits": "~2.0.3" + } + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "requires": { + "performance-now": "^2.1.0" + } + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "raw-body": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz", + "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.3", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + } + } + }, + "react": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "react-circular-progressbar": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/react-circular-progressbar/-/react-circular-progressbar-2.0.4.tgz", + "integrity": "sha512-OfX0ThSxRYEVGaQSt0DlXfyl5w4DbXHsXetyeivmoQrh9xA9bzVPHNf8aAhOIiwiaxX2WYWpLDB3gcpsDJ9oww==", + "requires": {} + }, + "react-countup": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/react-countup/-/react-countup-6.1.0.tgz", + "integrity": "sha512-0tN65l4ksaNa4rm8ZKshpGxbIHQ4RAh8TGaKYp06EZ7nZw+haXpW3dQTVDhTey9+10jDkJgdzyXKDmC96c1M8g==", + "requires": { + "countup.js": "^2.0.8" + } + }, + "react-dom": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", + "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "scheduler": "^0.20.2" + } + }, + "react-fast-compare": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-2.0.4.tgz", + "integrity": "sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==" + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, + "react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + }, + "react-modal-video": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/react-modal-video/-/react-modal-video-1.2.8.tgz", + "integrity": "sha512-RWOxr1l8Ovk97O80xKKzmIR+D2wPmI5KgNDsxJbW7lA+k0iYmn/5cbPczfTbYQy/qmHfZho16zi2rJ7oLdCQBQ==", + "requires": { + "react-transition-group": "^2.2.1" + }, + "dependencies": { + "dom-helpers": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz", + "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==", + "requires": { + "@babel/runtime": "^7.1.2" + } + }, + "react-transition-group": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.9.0.tgz", + "integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==", + "requires": { + "dom-helpers": "^3.4.0", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2", + "react-lifecycles-compat": "^3.0.4" + } + } + } + }, + "react-refresh": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz", + "integrity": "sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg==" + }, + "react-scroll": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/react-scroll/-/react-scroll-1.8.4.tgz", + "integrity": "sha512-J9rFqmdzularCXJoK2vleHVg2//y9Fs6zh7K13x7Yz3Y1kHPfQ/TTq029L09q1Gr5/5JjFLBOB2Sa3yYIqyTyQ==", + "requires": { + "lodash.throttle": "^4.1.1", + "prop-types": "^15.7.2" + } + }, + "react-slick": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/react-slick/-/react-slick-0.28.1.tgz", + "integrity": "sha512-JwRQXoWGJRbUTE7eZI1rGIHaXX/4YuwX6gn7ulfvUZ4vFDVQAA25HcsHSYaUiRCduTr6rskyIuyPMpuG6bbluw==", + "requires": { + "classnames": "^2.2.5", + "enquire.js": "^2.1.6", + "json2mq": "^0.2.0", + "lodash.debounce": "^4.0.8", + "resize-observer-polyfill": "^1.5.0" + } + }, + "react-tsparticles": { + "version": "1.37.4", + "resolved": "https://registry.npmjs.org/react-tsparticles/-/react-tsparticles-1.37.4.tgz", + "integrity": "sha512-OFLRC9Tsc4KBcRIhVJBgDY9hsZfkBvz5vr+nYhdiUuVe2e31XkL5FAZYWFvhm/wxZW2ZqwVtBPPNod2KUKiISg==", + "requires": { + "fast-deep-equal": "^3.1.3", + "tsparticles": "^1.37.4" + } + }, + "react-visibility-sensor": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/react-visibility-sensor/-/react-visibility-sensor-5.1.1.tgz", + "integrity": "sha512-cTUHqIK+zDYpeK19rzW6zF9YfT4486TIgizZW53wEZ+/GPBbK7cNS0EHyJVyHYacwFEvvHLEKfgJndbemWhB/w==", + "requires": { + "prop-types": "^15.7.2" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "regenerator-runtime": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.4.tgz", + "integrity": "sha512-plpwicqEzfEyTQohIKktWigcLzmNStMGwbOUbykx51/29Z3JOGYldaaNGK7ngNXV+UcoqvIMmloZ48Sr74sd+g==" + }, + "regexp.prototype.flags": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", + "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, + "resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" + }, + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sass": { + "version": "1.45.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.45.0.tgz", + "integrity": "sha512-ONy5bjppoohtNkFJRqdz1gscXamMzN3wQy1YH9qO2FiNpgjLhpz/IPRGg0PpCjyz/pWfCOaNEaiEGCcjOFAjqw==", + "requires": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + } + }, + "scheduler": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "shell-quote": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", + "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==" + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } + } + }, + "slick-carousel": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/slick-carousel/-/slick-carousel-1.8.1.tgz", + "integrity": "sha512-XB9Ftrf2EEKfzoQXt3Nitrt/IPbT+f1fgqBdoxO3W/+JYvtEOW6EgxnWfr9GH6nmULv7Y2tPmEX3koxThVmebA==", + "requires": {} + }, + "source-map": { + "version": "0.8.0-beta.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "requires": { + "whatwg-url": "^7.0.0" + } + }, + "source-map-js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz", + "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==" + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "ssr-window": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/ssr-window/-/ssr-window-4.0.1.tgz", + "integrity": "sha512-5q936lkCk5Lg5hM6tG8Nutdym4vNiuFSWorslTzOn71PWb3Wnx44q/k2Ryn1LWA1G4FtxMzjywUFOiOxPkVGrA==" + }, + "stacktrace-parser": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", + "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", + "requires": { + "type-fest": "^0.7.1" + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "stream-browserify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", + "requires": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" + } + }, + "stream-http": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.1.1.tgz", + "integrity": "sha512-S7OqaYu0EkFpgeGFb/NPOoPLxFko7TPqtEeFg5DXPB4v/KETHG0Ln6fRFrNezoelpaDKmycEmmZ81cC9DAwgYg==", + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" + } + }, + "stream-parser": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/stream-parser/-/stream-parser-0.3.1.tgz", + "integrity": "sha1-FhhUhpRCACGhGC/wrxkRwSl2F3M=", + "requires": { + "debug": "2" + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "string-convert": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string-convert/-/string-convert-0.2.1.tgz", + "integrity": "sha1-aYLMMEn7tM2F+LJFaLnZvznu/5c=" + }, + "string-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", + "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=" + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + } + } + }, + "string.prototype.matchall": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz", + "integrity": "sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.3.1", + "side-channel": "^1.0.4" + } + }, + "string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "styled-jsx": { + "version": "5.0.0-beta.3", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.0-beta.3.tgz", + "integrity": "sha512-HtDDGSFPvmjHIqWf9n8Oo54tAoY/DTplvlyOH2+YOtD80Sp31Ap8ffSmxhgk5EkUoJ7xepdXMGT650mSffWuRA==", + "requires": { + "@babel/plugin-syntax-jsx": "7.14.5", + "@babel/types": "7.15.0", + "convert-source-map": "1.7.0", + "loader-utils": "1.2.3", + "source-map": "0.7.3", + "string-hash": "1.1.3", + "stylis": "3.5.4", + "stylis-rule-sheet": "0.0.10" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + } + } + }, + "stylis": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-3.5.4.tgz", + "integrity": "sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q==" + }, + "stylis-rule-sheet": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz", + "integrity": "sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==", + "requires": {} + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "swiper": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/swiper/-/swiper-7.3.0.tgz", + "integrity": "sha512-pABfs5licxu2fmA53NrwVyeLMBKAMWBRfVbwKTF0PG40bCk3HDNWWqp1l/D3SQoO6/jx2rbKgVPymnAoXrcpKw==", + "requires": { + "dom7": "^4.0.1", + "ssr-window": "^4.0.1" + } + }, + "table": { + "version": "6.7.3", + "resolved": "https://registry.npmjs.org/table/-/table-6.7.3.tgz", + "integrity": "sha512-5DkIxeA7XERBqMwJq0aHZOdMadBx4e6eDoFRuyT5VR82J0Ycg2DwM6GfA/EQAhJ+toRTaS1lIdSQCqgrmhPnlw==", + "dev": true, + "requires": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "ajv": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.1.tgz", + "integrity": "sha512-6CiMNDrzv0ZR916u2T+iRunnD60uWmNn8SkdB44/6stVORUg0aAkWO7PkOhpCmjmW8f2I/G/xnowD66fxGyQJg==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "requires": { + "setimmediate": "^1.0.4" + } + }, + "tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "requires": { + "punycode": "^2.1.0" + } + }, + "tsconfig-paths": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", + "integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "tsparticles": { + "version": "1.37.4", + "resolved": "https://registry.npmjs.org/tsparticles/-/tsparticles-1.37.4.tgz", + "integrity": "sha512-ttfQX26U1WgeoRWqXv3sucVlYZJxcpKzi75rTvMOSZhtQ1FretywWc2ajM6SFygqV0ZRndE4cYlrKh71zeb6mQ==" + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + }, + "tty-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", + "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==" + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", + "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==" + }, + "typescript": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.2.tgz", + "integrity": "sha512-5BlMof9H1yGt0P8/WF+wPNw6GfctgGjXp5hkblpyT+8rkASSmkUKMXrxR0Xg8ThVCi/JnHQiKXeBaEwCeQwMFw==", + "dev": true, + "peer": true + }, + "typewriter-effect": { + "version": "2.18.2", + "resolved": "https://registry.npmjs.org/typewriter-effect/-/typewriter-effect-2.18.2.tgz", + "integrity": "sha512-I6VLfaICftFgZ3sauoVrvHmqzD2r1t+roopD6pyQ1EV4fmq3kZ4ssfLJk9mPd1VHdnwb9XxSnDH09QHNJ/HrXw==", + "requires": { + "prop-types": "^15.6.2", + "raf": "^3.4.0" + } + }, + "unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + } + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "use-subscription": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/use-subscription/-/use-subscription-1.5.1.tgz", + "integrity": "sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA==", + "requires": { + "object-assign": "^4.1.1" + } + }, + "util": { + "version": "0.12.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", + "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==", + "requires": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "safe-buffer": "^5.1.2", + "which-typed-array": "^1.1.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" + }, + "watchpack": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.1.1.tgz", + "integrity": "sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw==", + "requires": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + } + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" + }, + "whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-typed-array": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.7.tgz", + "integrity": "sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw==", + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.5", + "foreach": "^2.0.5", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.7" + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..f059694 --- /dev/null +++ b/package.json @@ -0,0 +1,36 @@ +{ + "name": "vie-react", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "export": "next build && next export", + "start": "next start", + "lint": "next lint" + }, + "dependencies": { + "axios": "^0.25.0", + "formik": "^2.2.9", + "next": "12.0.4", + "react": "17.0.2", + "react-circular-progressbar": "^2.0.4", + "react-countup": "^6.1.0", + "react-dom": "17.0.2", + "react-modal-video": "^1.2.8", + "react-scroll": "^1.8.4", + "react-slick": "^0.28.1", + "react-tsparticles": "^1.37.4", + "react-visibility-sensor": "^5.1.1", + "sass": "^1.45.0", + "slick-carousel": "^1.8.1", + "swiper": "^7.3.0", + "typewriter-effect": "^2.18.2" + }, + "devDependencies": { + "eslint": "7.32.0", + "eslint-config-next": "12.0.4" + }, + "resolutions": { + "react-countup/countup.js": "2.5.0" + } +} \ No newline at end of file diff --git a/public/css/animate.css b/public/css/animate.css new file mode 100644 index 0000000..274c303 --- /dev/null +++ b/public/css/animate.css @@ -0,0 +1,3263 @@ +@charset "UTF-8"; +/* +Animate.css - http://daneden.me/animate +Licensed under the ☺ license (http://licence.visualidiot.com/) + +Copyright (c) 2012 Dan Eden + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ +body { /* Addresses a small issue in webkit: http://bit.ly/NEdoDq */ + -webkit-backface-visibility: hidden; +} +.animated { + -webkit-animation-duration: 1s; + -moz-animation-duration: 1s; + -o-animation-duration: 1s; + animation-duration: 1s; + -webkit-animation-fill-mode: both; + -moz-animation-fill-mode: both; + -o-animation-fill-mode: both; + animation-fill-mode: both; +} + +.animated.hinge { + -webkit-animation-duration: 2s; + -moz-animation-duration: 2s; + -o-animation-duration: 2s; + animation-duration: 2s; +} + +@-webkit-keyframes flash { + 0%, 50%, 100% {opacity: 1;} + 25%, 75% {opacity: 0;} +} + +@-moz-keyframes flash { + 0%, 50%, 100% {opacity: 1;} + 25%, 75% {opacity: 0;} +} + +@-o-keyframes flash { + 0%, 50%, 100% {opacity: 1;} + 25%, 75% {opacity: 0;} +} + +@keyframes flash { + 0%, 50%, 100% {opacity: 1;} + 25%, 75% {opacity: 0;} +} + +.flash { + -webkit-animation-name: flash; + -moz-animation-name: flash; + -o-animation-name: flash; + animation-name: flash; +} +@-webkit-keyframes shake { + 0%, 100% {-webkit-transform: translateX(0);} + 10%, 30%, 50%, 70%, 90% {-webkit-transform: translateX(-10px);} + 20%, 40%, 60%, 80% {-webkit-transform: translateX(10px);} +} + +@-moz-keyframes shake { + 0%, 100% {-moz-transform: translateX(0);} + 10%, 30%, 50%, 70%, 90% {-moz-transform: translateX(-10px);} + 20%, 40%, 60%, 80% {-moz-transform: translateX(10px);} +} + +@-o-keyframes shake { + 0%, 100% {-o-transform: translateX(0);} + 10%, 30%, 50%, 70%, 90% {-o-transform: translateX(-10px);} + 20%, 40%, 60%, 80% {-o-transform: translateX(10px);} +} + +@keyframes shake { + 0%, 100% {transform: translateX(0);} + 10%, 30%, 50%, 70%, 90% {transform: translateX(-10px);} + 20%, 40%, 60%, 80% {transform: translateX(10px);} +} + +.shake { + -webkit-animation-name: shake; + -moz-animation-name: shake; + -o-animation-name: shake; + animation-name: shake; +} +@-webkit-keyframes bounce { + 0%, 20%, 50%, 80%, 100% {-webkit-transform: translateY(0);} + 40% {-webkit-transform: translateY(-30px);} + 60% {-webkit-transform: translateY(-15px);} +} + +@-moz-keyframes bounce { + 0%, 20%, 50%, 80%, 100% {-moz-transform: translateY(0);} + 40% {-moz-transform: translateY(-30px);} + 60% {-moz-transform: translateY(-15px);} +} + +@-o-keyframes bounce { + 0%, 20%, 50%, 80%, 100% {-o-transform: translateY(0);} + 40% {-o-transform: translateY(-30px);} + 60% {-o-transform: translateY(-15px);} +} +@keyframes bounce { + 0%, 20%, 50%, 80%, 100% {transform: translateY(0);} + 40% {transform: translateY(-30px);} + 60% {transform: translateY(-15px);} +} + +.bounce { + -webkit-animation-name: bounce; + -moz-animation-name: bounce; + -o-animation-name: bounce; + animation-name: bounce; +} +@-webkit-keyframes tada { + 0% {-webkit-transform: scale(1);} + 10%, 20% {-webkit-transform: scale(0.9) rotate(-3deg);} + 30%, 50%, 70%, 90% {-webkit-transform: scale(1.1) rotate(3deg);} + 40%, 60%, 80% {-webkit-transform: scale(1.1) rotate(-3deg);} + 100% {-webkit-transform: scale(1) rotate(0);} +} + +@-moz-keyframes tada { + 0% {-moz-transform: scale(1);} + 10%, 20% {-moz-transform: scale(0.9) rotate(-3deg);} + 30%, 50%, 70%, 90% {-moz-transform: scale(1.1) rotate(3deg);} + 40%, 60%, 80% {-moz-transform: scale(1.1) rotate(-3deg);} + 100% {-moz-transform: scale(1) rotate(0);} +} + +@-o-keyframes tada { + 0% {-o-transform: scale(1);} + 10%, 20% {-o-transform: scale(0.9) rotate(-3deg);} + 30%, 50%, 70%, 90% {-o-transform: scale(1.1) rotate(3deg);} + 40%, 60%, 80% {-o-transform: scale(1.1) rotate(-3deg);} + 100% {-o-transform: scale(1) rotate(0);} +} + +@keyframes tada { + 0% {transform: scale(1);} + 10%, 20% {transform: scale(0.9) rotate(-3deg);} + 30%, 50%, 70%, 90% {transform: scale(1.1) rotate(3deg);} + 40%, 60%, 80% {transform: scale(1.1) rotate(-3deg);} + 100% {transform: scale(1) rotate(0);} +} + +.tada { + -webkit-animation-name: tada; + -moz-animation-name: tada; + -o-animation-name: tada; + animation-name: tada; +} +@-webkit-keyframes swing { + 20%, 40%, 60%, 80%, 100% { -webkit-transform-origin: top center; } + 20% { -webkit-transform: rotate(15deg); } + 40% { -webkit-transform: rotate(-10deg); } + 60% { -webkit-transform: rotate(5deg); } + 80% { -webkit-transform: rotate(-5deg); } + 100% { -webkit-transform: rotate(0deg); } +} + +@-moz-keyframes swing { + 20% { -moz-transform: rotate(15deg); } + 40% { -moz-transform: rotate(-10deg); } + 60% { -moz-transform: rotate(5deg); } + 80% { -moz-transform: rotate(-5deg); } + 100% { -moz-transform: rotate(0deg); } +} + +@-o-keyframes swing { + 20% { -o-transform: rotate(15deg); } + 40% { -o-transform: rotate(-10deg); } + 60% { -o-transform: rotate(5deg); } + 80% { -o-transform: rotate(-5deg); } + 100% { -o-transform: rotate(0deg); } +} + +@keyframes swing { + 20% { transform: rotate(15deg); } + 40% { transform: rotate(-10deg); } + 60% { transform: rotate(5deg); } + 80% { transform: rotate(-5deg); } + 100% { transform: rotate(0deg); } +} + +.swing { + -webkit-transform-origin: top center; + -moz-transform-origin: top center; + -o-transform-origin: top center; + transform-origin: top center; + -webkit-animation-name: swing; + -moz-animation-name: swing; + -o-animation-name: swing; + animation-name: swing; +} +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes wobble { + 0% { -webkit-transform: translateX(0%); } + 15% { -webkit-transform: translateX(-25%) rotate(-5deg); } + 30% { -webkit-transform: translateX(20%) rotate(3deg); } + 45% { -webkit-transform: translateX(-15%) rotate(-3deg); } + 60% { -webkit-transform: translateX(10%) rotate(2deg); } + 75% { -webkit-transform: translateX(-5%) rotate(-1deg); } + 100% { -webkit-transform: translateX(0%); } +} + +@-moz-keyframes wobble { + 0% { -moz-transform: translateX(0%); } + 15% { -moz-transform: translateX(-25%) rotate(-5deg); } + 30% { -moz-transform: translateX(20%) rotate(3deg); } + 45% { -moz-transform: translateX(-15%) rotate(-3deg); } + 60% { -moz-transform: translateX(10%) rotate(2deg); } + 75% { -moz-transform: translateX(-5%) rotate(-1deg); } + 100% { -moz-transform: translateX(0%); } +} + +@-o-keyframes wobble { + 0% { -o-transform: translateX(0%); } + 15% { -o-transform: translateX(-25%) rotate(-5deg); } + 30% { -o-transform: translateX(20%) rotate(3deg); } + 45% { -o-transform: translateX(-15%) rotate(-3deg); } + 60% { -o-transform: translateX(10%) rotate(2deg); } + 75% { -o-transform: translateX(-5%) rotate(-1deg); } + 100% { -o-transform: translateX(0%); } +} + +@keyframes wobble { + 0% { transform: translateX(0%); } + 15% { transform: translateX(-25%) rotate(-5deg); } + 30% { transform: translateX(20%) rotate(3deg); } + 45% { transform: translateX(-15%) rotate(-3deg); } + 60% { transform: translateX(10%) rotate(2deg); } + 75% { transform: translateX(-5%) rotate(-1deg); } + 100% { transform: translateX(0%); } +} + +.wobble { + -webkit-animation-name: wobble; + -moz-animation-name: wobble; + -o-animation-name: wobble; + animation-name: wobble; +} +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes pulse { + 0% { -webkit-transform: scale(1); } + 50% { -webkit-transform: scale(1.1); } + 100% { -webkit-transform: scale(1); } +} +@-moz-keyframes pulse { + 0% { -moz-transform: scale(1); } + 50% { -moz-transform: scale(1.1); } + 100% { -moz-transform: scale(1); } +} +@-o-keyframes pulse { + 0% { -o-transform: scale(1); } + 50% { -o-transform: scale(1.1); } + 100% { -o-transform: scale(1); } +} +@keyframes pulse { + 0% { transform: scale(1); } + 50% { transform: scale(1.1); } + 100% { transform: scale(1); } +} + +.pulse { + -webkit-animation-name: pulse; + -moz-animation-name: pulse; + -o-animation-name: pulse; + animation-name: pulse; +} +@-webkit-keyframes flip { + 0% { + -webkit-transform: perspective(400px) rotateY(0); + -webkit-animation-timing-function: ease-out; + } + 40% { + -webkit-transform: perspective(400px) translateZ(150px) rotateY(170deg); + -webkit-animation-timing-function: ease-out; + } + 50% { + -webkit-transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1); + -webkit-animation-timing-function: ease-in; + } + 80% { + -webkit-transform: perspective(400px) rotateY(360deg) scale(.95); + -webkit-animation-timing-function: ease-in; + } + 100% { + -webkit-transform: perspective(400px) scale(1); + -webkit-animation-timing-function: ease-in; + } +} +@-moz-keyframes flip { + 0% { + -moz-transform: perspective(400px) rotateY(0); + -moz-animation-timing-function: ease-out; + } + 40% { + -moz-transform: perspective(400px) translateZ(150px) rotateY(170deg); + -moz-animation-timing-function: ease-out; + } + 50% { + -moz-transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1); + -moz-animation-timing-function: ease-in; + } + 80% { + -moz-transform: perspective(400px) rotateY(360deg) scale(.95); + -moz-animation-timing-function: ease-in; + } + 100% { + -moz-transform: perspective(400px) scale(1); + -moz-animation-timing-function: ease-in; + } +} +@-o-keyframes flip { + 0% { + -o-transform: perspective(400px) rotateY(0); + -o-animation-timing-function: ease-out; + } + 40% { + -o-transform: perspective(400px) translateZ(150px) rotateY(170deg); + -o-animation-timing-function: ease-out; + } + 50% { + -o-transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1); + -o-animation-timing-function: ease-in; + } + 80% { + -o-transform: perspective(400px) rotateY(360deg) scale(.95); + -o-animation-timing-function: ease-in; + } + 100% { + -o-transform: perspective(400px) scale(1); + -o-animation-timing-function: ease-in; + } +} +@keyframes flip { + 0% { + transform: perspective(400px) rotateY(0); + animation-timing-function: ease-out; + } + 40% { + transform: perspective(400px) translateZ(150px) rotateY(170deg); + animation-timing-function: ease-out; + } + 50% { + transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1); + animation-timing-function: ease-in; + } + 80% { + transform: perspective(400px) rotateY(360deg) scale(.95); + animation-timing-function: ease-in; + } + 100% { + transform: perspective(400px) scale(1); + animation-timing-function: ease-in; + } +} + +.flip { + -webkit-backface-visibility: visible !important; + -webkit-animation-name: flip; + -moz-backface-visibility: visible !important; + -moz-animation-name: flip; + -o-backface-visibility: visible !important; + -o-animation-name: flip; + backface-visibility: visible !important; + animation-name: flip; +} +@-webkit-keyframes flipInX { + 0% { + -webkit-transform: perspective(400px) rotateX(90deg); + opacity: 0; + } + + 40% { + -webkit-transform: perspective(400px) rotateX(-10deg); + } + + 70% { + -webkit-transform: perspective(400px) rotateX(10deg); + } + + 100% { + -webkit-transform: perspective(400px) rotateX(0deg); + opacity: 1; + } +} +@-moz-keyframes flipInX { + 0% { + -moz-transform: perspective(400px) rotateX(90deg); + opacity: 0; + } + + 40% { + -moz-transform: perspective(400px) rotateX(-10deg); + } + + 70% { + -moz-transform: perspective(400px) rotateX(10deg); + } + + 100% { + -moz-transform: perspective(400px) rotateX(0deg); + opacity: 1; + } +} +@-o-keyframes flipInX { + 0% { + -o-transform: perspective(400px) rotateX(90deg); + opacity: 0; + } + + 40% { + -o-transform: perspective(400px) rotateX(-10deg); + } + + 70% { + -o-transform: perspective(400px) rotateX(10deg); + } + + 100% { + -o-transform: perspective(400px) rotateX(0deg); + opacity: 1; + } +} +@keyframes flipInX { + 0% { + transform: perspective(400px) rotateX(90deg); + opacity: 0; + } + + 40% { + transform: perspective(400px) rotateX(-10deg); + } + + 70% { + transform: perspective(400px) rotateX(10deg); + } + + 100% { + transform: perspective(400px) rotateX(0deg); + opacity: 1; + } +} + +.flipInX { + -webkit-backface-visibility: visible !important; + -webkit-animation-name: flipInX; + -moz-backface-visibility: visible !important; + -moz-animation-name: flipInX; + -o-backface-visibility: visible !important; + -o-animation-name: flipInX; + backface-visibility: visible !important; + animation-name: flipInX; +} +@-webkit-keyframes flipOutX { + 0% { + -webkit-transform: perspective(400px) rotateX(0deg); + opacity: 1; + } + 100% { + -webkit-transform: perspective(400px) rotateX(90deg); + opacity: 0; + } +} + +@-moz-keyframes flipOutX { + 0% { + -moz-transform: perspective(400px) rotateX(0deg); + opacity: 1; + } + 100% { + -moz-transform: perspective(400px) rotateX(90deg); + opacity: 0; + } +} + +@-o-keyframes flipOutX { + 0% { + -o-transform: perspective(400px) rotateX(0deg); + opacity: 1; + } + 100% { + -o-transform: perspective(400px) rotateX(90deg); + opacity: 0; + } +} + +@keyframes flipOutX { + 0% { + transform: perspective(400px) rotateX(0deg); + opacity: 1; + } + 100% { + transform: perspective(400px) rotateX(90deg); + opacity: 0; + } +} + +.flipOutX { + -webkit-animation-name: flipOutX; + -webkit-backface-visibility: visible !important; + -moz-animation-name: flipOutX; + -moz-backface-visibility: visible !important; + -o-animation-name: flipOutX; + -o-backface-visibility: visible !important; + animation-name: flipOutX; + backface-visibility: visible !important; +} +@-webkit-keyframes flipInY { + 0% { + -webkit-transform: perspective(400px) rotateY(90deg); + opacity: 0; + } + + 40% { + -webkit-transform: perspective(400px) rotateY(-10deg); + } + + 70% { + -webkit-transform: perspective(400px) rotateY(10deg); + } + + 100% { + -webkit-transform: perspective(400px) rotateY(0deg); + opacity: 1; + } +} +@-moz-keyframes flipInY { + 0% { + -moz-transform: perspective(400px) rotateY(90deg); + opacity: 0; + } + + 40% { + -moz-transform: perspective(400px) rotateY(-10deg); + } + + 70% { + -moz-transform: perspective(400px) rotateY(10deg); + } + + 100% { + -moz-transform: perspective(400px) rotateY(0deg); + opacity: 1; + } +} +@-o-keyframes flipInY { + 0% { + -o-transform: perspective(400px) rotateY(90deg); + opacity: 0; + } + + 40% { + -o-transform: perspective(400px) rotateY(-10deg); + } + + 70% { + -o-transform: perspective(400px) rotateY(10deg); + } + + 100% { + -o-transform: perspective(400px) rotateY(0deg); + opacity: 1; + } +} +@keyframes flipInY { + 0% { + transform: perspective(400px) rotateY(90deg); + opacity: 0; + } + + 40% { + transform: perspective(400px) rotateY(-10deg); + } + + 70% { + transform: perspective(400px) rotateY(10deg); + } + + 100% { + transform: perspective(400px) rotateY(0deg); + opacity: 1; + } +} + +.flipInY { + -webkit-backface-visibility: visible !important; + -webkit-animation-name: flipInY; + -moz-backface-visibility: visible !important; + -moz-animation-name: flipInY; + -o-backface-visibility: visible !important; + -o-animation-name: flipInY; + backface-visibility: visible !important; + animation-name: flipInY; +} +@-webkit-keyframes flipOutY { + 0% { + -webkit-transform: perspective(400px) rotateY(0deg); + opacity: 1; + } + 100% { + -webkit-transform: perspective(400px) rotateY(90deg); + opacity: 0; + } +} +@-moz-keyframes flipOutY { + 0% { + -moz-transform: perspective(400px) rotateY(0deg); + opacity: 1; + } + 100% { + -moz-transform: perspective(400px) rotateY(90deg); + opacity: 0; + } +} +@-o-keyframes flipOutY { + 0% { + -o-transform: perspective(400px) rotateY(0deg); + opacity: 1; + } + 100% { + -o-transform: perspective(400px) rotateY(90deg); + opacity: 0; + } +} +@keyframes flipOutY { + 0% { + transform: perspective(400px) rotateY(0deg); + opacity: 1; + } + 100% { + transform: perspective(400px) rotateY(90deg); + opacity: 0; + } +} + +.flipOutY { + -webkit-backface-visibility: visible !important; + -webkit-animation-name: flipOutY; + -moz-backface-visibility: visible !important; + -moz-animation-name: flipOutY; + -o-backface-visibility: visible !important; + -o-animation-name: flipOutY; + backface-visibility: visible !important; + animation-name: flipOutY; +} +@-webkit-keyframes fadeIn { + 0% {opacity: 0;} + 100% {opacity: 1;} +} + +@-moz-keyframes fadeIn { + 0% {opacity: 0;} + 100% {opacity: 1;} +} + +@-o-keyframes fadeIn { + 0% {opacity: 0;} + 100% {opacity: 1;} +} + +@keyframes fadeIn { + 0% {opacity: 0;} + 100% {opacity: 1;} +} + +.fadeIn { + -webkit-animation-name: fadeIn; + -moz-animation-name: fadeIn; + -o-animation-name: fadeIn; + animation-name: fadeIn; +} +@-webkit-keyframes fadeInUp { + 0% { + opacity: 0; + -webkit-transform: translateY(20px); + } + + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } +} + +@-moz-keyframes fadeInUp { + 0% { + opacity: 0; + -moz-transform: translateY(20px); + } + + 100% { + opacity: 1; + -moz-transform: translateY(0); + } +} + +@-o-keyframes fadeInUp { + 0% { + opacity: 0; + -o-transform: translateY(20px); + } + + 100% { + opacity: 1; + -o-transform: translateY(0); + } +} + +@keyframes fadeInUp { + 0% { + opacity: 0; + transform: translateY(20px); + } + + 100% { + opacity: 1; + transform: translateY(0); + } +} + +.fadeInUp { + -webkit-animation-name: fadeInUp; + -moz-animation-name: fadeInUp; + -o-animation-name: fadeInUp; + animation-name: fadeInUp; +} +@-webkit-keyframes fadeInDown { + 0% { + opacity: 0; + -webkit-transform: translateY(-20px); + } + + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } +} + +@-moz-keyframes fadeInDown { + 0% { + opacity: 0; + -moz-transform: translateY(-20px); + } + + 100% { + opacity: 1; + -moz-transform: translateY(0); + } +} + +@-o-keyframes fadeInDown { + 0% { + opacity: 0; + -o-transform: translateY(-20px); + } + + 100% { + opacity: 1; + -o-transform: translateY(0); + } +} + +@keyframes fadeInDown { + 0% { + opacity: 0; + transform: translateY(-20px); + } + + 100% { + opacity: 1; + transform: translateY(0); + } +} + +.fadeInDown { + -webkit-animation-name: fadeInDown; + -moz-animation-name: fadeInDown; + -o-animation-name: fadeInDown; + animation-name: fadeInDown; +} +@-webkit-keyframes fadeInLeft { + 0% { + opacity: 0; + -webkit-transform: translateX(-20px); + } + + 100% { + opacity: 1; + -webkit-transform: translateX(0); + } +} + +@-moz-keyframes fadeInLeft { + 0% { + opacity: 0; + -moz-transform: translateX(-20px); + } + + 100% { + opacity: 1; + -moz-transform: translateX(0); + } +} + +@-o-keyframes fadeInLeft { + 0% { + opacity: 0; + -o-transform: translateX(-20px); + } + + 100% { + opacity: 1; + -o-transform: translateX(0); + } +} + +@keyframes fadeInLeft { + 0% { + opacity: 0; + transform: translateX(-20px); + } + + 100% { + opacity: 1; + transform: translateX(0); + } +} + +.fadeInLeft { + -webkit-animation-name: fadeInLeft; + -moz-animation-name: fadeInLeft; + -o-animation-name: fadeInLeft; + animation-name: fadeInLeft; +} +@-webkit-keyframes fadeInRight { + 0% { + opacity: 0; + -webkit-transform: translateX(20px); + } + + 100% { + opacity: 1; + -webkit-transform: translateX(0); + } +} + +@-moz-keyframes fadeInRight { + 0% { + opacity: 0; + -moz-transform: translateX(20px); + } + + 100% { + opacity: 1; + -moz-transform: translateX(0); + } +} + +@-o-keyframes fadeInRight { + 0% { + opacity: 0; + -o-transform: translateX(20px); + } + + 100% { + opacity: 1; + -o-transform: translateX(0); + } +} + +@keyframes fadeInRight { + 0% { + opacity: 0; + transform: translateX(20px); + } + + 100% { + opacity: 1; + transform: translateX(0); + } +} + +.fadeInRight { + -webkit-animation-name: fadeInRight; + -moz-animation-name: fadeInRight; + -o-animation-name: fadeInRight; + animation-name: fadeInRight; +} +@-webkit-keyframes fadeInUpBig { + 0% { + opacity: 0; + -webkit-transform: translateY(2000px); + } + + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } +} + +@-moz-keyframes fadeInUpBig { + 0% { + opacity: 0; + -moz-transform: translateY(2000px); + } + + 100% { + opacity: 1; + -moz-transform: translateY(0); + } +} + +@-o-keyframes fadeInUpBig { + 0% { + opacity: 0; + -o-transform: translateY(2000px); + } + + 100% { + opacity: 1; + -o-transform: translateY(0); + } +} + +@keyframes fadeInUpBig { + 0% { + opacity: 0; + transform: translateY(2000px); + } + + 100% { + opacity: 1; + transform: translateY(0); + } +} + +.fadeInUpBig { + -webkit-animation-name: fadeInUpBig; + -moz-animation-name: fadeInUpBig; + -o-animation-name: fadeInUpBig; + animation-name: fadeInUpBig; +} +@-webkit-keyframes fadeInDownBig { + 0% { + opacity: 0; + -webkit-transform: translateY(-2000px); + } + + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } +} + +@-moz-keyframes fadeInDownBig { + 0% { + opacity: 0; + -moz-transform: translateY(-2000px); + } + + 100% { + opacity: 1; + -moz-transform: translateY(0); + } +} + +@-o-keyframes fadeInDownBig { + 0% { + opacity: 0; + -o-transform: translateY(-2000px); + } + + 100% { + opacity: 1; + -o-transform: translateY(0); + } +} + +@keyframes fadeInDownBig { + 0% { + opacity: 0; + transform: translateY(-2000px); + } + + 100% { + opacity: 1; + transform: translateY(0); + } +} + +.fadeInDownBig { + -webkit-animation-name: fadeInDownBig; + -moz-animation-name: fadeInDownBig; + -o-animation-name: fadeInDownBig; + animation-name: fadeInDownBig; +} +@-webkit-keyframes fadeInLeftBig { + 0% { + opacity: 0; + -webkit-transform: translateX(-2000px); + } + + 100% { + opacity: 1; + -webkit-transform: translateX(0); + } +} +@-moz-keyframes fadeInLeftBig { + 0% { + opacity: 0; + -moz-transform: translateX(-2000px); + } + + 100% { + opacity: 1; + -moz-transform: translateX(0); + } +} +@-o-keyframes fadeInLeftBig { + 0% { + opacity: 0; + -o-transform: translateX(-2000px); + } + + 100% { + opacity: 1; + -o-transform: translateX(0); + } +} +@keyframes fadeInLeftBig { + 0% { + opacity: 0; + transform: translateX(-2000px); + } + + 100% { + opacity: 1; + transform: translateX(0); + } +} + +.fadeInLeftBig { + -webkit-animation-name: fadeInLeftBig; + -moz-animation-name: fadeInLeftBig; + -o-animation-name: fadeInLeftBig; + animation-name: fadeInLeftBig; +} +@-webkit-keyframes fadeInRightBig { + 0% { + opacity: 0; + -webkit-transform: translateX(2000px); + } + + 100% { + opacity: 1; + -webkit-transform: translateX(0); + } +} + +@-moz-keyframes fadeInRightBig { + 0% { + opacity: 0; + -moz-transform: translateX(2000px); + } + + 100% { + opacity: 1; + -moz-transform: translateX(0); + } +} + +@-o-keyframes fadeInRightBig { + 0% { + opacity: 0; + -o-transform: translateX(2000px); + } + + 100% { + opacity: 1; + -o-transform: translateX(0); + } +} + +@keyframes fadeInRightBig { + 0% { + opacity: 0; + transform: translateX(2000px); + } + + 100% { + opacity: 1; + transform: translateX(0); + } +} + +.fadeInRightBig { + -webkit-animation-name: fadeInRightBig; + -moz-animation-name: fadeInRightBig; + -o-animation-name: fadeInRightBig; + animation-name: fadeInRightBig; +} +@-webkit-keyframes fadeOut { + 0% {opacity: 1;} + 100% {opacity: 0;} +} + +@-moz-keyframes fadeOut { + 0% {opacity: 1;} + 100% {opacity: 0;} +} + +@-o-keyframes fadeOut { + 0% {opacity: 1;} + 100% {opacity: 0;} +} + +@keyframes fadeOut { + 0% {opacity: 1;} + 100% {opacity: 0;} +} + +.fadeOut { + -webkit-animation-name: fadeOut; + -moz-animation-name: fadeOut; + -o-animation-name: fadeOut; + animation-name: fadeOut; +} +@-webkit-keyframes fadeOutUp { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateY(-20px); + } +} +@-moz-keyframes fadeOutUp { + 0% { + opacity: 1; + -moz-transform: translateY(0); + } + + 100% { + opacity: 0; + -moz-transform: translateY(-20px); + } +} +@-o-keyframes fadeOutUp { + 0% { + opacity: 1; + -o-transform: translateY(0); + } + + 100% { + opacity: 0; + -o-transform: translateY(-20px); + } +} +@keyframes fadeOutUp { + 0% { + opacity: 1; + transform: translateY(0); + } + + 100% { + opacity: 0; + transform: translateY(-20px); + } +} + +.fadeOutUp { + -webkit-animation-name: fadeOutUp; + -moz-animation-name: fadeOutUp; + -o-animation-name: fadeOutUp; + animation-name: fadeOutUp; +} +@-webkit-keyframes fadeOutDown { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateY(20px); + } +} + +@-moz-keyframes fadeOutDown { + 0% { + opacity: 1; + -moz-transform: translateY(0); + } + + 100% { + opacity: 0; + -moz-transform: translateY(20px); + } +} + +@-o-keyframes fadeOutDown { + 0% { + opacity: 1; + -o-transform: translateY(0); + } + + 100% { + opacity: 0; + -o-transform: translateY(20px); + } +} + +@keyframes fadeOutDown { + 0% { + opacity: 1; + transform: translateY(0); + } + + 100% { + opacity: 0; + transform: translateY(20px); + } +} + +.fadeOutDown { + -webkit-animation-name: fadeOutDown; + -moz-animation-name: fadeOutDown; + -o-animation-name: fadeOutDown; + animation-name: fadeOutDown; +} +@-webkit-keyframes fadeOutLeft { + 0% { + opacity: 1; + -webkit-transform: translateX(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateX(-20px); + } +} + +@-moz-keyframes fadeOutLeft { + 0% { + opacity: 1; + -moz-transform: translateX(0); + } + + 100% { + opacity: 0; + -moz-transform: translateX(-20px); + } +} + +@-o-keyframes fadeOutLeft { + 0% { + opacity: 1; + -o-transform: translateX(0); + } + + 100% { + opacity: 0; + -o-transform: translateX(-20px); + } +} + +@keyframes fadeOutLeft { + 0% { + opacity: 1; + transform: translateX(0); + } + + 100% { + opacity: 0; + transform: translateX(-20px); + } +} + +.fadeOutLeft { + -webkit-animation-name: fadeOutLeft; + -moz-animation-name: fadeOutLeft; + -o-animation-name: fadeOutLeft; + animation-name: fadeOutLeft; +} +@-webkit-keyframes fadeOutRight { + 0% { + opacity: 1; + -webkit-transform: translateX(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateX(20px); + } +} + +@-moz-keyframes fadeOutRight { + 0% { + opacity: 1; + -moz-transform: translateX(0); + } + + 100% { + opacity: 0; + -moz-transform: translateX(20px); + } +} + +@-o-keyframes fadeOutRight { + 0% { + opacity: 1; + -o-transform: translateX(0); + } + + 100% { + opacity: 0; + -o-transform: translateX(20px); + } +} + +@keyframes fadeOutRight { + 0% { + opacity: 1; + transform: translateX(0); + } + + 100% { + opacity: 0; + transform: translateX(20px); + } +} + +.fadeOutRight { + -webkit-animation-name: fadeOutRight; + -moz-animation-name: fadeOutRight; + -o-animation-name: fadeOutRight; + animation-name: fadeOutRight; +} +@-webkit-keyframes fadeOutUpBig { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateY(-2000px); + } +} + +@-moz-keyframes fadeOutUpBig { + 0% { + opacity: 1; + -moz-transform: translateY(0); + } + + 100% { + opacity: 0; + -moz-transform: translateY(-2000px); + } +} + +@-o-keyframes fadeOutUpBig { + 0% { + opacity: 1; + -o-transform: translateY(0); + } + + 100% { + opacity: 0; + -o-transform: translateY(-2000px); + } +} + +@keyframes fadeOutUpBig { + 0% { + opacity: 1; + transform: translateY(0); + } + + 100% { + opacity: 0; + transform: translateY(-2000px); + } +} + +.fadeOutUpBig { + -webkit-animation-name: fadeOutUpBig; + -moz-animation-name: fadeOutUpBig; + -o-animation-name: fadeOutUpBig; + animation-name: fadeOutUpBig; +} +@-webkit-keyframes fadeOutDownBig { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateY(2000px); + } +} + +@-moz-keyframes fadeOutDownBig { + 0% { + opacity: 1; + -moz-transform: translateY(0); + } + + 100% { + opacity: 0; + -moz-transform: translateY(2000px); + } +} + +@-o-keyframes fadeOutDownBig { + 0% { + opacity: 1; + -o-transform: translateY(0); + } + + 100% { + opacity: 0; + -o-transform: translateY(2000px); + } +} + +@keyframes fadeOutDownBig { + 0% { + opacity: 1; + transform: translateY(0); + } + + 100% { + opacity: 0; + transform: translateY(2000px); + } +} + +.fadeOutDownBig { + -webkit-animation-name: fadeOutDownBig; + -moz-animation-name: fadeOutDownBig; + -o-animation-name: fadeOutDownBig; + animation-name: fadeOutDownBig; +} +@-webkit-keyframes fadeOutLeftBig { + 0% { + opacity: 1; + -webkit-transform: translateX(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateX(-2000px); + } +} + +@-moz-keyframes fadeOutLeftBig { + 0% { + opacity: 1; + -moz-transform: translateX(0); + } + + 100% { + opacity: 0; + -moz-transform: translateX(-2000px); + } +} + +@-o-keyframes fadeOutLeftBig { + 0% { + opacity: 1; + -o-transform: translateX(0); + } + + 100% { + opacity: 0; + -o-transform: translateX(-2000px); + } +} + +@keyframes fadeOutLeftBig { + 0% { + opacity: 1; + transform: translateX(0); + } + + 100% { + opacity: 0; + transform: translateX(-2000px); + } +} + +.fadeOutLeftBig { + -webkit-animation-name: fadeOutLeftBig; + -moz-animation-name: fadeOutLeftBig; + -o-animation-name: fadeOutLeftBig; + animation-name: fadeOutLeftBig; +} +@-webkit-keyframes fadeOutRightBig { + 0% { + opacity: 1; + -webkit-transform: translateX(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateX(2000px); + } +} +@-moz-keyframes fadeOutRightBig { + 0% { + opacity: 1; + -moz-transform: translateX(0); + } + + 100% { + opacity: 0; + -moz-transform: translateX(2000px); + } +} +@-o-keyframes fadeOutRightBig { + 0% { + opacity: 1; + -o-transform: translateX(0); + } + + 100% { + opacity: 0; + -o-transform: translateX(2000px); + } +} +@keyframes fadeOutRightBig { + 0% { + opacity: 1; + transform: translateX(0); + } + + 100% { + opacity: 0; + transform: translateX(2000px); + } +} + +.fadeOutRightBig { + -webkit-animation-name: fadeOutRightBig; + -moz-animation-name: fadeOutRightBig; + -o-animation-name: fadeOutRightBig; + animation-name: fadeOutRightBig; +} +@-webkit-keyframes bounceIn { + 0% { + opacity: 0; + -webkit-transform: scale(.3); + } + + 50% { + opacity: 1; + -webkit-transform: scale(1.05); + } + + 70% { + -webkit-transform: scale(.9); + } + + 100% { + -webkit-transform: scale(1); + } +} + +@-moz-keyframes bounceIn { + 0% { + opacity: 0; + -moz-transform: scale(.3); + } + + 50% { + opacity: 1; + -moz-transform: scale(1.05); + } + + 70% { + -moz-transform: scale(.9); + } + + 100% { + -moz-transform: scale(1); + } +} + +@-o-keyframes bounceIn { + 0% { + opacity: 0; + -o-transform: scale(.3); + } + + 50% { + opacity: 1; + -o-transform: scale(1.05); + } + + 70% { + -o-transform: scale(.9); + } + + 100% { + -o-transform: scale(1); + } +} + +@keyframes bounceIn { + 0% { + opacity: 0; + transform: scale(.3); + } + + 50% { + opacity: 1; + transform: scale(1.05); + } + + 70% { + transform: scale(.9); + } + + 100% { + transform: scale(1); + } +} + +.bounceIn { + -webkit-animation-name: bounceIn; + -moz-animation-name: bounceIn; + -o-animation-name: bounceIn; + animation-name: bounceIn; +} +@-webkit-keyframes bounceInUp { + 0% { + opacity: 0; + -webkit-transform: translateY(2000px); + } + + 60% { + opacity: 1; + -webkit-transform: translateY(-30px); + } + + 80% { + -webkit-transform: translateY(10px); + } + + 100% { + -webkit-transform: translateY(0); + } +} +@-moz-keyframes bounceInUp { + 0% { + opacity: 0; + -moz-transform: translateY(2000px); + } + + 60% { + opacity: 1; + -moz-transform: translateY(-30px); + } + + 80% { + -moz-transform: translateY(10px); + } + + 100% { + -moz-transform: translateY(0); + } +} + +@-o-keyframes bounceInUp { + 0% { + opacity: 0; + -o-transform: translateY(2000px); + } + + 60% { + opacity: 1; + -o-transform: translateY(-30px); + } + + 80% { + -o-transform: translateY(10px); + } + + 100% { + -o-transform: translateY(0); + } +} + +@keyframes bounceInUp { + 0% { + opacity: 0; + transform: translateY(2000px); + } + + 60% { + opacity: 1; + transform: translateY(-30px); + } + + 80% { + transform: translateY(10px); + } + + 100% { + transform: translateY(0); + } +} + +.bounceInUp { + -webkit-animation-name: bounceInUp; + -moz-animation-name: bounceInUp; + -o-animation-name: bounceInUp; + animation-name: bounceInUp; +} +@-webkit-keyframes bounceInDown { + 0% { + opacity: 0; + -webkit-transform: translateY(-2000px); + } + + 60% { + opacity: 1; + -webkit-transform: translateY(30px); + } + + 80% { + -webkit-transform: translateY(-10px); + } + + 100% { + -webkit-transform: translateY(0); + } +} + +@-moz-keyframes bounceInDown { + 0% { + opacity: 0; + -moz-transform: translateY(-2000px); + } + + 60% { + opacity: 1; + -moz-transform: translateY(30px); + } + + 80% { + -moz-transform: translateY(-10px); + } + + 100% { + -moz-transform: translateY(0); + } +} + +@-o-keyframes bounceInDown { + 0% { + opacity: 0; + -o-transform: translateY(-2000px); + } + + 60% { + opacity: 1; + -o-transform: translateY(30px); + } + + 80% { + -o-transform: translateY(-10px); + } + + 100% { + -o-transform: translateY(0); + } +} + +@keyframes bounceInDown { + 0% { + opacity: 0; + transform: translateY(-2000px); + } + + 60% { + opacity: 1; + transform: translateY(30px); + } + + 80% { + transform: translateY(-10px); + } + + 100% { + transform: translateY(0); + } +} + +.bounceInDown { + -webkit-animation-name: bounceInDown; + -moz-animation-name: bounceInDown; + -o-animation-name: bounceInDown; + animation-name: bounceInDown; +} +@-webkit-keyframes bounceInLeft { + 0% { + opacity: 0; + -webkit-transform: translateX(-2000px); + } + + 60% { + opacity: 1; + -webkit-transform: translateX(30px); + } + + 80% { + -webkit-transform: translateX(-10px); + } + + 100% { + -webkit-transform: translateX(0); + } +} + +@-moz-keyframes bounceInLeft { + 0% { + opacity: 0; + -moz-transform: translateX(-2000px); + } + + 60% { + opacity: 1; + -moz-transform: translateX(30px); + } + + 80% { + -moz-transform: translateX(-10px); + } + + 100% { + -moz-transform: translateX(0); + } +} + +@-o-keyframes bounceInLeft { + 0% { + opacity: 0; + -o-transform: translateX(-2000px); + } + + 60% { + opacity: 1; + -o-transform: translateX(30px); + } + + 80% { + -o-transform: translateX(-10px); + } + + 100% { + -o-transform: translateX(0); + } +} + +@keyframes bounceInLeft { + 0% { + opacity: 0; + transform: translateX(-2000px); + } + + 60% { + opacity: 1; + transform: translateX(30px); + } + + 80% { + transform: translateX(-10px); + } + + 100% { + transform: translateX(0); + } +} + +.bounceInLeft { + -webkit-animation-name: bounceInLeft; + -moz-animation-name: bounceInLeft; + -o-animation-name: bounceInLeft; + animation-name: bounceInLeft; +} +@-webkit-keyframes bounceInRight { + 0% { + opacity: 0; + -webkit-transform: translateX(2000px); + } + + 60% { + opacity: 1; + -webkit-transform: translateX(-30px); + } + + 80% { + -webkit-transform: translateX(10px); + } + + 100% { + -webkit-transform: translateX(0); + } +} + +@-moz-keyframes bounceInRight { + 0% { + opacity: 0; + -moz-transform: translateX(2000px); + } + + 60% { + opacity: 1; + -moz-transform: translateX(-30px); + } + + 80% { + -moz-transform: translateX(10px); + } + + 100% { + -moz-transform: translateX(0); + } +} + +@-o-keyframes bounceInRight { + 0% { + opacity: 0; + -o-transform: translateX(2000px); + } + + 60% { + opacity: 1; + -o-transform: translateX(-30px); + } + + 80% { + -o-transform: translateX(10px); + } + + 100% { + -o-transform: translateX(0); + } +} + +@keyframes bounceInRight { + 0% { + opacity: 0; + transform: translateX(2000px); + } + + 60% { + opacity: 1; + transform: translateX(-30px); + } + + 80% { + transform: translateX(10px); + } + + 100% { + transform: translateX(0); + } +} + +.bounceInRight { + -webkit-animation-name: bounceInRight; + -moz-animation-name: bounceInRight; + -o-animation-name: bounceInRight; + animation-name: bounceInRight; +} +@-webkit-keyframes bounceOut { + 0% { + -webkit-transform: scale(1); + } + + 25% { + -webkit-transform: scale(.95); + } + + 50% { + opacity: 1; + -webkit-transform: scale(1.1); + } + + 100% { + opacity: 0; + -webkit-transform: scale(.3); + } +} + +@-moz-keyframes bounceOut { + 0% { + -moz-transform: scale(1); + } + + 25% { + -moz-transform: scale(.95); + } + + 50% { + opacity: 1; + -moz-transform: scale(1.1); + } + + 100% { + opacity: 0; + -moz-transform: scale(.3); + } +} + +@-o-keyframes bounceOut { + 0% { + -o-transform: scale(1); + } + + 25% { + -o-transform: scale(.95); + } + + 50% { + opacity: 1; + -o-transform: scale(1.1); + } + + 100% { + opacity: 0; + -o-transform: scale(.3); + } +} + +@keyframes bounceOut { + 0% { + transform: scale(1); + } + + 25% { + transform: scale(.95); + } + + 50% { + opacity: 1; + transform: scale(1.1); + } + + 100% { + opacity: 0; + transform: scale(.3); + } +} + +.bounceOut { + -webkit-animation-name: bounceOut; + -moz-animation-name: bounceOut; + -o-animation-name: bounceOut; + animation-name: bounceOut; +} +@-webkit-keyframes bounceOutUp { + 0% { + -webkit-transform: translateY(0); + } + + 20% { + opacity: 1; + -webkit-transform: translateY(20px); + } + + 100% { + opacity: 0; + -webkit-transform: translateY(-2000px); + } +} + +@-moz-keyframes bounceOutUp { + 0% { + -moz-transform: translateY(0); + } + + 20% { + opacity: 1; + -moz-transform: translateY(20px); + } + + 100% { + opacity: 0; + -moz-transform: translateY(-2000px); + } +} + +@-o-keyframes bounceOutUp { + 0% { + -o-transform: translateY(0); + } + + 20% { + opacity: 1; + -o-transform: translateY(20px); + } + + 100% { + opacity: 0; + -o-transform: translateY(-2000px); + } +} + +@keyframes bounceOutUp { + 0% { + transform: translateY(0); + } + + 20% { + opacity: 1; + transform: translateY(20px); + } + + 100% { + opacity: 0; + transform: translateY(-2000px); + } +} + +.bounceOutUp { + -webkit-animation-name: bounceOutUp; + -moz-animation-name: bounceOutUp; + -o-animation-name: bounceOutUp; + animation-name: bounceOutUp; +} +@-webkit-keyframes bounceOutDown { + 0% { + -webkit-transform: translateY(0); + } + + 20% { + opacity: 1; + -webkit-transform: translateY(-20px); + } + + 100% { + opacity: 0; + -webkit-transform: translateY(2000px); + } +} + +@-moz-keyframes bounceOutDown { + 0% { + -moz-transform: translateY(0); + } + + 20% { + opacity: 1; + -moz-transform: translateY(-20px); + } + + 100% { + opacity: 0; + -moz-transform: translateY(2000px); + } +} + +@-o-keyframes bounceOutDown { + 0% { + -o-transform: translateY(0); + } + + 20% { + opacity: 1; + -o-transform: translateY(-20px); + } + + 100% { + opacity: 0; + -o-transform: translateY(2000px); + } +} + +@keyframes bounceOutDown { + 0% { + transform: translateY(0); + } + + 20% { + opacity: 1; + transform: translateY(-20px); + } + + 100% { + opacity: 0; + transform: translateY(2000px); + } +} + +.bounceOutDown { + -webkit-animation-name: bounceOutDown; + -moz-animation-name: bounceOutDown; + -o-animation-name: bounceOutDown; + animation-name: bounceOutDown; +} +@-webkit-keyframes bounceOutLeft { + 0% { + -webkit-transform: translateX(0); + } + + 20% { + opacity: 1; + -webkit-transform: translateX(20px); + } + + 100% { + opacity: 0; + -webkit-transform: translateX(-2000px); + } +} + +@-moz-keyframes bounceOutLeft { + 0% { + -moz-transform: translateX(0); + } + + 20% { + opacity: 1; + -moz-transform: translateX(20px); + } + + 100% { + opacity: 0; + -moz-transform: translateX(-2000px); + } +} + +@-o-keyframes bounceOutLeft { + 0% { + -o-transform: translateX(0); + } + + 20% { + opacity: 1; + -o-transform: translateX(20px); + } + + 100% { + opacity: 0; + -o-transform: translateX(-2000px); + } +} + +@keyframes bounceOutLeft { + 0% { + transform: translateX(0); + } + + 20% { + opacity: 1; + transform: translateX(20px); + } + + 100% { + opacity: 0; + transform: translateX(-2000px); + } +} + +.bounceOutLeft { + -webkit-animation-name: bounceOutLeft; + -moz-animation-name: bounceOutLeft; + -o-animation-name: bounceOutLeft; + animation-name: bounceOutLeft; +} +@-webkit-keyframes bounceOutRight { + 0% { + -webkit-transform: translateX(0); + } + + 20% { + opacity: 1; + -webkit-transform: translateX(-20px); + } + + 100% { + opacity: 0; + -webkit-transform: translateX(2000px); + } +} + +@-moz-keyframes bounceOutRight { + 0% { + -moz-transform: translateX(0); + } + + 20% { + opacity: 1; + -moz-transform: translateX(-20px); + } + + 100% { + opacity: 0; + -moz-transform: translateX(2000px); + } +} + +@-o-keyframes bounceOutRight { + 0% { + -o-transform: translateX(0); + } + + 20% { + opacity: 1; + -o-transform: translateX(-20px); + } + + 100% { + opacity: 0; + -o-transform: translateX(2000px); + } +} + +@keyframes bounceOutRight { + 0% { + transform: translateX(0); + } + + 20% { + opacity: 1; + transform: translateX(-20px); + } + + 100% { + opacity: 0; + transform: translateX(2000px); + } +} + +.bounceOutRight { + -webkit-animation-name: bounceOutRight; + -moz-animation-name: bounceOutRight; + -o-animation-name: bounceOutRight; + animation-name: bounceOutRight; +} +@-webkit-keyframes rotateIn { + 0% { + -webkit-transform-origin: center center; + -webkit-transform: rotate(-200deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: center center; + -webkit-transform: rotate(0); + opacity: 1; + } +} +@-moz-keyframes rotateIn { + 0% { + -moz-transform-origin: center center; + -moz-transform: rotate(-200deg); + opacity: 0; + } + + 100% { + -moz-transform-origin: center center; + -moz-transform: rotate(0); + opacity: 1; + } +} +@-o-keyframes rotateIn { + 0% { + -o-transform-origin: center center; + -o-transform: rotate(-200deg); + opacity: 0; + } + + 100% { + -o-transform-origin: center center; + -o-transform: rotate(0); + opacity: 1; + } +} +@keyframes rotateIn { + 0% { + transform-origin: center center; + transform: rotate(-200deg); + opacity: 0; + } + + 100% { + transform-origin: center center; + transform: rotate(0); + opacity: 1; + } +} + +.rotateIn { + -webkit-animation-name: rotateIn; + -moz-animation-name: rotateIn; + -o-animation-name: rotateIn; + animation-name: rotateIn; +} +@-webkit-keyframes rotateInUpLeft { + 0% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(90deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(0); + opacity: 1; + } +} + +@-moz-keyframes rotateInUpLeft { + 0% { + -moz-transform-origin: left bottom; + -moz-transform: rotate(90deg); + opacity: 0; + } + + 100% { + -moz-transform-origin: left bottom; + -moz-transform: rotate(0); + opacity: 1; + } +} + +@-o-keyframes rotateInUpLeft { + 0% { + -o-transform-origin: left bottom; + -o-transform: rotate(90deg); + opacity: 0; + } + + 100% { + -o-transform-origin: left bottom; + -o-transform: rotate(0); + opacity: 1; + } +} + +@keyframes rotateInUpLeft { + 0% { + transform-origin: left bottom; + transform: rotate(90deg); + opacity: 0; + } + + 100% { + transform-origin: left bottom; + transform: rotate(0); + opacity: 1; + } +} + +.rotateInUpLeft { + -webkit-animation-name: rotateInUpLeft; + -moz-animation-name: rotateInUpLeft; + -o-animation-name: rotateInUpLeft; + animation-name: rotateInUpLeft; +} +@-webkit-keyframes rotateInDownLeft { + 0% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(-90deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(0); + opacity: 1; + } +} + +@-moz-keyframes rotateInDownLeft { + 0% { + -moz-transform-origin: left bottom; + -moz-transform: rotate(-90deg); + opacity: 0; + } + + 100% { + -moz-transform-origin: left bottom; + -moz-transform: rotate(0); + opacity: 1; + } +} + +@-o-keyframes rotateInDownLeft { + 0% { + -o-transform-origin: left bottom; + -o-transform: rotate(-90deg); + opacity: 0; + } + + 100% { + -o-transform-origin: left bottom; + -o-transform: rotate(0); + opacity: 1; + } +} + +@keyframes rotateInDownLeft { + 0% { + transform-origin: left bottom; + transform: rotate(-90deg); + opacity: 0; + } + + 100% { + transform-origin: left bottom; + transform: rotate(0); + opacity: 1; + } +} + +.rotateInDownLeft { + -webkit-animation-name: rotateInDownLeft; + -moz-animation-name: rotateInDownLeft; + -o-animation-name: rotateInDownLeft; + animation-name: rotateInDownLeft; +} +@-webkit-keyframes rotateInUpRight { + 0% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(-90deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(0); + opacity: 1; + } +} + +@-moz-keyframes rotateInUpRight { + 0% { + -moz-transform-origin: right bottom; + -moz-transform: rotate(-90deg); + opacity: 0; + } + + 100% { + -moz-transform-origin: right bottom; + -moz-transform: rotate(0); + opacity: 1; + } +} + +@-o-keyframes rotateInUpRight { + 0% { + -o-transform-origin: right bottom; + -o-transform: rotate(-90deg); + opacity: 0; + } + + 100% { + -o-transform-origin: right bottom; + -o-transform: rotate(0); + opacity: 1; + } +} + +@keyframes rotateInUpRight { + 0% { + transform-origin: right bottom; + transform: rotate(-90deg); + opacity: 0; + } + + 100% { + transform-origin: right bottom; + transform: rotate(0); + opacity: 1; + } +} + +.rotateInUpRight { + -webkit-animation-name: rotateInUpRight; + -moz-animation-name: rotateInUpRight; + -o-animation-name: rotateInUpRight; + animation-name: rotateInUpRight; +} +@-webkit-keyframes rotateInDownRight { + 0% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(90deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(0); + opacity: 1; + } +} + +@-moz-keyframes rotateInDownRight { + 0% { + -moz-transform-origin: right bottom; + -moz-transform: rotate(90deg); + opacity: 0; + } + + 100% { + -moz-transform-origin: right bottom; + -moz-transform: rotate(0); + opacity: 1; + } +} + +@-o-keyframes rotateInDownRight { + 0% { + -o-transform-origin: right bottom; + -o-transform: rotate(90deg); + opacity: 0; + } + + 100% { + -o-transform-origin: right bottom; + -o-transform: rotate(0); + opacity: 1; + } +} + +@keyframes rotateInDownRight { + 0% { + transform-origin: right bottom; + transform: rotate(90deg); + opacity: 0; + } + + 100% { + transform-origin: right bottom; + transform: rotate(0); + opacity: 1; + } +} + +.rotateInDownRight { + -webkit-animation-name: rotateInDownRight; + -moz-animation-name: rotateInDownRight; + -o-animation-name: rotateInDownRight; + animation-name: rotateInDownRight; +} +@-webkit-keyframes rotateOut { + 0% { + -webkit-transform-origin: center center; + -webkit-transform: rotate(0); + opacity: 1; + } + + 100% { + -webkit-transform-origin: center center; + -webkit-transform: rotate(200deg); + opacity: 0; + } +} + +@-moz-keyframes rotateOut { + 0% { + -moz-transform-origin: center center; + -moz-transform: rotate(0); + opacity: 1; + } + + 100% { + -moz-transform-origin: center center; + -moz-transform: rotate(200deg); + opacity: 0; + } +} + +@-o-keyframes rotateOut { + 0% { + -o-transform-origin: center center; + -o-transform: rotate(0); + opacity: 1; + } + + 100% { + -o-transform-origin: center center; + -o-transform: rotate(200deg); + opacity: 0; + } +} + +@keyframes rotateOut { + 0% { + transform-origin: center center; + transform: rotate(0); + opacity: 1; + } + + 100% { + transform-origin: center center; + transform: rotate(200deg); + opacity: 0; + } +} + +.rotateOut { + -webkit-animation-name: rotateOut; + -moz-animation-name: rotateOut; + -o-animation-name: rotateOut; + animation-name: rotateOut; +} +@-webkit-keyframes rotateOutUpLeft { + 0% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + + 100% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(-90deg); + opacity: 0; + } +} + +@-moz-keyframes rotateOutUpLeft { + 0% { + -moz-transform-origin: left bottom; + -moz-transform: rotate(0); + opacity: 1; + } + + 100% { + -moz-transform-origin: left bottom; + -moz-transform: rotate(-90deg); + opacity: 0; + } +} + +@-o-keyframes rotateOutUpLeft { + 0% { + -o-transform-origin: left bottom; + -o-transform: rotate(0); + opacity: 1; + } + + 100% { + -o-transform-origin: left bottom; + -o-transform: rotate(-90deg); + opacity: 0; + } +} + +@keyframes rotateOutUpLeft { + 0% { + transform-origin: left bottom; + transform: rotate(0); + opacity: 1; + } + + 100% { + transform-origin: left bottom; + transform: rotate(-90deg); + opacity: 0; + } +} + +.rotateOutUpLeft { + -webkit-animation-name: rotateOutUpLeft; + -moz-animation-name: rotateOutUpLeft; + -o-animation-name: rotateOutUpLeft; + animation-name: rotateOutUpLeft; +} +@-webkit-keyframes rotateOutDownLeft { + 0% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + + 100% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(90deg); + opacity: 0; + } +} + +@-moz-keyframes rotateOutDownLeft { + 0% { + -moz-transform-origin: left bottom; + -moz-transform: rotate(0); + opacity: 1; + } + + 100% { + -moz-transform-origin: left bottom; + -moz-transform: rotate(90deg); + opacity: 0; + } +} + +@-o-keyframes rotateOutDownLeft { + 0% { + -o-transform-origin: left bottom; + -o-transform: rotate(0); + opacity: 1; + } + + 100% { + -o-transform-origin: left bottom; + -o-transform: rotate(90deg); + opacity: 0; + } +} + +@keyframes rotateOutDownLeft { + 0% { + transform-origin: left bottom; + transform: rotate(0); + opacity: 1; + } + + 100% { + transform-origin: left bottom; + transform: rotate(90deg); + opacity: 0; + } +} + +.rotateOutDownLeft { + -webkit-animation-name: rotateOutDownLeft; + -moz-animation-name: rotateOutDownLeft; + -o-animation-name: rotateOutDownLeft; + animation-name: rotateOutDownLeft; +} +@-webkit-keyframes rotateOutUpRight { + 0% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + + 100% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(90deg); + opacity: 0; + } +} + +@-moz-keyframes rotateOutUpRight { + 0% { + -moz-transform-origin: right bottom; + -moz-transform: rotate(0); + opacity: 1; + } + + 100% { + -moz-transform-origin: right bottom; + -moz-transform: rotate(90deg); + opacity: 0; + } +} + +@-o-keyframes rotateOutUpRight { + 0% { + -o-transform-origin: right bottom; + -o-transform: rotate(0); + opacity: 1; + } + + 100% { + -o-transform-origin: right bottom; + -o-transform: rotate(90deg); + opacity: 0; + } +} + +@keyframes rotateOutUpRight { + 0% { + transform-origin: right bottom; + transform: rotate(0); + opacity: 1; + } + + 100% { + transform-origin: right bottom; + transform: rotate(90deg); + opacity: 0; + } +} + +.rotateOutUpRight { + -webkit-animation-name: rotateOutUpRight; + -moz-animation-name: rotateOutUpRight; + -o-animation-name: rotateOutUpRight; + animation-name: rotateOutUpRight; +} +@-webkit-keyframes rotateOutDownRight { + 0% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + + 100% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(-90deg); + opacity: 0; + } +} + +@-moz-keyframes rotateOutDownRight { + 0% { + -moz-transform-origin: right bottom; + -moz-transform: rotate(0); + opacity: 1; + } + + 100% { + -moz-transform-origin: right bottom; + -moz-transform: rotate(-90deg); + opacity: 0; + } +} + +@-o-keyframes rotateOutDownRight { + 0% { + -o-transform-origin: right bottom; + -o-transform: rotate(0); + opacity: 1; + } + + 100% { + -o-transform-origin: right bottom; + -o-transform: rotate(-90deg); + opacity: 0; + } +} + +@keyframes rotateOutDownRight { + 0% { + transform-origin: right bottom; + transform: rotate(0); + opacity: 1; + } + + 100% { + transform-origin: right bottom; + transform: rotate(-90deg); + opacity: 0; + } +} + +.rotateOutDownRight { + -webkit-animation-name: rotateOutDownRight; + -moz-animation-name: rotateOutDownRight; + -o-animation-name: rotateOutDownRight; + animation-name: rotateOutDownRight; +} +@-webkit-keyframes hinge { + 0% { -webkit-transform: rotate(0); -webkit-transform-origin: top left; -webkit-animation-timing-function: ease-in-out; } + 20%, 60% { -webkit-transform: rotate(80deg); -webkit-transform-origin: top left; -webkit-animation-timing-function: ease-in-out; } + 40% { -webkit-transform: rotate(60deg); -webkit-transform-origin: top left; -webkit-animation-timing-function: ease-in-out; } + 80% { -webkit-transform: rotate(60deg) translateY(0); opacity: 1; -webkit-transform-origin: top left; -webkit-animation-timing-function: ease-in-out; } + 100% { -webkit-transform: translateY(700px); opacity: 0; } +} + +@-moz-keyframes hinge { + 0% { -moz-transform: rotate(0); -moz-transform-origin: top left; -moz-animation-timing-function: ease-in-out; } + 20%, 60% { -moz-transform: rotate(80deg); -moz-transform-origin: top left; -moz-animation-timing-function: ease-in-out; } + 40% { -moz-transform: rotate(60deg); -moz-transform-origin: top left; -moz-animation-timing-function: ease-in-out; } + 80% { -moz-transform: rotate(60deg) translateY(0); opacity: 1; -moz-transform-origin: top left; -moz-animation-timing-function: ease-in-out; } + 100% { -moz-transform: translateY(700px); opacity: 0; } +} + +@-o-keyframes hinge { + 0% { -o-transform: rotate(0); -o-transform-origin: top left; -o-animation-timing-function: ease-in-out; } + 20%, 60% { -o-transform: rotate(80deg); -o-transform-origin: top left; -o-animation-timing-function: ease-in-out; } + 40% { -o-transform: rotate(60deg); -o-transform-origin: top left; -o-animation-timing-function: ease-in-out; } + 80% { -o-transform: rotate(60deg) translateY(0); opacity: 1; -o-transform-origin: top left; -o-animation-timing-function: ease-in-out; } + 100% { -o-transform: translateY(700px); opacity: 0; } +} + +@keyframes hinge { + 0% { transform: rotate(0); transform-origin: top left; animation-timing-function: ease-in-out; } + 20%, 60% { transform: rotate(80deg); transform-origin: top left; animation-timing-function: ease-in-out; } + 40% { transform: rotate(60deg); transform-origin: top left; animation-timing-function: ease-in-out; } + 80% { transform: rotate(60deg) translateY(0); opacity: 1; transform-origin: top left; animation-timing-function: ease-in-out; } + 100% { transform: translateY(700px); opacity: 0; } +} + +.hinge { + -webkit-animation-name: hinge; + -moz-animation-name: hinge; + -o-animation-name: hinge; + animation-name: hinge; +} +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes rollIn { + 0% { opacity: 0; -webkit-transform: translateX(-100%) rotate(-120deg); } + 100% { opacity: 1; -webkit-transform: translateX(0px) rotate(0deg); } +} + +@-moz-keyframes rollIn { + 0% { opacity: 0; -moz-transform: translateX(-100%) rotate(-120deg); } + 100% { opacity: 1; -moz-transform: translateX(0px) rotate(0deg); } +} + +@-o-keyframes rollIn { + 0% { opacity: 0; -o-transform: translateX(-100%) rotate(-120deg); } + 100% { opacity: 1; -o-transform: translateX(0px) rotate(0deg); } +} + +@keyframes rollIn { + 0% { opacity: 0; transform: translateX(-100%) rotate(-120deg); } + 100% { opacity: 1; transform: translateX(0px) rotate(0deg); } +} + +.rollIn { + -webkit-animation-name: rollIn; + -moz-animation-name: rollIn; + -o-animation-name: rollIn; + animation-name: rollIn; +} +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes rollOut { + 0% { + opacity: 1; + -webkit-transform: translateX(0px) rotate(0deg); + } + + 100% { + opacity: 0; + -webkit-transform: translateX(100%) rotate(120deg); + } +} + +@-moz-keyframes rollOut { + 0% { + opacity: 1; + -moz-transform: translateX(0px) rotate(0deg); + } + + 100% { + opacity: 0; + -moz-transform: translateX(100%) rotate(120deg); + } +} + +@-o-keyframes rollOut { + 0% { + opacity: 1; + -o-transform: translateX(0px) rotate(0deg); + } + + 100% { + opacity: 0; + -o-transform: translateX(100%) rotate(120deg); + } +} + +@keyframes rollOut { + 0% { + opacity: 1; + transform: translateX(0px) rotate(0deg); + } + + 100% { + opacity: 0; + transform: translateX(100%) rotate(120deg); + } +} + +.rollOut { + -webkit-animation-name: rollOut; + -moz-animation-name: rollOut; + -o-animation-name: rollOut; + animation-name: rollOut; +} + +/* originally authored by Angelo Rohit - https://github.com/angelorohit */ + +@-webkit-keyframes lightSpeedIn { + 0% { -webkit-transform: translateX(100%) skewX(-30deg); opacity: 0; } + 60% { -webkit-transform: translateX(-20%) skewX(30deg); opacity: 1; } + 80% { -webkit-transform: translateX(0%) skewX(-15deg); opacity: 1; } + 100% { -webkit-transform: translateX(0%) skewX(0deg); opacity: 1; } +} + +@-moz-keyframes lightSpeedIn { + 0% { -moz-transform: translateX(100%) skewX(-30deg); opacity: 0; } + 60% { -moz-transform: translateX(-20%) skewX(30deg); opacity: 1; } + 80% { -moz-transform: translateX(0%) skewX(-15deg); opacity: 1; } + 100% { -moz-transform: translateX(0%) skewX(0deg); opacity: 1; } +} + +@-o-keyframes lightSpeedIn { + 0% { -o-transform: translateX(100%) skewX(-30deg); opacity: 0; } + 60% { -o-transform: translateX(-20%) skewX(30deg); opacity: 1; } + 80% { -o-transform: translateX(0%) skewX(-15deg); opacity: 1; } + 100% { -o-transform: translateX(0%) skewX(0deg); opacity: 1; } +} + +@keyframes lightSpeedIn { + 0% { transform: translateX(100%) skewX(-30deg); opacity: 0; } + 60% { transform: translateX(-20%) skewX(30deg); opacity: 1; } + 80% { transform: translateX(0%) skewX(-15deg); opacity: 1; } + 100% { transform: translateX(0%) skewX(0deg); opacity: 1; } +} + +.lightSpeedIn { + -webkit-animation-name: lightSpeedIn; + -moz-animation-name: lightSpeedIn; + -o-animation-name: lightSpeedIn; + animation-name: lightSpeedIn; + + -webkit-animation-timing-function: ease-out; + -moz-animation-timing-function: ease-out; + -o-animation-timing-function: ease-out; + animation-timing-function: ease-out; +} + +.animated.lightSpeedIn { + -webkit-animation-duration: 0.5s; + -moz-animation-duration: 0.5s; + -o-animation-duration: 0.5s; + animation-duration: 0.5s; +} + +/* originally authored by Angelo Rohit - https://github.com/angelorohit */ + +@-webkit-keyframes lightSpeedOut { + 0% { -webkit-transform: translateX(0%) skewX(0deg); opacity: 1; } + 100% { -webkit-transform: translateX(100%) skewX(-30deg); opacity: 0; } +} + +@-moz-keyframes lightSpeedOut { + 0% { -moz-transform: translateX(0%) skewX(0deg); opacity: 1; } + 100% { -moz-transform: translateX(100%) skewX(-30deg); opacity: 0; } +} + +@-o-keyframes lightSpeedOut { + 0% { -o-transform: translateX(0%) skewX(0deg); opacity: 1; } + 100% { -o-transform: translateX(100%) skewX(-30deg); opacity: 0; } +} + +@keyframes lightSpeedOut { + 0% { transform: translateX(0%) skewX(0deg); opacity: 1; } + 100% { transform: translateX(100%) skewX(-30deg); opacity: 0; } +} + +.lightSpeedOut { + -webkit-animation-name: lightSpeedOut; + -moz-animation-name: lightSpeedOut; + -o-animation-name: lightSpeedOut; + animation-name: lightSpeedOut; + + -webkit-animation-timing-function: ease-in; + -moz-animation-timing-function: ease-in; + -o-animation-timing-function: ease-in; + animation-timing-function: ease-in; +} + +.animated.lightSpeedOut { + -webkit-animation-duration: 0.25s; + -moz-animation-duration: 0.25s; + -o-animation-duration: 0.25s; + animation-duration: 0.25s; +} + +/* originally authored by Angelo Rohit - https://github.com/angelorohit */ + +@-webkit-keyframes wiggle { + 0% { -webkit-transform: skewX(9deg); } + 10% { -webkit-transform: skewX(-8deg); } + 20% { -webkit-transform: skewX(7deg); } + 30% { -webkit-transform: skewX(-6deg); } + 40% { -webkit-transform: skewX(5deg); } + 50% { -webkit-transform: skewX(-4deg); } + 60% { -webkit-transform: skewX(3deg); } + 70% { -webkit-transform: skewX(-2deg); } + 80% { -webkit-transform: skewX(1deg); } + 90% { -webkit-transform: skewX(0deg); } + 100% { -webkit-transform: skewX(0deg); } +} + +@-moz-keyframes wiggle { + 0% { -moz-transform: skewX(9deg); } + 10% { -moz-transform: skewX(-8deg); } + 20% { -moz-transform: skewX(7deg); } + 30% { -moz-transform: skewX(-6deg); } + 40% { -moz-transform: skewX(5deg); } + 50% { -moz-transform: skewX(-4deg); } + 60% { -moz-transform: skewX(3deg); } + 70% { -moz-transform: skewX(-2deg); } + 80% { -moz-transform: skewX(1deg); } + 90% { -moz-transform: skewX(0deg); } + 100% { -moz-transform: skewX(0deg); } +} + +@-o-keyframes wiggle { + 0% { -o-transform: skewX(9deg); } + 10% { -o-transform: skewX(-8deg); } + 20% { -o-transform: skewX(7deg); } + 30% { -o-transform: skewX(-6deg); } + 40% { -o-transform: skewX(5deg); } + 50% { -o-transform: skewX(-4deg); } + 60% { -o-transform: skewX(3deg); } + 70% { -o-transform: skewX(-2deg); } + 80% { -o-transform: skewX(1deg); } + 90% { -o-transform: skewX(0deg); } + 100% { -o-transform: skewX(0deg); } +} + +@keyframes wiggle { + 0% { transform: skewX(9deg); } + 10% { transform: skewX(-8deg); } + 20% { transform: skewX(7deg); } + 30% { transform: skewX(-6deg); } + 40% { transform: skewX(5deg); } + 50% { transform: skewX(-4deg); } + 60% { transform: skewX(3deg); } + 70% { transform: skewX(-2deg); } + 80% { transform: skewX(1deg); } + 90% { transform: skewX(0deg); } + 100% { transform: skewX(0deg); } +} + +.wiggle { + -webkit-animation-name: wiggle; + -moz-animation-name: wiggle; + -o-animation-name: wiggle; + animation-name: wiggle; + + -webkit-animation-timing-function: ease-in; + -moz-animation-timing-function: ease-in; + -o-animation-timing-function: ease-in; + animation-timing-function: ease-in; +} + +.animated.wiggle { + -webkit-animation-duration: 0.75s; + -moz-animation-duration: 0.75s; + -o-animation-duration: 0.75s; + animation-duration: 0.75s; +} \ No newline at end of file diff --git a/public/css/arch-skin-dark.css b/public/css/arch-skin-dark.css new file mode 100644 index 0000000..4263c8b --- /dev/null +++ b/public/css/arch-skin-dark.css @@ -0,0 +1,105 @@ +body { + font-family: "Open Sans", sans-serif; + background: #232323; +} +a { + cursor: pointer; +} +h1, +h2, +h3, +h4, +h5, +h6, +.custom-font { + font-family: "Khand", sans-serif; +} + +p { + color: #999; + font-size: 14px; + font-weight: 400; +} + +.navbar { + border-bottom: 1px solid rgba(255, 255, 255, 0.1); +} + +.nav-scroll { + background: #232323; +} + +.navbar .dropdown-menu { + background: #2a2a2a; +} + +.navbar .navbar-nav .dropdown-item:hover, +.main-color, +.progress-wrap::after { + color: #c5a47e !important; +} + +.navbar .dropdown-menu .dropdown-item:after, +.back-color, +.line, +.cursor-inner, +.pace .pace-progress { + background: #c5a47e !important; +} + +.cursor-outer { + border-color: #c5a47e !important; +} + +.main-content { + background: #232323; +} + +.color-font { + color: #c5a47e; + -webkit-text-fill-color: #c5a47e; + background: none; +} + +.progress-wrap svg.progress-circle path { + stroke: #c5a47e; +} + +.sub-bg { + background: #1f1f1f; +} + +.line { + opacity: 0.1; +} + +.testimonials .item { + background: transparent; + border: 1px solid rgba(255, 255, 255, 0.1); +} + +.testimonials .arrows .next, +.testimonials .arrows .prev { + border-color: rgba(255, 255, 255, 0.3); + border-radius: 0; +} + +.team .item.cir .img:after { + display: none; +} + +@media screen and (max-width: 991px) { + .navbar .navbar-collapse { + max-height: 340px; + overflow: auto; + background: #262626; + text-align: center; + padding:0; + } + + .nav-scroll .navbar-collapse .active, + .light .navbar-collapse .active, + .navbar .navbar-nav .nav-link:hover { + color: #c5a47e !important; + } +} diff --git a/public/css/arch-skin-light.css b/public/css/arch-skin-light.css new file mode 100644 index 0000000..c8d4a95 --- /dev/null +++ b/public/css/arch-skin-light.css @@ -0,0 +1,114 @@ +body { + font-family: "Open Sans", sans-serif; + background: #fff; +} +a { + cursor: pointer; +} +h1, +h2, +h3, +h4, +h5, +h6, +.custom-font { + font-family: "Khand", sans-serif; +} + +p { + color: #999; + font-size: 14px; + font-weight: 400; +} + +.navbar { + border-bottom: 1px solid rgba(255, 255, 255, 0.1); +} + +.nav-scroll { + background: #fff; +} + +.navbar .dropdown-menu { + background: #fff; + box-shadow: 0px 10px 30px rgba(0, 0, 0, 0.1); +} + +.navbar .navbar-nav .dropdown-item:hover, +.main-color, +.progress-wrap::after, +.nav-scroll .navbar-collapse .active, +.light .navbar-collapse .active { + color: #c5a47e !important; +} + +.navbar .dropdown-menu .dropdown-item:after, +.back-color, +.line, +.cursor-inner, +.pace .pace-progress { + background: #c5a47e !important; +} + +.cursor-outer, +.testimonials .arrows .next:hover, +.testimonials .arrows .prev:hover { + border-color: #c5a47e !important; +} + +.main-content { + background: #fff; +} + +.color-font { + color: #c5a47e; + -webkit-text-fill-color: #c5a47e; + background: none; +} + +.progress-wrap svg.progress-circle path { + stroke: #c5a47e; +} + +.sub-bg { + background: #1f1f1f; +} + +.line { + opacity: 0.1; +} + +.testimonials .item { + background: transparent; + border: 1px solid rgba(0, 0, 0, 0.1); +} + +.testimonials .arrows .next, +.testimonials .arrows .prev { + border-color: rgba(0, 0, 0, 0.3); + border-radius: 0; +} + +.team .item.cir .img:after { + display: none; +} + +@media screen and (max-width: 991px) { + .navbar .navbar-collapse { + max-height: 340px; + overflow: auto; + background: #262626; + text-align: center; + padding: 0; + } + + .navbar .dropdown-menu { + background: #232323; + } + + .nav-scroll .navbar-collapse .active, + .light .navbar-collapse .active, + .navbar .navbar-nav .nav-link:hover { + color: #c5a47e !important; + } +} diff --git a/public/css/bootstrap.min.css b/public/css/bootstrap.min.css new file mode 100644 index 0000000..c31e2db --- /dev/null +++ b/public/css/bootstrap.min.css @@ -0,0 +1,10019 @@ +/*! + * Bootstrap v4.0.0 (https://getbootstrap.com) + * Copyright 2011-2018 The Bootstrap Authors + * Copyright 2011-2018 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +:root { + --blue: #007bff; + --indigo: #6610f2; + --purple: #6f42c1; + --pink: #e83e8c; + --red: #dc3545; + --orange: #fd7e14; + --yellow: #ffc107; + --green: #28a745; + --teal: #20c997; + --cyan: #17a2b8; + --white: #fff; + --gray: #6c757d; + --gray-dark: #343a40; + --primary: #007bff; + --secondary: #6c757d; + --success: #28a745; + --info: #17a2b8; + --warning: #ffc107; + --danger: #dc3545; + --light: #f8f9fa; + --dark: #343a40; + --breakpoint-xs: 0; + --breakpoint-sm: 576px; + --breakpoint-md: 768px; + --breakpoint-lg: 992px; + --breakpoint-xl: 1200px; + --font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", + Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", + "Segoe UI Emoji", "Segoe UI Symbol"; + --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, + "Liberation Mono", "Courier New", monospace; +} + +*, +::after, +::before { + box-sizing: border-box; +} + +html { + font-family: sans-serif; + line-height: 1.15; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; + -ms-overflow-style: scrollbar; + -webkit-tap-highlight-color: transparent; +} + +@-ms-viewport { + width: device-width; +} + +article, +aside, +dialog, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section { + display: block; +} + +body { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, + "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", + "Segoe UI Symbol"; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #212529; + text-align: left; + background-color: #fff; +} + +[tabindex="-1"]:focus { + outline: 0 !important; +} + +hr { + box-sizing: content-box; + height: 0; + overflow: visible; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + margin-top: 0; + margin-bottom: 0.5rem; +} + +p { + margin-top: 0; + margin-bottom: 1rem; +} + +abbr[data-original-title], +abbr[title] { + text-decoration: underline; + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; + cursor: help; + border-bottom: 0; +} + +address { + margin-bottom: 1rem; + font-style: normal; + line-height: inherit; +} + +dl, +ol, +ul { + margin-top: 0; + margin-bottom: 1rem; +} + +ol ol, +ol ul, +ul ol, +ul ul { + margin-bottom: 0; +} + +dt { + font-weight: 700; +} + +dd { + margin-bottom: 0.5rem; + margin-left: 0; +} + +blockquote { + margin: 0 0 1rem; +} + +dfn { + font-style: italic; +} + +b, +strong { + font-weight: bolder; +} + +small { + font-size: 80%; +} + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +a { + color: #007bff; + text-decoration: none; + background-color: transparent; + -webkit-text-decoration-skip: objects; +} + +a:hover { + color: #0056b3; + text-decoration: underline; +} + +a:not([href]):not([tabindex]) { + color: inherit; + text-decoration: none; +} + +a:not([href]):not([tabindex]):focus, +a:not([href]):not([tabindex]):hover { + color: inherit; + text-decoration: none; +} + +a:not([href]):not([tabindex]):focus { + outline: 0; +} + +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} + +pre { + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; + -ms-overflow-style: scrollbar; +} + +figure { + margin: 0 0 1rem; +} + +img { + vertical-align: middle; + border-style: none; +} + +svg:not(:root) { + overflow: hidden; +} + +table { + border-collapse: collapse; +} + +caption { + padding-top: 0.75rem; + padding-bottom: 0.75rem; + color: #6c757d; + text-align: left; + caption-side: bottom; +} + +th { + text-align: inherit; +} + +label { + display: inline-block; + margin-bottom: 0.5rem; +} + +button { + border-radius: 0; +} + +button:focus { + outline: 1px dotted; + outline: 5px auto -webkit-focus-ring-color; +} + +button, +input, +optgroup, +select, +textarea { + margin: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +button, +input { + overflow: visible; +} + +button, +select { + text-transform: none; +} + +[type="reset"], +[type="submit"], +button, +html [type="button"] { + -webkit-appearance: button; +} + +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner, +button::-moz-focus-inner { + padding: 0; + border-style: none; +} + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; + padding: 0; +} + +input[type="date"], +input[type="datetime-local"], +input[type="month"], +input[type="time"] { + -webkit-appearance: listbox; +} + +textarea { + overflow: auto; + resize: vertical; +} + +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} + +legend { + display: block; + width: 100%; + max-width: 100%; + padding: 0; + margin-bottom: 0.5rem; + font-size: 1.5rem; + line-height: inherit; + color: inherit; + white-space: normal; +} + +progress { + vertical-align: baseline; +} + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +[type="search"] { + outline-offset: -2px; + -webkit-appearance: none; +} + +[type="search"]::-webkit-search-cancel-button, +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +::-webkit-file-upload-button { + font: inherit; + -webkit-appearance: button; +} + +output { + display: inline-block; +} + +summary { + display: list-item; + cursor: pointer; +} + +template { + display: none; +} + +[hidden] { + display: none !important; +} + +.h1, +.h2, +.h3, +.h4, +.h5, +.h6, +h1, +h2, +h3, +h4, +h5, +h6 { + margin-bottom: 0.5rem; + font-family: inherit; + font-weight: 500; + line-height: 1.2; + color: inherit; +} + +.h1, +h1 { + font-size: 2.5rem; +} + +.h2, +h2 { + font-size: 2rem; +} + +.h3, +h3 { + font-size: 1.75rem; +} + +.h4, +h4 { + font-size: 1.5rem; +} + +.h5, +h5 { + font-size: 1.25rem; +} + +.h6, +h6 { + font-size: 1rem; +} + +.lead { + font-size: 1.25rem; + font-weight: 300; +} + +.display-1 { + font-size: 6rem; + font-weight: 300; + line-height: 1.2; +} + +.display-2 { + font-size: 5.5rem; + font-weight: 300; + line-height: 1.2; +} + +.display-3 { + font-size: 4.5rem; + font-weight: 300; + line-height: 1.2; +} + +.display-4 { + font-size: 3.5rem; + font-weight: 300; + line-height: 1.2; +} + +hr { + margin-top: 1rem; + margin-bottom: 1rem; + border: 0; + border-top: 1px solid rgba(0, 0, 0, 0.1); +} + +.small, +small { + font-size: 80%; + font-weight: 400; +} + +.mark, +mark { + padding: 0.2em; + background-color: #fcf8e3; +} + +.list-unstyled { + padding-left: 0; + list-style: none; +} + +.list-inline { + padding-left: 0; + list-style: none; +} + +.list-inline-item { + display: inline-block; +} + +.list-inline-item:not(:last-child) { + margin-right: 0.5rem; +} + +.initialism { + font-size: 90%; + text-transform: uppercase; +} + +.blockquote { + margin-bottom: 1rem; + font-size: 1.25rem; +} + +.blockquote-footer { + display: block; + font-size: 80%; + color: #6c757d; +} + +.blockquote-footer::before { + content: "\2014 \00A0"; +} + +.img-fluid { + max-width: 100%; + height: auto; +} + +.img-thumbnail { + padding: 0.25rem; + background-color: #fff; + border: 1px solid #dee2e6; + border-radius: 0.25rem; + max-width: 100%; + height: auto; +} + +.figure { + display: inline-block; +} + +.figure-img { + margin-bottom: 0.5rem; + line-height: 1; +} + +.figure-caption { + font-size: 90%; + color: #6c757d; +} + +code, +kbd, +pre, +samp { + font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", + "Courier New", monospace; +} + +code { + font-size: 87.5%; + color: #e83e8c; + word-break: break-word; +} + +a > code { + color: inherit; +} + +kbd { + padding: 0.2rem 0.4rem; + font-size: 87.5%; + color: #fff; + background-color: #212529; + border-radius: 0.2rem; +} + +kbd kbd { + padding: 0; + font-size: 100%; + font-weight: 700; +} + +pre { + display: block; + font-size: 87.5%; + color: #212529; +} + +pre code { + font-size: inherit; + color: inherit; + word-break: normal; +} + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} + +.container { + width: 100%; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} + +@media (min-width: 576px) { + .container { + max-width: 540px; + } +} + +@media (min-width: 768px) { + .container { + max-width: 720px; + } +} + +@media (min-width: 992px) { + .container { + max-width: 960px; + } +} + +@media (min-width: 1200px) { + .container { + max-width: 1140px; + } +} + +.container-fluid { + width: 100%; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} + +.row { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + margin-right: -15px; + margin-left: -15px; +} + +.no-gutters { + margin-right: 0; + margin-left: 0; +} + +.no-gutters > .col, +.no-gutters > [class*="col-"] { + padding-right: 0; + padding-left: 0; +} + +.col, +.col-1, +.col-10, +.col-11, +.col-12, +.col-2, +.col-3, +.col-4, +.col-5, +.col-6, +.col-7, +.col-8, +.col-9, +.col-auto, +.col-lg, +.col-lg-1, +.col-lg-10, +.col-lg-11, +.col-lg-12, +.col-lg-2, +.col-lg-3, +.col-lg-4, +.col-lg-5, +.col-lg-6, +.col-lg-7, +.col-lg-8, +.col-lg-9, +.col-lg-auto, +.col-md, +.col-md-1, +.col-md-10, +.col-md-11, +.col-md-12, +.col-md-2, +.col-md-3, +.col-md-4, +.col-md-5, +.col-md-6, +.col-md-7, +.col-md-8, +.col-md-9, +.col-md-auto, +.col-sm, +.col-sm-1, +.col-sm-10, +.col-sm-11, +.col-sm-12, +.col-sm-2, +.col-sm-3, +.col-sm-4, +.col-sm-5, +.col-sm-6, +.col-sm-7, +.col-sm-8, +.col-sm-9, +.col-sm-auto, +.col-xl, +.col-xl-1, +.col-xl-10, +.col-xl-11, +.col-xl-12, +.col-xl-2, +.col-xl-3, +.col-xl-4, +.col-xl-5, +.col-xl-6, +.col-xl-7, +.col-xl-8, +.col-xl-9, +.col-xl-auto { + position: relative; + width: 100%; + min-height: 1px; + padding-right: 15px; + padding-left: 15px; +} + +.col { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; +} + +.col-auto { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: none; +} + +.col-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; +} + +.col-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; +} + +.col-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; +} + +.col-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; +} + +.col-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; +} + +.col-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; +} + +.col-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; +} + +.col-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; +} + +.col-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; +} + +.col-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; +} + +.col-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; +} + +.col-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; +} + +.order-first { + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1; +} + +.order-last { + -webkit-box-ordinal-group: 14; + -ms-flex-order: 13; + order: 13; +} + +.order-0 { + -webkit-box-ordinal-group: 1; + -ms-flex-order: 0; + order: 0; +} + +.order-1 { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1; +} + +.order-2 { + -webkit-box-ordinal-group: 3; + -ms-flex-order: 2; + order: 2; +} + +.order-3 { + -webkit-box-ordinal-group: 4; + -ms-flex-order: 3; + order: 3; +} + +.order-4 { + -webkit-box-ordinal-group: 5; + -ms-flex-order: 4; + order: 4; +} + +.order-5 { + -webkit-box-ordinal-group: 6; + -ms-flex-order: 5; + order: 5; +} + +.order-6 { + -webkit-box-ordinal-group: 7; + -ms-flex-order: 6; + order: 6; +} + +.order-7 { + -webkit-box-ordinal-group: 8; + -ms-flex-order: 7; + order: 7; +} + +.order-8 { + -webkit-box-ordinal-group: 9; + -ms-flex-order: 8; + order: 8; +} + +.order-9 { + -webkit-box-ordinal-group: 10; + -ms-flex-order: 9; + order: 9; +} + +.order-10 { + -webkit-box-ordinal-group: 11; + -ms-flex-order: 10; + order: 10; +} + +.order-11 { + -webkit-box-ordinal-group: 12; + -ms-flex-order: 11; + order: 11; +} + +.order-12 { + -webkit-box-ordinal-group: 13; + -ms-flex-order: 12; + order: 12; +} + +.offset-1 { + margin-left: 8.333333%; +} + +.offset-2 { + margin-left: 16.666667%; +} + +.offset-3 { + margin-left: 25%; +} + +.offset-4 { + margin-left: 33.333333%; +} + +.offset-5 { + margin-left: 41.666667%; +} + +.offset-6 { + margin-left: 50%; +} + +.offset-7 { + margin-left: 58.333333%; +} + +.offset-8 { + margin-left: 66.666667%; +} + +.offset-9 { + margin-left: 75%; +} + +.offset-10 { + margin-left: 83.333333%; +} + +.offset-11 { + margin-left: 91.666667%; +} + +@media (min-width: 576px) { + .col-sm { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + + .col-sm-auto { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: none; + } + + .col-sm-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + + .col-sm-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + + .col-sm-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + + .col-sm-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + + .col-sm-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + + .col-sm-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + + .col-sm-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + + .col-sm-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + + .col-sm-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + + .col-sm-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + + .col-sm-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + + .col-sm-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + + .order-sm-first { + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1; + } + + .order-sm-last { + -webkit-box-ordinal-group: 14; + -ms-flex-order: 13; + order: 13; + } + + .order-sm-0 { + -webkit-box-ordinal-group: 1; + -ms-flex-order: 0; + order: 0; + } + + .order-sm-1 { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1; + } + + .order-sm-2 { + -webkit-box-ordinal-group: 3; + -ms-flex-order: 2; + order: 2; + } + + .order-sm-3 { + -webkit-box-ordinal-group: 4; + -ms-flex-order: 3; + order: 3; + } + + .order-sm-4 { + -webkit-box-ordinal-group: 5; + -ms-flex-order: 4; + order: 4; + } + + .order-sm-5 { + -webkit-box-ordinal-group: 6; + -ms-flex-order: 5; + order: 5; + } + + .order-sm-6 { + -webkit-box-ordinal-group: 7; + -ms-flex-order: 6; + order: 6; + } + + .order-sm-7 { + -webkit-box-ordinal-group: 8; + -ms-flex-order: 7; + order: 7; + } + + .order-sm-8 { + -webkit-box-ordinal-group: 9; + -ms-flex-order: 8; + order: 8; + } + + .order-sm-9 { + -webkit-box-ordinal-group: 10; + -ms-flex-order: 9; + order: 9; + } + + .order-sm-10 { + -webkit-box-ordinal-group: 11; + -ms-flex-order: 10; + order: 10; + } + + .order-sm-11 { + -webkit-box-ordinal-group: 12; + -ms-flex-order: 11; + order: 11; + } + + .order-sm-12 { + -webkit-box-ordinal-group: 13; + -ms-flex-order: 12; + order: 12; + } + + .offset-sm-0 { + margin-left: 0; + } + + .offset-sm-1 { + margin-left: 8.333333%; + } + + .offset-sm-2 { + margin-left: 16.666667%; + } + + .offset-sm-3 { + margin-left: 25%; + } + + .offset-sm-4 { + margin-left: 33.333333%; + } + + .offset-sm-5 { + margin-left: 41.666667%; + } + + .offset-sm-6 { + margin-left: 50%; + } + + .offset-sm-7 { + margin-left: 58.333333%; + } + + .offset-sm-8 { + margin-left: 66.666667%; + } + + .offset-sm-9 { + margin-left: 75%; + } + + .offset-sm-10 { + margin-left: 83.333333%; + } + + .offset-sm-11 { + margin-left: 91.666667%; + } +} + +@media (min-width: 768px) { + .col-md { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + + .col-md-auto { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: none; + } + + .col-md-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + + .col-md-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + + .col-md-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + + .col-md-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + + .col-md-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + + .col-md-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + + .col-md-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + + .col-md-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + + .col-md-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + + .col-md-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + + .col-md-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + + .col-md-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + + .order-md-first { + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1; + } + + .order-md-last { + -webkit-box-ordinal-group: 14; + -ms-flex-order: 13; + order: 13; + } + + .order-md-0 { + -webkit-box-ordinal-group: 1; + -ms-flex-order: 0; + order: 0; + } + + .order-md-1 { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1; + } + + .order-md-2 { + -webkit-box-ordinal-group: 3; + -ms-flex-order: 2; + order: 2; + } + + .order-md-3 { + -webkit-box-ordinal-group: 4; + -ms-flex-order: 3; + order: 3; + } + + .order-md-4 { + -webkit-box-ordinal-group: 5; + -ms-flex-order: 4; + order: 4; + } + + .order-md-5 { + -webkit-box-ordinal-group: 6; + -ms-flex-order: 5; + order: 5; + } + + .order-md-6 { + -webkit-box-ordinal-group: 7; + -ms-flex-order: 6; + order: 6; + } + + .order-md-7 { + -webkit-box-ordinal-group: 8; + -ms-flex-order: 7; + order: 7; + } + + .order-md-8 { + -webkit-box-ordinal-group: 9; + -ms-flex-order: 8; + order: 8; + } + + .order-md-9 { + -webkit-box-ordinal-group: 10; + -ms-flex-order: 9; + order: 9; + } + + .order-md-10 { + -webkit-box-ordinal-group: 11; + -ms-flex-order: 10; + order: 10; + } + + .order-md-11 { + -webkit-box-ordinal-group: 12; + -ms-flex-order: 11; + order: 11; + } + + .order-md-12 { + -webkit-box-ordinal-group: 13; + -ms-flex-order: 12; + order: 12; + } + + .offset-md-0 { + margin-left: 0; + } + + .offset-md-1 { + margin-left: 8.333333%; + } + + .offset-md-2 { + margin-left: 16.666667%; + } + + .offset-md-3 { + margin-left: 25%; + } + + .offset-md-4 { + margin-left: 33.333333%; + } + + .offset-md-5 { + margin-left: 41.666667%; + } + + .offset-md-6 { + margin-left: 50%; + } + + .offset-md-7 { + margin-left: 58.333333%; + } + + .offset-md-8 { + margin-left: 66.666667%; + } + + .offset-md-9 { + margin-left: 75%; + } + + .offset-md-10 { + margin-left: 83.333333%; + } + + .offset-md-11 { + margin-left: 91.666667%; + } +} + +@media (min-width: 992px) { + .col-lg { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + + .col-lg-auto { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: none; + } + + .col-lg-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + + .col-lg-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + + .col-lg-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + + .col-lg-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + + .col-lg-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + + .col-lg-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + + .col-lg-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + + .col-lg-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + + .col-lg-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + + .col-lg-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + + .col-lg-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + + .col-lg-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + + .order-lg-first { + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1; + } + + .order-lg-last { + -webkit-box-ordinal-group: 14; + -ms-flex-order: 13; + order: 13; + } + + .order-lg-0 { + -webkit-box-ordinal-group: 1; + -ms-flex-order: 0; + order: 0; + } + + .order-lg-1 { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1; + } + + .order-lg-2 { + -webkit-box-ordinal-group: 3; + -ms-flex-order: 2; + order: 2; + } + + .order-lg-3 { + -webkit-box-ordinal-group: 4; + -ms-flex-order: 3; + order: 3; + } + + .order-lg-4 { + -webkit-box-ordinal-group: 5; + -ms-flex-order: 4; + order: 4; + } + + .order-lg-5 { + -webkit-box-ordinal-group: 6; + -ms-flex-order: 5; + order: 5; + } + + .order-lg-6 { + -webkit-box-ordinal-group: 7; + -ms-flex-order: 6; + order: 6; + } + + .order-lg-7 { + -webkit-box-ordinal-group: 8; + -ms-flex-order: 7; + order: 7; + } + + .order-lg-8 { + -webkit-box-ordinal-group: 9; + -ms-flex-order: 8; + order: 8; + } + + .order-lg-9 { + -webkit-box-ordinal-group: 10; + -ms-flex-order: 9; + order: 9; + } + + .order-lg-10 { + -webkit-box-ordinal-group: 11; + -ms-flex-order: 10; + order: 10; + } + + .order-lg-11 { + -webkit-box-ordinal-group: 12; + -ms-flex-order: 11; + order: 11; + } + + .order-lg-12 { + -webkit-box-ordinal-group: 13; + -ms-flex-order: 12; + order: 12; + } + + .offset-lg-0 { + margin-left: 0; + } + + .offset-lg-1 { + margin-left: 8.333333%; + } + + .offset-lg-2 { + margin-left: 16.666667%; + } + + .offset-lg-3 { + margin-left: 25%; + } + + .offset-lg-4 { + margin-left: 33.333333%; + } + + .offset-lg-5 { + margin-left: 41.666667%; + } + + .offset-lg-6 { + margin-left: 50%; + } + + .offset-lg-7 { + margin-left: 58.333333%; + } + + .offset-lg-8 { + margin-left: 66.666667%; + } + + .offset-lg-9 { + margin-left: 75%; + } + + .offset-lg-10 { + margin-left: 83.333333%; + } + + .offset-lg-11 { + margin-left: 91.666667%; + } +} + +@media (min-width: 1200px) { + .col-xl { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + + .col-xl-auto { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: none; + } + + .col-xl-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + + .col-xl-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + + .col-xl-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + + .col-xl-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + + .col-xl-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + + .col-xl-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + + .col-xl-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + + .col-xl-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + + .col-xl-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + + .col-xl-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + + .col-xl-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + + .col-xl-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + + .order-xl-first { + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1; + } + + .order-xl-last { + -webkit-box-ordinal-group: 14; + -ms-flex-order: 13; + order: 13; + } + + .order-xl-0 { + -webkit-box-ordinal-group: 1; + -ms-flex-order: 0; + order: 0; + } + + .order-xl-1 { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1; + } + + .order-xl-2 { + -webkit-box-ordinal-group: 3; + -ms-flex-order: 2; + order: 2; + } + + .order-xl-3 { + -webkit-box-ordinal-group: 4; + -ms-flex-order: 3; + order: 3; + } + + .order-xl-4 { + -webkit-box-ordinal-group: 5; + -ms-flex-order: 4; + order: 4; + } + + .order-xl-5 { + -webkit-box-ordinal-group: 6; + -ms-flex-order: 5; + order: 5; + } + + .order-xl-6 { + -webkit-box-ordinal-group: 7; + -ms-flex-order: 6; + order: 6; + } + + .order-xl-7 { + -webkit-box-ordinal-group: 8; + -ms-flex-order: 7; + order: 7; + } + + .order-xl-8 { + -webkit-box-ordinal-group: 9; + -ms-flex-order: 8; + order: 8; + } + + .order-xl-9 { + -webkit-box-ordinal-group: 10; + -ms-flex-order: 9; + order: 9; + } + + .order-xl-10 { + -webkit-box-ordinal-group: 11; + -ms-flex-order: 10; + order: 10; + } + + .order-xl-11 { + -webkit-box-ordinal-group: 12; + -ms-flex-order: 11; + order: 11; + } + + .order-xl-12 { + -webkit-box-ordinal-group: 13; + -ms-flex-order: 12; + order: 12; + } + + .offset-xl-0 { + margin-left: 0; + } + + .offset-xl-1 { + margin-left: 8.333333%; + } + + .offset-xl-2 { + margin-left: 16.666667%; + } + + .offset-xl-3 { + margin-left: 25%; + } + + .offset-xl-4 { + margin-left: 33.333333%; + } + + .offset-xl-5 { + margin-left: 41.666667%; + } + + .offset-xl-6 { + margin-left: 50%; + } + + .offset-xl-7 { + margin-left: 58.333333%; + } + + .offset-xl-8 { + margin-left: 66.666667%; + } + + .offset-xl-9 { + margin-left: 75%; + } + + .offset-xl-10 { + margin-left: 83.333333%; + } + + .offset-xl-11 { + margin-left: 91.666667%; + } +} + +.table { + width: 100%; + max-width: 100%; + margin-bottom: 1rem; + background-color: transparent; +} + +.table td, +.table th { + padding: 0.75rem; + vertical-align: top; + border-top: 1px solid #dee2e6; +} + +.table thead th { + vertical-align: bottom; + border-bottom: 2px solid #dee2e6; +} + +.table tbody + tbody { + border-top: 2px solid #dee2e6; +} + +.table .table { + background-color: #fff; +} + +.table-sm td, +.table-sm th { + padding: 0.3rem; +} + +.table-bordered { + border: 1px solid #dee2e6; +} + +.table-bordered td, +.table-bordered th { + border: 1px solid #dee2e6; +} + +.table-bordered thead td, +.table-bordered thead th { + border-bottom-width: 2px; +} + +.table-striped tbody tr:nth-of-type(odd) { + background-color: rgba(0, 0, 0, 0.05); +} + +.table-hover tbody tr:hover { + background-color: rgba(0, 0, 0, 0.075); +} + +.table-primary, +.table-primary > td, +.table-primary > th { + background-color: #b8daff; +} + +.table-hover .table-primary:hover { + background-color: #9fcdff; +} + +.table-hover .table-primary:hover > td, +.table-hover .table-primary:hover > th { + background-color: #9fcdff; +} + +.table-secondary, +.table-secondary > td, +.table-secondary > th { + background-color: #d6d8db; +} + +.table-hover .table-secondary:hover { + background-color: #c8cbcf; +} + +.table-hover .table-secondary:hover > td, +.table-hover .table-secondary:hover > th { + background-color: #c8cbcf; +} + +.table-success, +.table-success > td, +.table-success > th { + background-color: #c3e6cb; +} + +.table-hover .table-success:hover { + background-color: #b1dfbb; +} + +.table-hover .table-success:hover > td, +.table-hover .table-success:hover > th { + background-color: #b1dfbb; +} + +.table-info, +.table-info > td, +.table-info > th { + background-color: #bee5eb; +} + +.table-hover .table-info:hover { + background-color: #abdde5; +} + +.table-hover .table-info:hover > td, +.table-hover .table-info:hover > th { + background-color: #abdde5; +} + +.table-warning, +.table-warning > td, +.table-warning > th { + background-color: #ffeeba; +} + +.table-hover .table-warning:hover { + background-color: #ffe8a1; +} + +.table-hover .table-warning:hover > td, +.table-hover .table-warning:hover > th { + background-color: #ffe8a1; +} + +.table-danger, +.table-danger > td, +.table-danger > th { + background-color: #f5c6cb; +} + +.table-hover .table-danger:hover { + background-color: #f1b0b7; +} + +.table-hover .table-danger:hover > td, +.table-hover .table-danger:hover > th { + background-color: #f1b0b7; +} + +.table-light, +.table-light > td, +.table-light > th { + background-color: #fdfdfe; +} + +.table-hover .table-light:hover { + background-color: #ececf6; +} + +.table-hover .table-light:hover > td, +.table-hover .table-light:hover > th { + background-color: #ececf6; +} + +.table-dark, +.table-dark > td, +.table-dark > th { + background-color: #c6c8ca; +} + +.table-hover .table-dark:hover { + background-color: #b9bbbe; +} + +.table-hover .table-dark:hover > td, +.table-hover .table-dark:hover > th { + background-color: #b9bbbe; +} + +.table-active, +.table-active > td, +.table-active > th { + background-color: rgba(0, 0, 0, 0.075); +} + +.table-hover .table-active:hover { + background-color: rgba(0, 0, 0, 0.075); +} + +.table-hover .table-active:hover > td, +.table-hover .table-active:hover > th { + background-color: rgba(0, 0, 0, 0.075); +} + +.table .thead-dark th { + color: #fff; + background-color: #212529; + border-color: #32383e; +} + +.table .thead-light th { + color: #495057; + background-color: #e9ecef; + border-color: #dee2e6; +} + +.table-dark { + color: #fff; + background-color: #212529; +} + +.table-dark td, +.table-dark th, +.table-dark thead th { + border-color: #32383e; +} + +.table-dark.table-bordered { + border: 0; +} + +.table-dark.table-striped tbody tr:nth-of-type(odd) { + background-color: rgba(255, 255, 255, 0.05); +} + +.table-dark.table-hover tbody tr:hover { + background-color: rgba(255, 255, 255, 0.075); +} + +@media (max-width: 575.98px) { + .table-responsive-sm { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; + } + + .table-responsive-sm > .table-bordered { + border: 0; + } +} + +@media (max-width: 767.98px) { + .table-responsive-md { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; + } + + .table-responsive-md > .table-bordered { + border: 0; + } +} + +@media (max-width: 991.98px) { + .table-responsive-lg { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; + } + + .table-responsive-lg > .table-bordered { + border: 0; + } +} + +@media (max-width: 1199.98px) { + .table-responsive-xl { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; + } + + .table-responsive-xl > .table-bordered { + border: 0; + } +} + +.table-responsive { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; +} + +.table-responsive > .table-bordered { + border: 0; +} + +.form-control { + display: block; + width: 100%; + padding: 0.375rem 0.75rem; + font-size: 1rem; + line-height: 1.5; + color: #495057; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #ced4da; + border-radius: 0.25rem; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +.form-control::-ms-expand { + background-color: transparent; + border: 0; +} + +.form-control:focus { + color: #495057; + background-color: #fff; + border-color: #80bdff; + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.form-control::-webkit-input-placeholder { + color: #6c757d; + opacity: 1; +} + +.form-control::-moz-placeholder { + color: #6c757d; + opacity: 1; +} + +.form-control:-ms-input-placeholder { + color: #6c757d; + opacity: 1; +} + +.form-control::-ms-input-placeholder { + color: #6c757d; + opacity: 1; +} + +.form-control::placeholder { + color: #6c757d; + opacity: 1; +} + +.form-control:disabled, +.form-control[readonly] { + background-color: #e9ecef; + opacity: 1; +} + +select.form-control:not([size]):not([multiple]) { + height: calc(2.25rem + 2px); +} + +select.form-control:focus::-ms-value { + color: #495057; + background-color: #fff; +} + +.form-control-file, +.form-control-range { + display: block; + width: 100%; +} + +.col-form-label { + padding-top: calc(0.375rem + 1px); + padding-bottom: calc(0.375rem + 1px); + margin-bottom: 0; + font-size: inherit; + line-height: 1.5; +} + +.col-form-label-lg { + padding-top: calc(0.5rem + 1px); + padding-bottom: calc(0.5rem + 1px); + font-size: 1.25rem; + line-height: 1.5; +} + +.col-form-label-sm { + padding-top: calc(0.25rem + 1px); + padding-bottom: calc(0.25rem + 1px); + font-size: 0.875rem; + line-height: 1.5; +} + +.form-control-plaintext { + display: block; + width: 100%; + padding-top: 0.375rem; + padding-bottom: 0.375rem; + margin-bottom: 0; + line-height: 1.5; + background-color: transparent; + border: solid transparent; + border-width: 1px 0; +} + +.form-control-plaintext.form-control-lg, +.form-control-plaintext.form-control-sm, +.input-group-lg > .form-control-plaintext.form-control, +.input-group-lg > .input-group-append > .form-control-plaintext.btn, +.input-group-lg + > .input-group-append + > .form-control-plaintext.input-group-text, +.input-group-lg > .input-group-prepend > .form-control-plaintext.btn, +.input-group-lg + > .input-group-prepend + > .form-control-plaintext.input-group-text, +.input-group-sm > .form-control-plaintext.form-control, +.input-group-sm > .input-group-append > .form-control-plaintext.btn, +.input-group-sm + > .input-group-append + > .form-control-plaintext.input-group-text, +.input-group-sm > .input-group-prepend > .form-control-plaintext.btn, +.input-group-sm + > .input-group-prepend + > .form-control-plaintext.input-group-text { + padding-right: 0; + padding-left: 0; +} + +.form-control-sm, +.input-group-sm > .form-control, +.input-group-sm > .input-group-append > .btn, +.input-group-sm > .input-group-append > .input-group-text, +.input-group-sm > .input-group-prepend > .btn, +.input-group-sm > .input-group-prepend > .input-group-text { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; + border-radius: 0.2rem; +} + +.input-group-sm > .input-group-append > select.btn:not([size]):not([multiple]), +.input-group-sm + > .input-group-append + > select.input-group-text:not([size]):not([multiple]), +.input-group-sm > .input-group-prepend > select.btn:not([size]):not([multiple]), +.input-group-sm + > .input-group-prepend + > select.input-group-text:not([size]):not([multiple]), +.input-group-sm > select.form-control:not([size]):not([multiple]), +select.form-control-sm:not([size]):not([multiple]) { + height: calc(1.8125rem + 2px); +} + +.form-control-lg, +.input-group-lg > .form-control, +.input-group-lg > .input-group-append > .btn, +.input-group-lg > .input-group-append > .input-group-text, +.input-group-lg > .input-group-prepend > .btn, +.input-group-lg > .input-group-prepend > .input-group-text { + padding: 0.5rem 1rem; + font-size: 1.25rem; + line-height: 1.5; + border-radius: 0.3rem; +} + +.input-group-lg > .input-group-append > select.btn:not([size]):not([multiple]), +.input-group-lg + > .input-group-append + > select.input-group-text:not([size]):not([multiple]), +.input-group-lg > .input-group-prepend > select.btn:not([size]):not([multiple]), +.input-group-lg + > .input-group-prepend + > select.input-group-text:not([size]):not([multiple]), +.input-group-lg > select.form-control:not([size]):not([multiple]), +select.form-control-lg:not([size]):not([multiple]) { + height: calc(2.875rem + 2px); +} + +.form-group { + margin-bottom: 1rem; +} + +.form-text { + display: block; + margin-top: 0.25rem; +} + +.form-row { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + margin-right: -5px; + margin-left: -5px; +} + +.form-row > .col, +.form-row > [class*="col-"] { + padding-right: 5px; + padding-left: 5px; +} + +.form-check { + position: relative; + display: block; + padding-left: 1.25rem; +} + +.form-check-input { + position: absolute; + margin-top: 0.3rem; + margin-left: -1.25rem; +} + +.form-check-input:disabled ~ .form-check-label { + color: #6c757d; +} + +.form-check-label { + margin-bottom: 0; +} + +.form-check-inline { + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + padding-left: 0; + margin-right: 0.75rem; +} + +.form-check-inline .form-check-input { + position: static; + margin-top: 0; + margin-right: 0.3125rem; + margin-left: 0; +} + +.valid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 80%; + color: #28a745; +} + +.valid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.5rem; + margin-top: 0.1rem; + font-size: 0.875rem; + line-height: 1; + color: #fff; + background-color: rgba(40, 167, 69, 0.8); + border-radius: 0.2rem; +} + +.custom-select.is-valid, +.form-control.is-valid, +.was-validated .custom-select:valid, +.was-validated .form-control:valid { + border-color: #28a745; +} + +.custom-select.is-valid:focus, +.form-control.is-valid:focus, +.was-validated .custom-select:valid:focus, +.was-validated .form-control:valid:focus { + border-color: #28a745; + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); +} + +.custom-select.is-valid ~ .valid-feedback, +.custom-select.is-valid ~ .valid-tooltip, +.form-control.is-valid ~ .valid-feedback, +.form-control.is-valid ~ .valid-tooltip, +.was-validated .custom-select:valid ~ .valid-feedback, +.was-validated .custom-select:valid ~ .valid-tooltip, +.was-validated .form-control:valid ~ .valid-feedback, +.was-validated .form-control:valid ~ .valid-tooltip { + display: block; +} + +.form-check-input.is-valid ~ .form-check-label, +.was-validated .form-check-input:valid ~ .form-check-label { + color: #28a745; +} + +.form-check-input.is-valid ~ .valid-feedback, +.form-check-input.is-valid ~ .valid-tooltip, +.was-validated .form-check-input:valid ~ .valid-feedback, +.was-validated .form-check-input:valid ~ .valid-tooltip { + display: block; +} + +.custom-control-input.is-valid ~ .custom-control-label, +.was-validated .custom-control-input:valid ~ .custom-control-label { + color: #28a745; +} + +.custom-control-input.is-valid ~ .custom-control-label::before, +.was-validated .custom-control-input:valid ~ .custom-control-label::before { + background-color: #71dd8a; +} + +.custom-control-input.is-valid ~ .valid-feedback, +.custom-control-input.is-valid ~ .valid-tooltip, +.was-validated .custom-control-input:valid ~ .valid-feedback, +.was-validated .custom-control-input:valid ~ .valid-tooltip { + display: block; +} + +.custom-control-input.is-valid:checked ~ .custom-control-label::before, +.was-validated + .custom-control-input:valid:checked + ~ .custom-control-label::before { + background-color: #34ce57; +} + +.custom-control-input.is-valid:focus ~ .custom-control-label::before, +.was-validated + .custom-control-input:valid:focus + ~ .custom-control-label::before { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(40, 167, 69, 0.25); +} + +.custom-file-input.is-valid ~ .custom-file-label, +.was-validated .custom-file-input:valid ~ .custom-file-label { + border-color: #28a745; +} + +.custom-file-input.is-valid ~ .custom-file-label::before, +.was-validated .custom-file-input:valid ~ .custom-file-label::before { + border-color: inherit; +} + +.custom-file-input.is-valid ~ .valid-feedback, +.custom-file-input.is-valid ~ .valid-tooltip, +.was-validated .custom-file-input:valid ~ .valid-feedback, +.was-validated .custom-file-input:valid ~ .valid-tooltip { + display: block; +} + +.custom-file-input.is-valid:focus ~ .custom-file-label, +.was-validated .custom-file-input:valid:focus ~ .custom-file-label { + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); +} + +.invalid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 80%; + color: #dc3545; +} + +.invalid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.5rem; + margin-top: 0.1rem; + font-size: 0.875rem; + line-height: 1; + color: #fff; + background-color: rgba(220, 53, 69, 0.8); + border-radius: 0.2rem; +} + +.custom-select.is-invalid, +.form-control.is-invalid, +.was-validated .custom-select:invalid, +.was-validated .form-control:invalid { + border-color: #dc3545; +} + +.custom-select.is-invalid:focus, +.form-control.is-invalid:focus, +.was-validated .custom-select:invalid:focus, +.was-validated .form-control:invalid:focus { + border-color: #dc3545; + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); +} + +.custom-select.is-invalid ~ .invalid-feedback, +.custom-select.is-invalid ~ .invalid-tooltip, +.form-control.is-invalid ~ .invalid-feedback, +.form-control.is-invalid ~ .invalid-tooltip, +.was-validated .custom-select:invalid ~ .invalid-feedback, +.was-validated .custom-select:invalid ~ .invalid-tooltip, +.was-validated .form-control:invalid ~ .invalid-feedback, +.was-validated .form-control:invalid ~ .invalid-tooltip { + display: block; +} + +.form-check-input.is-invalid ~ .form-check-label, +.was-validated .form-check-input:invalid ~ .form-check-label { + color: #dc3545; +} + +.form-check-input.is-invalid ~ .invalid-feedback, +.form-check-input.is-invalid ~ .invalid-tooltip, +.was-validated .form-check-input:invalid ~ .invalid-feedback, +.was-validated .form-check-input:invalid ~ .invalid-tooltip { + display: block; +} + +.custom-control-input.is-invalid ~ .custom-control-label, +.was-validated .custom-control-input:invalid ~ .custom-control-label { + color: #dc3545; +} + +.custom-control-input.is-invalid ~ .custom-control-label::before, +.was-validated .custom-control-input:invalid ~ .custom-control-label::before { + background-color: #efa2a9; +} + +.custom-control-input.is-invalid ~ .invalid-feedback, +.custom-control-input.is-invalid ~ .invalid-tooltip, +.was-validated .custom-control-input:invalid ~ .invalid-feedback, +.was-validated .custom-control-input:invalid ~ .invalid-tooltip { + display: block; +} + +.custom-control-input.is-invalid:checked ~ .custom-control-label::before, +.was-validated + .custom-control-input:invalid:checked + ~ .custom-control-label::before { + background-color: #e4606d; +} + +.custom-control-input.is-invalid:focus ~ .custom-control-label::before, +.was-validated + .custom-control-input:invalid:focus + ~ .custom-control-label::before { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(220, 53, 69, 0.25); +} + +.custom-file-input.is-invalid ~ .custom-file-label, +.was-validated .custom-file-input:invalid ~ .custom-file-label { + border-color: #dc3545; +} + +.custom-file-input.is-invalid ~ .custom-file-label::before, +.was-validated .custom-file-input:invalid ~ .custom-file-label::before { + border-color: inherit; +} + +.custom-file-input.is-invalid ~ .invalid-feedback, +.custom-file-input.is-invalid ~ .invalid-tooltip, +.was-validated .custom-file-input:invalid ~ .invalid-feedback, +.was-validated .custom-file-input:invalid ~ .invalid-tooltip { + display: block; +} + +.custom-file-input.is-invalid:focus ~ .custom-file-label, +.was-validated .custom-file-input:invalid:focus ~ .custom-file-label { + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); +} + +.form-inline { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-flow: row wrap; + flex-flow: row wrap; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.form-inline .form-check { + width: 100%; +} + +@media (min-width: 576px) { + .form-inline label { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + margin-bottom: 0; + } + + .form-inline .form-group { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-flow: row wrap; + flex-flow: row wrap; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + margin-bottom: 0; + } + + .form-inline .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + + .form-inline .form-control-plaintext { + display: inline-block; + } + + .form-inline .input-group { + width: auto; + } + + .form-inline .form-check { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + width: auto; + padding-left: 0; + } + + .form-inline .form-check-input { + position: relative; + margin-top: 0; + margin-right: 0.25rem; + margin-left: 0; + } + + .form-inline .custom-control { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + } + + .form-inline .custom-control-label { + margin-bottom: 0; + } +} + +.btn { + display: inline-block; + font-weight: 400; + text-align: center; + white-space: nowrap; + vertical-align: middle; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + border: 1px solid transparent; + padding: 0.375rem 0.75rem; + font-size: 1rem; + line-height: 1.5; + border-radius: 0.25rem; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, + border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +.btn:focus, +.btn:hover { + text-decoration: none; +} + +.btn.focus, +.btn:focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.btn.disabled, +.btn:disabled { + opacity: 0.65; +} + +.btn:not(:disabled):not(.disabled) { + cursor: pointer; +} + +.btn:not(:disabled):not(.disabled).active, +.btn:not(:disabled):not(.disabled):active { + background-image: none; +} + +a.btn.disabled, +fieldset:disabled a.btn { + pointer-events: none; +} + +.btn-primary { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} + +.btn-primary:hover { + color: #fff; + background-color: #0069d9; + border-color: #0062cc; +} + +.btn-primary.focus, +.btn-primary:focus { + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); +} + +.btn-primary.disabled, +.btn-primary:disabled { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} + +.btn-primary:not(:disabled):not(.disabled).active, +.btn-primary:not(:disabled):not(.disabled):active, +.show > .btn-primary.dropdown-toggle { + color: #fff; + background-color: #0062cc; + border-color: #005cbf; +} + +.btn-primary:not(:disabled):not(.disabled).active:focus, +.btn-primary:not(:disabled):not(.disabled):active:focus, +.show > .btn-primary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); +} + +.btn-secondary { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} + +.btn-secondary:hover { + color: #fff; + background-color: #5a6268; + border-color: #545b62; +} + +.btn-secondary.focus, +.btn-secondary:focus { + box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); +} + +.btn-secondary.disabled, +.btn-secondary:disabled { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} + +.btn-secondary:not(:disabled):not(.disabled).active, +.btn-secondary:not(:disabled):not(.disabled):active, +.show > .btn-secondary.dropdown-toggle { + color: #fff; + background-color: #545b62; + border-color: #4e555b; +} + +.btn-secondary:not(:disabled):not(.disabled).active:focus, +.btn-secondary:not(:disabled):not(.disabled):active:focus, +.show > .btn-secondary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); +} + +.btn-success { + color: #fff; + background-color: #28a745; + border-color: #28a745; +} + +.btn-success:hover { + color: #fff; + background-color: #218838; + border-color: #1e7e34; +} + +.btn-success.focus, +.btn-success:focus { + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); +} + +.btn-success.disabled, +.btn-success:disabled { + color: #fff; + background-color: #28a745; + border-color: #28a745; +} + +.btn-success:not(:disabled):not(.disabled).active, +.btn-success:not(:disabled):not(.disabled):active, +.show > .btn-success.dropdown-toggle { + color: #fff; + background-color: #1e7e34; + border-color: #1c7430; +} + +.btn-success:not(:disabled):not(.disabled).active:focus, +.btn-success:not(:disabled):not(.disabled):active:focus, +.show > .btn-success.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); +} + +.btn-info { + color: #fff; + background-color: #17a2b8; + border-color: #17a2b8; +} + +.btn-info:hover { + color: #fff; + background-color: #138496; + border-color: #117a8b; +} + +.btn-info.focus, +.btn-info:focus { + box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); +} + +.btn-info.disabled, +.btn-info:disabled { + color: #fff; + background-color: #17a2b8; + border-color: #17a2b8; +} + +.btn-info:not(:disabled):not(.disabled).active, +.btn-info:not(:disabled):not(.disabled):active, +.show > .btn-info.dropdown-toggle { + color: #fff; + background-color: #117a8b; + border-color: #10707f; +} + +.btn-info:not(:disabled):not(.disabled).active:focus, +.btn-info:not(:disabled):not(.disabled):active:focus, +.show > .btn-info.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); +} + +.btn-warning { + color: #212529; + background-color: #ffc107; + border-color: #ffc107; +} + +.btn-warning:hover { + color: #212529; + background-color: #e0a800; + border-color: #d39e00; +} + +.btn-warning.focus, +.btn-warning:focus { + box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); +} + +.btn-warning.disabled, +.btn-warning:disabled { + color: #212529; + background-color: #ffc107; + border-color: #ffc107; +} + +.btn-warning:not(:disabled):not(.disabled).active, +.btn-warning:not(:disabled):not(.disabled):active, +.show > .btn-warning.dropdown-toggle { + color: #212529; + background-color: #d39e00; + border-color: #c69500; +} + +.btn-warning:not(:disabled):not(.disabled).active:focus, +.btn-warning:not(:disabled):not(.disabled):active:focus, +.show > .btn-warning.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); +} + +.btn-danger { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} + +.btn-danger:hover { + color: #fff; + background-color: #c82333; + border-color: #bd2130; +} + +.btn-danger.focus, +.btn-danger:focus { + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); +} + +.btn-danger.disabled, +.btn-danger:disabled { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} + +.btn-danger:not(:disabled):not(.disabled).active, +.btn-danger:not(:disabled):not(.disabled):active, +.show > .btn-danger.dropdown-toggle { + color: #fff; + background-color: #bd2130; + border-color: #b21f2d; +} + +.btn-danger:not(:disabled):not(.disabled).active:focus, +.btn-danger:not(:disabled):not(.disabled):active:focus, +.show > .btn-danger.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); +} + +.btn-light { + color: #212529; + background-color: #f8f9fa; + border-color: #f8f9fa; +} + +.btn-light:hover { + color: #212529; + background-color: #e2e6ea; + border-color: #dae0e5; +} + +.btn-light.focus, +.btn-light:focus { + box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); +} + +.btn-light.disabled, +.btn-light:disabled { + color: #212529; + background-color: #f8f9fa; + border-color: #f8f9fa; +} + +.btn-light:not(:disabled):not(.disabled).active, +.btn-light:not(:disabled):not(.disabled):active, +.show > .btn-light.dropdown-toggle { + color: #212529; + background-color: #dae0e5; + border-color: #d3d9df; +} + +.btn-light:not(:disabled):not(.disabled).active:focus, +.btn-light:not(:disabled):not(.disabled):active:focus, +.show > .btn-light.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); +} + +.btn-dark { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} + +.btn-dark:hover { + color: #fff; + background-color: #23272b; + border-color: #1d2124; +} + +.btn-dark.focus, +.btn-dark:focus { + box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); +} + +.btn-dark.disabled, +.btn-dark:disabled { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} + +.btn-dark:not(:disabled):not(.disabled).active, +.btn-dark:not(:disabled):not(.disabled):active, +.show > .btn-dark.dropdown-toggle { + color: #fff; + background-color: #1d2124; + border-color: #171a1d; +} + +.btn-dark:not(:disabled):not(.disabled).active:focus, +.btn-dark:not(:disabled):not(.disabled):active:focus, +.show > .btn-dark.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); +} + +.btn-outline-primary { + color: #007bff; + background-color: transparent; + background-image: none; + border-color: #007bff; +} + +.btn-outline-primary:hover { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} + +.btn-outline-primary.focus, +.btn-outline-primary:focus { + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); +} + +.btn-outline-primary.disabled, +.btn-outline-primary:disabled { + color: #007bff; + background-color: transparent; +} + +.btn-outline-primary:not(:disabled):not(.disabled).active, +.btn-outline-primary:not(:disabled):not(.disabled):active, +.show > .btn-outline-primary.dropdown-toggle { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} + +.btn-outline-primary:not(:disabled):not(.disabled).active:focus, +.btn-outline-primary:not(:disabled):not(.disabled):active:focus, +.show > .btn-outline-primary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); +} + +.btn-outline-secondary { + color: #6c757d; + background-color: transparent; + background-image: none; + border-color: #6c757d; +} + +.btn-outline-secondary:hover { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} + +.btn-outline-secondary.focus, +.btn-outline-secondary:focus { + box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); +} + +.btn-outline-secondary.disabled, +.btn-outline-secondary:disabled { + color: #6c757d; + background-color: transparent; +} + +.btn-outline-secondary:not(:disabled):not(.disabled).active, +.btn-outline-secondary:not(:disabled):not(.disabled):active, +.show > .btn-outline-secondary.dropdown-toggle { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} + +.btn-outline-secondary:not(:disabled):not(.disabled).active:focus, +.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, +.show > .btn-outline-secondary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); +} + +.btn-outline-success { + color: #28a745; + background-color: transparent; + background-image: none; + border-color: #28a745; +} + +.btn-outline-success:hover { + color: #fff; + background-color: #28a745; + border-color: #28a745; +} + +.btn-outline-success.focus, +.btn-outline-success:focus { + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); +} + +.btn-outline-success.disabled, +.btn-outline-success:disabled { + color: #28a745; + background-color: transparent; +} + +.btn-outline-success:not(:disabled):not(.disabled).active, +.btn-outline-success:not(:disabled):not(.disabled):active, +.show > .btn-outline-success.dropdown-toggle { + color: #fff; + background-color: #28a745; + border-color: #28a745; +} + +.btn-outline-success:not(:disabled):not(.disabled).active:focus, +.btn-outline-success:not(:disabled):not(.disabled):active:focus, +.show > .btn-outline-success.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); +} + +.btn-outline-info { + color: #17a2b8; + background-color: transparent; + background-image: none; + border-color: #17a2b8; +} + +.btn-outline-info:hover { + color: #fff; + background-color: #17a2b8; + border-color: #17a2b8; +} + +.btn-outline-info.focus, +.btn-outline-info:focus { + box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); +} + +.btn-outline-info.disabled, +.btn-outline-info:disabled { + color: #17a2b8; + background-color: transparent; +} + +.btn-outline-info:not(:disabled):not(.disabled).active, +.btn-outline-info:not(:disabled):not(.disabled):active, +.show > .btn-outline-info.dropdown-toggle { + color: #fff; + background-color: #17a2b8; + border-color: #17a2b8; +} + +.btn-outline-info:not(:disabled):not(.disabled).active:focus, +.btn-outline-info:not(:disabled):not(.disabled):active:focus, +.show > .btn-outline-info.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); +} + +.btn-outline-warning { + color: #ffc107; + background-color: transparent; + background-image: none; + border-color: #ffc107; +} + +.btn-outline-warning:hover { + color: #212529; + background-color: #ffc107; + border-color: #ffc107; +} + +.btn-outline-warning.focus, +.btn-outline-warning:focus { + box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); +} + +.btn-outline-warning.disabled, +.btn-outline-warning:disabled { + color: #ffc107; + background-color: transparent; +} + +.btn-outline-warning:not(:disabled):not(.disabled).active, +.btn-outline-warning:not(:disabled):not(.disabled):active, +.show > .btn-outline-warning.dropdown-toggle { + color: #212529; + background-color: #ffc107; + border-color: #ffc107; +} + +.btn-outline-warning:not(:disabled):not(.disabled).active:focus, +.btn-outline-warning:not(:disabled):not(.disabled):active:focus, +.show > .btn-outline-warning.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); +} + +.btn-outline-danger { + color: #dc3545; + background-color: transparent; + background-image: none; + border-color: #dc3545; +} + +.btn-outline-danger:hover { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} + +.btn-outline-danger.focus, +.btn-outline-danger:focus { + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); +} + +.btn-outline-danger.disabled, +.btn-outline-danger:disabled { + color: #dc3545; + background-color: transparent; +} + +.btn-outline-danger:not(:disabled):not(.disabled).active, +.btn-outline-danger:not(:disabled):not(.disabled):active, +.show > .btn-outline-danger.dropdown-toggle { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} + +.btn-outline-danger:not(:disabled):not(.disabled).active:focus, +.btn-outline-danger:not(:disabled):not(.disabled):active:focus, +.show > .btn-outline-danger.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); +} + +.btn-outline-light { + color: #f8f9fa; + background-color: transparent; + background-image: none; + border-color: #f8f9fa; +} + +.btn-outline-light:hover { + color: #212529; + background-color: #f8f9fa; + border-color: #f8f9fa; +} + +.btn-outline-light.focus, +.btn-outline-light:focus { + box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); +} + +.btn-outline-light.disabled, +.btn-outline-light:disabled { + color: #f8f9fa; + background-color: transparent; +} + +.btn-outline-light:not(:disabled):not(.disabled).active, +.btn-outline-light:not(:disabled):not(.disabled):active, +.show > .btn-outline-light.dropdown-toggle { + color: #212529; + background-color: #f8f9fa; + border-color: #f8f9fa; +} + +.btn-outline-light:not(:disabled):not(.disabled).active:focus, +.btn-outline-light:not(:disabled):not(.disabled):active:focus, +.show > .btn-outline-light.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); +} + +.btn-outline-dark { + color: #343a40; + background-color: transparent; + background-image: none; + border-color: #343a40; +} + +.btn-outline-dark:hover { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} + +.btn-outline-dark.focus, +.btn-outline-dark:focus { + box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); +} + +.btn-outline-dark.disabled, +.btn-outline-dark:disabled { + color: #343a40; + background-color: transparent; +} + +.btn-outline-dark:not(:disabled):not(.disabled).active, +.btn-outline-dark:not(:disabled):not(.disabled):active, +.show > .btn-outline-dark.dropdown-toggle { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} + +.btn-outline-dark:not(:disabled):not(.disabled).active:focus, +.btn-outline-dark:not(:disabled):not(.disabled):active:focus, +.show > .btn-outline-dark.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); +} + +.btn-link { + font-weight: 400; + color: #007bff; + background-color: transparent; +} + +.btn-link:hover { + color: #0056b3; + text-decoration: underline; + background-color: transparent; + border-color: transparent; +} + +.btn-link.focus, +.btn-link:focus { + text-decoration: underline; + border-color: transparent; + box-shadow: none; +} + +.btn-link.disabled, +.btn-link:disabled { + color: #6c757d; +} + +.btn-group-lg > .btn, +.btn-lg { + padding: 0.5rem 1rem; + font-size: 1.25rem; + line-height: 1.5; + border-radius: 0.3rem; +} + +.btn-group-sm > .btn, +.btn-sm { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; + border-radius: 0.2rem; +} + +.btn-block { + display: block; + width: 100%; +} + +.btn-block + .btn-block { + margin-top: 0.5rem; +} + +input[type="button"].btn-block, +input[type="reset"].btn-block, +input[type="submit"].btn-block { + width: 100%; +} + +.fade { + opacity: 0; + transition: opacity 0.15s linear; +} + +.fade.show { + opacity: 1; +} + +.collapse { + display: none; +} + +.collapse.show { + display: block; +} + +tr.collapse.show { + display: table-row; +} + +tbody.collapse.show { + display: table-row-group; +} + +.collapsing { + position: relative; + height: 0; + overflow: hidden; + transition: height 0.35s ease; +} + +.dropdown, +.dropup { + position: relative; +} + +.dropdown-toggle::after { + display: inline-block; + width: 0; + height: 0; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid; + border-right: 0.3em solid transparent; + border-bottom: 0; + border-left: 0.3em solid transparent; +} + +.dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 10rem; + padding: 0.5rem 0; + margin: 0.125rem 0 0; + font-size: 1rem; + color: #212529; + text-align: left; + list-style: none; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 0.25rem; +} + +.dropup .dropdown-menu { + margin-top: 0; + margin-bottom: 0.125rem; +} + +.dropup .dropdown-toggle::after { + display: inline-block; + width: 0; + height: 0; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0; + border-right: 0.3em solid transparent; + border-bottom: 0.3em solid; + border-left: 0.3em solid transparent; +} + +.dropup .dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropright .dropdown-menu { + margin-top: 0; + margin-left: 0.125rem; +} + +.dropright .dropdown-toggle::after { + display: inline-block; + width: 0; + height: 0; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-bottom: 0.3em solid transparent; + border-left: 0.3em solid; +} + +.dropright .dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropright .dropdown-toggle::after { + vertical-align: 0; +} + +.dropleft .dropdown-menu { + margin-top: 0; + margin-right: 0.125rem; +} + +.dropleft .dropdown-toggle::after { + display: inline-block; + width: 0; + height: 0; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; +} + +.dropleft .dropdown-toggle::after { + display: none; +} + +.dropleft .dropdown-toggle::before { + display: inline-block; + width: 0; + height: 0; + margin-right: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0.3em solid; + border-bottom: 0.3em solid transparent; +} + +.dropleft .dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropleft .dropdown-toggle::before { + vertical-align: 0; +} + +.dropdown-divider { + height: 0; + margin: 0.5rem 0; + overflow: hidden; + border-top: 1px solid #e9ecef; +} + +.dropdown-item { + display: block; + width: 100%; + padding: 0.25rem 1.5rem; + clear: both; + font-weight: 400; + color: #212529; + text-align: inherit; + white-space: nowrap; + background-color: transparent; + border: 0; +} + +.dropdown-item:focus, +.dropdown-item:hover { + color: #16181b; + text-decoration: none; + background-color: #f8f9fa; +} + +.dropdown-item.active, +.dropdown-item:active { + color: #fff; + text-decoration: none; + background-color: #007bff; +} + +.dropdown-item.disabled, +.dropdown-item:disabled { + color: #6c757d; + background-color: transparent; +} + +.dropdown-menu.show { + display: block; +} + +.dropdown-header { + display: block; + padding: 0.5rem 1.5rem; + margin-bottom: 0; + font-size: 0.875rem; + color: #6c757d; + white-space: nowrap; +} + +.btn-group, +.btn-group-vertical { + position: relative; + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + vertical-align: middle; +} + +.btn-group-vertical > .btn, +.btn-group > .btn { + position: relative; + -webkit-box-flex: 0; + -ms-flex: 0 1 auto; + flex: 0 1 auto; +} + +.btn-group-vertical > .btn:hover, +.btn-group > .btn:hover { + z-index: 1; +} + +.btn-group-vertical > .btn.active, +.btn-group-vertical > .btn:active, +.btn-group-vertical > .btn:focus, +.btn-group > .btn.active, +.btn-group > .btn:active, +.btn-group > .btn:focus { + z-index: 1; +} + +.btn-group .btn + .btn, +.btn-group .btn + .btn-group, +.btn-group .btn-group + .btn, +.btn-group .btn-group + .btn-group, +.btn-group-vertical .btn + .btn, +.btn-group-vertical .btn + .btn-group, +.btn-group-vertical .btn-group + .btn, +.btn-group-vertical .btn-group + .btn-group { + margin-left: -1px; +} + +.btn-toolbar { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; +} + +.btn-toolbar .input-group { + width: auto; +} + +.btn-group > .btn:first-child { + margin-left: 0; +} + +.btn-group > .btn-group:not(:last-child) > .btn, +.btn-group > .btn:not(:last-child):not(.dropdown-toggle) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.btn-group > .btn-group:not(:first-child) > .btn, +.btn-group > .btn:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.dropdown-toggle-split { + padding-right: 0.5625rem; + padding-left: 0.5625rem; +} + +.dropdown-toggle-split::after { + margin-left: 0; +} + +.btn-group-sm > .btn + .dropdown-toggle-split, +.btn-sm + .dropdown-toggle-split { + padding-right: 0.375rem; + padding-left: 0.375rem; +} + +.btn-group-lg > .btn + .dropdown-toggle-split, +.btn-lg + .dropdown-toggle-split { + padding-right: 0.75rem; + padding-left: 0.75rem; +} + +.btn-group-vertical { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: start; + -ms-flex-align: start; + align-items: flex-start; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; +} + +.btn-group-vertical .btn, +.btn-group-vertical .btn-group { + width: 100%; +} + +.btn-group-vertical > .btn + .btn, +.btn-group-vertical > .btn + .btn-group, +.btn-group-vertical > .btn-group + .btn, +.btn-group-vertical > .btn-group + .btn-group { + margin-top: -1px; + margin-left: 0; +} + +.btn-group-vertical > .btn-group:not(:last-child) > .btn, +.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle) { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.btn-group-vertical > .btn-group:not(:first-child) > .btn, +.btn-group-vertical > .btn:not(:first-child) { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.btn-group-toggle > .btn, +.btn-group-toggle > .btn-group > .btn { + margin-bottom: 0; +} + +.btn-group-toggle > .btn input[type="checkbox"], +.btn-group-toggle > .btn input[type="radio"], +.btn-group-toggle > .btn-group > .btn input[type="checkbox"], +.btn-group-toggle > .btn-group > .btn input[type="radio"] { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; +} + +.input-group { + position: relative; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-align: stretch; + -ms-flex-align: stretch; + align-items: stretch; + width: 100%; +} + +.input-group > .custom-file, +.input-group > .custom-select, +.input-group > .form-control { + position: relative; + -webkit-box-flex: 1; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + width: 1%; + margin-bottom: 0; +} + +.input-group > .custom-file:focus, +.input-group > .custom-select:focus, +.input-group > .form-control:focus { + z-index: 3; +} + +.input-group > .custom-file + .custom-file, +.input-group > .custom-file + .custom-select, +.input-group > .custom-file + .form-control, +.input-group > .custom-select + .custom-file, +.input-group > .custom-select + .custom-select, +.input-group > .custom-select + .form-control, +.input-group > .form-control + .custom-file, +.input-group > .form-control + .custom-select, +.input-group > .form-control + .form-control { + margin-left: -1px; +} + +.input-group > .custom-select:not(:last-child), +.input-group > .form-control:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.input-group > .custom-select:not(:first-child), +.input-group > .form-control:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.input-group > .custom-file { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.input-group > .custom-file:not(:last-child) .custom-file-label, +.input-group > .custom-file:not(:last-child) .custom-file-label::before { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.input-group > .custom-file:not(:first-child) .custom-file-label, +.input-group > .custom-file:not(:first-child) .custom-file-label::before { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.input-group-append, +.input-group-prepend { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.input-group-append .btn, +.input-group-prepend .btn { + position: relative; + z-index: 2; +} + +.input-group-append .btn + .btn, +.input-group-append .btn + .input-group-text, +.input-group-append .input-group-text + .btn, +.input-group-append .input-group-text + .input-group-text, +.input-group-prepend .btn + .btn, +.input-group-prepend .btn + .input-group-text, +.input-group-prepend .input-group-text + .btn, +.input-group-prepend .input-group-text + .input-group-text { + margin-left: -1px; +} + +.input-group-prepend { + margin-right: -1px; +} + +.input-group-append { + margin-left: -1px; +} + +.input-group-text { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + padding: 0.375rem 0.75rem; + margin-bottom: 0; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + text-align: center; + white-space: nowrap; + background-color: #e9ecef; + border: 1px solid #ced4da; + border-radius: 0.25rem; +} + +.input-group-text input[type="checkbox"], +.input-group-text input[type="radio"] { + margin-top: 0; +} + +.input-group + > .input-group-append:last-child + > .btn:not(:last-child):not(.dropdown-toggle), +.input-group + > .input-group-append:last-child + > .input-group-text:not(:last-child), +.input-group > .input-group-append:not(:last-child) > .btn, +.input-group > .input-group-append:not(:last-child) > .input-group-text, +.input-group > .input-group-prepend > .btn, +.input-group > .input-group-prepend > .input-group-text { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.input-group > .input-group-append > .btn, +.input-group > .input-group-append > .input-group-text, +.input-group > .input-group-prepend:first-child > .btn:not(:first-child), +.input-group + > .input-group-prepend:first-child + > .input-group-text:not(:first-child), +.input-group > .input-group-prepend:not(:first-child) > .btn, +.input-group > .input-group-prepend:not(:first-child) > .input-group-text { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.custom-control { + position: relative; + display: block; + min-height: 1.5rem; + padding-left: 1.5rem; +} + +.custom-control-inline { + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + margin-right: 1rem; +} + +.custom-control-input { + position: absolute; + z-index: -1; + opacity: 0; +} + +.custom-control-input:checked ~ .custom-control-label::before { + color: #fff; + background-color: #007bff; +} + +.custom-control-input:focus ~ .custom-control-label::before { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.custom-control-input:active ~ .custom-control-label::before { + color: #fff; + background-color: #b3d7ff; +} + +.custom-control-input:disabled ~ .custom-control-label { + color: #6c757d; +} + +.custom-control-input:disabled ~ .custom-control-label::before { + background-color: #e9ecef; +} + +.custom-control-label { + margin-bottom: 0; +} + +.custom-control-label::before { + position: absolute; + top: 0.25rem; + left: 0; + display: block; + width: 1rem; + height: 1rem; + pointer-events: none; + content: ""; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-color: #dee2e6; +} + +.custom-control-label::after { + position: absolute; + top: 0.25rem; + left: 0; + display: block; + width: 1rem; + height: 1rem; + content: ""; + background-repeat: no-repeat; + background-position: center center; + background-size: 50% 50%; +} + +.custom-checkbox .custom-control-label::before { + border-radius: 0.25rem; +} + +.custom-checkbox .custom-control-input:checked ~ .custom-control-label::before { + background-color: #007bff; +} + +.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E"); +} + +.custom-checkbox + .custom-control-input:indeterminate + ~ .custom-control-label::before { + background-color: #007bff; +} + +.custom-checkbox + .custom-control-input:indeterminate + ~ .custom-control-label::after { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E"); +} + +.custom-checkbox + .custom-control-input:disabled:checked + ~ .custom-control-label::before { + background-color: rgba(0, 123, 255, 0.5); +} + +.custom-checkbox + .custom-control-input:disabled:indeterminate + ~ .custom-control-label::before { + background-color: rgba(0, 123, 255, 0.5); +} + +.custom-radio .custom-control-label::before { + border-radius: 50%; +} + +.custom-radio .custom-control-input:checked ~ .custom-control-label::before { + background-color: #007bff; +} + +.custom-radio .custom-control-input:checked ~ .custom-control-label::after { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E"); +} + +.custom-radio + .custom-control-input:disabled:checked + ~ .custom-control-label::before { + background-color: rgba(0, 123, 255, 0.5); +} + +.custom-select { + display: inline-block; + width: 100%; + height: calc(2.25rem + 2px); + padding: 0.375rem 1.75rem 0.375rem 0.75rem; + line-height: 1.5; + color: #495057; + vertical-align: middle; + background: #fff + url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") + no-repeat right 0.75rem center; + background-size: 8px 10px; + border: 1px solid #ced4da; + border-radius: 0.25rem; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +.custom-select:focus { + border-color: #80bdff; + outline: 0; + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075), + 0 0 5px rgba(128, 189, 255, 0.5); +} + +.custom-select:focus::-ms-value { + color: #495057; + background-color: #fff; +} + +.custom-select[multiple], +.custom-select[size]:not([size="1"]) { + height: auto; + padding-right: 0.75rem; + background-image: none; +} + +.custom-select:disabled { + color: #6c757d; + background-color: #e9ecef; +} + +.custom-select::-ms-expand { + opacity: 0; +} + +.custom-select-sm { + height: calc(1.8125rem + 2px); + padding-top: 0.375rem; + padding-bottom: 0.375rem; + font-size: 75%; +} + +.custom-select-lg { + height: calc(2.875rem + 2px); + padding-top: 0.375rem; + padding-bottom: 0.375rem; + font-size: 125%; +} + +.custom-file { + position: relative; + display: inline-block; + width: 100%; + height: calc(2.25rem + 2px); + margin-bottom: 0; +} + +.custom-file-input { + position: relative; + z-index: 2; + width: 100%; + height: calc(2.25rem + 2px); + margin: 0; + opacity: 0; +} + +.custom-file-input:focus ~ .custom-file-control { + border-color: #80bdff; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.custom-file-input:focus ~ .custom-file-control::before { + border-color: #80bdff; +} + +.custom-file-input:lang(en) ~ .custom-file-label::after { + content: "Browse"; +} + +.custom-file-label { + position: absolute; + top: 0; + right: 0; + left: 0; + z-index: 1; + height: calc(2.25rem + 2px); + padding: 0.375rem 0.75rem; + line-height: 1.5; + color: #495057; + background-color: #fff; + border: 1px solid #ced4da; + border-radius: 0.25rem; +} + +.custom-file-label::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + z-index: 3; + display: block; + height: calc(calc(2.25rem + 2px) - 1px * 2); + padding: 0.375rem 0.75rem; + line-height: 1.5; + color: #495057; + content: "Browse"; + background-color: #e9ecef; + border-left: 1px solid #ced4da; + border-radius: 0 0.25rem 0.25rem 0; +} + +.nav { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} + +.nav-link { + display: block; + padding: 0.5rem 1rem; +} + +.nav-link:focus, +.nav-link:hover { + text-decoration: none; +} + +.nav-link.disabled { + color: #6c757d; +} + +.nav-tabs { + border-bottom: 1px solid #dee2e6; +} + +.nav-tabs .nav-item { + margin-bottom: -1px; +} + +.nav-tabs .nav-link { + border: 1px solid transparent; + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} + +.nav-tabs .nav-link:focus, +.nav-tabs .nav-link:hover { + border-color: #e9ecef #e9ecef #dee2e6; +} + +.nav-tabs .nav-link.disabled { + color: #6c757d; + background-color: transparent; + border-color: transparent; +} + +.nav-tabs .nav-item.show .nav-link, +.nav-tabs .nav-link.active { + color: #495057; + background-color: #fff; + border-color: #dee2e6 #dee2e6 #fff; +} + +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.nav-pills .nav-link { + border-radius: 0.25rem; +} + +.nav-pills .nav-link.active, +.nav-pills .show > .nav-link { + color: #fff; + background-color: #007bff; +} + +.nav-fill .nav-item { + -webkit-box-flex: 1; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + text-align: center; +} + +.nav-justified .nav-item { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + text-align: center; +} + +.tab-content > .tab-pane { + display: none; +} + +.tab-content > .active { + display: block; +} + +.navbar { + position: relative; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + padding: 0.5rem 1rem; +} + +.navbar > .container, +.navbar > .container-fluid { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; +} + +.navbar-brand { + display: inline-block; + padding-top: 0.3125rem; + padding-bottom: 0.3125rem; + margin-right: 1rem; + font-size: 1.25rem; + line-height: inherit; + white-space: nowrap; +} + +.navbar-brand:focus, +.navbar-brand:hover { + text-decoration: none; +} + +.navbar-nav { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} + +.navbar-nav .nav-link { + padding-right: 0; + padding-left: 0; +} + +.navbar-nav .dropdown-menu { + position: static; + float: none; +} + +.navbar-text { + display: inline-block; + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} + +.navbar-collapse { + -ms-flex-preferred-size: 100%; + flex-basis: 100%; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.navbar-toggler { + padding: 0.25rem 0.75rem; + font-size: 1.25rem; + line-height: 1; + background-color: transparent; + border: 1px solid transparent; + border-radius: 0.25rem; +} + +.navbar-toggler:focus, +.navbar-toggler:hover { + text-decoration: none; +} + +.navbar-toggler:not(:disabled):not(.disabled) { + cursor: pointer; +} + +.navbar-toggler-icon { + display: inline-block; + width: 1.5em; + height: 1.5em; + vertical-align: middle; + content: ""; + background: no-repeat center center; + background-size: 100% 100%; +} + +@media (max-width: 575.98px) { + .navbar-expand-sm > .container, + .navbar-expand-sm > .container-fluid { + padding-right: 0; + padding-left: 0; + } +} + +@media (min-width: 576px) { + .navbar-expand-sm { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + } + + .navbar-expand-sm .navbar-nav { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + } + + .navbar-expand-sm .navbar-nav .dropdown-menu { + position: absolute; + } + + .navbar-expand-sm .navbar-nav .dropdown-menu-right { + right: 0; + left: auto; + } + + .navbar-expand-sm .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + + .navbar-expand-sm > .container, + .navbar-expand-sm > .container-fluid { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + } + + .navbar-expand-sm .navbar-collapse { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto; + } + + .navbar-expand-sm .navbar-toggler { + display: none; + } + + .navbar-expand-sm .dropup .dropdown-menu { + top: auto; + bottom: 100%; + } +} + +@media (max-width: 767.98px) { + .navbar-expand-md > .container, + .navbar-expand-md > .container-fluid { + padding-right: 0; + padding-left: 0; + } +} + +@media (min-width: 768px) { + .navbar-expand-md { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + } + + .navbar-expand-md .navbar-nav { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + } + + .navbar-expand-md .navbar-nav .dropdown-menu { + position: absolute; + } + + .navbar-expand-md .navbar-nav .dropdown-menu-right { + right: 0; + left: auto; + } + + .navbar-expand-md .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + + .navbar-expand-md > .container, + .navbar-expand-md > .container-fluid { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + } + + .navbar-expand-md .navbar-collapse { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto; + } + + .navbar-expand-md .navbar-toggler { + display: none; + } + + .navbar-expand-md .dropup .dropdown-menu { + top: auto; + bottom: 100%; + } +} + +@media (max-width: 991.98px) { + .navbar-expand-lg > .container, + .navbar-expand-lg > .container-fluid { + padding-right: 0; + padding-left: 0; + } +} + +@media (min-width: 992px) { + .navbar-expand-lg { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + } + + .navbar-expand-lg .navbar-nav { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + } + + .navbar-expand-lg .navbar-nav .dropdown-menu { + position: absolute; + } + + .navbar-expand-lg .navbar-nav .dropdown-menu-right { + right: 0; + left: auto; + } + + .navbar-expand-lg .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + + .navbar-expand-lg > .container, + .navbar-expand-lg > .container-fluid { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + } + + .navbar-expand-lg .navbar-collapse { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto; + } + + .navbar-expand-lg .navbar-toggler { + display: none; + } + + .navbar-expand-lg .dropup .dropdown-menu { + top: auto; + bottom: 100%; + } +} + +@media (max-width: 1199.98px) { + .navbar-expand-xl > .container, + .navbar-expand-xl > .container-fluid { + padding-right: 0; + padding-left: 0; + } +} + +@media (min-width: 1200px) { + .navbar-expand-xl { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + } + + .navbar-expand-xl .navbar-nav { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + } + + .navbar-expand-xl .navbar-nav .dropdown-menu { + position: absolute; + } + + .navbar-expand-xl .navbar-nav .dropdown-menu-right { + right: 0; + left: auto; + } + + .navbar-expand-xl .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + + .navbar-expand-xl > .container, + .navbar-expand-xl > .container-fluid { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + } + + .navbar-expand-xl .navbar-collapse { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto; + } + + .navbar-expand-xl .navbar-toggler { + display: none; + } + + .navbar-expand-xl .dropup .dropdown-menu { + top: auto; + bottom: 100%; + } +} + +.navbar-expand { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; +} + +.navbar-expand > .container, +.navbar-expand > .container-fluid { + padding-right: 0; + padding-left: 0; +} + +.navbar-expand .navbar-nav { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; +} + +.navbar-expand .navbar-nav .dropdown-menu { + position: absolute; +} + +.navbar-expand .navbar-nav .dropdown-menu-right { + right: 0; + left: auto; +} + +.navbar-expand .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; +} + +.navbar-expand > .container, +.navbar-expand > .container-fluid { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; +} + +.navbar-expand .navbar-collapse { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto; +} + +.navbar-expand .navbar-toggler { + display: none; +} + +.navbar-expand .dropup .dropdown-menu { + top: auto; + bottom: 100%; +} + +.navbar-light .navbar-brand { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-light .navbar-brand:focus, +.navbar-light .navbar-brand:hover { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-light .navbar-nav .nav-link { + color: rgba(0, 0, 0, 0.5); +} + +.navbar-light .navbar-nav .nav-link:focus, +.navbar-light .navbar-nav .nav-link:hover { + color: rgba(0, 0, 0, 0.7); +} + +.navbar-light .navbar-nav .nav-link.disabled { + color: rgba(0, 0, 0, 0.3); +} + +.navbar-light .navbar-nav .active > .nav-link, +.navbar-light .navbar-nav .nav-link.active, +.navbar-light .navbar-nav .nav-link.show, +.navbar-light .navbar-nav .show > .nav-link { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-light .navbar-toggler { + color: rgba(0, 0, 0, 0.5); + border-color: rgba(0, 0, 0, 0.1); +} + +.navbar-light .navbar-toggler-icon { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"); +} + +.navbar-light .navbar-text { + color: rgba(0, 0, 0, 0.5); +} + +.navbar-light .navbar-text a { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-light .navbar-text a:focus, +.navbar-light .navbar-text a:hover { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-dark .navbar-brand { + color: #fff; +} + +.navbar-dark .navbar-brand:focus, +.navbar-dark .navbar-brand:hover { + color: #fff; +} + +.navbar-dark .navbar-nav .nav-link { + color: rgba(255, 255, 255, 0.5); +} + +.navbar-dark .navbar-nav .nav-link:focus, +.navbar-dark .navbar-nav .nav-link:hover { + color: rgba(255, 255, 255, 0.75); +} + +.navbar-dark .navbar-nav .nav-link.disabled { + color: rgba(255, 255, 255, 0.25); +} + +.navbar-dark .navbar-nav .active > .nav-link, +.navbar-dark .navbar-nav .nav-link.active, +.navbar-dark .navbar-nav .nav-link.show, +.navbar-dark .navbar-nav .show > .nav-link { + color: #fff; +} + +.navbar-dark .navbar-toggler { + color: rgba(255, 255, 255, 0.5); + border-color: rgba(255, 255, 255, 0.1); +} + +.navbar-dark .navbar-toggler-icon { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"); +} + +.navbar-dark .navbar-text { + color: rgba(255, 255, 255, 0.5); +} + +.navbar-dark .navbar-text a { + color: #fff; +} + +.navbar-dark .navbar-text a:focus, +.navbar-dark .navbar-text a:hover { + color: #fff; +} + +.card { + position: relative; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + min-width: 0; + word-wrap: break-word; + background-color: #fff; + background-clip: border-box; + border: 1px solid rgba(0, 0, 0, 0.125); + border-radius: 0.25rem; +} + +.card > hr { + margin-right: 0; + margin-left: 0; +} + +.card > .list-group:first-child .list-group-item:first-child { + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} + +.card > .list-group:last-child .list-group-item:last-child { + border-bottom-right-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} + +.card-body { + -webkit-box-flex: 1; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + padding: 1.25rem; +} + +.card-title { + margin-bottom: 0.75rem; +} + +.card-subtitle { + margin-top: -0.375rem; + margin-bottom: 0; +} + +.card-text:last-child { + margin-bottom: 0; +} + +.card-link:hover { + text-decoration: none; +} + +.card-link + .card-link { + margin-left: 1.25rem; +} + +.card-header { + padding: 0.75rem 1.25rem; + margin-bottom: 0; + background-color: rgba(0, 0, 0, 0.03); + border-bottom: 1px solid rgba(0, 0, 0, 0.125); +} + +.card-header:first-child { + border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0; +} + +.card-header + .list-group .list-group-item:first-child { + border-top: 0; +} + +.card-footer { + padding: 0.75rem 1.25rem; + background-color: rgba(0, 0, 0, 0.03); + border-top: 1px solid rgba(0, 0, 0, 0.125); +} + +.card-footer:last-child { + border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px); +} + +.card-header-tabs { + margin-right: -0.625rem; + margin-bottom: -0.75rem; + margin-left: -0.625rem; + border-bottom: 0; +} + +.card-header-pills { + margin-right: -0.625rem; + margin-left: -0.625rem; +} + +.card-img-overlay { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: 1.25rem; +} + +.card-img { + width: 100%; + border-radius: calc(0.25rem - 1px); +} + +.card-img-top { + width: 100%; + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); +} + +.card-img-bottom { + width: 100%; + border-bottom-right-radius: calc(0.25rem - 1px); + border-bottom-left-radius: calc(0.25rem - 1px); +} + +.card-deck { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; +} + +.card-deck .card { + margin-bottom: 15px; +} + +@media (min-width: 576px) { + .card-deck { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-flow: row wrap; + flex-flow: row wrap; + margin-right: -15px; + margin-left: -15px; + } + + .card-deck .card { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 1; + -ms-flex: 1 0 0%; + flex: 1 0 0%; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + margin-right: 15px; + margin-bottom: 0; + margin-left: 15px; + } +} + +.card-group { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; +} + +.card-group > .card { + margin-bottom: 15px; +} + +@media (min-width: 576px) { + .card-group { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-flow: row wrap; + flex-flow: row wrap; + } + + .card-group > .card { + -webkit-box-flex: 1; + -ms-flex: 1 0 0%; + flex: 1 0 0%; + margin-bottom: 0; + } + + .card-group > .card + .card { + margin-left: 0; + border-left: 0; + } + + .card-group > .card:first-child { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + + .card-group > .card:first-child .card-header, + .card-group > .card:first-child .card-img-top { + border-top-right-radius: 0; + } + + .card-group > .card:first-child .card-footer, + .card-group > .card:first-child .card-img-bottom { + border-bottom-right-radius: 0; + } + + .card-group > .card:last-child { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + + .card-group > .card:last-child .card-header, + .card-group > .card:last-child .card-img-top { + border-top-left-radius: 0; + } + + .card-group > .card:last-child .card-footer, + .card-group > .card:last-child .card-img-bottom { + border-bottom-left-radius: 0; + } + + .card-group > .card:only-child { + border-radius: 0.25rem; + } + + .card-group > .card:only-child .card-header, + .card-group > .card:only-child .card-img-top { + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; + } + + .card-group > .card:only-child .card-footer, + .card-group > .card:only-child .card-img-bottom { + border-bottom-right-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; + } + + .card-group > .card:not(:first-child):not(:last-child):not(:only-child) { + border-radius: 0; + } + + .card-group + > .card:not(:first-child):not(:last-child):not(:only-child) + .card-footer, + .card-group + > .card:not(:first-child):not(:last-child):not(:only-child) + .card-header, + .card-group + > .card:not(:first-child):not(:last-child):not(:only-child) + .card-img-bottom, + .card-group + > .card:not(:first-child):not(:last-child):not(:only-child) + .card-img-top { + border-radius: 0; + } +} + +.card-columns .card { + margin-bottom: 0.75rem; +} + +@media (min-width: 576px) { + .card-columns { + -webkit-column-count: 3; + -moz-column-count: 3; + column-count: 3; + -webkit-column-gap: 1.25rem; + -moz-column-gap: 1.25rem; + column-gap: 1.25rem; + } + + .card-columns .card { + display: inline-block; + width: 100%; + } +} + +.breadcrumb { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + padding: 0.75rem 1rem; + margin-bottom: 1rem; + list-style: none; + background-color: #e9ecef; + border-radius: 0.25rem; +} + +.breadcrumb-item + .breadcrumb-item::before { + display: inline-block; + padding-right: 0.5rem; + padding-left: 0.5rem; + color: #6c757d; + content: "/"; +} + +.breadcrumb-item + .breadcrumb-item:hover::before { + text-decoration: underline; +} + +.breadcrumb-item + .breadcrumb-item:hover::before { + text-decoration: none; +} + +.breadcrumb-item.active { + color: #6c757d; +} + +.pagination { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + padding-left: 0; + list-style: none; + border-radius: 0.25rem; +} + +.page-link { + position: relative; + display: block; + padding: 0.5rem 0.75rem; + margin-left: -1px; + line-height: 1.25; + color: #007bff; + background-color: #fff; + border: 1px solid #dee2e6; +} + +.page-link:hover { + color: #0056b3; + text-decoration: none; + background-color: #e9ecef; + border-color: #dee2e6; +} + +.page-link:focus { + z-index: 2; + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.page-link:not(:disabled):not(.disabled) { + cursor: pointer; +} + +.page-item:first-child .page-link { + margin-left: 0; + border-top-left-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} + +.page-item:last-child .page-link { + border-top-right-radius: 0.25rem; + border-bottom-right-radius: 0.25rem; +} + +.page-item.active .page-link { + z-index: 1; + color: #fff; + background-color: #007bff; + border-color: #007bff; +} + +.page-item.disabled .page-link { + color: #6c757d; + pointer-events: none; + cursor: auto; + background-color: #fff; + border-color: #dee2e6; +} + +.pagination-lg .page-link { + padding: 0.75rem 1.5rem; + font-size: 1.25rem; + line-height: 1.5; +} + +.pagination-lg .page-item:first-child .page-link { + border-top-left-radius: 0.3rem; + border-bottom-left-radius: 0.3rem; +} + +.pagination-lg .page-item:last-child .page-link { + border-top-right-radius: 0.3rem; + border-bottom-right-radius: 0.3rem; +} + +.pagination-sm .page-link { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; +} + +.pagination-sm .page-item:first-child .page-link { + border-top-left-radius: 0.2rem; + border-bottom-left-radius: 0.2rem; +} + +.pagination-sm .page-item:last-child .page-link { + border-top-right-radius: 0.2rem; + border-bottom-right-radius: 0.2rem; +} + +.badge { + display: inline-block; + padding: 0.25em 0.4em; + font-size: 75%; + font-weight: 700; + line-height: 1; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: 0.25rem; +} + +.badge:empty { + display: none; +} + +.btn .badge { + position: relative; + top: -1px; +} + +.badge-pill { + padding-right: 0.6em; + padding-left: 0.6em; + border-radius: 10rem; +} + +.badge-primary { + color: #fff; + background-color: #007bff; +} + +.badge-primary[href]:focus, +.badge-primary[href]:hover { + color: #fff; + text-decoration: none; + background-color: #0062cc; +} + +.badge-secondary { + color: #fff; + background-color: #6c757d; +} + +.badge-secondary[href]:focus, +.badge-secondary[href]:hover { + color: #fff; + text-decoration: none; + background-color: #545b62; +} + +.badge-success { + color: #fff; + background-color: #28a745; +} + +.badge-success[href]:focus, +.badge-success[href]:hover { + color: #fff; + text-decoration: none; + background-color: #1e7e34; +} + +.badge-info { + color: #fff; + background-color: #17a2b8; +} + +.badge-info[href]:focus, +.badge-info[href]:hover { + color: #fff; + text-decoration: none; + background-color: #117a8b; +} + +.badge-warning { + color: #212529; + background-color: #ffc107; +} + +.badge-warning[href]:focus, +.badge-warning[href]:hover { + color: #212529; + text-decoration: none; + background-color: #d39e00; +} + +.badge-danger { + color: #fff; + background-color: #dc3545; +} + +.badge-danger[href]:focus, +.badge-danger[href]:hover { + color: #fff; + text-decoration: none; + background-color: #bd2130; +} + +.badge-light { + color: #212529; + background-color: #f8f9fa; +} + +.badge-light[href]:focus, +.badge-light[href]:hover { + color: #212529; + text-decoration: none; + background-color: #dae0e5; +} + +.badge-dark { + color: #fff; + background-color: #343a40; +} + +.badge-dark[href]:focus, +.badge-dark[href]:hover { + color: #fff; + text-decoration: none; + background-color: #1d2124; +} + +.jumbotron { + padding: 2rem 1rem; + margin-bottom: 2rem; + background-color: #e9ecef; + border-radius: 0.3rem; +} + +@media (min-width: 576px) { + .jumbotron { + padding: 4rem 2rem; + } +} + +.jumbotron-fluid { + padding-right: 0; + padding-left: 0; + border-radius: 0; +} + +.alert { + position: relative; + padding: 0.75rem 1.25rem; + margin-bottom: 1rem; + border: 1px solid transparent; + border-radius: 0.25rem; +} + +.alert-heading { + color: inherit; +} + +.alert-link { + font-weight: 700; +} + +.alert-dismissible { + padding-right: 4rem; +} + +.alert-dismissible .close { + position: absolute; + top: 0; + right: 0; + padding: 0.75rem 1.25rem; + color: inherit; +} + +.alert-primary { + color: #004085; + background-color: #cce5ff; + border-color: #b8daff; +} + +.alert-primary hr { + border-top-color: #9fcdff; +} + +.alert-primary .alert-link { + color: #002752; +} + +.alert-secondary { + color: #383d41; + background-color: #e2e3e5; + border-color: #d6d8db; +} + +.alert-secondary hr { + border-top-color: #c8cbcf; +} + +.alert-secondary .alert-link { + color: #202326; +} + +.alert-success { + color: #155724; + background-color: #d4edda; + border-color: #c3e6cb; +} + +.alert-success hr { + border-top-color: #b1dfbb; +} + +.alert-success .alert-link { + color: #0b2e13; +} + +.alert-info { + color: #0c5460; + background-color: #d1ecf1; + border-color: #bee5eb; +} + +.alert-info hr { + border-top-color: #abdde5; +} + +.alert-info .alert-link { + color: #062c33; +} + +.alert-warning { + color: #856404; + background-color: #fff3cd; + border-color: #ffeeba; +} + +.alert-warning hr { + border-top-color: #ffe8a1; +} + +.alert-warning .alert-link { + color: #533f03; +} + +.alert-danger { + color: #721c24; + background-color: #f8d7da; + border-color: #f5c6cb; +} + +.alert-danger hr { + border-top-color: #f1b0b7; +} + +.alert-danger .alert-link { + color: #491217; +} + +.alert-light { + color: #818182; + background-color: #fefefe; + border-color: #fdfdfe; +} + +.alert-light hr { + border-top-color: #ececf6; +} + +.alert-light .alert-link { + color: #686868; +} + +.alert-dark { + color: #1b1e21; + background-color: #d6d8d9; + border-color: #c6c8ca; +} + +.alert-dark hr { + border-top-color: #b9bbbe; +} + +.alert-dark .alert-link { + color: #040505; +} + +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 1rem 0; + } + + to { + background-position: 0 0; + } +} + +@keyframes progress-bar-stripes { + from { + background-position: 1rem 0; + } + + to { + background-position: 0 0; + } +} + +.progress { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + height: 1rem; + overflow: hidden; + font-size: 0.75rem; + background-color: #e9ecef; + border-radius: 0.25rem; +} + +.progress-bar { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + color: #fff; + text-align: center; + background-color: #007bff; + transition: width 0.6s ease; +} + +.progress-bar-striped { + background-image: linear-gradient( + 45deg, + rgba(255, 255, 255, 0.15) 25%, + transparent 25%, + transparent 50%, + rgba(255, 255, 255, 0.15) 50%, + rgba(255, 255, 255, 0.15) 75%, + transparent 75%, + transparent + ); + background-size: 1rem 1rem; +} + +.progress-bar-animated { + -webkit-animation: progress-bar-stripes 1s linear infinite; + animation: progress-bar-stripes 1s linear infinite; +} + +.media { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: start; + -ms-flex-align: start; + align-items: flex-start; +} + +.media-body { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; +} + +.list-group { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; +} + +.list-group-item-action { + width: 100%; + color: #495057; + text-align: inherit; +} + +.list-group-item-action:focus, +.list-group-item-action:hover { + color: #495057; + text-decoration: none; + background-color: #f8f9fa; +} + +.list-group-item-action:active { + color: #212529; + background-color: #e9ecef; +} + +.list-group-item { + position: relative; + display: block; + padding: 0.75rem 1.25rem; + margin-bottom: -1px; + background-color: #fff; + border: 1px solid rgba(0, 0, 0, 0.125); +} + +.list-group-item:first-child { + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} + +.list-group-item:last-child { + margin-bottom: 0; + border-bottom-right-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} + +.list-group-item:focus, +.list-group-item:hover { + z-index: 1; + text-decoration: none; +} + +.list-group-item.disabled, +.list-group-item:disabled { + color: #6c757d; + background-color: #fff; +} + +.list-group-item.active { + z-index: 2; + color: #fff; + background-color: #007bff; + border-color: #007bff; +} + +.list-group-flush .list-group-item { + border-right: 0; + border-left: 0; + border-radius: 0; +} + +.list-group-flush:first-child .list-group-item:first-child { + border-top: 0; +} + +.list-group-flush:last-child .list-group-item:last-child { + border-bottom: 0; +} + +.list-group-item-primary { + color: #004085; + background-color: #b8daff; +} + +.list-group-item-primary.list-group-item-action:focus, +.list-group-item-primary.list-group-item-action:hover { + color: #004085; + background-color: #9fcdff; +} + +.list-group-item-primary.list-group-item-action.active { + color: #fff; + background-color: #004085; + border-color: #004085; +} + +.list-group-item-secondary { + color: #383d41; + background-color: #d6d8db; +} + +.list-group-item-secondary.list-group-item-action:focus, +.list-group-item-secondary.list-group-item-action:hover { + color: #383d41; + background-color: #c8cbcf; +} + +.list-group-item-secondary.list-group-item-action.active { + color: #fff; + background-color: #383d41; + border-color: #383d41; +} + +.list-group-item-success { + color: #155724; + background-color: #c3e6cb; +} + +.list-group-item-success.list-group-item-action:focus, +.list-group-item-success.list-group-item-action:hover { + color: #155724; + background-color: #b1dfbb; +} + +.list-group-item-success.list-group-item-action.active { + color: #fff; + background-color: #155724; + border-color: #155724; +} + +.list-group-item-info { + color: #0c5460; + background-color: #bee5eb; +} + +.list-group-item-info.list-group-item-action:focus, +.list-group-item-info.list-group-item-action:hover { + color: #0c5460; + background-color: #abdde5; +} + +.list-group-item-info.list-group-item-action.active { + color: #fff; + background-color: #0c5460; + border-color: #0c5460; +} + +.list-group-item-warning { + color: #856404; + background-color: #ffeeba; +} + +.list-group-item-warning.list-group-item-action:focus, +.list-group-item-warning.list-group-item-action:hover { + color: #856404; + background-color: #ffe8a1; +} + +.list-group-item-warning.list-group-item-action.active { + color: #fff; + background-color: #856404; + border-color: #856404; +} + +.list-group-item-danger { + color: #721c24; + background-color: #f5c6cb; +} + +.list-group-item-danger.list-group-item-action:focus, +.list-group-item-danger.list-group-item-action:hover { + color: #721c24; + background-color: #f1b0b7; +} + +.list-group-item-danger.list-group-item-action.active { + color: #fff; + background-color: #721c24; + border-color: #721c24; +} + +.list-group-item-light { + color: #818182; + background-color: #fdfdfe; +} + +.list-group-item-light.list-group-item-action:focus, +.list-group-item-light.list-group-item-action:hover { + color: #818182; + background-color: #ececf6; +} + +.list-group-item-light.list-group-item-action.active { + color: #fff; + background-color: #818182; + border-color: #818182; +} + +.list-group-item-dark { + color: #1b1e21; + background-color: #c6c8ca; +} + +.list-group-item-dark.list-group-item-action:focus, +.list-group-item-dark.list-group-item-action:hover { + color: #1b1e21; + background-color: #b9bbbe; +} + +.list-group-item-dark.list-group-item-action.active { + color: #fff; + background-color: #1b1e21; + border-color: #1b1e21; +} + +.close { + float: right; + font-size: 1.5rem; + font-weight: 700; + line-height: 1; + color: #000; + text-shadow: 0 1px 0 #fff; + opacity: 0.5; +} + +.close:focus, +.close:hover { + color: #000; + text-decoration: none; + opacity: 0.75; +} + +.close:not(:disabled):not(.disabled) { + cursor: pointer; +} + +button.close { + padding: 0; + background-color: transparent; + border: 0; + -webkit-appearance: none; +} + +.modal-open { + overflow: hidden; +} + +.modal { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1050; + display: none; + overflow: hidden; + outline: 0; +} + +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto; +} + +.modal-dialog { + position: relative; + width: auto; + margin: 0.5rem; + pointer-events: none; +} + +.modal.fade .modal-dialog { + transition: -webkit-transform 0.3s ease-out; + transition: transform 0.3s ease-out; + transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out; + -webkit-transform: translate(0, -25%); + transform: translate(0, -25%); +} + +.modal.show .modal-dialog { + -webkit-transform: translate(0, 0); + transform: translate(0, 0); +} + +.modal-dialog-centered { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + min-height: calc(100% - (0.5rem * 2)); +} + +.modal-content { + position: relative; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + width: 100%; + pointer-events: auto; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 0.3rem; + outline: 0; +} + +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000; +} + +.modal-backdrop.fade { + opacity: 0; +} + +.modal-backdrop.show { + opacity: 0.5; +} + +.modal-header { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: start; + -ms-flex-align: start; + align-items: flex-start; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + padding: 1rem; + border-bottom: 1px solid #e9ecef; + border-top-left-radius: 0.3rem; + border-top-right-radius: 0.3rem; +} + +.modal-header .close { + padding: 1rem; + margin: -1rem -1rem -1rem auto; +} + +.modal-title { + margin-bottom: 0; + line-height: 1.5; +} + +.modal-body { + position: relative; + -webkit-box-flex: 1; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + padding: 1rem; +} + +.modal-footer { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; + padding: 1rem; + border-top: 1px solid #e9ecef; +} + +.modal-footer > :not(:first-child) { + margin-left: 0.25rem; +} + +.modal-footer > :not(:last-child) { + margin-right: 0.25rem; +} + +.modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll; +} + +@media (min-width: 576px) { + .modal-dialog { + max-width: 500px; + margin: 1.75rem auto; + } + + .modal-dialog-centered { + min-height: calc(100% - (1.75rem * 2)); + } + + .modal-sm { + max-width: 300px; + } +} + +@media (min-width: 992px) { + .modal-lg { + max-width: 800px; + } +} + +.tooltip { + position: absolute; + z-index: 1070; + display: block; + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, + "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", + "Segoe UI Symbol"; + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: 0.875rem; + word-wrap: break-word; + opacity: 0; +} + +.tooltip.show { + opacity: 0.9; +} + +.tooltip .arrow { + position: absolute; + display: block; + width: 0.8rem; + height: 0.4rem; +} + +.tooltip .arrow::before { + position: absolute; + content: ""; + border-color: transparent; + border-style: solid; +} + +.bs-tooltip-auto[x-placement^="top"], +.bs-tooltip-top { + padding: 0.4rem 0; +} + +.bs-tooltip-auto[x-placement^="top"] .arrow, +.bs-tooltip-top .arrow { + bottom: 0; +} + +.bs-tooltip-auto[x-placement^="top"] .arrow::before, +.bs-tooltip-top .arrow::before { + top: 0; + border-width: 0.4rem 0.4rem 0; + border-top-color: #000; +} + +.bs-tooltip-auto[x-placement^="right"], +.bs-tooltip-right { + padding: 0 0.4rem; +} + +.bs-tooltip-auto[x-placement^="right"] .arrow, +.bs-tooltip-right .arrow { + left: 0; + width: 0.4rem; + height: 0.8rem; +} + +.bs-tooltip-auto[x-placement^="right"] .arrow::before, +.bs-tooltip-right .arrow::before { + right: 0; + border-width: 0.4rem 0.4rem 0.4rem 0; + border-right-color: #000; +} + +.bs-tooltip-auto[x-placement^="bottom"], +.bs-tooltip-bottom { + padding: 0.4rem 0; +} + +.bs-tooltip-auto[x-placement^="bottom"] .arrow, +.bs-tooltip-bottom .arrow { + top: 0; +} + +.bs-tooltip-auto[x-placement^="bottom"] .arrow::before, +.bs-tooltip-bottom .arrow::before { + bottom: 0; + border-width: 0 0.4rem 0.4rem; + border-bottom-color: #000; +} + +.bs-tooltip-auto[x-placement^="left"], +.bs-tooltip-left { + padding: 0 0.4rem; +} + +.bs-tooltip-auto[x-placement^="left"] .arrow, +.bs-tooltip-left .arrow { + right: 0; + width: 0.4rem; + height: 0.8rem; +} + +.bs-tooltip-auto[x-placement^="left"] .arrow::before, +.bs-tooltip-left .arrow::before { + left: 0; + border-width: 0.4rem 0 0.4rem 0.4rem; + border-left-color: #000; +} + +.tooltip-inner { + max-width: 200px; + padding: 0.25rem 0.5rem; + color: #fff; + text-align: center; + background-color: #000; + border-radius: 0.25rem; +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: block; + max-width: 276px; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, + "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", + "Segoe UI Symbol"; + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: 0.875rem; + word-wrap: break-word; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 0.3rem; +} + +.popover .arrow { + position: absolute; + display: block; + width: 1rem; + height: 0.5rem; + margin: 0 0.3rem; +} + +.popover .arrow::after, +.popover .arrow::before { + position: absolute; + display: block; + content: ""; + border-color: transparent; + border-style: solid; +} + +.bs-popover-auto[x-placement^="top"], +.bs-popover-top { + margin-bottom: 0.5rem; +} + +.bs-popover-auto[x-placement^="top"] .arrow, +.bs-popover-top .arrow { + bottom: calc((0.5rem + 1px) * -1); +} + +.bs-popover-auto[x-placement^="top"] .arrow::after, +.bs-popover-auto[x-placement^="top"] .arrow::before, +.bs-popover-top .arrow::after, +.bs-popover-top .arrow::before { + border-width: 0.5rem 0.5rem 0; +} + +.bs-popover-auto[x-placement^="top"] .arrow::before, +.bs-popover-top .arrow::before { + bottom: 0; + border-top-color: rgba(0, 0, 0, 0.25); +} + +.bs-popover-auto[x-placement^="top"] .arrow::after, +.bs-popover-top .arrow::after { + bottom: 1px; + border-top-color: #fff; +} + +.bs-popover-auto[x-placement^="right"], +.bs-popover-right { + margin-left: 0.5rem; +} + +.bs-popover-auto[x-placement^="right"] .arrow, +.bs-popover-right .arrow { + left: calc((0.5rem + 1px) * -1); + width: 0.5rem; + height: 1rem; + margin: 0.3rem 0; +} + +.bs-popover-auto[x-placement^="right"] .arrow::after, +.bs-popover-auto[x-placement^="right"] .arrow::before, +.bs-popover-right .arrow::after, +.bs-popover-right .arrow::before { + border-width: 0.5rem 0.5rem 0.5rem 0; +} + +.bs-popover-auto[x-placement^="right"] .arrow::before, +.bs-popover-right .arrow::before { + left: 0; + border-right-color: rgba(0, 0, 0, 0.25); +} + +.bs-popover-auto[x-placement^="right"] .arrow::after, +.bs-popover-right .arrow::after { + left: 1px; + border-right-color: #fff; +} + +.bs-popover-auto[x-placement^="bottom"], +.bs-popover-bottom { + margin-top: 0.5rem; +} + +.bs-popover-auto[x-placement^="bottom"] .arrow, +.bs-popover-bottom .arrow { + top: calc((0.5rem + 1px) * -1); +} + +.bs-popover-auto[x-placement^="bottom"] .arrow::after, +.bs-popover-auto[x-placement^="bottom"] .arrow::before, +.bs-popover-bottom .arrow::after, +.bs-popover-bottom .arrow::before { + border-width: 0 0.5rem 0.5rem 0.5rem; +} + +.bs-popover-auto[x-placement^="bottom"] .arrow::before, +.bs-popover-bottom .arrow::before { + top: 0; + border-bottom-color: rgba(0, 0, 0, 0.25); +} + +.bs-popover-auto[x-placement^="bottom"] .arrow::after, +.bs-popover-bottom .arrow::after { + top: 1px; + border-bottom-color: #fff; +} + +.bs-popover-auto[x-placement^="bottom"] .popover-header::before, +.bs-popover-bottom .popover-header::before { + position: absolute; + top: 0; + left: 50%; + display: block; + width: 1rem; + margin-left: -0.5rem; + content: ""; + border-bottom: 1px solid #f7f7f7; +} + +.bs-popover-auto[x-placement^="left"], +.bs-popover-left { + margin-right: 0.5rem; +} + +.bs-popover-auto[x-placement^="left"] .arrow, +.bs-popover-left .arrow { + right: calc((0.5rem + 1px) * -1); + width: 0.5rem; + height: 1rem; + margin: 0.3rem 0; +} + +.bs-popover-auto[x-placement^="left"] .arrow::after, +.bs-popover-auto[x-placement^="left"] .arrow::before, +.bs-popover-left .arrow::after, +.bs-popover-left .arrow::before { + border-width: 0.5rem 0 0.5rem 0.5rem; +} + +.bs-popover-auto[x-placement^="left"] .arrow::before, +.bs-popover-left .arrow::before { + right: 0; + border-left-color: rgba(0, 0, 0, 0.25); +} + +.bs-popover-auto[x-placement^="left"] .arrow::after, +.bs-popover-left .arrow::after { + right: 1px; + border-left-color: #fff; +} + +.popover-header { + padding: 0.5rem 0.75rem; + margin-bottom: 0; + font-size: 1rem; + color: inherit; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-top-left-radius: calc(0.3rem - 1px); + border-top-right-radius: calc(0.3rem - 1px); +} + +.popover-header:empty { + display: none; +} + +.popover-body { + padding: 0.5rem 0.75rem; + color: #212529; +} + +.carousel { + position: relative; +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} + +.carousel-item { + position: relative; + display: none; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + width: 100%; + transition: -webkit-transform 0.6s ease; + transition: transform 0.6s ease; + transition: transform 0.6s ease, -webkit-transform 0.6s ease; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-perspective: 1000px; + perspective: 1000px; +} + +.carousel-item-next, +.carousel-item-prev, +.carousel-item.active { + display: block; +} + +.carousel-item-next, +.carousel-item-prev { + position: absolute; + top: 0; +} + +.carousel-item-next.carousel-item-left, +.carousel-item-prev.carousel-item-right { + -webkit-transform: translateX(0); + transform: translateX(0); +} + +@supports ( + (-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d) +) { + .carousel-item-next.carousel-item-left, + .carousel-item-prev.carousel-item-right { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.active.carousel-item-right, +.carousel-item-next { + -webkit-transform: translateX(100%); + transform: translateX(100%); +} + +@supports ( + (-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d) +) { + .active.carousel-item-right, + .carousel-item-next { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} + +.active.carousel-item-left, +.carousel-item-prev { + -webkit-transform: translateX(-100%); + transform: translateX(-100%); +} + +@supports ( + (-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d) +) { + .active.carousel-item-left, + .carousel-item-prev { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} + +.carousel-control-next, +.carousel-control-prev { + position: absolute; + top: 0; + bottom: 0; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + width: 15%; + color: #fff; + text-align: center; + opacity: 0.5; +} + +.carousel-control-next:focus, +.carousel-control-next:hover, +.carousel-control-prev:focus, +.carousel-control-prev:hover { + color: #fff; + text-decoration: none; + outline: 0; + opacity: 0.9; +} + +.carousel-control-prev { + left: 0; +} + +.carousel-control-next { + right: 0; +} + +.carousel-control-next-icon, +.carousel-control-prev-icon { + display: inline-block; + width: 20px; + height: 20px; + background: transparent no-repeat center center; + background-size: 100% 100%; +} + +.carousel-control-prev-icon { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E"); +} + +.carousel-control-next-icon { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E"); +} + +.carousel-indicators { + position: absolute; + right: 0; + bottom: 10px; + left: 0; + z-index: 15; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + padding-left: 0; + margin-right: 15%; + margin-left: 15%; + list-style: none; +} + +.carousel-indicators li { + position: relative; + -webkit-box-flex: 0; + -ms-flex: 0 1 auto; + flex: 0 1 auto; + width: 30px; + height: 3px; + margin-right: 3px; + margin-left: 3px; + text-indent: -999px; + background-color: rgba(255, 255, 255, 0.5); +} + +.carousel-indicators li::before { + position: absolute; + top: -10px; + left: 0; + display: inline-block; + width: 100%; + height: 10px; + content: ""; +} + +.carousel-indicators li::after { + position: absolute; + bottom: -10px; + left: 0; + display: inline-block; + width: 100%; + height: 10px; + content: ""; +} + +.carousel-indicators .active { + background-color: #fff; +} + +.carousel-caption { + position: absolute; + right: 15%; + bottom: 20px; + left: 15%; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #fff; + text-align: center; +} + +.align-baseline { + vertical-align: baseline !important; +} + +.align-top { + vertical-align: top !important; +} + +.align-middle { + vertical-align: middle !important; +} + +.align-bottom { + vertical-align: bottom !important; +} + +.align-text-bottom { + vertical-align: text-bottom !important; +} + +.align-text-top { + vertical-align: text-top !important; +} + +.bg-primary { + background-color: #007bff !important; +} + +a.bg-primary:focus, +a.bg-primary:hover, +button.bg-primary:focus, +button.bg-primary:hover { + background-color: #0062cc !important; +} + +.bg-secondary { + background-color: #6c757d !important; +} + +a.bg-secondary:focus, +a.bg-secondary:hover, +button.bg-secondary:focus, +button.bg-secondary:hover { + background-color: #545b62 !important; +} + +.bg-success { + background-color: #28a745 !important; +} + +a.bg-success:focus, +a.bg-success:hover, +button.bg-success:focus, +button.bg-success:hover { + background-color: #1e7e34 !important; +} + +.bg-info { + background-color: #17a2b8 !important; +} + +a.bg-info:focus, +a.bg-info:hover, +button.bg-info:focus, +button.bg-info:hover { + background-color: #117a8b !important; +} + +.bg-warning { + background-color: #ffc107 !important; +} + +a.bg-warning:focus, +a.bg-warning:hover, +button.bg-warning:focus, +button.bg-warning:hover { + background-color: #d39e00 !important; +} + +.bg-danger { + background-color: #dc3545 !important; +} + +a.bg-danger:focus, +a.bg-danger:hover, +button.bg-danger:focus, +button.bg-danger:hover { + background-color: #bd2130 !important; +} + +.bg-light { + background-color: #f8f9fa !important; +} + +a.bg-light:focus, +a.bg-light:hover, +button.bg-light:focus, +button.bg-light:hover { + background-color: #dae0e5 !important; +} + +.bg-dark { + background-color: #343a40 !important; +} + +a.bg-dark:focus, +a.bg-dark:hover, +button.bg-dark:focus, +button.bg-dark:hover { + background-color: #1d2124 !important; +} + +.bg-white { + background-color: #fff !important; +} + +.bg-transparent { + background-color: transparent !important; +} + +.border { + border: 1px solid #dee2e6 !important; +} + +.border-top { + border-top: 1px solid #dee2e6 !important; +} + +.border-right { + border-right: 1px solid #dee2e6 !important; +} + +.border-bottom { + border-bottom: 1px solid #dee2e6 !important; +} + +.border-left { + border-left: 1px solid #dee2e6 !important; +} + +.border-0 { + border: 0 !important; +} + +.border-top-0 { + border-top: 0 !important; +} + +.border-right-0 { + border-right: 0 !important; +} + +.border-bottom-0 { + border-bottom: 0 !important; +} + +.border-left-0 { + border-left: 0 !important; +} + +.border-primary { + border-color: #007bff !important; +} + +.border-secondary { + border-color: #6c757d !important; +} + +.border-success { + border-color: #28a745 !important; +} + +.border-info { + border-color: #17a2b8 !important; +} + +.border-warning { + border-color: #ffc107 !important; +} + +.border-danger { + border-color: #dc3545 !important; +} + +.border-light { + border-color: #f8f9fa !important; +} + +.border-dark { + border-color: #343a40 !important; +} + +.border-white { + border-color: #fff !important; +} + +.rounded { + border-radius: 0.25rem !important; +} + +.rounded-top { + border-top-left-radius: 0.25rem !important; + border-top-right-radius: 0.25rem !important; +} + +.rounded-right { + border-top-right-radius: 0.25rem !important; + border-bottom-right-radius: 0.25rem !important; +} + +.rounded-bottom { + border-bottom-right-radius: 0.25rem !important; + border-bottom-left-radius: 0.25rem !important; +} + +.rounded-left { + border-top-left-radius: 0.25rem !important; + border-bottom-left-radius: 0.25rem !important; +} + +.rounded-circle { + border-radius: 50% !important; +} + +.rounded-0 { + border-radius: 0 !important; +} + +.clearfix::after { + display: block; + clear: both; + content: ""; +} + +.d-none { + display: none !important; +} + +.d-inline { + display: inline !important; +} + +.d-inline-block { + display: inline-block !important; +} + +.d-block { + display: block !important; +} + +.d-table { + display: table !important; +} + +.d-table-row { + display: table-row !important; +} + +.d-table-cell { + display: table-cell !important; +} + +.d-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; +} + +.d-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important; +} + +@media (min-width: 576px) { + .d-sm-none { + display: none !important; + } + + .d-sm-inline { + display: inline !important; + } + + .d-sm-inline-block { + display: inline-block !important; + } + + .d-sm-block { + display: block !important; + } + + .d-sm-table { + display: table !important; + } + + .d-sm-table-row { + display: table-row !important; + } + + .d-sm-table-cell { + display: table-cell !important; + } + + .d-sm-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + } + + .d-sm-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} + +@media (min-width: 768px) { + .d-md-none { + display: none !important; + } + + .d-md-inline { + display: inline !important; + } + + .d-md-inline-block { + display: inline-block !important; + } + + .d-md-block { + display: block !important; + } + + .d-md-table { + display: table !important; + } + + .d-md-table-row { + display: table-row !important; + } + + .d-md-table-cell { + display: table-cell !important; + } + + .d-md-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + } + + .d-md-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} + +@media (min-width: 992px) { + .d-lg-none { + display: none !important; + } + + .d-lg-inline { + display: inline !important; + } + + .d-lg-inline-block { + display: inline-block !important; + } + + .d-lg-block { + display: block !important; + } + + .d-lg-table { + display: table !important; + } + + .d-lg-table-row { + display: table-row !important; + } + + .d-lg-table-cell { + display: table-cell !important; + } + + .d-lg-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + } + + .d-lg-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} + +@media (min-width: 1200px) { + .d-xl-none { + display: none !important; + } + + .d-xl-inline { + display: inline !important; + } + + .d-xl-inline-block { + display: inline-block !important; + } + + .d-xl-block { + display: block !important; + } + + .d-xl-table { + display: table !important; + } + + .d-xl-table-row { + display: table-row !important; + } + + .d-xl-table-cell { + display: table-cell !important; + } + + .d-xl-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + } + + .d-xl-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} + +@media print { + .d-print-none { + display: none !important; + } + + .d-print-inline { + display: inline !important; + } + + .d-print-inline-block { + display: inline-block !important; + } + + .d-print-block { + display: block !important; + } + + .d-print-table { + display: table !important; + } + + .d-print-table-row { + display: table-row !important; + } + + .d-print-table-cell { + display: table-cell !important; + } + + .d-print-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + } + + .d-print-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} + +.embed-responsive { + position: relative; + display: block; + width: 100%; + padding: 0; + overflow: hidden; +} + +.embed-responsive::before { + display: block; + content: ""; +} + +.embed-responsive .embed-responsive-item, +.embed-responsive embed, +.embed-responsive iframe, +.embed-responsive object, +.embed-responsive video { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 100%; + height: 100%; + border: 0; +} + +.embed-responsive-21by9::before { + padding-top: 42.857143%; +} + +.embed-responsive-16by9::before { + padding-top: 56.25%; +} + +.embed-responsive-4by3::before { + padding-top: 75%; +} + +.embed-responsive-1by1::before { + padding-top: 100%; +} + +.flex-row { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important; +} + +.flex-column { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important; +} + +.flex-row-reverse { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; +} + +.flex-column-reverse { + -webkit-box-orient: vertical !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; +} + +.flex-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; +} + +.flex-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; +} + +.flex-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; +} + +.justify-content-start { + -webkit-box-pack: start !important; + -ms-flex-pack: start !important; + justify-content: flex-start !important; +} + +.justify-content-end { + -webkit-box-pack: end !important; + -ms-flex-pack: end !important; + justify-content: flex-end !important; +} + +.justify-content-center { + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important; +} + +.justify-content-between { + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important; +} + +.justify-content-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; +} + +.align-items-start { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: flex-start !important; +} + +.align-items-end { + -webkit-box-align: end !important; + -ms-flex-align: end !important; + align-items: flex-end !important; +} + +.align-items-center { + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important; +} + +.align-items-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important; +} + +.align-items-stretch { + -webkit-box-align: stretch !important; + -ms-flex-align: stretch !important; + align-items: stretch !important; +} + +.align-content-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; +} + +.align-content-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; +} + +.align-content-center { + -ms-flex-line-pack: center !important; + align-content: center !important; +} + +.align-content-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; +} + +.align-content-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; +} + +.align-content-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; +} + +.align-self-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; +} + +.align-self-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; +} + +.align-self-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; +} + +.align-self-center { + -ms-flex-item-align: center !important; + align-self: center !important; +} + +.align-self-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; +} + +.align-self-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; +} + +@media (min-width: 576px) { + .flex-sm-row { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important; + } + + .flex-sm-column { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important; + } + + .flex-sm-row-reverse { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + + .flex-sm-column-reverse { + -webkit-box-orient: vertical !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + + .flex-sm-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + + .flex-sm-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + + .flex-sm-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + + .justify-content-sm-start { + -webkit-box-pack: start !important; + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + + .justify-content-sm-end { + -webkit-box-pack: end !important; + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + + .justify-content-sm-center { + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important; + } + + .justify-content-sm-between { + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + + .justify-content-sm-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + + .align-items-sm-start { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: flex-start !important; + } + + .align-items-sm-end { + -webkit-box-align: end !important; + -ms-flex-align: end !important; + align-items: flex-end !important; + } + + .align-items-sm-center { + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important; + } + + .align-items-sm-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + + .align-items-sm-stretch { + -webkit-box-align: stretch !important; + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + + .align-content-sm-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + + .align-content-sm-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + + .align-content-sm-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + + .align-content-sm-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + + .align-content-sm-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + + .align-content-sm-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + + .align-self-sm-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + + .align-self-sm-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + + .align-self-sm-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + + .align-self-sm-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + + .align-self-sm-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + + .align-self-sm-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } +} + +@media (min-width: 768px) { + .flex-md-row { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important; + } + + .flex-md-column { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important; + } + + .flex-md-row-reverse { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + + .flex-md-column-reverse { + -webkit-box-orient: vertical !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + + .flex-md-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + + .flex-md-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + + .flex-md-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + + .justify-content-md-start { + -webkit-box-pack: start !important; + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + + .justify-content-md-end { + -webkit-box-pack: end !important; + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + + .justify-content-md-center { + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important; + } + + .justify-content-md-between { + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + + .justify-content-md-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + + .align-items-md-start { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: flex-start !important; + } + + .align-items-md-end { + -webkit-box-align: end !important; + -ms-flex-align: end !important; + align-items: flex-end !important; + } + + .align-items-md-center { + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important; + } + + .align-items-md-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + + .align-items-md-stretch { + -webkit-box-align: stretch !important; + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + + .align-content-md-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + + .align-content-md-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + + .align-content-md-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + + .align-content-md-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + + .align-content-md-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + + .align-content-md-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + + .align-self-md-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + + .align-self-md-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + + .align-self-md-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + + .align-self-md-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + + .align-self-md-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + + .align-self-md-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } +} + +@media (min-width: 992px) { + .flex-lg-row { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important; + } + + .flex-lg-column { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important; + } + + .flex-lg-row-reverse { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + + .flex-lg-column-reverse { + -webkit-box-orient: vertical !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + + .flex-lg-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + + .flex-lg-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + + .flex-lg-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + + .justify-content-lg-start { + -webkit-box-pack: start !important; + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + + .justify-content-lg-end { + -webkit-box-pack: end !important; + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + + .justify-content-lg-center { + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important; + } + + .justify-content-lg-between { + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + + .justify-content-lg-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + + .align-items-lg-start { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: flex-start !important; + } + + .align-items-lg-end { + -webkit-box-align: end !important; + -ms-flex-align: end !important; + align-items: flex-end !important; + } + + .align-items-lg-center { + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important; + } + + .align-items-lg-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + + .align-items-lg-stretch { + -webkit-box-align: stretch !important; + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + + .align-content-lg-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + + .align-content-lg-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + + .align-content-lg-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + + .align-content-lg-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + + .align-content-lg-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + + .align-content-lg-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + + .align-self-lg-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + + .align-self-lg-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + + .align-self-lg-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + + .align-self-lg-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + + .align-self-lg-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + + .align-self-lg-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } +} + +@media (min-width: 1200px) { + .flex-xl-row { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important; + } + + .flex-xl-column { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important; + } + + .flex-xl-row-reverse { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + + .flex-xl-column-reverse { + -webkit-box-orient: vertical !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + + .flex-xl-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + + .flex-xl-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + + .flex-xl-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + + .justify-content-xl-start { + -webkit-box-pack: start !important; + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + + .justify-content-xl-end { + -webkit-box-pack: end !important; + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + + .justify-content-xl-center { + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important; + } + + .justify-content-xl-between { + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + + .justify-content-xl-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + + .align-items-xl-start { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: flex-start !important; + } + + .align-items-xl-end { + -webkit-box-align: end !important; + -ms-flex-align: end !important; + align-items: flex-end !important; + } + + .align-items-xl-center { + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important; + } + + .align-items-xl-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + + .align-items-xl-stretch { + -webkit-box-align: stretch !important; + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + + .align-content-xl-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + + .align-content-xl-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + + .align-content-xl-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + + .align-content-xl-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + + .align-content-xl-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + + .align-content-xl-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + + .align-self-xl-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + + .align-self-xl-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + + .align-self-xl-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + + .align-self-xl-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + + .align-self-xl-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + + .align-self-xl-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } +} + +.float-left { + float: left !important; +} + +.float-right { + float: right !important; +} + +.float-none { + float: none !important; +} + +@media (min-width: 576px) { + .float-sm-left { + float: left !important; + } + + .float-sm-right { + float: right !important; + } + + .float-sm-none { + float: none !important; + } +} + +@media (min-width: 768px) { + .float-md-left { + float: left !important; + } + + .float-md-right { + float: right !important; + } + + .float-md-none { + float: none !important; + } +} + +@media (min-width: 992px) { + .float-lg-left { + float: left !important; + } + + .float-lg-right { + float: right !important; + } + + .float-lg-none { + float: none !important; + } +} + +@media (min-width: 1200px) { + .float-xl-left { + float: left !important; + } + + .float-xl-right { + float: right !important; + } + + .float-xl-none { + float: none !important; + } +} + +.position-static { + position: static !important; +} + +.position-relative { + position: relative !important; +} + +.position-absolute { + position: absolute !important; +} + +.position-fixed { + position: fixed !important; +} + +.position-sticky { + position: -webkit-sticky !important; + position: sticky !important; +} + +.fixed-top { + position: fixed; + top: 0; + right: 0; + left: 0; + z-index: 1030; +} + +.fixed-bottom { + position: fixed; + right: 0; + bottom: 0; + left: 0; + z-index: 1030; +} + +@supports ((position: -webkit-sticky) or (position: sticky)) { + .sticky-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } +} + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + -webkit-clip-path: inset(50%); + clip-path: inset(50%); + border: 0; +} + +.sr-only-focusable:active, +.sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + overflow: visible; + clip: auto; + white-space: normal; + -webkit-clip-path: none; + clip-path: none; +} + +.w-25 { + width: 25% !important; +} + +.w-50 { + width: 50% !important; +} + +.w-75 { + width: 75% !important; +} + +.w-100 { + width: 100% !important; +} + +.h-25 { + height: 25% !important; +} + +.h-50 { + height: 50% !important; +} + +.h-75 { + height: 75% !important; +} + +.h-100 { + height: 100% !important; +} + +.mw-100 { + max-width: 100% !important; +} + +.mh-100 { + max-height: 100% !important; +} + +.m-0 { + margin: 0 !important; +} + +.mt-0, +.my-0 { + margin-top: 0 !important; +} + +.mr-0, +.mx-0 { + margin-right: 0 !important; +} + +.mb-0, +.my-0 { + margin-bottom: 0 !important; +} + +.ml-0, +.mx-0 { + margin-left: 0 !important; +} + +.m-1 { + margin: 0.25rem !important; +} + +.mt-1, +.my-1 { + margin-top: 0.25rem !important; +} + +.mr-1, +.mx-1 { + margin-right: 0.25rem !important; +} + +.mb-1, +.my-1 { + margin-bottom: 0.25rem !important; +} + +.ml-1, +.mx-1 { + margin-left: 0.25rem !important; +} + +.m-2 { + margin: 0.5rem !important; +} + +.mt-2, +.my-2 { + margin-top: 0.5rem !important; +} + +.mr-2, +.mx-2 { + margin-right: 0.5rem !important; +} + +.mb-2, +.my-2 { + margin-bottom: 0.5rem !important; +} + +.ml-2, +.mx-2 { + margin-left: 0.5rem !important; +} + +.m-3 { + margin: 1rem !important; +} + +.mt-3, +.my-3 { + margin-top: 1rem !important; +} + +.mr-3, +.mx-3 { + margin-right: 1rem !important; +} + +.mb-3, +.my-3 { + margin-bottom: 1rem !important; +} + +.ml-3, +.mx-3 { + margin-left: 1rem !important; +} + +.m-4 { + margin: 1.5rem !important; +} + +.mt-4, +.my-4 { + margin-top: 1.5rem !important; +} + +.mr-4, +.mx-4 { + margin-right: 1.5rem !important; +} + +.mb-4, +.my-4 { + margin-bottom: 1.5rem !important; +} + +.ml-4, +.mx-4 { + margin-left: 1.5rem !important; +} + +.m-5 { + margin: 3rem !important; +} + +.mt-5, +.my-5 { + margin-top: 3rem !important; +} + +.mr-5, +.mx-5 { + margin-right: 3rem !important; +} + +.mb-5, +.my-5 { + margin-bottom: 3rem !important; +} + +.ml-5, +.mx-5 { + margin-left: 3rem !important; +} + +.p-0 { + padding: 0 !important; +} + +.pt-0, +.py-0 { + padding-top: 0 !important; +} + +.pr-0, +.px-0 { + padding-right: 0 !important; +} + +.pb-0, +.py-0 { + padding-bottom: 0 !important; +} + +.pl-0, +.px-0 { + padding-left: 0 !important; +} + +.p-1 { + padding: 0.25rem !important; +} + +.pt-1, +.py-1 { + padding-top: 0.25rem !important; +} + +.pr-1, +.px-1 { + padding-right: 0.25rem !important; +} + +.pb-1, +.py-1 { + padding-bottom: 0.25rem !important; +} + +.pl-1, +.px-1 { + padding-left: 0.25rem !important; +} + +.p-2 { + padding: 0.5rem !important; +} + +.pt-2, +.py-2 { + padding-top: 0.5rem !important; +} + +.pr-2, +.px-2 { + padding-right: 0.5rem !important; +} + +.pb-2, +.py-2 { + padding-bottom: 0.5rem !important; +} + +.pl-2, +.px-2 { + padding-left: 0.5rem !important; +} + +.p-3 { + padding: 1rem !important; +} + +.pt-3, +.py-3 { + padding-top: 1rem !important; +} + +.pr-3, +.px-3 { + padding-right: 1rem !important; +} + +.pb-3, +.py-3 { + padding-bottom: 1rem !important; +} + +.pl-3, +.px-3 { + padding-left: 1rem !important; +} + +.p-4 { + padding: 1.5rem !important; +} + +.pt-4, +.py-4 { + padding-top: 1.5rem !important; +} + +.pr-4, +.px-4 { + padding-right: 1.5rem !important; +} + +.pb-4, +.py-4 { + padding-bottom: 1.5rem !important; +} + +.pl-4, +.px-4 { + padding-left: 1.5rem !important; +} + +.p-5 { + padding: 3rem !important; +} + +.pt-5, +.py-5 { + padding-top: 3rem !important; +} + +.pr-5, +.px-5 { + padding-right: 3rem !important; +} + +.pb-5, +.py-5 { + padding-bottom: 3rem !important; +} + +.pl-5, +.px-5 { + padding-left: 3rem !important; +} + +.m-auto { + margin: auto !important; +} + +.mt-auto, +.my-auto { + margin-top: auto !important; +} + +.mr-auto, +.mx-auto { + margin-right: auto !important; +} + +.mb-auto, +.my-auto { + margin-bottom: auto !important; +} + +.ml-auto, +.mx-auto { + margin-left: auto !important; +} + +@media (min-width: 576px) { + .m-sm-0 { + margin: 0 !important; + } + + .mt-sm-0, + .my-sm-0 { + margin-top: 0 !important; + } + + .mr-sm-0, + .mx-sm-0 { + margin-right: 0 !important; + } + + .mb-sm-0, + .my-sm-0 { + margin-bottom: 0 !important; + } + + .ml-sm-0, + .mx-sm-0 { + margin-left: 0 !important; + } + + .m-sm-1 { + margin: 0.25rem !important; + } + + .mt-sm-1, + .my-sm-1 { + margin-top: 0.25rem !important; + } + + .mr-sm-1, + .mx-sm-1 { + margin-right: 0.25rem !important; + } + + .mb-sm-1, + .my-sm-1 { + margin-bottom: 0.25rem !important; + } + + .ml-sm-1, + .mx-sm-1 { + margin-left: 0.25rem !important; + } + + .m-sm-2 { + margin: 0.5rem !important; + } + + .mt-sm-2, + .my-sm-2 { + margin-top: 0.5rem !important; + } + + .mr-sm-2, + .mx-sm-2 { + margin-right: 0.5rem !important; + } + + .mb-sm-2, + .my-sm-2 { + margin-bottom: 0.5rem !important; + } + + .ml-sm-2, + .mx-sm-2 { + margin-left: 0.5rem !important; + } + + .m-sm-3 { + margin: 1rem !important; + } + + .mt-sm-3, + .my-sm-3 { + margin-top: 1rem !important; + } + + .mr-sm-3, + .mx-sm-3 { + margin-right: 1rem !important; + } + + .mb-sm-3, + .my-sm-3 { + margin-bottom: 1rem !important; + } + + .ml-sm-3, + .mx-sm-3 { + margin-left: 1rem !important; + } + + .m-sm-4 { + margin: 1.5rem !important; + } + + .mt-sm-4, + .my-sm-4 { + margin-top: 1.5rem !important; + } + + .mr-sm-4, + .mx-sm-4 { + margin-right: 1.5rem !important; + } + + .mb-sm-4, + .my-sm-4 { + margin-bottom: 1.5rem !important; + } + + .ml-sm-4, + .mx-sm-4 { + margin-left: 1.5rem !important; + } + + .m-sm-5 { + margin: 3rem !important; + } + + .mt-sm-5, + .my-sm-5 { + margin-top: 3rem !important; + } + + .mr-sm-5, + .mx-sm-5 { + margin-right: 3rem !important; + } + + .mb-sm-5, + .my-sm-5 { + margin-bottom: 3rem !important; + } + + .ml-sm-5, + .mx-sm-5 { + margin-left: 3rem !important; + } + + .p-sm-0 { + padding: 0 !important; + } + + .pt-sm-0, + .py-sm-0 { + padding-top: 0 !important; + } + + .pr-sm-0, + .px-sm-0 { + padding-right: 0 !important; + } + + .pb-sm-0, + .py-sm-0 { + padding-bottom: 0 !important; + } + + .pl-sm-0, + .px-sm-0 { + padding-left: 0 !important; + } + + .p-sm-1 { + padding: 0.25rem !important; + } + + .pt-sm-1, + .py-sm-1 { + padding-top: 0.25rem !important; + } + + .pr-sm-1, + .px-sm-1 { + padding-right: 0.25rem !important; + } + + .pb-sm-1, + .py-sm-1 { + padding-bottom: 0.25rem !important; + } + + .pl-sm-1, + .px-sm-1 { + padding-left: 0.25rem !important; + } + + .p-sm-2 { + padding: 0.5rem !important; + } + + .pt-sm-2, + .py-sm-2 { + padding-top: 0.5rem !important; + } + + .pr-sm-2, + .px-sm-2 { + padding-right: 0.5rem !important; + } + + .pb-sm-2, + .py-sm-2 { + padding-bottom: 0.5rem !important; + } + + .pl-sm-2, + .px-sm-2 { + padding-left: 0.5rem !important; + } + + .p-sm-3 { + padding: 1rem !important; + } + + .pt-sm-3, + .py-sm-3 { + padding-top: 1rem !important; + } + + .pr-sm-3, + .px-sm-3 { + padding-right: 1rem !important; + } + + .pb-sm-3, + .py-sm-3 { + padding-bottom: 1rem !important; + } + + .pl-sm-3, + .px-sm-3 { + padding-left: 1rem !important; + } + + .p-sm-4 { + padding: 1.5rem !important; + } + + .pt-sm-4, + .py-sm-4 { + padding-top: 1.5rem !important; + } + + .pr-sm-4, + .px-sm-4 { + padding-right: 1.5rem !important; + } + + .pb-sm-4, + .py-sm-4 { + padding-bottom: 1.5rem !important; + } + + .pl-sm-4, + .px-sm-4 { + padding-left: 1.5rem !important; + } + + .p-sm-5 { + padding: 3rem !important; + } + + .pt-sm-5, + .py-sm-5 { + padding-top: 3rem !important; + } + + .pr-sm-5, + .px-sm-5 { + padding-right: 3rem !important; + } + + .pb-sm-5, + .py-sm-5 { + padding-bottom: 3rem !important; + } + + .pl-sm-5, + .px-sm-5 { + padding-left: 3rem !important; + } + + .m-sm-auto { + margin: auto !important; + } + + .mt-sm-auto, + .my-sm-auto { + margin-top: auto !important; + } + + .mr-sm-auto, + .mx-sm-auto { + margin-right: auto !important; + } + + .mb-sm-auto, + .my-sm-auto { + margin-bottom: auto !important; + } + + .ml-sm-auto, + .mx-sm-auto { + margin-left: auto !important; + } +} + +@media (min-width: 768px) { + .m-md-0 { + margin: 0 !important; + } + + .mt-md-0, + .my-md-0 { + margin-top: 0 !important; + } + + .mr-md-0, + .mx-md-0 { + margin-right: 0 !important; + } + + .mb-md-0, + .my-md-0 { + margin-bottom: 0 !important; + } + + .ml-md-0, + .mx-md-0 { + margin-left: 0 !important; + } + + .m-md-1 { + margin: 0.25rem !important; + } + + .mt-md-1, + .my-md-1 { + margin-top: 0.25rem !important; + } + + .mr-md-1, + .mx-md-1 { + margin-right: 0.25rem !important; + } + + .mb-md-1, + .my-md-1 { + margin-bottom: 0.25rem !important; + } + + .ml-md-1, + .mx-md-1 { + margin-left: 0.25rem !important; + } + + .m-md-2 { + margin: 0.5rem !important; + } + + .mt-md-2, + .my-md-2 { + margin-top: 0.5rem !important; + } + + .mr-md-2, + .mx-md-2 { + margin-right: 0.5rem !important; + } + + .mb-md-2, + .my-md-2 { + margin-bottom: 0.5rem !important; + } + + .ml-md-2, + .mx-md-2 { + margin-left: 0.5rem !important; + } + + .m-md-3 { + margin: 1rem !important; + } + + .mt-md-3, + .my-md-3 { + margin-top: 1rem !important; + } + + .mr-md-3, + .mx-md-3 { + margin-right: 1rem !important; + } + + .mb-md-3, + .my-md-3 { + margin-bottom: 1rem !important; + } + + .ml-md-3, + .mx-md-3 { + margin-left: 1rem !important; + } + + .m-md-4 { + margin: 1.5rem !important; + } + + .mt-md-4, + .my-md-4 { + margin-top: 1.5rem !important; + } + + .mr-md-4, + .mx-md-4 { + margin-right: 1.5rem !important; + } + + .mb-md-4, + .my-md-4 { + margin-bottom: 1.5rem !important; + } + + .ml-md-4, + .mx-md-4 { + margin-left: 1.5rem !important; + } + + .m-md-5 { + margin: 3rem !important; + } + + .mt-md-5, + .my-md-5 { + margin-top: 3rem !important; + } + + .mr-md-5, + .mx-md-5 { + margin-right: 3rem !important; + } + + .mb-md-5, + .my-md-5 { + margin-bottom: 3rem !important; + } + + .ml-md-5, + .mx-md-5 { + margin-left: 3rem !important; + } + + .p-md-0 { + padding: 0 !important; + } + + .pt-md-0, + .py-md-0 { + padding-top: 0 !important; + } + + .pr-md-0, + .px-md-0 { + padding-right: 0 !important; + } + + .pb-md-0, + .py-md-0 { + padding-bottom: 0 !important; + } + + .pl-md-0, + .px-md-0 { + padding-left: 0 !important; + } + + .p-md-1 { + padding: 0.25rem !important; + } + + .pt-md-1, + .py-md-1 { + padding-top: 0.25rem !important; + } + + .pr-md-1, + .px-md-1 { + padding-right: 0.25rem !important; + } + + .pb-md-1, + .py-md-1 { + padding-bottom: 0.25rem !important; + } + + .pl-md-1, + .px-md-1 { + padding-left: 0.25rem !important; + } + + .p-md-2 { + padding: 0.5rem !important; + } + + .pt-md-2, + .py-md-2 { + padding-top: 0.5rem !important; + } + + .pr-md-2, + .px-md-2 { + padding-right: 0.5rem !important; + } + + .pb-md-2, + .py-md-2 { + padding-bottom: 0.5rem !important; + } + + .pl-md-2, + .px-md-2 { + padding-left: 0.5rem !important; + } + + .p-md-3 { + padding: 1rem !important; + } + + .pt-md-3, + .py-md-3 { + padding-top: 1rem !important; + } + + .pr-md-3, + .px-md-3 { + padding-right: 1rem !important; + } + + .pb-md-3, + .py-md-3 { + padding-bottom: 1rem !important; + } + + .pl-md-3, + .px-md-3 { + padding-left: 1rem !important; + } + + .p-md-4 { + padding: 1.5rem !important; + } + + .pt-md-4, + .py-md-4 { + padding-top: 1.5rem !important; + } + + .pr-md-4, + .px-md-4 { + padding-right: 1.5rem !important; + } + + .pb-md-4, + .py-md-4 { + padding-bottom: 1.5rem !important; + } + + .pl-md-4, + .px-md-4 { + padding-left: 1.5rem !important; + } + + .p-md-5 { + padding: 3rem !important; + } + + .pt-md-5, + .py-md-5 { + padding-top: 3rem !important; + } + + .pr-md-5, + .px-md-5 { + padding-right: 3rem !important; + } + + .pb-md-5, + .py-md-5 { + padding-bottom: 3rem !important; + } + + .pl-md-5, + .px-md-5 { + padding-left: 3rem !important; + } + + .m-md-auto { + margin: auto !important; + } + + .mt-md-auto, + .my-md-auto { + margin-top: auto !important; + } + + .mr-md-auto, + .mx-md-auto { + margin-right: auto !important; + } + + .mb-md-auto, + .my-md-auto { + margin-bottom: auto !important; + } + + .ml-md-auto, + .mx-md-auto { + margin-left: auto !important; + } +} + +@media (min-width: 992px) { + .m-lg-0 { + margin: 0 !important; + } + + .mt-lg-0, + .my-lg-0 { + margin-top: 0 !important; + } + + .mr-lg-0, + .mx-lg-0 { + margin-right: 0 !important; + } + + .mb-lg-0, + .my-lg-0 { + margin-bottom: 0 !important; + } + + .ml-lg-0, + .mx-lg-0 { + margin-left: 0 !important; + } + + .m-lg-1 { + margin: 0.25rem !important; + } + + .mt-lg-1, + .my-lg-1 { + margin-top: 0.25rem !important; + } + + .mr-lg-1, + .mx-lg-1 { + margin-right: 0.25rem !important; + } + + .mb-lg-1, + .my-lg-1 { + margin-bottom: 0.25rem !important; + } + + .ml-lg-1, + .mx-lg-1 { + margin-left: 0.25rem !important; + } + + .m-lg-2 { + margin: 0.5rem !important; + } + + .mt-lg-2, + .my-lg-2 { + margin-top: 0.5rem !important; + } + + .mr-lg-2, + .mx-lg-2 { + margin-right: 0.5rem !important; + } + + .mb-lg-2, + .my-lg-2 { + margin-bottom: 0.5rem !important; + } + + .ml-lg-2, + .mx-lg-2 { + margin-left: 0.5rem !important; + } + + .m-lg-3 { + margin: 1rem !important; + } + + .mt-lg-3, + .my-lg-3 { + margin-top: 1rem !important; + } + + .mr-lg-3, + .mx-lg-3 { + margin-right: 1rem !important; + } + + .mb-lg-3, + .my-lg-3 { + margin-bottom: 1rem !important; + } + + .ml-lg-3, + .mx-lg-3 { + margin-left: 1rem !important; + } + + .m-lg-4 { + margin: 1.5rem !important; + } + + .mt-lg-4, + .my-lg-4 { + margin-top: 1.5rem !important; + } + + .mr-lg-4, + .mx-lg-4 { + margin-right: 1.5rem !important; + } + + .mb-lg-4, + .my-lg-4 { + margin-bottom: 1.5rem !important; + } + + .ml-lg-4, + .mx-lg-4 { + margin-left: 1.5rem !important; + } + + .m-lg-5 { + margin: 3rem !important; + } + + .mt-lg-5, + .my-lg-5 { + margin-top: 3rem !important; + } + + .mr-lg-5, + .mx-lg-5 { + margin-right: 3rem !important; + } + + .mb-lg-5, + .my-lg-5 { + margin-bottom: 3rem !important; + } + + .ml-lg-5, + .mx-lg-5 { + margin-left: 3rem !important; + } + + .p-lg-0 { + padding: 0 !important; + } + + .pt-lg-0, + .py-lg-0 { + padding-top: 0 !important; + } + + .pr-lg-0, + .px-lg-0 { + padding-right: 0 !important; + } + + .pb-lg-0, + .py-lg-0 { + padding-bottom: 0 !important; + } + + .pl-lg-0, + .px-lg-0 { + padding-left: 0 !important; + } + + .p-lg-1 { + padding: 0.25rem !important; + } + + .pt-lg-1, + .py-lg-1 { + padding-top: 0.25rem !important; + } + + .pr-lg-1, + .px-lg-1 { + padding-right: 0.25rem !important; + } + + .pb-lg-1, + .py-lg-1 { + padding-bottom: 0.25rem !important; + } + + .pl-lg-1, + .px-lg-1 { + padding-left: 0.25rem !important; + } + + .p-lg-2 { + padding: 0.5rem !important; + } + + .pt-lg-2, + .py-lg-2 { + padding-top: 0.5rem !important; + } + + .pr-lg-2, + .px-lg-2 { + padding-right: 0.5rem !important; + } + + .pb-lg-2, + .py-lg-2 { + padding-bottom: 0.5rem !important; + } + + .pl-lg-2, + .px-lg-2 { + padding-left: 0.5rem !important; + } + + .p-lg-3 { + padding: 1rem !important; + } + + .pt-lg-3, + .py-lg-3 { + padding-top: 1rem !important; + } + + .pr-lg-3, + .px-lg-3 { + padding-right: 1rem !important; + } + + .pb-lg-3, + .py-lg-3 { + padding-bottom: 1rem !important; + } + + .pl-lg-3, + .px-lg-3 { + padding-left: 1rem !important; + } + + .p-lg-4 { + padding: 1.5rem !important; + } + + .pt-lg-4, + .py-lg-4 { + padding-top: 1.5rem !important; + } + + .pr-lg-4, + .px-lg-4 { + padding-right: 1.5rem !important; + } + + .pb-lg-4, + .py-lg-4 { + padding-bottom: 1.5rem !important; + } + + .pl-lg-4, + .px-lg-4 { + padding-left: 1.5rem !important; + } + + .p-lg-5 { + padding: 3rem !important; + } + + .pt-lg-5, + .py-lg-5 { + padding-top: 3rem !important; + } + + .pr-lg-5, + .px-lg-5 { + padding-right: 3rem !important; + } + + .pb-lg-5, + .py-lg-5 { + padding-bottom: 3rem !important; + } + + .pl-lg-5, + .px-lg-5 { + padding-left: 3rem !important; + } + + .m-lg-auto { + margin: auto !important; + } + + .mt-lg-auto, + .my-lg-auto { + margin-top: auto !important; + } + + .mr-lg-auto, + .mx-lg-auto { + margin-right: auto !important; + } + + .mb-lg-auto, + .my-lg-auto { + margin-bottom: auto !important; + } + + .ml-lg-auto, + .mx-lg-auto { + margin-left: auto !important; + } +} + +@media (min-width: 1200px) { + .m-xl-0 { + margin: 0 !important; + } + + .mt-xl-0, + .my-xl-0 { + margin-top: 0 !important; + } + + .mr-xl-0, + .mx-xl-0 { + margin-right: 0 !important; + } + + .mb-xl-0, + .my-xl-0 { + margin-bottom: 0 !important; + } + + .ml-xl-0, + .mx-xl-0 { + margin-left: 0 !important; + } + + .m-xl-1 { + margin: 0.25rem !important; + } + + .mt-xl-1, + .my-xl-1 { + margin-top: 0.25rem !important; + } + + .mr-xl-1, + .mx-xl-1 { + margin-right: 0.25rem !important; + } + + .mb-xl-1, + .my-xl-1 { + margin-bottom: 0.25rem !important; + } + + .ml-xl-1, + .mx-xl-1 { + margin-left: 0.25rem !important; + } + + .m-xl-2 { + margin: 0.5rem !important; + } + + .mt-xl-2, + .my-xl-2 { + margin-top: 0.5rem !important; + } + + .mr-xl-2, + .mx-xl-2 { + margin-right: 0.5rem !important; + } + + .mb-xl-2, + .my-xl-2 { + margin-bottom: 0.5rem !important; + } + + .ml-xl-2, + .mx-xl-2 { + margin-left: 0.5rem !important; + } + + .m-xl-3 { + margin: 1rem !important; + } + + .mt-xl-3, + .my-xl-3 { + margin-top: 1rem !important; + } + + .mr-xl-3, + .mx-xl-3 { + margin-right: 1rem !important; + } + + .mb-xl-3, + .my-xl-3 { + margin-bottom: 1rem !important; + } + + .ml-xl-3, + .mx-xl-3 { + margin-left: 1rem !important; + } + + .m-xl-4 { + margin: 1.5rem !important; + } + + .mt-xl-4, + .my-xl-4 { + margin-top: 1.5rem !important; + } + + .mr-xl-4, + .mx-xl-4 { + margin-right: 1.5rem !important; + } + + .mb-xl-4, + .my-xl-4 { + margin-bottom: 1.5rem !important; + } + + .ml-xl-4, + .mx-xl-4 { + margin-left: 1.5rem !important; + } + + .m-xl-5 { + margin: 3rem !important; + } + + .mt-xl-5, + .my-xl-5 { + margin-top: 3rem !important; + } + + .mr-xl-5, + .mx-xl-5 { + margin-right: 3rem !important; + } + + .mb-xl-5, + .my-xl-5 { + margin-bottom: 3rem !important; + } + + .ml-xl-5, + .mx-xl-5 { + margin-left: 3rem !important; + } + + .p-xl-0 { + padding: 0 !important; + } + + .pt-xl-0, + .py-xl-0 { + padding-top: 0 !important; + } + + .pr-xl-0, + .px-xl-0 { + padding-right: 0 !important; + } + + .pb-xl-0, + .py-xl-0 { + padding-bottom: 0 !important; + } + + .pl-xl-0, + .px-xl-0 { + padding-left: 0 !important; + } + + .p-xl-1 { + padding: 0.25rem !important; + } + + .pt-xl-1, + .py-xl-1 { + padding-top: 0.25rem !important; + } + + .pr-xl-1, + .px-xl-1 { + padding-right: 0.25rem !important; + } + + .pb-xl-1, + .py-xl-1 { + padding-bottom: 0.25rem !important; + } + + .pl-xl-1, + .px-xl-1 { + padding-left: 0.25rem !important; + } + + .p-xl-2 { + padding: 0.5rem !important; + } + + .pt-xl-2, + .py-xl-2 { + padding-top: 0.5rem !important; + } + + .pr-xl-2, + .px-xl-2 { + padding-right: 0.5rem !important; + } + + .pb-xl-2, + .py-xl-2 { + padding-bottom: 0.5rem !important; + } + + .pl-xl-2, + .px-xl-2 { + padding-left: 0.5rem !important; + } + + .p-xl-3 { + padding: 1rem !important; + } + + .pt-xl-3, + .py-xl-3 { + padding-top: 1rem !important; + } + + .pr-xl-3, + .px-xl-3 { + padding-right: 1rem !important; + } + + .pb-xl-3, + .py-xl-3 { + padding-bottom: 1rem !important; + } + + .pl-xl-3, + .px-xl-3 { + padding-left: 1rem !important; + } + + .p-xl-4 { + padding: 1.5rem !important; + } + + .pt-xl-4, + .py-xl-4 { + padding-top: 1.5rem !important; + } + + .pr-xl-4, + .px-xl-4 { + padding-right: 1.5rem !important; + } + + .pb-xl-4, + .py-xl-4 { + padding-bottom: 1.5rem !important; + } + + .pl-xl-4, + .px-xl-4 { + padding-left: 1.5rem !important; + } + + .p-xl-5 { + padding: 3rem !important; + } + + .pt-xl-5, + .py-xl-5 { + padding-top: 3rem !important; + } + + .pr-xl-5, + .px-xl-5 { + padding-right: 3rem !important; + } + + .pb-xl-5, + .py-xl-5 { + padding-bottom: 3rem !important; + } + + .pl-xl-5, + .px-xl-5 { + padding-left: 3rem !important; + } + + .m-xl-auto { + margin: auto !important; + } + + .mt-xl-auto, + .my-xl-auto { + margin-top: auto !important; + } + + .mr-xl-auto, + .mx-xl-auto { + margin-right: auto !important; + } + + .mb-xl-auto, + .my-xl-auto { + margin-bottom: auto !important; + } + + .ml-xl-auto, + .mx-xl-auto { + margin-left: auto !important; + } +} + +.text-justify { + text-align: justify !important; +} + +.text-nowrap { + white-space: nowrap !important; +} + +.text-truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.text-left { + text-align: left !important; +} + +.text-right { + text-align: right !important; +} + +.text-center { + text-align: center !important; +} + +@media (min-width: 576px) { + .text-sm-left { + text-align: left !important; + } + + .text-sm-right { + text-align: right !important; + } + + .text-sm-center { + text-align: center !important; + } +} + +@media (min-width: 768px) { + .text-md-left { + text-align: left !important; + } + + .text-md-right { + text-align: right !important; + } + + .text-md-center { + text-align: center !important; + } +} + +@media (min-width: 992px) { + .text-lg-left { + text-align: left !important; + } + + .text-lg-right { + text-align: right !important; + } + + .text-lg-center { + text-align: center !important; + } +} + +@media (min-width: 1200px) { + .text-xl-left { + text-align: left !important; + } + + .text-xl-right { + text-align: right !important; + } + + .text-xl-center { + text-align: center !important; + } +} + +.text-lowercase { + text-transform: lowercase !important; +} + +.text-uppercase { + text-transform: uppercase !important; +} + +.text-capitalize { + text-transform: capitalize !important; +} + +.font-weight-light { + font-weight: 300 !important; +} + +.font-weight-normal { + font-weight: 400 !important; +} + +.font-weight-bold { + font-weight: 700 !important; +} + +.font-italic { + font-style: italic !important; +} + +.text-white { + color: #fff !important; +} + +.text-primary { + color: #007bff !important; +} + +a.text-primary:focus, +a.text-primary:hover { + color: #0062cc !important; +} + +.text-secondary { + color: #6c757d !important; +} + +a.text-secondary:focus, +a.text-secondary:hover { + color: #545b62 !important; +} + +.text-success { + color: #28a745 !important; +} + +a.text-success:focus, +a.text-success:hover { + color: #1e7e34 !important; +} + +.text-info { + color: #17a2b8 !important; +} + +a.text-info:focus, +a.text-info:hover { + color: #117a8b !important; +} + +.text-warning { + color: #ffc107 !important; +} + +a.text-warning:focus, +a.text-warning:hover { + color: #d39e00 !important; +} + +.text-danger { + color: #dc3545 !important; +} + +a.text-danger:focus, +a.text-danger:hover { + color: #bd2130 !important; +} + +.text-light { + color: #f8f9fa !important; +} + +a.text-light:focus, +a.text-light:hover { + color: #dae0e5 !important; +} + +.text-dark { + color: #343a40 !important; +} + +a.text-dark:focus, +a.text-dark:hover { + color: #1d2124 !important; +} + +.text-muted { + color: #6c757d !important; +} + +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.visible { + visibility: visible !important; +} + +.invisible { + visibility: hidden !important; +} + +@media print { + *, + ::after, + ::before { + text-shadow: none !important; + box-shadow: none !important; + } + + a:not(.btn) { + text-decoration: underline; + } + + abbr[title]::after { + content: " (" attr(title) ")"; + } + + pre { + white-space: pre-wrap !important; + } + + blockquote, + pre { + border: 1px solid #999; + page-break-inside: avoid; + } + + thead { + display: table-header-group; + } + + img, + tr { + page-break-inside: avoid; + } + + h2, + h3, + p { + orphans: 3; + widows: 3; + } + + h2, + h3 { + page-break-after: avoid; + } + + @page { + size: a3; + } + + body { + min-width: 992px !important; + } + + .container { + min-width: 992px !important; + } + + .navbar { + display: none; + } + + .badge { + border: 1px solid #000; + } + + .table { + border-collapse: collapse !important; + } + + .table td, + .table th { + background-color: #fff !important; + } + + .table-bordered td, + .table-bordered th { + border: 1px solid #ddd !important; + } +} + +div#particles-js canvas { + position: unset !important; + height: 100% !important; + width: 100% !important; +} +canvas.tsparticles-canvas-el { + position: absolute !important; +} diff --git a/public/css/dark.css b/public/css/dark.css new file mode 100644 index 0000000..898ca75 --- /dev/null +++ b/public/css/dark.css @@ -0,0 +1,9230 @@ +/*----------------------------------------------------------------------------------- + + Theme Name: Vie + Theme URI: http:// + Description: Creative Agency & Portfolio + Author: ThemesCamp + Author URI: http://themeforest.net/user/ThemesCamp + Version: 1.2 + +-----------------------------------------------------------------------------------*/ +/* ---------------------------------------------------------------- + +== Table Of Content + + |--- BASE + + |- typography + |- helper classes + + |--- SHORTCODES + + |- extra + |- overlay + |- section-heading + |- buttons + |- navbar + |- sliders + |- intro + |- feature-box + |- clients + |- counter + |- portfolio + |- process + |- progress-bar + |- tabs + |- team + |- testimonials + |- blog + |- contact-form + |- footers + + |--- BASE + + |- responsive + + + +---------------------------------------------------------------- */ +/* ====================== [ Start Typography ] ====================== */ + +@import "/css/bootstrap.min.css"; +@import "/css/animate.css"; +@import "/css/font-awesome.min.css"; +@import "/css/ionicons.min.css"; +@import "/css/pe-icon.min.css"; +@import "/css/font-awesome.min.css"; + +* { + margin: 0; + padding: 0; + -webkit-box-sizing: border-box; + box-sizing: border-box; + outline: none; + list-style: none; +} + +html { + -webkit-box-sizing: border-box; + box-sizing: border-box; + -webkit-font-smoothing: antialiased; +} + +body { + color: #fff; + background: #111215; + line-height: 1.5; + font-weight: 400; + overflow-x: hidden !important; + font-family: "Poppins", sans-serif; +} + +img { + width: 100%; + height: auto; +} + +span, +a, +a:hover { + display: inline-block; + color: inherit; +} + +h1 { + font-size: 55px; +} + +h2 { + font-size: 40px; +} + +h3 { + font-size: 35px; +} + +h4 { + font-size: 30px; +} + +h5 { + font-size: 25px; +} + +h6 { + font-size: 18px; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + line-height: 1.4; + font-weight: 500; +} + +p { + color: #a4a7b1; + font-size: 16px; + font-weight: 300; + line-height: 2; + margin: 0; +} + +a, +span { + display: inline-block; +} + +a:hover, +span:hover { + text-decoration: none; +} + +.container { + max-width: 1200px; +} + +.custom-font { + font-family: "Poppins", sans-serif; +} + +.color-font { + background: -webkit-gradient( + linear, + left top, + right top, + from(#12c2e9), + color-stop(#c471ed), + to(#f64f59) + ); + background: -webkit-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: -o-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: linear-gradient(to right, #12c2e9, #c471ed, #f64f59); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; +} + +.back-color { + background: -webkit-gradient( + linear, + left top, + right top, + from(#12c2e9), + color-stop(#c471ed), + to(#f64f59) + ); + background: -webkit-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: -o-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: linear-gradient(to right, #12c2e9, #c471ed, #f64f59); +} + +.line { + position: absolute; + height: 1px; + width: 65%; + background: -webkit-gradient( + linear, + left top, + right top, + from(#12c2e9), + color-stop(#c471ed), + to(#f64f59) + ); + background: -webkit-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: -o-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: linear-gradient(to right, #12c2e9, #c471ed, #f64f59); +} + +.line.top { + top: 0; +} + +.line.bottom { + bottom: 0; +} + +.line.left { + left: 0; +} + +.line.right { + right: 0; +} + +.line-v { + position: absolute; + height: 80px; + width: 1px; + background: #c5a47e; + left: 50%; + opacity: 0.3; +} + +.line-v.top { + top: -30px; +} + +.line-v.bottom { + bottom: -30px; +} + +/* ====================== [ End Typography ] ====================== */ +/* ====================== [ Start Helper Classes ] ====================== */ +.o-hidden { + overflow: hidden; +} + +.position-re { + position: relative; +} + +.ontop { + position: relative; + z-index: 7; +} + +.full-over { + position: absolute !important; + top: 0; + left: 0; + height: 100%; + width: 100%; +} + +.full-width { + width: 100% !important; +} + +.main-color { + color: #12c2e9 !important; +} + +.bg-gray { + background-color: #f8f4f3; +} + +.bg-gray .primery-shadow { + -webkit-box-shadow: 0px 4px 30px -4px rgba(0, 0, 0, 0.2); + box-shadow: 0px 4px 30px -4px rgba(0, 0, 0, 0.2); +} + +.bg-dark { + background-color: #141414 !important; +} + +.bg-dark .primery-shadow { + -webkit-box-shadow: 0px 4px 40px -4px rgba(255, 255, 255, 0.2); + box-shadow: 0px 4px 40px -4px rgba(255, 255, 255, 0.2); +} + +.bg-color { + background-color: #12c2e9 !important; +} + +.bg-color .primery-shadow { + -webkit-box-shadow: 0px 4px 40px -4px rgba(255, 255, 255, 0.2); + box-shadow: 0px 4px 40px -4px rgba(255, 255, 255, 0.2); +} + +.sub-bg { + background: #18191d; +} + +.bg-img { + background-size: cover; + background-repeat: no-repeat; +} + +.bg-center { + background-position: center center; +} + +.bg-fixed { + background-attachment: fixed; +} + +.bg-repeat { + background-size: auto; + background-repeat: repeat; +} + +.section-padding { + padding: 120px 0; +} + +.section-ptb { + padding: 80px 0; +} + +.cmd-padding { + padding: 0 10px; +} + +.csm-padding { + padding: 0 5px; +} + +.head-pt { + padding: 80px 0 0; +} + +.head-pb { + padding: 0 0 80px; +} + +.rounded { + border-radius: 5px; +} + +.circle { + border-radius: 50%; +} + +.unlist { + list-style: none; +} + +.undecro:hover { + text-decoration: none; +} + +.inline { + display: inline-block; +} + +.valign { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.primery-shadow { + -webkit-box-shadow: 0px 8px 30px -4px rgba(0, 0, 0, 0.1); + box-shadow: 0px 8px 30px -4px rgba(0, 0, 0, 0.1); +} + +.padding5 { + padding-right: 5%; + padding-left: 5%; +} + +/*------------------------------------------------------- + text color +-------------------------------------------------------*/ +.text-white { + color: #fff; +} + +.text-black { + color: #000; +} + +.text-extra-light-gray { + color: #b7b7b7; +} + +/*------------------------------------------------------- + font-weight +-------------------------------------------------------*/ +.fw-100 { + font-weight: 100 !important; +} + +.fw-200 { + font-weight: 200 !important; +} + +.fw-300 { + font-weight: 300 !important; +} + +.fw-400 { + font-weight: 400 !important; +} + +.fw-500 { + font-weight: 500 !important; +} + +.fw-600 { + font-weight: 600 !important; +} + +.fw-700 { + font-weight: 700 !important; +} + +.fw-800 { + font-weight: 800 !important; +} + +.fw-900 { + font-weight: 900 !important; +} + +/*------------------------------------------------------- + font-size +-------------------------------------------------------*/ +.fz-10 { + font-size: 10px !important; +} + +.fz-12 { + font-size: 12px !important; +} + +.fz-14 { + font-size: 14px !important; +} + +.fz-15 { + font-size: 15px !important; +} + +.fz-16 { + font-size: 16px !important; +} + +.fz-18 { + font-size: 18px !important; +} + +.fz-20 { + font-size: 20px !important; +} + +.fz-22 { + font-size: 22px !important; +} + +.fz-25 { + font-size: 25px !important; +} + +.fz-30 { + font-size: 30px !important; +} + +.fz-40 { + font-size: 40px !important; +} + +.fz-50 { + font-size: 50px !important; +} + +/*------------------------------------------------------- + line-height +-------------------------------------------------------*/ +.line-height-10 { + line-height: 10px; +} + +.line-height-13 { + line-height: 13px; +} + +.line-height-18 { + line-height: 18px; +} + +.line-height-20 { + line-height: 20px; +} + +.line-height-24 { + line-height: 24px; +} + +.line-height-22 { + line-height: 22px; +} + +.line-height-26 { + line-height: 26px; +} + +.line-height-28 { + line-height: 28px; +} + +.line-height-30 { + line-height: 30px; +} + +.line-height-35 { + line-height: 35px; +} + +.line-height-40 { + line-height: 40px; +} + +.line-height-45 { + line-height: 45px; +} + +.line-height-50 { + line-height: 50px; +} + +.line-height-55 { + line-height: 55px; +} + +.line-height-60 { + line-height: 60px; +} + +.line-height-65 { + line-height: 65px; +} + +.line-height-70 { + line-height: 70px; +} + +.line-height-75 { + line-height: 75px; +} + +.line-height-80 { + line-height: 80px; +} + +.line-height-85 { + line-height: 85px; +} + +.line-height-90 { + line-height: 90px; +} + +.line-height-95 { + line-height: 95px; +} + +.line-height-100 { + line-height: 100px; +} + +.line-height-110 { + line-height: 110px; +} + +.line-height-120 { + line-height: 120px; +} + +/*------------------------------------------------------- + text-transform +-------------------------------------------------------*/ +.text-u { + text-transform: uppercase !important; +} + +.text-l { + text-transform: lowercase !important; +} + +.text-c { + text-transform: capitalize !important; +} + +.text-non { + text-transform: none !important; +} + +.text-i { + font-style: italic; +} + +/*------------------------------------------------------- + letter-spacing +-------------------------------------------------------*/ +.ls0 { + letter-spacing: 0px !important; +} + +.ls1 { + letter-spacing: 1px !important; +} + +.ls2 { + letter-spacing: 2px !important; +} + +.ls3 { + letter-spacing: 3px !important; +} + +.ls4 { + letter-spacing: 4px !important; +} + +.ls5 { + letter-spacing: 5px !important; +} + +.ls10 { + letter-spacing: 10px !important; +} + +/*------------------------------------------------------- + margin-top (0/100) +5 +-------------------------------------------------------*/ +.mt-0 { + margin-top: 0 !important; +} + +.mt-5 { + margin-top: 5px !important; +} + +.mt-10 { + margin-top: 10px !important; +} + +.mt-15 { + margin-top: 15px !important; +} + +.mt-20 { + margin-top: 20px !important; +} + +.mt-25 { + margin-top: 25px !important; +} + +.mt-30 { + margin-top: 30px !important; +} + +.mt-35 { + margin-top: 35px !important; +} + +.mt-40 { + margin-top: 40px !important; +} + +.mt-45 { + margin-top: 45px !important; +} + +.mt-50 { + margin-top: 50px !important; +} + +.mt-55 { + margin-top: 55px !important; +} + +.mt-60 { + margin-top: 60px !important; +} + +.mt-62 { + margin-top: 62px !important; +} + +.mt-65 { + margin-top: 65px !important; +} + +.mt-70 { + margin-top: 70px !important; +} + +.mt-75 { + margin-top: 75px !important; +} + +.mt-80 { + margin-top: 80px !important; +} + +.mt-85 { + margin-top: 85px !important; +} + +.mt-90 { + margin-top: 90px !important; +} + +.mt-95 { + margin-top: 95px !important; +} + +.mt-100 { + margin-top: 100px !important; +} + +/*------------------------------------------------------- + margin-bottom (0/100) +5 +-------------------------------------------------------*/ +.mb-0 { + margin-bottom: 0 !important; +} + +.mb-5 { + margin-bottom: 5px !important; +} + +.mb-10 { + margin-bottom: 10px !important; +} + +.mb-15 { + margin-bottom: 15px !important; +} + +.mb-20 { + margin-bottom: 20px !important; +} + +.mb-25 { + margin-bottom: 25px !important; +} + +.mb-30 { + margin-bottom: 30px !important; +} + +.mb-35 { + margin-bottom: 35px !important; +} + +.mb-40 { + margin-bottom: 40px !important; +} + +.mb-45 { + margin-bottom: 45px !important; +} + +.mb-50 { + margin-bottom: 50px !important; +} + +.mb-55 { + margin-bottom: 55px !important; +} + +.mb-60 { + margin-bottom: 60px !important; +} + +.mb-62 { + margin-bottom: 62px !important; +} + +.mb-65 { + margin-bottom: 65px !important; +} + +.mb-70 { + margin-bottom: 70px !important; +} + +.mb-75 { + margin-bottom: 75px !important; +} + +.mb-80 { + margin-bottom: 80px !important; +} + +.mb-85 { + margin-bottom: 85px !important; +} + +.mb-90 { + margin-bottom: 90px !important; +} + +.mb-95 { + margin-bottom: 95px !important; +} + +.mb-100 { + margin-bottom: 100px !important; +} + +/*------------------------------------------------------- + padding-top (0/100) +5 +-------------------------------------------------------*/ +.pt-0 { + padding-top: 0 !important; +} + +.pt-5 { + padding-top: 5px !important; +} + +.pt-10 { + padding-top: 10px !important; +} + +.pt-15 { + padding-top: 15px !important; +} + +.pt-20 { + padding-top: 20px !important; +} + +.pt-25 { + padding-top: 25px !important; +} + +.pt-30 { + padding-top: 30px !important; +} + +.pt-35 { + padding-top: 35px !important; +} + +.pt-40 { + padding-top: 40px !important; +} + +.pt-45 { + padding-top: 45px !important; +} + +.pt-50 { + padding-top: 50px !important; +} + +.pt-55 { + padding-top: 55px !important; +} + +.pt-60 { + padding-top: 60px !important; +} + +.pt-65 { + padding-top: 65px !important; +} + +.pt-70 { + padding-top: 70px !important; +} + +.pt-75 { + padding-top: 75px !important; +} + +.pt-80 { + padding-top: 80px !important; +} + +.pt-85 { + padding-top: 85px !important; +} + +.pt-90 { + padding-top: 90px !important; +} + +.pt-95 { + padding-top: 95px !important; +} + +.pt-100 { + padding-top: 100px !important; +} + +/*------------------------------------------------------- + padding-bottom (0/100) +5 +-------------------------------------------------------*/ +.pb-0 { + padding-bottom: 0 !important; +} + +.pb-5 { + padding-bottom: 5px !important; +} + +.pb-10 { + padding-bottom: 10px !important; +} + +.pb-15 { + padding-bottom: 15px !important; +} + +.pb-20 { + padding-bottom: 20px !important; +} + +.pb-25 { + padding-bottom: 25px !important; +} + +.pb-30 { + padding-bottom: 30px !important; +} + +.pb-35 { + padding-bottom: 35px !important; +} + +.pb-40 { + padding-bottom: 40px !important; +} + +.pb-45 { + padding-bottom: 45px !important; +} + +.pb-50 { + padding-bottom: 50px !important; +} + +.pb-55 { + padding-bottom: 55px !important; +} + +.pb-60 { + padding-bottom: 60px !important; +} + +.pb-65 { + padding-bottom: 65px !important; +} + +.pb-70 { + padding-bottom: 70px !important; +} + +.pb-75 { + padding-bottom: 75px !important; +} + +.pb-80 { + padding-bottom: 80px !important; +} + +.pb-85 { + padding-bottom: 85px !important; +} + +.pb-90 { + padding-bottom: 90px !important; +} + +.pb-95 { + padding-bottom: 95px !important; +} + +.pb-100 { + padding-bottom: 100px !important; +} + +.no-padding { + padding: 0 !important; +} + +/* ====================== [ End Helper Classes ] ====================== */ +/* ====================== [ Start Preloader ] ====================== */ +.pace { + pointer-events: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + z-index: 99999999999999; + position: fixed; + margin: auto; + top: 0; + left: 0; + right: 0; + bottom: 0; + width: 400px; + border: 0px; + height: 1px; + overflow: hidden; + background: rgba(255, 255, 255, 0.05); + -webkit-transition: all 1s; + -o-transition: all 1s; + transition: all 1s; +} + +.pace .pace-progress { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + max-width: 300px; + position: fixed; + z-index: 99999999999999; + display: block; + position: absolute; + top: 0; + right: 100%; + height: 100%; + width: 100%; + background: #12c2e9; + background: -webkit-gradient( + linear, + left top, + right top, + from(#12c2e9), + color-stop(#c471ed), + to(#f64f59) + ); + background: -webkit-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: -o-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: linear-gradient(to right, #12c2e9, #c471ed, #f64f59); +} + +.pace.pace-inactive { + width: 100vw; + opacity: 0; +} + +.pace.pace-inactive .pace-progress { + max-width: 100vw; +} + +#preloader { + width: 100%; + height: 100vh; + overflow: hidden; + position: fixed; + z-index: 9999999; +} + +#preloader:after, +#preloader:before { + content: ""; + position: fixed; + left: 0; + height: 50%; + width: 100%; + background: #252531; + -webkit-transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1); + -o-transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1); + transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1); +} + +#preloader:before { + top: 0; +} + +#preloader:after { + bottom: 0; +} + +#preloader.isdone { + visibility: hidden; + -webkit-transition-delay: 1.5s; + -o-transition-delay: 1.5s; + transition-delay: 1.5s; +} + +#preloader.isdone:after, +#preloader.isdone:before { + height: 0; + -webkit-transition: all 0.7s cubic-bezier(1, 0, 0.55, 1); + -o-transition: all 0.7s cubic-bezier(1, 0, 0.55, 1); + transition: all 0.7s cubic-bezier(1, 0, 0.55, 1); + -webkit-transition-delay: 1s; + -o-transition-delay: 1s; + transition-delay: 1s; +} + +.loading { + position: fixed; + left: 50%; + top: calc(50% - 40px); + -webkit-transform: translateX(-50%) translateY(-50%); + -ms-transform: translateX(-50%) translateY(-50%); + transform: translateX(-50%) translateY(-50%); + font-weight: 300; + font-size: 13px; + text-transform: uppercase; + letter-spacing: 10px; + z-index: 9999999999; +} + +.loading.isdone { + top: 50%; + opacity: 0; + -webkit-transition: all 0.8s; + -o-transition: all 0.8s; + transition: all 0.8s; + -webkit-transition-delay: 0.5s; + -o-transition-delay: 0.5s; + transition-delay: 0.5s; +} + +.loading span { + -webkit-animation: loading 1.4s infinite alternate; + animation: loading 1.4s infinite alternate; +} + +.loading span:nth-child(1) { + -webkit-animation-delay: 0s; + animation-delay: 0s; +} + +.loading span:nth-child(2) { + -webkit-animation-delay: 0.1s; + animation-delay: 0.1s; +} + +.loading span:nth-child(3) { + -webkit-animation-delay: 0.2s; + animation-delay: 0.2s; +} + +.loading span:nth-child(4) { + -webkit-animation-delay: 0.3s; + animation-delay: 0.3s; +} + +.loading span:nth-child(5) { + -webkit-animation-delay: 0.4s; + animation-delay: 0.4s; +} + +.loading span:nth-child(6) { + -webkit-animation-delay: 0.5s; + animation-delay: 0.5s; +} + +.loading span:nth-child(7) { + -webkit-animation-delay: 0.6s; + animation-delay: 0.6s; +} + +@-webkit-keyframes loading { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + } +} + +@keyframes loading { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + } +} + +/* ====================== [ End Preloader ] ====================== */ +/* ====================== [ Start Text Animation & Images ] ====================== */ +.splitting.animated .char { + -webkit-animation: fadeInUp 0.4s cubic-bezier(0.3, 0, 0.7, 1) both; + animation: fadeInUp 0.4s cubic-bezier(0.3, 0, 0.7, 1) both; + -webkit-animation-delay: calc(30ms * var(--char-index)); + animation-delay: calc(30ms * var(--char-index)); +} + +.splitting .whitespace { + width: 5px; +} + +@-webkit-keyframes fadeInUp { + 0% { + opacity: 0; + -webkit-transform: translateY(20px); + transform: translateY(20px); + } + + 100% { + opacity: 1; + -webkit-transform: translateY(0); + transform: translateY(0); + } +} + +@keyframes fadeInUp { + 0% { + opacity: 0; + -webkit-transform: translateY(20px); + transform: translateY(20px); + } + + 100% { + opacity: 1; + -webkit-transform: translateY(0); + transform: translateY(0); + } +} + +.splitting.txt.animated .char { + -webkit-animation: fadeIn 0.3s cubic-bezier(0.3, 0, 0.7, 1) both; + animation: fadeIn 0.3s cubic-bezier(0.3, 0, 0.7, 1) both; + -webkit-animation-delay: calc(10ms * var(--char-index)); + animation-delay: calc(10ms * var(--char-index)); +} + +.splitting.txt .whitespace { + width: 5px; +} + +@-webkit-keyframes fadeIn { + 0% { + opacity: 0; + } + + 100% { + opacity: 1; + } +} + +@keyframes fadeIn { + 0% { + opacity: 0; + } + + 100% { + opacity: 1; + } +} + +.imago { + -webkit-clip-path: polygon(0 0, 100% 0, 100% 0, 0 0); + clip-path: polygon(0 0, 100% 0, 100% 0, 0 0); + -webkit-transition: all 0.8s; + -o-transition: all 0.8s; + transition: all 0.8s; + -webkit-transition-delay: 0.3s; + -o-transition-delay: 0.3s; + transition-delay: 0.3s; +} + +.imago.animated { + -webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); + clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); +} + +/* ====================== [ End Text Animation & Images ] ====================== */ +/* ====================== [ Start Cursor Style ] ====================== */ +.mouse-cursor { + position: fixed; + left: 0; + top: 0; + pointer-events: none; + border-radius: 50%; + -webkit-transform: translateZ(0); + transform: translateZ(0); + visibility: hidden; +} + +.cursor-inner { + width: 6px; + height: 6px; + z-index: 10000001; + background-color: #12c2e9; + -webkit-transition: width 0.3s ease-in-out, height 0.3s ease-in-out, + margin 0.3s ease-in-out, opacity 0.3s ease-in-out; + -o-transition: width 0.3s ease-in-out, height 0.3s ease-in-out, + margin 0.3s ease-in-out, opacity 0.3s ease-in-out; + transition: width 0.3s ease-in-out, height 0.3s ease-in-out, + margin 0.3s ease-in-out, opacity 0.3s ease-in-out; +} + +.cursor-inner.cursor-hover { + margin-left: -35px; + margin-top: -35px; + width: 70px; + height: 70px; + background-color: #12c2e9; + opacity: 0.3; +} + +.cursor-outer { + margin-left: -12px; + margin-top: -12px; + width: 30px; + height: 30px; + border: 1px solid #12c2e9; + -webkit-box-sizing: border-box; + box-sizing: border-box; + z-index: 10000000; + opacity: 0.5; + -webkit-transition: all 0.08s ease-out; + -o-transition: all 0.08s ease-out; + transition: all 0.08s ease-out; +} + +.cursor-outer.cursor-hover { + opacity: 0; +} + +/* ====================== [ End Cursor Style ] ====================== */ +/* ====================== [ Start progress-wrap ] ====================== */ +.progress-wrap { + position: fixed; + bottom: 30px; + right: 30px; + height: 44px; + width: 44px; + cursor: pointer; + display: block; + border-radius: 50px; + z-index: 100; + opacity: 0; + visibility: hidden; + -webkit-transform: translateY(20px); + -ms-transform: translateY(20px); + transform: translateY(20px); + -webkit-transition: all 400ms linear; + -o-transition: all 400ms linear; + transition: all 400ms linear; +} + +.progress-wrap.active-progress { + opacity: 1; + visibility: visible; + -webkit-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); +} + +.progress-wrap::after { + position: absolute; + font-family: "Font Awesome 5 Free"; + content: "\f077"; + text-align: center; + line-height: 44px; + font-size: 13px; + font-weight: 900; + color: #12c2e9; + left: 0; + top: 0; + height: 44px; + width: 44px; + cursor: pointer; + display: block; + z-index: 1; + -webkit-transition: all 400ms linear; + -o-transition: all 400ms linear; + transition: all 400ms linear; +} + +.progress-wrap svg path { + fill: none; +} + +.progress-wrap svg.progress-circle path { + stroke: #12c2e9; + stroke-width: 4; + -webkit-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: all 400ms linear; + -o-transition: all 400ms linear; + transition: all 400ms linear; +} + +/* ====================== [ End progress-wrap ] ====================== */ +/* ====================== [ Start animate headline ] ====================== */ +.cd-words-wrapper { + display: inline-block; + position: relative; + text-align: left; +} + +.cd-words-wrapper b { + display: inline-block; + position: absolute; + white-space: nowrap; + left: 0; + top: 0; +} + +.cd-words-wrapper b.is-visible { + position: relative; +} + +.no-js .cd-words-wrapper b { + opacity: 0; +} + +.no-js .cd-words-wrapper b.is-visible { + opacity: 1; +} + +/* xclip */ +.cd-headline.clip span { + display: inline-block; +} + +.cd-headline.clip .cd-words-wrapper { + overflow: hidden; + vertical-align: top; +} + +.cd-headline.clip b { + opacity: 0; +} + +.cd-headline b.is-visible { + opacity: 1; +} + +/* ====================== [ End animate headline ] ====================== */ +/* ====================== [ Start Overlay ] ====================== */ +[data-overlay-dark], +[data-overlay-light] { + position: relative; +} + +[data-overlay-dark] .container, +[data-overlay-light] .container { + position: relative; + z-index: 2; +} + +[data-overlay-dark]:before, +[data-overlay-light]:before { + content: ""; + position: absolute; + width: 100%; + height: 100%; + top: 0; + left: 0; + z-index: 1; +} + +[data-overlay-dark]:before { + background: #121319; +} + +[data-overlay-light]:before { + background: #fff; +} + +[data-overlay-dark] h1, +[data-overlay-dark] h2, +[data-overlay-dark] h3, +[data-overlay-dark] h4, +[data-overlay-dark] h5, +[data-overlay-dark] h6, +[data-overlay-dark] span, +.bg-dark h1, +.bg-dark h2, +.bg-dark h3, +.bg-dark h4, +.bg-dark h5, +.bg-dark h6, +.bg-dark span, +.bg-color h1, +.bg-color h2, +.bg-color h3, +.bg-color h4, +.bg-color h5, +.bg-color h6, +.bg-color span { + color: #fff; +} + +[data-overlay-dark] p, +.bg-dark p, +.bg-color p { + color: #dad6d6; +} + +[data-overlay-dark="0"]:before, +[data-overlay-light="0"]:before { + opacity: 0; +} + +[data-overlay-dark="1"]:before, +[data-overlay-light="1"]:before { + opacity: 0.1; +} + +[data-overlay-dark="2"]:before, +[data-overlay-light="2"]:before { + opacity: 0.2; +} + +[data-overlay-dark="3"]:before, +[data-overlay-light="3"]:before { + opacity: 0.3; +} + +[data-overlay-dark="4"]:before, +[data-overlay-light="4"]:before { + opacity: 0.4; +} + +[data-overlay-dark="5"]:before, +[data-overlay-light="5"]:before { + opacity: 0.5; +} + +[data-overlay-dark="6"]:before, +[data-overlay-light="6"]:before { + opacity: 0.6; +} + +[data-overlay-dark="7"]:before, +[data-overlay-light="7"]:before { + opacity: 0.7; +} + +[data-overlay-dark="8"]:before, +[data-overlay-light="8"]:before { + opacity: 0.8; +} + +[data-overlay-dark="9"]:before, +[data-overlay-light="9"]:before, +[data-overlay-color="9"]:before { + opacity: 0.9; +} + +[data-overlay-dark="10"]:before, +[data-overlay-light="10"]:before { + opacity: 1; +} + +/* ====================== [ End Overlay ] ====================== */ +/* ====================== [ Start Heading ] ====================== */ +.sec-head { + position: relative; + margin: 0 auto 80px; +} + +.sec-head h6 { + font-weight: 300; + font-size: 17px; + text-transform: uppercase; + letter-spacing: 7px; + margin-bottom: 10px; +} + +.sec-head h3 { + font-size: 48px; + font-weight: 500; +} + +.sec-head h2 { + font-size: 70px; + text-transform: uppercase; + letter-spacing: 2px; +} + +.sub-title { + position: relative; + margin-bottom: 20px; +} + +.sub-title h6 { + font-weight: 300; + font-size: 15px; + text-transform: uppercase; + letter-spacing: 4px; + display: inline-block; + background: -webkit-gradient( + linear, + left top, + right top, + from(#12c2e9), + color-stop(#c471ed), + to(#f64f59) + ); + background: -webkit-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: -o-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: linear-gradient(to right, #12c2e9, #c471ed, #f64f59); + padding: 7px 12px; + border-radius: 10px; +} + +.main-title { + font-weight: 600; + line-height: 1.5; + margin-bottom: 15px; +} + +.extra-title { + font-weight: 700; +} + +.sm-title { + font-size: 14px; + font-weight: 600; + letter-spacing: 1px; + text-transform: uppercase; +} + +.smore { + position: relative; + font-size: 13px; + font-weight: 300; + letter-spacing: 7px; + text-transform: uppercase; + display: inline-block; + padding: 5px; +} + +.smore:after { + content: ""; + width: 45%; + height: 100%; + background: rgba(255, 255, 255, 0.03); + position: absolute; + left: 0; + top: 0; +} + +.smore i { + margin-left: 10px; +} + +/* ====================== [ End Heading ] ====================== */ +/* ====================== [ Start Button Style ] ====================== */ +.butn { + padding: 15px 35px; + font-size: 13px; + border: 1px solid transparent; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.butn:hover .char { + -webkit-animation: fadeInUp 0.3s cubic-bezier(0.3, 0, 0.7, 1) both; + animation: fadeInUp 0.3s cubic-bezier(0.3, 0, 0.7, 1) both; + -webkit-animation-delay: calc(30ms * var(--char-index)); + animation-delay: calc(30ms * var(--char-index)); +} + +.butn.bord { + border: 1px solid #fff; +} + +.butn.bord:hover { + background: #fff; + color: #333; +} + +.butn.light { + background: #fff; + color: #333; +} + +.butn.light:hover { + background: transparent; + border-color: #fff; + color: #fff; +} + +.butn.dark { + background: #222; +} + +.butn.dark:hover { + background: #fff; + color: #333; +} + +.butn.color { + background: -webkit-gradient( + linear, + left top, + right top, + from(#12c2e9), + color-stop(#c471ed), + to(#f64f59) + ); + background: -webkit-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: -o-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: linear-gradient(to right, #12c2e9, #c471ed, #f64f59); + border: transparent; +} + +.butn.color:hover { + background: #fff; + color: #111; +} + +.butn.curve { + border-radius: 5px; +} + +.butn.radius { + border-radius: 30px; +} + +.simple-btn { + position: relative; + padding: 7px; + display: inline-block; + text-transform: uppercase; + letter-spacing: 4px; + font-size: 13px; + font-weight: 300; +} + +.simple-btn:after { + content: ""; + width: 45%; + height: 100%; + background: rgba(255, 255, 255, 0.05); + position: absolute; + left: 0; + top: 0; +} + +.simple-btn.right:after { + left: auto; + right: 0; +} + +/* ====================== [ End Button Style ] ====================== */ +/* ====================== [ Start navbar ] ====================== */ +.navbar { + position: absolute; + left: 0; + top: 0; + padding: 0; + margin: 0; + width: 100%; + background: transparent; + border-bottom: 2px solid transparent; + z-index: 999; + min-height: 80px; +} + +.navbar .icon-bar { + color: #fff; +} + +.navbar .navbar-nav .nav-link { + font-size: 12px; + font-weight: 500; + color: #fff; + padding: 15px 7px; + margin: 10px 15px; +} + +.navbar .navbar-nav .dropdown-menu { + padding: 10px 0; + border: 0; + -webkit-box-shadow: 0px 10px 40px -4px rgba(0, 0, 0, 0.1); + box-shadow: 0px 10px 40px -4px rgba(0, 0, 0, 0.1); +} + +.navbar .navbar-nav .dropdown-item { + font-size: 13px; + padding: 10px 20px; + opacity: 0.9; +} + +.navbar .navbar-nav .dropdown-item:hover { + background: transparent; + color: #12c2e9; +} + +.navbar .dropdown-menu { + display: block; + opacity: 0; + visibility: hidden; + border-radius: 0; + color: #fff; + background: #1b1d21; + min-width: 185px; + -webkit-transform: translateY(20px); + -ms-transform: translateY(20px); + transform: translateY(20px); + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.navbar .dropdown-menu.show { + opacity: 1; + visibility: visible; + -webkit-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); +} + +.navbar .dropdown-menu .dropdown-item { + color: #fff; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; + padding: 10px 25px; + position: relative; +} + +.navbar .dropdown-menu .dropdown-item:after { + content: ""; + width: 0px; + height: 1px; + background: #12c2e9; + position: absolute; + left: 10px; + top: 50%; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.navbar .dropdown-menu .dropdown-item:hover { + padding-left: 30px; +} + +.navbar .dropdown-menu .dropdown-item:hover:after { + width: 10px; +} + +.navbar .search { + color: #fff; + padding-left: 30px; + border-left: 1px solid rgba(255, 255, 255, 0.1); +} + +.navbar .search .icon { + cursor: pointer; +} + +.navbar .search .search-form { + position: fixed; + width: 100%; + height: 100vh; + top: 0; + left: 0; + background: rgba(37, 37, 49, 0.98); + display: none; +} + +.navbar .search .search-form form { + width: 600px; + position: absolute; + left: calc(50% - 300px); + top: 50%; + -webkit-transform: translateY(-50%); + -ms-transform: translateY(-50%); + transform: translateY(-50%); +} + +.navbar .search .search-form form input { + padding: 15px 0; + font-size: 80px; + color: #fff; + text-transform: uppercase; + text-align: left; + background: transparent; + border: 0; + border-bottom: 2px solid #12c2e9; +} + +.navbar .search .search-form .close { + position: absolute; + top: 20%; + right: 20%; + color: #fff; + font-size: 60px; + opacity: 1; + cursor: pointer; +} + +.navbar .logo { + width: 50px; +} + +.nav-scroll { + background: #1b1d21; + border-color: #333538; + padding: 0; + position: fixed; + top: -80px; + -webkit-transition: -webkit-transform 0.5s; + transition: -webkit-transform 0.5s; + -o-transition: transform 0.5s; + transition: transform 0.5s; + transition: transform 0.5s, -webkit-transform 0.5s; + -webkit-transform: translateY(80px); + -ms-transform: translateY(80px); + transform: translateY(80px); +} + +.topnav { + position: fixed; + top: 0; + left: 0; + width: 100%; + z-index: 999999; + padding: 30px 0; + color: #fff; + -webkit-transition: all 0.7s; + -o-transition: all 0.7s; + transition: all 0.7s; +} + +.topnav .container, +.topnav .container-fluid { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.topnav .container-fluid { + padding: 0 50px; +} + +.topnav .logo { + width: 50px; +} + +.topnav .menu-icon { + margin-left: auto; + cursor: pointer; +} + +.topnav .menu-icon:hover .text .char { + -webkit-animation: fadeInUp 0.3s cubic-bezier(0.3, 0, 0.7, 1) both; + animation: fadeInUp 0.3s cubic-bezier(0.3, 0, 0.7, 1) both; + -webkit-animation-delay: calc(30ms * var(--char-index)); + animation-delay: calc(30ms * var(--char-index)); +} + +.topnav .menu-icon .text { + font-size: 13px; + font-weight: 500; + padding-left: 15px; + display: table-cell; + vertical-align: middle; + position: relative; +} + +.topnav .menu-icon .text:after { + content: "close"; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + padding-left: 15px; + opacity: 0; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; + -webkit-transition-delay: 0.4s; + -o-transition-delay: 0.4s; + transition-delay: 0.4s; +} + +.topnav .menu-icon .text .word { + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; + -webkit-transition-delay: 0.6s; + -o-transition-delay: 0.6s; + transition-delay: 0.6s; +} + +.topnav .menu-icon .text.open .word { + opacity: 0; + -webkit-transition-delay: 0.4s; + -o-transition-delay: 0.4s; + transition-delay: 0.4s; +} + +.topnav .menu-icon .text.open:after { + opacity: 1; + -webkit-transition-delay: 0.6s; + -o-transition-delay: 0.6s; + transition-delay: 0.6s; +} + +.topnav .menu-icon .icon { + display: table-cell; +} + +.topnav .menu-icon .icon i { + display: block; + width: 20px; + height: 3px; + background: #fff; + margin: 4px 0; +} + +.topnav.dark .menu-icon { + color: #000; +} + +.topnav.dark .menu-icon .icon i { + background: #000; +} + +.topnav.dark.navlit .menu-icon { + color: #fff; +} + +.topnav.dark.navlit .menu-icon .icon i { + background: #fff; +} + +.hamenu { + position: fixed; + top: 0; + left: -100%; + width: 100%; + height: 100vh; + background: #18191d; + padding: 120px 30px 30px; + overflow: hidden; + z-index: 9999; + -webkit-transition: all 0.5s cubic-bezier(1, 0, 0.55, 1); + -o-transition: all 0.5s cubic-bezier(1, 0, 0.55, 1); + transition: all 0.5s cubic-bezier(1, 0, 0.55, 1); +} + +.hamenu.open .menu-links .main-menu > li .link { + -webkit-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); + -webkit-transition-delay: 1s; + -o-transition-delay: 1s; + transition-delay: 1s; +} + +.hamenu.open .cont-info:after { + height: 100vh; + -webkit-transition-delay: 1s; + -o-transition-delay: 1s; + transition-delay: 1s; +} + +.hamenu.open .cont-info .item { + -webkit-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); + opacity: 1; + -webkit-transition-delay: 1s; + -o-transition-delay: 1s; + transition-delay: 1s; +} + +.hamenu .menu-links { + color: #fff; + margin-top: 30px; +} + +.hamenu .menu-links .o-hidden { + display: inline-block; +} + +.hamenu .menu-links .main-menu { + position: relative; + z-index: 2; +} + +.hamenu .menu-links .main-menu.gosub > li { + opacity: 0; + visibility: hidden; + -webkit-transition-delay: 0.2s !important; + -o-transition-delay: 0.2s !important; + transition-delay: 0.2s !important; +} + +.hamenu .menu-links .main-menu.gosub > li .link { + -webkit-transform: translateY(45px) !important; + -ms-transform: translateY(45px) !important; + transform: translateY(45px) !important; + opacity: 0 !important; + visibility: hidden !important; + -webkit-transition-delay: 0.2s !important; + -o-transition-delay: 0.2s !important; + transition-delay: 0.2s !important; +} + +.hamenu .menu-links .main-menu.gosub .sub-menu.sub-open { + z-index: 3 !important; + opacity: 1 !important; + visibility: visible !important; +} + +.hamenu .menu-links .main-menu > li { + font-size: 30px; + font-weight: 600; + padding: 10px; + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; + opacity: 1; + visibility: visible; + -webkit-transition: all 0.5s; + -o-transition: all 0.5s; + transition: all 0.5s; +} + +.hamenu .menu-links .main-menu > li span.nm { + opacity: 0.8; + font-size: 11px; + margin-right: 10px; +} + +.hamenu .menu-links .main-menu > li .link { + -webkit-transform: translateY(45px); + -ms-transform: translateY(45px); + transform: translateY(45px); + -webkit-transition: all 0.7s; + -o-transition: all 0.7s; + transition: all 0.7s; + cursor: pointer; +} + +.hamenu .menu-links .main-menu > li .link i { + font-size: 15px; + margin-left: 5px; +} + +.hamenu .menu-links .main-menu .sub-menu { + position: absolute; + top: 0; + left: 0; + opacity: 0; + visibility: hidden; + z-index: -1; + -webkit-transition-delay: 0.2s; + -o-transition-delay: 0.2s; + transition-delay: 0.2s; +} + +.hamenu .menu-links .main-menu .sub-menu.sub-open { + z-index: 3; +} + +.hamenu .menu-links .main-menu .sub-menu.sub-open li .sub-link { + -webkit-transform: translateY(0px); + -ms-transform: translateY(0px); + transform: translateY(0px); + -webkit-transition-delay: 1s; + -o-transition-delay: 1s; + transition-delay: 1s; +} + +.hamenu .menu-links .main-menu .sub-menu li { + color: #eee; + font-size: 20px; + font-weight: 400; + letter-spacing: 1px; + padding: 8px 10px; + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; +} + +.hamenu .menu-links .main-menu .sub-menu li:hover { + color: #fff; +} + +.hamenu .menu-links .main-menu .sub-menu li .sub-link { + -webkit-transform: translateY(45px); + -ms-transform: translateY(45px); + transform: translateY(45px); + -webkit-transition: all 0.7s; + -o-transition: all 0.7s; + transition: all 0.7s; +} + +.hamenu .menu-links .main-menu .sub-menu li .sub-link.back { + color: #fff; + font-size: 20px; + font-weight: 600; + cursor: pointer; +} + +.hamenu .menu-links .main-menu .sub-menu li .sub-link.back i { + margin-left: 10px; +} + +.hamenu .menu-links .main-menu .sub-menu li .sub-link em { + font-size: 13px; + font-weight: 300; + margin-left: 10px; +} + +.hamenu .cont-info { + color: #fff; + margin-top: 50px; + position: relative; +} + +.hamenu .cont-info:after { + content: ""; + width: 1px; + height: 0; + background: rgba(255, 255, 255, 0.1); + position: absolute; + left: -40px; + top: -170px; + -webkit-transition: all 0.7s; + -o-transition: all 0.7s; + transition: all 0.7s; +} + +.hamenu .cont-info .item { + margin-bottom: 30px; + -webkit-transform: translateY(-30px); + -ms-transform: translateY(-30px); + transform: translateY(-30px); + opacity: 0; + -webkit-transition: all 0.7s; + -o-transition: all 0.7s; + transition: all 0.7s; +} + +.hamenu .cont-info .item:last-of-type { + margin-bottom: 0; +} + +.hamenu .cont-info .item h6 { + font-size: 14px; + font-weight: 600; + text-transform: uppercase; + margin-bottom: 10px; +} + +/* ====================== [ End navbar ] ====================== */ +/* ====================== [ Start Slider ] ====================== */ +.slider { + position: relative; +} + +.slider.fixed-slider { + position: fixed; + top: 0; + left: 0; + right: 0; +} + +.slider .swiper-slide-active { + z-index: 3; +} + +.slider .parallax-slider { + position: relative; +} + +.slider .parallax-slider .swiper-slide { + position: relative; + overflow: hidden; + width: 100%; + min-height: 100vh; + padding-bottom: 50px; +} + +.slider .parallax-slider .swiper-slide .bg-img { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + background-size: cover; +} + +.slider .parallax-slider .swiper-slide-active .caption h1[data-splitting] { + -webkit-transition: all 0s; + -o-transition: all 0s; + transition: all 0s; + opacity: 1; + visibility: visible; + -webkit-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); +} + +.slider + .parallax-slider + .swiper-slide-active + .caption + h1[data-splitting] + .char { + -webkit-animation: fadeInUp 0.5s cubic-bezier(0.3, 0, 0.7, 1) both; + animation: fadeInUp 0.5s cubic-bezier(0.3, 0, 0.7, 1) both; + -webkit-animation-delay: calc(60ms * var(--char-index)); + animation-delay: calc(60ms * var(--char-index)); +} + +.slider .parallax-slider .swiper-slide-active .caption .thin, +.slider .parallax-slider .swiper-slide-active .caption .butn, +.slider .parallax-slider .swiper-slide-active .caption h1, +.slider .parallax-slider .swiper-slide-active .caption p { + opacity: 1; + visibility: visible; + -webkit-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); +} + +.slider .parallax-slider .caption .thin { + color: #12c2e9; + font-size: 30px; + font-weight: 300; + text-transform: uppercase; + letter-spacing: 8px; + margin-bottom: 5px; + opacity: 0; + -webkit-transform: translateY(-20px); + -ms-transform: translateY(-20px); + transform: translateY(-20px); + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; + -webkit-transition-delay: 0.8s; + -o-transition-delay: 0.8s; + transition-delay: 0.8s; +} + +.slider .parallax-slider .caption .thin span { + color: #12c2e9; +} + +.slider .parallax-slider .caption h1 { + font-size: 65px; + font-weight: 800; + letter-spacing: 2px; + color: #fff; + opacity: 0; + -webkit-transform: translateY(20px); + -ms-transform: translateY(20px); + transform: translateY(20px); + visibility: hidden; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; + -webkit-transition-delay: 0.3s; + -o-transition-delay: 0.3s; + transition-delay: 0.3s; +} + +.slider .parallax-slider .caption p { + color: #eee; + margin-top: 15px; + opacity: 0; + -webkit-transform: translateY(20px); + -ms-transform: translateY(20px); + transform: translateY(20px); + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; + -webkit-transition-delay: 0.8s; + -o-transition-delay: 0.8s; + transition-delay: 0.8s; +} + +.slider .parallax-slider .caption .butn { + opacity: 0; + -webkit-transform: translateY(20px); + -ms-transform: translateY(20px); + transform: translateY(20px); + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; + -webkit-transition-delay: 1s; + -o-transition-delay: 1s; + transition-delay: 1s; +} + +.slider .parallax-slider .caption.dig h1 { + font-weight: 800; + font-size: 80px; + text-transform: uppercase; +} + +.slider .parallax-slider .caption.dig h1 .tline { + margin-left: 80px; +} + +.slider .parallax-slider .caption.dig h1 .whitespace { + width: 20px; +} + +.slider .setone { + position: absolute; + bottom: 8%; + right: 40px; + z-index: 8; +} + +.slider .setone .swiper-nav-ctrl { + color: #ccc; + font-size: 13px; + width: 55px; + height: 55px; + line-height: 55px; + text-align: center; + margin: 5px 0; + border: 1px solid rgba(255, 255, 255, 0.3); + position: static; +} + +.slider .setone .swiper-nav-ctrl:after { + display: none; +} + +.slider .setone.setwo { + position: static; +} + +.slider .setone.setwo .swiper-nav-ctrl { + border-radius: 50%; +} + +.slider .setone.setwo .next-ctrl { + position: absolute; + top: 50%; + right: 30px; +} + +.slider .setone.setwo .prev-ctrl { + position: absolute; + top: 50%; + left: 30px; +} + +.slider .txt-botm { + position: absolute; + bottom: 20px; + left: 0; + width: 100%; + z-index: 8; +} + +.slider .txt-botm .swiper-nav-ctrl { + position: absolute; + width: auto; + height: auto; + margin-top: auto; + top: auto; + bottom: 0; +} + +.slider .txt-botm .swiper-nav-ctrl i { + color: #ccc; + font-size: 13px; + width: 45px; + height: 45px; + line-height: 45px; + text-align: center; + margin: 0; + border-radius: 50%; + display: inline-block; + -webkit-transition: all 0.3s; + -o-transition: all 0.3s; + transition: all 0.3s; +} + +.slider .txt-botm .swiper-nav-ctrl span { + font-weight: 500; + font-size: 12px; + color: #fff; +} + +.slider .txt-botm .swiper-nav-ctrl:after { + display: none; +} + +.slider .txt-botm .swiper-nav-ctrl.swiper-button-next { + right: 40px; +} + +.slider .txt-botm .swiper-nav-ctrl.swiper-button-next i { + margin-left: 10px; +} + +.slider .txt-botm .swiper-nav-ctrl.swiper-button-prev { + left: 40px; +} + +.slider .txt-botm .swiper-nav-ctrl.swiper-button-prev i { + margin-right: 10px; +} + +.slider .txt-botm .swiper-nav-ctrl:hover i { + border: 1px solid rgba(255, 255, 255, 0.3); +} + +.slider .swiper-pagination-fraction.top { + position: absolute; + right: 15%; + left: auto; + bottom: auto; + top: 20%; + width: auto; + color: #fff; + font-size: 40px; + font-weight: 500; +} + +.slider .swiper-pagination-fraction.top .swiper-pagination-current { + font-size: 60px; + font-weight: 700; + position: relative; + color: transparent; + -webkit-text-stroke: 0.5px #fff; +} + +.slider .swiper-pagination-fraction.top .swiper-pagination-current:after { + content: "/"; + color: #fff; + position: relative; + margin: 0 10px; + font-size: 12px; + font-weight: 100; +} + +.slider .swiper-pagination-fraction.top.botm { + top: auto; + bottom: 40px; + right: 40px; +} + +.slider .swiper-pagination-fraction.steps { + position: absolute; + width: 100px; + color: #fff; + font-size: 15px; + bottom: 40px; + left: calc(50% - 50px); + right: auto; + top: auto; + text-align: left; +} + +.slider .swiper-pagination-fraction.steps:after { + content: ""; + position: absolute; + top: 50%; + left: 15%; + width: 70%; + height: 1px; + background: rgba(255, 255, 255, 0.3); +} + +.slider .swiper-pagination-fraction.steps .swiper-pagination-total { + float: right; +} + +.slider .social-icon { + position: absolute; + left: 40px; + bottom: 40px; + z-index: 8; +} + +.slider .social-icon a { + width: 40px; + height: 40px; + line-height: 40px; + text-align: center; + border-radius: 50%; + border: 1px solid rgba(255, 255, 255, 0.05); + color: #fff; + font-size: 13px; +} + +.slider-st { + min-height: 100vh; + padding: 120px 0; +} + +.slider-st .img { + position: relative; +} + +.slider-st .img:after { + content: ""; + position: absolute; + top: -5px; + left: -5px; + right: -5px; + bottom: -5px; + background: -webkit-gradient( + linear, + left top, + right top, + from(#12c2e9), + color-stop(#c471ed), + to(#f64f59) + ); + background: -webkit-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: -o-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: linear-gradient(to right, #12c2e9, #c471ed, #f64f59); + border-radius: 15px; + -webkit-transform: rotate(-3deg); + -ms-transform: rotate(-3deg); + transform: rotate(-3deg); +} + +.slider-st .img:before { + content: ""; + position: absolute; + top: -15px; + left: -15px; + right: -15px; + bottom: -15px; + background: #fff; + border-radius: 15px; + -webkit-transform: rotate(-3deg); + -ms-transform: rotate(-3deg); + transform: rotate(-3deg); + opacity: 0.08; +} + +.slider-st .img img { + border-radius: 15px; + -webkit-transform: rotate(3deg); + -ms-transform: rotate(3deg); + transform: rotate(3deg); + position: relative; + z-index: 2; +} + +.slider-stwo { + min-height: 100vh; + position: relative; + padding: 120px 0; +} + +.slider-stwo:after { + content: ""; + position: absolute; + top: 0; + left: 0; + width: 30%; + height: 100%; + background: #18191d; + z-index: -1; +} + +.slider-stwo .img { + padding-right: 30px; +} + +.slider-stwo .img img { + border-radius: 10px; + -webkit-box-shadow: 0px 10px 30px rgba(255, 255, 255, 0.05); + box-shadow: 0px 10px 30px rgba(255, 255, 255, 0.05); +} + +.slider-stwo ul { + margin: 30px 0 0; + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.slider-stwo ul li { + display: inline-block; +} + +.slider-stwo ul li div { + display: table-cell; +} + +.slider-stwo ul li .icon { + width: 60px; + height: 60px; + line-height: 60px; + text-align: center; + position: relative; + font-size: 20px; +} + +.slider-stwo ul li .icon .bord { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +.slider-stwo ul li .icon .bord:after { + content: ""; + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: #111215; + border-radius: 5px; + z-index: -1; +} + +.slider-stwo ul li .icon .bord:before { + content: ""; + position: absolute; + top: -1px; + left: -1px; + bottom: -1px; + right: -1px; + border-radius: 5px; + background: -webkit-gradient( + linear, + left top, + right top, + from(#12c2e9), + color-stop(#c471ed), + to(#f64f59) + ); + background: -webkit-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: -o-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: linear-gradient(to right, #12c2e9, #c471ed, #f64f59); + z-index: -2; +} + +.slider-stwo ul li .cont { + display: table-cell; + vertical-align: middle; + padding-left: 15px; +} + +.slider-stwo ul li .cont p { + font-size: 13px; + margin-top: 5px; +} + +.particles { + min-height: 100vh; + position: relative; + z-index: 2; + overflow: hidden; +} + +.particles .cont h1 { + font-size: 90px; + font-weight: 800; +} + +.particles .animation-wrapper { + opacity: 0.5; +} + +.freelancre { + min-height: 100vh; + padding: 100px 0; + position: relative; + overflow: hidden; +} + +.freelancre:after { + content: ""; + width: 140%; + background: rgba(255, 255, 255, 0.01); + height: 100%; + -webkit-transform: rotate(15deg); + -ms-transform: rotate(15deg); + transform: rotate(15deg); + position: absolute; + top: -40%; + left: -20%; + z-index: -1; +} + +.freelancre .img { + position: relative; + width: 280px; + height: 280px; + border-radius: 50%; + z-index: 2; +} + +.freelancre .img img { + width: 100%; + height: 100%; + -o-object-fit: cover; + object-fit: cover; + border-radius: 50%; +} + +.freelancre .img:after { + content: ""; + background: -webkit-gradient( + linear, + right top, + left top, + from(#12c2e9), + color-stop(#c471ed), + to(#f64f59) + ); + background: -webkit-linear-gradient(right, #12c2e9, #c471ed, #f64f59); + background: -o-linear-gradient(right, #12c2e9, #c471ed, #f64f59); + background: linear-gradient(to left, #12c2e9, #c471ed, #f64f59); + position: absolute; + top: -5px; + left: -5px; + right: -5px; + bottom: -5px; + border-radius: 50%; + z-index: -1; +} + +.freelancre .cont h1 { + font-size: 35px; +} + +.freelancre .states { + position: absolute; + bottom: 0; + left: 0; + width: 100%; + padding-bottom: 50px; +} + +.freelancre .states .flex { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.freelancre .states ul { + margin: 0; +} + +.freelancre .states li { + margin-right: 100px; +} + +.freelancre .states li:last-of-type { + margin-right: 0; +} + +.freelancre .states li h3 { + font-size: 50px; + font-weight: 400; + margin-right: 20px; +} + +.freelancre .states li p { + font-size: 12px; + text-transform: uppercase; +} + +.freelancre .states .mail-us { + margin-left: auto; +} + +.freelancre .states .mail-us .text { + text-align: right; + padding-right: 20px; +} + +.freelancre .states .mail-us .text h6 { + font-size: 14px; + margin-top: 5px; +} + +.freelancre .states .mail-us .icon-box { + width: 60px; + height: 60px; + line-height: 65px; + text-align: center; + border-radius: 5px; + background: -webkit-linear-gradient( + 323.53deg, + #18191d 6.69%, + rgba(4, 4, 5, 0.1) 85.43% + ); + background: -o-linear-gradient( + 323.53deg, + #18191d 6.69%, + rgba(4, 4, 5, 0.1) 85.43% + ); + background: linear-gradient( + 126.47deg, + #18191d 6.69%, + rgba(4, 4, 5, 0.1) 85.43% + ); + font-size: 30px; +} + +.slider-bus { + min-height: 100vh; + position: relative; +} + +.slider-bus .swiper-img { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +.slider-bus .setone { + position: absolute; + bottom: 8%; + right: 40px; + z-index: 8; +} + +.slider-bus .setone .swiper-nav-ctrl { + color: #ccc; + font-size: 13px; + width: 55px; + height: 55px; + line-height: 55px; + text-align: center; + margin: 5px 0; + border: 1px solid rgba(255, 255, 255, 0.3); + position: static; +} + +.slider-bus .setone .swiper-nav-ctrl:after { + display: none; +} + +.slider-bus .setone.setwo { + position: static; +} + +.slider-bus .setone.setwo .swiper-nav-ctrl { + border-radius: 50%; +} + +.slider-bus .setone.setwo .next-ctrl { + position: absolute; + top: 50%; + right: 30px; +} + +.slider-bus .setone.setwo .prev-ctrl { + position: absolute; + top: 50%; + left: 30px; +} + +.slider-bus .swiper-pagination-fraction { + position: absolute; + right: auto; + left: 60px; + bottom: 30px; + width: auto; + color: #fff; + font-size: 40px; + font-weight: 500; +} + +.slider-bus .swiper-pagination-fraction .swiper-pagination-current { + font-size: 60px; + font-weight: 700; + position: relative; + color: transparent; + -webkit-text-stroke: 0.5px #fff; +} + +.slider-bus .swiper-pagination-fraction .swiper-pagination-current:after { + content: "/"; + color: #fff; + position: relative; + margin: 0 10px; + font-size: 12px; + font-weight: 100; +} + +.slider-bus .swiper-slide-active .caption h1 { + -webkit-transition: all 0s; + -o-transition: all 0s; + transition: all 0s; + opacity: 1; + visibility: visible; + -webkit-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); +} + +.slider-bus .swiper-slide-active .caption h1 .char { + -webkit-animation: fadeInUp 0.5s cubic-bezier(0.3, 0, 0.7, 1) both; + animation: fadeInUp 0.5s cubic-bezier(0.3, 0, 0.7, 1) both; + -webkit-animation-delay: calc(60ms * var(--char-index)); + animation-delay: calc(60ms * var(--char-index)); +} + +.slider-bus .swiper-slide-active .caption .thin, +.slider-bus .swiper-slide-active .caption .simple-btn, +.slider-bus .swiper-slide-active .caption .butn, +.slider-bus .swiper-slide-active .caption p { + opacity: 1; + -webkit-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); +} + +.slider-bus .caption .thin { + font-size: 16px; + font-weight: 400; + text-transform: uppercase; + letter-spacing: 8px; + margin-bottom: 5px; + opacity: 0; + -webkit-transform: translateY(-20px); + -ms-transform: translateY(-20px); + transform: translateY(-20px); + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; + -webkit-transition-delay: 0.8s; + -o-transition-delay: 0.8s; + transition-delay: 0.8s; +} + +.slider-bus .caption h1 { + font-size: 90px; + font-weight: 800; + letter-spacing: 4px; + color: #fff; + opacity: 0; + visibility: hidden; + -webkit-transition: opacity 0.5s, visibility 0.5s; + -o-transition: opacity 0.5s, visibility 0.5s; + transition: opacity 0.5s, visibility 0.5s; +} + +.slider-bus .caption p { + color: #eee; + opacity: 0; + -webkit-transform: translateY(20px); + -ms-transform: translateY(20px); + transform: translateY(20px); + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; + -webkit-transition-delay: 0.8s; + -o-transition-delay: 0.8s; + transition-delay: 0.8s; +} + +.slider-bus .caption .simple-btn, +.slider-bus .caption .butn { + opacity: 0; + -webkit-transform: translateY(20px); + -ms-transform: translateY(20px); + transform: translateY(20px); + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; + -webkit-transition-delay: 1s; + -o-transition-delay: 1s; + transition-delay: 1s; +} + +.slider-bus .ontop { + position: relative; + z-index: 5; +} + +.arch-slider { + padding-bottom: 80px; +} + +.arch-slider .parallax-slider .caption h5 { + font-size: 50px; + font-weight: 200; +} + +.arch-slider .parallax-slider .caption h1 { + font-size: 75px; + font-weight: 600; + letter-spacing: 2px; +} + +.arch-slider .parallax-slider .caption p { + font-weight: 300; + padding-left: 100px; + margin-left: 100px; + position: relative; +} + +.arch-slider .parallax-slider .caption p:after { + content: ""; + position: absolute; + left: 0; + top: 10px; + background: #eee; + width: 70px; + height: 1px; +} + +.arch-slider .parallax-slider .explore { + margin-left: auto; + margin-top: -100px; +} + +.arch-slider .parallax-slider .explore a { + font-size: 13px; + font-weight: 400; + text-transform: uppercase; + letter-spacing: 2px; + border-bottom: 1px solid rgba(255, 255, 255, 0.3); +} + +.arch-slider .parallax-slider .explore a i { + font-size: 12px; + margin-left: 10px; +} + +.arch-slider .setting { + position: absolute; + bottom: 0; + right: 0; + padding: 50px; + width: 300px; + background: #232323; + z-index: 4; +} + +.arch-slider .setting .swiper-button-next, +.arch-slider .setting .swiper-button-prev { + color: #fff; +} + +.arch-slider .setting .swiper-button-next:after, +.arch-slider .setting .swiper-button-prev:after { + display: none; +} + +.arch-slider .setting .next-ctrl { + padding-left: 25px; + margin-right: 20px; + border-left: 1px solid rgba(255, 255, 255, 0.1); +} + +.arch-slider .setting .prev-ctrl { + padding-right: 25px; + margin-left: 20px; + border-right: 1px solid rgba(255, 255, 255, 0.1); +} + +.arch-slider .setting .swiper-pagination-bullets { + position: absolute; + top: 50%; + left: 50%; + -webkit-transform: translateX(-50%) translateY(-50%); + -ms-transform: translateX(-50%) translateY(-50%); + transform: translateX(-50%) translateY(-50%); +} + +.arch-slider .setting .swiper-pagination-bullets .swiper-pagination-bullet { + width: 5px; + height: 5px; + background: rgba(255, 255, 255, 0.4); + border-radius: 50%; + margin: 0 7px; + position: relative; + opacity: 1; +} + +.arch-slider + .setting + .swiper-pagination-bullets + .swiper-pagination-bullet-active { + background: #fff; + -webkit-transform: scale(1.5); + -ms-transform: scale(1.5); + transform: scale(1.5); +} + +.curve-bg { + position: absolute; + top: 0; + left: -10%; + width: 100%; + height: 100%; + z-index: 3; +} + +.pages-header { + min-height: 75vh; + padding: 150px 0 0; + position: relative; +} + +.pages-header .cont h1 { + font-size: 55px; +} + +.pages-header .half { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 70%; + z-index: -1; + overflow: hidden; +} + +.page-header .cont { + padding: 220px 0 50px; +} + +.page-header .cont h1 { + font-size: 80px; + font-weight: 600; +} + +.page-header .img-wrapper { + position: relative; + min-height: 70vh; +} + +.page-header .img-wrapper .title { + position: absolute; + top: 0; + right: 0px; + width: 100%; + text-align: right; + -webkit-transform: translateY(-55%); + -ms-transform: translateY(-55%); + transform: translateY(-55%); + z-index: 3; +} + +.page-header .img-wrapper .title h3 { + font-size: 100px; + font-weight: 900; + -webkit-text-stroke-width: 1px; + -webkit-text-stroke-color: #fff; + color: transparent; +} + +.page-header .img-wrapper .map { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +.page-header.proj-det.bg-img { + min-height: 85vh; + padding-bottom: 100px; +} + +.page-header.proj-det.bg-img .item h6 { + font-size: 13px; + font-weight: 600; + letter-spacing: 4px; + text-transform: uppercase; + margin-bottom: 10px; +} + +.page-header.proj-det.bg-img .item p { + font-weight: 400; + text-transform: uppercase; + letter-spacing: 2px; + font-size: 12px; +} + +.page-header.proj-det.bg-img .item p a { + margin: 0 7px; +} + +.page-header.proj-det.bg-img .item p a:first-of-type { + margin-left: 0; +} + +.page-header.proj-det.bg-img .item p a:last-of-type { + margin-right: 0; +} + +.page-header.proj-det .img-wrapper { + min-height: 80vh; +} + +.works-header { + min-height: 80vh; +} + +.works-header.hfixd { + position: fixed; + top: 0; + left: 0; + width: 100%; +} + +.works-header .capt h4 { + font-weight: 200; + font-size: 24px; + line-height: 1.8; +} + +.works-header .capt h1 { + font-size: 60px; + font-weight: 800; + letter-spacing: 2px; + text-transform: uppercase; +} + +.works-header .capt h1 span { + display: block; + font-size: 20px; + font-weight: 300; + text-transform: capitalize; + color: #12c2e9; +} + +.works-header .capt .bactxt { + font-size: 30vw; + font-weight: bold; + color: transparent; + -webkit-text-stroke: 1px rgba(255, 255, 255, 0.1); + z-index: -1; + position: absolute; + width: 100%; + height: 100%; + left: 0; + top: 0; + text-align: center; + opacity: 0.5; +} + +.static { + position: static; +} + +.circle-bg { + position: relative; +} + +.circle-bg .circle-color { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 5; +} + +.circle-bg .circle-color.fixed { + position: fixed; + pointer-events: none; + opacity: 0.5; +} + +.circle-bg .gradient-circle { + position: absolute; + left: -250px; + top: 250px; + right: auto; + bottom: auto; + z-index: -1; + width: 500px; + height: 500px; + border-radius: 70%; + background-image: -webkit-linear-gradient(45deg, #059dff, #36c6f0); + background-image: -o-linear-gradient(45deg, #059dff, #36c6f0); + background-image: linear-gradient(45deg, #059dff, #36c6f0); + opacity: 0.25; + -webkit-filter: blur(100px); + filter: blur(100px); +} + +.circle-bg .gradient-circle.two { + left: auto; + top: -250px; + right: -250px; + bottom: auto; + background-image: -webkit-linear-gradient(45deg, #fb5343, #6549d5); + background-image: -o-linear-gradient(45deg, #fb5343, #6549d5); + background-image: linear-gradient(45deg, #fb5343, #6549d5); +} + +.main-content { + background: #111215; + position: relative; + z-index: 3; + overflow-x: hidden !important; +} + +/* ====================== [ End Slider ] ====================== */ +/* ====================== [ Start showcase ] ====================== */ +.showcase-full .parallax-slider .swiper-slide .bg-img { + background-position: center center; +} + +.showcase-full .parallax-slider .caption { + position: relative; +} + +.showcase-full .parallax-slider .caption h1 { + font-size: 80px; + font-weight: 700; + letter-spacing: 1px; + -webkit-transition: all 0.5s; + -o-transition: all 0.5s; + transition: all 0.5s; + position: relative; +} + +.showcase-full .parallax-slider .caption h1 .stroke { + margin-bottom: 10px; +} + +.showcase-full .parallax-slider .caption h1 .bord { + position: absolute; + top: 50%; + left: 50%; + width: 100vw; + -webkit-transform: translateX(-50%); + -ms-transform: translateX(-50%); + transform: translateX(-50%); + height: 1px; + background: #fff; + border: 0; + opacity: 0.1; +} + +.showcase-full .parallax-slider .caption .discover { + position: absolute; + top: 50%; + -webkit-transform: translateY(-50%); + -ms-transform: translateY(-50%); + transform: translateY(-50%); + right: 0; + width: 200px; + height: 200px; + text-align: center; + border: 1px solid rgba(255, 255, 255, 0.4); + border-radius: 50%; + font-size: 13px; + font-weight: 200; + letter-spacing: 4px; + text-transform: uppercase; + -webkit-transition-delay: 2s; + -o-transition-delay: 2s; + transition-delay: 2s; + -webkit-transition: all 0.7s; + -o-transition: all 0.7s; + transition: all 0.7s; + opacity: 0; +} + +.showcase-full .parallax-slider .caption .discover span { + position: absolute; + top: 50%; + left: 50%; + -webkit-transform: translateX(-50%) translateY(-50%); + -ms-transform: translateX(-50%) translateY(-50%); + transform: translateX(-50%) translateY(-50%); + line-height: 50px; +} + +.showcase-full .parallax-slider .swiper-slide-active .caption .discover { + opacity: 1; + -webkit-transition: all 0.7s; + -o-transition: all 0.7s; + transition: all 0.7s; +} + +.showcase-full .dots { + bottom: 30px; + z-index: 1; +} + +.showcase-full .dots span { + background: #fff; + width: 5px; + height: 5px; + margin: 0 7px !important; + border-radius: 50% !important; +} + +.showcase-full .dots span.swiper-pagination-bullet-active { + position: relative; +} + +.showcase-full .dots span.swiper-pagination-bullet-active:after { + content: ""; + position: absolute; + top: -5px; + left: -5px; + right: -5px; + bottom: -5px; + border: 1px solid #fff; + border-radius: 50%; +} + +.showcase-carus { + height: 100vh; +} + +.showcase-carus .swiper-container { + height: 100%; +} + +.showcase-carus .caption h1, +.showcase-carus .copy-cap h1 { + font-size: 90px; + font-weight: 800; + line-height: 1.2; + position: relative; +} + +.showcase-carus .copy-cap { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: -1; +} + +.showcase-carus .copy-cap .cap h1 span { + color: transparent; + -webkit-text-stroke: 1px #fff; +} + +.showcase-carus .copy-cap .cap h1 .stroke { + color: #fff; + -webkit-text-stroke: 0; +} + +.showcase-carus.circle-slide .swiper-slide { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.showcase-carus.circle-slide .swiper-slide .bg-img { + height: 500px; + width: 500px; + border-radius: 50%; + margin: auto; + background-position: center center; +} + +.showcase-carus.circle-slide .swiper-slide .bg-img:before { + border-radius: 50%; +} + +.showcase-carus.circle-slide .caption, +.showcase-carus.circle-slide .copy-cap { + position: absolute; + top: 0; + left: -25%; + width: 100%; + height: 100%; +} + +.showcase-carus.circle-slide .caption h1, +.showcase-carus.circle-slide .copy-cap h1 { + font-size: 70px; + display: block; +} + +.showcase-carus.circle-slide .caption h1 .stroke, +.showcase-carus.circle-slide .copy-cap h1 .stroke { + display: inline-block; + color: transparent; + -webkit-text-stroke: 1px #fff; +} + +.showcase-carus.circle-slide .caption h1 span, +.showcase-carus.circle-slide .copy-cap h1 span { + margin-left: auto; + color: transparent; + -webkit-text-stroke: 1px #fff; +} + +.showcase-carus.circle-slide .copy-cap .cap h1 span { + color: #fff; + -webkit-text-stroke: 0; +} + +.showcase-carus.circle-slide .copy-cap .cap h1 .stroke { + color: #fff; + -webkit-text-stroke: 0; +} + +.showcase-carus.circle-slide .caption h1 .stroke, +.showcase-carus.circle-slide .copy-cap h1 .stroke { + -webkit-transform: skewX(0) translateX(0); + -ms-transform: skewX(0) translateX(0); + transform: skewX(0) translateX(0); + opacity: 1; +} + +.showcase-carus.circle-slide .caption h1 span, +.showcase-carus.circle-slide .copy-cap h1 span { + -webkit-transform: skewX(0) translateX(0); + -ms-transform: skewX(0) translateX(0); + transform: skewX(0) translateX(0); + opacity: 1; +} + +.showstyle { + height: 100vh; +} + +.showstyle .swiper-container { + height: 100%; +} + +.showstyle .swiper-slide .bg-img { + height: 70vh; + margin: 15vh 0 0; +} + +.showstyle .caption h1 { + font-size: 90px; + font-weight: 800; + line-height: 1.2; + -webkit-transition: all 0.5s; + -o-transition: all 0.5s; + transition: all 0.5s; +} + +.showstyle .caption h1 .stroke { + color: transparent; + -webkit-text-stroke: 1px #fff; +} + +.showstyle .caption h1 span { + margin-left: 200px; +} + +.showstyle .caption .discover { + margin-top: 50px; + opacity: 0; + -webkit-transition: all 0.7s; + -o-transition: all 0.7s; + transition: all 0.7s; +} + +.showstyle .caption .discover i { + display: inline-block; + width: 70px; + height: 70px; + line-height: 70px; + text-align: center; + border: 1px solid #fff; + border-radius: 50%; + margin-right: 10px; +} + +.showstyle .caption .discover span { + font-size: 13px; + font-weight: 600; +} + +.showcase-grid { + height: 100vh; +} + +.showcase-grid .swiper-container { + height: 100%; +} + +.showcase-grid .swiper-slide .bg-img { + height: 76vh; + margin: 12vh 0 0; + position: relative; + background-position: center center; +} + +.div-tooltip-tit { + display: none; + position: absolute; + background-color: #fff; + color: #111; + padding: 0 10px; + height: 50px; + line-height: 50px; + font-size: 15px; + font-weight: 600; + z-index: 99999; +} + +.div-tooltip-sub { + display: none; + position: absolute; + background-color: #111; + padding: 5px 10px; + font-size: 13px; + font-weight: 500; + z-index: 99999; +} + +/* ====================== [ end showcase ] ====================== */ +/* ====================== [ Start Intro ] ====================== */ +.about .content .co-tit { + font-weight: 400; + margin-bottom: 30px; +} + +.about .img-mons .img1, +.about .img-mons .img2, +.about .img-mons .img3 { + height: 200px; + border-radius: 10px; + overflow: hidden; +} + +.about .img-mons .img1 img, +.about .img-mons .img2 img, +.about .img-mons .img3 img { + width: 100%; + height: 100%; + -o-object-fit: cover; + object-fit: cover; + -o-object-position: center center; + object-position: center center; +} + +.about .img-mons .img2 { + height: 240px; +} + +.about .img-mons .img3 { + width: 75%; + margin-top: 20px; +} + +.about .img-mons .img3.exp { + background: #18191d; + padding: 30px; +} + +.about .img-mons .img3.exp h2 { + font-weight: 800; + margin-bottom: 5px; +} + +.about .img-mons .img3.exp h6 { + letter-spacing: 2px; +} + +.about .blc-img .bimg { + padding-right: 80px; + padding-bottom: 80px; + position: relative; +} + +.about .blc-img .bimg img { + border-radius: 15px; + overflow: hidden; + -webkit-box-shadow: 0px 10px 30px rgba(100, 100, 100, 0.3); + box-shadow: 0px 10px 30px rgba(100, 100, 100, 0.3); +} + +.about .blc-img .bimg .bg-img { + position: absolute; + right: 0px; + bottom: 0; + width: 300px; + height: 300px; + -webkit-box-shadow: 0px 10px 30px rgba(100, 100, 100, 0.3); + box-shadow: 0px 10px 30px rgba(100, 100, 100, 0.3); + background-position: center center; + border-radius: 15px; + overflow: hidden; +} + +.about .blc-img .skills-circle { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + background: #11141b; + padding: 30px; + border-radius: 15px; + position: relative; + margin-top: -80px; + right: -50px; + -webkit-box-shadow: 0px 10px 20px -5px rgba(52, 60, 70, 0.1); + box-shadow: 0px 10px 20px -5px rgba(52, 60, 70, 0.1); +} + +.about .blc-img .skills-circle .item:last-of-type { + margin-left: 30px; +} + +.about .ftbox ul { + margin: 0; + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.about .ftbox ul li { + width: 100%; + padding: 35px 25px; + text-align: center; + background: #18191d; + border-radius: 5px; + position: relative; +} + +.about .ftbox ul li.space { + margin: 0 10px; +} + +.about .ftbox ul li .icon { + color: #12c2e9; + font-size: 30px; + margin-bottom: 20px; +} + +.about .ftbox ul li h6 { + font-size: 16px; + font-weight: 400; +} + +.about .ftbox ul li .dots span { + width: 4px; + height: 4px; + border-radius: 50%; + background: #eee; + position: absolute; + right: 10px; + bottom: 12px; + opacity: 0.1; +} + +.about .ftbox ul li .dots span:first-of-type { + bottom: 18px; +} + +.about .ftbox ul li .dots span:last-of-type { + right: 16px; +} + +.agency .content h4 { + font-weight: 700; + font-size: 40px; + line-height: 1.5; + margin-bottom: 20px; +} + +.agency .content ul { + margin: 0; +} + +.agency .content ul li { + margin-top: 25px; + padding-left: 25px; + position: relative; +} + +.agency .content ul li:after { + content: ""; + width: 10px; + height: 10px; + border: 1px solid #999; + border-radius: 50%; + position: absolute; + left: 0; + top: 2px; +} + +.agency .img { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + position: relative; +} + +.agency .img .imgone { + width: 55%; + position: relative; + bottom: -80px; + margin-bottom: 80px; + border-radius: 4px; + border: 5px solid #fff; + -webkit-box-shadow: 0px 0px 30px rgba(0, 0, 0, 0.1); + box-shadow: 0px 0px 30px rgba(0, 0, 0, 0.1); + overflow: hidden; +} + +.agency .img .imgtwo { + width: 55%; + position: absolute; + right: 0; + border-radius: 4px; + border: 5px solid #fff; + -webkit-box-shadow: -15px 10px 30px rgba(0, 0, 0, 0.05); + box-shadow: -15px 10px 30px rgba(0, 0, 0, 0.05); + overflow: hidden; + z-index: 2; +} + +.agency .img .icon { + width: 100px; + height: 100px; + line-height: 135px; + text-align: center; + border-radius: 50%; + background: #fff; + position: absolute; + bottom: 20%; + left: 40%; + z-index: 3; +} + +.agency .img .icon:after { + content: ""; + position: absolute; + top: -10px; + left: -10px; + right: -10px; + bottom: -10px; + background: rgba(255, 255, 255, 0.2); + border-radius: 50%; + z-index: -1; +} + +.agency .img .icon svg { + fill: #12c2e9; + width: 90px; +} + +.agency .img .exp { + position: absolute; + right: 0; + bottom: 0; +} + +.agency .img .exp h6 { + font-size: 12px; + color: #999; + margin-top: 5px; + position: relative; +} + +.agency .img .exp h6:after { + content: ""; + width: 30px; + height: 1px; + background: #12c2e9; + position: absolute; + left: -40px; + top: 45%; +} + +.agency .img .exp h2 { + font-size: 70px; + font-weight: 700; +} + +.agency .imgsec { + padding-right: 30px; +} + +.agency .imgsec .imgone { + position: relative; + top: 0px; +} + +.agency .imgsec .imgtwo { + position: relative; + bottom: 0px; +} + +.agency .imgsec .exp { + padding: 10px 30px; + position: relative; + margin-top: 15px; +} + +.agency .imgsec .exp:after { + content: ""; + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: #111215; + z-index: -1; +} + +.agency .imgsec .exp:before { + content: ""; + position: absolute; + top: -1px; + left: -1px; + bottom: -1px; + right: -1px; + background: -webkit-gradient( + linear, + left top, + right top, + from(#12c2e9), + color-stop(#c471ed), + to(#f64f59) + ); + background: -webkit-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: -o-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: linear-gradient(to right, #12c2e9, #c471ed, #f64f59); + z-index: -2; +} + +.agency .imgsec .exp h6 { + color: #999; + margin-top: 5px; +} + +.agency .imgsec .exp h2 { + font-size: 70px; + font-weight: 700; +} + +.about-us .img { + padding-left: 150px; + padding-right: 50px; + position: relative; +} + +.about-us .img:before { + content: ""; + position: absolute; + top: -50px; + right: 0; + width: 400px; + height: 400px; + background-image: url(../img/dots.png); + background-repeat: repeat; + opacity: 0.3; + z-index: -1; +} + +.about-us .img .stauts { + position: absolute; + bottom: 50px; + left: 30px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.about-us .img .stauts .item { + padding: 30px 20px; + background: #272727; + margin-right: 50px; + position: relative; +} + +.about-us .img .stauts .item:after { + content: ""; + position: absolute; + top: -10px; + left: -10px; + right: -10px; + bottom: -10px; + border: 1px solid rgba(255, 255, 255, 0.2); +} + +.about-us .img .stauts .item:first-of-type { + background: #fff; + color: #121a21; +} + +.about-us .img .stauts .item h4 { + font-size: 45px; + font-weight: 800; + display: table-cell; + vertical-align: middle; + padding-right: 20px; +} + +.about-us .img .stauts .item h4 span { + font-size: 30px; + font-weight: 500; + margin-left: 5px; +} + +.about-us .img .stauts .item h6 { + font-size: 15px; + display: table-cell; + vertical-align: middle; +} + +.about-cr .img img { + width: 105%; + margin-left: -5%; +} + +.about-cr .cont { + padding-left: 50px; +} + +.about-cr .cont h3 { + font-size: 60px; + font-weight: 600; + margin-bottom: 30px; + margin-left: -120px; +} + +.about-cr .cont h6 { + font-size: 30px; + font-weight: 200; + font-style: italic; + margin-bottom: 40px; +} + +.about-cr .cont .vid-area { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.about-cr .cont .vid-area .vid-icon { + padding-right: 30px; +} + +.about-cr .cont .vid-area .vid-icon .vid-butn { + width: 70px; + height: 70px; + line-height: 70px; + text-align: center; + font-size: 20px; + border-radius: 50%; + position: relative; + z-index: 2; +} + +.about-cr .cont .vid-area .vid-icon .vid-butn:after { + content: ""; + position: absolute; + top: 1px; + left: 1px; + right: 1px; + bottom: 1px; + border-radius: 50%; + background: #111215; + z-index: -1; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.about-cr .cont .vid-area .vid-icon .vid-butn:hover:after { + -webkit-transform: scale(0); + -ms-transform: scale(0); + transform: scale(0); +} + +.about-cr .cont .vid-area .text { + font-size: 13px; +} + +.about-cr .cont .states { + margin-top: 50px; +} + +.about-cr .cont .states p { + font-size: 13px; + margin-top: 10px; +} + +.about-ar .img { + position: relative; +} + +.about-ar .img .hero-bg { + width: 420px; + height: 420px; +} + +.about-ar .img .exp { + position: absolute; + top: 30px; + left: 30px; + width: 360px; + height: 360px; + background: rgba(35, 35, 35, 0.9); +} + +.about-ar .img .exp h2 { + font-size: 150px; + font-weight: 700; + text-align: center; + margin: auto; + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + -webkit-text-stroke-width: 1px; + -webkit-text-stroke-color: #c5a47e; + line-height: 1; +} + +.about-ar .img .exp p { + color: #c5a47e; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 2px; +} + +.about-ar .content h3 { + font-size: 55px; + letter-spacing: 1px; + text-transform: uppercase; + margin-bottom: 15px; +} + +.hero-sec .skills-box { + padding-left: 30px; +} + +.hero-sec .skills-box .skill-item { + margin-bottom: 80px; +} + +.intro-section .htit { + font-size: 28px; + font-weight: 500; +} + +.intro-section .htit span { + font-size: 17px; + font-weight: 300; + color: #12c2e9; + margin-right: 5px; +} + +.intro-section .item h6 { + font-size: 13px; + font-weight: 600; + letter-spacing: 4px; + text-transform: uppercase; + margin-bottom: 10px; +} + +.intro-section .item p { + text-transform: uppercase; + letter-spacing: 2px; + font-size: 11px; +} + +.intro-section .item p a { + margin: 0 7px; +} + +.intro-section .item p a:first-of-type { + margin-left: 0; +} + +.intro-section .item p a:last-of-type { + margin-right: 0; +} + +.extra-text { + font-size: 22px; +} + +.video-wrapper { + min-height: 500px; +} + +.video-wrapper .vid { + position: relative; + z-index: 8; +} + +.video-wrapper .vid .vid-butn:hover .icon { + color: #fff; +} + +.video-wrapper .vid .vid-butn:hover .icon:before { + -webkit-transform: scale(0); + -ms-transform: scale(0); + transform: scale(0); +} + +.video-wrapper .vid .vid-butn .icon { + color: #212529; + width: 100px; + height: 100px; + border: 1px solid rgba(255, 255, 255, 0.2); + border-radius: 50%; + line-height: 100px; + text-align: center; + font-size: 17px; + position: relative; + -webkit-transition: all 0.5s; + -o-transition: all 0.5s; + transition: all 0.5s; +} + +.video-wrapper .vid .vid-butn .icon:after { + content: ""; + position: absolute; + top: 5px; + bottom: 5px; + right: 5px; + left: 5px; + border: 1px solid #eee; + border-radius: 50%; + z-index: -1; +} + +.video-wrapper .vid .vid-butn .icon:before { + content: ""; + position: absolute; + top: 5px; + bottom: 5px; + right: 5px; + left: 5px; + background: #fff; + border-radius: 50%; + z-index: -1; + -webkit-transition: all 0.5s cubic-bezier(1, 0, 0, 1); + -o-transition: all 0.5s cubic-bezier(1, 0, 0, 1); + transition: all 0.5s cubic-bezier(1, 0, 0, 1); +} + +.js-scroll__content { + -webkit-transform-origin: top left; + -ms-transform-origin: top left; + transform-origin: top left; + will-change: transform; +} + +/* ====================== [ End Intro ] ====================== */ +/* ====================== [ Start services ] ====================== */ +.services { + position: relative; +} + +.services .container { + position: relative; + z-index: 2; +} + +.services.box .item-box { + border: 0; + border-radius: 15px; + background: rgba(255, 255, 255, 0.01); +} + +.services.box .item-box .icon { + font-size: 60px; +} + +.services.box .item-box .icon:after { + display: none; +} + +.services .item-box { + padding: 80px 30px; + text-align: center; + border: 1px solid rgba(255, 255, 255, 0.05); +} + +.services .item-box .icon { + position: relative; + width: 80px; + height: 80px; + line-height: 80px; + font-size: 40px; + margin-bottom: 30px; +} + +.services .item-box .icon:after { + content: ""; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + border-radius: 50%; + background: -webkit-gradient( + linear, + left top, + right top, + from(#12c2e9), + color-stop(#c471ed), + to(#f64f59) + ); + background: -webkit-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: -o-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: linear-gradient(to right, #12c2e9, #c471ed, #f64f59); + z-index: -1; + opacity: 0.05; +} + +.services .item-box h6 { + line-height: 1.8; + text-transform: capitalize; + margin-bottom: 10px; +} + +.services .rone > div { + position: relative; +} + +.services .rone > div:nth-of-type(2) { + margin-bottom: -50px; + margin-top: auto; +} + +.services .rtwo > div { + position: relative; +} + +.services .rtwo > div:nth-of-type(2) { + margin-bottom: -50px; + margin-top: auto; +} + +.services .mas-item { + padding: 40px; + margin: 50px 0; + background: #18191d; + position: relative; + z-index: 2; +} + +.services .mas-item:after { + content: ""; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: #18191d; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; + z-index: -1; +} + +.services .mas-item .bg-color { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: #12c2e9; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; + z-index: -2; +} + +.services .mas-item:hover .bg-color { + top: 10px; + left: 10px; +} + +.services .mas-item .icon { + font-size: 45px; + color: #12c2e9; + margin-bottom: 30px; +} + +.services .mas-item h6 { + font-weight: 600; + font-size: 16px; + line-height: 1.7; +} + +.services .mas-item .more { + margin-top: 20px; + width: 100%; + width: 45px; + height: 45px; + line-height: 45px; + text-align: center; + font-size: 12px; + border-radius: 50%; + border: 2px solid rgba(255, 255, 255, 0.05); +} + +.services .step-item { + text-align: center; + padding: 60px; + margin: 60px auto; + background: #18191d; + position: relative; +} + +.services .step-item.xbottom { + bottom: -60px; +} + +.services .step-item.xtop { + top: -60px; +} + +.services .step-item.xcolor { + background: #fff; + color: #11141b; +} + +.services .step-item.xcolor p { + color: #333; +} + +.services .step-item .icon { + color: #12c2e9; + background: -webkit-gradient( + linear, + left top, + right top, + from(#12c2e9), + color-stop(#c471ed), + to(#f64f59) + ); + background: -webkit-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: -o-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: linear-gradient(to right, #12c2e9, #c471ed, #f64f59); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + font-size: 40px; + margin-bottom: 30px; +} + +.services .step-item h6 { + margin-bottom: 20px; +} + +.services .item { + text-align: center; + padding: 60px; + background: #151921; + position: relative; +} + +.services .item .icon { + color: #12c2e9; + font-size: 40px; + margin-bottom: 40px; +} + +.services .item h6 { + margin-bottom: 15px; +} + +.services.lficon .item-box { + text-align: left; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + margin-top: 30px; + padding: 60px 40px; + border-radius: 20px; +} + +.services.lficon .item-box.no-curve { + border-radius: 5px; +} + +.services.lficon .item-box .icon { + text-align: center; +} + +.services.lficon .item-box .cont { + padding-left: 30px; +} + +.feat .items { + padding: 60px 40px; + position: relative; + z-index: 3; +} + +.feat .items:after { + content: ""; + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 1px; + background: #18191d; + z-index: -1; +} + +.feat .items:before { + content: ""; + position: absolute; + top: -1px; + left: -1px; + bottom: -1px; + right: 0px; + background: -webkit-gradient( + linear, + left top, + right top, + from(#12c2e9), + color-stop(#c471ed), + to(#f64f59) + ); + background: -webkit-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: -o-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: linear-gradient(to right, #12c2e9, #c471ed, #f64f59); + z-index: -2; + opacity: 0; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.feat .items .icon { + color: #aaa; + font-size: 70px; + margin-bottom: 30px; +} + +.feat .items .icon svg { + width: 1em; + height: 1em; +} + +.feat .items h5 { + font-size: 22px; + line-height: 1.5; + margin-bottom: 20px; +} + +.feat .items .more-stroke { + margin-top: 30px; +} + +.feat .items .more-stroke span { + width: 0; + height: 2px; + background: #fff; + position: relative; +} + +.feat .items .more-stroke span:after, +.feat .items .more-stroke span:before { + content: ""; + width: 0; + height: 2px; + background: #fff; + position: absolute; + right: -1px; +} + +.feat .items .more-stroke span:after { + -webkit-transform: rotate(40deg); + -ms-transform: rotate(40deg); + transform: rotate(40deg); + top: -4px; +} + +.feat .items .more-stroke span:before { + -webkit-transform: rotate(-40deg); + -ms-transform: rotate(-40deg); + transform: rotate(-40deg); + top: 4px; +} + +.feat .items.active:before { + opacity: 1; +} + +.feat .items.active .more-stroke span { + width: 30px; + -webkit-transition: width 0.3s; + -o-transition: width 0.3s; + transition: width 0.3s; +} + +.feat .items.active .more-stroke span:after, +.feat .items.active .more-stroke span:before { + width: 12px; + -webkit-transition: width 0.3s; + -o-transition: width 0.3s; + transition: width 0.3s; + -webkit-transition-delay: 0.3s; + -o-transition-delay: 0.3s; + transition-delay: 0.3s; +} + +.feat .items:hover .more-stroke span { + width: 30px; +} + +.feat .items:hover .more-stroke span:after, +.feat .items:hover .more-stroke span:before { + width: 12px; +} + +.serv-arch .item { + padding: 50px 30px; + position: relative; + z-index: 2; +} + +.serv-arch .item:after { + content: ""; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: #232323; + border: 1px solid rgba(255, 255, 255, 0.04); + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; + z-index: -1; +} + +.serv-arch .item.active:after { + opacity: 0.85; +} + +.serv-arch .item:hover:after { + opacity: 0.75; +} + +.serv-arch .item:hover p { + -webkit-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); + opacity: 1; +} + +.serv-arch .item .numb { + font-size: 60px; + font-weight: 700; + margin-bottom: 10px; + color: transparent; + -webkit-text-stroke: 1px #b19777; +} + +.serv-arch .item h5 { + text-transform: uppercase; + letter-spacing: 1px; +} + +.serv-arch .item p { + margin-top: 60px; + opacity: 0; + -webkit-transform: translateY(30px); + -ms-transform: translateY(30px); + transform: translateY(30px); + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.serv-arch .item .more { + margin-top: 50px; +} + +.min-area .img { + padding: 120px 0 120px 80px; + position: relative; + z-index: 3; +} + +.min-area .img:after { + content: ""; + position: absolute; + top: 0; + right: 120px; + bottom: 0; + left: -300px; + background: #18191d; + z-index: -1; +} + +.min-area .content { + padding-left: 40px; +} + +.min-area .content h4 { + font-weight: 700; + font-size: 40px; + line-height: 1.5; + margin-bottom: 20px; +} + +.min-area .content ul { + margin: 0; +} + +.min-area .content ul li { + margin-top: 25px; + padding-left: 25px; + position: relative; +} + +.min-area .content ul li:after { + content: ""; + width: 10px; + height: 10px; + border: 1px solid #999; + border-radius: 50%; + position: absolute; + left: 0; + top: 2px; +} + +.min-area .content ul.feat li { + padding: 0 0 30px 0; + border-bottom: 1px solid rgba(255, 255, 255, 0.05); +} + +.min-area .content ul.feat li:last-of-type { + padding: 0; + border: 0; +} + +.min-area .content ul.feat li:after { + display: none; +} + +.min-area .content ul.feat li h6 { + font-weight: 500; + margin-bottom: 5px; +} + +.min-area .content ul.feat li h6 span { + color: #12c2e9; + width: 30px; + height: 30px; + line-height: 30px; + text-align: center; + font-size: 13px; + border: 1px solid #12c2e9; + border-radius: 50%; + margin-right: 10px; +} + +.min-area .content ul.feat li p { + font-size: 13px; + padding-left: 45px; +} + +/* ====================== [ End services ] ====================== */ +/* ====================== [ Start brands ] ====================== */ +.clients .brands:hover img { + -webkit-transform: scale(0); + -ms-transform: scale(0); + transform: scale(0); + opacity: 0; +} + +.clients .brands:hover .link { + opacity: 1 !important; + -webkit-transition: all 0; + -o-transition: all 0; + transition: all 0; +} + +.clients .brands:hover .char { + -webkit-animation: fadeInUp 0.3s cubic-bezier(0.3, 0, 0.7, 1) both; + animation: fadeInUp 0.3s cubic-bezier(0.3, 0, 0.7, 1) both; + -webkit-animation-delay: calc(20ms * var(--char-index)); + animation-delay: calc(20ms * var(--char-index)); +} + +.clients .brands .item { + text-align: center; + border: 1px solid rgba(255, 255, 255, 0.08); + height: 160px; + line-height: 160px; +} + +.clients .brands .item.no-bord { + border: 0; + text-align: center; + height: 100px; + line-height: 100px; +} + +.clients .brands .img { + position: relative; +} + +.clients .brands .img img { + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; + max-width: 75px; + margin: auto; +} + +.clients .brands .img .link { + font-size: 13px; + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; + position: absolute; + top: 0; + left: 50%; + -webkit-transform: translateX(-50%); + -ms-transform: translateX(-50%); + transform: translateX(-50%); + opacity: 0; + -webkit-transition: all 0.3s; + -o-transition: all 0.3s; + transition: all 0.3s; +} + +.clients .bord .item { + margin-bottom: 30px; +} + +.clients-brand .brands:hover .img { + -webkit-transform: scale(0); + -ms-transform: scale(0); + transform: scale(0); + opacity: 0; +} + +.clients-brand .brands:hover .link { + opacity: 1 !important; + -webkit-transition: all 0; + -o-transition: all 0; + transition: all 0; +} + +.clients-brand .brands:hover .char { + -webkit-animation: fadeInUp 0.3s cubic-bezier(0.3, 0, 0.7, 1) both; + animation: fadeInUp 0.3s cubic-bezier(0.3, 0, 0.7, 1) both; + -webkit-animation-delay: calc(20ms * var(--char-index)); + animation-delay: calc(20ms * var(--char-index)); +} + +.clients-brand .item { + position: relative; + text-align: center; +} + +.clients-brand .item .link { + font-size: 16px; + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; + position: absolute; + top: 0; + left: 50%; + -webkit-transform: translateX(-50%); + -ms-transform: translateX(-50%); + transform: translateX(-50%); + opacity: 0; + -webkit-transition: all 0.3s; + -o-transition: all 0.3s; + transition: all 0.3s; +} + +.clients-brand .img { + max-width: 85px; + margin: auto; + position: relative; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +/* ====================== [ End brands ] ====================== */ +/* ====================== [ Start Work ] ====================== */ +.portfolio { + position: relative; +} + +.portfolio .filtering { + padding-left: 50px; +} + +.portfolio .filtering .filter { + padding: 15px; + background: rgba(255, 255, 255, 0.02); + border-radius: 30px; + display: inline-block; +} + +.portfolio .filtering span { + font-weight: 500; + font-size: 12px; + letter-spacing: 1px; + text-transform: uppercase; + margin: 0 20px; + cursor: pointer; + position: relative; +} + +.portfolio .filtering span.active { + color: #12c2e9; +} + +.portfolio .filtering span:after { + content: ""; + width: 7px; + height: 7px; + background: #12c2e9; + border-radius: 50%; + position: absolute; + right: -24px; + top: 40%; +} + +.portfolio .filtering span:last-of-type:after { + display: none; +} + +.portfolio .filtering.smplx .filter { + padding: 0; + background: transparent; + border-radius: 0; + display: inline-block; +} + +.portfolio .filtering.smplx span { + font-weight: 500; + font-size: 12px; + letter-spacing: 1px; + text-transform: uppercase; + margin: 0 20px; + cursor: pointer; + position: relative; +} + +.portfolio .filtering.smplx span.active { + color: #12c2e9; +} + +.portfolio .filtering.smplx span:after { + content: ""; + width: 7px; + height: 7px; + background: #12c2e9; + border-radius: 50%; + position: absolute; + right: -24px; + top: 40%; +} + +.portfolio .filtering.smplx span:last-of-type:after { + display: none; +} + +.portfolio .gallery .items { + padding: 0 50px; + margin: 50px 0; +} + +.portfolio .gallery .items.lg-mr { + margin-top: 100px; +} + +.portfolio .gallery .items .item-img { + overflow: hidden; + position: relative; + -webkit-clip-path: inset(0); + clip-path: inset(0); + -webkit-transition: all 0.3s; + -o-transition: all 0.3s; + transition: all 0.3s; +} + +.portfolio .gallery .items .item-img > a { + display: block; +} + +.portfolio .gallery .items .item-img:hover { + -webkit-clip-path: inset(5px 10px); + clip-path: inset(5px 10px); +} + +.portfolio .gallery .items .item-img:hover img { + -webkit-transform: scale(1.05); + -ms-transform: scale(1.05); + transform: scale(1.05); +} + +.portfolio .gallery .items .item-img:hover .cont { + opacity: 1; +} + +.portfolio .gallery .items .item-img img { + height: 100%; + width: 100%; + -o-object-fit: cover; + object-fit: cover; + -webkit-transition: all 0.5s; + -o-transition: all 0.5s; + transition: all 0.5s; +} + +.portfolio .gallery .items .item-img .cont { + position: absolute; + bottom: 15px; + left: 0; + text-align: left; + padding-left: 30px; + opacity: 0; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.portfolio .gallery .items .item-img .cont span { + color: #eee; + text-transform: uppercase; + letter-spacing: 2px; + font-size: 13px; +} + +.portfolio .gallery .items .item-img .cont span a { + margin: 0 10px 0 0; +} + +.portfolio .gallery .items .cont { + margin-top: 30px; + text-align: center; +} + +.portfolio .gallery .items .cont h6 { + font-weight: 600; + margin-bottom: 5px; +} + +.portfolio .gallery .items .cont span { + color: #999; + text-transform: uppercase; + letter-spacing: 2px; + font-weight: 400; + font-size: 13px; +} + +.portfolio .gallery .items .cont span a { + margin: 0 5px; +} + +.portfolio .gallery .bords .item-img { + padding: 10px; + border: 1px solid rgba(255, 255, 255, 0.03); +} + +.portfolio .gallery .bords .cont { + border: 1px solid rgba(255, 255, 255, 0.03); + margin-top: 0; + border-top: 0; + padding: 10px; +} + +.portfolio.three-column .gallery .items { + padding: 0 15px; + margin: 25px 0; +} + +.po-arch .filtering { + padding-left: 30px; +} + +.po-arch .filtering .filter { + padding: 0; + background: transparent; + border-radius: 0; + display: inline-block; +} + +.po-arch .filtering span { + font-weight: 400; + font-size: 15px; + letter-spacing: 2px; + text-transform: uppercase; + margin: 0 20px; + cursor: pointer; + position: relative; +} + +.po-arch .filtering span.active { + color: #b19777; +} + +.po-arch .filtering span:after { + display: none; +} + +.po-arch .gallery .items { + position: relative; +} + +.po-arch .gallery .items .cont { + text-align: left; + padding: 30px; + padding-left: 0; + background: #232323; + display: inline-block; + margin: 0; + position: relative; + margin-top: -30px; +} + +.po-arch .gallery .items .cont .tags a { + font-size: 17px; + margin: 0 10px 0 0; +} + +.po-arch .gallery .items .cont h5 { + font-weight: 500; + text-transform: uppercase; + letter-spacing: 1px; + margin: 0 0 5px 0; +} + +.portfolio-cr .filtering .filter { + display: inline-block; +} + +.portfolio-cr .filtering span { + color: #eee; + font-size: 13px; + font-weight: 500; + letter-spacing: 1px; + text-transform: uppercase; + margin: 8px 20px; + padding-bottom: 10px; + cursor: pointer; + position: relative; +} + +.portfolio-cr .filtering span:after { + content: ""; + width: 100%; + height: 2px; + background-color: #12c2e9; + position: absolute; + left: 0; + bottom: -10px; + opacity: 0; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.portfolio-cr .filtering .active { + color: #12c2e9; +} + +.portfolio-cr .filtering .active:after { + bottom: 0; + opacity: 1; +} + +.portfolio-cr .items { + padding: 0 15px; + margin-top: 30px; + width: 50%; + position: relative; + overflow: hidden; +} + +.portfolio-cr .items:hover .cont { + opacity: 1; + -webkit-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); +} + +.portfolio-cr .items.width2 { + width: 25%; +} + +.portfolio-cr .items .cont { + position: absolute; + bottom: 15px; + left: 30px; + right: 30px; + padding: 20px; + -webkit-backdrop-filter: blur(7px); + backdrop-filter: blur(7px); + background: rgba(12, 15, 22, 0.48); + border: 1px solid rgba(255, 255, 255, 0.3); + border-radius: 5px; + opacity: 0; + -webkit-transform: translateY(50%); + -ms-transform: translateY(50%); + transform: translateY(50%); + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.portfolio-cr .items .cont.flex { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.portfolio-cr .items .cont h6 { + font-size: 17px; + font-weight: 600; + line-height: 1.2; + margin-bottom: 5px; +} + +.portfolio-cr .items .cont span { + margin-left: auto; + text-transform: uppercase; + letter-spacing: 1px; + font-weight: 400; + font-size: 12px; +} + +.portfolio-cr .items .cont span a { + opacity: 0.7; + margin: 0 5px; + line-height: 1.2; +} + +.portfolio-frl .filtering .filter { + display: inline-block; +} + +.portfolio-frl .filtering span { + color: #eee; + font-size: 13px; + letter-spacing: 1px; + text-transform: uppercase; + margin: 8px 20px; + padding-bottom: 10px; + cursor: pointer; + position: relative; +} + +.portfolio-frl .filtering span:after { + content: ""; + width: 100%; + height: 2px; + background-color: #12c2e9; + position: absolute; + left: 0; + bottom: -10px; + opacity: 0; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.portfolio-frl .filtering .active { + color: #12c2e9; +} + +.portfolio-frl .filtering .active:after { + bottom: 0; + opacity: 1; +} + +.portfolio-frl .gallery .items { + padding: 0 40px; + margin: 40px 0; +} + +.portfolio-frl .gallery .items.lg-mr { + margin-top: 100px; +} + +.portfolio-frl .gallery .items .item-img { + overflow: hidden; + position: relative; + -webkit-transition: all 0.3s; + -o-transition: all 0.3s; + transition: all 0.3s; + background: rgba(255, 255, 255, 0.02); + padding: 30px; + border-radius: 5px; +} + +.portfolio-frl .gallery .items .item-img > a { + display: block; +} + +.portfolio-frl .gallery .items .item-img:hover img { + -webkit-clip-path: inset(5px 10px); + clip-path: inset(5px 10px); +} + +.portfolio-frl .gallery .items .item-img:hover .cont { + opacity: 1; +} + +.portfolio-frl .gallery .items .item-img img { + height: 100%; + width: 100%; + -webkit-clip-path: inset(0); + clip-path: inset(0); + -o-object-fit: cover; + object-fit: cover; + -webkit-transition: all 0.5s; + -o-transition: all 0.5s; + transition: all 0.5s; +} + +.portfolio-frl .gallery .items .cont { + margin-bottom: 30px; +} + +.portfolio-frl .gallery .items .cont h6 { + font-size: 22px; + font-weight: 500; + margin-bottom: 5px; +} + +.portfolio-frl .gallery .items .cont p { + font-size: 13px; +} + +.portfolio-frl .gallery .items .tags { + margin-top: 30px; +} + +.portfolio-frl .gallery .items .tags span { + padding: 8px 12px; + background: rgba(255, 255, 255, 0.04); + margin-right: 5px; + font-size: 12px; +} + +.portfolio.full-bg { + position: relative; +} + +.portfolio.full-bg .cluom { + height: 90vh; + padding: 0; + position: relative; + z-index: 2; + border-right: 1px solid rgba(255, 255, 255, 0.3); + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.portfolio.full-bg .cluom.current { + background: rgba(0, 0, 0, 0.3); +} + +.portfolio.full-bg .cluom:hover .info { + color: inherit; +} + +.portfolio.full-bg .cluom:hover .info:after { + height: 100%; +} + +.portfolio.full-bg .cluom:hover .more { + -webkit-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); + opacity: 1; +} + +.portfolio.full-bg .cluom .info { + padding: 40px 10px 40px 20px; + color: #fff; + position: relative; + z-index: 2; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; + overflow: hidden; +} + +.portfolio.full-bg .cluom .info:after { + content: ""; + position: absolute; + top: 0; + left: -2%; + width: 104%; + height: 0; + background: #fff; + z-index: -1; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.portfolio.full-bg .cluom .info h6 { + font-size: 11px; + font-weight: 400; + letter-spacing: 4px; + text-transform: uppercase; + margin-bottom: 10px; +} + +.portfolio.full-bg .cluom .info h5 { + font-size: 21px; +} + +.portfolio.full-bg .cluom .more { + position: absolute; + bottom: 50px; + right: 50px; + color: #fff; + font-size: 13px; + letter-spacing: 1px; + text-transform: uppercase; + -webkit-transform: translateY(20px); + -ms-transform: translateY(20px); + transform: translateY(20px); + opacity: 0; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.portfolio.full-bg .cluom .more i { + font-size: 10px; + margin-left: 2px; +} + +.portfolio.full-bg .glry-img, +.portfolio.full-bg .bg-img { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +.portfolio.full-bg .glry-img { + overflow: hidden; +} + +.portfolio.full-bg .glry-img .bg-img { + -webkit-transform: scale(1.1, 1.1); + -ms-transform: scale(1.1, 1.1); + transform: scale(1.1, 1.1); + opacity: 0; + -webkit-transition: all 0.7s; + -o-transition: all 0.7s; + transition: all 0.7s; + background-size: cover; + background-position: center center; +} + +.portfolio.full-bg .glry-img .bg-img.current { + -webkit-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); + opacity: 1; +} + +.work-carousel .swiper-slide { + padding: 0px 15px; +} + +.work-carousel .swiper-slide-active .noraidus .cont { + opacity: 1; + visibility: visible; + -webkit-transition-delay: 0.5s; + -o-transition-delay: 0.5s; + transition-delay: 0.5s; +} + +.work-carousel .next-ctrl, +.work-carousel .prev-ctrl { + color: #000; + width: 60px; + height: 60px; + border-radius: 0; + border: 0; + background: #fff; + opacity: 0; + -webkit-transition: all 0.3s; + -o-transition: all 0.3s; + transition: all 0.3s; +} + +.work-carousel .next-ctrl:after, +.work-carousel .prev-ctrl:after { + display: none; +} + +.work-carousel .simp-next, +.work-carousel .simp-prev { + color: #fff; + top: auto; + bottom: 0; +} + +.work-carousel .simp-next:after, +.work-carousel .simp-prev:after { + display: none; +} + +.work-carousel .simp-next { + right: 30px; +} + +.work-carousel .simp-prev { + left: 30px; +} + +.work-carousel:hover .next-ctrl, +.work-carousel:hover .prev-ctrl { + opacity: 1; +} + +.work-carousel .content { + position: relative; +} + +.work-carousel .content .item-img { + position: relative; + height: 480px; + line-height: 0; +} + +.work-carousel .content:hover .item-ig { + -webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); + clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); +} + +.work-carousel .content .cont { + position: relative; +} + +.work-carousel .content .cont h6 { + font-size: 12px; + font-weight: 500; + text-transform: uppercase; + letter-spacing: 2px; + margin-bottom: 10px; +} + +.work-carousel .content .cont h4 { + font-size: 17px; +} + +.work-carousel .content .cont .icon { + width: 35px; + height: 35px; + line-height: 35px; + text-align: center; + background: rgba(255, 255, 255, 0.03); + border-radius: 50%; + font-size: 12px; + position: absolute; + top: calc(50% - 17px); + right: 15px; +} + +.work-carousel .content .bgbox { + position: absolute; + bottom: 35px; + left: 35px; +} + +.work-carousel.caroul .content .item-img { + height: 480px; + position: relative; +} + +.work-carousel.caroul .content .item-img:after { + content: ""; + position: absolute; + top: 20px; + left: 20px; + bottom: 20px; + right: 20px; + background: #18191d; + opacity: 0; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.work-carousel.caroul .content .bgbox { + opacity: 0; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.work-carousel.caroul .content:hover .item-img:after { + opacity: 1; +} + +.work-carousel.caroul .content:hover .bgbox { + opacity: 1; +} + +.work-carousel .noraidus .item-img { + height: 480px; + border-radius: 0; +} + +.work-carousel .noraidus .cont { + position: absolute; + padding: 15px 30px; + background: #111215; + bottom: 0; + left: 50%; + -webkit-transform: translateX(-50%); + -ms-transform: translateX(-50%); + transform: translateX(-50%); + text-align: center; + opacity: 0; + visibility: hidden; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.work-carousel .noraidus .cont h6 { + font-size: 12px; + font-weight: 500; + text-transform: uppercase; + letter-spacing: 2px; + margin-bottom: 10px; +} + +.work-carousel .noraidus .cont h4 { + font-size: 17px; +} + +.work-carousel2 .swiper-slide { + padding: 0px 10px 50px; +} + +.work-carousel2 .swiper-slide .img { + border-radius: 3px; + overflow: hidden; + -webkit-transition: all 0.8s; + -o-transition: all 0.8s; + transition: all 0.8s; +} + +.work-carousel2 .swiper-slide-active .img { + -webkit-box-shadow: 0px 40px 30px -40px rgba(0, 0, 0, 0.3); + box-shadow: 0px 40px 30px -40px rgba(0, 0, 0, 0.3); +} + +.work-carousel2 .swiper-slide-active .img:after { + opacity: 1 !important; +} + +.work-carousel2 .swiper-slide-active .cont h6, +.work-carousel2 .swiper-slide-active .cont h4 { + opacity: 1 !important; + visibility: visible !important; + -webkit-transform: translateY(0px) !important; + -ms-transform: translateY(0px) !important; + transform: translateY(0px) !important; +} + +.work-carousel2 .swiper-pagination-progressbar { + position: absolute; + bottom: 0; + top: auto; + right: auto; + left: calc(50% - 120px); + width: 240px; + height: 2px; + border-radius: 10px; + background: #eee; +} + +.work-carousel2 + .swiper-pagination-progressbar + .swiper-pagination-progressbar-fill { + border-radius: 10px; + background: #1e1e1e; +} + +.work-carousel2 .swiper-button-next, +.work-carousel2 .swiper-button-prev { + color: #000; + width: 60px; + height: 60px; + border-radius: 0; + border: 0; + background: #fff; + opacity: 0; + -webkit-transition: all 0.3s; + -o-transition: all 0.3s; + transition: all 0.3s; +} + +.work-carousel2 .swiper-button-next:after, +.work-carousel2 .swiper-button-prev:after { + display: none; +} + +.work-carousel2:hover .swiper-button-next, +.work-carousel2:hover .swiper-button-prev { + opacity: 1; +} + +.work-carousel2 .content { + position: relative; +} + +.work-carousel2 .content .img { + position: relative; + line-height: 0; +} + +.work-carousel2 .content .img:after { + content: ""; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: -webkit-gradient( + linear, + left bottom, + left top, + from(rgba(0, 0, 0, 0.7)), + to(transparent) + ); + background: -webkit-linear-gradient(bottom, rgba(0, 0, 0, 0.7), transparent); + background: -o-linear-gradient(bottom, rgba(0, 0, 0, 0.7), transparent); + background: linear-gradient(to top, rgba(0, 0, 0, 0.7), transparent); + opacity: 0; + -webkit-transition: all 0.5s; + -o-transition: all 0.5s; + transition: all 0.5s; +} + +.work-carousel2 .content .cont { + position: absolute; + bottom: 40px; + left: 40px; + color: #fff; +} + +.work-carousel2 .content .cont h6 { + font-size: 13px; + font-weight: 500; + text-transform: uppercase; + letter-spacing: 4px; + margin-bottom: 10px; + opacity: 0; + visibility: hidden; + -webkit-transform: translateY(-20px); + -ms-transform: translateY(-20px); + transform: translateY(-20px); + -webkit-transition: all 0.7s; + -o-transition: all 0.7s; + transition: all 0.7s; + -webkit-transition-delay: 0.5s; + -o-transition-delay: 0.5s; + transition-delay: 0.5s; +} + +.work-carousel2 .content .cont h4 { + font-weight: 600; + opacity: 0; + visibility: hidden; + -webkit-transform: translateY(20px); + -ms-transform: translateY(20px); + transform: translateY(20px); + -webkit-transition: all 0.7s; + -o-transition: all 0.7s; + transition: all 0.7s; + -webkit-transition-delay: 0.5s; + -o-transition-delay: 0.5s; + transition-delay: 0.5s; +} + +.work-carousel2.mcolumn .swiper-slide { + padding: 0px; +} + +.work-carousel2.mcolumn .swiper-slide .img { + border-radius: 0; +} + +.work-carousel2.mcolumn .swiper-slide-active .img { + -webkit-box-shadow: none; + box-shadow: none; +} + +.work-carousel2.mcolumn .swiper-slide-active .img:after { + opacity: 1 !important; +} + +.case-study { + position: relative; +} + +.case-study .swiper-slide .container { + min-height: 75vh; + padding: 100px 30px; +} + +.case-study .swiper-slide.bg-img { + background-position: center !important; +} + +.case-study .swiper-slide .cont span { + padding: 12px 30px; + border: 1px solid rgba(255, 255, 255, 0.3); + border-radius: 30px; + font-size: 13px; + margin-bottom: 50px; +} + +.case-study .swiper-slide .cont h6 { + font-size: 17px; + text-transform: uppercase; + letter-spacing: 1px; + margin-bottom: 15px; +} + +.case-study .swiper-slide .cont h4 { + font-size: 60px; + text-transform: uppercase; + letter-spacing: 1px; +} + +.case-study .controls { + position: absolute; + top: 50%; + -webkit-transform: translateY(-50%); + -ms-transform: translateY(-50%); + transform: translateY(-50%); + right: 150px; + z-index: 4; +} + +.case-study .controls .swiper-button-next, +.case-study .controls .swiper-button-prev { + position: static; + width: 60px; + height: 60px; + line-height: 60px; + text-align: center; + border: 1px solid #eee; + color: #fff; + display: block; + margin: 5px auto; + cursor: pointer; +} + +.case-study .controls .swiper-button-next:after, +.case-study .controls .swiper-button-prev:after { + display: none; +} + +.half-bg { + position: absolute; + left: 0; + width: 100%; + height: 200px; + background: #18191d; + z-index: 1; +} + +.half-bg.bottom { + bottom: 0; +} + +.half-bg.top { + top: 0; +} + +.half-bg.not-sub { + background: #0c0f16; +} + +.works .lg-space > div { + padding: 0 50px; + margin-bottom: 50px; +} + +.next-prog .box { + position: relative; +} + +.next-prog .box .bg-img { + height: 320px; + width: 320px; + border-radius: 50%; + margin: auto; + background-position: center center; + position: relative; +} + +.next-prog .box .bg-img:before { + border-radius: 50%; +} + +.next-prog .box .caption, +.next-prog .box .copy-cap { + position: absolute; + top: 0; + left: 50%; + height: 100%; + -webkit-transform: translateX(-50%); + -ms-transform: translateX(-50%); + transform: translateX(-50%); +} + +.next-prog .box .caption h1, +.next-prog .box .copy-cap h1 { + font-size: 55px; + font-weight: 800; + display: block; + min-width: 700px; + text-align: center; + margin: auto; +} + +.next-prog .box .caption h1 .stroke, +.next-prog .box .copy-cap h1 .stroke { + display: inline-block; + color: transparent; + -webkit-text-stroke: 1px #fff; +} + +.next-prog .box .copy-cap { + z-index: -1; +} + +/* ====================== [ End Work ] ====================== */ +/* ====================== [ Start services ] ====================== */ +.process .coulmn { + position: relative; +} + +.process .coulmn:after { + position: absolute; + content: ""; + width: 75px; + border-top: 2px dashed #12c2e9; + top: 75px; + right: -35px; +} + +.process .item { + text-align: center; +} + +.process .item .bg-img { + width: 150px; + height: 150px; + border-radius: 50%; + margin: 0 auto 30px; + text-align: center; + position: relative; +} + +.process .item .bg-img:after { + content: ""; + position: absolute; + top: 7px; + left: 7px; + right: 7px; + bottom: 7px; + border-radius: 50%; + background: rgba(0, 0, 0, 0.25); +} + +.process .item .bg-img h3 { + color: #fff; + font-size: 40px; + font-weight: 300; + line-height: 150px; + position: relative; + z-index: 3; +} + +/* ====================== [ End services ] ====================== */ +/* ====================== [ Start progress bar ] ====================== */ +.skills-circle .item { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.skills-circle .skill { + position: relative; +} + +.skills-circle .skill span { + width: 100px; + height: 100px; + line-height: 100px; + text-align: center; + border-radius: 50%; + position: absolute; + top: 50%; + left: 50%; + -webkit-transform: translateX(-50px) translateY(-50px); + -ms-transform: translateX(-50px) translateY(-50px); + transform: translateX(-50px) translateY(-50px); + font-size: 20px; + font-weight: 300; +} + +.skills-circle .cont { + padding-top: 25px; + padding-left: 25px; +} + +.skills-circle .cont span { + font-size: 12px; + font-weight: 300; + opacity: 0.9; + margin-bottom: 10px; +} + +.skills-circle .cont h6 { + font-size: 15px; + font-weight: 500; +} + +.skills-box .skill-item { + margin-bottom: 50px; +} + +.skills-box .skill-item:last-of-type { + margin-bottom: 0; +} + +.skills-box h6 { + font-size: 13px; + font-weight: 300; + text-transform: uppercase; + letter-spacing: 2px; + margin-bottom: 10px; +} + +.skills-box .skill-progress { + height: 7px; + background-color: rgba(255, 255, 255, 0.05); + position: relative; +} + +.skills-box .skill-progress .progres { + position: absolute; + height: 100%; + width: 0; + top: 0; + left: 0; + background: -webkit-gradient( + linear, + left top, + right top, + from(#12c2e9), + color-stop(#c471ed), + to(#f64f59) + ); + background: -webkit-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: -o-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: linear-gradient(to right, #12c2e9, #c471ed, #f64f59); + -webkit-transition: all 1.5s; + -o-transition: all 1.5s; + transition: all 1.5s; +} + +.skills-box .skill-progress .progres:after { + content: attr(data-value); + position: absolute; + right: 10px; + top: -45px; + padding: 7px 15px; + border-radius: 5px; + background: rgba(255, 255, 255, 0.05); + font-size: 12px; + font-weight: 600; +} + +.skills-box .skill-progress .progres:before { + content: ""; + width: 0; + height: 0; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + border-top: 8px solid rgba(255, 255, 255, 0.05); + position: absolute; + right: 15px; + bottom: 12px; +} + +/* ====================== [ End progress bar ] ====================== */ +/* ====================== [ Start tabs & list ] ====================== */ +.smp-list { + margin: 0; +} + +.smp-list li { + margin-top: 20px; + font-size: 15px; + font-weight: 300; + padding-left: 20px; + position: relative; +} + +.smp-list li:after { + content: ""; + position: absolute; + left: 0; + top: 50%; + width: 5px; + height: 1px; + background: #12c2e9; +} + +/* ====================== [ Start tabs & list ] ====================== */ +/* ====================== [ Start Team ] ====================== */ +.team { + position: relative; +} + +.team .item { + padding: 0 25px; +} + +.team .item.cir .img { + position: relative; +} + +.team .item.cir .img:hover:after { + opacity: 1; + -webkit-transform: rotate(4deg); + -ms-transform: rotate(4deg); + transform: rotate(4deg); +} + +.team .item.cir .img:hover #circle1, +.team .item.cir .img:hover #circle2, +.team .item.cir .img:hover #circle3, +.team .item.cir .img:hover #circle4, +.team .item.cir .img:hover .info { + opacity: 1; +} + +.team .item.cir .img:hover:before { + opacity: 0.5; +} + +.team .item.cir .img:after { + content: ""; + position: absolute; + top: 5px; + left: 0; + right: 0; + bottom: 5px; + background: -webkit-gradient( + linear, + left top, + right top, + from(#12c2e9), + color-stop(#c471ed), + to(#f64f59) + ); + background: -webkit-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: -o-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: linear-gradient(to right, #12c2e9, #c471ed, #f64f59); + opacity: 0; + z-index: -1; + -webkit-transition: all 0.7s; + -o-transition: all 0.7s; + transition: all 0.7s; +} + +.team .item.cir .img:before { + content: ""; + position: absolute; + top: 0px; + left: 0; + right: 0; + bottom: 0px; + background: #000; + opacity: 0; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.team .item.cir .info { + position: absolute; + bottom: 15px; + left: 15px; + opacity: 0; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; + z-index: 2; +} + +.team .item.cir .info span { + font-size: 13px; + color: #12c2e9; +} + +.team .item .img { + position: relative; +} + +.team .item .img:hover:after { + opacity: 1; + -webkit-transform: rotate(4deg); + -ms-transform: rotate(4deg); + transform: rotate(4deg); +} + +.team .item .img:hover #circle1, +.team .item .img:hover #circle2, +.team .item .img:hover #circle3, +.team .item .img:hover #circle4, +.team .item .img:hover .info { + opacity: 1; +} + +.team .item .img:hover:before { + opacity: 0.3; +} + +.team .item .img:after { + content: ""; + position: absolute; + top: 5px; + left: 0; + right: 0; + bottom: 5px; + background: -webkit-gradient( + linear, + left top, + right top, + from(#12c2e9), + color-stop(#c471ed), + to(#f64f59) + ); + background: -webkit-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: -o-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: linear-gradient(to right, #12c2e9, #c471ed, #f64f59); + opacity: 0; + z-index: -1; + -webkit-transition: all 0.7s; + -o-transition: all 0.7s; + transition: all 0.7s; +} + +.team.bord .item:hover .img:after { + border-color: #12c2e9; + opacity: 1; + -webkit-transform: rotate(0deg) !important; + -ms-transform: rotate(0deg) !important; + transform: rotate(0deg) !important; +} + +.team.bord .item .img { + padding: 30px; +} + +.team.bord .item .img:after { + content: ""; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 5px; + background: transparent; + border: 1px solid #fff; + opacity: 0.1; + -webkit-transform: rotate(-5deg); + -ms-transform: rotate(-5deg); + transform: rotate(-5deg); + z-index: -1; + -webkit-transition: all 0.7s; + -o-transition: all 0.7s; + transition: all 0.7s; +} + +.team.bord .item .img.left:after { + -webkit-transform: rotate(5deg); + -ms-transform: rotate(5deg); + transform: rotate(5deg); +} + +.team.bord .item .info { + margin-top: 15px; + text-align: center; +} + +.team.bord .item .info span { + font-size: 13px; + color: #12c2e9; +} + +.team .slick-dots { + bottom: -40px; +} + +.team .slick-dots li.slick-active button { + background: #12c2e9; +} + +.team .slick-dots li button { + width: 10px; + height: 10px; + border-radius: 50%; + opacity: 0.8; +} + +.team .slick-dots li button:before { + content: ""; + width: 4px; + height: 4px; + border-radius: 50%; + position: absolute; + top: 4px; + left: 4px; + line-height: 1; + background: #12c2e9; + opacity: 1; +} + +.team .dots-half { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 70%; + z-index: -2; +} + +#circle1, +#circle2, +#circle3, +#circle4 { + position: absolute; + top: -30%; + right: -50%; + width: 100%; + padding-bottom: 100%; + overflow: hidden; + pointer-events: none; + opacity: 0; + -webkit-transition: opacity 0.4s; + -o-transition: opacity 0.4s; + transition: opacity 0.4s; +} + +#circle1 text, +#circle2 text, +#circle3 text, +#circle4 text { + font-size: 13px; + letter-spacing: 4px; +} + +#circle1 svg, +#circle2 svg, +#circle3 svg, +#circle4 svg { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 300px; + -webkit-animation-name: rotate; + -moz-animation-name: rotate; + -ms-animation-name: rotate; + -o-animation-name: rotate; + animation-name: rotate; + -webkit-animation-duration: 8s; + -moz-animation-duration: 8s; + -ms-animation-duration: 8s; + -o-animation-duration: 8s; + animation-duration: 8s; + -webkit-animation-iteration-count: infinite; + -moz-animation-iteration-count: infinite; + -ms-animation-iteration-count: infinite; + -o-animation-iteration-count: infinite; + animation-iteration-count: infinite; + -webkit-animation-timing-function: linear; + -moz-animation-timing-function: linear; + -ms-animation-timing-function: linear; + -o-animation-timing-function: linear; + animation-timing-function: linear; +} + +@-webkit-keyframes rotate { + from { + -webkit-transform: rotate(360deg); + } + + to { + -webkit-transform: rotate(0); + } +} + +@-moz-keyframes rotate { + from { + -moz-transform: rotate(360deg); + } + + to { + -moz-transform: rotate(0); + } +} + +@-ms-keyframes rotate { + from { + -ms-transform: rotate(360deg); + } + + to { + -ms-transform: rotate(0); + } +} + +@-o-keyframes rotate { + from { + -o-transform: rotate(360deg); + } + + to { + -o-transform: rotate(0); + } +} + +@keyframes rotate { + from { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } + + to { + -webkit-transform: rotate(0); + transform: rotate(0); + } +} + +/* ====================== [ End Team ] ====================== */ +/* ====================== [ Start Testimonials ] ====================== */ +.testimonials .container-fluid { + width: 140%; + margin-left: -20%; +} + +.testimonials .item { + text-align: left; + padding: 80px 40px; + -webkit-transform: scale(0.8); + -ms-transform: scale(0.8); + transform: scale(0.8); + background: -webkit-linear-gradient( + 323.53deg, + #18191d 6.69%, + rgba(2, 2, 30, 0) 85.43% + ); + background: -o-linear-gradient( + 323.53deg, + #18191d 6.69%, + rgba(2, 2, 30, 0) 85.43% + ); + background: linear-gradient( + 126.47deg, + #18191d 6.69%, + rgba(2, 2, 30, 0) 85.43% + ); + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; + display: -webkit-box; + display: -ms-flexbox; + display: flex !important; +} + +.testimonials .slick-center .item { + -webkit-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); +} + +.testimonials .item p { + color: #fff; + font-size: 28px; + font-weight: 600; + padding-left: 30px; + margin-left: 30px; + border-left: 1px solid rgba(255, 255, 255, 0.1); +} + +.testimonials .item .info { + min-width: 120px; +} + +.testimonials .item .info.inf-lrg { + min-width: 160px; +} + +.testimonials .item .info .img { + width: 80px; + height: 80px; + border: 7px solid #25262c; + border-radius: 50%; + overflow: hidden; + margin-bottom: 20px; +} + +.testimonials .item .info .author-name { + margin-bottom: 5px; + font-weight: 600; + font-size: 15px; +} + +.testimonials .item .info .author-details { + font-size: 13px; +} + +.testimonials .slick-dots { + bottom: -30px; +} + +.testimonials .slick-dots li { + width: 7px; + height: 7px; + border-radius: 50%; + border: 1px solid #eee; +} + +.testimonials .slick-dots li.slick-active { + background: #eee; +} + +.testimonials .slick-dots li button { + display: none; +} + +.testimonials .arrows { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +.testimonials .arrows .container { + position: relative; + height: 100%; +} + +.testimonials .arrows .next, +.testimonials .arrows .prev { + position: absolute; + top: 50%; + right: -50px; + width: 50px; + height: 50px; + line-height: 55px; + text-align: center; + font-size: 20px; + border: 1px solid #eee; + border-radius: 50%; + opacity: 0; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.testimonials .arrows .next:hover, +.testimonials .arrows .prev:hover { + border-color: #12c2e9; +} + +.testimonials .arrows .prev { + right: auto; + left: -50px; +} + +.testimonials:hover .arrows .next, +.testimonials:hover .arrows .prev { + opacity: 1; + right: 17%; +} + +.testimonials:hover .arrows .prev { + left: 17%; +} + +.testimonials.lftstl .item { + text-align: left; +} + +.testimonials.lftstl .item .info .author .lxleft { + display: table-cell; + vertical-align: middle; +} + +.testimonials.lftstl .item .info .author .lxleft .img { + margin: 0; +} + +.testimonials.lftstl .item .info .author .fxright { + display: table-cell; + padding: 20px; +} + +.testimonials.lftstl .slick-dots { + text-align: right; +} + +.block-sec .vid-area { + position: absolute; + top: -100px; + left: 10%; + padding: 30px 15px; + background: #ffff; + text-align: center; + z-index: 2; +} + +.block-sec .vid-area:after { + content: ""; + position: absolute; + top: 0px; + left: -10px; + right: -10px; + bottom: -10px; + background: #fff; + opacity: 0.2; + z-index: -1; +} + +.block-sec .vid-area .vid-icon { + margin-top: 50px; +} + +.block-sec .vid-area .vid-icon .vid { + width: 40px; + height: 40px; + border-radius: 50%; + text-align: center; + line-height: 40px; + border: 2px solid #000; +} + +.block-sec .vid-area .vid-icon .vid span { + font-size: 10px; + color: #000; +} + +.block-sec .vid-area .text { + color: #000; + font-size: 12px; + font-weight: 600; + text-transform: uppercase; + -webkit-transform: rotate(-90deg); + -ms-transform: rotate(-90deg); + transform: rotate(-90deg); + margin-top: 30px; +} + +.block-sec .testim-box { + position: relative; + padding: 80px 40px; + margin-bottom: -120px; + z-index: 2; +} + +.block-sec .testim-box:after { + content: ""; + position: absolute; + left: -10px; + top: -10px; + right: -10px; + bottom: -10px; + background: -webkit-gradient( + linear, + left top, + right top, + from(#12c2e9), + color-stop(#c471ed), + to(#f64f59) + ); + background: -webkit-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: -o-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: linear-gradient(to right, #12c2e9, #c471ed, #f64f59); + z-index: -4; +} + +.block-sec .testim-box:before { + content: ""; + position: absolute; + left: 0px; + top: 0px; + right: 0px; + bottom: 0px; + background: #111215; + z-index: -1; +} + +.block-sec .testim-box .head-box h6 { + color: #12c2e9; + font-size: 12px; + font-weight: 300; + text-transform: uppercase; + letter-spacing: 4px; + margin-bottom: 10px; +} + +.block-sec .testim-box .head-box h4 { + margin-bottom: 40px; +} + +.block-sec .testim-box .item p { + font-size: 17px; + margin-bottom: 30px; + padding-bottom: 30px; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); +} + +.block-sec .testim-box .item .info .img { + display: table-cell; + vertical-align: middle; +} + +.block-sec .testim-box .item .info .img .img-box { + width: 70px; + height: 70px; + border-radius: 50%; + overflow: hidden; +} + +.block-sec .testim-box .item .info .cont { + display: table-cell; + vertical-align: middle; + padding-left: 15px; +} + +.block-sec .testim-box .item .info .cont .author-name { + font-size: 16px; + margin-bottom: 5px; + letter-spacing: 2px; + text-transform: uppercase; +} + +.block-sec .testim-box .item .info .cont .author-details { + font-size: 13px; + font-weight: 300; + text-transform: uppercase; +} + +.block-sec .testim-box .slick-dots { + text-align: right; +} + +.block-sec .testim-box .slick-dots li { + width: 7px; + height: 7px; + border-radius: 50%; + border: 1px solid #12c2e9; +} + +.block-sec .testim-box .slick-dots li.slick-active { + background: #12c2e9; +} + +.block-sec .testim-box .slick-dots li button { + display: none; +} + +.clients-brand .item a { + width: 80px; + opacity: 0.5; +} + +.clients-brand .item a:hover { + opacity: 1; +} + +/* ====================== [ End Testimonials ] ====================== */ +/* ====================== [ Start Blog ] ====================== */ +.blog .item .cont { + margin-top: 30px; + position: relative; + z-index: 2; +} + +.blog .item .info { + margin-bottom: 10px; + font-size: 12px; +} + +.blog .item .info .date { + margin-right: 15px; +} + +.blog .item .info .date span i { + font-style: normal; +} + +.blog .item .info span { + text-transform: uppercase; + letter-spacing: 3px; + font-size: 10px; + color: #aaa; +} + +.blog .item .info .tag { + margin-left: 15px; +} + +.blog .item .info .tag span { + color: #12c2e9; +} + +.blog .item h5 { + font-size: 28px; + font-weight: 400; +} + +.blog .item .btn-more { + margin-top: 15px; + color: #eee; +} + +.blog .item .btn-more a { + font-size: 12px; + letter-spacing: 2px; +} + +.blog-crv .stories { + position: relative; + padding: 20px; +} + +.blog-crv .controls { + width: 100px; + height: 100px; + border-radius: 50%; + line-height: 100px; + text-align: center; + background: #fff; + position: absolute; + top: calc(50% - 50px); + left: calc(50% - 50px); + z-index: 3; +} + +.blog-crv .controls:after { + content: ""; + position: absolute; + right: -10px; + top: -10px; + bottom: -10px; + left: -10px; + background: rgba(220, 220, 220, 0.2); + border-radius: 50%; + z-index: -1; +} + +.blog-crv .controls .swiper-button-next.next-ctrl, +.blog-crv .controls .swiper-button-prev.prev-ctrl { + position: absolute; + left: calc(50% - 15px); + right: auto; + color: #ccc; + z-index: 4; + cursor: pointer; + font-size: 28px; + width: 30px; + height: 30px; +} + +.blog-crv .controls .swiper-button-next.next-ctrl:after, +.blog-crv .controls .swiper-button-prev.prev-ctrl:after { + display: none; +} + +.blog-crv .controls .swiper-button-next.next-ctrl { + top: 22px; + bottom: auto; +} + +.blog-crv .controls .swiper-button-prev.prev-ctrl { + bottom: 0px; + top: auto; +} + +.blog-crv .controls .swiper-pagination-fraction { + position: static; +} + +.blog-crv .controls .swiper-pagination-fraction span { + margin: 0 7px; + font-weight: 600; + color: #444; +} + +.blog-crv .controls .swiper-pagination-fraction .swiper-pagination-current { + position: relative; +} + +.blog-crv + .controls + .swiper-pagination-fraction + .swiper-pagination-current:after { + content: "/"; + position: absolute; + right: -11px; + top: 0; + font-size: 10px; + color: #ccc; +} + +.blog-crv .item .img { + border-radius: 3px; + overflow: hidden; +} + +.blog-crv .item .content { + padding: 30px 65px; + text-align: center; +} + +.blog-crv .item .content .tags { + text-transform: uppercase; + letter-spacing: 2px; + font-size: 13px; + margin-bottom: 20px; +} + +.blog-crv .item .content .tags a { + margin: 0 7px; +} + +.blog-crv .item .content .info { + margin-bottom: 10px; +} + +.blog-crv .item .content .info a { + margin: 0 10px; + font-weight: 400; + color: #12c2e9; + font-size: 13px; +} + +.blog-crv .item .content .title { + margin-bottom: 10px; +} + +.blog-crv .item .content .title h4 { + font-weight: 600; + line-height: 1.5; +} + +.blog-crv .item .content .more a { + font-size: 14px; + letter-spacing: 1px; + margin-top: 20px; + border-bottom: 1px solid rgba(200, 200, 200, 0.1); +} + +.blog-grid .item { + padding: 40px; + position: relative; +} + +.blog-grid .item:after { + content: ""; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: #18191d; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.blog-grid .item.active:after { + opacity: 0.85; +} + +.blog-grid .item:hover:after { + opacity: 0.7; +} + +.blog-grid .item .cont { + position: relative; + z-index: 2; +} + +.blog-grid .item .cont .date { + text-transform: uppercase; + margin-bottom: 100px; +} + +.blog-grid .item .cont .date i { + font-size: 30px; + font-style: normal; + display: block; +} + +.blog-grid .item .cont .info { + margin-bottom: 20px; +} + +.blog-grid .item .cont .info .author { + font-weight: 500; + text-transform: uppercase; + letter-spacing: 1px; + margin-right: 10px; +} + +.blog-grid .item .cont .info .tag { + color: #12c2e9; + margin-left: 10px; +} + +.blog-grid .item .cont h6 { + line-height: 1.7; + margin-bottom: 40px; +} + +.blog-grid .item.list { + padding: 0; +} + +.blog-grid .item.list:after { + display: none; +} + +.blog-grid .item.list .cont { + background: #13161d; + padding: 30px; + position: relative; +} + +.blog-grid .item.list .cont .date { + position: absolute; + top: -40px; + right: 15px; + padding: 5px 15px; + background: #12c2e9; + color: #222; + font-size: 12px; + font-weight: 500; + text-align: center; + z-index: 2; +} + +.blog-grid .item.list .cont .date i { + font-size: 20px; +} + +.blog-grid .item.list .cont .date:after { + content: ""; + position: absolute; + top: -5px; + left: -5px; + right: -5px; + bottom: -5px; + border: 5px solid rgba(255, 255, 255, 0.1); +} + +.blog-list .head h6 { + display: inline-block; + padding: 7px 12px; + font-size: 15px; + border-radius: 10px; + margin-bottom: 15px; +} + +.blog-list .head h3 { + font-weight: 600; + margin-bottom: 5px; +} + +.blog-list .head a { + font-size: 12px; + text-transform: uppercase; + letter-spacing: 10px; + margin-top: 40px; + padding-bottom: 10px; + position: relative; +} + +.blog-list .head a:after { + content: ""; + position: absolute; + bottom: 0; + left: 0; + height: 1px; + width: 40%; + background: -webkit-gradient( + linear, + left top, + right top, + from(#12c2e9), + color-stop(#c471ed), + to(#f64f59) + ); + background: -webkit-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: -o-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: linear-gradient(to right, #12c2e9, #c471ed, #f64f59); + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.blog-list .head a:hover:after { + width: 100%; +} + +.blog-list .item { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + padding-bottom: 30px; + margin-bottom: 50px; + border-bottom: 1px solid rgba(255, 255, 255, 0.2); +} + +.blog-list .item:last-of-type { + margin-bottom: 0; + padding-bottom: 0; + border: none; +} + +.blog-list .item .img { + width: 350px; +} + +.blog-list .item .cont { + padding-left: 30px; +} + +.blog-list .item .info { + margin-bottom: 15px; + font-size: 12px; +} + +.blog-list .item .info .date { + margin-right: 15px; +} + +.blog-list .item .info .date span i { + font-style: normal; +} + +.blog-list .item .info span { + text-transform: uppercase; + letter-spacing: 3px; + font-size: 10px; + color: #aaa; +} + +.blog-list .item .info .tag { + margin-left: 15px; +} + +.blog-list .item .info .tag span { + color: #12c2e9; +} + +.blog-list .item h5 { + font-size: 22px; + font-weight: 500; +} + +.blog-pg .posts .item .img { + position: relative; +} + +.blog-pg .posts .item .content { + padding-top: 25px; +} + +.blog-pg .posts .item .content .date { + margin-right: 15px; + text-transform: uppercase; + font-size: 12px; +} + +.blog-pg .posts .item .content .date .num { + font-size: 12px; +} + +.blog-pg .posts .item .content .tags { + margin-bottom: 10px; + display: inline-block; +} + +.blog-pg .posts .item .content .tags a { + font-size: 12px; + font-weight: 500; + color: #12c2e9; + padding-right: 20px; + position: relative; +} + +.blog-pg .posts .item .content .tags a:after { + content: ""; + width: 8px; + height: 1px; + background: #eee; + position: absolute; + right: 4px; + top: 50%; +} + +.blog-pg .posts .item .content .tags a:last-of-type { + padding-right: 0; +} + +.blog-pg .posts .item .content .tags a:last-of-type:after { + display: none; +} + +.blog-pg .posts .item .content h4 { + line-height: 1.6; + margin-bottom: 5px; +} + +.blog-pg .posts .pagination { + margin: 80px auto 0; + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; + text-align: center; +} + +.blog-pg .posts .pagination span { + text-align: center; + margin: 0 2px; +} + +.blog-pg .posts .pagination span a { + width: 50px; + height: 50px; + line-height: 50px; + border: 1px solid #eee; + font-size: 18px; +} + +.blog-pg .posts .pagination span.active a { + border-color: #12c2e9; + color: #12c2e9; +} + +.blog-pg.blog-list .item { + display: block; +} + +.blog-pg.blog-list .item .img { + width: 100%; +} + +.blog-pg.blog-list .item .cont { + padding-left: 60px; +} + +.blog-pg.single .post .main-img .simpleParallax { + height: 70vh; + max-height: 600px; +} + +.blog-pg.single .post .main-img img { + width: 100%; + height: 100%; + -o-object-fit: cover; + object-fit: cover; + -o-object-position: center center; + object-position: center center; +} + +.blog-pg.single .post .content p { + font-size: 16px; + font-family: inherit; + margin: 30px 0; +} + +.blog-pg.single .post .content ul li { + margin: 10px 0; +} + +.blog-pg.single .post .content ul li span { + margin-right: 10px; + font-weight: 500; + font-size: 13px; +} + +.blog-pg.single .post .content .quotes { + background: rgba(255, 255, 255, 0.02); + padding: 30px; + margin: 30px 0; +} + +.blog-pg.single .post .content .quotes p { + font-size: 18px; + font-style: italic; +} + +.blog-pg.single .post .content .spacial p { + font-size: 18px; + font-weight: 500; +} + +.blog-pg.single .post .content .share-info { + margin-top: 20px; + padding-top: 10px; + border-top: 1px solid #999; + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.blog-pg.single .post .content .share-info .social a { + font-size: 13px; + margin-right: 20px; +} + +.blog-pg.single .post .content .share-info .tags { + margin-left: auto; +} + +.blog-pg.single .post .content .share-info .tags a { + font-size: 12px; + margin: 0 10px; +} + +.blog-pg.single .post .author { + padding: 30px; + margin-top: 40px; + background: rgba(255, 255, 255, 0.02); +} + +.blog-pg.single .post .author .author-img { + display: table-cell; + vertical-align: middle; + width: 140px; +} + +.blog-pg.single .post .author .info { + display: table-cell; + padding-left: 40px; +} + +.blog-pg.single .post .author .info h6 { + margin-bottom: 10px; + font-size: 15px; +} + +.blog-pg.single .post .author .info h6 span { + text-transform: uppercase; + margin-right: 10px; +} + +.blog-pg.single .post .author .info p { + padding: 0; + margin: 0; +} + +.blog-pg.single .post .author .info .social { + margin-top: 15px; + font-size: 13px; +} + +.blog-pg.single .post .author .info .social a { + margin-right: 15px; +} + +.blog-pg.single .pagination { + margin-top: 80px; + border-top: 1px solid rgba(255, 255, 255, 0.1); + border-bottom: 1px solid rgba(255, 255, 255, 0.1); + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.blog-pg.single .pagination span { + width: 100%; + padding: 20px; + border-right: 1px solid rgba(255, 255, 255, 0.1); + border-left: 1px solid rgba(255, 255, 255, 0.1); + text-transform: uppercase; + font-weight: 500; + font-size: 13px; + letter-spacing: 1px; +} + +.blog-pg.single .pagination .icon { + border: 0; + width: 70px; +} + +.blog-pg.single .comments-area { + margin-top: 80px; +} + +.blog-pg.single .comments-area .item { + padding: 30px 0; + margin: 30px 0; + border-bottom: 1px solid rgba(255, 255, 255, 0.1); +} + +.blog-pg.single .comments-area .item.relped { + margin-left: 100px; +} + +.blog-pg.single .comments-area .item .comment-img { + display: table-cell; + width: 80px; +} + +.blog-pg.single .comments-area .item .info { + display: table-cell; + vertical-align: middle; + padding-left: 40px; + position: relative; +} + +.blog-pg.single .comments-area .item .info h6 { + font-size: 14px; + text-transform: uppercase; + letter-spacing: 1px; + font-weight: 500; +} + +.blog-pg.single .comments-area .item .info h6 span { + display: block; + color: #12c2e9; + font-size: 12px; + font-weight: 400; + margin-top: 5px; +} + +.blog-pg.single .comments-area .item .info p { + line-height: 1.5; + margin-top: 15px; +} + +.blog-pg.single .comments-area .item .info .replay { + position: absolute; + right: 0; + top: 0; + font-size: 13px; +} + +.blog-pg.single .comments-area .item .info .replay i { + margin-left: 5px; +} + +.blog-pg.single .comment-form { + margin-top: 80px; +} + +.blog-pg.single .comment-form form { + margin-top: 50px; +} + +.blog-pg.single .comment-form form input, +.blog-pg.single .comment-form form textarea { + color: #fff; + width: 100%; + padding: 17px; + background: rgba(255, 255, 255, 0.02); + border: 0; +} + +.blog-pg.single .comment-form form textarea { + height: 140px; +} + +.next-project { + position: relative; + padding: 80px 0; + margin-top: 90px; + background: #fafafa; + z-index: 2; + overflow: hidden; +} + +.next-project:before { + display: none; +} + +.next-project:after { + content: ""; + height: 0; + width: 100%; + position: absolute; + bottom: auto; + right: 0; + top: 0; + -webkit-transition: height 0.6s cubic-bezier(0.25, 0.8, 0.25, 1) 0s; + -o-transition: height 0.6s cubic-bezier(0.25, 0.8, 0.25, 1) 0s; + transition: height 0.6s cubic-bezier(0.25, 0.8, 0.25, 1) 0s; + background: #f5f5f5; + z-index: -1; +} + +.next-project:hover:after { + height: 100%; + bottom: 0; + top: auto; +} + +.next-project .content { + width: 100%; +} + +.next-project .content h2 { + font-size: 90px; + font-weight: 800; + text-transform: uppercase; + letter-spacing: 4px; + margin-bottom: 20px; +} + +.next-project .content p { + font-size: 18px; + color: #555; +} + +/* ====================== [ End Blog ] ====================== */ +/* ====================== [ Start Call To Action ] ====================== */ +.call-action { + background-attachment: fixed; +} + +.call-action .content h6 { + color: #12c2e9; + font-size: 13px; + font-weight: 400; + text-transform: uppercase; + letter-spacing: 4px; + margin-bottom: 10px; +} + +.call-action .content h6 span { + color: #12c2e9; +} + +.call-action .content h2 { + font-weight: 700; + font-size: 4vw; + line-height: 1.2; + text-transform: uppercase; + margin-bottom: 20px; + -webkit-text-stroke-width: 1px; + -webkit-text-stroke-color: #fff; + color: transparent; +} + +.call-action .content h2 span { + color: transparent; +} + +.call-action .content h2 b span { + color: #fff; + -webkit-text-stroke-width: 0; +} + +.call-action .content h2 .whitespace { + width: 18px; +} + +.call-action .content p { + font-size: 17px; + font-weight: 300; +} + +.call-action .btn-curve { + border: 2px solid; + line-height: 2; +} + +.call-action .btn-curve span { + font-size: 15px; + font-weight: 700; + text-transform: capitalize; +} + +.call-action .btn-curve:hover span { + color: #0c0f16; +} + +.call-action .tlink { + margin-left: auto; + border-bottom: 1px solid #eee; +} + +.call-action.next { + position: relative; + z-index: 2; + overflow: hidden; +} + +.call-action.next:after { + display: none; +} + +.call-action.next:before { + content: ""; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + display: block; + background: #0a0a0a; + opacity: 1; + -webkit-transition: all 0.5s; + -o-transition: all 0.5s; + transition: all 0.5s; +} + +.call-action.next .content h2 { + font-size: 5vw; + font-weight: 700; +} + +.call-action.next .content h2 b { + font-weight: 700; +} + +.call-action.next .nxt-img { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + -webkit-transform: scale(1.4); + -ms-transform: scale(1.4); + transform: scale(1.4); + background-size: cover; + background-position: center; + z-index: -1; + -webkit-transition: all 1s linear; + -o-transition: all 1s linear; + transition: all 1s linear; +} + +.call-action.next:hover:before { + opacity: 0.9; +} + +.call-action.next:hover .nxt-img { + -webkit-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); + -webkit-transition: all 10s linear; + -o-transition: all 10s linear; + transition: all 10s linear; +} + +/* ====================== [ End Call To Action ] ====================== */ +/* ====================== [ Start Numbers & Counter ] ====================== */ +.number-sec .item { + text-align: center; + padding: 0 25px; +} + +.number-sec .item .icon { + opacity: 0.8; + font-size: 70px; + margin-bottom: 40px; +} + +.number-sec .item h3 { + font-weight: 200; + letter-spacing: 2px; + margin-bottom: 15px; +} + +.number-sec .container.sub-bg { + padding: 0 50px; + border-radius: 30px; + background: rgba(24, 25, 29, 0.5); + -webkit-backdrop-filter: blur(10px); + backdrop-filter: blur(10px); +} + +.number-sec .container.sub-bg .item { + padding: 50px 0; + border-right: 1px solid #0d0e0f; +} + +.number-sec .container.sub-bg .item.no-bord { + border: 0; +} + +.video { + position: relative; + min-height: 80vh; +} + +.video:after { + content: ""; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-image: -webkit-gradient( + linear, + left bottom, + left top, + from(rgba(0, 0, 0, 0.2)), + to(rgba(43, 47, 53, 0.7)) + ); + background-image: -webkit-linear-gradient( + bottom, + rgba(0, 0, 0, 0.2) 0%, + rgba(43, 47, 53, 0.7) 100% + ); + background-image: -o-linear-gradient( + bottom, + rgba(0, 0, 0, 0.2) 0%, + rgba(43, 47, 53, 0.7) 100% + ); + background-image: linear-gradient( + to top, + rgba(0, 0, 0, 0.2) 0%, + rgba(43, 47, 53, 0.7) 100% + ); + background-repeat: repeat-x; +} + +.video .vid { + position: absolute; + left: calc(50% - 50px); + top: calc(50% - 50px); + text-align: center; + z-index: 8; +} + +.video .vid .vid-butn { + width: 100%; +} + +.video .vid .vid-butn:hover .icon { + color: #fff; +} + +.video .vid .vid-butn:hover .icon:before { + -webkit-transform: scale(0); + -ms-transform: scale(0); + transform: scale(0); +} + +.video .vid .vid-butn .icon { + color: #fff; + width: 130px; + height: 130px; + border: 1px solid #fff; + border-radius: 50%; + line-height: 130px; + text-align: center; + font-size: 30px; + position: relative; + -webkit-transition: all 0.5s; + -o-transition: all 0.5s; + transition: all 0.5s; +} + +.video .vid .vid-butn .icon:before { + content: ""; + position: absolute; + top: 5px; + bottom: 5px; + right: 5px; + left: 5px; + background: #fff; + border-radius: 50%; + z-index: -1; + -webkit-transition: all 0.5s cubic-bezier(1, 0, 0, 1); + -o-transition: all 0.5s cubic-bezier(1, 0, 0, 1); + transition: all 0.5s cubic-bezier(1, 0, 0, 1); + opacity: 0; +} + +.video .container { + position: relative; + height: 80vh; + padding: 80px 0; + z-index: 2; +} + +.video .container .stauts { + position: absolute; + bottom: 0; + left: 0; + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.video .container .stauts .item { + padding: 30px 40px; + min-width: 200px; + background: #272727; + margin-right: 30px; +} + +.video .container .stauts .item:last-of-type { + background: #fff; + color: #121a21; +} + +.video .container .stauts .item h4 span { + font-size: 20px; + margin-left: 2px; +} + +.video .container .stauts .item h6 { + font-size: 15px; + margin-top: 5px; +} + +/* ====================== [ End Numbers & Counter ] ====================== */ +/* ====================== [ Start contact ] ====================== */ +.contact-sec .form .form-group { + margin-bottom: 30px; +} + +.contact-sec .form .form-group input, +.contact-sec .form .form-group textarea { + width: 100%; + padding: 15px 0; + border: 0; + border-bottom: 1px solid rgba(255, 255, 255, 0.1); + background: transparent; + color: #fff; +} + +.contact-sec.style2 .form input, +.contact-sec.style2 .form textarea { + padding: 20px; + background: rgba(255, 255, 255, 0.01); + -webkit-backdrop-filter: blur(4px); + backdrop-filter: blur(4px); +} + +.contact .form input, +.contact .form textarea { + color: #fff; + width: 100%; + padding: 15px 0; + background: transparent; + border: 0; + border-bottom: 1px solid rgba(255, 255, 255, 0.3); +} + +.contact .form textarea { + padding: 15px; + min-height: 140px; + border: 1px solid rgba(255, 255, 255, 0.3); + margin-top: 30px; +} + +.contact .cont-info h3 { + font-size: 18px; + font-weight: 400; + letter-spacing: 2px; + margin-bottom: 10px; +} + +.contact .cont-info .item h5 { + font-size: 16px; + font-weight: 400; + color: #999; + margin: 10px 0; +} + +.contact .cont-info .item h6 { + font-size: 14px; + font-weight: 300; + color: #999; + line-height: 1.7; +} + +.contact .cont-info .social a { + width: 45px; + height: 45px; + line-height: 45px; + text-align: center; + background: rgba(255, 255, 255, 0.01); + border-radius: 50%; + margin-right: 5px; + font-size: 13px; +} + +.map { + width: 100%; + height: 60vh; +} + +/* ====================== [ End contact ] ====================== */ +/* ====================== [ Start Footer ] ====================== */ +footer { + color: #fff; + padding: 100px 0; +} + +footer .item .title h5 { + margin-bottom: 30px; +} + +footer .item li { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + margin-bottom: 25px; +} + +footer .item li:last-of-type { + margin-bottom: 0; +} + +footer .item li h6 { + font-size: 14px; + font-weight: 600; +} + +footer .item li .icon { + font-size: 30px; + margin-right: 30px; +} + +footer .item li .img { + width: 150px; + margin-right: 15px; +} + +footer .item li .sm-post p { + font-size: 13px; +} + +footer .item li .sm-post .date { + font-size: 12px; + color: #12c2e9; +} + +footer .item li .subscribe { + width: 100%; + position: relative; +} + +footer .item li .subscribe input { + width: 100%; + padding: 15px; + border-radius: 30px; + border: 1px solid rgba(255, 255, 255, 0.05); + background: transparent; + color: #fff; + font-size: 13px; +} + +footer .item li .subscribe .subs { + position: absolute; + top: 0; + right: 0; + width: 50px; + height: 50px; + line-height: 50px; + text-align: center; + border-radius: 50%; + background: #12c2e9; + color: #000; +} + +footer .item .logo { + margin-bottom: 50px; +} + +footer .item .logo img { + width: 50px; +} + +footer .item .social a { + width: 60px; + height: 60px; + line-height: 60px; + text-align: center; + border-radius: 50%; + border: 1px solid rgba(255, 255, 255, 0.05); + font-size: 13px; + margin-right: 10px; +} + +footer .item .copy-right { + margin-top: 30px; +} + +footer .item .copy-right p { + font-size: 13px; + font-weight: 300; + text-transform: uppercase; + letter-spacing: 3px; +} + +footer .item .copy-right p a { + color: #12c2e9; +} + +/* ====================== [ End Footer ] ====================== */ +/* ====================== [ Start Responsive ] ====================== */ +@media screen and (max-width: 991px) { + .navbar .navbar-collapse.show-with-trans { + opacity: 1; + padding: 10px 15px; + height: auto; + } + + .bg-img { + background-position: center !important; + } + + .md-mb10 { + margin-bottom: 10px; + } + + .md-mb20 { + margin-bottom: 20px; + } + + .md-mb30 { + margin-bottom: 30px; + } + + .md-mb40 { + margin-bottom: 40px; + } + + .md-mb50 { + margin-bottom: 50px; + } + + .md-mb60 { + margin-bottom: 60px; + } + + .md-mb70 { + margin-bottom: 70px; + } + + .md-mb80 { + margin-bottom: 80px; + } + + .md-pb10 { + padding-bottom: 10px; + } + + .md-pb20 { + padding-bottom: 20px; + } + + .md-pb30 { + padding-bottom: 30px; + } + + .md-pb40 { + padding-bottom: 40px; + } + + .md-pb50 { + padding-bottom: 50px; + } + + .md-pb60 { + padding-bottom: 60px; + } + + .md-pb70 { + padding-bottom: 70px; + } + + .md-pb80 { + padding-bottom: 80px; + } + + .order2 { + -webkit-box-ordinal-group: 3 !important; + -ms-flex-order: 2 !important; + order: 2 !important; + } + + .order1 { + -webkit-box-ordinal-group: 2 !important; + -ms-flex-order: 1 !important; + order: 1 !important; + } + + .container { + max-width: 720px; + } + + .navbar { + min-height: 60px; + } + + .navbar .navbar-collapse { + max-height: 340px; + overflow: auto; + background: #11141b; + text-align: center; + display: block !important; + opacity: 0; + transition: all 0.3s linear; + height: 0; + padding: 0; + transform-origin: top; + } + + .navbar .nav-link { + margin: 10px auto !important; + } + + .navbar .logo { + margin-left: 15px; + width: 50px; + } + + .nav-scroll .navbar-collapse .nav-link, + .light .navbar-collapse .nav-link { + color: #fff !important; + } + + .nav-scroll .navbar-collapse .active, + .light .navbar-collapse .active { + color: #12c2e9 !important; + } + + .navbar .search { + border: 0; + padding: 0; + margin-top: 30px; + } + + .navbar .search .search-form { + display: block !important; + position: static; + height: auto; + opacity: 1 !important; + } + + .navbar .search .search-form form { + position: static; + width: 100%; + -webkit-transform: none; + -ms-transform: none; + transform: none; + } + + .navbar .search .search-form form input { + padding: 15px; + width: 100%; + font-size: 14px; + } + + .navbar .search .icon, + .navbar .search .search-form .close { + display: none; + } + + .navbar-nav .dropdown-menu { + opacity: 1; + visibility: visible; + display: none; + background: #0c0f16; + text-align: center; + color: #eee; + } + + .navbar-nav .dropdown-menu .dropdown-item { + color: #eee; + } + + .navbar-nav .dropdown-menu.show { + display: block; + } + + .navbar .navbar-nav .nav-link { + padding: 0; + } + + .navbar .navbar-nav .nav-link:hover { + color: #12c2e9; + } + + .slider .parallax-slider .caption.dig { + text-align: center; + } + + .slider .parallax-slider .caption.dig h1 { + font-size: 60px; + } + + .slider .parallax-slider .caption.dig h1 .tline { + margin-left: 0; + } + + .slider .parallax-slider .caption h1 { + font-size: 50px; + letter-spacing: 1px; + } + + .slider .parallax-slider .caption h1 br { + display: none; + } + + .slider-stwo .img { + padding-right: 0; + margin-bottom: 50px; + } + + .slider-stwo:after { + display: none; + } + + .freelancre .img { + margin-bottom: 50px; + } + + .freelancre .states { + position: relative; + margin-top: 80px; + } + + .freelancre .states ul.flex { + display: block; + } + + .freelancre .states ul.flex li { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + margin-bottom: 50px; + } + + .freelancre .states ul.flex .mail-us { + float: right; + margin-bottom: 0; + } + + .showcase-full .parallax-slider .caption h1 span { + margin-left: 0; + } + + .showcase-carus .caption h1, + .showcase-carus .copy-cap h1 { + font-size: 60px; + left: auto; + margin-left: 20px; + } + + .circle-slide .swiper-slide .bg-img { + opacity: 0; + visibility: hidden; + -webkit-transition: all 0.5s; + -o-transition: all 0.5s; + transition: all 0.5s; + height: 380px !important; + width: 380px !important; + margin: auto !important; + } + + .circle-slide .swiper-slide.swiper-slide-active .bg-img { + opacity: 1; + visibility: visible; + } + + .showcase-carus.circle-slide .caption h1, + .showcase-carus.circle-slide .copy-cap h1 { + font-size: 65px; + } + + .pages-header .cont h1 { + font-size: 35px; + } + + .works-header .capt h1 { + font-size: 45px; + } + + .sec-head h3 br { + display: none; + } + + .agency .imgsec { + padding-right: 0; + } + + .about-cr .img img { + width: 100%; + margin: 0; + } + + .about-cr .cont h3 { + margin-left: 0; + } + + .about-cr .cont { + padding-bottom: 120px; + } + + .testimonials .item { + -webkit-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); + } + + .testimonials .container-fluid { + width: auto; + margin-left: 0; + } + + #circle1, + #circle2, + #circle3, + #circle4 { + display: none; + } + + .block-sec .vid-area .cont, + .about .content, + .skills-box, + .about-ar .img .hero-bg { + margin-bottom: 50px; + } + + .min-area .content, + .min-area .img { + padding: 120px 0; + } + + .services .rtwo > div:nth-of-type(2), + .services .rone > div:nth-of-type(2) { + margin-bottom: 0px; + } + + .services .step-item.xbottom, + .services .step-item.xtop { + bottom: auto; + top: auto; + } + + .services .step-item { + margin: 25px 0; + } + + .block-sec .testim-box { + margin-bottom: 120px; + } + + .block-sec .vid-area { + display: none; + } + + .portfolio .filtering { + padding-left: 0; + padding-right: 0; + margin-bottom: 30px; + } + + .portfolio-frl .gallery .items, + .portfolio .gallery .items { + padding: 0 10px; + margin: 10px 0; + } + + .case-study .controls { + top: 100px; + -webkit-transform: translate(0); + -ms-transform: translate(0); + transform: translate(0); + } + + .slider .parallax-slider .caption p { + margin-left: 0; + } + + .arch-slider .parallax-slider .explore { + margin-left: 0; + margin-top: 50px; + } + + .blog-grid .item.active { + margin: 50px 0; + } + + .footer-half:after { + width: 100%; + } + + .footer-half .cont { + margin-bottom: 50px; + } + + .next-prog .box .caption h1, + .next-prog .box .copy-cap h1 { + font-size: 40px; + } +} + +@media screen and (max-width: 767px) { + .sm-mb10 { + margin-bottom: 10px; + } + + .sm-mb20 { + margin-bottom: 20px; + } + + .sm-mb30 { + margin-bottom: 30px; + } + + .sm-mb40 { + margin-bottom: 40px; + } + + .sm-mb50 { + margin-bottom: 50px; + } + + .sm-mb60 { + margin-bottom: 60px; + } + + .sm-mb70 { + margin-bottom: 70px; + } + + .sm-mb80 { + margin-bottom: 80px; + } + + .sm-pb10 { + padding-bottom: 10px; + } + + .sm-pb20 { + padding-bottom: 20px; + } + + .sm-pb30 { + padding-bottom: 30px; + } + + .sm-pb40 { + padding-bottom: 40px; + } + + .sm-pb50 { + padding-bottom: 50px; + } + + .sm-pb60 { + padding-bottom: 60px; + } + + .sm-pb70 { + padding-bottom: 70px; + } + + .sm-pb80 { + padding-bottom: 80px; + } + + .container { + max-width: 540px; + } + + h1 { + font-size: 35px; + } + + h2 { + font-size: 28px; + } + + h3 { + font-size: 24px; + } + + h4 { + font-size: 20px; + } + + h5 { + font-size: 18px; + } + + h6 { + font-size: 16px; + } + + .progress-wrap { + right: 15px; + bottom: 15px; + } + + .navbar .logo { + width: 40px; + } + + .hamenu .menu-links .main-menu > li { + font-size: 24px; + } + + .hamenu .menu-links .main-menu .sub-menu li { + font-size: 18px; + } + + .topnav .container-fluid { + padding: 0 30px; + } + + .topnav .logo { + width: 40px; + } + + .btn-curve { + padding: 8px 15px; + } + + .btn-curve span { + font-size: 15px; + letter-spacing: 1px; + } + + .slider .parallax-slider .caption h1 { + font-size: 40px; + } + + .slider .parallax-slider .caption h1 br { + display: none; + } + + .slider .parallax-slider .swiper-slide-active .caption h1 { + font-size: 30px; + } + + .slider .social-icon { + display: none; + } + + .slider .setone.setwo .prev-ctrl { + left: 15px; + bottom: 15px; + top: auto; + width: 45px; + height: 45px; + line-height: 45px; + } + + .slider .setone.setwo .next-ctrl { + left: 70px; + bottom: 15px; + top: auto; + width: 45px; + height: 45px; + line-height: 45px; + } + + .slider .swiper-pagination-fraction.top.botm { + right: 15px; + bottom: 15px; + } + + .slider .swiper-pagination-fraction.top .swiper-pagination-current { + font-size: 40px; + } + + .slider .parallax-slider .caption.dig h1 { + font-size: 40px; + } + + .particles .cont h1 { + font-size: 55px; + } + + .slider-stwo ul li div { + display: block; + } + + .slider-stwo ul li .cont { + display: block; + vertical-align: auto; + padding-left: 0; + margin-top: 15px; + } + + .freelancre { + padding-top: 200px; + padding-bottom: 0; + text-align: center; + } + + .freelancre .img { + margin-left: auto; + margin-right: auto; + } + + .freelancre:after, + .freelancre .states ul.flex .mail-us { + display: none; + } + + .showcase-carus.circle-slide .caption { + left: 0; + text-align: center; + } + + .showcase-carus.circle-slide .copy-cap { + display: none; + } + + .showcase-carus .swiper-slide .bg-img { + margin: 0; + height: 100vh; + background-position: center center; + } + + .showcase-carus.circle-slide .caption h1, + .showcase-carus.circle-slide .copy-cap h1 { + font-size: 50px; + min-width: auto; + margin: auto !important; + left: 0; + } + + .showcase-full .parallax-slider .caption .discover { + width: 120px; + height: 120px; + letter-spacing: 2px; + text-transform: capitalize; + } + + .pages-header { + padding: 120px 0 80px; + overflow-x: hidden; + } + + .works-header .capt h2 { + font-size: 40px; + } + + .slider.fixed-slider, + .works-header.hfixd { + position: static; + } + + .main-content { + margin-top: 0 !important; + } + + .sub-title h6 { + font-size: 12px; + } + + .sec-head h3 { + font-size: 30px; + } + + .sec-head h6 { + font-size: 15px; + letter-spacing: 5px; + } + + .agency .imgsec .exp { + margin-bottom: 15px; + } + + .about .img-mons .img1, + .about .img-mons .img2, + .about .img-mons .img3 { + height: auto; + } + + .about .img-mons .img1, + .about .img-mons .img2, + .about .img-mons .img3 { + margin-bottom: 10px; + } + + .about .img-mons .img3 { + width: 100%; + margin-top: 0; + } + + .about-us .img .stauts .item { + padding: 25px 15px; + margin-right: 20px; + } + + .about-us .img .stauts .item:last-of-type { + margin-right: 0; + } + + .about-us .img .stauts .item h4 { + font-size: 30px; + } + + .about-us .img .stauts .item h4 span { + font-size: 20px; + } + + .about-us .img { + padding: 0; + } + + .about-cr .cont h3 { + font-size: 40px; + } + + .services .step-item { + padding: 60px 40px; + } + + .testimonials .item p { + font-size: 17px; + } + + .skills-circle { + padding-bottom: 0 !important; + } + + .skills-circle .item { + margin-bottom: 50px; + } + + .team .navs { + top: 20px; + } + + .block-sec .vid-area .cont h3 { + font-size: 34px; + } + + .block-sec .testim-box:after { + top: -5px; + left: -5px; + right: -5px; + bottom: -5px; + } + + .call-action .content h2 { + font-size: 7vw; + } + + .portfolio .filtering .filter { + padding: 15px 5px; + border-radius: 10px; + } + + .portfolio .filtering span { + margin: 5px 10px; + } + + .portfolio .filtering span:after { + display: none; + } + + .portfolio-cr .items { + width: 100% !important; + } + + .team-crv .img-box .img.sizxl, + .team-crv .img-box .img.sizmd, + .team-crv .img-box .img.sizsm { + width: 100%; + } + + .blog-pg.blog-list .item .cont { + padding-left: 15px; + } + + .blog-pg.single .post .author .author-img, + .blog-pg.single .post .author .info, + .blog-pg.single .comments-area .item .comment-img, + .blog-pg.single .comments-area .item .info { + display: block; + } + + .blog-pg.single .post .author .info, + .blog-pg.single .comments-area .item .info { + padding-left: 0; + margin-top: 15px; + } + + .intro-section .htit { + margin-bottom: 15px; + } +} + +@media screen and (max-width: 480px) { + .hamenu .cont-info { + display: none; + } + + .hamenu .menu-links .main-menu > li { + font-size: 20px; + padding: 7px; + } + + .hamenu .menu-links .main-menu .sub-menu li { + font-size: 16px; + } + + .topnav .container-fluid { + padding: 0 15px; + } + + .slider-bus .caption h1 { + font-size: 50px; + } + + .showcase-full .dots { + display: none; + } + + .slider .txt-botm .swiper-nav-ctrl.swiper-button-next { + right: 20px; + } + + .slider .txt-botm .swiper-nav-ctrl.swiper-button-prev { + left: 20px; + } + + .pages-header .cont .path { + font-size: 15px; + } + + .pages-header .cont .path span { + margin: 0 10px; + } + + .pages-header .capt h1 { + font-size: 24px; + } + + .page-header .cont h1 { + font-size: 40px; + } + + .slider .swiper-pagination-fraction.steps { + bottom: 60px; + } + + .particles .cont h1 { + font-size: 30px; + font-weight: 700; + } + + .circle-slide .swiper-slide .bg-img { + height: 280px !important; + width: 280px !important; + } + + .freelancre .cont h1 { + font-size: 22px; + } + + .freelancre .img { + width: 200px; + height: 200px; + } + + .showcase-carus.circle-slide .caption h1, + .showcase-carus.circle-slide .copy-cap h1 { + font-size: 40px; + } + + .works-header .capt h2 { + font-size: 30px; + letter-spacing: 1px; + } + + .pages-header .cont h1 { + font-size: 20px; + } + + .sec-head h3 { + font-size: 20px; + } + + .sec-head h2 { + font-size: 55px; + } + + .about-us .img .stauts { + display: none; + } + + .about-ar .img .hero-bg { + width: 300px; + height: 300px; + } + + .about-ar .img .exp { + width: 240px; + height: 240px; + } + + .about-ar .img .exp h2 { + font-size: 100px; + } + + .about-ar .content h3 { + font-size: 35px; + } + + .services.lficon .item-box { + display: block; + } + + .services.lficon .item-box .cont { + padding-left: 0; + } + + .min-area .content h4, + .agency .content h4 { + font-size: 28px; + } + + .portfolio .gallery .items { + padding: 0 15px; + margin: 0 0 50px; + } + + .portfolio .gallery .items.lg-mr { + margin-top: 50px; + } + + .portfolio .filtering.smplx span { + margin: 5px 15px; + } + + .case-study .swiper-slide .cont h4 { + font-size: 25px; + } + + .case-study .controls { + top: 30px; + right: 30px; + } + + .case-study .controls .swiper-button-next, + .case-study .controls .swiper-button-prev { + width: 40px; + height: 40px; + line-height: 40px; + } + + .block-sec .vid-area .cont h3 { + font-size: 28px; + } + + .video .container .stauts { + display: none; + } + + .testimonials .item { + display: block !important; + padding: 60px 30px; + } + + .testimonials .item p { + margin-left: 0; + padding-left: 0; + border: 0; + font-size: 14px; + font-weight: 500; + text-align: center; + } + + .testimonials .item .info { + min-width: auto; + margin: auto; + margin-bottom: 30px; + display: block; + text-align: center; + } + + .testimonials .item .info .img { + margin: auto; + } + + .blog-crv .controls { + display: none; + } + + .blog-crv .item .content { + padding: 30px 15px; + } + + .blog-list .item { + display: block; + } + + .blog-list .item .img { + width: 100%; + } + + .blog-list .item .cont { + padding-left: 0; + margin-top: 30px; + } + + .blog-pg.blog-list .item .cont { + margin-top: 0; + } + + .blog .item h5 { + font-size: 20px; + } + + .blog-pg.single .post .content .share-info { + display: block; + } + + .blog-pg.single .post .content .share-info .social, + .blog-pg.single .post .content .share-info .tags { + text-align: center; + background: rgba(255, 255, 255, 0.1); + padding: 5px 10px; + } + + .blog-pg.single .post .content .share-info .tags { + margin-top: 5px; + } + + .blog-pg.single .comments-area .item.relped { + margin-left: 30px; + } + + .next-prog .box .bg-img { + width: 240px; + height: 240px; + } + + .next-prog .box .caption h1, + .next-prog .box .copy-cap h1 { + font-size: 20px; + font-weight: 600; + } + + .next-prog .box .caption h1 .stroke, + .next-prog .box .copy-cap h1 .stroke { + display: inline-block; + color: #fff; + -webkit-text-stroke: 0px #fff; + } +} + +/* ====================== [ End Responsive ] ====================== */ + +svg.CircularProgressbar { + width: 110px; +} +section.testimonials.section-padding { + overflow: hidden !important; +} +.slick-prev, +.slick-next { + display: none !important; +} +header.particles.circle-bg.valign { + overflow: hidden; +} + +div#particles-js { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +section.next-prog.section-padding { + overflow: hidden; +} +@media (max-width: 768px) { + a.col-md-3.popimg { + padding: 0; + margin-bottom: 15px; + } + + .popup-img .row { + margin: 0 15px; + } + + a.col-md-12.popimg { + padding: 0; + } +} diff --git a/public/css/font-awesome.min.css b/public/css/font-awesome.min.css new file mode 100644 index 0000000..f1028b0 --- /dev/null +++ b/public/css/font-awesome.min.css @@ -0,0 +1,5 @@ +/*! + * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ +.fa,.fab,.fad,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-bacteria:before{content:"\e059"}.fa-bacterium:before{content:"\e05a"}.fa-bahai:before{content:"\f666"}.fa-balance-scale:before{content:"\f24e"}.fa-balance-scale-left:before{content:"\f515"}.fa-balance-scale-right:before{content:"\f516"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-battle-net:before{content:"\f835"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-biking:before{content:"\f84a"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bootstrap:before{content:"\f836"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-style:before{content:"\f853"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-box-tissue:before{content:"\e05b"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buy-n-large:before{content:"\f8a6"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caravan:before{content:"\f8ff"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudflare:before{content:"\e07d"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-alt:before{content:"\f422"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-cotton-bureau:before{content:"\f89e"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dailymotion:before{content:"\e052"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-deezer:before{content:"\e077"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-disease:before{content:"\f7fa"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edge-legacy:before{content:"\e078"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-evernote:before{content:"\f839"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-alt:before{content:"\f424"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fan:before{content:"\f863"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-faucet:before{content:"\e005"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-firefox-browser:before{content:"\e007"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-pay:before{content:"\e079"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guilded:before{content:"\e07e"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamburger:before{content:"\f805"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-holding-water:before{content:"\f4c1"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-sparkles:before{content:"\e05d"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-hands-wash:before{content:"\e05e"}.fa-handshake:before{content:"\f2b5"}.fa-handshake-alt-slash:before{content:"\e05f"}.fa-handshake-slash:before{content:"\e060"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-hat-wizard:before{content:"\f6e8"}.fa-hdd:before{content:"\f0a0"}.fa-head-side-cough:before{content:"\e061"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-head-side-mask:before{content:"\e063"}.fa-head-side-virus:before{content:"\e064"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hive:before{content:"\e07f"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hospital-user:before{content:"\f80d"}.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-house-user:before{content:"\e065"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-icons:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-ideal:before{content:"\e013"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-innosoft:before{content:"\e080"}.fa-instagram:before{content:"\f16d"}.fa-instagram-square:before{content:"\e055"}.fa-instalod:before{content:"\e081"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-house:before{content:"\e066"}.fa-laptop-medical:before{content:"\f812"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lungs:before{content:"\f604"}.fa-lungs-virus:before{content:"\e067"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-mdb:before{content:"\f8ca"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microblog:before{content:"\e01a"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mixer:before{content:"\e056"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse:before{content:"\f8cc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-octopus-deploy:before{content:"\e082"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-orcid:before{content:"\f8d2"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-arrows:before{content:"\e068"}.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-perbyte:before{content:"\e083"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-square-alt:before{content:"\f87b"}.fa-phone-volume:before{content:"\f2a0"}.fa-photo-video:before{content:"\f87c"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-square:before{content:"\e01e"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-plane-slash:before{content:"\e069"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pump-medical:before{content:"\e06a"}.fa-pump-soap:before{content:"\e06b"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-record-vinyl:before{content:"\f8d9"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-remove-format:before{content:"\f87d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-rust:before{content:"\e07a"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-shield-virus:before{content:"\e06c"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopify:before{content:"\e057"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sink:before{content:"\e06d"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-soap:before{content:"\e06e"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-down-alt:before{content:"\f884"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-amount-up-alt:before{content:"\f885"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-stopwatch-20:before{content:"\e06f"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-store-alt-slash:before{content:"\e070"}.fa-store-slash:before{content:"\e071"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swift:before{content:"\f8e1"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-symfony:before{content:"\f83d"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-tiktok:before{content:"\e07b"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-trailer:before{content:"\e041"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-trash-restore:before{content:"\f829"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbraco:before{content:"\f8e8"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-uncharted:before{content:"\e084"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-unity:before{content:"\e049"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-unsplash:before{content:"\e07c"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-users-slash:before{content:"\e073"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-vest:before{content:"\e085"}.fa-vest-patches:before{content:"\e086"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-virus:before{content:"\e074"}.fa-virus-slash:before{content:"\e075"}.fa-viruses:before{content:"\e076"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-voicemail:before{content:"\f897"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-watchman-monitoring:before{content:"\e087"}.fa-water:before{content:"\f773"}.fa-wave-square:before{content:"\f83e"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wodu:before{content:"\e088"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:400;font-display:block;src:url(../fonts/fa-brands-400.eot);src:url(../fonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-brands-400.woff2) format("woff2"),url(../fonts/fa-brands-400.woff) format("woff"),url(../fonts/fa-brands-400.ttf) format("truetype"),url(../fonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:block;src:url(../fonts/fa-regular-400.eot);src:url(../fonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-regular-400.woff2) format("woff2"),url(../fonts/fa-regular-400.woff) format("woff"),url(../fonts/fa-regular-400.ttf) format("truetype"),url(../fonts/fa-regular-400.svg#fontawesome) format("svg")}.fab,.far{font-weight:400}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:block;src:url(../fonts/fa-solid-900.eot);src:url(../fonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-solid-900.woff2) format("woff2"),url(../fonts/fa-solid-900.woff) format("woff"),url(../fonts/fa-solid-900.ttf) format("truetype"),url(../fonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.far,.fas{font-family:"Font Awesome 5 Free"}.fa,.fas{font-weight:900} \ No newline at end of file diff --git a/public/css/ionicons.min.css b/public/css/ionicons.min.css new file mode 100644 index 0000000..baba9e9 --- /dev/null +++ b/public/css/ionicons.min.css @@ -0,0 +1,11 @@ +@charset "UTF-8";/*! + Ionicons, v2.0.0 + Created by Ben Sperry for the Ionic Framework, http://ionicons.com/ + https://twitter.com/benjsperry https://twitter.com/ionicframework + MIT License: https://github.com/driftyco/ionicons + + Android-style icons originally built by Google’s + Material Design Icons: https://github.com/google/material-design-icons + used under CC BY http://creativecommons.org/licenses/by/4.0/ + Modified icons to fit ionicon’s grid from original. +*/@font-face{font-family:"Ionicons";src:url("../fonts/ionicons.eot?v=2.0.0");src:url("../fonts/ionicons.eot?v=2.0.0#iefix") format("embedded-opentype"),url("../fonts/ionicons.ttf?v=2.0.0") format("truetype"),url("../fonts/ionicons.woff?v=2.0.0") format("woff"),url("../fonts/ionicons.svg?v=2.0.0#Ionicons") format("svg");font-weight:normal;font-style:normal}.ion,.ionicons,.ion-alert:before,.ion-alert-circled:before,.ion-android-add:before,.ion-android-add-circle:before,.ion-android-alarm-clock:before,.ion-android-alert:before,.ion-android-apps:before,.ion-android-archive:before,.ion-android-arrow-back:before,.ion-android-arrow-down:before,.ion-android-arrow-dropdown:before,.ion-android-arrow-dropdown-circle:before,.ion-android-arrow-dropleft:before,.ion-android-arrow-dropleft-circle:before,.ion-android-arrow-dropright:before,.ion-android-arrow-dropright-circle:before,.ion-android-arrow-dropup:before,.ion-android-arrow-dropup-circle:before,.ion-android-arrow-forward:before,.ion-android-arrow-up:before,.ion-android-attach:before,.ion-android-bar:before,.ion-android-bicycle:before,.ion-android-boat:before,.ion-android-bookmark:before,.ion-android-bulb:before,.ion-android-bus:before,.ion-android-calendar:before,.ion-android-call:before,.ion-android-camera:before,.ion-android-cancel:before,.ion-android-car:before,.ion-android-cart:before,.ion-android-chat:before,.ion-android-checkbox:before,.ion-android-checkbox-blank:before,.ion-android-checkbox-outline:before,.ion-android-checkbox-outline-blank:before,.ion-android-checkmark-circle:before,.ion-android-clipboard:before,.ion-android-close:before,.ion-android-cloud:before,.ion-android-cloud-circle:before,.ion-android-cloud-done:before,.ion-android-cloud-outline:before,.ion-android-color-palette:before,.ion-android-compass:before,.ion-android-contact:before,.ion-android-contacts:before,.ion-android-contract:before,.ion-android-create:before,.ion-android-delete:before,.ion-android-desktop:before,.ion-android-document:before,.ion-android-done:before,.ion-android-done-all:before,.ion-android-download:before,.ion-android-drafts:before,.ion-android-exit:before,.ion-android-expand:before,.ion-android-favorite:before,.ion-android-favorite-outline:before,.ion-android-film:before,.ion-android-folder:before,.ion-android-folder-open:before,.ion-android-funnel:before,.ion-android-globe:before,.ion-android-hand:before,.ion-android-hangout:before,.ion-android-happy:before,.ion-android-home:before,.ion-android-image:before,.ion-android-laptop:before,.ion-android-list:before,.ion-android-locate:before,.ion-android-lock:before,.ion-android-mail:before,.ion-android-map:before,.ion-android-menu:before,.ion-android-microphone:before,.ion-android-microphone-off:before,.ion-android-more-horizontal:before,.ion-android-more-vertical:before,.ion-android-navigate:before,.ion-android-notifications:before,.ion-android-notifications-none:before,.ion-android-notifications-off:before,.ion-android-open:before,.ion-android-options:before,.ion-android-people:before,.ion-android-person:before,.ion-android-person-add:before,.ion-android-phone-landscape:before,.ion-android-phone-portrait:before,.ion-android-pin:before,.ion-android-plane:before,.ion-android-playstore:before,.ion-android-print:before,.ion-android-radio-button-off:before,.ion-android-radio-button-on:before,.ion-android-refresh:before,.ion-android-remove:before,.ion-android-remove-circle:before,.ion-android-restaurant:before,.ion-android-sad:before,.ion-android-search:before,.ion-android-send:before,.ion-android-settings:before,.ion-android-share:before,.ion-android-share-alt:before,.ion-android-star:before,.ion-android-star-half:before,.ion-android-star-outline:before,.ion-android-stopwatch:before,.ion-android-subway:before,.ion-android-sunny:before,.ion-android-sync:before,.ion-android-textsms:before,.ion-android-time:before,.ion-android-train:before,.ion-android-unlock:before,.ion-android-upload:before,.ion-android-volume-down:before,.ion-android-volume-mute:before,.ion-android-volume-off:before,.ion-android-volume-up:before,.ion-android-walk:before,.ion-android-warning:before,.ion-android-watch:before,.ion-android-wifi:before,.ion-aperture:before,.ion-archive:before,.ion-arrow-down-a:before,.ion-arrow-down-b:before,.ion-arrow-down-c:before,.ion-arrow-expand:before,.ion-arrow-graph-down-left:before,.ion-arrow-graph-down-right:before,.ion-arrow-graph-up-left:before,.ion-arrow-graph-up-right:before,.ion-arrow-left-a:before,.ion-arrow-left-b:before,.ion-arrow-left-c:before,.ion-arrow-move:before,.ion-arrow-resize:before,.ion-arrow-return-left:before,.ion-arrow-return-right:before,.ion-arrow-right-a:before,.ion-arrow-right-b:before,.ion-arrow-right-c:before,.ion-arrow-shrink:before,.ion-arrow-swap:before,.ion-arrow-up-a:before,.ion-arrow-up-b:before,.ion-arrow-up-c:before,.ion-asterisk:before,.ion-at:before,.ion-backspace:before,.ion-backspace-outline:before,.ion-bag:before,.ion-battery-charging:before,.ion-battery-empty:before,.ion-battery-full:before,.ion-battery-half:before,.ion-battery-low:before,.ion-beaker:before,.ion-beer:before,.ion-bluetooth:before,.ion-bonfire:before,.ion-bookmark:before,.ion-bowtie:before,.ion-briefcase:before,.ion-bug:before,.ion-calculator:before,.ion-calendar:before,.ion-camera:before,.ion-card:before,.ion-cash:before,.ion-chatbox:before,.ion-chatbox-working:before,.ion-chatboxes:before,.ion-chatbubble:before,.ion-chatbubble-working:before,.ion-chatbubbles:before,.ion-checkmark:before,.ion-checkmark-circled:before,.ion-checkmark-round:before,.ion-chevron-down:before,.ion-chevron-left:before,.ion-chevron-right:before,.ion-chevron-up:before,.ion-clipboard:before,.ion-clock:before,.ion-close:before,.ion-close-circled:before,.ion-close-round:before,.ion-closed-captioning:before,.ion-cloud:before,.ion-code:before,.ion-code-download:before,.ion-code-working:before,.ion-coffee:before,.ion-compass:before,.ion-compose:before,.ion-connection-bars:before,.ion-contrast:before,.ion-crop:before,.ion-cube:before,.ion-disc:before,.ion-document:before,.ion-document-text:before,.ion-drag:before,.ion-earth:before,.ion-easel:before,.ion-edit:before,.ion-egg:before,.ion-eject:before,.ion-email:before,.ion-email-unread:before,.ion-erlenmeyer-flask:before,.ion-erlenmeyer-flask-bubbles:before,.ion-eye:before,.ion-eye-disabled:before,.ion-female:before,.ion-filing:before,.ion-film-marker:before,.ion-fireball:before,.ion-flag:before,.ion-flame:before,.ion-flash:before,.ion-flash-off:before,.ion-folder:before,.ion-fork:before,.ion-fork-repo:before,.ion-forward:before,.ion-funnel:before,.ion-gear-a:before,.ion-gear-b:before,.ion-grid:before,.ion-hammer:before,.ion-happy:before,.ion-happy-outline:before,.ion-headphone:before,.ion-heart:before,.ion-heart-broken:before,.ion-help:before,.ion-help-buoy:before,.ion-help-circled:before,.ion-home:before,.ion-icecream:before,.ion-image:before,.ion-images:before,.ion-information:before,.ion-information-circled:before,.ion-ionic:before,.ion-ios-alarm:before,.ion-ios-alarm-outline:before,.ion-ios-albums:before,.ion-ios-albums-outline:before,.ion-ios-americanfootball:before,.ion-ios-americanfootball-outline:before,.ion-ios-analytics:before,.ion-ios-analytics-outline:before,.ion-ios-arrow-back:before,.ion-ios-arrow-down:before,.ion-ios-arrow-forward:before,.ion-ios-arrow-left:before,.ion-ios-arrow-right:before,.ion-ios-arrow-thin-down:before,.ion-ios-arrow-thin-left:before,.ion-ios-arrow-thin-right:before,.ion-ios-arrow-thin-up:before,.ion-ios-arrow-up:before,.ion-ios-at:before,.ion-ios-at-outline:before,.ion-ios-barcode:before,.ion-ios-barcode-outline:before,.ion-ios-baseball:before,.ion-ios-baseball-outline:before,.ion-ios-basketball:before,.ion-ios-basketball-outline:before,.ion-ios-bell:before,.ion-ios-bell-outline:before,.ion-ios-body:before,.ion-ios-body-outline:before,.ion-ios-bolt:before,.ion-ios-bolt-outline:before,.ion-ios-book:before,.ion-ios-book-outline:before,.ion-ios-bookmarks:before,.ion-ios-bookmarks-outline:before,.ion-ios-box:before,.ion-ios-box-outline:before,.ion-ios-briefcase:before,.ion-ios-briefcase-outline:before,.ion-ios-browsers:before,.ion-ios-browsers-outline:before,.ion-ios-calculator:before,.ion-ios-calculator-outline:before,.ion-ios-calendar:before,.ion-ios-calendar-outline:before,.ion-ios-camera:before,.ion-ios-camera-outline:before,.ion-ios-cart:before,.ion-ios-cart-outline:before,.ion-ios-chatboxes:before,.ion-ios-chatboxes-outline:before,.ion-ios-chatbubble:before,.ion-ios-chatbubble-outline:before,.ion-ios-checkmark:before,.ion-ios-checkmark-empty:before,.ion-ios-checkmark-outline:before,.ion-ios-circle-filled:before,.ion-ios-circle-outline:before,.ion-ios-clock:before,.ion-ios-clock-outline:before,.ion-ios-close:before,.ion-ios-close-empty:before,.ion-ios-close-outline:before,.ion-ios-cloud:before,.ion-ios-cloud-download:before,.ion-ios-cloud-download-outline:before,.ion-ios-cloud-outline:before,.ion-ios-cloud-upload:before,.ion-ios-cloud-upload-outline:before,.ion-ios-cloudy:before,.ion-ios-cloudy-night:before,.ion-ios-cloudy-night-outline:before,.ion-ios-cloudy-outline:before,.ion-ios-cog:before,.ion-ios-cog-outline:before,.ion-ios-color-filter:before,.ion-ios-color-filter-outline:before,.ion-ios-color-wand:before,.ion-ios-color-wand-outline:before,.ion-ios-compose:before,.ion-ios-compose-outline:before,.ion-ios-contact:before,.ion-ios-contact-outline:before,.ion-ios-copy:before,.ion-ios-copy-outline:before,.ion-ios-crop:before,.ion-ios-crop-strong:before,.ion-ios-download:before,.ion-ios-download-outline:before,.ion-ios-drag:before,.ion-ios-email:before,.ion-ios-email-outline:before,.ion-ios-eye:before,.ion-ios-eye-outline:before,.ion-ios-fastforward:before,.ion-ios-fastforward-outline:before,.ion-ios-filing:before,.ion-ios-filing-outline:before,.ion-ios-film:before,.ion-ios-film-outline:before,.ion-ios-flag:before,.ion-ios-flag-outline:before,.ion-ios-flame:before,.ion-ios-flame-outline:before,.ion-ios-flask:before,.ion-ios-flask-outline:before,.ion-ios-flower:before,.ion-ios-flower-outline:before,.ion-ios-folder:before,.ion-ios-folder-outline:before,.ion-ios-football:before,.ion-ios-football-outline:before,.ion-ios-game-controller-a:before,.ion-ios-game-controller-a-outline:before,.ion-ios-game-controller-b:before,.ion-ios-game-controller-b-outline:before,.ion-ios-gear:before,.ion-ios-gear-outline:before,.ion-ios-glasses:before,.ion-ios-glasses-outline:before,.ion-ios-grid-view:before,.ion-ios-grid-view-outline:before,.ion-ios-heart:before,.ion-ios-heart-outline:before,.ion-ios-help:before,.ion-ios-help-empty:before,.ion-ios-help-outline:before,.ion-ios-home:before,.ion-ios-home-outline:before,.ion-ios-infinite:before,.ion-ios-infinite-outline:before,.ion-ios-information:before,.ion-ios-information-empty:before,.ion-ios-information-outline:before,.ion-ios-ionic-outline:before,.ion-ios-keypad:before,.ion-ios-keypad-outline:before,.ion-ios-lightbulb:before,.ion-ios-lightbulb-outline:before,.ion-ios-list:before,.ion-ios-list-outline:before,.ion-ios-location:before,.ion-ios-location-outline:before,.ion-ios-locked:before,.ion-ios-locked-outline:before,.ion-ios-loop:before,.ion-ios-loop-strong:before,.ion-ios-medical:before,.ion-ios-medical-outline:before,.ion-ios-medkit:before,.ion-ios-medkit-outline:before,.ion-ios-mic:before,.ion-ios-mic-off:before,.ion-ios-mic-outline:before,.ion-ios-minus:before,.ion-ios-minus-empty:before,.ion-ios-minus-outline:before,.ion-ios-monitor:before,.ion-ios-monitor-outline:before,.ion-ios-moon:before,.ion-ios-moon-outline:before,.ion-ios-more:before,.ion-ios-more-outline:before,.ion-ios-musical-note:before,.ion-ios-musical-notes:before,.ion-ios-navigate:before,.ion-ios-navigate-outline:before,.ion-ios-nutrition:before,.ion-ios-nutrition-outline:before,.ion-ios-paper:before,.ion-ios-paper-outline:before,.ion-ios-paperplane:before,.ion-ios-paperplane-outline:before,.ion-ios-partlysunny:before,.ion-ios-partlysunny-outline:before,.ion-ios-pause:before,.ion-ios-pause-outline:before,.ion-ios-paw:before,.ion-ios-paw-outline:before,.ion-ios-people:before,.ion-ios-people-outline:before,.ion-ios-person:before,.ion-ios-person-outline:before,.ion-ios-personadd:before,.ion-ios-personadd-outline:before,.ion-ios-photos:before,.ion-ios-photos-outline:before,.ion-ios-pie:before,.ion-ios-pie-outline:before,.ion-ios-pint:before,.ion-ios-pint-outline:before,.ion-ios-play:before,.ion-ios-play-outline:before,.ion-ios-plus:before,.ion-ios-plus-empty:before,.ion-ios-plus-outline:before,.ion-ios-pricetag:before,.ion-ios-pricetag-outline:before,.ion-ios-pricetags:before,.ion-ios-pricetags-outline:before,.ion-ios-printer:before,.ion-ios-printer-outline:before,.ion-ios-pulse:before,.ion-ios-pulse-strong:before,.ion-ios-rainy:before,.ion-ios-rainy-outline:before,.ion-ios-recording:before,.ion-ios-recording-outline:before,.ion-ios-redo:before,.ion-ios-redo-outline:before,.ion-ios-refresh:before,.ion-ios-refresh-empty:before,.ion-ios-refresh-outline:before,.ion-ios-reload:before,.ion-ios-reverse-camera:before,.ion-ios-reverse-camera-outline:before,.ion-ios-rewind:before,.ion-ios-rewind-outline:before,.ion-ios-rose:before,.ion-ios-rose-outline:before,.ion-ios-search:before,.ion-ios-search-strong:before,.ion-ios-settings:before,.ion-ios-settings-strong:before,.ion-ios-shuffle:before,.ion-ios-shuffle-strong:before,.ion-ios-skipbackward:before,.ion-ios-skipbackward-outline:before,.ion-ios-skipforward:before,.ion-ios-skipforward-outline:before,.ion-ios-snowy:before,.ion-ios-speedometer:before,.ion-ios-speedometer-outline:before,.ion-ios-star:before,.ion-ios-star-half:before,.ion-ios-star-outline:before,.ion-ios-stopwatch:before,.ion-ios-stopwatch-outline:before,.ion-ios-sunny:before,.ion-ios-sunny-outline:before,.ion-ios-telephone:before,.ion-ios-telephone-outline:before,.ion-ios-tennisball:before,.ion-ios-tennisball-outline:before,.ion-ios-thunderstorm:before,.ion-ios-thunderstorm-outline:before,.ion-ios-time:before,.ion-ios-time-outline:before,.ion-ios-timer:before,.ion-ios-timer-outline:before,.ion-ios-toggle:before,.ion-ios-toggle-outline:before,.ion-ios-trash:before,.ion-ios-trash-outline:before,.ion-ios-undo:before,.ion-ios-undo-outline:before,.ion-ios-unlocked:before,.ion-ios-unlocked-outline:before,.ion-ios-upload:before,.ion-ios-upload-outline:before,.ion-ios-videocam:before,.ion-ios-videocam-outline:before,.ion-ios-volume-high:before,.ion-ios-volume-low:before,.ion-ios-wineglass:before,.ion-ios-wineglass-outline:before,.ion-ios-world:before,.ion-ios-world-outline:before,.ion-ipad:before,.ion-iphone:before,.ion-ipod:before,.ion-jet:before,.ion-key:before,.ion-knife:before,.ion-laptop:before,.ion-leaf:before,.ion-levels:before,.ion-lightbulb:before,.ion-link:before,.ion-load-a:before,.ion-load-b:before,.ion-load-c:before,.ion-load-d:before,.ion-location:before,.ion-lock-combination:before,.ion-locked:before,.ion-log-in:before,.ion-log-out:before,.ion-loop:before,.ion-magnet:before,.ion-male:before,.ion-man:before,.ion-map:before,.ion-medkit:before,.ion-merge:before,.ion-mic-a:before,.ion-mic-b:before,.ion-mic-c:before,.ion-minus:before,.ion-minus-circled:before,.ion-minus-round:before,.ion-model-s:before,.ion-monitor:before,.ion-more:before,.ion-mouse:before,.ion-music-note:before,.ion-navicon:before,.ion-navicon-round:before,.ion-navigate:before,.ion-network:before,.ion-no-smoking:before,.ion-nuclear:before,.ion-outlet:before,.ion-paintbrush:before,.ion-paintbucket:before,.ion-paper-airplane:before,.ion-paperclip:before,.ion-pause:before,.ion-person:before,.ion-person-add:before,.ion-person-stalker:before,.ion-pie-graph:before,.ion-pin:before,.ion-pinpoint:before,.ion-pizza:before,.ion-plane:before,.ion-planet:before,.ion-play:before,.ion-playstation:before,.ion-plus:before,.ion-plus-circled:before,.ion-plus-round:before,.ion-podium:before,.ion-pound:before,.ion-power:before,.ion-pricetag:before,.ion-pricetags:before,.ion-printer:before,.ion-pull-request:before,.ion-qr-scanner:before,.ion-quote:before,.ion-radio-waves:before,.ion-record:before,.ion-refresh:before,.ion-reply:before,.ion-reply-all:before,.ion-ribbon-a:before,.ion-ribbon-b:before,.ion-sad:before,.ion-sad-outline:before,.ion-scissors:before,.ion-search:before,.ion-settings:before,.ion-share:before,.ion-shuffle:before,.ion-skip-backward:before,.ion-skip-forward:before,.ion-social-android:before,.ion-social-android-outline:before,.ion-social-angular:before,.ion-social-angular-outline:before,.ion-social-apple:before,.ion-social-apple-outline:before,.ion-social-bitcoin:before,.ion-social-bitcoin-outline:before,.ion-social-buffer:before,.ion-social-buffer-outline:before,.ion-social-chrome:before,.ion-social-chrome-outline:before,.ion-social-codepen:before,.ion-social-codepen-outline:before,.ion-social-css3:before,.ion-social-css3-outline:before,.ion-social-designernews:before,.ion-social-designernews-outline:before,.ion-social-dribbble:before,.ion-social-dribbble-outline:before,.ion-social-dropbox:before,.ion-social-dropbox-outline:before,.ion-social-euro:before,.ion-social-euro-outline:before,.ion-social-facebook:before,.ion-social-facebook-outline:before,.ion-social-foursquare:before,.ion-social-foursquare-outline:before,.ion-social-freebsd-devil:before,.ion-social-github:before,.ion-social-github-outline:before,.ion-social-google:before,.ion-social-google-outline:before,.ion-social-googleplus:before,.ion-social-googleplus-outline:before,.ion-social-hackernews:before,.ion-social-hackernews-outline:before,.ion-social-html5:before,.ion-social-html5-outline:before,.ion-social-instagram:before,.ion-social-instagram-outline:before,.ion-social-javascript:before,.ion-social-javascript-outline:before,.ion-social-linkedin:before,.ion-social-linkedin-outline:before,.ion-social-markdown:before,.ion-social-nodejs:before,.ion-social-octocat:before,.ion-social-pinterest:before,.ion-social-pinterest-outline:before,.ion-social-python:before,.ion-social-reddit:before,.ion-social-reddit-outline:before,.ion-social-rss:before,.ion-social-rss-outline:before,.ion-social-sass:before,.ion-social-skype:before,.ion-social-skype-outline:before,.ion-social-snapchat:before,.ion-social-snapchat-outline:before,.ion-social-tumblr:before,.ion-social-tumblr-outline:before,.ion-social-tux:before,.ion-social-twitch:before,.ion-social-twitch-outline:before,.ion-social-twitter:before,.ion-social-twitter-outline:before,.ion-social-usd:before,.ion-social-usd-outline:before,.ion-social-vimeo:before,.ion-social-vimeo-outline:before,.ion-social-whatsapp:before,.ion-social-whatsapp-outline:before,.ion-social-windows:before,.ion-social-windows-outline:before,.ion-social-wordpress:before,.ion-social-wordpress-outline:before,.ion-social-yahoo:before,.ion-social-yahoo-outline:before,.ion-social-yen:before,.ion-social-yen-outline:before,.ion-social-youtube:before,.ion-social-youtube-outline:before,.ion-soup-can:before,.ion-soup-can-outline:before,.ion-speakerphone:before,.ion-speedometer:before,.ion-spoon:before,.ion-star:before,.ion-stats-bars:before,.ion-steam:before,.ion-stop:before,.ion-thermometer:before,.ion-thumbsdown:before,.ion-thumbsup:before,.ion-toggle:before,.ion-toggle-filled:before,.ion-transgender:before,.ion-trash-a:before,.ion-trash-b:before,.ion-trophy:before,.ion-tshirt:before,.ion-tshirt-outline:before,.ion-umbrella:before,.ion-university:before,.ion-unlocked:before,.ion-upload:before,.ion-usb:before,.ion-videocamera:before,.ion-volume-high:before,.ion-volume-low:before,.ion-volume-medium:before,.ion-volume-mute:before,.ion-wand:before,.ion-waterdrop:before,.ion-wifi:before,.ion-wineglass:before,.ion-woman:before,.ion-wrench:before,.ion-xbox:before{display:inline-block;font-family:"Ionicons";speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;text-rendering:auto;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ion-alert:before{content:"\f101"}.ion-alert-circled:before{content:"\f100"}.ion-android-add:before{content:"\f2c7"}.ion-android-add-circle:before{content:"\f359"}.ion-android-alarm-clock:before{content:"\f35a"}.ion-android-alert:before{content:"\f35b"}.ion-android-apps:before{content:"\f35c"}.ion-android-archive:before{content:"\f2c9"}.ion-android-arrow-back:before{content:"\f2ca"}.ion-android-arrow-down:before{content:"\f35d"}.ion-android-arrow-dropdown:before{content:"\f35f"}.ion-android-arrow-dropdown-circle:before{content:"\f35e"}.ion-android-arrow-dropleft:before{content:"\f361"}.ion-android-arrow-dropleft-circle:before{content:"\f360"}.ion-android-arrow-dropright:before{content:"\f363"}.ion-android-arrow-dropright-circle:before{content:"\f362"}.ion-android-arrow-dropup:before{content:"\f365"}.ion-android-arrow-dropup-circle:before{content:"\f364"}.ion-android-arrow-forward:before{content:"\f30f"}.ion-android-arrow-up:before{content:"\f366"}.ion-android-attach:before{content:"\f367"}.ion-android-bar:before{content:"\f368"}.ion-android-bicycle:before{content:"\f369"}.ion-android-boat:before{content:"\f36a"}.ion-android-bookmark:before{content:"\f36b"}.ion-android-bulb:before{content:"\f36c"}.ion-android-bus:before{content:"\f36d"}.ion-android-calendar:before{content:"\f2d1"}.ion-android-call:before{content:"\f2d2"}.ion-android-camera:before{content:"\f2d3"}.ion-android-cancel:before{content:"\f36e"}.ion-android-car:before{content:"\f36f"}.ion-android-cart:before{content:"\f370"}.ion-android-chat:before{content:"\f2d4"}.ion-android-checkbox:before{content:"\f374"}.ion-android-checkbox-blank:before{content:"\f371"}.ion-android-checkbox-outline:before{content:"\f373"}.ion-android-checkbox-outline-blank:before{content:"\f372"}.ion-android-checkmark-circle:before{content:"\f375"}.ion-android-clipboard:before{content:"\f376"}.ion-android-close:before{content:"\f2d7"}.ion-android-cloud:before{content:"\f37a"}.ion-android-cloud-circle:before{content:"\f377"}.ion-android-cloud-done:before{content:"\f378"}.ion-android-cloud-outline:before{content:"\f379"}.ion-android-color-palette:before{content:"\f37b"}.ion-android-compass:before{content:"\f37c"}.ion-android-contact:before{content:"\f2d8"}.ion-android-contacts:before{content:"\f2d9"}.ion-android-contract:before{content:"\f37d"}.ion-android-create:before{content:"\f37e"}.ion-android-delete:before{content:"\f37f"}.ion-android-desktop:before{content:"\f380"}.ion-android-document:before{content:"\f381"}.ion-android-done:before{content:"\f383"}.ion-android-done-all:before{content:"\f382"}.ion-android-download:before{content:"\f2dd"}.ion-android-drafts:before{content:"\f384"}.ion-android-exit:before{content:"\f385"}.ion-android-expand:before{content:"\f386"}.ion-android-favorite:before{content:"\f388"}.ion-android-favorite-outline:before{content:"\f387"}.ion-android-film:before{content:"\f389"}.ion-android-folder:before{content:"\f2e0"}.ion-android-folder-open:before{content:"\f38a"}.ion-android-funnel:before{content:"\f38b"}.ion-android-globe:before{content:"\f38c"}.ion-android-hand:before{content:"\f2e3"}.ion-android-hangout:before{content:"\f38d"}.ion-android-happy:before{content:"\f38e"}.ion-android-home:before{content:"\f38f"}.ion-android-image:before{content:"\f2e4"}.ion-android-laptop:before{content:"\f390"}.ion-android-list:before{content:"\f391"}.ion-android-locate:before{content:"\f2e9"}.ion-android-lock:before{content:"\f392"}.ion-android-mail:before{content:"\f2eb"}.ion-android-map:before{content:"\f393"}.ion-android-menu:before{content:"\f394"}.ion-android-microphone:before{content:"\f2ec"}.ion-android-microphone-off:before{content:"\f395"}.ion-android-more-horizontal:before{content:"\f396"}.ion-android-more-vertical:before{content:"\f397"}.ion-android-navigate:before{content:"\f398"}.ion-android-notifications:before{content:"\f39b"}.ion-android-notifications-none:before{content:"\f399"}.ion-android-notifications-off:before{content:"\f39a"}.ion-android-open:before{content:"\f39c"}.ion-android-options:before{content:"\f39d"}.ion-android-people:before{content:"\f39e"}.ion-android-person:before{content:"\f3a0"}.ion-android-person-add:before{content:"\f39f"}.ion-android-phone-landscape:before{content:"\f3a1"}.ion-android-phone-portrait:before{content:"\f3a2"}.ion-android-pin:before{content:"\f3a3"}.ion-android-plane:before{content:"\f3a4"}.ion-android-playstore:before{content:"\f2f0"}.ion-android-print:before{content:"\f3a5"}.ion-android-radio-button-off:before{content:"\f3a6"}.ion-android-radio-button-on:before{content:"\f3a7"}.ion-android-refresh:before{content:"\f3a8"}.ion-android-remove:before{content:"\f2f4"}.ion-android-remove-circle:before{content:"\f3a9"}.ion-android-restaurant:before{content:"\f3aa"}.ion-android-sad:before{content:"\f3ab"}.ion-android-search:before{content:"\f2f5"}.ion-android-send:before{content:"\f2f6"}.ion-android-settings:before{content:"\f2f7"}.ion-android-share:before{content:"\f2f8"}.ion-android-share-alt:before{content:"\f3ac"}.ion-android-star:before{content:"\f2fc"}.ion-android-star-half:before{content:"\f3ad"}.ion-android-star-outline:before{content:"\f3ae"}.ion-android-stopwatch:before{content:"\f2fd"}.ion-android-subway:before{content:"\f3af"}.ion-android-sunny:before{content:"\f3b0"}.ion-android-sync:before{content:"\f3b1"}.ion-android-textsms:before{content:"\f3b2"}.ion-android-time:before{content:"\f3b3"}.ion-android-train:before{content:"\f3b4"}.ion-android-unlock:before{content:"\f3b5"}.ion-android-upload:before{content:"\f3b6"}.ion-android-volume-down:before{content:"\f3b7"}.ion-android-volume-mute:before{content:"\f3b8"}.ion-android-volume-off:before{content:"\f3b9"}.ion-android-volume-up:before{content:"\f3ba"}.ion-android-walk:before{content:"\f3bb"}.ion-android-warning:before{content:"\f3bc"}.ion-android-watch:before{content:"\f3bd"}.ion-android-wifi:before{content:"\f305"}.ion-aperture:before{content:"\f313"}.ion-archive:before{content:"\f102"}.ion-arrow-down-a:before{content:"\f103"}.ion-arrow-down-b:before{content:"\f104"}.ion-arrow-down-c:before{content:"\f105"}.ion-arrow-expand:before{content:"\f25e"}.ion-arrow-graph-down-left:before{content:"\f25f"}.ion-arrow-graph-down-right:before{content:"\f260"}.ion-arrow-graph-up-left:before{content:"\f261"}.ion-arrow-graph-up-right:before{content:"\f262"}.ion-arrow-left-a:before{content:"\f106"}.ion-arrow-left-b:before{content:"\f107"}.ion-arrow-left-c:before{content:"\f108"}.ion-arrow-move:before{content:"\f263"}.ion-arrow-resize:before{content:"\f264"}.ion-arrow-return-left:before{content:"\f265"}.ion-arrow-return-right:before{content:"\f266"}.ion-arrow-right-a:before{content:"\f109"}.ion-arrow-right-b:before{content:"\f10a"}.ion-arrow-right-c:before{content:"\f10b"}.ion-arrow-shrink:before{content:"\f267"}.ion-arrow-swap:before{content:"\f268"}.ion-arrow-up-a:before{content:"\f10c"}.ion-arrow-up-b:before{content:"\f10d"}.ion-arrow-up-c:before{content:"\f10e"}.ion-asterisk:before{content:"\f314"}.ion-at:before{content:"\f10f"}.ion-backspace:before{content:"\f3bf"}.ion-backspace-outline:before{content:"\f3be"}.ion-bag:before{content:"\f110"}.ion-battery-charging:before{content:"\f111"}.ion-battery-empty:before{content:"\f112"}.ion-battery-full:before{content:"\f113"}.ion-battery-half:before{content:"\f114"}.ion-battery-low:before{content:"\f115"}.ion-beaker:before{content:"\f269"}.ion-beer:before{content:"\f26a"}.ion-bluetooth:before{content:"\f116"}.ion-bonfire:before{content:"\f315"}.ion-bookmark:before{content:"\f26b"}.ion-bowtie:before{content:"\f3c0"}.ion-briefcase:before{content:"\f26c"}.ion-bug:before{content:"\f2be"}.ion-calculator:before{content:"\f26d"}.ion-calendar:before{content:"\f117"}.ion-camera:before{content:"\f118"}.ion-card:before{content:"\f119"}.ion-cash:before{content:"\f316"}.ion-chatbox:before{content:"\f11b"}.ion-chatbox-working:before{content:"\f11a"}.ion-chatboxes:before{content:"\f11c"}.ion-chatbubble:before{content:"\f11e"}.ion-chatbubble-working:before{content:"\f11d"}.ion-chatbubbles:before{content:"\f11f"}.ion-checkmark:before{content:"\f122"}.ion-checkmark-circled:before{content:"\f120"}.ion-checkmark-round:before{content:"\f121"}.ion-chevron-down:before{content:"\f123"}.ion-chevron-left:before{content:"\f124"}.ion-chevron-right:before{content:"\f125"}.ion-chevron-up:before{content:"\f126"}.ion-clipboard:before{content:"\f127"}.ion-clock:before{content:"\f26e"}.ion-close:before{content:"\f12a"}.ion-close-circled:before{content:"\f128"}.ion-close-round:before{content:"\f129"}.ion-closed-captioning:before{content:"\f317"}.ion-cloud:before{content:"\f12b"}.ion-code:before{content:"\f271"}.ion-code-download:before{content:"\f26f"}.ion-code-working:before{content:"\f270"}.ion-coffee:before{content:"\f272"}.ion-compass:before{content:"\f273"}.ion-compose:before{content:"\f12c"}.ion-connection-bars:before{content:"\f274"}.ion-contrast:before{content:"\f275"}.ion-crop:before{content:"\f3c1"}.ion-cube:before{content:"\f318"}.ion-disc:before{content:"\f12d"}.ion-document:before{content:"\f12f"}.ion-document-text:before{content:"\f12e"}.ion-drag:before{content:"\f130"}.ion-earth:before{content:"\f276"}.ion-easel:before{content:"\f3c2"}.ion-edit:before{content:"\f2bf"}.ion-egg:before{content:"\f277"}.ion-eject:before{content:"\f131"}.ion-email:before{content:"\f132"}.ion-email-unread:before{content:"\f3c3"}.ion-erlenmeyer-flask:before{content:"\f3c5"}.ion-erlenmeyer-flask-bubbles:before{content:"\f3c4"}.ion-eye:before{content:"\f133"}.ion-eye-disabled:before{content:"\f306"}.ion-female:before{content:"\f278"}.ion-filing:before{content:"\f134"}.ion-film-marker:before{content:"\f135"}.ion-fireball:before{content:"\f319"}.ion-flag:before{content:"\f279"}.ion-flame:before{content:"\f31a"}.ion-flash:before{content:"\f137"}.ion-flash-off:before{content:"\f136"}.ion-folder:before{content:"\f139"}.ion-fork:before{content:"\f27a"}.ion-fork-repo:before{content:"\f2c0"}.ion-forward:before{content:"\f13a"}.ion-funnel:before{content:"\f31b"}.ion-gear-a:before{content:"\f13d"}.ion-gear-b:before{content:"\f13e"}.ion-grid:before{content:"\f13f"}.ion-hammer:before{content:"\f27b"}.ion-happy:before{content:"\f31c"}.ion-happy-outline:before{content:"\f3c6"}.ion-headphone:before{content:"\f140"}.ion-heart:before{content:"\f141"}.ion-heart-broken:before{content:"\f31d"}.ion-help:before{content:"\f143"}.ion-help-buoy:before{content:"\f27c"}.ion-help-circled:before{content:"\f142"}.ion-home:before{content:"\f144"}.ion-icecream:before{content:"\f27d"}.ion-image:before{content:"\f147"}.ion-images:before{content:"\f148"}.ion-information:before{content:"\f14a"}.ion-information-circled:before{content:"\f149"}.ion-ionic:before{content:"\f14b"}.ion-ios-alarm:before{content:"\f3c8"}.ion-ios-alarm-outline:before{content:"\f3c7"}.ion-ios-albums:before{content:"\f3ca"}.ion-ios-albums-outline:before{content:"\f3c9"}.ion-ios-americanfootball:before{content:"\f3cc"}.ion-ios-americanfootball-outline:before{content:"\f3cb"}.ion-ios-analytics:before{content:"\f3ce"}.ion-ios-analytics-outline:before{content:"\f3cd"}.ion-ios-arrow-back:before{content:"\f3cf"}.ion-ios-arrow-down:before{content:"\f3d0"}.ion-ios-arrow-forward:before{content:"\f3d1"}.ion-ios-arrow-left:before{content:"\f3d2"}.ion-ios-arrow-right:before{content:"\f3d3"}.ion-ios-arrow-thin-down:before{content:"\f3d4"}.ion-ios-arrow-thin-left:before{content:"\f3d5"}.ion-ios-arrow-thin-right:before{content:"\f3d6"}.ion-ios-arrow-thin-up:before{content:"\f3d7"}.ion-ios-arrow-up:before{content:"\f3d8"}.ion-ios-at:before{content:"\f3da"}.ion-ios-at-outline:before{content:"\f3d9"}.ion-ios-barcode:before{content:"\f3dc"}.ion-ios-barcode-outline:before{content:"\f3db"}.ion-ios-baseball:before{content:"\f3de"}.ion-ios-baseball-outline:before{content:"\f3dd"}.ion-ios-basketball:before{content:"\f3e0"}.ion-ios-basketball-outline:before{content:"\f3df"}.ion-ios-bell:before{content:"\f3e2"}.ion-ios-bell-outline:before{content:"\f3e1"}.ion-ios-body:before{content:"\f3e4"}.ion-ios-body-outline:before{content:"\f3e3"}.ion-ios-bolt:before{content:"\f3e6"}.ion-ios-bolt-outline:before{content:"\f3e5"}.ion-ios-book:before{content:"\f3e8"}.ion-ios-book-outline:before{content:"\f3e7"}.ion-ios-bookmarks:before{content:"\f3ea"}.ion-ios-bookmarks-outline:before{content:"\f3e9"}.ion-ios-box:before{content:"\f3ec"}.ion-ios-box-outline:before{content:"\f3eb"}.ion-ios-briefcase:before{content:"\f3ee"}.ion-ios-briefcase-outline:before{content:"\f3ed"}.ion-ios-browsers:before{content:"\f3f0"}.ion-ios-browsers-outline:before{content:"\f3ef"}.ion-ios-calculator:before{content:"\f3f2"}.ion-ios-calculator-outline:before{content:"\f3f1"}.ion-ios-calendar:before{content:"\f3f4"}.ion-ios-calendar-outline:before{content:"\f3f3"}.ion-ios-camera:before{content:"\f3f6"}.ion-ios-camera-outline:before{content:"\f3f5"}.ion-ios-cart:before{content:"\f3f8"}.ion-ios-cart-outline:before{content:"\f3f7"}.ion-ios-chatboxes:before{content:"\f3fa"}.ion-ios-chatboxes-outline:before{content:"\f3f9"}.ion-ios-chatbubble:before{content:"\f3fc"}.ion-ios-chatbubble-outline:before{content:"\f3fb"}.ion-ios-checkmark:before{content:"\f3ff"}.ion-ios-checkmark-empty:before{content:"\f3fd"}.ion-ios-checkmark-outline:before{content:"\f3fe"}.ion-ios-circle-filled:before{content:"\f400"}.ion-ios-circle-outline:before{content:"\f401"}.ion-ios-clock:before{content:"\f403"}.ion-ios-clock-outline:before{content:"\f402"}.ion-ios-close:before{content:"\f406"}.ion-ios-close-empty:before{content:"\f404"}.ion-ios-close-outline:before{content:"\f405"}.ion-ios-cloud:before{content:"\f40c"}.ion-ios-cloud-download:before{content:"\f408"}.ion-ios-cloud-download-outline:before{content:"\f407"}.ion-ios-cloud-outline:before{content:"\f409"}.ion-ios-cloud-upload:before{content:"\f40b"}.ion-ios-cloud-upload-outline:before{content:"\f40a"}.ion-ios-cloudy:before{content:"\f410"}.ion-ios-cloudy-night:before{content:"\f40e"}.ion-ios-cloudy-night-outline:before{content:"\f40d"}.ion-ios-cloudy-outline:before{content:"\f40f"}.ion-ios-cog:before{content:"\f412"}.ion-ios-cog-outline:before{content:"\f411"}.ion-ios-color-filter:before{content:"\f414"}.ion-ios-color-filter-outline:before{content:"\f413"}.ion-ios-color-wand:before{content:"\f416"}.ion-ios-color-wand-outline:before{content:"\f415"}.ion-ios-compose:before{content:"\f418"}.ion-ios-compose-outline:before{content:"\f417"}.ion-ios-contact:before{content:"\f41a"}.ion-ios-contact-outline:before{content:"\f419"}.ion-ios-copy:before{content:"\f41c"}.ion-ios-copy-outline:before{content:"\f41b"}.ion-ios-crop:before{content:"\f41e"}.ion-ios-crop-strong:before{content:"\f41d"}.ion-ios-download:before{content:"\f420"}.ion-ios-download-outline:before{content:"\f41f"}.ion-ios-drag:before{content:"\f421"}.ion-ios-email:before{content:"\f423"}.ion-ios-email-outline:before{content:"\f422"}.ion-ios-eye:before{content:"\f425"}.ion-ios-eye-outline:before{content:"\f424"}.ion-ios-fastforward:before{content:"\f427"}.ion-ios-fastforward-outline:before{content:"\f426"}.ion-ios-filing:before{content:"\f429"}.ion-ios-filing-outline:before{content:"\f428"}.ion-ios-film:before{content:"\f42b"}.ion-ios-film-outline:before{content:"\f42a"}.ion-ios-flag:before{content:"\f42d"}.ion-ios-flag-outline:before{content:"\f42c"}.ion-ios-flame:before{content:"\f42f"}.ion-ios-flame-outline:before{content:"\f42e"}.ion-ios-flask:before{content:"\f431"}.ion-ios-flask-outline:before{content:"\f430"}.ion-ios-flower:before{content:"\f433"}.ion-ios-flower-outline:before{content:"\f432"}.ion-ios-folder:before{content:"\f435"}.ion-ios-folder-outline:before{content:"\f434"}.ion-ios-football:before{content:"\f437"}.ion-ios-football-outline:before{content:"\f436"}.ion-ios-game-controller-a:before{content:"\f439"}.ion-ios-game-controller-a-outline:before{content:"\f438"}.ion-ios-game-controller-b:before{content:"\f43b"}.ion-ios-game-controller-b-outline:before{content:"\f43a"}.ion-ios-gear:before{content:"\f43d"}.ion-ios-gear-outline:before{content:"\f43c"}.ion-ios-glasses:before{content:"\f43f"}.ion-ios-glasses-outline:before{content:"\f43e"}.ion-ios-grid-view:before{content:"\f441"}.ion-ios-grid-view-outline:before{content:"\f440"}.ion-ios-heart:before{content:"\f443"}.ion-ios-heart-outline:before{content:"\f442"}.ion-ios-help:before{content:"\f446"}.ion-ios-help-empty:before{content:"\f444"}.ion-ios-help-outline:before{content:"\f445"}.ion-ios-home:before{content:"\f448"}.ion-ios-home-outline:before{content:"\f447"}.ion-ios-infinite:before{content:"\f44a"}.ion-ios-infinite-outline:before{content:"\f449"}.ion-ios-information:before{content:"\f44d"}.ion-ios-information-empty:before{content:"\f44b"}.ion-ios-information-outline:before{content:"\f44c"}.ion-ios-ionic-outline:before{content:"\f44e"}.ion-ios-keypad:before{content:"\f450"}.ion-ios-keypad-outline:before{content:"\f44f"}.ion-ios-lightbulb:before{content:"\f452"}.ion-ios-lightbulb-outline:before{content:"\f451"}.ion-ios-list:before{content:"\f454"}.ion-ios-list-outline:before{content:"\f453"}.ion-ios-location:before{content:"\f456"}.ion-ios-location-outline:before{content:"\f455"}.ion-ios-locked:before{content:"\f458"}.ion-ios-locked-outline:before{content:"\f457"}.ion-ios-loop:before{content:"\f45a"}.ion-ios-loop-strong:before{content:"\f459"}.ion-ios-medical:before{content:"\f45c"}.ion-ios-medical-outline:before{content:"\f45b"}.ion-ios-medkit:before{content:"\f45e"}.ion-ios-medkit-outline:before{content:"\f45d"}.ion-ios-mic:before{content:"\f461"}.ion-ios-mic-off:before{content:"\f45f"}.ion-ios-mic-outline:before{content:"\f460"}.ion-ios-minus:before{content:"\f464"}.ion-ios-minus-empty:before{content:"\f462"}.ion-ios-minus-outline:before{content:"\f463"}.ion-ios-monitor:before{content:"\f466"}.ion-ios-monitor-outline:before{content:"\f465"}.ion-ios-moon:before{content:"\f468"}.ion-ios-moon-outline:before{content:"\f467"}.ion-ios-more:before{content:"\f46a"}.ion-ios-more-outline:before{content:"\f469"}.ion-ios-musical-note:before{content:"\f46b"}.ion-ios-musical-notes:before{content:"\f46c"}.ion-ios-navigate:before{content:"\f46e"}.ion-ios-navigate-outline:before{content:"\f46d"}.ion-ios-nutrition:before{content:"\f470"}.ion-ios-nutrition-outline:before{content:"\f46f"}.ion-ios-paper:before{content:"\f472"}.ion-ios-paper-outline:before{content:"\f471"}.ion-ios-paperplane:before{content:"\f474"}.ion-ios-paperplane-outline:before{content:"\f473"}.ion-ios-partlysunny:before{content:"\f476"}.ion-ios-partlysunny-outline:before{content:"\f475"}.ion-ios-pause:before{content:"\f478"}.ion-ios-pause-outline:before{content:"\f477"}.ion-ios-paw:before{content:"\f47a"}.ion-ios-paw-outline:before{content:"\f479"}.ion-ios-people:before{content:"\f47c"}.ion-ios-people-outline:before{content:"\f47b"}.ion-ios-person:before{content:"\f47e"}.ion-ios-person-outline:before{content:"\f47d"}.ion-ios-personadd:before{content:"\f480"}.ion-ios-personadd-outline:before{content:"\f47f"}.ion-ios-photos:before{content:"\f482"}.ion-ios-photos-outline:before{content:"\f481"}.ion-ios-pie:before{content:"\f484"}.ion-ios-pie-outline:before{content:"\f483"}.ion-ios-pint:before{content:"\f486"}.ion-ios-pint-outline:before{content:"\f485"}.ion-ios-play:before{content:"\f488"}.ion-ios-play-outline:before{content:"\f487"}.ion-ios-plus:before{content:"\f48b"}.ion-ios-plus-empty:before{content:"\f489"}.ion-ios-plus-outline:before{content:"\f48a"}.ion-ios-pricetag:before{content:"\f48d"}.ion-ios-pricetag-outline:before{content:"\f48c"}.ion-ios-pricetags:before{content:"\f48f"}.ion-ios-pricetags-outline:before{content:"\f48e"}.ion-ios-printer:before{content:"\f491"}.ion-ios-printer-outline:before{content:"\f490"}.ion-ios-pulse:before{content:"\f493"}.ion-ios-pulse-strong:before{content:"\f492"}.ion-ios-rainy:before{content:"\f495"}.ion-ios-rainy-outline:before{content:"\f494"}.ion-ios-recording:before{content:"\f497"}.ion-ios-recording-outline:before{content:"\f496"}.ion-ios-redo:before{content:"\f499"}.ion-ios-redo-outline:before{content:"\f498"}.ion-ios-refresh:before{content:"\f49c"}.ion-ios-refresh-empty:before{content:"\f49a"}.ion-ios-refresh-outline:before{content:"\f49b"}.ion-ios-reload:before{content:"\f49d"}.ion-ios-reverse-camera:before{content:"\f49f"}.ion-ios-reverse-camera-outline:before{content:"\f49e"}.ion-ios-rewind:before{content:"\f4a1"}.ion-ios-rewind-outline:before{content:"\f4a0"}.ion-ios-rose:before{content:"\f4a3"}.ion-ios-rose-outline:before{content:"\f4a2"}.ion-ios-search:before{content:"\f4a5"}.ion-ios-search-strong:before{content:"\f4a4"}.ion-ios-settings:before{content:"\f4a7"}.ion-ios-settings-strong:before{content:"\f4a6"}.ion-ios-shuffle:before{content:"\f4a9"}.ion-ios-shuffle-strong:before{content:"\f4a8"}.ion-ios-skipbackward:before{content:"\f4ab"}.ion-ios-skipbackward-outline:before{content:"\f4aa"}.ion-ios-skipforward:before{content:"\f4ad"}.ion-ios-skipforward-outline:before{content:"\f4ac"}.ion-ios-snowy:before{content:"\f4ae"}.ion-ios-speedometer:before{content:"\f4b0"}.ion-ios-speedometer-outline:before{content:"\f4af"}.ion-ios-star:before{content:"\f4b3"}.ion-ios-star-half:before{content:"\f4b1"}.ion-ios-star-outline:before{content:"\f4b2"}.ion-ios-stopwatch:before{content:"\f4b5"}.ion-ios-stopwatch-outline:before{content:"\f4b4"}.ion-ios-sunny:before{content:"\f4b7"}.ion-ios-sunny-outline:before{content:"\f4b6"}.ion-ios-telephone:before{content:"\f4b9"}.ion-ios-telephone-outline:before{content:"\f4b8"}.ion-ios-tennisball:before{content:"\f4bb"}.ion-ios-tennisball-outline:before{content:"\f4ba"}.ion-ios-thunderstorm:before{content:"\f4bd"}.ion-ios-thunderstorm-outline:before{content:"\f4bc"}.ion-ios-time:before{content:"\f4bf"}.ion-ios-time-outline:before{content:"\f4be"}.ion-ios-timer:before{content:"\f4c1"}.ion-ios-timer-outline:before{content:"\f4c0"}.ion-ios-toggle:before{content:"\f4c3"}.ion-ios-toggle-outline:before{content:"\f4c2"}.ion-ios-trash:before{content:"\f4c5"}.ion-ios-trash-outline:before{content:"\f4c4"}.ion-ios-undo:before{content:"\f4c7"}.ion-ios-undo-outline:before{content:"\f4c6"}.ion-ios-unlocked:before{content:"\f4c9"}.ion-ios-unlocked-outline:before{content:"\f4c8"}.ion-ios-upload:before{content:"\f4cb"}.ion-ios-upload-outline:before{content:"\f4ca"}.ion-ios-videocam:before{content:"\f4cd"}.ion-ios-videocam-outline:before{content:"\f4cc"}.ion-ios-volume-high:before{content:"\f4ce"}.ion-ios-volume-low:before{content:"\f4cf"}.ion-ios-wineglass:before{content:"\f4d1"}.ion-ios-wineglass-outline:before{content:"\f4d0"}.ion-ios-world:before{content:"\f4d3"}.ion-ios-world-outline:before{content:"\f4d2"}.ion-ipad:before{content:"\f1f9"}.ion-iphone:before{content:"\f1fa"}.ion-ipod:before{content:"\f1fb"}.ion-jet:before{content:"\f295"}.ion-key:before{content:"\f296"}.ion-knife:before{content:"\f297"}.ion-laptop:before{content:"\f1fc"}.ion-leaf:before{content:"\f1fd"}.ion-levels:before{content:"\f298"}.ion-lightbulb:before{content:"\f299"}.ion-link:before{content:"\f1fe"}.ion-load-a:before{content:"\f29a"}.ion-load-b:before{content:"\f29b"}.ion-load-c:before{content:"\f29c"}.ion-load-d:before{content:"\f29d"}.ion-location:before{content:"\f1ff"}.ion-lock-combination:before{content:"\f4d4"}.ion-locked:before{content:"\f200"}.ion-log-in:before{content:"\f29e"}.ion-log-out:before{content:"\f29f"}.ion-loop:before{content:"\f201"}.ion-magnet:before{content:"\f2a0"}.ion-male:before{content:"\f2a1"}.ion-man:before{content:"\f202"}.ion-map:before{content:"\f203"}.ion-medkit:before{content:"\f2a2"}.ion-merge:before{content:"\f33f"}.ion-mic-a:before{content:"\f204"}.ion-mic-b:before{content:"\f205"}.ion-mic-c:before{content:"\f206"}.ion-minus:before{content:"\f209"}.ion-minus-circled:before{content:"\f207"}.ion-minus-round:before{content:"\f208"}.ion-model-s:before{content:"\f2c1"}.ion-monitor:before{content:"\f20a"}.ion-more:before{content:"\f20b"}.ion-mouse:before{content:"\f340"}.ion-music-note:before{content:"\f20c"}.ion-navicon:before{content:"\f20e"}.ion-navicon-round:before{content:"\f20d"}.ion-navigate:before{content:"\f2a3"}.ion-network:before{content:"\f341"}.ion-no-smoking:before{content:"\f2c2"}.ion-nuclear:before{content:"\f2a4"}.ion-outlet:before{content:"\f342"}.ion-paintbrush:before{content:"\f4d5"}.ion-paintbucket:before{content:"\f4d6"}.ion-paper-airplane:before{content:"\f2c3"}.ion-paperclip:before{content:"\f20f"}.ion-pause:before{content:"\f210"}.ion-person:before{content:"\f213"}.ion-person-add:before{content:"\f211"}.ion-person-stalker:before{content:"\f212"}.ion-pie-graph:before{content:"\f2a5"}.ion-pin:before{content:"\f2a6"}.ion-pinpoint:before{content:"\f2a7"}.ion-pizza:before{content:"\f2a8"}.ion-plane:before{content:"\f214"}.ion-planet:before{content:"\f343"}.ion-play:before{content:"\f215"}.ion-playstation:before{content:"\f30a"}.ion-plus:before{content:"\f218"}.ion-plus-circled:before{content:"\f216"}.ion-plus-round:before{content:"\f217"}.ion-podium:before{content:"\f344"}.ion-pound:before{content:"\f219"}.ion-power:before{content:"\f2a9"}.ion-pricetag:before{content:"\f2aa"}.ion-pricetags:before{content:"\f2ab"}.ion-printer:before{content:"\f21a"}.ion-pull-request:before{content:"\f345"}.ion-qr-scanner:before{content:"\f346"}.ion-quote:before{content:"\f347"}.ion-radio-waves:before{content:"\f2ac"}.ion-record:before{content:"\f21b"}.ion-refresh:before{content:"\f21c"}.ion-reply:before{content:"\f21e"}.ion-reply-all:before{content:"\f21d"}.ion-ribbon-a:before{content:"\f348"}.ion-ribbon-b:before{content:"\f349"}.ion-sad:before{content:"\f34a"}.ion-sad-outline:before{content:"\f4d7"}.ion-scissors:before{content:"\f34b"}.ion-search:before{content:"\f21f"}.ion-settings:before{content:"\f2ad"}.ion-share:before{content:"\f220"}.ion-shuffle:before{content:"\f221"}.ion-skip-backward:before{content:"\f222"}.ion-skip-forward:before{content:"\f223"}.ion-social-android:before{content:"\f225"}.ion-social-android-outline:before{content:"\f224"}.ion-social-angular:before{content:"\f4d9"}.ion-social-angular-outline:before{content:"\f4d8"}.ion-social-apple:before{content:"\f227"}.ion-social-apple-outline:before{content:"\f226"}.ion-social-bitcoin:before{content:"\f2af"}.ion-social-bitcoin-outline:before{content:"\f2ae"}.ion-social-buffer:before{content:"\f229"}.ion-social-buffer-outline:before{content:"\f228"}.ion-social-chrome:before{content:"\f4db"}.ion-social-chrome-outline:before{content:"\f4da"}.ion-social-codepen:before{content:"\f4dd"}.ion-social-codepen-outline:before{content:"\f4dc"}.ion-social-css3:before{content:"\f4df"}.ion-social-css3-outline:before{content:"\f4de"}.ion-social-designernews:before{content:"\f22b"}.ion-social-designernews-outline:before{content:"\f22a"}.ion-social-dribbble:before{content:"\f22d"}.ion-social-dribbble-outline:before{content:"\f22c"}.ion-social-dropbox:before{content:"\f22f"}.ion-social-dropbox-outline:before{content:"\f22e"}.ion-social-euro:before{content:"\f4e1"}.ion-social-euro-outline:before{content:"\f4e0"}.ion-social-facebook:before{content:"\f231"}.ion-social-facebook-outline:before{content:"\f230"}.ion-social-foursquare:before{content:"\f34d"}.ion-social-foursquare-outline:before{content:"\f34c"}.ion-social-freebsd-devil:before{content:"\f2c4"}.ion-social-github:before{content:"\f233"}.ion-social-github-outline:before{content:"\f232"}.ion-social-google:before{content:"\f34f"}.ion-social-google-outline:before{content:"\f34e"}.ion-social-googleplus:before{content:"\f235"}.ion-social-googleplus-outline:before{content:"\f234"}.ion-social-hackernews:before{content:"\f237"}.ion-social-hackernews-outline:before{content:"\f236"}.ion-social-html5:before{content:"\f4e3"}.ion-social-html5-outline:before{content:"\f4e2"}.ion-social-instagram:before{content:"\f351"}.ion-social-instagram-outline:before{content:"\f350"}.ion-social-javascript:before{content:"\f4e5"}.ion-social-javascript-outline:before{content:"\f4e4"}.ion-social-linkedin:before{content:"\f239"}.ion-social-linkedin-outline:before{content:"\f238"}.ion-social-markdown:before{content:"\f4e6"}.ion-social-nodejs:before{content:"\f4e7"}.ion-social-octocat:before{content:"\f4e8"}.ion-social-pinterest:before{content:"\f2b1"}.ion-social-pinterest-outline:before{content:"\f2b0"}.ion-social-python:before{content:"\f4e9"}.ion-social-reddit:before{content:"\f23b"}.ion-social-reddit-outline:before{content:"\f23a"}.ion-social-rss:before{content:"\f23d"}.ion-social-rss-outline:before{content:"\f23c"}.ion-social-sass:before{content:"\f4ea"}.ion-social-skype:before{content:"\f23f"}.ion-social-skype-outline:before{content:"\f23e"}.ion-social-snapchat:before{content:"\f4ec"}.ion-social-snapchat-outline:before{content:"\f4eb"}.ion-social-tumblr:before{content:"\f241"}.ion-social-tumblr-outline:before{content:"\f240"}.ion-social-tux:before{content:"\f2c5"}.ion-social-twitch:before{content:"\f4ee"}.ion-social-twitch-outline:before{content:"\f4ed"}.ion-social-twitter:before{content:"\f243"}.ion-social-twitter-outline:before{content:"\f242"}.ion-social-usd:before{content:"\f353"}.ion-social-usd-outline:before{content:"\f352"}.ion-social-vimeo:before{content:"\f245"}.ion-social-vimeo-outline:before{content:"\f244"}.ion-social-whatsapp:before{content:"\f4f0"}.ion-social-whatsapp-outline:before{content:"\f4ef"}.ion-social-windows:before{content:"\f247"}.ion-social-windows-outline:before{content:"\f246"}.ion-social-wordpress:before{content:"\f249"}.ion-social-wordpress-outline:before{content:"\f248"}.ion-social-yahoo:before{content:"\f24b"}.ion-social-yahoo-outline:before{content:"\f24a"}.ion-social-yen:before{content:"\f4f2"}.ion-social-yen-outline:before{content:"\f4f1"}.ion-social-youtube:before{content:"\f24d"}.ion-social-youtube-outline:before{content:"\f24c"}.ion-soup-can:before{content:"\f4f4"}.ion-soup-can-outline:before{content:"\f4f3"}.ion-speakerphone:before{content:"\f2b2"}.ion-speedometer:before{content:"\f2b3"}.ion-spoon:before{content:"\f2b4"}.ion-star:before{content:"\f24e"}.ion-stats-bars:before{content:"\f2b5"}.ion-steam:before{content:"\f30b"}.ion-stop:before{content:"\f24f"}.ion-thermometer:before{content:"\f2b6"}.ion-thumbsdown:before{content:"\f250"}.ion-thumbsup:before{content:"\f251"}.ion-toggle:before{content:"\f355"}.ion-toggle-filled:before{content:"\f354"}.ion-transgender:before{content:"\f4f5"}.ion-trash-a:before{content:"\f252"}.ion-trash-b:before{content:"\f253"}.ion-trophy:before{content:"\f356"}.ion-tshirt:before{content:"\f4f7"}.ion-tshirt-outline:before{content:"\f4f6"}.ion-umbrella:before{content:"\f2b7"}.ion-university:before{content:"\f357"}.ion-unlocked:before{content:"\f254"}.ion-upload:before{content:"\f255"}.ion-usb:before{content:"\f2b8"}.ion-videocamera:before{content:"\f256"}.ion-volume-high:before{content:"\f257"}.ion-volume-low:before{content:"\f258"}.ion-volume-medium:before{content:"\f259"}.ion-volume-mute:before{content:"\f25a"}.ion-wand:before{content:"\f358"}.ion-waterdrop:before{content:"\f25b"}.ion-wifi:before{content:"\f25c"}.ion-wineglass:before{content:"\f2b9"}.ion-woman:before{content:"\f25d"}.ion-wrench:before{content:"\f2ba"}.ion-xbox:before{content:"\f30c"} diff --git a/public/css/light.css b/public/css/light.css new file mode 100644 index 0000000..9adc23e --- /dev/null +++ b/public/css/light.css @@ -0,0 +1,9226 @@ +/*----------------------------------------------------------------------------------- + + Theme Name: Vie + Description: ReactJS Creative Agency & Portfolio template + Author: ThemesCamp + Author URI: http://themeforest.net/user/ThemesCamp + Version: 1.2 + +-----------------------------------------------------------------------------------*/ +/* ---------------------------------------------------------------- + +== Table Of Content + + |--- BASE + + |- typography + |- helper classes + + |--- SHORTCODES + + |- extra + |- overlay + |- section-heading + |- buttons + |- navbar + |- sliders + |- intro + |- feature-box + |- clients + |- counter + |- portfolio + |- process + |- progress-bar + |- tabs + |- team + |- testimonials + |- blog + |- contact-form + |- footers + + |--- BASE + + |- responsive + + + +---------------------------------------------------------------- */ +/* ====================== [ Start Typography ] ====================== */ + +@import "/css/bootstrap.min.css"; +@import "/css/animate.css"; +@import "/css/font-awesome.min.css"; +@import "/css/ionicons.min.css"; +@import "/css/pe-icon.min.css"; +@import "/css/font-awesome.min.css"; + +* { + margin: 0; + padding: 0; + -webkit-box-sizing: border-box; + box-sizing: border-box; + outline: none; + list-style: none; +} + +html { + -webkit-box-sizing: border-box; + box-sizing: border-box; + -webkit-font-smoothing: antialiased; +} + +body { + color: #111; + line-height: 1.5; + font-weight: 400; + overflow-x: hidden !important; + font-family: "Poppins", sans-serif; +} + +img { + width: 100%; + height: auto; +} + +span, +a, +a:hover { + display: inline-block; + color: inherit; +} + +h1 { + font-size: 55px; +} + +h2 { + font-size: 40px; +} + +h3 { + font-size: 35px; +} + +h4 { + font-size: 30px; +} + +h5 { + font-size: 25px; +} + +h6 { + font-size: 18px; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + line-height: 1.4; + font-weight: 500; +} + +p { + color: #888; + font-size: 16px; + font-weight: 300; + line-height: 2; + margin: 0; +} + +a, +span { + display: inline-block; +} + +a:hover, +span:hover { + text-decoration: none; +} + +.container { + max-width: 1200px; +} + +.custom-font { + font-family: "Poppins", sans-serif; +} + +.color-font { + background: -webkit-gradient( + linear, + left top, + right top, + from(#375761), + to(#c6825b) + ); + background: -webkit-linear-gradient(left, #375761, #c6825b); + background: -o-linear-gradient(left, #375761, #c6825b); + background: linear-gradient(to right, #375761, #c6825b); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; +} + +.back-color { + background: -webkit-gradient( + linear, + left top, + right top, + from(#12c2e9), + color-stop(#c471ed), + to(#f64f59) + ); + background: -webkit-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: -o-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: linear-gradient(to right, #12c2e9, #c471ed, #f64f59); +} + +.line { + position: absolute; + height: 1px; + width: 65%; + background: -webkit-gradient( + linear, + left top, + right top, + from(#12c2e9), + color-stop(#c471ed), + to(#f64f59) + ); + background: -webkit-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: -o-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: linear-gradient(to right, #12c2e9, #c471ed, #f64f59); +} + +.line.top { + top: 0; +} + +.line.bottom { + bottom: 0; +} + +.line.left { + left: 0; +} + +.line.right { + right: 0; +} + +/* ====================== [ End Typography ] ====================== */ +/* ====================== [ Start Helper Classes ] ====================== */ +.o-hidden { + overflow: hidden; +} + +.position-re { + position: relative; +} + +.ontop { + position: relative; + z-index: 7; +} + +.full-over { + position: absolute !important; + top: 0; + left: 0; + height: 100%; + width: 100%; +} + +.full-width { + width: 100% !important; +} + +.main-color { + color: #12c2e9 !important; +} + +.bg-gray { + background-color: #f8f4f3; +} + +.bg-gray .primery-shadow { + -webkit-box-shadow: 0px 4px 30px -4px rgba(0, 0, 0, 0.2); + box-shadow: 0px 4px 30px -4px rgba(0, 0, 0, 0.2); +} + +.bg-dark { + background-color: #141414 !important; +} + +.bg-dark .primery-shadow { + -webkit-box-shadow: 0px 4px 40px -4px rgba(255, 255, 255, 0.2); + box-shadow: 0px 4px 40px -4px rgba(255, 255, 255, 0.2); +} + +.bg-color { + background-color: #12c2e9 !important; +} + +.bg-color .primery-shadow { + -webkit-box-shadow: 0px 4px 40px -4px rgba(255, 255, 255, 0.2); + box-shadow: 0px 4px 40px -4px rgba(255, 255, 255, 0.2); +} + +.sub-bg { + background: #f5f5f5; +} + +.bg-img { + background-size: cover; + background-repeat: no-repeat; +} + +.bg-center { + background-position: center center; +} + +.bg-fixed { + background-attachment: fixed; +} + +.bg-repeat { + background-size: auto; + background-repeat: repeat; +} + +.section-padding { + padding: 120px 0; +} + +.section-ptb { + padding: 80px 0; +} + +.cmd-padding { + padding: 0 10px; +} + +.csm-padding { + padding: 0 5px; +} + +.head-pt { + padding: 80px 0 0; +} + +.head-pb { + padding: 0 0 80px; +} + +.rounded { + border-radius: 5px; +} + +.circle { + border-radius: 50%; +} + +.unlist { + list-style: none; +} + +.undecro:hover { + text-decoration: none; +} + +.inline { + display: inline-block; +} + +.valign { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.primery-shadow { + -webkit-box-shadow: 0px 8px 30px -4px rgba(0, 0, 0, 0.1); + box-shadow: 0px 8px 30px -4px rgba(0, 0, 0, 0.1); +} + +.padding5 { + padding-right: 5%; + padding-left: 5%; +} + +/*------------------------------------------------------- + text color +-------------------------------------------------------*/ +.text-white { + color: #fff; +} + +.text-black { + color: #000; +} + +.text-extra-light-gray { + color: #b7b7b7; +} + +/*------------------------------------------------------- + font-weight +-------------------------------------------------------*/ +.fw-100 { + font-weight: 100 !important; +} + +.fw-200 { + font-weight: 200 !important; +} + +.fw-300 { + font-weight: 300 !important; +} + +.fw-400 { + font-weight: 400 !important; +} + +.fw-500 { + font-weight: 500 !important; +} + +.fw-600 { + font-weight: 600 !important; +} + +.fw-700 { + font-weight: 700 !important; +} + +.fw-800 { + font-weight: 800 !important; +} + +.fw-900 { + font-weight: 900 !important; +} + +/*------------------------------------------------------- + font-size +-------------------------------------------------------*/ +.fz-10 { + font-size: 10px !important; +} + +.fz-12 { + font-size: 12px !important; +} + +.fz-14 { + font-size: 14px !important; +} + +.fz-15 { + font-size: 15px !important; +} + +.fz-16 { + font-size: 16px !important; +} + +.fz-18 { + font-size: 18px !important; +} + +.fz-20 { + font-size: 20px !important; +} + +.fz-22 { + font-size: 22px !important; +} + +.fz-25 { + font-size: 25px !important; +} + +.fz-30 { + font-size: 30px !important; +} + +.fz-40 { + font-size: 40px !important; +} + +.fz-50 { + font-size: 50px !important; +} + +/*------------------------------------------------------- + line-height +-------------------------------------------------------*/ +.line-height-10 { + line-height: 10px; +} + +.line-height-13 { + line-height: 13px; +} + +.line-height-18 { + line-height: 18px; +} + +.line-height-20 { + line-height: 20px; +} + +.line-height-24 { + line-height: 24px; +} + +.line-height-22 { + line-height: 22px; +} + +.line-height-26 { + line-height: 26px; +} + +.line-height-28 { + line-height: 28px; +} + +.line-height-30 { + line-height: 30px; +} + +.line-height-35 { + line-height: 35px; +} + +.line-height-40 { + line-height: 40px; +} + +.line-height-45 { + line-height: 45px; +} + +.line-height-50 { + line-height: 50px; +} + +.line-height-55 { + line-height: 55px; +} + +.line-height-60 { + line-height: 60px; +} + +.line-height-65 { + line-height: 65px; +} + +.line-height-70 { + line-height: 70px; +} + +.line-height-75 { + line-height: 75px; +} + +.line-height-80 { + line-height: 80px; +} + +.line-height-85 { + line-height: 85px; +} + +.line-height-90 { + line-height: 90px; +} + +.line-height-95 { + line-height: 95px; +} + +.line-height-100 { + line-height: 100px; +} + +.line-height-110 { + line-height: 110px; +} + +.line-height-120 { + line-height: 120px; +} + +/*------------------------------------------------------- + text-transform +-------------------------------------------------------*/ +.text-u { + text-transform: uppercase !important; +} + +.text-l { + text-transform: lowercase !important; +} + +.text-c { + text-transform: capitalize !important; +} + +.text-non { + text-transform: none !important; +} + +.text-i { + font-style: italic; +} + +/*------------------------------------------------------- + letter-spacing +-------------------------------------------------------*/ +.ls0 { + letter-spacing: 0px !important; +} + +.ls1 { + letter-spacing: 1px !important; +} + +.ls2 { + letter-spacing: 2px !important; +} + +.ls3 { + letter-spacing: 3px !important; +} + +.ls4 { + letter-spacing: 4px !important; +} + +.ls5 { + letter-spacing: 5px !important; +} + +.ls10 { + letter-spacing: 10px !important; +} + +/*------------------------------------------------------- + margin-top (0/100) +5 +-------------------------------------------------------*/ +.mt-0 { + margin-top: 0 !important; +} + +.mt-5 { + margin-top: 5px !important; +} + +.mt-10 { + margin-top: 10px !important; +} + +.mt-15 { + margin-top: 15px !important; +} + +.mt-20 { + margin-top: 20px !important; +} + +.mt-25 { + margin-top: 25px !important; +} + +.mt-30 { + margin-top: 30px !important; +} + +.mt-35 { + margin-top: 35px !important; +} + +.mt-40 { + margin-top: 40px !important; +} + +.mt-45 { + margin-top: 45px !important; +} + +.mt-50 { + margin-top: 50px !important; +} + +.mt-55 { + margin-top: 55px !important; +} + +.mt-60 { + margin-top: 60px !important; +} + +.mt-62 { + margin-top: 62px !important; +} + +.mt-65 { + margin-top: 65px !important; +} + +.mt-70 { + margin-top: 70px !important; +} + +.mt-75 { + margin-top: 75px !important; +} + +.mt-80 { + margin-top: 80px !important; +} + +.mt-85 { + margin-top: 85px !important; +} + +.mt-90 { + margin-top: 90px !important; +} + +.mt-95 { + margin-top: 95px !important; +} + +.mt-100 { + margin-top: 100px !important; +} + +/*------------------------------------------------------- + margin-bottom (0/100) +5 +-------------------------------------------------------*/ +.mb-0 { + margin-bottom: 0 !important; +} + +.mb-5 { + margin-bottom: 5px !important; +} + +.mb-10 { + margin-bottom: 10px !important; +} + +.mb-15 { + margin-bottom: 15px !important; +} + +.mb-20 { + margin-bottom: 20px !important; +} + +.mb-25 { + margin-bottom: 25px !important; +} + +.mb-30 { + margin-bottom: 30px !important; +} + +.mb-35 { + margin-bottom: 35px !important; +} + +.mb-40 { + margin-bottom: 40px !important; +} + +.mb-45 { + margin-bottom: 45px !important; +} + +.mb-50 { + margin-bottom: 50px !important; +} + +.mb-55 { + margin-bottom: 55px !important; +} + +.mb-60 { + margin-bottom: 60px !important; +} + +.mb-62 { + margin-bottom: 62px !important; +} + +.mb-65 { + margin-bottom: 65px !important; +} + +.mb-70 { + margin-bottom: 70px !important; +} + +.mb-75 { + margin-bottom: 75px !important; +} + +.mb-80 { + margin-bottom: 80px !important; +} + +.mb-85 { + margin-bottom: 85px !important; +} + +.mb-90 { + margin-bottom: 90px !important; +} + +.mb-95 { + margin-bottom: 95px !important; +} + +.mb-100 { + margin-bottom: 100px !important; +} + +/*------------------------------------------------------- + padding-top (0/100) +5 +-------------------------------------------------------*/ +.pt-0 { + padding-top: 0 !important; +} + +.pt-5 { + padding-top: 5px !important; +} + +.pt-10 { + padding-top: 10px !important; +} + +.pt-15 { + padding-top: 15px !important; +} + +.pt-20 { + padding-top: 20px !important; +} + +.pt-25 { + padding-top: 25px !important; +} + +.pt-30 { + padding-top: 30px !important; +} + +.pt-35 { + padding-top: 35px !important; +} + +.pt-40 { + padding-top: 40px !important; +} + +.pt-45 { + padding-top: 45px !important; +} + +.pt-50 { + padding-top: 50px !important; +} + +.pt-55 { + padding-top: 55px !important; +} + +.pt-60 { + padding-top: 60px !important; +} + +.pt-65 { + padding-top: 65px !important; +} + +.pt-70 { + padding-top: 70px !important; +} + +.pt-75 { + padding-top: 75px !important; +} + +.pt-80 { + padding-top: 80px !important; +} + +.pt-85 { + padding-top: 85px !important; +} + +.pt-90 { + padding-top: 90px !important; +} + +.pt-95 { + padding-top: 95px !important; +} + +.pt-100 { + padding-top: 100px !important; +} + +/*------------------------------------------------------- + padding-bottom (0/100) +5 +-------------------------------------------------------*/ +.pb-0 { + padding-bottom: 0 !important; +} + +.pb-5 { + padding-bottom: 5px !important; +} + +.pb-10 { + padding-bottom: 10px !important; +} + +.pb-15 { + padding-bottom: 15px !important; +} + +.pb-20 { + padding-bottom: 20px !important; +} + +.pb-25 { + padding-bottom: 25px !important; +} + +.pb-30 { + padding-bottom: 30px !important; +} + +.pb-35 { + padding-bottom: 35px !important; +} + +.pb-40 { + padding-bottom: 40px !important; +} + +.pb-45 { + padding-bottom: 45px !important; +} + +.pb-50 { + padding-bottom: 50px !important; +} + +.pb-55 { + padding-bottom: 55px !important; +} + +.pb-60 { + padding-bottom: 60px !important; +} + +.pb-65 { + padding-bottom: 65px !important; +} + +.pb-70 { + padding-bottom: 70px !important; +} + +.pb-75 { + padding-bottom: 75px !important; +} + +.pb-80 { + padding-bottom: 80px !important; +} + +.pb-85 { + padding-bottom: 85px !important; +} + +.pb-90 { + padding-bottom: 90px !important; +} + +.pb-95 { + padding-bottom: 95px !important; +} + +.pb-100 { + padding-bottom: 100px !important; +} + +.no-padding { + padding: 0 !important; +} + +/* ====================== [ End Helper Classes ] ====================== */ +/* ====================== [ Start Preloader ] ====================== */ +.pace { + pointer-events: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + z-index: 99999999999999; + position: fixed; + margin: auto; + top: 0; + left: 0; + right: 0; + bottom: 0; + width: 400px; + border: 0px; + height: 1px; + overflow: hidden; + background: rgba(255, 255, 255, 0.05); + -webkit-transition: all 1s; + -o-transition: all 1s; + transition: all 1s; +} + +.pace .pace-progress { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + max-width: 300px; + position: fixed; + z-index: 99999999999999; + display: block; + position: absolute; + top: 0; + right: 100%; + height: 100%; + width: 100%; + background: #12c2e9; + background: -webkit-gradient( + linear, + left top, + right top, + from(#12c2e9), + color-stop(#c471ed), + to(#f64f59) + ); + background: -webkit-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: -o-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: linear-gradient(to right, #12c2e9, #c471ed, #f64f59); +} + +.pace.pace-inactive { + width: 100vw; + opacity: 0; +} + +.pace.pace-inactive .pace-progress { + max-width: 100vw; +} + +#preloader { + width: 100%; + height: 100vh; + overflow: hidden; + position: fixed; + z-index: 9999999; +} + +#preloader:after, +#preloader:before { + content: ""; + position: fixed; + left: 0; + height: 50%; + width: 100%; + background: #252531; + -webkit-transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1); + -o-transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1); + transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1); +} + +#preloader:before { + top: 0; +} + +#preloader:after { + bottom: 0; +} + +#preloader.isdone { + visibility: hidden; + -webkit-transition-delay: 1.5s; + -o-transition-delay: 1.5s; + transition-delay: 1.5s; +} + +#preloader.isdone:after, +#preloader.isdone:before { + height: 0; + -webkit-transition: all 0.7s cubic-bezier(1, 0, 0.55, 1); + -o-transition: all 0.7s cubic-bezier(1, 0, 0.55, 1); + transition: all 0.7s cubic-bezier(1, 0, 0.55, 1); + -webkit-transition-delay: 1s; + -o-transition-delay: 1s; + transition-delay: 1s; +} + +.loading { + color: #fff; + position: fixed; + left: 50%; + top: calc(50% - 40px); + -webkit-transform: translateX(-50%) translateY(-50%); + -ms-transform: translateX(-50%) translateY(-50%); + transform: translateX(-50%) translateY(-50%); + font-weight: 300; + font-size: 13px; + text-transform: uppercase; + letter-spacing: 10px; + z-index: 9999999999; +} + +.loading.isdone { + top: 50%; + opacity: 0; + -webkit-transition: all 0.8s; + -o-transition: all 0.8s; + transition: all 0.8s; + -webkit-transition-delay: 0.5s; + -o-transition-delay: 0.5s; + transition-delay: 0.5s; +} + +.loading span { + -webkit-animation: loading 1.4s infinite alternate; + animation: loading 1.4s infinite alternate; +} + +.loading span:nth-child(1) { + -webkit-animation-delay: 0s; + animation-delay: 0s; +} + +.loading span:nth-child(2) { + -webkit-animation-delay: 0.1s; + animation-delay: 0.1s; +} + +.loading span:nth-child(3) { + -webkit-animation-delay: 0.2s; + animation-delay: 0.2s; +} + +.loading span:nth-child(4) { + -webkit-animation-delay: 0.3s; + animation-delay: 0.3s; +} + +.loading span:nth-child(5) { + -webkit-animation-delay: 0.4s; + animation-delay: 0.4s; +} + +.loading span:nth-child(6) { + -webkit-animation-delay: 0.5s; + animation-delay: 0.5s; +} + +.loading span:nth-child(7) { + -webkit-animation-delay: 0.6s; + animation-delay: 0.6s; +} + +@-webkit-keyframes loading { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + } +} + +@keyframes loading { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + } +} + +/* ====================== [ End Preloader ] ====================== */ +/* ====================== [ Start Text Animation & Images ] ====================== */ +.splitting.animated .char { + -webkit-animation: fadeInUp 0.4s cubic-bezier(0.3, 0, 0.7, 1) both; + animation: fadeInUp 0.4s cubic-bezier(0.3, 0, 0.7, 1) both; + -webkit-animation-delay: calc(30ms * var(--char-index)); + animation-delay: calc(30ms * var(--char-index)); +} + +.splitting .whitespace { + width: 5px; +} + +@-webkit-keyframes fadeInUp { + 0% { + opacity: 0; + -webkit-transform: translateY(20px); + transform: translateY(20px); + } + + 100% { + opacity: 1; + -webkit-transform: translateY(0); + transform: translateY(0); + } +} + +@keyframes fadeInUp { + 0% { + opacity: 0; + -webkit-transform: translateY(20px); + transform: translateY(20px); + } + + 100% { + opacity: 1; + -webkit-transform: translateY(0); + transform: translateY(0); + } +} + +.splitting.txt.animated .char { + -webkit-animation: fadeIn 0.3s cubic-bezier(0.3, 0, 0.7, 1) both; + animation: fadeIn 0.3s cubic-bezier(0.3, 0, 0.7, 1) both; + -webkit-animation-delay: calc(10ms * var(--char-index)); + animation-delay: calc(10ms * var(--char-index)); +} + +.splitting.txt .whitespace { + width: 5px; +} + +@-webkit-keyframes fadeIn { + 0% { + opacity: 0; + } + + 100% { + opacity: 1; + } +} + +@keyframes fadeIn { + 0% { + opacity: 0; + } + + 100% { + opacity: 1; + } +} + +.imago { + -webkit-clip-path: polygon(0 0, 100% 0, 100% 0, 0 0); + clip-path: polygon(0 0, 100% 0, 100% 0, 0 0); + -webkit-transition: all 0.8s; + -o-transition: all 0.8s; + transition: all 0.8s; + -webkit-transition-delay: 0.3s; + -o-transition-delay: 0.3s; + transition-delay: 0.3s; +} + +.imago.animated { + -webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); + clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); +} + +/* ====================== [ End Text Animation & Images ] ====================== */ +/* ====================== [ Start Cursor Style ] ====================== */ +body { + cursor: none; +} + +.mouse-cursor { + position: fixed; + left: 0; + top: 0; + pointer-events: none; + border-radius: 50%; + -webkit-transform: translateZ(0); + transform: translateZ(0); + visibility: hidden; +} + +.cursor-inner { + margin-left: 2px; + margin-top: 2px; + width: 6px; + height: 6px; + z-index: 10000001; + background-color: #12c2e9; + -webkit-transition: width 0.3s ease-in-out, height 0.3s ease-in-out, + margin 0.3s ease-in-out, opacity 0.3s ease-in-out; + -o-transition: width 0.3s ease-in-out, height 0.3s ease-in-out, + margin 0.3s ease-in-out, opacity 0.3s ease-in-out; + transition: width 0.3s ease-in-out, height 0.3s ease-in-out, + margin 0.3s ease-in-out, opacity 0.3s ease-in-out; +} + +.cursor-inner.cursor-hover { + margin-left: -40px; + margin-top: -40px; + width: 80px; + height: 80px; + background-color: #12c2e9; + opacity: 0.3; +} + +.cursor-outer { + margin-left: -15px; + margin-top: -15px; + width: 40px; + height: 40px; + border: 1px solid #12c2e9; + -webkit-box-sizing: border-box; + box-sizing: border-box; + z-index: 10000000; + opacity: 0.5; + -webkit-transition: all 0.08s ease-out; + -o-transition: all 0.08s ease-out; + transition: all 0.08s ease-out; +} + +.cursor-outer.cursor-hover { + opacity: 0; +} + +/* ====================== [ End Cursor Style ] ====================== */ +/* ====================== [ Start progress-wrap ] ====================== */ +.progress-wrap { + position: fixed; + bottom: 30px; + right: 30px; + height: 44px; + width: 44px; + cursor: pointer; + display: block; + border-radius: 50px; + z-index: 100; + opacity: 0; + visibility: hidden; + -webkit-transform: translateY(20px); + -ms-transform: translateY(20px); + transform: translateY(20px); + -webkit-transition: all 400ms linear; + -o-transition: all 400ms linear; + transition: all 400ms linear; +} + +.progress-wrap.active-progress { + opacity: 1; + visibility: visible; + -webkit-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); +} + +.progress-wrap::after { + position: absolute; + font-family: "Font Awesome 5 Free"; + content: "\f077"; + text-align: center; + line-height: 44px; + font-size: 13px; + font-weight: 900; + color: #12c2e9; + left: 0; + top: 0; + height: 44px; + width: 44px; + cursor: pointer; + display: block; + z-index: 1; + -webkit-transition: all 400ms linear; + -o-transition: all 400ms linear; + transition: all 400ms linear; +} + +.progress-wrap svg path { + fill: none; +} + +.progress-wrap svg.progress-circle path { + stroke: #12c2e9; + stroke-width: 4; + -webkit-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: all 400ms linear; + -o-transition: all 400ms linear; + transition: all 400ms linear; +} + +/* ====================== [ End progress-wrap ] ====================== */ +/* ====================== [ Start animate headline ] ====================== */ +.cd-words-wrapper { + display: inline-block; + position: relative; + text-align: left; +} + +.cd-words-wrapper b { + display: inline-block; + position: absolute; + white-space: nowrap; + left: 0; + top: 0; +} + +.cd-words-wrapper b.is-visible { + position: relative; +} + +.no-js .cd-words-wrapper b { + opacity: 0; +} + +.no-js .cd-words-wrapper b.is-visible { + opacity: 1; +} + +/* xclip */ +.cd-headline.clip span { + display: inline-block; +} + +.cd-headline.clip .cd-words-wrapper { + overflow: hidden; + vertical-align: top; +} + +.cd-headline.clip b { + opacity: 0; +} + +.cd-headline b.is-visible { + opacity: 1; +} + +/* ====================== [ End animate headline ] ====================== */ +/* ====================== [ Start Overlay ] ====================== */ +[data-overlay-dark], +[data-overlay-light] { + position: relative; +} + +[data-overlay-dark] .container, +[data-overlay-light] .container { + position: relative; + z-index: 2; +} + +[data-overlay-dark]:before, +[data-overlay-light]:before { + content: ""; + position: absolute; + width: 100%; + height: 100%; + top: 0; + left: 0; + z-index: 1; +} + +[data-overlay-dark]:before { + background: #121319; +} + +[data-overlay-light]:before { + background: #fff; +} + +[data-overlay-dark] h1, +[data-overlay-dark] h2, +[data-overlay-dark] h3, +[data-overlay-dark] h4, +[data-overlay-dark] h5, +[data-overlay-dark] h6, +[data-overlay-dark] span, +.bg-dark h1, +.bg-dark h2, +.bg-dark h3, +.bg-dark h4, +.bg-dark h5, +.bg-dark h6, +.bg-dark span, +.bg-color h1, +.bg-color h2, +.bg-color h3, +.bg-color h4, +.bg-color h5, +.bg-color h6, +.bg-color span { + color: #fff; +} + +[data-overlay-dark] p, +.bg-dark p, +.bg-color p { + color: #dad6d6; +} + +[data-overlay-dark="0"]:before, +[data-overlay-light="0"]:before { + opacity: 0; +} + +[data-overlay-dark="1"]:before, +[data-overlay-light="1"]:before { + opacity: 0.1; +} + +[data-overlay-dark="2"]:before, +[data-overlay-light="2"]:before { + opacity: 0.2; +} + +[data-overlay-dark="3"]:before, +[data-overlay-light="3"]:before { + opacity: 0.3; +} + +[data-overlay-dark="4"]:before, +[data-overlay-light="4"]:before { + opacity: 0.4; +} + +[data-overlay-dark="5"]:before, +[data-overlay-light="5"]:before { + opacity: 0.5; +} + +[data-overlay-dark="6"]:before, +[data-overlay-light="6"]:before { + opacity: 0.6; +} + +[data-overlay-dark="7"]:before, +[data-overlay-light="7"]:before { + opacity: 0.7; +} + +[data-overlay-dark="8"]:before, +[data-overlay-light="8"]:before { + opacity: 0.8; +} + +[data-overlay-dark="9"]:before, +[data-overlay-light="9"]:before, +[data-overlay-color="9"]:before { + opacity: 0.9; +} + +[data-overlay-dark="10"]:before, +[data-overlay-light="10"]:before { + opacity: 1; +} + +/* ====================== [ End Overlay ] ====================== */ +/* ====================== [ Start Heading ] ====================== */ +.sec-head { + position: relative; + margin: 0 auto 80px; +} + +.sec-head h6 { + font-weight: 300; + font-size: 17px; + text-transform: uppercase; + letter-spacing: 7px; + margin-bottom: 10px; +} + +.sec-head h3 { + font-size: 48px; + font-weight: 600; +} + +.sec-head h2 { + font-size: 70px; + text-transform: uppercase; + letter-spacing: 2px; +} + +.sub-title { + position: relative; + margin-bottom: 20px; +} + +.sub-title h6 { + font-weight: 300; + font-size: 15px; + text-transform: uppercase; + letter-spacing: 4px; + display: inline-block; + background: -webkit-gradient( + linear, + left top, + right top, + from(#12c2e9), + color-stop(#c471ed), + to(#f64f59) + ); + background: -webkit-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: -o-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: linear-gradient(to right, #12c2e9, #c471ed, #f64f59); + padding: 7px 12px; + border-radius: 10px; +} + +.main-title { + font-weight: 600; + line-height: 1.5; + margin-bottom: 15px; +} + +.extra-title { + font-weight: 700; +} + +.sm-title { + font-size: 14px; + font-weight: 600; + letter-spacing: 1px; + text-transform: uppercase; +} + +.smore { + position: relative; + font-size: 13px; + font-weight: 300; + letter-spacing: 7px; + text-transform: uppercase; + display: inline-block; + padding: 5px; +} + +.smore:after { + content: ""; + width: 45%; + height: 100%; + background: rgba(255, 255, 255, 0.03); + position: absolute; + left: 0; + top: 0; +} + +.smore i { + margin-left: 10px; +} + +.line-v { + position: absolute; + height: 80px; + width: 1px; + background: #c5a47e; + left: 50%; + opacity: 0.3; +} + +.line-v.top { + top: -30px; +} + +.line-v.bottom { + bottom: -30px; +} + +/* ====================== [ End Heading ] ====================== */ +/* ====================== [ Start Button Style ] ====================== */ +.butn { + padding: 15px 35px; + font-size: 13px; + border: 1px solid transparent; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.butn:hover .char { + -webkit-animation: fadeInUp 0.3s cubic-bezier(0.3, 0, 0.7, 1) both; + animation: fadeInUp 0.3s cubic-bezier(0.3, 0, 0.7, 1) both; + -webkit-animation-delay: calc(30ms * var(--char-index)); + animation-delay: calc(30ms * var(--char-index)); +} + +.butn.bord { + border: 1px solid #000; +} + +.butn.bord:hover { + background: #111; + color: #fff; +} + +.butn.light { + background: #fff; + color: #333; +} +.butns { + border: 1px solid #333; + color: #333; +} + +.butn.light:hover { + background: #fff; + border-color: #fff; + color: #e2e2e2; +} + +.butn.dark { + background: #222; + color: #fff; +} + +.butn.dark:hover { + background: transparent; + border-color: #222; + color: #333; +} + +.butn.color { + background: -webkit-gradient( + linear, + left top, + right top, + from(#12c2e9), + color-stop(#c471ed), + to(#f64f59) + ); + background: -webkit-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: -o-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: linear-gradient(to right, #12c2e9, #c471ed, #f64f59); + border: transparent; +} + +.butn.color:hover { + background: #fff; + color: #111; +} + +.butn.curve { + border-radius: 5px; +} + +.butn.radius { + border-radius: 30px; +} + +[data-overlay-dark] .butn.bord { + border-color: #fff; +} + +[data-overlay-dark] .butn.bord:hover { + background: #fff; +} + +[data-overlay-dark] .butn.bord:hover span { + color: #111; +} + +.simple-btn { + position: relative; + padding: 7px; + display: inline-block; + text-transform: uppercase; + letter-spacing: 4px; + font-size: 13px; + font-weight: 300; +} + +.simple-btn:after { + content: ""; + width: 45%; + height: 100%; + background: rgba(0, 0, 0, 0.05); + position: absolute; + left: 0; + top: 0; +} + +.simple-btn.right:after { + left: auto; + right: 0; +} + +/* ====================== [ End Button Style ] ====================== */ +/* ====================== [ Start navbar ] ====================== */ +.navbar { + position: absolute; + left: 0; + top: 0; + padding: 0; + margin: 0; + width: 100%; + background: transparent; + border-bottom: 2px solid transparent; + z-index: 999; + min-height: 80px; +} + +.navbar .icon-bar { + color: #111; +} + +.navbar.light .navbar-nav .nav-link { + color: #111; +} + +.navbar .navbar-nav .nav-link { + font-size: 12px; + font-weight: 500; + color: #fff; + padding: 15px 7px; + margin: 10px 15px; +} + +.navbar .navbar-nav .dropdown-menu { + padding: 10px 0; + border: 0; + -webkit-box-shadow: 0px 10px 40px -4px rgba(0, 0, 0, 0.1); + box-shadow: 0px 10px 40px -4px rgba(0, 0, 0, 0.1); +} + +.navbar .navbar-nav .dropdown-item { + font-size: 13px; + padding: 10px 20px; + opacity: 0.9; +} + +.navbar .navbar-nav .dropdown-item:hover { + background: transparent; + color: #12c2e9; +} + +.navbar .dropdown-menu { + display: block; + opacity: 0; + visibility: hidden; + border-radius: 0; + color: #111; + background: #f5f5f5; + min-width: 185px; + -webkit-transform: translateY(20px); + -ms-transform: translateY(20px); + transform: translateY(20px); + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.navbar .dropdown-menu.show { + opacity: 1; + visibility: visible; + -webkit-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); +} + +.navbar .dropdown-menu .dropdown-item { + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; + padding: 10px 25px; + position: relative; +} + +.navbar .dropdown-menu .dropdown-item:after { + content: ""; + width: 0px; + height: 1px; + background: #12c2e9; + position: absolute; + left: 10px; + top: 50%; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.navbar .dropdown-menu .dropdown-item:hover { + padding-left: 30px; +} + +.navbar .dropdown-menu .dropdown-item:hover:after { + width: 10px; +} + +.navbar .search { + color: #fff; + padding-left: 30px; + border-left: 1px solid rgba(255, 255, 255, 0.1); +} + +.navbar .search .icon { + cursor: pointer; +} + +.navbar .search .search-form { + position: fixed; + width: 100%; + height: 100vh; + top: 0; + left: 0; + background: rgba(37, 37, 49, 0.98); + display: none; +} + +.navbar .search .search-form form { + width: 600px; + position: absolute; + left: calc(50% - 300px); + top: 50%; + -webkit-transform: translateY(-50%); + -ms-transform: translateY(-50%); + transform: translateY(-50%); +} + +.navbar .search .search-form form input { + padding: 15px 0; + font-size: 80px; + color: #fff; + text-transform: uppercase; + text-align: left; + background: transparent; + border: 0; + border-bottom: 2px solid #12c2e9; +} + +.navbar .search .search-form .close { + position: absolute; + top: 20%; + right: 20%; + color: #fff; + font-size: 60px; + opacity: 1; + cursor: pointer; +} + +.navbar .logo { + width: 150px; +} + +.nav-scroll { + background: #fff; + border-color: #f5f5f5; + padding: 0; + position: fixed; + top: -80px; + -webkit-transition: -webkit-transform 0.5s; + transition: -webkit-transform 0.5s; + -o-transition: transform 0.5s; + transition: transform 0.5s; + transition: transform 0.5s, -webkit-transform 0.5s; + -webkit-transform: translateY(80px); + -ms-transform: translateY(80px); + transform: translateY(80px); +} + +.nav-scroll .navbar-nav .nav-link { + color: #111; +} + +.topnav { + position: fixed; + top: 0; + left: 0; + width: 100%; + z-index: 999999; + padding: 30px 0; + color: #fff; + -webkit-transition: all 0.7s; + -o-transition: all 0.7s; + transition: all 0.7s; +} + +.topnav.light { + color: #111; +} + +.topnav.light .text:after { + color: #111; +} + +.topnav.light .icon i { + background: #111 !important; +} + +.topnav .container, +.topnav .container-fluid { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.topnav .container-fluid { + padding: 0 50px; +} + +.topnav .logo { + width: 50px; +} + +.topnav .menu-icon { + margin-left: auto; + cursor: pointer; +} + +.topnav .menu-icon:hover .text .char { + -webkit-animation: fadeInUp 0.3s cubic-bezier(0.3, 0, 0.7, 1) both; + animation: fadeInUp 0.3s cubic-bezier(0.3, 0, 0.7, 1) both; + -webkit-animation-delay: calc(30ms * var(--char-index)); + animation-delay: calc(30ms * var(--char-index)); +} + +.topnav .menu-icon .text { + font-size: 13px; + font-weight: 500; + padding-left: 15px; + display: table-cell; + vertical-align: middle; + position: relative; +} + +.topnav .menu-icon .text:after { + content: "close"; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + padding-left: 15px; + opacity: 0; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; + -webkit-transition-delay: 0.4s; + -o-transition-delay: 0.4s; + transition-delay: 0.4s; +} + +.topnav .menu-icon .text .word { + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; + -webkit-transition-delay: 0.6s; + -o-transition-delay: 0.6s; + transition-delay: 0.6s; +} + +.topnav .menu-icon .text.open .word { + opacity: 0; + -webkit-transition-delay: 0.4s; + -o-transition-delay: 0.4s; + transition-delay: 0.4s; +} + +.topnav .menu-icon .text.open:after { + opacity: 1; + -webkit-transition-delay: 0.6s; + -o-transition-delay: 0.6s; + transition-delay: 0.6s; +} + +.topnav .menu-icon .icon { + display: table-cell; +} + +.topnav .menu-icon .icon i { + display: block; + width: 20px; + height: 3px; + background: #fff; + margin: 4px 0; +} + +.hamenu { + position: fixed; + top: 0; + left: -100%; + width: 100%; + height: 100vh; + background: #eee; + padding: 120px 30px 30px; + overflow: hidden; + z-index: 9999; + -webkit-transition: all 0.5s cubic-bezier(1, 0, 0.55, 1); + -o-transition: all 0.5s cubic-bezier(1, 0, 0.55, 1); + transition: all 0.5s cubic-bezier(1, 0, 0.55, 1); +} + +.hamenu.open .menu-links .main-menu > li .link { + -webkit-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); + -webkit-transition-delay: 1s; + -o-transition-delay: 1s; + transition-delay: 1s; +} + +.hamenu.open .cont-info:after { + height: 100vh; + -webkit-transition-delay: 1s; + -o-transition-delay: 1s; + transition-delay: 1s; +} + +.hamenu.open .cont-info .item { + -webkit-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); + opacity: 1; + -webkit-transition-delay: 1s; + -o-transition-delay: 1s; + transition-delay: 1s; +} + +.hamenu .menu-links { + margin-top: 30px; +} + +.hamenu .menu-links .o-hidden { + display: inline-block; +} + +.hamenu .menu-links .main-menu { + position: relative; + z-index: 2; +} + +.hamenu .menu-links .main-menu.gosub > li { + opacity: 0; + visibility: hidden; + -webkit-transition-delay: 0.2s !important; + -o-transition-delay: 0.2s !important; + transition-delay: 0.2s !important; +} + +.hamenu .menu-links .main-menu.gosub > li .link { + -webkit-transform: translateY(45px) !important; + -ms-transform: translateY(45px) !important; + transform: translateY(45px) !important; + opacity: 0 !important; + visibility: hidden !important; + -webkit-transition-delay: 0.2s !important; + -o-transition-delay: 0.2s !important; + transition-delay: 0.2s !important; +} + +.hamenu .menu-links .main-menu.gosub .sub-menu.sub-open { + z-index: 3 !important; + opacity: 1 !important; + visibility: visible !important; +} + +.hamenu .menu-links .main-menu > li { + font-size: 30px; + font-weight: 600; + padding: 10px; + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; + opacity: 1; + visibility: visible; + -webkit-transition: all 0.5s; + -o-transition: all 0.5s; + transition: all 0.5s; +} + +.hamenu .menu-links .main-menu > li span.nm { + opacity: 0.8; + font-size: 11px; + margin-right: 10px; +} + +.hamenu .menu-links .main-menu > li .link { + -webkit-transform: translateY(45px); + -ms-transform: translateY(45px); + transform: translateY(45px); + -webkit-transition: all 0.7s; + -o-transition: all 0.7s; + transition: all 0.7s; + cursor: pointer; +} + +.hamenu .menu-links .main-menu > li .link i { + font-size: 15px; + margin-left: 5px; +} + +.hamenu .menu-links .main-menu .sub-menu { + position: absolute; + top: 0; + left: 0; + opacity: 0; + visibility: hidden; + z-index: -1; + -webkit-transition-delay: 0.2s; + -o-transition-delay: 0.2s; + transition-delay: 0.2s; +} + +.hamenu .menu-links .main-menu .sub-menu.sub-open { + z-index: 3; +} + +.hamenu .menu-links .main-menu .sub-menu.sub-open li .sub-link { + -webkit-transform: translateY(0px); + -ms-transform: translateY(0px); + transform: translateY(0px); + -webkit-transition-delay: 1s; + -o-transition-delay: 1s; + transition-delay: 1s; +} + +.hamenu .menu-links .main-menu .sub-menu li { + color: #333; + font-size: 20px; + font-weight: 400; + letter-spacing: 1px; + padding: 8px 10px; + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; +} + +.hamenu .menu-links .main-menu .sub-menu li .sub-link { + -webkit-transform: translateY(45px); + -ms-transform: translateY(45px); + transform: translateY(45px); + -webkit-transition: all 0.7s; + -o-transition: all 0.7s; + transition: all 0.7s; +} + +.hamenu .menu-links .main-menu .sub-menu li .sub-link.back { + color: #000; + font-size: 20px; + font-weight: 600; + cursor: pointer; +} + +.hamenu .menu-links .main-menu .sub-menu li .sub-link.back i { + margin-left: 10px; +} + +.hamenu .menu-links .main-menu .sub-menu li .sub-link em { + font-size: 13px; + font-weight: 300; + margin-left: 10px; +} + +.hamenu .cont-info { + margin-top: 50px; + position: relative; +} + +.hamenu .cont-info:after { + content: ""; + width: 1px; + height: 0; + background: rgba(0, 0, 0, 0.1); + position: absolute; + left: -40px; + top: -170px; + -webkit-transition: all 0.7s; + -o-transition: all 0.7s; + transition: all 0.7s; +} + +.hamenu .cont-info .item { + margin-bottom: 30px; + -webkit-transform: translateY(-30px); + -ms-transform: translateY(-30px); + transform: translateY(-30px); + opacity: 0; + -webkit-transition: all 0.7s; + -o-transition: all 0.7s; + transition: all 0.7s; +} + +.hamenu .cont-info .item:last-of-type { + margin-bottom: 0; +} + +.hamenu .cont-info .item h6 { + font-size: 14px; + font-weight: 600; + text-transform: uppercase; + margin-bottom: 10px; +} + +/* ====================== [ End navbar ] ====================== */ +/* ====================== [ Start Slider ] ====================== */ +.slider { + position: relative; +} + +.slider.fixed-slider { + position: fixed; + top: 0; + left: 0; + right: 0; +} + +.slider .swiper-slide-active { + z-index: 3; +} + +.slider .parallax-slider { + position: relative; +} + +.slider .parallax-slider .swiper-slide { + position: relative; + overflow: hidden; + width: 100%; + min-height: 100vh; + padding-bottom: 50px; +} + +.slider .parallax-slider .swiper-slide .bg-img { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + background-size: cover; +} + +.slider .parallax-slider .swiper-slide-active .caption h1[data-splitting] { + -webkit-transition: all 0s; + -o-transition: all 0s; + transition: all 0s; + opacity: 1; + visibility: visible; + -webkit-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); +} + +.slider + .parallax-slider + .swiper-slide-active + .caption + h1[data-splitting] + .char { + -webkit-animation: fadeInUp 0.5s cubic-bezier(0.3, 0, 0.7, 1) both; + animation: fadeInUp 0.5s cubic-bezier(0.3, 0, 0.7, 1) both; + -webkit-animation-delay: calc(60ms * var(--char-index)); + animation-delay: calc(60ms * var(--char-index)); +} + +.slider .parallax-slider .swiper-slide-active .caption .thin, +.slider .parallax-slider .swiper-slide-active .caption .butn, +.slider .parallax-slider .swiper-slide-active .caption h1, +.slider .parallax-slider .swiper-slide-active .caption p { + opacity: 1; + visibility: visible; + -webkit-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); +} + +.slider .parallax-slider .caption .thin { + color: #12c2e9; + font-size: 30px; + font-weight: 300; + text-transform: uppercase; + letter-spacing: 8px; + margin-bottom: 5px; + opacity: 0; + -webkit-transform: translateY(-20px); + -ms-transform: translateY(-20px); + transform: translateY(-20px); + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; + -webkit-transition-delay: 0.8s; + -o-transition-delay: 0.8s; + transition-delay: 0.8s; +} + +.slider .parallax-slider .caption .thin span { + color: #12c2e9; +} + +.slider .parallax-slider .caption h1 { + font-size: 65px; + font-weight: 800; + letter-spacing: 2px; + color: #fff; + opacity: 0; + -webkit-transform: translateY(20px); + -ms-transform: translateY(20px); + transform: translateY(20px); + visibility: hidden; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; + -webkit-transition-delay: 0.3s; + -o-transition-delay: 0.3s; + transition-delay: 0.3s; +} + +.slider .parallax-slider .caption p { + color: #eee; + margin-top: 15px; + opacity: 0; + -webkit-transform: translateY(20px); + -ms-transform: translateY(20px); + transform: translateY(20px); + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; + -webkit-transition-delay: 0.8s; + -o-transition-delay: 0.8s; + transition-delay: 0.8s; +} + +.slider .parallax-slider .caption .butn { + opacity: 0; + -webkit-transform: translateY(20px); + -ms-transform: translateY(20px); + transform: translateY(20px); + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; + -webkit-transition-delay: 1s; + -o-transition-delay: 1s; + transition-delay: 1s; +} + +.slider .parallax-slider .caption.dig h1 { + font-weight: 800; + font-size: 80px; + text-transform: uppercase; +} + +.slider .parallax-slider .caption.dig h1 .tline { + margin-left: 80px; +} + +.slider .parallax-slider .caption.dig h1 .whitespace { + width: 20px; +} + +.slider .setone { + position: absolute; + bottom: 8%; + right: 40px; + z-index: 8; +} + +.slider .setone .swiper-nav-ctrl { + color: #ccc; + font-size: 13px; + width: 55px; + height: 55px; + line-height: 55px; + text-align: center; + margin: 5px 0; + border: 1px solid rgba(255, 255, 255, 0.3); + position: static; +} + +.slider .setone .swiper-nav-ctrl:after { + display: none; +} + +.slider .setone.setwo { + position: static; +} + +.slider .setone.setwo .swiper-nav-ctrl { + border-radius: 50%; +} + +.slider .setone.setwo .next-ctrl { + position: absolute; + top: 50%; + right: 30px; +} + +.slider .setone.setwo .prev-ctrl { + position: absolute; + top: 50%; + left: 30px; +} + +.slider .txt-botm { + position: absolute; + bottom: 20px; + left: 0; + width: 100%; + z-index: 8; +} + +.slider .txt-botm .swiper-nav-ctrl { + position: absolute; + width: auto; + height: auto; + margin-top: auto; + top: auto; + bottom: 0; +} + +.slider .txt-botm .swiper-nav-ctrl i { + color: #888; + font-size: 13px; + width: 45px; + height: 45px; + line-height: 45px; + text-align: center; + margin: 0; + border-radius: 50%; + display: inline-block; + -webkit-transition: all 0.3s; + -o-transition: all 0.3s; + transition: all 0.3s; +} + +.slider .txt-botm .swiper-nav-ctrl span { + color: #111; + font-weight: 500; + font-size: 12px; +} + +.slider .txt-botm .swiper-nav-ctrl:after { + display: none; +} + +.slider .txt-botm .swiper-nav-ctrl.swiper-button-next { + right: 40px; +} + +.slider .txt-botm .swiper-nav-ctrl.swiper-button-next i { + margin-left: 10px; +} + +.slider .txt-botm .swiper-nav-ctrl.swiper-button-prev { + left: 40px; +} + +.slider .txt-botm .swiper-nav-ctrl.swiper-button-prev i { + margin-right: 10px; +} + +.slider .txt-botm .swiper-nav-ctrl:hover i { + border: 1px solid rgba(0, 0, 0, 0.3); +} + +.slider.showcase-full .txt-botm i { + color: #eee; +} + +.slider.showcase-full .txt-botm span { + color: #fff; +} + +.slider.showcase-full .txt-botm:hover i { + border: 1px solid rgba(255, 255, 255, 0.3); +} + +.slider .swiper-pagination-fraction.top { + position: absolute; + right: 15%; + left: auto; + bottom: auto; + top: 20%; + width: auto; + color: #fff; + font-size: 40px; + font-weight: 500; +} + +.slider .swiper-pagination-fraction.top .swiper-pagination-current { + font-size: 60px; + font-weight: 700; + position: relative; + color: transparent; + -webkit-text-stroke: 0.5px #fff; +} + +.slider .swiper-pagination-fraction.top .swiper-pagination-current:after { + content: "/"; + color: #fff; + position: relative; + margin: 0 10px; + font-size: 12px; + font-weight: 100; +} + +.slider .swiper-pagination-fraction.top.botm { + top: auto; + bottom: 40px; + right: 40px; +} + +.slider .swiper-pagination-fraction.steps { + position: absolute; + width: 100px; + color: #fff; + font-size: 15px; + bottom: 40px; + left: calc(50% - 50px); + right: auto; + top: auto; + text-align: left; +} + +.slider .swiper-pagination-fraction.steps:after { + content: ""; + position: absolute; + top: 50%; + left: 15%; + width: 70%; + height: 1px; + background: rgba(255, 255, 255, 0.3); +} + +.slider .swiper-pagination-fraction.steps .swiper-pagination-total { + float: right; +} + +.slider .social-icon { + position: absolute; + left: 40px; + bottom: 40px; + z-index: 8; +} + +.slider .social-icon a { + width: 40px; + height: 40px; + line-height: 40px; + text-align: center; + border-radius: 50%; + border: 1px solid rgba(255, 255, 255, 0.05); + color: #fff; + font-size: 13px; +} + +.slider-st { + min-height: 100vh; + padding: 120px 0; +} + +.slider-st .img { + position: relative; +} + +.slider-st .img:after { + content: ""; + position: absolute; + top: -5px; + left: -5px; + right: -5px; + bottom: -5px; + background: -webkit-gradient( + linear, + left top, + right top, + from(#12c2e9), + color-stop(#c471ed), + to(#f64f59) + ); + background: -webkit-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: -o-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: linear-gradient(to right, #12c2e9, #c471ed, #f64f59); + border-radius: 15px; + -webkit-transform: rotate(-3deg); + -ms-transform: rotate(-3deg); + transform: rotate(-3deg); +} + +.slider-st .img:before { + content: ""; + position: absolute; + top: -15px; + left: -15px; + right: -15px; + bottom: -15px; + background: #fff; + border-radius: 15px; + -webkit-transform: rotate(-3deg); + -ms-transform: rotate(-3deg); + transform: rotate(-3deg); + opacity: 0.08; +} + +.slider-st .img img { + border-radius: 15px; + -webkit-transform: rotate(3deg); + -ms-transform: rotate(3deg); + transform: rotate(3deg); + position: relative; + z-index: 2; +} + +.slider-stwo { + min-height: 100vh; + position: relative; + padding: 120px 0; +} + +.slider-stwo:after { + content: ""; + position: absolute; + top: 0; + left: 0; + width: 30%; + height: 100%; + background: #f5f5f5; + z-index: -1; +} + +.slider-stwo .img { + padding-right: 30px; +} + +.slider-stwo .img img { + border-radius: 10px; + -webkit-box-shadow: 0px 10px 30px rgba(255, 255, 255, 0.05); + box-shadow: 0px 10px 30px rgba(255, 255, 255, 0.05); +} + +.slider-stwo ul { + margin: 30px 0 0; + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.slider-stwo ul li { + display: inline-block; +} + +.slider-stwo ul li div { + display: table-cell; +} + +.slider-stwo ul li .icon { + width: 60px; + height: 60px; + line-height: 60px; + text-align: center; + position: relative; + font-size: 20px; +} + +.slider-stwo ul li .icon .bord { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +.slider-stwo ul li .icon .bord:after { + content: ""; + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: #fff; + border-radius: 5px; + z-index: -1; +} + +.slider-stwo ul li .icon .bord:before { + content: ""; + position: absolute; + top: -1px; + left: -1px; + bottom: -1px; + right: -1px; + border-radius: 5px; + background: -webkit-gradient( + linear, + left top, + right top, + from(#12c2e9), + color-stop(#c471ed), + to(#f64f59) + ); + background: -webkit-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: -o-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: linear-gradient(to right, #12c2e9, #c471ed, #f64f59); + z-index: -2; +} + +.slider-stwo ul li .cont { + display: table-cell; + vertical-align: middle; + padding-left: 15px; +} + +.slider-stwo ul li .cont p { + font-size: 13px; + margin-top: 5px; +} + +.particles { + min-height: 100vh; + position: relative; + z-index: 2; +} + +.particles .cont h1 { + font-size: 90px; + font-weight: 800; +} + +.arch-slider { + padding-bottom: 80px; +} + +.arch-slider .parallax-slider .caption h5 { + font-size: 50px; + font-weight: 200; +} + +.arch-slider .parallax-slider .caption h1 { + font-size: 75px; + font-weight: 600; + letter-spacing: 2px; +} + +.arch-slider .parallax-slider .caption p { + font-weight: 300; + padding-left: 100px; + margin-left: 100px; + position: relative; +} + +.arch-slider .parallax-slider .caption p:after { + content: ""; + position: absolute; + left: 0; + top: 10px; + background: #eee; + width: 70px; + height: 1px; +} + +.arch-slider .parallax-slider .explore { + margin-left: auto; + margin-top: -100px; + color: #fff; +} + +.arch-slider .parallax-slider .explore a { + font-size: 13px; + font-weight: 400; + text-transform: uppercase; + letter-spacing: 2px; + border-bottom: 1px solid rgba(255, 255, 255, 0.3); +} + +.arch-slider .parallax-slider .explore a i { + font-size: 12px; + margin-left: 10px; +} + +.arch-slider .setting { + position: absolute; + bottom: 0; + right: 0; + padding: 50px; + width: 300px; + background: #fff; + z-index: 4; +} + +.arch-slider .setting .swiper-button-next, +.arch-slider .setting .swiper-button-prev { + color: #111; +} + +.arch-slider .setting .swiper-button-next:after, +.arch-slider .setting .swiper-button-prev:after { + display: none; +} + +.arch-slider .setting .next-ctrl { + padding-left: 25px; + margin-right: 20px; + border-left: 1px solid rgba(0, 0, 0, 0.1); +} + +.arch-slider .setting .prev-ctrl { + padding-right: 25px; + margin-left: 20px; + border-right: 1px solid rgba(0, 0, 0, 0.1); +} + +.arch-slider .setting .swiper-pagination-bullets { + position: absolute; + top: 50%; + left: 50%; + -webkit-transform: translateX(-50%) translateY(-50%); + -ms-transform: translateX(-50%) translateY(-50%); + transform: translateX(-50%) translateY(-50%); +} + +.arch-slider .setting .swiper-pagination-bullets .swiper-pagination-bullet { + width: 5px; + height: 5px; + background: rgba(0, 0, 0, 0.4); + border-radius: 50%; + margin: 0 7px; + position: relative; + opacity: 1; +} + +.arch-slider + .setting + .swiper-pagination-bullets + .swiper-pagination-bullet-active { + background: #111; + -webkit-transform: scale(1.5); + -ms-transform: scale(1.5); + transform: scale(1.5); +} + +.freelancre { + min-height: 100vh; + padding: 100px 0; + position: relative; + overflow: hidden; +} + +.freelancre:after { + content: ""; + width: 140%; + background: rgba(0, 0, 0, 0.04); + height: 100%; + -webkit-transform: rotate(15deg); + -ms-transform: rotate(15deg); + transform: rotate(15deg); + position: absolute; + top: -40%; + left: -20%; + z-index: -1; +} + +.freelancre .img { + position: relative; + width: 280px; + height: 280px; + border-radius: 50%; + z-index: 2; +} + +.freelancre .img img { + width: 100%; + height: 100%; + -o-object-fit: cover; + object-fit: cover; + border-radius: 50%; +} + +.freelancre .img:after { + content: ""; + background: -webkit-gradient( + linear, + right top, + left top, + from(#12c2e9), + color-stop(#c471ed), + to(#f64f59) + ); + background: -webkit-linear-gradient(right, #12c2e9, #c471ed, #f64f59); + background: -o-linear-gradient(right, #12c2e9, #c471ed, #f64f59); + background: linear-gradient(to left, #12c2e9, #c471ed, #f64f59); + position: absolute; + top: -5px; + left: -5px; + right: -5px; + bottom: -5px; + border-radius: 50%; + z-index: -1; +} + +.freelancre .cont h1 { + font-size: 35px; +} + +.freelancre .states { + position: absolute; + bottom: 0; + left: 0; + width: 100%; + padding-bottom: 50px; +} + +.freelancre .states .flex { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.freelancre .states ul { + margin: 0; +} + +.freelancre .states li { + margin-right: 100px; +} + +.freelancre .states li:last-of-type { + margin-right: 0; +} + +.freelancre .states li h3 { + font-size: 50px; + font-weight: 400; + margin-right: 20px; +} + +.freelancre .states li p { + font-size: 12px; + text-transform: uppercase; +} + +.freelancre .states .mail-us { + margin-left: auto; +} + +.freelancre .states .mail-us .text { + text-align: right; + padding-right: 20px; +} + +.freelancre .states .mail-us .text h6 { + font-size: 14px; + margin-top: 5px; +} + +.freelancre .states .mail-us .icon-box { + width: 60px; + height: 60px; + line-height: 65px; + text-align: center; + border-radius: 5px; + background: -webkit-linear-gradient( + 323.53deg, + #eee 6.69%, + rgba(4, 4, 5, 0.1) 85.43% + ); + background: -o-linear-gradient( + 323.53deg, + #eee 6.69%, + rgba(4, 4, 5, 0.1) 85.43% + ); + background: linear-gradient(126.47deg, #eee 6.69%, rgba(4, 4, 5, 0.1) 85.43%); + font-size: 30px; +} + +.slider-bus { + min-height: 100vh; + position: relative; +} + +.slider-bus .swiper-img { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +.slider-bus .setone { + position: absolute; + bottom: 8%; + right: 40px; + z-index: 8; +} + +.slider-bus .setone .swiper-nav-ctrl { + color: #ccc; + font-size: 13px; + width: 55px; + height: 55px; + line-height: 55px; + text-align: center; + margin: 5px 0; + border: 1px solid rgba(255, 255, 255, 0.3); + position: static; +} + +.slider-bus .setone .swiper-nav-ctrl:after { + display: none; +} + +.slider-bus .setone.setwo { + position: static; +} + +.slider-bus .setone.setwo .swiper-nav-ctrl { + border-radius: 50%; +} + +.slider-bus .setone.setwo .next-ctrl { + position: absolute; + top: 50%; + right: 30px; +} + +.slider-bus .setone.setwo .prev-ctrl { + position: absolute; + top: 50%; + left: 30px; +} + +.slider-bus .swiper-pagination-fraction { + position: absolute; + right: auto; + left: 60px; + bottom: 30px; + width: auto; + color: #fff; + font-size: 40px; + font-weight: 500; +} + +.slider-bus .swiper-pagination-fraction .swiper-pagination-current { + font-size: 60px; + font-weight: 700; + position: relative; + color: transparent; + -webkit-text-stroke: 0.5px #fff; +} + +.slider-bus .swiper-pagination-fraction .swiper-pagination-current:after { + content: "/"; + color: #fff; + position: relative; + margin: 0 10px; + font-size: 12px; + font-weight: 100; +} + +.slider-bus .swiper-slide-active .caption h1 { + -webkit-transition: all 0s; + -o-transition: all 0s; + transition: all 0s; + opacity: 1; + visibility: visible; + -webkit-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); +} + +.slider-bus .swiper-slide-active .caption h1 .char { + -webkit-animation: fadeInUp 0.5s cubic-bezier(0.3, 0, 0.7, 1) both; + animation: fadeInUp 0.5s cubic-bezier(0.3, 0, 0.7, 1) both; + -webkit-animation-delay: calc(60ms * var(--char-index)); + animation-delay: calc(60ms * var(--char-index)); +} + +.slider-bus .swiper-slide-active .caption .thin, +.slider-bus .swiper-slide-active .caption .simple-btn, +.slider-bus .swiper-slide-active .caption .butn, +.slider-bus .swiper-slide-active .caption p { + opacity: 1; + -webkit-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); +} + +.slider-bus .caption .thin { + font-size: 16px; + font-weight: 400; + text-transform: uppercase; + letter-spacing: 8px; + margin-bottom: 5px; + opacity: 0; + -webkit-transform: translateY(-20px); + -ms-transform: translateY(-20px); + transform: translateY(-20px); + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; + -webkit-transition-delay: 0.8s; + -o-transition-delay: 0.8s; + transition-delay: 0.8s; +} + +.slider-bus .caption h1 { + font-size: 90px; + font-weight: 800; + letter-spacing: 4px; + color: #fff; + opacity: 0; + visibility: hidden; + -webkit-transition: opacity 0.5s, visibility 0.5s; + -o-transition: opacity 0.5s, visibility 0.5s; + transition: opacity 0.5s, visibility 0.5s; +} + +.slider-bus .caption p { + color: #eee; + opacity: 0; + -webkit-transform: translateY(20px); + -ms-transform: translateY(20px); + transform: translateY(20px); + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; + -webkit-transition-delay: 0.8s; + -o-transition-delay: 0.8s; + transition-delay: 0.8s; +} + +.slider-bus .caption .simple-btn, +.slider-bus .caption .butn { + opacity: 0; + -webkit-transform: translateY(20px); + -ms-transform: translateY(20px); + transform: translateY(20px); + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; + -webkit-transition-delay: 1s; + -o-transition-delay: 1s; + transition-delay: 1s; +} + +.slider-bus .ontop { + position: relative; + z-index: 5; +} + +.curve-bg { + position: absolute; + top: 0; + left: -10%; + width: 100%; + height: 100%; + z-index: 3; +} + +.pages-header { + min-height: 75vh; + padding: 150px 0 0; + position: relative; +} + +.pages-header .cont h1 { + font-size: 55px; +} + +.pages-header .half { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 70%; + z-index: -1; + overflow: hidden; +} + +.page-header .cont { + padding: 220px 0 50px; +} + +.page-header .cont h1 { + font-size: 80px; + font-weight: 600; +} + +.page-header .img-wrapper { + position: relative; + min-height: 70vh; +} + +.page-header .img-wrapper .title { + position: absolute; + top: 0; + right: 0px; + width: 100%; + text-align: right; + -webkit-transform: translateY(-55%); + -ms-transform: translateY(-55%); + transform: translateY(-55%); + z-index: 3; +} + +.page-header .img-wrapper .title h3 { + font-size: 100px; + font-weight: 900; + -webkit-text-stroke-width: 1px; + -webkit-text-stroke-color: #fff; + color: transparent; +} + +.page-header .img-wrapper .map { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +.page-header.proj-det.bg-img { + min-height: 85vh; + padding-bottom: 100px; +} + +.page-header.proj-det.bg-img .item h6 { + font-size: 13px; + font-weight: 600; + letter-spacing: 4px; + text-transform: uppercase; + margin-bottom: 10px; +} + +.page-header.proj-det.bg-img .item p { + font-weight: 400; + text-transform: uppercase; + letter-spacing: 2px; + font-size: 12px; +} + +.page-header.proj-det.bg-img .item p a { + margin: 0 7px; +} + +.page-header.proj-det.bg-img .item p a:first-of-type { + margin-left: 0; +} + +.page-header.proj-det.bg-img .item p a:last-of-type { + margin-right: 0; +} + +.page-header.proj-det .img-wrapper { + min-height: 80vh; +} + +.works-header { + min-height: 80vh; +} + +.works-header.hfixd { + position: fixed; + top: 0; + left: 0; + width: 100%; +} + +.works-header .capt h4 { + font-weight: 200; + font-size: 24px; + line-height: 1.8; +} + +.works-header .capt h1 { + font-size: 60px; + font-weight: 800; + letter-spacing: 2px; + text-transform: uppercase; +} + +.works-header .capt h1 span { + display: block; + font-size: 20px; + font-weight: 300; + text-transform: capitalize; + color: #12c2e9; +} + +.works-header .capt .bactxt { + font-size: 30vw; + font-weight: bold; + color: transparent; + -webkit-text-stroke: 1px rgba(255, 255, 255, 0.1); + z-index: -1; + position: absolute; + width: 100%; + height: 100%; + left: 0; + top: 0; + text-align: center; + opacity: 0.5; +} + +.static { + position: static; +} + +.circle-bg { + position: relative; +} + +.circle-bg .circle-color { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 5; +} + +.circle-bg .circle-color.fixed { + position: fixed; + pointer-events: none; + opacity: 0.5; +} + +.circle-bg .gradient-circle { + position: absolute; + left: -250px; + top: 250px; + right: auto; + bottom: auto; + z-index: -1; + width: 500px; + height: 500px; + border-radius: 70%; + background-image: -webkit-linear-gradient(45deg, #059dff, #36c6f0); + background-image: -o-linear-gradient(45deg, #059dff, #36c6f0); + background-image: linear-gradient(45deg, #059dff, #36c6f0); + opacity: 0.25; + -webkit-filter: blur(100px); + filter: blur(100px); +} + +.circle-bg .gradient-circle.two { + left: auto; + top: -250px; + right: -250px; + bottom: auto; + background-image: -webkit-linear-gradient(45deg, #fb5343, #6549d5); + background-image: -o-linear-gradient(45deg, #fb5343, #6549d5); + background-image: linear-gradient(45deg, #fb5343, #6549d5); +} + +.main-content { + background: #fff; + position: relative; + z-index: 3; + overflow-x: hidden !important; +} + +/* ====================== [ End Slider ] ====================== */ +/* ====================== [ Start showcase ] ====================== */ +.showcase-full .parallax-slider .swiper-slide .bg-img { + background-position: center center; +} + +.showcase-full .parallax-slider .caption { + position: relative; +} + +.showcase-full .parallax-slider .caption h1 { + font-size: 80px; + font-weight: 700; + letter-spacing: 1px; + -webkit-transition: all 0.5s; + -o-transition: all 0.5s; + transition: all 0.5s; + position: relative; +} + +.showcase-full .parallax-slider .caption h1 .stroke { + margin-bottom: 10px; +} + +.showcase-full .parallax-slider .caption h1 .bord { + position: absolute; + top: 50%; + left: 50%; + width: 100vw; + -webkit-transform: translateX(-50%); + -ms-transform: translateX(-50%); + transform: translateX(-50%); + height: 1px; + background: #fff; + border: 0; + opacity: 0.1; +} + +.showcase-full .parallax-slider .caption .discover { + position: absolute; + top: 50%; + -webkit-transform: translateY(-50%); + -ms-transform: translateY(-50%); + transform: translateY(-50%); + right: 0; + width: 200px; + height: 200px; + text-align: center; + border: 1px solid rgba(255, 255, 255, 0.4); + border-radius: 50%; + font-size: 13px; + font-weight: 200; + letter-spacing: 4px; + text-transform: uppercase; + -webkit-transition-delay: 2s; + -o-transition-delay: 2s; + transition-delay: 2s; + -webkit-transition: all 0.7s; + -o-transition: all 0.7s; + transition: all 0.7s; + opacity: 0; +} + +.showcase-full .parallax-slider .caption .discover span { + position: absolute; + top: 50%; + left: 50%; + -webkit-transform: translateX(-50%) translateY(-50%); + -ms-transform: translateX(-50%) translateY(-50%); + transform: translateX(-50%) translateY(-50%); + line-height: 50px; +} + +.showcase-full .parallax-slider .swiper-slide-active .caption .discover { + opacity: 1; + -webkit-transition: all 0.7s; + -o-transition: all 0.7s; + transition: all 0.7s; +} + +.showcase-full .dots { + bottom: 30px; + z-index: 1; +} + +.showcase-full .dots span { + background: #fff; + width: 5px; + height: 5px; + margin: 0 7px !important; + border-radius: 50% !important; +} + +.showcase-full .dots span.swiper-pagination-bullet-active { + position: relative; +} + +.showcase-full .dots span.swiper-pagination-bullet-active:after { + content: ""; + position: absolute; + top: -5px; + left: -5px; + right: -5px; + bottom: -5px; + border: 1px solid #fff; + border-radius: 50%; +} + +.showcase-carus { + height: 100vh; +} + +.showcase-carus .swiper-container { + height: 100%; +} + +.showcase-carus .caption h1, +.showcase-carus .copy-cap h1 { + font-size: 90px; + font-weight: 800; + line-height: 1.2; + position: relative; +} + +.showcase-carus .copy-cap { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: -1; +} + +.showcase-carus .copy-cap .cap h1 span { + color: transparent; + -webkit-text-stroke: 1px #fff; +} + +.showcase-carus .copy-cap .cap h1 .stroke { + color: #fff; + -webkit-text-stroke: 0; +} + +.showcase-carus.circle-slide .swiper-slide { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.showcase-carus.circle-slide .swiper-slide .bg-img { + height: 500px; + width: 500px; + border-radius: 50%; + margin: auto; + background-position: center center; +} + +.showcase-carus.circle-slide .swiper-slide .bg-img:before { + border-radius: 50%; +} + +.showcase-carus.circle-slide .caption, +.showcase-carus.circle-slide .copy-cap { + position: absolute; + top: 0; + left: -25%; + width: 100%; + height: 100%; +} + +.showcase-carus.circle-slide .caption h1, +.showcase-carus.circle-slide .copy-cap h1 { + font-size: 70px; + display: block; +} + +.showcase-carus.circle-slide .caption h1 .stroke, +.showcase-carus.circle-slide .copy-cap h1 .stroke { + display: inline-block; + color: transparent; + -webkit-text-stroke: 1px #fff; + background: -webkit-gradient( + linear, + left top, + right top, + from(#12c2e9), + color-stop(#c471ed), + to(#f64f59) + ); + background: -webkit-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: -o-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: linear-gradient(to right, #12c2e9, #c471ed, #f64f59); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; +} + +.showcase-carus.circle-slide .caption h1 span, +.showcase-carus.circle-slide .copy-cap h1 span { + margin-left: auto; + color: transparent; + -webkit-text-stroke: 1px #fff; + background: -webkit-gradient( + linear, + left top, + right top, + from(#12c2e9), + color-stop(#c471ed), + to(#f64f59) + ); + background: -webkit-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: -o-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: linear-gradient(to right, #12c2e9, #c471ed, #f64f59); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; +} + +.showstyle { + height: 100vh; +} + +.showstyle .swiper-container { + height: 100%; +} + +.showstyle .swiper-slide .bg-img { + height: 70vh; + margin: 15vh 0 0; +} + +.showstyle .caption h1 { + font-size: 90px; + font-weight: 800; + line-height: 1.2; + -webkit-transition: all 0.5s; + -o-transition: all 0.5s; + transition: all 0.5s; +} + +.showstyle .caption h1 .stroke { + color: transparent; + -webkit-text-stroke: 1px #fff; +} + +.showstyle .caption h1 span { + margin-left: 200px; +} + +.showstyle .caption .discover { + margin-top: 50px; + opacity: 0; + -webkit-transition: all 0.7s; + -o-transition: all 0.7s; + transition: all 0.7s; +} + +.showstyle .caption .discover i { + display: inline-block; + width: 70px; + height: 70px; + line-height: 70px; + text-align: center; + border: 1px solid #fff; + border-radius: 50%; + margin-right: 10px; +} + +.showstyle .caption .discover span { + font-size: 13px; + font-weight: 600; +} + +.showcase-grid { + height: 100vh; +} + +.showcase-grid .swiper-container { + height: 100%; +} + +.showcase-grid .swiper-slide .bg-img { + height: 76vh; + margin: 12vh 0 0; + position: relative; + background-position: center center; +} + +.div-tooltip-tit { + display: none; + position: absolute; + background-color: #fff; + color: #111; + padding: 0 10px; + height: 50px; + line-height: 50px; + font-size: 15px; + font-weight: 600; + z-index: 99999; +} + +.div-tooltip-sub { + display: none; + position: absolute; + background-color: #111; + color: #fff; + padding: 5px 10px; + font-size: 13px; + font-weight: 500; + z-index: 99999; +} + +/* ====================== [ end showcase ] ====================== */ +/* ====================== [ Start Intro ] ====================== */ +.about .content .co-tit { + font-weight: 400; + margin-bottom: 30px; +} + +.about .img-mons .img1, +.about .img-mons .img2, +.about .img-mons .img3 { + height: 200px; + border-radius: 10px; + overflow: hidden; +} + +.about .img-mons .img1 img, +.about .img-mons .img2 img, +.about .img-mons .img3 img { + width: 100%; + height: 100%; + -o-object-fit: cover; + object-fit: cover; + -o-object-position: center center; + object-position: center center; +} + +.about .img-mons .img2 { + height: 240px; +} + +.about .img-mons .img3 { + width: 75%; + margin-top: 20px; +} + +.about .img-mons .img3.exp { + background: #18191d; + padding: 30px; +} + +.about .img-mons .img3.exp h2 { + font-weight: 800; + margin-bottom: 5px; +} + +.about .img-mons .img3.exp h6 { + letter-spacing: 2px; +} + +.about .blc-img .bimg { + padding-right: 80px; + padding-bottom: 80px; + position: relative; +} + +.about .blc-img .bimg img { + border-radius: 15px; + overflow: hidden; + -webkit-box-shadow: 0px 10px 30px rgba(100, 100, 100, 0.3); + box-shadow: 0px 10px 30px rgba(100, 100, 100, 0.3); +} + +.about .blc-img .bimg .bg-img { + position: absolute; + right: 0px; + bottom: 0; + width: 300px; + height: 300px; + -webkit-box-shadow: 0px 10px 30px rgba(100, 100, 100, 0.3); + box-shadow: 0px 10px 30px rgba(100, 100, 100, 0.3); + background-position: center center; + border-radius: 15px; + overflow: hidden; +} + +.about .blc-img .skills-circle { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + background: #11141b; + padding: 30px; + border-radius: 15px; + position: relative; + margin-top: -80px; + right: -50px; + -webkit-box-shadow: 0px 10px 20px -5px rgba(52, 60, 70, 0.1); + box-shadow: 0px 10px 20px -5px rgba(52, 60, 70, 0.1); +} + +.about .blc-img .skills-circle .item:last-of-type { + margin-left: 30px; +} + +.about .ftbox ul { + margin: 0; + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.about .ftbox ul li { + width: 100%; + padding: 35px 25px; + text-align: center; + background: #f5f5f5; + border-radius: 5px; + position: relative; +} + +.about .ftbox ul li.space { + margin: 0 10px; +} + +.about .ftbox ul li .icon { + color: #12c2e9; + font-size: 30px; + margin-bottom: 20px; +} + +.about .ftbox ul li h6 { + font-size: 16px; + font-weight: 400; +} + +.about .ftbox ul li .dots span { + width: 4px; + height: 4px; + border-radius: 50%; + background: #eee; + position: absolute; + right: 10px; + bottom: 12px; + opacity: 0.1; +} + +.about .ftbox ul li .dots span:first-of-type { + bottom: 18px; +} + +.about .ftbox ul li .dots span:last-of-type { + right: 16px; +} + +.agency .content h4 { + font-weight: 700; + font-size: 40px; + line-height: 1.5; + margin-bottom: 20px; +} + +.agency .content ul { + margin: 0; +} + +.agency .content ul li { + margin-top: 25px; + padding-left: 25px; + position: relative; +} + +.agency .content ul li:after { + content: ""; + width: 10px; + height: 10px; + border: 1px solid #999; + border-radius: 50%; + position: absolute; + left: 0; + top: 2px; +} + +.agency .img { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + position: relative; +} + +.agency .img .imgone { + width: 55%; + position: relative; + bottom: -80px; + margin-bottom: 80px; + border-radius: 4px; + border: 5px solid #fff; + -webkit-box-shadow: 0px 0px 30px rgba(0, 0, 0, 0.1); + box-shadow: 0px 0px 30px rgba(0, 0, 0, 0.1); + overflow: hidden; +} + +.agency .img .imgtwo { + width: 55%; + position: absolute; + right: 0; + border-radius: 4px; + border: 5px solid #fff; + -webkit-box-shadow: -15px 10px 30px rgba(0, 0, 0, 0.05); + box-shadow: -15px 10px 30px rgba(0, 0, 0, 0.05); + overflow: hidden; + z-index: 2; +} + +.agency .img .icon { + width: 100px; + height: 100px; + line-height: 135px; + text-align: center; + border-radius: 50%; + background: #fff; + position: absolute; + bottom: 20%; + left: 40%; + z-index: 3; +} + +.agency .img .icon:after { + content: ""; + position: absolute; + top: -10px; + left: -10px; + right: -10px; + bottom: -10px; + background: rgba(255, 255, 255, 0.2); + border-radius: 50%; + z-index: -1; +} + +.agency .img .icon svg { + fill: #12c2e9; + width: 90px; +} + +.agency .img .exp { + position: absolute; + right: 0; + bottom: 0; +} + +.agency .img .exp h6 { + font-size: 12px; + color: #999; + margin-top: 5px; + position: relative; +} + +.agency .img .exp h6:after { + content: ""; + width: 30px; + height: 1px; + background: #12c2e9; + position: absolute; + left: -40px; + top: 45%; +} + +.agency .img .exp h2 { + font-size: 70px; + font-weight: 700; +} + +.agency .imgsec { + padding-right: 30px; +} + +.agency .imgsec .imgone { + position: relative; + top: 0px; +} + +.agency .imgsec .imgtwo { + position: relative; + bottom: 0px; +} + +.agency .imgsec .exp { + padding: 10px 30px; + position: relative; + margin-top: 15px; +} + +.agency .imgsec .exp:after { + content: ""; + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: #fff; + z-index: -1; +} + +.agency .imgsec .exp:before { + content: ""; + position: absolute; + top: -1px; + left: -1px; + bottom: -1px; + right: -1px; + background: -webkit-gradient( + linear, + left top, + right top, + from(#12c2e9), + color-stop(#c471ed), + to(#f64f59) + ); + background: -webkit-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: -o-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: linear-gradient(to right, #12c2e9, #c471ed, #f64f59); + z-index: -2; +} + +.agency .imgsec .exp h6 { + color: #999; + margin-top: 5px; +} + +.agency .imgsec .exp h2 { + font-size: 70px; + font-weight: 700; +} + +.about-us .img { + padding-left: 150px; + padding-right: 50px; + position: relative; +} + +.about-us .img:before { + content: ""; + position: absolute; + top: -50px; + right: 0; + width: 400px; + height: 400px; + background-image: url(../img/dots.png); + background-repeat: repeat; + opacity: 0.3; + z-index: -1; +} + +.about-us .img .stauts { + position: absolute; + bottom: 50px; + left: 30px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.about-us .img .stauts .item { + padding: 30px 20px; + background: #272727; + margin-right: 50px; + position: relative; + color: #fff; +} + +.about-us .img .stauts .item:after { + content: ""; + position: absolute; + top: -10px; + left: -10px; + right: -10px; + bottom: -10px; + border: 1px solid rgba(100, 100, 100, 0.1); +} + +.about-us .img .stauts .item:first-of-type { + background: #f5f5f5; + color: #121a21; +} + +.about-us .img .stauts .item h4 { + font-size: 45px; + font-weight: 800; + display: table-cell; + vertical-align: middle; + padding-right: 20px; +} + +.about-us .img .stauts .item h4 span { + font-size: 30px; + font-weight: 500; + margin-left: 5px; +} + +.about-us .img .stauts .item h6 { + font-size: 15px; + display: table-cell; + vertical-align: middle; +} + +.about-cr .img img { + width: 105%; + margin-left: -5%; +} + +.about-cr .cont { + padding-left: 50px; +} + +.about-cr .cont h3 { + font-size: 60px; + font-weight: 600; + margin-bottom: 30px; + margin-left: -120px; +} + +.about-cr .cont h6 { + font-size: 30px; + font-weight: 200; + font-style: italic; + margin-bottom: 40px; +} + +.about-cr .cont .vid-area { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.about-cr .cont .vid-area .vid-icon { + padding-right: 30px; +} + +.about-cr .cont .vid-area .vid-icon .vid-butn { + width: 70px; + height: 70px; + line-height: 70px; + text-align: center; + font-size: 20px; + border-radius: 50%; + position: relative; + z-index: 2; +} + +.about-cr .cont .vid-area .vid-icon .vid-butn:after { + content: ""; + position: absolute; + top: 1px; + left: 1px; + right: 1px; + bottom: 1px; + border-radius: 50%; + background: #fff; + z-index: -1; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.about-cr .cont .vid-area .vid-icon .vid-butn:hover:after { + -webkit-transform: scale(0); + -ms-transform: scale(0); + transform: scale(0); +} + +.about-cr .cont .vid-area .text { + font-size: 13px; +} + +.about-cr .cont .states { + margin-top: 50px; +} + +.about-cr .cont .states p { + font-size: 13px; + margin-top: 10px; +} + +.about-ar .img { + position: relative; +} + +.about-ar .img .hero-bg { + width: 420px; + height: 420px; +} + +.about-ar .img .exp { + position: absolute; + top: 30px; + left: 30px; + width: 360px; + height: 360px; + background: rgba(255, 255, 255, 0.9); +} + +.about-ar .img .exp h2 { + font-size: 150px; + font-weight: 700; + text-align: center; + margin: auto; + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + -webkit-text-stroke-width: 1px; + -webkit-text-stroke-color: #c5a47e; + line-height: 1; +} + +.about-ar .img .exp p { + color: #c5a47e; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 2px; +} + +.about-ar .content h3 { + font-size: 55px; + letter-spacing: 1px; + text-transform: uppercase; + margin-bottom: 15px; +} + +.hero-sec .skills-box { + padding-left: 30px; +} + +.hero-sec .skills-box .skill-item { + margin-bottom: 80px; +} + +.intro-section .htit { + font-size: 28px; + font-weight: 500; +} + +.intro-section .htit span { + font-size: 17px; + font-weight: 300; + color: #12c2e9; + margin-right: 5px; +} + +.intro-section .item h6 { + font-size: 13px; + font-weight: 600; + letter-spacing: 4px; + text-transform: uppercase; + margin-bottom: 10px; +} + +.intro-section .item p { + text-transform: uppercase; + letter-spacing: 2px; + font-size: 11px; +} + +.intro-section .item p a { + margin: 0 7px; +} + +.intro-section .item p a:first-of-type { + margin-left: 0; +} + +.intro-section .item p a:last-of-type { + margin-right: 0; +} + +.extra-text { + font-size: 22px; +} + +.video-wrapper { + min-height: 500px; +} + +.video-wrapper .vid { + position: relative; + z-index: 8; +} + +.video-wrapper .vid .vid-butn:hover .icon { + color: #fff; +} + +.video-wrapper .vid .vid-butn:hover .icon:before { + -webkit-transform: scale(0); + -ms-transform: scale(0); + transform: scale(0); +} + +.video-wrapper .vid .vid-butn .icon { + color: #212529; + width: 100px; + height: 100px; + border: 1px solid rgba(255, 255, 255, 0.2); + border-radius: 50%; + line-height: 100px; + text-align: center; + font-size: 17px; + position: relative; + -webkit-transition: all 0.5s; + -o-transition: all 0.5s; + transition: all 0.5s; +} + +.video-wrapper .vid .vid-butn .icon:after { + content: ""; + position: absolute; + top: 5px; + bottom: 5px; + right: 5px; + left: 5px; + border: 1px solid #eee; + border-radius: 50%; + z-index: -1; +} + +.video-wrapper .vid .vid-butn .icon:before { + content: ""; + position: absolute; + top: 5px; + bottom: 5px; + right: 5px; + left: 5px; + background: #fff; + border-radius: 50%; + z-index: -1; + -webkit-transition: all 0.5s cubic-bezier(1, 0, 0, 1); + -o-transition: all 0.5s cubic-bezier(1, 0, 0, 1); + transition: all 0.5s cubic-bezier(1, 0, 0, 1); +} + +.js-scroll__content { + -webkit-transform-origin: top left; + -ms-transform-origin: top left; + transform-origin: top left; + will-change: transform; +} + +/* ====================== [ End Intro ] ====================== */ +/* ====================== [ Start services ] ====================== */ +.services { + position: relative; +} + +.services .container { + position: relative; + z-index: 2; +} + +.services .item-box { + padding: 80px 30px; + text-align: center; + border: 1px solid rgba(0, 0, 0, 0.08); +} + +.services .item-box .icon { + position: relative; + width: 80px; + height: 80px; + line-height: 80px; + font-size: 40px; + margin-bottom: 30px; +} + +.services .item-box .icon:after { + content: ""; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + border-radius: 50%; + background: -webkit-gradient( + linear, + left top, + right top, + from(#12c2e9), + color-stop(#c471ed), + to(#f64f59) + ); + background: -webkit-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: -o-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: linear-gradient(to right, #12c2e9, #c471ed, #f64f59); + z-index: -1; + opacity: 0.1; +} + +.services .item-box h6 { + line-height: 1.8; + text-transform: capitalize; + margin-bottom: 10px; +} + +.services .rone > div { + position: relative; +} + +.services .rone > div:nth-of-type(2) { + margin-bottom: -50px; + margin-top: auto; +} + +.services .rtwo > div { + position: relative; +} + +.services .rtwo > div:nth-of-type(2) { + margin-bottom: -50px; + margin-top: auto; +} + +.services .mas-item { + padding: 40px; + margin: 50px 0; + background: #18191d; + position: relative; + z-index: 2; +} + +.services .mas-item:after { + content: ""; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: #18191d; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; + z-index: -1; +} + +.services .mas-item .bg-color { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: #12c2e9; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; + z-index: -2; +} + +.services .mas-item:hover .bg-color { + top: 10px; + left: 10px; +} + +.services .mas-item .icon { + font-size: 45px; + color: #12c2e9; + margin-bottom: 30px; +} + +.services .mas-item h6 { + font-weight: 600; + font-size: 16px; + line-height: 1.7; +} + +.services .mas-item .more { + margin-top: 20px; + width: 100%; + width: 45px; + height: 45px; + line-height: 45px; + text-align: center; + font-size: 12px; + border-radius: 50%; + border: 2px solid rgba(255, 255, 255, 0.05); +} + +.services .step-item { + text-align: center; + padding: 60px; + margin: 60px auto; + background: #f5f5f5; + position: relative; +} + +.services .step-item.xbottom { + bottom: -60px; +} + +.services .step-item.xtop { + top: -60px; +} + +.services .step-item.xcolor { + background: #fff; + border: 1px solid #eee; +} + +.services .step-item .icon { + color: #12c2e9; + background: -webkit-gradient( + linear, + left top, + right top, + from(#12c2e9), + color-stop(#c471ed), + to(#f64f59) + ); + background: -webkit-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: -o-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: linear-gradient(to right, #12c2e9, #c471ed, #f64f59); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + font-size: 40px; + margin-bottom: 30px; +} + +.services .step-item h6 { + margin-bottom: 20px; +} + +.services .item { + text-align: center; + padding: 60px; + background: #151921; + position: relative; +} + +.services .item .icon { + color: #12c2e9; + font-size: 40px; + margin-bottom: 40px; +} + +.services .item h6 { + margin-bottom: 15px; +} + +.services.lficon .item-box { + text-align: left; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + margin-top: 30px; + padding: 60px 40px; + border-radius: 20px; +} + +.services.lficon .item-box .icon { + text-align: center; +} + +.services.lficon .item-box .cont { + padding-left: 30px; +} + +.feat .items { + padding: 60px 40px; + position: relative; + z-index: 3; +} + +.feat .items:after { + content: ""; + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 1px; + background: #fff; + z-index: -1; +} + +.feat .items:before { + content: ""; + position: absolute; + top: -1px; + left: -1px; + bottom: -1px; + right: 0px; + background: -webkit-gradient( + linear, + left top, + right top, + from(#12c2e9), + color-stop(#c471ed), + to(#f64f59) + ); + background: -webkit-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: -o-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: linear-gradient(to right, #12c2e9, #c471ed, #f64f59); + z-index: -2; + opacity: 0; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.feat .items .icon { + color: #aaa; + font-size: 70px; + margin-bottom: 30px; +} + +.feat .items .icon svg { + width: 1em; + height: 1em; +} + +.feat .items h5 { + font-size: 22px; + line-height: 1.5; + margin-bottom: 20px; +} + +.feat .items .more-stroke { + margin-top: 30px; +} + +.feat .items .more-stroke span { + width: 0; + height: 2px; + background: #111; + position: relative; +} + +.feat .items .more-stroke span:after, +.feat .items .more-stroke span:before { + content: ""; + width: 0; + height: 2px; + background: #111; + position: absolute; + right: -1px; +} + +.feat .items .more-stroke span:after { + -webkit-transform: rotate(40deg); + -ms-transform: rotate(40deg); + transform: rotate(40deg); + top: -4px; +} + +.feat .items .more-stroke span:before { + -webkit-transform: rotate(-40deg); + -ms-transform: rotate(-40deg); + transform: rotate(-40deg); + top: 4px; +} + +.feat .items.active:before { + opacity: 1; +} + +.feat .items.active .more-stroke span { + width: 30px; + -webkit-transition: width 0.3s; + -o-transition: width 0.3s; + transition: width 0.3s; +} + +.feat .items.active .more-stroke span:after, +.feat .items.active .more-stroke span:before { + width: 12px; + -webkit-transition: width 0.3s; + -o-transition: width 0.3s; + transition: width 0.3s; + -webkit-transition-delay: 0.3s; + -o-transition-delay: 0.3s; + transition-delay: 0.3s; +} + +.feat .items:hover .more-stroke span { + width: 30px; +} + +.feat .items:hover .more-stroke span:after, +.feat .items:hover .more-stroke span:before { + width: 12px; +} + +.serv-arch .item { + padding: 50px 30px; + position: relative; + z-index: 2; +} + +.serv-arch .item:after { + content: ""; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: #fff; + border: 1px solid rgba(0, 0, 0, 0.07); + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; + z-index: -1; +} + +.serv-arch .item.active:after { + opacity: 0.85; +} + +.serv-arch .item:hover:after { + opacity: 0.75; + background: #232323; +} + +.serv-arch .item:hover h5 { + color: #fff; +} + +.serv-arch .item:hover p { + color: #eee; + -webkit-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); + opacity: 1; +} + +.serv-arch .item .numb { + font-size: 60px; + font-weight: 700; + margin-bottom: 10px; + color: transparent; + -webkit-text-stroke: 1px #b19777; +} + +.serv-arch .item h5 { + text-transform: uppercase; + letter-spacing: 1px; +} + +.serv-arch .item p { + margin-top: 60px; + opacity: 0; + -webkit-transform: translateY(30px); + -ms-transform: translateY(30px); + transform: translateY(30px); + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.serv-arch .item .more { + margin-top: 50px; +} + +.min-area .img { + padding: 120px 0 120px 80px; + position: relative; + z-index: 3; +} + +.min-area .img:after { + content: ""; + position: absolute; + top: 0; + right: 120px; + bottom: 0; + left: -300px; + background: #f5f5f5; + z-index: -1; +} + +.min-area .content { + padding-left: 40px; +} + +.min-area .content h4 { + font-weight: 700; + font-size: 40px; + line-height: 1.5; + margin-bottom: 20px; +} + +.min-area .content ul { + margin: 0; +} + +.min-area .content ul li { + margin-top: 25px; + padding-left: 25px; + position: relative; +} + +.min-area .content ul li:after { + content: ""; + width: 10px; + height: 10px; + border: 1px solid #999; + border-radius: 50%; + position: absolute; + left: 0; + top: 2px; +} + +.min-area .content ul.feat li { + padding: 0 0 30px 0; + border-bottom: 1px solid rgba(255, 255, 255, 0.05); +} + +.min-area .content ul.feat li:last-of-type { + padding: 0; + border: 0; +} + +.min-area .content ul.feat li:after { + display: none; +} + +.min-area .content ul.feat li h6 { + font-weight: 500; + margin-bottom: 5px; +} + +.min-area .content ul.feat li h6 span { + color: #12c2e9; + width: 30px; + height: 30px; + line-height: 30px; + text-align: center; + font-size: 13px; + border: 1px solid #12c2e9; + border-radius: 50%; + margin-right: 10px; +} + +.min-area .content ul.feat li p { + font-size: 13px; + padding-left: 45px; +} + +/* ====================== [ End services ] ====================== */ +/* ====================== [ Start brands ] ====================== */ +.clients .brands:hover img { + -webkit-transform: scale(0); + -ms-transform: scale(0); + transform: scale(0); + opacity: 0; +} + +.clients .brands:hover .link { + opacity: 1 !important; + -webkit-transition: all 0; + -o-transition: all 0; + transition: all 0; +} + +.clients .brands:hover .char { + -webkit-animation: fadeInUp 0.3s cubic-bezier(0.3, 0, 0.7, 1) both; + animation: fadeInUp 0.3s cubic-bezier(0.3, 0, 0.7, 1) both; + -webkit-animation-delay: calc(20ms * var(--char-index)); + animation-delay: calc(20ms * var(--char-index)); +} + +.clients .brands .item { + text-align: center; + border: 1px solid rgba(0, 0, 0, 0.08); + height: 160px; + line-height: 160px; +} + +.clients .brands .item.no-bord { + border: 0; + text-align: center; + height: 100px; + line-height: 100px; +} + +.clients .brands .img { + position: relative; +} + +.clients .brands .img img { + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; + max-width: 75px; + margin: auto; +} + +.clients .brands .img .link { + font-size: 13px; + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; + position: absolute; + top: 0; + left: 50%; + -webkit-transform: translateX(-50%); + -ms-transform: translateX(-50%); + transform: translateX(-50%); + opacity: 0; + -webkit-transition: all 0.3s; + -o-transition: all 0.3s; + transition: all 0.3s; +} + +.clients .bord .item { + margin-bottom: 30px; +} + +.clients-brand .brands:hover .img { + -webkit-transform: scale(0); + -ms-transform: scale(0); + transform: scale(0); + opacity: 0; +} + +.clients-brand .brands:hover .link { + opacity: 1 !important; + -webkit-transition: all 0; + -o-transition: all 0; + transition: all 0; +} + +.clients-brand .brands:hover .char { + -webkit-animation: fadeInUp 0.3s cubic-bezier(0.3, 0, 0.7, 1) both; + animation: fadeInUp 0.3s cubic-bezier(0.3, 0, 0.7, 1) both; + -webkit-animation-delay: calc(20ms * var(--char-index)); + animation-delay: calc(20ms * var(--char-index)); +} + +.clients-brand .item { + position: relative; + text-align: center; +} + +.clients-brand .item .link { + font-size: 16px; + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; + position: absolute; + top: 0; + left: 50%; + -webkit-transform: translateX(-50%); + -ms-transform: translateX(-50%); + transform: translateX(-50%); + opacity: 0; + -webkit-transition: all 0.3s; + -o-transition: all 0.3s; + transition: all 0.3s; +} + +.clients-brand .img { + max-width: 85px; + margin: auto; + position: relative; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +/* ====================== [ End brands ] ====================== */ +/* ====================== [ Start Work ] ====================== */ +.portfolio { + position: relative; +} + +.portfolio .filtering { + padding-left: 50px; +} + +.portfolio .filtering .filter { + padding: 15px; + background: rgba(0, 0, 0, 0.04); + border-radius: 30px; + display: inline-block; +} + +.portfolio .filtering span { + font-weight: 500; + font-size: 12px; + letter-spacing: 1px; + text-transform: uppercase; + margin: 0 20px; + cursor: pointer; + position: relative; +} + +.portfolio .filtering span.active { + color: #12c2e9; +} + +.portfolio .filtering span:after { + content: ""; + width: 7px; + height: 7px; + background: #12c2e9; + border-radius: 50%; + position: absolute; + right: -24px; + top: 40%; +} + +.portfolio .filtering span:last-of-type:after { + display: none; +} + +.portfolio .filtering.smplx .filter { + padding: 0; + background: transparent; + border-radius: 0; + display: inline-block; +} + +.portfolio .filtering.smplx span { + font-weight: 500; + font-size: 12px; + letter-spacing: 1px; + text-transform: uppercase; + margin: 0 20px; + cursor: pointer; + position: relative; +} + +.portfolio .filtering.smplx span.active { + color: #12c2e9; +} + +.portfolio .filtering.smplx span:after { + content: ""; + width: 7px; + height: 7px; + background: #12c2e9; + border-radius: 50%; + position: absolute; + right: -24px; + top: 40%; +} + +.portfolio .filtering.smplx span:last-of-type:after { + display: none; +} + +.portfolio .gallery .items { + padding: 0 50px; + margin: 50px 0; +} + +.portfolio .gallery .items.lg-mr { + margin-top: 100px; +} + +.portfolio .gallery .items .item-img { + overflow: hidden; + position: relative; + -webkit-clip-path: inset(0); + clip-path: inset(0); + -webkit-transition: all 0.3s; + -o-transition: all 0.3s; + transition: all 0.3s; +} + +.portfolio .gallery .items .item-img > a { + display: block; +} + +.portfolio .gallery .items .item-img:hover { + -webkit-clip-path: inset(5px 10px); + clip-path: inset(5px 10px); +} + +.portfolio .gallery .items .item-img:hover img { + -webkit-transform: scale(1.05); + -ms-transform: scale(1.05); + transform: scale(1.05); +} + +.portfolio .gallery .items .item-img:hover .cont { + opacity: 1; +} + +.portfolio .gallery .items .item-img img { + height: 100%; + width: 100%; + -o-object-fit: cover; + object-fit: cover; + -webkit-transition: all 0.5s; + -o-transition: all 0.5s; + transition: all 0.5s; +} + +.portfolio .gallery .items .item-img .cont { + position: absolute; + bottom: 15px; + left: 0; + text-align: left; + padding-left: 30px; + opacity: 0; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.portfolio .gallery .items .item-img .cont span { + color: #eee; + text-transform: uppercase; + letter-spacing: 2px; + font-size: 13px; +} + +.portfolio .gallery .items .item-img .cont span a { + margin: 0 10px 0 0; +} + +.portfolio .gallery .items .cont { + margin-top: 30px; + text-align: center; +} + +.portfolio .gallery .items .cont h6 { + font-weight: 600; + margin-bottom: 5px; +} + +.portfolio .gallery .items .cont span { + color: #999; + text-transform: uppercase; + letter-spacing: 2px; + font-weight: 400; + font-size: 13px; +} + +.portfolio .gallery .items .cont span a { + margin: 0 5px; +} + +.portfolio .gallery .bords .item-img { + padding: 10px; + border: 1px solid rgba(255, 255, 255, 0.03); +} + +.portfolio .gallery .bords .cont { + border: 1px solid rgba(255, 255, 255, 0.03); + margin-top: 0; + border-top: 0; + padding: 10px; +} + +.portfolio.three-column .gallery .items { + padding: 0 15px; + margin: 25px 0; +} + +.po-arch .filtering { + padding-left: 30px; +} + +.po-arch .filtering .filter { + padding: 0; + background: transparent; + border-radius: 0; + display: inline-block; +} + +.po-arch .filtering span { + font-weight: 400; + font-size: 15px; + letter-spacing: 2px; + text-transform: uppercase; + margin: 0 20px; + cursor: pointer; + position: relative; +} + +.po-arch .filtering span.active { + color: #b19777; +} + +.po-arch .filtering span:after { + display: none; +} + +.po-arch .gallery .items { + position: relative; +} + +.po-arch .gallery .items .cont { + text-align: left; + padding: 30px; + padding-left: 0; + background: #fff; + display: inline-block; + margin: 0; + position: relative; + margin-top: -30px; +} + +.po-arch .gallery .items .cont .tags a { + font-size: 17px; + margin: 0 10px 0 0; +} + +.po-arch .gallery .items .cont h5 { + font-weight: 500; + text-transform: uppercase; + letter-spacing: 1px; + margin: 0 0 5px 0; +} + +.portfolio-cr .filtering .filter { + display: inline-block; +} + +.portfolio-cr .filtering span { + font-size: 13px; + font-weight: 500; + letter-spacing: 1px; + text-transform: uppercase; + margin: 8px 20px; + padding-bottom: 10px; + cursor: pointer; + position: relative; +} + +.portfolio-cr .filtering span:after { + content: ""; + width: 100%; + height: 2px; + background-color: #12c2e9; + position: absolute; + left: 0; + bottom: -10px; + opacity: 0; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.portfolio-cr .filtering .active { + color: #12c2e9; +} + +.portfolio-cr .filtering .active:after { + bottom: 0; + opacity: 1; +} + +.portfolio-cr .items { + padding: 0 15px; + margin-top: 30px; + width: 50%; + position: relative; + overflow: hidden; +} + +.portfolio-cr .items:hover .cont { + opacity: 1; + -webkit-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); +} + +.portfolio-cr .items.width2 { + width: 25%; +} + +.portfolio-cr .items .cont { + position: absolute; + bottom: 15px; + left: 30px; + right: 30px; + padding: 20px; + -webkit-backdrop-filter: blur(7px); + backdrop-filter: blur(7px); + background: rgba(255, 255, 255, 0.48); + border: 1px solid rgba(255, 255, 255, 0.3); + border-radius: 5px; + opacity: 0; + -webkit-transform: translateY(50%); + -ms-transform: translateY(50%); + transform: translateY(50%); + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.portfolio-cr .items .cont.flex { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.portfolio-cr .items .cont h6 { + font-size: 17px; + font-weight: 600; + line-height: 1.2; + margin-bottom: 5px; +} + +.portfolio-cr .items .cont span { + margin-left: auto; + text-transform: uppercase; + letter-spacing: 1px; + font-weight: 400; + font-size: 12px; +} + +.portfolio-cr .items .cont span a { + opacity: 0.7; + margin: 0 5px; + line-height: 1.2; +} + +.portfolio-frl .filtering .filter { + display: inline-block; +} + +.portfolio-frl .filtering span { + font-size: 13px; + letter-spacing: 1px; + text-transform: uppercase; + margin: 8px 20px; + padding-bottom: 10px; + cursor: pointer; + position: relative; +} + +.portfolio-frl .filtering span:after { + content: ""; + width: 100%; + height: 2px; + background-color: #12c2e9; + position: absolute; + left: 0; + bottom: -10px; + opacity: 0; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.portfolio-frl .filtering .active { + color: #12c2e9; +} + +.portfolio-frl .filtering .active:after { + bottom: 0; + opacity: 1; +} + +.portfolio-frl .gallery .items { + padding: 0 40px; + margin: 40px 0; +} + +.portfolio-frl .gallery .items.lg-mr { + margin-top: 100px; +} + +.portfolio-frl .gallery .items .item-img { + overflow: hidden; + position: relative; + -webkit-transition: all 0.3s; + -o-transition: all 0.3s; + transition: all 0.3s; + background: rgba(0, 0, 0, 0.04); + padding: 30px; + border-radius: 5px; +} + +.portfolio-frl .gallery .items .item-img > a { + display: block; +} + +.portfolio-frl .gallery .items .item-img:hover img { + -webkit-clip-path: inset(5px 10px); + clip-path: inset(5px 10px); +} + +.portfolio-frl .gallery .items .item-img:hover .cont { + opacity: 1; +} + +.portfolio-frl .gallery .items .item-img img { + height: 100%; + width: 100%; + -webkit-clip-path: inset(0); + clip-path: inset(0); + -o-object-fit: cover; + object-fit: cover; + -webkit-transition: all 0.5s; + -o-transition: all 0.5s; + transition: all 0.5s; +} + +.portfolio-frl .gallery .items .cont { + margin-bottom: 30px; +} + +.portfolio-frl .gallery .items .cont h6 { + font-size: 22px; + font-weight: 500; + margin-bottom: 5px; +} + +.portfolio-frl .gallery .items .cont p { + font-size: 13px; +} + +.portfolio-frl .gallery .items .tags { + margin-top: 30px; +} + +.portfolio-frl .gallery .items .tags span { + padding: 8px 12px; + background: rgba(0, 0, 0, 0.04); + margin-right: 5px; + font-size: 12px; +} + +.portfolio.full-bg { + position: relative; +} + +.portfolio.full-bg .cluom { + height: 90vh; + padding: 0; + position: relative; + z-index: 2; + border-right: 1px solid rgba(255, 255, 255, 0.3); + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.portfolio.full-bg .cluom.current { + background: rgba(0, 0, 0, 0.3); +} + +.portfolio.full-bg .cluom:hover .info { + color: inherit; +} + +.portfolio.full-bg .cluom:hover .info:after { + height: 100%; +} + +.portfolio.full-bg .cluom:hover .more { + -webkit-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); + opacity: 1; +} + +.portfolio.full-bg .cluom .info { + padding: 40px 10px 40px 20px; + color: #fff; + position: relative; + z-index: 2; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; + overflow: hidden; +} + +.portfolio.full-bg .cluom .info:after { + content: ""; + position: absolute; + top: 0; + left: -2%; + width: 104%; + height: 0; + background: #fff; + z-index: -1; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.portfolio.full-bg .cluom .info h6 { + font-size: 11px; + font-weight: 400; + letter-spacing: 4px; + text-transform: uppercase; + margin-bottom: 10px; +} + +.portfolio.full-bg .cluom .info h5 { + font-size: 21px; +} + +.portfolio.full-bg .cluom .more { + position: absolute; + bottom: 50px; + right: 50px; + color: #fff; + font-size: 13px; + letter-spacing: 1px; + text-transform: uppercase; + -webkit-transform: translateY(20px); + -ms-transform: translateY(20px); + transform: translateY(20px); + opacity: 0; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.portfolio.full-bg .cluom .more i { + font-size: 10px; + margin-left: 2px; +} + +.portfolio.full-bg .glry-img, +.portfolio.full-bg .bg-img { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +.portfolio.full-bg .glry-img { + overflow: hidden; +} + +.portfolio.full-bg .glry-img .bg-img { + -webkit-transform: scale(1.1, 1.1); + -ms-transform: scale(1.1, 1.1); + transform: scale(1.1, 1.1); + opacity: 0; + -webkit-transition: all 0.7s; + -o-transition: all 0.7s; + transition: all 0.7s; + background-size: cover; + background-position: center center; +} + +.portfolio.full-bg .glry-img .bg-img.current { + -webkit-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); + opacity: 1; +} + +.work-carousel .swiper-slide { + padding: 0px 15px; +} + +.work-carousel .swiper-slide-active .noraidus .cont { + opacity: 1; + visibility: visible; + -webkit-transition-delay: 0.5s; + -o-transition-delay: 0.5s; + transition-delay: 0.5s; +} + +.work-carousel .next-ctrl, +.work-carousel .prev-ctrl { + color: #000; + width: 60px; + height: 60px; + border-radius: 0; + border: 0; + background: #fff; + opacity: 0; + -webkit-transition: all 0.3s; + -o-transition: all 0.3s; + transition: all 0.3s; +} + +.work-carousel .next-ctrl:after, +.work-carousel .prev-ctrl:after { + display: none; +} + +.work-carousel .simp-next, +.work-carousel .simp-prev { + color: #fff; + top: auto; + bottom: 0; +} + +.work-carousel .simp-next:after, +.work-carousel .simp-prev:after { + display: none; +} + +.work-carousel .simp-next { + right: 30px; +} + +.work-carousel .simp-prev { + left: 30px; +} + +.work-carousel:hover .next-ctrl, +.work-carousel:hover .prev-ctrl { + opacity: 1; +} + +.work-carousel .content { + position: relative; +} + +.work-carousel .content .item-img { + position: relative; + height: 480px; + line-height: 0; +} + +.work-carousel .content:hover .item-ig { + -webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); + clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); +} + +.work-carousel .content .cont { + position: relative; +} + +.work-carousel .content .cont h6 { + font-size: 12px; + font-weight: 500; + text-transform: uppercase; + letter-spacing: 2px; + margin-bottom: 10px; +} + +.work-carousel .content .cont h4 { + font-size: 17px; +} + +.work-carousel .content .cont .icon { + width: 35px; + height: 35px; + line-height: 35px; + text-align: center; + background: rgba(255, 255, 255, 0.03); + border-radius: 50%; + font-size: 12px; + position: absolute; + top: calc(50% - 17px); + right: 15px; +} + +.work-carousel .content .bgbox { + position: absolute; + bottom: 35px; + left: 35px; +} + +.work-carousel.caroul .content .item-img { + height: 480px; + position: relative; +} + +.work-carousel.caroul .content .item-img:after { + content: ""; + position: absolute; + top: 20px; + left: 20px; + bottom: 20px; + right: 20px; + background: #fff; + opacity: 0; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.work-carousel.caroul .content .bgbox { + opacity: 0; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.work-carousel.caroul .content:hover .item-img:after { + opacity: 1; +} + +.work-carousel.caroul .content:hover .bgbox { + opacity: 1; +} + +.work-carousel .noraidus .item-img { + height: 480px; + border-radius: 0; +} + +.work-carousel .noraidus .cont { + position: absolute; + padding: 15px 30px; + background: #fff; + bottom: 0; + left: 50%; + -webkit-transform: translateX(-50%); + -ms-transform: translateX(-50%); + transform: translateX(-50%); + text-align: center; + opacity: 0; + visibility: hidden; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.work-carousel .noraidus .cont h6 { + font-size: 12px; + font-weight: 500; + text-transform: uppercase; + letter-spacing: 2px; + margin-bottom: 10px; +} + +.work-carousel .noraidus .cont h4 { + font-size: 17px; +} + +.work-carousel2 .swiper-slide { + padding: 0px 10px 50px; +} + +.work-carousel2 .swiper-slide .img { + border-radius: 3px; + overflow: hidden; + -webkit-transition: all 0.8s; + -o-transition: all 0.8s; + transition: all 0.8s; +} + +.work-carousel2 .swiper-slide-active .img { + -webkit-box-shadow: 0px 40px 30px -40px rgba(0, 0, 0, 0.3); + box-shadow: 0px 40px 30px -40px rgba(0, 0, 0, 0.3); +} + +.work-carousel2 .swiper-slide-active .img:after { + opacity: 1 !important; +} + +.work-carousel2 .swiper-slide-active .cont h6, +.work-carousel2 .swiper-slide-active .cont h4 { + opacity: 1 !important; + visibility: visible !important; + -webkit-transform: translateY(0px) !important; + -ms-transform: translateY(0px) !important; + transform: translateY(0px) !important; +} + +.work-carousel2 .swiper-pagination-progressbar { + position: absolute; + bottom: 0; + top: auto; + right: auto; + left: calc(50% - 120px); + width: 240px; + height: 2px; + border-radius: 10px; + background: #eee; +} + +.work-carousel2 + .swiper-pagination-progressbar + .swiper-pagination-progressbar-fill { + border-radius: 10px; + background: #1e1e1e; +} + +.work-carousel2 .swiper-button-next, +.work-carousel2 .swiper-button-prev { + color: #000; + width: 60px; + height: 60px; + border-radius: 0; + border: 0; + background: #fff; + opacity: 0; + -webkit-transition: all 0.3s; + -o-transition: all 0.3s; + transition: all 0.3s; +} + +.work-carousel2 .swiper-button-next:after, +.work-carousel2 .swiper-button-prev:after { + display: none; +} + +.work-carousel2:hover .swiper-button-next, +.work-carousel2:hover .swiper-button-prev { + opacity: 1; +} + +.work-carousel2 .content { + position: relative; +} + +.work-carousel2 .content .img { + position: relative; + line-height: 0; +} + +.work-carousel2 .content .img:after { + content: ""; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: -webkit-gradient( + linear, + left bottom, + left top, + from(rgba(0, 0, 0, 0.7)), + to(transparent) + ); + background: -webkit-linear-gradient(bottom, rgba(0, 0, 0, 0.7), transparent); + background: -o-linear-gradient(bottom, rgba(0, 0, 0, 0.7), transparent); + background: linear-gradient(to top, rgba(0, 0, 0, 0.7), transparent); + opacity: 0; + -webkit-transition: all 0.5s; + -o-transition: all 0.5s; + transition: all 0.5s; +} + +.work-carousel2 .content .cont { + position: absolute; + bottom: 40px; + left: 40px; + color: #fff; +} + +.work-carousel2 .content .cont h6 { + font-size: 13px; + font-weight: 500; + text-transform: uppercase; + letter-spacing: 4px; + margin-bottom: 10px; + opacity: 0; + visibility: hidden; + -webkit-transform: translateY(-20px); + -ms-transform: translateY(-20px); + transform: translateY(-20px); + -webkit-transition: all 0.7s; + -o-transition: all 0.7s; + transition: all 0.7s; + -webkit-transition-delay: 0.5s; + -o-transition-delay: 0.5s; + transition-delay: 0.5s; +} + +.work-carousel2 .content .cont h4 { + font-weight: 600; + opacity: 0; + visibility: hidden; + -webkit-transform: translateY(20px); + -ms-transform: translateY(20px); + transform: translateY(20px); + -webkit-transition: all 0.7s; + -o-transition: all 0.7s; + transition: all 0.7s; + -webkit-transition-delay: 0.5s; + -o-transition-delay: 0.5s; + transition-delay: 0.5s; +} + +.work-carousel2.mcolumn .swiper-slide { + padding: 0px; +} + +.work-carousel2.mcolumn .swiper-slide .img { + border-radius: 0; +} + +.work-carousel2.mcolumn .swiper-slide-active .img { + -webkit-box-shadow: none; + box-shadow: none; +} + +.work-carousel2.mcolumn .swiper-slide-active .img:after { + opacity: 1 !important; +} + +.half-bg { + position: absolute; + left: 0; + width: 100%; + height: 200px; + background: #f5f5f5; + z-index: 1; +} + +.half-bg.bottom { + bottom: 0; +} + +.half-bg.top { + top: 0; +} + +.half-bg.not-sub { + background: #0c0f16; +} + +.case-study { + position: relative; +} + +.case-study .swiper-slide .container { + min-height: 75vh; + padding: 100px 30px; +} + +.case-study .swiper-slide.bg-img { + background-position: center !important; +} + +.case-study .swiper-slide .cont span { + padding: 12px 30px; + border: 1px solid rgba(255, 255, 255, 0.3); + border-radius: 30px; + font-size: 13px; + margin-bottom: 50px; +} + +.case-study .swiper-slide .cont h6 { + font-size: 17px; + text-transform: uppercase; + letter-spacing: 1px; + margin-bottom: 15px; +} + +.case-study .swiper-slide .cont h4 { + font-size: 60px; + text-transform: uppercase; + letter-spacing: 1px; +} + +.case-study .controls { + position: absolute; + top: 50%; + -webkit-transform: translateY(-50%); + -ms-transform: translateY(-50%); + transform: translateY(-50%); + right: 150px; + z-index: 4; +} + +.case-study .controls .swiper-button-next, +.case-study .controls .swiper-button-prev { + position: static; + width: 60px; + height: 60px; + line-height: 60px; + text-align: center; + border: 1px solid #eee; + color: #fff; + display: block; + margin: 5px auto; + cursor: pointer; +} + +.case-study .controls .swiper-button-next:after, +.case-study .controls .swiper-button-prev:after { + display: none; +} + +.works .lg-space > div { + padding: 0 50px; + margin-bottom: 50px; +} + +.next-prog .box { + position: relative; +} + +.next-prog .box .bg-img { + height: 320px; + width: 320px; + border-radius: 50%; + margin: auto; + background-position: center center; + position: relative; +} + +.next-prog .box .bg-img:before { + border-radius: 50%; +} + +.next-prog .box .caption, +.next-prog .box .copy-cap { + position: absolute; + top: 0; + left: 50%; + height: 100%; + -webkit-transform: translateX(-50%); + -ms-transform: translateX(-50%); + transform: translateX(-50%); +} + +.next-prog .box .caption h1, +.next-prog .box .copy-cap h1 { + font-size: 55px; + font-weight: 800; + display: block; + min-width: 700px; + text-align: center; + margin: auto; +} + +.next-prog .box .caption h1 .stroke, +.next-prog .box .copy-cap h1 .stroke { + display: inline-block; + color: transparent; + -webkit-text-stroke: 1px #111; +} + +.next-prog .box .copy-cap { + z-index: -1; +} + +/* ====================== [ End Work ] ====================== */ +/* ====================== [ Start services ] ====================== */ +.process .coulmn { + position: relative; +} + +.process .coulmn:after { + position: absolute; + content: ""; + width: 75px; + border-top: 2px dashed #12c2e9; + top: 75px; + right: -35px; +} + +.process .item { + text-align: center; +} + +.process .item .bg-img { + width: 150px; + height: 150px; + border-radius: 50%; + margin: 0 auto 30px; + text-align: center; + position: relative; +} + +.process .item .bg-img:after { + content: ""; + position: absolute; + top: 7px; + left: 7px; + right: 7px; + bottom: 7px; + border-radius: 50%; + background: rgba(0, 0, 0, 0.25); +} + +.process .item .bg-img h3 { + color: #fff; + font-size: 40px; + font-weight: 300; + line-height: 150px; + position: relative; + z-index: 3; +} + +/* ====================== [ End services ] ====================== */ +/* ====================== [ Start progress bar ] ====================== */ +.skills-circle .item { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.skills-circle .skill { + position: relative; +} + +.skills-circle .skill span { + width: 100px; + height: 100px; + line-height: 100px; + text-align: center; + border-radius: 50%; + position: absolute; + top: 50%; + left: 50%; + -webkit-transform: translateX(-50px) translateY(-50px); + -ms-transform: translateX(-50px) translateY(-50px); + transform: translateX(-50px) translateY(-50px); + font-size: 20px; + font-weight: 300; +} + +.skills-circle .cont { + padding-top: 25px; + padding-left: 25px; +} + +.skills-circle .cont span { + font-size: 12px; + font-weight: 300; + opacity: 0.9; + margin-bottom: 10px; +} + +.skills-circle .cont h6 { + font-size: 15px; + font-weight: 500; +} + +.skills-box .skill-item { + margin-bottom: 50px; +} + +.skills-box .skill-item:last-of-type { + margin-bottom: 0; +} + +.skills-box h6 { + font-size: 13px; + font-weight: 300; + text-transform: uppercase; + letter-spacing: 2px; + margin-bottom: 10px; +} + +.skills-box .skill-progress { + height: 7px; + background-color: rgba(0, 0, 0, 0.05); + position: relative; +} + +.skills-box .skill-progress .progres { + position: absolute; + height: 100%; + width: 0; + top: 0; + left: 0; + background: -webkit-gradient( + linear, + left top, + right top, + from(#12c2e9), + color-stop(#c471ed), + to(#f64f59) + ); + background: -webkit-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: -o-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: linear-gradient(to right, #12c2e9, #c471ed, #f64f59); + -webkit-transition: all 1.5s; + -o-transition: all 1.5s; + transition: all 1.5s; +} + +.skills-box .skill-progress .progres:after { + content: attr(data-value); + position: absolute; + right: 10px; + top: -45px; + padding: 7px 15px; + border-radius: 5px; + background: rgba(0, 0, 0, 0.05); + font-size: 12px; + font-weight: 600; +} + +.skills-box .skill-progress .progres:before { + content: ""; + width: 0; + height: 0; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + border-top: 8px solid rgba(0, 0, 0, 0.05); + position: absolute; + right: 15px; + bottom: 12px; +} + +/* ====================== [ End progress bar ] ====================== */ +/* ====================== [ Start tabs & list ] ====================== */ +.smp-list { + margin: 0; +} + +.smp-list li { + margin-top: 20px; + font-size: 15px; + font-weight: 300; + padding-left: 20px; + position: relative; +} + +.smp-list li:after { + content: ""; + position: absolute; + left: 0; + top: 50%; + width: 5px; + height: 1px; + background: #12c2e9; +} + +/* ====================== [ Start tabs & list ] ====================== */ +/* ====================== [ Start Team ] ====================== */ +.team { + position: relative; +} + +.team .item { + padding: 0 25px; +} + +.team .item.cir .img { + position: relative; +} + +.team .item.cir .img:hover:after { + opacity: 1; + -webkit-transform: rotate(4deg); + -ms-transform: rotate(4deg); + transform: rotate(4deg); +} + +.team .item.cir .img:hover #circle1, +.team .item.cir .img:hover #circle2, +.team .item.cir .img:hover #circle3, +.team .item.cir .img:hover #circle4, +.team .item.cir .img:hover .info { + opacity: 1; +} + +.team .item.cir .img:hover:before { + opacity: 0.5; +} + +.team .item.cir .img:after { + content: ""; + position: absolute; + top: 5px; + left: 0; + right: 0; + bottom: 5px; + background: -webkit-gradient( + linear, + left top, + right top, + from(#12c2e9), + color-stop(#c471ed), + to(#f64f59) + ); + background: -webkit-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: -o-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: linear-gradient(to right, #12c2e9, #c471ed, #f64f59); + opacity: 0; + z-index: -1; + -webkit-transition: all 0.7s; + -o-transition: all 0.7s; + transition: all 0.7s; +} + +.team .item.cir .img:before { + content: ""; + position: absolute; + top: 0px; + left: 0; + right: 0; + bottom: 0px; + background: #000; + opacity: 0; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.team .item.cir .info { + position: absolute; + bottom: 15px; + left: 15px; + opacity: 0; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; + z-index: 2; +} + +.team .item.cir .info span { + font-size: 13px; + color: #12c2e9; +} + +.team .item .img { + position: relative; +} + +.team .item .img:hover:after { + opacity: 1; + -webkit-transform: rotate(4deg); + -ms-transform: rotate(4deg); + transform: rotate(4deg); +} + +.team .item .img:hover #circle1, +.team .item .img:hover #circle2, +.team .item .img:hover #circle3, +.team .item .img:hover #circle4, +.team .item .img:hover .info { + opacity: 1; + color: #fff; +} + +.team .item .img:hover:before { + opacity: 0.3; +} + +.team .item .img:after { + content: ""; + position: absolute; + top: 5px; + left: 0; + right: 0; + bottom: 5px; + background: -webkit-gradient( + linear, + left top, + right top, + from(#12c2e9), + color-stop(#c471ed), + to(#f64f59) + ); + background: -webkit-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: -o-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: linear-gradient(to right, #12c2e9, #c471ed, #f64f59); + opacity: 0; + z-index: -1; + -webkit-transition: all 0.7s; + -o-transition: all 0.7s; + transition: all 0.7s; +} + +.team.bord .item:hover .img:after { + border-color: #12c2e9; + opacity: 1; + -webkit-transform: rotate(0deg) !important; + -ms-transform: rotate(0deg) !important; + transform: rotate(0deg) !important; +} + +.team.bord .item .img { + padding: 30px; +} + +.team.bord .item .img:after { + content: ""; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 5px; + background: transparent; + border: 1px solid #fff; + opacity: 0.1; + -webkit-transform: rotate(-5deg); + -ms-transform: rotate(-5deg); + transform: rotate(-5deg); + z-index: -1; + -webkit-transition: all 0.7s; + -o-transition: all 0.7s; + transition: all 0.7s; +} + +.team.bord .item .img.left:after { + -webkit-transform: rotate(5deg); + -ms-transform: rotate(5deg); + transform: rotate(5deg); +} + +.team.bord .item .info { + margin-top: 15px; + text-align: center; +} + +.team.bord .item .info span { + font-size: 13px; + color: #12c2e9; +} + +.team .slick-dots { + bottom: -40px; +} + +.team .slick-dots li.slick-active button { + background: #12c2e9; +} + +.team .slick-dots li button { + width: 10px; + height: 10px; + border-radius: 50%; + opacity: 0.8; +} + +.team .slick-dots li button:before { + content: ""; + width: 4px; + height: 4px; + border-radius: 50%; + position: absolute; + top: 4px; + left: 4px; + line-height: 1; + background: #12c2e9; + opacity: 1; +} + +.team .dots-half { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 70%; + z-index: -2; +} + +#circle1, +#circle2, +#circle3, +#circle4 { + position: absolute; + top: -30%; + right: -50%; + width: 100%; + padding-bottom: 100%; + overflow: hidden; + pointer-events: none; + opacity: 0; + -webkit-transition: opacity 0.4s; + -o-transition: opacity 0.4s; + transition: opacity 0.4s; +} + +#circle1 text, +#circle2 text, +#circle3 text, +#circle4 text { + font-size: 13px; + letter-spacing: 4px; +} + +#circle1 svg, +#circle2 svg, +#circle3 svg, +#circle4 svg { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 300px; + -webkit-animation-name: rotate; + -moz-animation-name: rotate; + -ms-animation-name: rotate; + -o-animation-name: rotate; + animation-name: rotate; + -webkit-animation-duration: 8s; + -moz-animation-duration: 8s; + -ms-animation-duration: 8s; + -o-animation-duration: 8s; + animation-duration: 8s; + -webkit-animation-iteration-count: infinite; + -moz-animation-iteration-count: infinite; + -ms-animation-iteration-count: infinite; + -o-animation-iteration-count: infinite; + animation-iteration-count: infinite; + -webkit-animation-timing-function: linear; + -moz-animation-timing-function: linear; + -ms-animation-timing-function: linear; + -o-animation-timing-function: linear; + animation-timing-function: linear; +} + +@-webkit-keyframes rotate { + from { + -webkit-transform: rotate(360deg); + } + + to { + -webkit-transform: rotate(0); + } +} + +@-moz-keyframes rotate { + from { + -moz-transform: rotate(360deg); + } + + to { + -moz-transform: rotate(0); + } +} + +@-ms-keyframes rotate { + from { + -ms-transform: rotate(360deg); + } + + to { + -ms-transform: rotate(0); + } +} + +@-o-keyframes rotate { + from { + -o-transform: rotate(360deg); + } + + to { + -o-transform: rotate(0); + } +} + +@keyframes rotate { + from { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } + + to { + -webkit-transform: rotate(0); + transform: rotate(0); + } +} + +/* ====================== [ End Team ] ====================== */ +/* ====================== [ Start Testimonials ] ====================== */ +.testimonials .container-fluid { + width: 140%; + margin-left: -20%; +} + +.testimonials .item { + text-align: left; + padding: 80px 40px; + -webkit-transform: scale(0.8); + -ms-transform: scale(0.8); + transform: scale(0.8); + background: -webkit-linear-gradient( + 323.53deg, + #ccc 6.69%, + rgba(2, 2, 30, 0) 85.43% + ); + background: -o-linear-gradient( + 323.53deg, + #ccc 6.69%, + rgba(2, 2, 30, 0) 85.43% + ); + background: linear-gradient(126.47deg, #ccc 6.69%, rgba(2, 2, 30, 0) 85.43%); + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; + display: -webkit-box; + display: -ms-flexbox; + display: flex !important; +} + +.testimonials .slick-center .item { + -webkit-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); +} + +.testimonials .item p { + color: #111; + font-size: 28px; + font-weight: 600; + padding-left: 30px; + margin-left: 30px; + border-left: 1px solid rgba(0, 0, 0, 0.1); +} + +.testimonials .item .info { + min-width: 120px; +} + +.testimonials .item .info .img { + width: 80px; + height: 80px; + border: 7px solid #eee; + border-radius: 50%; + overflow: hidden; + margin-bottom: 20px; +} + +.testimonials .item .info .author-name { + margin-bottom: 5px; + font-weight: 600; + font-size: 15px; +} + +.testimonials .item .info .author-details { + font-size: 13px; +} + +.testimonials .slick-dots { + bottom: -30px; +} + +.testimonials .slick-dots li { + width: 7px; + height: 7px; + border-radius: 50%; + border: 1px solid #eee; +} + +.testimonials .slick-dots li.slick-active { + background: #eee; +} + +.testimonials .slick-dots li button { + display: none; +} + +.testimonials .arrows { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +.testimonials .arrows .container { + position: relative; + height: 100%; +} + +.testimonials .arrows .next, +.testimonials .arrows .prev { + position: absolute; + top: 50%; + right: -50px; + width: 50px; + height: 50px; + line-height: 55px; + text-align: center; + font-size: 20px; + border: 1px solid #eee; + border-radius: 50%; + opacity: 0; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.testimonials .arrows .next:hover, +.testimonials .arrows .prev:hover { + border-color: #12c2e9; +} + +.testimonials .arrows .prev { + right: auto; + left: -50px; +} + +.testimonials:hover .arrows .next, +.testimonials:hover .arrows .prev { + opacity: 1; + right: 17%; +} + +.testimonials:hover .arrows .prev { + left: 17%; +} + +.testimonials.lftstl .item { + text-align: left; +} + +.testimonials.lftstl .item .info .author .lxleft { + display: table-cell; + vertical-align: middle; +} + +.testimonials.lftstl .item .info .author .lxleft .img { + margin: 0; +} + +.testimonials.lftstl .item .info .author .fxright { + display: table-cell; + padding: 20px; +} + +.testimonials.lftstl .slick-dots { + text-align: right; +} + +.block-sec .vid-area { + position: absolute; + top: -100px; + left: 10%; + padding: 30px 15px; + background: #ffff; + text-align: center; + z-index: 2; +} + +.block-sec .vid-area:after { + content: ""; + position: absolute; + top: 0px; + left: -10px; + right: -10px; + bottom: -10px; + background: #fff; + opacity: 0.2; + z-index: -1; +} + +.block-sec .vid-area .vid-icon { + margin-top: 50px; +} + +.block-sec .vid-area .vid-icon .vid { + width: 40px; + height: 40px; + border-radius: 50%; + text-align: center; + line-height: 40px; + border: 2px solid #000; +} + +.block-sec .vid-area .vid-icon .vid span { + font-size: 10px; + color: #000; +} + +.block-sec .vid-area .text { + color: #000; + font-size: 12px; + font-weight: 600; + text-transform: uppercase; + -webkit-transform: rotate(-90deg); + -ms-transform: rotate(-90deg); + transform: rotate(-90deg); + margin-top: 30px; +} + +.block-sec .testim-box { + position: relative; + padding: 80px 40px; + margin-bottom: -120px; + z-index: 2; +} + +.block-sec .testim-box:after { + content: ""; + position: absolute; + left: -10px; + top: -10px; + right: -10px; + bottom: -10px; + background: -webkit-gradient( + linear, + left top, + right top, + from(#12c2e9), + color-stop(#c471ed), + to(#f64f59) + ); + background: -webkit-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: -o-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: linear-gradient(to right, #12c2e9, #c471ed, #f64f59); + z-index: -4; +} + +.block-sec .testim-box:before { + content: ""; + position: absolute; + left: 0px; + top: 0px; + right: 0px; + bottom: 0px; + background: #111215; + z-index: -1; +} + +.block-sec .testim-box .head-box h6 { + color: #12c2e9; + font-size: 12px; + font-weight: 300; + text-transform: uppercase; + letter-spacing: 4px; + margin-bottom: 10px; +} + +.block-sec .testim-box .head-box h4 { + margin-bottom: 40px; +} + +.block-sec .testim-box .item p { + font-size: 17px; + margin-bottom: 30px; + padding-bottom: 30px; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); +} + +.block-sec .testim-box .item .info .img { + display: table-cell; + vertical-align: middle; +} + +.block-sec .testim-box .item .info .img .img-box { + width: 70px; + height: 70px; + border-radius: 50%; + overflow: hidden; +} + +.block-sec .testim-box .item .info .cont { + display: table-cell; + vertical-align: middle; + padding-left: 15px; +} + +.block-sec .testim-box .item .info .cont .author-name { + font-size: 16px; + margin-bottom: 5px; + letter-spacing: 2px; + text-transform: uppercase; +} + +.block-sec .testim-box .item .info .cont .author-details { + font-size: 13px; + font-weight: 300; + text-transform: uppercase; +} + +.block-sec .testim-box .slick-dots { + text-align: right; +} + +.block-sec .testim-box .slick-dots li { + width: 7px; + height: 7px; + border-radius: 50%; + border: 1px solid #12c2e9; +} + +.block-sec .testim-box .slick-dots li.slick-active { + background: #12c2e9; +} + +.block-sec .testim-box .slick-dots li button { + display: none; +} + +.clients-brand .item a { + width: 80px; + opacity: 0.5; +} + +.clients-brand .item a:hover { + opacity: 1; +} + +/* ====================== [ End Testimonials ] ====================== */ +/* ====================== [ Start Blog ] ====================== */ +.blog .item .cont { + margin-top: 30px; + position: relative; + z-index: 2; +} + +.blog .item .info { + margin-bottom: 10px; + font-size: 12px; +} + +.blog .item .info .date { + margin-right: 15px; +} + +.blog .item .info .date span i { + font-style: normal; +} + +.blog .item .info span { + text-transform: uppercase; + letter-spacing: 3px; + font-size: 10px; + color: #aaa; +} + +.blog .item .info .tag { + margin-left: 15px; +} + +.blog .item .info .tag span { + color: #12c2e9; +} + +.blog .item h5 { + font-size: 28px; + font-weight: 400; +} + +.blog .item .btn-more { + margin-top: 15px; +} + +.blog .item .btn-more a { + font-size: 12px; + letter-spacing: 2px; +} + +.blog-crv .stories { + position: relative; + padding: 20px; +} + +.blog-crv .controls { + width: 100px; + height: 100px; + border-radius: 50%; + line-height: 100px; + text-align: center; + background: #fff; + position: absolute; + top: calc(50% - 50px); + left: calc(50% - 50px); + z-index: 3; +} + +.blog-crv .controls:after { + content: ""; + position: absolute; + right: -10px; + top: -10px; + bottom: -10px; + left: -10px; + background: rgba(220, 220, 220, 0.2); + border-radius: 50%; + z-index: -1; +} + +.blog-crv .controls .swiper-button-next.next-ctrl, +.blog-crv .controls .swiper-button-prev.prev-ctrl { + position: absolute; + left: calc(50% - 15px); + right: auto; + color: #ccc; + z-index: 4; + cursor: pointer; + font-size: 28px; + width: 30px; + height: 30px; +} + +.blog-crv .controls .swiper-button-next.next-ctrl:after, +.blog-crv .controls .swiper-button-prev.prev-ctrl:after { + display: none; +} + +.blog-crv .controls .swiper-button-next.next-ctrl { + top: 22px; + bottom: auto; +} + +.blog-crv .controls .swiper-button-prev.prev-ctrl { + bottom: 0px; + top: auto; +} + +.blog-crv .controls .swiper-pagination-fraction { + position: static; +} + +.blog-crv .controls .swiper-pagination-fraction span { + margin: 0 7px; + font-weight: 600; + color: #444; +} + +.blog-crv .controls .swiper-pagination-fraction .swiper-pagination-current { + position: relative; +} + +.blog-crv + .controls + .swiper-pagination-fraction + .swiper-pagination-current:after { + content: "/"; + position: absolute; + right: -11px; + top: 0; + font-size: 10px; + color: #ccc; +} + +.blog-crv .item .img { + border-radius: 3px; + overflow: hidden; +} + +.blog-crv .item .content { + padding: 30px 65px; + text-align: center; +} + +.blog-crv .item .content .tags { + text-transform: uppercase; + letter-spacing: 2px; + font-size: 13px; + margin-bottom: 20px; +} + +.blog-crv .item .content .tags a { + margin: 0 7px; +} + +.blog-crv .item .content .info { + margin-bottom: 10px; +} + +.blog-crv .item .content .info a { + margin: 0 10px; + font-weight: 400; + color: #12c2e9; + font-size: 13px; +} + +.blog-crv .item .content .title { + margin-bottom: 10px; +} + +.blog-crv .item .content .title h4 { + font-weight: 600; + line-height: 1.5; +} + +.blog-crv .item .content .more a { + font-size: 14px; + letter-spacing: 1px; + margin-top: 20px; + border-bottom: 1px solid rgba(200, 200, 200, 0.1); +} + +.blog-grid .item { + padding: 40px; + position: relative; +} + +.blog-grid .item:after { + content: ""; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: #f5f5f5; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.blog-grid .item.active:after { + opacity: 0.85; +} + +.blog-grid .item:hover:after { + opacity: 0.7; +} + +.blog-grid .item .cont { + position: relative; + z-index: 2; +} + +.blog-grid .item .cont .date { + text-transform: uppercase; + margin-bottom: 100px; +} + +.blog-grid .item .cont .date i { + font-size: 30px; + font-style: normal; + display: block; +} + +.blog-grid .item .cont .info { + margin-bottom: 20px; +} + +.blog-grid .item .cont .info .author { + font-weight: 500; + text-transform: uppercase; + letter-spacing: 1px; + margin-right: 10px; +} + +.blog-grid .item .cont .info .tag { + color: #12c2e9; + margin-left: 10px; +} + +.blog-grid .item .cont h6 { + line-height: 1.7; + margin-bottom: 40px; +} + +.blog-grid .item.list { + padding: 0; +} + +.blog-grid .item.list:after { + display: none; +} + +.blog-grid .item.list .cont { + background: #13161d; + padding: 30px; + position: relative; +} + +.blog-grid .item.list .cont .date { + position: absolute; + top: -40px; + right: 15px; + padding: 5px 15px; + background: #12c2e9; + color: #222; + font-size: 12px; + font-weight: 500; + text-align: center; + z-index: 2; +} + +.blog-grid .item.list .cont .date i { + font-size: 20px; +} + +.blog-grid .item.list .cont .date:after { + content: ""; + position: absolute; + top: -5px; + left: -5px; + right: -5px; + bottom: -5px; + border: 5px solid rgba(255, 255, 255, 0.1); +} + +.blog-list .head h6 { + display: inline-block; + padding: 7px 12px; + font-size: 15px; + border-radius: 10px; + margin-bottom: 15px; +} + +.blog-list .head h3 { + font-weight: 600; + margin-bottom: 5px; +} + +.blog-list .head a { + font-size: 12px; + text-transform: uppercase; + letter-spacing: 10px; + margin-top: 40px; + padding-bottom: 10px; + position: relative; +} + +.blog-list .head a:after { + content: ""; + position: absolute; + bottom: 0; + left: 0; + height: 1px; + width: 40%; + background: -webkit-gradient( + linear, + left top, + right top, + from(#12c2e9), + color-stop(#c471ed), + to(#f64f59) + ); + background: -webkit-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: -o-linear-gradient(left, #12c2e9, #c471ed, #f64f59); + background: linear-gradient(to right, #12c2e9, #c471ed, #f64f59); + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.blog-list .head a:hover:after { + width: 100%; +} + +.blog-list .item { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + padding-bottom: 30px; + margin-bottom: 50px; + border-bottom: 1px solid rgba(100, 100, 100, 0.2); +} + +.blog-list .item:last-of-type { + margin-bottom: 0; + padding-bottom: 0; + border: none; +} + +.blog-list .item .img { + width: 350px; +} + +.blog-list .item .cont { + padding-left: 30px; +} + +.blog-list .item .info { + margin-bottom: 15px; + font-size: 12px; +} + +.blog-list .item .info .date { + margin-right: 15px; +} + +.blog-list .item .info .date span i { + font-style: normal; +} + +.blog-list .item .info span { + text-transform: uppercase; + letter-spacing: 3px; + font-size: 10px; + color: #aaa; +} + +.blog-list .item .info .tag { + margin-left: 15px; +} + +.blog-list .item .info .tag span { + color: #12c2e9; +} + +.blog-list .item h5 { + font-size: 22px; + font-weight: 500; +} + +.blog-pg .posts .item .img { + position: relative; +} + +.blog-pg .posts .item .content { + padding-top: 25px; +} + +.blog-pg .posts .item .content .date { + margin-right: 15px; + text-transform: uppercase; + font-size: 12px; +} + +.blog-pg .posts .item .content .date .num { + font-size: 12px; +} + +.blog-pg .posts .item .content .tags { + margin-bottom: 10px; + display: inline-block; +} + +.blog-pg .posts .item .content .tags a { + font-size: 12px; + font-weight: 500; + color: #12c2e9; + padding-right: 20px; + position: relative; +} + +.blog-pg .posts .item .content .tags a:after { + content: ""; + width: 8px; + height: 1px; + background: #eee; + position: absolute; + right: 4px; + top: 50%; +} + +.blog-pg .posts .item .content .tags a:last-of-type { + padding-right: 0; +} + +.blog-pg .posts .item .content .tags a:last-of-type:after { + display: none; +} + +.blog-pg .posts .item .content h4 { + line-height: 1.6; + margin-bottom: 5px; +} + +.blog-pg .posts .pagination { + margin: 80px auto 0; + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; + text-align: center; +} + +.blog-pg .posts .pagination span { + text-align: center; + margin: 0 2px; +} + +.blog-pg .posts .pagination span a { + width: 50px; + height: 50px; + line-height: 50px; + border: 1px solid #eee; + font-size: 18px; +} + +.blog-pg .posts .pagination span.active a { + border-color: #12c2e9; + color: #12c2e9; +} + +.blog-pg.blog-list .item { + display: block; +} + +.blog-pg.blog-list .item .img { + width: 100%; +} + +.blog-pg.blog-list .item .cont { + padding-left: 60px; +} + +.blog-pg.single .post .main-img .simpleParallax { + height: 70vh; + max-height: 600px; +} + +.blog-pg.single .post .main-img img { + width: 100%; + height: 100%; + -o-object-fit: cover; + object-fit: cover; + -o-object-position: center center; + object-position: center center; +} + +.blog-pg.single .post .content p { + font-size: 16px; + font-family: inherit; + margin: 30px 0; +} + +.blog-pg.single .post .content ul li { + margin: 10px 0; +} + +.blog-pg.single .post .content ul li span { + margin-right: 10px; + font-weight: 500; + font-size: 13px; +} + +.blog-pg.single .post .content .quotes { + background: rgba(0, 0, 0, 0.04); + padding: 30px; + margin: 30px 0; +} + +.blog-pg.single .post .content .quotes p { + font-size: 18px; + font-style: italic; +} + +.blog-pg.single .post .content .spacial p { + font-size: 18px; + font-weight: 500; +} + +.blog-pg.single .post .content .share-info { + margin-top: 20px; + padding-top: 10px; + border-top: 1px solid #999; + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.blog-pg.single .post .content .share-info .social a { + font-size: 13px; + margin-right: 20px; +} + +.blog-pg.single .post .content .share-info .tags { + margin-left: auto; +} + +.blog-pg.single .post .content .share-info .tags a { + font-size: 12px; + margin: 0 10px; +} + +.blog-pg.single .post .author { + padding: 30px; + margin-top: 40px; + background: rgba(0, 0, 0, 0.04); +} + +.blog-pg.single .post .author .author-img { + display: table-cell; + vertical-align: middle; + width: 140px; +} + +.blog-pg.single .post .author .info { + display: table-cell; + padding-left: 40px; +} + +.blog-pg.single .post .author .info h6 { + margin-bottom: 10px; + font-size: 15px; +} + +.blog-pg.single .post .author .info h6 span { + text-transform: uppercase; + margin-right: 10px; +} + +.blog-pg.single .post .author .info p { + padding: 0; + margin: 0; +} + +.blog-pg.single .post .author .info .social { + margin-top: 15px; + font-size: 13px; +} + +.blog-pg.single .post .author .info .social a { + margin-right: 15px; +} + +.blog-pg.single .pagination { + margin-top: 80px; + border-top: 1px solid rgba(0, 0, 0, 0.1); + border-bottom: 1px solid rgba(0, 0, 0, 0.1); + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.blog-pg.single .pagination span { + width: 100%; + padding: 20px; + border-right: 1px solid rgba(0, 0, 0, 0.1); + border-left: 1px solid rgba(0, 0, 0, 0.1); + text-transform: uppercase; + font-weight: 500; + font-size: 13px; + letter-spacing: 1px; +} + +.blog-pg.single .pagination .icon { + border: 0; + width: 70px; +} + +.blog-pg.single .comments-area { + margin-top: 80px; +} + +.blog-pg.single .comments-area .item { + padding: 30px 0; + margin: 30px 0; + border-bottom: 1px solid rgba(0, 0, 0, 0.1); +} + +.blog-pg.single .comments-area .item.relped { + margin-left: 100px; +} + +.blog-pg.single .comments-area .item .comment-img { + display: table-cell; + width: 80px; +} + +.blog-pg.single .comments-area .item .info { + display: table-cell; + vertical-align: middle; + padding-left: 40px; + position: relative; +} + +.blog-pg.single .comments-area .item .info h6 { + font-size: 14px; + text-transform: uppercase; + letter-spacing: 1px; + font-weight: 500; +} + +.blog-pg.single .comments-area .item .info h6 span { + display: block; + color: #12c2e9; + font-size: 12px; + font-weight: 400; + margin-top: 5px; +} + +.blog-pg.single .comments-area .item .info p { + line-height: 1.5; + margin-top: 15px; +} + +.blog-pg.single .comments-area .item .info .replay { + position: absolute; + right: 0; + top: 0; + font-size: 13px; +} + +.blog-pg.single .comments-area .item .info .replay i { + margin-left: 5px; +} + +.blog-pg.single .comment-form { + margin-top: 80px; +} + +.blog-pg.single .comment-form form { + margin-top: 50px; +} + +.blog-pg.single .comment-form form input, +.blog-pg.single .comment-form form textarea { + color: #fff; + width: 100%; + padding: 17px; + background: rgba(0, 0, 0, 0.05); + border: 0; +} + +.blog-pg.single .comment-form form textarea { + height: 140px; +} + +.next-project { + position: relative; + padding: 80px 0; + margin-top: 90px; + background: #fafafa; + z-index: 2; + overflow: hidden; +} + +.next-project:before { + display: none; +} + +.next-project:after { + content: ""; + height: 0; + width: 100%; + position: absolute; + bottom: auto; + right: 0; + top: 0; + -webkit-transition: height 0.6s cubic-bezier(0.25, 0.8, 0.25, 1) 0s; + -o-transition: height 0.6s cubic-bezier(0.25, 0.8, 0.25, 1) 0s; + transition: height 0.6s cubic-bezier(0.25, 0.8, 0.25, 1) 0s; + background: #f5f5f5; + z-index: -1; +} + +.next-project:hover:after { + height: 100%; + bottom: 0; + top: auto; +} + +.next-project .content { + width: 100%; +} + +.next-project .content h2 { + font-size: 90px; + font-weight: 800; + text-transform: uppercase; + letter-spacing: 4px; + margin-bottom: 20px; +} + +.next-project .content p { + font-size: 18px; + color: #555; +} + +/* ====================== [ End Blog ] ====================== */ +/* ====================== [ Start Call To Action ] ====================== */ +.call-action { + background-attachment: fixed; +} + +.call-action .content h6 { + color: #12c2e9; + font-size: 13px; + font-weight: 400; + text-transform: uppercase; + letter-spacing: 4px; + margin-bottom: 10px; +} + +.call-action .content h6 span { + color: #12c2e9; +} + +.call-action .content h2 { + font-weight: 700; + font-size: 4vw; + line-height: 1.2; + text-transform: uppercase; + margin-bottom: 20px; + -webkit-text-stroke-width: 1px; + -webkit-text-stroke-color: #000; + color: transparent; +} + +.call-action .content h2 span { + color: transparent; +} + +.call-action .content h2 b span { + color: #fff; + -webkit-text-stroke-width: 0; +} + +.call-action .content h2 .whitespace { + width: 18px; +} + +.call-action .content p { + font-size: 17px; + font-weight: 300; +} + +.call-action .btn-curve { + border: 2px solid; + line-height: 2; +} + +.call-action .btn-curve span { + font-size: 15px; + font-weight: 700; + text-transform: capitalize; +} + +.call-action .btn-curve:hover span { + color: #0c0f16; +} + +.call-action .tlink { + margin-left: auto; + border-bottom: 1px solid #eee; +} + +.call-action.next { + position: relative; + z-index: 2; + overflow: hidden; +} + +.call-action.next:after { + display: none; +} + +.call-action.next:before { + content: ""; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + display: block; + background: #0a0a0a; + opacity: 1; + -webkit-transition: all 0.5s; + -o-transition: all 0.5s; + transition: all 0.5s; +} + +.call-action.next .content h2 { + font-size: 5vw; + font-weight: 700; +} + +.call-action.next .content h2 b { + font-weight: 700; +} + +.call-action.next .nxt-img { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + -webkit-transform: scale(1.4); + -ms-transform: scale(1.4); + transform: scale(1.4); + background-size: cover; + background-position: center; + z-index: -1; + -webkit-transition: all 1s linear; + -o-transition: all 1s linear; + transition: all 1s linear; +} + +.call-action.next:hover:before { + opacity: 0.9; +} + +.call-action.next:hover .nxt-img { + -webkit-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); + -webkit-transition: all 10s linear; + -o-transition: all 10s linear; + transition: all 10s linear; +} + +/* ====================== [ End Call To Action ] ====================== */ +/* ====================== [ Start Numbers & Counter ] ====================== */ +.number-sec .item { + text-align: center; + padding: 0 25px; +} + +.number-sec .item .icon { + opacity: 0.8; + font-size: 70px; + margin-bottom: 40px; +} + +.number-sec .item h3 { + font-weight: 200; + letter-spacing: 2px; + margin-bottom: 15px; +} + +.video { + position: relative; + min-height: 80vh; +} + +.video:after { + content: ""; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-image: -webkit-gradient( + linear, + left bottom, + left top, + from(rgba(0, 0, 0, 0.2)), + to(rgba(43, 47, 53, 0.7)) + ); + background-image: -webkit-linear-gradient( + bottom, + rgba(0, 0, 0, 0.2) 0%, + rgba(43, 47, 53, 0.7) 100% + ); + background-image: -o-linear-gradient( + bottom, + rgba(0, 0, 0, 0.2) 0%, + rgba(43, 47, 53, 0.7) 100% + ); + background-image: linear-gradient( + to top, + rgba(0, 0, 0, 0.2) 0%, + rgba(43, 47, 53, 0.7) 100% + ); + background-repeat: repeat-x; +} + +.video .vid { + position: absolute; + left: calc(50% - 50px); + top: calc(50% - 50px); + text-align: center; + z-index: 8; +} + +.video .vid .vid-butn { + width: 100%; +} + +.video .vid .vid-butn:hover .icon { + color: #fff; +} + +.video .vid .vid-butn:hover .icon:before { + -webkit-transform: scale(0); + -ms-transform: scale(0); + transform: scale(0); +} + +.video .vid .vid-butn .icon { + color: #fff; + width: 130px; + height: 130px; + border: 1px solid #fff; + border-radius: 50%; + line-height: 130px; + text-align: center; + font-size: 30px; + position: relative; + -webkit-transition: all 0.5s; + -o-transition: all 0.5s; + transition: all 0.5s; +} + +.video .vid .vid-butn .icon:before { + content: ""; + position: absolute; + top: 5px; + bottom: 5px; + right: 5px; + left: 5px; + background: #fff; + border-radius: 50%; + z-index: -1; + -webkit-transition: all 0.5s cubic-bezier(1, 0, 0, 1); + -o-transition: all 0.5s cubic-bezier(1, 0, 0, 1); + transition: all 0.5s cubic-bezier(1, 0, 0, 1); + opacity: 0; +} + +.video .container { + position: relative; + height: 80vh; + padding: 80px 0; + z-index: 2; +} + +.video .container .stauts { + position: absolute; + bottom: 0; + left: 0; + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.video .container .stauts .item { + padding: 30px 40px; + min-width: 200px; + background: #272727; + margin-right: 30px; + color: #fff; +} + +.video .container .stauts .item:last-of-type { + background: #fff; + color: #121a21; +} + +.video .container .stauts .item h4 span { + font-size: 20px; + margin-left: 2px; +} + +.video .container .stauts .item h6 { + font-size: 15px; + margin-top: 5px; +} + +/* ====================== [ End Numbers & Counter ] ====================== */ +/* ====================== [ Start contact ] ====================== */ +.contact-sec .form .form-group { + margin-bottom: 30px; +} + +.contact-sec .form .form-group input, +.contact-sec .form .form-group textarea { + width: 100%; + padding: 15px 0; + border: 0; + border-bottom: 1px solid rgba(0, 0, 0, 0.1); + background: transparent; +} + +.contact-sec.style2 .form input, +.contact-sec.style2 .form textarea { + padding: 20px; + background: rgba(0, 0, 0, 0.05); + -webkit-backdrop-filter: blur(2px); + backdrop-filter: blur(2px); +} + +.contact .form input, +.contact .form textarea { + color: #fff; + width: 100%; + padding: 15px 0; + background: transparent; + border: 0; + border-bottom: 1px solid rgba(0, 0, 0, 0.3); +} + +.contact .form textarea { + padding: 15px; + min-height: 140px; + border: 1px solid rgba(0, 0, 0, 0.3); + margin-top: 30px; +} + +.contact .cont-info h3 { + font-size: 18px; + font-weight: 400; + letter-spacing: 2px; + margin-bottom: 10px; +} + +.contact .cont-info .item h5 { + font-size: 16px; + font-weight: 400; + color: #333; + margin: 10px 0; +} + +.contact .cont-info .item h6 { + font-size: 14px; + font-weight: 300; + color: #555; + line-height: 1.7; +} + +.contact .cont-info .social a { + width: 45px; + height: 45px; + line-height: 45px; + text-align: center; + background: rgba(0, 0, 0, 0.01); + border-radius: 50%; + margin-right: 5px; + font-size: 13px; +} + +.map { + width: 100%; + height: 60vh; +} + +/* ====================== [ End contact ] ====================== */ +/* ====================== [ Start Footer ] ====================== */ +footer { + color: #fff; + padding: 100px 0; + background: #18191d; +} + +footer.sub-bg { + background: #18191d; +} + +footer .item .title h5 { + margin-bottom: 30px; +} + +footer .item li { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + margin-bottom: 25px; +} + +footer .item li:last-of-type { + margin-bottom: 0; +} + +footer .item li h6 { + font-size: 14px; + font-weight: 600; +} + +footer .item li .icon { + font-size: 30px; + margin-right: 30px; +} + +footer .item li .img { + width: 150px; + margin-right: 15px; +} + +footer .item li .sm-post p { + font-size: 13px; +} + +footer .item li .sm-post .date { + font-size: 12px; + color: #12c2e9; +} + +footer .item li .subscribe { + width: 100%; + position: relative; +} + +footer .item li .subscribe input { + width: 100%; + padding: 15px; + border-radius: 30px; + border: 1px solid rgba(255, 255, 255, 0.05); + background: transparent; + color: #fff; + font-size: 13px; +} + +footer .item li .subscribe .subs { + position: absolute; + top: 0; + right: 0; + width: 50px; + height: 50px; + line-height: 50px; + text-align: center; + border-radius: 50%; + background: #12c2e9; + color: #000; +} + +footer .item .logo { + margin-bottom: 50px; +} + +footer .item .logo img { + width: 50px; +} + +footer .item .social a { + width: 60px; + height: 60px; + line-height: 60px; + text-align: center; + border-radius: 50%; + border: 1px solid rgba(255, 255, 255, 0.05); + font-size: 13px; + margin-right: 10px; +} + +footer .item .copy-right { + margin-top: 30px; +} + +footer .item .copy-right p { + font-size: 13px; + font-weight: 300; + text-transform: uppercase; + letter-spacing: 3px; +} + +footer .item .copy-right p a { + color: #12c2e9; +} + +/* ====================== [ End Footer ] ====================== */ +/* ====================== [ Start Responsive ] ====================== */ +.navbar .navbar-collapse.show-with-trans { + opacity: 1; + padding: 10px 15px; + height: auto; +} +@media screen and (max-width: 991px) { + .bg-img { + background-position: center !important; + } + + .md-mb10 { + margin-bottom: 10px; + } + + .md-mb20 { + margin-bottom: 20px; + } + + .md-mb30 { + margin-bottom: 30px; + } + + .md-mb40 { + margin-bottom: 40px; + } + + .md-mb50 { + margin-bottom: 50px; + } + + .md-mb60 { + margin-bottom: 60px; + } + + .md-mb70 { + margin-bottom: 70px; + } + + .md-mb80 { + margin-bottom: 80px; + } + + .md-pb10 { + padding-bottom: 10px; + } + + .md-pb20 { + padding-bottom: 20px; + } + + .md-pb30 { + padding-bottom: 30px; + } + + .md-pb40 { + padding-bottom: 40px; + } + + .md-pb50 { + padding-bottom: 50px; + } + + .md-pb60 { + padding-bottom: 60px; + } + + .md-pb70 { + padding-bottom: 70px; + } + + .md-pb80 { + padding-bottom: 80px; + } + + .order2 { + -webkit-box-ordinal-group: 3 !important; + -ms-flex-order: 2 !important; + order: 2 !important; + } + + .order1 { + -webkit-box-ordinal-group: 2 !important; + -ms-flex-order: 1 !important; + order: 1 !important; + } + + .container { + max-width: 720px; + } + + .navbar .icon-bar { + color: #fff; + } + + .navbar { + min-height: 60px; + } + + .navbar .navbar-collapse { + max-height: 340px; + overflow: auto; + background: #11141b; + text-align: center; + display: block !important; + opacity: 0; + transition: all 0.3s linear; + height: 0; + padding: 0; + transform-origin: top; + } + + .navbar .nav-link { + margin: 10px auto !important; + } + + .navbar .logo { + margin-left: 15px; + width: 50px; + } + + .nav-scroll .icon-bar, + .light .icon-bar { + color: #111; + } + + .nav-scroll .navbar-collapse .nav-link, + .light .navbar-collapse .nav-link { + color: #fff !important; + } + + .nav-scroll .navbar-collapse .active, + .light .navbar-collapse .active { + color: #12c2e9 !important; + } + + .navbar .search { + border: 0; + padding: 0; + margin-top: 30px; + } + + .navbar .search .search-form { + display: block !important; + position: static; + height: auto; + opacity: 1 !important; + } + + .navbar .search .search-form form { + position: static; + width: 100%; + -webkit-transform: none; + -ms-transform: none; + transform: none; + } + + .navbar .search .search-form form input { + padding: 15px; + width: 100%; + font-size: 14px; + } + + .navbar .search .icon, + .navbar .search .search-form .close { + display: none; + } + + .navbar-nav .dropdown-menu { + opacity: 1; + visibility: visible; + display: none; + background: #0c0f16; + text-align: center; + color: #eee; + } + + .navbar-nav .dropdown-menu .dropdown-item { + color: #eee; + } + + .navbar-nav .dropdown-menu.show { + display: block; + } + + .navbar .navbar-nav .nav-link { + padding: 0; + } + + .navbar .navbar-nav .nav-link:hover { + color: #12c2e9; + } + + .slider .parallax-slider .caption.dig { + text-align: center; + } + + .slider .parallax-slider .caption.dig h1 { + font-size: 60px; + } + + .slider .parallax-slider .caption.dig h1 .tline { + margin-left: 0; + } + + .slider .parallax-slider .caption h1 { + font-size: 50px; + letter-spacing: 1px; + } + + .slider .parallax-slider .caption h1 br { + display: none; + } + + .slider-stwo .img { + padding-right: 0; + margin-bottom: 50px; + } + + .slider-stwo:after { + display: none; + } + + .freelancre .img { + margin-bottom: 50px; + } + + .freelancre .states { + position: relative; + margin-top: 80px; + } + + .freelancre .states ul.flex { + display: block; + } + + .freelancre .states ul.flex li { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + margin-bottom: 50px; + } + + .freelancre .states ul.flex .mail-us { + float: right; + margin-bottom: 0; + } + + .showcase-full .parallax-slider .caption h1 span { + margin-left: 0; + } + + .showcase-carus .caption h1, + .showcase-carus .copy-cap h1 { + font-size: 60px; + left: auto; + margin-left: 20px; + } + + .circle-slide .swiper-slide .bg-img { + opacity: 0; + visibility: hidden; + -webkit-transition: all 0.5s; + -o-transition: all 0.5s; + transition: all 0.5s; + height: 380px !important; + width: 380px !important; + margin: auto !important; + } + + .circle-slide .swiper-slide.swiper-slide-active .bg-img { + opacity: 1; + visibility: visible; + } + + .showcase-carus.circle-slide .caption h1, + .showcase-carus.circle-slide .copy-cap h1 { + font-size: 65px; + } + + .pages-header .cont h1 { + font-size: 35px; + } + + .works-header .capt h1 { + font-size: 45px; + } + + .sec-head h3 br { + display: none; + } + + .agency .imgsec { + padding-right: 0; + } + + .about-cr .img img { + width: 100%; + margin: 0; + } + + .about-cr .cont h3 { + margin-left: 0; + } + + .about-cr .cont { + padding-bottom: 120px; + } + + .testimonials .item { + -webkit-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); + display: block !important; + } + + .testimonials .container-fluid { + width: auto; + margin-left: 0; + } + + #circle1, + #circle2, + #circle3, + #circle4 { + display: none; + } + + .block-sec .vid-area .cont, + .about .content, + .skills-box, + .about-ar .img .hero-bg { + margin-bottom: 50px; + } + + .min-area .content, + .min-area .img { + padding: 120px 0; + } + + .services .rtwo > div:nth-of-type(2), + .services .rone > div:nth-of-type(2) { + margin-bottom: 0px; + } + + .services .step-item.xbottom, + .services .step-item.xtop { + bottom: auto; + top: auto; + } + + .services .step-item { + margin: 25px 0; + } + + .block-sec .testim-box { + margin-bottom: 120px; + } + + .block-sec .vid-area { + display: none; + } + + .portfolio .filtering { + padding-left: 0; + padding-right: 0; + margin-bottom: 30px; + } + + .portfolio-frl .gallery .items, + .portfolio .gallery .items { + padding: 0 10px; + margin: 10px 0; + } + + .case-study .controls { + top: 100px; + -webkit-transform: translate(0); + -ms-transform: translate(0); + transform: translate(0); + } + + .slider .parallax-slider .caption p { + margin-left: 0; + } + + .arch-slider .parallax-slider .explore { + margin-left: 0; + margin-top: 50px; + } + + .blog-grid .item.active { + margin: 50px 0; + } + + .footer-half:after { + width: 100%; + } + + .footer-half .cont { + margin-bottom: 50px; + } + + .next-prog .box .caption h1, + .next-prog .box .copy-cap h1 { + font-size: 40px; + } +} + +@media screen and (max-width: 767px) { + .sm-mb10 { + margin-bottom: 10px; + } + + .sm-mb20 { + margin-bottom: 20px; + } + + .sm-mb30 { + margin-bottom: 30px; + } + + .sm-mb40 { + margin-bottom: 40px; + } + + .sm-mb50 { + margin-bottom: 50px; + } + + .sm-mb60 { + margin-bottom: 60px; + } + + .sm-mb70 { + margin-bottom: 70px; + } + + .sm-mb80 { + margin-bottom: 80px; + } + + .sm-pb10 { + padding-bottom: 10px; + } + + .sm-pb20 { + padding-bottom: 20px; + } + + .sm-pb30 { + padding-bottom: 30px; + } + + .sm-pb40 { + padding-bottom: 40px; + } + + .sm-pb50 { + padding-bottom: 50px; + } + + .sm-pb60 { + padding-bottom: 60px; + } + + .sm-pb70 { + padding-bottom: 70px; + } + + .sm-pb80 { + padding-bottom: 80px; + } + + .container { + max-width: 540px; + } + + h1 { + font-size: 35px; + } + + h2 { + font-size: 28px; + } + + h3 { + font-size: 24px; + } + + h4 { + font-size: 20px; + } + + h5 { + font-size: 18px; + } + + h6 { + font-size: 16px; + } + + .progress-wrap { + right: 15px; + bottom: 15px; + } + + .navbar .logo { + width: 40px; + } + + .hamenu .menu-links .main-menu > li { + font-size: 24px; + } + + .hamenu .menu-links .main-menu .sub-menu li { + font-size: 18px; + } + + .topnav .container-fluid { + padding: 0 30px; + } + + .topnav .logo { + width: 40px; + } + + .btn-curve { + padding: 8px 15px; + } + + .btn-curve span { + font-size: 15px; + letter-spacing: 1px; + } + + .slider .parallax-slider .caption h1 { + font-size: 40px; + } + + .slider .parallax-slider .caption h1 br { + display: none; + } + + .slider .parallax-slider .swiper-slide-active .caption h1 { + font-size: 30px; + } + + .slider .social-icon { + display: none; + } + + .slider .setone.setwo .prev-ctrl { + left: 15px; + bottom: 15px; + top: auto; + width: 45px; + height: 45px; + line-height: 45px; + } + + .slider .setone.setwo .next-ctrl { + left: 70px; + bottom: 15px; + top: auto; + width: 45px; + height: 45px; + line-height: 45px; + } + + .slider .swiper-pagination-fraction.top.botm { + right: 15px; + bottom: 15px; + } + + .slider .swiper-pagination-fraction.top .swiper-pagination-current { + font-size: 40px; + } + + .slider .parallax-slider .caption.dig h1 { + font-size: 40px; + } + + .particles .cont h1 { + font-size: 55px; + } + + .slider-stwo ul li div { + display: block; + } + + .slider-stwo ul li .cont { + display: block; + vertical-align: auto; + padding-left: 0; + margin-top: 15px; + } + + .freelancre { + padding-top: 200px; + padding-bottom: 0; + text-align: center; + } + + .freelancre .img { + margin-left: auto; + margin-right: auto; + } + + .freelancre:after, + .freelancre .states ul.flex .mail-us { + display: none; + } + + .showcase-carus.circle-slide .caption { + left: 0; + text-align: center; + } + + .showcase-carus.circle-slide .copy-cap { + display: none; + } + + .showcase-carus .swiper-slide .bg-img { + margin: 0; + height: 100vh; + background-position: center center; + } + + .showcase-carus.circle-slide .caption h1, + .showcase-carus.circle-slide .copy-cap h1 { + font-size: 50px; + min-width: auto; + margin: auto !important; + left: 0; + } + + .showcase-full .parallax-slider .caption .discover { + width: 120px; + height: 120px; + letter-spacing: 2px; + text-transform: capitalize; + } + + .pages-header { + padding: 120px 0 80px; + overflow-x: hidden; + } + + .works-header .capt h2 { + font-size: 40px; + } + + .slider.fixed-slider, + .works-header.hfixd { + position: static; + } + + .main-content { + margin-top: 0 !important; + } + + .sub-title h6 { + font-size: 12px; + } + + .sec-head h3 { + font-size: 30px; + } + + .sec-head h6 { + font-size: 15px; + letter-spacing: 5px; + } + + .agency .imgsec .exp { + margin-bottom: 15px; + } + + .about .img-mons .img1, + .about .img-mons .img2, + .about .img-mons .img3 { + height: auto; + } + + .about .img-mons .img1, + .about .img-mons .img2, + .about .img-mons .img3 { + margin-bottom: 10px; + } + + .about .img-mons .img3 { + width: 100%; + margin-top: 0; + } + + .about-us .img .stauts .item { + padding: 25px 15px; + margin-right: 20px; + } + + .about-us .img .stauts .item:last-of-type { + margin-right: 0; + } + + .about-us .img .stauts .item h4 { + font-size: 30px; + } + + .about-us .img .stauts .item h4 span { + font-size: 20px; + } + + .about-us .img { + padding: 0; + } + + .about-cr .cont h3 { + font-size: 40px; + } + + .services .step-item { + padding: 60px 40px; + } + + .testimonials .item p { + font-size: 17px; + } + + .skills-circle { + padding-bottom: 0 !important; + } + + .skills-circle .item { + margin-bottom: 50px; + } + + .team .navs { + top: 20px; + } + + .block-sec .vid-area .cont h3 { + font-size: 34px; + } + + .block-sec .testim-box:after { + top: -5px; + left: -5px; + right: -5px; + bottom: -5px; + } + + .call-action .content h2 { + font-size: 7vw; + } + + .portfolio .filtering .filter { + padding: 15px 5px; + border-radius: 10px; + } + + .portfolio .filtering span { + margin: 5px 10px; + } + + .portfolio .filtering span:after { + display: none; + } + + .portfolio-cr .items { + width: 100% !important; + } + + .team-crv .img-box .img.sizxl, + .team-crv .img-box .img.sizmd, + .team-crv .img-box .img.sizsm { + width: 50%; + } + + .blog-pg.blog-list .item .cont { + padding-left: 15px; + } + + .blog-pg.single .post .author .author-img, + .blog-pg.single .post .author .info, + .blog-pg.single .comments-area .item .comment-img, + .blog-pg.single .comments-area .item .info { + display: block; + } + + .blog-pg.single .post .author .info, + .blog-pg.single .comments-area .item .info { + padding-left: 0; + margin-top: 15px; + } + + .intro-section .htit { + margin-bottom: 15px; + } +} + +@media screen and (max-width: 480px) { + .hamenu .cont-info { + display: none; + } + + .hamenu .menu-links .main-menu > li { + font-size: 20px; + padding: 7px; + } + + .hamenu .menu-links .main-menu .sub-menu li { + font-size: 16px; + } + + .topnav .container-fluid { + padding: 0 15px; + } + + .slider-bus .caption h1 { + font-size: 50px; + } + + .showcase-full .dots { + display: none; + } + + .slider .txt-botm .swiper-nav-ctrl.swiper-button-next { + right: 20px; + } + + .slider .txt-botm .swiper-nav-ctrl.swiper-button-prev { + left: 20px; + } + + .pages-header .cont .path { + font-size: 15px; + } + + .pages-header .cont .path span { + margin: 0 10px; + } + + .pages-header .capt h1 { + font-size: 24px; + } + + .page-header .cont h1 { + font-size: 40px; + } + + .slider .swiper-pagination-fraction.steps { + bottom: 60px; + } + + .particles .cont h1 { + font-size: 30px; + font-weight: 700; + } + + .circle-slide .swiper-slide .bg-img { + height: 280px !important; + width: 280px !important; + } + + .freelancre .cont h1 { + font-size: 22px; + } + + .freelancre .img { + width: 200px; + height: 200px; + } + + .showcase-carus.circle-slide .caption h1, + .showcase-carus.circle-slide .copy-cap h1 { + font-size: 40px; + } + + .works-header .capt h2 { + font-size: 30px; + letter-spacing: 1px; + } + + .pages-header .cont h1 { + font-size: 20px; + } + + .sec-head h3 { + font-size: 20px; + } + + .sec-head h2 { + font-size: 55px; + } + + .about-us .img .stauts { + display: none; + } + + .about-ar .img .hero-bg { + width: 300px; + height: 300px; + } + + .about-ar .img .exp { + width: 240px; + height: 240px; + } + + .about-ar .img .exp h2 { + font-size: 100px; + } + + .about-ar .content h3 { + font-size: 35px; + } + + .services.lficon .item-box { + display: block; + } + + .services.lficon .item-box .cont { + padding-left: 0; + } + + .min-area .content h4, + .agency .content h4 { + font-size: 28px; + } + + .portfolio .gallery .items { + padding: 0 15px; + margin: 0 0 50px; + } + + .portfolio .gallery .items.lg-mr { + margin-top: 50px; + } + + .portfolio .filtering.smplx span { + margin: 5px 15px; + } + + .case-study .swiper-slide .cont h4 { + font-size: 25px; + } + + .case-study .controls { + top: 30px; + right: 30px; + } + + .case-study .controls .swiper-button-next, + .case-study .controls .swiper-button-prev { + width: 40px; + height: 40px; + line-height: 40px; + } + + .block-sec .vid-area .cont h3 { + font-size: 28px; + } + + .video .container .stauts { + display: none; + } + + .testimonials .item { + display: block; + padding: 60px 30px; + } + + .testimonials .item p { + margin-left: 0; + padding-left: 0; + border: 0; + font-size: 14px; + font-weight: 500; + text-align: center; + } + + .testimonials .item .info { + min-width: auto; + margin: auto; + margin-bottom: 30px; + display: block; + text-align: center; + } + + .testimonials .item .info .img { + margin: auto; + } + + .blog-crv .controls { + display: none; + } + + .blog-crv .item .content { + padding: 30px 15px; + } + + .blog-list .item { + display: block; + } + + .blog-list .item .img { + width: 100%; + } + + .blog-list .item .cont { + padding-left: 0; + margin-top: 30px; + } + + .blog-pg.blog-list .item .cont { + margin-top: 0; + } + + .blog .item h5 { + font-size: 20px; + } + + .blog-pg.single .post .content .share-info { + display: block; + } + + .blog-pg.single .post .content .share-info .social, + .blog-pg.single .post .content .share-info .tags { + text-align: center; + background: rgba(255, 255, 255, 0.1); + padding: 5px 10px; + } + + .blog-pg.single .post .content .share-info .tags { + margin-top: 5px; + } + + .blog-pg.single .comments-area .item.relped { + margin-left: 30px; + } + + .next-prog .box .bg-img { + width: 240px; + height: 240px; + } + + .next-prog .box .caption h1, + .next-prog .box .copy-cap h1 { + font-size: 20px; + font-weight: 600; + } + + .next-prog .box .caption h1 .stroke, + .next-prog .box .copy-cap h1 .stroke { + display: inline-block; + color: #fff; + -webkit-text-stroke: 0px #fff; + } +} + +/* ====================== [ End Responsive ] ====================== */ + +svg.CircularProgressbar { + width: 110px; +} +section.testimonials.section-padding { + overflow: hidden !important; +} +.slick-prev, +.slick-next { + display: none !important; +} +header.particles.circle-bg.valign { + overflow: hidden; +} + +div#particles-js { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +section.next-prog.section-padding { + overflow: hidden; +} +@media (max-width: 768px) { + a.col-md-3.popimg { + padding: 0; + margin-bottom: 15px; + } + + .popup-img .row { + margin: 0 15px; + } + + a.col-md-12.popimg { + padding: 0; + } +} diff --git a/public/css/mobile-app-dark.css b/public/css/mobile-app-dark.css new file mode 100644 index 0000000..f8c473c --- /dev/null +++ b/public/css/mobile-app-dark.css @@ -0,0 +1,1637 @@ +/*----------------------------------------------------------------------------------- + + Theme Name: Vie + Description: ReactJS Creative Agency & Portfolio template + Author: ThemesCamp + Author URI: http://themeforest.net/user/ThemesCamp + Version: 1.2 + +-----------------------------------------------------------------------------------*/ +/* ---------------------------------------------------------------- + +== Table Of Content + + |--- BASE + + |- typography + + |--- SHORTCODES + + |- Header + |- buttons + |- brands + |- serv-block + |- services + |- process + |- team-vid + |- works + |- price + |- testimonials + |- app-action + |- Blog + |- shop + |- footers + + |--- BASE + + |- responsive + + + +---------------------------------------------------------------- */ +/* ====================== [ Start typography ] ====================== */ +body { + font-family: "Manrope", sans-serif !important; +} + +h1 { + font-size: 55px; +} + +h2 { + font-size: 42px; +} + +h3 { + font-size: 35px; +} + +h4 { + font-size: 30px; +} + +h5 { + font-size: 24px; +} + +h6 { + font-size: 18px; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + line-height: 1.3; + font-weight: 700; +} + +p { + color: #9b9b9b; + font-size: 16px; + font-weight: 500; + line-height: 1.8; + margin: 0; + opacity: 0.7; +} + +.container { + max-width: 1170px; +} + +.stit { + font-size: 22px; + color: #f45162; + position: relative; + z-index: 4; +} + +.stit span { + position: relative; + top: 0; + width: 20px; + height: 20px; + border: 1px solid #fff; + border-radius: 50%; +} + +.stit span:after { + content: ""; + position: absolute; + top: -5px; + left: -5px; + width: 100%; + height: 100%; + border-radius: 50%; + background: #f45162; + z-index: -1; +} + +.stit span.left { + margin-right: 15px; +} + +.stit span.right { + margin-left: 15px; +} + +.bg-gray { + background: #202123; +} + +.bg-dark { + background: #1e1f21 !important; +} + +.bg-dark .stit { + color: #f45162 !important; +} + +.bg-dark .stit span { + border: 1px solid #fff; +} + +.circle-blur { + position: absolute; + width: 180px; + height: 180px; + border-radius: 50%; + background: #17c0e9; + -webkit-filter: blur(100px); + filter: blur(100px); +} + +/* ====================== [ End typography ] ====================== */ +/* ====================== [ Start header ] ====================== */ +.mobile-app { + min-height: 100vh; + padding: 100px 0 60px; +} + +.mobile-app .caption h1 { + font-size: 70px; +} + +.mobile-app .caption .buton svg { + fill: #fff; +} + +.page-app-header { + min-height: 60vh; +} + +.page-app-header:before { + background: #f45162; + background-image: -webkit-gradient( + linear, + right top, + left top, + from(#17c0e9), + color-stop(#c96ddd), + to(#f45162) + ); + background-image: -webkit-linear-gradient(right, #17c0e9, #c96ddd, #f45162); + background-image: -o-linear-gradient(right, #17c0e9, #c96ddd, #f45162); + background-image: linear-gradient(to left, #17c0e9, #c96ddd, #f45162); +} + +.page-app-header .text-center h1 { + font-size: 65px; +} + +.page-app-header .text-center .links a { + color: #fff; +} + +.page-app-header .text-center .links a:last-of-type { + text-decoration: underline; +} + +.page-app-header .text-center .links span { + font-size: 30px; + margin: 0 10px; + position: relative; + bottom: -8px; +} + +.swiper-container { + padding-bottom: 30px; +} + +body .swiper-pagination-bullets.swiper-pagination-horizontal, +.swiper-pagination-custom, +.swiper-pagination-fraction { + bottom: 0; +} + +.swiper-pagination-bullets.swiper-pagination-horizontal + .swiper-pagination-bullet { + background: transparent; + border: 1px solid #fff; + cursor: pointer; +} + +.swiper-pagination-bullets.swiper-pagination-horizontal + .swiper-pagination-bullet-active { + background: #f45162; + border-color: transparent; +} + +/* ====================== [ End header ] ====================== */ +/* ====================== [ Start buton ] ====================== */ +.buton { + min-width: 220px; + text-align: center; + padding: 15px 30px; + font-weight: 600; +} + +.buton svg { + fill: #fff; +} + +.buton.butn-gr { + background-color: #f45162; + background-image: -webkit-gradient( + linear, + right top, + left top, + from(#17c0e9), + color-stop(#c96ddd), + to(#f45162) + ); + background-image: -webkit-linear-gradient(right, #17c0e9, #c96ddd, #f45162); + background-image: -o-linear-gradient(right, #17c0e9, #c96ddd, #f45162); + background-image: linear-gradient(to left, #17c0e9, #c96ddd, #f45162); + border: 1px solid transparent; + color: #fff; +} + +.buton.butn-gr svg { + fill: #fff; +} + +.buton.butn-gr:hover { + background: #f45162; +} + +.buton.butn-gray { + background: #252527; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.buton.butn-gray:hover { + background: #f45162; + color: #fff; +} + +.buton.butn-gray:hover svg { + fill: #fff; +} + +.buton.butn-bord-dark { + border: 1px solid #fff; +} + +.buton.butn-bord-red { + border: 1px solid #f45162; +} + +.buton.butn-bord-light { + border: 1px solid #fff; + color: #fff; +} + +.buton.butn-bord-light svg { + fill: #fff; +} + +.buton.butn-bg-light { + background: #fff; + color: #0f0f1e; +} + +.buton.butn-bg-light span { + color: #0f0f1e; +} + +.buton.butn-bg-light svg { + fill: #0f0f1e; +} + +.buton.rounded { + border-radius: 30px !important; +} + +.buton .icon svg { + position: relative; + width: 15px; + margin-left: 10px; + margin-bottom: -3px; +} + +.butn-more { + border-bottom: 1px solid #fff; + font-weight: 600; +} + +.butn-more svg { + width: 6px; + fill: #fff; +} + +/* ====================== [ End buton ] ====================== */ +/* ====================== [ Start brands ] ====================== */ +.brands { + position: relative; +} + +.brands .circle-blur { + top: -40px; + left: 0; + width: 180px; + height: 180px; + background: #17c0e9; +} + +.brands .head h2 span { + position: relative; +} + +.brands .head h2 span .bord-gr { + position: absolute; + top: -10px; + left: -10%; + width: 120%; +} + +.brands .item { + margin: 30px auto; +} + +.brands .item .img { + position: relative; + overflow: hidden; + width: 120px; + margin: auto; + opacity: 0.5; +} + +.brands .item .img img { + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.brands .item .img:hover { + opacity: 1; +} + +.brands .item .img:hover .front { + -webkit-transform: translateY(-100%); + -ms-transform: translateY(-100%); + transform: translateY(-100%); +} + +.brands .item .img:hover .back { + -webkit-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); +} + +.brands .item .img .back { + position: absolute; + width: 100%; + height: 100%; + left: 0; + top: 0; + -webkit-transform: translateY(100%); + -ms-transform: translateY(100%); + transform: translateY(100%); +} + +/* ====================== [ End brands ] ====================== */ +/* ====================== [ Start serv-block ] ====================== */ +.serv-block { + position: relative; +} + +.serv-block .circle-blur { + width: 240px; + height: 240px; + background: #f45162; + -webkit-filter: blur(120px); + filter: blur(120px); + left: 0; + top: 50px; + z-index: -1; + opacity: 0.8; +} + +.serv-block .circle-blur.two { + left: auto; + right: 0; + top: auto; + bottom: 100px; +} + +.serv-block .content p { + font-size: 16px; +} + +.serv-block .content .butn-more { + margin-left: 20px; +} + +.serv-block .content .list-feat ul { + margin: 0; + padding: 0; +} + +.serv-block .content .list-feat li .icon { + display: inline-block; + width: 20px; + height: 20px; + text-align: center; + border-radius: 50%; + background: #f45162; + margin-right: 20px; +} + +.serv-block .content .list-feat li .icon svg { + width: 10px; + fill: #fff; + position: relative; +} + +.serv-block .app-sta .item .icon { + color: #f45162; + font-size: 40px; + margin-bottom: 10px; +} + +.serv-block .app-sta .item h3 { + font-size: 55px; + margin-bottom: 10px; +} + +.accordion.shadwo .item { + padding: 17px 25px; + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 7px; + cursor: pointer; +} + +.accordion.shadwo .item .title h6 { + font-size: 17px; +} + +.accordion.shadwo .item .title h6 span { + font-size: 30px; + float: right; + position: relative; + top: -3px; +} + +.accordion.shadwo .item .accordion-info { + margin-top: 20px; + display: none; + transition: height .5s ease; + overflow: hidden; +} + +.accordion.shadwo .item .accordion-info.active { + display: block; +} + +.accordion.shadwo .item .accordion-info p { + font-size: 15px; +} + +.accordion .item.active { + display: block; + background: #252527; + -webkit-box-shadow: 0px 10px 60px rgba(76, 76, 76, 0.1); + box-shadow: 0px 10px 60px rgba(76, 76, 76, 0.1); + border-color: transparent; +} + +/* ====================== [ end serv-block ] ====================== */ +/* ====================== [ Start app-services ] ====================== */ +.app-services .item { + padding: 40px; + border-radius: 10px; + border: 1px solid transparent; + background: #252527; + position: relative; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; + z-index: 3; +} + +.app-services .item:hover { + border-color: transparent; +} + +.app-services .item:hover:before { + opacity: 1; +} + +.app-services .item:after, +.app-services .item:before { + content: ""; + position: absolute; + border-radius: 5px; + background: #252527; + z-index: -1; +} + +.app-services .item:after { + top: 0; + left: 0; + right: 0; + bottom: 0; +} + +.app-services .item:before { + top: -1px; + left: -1px; + right: -1px; + bottom: -1px; + background-image: -webkit-gradient( + linear, + right top, + left top, + from(#17c0e9), + color-stop(#c96ddd), + to(#f45162) + ); + background-image: -webkit-linear-gradient(right, #17c0e9, #c96ddd, #f45162); + background-image: -o-linear-gradient(right, #17c0e9, #c96ddd, #f45162); + background-image: linear-gradient(to left, #17c0e9, #c96ddd, #f45162); + opacity: 0; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.app-services .item .item-tit { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.app-services .item .item-tit .icon { + margin-right: 20px; +} + +.app-services .item .item-tit .icon svg { + width: 40px; + fill: #f45162; +} + +.app-services .item .item-tit .icon span { + font-size: 45px; + color: #f45162; +} + +.app-services .item .item-tit .text-tit h5 { + font-size: 22px; + margin-top: 10px; + position: relative; +} + +.app-services .item p { + font-size: 15px; +} + +/* ====================== [ End app-services ] ====================== */ +/* ====================== [ Start app-process ] ====================== */ +.app-process .item { + padding: 40px; + border-radius: 10px; + border: 1px solid rgba(255, 255, 255, 0.1); + position: relative; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; + z-index: 3; +} + +.app-process .item:hover { + border-color: transparent; +} + +.app-process .item:hover:before { + opacity: 1; +} + +.app-process .item:after, +.app-process .item:before { + content: ""; + position: absolute; + border-radius: 10px; + background: #111215; + z-index: -1; +} + +.app-process .item:after { + top: 0; + left: 0; + right: 0; + bottom: 0; +} + +.app-process .item:before { + top: -1px; + left: -1px; + right: -1px; + bottom: -1px; + background-image: -webkit-gradient( + linear, + right top, + left top, + from(#17c0e9), + color-stop(#c96ddd), + to(#f45162) + ); + background-image: -webkit-linear-gradient(right, #17c0e9, #c96ddd, #f45162); + background-image: -o-linear-gradient(right, #17c0e9, #c96ddd, #f45162); + background-image: linear-gradient(to left, #17c0e9, #c96ddd, #f45162); + opacity: 0; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.app-process .item .icon { + font-size: 60px; + color: #f45162; + margin-bottom: 30px; +} + +.app-process .item .step-number { + font-size: 14px; + color: #f45162; + letter-spacing: 4px; + text-transform: uppercase; + margin: 20px auto; +} + +.app-process .item p { + font-size: 16px; +} + +/* ====================== [ End app-process ] ====================== */ +/* ====================== [ Start team-vid ] ====================== */ +.team-vid { + margin-top: 260px; + position: relative; +} + +.team-vid .circle-blur { + width: 220px; + height: 220px; + background: #157b95; + -webkit-filter: blur(90px); + filter: blur(90px); + left: 0; + top: 80px; + opacity: 0.9; +} + +.team-vid .circle-blur.two { + left: auto; + right: 0; + top: auto; + bottom: 100px; + background: #0740ac; +} + +.team-vid .vid-img { + position: relative; + min-height: 520px; + padding: 80px 0; + margin-top: -260px; +} + +.team-vid .vid-img .vid { + width: 90px; + height: 90px; + border-radius: 50%; + text-align: center; + background: #fff; + position: absolute; + top: 50%; + left: 50%; + z-index: 4; + -webkit-transform: translateY(-50%) translateX(-50%); + -ms-transform: translateY(-50%) translateX(-50%); + transform: translateY(-50%) translateX(-50%); +} + +.team-vid .vid-img .vid svg { + fill: #f45162; + width: 20px; + position: absolute; + top: 50%; + left: 50%; + -webkit-transform: translateY(-50%) translateX(-50%); + -ms-transform: translateY(-50%) translateX(-50%); + transform: translateY(-50%) translateX(-50%); +} + +.team-vid .item .img { + width: 200px; + height: 200px; + border-radius: 50%; + margin: 0 auto 50px; + position: relative; +} + +.team-vid .item .img:hover:before { + background: -webkit-gradient( + linear, + right top, + left top, + from(#17c0e9), + color-stop(#c96ddd), + to(#f45162) + ); + background: -webkit-linear-gradient(right, #17c0e9, #c96ddd, #f45162); + background: -o-linear-gradient(right, #17c0e9, #c96ddd, #f45162); + background: linear-gradient(to left, #17c0e9, #c96ddd, #f45162); +} + +.team-vid .item .img img { + width: 100%; + height: 100%; + -o-object-fit: cover; + object-fit: cover; + border-radius: 50%; + position: relative; + z-index: 2; +} + +.team-vid .item .img:after, +.team-vid .item .img:before { + content: ""; + position: absolute; + width: 100%; + height: 100%; + border-radius: 50%; +} + +.team-vid .item .img:after { + border: 1px solid rgba(255, 255, 255, 0.1); + top: -15px; + left: -15px; +} + +.team-vid .item .img:before { + background: #f45162; + bottom: -15px; + right: -15px; +} + +.team-vid .item h5 { + margin-bottom: 10px; +} + +/* ====================== [ End team-vid ] ====================== */ +/* ====================== [ Start app-works ] ====================== */ +.app-works .filter { + padding: 15px 30px; + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 5px; + text-align: center; + margin-bottom: 30px; +} + +.app-works .filter span { + margin: 0 30px; + padding: 5px; + font-size: 13px; + font-weight: 600; + position: relative; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; + cursor: pointer; +} + +.app-works .filter span:after { + content: ""; + position: absolute; + bottom: -16px; + left: 0; + width: 100%; + height: 2px; + background: #f45162; + background-image: -webkit-gradient( + linear, + right top, + left top, + from(#17c0e9), + color-stop(#c96ddd), + to(#f45162) + ); + background-image: -webkit-linear-gradient(right, #17c0e9, #c96ddd, #f45162); + background-image: -o-linear-gradient(right, #17c0e9, #c96ddd, #f45162); + background-image: linear-gradient(to left, #17c0e9, #c96ddd, #f45162); + opacity: 0; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.app-works .filter span.active { + color: #f45162; +} + +.app-works .filter span.active:after { + opacity: 1; +} + +.app-works .items { + margin-top: 30px; +} + +.app-works .items .item-img { + position: relative; +} + +.app-works .items .item-img:hover .cont { + opacity: 1; + visibility: visible; +} + +.app-works .items .item-img .cont { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(10, 11, 15, 0.75); + color: #fff; + pointer-events: none; + opacity: 0; + visibility: hidden; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.app-works .items .item-img .cont .icon { + width: 60px; + height: 60px; + line-height: 60px; + text-align: center; + border: 2px solid #fff; + border-radius: 50%; + font-size: 40px; + margin-bottom: 20px; +} + +.app-works .items .item-img .cont h5 { + font-size: 30px; + margin-bottom: 10px; +} + +/* ====================== [ End app-works ] ====================== */ +/* ====================== [ Start app-price ] ====================== */ +.app-price .item { + padding: 50px 70px; + border: 1px solid rgba(76, 76, 76, 0.1); +} + +.app-price .item.sm-padding { + padding: 50px 40px; +} + +.app-price .item.sm-padding .feat li .icon { + margin-right: 10px; +} + +.app-price .item.active { + border-color: transparent; + background: #202123; +} + +.app-price .item .amount h3 { + font-size: 100px; + font-weight: 500; + color: #f45162; + position: relative; + display: inline-block; + line-height: 1; +} + +.app-price .item .amount h3 span { + position: absolute; + left: -20px; + top: 14px; + color: #fff; + font-size: 25px; +} + +.app-price .item .order .buton { + width: 100%; +} + +.app-price .item .feat ul { + margin: 0; + padding: 0; +} + +.app-price .item .feat li { + color: #9b9b9b; + margin-top: 15px; +} + +.app-price .item .feat li.disbl { + opacity: 0.3; +} + +.app-price .item .feat li .icon { + display: inline-block; + width: 20px; + height: 20px; + text-align: center; + border-radius: 50%; + background: #f45162; + margin-right: 20px; +} + +.app-price .item .feat li .icon svg { + width: 10px; + fill: #fff; + position: relative; +} + +/* ====================== [ End app-price ] ====================== */ +/* ====================== [ Start app-testim ] ====================== */ +.app-testim .item { + padding: 60px; + background: #131416; + border: 1px solid transparent; + text-align: center; + position: relative; + z-index: 4; +} + +.app-testim .item:hover:after { + opacity: 1; +} + +.app-testim .item:before { + content: ""; + position: absolute; + top: 0px; + left: 0px; + right: 0px; + bottom: 0px; + background: #131416; + z-index: -1; +} + +.app-testim .item:after { + content: ""; + position: absolute; + top: -1px; + left: -1px; + right: -1px; + bottom: -1px; + background: #f45162; + background: -webkit-linear-gradient(125deg, #17c0e9, #c96ddd, #f45162); + background: -o-linear-gradient(125deg, #17c0e9, #c96ddd, #f45162); + background: linear-gradient(-35deg, #17c0e9, #c96ddd, #f45162); + z-index: -2; + opacity: 0; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.app-testim .item .icon img { + width: 50px; +} + +.app-testim .item .info { + margin-top: 30px; +} + +.app-testim .item .info .img { + width: 60px; + height: 60px; + border-radius: 50%; + overflow: hidden; + margin: 0 auto 15px; +} + +.app-testim .item .info .img img { + width: 100%; + height: 100%; + -o-object-fit: cover; + object-fit: cover; + -o-object-position: center; + object-position: center; +} + +.app-testim .item .info .cont span { + font-size: 15px; + opacity: 0.4; +} + +.app-testim .item .text p { + font-size: 16px; +} + +/* ====================== [ End app-testim ] ====================== */ +/* ====================== [ Start app-action ] ====================== */ +.app-action .box-gr { + background-color: #f45162; + background-image: -webkit-linear-gradient(125deg, #17c0e9, #c96ddd, #f45162); + background-image: -o-linear-gradient(125deg, #17c0e9, #c96ddd, #f45162); + background-image: linear-gradient(-35deg, #17c0e9, #c96ddd, #f45162); + margin-top: 100px; +} + +.app-action .box-gr .img { + position: relative; + margin-top: -100px; +} + +.app-action .box-gr .cont { + padding: 80px 0; + position: relative; +} + +.app-action .box-gr .cont .shape-light { + position: absolute; + top: 10%; + left: 0; + width: 80%; + height: 80%; + pointer-events: none; +} + +.app-action .box-gr .cont .stit span { + border-color: #fff; +} + +.app-action .box-gr .cont .stit span:after { + background: #fff; +} + +/* ====================== [ End app-action ] ====================== */ +/* ====================== [ Start app-blog ] ====================== */ +.app-blog .item { + border-radius: 10px; + background: #252527; + overflow: hidden; + -webkit-transition: all 0.3s; + -o-transition: all 0.3s; + transition: all 0.3s; +} + +.app-blog .item:hover .buton { + background: #f45162; + background: -webkit-linear-gradient(125deg, #17c0e9, #c96ddd, #f45162); + background: -o-linear-gradient(125deg, #17c0e9, #c96ddd, #f45162); + background: linear-gradient(-35deg, #17c0e9, #c96ddd, #f45162); + color: #fff; + border-color: transparent; +} + +.app-blog .item .img { + height: 300px; +} + +.app-blog .item .img img { + width: 100%; + height: 100%; + -o-object-fit: cover; + object-fit: cover; + -o-object-position: center; + object-position: center; +} + +.app-blog .item .cont { + padding: 20px 15px 20px 0; +} + +.app-blog .item .cont .tag { + font-size: 12px; + font-weight: 700; + letter-spacing: 1px; + text-transform: uppercase; + color: #f45162; + margin-bottom: 15px; +} + +.app-blog .item .cont h5 { + font-size: 20px; + margin-bottom: 10px; +} + +.app-blog .item .cont .info a { + margin-right: 10px; + font-size: 12px; +} + +.app-blog .item .cont .info a:last-of-type { + margin-right: 0; +} + +.app-blog .item .cont .info a span { + opacity: 0.4; +} + +.app-blog .item .cont p { + font-size: 16px; +} + +.app-blog .item .cont .buton { + padding: 11px 30px; + min-width: auto; + margin-top: 20px; + font-size: 14px; +} + +.app-blog .item .cont .buton:hover { + background: -webkit-linear-gradient(125deg, #17c0e9, #c96ddd, #f45162); + background: -o-linear-gradient(125deg, #17c0e9, #c96ddd, #f45162); + background: linear-gradient(-35deg, #17c0e9, #c96ddd, #f45162); + color: #fff; + border-color: transparent; +} + +/* ====================== [ End app-blog ] ====================== */ +/* ====================== [ Start shop ] ====================== */ +.shop .sidebar .search .form-group { + position: relative; +} + +.shop .sidebar .search .form-group input { + padding: 15px 60px 15px 15px; + border: 1px solid rgba(255, 255, 255, 0.1); + background: transparent; + border-radius: 5px; + color: #fff; + width: 100%; +} + +.shop .sidebar .search .form-group button { + padding: 11px 20px; + background: #f45162; + color: #fff; + font-size: 18px; + border: 0; + border-radius: 5px; + position: absolute; + top: 3px; + right: 3px; +} + +.shop .sidebar .search .form-group button:focus { + outline: none; +} + +.shop .sidebar .box { + padding: 30px; + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 5px; +} + +.shop .sidebar .gat li { + margin-bottom: 15px; + opacity: 0.9; + overflow: hidden; + padding-left: 20px; + position: relative; +} + +.shop .sidebar .gat li:before { + content: ""; + width: 6px; + height: 1px; + background: #1e1f21; + position: absolute; + left: 0; + top: 50%; +} + +.shop .sidebar .gat li:last-of-type { + margin-bottom: 0; +} + +.shop .sidebar .gat li a { + width: 100%; +} + +.shop .sidebar .gat li span { + float: right; +} + +.shop .sidebar .tags a { + font-size: 13px; + padding: 10px 15px; + background: rgba(255, 255, 255, 0.06); + border-radius: 4px; + margin: 4px 2px; +} + +.shop .sidebar .tags a:hover { + color: #fff; + background: #f45162; + background-image: -webkit-gradient( + linear, + right top, + left top, + from(#17c0e9), + color-stop(#c96ddd), + to(#f45162) + ); + background-image: -webkit-linear-gradient(right, #17c0e9, #c96ddd, #f45162); + background-image: -o-linear-gradient(right, #17c0e9, #c96ddd, #f45162); + background-image: linear-gradient(to left, #17c0e9, #c96ddd, #f45162); +} + +.shop .store .top-area .filter-select select { + background: #111215; + color: #fff; + padding: 10px; + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 5px; +} + +.shop .store .item:hover .img .add, +.shop .store .item:hover .img:after { + opacity: 1 !important; + visibility: visible !important; +} + +.shop .store .item .img { + position: relative; + width: 100%; + height: 280px; + margin-top: 50px; + border-radius: 5px; + overflow: hidden; +} + +.shop .store .item .img:after { + content: ""; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(16, 15, 19, 0.7); + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; + opacity: 0; + visibility: hidden; +} + +.shop .store .item .img img { + width: 100%; + height: 100%; + -o-object-fit: cover; + object-fit: cover; + -o-object-position: center; + object-position: center; +} + +.shop .store .item .img .tag { + position: absolute; + top: 20px; + right: 20px; + padding: 5px 10px; + border-radius: 4px; + color: #fff; + font-size: 14px; + background: #f45162; + background-image: -webkit-gradient( + linear, + right top, + left top, + from(#17c0e9), + color-stop(#c96ddd), + to(#f45162) + ); + background-image: -webkit-linear-gradient(right, #17c0e9, #c96ddd, #f45162); + background-image: -o-linear-gradient(right, #17c0e9, #c96ddd, #f45162); + background-image: linear-gradient(to left, #17c0e9, #c96ddd, #f45162); + z-index: 2; +} + +.shop .store .item .img .add { + position: absolute; + top: 50%; + left: 50%; + -webkit-transform: translate(-50%, -50%); + -ms-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + z-index: 2; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; + opacity: 0; + visibility: hidden; +} + +.shop .store .item .img .add a { + white-space: nowrap; + padding: 14px 25px; + border-radius: 4px; + color: #fff; + font-size: 14px; + background: #f45162; + background-image: -webkit-gradient( + linear, + right top, + left top, + from(#17c0e9), + color-stop(#c96ddd), + to(#f45162) + ); + background-image: -webkit-linear-gradient(right, #17c0e9, #c96ddd, #f45162); + background-image: -o-linear-gradient(right, #17c0e9, #c96ddd, #f45162); + background-image: linear-gradient(to left, #17c0e9, #c96ddd, #f45162); +} + +.shop .store .item .img .add a span { + width: 15px; + height: 15px; + line-height: 15px; + text-align: center; + border: 1px solid #fff; + border-radius: 50%; + margin-left: 5px; +} + +.shop .store .item .info { + padding-top: 30px; + text-align: center; +} + +.shop .store .item .info span { + color: #f45162; + margin-top: 10px; +} + +.shop .range-slider { + width: 100%; + margin: 0 auto; + position: relative; +} + +.shop .range-slider .start-pointe { + position: absolute; + left: 0; + bottom: -25px; +} + +.shop .range-slider #tooltip { + position: absolute; + bottom: -25px; + right: 0; + left: auto !important; +} + +.shop .range-slider #tooltip span:before { + content: "$ "; +} + +.shop #range { + -webkit-appearance: none; + width: 100%; +} + +.shop #range:focus { + outline: none; +} + +.shop #range::-webkit-slider-runnable-track { + width: 100%; + height: 4px; + cursor: pointer; + animate: 0.2s; + background: -webkit-gradient( + linear, + left top, + right top, + from(#f45162), + to(#dee4ec) + ); + background: -webkit-linear-gradient( + left, + #f45162 var(--range-progress), + #dee4ec var(--range-progress) + ); + background: linear-gradient( + 90deg, + #f45162 var(--range-progress), + #dee4ec var(--range-progress) + ); + border-radius: 2px; +} + +.shop #range::-webkit-slider-thumb { + -webkit-appearance: none; + border-radius: 50%; + background: #f45162; + background-image: -webkit-gradient( + linear, + right top, + left top, + from(#17c0e9), + color-stop(#c96ddd), + to(#f45162) + ); + background-image: -webkit-linear-gradient(right, #17c0e9, #c96ddd, #f45162); + background-image: linear-gradient(to left, #17c0e9, #c96ddd, #f45162); + cursor: pointer; + height: 15px; + width: 15px; + -webkit-transform: translateY(calc(-50% + 2px)); + transform: translateY(calc(-50% + 2px)); +} + +/* ====================== [ End shop ] ====================== */ +/* ====================== [ Start footer ] ====================== */ +.app-footer { + padding: 100px 0 0; + position: relative; + background: #131416; +} + +.app-footer .circle-blur { + width: 180px; + height: 180px; + background: #f45162; + -webkit-filter: blur(120px); + filter: blur(120px); + left: 0; + top: 80px; + opacity: 0.7; +} + +.app-footer .circle-blur.two { + width: 220px; + height: 220px; + left: auto; + right: 0; + top: auto; + bottom: 0; + background: #d14add; +} + +.app-footer .logo-brand { + max-width: 90px; +} + +.app-footer .info span { + opacity: 0.4; + font-weight: 400; + margin-bottom: 10px; +} + +.app-footer .info h6 { + font-size: 20px; +} + +.app-footer .social a { + width: 40px; + height: 40px; + line-height: 40px; + text-align: center; + font-size: 12px; + border-radius: 50%; + border: 1px solid rgba(255, 255, 255, 0.1); + position: relative; + z-index: 3; +} + +.app-footer .social a:hover { + border-color: transparent; +} + +.app-footer .social a:hover:before { + opacity: 1; +} + +.app-footer .social a:after, +.app-footer .social a:before { + content: ""; + position: absolute; + border-radius: 50%; + background: #1e1f21; + z-index: -1; +} + +.app-footer .social a:after { + top: 0; + left: 0; + right: 0; + bottom: 0; +} + +.app-footer .social a:before { + top: -1px; + left: -1px; + right: -1px; + bottom: -1px; + background-image: -webkit-gradient( + linear, + right top, + left top, + from(#17c0e9), + color-stop(#c96ddd), + to(#f45162) + ); + background-image: -webkit-linear-gradient(right, #17c0e9, #c96ddd, #f45162); + background-image: -o-linear-gradient(right, #17c0e9, #c96ddd, #f45162); + background-image: linear-gradient(to left, #17c0e9, #c96ddd, #f45162); + opacity: 0; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.app-footer .links .title { + font-size: 22px; +} + +.app-footer .links ul { + margin: 0; +} + +.app-footer .links li { + margin-top: 25px; + font-size: 17px; + opacity: 0.7; + line-height: 1; +} + +.app-footer .links li .icon { + font-size: 20px; + margin-right: 5px; +} + +.app-footer .sub-footer { + margin-top: 80px; + padding: 40px 0; + border-top: 1px solid rgba(255, 255, 255, 0.1); +} + +/* ====================== [ End footer ] ====================== */ +/* ====================== [ Start Responsive ] ====================== */ +@media screen and (max-width: 991px) { + .lg-hide { + display: none; + } + h2 { + font-size: 30px; + } + .mobile-app .caption { + margin-bottom: 50px; + text-align: center; + } + .mobile-app .caption h1 { + font-size: 60px; + } + .app-action .box-gr .cont { + width: 100%; + text-align: center; + } + .app-works .filter { + padding-bottom: 0; + } + .app-works .filter span { + margin: 0 15px 20px; + } + .app-works .filter span:after { + bottom: 0; + } +} + +@media screen and (max-width: 767px) { + h2 { + font-size: 25px; + } + .mobile-app .caption h1 { + font-size: 40px; + } + .app-blog .item .cont { + padding: 30px; + } + .sm-mb50 { + margin-bottom: 30px; + } +} + +@media screen and (max-width: 480px) { + .buton { + margin-top: 15px; + } +} diff --git a/public/css/mobile-app-light.css b/public/css/mobile-app-light.css new file mode 100644 index 0000000..79b1851 --- /dev/null +++ b/public/css/mobile-app-light.css @@ -0,0 +1,1630 @@ +/*----------------------------------------------------------------------------------- + + Theme Name: Vie + Theme URI: http:// + Description: Creative Agency & Portfolio + Author: UI-ThemeZ + Author URI: http://themeforest.net/user/UI-ThemeZ + Version: 1.2 + +-----------------------------------------------------------------------------------*/ +/* ---------------------------------------------------------------- + +== Table Of Content + + |--- BASE + + |- typography + + |--- SHORTCODES + + |- Header + |- buttons + |- brands + |- serv-block + |- services + |- process + |- team-vid + |- works + |- price + |- testimonials + |- app-action + |- Blog + |- shop + |- footers + + |--- BASE + + |- responsive + + + +---------------------------------------------------------------- */ +/* ====================== [ Start typography ] ====================== */ +body { + font-family: "Manrope", sans-serif !important; +} + +h1 { + font-size: 55px; +} + +h2 { + font-size: 42px; +} + +h3 { + font-size: 35px; +} + +h4 { + font-size: 30px; +} + +h5 { + font-size: 24px; +} + +h6 { + font-size: 18px; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + line-height: 1.3; + font-weight: 700; +} + +p { + color: #0f0f1e; + font-size: 16px; + font-weight: 500; + line-height: 1.8; + margin: 0; + opacity: 0.7; +} + +.container { + max-width: 1170px; +} + +.stit { + font-size: 22px; + color: #f45162; + position: relative; + z-index: 4; +} + +.stit span { + position: relative; + top: 0; + width: 20px; + height: 20px; + border: 1px solid #0f0f1e; + border-radius: 50%; +} + +.stit span:after { + content: ""; + position: absolute; + top: -5px; + left: -5px; + width: 100%; + height: 100%; + border-radius: 50%; + background: #f45162; + z-index: -1; +} + +.stit span.left { + margin-right: 15px; +} + +.stit span.right { + margin-left: 15px; +} + +.bg-gray { + background: #f8f9fc; +} + +.bg-dark { + background: #1e1f21 !important; +} + +.bg-dark .stit { + color: #f45162 !important; +} + +.bg-dark .stit span { + border: 1px solid #fff; +} + +.circle-blur { + position: absolute; + width: 180px; + height: 180px; + border-radius: 50%; + background: #17c0e9; + -webkit-filter: blur(100px); + filter: blur(100px); +} + +/* ====================== [ End typography ] ====================== */ +/* ====================== [ Start header ] ====================== */ +.mobile-app { + min-height: 100vh; + padding: 100px 0 60px; +} + +.mobile-app .caption h1 { + font-size: 70px; +} + +.page-app-header { + min-height: 60vh; +} + +.page-app-header:before { + background: #f45162; + background-image: -webkit-gradient( + linear, + right top, + left top, + from(#17c0e9), + color-stop(#c96ddd), + to(#f45162) + ); + background-image: -webkit-linear-gradient(right, #17c0e9, #c96ddd, #f45162); + background-image: -o-linear-gradient(right, #17c0e9, #c96ddd, #f45162); + background-image: linear-gradient(to left, #17c0e9, #c96ddd, #f45162); +} + +.page-app-header .text-center h1 { + font-size: 65px; +} + +.page-app-header .text-center .links a { + color: #fff; +} + +.page-app-header .text-center .links a:last-of-type { + text-decoration: underline; +} + +.page-app-header .text-center .links span { + font-size: 30px; + margin: 0 10px; + position: relative; + bottom: -8px; +} + +.swiper-container { + padding-bottom: 30px; +} + +body .swiper-pagination-bullets.swiper-pagination-horizontal, +.swiper-pagination-custom, +.swiper-pagination-fraction { + bottom: 0; +} + +.swiper-pagination-bullets.swiper-pagination-horizontal + .swiper-pagination-bullet { + background: transparent; + border: 1px solid #131416; + cursor: pointer; +} + +.swiper-pagination-bullets.swiper-pagination-horizontal + .swiper-pagination-bullet-active { + background: #f45162; + border-color: transparent; +} + +/* ====================== [ End header ] ====================== */ +/* ====================== [ Start buton ] ====================== */ +.buton { + min-width: 220px; + text-align: center; + padding: 15px 30px; + font-weight: 600; +} + +.buton.butn-gr { + background-color: #f45162; + background-image: -webkit-gradient( + linear, + right top, + left top, + from(#17c0e9), + color-stop(#c96ddd), + to(#f45162) + ); + background-image: -webkit-linear-gradient(right, #17c0e9, #c96ddd, #f45162); + background-image: -o-linear-gradient(right, #17c0e9, #c96ddd, #f45162); + background-image: linear-gradient(to left, #17c0e9, #c96ddd, #f45162); + border: 1px solid transparent; + color: #fff; +} + +.buton.butn-gr svg { + fill: #fff; +} + +.buton.butn-gr:hover { + background: #0f0f1e; +} + +.buton.butn-gray { + background: #edf3ff; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.buton.butn-gray:hover { + background: #0f0f1e; + color: #fff; +} + +.buton.butn-gray:hover svg { + fill: #fff; +} + +.buton.butn-bord-dark { + border: 1px solid #0f0f1e; +} + +.buton.butn-bord-red { + border: 1px solid #f45162; +} + +.buton.butn-bord-light { + border: 1px solid #fff; + color: #fff; +} + +.buton.butn-bord-light svg { + fill: #fff; +} + +.buton.butn-bg-light { + background: #fff; + color: #0f0f1e; +} + +.buton.butn-bg-light span { + color: #0f0f1e; +} + +.buton.butn-bg-light svg { + fill: #0f0f1e; +} + +.buton.rounded { + border-radius: 30px !important; +} + +.buton .icon svg { + position: relative; + width: 15px; + margin-left: 10px; + margin-bottom: -3px; +} + +.butn-more { + border-bottom: 1px solid #0f0f1e; + font-weight: 600; +} + +.butn-more svg { + width: 6px; +} + +/* ====================== [ End buton ] ====================== */ +/* ====================== [ Start brands ] ====================== */ +.brands { + position: relative; +} + +.brands .circle-blur { + top: -40px; + left: 0; + width: 180px; + height: 180px; + background: #17c0e9; +} + +.brands .head h2 span { + position: relative; +} + +.brands .head h2 span .bord-gr { + position: absolute; + top: -10px; + left: -10%; + width: 120%; +} + +.brands .item { + margin: 30px auto; +} + +.brands .item .img { + position: relative; + overflow: hidden; + width: 120px; + margin: auto; + opacity: 0.5; +} + +.brands .item .img img { + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.brands .item .img:hover { + opacity: 1; +} + +.brands .item .img:hover .front { + -webkit-transform: translateY(-100%); + -ms-transform: translateY(-100%); + transform: translateY(-100%); +} + +.brands .item .img:hover .back { + -webkit-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); +} + +.brands .item .img .back { + position: absolute; + width: 100%; + height: 100%; + left: 0; + top: 0; + -webkit-transform: translateY(100%); + -ms-transform: translateY(100%); + transform: translateY(100%); +} + +/* ====================== [ End brands ] ====================== */ +/* ====================== [ Start serv-block ] ====================== */ +.serv-block { + position: relative; +} + +.serv-block .circle-blur { + width: 240px; + height: 240px; + background: #f45162; + -webkit-filter: blur(120px); + filter: blur(120px); + left: 0; + top: 50px; + z-index: -1; + opacity: 0.8; +} + +.serv-block .circle-blur.two { + left: auto; + right: 0; + top: auto; + bottom: 100px; +} + +.serv-block .content p { + font-size: 16px; +} + +.serv-block .content .butn-more { + margin-left: 20px; +} + +.serv-block .content .list-feat ul { + margin: 0; + padding: 0; +} + +.serv-block .content .list-feat li .icon { + display: inline-block; + width: 20px; + height: 20px; + text-align: center; + border-radius: 50%; + background: #f45162; + margin-right: 20px; +} + +.serv-block .content .list-feat li .icon svg { + width: 10px; + fill: #fff; + position: relative; +} + +.serv-block .app-sta .item .icon { + color: #f45162; + font-size: 40px; + margin-bottom: 10px; +} + +.serv-block .app-sta .item h3 { + font-size: 55px; + margin-bottom: 10px; +} + +.accordion.shadwo .item { + padding: 17px 25px; + border: 1px solid rgba(76, 76, 76, 0.1); + border-radius: 7px; + cursor: pointer; +} + +.accordion.shadwo .item .title h6 { + font-size: 17px; +} + +.accordion.shadwo .item .title h6 span { + font-size: 30px; + float: right; + position: relative; + top: -3px; +} + +.accordion.shadwo .item .accordion-info { + margin-top: 20px; + display: none; + transition: height .5s ease; + overflow: hidden; +} + +.accordion.shadwo .item .accordion-info.active { + display: block; +} + +.accordion.shadwo .item .accordion-info p { + font-size: 15px; +} + +.accordion .item.active { + display: block; + background: #fff; + -webkit-box-shadow: 0px 10px 60px rgba(76, 76, 76, 0.1); + box-shadow: 0px 10px 60px rgba(76, 76, 76, 0.1); + border-color: transparent; +} + +/* ====================== [ end serv-block ] ====================== */ +/* ====================== [ Start app-services ] ====================== */ +.app-services .item { + padding: 40px; + -webkit-box-shadow: 0 10px 50px rgba(76, 76, 76, 0.05); + box-shadow: 0 10px 50px rgba(76, 76, 76, 0.05); + border-radius: 10px; + border: 1px solid transparent; + background: #fff; + position: relative; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; + z-index: 3; +} + +.app-services .item:hover { + border-color: transparent; +} + +.app-services .item:hover:before { + opacity: 1; +} + +.app-services .item:after, +.app-services .item:before { + content: ""; + position: absolute; + border-radius: 5px; + background: #fff; + z-index: -1; +} + +.app-services .item:after { + top: 0; + left: 0; + right: 0; + bottom: 0; +} + +.app-services .item:before { + top: -1px; + left: -1px; + right: -1px; + bottom: -1px; + background-image: -webkit-gradient( + linear, + right top, + left top, + from(#17c0e9), + color-stop(#c96ddd), + to(#f45162) + ); + background-image: -webkit-linear-gradient(right, #17c0e9, #c96ddd, #f45162); + background-image: -o-linear-gradient(right, #17c0e9, #c96ddd, #f45162); + background-image: linear-gradient(to left, #17c0e9, #c96ddd, #f45162); + opacity: 0; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.app-services .item .item-tit { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.app-services .item .item-tit .icon { + margin-right: 20px; +} + +.app-services .item .item-tit .icon svg { + width: 40px; + fill: #f45162; +} + +.app-services .item .item-tit .icon span { + font-size: 45px; + color: #f45162; +} + +.app-services .item .item-tit .text-tit h5 { + font-size: 22px; + margin-top: 10px; + position: relative; +} + +.app-services .item p { + font-size: 15px; +} + +/* ====================== [ End app-services ] ====================== */ +/* ====================== [ Start app-process ] ====================== */ +.app-process .item { + padding: 40px; + border-radius: 10px; + border: 1px solid rgba(76, 76, 76, 0.1); + position: relative; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; + z-index: 3; +} + +.app-process .item:hover { + border-color: transparent; +} + +.app-process .item:hover:before { + opacity: 1; +} + +.app-process .item:after, +.app-process .item:before { + content: ""; + position: absolute; + border-radius: 10px; + background: #fff; + z-index: -1; +} + +.app-process .item:after { + top: 0; + left: 0; + right: 0; + bottom: 0; +} + +.app-process .item:before { + top: -1px; + left: -1px; + right: -1px; + bottom: -1px; + background-image: -webkit-gradient( + linear, + right top, + left top, + from(#17c0e9), + color-stop(#c96ddd), + to(#f45162) + ); + background-image: -webkit-linear-gradient(right, #17c0e9, #c96ddd, #f45162); + background-image: -o-linear-gradient(right, #17c0e9, #c96ddd, #f45162); + background-image: linear-gradient(to left, #17c0e9, #c96ddd, #f45162); + opacity: 0; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.app-process .item .icon { + font-size: 60px; + color: #f45162; + margin-bottom: 30px; +} + +.app-process .item .step-number { + font-size: 14px; + color: #f45162; + letter-spacing: 4px; + text-transform: uppercase; + margin: 20px auto; +} + +.app-process .item p { + font-size: 16px; +} + +/* ====================== [ End app-process ] ====================== */ +/* ====================== [ Start team-vid ] ====================== */ +.team-vid { + margin-top: 260px; + position: relative; +} + +.team-vid .circle-blur { + width: 220px; + height: 220px; + background: #157b95; + -webkit-filter: blur(90px); + filter: blur(90px); + left: 0; + top: 80px; + opacity: 0.9; +} + +.team-vid .circle-blur.two { + left: auto; + right: 0; + top: auto; + bottom: 100px; + background: #0740ac; +} + +.team-vid .vid-img { + position: relative; + min-height: 520px; + padding: 80px 0; + margin-top: -260px; +} + +.team-vid .vid-img .vid { + width: 90px; + height: 90px; + border-radius: 50%; + text-align: center; + background: #fff; + position: absolute; + top: 50%; + left: 50%; + z-index: 4; + -webkit-transform: translateY(-50%) translateX(-50%); + -ms-transform: translateY(-50%) translateX(-50%); + transform: translateY(-50%) translateX(-50%); +} + +.team-vid .vid-img .vid svg { + fill: #f45162; + width: 20px; + position: absolute; + top: 50%; + left: 50%; + -webkit-transform: translateY(-50%) translateX(-50%); + -ms-transform: translateY(-50%) translateX(-50%); + transform: translateY(-50%) translateX(-50%); +} + +.team-vid .item .img { + width: 200px; + height: 200px; + border-radius: 50%; + margin: 0 auto 50px; + position: relative; +} + +.team-vid .item .img:hover:before { + background: -webkit-gradient( + linear, + right top, + left top, + from(#17c0e9), + color-stop(#c96ddd), + to(#f45162) + ); + background: -webkit-linear-gradient(right, #17c0e9, #c96ddd, #f45162); + background: -o-linear-gradient(right, #17c0e9, #c96ddd, #f45162); + background: linear-gradient(to left, #17c0e9, #c96ddd, #f45162); +} + +.team-vid .item .img img { + width: 100%; + height: 100%; + -o-object-fit: cover; + object-fit: cover; + border-radius: 50%; + position: relative; + z-index: 2; +} + +.team-vid .item .img:after, +.team-vid .item .img:before { + content: ""; + position: absolute; + width: 100%; + height: 100%; + border-radius: 50%; +} + +.team-vid .item .img:after { + border: 1px solid rgba(255, 255, 255, 0.1); + top: -15px; + left: -15px; +} + +.team-vid .item .img:before { + background: #f45162; + bottom: -15px; + right: -15px; +} + +.team-vid .item h5 { + margin-bottom: 10px; +} + +/* ====================== [ End team-vid ] ====================== */ +/* ====================== [ Start app-works ] ====================== */ +.app-works .filter { + padding: 15px 30px; + border: 1px solid rgba(76, 76, 76, 0.1); + border-radius: 5px; + text-align: center; + margin-bottom: 30px; +} + +.app-works .filter span { + margin: 0 30px; + padding: 5px; + font-size: 13px; + font-weight: 600; + position: relative; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; + cursor: pointer; +} + +.app-works .filter span:after { + content: ""; + position: absolute; + bottom: -16px; + left: 0; + width: 100%; + height: 2px; + background: #f45162; + background-image: -webkit-gradient( + linear, + right top, + left top, + from(#17c0e9), + color-stop(#c96ddd), + to(#f45162) + ); + background-image: -webkit-linear-gradient(right, #17c0e9, #c96ddd, #f45162); + background-image: -o-linear-gradient(right, #17c0e9, #c96ddd, #f45162); + background-image: linear-gradient(to left, #17c0e9, #c96ddd, #f45162); + opacity: 0; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.app-works .filter span.active { + color: #f45162; +} + +.app-works .filter span.active:after { + opacity: 1; +} + +.app-works .items { + margin-top: 30px; +} + +.app-works .items .item-img { + position: relative; +} + +.app-works .items .item-img:hover .cont { + opacity: 1; + visibility: visible; +} + +.app-works .items .item-img .cont { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(10, 11, 15, 0.75); + color: #fff; + pointer-events: none; + opacity: 0; + visibility: hidden; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.app-works .items .item-img .cont .icon { + width: 60px; + height: 60px; + line-height: 60px; + text-align: center; + border: 2px solid #fff; + border-radius: 50%; + font-size: 40px; + margin-bottom: 20px; +} + +.app-works .items .item-img .cont h5 { + font-size: 30px; + margin-bottom: 10px; +} + +/* ====================== [ End app-works ] ====================== */ +/* ====================== [ Start app-price ] ====================== */ +.app-price .item { + padding: 50px 70px; + border: 1px solid rgba(76, 76, 76, 0.1); +} + +.app-price .item.sm-padding { + padding: 50px 40px; +} + +.app-price .item.sm-padding .feat li .icon { + margin-right: 10px; +} + +.app-price .item.active { + border-color: transparent; + -webkit-box-shadow: 0px 10px 60px rgba(76, 76, 76, 0.1); + box-shadow: 0px 10px 60px rgba(76, 76, 76, 0.1); +} + +.app-price .item .amount h3 { + font-size: 100px; + font-weight: 500; + color: #f45162; + position: relative; + display: inline-block; + line-height: 1; +} + +.app-price .item .amount h3 span { + position: absolute; + left: -20px; + top: 14px; + color: #0f0f1e; + font-size: 25px; +} + +.app-price .item .order .buton { + width: 100%; +} + +.app-price .item .feat ul { + margin: 0; + padding: 0; +} + +.app-price .item .feat li { + color: #555; + margin-top: 15px; +} + +.app-price .item .feat li.disbl { + opacity: 0.3; +} + +.app-price .item .feat li .icon { + display: inline-block; + width: 20px; + height: 20px; + text-align: center; + border-radius: 50%; + background: #f45162; + margin-right: 20px; +} + +.app-price .item .feat li .icon svg { + width: 10px; + fill: #fff; + position: relative; +} + +/* ====================== [ End app-price ] ====================== */ +/* ====================== [ Start app-testim ] ====================== */ +.app-testim .item { + padding: 60px; + background: #fff; + border: 1px solid transparent; + text-align: center; + position: relative; + z-index: 4; +} + +.app-testim .item:hover:after { + opacity: 1; +} + +.app-testim .item:before { + content: ""; + position: absolute; + top: 0px; + left: 0px; + right: 0px; + bottom: 0px; + background: #fff; + z-index: -1; +} + +.app-testim .item:after { + content: ""; + position: absolute; + top: -1px; + left: -1px; + right: -1px; + bottom: -1px; + background: #f45162; + background: -webkit-linear-gradient(125deg, #17c0e9, #c96ddd, #f45162); + background: -o-linear-gradient(125deg, #17c0e9, #c96ddd, #f45162); + background: linear-gradient(-35deg, #17c0e9, #c96ddd, #f45162); + z-index: -2; + opacity: 0; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.app-testim .item .icon img { + width: 50px; +} + +.app-testim .item .info { + margin-top: 30px; +} + +.app-testim .item .info .img { + width: 60px; + height: 60px; + border-radius: 50%; + overflow: hidden; + margin: 0 auto 15px; +} + +.app-testim .item .info .img img { + width: 100%; + height: 100%; + -o-object-fit: cover; + object-fit: cover; + -o-object-position: center; + object-position: center; +} + +.app-testim .item .info .cont span { + font-size: 15px; + opacity: 0.4; +} + +.app-testim .item .text p { + font-size: 16px; +} + +/* ====================== [ End app-testim ] ====================== */ +/* ====================== [ Start app-action ] ====================== */ +.app-action .box-gr { + background-color: #f45162; + background-image: -webkit-linear-gradient(125deg, #17c0e9, #c96ddd, #f45162); + background-image: -o-linear-gradient(125deg, #17c0e9, #c96ddd, #f45162); + background-image: linear-gradient(-35deg, #17c0e9, #c96ddd, #f45162); + margin-top: 100px; +} + +.app-action .box-gr .img { + position: relative; + margin-top: -100px; +} + +.app-action .box-gr .cont { + padding: 80px 0; + position: relative; +} + +.app-action .box-gr .cont .shape-light { + position: absolute; + top: 10%; + left: 0; + width: 80%; + height: 80%; + pointer-events: none; +} + +.app-action .box-gr .cont .stit span { + border-color: #fff; +} + +.app-action .box-gr .cont .stit span:after { + background: #fff; +} + +/* ====================== [ End app-action ] ====================== */ +/* ====================== [ Start app-blog ] ====================== */ +.app-blog .item { + border-radius: 10px; + -webkit-box-shadow: 0px 10px 50px rgba(76, 76, 76, 0.1); + box-shadow: 0px 10px 50px rgba(76, 76, 76, 0.1); + background: #fff; + overflow: hidden; + -webkit-transition: all 0.3s; + -o-transition: all 0.3s; + transition: all 0.3s; +} + +.app-blog .item:hover .buton { + background: #f45162; + background: -webkit-linear-gradient(125deg, #17c0e9, #c96ddd, #f45162); + background: -o-linear-gradient(125deg, #17c0e9, #c96ddd, #f45162); + background: linear-gradient(-35deg, #17c0e9, #c96ddd, #f45162); + color: #fff; + border-color: transparent; +} + +.app-blog .item .img { + height: 300px; +} + +.app-blog .item .img img { + width: 100%; + height: 100%; + -o-object-fit: cover; + object-fit: cover; + -o-object-position: center; + object-position: center; +} + +.app-blog .item .cont { + padding: 20px 15px 20px 0; +} + +.app-blog .item .cont .tag { + font-size: 12px; + font-weight: 700; + letter-spacing: 1px; + text-transform: uppercase; + color: #f45162; + margin-bottom: 15px; +} + +.app-blog .item .cont h5 { + font-size: 20px; + margin-bottom: 10px; +} + +.app-blog .item .cont .info a { + margin-right: 10px; + font-size: 12px; +} + +.app-blog .item .cont .info a:last-of-type { + margin-right: 0; +} + +.app-blog .item .cont .info a span { + opacity: 0.4; +} + +.app-blog .item .cont p { + font-size: 16px; +} + +.app-blog .item .cont .buton { + padding: 11px 30px; + min-width: auto; + margin-top: 20px; + font-size: 14px; +} + +.app-blog .item .cont .buton:hover { + background: -webkit-linear-gradient(125deg, #17c0e9, #c96ddd, #f45162); + background: -o-linear-gradient(125deg, #17c0e9, #c96ddd, #f45162); + background: linear-gradient(-35deg, #17c0e9, #c96ddd, #f45162); + color: #fff; + border-color: transparent; +} + +/* ====================== [ End app-blog ] ====================== */ +/* ====================== [ Start shop ] ====================== */ +.shop .sidebar .search .form-group { + position: relative; +} + +.shop .sidebar .search .form-group input { + padding: 15px 60px 15px 15px; + border: 1px solid rgba(76, 76, 76, 0.1); + border-radius: 5px; + width: 100%; +} + +.shop .sidebar .search .form-group button { + padding: 11px 20px; + background: #f45162; + color: #fff; + font-size: 18px; + border: 0; + border-radius: 5px; + position: absolute; + top: 3px; + right: 3px; +} + +.shop .sidebar .search .form-group button:focus { + outline: none; +} + +.shop .sidebar .box { + padding: 30px; + border: 1px solid rgba(76, 76, 76, 0.1); + border-radius: 5px; +} + +.shop .sidebar .gat li { + margin-bottom: 15px; + opacity: 0.9; + overflow: hidden; + padding-left: 20px; + position: relative; +} + +.shop .sidebar .gat li:before { + content: ""; + width: 6px; + height: 1px; + background: #1e1f21; + position: absolute; + left: 0; + top: 50%; +} + +.shop .sidebar .gat li:last-of-type { + margin-bottom: 0; +} + +.shop .sidebar .gat li a { + width: 100%; +} + +.shop .sidebar .gat li span { + float: right; +} + +.shop .sidebar .tags a { + font-size: 13px; + padding: 10px 15px; + background: rgba(76, 76, 76, 0.06); + border-radius: 4px; + margin: 4px 2px; +} + +.shop .sidebar .tags a:hover { + color: #fff; + background: #f45162; + background-image: -webkit-gradient( + linear, + right top, + left top, + from(#17c0e9), + color-stop(#c96ddd), + to(#f45162) + ); + background-image: -webkit-linear-gradient(right, #17c0e9, #c96ddd, #f45162); + background-image: -o-linear-gradient(right, #17c0e9, #c96ddd, #f45162); + background-image: linear-gradient(to left, #17c0e9, #c96ddd, #f45162); +} + +.shop .store .top-area .filter-select select { + padding: 10px; + border: 1px solid rgba(76, 76, 76, 0.1); + border-radius: 5px; +} + +.shop .store .item:hover .img .add, +.shop .store .item:hover .img:after { + opacity: 1 !important; + visibility: visible !important; +} + +.shop .store .item .img { + position: relative; + width: 100%; + height: 280px; + margin-top: 50px; + border-radius: 5px; + overflow: hidden; +} + +.shop .store .item .img:after { + content: ""; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(16, 15, 19, 0.7); + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; + opacity: 0; + visibility: hidden; +} + +.shop .store .item .img img { + width: 100%; + height: 100%; + -o-object-fit: cover; + object-fit: cover; + -o-object-position: center; + object-position: center; +} + +.shop .store .item .img .tag { + position: absolute; + top: 20px; + right: 20px; + padding: 5px 10px; + border-radius: 4px; + color: #fff; + font-size: 14px; + background: #f45162; + background-image: -webkit-gradient( + linear, + right top, + left top, + from(#17c0e9), + color-stop(#c96ddd), + to(#f45162) + ); + background-image: -webkit-linear-gradient(right, #17c0e9, #c96ddd, #f45162); + background-image: -o-linear-gradient(right, #17c0e9, #c96ddd, #f45162); + background-image: linear-gradient(to left, #17c0e9, #c96ddd, #f45162); + z-index: 2; +} + +.shop .store .item .img .add { + position: absolute; + top: 50%; + left: 50%; + -webkit-transform: translate(-50%, -50%); + -ms-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + z-index: 2; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; + opacity: 0; + visibility: hidden; +} + +.shop .store .item .img .add a { + white-space: nowrap; + padding: 14px 25px; + border-radius: 4px; + color: #fff; + font-size: 14px; + background: #f45162; + background-image: -webkit-gradient( + linear, + right top, + left top, + from(#17c0e9), + color-stop(#c96ddd), + to(#f45162) + ); + background-image: -webkit-linear-gradient(right, #17c0e9, #c96ddd, #f45162); + background-image: -o-linear-gradient(right, #17c0e9, #c96ddd, #f45162); + background-image: linear-gradient(to left, #17c0e9, #c96ddd, #f45162); +} + +.shop .store .item .img .add a span { + width: 15px; + height: 15px; + line-height: 15px; + text-align: center; + border: 1px solid #fff; + border-radius: 50%; + margin-left: 5px; +} + +.shop .store .item .info { + padding-top: 30px; + text-align: center; +} + +.shop .store .item .info span { + color: #f45162; + margin-top: 10px; +} + +.shop .range-slider { + width: 100%; + margin: 0 auto; + position: relative; +} + +.shop .range-slider .start-pointe { + position: absolute; + left: 0; + bottom: -25px; +} + +.shop .range-slider #tooltip { + position: absolute; + bottom: -25px; + right: 0; + left: auto !important; +} + +.shop .range-slider #tooltip span:before { + content: "$ "; +} + +.shop #range { + -webkit-appearance: none; + width: 100%; +} + +.shop #range:focus { + outline: none; +} + +.shop #range::-webkit-slider-runnable-track { + width: 100%; + height: 4px; + cursor: pointer; + animate: 0.2s; + background: -webkit-gradient( + linear, + left top, + right top, + from(#f45162), + to(#dee4ec) + ); + background: -webkit-linear-gradient( + left, + #f45162 var(--range-progress), + #dee4ec var(--range-progress) + ); + background: linear-gradient( + 90deg, + #f45162 var(--range-progress), + #dee4ec var(--range-progress) + ); + border-radius: 2px; +} + +.shop #range::-webkit-slider-thumb { + -webkit-appearance: none; + border-radius: 50%; + background: #f45162; + background-image: -webkit-gradient( + linear, + right top, + left top, + from(#17c0e9), + color-stop(#c96ddd), + to(#f45162) + ); + background-image: -webkit-linear-gradient(right, #17c0e9, #c96ddd, #f45162); + background-image: linear-gradient(to left, #17c0e9, #c96ddd, #f45162); + cursor: pointer; + height: 15px; + width: 15px; + -webkit-transform: translateY(calc(-50% + 2px)); + transform: translateY(calc(-50% + 2px)); +} + +/* ====================== [ End shop ] ====================== */ +/* ====================== [ Start footer ] ====================== */ +.app-footer { + padding: 100px 0 0; + position: relative; + background: #131416; +} + +.app-footer .circle-blur { + width: 180px; + height: 180px; + background: #f45162; + -webkit-filter: blur(120px); + filter: blur(120px); + left: 0; + top: 80px; + opacity: 0.7; +} + +.app-footer .circle-blur.two { + width: 220px; + height: 220px; + left: auto; + right: 0; + top: auto; + bottom: 0; + background: #d14add; +} + +.app-footer .logo-brand { + max-width: 90px; +} + +.app-footer .info span { + opacity: 0.4; + font-weight: 400; + margin-bottom: 10px; +} + +.app-footer .info h6 { + font-size: 20px; +} + +.app-footer .social a { + width: 40px; + height: 40px; + line-height: 40px; + text-align: center; + font-size: 12px; + border-radius: 50%; + border: 1px solid rgba(255, 255, 255, 0.1); + position: relative; + z-index: 3; +} + +.app-footer .social a:hover { + border-color: transparent; +} + +.app-footer .social a:hover:before { + opacity: 1; +} + +.app-footer .social a:after, +.app-footer .social a:before { + content: ""; + position: absolute; + border-radius: 50%; + background: #1e1f21; + z-index: -1; +} + +.app-footer .social a:after { + top: 0; + left: 0; + right: 0; + bottom: 0; +} + +.app-footer .social a:before { + top: -1px; + left: -1px; + right: -1px; + bottom: -1px; + background-image: -webkit-gradient( + linear, + right top, + left top, + from(#17c0e9), + color-stop(#c96ddd), + to(#f45162) + ); + background-image: -webkit-linear-gradient(right, #17c0e9, #c96ddd, #f45162); + background-image: -o-linear-gradient(right, #17c0e9, #c96ddd, #f45162); + background-image: linear-gradient(to left, #17c0e9, #c96ddd, #f45162); + opacity: 0; + -webkit-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} + +.app-footer .links .title { + font-size: 22px; +} + +.app-footer .links ul { + margin: 0; +} + +.app-footer .links li { + margin-top: 25px; + font-size: 17px; + opacity: 0.7; + line-height: 1; +} + +.app-footer .links li .icon { + font-size: 20px; + margin-right: 5px; +} + +.app-footer .sub-footer { + margin-top: 80px; + padding: 40px 0; + border-top: 1px solid rgba(255, 255, 255, 0.1); +} + +/* ====================== [ End footer ] ====================== */ +/* ====================== [ Start Responsive ] ====================== */ +@media screen and (max-width: 991px) { + .lg-hide { + display: none; + } + h2 { + font-size: 30px; + } + .mobile-app .caption { + margin-bottom: 50px; + text-align: center; + } + .mobile-app .caption h1 { + font-size: 60px; + } + .app-action .box-gr .cont { + width: 100%; + text-align: center; + } + .app-works .filter { + padding-bottom: 0; + } + .app-works .filter span { + margin: 0 15px 20px; + } + .app-works .filter span:after { + bottom: 0; + } +} + +@media screen and (max-width: 767px) { + h2 { + font-size: 25px; + } + .mobile-app .caption h1 { + font-size: 40px; + } + .app-blog .item .cont { + padding: 30px; + } + .sm-mb50 { + margin-bottom: 30px; + } +} + +@media screen and (max-width: 480px) { + .buton { + margin-top: 15px; + } +} diff --git a/public/css/pe-icon.min.css b/public/css/pe-icon.min.css new file mode 100644 index 0000000..95f1727 --- /dev/null +++ b/public/css/pe-icon.min.css @@ -0,0 +1,4 @@ +.pe-fw,.pe-li{text-align:center}@font-face{font-family:Pe-icon-7-stroke;src:url(../fonts/Pe-icon-7-stroke.eot?d7yf1v);src:url(../fonts/Pe-icon-7-stroke.eot?#iefixd7yf1v) format('embedded-opentype'),url(../fonts/Pe-icon-7-stroke.woff?d7yf1v) format('woff'),url(../fonts/Pe-icon-7-stroke.ttf?d7yf1v) format('truetype'),url(../fonts/Pe-icon-7-stroke.svg?d7yf1v#Pe-icon-7-stroke) format('svg');font-weight:400;font-style:normal}[class*=" pe-7s-"],[class^=pe-7s-]{display:inline-block;font-family:Pe-icon-7-stroke;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}/*! Modified from font-awesome helper CSS classes - PIXEDEN + * Font Awesome 4.0.3 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (CSS: MIT License) + */.pe-lg{font-size:1.33em;line-height:.75em;vertical-align:-15%}.pe-stack,.pe-va{vertical-align:middle}.pe-2x{font-size:2em}.pe-3x{font-size:3em}.pe-4x{font-size:4em}.pe-5x{font-size:5em}.pe-fw{width:1.28571em}.pe-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.pe-ul>li{position:relative}.pe-li{position:absolute;left:-2.14286em;width:2.14286em;top:.14286em}.pe-li.pe-lg{left:-1.85714em}.pe-border{padding:.2em .25em .15em;border-radius:.1em;border:.08em solid #eaeaea}.pull-right{float:right}.pe.pull-left{float:left;margin-right:.3em;margin-left:.3em}.pe-spin{-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.pe-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.pe-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.pe-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.pe-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.pe-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}.pe-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em}.pe-stack-1x,.pe-stack-2x{position:absolute;left:0;width:100%;text-align:center}.pe-stack-1x{line-height:inherit}.pe-stack-2x{font-size:2em}.pe-inverse{color:#fff}.pe-7s-album:before{content:"\e6aa"}.pe-7s-arc:before{content:"\e6ab"}.pe-7s-back-2:before{content:"\e6ac"}.pe-7s-bandaid:before{content:"\e6ad"}.pe-7s-car:before{content:"\e6ae"}.pe-7s-diamond:before{content:"\e6af"}.pe-7s-door-lock:before{content:"\e6b0"}.pe-7s-eyedropper:before{content:"\e6b1"}.pe-7s-female:before{content:"\e6b2"}.pe-7s-gym:before{content:"\e6b3"}.pe-7s-hammer:before{content:"\e6b4"}.pe-7s-headphones:before{content:"\e6b5"}.pe-7s-helm:before{content:"\e6b6"}.pe-7s-hourglass:before{content:"\e6b7"}.pe-7s-leaf:before{content:"\e6b8"}.pe-7s-magic-wand:before{content:"\e6b9"}.pe-7s-male:before{content:"\e6ba"}.pe-7s-map-2:before{content:"\e6bb"}.pe-7s-next-2:before{content:"\e6bc"}.pe-7s-paint-bucket:before{content:"\e6bd"}.pe-7s-pendrive:before{content:"\e6be"}.pe-7s-photo:before{content:"\e6bf"}.pe-7s-piggy:before{content:"\e6c0"}.pe-7s-plugin:before{content:"\e6c1"}.pe-7s-refresh-2:before{content:"\e6c2"}.pe-7s-rocket:before{content:"\e6c3"}.pe-7s-settings:before{content:"\e6c4"}.pe-7s-shield:before{content:"\e6c5"}.pe-7s-smile:before{content:"\e6c6"}.pe-7s-usb:before{content:"\e6c7"}.pe-7s-vector:before{content:"\e6c8"}.pe-7s-wine:before{content:"\e6c9"}.pe-7s-cloud-upload:before{content:"\e68a"}.pe-7s-cash:before{content:"\e68c"}.pe-7s-close:before{content:"\e680"}.pe-7s-bluetooth:before{content:"\e68d"}.pe-7s-cloud-download:before{content:"\e68b"}.pe-7s-way:before{content:"\e68e"}.pe-7s-close-circle:before{content:"\e681"}.pe-7s-id:before{content:"\e68f"}.pe-7s-angle-up:before{content:"\e682"}.pe-7s-wristwatch:before{content:"\e690"}.pe-7s-angle-up-circle:before{content:"\e683"}.pe-7s-world:before{content:"\e691"}.pe-7s-angle-right:before{content:"\e684"}.pe-7s-volume:before{content:"\e692"}.pe-7s-angle-right-circle:before{content:"\e685"}.pe-7s-users:before{content:"\e693"}.pe-7s-angle-left:before{content:"\e686"}.pe-7s-user-female:before{content:"\e694"}.pe-7s-angle-left-circle:before{content:"\e687"}.pe-7s-up-arrow:before{content:"\e695"}.pe-7s-angle-down:before{content:"\e688"}.pe-7s-switch:before{content:"\e696"}.pe-7s-angle-down-circle:before{content:"\e689"}.pe-7s-scissors:before{content:"\e697"}.pe-7s-wallet:before{content:"\e600"}.pe-7s-safe:before{content:"\e698"}.pe-7s-volume2:before{content:"\e601"}.pe-7s-volume1:before{content:"\e602"}.pe-7s-voicemail:before{content:"\e603"}.pe-7s-video:before{content:"\e604"}.pe-7s-user:before{content:"\e605"}.pe-7s-upload:before{content:"\e606"}.pe-7s-unlock:before{content:"\e607"}.pe-7s-umbrella:before{content:"\e608"}.pe-7s-trash:before{content:"\e609"}.pe-7s-tools:before{content:"\e60a"}.pe-7s-timer:before{content:"\e60b"}.pe-7s-ticket:before{content:"\e60c"}.pe-7s-target:before{content:"\e60d"}.pe-7s-sun:before{content:"\e60e"}.pe-7s-study:before{content:"\e60f"}.pe-7s-stopwatch:before{content:"\e610"}.pe-7s-star:before{content:"\e611"}.pe-7s-speaker:before{content:"\e612"}.pe-7s-signal:before{content:"\e613"}.pe-7s-shuffle:before{content:"\e614"}.pe-7s-shopbag:before{content:"\e615"}.pe-7s-share:before{content:"\e616"}.pe-7s-server:before{content:"\e617"}.pe-7s-search:before{content:"\e618"}.pe-7s-film:before{content:"\e6a5"}.pe-7s-science:before{content:"\e619"}.pe-7s-disk:before{content:"\e6a6"}.pe-7s-ribbon:before{content:"\e61a"}.pe-7s-repeat:before{content:"\e61b"}.pe-7s-refresh:before{content:"\e61c"}.pe-7s-add-user:before{content:"\e6a9"}.pe-7s-refresh-cloud:before{content:"\e61d"}.pe-7s-paperclip:before{content:"\e69c"}.pe-7s-radio:before{content:"\e61e"}.pe-7s-note2:before{content:"\e69d"}.pe-7s-print:before{content:"\e61f"}.pe-7s-network:before{content:"\e69e"}.pe-7s-prev:before{content:"\e620"}.pe-7s-mute:before{content:"\e69f"}.pe-7s-power:before{content:"\e621"}.pe-7s-medal:before{content:"\e6a0"}.pe-7s-portfolio:before{content:"\e622"}.pe-7s-like2:before{content:"\e6a1"}.pe-7s-plus:before{content:"\e623"}.pe-7s-left-arrow:before{content:"\e6a2"}.pe-7s-play:before{content:"\e624"}.pe-7s-key:before{content:"\e6a3"}.pe-7s-plane:before{content:"\e625"}.pe-7s-joy:before{content:"\e6a4"}.pe-7s-photo-gallery:before{content:"\e626"}.pe-7s-pin:before{content:"\e69b"}.pe-7s-phone:before{content:"\e627"}.pe-7s-plug:before{content:"\e69a"}.pe-7s-pen:before{content:"\e628"}.pe-7s-right-arrow:before{content:"\e699"}.pe-7s-paper-plane:before{content:"\e629"}.pe-7s-delete-user:before{content:"\e6a7"}.pe-7s-paint:before{content:"\e62a"}.pe-7s-bottom-arrow:before{content:"\e6a8"}.pe-7s-notebook:before{content:"\e62b"}.pe-7s-note:before{content:"\e62c"}.pe-7s-next:before{content:"\e62d"}.pe-7s-news-paper:before{content:"\e62e"}.pe-7s-musiclist:before{content:"\e62f"}.pe-7s-music:before{content:"\e630"}.pe-7s-mouse:before{content:"\e631"}.pe-7s-more:before{content:"\e632"}.pe-7s-moon:before{content:"\e633"}.pe-7s-monitor:before{content:"\e634"}.pe-7s-micro:before{content:"\e635"}.pe-7s-menu:before{content:"\e636"}.pe-7s-map:before{content:"\e637"}.pe-7s-map-marker:before{content:"\e638"}.pe-7s-mail:before{content:"\e639"}.pe-7s-mail-open:before{content:"\e63a"}.pe-7s-mail-open-file:before{content:"\e63b"}.pe-7s-magnet:before{content:"\e63c"}.pe-7s-loop:before{content:"\e63d"}.pe-7s-look:before{content:"\e63e"}.pe-7s-lock:before{content:"\e63f"}.pe-7s-lintern:before{content:"\e640"}.pe-7s-link:before{content:"\e641"}.pe-7s-like:before{content:"\e642"}.pe-7s-light:before{content:"\e643"}.pe-7s-less:before{content:"\e644"}.pe-7s-keypad:before{content:"\e645"}.pe-7s-junk:before{content:"\e646"}.pe-7s-info:before{content:"\e647"}.pe-7s-home:before{content:"\e648"}.pe-7s-help2:before{content:"\e649"}.pe-7s-help1:before{content:"\e64a"}.pe-7s-graph3:before{content:"\e64b"}.pe-7s-graph2:before{content:"\e64c"}.pe-7s-graph1:before{content:"\e64d"}.pe-7s-graph:before{content:"\e64e"}.pe-7s-global:before{content:"\e64f"}.pe-7s-gleam:before{content:"\e650"}.pe-7s-glasses:before{content:"\e651"}.pe-7s-gift:before{content:"\e652"}.pe-7s-folder:before{content:"\e653"}.pe-7s-flag:before{content:"\e654"}.pe-7s-filter:before{content:"\e655"}.pe-7s-file:before{content:"\e656"}.pe-7s-expand1:before{content:"\e657"}.pe-7s-exapnd2:before{content:"\e658"}.pe-7s-edit:before{content:"\e659"}.pe-7s-drop:before{content:"\e65a"}.pe-7s-drawer:before{content:"\e65b"}.pe-7s-download:before{content:"\e65c"}.pe-7s-display2:before{content:"\e65d"}.pe-7s-display1:before{content:"\e65e"}.pe-7s-diskette:before{content:"\e65f"}.pe-7s-date:before{content:"\e660"}.pe-7s-cup:before{content:"\e661"}.pe-7s-culture:before{content:"\e662"}.pe-7s-crop:before{content:"\e663"}.pe-7s-credit:before{content:"\e664"}.pe-7s-copy-file:before{content:"\e665"}.pe-7s-config:before{content:"\e666"}.pe-7s-compass:before{content:"\e667"}.pe-7s-comment:before{content:"\e668"}.pe-7s-coffee:before{content:"\e669"}.pe-7s-cloud:before{content:"\e66a"}.pe-7s-clock:before{content:"\e66b"}.pe-7s-check:before{content:"\e66c"}.pe-7s-chat:before{content:"\e66d"}.pe-7s-cart:before{content:"\e66e"}.pe-7s-camera:before{content:"\e66f"}.pe-7s-call:before{content:"\e670"}.pe-7s-calculator:before{content:"\e671"}.pe-7s-browser:before{content:"\e672"}.pe-7s-box2:before{content:"\e673"}.pe-7s-box1:before{content:"\e674"}.pe-7s-bookmarks:before{content:"\e675"}.pe-7s-bicycle:before{content:"\e676"}.pe-7s-bell:before{content:"\e677"}.pe-7s-battery:before{content:"\e678"}.pe-7s-ball:before{content:"\e679"}.pe-7s-back:before{content:"\e67a"}.pe-7s-attention:before{content:"\e67b"}.pe-7s-anchor:before{content:"\e67c"}.pe-7s-albums:before{content:"\e67d"}.pe-7s-alarm:before{content:"\e67e"}.pe-7s-airplay:before{content:"\e67f"} \ No newline at end of file diff --git a/public/demo-img/01.png b/public/demo-img/01.png new file mode 100644 index 0000000..c5c786c Binary files /dev/null and b/public/demo-img/01.png differ diff --git a/public/demo-img/02.png b/public/demo-img/02.png new file mode 100644 index 0000000..7d11421 Binary files /dev/null and b/public/demo-img/02.png differ diff --git a/public/demo-img/03.png b/public/demo-img/03.png new file mode 100644 index 0000000..a84aae1 Binary files /dev/null and b/public/demo-img/03.png differ diff --git a/public/demo-img/04.png b/public/demo-img/04.png new file mode 100644 index 0000000..c3dd740 Binary files /dev/null and b/public/demo-img/04.png differ diff --git a/public/demo-img/05.png b/public/demo-img/05.png new file mode 100644 index 0000000..f1d61f4 Binary files /dev/null and b/public/demo-img/05.png differ diff --git a/public/demo-img/1.png b/public/demo-img/1.png new file mode 100644 index 0000000..e5a8349 Binary files /dev/null and b/public/demo-img/1.png differ diff --git a/public/demo-img/2.png b/public/demo-img/2.png new file mode 100644 index 0000000..efbeb68 Binary files /dev/null and b/public/demo-img/2.png differ diff --git a/public/demo-img/3.png b/public/demo-img/3.png new file mode 100644 index 0000000..7ebb9b0 Binary files /dev/null and b/public/demo-img/3.png differ diff --git a/public/demo-img/4.png b/public/demo-img/4.png new file mode 100644 index 0000000..dddaeaf Binary files /dev/null and b/public/demo-img/4.png differ diff --git a/public/demo-img/5.png b/public/demo-img/5.png new file mode 100644 index 0000000..f11b75a Binary files /dev/null and b/public/demo-img/5.png differ diff --git a/public/demo-img/about.png b/public/demo-img/about.png new file mode 100644 index 0000000..37fab49 Binary files /dev/null and b/public/demo-img/about.png differ diff --git a/public/demo-img/about1.png b/public/demo-img/about1.png new file mode 100644 index 0000000..6f22209 Binary files /dev/null and b/public/demo-img/about1.png differ diff --git a/public/demo-img/bg.png b/public/demo-img/bg.png new file mode 100644 index 0000000..bf56e2b Binary files /dev/null and b/public/demo-img/bg.png differ diff --git a/public/demo-img/blog-details-dark.png b/public/demo-img/blog-details-dark.png new file mode 100644 index 0000000..ab08ce5 Binary files /dev/null and b/public/demo-img/blog-details-dark.png differ diff --git a/public/demo-img/blog-details-light.png b/public/demo-img/blog-details-light.png new file mode 100644 index 0000000..1269e31 Binary files /dev/null and b/public/demo-img/blog-details-light.png differ diff --git a/public/demo-img/blog-grid-dark.png b/public/demo-img/blog-grid-dark.png new file mode 100644 index 0000000..c0c710c Binary files /dev/null and b/public/demo-img/blog-grid-dark.png differ diff --git a/public/demo-img/blog-grid-light.png b/public/demo-img/blog-grid-light.png new file mode 100644 index 0000000..32ca1ab Binary files /dev/null and b/public/demo-img/blog-grid-light.png differ diff --git a/public/demo-img/blog-list-dark.png b/public/demo-img/blog-list-dark.png new file mode 100644 index 0000000..d3d3838 Binary files /dev/null and b/public/demo-img/blog-list-dark.png differ diff --git a/public/demo-img/blog-list-light.png b/public/demo-img/blog-list-light.png new file mode 100644 index 0000000..bcc42ee Binary files /dev/null and b/public/demo-img/blog-list-light.png differ diff --git a/public/demo-img/c1.png b/public/demo-img/c1.png new file mode 100644 index 0000000..053835c Binary files /dev/null and b/public/demo-img/c1.png differ diff --git a/public/demo-img/c2.png b/public/demo-img/c2.png new file mode 100644 index 0000000..50fd134 Binary files /dev/null and b/public/demo-img/c2.png differ diff --git a/public/demo-img/c3.png b/public/demo-img/c3.png new file mode 100644 index 0000000..d3a492f Binary files /dev/null and b/public/demo-img/c3.png differ diff --git a/public/demo-img/c4.png b/public/demo-img/c4.png new file mode 100644 index 0000000..8268fa3 Binary files /dev/null and b/public/demo-img/c4.png differ diff --git a/public/demo-img/co1.png b/public/demo-img/co1.png new file mode 100644 index 0000000..592be32 Binary files /dev/null and b/public/demo-img/co1.png differ diff --git a/public/demo-img/contact-dark.png b/public/demo-img/contact-dark.png new file mode 100644 index 0000000..8b7dfd5 Binary files /dev/null and b/public/demo-img/contact-dark.png differ diff --git a/public/demo-img/contact-light.png b/public/demo-img/contact-light.png new file mode 100644 index 0000000..c821320 Binary files /dev/null and b/public/demo-img/contact-light.png differ diff --git a/public/demo-img/contact.png b/public/demo-img/contact.png new file mode 100644 index 0000000..c0cc6d2 Binary files /dev/null and b/public/demo-img/contact.png differ diff --git a/public/demo-img/contact1.png b/public/demo-img/contact1.png new file mode 100644 index 0000000..9912266 Binary files /dev/null and b/public/demo-img/contact1.png differ diff --git a/public/demo-img/mobile1.png b/public/demo-img/mobile1.png new file mode 100644 index 0000000..4c5c415 Binary files /dev/null and b/public/demo-img/mobile1.png differ diff --git a/public/demo-img/mobile2.png b/public/demo-img/mobile2.png new file mode 100644 index 0000000..886746e Binary files /dev/null and b/public/demo-img/mobile2.png differ diff --git a/public/demo-img/n01.png b/public/demo-img/n01.png new file mode 100644 index 0000000..669d336 Binary files /dev/null and b/public/demo-img/n01.png differ diff --git a/public/demo-img/n02.png b/public/demo-img/n02.png new file mode 100644 index 0000000..c0fe1c7 Binary files /dev/null and b/public/demo-img/n02.png differ diff --git a/public/demo-img/n03.png b/public/demo-img/n03.png new file mode 100644 index 0000000..23f4c5b Binary files /dev/null and b/public/demo-img/n03.png differ diff --git a/public/demo-img/n1.png b/public/demo-img/n1.png new file mode 100644 index 0000000..aed4c85 Binary files /dev/null and b/public/demo-img/n1.png differ diff --git a/public/demo-img/n2.png b/public/demo-img/n2.png new file mode 100644 index 0000000..b6954d6 Binary files /dev/null and b/public/demo-img/n2.png differ diff --git a/public/demo-img/n3.png b/public/demo-img/n3.png new file mode 100644 index 0000000..94568c6 Binary files /dev/null and b/public/demo-img/n3.png differ diff --git a/public/demo-img/s01.png b/public/demo-img/s01.png new file mode 100644 index 0000000..e328edc Binary files /dev/null and b/public/demo-img/s01.png differ diff --git a/public/demo-img/s02.png b/public/demo-img/s02.png new file mode 100644 index 0000000..1d2ef3e Binary files /dev/null and b/public/demo-img/s02.png differ diff --git a/public/demo-img/s03.png b/public/demo-img/s03.png new file mode 100644 index 0000000..4114034 Binary files /dev/null and b/public/demo-img/s03.png differ diff --git a/public/demo-img/s1.png b/public/demo-img/s1.png new file mode 100644 index 0000000..cd542a2 Binary files /dev/null and b/public/demo-img/s1.png differ diff --git a/public/demo-img/s2.png b/public/demo-img/s2.png new file mode 100644 index 0000000..9630118 Binary files /dev/null and b/public/demo-img/s2.png differ diff --git a/public/demo-img/s3.png b/public/demo-img/s3.png new file mode 100644 index 0000000..e553a27 Binary files /dev/null and b/public/demo-img/s3.png differ diff --git a/public/demo-img/standerd-blog-dark.png b/public/demo-img/standerd-blog-dark.png new file mode 100644 index 0000000..f5fe507 Binary files /dev/null and b/public/demo-img/standerd-blog-dark.png differ diff --git a/public/demo-img/standerd-blog-light.png b/public/demo-img/standerd-blog-light.png new file mode 100644 index 0000000..f5b8263 Binary files /dev/null and b/public/demo-img/standerd-blog-light.png differ diff --git a/public/demo-img/w01.png b/public/demo-img/w01.png new file mode 100644 index 0000000..54594e9 Binary files /dev/null and b/public/demo-img/w01.png differ diff --git a/public/demo-img/w02.png b/public/demo-img/w02.png new file mode 100644 index 0000000..75bd087 Binary files /dev/null and b/public/demo-img/w02.png differ diff --git a/public/demo-img/w03.png b/public/demo-img/w03.png new file mode 100644 index 0000000..0f60a0b Binary files /dev/null and b/public/demo-img/w03.png differ diff --git a/public/demo-img/w1.png b/public/demo-img/w1.png new file mode 100644 index 0000000..27ab8f9 Binary files /dev/null and b/public/demo-img/w1.png differ diff --git a/public/demo-img/w2.png b/public/demo-img/w2.png new file mode 100644 index 0000000..fc74db1 Binary files /dev/null and b/public/demo-img/w2.png differ diff --git a/public/demo-img/w3.png b/public/demo-img/w3.png new file mode 100644 index 0000000..abe6c8e Binary files /dev/null and b/public/demo-img/w3.png differ diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000..615ec27 Binary files /dev/null and b/public/favicon.ico differ diff --git a/public/fonts/FontAwesome.otf b/public/fonts/FontAwesome.otf new file mode 100644 index 0000000..401ec0f Binary files /dev/null and b/public/fonts/FontAwesome.otf differ diff --git a/public/fonts/Pe-icon-7-stroke.eot b/public/fonts/Pe-icon-7-stroke.eot new file mode 100644 index 0000000..6f7b584 Binary files /dev/null and b/public/fonts/Pe-icon-7-stroke.eot differ diff --git a/public/fonts/Pe-icon-7-stroke.ttf b/public/fonts/Pe-icon-7-stroke.ttf new file mode 100644 index 0000000..bc8a269 Binary files /dev/null and b/public/fonts/Pe-icon-7-stroke.ttf differ diff --git a/public/fonts/Pe-icon-7-stroke.woff b/public/fonts/Pe-icon-7-stroke.woff new file mode 100644 index 0000000..c205e6f Binary files /dev/null and b/public/fonts/Pe-icon-7-stroke.woff differ diff --git a/public/fonts/fa-brands-400.eot b/public/fonts/fa-brands-400.eot new file mode 100644 index 0000000..d840454 Binary files /dev/null and b/public/fonts/fa-brands-400.eot differ diff --git a/public/fonts/fa-brands-400.ttf b/public/fonts/fa-brands-400.ttf new file mode 100644 index 0000000..12719a1 Binary files /dev/null and b/public/fonts/fa-brands-400.ttf differ diff --git a/public/fonts/fa-brands-400.woff b/public/fonts/fa-brands-400.woff new file mode 100644 index 0000000..721dbcc Binary files /dev/null and b/public/fonts/fa-brands-400.woff differ diff --git a/public/fonts/fa-brands-400.woff2 b/public/fonts/fa-brands-400.woff2 new file mode 100644 index 0000000..8ae415c Binary files /dev/null and b/public/fonts/fa-brands-400.woff2 differ diff --git a/public/fonts/fa-regular-400.eot b/public/fonts/fa-regular-400.eot new file mode 100644 index 0000000..f35e3cf Binary files /dev/null and b/public/fonts/fa-regular-400.eot differ diff --git a/public/fonts/fa-regular-400.ttf b/public/fonts/fa-regular-400.ttf new file mode 100644 index 0000000..8d66ab0 Binary files /dev/null and b/public/fonts/fa-regular-400.ttf differ diff --git a/public/fonts/fa-regular-400.woff b/public/fonts/fa-regular-400.woff new file mode 100644 index 0000000..8449c2a Binary files /dev/null and b/public/fonts/fa-regular-400.woff differ diff --git a/public/fonts/fa-regular-400.woff2 b/public/fonts/fa-regular-400.woff2 new file mode 100644 index 0000000..2fd6764 Binary files /dev/null and b/public/fonts/fa-regular-400.woff2 differ diff --git a/public/fonts/fa-solid-900.eot b/public/fonts/fa-solid-900.eot new file mode 100644 index 0000000..98d4dd5 Binary files /dev/null and b/public/fonts/fa-solid-900.eot differ diff --git a/public/fonts/fa-solid-900.ttf b/public/fonts/fa-solid-900.ttf new file mode 100644 index 0000000..f786c42 Binary files /dev/null and b/public/fonts/fa-solid-900.ttf differ diff --git a/public/fonts/fa-solid-900.woff b/public/fonts/fa-solid-900.woff new file mode 100644 index 0000000..8cef46c Binary files /dev/null and b/public/fonts/fa-solid-900.woff differ diff --git a/public/fonts/fa-solid-900.woff2 b/public/fonts/fa-solid-900.woff2 new file mode 100644 index 0000000..2cad2c7 Binary files /dev/null and b/public/fonts/fa-solid-900.woff2 differ diff --git a/public/fonts/fontawesome-webfont.eot b/public/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000..e9f60ca Binary files /dev/null and b/public/fonts/fontawesome-webfont.eot differ diff --git a/public/fonts/fontawesome-webfont.ttf b/public/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000..35acda2 Binary files /dev/null and b/public/fonts/fontawesome-webfont.ttf differ diff --git a/public/fonts/fontawesome-webfont.woff b/public/fonts/fontawesome-webfont.woff new file mode 100644 index 0000000..400014a Binary files /dev/null and b/public/fonts/fontawesome-webfont.woff differ diff --git a/public/fonts/fontawesome-webfont.woff2 b/public/fonts/fontawesome-webfont.woff2 new file mode 100644 index 0000000..4d13fc6 Binary files /dev/null and b/public/fonts/fontawesome-webfont.woff2 differ diff --git a/public/fonts/ionicons.eot b/public/fonts/ionicons.eot new file mode 100644 index 0000000..92a3f20 Binary files /dev/null and b/public/fonts/ionicons.eot differ diff --git a/public/fonts/ionicons.ttf b/public/fonts/ionicons.ttf new file mode 100644 index 0000000..c4e4632 Binary files /dev/null and b/public/fonts/ionicons.ttf differ diff --git a/public/fonts/ionicons.woff b/public/fonts/ionicons.woff new file mode 100644 index 0000000..5f3a14e Binary files /dev/null and b/public/fonts/ionicons.woff differ diff --git a/public/img/01.jpg b/public/img/01.jpg new file mode 100644 index 0000000..011a19c Binary files /dev/null and b/public/img/01.jpg differ diff --git a/public/img/02.jpg b/public/img/02.jpg new file mode 100644 index 0000000..e374fb0 Binary files /dev/null and b/public/img/02.jpg differ diff --git a/public/img/arch/blog/1.jpg b/public/img/arch/blog/1.jpg new file mode 100644 index 0000000..8cf8c32 Binary files /dev/null and b/public/img/arch/blog/1.jpg differ diff --git a/public/img/arch/blog/2.jpg b/public/img/arch/blog/2.jpg new file mode 100644 index 0000000..8858be0 Binary files /dev/null and b/public/img/arch/blog/2.jpg differ diff --git a/public/img/arch/hero.jpg b/public/img/arch/hero.jpg new file mode 100644 index 0000000..4ed216f Binary files /dev/null and b/public/img/arch/hero.jpg differ diff --git a/public/img/arch/s1.jpg b/public/img/arch/s1.jpg new file mode 100644 index 0000000..bd1c997 Binary files /dev/null and b/public/img/arch/s1.jpg differ diff --git a/public/img/arch/s2.jpg b/public/img/arch/s2.jpg new file mode 100644 index 0000000..4ce2a34 Binary files /dev/null and b/public/img/arch/s2.jpg differ diff --git a/public/img/arch/s3.jpg b/public/img/arch/s3.jpg new file mode 100644 index 0000000..9c2ed1b Binary files /dev/null and b/public/img/arch/s3.jpg differ diff --git a/public/img/arch/s4.jpg b/public/img/arch/s4.jpg new file mode 100644 index 0000000..0b2a06f Binary files /dev/null and b/public/img/arch/s4.jpg differ diff --git a/public/img/arch/s5.jpg b/public/img/arch/s5.jpg new file mode 100644 index 0000000..8ac6338 Binary files /dev/null and b/public/img/arch/s5.jpg differ diff --git a/public/img/arch/slid/1.jpg b/public/img/arch/slid/1.jpg new file mode 100644 index 0000000..aa4784c Binary files /dev/null and b/public/img/arch/slid/1.jpg differ diff --git a/public/img/arch/slid/2.jpg b/public/img/arch/slid/2.jpg new file mode 100644 index 0000000..f0e27d1 Binary files /dev/null and b/public/img/arch/slid/2.jpg differ diff --git a/public/img/arch/slid/3.jpg b/public/img/arch/slid/3.jpg new file mode 100644 index 0000000..3b2c7d2 Binary files /dev/null and b/public/img/arch/slid/3.jpg differ diff --git a/public/img/arch/work/1.jpg b/public/img/arch/work/1.jpg new file mode 100644 index 0000000..8d12646 Binary files /dev/null and b/public/img/arch/work/1.jpg differ diff --git a/public/img/arch/work/2.jpg b/public/img/arch/work/2.jpg new file mode 100644 index 0000000..9583273 Binary files /dev/null and b/public/img/arch/work/2.jpg differ diff --git a/public/img/arch/work/3.jpg b/public/img/arch/work/3.jpg new file mode 100644 index 0000000..205f333 Binary files /dev/null and b/public/img/arch/work/3.jpg differ diff --git a/public/img/arch/work/4.jpg b/public/img/arch/work/4.jpg new file mode 100644 index 0000000..b37e0e6 Binary files /dev/null and b/public/img/arch/work/4.jpg differ diff --git a/public/img/arch/work/5.jpg b/public/img/arch/work/5.jpg new file mode 100644 index 0000000..65e06ae Binary files /dev/null and b/public/img/arch/work/5.jpg differ diff --git a/public/img/arch/work/6.jpg b/public/img/arch/work/6.jpg new file mode 100644 index 0000000..9471e90 Binary files /dev/null and b/public/img/arch/work/6.jpg differ diff --git a/public/img/bg-vid.jpg b/public/img/bg-vid.jpg new file mode 100644 index 0000000..2f9743b Binary files /dev/null and b/public/img/bg-vid.jpg differ diff --git a/public/img/bhubicon2.png b/public/img/bhubicon2.png new file mode 100644 index 0000000..5937d53 Binary files /dev/null and b/public/img/bhubicon2.png differ diff --git a/public/img/blog/01.jpg b/public/img/blog/01.jpg new file mode 100644 index 0000000..89b9665 Binary files /dev/null and b/public/img/blog/01.jpg differ diff --git a/public/img/blog/1.jpg b/public/img/blog/1.jpg new file mode 100644 index 0000000..3887c36 Binary files /dev/null and b/public/img/blog/1.jpg differ diff --git a/public/img/blog/2.jpg b/public/img/blog/2.jpg new file mode 100644 index 0000000..7e89eb7 Binary files /dev/null and b/public/img/blog/2.jpg differ diff --git a/public/img/blog/3.jpg b/public/img/blog/3.jpg new file mode 100644 index 0000000..89da2fb Binary files /dev/null and b/public/img/blog/3.jpg differ diff --git a/public/img/blog/4.jpg b/public/img/blog/4.jpg new file mode 100644 index 0000000..78dc8ec Binary files /dev/null and b/public/img/blog/4.jpg differ diff --git a/public/img/blog/b1.jpg b/public/img/blog/b1.jpg new file mode 100644 index 0000000..a3add17 Binary files /dev/null and b/public/img/blog/b1.jpg differ diff --git a/public/img/blog/b2.jpg b/public/img/blog/b2.jpg new file mode 100644 index 0000000..b5f00ad Binary files /dev/null and b/public/img/blog/b2.jpg differ diff --git a/public/img/blog/b3.jpg b/public/img/blog/b3.jpg new file mode 100644 index 0000000..e8c0ec8 Binary files /dev/null and b/public/img/blog/b3.jpg differ diff --git a/public/img/blog/b4.jpg b/public/img/blog/b4.jpg new file mode 100644 index 0000000..d46f524 Binary files /dev/null and b/public/img/blog/b4.jpg differ diff --git a/public/img/blog/blog img1.webp b/public/img/blog/blog img1.webp new file mode 100644 index 0000000..de7a449 Binary files /dev/null and b/public/img/blog/blog img1.webp differ diff --git a/public/img/blog/blog img2.webp b/public/img/blog/blog img2.webp new file mode 100644 index 0000000..33f50dd Binary files /dev/null and b/public/img/blog/blog img2.webp differ diff --git a/public/img/blog/blog img3.webp b/public/img/blog/blog img3.webp new file mode 100644 index 0000000..1cd3689 Binary files /dev/null and b/public/img/blog/blog img3.webp differ diff --git a/public/img/blog/l1.jpg b/public/img/blog/l1.jpg new file mode 100644 index 0000000..073c83d Binary files /dev/null and b/public/img/blog/l1.jpg differ diff --git a/public/img/blog/l2.jpg b/public/img/blog/l2.jpg new file mode 100644 index 0000000..261cf02 Binary files /dev/null and b/public/img/blog/l2.jpg differ diff --git a/public/img/blog/l3.jpg b/public/img/blog/l3.jpg new file mode 100644 index 0000000..4cb78fd Binary files /dev/null and b/public/img/blog/l3.jpg differ diff --git a/public/img/blog/single.jpg b/public/img/blog/single.jpg new file mode 100644 index 0000000..d92c516 Binary files /dev/null and b/public/img/blog/single.jpg differ diff --git a/public/img/clients/1.jpg b/public/img/clients/1.jpg new file mode 100644 index 0000000..89b9665 Binary files /dev/null and b/public/img/clients/1.jpg differ diff --git a/public/img/clients/2.jpg b/public/img/clients/2.jpg new file mode 100644 index 0000000..dcf63ea Binary files /dev/null and b/public/img/clients/2.jpg differ diff --git a/public/img/clients/3.jpg b/public/img/clients/3.jpg new file mode 100644 index 0000000..345d9a5 Binary files /dev/null and b/public/img/clients/3.jpg differ diff --git a/public/img/clients/4.jpg b/public/img/clients/4.jpg new file mode 100644 index 0000000..48f6cd6 Binary files /dev/null and b/public/img/clients/4.jpg differ diff --git a/public/img/clients/brands/dark/01.png b/public/img/clients/brands/dark/01.png new file mode 100644 index 0000000..9df6472 Binary files /dev/null and b/public/img/clients/brands/dark/01.png differ diff --git a/public/img/clients/brands/dark/02.png b/public/img/clients/brands/dark/02.png new file mode 100644 index 0000000..bbe5a23 Binary files /dev/null and b/public/img/clients/brands/dark/02.png differ diff --git a/public/img/clients/brands/dark/03.png b/public/img/clients/brands/dark/03.png new file mode 100644 index 0000000..209448f Binary files /dev/null and b/public/img/clients/brands/dark/03.png differ diff --git a/public/img/clients/brands/dark/04.png b/public/img/clients/brands/dark/04.png new file mode 100644 index 0000000..1bd68eb Binary files /dev/null and b/public/img/clients/brands/dark/04.png differ diff --git a/public/img/clients/brands/dark/05.png b/public/img/clients/brands/dark/05.png new file mode 100644 index 0000000..6bc468d Binary files /dev/null and b/public/img/clients/brands/dark/05.png differ diff --git a/public/img/clients/brands/dark/06.png b/public/img/clients/brands/dark/06.png new file mode 100644 index 0000000..66f2e22 Binary files /dev/null and b/public/img/clients/brands/dark/06.png differ diff --git a/public/img/clients/brands/dark/07.png b/public/img/clients/brands/dark/07.png new file mode 100644 index 0000000..7d2c872 Binary files /dev/null and b/public/img/clients/brands/dark/07.png differ diff --git a/public/img/clients/brands/dark/08.png b/public/img/clients/brands/dark/08.png new file mode 100644 index 0000000..fa589cd Binary files /dev/null and b/public/img/clients/brands/dark/08.png differ diff --git a/public/img/clients/brands/light/01.png b/public/img/clients/brands/light/01.png new file mode 100644 index 0000000..733861d Binary files /dev/null and b/public/img/clients/brands/light/01.png differ diff --git a/public/img/clients/brands/light/02.png b/public/img/clients/brands/light/02.png new file mode 100644 index 0000000..9c4afac Binary files /dev/null and b/public/img/clients/brands/light/02.png differ diff --git a/public/img/clients/brands/light/03.png b/public/img/clients/brands/light/03.png new file mode 100644 index 0000000..7c39647 Binary files /dev/null and b/public/img/clients/brands/light/03.png differ diff --git a/public/img/clients/brands/light/04.png b/public/img/clients/brands/light/04.png new file mode 100644 index 0000000..16b4026 Binary files /dev/null and b/public/img/clients/brands/light/04.png differ diff --git a/public/img/clients/brands/light/05.png b/public/img/clients/brands/light/05.png new file mode 100644 index 0000000..48e334c Binary files /dev/null and b/public/img/clients/brands/light/05.png differ diff --git a/public/img/clients/brands/light/06.png b/public/img/clients/brands/light/06.png new file mode 100644 index 0000000..5ca958d Binary files /dev/null and b/public/img/clients/brands/light/06.png differ diff --git a/public/img/clients/brands/light/07.png b/public/img/clients/brands/light/07.png new file mode 100644 index 0000000..17ec14a Binary files /dev/null and b/public/img/clients/brands/light/07.png differ diff --git a/public/img/clients/brands/light/08.png b/public/img/clients/brands/light/08.png new file mode 100644 index 0000000..c4a3c03 Binary files /dev/null and b/public/img/clients/brands/light/08.png differ diff --git a/public/img/clients/brands/light/client1.webp b/public/img/clients/brands/light/client1.webp new file mode 100644 index 0000000..532c3e7 Binary files /dev/null and b/public/img/clients/brands/light/client1.webp differ diff --git a/public/img/clients/brands/light/client10.webp b/public/img/clients/brands/light/client10.webp new file mode 100644 index 0000000..56f7bdb Binary files /dev/null and b/public/img/clients/brands/light/client10.webp differ diff --git a/public/img/clients/brands/light/client11.webp b/public/img/clients/brands/light/client11.webp new file mode 100644 index 0000000..e63c83f Binary files /dev/null and b/public/img/clients/brands/light/client11.webp differ diff --git a/public/img/clients/brands/light/client12.webp b/public/img/clients/brands/light/client12.webp new file mode 100644 index 0000000..0b72d60 Binary files /dev/null and b/public/img/clients/brands/light/client12.webp differ diff --git a/public/img/clients/brands/light/client13.webp b/public/img/clients/brands/light/client13.webp new file mode 100644 index 0000000..8befe48 Binary files /dev/null and b/public/img/clients/brands/light/client13.webp differ diff --git a/public/img/clients/brands/light/client14.webp b/public/img/clients/brands/light/client14.webp new file mode 100644 index 0000000..5c97ac7 Binary files /dev/null and b/public/img/clients/brands/light/client14.webp differ diff --git a/public/img/clients/brands/light/client15.webp b/public/img/clients/brands/light/client15.webp new file mode 100644 index 0000000..9cbfdaa Binary files /dev/null and b/public/img/clients/brands/light/client15.webp differ diff --git a/public/img/clients/brands/light/client16.webp b/public/img/clients/brands/light/client16.webp new file mode 100644 index 0000000..5d30b59 Binary files /dev/null and b/public/img/clients/brands/light/client16.webp differ diff --git a/public/img/clients/brands/light/client2.webp b/public/img/clients/brands/light/client2.webp new file mode 100644 index 0000000..f7e3d90 Binary files /dev/null and b/public/img/clients/brands/light/client2.webp differ diff --git a/public/img/clients/brands/light/client3.webp b/public/img/clients/brands/light/client3.webp new file mode 100644 index 0000000..5176bc1 Binary files /dev/null and b/public/img/clients/brands/light/client3.webp differ diff --git a/public/img/clients/brands/light/client4.webp b/public/img/clients/brands/light/client4.webp new file mode 100644 index 0000000..d2c3535 Binary files /dev/null and b/public/img/clients/brands/light/client4.webp differ diff --git a/public/img/clients/brands/light/client5.webp b/public/img/clients/brands/light/client5.webp new file mode 100644 index 0000000..1c8525f Binary files /dev/null and b/public/img/clients/brands/light/client5.webp differ diff --git a/public/img/clients/brands/light/client6.webp b/public/img/clients/brands/light/client6.webp new file mode 100644 index 0000000..47216f2 Binary files /dev/null and b/public/img/clients/brands/light/client6.webp differ diff --git a/public/img/clients/brands/light/client7.webp b/public/img/clients/brands/light/client7.webp new file mode 100644 index 0000000..a1c0cfd Binary files /dev/null and b/public/img/clients/brands/light/client7.webp differ diff --git a/public/img/clients/brands/light/client8.webp b/public/img/clients/brands/light/client8.webp new file mode 100644 index 0000000..0c4f721 Binary files /dev/null and b/public/img/clients/brands/light/client8.webp differ diff --git a/public/img/clients/brands/light/client9.webp b/public/img/clients/brands/light/client9.webp new file mode 100644 index 0000000..29c6bee Binary files /dev/null and b/public/img/clients/brands/light/client9.webp differ diff --git a/public/img/clients/quote.svg b/public/img/clients/quote.svg new file mode 100644 index 0000000..a8307bc --- /dev/null +++ b/public/img/clients/quote.svg @@ -0,0 +1,5 @@ +<?xml version="1.0"?> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" x="0px" y="0px" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xml:space="preserve" width="512px" height="512px"><g><g id="Quotemarks-left"> + <path d="M50.6292648,26.225668c-0.1288986-1.3934994-0.0303001-5.1816006,3.5985985-10.4492006 c0.2745018-0.3975,0.2247009-0.9335995-0.1161957-1.2743998c-1.4795036-1.4794998-2.395504-2.4131002-3.0379982-3.0663996 c-0.8448029-0.8614006-1.2305031-1.2539005-1.795002-1.7657003c-0.3769035-0.3388004-0.9472008-0.3446999-1.3281021-0.0125999 c-6.3251991,5.5038996-13.3505974,16.8768997-12.3339958,30.8105011 c0.5956955,8.1815987,6.5634956,14.1200981,14.1894951,14.1200981c7.8260994,0,14.1932983-6.3661995,14.1932983-14.1923981 C63.9993629,32.845768,58.0736694,26.6543674,50.6292648,26.225668z M49.8060646,52.5879669 c-6.5489006,0-11.6767998-5.1581993-12.1953011-12.2645988c0,0,0,0,0-0.0009995 c-1.1435966-15.6709003,8.1718025-25.8496017,10.9863014-28.5449009c0.2743988,0.2705002,0.5878983,0.5887995,1.0498009,1.0594997 c0.5565987,0.5664005,1.3183975,1.3417997,2.4706993,2.4981003c-4.4053001,6.7870998-3.5741997,11.6229992-3.2099991,12.3164005 c0.1728973,0.3290997,0.5273972,0.5508003,0.8984985,0.5508003c6.7236023,0,12.1932983,5.469698,12.1932983,12.1933002 C61.9993629,47.1182671,56.5296669,52.5879669,49.8060646,52.5879669z" data-original="#000000" class="active-path" data-old_color="#E5E3E3" fill="#E2E0E0"/> + <path d="M15.1136675,26.225668c-0.1299-1.3896008-0.0341997-5.1748009,3.5985994-10.4492006 c0.2735004-0.3975,0.2245998-0.9335995-0.1161995-1.2743998c-1.4766006-1.4765997-2.3915997-2.4091997-3.0332003-3.0625 c-0.8476-0.8633003-1.2343998-1.2568998-1.7987995-1.7695999c-0.3769999-0.3388004-0.9473-0.3437004-1.3281002-0.0136003 c-6.3251996,5.5039005-13.3515997,16.875-12.3369999,30.8115005v0.0009995 c0.5977,8.1805992,6.5664001,14.1190987,14.1924,14.1190987c7.8261995,0,14.1934004-6.3661995,14.1934004-14.1923981 C28.4847679,32.8448677,22.5589676,26.6524677,15.1136675,26.225668z M14.2913675,52.5879669 c-6.5478001,0-11.6786995-5.1581993-12.1982002-12.2655983v0.0009995 c-1.1406-15.6748009,8.1747999-25.8516006,10.9892006-28.5459003c0.2754002,0.2705002,0.5899,0.5908003,1.0528002,1.0625 c0.5555992,0.5663996,1.3163996,1.3408003,2.4667988,2.4951c-4.4052992,6.7880993-3.5741997,11.6229992-3.2099991,12.3153992 c0.1729002,0.3291016,0.5283003,0.5518017,0.8993998,0.5518017c6.7237005,0,12.1934004,5.469698,12.1934004,12.1933002 C26.4847679,47.1182671,21.0150681,52.5879669,14.2913675,52.5879669z" data-original="#000000" class="active-path" data-old_color="#E5E3E3" fill="#E2E0E0"/> +</g></g> </svg> diff --git a/public/img/dots.png b/public/img/dots.png new file mode 100644 index 0000000..9e8a29b Binary files /dev/null and b/public/img/dots.png differ diff --git a/public/img/favicon.ico b/public/img/favicon.ico new file mode 100644 index 0000000..fb4e427 Binary files /dev/null and b/public/img/favicon.ico differ diff --git a/public/img/feat.jpg b/public/img/feat.jpg new file mode 100644 index 0000000..73a625a Binary files /dev/null and b/public/img/feat.jpg differ diff --git a/public/img/hero.jpg b/public/img/hero.jpg new file mode 100644 index 0000000..bf95383 Binary files /dev/null and b/public/img/hero.jpg differ diff --git a/public/img/insta/1.jpg b/public/img/insta/1.jpg new file mode 100644 index 0000000..e09d828 Binary files /dev/null and b/public/img/insta/1.jpg differ diff --git a/public/img/insta/2.jpg b/public/img/insta/2.jpg new file mode 100644 index 0000000..1525264 Binary files /dev/null and b/public/img/insta/2.jpg differ diff --git a/public/img/insta/3.jpg b/public/img/insta/3.jpg new file mode 100644 index 0000000..15b43b1 Binary files /dev/null and b/public/img/insta/3.jpg differ diff --git a/public/img/intro/1.jpg b/public/img/intro/1.jpg new file mode 100644 index 0000000..38b1152 Binary files /dev/null and b/public/img/intro/1.jpg differ diff --git a/public/img/intro/2.jpg b/public/img/intro/2.jpg new file mode 100644 index 0000000..7a2ab2e Binary files /dev/null and b/public/img/intro/2.jpg differ diff --git a/public/img/intro/3.jpg b/public/img/intro/3.jpg new file mode 100644 index 0000000..1f6141f Binary files /dev/null and b/public/img/intro/3.jpg differ diff --git a/public/img/intro/4.jpg b/public/img/intro/4.jpg new file mode 100644 index 0000000..91fb417 Binary files /dev/null and b/public/img/intro/4.jpg differ diff --git a/public/img/logo white.png b/public/img/logo white.png new file mode 100644 index 0000000..0a49e60 Binary files /dev/null and b/public/img/logo white.png differ diff --git a/public/img/logo-dark.png b/public/img/logo-dark.png new file mode 100644 index 0000000..d25684d Binary files /dev/null and b/public/img/logo-dark.png differ diff --git a/public/img/logo-gr.png b/public/img/logo-gr.png new file mode 100644 index 0000000..b5e97e5 Binary files /dev/null and b/public/img/logo-gr.png differ diff --git a/public/img/logo-light.png b/public/img/logo-light.png new file mode 100644 index 0000000..385f0d7 Binary files /dev/null and b/public/img/logo-light.png differ diff --git a/public/img/logo.png b/public/img/logo.png new file mode 100644 index 0000000..09513bd Binary files /dev/null and b/public/img/logo.png differ diff --git a/public/img/min-area.jpg b/public/img/min-area.jpg new file mode 100644 index 0000000..37e472b Binary files /dev/null and b/public/img/min-area.jpg differ diff --git a/public/img/mobile-app/app-img/light/s1.png b/public/img/mobile-app/app-img/light/s1.png new file mode 100644 index 0000000..0fefee9 Binary files /dev/null and b/public/img/mobile-app/app-img/light/s1.png differ diff --git a/public/img/mobile-app/app-img/light/s2.png b/public/img/mobile-app/app-img/light/s2.png new file mode 100644 index 0000000..bc40aaa Binary files /dev/null and b/public/img/mobile-app/app-img/light/s2.png differ diff --git a/public/img/mobile-app/app-img/s1.png b/public/img/mobile-app/app-img/s1.png new file mode 100644 index 0000000..f8189b8 Binary files /dev/null and b/public/img/mobile-app/app-img/s1.png differ diff --git a/public/img/mobile-app/app-img/s2.png b/public/img/mobile-app/app-img/s2.png new file mode 100644 index 0000000..65744b5 Binary files /dev/null and b/public/img/mobile-app/app-img/s2.png differ diff --git a/public/img/mobile-app/bg-vid.jpg b/public/img/mobile-app/bg-vid.jpg new file mode 100644 index 0000000..dff9133 Binary files /dev/null and b/public/img/mobile-app/bg-vid.jpg differ diff --git a/public/img/mobile-app/blog/1.jpg b/public/img/mobile-app/blog/1.jpg new file mode 100644 index 0000000..f6e6d32 Binary files /dev/null and b/public/img/mobile-app/blog/1.jpg differ diff --git a/public/img/mobile-app/blog/2.jpg b/public/img/mobile-app/blog/2.jpg new file mode 100644 index 0000000..d81d2f7 Binary files /dev/null and b/public/img/mobile-app/blog/2.jpg differ diff --git a/public/img/mobile-app/brands/1.png b/public/img/mobile-app/brands/1.png new file mode 100644 index 0000000..71c669e Binary files /dev/null and b/public/img/mobile-app/brands/1.png differ diff --git a/public/img/mobile-app/brands/2.png b/public/img/mobile-app/brands/2.png new file mode 100644 index 0000000..efeb25b Binary files /dev/null and b/public/img/mobile-app/brands/2.png differ diff --git a/public/img/mobile-app/brands/3.png b/public/img/mobile-app/brands/3.png new file mode 100644 index 0000000..f99ba1f Binary files /dev/null and b/public/img/mobile-app/brands/3.png differ diff --git a/public/img/mobile-app/brands/4.png b/public/img/mobile-app/brands/4.png new file mode 100644 index 0000000..7d5555b Binary files /dev/null and b/public/img/mobile-app/brands/4.png differ diff --git a/public/img/mobile-app/brands/5.png b/public/img/mobile-app/brands/5.png new file mode 100644 index 0000000..447f996 Binary files /dev/null and b/public/img/mobile-app/brands/5.png differ diff --git a/public/img/mobile-app/brands/l1.png b/public/img/mobile-app/brands/l1.png new file mode 100644 index 0000000..2a0c443 Binary files /dev/null and b/public/img/mobile-app/brands/l1.png differ diff --git a/public/img/mobile-app/brands/l2.png b/public/img/mobile-app/brands/l2.png new file mode 100644 index 0000000..ac034a6 Binary files /dev/null and b/public/img/mobile-app/brands/l2.png differ diff --git a/public/img/mobile-app/brands/l3.png b/public/img/mobile-app/brands/l3.png new file mode 100644 index 0000000..7bb6f9f Binary files /dev/null and b/public/img/mobile-app/brands/l3.png differ diff --git a/public/img/mobile-app/brands/l4.png b/public/img/mobile-app/brands/l4.png new file mode 100644 index 0000000..bf5213b Binary files /dev/null and b/public/img/mobile-app/brands/l4.png differ diff --git a/public/img/mobile-app/brands/l5.png b/public/img/mobile-app/brands/l5.png new file mode 100644 index 0000000..e4634cf Binary files /dev/null and b/public/img/mobile-app/brands/l5.png differ diff --git a/public/img/mobile-app/call-img.png b/public/img/mobile-app/call-img.png new file mode 100644 index 0000000..d734279 Binary files /dev/null and b/public/img/mobile-app/call-img.png differ diff --git a/public/img/mobile-app/clients/1.png b/public/img/mobile-app/clients/1.png new file mode 100644 index 0000000..4142efc Binary files /dev/null and b/public/img/mobile-app/clients/1.png differ diff --git a/public/img/mobile-app/clients/2.png b/public/img/mobile-app/clients/2.png new file mode 100644 index 0000000..c0fcca8 Binary files /dev/null and b/public/img/mobile-app/clients/2.png differ diff --git a/public/img/mobile-app/clients/3.png b/public/img/mobile-app/clients/3.png new file mode 100644 index 0000000..7dc1398 Binary files /dev/null and b/public/img/mobile-app/clients/3.png differ diff --git a/public/img/mobile-app/header-img.png b/public/img/mobile-app/header-img.png new file mode 100644 index 0000000..8207072 Binary files /dev/null and b/public/img/mobile-app/header-img.png differ diff --git a/public/img/mobile-app/logo-dark.png b/public/img/mobile-app/logo-dark.png new file mode 100644 index 0000000..d25684d Binary files /dev/null and b/public/img/mobile-app/logo-dark.png differ diff --git a/public/img/mobile-app/logo-gr.png b/public/img/mobile-app/logo-gr.png new file mode 100644 index 0000000..b5e97e5 Binary files /dev/null and b/public/img/mobile-app/logo-gr.png differ diff --git a/public/img/mobile-app/logo-light.png b/public/img/mobile-app/logo-light.png new file mode 100644 index 0000000..385f0d7 Binary files /dev/null and b/public/img/mobile-app/logo-light.png differ diff --git a/public/img/mobile-app/p1.jpg b/public/img/mobile-app/p1.jpg new file mode 100644 index 0000000..236f91e Binary files /dev/null and b/public/img/mobile-app/p1.jpg differ diff --git a/public/img/mobile-app/qoute.png b/public/img/mobile-app/qoute.png new file mode 100644 index 0000000..40a0b39 Binary files /dev/null and b/public/img/mobile-app/qoute.png differ diff --git a/public/img/mobile-app/screenshots/1.png b/public/img/mobile-app/screenshots/1.png new file mode 100644 index 0000000..2856e90 Binary files /dev/null and b/public/img/mobile-app/screenshots/1.png differ diff --git a/public/img/mobile-app/screenshots/2.png b/public/img/mobile-app/screenshots/2.png new file mode 100644 index 0000000..1d4efa9 Binary files /dev/null and b/public/img/mobile-app/screenshots/2.png differ diff --git a/public/img/mobile-app/screenshots/3.png b/public/img/mobile-app/screenshots/3.png new file mode 100644 index 0000000..8d5553b Binary files /dev/null and b/public/img/mobile-app/screenshots/3.png differ diff --git a/public/img/mobile-app/screenshots/4.png b/public/img/mobile-app/screenshots/4.png new file mode 100644 index 0000000..49226c5 Binary files /dev/null and b/public/img/mobile-app/screenshots/4.png differ diff --git a/public/img/mobile-app/screenshots/5.png b/public/img/mobile-app/screenshots/5.png new file mode 100644 index 0000000..c951c00 Binary files /dev/null and b/public/img/mobile-app/screenshots/5.png differ diff --git a/public/img/mobile-app/shapes/border.png b/public/img/mobile-app/shapes/border.png new file mode 100644 index 0000000..1491b55 Binary files /dev/null and b/public/img/mobile-app/shapes/border.png differ diff --git a/public/img/mobile-app/shapes/shape-light.png b/public/img/mobile-app/shapes/shape-light.png new file mode 100644 index 0000000..f3dc0e1 Binary files /dev/null and b/public/img/mobile-app/shapes/shape-light.png differ diff --git a/public/img/mobile-app/shop/1.jpg b/public/img/mobile-app/shop/1.jpg new file mode 100644 index 0000000..ec6f4a0 Binary files /dev/null and b/public/img/mobile-app/shop/1.jpg differ diff --git a/public/img/mobile-app/shop/2.jpg b/public/img/mobile-app/shop/2.jpg new file mode 100644 index 0000000..1fc7b36 Binary files /dev/null and b/public/img/mobile-app/shop/2.jpg differ diff --git a/public/img/mobile-app/shop/3.jpg b/public/img/mobile-app/shop/3.jpg new file mode 100644 index 0000000..545b583 Binary files /dev/null and b/public/img/mobile-app/shop/3.jpg differ diff --git a/public/img/mobile-app/shop/4.jpg b/public/img/mobile-app/shop/4.jpg new file mode 100644 index 0000000..8af97f4 Binary files /dev/null and b/public/img/mobile-app/shop/4.jpg differ diff --git a/public/img/mobile-app/shop/5.jpg b/public/img/mobile-app/shop/5.jpg new file mode 100644 index 0000000..6d90e0a Binary files /dev/null and b/public/img/mobile-app/shop/5.jpg differ diff --git a/public/img/mobile-app/shop/6.jpg b/public/img/mobile-app/shop/6.jpg new file mode 100644 index 0000000..dd45c17 Binary files /dev/null and b/public/img/mobile-app/shop/6.jpg differ diff --git a/public/img/mobile-app/shop/7.jpg b/public/img/mobile-app/shop/7.jpg new file mode 100644 index 0000000..5a63dc2 Binary files /dev/null and b/public/img/mobile-app/shop/7.jpg differ diff --git a/public/img/mobile-app/shop/8.jpg b/public/img/mobile-app/shop/8.jpg new file mode 100644 index 0000000..f6132fe Binary files /dev/null and b/public/img/mobile-app/shop/8.jpg differ diff --git a/public/img/mobile-app/shop/9.jpg b/public/img/mobile-app/shop/9.jpg new file mode 100644 index 0000000..f747866 Binary files /dev/null and b/public/img/mobile-app/shop/9.jpg differ diff --git a/public/img/mobile-app/team/1.png b/public/img/mobile-app/team/1.png new file mode 100644 index 0000000..d2ee038 Binary files /dev/null and b/public/img/mobile-app/team/1.png differ diff --git a/public/img/mobile-app/team/2.png b/public/img/mobile-app/team/2.png new file mode 100644 index 0000000..f63d696 Binary files /dev/null and b/public/img/mobile-app/team/2.png differ diff --git a/public/img/mobile-app/team/3.png b/public/img/mobile-app/team/3.png new file mode 100644 index 0000000..589b31e Binary files /dev/null and b/public/img/mobile-app/team/3.png differ diff --git a/public/img/mobile-app/team/4.png b/public/img/mobile-app/team/4.png new file mode 100644 index 0000000..3a471dc Binary files /dev/null and b/public/img/mobile-app/team/4.png differ diff --git a/public/img/mobile-app/works/1.jpg b/public/img/mobile-app/works/1.jpg new file mode 100644 index 0000000..54a3c03 Binary files /dev/null and b/public/img/mobile-app/works/1.jpg differ diff --git a/public/img/mobile-app/works/2.jpg b/public/img/mobile-app/works/2.jpg new file mode 100644 index 0000000..b94a976 Binary files /dev/null and b/public/img/mobile-app/works/2.jpg differ diff --git a/public/img/mobile-app/works/3.jpg b/public/img/mobile-app/works/3.jpg new file mode 100644 index 0000000..cfe9a9b Binary files /dev/null and b/public/img/mobile-app/works/3.jpg differ diff --git a/public/img/mobile-app/works/4.jpg b/public/img/mobile-app/works/4.jpg new file mode 100644 index 0000000..516a87d Binary files /dev/null and b/public/img/mobile-app/works/4.jpg differ diff --git a/public/img/mobile-app/works/5.jpg b/public/img/mobile-app/works/5.jpg new file mode 100644 index 0000000..1252487 Binary files /dev/null and b/public/img/mobile-app/works/5.jpg differ diff --git a/public/img/mobile-app/works/6.jpg b/public/img/mobile-app/works/6.jpg new file mode 100644 index 0000000..507513d Binary files /dev/null and b/public/img/mobile-app/works/6.jpg differ diff --git a/public/img/mobile-app/works/7.jpg b/public/img/mobile-app/works/7.jpg new file mode 100644 index 0000000..27e51ae Binary files /dev/null and b/public/img/mobile-app/works/7.jpg differ diff --git a/public/img/mobile-app/works/8.jpg b/public/img/mobile-app/works/8.jpg new file mode 100644 index 0000000..0ae3f28 Binary files /dev/null and b/public/img/mobile-app/works/8.jpg differ diff --git a/public/img/patrn.svg b/public/img/patrn.svg new file mode 100644 index 0000000..a4bcfde --- /dev/null +++ b/public/img/patrn.svg @@ -0,0 +1,11075 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 24.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 1200 800" style="enable-background:new 0 0 1200 800;" xml:space="preserve"> +<style type="text/css"> + .st0{display:none;} + .st1{display:inline;} + .st2{fill:#171717;} + .st3{opacity:0.3;} + .st4{display:none;opacity:0.75;clip-path:url(#SVGID_2_);} + .st5{fill:url(#SVGID_3_);} + .st6{fill:url(#SVGID_4_);} + .st7{fill:url(#SVGID_5_);} + .st8{fill:url(#SVGID_6_);} + .st9{fill:url(#SVGID_7_);} + .st10{fill:url(#SVGID_8_);} + .st11{fill:url(#SVGID_9_);} + .st12{fill:url(#SVGID_10_);} + .st13{fill:url(#SVGID_11_);} + .st14{fill:url(#SVGID_12_);} + .st15{fill:url(#SVGID_13_);} + .st16{fill:url(#SVGID_14_);} + .st17{fill:url(#SVGID_15_);} + .st18{fill:url(#SVGID_16_);} + .st19{fill:url(#SVGID_17_);} + .st20{fill:url(#SVGID_18_);} + .st21{fill:url(#SVGID_19_);} + .st22{fill:url(#SVGID_20_);} + .st23{fill:url(#SVGID_21_);} + .st24{fill:url(#SVGID_22_);} + .st25{fill:url(#SVGID_23_);} + .st26{fill:url(#SVGID_24_);} + .st27{fill:url(#SVGID_25_);} + .st28{fill:url(#SVGID_26_);} + .st29{fill:url(#SVGID_27_);} + .st30{fill:url(#SVGID_28_);} + .st31{fill:url(#SVGID_29_);} + .st32{fill:url(#SVGID_30_);} + .st33{fill:url(#SVGID_31_);} + .st34{fill:url(#SVGID_32_);} + .st35{fill:url(#SVGID_33_);} + .st36{fill:url(#SVGID_34_);} + .st37{fill:url(#SVGID_35_);} + .st38{fill:url(#SVGID_36_);} + .st39{fill:url(#SVGID_37_);} + .st40{fill:url(#SVGID_38_);} + .st41{fill:url(#SVGID_39_);} + .st42{fill:url(#SVGID_40_);} + .st43{fill:url(#SVGID_41_);} + .st44{fill:url(#SVGID_42_);} + .st45{fill:url(#SVGID_43_);} + .st46{fill:url(#SVGID_44_);} + .st47{fill:url(#SVGID_45_);} + .st48{fill:url(#SVGID_46_);} + .st49{fill:url(#SVGID_47_);} + .st50{fill:url(#SVGID_48_);} + .st51{fill:url(#SVGID_49_);} + .st52{fill:url(#SVGID_50_);} + .st53{fill:url(#SVGID_51_);} + .st54{fill:url(#SVGID_52_);} + .st55{fill:url(#SVGID_53_);} + .st56{fill:url(#SVGID_54_);} + .st57{fill:url(#SVGID_55_);} + .st58{fill:url(#SVGID_56_);} + .st59{fill:url(#SVGID_57_);} + .st60{fill:url(#SVGID_58_);} + .st61{fill:url(#SVGID_59_);} + .st62{fill:url(#SVGID_60_);} + .st63{fill:url(#SVGID_61_);} + .st64{fill:url(#SVGID_62_);} + .st65{fill:url(#SVGID_63_);} + .st66{fill:url(#SVGID_64_);} + .st67{fill:url(#SVGID_65_);} + .st68{fill:url(#SVGID_66_);} + .st69{fill:url(#SVGID_67_);} + .st70{fill:url(#SVGID_68_);} + .st71{display:none;opacity:0.64;clip-path:url(#SVGID_2_);} + .st72{fill:url(#SVGID_69_);} + .st73{fill:url(#SVGID_70_);} + .st74{fill:url(#SVGID_71_);} + .st75{fill:url(#SVGID_72_);} + .st76{fill:url(#SVGID_73_);} + .st77{fill:url(#SVGID_74_);} + .st78{fill:url(#SVGID_75_);} + .st79{fill:url(#SVGID_76_);} + .st80{fill:url(#SVGID_77_);} + .st81{fill:url(#SVGID_78_);} + .st82{fill:url(#SVGID_79_);} + .st83{fill:url(#SVGID_80_);} + .st84{fill:url(#SVGID_81_);} + .st85{fill:url(#SVGID_82_);} + .st86{fill:url(#SVGID_83_);} + .st87{fill:url(#SVGID_84_);} + .st88{fill:url(#SVGID_85_);} + .st89{fill:url(#SVGID_86_);} + .st90{fill:url(#SVGID_87_);} + .st91{fill:url(#SVGID_88_);} + .st92{fill:url(#SVGID_89_);} + .st93{fill:url(#SVGID_90_);} + .st94{fill:url(#SVGID_91_);} + .st95{fill:url(#SVGID_92_);} + .st96{fill:url(#SVGID_93_);} + .st97{fill:url(#SVGID_94_);} + .st98{fill:url(#SVGID_95_);} + .st99{fill:url(#SVGID_96_);} + .st100{fill:url(#SVGID_97_);} + .st101{fill:url(#SVGID_98_);} + .st102{fill:url(#SVGID_99_);} + .st103{fill:url(#SVGID_100_);} + .st104{fill:url(#SVGID_101_);} + .st105{clip-path:url(#SVGID_2_);} + .st106{fill:#5C6161;} + .st107{fill:#878787;} + .st108{fill:#FFFFFF;} +</style> +<g id="Background" class="st0"> + <g class="st1"> + <g> + <rect class="st2" width="1200" height="800"/> + </g> + </g> +</g> +<g id="Objects"> + <g class="st3"> + <defs> + <rect id="SVGID_1_" class="st3" width="1200" height="800"/> + </defs> + <clipPath id="SVGID_2_"> + <use xlink:href="#SVGID_1_" style="overflow:visible;opacity:0.1;"/> + </clipPath> + <g class="st4"> + <g class="st1"> + <g> + + <radialGradient id="SVGID_3_" cx="399.8037" cy="1001.2916" r="597.8082" gradientTransform="matrix(-0.4685 0.8835 -0.8835 -0.4685 1033.4926 364.4432)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st5" d="M-117.38,276.38c-0.27-0.35-0.36-0.81-0.26-1.25l18.33-78.29c0.12-0.53,0.52-0.95,1.04-1.11l77-23.15 + c0.52-0.16,1.08-0.02,1.48,0.35l58.67,55.14c0.39,0.36,0.56,0.92,0.44,1.45l-18.33,78.29c-0.12,0.53-0.52,0.95-1.04,1.11 + l-77,23.15c-0.52,0.16-1.08,0.02-1.47-0.35l-58.67-55.14C-117.27,276.52-117.33,276.45-117.38,276.38z M-96.56,198.38 + l-17.93,76.58l57.39,53.94l75.32-22.64l17.93-76.58l-57.39-53.94L-96.56,198.38z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_4_" cx="399.742" cy="1001.2868" r="601.2501" gradientTransform="matrix(-0.4685 0.8835 -0.8835 -0.4685 1033.4926 364.4432)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st6" d="M-124.13,270.63c-0.29-0.39-0.38-0.91-0.23-1.38l26.69-81.27c0.17-0.52,0.6-0.9,1.13-1.01l83.75-17.39 + c0.53-0.11,1.08,0.07,1.44,0.48l57.06,63.88c0.36,0.41,0.48,0.97,0.31,1.48l-26.69,81.27c-0.17,0.52-0.6,0.9-1.13,1.01 + l-83.75,17.39c-0.53,0.11-1.08-0.07-1.44-0.48l-57.06-63.88C-124.08,270.69-124.11,270.66-124.13,270.63z M-95.06,189.75 + l-26.14,79.6l55.9,62.57l82.04-17.03l26.14-79.6l-55.9-62.57L-95.06,189.75z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_5_" cx="399.6799" cy="1001.2015" r="586.9771" gradientTransform="matrix(-0.4685 0.8835 -0.8835 -0.4685 1033.4926 364.4432)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st7" d="M-76.2,336.89l-54.55-72.99c-0.32-0.43-0.39-1.01-0.18-1.5l35.82-83.65c0.21-0.5,0.68-0.85,1.22-0.91 + l90.37-10.67c0.54-0.06,1.07,0.16,1.39,0.6l54.55,72.99c0.32,0.43,0.39,1.01,0.18,1.5l-35.82,83.65 + c-0.21,0.5-0.68,0.85-1.22,0.91l-90.37,10.67C-75.35,337.55-75.88,337.32-76.2,336.89z M-127.8,262.78l53.5,71.58l88.63-10.46 + l35.13-82.04l-53.5-71.58l-88.63,10.46L-127.8,262.78z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_6_" cx="399.6175" cy="1001.127" r="573.9439" gradientTransform="matrix(-0.4685 0.8835 -0.8835 -0.4685 1033.4926 364.4432)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st8" d="M-86.1,338.57c-0.03-0.04-0.05-0.07-0.07-0.11l-51.05-82.41c-0.28-0.46-0.3-1.04-0.05-1.52l45.72-85.33 + c0.26-0.48,0.75-0.78,1.29-0.8l96.76-2.93c0.54-0.02,1.05,0.27,1.33,0.72l51.05,82.41c0.28,0.46,0.3,1.04,0.05,1.52 + l-45.72,85.33c-0.26,0.48-0.75,0.78-1.29,0.8l-96.76,2.92C-85.33,339.19-85.8,338.96-86.1,338.57z M-134.18,255.2l50.13,80.92 + l95.01-2.87l44.89-83.79L5.72,168.53l-95.01,2.87L-134.18,255.2z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_7_" cx="399.5501" cy="1001.1458" r="582.848" gradientTransform="matrix(-0.4685 0.8835 -0.8835 -0.4685 1033.4926 364.4432)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st9" d="M-96.74,339.43c-0.05-0.07-0.1-0.14-0.14-0.23l-46.46-92.07c-0.24-0.48-0.21-1.06,0.09-1.51l56.36-86.2 + c0.3-0.46,0.81-0.72,1.36-0.68l102.82,5.87c0.54,0.03,1.02,0.34,1.27,0.83l46.46,92.07c0.24,0.48,0.21,1.06-0.09,1.51 + l-56.36,86.2c-0.3,0.45-0.81,0.72-1.36,0.68l-102.82-5.87C-96.07,340.01-96.48,339.78-96.74,339.43z M-140.24,246.55 + l45.67,90.51L6.5,342.83l55.4-84.73l-45.67-90.5l-101.07-5.77L-140.24,246.55z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_8_" cx="399.4814" cy="1001.1639" r="591.8441" gradientTransform="matrix(-0.4685 0.8835 -0.8835 -0.4685 1033.4926 364.4432)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st10" d="M-108.1,339.36c-0.08-0.1-0.14-0.22-0.19-0.35L-149,237.13c-0.2-0.5-0.12-1.07,0.22-1.5l67.72-86.12 + c0.34-0.43,0.87-0.64,1.41-0.56L28.77,164.7c0.54,0.08,0.99,0.43,1.19,0.94l40.7,101.88c0.2,0.5,0.12,1.07-0.22,1.5 + L2.72,355.14c-0.34,0.43-0.87,0.64-1.41,0.56l-108.42-15.76C-107.51,339.89-107.87,339.67-108.1,339.36z M-145.85,236.82 + l40.05,100.25l106.69,15.5l66.64-84.75L27.47,167.58l-106.69-15.5L-145.85,236.82z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_9_" cx="399.4076" cy="1001.1813" r="601.0396" gradientTransform="matrix(-0.4685 0.8835 -0.8835 -0.4685 1033.4926 364.4432)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st11" d="M-120.14,338.22c-0.1-0.14-0.18-0.3-0.24-0.47l-33.69-111.74c-0.16-0.52-0.02-1.08,0.35-1.48l79.76-84.99 + c0.37-0.4,0.93-0.56,1.45-0.44l113.44,26.75c0.53,0.13,0.95,0.52,1.1,1.04l33.69,111.74c0.16,0.52,0.02,1.08-0.35,1.48 + l-79.76,84.99c-0.37,0.4-0.93,0.56-1.45,0.44l-113.44-26.75C-119.62,338.71-119.93,338.51-120.14,338.22z M-150.9,225.97 + l33.18,110.07l111.74,26.35l78.56-83.71L39.39,168.61l-111.74-26.35L-150.9,225.97z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_10_" cx="399.4357" cy="1001.1988" r="603.2247" gradientTransform="matrix(-0.4685 0.8835 -0.8835 -0.4685 1033.4926 364.4432)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st12" d="M-132.79,335.91c-0.13-0.17-0.22-0.38-0.27-0.6l-25.34-121.55c-0.11-0.53,0.07-1.08,0.47-1.44l92.4-82.68 + c0.4-0.36,0.97-0.48,1.49-0.31l117.74,38.87c0.51,0.17,0.9,0.6,1.01,1.13l25.34,121.55c0.11,0.53-0.07,1.08-0.47,1.44 + L-12.82,375c-0.4,0.36-0.97,0.48-1.49,0.31l-117.74-38.87C-132.35,336.34-132.6,336.16-132.79,335.91z M-155.25,214 + l24.98,119.83l116.08,38.32l91.1-81.51L51.93,170.81l-116.08-38.32L-155.25,214z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_11_" cx="399.7395" cy="1001.2162" r="586.1472" gradientTransform="matrix(-0.4685 0.8835 -0.8835 -0.4685 1033.4926 364.4432)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st13" d="M-145.98,332.29c-0.16-0.21-0.26-0.46-0.29-0.73l-15.58-131.16c-0.06-0.54,0.16-1.07,0.6-1.39 + l105.59-79.05c0.44-0.33,1.01-0.39,1.51-0.18l121.18,52.11c0.5,0.21,0.84,0.68,0.91,1.21l15.58,131.16 + c0.06,0.54-0.16,1.07-0.6,1.39l-105.6,79.05c-0.44,0.33-1.01,0.39-1.51,0.18l-121.18-52.11 + C-145.61,332.66-145.82,332.5-145.98,332.29z M-158.74,200.91l15.38,129.42l119.57,51.42l104.19-78L65.03,174.32L-54.54,122.9 + L-158.74,200.91z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_12_" cx="399.9989" cy="1001.2342" r="571.3634" gradientTransform="matrix(-0.4685 0.8835 -0.8835 -0.4685 1033.4926 364.4432)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st14" d="M-159.62,327.22c-0.18-0.25-0.29-0.54-0.3-0.86l-4.35-140.45c-0.02-0.54,0.26-1.05,0.72-1.34 + l119.24-73.99c0.46-0.29,1.04-0.3,1.52-0.05L80.79,177c0.48,0.26,0.78,0.75,0.8,1.29l4.35,140.45 + c0.02,0.54-0.26,1.05-0.72,1.34l-119.24,73.99c-0.46,0.29-1.04,0.3-1.52,0.05l-123.59-66.46 + C-159.32,327.54-159.49,327.4-159.62,327.22z M-161.22,186.69l4.3,138.7l122.05,65.63l117.75-73.06l-4.3-138.7l-122.05-65.63 + L-161.22,186.69z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_13_" cx="399.9317" cy="1001.2524" r="580.4457" gradientTransform="matrix(-0.4685 0.8835 -0.8835 -0.4685 1033.4926 364.4432)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st15" d="M-173.61,320.59c-0.21-0.28-0.32-0.63-0.3-0.99l8.41-149.25c0.03-0.54,0.35-1.02,0.83-1.27l133.23-67.36 + c0.48-0.24,1.06-0.21,1.52,0.09L94.89,183.7c0.45,0.29,0.71,0.81,0.68,1.35L87.17,334.3c-0.03,0.54-0.35,1.02-0.83,1.27 + l-133.23,67.35c-0.48,0.24-1.06,0.21-1.52-0.09l-124.82-81.89C-173.37,320.85-173.5,320.73-173.61,320.59z M-162.52,171.39 + l-8.31,147.5l123.35,80.93l131.66-66.56l8.31-147.5l-123.35-80.93L-162.52,171.39z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_14_" cx="399.8671" cy="1001.2721" r="589.5654" gradientTransform="matrix(-0.4685 0.8835 -0.8835 -0.4685 1033.4926 364.4432)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st16" d="M-187.82,312.26c-0.24-0.32-0.34-0.72-0.29-1.12l22.75-157.39c0.08-0.54,0.43-0.99,0.94-1.19 + l147.44-59.03c0.5-0.2,1.08-0.12,1.5,0.22l124.69,98.36c0.42,0.34,0.64,0.87,0.56,1.41L87.02,350.9 + c-0.08,0.54-0.43,0.99-0.94,1.19l-147.44,59.03c-0.5,0.2-1.08,0.12-1.5-0.22l-124.69-98.36 + C-187.65,312.46-187.74,312.37-187.82,312.26z M-162.48,155.05l-22.5,155.66l123.31,97.28L84.14,349.6l22.5-155.66 + L-16.67,96.67L-162.48,155.05z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_15_" cx="399.8042" cy="1001.2931" r="598.8314" gradientTransform="matrix(-0.4685 0.8835 -0.8835 -0.4685 1033.4926 364.4432)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st17" d="M-202.1,302.12c-0.27-0.36-0.37-0.81-0.26-1.26l38.7-164.69c0.12-0.53,0.52-0.95,1.04-1.11L-0.9,86.18 + c0.52-0.16,1.08-0.02,1.48,0.35l123.02,115.8c0.39,0.37,0.56,0.92,0.44,1.45l-38.7,164.69c-0.12,0.53-0.52,0.95-1.04,1.11 + l-161.72,48.89c-0.52,0.16-1.08,0.02-1.48-0.35l-123.02-115.8C-201.99,302.26-202.05,302.19-202.1,302.12z M-160.91,137.72 + l-38.3,162.99l121.75,114.6l160.04-48.38l38.3-162.99L-0.87,89.34L-160.91,137.72z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_16_" cx="399.742" cy="1001.2857" r="601.8417" gradientTransform="matrix(-0.4685 0.8835 -0.8835 -0.4685 1033.4926 364.4432)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st18" d="M-216.3,290.05c-0.29-0.39-0.38-0.91-0.23-1.38l56.28-170.95c0.17-0.51,0.6-0.9,1.13-1.01L16.81,79.89 + c0.53-0.11,1.08,0.07,1.44,0.48L137.89,214.5c0.35,0.4,0.48,0.97,0.31,1.48L81.91,386.93c-0.17,0.51-0.6,0.9-1.13,1.01 + l-175.92,36.82c-0.53,0.11-1.08-0.07-1.44-0.48l-119.64-134.13C-216.25,290.12-216.28,290.08-216.3,290.05z M-157.64,119.5 + l-55.74,169.28L-94.9,421.61L79.3,385.15l55.74-169.28L16.57,83.04L-157.64,119.5z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_17_" cx="399.6793" cy="1001.2004" r="586.6453" gradientTransform="matrix(-0.4685 0.8835 -0.8835 -0.4685 1033.4926 364.4432)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st19" d="M-115.88,429.18L-115.88,429.18l-114.36-153.24c-0.32-0.43-0.39-1.01-0.18-1.51l75.5-175.95 + c0.21-0.5,0.68-0.84,1.21-0.91L36.15,74.87c0.54-0.06,1.07,0.16,1.39,0.6l0,0L151.9,228.71c0.32,0.43,0.39,1.01,0.18,1.51 + l-75.5,175.95c-0.21,0.5-0.68,0.84-1.21,0.91l-189.85,22.71C-115.02,429.84-115.56,429.62-115.88,429.18z M-227.28,274.83 + l113.31,151.84l188.11-22.5l74.81-174.34L35.64,77.99l-188.11,22.5L-227.28,274.83z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_18_" cx="399.6165" cy="1001.1262" r="573.0804" gradientTransform="matrix(-0.4685 0.8835 -0.8835 -0.4685 1033.4926 364.4432)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st20" d="M-136.71,432.7c-0.03-0.04-0.05-0.07-0.07-0.11l-106.98-173.01c-0.28-0.46-0.3-1.04-0.05-1.52 + l96.33-179.47c0.26-0.48,0.75-0.78,1.29-0.8l203.31-6.46c0.54-0.02,1.06,0.28,1.34,0.72l106.98,173 + c0.29,0.46,0.3,1.04,0.05,1.52L69.15,426.05c-0.26,0.48-0.75,0.78-1.29,0.8l-203.31,6.46 + C-135.94,433.32-136.41,433.09-136.71,432.7z M-240.73,258.73l106.06,171.52l201.56-6.41l95.5-177.92L56.33,74.4l-201.56,6.4 + L-240.73,258.73z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_19_" cx="399.5492" cy="1001.145" r="582.0826" gradientTransform="matrix(-0.4685 0.8835 -0.8835 -0.4685 1033.4926 364.4432)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st21" d="M-159.11,434.5c-0.05-0.07-0.1-0.15-0.14-0.23L-256.58,241c-0.24-0.48-0.21-1.06,0.09-1.51l118.72-181.26 + c0.3-0.45,0.81-0.71,1.35-0.68l216.06,12c0.54,0.03,1.02,0.34,1.27,0.83l97.34,193.27c0.24,0.48,0.21,1.06-0.09,1.51 + L59.44,446.42c-0.3,0.45-0.81,0.71-1.35,0.68l-216.06-12C-158.43,435.08-158.84,434.85-159.11,434.5z M-253.48,240.42 + l96.55,191.7l214.31,11.91l117.76-179.8L78.6,72.53l-214.31-11.91L-253.48,240.42z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_20_" cx="399.4794" cy="1001.1631" r="591.1552" gradientTransform="matrix(-0.4685 0.8835 -0.8835 -0.4685 1033.4926 364.4432)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st22" d="M-183.01,434.33c-0.08-0.11-0.14-0.22-0.19-0.35l-85.24-213.85c-0.2-0.5-0.12-1.07,0.22-1.5 + l142.63-181.09c0.33-0.43,0.87-0.64,1.41-0.56l227.86,32.75c0.54,0.08,0.99,0.44,1.19,0.94l85.24,213.85 + c0.2,0.5,0.12,1.07-0.22,1.5L47.26,467.11c-0.33,0.43-0.87,0.64-1.41,0.56l-227.86-32.75 + C-182.41,434.86-182.77,434.64-183.01,434.33z M-265.3,219.82l84.59,212.22l226.13,32.5l141.55-179.72L102.38,72.61 + l-226.13-32.5L-265.3,219.82z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_21_" cx="399.4047" cy="1001.1808" r="600.4092" gradientTransform="matrix(-0.4685 0.8835 -0.8835 -0.4685 1033.4926 364.4432)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st23" d="M-208.33,431.93c-0.1-0.14-0.19-0.3-0.24-0.47l-70.5-234.53c-0.15-0.52-0.02-1.08,0.35-1.47 + l167.95-178.69c0.37-0.39,0.92-0.56,1.45-0.44l238.45,55.84c0.53,0.12,0.95,0.52,1.11,1.04l70.5,234.53 + c0.15,0.52,0.02,1.08-0.35,1.47L32.44,487.9c-0.37,0.39-0.92,0.56-1.45,0.44l-238.45-55.84 + C-207.81,432.41-208.12,432.21-208.33,431.93z M-275.91,196.89l70,232.86l236.74,55.44l166.75-177.42l-70-232.86l-236.74-55.44 + L-275.91,196.89z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_22_" cx="399.4257" cy="1001.1985" r="603.2529" gradientTransform="matrix(-0.4685 0.8835 -0.8835 -0.4685 1033.4926 364.4432)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st24" d="M-234.94,427.04c-0.13-0.17-0.22-0.38-0.27-0.6l-52.97-255.09c-0.11-0.53,0.07-1.08,0.47-1.44L-93.15-3.9 + c0.4-0.36,0.97-0.48,1.48-0.31l247.53,81.29c0.51,0.17,0.9,0.6,1.01,1.13l52.97,255.09c0.11,0.53-0.07,1.08-0.47,1.44 + L14.82,508.55c-0.4,0.36-0.97,0.48-1.48,0.31l-247.53-81.29C-234.49,427.47-234.75,427.28-234.94,427.04z M-285.03,171.59 + l52.62,253.37L13.45,505.7L206.7,333.06L154.08,79.69L-91.78-1.05L-285.03,171.59z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_23_" cx="399.7324" cy="1001.2162" r="586.6659" gradientTransform="matrix(-0.4685 0.8835 -0.8835 -0.4685 1033.4926 364.4432)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st25" d="M-262.68,419.39c-0.16-0.21-0.26-0.46-0.29-0.73l-32.49-275.25c-0.06-0.54,0.16-1.07,0.6-1.39 + l222.3-166.16c0.43-0.32,1.01-0.39,1.51-0.18l254.79,109.1c0.5,0.22,0.85,0.68,0.91,1.22l32.49,275.25 + c0.06,0.54-0.17,1.07-0.6,1.39L-5.77,528.79c-0.43,0.32-1.01,0.39-1.51,0.18l-254.79-109.1 + C-262.31,419.77-262.52,419.6-262.68,419.39z M-292.35,143.92l32.28,273.51L-6.89,525.84l220.9-165.11L181.73,87.22 + L-71.45-21.19L-292.35,143.92z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_24_" cx="400.0002" cy="1001.2341" r="571.807" gradientTransform="matrix(-0.4685 0.8835 -0.8835 -0.4685 1033.4926 364.4432)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st26" d="M-291.38,408.71c-0.18-0.25-0.29-0.55-0.3-0.86l-8.91-294.72c-0.02-0.54,0.26-1.05,0.72-1.33l251-155.48 + c0.46-0.29,1.04-0.3,1.52-0.05l259.9,139.24c0.48,0.26,0.78,0.75,0.8,1.29l8.91,294.72c0.02,0.54-0.26,1.05-0.72,1.34 + l-251,155.48c-0.46,0.29-1.04,0.3-1.52,0.05l-259.9-139.24C-291.08,409.03-291.25,408.89-291.38,408.71z M-297.53,113.91 + l8.86,292.97l258.36,138.41L219.2,390.74l-8.86-292.97L-48.02-40.64L-297.53,113.91z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_25_" cx="399.9325" cy="1001.2525" r="580.9087" gradientTransform="matrix(-0.4685 0.8835 -0.8835 -0.4685 1033.4926 364.4432)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st27" d="M-320.8,394.73c-0.21-0.28-0.32-0.63-0.3-0.99l17.88-313.17c0.03-0.54,0.35-1.02,0.83-1.27l280.42-141.5 + c0.48-0.24,1.06-0.21,1.51,0.08l262.53,171.66c0.45,0.3,0.72,0.81,0.68,1.36l-17.88,313.17c-0.03,0.54-0.35,1.02-0.83,1.27 + l-280.42,141.5c-0.48,0.24-1.06,0.21-1.51-0.08l-262.53-171.66C-320.56,395-320.69,394.87-320.8,394.73z M-300.23,81.62 + l-17.78,311.42l261.07,170.71L221.9,423.03l17.78-311.42L-21.38-59.09L-300.23,81.62z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_26_" cx="399.8675" cy="1001.2722" r="590.0502" gradientTransform="matrix(-0.4685 0.8835 -0.8835 -0.4685 1033.4926 364.4432)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st28" d="M-350.68,377.19c-0.24-0.32-0.34-0.72-0.29-1.13l47.99-330.23c0.08-0.54,0.44-0.99,0.94-1.19L8.26-79.31 + c0.5-0.2,1.07-0.12,1.5,0.22l262.31,206.27c0.42,0.33,0.64,0.87,0.56,1.41l-47.99,330.23c-0.08,0.54-0.44,0.99-0.94,1.19 + l-310.3,123.96c-0.5,0.2-1.07,0.12-1.5-0.22L-350.4,377.48C-350.51,377.39-350.6,377.3-350.68,377.19z M-300.1,47.14 + l-47.74,328.49l260.93,205.19l308.67-123.31l47.74-328.49L8.57-76.17L-300.1,47.14z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_27_" cx="399.8045" cy="1001.293" r="599.3499" gradientTransform="matrix(-0.4685 0.8835 -0.8835 -0.4685 1033.4926 364.4432)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st29" d="M-380.72,355.83c-0.27-0.36-0.37-0.81-0.26-1.26l81.48-345.52c0.12-0.53,0.52-0.95,1.04-1.1L41.87-94.65 + c0.52-0.16,1.08-0.02,1.48,0.35l258.87,242.92c0.4,0.37,0.56,0.93,0.44,1.45l-81.48,345.52c-0.12,0.53-0.52,0.95-1.04,1.1 + l-340.34,102.6c-0.52,0.16-1.08,0.02-1.47-0.35l-258.87-242.92C-380.61,355.97-380.67,355.9-380.72,355.83z M-296.76,10.6 + l-81.07,343.82l257.59,241.72l338.67-102.09l81.07-343.82L41.91-91.49L-296.76,10.6z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_28_" cx="399.7415" cy="1001.2851" r="602.0264" gradientTransform="matrix(-0.4685 0.8835 -0.8835 -0.4685 1033.4926 364.4432)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st30" d="M-410.58,330.41c-0.3-0.39-0.38-0.91-0.22-1.38L-292.43-29.6c0.17-0.51,0.6-0.9,1.13-1.01l370.2-77.18 + c0.53-0.11,1.08,0.07,1.44,0.47l251.82,281.45c0.36,0.4,0.48,0.97,0.31,1.49L214.09,534.25c-0.17,0.52-0.6,0.9-1.13,1.01 + l-370.2,77.18c-0.53,0.11-1.08-0.07-1.44-0.47L-410.5,330.51C-410.53,330.48-410.56,330.45-410.58,330.41z M-289.82-27.81 + l-117.83,356.96L-157,609.28l368.49-76.82l117.83-356.96L78.67-104.63L-289.82-27.81z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_29_" cx="399.6786" cy="1001.1985" r="586.3657" gradientTransform="matrix(-0.4685 0.8835 -0.8835 -0.4685 1033.4926 364.4432)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st31" d="M-439.87,300.7c-0.32-0.43-0.39-1.01-0.18-1.51l158.71-369.08c0.21-0.5,0.68-0.84,1.21-0.91l399.49-47.47 + c0.54-0.06,1.07,0.17,1.39,0.6l240.78,321.62l0,0c0.32,0.43,0.39,1.01,0.18,1.51L203,574.54c-0.21,0.5-0.68,0.84-1.21,0.91 + l-399.49,47.47c-0.54,0.06-1.07-0.16-1.39-0.6L-439.87,300.7L-439.87,300.7z M-278.9-67.89l-158.02,367.47l239.73,320.22 + l397.75-47.26l158.02-367.47L118.86-115.15L-278.9-67.89z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_30_" cx="399.6147" cy="1001.1259" r="572.6512" gradientTransform="matrix(-0.4685 0.8835 -0.8835 -0.4685 1033.4926 364.4432)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st32" d="M-242.8,629.67c-0.03-0.03-0.05-0.07-0.07-0.11l-225.35-363.17c-0.29-0.46-0.3-1.04-0.05-1.52 + l202.42-376.43c0.26-0.48,0.75-0.78,1.29-0.8l427.77-13.26c0.54-0.02,1.04,0.25,1.34,0.72l225.35,363.17 + c0.29,0.46,0.3,1.04,0.05,1.52L187.52,616.21c-0.26,0.48-0.75,0.78-1.29,0.8l-427.77,13.26 + C-242.04,630.29-242.51,630.06-242.8,629.67z M-465.19,265.53l224.43,361.68l426.02-13.21l201.59-374.89L162.43-122.56 + l-426.02,13.21L-465.19,265.53z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_31_" cx="399.5478" cy="1001.1451" r="581.7004" gradientTransform="matrix(-0.4685 0.8835 -0.8835 -0.4685 1033.4926 364.4432)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st33" d="M-289.81,633.4c-0.05-0.07-0.1-0.14-0.14-0.22L-495.09,227.4c-0.25-0.48-0.21-1.06,0.08-1.52 + l249.42-380.17c0.3-0.45,0.81-0.71,1.35-0.68l454.57,25.61c0.54,0.03,1.03,0.35,1.27,0.83l205.15,405.77 + c0.25,0.48,0.21,1.06-0.08,1.52L167.25,658.93c-0.3,0.45-0.81,0.71-1.35,0.68l-454.57-25.61 + C-289.13,633.98-289.54,633.76-289.81,633.4z M-491.99,226.82l204.36,404.21l452.83,25.51l248.46-378.7L209.3-126.38 + l-452.83-25.51L-491.99,226.82z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_32_" cx="399.478" cy="1001.1627" r="590.8183" gradientTransform="matrix(-0.4685 0.8835 -0.8835 -0.4685 1033.4926 364.4432)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st34" d="M-339.97,633c-0.08-0.1-0.14-0.22-0.19-0.34L-519.95,183.6c-0.2-0.5-0.12-1.08,0.22-1.5l299.58-379.77 + c0.34-0.43,0.87-0.64,1.41-0.56l479.38,69.29c0.54,0.08,0.99,0.44,1.19,0.94l179.79,449.05c0.2,0.5,0.12,1.08-0.22,1.5 + L141.82,702.32c-0.33,0.43-0.87,0.64-1.41,0.56l-479.38-69.29C-339.37,633.54-339.73,633.32-339.97,633z M-516.81,183.29 + l179.14,447.43l477.64,69.03l298.5-378.39L259.33-126.07l-477.64-69.03L-516.81,183.29z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_33_" cx="399.4037" cy="1001.1808" r="600.1022" gradientTransform="matrix(-0.4685 0.8835 -0.8835 -0.4685 1033.4926 364.4432)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st35" d="M-393.09,627.93c-0.1-0.14-0.19-0.3-0.24-0.47l-148.9-492.57c-0.16-0.52-0.03-1.08,0.35-1.48 + l352.71-374.7c0.37-0.39,0.92-0.56,1.45-0.44l501.61,117.87c0.53,0.13,0.95,0.52,1.1,1.04L463.9,369.76 + c0.16,0.52,0.02,1.08-0.35,1.48L110.84,745.94c-0.37,0.39-0.92,0.56-1.45,0.44L-392.22,628.5 + C-392.57,628.41-392.88,628.21-393.09,627.93z M-539.07,134.85l148.4,490.89l499.91,117.47l351.5-373.42l-148.4-490.89 + l-499.91-117.47L-539.07,134.85z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_34_" cx="399.4289" cy="1000.1567" r="603.407" gradientTransform="matrix(-0.4685 0.8835 -0.8835 -0.4685 1033.4926 364.4432)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st36" d="M-448.91,617.63c-0.13-0.17-0.22-0.38-0.27-0.6L-561.32,81.21c-0.11-0.53,0.07-1.08,0.47-1.44 + l408.53-364.39c0.4-0.36,0.97-0.48,1.48-0.31l520.67,171.43c0.51,0.17,0.9,0.6,1.01,1.13l112.14,535.82 + c0.11,0.53-0.07,1.08-0.47,1.44L73.98,789.28c-0.4,0.36-0.97,0.48-1.48,0.31l-520.67-171.43 + C-448.47,618.06-448.73,617.87-448.91,617.63z M-558.17,81.44l111.78,534.11L72.61,786.43l407.22-363.23L368.06-110.9 + l-519.01-170.88L-558.17,81.44z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_35_" cx="399.7365" cy="1000.1571" r="587.0645" gradientTransform="matrix(-0.4685 0.8835 -0.8835 -0.4685 1033.4926 364.4432)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st37" d="M-507.12,601.53c-0.16-0.21-0.26-0.46-0.29-0.73l-69.16-578.25c-0.07-0.54,0.16-1.07,0.6-1.4 + l466.74-348.3c0.43-0.32,1.01-0.39,1.5-0.18l535.9,229.95c0.5,0.21,0.84,0.68,0.91,1.21l69.16,578.25 + c0.07,0.54-0.16,1.07-0.6,1.4L30.9,831.79c-0.43,0.32-1.01,0.39-1.51,0.18l-535.9-229.95 + C-506.75,601.91-506.97,601.74-507.12,601.53z M-573.46,23.06l68.95,576.51L29.78,828.84l465.34-347.25L426.17-94.92 + l-534.29-229.26L-573.46,23.06z"/> + </g> + </g> + </g> + <g class="st4"> + <g class="st1"> + <g> + + <radialGradient id="SVGID_36_" cx="337.6981" cy="1457.1021" r="462.0302" gradientTransform="matrix(0.9373 0.3485 0.3485 -0.9373 -238.8258 1026.9969)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st38" d="M645.36-245.34l-5.54,61.98c-0.04,0.42-0.29,0.78-0.67,0.96l-56.35,26.2c-0.38,0.18-0.83,0.14-1.17-0.1 + l-50.81-35.78c-0.34-0.24-0.53-0.65-0.49-1.06l5.54-61.98c0.04-0.42,0.29-0.78,0.67-0.96l56.35-26.2 + c0.38-0.18,0.83-0.14,1.17,0.1l50.81,35.78c0.29,0.2,0.46,0.52,0.49,0.86C645.36-245.48,645.36-245.41,645.36-245.34z + M538.14-254.25l-5.42,60.63l49.7,35l55.12-25.63l5.42-60.63l-49.7-35L538.14-254.25z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_37_" cx="337.6503" cy="1457.0984" r="464.6926" gradientTransform="matrix(0.9373 0.3485 0.3485 -0.9373 -238.8258 1026.9969)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st39" d="M646.3-252.24l-0.13,66.2c0,0.42-0.22,0.8-0.59,1.01l-57.29,32.99c-0.36,0.21-0.81,0.21-1.17,0 + l-57.16-33.21c-0.36-0.21-0.58-0.59-0.58-1.02l0.13-66.2c0-0.42,0.22-0.81,0.59-1.01l57.29-32.99c0.36-0.21,0.81-0.21,1.17,0 + l57.16,33.21c0.33,0.19,0.55,0.54,0.58,0.91C646.3-252.3,646.3-252.27,646.3-252.24z M531.85-251.78l-0.13,64.84l55.99,32.53 + l56.12-32.31l0.13-64.84l-55.99-32.53L531.85-251.78z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_38_" cx="337.6024" cy="1457.0325" r="453.6635" gradientTransform="matrix(0.9373 0.3485 0.3485 -0.9373 -238.8258 1026.9969)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st40" d="M652.17-188.4l-57.66,40.27c-0.34,0.24-0.79,0.28-1.17,0.1l-63.66-29.89c-0.38-0.18-0.63-0.54-0.67-0.96 + l-6-70.17c-0.04-0.42,0.15-0.82,0.5-1.06l57.66-40.27c0.34-0.24,0.79-0.28,1.17-0.1l63.66,29.89c0.38,0.18,0.63,0.54,0.67,0.96 + l6,70.17C652.7-189.04,652.51-188.63,652.17-188.4z M581.95-288.07l-56.55,39.5l5.89,68.82l62.43,29.32l56.55-39.5l-5.89-68.82 + L581.95-288.07z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_39_" cx="337.5541" cy="1456.9749" r="443.5804" gradientTransform="matrix(0.9373 0.3485 0.3485 -0.9373 -238.8258 1026.9969)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st41" d="M658.83-192.57l-57.37,48.02c-0.32,0.27-0.76,0.35-1.16,0.2l-70.24-25.78c-0.39-0.14-0.68-0.49-0.75-0.9 + l-12.87-73.8c-0.07-0.4,0.08-0.83,0.4-1.1l57.37-48.03c0.32-0.27,0.76-0.35,1.16-0.2l70.24,25.78c0.39,0.14,0.68,0.49,0.75,0.9 + l12.87,73.8c0.01,0.03,0.01,0.07,0.01,0.1C659.28-193.19,659.12-192.82,658.83-192.57z M575.21-291.72l-56.33,47.16 + l12.63,72.47l68.96,25.31l56.33-47.16l-12.63-72.47L575.21-291.72z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_40_" cx="337.502" cy="1456.9894" r="450.4644" gradientTransform="matrix(0.9373 0.3485 0.3485 -0.9373 -238.8258 1026.9969)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st42" d="M665.49-197.61l-56.35,56.21c-0.3,0.3-0.73,0.41-1.13,0.3l-76.82-20.81c-0.4-0.11-0.72-0.43-0.83-0.83 + l-20.48-77.02c-0.11-0.41,0.01-0.84,0.3-1.13l56.35-56.21c0.3-0.3,0.73-0.41,1.13-0.3l76.82,20.81 + c0.4,0.11,0.72,0.43,0.83,0.83l20.48,77.02c0.02,0.07,0.03,0.13,0.04,0.2C665.86-198.2,665.74-197.86,665.49-197.61z + M567.71-294.96l-55.39,55.26l20.13,75.72l75.52,20.46l55.39-55.26l-20.13-75.72L567.71-294.96z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_41_" cx="337.4489" cy="1457.0034" r="457.4193" gradientTransform="matrix(0.9373 0.3485 0.3485 -0.9373 -238.8258 1026.9969)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st43" d="M672.08-203.57l-54.5,64.8c-0.27,0.32-0.69,0.47-1.1,0.4l-83.35-14.93c-0.41-0.07-0.75-0.36-0.9-0.76 + l-28.84-79.73c-0.14-0.4-0.06-0.83,0.21-1.15l54.5-64.8c0.27-0.32,0.69-0.47,1.1-0.4l83.35,14.93 + c0.41,0.07,0.75,0.36,0.89,0.76l28.84,79.73c0.04,0.1,0.06,0.2,0.07,0.3C672.38-204.12,672.29-203.81,672.08-203.57z + M559.46-297.71l-53.63,63.76l28.38,78.46l82.01,14.69l53.63-63.76l-28.38-78.46L559.46-297.71z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_42_" cx="337.3918" cy="1457.0168" r="464.5285" gradientTransform="matrix(0.9373 0.3485 0.3485 -0.9373 -238.8258 1026.9969)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st44" d="M678.51-210.48l-51.75,73.73c-0.24,0.34-0.65,0.53-1.07,0.49l-89.71-8.09c-0.42-0.04-0.78-0.29-0.96-0.67 + l-37.96-81.82c-0.18-0.38-0.14-0.82,0.1-1.17l51.75-73.73c0.24-0.34,0.65-0.53,1.07-0.49l89.71,8.09 + c0.42,0.04,0.78,0.29,0.96,0.67l37.96,81.82c0.06,0.13,0.09,0.26,0.1,0.39C678.74-210.99,678.67-210.71,678.51-210.48z + M550.45-299.84l-50.97,72.62l37.39,80.59l88.37,7.97l50.97-72.62l-37.39-80.59L550.45-299.84z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_43_" cx="337.4135" cy="1457.0303" r="466.2195" gradientTransform="matrix(0.9373 0.3485 0.3485 -0.9373 -238.8258 1026.9969)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st45" d="M684.68-218.4l-48.01,82.93c-0.21,0.36-0.6,0.59-1.02,0.58l-95.83-0.26c-0.42,0-0.8-0.23-1.01-0.59 + L491-218.93c-0.21-0.36-0.21-0.81,0-1.17l48.01-82.93c0.21-0.36,0.6-0.59,1.02-0.58l95.83,0.26c0.42,0,0.8,0.23,1.01,0.59 + l47.82,83.19c0.09,0.15,0.14,0.32,0.15,0.48C684.86-218.86,684.8-218.61,684.68-218.4z M540.7-301.27l-47.33,81.76l47.14,82.02 + l94.47,0.26l47.33-81.76l-47.14-82.02L540.7-301.27z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_44_" cx="337.6483" cy="1457.0438" r="453.0229" gradientTransform="matrix(0.9373 0.3485 0.3485 -0.9373 -238.8258 1026.9969)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st46" d="M690.48-227.36l-43.19,92.34c-0.18,0.38-0.54,0.64-0.96,0.67l-101.58,8.61c-0.42,0.04-0.82-0.15-1.06-0.5 + l-58.39-83.73c-0.24-0.34-0.28-0.79-0.1-1.17l43.19-92.34c0.18-0.38,0.54-0.64,0.96-0.67l101.58-8.61 + c0.42-0.04,0.82,0.15,1.06,0.5l58.39,83.73c0.12,0.17,0.19,0.37,0.21,0.57C690.61-227.76,690.57-227.55,690.48-227.36z + M530.23-301.87l-42.62,91.12l57.61,82.62l100.23-8.49l42.62-91.12l-57.62-82.62L530.23-301.87z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_45_" cx="337.849" cy="1457.0576" r="441.5854" gradientTransform="matrix(0.9373 0.3485 0.3485 -0.9373 -238.8258 1026.9969)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st47" d="M695.8-237.39l-37.21,101.87c-0.14,0.39-0.49,0.68-0.9,0.75l-106.85,18.54c-0.41,0.07-0.83-0.08-1.1-0.4 + l-69.64-83.32c-0.27-0.32-0.35-0.76-0.2-1.15l37.21-101.87c0.14-0.39,0.49-0.68,0.9-0.75l106.85-18.54 + c0.41-0.07,0.83,0.08,1.1,0.4l69.64,83.33c0.16,0.19,0.25,0.42,0.27,0.65C695.88-237.73,695.86-237.55,695.8-237.39z + M519.07-301.54l-36.75,100.6l68.78,82.29l105.52-18.31l36.75-100.6l-68.78-82.29L519.07-301.54z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_46_" cx="337.7971" cy="1457.0718" r="448.607" gradientTransform="matrix(0.9373 0.3485 0.3485 -0.9373 -238.8258 1026.9969)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st48" d="M700.5-248.51L670.5-137.1c-0.11,0.41-0.43,0.72-0.83,0.83l-111.52,29.56c-0.4,0.11-0.84-0.01-1.13-0.31 + l-81.53-81.85c-0.29-0.3-0.41-0.73-0.3-1.13l29.99-111.41c0.11-0.41,0.43-0.72,0.83-0.83l111.52-29.56 + c0.4-0.11,0.84,0.01,1.13,0.31l81.53,81.85c0.2,0.2,0.31,0.46,0.34,0.73C700.54-248.78,700.53-248.64,700.5-248.51z + M507.26-300.14l-29.64,110.1l80.58,80.89l110.21-29.21l29.64-110.1l-80.58-80.89L507.26-300.14z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_47_" cx="337.747" cy="1457.087" r="455.6576" gradientTransform="matrix(0.9373 0.3485 0.3485 -0.9373 -238.8258 1026.9969)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st49" d="M704.44-260.71l-21.45,120.85c-0.07,0.41-0.36,0.76-0.76,0.9L566.78-97.3c-0.39,0.14-0.83,0.06-1.15-0.21 + l-93.99-79.18c-0.32-0.27-0.47-0.69-0.4-1.1l21.45-120.85c0.07-0.41,0.36-0.76,0.76-0.9L608.9-341.2 + c0.39-0.14,0.83-0.06,1.15,0.21l93.99,79.18c0.24,0.2,0.39,0.49,0.41,0.8C704.47-260.92,704.46-260.81,704.44-260.71z + M494.88-297.56l-21.22,119.51l92.96,78.31l114.18-41.21l21.22-119.52l-92.96-78.31L494.88-297.56z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_48_" cx="337.6985" cy="1457.1031" r="462.8212" gradientTransform="matrix(0.9373 0.3485 0.3485 -0.9373 -238.8258 1026.9969)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st50" d="M707.5-274.01l-11.53,130.06c-0.04,0.42-0.29,0.78-0.68,0.96L576.8-88.12c-0.38,0.18-0.82,0.14-1.17-0.11 + l-106.96-75.2c-0.34-0.24-0.53-0.65-0.49-1.06l11.53-130.06c0.04-0.42,0.29-0.78,0.67-0.96l118.49-54.86 + c0.38-0.18,0.82-0.13,1.17,0.11L707-275.07c0.29,0.2,0.46,0.52,0.49,0.86C707.5-274.14,707.5-274.08,707.5-274.01z + M481.99-293.67l-11.41,128.71l105.85,74.42l117.26-54.29l11.41-128.71l-105.85-74.42L481.99-293.67z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_49_" cx="337.6504" cy="1457.0975" r="465.1501" gradientTransform="matrix(0.9373 0.3485 0.3485 -0.9373 -238.8258 1026.9969)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st51" d="M709.5-288.38l-0.16,138.91c0,0.42-0.22,0.81-0.59,1.02L588.26-79.33c-0.36,0.21-0.81,0.21-1.17,0 + l-120.32-69.78c-0.36-0.21-0.58-0.6-0.58-1.01l0.16-138.91c0-0.42,0.22-0.81,0.59-1.02l120.48-69.13 + c0.36-0.21,0.81-0.21,1.17,0l120.32,69.78c0.33,0.19,0.55,0.54,0.58,0.91C709.5-288.44,709.5-288.41,709.5-288.38z + M468.69-288.35l-0.16,137.55l119.15,69.1l119.31-68.45l0.16-137.55L588-356.8L468.69-288.35z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_50_" cx="337.6018" cy="1457.0316" r="453.4073" gradientTransform="matrix(0.9373 0.3485 0.3485 -0.9373 -238.8258 1026.9969)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st52" d="M722.5-155.49L601.22-71.06c-0.34,0.24-0.79,0.28-1.17,0.1l-133.99-62.79c-0.38-0.18-0.63-0.54-0.67-0.96 + l-12.71-147.23l0,0c-0.04-0.42,0.15-0.82,0.5-1.06l121.28-84.43c0.34-0.24,0.79-0.28,1.17-0.1l133.99,62.79 + c0.38,0.18,0.63,0.54,0.67,0.96l12.71,147.23v0C723.03-156.14,722.84-155.73,722.5-155.49z M575.25-365.13l-120.17,83.66 + l12.59,145.88l132.76,62.22l120.17-83.66l-12.59-145.88L575.25-365.13z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_51_" cx="337.5533" cy="1456.9741" r="442.9129" gradientTransform="matrix(0.9373 0.3485 0.3485 -0.9373 -238.8258 1026.9969)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st53" d="M736.41-164.23L615.71-63.5c-0.32,0.27-0.76,0.35-1.15,0.2l-147.82-54.13c-0.39-0.14-0.68-0.49-0.75-0.9 + l-27.12-154.85c-0.06-0.4,0.08-0.83,0.4-1.1L559.97-375c0.32-0.27,0.76-0.35,1.15-0.2l147.82,54.13 + c0.39,0.14,0.68,0.49,0.75,0.9l27.12,154.85c0.01,0.03,0.01,0.07,0.01,0.1C736.86-164.85,736.7-164.47,736.41-164.23z + M560.95-372.77L441.3-272.91l26.88,153.51l146.55,53.66l119.66-99.85L707.5-319.11L560.95-372.77z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_52_" cx="337.5013" cy="1456.9886" r="449.8725" gradientTransform="matrix(0.9373 0.3485 0.3485 -0.9373 -238.8258 1026.9969)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st54" d="M750.34-174.76L631.76-56.83c-0.3,0.3-0.73,0.41-1.13,0.3l-161.67-43.66c-0.4-0.11-0.72-0.42-0.83-0.83 + l-43.1-161.59c-0.11-0.41,0.01-0.84,0.31-1.13l118.58-117.94c0.3-0.3,0.73-0.41,1.13-0.3l161.67,43.66 + c0.4,0.11,0.72,0.42,0.83,0.83l43.1,161.59c0.02,0.07,0.03,0.14,0.03,0.2C750.71-175.35,750.59-175.01,750.34-174.76z + M545.09-379.53L427.48-262.55l42.75,160.28l160.37,43.3l117.62-116.98l-42.75-160.28L545.09-379.53z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_53_" cx="337.4474" cy="1457.0027" r="456.8867" gradientTransform="matrix(0.9373 0.3485 0.3485 -0.9373 -238.8258 1026.9969)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st55" d="M764.12-187.22L649.39-51.24c-0.27,0.32-0.69,0.47-1.1,0.4L472.9-82.12c-0.41-0.07-0.75-0.36-0.9-0.75 + l-60.66-167.26c-0.14-0.39-0.07-0.84,0.21-1.16l114.73-135.98c0.27-0.32,0.69-0.47,1.1-0.4l175.39,31.28 + c0.41,0.07,0.75,0.36,0.9,0.75l60.66,167.26c0.04,0.1,0.06,0.2,0.07,0.3C764.42-187.77,764.33-187.46,764.12-187.22z + M527.65-385.23L413.79-250.29l60.19,165.98l174.05,31.04l113.86-134.94L701.7-354.2L527.65-385.23z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_54_" cx="337.3896" cy="1457.0164" r="464.041" gradientTransform="matrix(0.9373 0.3485 0.3485 -0.9373 -238.8258 1026.9969)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st56" d="M777.57-201.69L668.59-46.95c-0.24,0.34-0.65,0.53-1.06,0.49L478.75-63.34 + c-0.42-0.04-0.78-0.29-0.96-0.67l-79.79-171.63c-0.18-0.38-0.14-0.83,0.1-1.17l108.98-154.75c0.24-0.34,0.65-0.53,1.06-0.49 + l188.77,16.88c0.42,0.04,0.78,0.29,0.96,0.67l79.79,171.63c0.06,0.13,0.09,0.26,0.11,0.39 + C777.8-202.2,777.73-201.92,777.57-201.69z M508.62-389.65l-108.2,153.64l79.22,170.4l187.42,16.76l108.2-153.64l-79.22-170.4 + L508.62-389.65z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_55_" cx="337.4058" cy="1457.03" r="466.2411" gradientTransform="matrix(0.9373 0.3485 0.3485 -0.9373 -238.8258 1026.9969)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st57" d="M790.47-218.27L689.33-44.17c-0.21,0.36-0.6,0.58-1.02,0.58l-201.62-0.39c-0.42,0-0.81-0.22-1.01-0.59 + L385.2-219.06c-0.21-0.36-0.21-0.81,0-1.17l101.15-174.1c0.21-0.36,0.6-0.58,1.02-0.58l201.62,0.39c0.42,0,0.81,0.22,1.01,0.59 + l100.47,174.49c0.09,0.15,0.14,0.32,0.15,0.48C790.65-218.72,790.6-218.48,790.47-218.27z M488.04-392.57L387.57-219.64 + l99.8,173.32l200.27,0.39l100.47-172.93l-99.8-173.32L488.04-392.57z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_56_" cx="337.6428" cy="1457.0438" r="453.4236" gradientTransform="matrix(0.9373 0.3485 0.3485 -0.9373 -238.8258 1026.9969)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st58" d="M802.61-237.03L711.56-43.14c-0.18,0.38-0.54,0.63-0.96,0.67L496.89-24.19c-0.42,0.04-0.82-0.15-1.06-0.5 + L373.17-200.3c-0.24-0.34-0.28-0.79-0.1-1.17l91.05-193.89c0.18-0.38,0.54-0.63,0.96-0.67l213.71-18.28 + c0.42-0.04,0.82,0.15,1.06,0.5L802.51-238.2c0.12,0.17,0.19,0.37,0.21,0.57C802.74-237.43,802.7-237.22,802.61-237.03z + M465.96-393.75l-90.48,192.66l121.88,174.5l212.36-18.16l90.48-192.66l-121.88-174.5L465.96-393.75z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_57_" cx="337.8499" cy="1457.0576" r="441.9284" gradientTransform="matrix(0.9373 0.3485 0.3485 -0.9373 -238.8258 1026.9969)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st59" d="M813.73-258.04L735.21-44.11c-0.14,0.39-0.49,0.68-0.9,0.75L509.52-4.17c-0.41,0.07-0.83-0.08-1.1-0.4 + L362.15-179.31c-0.27-0.32-0.35-0.76-0.2-1.16l78.52-213.92c0.14-0.39,0.49-0.68,0.9-0.75l224.79-39.19 + c0.41-0.07,0.83,0.08,1.1,0.4l146.27,174.73c0.16,0.19,0.25,0.42,0.27,0.65C813.81-258.37,813.79-258.2,813.73-258.04z + M442.44-392.95L364.38-180.3L509.79-6.6l223.46-38.96l78.05-212.65l-145.4-173.7L442.44-392.95z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_58_" cx="337.7976" cy="1457.0718" r="448.9649" gradientTransform="matrix(0.9373 0.3485 0.3485 -0.9373 -238.8258 1026.9969)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st60" d="M823.57-281.32L760.19-47.33c-0.11,0.4-0.43,0.72-0.83,0.83l-234.6,62.37c-0.4,0.11-0.84-0.01-1.13-0.3 + L352.41-156.05c-0.3-0.3-0.41-0.73-0.3-1.13l63.38-233.99c0.11-0.4,0.43-0.72,0.83-0.83l234.6-62.37 + c0.4-0.11,0.84,0.01,1.13,0.3l171.22,171.62c0.2,0.2,0.31,0.46,0.34,0.73C823.62-281.59,823.6-281.45,823.57-281.32z + M417.58-389.91l-63.02,232.68L524.82,13.43L758.1-48.59l63.02-232.68L650.87-451.93L417.58-389.91z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_59_" cx="337.7474" cy="1457.087" r="456.0324" gradientTransform="matrix(0.9373 0.3485 0.3485 -0.9373 -238.8258 1026.9969)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st61" d="M831.83-306.9L786.36-53.04c-0.07,0.41-0.36,0.75-0.76,0.9L542.77,35.71c-0.39,0.14-0.83,0.06-1.15-0.2 + l-197.37-166c-0.32-0.27-0.47-0.69-0.4-1.1l45.47-253.86c0.07-0.41,0.36-0.75,0.76-0.89l242.84-87.85 + c0.39-0.14,0.83-0.06,1.15,0.2l197.37,166c0.24,0.2,0.39,0.49,0.41,0.8C831.85-307.1,831.85-307,831.83-306.9z M391.51-384.38 + l-45.23,252.52L542.61,33.27l241.57-87.39l45.23-252.52L633.08-471.77L391.51-384.38z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_60_" cx="337.6987" cy="1457.1031" r="463.2221" gradientTransform="matrix(0.9373 0.3485 0.3485 -0.9373 -238.8258 1026.9969)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st62" d="M838.22-334.77L813.56-61.52c-0.04,0.42-0.29,0.78-0.67,0.96L563.68,55.06c-0.38,0.18-0.82,0.14-1.17-0.1 + L337.96-102.67c-0.34-0.24-0.53-0.65-0.49-1.07l24.65-273.25c0.04-0.42,0.29-0.78,0.67-0.96L612-493.56 + c0.38-0.18,0.82-0.14,1.17,0.1l224.56,157.63c0.29,0.2,0.47,0.52,0.49,0.86C838.22-334.9,838.22-334.83,838.22-334.77z + M364.39-376.1l-24.53,271.9L563.31,52.65L811.29-62.4l24.53-271.9L612.37-491.15L364.39-376.1z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_61_" cx="337.6499" cy="1457.097" r="465.293" gradientTransform="matrix(0.9373 0.3485 0.3485 -0.9373 -238.8258 1026.9969)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st63" d="M842.4-364.89l-0.79,291.87c0,0.42-0.23,0.81-0.59,1.01L587.63,73.63c-0.36,0.21-0.81,0.21-1.17,0 + L333.87-72.6c-0.36-0.21-0.58-0.6-0.58-1.02l0.79-291.87c0-0.42,0.23-0.81,0.59-1.01l253.39-145.64c0.36-0.21,0.81-0.21,1.17,0 + l252.6,146.23c0.33,0.19,0.55,0.53,0.58,0.91C842.4-364.95,842.4-364.92,842.4-364.89z M336.42-364.8l-0.79,290.51 + L587.05,71.26L839.27-73.7l0.79-290.51L588.63-509.77L336.42-364.8z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_62_" cx="337.6013" cy="1457.0302" r="453.1913" gradientTransform="matrix(0.9373 0.3485 0.3485 -0.9373 -238.8258 1026.9969)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st64" d="M844.04-397.19L870.26-87.8c0.04,0.42-0.15,0.82-0.5,1.06L614.73,91.1c-0.34,0.24-0.79,0.28-1.17,0.1 + L332.31-40.35c-0.38-0.18-0.64-0.54-0.67-0.96l0,0L305.42-350.7c-0.03-0.42,0.15-0.82,0.5-1.06L560.95-529.6 + c0.34-0.24,0.79-0.28,1.17-0.1l281.25,131.55C843.75-397.97,844-397.61,844.04-397.19L844.04-397.19z M307.81-350.23 + l26.11,308.04L613.95,88.79L867.87-88.27l-26.11-308.04L561.73-527.29L307.81-350.23z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_63_" cx="337.5519" cy="1456.974" r="442.5811" gradientTransform="matrix(0.9373 0.3485 0.3485 -0.9373 -238.8258 1026.9969)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st65" d="M898.86-105.01L645.07,107.1c-0.32,0.27-0.76,0.35-1.15,0.2L333.65-6.03c-0.39-0.14-0.68-0.49-0.75-0.9 + l-56.48-325.45c-0.07-0.42,0.08-0.83,0.4-1.1L530.61-545.6c0.32-0.27,0.76-0.35,1.15-0.2l310.27,113.34 + c0.39,0.14,0.68,0.49,0.75,0.9l56.48,325.45c0.01,0.03,0.01,0.07,0.01,0.1C899.31-105.64,899.15-105.26,898.86-105.01z + M531.6-543.37L278.85-332.12L335.09-8l308.99,112.87l252.75-211.25L840.59-430.5L531.6-543.37z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_64_" cx="337.5002" cy="1456.9888" r="449.577" gradientTransform="matrix(0.9373 0.3485 0.3485 -0.9373 -238.8258 1026.9969)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st66" d="M927.99-127.08L678.7,121.25c-0.3,0.3-0.73,0.41-1.13,0.3L338.24,30.21c-0.4-0.11-0.72-0.43-0.83-0.83 + L247.39-310.3c-0.11-0.4,0.01-0.84,0.31-1.13l249.29-248.33c0.3-0.3,0.73-0.41,1.13-0.3l339.32,91.35 + c0.41,0.11,0.72,0.43,0.83,0.83l90.03,339.67c0.02,0.07,0.03,0.13,0.04,0.2C928.36-127.66,928.24-127.32,927.99-127.08z + M498.16-557.62L249.82-310.24l89.68,338.36l338.01,90.99l248.33-247.37l-89.68-338.36L498.16-557.62z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_65_" cx="337.4462" cy="1457.0023" r="456.6262" gradientTransform="matrix(0.9373 0.3485 0.3485 -0.9373 -238.8258 1026.9969)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st67" d="M956.81-153.15L715.64,133.14c-0.27,0.32-0.69,0.47-1.1,0.4L346.46,68.19c-0.41-0.07-0.75-0.36-0.9-0.76 + L218.66-284.2c-0.14-0.39-0.06-0.83,0.21-1.15l241.17-286.29c0.27-0.32,0.69-0.47,1.1-0.4l368.08,65.34 + c0.41,0.07,0.76,0.36,0.9,0.76L957.02-154.3c0.03,0.1,0.06,0.2,0.07,0.3C957.11-153.7,957.02-153.39,956.81-153.15z + M461.4-569.61L221.1-284.36L347.54,66l366.74,65.11l240.3-285.25L828.14-504.5L461.4-569.61z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_66_" cx="337.3888" cy="1457.0165" r="463.8037" gradientTransform="matrix(0.9373 0.3485 0.3485 -0.9373 -238.8258 1026.9969)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st68" d="M984.94-183.45L755.89,142.31c-0.24,0.34-0.65,0.53-1.06,0.49l-396.14-35.12 + c-0.42-0.04-0.78-0.29-0.96-0.68l-167.1-360.89c-0.18-0.38-0.14-0.82,0.1-1.17l229.04-325.76c0.24-0.34,0.65-0.53,1.06-0.49 + l396.14,35.12c0.42,0.04,0.78,0.29,0.96,0.68l167.1,360.89c0.06,0.13,0.09,0.26,0.1,0.39 + C985.17-183.96,985.1-183.68,984.94-183.45z M421.32-578.91L193.05-254.25l166.53,359.66l394.79,35l228.27-324.66 + L816.11-543.91L421.32-578.91z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_67_" cx="337.4082" cy="1456.225" r="466.3601" gradientTransform="matrix(0.9373 0.3485 0.3485 -0.9373 -238.8258 1026.9969)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st69" d="M1011.93-218.17L799.4,148.31c-0.21,0.36-0.6,0.59-1.02,0.58l-423.08-0.49c-0.42,0-0.81-0.23-1.02-0.59 + L163.75-219.16c-0.21-0.36-0.21-0.81,0-1.17l212.53-366.48c0.21-0.36,0.6-0.59,1.02-0.58l423.08,0.49 + c0.42,0,0.81,0.23,1.02,0.59l210.55,366.97c0.09,0.15,0.14,0.32,0.15,0.48C1012.11-218.62,1012.06-218.38,1011.93-218.17z + M377.97-585.05L166.12-219.74l209.87,365.79l421.72,0.49l211.85-365.3l-209.87-365.8L377.97-585.05z"/> + </g> + </g> + <g class="st1"> + <g> + + <radialGradient id="SVGID_68_" cx="337.646" cy="1456.2252" r="453.7316" gradientTransform="matrix(0.9373 0.3485 0.3485 -0.9373 -238.8258 1026.9969)" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st70" d="M1037.32-257.46L846.06,150.63c-0.18,0.38-0.54,0.63-0.96,0.67l-448.42,38.71 + c-0.42,0.04-0.82-0.15-1.06-0.5L138.46-179.88c-0.24-0.34-0.28-0.79-0.1-1.17l191.26-408.09c0.18-0.38,0.54-0.63,0.96-0.67 + L779-628.51c0.42-0.04,0.82,0.15,1.06,0.5l257.16,369.38c0.12,0.17,0.19,0.37,0.21,0.57 + C1037.44-257.85,1037.41-257.65,1037.32-257.46z M331.46-587.53L140.77-180.66l256.38,368.27l447.07-38.59l190.68-406.86 + L778.52-626.11L331.46-587.53z"/> + </g> + </g> + </g> + <g class="st71"> + <g class="st1"> + <g> + <radialGradient id="SVGID_69_" cx="1055.0486" cy="656.6544" r="436.548" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st72" d="M1117.49,663.34l-35.38,47.53c-0.24,0.32-0.63,0.49-1.02,0.44l-58.78-6.82c-0.4-0.05-0.74-0.3-0.9-0.67 + L998,649.48c-0.16-0.37-0.11-0.79,0.13-1.11l35.38-47.53c0.24-0.32,0.63-0.49,1.02-0.44l58.78,6.82c0.4,0.05,0.74,0.3,0.9,0.67 + l23.4,54.35c0.13,0.31,0.12,0.65-0.03,0.94C1117.56,663.24,1117.52,663.29,1117.49,663.34z M1034.92,602.69l-34.61,46.5 + l22.89,53.17l57.5,6.67l34.61-46.5l-22.89-53.17L1034.92,602.69z"/> + </g> + </g> + <g class="st1"> + <g> + <radialGradient id="SVGID_70_" cx="1055.0363" cy="656.6398" r="434.0677" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st73" d="M1121.69,658.22l-33.09,53.65c-0.21,0.34-0.58,0.54-0.98,0.53l-62.93-1.78c-0.4-0.01-0.76-0.24-0.95-0.59 + l-29.84-55.43c-0.19-0.35-0.18-0.77,0.03-1.11l33.09-53.65c0.21-0.34,0.58-0.54,0.98-0.53l62.93,1.78 + c0.4,0.01,0.76,0.23,0.95,0.59l29.84,55.43c0.17,0.32,0.18,0.71,0.01,1.03C1121.72,658.17,1121.7,658.19,1121.69,658.22z + M1028.58,601.56l-32.41,52.56l29.23,54.29l61.64,1.74l32.41-52.56l-29.23-54.3L1028.58,601.56z"/> + </g> + </g> + <g class="st1"> + <g> + <radialGradient id="SVGID_71_" cx="1055.0247" cy="656.6194" r="430.313" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st74" d="M1094.64,712.95l-66.85,3.95c-0.4,0.02-0.78-0.17-1-0.5l-36.76-55.98c-0.22-0.33-0.24-0.76-0.06-1.11 + l30.09-59.93c0.18-0.36,0.53-0.59,0.93-0.61l66.85-3.95c0.4-0.02,0.78,0.17,1,0.5l36.76,55.98c0.22,0.33,0.24,0.76,0.07,1.11 + l-30.09,59.93C1095.39,712.69,1095.04,712.93,1094.64,712.95z M1087.32,597.08l-65.57,3.88l-29.51,58.78l36.05,54.9l65.57-3.88 + l29.51-58.78L1087.32,597.08z"/> + </g> + </g> + <g class="st1"> + <g> + <radialGradient id="SVGID_72_" cx="1055.012" cy="656.6231" r="432.0921" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st75" d="M1102.12,712.88l-70.48,10.39c-0.4,0.06-0.79-0.1-1.04-0.41l-44.15-55.92c-0.25-0.31-0.31-0.73-0.16-1.1 + l26.33-66.3c0.15-0.36,0.48-0.63,0.87-0.69l70.48-10.39c0.4-0.06,0.79,0.1,1.04,0.41l44.15,55.92c0.25,0.31,0.31,0.73,0.16,1.1 + l-26.33,66.3c-0.01,0.03-0.03,0.06-0.04,0.09C1102.8,712.6,1102.48,712.83,1102.12,712.88z M1083.67,590.76l-69.21,10.2 + l-25.86,65.1l43.35,54.9l69.21-10.2l25.86-65.1L1083.67,590.76z"/> + </g> + </g> + <g class="st1"> + <g> + <radialGradient id="SVGID_73_" cx="1055.0001" cy="656.6271" r="433.8598" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st76" d="M1110.04,712.11l-73.73,17.54c-0.39,0.09-0.8-0.03-1.07-0.32l-51.97-55.16c-0.27-0.29-0.37-0.7-0.26-1.09 + l21.76-72.71c0.12-0.39,0.42-0.67,0.81-0.77l73.73-17.54c0.39-0.09,0.8,0.03,1.07,0.32l51.97,55.16 + c0.27,0.29,0.37,0.7,0.26,1.09l-21.76,72.71c-0.02,0.06-0.04,0.12-0.07,0.18C1110.64,711.82,1110.37,712.03,1110.04,712.11z + M1079.2,584.39l-72.48,17.24l-21.39,71.47l51.09,54.23l72.48-17.24l21.39-71.47L1079.2,584.39z"/> + </g> + </g> + <g class="st1"> + <g> + <radialGradient id="SVGID_74_" cx="1054.9861" cy="656.631" r="435.6512" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st77" d="M1118.36,710.56l-76.52,25.43c-0.38,0.13-0.8,0.04-1.09-0.23l-60.2-53.64c-0.3-0.27-0.43-0.67-0.35-1.06 + l16.32-79.07c0.08-0.39,0.36-0.71,0.74-0.83l76.51-25.43c0.38-0.13,0.8-0.04,1.09,0.23l60.2,53.64 + c0.3,0.26,0.43,0.67,0.35,1.06l-16.32,79.07c-0.02,0.1-0.05,0.19-0.1,0.28C1118.87,710.26,1118.64,710.47,1118.36,710.56z + M1073.87,578.05l-75.29,25.02l-16.06,77.81l59.23,52.79l75.29-25.02l16.06-77.81L1073.87,578.05z"/> + </g> + </g> + <g class="st1"> + <g> + <radialGradient id="SVGID_75_" cx="1054.972" cy="656.6344" r="437.4811" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st78" d="M1127.02,708.15l-78.73,34.04c-0.37,0.16-0.79,0.11-1.11-0.13l-68.77-51.27 + c-0.32-0.24-0.49-0.63-0.44-1.02l9.96-85.31c0.05-0.39,0.3-0.74,0.67-0.89l78.73-34.04c0.37-0.16,0.79-0.11,1.11,0.13 + l68.77,51.27c0.32,0.24,0.49,0.63,0.44,1.02l-9.96,85.31c-0.02,0.13-0.05,0.26-0.11,0.37 + C1127.46,707.86,1127.27,708.05,1127.02,708.15z M1067.62,571.83l-77.55,33.53l-9.81,84.03l67.73,50.5l77.55-33.53l9.81-84.03 + L1067.62,571.83z"/> + </g> + </g> + <g class="st1"> + <g> + <radialGradient id="SVGID_76_" cx="1055.0315" cy="656.6382" r="434.1112" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st79" d="M1135.97,704.8l-80.28,43.38c-0.35,0.19-0.78,0.18-1.12-0.03l-77.63-47.96 + c-0.34-0.21-0.54-0.58-0.53-0.98l2.65-91.34c0.01-0.4,0.23-0.76,0.59-0.95l80.28-43.38c0.35-0.19,0.78-0.18,1.12,0.03 + l77.63,47.96c0.34,0.21,0.54,0.58,0.53,0.98l-2.65,91.33c0,0.17-0.05,0.33-0.12,0.47 + C1136.34,704.52,1136.18,704.69,1135.97,704.8z M1060.42,565.81l-79.15,42.76l-2.61,90.05l76.54,47.28l79.15-42.76l2.61-90.05 + L1060.42,565.81z"/> + </g> + </g> + <g class="st1"> + <g> + <radialGradient id="SVGID_77_" cx="1055.1066" cy="656.6415" r="429.5837" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st80" d="M1145.15,700.42l-81.06,53.41c-0.33,0.22-0.76,0.24-1.12,0.07l-86.72-43.63 + c-0.36-0.18-0.59-0.53-0.61-0.93l-5.66-97.04c-0.02-0.4,0.17-0.78,0.5-1l81.06-53.41c0.33-0.22,0.76-0.25,1.12-0.07 + l86.72,43.63c0.36,0.18,0.59,0.53,0.61,0.93l5.66,97.04c0.01,0.2-0.03,0.39-0.12,0.57 + C1145.44,700.16,1145.31,700.31,1145.15,700.42z M1052.22,560.11l-79.98,52.71l5.59,95.75l85.57,43.05l79.98-52.71l-5.59-95.75 + L1052.22,560.11z"/> + </g> + </g> + <g class="st1"> + <g> + <radialGradient id="SVGID_78_" cx="1055.092" cy="656.6451" r="431.4136" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st81" d="M1154.45,694.93l-80.95,64.12c-0.31,0.25-0.73,0.31-1.11,0.16l-95.95-38.19 + c-0.37-0.15-0.63-0.48-0.69-0.88l-15-102.32c-0.06-0.39,0.1-0.79,0.41-1.04l80.95-64.12c0.31-0.25,0.73-0.31,1.11-0.16 + l95.95,38.19c0.37,0.15,0.63,0.48,0.69,0.88l15,102.32c0.03,0.23-0.01,0.46-0.11,0.66 + C1154.69,694.7,1154.58,694.83,1154.45,694.93z M1043,554.82l-79.94,63.32l14.81,101.04l94.75,37.72l79.94-63.32l-14.81-101.04 + L1043,554.82z"/> + </g> + </g> + <g class="st1"> + <g> + <radialGradient id="SVGID_79_" cx="1055.079" cy="656.6488" r="433.2289" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st82" d="M1163.8,688.25l-79.85,75.46c-0.29,0.27-0.7,0.37-1.09,0.26l-105.23-31.58 + c-0.38-0.12-0.67-0.42-0.76-0.81L951.5,624.54c-0.09-0.39,0.03-0.8,0.32-1.07l79.85-75.46c0.29-0.28,0.71-0.37,1.09-0.26 + l105.23,31.58c0.38,0.11,0.67,0.42,0.77,0.81l25.38,107.04c0.06,0.26,0.03,0.53-0.09,0.76 + C1163.98,688.05,1163.9,688.16,1163.8,688.25z M1032.73,550.07l-78.91,74.58l25.08,105.79l103.99,31.21l78.91-74.58 + l-25.08-105.79L1032.73,550.07z"/> + </g> + </g> + <g class="st1"> + <g> + <radialGradient id="SVGID_80_" cx="1055.0656" cy="656.6525" r="435.0452" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st83" d="M1173.09,680.31l-77.62,87.38c-0.27,0.3-0.67,0.43-1.06,0.35l-114.45-23.71 + c-0.39-0.08-0.71-0.36-0.83-0.74L942.31,632.5c-0.13-0.38-0.04-0.79,0.22-1.09l77.62-87.38c0.27-0.3,0.67-0.43,1.06-0.35 + l114.45,23.71c0.39,0.08,0.71,0.36,0.83,0.74l36.82,111.09c0.09,0.28,0.07,0.59-0.06,0.85 + C1173.21,680.16,1173.16,680.24,1173.09,680.31z M1021.39,545.99l-76.77,86.41l36.42,109.87l113.18,23.45l76.77-86.41 + l-36.42-109.87L1021.39,545.99z"/> + </g> + </g> + <g class="st1"> + <g> + <radialGradient id="SVGID_81_" cx="1055.053" cy="656.6569" r="436.8889" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st84" d="M1182.19,671.04l-74.16,99.8c-0.24,0.32-0.63,0.49-1.03,0.44l-123.49-14.52c-0.4-0.05-0.74-0.3-0.89-0.67 + L933.3,641.78c-0.16-0.37-0.11-0.79,0.13-1.11l74.16-99.8c0.24-0.32,0.63-0.49,1.03-0.44l123.49,14.52 + c0.4,0.05,0.74,0.3,0.89,0.67l49.32,114.32c0.13,0.31,0.12,0.65-0.03,0.94C1182.26,670.94,1182.23,670.99,1182.19,671.04z + M1009,542.73l-73.39,98.76l48.81,113.13l122.2,14.37l73.39-98.76L1131.2,557.1L1009,542.73z"/> + </g> + </g> + <g class="st1"> + <g> + <radialGradient id="SVGID_82_" cx="1055.0416" cy="656.6408" r="434.071" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st85" d="M1190.97,660.38l-69.34,112.64c-0.21,0.34-0.58,0.54-0.98,0.53l-132.21-3.94 + c-0.4-0.01-0.76-0.24-0.95-0.59l-62.87-116.58c-0.19-0.35-0.17-0.78,0.03-1.11l69.34-112.64c0.21-0.34,0.58-0.54,0.98-0.53 + l132.21,3.94c0.4,0.01,0.76,0.23,0.95,0.59l62.87,116.58c0.17,0.32,0.18,0.71,0.02,1.03 + C1191.01,660.33,1190.99,660.35,1190.97,660.38z M995.55,540.42l-68.67,111.54l62.26,115.44l130.92,3.9l68.67-111.54 + l-62.26-115.44L995.55,540.42z"/> + </g> + </g> + <g class="st1"> + <g> + <radialGradient id="SVGID_83_" cx="1055.028" cy="656.619" r="429.8096" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st86" d="M1135.31,774.69l-140.48,8.09c-0.4,0.02-0.78-0.17-1-0.5l-77.44-117.72c-0.22-0.33-0.24-0.76-0.07-1.11 + l63.04-125.8l0,0c0.18-0.36,0.53-0.59,0.93-0.61l140.48-8.09c0.4-0.02,0.78,0.17,1,0.5l77.44,117.72 + c0.22,0.33,0.24,0.76,0.07,1.11l-63.04,125.8l0,0C1136.07,774.43,1135.71,774.67,1135.31,774.69z M1120.28,531.21l-139.2,8.01 + l-62.47,124.65l76.73,116.64l139.2-8.01l62.47-124.65L1120.28,531.21z"/> + </g> + </g> + <g class="st1"> + <g> + <radialGradient id="SVGID_84_" cx="1055.0133" cy="656.6229" r="431.6224" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st87" d="M1150.95,774.54l-148.13,21.6c-0.4,0.06-0.79-0.1-1.04-0.41L908.8,678.15c-0.25-0.31-0.31-0.73-0.16-1.1 + l55.15-139.17c0.15-0.36,0.48-0.64,0.88-0.69l148.13-21.6c0.4-0.06,0.79,0.1,1.04,0.41l92.98,117.57 + c0.25,0.31,0.31,0.73,0.16,1.1l-55.15,139.17c-0.01,0.03-0.03,0.06-0.04,0.09C1151.63,774.26,1151.32,774.48,1150.95,774.54z + M1112.48,517.89L965.63,539.3l-54.67,137.97l92.19,116.56l146.86-21.41l54.67-137.97L1112.48,517.89z"/> + </g> + </g> + <g class="st1"> + <g> + <radialGradient id="SVGID_85_" cx="1055.0021" cy="656.6262" r="433.4181" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st88" d="M1167.51,772.93l-154.98,36.62c-0.39,0.09-0.79-0.03-1.07-0.32L902.01,693.25 + c-0.27-0.29-0.37-0.7-0.26-1.08l45.54-152.6c0.12-0.39,0.42-0.68,0.81-0.77l154.98-36.62c0.39-0.09,0.79,0.03,1.07,0.32 + l109.44,115.98c0.27,0.29,0.37,0.7,0.26,1.09l-45.54,152.6c-0.02,0.06-0.04,0.12-0.07,0.18 + C1168.1,772.63,1167.84,772.85,1167.51,772.93z M1102.98,504.49l-153.73,36.33l-45.17,151.37l108.56,115.04l153.73-36.33 + l45.17-151.37L1102.98,504.49z"/> + </g> + </g> + <g class="st1"> + <g> + <radialGradient id="SVGID_86_" cx="1054.9877" cy="656.6298" r="435.2233" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st89" d="M1184.9,769.69l-160.85,53.18c-0.38,0.13-0.79,0.04-1.09-0.23L896.21,709.87 + c-0.3-0.27-0.43-0.67-0.35-1.06l34.11-165.95c0.08-0.39,0.36-0.71,0.74-0.84l160.85-53.18c0.38-0.12,0.79-0.04,1.09,0.23 + l126.74,112.77c0.3,0.26,0.43,0.67,0.35,1.06l-34.11,165.95c-0.02,0.1-0.05,0.19-0.1,0.28 + C1185.42,769.39,1185.19,769.59,1184.9,769.69z M1091.66,491.17l-159.63,52.78l-33.86,164.68l125.78,111.91l159.63-52.78 + l33.86-164.69L1091.66,491.17z"/> + </g> + </g> + <g class="st1"> + <g> + <radialGradient id="SVGID_87_" cx="1054.9724" cy="656.6335" r="437.0601" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st90" d="M1203.02,764.64l-165.54,71.27c-0.37,0.16-0.79,0.11-1.11-0.13L891.6,728.03 + c-0.32-0.24-0.49-0.63-0.44-1.02l20.77-179.03c0.05-0.4,0.3-0.74,0.67-0.9l165.54-71.27c0.37-0.16,0.79-0.11,1.11,0.13 + l144.77,107.76c0.32,0.24,0.49,0.63,0.44,1.02l-20.77,179.03c-0.02,0.13-0.05,0.26-0.11,0.37 + C1203.46,764.35,1203.27,764.54,1203.02,764.64z M1078.43,478.11l-164.35,70.76l-20.62,177.75l143.74,106.99l164.36-70.76 + l20.62-177.75L1078.43,478.11z"/> + </g> + </g> + <g class="st1"> + <g> + <radialGradient id="SVGID_88_" cx="1055.0266" cy="656.6373" r="434.1281" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st91" d="M1221.76,757.62l-168.83,90.88c-0.35,0.19-0.78,0.18-1.12-0.03L888.4,747.69 + c-0.34-0.21-0.54-0.58-0.53-0.98l5.41-191.66c0.01-0.4,0.24-0.76,0.59-0.95l168.83-90.88c0.35-0.19,0.78-0.18,1.12,0.03 + l163.42,100.77c0.34,0.21,0.54,0.58,0.53,0.98l-5.41,191.66c-0.01,0.17-0.05,0.33-0.12,0.47 + C1222.12,757.34,1221.96,757.51,1221.76,757.62z M1063.18,465.49l-167.69,90.27l-5.37,190.37l162.32,100.1l167.69-90.27 + l5.37-190.37L1063.18,465.49z"/> + </g> + </g> + <g class="st1"> + <g> + <radialGradient id="SVGID_89_" cx="1055.0992" cy="656.6403" r="429.8668" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st92" d="M1240.95,748.44l-170.49,111.97c-0.33,0.22-0.76,0.24-1.11,0.06l-182.53-91.65 + c-0.36-0.18-0.59-0.53-0.61-0.93l-12.04-203.62c-0.02-0.4,0.17-0.78,0.5-1l170.49-111.97c0.33-0.22,0.76-0.24,1.11-0.06 + l182.53,91.65c0.36,0.18,0.59,0.53,0.61,0.93l12.04,203.62c0.01,0.2-0.03,0.39-0.12,0.57 + C1241.25,748.18,1241.12,748.33,1240.95,748.44z M1045.85,453.53L876.43,564.79l11.96,202.33l181.38,91.07l169.41-111.26 + l-11.96-202.33L1045.85,453.53z"/> + </g> + </g> + <g class="st1"> + <g> + <radialGradient id="SVGID_90_" cx="1055.0852" cy="656.6438" r="431.6947" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st93" d="M1260.44,736.94l-170.3,134.47c-0.31,0.25-0.73,0.31-1.1,0.16l-201.94-80.2 + c-0.37-0.15-0.63-0.48-0.69-0.87l-31.64-214.68c-0.06-0.39,0.1-0.79,0.41-1.04l170.3-134.47c0.31-0.25,0.73-0.31,1.1-0.16 + l201.94,80.2c0.37,0.15,0.63,0.48,0.69,0.87l31.64,214.68c0.03,0.23-0.01,0.46-0.11,0.66 + C1260.68,736.71,1260.57,736.84,1260.44,736.94z M1026.36,442.46L857.07,576.13l31.45,213.4l200.74,79.73l169.29-133.67 + l-31.45-213.4L1026.36,442.46z"/> + </g> + </g> + <g class="st1"> + <g> + <radialGradient id="SVGID_91_" cx="1055.0718" cy="656.6471" r="433.5099" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st94" d="M1280.02,722.95l-168.02,158.3c-0.29,0.27-0.7,0.37-1.08,0.26l-221.45-66.27 + c-0.38-0.11-0.67-0.42-0.77-0.81l-53.43-224.58c-0.09-0.39,0.03-0.8,0.32-1.07l168.02-158.3c0.29-0.27,0.7-0.37,1.09-0.26 + l221.45,66.27c0.38,0.11,0.67,0.42,0.77,0.81l53.43,224.58c0.06,0.26,0.03,0.53-0.09,0.76 + C1280.2,722.75,1280.12,722.86,1280.02,722.95z M1004.68,432.54L837.6,589.96l53.13,223.32l220.22,65.9l167.08-157.42 + l-53.13-223.32L1004.68,432.54z"/> + </g> + </g> + <g class="st1"> + <g> + <radialGradient id="SVGID_92_" cx="1055.0585" cy="656.6512" r="435.3306" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st95" d="M1299.48,706.31l-163.38,183.34c-0.27,0.3-0.67,0.43-1.06,0.35L894.2,840.3 + c-0.39-0.08-0.71-0.36-0.83-0.74l-77.45-233.05c-0.13-0.38-0.04-0.8,0.23-1.1l163.38-183.34c0.27-0.3,0.67-0.43,1.06-0.35 + l240.83,49.7c0.39,0.08,0.71,0.36,0.83,0.74l77.45,233.05c0.09,0.29,0.07,0.59-0.06,0.85 + C1299.6,706.15,1299.54,706.23,1299.48,706.31z M980.77,424.04L818.24,606.42l77.04,231.82l239.57,49.44l162.53-182.38 + l-77.04-231.82L980.77,424.04z"/> + </g> + </g> + <g class="st1"> + <g> + <radialGradient id="SVGID_93_" cx="1055.0454" cy="656.6552" r="437.1827" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st96" d="M1318.54,686.87l-156.15,209.45c-0.24,0.32-0.63,0.49-1.02,0.44l-259.84-30.35 + c-0.4-0.05-0.74-0.3-0.9-0.67l-103.69-239.8c-0.16-0.37-0.11-0.79,0.13-1.11l156.15-209.45c0.24-0.32,0.63-0.49,1.02-0.44 + l259.84,30.35c0.4,0.05,0.74,0.3,0.9,0.67l103.69,239.8c0.13,0.31,0.12,0.65-0.03,0.94 + C1318.62,686.76,1318.58,686.82,1318.54,686.87z M954.63,417.24L799.25,625.66l103.17,238.61l258.56,30.2l155.38-208.42 + l-103.17-238.62L954.63,417.24z"/> + </g> + </g> + <g class="st1"> + <g> + <radialGradient id="SVGID_94_" cx="1055.0332" cy="656.6381" r="434.1126" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st97" d="M1336.95,664.51l-146.07,236.45c-0.21,0.34-0.58,0.54-0.98,0.53l-278.19-8.07 + c-0.4-0.01-0.76-0.23-0.95-0.59L778.64,648.32c-0.19-0.35-0.17-0.78,0.03-1.12l146.07-236.45c0.21-0.34,0.58-0.54,0.98-0.53 + l278.19,8.07c0.4,0.01,0.76,0.23,0.95,0.59l132.12,244.52c0.17,0.32,0.18,0.71,0.02,1.03 + C1336.98,664.46,1336.96,664.49,1336.95,664.51z M926.3,412.47L780.91,647.83l131.51,243.39l276.9,8.03l145.39-235.36 + L1203.2,420.5L926.3,412.47z"/> + </g> + </g> + <g class="st1"> + <g> + <radialGradient id="SVGID_95_" cx="1055.0205" cy="656.6164" r="429.8942" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st98" d="M1354.37,639.12L1221.5,903.25c-0.18,0.36-0.53,0.59-0.93,0.61L925,921.11c-0.4,0.02-0.78-0.17-1-0.5 + L761.31,673.72c-0.22-0.33-0.24-0.76-0.07-1.11l0,0l132.87-264.13c0.18-0.36,0.53-0.59,0.93-0.61l295.56-17.24 + c0.4-0.02,0.78,0.17,1,0.5L1354.31,638C1354.53,638.34,1354.55,638.76,1354.37,639.12L1354.37,639.12z M895.83,410.05 + l-132.3,262.98l161.98,245.81l294.28-17.17l132.3-262.98l-161.98-245.81L895.83,410.05z"/> + </g> + </g> + <g class="st1"> + <g> + <radialGradient id="SVGID_96_" cx="1055.0074" cy="656.6208" r="431.7132" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st99" d="M1253.28,903.53l-311.63,45.68c-0.39,0.06-0.79-0.1-1.04-0.41L745.3,702.23 + c-0.25-0.31-0.31-0.74-0.16-1.11l116.33-292.24c0.15-0.37,0.48-0.63,0.88-0.69l311.63-45.68c0.39-0.06,0.79,0.1,1.04,0.41 + l195.31,246.56c0.25,0.31,0.31,0.73,0.16,1.11l-116.33,292.24c-0.01,0.03-0.03,0.06-0.04,0.09 + C1253.95,903.25,1253.64,903.47,1253.28,903.53z M1173.66,364.82L863.3,410.31L747.45,701.35L941.96,946.9l310.36-45.49 + l115.85-291.04L1173.66,364.82z"/> + </g> + </g> + <g class="st1"> + <g> + <radialGradient id="SVGID_97_" cx="1054.9937" cy="656.6248" r="433.5146" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st100" d="M1287.91,900.14l-326.03,77.3c-0.39,0.09-0.8-0.03-1.07-0.32L730.97,733.93 + c-0.27-0.29-0.37-0.71-0.26-1.09l96.19-320.5c0.11-0.38,0.42-0.67,0.81-0.76l326.03-77.3c0.39-0.09,0.8,0.03,1.07,0.32 + l229.84,243.19c0.27,0.29,0.37,0.71,0.26,1.09l-96.19,320.5c-0.02,0.06-0.04,0.12-0.07,0.18 + C1288.5,899.85,1288.23,900.06,1287.91,900.14z M1153.63,336.6L828.85,413.6l-95.82,319.26l228.96,242.26l324.78-77.01 + l95.82-319.26L1153.63,336.6z"/> + </g> + </g> + <g class="st1"> + <g> + <radialGradient id="SVGID_98_" cx="1054.9792" cy="656.6282" r="435.3319" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st101" d="M1324.29,893.34L985.94,1005.5c-0.38,0.13-0.79,0.04-1.09-0.23L718.72,768.85 + c-0.3-0.26-0.43-0.67-0.35-1.06l72.22-348.58c0.08-0.39,0.36-0.71,0.74-0.83l338.35-112.15c0.38-0.13,0.79-0.04,1.09,0.23 + l266.13,236.42c0.3,0.26,0.43,0.67,0.35,1.06l-72.22,348.58c-0.02,0.1-0.05,0.19-0.1,0.27 + C1324.81,893.04,1324.58,893.25,1324.29,893.34z M1129.77,308.55L792.64,420.29l-71.96,347.31l265.17,235.56l337.13-111.75 + l71.96-347.32L1129.77,308.55z"/> + </g> + </g> + <g class="st1"> + <g> + <radialGradient id="SVGID_99_" cx="1054.9648" cy="656.6324" r="437.1753" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st102" d="M1362.21,882.76L1014.03,1033c-0.37,0.16-0.79,0.11-1.11-0.13L708.96,806.99 + c-0.32-0.24-0.49-0.63-0.44-1.03l44.22-376.11c0.04-0.39,0.3-0.74,0.67-0.89l348.18-150.23c0.37-0.16,0.79-0.11,1.11,0.13 + l303.96,225.88c0.32,0.24,0.49,0.63,0.44,1.03l-44.22,376.11c-0.02,0.13-0.05,0.26-0.11,0.37 + C1362.65,882.47,1362.46,882.66,1362.21,882.76z M1101.88,281.03l-347,149.72l-44.07,374.83l302.93,225.11l347-149.72 + l44.07-374.83L1101.88,281.03z"/> + </g> + </g> + <g class="st1"> + <g> + <radialGradient id="SVGID_100_" cx="1055.0222" cy="655.8595" r="434.5928" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st103" d="M1401.42,868.04l-355.07,191.49c-0.35,0.19-0.78,0.18-1.12-0.03L702.16,848.3 + c-0.34-0.21-0.54-0.58-0.53-0.98l11.99-402.7c0.01-0.4,0.24-0.76,0.59-0.95l355.07-191.49c0.35-0.19,0.78-0.18,1.11,0.03 + l343.08,211.2c0.34,0.21,0.54,0.58,0.53,0.98L1402,867.09c0,0.17-0.05,0.32-0.12,0.47 + C1401.78,867.76,1401.62,867.93,1401.42,868.04z M1069.76,254.45L715.83,445.34l-11.95,401.41l341.98,210.52l353.93-190.88 + l11.95-401.41L1069.76,254.45z"/> + </g> + </g> + <g class="st1"> + <g> + <radialGradient id="SVGID_101_" cx="1055.1007" cy="655.8597" r="430.029" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#8C8C8C"/> + <stop offset="0.0112" style="stop-color:#898989"/> + <stop offset="0.1673" style="stop-color:#5F5F5F"/> + <stop offset="0.3268" style="stop-color:#3D3D3D"/> + <stop offset="0.4882" style="stop-color:#222222"/> + <stop offset="0.6523" style="stop-color:#0F0F0F"/> + <stop offset="0.8207" style="stop-color:#040404"/> + <stop offset="1" style="stop-color:#000000"/> + </radialGradient> + <path class="st104" d="M1441.59,848.81l-358.54,235.86c-0.33,0.22-0.76,0.24-1.11,0.07L698.77,892.72 + c-0.36-0.18-0.59-0.53-0.61-0.93l-24.63-427.88c-0.02-0.4,0.17-0.78,0.5-1l358.54-235.86c0.33-0.22,0.76-0.24,1.11-0.07 + L1416.85,419c0.36,0.18,0.59,0.53,0.61,0.93l24.63,427.88c0.01,0.2-0.03,0.39-0.12,0.57 + C1441.89,848.55,1441.76,848.7,1441.59,848.81z M1033.25,229.27L675.79,464.42l24.56,426.59l382.02,191.44l357.46-235.15 + l-24.56-426.6L1033.25,229.27z"/> + </g> + </g> + </g> + <g class="st105"> + <g> + <g> + <path class="st106" d="M-53.31,0.16c-0.45-1.03-3.18,0.33-6.27,2.75c-2.94,2.31-5.16,4.63-4.84,5.64 + c0.34,1.07,3.39,0.36,6.49-1.94C-54.9,4.36-52.87,1.18-53.31,0.16z"/> + <path class="st106" d="M-31.9-15.77c-0.56-1.37-3.32-0.18-6.41,2.19c-2.95,2.25-5.16,4.79-4.89,5.91 + c0.3,1.19,3.32,0.7,6.49-1.54C-33.65-11.37-31.34-14.41-31.9-15.77z"/> + <path class="st106" d="M-10.52-31.78c-0.73-1.35-3.77-0.34-6.86,2.07c-2.95,2.3-4.95,4.84-4.36,6.17 + c0.62,1.4,3.63,0.61,6.75-1.65C-11.92-27.41-9.8-30.45-10.52-31.78z"/> + <path class="st106" d="M-40.78-3.68c-0.55-1.06-3.43-0.22-6.41,1.99c-2.93,2.17-5.02,5.03-4.62,6.15 + c0.41,1.17,3.48,0.05,6.61-2.3C-42.19-0.11-40.23-2.61-40.78-3.68z"/> + <path class="st106" d="M-23.78-13.45c3.07-2.21,5.1-4.75,4.59-5.93c-0.51-1.17-3.32-0.47-6.35,1.68 + c-3.12,2.22-5.34,5.3-4.73,6.38C-29.69-10.29-26.78-11.29-23.78-13.45z"/> + <path class="st106" d="M2.33-35.21c-0.69-1.14-3.7-0.33-6.66,1.89c-2.92,2.19-4.92,5.1-4.39,6.24 + c0.56,1.21,3.77,0.16,6.91-2.17C1.22-31.5,3.04-34.05,2.33-35.21z"/> + <path class="st106" d="M10.44-32.92c3.09-2.13,5.27-4.73,4.86-5.92c-0.4-1.17-3.36-0.38-6.39,1.78 + c-3.11,2.21-5.16,4.85-4.74,5.99C4.58-29.94,7.35-30.79,10.44-32.92z"/> + <path class="st106" d="M-12.81-21.41c-3.12,2.22-5.18,4.78-4.8,5.83c0.38,1.04,3.11,0.1,6.2-2.05 + c3.08-2.13,5.31-4.68,4.93-5.75C-6.86-24.44-9.76-23.58-12.81-21.41z"/> + <path class="st106" d="M-34.48-5.77c-3.11,2.24-5.19,4.79-4.85,5.79c0.34,0.99,3.02-0.02,6.08-2.2 + c3.05-2.16,5.31-4.68,4.99-5.69C-28.58-8.88-31.44-7.96-34.48-5.77z"/> + <path class="st106" d="M-56.15,10.23c-3.04,2.3-5.03,4.86-4.61,5.76c0.41,0.89,3.1-0.28,6.11-2.54 + c2.98-2.24,5.18-4.77,4.76-5.66C-50.3,6.91-53.13,7.96-56.15,10.23z"/> + <path class="st106" d="M-37.97,3.23c-0.23-0.89-2.95,0.1-5.93,2.27c-2.82,2.04-4.94,4.45-4.82,5.35 + c0.13,0.96,2.58-0.03,5.6-2.16C-40.15,6.61-37.75,4.12-37.97,3.23z"/> + <path class="st106" d="M-16.12-12.22c-0.33-0.89-3.2,0.1-6.17,2.22C-25.14-7.97-27.2-5.6-27-4.71c0.22,0.96,2.79-0.01,5.87-2.1 + C-18.11-8.88-15.79-11.32-16.12-12.22z"/> + <path class="st106" d="M5.9-27.4c-0.36-0.99-3.24-0.11-6.25,2c-2.86,2-4.93,4.41-4.7,5.38c0.24,1.04,2.85,0.19,5.95-1.86 + C3.94-23.89,6.27-26.4,5.9-27.4z"/> + <path class="st106" d="M27.91-42.63c-0.52-1.04-3.58-0.12-6.51,2c-2.85,2.06-4.76,4.49-4.4,5.49c0.39,1.07,3.17,0.22,6.24-1.84 + C26.29-39.04,28.43-41.58,27.91-42.63z"/> + <path class="st106" d="M-53.52,16.31c-2.99,2.2-5.28,4.7-5.02,5.35c0.25,0.62,2.67-0.58,5.53-2.67 + c3.08-2.25,5.37-4.53,5.09-5.22C-48.18,13.14-50.71,14.25-53.52,16.31z"/> + <path class="st106" d="M-32.08,0.85c-2.86,2.03-5.01,4.32-4.85,5.05c0.17,0.78,2.85-0.43,5.95-2.59 + c2.94-2.05,5.09-4.16,4.91-4.93C-26.25-2.43-29.02-1.32-32.08,0.85z"/> + <path class="st106" d="M-10.07-14.39c-2.89,1.99-5.03,4.28-4.83,5.06c0.22,0.83,2.97-0.28,6.12-2.39 + c2.98-1.99,5.11-4.13,4.88-4.96C-4.15-17.54-6.99-16.52-10.07-14.39z"/> + <path class="st106" d="M13.58-26.42c3-1.97,5.11-4.15,4.83-5.09c-0.29-0.97-3.19-0.04-6.28,2.06c-2.9,1.97-5.03,4.31-4.79,5.18 + C7.59-23.35,10.41-24.35,13.58-26.42z"/> + <path class="st106" d="M24.62-33.46c-3.04,2.01-5,4.14-4.56,4.9c0.42,0.74,3.24-0.24,6.19-2.12c2.96-1.89,5.11-4.14,4.65-4.92 + C30.44-36.38,27.59-35.43,24.62-33.46z"/> + <path class="st106" d="M2.42-18.99c-3.05,1.99-5.21,4.14-4.99,4.9c0.22,0.75,2.79-0.2,5.78-2.09c2.92-1.84,5.3-4.1,5.09-4.88 + C8.07-21.86,5.4-20.93,2.42-18.99z"/> + <path class="st106" d="M-20.17-3.97c-3,2.06-5.03,4.12-4.74,4.73c0.28,0.6,2.93-0.58,5.84-2.53c2.9-1.95,5.16-4.11,4.85-4.72 + C-14.52-7.1-17.23-5.98-20.17-3.97z"/> + <path class="st106" d="M-42.16,11.26c-2.96,2.12-4.97,4.21-4.73,4.78c0.24,0.56,2.79-0.71,5.64-2.73 + c2.85-2.02,5.1-4.19,4.85-4.76C-36.65,7.98-39.27,9.19-42.16,11.26z"/> + <path class="st106" d="M-7.17-6.6c3.02-1.92,5.16-3.89,4.83-4.51c-0.3-0.57-2.78,0.37-5.57,2.17c-2.88,1.85-5.3,4.11-5.11,4.72 + C-12.82-3.61-10.16-4.7-7.17-6.6z"/> + <path class="st106" d="M15.71-20.71c3.07-1.87,5.19-3.88,4.8-4.61c-0.35-0.66-2.89,0.18-5.71,1.92c-2.91,1.8-5.32,4.1-5.09,4.8 + C9.95-17.88,12.69-18.86,15.71-20.71z"/> + <path class="st106" d="M43.53-39.28c-0.37-0.88-3.16-0.08-6.14,1.8c-2.78,1.75-4.92,3.9-4.76,4.74 + c0.17,0.89,2.93,0.09,5.98-1.7C41.73-36.26,43.91-38.38,43.53-39.28z"/> + <path class="st106" d="M-29.69,7.96c2.96-1.99,5.09-3.96,4.8-4.5c-0.26-0.5-2.68,0.55-5.43,2.41 + c-2.84,1.92-5.23,4.19-5.06,4.73C-35.2,11.16-32.62,9.94-29.69,7.96z"/> + <path class="st106" d="M-52,23.4c2.91-2.08,5.14-4.14,5.02-4.73c-0.12-0.58-2.59,0.62-5.41,2.69c-2.63,1.93-4.8,4.06-4.83,4.67 + C-57.25,26.68-54.85,25.44-52,23.4z"/> + <path class="st106" d="M-41.09,15.86c-2.76,1.92-4.85,3.87-4.77,4.4c0.08,0.56,2.55-0.69,5.52-2.73 + c2.73-1.88,4.93-3.84,4.85-4.37C-35.59,12.6-38.14,13.81-41.09,15.86z"/> + <path class="st106" d="M-18.46,0.78c-3.05,1.95-5.32,3.99-5.12,4.54c0.18,0.51,2.55-0.51,5.41-2.3 + c3.01-1.89,5.43-3.97,5.2-4.52C-13.2-2.03-15.64-1.03-18.46,0.78z"/> + <path class="st106" d="M4.06-13.39c-2.88,1.78-5.02,3.7-4.9,4.34c0.13,0.68,2.77-0.31,5.87-2.18c2.86-1.72,5.09-3.66,4.95-4.33 + C9.84-16.27,7.13-15.29,4.06-13.39z"/> + <path class="st106" d="M27.19-27.38c-2.92,1.75-5.05,3.7-4.89,4.44c0.17,0.79,2.87-0.07,6-1.88c2.91-1.68,5.11-3.64,4.94-4.43 + C33.06-30.08,30.27-29.23,27.19-27.38z"/> + <path class="st106" d="M50.51-41.21c-2.94,1.73-5.05,3.75-4.87,4.62c0.2,0.93,2.94,0.22,6.1-1.55 + c3.11-1.75,5.39-3.97,4.87-4.76C56.1-43.66,53.43-42.92,50.51-41.21z"/> + <path class="st106" d="M-46.36,22.91c-0.08-0.52-2.43,0.63-5.13,2.55c-2.69,1.92-4.84,3.95-4.76,4.45 + c0.09,0.5,2.38-0.68,5.08-2.59C-48.46,25.42-46.27,23.43-46.36,22.91z"/> + <path class="st106" d="M-23.99,8.09c-0.07-0.59-2.44,0.4-5.24,2.21c-2.76,1.79-5.04,3.8-4.98,4.37 + c0.06,0.57,2.38-0.44,5.19-2.24C-26.23,10.65-23.92,8.68-23.99,8.09z"/> + <path class="st106" d="M-1.03-6c-0.06-0.68-2.46,0.16-5.35,1.89c-2.83,1.69-5.19,3.7-5.13,4.34c0.06,0.64,2.4-0.21,5.3-1.91 + C-3.35-3.35-0.97-5.33-1.03-6z"/> + <path class="st106" d="M22.35-19.63c-0.25-0.68-2.89,0.16-5.78,1.85c-2.89,1.69-5.08,3.62-4.84,4.26 + c0.23,0.64,2.84-0.21,5.75-1.85C20.39-17.03,22.6-18.95,22.35-19.63z"/> + <path class="st106" d="M46.04-32.81c-0.29-0.8-2.97-0.12-5.9,1.53c-2.91,1.63-5.12,3.64-4.86,4.39 + c0.27,0.76,2.91,0.06,5.87-1.53C44.11-30.02,46.33-32.01,46.04-32.81z"/> + <path class="st106" d="M53.12-34.51c-2.99,1.62-5.16,3.62-4.66,4.3c0.51,0.7,3.38-0.05,6.48-1.68c2.86-1.51,4.81-3.32,4.43-4.1 + C58.97-36.83,56.14-36.15,53.12-34.51z"/> + <path class="st106" d="M29.19-21.59c-2.97,1.65-5.18,3.6-4.76,4.18c0.43,0.6,3.21-0.26,6.27-1.93c2.84-1.55,4.83-3.3,4.54-3.98 + C34.93-24.05,32.19-23.26,29.19-21.59z"/> + <path class="st106" d="M5.57-8.33C2.64-6.62,0.41-4.69,0.75-4.18C1.11-3.66,3.78-4.63,6.8-6.36c2.79-1.61,4.81-3.33,4.59-3.94 + C11.16-10.94,8.52-10.05,5.57-8.33z"/> + <path class="st106" d="M-17.66,5.5c-2.86,1.79-5.07,3.73-4.76,4.17c0.32,0.45,2.9-0.65,5.85-2.47 + c2.73-1.69,4.73-3.42,4.55-3.96C-12.21,2.69-14.78,3.7-17.66,5.5z"/> + <path class="st106" d="M-40.07,19.91c-2.8,1.88-5.04,3.9-4.9,4.39c0.14,0.5,2.59-0.68,5.43-2.58c2.68-1.8,4.69-3.57,4.67-4.14 + C-34.9,16.98-37.25,18.02-40.07,19.91z"/> + <path class="st106" d="M-61.82,37.32c2.78-2.04,4.92-4.05,4.86-4.6c-0.06-0.5-2.14,0.55-4.66,2.38 + c-2.7,1.96-4.78,4.35-4.86,5.02C-66.55,40.78-64.53,39.31-61.82,37.32z"/> + <path class="st106" d="M66.84-37.39c-2.95,1.49-4.91,3.24-4.58,4.11c0.34,0.9,3.25,0.42,6.27-1.05 + c3.02-1.47,5.17-3.51,4.55-4.31C72.48-39.41,69.73-38.85,66.84-37.39z"/> + <path class="st106" d="M42.64-25.14c-2.94,1.49-5.05,3.24-4.91,4.04c0.15,0.85,2.82,0.33,5.86-1.16 + c2.99-1.46,5.31-3.46,4.91-4.22C48.11-27.2,45.51-26.6,42.64-25.14z"/> + <path class="st106" d="M18.52-12.43c-2.89,1.55-5.01,3.28-4.93,4c0.09,0.77,2.65,0.12,5.65-1.44c2.94-1.53,5.28-3.5,4.95-4.16 + C23.85-14.65,21.34-13.95,18.52-12.43z"/> + <path class="st106" d="M-5.31,0.89c-2.82,1.64-4.86,3.35-4.75,3.99C-9.95,5.54-7.39,4.7-4.5,3.05 + c2.88-1.64,5.13-3.59,4.77-4.13C-0.07-1.59-2.55-0.72-5.31,0.89z"/> + <path class="st106" d="M-28.48,14.87c-2.74,1.74-4.71,3.48-4.61,4.06c0.1,0.61,2.6-0.39,5.39-2.15 + c2.79-1.76,4.99-3.74,4.64-4.2C-23.39,12.16-25.79,13.16-28.48,14.87z"/> + <path class="st106" d="M-50.65,29.57c-2.65,1.84-4.67,3.72-4.68,4.34c-0.02,0.66,2.24-0.37,4.96-2.25 + c2.68-1.85,4.92-3.95,4.73-4.46C-45.83,26.73-48.05,27.77-50.65,29.57z"/> + <path class="st106" d="M-56.2,37.39c-0.08-0.64-2.25,0.1-4.63,2.07c-2.45,2.03-4.59,4.48-4.41,5.06 + c0.18,0.55,2.31-0.62,4.69-2.61C-58.13,39.89-56.13,38.04-56.2,37.39z"/> + <path class="st106" d="M-33.95,22.39c-0.09-0.66-2.23,0.14-4.85,1.82c-2.71,1.72-5.07,3.9-4.87,4.48 + c0.19,0.56,2.52-0.39,5.14-2.08C-35.86,24.89-33.86,23.05-33.95,22.39z"/> + <path class="st106" d="M-10.84,8.4c-0.19-0.65-2.5,0.1-5.21,1.67c-2.83,1.65-5.16,3.69-4.85,4.25c0.3,0.54,2.75-0.31,5.49-1.91 + C-12.64,10.81-10.65,9.06-10.84,8.4z"/> + <path class="st106" d="M12.98-4.7c-0.3-0.66-2.79,0.02-5.55,1.52c-2.7,1.46-4.95,3.33-4.81,4.01C2.76,1.57,5.51,0.8,8.5-0.8 + C11.34-2.33,13.28-4.03,12.98-4.7z"/> + <path class="st106" d="M37.39-17.05c-0.31-0.76-2.84-0.23-5.68,1.18c-2.97,1.48-5.32,3.46-4.88,4.13 + c0.42,0.65,3.09,0.03,5.96-1.39C35.7-14.57,37.7-16.28,37.39-17.05z"/> + <path class="st106" d="M62.2-28.94c-0.44-0.83-3.12-0.37-5.98,1c-2.8,1.34-5.03,3.22-4.78,4.04c0.27,0.89,3.24,0.39,6.34-1.08 + C60.73-26.37,62.64-28.1,62.2-28.94z"/> + <path class="st106" d="M87.34-40.36c-0.4-1.01-3.01-0.78-5.94,0.51c-3.02,1.34-5.42,3.45-4.94,4.37 + c0.46,0.88,3.3,0.55,6.25-0.74C85.71-37.53,87.73-39.34,87.34-40.36z"/> + <path class="st106" d="M95.9-41.24c-3.12,1.34-5.14,3.19-4.56,4.2c0.58,1.01,3.54,0.79,6.66-0.53 + c2.86-1.21,4.78-3.01,4.38-4.06C101.95-42.74,98.94-42.55,95.9-41.24z"/> + <path class="st106" d="M70.6-30.12c-3.11,1.36-5.22,3.15-4.79,4.07c0.43,0.93,3.27,0.61,6.36-0.72 + c2.82-1.22,4.85-2.97,4.6-3.94C76.51-31.72,73.6-31.44,70.6-30.12z"/> + <path class="st106" d="M45.38-18.58c-3.05,1.43-5.15,3.19-4.74,4c0.41,0.81,3.17,0.35,6.21-1.07c2.79-1.3,4.79-3.01,4.55-3.86 + C51.16-20.4,48.35-19.97,45.38-18.58z"/> + <path class="st106" d="M21.65-3.75c2.95-1.43,5.15-3.29,4.82-4.06c-0.3-0.72-2.77-0.22-5.49,1.11 + c-3.03,1.48-5.24,3.26-5.06,4.07C16.11-1.81,18.66-2.3,21.65-3.75z"/> + <path class="st106" d="M-2.47,8.68c2.83-1.54,4.95-3.45,4.56-4.1c-0.4-0.65-3.03,0.14-5.9,1.77c-2.68,1.52-4.55,3.18-4.32,3.85 + C-7.88,10.93-5.36,10.26-2.47,8.68z"/> + <path class="st106" d="M-26.96,19.79c-2.8,1.72-4.78,3.58-4.45,4.2c0.33,0.62,2.81-0.26,5.61-1.99 + c2.56-1.59,4.45-3.38,4.27-4.04C-21.71,17.26-24.21,18.1-26.96,19.79z"/> + <path class="st106" d="M-49.33,34.29c-2.71,1.85-4.68,3.82-4.48,4.5c0.21,0.67,2.52-0.26,5.19-2.1 + c2.44-1.69,4.35-3.6,4.31-4.33C-44.34,31.59-46.71,32.51-49.33,34.29z"/> + <path class="st106" d="M-54.43,42.96c-0.3-0.74-2.78,0.26-5.11,2.25c-2.23,1.9-3.81,3.96-3.52,4.65 + c0.31,0.74,2.66-0.31,5.04-2.32C-55.81,45.68-54.15,43.65-54.43,42.96z"/> + <path class="st106" d="M-32.09,28.04c-0.34-0.67-2.63,0.08-5.12,1.65c-2.64,1.67-4.6,3.71-4.22,4.42 + c0.35,0.67,2.6-0.03,5.11-1.62C-33.7,30.85-31.73,28.76-32.09,28.04z"/> + <path class="st106" d="M-8.74,14.38c-0.33-0.78-3.02-0.04-5.7,1.54c-2.56,1.51-4.37,3.28-4.07,3.99 + c0.33,0.77,2.98,0.08,5.71-1.51C-10.26,16.93-8.43,15.11-8.74,14.38z"/> + <path class="st106" d="M5.37,6.89c0.42,0.72,2.88,0.24,5.59-1.1c2.82-1.4,4.9-3.33,4.45-4.11C15,0.95,12.49,1.47,9.82,2.82 + C6.97,4.26,4.92,6.12,5.37,6.89z"/> + <path class="st106" d="M29.94-5.34c0.33,0.91,3.09,0.54,6.03-0.82c2.72-1.26,4.69-3.02,4.38-3.88 + c-0.34-0.93-3.12-0.52-6.02,0.85C31.6-7.88,29.63-6.17,29.94-5.34z"/> + <path class="st106" d="M65.78-21.18c-0.45-0.98-3.41-0.67-6.33,0.65c-2.76,1.25-4.68,2.96-4.28,3.84 + c0.44,0.95,3.38,0.68,6.35-0.61C64.29-18.52,66.2-20.27,65.78-21.18z"/> + <path class="st106" d="M80.86-27.56c0.44,1.09,3.35,1,6.43-0.22c2.83-1.12,4.8-2.92,4.37-3.96c-0.46-1.12-3.41-0.99-6.42,0.26 + C82.42-30.31,80.45-28.56,80.86-27.56z"/> + <path class="st106" d="M117.7-42.21c-0.76-1.05-3.7-0.96-6.54,0.18c-3.05,1.23-4.95,3.15-4.16,4.25 + c0.74,1.02,3.63,0.98,6.54-0.13C116.61-39.07,118.52-41.07,117.7-42.21z"/> + <path class="st106" d="M-45.85,43.37c2.49-1.7,4.17-3.69,3.87-4.54c-0.3-0.85-2.53-0.19-4.99,1.45 + c-2.6,1.73-4.56,3.99-4.11,4.77C-50.65,45.79-48.31,45.05-45.85,43.37z"/> + <path class="st106" d="M-23.34,29.02c2.65-1.53,4.51-3.42,4.3-4.34c-0.21-0.98-2.75-0.38-5.5,1.27 + c-2.53,1.51-4.41,3.47-4.1,4.29C-28.33,31.06-25.92,30.52-23.34,29.02z"/> + <path class="st106" d="M4.82,11.57C4.45,10.72,2,11.16-0.67,12.55c-2.83,1.46-4.95,3.5-4.42,4.29 + c0.51,0.75,3.08,0.24,5.77-1.17C3.38,14.24,5.19,12.44,4.82,11.57z"/> + <path class="st106" d="M25.08,3.64c2.84-1.29,4.79-3.03,4.51-4c-0.3-1.02-3.07-0.65-6.02,0.76c-2.71,1.3-4.68,3.11-4.29,3.96 + C19.67,5.22,22.29,4.91,25.08,3.64z"/> + <path class="st106" d="M50.56-7.62c2.89-1.2,4.82-2.93,4.43-3.92c-0.39-0.98-2.99-0.82-5.83,0.36 + c-3.01,1.24-5.25,3.18-4.71,4.1C44.96-6.2,47.7-6.43,50.56-7.62z"/> + <path class="st106" d="M76.65-18.14c2.94-1.15,4.82-2.87,4.3-3.92c-0.51-1.04-3.24-0.96-6.13,0.17 + c-3.06,1.19-5.25,3.13-4.59,4.1C70.87-16.86,73.74-17.01,76.65-18.14z"/> + <path class="st106" d="M102.83-27.94c3.04-1.05,5.02-2.79,4.58-3.98c-0.46-1.27-3.53-1.31-6.65-0.11 + c-2.87,1.1-4.86,2.91-4.34,3.98C96.95-26.98,99.86-26.92,102.83-27.94z"/> + <path class="st106" d="M130.12-37.61c2.98-1.08,4.67-2.93,3.87-4.15c-0.79-1.21-3.77-1.29-6.72-0.21 + c-3.09,1.13-5.12,3.22-4.16,4.34C124.05-36.54,127.14-36.52,130.12-37.61z"/> + <path class="st106" d="M-37.95,47.36c-0.55-1.13-3.02-0.62-5.45,1.1c-2.21,1.56-3.71,3.74-3.23,4.75 + c0.52,1.1,3.14,0.6,5.56-1.11C-38.76,50.46-37.44,48.43-37.95,47.36z"/> + <path class="st106" d="M-15.08,33.06c-0.64-0.95-3.05-0.56-5.46,0.85c-2.51,1.47-4.25,3.73-3.56,4.69 + c0.67,0.92,3.16,0.55,5.57-0.86C-15.87,36.18-14.37,34.11-15.08,33.06z"/> + <path class="st106" d="M8.98,20.24c-0.62-0.99-3.1-0.75-5.62,0.52c-2.63,1.31-4.5,3.47-3.84,4.46 + c0.64,0.95,3.21,0.73,5.73-0.53C8.05,23.29,9.67,21.34,8.98,20.24z"/> + <path class="st106" d="M33.98,8.56c-0.64-1.02-3.2-0.9-5.82,0.25c-2.72,1.19-4.68,3.26-4,4.29c0.65,0.98,3.32,0.88,5.94-0.26 + C33.01,11.58,34.69,9.7,33.98,8.56z"/> + <path class="st106" d="M59.88-2c-0.6-1.22-3.46-1.22-6.32-0.03c-2.61,1.08-4.43,2.89-3.94,3.96c0.53,1.16,3.57,1.2,6.44,0.04 + C58.8,0.85,60.43-0.86,59.88-2z"/> + <path class="st106" d="M86.33-11.96c-0.71-1.14-3.43-1.26-6.2-0.3c-2.88,1-4.93,2.98-4.2,4.12c0.69,1.09,3.54,1.23,6.32,0.3 + C85.35-8.88,87.11-10.69,86.33-11.96z"/> + <path class="st106" d="M113.45-21.06c-0.74-1.36-3.82-1.58-6.8-0.52c-2.71,0.96-4.52,2.76-3.9,3.93 + c0.67,1.28,3.93,1.54,6.92,0.53C112.54-18.08,114.15-19.79,113.45-21.06z"/> + <path class="st106" d="M140.88-29.82c-0.85-1.31-3.75-1.66-6.61-0.81c-2.97,0.88-4.99,2.91-4.14,4.21 + c0.82,1.24,3.84,1.62,6.73,0.81C140.07-26.51,141.82-28.37,140.88-29.82z"/> + <path class="st106" d="M169.21-37.48c-0.87-1.55-4.17-2.07-7.27-1.17c-2.83,0.82-4.64,2.64-3.92,3.98 + c0.78,1.46,4.26,2.03,7.39,1.17C168.4-34.31,170.02-36.03,169.21-37.48z"/> + <path class="st106" d="M-51.19,50.4c-0.39-0.99-2.66-0.25-5.02,1.65c-2.25,1.8-3.7,3.81-3.41,4.81 + c0.31,1.06,2.53,0.51,4.87-1.26C-52.46,53.85-50.81,51.37-51.19,50.4z"/> + <path class="st106" d="M-32.56,40.08c2.46-1.56,4.22-3.78,3.71-4.65c-0.51-0.89-3.03-0.23-5.58,1.43 + c-2.4,1.57-3.91,3.41-3.52,4.33C-37.54,42.16-35.06,41.67-32.56,40.08z"/> + <path class="st106" d="M-5.36,21.94c-0.49-0.93-3.08-0.43-5.76,1.08c-2.53,1.43-4.14,3.17-3.78,4.11 + c0.38,0.99,2.93,0.65,5.56-0.77C-6.75,24.95-4.88,22.85-5.36,21.94z"/> + <path class="st106" d="M13.01,10.44c-2.79,1.42-4.42,3.19-3.71,4.08c0.64,0.8,3.22,0.48,5.75-0.75 + c2.68-1.3,4.58-3.31,4.02-4.22C18.51,8.62,15.77,9.04,13.01,10.44z"/> + <path class="st106" d="M40.41,2.24C43.19,1,45.01-0.93,44.3-1.85c-0.72-0.93-3.59-0.59-6.42,0.75 + c-2.66,1.25-4.23,2.85-3.69,3.79C34.76,3.68,37.63,3.49,40.41,2.24z"/> + <path class="st106" d="M63.82-11.96c-2.94,1.23-4.63,2.94-3.84,3.95c0.71,0.91,3.48,0.82,6.17-0.21 + c2.84-1.1,4.82-3.04,4.17-4.06C69.67-13.34,66.73-13.17,63.82-11.96z"/> + <path class="st106" d="M90.12-22.06c-3,1.16-4.68,2.88-3.81,3.97c0.77,0.98,3.63,1.01,6.38,0.04c2.9-1.03,4.87-2.98,4.16-4.08 + C96.12-23.26,93.09-23.21,90.12-22.06z"/> + <path class="st106" d="M117.29-31.8c-3.12,1.04-5.01,2.79-4.3,4.04c0.69,1.23,3.83,1.44,6.81,0.43 + c2.75-0.94,4.57-2.71,4.08-3.94C123.34-32.59,120.36-32.82,117.29-31.8z"/> + <path class="st106" d="M147.26-36.02c3.05-0.89,4.92-2.86,3.99-4.15c-0.94-1.32-4.25-1.54-7.34-0.53 + c-2.89,0.95-4.53,2.58-3.8,3.84C140.89-35.52,144.18-35.12,147.26-36.02z"/> + <path class="st106" d="M180.62-35.61c-3.04,0.78-4.74,2.5-3.89,3.98c0.85,1.48,3.99,2.15,7.03,1.48 + c3.29-0.73,5.19-2.72,4.1-4.25C186.82-35.86,183.62-36.38,180.62-35.61z"/> + <path class="st106" d="M152.14-28.21c-3.06,0.78-4.79,2.46-4.02,3.91c0.76,1.44,3.81,2.04,6.84,1.37 + c3.27-0.73,5.24-2.7,4.26-4.17C158.29-28.49,155.11-28.98,152.14-28.21z"/> + <path class="st106" d="M123.98-19.96c-2.89,0.93-4.52,2.66-3.69,3.98c0.83,1.32,3.84,1.72,6.78,0.88 + c3.17-0.91,4.96-2.91,3.86-4.26C129.88-20.65,126.88-20.89,123.98-19.96z"/> + <path class="st106" d="M96.56-11.17c-2.84,0.99-4.47,2.72-3.68,3.97c0.78,1.24,3.7,1.53,6.58,0.62 + c3.11-0.98,4.89-2.98,3.85-4.24C102.32-12.03,99.41-12.17,96.56-11.17z"/> + <path class="st106" d="M69.74-1.73c-2.78,1.06-4.41,2.81-3.68,4.01c0.72,1.2,3.55,1.38,6.36,0.39 + c3.03-1.07,4.82-3.09,3.85-4.28C75.34-2.76,72.53-2.8,69.74-1.73z"/> + <path class="st106" d="M43.8,8.46c-2.76,1.13-4.44,2.89-3.87,4.1c0.57,1.21,3.25,1.37,5.98,0.33c2.95-1.12,4.83-3.19,4.07-4.4 + C49.26,7.36,46.49,7.35,43.8,8.46z"/> + <path class="st106" d="M18.36,19.76c-2.64,1.25-4.23,3.11-3.62,4.28c0.6,1.16,3.22,1.18,5.85,0c2.84-1.27,4.6-3.42,3.8-4.58 + C23.62,18.37,20.98,18.52,18.36,19.76z"/> + <path class="st106" d="M-5.99,32.17c-2.54,1.38-4.06,3.33-3.48,4.5c0.58,1.17,3.1,1.09,5.61-0.21 + c2.73-1.41,4.41-3.67,3.65-4.82C-0.93,30.56-3.49,30.81-5.99,32.17z"/> + <path class="st106" d="M-29.18,45.85c-2.45,1.52-3.9,3.56-3.37,4.8c0.56,1.32,3.19,1.05,5.76-0.62 + c2.36-1.54,3.74-3.73,3.09-4.85C-24.34,44.06-26.81,44.37-29.18,45.85z"/> + <path class="st106" d="M-51.14,61.21c-2.28,1.73-3.62,3.91-3.08,5.16c0.57,1.33,3.09,0.94,5.49-0.94 + c2.21-1.73,3.43-4.1,2.77-5.25C-46.61,59.04-48.93,59.53-51.14,61.21z"/> + <path class="st106" d="M228.5-38.9c-2.97,0.74-4.45,2.62-3.34,4.26c1.1,1.61,4.46,2.35,7.36,1.64 + c2.91-0.72,4.47-2.64,3.38-4.25C234.83-38.87,231.39-39.62,228.5-38.9z"/> + <path class="st106" d="M207-30.26c-0.89-1.6-4.11-2.39-7.12-1.77c-2.98,0.62-4.74,2.48-3.82,4.07c0.93,1.62,4.07,2.43,7.1,1.81 + C206.13-26.76,207.89-28.66,207-30.26z"/> + <path class="st106" d="M170.96-24.98c-2.96,0.66-4.69,2.5-3.77,4.06c0.94,1.59,4.06,2.34,7.07,1.67 + c2.95-0.65,4.66-2.55,3.77-4.12C177.14-24.92,173.93-25.64,170.96-24.98z"/> + <path class="st106" d="M142.48-17.57c-2.91,0.71-4.67,2.57-3.82,4.08c0.86,1.54,3.89,2.22,6.86,1.52 + c2.91-0.69,4.65-2.6,3.82-4.14C148.52-17.64,145.41-18.29,142.48-17.57z"/> + <path class="st106" d="M117.65-4.18c2.8-0.85,4.36-2.78,3.44-4.2c-0.91-1.41-4.07-1.85-6.85-0.99c-2.85,0.89-4.4,2.7-3.46,4.13 + C111.71-3.83,114.86-3.33,117.65-4.18z"/> + <path class="st106" d="M90.24,4.35c2.73-0.99,4.15-2.92,3.2-4.26c-0.94-1.32-4.08-1.58-6.75-0.6 + c-2.77,1.02-4.19,2.83-3.22,4.18C84.42,5,87.55,5.33,90.24,4.35z"/> + <path class="st106" d="M60.17,9.02c-2.7,1.04-4.24,2.92-3.4,4.26c0.83,1.33,3.76,1.62,6.43,0.61c2.67-1.01,4.19-3.01,3.38-4.34 + C65.78,8.23,62.82,8.01,60.17,9.02z"/> + <path class="st106" d="M40.55,20.02c-0.67-1.35-3.4-1.56-6.04-0.49c-2.62,1.05-4.28,3.06-3.58,4.4 + c0.71,1.37,3.39,1.63,6.06,0.57C39.6,23.45,41.22,21.37,40.55,20.02z"/> + <path class="st106" d="M9.43,31.31c-2.5,1.22-4,3.31-3.24,4.64c0.77,1.35,3.39,1.46,5.93,0.22c2.49-1.22,3.95-3.39,3.23-4.71 + C14.63,30.14,11.93,30.09,9.43,31.31z"/> + <path class="st106" d="M-14.55,44.42c-2.39,1.42-3.69,3.59-2.87,4.91c0.81,1.31,3.46,1.26,5.81-0.14 + c2.34-1.4,3.63-3.69,2.85-4.99C-9.54,42.92-12.21,43.04-14.55,44.42z"/> + <path class="st106" d="M-31.66,58.43c-0.83-1.27-3.42-0.98-5.62,0.59c-2.26,1.62-3.37,3.9-2.49,5.22 + c0.86,1.3,3.46,1.09,5.64-0.5C-31.93,62.15-30.82,59.71-31.66,58.43z"/> + <path class="st106" d="M-58.46,74.97c-2.17,1.62-3.41,4.03-2.65,5.35c0.77,1.35,3.17,1.19,5.38-0.44 + c2.18-1.6,3.33-4.14,2.59-5.48C-53.88,73.07-56.29,73.36-58.46,74.97z"/> + <path class="st106" d="M255.07-33.25c-0.67-1.31-3.6-2.01-6.42-1.47c-3.06,0.58-5.06,2.41-4.37,3.83 + c0.63,1.3,3.53,1.86,6.34,1.3C253.81-30.24,255.81-31.81,255.07-33.25z"/> + <path class="st106" d="M222.06-22.64c3.13-0.69,4.98-2.34,4.05-3.78c-0.85-1.31-3.92-1.95-6.74-1.35 + c-3.04,0.65-4.86,2.56-3.95,3.96C216.27-22.5,219.21-22.01,222.06-22.64z"/> + <path class="st106" d="M193.58-15.72c2.83-0.73,4.43-2.28,3.62-3.68c-0.86-1.48-4.26-2.18-7.23-1.41 + c-2.74,0.71-4.3,2.5-3.53,3.87C187.28-15.46,190.55-14.94,193.58-15.72z"/> + <path class="st106" d="M164.58-8.46c3.09-0.75,4.78-2.5,3.7-4.02c-0.99-1.39-4.09-2.03-6.88-1.36 + c-2.99,0.72-4.65,2.76-3.59,4.21C158.81-8.24,161.75-7.77,164.58-8.46z"/> + <path class="st106" d="M133.04-6.41c-2.96,0.74-4.71,2.75-3.71,4.29c0.94,1.43,3.9,1.96,6.68,1.26 + c3.06-0.76,4.8-2.58,3.77-4.15C138.85-6.44,135.78-7.09,133.04-6.41z"/> + <path class="st106" d="M111.66,2.9c-0.99-1.47-3.91-1.94-6.59-1.17c-2.89,0.82-4.7,2.76-3.64,4.33 + c1.07,1.6,4.31,2.01,7.21,1.03C111.3,6.19,112.66,4.4,111.66,2.9z"/> + <path class="st106" d="M81.14,16.02c2.64-0.95,3.92-2.9,3.08-4.33c-0.9-1.52-4.03-1.91-6.79-0.88 + c-2.54,0.95-4.02,2.84-3.24,4.21C75.03,16.51,78.31,17.04,81.14,16.02z"/> + <path class="st106" d="M51.38,20.59c-2.73,1.02-4.38,3.16-3.47,4.6c0.85,1.34,3.7,1.74,6.28,0.8c2.84-1.03,4.3-3.19,3.35-4.68 + C56.68,19.96,53.9,19.65,51.38,20.59z"/> + <path class="st106" d="M31.74,32.05c-0.97-1.31-3.65-1.43-6.08-0.3c-2.6,1.21-4.03,3.48-2.99,4.84 + c1.07,1.4,4.07,1.45,6.65,0.08C31.68,35.43,32.72,33.38,31.74,32.05z"/> + <path class="st106" d="M7.1,44.18c-0.98-1.31-3.57-1.31-5.88-0.04c-2.48,1.36-3.79,3.76-2.75,5.11 + c1.07,1.39,3.98,1.32,6.43-0.21C7.14,47.66,8.09,45.5,7.1,44.18z"/> + <path class="st106" d="M-18.51,63.08c2.18-1.5,3.17-3.78,2.3-5.18c-0.93-1.49-3.7-1.38-6,0.21c-2.11,1.46-3.21,3.8-2.38,5.17 + C-23.69,64.77-20.86,64.7-18.51,63.08z"/> + <path class="st106" d="M-43.93,73.49c-2.21,1.69-3.27,4.34-2.18,5.68c1.05,1.28,3.49,1.11,5.62-0.47 + c2.3-1.71,3.19-4.31,2.06-5.75C-39.47,71.64-41.88,71.91-43.93,73.49z"/> + <path class="st106" d="M277.18-41.75c-3,0.69-4.87,2.56-4.04,3.88c0.78,1.24,3.65,1.65,6.46,0.99 + c3.09-0.73,4.98-2.37,4.12-3.72C282.95-41.84,279.96-42.39,277.18-41.75z"/> + <path class="st106" d="M240.29-20.33c2.65-0.67,4.58-2.17,4.04-3.25c-0.58-1.19-3.8-1.59-6.79-0.77 + c-2.85,0.77-4.32,2.24-3.54,3.36C234.76-19.9,237.56-19.64,240.29-20.33z"/> + <path class="st106" d="M215.51-16.52c-0.67-1.12-3.59-1.56-6.4-0.91c-2.88,0.67-4.59,2.18-4,3.37 + c0.64,1.29,3.67,1.65,6.59,0.87C214.35-13.89,216.17-15.42,215.51-16.52z"/> + <path class="st106" d="M180.09-10.22c-2.84,0.75-4.35,2.3-3.6,3.52c0.75,1.2,3.46,1.55,6.25,0.87c2.88-0.7,4.87-2.44,3.97-3.62 + C185.85-10.57,182.84-10.95,180.09-10.22z"/> + <path class="st106" d="M154.66,1.64c2.6-0.78,4.3-2.41,3.56-3.58c-0.81-1.29-4.1-1.69-7.01-0.76c-2.73,0.87-4,2.5-3.04,3.71 + C149.09,2.18,152.01,2.43,154.66,1.64z"/> + <path class="st106" d="M130.06,5.94c-0.76-1.24-3.7-1.7-6.42-0.94c-2.79,0.78-4.34,2.48-3.65,3.8c0.75,1.43,3.78,1.79,6.6,0.89 + C129.15,8.87,130.8,7.15,130.06,5.94z"/> + <path class="st106" d="M95.78,13.62c-2.7,0.93-4.02,2.71-3.16,4.05c0.85,1.33,3.53,1.64,6.18,0.8 + c2.74-0.87,4.51-2.87,3.51-4.17C101.38,13.07,98.4,12.72,95.78,13.62z"/> + <path class="st106" d="M75.42,23.71c-0.83-1.32-3.72-1.73-6.31-0.8c-2.65,0.95-4.03,2.85-3.26,4.27 + c0.83,1.53,3.8,1.81,6.47,0.73C74.75,26.93,76.24,25.01,75.42,23.71z"/> + <path class="st106" d="M49.31,34.06c-0.82-1.38-3.64-1.76-6.16-0.75c-2.58,1.04-3.9,3.06-3.12,4.54 + c0.84,1.6,3.72,1.86,6.32,0.68C48.68,37.47,50.11,35.42,49.31,34.06z"/> + <path class="st106" d="M18,45.03c-2.43,1.21-3.56,3.38-2.69,4.88c0.94,1.61,3.81,1.73,6.25,0.38c2.23-1.24,3.45-3.42,2.55-4.78 + C23.19,44.11,20.37,43.85,18,45.03z"/> + <path class="st106" d="M-6.08,58.31c-2.26,1.47-3.09,3.75-2.03,5.23c1.04,1.45,3.58,1.45,5.79,0.11c2.32-1.41,3.51-4,2.33-5.42 + C-1.11,56.9-3.88,56.88-6.08,58.31z"/> + <path class="st106" d="M-22.63,72.78c-1.11-1.38-3.76-1.29-5.83,0.27c-2.29,1.74-2.96,4.38-1.6,5.86 + c1.21,1.32,3.82,0.97,5.74-0.66C-22.35,76.59-21.54,74.14-22.63,72.78z"/> + <path class="st106" d="M-44.18,88.65c-1.06-1.42-3.66-1.33-5.72,0.23c-2.13,1.61-2.99,3.98-1.95,5.57 + c1.08,1.66,3.79,1.49,5.92-0.27C-43.97,92.56-43.13,90.04-44.18,88.65z"/> + <path class="st106" d="M272.9-31.02c-0.79-1-3.73-1.27-6.48-0.52c-3.05,0.82-4.58,2.42-3.54,3.52c0.93,0.98,3.9,1.07,6.51,0.26 + C272.05-28.58,273.68-30.04,272.9-31.02z"/> + <path class="st106" d="M295.34-39.11c-2.85,0.72-4.65,2.16-4.2,3.26c0.49,1.19,3.36,1.45,6.26,0.63 + c2.61-0.73,4.51-2.23,4.01-3.24C300.89-39.48,298.13-39.81,295.34-39.11z"/> + <path class="st106" d="M-50.28,104.26c-0.76-1.42-3.07-1.44-5.19,0.02c-2.04,1.41-3.17,3.96-2.46,5.36 + c0.71,1.39,3.06,1.27,5.14-0.21C-50.64,107.91-49.52,105.68-50.28,104.26z"/> + <path class="st106" d="M-34.03,88.41c-2.03,1.43-3.15,3.97-2.43,5.3c0.72,1.34,3.09,1.16,5.18-0.32 + c2.13-1.5,3.26-3.71,2.48-5.1C-29.57,86.92-31.93,86.93-34.03,88.41z"/> + <path class="st106" d="M-12.53,72.97c-2.05,1.46-3.06,3.93-2.21,5.13c0.86,1.22,3.3,0.92,5.41-0.56 + c2.15-1.51,3.2-3.58,2.31-4.87C-7.89,71.42-10.48,71.51-12.53,72.97z"/> + <path class="st106" d="M10.81,58.66c-2.25,1.16-3.61,3.43-2.98,4.76c0.62,1.31,3.06,1.31,5.34,0.09 + c2.35-1.26,3.74-3.2,3.06-4.53C15.56,57.63,13.15,57.45,10.81,58.66z"/> + <path class="st106" d="M34.69,46.27c-2.29,1.17-3.57,3.32-2.78,4.44c0.81,1.15,3.41,1.05,5.76-0.14c2.4-1.21,3.68-3,2.85-4.21 + C39.72,45.18,36.99,45.09,34.69,46.27z"/> + <path class="st106" d="M66.09,35.42c-0.62-1.22-3.2-1.5-5.71-0.53c-2.43,0.94-4.02,2.92-3.44,4.12 + c0.58,1.2,3.17,1.31,5.65,0.32C65.14,38.32,66.72,36.64,66.09,35.42z"/> + <path class="st106" d="M86.67,24.8c-2.51,0.85-4.19,2.72-3.63,3.86c0.56,1.15,3.19,1.29,5.76,0.4 + c2.62-0.91,4.28-2.49,3.67-3.66C91.88,24.23,89.26,23.92,86.67,24.8z"/> + <path class="st106" d="M113.45,15.75c-2.54,0.87-4.13,2.64-3.43,3.66c0.71,1.05,3.46,1.12,6.07,0.24 + c2.66-0.9,4.2-2.36,3.47-3.47C118.86,15.12,116,14.88,113.45,15.75z"/> + <path class="st106" d="M147.31,7.81c-0.7-1.02-3.61-1.26-6.19-0.44c-2.56,0.81-4.21,2.51-3.52,3.47c0.72,1,3.5,1.08,6.15,0.26 + C146.46,10.25,148.04,8.86,147.31,7.81z"/> + <path class="st106" d="M175.58,0.09c-0.54-1.03-3.26-1.35-5.97-0.64c-2.64,0.69-4.52,2.29-4.02,3.29 + c0.51,1.01,3.23,1.19,5.95,0.46C174.31,2.46,176.12,1.12,175.58,0.09z"/> + <path class="st106" d="M204.08-7.39c-0.51-0.99-3.21-1.3-5.95-0.61c-2.66,0.67-4.59,2.2-4.12,3.16 + c0.48,0.97,3.19,1.14,5.94,0.45C202.74-5.1,204.59-6.39,204.08-7.39z"/> + <path class="st106" d="M228.85-11.88c2.78-0.77,4.44-2,3.78-2.94c-0.64-0.9-3.53-1.1-6.18-0.36c-2.63,0.74-4.4,2.24-3.76,3.1 + C223.35-11.19,226.13-11.13,228.85-11.88z"/> + <path class="st106" d="M257.17-19.22c2.78-0.73,4.62-1.97,4.12-2.88c-0.49-0.9-3.22-1.11-5.93-0.41 + c-2.65,0.69-4.6,2.17-4.13,3.03C251.72-18.6,254.44-18.51,257.17-19.22z"/> + <path class="st106" d="M317.82-37.57c-0.3-0.89-2.71-1.06-5.44-0.33c-2.62,0.7-4.68,2.14-4.43,3.02 + c0.25,0.87,2.75,0.94,5.44,0.2C316.15-35.45,318.12-36.69,317.82-37.57z"/> + <path class="st106" d="M289.71-29.68c-0.46-0.86-3.14-1.03-5.83-0.3c-2.63,0.71-4.59,2.18-4.15,3.02 + c0.45,0.85,3.13,0.89,5.84,0.15C288.33-27.56,290.18-28.8,289.71-29.68z"/> + <path class="st106" d="M260.02-12.14c2.46-0.65,4.59-1.68,4.57-2.26c-0.02-0.64-2.47-0.59-5.2,0.17 + c-2.52,0.7-4.39,1.75-4.2,2.32C255.35-11.36,257.54-11.48,260.02-12.14z"/> + <path class="st106" d="M287.96-22.14c-2.5,0.67-4.55,1.74-4.55,2.32c0.01,0.59,1.87,0.51,4.41-0.15 + c2.61-0.68,5.02-1.83,4.91-2.4C292.63-22.89,290.5-22.81,287.96-22.14z"/> + <path class="st106" d="M316.27-28.41c2.43-0.75,4.4-1.77,4.3-2.27c-0.11-0.54-2.63-0.31-5.25,0.53 + c-2.46,0.79-4.17,1.82-3.93,2.29C311.64-27.39,313.86-27.66,316.27-28.41z"/> + <path class="st106" d="M347.92-39.61c-0.22-0.43-2.42-0.15-4.84,0.66c-2.42,0.81-4.28,1.89-4.18,2.38 + c0.11,0.52,2.52,0.14,5.06-0.75C346.36-38.17,348.14-39.17,347.92-39.61z"/> + <path class="st106" d="M-43.4,116.22c-0.54-0.91-2.58-0.52-4.47,0.92c-1.87,1.44-2.99,3.51-2.52,4.52 + c0.52,1.11,2.69,0.57,4.63-1.06C-43.94,119.08-42.86,117.13-43.4,116.22z"/> + <path class="st106" d="M-26.62,100.92c-1.91,1.4-3.08,3.4-2.65,4.37c0.43,0.96,2.29,0.61,4.2-0.74 + c2.02-1.42,3.47-3.59,2.92-4.54C-22.66,99.13-24.7,99.51-26.62,100.92z"/> + <path class="st106" d="M-0.48,84.33c-0.44-0.9-2.44-0.62-4.44,0.7c-1.98,1.31-3.25,3.27-2.88,4.26 + c0.4,1.08,2.49,0.63,4.56-0.87C-1.32,87.03-0.04,85.22-0.48,84.33z"/> + <path class="st106" d="M17.78,70.51c-2.09,1.15-3.53,2.97-3.23,3.92c0.31,0.97,2.08,0.8,4.22-0.34c2.2-1.17,3.97-3.1,3.56-4.04 + C21.95,69.17,19.91,69.34,17.78,70.51z"/> + <path class="st106" d="M46.37,57.17c-0.42-0.8-2.62-0.63-4.81,0.44c-2.18,1.07-3.66,2.73-3.32,3.6 + c0.36,0.95,2.68,0.64,4.96-0.58C45.33,59.5,46.79,57.97,46.37,57.17z"/> + <path class="st106" d="M66.43,46.02c-2.27,1-3.76,2.52-3.4,3.32c0.36,0.8,2.47,0.62,4.72-0.32c2.42-1.02,4.22-2.61,3.72-3.41 + C71,44.87,68.69,45.03,66.43,46.02z"/> + <path class="st106" d="M92.51,35.46c-2.34,0.87-3.99,2.3-3.71,3.09c0.28,0.79,2.36,0.69,4.7-0.14 + c2.47-0.88,4.47-2.39,4.06-3.17C97.17,34.51,94.87,34.58,92.51,35.46z"/> + <path class="st106" d="M120.59,28.55c2.36-0.84,4.12-2.08,3.81-2.78c-0.35-0.77-3.04-0.67-5.56,0.28 + c-2.39,0.89-3.82,2.16-3.37,2.85C115.91,29.57,118.25,29.38,120.59,28.55z"/> + <path class="st106" d="M151.82,16.97c-0.34-0.65-2.7-0.62-5.17,0.12c-2.45,0.75-4.24,1.99-4,2.7c0.26,0.77,2.78,0.63,5.36-0.23 + C150.43,18.77,152.16,17.63,151.82,16.97z"/> + <path class="st106" d="M179.69,8.73c-0.36-0.61-2.75-0.57-5.24,0.15c-2.5,0.72-4.29,1.89-4.04,2.56 + c0.26,0.72,2.86,0.57,5.46-0.25C178.32,10.41,180.05,9.34,179.69,8.73z"/> + <path class="st106" d="M203.72,3.3c2.49-0.71,4.41-1.75,4.2-2.36c-0.23-0.66-2.92-0.6-5.58,0.19c-2.5,0.74-4.13,1.83-3.77,2.43 + C198.92,4.13,201.27,3.99,203.72,3.3z"/> + <path class="st106" d="M231.74-4.39c2.47-0.65,4.57-1.69,4.52-2.3c-0.06-0.67-2.55-0.65-5.29,0.1 + c-2.52,0.69-4.36,1.77-4.14,2.36C227.04-3.64,229.26-3.74,231.74-4.39z"/> + <path class="st106" d="M249.14-14.13c-0.36-0.74-3.02-0.75-5.88,0.04c-2.57,0.71-4.29,1.87-3.95,2.57 + c0.37,0.76,2.96,0.68,5.78-0.12C247.63-12.35,249.47-13.45,249.14-14.13z"/> + <path class="st106" d="M273.07-19.17c2.8-0.75,4.89-1.94,4.44-2.62c-0.41-0.63-2.79-0.62-5.38,0.06 + c-2.84,0.75-4.79,1.99-4.35,2.69C268.18-18.4,270.5-18.48,273.07-19.17z"/> + <path class="st106" d="M305.69-29.62c-0.14-0.65-2.39-0.68-4.94-0.01c-2.87,0.75-4.96,1.96-4.77,2.7 + c0.17,0.67,2.31,0.63,4.86-0.05C303.66-27.74,305.85-28.9,305.69-29.62z"/> + <path class="st106" d="M328.99-35.46c2.73-0.84,4.78-2.06,4.39-2.67c-0.37-0.57-2.64-0.44-5.17,0.33 + c-2.77,0.84-4.7,2.1-4.31,2.73C324.26-34.5,326.49-34.69,328.99-35.46z"/> + <path class="st106" d="M-57.03,118.73c-0.59-1.12-2.7-0.95-4.67,0.45c-2.2,1.55-3.36,3.84-2.68,5.1 + c0.63,1.16,2.63,0.91,4.58-0.51C-57.65,122.2-56.38,119.96-57.03,118.73z"/> + <path class="st106" d="M-35.78,102.5c-0.59-1.06-2.69-0.84-4.68,0.56c-2.19,1.54-3.37,3.8-2.71,4.97 + c0.62,1.08,2.59,0.78,4.57-0.64C-36.44,105.84-35.13,103.65-35.78,102.5z"/> + <path class="st106" d="M-14.3,86.54c-0.73-1.08-3.09-0.66-5.18,1.04c-1.89,1.53-2.85,3.55-2.18,4.55 + c0.73,1.1,2.99,0.61,5.1-1.1C-14.69,89.5-13.63,87.52-14.3,86.54z"/> + <path class="st106" d="M2.93,72.18c-2.08,1.3-3.28,3.24-2.81,4.34c0.5,1.19,2.78,0.9,5.03-0.53c2.05-1.3,3.39-3.13,2.96-4.21 + C7.64,70.62,5.2,70.76,2.93,72.18z"/> + <path class="st106" d="M28.69,62.22c2.13-1.2,3.49-2.89,2.98-3.87c-0.56-1.06-3.07-0.92-5.47,0.42 + c-2.17,1.2-3.38,2.99-2.84,3.99C23.95,63.84,26.32,63.55,28.69,62.22z"/> + <path class="st106" d="M53.24,50c2.23-1.08,3.7-2.64,3.22-3.58c-0.52-1.02-3.1-0.95-5.61,0.24c-2.27,1.08-3.59,2.74-3.08,3.7 + C48.32,51.4,50.76,51.2,53.24,50z"/> + <path class="st106" d="M82.2,35.6c-0.65-0.93-3.3-0.85-5.88,0.28c-2.32,1.01-3.64,2.56-3.05,3.44 + c0.65,0.95,3.15,0.74,5.75-0.39C81.32,37.92,82.78,36.45,82.2,35.6z"/> + <path class="st106" d="M108.89,26c-0.36-0.88-2.71-1.02-5.18-0.24c-2.77,0.87-4.57,2.4-4.14,3.4c0.39,0.91,2.6,0.94,5.06,0.14 + C107.34,28.41,109.28,26.96,108.89,26z"/> + <path class="st106" d="M130.39,16.97c-2.5,0.81-4.1,2.16-3.73,3.02c0.4,0.93,2.97,0.9,5.69,0.01c2.46-0.81,4.2-2.08,3.85-2.92 + C135.81,16.17,133.14,16.08,130.39,16.97z"/> + <path class="st106" d="M160.01,11.58c2.5-0.75,4.32-1.96,4.03-2.77c-0.32-0.88-3-0.98-5.8-0.16c-2.55,0.75-4.23,2.02-3.91,2.86 + C154.67,12.41,157.25,12.41,160.01,11.58z"/> + <path class="st106" d="M192.24,0.97c-0.3-0.76-2.68-0.91-5.28-0.27c-2.89,0.71-4.87,2.02-4.52,2.87 + c0.33,0.79,2.59,0.84,5.18,0.18C190.45,3.04,192.56,1.81,192.24,0.97z"/> + <path class="st106" d="M220.69-6.56c-0.2-0.74-2.54-0.9-5.15-0.3c-2.93,0.68-4.99,1.93-4.74,2.77 + c0.23,0.77,2.45,0.84,5.05,0.22C218.72-4.56,220.91-5.73,220.69-6.56z"/> + <path class="st106" d="M60.56,55.31c-0.37-0.63-2.51-0.3-4.75,0.8c-2.2,1.08-3.75,2.6-3.37,3.2c0.38,0.62,2.46,0.17,4.71-0.94 + C59.43,57.25,60.94,55.94,60.56,55.31z"/> + <path class="st106" d="M82.21,47.08c2.4-1,4.07-2.21,3.83-2.86c-0.23-0.64-2.37-0.42-4.7,0.54c-2.29,0.94-4.02,2.36-3.79,2.99 + C77.8,48.39,79.89,48.06,82.21,47.08z"/> + <path class="st106" d="M108.59,36.66c2.44-0.93,4.09-2.05,3.74-2.61c-0.35-0.56-2.59-0.32-4.99,0.6 + c-2.36,0.9-4.06,2.2-3.71,2.73C104,37.93,106.17,37.58,108.59,36.66z"/> + <path class="st106" d="M31.72,68.47c-2.12,1.16-3.66,2.81-3.41,3.54c0.25,0.73,2.22,0.28,4.36-0.91 + c2.22-1.23,3.73-2.65,3.47-3.39C35.89,66.99,33.87,67.3,31.72,68.47z"/> + <path class="st106" d="M9.83,85.02c2.07-1.39,3.39-2.93,2.99-3.64c-0.39-0.7-2.4-0.22-4.42,1.13c-1.99,1.33-3.33,3.13-2.93,3.8 + C5.88,86.98,7.81,86.37,9.83,85.02z"/> + <path class="st106" d="M-11.9,100.62c1.99-1.48,3.17-3.21,2.74-3.94c-0.42-0.72-2.3-0.11-4.24,1.34 + c-1.92,1.43-3.18,3.31-2.76,4C-15.74,102.73-13.85,102.07-11.9,100.62z"/> + <path class="st106" d="M139.34,24.78c-0.26-0.55-2.49-0.37-4.95,0.46c-2.42,0.82-4.25,2.03-3.99,2.56 + c0.27,0.54,2.48,0.26,4.92-0.57C137.84,26.37,139.6,25.33,139.34,24.78z"/> + <path class="st106" d="M166.89,16.15c-0.13-0.54-2.32-0.42-4.82,0.34c-2.46,0.74-4.43,1.88-4.3,2.42 + c0.13,0.55,2.3,0.32,4.8-0.44C165.15,17.68,167.02,16.71,166.89,16.15z"/> + <path class="st106" d="M194.81,7.97c-0.07-0.52-2.24-0.4-4.78,0.31c-2.5,0.7-4.53,1.77-4.46,2.3c0.07,0.52,2.23,0.32,4.76-0.4 + C192.96,9.41,194.89,8.5,194.81,7.97z"/> + <path class="st106" d="M222.95-0.01c-0.21-0.45-2.46-0.26-5.01,0.46c-2.51,0.71-4.48,1.75-4.25,2.18 + c0.23,0.44,2.45,0.18,5-0.55C221.3,1.33,223.16,0.45,222.95-0.01z"/> + <path class="st106" d="M246.55-5.73c2.65-0.73,4.64-1.59,4.64-2.07c0-0.47-2.11-0.32-4.67,0.37c-2.52,0.68-4.63,1.68-4.64,2.15 + C241.88-4.81,244.01-5.03,246.55-5.73z"/> + <path class="st106" d="M279.31-15.81c-0.19-0.38-2.41-0.12-4.96,0.62c-2.5,0.73-4.47,1.71-4.27,2.08 + c0.21,0.38,2.41,0.05,4.96-0.69C277.64-14.56,279.51-15.42,279.31-15.81z"/> + <path class="st106" d="M303.04-22.06c2.55-0.79,4.39-1.65,4.17-2c-0.21-0.34-2.43-0.02-4.95,0.76 + c-2.46,0.76-4.42,1.75-4.18,2.07C298.33-20.89,300.5-21.27,303.04-22.06z"/> + <path class="st106" d="M-30.47,112.82c-0.45-0.75-2.37-0.17-4.26,1.35c-1.86,1.5-3.04,3.47-2.59,4.2 + c0.47,0.74,2.33,0.05,4.22-1.48C-31.17,115.32-30.01,113.58-30.47,112.82z"/> + <path class="st106" d="M-51.24,129.6c-0.52-0.8-2.45-0.21-4.3,1.36c-1.81,1.55-2.9,3.62-2.37,4.4c0.54,0.8,2.43,0.12,4.26-1.48 + C-51.77,132.24-50.71,130.41-51.24,129.6z"/> + <path class="st106" d="M357.15-39.84c2.53-0.9,4.47-1.83,4.56-2.21c0.09-0.38-1.83-0.02-4.24,0.83 + c-2.38,0.84-4.47,1.89-4.57,2.27C352.8-38.57,354.75-38.99,357.15-39.84z"/> + <path class="st106" d="M329.96-31.88c-2.44,0.81-4.39,1.8-4.22,2.12c0.18,0.32,2.3-0.11,4.79-0.94 + c2.52-0.84,4.36-1.72,4.2-2.05C334.57-33.08,332.43-32.7,329.96-31.88z"/> + <path class="st106" d="M237.4-1.67c-0.04-0.34-2.24-0.04-4.78,0.69c-2.36,0.68-4.13,1.47-4.19,1.83 + c-0.07,0.39,1.92,0.1,4.4-0.6C235.25-0.43,237.44-1.33,237.4-1.67z"/> + <path class="st106" d="M204.87,6.92c-2.6,0.73-4.53,1.63-4.48,2.03c0.06,0.39,2.14,0.08,4.61-0.66 + c2.23-0.66,4.16-1.48,4.3-1.87C209.46,5.99,207.41,6.2,204.87,6.92z"/> + <path class="st106" d="M176.62,15.21c-2.55,0.78-4.29,1.71-4.05,2.09c0.21,0.34,2.1,0.05,4.35-0.63 + c2.38-0.72,4.52-1.7,4.46-2.1C181.33,14.16,179.13,14.44,176.62,15.21z"/> + <path class="st106" d="M148.92,23.86c-2.49,0.83-4.13,1.81-3.81,2.2c0.28,0.34,2.22,0.01,4.43-0.72 + c2.35-0.77,4.4-1.81,4.24-2.21C153.62,22.72,151.37,23.04,148.92,23.86z"/> + <path class="st106" d="M122.29,34.72c2.29-0.8,4.38-1.93,4.34-2.41c-0.03-0.44-1.84-0.25-4.04,0.47 + c-2.47,0.81-4.46,1.94-4.5,2.48C118.05,35.82,119.91,35.55,122.29,34.72z"/> + <path class="st106" d="M100.1,42.15c-0.15-0.48-2.3-0.13-4.64,0.83c-2.18,0.89-3.73,1.95-3.67,2.47 + c0.05,0.55,1.98,0.21,4.28-0.71C98.31,43.83,100.25,42.63,100.1,42.15z"/> + <path class="st106" d="M74.34,52.92c-0.19-0.51-2.31-0.09-4.57,0.96c-2.11,0.98-3.55,2.13-3.46,2.68 + c0.1,0.58,1.99,0.18,4.22-0.84C72.7,54.74,74.53,53.43,74.34,52.92z"/> + <path class="st106" d="M46.05,67.79c2.08-1.12,3.76-2.54,3.46-3.02c-0.3-0.49-2.45,0.06-4.58,1.23 + c-1.99,1.09-3.29,2.34-3.1,2.88C42.02,69.46,43.92,68.94,46.05,67.79z"/> + <path class="st106" d="M25.76,77.98c-0.29-0.53-2.32,0.07-4.37,1.37c-2.08,1.32-3.3,2.78-2.87,3.28 + c0.38,0.44,2.1-0.18,3.96-1.33C24.45,80.06,26.05,78.5,25.76,77.98z"/> + <path class="st106" d="M3.26,92.67c-0.28-0.58-2.19,0.09-4.13,1.53c-1.81,1.35-2.95,2.84-2.77,3.47 + c0.2,0.68,1.9,0.04,3.82-1.36C2.04,94.95,3.53,93.25,3.26,92.67z"/> + <path class="st106" d="M-18.12,108.76c-0.17-0.7-1.97-0.1-3.89,1.38c-1.8,1.39-2.98,2.95-2.87,3.69 + c0.13,0.8,1.72,0.26,3.6-1.17C-19.47,111.29-17.95,109.46-18.12,108.76z"/> + <path class="st106" d="M-38.9,125.53c-0.22-0.77-1.99-0.16-3.85,1.39c-1.74,1.45-2.85,3.11-2.68,3.93 + c0.19,0.88,1.78,0.35,3.59-1.14C-40.1,128.27-38.68,126.31-38.9,125.53z"/> + <path class="st106" d="M-63.01,144.46c-1.84,1.65-2.81,3.52-2.29,4.31c0.46,0.69,2.04,0.1,3.65-1.33 + c1.7-1.51,2.97-3.6,2.63-4.4C-59.37,142.22-61.21,142.85-63.01,144.46z"/> + <path class="st106" d="M261.11-7.87c2.43-0.71,4.53-1.58,4.38-1.85c-0.15-0.27-2.46,0.11-4.95,0.85 + c-2.32,0.69-4.01,1.45-3.99,1.76C256.57-6.79,258.63-7.15,261.11-7.87z"/> + <path class="st106" d="M289.03-16.09c2.41-0.73,4.52-1.61,4.4-1.85c-0.12-0.25-2.39,0.17-4.87,0.93 + c-2.31,0.71-4.01,1.46-4.02,1.75C284.54-14.95,286.56-15.34,289.03-16.09z"/> + <path class="st106" d="M321.05-26.5c0-0.26-2.12,0.18-4.6,0.98c-2.31,0.74-4.06,1.51-4.17,1.8c-0.11,0.31,1.81-0.09,4.24-0.87 + C318.89-25.35,321.05-26.25,321.05-26.5z"/> + <path class="st106" d="M348.22-35.63c0.03-0.24-2.02,0.25-4.45,1.1c-2.27,0.79-4.02,1.59-4.15,1.86 + c-0.14,0.3,1.72-0.16,4.1-0.99C346.04-34.46,348.19-35.39,348.22-35.63z"/> + <path class="st106" d="M-53.47,143.91c0.36,0.58,1.93-0.22,3.53-1.73c1.78-1.68,2.91-3.49,2.45-4.05 + c-0.4-0.48-2.15,0.38-3.7,1.87C-52.75,141.5-53.81,143.35-53.47,143.91z"/> + <path class="st106" d="M-27.4,120.61c-0.21-0.54-1.78,0.13-3.45,1.52c-1.61,1.33-2.95,3.15-2.84,3.78 + c0.12,0.71,1.85-0.15,3.67-1.74C-28.34,122.67-27.19,121.16-27.4,120.61z"/> + <path class="st106" d="M-9.41,107.42c1.79-1.36,3.08-2.8,2.97-3.35c-0.11-0.54-1.64,0.07-3.4,1.34 + c-1.84,1.33-3.43,3.22-3.17,3.68C-12.77,109.53-11.17,108.76-9.41,107.42z"/> + <path class="st106" d="M15.24,88.43c-0.04-0.55-1.55-0.08-3.41,1.12c-1.92,1.24-3.62,3.02-3.45,3.51 + c0.17,0.46,1.76-0.21,3.6-1.46C13.86,90.32,15.28,88.99,15.24,88.43z"/> + <path class="st106" d="M34.79,77.2c1.98-1.15,3.48-2.36,3.44-2.87c-0.04-0.49-1.66-0.07-3.59,1c-2.02,1.12-3.84,2.74-3.65,3.18 + C31.17,78.93,32.85,78.32,34.79,77.2z"/> + <path class="st106" d="M58.8,64.22c2.06-1.04,3.63-2.14,3.59-2.6c-0.04-0.45-1.75-0.06-3.76,0.91 + c-2.11,1.01-4.02,2.5-3.82,2.89C55,65.8,56.77,65.24,58.8,64.22z"/> + <path class="st106" d="M87.55,50.08c-0.13-0.37-2.02,0.05-4.08,0.95c-2.03,0.88-3.81,2.08-3.79,2.49 + c0.02,0.47,2.04-0.08,4.35-1.12C86.15,51.45,87.69,50.47,87.55,50.08z"/> + <path class="st106" d="M109.65,41.84c2.21-0.86,3.92-1.79,3.93-2.19c0.01-0.39-1.78-0.08-3.93,0.72 + c-2.26,0.84-4.36,2.09-4.2,2.43C105.61,43.13,107.48,42.68,109.65,41.84z"/> + <path class="st106" d="M136.15,30.72c-2.14,0.74-4.1,1.76-4.17,2.13c-0.09,0.42,2.01-0.03,4.44-0.89 + c2.26-0.81,3.95-1.65,3.88-1.99C140.24,29.64,138.34,29.96,136.15,30.72z"/> + <path class="st106" d="M159.09,23.72c0.12,0.28,2.03-0.11,4.29-0.84c2.5-0.81,4.42-1.69,4.18-1.97 + c-0.21-0.25-2.35,0.15-4.54,0.88C160.81,22.53,158.98,23.45,159.09,23.72z"/> + <path class="st106" d="M195.23,12.43c-0.02-0.28-1.94,0.03-4.2,0.71c-2.19,0.65-4.26,1.56-4.38,1.87 + c-0.13,0.36,2-0.05,4.51-0.83C193.49,13.45,195.26,12.71,195.23,12.43z"/> + <path class="st106" d="M223.14,4.21c0.14-0.3-1.57-0.04-3.9,0.61c-2.4,0.67-4.76,1.64-4.74,1.91c0.02,0.25,1.91-0.11,4.22-0.79 + C221.09,5.24,223,4.51,223.14,4.21z"/> + <path class="st106" d="M246.83-3.17c-2.24,0.66-4.28,1.47-4.35,1.71c-0.08,0.27,2.09-0.18,4.62-0.94 + c2.36-0.71,4.09-1.38,4.04-1.6C251.09-4.2,249.1-3.83,246.83-3.17z"/> + <path class="st106" d="M357.27-38.14c-2.04,0.74-4.25,1.67-4.55,1.9c-0.3,0.23,1.29-0.25,3.43-1.03 + c2.4-0.88,4.59-1.77,4.77-1.97C361.08-39.42,359.43-38.92,357.27-38.14z"/> + <path class="st106" d="M329.76-27.95c2.3-0.78,4.17-1.51,4.34-1.71c0.17-0.2-1.51,0.22-3.72,0.95 + c-2.33,0.77-4.68,1.72-4.68,1.87C325.7-26.68,327.51-27.19,329.76-27.95z"/> + <path class="st106" d="M302.63-19.12c2.32-0.74,4.11-1.42,4.14-1.61c0.03-0.18-1.83,0.24-4.07,0.94 + c-2.41,0.75-4.62,1.64-4.46,1.77C298.39-17.89,300.35-18.39,302.63-19.12z"/> + <path class="st106" d="M274.95-11.38c-2.21,0.65-4.33,1.47-4.5,1.72c-0.19,0.28,1.91-0.19,4.42-0.95 + c2.34-0.71,4.15-1.39,4.19-1.61C279.09-12.42,277.22-12.05,274.95-11.38z"/> + <path class="st106" d="M249.83-1.76c0.17-0.14-1.67,0.32-3.91,0.99c-1.99,0.6-3.91,1.27-4.15,1.43 + c-0.28,0.19,1.34-0.23,3.59-0.91C247.54-0.9,249.66-1.61,249.83-1.76z"/> + <path class="st106" d="M277.58-10.24c0.22-0.14-1.56,0.34-3.79,1.02c-1.96,0.6-3.94,1.28-4.23,1.43 + c-0.33,0.18,1.27-0.26,3.47-0.93C275.22-9.39,277.36-10.11,277.58-10.24z"/> + <path class="st106" d="M305.14-18.99c0.11-0.08-1.76,0.47-3.97,1.19c-2.03,0.65-3.8,1.27-4,1.38 + c-0.22,0.13,1.48-0.38,3.66-1.09C303.01-18.21,305.04-18.9,305.14-18.99z"/> + <path class="st106" d="M328.6-26.9c-2.21,0.76-4.1,1.44-4.13,1.49c-0.03,0.04,1.53-0.48,3.47-1.15c2.12-0.73,4.2-1.48,4.4-1.57 + C332.53-28.23,330.78-27.65,328.6-26.9z"/> + <path class="st106" d="M354.7-36.24c2.08-0.79,4.13-1.57,4.33-1.65c0.21-0.08-1.5,0.55-3.63,1.36 + c-1.9,0.71-3.76,1.42-4.04,1.54C351.05-34.87,352.57-35.43,354.7-36.24z"/> + <path class="st106" d="M-45.07,145.05c-0.15-0.5-1.64,0.41-3.13,1.96c-1.34,1.4-2.38,3.05-2.28,3.6 + c0.11,0.63,1.42-0.17,2.92-1.74C-46.1,147.34-44.91,145.55-45.07,145.05z"/> + <path class="st106" d="M-25.89,126.46c0.01-0.49-1.4,0.32-2.99,1.76c-1.38,1.25-2.67,2.88-2.72,3.39 + c-0.06,0.59,1.18-0.13,2.75-1.57C-27.31,128.64-25.89,126.95-25.89,126.46z"/> + <path class="st106" d="M-8.62,112.37c1.64-1.3,3.14-2.76,3.14-3.14c0-0.37-1.53,0.44-3.22,1.78c-1.5,1.19-2.81,2.58-2.87,2.98 + C-11.63,114.46-10.31,113.7-8.62,112.37z"/> + <path class="st106" d="M12.71,96.15c1.74-1.22,3.28-2.55,3.25-2.87c-0.03-0.32-1.64,0.46-3.4,1.71 + c-1.6,1.13-2.92,2.38-2.97,2.73C9.53,98.12,10.93,97.39,12.71,96.15z"/> + <path class="st106" d="M38.7,78.86c-0.07-0.26-1.83,0.48-3.67,1.61c-1.71,1.05-3.04,2.13-3.06,2.43 + c-0.02,0.34,1.56-0.38,3.38-1.48C37.18,80.31,38.77,79.12,38.7,78.86z"/> + <path class="st106" d="M58.9,67.25c-1.96,1.03-3.49,2.11-3.35,2.32c0.13,0.18,1.7-0.44,3.42-1.33c1.93-1,3.65-2.1,3.64-2.37 + C62.61,65.59,60.85,66.23,58.9,67.25z"/> + <path class="st106" d="M83.71,55.31c-2.04,0.93-3.65,1.93-3.51,2.12c0.12,0.17,1.74-0.4,3.52-1.21c2-0.91,3.81-1.91,3.82-2.16 + C87.55,53.81,85.74,54.38,83.71,55.31z"/> + <path class="st106" d="M113.33,43.27c0.01-0.22-1.86,0.31-3.95,1.16c-1.92,0.78-3.51,1.62-3.62,1.87 + c-0.12,0.28,1.57-0.23,3.63-1.06C111.46,44.4,113.32,43.49,113.33,43.27z"/> + <path class="st106" d="M135.89,34.37c-2.16,0.79-3.93,1.63-3.84,1.8c0.07,0.15,1.72-0.32,3.62-1.01 + c2.11-0.76,4.07-1.62,4.15-1.84C139.9,33.1,138.04,33.58,135.89,34.37z"/> + <path class="st106" d="M166.87,24.01c0.03-0.18-1.91,0.31-4.09,1.05c-2.01,0.68-3.69,1.39-3.82,1.6 + c-0.14,0.22,1.61-0.23,3.76-0.96C164.89,24.97,166.85,24.18,166.87,24.01z"/> + <path class="st106" d="M186.31,17.72c-0.04,0.16,1.86-0.33,4.03-1.03c2.24-0.72,4.08-1.41,3.99-1.53 + c-0.07-0.1-1.83,0.32-3.82,0.94C188.33,16.79,186.34,17.56,186.31,17.72z"/> + <path class="st106" d="M222.02,6.66c0.16-0.16-1.69,0.28-3.93,0.96c-1.99,0.61-3.89,1.29-4.12,1.47 + c-0.26,0.21,1.36-0.19,3.61-0.88C219.76,7.56,221.87,6.83,222.02,6.66z"/> + <path class="st106" d="M260.59-5.96c-2.36,0.7-4.34,1.42-4.46,1.59c-0.12,0.18,1.67-0.26,4.02-0.97 + c2.3-0.69,4.4-1.42,4.52-1.59C264.8-7.08,262.91-6.64,260.59-5.96z"/> + <path class="st106" d="M292.38-15.37c0.29-0.19-1.47,0.24-3.74,0.93c-2.39,0.73-4.38,1.44-4.66,1.64 + c-0.28,0.2,1.39-0.23,3.69-0.94C289.94-14.43,292.09-15.17,292.38-15.37z"/> + <path class="st106" d="M315.93-23.08c-2.32,0.76-4.28,1.48-4.43,1.62c-0.15,0.14,1.59-0.37,3.9-1.13 + c2.25-0.74,4.34-1.49,4.48-1.62C320.03-24.34,318.2-23.83,315.93-23.08z"/> + <path class="st106" d="M346.89-33.55c0.25-0.15-1.47,0.4-3.69,1.19c-2.31,0.82-4.25,1.56-4.49,1.71 + c-0.24,0.15,1.4-0.38,3.65-1.18C344.6-32.63,346.63-33.4,346.89-33.55z"/> + <path class="st106" d="M-58.97,153.03c-1.58,1.61-2.59,3.4-2.28,4c0.32,0.6,1.77-0.25,3.36-1.93c1.53-1.61,2.64-3.46,2.36-3.99 + C-55.82,150.58-57.4,151.44-58.97,153.03z"/> + <path class="st106" d="M-36.31,132.56c-0.13-0.51-1.67,0.3-3.3,1.8c-1.67,1.53-2.84,3.22-2.68,3.77 + c0.16,0.56,1.59-0.28,3.22-1.82C-37.48,134.8-36.18,133.07-36.31,132.56z"/> + <path class="st106" d="M-19.39,116.66c-1.79,1.44-3.1,2.97-3.09,3.53c0.01,0.55,1.4-0.2,3.11-1.61 + c1.69-1.39,3.15-2.97,3.17-3.5C-16.17,114.57-17.68,115.29-19.39,116.66z"/> + <path class="st106" d="M1.61,100.24c-1.85,1.36-3.22,2.8-3.23,3.3c-0.01,0.48,1.42-0.25,3.21-1.58 + c1.76-1.31,3.29-2.78,3.32-3.25C4.94,98.24,3.38,98.94,1.61,100.24z"/> + <path class="st106" d="M23.68,86.59c1.86-1.19,3.49-2.52,3.48-2.91c-0.02-0.39-1.68,0.25-3.58,1.45 + c-1.93,1.22-3.41,2.55-3.38,2.96C20.22,88.5,21.76,87.81,23.68,86.59z"/> + <path class="st106" d="M50.61,70.2c0.11-0.42-1.55,0.1-3.52,1.14c-2.07,1.1-3.66,2.29-3.76,2.74c-0.1,0.44,1.44-0.11,3.43-1.18 + C48.72,71.84,50.49,70.63,50.61,70.2z"/> + <path class="st106" d="M75.19,57.9c-0.08-0.3-1.91,0.25-3.99,1.24c-2.1,1-3.71,2.09-3.64,2.41c0.07,0.32,1.77-0.26,3.89-1.28 + C73.5,59.28,75.26,58.19,75.19,57.9z"/> + <path class="st106" d="M96.66,47.88c-2.18,0.91-3.9,1.91-3.88,2.22c0.02,0.31,1.75-0.21,3.94-1.13c2.14-0.9,4-1.9,3.98-2.19 + C100.67,46.5,98.79,46.99,96.66,47.88z"/> + <path class="st106" d="M122.78,37.62c-2.23,0.84-3.98,1.75-3.94,2.02c0.04,0.27,1.8-0.21,4.09-1.07 + c2.18-0.83,4.09-1.75,4.03-1.99C126.9,36.33,124.98,36.79,122.78,37.62z"/> + <path class="st106" d="M153.86,27.13c0-0.24-1.94,0.19-4.19,0.96c-2.29,0.78-4.11,1.63-4.12,1.89 + c-0.01,0.26,1.79-0.19,4.1-0.99C151.88,28.22,153.86,27.36,153.86,27.13z"/> + <path class="st106" d="M177.04,19.14c-2.33,0.74-4.21,1.54-4.25,1.77c-0.04,0.24,1.78-0.19,4.11-0.94 + c2.28-0.73,4.3-1.53,4.33-1.75C181.27,18.01,179.32,18.42,177.04,19.14z"/> + <path class="st106" d="M208.92,9.73c0.14-0.22-1.73,0.16-4.05,0.85c-2.37,0.71-4.32,1.47-4.45,1.7 + c-0.13,0.24,1.63-0.16,3.98-0.87C206.67,10.72,208.77,9.95,208.92,9.73z"/> + <path class="st106" d="M232.51,2.94c2.31-0.69,4.32-1.42,4.28-1.56c-0.04-0.15-1.99,0.29-4.33,0.99 + c-2.34,0.7-4.23,1.42-4.21,1.58C228.27,4.11,230.12,3.66,232.51,2.94z"/> + <path class="st106" d="M231.51,4.19c-2.25,0.69-4.41,1.42-4.53,1.53c-0.11,0.1,1.54-0.35,3.56-0.98 + c2.32-0.71,4.38-1.4,4.5-1.51C235.15,3.14,233.57,3.56,231.51,4.19z"/> + <path class="st106" d="M207.29,11.84c0.24-0.16-1.21,0.21-3.2,0.82c-2.21,0.68-4.42,1.46-4.73,1.65 + c-0.3,0.19,1.49-0.3,3.78-1.02C205.27,12.62,207.05,12,207.29,11.84z"/> + <path class="st106" d="M176.02,21.63c-2.24,0.74-4.2,1.5-4.1,1.59c0.09,0.08,1.75-0.4,3.82-1.09c2.31-0.76,4.14-1.45,4.07-1.55 + C179.74,20.5,178.08,20.95,176.02,21.63z"/> + <path class="st106" d="M148.82,31.34c2.04-0.73,3.73-1.42,3.83-1.58c0.12-0.18-1.72,0.34-3.94,1.14 + c-1.96,0.7-3.75,1.46-3.86,1.62C144.72,32.71,146.59,32.14,148.82,31.34z"/> + <path class="st106" d="M122.27,40.63c-2.16,0.83-4.03,1.73-3.92,1.84c0.1,0.11,1.7-0.42,3.69-1.19 + c2.22-0.86,3.98-1.66,3.9-1.79C125.87,39.37,124.25,39.87,122.27,40.63z"/> + <path class="st106" d="M99.91,49.98c0.05-0.19-1.46,0.3-3.36,1.11c-2.08,0.88-4.01,1.9-4.07,2.11 + c-0.06,0.21,1.75-0.45,3.87-1.38C98.27,50.97,99.86,50.17,99.91,49.98z"/> + <path class="st106" d="M74.63,61.39c0.01-0.19-1.47,0.35-3.33,1.25c-2.01,0.97-3.84,2.08-3.84,2.28c0,0.21,1.76-0.52,3.81-1.55 + C73.13,62.45,74.62,61.58,74.63,61.39z"/> + <path class="st106" d="M46.65,76.35c1.99-1.12,3.66-2.21,3.65-2.44c-0.01-0.21-1.43,0.39-3.21,1.38 + c-1.93,1.07-3.66,2.29-3.64,2.5C43.45,78,44.91,77.33,46.65,76.35z"/> + <path class="st106" d="M27.05,87.73c-0.02-0.22-1.39,0.44-3.08,1.54c-1.83,1.19-3.46,2.52-3.44,2.76 + c0.03,0.24,1.64-0.65,3.51-1.9C25.73,89,27.07,87.95,27.05,87.73z"/> + <path class="st106" d="M5.05,103.01c-0.03-0.24-1.33,0.51-2.92,1.72c-1.72,1.32-3.24,2.79-3.2,3.04 + c0.04,0.26,1.56-0.74,3.32-2.12C3.83,104.41,5.08,103.25,5.05,103.01z"/> + <path class="st106" d="M-18.62,123.02c1.54-1.39,2.76-2.69,2.89-3.13c0.14-0.48-1.16,0.33-2.82,1.79 + c-1.63,1.44-3,3.04-2.9,3.32C-21.34,125.25-20.1,124.36-18.62,123.02z"/> + <path class="st106" d="M-35.05,138.3c0-0.45-1.13,0.27-2.5,1.61c-1.52,1.5-2.85,3.33-2.86,3.88c-0.01,0.55,1.34-0.45,2.86-2.07 + C-36.13,140.23-35.05,138.77-35.05,138.3z"/> + <path class="st106" d="M-55.33,161.8c1.33-1.6,2.26-3.19,2.14-3.71c-0.13-0.57-1.5,0.37-2.96,2.07 + c-1.29,1.5-2.27,3.24-2.15,3.79C-58.17,164.56-56.77,163.53-55.33,161.8z"/> + <path class="st106" d="M258.99-4.23c-2.27,0.7-4.31,1.38-4.26,1.42c0.04,0.04,1.7-0.44,3.8-1.09c2.34-0.73,4.23-1.35,4.22-1.4 + C262.73-5.34,261.08-4.87,258.99-4.23z"/> + <path class="st106" d="M286.06-12.56c2.12-0.68,3.92-1.27,4.24-1.41c0.35-0.14-1.29,0.35-3.57,1.08 + c-2.05,0.65-3.95,1.28-4.3,1.42C282.06-11.31,283.77-11.83,286.06-12.56z"/> + <path class="st106" d="M313.61-21.59c2.09-0.71,3.84-1.31,4.07-1.4c0.25-0.1-1.47,0.47-3.73,1.23 + c-1.99,0.67-3.89,1.32-4.13,1.41C309.56-20.24,311.36-20.83,313.61-21.59z"/> + <path class="st106" d="M344.63-32.5c0.06-0.01-1.47,0.55-3.48,1.28c-2.18,0.79-4.24,1.53-4.27,1.54 + c-0.04,0.01,1.78-0.65,4.06-1.48C342.92-31.88,344.57-32.48,344.63-32.5z"/> + <path class="st106" d="M370.97-42.67c0.23-0.07-1.13,0.5-3.04,1.26c-2.09,0.84-4.23,1.67-4.51,1.75 + c-0.27,0.09,1.45-0.61,3.61-1.47C369.05-41.93,370.74-42.6,370.97-42.67z"/> + <path class="st106" d="M-60.69,171.84c-0.15-0.54-1.4,0.39-2.68,2.01c-1.31,1.66-2.16,3.41-1.94,3.97 + c0.22,0.54,1.44-0.38,2.64-1.97C-61.47,174.27-60.53,172.38-60.69,171.84z"/> + <path class="st106" d="M-45.9,154.53c1.25-1.5,2.35-3.24,2.32-3.7c-0.04-0.46-1.24,0.46-2.59,2.01 + c-1.38,1.59-2.37,3.21-2.26,3.67C-48.33,156.97-47.17,156.05-45.9,154.53z"/> + <path class="st106" d="M-25.4,131.02c-0.11-0.23-1.38,0.76-2.85,2.28c-1.48,1.53-2.46,2.86-2.32,3.12 + c0.14,0.24,1.4-0.82,2.78-2.28C-26.39,132.67-25.29,131.25-25.4,131.02z"/> + <path class="st106" d="M-8.41,114.93c-1.6,1.33-2.86,2.63-2.9,2.92c-0.04,0.29,1.18-0.57,2.68-1.84 + c1.47-1.25,2.89-2.61,2.98-2.91C-5.55,112.79-6.83,113.62-8.41,114.93z"/> + <path class="st106" d="M15.59,96.89c0.02-0.22-1.36,0.57-3.04,1.78c-1.71,1.23-3,2.36-2.99,2.57c0.01,0.2,1.4-0.65,2.97-1.79 + C14.13,98.29,15.57,97.11,15.59,96.89z"/> + <path class="st106" d="M38.12,82.27c0.18-0.29-1.16,0.34-2.94,1.42c-1.82,1.1-3.29,2.17-3.42,2.45 + c-0.13,0.28,1.15-0.37,2.86-1.42C36.29,83.7,37.95,82.55,38.12,82.27z"/> + <path class="st106" d="M61.84,68.95c-0.04-0.15-1.58,0.52-3.48,1.54c-1.91,1.02-3.27,1.91-3.21,2.06 + c0.05,0.14,1.61-0.57,3.4-1.54C60.37,70.03,61.88,69.1,61.84,68.95z"/> + <path class="st106" d="M79.62,60.14c-0.08,0.19,1.42-0.39,3.25-1.25c1.82-0.85,3.57-1.78,3.71-1.98 + c0.13-0.21-1.41,0.37-3.32,1.25C81.29,59.06,79.7,59.94,79.62,60.14z"/> + <path class="st106" d="M112.17,45.83c-0.05-0.11-1.7,0.46-3.74,1.31c-2.04,0.85-3.51,1.59-3.45,1.7 + c0.06,0.11,1.73-0.49,3.66-1.31C110.59,46.72,112.21,45.94,112.17,45.83z"/> + <path class="st106" d="M138.47,35.64c0.12-0.15-1.51,0.35-3.55,1.11c-2.08,0.78-3.75,1.51-3.82,1.65 + c-0.07,0.14,1.57-0.38,3.49-1.11C136.53,36.57,138.36,35.79,138.47,35.64z"/> + <path class="st106" d="M161.75,27.15c-2.12,0.73-3.83,1.41-3.92,1.54c-0.08,0.13,1.58-0.37,3.54-1.05 + c1.98-0.69,3.85-1.41,3.98-1.55C165.47,25.95,163.82,26.43,161.75,27.15z"/> + <path class="st106" d="M192.61,17.04c0.27-0.17-1.26,0.26-3.37,0.94c-2.16,0.7-3.98,1.35-4.2,1.51 + c-0.22,0.16,1.27-0.26,3.31-0.92C190.34,17.92,192.34,17.2,192.61,17.04z"/> + <path class="st106" d="M215.96,9.71c2-0.63,3.99-1.31,4.22-1.44c0.23-0.13-1.39,0.32-3.5,0.98c-2.16,0.67-3.98,1.3-4.15,1.42 + C212.35,10.79,213.93,10.35,215.96,9.71z"/> + <path class="st106" d="M247.85-0.38c0-0.05-1.7,0.45-3.91,1.14c-2.19,0.68-3.81,1.23-3.79,1.28c0.02,0.05,1.77-0.46,3.84-1.12 + C246.08,0.26,247.85-0.33,247.85-0.38z"/> + <path class="st106" d="M275.47-9.05c0.16-0.08-1.48,0.42-3.6,1.09c-2.16,0.68-3.95,1.27-4.06,1.34 + c-0.11,0.07,1.56-0.43,3.55-1.06C273.38-8.33,275.31-8.97,275.47-9.05z"/> + <path class="st106" d="M302.91-17.96c0.19-0.08-1.43,0.45-3.52,1.14c-2.14,0.7-3.93,1.3-4.07,1.37 + c-0.14,0.06,1.49-0.45,3.47-1.11C300.78-17.22,302.72-17.88,302.91-17.96z"/> + <path class="st106" d="M330.23-27.33c0.04-0.01-1.55,0.55-3.71,1.31c-2.09,0.73-3.82,1.34-3.79,1.33 + c0.03-0.01,1.78-0.61,3.76-1.31C328.53-26.72,330.19-27.32,330.23-27.33z"/> + <path class="st106" d="M356.85-37.2c0.2-0.06-1.26,0.52-3.33,1.31c-2.02,0.77-3.87,1.46-4.01,1.5 + c-0.14,0.04,1.45-0.57,3.38-1.3C354.81-36.43,356.66-37.14,356.85-37.2z"/> + <path class="st106" d="M-53.66,166.06c-1.19,1.53-2.13,3.38-1.97,3.85c0.15,0.43,1.09-0.34,2.2-1.79 + c1.21-1.59,2.23-3.45,2.19-4.01C-51.29,163.58-52.47,164.52-53.66,166.06z"/> + <path class="st106" d="M-34.19,142.93c-0.06-0.32-1.34,0.78-2.6,2.26c-1.16,1.36-2.09,2.8-2.09,3.21 + c0,0.48,1.02-0.39,2.35-1.98C-35.24,144.89-34.14,143.26-34.19,142.93z"/> + <path class="st106" d="M-15.73,123.52c-0.08-0.17-1.49,0.94-2.85,2.29c-1.45,1.44-2.41,2.66-2.22,2.77 + c0.17,0.09,1.24-0.81,2.56-2.13C-16.83,125.05-15.64,123.69-15.73,123.52z"/> + <path class="st106" d="M1.96,108c-1.5,1.17-2.91,2.48-2.95,2.71c-0.04,0.21,0.98-0.46,2.39-1.56c1.54-1.2,3.04-2.51,3.2-2.82 + C4.76,106.01,3.47,106.82,1.96,108z"/> + <path class="st106" d="M23.4,93.11c1.65-1.12,3.09-2.21,3.05-2.36c-0.04-0.15-1.62,0.74-3.21,1.82c-1.46,1-2.7,1.99-2.76,2.19 + C20.4,95.01,21.71,94.26,23.4,93.11z"/> + <path class="st106" d="M46.29,78.87c1.74-1.01,3.26-2.01,3.22-2.15c-0.03-0.14-1.69,0.66-3.36,1.64c-1.54,0.9-2.85,1.81-2.93,2 + C43.14,80.58,44.51,79.9,46.29,78.87z"/> + <path class="st106" d="M73.68,63.97c-0.04-0.12-1.78,0.61-3.52,1.5c-1.86,0.95-3.18,1.76-3.01,1.83 + c0.15,0.06,1.49-0.53,3.19-1.39C72.16,65,73.72,64.09,73.68,63.97z"/> + <path class="st106" d="M98.79,52.33c-0.01-0.12-1.78,0.54-3.59,1.35c-1.92,0.86-3.33,1.62-3.19,1.7 + c0.13,0.07,1.48-0.45,3.25-1.25C97.15,53.29,98.8,52.46,98.79,52.33z"/> + <path class="st106" d="M124.69,41.63c-0.03-0.1-1.86,0.52-3.72,1.27c-1.99,0.8-3.41,1.48-3.25,1.54 + c0.14,0.05,1.57-0.44,3.38-1.17C123.04,42.49,124.72,41.73,124.69,41.63z"/> + <path class="st106" d="M147.64,33.17c2-0.73,3.66-1.43,3.57-1.5c-0.09-0.07-1.98,0.53-3.88,1.23c-1.76,0.65-3.2,1.27-3.26,1.38 + C144,34.42,145.6,33.92,147.64,33.17z"/> + <path class="st106" d="M174.97,23.26c-1.93,0.65-3.85,1.38-3.98,1.51c-0.12,0.12,1.16-0.24,2.98-0.85 + c2-0.67,3.97-1.4,4.26-1.59C178.5,22.15,176.91,22.6,174.97,23.26z"/> + <path class="st106" d="M205.65,13.31c0.02-0.08-1.86,0.47-3.82,1.11c-2.08,0.68-3.64,1.25-3.52,1.29 + c0.11,0.04,1.55-0.38,3.47-1C203.83,14.04,205.63,13.39,205.65,13.31z"/> + <path class="st106" d="M233.23,4.55c0.15-0.11-1.62,0.4-3.6,1.03c-1.81,0.57-3.51,1.15-3.77,1.29 + c-0.3,0.16,1.12-0.23,3.21-0.89C231.14,5.33,233.07,4.66,233.23,4.55z"/> + <path class="st106" d="M257.52-3.2c-1.96,0.62-3.94,1.28-4.08,1.38c-0.14,0.09,1.15-0.27,2.99-0.85 + c2.03-0.64,4.04-1.32,4.35-1.47C261.08-4.28,259.5-3.82,257.52-3.2z"/> + <path class="st106" d="M284.79-11.91c-2.04,0.66-3.77,1.25-3.79,1.3c-0.02,0.04,1.34-0.37,3.23-0.98 + c2.05-0.67,3.97-1.33,4.13-1.42C288.51-13.09,286.76-12.55,284.79-11.91z"/> + <path class="st106" d="M312.11-20.98c-2.01,0.69-3.74,1.29-3.76,1.33c-0.03,0.03,1.32-0.4,3.19-1.04 + c2.02-0.69,3.93-1.38,4.09-1.46C315.78-22.23,314.06-21.65,312.11-20.98z"/> + <path class="st106" d="M338.62-30.3c1.99-0.73,3.79-1.42,3.87-1.47c0.08-0.04-1.68,0.61-3.6,1.31 + c-1.78,0.65-3.36,1.23-3.54,1.31C335.13-29.04,336.57-29.54,338.62-30.3z"/> + <path class="st106" d="M368.77-42c0.27-0.12-1.23,0.51-3.09,1.26c-1.67,0.68-3.42,1.37-3.77,1.51 + c-0.42,0.17,0.79-0.29,2.75-1.08C366.58-41.09,368.49-41.88,368.77-42z"/> + <path class="st106" d="M-59.92,182.39c1.06-1.62,1.81-3.35,1.7-3.88c-0.13-0.6-1.26,0.44-2.48,2.29 + c-1.05,1.6-1.75,3.33-1.53,3.75C-62,184.97-60.95,183.97-59.92,182.39z"/> + <path class="st106" d="M-44.59,158.08c-1.14,1.49-2.05,3.13-2.05,3.63c0,0.5,0.97-0.36,2.08-1.83c1.3-1.73,2.29-3.46,2.2-3.86 + C-42.44,155.66-43.43,156.56-44.59,158.08z"/> + <path class="st106" d="M-25.16,135.14c0.08-0.38-0.87,0.39-2.12,1.77c-1.4,1.53-2.58,3.17-2.54,3.49 + c0.04,0.28,1.07-0.66,2.29-2.05C-26.27,136.91-25.24,135.53-25.16,135.14z"/> + <path class="st106" d="M-8.74,118.26c-1.37,1.23-2.53,2.48-2.58,2.73c-0.05,0.25,1.04-0.6,2.4-1.82 + c1.55-1.41,2.85-2.72,2.79-2.88C-6.19,116.15-7.33,117-8.74,118.26z"/> + <path class="st106" d="M12.1,101.6c-1.49,1.09-2.77,2.19-2.84,2.41c-0.07,0.22,1.11-0.52,2.59-1.59 + c1.7-1.24,3.12-2.41,3.06-2.56C14.86,99.72,13.63,100.47,12.1,101.6z"/> + <path class="st106" d="M34.31,87.19c1.61-1.01,2.92-1.95,2.99-2.15c0.06-0.2-1.17,0.43-2.76,1.42 + c-1.74,1.08-3.31,2.23-3.23,2.36C31.38,88.92,32.71,88.19,34.31,87.19z"/> + <path class="st106" d="M57.72,73.54c1.69-0.92,3.07-1.78,3.14-1.97c0.07-0.18-1.21,0.38-2.88,1.28 + c-1.82,0.98-3.48,2.03-3.4,2.15C54.65,75.11,56.05,74.45,57.72,73.54z"/> + <path class="st106" d="M81.95,61.21c1.74-0.83,3.29-1.66,3.49-1.89c0.23-0.26-1.27,0.32-3.25,1.27 + c-1.72,0.82-3.21,1.66-3.27,1.82C78.86,62.57,80.25,62.02,81.95,61.21z"/> + <path class="st106" d="M107.91,49.08c-1.79,0.75-3.44,1.54-3.73,1.79c-0.28,0.24,1.03-0.2,2.74-0.91 + c2.06-0.86,3.82-1.7,3.98-1.9C111.03,47.88,109.7,48.33,107.91,49.08z"/> + <path class="st106" d="M137.08,37.65c0.08-0.14-1.32,0.3-3.17,1c-2,0.76-3.84,1.59-3.76,1.68c0.08,0.08,1.62-0.42,3.47-1.14 + C135.49,38.47,137,37.79,137.08,37.65z"/> + <path class="st106" d="M160.76,28.81c-1.87,0.65-3.62,1.35-3.96,1.57c-0.32,0.21,1.04-0.16,2.81-0.78 + c2.16-0.75,4.01-1.49,4.21-1.67C163.99,27.77,162.62,28.16,160.76,28.81z"/> + <path class="st106" d="M191,18.68c0.09-0.12-1.35,0.28-3.26,0.91c-2.07,0.68-3.98,1.42-3.9,1.49c0.07,0.07,1.66-0.38,3.58-1.03 + C189.34,19.4,190.91,18.8,191,18.68z"/> + <path class="st106" d="M214.62,11.14c1.91-0.62,3.61-1.23,3.82-1.38c0.23-0.17-1.42,0.29-3.61,1 + c-1.89,0.61-3.55,1.22-3.59,1.31C211.19,12.17,212.76,11.74,214.62,11.14z"/> + <path class="st106" d="M242.44,1.97c-1.9,0.61-3.58,1.2-3.65,1.29c-0.07,0.1,1.47-0.32,3.34-0.92c2.13-0.68,3.99-1.35,3.9-1.4 + C245.95,0.89,244.42,1.34,242.44,1.97z"/> + <path class="st106" d="M270.11-6.85c-1.9,0.61-3.6,1.2-3.74,1.32c-0.14,0.11,1.34-0.3,3.22-0.9c2.16-0.69,4-1.36,3.99-1.43 + C273.57-7.93,272.07-7.48,270.11-6.85z"/> + <path class="st106" d="M297.85-15.93c-1.89,0.63-3.68,1.26-4.02,1.43c-0.33,0.16,1.05-0.22,2.85-0.82 + c2.19-0.72,4.06-1.41,4.26-1.54C301.12-16.98,299.75-16.56,297.85-15.93z"/> + <path class="st106" d="M328.04-26.26c0.09-0.08-1.32,0.39-3.2,1.06c-2.04,0.72-3.95,1.44-3.87,1.47 + c0.07,0.03,1.64-0.47,3.53-1.15C326.39-25.57,327.95-26.18,328.04-26.26z"/> + <path class="st106" d="M351.47-35.04c-1.82,0.7-3.5,1.37-3.72,1.5c-0.25,0.15,1.39-0.42,3.48-1.23 + c1.86-0.72,3.37-1.36,3.43-1.43C354.72-36.27,353.32-35.75,351.47-35.04z"/> + <path class="st106" d="M-49.57,170.3c-0.07-0.54-0.99,0.28-2.03,1.82c-1,1.48-1.86,3.36-1.77,3.89 + c0.09,0.55,1.01-0.28,2.05-1.86C-50.33,172.65-49.5,170.83-49.57,170.3z"/> + <path class="st106" d="M-33.67,147.8c-0.06-0.33-1.11,0.66-2.21,2.1c-1.12,1.47-2.01,3.05-1.92,3.38 + c0.09,0.33,1.12-0.69,2.21-2.15C-34.5,149.67-33.61,148.13-33.67,147.8z"/> + <path class="st106" d="M-18.48,129.39c-1.26,1.35-2.26,2.69-2.19,2.9c0.07,0.21,1.2-0.79,2.4-2.09 + c1.24-1.34,2.23-2.62,2.2-2.85C-16.11,127.13-17.27,128.09-18.48,129.39z"/> + <path class="st106" d="M3.79,109.53c0.02-0.21-1.23,0.6-2.61,1.71c-1.44,1.15-2.63,2.3-2.63,2.5c0.01,0.19,1.23-0.63,2.61-1.74 + C2.57,110.87,3.77,109.75,3.79,109.53z"/> + <path class="st106" d="M22.84,96c1.49-1.03,2.67-2,2.62-2.15c-0.05-0.15-1.44,0.63-2.91,1.64c-1.52,1.05-2.72,2.06-2.64,2.19 + C20,97.8,21.39,97,22.84,96z"/> + <path class="st106" d="M48.39,79.62c-0.06-0.14-1.52,0.56-3.06,1.48c-1.62,0.97-2.87,1.87-2.78,2c0.09,0.13,1.56-0.6,3.08-1.51 + C47.22,80.65,48.45,79.77,48.39,79.62z"/> + <path class="st106" d="M69.22,68.67c1.61-0.82,3.12-1.73,3.21-1.95c0.09-0.22-1.24,0.31-2.88,1.14 + c-1.63,0.83-3.17,1.77-3.24,1.97C66.24,70.05,67.57,69.51,69.22,68.67z"/> + <path class="st106" d="M94.11,56.69c1.67-0.75,3.22-1.59,3.31-1.79c0.09-0.2-1.31,0.29-3,1.05c-1.7,0.76-3.28,1.62-3.34,1.81 + C91,57.95,92.4,57.46,94.11,56.69z"/> + <path class="st106" d="M119.79,45.69c1.72-0.69,3.32-1.48,3.41-1.67c0.09-0.19-1.34,0.26-3.08,0.96 + c-1.75,0.71-3.38,1.5-3.45,1.68C116.59,46.85,118.03,46.4,119.79,45.69z"/> + <path class="st106" d="M149.64,33.9c0.08-0.17-1.42,0.26-3.2,0.92c-1.8,0.67-3.44,1.4-3.5,1.56c-0.05,0.16,1.46-0.27,3.24-0.93 + C147.95,34.8,149.56,34.07,149.64,33.9z"/> + <path class="st106" d="M173.54,25.16c-1.79,0.61-3.57,1.33-3.74,1.52c-0.17,0.2,1.2-0.15,3.06-0.78 + c1.78-0.6,3.51-1.32,3.69-1.52C176.73,24.19,175.35,24.55,173.54,25.16z"/> + <path class="st106" d="M203.87,15.24c0.08-0.16-1.44,0.24-3.28,0.85c-1.85,0.61-3.55,1.27-3.61,1.42 + c-0.06,0.15,1.5-0.24,3.32-0.84C202.12,16.06,203.79,15.39,203.87,15.24z"/> + <path class="st106" d="M231.37,6.34c0.06-0.14-1.54,0.28-3.36,0.87c-1.9,0.61-3.53,1.23-3.56,1.37 + c-0.03,0.13,1.58-0.27,3.4-0.86C229.71,7.11,231.31,6.48,231.37,6.34z"/> + <path class="st106" d="M255.29-1.09c1.81-0.58,3.52-1.24,3.63-1.39c0.11-0.15-1.38,0.24-3.23,0.83 + c-1.85,0.59-3.59,1.24-3.68,1.38C251.92-0.12,253.44-0.49,255.29-1.09z"/> + <path class="st106" d="M286.4-11.41c0.09-0.14-1.43,0.28-3.26,0.88c-1.85,0.61-3.56,1.25-3.62,1.38 + c-0.07,0.13,1.49-0.27,3.32-0.87C284.64-10.61,286.31-11.27,286.4-11.41z"/> + <path class="st106" d="M310.1-19.17c1.79-0.61,3.45-1.3,3.55-1.44c0.1-0.14-1.39,0.29-3.2,0.92c-1.83,0.63-3.54,1.29-3.61,1.43 + C306.76-18.14,308.28-18.55,310.1-19.17z"/> + <path class="st106" d="M340.51-30.25c0.15-0.16-1.23,0.27-3.02,0.93c-1.78,0.65-3.51,1.36-3.65,1.51 + c-0.14,0.16,1.27-0.25,3.09-0.91C338.69-29.36,340.36-30.09,340.51-30.25z"/> + <path class="st106" d="M360.33-37.88c0.02,0.1,1.62-0.43,3.34-1.13c1.77-0.72,3.21-1.42,3.22-1.53 + c0.01-0.11-1.54,0.45-3.28,1.16C361.81-38.65,360.3-37.97,360.33-37.88z"/> + <path class="st106" d="M-55.67,185.5c-0.14-0.54-1.17,0.48-2.11,2.1c-0.97,1.66-1.57,3.48-1.32,3.95 + c0.23,0.42,1.04-0.39,1.91-1.91C-56.21,187.94-55.52,186.07-55.67,185.5z"/> + <path class="st106" d="M-42.8,165.35c1.05-1.62,1.86-3.32,1.76-3.74c-0.09-0.4-1.14,0.67-2.15,2.21 + c-0.91,1.39-1.62,2.91-1.59,3.42C-44.74,167.82-43.84,166.95-42.8,165.35z"/> + <path class="st106" d="M-24.86,139.49c-0.12-0.22-1.23,0.83-2.37,2.29c-1.14,1.46-1.95,2.87-1.76,3.03 + c0.17,0.14,1.11-0.79,2.15-2.12C-25.69,141.22-24.74,139.7-24.86,139.49z"/> + <path class="st106" d="M-8.84,121.58c-1.34,1.26-2.42,2.55-2.44,2.86c-0.02,0.28,0.84-0.36,2.03-1.5 + c1.33-1.27,2.56-2.62,2.69-3C-6.42,119.57-7.56,120.37-8.84,121.58z"/> + <path class="st106" d="M14.27,103.2c0.07-0.27-1.22,0.46-2.65,1.52c-1.46,1.08-2.67,2.19-2.63,2.4 + c0.04,0.19,1.06-0.41,2.39-1.38C12.88,104.63,14.19,103.49,14.27,103.2z"/> + <path class="st106" d="M33.73,89.58c-1.54,0.98-2.83,2-2.76,2.19c0.06,0.17,1.14-0.36,2.55-1.25c1.59-1,2.97-2.04,3.03-2.31 + C36.62,87.96,35.24,88.62,33.73,89.58z"/> + <path class="st106" d="M60.01,74.57c-0.07-0.17-1.54,0.46-3.16,1.36c-1.62,0.9-2.88,1.8-2.72,1.93 + c0.14,0.12,1.4-0.43,2.88-1.25C58.67,75.71,60.08,74.74,60.01,74.57z"/> + <path class="st106" d="M84.5,62.16c-0.08-0.17-1.6,0.4-3.29,1.23c-1.68,0.83-2.99,1.66-2.82,1.79 + c0.15,0.12,1.47-0.38,3.01-1.13C83.11,63.22,84.58,62.32,84.5,62.16z"/> + <path class="st106" d="M106.45,52.63c1.79-0.76,3.34-1.59,3.42-1.83c0.07-0.22-1.46,0.26-3.18,0.99 + c-1.54,0.66-2.93,1.4-3.12,1.66C103.36,53.76,104.68,53.38,106.45,52.63z"/> + <path class="st106" d="M135.96,40.28c0.12-0.23-1.43,0.2-3.18,0.87c-1.8,0.7-3.31,1.45-3.29,1.64 + c0.02,0.17,1.25-0.16,2.89-0.78C134.22,41.31,135.84,40.52,135.96,40.28z"/> + <path class="st106" d="M162.64,30.39c-0.06-0.16-1.7,0.28-3.51,0.94c-1.82,0.67-3.26,1.35-3.09,1.49 + c0.14,0.12,1.55-0.25,3.22-0.85C161.1,31.3,162.7,30.55,162.64,30.39z"/> + <path class="st106" d="M186.65,21.78c-1.88,0.62-3.48,1.3-3.58,1.52c-0.08,0.2,1.1-0.05,2.8-0.6c1.9-0.62,3.64-1.35,3.88-1.62 + C189.98,20.84,188.45,21.19,186.65,21.78z"/> + <path class="st106" d="M217.15,12.03c0.11-0.21-1.51,0.17-3.34,0.76c-1.65,0.54-3.16,1.14-3.39,1.38 + c-0.26,0.27,1.13-0.01,3.02-0.61C215.36,12.95,217.04,12.25,217.15,12.03z"/> + <path class="st106" d="M241,4.66c1.92-0.61,3.59-1.3,3.68-1.5c0.08-0.2-1.55,0.18-3.39,0.78c-1.65,0.53-3.15,1.13-3.37,1.35 + C237.69,5.54,239.1,5.26,241,4.66z"/> + <path class="st106" d="M272.22-5.74c-0.06-0.15-1.72,0.26-3.58,0.88c-1.87,0.62-3.35,1.24-3.18,1.37 + c0.15,0.11,1.59-0.22,3.3-0.78C270.64-4.89,272.28-5.59,272.22-5.74z"/> + <path class="st106" d="M296.22-13.32c1.88-0.63,3.48-1.35,3.39-1.49c-0.1-0.14-1.75,0.3-3.61,0.93 + c-1.66,0.57-2.99,1.13-3.09,1.32C292.79-12.33,294.29-12.67,296.22-13.32z"/> + <path class="st106" d="M326.7-24.18c0.12-0.21-1.45,0.21-3.24,0.84c-1.84,0.65-3.4,1.33-3.38,1.51 + c0.02,0.15,1.29-0.15,2.96-0.73C324.94-23.22,326.58-23.96,326.7-24.18z"/> + <path class="st106" d="M350.14-32.52c1.81-0.7,3.35-1.48,3.23-1.61c-0.12-0.13-1.77,0.39-3.54,1.08 + c-1.62,0.63-2.88,1.23-2.95,1.43C346.79-31.41,348.26-31.8,350.14-32.52z"/> + <path class="st106" d="M377.24-38.76c1.55-0.67,2.72-1.5,2.58-1.8c-0.16-0.34-1.94,0.1-3.58,0.84 + c-1.52,0.68-2.54,1.42-2.28,1.68C374.22-37.78,375.63-38.07,377.24-38.76z"/> + <path class="st106" d="M353.61-30.06c-0.01-0.32-1.41-0.1-2.96,0.46c-1.56,0.56-3,1.35-3.09,1.72 + c-0.11,0.44,1.37,0.25,3.19-0.44C352.32-28.91,353.62-29.72,353.61-30.06z"/> + <path class="st106" d="M324.09-18.64c1.61-0.59,2.86-1.35,2.73-1.63c-0.14-0.32-1.97,0.05-3.69,0.7 + c-1.58,0.6-2.67,1.27-2.42,1.52C320.97-17.79,322.42-18.03,324.09-18.64z"/> + <path class="st106" d="M299.63-10.94c-0.17-0.26-1.66-0.01-3.26,0.52c-1.83,0.61-3.22,1.38-2.92,1.64 + c0.27,0.24,1.81-0.02,3.47-0.6C298.55-9.95,299.8-10.69,299.63-10.94z"/> + <path class="st106" d="M272.2-1.87c0.03-0.31-1.39-0.13-2.99,0.35c-1.61,0.49-3.15,1.21-3.28,1.56 + c-0.15,0.41,1.33,0.27,3.22-0.33C270.77-0.82,272.17-1.55,272.2-1.87z"/> + <path class="st106" d="M241.31,7.45c-1.69,0.54-2.97,1.18-2.95,1.5c0.02,0.32,1.31,0.19,2.99-0.33 + c1.84-0.56,3.46-1.41,3.26-1.69C244.42,6.69,242.91,6.94,241.31,7.45z"/> + <path class="st106" d="M-54.31,195.12c-0.77,1.47-1.3,3.32-1.14,4c0.17,0.7,0.91,0.11,1.69-1.37c0.87-1.64,1.47-3.77,1.26-4.4 + C-52.68,192.82-53.55,193.67-54.31,195.12z"/> + <path class="st106" d="M-39.02,168.15c-0.09-0.5-0.94,0.29-1.78,1.64c-0.83,1.35-1.53,3.12-1.47,3.74 + c0.07,0.73,0.95-0.07,1.89-1.74C-39.55,170.34-38.93,168.67-39.02,168.15z"/> + <path class="st106" d="M-23.81,144.93c-0.04-0.41-0.95,0.34-1.9,1.58c-0.95,1.25-1.78,2.81-1.78,3.33 + c0,0.61,0.92-0.17,2.01-1.69C-24.54,146.83-23.77,145.35-23.81,144.93z"/> + <path class="st106" d="M-6.23,124.44c-0.17-0.2-1.26,0.57-2.34,1.69c-1.26,1.3-2.11,2.59-1.84,2.77 + c0.23,0.16,1.31-0.7,2.43-1.89C-6.89,125.83-6.06,124.64-6.23,124.44z"/> + <path class="st106" d="M14.37,107.48c-0.15-0.22-1.34,0.38-2.58,1.31c-1.44,1.08-2.5,2.21-2.25,2.41 + c0.22,0.18,1.42-0.47,2.72-1.47C13.53,108.75,14.52,107.7,14.37,107.48z"/> + <path class="st106" d="M34.09,94.69c1.34-0.86,2.5-1.87,2.53-2.22c0.03-0.38-1.46,0.24-2.91,1.19 + c-1.32,0.87-2.34,1.82-2.24,2.08C31.58,96.03,32.69,95.59,34.09,94.69z"/> + <path class="st106" d="M57.5,80.77c1.42-0.8,2.57-1.72,2.53-2.02c-0.05-0.33-1.66,0.25-3.16,1.13c-1.4,0.82-2.39,1.66-2.23,1.9 + C54.81,82.03,56.03,81.6,57.5,80.77z"/> + <path class="st106" d="M81.49,67.12c-1.52,0.74-2.66,1.54-2.64,1.87c0.02,0.33,1.17,0.04,2.69-0.68 + c1.66-0.78,3.11-1.81,2.92-2.07C84.29,66.01,82.93,66.41,81.49,67.12z"/> + <path class="st106" d="M107.03,56.62c1.52-0.66,2.79-1.49,2.78-1.79c-0.01-0.33-1.73,0.11-3.35,0.84 + c-1.49,0.68-2.61,1.44-2.46,1.69C104.15,57.62,105.45,57.31,107.03,56.62z"/> + <path class="st106" d="M132.73,44.86c-1.61,0.63-2.83,1.34-2.82,1.67c0.01,0.32,1.23,0.12,2.83-0.48 + c1.76-0.66,3.31-1.59,3.13-1.86C135.7,43.95,134.26,44.26,132.73,44.86z"/> + <path class="st106" d="M159.59,34.79c-1.58,0.54-3.04,1.3-3.15,1.64c-0.12,0.36,1.04,0.24,2.64-0.29 + c1.78-0.59,3.45-1.47,3.46-1.82C162.56,34.03,161.15,34.25,159.59,34.79z"/> + <path class="st106" d="M189.63,24.88c-0.2-0.23-1.73,0.05-3.31,0.59c-1.83,0.63-3.15,1.37-2.81,1.62 + c0.29,0.21,1.86-0.08,3.49-0.68C188.61,25.82,189.83,25.1,189.63,24.88z"/> + <path class="st106" d="M214.22,17.38c1.64-0.56,2.93-1.27,2.82-1.53c-0.12-0.3-1.97,0.03-3.71,0.65 + c-1.61,0.57-2.73,1.21-2.5,1.45C211.07,18.19,212.53,17.95,214.22,17.38z"/> + <path class="st106" d="M255.21,1.81c1.65-0.55,2.96-1.2,2.9-1.41c-0.07-0.24-1.77,0.14-3.76,0.82 + c-1.68,0.57-2.94,1.19-2.67,1.32C251.95,2.68,253.61,2.34,255.21,1.81z"/> + <path class="st106" d="M282.73-7.12c1.64-0.56,2.94-1.22,2.88-1.43c-0.07-0.24-1.77,0.15-3.75,0.84 + c-1.67,0.58-2.92,1.2-2.66,1.34C279.48-6.23,281.14-6.57,282.73-7.12z"/> + <path class="st106" d="M312.9-17.73c-0.01-0.24-1.3,0.03-3.06,0.63c-1.7,0.58-3.2,1.26-3.31,1.52 + c-0.13,0.3,1.62-0.03,3.42-0.66C311.58-16.81,312.91-17.49,312.9-17.73z"/> + <path class="st106" d="M336.97-26.71c-1.66,0.59-3.2,1.31-3.4,1.62c-0.22,0.34,1.38,0.04,3.2-0.62 + c1.63-0.59,2.99-1.31,3.06-1.59C339.9-27.59,338.67-27.32,336.97-26.71z"/> + <path class="st106" d="M363.36-35.84c1.59-0.63,2.9-1.4,2.93-1.67c0.03-0.28-1.19,0.03-2.87,0.68 + c-1.87,0.73-3.42,1.56-3.26,1.77C360.3-34.86,361.79-35.21,363.36-35.84z"/> + <path class="st106" d="M227.42,10.75c1.67-0.54,3.07-1.2,3.13-1.45c0.05-0.26-1.21-0.02-2.97,0.53 + c-1.97,0.62-3.61,1.35-3.46,1.56C224.24,11.57,225.77,11.28,227.42,10.75z"/> + <path class="st106" d="M196.66,20.36c0.03,0.22,1.44-0.04,3.12-0.58c1.86-0.6,3.45-1.38,3.3-1.59 + c-0.14-0.19-1.58,0.14-3.34,0.73C197.96,19.52,196.63,20.14,196.66,20.36z"/> + <path class="st106" d="M175.81,27.4c-0.11-0.2-1.53,0.13-3.26,0.74c-1.74,0.62-3.1,1.26-3.09,1.49 + c0.01,0.25,1.81-0.14,3.58-0.78C174.64,28.27,175.92,27.59,175.81,27.4z"/> + <path class="st106" d="M148.91,37.01c-0.11-0.2-1.51,0.16-3.21,0.8c-1.72,0.65-3.04,1.33-3.03,1.56 + c0.01,0.25,1.78-0.17,3.52-0.85C147.77,37.9,149.02,37.2,148.91,37.01z"/> + <path class="st106" d="M122.52,47.23c-0.11-0.2-1.47,0.19-3.14,0.88c-1.68,0.7-2.97,1.41-2.96,1.65 + c0.01,0.26,1.75-0.21,3.45-0.94C121.4,48.16,122.63,47.42,122.52,47.23z"/> + <path class="st106" d="M96.79,58.24c0-0.25-1.2,0.11-2.84,0.85c-1.58,0.71-2.97,1.53-3.08,1.82c-0.12,0.32,1.48-0.15,3.16-0.93 + C95.55,59.28,96.79,58.49,96.79,58.24z"/> + <path class="st106" d="M68.9,72.19c1.46-0.73,2.82-1.64,2.96-1.96c0.15-0.34-0.9-0.02-2.43,0.74 + c-1.71,0.85-3.27,1.87-3.26,2.14C66.18,73.35,67.41,72.94,68.9,72.19z"/> + <path class="st106" d="M47.92,83.17c-0.11-0.19-1.35,0.35-2.84,1.24c-1.51,0.91-2.65,1.78-2.63,2.03 + c0.02,0.27,1.58-0.4,3.1-1.34C46.95,84.25,48.03,83.36,47.92,83.17z"/> + <path class="st106" d="M25.06,97.55c0.01-0.28-1.04,0.23-2.46,1.19c-1.37,0.93-2.61,1.99-2.72,2.32 + c-0.13,0.37,1.26-0.3,2.73-1.33C23.94,98.81,25.05,97.82,25.06,97.55z"/> + <path class="st106" d="M3.46,113.35c0-0.29-0.98,0.29-2.32,1.36c-1.28,1.02-2.43,2.21-2.52,2.56 + c-0.11,0.39,1.16-0.42,2.54-1.55C2.41,114.7,3.45,113.62,3.46,113.35z"/> + <path class="st106" d="M-15.89,131.69c-0.12-0.21-1.1,0.63-2.23,1.95c-1.15,1.33-1.96,2.58-1.9,2.88 + c0.07,0.32,1.27-0.76,2.42-2.14C-16.56,133.13-15.77,131.9-15.89,131.69z"/> + <path class="st106" d="M-32.62,153.2c-0.09-0.39-0.9,0.4-1.91,1.86c-0.97,1.4-1.76,2.98-1.74,3.46 + c0.02,0.54,1.09-0.52,2.11-2.07C-33.24,155.03-32.54,153.57-32.62,153.2z"/> + <path class="st106" d="M-47.43,176.83c-0.22-0.33-1.08,0.64-1.97,2.23c-0.9,1.6-1.45,3.19-1.26,3.63 + c0.2,0.48,1.28-0.74,2.16-2.42C-47.72,178.74-47.22,177.15-47.43,176.83z"/> + <path class="st106" d="M-61.87,206.11c0.77-1.58,1.22-3.36,1.01-3.93c-0.22-0.59-1.02,0.18-1.87,1.79 + c-0.95,1.8-1.48,3.82-1.13,4.29C-63.54,208.66-62.63,207.68-61.87,206.11z"/> + <path class="st106" d="M-56.5,211.23c-0.28-0.63-1.12,0.27-1.86,1.99c-0.71,1.66-1.04,3.59-0.7,4.07 + c0.3,0.42,1.07-0.41,1.7-1.82C-56.6,213.78-56.22,211.85-56.5,211.23z"/> + <path class="st106" d="M-44.24,184.65c-0.18-0.63-0.98,0.18-1.81,1.81c-0.79,1.56-1.28,3.41-1.03,3.9 + c0.21,0.41,0.99-0.38,1.66-1.68C-44.59,187.07-44.06,185.27-44.24,184.65z"/> + <path class="st106" d="M-32.56,161.78c-0.88,1.5-1.38,3.02-1.08,3.27c0.26,0.22,1.06-0.63,1.85-1.96 + c0.92-1.54,1.5-3.1,1.27-3.45C-30.74,159.28-31.66,160.24-32.56,161.78z"/> + <path class="st106" d="M-14.55,137.38c-0.05-0.48-0.98,0.19-2.07,1.51c-1.04,1.27-1.84,2.76-1.7,3.13 + c0.12,0.31,1.01-0.36,1.89-1.42C-15.34,139.3-14.49,137.86-14.55,137.38z"/> + <path class="st106" d="M2.11,120.98c1.26-1.07,2.31-2.24,2.22-2.6c-0.09-0.36-1.29,0.2-2.54,1.29c-1.14,1-1.93,1.99-1.96,2.43 + C-0.19,122.58,0.83,122.07,2.11,120.98z"/> + <path class="st106" d="M25.91,102.51c-0.17-0.31-1.44,0.25-2.82,1.23c-1.34,0.95-2.27,1.99-2,2.22 + c0.24,0.2,1.34-0.27,2.57-1.11C25.05,103.89,26.08,102.82,25.91,102.51z"/> + <path class="st106" d="M45.77,89.22c-1.42,0.87-2.4,1.84-2.1,2.08c0.26,0.21,1.43-0.2,2.71-0.97c1.48-0.88,2.55-1.87,2.37-2.18 + C48.56,87.84,47.23,88.32,45.77,89.22z"/> + <path class="st106" d="M70.05,77.19c1.52-0.77,2.75-1.74,2.65-2.09c-0.09-0.36-1.45,0.02-2.96,0.81 + c-1.38,0.72-2.36,1.49-2.42,1.89C67.26,78.24,68.5,77.97,70.05,77.19z"/> + <path class="st106" d="M97.61,63.15c-0.07-0.38-1.42-0.08-3.02,0.66c-1.53,0.71-2.75,1.61-2.55,1.91 + c0.17,0.26,1.43,0,2.77-0.59C96.41,64.43,97.68,63.53,97.61,63.15z"/> + <path class="st106" d="M120.42,54.04c1.65-0.64,2.96-1.5,2.92-1.88c-0.04-0.39-1.4-0.15-3.06,0.53 + c-1.44,0.59-2.56,1.29-2.67,1.69C117.48,54.83,118.78,54.68,120.42,54.04z"/> + <path class="st106" d="M147.12,43.58c1.68-0.65,2.84-1.45,2.57-1.74c-0.28-0.3-1.81,0-3.47,0.67c-1.34,0.54-2.48,1.28-2.4,1.58 + C143.91,44.45,145.5,44.21,147.12,43.58z"/> + <path class="st106" d="M173.62,32.63c-1.67,0.56-3.07,1.36-2.98,1.72c0.07,0.3,1.44,0.18,2.82-0.26 + c1.72-0.54,3.15-1.34,3.18-1.75C176.69,31.92,175.34,32.05,173.62,32.63z"/> + <path class="st106" d="M200.79,23.43c-1.67,0.54-3.05,1.33-2.9,1.67c0.13,0.29,1.5,0.17,2.94-0.27 + c1.74-0.53,3.14-1.31,3.13-1.71C203.94,22.71,202.54,22.86,200.79,23.43z"/> + <path class="st106" d="M228.41,15.86c1.75-0.53,3.14-1.3,3.08-1.69c-0.06-0.4-1.49-0.25-3.26,0.32 + c-1.53,0.49-2.71,1.11-2.82,1.51C225.29,16.44,226.67,16.39,228.41,15.86z"/> + <path class="st106" d="M259.11,5.29c-0.22-0.34-1.79-0.13-3.51,0.45c-1.67,0.56-2.85,1.3-2.51,1.6 + c0.31,0.26,1.69,0.11,3.22-0.38C258.05,6.41,259.32,5.64,259.11,5.29z"/> + <path class="st106" d="M286.66-3.61c-0.3-0.33-1.89-0.09-3.6,0.51c-1.64,0.58-2.77,1.34-2.35,1.61 + c0.39,0.24,1.81,0.06,3.31-0.43C285.76-2.5,286.96-3.28,286.66-3.61z"/> + <path class="st106" d="M314.09-12.69c-0.22-0.36-1.78-0.14-3.48,0.46c-1.66,0.59-2.82,1.36-2.47,1.67 + c0.31,0.28,1.68,0.12,3.2-0.39C313.06-11.52,314.31-12.33,314.09-12.69z"/> + <path class="st106" d="M337.79-21.7c-1.7,0.63-2.83,1.4-2.52,1.75c0.3,0.33,2.02,0.08,3.63-0.56c1.39-0.55,2.43-1.32,2.27-1.64 + C341-22.54,339.45-22.32,337.79-21.7z"/> + <path class="st106" d="M364.43-31.69c-1.67,0.67-2.77,1.47-2.44,1.83c0.31,0.34,2.01,0.06,3.59-0.62 + c1.36-0.58,2.36-1.39,2.2-1.72C367.59-32.59,366.06-32.34,364.43-31.69z"/> + <path class="st106" d="M390.37-42.32c-1.56,0.71-2.6,1.58-2.21,1.91c0.34,0.29,1.69,0.06,3.1-0.54 + c1.64-0.71,2.75-1.63,2.48-2.01C393.47-43.35,391.98-43.05,390.37-42.32z"/> + <path class="st106" d="M-61.07,231.92c-0.7,1.7-0.97,3.76-0.56,4.44c0.36,0.6,1.09-0.02,1.7-1.47 + c0.67-1.59,0.92-3.69,0.53-4.43C-59.74,229.81-60.46,230.44-61.07,231.92z"/> + <path class="st106" d="M-49.97,204.29c-0.69,1.62-1,3.63-0.62,4.07c0.33,0.39,1.14-0.46,1.72-1.82 + c0.66-1.56,0.96-3.55,0.6-4.05C-48.58,202.06-49.39,202.93-49.97,204.29z"/> + <path class="st106" d="M-35.81,176.15c-0.18-0.56-0.9,0.02-1.62,1.29c-0.82,1.44-1.38,3.36-1.15,3.96 + c0.23,0.61,1.14-0.25,1.9-1.79C-36.02,178.26-35.63,176.72-35.81,176.15z"/> + <path class="st106" d="M-22.55,154.87c0.9-1.45,1.34-2.86,0.97-3.11c-0.31-0.21-1.23,0.65-2.02,1.92 + c-0.82,1.32-1.28,2.62-1.07,3.02C-24.43,157.16-23.44,156.3-22.55,154.87z"/> + <path class="st106" d="M-5.87,133.37c1.08-1.23,1.68-2.46,1.31-2.71c-0.31-0.21-1.36,0.5-2.31,1.58 + c-0.98,1.13-1.59,2.27-1.4,2.63C-8.06,135.3-6.94,134.59-5.87,133.37z"/> + <path class="st106" d="M13.64,114.33c-1.34,0.96-2.36,2.15-2.18,2.57c0.16,0.37,1.15,0.05,2.32-0.75 + c1.28-0.88,2.29-2.1,2.14-2.57C15.79,113.17,14.81,113.49,13.64,114.33z"/> + <path class="st106" d="M38.15,98.47c-0.19-0.36-1.31-0.05-2.51,0.7c-1.35,0.85-2.43,2-2.2,2.37c0.21,0.33,1.37,0.01,2.55-0.7 + C37.31,100.05,38.36,98.88,38.15,98.47z"/> + <path class="st106" d="M58.91,85.37c-1.42,0.77-2.54,1.87-2.27,2.23c0.24,0.32,1.49,0.05,2.71-0.6 + c1.38-0.73,2.46-1.83,2.23-2.23C61.36,84.41,60.14,84.69,58.91,85.37z"/> + <path class="st106" d="M83.8,74.35c1.44-0.69,2.51-1.72,2.22-2.1c-0.24-0.32-1.63-0.04-2.85,0.55 + c-1.26,0.62-2.37,1.55-2.32,1.95C80.9,75.23,82.36,75.04,83.8,74.35z"/> + <path class="st106" d="M111.42,60.9c-0.07-0.43-1.21-0.35-2.58,0.18c-1.54,0.59-2.91,1.58-2.8,2.04 + c0.11,0.46,1.63,0.29,3.13-0.37C110.48,62.18,111.49,61.33,111.42,60.9z"/> + <path class="st106" d="M137.52,50.32c-0.07-0.43-1.24-0.38-2.64,0.11c-1.59,0.55-2.99,1.48-2.88,1.95 + c0.11,0.47,1.68,0.34,3.21-0.27C136.55,51.56,137.59,50.75,137.52,50.32z"/> + <path class="st106" d="M162.05,42.08c1.6-0.63,2.53-1.47,2.06-1.83c-0.4-0.31-1.88-0.09-3.28,0.47 + c-1.46,0.58-2.42,1.3-2.22,1.68C158.84,42.84,160.46,42.7,162.05,42.08z"/> + <path class="st106" d="M191.38,31.03c-0.16-0.42-1.4-0.38-2.89,0.08c-1.68,0.53-3.02,1.38-2.8,1.82 + c0.22,0.46,1.85,0.35,3.48-0.24C190.59,32.18,191.54,31.46,191.38,31.03z"/> + <path class="st106" d="M218.83,21.96c-0.26-0.36-1.77-0.26-3.13,0.18c-1.63,0.53-2.9,1.41-2.55,1.8 + c0.31,0.34,1.82,0.28,3.2-0.15C217.93,23.29,219.13,22.38,218.83,21.96z"/> + <path class="st106" d="M246.49,13.18c-0.24-0.41-1.56-0.36-3.06,0.09c-1.65,0.5-2.97,1.38-2.67,1.8 + c0.26,0.38,1.69,0.35,3.12-0.07C245.5,14.54,246.76,13.63,246.49,13.18z"/> + <path class="st106" d="M274.18,4.41c-0.24-0.41-1.6-0.37-3.07,0.08c-1.65,0.51-2.96,1.38-2.66,1.81 + c0.27,0.38,1.7,0.37,3.13-0.05C273.2,5.79,274.45,4.87,274.18,4.41z"/> + <path class="st106" d="M298.6-4.37c-1.63,0.53-2.88,1.44-2.51,1.85c0.32,0.37,1.84,0.33,3.23-0.11 + c1.58-0.5,2.77-1.44,2.44-1.89C301.47-4.9,299.96-4.82,298.6-4.37z"/> + <path class="st106" d="M326.82-11.8c1.59-0.56,2.65-1.5,2.24-1.94c-0.33-0.36-1.92-0.23-3.25,0.25 + c-1.4,0.5-2.52,1.31-2.39,1.75C323.58-11.24,325.25-11.25,326.82-11.8z"/> + <path class="st106" d="M353.59-21.28c1.34-0.45,2.55-1.35,2.54-1.86c-0.02-0.6-1.5-0.61-3.08-0.05 + c-1.36,0.48-2.63,1.35-2.62,1.83C350.45-20.8,351.98-20.74,353.59-21.28z"/> + <path class="st106" d="M380.54-31.61c1.55-0.69,2.37-1.65,1.82-2.08c-0.46-0.37-1.94-0.14-3.3,0.47 + c-1.41,0.64-2.29,1.44-2.02,1.89C377.36-30.81,379.01-30.93,380.54-31.61z"/> + <path class="st106" d="M-51.4,226.07c0.61-1.61,0.85-3.44,0.53-4.16c-0.3-0.68-1.1,0.02-1.69,1.46 + c-0.6,1.46-0.84,3.35-0.51,4.11C-52.74,228.25-52,227.63-51.4,226.07z"/> + <path class="st106" d="M-42.04,199.47c0.33,0.52,1.12-0.33,1.75-1.9c0.61-1.51,0.86-3.27,0.54-3.67 + c-0.34-0.42-1.18,0.5-1.79,1.95C-42.16,197.33-42.39,198.93-42.04,199.47z"/> + <path class="st106" d="M-26.84,168.04c-0.21-0.51-1.1,0.19-1.83,1.45c-0.76,1.31-1.19,2.89-0.96,3.49 + c0.23,0.61,1.02-0.02,1.79-1.42C-27.09,170.19-26.62,168.57-26.84,168.04z"/> + <path class="st106" d="M-11.62,144.82c-0.32-0.34-1.32,0.37-2.18,1.58c-0.87,1.21-1.32,2.49-1.03,2.92 + c0.28,0.41,1.24-0.29,2.13-1.56C-11.84,146.53-11.32,145.14-11.62,144.82z"/> + <path class="st106" d="M4.33,126.57c-1.06,0.98-1.67,2.09-1.39,2.52c0.27,0.41,1.38-0.12,2.47-1.14 + c1.06-0.99,1.76-2.18,1.46-2.52C6.55,125.07,5.39,125.58,4.33,126.57z"/> + <path class="st106" d="M26.66,112.06c1.2-0.83,2.09-1.97,1.89-2.38c-0.21-0.42-1.49-0.07-2.64,0.71 + c-1.2,0.82-2.04,1.87-1.85,2.35C24.26,113.23,25.4,112.93,26.66,112.06z"/> + <path class="st106" d="M48.65,95.92c-1.27,0.74-2.14,1.73-1.94,2.21c0.21,0.49,1.39,0.26,2.74-0.54 + c1.25-0.75,2.21-1.84,1.99-2.25C51.21,94.93,49.86,95.21,48.65,95.92z"/> + <path class="st106" d="M75.43,82.39c-0.12-0.49-1.4-0.36-2.7,0.25c-1.31,0.62-2.35,1.59-2.25,2.12 + c0.11,0.53,1.3,0.44,2.66-0.23C74.57,83.85,75.56,82.91,75.43,82.39z"/> + <path class="st106" d="M98.04,72.51c1.46-0.63,2.49-1.54,2.36-2.04c-0.13-0.48-1.46-0.4-2.81,0.16 + c-1.37,0.57-2.44,1.49-2.32,2.02C95.38,73.18,96.62,73.12,98.04,72.51z"/> + <path class="st106" d="M124.04,61.35c1.39-0.59,2.4-1.53,2.12-1.94c-0.29-0.42-1.79-0.28-3.15,0.29 + c-1.41,0.59-2.34,1.43-2.07,1.91C121.19,62.08,122.57,61.98,124.04,61.35z"/> + <path class="st106" d="M149.56,49.38c-1.46,0.52-2.51,1.35-2.32,1.86c0.19,0.51,1.55,0.49,3.06-0.06 + c1.46-0.54,2.56-1.43,2.35-1.89C152.45,48.83,150.95,48.88,149.56,49.38z"/> + <path class="st106" d="M174.21,41.64c0.3,0.47,1.78,0.42,3.29-0.14c1.44-0.54,2.45-1.42,2.11-1.84 + c-0.35-0.43-1.92-0.34-3.33,0.17C174.83,40.37,173.91,41.15,174.21,41.64z"/> + <path class="st106" d="M203.79,30.63c-1.5,0.48-2.54,1.28-2.29,1.79c0.25,0.52,1.64,0.53,3.23,0.01 + c1.48-0.49,2.6-1.38,2.34-1.83C206.81,30.15,205.22,30.17,203.79,30.63z"/> + <path class="st106" d="M234.66,21.74c-0.37-0.44-1.98-0.39-3.42,0.09c-1.48,0.5-2.41,1.27-2.08,1.78 + c0.32,0.49,1.84,0.48,3.38-0.05C234.01,23.04,235.02,22.17,234.66,21.74z"/> + <path class="st106" d="M-61.4,254.95c0.52-1.6,0.64-3.63,0.24-4.23c-0.4-0.6-1.26,0.26-1.79,1.77 + c-0.55,1.57-0.65,3.45-0.22,4.17C-62.72,257.39-61.95,256.66-61.4,254.95z"/> + <path class="st106" d="M258.94,13.12c-1.48,0.5-2.37,1.28-2.01,1.78c0.35,0.49,1.91,0.47,3.43-0.05 + c1.48-0.51,2.44-1.39,2.04-1.82C261.99,12.57,260.42,12.62,258.94,13.12z"/> + <path class="st106" d="M287.77,6.27c1.54-0.47,2.66-1.33,2.45-1.85c-0.21-0.51-1.75-0.57-3.19-0.14 + c-1.51,0.44-2.62,1.25-2.42,1.81C284.79,6.65,286.21,6.74,287.77,6.27z"/> + <path class="st106" d="M315.51-2.64c1.49-0.49,2.56-1.42,2.28-1.91c-0.28-0.5-1.89-0.51-3.32-0.05 + c-1.49,0.48-2.52,1.31-2.25,1.87C312.49-2.17,313.95-2.12,315.51-2.64z"/> + <path class="st106" d="M342.59-11.76c1.6-0.5,2.65-1.35,2.48-1.96c-0.16-0.57-1.6-0.67-3.06-0.23 + c-1.47,0.44-2.6,1.31-2.45,1.92C339.71-11.42,341.08-11.29,342.59-11.76z"/> + <path class="st106" d="M369.74-21.55c1.44-0.55,2.45-1.55,2.14-2.07c-0.31-0.52-1.89-0.51-3.28,0 + c-1.45,0.54-2.41,1.43-2.12,2.02C366.79-21.01,368.23-20.98,369.74-21.55z"/> + <path class="st106" d="M394.9-34.05c-1.41,0.57-2.35,1.52-2.05,2.13c0.31,0.62,1.71,0.64,3.2,0.02 + c1.41-0.59,2.38-1.63,2.06-2.18C397.81-34.63,396.26-34.6,394.9-34.05z"/> + <path class="st106" d="M-52.52,242.54c-0.47-0.64-1.21,0.25-1.71,2.04c-0.43,1.52-0.48,3.1-0.12,3.72 + c0.4,0.7,1.27-0.1,1.76-1.64C-52.09,245.1-52.06,243.16-52.52,242.54z"/> + <path class="st106" d="M-42.3,213.56c-0.36-0.72-1.13-0.01-1.71,1.59c-0.49,1.34-0.69,2.99-0.44,3.7 + c0.29,0.84,1.09,0.27,1.7-1.21C-42.17,216.23-41.96,214.26-42.3,213.56z"/> + <path class="st106" d="M-31.31,189.35c0.62-1.47,0.79-3.08,0.37-3.48c-0.36-0.35-1.07,0.35-1.66,1.63 + c-0.67,1.46-0.95,3.23-0.59,3.71C-32.81,191.69-31.92,190.81-31.31,189.35z"/> + <path class="st106" d="M-19.04,162.12c-0.84,1.31-1.31,2.9-1.01,3.43c0.29,0.52,1.28-0.17,2.03-1.41 + c0.64-1.06,1.03-2.45,0.87-3.05C-17.36,160.35-18.19,160.8-19.04,162.12z"/> + <path class="st106" d="M-1.97,142.33c0.93-0.96,1.61-2.44,1.37-2.98c-0.23-0.51-1.02-0.24-1.92,0.64 + c-1.04,1.03-1.78,2.43-1.62,3.07C-3.98,143.71-2.96,143.36-1.97,142.33z"/> + <path class="st106" d="M19.7,122.09c-0.2-0.62-1.32-0.4-2.53,0.49c-1.01,0.74-1.77,1.76-1.72,2.32 + c0.06,0.65,1.19,0.54,2.41-0.25C19.02,123.9,19.89,122.68,19.7,122.09z"/> + <path class="st106" d="M39.45,107.38c-1.29,0.79-2.17,1.89-1.89,2.41c0.27,0.5,1.66,0.27,2.83-0.48c1-0.64,1.74-1.64,1.62-2.17 + C41.88,106.48,40.76,106.59,39.45,107.38z"/> + <path class="st106" d="M65.51,93.47c-0.21-0.61-1.46-0.51-2.79,0.22c-1.12,0.61-1.97,1.53-1.92,2.06 + c0.06,0.63,1.31,0.64,2.65,0.01C64.75,95.15,65.72,94.06,65.51,93.47z"/> + <path class="st106" d="M90.05,81.06c-0.22-0.62-1.51-0.56-2.9,0.1c-1.16,0.56-2.06,1.43-2,1.96c0.06,0.63,1.36,0.69,2.75,0.12 + C89.25,82.7,90.26,81.66,90.05,81.06z"/> + <path class="st106" d="M115.5,69.71c-0.21-0.63-1.52-0.63-2.97-0.02c-1.21,0.51-2.14,1.34-2.1,1.88 + c0.04,0.63,1.37,0.75,2.82,0.23C114.65,71.31,115.7,70.31,115.5,69.71z"/> + <path class="st106" d="M141.71,59.23c-0.19-0.65-1.52-0.7-3.01-0.13c-1.26,0.47-2.22,1.25-2.2,1.8 + c0.02,0.63,1.39,0.8,2.87,0.34C140.79,60.81,141.89,59.85,141.71,59.23z"/> + <path class="st106" d="M168.45,49.29c-0.41-0.57-1.87-0.51-3.39,0.11c-1.28,0.53-2.06,1.27-1.81,1.76 + c0.28,0.55,1.9,0.62,3.3,0.13C167.97,50.8,168.85,49.85,168.45,49.29z"/> + <path class="st106" d="M192.78,39.94c-1.56,0.48-2.63,1.36-2.3,1.93c0.31,0.55,1.98,0.63,3.39,0.16 + c1.2-0.41,2.1-1.22,1.97-1.76C195.68,39.58,194.35,39.45,192.78,39.94z"/> + <path class="st106" d="M223.45,31.35c-0.24-0.66-1.66-0.78-3.21-0.29c-1.3,0.41-2.3,1.15-2.25,1.7c0.06,0.64,1.5,0.89,3.06,0.5 + C222.55,32.89,223.68,31.98,223.45,31.35z"/> + <path class="st106" d="M-61.93,272.48c-0.46-0.9-1.25-0.28-1.79,1.38c-0.45,1.38-0.55,3.17-0.23,4.02 + c0.38,1,1.23,0.56,1.81-0.96C-61.58,275.45-61.49,273.34-61.93,272.48z"/> + <path class="st106" d="M251.26,22.67c-0.3-0.64-1.78-0.75-3.32-0.26c-1.29,0.41-2.26,1.17-2.15,1.71 + c0.13,0.64,1.62,0.88,3.17,0.48C250.45,24.23,251.55,23.28,251.26,22.67z"/> + <path class="st106" d="M279.13,14.09c-0.31-0.66-1.8-0.77-3.34-0.28c-1.29,0.41-2.25,1.18-2.13,1.73 + c0.14,0.65,1.65,0.9,3.2,0.51C278.34,15.67,279.43,14.72,279.13,14.09z"/> + <path class="st106" d="M303.67,5.09c-1.54,0.48-2.56,1.41-2.15,1.99c0.41,0.58,2.15,0.69,3.58,0.2 + c1.22-0.42,2.04-1.25,1.82-1.82C306.66,4.75,305.24,4.6,303.67,5.09z"/> + <path class="st106" d="M334.48-3.54c-0.34-0.69-1.83-0.8-3.35-0.28c-1.27,0.44-2.2,1.24-2.05,1.82 + c0.17,0.68,1.69,0.94,3.22,0.53C333.76-1.87,334.8-2.88,334.48-3.54z"/> + <path class="st106" d="M361.68-12.89c-0.34-0.72-1.81-0.84-3.31-0.29c-1.25,0.45-2.16,1.29-2.03,1.89 + c0.16,0.71,1.67,0.97,3.19,0.54C361-11.16,362.01-12.19,361.68-12.89z"/> + <path class="st106" d="M388.31-22.94c-0.47-0.69-1.98-0.69-3.44-0.04c-1.26,0.56-1.98,1.4-1.68,1.99 + c0.34,0.68,1.99,0.86,3.38,0.34C387.92-21.15,388.76-22.28,388.31-22.94z"/> + <path class="st106" d="M412.85-31.28c1.35-0.6,2.02-1.73,1.47-2.4c-0.48-0.59-1.7-0.62-2.98-0.1 + c-1.45,0.59-2.36,1.67-1.93,2.34C409.83-30.79,411.53-30.69,412.85-31.28z"/> + <path class="st106" d="M-43.55,234.53c-0.4-0.83-1.28-0.12-1.77,1.42c-0.43,1.33-0.49,3.06-0.12,3.84 + c0.43,0.91,1.25,0.28,1.76-1.36C-43.28,237.08-43.22,235.23-43.55,234.53z"/> + <path class="st106" d="M-35.16,207.23c-0.54,1.56-0.54,3.29,0,3.69c0.47,0.35,1.18-0.44,1.65-1.86 + c0.44-1.34,0.55-3.05,0.21-3.59C-33.69,204.82-34.64,205.71-35.16,207.23z"/> + <path class="st106" d="M-21.73,182.26c0.68-1.36,0.92-3.18,0.49-3.63c-0.38-0.39-1.26,0.27-1.83,1.36 + c-0.69,1.34-0.91,3.06-0.45,3.6C-23.11,184.06-22.34,183.49-21.73,182.26z"/> + <path class="st106" d="M-8.53,156.01c-0.72,0.98-1.11,2.35-0.87,3c0.29,0.78,1.29,0.39,2.16-0.84 + c0.72-1.01,1.15-2.42,0.92-3.03C-6.59,154.44-7.69,154.87-8.53,156.01z"/> + <path class="st106" d="M11.94,135.37c-0.38-0.57-1.76-0.16-2.74,0.82c-0.84,0.84-1.28,2.01-0.97,2.53 + c0.33,0.54,1.33,0.34,2.28-0.45C11.63,137.34,12.32,135.95,11.94,135.37z"/> + <path class="st106" d="M32.17,122.19c1.16-0.8,1.85-2.11,1.37-2.61c-0.41-0.43-1.68-0.23-2.64,0.41 + c-1.17,0.78-1.81,2.01-1.33,2.58C29.99,123.07,31.12,122.91,32.17,122.19z"/> + <path class="st106" d="M52.33,108.1c0.42,0.52,1.6,0.43,2.71-0.22c1.23-0.72,1.98-1.98,1.5-2.5c-0.41-0.45-1.75-0.32-2.76,0.25 + C52.57,106.32,51.85,107.52,52.33,108.1z"/> + <path class="st106" d="M80.74,92.54c-0.38-0.62-2-0.51-3.22,0.2c-1.04,0.6-1.68,1.59-1.36,2.14c0.34,0.57,1.53,0.61,2.7,0.09 + C80.23,94.34,81.13,93.18,80.74,92.54z"/> + <path class="st106" d="M104.1,82.99c1.33-0.6,2.13-1.78,1.62-2.33c-0.45-0.47-1.88-0.45-2.98,0.03 + c-1.34,0.59-2.1,1.68-1.57,2.3C101.63,83.53,102.9,83.54,104.1,82.99z"/> + <path class="st106" d="M131.74,69.92c-0.42-0.63-2.16-0.63-3.46-0.01c-1.11,0.53-1.77,1.45-1.42,2.01 + c0.37,0.59,1.64,0.71,2.89,0.26C131.22,71.65,132.17,70.55,131.74,69.92z"/> + <path class="st106" d="M158.38,60.03c-0.28-0.7-1.91-0.87-3.3-0.36c-1.2,0.44-2.01,1.31-1.77,1.94c0.28,0.75,1.8,0.95,3.26,0.4 + C157.76,61.56,158.61,60.62,158.38,60.03z"/> + <path class="st106" d="M181.95,50.29c-1.41,0.56-2.03,1.56-1.31,2.16c0.63,0.53,2.04,0.55,3.3,0.04 + c1.18-0.48,1.94-1.43,1.6-1.98C185.12,49.86,183.31,49.76,181.95,50.29z"/> + <path class="st106" d="M209.43,41.32c-1.41,0.54-2.02,1.54-1.27,2.15c0.65,0.54,2.1,0.57,3.36,0.07 + c1.19-0.47,1.94-1.43,1.57-1.97C212.66,40.91,210.79,40.8,209.43,41.32z"/> + <path class="st106" d="M240.91,32.95c-0.48-0.68-2.35-0.81-3.72-0.28c-1.18,0.45-1.86,1.33-1.46,1.93 + c0.42,0.63,1.79,0.86,3.12,0.5C240.41,34.68,241.4,33.63,240.91,32.95z"/> + <path class="st106" d="M-54.62,265.94c-0.41,1.34-0.42,3.15-0.02,3.99c0.48,1,1.31,0.42,1.79-1.26 + c0.39-1.38,0.4-3.28,0.03-4.06C-53.25,263.71-54.15,264.38-54.62,265.94z"/> + <path class="st106" d="M-61.94,294.71c-0.54-0.76-1.51,0.16-1.91,1.8c-0.35,1.42-0.24,3.2,0.24,3.9 + c0.5,0.73,1.26,0.25,1.72-1.12C-61.36,297.7-61.39,295.48-61.94,294.71z"/> + <path class="st106" d="M268.93,24.64c-0.32-0.74-2.05-1.02-3.5-0.58c-1.25,0.38-2.07,1.23-1.8,1.91 + c0.32,0.8,1.94,1.1,3.46,0.62C268.34,26.19,269.2,25.27,268.93,24.64z"/> + <path class="st106" d="M293.4,15.55c-1.24,0.38-2.06,1.25-1.79,1.94c0.33,0.82,1.95,1.14,3.47,0.66 + c1.25-0.39,2.09-1.33,1.83-1.98C296.59,15.41,294.84,15.11,293.4,15.55z"/> + <path class="st106" d="M321.25,6.89c-1.23,0.38-2.06,1.27-1.79,1.98c0.33,0.85,1.93,1.18,3.45,0.7 + c1.26-0.4,2.09-1.34,1.82-2.02C324.43,6.77,322.68,6.45,321.25,6.89z"/> + <path class="st106" d="M348.79-2.08c-1.22,0.4-2.02,1.32-1.73,2.04c0.35,0.87,1.96,1.21,3.45,0.71 + c1.24-0.42,2.04-1.39,1.76-2.09C351.95-2.21,350.21-2.53,348.79-2.08z"/> + <path class="st106" d="M374.44-9.1c0.57,0.68,1.99,0.88,3.27,0.42c1.41-0.51,2.17-1.76,1.54-2.46c-0.54-0.6-2.15-0.77-3.3-0.37 + C374.54-11.03,373.8-9.87,374.44-9.1z"/> + <path class="st106" d="M405.96-20.98c-0.42-0.84-2.14-1.11-3.5-0.56c-1.17,0.47-1.86,1.47-1.5,2.23 + c0.42,0.9,2.02,1.15,3.43,0.56C405.55-19.23,406.32-20.27,405.96-20.98z"/> + <path class="st106" d="M430.22-29.58c1.34-0.59,2.07-1.87,1.45-2.57c-0.53-0.6-2.13-0.75-3.22-0.29 + c-1.33,0.57-1.95,1.87-1.32,2.63C427.68-29.13,429.01-29.04,430.22-29.58z"/> + <path class="st106" d="M-43.8,256.66c-0.5-0.61-1.21,0.16-1.62,1.73c-0.4,1.53-0.32,3.4,0.17,3.98 + c0.49,0.58,1.26-0.23,1.65-1.74C-43.21,259.06-43.3,257.26-43.8,256.66z"/> + <path class="st106" d="M-34.44,226.69c-0.46-0.66-1.18-0.02-1.67,1.47c-0.46,1.39-0.49,3.27-0.06,3.89 + c0.43,0.62,1.23-0.07,1.69-1.48C-34.01,229.13-34,227.33-34.44,226.69z"/> + <path class="st106" d="M-25.51,199.92c-0.52,1.39-0.58,3.06-0.13,3.53c0.46,0.47,1.3-0.3,1.82-1.68 + c0.53-1.39,0.58-3.03,0.11-3.51C-24.18,197.75-24.97,198.48-25.51,199.92z"/> + <path class="st106" d="M-12.61,174.01c-0.65,1.23-0.83,2.77-0.38,3.23c0.45,0.47,1.4-0.18,2.06-1.41 + c0.66-1.24,0.83-2.73,0.37-3.22C-11.03,172.13-11.93,172.74-12.61,174.01z"/> + <path class="st106" d="M5.88,150.88c-0.36-0.65-1.4-0.39-2.29,0.58c-0.87,0.96-1.32,2.32-0.97,2.98 + c0.32,0.62,1.46,0.32,2.3-0.6C5.8,152.88,6.24,151.54,5.88,150.88z"/> + <path class="st106" d="M23.35,134c-1.01,0.82-1.48,2.02-0.99,2.53c0.5,0.52,1.8,0.27,2.8-0.54c1.02-0.82,1.45-2.01,0.95-2.54 + C25.6,132.91,24.39,133.15,23.35,134z"/> + <path class="st106" d="M45.92,118.84c-1.11,0.67-1.77,1.8-1.42,2.45c0.34,0.63,1.71,0.61,2.79-0.04 + c1.13-0.68,1.75-1.8,1.38-2.47C48.3,118.12,47.05,118.15,45.92,118.84z"/> + <path class="st106" d="M71,107.62c1.16-0.66,1.74-1.76,1.26-2.37c-0.5-0.63-1.75-0.59-2.96,0.1c-1.13,0.64-1.77,1.77-1.31,2.35 + C68.46,108.29,69.87,108.26,71,107.62z"/> + <path class="st106" d="M96.96,93.01c-0.51-0.65-1.82-0.65-3.07-0.02c-1.19,0.59-1.84,1.67-1.37,2.27 + c0.48,0.61,1.93,0.64,3.12,0.05C96.85,94.7,97.45,93.64,96.96,93.01z"/> + <path class="st106" d="M120.84,84.18c1.3-0.45,2.15-1.45,1.85-2.17c-0.3-0.74-1.6-0.94-2.94-0.46 + c-1.3,0.47-2.16,1.43-1.89,2.15C118.12,84.4,119.54,84.64,120.84,84.18z"/> + <path class="st106" d="M148.94,71.52c-0.53-0.67-1.92-0.77-3.25-0.23c-1.26,0.51-1.97,1.53-1.47,2.16 + c0.5,0.64,2.04,0.76,3.3,0.26C148.81,73.19,149.46,72.17,148.94,71.52z"/> + <path class="st106" d="M174.44,64.12c1.32-0.46,2.02-1.46,1.53-2.15c-0.5-0.71-1.91-0.86-3.28-0.38 + c-1.27,0.45-2.05,1.47-1.59,2.11C171.57,64.37,173.16,64.57,174.44,64.12z"/> + <path class="st106" d="M203.53,53.05c-0.39-0.74-1.83-1-3.22-0.59c-1.35,0.4-2.2,1.32-1.85,2.05c0.33,0.69,1.95,1,3.28,0.62 + C203.11,54.74,203.91,53.79,203.53,53.05z"/> + <path class="st106" d="M231.35,44.4c-0.43-0.74-1.93-1-3.31-0.6c-1.36,0.4-2.18,1.33-1.77,2.06c0.38,0.69,2.03,0.98,3.34,0.6 + C230.97,46.06,231.78,45.14,231.35,44.4z"/> + <path class="st106" d="M-52.44,287.45c-0.54-0.69-1.25,0-1.67,1.59c-0.4,1.5-0.3,3.45,0.21,4.1c0.52,0.65,1.31-0.08,1.7-1.59 + C-51.81,290.02-51.92,288.12-52.44,287.45z"/> + <path class="st106" d="M-61.13,318.2c-0.51-0.92-1.3-0.5-1.8,0.94c-0.49,1.4-0.5,3.31-0.01,4.24c0.47,0.89,1.36,0.45,1.84-0.93 + C-60.62,321.05-60.63,319.1-61.13,318.2z"/> + <path class="st106" d="M255.8,35.47c-1.34,0.46-1.97,1.49-1.45,2.08c0.51,0.59,2.07,0.67,3.38,0.22 + c1.34-0.46,2.06-1.33,1.54-1.94C258.74,35.22,257.17,35,255.8,35.47z"/> + <path class="st106" d="M283.81,27.14c-1.31,0.47-2.01,1.4-1.51,1.92c0.51,0.52,2.04,0.54,3.35,0.07 + c1.32-0.47,2.05-1.32,1.53-1.86C286.65,26.73,285.16,26.65,283.81,27.14z"/> + <path class="st106" d="M311.67,18.54c-1.3,0.48-2.03,1.38-1.55,1.86c0.48,0.49,1.99,0.48,3.29,0.01 + c1.31-0.48,2.06-1.3,1.57-1.81C314.48,18.08,313.01,18.04,311.67,18.54z"/> + <path class="st106" d="M342.61,9.77c-0.37-0.55-1.73-0.64-3.11-0.18c-1.29,0.43-2.16,1.34-1.81,1.85 + c0.35,0.52,1.81,0.57,3.1,0.13C342.12,11.12,342.98,10.3,342.61,9.77z"/> + <path class="st106" d="M369.84,0.4c-0.47-0.51-1.89-0.51-3.21,0.02c-1.3,0.52-2.02,1.41-1.56,1.89 + c0.45,0.47,1.94,0.44,3.21-0.06C369.58,1.74,370.3,0.9,369.84,0.4z"/> + <path class="st106" d="M395.01-7.38c1.29-0.49,2.09-1.37,1.72-1.92c-0.39-0.56-1.71-0.62-3.05-0.1 + c-1.25,0.48-2.08,1.43-1.72,1.95C392.32-6.92,393.75-6.9,395.01-7.38z"/> + <path class="st106" d="M419.87-19.71c-1.24,0.57-1.93,1.53-1.48,2.04c0.45,0.51,1.89,0.46,3.11-0.09 + c1.26-0.56,1.93-1.48,1.47-2.01C422.51-20.31,421.14-20.29,419.87-19.71z"/> + <path class="st106" d="M447.05-28.8c1.22-0.57,1.94-1.55,1.53-2.14c-0.42-0.6-1.71-0.62-2.98-0.02 + c-1.18,0.56-1.92,1.61-1.54,2.16C444.45-28.24,445.85-28.25,447.05-28.8z"/> + <path class="st106" d="M-34.27,249.56c-0.47-0.76-1.32-0.12-1.65,1.31c-0.31,1.36-0.35,2.63,0.09,3.53 + c0.44,0.9,1.23,0.52,1.69-0.81C-33.72,252.39-33.79,250.33-34.27,249.56z"/> + <path class="st106" d="M-24.62,219.89c-0.45-0.72-1.35-0.12-1.74,1.24c-0.37,1.29-0.46,2.5-0.05,3.35 + c0.41,0.85,1.24,0.49,1.75-0.76C-24.17,222.57-24.16,220.63-24.62,219.89z"/> + <path class="st106" d="M-12.97,192.54c-0.43-0.72-1.41-0.25-1.91,0.99c-0.47,1.17-0.65,2.29-0.28,3.12 + c0.38,0.83,1.26,0.57,1.9-0.55C-12.68,195.07-12.53,193.27-12.97,192.54z"/> + <path class="st106" d="M1.44,168.39c-0.52-0.61-1.58-0.13-2.23,1.01c-0.51,0.9-0.66,2.27-0.31,2.79 + c0.44,0.65,1.56,0.31,2.22-0.67C1.8,170.49,1.96,169,1.44,168.39z"/> + <path class="st106" d="M16.48,151.62c0.37,0.77,1.51,0.79,2.48,0.05c0.89-0.68,1.35-2.09,0.91-2.8 + c-0.34-0.53-1.49-0.57-2.2-0.08C16.72,149.46,16.13,150.88,16.48,151.62z"/> + <path class="st106" d="M39.12,133.21c-1.03,0.63-1.6,1.93-1.13,2.59c0.48,0.68,1.94,0.72,2.84,0c0.9-0.72,1.24-1.52,0.93-2.29 + C41.43,132.69,40.18,132.56,39.12,133.21z"/> + <path class="st106" d="M64.74,119.22c-0.58-0.67-2.02-0.61-3,0.13c-0.78,0.58-1.17,1.67-0.79,2.22 + c0.48,0.69,2.04,0.85,3.03,0.25C65,121.18,65.32,119.9,64.74,119.22z"/> + <path class="st106" d="M86.37,106.26c-1.13,0.51-1.83,1.67-1.26,2.44c0.58,0.79,2.24,1.07,3.22,0.46 + c0.99-0.61,1.33-1.41,0.95-2.27C88.87,105.97,87.52,105.73,86.37,106.26z"/> + <path class="st106" d="M114.37,95.02c-0.64-0.74-2.23-0.83-3.28-0.19c-0.84,0.51-1.25,1.58-0.82,2.18 + c0.54,0.76,2.18,1,3.24,0.48C114.61,96.95,115.02,95.77,114.37,95.02z"/> + <path class="st106" d="M140.5,84.4c-0.44-0.72-2.04-0.97-3.13-0.42c-1.03,0.52-1.61,1.18-1.27,1.96 + c0.34,0.78,1.73,1.1,2.98,0.69C140.22,86.27,140.94,85.13,140.5,84.4z"/> + <path class="st106" d="M165.44,76.26c1.15-0.36,1.95-1.4,1.56-2.05c-0.3-0.5-1.64-0.77-2.59-0.52 + c-1.24,0.33-2.17,1.34-1.88,2.02C162.83,76.42,164.17,76.66,165.44,76.26z"/> + <path class="st106" d="M191.23,64.27c-1.24,0.38-2.09,1.36-1.71,1.91c0.39,0.56,1.93,0.69,3.04,0.22 + c1.11-0.47,1.66-1.03,1.49-1.63C193.86,64.12,192.5,63.87,191.23,64.27z"/> + <path class="st106" d="M221.33,55.42c-0.45-0.49-1.98-0.49-3.14,0.03c-0.92,0.42-1.52,1.23-1.24,1.64 + c0.36,0.52,1.83,0.56,2.97,0.11C221.1,56.74,221.79,55.91,221.33,55.42z"/> + <path class="st106" d="M246.37,46.01c-1.8,0.68-2.48,1.45-2.03,1.86c0.44,0.4,1.95,0.32,3.05-0.15 + c1.15-0.48,1.88-1.32,1.12-1.59C247.99,45.95,246.92,46.04,246.37,46.01z"/> + <path class="st106" d="M-44.34,281.19c-0.49,2.2-0.3,3.98,0.27,4.56c0.57,0.57,1.39-0.3,1.65-1.74 + c0.26-1.51-0.02-3.55-0.65-3.68C-43.51,280.23-44.03,280.95-44.34,281.19z"/> + <path class="st106" d="M-51.13,311.63c-0.53-0.81-1.41-0.19-1.71,1.26c-0.28,1.38-0.29,2.69,0.21,3.65 + c0.5,0.95,1.34,0.6,1.78-0.73C-50.45,314.58-50.59,312.45-51.13,311.63z"/> + <path class="st106" d="M-60.53,341.62c-0.33,0.39-0.95,0.74-1.3,1.62c-0.52,1.29-0.25,3.24,0.38,3.88 + c0.63,0.64,1.56-0.1,1.86-1.49C-59.28,344.18-59.61,342.38-60.53,341.62z"/> + <path class="st106" d="M275.9,36.95c-0.6,0.07-1.56,0.06-2.46,0.3c-1.33,0.37-2.04,1.18-1.62,1.54c0.41,0.36,1.9,0.25,3.02-0.2 + C275.99,38.14,276.61,37.44,275.9,36.95z"/> + <path class="st106" d="M302.14,29.73c1.2-0.42,2.01-1.11,1.66-1.48c-0.29-0.31-1.4-0.31-2.46,0.01 + c-1.25,0.38-2.25,1.16-2.01,1.54C299.57,30.18,300.97,30.14,302.14,29.73z"/> + <path class="st106" d="M329.19,19.27c-1.81,0.66-2.56,1.35-2.18,1.69c0.38,0.33,1.86,0.21,2.98-0.23 + c1.17-0.46,1.96-1.22,1.25-1.43C330.76,19.15,329.72,19.27,329.19,19.27z"/> + <path class="st106" d="M358.95,10.36c-0.18-0.41-1.59-0.42-2.76,0.03c-1.1,0.43-1.84,0.91-1.77,1.37 + c0.06,0.45,1.23,0.5,2.51,0.13C358.1,11.55,359.13,10.78,358.95,10.36z"/> + <path class="st106" d="M386.06,0.92c-0.36-0.39-1.8-0.28-2.96,0.23c-0.92,0.41-1.62,1.12-1.41,1.43 + c0.27,0.4,1.66,0.36,2.81-0.07C385.67,2.06,386.43,1.31,386.06,0.92z"/> + <path class="st106" d="M412.93-8.82c-0.22-0.46-1.63-0.47-2.76,0.03c-1.06,0.48-1.76,1-1.65,1.51c0.11,0.5,1.29,0.57,2.53,0.16 + C412.2-7.5,413.16-8.35,412.93-8.82z"/> + <path class="st106" d="M439.02-19.42c-0.41-0.44-1.83-0.31-2.93,0.27c-0.88,0.46-1.49,1.27-1.25,1.62 + c0.31,0.46,1.7,0.42,2.8-0.08C438.77-18.12,439.43-18.98,439.02-19.42z"/> + <path class="st106" d="M462.91-28.76c1.08-0.45,1.9-1.45,1.62-1.98c-0.22-0.41-1.39-0.48-2.26-0.15 + c-1.14,0.44-2.08,1.43-1.9,1.98C460.55-28.33,461.72-28.27,462.91-28.76z"/> + <path class="st106" d="M495.16-32.2c-0.16-0.47-1.05-0.44-2.12,0.08c-1.05,0.51-1.77,1.26-1.6,1.67 + c0.17,0.42,1.12,0.38,2.18-0.1C494.59-30.98,495.31-31.75,495.16-32.2z"/> + <path class="st106" d="M470.12-20.41c-0.13-0.44-1.03-0.42-2.15,0.05c-1.1,0.46-1.88,1.13-1.73,1.51 + c0.15,0.39,1.11,0.37,2.21-0.06C469.47-19.3,470.24-19.99,470.12-20.41z"/> + <path class="st106" d="M443.01-8.75c0.26-0.3,0.88-0.81,0.93-1.15c0.06-0.41-1.22-0.24-2.33,0.22 + c-1.16,0.48-1.8,1.05-1.52,1.35C440.35-8.04,441.51-8.15,443.01-8.75z"/> + <path class="st106" d="M415.03-0.09c-1.17,0.39-2.03,0.95-1.94,1.26c0.09,0.32,1.06,0.29,2.22-0.07 + c1.07-0.33,1.94-0.91,1.88-1.24C417.11-0.5,416.21-0.48,415.03-0.09z"/> + <path class="st106" d="M387.66,9.01c-1.18,0.37-2.08,0.89-2.02,1.17c0.06,0.28,1.02,0.24,2.19-0.1 + c1.08-0.31,1.99-0.85,1.96-1.15C389.75,8.6,388.86,8.64,387.66,9.01z"/> + <path class="st106" d="M360,17.77c-1.19,0.36-2.12,0.85-2.1,1.11c0.03,0.26,0.96,0.2,2.14-0.14c1.08-0.31,2.04-0.81,2.04-1.09 + C362.08,17.36,361.21,17.41,360,17.77z"/> + <path class="st106" d="M333.02,27.08c0.32-0.22,1.04-0.61,1.18-0.85c0.16-0.28-1.1-0.08-2.27,0.31 + c-1.22,0.41-1.98,0.85-1.79,1.03C330.32,27.75,331.44,27.6,333.02,27.08z"/> + <path class="st106" d="M306.56,34.99c-0.1-0.2-1.14-0.04-2.3,0.35c-1.21,0.42-1.98,0.86-1.81,1.03 + c0.16,0.17,1.27-0.01,2.34-0.37C305.89,35.65,306.67,35.2,306.56,34.99z"/> + <path class="st106" d="M277.12,44.39c-1.17,0.39-2.08,0.89-2.07,1.11c0.02,0.23,0.92,0.11,2.07-0.27 + c1.06-0.34,2-0.85,2.01-1.09C279.15,43.89,278.3,43.99,277.12,44.39z"/> + <path class="st106" d="M-57.77,389.44c-0.42-0.6-1.09-0.07-1.53,1.16c-0.46,1.29-0.48,2.6-0.04,3.12 + c0.42,0.49,1.17-0.04,1.59-1.16C-57.33,391.45-57.34,390.07-57.77,389.44z"/> + <path class="st106" d="M-49.12,361.35c-0.41,1.26-0.42,2.82-0.01,3.51c0.42,0.72,1.1,0.37,1.54-0.82 + c0.41-1.08,0.38-2.72-0.04-3.49C-48.08,359.74-48.7,360.08-49.12,361.35z"/> + <path class="st106" d="M-38.82,330.03c-0.52-0.91-1.16-0.61-1.54,0.7c-0.38,1.28-0.32,2.95,0.14,3.72 + c0.47,0.8,1.17,0.48,1.59-0.73C-38.25,332.62-38.34,330.88-38.82,330.03z"/> + <path class="st106" d="M-30.55,298.77c-0.58-0.77-1.29-0.25-1.59,1.14c-0.32,1.46-0.12,3.01,0.47,3.71 + c0.56,0.66,1.35,0.13,1.66-1.11C-29.71,301.23-29.95,299.57-30.55,298.77z"/> + <path class="st106" d="M-20.95,271.43c-0.2-0.83-0.36-2.27-0.79-3.17c-0.51-1.09-1.39-0.46-1.72,0.91 + c-0.35,1.42-0.12,3.01,0.54,3.77C-22.3,273.65-21.43,273.21-20.95,271.43z"/> + <path class="st106" d="M-11.59,239.08c-0.69-0.91-1.57-0.6-1.97,0.69c-0.41,1.34-0.2,2.94,0.52,3.77 + c0.68,0.8,1.65,0.49,2.04-0.66C-10.6,241.71-10.87,240.03-11.59,239.08z"/> + <path class="st106" d="M1.29,215.52c-0.2-0.84-0.32-2.22-0.79-3.18c-0.57-1.16-1.69-0.81-2.18,0.37 + c-0.51,1.23-0.33,2.78,0.45,3.68C-0.5,217.23,0.6,217.05,1.29,215.52z"/> + <path class="st106" d="M16.11,191.85c-0.17-0.81-0.22-2.11-0.69-3.08c-0.57-1.16-1.85-1.01-2.47,0.01 + c-0.65,1.07-0.54,2.54,0.28,3.5C14,193.19,15.24,193.19,16.11,191.85z"/> + <path class="st106" d="M34.06,169.49c-0.75-1.17-1.93-1.49-2.83-0.78c-0.89,0.71-1.05,2.11-0.35,3.15 + c0.72,1.07,2,1.43,2.92,0.79C34.64,172.07,34.76,170.6,34.06,169.49z"/> + <path class="st106" d="M56.77,157.31c-0.09-0.72,0.03-1.82-0.41-2.74c-0.53-1.11-2.11-1.3-3.02-0.61 + c-0.95,0.72-1.03,1.96-0.17,2.96C53.99,157.87,55.52,158.19,56.77,157.31z"/> + <path class="st106" d="M78.89,143.99c1.44-0.66,1.69-1.98,1.03-3.03c-0.7-1.11-1.95-1.51-2.99-0.95 + c-1.03,0.54-1.49,1.94-0.62,2.73C77.07,143.43,78.24,143.69,78.89,143.99z"/> + <path class="st106" d="M103.3,129.44c-0.03-0.64,0.18-1.65-0.17-2.46c-0.42-0.97-1.93-1.08-2.88-0.43 + c-0.98,0.69-1.15,1.83-0.39,2.71C100.59,130.1,102.02,130.32,103.3,129.44z"/> + <path class="st106" d="M126.78,113.36c-0.57-0.77-1.81-0.88-2.77-0.25c-1.01,0.66-1.28,1.7-0.63,2.46 + c0.62,0.72,1.96,0.86,2.85,0.28C127.13,115.26,127.37,114.16,126.78,113.36z"/> + <path class="st106" d="M149.09,102.47c1.42-0.69,1.94-1.69,1.59-2.37c-0.37-0.72-1.41-0.85-2.47-0.31 + c-1.05,0.53-1.76,1.62-1.15,2.1C147.59,102.3,148.57,102.34,149.09,102.47z"/> + <path class="st106" d="M174.88,87.15c-0.24-0.57-1.19-0.6-2.27-0.09c-1.06,0.5-1.72,1.34-1.46,1.85 + c0.27,0.53,1.28,0.57,2.34,0.08C174.45,88.54,175.1,87.68,174.88,87.15z"/> + <path class="st106" d="M197.68,76.75c1.47-0.64,2.22-1.34,2.1-1.73c-0.13-0.41-1.03-0.36-2.14,0.12 + c-1.1,0.48-2.04,1.28-1.62,1.51C196.39,76.84,197.26,76.73,197.68,76.75z"/> + <path class="st106" d="M225.7,64.05c-0.15-0.25-1.17-0.07-2.26,0.41c-1.14,0.5-1.82,1.04-1.6,1.26 + c0.2,0.21,1.29,0.01,2.29-0.43C225.15,64.85,225.85,64.3,225.7,64.05z"/> + <path class="st106" d="M250.13,54.04c-1.15,0.42-2.03,0.95-2,1.19c0.04,0.25,0.93,0.12,2.06-0.28 + c1.04-0.37,1.95-0.91,1.95-1.16C252.14,53.51,251.29,53.61,250.13,54.04z"/> + <path class="st106" d="M291.77,36.45c-0.57,0.09-1.4,0.12-2.31,0.36c-1.26,0.33-2.17,1.05-1.82,1.3 + c0.28,0.2,1.46,0.01,2.57-0.41C291.29,37.29,292.08,36.76,291.77,36.45z"/> + <path class="st106" d="M320.11,27.48c-1.17,0.11-1.88,0.09-2.77,0.26c-0.99,0.19-2.12,0.84-2.22,1.17 + c-0.13,0.41,1.03,0.4,2.29-0.08C318.28,28.49,318.96,28.07,320.11,27.48z"/> + <path class="st106" d="M345.31,19.94c0.45-0.26,1.42-0.71,1.74-1.05c0.42-0.44-1.03-0.38-2.35,0.02 + c-1.15,0.35-1.96,0.85-1.94,1.19C342.77,20.42,343.67,20.41,345.31,19.94z"/> + <path class="st106" d="M372.58,9.8c-1.63,0.55-2.37,1.08-2.26,1.41c0.11,0.32,1.1,0.28,2.21-0.08c1.39-0.45,2.57-1.2,1.98-1.36 + C374.07,9.65,373.06,9.79,372.58,9.8z"/> + <path class="st106" d="M402.44,0.26c-1.35,0.19-2.22,0.22-3.13,0.47c-1.25,0.35-2.01,1.13-1.57,1.44 + c0.34,0.24,1.74,0.07,2.62-0.39C401.12,1.38,401.58,0.92,402.44,0.26z"/> + <path class="st106" d="M429.33-9.34c-1.17,0.04-1.88-0.04-2.76,0.12c-0.97,0.18-2.02,0.96-2.07,1.39 + c-0.06,0.55,1.11,0.65,2.31,0.11C427.64-8.1,428.27-8.63,429.33-9.34z"/> + <path class="st106" d="M452.82-19.83c-1.54,0.65-2.19,1.31-2.03,1.76c0.15,0.43,1.15,0.43,2.2,0.02 + c1.31-0.52,2.37-1.48,1.75-1.73C454.28-19.96,453.3-19.82,452.82-19.83z"/> + <path class="st106" d="M480.2-31.07c-0.28-0.61-1.35-0.61-2.34-0.19c-1.24,0.52-1.98,1.41-1.6,1.91 + c0.31,0.42,1.42,0.37,2.34-0.23C479.33-30.06,479.8-30.69,480.2-31.07z"/> + <path class="st106" d="M-58.83,365.75c-0.38,0.3-1.05,0.49-1.48,1.27c-0.6,1.07-0.31,3.2,0.42,3.93 + c0.59,0.59,1.39-0.02,1.72-1.34C-57.85,368.33-58.04,366.64-58.83,365.75z"/> + <path class="st106" d="M-48.74,339.49c-0.1-0.76-0.11-2.24-0.43-3.13c-0.44-1.23-1.45-0.47-1.82,1.08 + c-0.3,1.25-0.09,2.87,0.47,3.62C-49.94,341.82-49.25,341.42-48.74,339.49z"/> + <path class="st106" d="M-40.97,304.98c-0.49-0.69-1.2-0.27-1.57,0.91c-0.45,1.42-0.25,3.4,0.44,4.2 + c0.56,0.65,1.21,0.08,1.5-1.34C-40.32,307.37-40.49,305.66-40.97,304.98z"/> + <path class="st106" d="M264.58,45.95c-0.11-0.4-1.16-0.36-2.24-0.03c-1.34,0.41-2.28,1.07-2.03,1.4 + c0.2,0.27,1.27,0.18,2.32-0.28C263.47,46.67,264.09,46.23,264.58,45.95z"/> + <path class="st106" d="M234.58,55.53c-0.52,0.64-1.14,1.13-1.17,1.45c-0.05,0.4,1.15,0.22,2.28-0.21 + c1.3-0.51,2.37-1.33,1.7-1.44C236.86,55.23,235.81,55.44,234.58,55.53z"/> + <path class="st106" d="M210.78,65.47c-0.21-0.52-1.32-0.56-2.4-0.23c-1.34,0.4-2.19,1.17-1.85,1.62 + c0.29,0.37,1.41,0.34,2.43-0.16C209.77,66.3,210.32,65.78,210.78,65.47z"/> + <path class="st106" d="M183.94,75.2c-0.6,0.05-1.52-0.02-2.42,0.23c-1.25,0.34-1.89,1.38-1.34,1.87 + c0.44,0.4,1.68,0.27,2.7-0.25C183.88,76.54,184.47,75.76,183.94,75.2z"/> + <path class="st106" d="M155.95,86.03c-1.52,0.68-2.01,1.51-1.63,2.16c0.36,0.63,1.5,0.76,2.54,0.3 + c1.29-0.57,2.11-1.75,1.31-2.15C157.58,86.04,156.5,86.1,155.95,86.03z"/> + <path class="st106" d="M133.66,97.93c-1.37-0.2-2.28-0.51-3.23-0.43c-1.04,0.09-1.8,1.22-1.56,2.01 + c0.31,0.99,1.81,1.48,2.86,0.76C132.48,99.76,132.85,98.93,133.66,97.93z"/> + <path class="st106" d="M107.63,112.29c0.12-0.51,0.62-1.39,0.45-2.12c-0.24-1-2.11-1.22-3.24-0.55 + c-0.92,0.54-1.17,1.63-0.55,2.44C104.91,112.89,106.14,113.1,107.63,112.29z"/> + <path class="st106" d="M83.92,123.06c-0.78-1.21-2.15-1.57-3.18-1.18c-1.26,0.49-1.65,1.81-0.8,2.87 + c0.71,0.88,2.13,1.22,2.91,0.44C83.48,124.58,83.66,123.61,83.92,123.06z"/> + <path class="st106" d="M57.09,134.94c-1.41,0.8-1.69,1.91-1.08,2.89c0.58,0.94,1.89,1.33,2.87,0.83 + c1.22-0.62,1.7-2.28,0.69-2.99C58.83,135.14,57.7,135.1,57.09,134.94z"/> + <path class="st106" d="M36.24,149.36c-0.63,0-1.66-0.23-2.5,0.08c-1.16,0.44-1.32,2.05-0.44,2.97 + c0.71,0.73,2.06,0.76,2.89,0.04C37.01,151.74,37.15,150.41,36.24,149.36z"/> + <path class="st106" d="M16.03,169.54c0-0.65,0.26-1.81-0.01-2.65c-0.37-1.16-1.93-1.01-2.74,0.03 + c-0.65,0.85-0.68,2.19-0.04,3.03C13.89,170.8,14.93,170.81,16.03,169.54z"/> + <path class="st106" d="M-0.33,191.95c0.02-0.76,0.28-2.05,0.06-3.02c-0.28-1.27-1.67-1.17-2.39-0.07 + c-0.63,0.96-0.69,2.34-0.12,3.33C-2.24,193.14-1.28,193.22-0.33,191.95z"/> + <path class="st106" d="M-13.26,214.67c-0.76-1.18-1.65-0.98-2.17-0.01c-0.64,1.21-0.57,3.06,0.18,4 + c0.62,0.78,1.56,0.55,1.85-0.79C-13.18,216.8-13.3,215.49-13.26,214.67z"/> + <path class="st106" d="M-25.63,243.32c-0.57,1.79-0.52,3.26,0.02,4.16c0.52,0.86,1.3,0.63,1.71-0.52 + c0.51-1.44,0.39-3.79-0.3-4.13C-24.73,242.56-25.29,243.17-25.63,243.32z"/> + <path class="st106" d="M-32.59,273.01c-0.77,0.49-1.34,0.56-1.78,1.23c-0.48,0.73-0.45,2.79-0.04,3.77 + c0.51,1.24,1.45,1.09,1.72-0.54C-32.49,276.33-32.62,274.92-32.59,273.01z"/> + <path class="st106" d="M-18.67,294.2c-0.4,0.28-1.13,0.43-1.53,1.22c-0.43,0.87,0.11,3.05,0.84,3.65 + c0.64,0.53,1.23,0.47,1.6-0.68C-17.37,297.2-17.65,295.39-18.67,294.2z"/> + <path class="st106" d="M-10.14,265.77c-0.45,1.09-0.17,2.88,0.63,3.88c0.68,0.86,1.34,0.93,1.86,0.09 + c0.56-0.88,0.38-2.84-0.31-3.91C-8.66,264.74-9.71,264.72-10.14,265.77z"/> + <path class="st106" d="M1.65,237.74c-0.82,1.38-0.59,3.17,0.26,4.31c0.73,0.97,1.46,1.16,2.1,0.49 + c0.65-0.69,0.62-2.97-0.18-3.78C3.1,238.04,2.21,237.98,1.65,237.74z"/> + <path class="st106" d="M18.13,217.38c0.57-0.94,0.25-2.78-0.66-3.79c-0.91-1.02-2.3-1.04-2.61,0.05 + c-0.31,1.06-0.13,2.22,0.63,3.31C16.36,218.19,17.52,218.38,18.13,217.38z"/> + <path class="st106" d="M31.24,192.29c0.26,0.86,0.41,2.24,1.05,3.25c0.65,1.02,1.73,1.26,2.47,0.53 + c0.78-0.76,0.65-2.4-0.27-3.57C33.54,191.31,32.13,191.02,31.24,192.29z"/> + <path class="st106" d="M54.7,175.08c-0.72-0.11-1.98-0.61-2.85-0.36c-0.96,0.27-0.62,2.24,0.45,3.28 + c0.92,0.9,1.94,1.36,2.85,0.82C56.1,178.27,56.09,176.75,54.7,175.08z"/> + <path class="st106" d="M77.61,160.78c-0.7-0.09-1.92-0.54-2.78-0.27c-0.95,0.29-0.63,2.23,0.41,3.23 + c0.89,0.86,1.87,1.28,2.77,0.71C78.94,163.88,78.94,162.38,77.61,160.78z"/> + <path class="st106" d="M97.54,145.7c-0.83,0.64-0.81,2.1,0.13,3.09c0.79,0.84,1.7,1.2,2.61,0.7c0.97-0.53,1.11-1.92,0.32-2.98 + C99.8,145.44,98.36,145.07,97.54,145.7z"/> + <path class="st106" d="M122.61,133.74c0.76-0.74,0.73-2.09-0.08-2.85c-0.79-0.75-2.45-0.8-2.8,0.07 + c-0.27,0.69-0.24,1.73,0.11,2.42C120.37,134.45,121.8,134.52,122.61,133.74z"/> + <path class="st106" d="M144.55,115.38c-0.59,0.05-1.56-0.09-2.34,0.26c-0.87,0.39-0.94,1.86-0.22,2.48 + c0.62,0.53,1.38,0.68,2.25,0.07C145.12,117.57,145.4,116.4,144.55,115.38z"/> + <path class="st106" d="M166.13,102.77c0.95-0.55,1.46-1.55,1.09-2.15c-0.36-0.6-1.47-0.63-2.34-0.05 + c-0.86,0.58-1.08,1.24-0.92,1.85C164.16,103.17,165.19,103.31,166.13,102.77z"/> + <path class="st106" d="M188.1,86.27c-0.95,0.53-1.49,1.35-1.15,1.78c0.28,0.37,0.89,0.36,1.77-0.08 + c0.93-0.46,1.65-1.37,1.48-1.82C190.01,85.71,189.01,85.76,188.1,86.27z"/> + <path class="st106" d="M212.15,73.36c-0.96,0.49-1.6,1.16-1.29,1.39c0.26,0.2,0.82,0.13,1.77-0.32 + c1.02-0.49,1.76-1.15,1.61-1.44C214.09,72.7,213.1,72.87,212.15,73.36z"/> + <path class="st106" d="M239.79,61.58c-0.51,0.12-1.22,0.21-2.04,0.5c-0.96,0.33-1.74,0.96-1.5,1.13 + c0.2,0.14,0.75,0.08,1.75-0.32C239.08,62.46,239.92,61.9,239.79,61.58z"/> + <path class="st106" d="M-27.52,324.78c-0.56-0.94-1.41-0.77-1.79,0.33c-0.4,1.16-0.22,2.83,0.43,3.68 + c0.54,0.72,1.08,0.67,1.53-0.24C-26.88,327.6-26.98,325.69-27.52,324.78z"/> + <path class="st106" d="M-36.87,354.69c-0.48-0.85-1.28-0.62-1.67,0.48c-0.41,1.14-0.3,2.72,0.26,3.48 + c0.48,0.64,0.97,0.54,1.43-0.36C-36.37,357.34-36.4,355.52-36.87,354.69z"/> + <path class="st106" d="M-47.11,386.92c0.5-1.06,0.54-2.59,0.09-3.31c-0.44-0.71-1.21-0.36-1.61,0.74 + c-0.4,1.1-0.35,2.07-0.07,2.84C-48.35,388.13-47.6,387.96-47.11,386.92z"/> + <path class="st106" d="M-60.3,411.32c-0.52,1-0.62,2.33-0.19,2.9c0.37,0.48,0.85,0.36,1.39-0.46c0.57-0.86,0.77-2.37,0.43-3.02 + C-59.02,410.08-59.8,410.36-60.3,411.32z"/> + <path class="st106" d="M264.95,51.54c-1.55,0.54-2.41,1.04-2.33,1.26c0.07,0.18,0.62,0.12,1.57-0.18 + c0.99-0.31,2.32-0.99,2.08-1.11C266.07,51.41,265.31,51.53,264.95,51.54z"/> + <path class="st106" d="M293.5,42.04c-0.02-0.21-1-0.09-2.05,0.26c-1.07,0.36-1.9,0.83-1.73,1c0.15,0.14,0.7,0.09,1.73-0.22 + C292.57,42.75,293.53,42.26,293.5,42.04z"/> + <path class="st106" d="M321.08,33.11c-0.55,0.1-1.34,0.18-2.22,0.41c-0.98,0.26-1.82,0.81-1.52,0.94 + c0.27,0.11,0.86,0.06,1.95-0.27C320.42,33.84,321.29,33.38,321.08,33.11z"/> + <path class="st106" d="M349.14,24.83c0.04-0.26-0.9-0.22-1.98,0.08c-1.11,0.31-2,0.78-1.91,1.01c0.08,0.2,0.65,0.19,1.65-0.05 + C347.94,25.62,349.1,25.07,349.14,24.83z"/> + <path class="st106" d="M374.9,16.61c-1.08,0.34-1.87,0.84-1.59,1.04c0.23,0.17,0.84,0.16,1.92-0.13 + c1.15-0.32,2.04-0.81,1.92-1.06C377.04,16.2,375.98,16.27,374.9,16.61z"/> + <path class="st106" d="M403.11,9.14c1.15-0.32,2.04-0.84,1.94-1.14c-0.1-0.29-1.15-0.26-2.21,0.08 + c-1.05,0.34-1.55,0.68-1.65,0.98C401.05,9.43,401.98,9.45,403.11,9.14z"/> + <path class="st106" d="M430.69,0.32c1.13-0.34,1.99-0.91,1.86-1.24c-0.12-0.33-1.18-0.3-2.22,0.06 + c-1.03,0.36-1.5,0.74-1.58,1.07C428.64,0.61,429.57,0.65,430.69,0.32z"/> + <path class="st106" d="M459.4-10.57c-0.09-0.38-1.1-0.38-2.12-0.01c-1.07,0.39-1.79,1-1.56,1.35c0.19,0.3,0.8,0.32,1.78,0.03 + C458.54-9.51,459.48-10.2,459.4-10.57z"/> + <path class="st106" d="M483.17-21.31c-1.01,0.44-1.67,1.12-1.41,1.49c0.23,0.31,0.84,0.32,1.79-0.02 + c1.01-0.36,1.86-1.12,1.74-1.51C485.17-21.75,484.15-21.73,483.17-21.31z"/> + <path class="st106" d="M508.85-32.16c0.91-0.56,1.37-1.32,0.97-1.6c-0.39-0.28-1.75,0.01-2.36,0.58 + c-0.48,0.45-0.83,1.03-0.79,1.35C506.72-31.34,507.89-31.57,508.85-32.16z"/> + <path class="st106" d="M-6.46,292.16c0.26,1.69,0.29,2.95,0.64,3.9c0.49,1.3,1.71,1.14,2.11-0.14c0.36-1.14,0.2-2.55-0.51-3.3 + C-4.75,292.07-5.48,292.32-6.46,292.16z"/> + <path class="st106" d="M5.06,264.7c0.28,1.71,0.3,2.97,0.69,3.96c0.54,1.36,1.89,1.35,2.34,0.14c0.41-1.09,0.23-2.51-0.55-3.34 + C6.96,264.84,6.15,264.98,5.06,264.7z"/> + <path class="st106" d="M21.05,240.06c-0.6-0.13-1.49-0.61-2.11-0.36c-0.81,0.32-0.65,2.89,0.18,3.82 + c0.84,0.95,1.71,1.19,2.32,0.34C22.05,243.03,21.96,241.9,21.05,240.06z"/> + <path class="st106" d="M36.87,217.65c-0.56-0.17-1.54-0.73-2.23-0.57c-0.92,0.21-0.83,2.67,0.06,3.67 + c0.9,1.01,1.83,1.33,2.57,0.62C37.92,220.72,37.89,219.31,36.87,217.65z"/> + <path class="st106" d="M55.78,198.74c-0.62-0.23-1.66-0.88-2.45-0.83c-1.04,0.07-1.09,2.37-0.16,3.41 + c0.94,1.06,1.96,1.47,2.82,0.91C56.75,201.73,56.8,200.41,55.78,198.74z"/> + <path class="st106" d="M78.49,187.54c-0.09-1.46,0.13-2.47-0.27-3.39c-0.58-1.33-1.8-1.71-2.8-1.52 + c-1.04,0.2-1.34,2.29-0.36,3.18C75.86,186.55,76.97,186.81,78.49,187.54z"/> + <path class="st106" d="M100.19,171.76c-0.06-1.43,0.17-2.43-0.19-3.31c-0.52-1.26-1.66-1.55-2.62-1.3 + c-0.99,0.26-1.31,2.33-0.4,3.14C97.73,170.96,98.77,171.15,100.19,171.76z"/> + <path class="st106" d="M117.96,150.3c-0.03,1.35-0.27,2.3,0.01,3.15c0.38,1.17,2.02,1.49,2.82,0.66 + c0.71-0.74,0.8-1.87,0.03-2.66C120.24,150.85,119.23,150.78,117.96,150.3z"/> + <path class="st106" d="M141.77,133.68c-1.18,0.03-2.04-0.19-2.69,0.12c-0.99,0.46-1.12,2.07-0.33,2.79 + c0.75,0.68,1.69,0.72,2.26-0.1C141.44,135.87,141.45,134.91,141.77,133.68z"/> + <path class="st106" d="M161.74,116.4c-0.52-0.02-1.21-0.24-1.87-0.02c-0.86,0.29-1.45,1.96-0.93,2.52 + c0.52,0.56,1.27,0.64,2.08,0C161.82,118.27,162.05,117.52,161.74,116.4z"/> + <path class="st106" d="M182.61,99.44c-0.47,0.04-1.08-0.07-1.71,0.18c-0.83,0.33-1.6,1.78-1.2,2.19 + c0.4,0.42,1.08,0.41,1.91-0.21C182.42,100.99,182.74,100.34,182.61,99.44z"/> + <path class="st106" d="M203.36,85.73c0.48-0.78,1.04-1.39,1.1-1.76c0.09-0.53-0.68-0.37-1.51,0.04 + c-0.87,0.42-1.9,1.64-1.5,1.83C201.78,86,202.51,85.8,203.36,85.73z"/> + <path class="st106" d="M228.77,70.06c-1.02,0.23-1.64,0.3-2.32,0.56c-1.03,0.42-1.85,1.2-1.51,1.37 + c0.32,0.16,1.08-0.01,1.91-0.51C227.48,71.09,227.93,70.67,228.77,70.06z"/> + <path class="st106" d="M252.17,59.38c-0.73,0.52-1.42,0.92-1.63,1.19c-0.29,0.37,0.93,0.18,2.03-0.29 + c0.98-0.42,1.63-0.87,1.4-1.03C253.8,59.14,252.99,59.31,252.17,59.38z"/> + <path class="st106" d="M-14.98,320.79c-0.37,0.06-1.03-0.14-1.48,0.31c-0.59,0.59-0.43,3.12,0.18,3.8 + c0.62,0.69,1.25,0.64,1.7-0.39C-14.16,323.59-14.24,322.13-14.98,320.79z"/> + <path class="st106" d="M-24.92,349.21c-0.79,0.48-1.4,0.54-1.76,1.16c-0.56,0.95-0.35,2.93,0.29,3.48 + c0.61,0.52,1.24,0.22,1.48-0.97C-24.74,351.99-24.9,350.83-24.92,349.21z"/> + <path class="st106" d="M-35.83,378.08c-0.32,0.12-0.86,0.05-1.28,0.54c-0.55,0.64-0.62,2.89-0.15,3.4 + c0.47,0.51,1.01,0.36,1.48-0.65C-35.36,380.47-35.31,379.16-35.83,378.08z"/> + <path class="st106" d="M-49.23,405.87c0.02,1.33-0.1,2.35,0.07,2.95c0.21,0.75,1.32-0.04,1.68-1.15 + c0.32-1.02,0.44-2.16-0.12-2.39C-47.98,405.12-48.52,405.58-49.23,405.87z"/> + <path class="st106" d="M-62.71,430.45c-0.18,1.16-0.45,2.05-0.4,2.64c0.07,0.81,1.05,0.38,1.66-0.65 + c0.54-0.92,0.74-1.9,0.36-2.25C-61.37,429.93-61.98,430.31-62.71,430.45z"/> + <path class="st106" d="M278.86,49.41c-0.76,0.47-1.48,0.85-1.71,1.1c-0.31,0.35,0.93,0.18,2.07-0.24 + c1.02-0.38,1.7-0.79,1.47-0.94C280.53,49.2,279.69,49.35,278.86,49.41z"/> + <path class="st106" d="M308.21,40.19c-0.4,0.03-0.92,0.01-1.64,0.15c-0.94,0.2-2.34,0.91-2.15,1.08 + c0.19,0.17,0.84,0.14,1.92-0.18C307.3,40.97,308.12,40.54,308.21,40.19z"/> + <path class="st106" d="M334.36,32.92c0.76-0.45,1.53-0.8,1.72-1.03c0.26-0.33-0.58-0.25-1.56-0.03 + c-1.02,0.23-2.49,0.93-2.15,1.06C332.64,33.01,333.45,32.92,334.36,32.92z"/> + <path class="st106" d="M362.39,23.67c-0.79,0.46-1.54,0.8-1.77,1.05c-0.31,0.35,1.01,0.28,2.19-0.09 + c1.06-0.32,1.77-0.72,1.52-0.9C364.14,23.6,363.26,23.68,362.39,23.67z"/> + <path class="st106" d="M391.16,16.8c0.65-0.49,1.4-0.88,1.42-1.1c0.03-0.29-0.8-0.26-1.89,0.03c-1.2,0.32-2.26,0.93-1.75,1.08 + C389.3,16.92,390.18,16.81,391.16,16.8z"/> + <path class="st106" d="M420.72,7.32c-0.5,0-1.07-0.08-1.8,0.04c-0.96,0.16-2.3,0.94-2.05,1.18c0.25,0.24,0.94,0.26,2.03-0.05 + C419.95,8.19,420.52,7.84,420.72,7.32z"/> + <path class="st106" d="M446.53-0.14c0.68-0.55,1.4-0.97,1.53-1.27c0.19-0.43-0.66-0.39-1.63-0.16c-1,0.24-2.36,1.09-1.98,1.28 + C444.77-0.12,445.59-0.19,446.53-0.14z"/> + <path class="st106" d="M470.7-9.77c1.07-0.13,1.76-0.11,2.5-0.32c0.97-0.28,1.57-0.77,1.58-1.19c0.01-0.44-1.17-0.42-2.17,0.09 + C471.94-10.84,471.51-10.38,470.7-9.77z"/> + <path class="st106" d="M498.07-22.53c-0.52,0.69-1.08,1.2-1.14,1.54c-0.07,0.42,1.51,0.15,2.36-0.39 + c0.78-0.49,1.38-1.07,0.85-1.26C499.79-22.76,498.99-22.58,498.07-22.53z"/> + <path class="st106" d="M524.31-35.61c-0.38,0.05-0.91,0-1.55,0.23c-0.84,0.3-1.88,1.45-1.61,1.72c0.28,0.28,0.9,0.23,1.82-0.27 + C523.77-34.38,524.38-35.05,524.31-35.61z"/> + <path class="st106" d="M-0.3,318.87c-0.96,0.17-1.72-0.05-2.1,0.49c-0.5,0.72-0.41,2.09,0.24,3.11 + c0.66,1.04,1.45,1.05,1.82,0.11C-0.07,321.9-0.29,320.59-0.3,318.87z"/> + <path class="st106" d="M11.92,292.26c-1.06,0.06-1.91-0.26-2.32,0.24c-0.55,0.67-0.43,2.06,0.29,3.18 + c0.74,1.14,1.61,1.24,2.01,0.33C12.2,295.35,11.94,293.99,11.92,292.26z"/> + <path class="st106" d="M22.23,266.56c0.49,1.75,0.63,3.06,1.15,3.91c0.73,1.2,1.7,1.13,2.17,0.25c0.48-0.9,0.27-2.37-0.64-3.23 + C24.26,266.88,23.42,266.93,22.23,266.56z"/> + <path class="st106" d="M40.87,244.2c-1.29-0.21-2.32-0.74-2.84-0.36c-0.7,0.5-0.6,1.87,0.25,3.13c0.86,1.28,1.92,1.6,2.44,0.83 + C41.1,247.23,40.83,245.86,40.87,244.2z"/> + <path class="st106" d="M58.85,224.26c-1.42-0.43-2.51-1.09-3.15-0.86c-0.87,0.32-0.81,1.65,0,2.93c0.83,1.3,2,1.88,2.65,1.21 + C58.82,227.05,58.65,225.76,58.85,224.26z"/> + <path class="st106" d="M79.66,207.52c-1.53-0.49-2.72-1.2-3.4-1.01c-0.91,0.25-0.97,1.44-0.08,2.75 + c0.9,1.33,2.16,1.88,2.88,1.34C79.59,210.21,79.43,208.96,79.66,207.52z"/> + <path class="st106" d="M101.11,191.45c-1.42-0.3-2.57-0.89-3.16-0.59c-0.77,0.39-0.83,1.61,0.1,2.87 + c0.92,1.24,2.1,1.62,2.71,0.99C101.22,194.24,100.98,192.95,101.11,191.45z"/> + <path class="st106" d="M121.38,173.94c-1.31-0.29-2.31-0.84-2.94-0.59c-0.87,0.34-0.91,1.55-0.22,2.68 + c0.7,1.15,1.8,1.64,2.47,0.97C121.17,176.53,121.1,175.34,121.38,173.94z"/> + <path class="st106" d="M140.57,158.12c-0.4-1.48-0.44-2.56-0.91-3.21c-0.63-0.89-1.6-0.88-2.19-0.02 + c-0.56,0.83-0.55,2.02,0.32,2.68C138.41,158.04,139.29,157.91,140.57,158.12z"/> + <path class="st106" d="M158.84,134.9c-1.12,0.28-1.97,0.19-2.44,0.65c-0.63,0.63-0.71,1.71-0.02,2.43 + c0.65,0.67,1.53,0.69,2.03-0.15C158.77,137.21,158.66,136.21,158.84,134.9z"/> + <path class="st106" d="M177.22,118.63c0.03-1.16,0.21-1.96,0.06-2.55c-0.16-0.62-1.38-0.53-1.84,0.08 + c-0.55,0.73-0.98,1.68-0.36,2.17C175.49,118.67,176.25,118.52,177.22,118.63z"/> + <path class="st106" d="M197.48,97.33c-0.97,0.25-1.65,0.22-2.17,0.6c-0.68,0.5-1.09,1.31-0.75,1.86 + c0.33,0.53,1.1,0.42,1.73-0.2C196.77,99.13,196.95,98.34,197.48,97.33z"/> + <path class="st106" d="M218.95,81.07c-0.98,0.23-1.63,0.24-2.2,0.57c-0.74,0.43-1.26,1.11-1.02,1.53c0.23,0.42,1,0.3,1.7-0.23 + C217.97,82.55,218.27,81.91,218.95,81.07z"/> + <path class="st106" d="M241.84,69.81c0.35-0.64,0.82-1.13,0.75-1.38c-0.1-0.35-0.99-0.19-1.87,0.26 + c-0.84,0.43-1.49,0.99-1.02,1.18C240.02,70.01,240.83,69.85,241.84,69.81z"/> + <path class="st106" d="M-12.11,345.88c-0.82,0.63-1.49,0.77-1.77,1.46c-0.39,0.96-0.18,2.26,0.48,2.89 + c0.61,0.59,1.35,0.45,1.57-0.74C-11.67,348.65-11.96,347.51-12.11,345.88z"/> + <path class="st106" d="M-25.54,374.22c0.22,1.43,0.22,2.56,0.52,3.16c0.42,0.83,1.11,0.44,1.5-0.52 + c0.41-0.98,0.37-2.25-0.21-2.72C-24.15,373.81-24.74,374.15-25.54,374.22z"/> + <path class="st106" d="M-35.52,403.28c-0.2-1.24-0.19-2.25-0.48-2.7c-0.39-0.61-1.01-0.21-1.41,0.84 + c-0.38,1.02-0.42,2.14,0.11,2.42C-36.92,404.03-36.35,403.56-35.52,403.28z"/> + <path class="st106" d="M-49.08,425.06c-0.77,0.39-1.32,0.42-1.72,0.93c-0.54,0.68-0.75,1.68-0.46,2.28 + c0.29,0.61,0.91,0.41,1.39-0.39C-49.52,427.3-49.41,426.37-49.08,425.06z"/> + <path class="st106" d="M269.31,57.51c-1.07,0.12-1.74,0.1-2.4,0.32c-0.86,0.29-1.54,0.77-1.38,1.1 + c0.16,0.32,0.98,0.28,1.83-0.08C267.99,58.58,268.44,58.11,269.31,57.51z"/> + <path class="st106" d="M296.33,47.88c-1.21,0.17-1.97,0.18-2.64,0.4c-0.91,0.3-1.52,0.74-1.21,1c0.29,0.24,1.13,0.22,2.02-0.16 + C295.14,48.86,295.52,48.44,296.33,47.88z"/> + <path class="st106" d="M324.13,39.37c-1.05,0.02-1.66-0.07-2.37,0.09c-0.97,0.21-1.68,0.63-1.66,0.96 + c0.02,0.33,0.76,0.4,1.74,0.1C322.53,40.31,323.11,39.89,324.13,39.37z"/> + <path class="st106" d="M352.37,31.31c-1.06,0-1.69-0.1-2.41,0.04c-0.99,0.19-1.7,0.6-1.68,0.94c0.02,0.34,0.78,0.42,1.77,0.14 + C350.76,32.22,351.34,31.82,352.37,31.31z"/> + <path class="st106" d="M380.77,23.36c-1.26,0.1-2.05,0.07-2.75,0.26c-0.94,0.25-1.58,0.68-1.25,0.96 + c0.3,0.27,1.18,0.29,2.11-0.05C379.55,24.3,379.94,23.89,380.77,23.36z"/> + <path class="st106" d="M409.13,15.49c-1.25,0.1-2.05,0.07-2.75,0.26c-0.93,0.26-1.56,0.7-1.22,1c0.31,0.28,1.19,0.3,2.11-0.04 + C407.93,16.45,408.31,16.04,409.13,15.49z"/> + <path class="st106" d="M437.1,7.21c-1.18,0.08-1.96,0.02-2.63,0.22c-0.89,0.26-1.55,0.73-1.28,1.07c0.27,0.32,1.15,0.33,2.04,0 + C435.88,8.24,436.28,7.79,437.1,7.21z"/> + <path class="st106" d="M464.32-2c-1.21,0.18-2.01,0.19-2.68,0.43c-0.93,0.33-1.4,0.83-1.02,1.12c0.35,0.27,1.22,0.27,2.09-0.16 + C463.32-0.92,463.62-1.37,464.32-2z"/> + <path class="st106" d="M490.61-12.23c-1.06,0.12-1.75,0.06-2.4,0.3c-0.84,0.31-1.47,0.85-1.28,1.23 + c0.19,0.38,1.01,0.35,1.84-0.04C489.39-11.02,489.8-11.55,490.61-12.23z"/> + <path class="st106" d="M513.93-22.39c0.42-0.7,0.86-1.2,0.91-1.55c0.05-0.37-1.11-0.24-1.74,0.17 + c-0.76,0.48-1.48,1.09-1.07,1.34C512.32-22.27,513.07-22.4,513.93-22.39z"/> + <path class="st106" d="M538.48-38.32c-0.92,0.28-1.53,0.32-2.09,0.65c-0.73,0.44-1.27,1.09-1.08,1.46 + c0.18,0.37,0.9,0.21,1.61-0.3C537.44-36.89,537.79-37.49,538.48-38.32z"/> + <path class="st106" d="M541.25-28.13c0.38-0.73,0.78-1.27,0.74-1.53c-0.02-0.13-0.93,0.17-1.34,0.45 + c-0.42,0.29-1.09,1.06-0.99,1.14C539.85-27.91,540.47-28.07,541.25-28.13z"/> + <path class="st106" d="M519.72-15.72c-0.95,0.23-1.44,0.26-1.96,0.48c-0.84,0.35-1.6,1.16-1.22,1.3 + c0.27,0.1,1.02,0.05,1.36-0.15C518.48-14.45,518.91-14.97,519.72-15.72z"/> + <path class="st106" d="M494.89-2.86c-0.52-0.41-1.61-0.2-2.25,0.33c-0.39,0.32-0.74,0.88-0.54,1c0.24,0.15,1.27,0.06,1.59-0.14 + C494.28-2.04,494.6-2.55,494.89-2.86z"/> + <path class="st106" d="M469.84,8.04c-1.01-0.06-1.52-0.19-2.1-0.09c-0.93,0.15-1.86,0.87-1.54,1.22 + c0.21,0.23,1.03,0.42,1.43,0.28C468.29,9.22,468.83,8.7,469.84,8.04z"/> + <path class="st106" d="M441.42,19.53c0.5-0.67,1-1.09,1.08-1.46c0.11-0.51-1.15-0.77-1.95-0.4c-0.55,0.26-1.31,0.9-1.17,1.05 + C439.68,19.06,440.51,19.2,441.42,19.53z"/> + <path class="st106" d="M414.51,28.43c0.08-0.94,0.37-1.5,0.12-1.9c-0.12-0.19-1.42-0.24-1.92-0.05 + c-0.5,0.18-1.07,0.94-0.87,1.1C412.28,27.91,413.19,28.03,414.51,28.43z"/> + <path class="st106" d="M387.6,34.83c-1.26-0.21-1.93-0.45-2.58-0.39c-1.09,0.09-1.85,0.86-1.28,1.34 + c0.38,0.32,1.45,0.69,1.86,0.57C386.28,36.14,386.69,35.54,387.6,34.83z"/> + <path class="st106" d="M357.82,44.8c0.4-0.79,0.87-1.24,0.88-1.7c0.01-0.63-1.44-1.1-2.25-0.74c-0.56,0.25-1.27,0.95-1.08,1.16 + C355.77,43.97,356.71,44.24,357.82,44.8z"/> + <path class="st106" d="M330.15,50.65c-0.41-0.05-1.15-0.27-1.8-0.19c-1.03,0.13-1.65,1.08-0.96,1.53 + c0.5,0.33,1.41,0.59,2.1,0.58C330.42,52.55,330.84,51.5,330.15,50.65z"/> + <path class="st106" d="M302.13,62.01c0.26-1.15,0.68-1.76,0.52-2.29c-0.09-0.27-1.32-0.59-1.83-0.46 + c-0.54,0.13-1.32,0.9-1.16,1.14C299.98,60.88,300.85,61.19,302.13,62.01z"/> + <path class="st106" d="M275.78,69.27c-0.38-0.01-1.05-0.15-1.65-0.01c-0.95,0.23-1.57,1.18-0.92,1.58 + c0.47,0.29,1.33,0.5,1.99,0.44C276.09,71.21,276.43,70.08,275.78,69.27z"/> + <path class="st106" d="M-59.16,458.55c-0.25,0.13-0.69,0.25-1.11,0.59c-0.68,0.53-1.22,1.56-0.86,1.64 + c0.26,0.05,0.78-0.13,1.22-0.42C-59.32,459.95-58.85,458.96-59.16,458.55z"/> + <path class="st106" d="M-41.77,441.03c0.28-0.93,0.56-1.58,0.57-2.04c0.02-0.63-0.86-0.44-1.34,0.3 + c-0.33,0.51-0.75,1.55-0.64,1.66C-42.93,441.21-42.38,441.03-41.77,441.03z"/> + <path class="st106" d="M-25.63,419.36c0.12-1.3,0.31-2.18,0.16-2.68c-0.08-0.26-0.85-0.06-1.14,0.32 + c-0.31,0.4-0.68,1.64-0.56,1.83C-26.93,419.21-26.39,419.14-25.63,419.36z"/> + <path class="st106" d="M-10.8,395.73c0.07-1.17,0.23-1.98,0.12-2.57c-0.15-0.82-1.15-0.77-1.51,0.11 + c-0.25,0.61-0.46,1.88-0.3,2.06C-12.14,395.71-11.53,395.6-10.8,395.73z"/> + <path class="st106" d="M3.56,371.38c-0.25-1.46-0.29-2.51-0.63-3.12c-0.17-0.3-1.08-0.01-1.33,0.45 + c-0.25,0.48-0.31,1.96-0.11,2.16C1.93,371.3,2.58,371.19,3.56,371.38z"/> + <path class="st106" d="M16.66,343.31c-0.29,0.09-0.87,0.04-1.25,0.44c-0.6,0.63-0.53,2.38,0.1,2.76 + c0.46,0.28,1.12,0.26,1.54-0.06C17.62,346.03,17.5,344.35,16.66,343.31z"/> + <path class="st106" d="M29.17,318.86c0.27,1.57,0.27,2.71,0.66,3.44c0.21,0.41,1.18,0.4,1.63,0.11 + c0.61-0.38,0.48-2.27-0.21-2.86C30.77,319.14,30.15,319.16,29.17,318.86z"/> + <path class="st106" d="M47.61,299.87c-0.59-1.72-0.81-2.88-1.34-3.61c-0.26-0.35-1.37-0.18-1.63,0.29 + c-0.25,0.47-0.09,2.08,0.2,2.34C45.46,299.45,46.28,299.46,47.61,299.87z"/> + <path class="st106" d="M64.01,274.95c-1.21-0.15-1.96-0.48-2.46-0.26c-0.84,0.37-0.87,2.01-0.06,2.77 + c0.54,0.51,1.65,0.94,1.91,0.63C63.83,277.57,63.77,276.43,64.01,274.95z"/> + <path class="st106" d="M82.98,259.58c-0.46-1.7-0.55-2.83-1.09-3.67c-0.26-0.41-1.63-0.65-1.99-0.31 + c-0.36,0.35-0.38,1.89-0.06,2.23C80.53,258.55,81.51,258.82,82.98,259.58z"/> + <path class="st106" d="M103.94,243.05c-0.4-1.63-0.45-2.71-0.98-3.54c-0.26-0.41-1.71-0.74-2.12-0.46 + c-0.41,0.29-0.51,1.74-0.18,2.08C101.35,241.86,102.4,242.21,103.94,243.05z"/> + <path class="st106" d="M123.98,222.73c-1.23-1.33-2.45-1.4-2.69-0.33c-0.14,0.63,0.09,1.77,0.52,2.39 + c0.66,0.97,2.12,0.92,2.32-0.02C124.27,224.1,124.02,223.2,123.98,222.73z"/> + <path class="st106" d="M139.27,201.85c0.28,1.24,0.31,2.16,0.67,2.84c0.53,0.99,1.8,1.03,2.26,0.24 + c0.48-0.83,0.16-2.43-0.74-2.93C140.89,201.69,140.23,201.9,139.27,201.85z"/> + <path class="st106" d="M156.01,180.02c0.24,1.2,0.26,2.11,0.59,2.75c0.48,0.93,1.65,0.85,2.07,0.02 + c0.45-0.87,0.16-2.43-0.65-2.83C157.51,179.7,156.9,179.97,156.01,180.02z"/> + <path class="st106" d="M174.78,157.06c-0.99-0.01-1.58-0.23-2.04,0.01c-0.74,0.39-0.98,1.93-0.39,2.59 + c0.39,0.43,1.3,0.72,1.55,0.4C174.32,159.54,174.4,158.47,174.78,157.06z"/> + <path class="st106" d="M190.71,137.29c-0.35-1.44-0.4-2.41-0.78-2.94c-0.18-0.26-1.17,0.08-1.45,0.53 + c-0.28,0.45-0.33,1.82-0.1,2.01C188.87,137.27,189.58,137.14,190.71,137.29z"/> + <path class="st106" d="M207.73,113.49c-0.79-0.8-1.74-0.54-2.1,0.4c-0.21,0.55-0.2,1.43,0.05,1.84 + c0.38,0.64,1.56,0.25,1.86-0.58C207.75,114.55,207.7,113.86,207.73,113.49z"/> + <path class="st106" d="M227.28,97.53c-0.03-1.21,0.15-2.01-0.11-2.52c-0.13-0.25-1.25-0.18-1.63,0.13 + c-0.4,0.32-0.78,1.43-0.58,1.62C225.37,97.16,226.16,97.18,227.28,97.53z"/> + <path class="st106" d="M250.11,83.27c0.3-0.91,0.7-1.43,0.69-1.92c-0.02-0.66-1.35-0.98-2.04-0.48 + c-0.48,0.35-1.06,1.2-0.88,1.39C248.27,82.7,249.09,82.83,250.11,83.27z"/> + <path class="st106" d="M272.84,91.04c-0.09-1.32,0.11-2.04-0.2-2.77c-0.45-1.09-2.25-1.93-2.75-1.29 + c-0.33,0.42-0.28,1.47,0.13,2.12C270.4,89.7,271.48,90.13,272.84,91.04z"/> + <path class="st106" d="M247.85,99.63c-1.2-0.24-2.08-0.6-2.68-0.45c-0.84,0.21-0.48,1.74,0.61,2.77 + c0.91,0.86,1.83,1.11,2.15,0.32C248.17,101.72,247.9,100.79,247.85,99.63z"/> + <path class="st106" d="M226.94,119.17c-0.5-1.56-0.6-2.51-1.06-3.27c-0.64-1.05-2.35-1.21-2.41-0.27 + c-0.04,0.68,0.35,1.85,0.87,2.45C224.81,118.64,225.69,118.67,226.94,119.17z"/> + <path class="st106" d="M207.82,135.57c-1.06-0.29-1.82-0.71-2.34-0.54c-0.73,0.24-0.67,1.21-0.11,2.27 + c0.69,1.3,2.05,2.05,2.4,1.17C208.01,137.87,207.81,136.83,207.82,135.57z"/> + <path class="st106" d="M191.97,161.18c-0.55-1.62-0.7-2.64-1.14-3.37c-0.62-1.03-2.08-0.88-2.07,0.14 + c0.01,0.73,0.41,1.92,0.89,2.48C190.09,160.94,190.85,160.84,191.97,161.18z"/> + <path class="st106" d="M176.41,184.48c-0.51-1.57-0.64-2.57-1.06-3.27c-0.57-0.98-1.95-0.73-1.96,0.27 + c-0.01,0.72,0.35,1.85,0.81,2.38C174.61,184.33,175.34,184.19,176.41,184.48z"/> + <path class="st106" d="M160.24,204.33c-0.88-0.03-1.52-0.22-1.99,0.04c-0.67,0.37-0.55,2.04,0.27,2.66 + c0.46,0.35,1.38,0.43,1.65,0.04C160.46,206.64,160.22,205.52,160.24,204.33z"/> + <path class="st106" d="M143.98,229.36c-0.31-1.32-0.34-2.18-0.7-2.81c-0.5-0.88-2-0.77-2.07,0.15 + c-0.05,0.66,0.24,1.71,0.66,2.18C142.24,229.3,142.98,229.16,143.98,229.36z"/> + <path class="st106" d="M125.01,245.81c-1.04-0.3-1.75-0.72-2.33-0.64c-0.82,0.1-0.91,0.92-0.53,1.82 + c0.47,1.12,1.64,1.74,2.18,1.08C124.7,247.62,124.73,246.83,125.01,245.81z"/> + <path class="st106" d="M103.63,261.93c-1.06-0.33-1.78-0.75-2.36-0.69c-0.84,0.08-0.93,0.9-0.55,1.79 + c0.47,1.12,1.64,1.74,2.19,1.1C103.29,263.68,103.33,262.91,103.63,261.93z"/> + <path class="st106" d="M83.65,282.2c-0.27-1.26-0.28-2.1-0.64-2.73c-0.49-0.87-2.06-0.86-2.15,0.02 + c-0.07,0.64,0.21,1.66,0.62,2.14C81.85,282.06,82.62,281.97,83.65,282.2z"/> + <path class="st106" d="M65.3,299.14c-0.92-0.13-1.59-0.44-2.08-0.24c-0.69,0.28-0.69,1.17-0.27,2.05 + c0.52,1.08,1.61,1.51,2,0.71C65.23,301.1,65.17,300.24,65.3,299.14z"/> + <path class="st106" d="M48.49,320.42c-0.84,0.01-1.47-0.18-1.93,0.08c-0.66,0.37-0.57,1.99,0.18,2.53 + c0.42,0.3,1.25,0.28,1.52-0.09C48.55,322.52,48.42,321.53,48.49,320.42z"/> + <path class="st106" d="M32.62,342.77c-0.78,0.25-1.36,0.24-1.75,0.63c-0.55,0.55-0.29,1.93,0.4,2.49 + c0.57,0.46,1.15,0.31,1.38-0.58C32.81,344.68,32.65,343.89,32.62,342.77z"/> + <path class="st106" d="M17.62,366.12c-0.73,0.23-1.27,0.21-1.66,0.58c-0.55,0.52-0.42,1.86,0.17,2.38 + c0.49,0.43,1.04,0.29,1.31-0.53C17.64,367.95,17.56,367.18,17.62,366.12z"/> + <path class="st106" d="M2.77,389.65c-0.68,0.15-1.15,0.06-1.54,0.38c-0.54,0.44-0.63,1.23-0.41,1.88 + c0.28,0.8,1.06,0.88,1.44,0.06C2.53,391.4,2.57,390.66,2.77,389.65z"/> + <path class="st106" d="M-14.81,415.27c0.63-0.21,1.13-0.16,1.4-0.51c0.3-0.39,0.56-1.27,0.54-1.74 + c-0.03-0.72-0.94-0.63-1.34,0.12C-14.49,413.64-14.55,414.32-14.81,415.27z"/> + <path class="st106" d="M-28.98,434.05c-0.64,0.33-1.07,0.43-1.47,0.79c-0.56,0.51-0.73,1.49-0.36,1.76 + c0.31,0.22,0.78,0,1.18-0.68C-29.34,435.43-29.24,434.87-28.98,434.05z"/> + <path class="st106" d="M-49.29,456.42c0.61-0.24,1.03-0.27,1.35-0.56c0.35-0.33,0.77-1.02,0.86-1.36 + c0.13-0.53-0.69-0.34-1.21,0.27C-48.64,455.18-48.85,455.69-49.29,456.42z"/> + <path class="st106" d="M553.39-33.01c-0.3,0.58-0.69,1.1-0.59,1.22c0.1,0.12,0.67-0.02,1.08-0.27 + c0.69-0.41,1.27-1.26,0.92-1.32C554.57-33.42,554.06-33.19,553.39-33.01z"/> + <path class="st106" d="M532.39-16.61c0.3-0.6,0.63-1.04,0.61-1.28c-0.03-0.33-1.26,0.07-1.7,0.56 + c-0.32,0.35-0.52,0.82-0.38,0.96C531.04-16.24,531.68-16.48,532.39-16.61z"/> + <path class="st106" d="M510.25-4.14c-0.83,0.19-1.38,0.23-1.9,0.46c-0.74,0.32-1.06,1.04-0.63,1.29 + c0.36,0.21,0.97,0.09,1.54-0.4C509.65-3.13,509.82-3.54,510.25-4.14z"/> + <path class="st106" d="M486.02,8.56c-0.9,0.11-1.5,0.08-2.06,0.27c-0.79,0.27-1.06,1.04-0.55,1.39 + c0.43,0.29,1.09,0.24,1.66-0.25C485.47,9.63,485.61,9.18,486.02,8.56z"/> + <path class="st106" d="M458.21,19.83c-0.18,0.72-0.54,1.28-0.32,1.55c0.23,0.28,1.07,0.45,1.6,0.35 + c0.88-0.18,1.37-1.14,0.79-1.48C459.89,20.02,459.19,20.02,458.21,19.83z"/> + <path class="st106" d="M434.81,30.78c-0.99-0.21-1.63-0.5-2.26-0.46c-0.87,0.06-1.19,0.59-1,1.2c0.22,0.75,1.33,1.21,2.04,0.77 + C434.08,31.98,434.29,31.43,434.81,30.78z"/> + <path class="st106" d="M407.04,42.63c0.25-0.92,0.62-1.43,0.51-1.93c-0.16-0.74-1.67-1.25-2.31-0.77 + c-0.42,0.31-0.62,1.06-0.39,1.5C405.07,41.83,405.99,42.08,407.04,42.63z"/> + <path class="st106" d="M380.39,51.82c-0.08-1.05,0.1-1.68-0.19-2.23c-0.4-0.77-2.28-1.14-2.61-0.53 + c-0.24,0.44-0.14,1.26,0.26,1.73C378.2,51.21,379.17,51.35,380.39,51.82z"/> + <path class="st106" d="M353.38,58.64c-1.2-0.46-2.02-0.96-2.72-1c-0.97-0.06-1.18,0.6-0.8,1.45c0.47,1.04,1.89,1.87,2.57,1.4 + C352.91,60.16,352.99,59.45,353.38,58.64z"/> + <path class="st106" d="M326.17,67.89c-1.27-0.59-2.1-1.16-2.82-1.25c-1.02-0.14-1.24,0.54-0.86,1.45 + c0.48,1.14,1.91,2.09,2.64,1.65C325.63,69.43,325.72,68.71,326.17,67.89z"/> + <path class="st106" d="M298.91,80.22c-0.11-1.27,0.07-1.98-0.25-2.7c-0.44-1-2.33-1.77-2.78-1.13 + c-0.3,0.43-0.22,1.44,0.21,2.06C296.5,79.02,297.57,79.4,298.91,80.22z"/> + <path class="st106" d="M255.2,69.57c1.08-0.15,1.72-0.13,2.28-0.33c0.87-0.31,1.41-1.18,0.86-1.35 + c-0.41-0.13-1.38-0.12-1.69,0.07C256.08,68.3,255.81,68.82,255.2,69.57z"/> + <path class="st106" d="M285.53,57.32c-1.34,0.13-2.13,0.11-2.85,0.33c-0.36,0.11-0.91,0.78-0.78,0.99 + c0.12,0.2,1.15,0.31,1.5,0.17C284.07,58.52,284.54,58.02,285.53,57.32z"/> + <path class="st106" d="M310.76,49.83c0.62-0.68,1.24-1.12,1.3-1.46c0.03-0.16-1-0.22-1.63-0.14c-0.85,0.1-1.75,0.81-1.38,1.12 + C309.3,49.55,309.92,49.6,310.76,49.83z"/> + <path class="st106" d="M340.11,39.95c-0.51-0.02-1.21-0.14-1.96-0.03c-0.35,0.06-1.12,0.64-1.1,0.86 + c0.02,0.22,0.72,0.41,1.28,0.4C339.2,41.16,340.18,40.53,340.11,39.95z"/> + <path class="st106" d="M368.51,32.12c-0.51-0.03-1.22-0.16-1.97-0.05c-0.35,0.05-1.14,0.62-1.12,0.84 + c0.02,0.22,0.71,0.41,1.28,0.41C367.59,33.31,368.58,32.7,368.51,32.12z"/> + <path class="st106" d="M397.78,24.31c-1.39,0.06-2.21,0-2.98,0.17c-0.38,0.08-0.99,0.67-0.88,0.87 + c0.11,0.19,1.17,0.34,1.54,0.22C396.18,25.35,396.72,24.91,397.78,24.31z"/> + <path class="st106" d="M425.31,16.5c-0.51-0.02-1.2-0.14-1.95-0.02c-0.35,0.06-1.11,0.64-1.1,0.87 + c0.02,0.22,0.71,0.41,1.27,0.39C424.41,17.72,425.38,17.09,425.31,16.5z"/> + <path class="st106" d="M453,7.88c-0.46,0.04-1.14-0.07-1.87,0.07c-0.34,0.07-1.04,0.73-1.07,0.9 + c-0.03,0.17,0.57,0.25,1.09,0.18C451.95,8.93,452.95,8.32,453,7.88z"/> + <path class="st106" d="M479.59-2.03c-0.44,0.06-1.02,0.07-1.69,0.27c-0.31,0.1-1.1,0.66-1.13,0.84 + c-0.03,0.17,0.55,0.22,1.04,0.13C478.59-0.93,479.54-1.58,479.59-2.03z"/> + <path class="st106" d="M501.72-11.65c0.97-0.27,1.51-0.35,2.05-0.59c0.82-0.36,1.49-1.08,1.06-1.12 + c-0.32-0.03-1.15,0.13-1.46,0.31C502.79-12.7,502.43-12.28,501.72-11.65z"/> + <path class="st106" d="M528.81-26.51c-0.4,0.11-0.93,0.17-1.53,0.46c-0.28,0.13-0.96,0.83-0.97,1.02 + c-0.01,0.19,0.51,0.18,0.95,0.03C527.96-25.23,528.8-26.02,528.81-26.51z"/> + <path class="st106" d="M551.5-42.05c-1.01,0.5-1.6,0.71-2.17,1.11c-0.28,0.19-0.76,0.95-0.68,1.11 + c0.07,0.15,0.85-0.03,1.13-0.26C550.31-40.53,550.7-41.13,551.5-42.05z"/> + <path class="st106" d="M-52.78,442.75c-0.91,0.61-1.47,0.83-1.93,1.35c-0.23,0.25-0.47,1.28-0.35,1.5 + c0.12,0.21,0.86,0.01,1.08-0.29C-53.56,444.73-53.31,443.96-52.78,442.75z"/> + <path class="st106" d="M-37.89,423.57c0.16-1.23,0.38-2.13,0.27-2.69c-0.05-0.25-0.77,0.01-1.17,0.35 + c-0.53,0.45-0.81,1.9-0.44,2.23C-38.98,423.68-38.54,423.54-37.89,423.57z"/> + <path class="st106" d="M-23.28,395.76c-0.88,0.64-1.46,0.85-1.85,1.45c-0.19,0.3-0.18,1.63,0.03,1.94 + c0.2,0.31,0.99,0.16,1.16-0.2C-23.62,398.26-23.56,397.28-23.28,395.76z"/> + <path class="st106" d="M231.49,79.62c-0.35,0.77-0.68,1.28-0.67,1.64c0.03,0.59,1.09,0.65,1.73,0.1 + c0.44-0.38,0.98-1.16,0.83-1.32C233.11,79.74,232.36,79.77,231.49,79.62z"/> + <path class="st106" d="M209.03,98.16c0.92-0.34,1.49-0.4,1.95-0.74c0.7-0.51,0.98-1.7,0.44-1.85c-0.39-0.11-1.27,0.02-1.5,0.3 + C209.5,96.39,209.4,97.1,209.03,98.16z"/> + <path class="st106" d="M192.29,114.43c-0.43,0.08-1.08,0.02-1.63,0.38c-0.25,0.17-0.53,1.35-0.37,1.73 + c0.15,0.37,0.83,0.54,1.28,0.39C192.27,116.69,192.69,115.4,192.29,114.43z"/> + <path class="st106" d="M174.6,135.2c-0.45,0.06-1.15-0.06-1.69,0.3c-0.25,0.17-0.41,1.49-0.2,1.94 + c0.2,0.44,0.95,0.68,1.41,0.54C174.82,137.76,175.14,136.33,174.6,135.2z"/> + <path class="st106" d="M157.52,156.69c-0.48,0.01-1.26-0.2-1.82,0.15c-0.26,0.16-0.33,1.58-0.07,2.1 + c0.25,0.5,1.09,0.85,1.57,0.74C157.96,159.51,158.2,157.99,157.52,156.69z"/> + <path class="st106" d="M137.75,177.07c0.2,1.43,0.17,2.29,0.47,3c0.48,1.12,1.81,1.51,2.18,0.63c0.25-0.6,0.31-1.95,0.01-2.29 + C139.86,177.78,138.98,177.64,137.75,177.07z"/> + <path class="st106" d="M122.47,201.63c-0.18-1.63-0.08-2.7-0.48-3.6c-0.18-0.41-1.43-0.74-2.05-0.65 + c-0.83,0.11-0.85,1.9-0.02,2.76C120.48,200.72,121.26,200.95,122.47,201.63z"/> + <path class="st106" d="M99.7,215.02c-0.82,1.02-0.37,2.5,0.66,3.37c0.9,0.76,1.78,0.88,2.04,0.06c0.2-0.63,0.08-2.11-0.26-2.39 + C101.34,215.41,100.33,215.26,99.7,215.02z"/> + <path class="st106" d="M81.01,235.47c-0.18-1.63-0.07-2.68-0.51-3.62c-0.2-0.43-1.57-0.91-2.24-0.89 + c-0.9,0.02-0.91,1.81-0.01,2.75C78.85,234.34,79.69,234.65,81.01,235.47z"/> + <path class="st106" d="M61.56,253.73c-0.25-1.71-0.21-2.83-0.65-3.77c-0.2-0.43-1.47-0.78-2.08-0.69 + c-0.82,0.13-0.73,2.01,0.13,2.9C59.54,252.77,60.32,253.01,61.56,253.73z"/> + <path class="st106" d="M41.98,274.2c1.04-0.18,1.76-0.05,2.17-0.43c0.62-0.58,0.25-2.54-0.59-3.06 + c-0.61-0.38-1.73-0.56-1.86-0.16C41.48,271.29,41.82,272.53,41.98,274.2z"/> + <path class="st106" d="M28.51,293.88c-0.49-0.01-1.32-0.29-1.83,0.09c-0.24,0.18-0.1,1.83,0.23,2.43c0.32,0.58,1.2,1,1.69,0.9 + C29.34,297.15,29.39,295.42,28.51,293.88z"/> + <path class="st106" d="M13.33,322.55c0.86-0.39,1.46-0.39,1.8-0.85c0.52-0.71,0.2-2.59-0.5-2.95 + c-0.51-0.26-1.44-0.22-1.54,0.21C12.91,319.75,13.19,320.92,13.33,322.55z"/> + <path class="st106" d="M1.85,344.51c-0.41,0.09-1.08-0.02-1.52,0.45c-0.21,0.22-0.14,1.78,0.12,2.29 + c0.25,0.49,0.97,0.73,1.38,0.54C2.45,347.49,2.54,345.83,1.85,344.51z"/> + <path class="st106" d="M-12.13,370.93c-0.49,1.39-0.24,2.64,0.36,3c0.52,0.32,1.05,0.04,1.22-0.88 + c0.13-0.71,0.07-2.11-0.13-2.22C-11.15,370.55-11.76,370.87-12.13,370.93z"/> + <path class="st106" d="M32.55,363.73c-1.05,0.66-1.44,0.83-1.78,1.15c-0.56,0.53-0.78,1.3-0.39,1.87 + c0.16,0.24,0.78,0.24,0.98-0.01C31.68,366.31,31.83,365.61,32.55,363.73z"/> + <path class="st106" d="M46.47,342.6c0.03,0.94-0.06,1.64,0.14,2.23c0.08,0.22,0.89,0.29,1.18,0.05 + c0.54-0.45,0.76-1.33,0.14-2.01C47.65,342.56,47.17,342.69,46.47,342.6z"/> + <path class="st106" d="M65.96,320.94c-1.32,0.34-1.8,0.39-2.2,0.65c-0.65,0.42-0.84,1.23-0.21,2.1 + c0.27,0.37,1.14,0.67,1.36,0.45C65.28,323.77,65.34,322.94,65.96,320.94z"/> + <path class="st106" d="M83.75,305.68c0.03-1.45,0.22-2.07,0.04-2.72c-0.22-0.85-1.63-1.51-2.06-0.98 + c-0.47,0.58-0.68,1.41,0.24,2.41C82.47,304.92,83.13,305.23,83.75,305.68z"/> + <path class="st106" d="M103.73,288.1c0.01-1.49,0.2-2.09,0-2.79c-0.26-0.9-1.83-1.75-2.29-1.27c-0.51,0.53-0.73,1.36,0.32,2.51 + C102.32,287.16,103.05,287.56,103.73,288.1z"/> + <path class="st106" d="M126.07,269.19c-1.84-0.68-2.62-1.16-3.04-1.03c-0.76,0.24-0.9,1.14,0.12,2.39 + c1.01,1.24,1.88,1.26,2.32,0.59C125.75,270.71,125.81,270.06,126.07,269.19z"/> + <path class="st106" d="M147.4,253.61c-1.34-0.73-2.11-1.34-2.6-1.34c-0.97,0-0.93,1.08-0.1,2.36c0.37,0.56,1.63,1.39,1.89,1.24 + C147.06,255.6,147.08,254.67,147.4,253.61z"/> + <path class="st106" d="M166.07,234.21c-1.33-0.72-2.11-1.35-2.58-1.32c-0.93,0.05-0.79,1.25,0.1,2.61 + c0.4,0.6,1.66,1.43,1.89,1.25C165.91,236.42,165.85,235.39,166.07,234.21z"/> + <path class="st106" d="M183.42,215.71c-0.62-1.66-0.79-2.68-1.29-3.41c-1.11-1.61-1.99-1.65-2.23-0.76 + c-0.13,0.47,0.36,2.12,0.69,2.43C181.36,214.72,182.22,215.01,183.42,215.71z"/> + <path class="st106" d="M199.36,192.87c-0.63-1.68-0.82-2.71-1.32-3.44c-1.12-1.62-2.01-1.66-2.24-0.75 + c-0.12,0.48,0.39,2.16,0.72,2.47C197.31,191.89,198.17,192.17,199.36,192.87z"/> + <path class="st106" d="M214.85,165.42c-1.59,0.04-2.23-0.09-2.67,0.11c-0.73,0.34-0.69,1.44,0.42,2.89 + c0.48,0.63,1.69,1.33,1.9,1.09C214.84,169.11,214.66,167.99,214.85,165.42z"/> + <path class="st106" d="M232.32,144.34c-1.66-0.05-2.33-0.2-2.8-0.03c-0.78,0.28-0.79,1.32,0.3,2.75 + c0.47,0.61,1.7,1.33,1.92,1.12C232.13,147.81,232,146.74,232.32,144.34z"/> + <path class="st106" d="M252.07,127.45c-1.4-0.78-2.23-1.44-2.74-1.47c-1.04-0.07-0.98,1.04-0.09,2.36 + c0.39,0.58,1.7,1.44,1.97,1.3C251.69,129.38,251.71,128.46,252.07,127.45z"/> + <path class="st106" d="M275.35,113.57c-1.38-0.93-2.53-1.93-2.73-1.79c-0.48,0.33-0.51,1.21-0.71,1.87 + c0.71,0.53,1.74,1.57,2.06,1.51C274.57,115.04,274.78,114.29,275.35,113.57z"/> + <path class="st106" d="M16.26,386.93c-0.66,0.1-1.01,0-1.31,0.22c-0.6,0.44-0.79,1.23-0.55,1.78c0.1,0.24,0.69,0.24,0.88,0.01 + C15.62,388.52,15.83,387.85,16.26,386.93z"/> + <path class="st106" d="M0.08,408.85c-0.62,0.14-0.94,0.08-1.23,0.31c-0.59,0.46-0.82,1.19-0.64,1.67 + c0.08,0.21,0.62,0.16,0.81-0.06C-0.63,410.35-0.38,409.72,0.08,408.85z"/> + <path class="st106" d="M-17.91,432.06c0.44-0.95,0.73-1.44,0.8-1.79c0.09-0.47-0.64-0.33-1.06,0.21 + c-0.46,0.58-0.82,1.24-0.5,1.5C-18.5,432.12-18.17,432.04-17.91,432.06z"/> + <path class="st106" d="M-34.98,449.29c-0.7,0.55-1.17,0.85-1.54,1.24c-0.21,0.23-0.25,0.62-0.37,0.94 + c0.43-0.28,0.87-0.49,1.28-0.86C-35.41,450.44-35.28,449.97-34.98,449.29z"/> + <path class="st106" d="M-54.66,467.23c-0.49,0.12-0.8,0.1-0.99,0.26c-0.44,0.36-0.83,0.8-1.24,1.2 + c0.22-0.03,0.44,0.04,0.67-0.12C-55.78,468.26-55.33,467.82-54.66,467.23z"/> + <path class="st106" d="M300.41,100.19c-1.89-0.32-2.62-0.56-3.2-0.52c-0.96,0.07-1.18,0.84-0.24,2.09 + c0.41,0.54,1.66,1.28,1.97,1.17C299.46,102.73,299.53,101.92,300.41,100.19z"/> + <path class="st106" d="M324.78,92.35c0.18-1.17,0.47-1.66,0.32-2.29c-0.2-0.82-1.93-1.86-2.53-1.53 + c-0.65,0.37-0.98,1.08,0.12,2.26C323.25,91.41,324.05,91.83,324.78,92.35z"/> + <path class="st106" d="M350.54,81.39c0.26-1.08,0.58-1.54,0.47-2.12c-0.14-0.75-1.78-1.67-2.39-1.35 + c-0.67,0.35-1.03,1.02-0.03,2.08C349.11,80.55,349.87,80.92,350.54,81.39z"/> + <path class="st106" d="M376.42,70.57c0.33-1,0.67-1.43,0.61-1.95c-0.08-0.68-1.6-1.46-2.21-1.15c-0.67,0.34-1.07,0.96-0.18,1.9 + C375.09,69.85,375.8,70.16,376.42,70.57z"/> + <path class="st106" d="M400.58,56.49c-0.06,0.85-0.24,1.45-0.05,2.03c0.07,0.21,1.14,0.59,1.57,0.51 + c0.79-0.16,1.24-0.77,0.52-1.58C402.29,57.09,401.58,56.95,400.58,56.49z"/> + <path class="st106" d="M428.48,45.82c-1.04,0.17-1.79,0.14-2.26,0.42c-0.27,0.16-0.32,0.97-0.07,1.22 + c0.56,0.57,1.41,0.59,1.92,0.01C428.35,47.17,428.29,46.66,428.48,45.82z"/> + <path class="st106" d="M454.51,33.95c-1.45,0.19-1.99,0.19-2.48,0.33c-0.82,0.23-1.26,0.74-0.89,1.31 + c0.16,0.24,0.95,0.44,1.24,0.31C452.89,35.68,453.22,35.17,454.51,33.95z"/> + <path class="st106" d="M476.76,23.67c0.55-0.73,0.95-1.1,1.04-1.43c0.13-0.43-0.88-0.61-1.47-0.26 + c-0.64,0.38-1.14,0.88-0.68,1.3C475.89,23.5,476.37,23.54,476.76,23.67z"/> + <path class="st106" d="M501.63,8.2c-0.88,0.36-1.47,0.51-1.92,0.81c-0.26,0.18-0.49,0.75-0.35,0.88 + c0.31,0.27,0.99,0.09,1.55-0.44C501.19,9.18,501.27,8.84,501.63,8.2z"/> + <path class="st106" d="M524.84-6.11c-1.04,0.3-1.42,0.31-1.77,0.51c-0.66,0.37-1.13,0.87-0.9,1.15 + c0.22,0.27,0.83-0.01,1.43-0.5C523.98-5.26,524.3-5.6,524.84-6.11z"/> + <path class="st106" d="M544.6-20.75c-0.16,0.42-0.4,0.82-0.36,1.03c0.02,0.07,0.73-0.27,1.1-0.53c0.57-0.39,0.98-1.1,0.62-1.05 + C545.71-21.27,545.26-21.02,544.6-20.75z"/> + <path class="st106" d="M568.05-37.75c-0.97,0.38-1.31,0.44-1.64,0.66c-0.63,0.41-1.1,0.91-0.93,1.12 + c0.17,0.21,0.74-0.12,1.33-0.61C567.18-36.89,567.5-37.23,568.05-37.75z"/> + <path class="st106" d="M50.3,370.14c-0.21-0.97-0.19-1.83-0.53-2.26c-0.34-0.43-1.29-0.76-1.49-0.51 + c-0.24,0.29-0.17,1.38,0.14,1.83C48.71,369.65,49.47,369.74,50.3,370.14z"/> + <path class="st106" d="M69.52,351.85c-0.29-1.07-0.33-2-0.74-2.51c-0.41-0.51-1.49-0.99-1.69-0.75c-0.25,0.28-0.09,1.48,0.28,2 + C67.73,351.11,68.57,351.32,69.52,351.85z"/> + <path class="st106" d="M87.97,330.56c-0.65,0.29-1.4,0.24-1.37,0.74c0.03,0.52,0.82,1.95,1.29,2.31 + c0.52,0.4,1.42,0.34,1.46-0.1C89.37,333.03,88.6,331.87,87.97,330.56z"/> + <path class="st106" d="M109.39,314.73c-0.87-0.17-1.86-0.67-1.97-0.3c-0.12,0.4,0.48,1.96,0.94,2.42 + c0.62,0.61,1.75,1.09,2.01,0.81C110.59,317.43,109.86,316.04,109.39,314.73z"/> + <path class="st106" d="M132.19,299.57c-1.29-0.32-2.28-0.84-2.57-0.53c-0.28,0.29,0.17,1.46,0.3,2.25 + c0.81,0.57,1.93,1.61,2.37,1.58C132.67,302.86,132.29,301.62,132.19,299.57z"/> + <path class="st106" d="M156.07,290.07c-0.34-1.26-0.33-2.17-0.85-2.91c-0.56-0.8-1.62-1.43-2.45-2.13 + c0.08,0.76-0.15,1.48,0.32,2.28C153.5,288.02,154.68,288.82,156.07,290.07z"/> + <path class="st106" d="M175.51,269.13c-0.88-0.17-1.91-0.73-1.98-0.3c-0.07,0.46,0.71,2.24,1.22,2.76 + c0.68,0.69,1.86,1.2,2.07,0.88C177,272.2,176.12,270.63,175.51,269.13z"/> + <path class="st106" d="M194.05,248.5c-1.14-0.12-2.08-0.57-2.28-0.15c-0.19,0.4,0.38,1.73,0.62,2.65 + c0.79,0.53,1.9,1.57,2.28,1.45C195,252.36,194.48,250.95,194.05,248.5z"/> + <path class="st106" d="M209.76,226.29c-0.8-0.07-1.76-0.53-1.79-0.05c-0.03,0.52,0.81,2.36,1.3,2.85 + c0.66,0.66,1.74,1.05,1.91,0.66C211.32,229.43,210.42,227.85,209.76,226.29z"/> + <path class="st106" d="M224.81,206.18c0.87,0.11,1.88,0.62,1.94,0.14c0.06-0.45-0.8-2.21-1.39-2.88 + c-0.51-0.58-1.6-0.88-1.74-0.49C223.49,203.32,224.25,204.74,224.81,206.18z"/> + <path class="st106" d="M242.49,180.52c-1.64-0.39-2.63-0.96-2.74-0.56c-0.12,0.43,0.57,1.76,0.91,2.7 + c0.69,0.29,1.7,1.02,2,0.76C242.97,183.15,242.61,181.94,242.49,180.52z"/> + <path class="st106" d="M260.03,160.28c-1.1-0.72-2.2-1.7-2.46-1.52c-0.31,0.21-0.16,1.47,0.27,2.18 + c0.38,0.62,1.67,1.54,2.09,1.51C260.3,162.42,260.01,161.25,260.03,160.28z"/> + <path class="st106" d="M280.3,141.52c-1.2-0.18-2.11-0.59-2.41-0.27c-0.28,0.3,0.09,1.36,0.18,2.09 + c0.74,0.46,1.73,1.31,2.14,1.24C280.57,144.52,280.28,143.41,280.3,141.52z"/> + <path class="st106" d="M303.58,128.6c-1.07-0.68-2.09-1.57-2.4-1.46c-0.37,0.14-0.42,1.15-0.07,1.76 + c0.31,0.53,1.54,1.39,2,1.41C303.51,130.32,303.41,129.36,303.58,128.6z"/> + <path class="st106" d="M31.68,389.12c-0.11-0.85-0.03-1.63-0.31-1.98c-0.27-0.35-1.1-0.52-1.3-0.27 + c-0.24,0.29-0.26,1.27-0.02,1.64C30.29,388.87,30.96,388.86,31.68,389.12z"/> + <path class="st106" d="M11.92,406.45c0.02,0.76-0.11,1.48,0.1,1.69c0.25,0.24,0.8,0.03,1.22,0.02c0-0.51,0.16-1.17-0.03-1.47 + C13.04,406.41,12.48,406.52,11.92,406.45z"/> + <path class="st106" d="M-4.37,425.44c-0.71,0.38-1.17,0.51-1.44,0.84c-0.26,0.31-0.33,0.84-0.49,1.27 + c0.34-0.01,0.73,0.14,1.02-0.07C-5.03,427.3-4.91,426.69-4.37,425.44z"/> + <path class="st106" d="M-24.24,446.31c0.26-0.52,0.6-1.01,0.55-1.17c-0.05-0.17-0.46-0.01-0.7,0.01 + c-0.24,0.37-0.64,0.86-0.66,1.06C-25.06,446.39-24.63,446.27-24.24,446.31z"/> + <path class="st106" d="M-44.16,463.38c0.28-0.37,0.66-0.79,0.62-0.85c-0.04-0.06-0.52,0.18-0.76,0.38 + c-0.28,0.23-0.72,0.71-0.71,0.79C-45.02,463.79-44.55,463.52-44.16,463.38z"/> + <path class="st106" d="M-64.35,477.49c-0.69,0.41-1.11,0.58-1.47,0.81c-0.34,0.22-0.63,0.49-0.95,0.71 + c0.25-0.13,0.45-0.2,0.76-0.38C-65.74,478.47-65.35,478.19-64.35,477.49z"/> + <path class="st106" d="M325.12,116.4c0.92,0.17,1.87,0.6,2.07,0.3c0.2-0.28-0.21-1.49-0.66-1.98c-0.39-0.42-1.5-0.75-1.76-0.51 + C324.51,114.43,324.93,115.42,325.12,116.4z"/> + <path class="st106" d="M351.53,102.36c-0.94-0.52-1.81-1.24-2.12-1.13c-0.37,0.13-0.54,1-0.28,1.5 + c0.23,0.44,1.31,1.11,1.75,1.1C351.25,103.83,351.27,103.02,351.53,102.36z"/> + <path class="st106" d="M375.94,88.75c-1.08-0.03-1.84-0.27-2.19-0.02c-0.33,0.23-0.23,0.97-0.32,1.48 + c0.59,0.28,1.31,0.82,1.72,0.74C375.5,90.88,375.49,90.11,375.94,88.75z"/> + <path class="st106" d="M397.74,77.95c0.8,0.02,1.55,0.23,1.8-0.03c0.23-0.24,0.11-1.1-0.2-1.42c-0.26-0.28-1.2-0.39-1.48-0.18 + C397.59,76.52,397.77,77.22,397.74,77.95z"/> + <path class="st106" d="M423.26,65.26c0.17-0.63,0.51-1.14,0.34-1.43c-0.18-0.32-0.83-0.44-1.28-0.66 + c-0.2,0.41-0.64,0.87-0.54,1.22C421.89,64.7,422.58,64.89,423.26,65.26z"/> + <path class="st106" d="M445.41,51.49c0.7-0.1,1.32-0.05,1.58-0.28c0.25-0.22,0.29-0.88,0.08-1.09 + c-0.18-0.18-0.98-0.13-1.27,0.07C445.52,50.38,445.56,50.91,445.41,51.49z"/> + <path class="st106" d="M471.17,35.92c-1.12,0.22-1.67,0.19-1.93,0.39c-0.29,0.23-0.32,0.68-0.46,1.03 + c0.42-0.03,0.9,0.06,1.25-0.13C470.39,37.01,470.64,36.55,471.17,35.92z"/> + <path class="st106" d="M493.46,21.73c-0.5,0.01-0.88-0.13-1.15,0.03c-0.32,0.19-0.76,0.73-0.75,0.93 + c0.01,0.18,0.56,0.21,0.88,0.07C492.72,22.64,493.03,22.18,493.46,21.73z"/> + <path class="st106" d="M516.06,6.24c-0.98,0.38-1.43,0.47-1.69,0.68c-0.29,0.23-0.4,0.58-0.59,0.87 + c0.36-0.1,0.74-0.12,1.07-0.34C515.2,7.24,515.5,6.83,516.06,6.24z"/> + <path class="st106" d="M535.4-7.63c0.55-0.27,1.02-0.41,1.28-0.64c0.25-0.22,0.46-0.68,0.36-0.75c-0.09-0.07-0.7,0.2-0.97,0.42 + C535.79-8.4,535.67-8.06,535.4-7.63z"/> + <path class="st106" d="M558.57-25.45c-0.51,0.28-0.95,0.45-1.19,0.68c-0.25,0.24-0.52,0.73-0.41,0.76 + c0.15,0.04,0.7-0.22,0.98-0.45C558.2-24.67,558.32-25.02,558.57-25.45z"/> + <path class="st106" d="M580.66-41.32c-0.98,0.37-1.41,0.46-1.68,0.66c-0.29,0.22-0.43,0.55-0.63,0.84 + c0.35-0.11,0.72-0.13,1.06-0.34C579.76-40.37,580.07-40.76,580.66-41.32z"/> + <path class="st106" d="M53.94,394.96c-0.91-0.39-1.66-0.92-1.96-0.76c-0.28,0.15-0.07,1.03-0.07,1.59 + c0.55,0.33,1.3,0.99,1.62,0.9C53.87,396.59,53.78,395.77,53.94,394.96z"/> + <path class="st106" d="M75.23,379.22c-1.01-0.51-1.87-1.17-2.18-1.02c-0.29,0.13,0.01,1.12,0.04,1.73 + c0.62,0.41,1.48,1.21,1.82,1.14C75.26,380.99,75.11,380.1,75.23,379.22z"/> + <path class="st106" d="M97.05,364.09c-1.1-0.62-2.05-1.39-2.38-1.27c-0.3,0.12,0.07,1.19,0.14,1.85c0.69,0.49,1.64,1.41,2,1.36 + C97.19,365.99,96.98,365.02,97.05,364.09z"/> + <path class="st106" d="M116.11,347.65c0.66,1.35,0.99,2.44,1.55,3.05c0.53,0.57,1.69,1.1,1.86,0.82 + c0.17-0.29-0.37-1.73-0.87-2.31C118.09,348.55,117.23,348.3,116.11,347.65z"/> + <path class="st106" d="M143.36,338.69c-0.7-1.45-1.05-2.64-1.58-3.18c-0.66-0.68-1.84-1.29-2.08-1.06 + c-0.2,0.2,0.43,1.72,1.01,2.47C141.21,337.55,142.15,337.91,143.36,338.69z"/> + <path class="st106" d="M166.36,322.89c-1.28-0.84-2.42-1.83-2.78-1.74c-0.33,0.08,0.16,1.31,0.29,2.04 + c0.81,0.64,1.96,1.78,2.35,1.78C166.64,324.97,166.34,323.89,166.36,322.89z"/> + <path class="st106" d="M189.17,308.53c-1.23-0.76-2.33-1.71-2.65-1.58c-0.3,0.13,0.23,1.41,0.4,2.18 + c0.79,0.61,1.91,1.72,2.27,1.68C189.57,310.76,189.22,309.62,189.17,308.53z"/> + <path class="st106" d="M207.81,288.89c-1.04-0.28-2.04-0.89-2.15-0.49c-0.1,0.37,0.73,1.79,1.15,2.75 + c0.65,0.28,1.63,0.98,1.84,0.71C208.86,291.59,208.25,290.3,207.81,288.89z"/> + <path class="st106" d="M224.39,266.67c-0.97-0.19-1.91-0.73-2-0.31c-0.08,0.4,0.74,1.8,1.16,2.76 + c0.61,0.23,1.54,0.86,1.73,0.55C225.45,269.38,224.83,268.09,224.39,266.67z"/> + <path class="st106" d="M240.94,246.23c-0.75-1.5-1.21-2.81-1.68-3.28c-0.59-0.59-1.56-0.92-1.7-0.55 + c-0.11,0.31,0.62,1.95,1.16,2.64C239.2,245.64,239.95,245.73,240.94,246.23z"/> + <path class="st106" d="M254.18,217.93c-0.89-0.09-1.76-0.52-1.85-0.1c-0.08,0.4,0.65,1.69,1.03,2.58 + c0.56,0.16,1.4,0.68,1.58,0.36C255.11,220.47,254.57,219.27,254.18,217.93z"/> + <path class="st106" d="M270.16,194.9c-0.97-0.42-1.85-1.08-2.1-0.85c-0.23,0.21,0.2,1.36,0.35,2.09 + c0.62,0.39,1.51,1.19,1.79,1.04C270.48,197.03,270.2,195.97,270.16,194.9z"/> + <path class="st106" d="M288.16,176.16c-0.5-1.19-0.75-2.23-1.15-2.61c-0.5-0.47-1.43-0.74-1.62-0.46 + c-0.17,0.25,0.31,1.56,0.75,2.12C286.52,175.69,287.24,175.76,288.16,176.16z"/> + <path class="st106" d="M308.26,156.48c-0.95-0.41-1.76-0.98-2.08-0.84c-0.29,0.14-0.04,1.05-0.03,1.63 + c0.59,0.35,1.38,1.04,1.71,0.95C308.19,158.13,308.1,157.3,308.26,156.48z"/> + <path class="st106" d="M33.06,412.98c-0.25-0.91-0.29-1.7-0.59-1.96c-0.37-0.33-1.16-0.47-1.39-0.23 + c-0.2,0.2-0.01,1.17,0.28,1.57C31.62,412.69,32.28,412.71,33.06,412.98z"/> + <path class="st106" d="M12.09,427.16c-0.74,0.06-1.33-0.06-1.54,0.2c-0.2,0.25,0,0.9,0.03,1.37c0.42,0.02,0.99,0.22,1.24,0.01 + C12.06,428.54,11.98,427.9,12.09,427.16z"/> + <path class="st106" d="M-9.02,444.99c-0.01-0.62,0.13-1.19-0.07-1.33c-0.24-0.17-0.87-0.12-1.12,0.1 + c-0.21,0.19-0.27,0.86-0.11,1.09C-10.18,445.05-9.63,444.93-9.02,444.99z"/> + <path class="st106" d="M-30.67,460.29c0.1-0.48,0.33-0.95,0.18-1.03c-0.19-0.1-0.76,0.02-1.02,0.22 + c-0.22,0.17-0.4,0.7-0.3,0.86C-31.73,460.48-31.21,460.32-30.67,460.29z"/> + <path class="st106" d="M-52.51,473.59c-0.51,0.1-0.83,0.1-1.12,0.26c-0.27,0.15-0.52,0.48-0.78,0.73 + c0.27-0.03,0.53,0.04,0.81-0.09C-53.31,474.35-53,474.01-52.51,473.59z"/> + <path class="st106" d="M329.87,140.46c-0.89-0.1-1.67-0.43-1.88-0.16c-0.2,0.26,0.21,1.14,0.35,1.75 + c0.53,0.13,1.26,0.51,1.53,0.3C330.11,142.16,329.89,141.36,329.87,140.46z"/> + <path class="st106" d="M352.42,125.71c-0.83-0.27-1.53-0.7-1.84-0.55c-0.29,0.14-0.18,0.89-0.24,1.38 + c0.51,0.26,1.16,0.77,1.47,0.67C352.15,127.11,352.16,126.42,352.42,125.71z"/> + <path class="st106" d="M374.84,110.76c-0.8-0.22-1.42-0.57-1.73-0.42c-0.29,0.14-0.24,0.82-0.33,1.27 + c0.47,0.21,1.09,0.69,1.4,0.58C374.51,112.09,374.56,111.43,374.84,110.76z"/> + <path class="st106" d="M395.21,95.5c0.15,0.72,0.12,1.36,0.42,1.64c0.28,0.26,1.1,0.34,1.3,0.12c0.22-0.23,0.17-1.06-0.08-1.33 + C396.58,95.62,395.94,95.65,395.21,95.5z"/> + <path class="st106" d="M417.9,80.89c0.12,0.67,0.06,1.28,0.33,1.53c0.26,0.23,1.04,0.27,1.25,0.06 + c0.22-0.23,0.21-1.01-0.01-1.26C419.22,80.95,418.6,81.01,417.9,80.89z"/> + <path class="st106" d="M442.47,66.42c-0.69-0.1-1.21-0.33-1.52-0.17c-0.28,0.15-0.32,0.72-0.46,1.11 + c0.4,0.13,0.89,0.46,1.19,0.34C441.99,67.58,442.12,67.02,442.47,66.42z"/> + <path class="st106" d="M464.55,51.05c-0.71,0.11-1.25,0.05-1.5,0.28c-0.23,0.21-0.15,0.73-0.2,1.11c0.4-0.02,0.9,0.1,1.17-0.09 + C464.29,52.17,464.32,51.65,464.55,51.05z"/> + <path class="st106" d="M486.55,35.74c-0.59,0.02-1.02-0.1-1.31,0.08c-0.27,0.17-0.38,0.65-0.56,0.99 + c0.34,0.05,0.72,0.25,1,0.11C485.97,36.77,486.17,36.29,486.55,35.74z"/> + <path class="st106" d="M508.04,19.68c-0.63,0.21-1.08,0.25-1.33,0.47c-0.23,0.21-0.24,0.61-0.35,0.94 + c0.35-0.08,0.75-0.07,1.02-0.27C507.63,20.63,507.74,20.21,508.04,19.68z"/> + <path class="st106" d="M527.86,3.92c-0.1,0.41-0.32,0.83-0.19,0.91c0.12,0.08,0.7-0.14,0.92-0.34 + c0.23-0.22,0.45-0.72,0.35-0.82C528.84,3.57,528.36,3.79,527.86,3.92z"/> + <path class="st106" d="M550.27-13.13c-0.57,0.28-0.96,0.4-1.21,0.62c-0.23,0.21-0.31,0.53-0.46,0.81 + c0.31-0.13,0.65-0.19,0.91-0.4C549.77-12.31,549.93-12.66,550.27-13.13z"/> + <path class="st106" d="M570.83-28.28c0.13-0.48,0.32-0.81,0.22-0.91c-0.09-0.09-0.52,0-0.8,0.17 + c-0.23,0.15-0.63,0.62-0.64,0.76C569.61-28.13,570.01-28.26,570.83-28.28z"/> + <path class="st106" d="M598.82-34.32c-0.37,0.1-0.74,0.19-1.1,0.29c-0.08,0.15-0.3,0.42-0.2,0.42 + c0.24,0.01,0.64-0.12,0.98-0.19C598.59-33.94,598.68-34.08,598.82-34.32z"/> + <path class="st106" d="M575.15-20.85c-0.34,0.18-0.68,0.34-1,0.55c-0.08,0.05-0.17,0.43-0.08,0.41 + c0.27-0.08,0.63-0.28,0.95-0.44C575.05-20.47,575.09-20.62,575.15-20.85z"/> + <path class="st106" d="M554.75-3.6c-0.24-0.01-0.39-0.01-0.53-0.01c-0.2,0.3-0.47,0.62-0.58,0.87 + c-0.05,0.1,0.24,0.04,0.38,0.06C554.26-2.98,554.51-3.29,554.75-3.6z"/> + <path class="st106" d="M535.32,14.83c-0.25-0.02-0.41-0.04-0.57-0.05c-0.19,0.32-0.44,0.66-0.53,0.94 + c-0.04,0.11,0.26,0.07,0.41,0.09C534.86,15.48,535.09,15.16,535.32,14.83z"/> + <path class="st106" d="M515.29,34.01c0.01,0.32-0.02,0.66,0.06,0.88c0.03,0.06,0.59-0.26,0.6-0.3 + c0.09-0.33,0.14-0.66,0.11-0.93C516.07,33.61,515.66,33.85,515.29,34.01z"/> + <path class="st106" d="M497.66,53.19c-0.3-0.15-0.5-0.24-0.69-0.34c-0.18,0.35-0.43,0.69-0.52,1.04 + c-0.03,0.12,0.42,0.37,0.49,0.3C497.21,53.92,497.41,53.55,497.66,53.19z"/> + <path class="st106" d="M478.46,73.74c0.2-0.47,0.46-0.98,0.42-1.03c-0.26-0.25-0.61-0.38-0.93-0.56 + c-0.11,0.28-0.37,0.69-0.3,0.81C477.83,73.28,478.16,73.47,478.46,73.74z"/> + <path class="st106" d="M459.71,91.19c-0.35,0.17-0.74,0.27-1,0.54c-0.07,0.07,0.25,0.94,0.36,0.95 + c0.36,0.03,0.71-0.18,1.07-0.3C460.02,92.05,459.9,91.72,459.71,91.19z"/> + <path class="st106" d="M441.18,110.76c-0.53-0.35-0.86-0.57-1.18-0.79c-0.05,0.48-0.2,0.95-0.11,1.45 + c0.04,0.21,0.59,0.46,0.9,0.69C440.92,111.66,441.05,111.22,441.18,110.76z"/> + <path class="st106" d="M421.7,131.04c0.11-0.57,0.31-1.16,0.23-1.25c-0.45-0.47-0.97-0.82-1.47-1.21 + c-0.06,0.34-0.28,0.8-0.14,1C420.68,130.12,421.2,130.54,421.7,131.04z"/> + <path class="st106" d="M402.54,148.07c-0.64-0.56-1.06-0.91-1.47-1.27c-0.08,0.46-0.28,0.88-0.19,1.43 + c0.03,0.19,1.01,1.08,1.08,1.02C402.26,149,402.36,148.5,402.54,148.07z"/> + <path class="st106" d="M382.79,166.19c-0.71-0.64-1.17-1.04-1.62-1.45c-0.07,0.49-0.25,0.91-0.13,1.5 + c0.04,0.21,1.13,1.22,1.2,1.16C382.53,167.16,382.61,166.63,382.79,166.19z"/> + <path class="st106" d="M361.78,182.79c-0.45,0.05-0.98-0.02-1.27,0.23c-0.07,0.06,0.77,1.56,0.95,1.65 + c0.56,0.26,0.99,0.15,1.48,0.19C362.62,184.28,362.29,183.71,361.78,182.79z"/> + <path class="st106" d="M-48.36,484.48c-0.06,0.24-0.18,0.47-0.13,0.65c0.02,0.05,0.77-0.03,0.79-0.06 + c0.18-0.22,0.32-0.45,0.34-0.65C-47.35,484.39-47.9,484.45-48.36,484.48z"/> + <path class="st106" d="M-21.35,476.02c0.35-0.28,0.79-0.57,0.75-0.61c-0.23-0.22-0.59-0.37-0.9-0.55 + c-0.2,0.17-0.6,0.4-0.55,0.5C-21.94,475.61-21.62,475.79-21.35,476.02z"/> + <path class="st106" d="M4.01,464.99c0.15,0.4,0.22,0.78,0.45,1.09c0.08,0.1,0.61,0.01,0.93,0c-0.07-0.35-0.08-0.73-0.26-1.06 + C5.08,464.94,4.51,465,4.01,464.99z"/> + <path class="st106" d="M31.39,455.01c-0.5-0.08-1-0.15-1.5-0.23c0.08,0.33,0.06,0.85,0.24,0.96c0.42,0.24,0.95,0.28,1.43,0.4 + C31.52,455.83,31.47,455.52,31.39,455.01z"/> + <path class="st106" d="M57.05,446.48c0.24-0.41,0.59-0.82,0.51-0.9c-0.43-0.45-0.97-0.83-1.47-1.23 + c-0.13,0.25-0.47,0.56-0.35,0.75C56.05,445.57,56.57,445.99,57.05,446.48z"/> + <path class="st106" d="M81.33,434.01c0.29,0.65,0.48,1.26,0.85,1.82c0.11,0.16,1.09,0.37,1.09,0.3 + c-0.07-0.52-0.23-1.1-0.51-1.67C82.7,434.34,81.98,434.2,81.33,434.01z"/> + <path class="st106" d="M107.02,423.58c0.35,0.72,0.59,1.39,1.01,2.01c0.12,0.18,1.15,0.43,1.14,0.35 + c-0.11-0.56-0.32-1.2-0.65-1.84C108.45,423.99,107.71,423.82,107.02,423.58z"/> + <path class="st106" d="M135.07,414.47c-0.79-0.67-1.28-1.08-1.77-1.5c-0.02,0.51-0.19,0.95-0.01,1.54 + c0.07,0.25,0.88,0.81,1.35,1.22C134.79,415.31,134.93,414.9,135.07,414.47z"/> + <path class="st106" d="M160.42,403.45c-0.78-0.65-1.24-1.02-1.75-1.46c0,0.53-0.18,0.96,0,1.55c0.07,0.24,0.87,0.79,1.33,1.19 + C160.14,404.3,160.28,403.88,160.42,403.45z"/> + <path class="st106" d="M182.8,390.23c0.41,0.79,0.72,1.53,1.2,2.21c0.14,0.2,1.18,0.45,1.16,0.36 + c-0.16-0.62-0.43-1.33-0.82-2.02C184.27,390.65,183.51,390.47,182.8,390.23z"/> + <path class="st106" d="M209.29,380.66c0.12-0.56,0.35-1.11,0.24-1.22c-0.6-0.64-1.3-1.18-1.97-1.77 + c-0.05,0.34-0.31,0.76-0.12,1.02C207.94,379.36,208.62,379.97,209.29,380.66z"/> + <path class="st106" d="M231.19,365.06c0.06-0.63,0.21-1.28,0.11-1.39c-0.57-0.6-1.21-1.07-1.83-1.59 + c-0.02,0.39-0.21,0.88-0.02,1.13C229.92,363.87,230.56,364.42,231.19,365.06z"/> + <path class="st106" d="M249.19,344.36c-0.06-0.77-0.09-1.24-0.13-1.71c-0.6-0.39-1.2-0.78-1.8-1.17 + c0.06,0.46,0.01,1.12,0.21,1.34C247.97,343.43,248.57,343.84,249.19,344.36z"/> + <path class="st106" d="M262.29,317.68c0.47,0.86,0.85,1.69,1.36,2.39c0.15,0.21,0.94,0.14,0.91,0.04 + c-0.26-0.75-0.62-1.56-1.05-2.3C263.42,317.67,262.85,317.73,262.29,317.68z"/> + <path class="st106" d="M278.76,295.28c-0.13-0.86-0.2-1.38-0.28-1.9c-0.62-0.41-1.24-0.83-1.85-1.24 + c0.1,0.51,0.11,1.24,0.32,1.49C277.49,294.27,278.12,294.71,278.76,295.28z"/> + <path class="st106" d="M292.81,269.82c-0.14-0.88-0.23-1.41-0.31-1.94c-0.65-0.46-1.3-0.91-1.95-1.36 + c0.11,0.52,0.13,1.26,0.35,1.52C291.47,268.73,292.13,269.21,292.81,269.82z"/> + <path class="st106" d="M307.49,243.57c-0.8-0.73-1.31-1.2-1.81-1.66c0.03,0.61-0.06,1.15,0.16,1.86 + c0.08,0.25,1.29,1.41,1.35,1.32C307.43,244.77,307.41,244.12,307.49,243.57z"/> + <path class="st106" d="M321.34,219.69c0.63,0.96,1.16,1.91,1.8,2.69c0.2,0.25,0.69,0.08,1.04,0.1 + c-0.5-0.87-0.94-1.77-1.53-2.57C322.49,219.69,321.92,219.77,321.34,219.69z"/> + <path class="st106" d="M340.12,200.12c0.52,0.92,0.94,1.81,1.51,2.62c0.17,0.24,1.17,0.44,1.13,0.33 + c-0.27-0.77-0.66-1.62-1.15-2.44C341.54,200.48,340.81,200.35,340.12,200.12z"/> + <path class="st106" d="M354.17,151.05c-0.39,0.36-0.74,0.62-0.99,1c-0.02,0.03,0.74,1.11,1.01,1.21 + c0.41,0.16,0.93,0.07,0.96-0.25C355.19,152.72,354.65,151.97,354.17,151.05z"/> + <path class="st106" d="M375.7,135.04c-0.39,0.35-0.75,0.62-1,0.99c-0.02,0.03,0.68,1.04,0.94,1.13 + c0.39,0.14,0.9,0.04,0.95-0.27C376.63,136.6,376.13,135.9,375.7,135.04z"/> + <path class="st106" d="M397.86,121c-0.06-0.42-0.12-0.84-0.18-1.26c-0.5-0.06-1-0.11-1.49-0.17c0.17,0.45,0.31,1.15,0.53,1.29 + C397.08,121.1,397.48,120.97,397.86,121z"/> + <path class="st106" d="M419.25,103.87c-0.34-0.29-0.68-0.57-1.02-0.86c-0.16,0.44-0.32,0.88-0.48,1.33 + c0.38,0.16,0.85,0.52,1.1,0.44C419.1,104.7,419.13,104.2,419.25,103.87z"/> + <path class="st106" d="M440.14,88.1c-0.01-0.36-0.01-0.71-0.02-1.07c-0.44,0.01-0.88,0.02-1.32,0.03 + c0.11,0.37,0.16,0.96,0.33,1.05C439.43,88.28,439.8,88.12,440.14,88.1z"/> + <path class="st106" d="M461.11,70.5c-0.26-0.19-0.52-0.38-0.78-0.57c-0.2,0.4-0.39,0.79-0.59,1.19 + c0.31,0.08,0.68,0.31,0.91,0.21C460.88,71.22,460.96,70.79,461.11,70.5z"/> + <path class="st106" d="M481.38,53.99c0.05-0.29,0.09-0.59,0.14-0.88c-0.38,0.08-0.76,0.17-1.14,0.25 + c0.04,0.29-0.01,0.76,0.13,0.81C480.74,54.26,481.08,54.07,481.38,53.99z"/> + <path class="st106" d="M501.69,35.39c-0.39,0.36-0.72,0.64-1.01,0.97c-0.03,0.03,0.2,0.45,0.35,0.43 + c0.24-0.04,0.64-0.27,0.76-0.49C501.91,36.09,501.75,35.81,501.69,35.39z"/> + <path class="st106" d="M521.73,18.87c0.09-0.24,0.18-0.48,0.27-0.71c-0.33,0.14-0.66,0.28-0.99,0.43 + c-0.02,0.22-0.14,0.6-0.04,0.61C521.15,19.21,521.47,18.99,521.73,18.87z"/> + <path class="st106" d="M541.8,1.21c0.11-0.22,0.22-0.43,0.33-0.65c-0.32,0.16-0.63,0.32-0.95,0.48 + c-0.04,0.19-0.19,0.54-0.1,0.54C541.24,1.58,541.55,1.35,541.8,1.21z"/> + <path class="st106" d="M562.4-16.76c-0.12-0.03-0.25-0.06-0.37-0.08c-0.27,0.31-0.54,0.61-0.81,0.92 + c0.19-0.05,0.38-0.04,0.58-0.18C562-16.24,562.2-16.53,562.4-16.76z"/> + <path class="st106" d="M583.96-31.58c0.14-0.18,0.28-0.35,0.42-0.53c-0.35,0.12-0.7,0.24-1.05,0.36 + c-0.07,0.16-0.27,0.44-0.17,0.44C583.32-31.3,583.68-31.48,583.96-31.58z"/> + <path class="st106" d="M-63.08,484.33c-0.23,0.01-0.46,0.02-0.68,0.03c-0.22,0.22-0.44,0.43-0.66,0.64 + c0.31-0.08,0.67-0.12,0.93-0.25C-63.29,484.66-63.2,484.46-63.08,484.33z"/> + <path class="st106" d="M-38.46,473.57c0.12-0.2,0.25-0.4,0.37-0.6c-0.39,0.06-0.78,0.12-1.17,0.18 + c-0.04,0.19-0.21,0.52-0.09,0.55C-39.16,473.75-38.77,473.62-38.46,473.57z"/> + <path class="st106" d="M-14.15,460.27c-0.45,0.27-0.84,0.48-1.18,0.74c-0.03,0.02,0.23,0.5,0.42,0.52 + c0.28,0.02,0.76-0.11,0.9-0.3C-13.88,461.05-14.07,460.72-14.15,460.27z"/> + <path class="st106" d="M9.63,447.78c-0.33-0.11-0.65-0.22-0.96-0.32c-0.04,0.43-0.08,0.86-0.13,1.29 + c0.36-0.03,0.81,0.05,1.04-0.12C9.75,448.5,9.62,448.04,9.63,447.78z"/> + <path class="st106" d="M33.11,435.76c0-0.35-0.01-0.71-0.02-1.06c-0.49-0.06-0.98-0.12-1.47-0.18c0.12,0.38,0.16,0.97,0.36,1.1 + C32.31,435.82,32.73,435.73,33.11,435.76z"/> + <path class="st106" d="M332.33,169.21c0.44,0.16,0.88,0.31,1.32,0.47c-0.26-0.71-0.52-1.42-0.77-2.12 + c-0.36,0.04-0.91-0.11-1.03,0.17C331.75,167.96,332.15,168.69,332.33,169.21z"/> + <path class="st106" d="M311.78,186.44c0.43,0.14,0.86,0.28,1.29,0.43c-0.3-0.75-0.58-1.5-0.87-2.24 + c-0.35,0.06-0.87-0.06-0.97,0.24C311.14,185.13,311.57,185.9,311.78,186.44z"/> + <path class="st106" d="M294.38,205.13c-0.28,0.49-0.55,0.86-0.7,1.37c-0.01,0.04,0.85,1.24,1.11,1.33 + c0.39,0.13,0.84-0.05,0.81-0.44C295.58,207.01,294.96,206.18,294.38,205.13z"/> + <path class="st106" d="M278.44,229.8c0.21,0.58,0.42,1.16,0.64,1.74c0.46-0.06,0.91-0.11,1.37-0.17 + c-0.37-0.64-0.76-1.57-1.09-1.81C279.02,229.29,278.74,229.69,278.44,229.8z"/> + <path class="st106" d="M265.51,257.61c0.38,0.08,0.75,0.15,1.13,0.23c-0.35-0.82-0.69-1.63-1.04-2.45 + c-0.28,0.14-0.74,0.11-0.78,0.49C264.79,256.19,265.26,257.01,265.51,257.61z"/> + <path class="st106" d="M253.13,282.83c-0.46-0.43-0.92-0.86-1.39-1.29c0.04,0.69,0.08,1.37,0.12,2.06 + c0.44,0.24,1.07,0.76,1.27,0.63C253.34,284.1,253.14,283.33,253.13,282.83z"/> + <path class="st106" d="M237.42,308.56c0.43,0.14,0.86,0.28,1.28,0.42c-0.38-0.86-0.76-1.72-1.14-2.58 + c-0.32,0.09-0.85-0.04-0.9,0.33C236.61,307.04,237.14,307.93,237.42,308.56z"/> + <path class="st106" d="M220.42,327.78c-0.32,0.44-0.63,0.77-0.8,1.24c-0.01,0.04,1,1.43,1.3,1.57 + c0.45,0.21,0.97,0.12,0.93-0.29C221.82,329.92,221.12,328.97,220.42,327.78z"/> + <path class="st106" d="M200.44,345.88c-0.5-0.27-1.01-0.53-1.52-0.8c0.33,0.83,0.66,1.65,0.99,2.48 + c0.47,0.09,1.18,0.45,1.32,0.18C201.34,347.52,200.74,346.53,200.44,345.88z"/> + <path class="st106" d="M177.21,360.74c-0.17-0.56-0.35-1.12-0.53-1.68c-0.67-0.27-1.34-0.54-2.01-0.81 + c0.34,0.65,0.69,1.61,1,1.87C176.2,360.56,176.7,360.56,177.21,360.74z"/> + <path class="st106" d="M152.8,372c-0.56-0.56-1.12-1.12-1.68-1.68c-0.08,0.54-0.16,1.07-0.25,1.6 + c0.57,0.41,1.33,1.12,1.65,1.13C152.85,373.06,152.73,372.38,152.8,372z"/> + <path class="st106" d="M126.88,384.54c0.51,0.25,1.02,0.5,1.53,0.75c-0.31-0.77-0.62-1.55-0.93-2.33 + c-0.42-0.04-1.06-0.31-1.19-0.05C126.18,383.13,126.66,383.97,126.88,384.54z"/> + <path class="st106" d="M102.27,395.34c0.15,0.51,0.3,1.01,0.45,1.52c0.6,0.14,1.21,0.28,1.81,0.43 + c-0.33-0.6-0.64-1.44-1.01-1.75C103.13,395.2,102.69,395.38,102.27,395.34z"/> + <path class="st106" d="M80.01,408.53c-0.44-0.19-0.87-0.38-1.3-0.56c0.18,0.65,0.36,1.29,0.54,1.94 + c0.42,0.05,1.04,0.3,1.21,0.08C80.6,409.81,80.19,409.04,80.01,408.53z"/> + <path class="st106" d="M56.82,422.04c-0.39-0.36-0.78-0.72-1.17-1.07c-0.17,0.43-0.34,0.86-0.5,1.28 + c0.42,0.23,0.97,0.68,1.24,0.65C56.67,422.86,56.69,422.35,56.82,422.04z"/> + <path class="st106" d="M628.77-36.38c-0.2-0.08-0.39-0.15-0.59-0.22c-0.08,0.08-0.27,0.22-0.23,0.25 + c0.13,0.1,0.34,0.15,0.53,0.23C628.57-36.21,628.67-36.29,628.77-36.38z"/> + <path class="st106" d="M602.56-25.79c-0.16-0.03-0.34-0.07-0.51-0.11c-0.07,0.09-0.23,0.24-0.19,0.27 + c0.11,0.07,0.31,0.09,0.47,0.13C602.41-25.6,602.48-25.69,602.56-25.79z"/> + <path class="st106" d="M579.23-11.48c-0.07,0.11-0.22,0.3-0.19,0.32c0.1,0.07,0.26,0.08,0.4,0.11 + c0.08-0.11,0.25-0.31,0.23-0.33C579.55-11.44,579.38-11.45,579.23-11.48z"/> + <path class="st106" d="M558.88,5.95c0.01-0.16,0.05-0.35,0.02-0.47c-0.01-0.04-0.21,0.07-0.32,0.11 + c-0.02,0.17-0.06,0.36-0.03,0.51C558.55,6.13,558.76,6.01,558.88,5.95z"/> + <path class="st106" d="M539.69,24.11c-0.15-0.01-0.29-0.02-0.44-0.04c-0.05,0.12-0.17,0.33-0.14,0.35 + c0.1,0.06,0.26,0.05,0.39,0.06C539.57,24.37,539.63,24.24,539.69,24.11z"/> + <path class="st106" d="M521.3,44.36c0-0.17,0.03-0.37,0-0.51c-0.01-0.04-0.19,0.09-0.29,0.14c-0.01,0.19-0.04,0.39-0.01,0.55 + C521,44.57,521.19,44.42,521.3,44.36z"/> + <path class="st106" d="M504.2,65.05c-0.14,0-0.28-0.01-0.42-0.01c-0.04,0.13-0.15,0.36-0.12,0.38c0.1,0.06,0.25,0.03,0.37,0.04 + C504.09,65.32,504.14,65.18,504.2,65.05z"/> + <path class="st106" d="M487.76,87.12c-0.12,0.01-0.26,0.02-0.4,0.03c-0.03,0.13-0.13,0.37-0.09,0.38 + c0.1,0.05,0.25,0.01,0.38,0.01C487.67,87.4,487.71,87.27,487.76,87.12z"/> + <path class="st106" d="M472.08,110.1c-0.1,0.04-0.22,0.08-0.34,0.11c-0.04,0.13-0.14,0.36-0.11,0.36 + c0.08,0.02,0.2-0.04,0.3-0.08C471.98,110.37,472.03,110.24,472.08,110.1z"/> + <path class="st106" d="M456.92,133.72c-0.13,0.01-0.27,0.01-0.42,0c-0.02,0.15-0.1,0.4-0.06,0.42 + c0.11,0.06,0.26,0.03,0.39,0.02C456.86,134.02,456.89,133.88,456.92,133.72z"/> + <path class="st106" d="M441.78,157.91c-0.05-0.24-0.08-0.5-0.17-0.7c-0.03-0.06-0.21,0.06-0.32,0.1 + c0.06,0.27,0.09,0.55,0.17,0.77C441.49,158.13,441.68,157.98,441.78,157.91z"/> + <path class="st106" d="M426.62,181.53c-0.09-0.28-0.15-0.6-0.28-0.84c-0.04-0.08-0.24,0.02-0.37,0.04 + c0.1,0.32,0.18,0.65,0.3,0.92C426.29,181.71,426.49,181.58,426.62,181.53z"/> + <path class="st106" d="M411.18,204.83c-0.13-0.33-0.23-0.69-0.41-0.99c-0.06-0.1-0.28-0.02-0.42-0.02 + c0.14,0.37,0.26,0.75,0.43,1.08C410.82,204.96,411.04,204.85,411.18,204.83z"/> + <path class="st106" d="M395.37,227.68c-0.17-0.38-0.31-0.79-0.53-1.14c-0.07-0.11-0.31-0.06-0.48-0.09 + c0.19,0.42,0.35,0.85,0.56,1.23C394.97,227.77,395.22,227.69,395.37,227.68z"/> + <path class="st106" d="M-41.05,496.55c0.03-0.14,0.11-0.28,0.08-0.41c-0.01-0.04-0.3-0.05-0.46-0.07 + c-0.04,0.15-0.12,0.29-0.1,0.43C-41.53,496.54-41.22,496.54-41.05,496.55z"/> + <path class="st106" d="M-11.2,490.47c-0.16-0.03-0.33-0.07-0.49-0.1c-0.03,0.17-0.1,0.35-0.08,0.51 + c0.01,0.04,0.32,0.05,0.49,0.08C-11.25,490.81-11.22,490.64-11.2,490.47z"/> + <path class="st106" d="M18.29,485.06c-0.01-0.19,0.01-0.38-0.07-0.56c-0.03-0.06-0.33-0.08-0.51-0.12 + c0.01,0.2-0.01,0.4,0.05,0.59C17.78,485.02,18.11,485.04,18.29,485.06z"/> + <path class="st106" d="M47.56,478.82c-0.04-0.21-0.03-0.43-0.14-0.64c-0.03-0.07-0.34-0.09-0.53-0.14 + c0.03,0.23,0.03,0.46,0.12,0.67C47.04,478.77,47.37,478.79,47.56,478.82z"/> + <path class="st106" d="M76.64,471.79c-0.26-0.16-0.57-0.33-0.87-0.51c-0.04,0.12-0.17,0.29-0.1,0.36 + c0.23,0.2,0.54,0.35,0.82,0.52C76.54,472.04,76.58,471.92,76.64,471.79z"/> + <path class="st106" d="M105.14,464.56c-0.28-0.17-0.6-0.36-0.91-0.56c-0.03,0.14-0.15,0.32-0.07,0.4 + c0.24,0.21,0.57,0.38,0.87,0.57C105.06,464.83,105.1,464.7,105.14,464.56z"/> + <path class="st106" d="M132.8,456.25c-0.19-0.07-0.39-0.13-0.59-0.2c0.08,0.29,0.12,0.59,0.26,0.88 + c0.03,0.07,0.37,0.11,0.57,0.16C132.96,456.82,132.88,456.54,132.8,456.25z"/> + <path class="st106" d="M160.53,447.94c-0.33-0.22-0.66-0.44-1-0.66c-0.02,0.15-0.13,0.36-0.04,0.44 + c0.27,0.24,0.61,0.44,0.92,0.65C160.45,448.22,160.49,448.08,160.53,447.94z"/> + <path class="st106" d="M187.07,438.13c-0.33-0.22-0.67-0.44-1.01-0.67c-0.01,0.16-0.11,0.38-0.02,0.47 + c0.27,0.25,0.61,0.44,0.93,0.65C187,438.43,187.03,438.28,187.07,438.13z"/> + <path class="st106" d="M212.17,426.56c-0.19-0.06-0.39-0.12-0.58-0.18c0.11,0.33,0.19,0.66,0.36,0.98 + c0.04,0.08,0.37,0.1,0.56,0.14C212.4,427.19,212.29,426.88,212.17,426.56z"/> + <path class="st106" d="M236.84,414.32c-0.28-0.17-0.61-0.36-0.94-0.56c0,0.17-0.07,0.42,0.03,0.5 + c0.27,0.23,0.59,0.39,0.89,0.58C236.83,414.67,236.83,414.51,236.84,414.32z"/> + <path class="st106" d="M258.58,399.05c-0.14-0.32-0.25-0.67-0.44-0.97c-0.06-0.1-0.33-0.06-0.5-0.09 + c0.15,0.35,0.26,0.72,0.45,1.04C258.13,399.1,258.41,399.04,258.58,399.05z"/> + <path class="st106" d="M277.2,378.88c-0.17-0.03-0.34-0.06-0.51-0.1c0.16,0.39,0.29,0.79,0.49,1.15 + c0.05,0.09,0.32,0.04,0.49,0.05C277.51,379.63,277.36,379.26,277.2,378.88z"/> + <path class="st106" d="M295.17,358.39c-0.33-0.22-0.67-0.45-1.01-0.68c0.04,0.23,0.04,0.57,0.13,0.66 + c0.29,0.28,0.62,0.46,0.94,0.68C295.22,358.84,295.2,358.62,295.17,358.39z"/> + <path class="st106" d="M311.38,335.82c-0.18-0.05-0.37-0.1-0.55-0.15c0.22,0.47,0.41,0.95,0.66,1.38 + c0.06,0.1,0.34,0.07,0.52,0.1C311.8,336.71,311.6,336.28,311.38,335.82z"/> + <path class="st106" d="M327.81,313.52c-0.19-0.06-0.38-0.13-0.58-0.19c0.24,0.5,0.45,1.01,0.73,1.47 + c0.07,0.11,0.36,0.09,0.54,0.13C328.27,314.47,328.04,314.01,327.81,313.52z"/> + <path class="st106" d="M344.87,292.06c-0.34-0.25-0.73-0.54-1.13-0.83c0.08,0.27,0.12,0.66,0.24,0.78 + c0.35,0.35,0.73,0.59,1.09,0.86C345.01,292.6,344.94,292.34,344.87,292.06z"/> + <path class="st106" d="M361.83,270.51c-0.38-0.29-0.77-0.59-1.16-0.89c0.06,0.26,0.08,0.64,0.2,0.75 + c0.34,0.35,0.72,0.6,1.08,0.88C361.91,271.01,361.87,270.76,361.83,270.51z"/> + <path class="st106" d="M378.51,248.71c-0.18-0.05-0.37-0.11-0.55-0.16c0.21,0.47,0.4,0.95,0.65,1.39 + c0.06,0.1,0.34,0.07,0.51,0.1C378.92,249.6,378.72,249.17,378.51,248.71z"/> + <path class="st106" d="M389.66,197.13c-0.32,0.03-0.67-0.01-0.92,0.12c-0.08,0.04,0.09,0.5,0.15,0.77 + c0.34-0.02,0.72,0.01,1.01-0.09C389.96,197.91,389.75,197.42,389.66,197.13z"/> + <path class="st106" d="M406.78,177.65c0.32-0.04,0.66-0.05,0.94-0.17c0.06-0.03-0.06-0.54-0.2-0.71 + c-0.14-0.17-0.54-0.35-0.57-0.28C406.84,176.83,406.83,177.26,406.78,177.65z"/> + <path class="st106" d="M425.06,155.92c-0.26,0.1-0.55,0.16-0.77,0.33c-0.06,0.05,0.08,0.43,0.13,0.66 + c0.28-0.1,0.58-0.17,0.83-0.33C425.29,156.56,425.13,156.16,425.06,155.92z"/> + <path class="st106" d="M442.31,134.81c-0.24,0.12-0.51,0.21-0.72,0.39c-0.06,0.05,0.04,0.39,0.07,0.59 + c0.26-0.12,0.54-0.22,0.77-0.4C442.48,135.37,442.36,135.02,442.31,134.81z"/> + <path class="st106" d="M459.35,113.44c-0.23,0.14-0.47,0.26-0.67,0.46c-0.05,0.05,0.02,0.34,0.03,0.52 + c0.24-0.15,0.49-0.28,0.71-0.47C459.46,113.92,459.38,113.62,459.35,113.44z"/> + <path class="st106" d="M475.58,92.97c0.23-0.15,0.47-0.27,0.69-0.46c0.05-0.04,0.08-0.37,0.02-0.45c-0.06-0.08-0.3-0.06-0.33,0 + C475.8,92.34,475.7,92.66,475.58,92.97z"/> + <path class="st106" d="M493.23,71.12c0.03-0.15,0.06-0.29,0.09-0.43c-0.2,0.15-0.41,0.28-0.61,0.46 + c-0.07,0.06-0.09,0.29-0.14,0.44C492.79,71.43,493.01,71.27,493.23,71.12z"/> + <path class="st106" d="M510.63,49.61c-0.2,0.18-0.4,0.33-0.6,0.54c-0.06,0.06-0.08,0.24-0.12,0.37 + c0.21-0.18,0.43-0.36,0.63-0.56C510.59,49.92,510.61,49.73,510.63,49.61z"/> + <path class="st106" d="M528.44,29.27c-0.2,0.17-0.4,0.32-0.6,0.51c-0.07,0.06-0.13,0.24-0.19,0.36 + c0.21-0.17,0.42-0.33,0.64-0.53C528.34,29.56,528.39,29.38,528.44,29.27z"/> + <path class="st106" d="M547.09,9.85c-0.21,0.16-0.42,0.31-0.62,0.5c-0.06,0.05-0.11,0.21-0.16,0.31 + c0.22-0.17,0.44-0.33,0.66-0.53C547.01,10.1,547.05,9.95,547.09,9.85z"/> + <path class="st106" d="M566.87-8.16c-0.23,0.14-0.45,0.27-0.67,0.44c-0.06,0.05-0.11,0.2-0.17,0.31 + c0.24-0.15,0.48-0.29,0.72-0.46C566.78-7.9,566.82-8.06,566.87-8.16z"/> + <path class="st106" d="M588.43-23.45c0.08-0.09,0.15-0.19,0.23-0.28c-0.24,0.1-0.49,0.19-0.74,0.31 + c-0.08,0.04-0.18,0.18-0.27,0.28C587.91-23.24,588.17-23.34,588.43-23.45z"/> + <path class="st106" d="M612.16-35.68c0.29-0.08,0.57-0.16,0.87-0.26c0.06-0.02,0.24-0.17,0.23-0.21 + c-0.02-0.03-0.26,0-0.32,0.03C612.66-35.98,612.42-35.83,612.16-35.68z"/> + <path class="st106" d="M-58.33,493.67c-0.31,0.03-0.61,0.05-0.92,0.11c-0.1,0.02-0.21,0.13-0.32,0.2 + c0.33-0.03,0.65-0.05,0.98-0.1C-58.52,493.85-58.42,493.74-58.33,493.67z"/> + <path class="st106" d="M-29.83,486.52c-0.32,0.03-0.64,0.05-0.94,0.1c-0.09,0.02-0.14,0.16-0.21,0.25 + c0.34-0.03,0.67-0.05,1.01-0.1C-29.93,486.76-29.88,486.61-29.83,486.52z"/> + <path class="st106" d="M-1.59,479.14c-0.33,0.01-0.67,0-0.99,0.05c-0.09,0.01-0.09,0.21-0.13,0.33c0.35-0.01,0.71,0,1.05-0.05 + C-1.6,479.47-1.61,479.26-1.59,479.14z"/> + <path class="st106" d="M26.49,471.61c-0.34,0-0.69-0.03-1.01,0.02c-0.09,0.01-0.07,0.24-0.11,0.38c0.36,0,0.73,0.03,1.08-0.01 + C26.52,471.99,26.49,471.74,26.49,471.61z"/> + <path class="st106" d="M54.32,463.74c-0.35,0-0.71-0.04-1.03,0.01c-0.09,0.01-0.04,0.28-0.05,0.42c0.37,0.01,0.75,0.04,1.09,0 + C54.4,464.17,54.33,463.89,54.32,463.74z"/> + <path class="st106" d="M81.87,455.51c-0.35-0.01-0.72-0.05-1.04,0c-0.09,0.01-0.01,0.31-0.01,0.47 + c0.37,0.01,0.76,0.05,1.11,0.02C81.99,455.99,81.9,455.68,81.87,455.51z"/> + <path class="st106" d="M109.1,446.84c-0.36-0.01-0.74-0.06-1.05-0.01c-0.09,0.01,0.01,0.33,0.03,0.51 + c0.38,0.02,0.77,0.06,1.12,0.03C109.26,447.36,109.14,447.03,109.1,446.84z"/> + <path class="st106" d="M135.94,437.68c-0.37-0.04-0.77-0.12-1.1-0.08c-0.11,0.01-0.04,0.33-0.05,0.51 + c0.4,0.05,0.82,0.13,1.19,0.12C136.06,438.22,135.96,437.87,135.94,437.68z"/> + <path class="st106" d="M162.26,427.71c-0.36-0.02-0.75-0.08-1.06-0.02c-0.09,0.02,0.04,0.37,0.07,0.57 + c0.39,0.02,0.79,0.08,1.15,0.04C162.47,428.3,162.31,427.92,162.26,427.71z"/> + <path class="st106" d="M187.95,416.99c-0.37-0.03-0.77-0.11-1.09-0.06c-0.11,0.02-0.01,0.37,0,0.56 + c0.4,0.04,0.82,0.12,1.18,0.1C188.12,417.58,187.99,417.2,187.95,416.99z"/> + <path class="st106" d="M212.82,405.08c-0.35,0.01-0.72-0.03-1.02,0.05c-0.08,0.02,0.08,0.4,0.12,0.62 + c0.37,0,0.76,0.03,1.09-0.03C213.07,405.7,212.89,405.3,212.82,405.08z"/> + <path class="st106" d="M236.28,391.45c-0.33,0.02-0.69-0.01-0.96,0.1c-0.09,0.04,0.03,0.41,0.05,0.63 + c0.36-0.01,0.73,0.02,1.05-0.07C236.49,392.09,236.34,391.68,236.28,391.45z"/> + <path class="st106" d="M255.02,373.74c0.33-0.05,0.67-0.05,0.96-0.18c0.06-0.03-0.06-0.53-0.2-0.69 + c-0.14-0.17-0.55-0.33-0.57-0.26C255.1,372.93,255.08,373.35,255.02,373.74z"/> + <path class="st106" d="M272.85,351.16c-0.29,0.07-0.61,0.08-0.84,0.25c-0.08,0.06,0.09,0.49,0.15,0.75 + c0.31-0.06,0.66-0.08,0.92-0.22C273.14,351.91,272.93,351.44,272.85,351.16z"/> + <path class="st106" d="M288.51,327.75c-0.29,0.07-0.62,0.07-0.85,0.24c-0.08,0.06,0.12,0.53,0.19,0.81 + c0.32-0.06,0.66-0.07,0.93-0.21C288.84,328.56,288.61,328.05,288.51,327.75z"/> + <path class="st106" d="M303.64,303.67c-0.28,0.09-0.6,0.12-0.81,0.31c-0.06,0.05,0.21,0.57,0.33,0.88 + c0.3-0.09,0.63-0.13,0.87-0.3C304.08,304.53,303.78,303.99,303.64,303.67z"/> + <path class="st106" d="M319.11,280.15c-0.32,0.03-0.68-0.01-0.92,0.14c-0.08,0.05,0.16,0.58,0.25,0.88 + c0.35-0.02,0.73,0.02,1.01-0.1C319.52,281.04,319.24,280.47,319.11,280.15z"/> + <path class="st106" d="M335.37,257.55c-0.31,0.04-0.67,0.02-0.91,0.17c-0.07,0.04,0.22,0.6,0.35,0.92 + c0.34-0.03,0.71-0.02,0.99-0.14C335.85,258.48,335.52,257.89,335.37,257.55z"/> + <path class="st106" d="M352.19,236.29c0.01,0.46,0.02,0.92,0.02,1.38c0.24,0.11,0.66,0.41,0.69,0.3 + c0.1-0.32,0.04-0.8,0.05-1.22C352.7,236.6,352.44,236.44,352.19,236.29z"/> + <path class="st106" d="M371.43,217.05c-0.32,0.03-0.68,0.01-0.93,0.14c-0.07,0.04,0.18,0.56,0.29,0.86 + c0.35-0.03,0.72-0.01,1.01-0.12C371.85,217.91,371.56,217.36,371.43,217.05z"/> + </g> + </g> + </g> + <g class="st105"> + <g> + <g> + <path class="st107" d="M24.22,818.12c-1.87,4.03-1.08,9.53,1.74,12.14c2.69,2.48,6.26,1.42,8.14-2.44 + c2.01-4.11,1.41-9.59-1.35-12.29C30.08,812.92,26.07,814.13,24.22,818.12z"/> + <path class="st107" d="M5.29,799.05c-1.77,3.9-0.95,9.47,1.81,12.33c2.63,2.73,6.05,1.95,7.85-1.81 + c1.9-3.97,1.27-9.58-1.42-12.47C10.9,794.28,7.04,795.2,5.29,799.05z"/> + <path class="st107" d="M-13.07,778.23c-1.7,3.69-0.89,9.28,1.79,12.39c2.55,2.96,5.87,2.53,7.6-1.03 + c1.84-3.77,1.21-9.39-1.41-12.51C-7.65,774.03-11.39,774.58-13.07,778.23z"/> + <path class="st107" d="M-31.18,756.45c-1.52,3.58-0.55,9.09,2.13,12.24c2.71,3.18,5.99,2.63,7.52-1.29 + c1.39-3.56,0.49-8.98-1.97-11.86C-26.11,752.5-29.69,752.94-31.18,756.45z"/> + <path class="st107" d="M49.06,809.19c-2.78-2.36-6.46-1-8.43,3.11c-2.09,4.37-1.39,9.9,1.54,12.22 + c2.73,2.16,6.65,0.52,8.48-3.55C52.49,816.88,51.76,811.48,49.06,809.19z"/> + <path class="st107" d="M29.07,792.09c-2.78-2.38-6.29-1.06-8.06,3.04c-1.75,4.06-1.03,9.37,1.62,11.94 + c2.77,2.68,6.79,1.18,8.47-3.15C32.72,799.72,31.81,794.44,29.07,792.09z"/> + <path class="st107" d="M2.27,775.48c-1.79,3.81-1.22,9.07,1.3,12.07c2.58,3.08,6.53,2.21,8.28-1.83 + c1.67-3.86,0.9-9.35-1.7-12.06C7.48,770.88,4.05,771.68,2.27,775.48z"/> + <path class="st107" d="M-16.38,755.2c-1.55,3.68-0.74,8.99,1.82,11.89c2.52,2.86,6.07,2.27,7.7-1.29 + c1.73-3.78,0.8-9.61-1.99-12.43C-11.54,750.65-14.8,751.44-16.38,755.2z"/> + <path class="st107" d="M-12.2,730.47c-2.63-2.78-6.09-2.17-7.64,1.33c-1.55,3.51-0.69,8.72,1.92,11.67 + c2.64,2.97,5.96,2.41,7.58-1.3C-8.72,738.48-9.55,733.27-12.2,730.47z"/> + <path class="st107" d="M0.78,764.12c2.7,2.73,6.13,1.72,7.77-2.3c1.62-3.97,0.73-9.22-2-11.8c-2.7-2.55-6.28-1.5-7.81,2.29 + C-2.83,756.18-1.93,761.38,0.78,764.12z"/> + <path class="st107" d="M19.56,783.37c2.74,2.63,6.27,1.43,8.06-2.72c1.77-4.11,0.98-9.41-1.76-11.89 + c-2.72-2.47-6.4-1.24-8.1,2.71C16.04,775.44,16.84,780.76,19.56,783.37z"/> + <path class="st107" d="M38.72,800.95c2.76,2.55,6.41,1.27,8.39-2.93c1.96-4.18,1.34-9.48-1.39-11.9 + c-2.74-2.43-6.47-1.15-8.43,2.9C35.37,792.98,36.03,798.46,38.72,800.95z"/> + <path class="st107" d="M59.02,816.97c2.93,1.99,6.7,0,8.55-4.47c1.83-4.43,0.94-9.48-1.99-11.37c-2.9-1.87-6.83,0.15-8.59,4.44 + C55.2,809.94,56.09,814.99,59.02,816.97z"/> + <path class="st107" d="M106.12,814.27c1.97-4.59,1.1-9.55-1.9-10.95c-3.01-1.41-6.99,1.25-8.87,5.93 + c-1.75,4.35-0.94,9.09,1.81,10.57C100.08,821.39,104.16,818.86,106.12,814.27z"/> + <path class="st107" d="M74.36,796.72c-1.94,4.47-1.14,9.79,1.74,11.45c2.77,1.6,6.52-0.52,8.47-4.76 + c2.09-4.54,1.46-9.68-1.4-11.54C80.34,790.02,76.32,792.22,74.36,796.72z"/> + <path class="st107" d="M64.01,789.59c1.9-4.49,1.07-9.75-1.81-11.62c-2.9-1.88-6.67,0.2-8.45,4.71 + c-1.65,4.17-0.88,9.22,1.72,11.23C58.24,796.06,62.1,794.09,64.01,789.59z"/> + <path class="st107" d="M33.95,766.09c-1.73,4.19-0.83,9.77,1.91,11.8c2.69,1.99,6.16,0.4,7.94-3.62 + c1.89-4.28,1.16-9.65-1.6-11.88C39.43,760.16,35.71,761.82,33.95,766.09z"/> + <path class="st107" d="M14.55,748.09c-1.68,3.96-0.81,9.54,1.86,11.84c2.61,2.25,5.98,1.02,7.72-2.8 + c1.84-4.06,1.14-9.43-1.55-11.9C19.89,742.76,16.26,744.05,14.55,748.09z"/> + <path class="st107" d="M-4.39,728.67c-1.75,3.66-1.07,8.98,1.5,11.78c2.43,2.64,5.8,1.99,7.56-1.48 + c1.91-3.74,1.4-8.97-1.17-11.84C1,724.32-2.65,725.04-4.39,728.67z"/> + <path class="st107" d="M-23.38,709.08c-1.58,3.43-0.72,8.68,1.85,11.42c2.46,2.62,5.7,2.1,7.31-1.18 + c1.74-3.54,1.07-8.64-1.52-11.48C-18.29,705.06-21.8,705.64-23.38,709.08z"/> + <path class="st107" d="M-25.45,697.78c2.62,2.77,6.14,2.14,7.6-1.36c1.41-3.38,0.51-8-2.05-10.53 + c-2.74-2.72-6.11-2.11-7.57,1.36C-28.82,690.47-27.92,695.17-25.45,697.78z"/> + <path class="st107" d="M159.36,825.97c3.11,1.07,7.27-1.55,8.95-5.63c1.62-3.92,0.58-7.87-2.35-9.02 + c-3.15-1.23-7.1,1.22-8.89,5.54C155.41,820.87,156.43,824.96,159.36,825.97z"/> + <path class="st107" d="M136.94,817.98c3.04,1.29,7.21-1.33,9.01-5.63c1.72-4.13,0.81-8.4-2.06-9.72 + c-3.09-1.43-7.05,1.01-8.94,5.53C133.19,812.35,134.08,816.77,136.94,817.98z"/> + <path class="st107" d="M122.14,792.64c-3.04-1.6-6.99,0.83-8.91,5.5c-1.78,4.34-0.97,9.01,1.84,10.41 + c2.98,1.49,7.14-1.14,8.98-5.61C125.81,798.64,124.96,794.13,122.14,792.64z"/> + <path class="st107" d="M93.54,797.58c2.92,1.71,7.08-0.78,9-5.35c1.85-4.38,1.11-9.1-1.68-10.69 + c-3.02-1.71-6.96,0.57-8.94,5.23C90.08,791.09,90.8,795.98,93.54,797.58z"/> + <path class="st107" d="M79.44,769.23c-2.81-1.73-6.42,0.14-8.35,4.36c-2,4.37-1.24,9.71,1.68,11.56 + c2.73,1.74,6.5-0.28,8.41-4.47C83.2,776.25,82.4,771.05,79.44,769.23z"/> + <path class="st107" d="M52.22,770.33c2.77,2.24,6.71,0.35,8.5-4.01c1.72-4.2,0.96-9.08-1.71-11.15 + c-2.87-2.22-6.62-0.5-8.44,3.91C48.87,763.17,49.61,768.22,52.22,770.33z"/> + <path class="st107" d="M32.42,753.91c2.73,2.39,6.58,0.75,8.23-3.47c1.61-4.09,0.79-8.94-1.86-11.15 + c-2.82-2.35-6.5-0.84-8.18,3.39C29.03,746.64,29.83,751.64,32.42,753.91z"/> + <path class="st107" d="M12.76,735.91c2.64,2.68,6.35,1.59,8.05-2.37c1.64-3.81,0.92-8.7-1.64-11.15 + c-2.76-2.63-6.3-1.61-8.01,2.32C9.56,728.35,10.28,733.39,12.76,735.91z"/> + <path class="st107" d="M-6.3,717.27c2.65,2.66,6.28,1.65,7.77-2.14c1.45-3.68,0.56-8.41-2.03-10.85 + c-2.76-2.6-6.23-1.65-7.74,2.11C-9.7,709.91-8.81,714.75-6.3,717.27z"/> + <path class="st107" d="M199.69,821.86c3.03,1.05,6.7-0.92,8.38-4.48c1.67-3.55,0.7-7.29-2.19-8.49 + c-2.79-1.16-6.73,0.92-8.44,4.48C195.71,816.98,196.73,820.84,199.69,821.86z"/> + <path class="st107" d="M177.29,814.69c3.06,1.03,6.7-1.19,8.4-5.09c1.67-3.84,0.65-7.89-2.25-9.01 + c-2.85-1.1-6.8,1.26-8.48,5.11C173.26,809.6,174.31,813.69,177.29,814.69z"/> + <path class="st107" d="M-29.39,676.14c2.67,2.46,5.77,1.75,7.19-1.63c1.39-3.31,0.36-7.89-2.27-10.11 + c-2.61-2.19-5.98-1.42-7.28,1.66C-33.06,669.19-32,673.74-29.39,676.14z"/> + <path class="st107" d="M-9.95,694.73c2.68,2.4,5.86,1.44,7.37-2.22c1.47-3.57,0.49-8.35-2.14-10.51 + c-2.63-2.15-6.07-1.13-7.45,2.23C-13.58,687.63-12.57,692.39-9.95,694.73z"/> + <path class="st107" d="M9.54,712.95c2.7,2.32,5.97,1.1,7.57-2.8c1.56-3.81,0.64-8.72-2.01-10.81c-2.65-2.08-6.17-0.8-7.65,2.8 + C5.96,705.78,6.9,710.68,9.54,712.95z"/> + <path class="st107" d="M29.33,730.56c2.75,2.09,6.12,0.47,7.74-3.7c1.57-4.03,0.59-9.06-2.11-10.9 + c-2.74-1.87-6.31-0.21-7.8,3.66C25.64,723.56,26.62,728.51,29.33,730.56z"/> + <path class="st107" d="M48.9,746.69c2.69,2.24,6.23,0.73,8.1-3.42c1.86-4.14,1.22-9.13-1.41-11.26 + c-2.56-2.07-6.37-0.48-8.17,3.43C45.61,739.39,46.27,744.5,48.9,746.69z"/> + <path class="st107" d="M69.56,761.94c2.86,1.77,6.41-0.33,8.21-4.81c1.75-4.35,0.87-9.32-1.91-10.9 + c-2.79-1.59-6.59,0.57-8.28,4.77C65.88,755.24,66.76,760.21,69.56,761.94z"/> + <path class="st107" d="M90.1,774.93c2.82,1.79,6.56-0.32,8.55-4.76c1.98-4.42,1.36-9.28-1.39-11.01 + c-2.66-1.67-6.68,0.52-8.61,4.74C86.7,768.16,87.35,773.19,90.1,774.93z"/> + <path class="st107" d="M111.57,786.44c2.88,1.58,6.58-0.68,8.52-5.16c1.9-4.41,1.19-9.27-1.56-10.85 + c-2.7-1.55-6.7,0.84-8.58,5.16C108.03,779.97,108.76,784.91,111.57,786.44z"/> + <path class="st107" d="M133.2,797.19c2.99,1.27,6.65-1.14,8.48-5.55c1.78-4.31,0.88-8.9-1.98-10.17 + c-2.83-1.26-6.8,1.31-8.56,5.55C129.36,791.34,130.28,795.96,133.2,797.19z"/> + <path class="st107" d="M154.98,806.49c3.01,1.2,6.69-1.09,8.5-5.24c1.77-4.08,0.87-8.43-1.98-9.7 + c-2.8-1.24-6.79,1.18-8.56,5.25C151.13,800.91,152.05,805.32,154.98,806.49z"/> + <path class="st107" d="M259.35,819.85c-1.41,2.86-0.16,5.98,2.8,6.93c2.89,0.93,6.57-0.61,7.73-3.22 + c1.13-2.52-0.12-5.43-2.79-6.59C264.18,815.73,260.76,816.98,259.35,819.85z"/> + <path class="st107" d="M-9.13,660.83c-2.71-2.11-5.93-1.06-7.29,2.39c-1.25,3.16-0.3,7.44,2.14,9.64 + c2.53,2.28,6.08,1.34,7.47-1.97C-5.38,667.5-6.44,662.93-9.13,660.83z"/> + <path class="st107" d="M3.59,680.21c-1.47,3.59-0.45,8.37,2.23,10.38c2.51,1.89,5.83,0.69,7.29-2.6 + c1.58-3.57,0.66-8.37-2.01-10.48C8.4,675.37,5.1,676.55,3.59,680.21z"/> + <path class="st107" d="M23.68,696.82c-1.62,3.79-0.74,8.69,1.94,10.71c2.51,1.89,5.91,0.56,7.52-2.93 + c1.73-3.72,0.93-8.68-1.72-10.8C28.72,691.65,25.33,692.95,23.68,696.82z"/> + <path class="st107" d="M51.66,709.18c-2.76-1.91-6.22-0.2-7.88,3.94c-1.52,3.8-0.78,8.45,1.69,10.47 + c2.55,2.08,6.4,0.37,8.07-3.56C55.26,716.01,54.39,711.08,51.66,709.18z"/> + <path class="st107" d="M72.3,723.65c-2.8-1.75-6.35,0.23-8.08,4.56c-1.59,3.97-0.86,8.64,1.65,10.5 + c2.59,1.92,6.55-0.11,8.28-4.2C75.93,730.3,75.08,725.38,72.3,723.65z"/> + <path class="st107" d="M93.25,736.7c-2.87-1.48-6.51,0.83-8.26,5.32c-1.61,4.11-0.83,8.73,1.76,10.32 + c2.7,1.65,6.73-0.76,8.47-5C97.01,742.97,96.1,738.18,93.25,736.7z"/> + <path class="st107" d="M114.96,748.17c-2.89-1.43-6.63,0.93-8.54,5.48c-1.77,4.2-1.15,8.74,1.43,10.3 + c2.67,1.61,6.73-0.71,8.68-5C118.48,754.65,117.8,749.57,114.96,748.17z"/> + <path class="st107" d="M127.78,764.93c-1.91,4.41-1.16,9.26,1.66,10.63c2.63,1.28,6.34-0.94,8.19-4.85 + c1.96-4.16,1.29-9.1-1.44-10.73C133.41,758.31,129.71,760.47,127.78,764.93z"/> + <path class="st107" d="M157.37,771.02c-2.86-1.45-6.51,0.79-8.34,5.17c-1.69,4.04-1,8.35,1.6,9.79 + c2.69,1.49,6.72-0.81,8.55-4.84C161.02,777.08,160.18,772.45,157.37,771.02z"/> + <path class="st107" d="M170.77,786.03c-1.82,4.07-0.97,8.42,1.91,9.6c2.83,1.16,6.81-1.27,8.39-5.11 + c1.52-3.71,0.65-7.72-1.96-9.1C176.29,779.93,172.6,781.95,170.77,786.03z"/> + <path class="st107" d="M200.47,790.82c-2.94-1.11-6.5,1.11-8.07,5.06c-1.43,3.62-0.4,7.37,2.34,8.41 + c2.84,1.08,6.78-1.19,8.28-4.75C204.57,795.87,203.4,791.93,200.47,790.82z"/> + <path class="st107" d="M222.38,799.83c-2.96-1.03-6.45,1.03-7.89,4.67c-1.32,3.33-0.15,6.8,2.61,7.74 + c2.89,0.98,6.74-1.11,8.11-4.38C226.63,804.49,225.34,800.86,222.38,799.83z"/> + <path class="st107" d="M244.56,808.47c-2.97-1.06-6.38,0.69-7.75,4c-1.26,3.04-0.08,6.22,2.68,7.18 + c2.85,0.99,6.66-0.8,7.98-3.73C248.83,812.91,247.5,809.52,244.56,808.47z"/> + <path class="st107" d="M-18.55,651.92c2.56,2.02,5.66,1.24,7.05-1.77c1.47-3.2,0.39-7.47-2.39-9.5 + c-2.57-1.87-5.76-1.08-7.08,1.77C-22.39,645.44-21.28,649.77-18.55,651.92z"/> + <path class="st107" d="M1.5,668.43c2.55,2.08,5.71,1.21,7.24-1.99c1.63-3.39,0.71-7.87-2.04-9.96 + c-2.55-1.94-5.78-1.07-7.28,1.97C-2.14,661.64-1.19,666.24,1.5,668.43z"/> + <path class="st107" d="M21.81,684.91c2.57,1.95,5.82,0.73,7.37-2.73c1.65-3.67,0.7-8.25-2.1-10.22 + c-2.58-1.81-5.9-0.62-7.39,2.68C18.1,678.15,19.06,682.84,21.81,684.91z"/> + <path class="st107" d="M41.93,700.6c2.57,1.99,5.88,0.73,7.6-2.85c1.83-3.8,1.07-8.54-1.68-10.55 + c-2.71-1.98-6.38-0.43-7.88,3.36C38.53,694.21,39.39,698.63,41.93,700.6z"/> + <path class="st107" d="M62.53,715.63c2.61,1.8,6.01,0.22,7.76-3.57c1.86-4.02,1.06-8.76-1.74-10.59 + c-2.6-1.7-6.05-0.17-7.77,3.49C58.97,708.79,59.77,713.73,62.53,715.63z"/> + <path class="st107" d="M83.24,729.32c2.81,1.83,6.5-0.22,8.25-4.51c1.65-4.03,0.86-8.4-1.78-10.04 + c-2.77-1.73-6.6,0.28-8.27,4.4C79.85,723.1,80.63,727.62,83.24,729.32z"/> + <path class="st107" d="M104.53,741.57c2.71,1.47,6.25-0.57,8.14-4.61c2-4.28,1.26-8.95-1.61-10.45 + c-2.83-1.48-6.76,0.87-8.43,5.13C101.03,735.73,101.85,740.12,104.53,741.57z"/> + <path class="st107" d="M125.87,752.81c2.8,1.7,6.51-0.48,8.31-4.84c1.68-4.09,0.96-8.52-1.64-10.15 + c-2.73-1.71-6.58,0.47-8.33,4.76C122.55,746.66,123.27,751.23,125.87,752.81z"/> + <path class="st107" d="M147.13,764.47c2.69,1.41,6.17-0.53,7.97-4.42c1.91-4.12,1.15-8.73-1.67-10.3 + c-2.62-1.45-6.15,0.45-7.98,4.34C143.53,758.17,144.3,762.98,147.13,764.47z"/> + <path class="st107" d="M168.56,775.22c2.72,1.3,6.18-0.61,7.9-4.32c1.83-3.94,0.98-8.32-1.87-9.79 + c-2.65-1.36-6.15,0.5-7.92,4.25C164.83,769.29,165.69,773.86,168.56,775.22z"/> + <path class="st107" d="M195.98,771.94c-2.66-1.32-6.12,0.4-7.83,3.93c-1.79,3.7-0.87,8.02,2.01,9.32 + c2.74,1.23,6.15-0.53,7.82-4C199.75,777.52,198.84,773.37,195.98,771.94z"/> + <path class="st107" d="M212.18,794.64c2.79,1.05,6.14-0.71,7.61-3.96c1.56-3.44,0.42-7.26-2.52-8.5 + c-2.71-1.15-6.15,0.6-7.63,3.91C208.05,789.62,209.2,793.52,212.18,794.64z"/> + <path class="st107" d="M234.07,803.46c2.79,1.05,6.08-0.43,7.49-3.36c1.49-3.11,0.32-6.67-2.59-7.94 + c-2.71-1.18-6.04,0.29-7.51,3.32C229.92,798.66,231.11,802.34,234.07,803.46z"/> + <path class="st107" d="M256.14,811.99c2.8,1.04,6-0.2,7.3-2.81c1.39-2.77,0.13-6.05-2.79-7.31c-2.71-1.17-5.96,0.05-7.33,2.77 + C251.89,807.5,253.17,810.88,256.14,811.99z"/> + <path class="st107" d="M278.11,820.32c2.97,1.17,6.25,0.1,7.36-2.4c1.04-2.34-0.26-5.13-2.97-6.38 + c-2.84-1.31-6.28-0.21-7.4,2.38C274.03,816.4,275.36,819.23,278.11,820.32z"/> + <path class="st107" d="M-26.13,623.66c-1.09,2.93,0.26,6.98,2.87,8.6c2.72,1.69,5.71,0.57,6.88-2.57 + c1.14-3.06-0.19-7.03-2.85-8.55C-21.97,619.57-25.02,620.68-26.13,623.66z"/> + <path class="st107" d="M-5.18,638.37c-1.41,3.05-0.49,7.25,2.03,9.25c2.49,1.99,5.82,0.98,7.26-2.19 + c1.45-3.2,0.54-7.33-2.02-9.21C-0.47,634.35-3.77,635.32-5.18,638.37z"/> + <path class="st107" d="M15.41,653.8c-1.42,3.32-0.46,7.7,2.1,9.55c2.58,1.87,5.88,0.54,7.35-2.92c1.46-3.45,0.5-7.74-2.1-9.49 + C20.15,649.19,16.83,650.47,15.41,653.8z"/> + <path class="st107" d="M36.19,668.59c-1.59,3.47-0.83,7.98,1.69,9.95c2.49,1.95,5.98,0.53,7.58-3.04 + c1.63-3.61,0.86-8-1.69-9.86C41.23,663.8,37.78,665.12,36.19,668.59z"/> + <path class="st107" d="M56.87,683.34c-1.57,3.71-0.71,8.31,1.89,10c2.62,1.7,6.07-0.09,7.68-3.92c1.6-3.82,0.73-8.29-1.9-9.89 + C61.9,677.92,58.44,679.62,56.87,683.34z"/> + <path class="st107" d="M87.39,702.91c1.75-3.95,1.05-8.43-1.55-10.08c-2.58-1.64-6.18,0.12-7.89,3.94 + c-1.72,3.83-1.04,8.47,1.53,10.22C82.01,708.73,85.66,706.82,87.39,702.91z"/> + <path class="st107" d="M108.79,714.84c1.79-4.08,1.07-8.52-1.57-9.99c-2.63-1.47-6.29,0.55-8.05,4.51 + c-1.76,3.97-1.08,8.6,1.54,10.16C103.3,721.06,107.02,718.87,108.79,714.84z"/> + <path class="st107" d="M120.72,720.61c-1.75,4.09-0.98,8.63,1.73,9.87c2.71,1.23,6.27-0.84,8.02-4.95 + c1.75-4.12,1.14-9-1.58-10.17C126.16,714.17,122.48,716.5,120.72,720.61z"/> + <path class="st107" d="M141.76,732.68c-1.63,4.07-0.77,8.72,1.89,10c2.72,1.31,6.19-0.96,7.84-5.07 + c1.62-4.05,0.74-8.58-1.91-9.9C146.89,726.37,143.4,728.56,141.76,732.68z"/> + <path class="st107" d="M162.91,744.32c-1.74,3.9-1.07,8.41,1.51,9.94c2.55,1.51,6.18-0.51,7.89-4.34 + c1.72-3.88,1.03-8.25-1.54-9.82C168.23,738.53,164.65,740.43,162.91,744.32z"/> + <path class="st107" d="M184.05,755.8c-1.73,3.7-1.05,7.99,1.53,9.54c2.53,1.52,6.15-0.31,7.82-3.91c1.7-3.66,1-7.82-1.55-9.43 + C189.35,750.41,185.76,752.14,184.05,755.8z"/> + <path class="st107" d="M205.04,767.47c-1.45,3.53-0.39,7.56,2.31,8.69c2.76,1.15,6.1-0.74,7.53-4.23 + c1.42-3.44,0.35-7.39-2.31-8.63C209.87,762.05,206.5,763.9,205.04,767.47z"/> + <path class="st107" d="M226.43,778.06c-1.43,3.25-0.4,7.02,2.28,8.24c2.68,1.22,6.05-0.4,7.43-3.55 + c1.39-3.15,0.34-6.85-2.28-8.18C231.22,773.24,227.86,774.81,226.43,778.06z"/> + <path class="st107" d="M247.86,788.46c-1.37,2.93-0.3,6.44,2.36,7.7c2.64,1.25,5.98-0.09,7.29-2.9 + c1.32-2.83,0.25-6.25-2.36-7.63C252.53,784.26,249.24,785.53,247.86,788.46z"/> + <path class="st107" d="M278.98,803.51c1.17-2.51-0.03-5.67-2.66-7c-2.63-1.34-5.82-0.28-7.05,2.35 + c-1.23,2.62-0.02,5.84,2.66,7.05C274.6,807.11,277.81,806.01,278.98,803.51z"/> + <path class="st107" d="M290.63,809.33c-1.01,2.34,0.44,5.27,3.15,6.37c2.76,1.12,5.73,0.24,6.7-1.99 + c0.96-2.2-0.48-5.13-3.13-6.36C294.65,806.09,291.65,806.98,290.63,809.33z"/> + <path class="st107" d="M321.79,824.38c0.89-1.86-0.56-4.54-3.18-5.88c-2.64-1.35-5.59-0.81-6.54,1.19 + c-0.94,1.99,0.52,4.68,3.2,5.88C317.97,826.78,320.89,826.24,321.79,824.38z"/> + <path class="st107" d="M223.8,767.84c2.65,1.44,6.05-0.03,7.42-3.17c1.37-3.15,0.29-6.94-2.39-8.42 + c-2.53-1.4-5.54-0.15-7.02,2.96C220.25,762.46,221.14,766.39,223.8,767.84z"/> + <path class="st107" d="M249.9,768.61c-2.65-1.65-5.82-0.57-7.22,2.48c-1.29,2.82-0.43,6.31,1.96,7.79 + c2.56,1.59,5.9,0.56,7.38-2.22C253.48,773.93,252.48,770.21,249.9,768.61z"/> + <path class="st107" d="M270.41,780.58c-2.69-1.48-5.75-0.4-6.87,2.44c-1.05,2.67,0.06,5.74,2.57,7.07 + c2.65,1.41,5.89,0.41,7.05-2.15C274.33,785.38,273.08,782.05,270.41,780.58z"/> + <path class="st107" d="M287.44,801.18c2.68,1.34,5.8,0.52,6.75-1.77c0.97-2.32-0.43-5.34-3.14-6.78 + c-2.52-1.34-5.32-0.62-6.41,1.67C283.48,796.71,284.75,799.83,287.44,801.18z"/> + <path class="st107" d="M308.32,812.15c2.62,1.47,5.68,1.11,6.7-0.78c1.01-1.88-0.35-4.77-2.97-6.33 + c-2.51-1.49-5.18-1.2-6.33,0.72C304.52,807.76,305.7,810.67,308.32,812.15z"/> + <path class="st107" d="M329.56,823.61c2.65,1.45,5.56,1.29,6.35-0.35c0.8-1.66-0.72-4.28-3.37-5.84 + c-2.5-1.46-5.09-1.31-6.03,0.34C325.53,819.51,326.91,822.15,329.56,823.61z"/> + <path class="st107" d="M-28.9,613.06c2.64,1.83,5.89,1.03,7.1-1.75c1.21-2.78-0.05-6.44-2.79-8.1 + c-2.59-1.57-5.49-0.85-6.75,1.67C-32.65,607.52-31.55,611.22-28.9,613.06z"/> + <path class="st107" d="M-3.36,617.02c-2.75-1.69-5.89-0.59-7.04,2.48c-1.08,2.89-0.01,6.44,2.48,8.19 + c2.63,1.85,5.94,0.86,7.22-2.14C0.58,622.52-0.61,618.71-3.36,617.02z"/> + <path class="st107" d="M17.83,631.07c-2.73-1.72-5.94-0.49-7.2,2.77c-1.18,3.07-0.2,6.81,2.26,8.59 + c2.61,1.88,5.99,0.75,7.37-2.44C21.66,636.8,20.55,632.78,17.83,631.07z"/> + <path class="st107" d="M39.28,645.24c-2.67-1.91-5.97-0.82-7.5,2.53c-1.42,3.09-0.7,7.15,1.62,9.08 + c2.5,2.08,5.94,1.08,7.64-2.2C42.7,651.46,41.88,647.09,39.28,645.24z"/> + <path class="st107" d="M60.32,658.79c-2.71-1.78-6.06-0.42-7.6,3.15c-1.43,3.29-0.68,7.44,1.69,9.26 + c2.54,1.95,6.05,0.64,7.75-2.84C63.82,664.92,62.97,660.53,60.32,658.79z"/> + <path class="st107" d="M75.64,684.9c2.62,1.72,6.22-0.01,7.83-3.71c1.61-3.68,0.64-7.97-2.09-9.51 + c-2.6-1.47-5.73-0.05-7.39,3.41C72.26,678.71,73,683.17,75.64,684.9z"/> + <path class="st107" d="M103.09,683.95c-2.74-1.61-6.2,0.09-7.9,3.94c-1.57,3.56-0.93,7.81,1.46,9.46 + c2.57,1.77,6.21,0.07,8.06-3.69C106.51,689.98,105.75,685.51,103.09,683.95z"/> + <path class="st107" d="M118.55,708.84c2.73,1.34,6.46-0.93,8.1-4.86c1.65-3.94,0.64-8.06-2.19-9.26 + c-2.67-1.13-5.94,0.74-7.63,4.45C115.05,703.07,115.81,707.49,118.55,708.84z"/> + <path class="st107" d="M145.82,706.01c-2.7-1.52-6.11,0.52-7.65,4.63c-1.45,3.86-0.68,7.99,1.8,9.49 + c2.62,1.59,6.22-0.42,7.83-4.31C149.42,711.89,148.52,707.53,145.82,706.01z"/> + <path class="st107" d="M160.97,732.67c2.66,1.41,6.25-0.71,7.7-4.52c1.48-3.89,0.47-8.06-2.28-9.45 + c-2.54-1.29-5.75,0.53-7.3,4.21C157.44,726.78,158.29,731.25,160.97,732.67z"/> + <path class="st107" d="M181.66,744.62c2.6,1.56,6.14-0.2,7.72-3.8c1.57-3.58,0.65-7.81-2.01-9.35 + c-2.53-1.46-5.62,0.01-7.29,3.52C178.33,738.67,179.04,743.05,181.66,744.62z"/> + <path class="st107" d="M208.41,744.13c-2.63-1.73-5.93-0.34-7.55,3.22c-1.5,3.29-0.83,7.26,1.51,8.86 + c2.52,1.72,5.99,0.37,7.7-2.94C211.74,750.03,210.96,745.8,208.41,744.13z"/> + <path class="st107" d="M281.52,785.57c2.51,1.47,5.26,0.87,6.42-1.37c1.22-2.36,0.11-5.71-2.4-7.32 + c-2.5-1.6-5.64-0.78-6.67,1.76C277.9,781.04,279.07,784.13,281.52,785.57z"/> + <path class="st107" d="M302.82,798.2c2.73,1.3,5.35,0.46,5.96-1.94c0.55-2.14-1.09-5.1-3.51-6.29 + c-2.53-1.24-5.18-0.51-5.94,1.63C298.51,793.92,300.09,796.9,302.82,798.2z"/> + <path class="st107" d="M322.91,810.41c2.5,1.5,5.06,1.39,6-0.28c0.98-1.74-0.32-4.65-2.81-6.29c-2.49-1.64-5.42-1.36-6.22,0.59 + C319.12,806.29,320.46,808.93,322.91,810.41z"/> + <path class="st107" d="M349.37,823.32c0.64-1.45-0.73-3.98-3.05-5.59c-2.45-1.7-5.31-1.74-6.02-0.1 + c-0.73,1.67,0.87,4.28,3.54,5.79C346.35,824.86,348.69,824.83,349.37,823.32z"/> + <path class="st107" d="M-6.17,606.68c1.14-2.73,0.06-6.17-2.42-7.72c-2.6-1.63-5.99-0.63-7.15,2.13 + c-1.18,2.8,0.14,6.41,2.93,7.95C-10.16,610.52-7.36,609.51-6.17,606.68z"/> + <path class="st107" d="M260.96,773.38c2.55,1.38,5.32,0.46,6.52-2.14c1.24-2.7,0.1-6.31-2.46-7.78 + c-2.43-1.4-5.39-0.44-6.59,2.14C257.14,768.39,258.28,771.94,260.96,773.38z"/> + <path class="st107" d="M240.11,761.04c2.52,1.44,5.41,0.38,6.75-2.45c1.4-2.96,0.42-6.8-2.11-8.34 + c-2.52-1.54-5.85-0.17-7.04,2.93C236.58,756.13,237.63,759.62,240.11,761.04z"/> + <path class="st107" d="M219.43,748.68c2.53,1.41,5.48,0.13,6.89-2.96c1.47-3.23,0.52-7.27-2.03-8.77 + c-2.4-1.4-5.55-0.09-6.95,2.94C215.81,743.17,216.76,747.2,219.43,748.68z"/> + <path class="st107" d="M198.43,736.03c2.46,1.62,5.54,0.38,7.14-2.8c1.69-3.38,1.02-7.58-1.47-9.34 + c-2.44-1.72-5.94-0.19-7.43,3.3C195.25,730.5,196.03,734.45,198.43,736.03z"/> + <path class="st107" d="M177.69,723.37c2.44,1.66,5.58,0.34,7.25-2.99c1.78-3.54,1.17-7.88-1.31-9.68 + c-2.43-1.75-5.99-0.13-7.56,3.51C174.59,717.64,175.3,721.73,177.69,723.37z"/> + <path class="st107" d="M157.14,710.7c2.49,1.56,5.63,0.03,7.28-3.5c1.74-3.72,1.04-8.16-1.5-9.78 + c-2.51-1.6-6.09,0.28-7.58,4.04C153.91,705.05,154.7,709.18,157.14,710.7z"/> + <path class="st107" d="M136.39,697.86c2.5,1.58,5.66-0.02,7.33-3.6c1.76-3.78,1.07-8.25-1.48-9.85 + c-2.52-1.58-6.4,1.05-7.91,4.83C132.9,692.86,133.8,696.73,136.39,697.86z"/> + <path class="st107" d="M114.67,687.74c2.66,1.21,5.86-0.67,7.47-4.31c1.68-3.8,0.73-7.98-2-9.13 + c-2.57-1.08-5.96,0.79-7.51,4.21C110.96,682.21,111.88,686.46,114.67,687.74z"/> + <path class="st107" d="M93.01,676.2c2.61,1.41,5.78-0.23,7.38-3.74c1.68-3.68,0.8-7.93-1.88-9.28 + c-2.67-1.35-6.29,0.61-7.68,4.25C89.5,670.89,90.45,674.82,93.01,676.2z"/> + <path class="st107" d="M71.66,663.67c2.59,1.51,5.7,0.05,7.25-3.35c1.63-3.55,0.71-7.78-1.95-9.22 + c-2.65-1.44-6.22,0.35-7.55,3.85C68.14,658.3,69.12,662.19,71.66,663.67z"/> + <path class="st107" d="M50.54,650.45c2.59,1.52,5.63,0.17,7.09-3.11c1.52-3.43,0.5-7.57-2.18-9c-2.53-1.35-5.76,0.02-7.15,3.07 + C46.79,644.71,47.8,648.84,50.54,650.45z"/> + <path class="st107" d="M29.02,636.49c2.49,1.8,5.58,0.89,7.13-2.05c1.65-3.15,0.87-7.17-1.72-8.97 + c-2.53-1.76-6.03-0.57-7.43,2.54C25.68,630.95,26.57,634.72,29.02,636.49z"/> + <path class="st107" d="M7.89,622.59c2.51,1.78,5.54,1,7.01-1.8c1.56-2.97,0.69-6.85-1.91-8.62c-2.55-1.72-6-0.67-7.3,2.27 + C4.46,617.23,5.44,620.85,7.89,622.59z"/> + <path class="st107" d="M353.8,818.66c-0.67,1.43,0.71,3.94,3.03,5.55c2.28,1.59,4.9,1.95,5.59,0.75 + c0.75-1.31-0.76-4.07-3.25-5.88C356.82,817.36,354.48,817.19,353.8,818.66z"/> + <path class="st107" d="M333.94,803.96c-0.86,1.63,0.31,4.28,2.62,5.95c2.42,1.74,5.32,1.84,6.03,0.19 + c0.69-1.58-0.62-4.26-2.95-5.98C337.3,802.38,334.81,802.31,333.94,803.96z"/> + <path class="st107" d="M313.94,789.67c-0.96,1.91,0.13,4.77,2.45,6.41c2.42,1.71,5.43,1.52,6.24-0.4 + c0.78-1.85-0.46-4.7-2.8-6.39C317.48,787.57,314.91,787.74,313.94,789.67z"/> + <path class="st107" d="M293.8,775.75c-0.96,2.24,0.19,5.34,2.55,6.84c2.32,1.48,5.22,1.04,6.19-0.92 + c1.06-2.14-0.24-5.49-2.77-7.16C297.37,772.92,294.78,773.46,293.8,775.75z"/> + <path class="st107" d="M-21.31,583.74c-1.23,2.45-0.26,5.67,2.19,7.3c2.53,1.68,6,0.78,7.18-1.86 + c1.12-2.52-0.06-5.77-2.59-7.21C-17.12,580.51-20.07,581.28-21.31,583.74z"/> + <path class="st107" d="M0.38,596.39c-1.22,2.65-0.23,6.07,2.23,7.66c2.57,1.66,6.04,0.51,7.18-2.35 + c1.11-2.76-0.07-6.09-2.64-7.51C4.57,592.76,1.62,593.7,0.38,596.39z"/> + <path class="st107" d="M22.01,609.15c-1.3,2.82-0.4,6.39,2.05,8.02c2.55,1.7,6.07,0.42,7.3-2.61c1.18-2.91,0.07-6.38-2.47-7.83 + C26.32,605.27,23.33,606.31,22.01,609.15z"/> + <path class="st107" d="M43.54,622.02c-1.35,2.97-0.49,6.69,1.96,8.29c2.55,1.68,6.12,0.22,7.4-2.97 + c1.23-3.06,0.16-6.63-2.39-8.06C47.93,617.84,44.91,619.01,43.54,622.02z"/> + <path class="st107" d="M65.12,634.56c-1.47,3.1-0.74,6.9,1.67,8.56c2.49,1.72,6.17,0.18,7.57-3.1 + c1.34-3.13,0.37-6.85-2.13-8.31C69.7,630.23,66.6,631.44,65.12,634.56z"/> + <path class="st107" d="M86.6,646.97c-1.44,3.24-0.65,7.11,1.81,8.6c2.57,1.55,6.25-0.29,7.61-3.73 + c1.31-3.31,0.29-6.96-2.27-8.27C91.17,642.24,88.06,643.69,86.6,646.97z"/> + <path class="st107" d="M108.2,658.72c-1.41,3.36-0.54,7.24,1.97,8.51c2.45,1.24,5.95-0.58,7.43-3.79 + c1.61-3.49,0.56-7.5-2.21-8.7C112.74,653.6,109.65,655.27,108.2,658.72z"/> + <path class="st107" d="M130.07,669.31c-1.46,3.43-0.62,7.28,1.91,8.45c2.48,1.15,5.99-0.81,7.54-4.1 + c1.67-3.54,0.64-7.5-2.15-8.6C134.71,664.02,131.56,665.81,130.07,669.31z"/> + <path class="st107" d="M151.72,679.95c-1.5,3.42-0.84,7.53,1.52,9.13c2.46,1.68,6.08-0.15,7.49-3.73 + c1.36-3.44,0.47-7.35-1.96-8.83C156.31,675.02,153.25,676.48,151.72,679.95z"/> + <path class="st107" d="M172.4,692.98c-1.55,3.37-0.96,7.44,1.35,9.16c2.39,1.78,6.01,0.13,7.47-3.34 + c1.39-3.31,0.57-7.29-1.8-8.89C177,688.29,173.95,689.6,172.4,692.98z"/> + <path class="st107" d="M192.78,706.56c-1.45,3.28-0.75,7.28,1.58,8.91c2.44,1.7,5.97,0.08,7.3-3.3 + c1.29-3.26,0.38-7.09-2.01-8.66C197.24,701.93,194.25,703.23,192.78,706.56z"/> + <path class="st107" d="M213.15,720.12c-1.41,3.13-0.7,6.99,1.62,8.65c2.43,1.73,5.89,0.32,7.19-2.89 + c1.25-3.07,0.33-6.82-2.04-8.43C217.52,715.82,214.58,716.96,213.15,720.12z"/> + <path class="st107" d="M233.5,733.69c-1.41,2.9-0.74,6.6,1.53,8.35c2.35,1.8,5.81,0.7,7.11-2.22c1.24-2.78,0.34-6.47-1.97-8.17 + C237.82,729.92,234.91,730.78,233.5,733.69z"/> + <path class="st107" d="M253.58,747.73c-1.22,2.7-0.33,6.24,2,7.83c2.29,1.57,5.35,0.78,6.63-1.68c1.36-2.62,0.33-6.4-2.18-8.12 + C257.63,744.14,254.83,744.98,253.58,747.73z"/> + <path class="st107" d="M273.73,761.66c-1.11,2.47-0.12,5.79,2.21,7.35c2.29,1.54,5.28,0.94,6.43-1.26 + c1.24-2.37,0.11-5.93-2.41-7.65C277.57,758.48,274.86,759.14,273.73,761.66z"/> + <path class="st107" d="M310.59,780.77c2.42,1.8,5.06,1.65,5.95-0.32c0.9-1.98-0.3-5-2.71-6.82c-2.21-1.67-4.73-1.55-5.72,0.28 + C307.08,775.84,308.23,779.01,310.59,780.77z"/> + <path class="st107" d="M333.57,789.67c-2.3-1.94-4.98-2.1-5.87-0.36c-0.83,1.62,0.24,4.38,2.38,6.12 + c2.38,1.94,4.99,2.22,5.95,0.64C337,794.48,335.9,791.63,333.57,789.67z"/> + <path class="st107" d="M350.1,810.8c2.4,1.85,4.87,2.15,5.57,0.67c0.7-1.48-0.63-4.17-3.02-6.06c-2.19-1.72-4.56-2-5.36-0.64 + C346.45,806.22,347.75,808.99,350.1,810.8z"/> + <path class="st107" d="M369.65,826.18c2.38,1.91,4.78,2.48,5.44,1.25c0.65-1.23-0.7-3.78-3.06-5.72 + c-2.17-1.78-4.48-2.3-5.24-1.18C366,821.69,367.33,824.31,369.65,826.18z"/> + <path class="st107" d="M-24.68,574.55c2.71,1.33,5.7,0.35,6.66-2.17c0.9-2.35-0.33-5.13-2.83-6.4c-2.64-1.35-5.8-0.5-6.84,1.84 + C-28.74,570.18-27.38,573.22-24.68,574.55z"/> + <path class="st107" d="M-2.86,586.47c2.68,1.45,5.71,0.47,6.81-2.18c1.11-2.66-0.19-5.74-2.94-7.02 + c-2.51-1.17-5.4-0.28-6.53,2.02C-6.72,581.73-5.49,585.04-2.86,586.47z"/> + <path class="st107" d="M18.99,598.83c2.67,1.45,5.74,0.32,6.86-2.49c1.13-2.82-0.15-6.01-2.9-7.29 + c-2.51-1.17-5.42-0.17-6.57,2.29C15.17,593.96,16.35,597.39,18.99,598.83z"/> + <path class="st107" d="M291.33,766.43c2.3,1.38,4.81,0.78,5.64-1.36c0.9-2.3-0.34-5.46-2.81-7.18 + c-2.39-1.66-5.21-0.99-5.95,1.42C287.44,761.81,288.8,764.92,291.33,766.43z"/> + <path class="st107" d="M270.71,751.35c2.41,1.85,5.23,1.37,6.39-1.06c1.17-2.43,0.18-5.83-2.2-7.65 + c-2.18-1.67-4.88-1.27-6.13,0.94C267.47,745.88,268.38,749.57,270.71,751.35z"/> + <path class="st107" d="M250.69,736.85c2.42,1.88,5.3,1.26,6.58-1.39c1.28-2.63,0.39-6.2-1.99-8.04 + c-2.19-1.69-4.95-1.16-6.31,1.24C247.57,731.14,248.37,735.04,250.69,736.85z"/> + <path class="st107" d="M230.9,722.71c2.46,1.71,5.41,0.69,6.63-2.25c1.23-2.95,0.22-6.56-2.26-8.22 + c-2.27-1.52-5.07-0.63-6.34,2.06C227.58,717.13,228.49,721.04,230.9,722.71z"/> + <path class="st107" d="M210.83,708.61c2.48,1.64,5.5,0.4,6.74-2.73c1.25-3.14,0.23-6.81-2.29-8.39 + c-2.31-1.44-5.15-0.35-6.44,2.51C207.47,703.04,208.37,706.99,210.83,708.61z"/> + <path class="st107" d="M190.65,694.77c2.51,1.55,5.58,0.09,6.82-3.18c1.16-3.06,0.3-6.59-1.97-8.19 + c-2.4-1.69-5.58-0.48-6.93,2.69C187.22,689.28,188.15,693.23,190.65,694.77z"/> + <path class="st107" d="M175.23,669.68c-2.42-1.68-5.62-0.47-7.05,2.74c-1.33,2.98-0.64,6.82,1.55,8.47 + c2.44,1.84,5.57,0.74,7.11-2.44C178.41,675.26,177.68,671.38,175.23,669.68z"/> + <path class="st107" d="M154.68,656.63c-2.44-1.66-5.81-0.08-7.31,3.13c-1.38,2.95-0.54,6.32,1.64,7.95 + c2.45,1.84,5.6,0.76,7.21-2.39C157.83,662.17,157.13,658.29,154.68,656.63z"/> + <path class="st107" d="M127.55,658.09c2.7,1.18,5.96-0.65,7.27-3.97c1.32-3.33,0.14-6.66-2.62-7.68 + c-2.53-0.94-5.58,0.6-6.92,3.59C123.86,653.2,124.88,656.93,127.55,658.09z"/> + <path class="st107" d="M105.45,647.23c2.63,1.45,5.86-0.03,7.31-3.24c1.44-3.21,0.43-6.73-2.23-7.99 + c-2.44-1.16-5.51,0.09-6.98,2.92C102.02,641.87,102.9,645.84,105.45,647.23z"/> + <path class="st107" d="M83.96,635.8c2.66,1.38,5.85-0.14,7.12-3.31c1.28-3.19,0.11-6.58-2.63-7.8c-2.5-1.11-5.5,0.19-6.79,3.01 + C80.29,630.68,81.33,634.43,83.96,635.8z"/> + <path class="st107" d="M62.35,623.72c2.66,1.41,5.81,0,7.02-3.08c1.21-3.09-0.01-6.44-2.75-7.68c-2.5-1.14-5.47,0.08-6.7,2.81 + C58.61,618.67,59.71,622.32,62.35,623.72z"/> + <path class="st107" d="M40.43,611.17c2.62,1.6,5.74,0.55,7.07-2.34c1.33-2.89,0.25-6.29-2.41-7.7 + c-2.43-1.29-5.42-0.36-6.78,2.14C36.91,605.88,37.9,609.63,40.43,611.17z"/> + <path class="st107" d="M360.38,806.93c-0.69,1.33,0.43,3.89,2.51,5.74c2.19,1.95,4.73,2.49,5.44,1.13 + c0.67-1.28-0.41-3.8-2.48-5.75C363.7,806.03,361.12,805.51,360.38,806.93z"/> + <path class="st107" d="M341.21,790.31c-0.77,1.53,0.29,4.26,2.37,6.09c2.2,1.94,4.81,2.27,5.6,0.69 + c0.74-1.48-0.28-4.15-2.35-6.09C344.69,789,342.04,788.67,341.21,790.31z"/> + <path class="st107" d="M322.04,773.79c-0.96,1.83,0.19,5.02,2.46,6.79c2.15,1.68,4.59,1.71,5.45,0.08 + c0.93-1.76-0.2-4.89-2.46-6.77C325.4,772.12,322.94,772.08,322.04,773.79z"/> + <path class="st107" d="M310.75,764.22c0.96-2.05-0.18-5.36-2.46-7.15c-2.14-1.67-4.64-1.43-5.57,0.53 + c-0.99,2.1,0.19,5.53,2.48,7.18C307.4,766.37,309.85,766.12,310.75,764.22z"/> + <path class="st107" d="M-2.37,567.97c1.12-2.46-0.22-5.52-2.88-6.62c-2.49-1.03-5.37-0.08-6.39,2.12 + c-1.09,2.36,0.29,5.56,2.89,6.68C-6.23,571.25-3.42,570.27-2.37,567.97z"/> + <path class="st107" d="M10.63,574.64c-1.18,2.48,0.07,5.82,2.66,7.03c2.46,1.16,5.36,0.13,6.48-2.25 + c1.21-2.57-0.04-5.77-2.67-6.95C14.64,571.37,11.72,572.33,10.63,574.64z"/> + <path class="st107" d="M283.4,741.46c-1.1,2.31-0.05,5.89,2.25,7.56c2.19,1.59,4.76,1.18,5.76-0.91 + c1.08-2.25,0.03-5.72-2.25-7.51C287.02,738.93,284.43,739.31,283.4,741.46z"/> + <path class="st107" d="M271.95,732.25c1.22-2.45,0.3-6.02-1.99-7.85c-2.12-1.69-4.81-1.21-5.96,1.1 + c-1.24,2.49-0.32,6.2,1.98,7.92C268.16,735.05,270.83,734.51,271.95,732.25z"/> + <path class="st107" d="M252.42,716.58c1.3-2.65,0.44-6.33-1.87-8.13c-2.14-1.66-4.89-1.03-6.11,1.45 + c-1.31,2.67-0.46,6.51,1.85,8.22C248.48,719.73,251.22,719.02,252.42,716.58z"/> + <path class="st107" d="M232.73,701.27c1.39-2.82,0.6-6.55-1.74-8.34c-2.14-1.64-4.97-0.89-6.26,1.71 + c-1.4,2.82-0.62,6.74,1.71,8.45C228.63,704.7,231.45,703.86,232.73,701.27z"/> + <path class="st107" d="M212.97,686.17c1.34-2.96,0.42-6.8-1.96-8.37c-2.22-1.46-5.06-0.45-6.31,2.31 + c-1.34,2.96-0.44,6.99,1.93,8.49C208.88,690.03,211.72,688.92,212.97,686.17z"/> + <path class="st107" d="M192.93,671.64c1.23-2.9,0.45-6.37-1.76-7.99c-2.3-1.68-5.45-0.54-6.76,2.51 + c-1.22,2.84-0.45,6.52,1.74,8.12C188.47,675.99,191.62,674.73,192.93,671.64z"/> + <path class="st107" d="M172.4,658.27c1.44-3.05,0.57-6.76-1.88-8.22c-2.27-1.35-5.2-0.25-6.52,2.52 + c-1.42,2.98-0.58,6.91,1.84,8.37C168.13,662.31,171.07,661.08,172.4,658.27z"/> + <path class="st107" d="M151.43,645.99c1.43-3.05,0.39-6.38-2.23-7.41c-2.43-0.96-5.48,0.44-6.79,3.22 + c-1.42,2.99-0.43,6.62,2.17,7.65C147.02,650.42,150.11,648.81,151.43,645.99z"/> + <path class="st107" d="M120.26,631.95c-1.19,2.81-0.25,6.17,2.13,7.38c2.54,1.29,5.82-0.35,7.11-3.43 + c1.2-2.88,0.24-5.98-2.17-7.17C124.82,627.49,121.53,628.93,120.26,631.95z"/> + <path class="st107" d="M98.31,621.17c-1.12,2.78-0.11,6.14,2.27,7.35c2.56,1.3,5.77-0.27,7.01-3.33 + c1.15-2.85,0.12-5.96-2.31-7.15C102.74,616.78,99.52,618.18,98.31,621.17z"/> + <path class="st107" d="M85.66,614.12c1.17-2.76,0.2-5.88-2.2-7.18c-2.5-1.36-5.75-0.12-6.98,2.74c-1.15,2.67-0.18,6,2.17,7.35 + C81.17,618.46,84.41,617.07,85.66,614.12z"/> + <path class="st107" d="M54.59,598.06c-1.11,2.58-0.1,5.84,2.27,7.2c2.52,1.45,5.72,0.17,6.94-2.69 + c1.13-2.68,0.12-5.75-2.28-7.06C59,594.13,55.77,595.29,54.59,598.06z"/> + <path class="st107" d="M32.56,586.55c-0.98,2.51,0.2,5.68,2.6,6.9c2.6,1.33,5.68,0.05,6.77-2.76c1.01-2.59-0.17-5.6-2.61-6.78 + C36.72,582.64,33.62,583.83,32.56,586.55z"/> + <path class="st107" d="M378.26,811.11c-2.1-2.02-4.32-2.62-5.08-1.4c-0.75,1.2,0.31,3.76,2.38,5.73 + c2.18,2.08,4.72,2.83,5.35,1.53C381.51,815.74,380.33,813.11,378.26,811.11z"/> + <path class="st107" d="M359.61,793.26c-2.09-2.03-4.38-2.54-5.23-1.17c-0.84,1.35,0.14,4.05,2.18,6.02 + c2.17,2.09,4.78,2.7,5.52,1.26C362.78,798,361.68,795.27,359.61,793.26z"/> + <path class="st107" d="M335.44,774.8c-0.79,1.65,0.26,4.5,2.36,6.4c2.06,1.86,4.52,2.22,5.38,0.78 + c0.92-1.54-0.25-4.67-2.51-6.73C338.55,773.32,336.24,773.13,335.44,774.8z"/> + <path class="st107" d="M316.53,757.51c-0.86,1.84,0.14,4.84,2.24,6.72c2.07,1.84,4.59,2.02,5.52,0.39 + c0.99-1.74-0.12-5.02-2.4-7.05C319.77,755.67,317.41,755.64,316.53,757.51z"/> + <path class="st107" d="M-11.64,546.7c-2.54-1.13-5.35-0.4-6.43,1.68c-1.06,2.07,0.06,4.75,2.51,5.99 + c2.59,1.31,5.83,0.45,6.79-1.8C-7.84,550.43-9.13,547.82-11.64,546.7z"/> + <path class="st107" d="M10.84,557.11c-2.52-1.16-5.34-0.38-6.42,1.82c-1.07,2.18,0.03,4.99,2.47,6.26 + c2.58,1.34,5.84,0.38,6.8-1.97C14.61,560.97,13.34,558.27,10.84,557.11z"/> + <path class="st107" d="M297.63,740.25c-1.03,1.95-0.19,5.12,1.88,7.05c2.19,2.04,5.01,2.01,5.93-0.04 + c0.87-1.96-0.11-5.09-2.21-7.02C301.12,738.28,298.67,738.28,297.63,740.25z"/> + <path class="st107" d="M284.18,722.9c-2.15-1.86-4.64-1.6-5.68,0.62c-1.03,2.19-0.16,5.48,1.95,7.33 + c2.22,1.95,5.13,1.61,6.02-0.68C287.33,727.95,286.32,724.75,284.18,722.9z"/> + <path class="st107" d="M265.37,706.27c-2.13-1.97-4.71-1.8-5.95,0.43c-1.31,2.36-0.48,6.06,1.83,7.95 + c2.12,1.74,4.83,1.32,5.93-0.87C268.27,711.58,267.45,708.2,265.37,706.27z"/> + <path class="st107" d="M246.09,689.87c-2.16-1.91-4.78-1.6-6.07,0.77c-1.37,2.5-0.55,6.29,1.78,8.13 + c2.14,1.69,4.92,1.11,6.06-1.23C249,695.19,248.19,691.74,246.09,689.87z"/> + <path class="st107" d="M226.56,674.11c-2.18-1.84-4.86-1.41-6.2,1.05c-1.41,2.6-0.62,6.43,1.73,8.21 + c2.16,1.64,5,0.91,6.19-1.53C229.48,679.39,228.69,675.91,226.56,674.11z"/> + <path class="st107" d="M206.34,658.86c-2.28-1.53-4.98-0.67-6.14,2.01c-1.15,2.64-0.3,6.11,1.92,7.72 + c2.33,1.69,5.51,0.59,6.53-2.21C209.64,663.68,208.61,660.39,206.34,658.86z"/> + <path class="st107" d="M186.3,645.05c-2.29-1.55-5.05-0.81-6.34,1.76c-1.28,2.54-0.56,6,1.63,7.64 + c2.32,1.74,5.52,0.77,6.73-1.98C189.48,649.87,188.57,646.58,186.3,645.05z"/> + <path class="st107" d="M165.67,632.35c-2.34-1.47-5.15-0.71-6.5,1.8c-1.43,2.65-0.47,6.06,2.01,7.52 + c2.28,1.34,5.25,0.31,6.46-2.18C168.85,636.99,167.95,633.78,165.67,632.35z"/> + <path class="st107" d="M143.75,622.3c-2.46-1.2-5.34-0.3-6.68,2.21c-1.42,2.66-0.42,6.05,2.21,7.2 + c2.41,1.06,5.5-0.27,6.69-2.77C147.18,626.42,146.16,623.48,143.75,622.3z"/> + <path class="st107" d="M114.85,614.64c-1.07,2.6,0.02,5.67,2.48,6.8c2.42,1.11,5.48-0.16,6.64-2.65 + c1.26-2.71,0.01-5.81-2.7-6.93C118.77,610.82,115.93,612.01,114.85,614.64z"/> + <path class="st107" d="M99.5,601.21c-2.47-1.19-5.33-0.22-6.52,2.3c-1.18,2.5-0.22,5.64,2.17,6.93 + c2.53,1.37,5.87,0.08,6.94-2.59C103.13,605.3,101.96,602.39,99.5,601.21z"/> + <path class="st107" d="M77.61,590.24c-2.46-1.28-5.32-0.46-6.56,1.96c-1.23,2.39-0.33,5.52,2.04,6.91 + c2.5,1.47,5.82,0.39,6.97-2.2C81.15,594.45,80.05,591.51,77.61,590.24z"/> + <path class="st107" d="M55.61,579.15c-2.47-1.33-5.32-0.62-6.59,1.68c-1.33,2.44-0.23,5.72,2.4,7.03 + c2.42,1.21,5.43,0.2,6.55-2.12C59.11,583.39,58.03,580.45,55.61,579.15z"/> + <path class="st107" d="M33.19,567.95c-2.5-1.2-5.33-0.38-6.44,1.91c-1.1,2.27-0.05,5.2,2.38,6.51 + c2.56,1.38,5.84,0.35,6.83-2.09C36.91,571.93,35.67,569.14,33.19,567.95z"/> + <path class="st107" d="M36.43,550.69c-0.87,1.47,0.16,4.5,2.67,5.62c2.28,1.02,5.09,0.31,6.08-1.5 + c0.86-1.43-0.63-3.57-3.13-4.65C39.64,549.12,37.24,549.32,36.43,550.69z"/> + <path class="st107" d="M58.88,561.1c-1.11,2.07,0.02,4.82,2.52,5.97c2.27,1.04,5.08,0.29,6.08-1.54 + c1.09-2.01-0.44-4.01-2.93-5.12C62.16,559.34,59.92,559.17,58.88,561.1z"/> + <path class="st107" d="M81.09,571.94c-1.11,2.1,0.02,4.88,2.5,6.02c2.26,1.04,5.07,0.26,6.06-1.6 + c1.08-2.03-0.28-4.45-2.76-5.56C84.51,569.73,82.13,569.97,81.09,571.94z"/> + <path class="st107" d="M103.15,582.85c-1,1.99-0.08,4.53,2.16,5.78c2.29,1.29,5.42,0.49,6.43-1.54 + c1.03-2.06-0.26-4.72-2.74-5.83C106.65,580.22,104.16,580.84,103.15,582.85z"/> + <path class="st107" d="M125.22,593.43c-1.13,2.08-0.07,4.87,2.39,6c2.23,1.03,5.03,0.24,6.06-1.6c1.11-1.99-0.1-4.65-2.54-5.79 + C128.8,590.94,126.28,591.49,125.22,593.43z"/> + <path class="st107" d="M147.23,603.71c-1.18,2.02-0.2,4.76,2.22,5.92c2.16,1.04,5.04,0.29,6.11-1.48 + c1.17-1.92,0.02-4.52-2.38-5.68C150.87,601.37,148.33,601.84,147.23,603.71z"/> + <path class="st107" d="M169.05,613.9c-0.95,1.9-0.06,4.41,2.1,5.73c2.21,1.35,5.24,0.68,6.22-1.32 + c1.01-2.04-0.24-4.71-2.66-5.83C172.42,611.41,170.01,611.98,169.05,613.9z"/> + <path class="st107" d="M190.23,625.56c-1.12,2.14-0.15,5.17,2.16,6.57c2.1,1.27,4.78,0.66,5.8-1.26 + c1.11-2.09,0.03-5.09-2.28-6.46C193.71,623.1,191.28,623.56,190.23,625.56z"/> + <path class="st107" d="M210.59,639.24c-0.95,2.11-0.1,5.07,1.94,6.62c2.12,1.62,5.05,1.02,6-1.18c0.91-2.1-0.02-5-2.06-6.52 + C214.2,636.47,211.65,636.9,210.59,639.24z"/> + <path class="st107" d="M230.52,654.09c-0.97,2.11-0.18,5.18,1.8,6.87c2.06,1.76,4.95,1.3,5.92-0.88 + c0.93-2.09,0.06-5.11-1.92-6.78C234.11,651.42,231.6,651.74,230.52,654.09z"/> + <path class="st107" d="M249.83,670.41c-0.83,2.18,0.15,5.32,2.17,6.92c2.16,1.71,4.85,1.16,5.64-1.12 + c0.76-2.19-0.23-5.21-2.24-6.87C253.21,667.54,250.75,667.99,249.83,670.41z"/> + <path class="st107" d="M269.14,686.9c-1.11,2.12-0.27,5.48,1.85,7.34c1.93,1.7,4.43,1.55,5.41-0.28c1.07-2,0.15-5.41-1.95-7.31 + C272.45,684.83,270.17,684.93,269.14,686.9z"/> + <path class="st107" d="M287.86,704.75c-0.92,1.93-0.15,4.98,1.74,6.91c1.96,2,4.68,2.02,5.59,0.07 + c0.87-1.86,0.05-4.94-1.83-6.89C291.27,702.67,288.87,702.62,287.86,704.75z"/> + <path class="st107" d="M306.44,722.96c-0.87,1.81-0.08,4.81,1.8,6.76c1.95,2.03,4.61,2.2,5.47,0.37 + c0.82-1.75-0.02-4.77-1.88-6.76C309.75,721.13,307.41,720.95,306.44,722.96z"/> + <path class="st107" d="M13.72,540.79c-0.75,1.37,0.29,3.72,2.58,4.89c2.37,1.22,5.54,0.38,6.3-1.04 + c0.78-1.44-0.78-3.51-3.33-4.54C16.84,539.13,14.48,539.4,13.72,540.79z"/> + <path class="st107" d="M-9.13,531.22c-0.73,1.37,0.5,3.32,2.81,4.42c2.39,1.14,5.43,0.64,6.16-0.77 + c0.75-1.44-0.84-3.47-3.41-4.44C-6.01,529.5-8.38,529.82-9.13,531.22z"/> + <path class="st107" d="M-32.08,522.01c-0.88,1.46,0.53,3.5,3.11,4.45c2.35,0.86,5.04,0.46,5.82-0.82 + c0.86-1.4-0.66-3.44-3.22-4.39C-28.81,520.33-31.26,520.64-32.08,522.01z"/> + <path class="st107" d="M398.28,816.87c-0.66,1.23,0.33,3.66,2.24,5.53c1.98,1.95,4.45,2.64,5.1,1.41 + c0.62-1.18-0.4-3.72-2.29-5.62C401.23,816.07,399.01,815.51,398.28,816.87z"/> + <path class="st107" d="M379.94,798.02c-0.83,1.36,0.2,4.16,2.25,6.2c1.87,1.86,4.09,2.49,4.83,1.34c0.8-1.25-0.27-4.22-2.3-6.3 + C382.77,797.27,380.72,796.75,379.94,798.02z"/> + <path class="st107" d="M361.54,779.25c-0.72,1.45,0.2,4.15,2.08,6.12c1.95,2.05,4.45,2.62,5.15,1.15 + c0.67-1.41-0.28-4.19-2.14-6.19C364.55,778.11,362.34,777.64,361.54,779.25z"/> + <path class="st107" d="M343.31,760.19c-0.93,1.61,0.01,4.64,2.07,6.67c1.87,1.85,4.17,2.27,4.99,0.9 + c0.89-1.48-0.1-4.64-2.13-6.73C346.29,759.05,344.18,758.68,343.31,760.19z"/> + <path class="st107" d="M324.93,741.44c-0.95,1.78-0.01,4.93,2.08,6.91c1.9,1.8,4.23,2.04,5.05,0.52 + c0.9-1.66-0.1-4.92-2.14-6.95C327.95,739.97,325.82,739.76,324.93,741.44z"/> + <path class="st107" d="M311.42,740.28c-0.99,1.81-0.05,4.98,2.08,6.98c2.02,1.9,4.22,2.1,5.21,0.5 + c1.05-1.7,0.26-4.84-1.74-6.95C315.02,738.74,312.4,738.49,311.42,740.28z"/> + <path class="st107" d="M294.85,729.89c2.19,1.89,4.56,1.66,5.41-0.52c0.76-1.95-0.17-5.01-2.08-6.84 + c-2.03-1.94-4.67-1.88-5.59,0.14C291.66,724.74,292.68,728.02,294.85,729.89z"/> + <path class="st107" d="M273.83,705.05c-1.13,2.09-0.3,5.46,1.84,7.41c2.04,1.86,4.36,1.82,5.48-0.06 + c1.2-2.01,0.52-5.32-1.5-7.4C277.69,702.98,274.95,702.98,273.83,705.05z"/> + <path class="st107" d="M260.52,687.64c-2.04-1.87-4.82-1.58-5.88,0.67c-1,2.14-0.27,5.32,1.67,7.18 + c2.15,2.06,4.74,1.89,5.91-0.34C263.39,692.95,262.6,689.55,260.52,687.64z"/> + <path class="st107" d="M235.27,672.11c-1.09,2.39-0.17,5.81,2.08,7.53c2.11,1.62,4.52,1.17,5.64-1.01 + c1.18-2.31,0.39-5.72-1.74-7.53C239.17,669.31,236.34,669.77,235.27,672.11z"/> + <path class="st107" d="M215.48,656.92c-1.01,2.5,0.04,5.85,2.35,7.38c2.33,1.53,4.9,0.62,5.85-2.03 + c0.85-2.36-0.15-5.47-2.2-6.94C219.28,653.76,216.48,654.48,215.48,656.92z"/> + <path class="st107" d="M197.58,649.63c2.36,1.56,4.98,0.72,6.05-1.87c0.96-2.32,0.06-5.31-1.99-6.8 + c-2.17-1.57-5.09-0.92-6.2,1.44C194.31,644.8,195.26,648.09,197.58,649.63z"/> + <path class="st107" d="M176.86,636.12c2.37,1.53,5.09,0.75,6.24-1.7c1.12-2.4,0.07-5.48-2.25-6.77 + c-2.16-1.2-4.82-0.54-5.96,1.54C173.66,631.44,174.54,634.62,176.86,636.12z"/> + <path class="st107" d="M155.48,624.77c2.5,1.19,5.36,0.15,6.5-2.21c1.12-2.31-0.04-5.02-2.48-6.04 + c-2.25-0.94-5.01-0.14-6.17,1.92C152.07,620.66,153.02,623.6,155.48,624.77z"/> + <path class="st107" d="M131.27,608.48c-1.21,2.28-0.19,5.25,2.29,6.43c2.36,1.13,5.01,0.3,6.23-1.85 + c1.31-2.29,0.41-5.09-1.95-6.38C135.55,605.44,132.46,606.22,131.27,608.48z"/> + <path class="st107" d="M111.77,604.53c2.55,1.15,5.32,0.02,6.32-2.47c0.9-2.23-0.21-4.83-2.46-5.94 + c-2.36-1.18-5.43-0.28-6.48,2C108.08,600.45,109.25,603.4,111.77,604.53z"/> + <path class="st107" d="M87.12,587.25c-1.06,2.3,0.12,5.24,2.64,6.4c2.38,1.1,5.01,0.23,6.13-1.93 + c1.19-2.29,0.13-5.16-2.29-6.38C91.23,584.14,88.16,585,87.12,587.25z"/> + <path class="st107" d="M67.53,582.51c2.56,1.28,5.32,0.38,6.39-2.02c0.96-2.15-0.05-4.76-2.28-5.99 + c-2.33-1.29-5.42-0.56-6.56,1.62C63.93,578.32,65.03,581.26,67.53,582.51z"/> + <path class="st107" d="M42.88,565.14c-1.16,2.14-0.07,5,2.44,6.27c2.39,1.21,5.01,0.57,6.21-1.46 + c1.27-2.16,0.33-4.97-2.06-6.31C47.14,562.35,44.03,563.02,42.88,565.14z"/> + <path class="st107" d="M20.52,554.4c-1.15,2.07-0.02,4.85,2.5,6.1c2.4,1.19,5.02,0.59,6.2-1.38c1.26-2.1,0.3-4.84-2.11-6.15 + C24.76,551.7,21.65,552.35,20.52,554.4z"/> + <path class="st107" d="M4.21,542.47c-2.49-1.06-5.49-0.21-6.39,1.85c-0.91,2.1,0.47,4.72,3.08,5.76 + c2.43,0.98,5.01,0.2,6.01-1.79C7.96,546.2,6.72,543.54,4.21,542.47z"/> + <path class="st107" d="M-21.94,539.89c2.64,1.09,5.36,0.26,6.28-1.89c0.83-1.92-0.36-4.28-2.68-5.31 + c-2.45-1.09-5.52-0.33-6.51,1.62C-25.85,536.29-24.54,538.81-21.94,539.89z"/> + <path class="st107" d="M390.64,814.58c-2.02-2-4.38-2.61-4.99-1.32c-0.62,1.31,0.64,4,2.78,5.98c2,1.85,3.99,2.43,4.67,1.3 + C393.8,819.36,392.68,816.6,390.64,814.58z"/> + <path class="st107" d="M367.21,794.76c-0.85,1.29,0.2,4.05,2.3,6.11c2,1.97,4.08,2.6,4.92,1.49c0.9-1.18,0.02-3.92-1.97-6.08 + C370.53,794.2,368.05,793.48,367.21,794.76z"/> + <path class="st107" d="M348.66,776.47c-0.9,1.45,0.09,4.34,2.19,6.4c2,1.96,4.12,2.48,5.02,1.22c0.96-1.34,0.12-4.2-1.86-6.36 + C352.08,775.63,349.56,775.03,348.66,776.47z"/> + <path class="st107" d="M332.09,764.88c2.12,2.11,4.45,2.46,5.34,0.79c0.87-1.63-0.13-4.73-2.17-6.72 + c-1.89-1.84-4.19-2.18-5.13-0.74C329.11,759.76,330,762.8,332.09,764.88z"/> + <path class="st107" d="M358.26,769.07c1.93,2.03,4.05,2.53,4.85,1.13c0.81-1.4-0.03-4.22-1.88-6.32 + c-2.01-2.27-4.41-2.81-5.15-1.18C355.38,764.25,356.35,767.05,358.26,769.07z"/> + <path class="st107" d="M340.13,749.91c1.93,1.99,4.08,2.35,4.89,0.82c0.8-1.52-0.05-4.42-1.92-6.49 + c-2.03-2.25-4.44-2.65-5.17-0.87C337.24,745.08,338.2,747.92,340.13,749.91z"/> + <path class="st107" d="M376.43,788.27c1.93,2.04,4.02,2.63,4.81,1.31c0.79-1.31-0.06-4.06-1.9-6.15 + c-2-2.26-4.39-2.88-5.12-1.36C373.54,783.51,374.53,786.26,376.43,788.27z"/> + <path class="st107" d="M394.63,807.36c1.94,2.05,4.02,2.68,4.82,1.45c0.79-1.22-0.06-3.88-1.91-5.95 + c-2-2.24-4.4-2.93-5.12-1.52C391.74,802.66,392.74,805.36,394.63,807.36z"/> + <path class="st107" d="M413.36,825.82c1.99,1.86,4.05,2.38,4.73,1.16c0.67-1.22-0.33-3.75-2.26-5.69 + c-2.09-2.09-4.44-2.62-5.02-1.17C410.25,821.5,411.37,823.96,413.36,825.82z"/> + <path class="st107" d="M-13.78,524.52c2.44,0.93,4.88,0.67,5.54-0.55c0.66-1.22-0.72-2.92-3.13-3.92 + c-2.59-1.07-5.3-0.85-5.83,0.51C-17.71,521.85-16.23,523.58-13.78,524.52z"/> + <path class="st107" d="M8.96,533.94c2.41,1.01,4.87,0.84,5.59-0.34c0.71-1.17-0.62-2.91-2.97-3.96 + c-2.55-1.14-5.28-1.04-5.88,0.26C5.12,531.15,6.55,532.94,8.96,533.94z"/> + <path class="st107" d="M31.55,543.73c2.41,1.08,4.84,0.99,5.63-0.16c0.78-1.14-0.48-2.9-2.79-4c-2.5-1.19-5.26-1.19-5.94,0.06 + C27.81,540.8,29.2,542.68,31.55,543.73z"/> + <path class="st107" d="M54.34,553.94c2.39,1.04,4.8,0.85,5.46-0.35c0.66-1.2-0.7-2.95-3.06-4.03c-2.54-1.17-5.2-1.09-5.73,0.24 + C50.51,551.08,51.94,552.9,54.34,553.94z"/> + <path class="st107" d="M76.83,564.27c2.38,1.03,4.77,0.8,5.41-0.45c0.64-1.25-0.74-3.01-3.1-4.09 + c-2.54-1.16-5.17-1.05-5.66,0.33C73,561.37,74.44,563.23,76.83,564.27z"/> + <path class="st107" d="M99.2,574.69c2.36,1.02,4.76,0.71,5.37-0.6c0.62-1.32-0.76-3.08-3.13-4.15 + c-2.53-1.14-5.15-0.97-5.61,0.46C95.37,571.78,96.8,573.66,99.2,574.69z"/> + <path class="st107" d="M121.25,585.04c2.35,1.05,4.77,0.74,5.48-0.61c0.7-1.34-0.61-3.18-2.92-4.26c-2.5-1.16-5.16-1-5.73,0.46 + C117.53,582.03,118.89,583.98,121.25,585.04z"/> + <path class="st107" d="M143.26,595.4c2.33,1.05,4.78,0.62,5.53-0.82c0.74-1.43-0.53-3.31-2.84-4.38 + c-2.49-1.14-5.16-0.9-5.76,0.64C139.61,592.33,140.92,594.35,143.26,595.4z"/> + <path class="st107" d="M164.99,605.55c2.32,1.06,4.82,0.6,5.69-0.91c0.87-1.51-0.28-3.48-2.53-4.55 + c-2.44-1.16-5.18-0.89-5.94,0.7C161.49,602.3,162.7,604.5,164.99,605.55z"/> + <path class="st107" d="M186.47,616.23c2.24,1.28,4.69,0.94,5.66-0.72c0.9-1.51-0.14-3.69-2.3-4.95 + c-2.34-1.37-5.07-1.2-5.88,0.43C183.18,612.53,184.28,614.99,186.47,616.23z"/> + <path class="st107" d="M207.35,628.99c2.17,1.41,4.6,1.07,5.53-0.72c0.92-1.78-0.15-4.04-2.27-5.46 + c-2.3-1.54-4.88-1.58-5.7,0.35C204.13,625,205.19,627.58,207.35,628.99z"/> + <path class="st107" d="M227.45,643.33c2.11,1.58,4.5,1.34,5.46-0.5c0.95-1.83,0.02-4.43-2.03-6.02 + c-2.22-1.72-4.82-1.74-5.68,0.26C224.37,638.98,225.35,641.75,227.45,643.33z"/> + <path class="st107" d="M247.13,659.15c2.07,1.65,4.4,1.42,5.3-0.48c0.9-1.89,0-4.72-2.03-6.45c-2.18-1.86-4.78-1.69-5.58,0.41 + C244.07,654.65,245.06,657.49,247.13,659.15z"/> + <path class="st107" d="M266.11,675.85c2.01,1.85,4.32,1.85,5.29,0.06c0.97-1.79,0.2-4.73-1.72-6.63 + c-2.08-2.05-4.68-2.14-5.59-0.14C263.23,671.02,264.13,674.03,266.11,675.85z"/> + <path class="st107" d="M284.8,693.45c1.98,1.99,4.22,2.18,5.24,0.49c1.09-1.81,0.22-4.98-1.91-7.03 + c-1.96-1.89-4.27-2-5.18-0.22C282.06,688.46,282.89,691.53,284.8,693.45z"/> + <path class="st107" d="M303.43,711.9c1.95,1.98,4.18,2.22,5.11,0.56c0.93-1.65,0.17-4.63-1.69-6.67 + c-2.02-2.22-4.53-2.52-5.4-0.64C300.62,706.93,301.51,709.95,303.43,711.9z"/> + <path class="st107" d="M322.02,730.96c1.95,1.9,4.12,2.05,4.88,0.34c0.77-1.72-0.12-4.59-2.06-6.62 + c-2.06-2.17-4.48-2.35-5.16-0.39C319.04,726.18,320.04,729.04,322.02,730.96z"/> + <path class="st107" d="M353.01,752.19c1.87,2,3.99,2.35,4.79,0.76c0.78-1.57-0.1-4.52-1.92-6.48c-1.83-1.97-4.02-2.35-4.81-0.8 + C350.28,747.22,351.18,750.24,353.01,752.19z"/> + <path class="st107" d="M369.14,765.27c-0.87,1.39-0.08,4.27,1.72,6.35c1.79,2.07,4.01,2.64,4.86,1.22 + c0.86-1.44,0.13-4.25-1.68-6.35C372.26,764.42,370.01,763.87,369.14,765.27z"/> + <path class="st107" d="M388.97,791.2c1.81,2.03,4,2.59,4.82,1.19c0.83-1.43,0.06-4.2-1.77-6.27c-1.8-2.03-4.03-2.54-4.87-1.16 + C386.32,786.34,387.16,789.17,388.97,791.2z"/> + <path class="st107" d="M407.18,810.29c1.82,1.97,4.04,2.54,4.86,1.22c0.83-1.34,0.04-4.02-1.8-6.04 + c-1.81-1.98-4.07-2.51-4.91-1.19C404.49,805.59,405.34,808.31,407.18,810.29z"/> + <path class="st107" d="M-25.11,510.26c-0.64,1.13,0.81,2.91,3.13,3.81c2.39,0.92,4.79,0.71,5.43-0.44 + c0.63-1.13-0.8-2.83-3.11-3.74C-21.99,508.97-24.47,509.12-25.11,510.26z"/> + <path class="st107" d="M0.73,523.42c2.31,0.99,4.8,0.89,5.47-0.19c0.68-1.08-0.66-2.73-2.97-3.73 + c-2.29-0.99-4.78-0.97-5.47,0.09C-2.92,520.65-1.55,522.44,0.73,523.42z"/> + <path class="st107" d="M20.5,529.32c-0.69,1.01,0.64,2.79,2.92,3.82c2.28,1.03,4.78,0.99,5.45-0.04 + c0.69-1.05-0.61-2.66-2.93-3.71C23.67,528.35,21.19,528.3,20.5,529.32z"/> + <path class="st107" d="M43.1,539.32c-0.65,1,0.72,2.8,2.98,3.83c2.28,1.04,4.74,1,5.38-0.03c0.65-1.04-0.7-2.67-2.99-3.71 + C46.2,538.38,43.76,538.31,43.1,539.32z"/> + <path class="st107" d="M65.62,549.45c-0.64,1,0.74,2.81,2.99,3.85c2.29,1.05,4.71,1,5.34-0.04c0.63-1.04-0.73-2.67-3.01-3.71 + C68.68,548.52,66.27,548.44,65.62,549.45z"/> + <path class="st107" d="M91.07,563.52c2.3,1.05,4.68,0.96,5.3-0.11c0.62-1.06-0.78-2.71-3.04-3.73 + c-2.26-1.02-4.66-1.07-5.29-0.04C87.43,560.66,88.82,562.49,91.07,563.52z"/> + <path class="st107" d="M113.39,573.68c2.29,1.04,4.68,0.9,5.31-0.2c0.63-1.1-0.75-2.76-3.01-3.76c-2.26-1-4.65-1.02-5.29,0.04 + C109.78,570.8,111.15,572.67,113.39,573.68z"/> + <path class="st107" d="M135.48,583.67c2.22,1.06,4.72,0.92,5.43-0.21c0.73-1.15-0.52-2.78-2.79-3.82 + c-2.23-1.02-4.68-1.05-5.4,0.03C132,580.73,133.25,582.6,135.48,583.67z"/> + <path class="st107" d="M160.35,589.21c-2.22-0.99-4.69-0.95-5.44,0.2c-0.74,1.14,0.47,3.06,2.68,4.1 + c2.21,1.04,4.73,0.8,5.47-0.4C163.83,591.88,162.62,590.22,160.35,589.21z"/> + <path class="st107" d="M185,602.89c0.74-1.29-0.46-3.12-2.67-4.2c-2.18-1.06-4.61-0.97-5.34,0.28 + c-0.73,1.23,0.48,3.26,2.65,4.34C181.82,604.39,184.28,604.16,185,602.89z"/> + <path class="st107" d="M203.4,609.85c-2.18-1.18-4.43-1.12-5.07,0.22c-0.62,1.31,0.67,3.55,2.8,4.71 + c2.21,1.21,4.45,1.02,5.09-0.36C206.86,613.07,205.55,611.01,203.4,609.85z"/> + <path class="st107" d="M221.45,627.76c2.03,1.46,4.4,1.51,5.16,0.21c0.78-1.33-0.27-3.46-2.34-4.92 + c-2.03-1.43-4.37-1.64-5.14-0.37C218.37,623.94,219.42,626.3,221.45,627.76z"/> + <path class="st107" d="M241.56,642.56c2.04,1.57,4.27,1.63,4.99,0.23c0.71-1.38-0.41-3.74-2.41-5.26 + c-2.01-1.52-4.25-1.74-4.96-0.39C238.48,638.48,239.57,641.03,241.56,642.56z"/> + <path class="st107" d="M258.81,652.77c-0.82,1.28,0.07,3.9,1.98,5.68c1.9,1.77,4.23,2.06,5.05,0.72 + c0.83-1.36-0.07-3.74-2.02-5.5C261.92,651.94,259.63,651.49,258.81,652.77z"/> + <path class="st107" d="M277.77,669.98c-0.67,1.46,0.39,4.33,2.32,6.03c2,1.76,4.12,1.83,4.8,0.3c0.68-1.5-0.42-4.12-2.37-5.82 + C280.55,668.76,278.44,668.49,277.77,669.98z"/> + <path class="st107" d="M301.37,688.71c-1.87-1.87-4.06-2.32-4.84-0.9c-0.77,1.41,0.07,4.47,1.92,6.37 + c1.88,1.92,4.15,2.03,4.94,0.55C304.18,693.26,303.24,690.58,301.37,688.71z"/> + <path class="st107" d="M316.89,713.27c1.93,1.93,4.1,1.94,4.85,0.34c0.73-1.55-0.27-4.38-2.14-6.23 + c-1.89-1.88-4.01-2.25-4.74-0.72C314.15,708.19,315.03,711.41,316.89,713.27z"/> + <path class="st107" d="M337.74,726.69c-1.89-1.92-3.97-2.31-4.74-0.63c-0.76,1.65,0.2,4.74,2.05,6.62 + c1.92,1.95,4.01,2.14,4.78,0.44C340.59,731.46,339.6,728.59,337.74,726.69z"/> + <path class="st107" d="M345.86,728.91c-0.73,1.09-0.01,3.69,1.64,5.67c1.79,2.14,4.09,2.91,4.9,1.75 + c0.74-1.06-0.08-3.57-1.75-5.53C348.77,728.59,346.67,727.71,345.86,728.91z"/> + <path class="st107" d="M368.55,750.15c-1.9-2.15-4.01-2.88-4.72-1.52c-0.65,1.24,0.18,3.92,1.87,5.87 + c1.83,2.1,4.12,2.7,4.82,1.37C371.18,754.63,370.28,752.11,368.55,750.15z"/> + <path class="st107" d="M386.37,769.45c-1.8-1.9-3.72-2.48-4.46-1.23c-0.79,1.32,0.14,4.29,2.05,6.28 + c1.75,1.83,3.83,2.28,4.57,1.08C389.32,774.27,388.3,771.49,386.37,769.45z"/> + <path class="st107" d="M404.69,789.01c-1.93-2.09-4.04-2.66-4.76-1.15c-0.65,1.38,0.19,4.09,1.93,5.98 + c1.87,2.03,4.19,2.44,4.86,0.98C407.37,793.43,406.46,790.93,404.69,789.01z"/> + <path class="st107" d="M420.03,812.83c1.87,2,4.21,2.49,4.97,1.04c0.71-1.36-0.17-3.91-1.92-5.79 + c-1.93-2.06-4.11-2.64-4.89-1.15C417.48,808.28,418.31,810.98,420.03,812.83z"/> + <path class="st107" d="M-33.13,500.29c-0.72,0.95,0.41,2.54,2.52,3.51c2.29,1.05,4.98,1.09,5.77,0.12 + c0.72-0.88-0.48-2.46-2.59-3.46C-29.82,499.33-32.33,499.25-33.13,500.29z"/> + <path class="st107" d="M-10.46,509.86c-0.57,0.93,0.72,2.5,2.88,3.46c2.33,1.04,4.94,1.07,5.53,0.11 + c0.6-0.98-0.94-2.6-3.39-3.6C-7.67,508.91-9.88,508.91-10.46,509.86z"/> + <path class="st107" d="M12.29,519.59c-0.67,0.82,0.49,2.38,2.58,3.4c2.27,1.11,4.9,1.3,5.64,0.44 + c0.68-0.77-0.56-2.29-2.66-3.33C15.47,518.93,13.02,518.68,12.29,519.59z"/> + <path class="st107" d="M39.98,530.07c-2.24-1.03-4.4-1.25-5.1-0.46c-0.75,0.84,0.61,2.49,2.97,3.55 + c2.34,1.05,4.85,1.13,5.3,0.22C43.57,532.51,42.19,531.09,39.98,530.07z"/> + <path class="st107" d="M57.26,539.94c-0.43,0.86,0.94,2.38,3.12,3.36c2.34,1.06,4.83,1.15,5.25,0.26 + c0.44-0.92-1.21-2.45-3.64-3.47C59.77,539.16,57.7,539.07,57.26,539.94z"/> + <path class="st107" d="M84.93,550.52c-2.38-1.11-4.71-1.34-5.22-0.44c-0.46,0.82,0.88,2.34,3.03,3.34 + c2.31,1.07,4.82,1.2,5.3,0.33C88.48,552.93,87.1,551.53,84.93,550.52z"/> + <path class="st107" d="M107.06,560.46c-2.22-0.97-4.34-1.16-4.91-0.36c-0.61,0.84,0.88,2.51,3.22,3.52 + c2.16,0.93,4.43,1.01,5,0.25C110.98,563.04,109.44,561.5,107.06,560.46z"/> + <path class="st107" d="M129.7,570.41c-2.37-1.07-4.71-1.26-5.24-0.35c-0.48,0.84,0.84,2.37,2.96,3.34 + c2.29,1.05,4.82,1.1,5.32,0.21C133.23,572.78,131.86,571.39,129.7,570.41z"/> + <path class="st107" d="M146.77,579.76c-0.44,0.91,0.91,2.44,3.06,3.36c2.32,0.99,4.81,0.92,5.25-0.04 + c0.45-0.99-1.18-2.47-3.61-3.4C149.27,578.84,147.21,578.84,146.77,579.76z"/> + <path class="st107" d="M174.08,588.88c-2.22-0.85-4.35-0.89-4.96,0.03c-0.65,0.97,0.78,2.68,3.11,3.59 + c2.15,0.84,4.45,0.73,5.06-0.16C177.95,591.37,176.46,589.79,174.08,588.88z"/> + <path class="st107" d="M196.06,599.15c-2.26-1.23-4.54-1.41-5.1-0.34c-0.51,0.97,0.71,2.7,2.74,3.81 + c2.19,1.19,4.65,1.28,5.18,0.25C199.39,601.9,198.13,600.27,196.06,599.15z"/> + <path class="st107" d="M214.57,614.71c2.1,1.4,4.53,1.67,5.14,0.65c0.57-0.96-0.61-2.76-2.58-4.06 + c-2.18-1.43-4.44-1.8-5.06-0.74C211.5,611.52,212.63,613.42,214.57,614.71z"/> + <path class="st107" d="M235.11,628.67c2.09,1.5,4.41,1.76,4.87,0.62c0.44-1.1-0.74-2.97-2.72-4.41 + c-2.15-1.55-4.27-1.9-4.78-0.71C232,625.24,233.16,627.28,235.11,628.67z"/> + <path class="st107" d="M254.84,643.93c2.04,1.65,4.32,2,4.8,0.82c0.47-1.13-0.67-3.13-2.6-4.7c-2.09-1.7-4.18-2.15-4.71-0.93 + C251.85,640.24,252.95,642.4,254.84,643.93z"/> + <path class="st107" d="M271.78,655.2c-0.64,1,0.27,3.28,2.04,4.99c1.92,1.84,4.25,2.47,4.95,1.4c0.7-1.06-0.48-3.45-2.51-5.22 + C274.36,654.72,272.43,654.18,271.78,655.2z"/> + <path class="st107" d="M290.67,672.59c-0.59,1.09,0.35,3.49,2.11,5.26c1.9,1.91,4.2,2.51,4.83,1.35 + c0.65-1.18-0.54-3.64-2.57-5.5C293.19,672.01,291.28,671.48,290.67,672.59z"/> + <path class="st107" d="M309.28,690.79c-0.61,1.12,0.29,3.62,2.02,5.46c1.87,1.99,4.15,2.63,4.81,1.43 + c0.67-1.21-0.48-3.77-2.48-5.7C311.8,690.21,309.9,689.65,309.28,690.79z"/> + <path class="st107" d="M329.57,715.29c1.85,2.05,4.13,2.7,4.8,1.47c0.63-1.15-0.3-3.58-2.04-5.49 + c-1.92-2.1-4.02-2.87-4.71-1.61C326.99,710.81,327.86,713.39,329.57,715.29z"/> + <path class="st107" d="M362.42,734.86c-1.68-1.78-3.69-2.64-4.31-1.75c-0.67,0.97,0.41,3.67,2.35,5.66 + c1.85,1.89,3.64,2.41,4.18,1.31C365.16,739.01,364.15,736.7,362.42,734.86z"/> + <path class="st107" d="M376.2,752.61c-0.59,1.01,0.34,3.5,2.08,5.41c1.78,1.96,3.71,2.65,4.38,1.66 + c0.73-1.06-0.3-3.59-2.19-5.54C378.76,752.38,376.77,751.62,376.2,752.61z"/> + <path class="st107" d="M396.56,777.63c1.83,1.9,3.7,2.41,4.32,1.29c0.62-1.11-0.29-3.39-2.03-5.27 + c-1.8-1.95-4.03-2.75-4.57-1.53C393.78,773.26,394.79,775.79,396.56,777.63z"/> + <path class="st107" d="M416.93,792.38c-1.74-1.7-3.76-2.32-4.36-1.23c-0.66,1.2,0.46,3.94,2.46,5.83 + c1.87,1.76,3.7,2.04,4.23,0.77C419.78,796.51,418.7,794.11,416.93,792.38z"/> + <path class="st107" d="M431,809.78c-0.64,1.13,0.28,3.64,2.06,5.44c1.83,1.84,3.83,2.32,4.57,1.2 + c0.79-1.21-0.24-3.74-2.18-5.56C433.7,809.22,431.63,808.67,431,809.78z"/> + <path class="st107" d="M-15.52,503.79c2.28,0.95,4.41,0.97,4.96,0.08c0.55-0.88-0.73-2.33-2.88-3.32 + c-2.24-1.03-4.84-1.1-5.3-0.12C-19.17,501.35-17.73,502.87-15.52,503.79z"/> + <path class="st107" d="M3.82,510.39c-0.44,0.84,0.98,2.34,3.17,3.3c2.25,0.99,4.39,1.1,4.95,0.3c0.6-0.86-0.94-2.43-3.29-3.42 + C6.47,509.66,4.26,509.56,3.82,510.39z"/> + <path class="st107" d="M31.47,521.11c-2.04-0.98-4.42-1.31-5.08-0.66c-0.66,0.66,0.56,2.12,2.68,3.17 + c2.39,1.18,4.75,1.43,5.31,0.62C34.9,523.5,33.62,522.14,31.47,521.11z"/> + <path class="st107" d="M48.77,530.81c-0.57,0.64,0.74,2.09,2.87,3.12c2.21,1.07,4.42,1.37,5.06,0.75c0.7-0.68-0.69-2.13-3-3.21 + C51.66,530.51,49.34,530.18,48.77,530.81z"/> + <path class="st107" d="M339.84,713.97c-0.44,1.06,0.63,3.48,2.41,5.31c1.97,2.03,3.89,2.54,4.3,1.24 + c0.36-1.16-0.86-3.52-2.63-5.22C342.13,713.58,340.27,712.93,339.84,713.97z"/> + <path class="st107" d="M323.73,699.91c1.8,1.92,3.72,2.7,4.39,1.87c0.72-0.9-0.33-3.26-2.23-5.18 + c-1.71-1.72-3.71-2.56-4.28-1.73C321.02,695.73,321.97,698.03,323.73,699.91z"/> + <path class="st107" d="M303.02,676.59c-0.45,0.94,0.64,3.2,2.44,4.95c1.86,1.8,3.72,2.43,4.28,1.53 + c0.6-0.97-0.61-3.29-2.56-5.08C305.36,676.35,303.46,675.67,303.02,676.59z"/> + <path class="st107" d="M284.24,658.86c-0.57,0.78,0.45,2.91,2.26,4.64c1.86,1.78,3.81,2.51,4.45,1.74 + c0.7-0.83-0.41-3-2.37-4.78C286.83,658.88,284.8,658.09,284.24,658.86z"/> + <path class="st107" d="M264.99,642.28c-0.45,0.84,0.7,2.89,2.57,4.48c1.92,1.62,3.83,2.19,4.39,1.38 + c0.6-0.88-0.67-2.99-2.69-4.6C267.4,642.06,265.44,641.45,264.99,642.28z"/> + <path class="st107" d="M245.4,626.67c-0.6,0.68,0.46,2.57,2.33,4.09c1.94,1.58,3.97,2.23,4.65,1.55 + c0.74-0.73-0.39-2.64-2.44-4.22C248.13,626.69,245.99,626,245.4,626.67z"/> + <path class="st107" d="M225.21,612.55c-0.59,0.67,0.51,2.43,2.44,3.8c2,1.43,4.06,1.98,4.74,1.32c0.73-0.72-0.45-2.5-2.55-3.93 + C227.98,612.48,225.79,611.89,225.21,612.55z"/> + <path class="st107" d="M204.33,600.12c-0.39,0.78,0.95,2.41,2.99,3.57c2.1,1.19,4.08,1.47,4.59,0.7 + c0.54-0.82-0.92-2.5-3.12-3.67C206.75,599.65,204.71,599.35,204.33,600.12z"/> + <path class="st107" d="M182.89,589.27c-0.49,0.71,0.82,2.16,2.91,3.18c2.14,1.04,4.26,1.27,4.84,0.57 + c0.63-0.76-0.79-2.25-3.03-3.28C185.57,588.81,183.37,588.57,182.89,589.27z"/> + <path class="st107" d="M160.57,580.33c-0.4,0.71,1.03,2.07,3.2,2.95c2.22,0.89,4.34,0.97,4.85,0.26 + c0.55-0.76-1.03-2.1-3.36-2.96C163.12,579.79,160.96,579.64,160.57,580.33z"/> + <path class="st107" d="M138.18,571.08c-0.37,0.68,1.09,2.06,3.25,2.96c2.23,0.93,4.32,1.07,4.8,0.39 + c0.52-0.73-1.09-2.08-3.41-2.99C140.68,570.61,138.55,570.41,138.18,571.08z"/> + <path class="st107" d="M115.85,561.36c-0.47,0.62,0.9,2,3.06,2.97c2.21,1,4.36,1.24,4.92,0.62c0.61-0.67-0.89-2.03-3.2-3.02 + C118.55,561.05,116.32,560.74,115.85,561.36z"/> + <path class="st107" d="M98.22,551.97c-2.1-0.92-4.3-1.21-4.74-0.58c-0.48,0.7,1.16,2.22,3.57,3.22 + c2.25,0.93,4.2,1.04,4.52,0.31C101.9,554.21,100.36,552.9,98.22,551.97z"/> + <path class="st107" d="M74.51,544.39c2.26,0.99,4.27,1.15,4.68,0.44c0.4-0.7-1.01-2.01-3.14-3c-2.24-1.04-4.67-1.34-4.98-0.55 + C70.77,542.01,72.31,543.43,74.51,544.39z"/> + <path class="st107" d="M445.92,818.52c1.79,1.61,3.87,2.09,4.37,1.09c0.51-1.01-0.63-3.2-2.46-4.86 + c-1.86-1.69-3.68-2.26-4.23-1.21C443.08,814.56,444.13,816.91,445.92,818.52z"/> + <path class="st107" d="M424.96,795.46c-0.49,0.99,0.58,3.37,2.35,5.04c1.75,1.65,3.8,2.21,4.25,1.24 + c0.47-1-0.67-3.21-2.48-4.93C427.24,795.05,425.47,794.43,424.96,795.46z"/> + <path class="st107" d="M406.6,776.67c-0.57,0.87,0.36,3.14,2.1,4.95c1.69,1.76,3.76,2.54,4.32,1.72 + c0.57-0.84-0.47-3.05-2.23-4.86C409.01,776.63,407.17,775.79,406.6,776.67z"/> + <path class="st107" d="M388.33,757.6c-0.55,0.83,0.38,3.08,2.11,4.93c1.68,1.79,3.73,2.64,4.27,1.85c0.55-0.8-0.49-3-2.23-4.85 + C390.71,757.65,388.89,756.76,388.33,757.6z"/> + <path class="st107" d="M374.02,740.14c-1.81-1.84-3.5-2.61-3.95-1.68c-0.43,0.89,0.68,3.24,2.41,5 + c1.72,1.74,3.67,2.47,4.07,1.6C376.96,744.16,375.79,741.95,374.02,740.14z"/> + <path class="st107" d="M355.94,721.15c-1.78-1.86-3.56-2.77-4.05-1.98c-0.49,0.78,0.53,3.01,2.26,4.82 + c1.69,1.78,3.7,2.66,4.17,1.91C358.8,725.15,357.68,722.98,355.94,721.15z"/> + <path class="st107" d="M-24.05,494.23c2.07,0.96,4.49,1.11,5.12,0.36c0.63-0.76-0.65-2.27-2.77-3.29 + c-2.16-1.04-4.37-1.21-5.03-0.37C-27.37,491.76-26.18,493.25-24.05,494.23z"/> + <path class="st107" d="M0.45,501.7c-2.17-1.03-4.3-1.25-4.84-0.46c-0.53,0.77,0.8,2.25,2.93,3.22 + c2.08,0.95,4.45,1.15,4.95,0.44C3.99,504.18,2.58,502.71,0.45,501.7z"/> + <path class="st107" d="M22.73,512.37c-2.16-1.05-4.27-1.36-4.79-0.66c-0.52,0.69,0.8,2.1,2.93,3.1 + c2.07,0.97,4.41,1.26,4.9,0.63C26.26,514.81,24.85,513.4,22.73,512.37z"/> + <path class="st107" d="M43.19,525.29c2.06,0.98,4.38,1.32,4.85,0.76c0.47-0.57-0.96-1.92-3.08-2.95 + c-2.16-1.05-4.24-1.42-4.74-0.8C39.73,522.91,41.06,524.28,43.19,525.29z"/> + <path class="st107" d="M62.44,532.94c-0.34,0.62,1.19,2,3.3,2.94c2.1,0.93,4.29,1.22,4.59,0.64c0.3-0.6-1.26-1.9-3.41-2.89 + C64.73,532.62,62.8,532.3,62.44,532.94z"/> + <path class="st107" d="M84.73,543.33c-0.39,0.54,1.06,1.86,3.17,2.81c2.08,0.94,4.33,1.29,4.7,0.78 + c0.37-0.52-1.16-1.77-3.29-2.75C87.14,543.17,85.13,542.78,84.73,543.33z"/> + <path class="st107" d="M107.01,553.57c-0.3,0.55,1.25,1.85,3.37,2.75c2.11,0.89,4.27,1.17,4.53,0.65 + c0.27-0.54-1.33-1.74-3.48-2.68C109.22,553.34,107.32,553,107.01,553.57z"/> + <path class="st107" d="M129.42,563.32c-0.5,0.47,0.76,1.63,2.89,2.59c2.05,0.92,4.35,1.29,4.86,0.86 + c0.51-0.43-0.89-1.56-3.01-2.5C131.99,563.3,129.92,562.86,129.42,563.32z"/> + <path class="st107" d="M156.56,573.54c-2.19-0.91-4.26-1.31-4.76-0.83c-0.5,0.48,0.76,1.62,2.9,2.53 + c2.06,0.88,4.36,1.19,4.88,0.73C160.09,575.52,158.68,574.43,156.56,573.54z"/> + <path class="st107" d="M178.81,582.13c-2.19-0.81-4.22-1.09-4.62-0.54c-0.39,0.54,1.04,1.73,3.17,2.53 + c2.09,0.78,4.33,1.06,4.7,0.54C182.45,584.13,180.96,582.92,178.81,582.13z"/> + <path class="st107" d="M196.14,591.23c-0.38,0.56,1,1.95,3.03,2.98c2,1.02,4.16,1.42,4.52,0.88c0.37-0.55-1.09-1.9-3.14-2.95 + C198.47,591.08,196.52,590.65,196.14,591.23z"/> + <path class="st107" d="M221.85,604.18c-2.02-1.28-3.98-1.91-4.49-1.39c-0.51,0.52,0.62,1.95,2.6,3.23 + c1.9,1.22,4.06,1.84,4.58,1.35C225.06,606.89,223.81,605.42,221.85,604.18z"/> + <path class="st107" d="M240.6,619.75c1.88,1.32,3.95,1.96,4.33,1.38c0.39-0.59-0.95-2.23-2.88-3.59 + c-1.97-1.38-3.82-2.03-4.23-1.41C237.43,616.72,238.69,618.41,240.6,619.75z"/> + <path class="st107" d="M260.3,634.62c1.81,1.47,3.88,2.27,4.37,1.72c0.49-0.54-0.7-2.27-2.57-3.78 + c-1.9-1.54-3.78-2.34-4.27-1.76C257.34,631.37,258.43,633.1,260.3,634.62z"/> + <path class="st107" d="M281.4,648.59c-1.87-1.63-3.68-2.44-4.13-1.78c-0.43,0.64,0.71,2.55,2.53,4.14 + c1.78,1.55,3.82,2.36,4.24,1.74C284.47,652.05,283.23,650.18,281.4,648.59z"/> + <path class="st107" d="M296.33,663.85c-0.41,0.7,0.74,2.76,2.53,4.39c1.78,1.63,3.75,2.43,4.14,1.74 + c0.4-0.7-0.83-2.67-2.64-4.34C298.51,663.95,296.75,663.13,296.33,663.85z"/> + <path class="st107" d="M315.15,681.63c-0.56,0.62,0.35,2.58,2.11,4.4c1.69,1.75,3.71,2.74,4.29,2.16 + c0.57-0.57-0.46-2.56-2.21-4.35C317.53,682.01,315.71,681.01,315.15,681.63z"/> + <path class="st107" d="M333.57,700.21c-0.48,0.74,0.56,2.91,2.3,4.7c1.7,1.75,3.71,2.64,4.17,1.94 + c0.47-0.72-0.67-2.84-2.42-4.64C335.83,700.37,334.06,699.46,333.57,700.21z"/> + <path class="st107" d="M360.25,715.84c-1.58-1.64-3.31-2.86-3.76-2.59c-0.49,0.3,0.62,2.19,2.4,4 + c1.64,1.67,3.28,2.67,3.65,2.29C362.89,719.15,361.84,717.5,360.25,715.84z"/> + <path class="st107" d="M340.24,698.3c1.61,1.67,3.34,2.81,3.79,2.55c0.46-0.26-0.42-1.69-2.04-3.39 + c-1.67-1.75-3.62-3.14-4.01-2.8C337.61,694.97,338.61,696.61,340.24,698.3z"/> + <path class="st107" d="M323,678.85c-1.65-1.57-3.31-2.68-3.65-2.38c-0.38,0.32,0.9,2.2,2.7,3.88c1.69,1.58,3.24,2.48,3.51,2.08 + C325.82,682.04,324.64,680.42,323,678.85z"/> + <path class="st107" d="M300.44,658.94c-0.24,0.36,0.94,1.96,2.62,3.5c1.69,1.54,3.35,2.53,3.68,2.24 + c0.36-0.32-0.99-2.04-2.79-3.63C302.25,659.53,300.69,658.58,300.44,658.94z"/> + <path class="st107" d="M283.97,645.51c1.72,1.46,3.39,2.4,3.71,2.12c0.31-0.27-0.83-1.67-2.51-3.12 + c-1.81-1.56-3.68-2.69-3.92-2.32C281.03,642.53,282.25,644.05,283.97,645.51z"/> + <path class="st107" d="M261.67,626.46c-0.22,0.31,1.04,1.72,2.79,3.08c1.76,1.37,3.45,2.25,3.77,2c0.34-0.27-1.1-1.8-2.97-3.21 + C263.49,627,261.89,626.15,261.67,626.46z"/> + <path class="st107" d="M244.44,614.73c1.78,1.25,3.55,2.09,3.88,1.88c0.34-0.21-0.82-1.37-2.58-2.62 + c-1.86-1.32-3.86-2.34-4.12-2.05C241.38,612.19,242.64,613.47,244.44,614.73z"/> + <path class="st107" d="M224.9,600.45c-1.84-1.1-3.59-1.84-3.86-1.62c-0.29,0.25,1.26,1.57,3.25,2.73 + c1.89,1.1,3.48,1.71,3.67,1.41C228.13,602.69,226.71,601.53,224.9,600.45z"/> + <path class="st107" d="M199.81,587.34c-0.26,0.22,1.07,1.21,2.97,2.19c2.06,1.07,3.98,1.7,4.16,1.39 + c0.16-0.27-1.32-1.29-3.19-2.23C201.86,587.75,200.07,587.13,199.81,587.34z"/> + <path class="st107" d="M177.84,577.77c-0.26,0.22,1.2,1.01,3.15,1.77c2.1,0.82,4.1,1.37,4.28,1.09 + c0.15-0.25-1.38-1.12-3.32-1.9C179.99,577.95,178.1,577.56,177.84,577.77z"/> + <path class="st107" d="M159.43,570.17c-1.99-0.78-3.82-1.29-4.07-1.07c-0.27,0.24,1.46,1.26,3.61,2.08 + c2.05,0.78,3.72,1.12,3.86,0.85C162.97,571.77,161.39,570.94,159.43,570.17z"/> + <path class="st107" d="M136.02,561.65c1.95,0.87,3.94,1.42,4.35,1.25c0.42-0.17-0.74-0.92-2.7-1.81 + c-2.02-0.92-4.26-1.64-4.61-1.42C132.74,559.87,134.04,560.77,136.02,561.65z"/> + <path class="st107" d="M115.1,550.92c-1.93-0.9-3.86-1.52-4.22-1.31c-0.4,0.24,1.14,1.35,3.28,2.31c2,0.9,3.79,1.36,4.04,1.1 + C118.46,552.76,117.04,551.83,115.1,550.92z"/> + <path class="st107" d="M92.01,541.51c1.99,0.94,3.8,1.41,4.09,1.11c0.28-0.29-1.1-1.3-3.03-2.25 + c-2.09-1.03-4.12-1.64-4.32-1.25C88.56,539.47,90.06,540.59,92.01,541.51z"/> + <path class="st107" d="M66.82,528.09c-0.43,0.31,0.76,1.39,2.71,2.4c1.91,1,3.95,1.59,4.46,1.34c0.56-0.28-0.76-1.39-2.87-2.47 + C69.2,528.38,67.24,527.78,66.82,528.09z"/> + <path class="st107" d="M47.79,519.56c1.95,0.99,3.9,1.48,4.32,1.1c0.41-0.37-0.8-1.49-2.69-2.52c-2.01-1.1-4.22-1.7-4.58-1.22 + C44.51,517.35,45.84,518.56,47.79,519.56z"/> + <path class="st107" d="M22.97,505.52c-0.42,0.5,0.79,1.74,2.74,2.77c1.93,1.02,3.95,1.49,4.46,1.06 + c0.56-0.46-0.81-1.8-2.89-2.88C25.35,505.47,23.39,505.03,22.97,505.52z"/> + <path class="st107" d="M1.09,494.15c-0.46,0.59,0.74,1.91,2.69,2.93c2.1,1.1,4.23,1.45,4.61,0.77 + c0.34-0.61-1.02-1.95-2.93-2.93C3.53,493.92,1.54,493.56,1.09,494.15z"/> + <path class="st107" d="M-16.32,483.45c-1.94-0.98-3.98-1.24-4.48-0.56c-0.55,0.74,0.89,2.32,3.03,3.29 + c2.02,0.92,3.88,1.06,4.28,0.35C-13.1,485.83-14.41,484.41-16.32,483.45z"/> + <path class="st107" d="M470.49,826.34c1.7,1.45,3.54,2.13,4.03,1.56c0.49-0.56-0.48-2.15-2.16-3.62 + c-1.77-1.55-3.82-2.46-4.25-1.8C467.71,823.11,468.77,824.88,470.49,826.34z"/> + <path class="st107" d="M452.84,807.36c-1.69-1.49-3.42-2.32-3.83-1.77c-0.45,0.61,0.8,2.67,2.64,4.24 + c1.74,1.48,3.36,2.05,3.7,1.39C455.68,810.58,454.51,808.83,452.84,807.36z"/> + <path class="st107" d="M430.17,787.93c-0.36,0.55,0.69,2.39,2.35,3.99c1.65,1.6,3.41,2.45,3.86,1.96 + c0.49-0.54-0.71-2.45-2.51-4.1C432.19,788.24,430.54,787.38,430.17,787.93z"/> + <path class="st107" d="M411.58,769.68c-0.32,0.55,0.75,2.41,2.4,4.04c1.65,1.64,3.35,2.53,3.76,2.05 + c0.45-0.52-0.8-2.49-2.57-4.17C413.49,770.03,411.9,769.14,411.58,769.68z"/> + <path class="st107" d="M396.86,753.22c-1.64-1.64-3.29-2.69-3.68-2.26c-0.42,0.47,0.8,2.55,2.57,4.29 + c1.67,1.63,3.24,2.44,3.55,1.9C399.6,756.62,398.47,754.84,396.86,753.22z"/> + <path class="st107" d="M378.63,734.62c-1.59-1.65-3.31-2.85-3.76-2.54c-0.5,0.34,0.6,2.28,2.38,4.1 + c1.64,1.67,3.28,2.64,3.65,2.22C381.26,737.98,380.22,736.28,378.63,734.62z"/> + <path class="st107" d="M363.42,725.23c-0.43,0.6,0.73,2.7,2.59,4.59c1.68,1.7,3.33,2.55,3.73,1.97 + c0.43-0.62-0.76-2.61-2.61-4.48C365.47,725.64,363.81,724.68,363.42,725.23z"/> + <path class="st107" d="M349.05,708.68c-1.81-1.87-3.65-2.98-3.98-2.34c-0.31,0.6,0.73,2.45,2.39,4.19 + c1.82,1.9,3.65,2.89,4,2.24C351.78,712.17,350.71,710.39,349.05,708.68z"/> + <path class="st107" d="M326.66,687.67c-0.45,0.4,0.51,2.17,2.14,3.88c1.84,1.92,3.69,3.03,4.19,2.57 + c0.45-0.42-0.51-2.08-2.15-3.78C329.02,688.44,327.15,687.23,326.66,687.67z"/> + <path class="st107" d="M311.93,671.96c-1.85-1.77-3.7-2.85-4.01-2.28c-0.28,0.53,0.8,2.26,2.51,3.91 + c1.86,1.8,3.69,2.77,4.02,2.19C314.75,675.25,313.63,673.58,311.93,671.96z"/> + <path class="st107" d="M293.08,654.62c-1.88-1.71-3.75-2.77-4.1-2.27c-0.32,0.46,0.77,2.09,2.49,3.67 + c1.89,1.73,3.76,2.7,4.11,2.19C295.91,657.73,294.81,656.18,293.08,654.62z"/> + <path class="st107" d="M273.5,637.84c-1.76-1.42-3.47-2.28-3.83-1.9c-0.39,0.42,0.9,2.13,2.88,3.73 + c1.78,1.45,3.47,2.23,3.83,1.82C276.77,641.05,275.46,639.42,273.5,637.84z"/> + <path class="st107" d="M253.79,622.43c-1.8-1.31-3.53-2.1-3.88-1.73c-0.38,0.4,0.96,1.99,2.98,3.47 + c1.82,1.33,3.54,2.05,3.88,1.67C257.15,625.41,255.8,623.89,253.79,622.43z"/> + <path class="st107" d="M232.69,609.93c1.87,1.21,3.62,1.86,3.98,1.51c0.39-0.38-1-1.78-3.05-3.1c-1.85-1.19-3.62-1.9-3.99-1.56 + C229.24,607.14,230.63,608.59,232.69,609.93z"/> + <path class="st107" d="M211.76,597.13c2.09,1.18,4.06,1.78,4.3,1.33c0.22-0.41-1.12-1.57-3.03-2.64 + c-2.07-1.17-4.07-1.82-4.3-1.38C208.52,594.85,209.84,596.04,211.76,597.13z"/> + <path class="st107" d="M191.47,584.8c-1.96-0.9-3.85-1.39-4.23-1.08c-0.42,0.33,1.07,1.47,3.25,2.47 + c2,0.91,3.84,1.36,4.22,1.04C195.13,586.9,193.64,585.79,191.47,584.8z"/> + <path class="st107" d="M164.85,574.99c-0.33,0.36,1.25,1.42,3.54,2.26c2.05,0.76,3.93,1.04,4.23,0.7 + c0.33-0.37-1.29-1.31-3.55-2.15C167.04,575.05,165.15,574.66,164.85,574.99z"/> + <path class="st107" d="M147.04,567.03c-2.21-0.93-4.31-1.46-4.61-1.09c-0.27,0.34,1.1,1.34,3.12,2.2 + c2.23,0.94,4.33,1.36,4.62,0.99C150.45,568.77,149.06,567.88,147.04,567.03z"/> + <path class="st107" d="M124.72,557.45c-2.2-0.99-4.3-1.56-4.61-1.17c-0.28,0.35,1.08,1.39,3.09,2.3c2.22,1,4.31,1.46,4.62,1.08 + C128.1,559.3,126.73,558.36,124.72,557.45z"/> + <path class="st107" d="M101.3,548.71c2.03,0.91,3.91,1.32,4.25,0.96c0.37-0.38-1.19-1.5-3.42-2.51c-2-0.91-3.9-1.4-4.24-1.04 + C97.51,546.5,99.04,547.69,101.3,548.71z"/> + <path class="st107" d="M75.68,535.63c-0.26,0.5,1.32,1.75,3.6,2.77c2.02,0.91,3.87,1.26,4.11,0.82c0.26-0.48-1.34-1.66-3.6-2.7 + C77.78,535.59,75.92,535.17,75.68,535.63z"/> + <path class="st107" d="M56.7,527.56c2.02,0.98,3.99,1.42,4.48,1.04c0.53-0.41-0.88-1.66-3.06-2.74 + c-1.99-0.99-3.97-1.49-4.49-1.1C53.08,525.17,54.5,526.49,56.7,527.56z"/> + <path class="st107" d="M31.47,513.91c-0.36,0.62,1.16,1.97,3.43,3.01c2.04,0.94,3.92,1.24,4.26,0.7 + c0.36-0.59-1.15-1.89-3.42-2.96C33.72,513.7,31.8,513.35,31.47,513.91z"/> + <path class="st107" d="M9.44,502.88c-0.55,0.54,0.59,1.84,2.55,2.86c2.2,1.15,4.41,1.58,5,1.01c0.54-0.52-0.59-1.76-2.54-2.81 + C12.29,502.77,10.06,502.28,9.44,502.88z"/> + <path class="st107" d="M-12.77,492.16c-0.42,0.8,1.07,2.25,3.37,3.26c2.04,0.89,3.99,1.03,4.37,0.33 + c0.41-0.77-1.08-2.19-3.35-3.23C-10.4,491.6-12.39,491.43-12.77,492.16z"/> + <path class="st107" d="M455.94,817.64c-0.53,0.67,0.38,2.57,2.07,4.17c1.89,1.79,3.87,2.53,4.47,1.77 + c0.54-0.7-0.4-2.45-2.1-4.03C458.5,817.8,456.53,816.9,455.94,817.64z"/> + <path class="st107" d="M439.51,804.72c1.72,1.61,3.48,2.28,3.99,1.6c0.55-0.72-0.59-2.72-2.47-4.46 + c-1.71-1.58-3.46-2.38-3.97-1.74C436.51,800.82,437.61,802.95,439.51,804.72z"/> + <path class="st107" d="M422.38,783.86c-1.68-1.64-3.42-2.53-3.92-1.95c-0.55,0.63,0.54,2.78,2.4,4.61 + c1.7,1.67,3.43,2.43,3.94,1.82C425.36,787.68,424.23,785.66,422.38,783.86z"/> + <path class="st107" d="M400.03,763.23c-0.47,0.57,0.45,2.5,2.09,4.26c1.82,1.96,3.7,2.94,4.22,2.29 + c0.47-0.6-0.47-2.39-2.11-4.14C402.43,763.73,400.55,762.61,400.03,763.23z"/> + <path class="st107" d="M381.75,744.22c-0.5,0.48,0.4,2.39,2.01,4.16c1.8,2,3.68,3.07,4.23,2.51c0.5-0.51-0.41-2.28-2.03-4.05 + C384.17,744.89,382.3,743.69,381.75,744.22z"/> + <path class="st107" d="M464.42,813.23c-1.79-1.5-3.39-2.32-3.68-1.79c-0.28,0.52,0.88,2.17,2.64,3.65 + c1.73,1.45,3.49,2.23,3.76,1.71C467.42,816.27,466.2,814.72,464.42,813.23z"/> + <path class="st107" d="M441.72,794.31c-0.32,0.44,0.8,2.11,2.52,3.68c1.69,1.54,3.44,2.45,3.74,2.01 + c0.3-0.45-0.88-2.05-2.59-3.61C443.63,794.79,442.05,793.86,441.72,794.31z"/> + <path class="st107" d="M422.97,776.48c-0.37,0.34,0.69,2,2.36,3.63c1.65,1.61,3.4,2.65,3.77,2.31 + c0.37-0.34-0.75-1.94-2.44-3.57C424.92,777.18,423.34,776.13,422.97,776.48z"/> + <path class="st107" d="M404.39,758.17c-0.38,0.28,0.66,1.93,2.32,3.61c1.64,1.66,3.36,2.78,3.74,2.5 + c0.38-0.28-0.72-1.89-2.39-3.55C406.34,758.99,404.78,757.88,404.39,758.17z"/> + <path class="st107" d="M385.89,739.6c-0.26,0.36,0.87,2.04,2.54,3.73c1.65,1.66,3.32,2.75,3.56,2.38 + c0.25-0.37-0.93-2-2.61-3.68C387.66,740.31,386.16,739.23,385.89,739.6z"/> + <path class="st107" d="M371.13,723.6c-1.73-1.76-3.27-2.94-3.64-2.74c-0.37,0.2,0.67,1.8,2.32,3.5c1.63,1.68,3.33,2.9,3.7,2.69 + C373.89,726.86,372.79,725.29,371.13,723.6z"/> + <path class="st107" d="M348.97,702.32c-0.22,0.32,0.95,1.95,2.64,3.61c1.66,1.64,3.29,2.76,3.49,2.44 + c0.2-0.33-1.01-1.91-2.7-3.58C350.67,703.09,349.19,702,348.97,702.32z"/> + <path class="st107" d="M333.74,686.45c-1.73-1.66-3.21-2.72-3.38-2.4c-0.17,0.32,1.05,1.91,2.75,3.54 + c1.67,1.6,3.29,2.7,3.44,2.37C336.71,689.64,335.46,688.1,333.74,686.45z"/> + <path class="st107" d="M-24.18,474.19c-2.01-1.14-3.95-1.49-4.56-0.82c-0.6,0.66,0.49,2.07,2.44,3.12 + c1.92,1.04,4.04,1.41,4.62,0.81C-21.11,476.7-22.25,475.28-24.18,474.19z"/> + <path class="st107" d="M-4.27,488.21c1.95,1.01,3.96,1.37,4.3,0.78c0.35-0.61-0.96-1.94-2.94-3.02 + c-2.01-1.09-3.85-1.44-4.24-0.78C-7.55,485.83-6.26,487.18-4.27,488.21z"/> + <path class="st107" d="M14.51,496.99c-0.46,0.47,0.75,1.74,2.7,2.8c1.92,1.05,3.95,1.57,4.39,1.14 + c0.44-0.43-0.82-1.69-2.76-2.79C16.84,497.02,14.98,496.51,14.51,496.99z"/> + <path class="st107" d="M38.93,511.49c1.93,1.04,3.92,1.63,4.32,1.29c0.41-0.34-0.89-1.51-2.84-2.6 + c-2.01-1.12-3.83-1.7-4.26-1.31C35.73,509.24,36.97,510.43,38.93,511.49z"/> + <path class="st107" d="M57.83,520.62c-0.34,0.32,0.97,1.44,2.94,2.47c1.93,1.01,3.89,1.63,4.21,1.34 + c0.32-0.29-1.04-1.39-3-2.44C59.96,520.9,58.18,520.3,57.83,520.62z"/> + <path class="st107" d="M79.58,532.11c-0.23,0.29,1.18,1.35,3.18,2.35c1.96,0.98,3.85,1.58,4.04,1.31 + c0.2-0.27-1.25-1.29-3.24-2.32C81.53,532.41,79.81,531.81,79.58,532.11z"/> + <path class="st107" d="M101.48,543.15c-0.31,0.18,1.05,1.14,3.03,2.1c1.95,0.95,3.88,1.6,4.18,1.44 + c0.3-0.15-1.12-1.08-3.1-2.06C103.55,543.63,101.79,542.97,101.48,543.15z"/> + <path class="st107" d="M126.57,555.61c1.96,0.9,3.9,1.53,4.18,1.42c0.29-0.11-1.15-0.95-3.14-1.87 + c-2.06-0.95-3.81-1.6-4.12-1.47C123.19,553.82,124.57,554.7,126.57,555.61z"/> + <path class="st107" d="M145.67,563.57c-0.32,0.08,1.04,0.88,3.05,1.73c1.98,0.84,3.93,1.45,4.25,1.38 + c0.32-0.07-1.12-0.82-3.12-1.67C147.76,564.12,145.99,563.49,145.67,563.57z"/> + <path class="st107" d="M172.02,573.93c-2.09-0.79-3.82-1.35-4.01-1.23c-0.19,0.12,1.28,0.87,3.32,1.65 + c2.01,0.76,3.91,1.27,4.09,1.16C175.59,575.39,174.04,574.69,172.02,573.93z"/> + <path class="st107" d="M190.36,581.44c-0.27,0.08,1.11,0.88,3.07,1.78c1.94,0.89,3.81,1.58,4.09,1.51 + c0.28-0.07-1.15-0.89-3.12-1.79C192.37,582,190.64,581.36,190.36,581.44z"/> + <path class="st107" d="M211.94,592c-0.27,0.08,1.05,1.02,2.95,2.08c1.88,1.05,3.7,1.86,3.98,1.79c0.28-0.08-1.1-1.02-3-2.08 + C213.9,592.69,212.22,591.92,211.94,592z"/> + <path class="st107" d="M232.85,604.27c-0.2,0.13,1.13,1.23,2.99,2.43c1.83,1.18,3.58,2.07,3.78,1.93 + c0.19-0.14-1.19-1.24-3.04-2.43C234.67,604.97,233.06,604.13,232.85,604.27z"/> + <path class="st107" d="M253.22,618c-0.29,0.09,0.94,1.27,2.74,2.6c1.77,1.31,3.53,2.33,3.82,2.24 + c0.29-0.09-0.98-1.27-2.79-2.59C255.13,618.87,253.52,617.91,253.22,618z"/> + <path class="st107" d="M276.61,635.32c-1.82-1.46-3.36-2.44-3.55-2.25c-0.19,0.19,1.08,1.52,2.85,2.95 + c1.75,1.41,3.43,2.44,3.61,2.24C279.7,638.05,278.39,636.74,276.61,635.32z"/> + <path class="st107" d="M296.24,651.8c-1.8-1.59-3.38-2.71-3.72-2.61c-0.34,0.09,0.78,1.44,2.5,2.96 + c1.69,1.5,3.42,2.68,3.77,2.59C299.13,654.66,297.95,653.31,296.24,651.8z"/> + <path class="st107" d="M314.32,669.64c1.69,1.56,3.33,2.65,3.49,2.38c0.17-0.28-1.08-1.75-2.82-3.34 + c-1.76-1.61-3.25-2.67-3.44-2.4C311.37,666.55,312.6,668.06,314.32,669.64z"/> + <path class="st107" d="M378.3,729c-0.25,0.18,0.95,1.77,2.62,3.44c1.56,1.55,2.95,2.59,3.26,2.49 + c0.34-0.11-0.75-1.55-2.39-3.19C380.2,730.14,378.55,728.82,378.3,729z"/> + <path class="st107" d="M399.19,750.75c1.7,1.72,3.25,2.84,3.54,2.62c0.28-0.21-0.87-1.71-2.52-3.33 + c-1.49-1.46-2.98-2.61-3.34-2.56C396.46,747.55,397.53,749.07,399.19,750.75z"/> + <path class="st107" d="M417.99,769.26c1.73,1.66,3.2,2.62,3.4,2.26c0.17-0.31-0.88-1.66-2.39-3.13c-1.6-1.55-3.3-2.8-3.59-2.58 + C415.12,766.03,416.3,767.64,417.99,769.26z"/> + <path class="st107" d="M436.83,787.2c1.74,1.59,3.22,2.44,3.38,2.02c0.14-0.37-0.96-1.74-2.5-3.16 + c-1.63-1.51-3.33-2.65-3.58-2.36C433.89,784.02,435.12,785.64,436.83,787.2z"/> + <path class="st107" d="M456.94,803.34c-1.62-1.44-3.42-2.59-3.78-2.35c-0.33,0.22,0.6,1.55,2.13,2.96 + c1.71,1.58,3.46,2.65,3.9,2.44C459.64,806.18,458.63,804.84,456.94,803.34z"/> + <path class="st107" d="M472.42,817.49c-0.32,0.33,0.9,1.86,2.67,3.28c1.65,1.32,3.15,2.07,3.53,1.8 + c0.41-0.28-0.7-1.64-2.42-3.05C474.52,818.15,472.73,817.16,472.42,817.49z"/> + <path class="st107" d="M-15.14,475.76c-0.57,0.54,0.58,1.93,2.52,3.05c1.82,1.04,3.56,1.47,4.15,1.03 + c0.64-0.48-0.35-1.8-2.19-2.96C-12.44,475.76-14.57,475.22-15.14,475.76z"/> + <path class="st107" d="M8.77,491.01c1.97,1.15,3.8,1.65,4.21,1.16c0.37-0.44-0.64-1.57-2.33-2.64 + c-1.78-1.12-3.87-1.78-4.42-1.36C5.67,488.57,6.83,489.88,8.77,491.01z"/> + <path class="st107" d="M30.22,503.26c1.98,1.14,3.77,1.7,4.13,1.32c0.33-0.35-0.72-1.4-2.42-2.45 + c-1.78-1.1-3.84-1.83-4.34-1.52C27.08,500.92,28.28,502.14,30.22,503.26z"/> + <path class="st107" d="M48.97,512.95c-0.37,0.28,0.96,1.44,2.9,2.52c1.83,1.01,3.46,1.59,3.88,1.39 + c0.45-0.22-0.73-1.28-2.61-2.39C51.33,513.41,49.34,512.67,48.97,512.95z"/> + <path class="st107" d="M74.52,526.58c-1.84-1.03-3.77-1.79-4.06-1.57c-0.29,0.22,1.12,1.32,3.08,2.36 + c1.83,0.97,3.43,1.57,3.78,1.42C77.69,528.64,76.42,527.64,74.52,526.58z"/> + <path class="st107" d="M363.11,713.13c-1.62-1.59-3.21-2.86-3.36-2.63c-0.15,0.23,1.16,1.88,2.82,3.51 + c1.55,1.52,2.88,2.51,3.12,2.36C365.94,716.22,364.76,714.75,363.11,713.13z"/> + <path class="st107" d="M344.52,694.83c-1.62-1.57-3.23-2.84-3.37-2.64c-0.14,0.2,1.18,1.8,2.85,3.41 + c1.56,1.5,2.89,2.5,3.12,2.39C347.36,697.86,346.17,696.44,344.52,694.83z"/> + <path class="st107" d="M322.41,674.28c-0.2,0.11,1.06,1.58,2.77,3.18c1.59,1.49,2.95,2.53,3.22,2.48 + c0.29-0.05-0.86-1.38-2.53-2.94C324.26,675.47,322.61,674.17,322.41,674.28z"/> + <path class="st107" d="M303.42,656.97c-0.21,0.08,1.08,1.47,2.8,3.01c1.61,1.43,2.99,2.46,3.27,2.44 + c0.29-0.02-0.88-1.28-2.56-2.78C305.29,658.17,303.63,656.89,303.42,656.97z"/> + <path class="st107" d="M284.12,640.45c-0.16,0.1,1.19,1.42,2.95,2.88c1.64,1.36,3,2.31,3.24,2.29c0.26-0.03-0.97-1.23-2.7-2.67 + C285.93,641.56,284.27,640.36,284.12,640.45z"/> + <path class="st107" d="M267.31,627.46c1.83,1.4,3.33,2.38,3.47,2.28c0.12-0.09-1.02-1.1-2.62-2.33 + c-1.68-1.29-3.44-2.49-3.69-2.49C264.22,624.92,265.52,626.09,267.31,627.46z"/> + <path class="st107" d="M248.1,612.88c-1.72-1.19-3.52-2.29-3.76-2.3c-0.22-0.01,0.9,0.9,2.53,2.03 + c1.83,1.28,3.57,2.34,3.89,2.4C251.08,615.06,249.89,614.11,248.1,612.88z"/> + <path class="st107" d="M226.7,599.67c1.93,1.15,3.48,1.97,3.6,1.91c0.11-0.06-1.11-0.88-2.8-1.89 + c-1.77-1.06-3.61-2.06-3.84-2.07C223.43,597.6,224.82,598.54,226.7,599.67z"/> + <path class="st107" d="M202.38,586.21c-0.13,0.04,1.41,0.89,3.35,1.87c1.81,0.91,3.28,1.57,3.5,1.58 + c0.23,0.01-1.16-0.78-3.06-1.74C204.31,586.99,202.51,586.18,202.38,586.21z"/> + <path class="st107" d="M180.42,576.62c-0.12,0.04,1.5,0.7,3.5,1.51c1.87,0.75,3.38,1.31,3.59,1.32 + c0.23,0.01-1.21-0.65-3.18-1.44C182.42,577.23,180.54,576.59,180.42,576.62z"/> + <path class="st107" d="M161.99,569.36c-1.92-0.78-3.81-1.5-3.98-1.47c-0.17,0.03,1.39,0.79,3.41,1.6 + c1.88,0.76,3.46,1.29,3.7,1.3C165.39,570.79,163.96,570.16,161.99,569.36z"/> + <path class="st107" d="M139.65,559.72c-1.92-0.87-3.74-1.59-3.84-1.49c-0.09,0.11,1.54,0.98,3.51,1.85 + c1.84,0.81,3.36,1.36,3.55,1.31C143.09,561.36,141.61,560.61,139.65,559.72z"/> + <path class="st107" d="M117.71,549.32c-1.9-0.93-3.74-1.68-3.86-1.53c-0.12,0.15,1.47,1.11,3.43,2.05 + c1.83,0.87,3.36,1.44,3.57,1.36C121.08,551.11,119.65,550.27,117.71,549.32z"/> + <path class="st107" d="M94.99,538.7c2.01,1.04,3.76,1.72,4.02,1.58c0.26-0.14-1.14-1.07-3.06-2.08 + c-1.73-0.91-3.43-1.61-3.81-1.54C91.73,536.72,93.03,537.67,94.99,538.7z"/> + <path class="st107" d="M468.02,810.14c-1.64-1.36-3.11-2.29-3.43-2.13c-0.31,0.16,0.71,1.43,2.27,2.76 + c1.64,1.4,3.54,2.51,3.74,2.23C470.79,812.74,469.62,811.47,468.02,810.14z"/> + <path class="st107" d="M447.77,794.22c1.51,1.35,3.16,2.44,3.49,2.34c0.37-0.11-0.9-1.57-2.63-3.09 + c-1.62-1.42-3.01-2.37-3.25-2.18C445.14,791.49,446.22,792.83,447.77,794.22z"/> + <path class="st107" d="M432.29,779.29c0.17-0.21-0.97-1.54-2.53-3c-1.72-1.61-3.24-2.73-3.36-2.42 + c-0.1,0.27,1.14,1.77,2.67,3.17C430.61,778.46,432.13,779.5,432.29,779.29z"/> + <path class="st107" d="M407.7,755.9c-0.21,0.14,0.87,1.51,2.38,2.99c1.47,1.43,3.07,2.66,3.38,2.61 + c0.34-0.05-0.91-1.54-2.61-3.17C409.27,756.81,407.92,755.75,407.7,755.9z"/> + <path class="st107" d="M389.11,737.61c-0.29,0.02,0.65,1.25,2.18,2.79c1.57,1.59,3.36,3.02,3.56,2.88 + c0.19-0.13-0.92-1.44-2.46-2.96C390.81,738.77,389.41,737.59,389.11,737.61z"/> + <path class="st107" d="M373.02,722.26c1.49,1.47,3.02,2.71,3.24,2.66c0.25-0.06-1.05-1.56-2.75-3.21 + c-1.58-1.54-2.86-2.6-3.01-2.47C370.35,719.38,371.51,720.77,373.02,722.26z"/> + <path class="st107" d="M-22.92,466.15c-0.42,0.62,0.67,2.01,2.38,3.04c1.69,1.01,3.63,1.46,4.13,0.96 + c0.56-0.57-0.67-2.1-2.6-3.26C-20.8,465.83-22.48,465.51-22.92,466.15z"/> + <path class="st107" d="M4.71,483.09c0.32-0.5-0.83-1.8-2.57-2.89c-1.92-1.21-3.75-1.67-4.05-1.02 + c-0.26,0.57,1.04,1.95,2.76,2.94C2.6,483.12,4.41,483.57,4.71,483.09z"/> + <path class="st107" d="M25.8,496.11c0.27-0.41-0.92-1.61-2.66-2.7c-1.92-1.2-3.72-1.76-3.96-1.22 + c-0.21,0.47,1.13,1.77,2.85,2.77C23.77,495.96,25.54,496.5,25.8,496.11z"/> + <path class="st107" d="M40.4,505.03c-0.41,0.25,0.62,1.3,2.36,2.38c1.79,1.11,3.89,1.9,4.17,1.59c0.26-0.29-0.94-1.4-2.68-2.48 + C42.47,505.42,40.82,504.77,40.4,505.03z"/> + <path class="st107" d="M64.28,520.02c1.69,0.98,3.52,1.72,3.87,1.59c0.39-0.15-1.02-1.29-2.95-2.42 + c-1.8-1.05-3.35-1.68-3.62-1.44C61.33,517.98,62.55,519.02,64.28,520.02z"/> + <path class="st107" d="M82.96,530.04c-0.33,0.1,0.78,0.96,2.55,1.96c1.82,1.03,3.87,1.9,4.07,1.75 + c0.19-0.14-1.1-1.06-2.86-2.06C84.9,530.66,83.3,529.94,82.96,530.04z"/> + <path class="st107" d="M107.96,543.35c-1.82-0.96-3.34-1.63-3.52-1.53c-0.17,0.09,1.15,0.96,2.9,1.87 + c1.89,0.98,3.8,1.78,3.82,1.62C111.2,545.17,109.76,544.3,107.96,543.35z"/> + <path class="st107" d="M126.17,552.91c-0.17,0.03,1.16,0.79,2.94,1.64c1.72,0.83,3.53,1.59,3.8,1.63 + c0.3,0.04-1.23-0.77-3.21-1.73C127.86,553.55,126.34,552.88,126.17,552.91z"/> + <path class="st107" d="M151.08,564.61c1.72,0.75,3.58,1.49,3.86,1.57c0.29,0.08-0.99-0.49-2.79-1.29 + c-2.02-0.89-3.82-1.67-4.02-1.7C147.95,563.17,149.28,563.83,151.08,564.61z"/> + <path class="st107" d="M170.34,572.54c-0.14-0.04,1.23,0.53,3.06,1.24c1.75,0.67,3.6,1.35,3.85,1.43 + c0.28,0.1-1.32-0.5-3.35-1.28C172.02,573.19,170.49,572.58,170.34,572.54z"/> + <path class="st107" d="M195.9,582.89c1.77,0.8,3.4,1.54,3.48,1.57c0.09,0.03-1.57-0.74-3.55-1.64 + c-1.83-0.83-3.22-1.45-3.23-1.44C192.6,581.39,194.14,582.1,195.9,582.89z"/> + <path class="st107" d="M217.75,593.8c-1.79-0.98-3.3-1.79-3.52-1.88c-0.21-0.08,1.03,0.62,2.74,1.56c1.8,1,3.72,2.02,3.8,2.03 + C220.86,595.53,219.5,594.76,217.75,593.8z"/> + <path class="st107" d="M235.19,604.1c-0.13-0.04,1.14,0.82,2.82,1.9c1.62,1.03,3.3,2.07,3.54,2.17 + c0.27,0.11-1.19-0.87-3.06-2.06C236.74,605,235.33,604.13,235.19,604.1z"/> + <path class="st107" d="M255.61,617.73c-0.15-0.03,1.08,0.92,2.71,2.1c1.57,1.13,3.23,2.27,3.48,2.37 + c0.28,0.12-1.13-0.97-2.95-2.27C257.15,618.71,255.76,617.76,255.61,617.73z"/> + <path class="st107" d="M278.14,634.9c1.52,1.22,3.18,2.44,3.45,2.55c0.28,0.11-0.84-0.86-2.44-2.14 + c-1.79-1.43-3.42-2.65-3.61-2.69C275.37,632.59,276.54,633.62,278.14,634.9z"/> + <path class="st107" d="M297.52,650.97c1.47,1.27,3.16,2.6,3.47,2.73c0.31,0.13-0.75-0.9-2.3-2.24 + c-1.73-1.5-3.39-2.82-3.62-2.88C294.86,648.54,295.97,649.62,297.52,650.97z"/> + <path class="st107" d="M317.49,668.09c-1.61-1.46-3-2.61-3.23-2.66c-0.23-0.04,0.83,1.09,2.37,2.5 + c1.61,1.49,3.38,2.92,3.5,2.85C320.24,670.71,319.06,669.52,317.49,668.09z"/> + <path class="st107" d="M336.22,685.49c-1.59-1.49-2.91-2.6-3.06-2.54c-0.15,0.05,0.99,1.33,2.51,2.78 + c1.64,1.56,3.3,2.91,3.33,2.73C339.03,688.29,337.78,686.97,336.22,685.49z"/> + <path class="st107" d="M354.33,703.81c1.47,1.45,3.04,2.75,3.31,2.78c0.3,0.03-0.98-1.41-2.67-3.05 + c-1.58-1.53-2.9-2.65-3.08-2.58C351.72,701.02,352.82,702.32,354.33,703.81z"/> + <path class="st107" d="M372.82,719.3c-0.19-0.07,0.98,1.17,2.48,2.63c1.34,1.3,2.69,2.51,2.93,2.63 + c0.27,0.14-0.76-0.95-2.27-2.42C374.49,720.72,373,719.37,372.82,719.3z"/> + <path class="st107" d="M354.08,701.26c-0.2-0.11,0.95,1.08,2.45,2.52c1.32,1.27,2.72,2.53,2.96,2.69 + c0.28,0.18-0.75-0.89-2.24-2.31C355.78,702.74,354.29,701.37,354.08,701.26z"/> + <path class="st107" d="M335.23,683.47c-0.11-0.05,1.14,1.17,2.66,2.59c1.39,1.3,2.65,2.42,2.83,2.53 + c0.2,0.12-0.95-0.99-2.44-2.39C336.77,684.8,335.34,683.52,335.23,683.47z"/> + <path class="st107" d="M318.81,668.54c1.56,1.4,2.91,2.58,2.96,2.59c0.04,0.01-1.04-0.99-2.41-2.22 + c-1.5-1.34-2.99-2.65-3.15-2.76C316.06,666.03,317.28,667.16,318.81,668.54z"/> + <path class="st107" d="M300.13,652.15c-1.52-1.29-3.03-2.55-3.18-2.68c-0.16-0.13,1.09,0.93,2.65,2.26 + c1.39,1.18,2.75,2.33,2.96,2.49C302.79,654.42,301.69,653.47,300.13,652.15z"/> + <path class="st107" d="M277.36,633.65c-0.17-0.15,1.08,0.81,2.66,2.06c1.4,1.1,2.82,2.23,3.04,2.41 + c0.25,0.21-0.87-0.67-2.44-1.89C279.08,635.02,277.53,633.8,277.36,633.65z"/> + <path class="st107" d="M260.15,620.78c1.64,1.17,3.05,2.22,3.08,2.27c0.03,0.05-1.14-0.77-2.58-1.8 + c-1.58-1.13-3.13-2.25-3.28-2.39C257.22,618.72,258.53,619.62,260.15,620.78z"/> + <path class="st107" d="M236.89,605.27c-0.02-0.06,1.47,0.83,3.1,1.88c1.55,0.99,2.8,1.83,2.9,1.94 + c0.11,0.12-1.24-0.71-2.87-1.74C238.38,606.29,236.91,605.33,236.89,605.27z"/> + <path class="st107" d="M219.4,595.14c-1.66-0.91-3.32-1.85-3.49-2c-0.17-0.15,1.18,0.52,2.89,1.46 + c1.5,0.82,3.02,1.71,3.24,1.89C222.3,596.69,221.09,596.06,219.4,595.14z"/> + <path class="st107" d="M197.35,583.84c1.78,0.81,3.29,1.58,3.3,1.65c0.01,0.07-1.26-0.47-2.82-1.19 + c-1.71-0.78-3.39-1.58-3.53-1.71C194.16,582.46,195.6,583.03,197.35,583.84z"/> + <path class="st107" d="M172.11,573.58c-0.22-0.15,1.15,0.37,2.94,1.08c1.56,0.62,3.22,1.31,3.49,1.48 + c0.31,0.19-0.92-0.23-2.7-0.94C174.11,574.51,172.33,573.73,172.11,573.58z"/> + <path class="st107" d="M153.52,565.51c-1.74-0.81-3.36-1.59-3.46-1.64c-0.1-0.05,1.38,0.63,3.14,1.44 + c1.62,0.74,3.05,1.4,3.22,1.49C156.61,566.92,155.25,566.32,153.52,565.51z"/> + <path class="st107" d="M131.16,554.62c1.71,0.88,3.37,1.68,3.5,1.71c0.12,0.03-0.99-0.57-2.56-1.39 + c-1.67-0.88-3.43-1.77-3.69-1.85C128.14,553,129.43,553.73,131.16,554.62z"/> + <path class="st107" d="M107.02,541.32c-0.25,0,1.03,0.85,2.75,1.81c1.5,0.84,3.1,1.64,3.39,1.7c0.33,0.07-0.83-0.69-2.51-1.66 + C108.98,542.21,107.27,541.33,107.02,541.32z"/> + <path class="st107" d="M85.88,528.76c-0.19,0.12,1.15,1.13,2.85,2.14c1.56,0.93,3.01,1.63,3.26,1.59 + c0.28-0.04-0.94-0.97-2.61-2C87.71,529.46,86.07,528.65,85.88,528.76z"/> + <path class="st107" d="M67.41,517.7c1.64,1.06,3.36,1.88,3.63,1.74c0.25-0.13-0.69-0.98-2.2-2.01c-1.57-1.07-3.41-2-3.81-1.92 + C64.63,515.59,65.73,516.61,67.41,517.7z"/> + <path class="st107" d="M47.8,503.35c-1.64-1.11-3.3-1.83-3.54-1.52c-0.24,0.31,1.06,1.55,2.73,2.62 + c1.55,0.99,2.99,1.6,3.29,1.4C50.59,505.62,49.42,504.45,47.8,503.35z"/> + <path class="st107" d="M25.99,490.38c1.63,1.12,3.37,1.81,3.68,1.46c0.29-0.32-0.62-1.39-2.09-2.48 + c-1.57-1.15-3.4-1.95-3.85-1.67C23.29,487.99,24.34,489.24,25.99,490.38z"/> + <path class="st107" d="M6.96,474.79c-1.61-1.16-3.38-1.77-3.77-1.3c-0.39,0.47,0.75,1.87,2.42,2.97 + c1.52,1.01,3.09,1.55,3.51,1.21C9.59,477.28,8.61,475.98,6.96,474.79z"/> + <path class="st107" d="M-17.24,459.18c-0.5,0.53,0.52,2,2.18,3.12c1.46,0.99,3.18,1.52,3.67,1.13 + c0.57-0.45-0.32-1.85-1.92-3.03C-14.88,459.23-16.74,458.65-17.24,459.18z"/> + <path class="st107" d="M489.87,824.59c1.62,1.19,3.1,2.02,3.19,1.83c0.08-0.17-1.07-1.19-2.48-2.24 + c-1.58-1.17-3.15-2.15-3.35-2.05C487.02,822.24,488.26,823.41,489.87,824.59z"/> + <path class="st107" d="M467.54,806.63c-0.18,0.09,1.05,1.32,2.63,2.59c1.45,1.16,2.8,2.05,3.04,2.02 + c0.27-0.03-0.86-1.13-2.42-2.38C469.24,807.6,467.71,806.54,467.54,806.63z"/> + <path class="st107" d="M450.74,792.83c1.56,1.35,2.99,2.36,3.08,2.23c0.09-0.12-1-1.21-2.37-2.4 + c-1.52-1.32-3.04-2.48-3.25-2.45C448,790.25,449.19,791.49,450.74,792.83z"/> + <path class="st107" d="M429.13,773.07c-0.15,0.06,1.07,1.36,2.6,2.75c1.41,1.28,2.7,2.28,2.91,2.3 + c0.24,0.02-0.89-1.16-2.39-2.53C430.74,774.21,429.28,773.02,429.13,773.07z"/> + <path class="st107" d="M415.74,760.58c0.14-0.04-1.07-1.31-2.57-2.71c-1.54-1.44-2.88-2.58-2.94-2.46 + c-0.05,0.1,1.05,1.3,2.4,2.58C414.13,759.41,415.6,760.63,415.74,760.58z"/> + <path class="st107" d="M391.52,737.42c-0.2-0.05,0.96,1.2,2.47,2.66c1.34,1.29,2.7,2.48,2.95,2.58 + c0.28,0.12-0.75-0.98-2.26-2.44C393.21,738.8,391.72,737.47,391.52,737.42z"/> + <path class="st107" d="M364.84,712.7c1.58,1.54,3,2.78,3.19,2.8c0.19,0.02-0.93-1.19-2.51-2.73c-1.54-1.5-3.03-2.83-3.21-2.85 + C362.13,709.89,363.29,711.18,364.84,712.7z"/> + <path class="st107" d="M343.62,691.89c-0.28-0.14,0.83,1.05,2.36,2.53c1.61,1.55,3.03,2.8,3.32,2.94 + c0.28,0.13-0.78-0.99-2.34-2.48C345.42,693.4,343.9,692.03,343.62,691.89z"/> + <path class="st107" d="M327.32,676.8c1.6,1.48,3.02,2.71,3.2,2.76c0.17,0.06-0.98-1.09-2.58-2.56 + c-1.56-1.44-3.06-2.75-3.22-2.81C324.55,674.14,325.75,675.34,327.32,676.8z"/> + <path class="st107" d="M305.64,657.11c-0.22-0.13,0.96,0.98,2.54,2.37c1.65,1.46,3.07,2.65,3.3,2.77 + c0.22,0.12-0.91-0.93-2.51-2.34C307.36,658.5,305.87,657.24,305.64,657.11z"/> + <path class="st107" d="M289.39,643.27c-1.62-1.33-3.1-2.51-3.16-2.52c-0.07-0.01,1.22,1.08,2.85,2.43 + c1.64,1.35,3.04,2.47,3.13,2.49C292.3,645.69,291.06,644.64,289.39,643.27z"/> + <path class="st107" d="M266.51,625.4c-0.26-0.18,0.95,0.75,2.58,1.98c1.71,1.29,3.18,2.39,3.45,2.57 + c0.26,0.17-0.9-0.72-2.55-1.96C268.36,626.76,266.77,625.57,266.51,625.4z"/> + <path class="st107" d="M249.03,612.99c1.75,1.19,3.24,2.21,3.47,2.36c0.22,0.15-0.99-0.68-2.69-1.83 + c-1.67-1.13-3.27-2.21-3.5-2.37C246.08,611,247.35,611.86,249.03,612.99z"/> + <path class="st107" d="M225.6,598.26c-0.21-0.15,1.11,0.61,2.84,1.64c1.8,1.07,3.32,1.99,3.53,2.14 + c0.21,0.14-1.05-0.6-2.8-1.63C227.41,599.36,225.82,598.41,225.6,598.26z"/> + <path class="st107" d="M204.32,586.91c-0.26-0.16,1.07,0.46,2.84,1.35c1.85,0.93,3.43,1.75,3.69,1.92 + c0.26,0.16-1.01-0.45-2.8-1.35C206.29,587.94,204.58,587.07,204.32,586.91z"/> + <path class="st107" d="M182.38,577.27c-0.26-0.15,1.12,0.36,2.93,1.09c1.91,0.77,3.53,1.48,3.8,1.63 + c0.26,0.15-1.05-0.35-2.89-1.1C184.4,578.15,182.64,577.42,182.38,577.27z"/> + <path class="st107" d="M160.05,568.29c-0.09-0.05,1.39,0.59,3.24,1.36c1.87,0.78,3.46,1.45,3.56,1.51 + c0.1,0.06-1.33-0.5-3.21-1.3C161.81,569.09,160.13,568.34,160.05,568.29z"/> + <path class="st107" d="M138.08,558.26c-0.07,0.01,1.38,0.74,3.21,1.6c1.84,0.87,3.42,1.57,3.5,1.58 + c0.09,0.02-1.32-0.66-3.18-1.55C139.8,559.02,138.15,558.25,138.08,558.26z"/> + <path class="st107" d="M119.84,548.9c-1.78-0.94-3.41-1.71-3.44-1.63c-0.04,0.09,1.38,0.93,3.2,1.86 + c1.83,0.94,3.36,1.64,3.42,1.58C123.09,550.66,121.69,549.87,119.84,548.9z"/> + <path class="st107" d="M94.99,535.45c-0.26,0.04,1.03,0.95,2.81,1.94c1.82,1.02,3.46,1.78,3.71,1.76 + c0.25-0.03-0.99-0.87-2.78-1.9C96.98,536.25,95.25,535.41,94.99,535.45z"/> + <path class="st107" d="M73.75,522.99c-0.16,0.19,1.16,1.22,2.94,2.27c1.79,1.05,3.39,1.76,3.56,1.6 + c0.17-0.16-1.11-1.14-2.91-2.23C75.58,523.57,73.91,522.8,73.75,522.99z"/> + <path class="st107" d="M52.77,509.96c-0.41,0.14,0.73,1.22,2.45,2.3c1.8,1.14,3.46,1.88,3.88,1.76c0.4-0.12-0.7-1.14-2.42-2.26 + C54.97,510.65,53.19,509.82,52.77,509.96z"/> + <path class="st107" d="M31.79,496.63c-0.25,0.37,1,1.58,2.76,2.68c1.77,1.1,3.42,1.73,3.67,1.4c0.26-0.33-0.94-1.5-2.72-2.65 + C33.77,496.94,32.03,496.27,31.79,496.63z"/> + <path class="st107" d="M13.33,485.71c1.78,1.19,3.49,1.83,3.98,1.51c0.48-0.31-0.54-1.53-2.25-2.7 + c-1.68-1.16-3.51-1.87-4.01-1.54C10.57,483.3,11.63,484.59,13.33,485.71z"/> + <path class="st107" d="M-7.32,472.39c1.77,1.13,3.51,1.64,3.91,1.15c0.41-0.49-0.67-1.82-2.43-3 + c-1.72-1.15-3.55-1.69-3.95-1.18C-10.19,469.88-9.05,471.28-7.32,472.39z"/> + <path class="st107" d="M-30.47,455.75c-0.59,0.52,0.37,1.98,2.06,3.11c1.77,1.18,3.56,1.67,4.16,1.15 + c0.59-0.51-0.33-1.91-2.03-3.09C-27.96,455.76-29.87,455.22-30.47,455.75z"/> + <path class="st107" d="M478.41,817.69c1.66,1.31,3.2,2.22,3.43,2.07c0.24-0.15-0.92-1.28-2.6-2.6 + c-1.64-1.28-3.23-2.3-3.45-2.16C475.58,815.14,476.78,816.4,478.41,817.69z"/> + <path class="st107" d="M459,801.69c1.63,1.38,3.11,2.35,3.3,2.21c0.2-0.15-0.95-1.32-2.62-2.74c-1.6-1.35-3.15-2.44-3.32-2.29 + C456.19,799.02,457.39,800.32,459,801.69z"/> + <path class="st107" d="M437.24,781.91c-0.18,0.1,0.99,1.43,2.57,2.86c1.61,1.45,3.07,2.51,3.27,2.41 + c0.2-0.11-0.93-1.32-2.56-2.78C438.96,782.98,437.42,781.81,437.24,781.91z"/> + <path class="st107" d="M420.89,767.22c1.59,1.5,3.04,2.63,3.24,2.56c0.2-0.07-0.92-1.31-2.53-2.81 + c-1.57-1.47-3.07-2.7-3.26-2.63C418.16,764.41,419.33,765.75,420.89,767.22z"/> + <path class="st107" d="M399.63,746.35c-0.24-0.01,0.88,1.29,2.43,2.8c1.59,1.55,3.03,2.75,3.27,2.75 + c0.24,0-0.84-1.21-2.42-2.74C401.39,747.68,399.87,746.37,399.63,746.35z"/> + <path class="st107" d="M384.04,730.82c-1.55-1.5-2.99-2.77-3.09-2.67c-0.1,0.09,1.1,1.44,2.66,2.96 + c1.57,1.53,2.95,2.69,3.07,2.61C386.8,733.64,385.64,732.38,384.04,730.82z"/> + <path class="st107" d="M385.45,731.06c1.52,1.46,3.03,2.84,3.17,2.88c0.12,0.04-0.95-1.05-2.32-2.37 + c-1.57-1.5-3-2.82-3.14-2.87C383.04,728.67,384.06,729.72,385.45,731.06z"/> + <path class="st107" d="M401.99,746.71c-0.23-0.12,0.69,0.85,2.03,2.15c1.5,1.44,3.07,2.83,3.35,2.99 + c0.28,0.15-0.88-1.04-2.45-2.51C403.48,747.95,402.22,746.83,401.99,746.71z"/> + <path class="st107" d="M423.28,766.94c1.55,1.43,3.01,2.63,3.03,2.52c0.02-0.11-1.08-1.2-2.52-2.52 + c-1.6-1.47-2.94-2.61-2.98-2.51C420.78,764.52,421.86,765.62,423.28,766.94z"/> + <path class="st107" d="M442.74,784.02c-1.46-1.28-2.73-2.3-2.91-2.32c-0.19-0.02,1.02,1.2,2.61,2.59 + c1.4,1.23,2.78,2.3,2.95,2.32C445.59,786.64,444.33,785.42,442.74,784.02z"/> + <path class="st107" d="M461.58,800.78c1.59,1.33,3.11,2.4,3.15,2.27c0.04-0.12-1.07-1.15-2.54-2.37 + c-1.64-1.36-3.03-2.39-3.1-2.28C459.02,798.51,460.12,799.56,461.58,800.78z"/> + <path class="st107" d="M478.64,814.22c-0.17,0.04,0.87,1.01,2.34,2.15c1.6,1.24,3.24,2.32,3.42,2.27 + c0.19-0.05-1.12-1.17-2.77-2.43C480.13,815.07,478.81,814.18,478.64,814.22z"/> + <path class="st107" d="M-24.52,448.31c-0.5,0.51,0.27,1.86,1.7,2.98c1.57,1.24,3.49,1.9,4.04,1.41 + c0.55-0.49-0.47-2.06-2.14-3.3C-22.46,448.26-24.01,447.79-24.52,448.31z"/> + <path class="st107" d="M-2.18,466.3c1.66,1.19,3.41,1.77,3.65,1.19c0.22-0.54-0.78-1.85-2.31-2.99 + c-1.7-1.27-3.32-1.79-3.61-1.16C-4.7,463.91-3.71,465.2-2.18,466.3z"/> + <path class="st107" d="M17.87,480.88c1.63,1.21,3.43,1.97,3.76,1.59c0.3-0.34-0.7-1.6-2.16-2.72 + c-1.67-1.29-3.38-2.01-3.73-1.58C15.43,478.55,16.38,479.76,17.87,480.88z"/> + <path class="st107" d="M38.42,495.6c1.68,1.18,3.36,1.91,3.51,1.53c0.14-0.36-0.93-1.5-2.47-2.61 + c-1.71-1.25-3.27-1.92-3.47-1.5C35.82,493.38,36.88,494.52,38.42,495.6z"/> + <path class="st107" d="M56.38,507.46c-0.18,0.26,0.9,1.29,2.44,2.35c1.68,1.15,3.37,1.97,3.52,1.7 + c0.16-0.27-1.13-1.46-2.88-2.65C57.94,507.82,56.56,507.2,56.38,507.46z"/> + <path class="st107" d="M76.94,521.42c-0.22,0.13,0.84,1.05,2.37,2.06c1.67,1.1,3.41,2,3.64,1.89c0.23-0.11-1.1-1.21-2.82-2.34 + C78.57,522,77.16,521.29,76.94,521.42z"/> + <path class="st107" d="M366.89,713.2c1.54,1.47,2.96,2.77,2.97,2.72c0.01-0.05-1.09-1.14-2.51-2.5 + c-1.59-1.51-2.9-2.73-2.93-2.69C364.39,710.76,365.48,711.85,366.89,713.2z"/> + <path class="st107" d="M348.58,695.62c-1.46-1.37-2.71-2.52-2.95-2.71c-0.26-0.21,0.84,0.86,2.4,2.33 + c1.4,1.32,2.72,2.54,2.99,2.75C351.3,698.21,350.14,697.09,348.58,695.62z"/> + <path class="st107" d="M329.5,677.97c-1.47-1.33-2.7-2.44-2.87-2.58c-0.18-0.15,1.01,0.94,2.59,2.38 + c1.39,1.27,2.72,2.47,2.9,2.62C332.32,680.56,331.08,679.4,329.5,677.97z"/> + <path class="st107" d="M307.45,658.42c-0.04-0.04,1.07,0.91,2.52,2.17c1.57,1.37,3.04,2.65,3.07,2.68 + c0.02,0.02-1.28-1.11-2.93-2.54C308.67,659.49,307.48,658.46,307.45,658.42z"/> + <path class="st107" d="M288,642.21c-0.15-0.15,0.89,0.67,2.31,1.83c1.57,1.27,3.15,2.59,3.34,2.77 + c0.19,0.17-1.11-0.87-2.73-2.19C289.42,643.39,288.16,642.36,288,642.21z"/> + <path class="st107" d="M270.9,628.85c1.63,1.22,3.1,2.37,3.05,2.38c-0.04,0.01-1.23-0.87-2.74-2c-1.69-1.26-3.05-2.3-3.02-2.33 + C268.21,626.88,269.4,627.73,270.9,628.85z"/> + <path class="st107" d="M251.21,614.99c-1.72-1.16-3.2-2.18-3.27-2.29c-0.06-0.09,1.1,0.64,2.63,1.67 + c1.66,1.11,3.23,2.24,3.29,2.33C253.92,616.79,252.71,616,251.21,614.99z"/> + <path class="st107" d="M229.87,601.27c1.7,1,3.32,2.04,3.42,2.15c0.08,0.11-1.15-0.59-2.68-1.5c-1.75-1.03-3.31-1.99-3.4-2.11 + C227.13,599.72,228.32,600.35,229.87,601.27z"/> + <path class="st107" d="M209.17,590.17c-1.65-0.83-3.04-1.56-3.21-1.71c-0.19-0.17,1.17,0.44,2.95,1.34 + c1.57,0.79,3.05,1.61,3.24,1.77C212.36,591.74,210.95,591.07,209.17,590.17z"/> + <path class="st107" d="M187.57,580.29c-1.86-0.76-3.49-1.46-3.57-1.57c-0.07-0.1,1.2,0.35,2.85,1.02 + c1.8,0.73,3.51,1.52,3.59,1.62C190.5,581.46,189.19,580.95,187.57,580.29z"/> + <path class="st107" d="M165.35,571.09c-1.71-0.76-3.13-1.43-3.42-1.59c-0.31-0.17,0.97,0.37,2.79,1.17 + c1.79,0.79,3.48,1.56,3.52,1.62C168.28,572.35,167,571.82,165.35,571.09z"/> + <path class="st107" d="M143.03,560.46c1.77,0.89,3.39,1.68,3.37,1.67c-0.02-0.01-1.3-0.66-2.92-1.49 + c-1.82-0.93-3.31-1.68-3.33-1.67C140.14,558.98,141.41,559.64,143.03,560.46z"/> + <path class="st107" d="M122.18,549.12c-1.64-0.93-3.05-1.68-3.34-1.75c-0.32-0.08,0.91,0.7,2.67,1.68 + c1.58,0.88,3.09,1.66,3.39,1.76C125.22,550.91,123.93,550.12,122.18,549.12z"/> + <path class="st107" d="M100.96,536.46c-1.6-0.99-3-1.72-3.22-1.68c-0.24,0.04,1.05,0.99,2.8,2.04 + c1.54,0.93,3.05,1.71,3.26,1.69C104.04,538.5,102.69,537.53,100.96,536.46z"/> + <path class="st107" d="M495.44,825.7c0.19-0.02-0.93-0.94-2.39-2c-1.46-1.06-2.95-2.02-3.17-2.04 + c-0.22-0.02,0.9,0.95,2.43,2.06C493.86,824.85,495.24,825.72,495.44,825.7z"/> + <path class="st107" d="M470.05,806.43c-0.07,0.09,1.1,1.13,2.66,2.36c1.56,1.23,2.77,2.06,2.83,1.96 + c0.06-0.1-1.14-1.14-2.62-2.3C471.43,807.28,470.11,806.34,470.05,806.43z"/> + <path class="st107" d="M450.61,790.26c-0.17-0.02,0.93,1.03,2.42,2.3c1.51,1.29,2.82,2.28,2.96,2.27 + c0.14-0.01-0.98-1.06-2.39-2.25C452.18,791.38,450.78,790.28,450.61,790.26z"/> + <path class="st107" d="M433.82,775.72c1.49,1.34,2.78,2.39,2.91,2.4c0.13,0.01-0.98-1.08-2.36-2.31 + c-1.4-1.25-2.78-2.4-2.95-2.44C431.26,773.32,432.36,774.41,433.82,775.72z"/> + <path class="st107" d="M412.46,755.94c-0.25-0.14,0.75,0.87,2.2,2.23c1.49,1.39,2.79,2.53,3.01,2.63 + c0.22,0.1-0.76-0.88-2.16-2.19C414.14,757.34,412.71,756.08,412.46,755.94z"/> + <path class="st107" d="M396.55,740.84c-1.36-1.29-2.76-2.56-2.96-2.68c-0.2-0.12,0.85,0.95,2.29,2.32 + c1.47,1.4,2.75,2.55,2.92,2.63C398.97,743.2,397.93,742.15,396.55,740.84z"/> + <path class="st107" d="M-29.98,439.83c1.55,1.24,3.18,1.8,3.73,1.28c0.54-0.51-0.23-1.99-1.67-3.21 + c-1.44-1.22-3.12-1.78-3.7-1.22C-32.22,437.24-31.52,438.59-29.98,439.83z"/> + <path class="st107" d="M-11.87,452.3c-0.34,0.61,0.62,1.97,2.23,3.15c1.57,1.16,3.1,1.63,3.37,1.04 + c0.27-0.59-0.78-2.1-2.24-3.21C-10.03,452.13-11.53,451.7-11.87,452.3z"/> + <path class="st107" d="M8,467.86c-0.31,0.5,0.68,1.79,2.28,2.98c1.56,1.17,3.07,1.73,3.31,1.24c0.24-0.48-0.84-1.92-2.3-3.04 + C9.79,467.89,8.31,467.36,8,467.86z"/> + <path class="st107" d="M30.21,486.08c1.55,1.15,3.07,1.83,3.31,1.47c0.24-0.36-0.85-1.69-2.3-2.81 + c-1.47-1.13-2.98-1.78-3.29-1.42C27.63,483.69,28.63,484.9,30.21,486.08z"/> + <path class="st107" d="M47.99,498.52c-0.31,0.25,0.68,1.35,2.26,2.51c1.55,1.13,3.07,1.89,3.33,1.65 + c0.25-0.24-0.83-1.45-2.29-2.55C49.84,499.03,48.29,498.28,47.99,498.52z"/> + <path class="st107" d="M70.5,515.56c1.57,1.11,3.08,1.9,3.33,1.76c0.25-0.15-0.83-1.21-2.32-2.29 + c-1.46-1.06-3.02-1.88-3.31-1.73C67.9,513.45,68.9,514.44,70.5,515.56z"/> + <path class="st107" d="M374.76,720.25c-0.03,0.02,1.1,1.14,2.59,2.56c1.49,1.42,2.62,2.45,2.65,2.42 + c0.03-0.03-1.13-1.18-2.55-2.53C376.03,721.36,374.79,720.23,374.76,720.25z"/> + <path class="st107" d="M355.93,702.39c-0.13-0.09,0.97,0.98,2.42,2.35c1.47,1.4,2.71,2.54,2.82,2.6 + c0.1,0.06-1.02-1.03-2.38-2.32C357.41,703.72,356.07,702.48,355.93,702.39z"/> + <path class="st107" d="M337.01,684.77c-0.14-0.11,0.98,0.92,2.42,2.26c1.48,1.37,2.73,2.51,2.84,2.6 + c0.11,0.08-1-0.97-2.38-2.24C338.51,686.11,337.15,684.88,337.01,684.77z"/> + <path class="st107" d="M317.76,667.45c-0.03-0.02,1.11,0.98,2.64,2.34c1.49,1.32,2.71,2.41,2.69,2.39 + c-0.02-0.02-1.25-1.13-2.67-2.38C318.98,668.52,317.79,667.47,317.76,667.45z"/> + <path class="st107" d="M298.44,650.89c-0.14-0.13,0.95,0.76,2.47,2.04c1.49,1.25,2.83,2.4,2.92,2.49 + c0.1,0.09-1.08-0.89-2.49-2.08C299.93,652.16,298.57,651.02,298.44,650.89z"/> + <path class="st107" d="M281.89,637.59c-1.45-1.13-2.88-2.25-3.08-2.43c-0.21-0.19,0.8,0.56,2.35,1.76 + c1.53,1.19,2.92,2.31,3.1,2.48C284.45,639.58,283.36,638.74,281.89,637.59z"/> + <path class="st107" d="M261.92,622.69c-1.48-1.05-2.94-2.1-3.14-2.28c-0.21-0.19,0.82,0.5,2.41,1.62 + c1.56,1.11,2.98,2.16,3.16,2.33C264.53,624.53,263.42,623.75,261.92,622.69z"/> + <path class="st107" d="M241.51,608.94c-1.51-0.96-3.01-1.92-3.21-2.09c-0.21-0.18,0.85,0.44,2.47,1.46 + c1.6,1.01,3.04,1.98,3.23,2.14C244.18,610.62,243.04,609.91,241.51,608.94z"/> + <path class="st107" d="M217.27,594.65c-0.01-0.05,1.27,0.59,2.97,1.52c1.64,0.91,2.97,1.7,2.93,1.73 + c-0.04,0.02-1.42-0.72-2.98-1.58C218.58,595.44,217.28,594.71,217.27,594.65z"/> + <path class="st107" d="M195.69,584.05c-0.13-0.11,1.12,0.4,2.82,1.18c1.67,0.76,3.15,1.51,3.24,1.6 + c0.08,0.09-1.25-0.51-2.84-1.24C197.32,584.86,195.81,584.15,195.69,584.05z"/> + <path class="st107" d="M176.93,576.35c-1.6-0.67-3.18-1.38-3.36-1.49c-0.19-0.12,0.99,0.35,2.73,1.07 + c1.7,0.71,3.25,1.38,3.39,1.48C179.84,577.52,178.56,577.03,176.93,576.35z"/> + <path class="st107" d="M154.64,566.17c1.67,0.81,3.11,1.5,3.13,1.52c0.02,0.01-1.37-0.67-2.94-1.44 + c-1.61-0.79-3.01-1.48-3.09-1.51C151.67,564.71,152.93,565.34,154.64,566.17z"/> + <path class="st107" d="M130.34,553.37c-0.07,0.04,1.16,0.78,2.86,1.71c1.66,0.91,3.05,1.61,3.07,1.57 + c0.02-0.05-1.34-0.86-2.89-1.72C131.77,554.02,130.41,553.33,130.34,553.37z"/> + <path class="st107" d="M112.03,542.82c1.62,0.98,3.05,1.73,3.12,1.64c0.07-0.09-1.23-1.01-2.75-1.94 + c-1.55-0.96-2.95-1.69-3.08-1.61C109.18,540.98,110.36,541.82,112.03,542.82z"/> + <path class="st107" d="M88.59,527.52c-0.07,0.21,1.13,1.17,2.8,2.24c1.62,1.04,2.96,1.72,2.96,1.5c0-0.23-1.29-1.26-2.82-2.27 + C89.96,527.96,88.66,527.31,88.59,527.52z"/> + <path class="st107" d="M480.97,814.07c-0.09,0.06,1.2,1.16,2.63,2.22c1.52,1.13,2.72,1.9,2.72,1.76c0-0.13-1-0.96-2.39-2.01 + C482.44,814.94,481.06,814.01,480.97,814.07z"/> + <path class="st107" d="M461.31,798.45c-0.06,0.07,1.22,1.23,2.62,2.36c1.5,1.21,2.65,2.02,2.62,1.87 + c-0.02-0.14-1.03-1.03-2.39-2.14C462.7,799.36,461.37,798.38,461.31,798.45z"/> + <path class="st107" d="M444.68,784.15c-1.45-1.24-2.72-2.25-2.73-2.15c-0.01,0.1,1.28,1.32,2.66,2.5 + c1.28,1.1,2.39,1.96,2.5,1.95C447.25,786.45,446.16,785.42,444.68,784.15z"/> + <path class="st107" d="M425.02,767.06c1.35,1.23,2.76,2.42,2.92,2.46c0.15,0.04-0.7-0.81-1.96-1.97 + c-1.39-1.27-2.83-2.5-3.1-2.64C422.61,764.77,423.65,765.82,425.02,767.06z"/> + <path class="st107" d="M403.86,747.35c-0.07,0.02,1.18,1.25,2.53,2.51c1.44,1.34,2.56,2.3,2.54,2.19 + c-0.02-0.1-0.97-1.05-2.3-2.29C405.22,748.46,403.93,747.33,403.86,747.35z"/> + <path class="st107" d="M384.99,729.56c-0.15-0.07,1.02,1.09,2.37,2.37c1.24,1.17,2.43,2.25,2.65,2.39 + c0.25,0.16-0.67-0.78-2.1-2.13C386.51,730.86,385.14,729.63,384.99,729.56z"/> + <path class="st107" d="M-18.87,440.63c-0.38,0.6,0.63,2.24,2.07,3.34c1.32,1.02,2.74,1.47,3.16,1c0.5-0.55-0.27-1.97-1.77-3.22 + C-16.86,440.54-18.48,440.02-18.87,440.63z"/> + <path class="st107" d="M2.75,459.94c1.47,1.17,2.95,1.69,3.24,1.13c0.28-0.51-0.49-1.73-1.83-2.87 + c-1.44-1.24-3.06-1.89-3.45-1.41C0.33,457.26,1.33,458.8,2.75,459.94z"/> + <path class="st107" d="M20.38,472.93c-0.43,0.31,0.5,1.71,1.9,2.86c1.26,1.04,2.73,1.75,3.19,1.54 + c0.55-0.25-0.16-1.42-1.61-2.69C22.44,473.4,20.83,472.61,20.38,472.93z"/> + <path class="st107" d="M40.01,488.91c-0.29,0.31,0.81,1.68,2.24,2.78c1.32,1.02,2.67,1.68,3.02,1.47 + c0.41-0.24-0.44-1.38-1.94-2.61C41.87,489.37,40.31,488.6,40.01,488.91z"/> + <path class="st107" d="M62.99,506.08c-1.48-1.13-2.95-1.85-3.13-1.55c-0.18,0.3,1.05,1.59,2.5,2.64 + c1.34,0.97,2.63,1.6,2.87,1.41C65.52,508.36,64.51,507.23,62.99,506.08z"/> + <path class="st107" d="M82.15,521.66c1.44,1.04,3,1.87,3.23,1.73c0.22-0.13-0.62-0.99-1.96-1.99c-1.47-1.1-3.04-1.99-3.41-1.91 + C79.66,519.55,80.7,520.61,82.15,521.66z"/> + <path class="st107" d="M368.34,713.9c1.34,1.27,2.72,2.53,2.86,2.6c0.13,0.07-0.72-0.78-1.97-1.97 + c-1.38-1.31-2.79-2.59-3.04-2.77C365.94,711.58,366.99,712.63,368.34,713.9z"/> + <path class="st107" d="M349.64,696.33c1.41,1.31,2.62,2.41,2.67,2.41c0.04,0-0.87-0.89-2.18-2.1 + c-1.41-1.31-2.77-2.53-2.91-2.62C347.09,693.93,348.28,695.06,349.64,696.33z"/> + <path class="st107" d="M330.63,678.88c1.42,1.28,2.64,2.37,2.68,2.37c0.04,0.01-0.89-0.86-2.2-2.05 + c-1.42-1.28-2.79-2.48-2.92-2.57C328.06,676.55,329.26,677.64,330.63,678.88z"/> + <path class="st107" d="M311.79,662.17c-1.44-1.24-2.77-2.35-2.83-2.39c-0.07-0.04,1.21,1.05,2.6,2.25 + c1.29,1.11,2.43,2.09,2.57,2.2C314.29,664.35,313.27,663.44,311.79,662.17z"/> + <path class="st107" d="M289.49,643.64c-0.21-0.16,0.93,0.74,2.33,1.88c1.26,1.02,2.56,2.08,2.83,2.3 + c0.32,0.25-0.57-0.49-2.05-1.69C291.15,644.96,289.7,643.81,289.49,643.64z"/> + <path class="st107" d="M269.6,628.34c-0.11-0.09,1.18,0.85,2.61,1.92c1.32,0.99,2.54,1.91,2.73,2.06 + c0.22,0.17-0.79-0.6-2.32-1.74C271.14,629.47,269.71,628.43,269.6,628.34z"/> + <path class="st107" d="M252.27,616.11c-1.52-1.02-2.88-1.92-2.91-1.95c-0.03-0.03,1.36,0.88,2.82,1.86 + c1.35,0.91,2.53,1.74,2.65,1.83C254.97,617.95,253.83,617.16,252.27,616.11z"/> + <path class="st107" d="M231.16,602.69c1.49,0.88,2.96,1.8,3.08,1.88c0.11,0.08-0.86-0.51-2.26-1.35 + c-1.54-0.91-3.08-1.81-3.31-1.96C228.45,601.11,229.67,601.8,231.16,602.69z"/> + <path class="st107" d="M207.35,589.76c-0.11-0.07,1.28,0.6,2.82,1.38c1.42,0.72,2.72,1.42,2.92,1.53 + c0.23,0.13-0.86-0.44-2.5-1.27C208.99,590.58,207.46,589.83,207.35,589.76z"/> + <path class="st107" d="M188.38,581.09c1.65,0.68,3.01,1.29,3.02,1.31c0.01,0.01-1.07-0.46-2.62-1.1 + c-1.64-0.69-3.21-1.32-3.33-1.37C185.34,579.86,186.78,580.42,188.38,581.09z"/> + <path class="st107" d="M166.61,571.77c-1.62-0.76-3.07-1.42-3.11-1.41c-0.04,0.01,1.43,0.71,2.99,1.43 + c1.44,0.66,2.72,1.24,2.85,1.29C169.49,573.13,168.26,572.54,166.61,571.77z"/> + <path class="st107" d="M142.02,559.35c-0.04,0.06,1.39,0.89,2.92,1.7c1.63,0.86,2.85,1.46,2.79,1.35 + c-0.05-0.09-1.17-0.74-2.65-1.55C143.49,559.99,142.07,559.29,142.02,559.35z"/> + <path class="st107" d="M120.97,547.07c-0.18,0.03,1.09,0.94,2.59,1.84c1.38,0.82,2.72,1.53,2.97,1.56 + c0.3,0.04-0.71-0.7-2.29-1.67C122.68,547.84,121.16,547.04,120.97,547.07z"/> + <path class="st107" d="M102.59,535.69c1.46,0.98,3.01,1.81,3.22,1.73c0.19-0.08-0.69-0.84-2.05-1.78 + c-1.5-1.03-3.07-1.91-3.4-1.89C100.03,533.76,101.12,534.7,102.59,535.69z"/> + <path class="st107" d="M495.26,823.4c-1.41-1-2.73-1.85-3-1.91c-0.3-0.07,0.81,0.86,2.41,2c1.4,0.99,2.7,1.79,2.85,1.77 + C497.67,825.23,496.63,824.38,495.26,823.4z"/> + <path class="st107" d="M474.45,808.35c1.36,1.08,2.71,2.02,3.03,2.14c0.31,0.11-0.61-0.72-1.9-1.75 + c-1.57-1.24-2.99-2.25-3.22-2.29C472.15,806.42,473.09,807.27,474.45,808.35z"/> + <path class="st107" d="M452.79,790.47c-0.15,0,0.81,0.91,2.17,2.05c1.47,1.24,2.92,2.32,2.95,2.21c0.03-0.1-1.04-1.09-2.4-2.22 + C454.12,791.36,452.94,790.47,452.79,790.47z"/> + <path class="st107" d="M435.56,775.77c1.33,1.18,2.63,2.25,2.95,2.42c0.31,0.16-0.58-0.74-1.83-1.86 + c-1.52-1.36-2.91-2.5-3.14-2.57C433.33,773.69,434.23,774.59,435.56,775.77z"/> + <path class="st107" d="M414.44,756.49c-0.14-0.02,0.81,0.93,2.14,2.15c1.44,1.32,2.84,2.51,2.87,2.41 + c0.02-0.09-1.03-1.14-2.36-2.35C415.74,757.47,414.58,756.51,414.44,756.49z"/> + <path class="st107" d="M398.26,741.27c-1.32-1.23-2.54-2.29-2.75-2.39c-0.23-0.11,0.85,0.98,2.35,2.39 + c1.3,1.22,2.5,2.25,2.59,2.24C400.55,743.5,399.54,742.47,398.26,741.27z"/> + <path class="st107" d="M-25.52,428.35c-0.37,0.65,0.41,2.07,1.77,3.23c1.45,1.24,3.15,1.74,3.4,0.98 + c0.24-0.72-0.65-2.17-2.04-3.33C-23.75,428.09-25.15,427.7-25.52,428.35z"/> + <path class="st107" d="M-4.57,448.03c1.33,1.2,2.8,1.88,3.34,1.55c0.51-0.32-0.16-1.72-1.38-2.92 + c-1.49-1.45-3.06-2.17-3.56-1.63C-6.61,445.5-5.89,446.84-4.57,448.03z"/> + <path class="st107" d="M14.8,464.68c1.33,1.19,2.78,1.93,3.29,1.67c0.48-0.24-0.23-1.57-1.46-2.74 + c-1.5-1.43-3.04-2.21-3.5-1.76C12.73,462.24,13.48,463.5,14.8,464.68z"/> + <path class="st107" d="M34.42,481.31c1.34,1.13,2.75,1.83,3.12,1.57c0.42-0.3-0.58-1.7-2.13-2.99 + c-1.38-1.14-2.68-1.73-2.95-1.33C32.19,478.96,33.06,480.17,34.42,481.31z"/> + <path class="st107" d="M54.11,497.52c1.36,1.09,2.73,1.79,3.01,1.55c0.28-0.24-0.61-1.4-1.94-2.52 + c-1.53-1.29-3.02-2.04-3.23-1.64C51.77,495.26,52.71,496.39,54.11,497.52z"/> + <path class="st107" d="M74.71,512.24c-1.4-1.09-2.71-1.78-2.99-1.58c-0.28,0.19,0.61,1.21,1.98,2.29 + c1.52,1.19,3.07,2.02,3.24,1.73C77.1,514.41,76.09,513.31,74.71,512.24z"/> + <path class="st107" d="M378.95,723.47c1.3,1.23,2.5,2.28,2.6,2.3c0.11,0.01-0.89-1.01-2.17-2.22c-1.46-1.37-2.79-2.54-2.8-2.44 + C376.58,721.18,377.6,722.19,378.95,723.47z"/> + <path class="st107" d="M359.99,705.63c1.3,1.22,2.51,2.29,2.66,2.36c0.15,0.06-0.82-0.92-2.11-2.13 + c-1.49-1.39-2.81-2.54-2.86-2.5C357.64,703.39,358.64,704.37,359.99,705.63z"/> + <path class="st107" d="M340.8,687.85c1.32,1.21,2.59,2.33,2.87,2.53c0.27,0.18-0.63-0.72-1.89-1.88 + c-1.52-1.4-2.87-2.57-3.06-2.66C338.55,685.75,339.48,686.64,340.8,687.85z"/> + <path class="st107" d="M319.56,668.7c-0.1-0.03,0.88,0.86,2.22,2.05c1.45,1.28,2.84,2.47,2.83,2.39 + c-0.01-0.07-1.08-1.08-2.44-2.27C320.82,669.69,319.66,668.74,319.56,668.7z"/> + <path class="st107" d="M302.48,654.17c1.34,1.12,2.59,2.15,2.79,2.26c0.22,0.13-0.93-0.9-2.48-2.19 + c-1.37-1.14-2.53-2.05-2.61-2.06C300.1,652.16,301.11,653.03,302.48,654.17z"/> + <path class="st107" d="M283.46,638.61c-1.39-1.09-2.67-2.03-2.92-2.18c-0.28-0.16,0.86,0.74,2.41,1.94 + c1.36,1.06,2.61,2.02,2.75,2.08C285.83,640.53,284.81,639.67,283.46,638.61z"/> + <path class="st107" d="M260.49,621.65c-0.2-0.1,0.76,0.6,2.16,1.6c1.56,1.11,3.03,2.15,3.11,2.17c0.08,0.02-1.01-0.82-2.38-1.8 + C261.98,622.61,260.69,621.75,260.49,621.65z"/> + <path class="st107" d="M242.84,609.73c-1.46-0.93-2.71-1.66-2.84-1.71c-0.13-0.04,0.92,0.64,2.36,1.55 + c1.57,1,3.06,1.94,3.06,1.9C245.44,611.44,244.29,610.65,242.84,609.73z"/> + <path class="st107" d="M219.03,595.73c-0.14-0.04,0.93,0.57,2.4,1.38c1.62,0.9,3.13,1.73,3.16,1.7 + c0.02-0.03-1.15-0.74-2.63-1.56C220.47,596.43,219.18,595.77,219.03,595.73z"/> + <path class="st107" d="M197.49,584.97c-0.17-0.03,0.92,0.48,2.42,1.18c1.67,0.78,3.23,1.5,3.28,1.48 + c0.04-0.02-1.15-0.64-2.66-1.35C199.01,585.56,197.67,585,197.49,584.97z"/> + <path class="st107" d="M175.43,575.58c-0.07,0.02,1.07,0.57,2.62,1.24c1.65,0.72,3.23,1.35,3.17,1.27 + c-0.06-0.07-1.31-0.66-2.87-1.34C176.8,576.08,175.5,575.56,175.43,575.58z"/> + <path class="st107" d="M153.82,565.05c-0.13,0.04,0.96,0.68,2.46,1.45c1.62,0.83,3.18,1.55,3.18,1.45 + c0-0.09-1.2-0.78-2.71-1.56C155.24,565.61,153.95,565.02,153.82,565.05z"/> + <path class="st107" d="M132.71,553.13c-0.21,0.04,0.8,0.76,2.25,1.62c1.61,0.95,3.16,1.73,3.25,1.62 + c0.08-0.1-1.05-0.89-2.5-1.75C134.23,553.74,132.92,553.09,132.71,553.13z"/> + <path class="st107" d="M114.89,541.46c-1.45-0.95-2.72-1.61-2.89-1.48c-0.16,0.12,0.84,0.96,2.28,1.91 + c1.55,1.02,3.1,1.82,3.14,1.62C117.46,543.32,116.34,542.41,114.89,541.46z"/> + <path class="st107" d="M91.72,525.75c-0.26,0.12,0.65,1.05,2.05,2.06c1.55,1.13,3.09,1.96,3.24,1.75 + c0.14-0.19-0.91-1.19-2.29-2.2C93.3,526.33,91.98,525.63,91.72,525.75z"/> + <path class="st107" d="M486.43,815.85c-1.31-0.98-2.65-1.83-2.84-1.81c-0.19,0.02,0.8,0.9,2.13,1.9c1.34,1,2.7,1.86,2.87,1.83 + C488.77,817.73,487.77,816.85,486.43,815.85z"/> + <path class="st107" d="M466.62,800.52c-1.29-1.04-2.6-1.96-2.79-1.95c-0.19,0.01,0.79,0.94,2.1,2 + c1.32,1.06,2.65,1.99,2.82,1.97C468.92,802.52,467.94,801.59,466.62,800.52z"/> + <path class="st107" d="M444.38,782.27c-0.17,0.02,0.83,1,2.11,2.11c1.31,1.12,2.6,2.09,2.75,2.06 + c0.15-0.03-0.85-1.03-2.14-2.14C445.82,783.2,444.55,782.25,444.38,782.27z"/> + <path class="st107" d="M427.13,767.35c1.26,1.14,2.6,2.22,2.82,2.26c0.23,0.05-0.64-0.87-1.94-2.06 + c-1.25-1.13-2.57-2.18-2.8-2.23C424.98,765.27,425.86,766.2,427.13,767.35z"/> + <path class="st107" d="M406.14,747.91c-0.16,0,0.82,1.02,2.09,2.2c1.28,1.19,2.54,2.22,2.68,2.21 + c0.14-0.02-0.84-1.07-2.11-2.24C407.55,748.92,406.3,747.91,406.14,747.91z"/> + <path class="st107" d="M387.19,730.24c-0.13,0.01,0.89,1.09,2.14,2.26c1.31,1.22,2.5,2.23,2.62,2.2 + c0.12-0.03-0.9-1.12-2.15-2.29C388.53,731.2,387.33,730.22,387.19,730.24z"/> + <path class="st107" d="M-31.84,415.34c-0.42,0.68,0.35,2.29,1.63,3.39c1.33,1.15,2.79,1.55,3.19,0.88 + c0.39-0.67-0.38-2.29-1.65-3.43C-29.96,415.02-31.41,414.64-31.84,415.34z"/> + <path class="st107" d="M-11.1,435.89c1.32,1.15,2.75,1.63,3.11,1.04c0.35-0.59-0.46-2.17-1.72-3.31 + c-1.28-1.16-2.69-1.61-3.09-0.99C-13.19,433.22-12.37,434.78-11.1,435.89z"/> + <path class="st107" d="M6.2,450.06c-0.31,0.58,0.59,2.07,1.9,3.17c1.34,1.13,2.69,1.61,2.95,1.04 + c0.26-0.57-0.64-2.11-1.91-3.22C7.86,449.93,6.51,449.48,6.2,450.06z"/> + <path class="st107" d="M26.97,470.15c1.27,1.15,2.74,1.86,3.11,1.49c0.38-0.38-0.37-1.69-1.65-2.9 + c-1.24-1.17-2.69-1.85-3.08-1.46C24.95,467.67,25.7,468.99,26.97,470.15z"/> + <path class="st107" d="M44.52,484.34c-0.34,0.34,0.49,1.6,1.78,2.72c1.29,1.12,2.73,1.84,3.03,1.51 + c0.31-0.33-0.52-1.6-1.81-2.76C46.26,484.68,44.85,483.99,44.52,484.34z"/> + <path class="st107" d="M63.87,500.93c-0.27,0.3,0.66,1.52,1.96,2.58c1.33,1.09,2.71,1.78,2.95,1.49 + c0.25-0.29-0.68-1.52-1.98-2.61C65.51,501.29,64.15,500.62,63.87,500.93z"/> + <path class="st107" d="M85.43,519.11c1.31,1.03,2.75,1.8,3.03,1.61c0.29-0.19-0.57-1.24-1.91-2.31 + c-1.29-1.04-2.7-1.78-3.01-1.58C83.24,517.03,84.11,518.08,85.43,519.11z"/> + <path class="st107" d="M370.96,714.73c-1.24-1.17-2.5-2.21-2.67-2.24c-0.17-0.02,0.79,0.98,2.05,2.17 + c1.27,1.19,2.54,2.28,2.69,2.28C373.18,716.95,372.23,715.92,370.96,714.73z"/> + <path class="st107" d="M349.32,694.85c-0.15-0.01,0.84,1,2.11,2.17c1.28,1.19,2.53,2.24,2.66,2.24 + c0.13-0.01-0.86-1.05-2.12-2.22C350.72,695.88,349.47,694.86,349.32,694.85z"/> + <path class="st107" d="M332.92,679.67c-1.26-1.13-2.52-2.14-2.68-2.15c-0.15-0.01,0.84,0.96,2.11,2.11 + c1.29,1.16,2.55,2.21,2.69,2.21C335.19,681.83,334.21,680.82,332.92,679.67z"/> + <path class="st107" d="M311,660.67c-0.19-0.05,0.75,0.84,2.05,1.96c1.29,1.11,2.6,2.16,2.77,2.2c0.18,0.04-0.75-0.89-2.06-2.02 + C312.49,661.71,311.19,660.72,311,660.67z"/> + <path class="st107" d="M296.4,648.46c0.06-0.06-1.04-1.08-2.34-2.12c-1.34-1.08-2.51-1.9-2.6-1.85 + c-0.09,0.04,1.03,1.01,2.33,2.06C295.14,647.64,296.33,648.52,296.4,648.46z"/> + <path class="st107" d="M273.89,631.03c1.36,1.02,2.63,1.9,2.75,1.88c0.12-0.02-0.96-0.95-2.28-1.95 + c-1.33-1-2.61-1.83-2.74-1.82C271.48,629.16,272.57,630.04,273.89,631.03z"/> + <path class="st107" d="M251.39,614.87c-0.15,0.01,0.93,0.81,2.29,1.73c1.38,0.93,2.7,1.77,2.84,1.75 + c0.13-0.02-0.94-0.87-2.3-1.8C252.86,615.63,251.54,614.86,251.39,614.87z"/> + <path class="st107" d="M233.39,603.19c-1.41-0.84-2.63-1.44-2.69-1.36c-0.06,0.08,1.16,0.87,2.55,1.69 + c1.44,0.86,2.67,1.52,2.7,1.43C235.97,604.86,234.76,604,233.39,603.19z"/> + <path class="st107" d="M209.47,590.17c-0.07,0.08,1.16,0.77,2.6,1.51c1.48,0.76,2.75,1.34,2.79,1.25 + c0.04-0.09-1.19-0.86-2.6-1.58C210.83,590.62,209.54,590.09,209.47,590.17z"/> + <path class="st107" d="M187.66,580.1c-0.15,0.06,1.04,0.63,2.5,1.26c1.5,0.64,2.91,1.17,3.05,1.11c0.13-0.06-1.03-0.7-2.5-1.33 + C189.23,580.51,187.81,580.05,187.66,580.1z"/> + <path class="st107" d="M168.24,571.73c1.48,0.71,2.86,1.26,3,1.18c0.13-0.08-1.03-0.78-2.46-1.48 + c-1.44-0.7-2.82-1.24-2.98-1.16C165.64,570.35,166.8,571.04,168.24,571.73z"/> + <path class="st107" d="M146.7,560.4c1.39,0.8,2.87,1.48,3.11,1.43c0.25-0.05-0.7-0.77-2.13-1.61c-1.37-0.8-2.82-1.46-3.09-1.41 + C144.32,558.87,145.29,559.59,146.7,560.4z"/> + <path class="st107" d="M123.79,545.97c-0.2,0.14,0.83,1.03,2.21,1.91c1.4,0.89,2.78,1.57,2.96,1.44 + c0.18-0.14-0.87-1.04-2.24-1.94C125.37,546.49,123.99,545.83,123.79,545.97z"/> + <path class="st107" d="M106.2,533.24c-1.37-0.96-2.61-1.54-2.75-1.28c-0.14,0.25,0.98,1.31,2.33,2.24 + c1.4,0.96,2.66,1.57,2.77,1.32C108.64,535.26,107.52,534.18,106.2,533.24z"/> + <path class="st107" d="M494.89,820.99c-0.1,0.14,1.01,1.08,2.4,2.04c1.38,0.96,2.6,1.62,2.63,1.43 + c0.02-0.17-0.93-0.98-2.19-1.87C496.33,821.62,494.99,820.86,494.89,820.99z"/> + <path class="st107" d="M477.87,807.95c-1.37-1.07-2.7-1.93-2.92-1.88c-0.21,0.04,0.84,1.03,2.16,2.05 + c1.19,0.92,2.37,1.68,2.66,1.72C480.1,809.87,479.23,809.01,477.87,807.95z"/> + <path class="st107" d="M455.34,790.2c-0.23,0.01,0.78,1.03,2.07,2.11c1.33,1.1,2.57,1.96,2.72,1.86 + c0.13-0.09-0.67-0.91-1.87-1.92C456.9,791.12,455.58,790.19,455.34,790.2z"/> + <path class="st107" d="M435.97,773.61c-0.1,0.12,0.96,1.21,2.27,2.34c1.32,1.14,2.48,1.97,2.51,1.78 + c0.03-0.17-0.87-1.11-2.07-2.15C437.36,774.42,436.07,773.49,435.97,773.61z"/> + <path class="st107" d="M418.77,758.55c1.31,1.2,2.53,2.16,2.75,2.14c0.19-0.02-0.52-0.84-1.69-1.93 + c-1.31-1.22-2.65-2.26-2.96-2.34C416.58,756.35,417.52,757.4,418.77,758.55z"/> + <path class="st107" d="M397.85,738.9c-0.21,0.01,0.79,1.11,2.05,2.28c1.14,1.06,2.27,1.97,2.56,2.05 + c0.32,0.09-0.5-0.88-1.79-2.1C399.35,739.9,398.07,738.89,397.85,738.9z"/> + <path class="st107" d="M-16.16,420.27c-1.3-1.21-2.76-1.65-3.07-0.93c-0.31,0.74,0.56,2.37,1.86,3.5 + c1.19,1.03,2.37,1.39,2.79,0.83C-14.12,423.05-14.82,421.53-16.16,420.27z"/> + <path class="st107" d="M2.77,438.54c-1.29-1.3-2.72-1.93-3.16-1.39c-0.42,0.51,0.37,2.1,1.62,3.29 + c1.13,1.07,2.41,1.63,2.89,1.26C4.66,441.27,4.04,439.82,2.77,438.54z"/> + <path class="st107" d="M20.13,458.25c1.28,1.19,2.64,1.74,2.92,1.17c0.25-0.52-0.42-1.75-1.57-2.89 + c-1.29-1.27-2.71-1.93-3.09-1.45C18.03,455.55,18.87,457.08,20.13,458.25z"/> + <path class="st107" d="M37.25,472.85c-0.25,0.52,0.67,1.93,1.99,3.08c1.31,1.14,2.6,1.65,2.77,1.08 + c0.16-0.5-0.64-1.74-1.82-2.83C38.9,472.97,37.49,472.35,37.25,472.85z"/> + <path class="st107" d="M56.36,490.09c-0.35,0.31,0.53,1.66,1.8,2.79c1.31,1.15,2.64,1.8,2.9,1.39 + c0.23-0.37-0.46-1.45-1.63-2.54C58.12,490.5,56.72,489.77,56.36,490.09z"/> + <path class="st107" d="M75.6,506.86c-0.19,0.39,0.8,1.64,2.14,2.71c1.34,1.07,2.6,1.63,2.72,1.19 + c0.11-0.39-0.74-1.48-1.95-2.49C77.17,507.14,75.79,506.48,75.6,506.86z"/> + <path class="st107" d="M381.69,723.42c-1.31-1.24-2.58-2.25-2.78-2.23c-0.19,0.02,0.82,1.13,2.08,2.32 + c1.14,1.06,2.26,1.98,2.53,2.05C383.82,725.63,382.99,724.65,381.69,723.42z"/> + <path class="st107" d="M359.94,703.5c-0.09,0.11,0.96,1.24,2.25,2.43c1.3,1.19,2.43,2.08,2.46,1.9 + c0.02-0.16-0.87-1.15-2.04-2.24C361.3,704.36,360.03,703.38,359.94,703.5z"/> + <path class="st107" d="M343.55,687.99c-1.31-1.2-2.57-2.14-2.64-2.01c-0.07,0.14,0.99,1.24,2.31,2.42 + c1.17,1.05,2.19,1.85,2.38,1.85C345.82,690.25,344.9,689.22,343.55,687.99z"/> + <path class="st107" d="M321.77,668.84c-0.22,0,0.79,1.05,2.07,2.17c1.31,1.16,2.52,2.08,2.65,1.99c0.11-0.08-0.68-0.95-1.86-2 + C323.29,669.8,322,668.84,321.77,668.84z"/> + <path class="st107" d="M305.03,654.11c-1.34-1.12-2.62-1.98-2.67-1.83c-0.05,0.15,1.07,1.22,2.39,2.3 + c1.2,0.99,2.22,1.72,2.4,1.69C307.36,656.25,306.41,655.27,305.03,654.11z"/> + <path class="st107" d="M285.63,638.36c-1.37-1.09-2.7-1.95-2.91-1.91c-0.2,0.03,0.86,1.01,2.17,2.04 + c1.19,0.93,2.36,1.73,2.64,1.78C287.85,640.32,286.98,639.43,285.63,638.36z"/> + <path class="st107" d="M262.71,621.56c-0.22,0.03,0.86,0.95,2.19,1.92c1.37,0.99,2.64,1.76,2.76,1.65 + c0.11-0.1-0.73-0.87-1.97-1.78C264.29,622.31,262.93,621.52,262.71,621.56z"/> + <path class="st107" d="M244.55,609.59c1.4,0.9,2.69,1.59,2.79,1.46c0.09-0.12-0.77-0.85-2.04-1.69 + c-1.43-0.94-2.81-1.64-3.02-1.58C242.07,607.84,243.18,608.7,244.55,609.59z"/> + <path class="st107" d="M221.33,595.32c-0.07,0.16,1.13,0.97,2.56,1.76c1.44,0.8,2.68,1.35,2.68,1.14 + c0-0.18-1.01-0.92-2.32-1.66C222.8,595.74,221.4,595.17,221.33,595.32z"/> + <path class="st107" d="M202.11,585.72c1.49,0.72,2.86,1.25,3.09,1.15c0.2-0.09-0.62-0.68-1.96-1.34 + c-1.49-0.75-3-1.29-3.34-1.23C199.59,584.34,200.69,585.03,202.11,585.72z"/> + <path class="st107" d="M180.89,575.67c-1.5-0.67-2.93-1.11-3-0.93c-0.07,0.19,1.18,0.92,2.66,1.56 + c1.35,0.59,2.51,0.92,2.73,0.81C183.52,576.99,182.44,576.36,180.89,575.67z"/> + <path class="st107" d="M159.38,564.95c-1.46-0.78-2.86-1.3-2.94-1.08c-0.07,0.22,1.13,1.07,2.57,1.82 + c1.31,0.69,2.44,1.11,2.66,0.98C161.91,566.54,160.89,565.76,159.38,564.95z"/> + <path class="st107" d="M135.59,551.43c-0.25,0.15,0.82,1.09,2.19,1.95c1.41,0.88,2.74,1.45,2.9,1.22 + c0.13-0.2-0.71-0.97-1.98-1.78C137.26,551.9,135.85,551.27,135.59,551.43z"/> + <path class="st107" d="M118.03,539c-1.39-0.97-2.77-1.59-2.87-1.29c-0.11,0.3,1.01,1.38,2.38,2.3c1.26,0.85,2.36,1.35,2.6,1.17 + C120.41,540.98,119.47,540,118.03,539z"/> + <path class="st107" d="M98.06,524.12c-1.36-1.05-2.74-1.69-2.87-1.35c-0.14,0.35,0.93,1.52,2.28,2.52 + c1.23,0.91,2.34,1.43,2.6,1.22C100.37,526.28,99.47,525.21,98.06,524.12z"/> + <path class="st107" d="M122.02,534.3c-1.18-0.87-2.46-1.36-2.79-1.07c-0.36,0.32,0.63,1.61,1.94,2.52 + c1.19,0.83,2.36,1.22,2.58,0.84C123.98,536.19,123.26,535.22,122.02,534.3z"/> + <path class="st107" d="M142.24,548.41c-1.21-0.79-2.51-1.22-2.83-0.95c-0.35,0.3,0.69,1.48,2.02,2.3 + c1.22,0.75,2.4,1.1,2.61,0.74C144.26,550.12,143.5,549.23,142.24,548.41z"/> + <path class="st107" d="M160.12,560.22c-0.29,0.27,0.55,1.15,1.75,1.86c1.21,0.71,2.58,1.14,2.95,0.9 + c0.44-0.28-0.4-1.2-1.85-2.01C161.73,560.29,160.41,559.95,160.12,560.22z"/> + <path class="st107" d="M183.3,572.97c1.25,0.61,2.68,0.86,3.06,0.62c0.39-0.26-0.28-0.94-1.55-1.54 + c-1.42-0.66-3.01-1.05-3.35-0.74C181.18,571.58,182.06,572.37,183.3,572.97z"/> + <path class="st107" d="M203.31,581.21c-0.14,0.33,0.83,1.11,2.08,1.73c1.46,0.72,2.79,1.02,2.88,0.59 + c0.07-0.38-0.91-1.2-2.25-1.82C204.72,581.11,203.44,580.89,203.31,581.21z"/> + <path class="st107" d="M224.69,592.48c-0.27,0.22,0.59,1.06,1.79,1.79c1.21,0.73,2.55,1.24,2.91,1.06 + c0.42-0.21-0.43-1.14-1.88-1.98C226.27,592.63,224.97,592.25,224.69,592.48z"/> + <path class="st107" d="M247.27,607.14c1.18,0.81,2.49,1.4,2.83,1.24c0.36-0.16-0.27-0.97-1.45-1.82 + c-1.31-0.94-2.83-1.56-3.14-1.32C245.25,605.44,246.1,606.34,247.27,607.14z"/> + <path class="st107" d="M265.84,619.29c-0.13,0.29,0.77,1.23,1.94,2.09c1.37,1,2.61,1.56,2.69,1.16c0.07-0.35-0.85-1.33-2.1-2.2 + C267.15,619.48,265.96,619.01,265.84,619.29z"/> + <path class="st107" d="M288.34,635.6c-1.2-0.92-2.36-1.48-2.53-1.24c-0.19,0.27,0.92,1.47,2.21,2.44 + c1.19,0.89,2.22,1.38,2.31,1.06C290.42,637.54,289.58,636.56,288.34,635.6z"/> + <path class="st107" d="M305.45,650.32c-0.25,0.15,0.54,1.15,1.65,2.12c1.12,0.98,2.36,1.77,2.69,1.68 + c0.39-0.11-0.4-1.18-1.73-2.31C306.91,650.83,305.7,650.17,305.45,650.32z"/> + <path class="st107" d="M327.25,668.47c-1.17-1.01-2.3-1.65-2.46-1.43c-0.19,0.25,0.9,1.53,2.15,2.58 + c1.16,0.98,2.16,1.53,2.25,1.23C329.27,670.55,328.45,669.52,327.25,668.47z"/> + <path class="st107" d="M343.93,684.28c-0.13,0.25,0.71,1.31,1.82,2.33c1.28,1.17,2.48,1.93,2.56,1.57 + c0.07-0.32-0.8-1.41-1.98-2.46C345.17,684.7,344.05,684.04,343.93,684.28z"/> + <path class="st107" d="M362.98,701.82c-0.26,0.11,0.5,1.14,1.58,2.19c1.08,1.05,2.32,1.94,2.65,1.89 + c0.39-0.06-0.37-1.16-1.66-2.37C364.43,702.48,363.25,701.71,362.98,701.82z"/> + <path class="st107" d="M383.74,721.96c1.16,1.09,2.22,1.81,2.47,1.66c0.24-0.15-0.42-1.1-1.56-2.2 + c-1.24-1.2-2.61-2.09-2.74-1.82C381.79,719.86,382.64,720.93,383.74,721.96z"/> + <path class="st107" d="M102.31,518.89c-1.15-0.95-2.42-1.47-2.76-1.16c-0.38,0.35,0.58,1.74,1.85,2.73 + c1.16,0.9,2.32,1.32,2.56,0.91C104.2,520.93,103.51,519.88,102.31,518.89z"/> + <path class="st107" d="M80.25,501.17c-0.33,0.35,0.37,1.59,1.45,2.6c1.09,1.02,2.39,1.66,2.8,1.36 + c0.48-0.35-0.22-1.64-1.53-2.8C81.84,501.33,80.59,500.8,80.25,501.17z"/> + <path class="st107" d="M62.7,486.48c1.08,1.07,2.37,1.72,2.79,1.39c0.44-0.35-0.04-1.49-1.1-2.62 + c-1.18-1.25-2.67-1.99-3.07-1.53C60.97,484.1,61.64,485.42,62.7,486.48z"/> + <path class="st107" d="M42.64,465.59c-0.36,0.43,0.27,1.81,1.32,2.91c1.06,1.11,2.35,1.76,2.8,1.39 + c0.52-0.43-0.11-1.87-1.39-3.13C44.26,465.68,43.01,465.15,42.64,465.59z"/> + <path class="st107" d="M26.93,448.17c-1.09-1.11-2.36-1.65-2.77-1.19c-0.45,0.51,0.35,2.24,1.57,3.39 + c1.11,1.05,2.29,1.45,2.6,0.88C28.65,450.64,28.07,449.34,26.93,448.17z"/> + <path class="st107" d="M6.98,431.32c1.04,1.15,2.36,1.76,2.84,1.3c0.5-0.48,0.1-1.8-0.93-3.02c-1.14-1.35-2.65-2.04-3.12-1.44 + C5.37,428.68,5.95,430.18,6.98,431.32z"/> + <path class="st107" d="M-12.66,409.43c-0.29,0.73,0.39,2.28,1.47,3.35c1.25,1.25,2.57,1.54,2.84,0.62 + c0.24-0.8-0.5-2.32-1.65-3.37C-11.13,408.99-12.38,408.72-12.66,409.43z"/> + <path class="st107" d="M-27.99,391.59c-1.05-1.12-2.44-1.62-2.96-1.07c-0.58,0.61,0.08,2.44,1.3,3.64 + c1.12,1.1,2.35,1.43,2.79,0.73C-26.41,394.19-26.89,392.77-27.99,391.59z"/> + <path class="st107" d="M500.09,821.19c1.25,0.87,2.36,1.41,2.61,1.25c0.25-0.16-0.48-0.94-1.7-1.81 + c-1.33-0.96-2.77-1.64-2.89-1.39C498,819.48,498.91,820.37,500.09,821.19z"/> + <path class="st107" d="M480.74,805.75c-1.18-0.9-2.38-1.53-2.62-1.4c-0.26,0.15,0.84,1.31,2.11,2.26 + c1.18,0.87,2.26,1.41,2.4,1.19C482.78,807.57,481.97,806.69,480.74,805.75z"/> + <path class="st107" d="M460.33,790.74c1.2,0.99,2.29,1.63,2.54,1.49c0.25-0.15-0.44-1.01-1.61-2.01 + c-1.28-1.09-2.69-1.9-2.82-1.64C458.33,788.81,459.2,789.8,460.33,790.74z"/> + <path class="st107" d="M440.75,774.08c1.11,1,2.34,1.82,2.66,1.75c0.33-0.06-0.26-0.92-1.38-1.94 + c-1.23-1.14-2.66-2.06-2.94-1.92C438.86,772.09,439.65,773.09,440.75,774.08z"/> + <path class="st107" d="M419.9,754.86c-0.09,0.26,0.79,1.33,1.9,2.33c1.29,1.16,2.45,1.87,2.49,1.5 + c0.04-0.32-0.88-1.42-2.05-2.44C421.09,755.25,419.99,754.61,419.9,754.86z"/> + <path class="st107" d="M403.31,738.86c-1.15-1.04-2.27-1.74-2.43-1.54c-0.18,0.22,0.88,1.53,2.13,2.62 + c1.15,1.01,2.13,1.61,2.22,1.33C405.32,740.98,404.5,739.94,403.31,738.86z"/> + <path class="st107" d="M373.26,713.53c-1.15-1.05-2.23-1.8-2.37-1.66c-0.16,0.16,0.88,1.33,2.28,2.59 + c1.18,1.07,2.21,1.79,2.2,1.52C375.37,715.71,374.38,714.55,373.26,713.53z"/> + <path class="st107" d="M354.28,695.86c-1.15-1.04-2.24-1.77-2.38-1.63c-0.16,0.16,0.89,1.32,2.29,2.57 + c1.19,1.06,2.22,1.77,2.21,1.5C356.4,698.02,355.41,696.87,354.28,695.86z"/> + <path class="st107" d="M332.84,676.84c-0.19,0.11,0.59,1,1.83,2.12c1.19,1.08,2.38,1.96,2.64,1.93 + c0.29-0.03-0.73-1.26-2.01-2.39C334.13,677.48,333.02,676.73,332.84,676.84z"/> + <path class="st107" d="M315.31,661.9c1.19,1.04,2.42,1.94,2.75,1.96c0.36,0.02-0.57-1.1-1.88-2.24 + c-1.18-1.02-2.33-1.77-2.58-1.7C313.35,659.98,314.1,660.83,315.31,661.9z"/> + <path class="st107" d="M296.67,645.2c-1.19-0.97-2.36-1.66-2.58-1.57c-0.23,0.1,0.54,0.92,1.78,1.95 + c1.39,1.15,2.71,2,2.81,1.78C298.77,647.17,297.85,646.16,296.67,645.2z"/> + <path class="st107" d="M274.23,628.19c-0.09,0.21,0.84,1.08,2.12,2.04c1.3,0.97,2.41,1.62,2.58,1.48 + c0.18-0.16-0.96-1.33-2.29-2.29C275.44,628.54,274.32,627.99,274.23,628.19z"/> + <path class="st107" d="M256.78,615.01c-1.23-0.85-2.45-1.42-2.68-1.3c-0.24,0.13,0.56,0.88,1.85,1.78 + c1.44,1.01,2.81,1.73,2.91,1.49C258.95,616.77,258,615.85,256.78,615.01z"/> + <path class="st107" d="M235.41,602.14c1.28,0.8,2.6,1.42,2.9,1.34c0.34-0.09-0.74-1.09-2.13-1.94 + c-1.27-0.77-2.49-1.25-2.71-1.09C233.24,600.61,234.07,601.3,235.41,602.14z"/> + <path class="st107" d="M217.32,591.2c0.17-0.19-0.74-0.95-2.03-1.66c-1.43-0.79-2.9-1.23-3-0.97c-0.09,0.24,0.9,0.95,2.28,1.66 + C215.96,590.96,217.15,591.39,217.32,591.2z"/> + <path class="st107" d="M193.35,578.79c-1.33-0.56-2.59-0.82-2.75-0.59c-0.18,0.25,1.03,0.98,2.65,1.65 + c1.37,0.57,2.55,0.84,2.54,0.55C195.78,580.11,194.64,579.34,193.35,578.79z"/> + <path class="st107" d="M171.77,569.02c-1.3-0.66-2.6-1.05-2.9-0.87c-0.3,0.18,0.5,0.85,1.84,1.55c1.51,0.79,3,1.26,3.16,0.99 + C174.03,570.44,173.07,569.68,171.77,569.02z"/> + <path class="st107" d="M150.39,557.21c-1.27-0.73-2.47-1.11-2.65-0.85c-0.2,0.29,0.92,1.24,2.47,2.09 + c1.31,0.72,2.46,1.07,2.47,0.73C152.7,558.85,151.62,557.92,150.39,557.21z"/> + <path class="st107" d="M129.05,545.02c1.25,0.87,2.58,1.46,2.91,1.3c0.37-0.18-0.64-1.32-2-2.24 + c-1.24-0.83-2.46-1.31-2.72-1.06C126.98,543.27,127.75,544.11,129.05,545.02z"/> + <path class="st107" d="M107.2,528.37c-0.27,0.29,0.47,1.22,1.74,2.2c1.22,0.94,2.53,1.58,2.87,1.39 + c0.38-0.21-0.6-1.47-1.93-2.46C108.68,528.6,107.46,528.09,107.2,528.37z"/> + <path class="st107" d="M90.48,513.96c-1.14-1-2.44-1.64-2.83-1.42c-0.4,0.24,0.2,1.21,1.39,2.26c1.33,1.17,2.81,1.94,3.09,1.59 + C92.39,516.08,91.64,514.98,90.48,513.96z"/> + <path class="st107" d="M69.99,498.51c1.19,1.06,2.45,1.7,2.79,1.41c0.37-0.33-0.55-1.8-1.84-2.91c-1.17-1-2.35-1.5-2.63-1.11 + C68.03,496.3,68.75,497.41,69.99,498.51z"/> + <path class="st107" d="M50.95,481.23c1.18,1.11,2.44,1.74,2.8,1.41c0.4-0.38-0.49-1.93-1.76-3.09 + c-1.15-1.04-2.35-1.53-2.64-1.09C49.04,478.91,49.73,480.08,50.95,481.23z"/> + <path class="st107" d="M32.29,463.55c1.22,1.13,2.4,1.63,2.69,1.14c0.32-0.54-0.62-2.21-1.89-3.33 + c-1.17-1.03-2.33-1.4-2.56-0.83C30.3,461.11,31.07,462.42,32.29,463.55z"/> + <path class="st107" d="M11.92,442.22c-0.28,0.61,0.44,1.96,1.65,3.11c1.22,1.16,2.41,1.66,2.76,1.13 + c0.37-0.57-0.51-2.31-1.77-3.45C13.41,441.98,12.2,441.62,11.92,442.22z"/> + <path class="st107" d="M-6.63,423.79c-0.31,0.67,0.38,2.06,1.59,3.21c1.21,1.16,2.44,1.62,2.81,1.04 + c0.4-0.63-0.45-2.43-1.71-3.56C-5.08,423.45-6.33,423.13-6.63,423.79z"/> + <path class="st107" d="M-22.4,406.06c-1.14-1.04-2.41-1.34-2.78-0.65c-0.42,0.78,0.41,2.41,1.83,3.61 + c1.2,1.01,2.44,1.23,2.64,0.46C-20.49,408.68-21.28,407.08-22.4,406.06z"/> + <path class="st107" d="M392.37,731.42c-1.15-1.07-2.28-1.88-2.5-1.82c-0.23,0.07,0.51,0.96,1.71,2.1 + c1.34,1.27,2.63,2.24,2.73,2.03C394.4,733.55,393.51,732.47,392.37,731.42z"/> + <path class="st107" d="M413.3,751.33c0.16-0.12-0.66-1.11-1.81-2.19c-1.28-1.19-2.58-2.1-2.68-1.89 + c-0.09,0.19,0.8,1.18,2.02,2.3C412.07,750.67,413.14,751.45,413.3,751.33z"/> + <path class="st107" d="M427.89,764.6c-0.1,0.17,0.77,1.14,2,2.23c1.24,1.1,2.34,1.88,2.52,1.77c0.19-0.12-0.9-1.36-2.17-2.47 + C429.08,765.13,427.99,764.43,427.89,764.6z"/> + <path class="st107" d="M447.14,781.48c-0.1,0.17,0.78,1.11,2.03,2.17c1.26,1.07,2.36,1.8,2.54,1.69 + c0.19-0.12-0.91-1.32-2.2-2.39C448.34,781.99,447.24,781.31,447.14,781.48z"/> + <path class="st107" d="M466.63,797.71c-0.11,0.17,0.79,1.07,2.06,2.08c1.28,1.01,2.4,1.71,2.58,1.6 + c0.2-0.12-0.93-1.28-2.24-2.29C467.85,798.18,466.74,797.54,466.63,797.71z"/> + <path class="st107" d="M486.47,813.07c-0.2,0.11,0.61,0.9,1.9,1.86c1.25,0.93,2.49,1.66,2.77,1.62 + c0.3-0.04-0.76-1.09-2.11-2.07C487.82,813.59,486.66,812.96,486.47,813.07z"/> + <path class="st107" d="M512.96,825.76c-1.26-0.86-2.56-1.4-2.8-1.17c-0.24,0.23,0.65,1.13,1.92,1.97 + c1.17,0.76,2.19,1.2,2.53,1.07C515,827.49,514.25,826.64,512.96,825.76z"/> + <path class="st107" d="M489.96,810.28c-0.27,0.22,0.56,1.15,1.83,2.08c1.22,0.89,2.46,1.45,2.61,1.17 + c0.13-0.25-0.62-1.12-1.67-1.91C491.48,810.67,490.22,810.07,489.96,810.28z"/> + <path class="st107" d="M472.89,796.39c-1.22-1.01-2.46-1.67-2.75-1.47c-0.29,0.2,0.49,1.16,1.75,2.17 + c1.09,0.87,2.13,1.44,2.49,1.35C474.78,798.34,474.1,797.4,472.89,796.39z"/> + <path class="st107" d="M453.07,780.02c-1.24-1.03-2.37-1.6-2.48-1.25c-0.11,0.35,0.79,1.42,2.04,2.43 + c1.01,0.82,2.08,1.38,2.29,1.19C455.15,782.16,454.27,781.02,453.07,780.02z"/> + <path class="st107" d="M432.95,764.03c1.17,1.06,2.4,1.81,2.65,1.59c0.2-0.19-0.49-1.21-1.43-2.1 + c-1.17-1.11-2.42-1.88-2.76-1.73C431.05,761.94,431.74,762.93,432.95,764.03z"/> + <path class="st107" d="M413.91,746.75c1.15,1.07,2.37,1.81,2.57,1.54c0.17-0.23-0.52-1.25-1.49-2.18 + c-1.18-1.13-2.39-1.89-2.7-1.71C411.97,744.59,412.69,745.63,413.91,746.75z"/> + <path class="st107" d="M395.95,728.41c-1.18-1.14-2.38-1.89-2.66-1.68c-0.29,0.22,0.46,1.28,1.67,2.42 + c1.05,0.98,2.05,1.64,2.41,1.56C397.76,730.6,397.12,729.54,395.95,728.41z"/> + <path class="st107" d="M-18.35,394.34c-0.39,0.72,0.26,2.3,1.41,3.44c1.16,1.15,2.38,1.45,2.69,0.63 + c0.27-0.72-0.26-2.04-1.28-3.15C-16.64,394.06-17.96,393.63-18.35,394.34z"/> + <path class="st107" d="M2.76,414.67c-1.11-1.27-2.4-1.81-2.84-1.19c-0.45,0.62,0.12,2.1,1.28,3.33 + c1.01,1.07,2.08,1.53,2.58,1.1C4.33,417.42,3.86,415.94,2.76,414.67z"/> + <path class="st107" d="M19.53,436.08c1.18,1.19,2.34,1.56,2.62,0.82c0.26-0.7-0.52-2.31-1.68-3.4 + c-0.99-0.94-2.1-1.27-2.41-0.73C17.7,433.4,18.38,434.93,19.53,436.08z"/> + <path class="st107" d="M36.36,451.84c-0.4,0.55,0.23,1.97,1.39,3.15c1.12,1.14,2.38,1.62,2.67,1c0.25-0.54-0.33-1.86-1.27-2.9 + C38.03,451.86,36.76,451.29,36.36,451.84z"/> + <path class="st107" d="M56.39,473.74c1.16,1.08,2.33,1.44,2.52,0.75c0.16-0.6-0.48-1.83-1.5-2.84 + c-1.18-1.17-2.39-1.63-2.68-1.02C54.45,471.24,55.19,472.63,56.39,473.74z"/> + <path class="st107" d="M76.25,489.92c-1.16-1.16-2.43-1.72-2.81-1.25c-0.39,0.48,0.27,1.74,1.48,2.87 + c1.04,0.98,2.1,1.47,2.54,1.16C77.96,492.35,77.41,491.07,76.25,489.92z"/> + <path class="st107" d="M92.36,506.1c-0.21,0.59,0.62,1.83,1.86,2.82c1.19,0.95,2.37,1.25,2.46,0.61 + c0.09-0.58-0.64-1.69-1.69-2.59C93.77,505.9,92.56,505.52,92.36,506.1z"/> + <path class="st107" d="M374.3,708.96c-0.17,0.32,0.67,1.46,1.88,2.56c1.17,1.07,2.26,1.67,2.35,1.27 + c0.07-0.35-0.65-1.37-1.7-2.36C375.63,709.3,374.47,708.64,374.3,708.96z"/> + <path class="st107" d="M355.33,691.25c-0.13,0.38,0.75,1.52,1.96,2.6c1.17,1.03,2.25,1.59,2.28,1.14 + c0.02-0.41-0.74-1.45-1.78-2.4C356.58,691.47,355.45,690.88,355.33,691.25z"/> + <path class="st107" d="M336.27,673.72c-0.19,0.33,0.67,1.45,1.88,2.53c1.18,1.04,2.29,1.62,2.38,1.21 + c0.08-0.36-0.64-1.37-1.7-2.34C337.63,674.01,336.45,673.39,336.27,673.72z"/> + <path class="st107" d="M318.88,659.07c1.24,1.06,2.33,1.61,2.47,1.21c0.13-0.38-0.82-1.62-2.02-2.6 + c-1.04-0.85-2.09-1.33-2.28-1.07C316.82,656.92,317.68,658.05,318.88,659.07z"/> + <path class="st107" d="M299.45,642.55c1.26,1.02,2.36,1.53,2.5,1.12c0.13-0.39-0.83-1.6-2.05-2.54 + c-1.05-0.81-2.12-1.25-2.31-0.98C297.37,640.47,298.23,641.56,299.45,642.55z"/> + <path class="st107" d="M279.83,626.86c1.23,0.91,2.37,1.35,2.46,0.9c0.08-0.39-0.68-1.35-1.78-2.19 + c-1.27-0.98-2.47-1.44-2.66-1.07C277.67,624.88,278.56,625.92,279.83,626.86z"/> + <path class="st107" d="M259.76,612.05c1.26,0.85,2.42,1.22,2.51,0.77c0.08-0.4-0.7-1.32-1.81-2.11 + c-1.29-0.91-2.52-1.31-2.71-0.92C257.56,610.18,258.47,611.18,259.76,612.05z"/> + <path class="st107" d="M239.2,598.31c1.33,0.81,2.5,1.14,2.65,0.69c0.14-0.42-0.87-1.5-2.16-2.24 + c-1.11-0.64-2.25-0.9-2.45-0.58C236.99,596.56,237.91,597.52,239.2,598.31z"/> + <path class="st107" d="M216.22,584.01c-0.15,0.46,0.82,1.34,2.18,2.03c1.3,0.66,2.52,0.85,2.56,0.35 + c0.03-0.45-0.81-1.28-1.97-1.9C217.64,583.75,216.37,583.56,216.22,584.01z"/> + <path class="st107" d="M197.73,573.63c-1.34-0.66-2.75-0.84-3.05-0.44c-0.29,0.4,0.63,1.24,1.99,1.85 + c1.24,0.56,2.35,0.76,2.74,0.46C199.86,575.16,199.1,574.3,197.73,573.63z"/> + <path class="st107" d="M176.04,563.6c-1.33-0.72-2.7-0.99-3.04-0.59c-0.35,0.4,0.47,1.27,1.84,1.97 + c1.18,0.61,2.33,0.85,2.76,0.56C178.06,565.21,177.35,564.32,176.04,563.6z"/> + <path class="st107" d="M154.9,551.74c-1.28-0.82-2.63-1.15-2.93-0.73c-0.3,0.42,0.56,1.42,1.85,2.19 + c1.18,0.71,2.25,0.99,2.65,0.69C156.91,553.55,156.2,552.57,154.9,551.74z"/> + <path class="st107" d="M131.61,537.35c-0.33,0.42,0.45,1.48,1.73,2.38c1.23,0.86,2.52,1.22,2.74,0.74 + c0.19-0.41-0.53-1.41-1.58-2.19C133.25,537.35,131.94,536.94,131.61,537.35z"/> + <path class="st107" d="M111.81,522.26c-0.4,0.4,0.28,1.51,1.52,2.52c1.18,0.96,2.5,1.43,2.79,0.98 + c0.24-0.38-0.42-1.48-1.4-2.33C113.51,522.38,112.2,521.87,111.81,522.26z"/> + <path class="st107" d="M504.75,816.23c-1.17-0.82-2.44-1.22-2.61-0.82c-0.15,0.33,0.68,1.3,1.67,1.99 + c1.03,0.72,2.24,1.18,2.54,0.97C506.7,818.12,505.91,817.06,504.75,816.23z"/> + <path class="st107" d="M482.19,800.45c-0.31,0.24,0.26,1.1,1.26,1.94c1.14,0.95,2.5,1.59,2.82,1.31 + c0.32-0.29-0.48-1.41-1.65-2.29C483.59,800.63,482.49,800.21,482.19,800.45z"/> + <path class="st107" d="M462.52,784.61c-0.31,0.25,0.24,1.14,1.23,2.03c1.12,1,2.46,1.7,2.78,1.41c0.32-0.29-0.46-1.46-1.61-2.4 + C463.92,784.83,462.83,784.36,462.52,784.61z"/> + <path class="st107" d="M445.39,768.98c-1.19-0.98-2.25-1.34-2.33-0.82c-0.07,0.45,0.75,1.51,1.8,2.37 + c1.09,0.89,2.07,1.33,2.28,1.01C447.38,771.16,446.57,769.95,445.39,768.98z"/> + <path class="st107" d="M423.96,750.81c-0.26,0.31,0.31,1.26,1.32,2.22c1.14,1.09,2.4,1.76,2.65,1.4 + c0.26-0.37-0.53-1.61-1.7-2.62C425.2,750.93,424.22,750.5,423.96,750.81z"/> + <path class="st107" d="M404.9,733.26c-0.17,0.36,0.56,1.5,1.51,2.38c1.13,1.05,2.37,1.66,2.52,1.21 + c0.14-0.39-0.57-1.55-1.51-2.44C406.33,733.39,405.1,732.83,404.9,733.26z"/> + <path class="st107" d="M-23.76,378.67c-0.45,0.62-0.09,2.01,0.8,3.11c1.02,1.25,2.41,1.77,2.89,1.06 + c0.48-0.72-0.07-2.44-1.15-3.55C-22.17,378.31-23.31,378.04-23.76,378.67z"/> + <path class="st107" d="M-4.59,401.43c1.07,1.15,2.41,1.5,2.72,0.68c0.27-0.72-0.27-2.25-1.16-3.25 + c-1.02-1.14-2.35-1.44-2.71-0.62C-6.04,398.93-5.49,400.46-4.59,401.43z"/> + <path class="st107" d="M13.49,420.93c1.07,1.16,2.4,1.53,2.7,0.74c0.26-0.69-0.29-2.2-1.18-3.2c-1.02-1.14-2.34-1.47-2.68-0.69 + C12.03,418.46,12.6,419.96,13.49,420.93z"/> + <path class="st107" d="M30.51,437.13c-0.42,0.54-0.03,1.83,0.88,2.93c1.02,1.24,2.39,1.85,2.82,1.23 + c0.44-0.62-0.15-2.26-1.23-3.38C32.04,436.94,30.92,436.59,30.51,437.13z"/> + <path class="st107" d="M51.22,457.17c-1.07-1.1-2.33-1.4-2.62-0.65c-0.24,0.62,0.42,2.09,1.32,3c0.95,0.95,2.13,1.38,2.51,0.9 + C52.87,459.87,52.28,458.27,51.22,457.17z"/> + <path class="st107" d="M69.61,475.83c-1.09-1.06-2.34-1.33-2.6-0.59c-0.21,0.61,0.48,2.03,1.41,2.9 + c0.98,0.92,2.14,1.32,2.49,0.84C71.33,478.42,70.69,476.88,69.61,475.83z"/> + <path class="st107" d="M85.76,493.11c-0.3,0.59,0.25,1.75,1.26,2.71c1.11,1.05,2.45,1.47,2.73,0.83 + c0.25-0.57-0.32-1.83-1.27-2.76C87.42,492.84,86.09,492.47,85.76,493.11z"/> + <path class="st107" d="M385.97,715.41c-0.22,0.37,0.39,1.38,1.41,2.35c1.11,1.07,2.37,1.73,2.57,1.31 + c0.18-0.37-0.46-1.48-1.41-2.42C387.47,715.6,386.21,715,385.97,715.41z"/> + <path class="st107" d="M367.04,697.54c-0.22,0.37,0.41,1.41,1.4,2.37c1.11,1.07,2.37,1.72,2.58,1.29 + c0.18-0.38-0.45-1.49-1.4-2.43C368.55,697.71,367.28,697.12,367.04,697.54z"/> + <path class="st107" d="M349.53,682.23c1.13,1.04,2.38,1.63,2.55,1.16c0.15-0.41-0.55-1.59-1.49-2.48 + c-1.08-1.02-2.33-1.54-2.54-1.09C347.86,680.21,348.58,681.36,349.53,682.23z"/> + <path class="st107" d="M331.41,663.35c-1.13-1-2.33-1.42-2.5-0.91c-0.14,0.42,0.66,1.61,1.61,2.44 + c1.01,0.88,2.12,1.4,2.41,1.11C333.26,665.65,332.53,664.35,331.41,663.35z"/> + <path class="st107" d="M312.34,646.51c-0.93-0.85-2.17-1.41-2.57-1.18c-0.46,0.27,0.18,1.44,1.3,2.43 + c0.97,0.86,2.2,1.47,2.57,1.25C314.08,648.76,313.45,647.54,312.34,646.51z"/> + <path class="st107" d="M292.5,629.89c-1.21-0.91-2.32-1.13-2.43-0.52c-0.09,0.52,0.74,1.58,1.8,2.38 + c1.11,0.83,2.12,1.17,2.36,0.77C294.51,632.04,293.71,630.8,292.5,629.89z"/> + <path class="st107" d="M271.98,616.25c1.28,0.89,2.44,1.17,2.53,0.56c0.08-0.53-0.73-1.64-1.76-2.37 + c-1.22-0.87-2.39-1.07-2.54-0.48C270.09,614.44,270.95,615.53,271.98,616.25z"/> + <path class="st107" d="M250.08,599.43c-0.35,0.38,0.2,1.28,1.24,2.07c1.17,0.89,2.59,1.35,2.95,0.92 + c0.36-0.43-0.42-1.63-1.62-2.43C251.6,599.29,250.43,599.05,250.08,599.43z"/> + <path class="st107" d="M232.08,586.71c-1.22-0.73-2.55-0.84-2.76-0.27c-0.17,0.47,0.67,1.49,1.7,2.09 + c1.08,0.63,2.33,0.89,2.66,0.51C234.06,588.6,233.29,587.44,232.08,586.71z"/> + <path class="st107" d="M209.79,576.65c1.27,0.66,2.69,0.78,2.89,0.21c0.18-0.5-0.59-1.48-1.65-2.06 + c-1.22-0.66-2.64-0.7-2.89-0.12C207.92,575.16,208.72,576.09,209.79,576.65z"/> + <path class="st107" d="M187.89,566.26c1.34,0.63,2.78,0.72,3.11,0.15c0.29-0.5-0.33-1.34-1.46-1.92 + c-1.24-0.64-2.72-0.66-3.1-0.09C186.1,564.91,186.72,565.71,187.89,566.26z"/> + <path class="st107" d="M165.13,553.24c-0.37,0.45,0.18,1.36,1.24,2.04c1.2,0.78,2.69,1.05,3.08,0.53 + c0.39-0.52-0.4-1.66-1.64-2.34C166.7,552.88,165.5,552.78,165.13,553.24z"/> + <path class="st107" d="M146.06,542.84c1.27,0.79,2.55,0.91,2.69,0.24c0.12-0.58-0.68-1.69-1.71-2.35 + c-1.24-0.78-2.49-0.86-2.69-0.19C144.19,541.09,145.01,542.19,146.06,542.84z"/> + <path class="st107" d="M124.38,525.93c-0.33,0.51,0.22,1.54,1.26,2.39c1.18,0.96,2.54,1.33,2.86,0.75 + c0.33-0.59-0.43-1.87-1.66-2.73C125.78,525.59,124.71,525.42,124.38,525.93z"/> + <path class="st107" d="M107.63,510.86c-0.92-0.86-2.2-1.3-2.66-0.94c-0.54,0.43,0.01,1.72,1.13,2.72 + c0.97,0.86,2.24,1.34,2.67,0.99C109.29,513.22,108.75,511.91,107.63,510.86z"/> + <path class="st107" d="M514.69,819.29c-0.33,0.31,0.33,1.25,1.37,2.01c1.06,0.76,2.27,1.15,2.64,0.83 + c0.37-0.32-0.22-1.21-1.34-1.98C516.21,819.33,515.04,818.96,514.69,819.29z"/> + <path class="st107" d="M497.11,805.88c-1.13-0.87-2.29-1.28-2.63-0.96c-0.32,0.31,0.32,1.32,1.35,2.13 + c1.04,0.82,2.23,1.26,2.59,0.94C498.79,807.67,498.2,806.72,497.11,805.88z"/> + <path class="st107" d="M477.04,790.37c-1.07-0.83-2.25-1.21-2.45-0.81c-0.2,0.41,0.56,1.52,1.6,2.34 + c1.07,0.85,2.14,1.21,2.4,0.79C478.85,792.28,478.17,791.25,477.04,790.37z"/> + <path class="st107" d="M456.54,775.59c1.04,0.91,2.15,1.38,2.47,1c0.32-0.37-0.29-1.43-1.38-2.37 + c-1.05-0.91-2.24-1.38-2.51-1.02C454.86,773.56,455.55,774.72,456.54,775.59z"/> + <path class="st107" d="M439.75,759.64c0.24-0.44-0.45-1.58-1.54-2.51c-1.05-0.9-2.18-1.3-2.36-0.85 + c-0.18,0.46,0.57,1.65,1.59,2.53C438.48,759.72,439.5,760.09,439.75,759.64z"/> + <path class="st107" d="M418.24,741.26c1.03,0.96,2.11,1.43,2.4,1.02c0.3-0.42-0.3-1.52-1.4-2.53 + c-1.03-0.94-2.21-1.44-2.45-1.04C416.55,739.11,417.26,740.35,418.24,741.26z"/> + <path class="st107" d="M397.83,720.96c-0.19,0.48,0.55,1.72,1.56,2.64c1.04,0.94,2.04,1.33,2.3,0.86 + c0.25-0.46-0.43-1.65-1.51-2.62C399.13,720.89,398.01,720.49,397.83,720.96z"/> + <path class="st107" d="M-29.38,362.77c-0.27,0.72,0.35,2.26,1.32,3.22c1,1,2.08,1.18,2.42,0.46c0.34-0.7-0.26-2.08-1.31-3.1 + C-27.96,362.37-29.12,362.08-29.38,362.77z"/> + <path class="st107" d="M-10.05,385.3c0.97,1.07,2.11,1.35,2.51,0.65c0.41-0.71-0.09-2.06-1.14-3.18 + c-0.98-1.04-2.19-1.43-2.52-0.78C-11.54,382.64-10.98,384.27-10.05,385.3z"/> + <path class="st107" d="M9.32,402.41c-0.98-1.05-2.18-1.4-2.52-0.71c-0.34,0.7,0.22,2.3,1.15,3.33 + c0.97,1.07,2.09,1.39,2.49,0.65C10.86,404.92,10.37,403.53,9.32,402.41z"/> + <path class="st107" d="M25.91,424.72c0.97,1.08,2.1,1.44,2.51,0.76c0.42-0.68-0.04-2.12-1.08-3.25 + c-0.98-1.07-2.2-1.4-2.55-0.76C24.44,422.11,24.98,423.68,25.91,424.72z"/> + <path class="st107" d="M44.14,444.42c1,1,2.04,1.2,2.38,0.46c0.32-0.72-0.27-2.17-1.31-3.19c-1.01-0.99-2.16-1.22-2.41-0.49 + C42.53,441.96,43.14,443.42,44.14,444.42z"/> + <path class="st107" d="M63.51,460.92c-1-0.98-2.2-1.27-2.49-0.62c-0.29,0.67,0.33,2.15,1.29,3.12c1,1.01,2.09,1.28,2.45,0.59 + C65.11,463.33,64.56,461.96,63.51,460.92z"/> + <path class="st107" d="M80.74,481.76c1,0.99,2.14,1.31,2.53,0.69c0.39-0.63-0.12-1.93-1.19-2.96 + c-1.01-0.98-2.23-1.31-2.57-0.72C79.18,479.36,79.78,480.81,80.74,481.76z"/> + <path class="st107" d="M98.4,496.36c-0.42,0.53,0.07,1.83,1.05,2.8c0.98,0.97,2.18,1.34,2.64,0.8c0.46-0.54,0-1.79-1.02-2.77 + C99.99,496.15,98.84,495.8,98.4,496.36z"/> + <path class="st107" d="M380.51,705.68c1.04,0.94,2.03,1.3,2.27,0.79c0.23-0.48-0.46-1.7-1.54-2.66 + c-1.04-0.93-2.15-1.31-2.32-0.81C378.74,703.54,379.47,704.75,380.51,705.68z"/> + <path class="st107" d="M362.58,686.08c-1.04-1-2.2-1.51-2.52-1.12c-0.31,0.38,0.32,1.62,1.28,2.57c1,0.99,2.12,1.51,2.48,1.11 + C364.18,688.25,363.63,687.1,362.58,686.08z"/> + <path class="st107" d="M343.52,668.23c-1.03-0.95-2.23-1.39-2.49-0.95c-0.27,0.44,0.42,1.7,1.41,2.62 + c1.03,0.96,2.12,1.4,2.44,0.95C345.2,670.39,344.6,669.22,343.52,668.23z"/> + <path class="st107" d="M324.58,650.99c-1.09-1.03-2.22-1.49-2.61-1.09c-0.38,0.38,0.17,1.54,1.15,2.5 + c0.98,0.96,2.16,1.47,2.57,1.09C326.1,653.09,325.61,651.96,324.58,650.99z"/> + <path class="st107" d="M305.08,633.98c-1.05-0.89-2.28-1.25-2.55-0.78c-0.28,0.47,0.42,1.71,1.43,2.57 + c1.05,0.9,2.17,1.27,2.51,0.78C306.79,636.06,306.19,634.91,305.08,633.98z"/> + <path class="st107" d="M284.33,619.71c1.06,0.86,2.21,1.18,2.56,0.68c0.35-0.51-0.24-1.62-1.38-2.52 + c-1.07-0.85-2.32-1.15-2.6-0.67C282.61,617.68,283.31,618.89,284.33,619.71z"/> + <path class="st107" d="M262.92,602.15c-0.27,0.53,0.47,1.7,1.52,2.46c1.09,0.79,2.24,1.02,2.56,0.47 + c0.33-0.56-0.29-1.64-1.46-2.47C264.45,601.84,263.18,601.63,262.92,602.15z"/> + <path class="st107" d="M242.53,588.24c-0.23,0.6,0.56,1.71,1.66,2.39c1.13,0.7,2.24,0.8,2.54,0.19c0.29-0.59-0.42-1.68-1.6-2.4 + C244,587.73,242.75,587.66,242.53,588.24z"/> + <path class="st107" d="M221.7,575.51c-0.27,0.58,0.5,1.66,1.6,2.29c1.14,0.65,2.33,0.72,2.67,0.11 + c0.34-0.61-0.32-1.63-1.54-2.31C223.29,574.96,221.97,574.94,221.7,575.51z"/> + <path class="st107" d="M200.32,564.32c-0.24,0.64,0.59,1.65,1.73,2.17c1.18,0.54,2.35,0.48,2.67-0.18 + c0.31-0.64-0.43-1.64-1.67-2.19C201.87,563.59,200.55,563.7,200.32,564.32z"/> + <path class="st107" d="M183.01,556.07c0.32-0.66-0.42-1.66-1.65-2.22c-1.18-0.54-2.49-0.44-2.73,0.18 + c-0.25,0.65,0.56,1.7,1.7,2.23C181.51,556.82,182.68,556.74,183.01,556.07z"/> + <path class="st107" d="M159.08,544.36c1.11,0.71,2.34,0.81,2.74,0.21c0.4-0.61-0.21-1.68-1.37-2.4 + c-1.13-0.7-2.44-0.79-2.78-0.22C157.33,542.51,158.02,543.68,159.08,544.36z"/> + <path class="st107" d="M137.37,528.19c-0.38,0.54,0.21,1.75,1.23,2.55c1.04,0.82,2.28,1.04,2.72,0.48 + c0.44-0.57-0.09-1.7-1.19-2.53C139.02,527.86,137.76,527.63,137.37,528.19z"/> + <path class="st107" d="M117.58,512.97c-0.34,0.57,0.29,1.88,1.29,2.72c1.05,0.88,2.22,1.12,2.62,0.53 + c0.41-0.61-0.13-1.78-1.25-2.69C119.17,512.66,117.92,512.4,117.58,512.97z"/> + <path class="st107" d="M527.69,822.23c-0.39,0.44,0.24,1.36,1.39,2.09c0.96,0.61,2.05,0.88,2.45,0.6 + c0.47-0.32-0.07-1.31-1.15-2.08C529.34,822.1,528.07,821.81,527.69,822.23z"/> + <path class="st107" d="M507.28,808.41c-0.39,0.44,0.21,1.43,1.34,2.22c0.94,0.67,2.01,0.99,2.41,0.72 + c0.47-0.32-0.05-1.36-1.11-2.21C508.91,808.32,507.66,807.98,507.28,808.41z"/> + <path class="st107" d="M487.31,793.42c-0.4,0.44,0.17,1.47,1.28,2.33c0.93,0.72,1.98,1.09,2.38,0.83 + c0.48-0.31-0.01-1.4-1.05-2.31C488.93,793.39,487.69,793,487.31,793.42z"/> + <path class="st107" d="M467.69,777.45c-0.42,0.43,0.11,1.49,1.21,2.42c0.92,0.78,1.95,1.19,2.37,0.94 + c0.48-0.29,0.02-1.44-0.98-2.4C469.32,777.48,468.09,777.03,467.69,777.45z"/> + <path class="st107" d="M448.25,760.82c-0.27,0.57,0.41,1.69,1.56,2.6c0.97,0.78,1.89,1.06,2.17,0.65 + c0.31-0.46-0.34-1.76-1.33-2.64C449.64,760.55,448.51,760.27,448.25,760.82z"/> + <path class="st107" d="M430.33,745.84c1.06,1.01,2.21,1.46,2.51,0.97c0.29-0.48-0.36-1.83-1.35-2.72 + c-0.84-0.76-1.87-1.11-2.24-0.78C428.78,743.72,429.26,744.82,430.33,745.84z"/> + <path class="st107" d="M410.24,725.55c-0.41,0.47,0.11,1.64,1.17,2.64c0.89,0.84,1.9,1.3,2.31,1.02 + c0.48-0.33,0.04-1.56-0.94-2.62C411.84,725.58,410.64,725.1,410.24,725.55z"/> + <path class="st107" d="M-16.98,366.96c-0.38,0.45,0.12,1.7,1.14,2.77c0.85,0.89,1.85,1.37,2.24,1.1 + c0.46-0.32,0.01-1.56-0.94-2.65C-15.46,367.11-16.61,366.53-16.98,366.96z"/> + <path class="st107" d="M3.46,387.11c-0.93-0.99-2.03-1.4-2.31-0.81c-0.25,0.53,0.18,1.61,1.05,2.6c1,1.13,2.13,1.64,2.47,1.13 + C4.99,389.52,4.4,388.1,3.46,387.11z"/> + <path class="st107" d="M19.25,405.75c-0.3,0.66,0.3,2,1.38,3.04c0.92,0.88,1.83,1.16,2.13,0.68c0.34-0.55-0.25-2-1.19-3 + C20.63,405.45,19.54,405.1,19.25,405.75z"/> + <path class="st107" d="M39.67,425.8c-0.96-1-2.04-1.27-2.33-0.56c-0.25,0.63,0.18,1.78,1.06,2.76c1,1.11,2.17,1.51,2.5,0.89 + C41.22,428.28,40.61,426.78,39.67,425.8z"/> + <path class="st107" d="M56.6,447.36c1.01,1.07,2.2,1.38,2.52,0.7c0.32-0.68-0.31-2.19-1.28-3.15c-0.83-0.82-1.83-1.1-2.21-0.61 + C55.15,444.91,55.58,446.28,56.6,447.36z"/> + <path class="st107" d="M76.44,463.8c-0.91-0.97-2.15-1.27-2.54-0.58c-0.36,0.63-0.01,1.8,0.84,2.77 + c0.99,1.13,2.21,1.54,2.66,0.92C77.87,466.27,77.4,464.81,76.44,463.8z"/> + <path class="st107" d="M92.41,481.63c-0.24,0.9,0.48,2.3,1.63,3.12c0.96,0.68,1.92,0.64,2.16-0.08 + c0.29-0.85-0.38-2.29-1.42-3.14C93.74,480.68,92.65,480.71,92.41,481.63z"/> + <path class="st107" d="M391.33,707.54c-0.37,0.52,0.19,1.72,1.25,2.71c0.89,0.83,1.9,1.26,2.28,0.94c0.45-0.38-0.02-1.65-1-2.7 + C392.91,707.5,391.69,707.05,391.33,707.54z"/> + <path class="st107" d="M372.47,689.44c-0.38,0.53,0.18,1.75,1.24,2.74c0.89,0.83,1.9,1.25,2.29,0.92 + c0.45-0.4-0.01-1.68-0.99-2.73C374.06,689.37,372.83,688.94,372.47,689.44z"/> + <path class="st107" d="M354.73,674.14c1.05,1,2.22,1.39,2.5,0.82c0.28-0.57-0.4-1.99-1.4-2.89c-0.86-0.77-1.87-1.05-2.22-0.64 + C353.16,671.94,353.66,673.13,354.73,674.14z"/> + <path class="st107" d="M334.55,653.76c-0.39,0.57,0.17,1.78,1.24,2.75c0.9,0.81,1.93,1.18,2.32,0.82 + c0.46-0.43,0.01-1.73-0.99-2.75C336.18,653.59,334.93,653.22,334.55,653.76z"/> + <path class="st107" d="M315.38,636.52c-0.41,0.58,0.13,1.78,1.21,2.72c0.9,0.78,1.95,1.13,2.36,0.76 + c0.48-0.44,0.04-1.73-0.96-2.73C317.03,636.3,315.78,635.96,315.38,636.52z"/> + <path class="st107" d="M295.91,620.03c-0.34,0.67,0.32,1.85,1.47,2.71c0.99,0.74,1.95,0.94,2.29,0.45 + c0.38-0.56-0.2-1.93-1.2-2.8C297.48,619.56,296.23,619.4,295.91,620.03z"/> + <path class="st107" d="M278.69,604.44c-1.05-0.79-2.24-0.83-2.52-0.11c-0.26,0.64,0.25,1.61,1.22,2.38 + c1.1,0.88,2.34,1.13,2.67,0.5C280.39,606.59,279.72,605.22,278.69,604.44z"/> + <path class="st107" d="M256.1,589.53c-0.33,0.74,0.36,1.84,1.58,2.58c1.03,0.62,2.03,0.7,2.35,0.14 + c0.37-0.63-0.27-1.96-1.32-2.71C257.66,588.8,256.42,588.81,256.1,589.53z"/> + <path class="st107" d="M235.63,575.86c-0.39,0.72,0.28,1.82,1.48,2.51c1.02,0.58,2.09,0.64,2.47,0.1 + c0.44-0.62-0.13-1.91-1.2-2.63C237.35,575.14,236,575.17,235.63,575.86z"/> + <path class="st107" d="M214.7,563.5c-0.49,0.72,0.08,1.79,1.27,2.44c0.99,0.54,2.16,0.6,2.63,0.1c0.56-0.59,0.1-1.79-0.99-2.53 + C216.56,562.79,215.17,562.8,214.7,563.5z"/> + <path class="st107" d="M195.91,552.38c-1.12-0.52-2.48-0.24-2.84,0.54c-0.32,0.71,0.2,1.56,1.25,2.09 + c1.2,0.61,2.56,0.55,2.98-0.18C197.7,554.13,197.03,552.91,195.91,552.38z"/> + <path class="st107" d="M171.56,542.21c-0.21,0.84,0.64,1.89,1.92,2.38c1.07,0.41,2.09,0.2,2.32-0.48 + c0.27-0.81-0.5-1.98-1.67-2.51C172.96,541.06,171.78,541.35,171.56,542.21z"/> + <path class="st107" d="M150.99,529.11c-0.47,0.73,0.09,1.9,1.23,2.64c0.95,0.62,2.09,0.72,2.55,0.22 + c0.54-0.6,0.11-1.91-0.94-2.75C152.81,528.4,151.44,528.41,150.99,529.11z"/> + <path class="st107" d="M131,514.53c-0.55,0.78-0.06,1.97,1.05,2.84c0.93,0.72,2.03,0.94,2.52,0.48 + c0.57-0.53,0.24-2.02-0.76-2.97C132.84,513.97,131.52,513.79,131,514.53z"/> + <path class="st107" d="M111.38,498.87c-0.25,0.93,0.48,2.29,1.66,3.04c0.99,0.63,1.97,0.52,2.22-0.23 + c0.3-0.88-0.38-2.29-1.44-3.08C112.74,497.82,111.63,497.92,111.38,498.87z"/> + <path class="st107" d="M544.9,826.19c0.22-0.56-0.36-1.44-1.35-2.03c-1.1-0.65-2.41-0.69-2.62-0.09 + c-0.17,0.51,0.51,1.51,1.39,2.05C543.4,826.78,544.65,826.82,544.9,826.19z"/> + <path class="st107" d="M520.33,810.71c-0.32,0.56,0.47,1.79,1.56,2.44c0.93,0.56,1.98,0.62,2.27,0.14 + c0.3-0.51-0.19-1.47-1.11-2.15C521.96,810.32,520.66,810.12,520.33,810.71z"/> + <path class="st107" d="M502.68,796.56c-1.05-0.78-2.32-0.9-2.53-0.25c-0.18,0.56,0.47,1.67,1.32,2.32 + c1.04,0.79,2.23,0.91,2.48,0.23C504.18,798.26,503.63,797.27,502.68,796.56z"/> + <path class="st107" d="M480.4,780.61c-0.31,0.61,0.45,1.97,1.5,2.71c0.9,0.64,1.91,0.76,2.19,0.24c0.3-0.54-0.16-1.6-1.06-2.38 + C481.98,780.26,480.71,779.99,480.4,780.61z"/> + <path class="st107" d="M461.05,764.04c-0.43,0.52,0.15,1.88,1.15,2.74c0.86,0.75,1.9,1,2.29,0.54 + c0.47-0.55-0.04-1.83-1.11-2.73C462.52,763.85,461.41,763.6,461.05,764.04z"/> + <path class="st107" d="M443.16,749.81c1.05,0.86,2.11,0.91,2.27,0.09c0.14-0.72-0.46-1.84-1.4-2.6 + c-0.89-0.72-1.96-0.89-2.25-0.39C441.44,747.52,442.14,748.98,443.16,749.81z"/> + <path class="st107" d="M424.16,732.19c1.04,0.87,2.09,0.91,2.24,0.06c0.14-0.74-0.47-1.89-1.41-2.67 + c-0.89-0.72-1.96-0.9-2.23-0.37C422.44,729.84,423.15,731.35,424.16,732.19z"/> + <path class="st107" d="M403.89,711.17c-0.32,0.67,0.39,2.19,1.4,3.03c0.87,0.73,1.85,0.88,2.15,0.3 + c0.31-0.6-0.11-1.77-0.97-2.66C405.46,710.81,404.21,710.5,403.89,711.17z"/> + <path class="st107" d="M795.07,825.16c-0.4,0.86,0.63,1.49,2.03,1.25c1.21-0.2,2.54-1.02,2.91-1.79 + c0.39-0.81-0.24-1.39-1.44-1.33C797.16,823.37,795.47,824.29,795.07,825.16z"/> + <path class="st107" d="M821.01,823.7c-0.56,0.9,0.19,1.79,1.49,1.82c1.12,0.02,2.47-0.61,2.99-1.43 + c0.61-0.96-0.06-1.83-1.43-1.84C822.93,822.25,821.48,822.95,821.01,823.7z"/> + <path class="st107" d="M845.52,825.86c-0.56,0.89,0.11,1.98,1.33,2.22c1.05,0.2,2.35-0.28,2.87-1.08 + c0.61-0.95,0.03-2-1.27-2.23C847.38,824.58,845.99,825.1,845.52,825.86z"/> + <path class="st107" d="M-23.69,353.72c-0.23,0.34,0.53,1.66,1.51,2.58c0.83,0.78,1.75,1.19,1.95,0.89 + c0.22-0.31-0.28-1.24-1.12-2.12C-22.34,354.02-23.46,353.37-23.69,353.72z"/> + <path class="st107" d="M-5.29,372.42c-0.22,0.41,0.54,1.79,1.51,2.7c0.84,0.79,1.73,1.14,1.94,0.79 + c0.22-0.37-0.27-1.34-1.12-2.24C-3.95,372.63-5.07,372.01-5.29,372.42z"/> + <path class="st107" d="M12.99,391.39c-0.23,0.45,0.51,1.88,1.48,2.8c0.84,0.79,1.74,1.12,1.96,0.73 + c0.23-0.41-0.25-1.42-1.09-2.33C14.36,391.52,13.23,390.94,12.99,391.39z"/> + <path class="st107" d="M31.25,410.46c-0.25,0.5,0.47,1.96,1.44,2.87c0.84,0.79,1.76,1.07,2,0.64c0.25-0.45-0.21-1.49-1.06-2.4 + C32.65,410.51,31.51,409.96,31.25,410.46z"/> + <path class="st107" d="M52.03,430.48c-0.99-1.09-2.15-1.62-2.47-1.1c-0.26,0.42,0.19,1.6,0.98,2.53c0.88,1.04,2.11,1.53,2.44,1 + C53.27,432.45,52.85,431.39,52.03,430.48z"/> + <path class="st107" d="M69.14,450.83c0.82,0.82,1.83,1.14,2.22,0.71c0.46-0.51-0.04-1.78-1.06-2.77 + c-0.84-0.81-1.88-1.2-2.23-0.8C67.65,448.42,68.19,449.87,69.14,450.83z"/> + <path class="st107" d="M86.6,466.13c-0.33,0.61,0.35,2.12,1.35,2.97c0.86,0.72,1.87,0.87,2.17,0.33 + c0.31-0.56-0.12-1.67-0.96-2.53C88.16,465.89,86.94,465.51,86.6,466.13z"/> + <path class="st107" d="M109.15,486.48c0.26-0.67-0.24-1.76-1.15-2.55c-1-0.87-2.26-1.05-2.5-0.33 + c-0.21,0.62,0.36,1.93,1.16,2.66C107.64,487.14,108.86,487.24,109.15,486.48z"/> + <path class="st107" d="M385.17,692.84c-0.44,0.57,0.09,2.05,1.07,2.99c0.84,0.81,1.87,1.09,2.28,0.58 + c0.48-0.6,0.02-2-1.02-2.98C386.65,692.62,385.55,692.35,385.17,692.84z"/> + <path class="st107" d="M367.4,677.63c0.84,0.81,1.88,1.07,2.3,0.56c0.5-0.61,0.04-2.02-0.99-3c-0.85-0.81-1.95-1.06-2.34-0.57 + C365.9,675.19,366.43,676.69,367.4,677.63z"/> + <path class="st107" d="M348.48,659.58c0.83,0.8,1.89,1.06,2.33,0.54c0.52-0.63,0.09-2.03-0.95-3.01 + c-0.86-0.81-1.96-1.05-2.37-0.55C347.01,657.14,347.52,658.65,348.48,659.58z"/> + <path class="st107" d="M329.47,641.91c0.84,0.78,1.91,1.01,2.35,0.46c0.53-0.65,0.1-2.06-0.95-3.01c-0.87-0.79-1.97-1-2.4-0.47 + C327.98,639.49,328.49,641,329.47,641.91z"/> + <path class="st107" d="M312.79,624.87c0.29-0.74-0.18-1.94-1.1-2.74c-1.01-0.88-2.32-0.94-2.6-0.13 + c-0.23,0.69,0.33,2.02,1.14,2.75C311.23,625.63,312.47,625.71,312.79,624.87z"/> + <path class="st107" d="M289.76,605.35c-0.48,0.69,0.07,2.16,1.08,2.99c0.88,0.71,1.96,0.82,2.4,0.2 + c0.52-0.72,0.03-2.08-1.05-2.93C291.31,604.91,290.16,604.76,289.76,605.35z"/> + <path class="st107" d="M272.46,590.09c-1.05-0.79-2.37-0.81-2.64-0.02c-0.23,0.68,0.34,1.99,1.18,2.65 + c1.02,0.8,2.31,0.71,2.63-0.11C273.92,591.88,273.41,590.8,272.46,590.09z"/> + <path class="st107" d="M252.28,575.54c-1.07-0.72-2.41-0.66-2.67,0.15c-0.23,0.69,0.37,1.92,1.24,2.53 + c1.06,0.74,2.33,0.62,2.65-0.23C253.78,577.24,253.25,576.19,252.28,575.54z"/> + <path class="st107" d="M229.08,562.28c-0.47,0.7,0.13,2.05,1.21,2.69c0.94,0.55,2.08,0.48,2.53-0.15 + c0.52-0.74-0.03-1.96-1.18-2.62C230.7,561.66,229.48,561.69,229.08,562.28z"/> + <path class="st107" d="M207.92,550.55c-0.5,0.7,0.09,1.97,1.2,2.55c0.96,0.5,2.13,0.38,2.6-0.26c0.47-0.64,0.13-1.63-0.77-2.26 + C209.92,549.87,208.43,549.84,207.92,550.55z"/> + <path class="st107" d="M187.47,542.69c0.96,0.48,2.15,0.33,2.61-0.31c0.55-0.75-0.01-1.88-1.19-2.44 + c-0.97-0.46-2.2-0.37-2.63,0.22C185.76,540.85,186.36,542.13,187.47,542.69z"/> + <path class="st107" d="M166.31,531.04c0.92,0.56,2.08,0.5,2.54-0.11c0.54-0.73,0.01-1.92-1.13-2.59 + c-0.94-0.55-2.13-0.55-2.55,0.03C164.67,529.03,165.24,530.39,166.31,531.04z"/> + <path class="st107" d="M144.75,514.81c-0.46,0.66,0.12,2.07,1.16,2.79c0.9,0.63,2.01,0.64,2.44,0.03 + c0.51-0.71-0.03-1.96-1.14-2.71C146.31,514.32,145.13,514.26,144.75,514.81z"/> + <path class="st107" d="M124.93,499.73c-0.44,0.62,0.12,2.07,1.13,2.87c0.88,0.69,1.96,0.78,2.38,0.21 + c0.49-0.67-0.03-1.95-1.11-2.78C126.45,499.36,125.3,499.21,124.93,499.73z"/> + <path class="st107" d="M556.1,826.53c1.01,0.58,2.18,0.6,2.54,0.04c0.34-0.54-0.27-1.61-1.25-2.17 + c-1.03-0.59-2.18-0.59-2.53-0.01C554.5,824.98,555.07,825.94,556.1,826.53z"/> + <path class="st107" d="M536.38,811.77c-1.02-0.62-2.13-0.6-2.4,0.04c-0.28,0.66,0.3,1.63,1.37,2.28c1,0.61,2.16,0.61,2.41,0 + C538.02,813.46,537.38,812.38,536.38,811.77z"/> + <path class="st107" d="M513.64,797.79c-0.28,0.68,0.28,1.71,1.32,2.42c0.98,0.67,2.11,0.72,2.37,0.08 + c0.27-0.64-0.34-1.79-1.32-2.46C515.01,797.15,513.91,797.14,513.64,797.79z"/> + <path class="st107" d="M496.32,782.93c-0.92-0.82-2.07-1.05-2.51-0.5c-0.45,0.56-0.04,1.66,0.92,2.5 + c0.93,0.82,2.06,1.07,2.51,0.55C497.68,784.97,497.24,783.75,496.32,782.93z"/> + <path class="st107" d="M474.16,766.43c-0.3,0.71,0.24,1.84,1.23,2.65c0.95,0.77,2.05,0.88,2.33,0.21 + c0.28-0.67-0.29-1.93-1.23-2.7C475.53,765.8,474.45,765.74,474.16,766.43z"/> + <path class="st107" d="M457.26,749.67c-0.94-0.83-2.03-0.95-2.35-0.27c-0.33,0.7,0.16,1.87,1.14,2.73 + c0.91,0.8,2.04,0.97,2.35,0.32C458.7,751.81,458.17,750.48,457.26,749.67z"/> + <path class="st107" d="M435.92,731.71c-0.41,0.62,0.02,1.87,0.94,2.78c0.9,0.89,1.99,1.15,2.41,0.56 + c0.39-0.56-0.06-1.97-0.94-2.84C437.42,731.3,436.33,731.08,435.92,731.71z"/> + <path class="st107" d="M417.03,713.68c-0.39,0.66,0.05,1.95,0.97,2.85c0.9,0.89,1.99,1.13,2.38,0.49 + c0.37-0.6-0.11-2.02-0.98-2.88C418.49,713.25,417.42,713.02,417.03,713.68z"/> + <path class="st107" d="M758.91,823.58c-0.5,0.8,0.18,1.24,1.52,1.01c1.31-0.23,2.81-1.05,3.33-1.84 + c0.5-0.75-0.24-1.26-1.53-1.03C760.92,821.93,759.4,822.8,758.91,823.58z"/> + <path class="st107" d="M786.08,818.64c-0.27,0.78,0.6,1.17,1.98,0.9c1.36-0.27,2.75-1.16,3.01-1.92 + c0.25-0.76-0.67-1.2-1.99-0.93C787.72,816.96,786.35,817.86,786.08,818.64z"/> + <path class="st107" d="M812.53,815.67c-0.29,0.83,0.54,1.35,1.86,1.21c1.31-0.14,2.67-0.94,2.94-1.74 + c0.27-0.8-0.6-1.39-1.87-1.25C814.16,814.02,812.81,814.85,812.53,815.67z"/> + <path class="st107" d="M837.87,815.65c-0.46,0.84,0.16,1.64,1.35,1.77c1.17,0.14,2.54-0.43,3-1.25 + c0.44-0.78-0.22-1.7-1.35-1.83C839.7,814.2,838.33,814.81,837.87,815.65z"/> + <path class="st107" d="M862.99,822.12c1.14,0.28,2.39-0.18,2.7-1.02c0.3-0.83-0.39-1.83-1.5-2.11 + c-1.14-0.29-2.38,0.22-2.7,1.08C861.17,820.94,861.83,821.83,862.99,822.12z"/> + <path class="st107" d="M-27.53,345.4c0.16-0.18-0.52-1.12-1.39-1.96c-0.91-0.87-1.81-1.47-1.98-1.28 + c-0.16,0.19,0.45,1.08,1.37,1.97C-28.65,344.99-27.69,345.58-27.53,345.4z"/> + <path class="st107" d="M-12.25,360.28c-0.25,0.15,0.27,1.03,1.18,1.97c0.88,0.91,1.84,1.54,2.1,1.4 + c0.25-0.13-0.33-1.06-1.2-1.96C-11.06,360.78-12.01,360.13-12.25,360.28z"/> + <path class="st107" d="M8.38,380.14c-0.87-0.92-1.85-1.58-2.13-1.42c-0.29,0.16,0.19,1.07,1.1,2.03 + c0.88,0.93,1.85,1.56,2.15,1.41C9.78,382.01,9.25,381.06,8.38,380.14z"/> + <path class="st107" d="M26.65,398.46c-0.9-0.9-1.83-1.41-2.01-1.08c-0.19,0.34,0.37,1.31,1.31,2.26 + c0.87,0.88,1.86,1.39,2.03,1.07C28.15,400.39,27.52,399.33,26.65,398.46z"/> + <path class="st107" d="M44.29,418.21c0.88,0.9,1.86,1.38,2.12,1.07c0.25-0.3-0.35-1.41-1.21-2.27c-0.9-0.9-1.85-1.4-2.1-1.08 + C42.85,416.24,43.38,417.29,44.29,418.21z"/> + <path class="st107" d="M63.71,435.17c-0.91-0.87-1.87-1.28-2.09-0.87c-0.23,0.43,0.31,1.46,1.26,2.38 + c0.88,0.85,1.91,1.26,2.12,0.85C65.2,437.13,64.59,436.01,63.71,435.17z"/> + <path class="st107" d="M80.27,452.29c-0.17,0.53,0.45,1.62,1.41,2.46c0.95,0.83,1.92,1.07,2.08,0.55 + c0.16-0.52-0.52-1.64-1.44-2.45C81.38,452.03,80.44,451.77,80.27,452.29z"/> + <path class="st107" d="M100.59,472.03c0.96,0.79,1.97,0.99,2.16,0.44c0.19-0.54-0.46-1.67-1.39-2.43 + c-0.96-0.79-1.93-1.01-2.13-0.46C99.02,470.13,99.61,471.22,100.59,472.03z"/> + <path class="st107" d="M399.38,698.41c0.94,0.85,2.02,0.9,2.26,0.23c0.24-0.66-0.37-1.92-1.29-2.74 + c-0.95-0.85-1.94-1.04-2.19-0.36C397.9,696.21,398.42,697.54,399.38,698.41z"/> + <path class="st107" d="M380.66,680.1c0.94,0.82,1.97,0.97,2.16,0.35c0.19-0.62-0.47-1.83-1.4-2.65 + c-0.94-0.83-1.92-1.03-2.12-0.39C379.09,678.05,379.68,679.25,380.66,680.1z"/> + <path class="st107" d="M361.78,662.02c0.94,0.81,1.96,0.99,2.14,0.4c0.17-0.59-0.49-1.77-1.43-2.58 + c-0.95-0.82-1.92-1.04-2.1-0.44C360.2,660.01,360.81,661.18,361.78,662.02z"/> + <path class="st107" d="M341.43,641.59c-0.27,0.53,0.25,1.63,1.21,2.52c0.9,0.82,1.99,1.11,2.24,0.61 + c0.25-0.5-0.34-1.66-1.25-2.49C342.71,641.38,341.7,641.07,341.43,641.59z"/> + <path class="st107" d="M322.24,624.34c-0.19,0.59,0.42,1.7,1.41,2.51c0.97,0.79,1.98,0.97,2.16,0.4 + c0.17-0.56-0.5-1.71-1.44-2.49C323.4,623.96,322.43,623.76,322.24,624.34z"/> + <path class="st107" d="M305.19,608.01c-0.95-0.8-1.98-1.04-2.25-0.51c-0.27,0.55,0.26,1.6,1.25,2.43c0.92,0.77,2.03,1,2.28,0.5 + C306.72,609.92,306.11,608.78,305.19,608.01z"/> + <path class="st107" d="M284.7,593.9c0.99,0.73,2.04,0.85,2.24,0.27c0.2-0.57-0.46-1.68-1.42-2.4c-0.99-0.74-2-0.87-2.22-0.28 + C283.08,592.1,283.69,593.16,284.7,593.9z"/> + <path class="st107" d="M265.74,576.57c-0.98-0.71-2.06-0.84-2.34-0.26c-0.29,0.59,0.26,1.61,1.28,2.34 + c0.95,0.68,2.1,0.8,2.36,0.26C267.31,578.36,266.69,577.26,265.74,576.57z"/> + <path class="st107" d="M244.46,564.63c1.03,0.62,2.12,0.61,2.34-0.01c0.22-0.61-0.47-1.67-1.46-2.27 + c-1.03-0.63-2.09-0.62-2.33,0.01C242.78,563,243.41,564,244.46,564.63z"/> + <path class="st107" d="M222.24,549.61c-0.36,0.59,0.19,1.58,1.22,2.18c1.01,0.59,2.18,0.61,2.54,0.04 + c0.35-0.53-0.27-1.61-1.24-2.19C223.74,549.04,222.6,549.02,222.24,549.61z"/> + <path class="st107" d="M200.78,538.62c-0.34,0.62,0.25,1.55,1.32,2.06c1.03,0.49,2.25,0.4,2.58-0.19 + c0.33-0.58-0.33-1.59-1.33-2.07C202.31,537.91,201.12,538.01,200.78,538.62z"/> + <path class="st107" d="M181.94,527.95c-0.99-0.62-2.19-0.7-2.62-0.16c-0.44,0.56,0.02,1.53,1.05,2.16 + c1,0.62,2.2,0.67,2.65,0.14C183.45,529.58,182.93,528.57,181.94,527.95z"/> + <path class="st107" d="M160.78,515.47c-1.02-0.62-2.11-0.63-2.37-0.01c-0.27,0.65,0.31,1.63,1.37,2.27 + c0.99,0.61,2.15,0.6,2.4-0.01C162.42,517.11,161.77,516.07,160.78,515.47z"/> + <path class="st107" d="M138.28,501.26c-0.39,0.51,0.07,1.55,1.04,2.33c0.95,0.75,2.06,0.96,2.46,0.47 + c0.38-0.47-0.13-1.57-1.07-2.31C139.77,500.99,138.66,500.76,138.28,501.26z"/> + <path class="st107" d="M118.57,485.91c-0.35,0.48,0.13,1.56,1.08,2.37c0.93,0.79,2.01,1.05,2.37,0.59 + c0.35-0.44-0.2-1.59-1.11-2.36C119.97,485.71,118.92,485.43,118.57,485.91z"/> + <path class="st107" d="M570.32,825.6c0.94,0.53,2.21,0.41,2.52-0.24c0.32-0.67-0.28-1.83-1.23-2.22 + c-0.95-0.39-1.73-0.31-2.2,0.27C568.91,824.02,569.35,825.05,570.32,825.6z"/> + <path class="st107" d="M548.2,811.62c-0.28,0.75,0.4,1.84,1.4,2.29c0.8,0.36,1.82,0.19,2.08-0.34 + c0.33-0.68-0.22-1.97-1.12-2.48C549.63,810.57,548.48,810.87,548.2,811.62z"/> + <path class="st107" d="M528.63,800.33c0.89,0.66,2.1,0.71,2.46-0.07c0.37-0.8-0.14-2.22-1.05-2.72 + c-0.91-0.51-1.69-0.43-2.19,0.24C527.31,798.49,527.71,799.65,528.63,800.33z"/> + <path class="st107" d="M507.63,783.28c-0.3,0.82,0.32,2.11,1.28,2.65c0.77,0.44,1.78,0.29,2.07-0.31 + c0.36-0.76-0.16-2.15-1.04-2.75C509.04,782.25,507.93,782.45,507.63,783.28z"/> + <path class="st107" d="M487.93,767.44c-0.38,0.66,0.13,2.02,1.04,2.64c0.86,0.58,1.62,0.75,2.09,0.14 + c0.46-0.61,0.11-1.84-0.75-2.64C489.51,766.84,488.31,766.77,487.93,767.44z"/> + <path class="st107" d="M470.69,751.44c-0.79-0.75-1.94-0.92-2.28-0.33c-0.26,0.45,0.11,1.62,0.72,2.25 + c0.8,0.83,1.99,1.12,2.4,0.59C471.95,753.41,471.56,752.26,470.69,751.44z"/> + <path class="st107" d="M450.06,736.46c0.84,0.81,1.97,1.05,2.24,0.51c0.27-0.55-0.3-1.81-1.15-2.48 + c-0.85-0.67-1.53-0.85-1.92-0.45C448.8,734.47,449.2,735.63,450.06,736.46z"/> + <path class="st107" d="M430.02,716.73c-0.19,0.57,0.48,1.77,1.39,2.45c0.73,0.54,1.63,0.66,1.82,0.26 + c0.25-0.51-0.36-1.67-1.21-2.38C431.16,716.33,430.21,716.16,430.02,716.73z"/> + <path class="st107" d="M411.74,701.21c1.32,1.12,2.22,1.31,2.35,0.78c0.12-0.52-0.6-1.67-1.44-2.33 + c-0.88-0.69-1.86-0.9-1.73-0.19C410.99,699.97,411.52,700.76,411.74,701.21z"/> + <path class="st107" d="M722.6,826.54c1.93-0.58,3.25-1.5,3.45-2.2c0.2-0.69-0.84-0.96-2.08-0.53c-1.3,0.45-2.77,1.56-2.6,2.12 + C721.49,826.31,722.28,826.4,722.6,826.54z"/> + <path class="st107" d="M749.41,818.6c-0.41,0.77,0.46,1.19,1.73,0.79c1.21-0.38,2.24-0.95,2.77-1.75 + c0.53-0.8-0.11-1.31-1.34-1.07C751.42,816.78,749.82,817.82,749.41,818.6z"/> + <path class="st107" d="M777,812.91c0.44,0.09,0.99,0.42,1.83,0.31c1.24-0.16,2.65-1.22,2.88-1.99 + c0.23-0.77-0.76-1.18-1.97-0.81C778.46,810.81,777.19,811.86,777,812.91z"/> + <path class="st107" d="M804.11,807.97c-0.3,0.82,0.61,1.3,1.87,1.02c1-0.23,2.26-1.05,2.55-1.69c0.37-0.81-0.41-1.46-1.56-1.28 + C805.77,806.21,804.4,807.15,804.11,807.97z"/> + <path class="st107" d="M829.93,806.83c0.4,0.21,0.88,0.73,1.64,0.81c1.13,0.12,2.48-0.76,2.73-1.61 + c0.25-0.84-0.62-1.56-1.74-1.42C831.39,804.74,830.17,805.65,829.93,806.83z"/> + <path class="st107" d="M854.58,808.31c-0.42,0.82,0.24,1.8,1.32,1.89c1.03,0.09,1.93-0.15,2.45-0.94 + c0.52-0.79,0.07-1.78-0.96-2.09C856.44,806.89,855.01,807.48,854.58,808.31z"/> + <path class="st107" d="M877.27,815.22c-0.42,0.78,0.13,1.97,1.13,2.31c0.94,0.32,1.78,0.27,2.29-0.46 + c0.51-0.73,0.14-1.88-0.8-2.44C879.03,814.11,877.7,814.42,877.27,815.22z"/> + <path class="st107" d="M-19.79,349.71c-0.15,0.09,0.54,0.99,1.38,1.76c0.79,0.72,1.43,1.21,1.66,1.19 + c0.23-0.02-0.32-0.76-1.16-1.58C-18.68,350.31-19.64,349.62-19.79,349.71z"/> + <path class="st107" d="M-1.09,367.64c-0.16,0.13,0.52,1.09,1.36,1.85c0.79,0.73,1.43,1.2,1.67,1.14 + c0.24-0.06-0.3-0.85-1.14-1.69C0.02,368.18-0.93,367.51-1.09,367.64z"/> + <path class="st107" d="M17.53,385.75c-0.18,0.17,0.48,1.16,1.31,1.93c0.79,0.73,1.44,1.19,1.7,1.09 + c0.26-0.1-0.25-0.92-1.09-1.77C18.69,386.22,17.72,385.58,17.53,385.75z"/> + <path class="st107" d="M37.09,405.57c1.27,1.18,2.09,1.58,2.15,1.22c0.06-0.35-0.69-1.4-1.5-2.11 + c-0.85-0.75-1.74-1.16-1.56-0.61C36.3,404.46,36.85,405.19,37.09,405.57z"/> + <path class="st107" d="M57.86,424.84c0.28-0.21-0.21-1.1-1.05-1.95c-0.77-0.77-1.78-1.3-1.99-1.03 + c-0.16,0.2,0.32,1.12,0.91,1.74C56.52,424.43,57.59,425.05,57.86,424.84z"/> + <path class="st107" d="M76.69,442.44c0.3-0.26-0.18-1.18-1.03-2.01c-0.78-0.75-1.81-1.22-2.03-0.91 + c-0.17,0.24,0.29,1.19,0.89,1.8C75.31,442.13,76.4,442.69,76.69,442.44z"/> + <path class="st107" d="M95.73,459.49c0.32-0.31-0.15-1.25-1.01-2.05c-0.79-0.73-1.84-1.13-2.09-0.77 + c-0.19,0.27,0.27,1.24,0.88,1.84C94.3,459.3,95.42,459.78,95.73,459.49z"/> + <path class="st107" d="M111.91,473.09c-0.26,0.4,0.36,1.52,1.24,2.15c0.84,0.61,1.55,0.88,1.9,0.54 + c0.35-0.34-0.12-1.31-0.99-2.07C113.27,473.01,112.18,472.69,111.91,473.09z"/> + <path class="st107" d="M391.79,682.02c0.32,0.44,0.72,1.2,1.31,1.79c0.86,0.88,1.81,1.08,1.92,0.6 + c0.11-0.48-0.63-1.6-1.47-2.28C392.68,681.43,391.86,681.25,391.79,682.02z"/> + <path class="st107" d="M374.7,664.61c-0.85-0.76-1.75-1.09-1.88-0.66c-0.11,0.36,0.36,1.23,1.08,1.93 + c0.84,0.81,1.89,1.26,2.08,0.91C376.17,666.42,375.53,665.35,374.7,664.61z"/> + <path class="st107" d="M354.72,647.97c1.31,1.13,2.18,1.42,2.27,0.97c0.1-0.44-0.65-1.55-1.48-2.24 + c-0.87-0.72-1.82-1.01-1.67-0.36C353.95,646.79,354.5,647.55,354.72,647.97z"/> + <path class="st107" d="M334.79,628.53c-0.25,0.32,0.36,1.43,1.23,2.15c0.82,0.68,1.51,1.04,1.84,0.8 + c0.33-0.25-0.14-1.19-0.99-2.02C336.08,628.68,335.04,628.21,334.79,628.53z"/> + <path class="st107" d="M315.58,611.41c-0.14,0.45,0.56,1.54,1.47,2.22c0.72,0.55,1.58,0.78,1.74,0.48 + c0.2-0.39-0.44-1.46-1.28-2.17C316.65,611.21,315.73,610.95,315.58,611.41z"/> + <path class="st107" d="M296.25,594.59c-0.27,0.37,0.34,1.48,1.23,2.14c0.84,0.63,1.55,0.94,1.9,0.64 + c0.35-0.3-0.12-1.26-0.98-2.05C297.61,594.59,296.52,594.21,296.25,594.59z"/> + <path class="st107" d="M276.58,578.78c-0.17,0.51,0.55,1.57,1.48,2.18c0.74,0.49,1.64,0.62,1.82,0.27 + c0.22-0.44-0.41-1.51-1.28-2.16C277.71,578.4,276.75,578.26,276.58,578.78z"/> + <path class="st107" d="M258.86,564.12c-0.82-0.65-1.96-0.86-2.25-0.41c-0.22,0.35,0.23,1.3,0.87,1.84 + c0.84,0.7,2.03,1.01,2.38,0.63C260.23,565.78,259.76,564.84,258.86,564.12z"/> + <path class="st107" d="M236.13,550.15c-0.2,0.56,0.52,1.55,1.5,2.04c0.78,0.39,1.74,0.4,1.94,0.01 + c0.26-0.49-0.39-1.53-1.29-2.07C237.36,549.58,236.33,549.59,236.13,550.15z"/> + <path class="st107" d="M215.13,537.9c-0.31,0.51,0.34,1.52,1.31,1.94c0.92,0.4,1.71,0.5,2.11,0.04 + c0.4-0.46-0.08-1.37-1.02-1.95C216.67,537.4,215.45,537.38,215.13,537.9z"/> + <path class="st107" d="M194.42,529.14c1.49,0.62,2.53,0.47,2.69-0.14c0.16-0.6-0.64-1.52-1.6-1.87c-1-0.36-2.13-0.15-2.01,0.55 + C193.58,528.18,194.18,528.78,194.42,529.14z"/> + <path class="st107" d="M175.64,518.09c0.39-0.47-0.1-1.38-1.04-1.99c-0.86-0.55-2.05-0.61-2.35-0.1 + c-0.23,0.39,0.24,1.33,0.9,1.79C174.02,518.4,175.27,518.54,175.64,518.09z"/> + <path class="st107" d="M151.61,503.11c-0.19,0.56,0.54,1.58,1.5,2.1c0.77,0.41,1.71,0.41,1.9,0.02 + c0.25-0.51-0.4-1.54-1.29-2.09C152.8,502.56,151.8,502.54,151.61,503.11z"/> + <path class="st107" d="M133.77,489.06c-0.81-0.66-1.93-0.9-2.21-0.46c-0.21,0.34,0.23,1.31,0.86,1.86 + c0.83,0.72,2,1.05,2.35,0.67C135.12,490.74,134.65,489.79,133.77,489.06z"/> + <path class="st107" d="M137.05,480.07c-0.18,0.32,0.37,1.05,1.25,1.62c0.91,0.6,1.68,0.76,1.82,0.4 + c0.13-0.34-0.47-1.11-1.28-1.65C138.02,479.91,137.24,479.74,137.05,480.07z"/> + <path class="st107" d="M158.51,495.12c0.87,0.57,1.78,0.77,2.02,0.46c0.25-0.32-0.21-1-1.06-1.57 + c-0.78-0.53-1.7-0.73-1.98-0.44C157.2,493.89,157.63,494.54,158.51,495.12z"/> + <path class="st107" d="M178.32,506.01c-0.2,0.38,0.38,1.07,1.3,1.53c0.96,0.48,1.78,0.52,1.92,0.1 + c0.14-0.39-0.49-1.12-1.33-1.55C179.36,505.65,178.53,505.61,178.32,506.01z"/> + <path class="st107" d="M199.82,516.84c-0.32,0.38,0.12,0.99,1.05,1.44c0.92,0.45,1.88,0.51,2.15,0.15 + c0.28-0.37-0.21-1-1.1-1.45C201.09,516.56,200.12,516.49,199.82,516.84z"/> + <path class="st107" d="M224.56,529.16c-0.35-0.36-0.77-0.95-1.4-1.4c-0.74-0.52-1.66-0.51-1.87-0.1 + c-0.21,0.39,0.37,1.09,1.29,1.56C223.54,529.72,224.34,529.78,224.56,529.16z"/> + <path class="st107" d="M242.12,540.35c-0.3,0.33,0.11,1.01,0.99,1.62c0.86,0.6,1.76,0.84,2.01,0.53 + c0.26-0.32-0.19-1.05-1.02-1.66C243.32,540.27,242.41,540.04,242.12,540.35z"/> + <path class="st107" d="M262.27,554.83c-0.29,0.29,0.12,0.99,0.97,1.67c0.84,0.66,1.71,0.98,1.94,0.7 + c0.24-0.28-0.2-1.03-1.01-1.71C263.42,554.87,262.54,554.56,262.27,554.83z"/> + <path class="st107" d="M283.21,571c-0.35-0.07-1.01-0.34-1.3-0.23c-0.35,0.13,0.34,1.06,1.19,1.73 + c0.88,0.7,1.61,0.95,1.72,0.61C284.92,572.78,284.33,571.92,283.21,571z"/> + <path class="st107" d="M302.18,589.15c0.81,0.74,1.63,1.18,1.83,0.97c0.21-0.21-0.24-0.95-1.02-1.7 + c-0.72-0.69-1.56-1.13-1.79-0.93C300.94,587.7,301.35,588.39,302.18,589.15z"/> + <path class="st107" d="M321.23,606.63c0.81,0.77,1.61,1.24,1.79,1.07c0.19-0.17-0.26-0.9-1.04-1.67 + c-0.72-0.71-1.53-1.19-1.76-1.03C319.99,605.17,320.41,605.85,321.23,606.63z"/> + <path class="st107" d="M340.13,624.48c0.8,0.78,1.59,1.29,1.78,1.16c0.19-0.13-0.26-0.84-1.04-1.62 + c-0.71-0.71-1.52-1.24-1.74-1.12C338.91,623.03,339.32,623.69,340.13,624.48z"/> + <path class="st107" d="M359.18,641.56c-0.31-0.16-0.93-0.55-1.18-0.55c-0.29,0,0.41,0.9,1.23,1.65 + c0.85,0.78,1.52,1.18,1.59,0.95C360.88,643.39,360.27,642.58,359.18,641.56z"/> + <path class="st107" d="M376.9,658.85c-0.11,0.17,0.46,0.91,1.28,1.64c0.85,0.77,1.53,1.18,1.6,0.96 + c0.06-0.2-0.56-0.99-1.31-1.67C377.7,659.09,377.02,658.68,376.9,658.85z"/> + <path class="st107" d="M397.08,677.82c0.82,0.74,1.61,1.24,1.77,1.13c0.17-0.11-0.32-0.77-1.11-1.51 + c-0.73-0.68-1.53-1.2-1.73-1.1C395.81,676.45,396.25,677.07,397.08,677.82z"/> + <path class="st107" d="M117.05,465.48c-0.16,0.28,0.4,1.03,1.26,1.64c0.89,0.64,1.64,0.86,1.76,0.53 + c0.11-0.31-0.5-1.09-1.29-1.66C117.98,465.41,117.22,465.18,117.05,465.48z"/> + <path class="st107" d="M98.43,451.5c0.83,0.69,1.66,1.08,1.87,0.89c0.22-0.19-0.24-0.87-1.05-1.55 + c-0.74-0.63-1.59-1.03-1.83-0.86C97.18,450.16,97.59,450.81,98.43,451.5z"/> + <path class="st107" d="M79.04,435.36c0.82,0.71,1.63,1.16,1.83,1.01c0.2-0.15-0.26-0.81-1.06-1.51 + c-0.73-0.64-1.56-1.11-1.78-0.98C77.78,434.02,78.21,434.64,79.04,435.36z"/> + <path class="st107" d="M60.03,418.88c0.86,0.74,1.55,1.11,1.62,0.91c0.07-0.19-0.54-0.94-1.3-1.59 + c-0.77-0.66-1.46-1.05-1.59-0.89C58.64,417.47,59.21,418.18,60.03,418.88z"/> + <path class="st107" d="M39.72,400.34c-0.2,0.05,0.25,0.62,1.07,1.37c0.8,0.73,1.59,1.27,1.74,1.2 + c0.16-0.07-0.32-0.68-1.11-1.41C40.7,400.85,39.9,400.3,39.72,400.34z"/> + <path class="st107" d="M20.72,383.2c-0.18,0.01,0.28,0.55,1.1,1.31c0.8,0.73,1.57,1.31,1.71,1.28 + c0.15-0.03-0.35-0.61-1.14-1.34C21.67,383.79,20.89,383.2,20.72,383.2z"/> + <path class="st107" d="M1.71,366c-0.07,0.04,0.53,0.68,1.35,1.41c0.85,0.76,1.49,1.25,1.51,1.15c0.02-0.09-0.63-0.76-1.38-1.43 + C2.44,366.46,1.78,365.96,1.71,366z"/> + <path class="st107" d="M-17.27,348.87c-0.15-0.07,0.34,0.43,1.16,1.17c0.81,0.73,1.55,1.35,1.67,1.38 + c0.12,0.04-0.41-0.49-1.2-1.2C-16.38,349.56-17.13,348.93-17.27,348.87z"/> + <path class="st107" d="M908.63,812.19c-1.02-1.13-1.95-1.24-2.34-0.62c-0.41,0.65-0.13,1.67,0.66,2.47 + c0.78,0.79,1.85,1.08,1.98,0.32C909.04,813.7,908.72,812.73,908.63,812.19z"/> + <path class="st107" d="M888.91,797.45c-1.18-0.7-2.17-0.65-2.6,0.05c-0.45,0.73-0.11,1.62,0.79,2.12 + c0.89,0.5,2.09,0.43,2.22-0.32C889.44,798.64,889.06,797.83,888.91,797.45z"/> + <path class="st107" d="M863.83,790.03c-0.26,0.52,0.24,1.35,1.27,1.51c1.06,0.17,2.1-0.36,2.3-0.9 + c0.19-0.51-0.46-1.12-1.39-1.29C865.06,789.19,864.1,789.49,863.83,790.03z"/> + <path class="st107" d="M839.31,787.97c-0.26,0.54,0.42,0.93,1.52,0.89c1.15-0.05,2.13-0.46,2.32-1 + c0.19-0.51-0.54-0.96-1.54-0.94C840.6,786.93,839.58,787.4,839.31,787.97z"/> + <path class="st107" d="M813.26,789.92c-0.29,0.59,0.42,0.89,1.58,0.7c1.21-0.2,2.25-0.76,2.46-1.33 + c0.21-0.54-0.54-0.9-1.6-0.75C814.64,788.7,813.57,789.31,813.26,789.92z"/> + <path class="st107" d="M787.49,795.38c1.16-0.22,2.39-0.9,2.76-1.52c0.38-0.64-0.19-1.02-1.31-0.85 + c-1.03,0.15-2.3,0.88-2.71,1.55C785.77,795.26,786.31,795.6,787.49,795.38z"/> + <path class="st107" d="M758.46,800.95c-0.49,0.8,0.03,1.17,1.22,0.9c1.17-0.26,2.45-1.03,2.86-1.73 + c0.42-0.72-0.13-1.13-1.27-0.93C760.24,799.37,758.92,800.2,758.46,800.95z"/> + <path class="st107" d="M730.37,808.09c-0.35,0.79,0.36,1.12,1.58,0.75c1.28-0.38,2.41-1.21,2.7-1.98 + c0.27-0.73-0.49-1.12-1.59-0.81C731.93,806.35,730.73,807.27,730.37,808.09z"/> + <path class="st107" d="M704.77,812.47c-0.57,0.52-1.62,1.27-2.14,2c-0.63,0.87,0.25,1.28,1.46,0.95 + c1.26-0.35,2.41-1.22,2.72-2.06C707.1,812.55,706.38,812.07,704.77,812.47z"/> + <path class="st107" d="M675.35,819.22c-0.41,0.94,0.22,1.49,1.4,1.24c1.23-0.26,2.39-1.12,2.73-2.05 + c0.33-0.88-0.34-1.51-1.41-1.31C676.98,817.3,675.78,818.24,675.35,819.22z"/> + <path class="st107" d="M651.28,819.39c-0.57,0.52-1.6,1.22-2.15,2.01c-0.66,0.95,0.1,1.68,1.24,1.55 + c1.19-0.13,2.32-0.96,2.69-1.95C653.4,820.05,652.79,819.27,651.28,819.39z"/> + <path class="st107" d="M626.28,818.09c-0.56,0.49-1.56,1.1-2.11,1.89c-0.66,0.95,0.01,1.89,1.09,1.93 + c1.12,0.04,2.22-0.68,2.62-1.74C628.25,819.16,627.71,818.19,626.28,818.09z"/> + <path class="st107" d="M600.95,813.77c-0.6,1.1-0.33,2.16,0.62,2.56c0.94,0.39,2.11-0.1,2.62-1.1 + c0.53-1.03,0.25-2.19-0.65-2.63C602.72,812.18,601.51,812.73,600.95,813.77z"/> + <path class="st107" d="M581.51,801.28c-0.52,0.38-1.44,0.77-1.97,1.51c-0.64,0.89-0.1,2.22,0.84,2.63 + c0.98,0.44,1.99-0.04,2.4-1.16C583.16,803.21,582.75,801.88,581.51,801.28z"/> + <path class="st107" d="M561.45,789.75c-1.15-0.84-2.28-0.46-2.82,0.51c-0.57,1.03-0.33,2.18,0.56,2.76 + c0.88,0.57,2.17,0.33,2.41-0.7C561.8,791.42,561.5,790.39,561.45,789.75z"/> + <path class="st107" d="M539.42,776.96c-0.49,0.3-1.37,0.58-1.85,1.2c-0.58,0.75-0.01,1.99,0.92,2.44 + c0.97,0.47,1.93,0.1,2.29-0.88C541.11,778.8,540.66,777.58,539.42,776.96z"/> + <path class="st107" d="M516.59,765.57c-0.36,0.78,0.1,1.8,1.01,2.28c0.96,0.5,1.89,0.26,2.2-0.58c0.3-0.8-0.18-1.91-1.03-2.36 + C517.92,764.47,516.96,764.76,516.59,765.57z"/> + <path class="st107" d="M498.35,752.84c-1.16-0.81-2.17-0.79-2.55-0.22c-0.4,0.61-0.05,1.47,0.83,2.07 + c0.87,0.59,2.04,0.67,2.14-0.01C498.87,754.08,498.47,753.29,498.35,752.84z"/> + <path class="st107" d="M475.11,739.3c-0.34,0.43,0.04,1.2,0.92,1.82c0.86,0.61,1.8,0.76,2.09,0.34 + c0.3-0.44-0.12-1.25-0.96-1.87C476.39,739.03,475.43,738.9,475.11,739.3z"/> + <path class="st107" d="M457.03,725.97c-1.14-0.87-2.02-1.16-2.27-0.89c-0.27,0.28,0.16,0.97,1.03,1.63 + c0.85,0.65,1.89,1.04,1.89,0.61C457.67,726.94,457.2,726.3,457.03,725.97z"/> + <path class="st107" d="M434.88,709.55c-0.13,0.22,0.46,0.94,1.31,1.59c0.89,0.68,1.6,0.97,1.69,0.71 + c0.08-0.25-0.56-1.01-1.34-1.61C435.75,709.63,435.01,709.32,434.88,709.55z"/> + <path class="st107" d="M416.4,694.77c0.83,0.72,1.63,1.18,1.8,1.05c0.18-0.14-0.31-0.78-1.12-1.49 + c-0.74-0.65-1.56-1.13-1.76-1.02C415.11,693.42,415.56,694.04,416.4,694.77z"/> + <path class="st107" d="M384.48,669.81c0.32,0.41,0.71,1.04,1.29,1.65c0.81,0.84,1.76,1.24,1.81,0.87 + c0.04-0.3-0.63-1.14-1.44-1.83C385.35,669.81,384.59,669.42,384.48,669.81z"/> + <path class="st107" d="M365.11,651.51c0.59,0.87,0.89,1.44,1.41,2.06c0.58,0.69,1.58,1.29,1.88,1.23 + c0.38-0.08-0.13-0.98-1.06-1.76C366.71,652.5,366.07,652.15,365.11,651.51z"/> + <path class="st107" d="M348.23,635.05c-0.4-0.24-1.17-0.8-1.58-0.91c-0.52-0.14,0.15,0.97,1.04,1.83 + c0.78,0.75,1.52,1.16,1.78,1C349.72,636.83,349.31,636.13,348.23,635.05z"/> + <path class="st107" d="M328.41,618.1c1.14,1.04,1.88,1.38,2.09,1.15c0.2-0.22-0.26-0.98-1.03-1.7 + c-0.96-0.9-2.06-1.49-1.93-0.95C327.64,617,328.19,617.73,328.41,618.1z"/> + <path class="st107" d="M307.93,598.86c0.74,0.97,1.14,1.65,1.73,2.25c0.82,0.83,1.76,1.08,1.81,0.6 + c0.04-0.37-0.7-1.4-1.45-1.88C309.38,599.4,308.82,599.25,307.93,598.86z"/> + <path class="st107" d="M288.7,581.97c0.54,0.9,0.79,1.5,1.3,2.11c0.56,0.68,1.63,1.17,1.99,1.01c0.46-0.19,0.03-1.15-0.92-1.85 + C290.41,582.75,289.72,582.5,288.7,581.97z"/> + <path class="st107" d="M270.25,568.14c1.18,0.92,1.98,1.15,2.26,0.82c0.27-0.31-0.16-1.09-0.94-1.73 + c-0.97-0.8-2.19-1.21-2.12-0.62C269.52,567.05,270.05,567.76,270.25,568.14z"/> + <path class="st107" d="M249.52,551.59c-0.36,0.48,0.11,1.32,0.87,1.92c0.95,0.74,1.97,0.94,2.2,0.42 + c0.19-0.43-0.33-1.27-1.2-1.73C250.69,551.83,250,551.73,249.52,551.59z"/> + <path class="st107" d="M230.78,538.6c-0.46-0.07-1.34-0.35-1.83-0.24c-0.64,0.15,0.03,1.25,1.01,1.87 + c0.85,0.54,1.71,0.66,2.05,0.27C232.34,540.14,231.96,539.4,230.78,538.6z"/> + <path class="st107" d="M208.96,529.03c0.85-0.2,1.62-0.21,1.95-0.49c0.41-0.35-0.27-1.12-1.19-1.55 + c-1.07-0.5-2.38-0.47-2.2,0.15C207.66,527.62,208.32,528.21,208.96,529.03z"/> + <path class="st107" d="M185.84,516.75c0.33,0.36,0.72,0.98,1.36,1.42c0.89,0.61,2.05,0.48,2.18-0.12 + c0.11-0.48-0.59-1.21-1.51-1.59C186.97,516.08,186.05,516.11,185.84,516.75z"/> + <path class="st107" d="M166.27,506.7c0.82-0.12,1.56-0.06,1.88-0.31c0.4-0.31-0.27-1.12-1.16-1.63 + c-1.03-0.59-2.28-0.7-2.11-0.07C165.01,505.17,165.65,505.83,166.27,506.7z"/> + <path class="st107" d="M145.29,492.76c1.21,0.82,2.03,0.94,2.3,0.56c0.26-0.37-0.2-1.12-1.01-1.69 + c-1.02-0.71-2.24-0.99-2.14-0.38C144.51,491.71,145.07,492.39,145.29,492.76z"/> + <path class="st107" d="M126,476.88c-0.37-0.08-1.16-0.39-1.52-0.29c-0.49,0.15,0.3,1.3,1.27,1.99c0.79,0.56,1.59,0.7,1.78,0.32 + C127.73,478.52,127.24,477.79,126,476.88z"/> + <path class="st107" d="M104.89,460.92c-0.31,0.36,0.16,1.19,0.89,1.85c0.91,0.82,1.88,1.15,2.07,0.72 + c0.16-0.35-0.36-1.18-1.2-1.73C105.99,461.33,105.34,461.13,104.89,460.92z"/> + <path class="st107" d="M86.32,446.32c1.15,0.99,1.9,1.28,2.12,1.03c0.21-0.25-0.25-0.99-1.02-1.66 + c-0.97-0.84-2.09-1.37-1.96-0.84C85.56,445.25,86.11,445.95,86.32,446.32z"/> + <path class="st107" d="M65.97,427.41c0.56,0.83,0.82,1.37,1.33,1.98c0.56,0.67,1.58,1.27,1.91,1.2 + c0.41-0.08-0.05-0.95-0.97-1.69C67.6,428.38,66.94,428.04,65.97,427.41z"/> + <path class="st107" d="M48.3,411.94c1.13,1.05,1.85,1.47,2.06,1.32c0.2-0.13-0.26-0.82-1.01-1.53 + c-0.94-0.88-2.04-1.58-1.9-1.14C47.54,410.92,48.08,411.6,48.3,411.94z"/> + <path class="st107" d="M29.86,393.69c-0.31-0.18-0.99-0.66-1.22-0.69c-0.33-0.04,0.6,1.1,1.47,1.87 + c0.73,0.65,1.4,1.01,1.45,0.8C31.62,395.47,31.04,394.76,29.86,393.69z"/> + <path class="st107" d="M9.76,375.37c0.32,0.37,0.73,0.91,1.31,1.5c0.81,0.82,1.7,1.39,1.7,1.15c0-0.19-0.67-0.96-1.46-1.67 + C10.54,375.66,9.81,375.15,9.76,375.37z"/> + <path class="st107" d="M-8.07,358.87c1.12,1.05,1.81,1.56,1.97,1.55c0.15-0.01-0.34-0.6-1.09-1.31 + c-0.94-0.88-1.99-1.71-1.81-1.38C-8.87,357.96-8.3,358.58-8.07,358.87z"/> + <path class="st107" d="M-26.38,341.95c0.61,0.42,1.19,0.87,1.38,0.96c0.24,0.11-0.47-0.61-1.27-1.34 + c-0.93-0.84-1.92-1.63-1.64-1.27C-27.69,340.58-27.05,341.22-26.38,341.95z"/> + <path class="st107" d="M891.97,812.63c0.26,0.5,0.5,1.38,1.07,1.96c0.81,0.84,2.03,0.56,2.34-0.39 + c0.25-0.76-0.24-1.78-1.13-2.28C893.39,811.45,892.38,811.64,891.97,812.63z"/> + <path class="st107" d="M871.4,804.01c1.35,0.43,2.34,0.09,2.76-0.69c0.41-0.75,0.01-1.65-0.88-1.98 + c-1.12-0.41-2.62,0.06-2.62,0.94C870.65,802.93,871.21,803.59,871.4,804.01z"/> + <path class="st107" d="M846.7,797.18c0.56,0.79,0.77,1.46,1.36,1.84c0.65,0.41,2.09-0.11,2.66-0.83 + c0.73-0.9,0.37-1.99-0.85-1.95C849.02,796.28,848.06,796.75,846.7,797.18z"/> + <path class="st107" d="M823.39,799.04c1.11-0.89,2.08-1.47,2.54-2.09c0.58-0.78-0.17-1.34-1.28-1.24 + c-1.29,0.12-2.97,1.15-2.82,1.86C821.94,798.11,822.69,798.42,823.39,799.04z"/> + <path class="st107" d="M795.16,801.07c0.4,0.16,0.84,0.61,1.64,0.61c1.1,0,2.64-1.15,2.9-2.04c0.2-0.72-0.62-1.08-1.8-0.76 + C796.75,799.17,795.51,800.06,795.16,801.07z"/> + <path class="st107" d="M770.19,804.6c-0.55,0.41-1.71,1.07-2.26,1.7c-0.77,0.88,0.27,1.34,1.64,0.95 + c1.11-0.31,2.29-1.18,2.63-1.95C772.55,804.53,771.93,804.16,770.19,804.6z"/> + <path class="st107" d="M739.77,813.54c-0.33,0.68,0.31,1.06,1.39,0.83c1.31-0.27,2.77-1.29,3.1-2.17 + c0.27-0.72-0.47-0.99-1.7-0.6C741.36,811.99,740.1,812.87,739.77,813.54z"/> + <path class="st107" d="M403.77,686.97c-0.27,0.26,0.22,1.06,0.95,1.77c0.9,0.87,1.83,1.32,1.98,0.98 + c0.13-0.28-0.41-1.07-1.23-1.7C404.81,687.52,404.2,687.23,403.77,686.97z"/> + <path class="st107" d="M424.33,706.3c0.72,0.13,1.38,0.4,1.65,0.29c0.33-0.14-0.33-1-1.16-1.69c-0.96-0.8-2.08-1.28-1.87-0.7 + C423.11,704.64,423.73,705.38,424.33,706.3z"/> + <path class="st107" d="M442.49,720.61c-0.32,0.39,0.14,1.28,0.86,1.99c0.9,0.87,1.87,1.21,2.08,0.74 + c0.17-0.39-0.34-1.26-1.18-1.83C443.58,721.05,442.93,720.84,442.49,720.61z"/> + <path class="st107" d="M461.8,737.41c0.3,0.45,0.64,1.2,1.23,1.8c0.81,0.83,1.9,0.88,2.05,0.23c0.12-0.52-0.52-1.43-1.37-2.01 + C462.88,736.87,462.01,736.74,461.8,737.41z"/> + <path class="st107" d="M482.48,754.62c1.2,0.9,2.06,0.91,2.4,0.34c0.33-0.56-0.06-1.51-0.87-2.12 + c-1.01-0.76-2.29-0.9-2.26-0.09C481.78,753.34,482.29,754.16,482.48,754.62z"/> + <path class="st107" d="M501.5,766.9c0.44,1.16,0.59,2.01,1.07,2.72c0.52,0.78,1.74,0.88,2.25,0.34 + c0.64-0.67,0.37-2.06-0.65-2.57C503.46,767.03,502.64,767.1,501.5,766.9z"/> + <path class="st107" d="M524.09,781.04c-0.45,0.13-1.36,0.12-1.85,0.57c-0.68,0.63-0.03,2.18,0.98,2.78 + c0.82,0.49,1.78,0.21,2.15-0.63C525.75,782.91,525.38,781.86,524.09,781.04z"/> + <path class="st107" d="M542.86,794.92c-0.61,1.14-0.29,2.37,0.46,3c0.93,0.78,2.14,0.5,2.6-0.63c0.38-0.94,0.03-2.2-0.92-2.48 + C544.24,794.6,543.4,794.89,542.86,794.92z"/> + <path class="st107" d="M563.85,810.77c1.25,0.76,2.23,0.49,2.73-0.41c0.48-0.86,0.22-2.06-0.6-2.61 + c-1.02-0.69-2.52-0.34-2.64,0.76C563.25,809.32,563.71,810.22,563.85,810.77z"/> + <path class="st107" d="M584.23,820.83c0.27,0.5,0.54,1.4,1.15,1.92c0.85,0.72,2.18,0.14,2.52-0.95 + c0.27-0.87-0.3-1.94-1.23-2.28C585.76,819.19,584.65,819.65,584.23,820.83z"/> + <path class="st107" d="M711.08,820.89c0.72,0.39,1.02,0.8,1.74,0.86c0.78,0.06,2.38-0.87,2.97-1.61 + c0.75-0.94,0.22-1.61-1.17-1.11C713.64,819.38,712.59,820.09,711.08,820.89z"/> + <path class="st107" d="M721.62,800.76c0.39,0.19,0.82,0.7,1.62,0.66c0.87-0.04,2.34-1.41,2.5-2.25 + c0.14-0.73-0.16-1.17-1.23-0.96C723.4,798.43,722.11,799.45,721.62,800.76z"/> + <path class="st107" d="M695.63,806.46c1.05-0.12,2.33-1.12,2.77-2.19c0.37-0.91,0.14-1.45-0.74-1.5 + c-0.93-0.05-2.39,0.94-2.93,1.95C694.18,805.75,694.61,806.58,695.63,806.46z"/> + <path class="st107" d="M668.54,809.44c1.44,0.04,2.74-0.92,3.26-2.08c0.45-1,0.27-1.65-0.53-1.86 + c-0.82-0.21-2.6,0.81-2.88,1.79C668.14,808.16,668.48,808.89,668.54,809.44z"/> + <path class="st107" d="M645.41,805.39c-0.99-0.04-2.29,1.01-2.68,2.17c-0.4,1.16,0.18,2.25,1.18,2.03 + c0.96-0.22,1.79-0.86,2.32-1.94C646.81,806.42,646.46,805.43,645.41,805.39z"/> + <path class="st107" d="M620.03,806.05c0.56-0.57,1.58-1.3,2.09-2.24c0.51-0.95,0.24-1.9-0.66-2.17 + c-0.94-0.28-2.17,0.54-2.68,1.77C618.27,804.67,618.65,805.9,620.03,806.05z"/> + <path class="st107" d="M596.34,795.16c0.23,0.62,0.39,1.81,0.96,2.39c0.63,0.64,2.02-0.49,2.37-1.78 + c0.3-1.12,0.22-2.11-0.6-2.59C598.23,792.67,597.04,793.35,596.34,795.16z"/> + <path class="st107" d="M575.16,783.44c0.24,0.59,0.42,1.74,1,2.29c0.64,0.61,2.02-0.48,2.35-1.73 + c0.29-1.08,0.19-2.03-0.65-2.48C577.01,781.05,575.83,781.7,575.16,783.44z"/> + <path class="st107" d="M554.66,774.39c0.86,0.37,2-0.28,2.37-1.45c0.31-0.99,0.2-1.86-0.59-2.35 + c-0.84-0.53-1.99-0.03-2.47,1.05C553.48,772.73,553.81,774.02,554.66,774.39z"/> + <path class="st107" d="M534.38,759.96c-0.91-0.28-1.95,0.34-2.2,1.3c-0.24,0.95,0.44,2.27,1.28,2.17 + c0.66-0.08,1.46-0.57,1.85-1.15C535.9,761.4,535.34,760.25,534.38,759.96z"/> + <path class="st107" d="M510.44,750.76c0.3,0.44,0.61,1.26,1.22,1.72c0.68,0.51,1.87-0.07,2.04-0.9 + c0.14-0.71-0.07-1.38-0.92-1.79C511.9,749.37,510.87,749.66,510.44,750.76z"/> + <path class="st107" d="M491.15,739.35c-0.85-0.51-1.85-0.47-2.16,0.08c-0.31,0.54,0.15,1.43,0.98,1.85 + c0.83,0.42,1.44,0.31,1.86-0.08C492.33,740.72,491.99,739.85,491.15,739.35z"/> + <path class="st107" d="M468.67,729.33c0.83,0.51,1.71,0.58,1.9,0.12c0.17-0.38-0.1-0.85-0.83-1.35 + c-0.77-0.53-1.79-0.7-2.07-0.37C467.39,728.07,467.87,728.83,468.67,729.33z"/> + <path class="st107" d="M448.07,716.11c0.8,0.54,1.6,0.74,1.65,0.41c0.04-0.29-0.25-0.7-1.02-1.25 + c-0.82-0.58-1.67-0.88-1.83-0.64C446.71,714.87,447.28,715.57,448.07,716.11z"/> + <path class="st107" d="M426.8,699.58c0.31,0.35,0.7,0.86,1.27,1.38c0.68,0.61,1.51,0.95,1.53,0.68 + c0.02-0.22-0.26-0.62-1.01-1.23C427.81,699.76,427.01,699.34,426.8,699.58z"/> + <path class="st107" d="M749.42,794.38c-0.49,0.84,0.01,1.44,1.04,1.26c1.08-0.19,2.31-1.06,2.7-1.94 + c0.33-0.74,0.05-1.14-0.85-1.1C751.36,792.65,749.9,793.56,749.42,794.38z"/> + <path class="st107" d="M776.93,788.67c-0.45,0.75,0.07,1.27,1.1,1.1c1.07-0.18,2.26-0.95,2.61-1.72c0.29-0.65,0-1-0.9-0.96 + C778.79,787.14,777.38,787.95,776.93,788.67z"/> + <path class="st107" d="M806.64,782.67c-1.05,0.07-2.26,0.7-2.63,1.37c-0.36,0.66,0.24,1.11,1.28,0.94 + c1.03-0.17,1.78-0.62,2.25-1.18C808.13,783.11,807.67,782.6,806.64,782.67z"/> + <path class="st107" d="M831.51,782.37c1.01-0.02,2.1-0.53,2.36-1.12c0.22-0.5-0.09-0.82-0.96-0.89 + c-0.92-0.07-2.19,0.43-2.56,0.98C829.97,781.91,830.53,782.4,831.51,782.37z"/> + <path class="st107" d="M856.54,783.07c0.95,0.13,1.97-0.2,2.21-0.73c0.2-0.45-0.09-0.81-0.92-1.01 + c-0.87-0.21-2.06,0.09-2.4,0.57C855.09,782.39,855.62,782.95,856.54,783.07z"/> + <path class="st107" d="M880.79,786.6c-0.88-0.3-1.85-0.11-2,0.38c-0.15,0.49,0.56,1.22,1.4,1.38c0.81,0.16,1.44,0.06,1.71-0.35 + C882.21,787.53,881.73,786.91,880.79,786.6z"/> + <path class="st107" d="M900.19,797.31c-0.29,0.43,0.15,1.31,0.91,1.85c0.78,0.55,1.65,0.61,1.84,0.09 + c0.16-0.45-0.05-0.99-0.76-1.58C901.42,797.03,900.48,796.87,900.19,797.31z"/> + <path class="st107" d="M920.43,815.1c-0.71-0.78-1.46-0.91-1.58-0.29c-0.12,0.62,0.48,2.09,1.11,2.51 + c0.5,0.33,1.07,0.43,1.33,0.2C921.67,817.19,921.17,815.92,920.43,815.1z"/> + <path class="st107" d="M-25.94,340.82c0.33,0.29,0.75,0.67,1.33,1.17c0.68,0.59,1.4,1.2,1.35,1.15 + c-0.04-0.04-0.36-0.33-1.09-0.96C-25.13,341.51-25.85,340.89-25.94,340.82z"/> + <path class="st107" d="M-5.07,359.1c0.26,0.2,0.83,0.66,0.95,0.73c0.12,0.07-0.35-0.37-1.1-1.02 + c-0.78-0.68-1.48-1.26-1.52-1.25C-6.78,357.56-6.15,358.16-5.07,359.1z"/> + <path class="st107" d="M12.42,374.32c-0.15-0.05,0.38,0.51,1.1,1.15c0.76,0.67,1.46,1.2,1.52,1.16 + c0.06-0.04-0.25-0.36-0.92-0.96C13.43,375.05,12.57,374.37,12.42,374.32z"/> + <path class="st107" d="M33.19,392.71c0.28,0.16,0.86,0.57,1.01,0.58c0.15,0.01-0.31-0.47-1.06-1.12 + c-0.78-0.68-1.51-1.2-1.57-1.12C31.5,391.14,32.11,391.79,33.19,392.71z"/> + <path class="st107" d="M51.5,408.55c1.09,0.96,1.85,1.44,1.97,1.33c0.1-0.09-0.19-0.45-0.84-1.05 + c-0.67-0.61-1.77-1.39-1.75-1.2C50.89,407.79,51.32,408.3,51.5,408.55z"/> + <path class="st107" d="M71.33,425.32c0.76,0.62,1.5,0.99,1.52,0.75c0.01-0.2-0.28-0.59-1.01-1.21 + c-0.78-0.66-1.56-1.12-1.69-0.98C70.02,424.02,70.58,424.7,71.33,425.32z"/> + <path class="st107" d="M89.6,439.84c0.32,0.35,0.71,0.89,1.29,1.4c0.67,0.59,1.5,0.89,1.5,0.59c0-0.25-0.29-0.65-1.05-1.27 + C90.54,439.92,89.77,439.54,89.6,439.84z"/> + <path class="st107" d="M109.32,455.15c0.32,0.35,0.73,0.91,1.32,1.41c0.66,0.56,1.54,0.77,1.52,0.43 + c-0.01-0.29-0.31-0.72-1.09-1.3C110.28,455.09,109.48,454.77,109.32,455.15z"/> + <path class="st107" d="M407.98,684.24c1.1,0.98,1.87,1.43,2,1.28c0.11-0.14-0.17-0.54-0.82-1.16 + c-0.67-0.64-1.79-1.38-1.78-1.15C407.39,683.42,407.82,683.97,407.98,684.24z"/> + <path class="st107" d="M388.11,666.01c-0.16,0.11,0.36,0.82,1.1,1.49c0.75,0.68,1.48,1.13,1.54,0.92 + c0.05-0.18-0.23-0.59-0.92-1.26C389.07,666.43,388.27,665.9,388.11,666.01z"/> + <path class="st107" d="M369.11,648.3c0.32,0.39,0.72,0.97,1.29,1.56c0.63,0.65,1.43,1.08,1.39,0.78 + c-0.03-0.26-0.33-0.7-1.07-1.41C369.96,648.49,369.22,648.01,369.11,648.3z"/> + <path class="st107" d="M350.39,629.92c-0.22,0.08,0.22,0.8,0.92,1.52c0.73,0.74,1.48,1.23,1.62,1.06 + c0.12-0.15-0.13-0.59-0.76-1.27C351.54,630.52,350.6,629.84,350.39,629.92z"/> + <path class="st107" d="M332.73,613.31c0.74,0.7,1.47,1.1,1.51,0.79c0.03-0.26-0.24-0.73-0.94-1.44 + c-0.75-0.77-1.52-1.25-1.67-1.04C331.48,611.82,332,612.62,332.73,613.31z"/> + <path class="st107" d="M314.6,594.47c-0.75-0.76-1.55-1.23-1.74-1.03c-0.19,0.2,0.3,1.01,1.03,1.7 + c0.72,0.68,1.21,0.91,1.49,0.87C315.72,595.95,315.33,595.22,314.6,594.47z"/> + <path class="st107" d="M295.67,576.71c-0.76-0.74-1.58-1.16-1.78-0.92c-0.2,0.24,0.28,1.06,1.02,1.71 + c0.73,0.65,1.23,0.85,1.53,0.77C296.8,578.18,296.42,577.43,295.67,576.71z"/> + <path class="st107" d="M274.64,558.95c-0.26,0.23,0.18,1.03,0.91,1.67c0.77,0.67,1.56,0.97,1.74,0.63 + c0.15-0.28-0.1-0.76-0.76-1.41C275.85,559.16,274.9,558.72,274.64,558.95z"/> + <path class="st107" d="M255.87,545.01c0.78,0.6,1.61,0.82,1.78,0.45c0.14-0.31-0.11-0.79-0.8-1.39 + c-0.72-0.63-1.68-0.97-1.94-0.7C254.66,543.63,255.12,544.42,255.87,545.01z"/> + <path class="st107" d="M236.19,529.62c-0.83-0.47-1.63-0.5-1.68-0.07c-0.05,0.43,0.77,1.37,1.48,1.6 + c0.56,0.18,1.17,0.2,1.4,0.03C237.76,530.92,237.07,530.11,236.19,529.62z"/> + <path class="st107" d="M214.57,518.82c0.84,0.45,1.73,0.51,1.91,0.11c0.16-0.34-0.12-0.76-0.86-1.23 + c-0.77-0.49-1.81-0.64-2.08-0.33C213.27,517.7,213.76,518.39,214.57,518.82z"/> + <path class="st107" d="M193.86,507.41c-0.86-0.47-1.79-0.59-2.03-0.25c-0.24,0.33,0.29,1.01,1.12,1.41 + c0.83,0.39,1.4,0.4,1.75,0.19C195.12,508.5,194.7,507.87,193.86,507.41z"/> + <path class="st107" d="M170.45,495.97c0.31,0.33,0.67,0.88,1.28,1.31c0.71,0.51,1.66,0.53,1.75,0.13 + c0.08-0.34-0.2-0.75-0.99-1.23C171.65,495.66,170.75,495.49,170.45,495.97z"/> + <path class="st107" d="M149.68,483.35c0.31,0.34,0.67,0.89,1.26,1.36c0.7,0.54,1.62,0.64,1.7,0.27 + c0.07-0.32-0.2-0.74-0.98-1.26C150.83,483.16,149.96,482.92,149.68,483.35z"/> + <path class="st107" d="M129.33,469.7c0.32,0.35,0.71,0.91,1.3,1.39c0.68,0.55,1.57,0.7,1.6,0.34c0.03-0.31-0.26-0.73-1.04-1.29 + C130.36,469.57,129.54,469.3,129.33,469.7z"/> + <path class="st107" d="M714.7,792.09c1.21-0.94,2.18-1.51,2.77-2.2c0.81-0.95,0.15-1.83-1.03-1.59 + c-1.05,0.21-2.09,0.96-2.36,1.84C713.88,790.78,714.39,791.25,714.7,792.09z"/> + <path class="st107" d="M688.17,795.02c1.22-0.97,2.19-1.53,2.8-2.27c0.83-1.01,0.24-2.07-0.91-1.9 + c-1.03,0.16-2.07,0.91-2.38,1.89C687.45,793.47,687.92,794.04,688.17,795.02z"/> + <path class="st107" d="M661.9,793.22c0.16,0.52,0.17,1.43,0.64,1.81c0.61,0.49,2.54-0.75,2.92-1.81 + c0.38-1.07,0.19-1.86-0.74-1.97C663.79,791.14,662.95,791.71,661.9,793.22z"/> + <path class="st107" d="M637.45,790.59c0.12,0.51,0.1,1.52,0.52,2c0.56,0.63,2.45-0.51,2.85-1.64c0.4-1.14,0.24-2.01-0.64-2.28 + C639.41,788.43,638.31,789.07,637.45,790.59z"/> + <path class="st107" d="M614.4,784.01c0.09,0.58,0.03,1.69,0.42,2.28c0.51,0.78,2.33-0.18,2.74-1.36 + c0.42-1.19,0.3-2.18-0.52-2.61C616.33,781.95,615.27,782.48,614.4,784.01z"/> + <path class="st107" d="M595.74,771.1c-1.1,0.71-1.99,0.97-2.54,1.69c-0.79,1.03-0.55,2.15,0.03,2.85 + c0.61,0.73,2.38,0.06,2.65-1.1C596.11,773.59,595.83,772.61,595.74,771.1z"/> + <path class="st107" d="M573.92,760.97c-1.09,0.67-1.98,0.93-2.51,1.59c-0.76,0.95-0.49,1.98,0.12,2.62 + c0.64,0.66,2.4,0.01,2.64-1.06C574.37,763.25,574.06,762.35,573.92,760.97z"/> + <path class="st107" d="M549.38,756.4c1.07-0.57,1.92-0.79,2.46-1.38c0.75-0.81,0.29-2.23-0.71-2.49 + c-0.89-0.23-1.81,0.19-2.1,1.13C548.81,754.36,549.2,755.19,549.38,756.4z"/> + <path class="st107" d="M525.98,744.97c0.54,0.91,0.74,1.68,1.26,2.06c0.8,0.58,2.11-0.03,2.33-0.96 + c0.21-0.89-0.17-1.64-1.06-1.73C527.84,744.28,527.09,744.69,525.98,744.97z"/> + <path class="st107" d="M503.75,736.85c0.21,0.41,0.34,1.05,0.8,1.47c0.6,0.55,2.17,0.28,2.38-0.37 + c0.21-0.66-0.05-1.28-0.91-1.63C505.18,735.98,504.49,736.12,503.75,736.85z"/> + <path class="st107" d="M481.37,727.89c0.24,0.35,0.41,0.88,0.88,1.26c0.62,0.51,2.09,0.48,2.24-0.01c0.15-0.5-0.15-1.02-1-1.4 + C482.67,727.37,482.02,727.4,481.37,727.89z"/> + <path class="st107" d="M461.6,717.6c-0.82-0.04-1.54-0.21-1.86-0.1c-0.46,0.17,0.01,0.69,0.69,1.17 + c0.71,0.49,2.11,0.77,2.09,0.38C462.5,718.73,462.02,718.24,461.6,717.6z"/> + <path class="st107" d="M438.25,704.52c0.63,0.7,0.95,1.15,1.45,1.58c0.78,0.62,1.74,0.93,1.73,0.59 + c-0.01-0.32-0.48-0.84-1.24-1.28C439.63,705.09,439.09,704.91,438.25,704.52z"/> + <path class="st107" d="M419.7,690.84c0.72,0.35,1.34,0.71,1.64,0.75c0.42,0.06-0.26-0.81-1.11-1.46 + c-0.76-0.59-1.39-0.9-1.41-0.65C418.8,689.67,419.29,690.23,419.7,690.84z"/> + <path class="st107" d="M740.84,786.29c0.21,0.27,0.34,0.87,0.88,1.02c0.72,0.2,2.63-1.02,2.9-1.8 + c0.27-0.79-0.04-1.26-1.05-1.16C742.68,784.44,741.57,785.13,740.84,786.29z"/> + <path class="st107" d="M767.44,781.71c0.72,0.41,1.03,0.86,1.68,0.88c0.99,0.03,2.45-1,2.6-1.74c0.14-0.71-0.37-1.07-1.41-0.74 + C769.53,780.35,768.7,780.98,767.44,781.71z"/> + <path class="st107" d="M794.81,777.68c0.23,0.2,0.42,0.66,0.98,0.77c0.74,0.15,2.54-0.77,2.73-1.36 + c0.2-0.59-0.16-0.95-1.15-0.88C796.47,776.27,795.42,776.8,794.81,777.68z"/> + <path class="st107" d="M822.41,776.08c1.03-0.6,1.88-0.94,2.28-1.34c0.49-0.49-0.61-1.02-1.63-0.81 + c-0.94,0.19-1.89,0.6-1.82,1.14C821.28,775.42,821.88,775.65,822.41,776.08z"/> + <path class="st107" d="M847.54,775.93c0.99-0.37,1.8-0.54,2.24-0.84c0.6-0.41-0.16-0.99-1.23-1.02 + c-0.96-0.02-1.81,0.25-1.92,0.7C846.55,775.1,847.11,775.42,847.54,775.93z"/> + <path class="st107" d="M870.11,778.02c0.68,0.5,1.01,0.92,1.57,1.14c0.87,0.34,2.02,0.11,2.06-0.35 + c0.04-0.44-0.45-0.86-1.31-0.97C871.79,777.76,871.13,777.92,870.11,778.02z"/> + <path class="st107" d="M892.77,786.17c0.24,0.33,0.42,0.79,0.87,1.18c0.6,0.51,1.97,0.71,2.09,0.33 + c0.12-0.38-0.18-0.86-0.98-1.32C893.97,785.91,893.37,785.83,892.77,786.17z"/> + <path class="st107" d="M912.54,799.62c0.54,0.88,0.78,1.5,1.24,2.03c0.69,0.8,1.65,1.1,1.71,0.59 + c0.06-0.48-0.32-1.19-1.03-1.73C913.93,800.11,913.38,799.98,912.54,799.62z"/> + <path class="st107" d="M931.68,822c-0.61-0.44-1.18-1.02-1.38-0.89c-0.27,0.18-0.02,1.13,0.54,2.21c0.61,1.19,1.46,2,1.46,1.28 + C932.29,824.09,931.97,823.13,931.68,822z"/> + <path class="st107" d="M-14.35,350.41c0.69,0.42,1.29,0.81,1.58,0.86c0.41,0.07-0.23-0.94-1.05-1.64 + c-0.74-0.62-1.37-0.9-1.4-0.61C-15.24,349.23-14.77,349.84-14.35,350.41z"/> + <path class="st107" d="M4.84,367.09c0.67,0.48,1.27,0.91,1.55,1.01c0.39,0.14-0.28-0.77-1.11-1.47 + c-0.74-0.62-1.36-0.95-1.37-0.74C3.91,366.05,4.4,366.6,4.84,367.09z"/> + <path class="st107" d="M22.71,382.09c0.64,0.65,1,0.99,1.49,1.43c0.76,0.66,1.58,1.3,1.52,1.09c-0.06-0.19-0.52-0.74-1.22-1.29 + C23.97,382.9,23.48,382.64,22.71,382.09z"/> + <path class="st107" d="M42.45,398.64c0.22,0.23,0.47,0.53,0.92,0.95c0.59,0.55,1.75,1.35,1.76,1.24 + c0.01-0.11-0.34-0.48-1.08-1.1C43.39,399.18,42.72,398.7,42.45,398.64z"/> + <path class="st107" d="M61.88,414.54c0.26,0.28,0.5,0.61,0.95,1.03c0.59,0.55,1.76,1.3,1.79,1.15 + c0.02-0.15-0.32-0.54-1.07-1.15C62.81,414.98,62.3,414.66,61.88,414.54z"/> + <path class="st107" d="M83.26,430.98c-0.7-0.36-1.33-0.75-1.59-0.8c-0.37-0.08,0.1,0.43,0.73,0.99 + c0.66,0.58,1.89,1.3,1.82,1.05C84.17,432.02,83.71,431.53,83.26,430.98z"/> + <path class="st107" d="M101.3,445.2c0.25,0.3,0.47,0.67,0.93,1.09c0.59,0.55,1.82,1.15,1.87,0.94 + c0.05-0.21-0.28-0.63-1.05-1.21C102.3,445.46,101.77,445.2,101.3,445.2z"/> + <path class="st107" d="M121.39,459.69c0.21,0.26,0.42,0.64,0.87,1.06c0.59,0.54,1.86,1.07,1.92,0.83 + c0.06-0.24-0.27-0.67-1.03-1.22C122.47,459.87,121.74,459.55,121.39,459.69z"/> + <path class="st107" d="M400.26,674.27c0.7,0.39,1.31,0.79,1.6,0.86c0.41,0.09-0.26-0.81-1.09-1.51 + c-0.74-0.63-1.36-0.98-1.38-0.74C399.37,673.06,399.85,673.65,400.26,674.27z"/> + <path class="st107" d="M380.26,655.29c0.2,0.3,0.41,0.72,0.83,1.21c0.56,0.65,1.73,1.43,1.78,1.21 + c0.05-0.23-0.26-0.72-0.98-1.42C381.26,655.67,380.57,655.22,380.26,655.29z"/> + <path class="st107" d="M363.17,637.97c-0.68-0.4-1.3-0.85-1.55-0.9c-0.37-0.06,0.05,0.57,0.65,1.24 + c0.62,0.7,1.81,1.54,1.76,1.22C363.99,639.28,363.56,638.68,363.17,637.97z"/> + <path class="st107" d="M343.72,620.04c0.7,0.42,1.3,0.85,1.59,0.92c0.41,0.09-0.22-0.91-1.02-1.68 + c-0.72-0.69-1.33-1.07-1.37-0.8C342.89,618.7,343.35,619.35,343.72,620.04z"/> + <path class="st107" d="M325.81,600.49c-0.67-0.3-1.3-0.71-1.48-0.63c-0.23,0.1,0.14,0.74,0.85,1.47 + c0.77,0.8,1.72,1.37,1.61,0.9C326.7,601.9,326.24,601.26,325.81,600.49z"/> + <path class="st107" d="M305.5,581.46c0.22,0.39,0.4,0.87,0.82,1.4c0.54,0.69,1.74,1.39,1.82,1.09c0.08-0.3-0.21-0.85-0.92-1.57 + C306.52,581.69,306,581.39,305.5,581.46z"/> + <path class="st107" d="M288.42,564.49c-0.73-0.3-1.37-0.67-1.66-0.65c-0.42,0.04-0.02,0.69,0.59,1.35 + c0.62,0.68,1.88,1.37,1.86,0.99C289.2,565.86,288.78,565.25,288.42,564.49z"/> + <path class="st107" d="M270.35,549.75c-0.57-0.78-0.85-1.33-1.34-1.82c-0.64-0.64-1.29-0.9-1.62-0.72 + c-0.35,0.19,0.18,1.1,1.02,1.66C268.96,549.24,269.51,549.38,270.35,549.75z"/> + <path class="st107" d="M248.43,533.86c0.77,0.11,1.41,0.33,1.7,0.22c0.36-0.13-0.54-1.24-1.33-1.68 + c-0.72-0.4-1.44-0.62-1.35-0.12C247.5,532.61,247.99,533.17,248.43,533.86z"/> + <path class="st107" d="M226.75,519.01c0.2,0.28,0.4,0.72,0.85,1.12c0.6,0.53,1.95,0.84,2.05,0.51c0.1-0.34-0.21-0.8-1-1.3 + C227.95,518.89,227.16,518.7,226.75,519.01z"/> + <path class="st107" d="M205.21,508.16c0.26,0.28,0.47,0.68,0.95,1.02c0.64,0.44,2.04,0.61,2.13,0.28 + c0.09-0.32-0.25-0.73-1.08-1.12C206.39,507.97,205.78,507.89,205.21,508.16z"/> + <path class="st107" d="M185.61,497.92c-0.8-0.09-1.51-0.28-1.83-0.19c-0.45,0.13,0.02,0.64,0.69,1.09 + c0.71,0.47,2.1,0.77,2.07,0.42C186.52,498.96,186.05,498.5,185.61,497.92z"/> + <path class="st107" d="M163.62,487.56c0.78,0.09,1.44,0.26,1.72,0.17c0.35-0.12-0.61-1.05-1.43-1.42 + c-0.75-0.34-1.47-0.53-1.36-0.11C162.63,486.49,163.14,486.97,163.62,487.56z"/> + <path class="st107" d="M142.71,474.69c0.78,0.21,1.43,0.46,1.76,0.44c0.46-0.03-0.24-0.82-1.13-1.35 + c-0.79-0.48-1.47-0.69-1.51-0.41C141.81,473.58,142.3,474.1,142.71,474.69z"/> + <path class="st107" d="M732.94,775.62c0.55,0.67,0.71,1.37,1.3,1.43c0.79,0.08,1.81-0.59,2.34-1.54 + c0.53-0.97,0.19-1.59-0.71-1.47C735.22,774.13,734.28,774.87,732.94,775.62z"/> + <path class="st107" d="M706.77,777.65c0.51,0.8,0.63,1.61,1.2,1.71c0.76,0.14,1.8-0.56,2.37-1.62c0.57-1.07,0.27-1.8-0.61-1.72 + C709.07,776.08,708.12,776.87,706.77,777.65z"/> + <path class="st107" d="M682.15,780.76c1.16-1.15,2.12-1.83,2.56-2.61c0.62-1.09,0.15-1.82-0.74-1.81 + c-0.91,0.01-1.98,0.82-2.25,1.91C681.51,779.03,681.92,779.66,682.15,780.76z"/> + <path class="st107" d="M656.51,775.89c0.4,1.1,0.43,2.14,0.95,2.38c0.69,0.33,1.73-0.34,2.35-1.56 + c0.63-1.23,0.42-2.21-0.41-2.27C658.79,774.39,657.83,775.2,656.51,775.89z"/> + <path class="st107" d="M633.06,770.49c0.28,1.3,0.24,2.44,0.69,2.84c0.63,0.55,1.65-0.08,2.29-1.28 + c0.66-1.21,0.61-2.39-0.21-2.6C635.26,769.3,634.32,769.99,633.06,770.49z"/> + <path class="st107" d="M610.88,761.48c0.28,1.41,0.24,2.65,0.69,3.1c0.59,0.61,1.55,0.13,2.19-1.13 + c0.65-1.29,0.53-2.51-0.2-2.84C613.02,760.36,612.11,761.04,610.88,761.48z"/> + <path class="st107" d="M588.95,751.68c0.38,1.24,0.42,2.4,0.91,2.73c0.64,0.43,1.62-0.05,2.2-1.33 + c0.57-1.26,0.36-2.35-0.41-2.55C591.09,750.37,590.18,751.12,588.95,751.68z"/> + <path class="st107" d="M566.4,743.41c0.34,1.15,0.35,2.17,0.82,2.56c0.64,0.53,1.61,0.04,2.2-1c0.6-1.05,0.5-2.12-0.31-2.36 + C568.52,742.45,567.63,743.03,566.4,743.41z"/> + <path class="st107" d="M545.66,735.27c-0.99,0.96-1.81,1.46-2.12,2.11c-0.42,0.88,0.01,1.64,0.94,1.72 + c0.89,0.08,1.82-0.45,1.96-1.42C546.54,737,546.05,736.36,545.66,735.27z"/> + <path class="st107" d="M519.5,731.08c0.7,0.76,1,1.46,1.57,1.62c0.77,0.22,1.65-0.18,1.91-1.05c0.24-0.8-0.12-1.5-1.01-1.52 + C521.35,730.12,520.61,730.64,519.5,731.08z"/> + <path class="st107" d="M498.76,723.76c-0.92,0.48-1.63,0.69-2.03,1.07c-0.42,0.4,0.19,1.31,0.87,1.41 + c0.81,0.12,1.75,0.04,1.86-0.66C499.53,725.09,499.09,724.56,498.76,723.76z"/> + <path class="st107" d="M473.24,717.16c0.62,0.65,0.89,1.2,1.42,1.44c0.69,0.32,1.5,0.28,1.78-0.22 + c0.27-0.49-0.15-1.04-0.91-1.27C474.96,716.94,474.27,717.13,473.24,717.16z"/> + <path class="st107" d="M451.16,707.42c0.61,0.67,0.9,1.17,1.41,1.47c0.66,0.39,1.42,0.5,1.65,0.13 + c0.22-0.37-0.2-0.91-0.92-1.24C452.75,707.55,452.11,707.59,451.16,707.42z"/> + <path class="st107" d="M432.37,694.39c-0.66,0-1.24-0.16-1.41,0.01c-0.23,0.23,0.28,0.86,1.02,1.36 + c0.7,0.47,1.42,0.74,1.37,0.28C433.31,695.73,432.83,695.16,432.37,694.39z"/> + <path class="st107" d="M759.25,773.12c0.85,0.37,1.25,0.84,1.92,0.75c0.92-0.12,1.85-0.85,2.06-1.64 + c0.19-0.74-0.24-1.25-1.27-0.91C761.23,771.57,760.45,772.29,759.25,773.12z"/> + <path class="st107" d="M787.3,771.3c1.02-0.8,1.91-1.29,2.25-1.78c0.47-0.69-0.14-1.06-1.06-0.95 + c-0.94,0.11-1.92,0.69-2.04,1.35C786.37,770.39,786.9,770.7,787.3,771.3z"/> + <path class="st107" d="M814.41,766.46c-0.89,0.69-1.68,1.13-1.9,1.55c-0.31,0.57,0.27,0.89,1.28,0.74 + c0.96-0.14,1.86-0.6,1.84-1.14C815.61,767.23,815,766.98,814.41,766.46z"/> + <path class="st107" d="M837.38,767.59c0.64,0.44,0.9,0.85,1.48,0.95c0.76,0.13,1.64-0.15,1.99-0.63 + c0.35-0.49-0.07-0.89-0.91-0.92C839.32,766.97,838.55,767.29,837.38,767.59z"/> + <path class="st107" d="M861.7,770.25c0.68,0.46,1.01,0.88,1.57,1.01c0.72,0.17,1.56,0.05,1.78-0.38 + c0.21-0.41-0.28-0.82-1.05-0.93C863.41,769.86,862.73,770.09,861.7,770.25z"/> + <path class="st107" d="M885.99,778.11c0.77-0.12,1.46-0.08,1.68-0.27c0.31-0.27-0.25-0.76-1.01-1.07 + c-0.78-0.31-1.54-0.32-1.55,0.07C885.09,777.12,885.58,777.54,885.99,778.11z"/> + <path class="st107" d="M905.57,787.91c0.68,0.75,1.02,1.31,1.5,1.67c0.65,0.48,1.3,0.67,1.39,0.3 + c0.08-0.34-0.31-0.93-1.02-1.36C906.93,788.2,906.41,788.15,905.57,787.91z"/> + <path class="st107" d="M924.43,805.05c0.45,0.92,0.64,1.54,1.04,2.1c0.53,0.74,1.14,1.19,1.38,0.99 + c0.24-0.2-0.05-0.93-0.64-1.63C925.78,805.99,925.24,805.68,924.43,805.05z"/> + <path class="st107" d="M-21.02,336.83c0.75-0.15,1.4-0.06,1.66-0.43c0.37-0.52-0.03-1.51-0.69-2.12 + c-0.67-0.63-1.4-0.65-1.52,0.11C-21.64,334.92-21.29,335.76-21.02,336.83z"/> + <path class="st107" d="M-1.14,352.12c-0.76,0.14-1.34,0.06-1.67,0.32c-0.35,0.27,0.14,1.54,0.69,1.95 + c0.66,0.49,1.42,0.84,1.51,0.12C-0.54,354.02-0.89,353.23-1.14,352.12z"/> + <path class="st107" d="M17.46,369.84c-0.68,0.22-1.27,0.16-1.44,0.49c-0.23,0.44,0.2,1.22,0.93,1.79 + c0.71,0.55,1.36,0.68,1.36,0.02C18.31,371.69,17.86,370.94,17.46,369.84z"/> + <path class="st107" d="M34.56,387.21c0.63,0.96,0.94,1.64,1.41,2.06c0.63,0.56,1.27,0.75,1.39,0.23 + c0.11-0.48-0.24-1.24-0.94-1.73C35.92,387.42,35.38,387.45,34.56,387.21z"/> + <path class="st107" d="M55.67,404.31c-0.66,0.05-1.24-0.11-1.41,0.09c-0.24,0.28,0.25,0.97,0.96,1.51 + c0.68,0.52,1.38,0.81,1.35,0.29C56.54,405.85,56.09,405.21,55.67,404.31z"/> + <path class="st107" d="M75.01,420.5c-0.63,0.03-1.19-0.13-1.32,0.06c-0.18,0.25,0.31,0.86,1.06,1.4 + c0.72,0.51,1.35,0.74,1.29,0.3C76,421.94,75.5,421.34,75.01,420.5z"/> + <path class="st107" d="M92.97,435.51c0.58,0.71,0.88,1.19,1.35,1.57c0.61,0.49,1.29,0.81,1.47,0.58 + c0.18-0.23-0.23-0.81-0.89-1.28C94.4,436.03,93.83,435.9,92.97,435.51z"/> + <path class="st107" d="M112.97,450.13c0.66,0.68,1.01,1.13,1.5,1.48c0.64,0.45,1.3,0.74,1.4,0.49c0.1-0.24-0.35-0.78-1.03-1.21 + C114.32,450.57,113.79,450.47,112.97,450.13z"/> + <path class="st107" d="M410.76,678.23c0.56,0.78,0.84,1.32,1.3,1.74c0.6,0.55,1.27,0.87,1.46,0.6c0.19-0.26-0.21-0.89-0.86-1.4 + C412.18,678.8,411.61,678.65,410.76,678.23z"/> + <path class="st107" d="M391.46,661.25c0.66,0.87,1,1.46,1.46,1.89c0.63,0.58,1.24,0.87,1.31,0.51 + c0.07-0.33-0.32-0.98-1.01-1.51C392.73,661.76,392.24,661.65,391.46,661.25z"/> + <path class="st107" d="M372.68,643.17c0.47,0.81,0.67,1.33,1.1,1.82c0.59,0.67,1.22,1.04,1.47,0.89 + c0.25-0.16-0.02-0.77-0.68-1.41C374.11,644.02,373.53,643.75,372.68,643.17z"/> + <path class="st107" d="M354.06,624.56c0.46,0.83,0.66,1.37,1.08,1.87c0.58,0.69,1.21,1.07,1.47,0.91 + c0.26-0.16-0.01-0.79-0.66-1.45C355.48,625.43,354.91,625.15,354.06,624.56z"/> + <path class="st107" d="M335.47,605.77c0.63,0.94,0.95,1.58,1.4,2.04c0.61,0.63,1.22,0.94,1.3,0.56 + c0.08-0.35-0.29-1.05-0.95-1.63C336.73,606.33,336.25,606.2,335.47,605.77z"/> + <path class="st107" d="M316.95,586.99c0.63,0.94,0.95,1.58,1.4,2.04c0.61,0.62,1.23,0.91,1.32,0.52 + c0.08-0.37-0.28-1.07-0.95-1.63C318.23,587.5,317.73,587.39,316.95,586.99z"/> + <path class="st107" d="M298.29,568.68c0.58,0.89,0.87,1.52,1.32,1.97c0.59,0.58,1.25,0.9,1.39,0.54 + c0.14-0.35-0.24-1.05-0.89-1.59C299.63,569.19,299.1,569.07,298.29,568.68z"/> + <path class="st107" d="M279.21,551.36c0.67,0.87,1.02,1.49,1.5,1.91c0.67,0.58,1.26,0.73,1.33,0.31 + c0.06-0.39-0.32-1.07-1.04-1.57C280.5,551.67,280.01,551.64,279.21,551.36z"/> + <path class="st107" d="M259.75,535.22c0.55,0.78,0.81,1.35,1.27,1.75c0.6,0.52,1.3,0.78,1.52,0.46 + c0.21-0.32-0.17-0.95-0.83-1.42C261.23,535.65,260.64,535.56,259.75,535.22z"/> + <path class="st107" d="M241.63,521.38c-0.73-0.03-1.32-0.15-1.61-0.03c-0.31,0.12,0.3,0.97,0.89,1.29 + c0.71,0.38,1.5,0.69,1.51,0.25C242.43,522.59,242,522.06,241.63,521.38z"/> + <path class="st107" d="M218.46,509.08c0.62,0.6,0.92,1.06,1.42,1.35c0.66,0.38,1.4,0.52,1.62,0.21c0.21-0.3-0.22-0.8-0.94-1.13 + C220.03,509.27,219.41,509.26,218.46,509.08z"/> + <path class="st107" d="M196.55,499.25c0.75,0.59,1.15,1.03,1.68,1.28c0.71,0.34,1.42,0.4,1.49,0.06 + c0.07-0.32-0.38-0.77-1.16-1.05C198,499.34,197.45,499.37,196.55,499.25z"/> + <path class="st107" d="M175.06,488.47c0.74,0.63,1.13,1.08,1.65,1.36c0.7,0.38,1.39,0.49,1.45,0.16 + c0.06-0.3-0.39-0.77-1.14-1.1C176.46,488.65,175.93,488.65,175.06,488.47z"/> + <path class="st107" d="M155.9,477.04c-0.64-0.06-1.22-0.22-1.37-0.13c-0.21,0.14,0.33,0.69,1.09,1.1 + c0.73,0.39,1.47,0.58,1.38,0.26C156.94,478.06,156.42,477.62,155.9,477.04z"/> + <path class="st107" d="M134.77,465.31c0.66,0.18,1.28,0.41,1.45,0.34c0.25-0.11-0.3-0.65-1.02-1.1 + c-0.74-0.46-1.41-0.68-1.38-0.4C133.84,464.35,134.32,464.8,134.77,465.31z"/> + <path class="st107" d="M160.92,470.02c-0.73-0.13-1.28-0.3-1.59-0.26c-0.42,0.06,0.06,0.84,0.74,1.19 + c0.47,0.24,1.33,0.49,1.36,0.37C161.51,471.07,161.17,470.59,160.92,470.02z"/> + <path class="st107" d="M179.8,481.62c0.57,0.59,0.79,0.93,1.19,1.2c0.68,0.47,1.63,0.68,1.63,0.37c0-0.21-0.36-0.72-0.68-0.88 + C181.41,482.03,180.78,481.93,179.8,481.62z"/> + <path class="st107" d="M201.4,492.25c0.51,0.52,0.69,0.8,1.08,1.06c0.62,0.41,1.66,0.64,1.73,0.39 + c0.05-0.16-0.26-0.61-0.59-0.76C203.1,492.68,202.43,492.56,201.4,492.25z"/> + <path class="st107" d="M225.24,502.47c-0.73,0.02-1.33-0.06-1.52,0.09c-0.09,0.07,0.54,0.66,0.94,0.86 + c0.41,0.2,1.3,0.39,1.32,0.28C226.02,503.48,225.62,503.06,225.24,502.47z"/> + <path class="st107" d="M244.33,513.93c0.59,0.64,0.83,1.01,1.23,1.33c0.64,0.5,1.61,0.75,1.55,0.39c-0.04-0.25-0.4-0.82-0.71-1 + C245.88,514.35,245.28,514.25,244.33,513.93z"/> + <path class="st107" d="M265.22,527.79c-0.09,0.58,0.55,1.34,1.24,1.62c0.42,0.17,1.01,0.19,1.02-0.01 + c0.01-0.25-0.5-1.02-0.8-1.19C266.14,527.91,265.59,527.89,265.22,527.79z"/> + <path class="st107" d="M284.68,542.67c0.4,0.82,0.51,1.27,0.84,1.69c0.52,0.66,1.49,1.08,1.63,0.68 + c0.09-0.26-0.12-0.99-0.4-1.25C286.28,543.37,285.63,543.17,284.68,542.67z"/> + <path class="st107" d="M306.06,559.93c-0.75-0.1-1.28-0.31-1.61-0.21c-0.45,0.13-0.1,1.24,0.54,1.7 + c0.44,0.32,1.28,0.64,1.33,0.46C306.44,561.49,306.19,560.79,306.06,559.93z"/> + <path class="st107" d="M324.74,577.13c-0.77,0.35-1.34,0.36-1.54,0.73c-0.1,0.18,0.43,1.22,0.79,1.53 + c0.36,0.31,1.2,0.43,1.24,0.2C325.31,579.11,325,578.34,324.74,577.13z"/> + <path class="st107" d="M341.48,595.43c0.38,1.08,0.49,1.71,0.82,2.19c0.54,0.81,1.48,1.08,1.61,0.42 + c0.08-0.44-0.09-1.43-0.37-1.71C343.08,595.89,342.43,595.83,341.48,595.43z"/> + <path class="st107" d="M362.26,614.42c-0.79,0.03-1.35-0.14-1.71,0.05c-0.5,0.26-0.24,1.61,0.4,2.09 + c0.44,0.33,1.3,0.58,1.38,0.35C362.5,616.39,362.31,615.53,362.26,614.42z"/> + <path class="st107" d="M378.89,633.55c0.14,0.35,0.29,1.02,0.63,1.49c0.55,0.75,1.56,0.83,1.62,0.09 + c0.04-0.54-0.15-1.36-0.46-1.9C380.26,632.51,379.26,632.64,378.89,633.55z"/> + <path class="st107" d="M400,650.55c-1.01,0.3-1.68,0.24-2.02,0.59c-0.18,0.18,0.11,1.29,0.43,1.63 + c0.34,0.37,1.28,0.64,1.4,0.42C400.05,652.73,399.91,651.91,400,650.55z"/> + <path class="st107" d="M417.16,668.04c0.16,0.3,0.34,0.88,0.71,1.29c0.59,0.65,1.61,0.72,1.64,0.03 + c0.02-0.5-0.19-1.26-0.52-1.75C418.55,666.95,417.51,667.17,417.16,668.04z"/> + <path class="st107" d="M140.25,456.42c-0.73,0.03-1.32-0.07-1.52,0.13c-0.1,0.1,0.47,0.86,0.85,1.12 + c0.39,0.26,1.27,0.48,1.29,0.34C140.92,457.72,140.57,457.18,140.25,456.42z"/> + <path class="st107" d="M118.61,441.62c-0.1,0.64,0.53,1.46,1.22,1.73c0.42,0.16,1.01,0.17,1.02-0.05 + c0.01-0.27-0.5-1.07-0.79-1.25C119.52,441.73,118.99,441.71,118.61,441.62z"/> + <path class="st107" d="M98.59,425.43c0.4,0.84,0.52,1.31,0.85,1.73c0.53,0.67,1.5,1.06,1.62,0.66 + c0.08-0.27-0.14-0.99-0.42-1.24C100.17,426.16,99.54,425.94,98.59,425.43z"/> + <path class="st107" d="M79.23,408.74c0.46,0.91,0.62,1.44,0.97,1.87c0.59,0.72,1.5,1.01,1.55,0.51 + c0.04-0.34-0.23-1.12-0.52-1.38C80.76,409.33,80.16,409.18,79.23,408.74z"/> + <path class="st107" d="M62.03,391.43c-0.69,0.19-1.23,0.16-1.4,0.5c-0.08,0.16,0.48,1.17,0.84,1.47 + c0.36,0.3,1.18,0.45,1.2,0.25C62.71,393.21,62.37,392.5,62.03,391.43z"/> + <path class="st107" d="M41.85,373.27c-0.16,0.84,0.39,1.88,1.07,2.17c0.41,0.18,1.01,0.14,1.04-0.14 + c0.04-0.35-0.41-1.35-0.69-1.56C42.76,373.36,42.22,373.37,41.85,373.27z"/> + <path class="st107" d="M23.29,354.55c-0.21,0.81,0.27,1.83,0.97,2.19c0.41,0.21,0.94,0.18,1.1-0.07 + c0.25-0.39-0.41-1.59-1.01-1.91C23.92,354.54,23.53,354.59,23.29,354.55z"/> + <path class="st107" d="M4.79,335.55c-0.17,0.86,0.37,1.94,1.04,2.25c0.41,0.18,1,0.15,1.04-0.15c0.04-0.36-0.4-1.39-0.68-1.6 + C5.69,335.65,5.15,335.65,4.79,335.55z"/> + <path class="st107" d="M-12,316.83c-0.7-0.2-1.21-0.45-1.52-0.37c-0.43,0.12-0.11,1.37,0.52,1.88c0.43,0.35,1.24,0.68,1.3,0.49 + C-11.59,318.41-11.84,317.67-12,316.83z"/> + <path class="st107" d="M-32.06,297.44c-0.18,0.74,0.29,1.76,0.98,2.13c0.4,0.22,0.93,0.22,1.08-0.01 + c0.24-0.35-0.43-1.49-1.02-1.84C-31.45,297.48-31.83,297.5-32.06,297.44z"/> + <path class="st107" d="M930.32,801.62c-0.58-0.52-1.03-0.96-1.27-1.1c-0.33-0.19,0.1,0.67,0.66,1.32 + c0.39,0.45,1.08,1.13,1.09,1.06C930.85,802.76,930.55,802.19,930.32,801.62z"/> + <path class="st107" d="M911.43,783.56c0.54,0.23,1.01,0.5,1.24,0.54c0.3,0.05-0.29-0.71-0.87-1.18 + c-0.6-0.48-1.4-0.83-1.26-0.51C910.64,782.63,911.04,783.05,911.43,783.56z"/> + <path class="st107" d="M891.48,769.39c-0.65,0.03-1.19-0.02-1.31,0.14c-0.06,0.08,0.64,0.63,1.04,0.82 + c0.4,0.19,1.22,0.35,1.21,0.24C892.41,770.37,891.97,769.97,891.48,769.39z"/> + <path class="st107" d="M868.01,760.91c0.21,0.14,0.5,0.43,0.94,0.62c0.71,0.3,1.76,0.27,1.66-0.04 + c-0.07-0.23-0.44-0.56-0.86-0.77C869.17,760.43,868.2,760.49,868.01,760.91z"/> + <path class="st107" d="M846.71,754.91c-0.85,0.18-1.48,0.25-1.84,0.44c-0.5,0.26,0.03,0.87,0.82,0.91 + c0.55,0.03,1.54-0.09,1.58-0.22C847.36,755.75,846.98,755.4,846.71,754.91z"/> + <path class="st107" d="M822.7,751.71c-1.07,0.47-1.84,0.71-2.17,1.04c-0.17,0.17,0.33,0.69,0.75,0.75 + c0.45,0.07,1.58-0.18,1.67-0.35C823.15,752.79,822.87,752.4,822.7,751.71z"/> + <path class="st107" d="M797.73,750.38c-0.95,0.45-1.65,0.68-2.07,1.03c-0.58,0.48-0.1,1.23,0.74,1.13 + c0.58-0.07,1.68-0.46,1.75-0.66C798.3,751.44,797.95,751.01,797.73,750.38z"/> + <path class="st107" d="M772.4,749.74c-1.03,0.83-1.85,1.32-2.18,1.85c-0.16,0.26,0.46,0.85,0.93,0.84 + c0.48-0.01,1.67-0.61,1.74-0.86C773.05,751.05,772.68,750.58,772.4,749.74z"/> + <path class="st107" d="M744.71,751.69c0.19,0.19,0.41,0.66,0.89,0.79c0.75,0.2,2.1-0.62,2.12-1.28 + c0.02-0.48-0.28-0.99-0.72-1.18C746.41,749.76,745.15,750.59,744.71,751.69z"/> + <path class="st107" d="M720.1,752.55c1.11-0.9,2-1.39,2.41-2.02c0.22-0.34-0.2-1.09-0.62-1.33c-0.57-0.32-1.99,0.62-2.15,1.41 + C719.62,751.17,719.91,751.65,720.1,752.55z"/> + <path class="st107" d="M697.19,746.37c-1.09,1.22-1.91,1.89-2.24,2.62c-0.16,0.36,0.45,1.15,0.93,1.15 + c0.48-0.01,1.67-0.83,1.75-1.18C697.8,748.24,697.45,747.59,697.19,746.37z"/> + <path class="st107" d="M670.52,744.37c0.41,1.01,0.48,1.74,0.87,2.04c0.66,0.5,1.96-0.2,2.2-1.16c0.16-0.65,0.01-1.7-0.34-1.77 + C672.66,743.37,671.79,743.92,670.52,744.37z"/> + <path class="st107" d="M650.22,736.2c-1.13,1.1-1.98,1.66-2.4,2.45c-0.21,0.39,0.2,1.56,0.62,1.69 + c0.43,0.13,1.65-0.53,1.77-0.92C650.48,738.58,650.27,737.68,650.22,736.2z"/> + <path class="st107" d="M628.14,726.98c-1.11,1.02-1.93,1.53-2.35,2.31c-0.21,0.38,0.16,1.67,0.56,1.86 + c0.41,0.2,1.58-0.36,1.71-0.76C628.34,729.53,628.15,728.55,628.14,726.98z"/> + <path class="st107" d="M603.5,720.13c-0.51,1.55-0.03,2.53,0.92,2.25c0.55-0.16,1.35-0.84,1.65-1.45 + c0.47-0.94-0.2-2.06-1.02-1.81C604.45,719.31,603.84,719.89,603.5,720.13z"/> + <path class="st107" d="M580.48,717.25c0.85-0.76,1.56-1.18,1.94-1.76c0.55-0.85,0.02-1.86-0.79-1.87 + c-0.86-0.01-1.97,0.94-1.97,1.85C579.65,716.04,580.1,716.47,580.48,717.25z"/> + <path class="st107" d="M556.09,713.64c0.84-0.71,1.54-1.12,1.9-1.66c0.52-0.78-0.06-1.66-0.89-1.63 + c-0.88,0.03-1.97,0.93-1.93,1.74C555.19,712.6,555.67,712.96,556.09,713.64z"/> + <path class="st107" d="M529.92,708.93c0.42,0.79,0.51,1.34,0.9,1.6c0.63,0.41,1.94-0.07,2.2-0.82c0.17-0.49,0-1.33-0.36-1.39 + C532.07,708.22,531.19,708.62,529.92,708.93z"/> + <path class="st107" d="M507.5,705.06c-0.97,0.9-1.71,1.36-1.97,1.89c-0.12,0.26,0.58,0.88,1.05,0.9 + c0.47,0.02,1.57-0.54,1.62-0.8C508.29,706.52,507.87,706.01,507.5,705.06z"/> + <path class="st107" d="M481.44,702.09c-0.28,0.96,0.33,1.6,1.23,1.47c0.52-0.07,1.2-0.47,1.42-0.84 + c0.34-0.58-0.48-1.33-1.26-1.2C482.26,701.61,481.74,701.96,481.44,702.09z"/> + <path class="st107" d="M460.42,693.72c-0.93,0.55-1.64,0.75-1.93,1.18c-0.14,0.21,0.4,1.06,0.81,1.22 + c0.42,0.17,1.46-0.01,1.52-0.25C460.96,695.38,460.64,694.76,460.42,693.72z"/> + <path class="st107" d="M439.31,682.05c-0.84,0.16-1.43,0.07-1.8,0.29c-0.51,0.3-0.18,1.48,0.51,1.81 + c0.48,0.23,1.4,0.31,1.48,0.08C439.66,683.74,439.4,683.05,439.31,682.05z"/> + <path class="st107" d="M435.5,660.86c-1,0.64-1.65,0.81-2.09,1.36c-0.66,0.83-0.53,2.6,0.19,2.72c0.47,0.08,1.27-0.42,1.6-1.03 + C435.51,663.35,435.38,662.32,435.5,660.86z"/> + <path class="st107" d="M453.11,676.7c0.34,1.04,0.44,1.89,0.82,2.29c0.53,0.57,1.57-0.38,1.91-1.69 + c0.28-1.09,0.07-1.92-0.68-1.83C454.61,675.54,453.99,676.16,453.11,676.7z"/> + <path class="st107" d="M477.53,684.57c-1,1.07-1.71,1.56-2.1,2.25c-0.55,0.96,0.08,2.37,0.84,2c0.55-0.26,1.29-1.08,1.54-1.75 + C478.03,686.47,477.68,685.76,477.53,684.57z"/> + <path class="st107" d="M498.7,692.4c0.23,0.95,0.24,1.73,0.6,2.07c0.51,0.47,1.24,0,1.82-0.9c0.72-1.11,0.71-2.5-0.13-2.39 + C500.42,691.26,499.69,691.87,498.7,692.4z"/> + <path class="st107" d="M525.67,693.67c-1.03,1.14-1.76,1.7-2.14,2.36c-0.54,0.93,0.22,2.01,1.01,1.56 + c0.57-0.33,1.33-1.15,1.56-1.78C526.3,695.25,525.89,694.7,525.67,693.67z"/> + <path class="st107" d="M550.69,695.71c-1.01,1.09-1.73,1.62-2.1,2.25c-0.52,0.88,0.28,1.85,1.06,1.42 + c0.56-0.31,1.3-1.08,1.51-1.67C551.36,697.19,550.93,696.68,550.69,695.71z"/> + <path class="st107" d="M573.29,699.74c0.36,0.7,0.49,1.29,0.9,1.54c0.58,0.36,1.84-0.46,1.97-1.38 + c0.07-0.51-0.27-1.27-0.68-1.31C575.01,698.56,574.23,699.23,573.29,699.74z"/> + <path class="st107" d="M599.98,701.58c-0.9,0.81-1.56,1.22-1.9,1.77c-0.47,0.78,0.27,1.9,1.01,1.56 + c0.54-0.25,1.23-0.94,1.42-1.46C600.69,702.96,600.26,702.44,599.98,701.58z"/> + <path class="st107" d="M621.13,709.28c0.22,0.95,0.2,1.68,0.51,2.1c0.44,0.6,1.12,0.31,1.66-0.37 + c0.67-0.86,0.65-2.04-0.11-2.18C622.68,708.73,622.05,709.05,621.13,709.28z"/> + <path class="st107" d="M643.07,719c0.2,0.97,0.19,1.72,0.49,2.15c0.43,0.62,1.11,0.34,1.64-0.34c0.67-0.85,0.65-2.04-0.1-2.2 + C644.6,718.51,643.97,718.81,643.07,719z"/> + <path class="st107" d="M667.66,725.83c-0.87,0.76-1.53,1.14-1.86,1.69c-0.47,0.77,0.22,1.99,0.96,1.68 + c0.53-0.22,1.21-0.89,1.4-1.42C668.33,727.3,667.92,726.73,667.66,725.83z"/> + <path class="st107" d="M688.92,732.83c0.3,0.77,0.35,1.43,0.72,1.73c0.52,0.42,1.22,0.03,1.72-0.68 + c0.62-0.88,0.48-1.92-0.32-1.88C690.48,732.03,689.84,732.45,688.92,732.83z"/> + <path class="st107" d="M712.91,736.73c0.38,0.65,0.5,1.23,0.9,1.48c0.58,0.36,1.81-0.42,1.91-1.24 + c0.06-0.46-0.32-1.1-0.73-1.15C714.53,735.76,713.81,736.3,712.91,736.73z"/> + <path class="st107" d="M737.33,739.43c0.54,0.5,0.78,0.96,1.25,1.1c0.67,0.19,1.64-0.61,1.78-1.4 + c0.11-0.65-0.26-1.04-1.05-0.83C738.75,738.45,738.2,738.91,737.33,739.43z"/> + <path class="st107" d="M762.16,741.01c0.5,0.47,0.71,0.9,1.17,1.05c0.65,0.21,1.64-0.48,1.79-1.17 + c0.13-0.57-0.23-0.94-0.99-0.8C763.58,740.2,763.02,740.6,762.16,741.01z"/> + <path class="st107" d="M787.06,742.4c0.41,0.47,0.55,0.88,0.97,1.04c0.58,0.23,1.24-0.04,1.65-0.5 + c0.51-0.57,0.23-1.21-0.58-1.15C788.54,741.83,787.94,742.12,787.06,742.4z"/> + <path class="st107" d="M814.78,745.02c-0.44-0.41-0.61-0.81-1.01-0.87c-0.44-0.07-1.24,0.12-1.6,0.34 + c-0.55,0.34-0.08,1.01,0.68,1C813.37,745.47,813.93,745.23,814.78,745.02z"/> + <path class="st107" d="M835.67,747.93c0.53,0.36,0.8,0.65,1.26,0.81c0.64,0.21,1.49-0.08,1.54-0.48 + c0.04-0.34-0.34-0.61-1.05-0.63C836.91,747.61,836.43,747.78,835.67,747.93z"/> + <path class="st107" d="M862.04,754.11c-0.45-0.37-0.66-0.69-1.03-0.81c-0.41-0.13-1.13-0.16-1.44-0.08 + c-0.47,0.13,0.03,0.69,0.74,0.83C860.79,754.14,861.28,754.08,862.04,754.11z"/> + <path class="st107" d="M882.91,761.38c-0.58-0.02-1.07-0.09-1.23,0c-0.23,0.13,0.66,0.78,1.22,0.91 + c0.41,0.09,0.85,0.08,0.89-0.05C883.82,762.13,883.34,761.79,882.91,761.38z"/> + <path class="st107" d="M903.47,774.12c0.52,0.15,1.03,0.39,1.07,0.3c0.04-0.09-0.3-0.5-0.65-0.78 + c-0.57-0.47-1.39-0.8-1.28-0.53C902.68,773.29,903.05,773.64,903.47,774.12z"/> + <path class="st107" d="M921.54,788.88c0.36,0.52,0.5,0.81,0.82,1.19c0.45,0.54,0.88,0.9,1.13,1c0.31,0.12,0.04-0.37-0.54-0.95 + C922.56,789.72,922.16,789.41,921.54,788.88z"/> + <path class="st107" d="M939.93,812.6c-0.5-0.65-0.88-1.18-1.06-1.33c-0.26-0.22,0.15,0.76,0.63,1.51 + c0.31,0.49,0.72,1.01,0.82,1.03C940.4,813.82,940.13,813.18,939.93,812.6z"/> + <path class="st107" d="M-16.66,302.42c0.11-1.57,0.44-3.07,0.17-3.48c-0.29-0.44-1.17-0.22-1.72,0.32 + c-0.84,0.83-1.23,3.26-0.59,3.64C-18.35,303.16-17.61,302.68-16.66,302.42z"/> + <path class="st107" d="M0.8,319.36c-1.04,0.87-1.74,1.17-2.23,1.88c-0.69,0.99,0.14,1.87,0.62,2.25 + c0.35,0.27,0.95,0.01,1.31-0.74C0.81,322.07,0.67,320.98,0.8,319.36z"/> + <path class="st107" d="M16.44,340.32c0.41,0.57,0.6,0.96,0.95,1.37c0.49,0.59,1.27,1.03,1.18,0.71 + c-0.05-0.18-0.46-0.73-0.78-1.04C17.44,341.03,17.02,340.75,16.44,340.32z"/> + <path class="st107" d="M36.13,360.65c0.52,0.14,1.02,0.43,1.07,0.3c0.05-0.13-0.26-0.66-0.58-1.02 + c-0.53-0.6-1.31-1.07-1.23-0.7C35.45,359.48,35.78,359.96,36.13,360.65z"/> + <path class="st107" d="M53.82,377.15c0.39,0.63,0.57,1.07,0.91,1.5c0.49,0.61,1.3,0.95,1.24,0.53 + c-0.03-0.23-0.42-0.85-0.74-1.15C54.88,377.69,54.43,377.51,53.82,377.15z"/> + <path class="st107" d="M72.75,395.02c0.33,0.63,0.45,1.03,0.76,1.44c0.45,0.59,0.93,0.81,1.23,0.75 + c0.38-0.08,0.15-0.71-0.47-1.22C73.86,395.64,73.43,395.43,72.75,395.02z"/> + <path class="st107" d="M91.78,412.49c0.48,0.67,0.73,1.14,1.11,1.53c0.54,0.55,1.18,0.62,1.18,0.2c0-0.35-0.35-0.83-0.93-1.2 + C92.74,412.76,92.38,412.71,91.78,412.49z"/> + <path class="st107" d="M112,430.5c0.66,0.18,1.22,0.45,1.35,0.34c0.14-0.12,0-0.57-0.26-0.92c-0.39-0.52-1.45-1.02-1.51-0.71 + C111.53,429.43,111.79,429.88,112,430.5z"/> + <path class="st107" d="M131.9,446.06c0.62,0.11,1.18,0.34,1.29,0.21c0.12-0.13-0.08-0.59-0.37-0.92 + c-0.42-0.48-1.52-0.91-1.51-0.58C131.32,445.02,131.62,445.45,131.9,446.06z"/> + <path class="st107" d="M152.34,460.53c0.57,0.01,1.12,0.16,1.18,0c0.06-0.16-0.26-0.65-0.61-0.95 + c-0.57-0.49-1.45-0.69-1.37-0.31C151.59,459.53,151.95,459.94,152.34,460.53z"/> + <path class="st107" d="M173.05,473.53c0.58,0,1.14,0.13,1.19-0.02c0.06-0.15-0.28-0.6-0.63-0.87 + c-0.59-0.45-1.48-0.61-1.39-0.26C172.28,472.61,172.65,472.99,173.05,473.53z"/> + <path class="st107" d="M194.09,484.97c0.64,0.05,1.24,0.2,1.34,0.09c0.11-0.12-0.12-0.48-0.43-0.73 + c-0.46-0.37-1.62-0.63-1.6-0.36C193.42,484.16,193.76,484.5,194.09,484.97z"/> + <path class="st107" d="M216.12,495.09c0.58-0.02,1.16,0.06,1.21-0.07c0.05-0.13-0.31-0.52-0.68-0.73 + c-0.62-0.36-1.54-0.44-1.43-0.15C215.29,494.34,215.69,494.64,216.12,495.09z"/> + <path class="st107" d="M238.12,504.4c-0.6,0.03-1.09-0.04-1.27,0.08c-0.25,0.17,0.61,0.95,1.18,1.09 + c0.41,0.1,0.86,0.05,0.92-0.12C239,505.3,238.53,504.89,238.12,504.4z"/> + <path class="st107" d="M257.54,516.31c0.51,0.57,0.78,0.98,1.19,1.29c0.58,0.44,1.28,0.38,1.29-0.07 + c0.01-0.38-0.35-0.8-0.98-1.03C258.59,516.34,258.19,516.39,257.54,516.31z"/> + <path class="st107" d="M278.03,529.77c0.48,0.66,0.71,1.14,1.11,1.5c0.56,0.5,1.28,0.38,1.33-0.18 + c0.04-0.46-0.29-0.96-0.92-1.19C279.11,529.73,278.7,529.82,278.03,529.77z"/> + <path class="st107" d="M298.98,546.64c0.64-0.17,1.24-0.13,1.35-0.43c0.12-0.3-0.11-1.03-0.43-1.41 + c-0.52-0.62-1.49-0.58-1.5,0.03C298.39,545.24,298.7,545.8,298.98,546.64z"/> + <path class="st107" d="M317.74,560.21c0.26,0.87,0.32,1.5,0.63,1.97c0.43,0.65,0.98,0.67,1.38,0.27 + c0.49-0.5,0.37-1.57-0.29-1.94C319,560.25,318.48,560.33,317.74,560.21z"/> + <path class="st107" d="M339.12,576.8c-0.83,0.2-1.39,0.14-1.74,0.44c-0.51,0.45-0.25,1.86,0.4,2.15 + c0.43,0.19,1.1,0.03,1.34-0.35C339.35,578.7,339.15,577.87,339.12,576.8z"/> + <path class="st107" d="M357.93,593.68c-0.79,0.52-1.36,0.66-1.67,1.12c-0.43,0.65,0.1,2.28,0.72,2.28 + c0.45,0,1.05-0.44,1.24-0.95C358.4,595.66,358.1,594.84,357.93,593.68z"/> + <path class="st107" d="M375.04,611.87c0.16,1.14,0.13,2,0.4,2.57c0.38,0.79,0.98,0.66,1.48-0.01c0.61-0.83,0.64-2.29-0.03-2.62 + C376.43,611.58,375.84,611.83,375.04,611.87z"/> + <path class="st107" d="M394.13,629.16c0.09,1.26,0.01,2.15,0.25,2.75c0.34,0.86,0.96,0.73,1.51,0.04 + c0.68-0.87,0.8-2.4,0.14-2.78C395.58,628.91,394.97,629.15,394.13,629.16z"/> + <path class="st107" d="M415.66,645.15c-0.95,0.64-1.58,0.81-2.01,1.37c-0.6,0.78-0.37,2.6,0.32,2.67 + c0.47,0.05,1.23-0.46,1.52-1.06C415.77,647.56,415.6,646.55,415.66,645.15z"/> + <path class="st107" d="M426.36,684.03c-0.59-0.78-0.85-1.29-1.25-1.64c-0.62-0.55-1.54-0.59-1.43-0.08 + c0.08,0.37,0.51,1.13,0.79,1.29C424.98,683.89,425.5,683.87,426.36,684.03z"/> + <path class="st107" d="M403.56,665.61c0.68,0.99,1.02,1.62,1.5,2.09c0.24,0.23,1,0.37,1.11,0.18c0.11-0.19-0.26-1.04-0.52-1.25 + C405.13,666.22,404.53,666.07,403.56,665.61z"/> + <path class="st107" d="M386.7,649.1c-0.8-0.19-1.42-0.48-1.71-0.38c-0.13,0.05,0.27,0.88,0.6,1.34c0.45,0.62,1.4,1.02,1.48,0.6 + C387.11,650.37,386.88,649.86,386.7,649.1z"/> + <path class="st107" d="M366.18,630.41c0.21,0.41,0.41,1.01,0.83,1.54c0.2,0.25,0.99,0.6,1.16,0.49 + c0.16-0.11,0.01-0.74-0.25-1.17C367.52,630.59,366.6,630.1,366.18,630.41z"/> + <path class="st107" d="M347.67,611.56c0.2,0.41,0.41,1.02,0.82,1.56c0.19,0.25,0.98,0.62,1.15,0.51 + c0.16-0.11,0.01-0.74-0.24-1.18C349.01,611.77,348.09,611.26,347.67,611.56z"/> + <path class="st107" d="M328.81,592.04c0.65,1.07,0.96,1.73,1.43,2.26c0.23,0.26,0.96,0.49,1.07,0.31 + c0.1-0.17-0.24-1.06-0.49-1.3C330.31,592.83,329.74,592.61,328.81,592.04z"/> + <path class="st107" d="M310.7,573.87c0.21,0.4,0.41,1.01,0.83,1.54c0.2,0.25,0.99,0.59,1.16,0.48 + c0.16-0.11,0.01-0.73-0.24-1.16C312.04,574.05,311.12,573.56,310.7,573.87z"/> + <path class="st107" d="M291.88,555.93c0.23,0.34,0.44,0.92,0.87,1.43c0.2,0.24,1.03,0.5,1.17,0.45 + c0.14-0.05-0.06-0.55-0.33-0.93C293.16,556.29,292.25,555.78,291.88,555.93z"/> + <path class="st107" d="M272.54,539.42c0.24,0.32,0.5,0.77,0.95,1.21c0.21,0.2,1,0.57,1.15,0.52c0.14-0.05-0.06-0.53-0.35-0.88 + C273.84,539.72,272.91,539.26,272.54,539.42z"/> + <path class="st107" d="M255.37,526.27c-0.63-0.64-0.93-1.03-1.35-1.35c-0.64-0.49-1.5-0.7-1.34-0.34 + c0.12,0.26,0.6,0.85,0.88,1.01C254.07,525.89,254.56,525.98,255.37,526.27z"/> + <path class="st107" d="M231.92,511.51c0.26,0.26,0.54,0.65,1.03,1c0.23,0.16,1.07,0.39,1.22,0.31 + c0.15-0.07-0.08-0.48-0.39-0.76C233.3,511.63,232.31,511.31,231.92,511.51z"/> + <path class="st107" d="M209.87,500.51c0.83,0.58,1.26,0.94,1.82,1.22c0.28,0.14,1.08,0.18,1.17,0.05 + c0.09-0.12-0.39-0.65-0.69-0.77C211.58,500.78,210.94,500.73,209.87,500.51z"/> + <path class="st107" d="M190.09,490.96c-0.68,0.03-1.3-0.05-1.44,0.11c-0.08,0.09,0.5,0.59,0.93,0.85 + c0.61,0.37,1.47,0.42,1.39,0.08C190.92,491.8,190.52,491.47,190.09,490.96z"/> + <path class="st107" d="M169.02,480.08c-0.83-0.12-1.49-0.31-1.78-0.23c-0.13,0.04,0.36,0.6,0.75,0.91 + c0.52,0.41,1.54,0.65,1.57,0.37C169.58,480.93,169.29,480.58,169.02,480.08z"/> + <path class="st107" d="M145.79,467.1c0.77,0.76,1.15,1.24,1.68,1.6c0.26,0.18,1.03,0.29,1.12,0.16 + c0.09-0.14-0.35-0.78-0.63-0.94C147.4,467.6,146.79,467.46,145.79,467.1z"/> + <path class="st107" d="M126.61,455.08c1,0.6,1.59,0.58,1.54,0.14c-0.05-0.38-0.44-0.86-1.03-1.12c-0.46-0.2-1.22-0.35-1.2-0.21 + C125.97,454.24,126.41,454.78,126.61,455.08z"/> + <path class="st107" d="M108.53,441.11c-0.6-0.74-0.87-1.22-1.28-1.57c-0.62-0.54-1.51-0.64-1.39-0.16 + c0.09,0.35,0.53,1.07,0.81,1.23C107.18,440.9,107.69,440.91,108.53,441.11z"/> + <path class="st107" d="M86.11,423.62c0.22,0.39,0.43,0.99,0.87,1.47c0.2,0.23,1.04,0.44,1.21,0.29 + c0.17-0.14,0.01-0.77-0.26-1.17C87.51,423.58,86.55,423.22,86.11,423.62z"/> + <path class="st107" d="M66.76,407.08c0.21,0.42,0.4,1.07,0.83,1.59c0.2,0.24,1.04,0.44,1.22,0.27 + c0.18-0.17,0.03-0.85-0.23-1.29C68.18,406.97,67.22,406.61,66.76,407.08z"/> + <path class="st107" d="M47.26,389.23c0.64,1.13,0.94,1.87,1.42,2.38c0.23,0.25,1.02,0.27,1.15,0.02 + c0.12-0.25-0.2-1.26-0.46-1.47C48.85,389.73,48.24,389.63,47.26,389.23z"/> + <path class="st107" d="M28.85,371.82c0.19,0.48,0.35,1.24,0.76,1.81c0.19,0.27,1.04,0.42,1.24,0.19 + c0.19-0.22,0.09-1.02-0.15-1.51C30.32,371.55,29.36,371.21,28.85,371.82z"/> + <path class="st107" d="M10.76,355.21c0.94,0.76,1.59,0.51,1.64-0.26c0.04-0.67-0.27-1.39-0.85-1.67 + c-0.45-0.22-1.24-0.24-1.25,0.02C10.27,353.9,10.63,354.72,10.76,355.21z"/> + <path class="st107" d="M-8.34,334.58c0.17,0.53,0.31,1.38,0.7,1.99c0.18,0.29,1.05,0.38,1.27,0.1c0.21-0.26,0.13-1.16-0.1-1.69 + C-6.82,334.15-7.8,333.85-8.34,334.58z"/> + <path class="st107" d="M-24.83,315.34c-0.87,0.06-1.52-0.09-1.89,0.24c-0.17,0.15,0.13,1.31,0.42,1.9 + c0.39,0.79,1.44,0.89,1.6,0.16C-24.57,317.14-24.74,316.42-24.83,315.34z"/> + <path class="st107" d="M934.83,813.73c0.56,1.28,0.82,2.04,1.2,2.77c0.19,0.36,0.77,0.99,0.84,0.91 + c0.07-0.09-0.23-1.05-0.43-1.41C936.03,815.3,935.58,814.75,934.83,813.73z"/> + <path class="st107" d="M919.62,793.79c-0.72-0.4-1.3-0.78-1.56-0.79c-0.12-0.01,0.31,0.69,0.65,1.11 + c0.45,0.57,1.35,1.13,1.38,0.86C920.1,794.78,919.85,794.35,919.62,793.79z"/> + <path class="st107" d="M899.77,778.32c-0.65-0.04-1.25-0.17-1.39-0.02c-0.08,0.09,0.47,0.64,0.88,0.94 + c0.58,0.42,1.4,0.55,1.33,0.2C900.55,779.23,900.18,778.86,899.77,778.32z"/> + <path class="st107" d="M877.5,769.36c1.1,0.3,1.74,0.16,1.67-0.2c-0.06-0.31-0.5-0.63-1.15-0.74c-0.5-0.08-1.34-0.05-1.31,0.07 + C876.78,768.78,877.28,769.14,877.5,769.36z"/> + <path class="st107" d="M852.85,762.8c0.87,0.45,1.29,0.79,1.9,0.93c0.3,0.07,1.21-0.18,1.32-0.38c0.11-0.19-0.37-0.68-0.7-0.72 + C854.74,762.54,854.03,762.69,852.85,762.8z"/> + <path class="st107" d="M831.34,759.48c-1.03,0.41-1.84,0.63-2.22,0.96c-0.18,0.15,0.35,0.6,0.78,0.76 + c0.59,0.22,1.85-0.19,1.94-0.63C831.9,760.29,831.6,760,831.34,759.48z"/> + <path class="st107" d="M803.19,760.15c0.88,0.41,1.3,0.78,1.94,0.82c0.32,0.02,1.35-0.57,1.51-0.87 + c0.15-0.3-0.31-0.85-0.66-0.82C805.3,759.33,804.5,759.7,803.19,760.15z"/> + <path class="st107" d="M444.55,698.23c0.76-0.07,1.3-0.02,1.58-0.19c0.45-0.28,0.04-1.14-0.68-1.4 + c-0.49-0.18-1.33-0.26-1.4-0.07C443.94,696.9,444.29,697.48,444.55,698.23z"/> + <path class="st107" d="M468.86,707.75c-0.67-0.58-0.96-0.99-1.43-1.21c-0.71-0.33-1.76-0.03-1.64,0.46 + c0.08,0.36,0.57,0.98,0.89,1.04C467.27,708.15,467.88,707.92,468.86,707.75z"/> + <path class="st107" d="M488.9,713.78c0.25,0.3,0.49,0.84,1.01,1.11c0.24,0.13,1.29-0.17,1.52-0.46 + c0.23-0.28,0.06-0.89-0.25-1.17C490.68,712.81,489.48,713.04,488.9,713.78z"/> + <path class="st107" d="M512.88,718.6c0.24,0.33,0.45,0.93,0.98,1.19c0.24,0.12,1.34-0.33,1.6-0.68 + c0.25-0.35,0.12-1.04-0.19-1.34C514.78,717.3,513.53,717.68,512.88,718.6z"/> + <path class="st107" d="M537.15,722.62c0.22,0.37,0.4,1.07,0.91,1.36c0.24,0.14,1.38-0.43,1.67-0.86 + c0.28-0.42,0.19-1.22-0.1-1.56C539.17,721.04,537.88,721.52,537.15,722.62z"/> + <path class="st107" d="M561.72,729.23c1.03-0.78,1.72-1.13,2.15-1.68c0.67-0.86,0.4-2.07-0.45-1.98 + c-0.58,0.06-1.67,0.6-1.8,0.99C561.36,727.27,561.64,728.02,561.72,729.23z"/> + <path class="st107" d="M587.63,730.5c-1.2,0.85-2.08,1.24-2.61,1.95c-0.24,0.32,0.05,1.44,0.38,1.89 + c0.45,0.6,1.86-0.17,2.17-1.19C587.77,732.46,587.62,731.75,587.63,730.5z"/> + <path class="st107" d="M608.03,742.52c1.16,0.2,2.12-0.8,2.35-1.98c0.2-1.04-0.09-1.78-0.84-1.62 + c-0.58,0.12-1.69,0.85-1.76,1.24C607.62,741.06,607.95,741.91,608.03,742.52z"/> + <path class="st107" d="M632.19,748.25c-1.2,0.86-2.07,1.23-2.61,1.98c-0.25,0.34-0.03,1.62,0.28,2.14 + c0.41,0.7,1.82-0.08,2.16-1.19C632.25,750.43,632.13,749.64,632.19,748.25z"/> + <path class="st107" d="M654.97,755.54c-1.23,0.94-2.13,1.39-2.67,2.15c-0.25,0.34,0.03,1.49,0.36,1.93 + c0.46,0.59,1.89-0.3,2.22-1.37C655.09,757.54,654.94,756.82,654.97,755.54z"/> + <path class="st107" d="M679.53,761.96c-0.59-0.73-0.8-1.36-1.28-1.51c-0.73-0.24-2.1,0.91-2.14,1.79 + c-0.03,0.65,0.31,1.6,0.68,1.52C677.47,763.62,678.3,762.81,679.53,761.96z"/> + <path class="st107" d="M700.82,763.94c0.21,0.39,0.35,1.16,0.87,1.39c0.24,0.11,1.48-0.72,1.8-1.24 + c0.31-0.51,0.26-1.38-0.03-1.71C703.01,761.86,701.64,762.58,700.82,763.94z"/> + <path class="st107" d="M729.89,763.35c-0.68-0.51-0.94-0.98-1.45-1.04c-0.78-0.1-2.12,0.97-2.09,1.67 + c0.02,0.51,0.45,1.22,0.83,1.11C727.88,764.9,728.67,764.17,729.89,763.35z"/> + <path class="st107" d="M752.09,762.78c0.25,0.28,0.46,0.86,1.02,1c0.26,0.07,1.46-0.67,1.75-1.09 + c0.28-0.41,0.15-1.08-0.18-1.31C754.17,761.01,752.83,761.66,752.09,762.78z"/> + <path class="st107" d="M778.88,762.23c1.3-0.22,2.17-0.96,2.2-1.59c0.02-0.55-0.42-0.84-1.22-0.57 + c-0.61,0.21-1.68,0.86-1.68,1.07C778.16,761.63,778.67,761.96,778.88,762.23z"/> + <path class="st107" d="M753.78,730.36c0.97,0.53,1.28,0.77,1.67,0.9c0.66,0.21,1.36,0.04,1.64-0.51 + c0.12-0.24-0.16-0.72-0.43-0.76C756.18,729.92,755.56,730.1,753.78,730.36z"/> + <path class="st107" d="M731.16,728.65c0.72-0.43,1.31-0.66,1.68-1.08c0.14-0.15-0.16-0.82-0.47-0.94 + c-0.59-0.23-1.37-0.01-1.63,0.76C730.62,727.75,730.93,728.07,731.16,728.65z"/> + <path class="st107" d="M705.71,722.82c0.84,0.88,1.1,1.24,1.46,1.44c0.61,0.33,1.33,0.12,1.74-0.75 + c0.18-0.38,0.03-1.19-0.24-1.26C708.22,722.12,707.55,722.43,705.71,722.82z"/> + <path class="st107" d="M686,715.53c-1.15,0.61-1.71,0.73-2.15,1.15c-0.57,0.55-0.47,1.93,0.13,2.04 + c0.66,0.12,1.4-0.08,1.78-1.24C685.97,716.86,685.92,716.2,686,715.53z"/> + <path class="st107" d="M663.53,707.53c-1.17,0.64-1.73,0.75-2.18,1.21c-0.59,0.6-0.58,2.19,0.01,2.35 + c0.64,0.17,1.38-0.02,1.83-1.34C663.41,709.04,663.41,708.29,663.53,707.53z"/> + <path class="st107" d="M638.99,698.26c0.27,1.74,0.23,2.56,0.52,2.83c0.52,0.49,1.29,0.21,1.82-1.13 + c0.53-1.33,0.17-2.02-0.55-2.08C640.32,697.85,639.78,698.09,638.99,698.26z"/> + <path class="st107" d="M617.49,688.33c0.01,1.37-0.13,2.24,0.08,2.62c0.42,0.76,1.25,0.26,1.89-0.95 + c0.28-0.53,0.38-1.88,0.15-2.02C619.2,687.73,618.46,688.13,617.49,688.33z"/> + <path class="st107" d="M594.16,682.15c0.02,1.35-0.13,2.24,0.09,2.6c0.45,0.7,1.33,0.08,2-1.22c0.3-0.57,0.4-1.92,0.15-2.02 + C595.96,681.32,595.19,681.81,594.16,682.15z"/> + <path class="st107" d="M572.11,676.62c-1.03,1.21-1.76,1.78-2.11,2.5c-0.78,1.57-0.43,2.28,0.38,2.08 + c0.42-0.1,1.51-1.21,1.61-1.6C572.23,678.66,572.08,677.87,572.11,676.62z"/> + <path class="st107" d="M547.27,674.08c-1.04,1.23-1.77,1.82-2.12,2.54c-0.78,1.59-0.43,2.3,0.38,2.08 + c0.43-0.11,1.52-1.25,1.62-1.64C547.4,676.11,547.25,675.32,547.27,674.08z"/> + <path class="st107" d="M519.02,673.9c0.72,1.23,0.9,1.79,1.25,2.04c0.58,0.43,1.43-0.09,2.09-1.59c0.28-0.65,0.3-1.9,0.03-1.96 + C521.92,672.3,521.12,672.93,519.02,673.9z"/> + <path class="st107" d="M494.9,669.39c0.68,1.32,0.86,1.91,1.19,2.21c0.56,0.49,1.38,0.04,2.02-1.43c0.28-0.63,0.3-1.91,0.04-2 + C497.7,668.03,496.92,668.6,494.9,669.39z"/> + <path class="st107" d="M473.06,661.27c0,1.44-0.16,2.37,0.04,2.79c0.4,0.84,1.24,0.31,1.89-0.95c0.29-0.56,0.39-1.96,0.16-2.11 + C474.74,660.73,474.02,661.11,473.06,661.27z"/> + <path class="st107" d="M452.05,649.08c-0.13,1.49-0.41,2.82-0.21,2.92c0.47,0.23,1.17-0.13,1.77-0.26 + c0.11-0.79,0.47-2.05,0.29-2.27C453.54,649.05,452.87,649.21,452.05,649.08z"/> + <path class="st107" d="M779.05,733.01c0.36,0.47,0.44,0.79,0.74,0.93c0.61,0.28,1.31,0.08,1.63-0.34 + c0.14-0.19-0.11-0.64-0.37-0.69C780.58,732.82,779.96,732.95,779.05,733.01z"/> + <path class="st107" d="M803.27,736.15c0.38,0.42,0.47,0.7,0.78,0.83c0.61,0.26,1.29,0.12,1.58-0.23 + c0.13-0.15-0.14-0.56-0.4-0.61C804.76,736.05,804.16,736.13,803.27,736.15z"/> + <path class="st107" d="M829.29,740.13c-0.94,0.07-1.44,0.05-1.75,0.16c-0.4,0.13,0.02,0.65,0.62,0.74 + c0.66,0.11,1.32,0.1,1.4-0.26C829.59,740.57,829.39,740.34,829.29,740.13z"/> + <path class="st107" d="M850.22,746c0.74,0.31,1.17,0.55,1.64,0.66c0.27,0.07,0.59-0.08,0.89-0.12 + c-0.4-0.22-0.76-0.47-1.23-0.63C851.31,745.84,850.89,745.94,850.22,746z"/> + <path class="st107" d="M872.85,753.61c0.31,0.33,0.43,0.58,0.63,0.66c0.48,0.19,0.99,0.3,1.48,0.45 + c-0.12-0.16-0.16-0.37-0.39-0.48C874.14,754.03,873.6,753.87,872.85,753.61z"/> + <path class="st107" d="M895.77,765.29c-0.72-0.34-1.15-0.56-1.4-0.63c-0.32-0.09,0.12,0.39,0.64,0.7 + c0.57,0.34,1.13,0.63,1.13,0.44C896.14,765.7,895.9,765.46,895.77,765.29z"/> + <path class="st107" d="M913.17,778.5c0.85,0.84,1.12,1.14,1.45,1.45c0.54,0.51,1.03,0.9,1.13,0.85 + c0.04-0.02-0.26-0.41-0.48-0.61C914.9,779.85,914.47,779.52,913.17,778.5z"/> + <path class="st107" d="M931.92,798.17c0.33,0.54,0.44,0.76,0.67,1.09c0.46,0.65,0.9,1.15,1.04,1.21 + c0.06,0.03-0.18-0.42-0.37-0.67C932.92,799.35,932.53,798.89,931.92,798.17z"/> + <path class="st107" d="M949.02,825.54c-0.53-0.84-0.84-1.38-1.03-1.61c-0.24-0.31,0.05,0.55,0.42,1.25 + c0.41,0.77,0.82,1.47,0.84,1.23C949.26,826.28,949.11,825.84,949.02,825.54z"/> + <path class="st107" d="M-32.51,239.52c-0.18,2.01-0.44,3.26-0.34,3.95c0.21,1.37,0.96,1,1.65-0.46c0.3-0.65,0.57-2.56,0.4-2.88 + C-31.09,239.55-31.72,239.74-32.51,239.52z"/> + <path class="st107" d="M-16.53,268.38c0.86-0.8,1.49-1.16,2.01-2c0.19-0.31,0.32-2.16,0.14-2.65 + c-0.33-0.92-1.02-0.92-1.66,0.92C-16.32,265.46-16.3,266.57-16.53,268.38z"/> + <path class="st107" d="M0.22,287.13c0.03,2.43-0.12,3.57,0.08,4.05c0.37,0.88,1.07,0.77,1.67-0.81c0.6-1.57,0.36-2.62-0.22-3 + C1.37,287.13,0.9,287.22,0.22,287.13z"/> + <path class="st107" d="M16.44,312.35c0.38,1.26,0.51,2.3,0.89,2.66c0.22,0.21,0.84-0.68,1.28-1.08 + c-0.14-0.91-0.16-2.05-0.46-2.66C18,310.98,17.33,311.75,16.44,312.35z"/> + <path class="st107" d="M33.71,334.32c-0.06,1.54-0.23,2.44-0.09,3c0.28,1.12,0.96,1.03,1.52,0.06 + c0.24-0.43,0.38-1.86,0.21-2.15C35.03,334.71,34.46,334.69,33.71,334.32z"/> + <path class="st107" d="M50.28,357.63c0.43,1.09,0.61,1.96,1,2.31c0.22,0.2,0.77-0.44,1.17-0.7c-0.18-0.77-0.27-1.71-0.59-2.26 + C51.71,356.74,51.1,357.27,50.28,357.63z"/> + <path class="st107" d="M67.92,377.77c0.26,1.68,0.23,2.4,0.47,2.78c0.44,0.69,1.07,0.81,1.48-0.11c0.4-0.91,0.08-1.69-0.5-2.1 + C69,378.07,68.57,378.01,67.92,377.77z"/> + <path class="st107" d="M86.08,397.98c0.1,1.05,0.04,1.63,0.23,2.04c0.38,0.82,1.01,0.91,1.43,0.37 + c0.19-0.24,0.16-1.19-0.03-1.43C87.37,398.53,86.82,398.39,86.08,397.98z"/> + <path class="st107" d="M104.22,417.06c0.54,0.79,0.82,1.39,1.22,1.7c0.23,0.18,0.67-0.11,1.01-0.19 + c-0.27-0.53-0.46-1.16-0.83-1.58C105.45,416.79,104.95,417,104.22,417.06z"/> + <path class="st107" d="M125.49,434.27c-0.81-0.21-1.25-0.42-1.57-0.39c-0.41,0.05-0.12,0.83,0.38,1.21 + c0.55,0.41,1.07,0.81,1.26,0.28C125.65,435.1,125.52,434.66,125.49,434.27z"/> + <path class="st107" d="M430.66,635.28c0.57,1.62,0.7,2.3,0.99,2.73c0.47,0.72,1.17,0.56,1.74-0.72 + c0.24-0.55,0.28-1.86,0.06-2.05C433.06,634.92,432.39,635.21,430.66,635.28z"/> + <path class="st107" d="M413.91,619.6c-1,0.37-1.51,0.35-1.94,0.75c-0.55,0.51-0.62,2.33-0.09,2.65 + c0.57,0.35,1.27,0.3,1.72-1.08C413.83,621.2,413.81,620.39,413.91,619.6z"/> + <path class="st107" d="M394.09,604.19c-0.96,0.27-1.46,0.22-1.86,0.56c-0.52,0.43-0.54,2.12-0.02,2.46 + c0.57,0.37,1.25,0.37,1.65-0.88C394.06,605.68,394.02,604.92,394.09,604.19z"/> + <path class="st107" d="M374.35,588.63c-0.92,0.18-1.41,0.1-1.79,0.37c-0.5,0.36-0.45,1.89,0.06,2.24 + c0.56,0.38,1.22,0.42,1.57-0.68C374.37,589.98,374.3,589.29,374.35,588.63z"/> + <path class="st107" d="M352.79,575.83c0.69-0.32,1.24-0.44,1.61-0.84c0.14-0.15-0.03-1.16-0.28-1.45 + c-0.47-0.55-1.14-0.64-1.46,0.28C352.52,574.23,352.72,574.85,352.79,575.83z"/> + <path class="st107" d="M332.29,558.62c0.59,0.74,0.89,1.34,1.31,1.59c0.24,0.14,0.89-0.17,0.99-0.48 + c0.2-0.69-0.15-1.36-0.83-1.51C333.4,558.13,333.03,558.4,332.29,558.62z"/> + <path class="st107" d="M311.65,543.39c0.78,1.05,1.02,1.47,1.34,1.8c0.53,0.54,1.13,0.66,1.41,0.12 + c0.12-0.23-0.07-0.94-0.3-1.11C313.71,543.91,313.17,543.87,311.65,543.39z"/> + <path class="st107" d="M293.9,530.44c-0.81-0.11-1.27-0.26-1.57-0.2c-0.39,0.09-0.09,0.95,0.44,1.26 + c0.58,0.34,1.19,0.51,1.32-0.03C294.15,531.2,293.97,530.8,293.9,530.44z"/> + <path class="st107" d="M270.96,517.69c0.66,0.53,1.04,0.93,1.48,1.15c0.25,0.13,0.81,0.06,0.84-0.1 + c0.08-0.36-0.36-0.81-1.02-1.02C271.91,517.61,271.61,517.69,270.96,517.69z"/> + <path class="st107" d="M249.63,505.74c0.68,0.68,0.86,0.97,1.17,1.16c0.58,0.35,1.18,0.5,1.29,0.21 + c0.12-0.29-0.37-0.64-1.01-0.9C250.68,506.04,250.27,505.94,249.63,505.74z"/> + <path class="st107" d="M229.56,496.63c0.4-0.05,0.82-0.04,0.96-0.17c0.05-0.04-0.53-0.45-0.89-0.63 + c-0.55-0.28-1.29-0.29-1.09-0.03C228.67,495.99,229.06,496.24,229.56,496.63z"/> + <path class="st107" d="M206.03,485.67c0.72,0.59,0.91,0.83,1.23,1c0.59,0.31,1.19,0.46,1.28,0.24 + c0.09-0.22-0.42-0.53-1.06-0.78C207.08,485.97,206.67,485.87,206.03,485.67z"/> + <path class="st107" d="M184.69,475.02c0.69,0.47,1.1,0.79,1.53,1.01c0.25,0.13,0.54,0.07,0.82,0.1 + c-0.38-0.29-0.72-0.61-1.16-0.87C185.68,475.14,185.31,475.13,184.69,475.02z"/> + <path class="st107" d="M163.61,462.31c0.69,0.67,0.87,0.94,1.18,1.15c0.56,0.39,1.13,0.62,1.22,0.43 + c0.08-0.2-0.4-0.57-1.01-0.9C164.6,462.77,164.22,462.61,163.61,462.31z"/> + <path class="st107" d="M143.14,448.63c0.68,0.69,0.87,0.96,1.16,1.18c0.55,0.42,1.11,0.69,1.18,0.52c0.08-0.17-0.4-0.56-1-0.93 + C144.11,449.16,143.74,448.97,143.14,448.63z"/> + <path class="st107" d="M751.07,713.66c-0.67,0.58-1.35,0.95-1.54,1.4c-0.19,0.46-0.03,1.34,0.25,1.39 + c0.33,0.06,1.15-0.47,1.37-0.9C751.38,715.11,751.13,714.48,751.07,713.66z"/> + <path class="st107" d="M728.37,706.57c-0.71,0.7-1.42,1.13-1.65,1.67c-0.22,0.54-0.13,1.59,0.15,1.65 + c0.32,0.07,1.2-0.57,1.45-1.09C728.58,708.29,728.37,707.54,728.37,706.57z"/> + <path class="st107" d="M703.66,701.39c0.51,0.38,0.8,0.99,1.18,0.75c0.4-0.25,1.17-1.49,1.25-2.02 + c0.09-0.58-0.35-1.27-0.71-1.1C704.98,699.21,704.41,700.32,703.66,701.39z"/> + <path class="st107" d="M681.92,691.49c0.24,0.76,0.28,1.75,0.63,1.67c0.37-0.08,1.32-1.23,1.48-1.79 + c0.21-0.75,0.09-1.85-0.24-1.93C683.52,689.38,682.75,690.56,681.92,691.49z"/> + <path class="st107" d="M660.12,680.23c0.31,1.15,0.33,2.15,0.71,2.25c0.35,0.09,1.07-0.77,1.63-1.21 + c0.09-0.89,0.42-2.21,0.21-2.55C662.49,678.43,661.69,679.26,660.12,680.23z"/> + <path class="st107" d="M642.28,665.67c-0.84,0.82-1.56,1.2-1.91,1.93c-0.38,0.79-0.42,1.89-0.6,2.84 + c0.56-0.39,1.22-0.53,1.65-1.24C641.79,668.56,641.9,667.29,642.28,665.67z"/> + <path class="st107" d="M617.41,659.56c0.25,0.76,0.26,1.81,0.63,1.68c0.4-0.14,1.45-1.53,1.63-2.16 + c0.24-0.83,0.13-1.98-0.21-2.01C619.16,657.05,618.32,658.42,617.41,659.56z"/> + <path class="st107" d="M593.17,654.01c0.4,0.95,0.46,1.88,0.88,1.85c0.4-0.03,1.19-1.05,1.81-1.64 + c0.07-0.85,0.4-2.17,0.14-2.42C595.78,651.59,594.91,652.6,593.17,654.01z"/> + <path class="st107" d="M568.93,651.38c0.3,0.65,0.35,1.61,0.74,1.42c0.42-0.2,1.49-1.66,1.67-2.26 + c0.23-0.8,0.06-1.82-0.31-1.78C570.71,648.79,569.86,650.18,568.93,651.38z"/> + <path class="st107" d="M546.62,648.35c-0.29-0.73-0.33-1.74-0.74-1.58c-0.38,0.15-1.39,1.59-1.65,2.35 + c-0.23,0.65,0.01,1.64,0.37,1.57C544.96,650.63,545.73,649.41,546.62,648.35z"/> + <path class="st107" d="M518.81,645.67c0.41,1.46,0.39,2.48,0.75,2.4c0.39-0.09,1.13-1.21,1.72-1.89 + c-0.07-0.67,0.06-1.77-0.27-1.9C520.67,644.14,519.88,644.96,518.81,645.67z"/> + <path class="st107" d="M495.33,640.74c-0.08,1.18-0.37,2.47-0.12,2.59c0.3,0.15,1.22-0.52,1.59-1.16 + c0.32-0.57,0.48-1.97,0.27-2.29C496.88,639.6,496.09,640.33,495.33,640.74z"/> + <path class="st107" d="M471.8,633.03c0.38,1.02,0.46,1.91,0.83,2.01c0.35,0.09,1.02-0.66,1.56-1.05 + c0.03-0.78,0.27-1.92,0.04-2.22C474.03,631.51,473.29,632.22,471.8,633.03z"/> + <path class="st107" d="M451.53,620.42c-0.06,1.13-0.32,2.32-0.1,2.51c0.27,0.23,1.08-0.18,1.41-0.71 + c0.28-0.47,0.42-1.81,0.23-2.18C452.91,619.72,452.21,620.22,451.53,620.42z"/> + <path class="st107" d="M774.05,719.98c-0.62,0.46-1.26,0.74-1.42,1.1c-0.15,0.37,0.07,1.09,0.35,1.14 + c0.33,0.06,1.11-0.35,1.29-0.7C774.46,721.17,774.16,720.65,774.05,719.98z"/> + <path class="st107" d="M796.24,727.91c0.59-0.35,1.21-0.56,1.28-0.81c0.08-0.3-0.32-0.64-0.51-0.97 + c-0.4,0.22-0.99,0.38-1.14,0.67C795.72,727.05,796.05,727.44,796.24,727.91z"/> + <path class="st107" d="M818.21,732.41c0.61,0.39,0.91,0.69,1.28,0.76c0.36,0.07,0.8-0.11,1.21-0.17 + c-0.16-0.26-0.21-0.63-0.5-0.77C819.95,732.12,819.42,732.28,818.21,732.41z"/> + <path class="st107" d="M843.21,738.89c-0.52,0.02-1.06-0.03-1.15,0.07c-0.11,0.11,0.19,0.36,0.31,0.55 + c0.39,0.03,0.95,0.13,1.12,0.05C843.63,739.49,843.35,739.21,843.21,738.89z"/> + <path class="st107" d="M865.26,747.06c-0.41-0.06-0.9-0.18-0.93-0.12c-0.03,0.06,0.37,0.33,0.63,0.43 + c0.31,0.12,0.87,0.25,0.93,0.21C865.95,747.55,865.54,747.3,865.26,747.06z"/> + <path class="st107" d="M885.11,756.73c0.62,0.36,0.94,0.62,1.27,0.8c0.32,0.17,0.65,0.28,0.97,0.44 + c-0.21-0.14-0.35-0.27-0.63-0.43C886.48,757.39,886.09,757.21,885.11,756.73z"/> + <path class="st107" d="M905.95,770.35c0.26,0.28,0.38,0.47,0.6,0.65c0.27,0.22,0.79,0.57,0.89,0.6 + c0.09,0.03-0.17-0.27-0.41-0.48C906.83,770.93,906.42,770.67,905.95,770.35z"/> + <path class="st107" d="M925.71,788.65c-0.35-0.32-0.74-0.71-0.78-0.7c-0.04,0.01,0.27,0.39,0.42,0.61 + c0.28,0.27,0.71,0.72,0.79,0.76C926.21,789.35,925.91,788.96,925.71,788.65z"/> + <path class="st107" d="M941.29,809.28c0.46,0.79,0.7,1.24,0.95,1.64c0.24,0.37,0.5,0.69,0.75,1.03 + c-0.14-0.3-0.23-0.57-0.44-0.91C942.37,810.73,942.06,810.33,941.29,809.28z"/> + <path class="st107" d="M-28.74,199.62c-0.63,0.47-1.18,0.53-1.44,1.18c-0.28,0.7-0.3,1.96-0.44,2.98 + c0.43-0.17,0.95,0.01,1.27-0.6C-29.06,202.64-28.99,201.24-28.74,199.62z"/> + <path class="st107" d="M-14.34,226.19c0.17,1.1,0.16,2.38,0.42,2.48c0.28,0.11,1.05-0.79,1.18-1.4 + c0.18-0.81,0.1-2.24-0.14-2.53C-13.07,224.5-13.68,225.49-14.34,226.19z"/> + <path class="st107" d="M3.54,249.99c-0.59,0.54-1.17,0.72-1.39,1.38c-0.22,0.66-0.28,2.32-0.08,2.59 + c0.23,0.32,0.96-0.09,1.2-0.7C3.53,252.65,3.45,251.4,3.54,249.99z"/> + <path class="st107" d="M17.77,277.49c0.17,1.05,0.19,2.25,0.44,2.38c0.27,0.14,1-0.59,1.12-1.15c0.16-0.74,0.07-2.08-0.17-2.39 + C18.96,276.07,18.4,276.93,17.77,277.49z"/> + <path class="st107" d="M33.64,303.78c0.37,0.81,0.56,1.75,0.85,1.72c0.3-0.04,0.9-0.99,0.97-1.56c0.07-0.63-0.24-1.74-0.5-1.8 + C34.65,302.09,34.22,303.01,33.64,303.78z"/> + <path class="st107" d="M50.22,330.84c0.59-0.43,1.16-0.54,1.29-1.03c0.16-0.58-0.04-1.5-0.09-2.28 + c-0.38,0.22-0.89,0.22-1.11,0.72C50.12,328.72,50.24,329.72,50.22,330.84z"/> + <path class="st107" d="M66.16,351.87c0.33,1.21,0.42,2.1,0.7,2.42c0.27,0.3,0.74,0.02,1.13-0.01c0-0.71,0.13-1.65-0.06-2.08 + C67.78,351.83,67.25,352.02,66.16,351.87z"/> + <path class="st107" d="M84.99,375.05c-0.51,0.14-1.01,0.03-1.17,0.39c-0.17,0.37-0.01,1.19,0,1.8 + c0.38,0.01,0.88,0.27,1.09-0.04C85.1,376.91,84.97,376.02,84.99,375.05z"/> + <path class="st107" d="M101.11,396.7c0.06,0.83-0.02,1.58,0.17,1.84c0.24,0.32,0.84,0.45,1.04,0.23 + c0.18-0.2,0.14-1.13-0.04-1.51C102.12,396.92,101.62,396.91,101.11,396.7z"/> + <path class="st107" d="M118.5,416.65c0.44,0.86,0.62,1.46,0.93,1.73c0.29,0.26,0.7,0.16,1.06,0.23 + c-0.08-0.47-0.06-1.06-0.28-1.38C120.02,416.96,119.55,416.98,118.5,416.65z"/> + <path class="st107" d="M137.77,434.96c0.14,0.59,0.13,1.1,0.35,1.31c0.26,0.26,0.85,0.44,1.02,0.31 + c0.15-0.11,0.03-0.77-0.19-1.06C138.76,435.26,138.28,435.18,137.77,434.96z"/> + <path class="st107" d="M432.59,608.86c-0.27-0.8-0.34-1.72-0.67-1.76c-0.31-0.03-1.07,0.81-1.26,1.38 + c-0.16,0.49,0.07,1.5,0.36,1.6C431.31,610.19,431.91,609.43,432.59,608.86z"/> + <path class="st107" d="M410.1,594.28c0,0.96-0.18,1.96,0.04,2.15c0.27,0.23,1.02-0.01,1.3-0.43c0.24-0.37,0.3-1.51,0.1-1.85 + C411.37,593.86,410.73,594.2,410.1,594.28z"/> + <path class="st107" d="M388.8,581.08c0.44,0.86,0.59,1.56,0.94,1.73c0.33,0.16,0.86-0.24,1.3-0.39 + c-0.04-0.58,0.07-1.38-0.17-1.67C390.66,580.5,390.06,580.84,388.8,581.08z"/> + <path class="st107" d="M370.84,568.71c-0.33-0.63-0.5-1.31-0.8-1.4c-0.29-0.08-0.91,0.4-1.03,0.78 + c-0.1,0.32,0.22,1.11,0.5,1.24C369.79,569.45,370.26,569,370.84,568.71z"/> + <path class="st107" d="M349.79,554.24c-0.57,0.14-1.11,0.1-1.27,0.36c-0.17,0.28,0.01,0.84,0.04,1.29 + c0.41-0.02,0.96,0.12,1.19-0.11C349.95,555.56,349.79,554.93,349.79,554.24z"/> + <path class="st107" d="M329.35,542.89c-0.38-0.5-0.61-1.01-0.91-1.11c-0.28-0.1-0.82,0.16-0.89,0.41 + c-0.06,0.22,0.32,0.83,0.61,0.96C328.44,543.28,328.84,543.02,329.35,542.89z"/> + <path class="st107" d="M305.94,529.48c0.66,0.78,0.87,1.23,1.15,1.34c0.3,0.13,0.67-0.04,1.01-0.09 + c-0.21-0.32-0.34-0.73-0.65-0.92C307.13,529.62,306.66,529.63,305.94,529.48z"/> + <path class="st107" d="M285.11,518.2c0.22,0.39,0.28,0.74,0.53,0.88c0.29,0.17,0.91,0.28,1.06,0.19 + c0.13-0.08-0.08-0.53-0.33-0.72C286.15,518.38,285.65,518.34,285.11,518.2z"/> + <path class="st107" d="M263.13,507.24c0.73,0.6,0.99,0.91,1.27,1.02c0.31,0.12,0.63,0.06,0.94,0.08 + c-0.24-0.24-0.42-0.53-0.73-0.7C264.29,507.48,263.84,507.43,263.13,507.24z"/> + <path class="st107" d="M243.85,498.13c-0.45-0.32-0.77-0.62-1.06-0.72c-0.28-0.1-0.73-0.07-0.75,0.05 + c-0.01,0.1,0.46,0.46,0.75,0.58C243.07,498.15,243.39,498.1,243.85,498.13z"/> + <path class="st107" d="M219.79,487.74c0.44,0.27,0.77,0.55,1.05,0.63c0.3,0.09,0.8,0.09,0.77-0.01 + c-0.04-0.13-0.47-0.45-0.78-0.58C220.56,487.68,220.24,487.75,219.79,487.74z"/> + <path class="st107" d="M197.74,477.34c0.72,0.61,0.98,0.91,1.25,1.03c0.3,0.13,0.62,0.09,0.93,0.13 + c-0.24-0.23-0.42-0.51-0.73-0.68C198.88,477.63,198.44,477.56,197.74,477.34z"/> + <path class="st107" d="M178.41,465.68c-0.43-0.03-0.92-0.17-0.98-0.05c-0.06,0.12,0.26,0.6,0.5,0.74 + c0.29,0.17,0.87,0.29,0.96,0.2C178.98,466.47,178.63,466.07,178.41,465.68z"/> + <path class="st107" d="M158.46,451.59c-0.48-0.08-0.97-0.28-1.08-0.15c-0.12,0.14,0.1,0.57,0.18,0.87 + c0.36,0.11,0.87,0.38,1.04,0.3C158.75,452.53,158.54,452.07,158.46,451.59z"/> + <path class="st107" d="M768.93,700c0.09,0.88,0,1.71,0.26,1.87c0.24,0.15,0.84-0.4,1.27-0.64c0.01-0.58,0.21-1.45,0-1.66 + C770.24,699.35,769.64,699.77,768.93,700z"/> + <path class="st107" d="M747.33,690.18c0.04,1.01-0.1,1.97,0.15,2.15c0.23,0.17,0.87-0.49,1.33-0.79 + c0.05-0.67,0.3-1.69,0.1-1.92C748.7,689.37,748.07,689.88,747.33,690.18z"/> + <path class="st107" d="M725.98,679.66c-0.01,1.13-0.2,2.22,0.04,2.41c0.22,0.18,0.91-0.57,1.38-0.92 + c0.08-0.75,0.39-1.9,0.2-2.16C727.4,678.73,726.73,679.32,725.98,679.66z"/> + <path class="st107" d="M704.79,671.89c0.77-1.11,1.48-1.84,1.71-2.55c0.22-0.66,0.12-1.8-0.16-1.81 + c-0.3-0.01-1.19,1.04-1.43,1.69C704.64,669.95,704.81,670.73,704.79,671.89z"/> + <path class="st107" d="M685.9,654.45c-0.84,1.18-1.61,1.97-1.8,2.62c-0.25,0.81-0.21,2,0.07,2.09c0.24,0.07,1.16-1.09,1.5-1.87 + C685.95,656.63,685.82,655.74,685.9,654.45z"/> + <path class="st107" d="M663.51,643.3c-0.1,1.37-0.38,2.69-0.15,2.93c0.21,0.23,0.96-0.7,1.47-1.11 + c0.15-0.92,0.54-2.31,0.37-2.62C665.02,642.18,664.3,642.89,663.51,643.3z"/> + <path class="st107" d="M642.33,631.7c-0.06,1.29-0.33,2.57-0.08,2.76c0.23,0.18,1-0.8,1.53-1.26c0.13-0.88,0.51-2.25,0.32-2.51 + C643.9,630.41,643.16,631.18,642.33,631.7z"/> + <path class="st107" d="M618.82,625.64c0.23,0.93,0.19,1.98,0.55,1.9c0.34-0.08,1.09-1.35,1.65-2.1 + c-0.06-0.63,0.06-1.71-0.25-1.75C620.48,623.64,619.73,624.69,618.82,625.64z"/> + <path class="st107" d="M594.19,622.33c0.27,0.84,0.26,1.82,0.63,1.7c0.35-0.11,1.09-1.36,1.66-2.11 + c-0.09-0.58,0.01-1.58-0.32-1.59C595.86,620.32,595.12,621.36,594.19,622.33z"/> + <path class="st107" d="M570.97,618.27c-0.85,1.24-1.68,2.17-1.84,2.75c-0.2,0.72-0.04,1.62,0.3,1.57 + c0.29-0.05,1.26-1.33,1.56-2.06C571.26,619.88,571.01,619.26,570.97,618.27z"/> + <path class="st107" d="M543.03,620.22c0.32,0.74,0.36,1.6,0.73,1.49c0.35-0.11,1.04-1.25,1.58-1.93 + c-0.12-0.5-0.08-1.4-0.41-1.39C544.62,618.39,543.92,619.33,543.03,620.22z"/> + <path class="st107" d="M518.03,617.73c0.09,0.94-0.04,1.92,0.25,2.02c0.27,0.09,0.98-0.75,1.49-1.18 + c0.03-0.66,0.28-1.7,0.04-1.86C519.56,616.55,518.85,617.23,518.03,617.73z"/> + <path class="st107" d="M495.51,611.79c-0.72,0.91-1.42,1.56-1.54,2.03c-0.15,0.6,0.04,1.44,0.35,1.47 + c0.27,0.02,1.09-0.92,1.33-1.51C495.86,613.28,495.6,612.68,495.51,611.79z"/> + <path class="st107" d="M471.34,604.61c0.09,0.92,0,1.81,0.25,1.99c0.23,0.17,0.84-0.43,1.29-0.68c0.02-0.62,0.21-1.54,0-1.75 + C472.66,603.94,472.05,604.38,471.34,604.61z"/> + <path class="st107" d="M792.14,708.51c-0.6,0.59-1.2,0.97-1.28,1.32c-0.1,0.44,0.14,1.11,0.42,1.18 + c0.25,0.06,0.92-0.5,1.11-0.91C792.55,709.76,792.27,709.24,792.14,708.51z"/> + <path class="st107" d="M812.39,718.76c0.37,0.55,0.53,1.07,0.83,1.12c0.28,0.05,0.7-0.39,1.06-0.62 + c-0.17-0.34-0.26-0.87-0.53-0.98C813.48,718.18,813.01,718.52,812.39,718.76z"/> + <path class="st107" d="M835.55,727.53c-0.48,0.28-0.99,0.42-1.01,0.63c-0.03,0.26,0.29,0.74,0.56,0.83 + c0.24,0.08,0.79-0.16,0.91-0.39C836.1,728.41,835.77,728.03,835.55,727.53z"/> + <path class="st107" d="M856.96,737.84c-0.42,0.13-0.88,0.16-0.88,0.31c0,0.19,0.35,0.59,0.62,0.7c0.23,0.1,0.72,0.01,0.81-0.14 + C857.57,738.58,857.22,738.24,856.96,737.84z"/> + <path class="st107" d="M876.9,749.15c0.3,0.35,0.44,0.61,0.7,0.77c0.24,0.15,0.6,0.2,0.91,0.29c-0.14-0.2-0.2-0.43-0.43-0.59 + C877.84,749.45,877.44,749.35,876.9,749.15z"/> + <path class="st107" d="M897.24,762.37c0.31,0.33,0.47,0.53,0.72,0.72c0.23,0.17,0.55,0.32,0.84,0.48 + c-0.15-0.17-0.23-0.35-0.45-0.52C898.1,762.86,897.74,762.67,897.24,762.37z"/> + <path class="st107" d="M916.53,778.28c0.42,0.43,0.66,0.71,0.9,0.93c0.22,0.2,0.43,0.34,0.64,0.5 + c-0.21-0.23-0.41-0.47-0.64-0.69C917.21,778.81,916.95,778.61,916.53,778.28z"/> + <path class="st107" d="M935.2,798.7c0.33,0.35,0.67,0.75,0.71,0.75c0.03,0-0.21-0.39-0.38-0.61c-0.22-0.27-0.62-0.73-0.69-0.78 + C934.76,798.01,935.01,798.39,935.2,798.7z"/> + <path class="st107" d="M951.56,822.9c-0.26-0.29-0.56-0.7-0.54-0.6c0.03,0.12,0.31,0.7,0.5,1.02c0.17,0.28,0.48,0.66,0.51,0.63 + C952.07,823.94,951.79,823.4,951.56,822.9z"/> + <path class="st107" d="M-30.49,168.49c0.5-0.63,0.98-0.91,1.1-1.43c0.11-0.49-0.07-1.6-0.29-1.77 + c-0.23-0.18-0.81,0.27-0.94,0.73C-30.77,166.54-30.56,167.38-30.49,168.49z"/> + <path class="st107" d="M-14.14,189.62c0.21,1.14,0.23,2.18,0.47,2.39c0.22,0.2,0.66-0.47,1-0.75 + c-0.08-0.69-0.06-1.67-0.27-1.96C-13.15,189.01-13.59,189.42-14.14,189.62z"/> + <path class="st107" d="M2.2,214.8c0.04,1.21-0.06,2.28,0.12,2.66c0.17,0.36,0.64-0.01,0.98-0.06c0.03-0.76,0.2-1.79,0.05-2.19 + C3.2,214.78,2.74,214.94,2.2,214.8z"/> + <path class="st107" d="M19.16,241.16c-0.5,0.51-0.99,0.71-1.09,1.2c-0.12,0.61-0.01,1.8,0.2,2.08 + c0.18,0.25,0.75-0.22,0.93-0.74C19.36,243.28,19.2,242.32,19.16,241.16z"/> + <path class="st107" d="M33.77,272.21c0.48-0.54,0.93-0.74,1.05-1.26c0.11-0.49-0.04-1.68-0.24-1.91 + c-0.21-0.23-0.77,0.12-0.9,0.58C33.54,270.14,33.71,271.05,33.77,272.21z"/> + <path class="st107" d="M49.23,295.99c0.06,1.14-0.01,2.1,0.17,2.48c0.17,0.36,0.61,0.1,0.93,0.12c0.02-0.7,0.16-1.62,0.01-2.02 + C50.18,296.14,49.74,296.22,49.23,295.99z"/> + <path class="st107" d="M66.08,322.66c-0.46,0.36-0.92,0.45-0.99,0.85c-0.09,0.51,0.06,1.56,0.27,1.84 + c0.18,0.25,0.71-0.06,0.86-0.47C66.35,324.54,66.16,323.69,66.08,322.66z"/> + <path class="st107" d="M81.39,351.51c0.43-0.35,0.85-0.42,0.93-0.82c0.08-0.38-0.13-1.39-0.33-1.6 + c-0.21-0.23-0.73-0.04-0.83,0.31C81.06,349.78,81.28,350.56,81.39,351.51z"/> + <path class="st107" d="M97.98,375.87c0.41-0.28,0.82-0.31,0.89-0.66c0.07-0.33-0.17-1.25-0.37-1.46 + c-0.22-0.22-0.72-0.09-0.8,0.22C97.6,374.3,97.83,375.01,97.98,375.87z"/> + <path class="st107" d="M114.5,396.55c0.3,0.82,0.42,1.49,0.66,1.71c0.22,0.21,0.55-0.04,0.83-0.08 + c-0.14-0.47-0.21-1.09-0.43-1.37C115.35,396.55,114.99,396.64,114.5,396.55z"/> + <path class="st107" d="M133.33,417.71c-0.39,0.11-0.82,0.06-0.84,0.3c-0.02,0.29,0.24,0.97,0.47,1.2 + c0.2,0.19,0.66,0.13,0.76-0.08C133.8,418.94,133.52,418.37,133.33,417.71z"/> + <path class="st107" d="M449.38,594.66c0.31,0.74,0.4,1.5,0.7,1.54c0.29,0.04,0.8-0.66,1.22-1.03c-0.13-0.47-0.15-1.2-0.43-1.33 + C450.61,593.72,450.07,594.25,449.38,594.66z"/> + <path class="st107" d="M428,583.41c0.15,0.77,0.11,1.5,0.37,1.68c0.23,0.17,0.78-0.25,1.18-0.41c-0.02-0.51,0.1-1.25-0.11-1.45 + C429.21,583.02,428.67,583.3,428,583.41z"/> + <path class="st107" d="M406.52,572.36c0.17,0.72,0.17,1.36,0.42,1.54c0.24,0.16,0.75-0.17,1.14-0.29 + c-0.04-0.46,0.06-1.15-0.15-1.35C407.71,572.04,407.17,572.29,406.52,572.36z"/> + <path class="st107" d="M385.69,563.05c0.5-0.43,1.01-0.69,1.1-1.04c0.08-0.33-0.22-1.01-0.48-1.07 + c-0.28-0.07-0.9,0.33-1.01,0.64C385.19,561.92,385.5,562.4,385.69,563.05z"/> + <path class="st107" d="M364.37,551.64c0.48-0.38,0.98-0.6,1.05-0.92c0.07-0.3-0.24-0.94-0.5-1.01 + c-0.27-0.07-0.88,0.27-0.98,0.56C363.84,550.57,364.16,551.03,364.37,551.64z"/> + <path class="st107" d="M342.33,538.68c0.22,0.59,0.27,1.1,0.53,1.26c0.24,0.15,0.7-0.06,1.07-0.12 + c-0.07-0.37-0.03-0.9-0.25-1.08C343.45,538.55,342.95,538.7,342.33,538.68z"/> + <path class="st107" d="M320.68,528.08c0.4,0.5,0.59,0.95,0.87,1.05c0.27,0.09,0.63-0.2,0.96-0.32 + c-0.19-0.31-0.31-0.75-0.58-0.88C321.67,527.8,321.25,528,320.68,528.08z"/> + <path class="st107" d="M299.1,517.51c0.27,0.46,0.36,0.84,0.63,0.99c0.25,0.14,0.67,0.02,1.02,0.01 + c-0.11-0.29-0.12-0.68-0.35-0.83C300.16,517.51,299.7,517.57,299.1,517.51z"/> + <path class="st107" d="M277.16,507.67c0.44,0.4,0.67,0.74,0.95,0.84c0.26,0.09,0.59-0.08,0.89-0.13 + c-0.21-0.24-0.38-0.56-0.66-0.68C278.08,507.58,277.7,507.67,277.16,507.67z"/> + <path class="st107" d="M256.18,499.01c0.37-0.1,0.79-0.11,0.79-0.25c0.01-0.13-0.41-0.49-0.67-0.57 + c-0.27-0.09-0.76-0.04-0.79,0.08C255.48,498.39,255.86,498.67,256.18,499.01z"/> + <path class="st107" d="M233.06,488.87c0.47,0.32,0.73,0.58,1.01,0.68c0.26,0.09,0.55,0.01,0.83,0.01 + c-0.23-0.19-0.43-0.43-0.71-0.54C233.93,488.91,233.58,488.93,233.06,488.87z"/> + <path class="st107" d="M212.23,479.36c-0.44,0.11-0.78,0.1-0.81,0.23c-0.03,0.11,0.23,0.41,0.48,0.55 + c0.22,0.12,0.76,0.22,0.87,0.17C212.89,480.26,212.61,480,212.23,479.36z"/> + <path class="st107" d="M190.73,468.65c0.44,0.06,0.88,0.21,0.94,0.11c0.07-0.09-0.18-0.49-0.39-0.63 + c-0.26-0.17-0.78-0.32-0.89-0.26C190.29,467.94,190.56,468.29,190.73,468.65z"/> + <path class="st107" d="M170,453.35c0.27,0.48,0.37,0.85,0.62,1.05c0.22,0.19,0.59,0.22,0.9,0.31 + c-0.11-0.28-0.15-0.61-0.36-0.81C170.92,453.68,170.53,453.59,170,453.35z"/> + <path class="st107" d="M150.75,436.58c0.23,0.58,0.31,1.02,0.54,1.26c0.21,0.22,0.59,0.23,0.89,0.33 + c-0.09-0.33-0.11-0.75-0.31-0.99C151.67,436.94,151.27,436.85,150.75,436.58z"/> + <path class="st107" d="M176.56,444.7c-0.35-0.23-0.75-0.51-0.75-0.48c-0.01,0.16,0.07,0.4,0.12,0.61 + c0.2,0.13,0.55,0.39,0.58,0.35C176.61,445.09,176.56,444.88,176.56,444.7z"/> + <path class="st107" d="M195.32,460.06c0.23,0.25,0.47,0.49,0.71,0.74c0.15-0.01,0.46,0.06,0.41-0.03 + c-0.1-0.19-0.37-0.45-0.57-0.68C195.71,460.08,195.56,460.07,195.32,460.06z"/> + <path class="st107" d="M216.18,472.75c0.29,0.19,0.56,0.39,0.86,0.54c0.08,0.04,0.41-0.05,0.35-0.11 + c-0.18-0.18-0.5-0.37-0.76-0.56C216.51,472.66,216.39,472.69,216.18,472.75z"/> + <path class="st107" d="M238.58,481.21c0.1,0.19,0.16,0.31,0.22,0.42c0.32,0.03,0.69,0.1,0.94,0.07 + c0.1-0.01-0.07-0.21-0.12-0.32C239.27,481.33,238.93,481.27,238.58,481.21z"/> + <path class="st107" d="M261.48,488.4c0.09,0.21,0.15,0.34,0.2,0.47c0.33,0.01,0.71,0.05,0.96,0.01 + c0.11-0.02-0.06-0.23-0.11-0.36C262.19,488.48,261.83,488.44,261.48,488.4z"/> + <path class="st107" d="M285.23,495.74c0.24-0.15,0.52-0.27,0.66-0.43c0.04-0.05-0.46-0.35-0.5-0.34 + c-0.3,0.07-0.58,0.18-0.78,0.31C284.58,495.31,284.94,495.53,285.23,495.74z"/> + <path class="st107" d="M307.93,501.21c0.02,0.3,0.03,0.49,0.04,0.69c0.35-0.01,0.73,0.04,1.04-0.05 + c0.11-0.03,0.11-0.49,0.02-0.52C308.7,501.24,308.32,501.25,307.93,501.21z"/> + <path class="st107" d="M332.39,507.31c-0.46,0.05-0.97,0.06-0.98,0.12c-0.08,0.31-0.03,0.65-0.03,0.97 + c0.27-0.04,0.7-0.01,0.77-0.12C332.31,507.99,332.32,507.65,332.39,507.31z"/> + <path class="st107" d="M354.23,514.39c0.29,0.2,0.54,0.46,0.86,0.55c0.08,0.02,0.63-0.6,0.58-0.7c-0.14-0.3-0.45-0.48-0.7-0.71 + C354.77,513.78,354.57,514.01,354.23,514.39z"/> + <path class="st107" d="M377.64,520.39c-0.05,0.57-0.08,0.92-0.11,1.27c0.4-0.17,0.83-0.26,1.18-0.55 + c0.14-0.12,0.1-0.66,0.15-1.01C378.45,520.2,378.05,520.29,377.64,520.39z"/> + <path class="st107" d="M402.01,526.81c-0.5,0.16-1.05,0.26-1.08,0.36c-0.17,0.56-0.22,1.12-0.31,1.68 + c0.29-0.1,0.75-0.13,0.85-0.33C401.73,528.01,401.83,527.43,402.01,526.81z"/> + <path class="st107" d="M423.69,534.41c-0.16,0.75-0.25,1.22-0.35,1.7c0.4-0.14,0.81-0.16,1.2-0.47 + c0.14-0.11,0.41-1.26,0.32-1.29C424.54,534.23,424.1,534.37,423.69,534.41z"/> + <path class="st107" d="M446.49,541.99c-0.19,0.84-0.31,1.37-0.43,1.9c0.41-0.16,0.82-0.2,1.23-0.55 + c0.14-0.12,0.46-1.41,0.38-1.45C447.36,541.77,446.91,541.94,446.49,541.99z"/> + <path class="st107" d="M468.64,551.22c0.24,0.33,0.41,0.78,0.73,0.89c0.08,0.03,0.89-1.29,0.88-1.46 + c-0.04-0.55-0.31-0.84-0.5-1.24C469.45,549.92,469.14,550.42,468.64,551.22z"/> + <path class="st107" d="M157.74,425.99c-0.34-0.25-0.54-0.4-0.75-0.55c0.09,0.28,0.18,0.56,0.28,0.84 + c0.19,0.13,0.52,0.4,0.54,0.35C157.86,426.5,157.78,426.23,157.74,425.99z"/> + <path class="st107" d="M139.06,404.23c0.19,0.37,0.39,0.74,0.58,1.11c0.14,0.01,0.42,0.15,0.39,0.03 + c-0.07-0.27-0.3-0.67-0.46-1.01C139.43,404.33,139.29,404.29,139.06,404.23z"/> + <path class="st107" d="M122.05,380.71c0.18,0.4,0.36,0.8,0.54,1.21c0.14,0.02,0.41,0.17,0.39,0.04 + c-0.06-0.29-0.28-0.72-0.43-1.09C122.41,380.82,122.28,380.77,122.05,380.71z"/> + <path class="st107" d="M106.17,356.65c0.19,0,0.39,0.06,0.5-0.03c0.03-0.03-0.3-0.79-0.33-0.81c-0.22-0.15-0.42-0.24-0.57-0.22 + C105.74,355.6,105.98,356.16,106.17,356.65z"/> + <path class="st107" d="M90.66,329.41c-0.31-0.36-0.49-0.57-0.67-0.78c0.06,0.35,0.12,0.72,0.17,1.08 + c0.17,0.18,0.47,0.56,0.5,0.5C90.73,330.04,90.67,329.69,90.66,329.41z"/> + <path class="st107" d="M74.52,300.9c-0.02,0.4-0.03,0.65-0.04,0.89c0.24,0.3,0.49,0.68,0.71,0.85 + c0.08,0.06,0.12-0.52,0.07-0.63C75.04,301.6,74.78,301.28,74.52,300.9z"/> + <path class="st107" d="M60.19,273.34c-0.32-0.33-0.67-0.76-0.69-0.7c-0.1,0.35-0.11,0.82-0.14,1.22 + c0.18,0.19,0.48,0.61,0.53,0.53C60.04,274.19,60.09,273.75,60.19,273.34z"/> + <path class="st107" d="M44.22,244.18c0.11,0.56,0.22,1.11,0.34,1.67c0.19-0.08,0.53-0.07,0.54-0.29 + c0.02-0.48-0.12-1.08-0.19-1.64C44.71,244,44.52,244.07,44.22,244.18z"/> + <path class="st107" d="M29.23,215.71c0.09,0.6,0.19,1.19,0.29,1.78c0.21-0.14,0.59-0.22,0.61-0.46 + c0.05-0.54-0.08-1.17-0.13-1.77C29.78,215.39,29.57,215.52,29.23,215.71z"/> + <path class="st107" d="M14.04,187.96c0.08,0.62,0.16,1.25,0.25,1.86c0.24-0.2,0.65-0.37,0.68-0.63 + c0.07-0.6-0.04-1.25-0.08-1.89C14.66,187.49,14.42,187.68,14.04,187.96z"/> + <path class="st107" d="M-1.18,160.74c-0.21,0.83-0.34,1.35-0.46,1.86c0.31,0.12,0.61,0.38,0.93,0.29 + c0.11-0.03,0.45-1.28,0.39-1.38C-0.53,161.12-0.87,160.98-1.18,160.74z"/> + <path class="st107" d="M-17.48,136.33c-0.21,0.93-0.34,1.49-0.46,2.04c0.37-0.06,0.74,0.02,1.1-0.27 + c0.15-0.12,0.28-1.04,0.42-1.61C-16.77,136.44-17.12,136.38-17.48,136.33z"/> + <path class="st107" d="M954.62,821.39c0.15,0.11,0.32,0.26,0.4,0.26c0.02,0-0.34-0.64-0.37-0.67c-0.19-0.2-0.37-0.37-0.49-0.44 + C954.14,820.53,954.4,821,954.62,821.39z"/> + <path class="st107" d="M937.48,797.23c0.24,0.33,0.46,0.65,0.7,0.96c0.06,0.08,0.3,0.25,0.25,0.17 + c-0.15-0.25-0.4-0.59-0.62-0.9C937.72,797.39,937.63,797.33,937.48,797.23z"/> + <path class="st107" d="M919.97,776.51c0.09,0.21,0.14,0.34,0.19,0.47c0.25,0.22,0.54,0.49,0.72,0.62 + c0.08,0.05-0.07-0.21-0.11-0.33C920.51,777.02,920.24,776.77,919.97,776.51z"/> + <path class="st107" d="M902.3,758.61c0.18,0.02,0.39,0.08,0.49,0.02c0.03-0.02-0.37-0.54-0.4-0.56 + c-0.23-0.11-0.44-0.18-0.59-0.17C901.77,757.9,902.07,758.28,902.3,758.61z"/> + <path class="st107" d="M883.62,741.16c0.21-0.06,0.45-0.06,0.57-0.18c0.04-0.04-0.36-0.59-0.39-0.59 + c-0.25-0.05-0.49-0.05-0.66,0.02C883.11,740.41,883.4,740.81,883.62,741.16z"/> + <path class="st107" d="M865.23,723.68c-0.37-0.15-0.79-0.37-0.8-0.32c-0.07,0.28-0.03,0.62-0.04,0.94 + c0.22,0.08,0.58,0.29,0.63,0.22C865.16,724.32,865.17,723.99,865.23,723.68z"/> + <path class="st107" d="M845.55,708.62c0.25-0.29,0.52-0.51,0.66-0.83c0.04-0.1-0.26-0.48-0.4-0.73 + c-0.25,0.21-0.54,0.38-0.71,0.66C845.04,707.8,845.33,708.22,845.55,708.62z"/> + <path class="st107" d="M825.8,691.51c0.16,0.42,0.31,0.85,0.47,1.27c0.23-0.21,0.64-0.42,0.64-0.61c0-0.44-0.2-0.86-0.31-1.3 + C826.39,691.05,826.16,691.23,825.8,691.51z"/> + <path class="st107" d="M807.94,675.13c-0.43-0.01-0.89-0.1-0.92-0.01c-0.17,0.54-0.23,1.12-0.32,1.69 + c0.25-0.01,0.64,0.12,0.73-0.05C807.67,676.3,807.77,675.71,807.94,675.13z"/> + <path class="st107" d="M787.6,661.54c0.38-0.51,0.78-0.92,1.06-1.46c0.08-0.16-0.19-1.02-0.24-0.98 + c-0.38,0.28-0.76,0.66-1.09,1.13C787.26,660.32,787.47,660.94,787.6,661.54z"/> + <path class="st107" d="M768.24,645.95c0.41-0.58,0.83-1.07,1.14-1.67c0.09-0.18-0.16-1.09-0.22-1.05 + c-0.4,0.33-0.8,0.77-1.16,1.31C767.93,644.65,768.12,645.31,768.24,645.95z"/> + <path class="st107" d="M748.88,627.94c-0.18,0.91-0.29,1.47-0.41,2.04c0.41-0.2,0.83-0.27,1.21-0.66 + c0.16-0.16,0.25-1.04,0.37-1.59C749.67,627.8,749.28,627.86,748.88,627.94z"/> + <path class="st107" d="M729.21,612.88c-0.17,0.89-0.26,1.42-0.38,2c0.42-0.23,0.83-0.28,1.21-0.67 + c0.16-0.16,0.24-1.02,0.35-1.56C730,612.72,729.61,612.8,729.21,612.88z"/> + <path class="st107" d="M709.11,601.1c0.44-0.67,0.88-1.23,1.21-1.9c0.1-0.2-0.16-1.12-0.22-1.07c-0.42,0.4-0.85,0.91-1.22,1.52 + C708.8,599.77,708.99,600.44,709.11,601.1z"/> + <path class="st107" d="M690.07,584.52c-0.49,0.15-1.02,0.21-1.06,0.35c-0.24,0.75-0.36,1.53-0.53,2.31 + c0.29-0.11,0.73-0.09,0.85-0.35C689.65,586.14,689.82,585.34,690.07,584.52z"/> + <path class="st107" d="M668.31,574.15c-0.52,0.23-1.09,0.39-1.13,0.52c-0.22,0.71-0.31,1.41-0.45,2.13 + c0.31-0.15,0.78-0.22,0.9-0.48C667.93,575.66,668.08,574.93,668.31,574.15z"/> + <path class="st107" d="M644.26,569.07c-0.58,0.38-0.93,0.61-1.28,0.85c-0.04,0.64-0.09,1.28-0.13,1.92 + c0.33-0.25,0.87-0.5,0.96-0.75C644.06,570.43,644.12,569.77,644.26,569.07z"/> + <path class="st107" d="M617.65,570.42c0.47-0.74,0.95-1.41,1.28-2.1c0.1-0.2-0.3-0.8-0.37-0.73c-0.47,0.53-0.95,1.16-1.35,1.83 + C617.15,569.54,617.45,569.96,617.65,570.42z"/> + <path class="st107" d="M592.93,567.27c-0.62,0.47-0.99,0.76-1.37,1.05c-0.06,0.67-0.11,1.33-0.17,1.99 + c0.36-0.3,0.92-0.63,1.03-0.9C592.69,568.71,592.76,568.02,592.93,567.27z"/> + <path class="st107" d="M566.87,567.36c-0.63,0.49-1.01,0.79-1.38,1.09c-0.07,0.71-0.15,1.41-0.22,2.12 + c0.36-0.31,0.93-0.65,1.04-0.94C566.59,568.88,566.68,568.16,566.87,567.36z"/> + <path class="st107" d="M539.9,567.29c-0.23,0.95-0.37,1.54-0.51,2.14c0.46-0.29,0.92-0.45,1.39-0.93 + c0.16-0.17,0.54-1.62,0.45-1.64C540.87,566.81,540.37,567.11,539.9,567.29z"/> + <path class="st107" d="M515.16,566.83c0.48-0.91,0.99-1.74,1.33-2.58c0.11-0.27-0.23-0.57-0.37-0.86 + c-0.46,0.77-0.97,1.51-1.35,2.31C514.66,565.93,514.98,566.34,515.16,566.83z"/> + <path class="st107" d="M491.65,560.64c0.5-0.81,1.01-1.52,1.39-2.32c0.11-0.23-0.17-1.11-0.23-1.03 + c-0.48,0.55-0.98,1.22-1.41,1.96C491.32,559.38,491.53,560,491.65,560.64z"/> + <path class="st107" d="M447.09,571c0.45,0.15,0.81,0.31,1.22,0.33c0.04,0,0.54-1.06,0.51-1.32c-0.05-0.39-0.35-0.76-0.62-0.64 + C447.95,569.48,447.6,570.23,447.09,571z"/> + <path class="st107" d="M425.17,561.11c0.45,0.15,0.81,0.32,1.21,0.35c0.04,0,0.51-0.99,0.47-1.23 + c-0.06-0.37-0.36-0.72-0.62-0.62C425.99,559.7,425.66,560.4,425.17,561.11z"/> + <path class="st107" d="M404.52,549.86c-0.3,0.23-0.61,0.46-0.91,0.69c0.17,0.42,0.34,0.83,0.52,1.25 + c0.27-0.33,0.76-0.74,0.78-0.98C404.94,550.44,404.67,550.17,404.52,549.86z"/> + <path class="st107" d="M381.79,540.57c-0.08,0.39-0.15,0.78-0.23,1.17c0.42-0.07,0.83-0.13,1.25-0.2 + c-0.04-0.37,0.03-0.89-0.14-1.05C382.5,540.32,382.09,540.52,381.79,540.57z"/> + <path class="st107" d="M360.33,531.07c-0.28,0.16-0.55,0.32-0.83,0.48c0.2,0.34,0.4,0.68,0.6,1.02 + c0.24-0.24,0.68-0.54,0.68-0.72C360.78,531.55,360.5,531.32,360.33,531.07z"/> + <path class="st107" d="M337.41,522.3c-0.04,0.29-0.07,0.58-0.11,0.86c0.4-0.02,0.79-0.04,1.19-0.06 + c-0.07-0.28-0.05-0.67-0.23-0.8C338.08,522.17,337.7,522.29,337.41,522.3z"/> + <path class="st107" d="M315.65,513.62c-0.25,0.09-0.5,0.18-0.75,0.27c0.23,0.26,0.46,0.52,0.69,0.78 + c0.21-0.15,0.6-0.33,0.58-0.46C316.14,514,315.84,513.82,315.65,513.62z"/> + <path class="st107" d="M292.23,505.8c0.45,0.15,0.82,0.28,1.2,0.37c0.03,0.01,0.27-0.35,0.18-0.46 + c-0.13-0.17-0.49-0.38-0.71-0.38C292.69,505.33,292.53,505.57,292.23,505.8z"/> + <path class="st107" d="M270.56,497.3c-0.23,0.03-0.45,0.06-0.68,0.1c0.26,0.2,0.51,0.39,0.77,0.59 + c0.18-0.08,0.53-0.15,0.49-0.24C271.08,497.61,270.77,497.45,270.56,497.3z"/> + <path class="st107" d="M247.99,489.26c-0.22,0.01-0.43,0.02-0.65,0.03c0.26,0.18,0.53,0.36,0.79,0.53 + c0.17-0.05,0.5-0.08,0.46-0.16C248.52,489.55,248.2,489.4,247.99,489.26z"/> + <path class="st107" d="M224.93,480.95c0.03,0.11,0.06,0.22,0.1,0.33c0.36,0.08,0.72,0.16,1.08,0.24 + c-0.13-0.13-0.2-0.28-0.4-0.38C225.52,481.04,225.2,481.01,224.93,480.95z"/> + <path class="st107" d="M203.94,470.51c-0.2-0.03-0.4-0.07-0.6-0.1c0.25,0.22,0.49,0.45,0.74,0.67 + c0.15-0.02,0.46,0.02,0.42-0.06C204.43,470.89,204.14,470.69,203.94,470.51z"/> + <path class="st107" d="M183.56,456.72c-0.19-0.05-0.39-0.09-0.58-0.14c0.23,0.27,0.46,0.55,0.69,0.82 + c0.15-0.02,0.45,0.04,0.41-0.06C184.03,457.19,183.75,456.94,183.56,456.72z"/> + <path class="st107" d="M163.59,439.97c0.13,0.23,0.25,0.46,0.38,0.69c0.24,0.03,0.48,0.07,0.73,0.1 + c-0.2-0.26-0.38-0.59-0.59-0.75C163.94,439.89,163.76,439.98,163.59,439.97z"/> + <path class="st107" d="M145.78,420.87c-0.2-0.09-0.4-0.17-0.6-0.26c0.17,0.38,0.34,0.75,0.51,1.13 + c0.17-0.01,0.47,0.09,0.47-0.04C146.16,421.52,145.92,421.15,145.78,420.87z"/> + <path class="st107" d="M127.62,398.86c-0.01,0.25-0.02,0.51-0.03,0.76c0.3,0.23,0.59,0.47,0.89,0.7 + c-0.07-0.31-0.08-0.67-0.23-0.91C128.11,399.17,127.84,399.04,127.62,398.86z"/> + <path class="st107" d="M111.57,376.61c-0.1-0.35-0.21-0.71-0.31-1.06c-0.24,0.01-0.48,0.03-0.72,0.05 + c0.17,0.35,0.32,0.81,0.5,1C111.2,376.76,111.39,376.62,111.57,376.61z"/> + <path class="st107" d="M94.26,349.97c0.08,0.37,0.16,0.74,0.25,1.11c0.25-0.01,0.5-0.02,0.75-0.02 + c-0.15-0.39-0.27-0.92-0.46-1.14C94.66,349.74,94.45,349.93,94.26,349.97z"/> + <path class="st107" d="M78.41,323.25c0.07,0.39,0.15,0.79,0.22,1.18c0.26-0.03,0.51-0.05,0.76-0.07 + c-0.14-0.42-0.26-0.97-0.44-1.2C78.82,322.98,78.6,323.2,78.41,323.25z"/> + <path class="st107" d="M62.71,295.93c0.31,0.52,0.57,0.98,0.84,1.35c0.02,0.03,0.28-0.5,0.24-0.76 + c-0.06-0.39-0.29-0.99-0.46-1.11C63.17,295.28,63,295.65,62.71,295.93z"/> + <path class="st107" d="M47.32,267.95c0.31,0.52,0.56,0.98,0.84,1.36c0.02,0.03,0.29-0.52,0.25-0.79c-0.06-0.4-0.29-1-0.46-1.12 + C47.8,267.28,47.62,267.66,47.32,267.95z"/> + <path class="st107" d="M32.25,239.47c-0.05,0.36-0.1,0.74-0.15,1.11c0.29,0.24,0.58,0.49,0.87,0.74 + c-0.03-0.43,0.01-0.94-0.11-1.25C32.75,239.77,32.46,239.66,32.25,239.47z"/> + <path class="st107" d="M16.62,212.35c-0.04,0.35-0.09,0.7-0.14,1.06c0.29,0.24,0.59,0.48,0.88,0.72c-0.03-0.41,0-0.9-0.12-1.19 + C17.12,212.65,16.83,212.54,16.62,212.35z"/> + <path class="st107" d="M0.22,187.12c0.33,0.47,0.6,0.88,0.89,1.21c0.03,0.03,0.28-0.44,0.23-0.67 + c-0.07-0.35-0.32-0.87-0.49-0.99C0.68,186.56,0.51,186.87,0.22,187.12z"/> + <path class="st107" d="M-16.48,163.29c0.34,0.42,0.62,0.8,0.92,1.11c0.03,0.03,0.26-0.36,0.21-0.56 + c-0.09-0.3-0.35-0.76-0.53-0.88C-16.05,162.85-16.2,163.1-16.48,163.29z"/> + <path class="st107" d="M944.99,809.83c-0.15-0.17-0.3-0.35-0.44-0.52c0.2,0.33,0.4,0.66,0.6,1c0.11,0.11,0.33,0.37,0.3,0.28 + C945.38,810.46,945.15,810.1,944.99,809.83z"/> + <path class="st107" d="M928.42,788.61c-0.15-0.2-0.3-0.39-0.44-0.59c-0.19-0.15-0.37-0.31-0.56-0.46 + c0.2,0.23,0.4,0.5,0.59,0.69C928.15,788.42,928.28,788.5,928.42,788.61z"/> + <path class="st107" d="M909.05,768.99c0.14,0.17,0.28,0.35,0.42,0.52c0.22,0.12,0.43,0.24,0.65,0.36 + c-0.2-0.22-0.41-0.47-0.61-0.64C909.36,769.1,909.21,769.07,909.05,768.99z"/> + <path class="st107" d="M889.92,752.76c0.11,0.18,0.21,0.35,0.32,0.52c0.26,0.08,0.53,0.16,0.79,0.24 + c-0.2-0.21-0.39-0.47-0.6-0.62C890.26,752.78,890.06,752.79,889.92,752.76z"/> + <path class="st107" d="M870.76,738.15c-0.21-0.01-0.42-0.02-0.63-0.03c0.22,0.28,0.43,0.56,0.65,0.84 + c0.17-0.05,0.5-0.06,0.47-0.17C871.21,738.62,870.94,738.37,870.76,738.15z"/> + <path class="st107" d="M849.75,724.9c0.41,0.24,0.74,0.45,1.09,0.61c0.03,0.01,0.29-0.4,0.22-0.55 + c-0.1-0.23-0.42-0.55-0.62-0.58C850.25,724.34,850.07,724.64,849.75,724.9z"/> + <path class="st107" d="M829.62,711.71c0.06,0.31,0.11,0.6,0.17,0.9c0.36-0.16,0.71-0.31,1.07-0.46 + c-0.18-0.27-0.31-0.66-0.54-0.76C830.13,711.3,829.82,711.6,829.62,711.71z"/> + <path class="st107" d="M809.97,698.54c-0.28,0.16-0.55,0.32-0.83,0.48c0.17,0.41,0.33,0.82,0.5,1.23 + c0.25-0.26,0.69-0.55,0.7-0.76C810.36,699.15,810.11,698.86,809.97,698.54z"/> + <path class="st107" d="M470.83,580.21c-0.07-0.41-0.14-0.82-0.21-1.24c-0.44,0.51-0.89,1.02-1.32,1.52 + c0.19,0.27,0.31,0.76,0.58,0.73C470.1,581.21,470.5,580.58,470.83,580.21z"/> + <path class="st107" d="M493.28,588.8c-0.08-0.4-0.15-0.8-0.23-1.19c-0.46,0.56-0.92,1.11-1.37,1.65 + c0.2,0.24,0.33,0.71,0.61,0.66C492.53,589.87,492.94,589.2,493.28,588.8z"/> + <path class="st107" d="M515.5,594.3c0.51,0.01,0.92,0.05,1.37-0.05c0.04-0.01,0.6-1.21,0.56-1.45c-0.06-0.36-0.4-0.64-0.7-0.44 + C516.45,592.54,516.07,593.38,515.5,594.3z"/> + <path class="st107" d="M541.77,596.04c0.36-0.42,0.72-0.84,1.08-1.26c-0.24-0.33-0.49-0.67-0.73-1 + c-0.34,0.56-0.9,1.28-0.95,1.64C541.12,595.81,541.55,595.85,541.77,596.04z"/> + <path class="st107" d="M569.19,594.06c-0.11-0.33-0.21-0.66-0.31-0.99c-0.49,0.63-0.98,1.26-1.47,1.88 + c0.23,0.16,0.41,0.53,0.72,0.4C568.39,595.24,568.83,594.52,569.19,594.06z"/> + <path class="st107" d="M594.34,592.78c-0.13,0.55-0.27,1.1-0.41,1.65c0.52-0.33,1.04-0.66,1.57-0.99 + c-0.01-0.45,0.13-1.17-0.06-1.27C595.24,592.06,594.72,592.55,594.34,592.78z"/> + <path class="st107" d="M621.34,593.88c-0.07-0.4-0.15-0.8-0.23-1.19c-0.51,0.67-1.01,1.34-1.52,2.02 + c0.21,0.21,0.34,0.68,0.65,0.56C620.5,595.17,620.97,594.37,621.34,593.88z"/> + <path class="st107" d="M643.8,598.83c0.49,0.06,0.87,0.16,1.32,0.09c0.04-0.01,0.68-1.41,0.66-1.7 + c-0.03-0.45-0.33-0.81-0.63-0.61C644.87,596.8,644.43,597.76,643.8,598.83z"/> + <path class="st107" d="M666.68,606.59c0.01,0.51,0.02,1.02,0.03,1.54c0.5-0.62,1.01-1.24,1.51-1.85 + c-0.13-0.41-0.16-1.12-0.43-1.11C667.57,605.18,667.06,606.08,666.68,606.59z"/> + <path class="st107" d="M688.44,618.33c-0.36,0.38-0.73,0.76-1.09,1.15c0.08,0.64,0.16,1.28,0.24,1.92 + c0.36-0.55,0.96-1.24,1.03-1.6C688.74,619.19,688.52,618.8,688.44,618.33z"/> + <path class="st107" d="M707.89,632.54c-0.19,0.68-0.39,1.36-0.58,2.05c0.46-0.17,0.91-0.34,1.36-0.5 + c0.07-0.62,0.29-1.53,0.16-1.78C708.71,632.04,708.22,632.43,707.89,632.54z"/> + <path class="st107" d="M729,647.39c-0.02-0.51-0.05-1.02-0.08-1.52c-0.47,0.58-0.94,1.16-1.42,1.74 + c0.15,0.35,0.22,0.96,0.48,0.96C728.2,648.55,728.65,647.81,729,647.39z"/> + <path class="st107" d="M748.18,661.97c0.33-0.34,0.66-0.68,0.99-1.01c-0.15-0.53-0.3-1.07-0.45-1.61 + c-0.33,0.52-0.85,1.13-0.93,1.56C747.7,661.35,748.03,661.62,748.18,661.97z"/> + <path class="st107" d="M768.21,673.66c0.04,0.42,0.08,0.84,0.12,1.26c0.43-0.43,0.86-0.85,1.28-1.27 + c-0.15-0.35-0.22-0.95-0.47-0.99C768.96,672.64,768.54,673.3,768.21,673.66z"/> + <path class="st107" d="M788.9,685.95c-0.11,0.46-0.22,0.92-0.33,1.38c0.41-0.06,0.82-0.11,1.23-0.16 + c0-0.43,0.11-1.05-0.04-1.26C789.61,685.71,789.2,685.92,788.9,685.95z"/> + <path class="st107" d="M180.66,437.5c0.03,0.19,0.06,0.37,0.08,0.56c0.1,0.03,0.29,0.12,0.29,0.07 + c0.02-0.14-0.03-0.34-0.05-0.51C180.88,437.58,180.77,437.54,180.66,437.5z"/> + <path class="st107" d="M200.37,453.42c0.04,0.14,0.09,0.29,0.14,0.45c0.1,0.01,0.29,0.07,0.29,0.03c0-0.12-0.07-0.28-0.11-0.43 + C200.59,453.46,200.48,453.44,200.37,453.42z"/> + <path class="st107" d="M221.74,465.46c0.12,0.01,0.33,0.05,0.34,0.01c0.01-0.11-0.05-0.24-0.08-0.36 + c-0.12-0.01-0.35-0.06-0.35-0.04C221.64,465.2,221.7,465.33,221.74,465.46z"/> + <path class="st107" d="M244.26,473.82c-0.13,0.06-0.29,0.11-0.38,0.19c-0.03,0.03,0.14,0.13,0.23,0.2 + c0.14-0.06,0.31-0.12,0.41-0.2C244.55,474,244.35,473.89,244.26,473.82z"/> + <path class="st107" d="M266.85,480.94c0.05,0.12,0.11,0.24,0.16,0.36c0.12-0.01,0.33-0.01,0.33-0.04c0-0.1-0.07-0.22-0.12-0.34 + C267.1,480.93,266.97,480.93,266.85,480.94z"/> + <path class="st107" d="M290.72,486.54c-0.14,0.07-0.31,0.14-0.4,0.22c-0.03,0.03,0.15,0.11,0.23,0.17 + c0.15-0.08,0.33-0.14,0.44-0.23C291.02,486.68,290.82,486.59,290.72,486.54z"/> + <path class="st107" d="M314.37,490.92c0.06,0.11,0.12,0.22,0.17,0.33c0.12-0.02,0.35-0.04,0.35-0.07c0-0.1-0.08-0.21-0.13-0.31 + C314.64,490.89,314.51,490.91,314.37,490.92z"/> + <path class="st107" d="M338.83,494.19c0.06,0.09,0.13,0.2,0.2,0.3c0.12-0.03,0.34-0.06,0.34-0.09c0-0.1-0.1-0.2-0.16-0.3 + C339.08,494.13,338.96,494.16,338.83,494.19z"/> + <path class="st107" d="M363.66,496.47c0.07,0.06,0.15,0.14,0.23,0.22c0.12-0.03,0.34-0.05,0.33-0.07 + c-0.01-0.07-0.12-0.14-0.19-0.2C363.91,496.43,363.79,496.44,363.66,496.47z"/> + <path class="st107" d="M388.76,498.05c0.06,0.1,0.12,0.21,0.19,0.33c0.13-0.04,0.35-0.09,0.35-0.13c0-0.11-0.09-0.22-0.15-0.31 + C389.03,497.97,388.9,498.01,388.76,498.05z"/> + <path class="st107" d="M414.31,499.38c-0.16,0.14-0.36,0.28-0.48,0.44c-0.04,0.05,0.14,0.14,0.22,0.21 + c0.18-0.16,0.39-0.31,0.53-0.47C414.61,499.51,414.41,499.43,414.31,499.38z"/> + <path class="st107" d="M439.42,500.97c-0.18,0.19-0.4,0.38-0.54,0.59c-0.04,0.07,0.12,0.18,0.19,0.27 + c0.21-0.22,0.43-0.42,0.59-0.63C439.7,501.15,439.51,501.05,439.42,500.97z"/> + <path class="st107" d="M464.39,502.92c-0.2,0.24-0.44,0.48-0.6,0.75c-0.05,0.09,0.11,0.22,0.17,0.34 + c0.23-0.27,0.48-0.53,0.66-0.8C464.66,503.15,464.47,503.02,464.39,502.92z"/> + <path class="st107" d="M489.18,505.35c-0.23,0.3-0.48,0.59-0.66,0.91c-0.06,0.1,0.09,0.27,0.14,0.41 + c0.25-0.33,0.52-0.64,0.72-0.97C489.43,505.63,489.25,505.47,489.18,505.35z"/> + <path class="st107" d="M162.4,417.7c0.01,0.23,0.02,0.46,0.03,0.69c0.1,0.03,0.28,0.14,0.29,0.08c0.03-0.18,0-0.42,0-0.64 + C162.61,417.8,162.51,417.75,162.4,417.7z"/> + <path class="st107" d="M145.48,394.36c-0.01,0.29-0.03,0.57-0.04,0.85c0.1,0.03,0.28,0.14,0.3,0.07 + c0.05-0.22,0.04-0.52,0.06-0.79C145.69,394.45,145.58,394.4,145.48,394.36z"/> + <path class="st107" d="M129.58,368.28c0.02,0.2,0.04,0.41,0.06,0.61c0.18-0.1,0.37-0.16,0.52-0.32 + c0.04-0.04-0.05-0.39-0.08-0.6C129.92,368.08,129.75,368.18,129.58,368.28z"/> + <path class="st107" d="M115.06,338.72c-0.05,0.37-0.11,0.78-0.17,1.19c0.11,0,0.3,0.09,0.33-0.03c0.1-0.34,0.13-0.76,0.19-1.15 + C115.3,338.73,115.19,338.73,115.06,338.72z"/> + <path class="st107" d="M101.02,307.86c-0.01,0.27-0.01,0.54-0.02,0.81c0.22-0.19,0.45-0.34,0.65-0.6c0.05-0.06,0-0.51,0-0.78 + C101.44,307.47,101.23,307.67,101.02,307.86z"/> + <path class="st107" d="M88.14,274.23c-0.1,0.49-0.22,1.04-0.33,1.58c0.13-0.04,0.33,0.01,0.38-0.15 + c0.15-0.46,0.24-1.01,0.36-1.54C88.41,274.16,88.28,274.19,88.14,274.23z"/> + <path class="st107" d="M75.51,239.95c-0.15,0.61-0.3,1.23-0.45,1.83c0.14-0.05,0.35,0,0.41-0.18c0.18-0.52,0.31-1.14,0.46-1.72 + C75.79,239.91,75.65,239.93,75.51,239.95z"/> + <path class="st107" d="M63.09,205.32c-0.18,0.68-0.36,1.35-0.53,2.02c0.15-0.08,0.37-0.06,0.44-0.25 + c0.21-0.59,0.36-1.26,0.54-1.9C63.38,205.23,63.23,205.28,63.09,205.32z"/> + <path class="st107" d="M50.58,171.06c-0.17,0.65-0.37,1.38-0.56,2.11c0.17-0.13,0.41-0.17,0.48-0.39 + c0.23-0.64,0.39-1.37,0.59-2.06C50.92,170.83,50.76,170.94,50.58,171.06z"/> + <path class="st107" d="M37.81,137.65c-0.19,0.69-0.41,1.47-0.62,2.24c0.18-0.16,0.43-0.24,0.52-0.48 + c0.25-0.7,0.43-1.46,0.65-2.2C38.18,137.35,38,137.49,37.81,137.65z"/> + <path class="st107" d="M23.78,108.17c0.18-0.13,0.44-0.19,0.53-0.42c0.28-0.73,0.5-1.53,0.74-2.3 + c-0.17,0.09-0.44,0.12-0.51,0.29C24.26,106.52,24.03,107.35,23.78,108.17z"/> + <path class="st107" d="M9.63,78.06c-0.07,0.4-0.13,0.81-0.2,1.21c0.39-0.61,0.79-1.16,1.17-1.85c0.09-0.16,0.11-0.75,0.16-1.14 + C10.39,76.86,10.02,77.45,9.63,78.06z"/> + <path class="st107" d="M-4.79,50.56c-0.39,0.65-0.79,1.26-1.16,1.98c-0.12,0.23-0.13,0.76-0.18,1.16 + c0.41-0.68,0.83-1.32,1.23-2.06C-4.81,51.47-4.82,50.93-4.79,50.56z"/> + <path class="st107" d="M-25.04,30.48c-0.4,0.63-0.84,1.23-1.2,1.91c-0.12,0.22-0.05,0.66-0.06,1c0.43-0.65,0.88-1.28,1.27-1.99 + C-24.94,31.23-25.03,30.79-25.04,30.48z"/> + <path class="st107" d="M958.38,817.1c-0.1-0.02-0.23-0.07-0.3-0.04c-0.02,0.01,0.1,0.23,0.16,0.35 + c0.11,0.03,0.24,0.08,0.33,0.06C958.59,817.46,958.45,817.23,958.38,817.1z"/> + <path class="st107" d="M941.1,794.71c0.04,0.15,0.08,0.29,0.13,0.44c0.09,0.07,0.24,0.22,0.25,0.19c0-0.09-0.06-0.26-0.09-0.39 + C941.29,794.87,941.19,794.79,941.1,794.71z"/> + <path class="st107" d="M924.03,772.78c0.04,0.16,0.07,0.32,0.11,0.49c0.09,0.06,0.25,0.21,0.25,0.17 + c0.01-0.11-0.05-0.28-0.08-0.43C924.22,772.93,924.13,772.86,924.03,772.78z"/> + <path class="st107" d="M906.87,751.25c0.03,0.17,0.06,0.35,0.1,0.54c0.09,0.04,0.25,0.17,0.26,0.12 + c0.01-0.13-0.04-0.33-0.07-0.51C907.07,751.36,906.97,751.31,906.87,751.25z"/> + <path class="st107" d="M889.9,730.17c-0.12,0.03-0.26,0.04-0.35,0.12c-0.03,0.03,0.09,0.25,0.15,0.39 + c0.13-0.03,0.28-0.04,0.38-0.11C890.1,730.56,889.96,730.31,889.9,730.17z"/> + <path class="st107" d="M872.13,709.43c0.05,0.14,0.09,0.29,0.14,0.43c0.15-0.05,0.31-0.07,0.43-0.16 + c0.03-0.02-0.1-0.27-0.15-0.42C872.41,709.33,872.28,709.38,872.13,709.43z"/> + <path class="st107" d="M855.05,688.68c-0.14,0.09-0.3,0.16-0.41,0.3c-0.03,0.04,0.08,0.29,0.13,0.45 + c0.15-0.09,0.32-0.16,0.44-0.3C855.24,689.1,855.11,688.84,855.05,688.68z"/> + <path class="st107" d="M837.41,668.47c-0.15,0.12-0.32,0.21-0.44,0.38c-0.04,0.05,0.08,0.31,0.12,0.47 + c0.16-0.13,0.34-0.23,0.47-0.39C837.6,668.9,837.47,668.64,837.41,668.47z"/> + <path class="st107" d="M819.24,648.76c-0.01,0.28-0.01,0.59-0.02,0.9c0.11-0.02,0.31,0.01,0.33-0.08 + c0.06-0.26,0.04-0.58,0.05-0.87C819.48,648.72,819.37,648.74,819.24,648.76z"/> + <path class="st107" d="M801.16,629.57c-0.01,0.29-0.03,0.63-0.04,0.96c0.12-0.04,0.32-0.02,0.34-0.12 + c0.06-0.29,0.05-0.61,0.07-0.93C801.41,629.51,801.29,629.54,801.16,629.57z"/> + <path class="st107" d="M782.61,611.52c0.03,0.18,0.07,0.37,0.1,0.55c0.2-0.19,0.41-0.35,0.57-0.58 + c0.04-0.06-0.08-0.34-0.12-0.52C782.98,611.15,782.8,611.33,782.61,611.52z"/> + <path class="st107" d="M764.02,593.41c-0.03,0.35-0.06,0.71-0.08,1.07c0.13-0.05,0.34-0.06,0.37-0.16 + c0.08-0.31,0.08-0.67,0.11-1C764.28,593.36,764.15,593.39,764.02,593.41z"/> + <path class="st107" d="M744.78,576.9c-0.03,0.36-0.06,0.72-0.08,1.08c0.13-0.06,0.35-0.08,0.38-0.18 + c0.08-0.32,0.08-0.67,0.11-1.01C745.04,576.82,744.91,576.86,744.78,576.9z"/> + <path class="st107" d="M724.78,562.27c0.04,0.18,0.08,0.35,0.11,0.53c0.21-0.23,0.44-0.44,0.61-0.7 + c0.04-0.06-0.08-0.33-0.13-0.5C725.17,561.82,724.98,562.04,724.78,562.27z"/> + <path class="st107" d="M704.45,548.27c-0.01,0.3-0.02,0.64-0.03,0.98c0.13-0.08,0.36-0.13,0.38-0.24 + c0.06-0.31,0.05-0.64,0.06-0.95C704.73,548.13,704.6,548.2,704.45,548.27z"/> + <path class="st107" d="M683.01,537.89c-0.19,0.25-0.42,0.48-0.57,0.76c-0.05,0.09,0.09,0.28,0.15,0.43 + c0.21-0.27,0.45-0.52,0.62-0.8C683.25,538.22,683.08,538.03,683.01,537.89z"/> + <path class="st107" d="M659.11,532.09c0.05,0.15,0.1,0.3,0.15,0.45c0.24-0.29,0.49-0.57,0.69-0.88 + c0.05-0.07-0.11-0.27-0.17-0.41C659.55,531.52,659.34,531.8,659.11,532.09z"/> + <path class="st107" d="M635.23,526.93c-0.03,0.36-0.06,0.72-0.09,1.09c0.16-0.13,0.43-0.28,0.46-0.39 + c0.09-0.35,0.09-0.69,0.12-1.03C635.56,526.7,635.39,526.81,635.23,526.93z"/> + <path class="st107" d="M610.48,524.06c0.04,0.17,0.08,0.33,0.12,0.5c0.27-0.38,0.56-0.73,0.79-1.12 + c0.06-0.09-0.09-0.3-0.15-0.45C611,523.34,610.75,523.69,610.48,524.06z"/> + <path class="st107" d="M585.86,520.9c0.03,0.18,0.07,0.36,0.1,0.54c0.29-0.4,0.59-0.79,0.83-1.21c0.06-0.1-0.08-0.32-0.13-0.48 + C586.4,520.12,586.14,520.5,585.86,520.9z"/> + <path class="st107" d="M561.61,516.88c-0.05,0.38-0.1,0.81-0.16,1.25c0.18-0.18,0.46-0.38,0.51-0.53 + c0.12-0.43,0.14-0.83,0.2-1.23C561.98,516.54,561.8,516.7,561.61,516.88z"/> + <path class="st107" d="M537.35,512.98c-0.06,0.43-0.13,0.86-0.2,1.3c0.18-0.16,0.46-0.34,0.5-0.48 + c0.13-0.42,0.16-0.83,0.22-1.23C537.7,512.7,537.53,512.84,537.35,512.98z"/> + <path class="st107" d="M513,509.41c0.04,0.17,0.07,0.33,0.11,0.5c0.28-0.37,0.57-0.73,0.81-1.11c0.06-0.09-0.09-0.3-0.14-0.45 + C513.52,508.69,513.27,509.04,513,509.41z"/> + <path class="st107" d="M467.74,523.13c0.16,0.23,0.29,0.53,0.5,0.67c0.07,0.05,0.35-0.29,0.54-0.45 + c-0.16-0.26-0.3-0.57-0.51-0.75C468.22,522.56,467.92,522.94,467.74,523.13z"/> + <path class="st107" d="M445.02,518.2c-0.17-0.23-0.32-0.5-0.54-0.66c-0.05-0.03-0.39,0.28-0.47,0.46 + c-0.08,0.18-0.04,0.58,0.03,0.56C444.35,518.51,444.69,518.34,445.02,518.2z"/> + <path class="st107" d="M420.03,513.34c0.19,0.16,0.36,0.36,0.59,0.46c0.07,0.03,0.3-0.25,0.46-0.39 + c-0.2-0.18-0.39-0.38-0.62-0.51C420.43,512.89,420.19,513.19,420.03,513.34z"/> + <path class="st107" d="M395.98,509.02c0.2,0.14,0.38,0.31,0.62,0.39c0.07,0.02,0.29-0.2,0.43-0.31 + c-0.21-0.15-0.41-0.32-0.65-0.43C396.34,508.65,396.12,508.9,395.98,509.02z"/> + <path class="st107" d="M371.82,504.98c0.21,0.11,0.41,0.25,0.65,0.32c0.07,0.02,0.26-0.16,0.4-0.25 + c-0.22-0.12-0.43-0.26-0.68-0.35C372.15,504.69,371.95,504.88,371.82,504.98z"/> + <path class="st107" d="M348.71,501.19c-0.22-0.12-0.42-0.25-0.66-0.34c-0.05-0.02-0.32,0.1-0.36,0.18 + c-0.04,0.08,0.08,0.26,0.15,0.26C348.12,501.28,348.42,501.23,348.71,501.19z"/> + <path class="st107" d="M323.91,496.87c-0.13,0.04-0.25,0.08-0.38,0.12c0.21,0.09,0.4,0.2,0.63,0.28 + c0.08,0.02,0.26-0.05,0.4-0.08C324.34,497.08,324.12,496.98,323.91,496.87z"/> + <path class="st107" d="M299.48,492.6c0.22,0.08,0.44,0.17,0.68,0.23c0.07,0.02,0.22-0.04,0.34-0.07 + c-0.24-0.09-0.46-0.18-0.72-0.25C299.74,492.5,299.59,492.57,299.48,492.6z"/> + <path class="st107" d="M275.78,487.51c0.22,0.08,0.42,0.18,0.66,0.25c0.08,0.02,0.24-0.01,0.37-0.01 + c-0.23-0.09-0.45-0.19-0.69-0.27C276.06,487.46,275.9,487.5,275.78,487.51z"/> + <path class="st107" d="M252.45,481.36c0.22,0.09,0.43,0.19,0.66,0.27c0.07,0.02,0.21-0.01,0.32-0.01 + c-0.23-0.1-0.46-0.2-0.7-0.29C252.68,481.31,252.54,481.35,252.45,481.36z"/> + <path class="st107" d="M229.73,473.71c0.21,0.11,0.41,0.23,0.64,0.33c0.07,0.03,0.21,0,0.31,0c-0.22-0.12-0.44-0.25-0.67-0.36 + C229.97,473.66,229.83,473.7,229.73,473.71z"/> + <path class="st107" d="M208.36,463.47c-0.11-0.02-0.21-0.04-0.32-0.06c0.19,0.15,0.36,0.3,0.57,0.44 + c0.07,0.05,0.22,0.06,0.33,0.09C208.75,463.79,208.55,463.63,208.36,463.47z"/> + <path class="st107" d="M188.44,450.21c-0.19-0.19-0.37-0.38-0.58-0.57c-0.04-0.04-0.24-0.11-0.26-0.09 + c-0.02,0.03,0.11,0.2,0.16,0.24C187.98,449.95,188.21,450.07,188.44,450.21z"/> + <path class="st107" d="M168.31,432.34c0.17,0.21,0.33,0.43,0.52,0.64c0.06,0.07,0.2,0.12,0.3,0.18 + c-0.18-0.23-0.35-0.45-0.54-0.68C168.54,432.42,168.4,432.38,168.31,432.34z"/> + <path class="st107" d="M150.3,412.4c0.21,0.19,0.42,0.37,0.62,0.56c-0.06-0.13-0.12-0.32-0.18-0.39 + c-0.19-0.21-0.39-0.36-0.58-0.54C150.21,412.15,150.25,412.28,150.3,412.4z"/> + <path class="st107" d="M133.04,388.9c0.15,0.29,0.29,0.58,0.45,0.85c0.05,0.07,0.17,0.08,0.26,0.11 + c-0.16-0.3-0.3-0.61-0.47-0.91C133.25,388.9,133.12,388.92,133.04,388.9z"/> + <path class="st107" d="M116.88,363.28c0.13,0.33,0.25,0.67,0.41,0.97c0.04,0.09,0.19,0.07,0.28,0.1 + c-0.14-0.35-0.27-0.7-0.42-1.04C117.12,363.24,116.97,363.28,116.88,363.28z"/> + <path class="st107" d="M101.56,335.54c0.11,0.37,0.2,0.76,0.34,1.09c0.05,0.11,0.21,0.1,0.32,0.14 + c-0.11-0.4-0.21-0.81-0.35-1.18C101.84,335.51,101.66,335.56,101.56,335.54z"/> + <path class="st107" d="M86.86,306.1c0.1,0.4,0.19,0.82,0.32,1.17c0.04,0.1,0.21,0.01,0.33,0c-0.11-0.42-0.2-0.87-0.33-1.26 + C87.15,305.94,86.97,306.06,86.86,306.1z"/> + <path class="st107" d="M72.72,275.43c0.08,0.44,0.13,0.91,0.25,1.3c0.04,0.13,0.24,0.04,0.36,0.04 + c-0.08-0.47-0.14-0.97-0.25-1.41C73.06,275.26,72.85,275.4,72.72,275.43z"/> + <path class="st107" d="M58.88,244.05c0.07,0.47,0.11,0.98,0.22,1.38c0.04,0.13,0.25-0.01,0.39-0.02 + c-0.06-0.51-0.11-1.04-0.21-1.5C59.25,243.8,59.01,244,58.88,244.05z"/> + <path class="st107" d="M45.11,212.55c0.07,0.47,0.11,0.99,0.23,1.39c0.03,0.11,0.28-0.14,0.42-0.22 + c-0.07-0.51-0.12-1.05-0.22-1.51C45.52,212.13,45.26,212.43,45.11,212.55z"/> + <path class="st107" d="M31.92,182.79c-0.04-0.55-0.06-1.15-0.15-1.63c-0.02-0.1-0.34,0.11-0.45,0.34 + c-0.11,0.23-0.2,0.93-0.15,0.97C31.4,182.67,31.67,182.7,31.92,182.79z"/> + <path class="st107" d="M17.07,151.61c0.06,0.49,0.08,1.04,0.2,1.43c0.03,0.11,0.32-0.25,0.49-0.4 + c-0.06-0.53-0.09-1.1-0.19-1.56C17.56,151,17.25,151.42,17.07,151.61z"/> + <path class="st107" d="M2.3,123.5c0.04,0.51,0.04,1.1,0.15,1.5c0.04,0.13,0.34-0.22,0.52-0.35c-0.03-0.56-0.04-1.18-0.13-1.65 + C2.82,122.9,2.49,123.32,2.3,123.5z"/> + <path class="st107" d="M-13.65,99.21c0.31-0.07,0.62-0.13,0.94-0.2c0.04-0.37,0.18-1.01,0.1-1.05 + c-0.23-0.11-0.55,0.04-0.84,0.08C-13.52,98.43-13.59,98.82-13.65,99.21z"/> + <path class="st107" d="M-29.99,75.73c-0.07-0.54-0.11-1.14-0.24-1.57c-0.03-0.09-0.47,0.33-0.61,0.64 + c-0.14,0.31-0.25,1.08-0.18,1.09C-30.71,75.95-30.34,75.8-29.99,75.73z"/> + <path class="st107" d="M-51.73,17.57c-0.39,0.53-0.81,1.05-1.14,1.62c-0.11,0.18,0.01,0.53,0.02,0.8 + c0.41-0.56,0.85-1.1,1.22-1.7C-51.55,18.16-51.69,17.82-51.73,17.57z"/> + <path class="st107" d="M947.52,807.37c0.16,0.24,0.31,0.49,0.48,0.73c0.05,0.07,0.15,0.14,0.23,0.21 + c-0.17-0.26-0.33-0.51-0.51-0.78C947.7,807.49,947.59,807.42,947.52,807.37z"/> + <path class="st107" d="M930.45,785.41c0.17,0.23,0.32,0.46,0.5,0.68c0.05,0.07,0.16,0.13,0.24,0.2 + c-0.17-0.24-0.34-0.48-0.53-0.73C930.63,785.52,930.52,785.46,930.45,785.41z"/> + <path class="st107" d="M912.96,764.75c0.16,0.22,0.31,0.44,0.49,0.66c0.06,0.07,0.18,0.14,0.28,0.21 + c-0.17-0.24-0.33-0.47-0.52-0.71C913.18,764.87,913.05,764.81,912.96,764.75z"/> + <path class="st107" d="M895.16,744.97c0.16,0.23,0.31,0.46,0.49,0.67c0.06,0.07,0.19,0.11,0.29,0.17 + c-0.17-0.24-0.32-0.49-0.51-0.72C895.39,745.03,895.25,745.01,895.16,744.97z"/> + <path class="st107" d="M877.15,725.75c0.16,0.23,0.31,0.48,0.49,0.69c0.05,0.06,0.19,0.04,0.29,0.06 + c-0.17-0.25-0.33-0.51-0.52-0.74C877.38,725.72,877.24,725.75,877.15,725.75z"/> + <path class="st107" d="M859.07,706.84c0.15,0.25,0.3,0.53,0.47,0.75c0.05,0.06,0.21-0.02,0.32-0.04 + c-0.16-0.27-0.31-0.55-0.49-0.8C859.33,706.71,859.17,706.81,859.07,706.84z"/> + <path class="st107" d="M840.94,688.12c0.15,0.27,0.28,0.56,0.46,0.78c0.05,0.07,0.22-0.05,0.34-0.08 + c-0.16-0.29-0.3-0.59-0.48-0.84C841.22,687.93,841.05,688.07,840.94,688.12z"/> + <path class="st107" d="M822.65,669.75c0.15,0.27,0.28,0.57,0.46,0.8c0.05,0.06,0.23-0.09,0.35-0.15 + c-0.16-0.29-0.3-0.6-0.48-0.86C822.96,669.5,822.77,669.67,822.65,669.75z"/> + <path class="st107" d="M804.21,651.74c0.15,0.28,0.28,0.59,0.45,0.82c0.05,0.06,0.24-0.13,0.37-0.2 + c-0.15-0.3-0.29-0.62-0.47-0.88C804.53,651.44,804.33,651.65,804.21,651.74z"/> + <path class="st107" d="M785.56,634.19c0.15,0.28,0.27,0.6,0.45,0.83c0.05,0.06,0.25-0.15,0.39-0.24 + c-0.15-0.3-0.29-0.63-0.47-0.89C785.9,633.84,785.69,634.08,785.56,634.19z"/> + <path class="st107" d="M766.69,617.15c0.13,0.31,0.24,0.65,0.41,0.89c0.06,0.08,0.28-0.11,0.42-0.18 + c-0.14-0.34-0.25-0.7-0.42-0.98C767.06,616.82,766.83,617.05,766.69,617.15z"/> + <path class="st107" d="M747.42,600.87c0.14,0.29,0.27,0.62,0.45,0.84c0.05,0.06,0.27-0.19,0.42-0.3 + c-0.15-0.31-0.28-0.65-0.47-0.92C747.79,600.45,747.56,600.74,747.42,600.87z"/> + <path class="st107" d="M727.83,585.41c0.14,0.3,0.25,0.65,0.42,0.88c0.06,0.08,0.29-0.15,0.44-0.24 + c-0.14-0.33-0.26-0.69-0.43-0.97C728.22,585.02,727.98,585.29,727.83,585.41z"/> + <path class="st107" d="M707.67,571.12c0.16,0.27,0.29,0.58,0.48,0.78c0.05,0.05,0.28-0.23,0.43-0.36 + c-0.16-0.29-0.31-0.61-0.5-0.84C708.04,570.65,707.81,570.97,707.67,571.12z"/> + <path class="st107" d="M686.77,558.67c0.16,0.25,0.29,0.54,0.49,0.71c0.07,0.06,0.31-0.2,0.47-0.32 + c-0.16-0.27-0.31-0.58-0.51-0.79C687.19,558.23,686.93,558.52,686.77,558.67z"/> + <path class="st107" d="M664.73,551.7c-0.18-0.24-0.34-0.5-0.55-0.67c-0.05-0.04-0.39,0.28-0.46,0.45 + c-0.07,0.18-0.02,0.58,0.05,0.56C664.07,551.99,664.41,551.83,664.73,551.7z"/> + <path class="st107" d="M639.29,547.57c0.18,0.2,0.33,0.44,0.56,0.55c0.08,0.04,0.35-0.29,0.53-0.45 + c-0.19-0.22-0.35-0.48-0.58-0.63C639.74,547.01,639.46,547.38,639.29,547.57z"/> + <path class="st107" d="M614.13,545.49c0.18,0.2,0.33,0.46,0.56,0.56c0.08,0.03,0.36-0.33,0.55-0.51 + c-0.18-0.22-0.34-0.49-0.57-0.63C614.61,544.88,614.31,545.29,614.13,545.49z"/> + <path class="st107" d="M588.67,544.13c0.19,0.18,0.35,0.42,0.59,0.5c0.07,0.02,0.36-0.42,0.55-0.64 + c-0.2-0.2-0.38-0.43-0.61-0.56C589.15,543.41,588.85,543.88,588.67,544.13z"/> + <path class="st107" d="M563.5,542.25c0.16,0.23,0.29,0.54,0.51,0.66c0.07,0.04,0.38-0.37,0.58-0.58 + c-0.17-0.26-0.3-0.58-0.52-0.75C564.03,541.54,563.7,542.01,563.5,542.25z"/> + <path class="st107" d="M538.72,539.35c0.17,0.23,0.31,0.52,0.53,0.64c0.06,0.03,0.38-0.44,0.57-0.67 + c-0.17-0.25-0.33-0.55-0.55-0.71C539.24,538.58,538.91,539.09,538.72,539.35z"/> + <path class="st107" d="M514.74,535.44c0.36-0.21,0.71-0.41,1.07-0.62c-0.02-0.24,0.03-0.69-0.07-0.67 + c-0.29,0.06-0.65,0.31-0.98,0.49C514.75,534.9,514.74,535.17,514.74,535.44z"/> + <path class="st107" d="M491.28,528.74c0.17,0.23,0.3,0.53,0.52,0.66c0.06,0.04,0.36-0.39,0.54-0.6 + c-0.17-0.26-0.32-0.56-0.53-0.74C491.77,528.04,491.46,528.5,491.28,528.74z"/> + </g> + </g> + </g> + <g class="st105"> + <g> + <g> + <path class="st107" d="M1207.52-37.07c2.01-3.96,1.4-9.49-1.33-12.19c-2.61-2.57-6.21-1.63-8.22,2.16 + c-2.15,4.04-1.73,9.54,0.93,12.33C1201.49-32.07,1205.54-33.15,1207.52-37.07z"/> + <path class="st107" d="M1225.8-17.38c1.9-3.84,1.27-9.43-1.39-12.38c-2.54-2.82-5.98-2.15-7.91,1.54 + c-2.04,3.9-1.59,9.54,1,12.51C1220.04-12.8,1223.92-13.58,1225.8-17.38z"/> + <path class="st107" d="M1243.45,4.06c1.83-3.63,1.2-9.24-1.37-12.44c-2.45-3.05-5.78-2.72-7.63,0.78 + c-1.97,3.71-1.53,9.34,0.99,12.55C1237.89,8.07,1241.64,7.65,1243.45,4.06z"/> + <path class="st107" d="M1260.81,26.43c1.64-3.52,0.86-9.06-1.72-12.31c-2.6-3.27-5.89-2.83-7.55,1.03 + c-1.51,3.51-0.8,8.96,1.57,11.92C1255.61,30.21,1259.2,29.9,1260.81,26.43z"/> + <path class="st107" d="M1182.4-28.98c2.7,2.45,6.42,1.22,8.53-2.83c2.23-4.3,1.73-9.85-1.12-12.26 + c-2.66-2.25-6.63-0.74-8.6,3.27C1179.23-36.79,1179.78-31.37,1182.4-28.98z"/> + <path class="st107" d="M1201.8-11.22c2.7,2.48,6.25,1.27,8.16-2.77c1.89-4,1.34-9.33-1.22-11.99 + c-2.68-2.77-6.75-1.41-8.57,2.86C1198.41-18.97,1199.13-13.67,1201.8-11.22z"/> + <path class="st107" d="M1228.02,6.28c1.92-3.75,1.52-9.03-0.89-12.11c-2.48-3.16-6.45-2.43-8.34,1.55 + c-1.8,3.8-1.21,9.31,1.29,12.11C1222.65,10.71,1226.11,10.02,1228.02,6.28z"/> + <path class="st107" d="M1245.98,27.19c1.67-3.63,1.04-8.96-1.42-11.95c-2.42-2.94-5.99-2.48-7.74,1.03 + c-1.86,3.72-1.13,9.57,1.57,12.49C1240.98,31.57,1244.27,30.89,1245.98,27.19z"/> + <path class="st107" d="M1240.96,51.76c2.53,2.86,6.02,2.37,7.68-1.07c1.67-3.46,0.98-8.7-1.53-11.73 + c-2.54-3.06-5.87-2.61-7.62,1.05C1237.76,43.64,1238.41,48.88,1240.96,51.76z"/> + <path class="st107" d="M1229.13,17.69c-2.61-2.82-6.07-1.92-7.84,2.03c-1.76,3.91-1.04,9.19,1.6,11.86 + c2.61,2.64,6.23,1.71,7.89-2.03C1232.47,25.75,1231.74,20.52,1229.13,17.69z"/> + <path class="st107" d="M1211.01-2.18c-2.65-2.72-6.22-1.64-8.15,2.45c-1.91,4.05-1.3,9.37,1.36,11.95 + c2.63,2.56,6.35,1.45,8.19-2.44C1214.26,5.86,1213.63,0.52,1211.01-2.18z"/> + <path class="st107" d="M1192.46-20.4c-2.68-2.64-6.37-1.49-8.48,2.64c-2.1,4.11-1.66,9.43,0.99,11.94 + c2.66,2.52,6.43,1.37,8.52-2.62C1195.53-12.32,1195.06-17.83,1192.46-20.4z"/> + <path class="st107" d="M1172.71-37.1c-2.86-2.08-6.69-0.23-8.7,4.18c-1.98,4.36-1.26,9.45,1.6,11.43 + c2.83,1.96,6.83,0.08,8.73-4.15C1176.29-29.94,1175.57-35.02,1172.71-37.1z"/> + <path class="st107" d="M1125.54-35.99c-2.12,4.52-1.42,9.5,1.53,11.01c2.96,1.51,7.03-1.01,9.07-5.63 + c1.9-4.29,1.25-9.06-1.45-10.63C1131.82-42.91,1127.66-40.51,1125.54-35.99z"/> + <path class="st107" d="M1156.69-17.38c2.09-4.4,1.47-9.74-1.35-11.5c-2.71-1.69-6.53,0.3-8.63,4.47 + c-2.25,4.47-1.79,9.63,1.01,11.59C1150.49-10.89,1154.58-12.95,1156.69-17.38z"/> + <path class="st107" d="M1166.8-9.9c-2.05,4.42-1.4,9.71,1.41,11.67c2.83,1.98,6.67,0.02,8.6-4.42 + c1.79-4.11,1.2-9.19-1.34-11.29C1172.78-16.17,1168.85-14.33,1166.8-9.9z"/> + <path class="st107" d="M1196.04,14.6c1.87-4.13,1.16-9.74-1.51-11.86c-2.62-2.08-6.15-0.61-8.06,3.35 + c-2.03,4.21-1.49,9.6,1.2,11.93C1190.37,20.34,1194.14,18.81,1196.04,14.6z"/> + <path class="st107" d="M1214.82,33.25c1.81-3.91,1.13-9.51-1.46-11.9c-2.54-2.34-5.95-1.23-7.81,2.54 + c-1.98,3.99-1.46,9.39,1.15,11.95C1209.3,38.39,1212.98,37.22,1214.82,33.25z"/> + <path class="st107" d="M1233.09,53.29c1.87-3.59,1.37-8.94-1.1-11.82c-2.34-2.72-5.72-2.18-7.61,1.22 + c-2.03,3.68-1.7,8.92,0.77,11.87C1227.56,57.46,1231.23,56.86,1233.09,53.29z"/> + <path class="st107" d="M1251.42,73.51c1.69-3.37,1.02-8.65-1.46-11.48c-2.37-2.7-5.62-2.29-7.35,0.94 + c-1.86,3.48-1.36,8.6,1.13,11.52C1246.19,77.36,1249.72,76.9,1251.42,73.51z"/> + <path class="st107" d="M1253.1,84.88c-2.52-2.86-6.06-2.35-7.64,1.1c-1.52,3.33-0.78,7.98,1.69,10.59 + c2.65,2.81,6.03,2.31,7.61-1.1C1256.22,92.3,1255.48,87.57,1253.1,84.88z"/> + <path class="st107" d="M1072.73-49.49c-3.07-1.18-7.32,1.31-9.14,5.32c-1.75,3.86-0.85,7.85,2.04,9.09 + c3.11,1.34,7.14-0.97,9.08-5.23C1076.51-44.26,1075.63-48.37,1072.73-49.49z"/> + <path class="st107" d="M1094.86-40.74c-3-1.39-7.25,1.09-9.19,5.32c-1.86,4.07-1.09,8.37,1.73,9.78 + c3.04,1.53,7.08-0.77,9.12-5.22C1098.42-34.98,1097.68-39.43,1094.86-40.74z"/> + <path class="st107" d="M1108.8-14.92c2.98,1.7,7.01-0.6,9.09-5.2c1.93-4.28,1.27-8.97-1.49-10.47 + c-2.92-1.59-7.18,0.89-9.16,5.3C1105.34-21.04,1106.03-16.5,1108.8-14.92z"/> + <path class="st107" d="M1137.55-18.89c-2.86-1.81-7.1,0.54-9.18,5.04c-2,4.31-1.42,9.06,1.32,10.74 + c2.96,1.81,6.98-0.33,9.12-4.92C1140.79-12.28,1140.23-17.19,1137.55-18.89z"/> + <path class="st107" d="M1150.68,9.92c2.75,1.82,6.42,0.08,8.5-4.08c2.15-4.3,1.57-9.66-1.28-11.61 + c-2.67-1.83-6.5,0.06-8.55,4.18C1147.16,2.78,1147.78,8,1150.68,9.92z"/> + <path class="st107" d="M1177.93,9.75c-2.69-2.33-6.7-0.58-8.63,3.72c-1.86,4.14-1.26,9.05,1.34,11.2 + c2.8,2.32,6.6,0.73,8.57-3.62C1181.03,17.01,1180.46,11.95,1177.93,9.75z"/> + <path class="st107" d="M1197.16,26.83c-2.64-2.48-6.55-0.97-8.34,3.19c-1.74,4.04-1.09,8.91,1.48,11.21 + c2.74,2.44,6.46,1.06,8.29-3.11C1200.3,34.21,1199.67,29.18,1197.16,26.83z"/> + <path class="st107" d="M1216.2,45.48c-2.54-2.77-6.29-1.8-8.13,2.09c-1.77,3.75-1.22,8.66,1.27,11.2 + c2.67,2.73,6.24,1.83,8.09-2.05C1219.14,53.14,1218.59,48.08,1216.2,45.48z"/> + <path class="st107" d="M1234.62,64.76c-2.56-2.74-6.22-1.87-7.84,1.87c-1.57,3.63-0.85,8.38,1.66,10.91 + c2.67,2.69,6.17,1.86,7.8-1.85C1237.77,72.22,1237.05,67.36,1234.62,64.76z"/> + <path class="st107" d="M1032.29-46.74c-3-1.15-6.73,0.7-8.52,4.19c-1.79,3.49-0.95,7.26,1.9,8.56c2.74,1.25,6.76-0.69,8.59-4.2 + C1036.09-41.73,1035.21-45.62,1032.29-46.74z"/> + <path class="st107" d="M1054.42-38.82c-3.03-1.13-6.74,0.96-8.57,4.81c-1.8,3.78-0.92,7.86,1.95,9.08 + c2.81,1.2,6.84-1.03,8.65-4.82C1058.28-33.59,1057.37-37.72,1054.42-38.82z"/> + <path class="st107" d="M1256.3,106.64c-2.59-2.54-5.71-1.95-7.24,1.39c-1.5,3.26-0.62,7.88,1.93,10.18 + c2.53,2.28,5.93,1.63,7.33-1.41C1259.74,113.71,1258.83,109.12,1256.3,106.64z"/> + <path class="st107" d="M1237.5,87.4c-2.6-2.49-5.81-1.64-7.44,1.97c-1.59,3.52-0.78,8.33,1.79,10.58 + c2.55,2.24,6.02,1.33,7.52-1.98C1240.89,94.62,1240.04,89.83,1237.5,87.4z"/> + <path class="st107" d="M1218.64,68.53c-2.62-2.41-5.93-1.3-7.66,2.55c-1.69,3.75-0.93,8.69,1.65,10.87 + c2.57,2.17,6.14,1.01,7.74-2.54C1221.98,75.82,1221.2,70.89,1218.64,68.53z"/> + <path class="st107" d="M1199.46,50.26c-2.68-2.18-6.1-0.67-7.86,3.43c-1.71,3.98-0.9,9.03,1.74,10.96 + c2.67,1.96,6.3,0.42,7.92-3.4C1202.9,57.39,1202.1,52.41,1199.46,50.26z"/> + <path class="st107" d="M1180.44,33.48c-2.61-2.33-6.21-0.94-8.21,3.15c-1.99,4.07-1.53,9.09,1.03,11.3 + c2.49,2.15,6.35,0.69,8.28-3.15C1183.49,40.89,1183,35.76,1180.44,33.48z"/> + <path class="st107" d="M1160.31,17.54c-2.8-1.87-6.41,0.12-8.37,4.53c-1.9,4.29-1.18,9.28,1.54,10.96 + c2.73,1.69,6.61-0.35,8.43-4.48C1163.76,24.37,1163.05,19.37,1160.31,17.54z"/> + <path class="st107" d="M1140.22,3.87c-2.76-1.88-6.57,0.1-8.71,4.47c-2.13,4.35-1.67,9.23,1.02,11.05 + c2.6,1.76,6.69-0.29,8.77-4.45C1143.39,10.75,1142.91,5.7,1140.22,3.87z"/> + <path class="st107" d="M1119.16-8.37c-2.83-1.67-6.6,0.46-8.68,4.87c-2.05,4.35-1.51,9.22,1.2,10.9 + c2.65,1.64,6.72-0.61,8.75-4.87C1122.48-1.78,1121.91-6.74,1119.16-8.37z"/> + <path class="st107" d="M1097.9-19.84c-2.95-1.37-6.69,0.92-8.66,5.26c-1.93,4.24-1.18,8.86,1.63,10.23 + c2.78,1.35,6.84-1.08,8.74-5.25C1101.54-13.86,1100.78-18.51,1097.9-19.84z"/> + <path class="st107" d="M1076.45-29.86c-2.97-1.3-6.72,0.86-8.67,4.95c-1.91,4.02-1.16,8.4,1.65,9.76 + c2.76,1.34,6.83-0.95,8.74-4.95C1080.1-24.17,1079.33-28.6,1076.45-29.86z"/> + <path class="st107" d="M972.59-46.75c1.51-2.81,0.36-5.97-2.56-7.02c-2.86-1.02-6.58,0.39-7.84,2.95 + c-1.21,2.48-0.07,5.44,2.57,6.68C967.62-42.79,971.08-43.93,972.59-46.75z"/> + <path class="st107" d="M1235.54,121.25c2.64,2.2,5.89,1.26,7.36-2.14c1.35-3.12,0.55-7.43-1.81-9.7 + c-2.45-2.36-6.03-1.55-7.53,1.71C1232.02,114.47,1232.92,119.07,1235.54,121.25z"/> + <path class="st107" d="M1223.48,101.46c1.59-3.54,0.74-8.35-1.88-10.45c-2.45-1.97-5.81-0.89-7.38,2.35 + c-1.7,3.51-0.94,8.34,1.66,10.54C1218.51,106.13,1221.85,105.07,1223.48,101.46z"/> + <path class="st107" d="M1203.96,84.17c1.75-3.74,1.03-8.66-1.58-10.77c-2.44-1.97-5.88-0.76-7.62,2.67 + c-1.85,3.66-1.22,8.65,1.36,10.85C1198.75,89.18,1202.18,87.99,1203.96,84.17z"/> + <path class="st107" d="M1176.42,70.88c2.7,2.01,6.21,0.41,8.01-3.67c1.65-3.75,1.06-8.42-1.34-10.52 + c-2.48-2.17-6.39-0.58-8.19,3.28C1173.05,63.93,1173.75,68.89,1176.42,70.88z"/> + <path class="st107" d="M1156.28,55.72c2.74,1.84,6.36-0.01,8.23-4.28c1.72-3.91,1.15-8.6-1.3-10.55 + c-2.53-2-6.55-0.11-8.42,3.92C1152.87,48.95,1153.56,53.9,1156.28,55.72z"/> + <path class="st107" d="M1135.78,41.97c2.82,1.58,6.53-0.61,8.43-5.04c1.74-4.06,1.13-8.7-1.41-10.38 + c-2.64-1.74-6.75,0.53-8.63,4.71C1132.24,35.57,1132.98,40.4,1135.78,41.97z"/> + <path class="st107" d="M1114.47,29.77c2.84,1.53,6.65-0.71,8.72-5.19c1.91-4.14,1.45-8.69-1.08-10.34 + c-2.61-1.7-6.75,0.48-8.84,4.7C1111.17,23.17,1111.68,28.27,1114.47,29.77z"/> + <path class="st107" d="M1102.23,12.59c2.05-4.35,1.47-9.21-1.3-10.68c-2.58-1.36-6.37,0.73-8.35,4.57 + c-2.1,4.09-1.59,9.05,1.08,10.78C1096.38,19.02,1100.15,16.98,1102.23,12.59z"/> + <path class="st107" d="M1072.85,5.5c2.81,1.55,6.53-0.57,8.51-4.88c1.83-3.98,1.28-8.31-1.26-9.84 + c-2.64-1.58-6.74,0.58-8.71,4.55C1069.42-0.68,1070.1,3.98,1072.85,5.5z"/> + <path class="st107" d="M1059.97-9.96c1.96-4,1.26-8.38-1.58-9.66c-2.79-1.26-6.85,1.04-8.56,4.82 + c-1.65,3.65-0.91,7.7,1.65,9.17C1054.25-4.04,1058-5.93,1059.97-9.96z"/> + <path class="st107" d="M1030.45-15.75c2.9,1.21,6.54-0.89,8.23-4.78c1.55-3.57,0.65-7.35-2.05-8.48 + c-2.81-1.18-6.82,0.96-8.44,4.47C1026.53-20.93,1027.56-16.95,1030.45-15.75z"/> + <path class="st107" d="M1008.86-25.49c2.93,1.13,6.48-0.81,8.04-4.4c1.43-3.29,0.38-6.79-2.35-7.82 + c-2.86-1.07-6.77,0.88-8.25,4.11C1004.77-30.3,1005.94-26.62,1008.86-25.49z"/> + <path class="st107" d="M986.98-34.87c2.93,1.16,6.4-0.47,7.88-3.73c1.36-2.99,0.29-6.21-2.44-7.26 + c-2.81-1.08-6.68,0.58-8.1,3.46C982.87-39.45,984.09-36.02,986.98-34.87z"/> + <path class="st107" d="M1244.65,130.48c-2.49-2.11-5.61-1.43-7.1,1.53c-1.58,3.15-0.65,7.45,2.07,9.57 + c2.51,1.96,5.72,1.27,7.14-1.53C1248.27,137.09,1247.31,132.73,1244.65,130.48z"/> + <path class="st107" d="M1225.17,113.3c-2.48-2.16-5.67-1.4-7.31,1.74c-1.74,3.33-0.98,7.84,1.7,10.03 + c2.48,2.03,5.74,1.27,7.34-1.72C1228.58,120.21,1227.78,115.58,1225.17,113.3z"/> + <path class="st107" d="M1205.43,96.14c-2.51-2.03-5.79-0.93-7.46,2.48c-1.77,3.61-0.97,8.22,1.75,10.28 + c2.51,1.9,5.88,0.82,7.48-2.42C1208.91,103.02,1208.1,98.31,1205.43,96.14z"/> + <path class="st107" d="M1185.85,79.78c-2.5-2.07-5.85-0.93-7.69,2.59c-1.96,3.74-1.36,8.5,1.32,10.6 + c2.64,2.07,6.36,0.65,7.99-3.09C1189.03,86.28,1188.33,81.84,1185.85,79.78z"/> + <path class="st107" d="M1165.77,64.06c-2.55-1.89-6-0.42-7.87,3.31c-1.99,3.96-1.36,8.72,1.38,10.64 + c2.55,1.78,6.04,0.38,7.88-3.22C1169.1,71.02,1168.47,66.06,1165.77,64.06z"/> + <path class="st107" d="M1145.54,49.69c-2.74-1.92-6.5,0-8.4,4.23c-1.78,3.97-1.14,8.36,1.44,10.1 + c2.71,1.82,6.61-0.06,8.41-4.12C1148.71,56.01,1148.08,51.47,1145.54,49.69z"/> + <path class="st107" d="M1124.67,36.72c-2.65-1.56-6.27,0.36-8.29,4.33c-2.15,4.21-1.56,8.91,1.26,10.5 + c2.78,1.57,6.78-0.64,8.6-4.84C1127.97,42.68,1127.3,38.26,1124.67,36.72z"/> + <path class="st107" d="M1103.73,24.77c-2.74-1.8-6.53,0.26-8.46,4.56c-1.82,4.03-1.24,8.49,1.29,10.2 + c2.67,1.81,6.59-0.24,8.48-4.48C1106.84,31.02,1106.27,26.43,1103.73,24.77z"/> + <path class="st107" d="M1082.87,12.4c-2.64-1.5-6.18,0.33-8.12,4.14c-2.05,4.05-1.45,8.69,1.32,10.35 + c2.57,1.54,6.16-0.24,8.12-4.07C1086.25,18.82,1085.65,13.98,1082.87,12.4z"/> + <path class="st107" d="M1061.82,0.92c-2.68-1.39-6.2,0.4-8.05,4.05c-1.96,3.87-1.26,8.28,1.54,9.85 + c2.6,1.45,6.17-0.29,8.06-3.98C1065.34,6.98,1064.64,2.39,1061.82,0.92z"/> + <path class="st107" d="M1034.31,3.27c2.61,1.41,6.13-0.19,7.96-3.67c1.92-3.63,1.14-7.99-1.7-9.39 + c-2.7-1.32-6.17,0.32-7.95,3.73C1030.73-2.43,1031.5,1.75,1034.31,3.27z"/> + <path class="st107" d="M1018.88-19.96c-2.75-1.14-6.16,0.5-7.74,3.7c-1.67,3.39-0.66,7.24,2.23,8.58 + c2.67,1.24,6.16-0.39,7.76-3.65C1022.83-14.8,1021.82-18.74,1018.88-19.96z"/> + <path class="st107" d="M997.3-29.51c-2.75-1.15-6.09,0.23-7.59,3.11c-1.6,3.06-0.55,6.65,2.32,8.02 + c2.67,1.27,6.05-0.08,7.61-3.06C1001.29-24.58,1000.22-28.3,997.3-29.51z"/> + <path class="st107" d="M975.54-38.78c-2.76-1.13-6,0-7.4,2.56c-1.48,2.72-0.33,6.04,2.54,7.4c2.67,1.26,5.96,0.15,7.42-2.52 + C979.63-34.15,978.46-37.58,975.54-38.78z"/> + <path class="st107" d="M953.86-47.85c-2.92-1.27-6.25-0.31-7.44,2.15c-1.12,2.31,0.09,5.14,2.75,6.48 + c2.8,1.41,6.27,0.43,7.48-2.13C957.8-43.79,956.57-46.67,953.86-47.85z"/> + <path class="st107" d="M1251.27,158.98c1.19-2.89-0.02-6.98-2.58-8.69c-2.66-1.78-5.69-0.76-6.96,2.34 + c-1.24,3.02-0.04,7.03,2.56,8.64C1246.98,162.93,1250.06,161.92,1251.27,158.98z"/> + <path class="st107" d="M1230.83,143.57c1.51-3,0.73-7.23-1.72-9.32c-2.42-2.07-5.79-1.18-7.33,1.94 + c-1.56,3.15-0.79,7.3,1.71,9.27C1225.99,147.43,1229.32,146.57,1230.83,143.57z"/> + <path class="st107" d="M1210.78,127.46c1.53-3.27,0.72-7.68-1.78-9.62c-2.52-1.95-5.86-0.74-7.44,2.67 + c-1.57,3.39-0.76,7.72,1.78,9.55C1205.88,131.9,1209.25,130.73,1210.78,127.46z"/> + <path class="st107" d="M1190.5,111.97c1.7-3.42,1.1-7.95-1.35-10c-2.42-2.03-5.95-0.73-7.68,2.78 + c-1.75,3.56-1.13,7.97,1.36,9.91C1185.31,116.59,1188.8,115.38,1190.5,111.97z"/> + <path class="st107" d="M1170.34,96.52c1.69-3.66,0.99-8.29-1.55-10.06c-2.56-1.79-6.07-0.12-7.81,3.66 + c-1.73,3.76-1.01,8.26,1.56,9.95C1165.13,101.77,1168.65,100.19,1170.34,96.52z"/> + <path class="st107" d="M1140.5,75.93c-1.89,3.89-1.33,8.39,1.21,10.13c2.53,1.73,6.18,0.08,8.02-3.67 + c1.85-3.77,1.33-8.43-1.18-10.27C1146.07,70.31,1142.36,72.09,1140.5,75.93z"/> + <path class="st107" d="M1119.51,63.29c-1.93,4.02-1.36,8.47,1.23,10.04c2.58,1.56,6.3-0.33,8.2-4.24 + c1.9-3.9,1.37-8.56-1.19-10.21C1125.21,57.26,1121.42,59.32,1119.51,63.29z"/> + <path class="st107" d="M1107.79,57.12c1.89-4.03,1.27-8.59-1.4-9.92c-2.66-1.33-6.3,0.63-8.18,4.68 + c-1.89,4.06-1.44,8.96,1.24,10.22C1102.13,63.38,1105.89,61.17,1107.79,57.12z"/> + <path class="st107" d="M1087.17,44.35c1.77-4.02,1.06-8.69-1.55-10.06c-2.67-1.4-6.22,0.75-8,4.8 + c-1.76,3.99-1.03,8.55,1.57,9.96C1081.82,50.48,1085.38,48.41,1087.17,44.35z"/> + <path class="st107" d="M1066.42,32c1.87-3.83,1.35-8.37-1.18-9.99c-2.5-1.6-6.2,0.3-8.03,4.08c-1.85,3.82-1.31,8.21,1.2,9.87 + C1060.91,37.6,1064.55,35.82,1066.42,32z"/> + <path class="st107" d="M1045.68,19.81c1.85-3.64,1.32-7.95-1.21-9.59c-2.48-1.61-6.16,0.1-7.95,3.65 + c-1.82,3.6-1.27,7.78,1.23,9.48C1040.2,25.02,1043.84,23.41,1045.68,19.81z"/> + <path class="st107" d="M1025.1,7.44c1.57-3.48,0.65-7.54-2.01-8.76c-2.71-1.24-6.12,0.53-7.67,3.97 + c-1.53,3.39-0.6,7.37,2.01,8.7C1020.08,12.69,1023.51,10.96,1025.1,7.44z"/> + <path class="st107" d="M1004.08-3.87c1.54-3.2,0.63-7-2-8.31c-2.64-1.31-6.06,0.19-7.55,3.29c-1.49,3.1-0.57,6.83,2.01,8.25 + C999.12,0.78,1002.53-0.67,1004.08-3.87z"/> + <path class="st107" d="M983.01-14.99c1.47-2.88,0.52-6.43-2.1-7.77c-2.6-1.34-5.98-0.11-7.38,2.65 + c-1.41,2.78-0.46,6.24,2.1,7.7C978.2-10.95,981.54-12.1,983.01-14.99z"/> + <path class="st107" d="M952.42-31.09c-1.26,2.47-0.16,5.67,2.42,7.09c2.59,1.43,5.81,0.48,7.13-2.11 + c1.32-2.58,0.22-5.84-2.42-7.13C956.91-34.53,953.67-33.54,952.42-31.09z"/> + <path class="st107" d="M940.97-37.3c1.09-2.3-0.26-5.28-2.93-6.47c-2.72-1.21-5.72-0.43-6.76,1.76 + c-1.03,2.17,0.31,5.14,2.92,6.47C936.84-34.19,939.87-34.98,940.97-37.3z"/> + <path class="st107" d="M910.34-53.38c-0.95,1.83,0.4,4.55,2.98,5.98c2.59,1.43,5.56,1,6.57-0.97c1.01-1.96-0.36-4.7-3-5.99 + C914.23-55.65,911.3-55.22,910.34-53.38z"/> + <path class="st107" d="M1006.36,6.44c-2.6-1.53-6.05-0.18-7.52,2.92c-1.48,3.1-0.52,6.93,2.11,8.49 + c2.48,1.48,5.53,0.33,7.11-2.72C1009.73,11.93,1008.97,7.98,1006.36,6.44z"/> + <path class="st107" d="M980.3,4.78c2.6,1.74,5.8,0.77,7.3-2.24c1.39-2.78,0.64-6.29-1.7-7.85c-2.51-1.67-5.88-0.76-7.45,1.97 + C976.91-0.65,977.77,3.09,980.3,4.78z"/> + <path class="st107" d="M960.21-7.87c2.63,1.57,5.73,0.6,6.95-2.2c1.14-2.63,0.13-5.74-2.33-7.16c-2.6-1.5-5.87-0.61-7.12,1.91 + C956.45-12.8,957.59-9.44,960.21-7.87z"/> + <path class="st107" d="M943.88-29.04c-2.63-1.43-5.78-0.71-6.8,1.54c-1.04,2.29,0.25,5.35,2.91,6.88 + c2.47,1.42,5.29,0.8,6.46-1.45C947.69-24.43,946.53-27.6,943.88-29.04z"/> + <path class="st107" d="M923.38-40.7c-2.57-1.56-5.64-1.3-6.72,0.55c-1.08,1.85,0.18,4.78,2.76,6.43 + c2.46,1.58,5.14,1.37,6.35-0.51C927.04-36.19,925.96-39.14,923.38-40.7z"/> + <path class="st107" d="M902.54-52.88c-2.6-1.54-5.51-1.48-6.35,0.14c-0.85,1.63,0.57,4.3,3.18,5.95 + c2.45,1.55,5.05,1.49,6.03-0.14C906.44-48.64,905.14-51.33,902.54-52.88z"/> + <path class="st107" d="M1253.68,169.67c-2.57-1.92-5.85-1.23-7.16,1.51c-1.31,2.74-0.17,6.44,2.52,8.19 + c2.54,1.66,5.46,1.04,6.8-1.44C1257.25,175.33,1256.27,171.6,1253.68,169.67z"/> + <path class="st107" d="M1228.29,164.84c2.69,1.78,5.87,0.79,7.12-2.24c1.18-2.85,0.23-6.43-2.2-8.27 + c-2.57-1.94-5.91-1.06-7.29,1.89C1224.54,159.21,1225.6,163.06,1228.29,164.84z"/> + <path class="st107" d="M1207.59,150.09c2.67,1.81,5.92,0.7,7.29-2.53c1.28-3.03,0.43-6.8-1.97-8.66 + c-2.54-1.97-5.96-0.95-7.45,2.19C1203.96,144.23,1204.93,148.29,1207.59,150.09z"/> + <path class="st107" d="M1186.63,135.2c2.61,2,5.93,1.02,7.59-2.27c1.53-3.04,0.94-7.13-1.32-9.13 + c-2.43-2.16-5.9-1.28-7.71,1.94C1183.42,128.87,1184.09,133.26,1186.63,135.2z"/> + <path class="st107" d="M1166.06,120.95c2.65,1.87,6.04,0.63,7.71-2.89c1.54-3.24,0.93-7.41-1.38-9.31 + c-2.47-2.04-6.03-0.85-7.84,2.58C1162.76,114.7,1163.47,119.12,1166.06,120.95z"/> + <path class="st107" d="M1151.63,94.33c-2.57-1.8-6.21-0.2-7.95,3.44c-1.73,3.62-0.91,7.95,1.77,9.58 + c2.55,1.55,5.73,0.24,7.5-3.16C1154.8,100.63,1154.21,96.15,1151.63,94.33z"/> + <path class="st107" d="M1124.17,94.36c2.68,1.7,6.2,0.12,8.03-3.67c1.69-3.51,1.2-7.77-1.14-9.5c-2.51-1.86-6.2-0.28-8.18,3.41 + C1120.95,88.21,1121.56,92.71,1124.17,94.36z"/> + <path class="st107" d="M1109.55,68.96c-2.68-1.44-6.48,0.71-8.26,4.58c-1.78,3.88-0.92,8.04,1.87,9.33 + c2.63,1.22,5.96-0.54,7.78-4.19C1112.86,74.84,1112.25,70.4,1109.55,68.96z"/> + <path class="st107" d="M1082.2,70.87c2.65,1.61,6.12-0.31,7.8-4.36c1.58-3.81,0.95-7.97-1.48-9.55 + c-2.57-1.67-6.23,0.21-7.97,4.04C1078.81,64.86,1079.55,69.26,1082.2,70.87z"/> + <path class="st107" d="M1067.96,43.71c-2.61-1.5-6.27,0.5-7.85,4.26c-1.62,3.84-0.74,8.04,1.96,9.53 + c2.5,1.38,5.76-0.34,7.44-3.96C1071.29,49.71,1070.6,45.22,1067.96,43.71z"/> + <path class="st107" d="M1047.69,31.06c-2.55-1.65-6.15-0.01-7.84,3.53c-1.69,3.53-0.91,7.79,1.7,9.41 + c2.48,1.54,5.62,0.18,7.4-3.28C1050.81,37.12,1050.26,32.72,1047.69,31.06z"/> + <path class="st107" d="M1020.94,30.65c2.57,1.81,5.92,0.54,7.66-2.96c1.61-3.23,1.07-7.23-1.21-8.91 + c-2.46-1.8-5.98-0.57-7.8,2.68C1017.81,24.64,1018.45,28.89,1020.94,30.65z"/> + <path class="st107" d="M949.27-13.23c-2.46-1.55-5.23-1.05-6.46,1.15c-1.3,2.32-0.3,5.71,2.15,7.4 + c2.44,1.69,5.61,0.97,6.72-1.53C952.74-8.59,951.67-11.72,949.27-13.23z"/> + <path class="st107" d="M928.41-26.58c-2.69-1.39-5.33-0.64-6.02,1.74c-0.62,2.12,0.92,5.13,3.3,6.4 + c2.48,1.33,5.16,0.68,5.99-1.42C932.57-22.16,931.09-25.19,928.41-26.58z"/> + <path class="st107" d="M908.75-39.46c-2.44-1.59-5.01-1.56-6,0.07c-1.04,1.71,0.16,4.65,2.6,6.38 + c2.43,1.72,5.38,1.54,6.23-0.38C912.4-35.21,911.14-37.91,908.75-39.46z"/> + <path class="st107" d="M882.74-53.26c-0.69,1.43,0.6,4.01,2.86,5.69c2.4,1.78,5.25,1.92,6.02,0.31 + c0.79-1.65-0.73-4.31-3.34-5.91C885.8-54.69,883.46-54.74,882.74-53.26z"/> + <path class="st107" d="M1230.75,175.27c-1.23,2.69-0.27,6.16,2.16,7.8c2.54,1.71,5.96,0.83,7.22-1.88 + c1.28-2.76,0.08-6.41-2.66-8.05C1234.87,171.58,1232.03,172.49,1230.75,175.27z"/> + <path class="st107" d="M969.41-0.36c-2.5-1.46-5.3-0.63-6.59,1.92c-1.33,2.66-0.31,6.3,2.2,7.86c2.38,1.48,5.37,0.62,6.65-1.92 + C973.06,4.75,972.04,1.17,969.41-0.36z"/> + <path class="st107" d="M989.83,12.68c-2.47-1.52-5.4-0.56-6.83,2.22c-1.5,2.91-0.65,6.78,1.83,8.41 + c2.47,1.63,5.84,0.37,7.13-2.69C993.19,17.7,992.26,14.18,989.83,12.68z"/> + <path class="st107" d="M1010.08,25.73c-2.48-1.5-5.47-0.32-6.98,2.72c-1.58,3.18-0.77,7.25,1.73,8.83 + c2.35,1.48,5.54,0.28,7.05-2.7C1013.51,31.36,1012.69,27.3,1010.08,25.73z"/> + <path class="st107" d="M1030.64,39.08c-2.4-1.7-5.53-0.57-7.23,2.56c-1.81,3.32-1.27,7.54,1.16,9.38 + c2.38,1.8,5.93,0.39,7.54-3.05C1033.63,44.71,1032.99,40.74,1030.64,39.08z"/> + <path class="st107" d="M1050.94,52.44c-2.38-1.74-5.57-0.53-7.35,2.74c-1.89,3.48-1.44,7.84,0.98,9.72 + c2.37,1.83,5.98,0.33,7.67-3.25C1053.84,58.27,1053.27,54.15,1050.94,52.44z"/> + <path class="st107" d="M1071.05,65.79c-2.44-1.65-5.62-0.22-7.39,3.25c-1.86,3.66-1.32,8.12,1.16,9.82 + c2.45,1.68,6.1-0.08,7.72-3.78C1074.09,71.55,1073.43,67.4,1071.05,65.79z"/> + <path class="st107" d="M1091.35,79.32c-2.44-1.66-5.66-0.17-7.45,3.35c-1.89,3.72-1.35,8.2,1.14,9.89 + c2.47,1.67,6.44-0.83,8.07-4.56C1094.67,84.44,1093.91,80.54,1091.35,79.32z"/> + <path class="st107" d="M1112.72,90.18c-2.62-1.3-5.88,0.47-7.61,4.05c-1.8,3.74-1,7.95,1.69,9.19 + c2.53,1.17,5.99-0.58,7.65-3.95C1116.24,95.83,1115.47,91.55,1112.72,90.18z"/> + <path class="st107" d="M1133.98,102.44c-2.56-1.5-5.78,0.03-7.5,3.49c-1.8,3.62-1.06,7.89,1.57,9.34 + c2.62,1.44,6.3-0.4,7.82-3.98C1137.31,107.87,1136.49,103.91,1133.98,102.44z"/> + <path class="st107" d="M1154.89,115.69c-2.54-1.6-5.69-0.24-7.36,3.1c-1.74,3.5-0.98,7.75,1.63,9.28 + c2.6,1.53,6.22-0.14,7.68-3.59C1158.23,121.18,1157.38,117.25,1154.89,115.69z"/> + <path class="st107" d="M1175.56,129.61c-2.54-1.61-5.62-0.36-7.19,2.87c-1.64,3.38-0.76,7.55,1.87,9.07 + c2.48,1.43,5.75,0.18,7.25-2.83C1179.11,135.48,1178.24,131.31,1175.56,129.61z"/> + <path class="st107" d="M1196.59,144.3c-2.43-1.88-5.55-1.08-7.19,1.81c-1.76,3.09-1.11,7.14,1.42,9.03 + c2.47,1.84,6.01,0.78,7.51-2.29C1199.74,149.95,1198.98,146.15,1196.59,144.3z"/> + <path class="st107" d="M1217.23,158.9c-2.45-1.86-5.5-1.18-7.07,1.56c-1.66,2.91-0.93,6.83,1.62,8.68 + c2.49,1.81,5.97,0.87,7.37-2.02C1220.48,164.38,1219.63,160.72,1217.23,158.9z"/> + <path class="st107" d="M878.15-48.75c0.72-1.41-0.57-3.96-2.84-5.65c-2.23-1.67-4.83-2.11-5.56-0.94 + c-0.8,1.28,0.62,4.1,3.04,5.99C875.09-47.56,877.42-47.31,878.15-48.75z"/> + <path class="st107" d="M897.5-33.39c0.91-1.6-0.16-4.29-2.42-6.03c-2.36-1.82-5.25-2.02-6.02-0.4 + c-0.74,1.56,0.48,4.27,2.74,6.08C894.09-31.92,896.58-31.77,897.5-33.39z"/> + <path class="st107" d="M917.01-18.43c1.02-1.87,0.03-4.77-2.24-6.49c-2.37-1.8-5.37-1.7-6.25,0.19 + c-0.85,1.82,0.3,4.71,2.58,6.49C913.4-16.46,915.97-16.53,917.01-18.43z"/> + <path class="st107" d="M936.67-3.84c1.04-2.21-0.01-5.34-2.32-6.92c-2.27-1.55-5.18-1.22-6.22,0.71 + c-1.13,2.1,0.05,5.49,2.53,7.25C933-1.13,935.61-1.58,936.67-3.84z"/> + <path class="st107" d="M1245.1,198.71c1.31-2.41,0.45-5.66-1.94-7.37c-2.47-1.77-5.97-0.98-7.23,1.62 + c-1.2,2.48-0.14,5.77,2.35,7.29C1240.81,201.8,1243.79,201.13,1245.1,198.71z"/> + <path class="st107" d="M1223.86,185.34c1.31-2.6,0.43-6.06-1.97-7.73c-2.52-1.75-6.01-0.72-7.26,2.11 + c-1.2,2.72-0.13,6.09,2.38,7.59C1219.55,188.83,1222.53,187.98,1223.86,185.34z"/> + <path class="st107" d="M1202.67,171.85c1.4-2.77,0.61-6.37-1.78-8.09c-2.49-1.79-6.05-0.63-7.39,2.36 + c-1.28,2.87-0.29,6.38,2.2,7.91C1198.23,175.58,1201.26,174.65,1202.67,171.85z"/> + <path class="st107" d="M1181.59,158.26c1.45-2.93,0.71-6.67-1.67-8.35c-2.49-1.76-6.11-0.42-7.5,2.72 + c-1.33,3.02-0.38,6.62,2.11,8.13C1177.05,162.29,1180.12,161.23,1181.59,158.26z"/> + <path class="st107" d="M1160.44,145.01c1.57-3.05,0.98-6.87-1.38-8.62c-2.43-1.8-6.16-0.39-7.67,2.84 + c-1.45,3.08-0.6,6.83,1.85,8.37C1155.72,149.17,1158.86,148.07,1160.44,145.01z"/> + <path class="st107" d="M1139.4,131.87c1.55-3.19,0.89-7.09-1.52-8.65c-2.52-1.64-6.25,0.08-7.73,3.47 + c-1.42,3.27-0.52,6.95,1.99,8.34C1134.67,136.44,1137.82,135.1,1139.4,131.87z"/> + <path class="st107" d="M1118.21,119.4c1.53-3.31,0.79-7.22-1.68-8.57c-2.41-1.32-5.96,0.38-7.55,3.54 + c-1.73,3.43-0.82,7.48,1.92,8.77C1113.49,124.36,1116.64,122.8,1118.21,119.4z"/> + <path class="st107" d="M1096.71,108.08c1.58-3.38,0.87-7.25-1.62-8.51c-2.44-1.23-6.02,0.6-7.68,3.84 + c-1.78,3.48-0.89,7.47,1.86,8.66C1091.89,113.21,1095.1,111.52,1096.71,108.08z"/> + <path class="st107" d="M1075.42,96.71c1.62-3.37,1.09-7.5-1.21-9.18c-2.4-1.76-6.08-0.05-7.61,3.47 + c-1.47,3.39-0.72,7.33,1.66,8.89C1070.68,101.48,1073.78,100.12,1075.42,96.71z"/> + <path class="st107" d="M1055.2,82.99c1.66-3.31,1.21-7.4-1.04-9.2c-2.33-1.86-6-0.33-7.57,3.08c-1.5,3.26-0.81,7.27,1.5,8.95 + C1050.44,87.52,1053.53,86.32,1055.2,82.99z"/> + <path class="st107" d="M1035.29,68.73c1.56-3.23,1-7.25-1.28-8.96c-2.38-1.78-5.96-0.28-7.41,3.05 + c-1.4,3.21-0.62,7.08,1.72,8.72C1030.68,73.2,1033.71,72,1035.29,68.73z"/> + <path class="st107" d="M1015.39,54.48c1.52-3.08,0.94-6.96-1.33-8.7c-2.37-1.81-5.87-0.51-7.28,2.64 + c-1.35,3.03-0.56,6.8,1.76,8.49C1010.88,58.63,1013.86,57.59,1015.39,54.48z"/> + <path class="st107" d="M995.51,40.23c1.51-2.85,0.96-6.57-1.25-8.4c-2.28-1.88-5.78-0.9-7.18,1.97 + c-1.33,2.74-0.56,6.46,1.69,8.24C991.07,43.86,994,43.09,995.51,40.23z"/> + <path class="st107" d="M975.91,25.52c1.31-2.66,0.54-6.22-1.73-7.89c-2.24-1.64-5.32-0.96-6.68,1.45 + c-1.45,2.57-0.55,6.39,1.91,8.19C971.75,28.98,974.57,28.23,975.91,25.52z"/> + <path class="st107" d="M956.25,10.92c1.2-2.43,0.32-5.78-1.96-7.42c-2.24-1.61-5.25-1.12-6.47,1.04 + c-1.32,2.32-0.31,5.93,2.15,7.72C952.3,13.97,955.03,13.4,956.25,10.92z"/> + <path class="st107" d="M920.05-9.43c-2.35-1.88-5-1.82-5.96,0.12c-0.96,1.95,0.13,5,2.48,6.9c2.15,1.74,4.68,1.71,5.72-0.08 + C923.39-4.37,922.36-7.59,920.05-9.43z"/> + <path class="st107" d="M897.39-19.1c2.24,2.01,4.91,2.27,5.86,0.56c0.88-1.59-0.09-4.38-2.17-6.2 + c-2.32-2.02-4.91-2.38-5.92-0.84C894.13-24.02,895.12-21.13,897.39-19.1z"/> + <path class="st107" d="M881.58-40.78c-2.34-1.93-4.79-2.32-5.54-0.86c-0.75,1.46,0.49,4.19,2.82,6.15 + c2.13,1.8,4.49,2.16,5.33,0.82C885.08-36.07,883.87-38.89,881.58-40.78z"/> + <path class="st107" d="M862.56-56.8c-2.32-1.99-4.7-2.64-5.39-1.44c-0.7,1.2,0.57,3.8,2.87,5.82c2.11,1.85,4.4,2.45,5.2,1.36 + C866.07-52.19,864.82-54.86,862.56-56.8z"/> + <path class="st107" d="M1248.17,208.01c-2.66-1.42-5.68-0.54-6.73,1.94c-0.98,2.32,0.15,5.14,2.61,6.49 + c2.6,1.44,5.78,0.7,6.9-1.61C1252.07,212.52,1250.82,209.43,1248.17,208.01z"/> + <path class="st107" d="M1226.76,195.37c-2.63-1.54-5.69-0.67-6.88,1.95c-1.2,2.62,0,5.75,2.7,7.12c2.47,1.25,5.39,0.46,6.6-1.8 + C1230.45,200.23,1229.34,196.88,1226.76,195.37z"/> + <path class="st107" d="M1205.34,182.27c-2.62-1.54-5.72-0.52-6.94,2.25c-1.23,2.78-0.05,6.01,2.65,7.39 + c2.47,1.26,5.41,0.36,6.64-2.07C1209,187.27,1207.93,183.8,1205.34,182.27z"/> + <path class="st107" d="M938.83,5.56c-2.26-1.46-4.78-0.94-5.68,1.17c-0.97,2.27,0.15,5.46,2.56,7.27 + c2.33,1.74,5.17,1.17,5.99-1.21C942.56,10.31,941.3,7.16,938.83,5.56z"/> + <path class="st107" d="M958.92,21.33c-2.35-1.93-5.18-1.54-6.42,0.84c-1.25,2.39-0.38,5.82,1.94,7.72 + c2.13,1.75,4.84,1.44,6.16-0.74C961.97,26.91,961.18,23.19,958.92,21.33z"/> + <path class="st107" d="M978.44,36.5c-2.35-1.96-5.25-1.43-6.63,1.16c-1.37,2.59-0.6,6.19,1.71,8.1 + c2.13,1.76,4.9,1.33,6.35-1.02C981.36,42.3,980.69,38.38,978.44,36.5z"/> + <path class="st107" d="M997.74,51.3c-2.4-1.79-5.38-0.87-6.7,2.02c-1.32,2.9-0.45,6.55,1.98,8.29c2.21,1.6,5.04,0.8,6.41-1.85 + C1000.86,56.98,1000.09,53.05,997.74,51.3z"/> + <path class="st107" d="M1017.32,66.06c-2.43-1.72-5.48-0.58-6.83,2.5c-1.35,3.09-0.46,6.8,2,8.46 + c2.26,1.52,5.14,0.53,6.52-2.29C1020.49,71.75,1019.72,67.77,1017.32,66.06z"/> + <path class="st107" d="M1037.02,80.58c-2.46-1.63-5.57-0.28-6.93,2.95c-1.26,3.02-0.52,6.57,1.69,8.25 + c2.34,1.77,5.56,0.67,7.02-2.46C1040.26,86.18,1039.47,82.2,1037.02,80.58z"/> + <path class="st107" d="M1051.58,106.18c2.36,1.76,5.6,0.66,7.13-2.5c1.43-2.93,0.87-6.8-1.27-8.52 + c-2.38-1.92-5.54-0.92-7.19,2.19C1048.6,100.5,1049.2,104.4,1051.58,106.18z"/> + <path class="st107" d="M1071.68,119.92c2.38,1.74,5.8,0.28,7.41-2.88c1.48-2.9,0.75-6.3-1.37-8c-2.39-1.92-5.57-0.95-7.28,2.14 + C1068.72,114.27,1069.29,118.17,1071.68,119.92z"/> + <path class="st107" d="M1098.85,119.37c-2.66-1.27-5.98,0.45-7.4,3.72c-1.43,3.28-0.37,6.65,2.36,7.77 + c2.5,1.02,5.6-0.41,7.03-3.35C1102.37,124.39,1101.48,120.62,1098.85,119.37z"/> + <path class="st107" d="M1120.57,130.97c-2.58-1.54-5.86-0.17-7.41,2.99c-1.55,3.16-0.66,6.71,1.96,8.06 + c2.4,1.24,5.51,0.1,7.07-2.69C1123.81,136.45,1123.06,132.46,1120.57,130.97z"/> + <path class="st107" d="M1141.66,143.13c-2.61-1.47-5.85-0.06-7.23,3.07c-1.39,3.15-0.33,6.58,2.36,7.89 + c2.46,1.2,5.5,0,6.89-2.78C1145.15,148.36,1144.24,144.58,1141.66,143.13z"/> + <path class="st107" d="M1162.85,155.93c-2.61-1.5-5.8-0.2-7.12,2.84c-1.32,3.05-0.21,6.44,2.49,7.77 + c2.46,1.22,5.47,0.1,6.79-2.58C1166.41,161.1,1165.44,157.42,1162.85,155.93z"/> + <path class="st107" d="M1184.33,169.21c-2.57-1.69-5.71-0.74-7.14,2.1c-1.43,2.84-0.46,6.28,2.14,7.78 + c2.39,1.37,5.4,0.55,6.85-1.91C1187.67,174.62,1186.8,170.84,1184.33,169.21z"/> + <path class="st107" d="M871.18-37.25c0.74-1.3-0.3-3.9-2.32-5.82c-2.13-2.03-4.64-2.65-5.4-1.32 + c-0.71,1.26,0.28,3.82,2.29,5.83C867.83-36.47,870.39-35.86,871.18-37.25z"/> + <path class="st107" d="M889.77-19.99c0.82-1.5-0.15-4.27-2.17-6.17c-2.13-2.01-4.73-2.43-5.58-0.88 + c-0.79,1.46,0.14,4.15,2.14,6.16C886.25-18.8,888.89-18.38,889.77-19.99z"/> + <path class="st107" d="M908.37-2.83c1.02-1.8-0.02-5.02-2.23-6.87c-2.09-1.75-4.53-1.87-5.45-0.26 + c-0.99,1.73,0.04,4.9,2.23,6.85C904.96-1.28,907.42-1.16,908.37-2.83z"/> + <path class="st107" d="M919.34,7.11c-1.03,2.01,0,5.37,2.22,7.22c2.08,1.74,4.59,1.59,5.58-0.34c1.06-2.06-0.01-5.53-2.23-7.26 + C922.76,5.07,920.3,5.24,919.34,7.11z"/> + <path class="st107" d="M1225.65,213.84c-1.2,2.42,0.03,5.52,2.66,6.71c2.46,1.11,5.36,0.26,6.46-1.91 + c1.17-2.32-0.1-5.56-2.66-6.78C1229.61,210.69,1226.77,211.57,1225.65,213.84z"/> + <path class="st107" d="M1212.88,206.73c1.26-2.44,0.13-5.82-2.42-7.12c-2.42-1.24-5.35-0.32-6.55,2.03 + c-1.29,2.53-0.16,5.76,2.43,7.04C1208.76,209.87,1211.71,209,1212.88,206.73z"/> + <path class="st107" d="M945.9,30.79c1.18-2.27,0.24-5.88-1.99-7.63c-2.13-1.67-4.72-1.34-5.79,0.71 + c-1.15,2.21-0.23,5.71,2,7.58C942.2,33.19,944.8,32.9,945.9,30.79z"/> + <path class="st107" d="M957.03,40.38c-1.3,2.41-0.5,6.01,1.72,7.91c2.07,1.76,4.76,1.38,5.99-0.89 + c1.32-2.44,0.53-6.18-1.71-7.99C960.92,37.71,958.23,38.15,957.03,40.38z"/> + <path class="st107" d="M976.02,56.7c-1.39,2.6-0.66,6.31,1.59,8.19c2.08,1.73,4.85,1.19,6.15-1.24 + c1.4-2.62,0.68-6.49-1.57-8.28C980.07,53.68,977.3,54.3,976.02,56.7z"/> + <path class="st107" d="M995.19,72.66c-1.48,2.77-0.82,6.53,1.45,8.39c2.09,1.71,4.93,1.06,6.31-1.5 + c1.49-2.77,0.84-6.71-1.43-8.5C999.39,69.38,996.55,70.12,995.19,72.66z"/> + <path class="st107" d="M1014.43,88.42c-1.44,2.91-0.65,6.79,1.67,8.43c2.17,1.54,5.04,0.62,6.39-2.09 + c1.44-2.91,0.68-6.97-1.64-8.55C1018.64,84.71,1015.76,85.72,1014.43,88.42z"/> + <path class="st107" d="M1033.96,103.62c-1.32,2.86-0.66,6.35,1.49,8.04c2.24,1.76,5.43,0.72,6.84-2.28 + c1.31-2.8,0.67-6.5-1.46-8.18C1038.56,99.42,1035.38,100.58,1033.96,103.62z"/> + <path class="st107" d="M1054.03,117.68c-1.54,3-0.8,6.74,1.6,8.28c2.22,1.43,5.19,0.43,6.6-2.29c1.52-2.93,0.81-6.89-1.56-8.43 + C1058.43,113.79,1055.45,114.91,1054.03,117.68z"/> + <path class="st107" d="M1074.57,130.66c-1.53,3-0.6,6.36,1.98,7.48c2.4,1.04,5.49-0.25,6.9-2.99c1.52-2.94,0.65-6.6-1.91-7.72 + C1079.13,126.38,1075.98,127.88,1074.57,130.66z"/> + <path class="st107" d="M1105.25,145.75c1.28-2.77,0.45-6.16-1.88-7.45c-2.49-1.38-5.83,0.15-7.22,3.19 + c-1.3,2.84-0.44,5.97,1.93,7.24C1100.54,150.05,1103.87,148.72,1105.25,145.75z"/> + <path class="st107" d="M1126.82,157.26c1.22-2.74,0.32-6.13-2.02-7.42c-2.52-1.39-5.78,0.08-7.12,3.09 + c-1.25,2.81-0.32,5.95,2.06,7.23C1122.25,161.5,1125.51,160.21,1126.82,157.26z"/> + <path class="st107" d="M1139.22,164.74c-1.27,2.72-0.4,5.87,1.95,7.25c2.45,1.44,5.74,0.31,7.07-2.51 + c1.24-2.63,0.38-5.99-1.92-7.41C1143.86,160.55,1140.57,161.82,1139.22,164.74z"/> + <path class="st107" d="M1169.74,181.84c1.19-2.54,0.29-5.84-2.02-7.27c-2.47-1.53-5.71-0.36-7.02,2.46 + c-1.22,2.64-0.32,5.74,2.04,7.13C1165.19,185.62,1168.46,184.56,1169.74,181.84z"/> + <path class="st107" d="M1191.37,194.09c1.06-2.47-0.01-5.68-2.37-6.99c-2.56-1.41-5.67-0.24-6.86,2.53 + c-1.09,2.55-0.02,5.6,2.38,6.87C1187.08,197.85,1190.21,196.77,1191.37,194.09z"/> + <path class="st107" d="M853.45-42.04c2.03,2.08,4.23,2.76,5.03,1.57c0.79-1.18-0.19-3.76-2.18-5.8 + c-2.11-2.16-4.62-2.98-5.3-1.71C850.36-46.77,851.45-44.1,853.45-42.04z"/> + <path class="st107" d="M871.49-23.56c2.02,2.1,4.29,2.68,5.19,1.35c0.89-1.32,0-4.05-1.98-6.09c-2.1-2.17-4.69-2.86-5.47-1.45 + C868.48-28.41,869.49-25.64,871.49-23.56z"/> + <path class="st107" d="M895.02-4.3c0.85-1.62-0.11-4.51-2.14-6.47c-2-1.93-4.44-2.37-5.35-0.96c-0.97,1.51,0.09,4.68,2.29,6.81 + C891.86-2.92,894.16-2.65,895.02-4.3z"/> + <path class="st107" d="M913.33,13.62c0.92-1.81,0.03-4.85-2.02-6.8c-2.01-1.91-4.52-2.17-5.5-0.58 + c-1.05,1.71-0.05,5.02,2.16,7.13C910.03,15.35,912.39,15.46,913.33,13.62z"/> + <path class="st107" d="M1234.19,235.41c2.5,1.22,5.34,0.58,6.48-1.47c1.13-2.03,0.1-4.75-2.31-6.07 + c-2.54-1.4-5.81-0.64-6.85,1.57C1230.52,231.55,1231.71,234.2,1234.19,235.41z"/> + <path class="st107" d="M1212.08,224.24c2.48,1.25,5.32,0.56,6.48-1.6c1.14-2.14,0.14-4.98-2.26-6.34 + c-2.53-1.43-5.82-0.58-6.86,1.73C1208.43,220.26,1209.62,223,1212.08,224.24z"/> + <path class="st107" d="M931.64,31.51c1.09-1.92,0.36-5.11-1.65-7.11c-2.12-2.11-4.94-2.18-5.92-0.16 + c-0.94,1.93-0.06,5.09,1.97,7.09C928.09,33.36,930.53,33.45,931.64,31.51z"/> + <path class="st107" d="M944.49,49.31c2.08,1.93,4.58,1.76,5.7-0.43c1.1-2.15,0.35-5.47-1.7-7.39 + c-2.15-2.02-5.08-1.78-6.04,0.47C941.52,44.15,942.42,47.39,944.49,49.31z"/> + <path class="st107" d="M962.73,66.56c2.06,2.04,4.64,1.96,5.96-0.23c1.39-2.32,0.68-6.04-1.56-8.01 + c-2.06-1.81-4.79-1.49-5.95,0.67C960.01,61.16,960.72,64.57,962.73,66.56z"/> + <path class="st107" d="M981.45,83.6c2.09,1.98,4.73,1.76,6.1-0.56c1.45-2.46,0.77-6.27-1.5-8.18c-2.08-1.76-4.88-1.27-6.1,1.02 + C978.72,78.19,979.41,81.67,981.45,83.6z"/> + <path class="st107" d="M1000.43,100.02c2.12,1.91,4.81,1.58,6.23-0.84c1.5-2.55,0.84-6.4-1.46-8.26 + c-2.11-1.71-4.97-1.08-6.24,1.32C997.69,94.64,998.36,98.15,1000.43,100.02z"/> + <path class="st107" d="M1020.13,115.94c2.22,1.61,4.95,0.84,6.2-1.8c1.24-2.6,0.51-6.1-1.66-7.78 + c-2.28-1.76-5.48-0.77-6.6,1.98C1016.99,111.02,1017.91,114.34,1020.13,115.94z"/> + <path class="st107" d="M1039.68,130.42c2.24,1.62,5.02,0.98,6.39-1.54c1.36-2.5,0.76-5.98-1.37-7.69 + c-2.26-1.82-5.49-0.96-6.79,1.75C1036.67,125.5,1037.47,128.82,1039.68,130.42z"/> + <path class="st107" d="M1059.88,143.81c2.29,1.55,5.12,0.88,6.56-1.58c1.52-2.6,0.68-6.04-1.76-7.58 + c-2.24-1.42-5.23-0.49-6.53,1.96C1056.85,139.07,1057.65,142.3,1059.88,143.81z"/> + <path class="st107" d="M1081.44,154.59c2.41,1.29,5.32,0.48,6.75-1.98c1.51-2.61,0.63-6.04-1.96-7.27 + c-2.38-1.14-5.5,0.08-6.78,2.54C1078.16,150.36,1079.08,153.33,1081.44,154.59z"/> + <path class="st107" d="M1110.07,163.23c1.16-2.56,0.18-5.67-2.25-6.88c-2.38-1.19-5.48-0.03-6.73,2.43 + c-1.35,2.66-0.21,5.8,2.47,7.02C1106.03,166.91,1108.9,165.83,1110.07,163.23z"/> + <path class="st107" d="M1124.95,177.17c2.43,1.27,5.32,0.4,6.6-2.08c1.27-2.46,0.41-5.63-1.94-7 + c-2.48-1.45-5.87-0.27-7.03,2.35C1121.47,172.96,1122.54,175.91,1124.95,177.17z"/> + <path class="st107" d="M1146.46,188.87c2.42,1.36,5.3,0.64,6.63-1.73c1.31-2.35,0.51-5.5-1.8-6.97 + c-2.45-1.56-5.8-0.59-7.04,1.96C1143.07,184.55,1144.07,187.53,1146.46,188.87z"/> + <path class="st107" d="M1168.07,200.7c2.43,1.41,5.3,0.8,6.64-1.46c1.42-2.39,0.43-5.71-2.16-7.11 + c-2.38-1.29-5.42-0.39-6.62,1.9C1164.72,196.35,1165.7,199.32,1168.07,200.7z"/> + <path class="st107" d="M1190.11,212.66c2.46,1.28,5.32,0.56,6.51-1.69c1.18-2.23,0.22-5.19-2.15-6.58 + c-2.51-1.47-5.82-0.55-6.9,1.86C1186.52,208.55,1187.66,211.38,1190.11,212.66z"/> + <path class="st107" d="M1186.28,229.79c0.92-1.44,0-4.51-2.48-5.71c-2.25-1.09-5.07-0.48-6.12,1.3c-0.9,1.4,0.5,3.59,2.97,4.76 + C1183.02,231.26,1185.42,231.14,1186.28,229.79z"/> + <path class="st107" d="M1164.19,218.63c1.18-2.04,0.14-4.82-2.31-6.05c-2.23-1.11-5.07-0.47-6.13,1.34 + c-1.16,1.97,0.3,4.03,2.76,5.22C1160.86,220.27,1163.09,220.53,1164.19,218.63z"/> + <path class="st107" d="M1142.36,207.05c1.18-2.06,0.15-4.88-2.3-6.1c-2.22-1.11-5.05-0.43-6.11,1.39 + c-1.15,1.99,0.13,4.45,2.57,5.65C1138.87,209.14,1141.26,208.98,1142.36,207.05z"/> + <path class="st107" d="M1120.68,195.4c1.06-1.95,0.23-4.52-1.96-5.85c-2.24-1.36-5.4-0.67-6.48,1.32 + c-1.1,2.03,0.1,4.72,2.54,5.92C1117.1,197.91,1119.61,197.37,1120.68,195.4z"/> + <path class="st107" d="M1098.99,184.08c1.2-2.04,0.23-4.86-2.18-6.07c-2.19-1.1-5.02-0.41-6.11,1.39 + c-1.18,1.96-0.06,4.65,2.34,5.88C1095.33,186.44,1097.87,185.98,1098.99,184.08z"/> + <path class="st107" d="M1077.34,173.05c1.25-1.97,0.36-4.75-2.02-5.99c-2.12-1.11-5.02-0.46-6.16,1.27 + c-1.23,1.88-0.17,4.51,2.19,5.75C1073.62,175.27,1076.18,174.89,1077.34,173.05z"/> + <path class="st107" d="M1055.88,162.13c1.02-1.87,0.21-4.4-1.91-5.8c-2.16-1.43-5.21-0.85-6.27,1.11 + c-1.07,2,0.08,4.71,2.46,5.92C1052.42,164.51,1054.85,164.02,1055.88,162.13z"/> + <path class="st107" d="M1035.1,149.77c1.19-2.1,0.33-5.16-1.93-6.64c-2.06-1.34-4.76-0.83-5.84,1.06 + c-1.18,2.05-0.2,5.08,2.06,6.53C1031.54,152.11,1033.99,151.73,1035.1,149.77z"/> + <path class="st107" d="M1015.21,135.41c1.02-2.07,0.27-5.06-1.72-6.68c-2.07-1.69-5.01-1.19-6.04,0.98 + c-0.98,2.07-0.15,4.99,1.84,6.59C1011.51,138.06,1014.08,137.71,1015.21,135.41z"/> + <path class="st107" d="M995.8,119.89c1.04-2.08,0.35-5.17-1.57-6.93c-2-1.83-4.9-1.47-5.95,0.68c-1,2.06-0.23,5.1,1.69,6.85 + C992.12,122.43,994.64,122.2,995.8,119.89z"/> + <path class="st107" d="M977.05,102.93c0.9-2.15,0.03-5.32-1.94-6.99c-2.1-1.78-4.81-1.32-5.68,0.93 + c-0.84,2.17,0.06,5.22,2.01,6.94C973.57,105.68,976.05,105.31,977.05,102.93z"/> + <path class="st107" d="M958.31,85.79c1.18-2.08,0.45-5.47-1.6-7.4c-1.87-1.76-4.38-1.7-5.42,0.1c-1.14,1.96-0.34,5.4,1.7,7.37 + C954.93,87.75,957.21,87.73,958.31,85.79z"/> + <path class="st107" d="M940.21,67.32c0.98-1.89,0.32-4.97-1.5-6.96c-1.9-2.06-4.61-2.18-5.59-0.26 + c-0.93,1.83-0.21,4.94,1.6,6.94C936.73,69.28,939.12,69.42,940.21,67.32z"/> + <path class="st107" d="M922.25,48.49c0.93-1.78,0.24-4.8-1.57-6.82c-1.88-2.1-4.53-2.36-5.46-0.56 + c-0.88,1.72-0.14,4.77,1.65,6.82C918.88,50.22,921.22,50.47,922.25,48.49z"/> + <path class="st107" d="M1208.64,240.46c0.8-1.35-0.16-3.72-2.41-4.98c-2.33-1.3-5.52-0.56-6.33,0.83 + c-0.82,1.41,0.66,3.54,3.18,4.65C1205.47,242.01,1207.84,241.82,1208.64,240.46z"/> + <path class="st107" d="M1231.16,250.8c0.78-1.34-0.38-3.33-2.65-4.51c-2.35-1.22-5.41-0.82-6.19,0.56 + c-0.8,1.41,0.72,3.5,3.26,4.56C1227.99,252.4,1230.36,252.17,1231.16,250.8z"/> + <path class="st107" d="M1253.78,260.78c0.93-1.43-0.41-3.52-2.96-4.55c-2.32-0.94-5.02-0.63-5.85,0.62 + c-0.9,1.37,0.54,3.46,3.07,4.5C1250.46,262.34,1252.92,262.12,1253.78,260.78z"/> + <path class="st107" d="M833.64-48.47c0.7-1.21-0.21-3.67-2.05-5.61c-1.92-2.01-4.36-2.79-5.05-1.58 + c-0.66,1.16,0.28,3.73,2.1,5.7C830.67-47.77,832.86-47.14,833.64-48.47z"/> + <path class="st107" d="M851.33-29.01c0.88-1.33-0.05-4.17-2.04-6.28c-1.81-1.92-4-2.62-4.78-1.5 + c-0.85,1.22,0.13,4.23,2.09,6.37C848.47-28.36,850.51-27.77,851.33-29.01z"/> + <path class="st107" d="M869.09-9.63c0.77-1.42-0.06-4.16-1.87-6.19c-1.88-2.11-4.35-2.77-5.1-1.33 + c-0.72,1.38,0.14,4.2,1.93,6.26C866.03-8.58,868.23-8.05,869.09-9.63z"/> + <path class="st107" d="M886.66,10.04c0.99-1.58,0.15-4.64-1.84-6.74c-1.81-1.91-4.09-2.41-4.96-1.07 + c-0.94,1.45-0.05,4.64,1.9,6.79C883.64,11.08,885.74,11.52,886.66,10.04z"/> + <path class="st107" d="M904.4,29.4c1.01-1.75,0.17-4.93-1.84-6.98c-1.83-1.86-4.15-2.18-5.03-0.69 + c-0.96,1.63-0.07,4.92,1.91,7.02C901.32,30.77,903.45,31.04,904.4,29.4z"/> + <path class="st107" d="M917.86,31.01c1.05-1.78,0.22-4.97-1.84-7.04c-1.96-1.97-4.15-2.25-5.19-0.67 + c-1.11,1.67-0.42,4.83,1.5,7.01C914.21,32.43,916.82,32.77,917.86,31.01z"/> + <path class="st107" d="M934.07,41.96c-2.13-1.96-4.5-1.81-5.42,0.34c-0.83,1.93,0,5.01,1.85,6.91 + c1.96,2.01,4.61,2.04,5.59,0.05C937.08,47.22,936.17,43.9,934.07,41.96z"/> + <path class="st107" d="M954.23,67.5c1.2-2.05,0.49-5.45-1.59-7.47c-1.98-1.93-4.29-1.97-5.48-0.12 + c-1.26,1.96-0.7,5.3,1.25,7.45C950.3,69.44,953.05,69.53,954.23,67.5z"/> + <path class="st107" d="M966.95,85.35c1.98,1.94,4.77,1.74,5.89-0.47c1.07-2.1,0.45-5.31-1.43-7.23 + c-2.08-2.13-4.68-2.05-5.92,0.14C964.26,79.94,964.93,83.37,966.95,85.35z"/> + <path class="st107" d="M991.66,101.72c1.17-2.35,0.36-5.8-1.82-7.6c-2.05-1.69-4.48-1.32-5.67,0.82 + c-1.26,2.27-0.58,5.7,1.48,7.59C987.67,104.38,990.51,104.02,991.66,101.72z"/> + <path class="st107" d="M1010.92,117.57c1.1-2.46,0.16-5.85-2.1-7.45c-2.27-1.61-4.87-0.79-5.92,1.83 + c-0.93,2.33-0.03,5.47,1.97,7.01C1007.02,120.6,1009.85,119.98,1010.92,117.57z"/> + <path class="st107" d="M1028.57,125.47c-2.3-1.64-4.96-0.88-6.11,1.67c-1.03,2.28-0.24,5.31,1.76,6.86 + c2.11,1.64,5.05,1.09,6.25-1.23C1031.68,130.4,1030.84,127.08,1028.57,125.47z"/> + <path class="st107" d="M1048.82,139.67c-2.31-1.61-5.06-0.92-6.29,1.49c-1.2,2.36-0.26,5.47,2.02,6.84 + c2.12,1.27,4.8,0.7,6.01-1.34C1051.86,144.45,1051.09,141.25,1048.82,139.67z"/> + <path class="st107" d="M1069.8,151.73c-2.46-1.27-5.35-0.33-6.57,1.99c-1.2,2.28-0.13,5.02,2.27,6.12 + c2.22,1.02,5,0.31,6.24-1.71C1073.08,155.96,1072.22,152.98,1069.8,151.73z"/> + <path class="st107" d="M1093.45,168.83c1.28-2.23,0.37-5.24-2.07-6.51c-2.32-1.21-4.99-0.47-6.29,1.63 + c-1.38,2.24-0.58,5.08,1.73,6.44C1089.07,171.73,1092.18,171.05,1093.45,168.83z"/> + <path class="st107" d="M1112.8,173.44c-2.51-1.23-5.32-0.19-6.4,2.25c-0.97,2.19,0.05,4.83,2.26,6.02 + c2.32,1.26,5.42,0.46,6.54-1.78C1116.35,177.64,1115.29,174.65,1112.8,173.44z"/> + <path class="st107" d="M1136.86,191.54c1.14-2.26,0.06-5.24-2.42-6.49c-2.34-1.18-5-0.4-6.19,1.72 + c-1.26,2.25-0.3,5.15,2.07,6.46C1132.65,194.51,1135.74,193.75,1136.86,191.54z"/> + <path class="st107" d="M1156.27,196.94c-2.51-1.37-5.31-0.56-6.46,1.8c-1.04,2.11-0.11,4.76,2.08,6.07 + c2.29,1.37,5.4,0.75,6.61-1.4C1159.73,201.25,1158.73,198.28,1156.27,196.94z"/> + <path class="st107" d="M1180.32,215.14c1.23-2.1,0.24-5-2.22-6.35c-2.35-1.29-4.99-0.74-6.25,1.25 + c-1.34,2.11-0.5,4.96,1.84,6.37C1175.97,217.78,1179.1,217.21,1180.32,215.14z"/> + <path class="st107" d="M1202.31,226.62c1.22-2.03,0.18-4.85-2.29-6.18c-2.36-1.27-5-0.76-6.25,1.17 + c-1.33,2.05-0.46,4.83,1.9,6.22C1197.98,229.18,1201.11,228.63,1202.31,226.62z"/> + <path class="st107" d="M1218.21,239.1c2.45,1.15,5.48,0.39,6.45-1.64c0.98-2.06-0.31-4.73-2.88-5.86 + c-2.4-1.06-5-0.37-6.07,1.59C1214.58,235.24,1215.73,237.94,1218.21,239.1z"/> + <path class="st107" d="M1244.26,242.56c-2.6-1.18-5.34-0.45-6.34,1.67c-0.89,1.89,0.22,4.29,2.5,5.4 + c2.41,1.17,5.51,0.52,6.56-1.4C1248.04,246.29,1246.82,243.72,1244.26,242.56z"/> + <path class="st107" d="M841.19-45.92c1.96,2.07,4.29,2.75,4.94,1.49c0.67-1.29-0.51-4.02-2.58-6.07 + c-1.94-1.92-3.91-2.56-4.62-1.46C838.19-50.8,839.22-48.01,841.19-45.92z"/> + <path class="st107" d="M863.94-25.32c0.89-1.26-0.06-4.06-2.09-6.19c-1.93-2.03-3.99-2.74-4.87-1.66 + c-0.94,1.15-0.15,3.92,1.76,6.14C860.6-24.87,863.06-24.07,863.94-25.32z"/> + <path class="st107" d="M881.86-6.41c0.95-1.41,0.06-4.34-1.97-6.47c-1.93-2.03-4.03-2.62-4.97-1.39 + c-1,1.31-0.27,4.19,1.64,6.42C878.41-5.69,880.92-5.01,881.86-6.41z"/> + <path class="st107" d="M898.03,5.73c-2.05-2.18-4.37-2.61-5.31-0.97c-0.93,1.6-0.03,4.73,1.94,6.79 + c1.83,1.91,4.12,2.32,5.1,0.91C900.84,10.95,900.05,7.88,898.03,5.73z"/> + <path class="st107" d="M872.01,0.66c-1.86-2.1-3.96-2.67-4.81-1.29c-0.85,1.37-0.11,4.22,1.67,6.38 + c1.93,2.33,4.31,2.96,5.1,1.35C874.73,5.58,873.86,2.74,872.01,0.66z"/> + <path class="st107" d="M889.49,20.42c-1.86-2.05-4-2.49-4.85-0.99c-0.85,1.5-0.1,4.42,1.7,6.55c1.95,2.31,4.35,2.8,5.14,1.04 + C892.22,25.35,891.36,22.48,889.49,20.42z"/> + <path class="st107" d="M854.5-19.15c-1.86-2.1-3.93-2.76-4.77-1.48c-0.83,1.28-0.08,4.06,1.7,6.21 + c1.93,2.33,4.29,3.03,5.07,1.53C857.23-14.29,856.34-17.07,854.5-19.15z"/> + <path class="st107" d="M836.96-38.84c-1.87-2.12-3.93-2.82-4.77-1.61c-0.83,1.2-0.07,3.88,1.71,6.01 + c1.92,2.31,4.29,3.08,5.07,1.69C839.7-34.05,838.79-36.78,836.96-38.84z"/> + <path class="st107" d="M818.87-57.92c-1.92-1.93-3.97-2.52-4.68-1.32c-0.71,1.2,0.2,3.76,2.07,5.77 + c2.02,2.16,4.35,2.77,4.97,1.34C821.83-53.5,820.8-55.99,818.87-57.92z"/> + <path class="st107" d="M1235.58,257.65c-2.4-1.01-4.85-0.83-5.55,0.37c-0.7,1.19,0.62,2.95,2.99,4.02 + c2.55,1.15,5.27,1.03,5.84-0.31C1239.41,260.45,1238,258.67,1235.58,257.65z"/> + <path class="st107" d="M1213.17,247.46c-2.38-1.09-4.84-1-5.59,0.15c-0.75,1.14,0.52,2.93,2.84,4.06 + c2.51,1.22,5.24,1.22,5.88-0.07C1216.91,250.38,1215.55,248.54,1213.17,247.46z"/> + <path class="st107" d="M1190.93,236.91c-2.37-1.16-4.81-1.15-5.63-0.03c-0.82,1.11,0.38,2.91,2.65,4.09 + c2.46,1.27,5.22,1.37,5.94,0.14C1194.56,239.97,1193.24,238.05,1190.93,236.91z"/> + <path class="st107" d="M1168.5,225.94c-2.35-1.12-4.77-1.01-5.47,0.17c-0.7,1.18,0.6,2.97,2.92,4.13 + c2.5,1.25,5.16,1.26,5.73-0.05C1172.22,228.93,1170.86,227.06,1168.5,225.94z"/> + <path class="st107" d="M1146.36,214.86c-2.34-1.11-4.74-0.96-5.42,0.27c-0.68,1.23,0.64,3.03,2.96,4.19 + c2.5,1.25,5.13,1.22,5.67-0.13C1150.09,217.88,1148.72,215.98,1146.36,214.86z"/> + <path class="st107" d="M1124.36,203.69c-2.33-1.1-4.73-0.87-5.39,0.42c-0.66,1.3,0.65,3.1,2.99,4.26 + c2.49,1.23,5.11,1.15,5.63-0.27C1128.09,206.72,1126.72,204.8,1124.36,203.69z"/> + <path class="st107" d="M1102.67,192.59c-2.31-1.13-4.74-0.9-5.5,0.43c-0.75,1.32,0.5,3.2,2.78,4.36 + c2.46,1.25,5.12,1.17,5.74-0.27C1106.29,195.73,1105,193.73,1102.67,192.59z"/> + <path class="st107" d="M1081.02,181.49c-2.29-1.13-4.76-0.78-5.55,0.63c-0.79,1.4,0.42,3.33,2.69,4.47 + c2.45,1.23,5.13,1.08,5.78-0.45C1084.57,184.69,1083.32,182.63,1081.02,181.49z"/> + <path class="st107" d="M1059.65,170.62c-2.28-1.14-4.8-0.77-5.72,0.71c-0.92,1.48,0.16,3.49,2.38,4.64 + c2.4,1.24,5.15,1.07,5.96-0.5C1063.03,173.98,1061.91,171.74,1059.65,170.62z"/> + <path class="st107" d="M1038.54,159.21c-2.2-1.35-4.66-1.1-5.68,0.53c-0.95,1.47,0.01,3.69,2.13,5.03 + c2.29,1.45,5.02,1.37,5.89-0.23C1041.7,163.03,1040.69,160.53,1038.54,159.21z"/> + <path class="st107" d="M1018.11,145.76c-2.12-1.48-4.56-1.22-5.55,0.53c-0.98,1.75,0.02,4.04,2.09,5.53 + c2.24,1.61,4.82,1.74,5.71-0.16C1021.19,149.86,1020.22,147.24,1018.11,145.76z"/> + <path class="st107" d="M998.51,130.75c-2.05-1.65-4.45-1.5-5.47,0.31c-1.01,1.8-0.17,4.43,1.83,6.09 + c2.16,1.8,4.75,1.9,5.69-0.07C1001.44,135.2,1000.55,132.4,998.51,130.75z"/> + <path class="st107" d="M979.36,114.27c-2.01-1.72-4.35-1.57-5.32,0.3c-0.96,1.86-0.16,4.71,1.81,6.51 + c2.12,1.93,4.72,1.85,5.59-0.22C982.28,118.87,981.38,116,979.36,114.27z"/> + <path class="st107" d="M960.97,96.95c-1.95-1.91-4.25-2-5.29-0.23c-1.03,1.76-0.36,4.72,1.5,6.68c2.01,2.12,4.6,2.29,5.58,0.33 + C963.68,101.86,962.88,98.83,960.97,96.95z"/> + <path class="st107" d="M942.88,78.71c-1.91-2.05-4.14-2.32-5.22-0.66c-1.15,1.77-0.39,4.97,1.67,7.09 + c1.9,1.95,4.2,2.14,5.17,0.39C945.45,83.8,944.73,80.7,942.88,78.71z"/> + <path class="st107" d="M924.88,59.65c-1.89-2.05-4.1-2.36-5.08-0.73c-0.98,1.62-0.32,4.62,1.47,6.72 + c1.94,2.28,4.44,2.67,5.38,0.82C927.52,64.71,926.74,61.67,924.88,59.65z"/> + <path class="st107" d="M906.95,39.97c-1.89-1.96-4.05-2.19-4.87-0.51c-0.83,1.69-0.03,4.6,1.83,6.69 + c1.99,2.23,4.4,2.5,5.14,0.56C909.76,44.85,908.86,41.96,906.95,39.97z"/> + <path class="st107" d="M876.7,17.71c-1.81-2.07-3.91-2.48-4.76-0.92c-0.84,1.54-0.05,4.52,1.7,6.54 + c1.76,2.03,3.93,2.49,4.78,0.96C879.26,22.77,878.46,19.72,876.7,17.71z"/> + <path class="st107" d="M861.02,4.09c0.91-1.36,0.23-4.26-1.5-6.4c-1.71-2.13-3.92-2.77-4.81-1.39 + c-0.91,1.41-0.28,4.24,1.46,6.41C857.87,4.83,860.1,5.46,861.02,4.09z"/> + <path class="st107" d="M842.07-22.5c-1.74-2.09-3.91-2.72-4.78-1.35c-0.88,1.4-0.2,4.19,1.56,6.32 + c1.73,2.09,3.94,2.68,4.83,1.32C844.55-17.55,843.81-20.4,842.07-22.5z"/> + <path class="st107" d="M824.52-42.19c-1.76-2.03-3.96-2.68-4.81-1.38c-0.87,1.32-0.18,4.01,1.59,6.1 + c1.74,2.04,3.98,2.65,4.86,1.36C827.05-37.41,826.29-40.15,824.52-42.19z"/> + <path class="st107" d="M1246.42,272.28c0.68-1.11-0.71-2.94-2.99-3.91c-2.36-1-4.76-0.88-5.44,0.25 + c-0.67,1.11,0.7,2.85,2.98,3.85C1243.26,273.47,1245.74,273.4,1246.42,272.28z"/> + <path class="st107" d="M1221.04,258.26c-2.27-1.07-4.76-1.05-5.47,0c-0.71,1.06,0.57,2.75,2.84,3.83 + c2.26,1.07,4.74,1.13,5.47,0.09C1224.6,261.15,1223.29,259.32,1221.04,258.26z"/> + <path class="st107" d="M1201.48,251.69c0.72-0.99-0.55-2.81-2.79-3.92c-2.25-1.11-4.74-1.15-5.45-0.14 + c-0.72,1.03,0.52,2.68,2.8,3.81C1198.28,252.55,1200.75,252.69,1201.48,251.69z"/> + <path class="st107" d="M1179.23,240.93c0.69-0.98-0.62-2.82-2.85-3.93c-2.25-1.12-4.7-1.16-5.38-0.15 + c-0.68,1.01,0.61,2.69,2.86,3.81C1176.1,241.76,1178.53,241.92,1179.23,240.93z"/> + <path class="st107" d="M1157.06,230.04c0.67-0.98-0.64-2.84-2.86-3.95c-2.25-1.13-4.67-1.16-5.34-0.14 + c-0.67,1.02,0.64,2.7,2.88,3.81C1153.97,230.87,1156.39,231.03,1157.06,230.04z"/> + <path class="st107" d="M1132.11,215.13c-2.26-1.12-4.65-1.12-5.31-0.07c-0.65,1.04,0.68,2.74,2.91,3.83 + c2.23,1.09,4.62,1.23,5.28,0.22C1135.65,218.11,1134.32,216.23,1132.11,215.13z"/> + <path class="st107" d="M1110.14,204.21c-2.25-1.12-4.64-1.06-5.31,0.02c-0.67,1.08,0.66,2.79,2.88,3.86 + c2.22,1.08,4.62,1.18,5.28,0.14C1113.66,207.21,1112.35,205.3,1110.14,204.21z"/> + <path class="st107" d="M1088.41,193.49c-2.18-1.13-4.68-1.08-5.43,0.03c-0.76,1.12,0.42,2.8,2.66,3.91 + c2.19,1.09,4.64,1.21,5.4,0.15C1091.78,196.54,1090.6,194.63,1088.41,193.49z"/> + <path class="st107" d="M1063.73,187.11c2.18,1.06,4.66,1.1,5.44-0.02c0.78-1.11-0.36-3.07-2.54-4.19 + c-2.17-1.11-4.7-0.96-5.48,0.22C1060.34,184.32,1061.5,186.02,1063.73,187.11z"/> + <path class="st107" d="M1039.56,172.6c-0.78,1.26,0.36,3.14,2.53,4.29c2.15,1.14,4.57,1.12,5.35-0.09 + c0.77-1.2-0.37-3.28-2.5-4.43C1042.79,171.21,1040.33,171.35,1039.56,172.6z"/> + <path class="st107" d="M1021.4,165.03c2.13,1.25,4.39,1.27,5.07-0.05c0.67-1.29-0.55-3.57-2.64-4.8 + c-2.17-1.28-4.41-1.17-5.1,0.19C1018.06,161.68,1019.3,163.79,1021.4,165.03z"/> + <path class="st107" d="M1003.97,146.52c-1.98-1.53-4.35-1.66-5.15-0.38c-0.82,1.3,0.15,3.46,2.18,5 + c1.98,1.5,4.31,1.78,5.12,0.54C1006.92,150.44,1005.95,148.04,1003.97,146.52z"/> + <path class="st107" d="M984.37,131.04c-1.99-1.64-4.21-1.78-4.98-0.4c-0.75,1.35,0.28,3.75,2.23,5.34 + c1.95,1.59,4.19,1.88,4.94,0.56C987.31,135.23,986.31,132.64,984.37,131.04z"/> + <path class="st107" d="M967.48,120.25c0.86-1.25,0.06-3.9-1.79-5.74c-1.84-1.83-4.16-2.2-5.02-0.89 + c-0.87,1.33-0.05,3.74,1.83,5.57C964.35,120.98,966.62,121.51,967.48,120.25z"/> + <path class="st107" d="M949.12,102.42c0.72-1.44-0.25-4.34-2.12-6.11c-1.94-1.83-4.05-1.97-4.79-0.46 + c-0.73,1.48,0.28,4.14,2.17,5.9C946.29,103.54,948.39,103.88,949.12,102.42z"/> + <path class="st107" d="M926.16,82.89c1.81,1.93,3.98,2.46,4.8,1.07c0.82-1.38,0.08-4.47-1.7-6.43 + c-1.81-1.99-4.08-2.17-4.92-0.72C923.51,78.26,924.35,80.96,926.16,82.89z"/> + <path class="st107" d="M911.48,57.82c-1.87-1.99-4.04-2.08-4.84-0.51c-0.78,1.53,0.12,4.38,1.92,6.3 + c1.82,1.95,3.93,2.39,4.71,0.88C914.05,63,913.28,59.74,911.48,57.82z"/> + <path class="st107" d="M891.1,43.7c1.82,1.98,3.89,2.44,4.71,0.79c0.81-1.63-0.04-4.75-1.83-6.69 + c-1.86-2.01-3.93-2.28-4.76-0.6C888.4,38.85,889.3,41.75,891.1,43.7z"/> + <path class="st107" d="M883.05,41.21c0.77-1.07,0.13-3.69-1.45-5.72c-1.71-2.2-3.99-3.05-4.84-1.92 + c-0.78,1.03-0.05,3.57,1.56,5.59C880.14,41.44,882.2,42.39,883.05,41.21z"/> + <path class="st107" d="M861.09,19.22c1.83,2.21,3.91,3.02,4.67,1.68c0.69-1.22-0.04-3.93-1.67-5.93 + c-1.76-2.16-4.03-2.83-4.77-1.53C858.62,14.66,859.43,17.2,861.09,19.22z"/> + <path class="st107" d="M843.94-0.67c1.74,1.96,3.63,2.6,4.41,1.38c0.83-1.3,0-4.29-1.83-6.34c-1.69-1.89-3.76-2.41-4.53-1.23 + C841.15-5.59,842.08-2.77,843.94-0.67z"/> + <path class="st107" d="M826.29-20.84c1.86,2.15,3.95,2.79,4.71,1.31c0.7-1.36-0.05-4.09-1.73-6.04 + c-1.8-2.09-4.1-2.58-4.83-1.14C823.76-25.35,824.58-22.82,826.29-20.84z"/> + <path class="st107" d="M811.76-45.16c-1.8-2.06-4.12-2.63-4.93-1.21c-0.76,1.33,0.03,3.91,1.72,5.85 + c1.86,2.13,4.02,2.77,4.85,1.31C814.16-40.53,813.42-43.25,811.76-45.16z"/> + <path class="st107" d="M1254.09,282.52c0.75-0.92-0.32-2.55-2.4-3.59c-2.26-1.13-4.94-1.26-5.76-0.32 + c-0.75,0.86,0.4,2.48,2.47,3.54C1250.76,283.36,1253.26,283.53,1254.09,282.52z"/> + <path class="st107" d="M1231.76,272.18c0.6-0.91-0.64-2.53-2.76-3.56c-2.29-1.11-4.9-1.24-5.53-0.29 + c-0.64,0.96,0.86,2.63,3.27,3.71C1228.95,273.04,1231.15,273.11,1231.76,272.18z"/> + <path class="st107" d="M1209.36,261.69c0.7-0.8-0.41-2.4-2.47-3.49c-2.23-1.19-4.85-1.46-5.62-0.63 + c-0.7,0.75,0.48,2.31,2.55,3.42C1206.16,262.24,1208.59,262.58,1209.36,261.69z"/> + <path class="st107" d="M1182.03,250.28c2.2,1.11,4.36,1.4,5.09,0.63c0.77-0.81-0.52-2.51-2.84-3.65 + c-2.31-1.13-4.81-1.3-5.29-0.4C1178.53,247.72,1179.86,249.19,1182.03,250.28z"/> + <path class="st107" d="M1165.1,239.83c0.46-0.84-0.86-2.41-3-3.46c-2.3-1.14-4.78-1.32-5.24-0.43 + c-0.47,0.9,1.13,2.49,3.52,3.59C1162.57,240.53,1164.63,240.69,1165.1,239.83z"/> + <path class="st107" d="M1137.81,228.33c2.34,1.19,4.66,1.5,5.2,0.61c0.49-0.81-0.8-2.37-2.91-3.44 + c-2.27-1.15-4.78-1.36-5.28-0.51C1134.33,225.79,1135.67,227.24,1137.81,228.33z"/> + <path class="st107" d="M1116.03,217.64c2.19,1.04,4.3,1.3,4.89,0.53c0.63-0.82-0.79-2.54-3.1-3.62c-2.13-1-4.4-1.16-4.99-0.41 + C1112.19,214.93,1113.68,216.52,1116.03,217.64z"/> + <path class="st107" d="M1093.74,206.93c2.33,1.15,4.66,1.42,5.22,0.52c0.51-0.82-0.76-2.4-2.85-3.44 + c-2.25-1.12-4.78-1.27-5.31-0.39C1090.29,204.45,1091.61,205.88,1093.74,206.93z"/> + <path class="st107" d="M1076.99,197.01c0.47-0.89-0.82-2.47-2.95-3.46c-2.28-1.07-4.77-1.09-5.25-0.13 + c-0.49,0.98,1.1,2.51,3.49,3.52C1074.46,197.84,1076.51,197.92,1076.99,197.01z"/> + <path class="st107" d="M1050,186.97c2.19,0.93,4.32,1.03,4.96,0.14c0.68-0.95-0.69-2.71-2.99-3.7 + c-2.12-0.91-4.42-0.88-5.06-0.01C1046.22,184.35,1047.66,185.98,1050,186.97z"/> + <path class="st107" d="M1028.38,175.96c2.22,1.3,4.49,1.56,5.09,0.51c0.54-0.96-0.61-2.72-2.61-3.9 + c-2.15-1.27-4.61-1.44-5.17-0.43C1025.15,173.11,1026.35,174.77,1028.38,175.96z"/> + <path class="st107" d="M1010.41,159.78c-2.06-1.47-4.47-1.82-5.11-0.82c-0.6,0.94,0.51,2.78,2.44,4.15 + c2.13,1.51,4.38,1.94,5.03,0.91C1013.36,163.08,1012.31,161.14,1010.41,159.78z"/> + <path class="st107" d="M990.36,145.14c-2.04-1.57-4.34-1.91-4.85-0.78c-0.48,1.08,0.64,3,2.57,4.5 + c2.09,1.62,4.2,2.05,4.75,0.88C993.34,148.67,992.25,146.6,990.36,145.14z"/> + <path class="st107" d="M971.15,129.22c-1.98-1.71-4.25-2.14-4.77-0.98c-0.5,1.11,0.56,3.15,2.44,4.78 + c2.03,1.77,4.1,2.29,4.68,1.08C974.02,133.02,972.99,130.82,971.15,129.22z"/> + <path class="st107" d="M954.6,117.38c0.67-0.98-0.16-3.29-1.87-5.05c-1.85-1.91-4.17-2.61-4.9-1.57 + c-0.74,1.04,0.36,3.47,2.33,5.3C952.01,117.78,953.92,118.38,954.6,117.38z"/> + <path class="st107" d="M936.3,99.37c0.63-1.07-0.23-3.5-1.93-5.33c-1.84-1.98-4.11-2.65-4.78-1.51 + c-0.68,1.16,0.41,3.66,2.38,5.58C933.77,99.86,935.66,100.45,936.3,99.37z"/> + <path class="st107" d="M918.32,80.55c0.65-1.1-0.17-3.62-1.84-5.53c-1.8-2.05-4.06-2.77-4.76-1.59 + c-0.71,1.19,0.35,3.78,2.28,5.78C915.79,81.04,917.66,81.67,918.32,80.55z"/> + <path class="st107" d="M898.87,55.38c-1.78-2.11-4.03-2.84-4.75-1.64c-0.67,1.13,0.18,3.59,1.85,5.56 + c1.84,2.17,3.92,3.01,4.66,1.77C901.3,59.94,900.52,57.33,898.87,55.38z"/> + <path class="st107" d="M866.71,34.71c1.62,1.84,3.6,2.77,4.25,1.89c0.71-0.95-0.29-3.68-2.16-5.73 + c-1.78-1.95-3.55-2.53-4.13-1.45C864.1,30.47,865.04,32.81,866.71,34.71z"/> + <path class="st107" d="M853.53,16.5c0.62-0.99-0.22-3.51-1.89-5.48c-1.71-2.02-3.61-2.77-4.33-1.81c-0.77,1.04,0.18,3.6,2,5.61 + C850.96,16.65,852.93,17.47,853.53,16.5z"/> + <path class="st107" d="M834.03-9.19c-1.76-1.96-3.62-2.53-4.28-1.43c-0.66,1.09,0.18,3.4,1.86,5.34 + c1.74,2.01,3.93,2.89,4.51,1.68C836.66-4.73,835.74-7.29,834.03-9.19z"/> + <path class="st107" d="M814.17-24.62c1.69,1.76,3.68,2.44,4.31,1.38c0.7-1.17-0.33-3.96-2.26-5.91 + c-1.81-1.82-3.63-2.17-4.2-0.91C811.47-28.85,812.46-26.41,814.17-24.62z"/> + <path class="st107" d="M800.69-42.49c0.67-1.11-0.16-3.65-1.88-5.51c-1.76-1.9-3.75-2.45-4.52-1.35 + c-0.83,1.18,0.12,3.75,1.99,5.63C797.98-42.02,800.03-41.4,800.69-42.49z"/> + <path class="st107" d="M1236.62,278.42c-2.24-1.02-4.37-1.12-4.96-0.25c-0.58,0.86,0.65,2.36,2.77,3.42 + c2.2,1.1,4.8,1.26,5.29,0.3C1240.18,280.98,1238.79,279.41,1236.62,278.42z"/> + <path class="st107" d="M1217.51,271.18c0.47-0.82-0.9-2.37-3.05-3.4c-2.22-1.06-4.35-1.25-4.93-0.47 + c-0.63,0.84,0.86,2.46,3.17,3.53C1214.83,271.82,1217.04,271.99,1217.51,271.18z"/> + <path class="st107" d="M1190.24,259.52c2,1.05,4.38,1.46,5.05,0.83c0.68-0.64-0.49-2.14-2.58-3.26 + c-2.34-1.26-4.7-1.59-5.28-0.8C1186.89,257.02,1188.13,258.42,1190.24,259.52z"/> + <path class="st107" d="M1173.27,249.24c0.59-0.62-0.66-2.11-2.77-3.22c-2.18-1.14-4.37-1.52-5.04-0.92 + c-0.72,0.65,0.62,2.16,2.89,3.31C1170.38,249.45,1172.69,249.86,1173.27,249.24z"/> + <path class="st107" d="M888.56,56.35c0.47-1.04-0.52-3.5-2.23-5.39c-1.9-2.1-3.81-2.67-4.26-1.39c-0.4,1.14,0.74,3.54,2.45,5.3 + C886.27,56.67,888.09,57.37,888.56,56.35z"/> + <path class="st107" d="M904.19,70.94c-1.74-1.98-3.63-2.83-4.32-2.02c-0.75,0.88,0.22,3.27,2.05,5.25 + c1.65,1.78,3.62,2.69,4.22,1.87C906.76,75.22,905.89,72.88,904.19,70.94z"/> + <path class="st107" d="M924.1,94.95c0.48-0.92-0.53-3.22-2.27-5.03c-1.8-1.87-3.63-2.56-4.22-1.67 + c-0.63,0.95,0.49,3.31,2.39,5.16C921.75,95.12,923.63,95.86,924.1,94.95z"/> + <path class="st107" d="M942.27,113.3c0.59-0.76-0.35-2.92-2.1-4.72c-1.8-1.84-3.72-2.63-4.39-1.89 + c-0.73,0.81,0.31,3.02,2.21,4.86C939.68,113.21,941.68,114.05,942.27,113.3z"/> + <path class="st107" d="M960.95,130.53c0.48-0.83-0.6-2.92-2.41-4.56c-1.86-1.69-3.76-2.32-4.34-1.53 + c-0.63,0.86,0.57,3.01,2.53,4.69C958.53,130.67,960.47,131.34,960.95,130.53z"/> + <path class="st107" d="M980,146.79c0.62-0.66-0.37-2.59-2.19-4.17c-1.89-1.64-3.89-2.36-4.59-1.71 + c-0.76,0.71,0.3,2.65,2.29,4.3C977.27,146.68,979.39,147.45,980,146.79z"/> + <path class="st107" d="M999.7,161.59c0.61-0.65-0.43-2.44-2.31-3.89c-1.95-1.5-3.99-2.12-4.69-1.48 + c-0.76,0.69,0.36,2.51,2.42,4.01C996.93,161.57,999.09,162.23,999.7,161.59z"/> + <path class="st107" d="M1020.15,174.71c0.41-0.77-0.87-2.44-2.87-3.67c-2.06-1.26-4.03-1.61-4.56-0.86 + c-0.57,0.8,0.84,2.53,3,3.77C1017.71,175.11,1019.74,175.47,1020.15,174.71z"/> + <path class="st107" d="M1041.21,186.29c0.51-0.69-0.75-2.19-2.8-3.27c-2.1-1.11-4.21-1.41-4.82-0.73 + c-0.66,0.73,0.71,2.28,2.92,3.38C1038.51,186.65,1040.71,186.97,1041.21,186.29z"/> + <path class="st107" d="M1063.22,195.97c0.42-0.69-0.96-2.11-3.09-3.05c-2.19-0.97-4.3-1.11-4.84-0.42 + c-0.58,0.74,0.96,2.13,3.26,3.07C1060.65,196.43,1062.8,196.65,1063.22,195.97z"/> + <path class="st107" d="M1085.28,205.97c0.39-0.67-1.02-2.09-3.15-3.07c-2.2-1.01-4.28-1.21-4.79-0.55 + c-0.54,0.71,1.02,2.11,3.31,3.1C1082.76,206.36,1084.89,206.63,1085.28,205.97z"/> + <path class="st107" d="M1107.26,216.45c0.49-0.61-0.84-2.03-2.95-3.08c-2.17-1.07-4.32-1.38-4.9-0.79 + c-0.63,0.64,0.82,2.06,3.1,3.12C1104.56,216.67,1106.78,217.04,1107.26,216.45z"/> + <path class="st107" d="M1124.57,226.43c2.07,0.99,4.26,1.36,4.71,0.74c0.5-0.68-1.09-2.26-3.46-3.33 + c-2.22-1.01-4.16-1.18-4.51-0.46C1120.97,224.06,1122.47,225.43,1124.57,226.43z"/> + <path class="st107" d="M1148.01,234.8c-2.23-1.06-4.23-1.29-4.67-0.6c-0.43,0.68,0.94,2.04,3.04,3.1 + c2.21,1.11,4.63,1.49,4.96,0.72C1151.67,237.3,1150.18,235.83,1148.01,234.8z"/> + <path class="st107" d="M786.08-51.73c-1.73-1.67-3.79-2.22-4.33-1.24c-0.54,1,0.53,3.22,2.29,4.94c1.8,1.75,3.6,2.39,4.19,1.35 + C788.79-47.67,787.81-50.05,786.08-51.73z"/> + <path class="st107" d="M806.25-27.97c0.52-0.97-0.47-3.39-2.18-5.12c-1.69-1.71-3.72-2.33-4.21-1.39 + c-0.51,0.98,0.57,3.23,2.31,5.01C803.96-27.64,805.71-26.95,806.25-27.97z"/> + <path class="st107" d="M823.97-8.57c0.6-0.85-0.25-3.15-1.93-5.02c-1.63-1.82-3.68-2.67-4.26-1.86 + c-0.6,0.82,0.37,3.06,2.06,4.94C821.55-8.61,823.36-7.71,823.97-8.57z"/> + <path class="st107" d="M841.58,11.11c0.58-0.81-0.28-3.09-1.94-5c-1.62-1.85-3.64-2.76-4.21-2c-0.58,0.78,0.39,3.01,2.07,4.92 + C839.2,10.97,840.99,11.93,841.58,11.11z"/> + <path class="st107" d="M855.29,29.04c1.75,1.9,3.41,2.72,3.89,1.81c0.46-0.88-0.57-3.26-2.24-5.07 + c-1.66-1.8-3.59-2.59-4.01-1.74C852.49,24.93,853.58,27.17,855.29,29.04z"/> + <path class="st107" d="M872.72,48.63c1.72,1.92,3.46,2.88,3.98,2.11c0.51-0.76-0.43-3.02-2.1-4.9 + c-1.63-1.83-3.61-2.78-4.11-2.05C869.99,44.53,871.04,46.74,872.72,48.63z"/> + <path class="st107" d="M1244.82,288.26c-2.04-1.03-4.45-1.27-5.11-0.53c-0.66,0.74,0.58,2.29,2.66,3.38 + c2.12,1.11,4.33,1.36,5.01,0.54C1248.06,290.84,1246.92,289.32,1244.82,288.26z"/> + <path class="st107" d="M1220.59,279.97c2.13,1.1,4.26,1.39,4.82,0.63c0.56-0.75-0.73-2.28-2.82-3.32 + c-2.05-1.02-4.41-1.3-4.93-0.61C1217.14,277.37,1218.5,278.89,1220.59,279.97z"/> + <path class="st107" d="M1198.68,268.55c2.12,1.12,4.22,1.5,4.77,0.82c0.54-0.67-0.73-2.13-2.83-3.2 + c-2.03-1.04-4.37-1.41-4.88-0.8C1195.23,265.99,1196.59,267.45,1198.68,268.55z"/> + <path class="st107" d="M1178.67,254.95c-2.03-1.05-4.34-1.47-4.82-0.92c-0.49,0.55,0.89,1.95,2.97,3.06 + c2.12,1.13,4.19,1.57,4.71,0.96C1182.05,257.44,1180.76,256.03,1178.67,254.95z"/> + <path class="st107" d="M1159.68,246.66c0.36-0.6-1.12-2.04-3.2-3.05c-2.07-1-4.25-1.36-4.56-0.79c-0.32,0.59,1.2,1.94,3.31,3 + C1157.39,246.9,1159.31,247.29,1159.68,246.66z"/> + <path class="st107" d="M1137.76,235.52c0.41-0.53-0.99-1.89-3.07-2.92c-2.05-1.01-4.28-1.44-4.67-0.94 + c-0.39,0.5,1.09,1.8,3.19,2.86C1135.34,235.59,1137.34,236.06,1137.76,235.52z"/> + <path class="st107" d="M1115.84,224.53c0.32-0.54-1.19-1.9-3.28-2.86c-2.07-0.96-4.23-1.32-4.51-0.8 + c-0.29,0.53,1.27,1.78,3.39,2.79C1113.62,224.69,1115.51,225.09,1115.84,224.53z"/> + <path class="st107" d="M1093.77,214.03c0.52-0.45-0.7-1.65-2.8-2.68c-2.02-0.99-4.3-1.44-4.83-1.02 + c-0.53,0.41,0.83,1.59,2.92,2.6C1091.2,213.96,1093.26,214.47,1093.77,214.03z"/> + <path class="st107" d="M1066.99,202.89c2.15,0.98,4.21,1.45,4.73,0.99c0.51-0.46-0.7-1.64-2.81-2.63 + c-2.03-0.95-4.32-1.33-4.85-0.9C1063.53,200.8,1064.9,201.94,1066.99,202.89z"/> + <path class="st107" d="M1045.04,193.56c2.17,0.89,4.18,1.23,4.6,0.69c0.41-0.53-0.98-1.76-3.09-2.63 + c-2.06-0.85-4.29-1.2-4.68-0.7C1041.47,191.43,1042.92,192.69,1045.04,193.56z"/> + <path class="st107" d="M1028.04,183.88c0.4-0.55-0.94-1.98-2.93-3.08c-1.96-1.09-4.11-1.56-4.49-1.04 + c-0.39,0.54,1.02,1.93,3.03,3.05C1025.7,183.95,1027.63,184.44,1028.04,183.88z"/> + <path class="st107" d="M1002.78,170.07c1.97,1.35,3.91,2.04,4.44,1.54c0.53-0.5-0.56-1.97-2.49-3.31 + c-1.86-1.29-4-1.98-4.54-1.51C999.66,167.25,1000.86,168.76,1002.78,170.07z"/> + <path class="st107" d="M984.57,153.88c-1.83-1.38-3.89-2.09-4.29-1.52c-0.41,0.58,0.88,2.26,2.76,3.68 + c1.92,1.45,3.75,2.15,4.18,1.55C987.63,157,986.43,155.28,984.57,153.88z"/> + <path class="st107" d="M965.38,138.34c-1.75-1.53-3.8-2.4-4.31-1.87c-0.51,0.53,0.63,2.29,2.44,3.87 + c1.85,1.6,3.7,2.47,4.21,1.91C968.22,141.69,967.19,139.93,965.38,138.34z"/> + <path class="st107" d="M944.76,123.67c1.82,1.69,3.6,2.56,4.06,1.92c0.46-0.63-0.62-2.58-2.39-4.22 + c-1.73-1.61-3.74-2.49-4.18-1.89C941.81,120.1,942.98,122.02,944.76,123.67z"/> + <path class="st107" d="M930.36,107.91c0.43-0.69-0.65-2.78-2.38-4.48c-1.72-1.69-3.66-2.55-4.07-1.88 + c-0.42,0.68,0.73,2.7,2.49,4.43C928.18,107.74,929.91,108.62,930.36,107.91z"/> + <path class="st107" d="M912.15,89.5c0.58-0.6-0.26-2.59-1.96-4.47c-1.63-1.81-3.62-2.86-4.22-2.3 + c-0.59,0.56,0.37,2.58,2.06,4.42C909.78,89.04,911.57,90.1,912.15,89.5z"/> + <path class="st107" d="M894.36,70.31c0.5-0.72-0.46-2.93-2.14-4.77c-1.64-1.81-3.62-2.77-4.1-2.08 + c-0.49,0.7,0.57,2.86,2.26,4.72C892.11,70.08,893.86,71.05,894.36,70.31z"/> + <path class="st107" d="M868.23,53.79c1.53,1.69,3.22,2.97,3.67,2.72c0.5-0.28-0.54-2.21-2.26-4.08 + c-1.58-1.73-3.19-2.78-3.57-2.41C865.7,50.39,866.69,52.08,868.23,53.79z"/> + <path class="st107" d="M887.63,72c-1.55-1.72-3.25-2.92-3.71-2.68c-0.47,0.25,0.36,1.7,1.92,3.46c1.61,1.8,3.51,3.26,3.92,2.93 + C890.15,75.41,889.21,73.74,887.63,72z"/> + <path class="st107" d="M904.21,92.01c1.59,1.63,3.21,2.79,3.57,2.51c0.39-0.31-0.83-2.23-2.57-3.97 + c-1.64-1.64-3.15-2.58-3.43-2.19C901.5,88.74,902.62,90.4,904.21,92.01z"/> + <path class="st107" d="M926.08,112.68c0.26-0.35-0.87-1.99-2.5-3.59c-1.64-1.6-3.26-2.64-3.61-2.36 + c-0.37,0.3,0.92,2.07,2.67,3.73C924.29,112.03,925.82,113.03,926.08,112.68z"/> + <path class="st107" d="M942.09,126.66c-1.67-1.52-3.31-2.51-3.63-2.25c-0.32,0.26,0.77,1.7,2.4,3.2 + c1.76,1.62,3.58,2.81,3.84,2.45C944.93,129.74,943.76,128.18,942.09,126.66z"/> + <path class="st107" d="M963.73,146.45c0.23-0.3-0.98-1.75-2.69-3.18c-1.71-1.43-3.37-2.37-3.7-2.13 + c-0.35,0.26,1.04,1.83,2.86,3.31C961.93,145.85,963.5,146.76,963.73,146.45z"/> + <path class="st107" d="M980.56,158.76c-1.74-1.31-3.47-2.21-3.82-2.01c-0.34,0.2,0.77,1.4,2.48,2.71 + c1.81,1.39,3.78,2.46,4.05,2.19C983.53,161.4,982.31,160.08,980.56,158.76z"/> + <path class="st107" d="M999.61,173.69c1.8,1.16,3.53,1.96,3.8,1.75c0.3-0.24-1.21-1.61-3.16-2.84 + c-1.85-1.17-3.42-1.82-3.62-1.54C996.45,171.34,997.83,172.55,999.61,173.69z"/> + <path class="st107" d="M1024.23,187.64c0.27-0.21-1.03-1.24-2.9-2.29c-2.02-1.13-3.92-1.83-4.11-1.53 + c-0.17,0.26,1.27,1.34,3.11,2.34C1022.2,187.16,1023.97,187.85,1024.23,187.64z"/> + <path class="st107" d="M1045.86,197.95c0.26-0.21-1.17-1.05-3.09-1.88c-2.07-0.89-4.06-1.51-4.24-1.23 + c-0.16,0.25,1.34,1.17,3.25,2.01C1043.72,197.7,1045.6,198.15,1045.86,197.95z"/> + <path class="st107" d="M1064.01,206.17c1.96,0.85,3.78,1.42,4.03,1.21c0.28-0.23-1.41-1.31-3.53-2.2 + c-2.03-0.85-3.68-1.24-3.83-0.98C1060.53,204.44,1062.08,205.33,1064.01,206.17z"/> + <path class="st107" d="M1087.12,215.47c-1.92-0.93-3.89-1.55-4.31-1.4c-0.43,0.15,0.71,0.94,2.64,1.9 + c1.98,0.99,4.2,1.78,4.56,1.58C1090.34,217.36,1089.07,216.42,1087.12,215.47z"/> + <path class="st107" d="M1107.66,226.9c1.9,0.97,3.8,1.65,4.18,1.45c0.41-0.22-1.1-1.39-3.21-2.42 + c-1.97-0.96-3.74-1.49-4.01-1.23C1104.37,224.95,1105.76,225.93,1107.66,226.9z"/> + <path class="st107" d="M1130.42,237.09c-1.96-1-3.75-1.54-4.05-1.25c-0.29,0.28,1.06,1.33,2.95,2.35 + c2.06,1.1,4.06,1.78,4.28,1.39C1133.8,239.24,1132.34,238.08,1130.42,237.09z"/> + <path class="st107" d="M1155.14,251.35c0.44-0.3-0.72-1.41-2.62-2.49c-1.87-1.06-3.9-1.73-4.41-1.49 + c-0.57,0.26,0.71,1.41,2.78,2.57C1152.78,250.98,1154.71,251.65,1155.14,251.35z"/> + <path class="st107" d="M1173.87,260.52c-1.92-1.06-3.85-1.61-4.28-1.25c-0.43,0.36,0.75,1.52,2.61,2.61 + c1.97,1.16,4.16,1.85,4.53,1.38C1177.08,262.84,1175.79,261.58,1173.87,260.52z"/> + <path class="st107" d="M1198.2,275.39c0.44-0.48-0.74-1.77-2.65-2.86c-1.89-1.08-3.89-1.62-4.42-1.21 + c-0.57,0.44,0.75,1.83,2.79,2.98C1195.83,275.36,1197.77,275.87,1198.2,275.39z"/> + <path class="st107" d="M1219.69,287.5c0.48-0.57-0.68-1.93-2.59-3.02c-2.07-1.17-4.18-1.59-4.58-0.92 + c-0.36,0.59,0.95,1.99,2.83,3.03C1217.25,287.65,1219.22,288.07,1219.69,287.5z"/> + <path class="st107" d="M1236.73,298.78c1.9,1.04,3.93,1.37,4.46,0.71c0.58-0.72-0.82-2.35-2.91-3.39 + c-1.99-0.98-3.84-1.19-4.27-0.49C1233.59,296.29,1234.85,297.75,1236.73,298.78z"/> + <path class="st107" d="M761.79-60.37c-1.65-1.51-3.47-2.25-3.98-1.7c-0.51,0.55,0.41,2.17,2.03,3.69 + c1.71,1.61,3.73,2.59,4.19,1.94C764.46-57.05,763.46-58.85,761.79-60.37z"/> + <path class="st107" d="M778.79-40.8c1.64,1.54,3.34,2.44,3.77,1.9c0.47-0.59-0.71-2.7-2.5-4.32c-1.69-1.54-3.29-2.17-3.65-1.52 + C776.06-44.12,777.17-42.33,778.79-40.8z"/> + <path class="st107" d="M800.78-20.62c0.38-0.54-0.61-2.41-2.21-4.07c-1.6-1.65-3.32-2.57-3.79-2.09 + c-0.51,0.52,0.63,2.47,2.37,4.18C798.78-21,800.4-20.08,800.78-20.62z"/> + <path class="st107" d="M818.75-1.76c0.34-0.54-0.67-2.43-2.26-4.12c-1.6-1.7-3.26-2.64-3.69-2.18 + c-0.46,0.5,0.72,2.52,2.43,4.25C816.85-2.16,818.41-1.22,818.75-1.76z"/> + <path class="st107" d="M832.91,15.19c1.58,1.7,3.2,2.8,3.6,2.38c0.44-0.45-0.71-2.58-2.43-4.37c-1.61-1.69-3.15-2.55-3.48-2.02 + C830.28,11.7,831.35,13.52,832.91,15.19z"/> + <path class="st107" d="M850.5,34.4c1.53,1.71,3.22,2.96,3.68,2.66c0.51-0.32-0.52-2.3-2.24-4.18 + c-1.58-1.73-3.19-2.75-3.58-2.34C847.98,30.96,848.96,32.69,850.5,34.4z"/> + <path class="st107" d="M865.37,44.3c0.45-0.59-0.64-2.72-2.43-4.67c-1.62-1.76-3.24-2.66-3.66-2.1 + c-0.45,0.61,0.67,2.63,2.46,4.56C863.34,43.82,864.97,44.84,865.37,44.3z"/> + <path class="st107" d="M879.18,61.33c1.75,1.93,3.55,3.1,3.9,2.48c0.33-0.59-0.64-2.48-2.25-4.27 + c-1.76-1.96-3.55-3.01-3.93-2.37C876.57,57.74,877.58,59.56,879.18,61.33z"/> + <path class="st107" d="M900.85,83.08c0.46-0.38-0.44-2.18-2.01-3.95c-1.77-1.99-3.59-3.15-4.1-2.71 + c-0.47,0.41,0.44,2.1,2.02,3.86C898.52,82.23,900.34,83.51,900.85,83.08z"/> + <path class="st107" d="M915.03,99.28c1.79,1.83,3.6,2.97,3.93,2.41c0.3-0.52-0.73-2.29-2.37-3.99c-1.8-1.86-3.6-2.89-3.94-2.32 + C912.33,95.9,913.4,97.6,915.03,99.28z"/> + <path class="st107" d="M933.29,117.25c1.82,1.77,3.66,2.89,4.02,2.41c0.34-0.44-0.7-2.12-2.37-3.75 + c-1.83-1.79-3.66-2.83-4.03-2.33C930.57,114.04,931.62,115.63,933.29,117.25z"/> + <path class="st107" d="M952.29,134.68c1.71,1.48,3.39,2.4,3.76,2.02c0.4-0.41-0.83-2.16-2.75-3.82 + c-1.73-1.51-3.39-2.35-3.76-1.95C949.14,131.36,950.39,133.04,952.29,134.68z"/> + <path class="st107" d="M971.47,150.75c1.76,1.37,3.46,2.22,3.82,1.86c0.39-0.39-0.9-2.02-2.86-3.57 + c-1.77-1.4-3.46-2.17-3.83-1.8C968.21,147.66,969.51,149.22,971.47,150.75z"/> + <path class="st107" d="M992.13,163.95c-1.83-1.28-3.56-1.98-3.93-1.64c-0.4,0.37,0.94,1.81,2.95,3.2 + c1.81,1.26,3.55,2.02,3.93,1.7C995.49,166.86,994.15,165.36,992.13,163.95z"/> + <path class="st107" d="M1012.62,177.46c-2.05-1.25-4-1.92-4.25-1.48c-0.23,0.4,1.07,1.6,2.94,2.74 + c2.03,1.24,4.01,1.96,4.25,1.52C1015.79,179.84,1014.51,178.61,1012.62,177.46z"/> + <path class="st107" d="M1032.48,190.46c1.93,0.96,3.8,1.51,4.2,1.22c0.43-0.32-1.02-1.51-3.16-2.58 + c-1.96-0.98-3.79-1.49-4.19-1.18C1028.9,188.24,1030.35,189.4,1032.48,190.46z"/> + <path class="st107" d="M1058.75,201.16c0.34-0.35-1.21-1.46-3.46-2.38c-2.03-0.83-3.89-1.18-4.21-0.84 + c-0.34,0.36,1.24,1.35,3.48,2.27C1056.57,201.03,1058.44,201.49,1058.75,201.16z"/> + <path class="st107" d="M1076.29,209.73c2.18,1.01,4.26,1.61,4.57,1.25c0.29-0.33-1.05-1.37-3.04-2.3 + c-2.19-1.02-4.28-1.5-4.59-1.14C1072.94,207.87,1074.29,208.8,1076.29,209.73z"/> + <path class="st107" d="M1098.27,220.06c2.16,1.07,4.25,1.7,4.57,1.33c0.29-0.35-1.03-1.43-3.01-2.4 + c-2.18-1.07-4.26-1.6-4.58-1.23C1094.95,218.09,1096.29,219.08,1098.27,220.06z"/> + <path class="st107" d="M1121.38,229.58c-2-0.98-3.86-1.45-4.21-1.1c-0.38,0.37,1.13,1.53,3.33,2.63 + c1.97,0.98,3.85,1.53,4.21,1.19C1125.1,231.92,1123.6,230.67,1121.38,229.58z"/> + <path class="st107" d="M1146.54,243.52c0.28-0.49-1.26-1.79-3.51-2.89c-1.99-0.98-3.82-1.39-4.08-0.96 + c-0.28,0.47,1.28,1.7,3.51,2.82C1144.44,243.49,1146.29,243.97,1146.54,243.52z"/> + <path class="st107" d="M1165.24,252.23c-1.98-1.05-3.94-1.55-4.45-1.19c-0.55,0.39,0.83,1.68,2.97,2.84 + c1.96,1.06,3.92,1.63,4.45,1.25C1168.78,254.74,1167.4,253.37,1165.24,252.23z"/> + <path class="st107" d="M1189.99,266.72c0.38-0.6-1.09-2.01-3.32-3.13c-2.01-1.01-3.88-1.37-4.23-0.84 + c-0.38,0.58,1.09,1.92,3.32,3.08C1187.74,266.86,1189.65,267.27,1189.99,266.72z"/> + <path class="st107" d="M1211.64,278.49c0.57-0.52-0.53-1.86-2.45-2.95c-2.16-1.23-4.35-1.73-4.97-1.18 + c-0.56,0.5,0.53,1.78,2.44,2.9C1208.79,278.5,1211,279.06,1211.64,278.49z"/> + <path class="st107" d="M1233.47,289.96c0.44-0.79-1-2.29-3.26-3.37c-2-0.96-3.96-1.17-4.35-0.48c-0.43,0.76,1,2.23,3.24,3.34 + C1231.09,290.43,1233.07,290.67,1233.47,289.96z"/> + <path class="st107" d="M776.04-51.18c0.55-0.65-0.29-2.58-1.92-4.24c-1.83-1.86-3.78-2.66-4.4-1.92 + c-0.56,0.68,0.32,2.46,1.96,4.1C773.48-51.43,775.43-50.47,776.04-51.18z"/> + <path class="st107" d="M792.02-37.72c-1.67-1.67-3.4-2.39-3.94-1.74c-0.58,0.7,0.5,2.74,2.32,4.54 + c1.65,1.63,3.38,2.5,3.91,1.87C794.88-33.72,793.85-35.89,792.02-37.72z"/> + <path class="st107" d="M808.43-16.29c1.62,1.69,3.33,2.65,3.85,2.08c0.57-0.61-0.44-2.79-2.24-4.69 + c-1.64-1.73-3.34-2.55-3.88-1.95C805.59-20.21,806.65-18.15,808.43-16.29z"/> + <path class="st107" d="M830.07,5.08c0.49-0.55-0.37-2.51-1.94-4.33c-1.75-2.02-3.6-3.06-4.14-2.43 + c-0.49,0.58,0.39,2.41,1.97,4.21C827.69,4.5,829.54,5.68,830.07,5.08z"/> + <path class="st107" d="M847.71,24.7c0.51-0.46-0.32-2.4-1.86-4.23c-1.74-2.06-3.58-3.2-4.15-2.65c-0.52,0.5,0.33,2.3,1.89,4.12 + C845.31,23.95,847.14,25.21,847.71,24.7z"/> + <path class="st107" d="M767.41-47.06c1.74,1.56,3.31,2.43,3.61,1.92c0.3-0.51-0.81-2.2-2.52-3.74 + c-1.68-1.51-3.42-2.34-3.7-1.84C764.52-50.21,765.68-48.61,767.41-47.06z"/> + <path class="st107" d="M789.46-27.39c0.33-0.43-0.72-2.13-2.39-3.76c-1.64-1.6-3.36-2.56-3.67-2.13 + c-0.32,0.44,0.81,2.08,2.47,3.69C787.57-27.93,789.12-26.95,789.46-27.39z"/> + <path class="st107" d="M807.6-8.93c0.38-0.33-0.62-2.02-2.24-3.71c-1.6-1.66-3.31-2.76-3.69-2.44 + c-0.38,0.33,0.68,1.97,2.31,3.65C805.67-9.7,807.21-8.6,807.6-8.93z"/> + <path class="st107" d="M825.54,9.99c0.39-0.27-0.59-1.95-2.2-3.69c-1.58-1.71-3.27-2.89-3.66-2.62 + c-0.39,0.27,0.66,1.91,2.27,3.63C823.63,9.11,825.15,10.27,825.54,9.99z"/> + <path class="st107" d="M843.41,29.18c0.27-0.35-0.8-2.07-2.42-3.81c-1.6-1.71-3.22-2.86-3.48-2.5 + c-0.26,0.36,0.86,2.03,2.49,3.77C841.66,28.41,843.13,29.53,843.41,29.18z"/> + <path class="st107" d="M857.62,45.67c1.67,1.82,3.17,3.05,3.55,2.86c0.37-0.19-0.61-1.82-2.2-3.57 + c-1.57-1.73-3.23-3.01-3.61-2.82C854.97,42.32,856.02,43.92,857.62,45.67z"/> + <path class="st107" d="M879.05,67.68c0.23-0.31-0.89-1.98-2.52-3.7c-1.6-1.7-3.2-2.87-3.41-2.55 + c-0.22,0.32,0.94,1.94,2.58,3.67C877.38,66.86,878.82,68,879.05,67.68z"/> + <path class="st107" d="M893.73,84.06c1.68,1.71,3.11,2.83,3.3,2.51c0.19-0.31-0.98-1.95-2.63-3.64 + c-1.61-1.65-3.2-2.81-3.36-2.49C890.87,80.78,892.07,82.36,893.73,84.06z"/> + <path class="st107" d="M1244.27,308.3c1.97,1.2,3.9,1.63,4.53,0.98c0.62-0.64-0.42-2.08-2.33-3.2 + c-1.88-1.11-3.99-1.54-4.59-0.97C1241.28,305.69,1242.38,307.15,1244.27,308.3z"/> + <path class="st107" d="M1224.85,293.61c-1.92-1.08-3.91-1.51-4.27-0.93c-0.37,0.59,0.9,1.98,2.84,3.12 + c1.97,1.16,3.8,1.57,4.21,0.93C1228.04,296.1,1226.8,294.71,1224.85,293.61z"/> + <path class="st107" d="M1206.37,284.2c0.48-0.45-0.69-1.76-2.6-2.89c-1.88-1.11-3.89-1.7-4.35-1.29 + c-0.46,0.41,0.76,1.72,2.66,2.88C1204.05,284.1,1205.88,284.66,1206.37,284.2z"/> + <path class="st107" d="M1182.46,268.88c-1.89-1.11-3.86-1.76-4.28-1.44c-0.42,0.32,0.84,1.54,2.75,2.7 + c1.97,1.19,3.77,1.83,4.22,1.46C1185.58,271.24,1184.38,270.01,1182.46,268.88z"/> + <path class="st107" d="M1163.88,259.12c0.35-0.31-0.92-1.47-2.85-2.57c-1.9-1.08-3.83-1.76-4.16-1.48 + c-0.33,0.28,1,1.42,2.91,2.54C1161.76,258.77,1163.52,259.43,1163.88,259.12z"/> + <path class="st107" d="M1142.53,246.91c0.24-0.28-1.14-1.39-3.1-2.45c-1.93-1.05-3.79-1.71-4-1.45 + c-0.21,0.26,1.21,1.33,3.16,2.43C1140.59,246.54,1142.29,247.19,1142.53,246.91z"/> + <path class="st107" d="M1121.02,235.13c0.31-0.17-1.01-1.17-2.96-2.2c-1.91-1.01-3.83-1.73-4.13-1.59 + c-0.3,0.14,1.08,1.11,3.02,2.16C1118.96,234.58,1120.7,235.3,1121.02,235.13z"/> + <path class="st107" d="M1096.36,221.83c-1.93-0.96-3.84-1.66-4.13-1.56c-0.29,0.1,1.12,0.99,3.08,1.97 + c2.03,1.02,3.76,1.73,4.06,1.61C1099.67,223.73,1098.33,222.8,1096.36,221.83z"/> + <path class="st107" d="M1077.54,213.22c0.32-0.07-1.01-0.91-2.99-1.83c-1.95-0.9-3.88-1.58-4.2-1.52 + c-0.32,0.06,1.09,0.85,3.06,1.77C1075.47,212.6,1077.21,213.29,1077.54,213.22z"/> + <path class="st107" d="M1051.56,201.99c2.06,0.86,3.77,1.47,3.97,1.36c0.2-0.11-1.25-0.92-3.27-1.76 + c-1.98-0.83-3.87-1.4-4.04-1.3C1048.04,200.41,1049.56,201.15,1051.56,201.99z"/> + <path class="st107" d="M1033.48,193.86c0.27-0.07-1.08-0.92-3.01-1.89c-1.9-0.95-3.76-1.71-4.03-1.64 + c-0.28,0.06,1.12,0.93,3.05,1.89C1031.49,193.23,1033.2,193.93,1033.48,193.86z"/> + <path class="st107" d="M1012.27,182.57c0.28-0.07-1.02-1.06-2.88-2.18c-1.84-1.11-3.64-1.99-3.92-1.92 + c-0.28,0.07,1.06,1.06,2.93,2.18C1010.33,181.82,1011.99,182.64,1012.27,182.57z"/> + <path class="st107" d="M991.78,169.61c0.21-0.13-1.09-1.26-2.91-2.53c-1.79-1.24-3.51-2.19-3.71-2.06 + c-0.2,0.13,1.15,1.28,2.96,2.53C989.99,168.84,991.57,169.74,991.78,169.61z"/> + <path class="st107" d="M971.89,155.19c0.29-0.08-0.9-1.3-2.65-2.69c-1.73-1.37-3.45-2.44-3.74-2.36 + c-0.3,0.08,0.94,1.3,2.7,2.68C970.02,154.25,971.59,155.27,971.89,155.19z"/> + <path class="st107" d="M949.1,137.1c1.77,1.52,3.27,2.56,3.47,2.37c0.2-0.18-1.03-1.55-2.75-3.04 + c-1.7-1.47-3.34-2.55-3.53-2.36C946.11,134.26,947.37,135.61,949.1,137.1z"/> + <path class="st107" d="M930.04,119.96c1.75,1.65,3.28,2.82,3.63,2.74c0.34-0.08-0.73-1.46-2.39-3.04 + c-1.64-1.56-3.33-2.79-3.68-2.72C927.24,117,928.38,118.39,930.04,119.96z"/> + <path class="st107" d="M912.57,101.51c-1.64-1.61-3.23-2.76-3.41-2.5c-0.18,0.27,1.03,1.79,2.7,3.44 + c1.7,1.67,3.16,2.78,3.35,2.52C915.41,104.71,914.24,103.15,912.57,101.51z"/> + <path class="st107" d="M850.64,40.03c0.26-0.17-0.89-1.8-2.51-3.53c-1.51-1.61-2.86-2.69-3.17-2.6 + c-0.34,0.1,0.7,1.57,2.28,3.26C848.77,38.82,850.38,40.2,850.64,40.03z"/> + <path class="st107" d="M830.49,17.59c-1.65-1.78-3.15-2.95-3.45-2.74c-0.29,0.2,0.81,1.73,2.41,3.41 + c1.44,1.51,2.89,2.71,3.25,2.67C833.11,20.87,832.1,19.32,830.49,17.59z"/> + <path class="st107" d="M812.33-1.55c-1.67-1.72-3.11-2.72-3.32-2.38c-0.18,0.31,0.82,1.69,2.28,3.21 + c1.55,1.61,3.2,2.91,3.5,2.7C815.09,1.77,813.97,0.13,812.33-1.55z"/> + <path class="st107" d="M794.1-20.12c-1.68-1.65-3.13-2.55-3.31-2.14c-0.16,0.36,0.9,1.77,2.39,3.24 + c1.58,1.56,3.24,2.77,3.5,2.47C796.93-16.84,795.76-18.5,794.1-20.12z"/> + <path class="st107" d="M774.55-36.92c1.57,1.5,3.33,2.7,3.7,2.48c0.34-0.21-0.55-1.57-2.03-3.03 + c-1.66-1.64-3.37-2.76-3.82-2.57C771.95-39.86,772.92-38.48,774.55-36.92z"/> + <path class="st107" d="M759.56-51.59c0.33-0.32-0.83-1.89-2.56-3.37c-1.6-1.38-3.08-2.17-3.47-1.92 + c-0.42,0.27,0.65,1.67,2.32,3.13C757.48-52.33,759.24-51.27,759.56-51.59z"/> + <path class="st107" d="M1235.29,306.43c0.59-0.52-0.51-1.95-2.41-3.13c-1.78-1.11-3.51-1.59-4.11-1.17 + c-0.65,0.46,0.29,1.81,2.09,3.03C1232.59,306.33,1234.7,306.94,1235.29,306.43z"/> + <path class="st107" d="M1211.91,290.38c-1.93-1.22-3.74-1.77-4.17-1.3c-0.38,0.43,0.59,1.59,2.24,2.72 + c1.74,1.18,3.8,1.9,4.37,1.51C1214.92,292.92,1213.81,291.57,1211.91,290.38z"/> + <path class="st107" d="M1190.88,277.4c-1.94-1.21-3.71-1.83-4.09-1.45c-0.34,0.34,0.67,1.42,2.34,2.53 + c1.74,1.16,3.77,1.96,4.29,1.67C1193.94,279.85,1192.79,278.59,1190.88,277.4z"/> + <path class="st107" d="M1172.47,267.09c0.38-0.26-0.91-1.47-2.82-2.62c-1.79-1.08-3.41-1.71-3.83-1.52 + c-0.46,0.2,0.69,1.3,2.53,2.47C1170.13,266.55,1172.09,267.35,1172.47,267.09z"/> + <path class="st107" d="M1147.4,252.6c1.81,1.09,3.71,1.92,4.01,1.71c0.3-0.21-1.07-1.35-3-2.47c-1.79-1.04-3.38-1.68-3.73-1.55 + C1144.3,250.44,1145.54,251.48,1147.4,252.6z"/> + <path class="st107" d="M865.28,56.4c1.56,1.65,3.12,2.97,3.27,2.74c0.16-0.23-1.09-1.92-2.7-3.6c-1.5-1.57-2.8-2.61-3.04-2.47 + C862.56,53.22,863.68,54.72,865.28,56.4z"/> + <path class="st107" d="M883.24,75.32c1.57,1.62,3.13,2.95,3.28,2.76c0.15-0.2-1.11-1.84-2.73-3.5 + c-1.51-1.55-2.81-2.6-3.04-2.49C880.5,72.2,881.64,73.66,883.24,75.32z"/> + <path class="st107" d="M904.64,96.61c0.2-0.11-1.01-1.62-2.66-3.27c-1.54-1.54-2.87-2.62-3.14-2.59 + c-0.29,0.04,0.81,1.4,2.43,3.03C902.84,95.35,904.44,96.71,904.64,96.61z"/> + <path class="st107" d="M923.03,114.55c0.21-0.07-1.03-1.5-2.7-3.1c-1.56-1.49-2.91-2.56-3.18-2.55 + c-0.29,0.01,0.83,1.31,2.46,2.87C921.2,113.29,922.83,114.62,923.03,114.55z"/> + <path class="st107" d="M941.77,131.71c0.16-0.09-1.14-1.46-2.85-2.98c-1.59-1.41-2.92-2.42-3.16-2.4 + c-0.26,0.02,0.93,1.26,2.6,2.75C939.99,130.54,941.61,131.8,941.77,131.71z"/> + <path class="st107" d="M958.13,145.26c-1.78-1.47-3.25-2.49-3.39-2.39c-0.12,0.09,0.98,1.13,2.54,2.42 + c1.64,1.35,3.36,2.6,3.6,2.61C961.13,147.9,959.87,146.69,958.13,145.26z"/> + <path class="st107" d="M976.84,160.48c1.68,1.24,3.44,2.41,3.68,2.43c0.22,0.02-0.87-0.93-2.46-2.12 + c-1.79-1.34-3.49-2.46-3.81-2.53C973.93,158.2,975.09,159.19,976.84,160.48z"/> + <path class="st107" d="M997.77,174.41c-1.89-1.22-3.42-2.09-3.54-2.03c-0.11,0.06,1.08,0.92,2.73,1.99 + c1.73,1.12,3.54,2.18,3.77,2.2C1000.97,176.59,999.61,175.6,997.77,174.41z"/> + <path class="st107" d="M1021.62,188.68c0.13-0.03-1.38-0.94-3.28-1.98c-1.78-0.97-3.23-1.68-3.45-1.7 + c-0.23-0.02,1.13,0.82,3,1.84C1019.72,187.84,1021.5,188.71,1021.62,188.68z"/> + <path class="st107" d="M1043.25,199.01c0.12-0.03-1.47-0.75-3.45-1.62c-1.84-0.82-3.33-1.42-3.55-1.44 + c-0.23-0.02,1.19,0.69,3.13,1.55C1041.27,198.33,1043.13,199.04,1043.25,199.01z"/> + <path class="st107" d="M1061.43,206.89c1.89,0.85,3.75,1.63,3.92,1.6c0.17-0.03-1.36-0.83-3.35-1.71 + c-1.86-0.82-3.41-1.4-3.66-1.42C1058.07,205.34,1059.48,206.02,1061.43,206.89z"/> + <path class="st107" d="M1083.42,217.27c1.89,0.93,3.69,1.72,3.78,1.62c0.1-0.1-1.5-1.03-3.45-1.97 + c-1.81-0.87-3.32-1.47-3.51-1.43C1080.05,215.53,1081.5,216.32,1083.42,217.27z"/> + <path class="st107" d="M1105.01,228.42c1.86,0.99,3.68,1.8,3.81,1.66c0.13-0.14-1.43-1.16-3.36-2.16 + c-1.8-0.93-3.31-1.55-3.52-1.48C1101.69,226.51,1103.1,227.4,1105.01,228.42z"/> + <path class="st107" d="M1127.35,239.8c-1.97-1.11-3.7-1.84-3.96-1.71c-0.26,0.13,1.1,1.11,2.99,2.18 + c1.7,0.97,3.37,1.72,3.75,1.67C1130.55,241.88,1129.27,240.89,1127.35,239.8z"/> + <path class="st107" d="M763.71-44.1c1.59,1.41,3.03,2.4,3.35,2.24c0.31-0.15-0.66-1.45-2.18-2.84 + c-1.59-1.46-3.45-2.63-3.66-2.35C761.03-46.79,762.15-45.48,763.71-44.1z"/> + <path class="st107" d="M783.41-27.5c-1.46-1.4-3.08-2.55-3.41-2.46c-0.37,0.1,0.84,1.6,2.53,3.18 + c1.57,1.47,2.93,2.47,3.18,2.29C785.94-24.68,784.91-26.06,783.41-27.5z"/> + <path class="st107" d="M798.37-12.06c-0.18,0.21,0.91,1.57,2.42,3.08c1.67,1.67,3.15,2.84,3.28,2.53 + c0.11-0.26-1.08-1.81-2.56-3.26C800.03-11.17,798.54-12.26,798.37-12.06z"/> + <path class="st107" d="M822.16,12.15c0.21-0.13-0.82-1.53-2.28-3.06c-1.42-1.48-2.98-2.76-3.29-2.73 + c-0.34,0.04,0.86,1.57,2.51,3.26C820.63,11.18,821.94,12.29,822.16,12.15z"/> + <path class="st107" d="M840.12,31.06c0.29-0.01-0.61-1.27-2.08-2.86c-1.51-1.64-3.26-3.13-3.46-3 + c-0.19,0.12,0.87,1.47,2.35,3.04C838.46,29.84,839.82,31.07,840.12,31.06z"/> + <path class="st107" d="M855.69,46.94c-1.44-1.52-2.92-2.81-3.14-2.77c-0.25,0.05,1,1.59,2.64,3.3c1.53,1.59,2.77,2.7,2.92,2.57 + C858.25,49.92,857.14,48.48,855.69,46.94z"/> + <path class="st107" d="M1242.74,316.29c0.44-0.61-0.6-2.03-2.28-3.12c-1.65-1.07-3.58-1.58-4.09-1.1 + c-0.58,0.55,0.6,2.12,2.49,3.34C1240.61,316.54,1242.28,316.92,1242.74,316.29z"/> + <path class="st107" d="M1215.7,298.43c-0.34,0.49,0.77,1.82,2.47,2.98c1.87,1.27,3.7,1.8,4.01,1.15 + c0.28-0.56-0.97-1.99-2.66-3.03C1217.81,298.47,1216.02,297.96,1215.7,298.43z"/> + <path class="st107" d="M1195.07,284.7c-0.29,0.4,0.87,1.64,2.56,2.79c1.88,1.27,3.66,1.89,3.91,1.35 + c0.23-0.47-1.07-1.81-2.75-2.86C1197.09,284.92,1195.34,284.32,1195.07,284.7z"/> + <path class="st107" d="M1180.77,275.29c0.42-0.24-0.57-1.32-2.28-2.46c-1.75-1.17-3.82-2.03-4.11-1.73 + c-0.27,0.28,0.89,1.43,2.59,2.56C1178.72,274.83,1180.35,275.54,1180.77,275.29z"/> + <path class="st107" d="M1157.41,259.5c-1.66-1.03-3.46-1.84-3.81-1.72c-0.39,0.13,0.97,1.32,2.86,2.51 + c1.76,1.11,3.29,1.79,3.57,1.57C1160.29,261.64,1159.11,260.56,1157.41,259.5z"/> + <path class="st107" d="M1139.08,248.86c0.33-0.08-0.74-0.98-2.48-2.05c-1.78-1.09-3.8-2.02-4.01-1.88 + c-0.19,0.13,1.06,1.09,2.79,2.15C1137.16,248.17,1138.74,248.95,1139.08,248.86z"/> + <path class="st107" d="M1114.54,234.71c1.79,1.02,3.28,1.74,3.46,1.65c0.18-0.09-1.11-0.99-2.84-1.96 + c-1.86-1.04-3.73-1.91-3.77-1.75C1111.37,232.79,1112.78,233.71,1114.54,234.71z"/> + <path class="st107" d="M1096.67,224.54c0.17-0.03-1.13-0.83-2.89-1.74c-1.69-0.88-3.48-1.71-3.74-1.75 + c-0.3-0.05,1.21,0.81,3.15,1.84C1095,223.84,1096.49,224.57,1096.67,224.54z"/> + <path class="st107" d="M1072.17,212c-1.69-0.81-3.53-1.61-3.8-1.7c-0.28-0.09,0.98,0.53,2.75,1.38 + c1.98,0.96,3.76,1.8,3.96,1.84C1075.25,213.55,1073.94,212.85,1072.17,212z"/> + <path class="st107" d="M1053.19,203.43c0.14,0.04-1.21-0.57-3.02-1.34c-1.73-0.73-3.55-1.47-3.8-1.56 + c-0.28-0.11,1.3,0.54,3.3,1.4C1051.53,202.72,1053.04,203.39,1053.19,203.43z"/> + <path class="st107" d="M1027.99,192.22c-1.74-0.86-3.35-1.66-3.43-1.68c-0.09-0.03,1.54,0.8,3.49,1.76 + c1.8,0.89,3.17,1.55,3.18,1.54C1031.24,193.83,1029.72,193.07,1027.99,192.22z"/> + <path class="st107" d="M1006.52,180.58c1.76,1.04,3.24,1.9,3.45,1.99c0.2,0.09-1.01-0.65-2.69-1.65 + c-1.77-1.06-3.65-2.15-3.73-2.16C1003.48,178.74,1004.8,179.56,1006.52,180.58z"/> + <path class="st107" d="M989.44,169.7c0.13,0.04-1.11-0.86-2.75-1.99c-1.58-1.09-3.23-2.18-3.46-2.29 + c-0.26-0.12,1.16,0.9,2.99,2.16C987.92,168.75,989.3,169.66,989.44,169.7z"/> + <path class="st107" d="M969.5,155.38c0.15,0.04-1.04-0.95-2.64-2.19c-1.53-1.19-3.15-2.37-3.4-2.49c-0.28-0.13,1.1,1,2.87,2.37 + C967.98,154.35,969.35,155.34,969.5,155.38z"/> + <path class="st107" d="M947.56,137.46c-1.48-1.27-3.1-2.55-3.37-2.67c-0.27-0.12,0.81,0.89,2.37,2.22 + c1.74,1.49,3.33,2.76,3.52,2.81C950.25,139.86,949.11,138.8,947.56,137.46z"/> + <path class="st107" d="M928.73,120.74c-1.43-1.32-3.07-2.71-3.37-2.85c-0.31-0.14,0.72,0.92,2.22,2.32 + c1.68,1.56,3.29,2.93,3.52,3C931.31,123.26,930.24,122.15,928.73,120.74z"/> + <path class="st107" d="M909.35,102.96c1.56,1.52,2.91,2.71,3.14,2.76c0.23,0.05-0.79-1.11-2.28-2.58 + c-1.56-1.54-3.28-3.03-3.41-2.97C906.69,100.24,907.83,101.48,909.35,102.96z"/> + <path class="st107" d="M891.22,84.93c1.53,1.55,2.82,2.7,2.97,2.65c0.15-0.05-0.94-1.36-2.41-2.87 + c-1.58-1.62-3.2-3.02-3.24-2.84C888.51,82.05,889.71,83.41,891.22,84.93z"/> + <path class="st107" d="M873.74,66.02c-1.42-1.5-2.94-2.85-3.21-2.89c-0.3-0.04,0.93,1.45,2.56,3.14 + c1.52,1.58,2.81,2.74,2.99,2.68C876.26,68.89,875.2,67.55,873.74,66.02z"/> + <path class="st107" d="M855.79,49.91c0.19,0.08-0.94-1.2-2.39-2.71c-1.29-1.34-2.61-2.6-2.84-2.73 + c-0.26-0.15,0.73,0.98,2.19,2.49C854.17,48.43,855.6,49.83,855.79,49.91z"/> + <path class="st107" d="M873.9,68.57c0.2,0.12-0.91-1.11-2.37-2.61c-1.28-1.32-2.63-2.62-2.87-2.78 + c-0.27-0.19,0.72,0.91,2.16,2.39C872.26,67.04,873.7,68.46,873.9,68.57z"/> + <path class="st107" d="M892.14,86.99c0.11,0.05-1.1-1.21-2.57-2.68c-1.35-1.35-2.57-2.51-2.74-2.63 + c-0.19-0.13,0.91,1.02,2.36,2.47C890.65,85.6,892.03,86.94,892.14,86.99z"/> + <path class="st107" d="M908.04,102.47c-1.51-1.45-2.82-2.68-2.88-2.69c-0.04-0.01,1.01,1.03,2.34,2.3 + c1.45,1.39,2.89,2.75,3.05,2.87C910.71,105.06,909.53,103.9,908.04,102.47z"/> + <path class="st107" d="M926.16,119.48c1.48,1.34,2.94,2.65,3.09,2.78c0.15,0.13-1.05-0.97-2.57-2.34 + c-1.35-1.22-2.67-2.42-2.88-2.59C923.58,117.12,924.65,118.1,926.16,119.48z"/> + <path class="st107" d="M948.3,138.74c0.17,0.16-1.05-0.85-2.59-2.15c-1.36-1.15-2.74-2.32-2.96-2.52 + c-0.25-0.22,0.85,0.7,2.37,1.98C946.62,137.31,948.13,138.58,948.3,138.74z"/> + <path class="st107" d="M965.06,152.18c-1.6-1.23-2.97-2.32-3-2.37c-0.02-0.05,1.11,0.81,2.52,1.89c1.54,1.18,3.05,2.36,3.2,2.5 + C967.92,154.34,966.64,153.4,965.06,152.18z"/> + <path class="st107" d="M987.78,168.47c0.02,0.06-1.44-0.88-3.04-1.98c-1.52-1.04-2.74-1.92-2.84-2.04 + c-0.11-0.12,1.21,0.75,2.81,1.84C986.33,167.4,987.76,168.4,987.78,168.47z"/> + <path class="st107" d="M1004.91,179.18c1.63,0.96,3.25,1.96,3.42,2.12c0.17,0.16-1.16-0.56-2.84-1.55 + c-1.47-0.87-2.96-1.81-3.18-2C1002.07,177.54,1003.26,178.21,1004.91,179.18z"/> + <path class="st107" d="M1026.57,191.23c-1.75-0.87-3.23-1.69-3.25-1.76c-0.01-0.07,1.24,0.52,2.78,1.28 + c1.69,0.84,3.33,1.69,3.47,1.83C1029.72,192.71,1028.3,192.09,1026.57,191.23z"/> + <path class="st107" d="M1051.45,202.33c0.22,0.15-1.13-0.41-2.9-1.18c-1.54-0.67-3.18-1.42-3.44-1.59 + c-0.3-0.2,0.91,0.26,2.66,1.03C1049.49,201.33,1051.23,202.17,1051.45,202.33z"/> + <path class="st107" d="M1069.76,211.02c1.71,0.87,3.3,1.7,3.4,1.76c0.09,0.06-1.36-0.68-3.09-1.55c-1.59-0.8-3-1.5-3.16-1.6 + C1066.71,209.51,1068.06,210.16,1069.76,211.02z"/> + <path class="st107" d="M1091.74,222.67c-1.68-0.94-3.31-1.79-3.44-1.82c-0.12-0.03,0.97,0.6,2.51,1.48 + c1.64,0.93,3.37,1.88,3.63,1.97C1094.7,224.38,1093.44,223.61,1091.74,222.67z"/> + <path class="st107" d="M1115.42,236.77c0.25,0.01-1-0.88-2.68-1.9c-1.47-0.89-3.05-1.74-3.33-1.81 + c-0.33-0.08,0.81,0.72,2.45,1.75C1113.48,235.82,1115.17,236.76,1115.42,236.77z"/> + <path class="st107" d="M1136.12,250.04c0.2-0.11-1.11-1.17-2.77-2.23c-1.53-0.98-2.95-1.73-3.2-1.7 + c-0.28,0.03,0.91,1,2.54,2.09C1134.31,249.28,1135.92,250.15,1136.12,250.04z"/> + <path class="st107" d="M1154.21,261.72c-1.6-1.12-3.29-1.99-3.57-1.86c-0.25,0.12,0.65,1.01,2.13,2.08 + c1.53,1.12,3.34,2.12,3.74,2.05C1156.91,263.92,1155.85,262.86,1154.21,261.72z"/> + <path class="st107" d="M1173.32,276.72c1.6,1.16,3.24,1.94,3.49,1.64c0.25-0.3-1-1.58-2.64-2.71c-1.52-1.04-2.94-1.7-3.24-1.51 + C1170.6,274.35,1171.73,275.57,1173.32,276.72z"/> + <path class="st107" d="M1194.67,290.42c-1.59-1.18-3.31-1.92-3.63-1.58c-0.3,0.31,0.57,1.41,2.01,2.55 + c1.53,1.21,3.34,2.07,3.79,1.8C1197.3,292.91,1196.29,291.61,1194.67,290.42z"/> + <path class="st107" d="M1213.17,306.64c1.57,1.21,3.32,1.88,3.72,1.43c0.4-0.45-0.68-1.89-2.31-3.05 + c-1.48-1.06-3.04-1.65-3.46-1.33C1210.63,304.07,1211.56,305.4,1213.17,306.64z"/> + <path class="st107" d="M1236.83,323.07c0.52-0.51-0.46-2.01-2.07-3.2c-1.42-1.04-3.12-1.63-3.63-1.25 + c-0.58,0.43,0.26,1.86,1.81,3.09C1234.47,322.94,1236.31,323.58,1236.83,323.07z"/> + <path class="st107" d="M742.36-59.28c-1.58-1.25-3.03-2.12-3.13-1.94c-0.09,0.17,1.03,1.22,2.4,2.32 + c1.54,1.23,3.08,2.26,3.28,2.16C745.13-56.83,743.93-58.04,742.36-59.28z"/> + <path class="st107" d="M764.07-40.58c0.18-0.08-1.01-1.35-2.54-2.67c-1.41-1.21-2.73-2.14-2.97-2.12 + c-0.27,0.02,0.83,1.16,2.33,2.46C762.41-41.6,763.89-40.49,764.07-40.58z"/> + <path class="st107" d="M780.4-26.22c-1.51-1.4-2.91-2.46-3.01-2.33c-0.09,0.12,0.95,1.24,2.28,2.48 + c1.47,1.37,2.96,2.58,3.16,2.56C783.04-23.54,781.9-24.82,780.4-26.22z"/> + <path class="st107" d="M801.33-5.74c0.15-0.05-1.03-1.39-2.51-2.83c-1.36-1.32-2.62-2.37-2.83-2.39 + c-0.24-0.02,0.85,1.19,2.3,2.61C799.75-6.93,801.18-5.69,801.33-5.74z"/> + <path class="st107" d="M814.28,7.2c-0.14,0.04,1.03,1.35,2.47,2.8c1.49,1.49,2.79,2.67,2.85,2.56c0.05-0.1-1.01-1.33-2.31-2.66 + C815.85,8.43,814.43,7.16,814.28,7.2z"/> + <path class="st107" d="M837.71,31.17c0.2,0.06-0.92-1.24-2.37-2.74c-1.3-1.34-2.62-2.57-2.86-2.68 + c-0.27-0.13,0.71,1.01,2.17,2.52C836.07,29.73,837.51,31.11,837.71,31.17z"/> + <path class="st107" d="M863.54,56.78c-1.53-1.6-2.9-2.88-3.09-2.9c-0.19-0.02,0.89,1.22,2.42,2.81 + c1.49,1.55,2.93,2.93,3.11,2.96C866.15,59.67,865.03,58.34,863.54,56.78z"/> + <path class="st107" d="M884.04,78.29c0.27,0.15-0.79-1.07-2.27-2.6c-1.56-1.61-2.93-2.9-3.22-3.05 + c-0.28-0.14,0.75,1.01,2.25,2.56C882.29,76.72,883.77,78.14,884.04,78.29z"/> + <path class="st107" d="M899.82,93.92c-1.55-1.54-2.93-2.81-3.1-2.87c-0.17-0.06,0.94,1.12,2.49,2.65 + c1.51,1.49,2.96,2.85,3.13,2.91C902.5,96.68,901.34,95.43,899.82,93.92z"/> + <path class="st107" d="M920.82,114.34c0.22,0.14-0.92-1.01-2.46-2.46c-1.6-1.51-2.98-2.75-3.2-2.88 + c-0.22-0.13,0.88,0.96,2.43,2.43C919.16,112.89,920.6,114.19,920.82,114.34z"/> + <path class="st107" d="M936.6,128.71c1.57,1.38,3.01,2.61,3.08,2.62c0.07,0.02-1.19-1.12-2.77-2.52 + c-1.59-1.4-2.96-2.57-3.05-2.59C933.77,126.2,934.97,127.29,936.6,128.71z"/> + <path class="st107" d="M958.86,147.35c0.25,0.18-0.93-0.78-2.51-2.07c-1.66-1.35-3.1-2.5-3.36-2.69 + c-0.25-0.18,0.87,0.75,2.48,2.05C957.05,145.93,958.6,147.17,958.86,147.35z"/> + <path class="st107" d="M975.91,160.34c-1.71-1.24-3.17-2.32-3.39-2.47c-0.22-0.16,0.97,0.71,2.63,1.92 + c1.63,1.19,3.2,2.32,3.42,2.49C978.79,162.43,977.55,161.53,975.91,160.34z"/> + <path class="st107" d="M998.83,175.86c0.21,0.15-1.09-0.65-2.78-1.73c-1.76-1.13-3.25-2.1-3.46-2.25 + c-0.2-0.15,1.03,0.63,2.74,1.73C997.05,174.69,998.62,175.7,998.83,175.86z"/> + <path class="st107" d="M1019.71,187.92c0.25,0.17-1.06-0.5-2.79-1.44c-1.82-0.99-3.36-1.87-3.62-2.04 + c-0.25-0.17,0.99,0.49,2.75,1.44C1017.78,186.82,1019.46,187.75,1019.71,187.92z"/> + <path class="st107" d="M1041.32,198.3c0.26,0.16-1.1-0.39-2.9-1.19c-1.88-0.83-3.48-1.59-3.74-1.76 + c-0.25-0.16,1.04,0.39,2.85,1.2C1039.33,197.35,1041.06,198.14,1041.32,198.3z"/> + <path class="st107" d="M1063.33,208.02c0.08,0.05-1.37-0.63-3.19-1.47c-1.84-0.85-3.41-1.56-3.51-1.63 + c-0.1-0.07,1.31,0.54,3.17,1.41C1061.6,207.17,1063.25,207.97,1063.33,208.02z"/> + <path class="st107" d="M1084.95,218.8c0.07-0.01-1.35-0.79-3.15-1.71c-1.81-0.93-3.36-1.68-3.45-1.7 + c-0.08-0.02,1.29,0.7,3.13,1.66C1083.25,217.97,1084.87,218.8,1084.95,218.8z"/> + <path class="st107" d="M1102.85,228.76c1.74,1,3.35,1.83,3.39,1.74c0.04-0.09-1.35-0.97-3.14-1.97c-1.8-1-3.3-1.75-3.37-1.69 + C1099.67,226.9,1101.04,227.73,1102.85,228.76z"/> + <path class="st107" d="M1127.24,243.04c0.26-0.03-1-0.98-2.74-2.04c-1.79-1.08-3.39-1.9-3.65-1.88 + c-0.26,0.02,0.96,0.9,2.72,1.99C1125.28,242.17,1126.98,243.08,1127.24,243.04z"/> + <path class="st107" d="M1148.05,256.22c0.17-0.19-1.12-1.26-2.86-2.36c-1.75-1.11-3.33-1.87-3.5-1.71 + c-0.18,0.16,1.07,1.17,2.84,2.32C1146.23,255.58,1147.88,256.4,1148.05,256.22z"/> + <path class="st107" d="M1168.57,269.95c0.42-0.12-0.69-1.25-2.37-2.39c-1.76-1.2-3.4-2-3.82-1.89 + c-0.41,0.11,0.66,1.16,2.35,2.35C1166.4,269.19,1168.15,270.07,1168.57,269.95z"/> + <path class="st107" d="M1189.09,283.98c0.26-0.36-0.94-1.61-2.67-2.77c-1.73-1.16-3.36-1.85-3.62-1.52 + c-0.27,0.33,0.89,1.53,2.63,2.74C1187.13,283.6,1188.83,284.33,1189.09,283.98z"/> + <path class="st107" d="M1207.17,295.51c-1.74-1.24-3.43-1.95-3.93-1.65c-0.49,0.29,0.49,1.54,2.15,2.78 + c1.64,1.22,3.45,1.99,3.95,1.68C1209.85,298.02,1208.83,296.7,1207.17,295.51z"/> + <path class="st107" d="M1227.36,309.53c-1.73-1.19-3.45-1.76-3.87-1.28c-0.42,0.48,0.61,1.85,2.33,3.08 + c1.68,1.2,3.49,1.81,3.91,1.31C1230.14,312.13,1229.05,310.69,1227.36,309.53z"/> + <path class="st107" d="M1249.94,326.94c0.61-0.5-0.3-1.99-1.95-3.18c-1.73-1.24-3.5-1.79-4.12-1.29 + c-0.61,0.49,0.27,1.92,1.92,3.16C1247.43,326.85,1249.32,327.45,1249.94,326.94z"/> + <path class="st107" d="M753.58-51.99c-1.62-1.37-3.12-2.33-3.36-2.19c-0.24,0.14,0.88,1.31,2.51,2.68 + c1.59,1.34,3.15,2.41,3.37,2.28C756.32-49.35,755.17-50.65,753.58-51.99z"/> + <path class="st107" d="M772.44-35.35c-1.58-1.44-3.03-2.46-3.22-2.32c-0.2,0.14,0.9,1.35,2.53,2.82 + c1.55,1.4,3.06,2.55,3.24,2.4C775.16-32.58,774-33.93,772.44-35.35z"/> + <path class="st107" d="M793.52-14.84c0.19-0.1-0.95-1.47-2.48-2.95c-1.56-1.51-2.98-2.61-3.19-2.52 + c-0.21,0.1,0.89,1.35,2.46,2.87C791.84-15.97,793.33-14.75,793.52-14.84z"/> + <path class="st107" d="M809.36,0.39c-1.54-1.55-2.95-2.73-3.15-2.66c-0.2,0.07,0.88,1.34,2.43,2.89 + c1.52,1.52,2.98,2.8,3.17,2.74C812,3.3,810.87,1.91,809.36,0.39z"/> + <path class="st107" d="M829.9,21.96c0.24,0.02-0.84-1.32-2.34-2.88c-1.54-1.6-2.94-2.85-3.18-2.85 + c-0.24-0.01,0.8,1.24,2.32,2.82C828.19,20.58,829.67,21.94,829.9,21.96z"/> + <path class="st107" d="M844.96,38.01c1.5,1.56,2.9,2.87,3,2.78c0.1-0.09-1.05-1.47-2.56-3.05c-1.51-1.58-2.86-2.79-2.98-2.71 + C842.3,35.1,843.41,36.4,844.96,38.01z"/> + <path class="st107" d="M843.56,37.73c-1.47-1.51-2.93-2.94-3.07-2.99c-0.12-0.04,0.91,1.09,2.23,2.44 + c1.52,1.56,2.91,2.92,3.04,2.97C845.88,40.2,844.9,39.11,843.56,37.73z"/> + <path class="st107" d="M827.56,21.53c0.22,0.13-0.66-0.88-1.96-2.21c-1.45-1.49-2.97-2.93-3.25-3.1 + c-0.27-0.16,0.85,1.07,2.36,2.6C826.11,20.24,827.33,21.4,827.56,21.53z"/> + <path class="st107" d="M806.96,0.59c-1.5-1.48-2.92-2.73-2.94-2.62c-0.02,0.11,1.04,1.23,2.43,2.6 + c1.55,1.53,2.85,2.71,2.9,2.61C809.38,3.09,808.34,1.95,806.96,0.59z"/> + <path class="st107" d="M788.09-17.14c1.41,1.33,2.65,2.39,2.83,2.41c0.19,0.02-0.98-1.23-2.52-2.68 + c-1.36-1.28-2.7-2.4-2.87-2.42C785.33-19.85,786.55-18.59,788.09-17.14z"/> + <path class="st107" d="M769.83-34.52c-1.55-1.38-3.02-2.51-3.07-2.38c-0.05,0.12,1.03,1.19,2.46,2.46 + c1.6,1.42,2.95,2.5,3.02,2.38C772.31-32.17,771.25-33.26,769.83-34.52z"/> + <path class="st107" d="M753.23-48.54c0.17-0.04-0.84-1.04-2.26-2.23c-1.55-1.3-3.16-2.43-3.34-2.39 + c-0.19,0.04,1.08,1.21,2.69,2.52C751.77-49.44,753.06-48.5,753.23-48.54z"/> + <path class="st107" d="M1243.73,334.17c0.51-0.49-0.21-1.87-1.6-3.04c-1.53-1.29-3.42-2.02-3.99-1.54 + c-0.56,0.47,0.4,2.07,2.02,3.37C1241.68,334.16,1243.21,334.68,1243.73,334.17z"/> + <path class="st107" d="M1222.02,315.44c-1.62-1.25-3.35-1.88-3.61-1.31c-0.24,0.54,0.72,1.87,2.21,3.06 + c1.66,1.33,3.26,1.9,3.57,1.28C1224.46,317.92,1223.51,316.59,1222.02,315.44z"/> + <path class="st107" d="M1202.47,300.2c-1.59-1.27-3.36-2.09-3.7-1.72c-0.31,0.33,0.65,1.62,2.06,2.79 + c1.63,1.34,3.31,2.12,3.68,1.71C1204.83,302.6,1203.93,301.36,1202.47,300.2z"/> + <path class="st107" d="M1182.43,284.78c-1.63-1.23-3.29-2.02-3.45-1.65c-0.15,0.35,0.88,1.53,2.38,2.7 + c1.67,1.3,3.2,2.03,3.41,1.62C1184.96,287.09,1183.93,285.91,1182.43,284.78z"/> + <path class="st107" d="M1164.88,272.33c0.18-0.25-0.85-1.32-2.36-2.43c-1.64-1.2-3.3-2.08-3.47-1.82 + c-0.17,0.27,1.08,1.5,2.79,2.75C1163.34,271.91,1164.7,272.58,1164.88,272.33z"/> + <path class="st107" d="M1144.81,257.68c0.22-0.12-0.81-1.08-2.3-2.14c-1.63-1.16-3.34-2.12-3.57-2.02 + c-0.23,0.1,1.06,1.24,2.74,2.43C1143.2,257.04,1144.58,257.8,1144.81,257.68z"/> + <path class="st107" d="M861.51,56.21c-1.49-1.53-2.87-2.87-2.88-2.82c-0.01,0.05,1.05,1.18,2.42,2.58 + c1.53,1.57,2.81,2.82,2.84,2.79C863.92,58.73,862.87,57.61,861.51,56.21z"/> + <path class="st107" d="M879.21,74.39c1.41,1.42,2.62,2.61,2.86,2.81c0.26,0.22-0.81-0.88-2.32-2.41 + c-1.35-1.37-2.64-2.63-2.89-2.85C876.58,71.71,877.7,72.87,879.21,74.39z"/> + <path class="st107" d="M897.68,92.68c1.42,1.38,2.61,2.53,2.78,2.68c0.18,0.16-0.98-0.98-2.51-2.47 + c-1.35-1.31-2.64-2.56-2.81-2.72C894.95,90,896.15,91.19,897.68,92.68z"/> + <path class="st107" d="M919.06,112.96c0.04,0.04-1.04-0.95-2.44-2.25c-1.52-1.42-2.95-2.76-2.97-2.78 + c-0.02-0.02,1.24,1.16,2.84,2.64C917.87,111.85,919.03,112.92,919.06,112.96z"/> + <path class="st107" d="M937.95,129.82c0.15,0.15-0.86-0.7-2.25-1.9c-1.52-1.32-3.06-2.7-3.24-2.88 + c-0.18-0.18,1.08,0.9,2.65,2.28C936.57,128.59,937.8,129.66,937.95,129.82z"/> + <path class="st107" d="M954.58,143.75c-1.59-1.28-3.01-2.47-2.97-2.48c0.04,0,1.2,0.91,2.67,2.09c1.64,1.32,2.97,2.4,2.94,2.43 + C957.21,145.82,956.05,144.93,954.58,143.75z"/> + <path class="st107" d="M973.79,158.27c1.68,1.21,3.13,2.29,3.19,2.39c0.06,0.09-1.08-0.67-2.57-1.75 + c-1.62-1.17-3.15-2.35-3.21-2.44C971.15,156.38,972.33,157.21,973.79,158.27z"/> + <path class="st107" d="M994.66,172.7c-1.66-1.06-3.25-2.15-3.34-2.27c-0.08-0.11,1.13,0.63,2.63,1.59 + c1.71,1.09,3.24,2.1,3.33,2.22C997.35,174.35,996.18,173.67,994.66,172.7z"/> + <path class="st107" d="M1014.98,184.5c1.63,0.89,2.98,1.66,3.15,1.82c0.19,0.17-1.15-0.48-2.9-1.43 + c-1.55-0.85-2.99-1.71-3.18-1.88C1011.84,182.82,1013.23,183.54,1014.98,184.5z"/> + <path class="st107" d="M1036.23,195.1c1.84,0.82,3.44,1.58,3.52,1.69c0.07,0.1-1.18-0.39-2.82-1.11 + c-1.77-0.79-3.46-1.64-3.53-1.74C1033.34,193.84,1034.64,194.38,1036.23,195.1z"/> + <path class="st107" d="M1058.12,205.05c1.68,0.82,3.08,1.53,3.36,1.71c0.3,0.18-0.96-0.4-2.75-1.26 + c-1.77-0.85-3.43-1.67-3.46-1.74C1055.24,203.69,1056.5,204.26,1058.12,205.05z"/> + <path class="st107" d="M1080.07,216.43c-1.74-0.95-3.33-1.8-3.32-1.78c0.02,0.01,1.27,0.71,2.87,1.59 + c1.79,0.99,3.25,1.79,3.27,1.78C1082.91,218,1081.67,217.3,1080.07,216.43z"/> + <path class="st107" d="M1100.53,228.47c1.6,0.99,2.99,1.78,3.28,1.86c0.31,0.09-0.88-0.73-2.61-1.77 + c-1.55-0.94-3.03-1.76-3.33-1.87C1097.55,226.57,1098.81,227.41,1100.53,228.47z"/> + <path class="st107" d="M1121.31,241.83c1.56,1.04,2.94,1.82,3.16,1.79c0.24-0.04-1.02-1.03-2.72-2.14 + c-1.51-0.98-2.99-1.81-3.2-1.8C1118.3,239.69,1119.62,240.7,1121.31,241.83z"/> + <path class="st107" d="M736.84-60.58c-0.19,0.01,0.89,0.97,2.32,2.08c1.42,1.1,2.88,2.12,3.1,2.15 + c0.22,0.02-0.87-0.98-2.35-2.14C738.38-59.68,737.03-60.59,736.84-60.58z"/> + <path class="st107" d="M761.55-40.46c0.07-0.08-1.07-1.17-2.58-2.45c-1.52-1.28-2.7-2.15-2.77-2.05 + c-0.06,0.09,1.1,1.18,2.54,2.39C760.2-41.35,761.49-40.37,761.55-40.46z"/> + <path class="st107" d="M780.44-23.64c0.17,0.03-0.9-1.06-2.34-2.38c-1.47-1.34-2.74-2.38-2.88-2.37 + c-0.14,0.01,0.95,1.1,2.31,2.33C778.9-24.81,780.27-23.67,780.44-23.64z"/> + <path class="st107" d="M796.73-8.54c-1.45-1.39-2.69-2.48-2.83-2.49c-0.13-0.01,0.94,1.11,2.28,2.39 + c1.36,1.3,2.7,2.49,2.86,2.54C799.2-6.06,798.14-7.18,796.73-8.54z"/> + <path class="st107" d="M817.41,11.95c0.24,0.15-0.72-0.9-2.13-2.31c-1.44-1.44-2.71-2.62-2.92-2.73 + c-0.21-0.11,0.73,0.9,2.09,2.26C815.77,10.49,817.16,11.8,817.41,11.95z"/> + <path class="st107" d="M832.8,27.57c1.32,1.34,2.67,2.65,2.87,2.78c0.2,0.13-0.82-0.98-2.21-2.39 + c-1.42-1.45-2.66-2.64-2.83-2.73C830.46,25.14,831.46,26.22,832.8,27.57z"/> + <path class="st107" d="M1248.9,342.83c-1.5-1.29-3.12-1.91-3.69-1.41c-0.56,0.49,0.16,1.99,1.56,3.27 + c1.39,1.27,3.06,1.88,3.66,1.35C1251.06,345.5,1250.41,344.12,1248.9,342.83z"/> + <path class="st107" d="M1231.23,329.76c0.36-0.6-0.56-1.99-2.12-3.23c-1.53-1.21-3.04-1.74-3.33-1.15 + c-0.29,0.58,0.71,2.13,2.13,3.29C1229.39,329.87,1230.87,330.35,1231.23,329.76z"/> + <path class="st107" d="M1211.9,313.54c0.33-0.49-0.62-1.81-2.18-3.05c-1.52-1.22-3.01-1.83-3.27-1.35 + c-0.26,0.48,0.77,1.94,2.2,3.11C1210.11,313.44,1211.57,314.02,1211.9,313.54z"/> + <path class="st107" d="M1190.32,294.58c-1.51-1.21-3.01-1.93-3.26-1.58c-0.25,0.36,0.79,1.72,2.2,2.88 + c1.43,1.18,2.92,1.88,3.24,1.53C1192.81,297.05,1191.86,295.81,1190.32,294.58z"/> + <path class="st107" d="M1172.97,281.54c0.32-0.24-0.64-1.38-2.18-2.59c-1.51-1.19-3.01-1.99-3.27-1.76 + c-0.26,0.24,0.78,1.47,2.2,2.63C1171.14,280.97,1172.66,281.78,1172.97,281.54z"/> + <path class="st107" d="M1151.05,263.75c-1.53-1.16-3.02-2-3.27-1.87c-0.25,0.14,0.79,1.24,2.24,2.37 + c1.43,1.11,2.95,1.98,3.25,1.84C1153.57,265.95,1152.61,264.93,1151.05,263.75z"/> + <path class="st107" d="M853.88,48.89c0.04-0.02-1.06-1.18-2.5-2.65c-1.44-1.47-2.54-2.54-2.57-2.5 + c-0.03,0.03,1.09,1.22,2.46,2.61C852.65,47.74,853.85,48.91,853.88,48.89z"/> + <path class="st107" d="M872.09,67.38c0.13,0.1-0.94-1.01-2.34-2.43c-1.43-1.44-2.63-2.63-2.73-2.69 + c-0.1-0.06,0.98,1.07,2.3,2.4C870.66,66,871.96,67.28,872.09,67.38z"/> + <path class="st107" d="M890.41,85.63c0.14,0.12-0.94-0.96-2.35-2.34c-1.44-1.42-2.65-2.6-2.76-2.69c-0.11-0.08,0.97,1,2.3,2.32 + C888.95,84.23,890.27,85.51,890.41,85.63z"/> + <path class="st107" d="M909.05,103.59c0.03,0.03-1.08-1.01-2.56-2.42c-1.44-1.37-2.63-2.5-2.61-2.48 + c0.02,0.02,1.21,1.17,2.58,2.46C907.87,102.48,909.03,103.57,909.05,103.59z"/> + <path class="st107" d="M927.81,120.79c0.13,0.13-0.93-0.79-2.4-2.12c-1.44-1.3-2.75-2.49-2.84-2.59 + c-0.09-0.1,1.05,0.93,2.42,2.16C926.36,119.48,927.68,120.66,927.81,120.79z"/> + <path class="st107" d="M943.9,134.64c1.41,1.18,2.81,2.35,3,2.54c0.2,0.2-0.78-0.58-2.29-1.84c-1.49-1.24-2.84-2.41-3.02-2.58 + C941.41,132.57,942.47,133.45,943.9,134.64z"/> + <path class="st107" d="M963.36,150.21c1.44,1.1,2.87,2.2,3.06,2.38c0.2,0.19-0.8-0.53-2.35-1.7c-1.52-1.16-2.9-2.26-3.08-2.43 + C960.81,148.29,961.89,149.1,963.36,150.21z"/> + <path class="st107" d="M983.29,164.64c1.48,1.01,2.94,2.02,3.14,2.2c0.21,0.19-0.83-0.46-2.42-1.54 + c-1.56-1.06-2.97-2.08-3.15-2.25C980.67,162.88,981.79,163.62,983.29,164.64z"/> + <path class="st107" d="M1007.03,179.74c0.01,0.06-1.25-0.63-2.91-1.62c-1.61-0.96-2.91-1.8-2.87-1.83 + c0.04-0.02,1.4,0.77,2.93,1.68C1005.75,178.91,1007.02,179.69,1007.03,179.74z"/> + <path class="st107" d="M1028.24,191.07c0.13,0.11-1.1-0.43-2.78-1.27c-1.64-0.82-3.1-1.62-3.18-1.71 + c-0.08-0.09,1.24,0.55,2.8,1.33C1026.64,190.2,1028.12,190.96,1028.24,191.07z"/> + <path class="st107" d="M1046.73,199.4c1.58,0.73,3.13,1.48,3.31,1.6c0.18,0.12-0.98-0.38-2.69-1.17 + c-1.68-0.76-3.2-1.48-3.34-1.6C1043.86,198.13,1045.12,198.66,1046.73,199.4z"/> + <path class="st107" d="M1068.66,210.33c-1.64-0.87-3.06-1.61-3.08-1.62c-0.02-0.01,1.35,0.72,2.89,1.54 + c1.58,0.85,2.96,1.58,3.04,1.61C1071.59,211.89,1070.35,211.22,1068.66,210.33z"/> + <path class="st107" d="M1092.51,223.94c0.07-0.04-1.14-0.82-2.8-1.8c-1.63-0.96-2.99-1.72-3.01-1.67 + c-0.02,0.05,1.31,0.9,2.83,1.82C1091.11,223.24,1092.44,223.98,1092.51,223.94z"/> + <path class="st107" d="M1110.46,235.1c-1.58-1.03-2.99-1.83-3.06-1.74c-0.07,0.09,1.2,1.05,2.68,2.03 + c1.52,1.01,2.89,1.79,3.03,1.72C1113.24,237.04,1112.09,236.16,1110.46,235.1z"/> + <path class="st107" d="M1133.37,251.19c0.08-0.2-1.09-1.2-2.73-2.34c-1.58-1.09-2.9-1.82-2.91-1.6 + c-0.01,0.23,1.25,1.31,2.74,2.36C1132.01,250.7,1133.29,251.39,1133.37,251.19z"/> + <path class="st107" d="M750.9-48.47c0.09-0.06-1.16-1.2-2.55-2.31c-1.48-1.18-2.65-1.99-2.66-1.85c0,0.13,0.96,0.99,2.32,2.08 + C749.46-49.38,750.81-48.41,750.9-48.47z"/> + <path class="st107" d="M770.02-32.19c0.07-0.07-1.18-1.27-2.54-2.45c-1.45-1.26-2.58-2.11-2.56-1.96 + c0.02,0.14,0.99,1.07,2.32,2.22C768.66-33.15,769.96-32.12,770.02-32.19z"/> + <path class="st107" d="M786.16-17.33c1.4,1.29,2.64,2.34,2.66,2.24c0.02-0.1-1.24-1.36-2.57-2.59 + c-1.24-1.14-2.32-2.04-2.44-2.04C783.67-19.72,784.72-18.65,786.16-17.33z"/> + <path class="st107" d="M805.23,0.41c-1.31-1.28-2.68-2.51-2.83-2.56c-0.15-0.04,0.67,0.83,1.9,2.03 + c1.35,1.32,2.74,2.59,3.01,2.75C807.56,2.78,806.55,1.7,805.23,0.41z"/> + <path class="st107" d="M825.71,20.82c0.07-0.02-1.13-1.29-2.44-2.6c-1.39-1.38-2.48-2.39-2.47-2.28 + c0.01,0.1,0.94,1.09,2.22,2.36C824.38,19.67,825.64,20.84,825.71,20.82z"/> + <path class="st107" d="M843.97,39.24c0.15,0.08-0.98-1.13-2.29-2.45c-1.2-1.21-2.36-2.33-2.57-2.48 + c-0.25-0.17,0.64,0.8,2.02,2.2C842.5,37.89,843.82,39.16,843.97,39.24z"/> + <path class="st107" d="M1237.83,341.66c0.4-0.59-0.55-2.26-1.95-3.41c-1.29-1.06-2.69-1.56-3.13-1.11 + c-0.52,0.54,0.2,1.97,1.66,3.28C1235.82,341.68,1237.42,342.26,1237.83,341.66z"/> + <path class="st107" d="M1216.87,321.63c-1.42-1.22-2.89-1.79-3.2-1.24c-0.29,0.5,0.44,1.74,1.73,2.93c1.4,1.29,2.99,2,3.4,1.53 + C1219.2,324.39,1218.25,322.82,1216.87,321.63z"/> + <path class="st107" d="M1199.7,308.05c0.44-0.3-0.44-1.72-1.8-2.92c-1.22-1.08-2.67-1.84-3.14-1.65 + c-0.56,0.23,0.11,1.42,1.51,2.74C1197.65,307.51,1199.24,308.36,1199.7,308.05z"/> + <path class="st107" d="M1180.62,291.41c0.3-0.3-0.76-1.7-2.15-2.85c-1.28-1.06-2.61-1.77-2.97-1.57 + c-0.42,0.23,0.39,1.39,1.85,2.67C1178.77,290.9,1180.31,291.72,1180.62,291.41z"/> + <path class="st107" d="M1158.22,273.48c1.45,1.18,2.89,1.95,3.08,1.66c0.19-0.29-1-1.63-2.41-2.72 + c-1.3-1.01-2.57-1.69-2.82-1.51C1155.78,271.12,1156.74,272.28,1158.22,273.48z"/> + <path class="st107" d="M1139.61,257.26c-1.4-1.09-2.93-1.97-3.17-1.84c-0.22,0.13,0.59,1.01,1.89,2.06 + c1.43,1.15,2.97,2.09,3.34,2.03C1142.02,259.45,1141.02,258.36,1139.61,257.26z"/> + <path class="st107" d="M860.08,55.45c-1.29-1.31-2.63-2.62-2.77-2.69c-0.13-0.07,0.69,0.81,1.91,2.04 + c1.34,1.36,2.7,2.68,2.95,2.87C862.4,57.85,861.38,56.78,860.08,55.45z"/> + <path class="st107" d="M878.18,73.65c-1.36-1.35-2.54-2.5-2.58-2.5c-0.04,0,0.84,0.92,2.1,2.18c1.37,1.36,2.68,2.62,2.82,2.71 + C880.64,76.13,879.49,74.96,878.18,73.65z"/> + <path class="st107" d="M896.58,91.73c-1.37-1.33-2.55-2.45-2.6-2.46c-0.04-0.01,0.86,0.89,2.13,2.12 + c1.38,1.33,2.7,2.57,2.83,2.67C899.08,94.15,897.91,93.01,896.58,91.73z"/> + <path class="st107" d="M914.85,109.07c1.4,1.29,2.69,2.44,2.75,2.49c0.07,0.05-1.17-1.09-2.52-2.34 + c-1.25-1.15-2.36-2.17-2.5-2.29C912.42,106.8,913.41,107.75,914.85,109.07z"/> + <path class="st107" d="M936.51,128.34c0.2,0.17-0.91-0.78-2.27-1.95c-1.22-1.06-2.49-2.17-2.75-2.39 + c-0.31-0.27,0.56,0.51,1.99,1.75C934.89,126.97,936.3,128.16,936.51,128.34z"/> + <path class="st107" d="M955.87,144.31c0.11,0.09-1.15-0.89-2.55-2.01c-1.28-1.03-2.47-2-2.65-2.15 + c-0.21-0.18,0.77,0.63,2.26,1.82C954.37,143.13,955.76,144.22,955.87,144.31z"/> + <path class="st107" d="M972.77,157.11c1.48,1.07,2.81,2.02,2.84,2.05c0.03,0.03-1.33-0.92-2.76-1.96 + c-1.31-0.95-2.47-1.82-2.59-1.91C970.14,155.19,971.26,156.02,972.77,157.11z"/> + <path class="st107" d="M993.42,171.24c-1.46-0.93-2.9-1.9-3.01-1.98c-0.1-0.08,0.84,0.54,2.21,1.42 + c1.5,0.97,3.01,1.92,3.24,2.07C996.08,172.91,994.88,172.18,993.42,171.24z"/> + <path class="st107" d="M1016.78,184.97c0.11,0.07-1.26-0.64-2.78-1.48c-1.39-0.77-2.67-1.51-2.87-1.63 + c-0.23-0.14,0.84,0.46,2.46,1.36C1015.17,184.09,1016.67,184.9,1016.78,184.97z"/> + <path class="st107" d="M1035.45,194.28c-1.62-0.74-2.96-1.39-2.97-1.41c-0.01-0.01,1.06,0.49,2.58,1.19 + c1.62,0.74,3.17,1.42,3.28,1.48C1038.44,195.6,1037.02,194.99,1035.45,194.28z"/> + <path class="st107" d="M1056.89,204.33c1.59,0.81,3.02,1.52,3.06,1.52c0.04,0-1.4-0.76-2.94-1.53 + c-1.41-0.71-2.67-1.33-2.8-1.39C1054.06,202.87,1055.26,203.5,1056.89,204.33z"/> + <path class="st107" d="M1081.04,217.57c0.05-0.05-1.36-0.94-2.86-1.8c-1.6-0.92-2.8-1.55-2.74-1.45 + c0.05,0.09,1.15,0.78,2.6,1.64C1079.59,216.88,1081,217.63,1081.04,217.57z"/> + <path class="st107" d="M1101.67,230.55c0.19-0.03-1.06-0.98-2.53-1.93c-1.35-0.87-2.67-1.62-2.92-1.66 + c-0.29-0.05,0.69,0.72,2.24,1.75C1099.98,229.72,1101.48,230.58,1101.67,230.55z"/> + <path class="st107" d="M1119.65,242.55c-1.43-1.02-2.95-1.91-3.16-1.84c-0.19,0.07,0.66,0.86,1.99,1.85 + c1.46,1.08,3,2.01,3.34,2.01C1122.15,244.57,1121.09,243.59,1119.65,242.55z"/> + <path class="st107" d="M736.93-58.28c1.37,1.05,2.67,1.94,2.93,2.01c0.3,0.08-0.78-0.88-2.34-2.08 + c-1.36-1.04-2.63-1.88-2.79-1.86C734.59-60.18,735.6-59.3,736.93-58.28z"/> + <path class="st107" d="M757.22-42.52c-1.33-1.12-2.64-2.11-2.96-2.24c-0.3-0.12,0.58,0.74,1.84,1.81 + c1.53,1.29,2.92,2.35,3.14,2.39C759.45-40.52,758.55-41.4,757.22-42.52z"/> + <path class="st107" d="M778.26-23.93c0.15,0-0.78-0.93-2.1-2.12c-1.42-1.28-2.84-2.42-2.87-2.31c-0.03,0.1,1,1.12,2.33,2.3 + C776.96-24.86,778.12-23.93,778.26-23.93z"/> + <path class="st107" d="M794.99-8.65c-1.29-1.23-2.55-2.34-2.87-2.51c-0.3-0.17,0.55,0.76,1.77,1.92 + c1.48,1.41,2.83,2.59,3.06,2.67C797.15-6.5,796.28-7.43,794.99-8.65z"/> + <path class="st107" d="M815.44,11.33c0.13,0.02-0.77-0.96-2.06-2.23c-1.39-1.37-2.76-2.6-2.79-2.51 + c-0.03,0.09,0.99,1.17,2.28,2.43C814.18,10.31,815.31,11.31,815.44,11.33z"/> + <path class="st107" d="M831.1,27.09c1.27,1.28,2.46,2.38,2.66,2.48c0.23,0.12-0.81-1.01-2.27-2.47 + c-1.26-1.26-2.42-2.34-2.52-2.33C828.89,24.78,829.86,25.85,831.1,27.09z"/> + <path class="st107" d="M1244.06,354.16c0.39-0.64-0.34-2.08-1.66-3.29c-1.41-1.29-3.09-1.84-3.36-1.1 + c-0.26,0.71,0.57,2.19,1.93,3.4C1242.29,354.36,1243.67,354.79,1244.06,354.16z"/> + <path class="st107" d="M1223.79,333.78c-1.28-1.24-2.73-1.98-3.28-1.66c-0.52,0.3,0.1,1.73,1.28,2.96 + c1.44,1.5,2.98,2.27,3.5,1.75C1225.74,336.38,1225.07,335.02,1223.79,333.78z"/> + <path class="st107" d="M1204.99,316.48c-1.29-1.23-2.72-2.02-3.23-1.78c-0.49,0.23,0.18,1.57,1.37,2.79 + c1.45,1.48,2.97,2.31,3.44,1.88C1206.98,319,1206.28,317.71,1204.99,316.48z"/> + <path class="st107" d="M1185.94,299.2c-1.3-1.17-2.68-1.93-3.06-1.67c-0.43,0.28,0.52,1.72,2.03,3.06 + c1.34,1.19,2.62,1.82,2.91,1.43C1188.09,301.63,1187.27,300.39,1185.94,299.2z"/> + <path class="st107" d="M1166.81,282.34c-1.32-1.13-2.67-1.88-2.96-1.65c-0.29,0.23,0.56,1.42,1.85,2.59 + c1.49,1.34,2.95,2.14,3.17,1.75C1169.07,284.67,1168.17,283.51,1166.81,282.34z"/> + <path class="st107" d="M1146.72,266.93c1.36,1.13,2.65,1.87,2.93,1.68c0.28-0.18-0.57-1.24-1.91-2.35 + c-1.48-1.24-3-2.12-3.18-1.84C1144.41,264.68,1145.38,265.81,1146.72,266.93z"/> + <path class="st107" d="M849.8,45.53c-1.26-1.27-2.42-2.36-2.52-2.38c-0.11-0.02,0.86,1.04,2.1,2.29 + c1.41,1.42,2.71,2.63,2.71,2.54C852.09,47.9,851.11,46.85,849.8,45.53z"/> + <path class="st107" d="M868.15,64c-1.26-1.26-2.43-2.38-2.58-2.45c-0.15-0.07,0.78,0.95,2.04,2.2c1.44,1.44,2.72,2.64,2.77,2.6 + C870.42,66.32,869.45,65.31,868.15,64z"/> + <path class="st107" d="M886.73,82.43c-1.28-1.25-2.51-2.42-2.78-2.62c-0.26-0.19,0.61,0.74,1.82,1.94 + c1.47,1.45,2.78,2.66,2.97,2.77C888.9,84.6,888,83.68,886.73,82.43z"/> + <path class="st107" d="M907.31,102.28c0.1,0.04-0.85-0.89-2.15-2.12c-1.41-1.33-2.76-2.56-2.75-2.49 + c0.01,0.07,1.05,1.11,2.36,2.35C906.08,101.25,907.2,102.24,907.31,102.28z"/> + <path class="st107" d="M923.89,117.38c-1.3-1.16-2.52-2.23-2.72-2.36c-0.22-0.14,0.9,0.93,2.4,2.27 + c1.33,1.19,2.46,2.13,2.54,2.15C926.2,119.47,925.21,118.57,923.89,117.38z"/> + <path class="st107" d="M942.37,133.57c1.36,1.14,2.6,2.12,2.85,2.28c0.27,0.17-0.83-0.77-2.34-2.02 + c-1.33-1.11-2.54-2.11-2.68-2.18C940.06,131.58,941.05,132.47,942.37,133.57z"/> + <path class="st107" d="M964.75,151.3c0.2,0.1-0.74-0.63-2.11-1.67c-1.52-1.16-2.95-2.25-3.04-2.27 + c-0.08-0.02,0.99,0.86,2.32,1.88C963.29,150.29,964.56,151.19,964.75,151.3z"/> + <path class="st107" d="M981.98,163.81c1.42,0.98,2.65,1.75,2.78,1.8c0.13,0.04-0.9-0.67-2.31-1.63c-1.53-1.05-2.99-2.04-3-2 + C979.45,162.02,980.57,162.85,981.98,163.81z"/> + <path class="st107" d="M1005.31,178.6c0.14,0.04-0.91-0.6-2.35-1.46c-1.59-0.95-3.07-1.84-3.1-1.81 + c-0.02,0.03,1.13,0.78,2.57,1.65C1003.89,177.86,1005.16,178.56,1005.31,178.6z"/> + <path class="st107" d="M1026.47,190.09c0.17,0.04-0.9-0.51-2.38-1.26c-1.64-0.83-3.18-1.61-3.23-1.59 + c-0.05,0.02,1.13,0.68,2.61,1.44C1024.98,189.44,1026.3,190.05,1026.47,190.09z"/> + <path class="st107" d="M1048.2,200.22c0.07-0.02-1.05-0.6-2.57-1.32c-1.62-0.77-3.18-1.46-3.12-1.38 + c0.05,0.08,1.29,0.7,2.83,1.44C1046.85,199.68,1048.13,200.24,1048.2,200.22z"/> + <path class="st107" d="M1069.44,211.47c0.13-0.03-0.94-0.71-2.41-1.53c-1.59-0.89-3.13-1.65-3.13-1.55 + c0,0.09,1.18,0.83,2.66,1.66C1068.04,210.87,1069.31,211.5,1069.44,211.47z"/> + <path class="st107" d="M1090.14,224.1c0.21-0.03-0.77-0.79-2.19-1.7c-1.57-1.01-3.1-1.84-3.19-1.73 + c-0.08,0.09,1.02,0.92,2.44,1.83C1088.64,223.44,1089.93,224.13,1090.14,224.1z"/> + <path class="st107" d="M1107.55,236.37c1.41,1,2.67,1.7,2.84,1.58c0.17-0.12-0.81-0.99-2.21-1.99 + c-1.52-1.07-3.04-1.93-3.08-1.73C1105.05,234.42,1106.14,235.36,1107.55,236.37z"/> + <path class="st107" d="M1130.19,252.85c0.27-0.11-0.62-1.07-1.97-2.13c-1.51-1.18-3.02-2.07-3.18-1.86 + c-0.14,0.18,0.87,1.22,2.21,2.28C1128.62,252.21,1129.91,252.97,1130.19,252.85z"/> + <path class="st107" d="M745.51-50.42c1.28,1.02,2.59,1.92,2.78,1.91c0.19-0.01-0.77-0.93-2.07-1.97 + c-1.31-1.04-2.63-1.95-2.81-1.93C743.23-52.38,744.2-51.47,745.51-50.42z"/> + <path class="st107" d="M764.78-34.44c1.25,1.09,2.54,2.04,2.72,2.04c0.19,0-0.75-0.96-2.03-2.07 + c-1.28-1.11-2.58-2.08-2.75-2.06C762.55-36.51,763.5-35.55,764.78-34.44z"/> + <path class="st107" d="M786.39-15.44c0.17-0.01-0.79-1.03-2.04-2.18c-1.27-1.16-2.52-2.18-2.68-2.15 + c-0.15,0.02,0.81,1.06,2.06,2.21C784.98-16.42,786.22-15.43,786.39-15.44z"/> + <path class="st107" d="M803.13,0.05c-1.22-1.18-2.52-2.31-2.74-2.36c-0.23-0.06,0.61,0.9,1.87,2.12 + c1.21,1.17,2.49,2.26,2.72,2.32C805.21,2.2,804.36,1.25,803.13,0.05z"/> + <path class="st107" d="M823.45,20.19c0.16,0-0.78-1.05-2.01-2.27c-1.24-1.23-2.46-2.31-2.61-2.3c-0.14,0.01,0.8,1.09,2.03,2.31 + C822.07,19.13,823.29,20.19,823.45,20.19z"/> + <path class="st107" d="M841.79,38.49c0.13-0.01-0.85-1.12-2.06-2.33c-1.26-1.26-2.43-2.31-2.55-2.28 + c-0.12,0.03,0.86,1.15,2.08,2.37C840.49,37.48,841.65,38.5,841.79,38.49z"/> + <path class="st107" d="M1249.94,367.38c0.45-0.66-0.28-2.3-1.52-3.44c-1.29-1.19-2.73-1.65-3.16-0.98 + c-0.42,0.65,0.3,2.3,1.53,3.48C1248.04,367.63,1249.48,368.06,1249.94,367.38z"/> + <path class="st107" d="M1229.9,346.14c-1.28-1.2-2.69-1.73-3.07-1.14c-0.37,0.58,0.39,2.18,1.61,3.37 + c1.24,1.21,2.64,1.7,3.05,1.1C1231.9,348.87,1231.14,347.29,1229.9,346.14z"/> + <path class="st107" d="M1213.09,331.39c0.32-0.57-0.52-2.09-1.79-3.24c-1.3-1.18-2.63-1.7-2.92-1.14 + c-0.28,0.56,0.57,2.13,1.8,3.28C1211.43,331.46,1212.76,331.96,1213.09,331.39z"/> + <path class="st107" d="M1193.01,310.61c-1.23-1.19-2.67-1.95-3.06-1.6c-0.39,0.37,0.31,1.7,1.55,2.96 + c1.2,1.21,2.62,1.94,3.03,1.56C1194.95,313.15,1194.25,311.81,1193.01,310.61z"/> + <path class="st107" d="M1175.96,295.83c0.35-0.33-0.43-1.61-1.69-2.78c-1.25-1.16-2.66-1.93-2.98-1.61 + c-0.32,0.32,0.46,1.62,1.71,2.82C1174.22,295.44,1175.61,296.17,1175.96,295.83z"/> + <path class="st107" d="M1157.17,278.6c0.28-0.29-0.61-1.54-1.87-2.64c-1.3-1.13-2.65-1.87-2.9-1.59 + c-0.26,0.29,0.63,1.54,1.89,2.68C1155.55,278.18,1156.89,278.9,1157.17,278.6z"/> + <path class="st107" d="M1136.24,259.69c-1.28-1.07-2.69-1.89-2.98-1.71c-0.29,0.18,0.53,1.25,1.83,2.38 + c1.25,1.08,2.64,1.87,2.95,1.68C1138.36,261.85,1137.53,260.78,1136.24,259.69z"/> + <path class="st107" d="M857.49,54.54c1.2,1.21,2.43,2.3,2.59,2.32c0.17,0.03-0.75-1-1.98-2.23c-1.23-1.23-2.46-2.36-2.61-2.37 + C855.34,52.24,856.26,53.3,857.49,54.54z"/> + <path class="st107" d="M878.44,75.14c0.15,0.01-0.81-1.03-2.04-2.24c-1.24-1.23-2.45-2.33-2.59-2.33 + c-0.13,0,0.82,1.08,2.05,2.29C877.08,74.06,878.29,75.12,878.44,75.14z"/> + <path class="st107" d="M894.32,90.86c1.22,1.18,2.45,2.22,2.6,2.24c0.15,0.02-0.8-0.99-2.04-2.18c-1.25-1.2-2.48-2.29-2.61-2.3 + C892.13,88.63,893.08,89.67,894.32,90.86z"/> + <path class="st107" d="M915.59,110.6c0.19,0.05-0.72-0.87-1.98-2.03c-1.25-1.15-2.52-2.25-2.7-2.29 + c-0.18-0.04,0.72,0.91,1.99,2.09C914.13,109.51,915.39,110.54,915.59,110.6z"/> + <path class="st107" d="M929.77,123.29c-0.07,0.06,1.01,1.11,2.27,2.2c1.3,1.12,2.44,1.98,2.53,1.94 + c0.09-0.04-0.99-1.05-2.26-2.14C930.99,124.16,929.84,123.23,929.77,123.29z"/> + <path class="st107" d="M951.67,141.47c-1.33-1.06-2.57-1.99-2.68-1.97c-0.12,0.02,0.93,0.99,2.22,2.02 + c1.29,1.04,2.55,1.91,2.68,1.91C954.02,143.42,952.96,142.5,951.67,141.47z"/> + <path class="st107" d="M973.62,158.39c0.15-0.01-0.9-0.84-2.23-1.81c-1.35-0.98-2.64-1.86-2.78-1.85 + c-0.13,0.01,0.91,0.9,2.24,1.88C972.17,157.57,973.47,158.39,973.62,158.39z"/> + <path class="st107" d="M991.21,170.67c1.38,0.89,2.58,1.53,2.65,1.45c0.06-0.07-1.13-0.91-2.49-1.78 + c-1.41-0.9-2.61-1.61-2.65-1.52C988.68,168.91,989.87,169.81,991.21,170.67z"/> + <path class="st107" d="M1014.68,184.48c0.07-0.08-1.13-0.81-2.55-1.6c-1.46-0.81-2.7-1.43-2.75-1.34 + c-0.05,0.09,1.16,0.9,2.55,1.67C1013.33,183.99,1014.6,184.56,1014.68,184.48z"/> + <path class="st107" d="M1036.14,195.28c0.16-0.05-1.01-0.67-2.46-1.34c-1.48-0.69-2.87-1.27-3.01-1.21 + c-0.14,0.05,1.01,0.73,2.46,1.41C1034.58,194.82,1035.98,195.34,1036.14,195.28z"/> + <path class="st107" d="M1055.26,204.31c-1.45-0.76-2.82-1.36-2.96-1.29c-0.14,0.07,1,0.81,2.41,1.56 + c1.41,0.75,2.78,1.33,2.94,1.26C1057.81,205.77,1056.67,205.04,1055.26,204.31z"/> + <path class="st107" d="M1076.41,216.36c-1.36-0.84-2.82-1.58-3.06-1.53c-0.25,0.04,0.68,0.8,2.08,1.69 + c1.34,0.85,2.77,1.56,3.04,1.51C1078.73,217.97,1077.79,217.21,1076.41,216.36z"/> + <path class="st107" d="M1098.81,231.56c0.21-0.13-0.8-1.05-2.15-1.99c-1.36-0.94-2.73-1.66-2.91-1.54 + c-0.18,0.13,0.83,1.07,2.17,2.02C1097.25,230.99,1098.61,231.69,1098.81,231.56z"/> + <path class="st107" d="M1115.96,244.87c1.33,1.01,2.56,1.62,2.7,1.38c0.14-0.24-0.93-1.34-2.25-2.31 + c-1.37-1.01-2.61-1.66-2.72-1.41C1113.59,242.77,1114.67,243.9,1115.96,244.87z"/> + <path class="st107" d="M737.22-55.85c0.1-0.13-0.98-1.11-2.33-2.12c-1.35-1-2.54-1.71-2.58-1.52c-0.03,0.17,0.9,1.02,2.13,1.94 + C735.8-56.53,737.12-55.72,737.22-55.85z"/> + <path class="st107" d="M753.79-42.24c1.34,1.11,2.64,2.02,2.85,1.98c0.21-0.03-0.8-1.06-2.09-2.13 + c-1.16-0.96-2.31-1.76-2.6-1.81C751.63-44.24,752.47-43.35,753.79-42.24z"/> + <path class="st107" d="M775.71-23.75c0.23,0-0.74-1.06-2-2.18c-1.29-1.15-2.51-2.05-2.65-1.95c-0.13,0.09,0.64,0.93,1.8,1.98 + C774.18-24.71,775.47-23.74,775.71-23.75z"/> + <path class="st107" d="M794.5-6.5c0.11-0.12-0.91-1.24-2.19-2.42c-1.28-1.18-2.41-2.05-2.45-1.86 + c-0.04,0.16,0.83,1.14,1.99,2.22C793.14-7.36,794.4-6.39,794.5-6.5z"/> + <path class="st107" d="M811.18,9.13c-1.26-1.25-2.46-2.25-2.68-2.23c-0.19,0.02,0.49,0.86,1.63,1.99 + c1.27,1.26,2.57,2.35,2.88,2.44C813.3,11.4,812.4,10.32,811.18,9.13z"/> + <path class="st107" d="M831.43,29.47c0.21,0-0.75-1.13-1.97-2.35c-1.1-1.1-2.2-2.05-2.49-2.14c-0.32-0.1,0.47,0.9,1.72,2.16 + C829.97,28.42,831.21,29.47,831.43,29.47z"/> + <path class="st107" d="M1234.43,361.91c1.25,1.26,2.71,1.74,3.04,1.03c0.34-0.73-0.48-2.39-1.74-3.56 + c-1.15-1.07-2.32-1.47-2.76-0.93C1232.48,359.07,1233.14,360.61,1234.43,361.91z"/> + <path class="st107" d="M1216.13,343.02c1.24,1.34,2.65,2.02,3.11,1.5c0.44-0.5-0.3-2.11-1.51-3.34 + c-1.09-1.11-2.35-1.71-2.84-1.35C1214.34,340.22,1214.91,341.7,1216.13,343.02z"/> + <path class="st107" d="M1199.45,322.73c-1.24-1.23-2.58-1.83-2.88-1.26c-0.27,0.51,0.36,1.77,1.47,2.94 + c1.25,1.31,2.64,2.02,3.04,1.55C1201.46,325.5,1200.67,323.95,1199.45,322.73z"/> + <path class="st107" d="M1182.83,307.57c0.26-0.51-0.61-1.96-1.89-3.15c-1.27-1.19-2.54-1.74-2.74-1.18 + c-0.17,0.5,0.58,1.76,1.72,2.89C1181.19,307.38,1182.57,308.06,1182.83,307.57z"/> + <path class="st107" d="M1164.32,289.69c0.36-0.3-0.47-1.68-1.71-2.84c-1.27-1.2-2.58-1.89-2.85-1.49 + c-0.25,0.36,0.41,1.47,1.54,2.59C1162.57,289.21,1163.94,290,1164.32,289.69z"/> + <path class="st107" d="M1145.65,272.28c0.21-0.38-0.75-1.66-2.05-2.78c-1.3-1.11-2.54-1.71-2.68-1.28 + c-0.12,0.38,0.69,1.5,1.87,2.56C1144.09,271.94,1145.45,272.65,1145.65,272.28z"/> + <path class="st107" d="M847.06,45.49c1.27,1.28,2.5,2.33,2.7,2.32c0.19-0.01-0.78-1.16-2-2.39c-1.1-1.1-2.19-2.06-2.45-2.13 + C845,43.21,845.8,44.22,847.06,45.49z"/> + <path class="st107" d="M868.12,66.14c0.1-0.11-0.92-1.27-2.16-2.5c-1.25-1.24-2.36-2.16-2.39-1.98 + c-0.03,0.16,0.83,1.18,1.97,2.31C866.8,65.23,868.02,66.25,868.12,66.14z"/> + <path class="st107" d="M883.98,82.19c1.27,1.24,2.5,2.23,2.57,2.1c0.07-0.14-0.95-1.27-2.22-2.5 + c-1.13-1.09-2.12-1.92-2.32-1.92C881.79,79.86,882.67,80.92,883.98,82.19z"/> + <path class="st107" d="M905.1,102.07c0.22,0.01-0.76-1.07-2-2.24c-1.27-1.2-2.45-2.17-2.58-2.08 + c-0.12,0.08,0.65,0.97,1.79,2.07C903.61,101.05,904.87,102.06,905.1,102.07z"/> + <path class="st107" d="M921.34,117.35c1.3,1.16,2.55,2.07,2.6,1.92c0.05-0.15-1.03-1.25-2.31-2.38 + c-1.17-1.03-2.16-1.79-2.34-1.77C919.08,115.13,919.99,116.15,921.34,117.35z"/> + <path class="st107" d="M940.19,133.75c1.34,1.14,2.63,2.04,2.84,2.01c0.2-0.02-0.82-1.04-2.1-2.11 + c-1.16-0.97-2.3-1.81-2.58-1.87C938.03,131.71,938.87,132.63,940.19,133.75z"/> + <path class="st107" d="M962.53,151.32c0.22-0.03-0.82-0.98-2.13-1.99c-1.34-1.03-2.58-1.85-2.7-1.74 + c-0.11,0.1,0.7,0.9,1.91,1.85C960.97,150.51,962.3,151.35,962.53,151.32z"/> + <path class="st107" d="M980.27,163.89c-1.37-0.95-2.63-1.68-2.74-1.55c-0.1,0.12,0.74,0.88,1.99,1.76 + c1.39,0.98,2.75,1.73,2.97,1.68C982.7,165.72,981.61,164.82,980.27,163.89z"/> + <path class="st107" d="M1002.99,178.94c0.08-0.16-1.1-1-2.5-1.84c-1.41-0.85-2.63-1.44-2.64-1.23 + c-0.01,0.18,0.98,0.95,2.27,1.74C1001.54,178.47,1002.92,179.09,1002.99,178.94z"/> + <path class="st107" d="M1021.88,189.18c-1.46-0.77-2.82-1.35-3.05-1.25c-0.2,0.09,0.6,0.7,1.91,1.41 + c1.46,0.8,2.96,1.39,3.29,1.35C1024.35,190.65,1023.28,189.92,1021.88,189.18z"/> + <path class="st107" d="M1042.75,199.95c1.48,0.72,2.89,1.21,2.96,1.03c0.07-0.19-1.15-0.96-2.6-1.65c-1.32-0.63-2.48-1-2.7-0.9 + C1040.17,198.54,1041.23,199.2,1042.75,199.95z"/> + <path class="st107" d="M1063.88,211.38c1.43,0.83,2.82,1.39,2.9,1.18c0.08-0.22-1.09-1.11-2.51-1.9 + c-1.29-0.73-2.4-1.19-2.62-1.07C1061.41,209.71,1062.4,210.52,1063.88,211.38z"/> + <path class="st107" d="M1087.21,225.7c0.26-0.14-0.78-1.12-2.13-2.03c-1.38-0.92-2.69-1.54-2.85-1.32 + c-0.14,0.19,0.68,0.99,1.92,1.85C1085.55,225.17,1086.94,225.85,1087.21,225.7z"/> + <path class="st107" d="M1104.33,238.72c1.36,1.02,2.71,1.68,2.83,1.39c0.12-0.3-0.96-1.41-2.3-2.38 + c-1.23-0.89-2.31-1.43-2.56-1.26C1102.02,236.66,1102.93,237.67,1104.33,238.72z"/> + <path class="st107" d="M1123.79,254.26c1.33,1.1,2.68,1.78,2.82,1.44c0.15-0.34-0.88-1.55-2.19-2.6 + c-1.2-0.95-2.29-1.51-2.56-1.31C1121.55,252.02,1122.42,253.13,1123.79,254.26z"/> + <path class="st107" d="M1100.18,243.28c1.15,0.91,2.41,1.44,2.75,1.16c0.37-0.31-0.58-1.63-1.85-2.58 + c-1.16-0.87-2.32-1.3-2.55-0.93C1098.29,241.32,1098.98,242.32,1100.18,243.28z"/> + <path class="st107" d="M1080.46,228.5c1.18,0.83,2.47,1.3,2.8,1.04c0.36-0.29-0.64-1.5-1.94-2.37 + c-1.19-0.79-2.37-1.18-2.59-0.83C1078.49,226.71,1079.22,227.63,1080.46,228.5z"/> + <path class="st107" d="M1062.98,216.08c0.29-0.26-0.51-1.17-1.69-1.92c-1.19-0.75-2.54-1.22-2.92-1 + c-0.45,0.26,0.36,1.22,1.79,2.07C1061.38,215.97,1062.68,216.35,1062.98,216.08z"/> + <path class="st107" d="M1040.25,202.56c-1.23-0.65-2.65-0.95-3.04-0.72c-0.4,0.24,0.25,0.95,1.5,1.59 + c1.39,0.71,2.98,1.15,3.32,0.85C1042.32,204.02,1041.47,203.21,1040.25,202.56z"/> + <path class="st107" d="M1020.53,193.65c0.15-0.33-0.79-1.14-2.02-1.8c-1.43-0.77-2.76-1.11-2.86-0.69 + c-0.09,0.37,0.87,1.23,2.19,1.89C1019.12,193.71,1020.38,193.97,1020.53,193.65z"/> + <path class="st107" d="M999.54,181.66c0.28-0.21-0.55-1.08-1.73-1.85c-1.18-0.77-2.51-1.33-2.87-1.16 + c-0.43,0.2,0.39,1.15,1.81,2.04C997.97,181.46,999.25,181.89,999.54,181.66z"/> + <path class="st107" d="M977.47,166.25c-1.16-0.85-2.44-1.48-2.79-1.34c-0.36,0.15,0.24,0.98,1.39,1.87 + c1.28,0.99,2.78,1.66,3.09,1.43C979.43,168.01,978.61,167.09,977.47,166.25z"/> + <path class="st107" d="M959.32,153.48c0.14-0.29-0.72-1.26-1.86-2.15c-1.34-1.05-2.55-1.64-2.64-1.25 + c-0.08,0.34,0.8,1.36,2.02,2.27C958.02,153.24,959.19,153.75,959.32,153.48z"/> + <path class="st107" d="M937.39,136.42c1.16,0.96,2.31,1.55,2.49,1.32c0.2-0.26-0.87-1.5-2.13-2.51 + c-1.16-0.93-2.17-1.45-2.27-1.14C935.37,134.41,936.18,135.42,937.39,136.42z"/> + <path class="st107" d="M920.79,121.13c0.25-0.14-0.5-1.17-1.58-2.17c-1.08-1.02-2.3-1.85-2.64-1.77 + c-0.39,0.1,0.36,1.19,1.65,2.37C919.35,120.56,920.52,121.27,920.79,121.13z"/> + <path class="st107" d="M899.61,102.25c1.13,1.05,2.24,1.73,2.41,1.51c0.2-0.24-0.84-1.56-2.07-2.65 + c-1.13-1.01-2.1-1.61-2.2-1.31C897.66,100.1,898.44,101.16,899.61,102.25z"/> + <path class="st107" d="M883.47,85.88c0.14-0.25-0.67-1.33-1.74-2.39c-1.23-1.21-2.42-2.01-2.5-1.65 + c-0.08,0.32,0.75,1.44,1.9,2.53C882.24,85.43,883.34,86.12,883.47,85.88z"/> + <path class="st107" d="M865.02,67.71c0.26-0.1-0.46-1.16-1.5-2.24c-1.05-1.08-2.25-2.02-2.59-1.98 + c-0.39,0.05,0.33,1.17,1.58,2.43C863.6,67,864.76,67.81,865.02,67.71z"/> + <path class="st107" d="M844.96,46.88c-1.12-1.12-2.16-1.88-2.41-1.74c-0.25,0.14,0.38,1.12,1.48,2.25 + c1.2,1.24,2.54,2.18,2.68,1.91C846.84,49.05,846.03,47.95,844.96,46.88z"/> + <path class="st107" d="M1119.37,259.35c1.12,0.99,2.37,1.55,2.72,1.25c0.39-0.33-0.52-1.76-1.76-2.79 + c-1.13-0.94-2.28-1.4-2.53-0.99C1117.54,257.24,1118.2,258.32,1119.37,259.35z"/> + <path class="st107" d="M1140.81,277.81c0.34-0.34-0.31-1.6-1.36-2.65c-1.06-1.06-2.33-1.74-2.75-1.45 + c-0.49,0.33,0.16,1.65,1.44,2.85C1139.23,277.59,1140.46,278.16,1140.81,277.81z"/> + <path class="st107" d="M1157.86,293.08c-1.04-1.11-2.31-1.8-2.74-1.48c-0.45,0.33-0.01,1.49,1.02,2.66 + c1.14,1.29,2.6,2.08,3.02,1.63C1159.5,295.52,1158.88,294.18,1157.86,293.08z"/> + <path class="st107" d="M1177.2,314.64c0.38-0.41-0.21-1.82-1.22-2.96c-1.02-1.15-2.29-1.84-2.75-1.49 + c-0.54,0.42,0.05,1.88,1.29,3.18C1175.58,314.49,1176.81,315.07,1177.2,314.64z"/> + <path class="st107" d="M1192.31,332.57c1.05,1.15,2.3,1.73,2.73,1.28c0.47-0.49-0.28-2.25-1.45-3.44 + c-1.07-1.08-2.23-1.53-2.57-0.96C1190.67,330.05,1191.21,331.37,1192.31,332.57z"/> + <path class="st107" d="M1211.68,350.09c-1-1.19-2.3-1.83-2.79-1.39c-0.52,0.46-0.16,1.79,0.83,3.05 + c1.09,1.39,2.58,2.13,3.07,1.54C1213.2,352.79,1212.67,351.26,1211.68,350.09z"/> + <path class="st107" d="M1230.57,372.63c0.31-0.72-0.31-2.29-1.35-3.4c-1.21-1.29-2.52-1.63-2.82-0.72 + c-0.26,0.79,0.42,2.33,1.54,3.43C1229.03,373.02,1230.26,373.33,1230.57,372.63z"/> + <path class="st107" d="M1245.29,390.98c1.01,1.16,2.38,1.71,2.92,1.17c0.6-0.59,0-2.44-1.17-3.68 + c-1.09-1.14-2.3-1.51-2.77-0.83C1243.79,388.33,1244.23,389.76,1245.29,390.98z"/> + <path class="st107" d="M732.03-56.23c-1.22-0.91-2.31-1.49-2.57-1.34c-0.25,0.15,0.45,0.95,1.64,1.87 + c1.3,1,2.72,1.74,2.84,1.48C734.07-54.44,733.18-55.37,732.03-56.23z"/> + <path class="st107" d="M750.85-40.14c1.15,0.94,2.33,1.61,2.57,1.48c0.26-0.14-0.79-1.34-2.04-2.33 + c-1.15-0.91-2.21-1.49-2.36-1.27C748.87-42.03,749.65-41.12,750.85-40.14z"/> + <path class="st107" d="M770.73-24.45c-1.17-1.03-2.23-1.71-2.49-1.57c-0.25,0.14,0.41,1.03,1.54,2.06 + c1.25,1.13,2.62,1.99,2.76,1.73C772.68-22.45,771.84-23.47,770.73-24.45z"/> + <path class="st107" d="M789.75-7.14c-1.08-1.04-2.28-1.89-2.6-1.84c-0.33,0.05,0.23,0.93,1.31,1.99 + c1.2,1.18,2.58,2.15,2.87,2.02C791.57-5.08,790.81-6.11,789.75-7.14z"/> + <path class="st107" d="M809.94,12.77c0.1-0.26-0.74-1.36-1.82-2.4c-1.25-1.21-2.38-1.95-2.44-1.58 + c-0.05,0.32,0.83,1.45,1.97,2.51C808.76,12.34,809.84,13.02,809.94,12.77z"/> + <path class="st107" d="M825.97,29.32c1.12,1.08,2.21,1.82,2.38,1.62c0.19-0.22-0.83-1.56-2.04-2.69 + c-1.11-1.05-2.08-1.68-2.17-1.4C824.04,27.14,824.82,28.21,825.97,29.32z"/> + <path class="st107" d="M855.15,55.66c1.11,1.09,2.17,1.87,2.31,1.74c0.16-0.15-0.84-1.35-2.19-2.67 + c-1.15-1.11-2.15-1.86-2.15-1.59C853.11,53.41,854.06,54.6,855.15,55.66z"/> + <path class="st107" d="M873.52,73.96c1.12,1.08,2.18,1.85,2.32,1.71c0.16-0.16-0.84-1.35-2.2-2.65 + c-1.15-1.1-2.15-1.84-2.15-1.57C871.48,71.73,872.43,72.92,873.52,73.96z"/> + <path class="st107" d="M894.31,93.69c0.19-0.11-0.56-1.02-1.76-2.18c-1.16-1.12-2.31-2.04-2.57-2.02 + c-0.29,0.02,0.68,1.28,1.93,2.46C893.04,93.02,894.13,93.8,894.31,93.69z"/> + <path class="st107" d="M911.32,109.22c-1.15-1.08-2.36-2.02-2.68-2.05c-0.36-0.04,0.53,1.12,1.81,2.3 + c1.14,1.06,2.27,1.85,2.52,1.79C913.21,111.2,912.5,110.33,911.32,109.22z"/> + <path class="st107" d="M929.38,126.54c1.15,1.01,2.3,1.74,2.53,1.66c0.23-0.09-0.51-0.94-1.71-2.01 + c-1.35-1.2-2.64-2.09-2.75-1.88C927.35,124.5,928.24,125.54,929.38,126.54z"/> + <path class="st107" d="M951.23,144.3c0.1-0.2-0.8-1.11-2.05-2.12c-1.27-1.02-2.35-1.7-2.53-1.56 + c-0.19,0.15,0.91,1.36,2.21,2.37C950.04,143.91,951.14,144.5,951.23,144.3z"/> + <path class="st107" d="M968.24,158.06c1.2,0.89,2.4,1.5,2.63,1.39c0.24-0.12-0.53-0.89-1.79-1.84 + c-1.41-1.06-2.75-1.82-2.86-1.59C966.12,156.23,967.05,157.18,968.24,158.06z"/> + <path class="st107" d="M989.16,171.65c-1.26-0.84-2.55-1.51-2.85-1.44c-0.34,0.08,0.7,1.11,2.07,2.01 + c1.24,0.81,2.45,1.33,2.67,1.18C991.27,173.25,990.47,172.53,989.16,171.65z"/> + <path class="st107" d="M1006.86,183.19c-0.18,0.18,0.71,0.98,1.98,1.73c1.41,0.83,2.85,1.33,2.97,1.07 + c0.1-0.24-0.87-0.98-2.22-1.74C1008.21,183.48,1007.04,183.01,1006.86,183.19z"/> + <path class="st107" d="M1030.4,196.4c1.31,0.61,2.56,0.9,2.73,0.69c0.19-0.25-0.99-1.02-2.59-1.74 + c-1.35-0.61-2.52-0.93-2.52-0.64C1028.01,195,1029.13,195.81,1030.4,196.4z"/> + <path class="st107" d="M1051.63,206.9c1.28,0.71,2.56,1.14,2.86,0.97c0.3-0.17-0.47-0.87-1.78-1.61 + c-1.48-0.84-2.96-1.36-3.13-1.1C1049.43,205.4,1050.36,206.19,1051.63,206.9z"/> + <path class="st107" d="M1072.6,219.42c1.24,0.77,2.44,1.19,2.62,0.94c0.21-0.29-0.88-1.27-2.4-2.18 + c-1.28-0.76-2.43-1.15-2.45-0.82C1070.36,217.71,1071.4,218.68,1072.6,219.42z"/> + <path class="st107" d="M1093.52,232.33c-1.22-0.91-2.53-1.55-2.87-1.4c-0.38,0.17,0.6,1.34,1.93,2.31 + c1.21,0.87,2.42,1.39,2.68,1.15C1095.53,234.15,1094.8,233.28,1093.52,232.33z"/> + <path class="st107" d="M1114.8,249.71c0.28-0.28-0.42-1.23-1.67-2.26c-1.19-0.99-2.47-1.67-2.82-1.49 + c-0.39,0.19,0.55,1.49,1.84,2.53C1113.33,249.43,1114.53,249.98,1114.8,249.71z"/> + <path class="st107" d="M1131.02,264.67c1.1,1.03,2.39,1.73,2.78,1.51c0.41-0.22-0.16-1.22-1.32-2.31 + c-1.29-1.22-2.74-2.03-3.04-1.69C1129.18,262.49,1129.89,263.61,1131.02,264.67z"/> + <path class="st107" d="M1150.97,280.8c-1.16-1.1-2.4-1.79-2.74-1.5c-0.38,0.32,0.49,1.81,1.74,2.97 + c1.13,1.04,2.3,1.58,2.59,1.2C1152.86,283.08,1152.18,281.95,1150.97,280.8z"/> + <path class="st107" d="M1169.42,298.72c-1.14-1.14-2.38-1.83-2.75-1.5c-0.41,0.37,0.42,1.95,1.66,3.14 + c1.12,1.08,2.29,1.6,2.6,1.18C1171.25,301.11,1170.61,299.91,1169.42,298.72z"/> + <path class="st107" d="M1187.47,317.02c-1.18-1.17-2.34-1.72-2.65-1.23c-0.34,0.53,0.55,2.23,1.78,3.39 + c1.13,1.07,2.28,1.47,2.53,0.91C1189.38,319.53,1188.65,318.19,1187.47,317.02z"/> + <path class="st107" d="M1207.11,339.03c0.3-0.6-0.37-1.97-1.54-3.16c-1.18-1.21-2.36-1.74-2.72-1.23 + c-0.39,0.56,0.44,2.32,1.66,3.51C1205.61,339.22,1206.81,339.63,1207.11,339.03z"/> + <path class="st107" d="M1225.03,358.08c0.33-0.66-0.31-2.07-1.48-3.26c-1.17-1.2-2.38-1.7-2.77-1.14 + c-0.43,0.61,0.37,2.44,1.59,3.62C1223.47,358.37,1224.7,358.72,1225.03,358.08z"/> + <path class="st107" d="M1240.18,376.33c1.11,1.08,2.37,1.42,2.76,0.75c0.45-0.76-0.33-2.42-1.71-3.66 + c-1.16-1.05-2.39-1.31-2.63-0.54C1238.37,373.65,1239.11,375.27,1240.18,376.33z"/> + <path class="st107" d="M836.65,37.14c1.11,1.11,2.22,1.96,2.44,1.9c0.23-0.06-0.48-0.98-1.64-2.15 + c-1.3-1.32-2.55-2.33-2.66-2.12C834.7,34.94,835.55,36.04,836.65,37.14z"/> + <path class="st107" d="M816.41,16.53c-0.16,0.11,0.62,1.13,1.74,2.25c1.24,1.24,2.51,2.19,2.61,1.98 + c0.09-0.19-0.76-1.21-1.95-2.36C817.62,17.23,816.58,16.42,816.41,16.53z"/> + <path class="st107" d="M802.27,2.78c0.11-0.17-0.73-1.16-1.93-2.3c-1.2-1.14-2.27-1.95-2.45-1.85 + c-0.2,0.11,0.85,1.39,2.09,2.54C801.1,2.2,802.17,2.94,802.27,2.78z"/> + <path class="st107" d="M783.61-14.75c0.11-0.17-0.74-1.14-1.95-2.23c-1.23-1.11-2.3-1.88-2.48-1.78 + c-0.2,0.11,0.86,1.35,2.12,2.46C782.43-15.3,783.5-14.58,783.61-14.75z"/> + <path class="st107" d="M764.67-31.63c0.11-0.17-0.75-1.1-1.99-2.14c-1.24-1.05-2.34-1.79-2.52-1.69 + c-0.2,0.11,0.88,1.31,2.16,2.36C763.47-32.14,764.57-31.46,764.67-31.63z"/> + <path class="st107" d="M745.37-47.65c0.2-0.11-0.58-0.92-1.84-1.92c-1.22-0.97-2.44-1.74-2.71-1.71 + c-0.31,0.03,0.72,1.12,2.03,2.14C744.03-48.22,745.17-47.55,745.37-47.65z"/> + <path class="st107" d="M719.32-61.23c1.23,0.9,2.51,1.48,2.75,1.26c0.25-0.22-0.61-1.15-1.85-2.03 + c-1.14-0.8-2.15-1.27-2.5-1.16C717.34-63.03,718.06-62.15,719.32-61.23z"/> + <path class="st107" d="M741.79-44.98c0.27-0.21-0.52-1.17-1.76-2.14c-1.19-0.93-2.41-1.53-2.57-1.25 + c-0.14,0.24,0.59,1.14,1.6,1.97C740.28-45.42,741.52-44.78,741.79-44.98z"/> + <path class="st107" d="M758.38-30.52c1.19,1.05,2.41,1.75,2.7,1.56c0.29-0.19-0.45-1.18-1.67-2.23 + c-1.06-0.91-2.08-1.51-2.44-1.44C756.55-32.54,757.2-31.57,758.38-30.52z"/> + <path class="st107" d="M777.64-13.49c1.2,1.07,2.31,1.68,2.44,1.34c0.12-0.35-0.75-1.44-1.95-2.49 + c-0.98-0.85-2.04-1.45-2.24-1.27C775.63-15.7,776.47-14.53,777.64-13.49z"/> + <path class="st107" d="M797.2,3.17c-1.13-1.1-2.34-1.89-2.59-1.68c-0.21,0.18,0.45,1.22,1.36,2.14 + c1.13,1.15,2.35,1.96,2.7,1.82C799.03,5.32,798.37,4.31,797.2,3.17z"/> + <path class="st107" d="M815.65,21.08c-1.11-1.11-2.3-1.89-2.51-1.63c-0.18,0.22,0.48,1.27,1.41,2.23 + c1.14,1.17,2.32,1.97,2.64,1.8C817.51,23.31,816.82,22.25,815.65,21.08z"/> + <path class="st107" d="M832.98,40.02c1.14,1.18,2.32,1.97,2.61,1.77c0.29-0.21-0.41-1.29-1.59-2.47 + c-1.02-1.02-2-1.71-2.35-1.64C831.24,37.77,831.85,38.85,832.98,40.02z"/> + <path class="st107" d="M1235.74,387.91c0.41-0.7-0.18-2.31-1.3-3.49c-1.12-1.19-2.33-1.53-2.66-0.72 + c-0.3,0.71,0.19,2.04,1.17,3.19C1234.03,388.13,1235.33,388.6,1235.74,387.91z"/> + <path class="st107" d="M1215.34,366.87c1.07,1.31,2.33,1.89,2.8,1.29c0.47-0.61-0.05-2.1-1.17-3.37 + c-0.97-1.1-2.03-1.6-2.54-1.19C1213.86,364.07,1214.28,365.57,1215.34,366.87z"/> + <path class="st107" d="M1199.3,344.91c-1.14-1.23-2.29-1.64-2.59-0.91c-0.29,0.69,0.45,2.33,1.56,3.45 + c0.96,0.97,2.06,1.34,2.38,0.81C1201.04,347.64,1200.41,346.1,1199.3,344.91z"/> + <path class="st107" d="M1183.01,328.59c0.42-0.54-0.16-1.97-1.29-3.2c-1.08-1.18-2.33-1.7-2.63-1.09 + c-0.27,0.53,0.27,1.87,1.17,2.94C1181.35,328.52,1182.6,329.12,1183.01,328.59z"/> + <path class="st107" d="M1163.73,306.03c-1.12-1.12-2.28-1.52-2.49-0.84c-0.18,0.6,0.42,1.85,1.4,2.89 + c1.14,1.21,2.34,1.71,2.64,1.11C1165.59,308.58,1164.89,307.18,1163.73,306.03z"/> + <path class="st107" d="M1144.43,289.18c1.12,1.2,2.37,1.8,2.76,1.34c0.4-0.46-0.21-1.75-1.38-2.92 + c-1.01-1.01-2.05-1.54-2.5-1.24C1142.8,286.69,1143.31,287.99,1144.43,289.18z"/> + <path class="st107" d="M1128.88,272.47c0.23-0.58-0.56-1.85-1.76-2.89c-1.15-0.99-2.32-1.33-2.44-0.69 + c-0.11,0.57,0.58,1.72,1.6,2.65C1127.46,272.62,1128.66,273.04,1128.88,272.47z"/> + <path class="st107" d="M853.96,60.19c0.19-0.31-0.62-1.48-1.79-2.62c-1.13-1.11-2.2-1.74-2.3-1.35 + c-0.09,0.35,0.6,1.39,1.62,2.42C852.64,59.8,853.77,60.5,853.96,60.19z"/> + <path class="st107" d="M872.32,78.53c0.14-0.38-0.7-1.54-1.88-2.66c-1.13-1.07-2.2-1.67-2.24-1.21 + c-0.04,0.41,0.69,1.47,1.7,2.46C871.07,78.27,872.18,78.9,872.32,78.53z"/> + <path class="st107" d="M890.77,96.7c0.2-0.32-0.62-1.48-1.79-2.59c-1.15-1.08-2.23-1.69-2.34-1.29 + c-0.1,0.36,0.59,1.39,1.62,2.39C889.42,96.36,890.58,97.02,890.77,96.7z"/> + <path class="st107" d="M907.66,111.92c-1.2-1.1-2.27-1.69-2.42-1.3c-0.14,0.37,0.76,1.64,1.93,2.67 + c1.01,0.88,2.04,1.4,2.24,1.14C909.64,114.14,908.82,112.99,907.66,111.92z"/> + <path class="st107" d="M926.51,129.09c-1.22-1.06-2.31-1.61-2.46-1.2c-0.14,0.38,0.77,1.63,1.96,2.61 + c1.02,0.85,2.07,1.32,2.28,1.05C928.52,131.24,927.7,130.12,926.51,129.09z"/> + <path class="st107" d="M945.6,145.44c-1.2-0.96-2.33-1.43-2.43-0.99c-0.09,0.39,0.64,1.37,1.7,2.25 + c1.23,1.02,2.42,1.53,2.62,1.16C947.69,147.49,946.84,146.42,945.6,145.44z"/> + <path class="st107" d="M965.15,160.92c-1.23-0.89-2.38-1.3-2.48-0.85c-0.09,0.4,0.65,1.34,1.74,2.17 + c1.26,0.95,2.48,1.4,2.68,1.01C967.28,162.86,966.41,161.84,965.15,160.92z"/> + <path class="st107" d="M985.24,175.34c-1.3-0.86-2.46-1.22-2.63-0.78c-0.16,0.42,0.82,1.52,2.08,2.31 + c1.09,0.68,2.21,0.97,2.43,0.66C987.38,177.17,986.5,176.18,985.24,175.34z"/> + <path class="st107" d="M1007.72,190.42c0.17-0.45-0.78-1.37-2.11-2.1c-1.28-0.7-2.49-0.93-2.55-0.44 + c-0.05,0.45,0.76,1.31,1.9,1.97C1006.29,190.62,1007.56,190.86,1007.72,190.42z"/> + <path class="st107" d="M1025.85,201.42c1.32,0.7,2.72,0.94,3.03,0.54c0.31-0.39-0.59-1.26-1.93-1.92 + c-1.22-0.6-2.32-0.84-2.73-0.55C1023.78,199.81,1024.51,200.7,1025.85,201.42z"/> + <path class="st107" d="M1047.19,212.18c1.3,0.77,2.67,1.08,3.02,0.7c0.36-0.39-0.43-1.28-1.77-2.03 + c-1.16-0.65-2.3-0.93-2.74-0.65C1045.22,210.49,1045.9,211.41,1047.19,212.18z"/> + <path class="st107" d="M1067.91,224.74c1.25,0.86,2.59,1.24,2.9,0.83c0.31-0.41-0.51-1.44-1.78-2.26 + c-1.16-0.75-2.22-1.07-2.62-0.77C1065.97,222.86,1066.65,223.87,1067.91,224.74z"/> + <path class="st107" d="M1090.71,239.9c0.34-0.41-0.4-1.5-1.64-2.43c-1.2-0.9-2.48-1.3-2.71-0.83c-0.2,0.41,0.48,1.43,1.5,2.24 + C1089.07,239.85,1090.37,240.31,1090.71,239.9z"/> + <path class="st107" d="M1109.98,255.66c0.41-0.38-0.23-1.52-1.43-2.57c-1.15-1-2.45-1.51-2.75-1.07 + c-0.25,0.37,0.37,1.5,1.32,2.38C1108.29,255.48,1109.58,256.04,1109.98,255.66z"/> + <path class="st107" d="M727.21-51.43c1.14,0.86,2.39,1.3,2.58,0.91c0.16-0.32-0.63-1.32-1.61-2.04 + c-1.01-0.75-2.2-1.26-2.51-1.05C725.32-53.38,726.07-52.29,727.21-51.43z"/> + <path class="st107" d="M749.22-34.89c0.31-0.23-0.22-1.1-1.2-1.98c-1.11-0.99-2.45-1.68-2.77-1.4 + c-0.33,0.28,0.43,1.42,1.57,2.34C747.82-35.12,748.91-34.66,749.22-34.89z"/> + <path class="st107" d="M768.34-18.4c0.31-0.23-0.2-1.14-1.16-2.07c-1.08-1.04-2.41-1.78-2.73-1.5 + c-0.33,0.28,0.41,1.48,1.53,2.45C766.95-18.66,768.03-18.16,768.34-18.4z"/> + <path class="st107" d="M784.94-2.2c1.15,1.02,2.21,1.42,2.3,0.9c0.08-0.44-0.7-1.53-1.72-2.43c-1.06-0.93-2.02-1.4-2.25-1.08 + C783.02-4.44,783.79-3.21,784.94-2.2z"/> + <path class="st107" d="M805.74,16.69c0.27-0.3-0.27-1.27-1.25-2.27c-1.11-1.13-2.34-1.84-2.6-1.49 + c-0.27,0.36,0.47,1.62,1.61,2.67C804.5,16.53,805.47,16.99,805.74,16.69z"/> + <path class="st107" d="M824.2,34.87c0.18-0.35-0.51-1.52-1.42-2.43c-1.09-1.09-2.31-1.74-2.48-1.3 + c-0.15,0.39,0.52,1.57,1.43,2.49C822.77,34.7,823.98,35.29,824.2,34.87z"/> + <path class="st107" d="M1240.63,403.75c0.47-0.61,0.16-2-0.7-3.13c-0.98-1.29-2.35-1.85-2.85-1.16 + c-0.5,0.7-0.01,2.44,1.03,3.58C1239.02,404.06,1240.15,404.37,1240.63,403.75z"/> + <path class="st107" d="M1222.23,380.36c-1.03-1.19-2.36-1.58-2.7-0.77c-0.3,0.71,0.19,2.26,1.05,3.28 + c0.98,1.18,2.3,1.52,2.69,0.72C1223.6,382.9,1223.1,381.36,1222.23,380.36z"/> + <path class="st107" d="M1204.82,360.25c-1.03-1.19-2.35-1.61-2.67-0.83c-0.28,0.68,0.22,2.21,1.07,3.23 + c0.98,1.18,2.29,1.55,2.66,0.78C1206.2,362.78,1205.68,361.25,1204.82,360.25z"/> + <path class="st107" d="M1188.36,343.49c0.43-0.53,0.09-1.83-0.78-2.96c-0.98-1.27-2.32-1.93-2.78-1.33 + c-0.46,0.6,0.08,2.27,1.11,3.42C1186.82,343.63,1187.93,344.02,1188.36,343.49z"/> + <path class="st107" d="M1168.34,322.76c1.03,1.14,2.28,1.48,2.59,0.73c0.26-0.62-0.34-2.11-1.22-3.05 + c-0.92-0.98-2.08-1.45-2.48-0.99C1166.78,320,1167.31,321.63,1168.34,322.76z"/> + <path class="st107" d="M1150.59,303.49c1.06,1.1,2.29,1.41,2.58,0.68c0.23-0.6-0.41-2.04-1.31-2.95 + c-0.95-0.96-2.09-1.39-2.46-0.93C1148.96,300.84,1149.54,302.41,1150.59,303.49z"/> + <path class="st107" d="M1135.03,285.67c0.32-0.58-0.19-1.76-1.16-2.75c-1.07-1.09-2.4-1.55-2.7-0.92 + c-0.27,0.56,0.26,1.84,1.17,2.8C1133.37,285.89,1134.69,286.3,1135.03,285.67z"/> + <path class="st107" d="M842.51,53.35c0.23-0.36-0.35-1.39-1.32-2.4c-1.07-1.11-2.31-1.81-2.53-1.4 + c-0.19,0.36,0.41,1.49,1.33,2.46C841.02,53.11,842.25,53.75,842.51,53.35z"/> + <path class="st107" d="M860.82,71.86c0.23-0.36-0.36-1.43-1.32-2.41c-1.08-1.11-2.31-1.8-2.53-1.38 + c-0.2,0.37,0.4,1.51,1.32,2.48C859.32,71.63,860.57,72.26,860.82,71.86z"/> + <path class="st107" d="M877.81,87.74c-1.09-1.08-2.32-1.71-2.51-1.25c-0.16,0.41,0.49,1.61,1.4,2.53 + c1.04,1.06,2.28,1.62,2.51,1.17C879.41,89.82,878.73,88.65,877.81,87.74z"/> + <path class="st107" d="M895.28,107.22c1.09,1.04,2.28,1.5,2.46,0.99c0.15-0.41-0.6-1.63-1.52-2.49 + c-0.98-0.91-2.07-1.48-2.37-1.19C893.5,104.87,894.19,106.19,895.28,107.22z"/> + <path class="st107" d="M913.77,124.7c0.9,0.89,2.12,1.48,2.52,1.26c0.47-0.26-0.13-1.45-1.22-2.48 + c-0.94-0.89-2.15-1.55-2.53-1.34C912.11,122.39,912.69,123.64,913.77,124.7z"/> + <path class="st107" d="M933.03,141.98c1.18,0.95,2.28,1.21,2.41,0.6c0.1-0.52-0.68-1.61-1.72-2.44 + c-1.08-0.86-2.08-1.24-2.33-0.84C931.1,139.76,931.86,141.03,933.03,141.98z"/> + <path class="st107" d="M953.08,156.31c-1.24-0.93-2.4-1.25-2.51-0.64c-0.1,0.52,0.68,1.67,1.67,2.43 + c1.19,0.91,2.35,1.15,2.53,0.56C954.91,158.18,954.09,157.07,953.08,156.31z"/> + <path class="st107" d="M974.4,173.86c0.36-0.37-0.16-1.29-1.17-2.11c-1.13-0.92-2.54-1.44-2.91-1.02 + c-0.38,0.42,0.36,1.64,1.54,2.48C972.88,173.95,974.04,174.23,974.4,173.86z"/> + <path class="st107" d="M991.96,187.18c1.19,0.77,2.52,0.93,2.75,0.36c0.19-0.47-0.62-1.51-1.63-2.15 + c-1.06-0.67-2.3-0.96-2.64-0.6C990.05,185.22,990.78,186.41,991.96,187.18z"/> + <path class="st107" d="M1013.9,197.99c-1.25-0.7-2.66-0.87-2.88-0.31c-0.2,0.5,0.54,1.5,1.58,2.11 + c1.19,0.7,2.62,0.79,2.89,0.22C1015.71,199.54,1014.95,198.58,1013.9,197.99z"/> + <path class="st107" d="M1035.44,209.11c-1.32-0.68-2.75-0.82-3.1-0.26c-0.31,0.49,0.28,1.35,1.4,1.97 + c1.22,0.68,2.7,0.75,3.09,0.19C1037.18,210.53,1036.58,209.7,1035.44,209.11z"/> + <path class="st107" d="M1057.75,222.89c0.39-0.44-0.14-1.36-1.17-2.08c-1.18-0.82-2.65-1.14-3.06-0.64 + c-0.41,0.51,0.34,1.67,1.56,2.39C1056.16,223.2,1057.35,223.34,1057.75,222.89z"/> + <path class="st107" d="M1076.45,233.93c-1.25-0.83-2.52-1-2.68-0.33c-0.14,0.58,0.62,1.71,1.63,2.4 + c1.21,0.82,2.46,0.95,2.68,0.28C1078.26,235.74,1077.47,234.62,1076.45,233.93z"/> + <path class="st107" d="M1097.54,251.57c0.35-0.5-0.17-1.54-1.18-2.43c-1.15-1-2.49-1.41-2.84-0.85 + c-0.35,0.58,0.37,1.89,1.56,2.78C1096.13,251.86,1097.19,252.07,1097.54,251.57z"/> + <path class="st107" d="M1113.78,267.19c0.89,0.89,2.16,1.37,2.62,1.03c0.55-0.41,0.05-1.72-1.04-2.76 + c-0.94-0.89-2.19-1.42-2.63-1.08C1112.2,264.78,1112.69,266.11,1113.78,267.19z"/> + <path class="st107" d="M717.37-54.82c0.34-0.3-0.28-1.26-1.31-2.05c-1.03-0.79-2.23-1.23-2.61-0.92 + c-0.38,0.3,0.18,1.21,1.27,2.03C715.86-54.91,717.01-54.5,717.37-54.82z"/> + <path class="st107" d="M734.49-40.82c1.1,0.91,2.24,1.36,2.59,1.04c0.33-0.3-0.28-1.33-1.28-2.18 + c-1.01-0.86-2.19-1.33-2.56-1.03C732.88-42.67,733.43-41.7,734.49-40.82z"/> + <path class="st107" d="M754.03-24.64c1.04,0.87,2.2,1.29,2.42,0.9c0.22-0.4-0.51-1.54-1.52-2.39 + c-1.04-0.89-2.09-1.28-2.37-0.87C752.28-26.61,752.93-25.56,754.03-24.64z"/> + <path class="st107" d="M774.01-9.18c-1.01-0.95-2.1-1.45-2.43-1.09c-0.33,0.36,0.24,1.44,1.3,2.41 + c1.02,0.94,2.19,1.46,2.47,1.1C775.63-7.1,774.97-8.27,774.01-9.18z"/> + <path class="st107" d="M790.26,7.33c-0.26,0.43,0.39,1.59,1.45,2.56c1.02,0.93,2.14,1.37,2.33,0.93 + c0.2-0.45-0.52-1.67-1.5-2.58C791.53,7.3,790.52,6.88,790.26,7.33z"/> + <path class="st107" d="M811.13,26.42c-1-1-2.06-1.5-2.37-1.1c-0.32,0.41,0.24,1.53,1.31,2.58c0.99,0.98,2.16,1.51,2.41,1.12 + C812.75,28.63,812.08,27.37,811.13,26.42z"/> + <path class="st107" d="M830.85,47.41c0.2-0.48-0.5-1.74-1.47-2.69c-1-0.98-2-1.4-2.27-0.93c-0.26,0.45,0.37,1.66,1.42,2.67 + C829.54,47.43,830.65,47.87,830.85,47.41z"/> + <path class="st107" d="M1245.7,419.83c0.3-0.71-0.27-2.27-1.21-3.27c-0.97-1.03-2.03-1.25-2.4-0.54 + c-0.36,0.69,0.19,2.08,1.21,3.15C1244.27,420.19,1245.41,420.51,1245.7,419.83z"/> + <path class="st107" d="M1227.15,396.67c-0.94-1.11-2.06-1.42-2.49-0.74c-0.43,0.7,0.02,2.06,1.03,3.22 + c0.94,1.07,2.14,1.5,2.49,0.86C1228.54,399.36,1228.04,397.72,1227.15,396.67z"/> + <path class="st107" d="M1208.36,378.91c0.94,1.08,2.14,1.48,2.5,0.79c0.36-0.69-0.15-2.31-1.04-3.37 + c-0.94-1.11-2.04-1.46-2.47-0.73C1206.91,376.34,1207.35,377.75,1208.36,378.91z"/> + <path class="st107" d="M1192.54,356.05c-0.93-1.12-2.05-1.51-2.48-0.85c-0.44,0.67-0.03,2.12,0.97,3.29 + c0.94,1.1,2.15,1.48,2.52,0.85C1193.92,358.71,1193.43,357.11,1192.54,356.05z"/> + <path class="st107" d="M1174.98,335.74c-0.97-1.03-2-1.27-2.36-0.54c-0.34,0.71,0.2,2.18,1.2,3.23 + c0.98,1.02,2.12,1.29,2.39,0.58C1176.51,338.25,1175.95,336.77,1174.98,335.74z"/> + <path class="st107" d="M1156.19,318.59c0.96,1.01,2.15,1.35,2.46,0.71c0.32-0.66-0.25-2.16-1.19-3.16 + c-0.97-1.04-2.04-1.35-2.43-0.67C1154.66,316.13,1155.16,317.52,1156.19,318.59z"/> + <path class="st107" d="M1139.67,297.19c-0.97-1.03-2.1-1.38-2.51-0.77c-0.42,0.62,0.06,1.93,1.09,3 + c0.98,1.01,2.19,1.38,2.54,0.8C1141.14,299.63,1140.59,298.17,1139.67,297.19z"/> + <path class="st107" d="M1122.51,282c0.44-0.51-0.01-1.83-0.96-2.84c-0.94-1-2.13-1.42-2.61-0.89c-0.48,0.53-0.06,1.79,0.92,2.8 + C1120.92,282.15,1122.05,282.54,1122.51,282z"/> + <path class="st107" d="M847.64,63.26c-1.01-0.97-1.99-1.37-2.24-0.87c-0.25,0.48,0.4,1.72,1.44,2.71 + c1.01,0.97,2.11,1.38,2.29,0.88C849.33,65.46,848.65,64.23,847.64,63.26z"/> + <path class="st107" d="M864.89,83.45c1,1.04,2.15,1.58,2.48,1.2c0.32-0.37-0.26-1.62-1.19-2.61c-0.97-1.02-2.07-1.58-2.44-1.19 + C863.37,81.24,863.88,82.41,864.89,83.45z"/> + <path class="st107" d="M883.34,101.94c1,0.98,2.18,1.47,2.46,1.04c0.28-0.43-0.36-1.71-1.32-2.67 + c-0.99-0.99-2.08-1.47-2.41-1.03C881.74,99.73,882.29,100.91,883.34,101.94z"/> + <path class="st107" d="M901.69,119.81c1.05,1.07,2.16,1.56,2.58,1.18c0.39-0.36-0.12-1.55-1.07-2.53 + c-0.95-0.99-2.11-1.54-2.53-1.17C900.24,117.66,900.7,118.81,901.69,119.81z"/> + <path class="st107" d="M920.6,137.47c1.02,0.92,2.23,1.32,2.53,0.86c0.29-0.46-0.37-1.72-1.34-2.61 + c-1.02-0.94-2.13-1.34-2.48-0.86C918.96,135.34,919.52,136.5,920.6,137.47z"/> + <path class="st107" d="M940.86,152.43c-1.04-0.89-2.17-1.25-2.53-0.76c-0.37,0.5,0.19,1.63,1.29,2.56 + c1.04,0.88,2.27,1.23,2.58,0.76C942.5,154.52,941.85,153.29,940.86,152.43z"/> + <path class="st107" d="M961.66,170.71c0.29-0.52-0.41-1.72-1.43-2.51c-1.06-0.83-2.2-1.1-2.55-0.56 + c-0.35,0.54,0.23,1.65,1.37,2.52C960.12,170.97,961.38,171.22,961.66,170.71z"/> + <path class="st107" d="M981.57,185.3c0.25-0.59-0.51-1.73-1.57-2.44c-1.1-0.74-2.21-0.87-2.53-0.28 + c-0.31,0.58,0.36,1.7,1.52,2.45C980.09,185.76,981.33,185.87,981.57,185.3z"/> + <path class="st107" d="M1001.96,198.73c0.29-0.57-0.45-1.68-1.52-2.34c-1.12-0.69-2.31-0.79-2.66-0.2 + c-0.36,0.6,0.27,1.64,1.46,2.36C1000.35,199.22,1001.67,199.29,1001.96,198.73z"/> + <path class="st107" d="M1022.95,210.63c0.26-0.63-0.53-1.67-1.66-2.23c-1.17-0.58-2.34-0.56-2.68,0.09 + c-0.33,0.63,0.37,1.66,1.6,2.25C1021.38,211.31,1022.69,211.24,1022.95,210.63z"/> + <path class="st107" d="M1039.97,219.46c-0.34,0.64,0.36,1.67,1.57,2.28c1.16,0.58,2.47,0.53,2.73-0.09 + c0.27-0.64-0.5-1.72-1.62-2.29C1041.5,218.76,1040.32,218.8,1039.97,219.46z"/> + <path class="st107" d="M1063.49,231.97c-1.09-0.75-2.31-0.89-2.73-0.3c-0.42,0.59,0.15,1.69,1.29,2.44 + c1.1,0.73,2.41,0.88,2.77,0.32C1065.18,233.88,1064.53,232.69,1063.49,231.97z"/> + <path class="st107" d="M1084.64,248.87c0.4-0.52-0.15-1.76-1.14-2.59c-1.02-0.85-2.25-1.12-2.7-0.57 + c-0.46,0.56,0.03,1.7,1.1,2.57C1082.98,249.15,1084.23,249.41,1084.64,248.87z"/> + <path class="st107" d="M1103.91,264.75c0.36-0.55-0.23-1.89-1.2-2.76c-1.02-0.92-2.18-1.2-2.6-0.61 + c-0.43,0.59,0.07,1.78,1.16,2.73C1102.31,265.01,1103.54,265.3,1103.91,264.75z"/> + <path class="st107" d="M704.48-58.2c0.4-0.42-0.19-1.37-1.32-2.13c-0.94-0.64-2.02-0.95-2.43-0.69 + c-0.48,0.31,0.03,1.31,1.08,2.12C702.83-58.12,704.09-57.8,704.48-58.2z"/> + <path class="st107" d="M724.41-43.69c0.4-0.43-0.17-1.43-1.27-2.27c-0.92-0.7-1.98-1.06-2.38-0.8c-0.48,0.3,0,1.36,1.03,2.24 + C722.78-43.66,724.02-43.28,724.41-43.69z"/> + <path class="st107" d="M743.87-28.04c0.42-0.43-0.12-1.47-1.2-2.37c-0.9-0.75-1.94-1.16-2.35-0.91 + c-0.49,0.29-0.04,1.4,0.97,2.35C742.24-28.06,743.47-27.63,743.87-28.04z"/> + <path class="st107" d="M762.94-11.41c0.44-0.42-0.06-1.49-1.13-2.46c-0.89-0.81-1.91-1.26-2.34-1.02 + c-0.49,0.27-0.07,1.44,0.9,2.43C761.31-11.5,762.52-11.01,762.94-11.41z"/> + <path class="st107" d="M781.8,5.86c0.29-0.56-0.36-1.7-1.48-2.66c-0.95-0.81-1.86-1.12-2.15-0.72 + c-0.33,0.45,0.28,1.77,1.24,2.68C780.4,6.09,781.52,6.4,781.8,5.86z"/> + <path class="st107" d="M799.21,21.44c-1.02-1.04-2.16-1.54-2.48-1.05c-0.31,0.47,0.3,1.84,1.26,2.77 + c0.81,0.79,1.83,1.17,2.21,0.85C800.68,23.61,800.24,22.49,799.21,21.44z"/> + <path class="st107" d="M818.59,42.4c0.43-0.46-0.06-1.64-1.08-2.68c-0.86-0.87-1.86-1.36-2.28-1.1 + c-0.49,0.31-0.09,1.56,0.85,2.65C817,42.31,818.19,42.83,818.59,42.4z"/> + <path class="st107" d="M1233.45,415.22c0.4-0.44-0.06-1.7-1.04-2.81c-0.82-0.92-1.8-1.43-2.2-1.17 + c-0.47,0.31-0.06,1.55,0.85,2.68C1231.94,415.02,1233.06,415.64,1233.45,415.22z"/> + <path class="st107" d="M1213.7,394.4c0.9,1.02,1.98,1.46,2.28,0.89c0.27-0.52-0.12-1.61-0.96-2.63 + c-0.96-1.17-2.08-1.71-2.43-1.21C1212.25,391.94,1212.8,393.37,1213.7,394.4z"/> + <path class="st107" d="M1198.55,375.24c0.32-0.65-0.23-2-1.28-3.09c-0.89-0.91-1.79-1.23-2.1-0.75c-0.35,0.53,0.18,2,1.08,3.04 + C1197.17,375.48,1198.24,375.87,1198.55,375.24z"/> + <path class="st107" d="M1178.82,354.5c0.93,1.03,2,1.34,2.31,0.64c0.28-0.62-0.12-1.78-0.97-2.79 + c-0.96-1.14-2.11-1.58-2.47-0.98C1177.36,351.97,1177.91,353.49,1178.82,354.5z"/> + <path class="st107" d="M1162.63,332.38c-0.97-1.1-2.15-1.46-2.49-0.78c-0.34,0.67,0.24,2.2,1.17,3.19 + c0.8,0.84,1.79,1.16,2.19,0.68C1164,334.88,1163.62,333.5,1162.63,332.38z"/> + <path class="st107" d="M1143.35,315.29c0.88,1,2.11,1.34,2.52,0.67c0.38-0.62,0.07-1.8-0.75-2.79 + c-0.95-1.16-2.16-1.61-2.63-1.01C1142.02,312.76,1142.43,314.24,1143.35,315.29z"/> + <path class="st107" d="M1128,296.92c0.27-0.9-0.4-2.31-1.52-3.17c-0.94-0.72-1.9-0.7-2.16,0.01c-0.32,0.84,0.3,2.3,1.31,3.18 + C1126.64,297.83,1127.72,297.83,1128,296.92z"/> + <path class="st107" d="M836.89,61.03c0.39-0.5-0.13-1.72-1.15-2.76c-0.86-0.86-1.86-1.32-2.25-1.01 + c-0.46,0.37-0.04,1.65,0.91,2.73C835.31,61.02,836.52,61.51,836.89,61.03z"/> + <path class="st107" d="M855.13,79.76c0.4-0.52-0.12-1.75-1.14-2.78c-0.86-0.86-1.86-1.31-2.25-0.99 + c-0.46,0.38-0.05,1.68,0.9,2.76C853.54,79.78,854.75,80.25,855.13,79.76z"/> + <path class="st107" d="M872.34,95.66c-1.02-1.03-2.17-1.47-2.47-0.9c-0.3,0.56,0.33,2,1.3,2.93c0.83,0.8,1.83,1.11,2.2,0.71 + C873.83,97.9,873.37,96.7,872.34,95.66z"/> + <path class="st107" d="M891.81,116.7c0.41-0.55-0.11-1.79-1.14-2.79c-0.87-0.84-1.89-1.25-2.29-0.89 + c-0.48,0.41-0.06,1.73,0.89,2.78C890.19,116.81,891.42,117.23,891.81,116.7z"/> + <path class="st107" d="M910.39,134.58c0.43-0.57-0.07-1.78-1.12-2.76c-0.87-0.81-1.91-1.2-2.33-0.84 + c-0.5,0.42-0.1,1.73,0.87,2.76C908.74,134.74,909.97,135.13,910.39,134.58z"/> + <path class="st107" d="M929.29,151.72c0.36-0.66-0.26-1.86-1.38-2.76c-0.96-0.77-1.92-1.01-2.27-0.53 + c-0.4,0.55,0.13,1.94,1.11,2.84C927.71,152.14,928.95,152.34,929.29,151.72z"/> + <path class="st107" d="M945.97,167.88c1.03,0.83,2.21,0.9,2.52,0.19c0.28-0.63-0.2-1.61-1.14-2.42 + c-1.07-0.92-2.3-1.2-2.65-0.59C944.35,165.68,944.97,167.07,945.97,167.88z"/> + <path class="st107" d="M968.05,183.55c0.35-0.73-0.3-1.85-1.49-2.63c-1.01-0.66-2-0.76-2.35-0.22 + c-0.39,0.61,0.2,1.97,1.22,2.75C966.47,184.23,967.7,184.26,968.05,183.55z"/> + <path class="st107" d="M988.05,197.9c0.41-0.71-0.22-1.83-1.4-2.56c-1-0.62-2.06-0.71-2.46-0.18c-0.46,0.6,0.07,1.92,1.11,2.67 + C986.3,198.56,987.66,198.58,988.05,197.9z"/> + <path class="st107" d="M1008.54,210.97c0.51-0.71-0.02-1.8-1.19-2.48c-0.97-0.57-2.13-0.67-2.63-0.19 + c-0.58,0.57-0.16,1.79,0.91,2.57C1006.67,211.61,1008.05,211.65,1008.54,210.97z"/> + <path class="st107" d="M1026.95,222.71c1.1,0.56,2.47,0.33,2.86-0.45c0.35-0.7-0.14-1.56-1.18-2.13 + c-1.18-0.65-2.54-0.64-2.98,0.07C1025.22,220.9,1025.85,222.15,1026.95,222.71z"/> + <path class="st107" d="M1050.94,233.7c0.24-0.83-0.58-1.91-1.84-2.44c-1.06-0.45-2.08-0.27-2.33,0.4c-0.3,0.8,0.43,2,1.58,2.57 + C1049.5,234.8,1050.7,234.55,1050.94,233.7z"/> + <path class="st107" d="M1071.06,247.49c0.49-0.71-0.02-1.9-1.14-2.68c-0.93-0.65-2.07-0.79-2.54-0.3 + c-0.56,0.58-0.17,1.91,0.85,2.78C1069.22,248.13,1070.59,248.18,1071.06,247.49z"/> + <path class="st107" d="M1090.55,262.73c0.58-0.76,0.13-1.97-0.95-2.87c-0.91-0.75-1.99-1.01-2.5-0.56 + c-0.58,0.51-0.31,2.01,0.66,2.99C1088.69,263.24,1090,263.46,1090.55,262.73z"/> + <path class="st107" d="M1109.63,279.05c0.28-0.92-0.4-2.3-1.55-3.09c-0.96-0.66-1.95-0.58-2.23,0.15 + c-0.33,0.86,0.3,2.3,1.34,3.12C1108.23,280.06,1109.34,279.99,1109.63,279.05z"/> + <path class="st107" d="M687.42-62.74c-0.24,0.55,0.31,1.45,1.28,2.07c1.07,0.69,2.39,0.77,2.61,0.18 + c0.19-0.51-0.46-1.53-1.32-2.1C688.94-63.28,687.69-63.36,687.42-62.74z"/> + <path class="st107" d="M711.44-46.43c0.34-0.55-0.41-1.81-1.48-2.49c-0.91-0.59-1.96-0.69-2.26-0.21 + c-0.32,0.5,0.14,1.48,1.03,2.19C709.8-46.1,711.1-45.86,711.44-46.43z"/> + <path class="st107" d="M728.61-31.7c1.03,0.82,2.29,0.98,2.52,0.34c0.19-0.55-0.41-1.69-1.24-2.36 + c-1.02-0.83-2.2-0.99-2.47-0.31C727.17-33.45,727.69-32.44,728.61-31.7z"/> + <path class="st107" d="M750.34-15c0.33-0.6-0.39-1.98-1.4-2.76c-0.88-0.67-1.88-0.82-2.18-0.31c-0.32,0.53,0.11,1.6,0.98,2.41 + C748.74-14.71,750.01-14.4,750.34-15z"/> + <path class="st107" d="M769.11,2.21c0.44-0.51-0.09-1.88-1.06-2.78c-0.84-0.78-1.86-1.06-2.27-0.62 + c-0.49,0.53-0.02,1.83,1.01,2.77C767.64,2.35,768.74,2.64,769.11,2.21z"/> + <path class="st107" d="M786.52,17.03c-1.02-0.89-2.07-0.98-2.26-0.17c-0.16,0.72,0.39,1.85,1.32,2.65 + c0.87,0.75,1.93,0.96,2.23,0.46C788.16,19.38,787.5,17.9,786.52,17.03z"/> + <path class="st107" d="M804.91,35.29c-1.01-0.9-2.06-0.98-2.24-0.13c-0.16,0.74,0.4,1.91,1.32,2.71 + c0.86,0.75,1.93,0.96,2.22,0.45C806.55,37.7,805.89,36.16,804.91,35.29z"/> + <path class="st107" d="M824.46,56.98c0.34-0.66-0.31-2.2-1.29-3.08c-0.85-0.76-1.82-0.94-2.14-0.38 + c-0.33,0.59,0.05,1.78,0.88,2.69C822.87,57.29,824.11,57.65,824.46,56.98z"/> + <path class="st107" d="M437.36-70.16c0.43-0.85-0.58-1.51-1.99-1.32c-1.21,0.16-2.57,0.93-2.97,1.69 + c-0.42,0.79,0.19,1.4,1.4,1.37C435.2-68.45,436.93-69.31,437.36-70.16z"/> + <path class="st107" d="M411.38-69.59c0.59-0.88-0.13-1.79-1.43-1.87c-1.12-0.06-2.49,0.53-3.04,1.33 + c-0.64,0.94-0.01,1.83,1.37,1.88C409.42-68.2,410.89-68.85,411.38-69.59z"/> + <path class="st107" d="M386.96-72.57c0.59-0.87-0.04-1.98-1.25-2.26c-1.04-0.24-2.36,0.2-2.9,0.98c-0.65,0.93-0.1,2,1.19,2.27 + C385.06-71.35,386.46-71.83,386.96-72.57z"/> + <path class="st107" d="M1239.71,428.68c0.24-0.34-0.47-1.68-1.42-2.63c-0.81-0.81-1.71-1.25-1.92-0.95 + c-0.23,0.31,0.24,1.25,1.05,2.16C1238.37,428.34,1239.46,429.03,1239.71,428.68z"/> + <path class="st107" d="M1221.95,409.37c0.23-0.4-0.48-1.8-1.42-2.75c-0.81-0.82-1.69-1.2-1.91-0.86 + c-0.23,0.36,0.23,1.34,1.04,2.27C1220.62,409.11,1221.72,409.77,1221.95,409.37z"/> + <path class="st107" d="M1204.32,389.79c0.25-0.44-0.45-1.9-1.38-2.85c-0.81-0.82-1.7-1.17-1.93-0.79 + c-0.25,0.4,0.2,1.43,1.01,2.36C1202.96,389.61,1204.07,390.24,1204.32,389.79z"/> + <path class="st107" d="M1186.72,370.12c0.27-0.49-0.4-1.98-1.34-2.92c-0.81-0.81-1.72-1.13-1.97-0.71 + c-0.27,0.44,0.16,1.5,0.97,2.44C1185.32,370.02,1186.45,370.61,1186.72,370.12z"/> + <path class="st107" d="M1166.62,349.4c0.95,1.12,2.09,1.69,2.43,1.18c0.27-0.41-0.14-1.61-0.89-2.56 + c-0.85-1.07-2.05-1.6-2.4-1.08C1165.45,347.4,1165.83,348.47,1166.62,349.4z"/> + <path class="st107" d="M1150.21,328.49c-0.79-0.85-1.79-1.2-2.19-0.78c-0.47,0.49-0.02,1.78,0.97,2.8 + c0.81,0.84,1.84,1.26,2.2,0.88C1151.62,330.95,1151.13,329.48,1150.21,328.49z"/> + <path class="st107" d="M1133.28,312.61c0.35-0.6-0.28-2.14-1.25-3.01c-0.83-0.75-1.84-0.93-2.16-0.41 + c-0.33,0.55,0.06,1.67,0.87,2.56C1131.72,312.8,1132.92,313.22,1133.28,312.61z"/> + <path class="st107" d="M1111.43,291.51c-0.28,0.66,0.18,1.77,1.06,2.59c0.97,0.91,2.22,1.13,2.49,0.42 + c0.23-0.61-0.29-1.94-1.07-2.7C1112.96,290.9,1111.75,290.76,1111.43,291.51z"/> + <path class="st107" d="M842.54,75.94c0.46-0.56-0.02-2.05-0.97-3.03c-0.81-0.84-1.83-1.15-2.26-0.66 + c-0.5,0.58-0.08,2,0.92,3.01C841.06,76.1,842.15,76.41,842.54,75.94z"/> + <path class="st107" d="M859.79,91.74c-0.81-0.84-1.84-1.14-2.28-0.64c-0.52,0.59-0.11,2.02,0.89,3.04 + c0.82,0.83,1.91,1.13,2.32,0.65C861.21,94.23,860.73,92.71,859.79,91.74z"/> + <path class="st107" d="M878.09,110.42c-0.81-0.83-1.86-1.12-2.31-0.62c-0.54,0.61-0.15,2.03,0.85,3.04 + c0.83,0.84,1.92,1.12,2.35,0.63C879.48,112.9,879.02,111.38,878.09,110.42z"/> + <path class="st107" d="M896.5,128.72c-0.81-0.81-1.88-1.07-2.34-0.54c-0.55,0.63-0.16,2.05,0.85,3.04 + c0.84,0.82,1.94,1.06,2.38,0.55C897.9,131.19,897.44,129.66,896.5,128.72z"/> + <path class="st107" d="M912.59,146.31c-0.31,0.73,0.11,1.94,1,2.78c0.98,0.92,2.29,1.01,2.59,0.22 + c0.26-0.68-0.26-2.03-1.05-2.79C914.17,145.6,912.94,145.48,912.59,146.31z"/> + <path class="st107" d="M934.95,166.6c0.5-0.68,0.01-2.16-0.98-3.02c-0.85-0.74-1.93-0.88-2.4-0.28 + c-0.55,0.7-0.1,2.08,0.95,2.97C933.38,166.99,934.52,167.17,934.95,166.6z"/> + <path class="st107" d="M951.72,182.44c1.02,0.82,2.34,0.89,2.64,0.11c0.26-0.67-0.27-2-1.09-2.69 + c-0.99-0.83-2.29-0.79-2.63,0.02C950.32,180.6,950.8,181.69,951.72,182.44z"/> + <path class="st107" d="M971.39,197.66c1.05,0.76,2.38,0.74,2.67-0.06c0.25-0.69-0.31-1.93-1.16-2.57 + c-1.04-0.77-2.31-0.69-2.66,0.14C969.95,195.91,970.44,196.98,971.39,197.66z"/> + <path class="st107" d="M994.13,211.7c0.5-0.68-0.06-2.05-1.12-2.72c-0.92-0.59-2.07-0.55-2.53,0.06 + c-0.55,0.72-0.03,1.96,1.09,2.66C992.49,212.26,993.71,212.27,994.13,211.7z"/> + <path class="st107" d="M1014.88,224.13c0.53-0.68-0.02-1.97-1.11-2.59c-0.94-0.53-2.11-0.45-2.6,0.17 + c-0.49,0.62-0.19,1.62,0.69,2.28C1012.86,224.75,1014.35,224.82,1014.88,224.13z"/> + <path class="st107" d="M1035.06,232.69c-0.94-0.51-2.14-0.4-2.62,0.22c-0.58,0.74-0.06,1.87,1.11,2.48 + c0.96,0.5,2.19,0.44,2.64-0.14C1036.7,234.58,1036.15,233.28,1035.06,232.69z"/> + <path class="st107" d="M1055.81,245.04c-0.9-0.59-2.06-0.57-2.54,0.03c-0.57,0.71-0.08,1.92,1.04,2.63 + c0.92,0.58,2.11,0.62,2.55,0.06C1057.38,247.1,1056.86,245.73,1055.81,245.04z"/> + <path class="st107" d="M1076.82,261.99c0.48-0.64-0.05-2.07-1.07-2.83c-0.88-0.66-1.99-0.7-2.44-0.12 + c-0.53,0.69-0.03,1.96,1.05,2.74C1075.24,262.43,1076.41,262.53,1076.82,261.99z"/> + <path class="st107" d="M1096.11,277.73c0.46-0.61-0.05-2.07-1.03-2.9c-0.85-0.72-1.93-0.85-2.37-0.29 + c-0.51,0.65-0.03,1.95,1.02,2.81C1094.58,278.05,1095.72,278.24,1096.11,277.73z"/> + <path class="st107" d="M676.23-63.46c-0.99-0.61-2.16-0.68-2.53-0.13c-0.36,0.52,0.21,1.62,1.17,2.21 + c1.01,0.62,2.16,0.66,2.53,0.09C677.78-61.85,677.24-62.84,676.23-63.46z"/> + <path class="st107" d="M695.44-48.04c1,0.66,2.11,0.67,2.41,0.04c0.3-0.65-0.25-1.64-1.29-2.32c-0.98-0.64-2.13-0.69-2.41-0.08 + C693.86-49.79,694.46-48.68,695.44-48.04z"/> + <path class="st107" d="M717.7-33.3c0.31-0.67-0.23-1.72-1.24-2.46c-0.96-0.7-2.08-0.79-2.37-0.16 + c-0.29,0.63,0.28,1.8,1.24,2.51C716.3-32.7,717.4-32.65,717.7-33.3z"/> + <path class="st107" d="M734.5-17.86c0.89,0.85,2.04,1.12,2.49,0.59c0.47-0.55,0.09-1.66-0.83-2.53 + c-0.9-0.85-2.02-1.14-2.49-0.63C733.22-19.94,733.61-18.71,734.5-17.86z"/> + <path class="st107" d="M756.09-0.62c0.32-0.7-0.17-1.84-1.14-2.69c-0.92-0.8-2.02-0.94-2.32-0.29 + c-0.3,0.66,0.23,1.94,1.14,2.74C754.71-0.04,755.78,0.06,756.09-0.62z"/> + <path class="st107" d="M772.42,16.7c0.91,0.86,1.99,1.02,2.34,0.35c0.36-0.69-0.09-1.87-1.04-2.77 + c-0.88-0.83-2.01-1.04-2.33-0.4C771.05,14.51,771.54,15.86,772.42,16.7z"/> + <path class="st107" d="M793.14,35.38c0.43-0.61,0.05-1.87-0.85-2.81c-0.87-0.92-1.95-1.22-2.39-0.64 + c-0.41,0.55,0,1.97,0.84,2.87C791.63,35.73,792.71,35.99,793.14,35.38z"/> + <path class="st107" d="M811.41,54.03c0.41-0.65,0.01-1.95-0.88-2.89c-0.87-0.92-1.95-1.19-2.36-0.57 + c-0.39,0.59,0.05,2.02,0.89,2.91C809.94,54.41,811,54.68,811.41,54.03z"/> + <path class="st107" d="M473.44-67.36c0.53-0.78-0.13-1.24-1.49-1.06c-1.31,0.18-2.84,0.96-3.39,1.73 + c-0.52,0.74,0.19,1.27,1.49,1.09C471.38-65.79,472.92-66.6,473.44-67.36z"/> + <path class="st107" d="M446.12-63.35c0.3-0.78-0.56-1.19-1.95-0.96c-1.36,0.22-2.79,1.06-3.07,1.82 + c-0.28,0.75,0.63,1.22,1.96,1C444.42-61.72,445.83-62.58,446.12-63.35z"/> + <path class="st107" d="M419.58-61.27c0.31-0.82-0.49-1.37-1.82-1.27c-1.31,0.09-2.7,0.85-3,1.64 + c-0.29,0.79,0.55,1.41,1.83,1.31C417.9-59.68,419.27-60.46,419.58-61.27z"/> + <path class="st107" d="M394.25-62.1c0.49-0.83-0.1-1.64-1.29-1.82c-1.16-0.18-2.55,0.34-3.04,1.15 + c-0.46,0.77,0.17,1.7,1.29,1.87C392.38-60.72,393.77-61.28,394.25-62.1z"/> + <path class="st107" d="M369.37-69.42c-1.13-0.32-2.4,0.1-2.73,0.92c-0.33,0.82,0.33,1.84,1.42,2.16 + c1.13,0.33,2.39-0.14,2.74-0.99C371.15-68.18,370.52-69.09,369.37-69.42z"/> + <path class="st107" d="M1243.27,437.13c-0.17,0.17,0.48,1.14,1.32,2c0.88,0.9,1.76,1.53,1.93,1.35 + c0.17-0.18-0.41-1.09-1.3-2.01C1244.37,437.58,1243.43,436.95,1243.27,437.13z"/> + <path class="st107" d="M1228.5,421.74c0.25-0.14-0.24-1.04-1.12-2c-0.85-0.94-1.78-1.6-2.05-1.47c-0.26,0.12,0.29,1.08,1.14,2 + C1227.33,421.2,1228.25,421.88,1228.5,421.74z"/> + <path class="st107" d="M1208.55,401.2c0.84,0.95,1.79,1.64,2.08,1.49c0.29-0.15-0.16-1.08-1.03-2.07 + c-0.85-0.96-1.8-1.62-2.1-1.48C1207.21,399.28,1207.71,400.25,1208.55,401.2z"/> + <path class="st107" d="M1190.91,382.27c0.87,0.93,1.78,1.47,1.97,1.15c0.2-0.33-0.32-1.33-1.23-2.3c-0.84-0.9-1.81-1.45-2-1.14 + C1189.47,380.29,1190.07,381.37,1190.91,382.27z"/> + <path class="st107" d="M1173.95,361.94c-0.85-0.93-1.82-1.45-2.08-1.14c-0.26,0.29,0.3,1.42,1.13,2.31 + c0.87,0.93,1.8,1.46,2.06,1.15C1175.32,363.95,1174.82,362.88,1173.95,361.94z"/> + <path class="st107" d="M1155.12,344.33c0.88,0.9,1.83,1.34,2.06,0.94c0.24-0.42-0.26-1.47-1.18-2.42 + c-0.85-0.88-1.86-1.32-2.09-0.93C1153.69,342.32,1154.26,343.45,1155.12,344.33z"/> + <path class="st107" d="M1139.14,326.65c0.19-0.52-0.39-1.63-1.33-2.51c-0.92-0.86-1.88-1.14-2.06-0.62 + c-0.17,0.51,0.46,1.66,1.36,2.49C1138.03,326.87,1138.95,327.17,1139.14,326.65z"/> + <path class="st107" d="M1119.5,306.24c-0.93-0.82-1.93-1.05-2.14-0.52c-0.21,0.53,0.41,1.68,1.31,2.48 + c0.93,0.82,1.89,1.07,2.12,0.53C1121.01,308.19,1120.45,307.08,1119.5,306.24z"/> + <path class="st107" d="M828.53,69.89c-0.91-0.88-1.99-0.96-2.25-0.31c-0.26,0.65,0.31,1.93,1.2,2.78 + c0.92,0.88,1.9,1.1,2.18,0.44C829.93,72.14,829.47,70.79,828.53,69.89z"/> + <path class="st107" d="M846.63,88.83c-0.91-0.85-1.94-1.03-2.15-0.42c-0.21,0.62,0.4,1.85,1.31,2.7 + c0.91,0.86,1.89,1.09,2.11,0.46C848.12,90.93,847.57,89.7,846.63,88.83z"/> + <path class="st107" d="M864.88,107.53c-0.92-0.84-1.93-1.05-2.12-0.48c-0.19,0.58,0.43,1.78,1.34,2.63 + c0.92,0.85,1.88,1.11,2.09,0.51C866.39,109.59,865.83,108.4,864.88,107.53z"/> + <path class="st107" d="M884.53,128.63c0.29-0.52-0.19-1.64-1.13-2.56c-0.87-0.85-1.95-1.17-2.22-0.69 + c-0.27,0.49,0.29,1.67,1.16,2.53C883.24,128.8,884.25,129.14,884.53,128.63z"/> + <path class="st107" d="M903.12,146.52c0.21-0.58-0.37-1.71-1.33-2.55c-0.95-0.83-1.95-1.03-2.14-0.47 + c-0.19,0.56,0.44,1.72,1.36,2.53C901.95,146.87,902.91,147.1,903.12,146.52z"/> + <path class="st107" d="M919.62,163.42c0.92,0.83,1.95,1.11,2.23,0.59c0.29-0.54-0.21-1.61-1.17-2.48 + c-0.89-0.8-1.99-1.07-2.26-0.58C918.15,161.46,918.72,162.62,919.62,163.42z"/> + <path class="st107" d="M939.62,178.21c-0.96-0.76-2.01-0.91-2.23-0.35c-0.22,0.56,0.4,1.7,1.34,2.45 + c0.96,0.77,1.97,0.94,2.21,0.35C941.17,180.07,940.6,178.99,939.62,178.21z"/> + <path class="st107" d="M957.98,196.18c0.96,0.74,2.03,0.91,2.33,0.34c0.31-0.58-0.2-1.61-1.2-2.39 + c-0.93-0.71-2.07-0.88-2.35-0.34C956.47,194.33,957.05,195.45,957.98,196.18z"/> + <path class="st107" d="M978.84,208.83c-1.01-0.65-2.1-0.68-2.34-0.07c-0.24,0.6,0.41,1.68,1.39,2.32 + c1.01,0.66,2.07,0.7,2.33,0.07C980.47,210.51,979.87,209.49,978.84,208.83z"/> + <path class="st107" d="M1000.55,224.59c0.38-0.57-0.14-1.58-1.15-2.22c-0.99-0.62-2.15-0.68-2.54-0.13 + c-0.36,0.52,0.21,1.62,1.16,2.23C999.02,225.11,1000.17,225.16,1000.55,224.59z"/> + <path class="st107" d="M1021.62,236.3c0.36-0.61-0.2-1.55-1.25-2.1c-1.01-0.53-2.24-0.47-2.59,0.11 + c-0.34,0.56,0.27,1.6,1.26,2.11C1020.07,236.96,1021.26,236.9,1021.62,236.3z"/> + <path class="st107" d="M1040.09,247.6c0.97,0.65,2.17,0.77,2.61,0.24c0.46-0.54,0.03-1.53-0.97-2.2 + c-0.98-0.65-2.17-0.74-2.64-0.23C1038.64,245.93,1039.11,246.95,1040.09,247.6z"/> + <path class="st107" d="M1060.81,260.79c0.99,0.65,2.08,0.7,2.37,0.09c0.29-0.64-0.25-1.64-1.29-2.32 + c-0.97-0.64-2.13-0.67-2.4-0.07C1059.22,259.09,1059.84,260.15,1060.81,260.79z"/> + <path class="st107" d="M1082.82,275.75c0.41-0.5-0.02-1.55-0.96-2.36c-0.92-0.78-2.03-1.03-2.45-0.55 + c-0.4,0.45,0.08,1.57,0.99,2.34C1081.32,275.97,1082.43,276.24,1082.82,275.75z"/> + <path class="st107" d="M1102,291.76c0.37-0.47-0.08-1.56-1-2.41c-0.9-0.82-1.97-1.12-2.35-0.67c-0.36,0.43,0.15,1.6,1.03,2.4 + C1100.59,291.91,1101.64,292.23,1102,291.76z"/> + <path class="st107" d="M661.99-63.01c-0.93-0.56-2.19-0.49-2.53,0.16c-0.34,0.66,0.22,1.84,1.16,2.26 + c0.94,0.42,1.72,0.36,2.2-0.2C663.35-61.38,662.94-62.43,661.99-63.01z"/> + <path class="st107" d="M683.62-48.29c0.3-0.74-0.34-1.86-1.33-2.34c-0.78-0.38-1.81-0.25-2.09,0.27 + c-0.35,0.66,0.15,1.98,1.04,2.52C682.16-47.28,683.32-47.55,683.62-48.29z"/> + <path class="st107" d="M702.8-36.34c-0.87-0.69-2.08-0.78-2.46-0.01c-0.39,0.78,0.06,2.22,0.95,2.76 + c0.89,0.54,1.67,0.49,2.2-0.17C704.06-34.46,703.7-35.63,702.8-36.34z"/> + <path class="st107" d="M723.22-18.59c0.33-0.81-0.25-2.12-1.19-2.7c-0.75-0.46-1.77-0.35-2.07,0.24 + c-0.38,0.74,0.09,2.15,0.94,2.78C721.77-17.61,722.89-17.77,723.22-18.59z"/> + <path class="st107" d="M742.37-2.09c0.4-0.64-0.06-2.02-0.95-2.67c-0.83-0.61-1.6-0.8-2.09-0.21 + c-0.49,0.59-0.17,1.83,0.66,2.66C740.76-1.55,741.96-1.44,742.37-2.09z"/> + <path class="st107" d="M759.05,14.48c0.76,0.77,1.91,0.99,2.27,0.41c0.28-0.44-0.05-1.62-0.64-2.28 + c-0.77-0.85-1.96-1.18-2.38-0.67C757.87,12.46,758.22,13.63,759.05,14.48z"/> + <path class="st107" d="M779.16,30.15c-0.82-0.83-1.94-1.12-2.22-0.59c-0.29,0.54,0.24,1.82,1.07,2.52 + c0.83,0.7,1.5,0.9,1.91,0.52C780.36,32.18,780,31,779.16,30.15z"/> + <path class="st107" d="M798.53,50.55c0.2-0.56-0.42-1.78-1.31-2.49c-0.71-0.56-1.61-0.71-1.81-0.32 + c-0.26,0.5,0.3,1.69,1.12,2.42C797.38,50.9,798.32,51.11,798.53,50.55z"/> + <path class="st107" d="M816.27,66.68c-1.28-1.16-2.17-1.39-2.32-0.86c-0.14,0.52,0.55,1.69,1.37,2.38 + c0.85,0.72,1.82,0.96,1.73,0.24C816.98,67.94,816.48,67.13,816.27,66.68z"/> + <path class="st107" d="M509.83-69.1c-1.95,0.51-3.3,1.39-3.53,2.08c-0.22,0.69,0.81,0.99,2.06,0.6 + c1.31-0.4,2.82-1.47,2.67-2.03C510.93-68.83,510.14-68.94,509.83-69.1z"/> + <path class="st107" d="M482.77-62.07c0.43-0.75-0.42-1.21-1.71-0.85c-1.22,0.34-2.27,0.87-2.82,1.66 + c-0.56,0.78,0.06,1.31,1.31,1.12C480.69-60.32,482.33-61.3,482.77-62.07z"/> + <path class="st107" d="M455-57.31c-0.44-0.1-0.98-0.46-1.82-0.38c-1.24,0.12-2.69,1.13-2.94,1.89 + c-0.25,0.76,0.72,1.2,1.95,0.87C453.47-55.26,454.78-56.27,455-57.31z"/> + <path class="st107" d="M427.74-53.29c0.32-0.81-0.57-1.32-1.83-1.08c-1.01,0.19-2.3,0.98-2.61,1.6 + c-0.4,0.79,0.36,1.47,1.52,1.33C426.01-51.59,427.42-52.48,427.74-53.29z"/> + <path class="st107" d="M401.89-53.02c-0.39-0.22-0.85-0.76-1.62-0.86c-1.13-0.16-2.5,0.68-2.78,1.51 + c-0.28,0.83,0.56,1.58,1.69,1.48C400.37-50.99,401.62-51.85,401.89-53.02z"/> + <path class="st107" d="M377.31-55.33c0.45-0.8-0.17-1.81-1.25-1.93c-1.02-0.12-1.93,0.08-2.48,0.86 + c-0.55,0.78-0.13,1.78,0.89,2.12C375.4-53.98,376.85-54.52,377.31-55.33z"/> + <path class="st107" d="M354.86-63.01c0.45-0.77-0.07-1.97-1.05-2.34c-0.93-0.35-1.77-0.33-2.31,0.38 + c-0.54,0.71-0.2,1.88,0.71,2.47C353.06-61.96,354.41-62.23,354.86-63.01z"/> + <path class="st107" d="M1235.67,432.56c0.15-0.08-0.51-1.01-1.32-1.8c-0.77-0.75-1.39-1.26-1.62-1.24 + c-0.23,0.01,0.29,0.77,1.11,1.62C1234.59,431.92,1235.52,432.65,1235.67,432.56z"/> + <path class="st107" d="M1217.6,414.01c0.16-0.12-0.49-1.1-1.29-1.9c-0.77-0.76-1.39-1.25-1.63-1.19 + c-0.24,0.05,0.27,0.86,1.08,1.72C1216.5,413.43,1217.43,414.13,1217.6,414.01z"/> + <path class="st107" d="M1199.59,395.28c0.19-0.16-0.44-1.17-1.25-1.97c-0.77-0.76-1.4-1.24-1.66-1.15 + c-0.27,0.09,0.22,0.93,1.03,1.8C1198.45,394.77,1199.4,395.44,1199.59,395.28z"/> + <path class="st107" d="M1180.72,374.81c-1.23-1.22-2.04-1.65-2.11-1.29c-0.07,0.35,0.65,1.42,1.43,2.16 + c0.82,0.77,1.7,1.22,1.54,0.66C1181.47,375.95,1180.94,375.2,1180.72,374.81z"/> + <path class="st107" d="M1160.61,354.84c-0.29,0.2,0.17,1.11,0.99,1.98c0.75,0.79,1.73,1.36,1.95,1.1 + c0.17-0.2-0.28-1.13-0.85-1.77C1161.93,355.3,1160.89,354.65,1160.61,354.84z"/> + <path class="st107" d="M1142.39,336.62c-0.31,0.25,0.14,1.19,0.96,2.04c0.75,0.78,1.77,1.28,2,0.97 + c0.18-0.23-0.25-1.2-0.83-1.83C1143.76,336.97,1142.69,336.38,1142.39,336.62z"/> + <path class="st107" d="M1123.94,318.94c-0.33,0.3,0.11,1.25,0.94,2.09c0.76,0.76,1.8,1.19,2.06,0.84 + c0.19-0.27-0.23-1.25-0.81-1.87C1125.35,319.18,1124.25,318.66,1123.94,318.94z"/> + <path class="st107" d="M1108.22,304.8c0.28-0.39-0.3-1.53-1.17-2.19c-0.82-0.63-1.52-0.93-1.88-0.61 + c-0.36,0.33,0.08,1.31,0.92,2.1C1106.86,304.83,1107.94,305.19,1108.22,304.8z"/> + <path class="st107" d="M835.57,86.53c-0.3-0.45-0.68-1.22-1.25-1.84c-0.83-0.91-1.77-1.14-1.89-0.67 + c-0.12,0.47,0.58,1.62,1.39,2.33C834.66,87.09,835.47,87.29,835.57,86.53z"/> + <path class="st107" d="M852.05,104.51c0.82,0.79,1.71,1.15,1.86,0.72c0.13-0.36-0.32-1.24-1.02-1.96 + c-0.81-0.84-1.85-1.32-2.05-0.98C850.65,102.64,851.25,103.74,852.05,104.51z"/> + <path class="st107" d="M871.46,121.81c-1.27-1.18-2.13-1.49-2.24-1.04c-0.11,0.44,0.59,1.57,1.4,2.28 + c0.84,0.74,1.78,1.07,1.66,0.41C872.19,123.01,871.67,122.23,871.46,121.81z"/> + <path class="st107" d="M890.73,141.91c0.26-0.31-0.31-1.44-1.15-2.19c-0.8-0.7-1.48-1.09-1.82-0.86 + c-0.34,0.24,0.1,1.19,0.92,2.06C889.44,141.72,890.47,142.23,890.73,141.91z"/> + <path class="st107" d="M909.34,159.67c0.16-0.45-0.51-1.55-1.39-2.27c-0.7-0.57-1.55-0.83-1.72-0.54 + c-0.21,0.38,0.39,1.47,1.21,2.21C908.27,159.83,909.18,160.13,909.34,159.67z"/> + <path class="st107" d="M928.09,177.13c0.28-0.36-0.29-1.49-1.15-2.18c-0.82-0.65-1.52-0.99-1.88-0.7 + c-0.36,0.29,0.07,1.26,0.91,2.08C926.74,177.09,927.81,177.5,928.09,177.13z"/> + <path class="st107" d="M947.22,193.6c0.18-0.51-0.5-1.59-1.41-2.23c-0.73-0.51-1.62-0.67-1.81-0.33 + c-0.24,0.44,0.36,1.53,1.21,2.2C946.07,193.94,947.03,194.11,947.22,193.6z"/> + <path class="st107" d="M964.43,208.85c0.8,0.68,1.93,0.93,2.24,0.48c0.23-0.34-0.18-1.31-0.81-1.87 + c-0.82-0.73-2-1.08-2.36-0.71C963.12,207.14,963.55,208.1,964.43,208.85z"/> + <path class="st107" d="M986.68,223.58c0.22-0.56-0.47-1.57-1.43-2.09c-0.77-0.42-1.73-0.46-1.94-0.07 + c-0.28,0.48,0.34,1.55,1.22,2.11C985.43,224.11,986.46,224.14,986.68,223.58z"/> + <path class="st107" d="M1007.25,236.53c0.33-0.5-0.29-1.53-1.24-1.98c-0.91-0.43-1.69-0.56-2.11-0.11 + c-0.42,0.45,0.03,1.37,0.96,1.98C1005.7,236.98,1006.92,237.04,1007.25,236.53z"/> + <path class="st107" d="M1027.65,245.99c-1.47-0.67-2.51-0.55-2.69,0.05c-0.18,0.59,0.59,1.54,1.54,1.92 + c0.99,0.39,2.13,0.22,2.03-0.49C1028.46,246.98,1027.88,246.36,1027.65,245.99z"/> + <path class="st107" d="M1046.05,257.67c-0.4,0.46,0.05,1.38,0.97,2.02c0.84,0.58,2.03,0.68,2.35,0.18 + c0.24-0.38-0.19-1.34-0.83-1.82C1047.68,257.42,1046.43,257.23,1046.05,257.67z"/> + <path class="st107" d="M1069.56,273.45c0.21-0.55-0.48-1.6-1.43-2.15c-0.75-0.44-1.7-0.47-1.9-0.08 + c-0.27,0.5,0.34,1.55,1.22,2.14C1068.35,273.96,1069.35,274.01,1069.56,273.45z"/> + <path class="st107" d="M1086.92,288.09c0.79,0.69,1.9,0.97,2.2,0.53c0.23-0.33-0.19-1.32-0.8-1.89 + c-0.8-0.75-1.97-1.12-2.33-0.75C1085.62,286.37,1086.06,287.34,1086.92,288.09z"/> + <path class="st107" d="M1083.34,296.97c0.19-0.31-0.34-1.06-1.19-1.66c-0.89-0.63-1.66-0.82-1.8-0.47 + c-0.14,0.34,0.44,1.13,1.22,1.69C1082.36,297.09,1083.13,297.29,1083.34,296.97z"/> + <path class="st107" d="M1062.39,281.2c-0.85-0.6-1.75-0.83-2-0.53c-0.26,0.31,0.18,1,1.01,1.6c0.76,0.55,1.67,0.79,1.96,0.5 + C1063.66,282.47,1063.26,281.81,1062.39,281.2z"/> + <path class="st107" d="M1042.96,269.65c0.21-0.37-0.34-1.09-1.25-1.57c-0.94-0.51-1.76-0.58-1.92-0.17 + c-0.15,0.39,0.45,1.14,1.28,1.6C1041.91,269.97,1042.74,270.04,1042.96,269.65z"/> + <path class="st107" d="M1021.84,258.1c0.33-0.37-0.09-0.99-1-1.47c-0.9-0.48-1.86-0.57-2.14-0.22 + c-0.29,0.36,0.17,1.01,1.05,1.49C1020.56,258.34,1021.53,258.44,1021.84,258.1z"/> + <path class="st107" d="M997.53,244.95c0.33,0.37,0.73,0.98,1.35,1.45c0.72,0.55,1.64,0.56,1.87,0.16 + c0.22-0.38-0.34-1.1-1.23-1.61C998.57,244.42,997.77,244.34,997.53,244.95z"/> + <path class="st107" d="M980.36,233.17c0.31-0.32-0.08-1.01-0.93-1.65c-0.84-0.63-1.73-0.9-1.99-0.59 + c-0.27,0.31,0.16,1.05,0.97,1.7C979.15,233.22,980.06,233.47,980.36,233.17z"/> + <path class="st107" d="M960.72,218.02c0.3-0.28-0.09-0.99-0.92-1.7c-0.82-0.69-1.67-1.03-1.92-0.76 + c-0.25,0.28,0.16,1.04,0.95,1.74C959.56,217.95,960.43,218.28,960.72,218.02z"/> + <path class="st107" d="M940.33,201.15c0.34,0.08,1,0.37,1.29,0.27c0.35-0.12-0.31-1.07-1.13-1.77 + c-0.85-0.73-1.58-1.01-1.7-0.66C938.68,199.32,939.24,200.2,940.33,201.15z"/> + <path class="st107" d="M921.99,182.37c-0.79-0.77-1.59-1.23-1.8-1.04c-0.22,0.2,0.2,0.96,0.96,1.74 + c0.7,0.72,1.52,1.18,1.76,0.99C923.17,183.87,922.79,183.16,921.99,182.37z"/> + <path class="st107" d="M903.54,164.26c-0.78-0.79-1.56-1.3-1.76-1.13c-0.2,0.17,0.23,0.91,0.98,1.71 + c0.69,0.73,1.49,1.24,1.72,1.09C904.72,165.76,904.33,165.06,903.54,164.26z"/> + <path class="st107" d="M885.25,145.78c-0.77-0.8-1.55-1.35-1.74-1.22c-0.2,0.13,0.23,0.85,0.98,1.65 + c0.69,0.74,1.48,1.29,1.7,1.18C886.42,147.27,886.03,146.59,885.25,145.78z"/> + <path class="st107" d="M866.79,128.06c0.31,0.17,0.91,0.58,1.16,0.59c0.29,0.01-0.38-0.91-1.17-1.69 + c-0.82-0.81-1.48-1.23-1.56-1C865.15,126.18,865.73,127.01,866.79,128.06z"/> + <path class="st107" d="M849.66,110.18c0.12-0.16-0.43-0.92-1.22-1.69c-0.83-0.8-1.49-1.23-1.56-1.02 + c-0.07,0.2,0.52,1.01,1.25,1.72C848.87,109.92,849.54,110.35,849.66,110.18z"/> + <path class="st107" d="M830.13,90.54c-0.79-0.77-1.56-1.3-1.73-1.19c-0.17,0.11,0.29,0.78,1.06,1.54 + c0.71,0.7,1.49,1.25,1.69,1.16C831.36,91.96,830.93,91.32,830.13,90.54z"/> + <path class="st107" d="M1102.83,312.23c0.17-0.28-0.36-1.04-1.2-1.68c-0.87-0.67-1.61-0.92-1.74-0.59 + c-0.12,0.31,0.46,1.11,1.23,1.71C1101.9,312.27,1102.65,312.52,1102.83,312.23z"/> + <path class="st107" d="M1120.96,326.83c-0.8-0.71-1.62-1.14-1.84-0.95c-0.22,0.19,0.21,0.88,0.99,1.59 + c0.71,0.65,1.56,1.09,1.8,0.92C1122.17,328.21,1121.78,327.55,1120.96,326.83z"/> + <path class="st107" d="M1139.8,343.61c-0.79-0.74-1.59-1.21-1.79-1.07c-0.2,0.15,0.24,0.82,1.01,1.55 + c0.71,0.67,1.53,1.16,1.75,1.04C1141.01,345,1140.6,344.36,1139.8,343.61z"/> + <path class="st107" d="M1158.24,360.73c-0.84-0.76-1.51-1.17-1.59-0.96c-0.08,0.19,0.51,0.96,1.24,1.63 + c0.75,0.68,1.43,1.1,1.56,0.94C1159.58,362.19,1159.03,361.46,1158.24,360.73z"/> + <path class="st107" d="M1177.91,379.95c0.2-0.04-0.23-0.63-1.02-1.41c-0.78-0.76-1.54-1.32-1.7-1.26 + c-0.16,0.06,0.3,0.69,1.06,1.44C1176.95,379.4,1177.73,379.98,1177.91,379.95z"/> + <path class="st107" d="M1196.32,397.72c0.18,0-0.26-0.56-1.05-1.34c-0.77-0.76-1.53-1.36-1.67-1.34 + c-0.15,0.02,0.33,0.62,1.09,1.38C1195.39,397.1,1196.16,397.72,1196.32,397.72z"/> + <path class="st107" d="M1214.74,415.55c0.07-0.04-0.51-0.7-1.3-1.45c-0.82-0.79-1.45-1.3-1.47-1.2 + c-0.02,0.09,0.6,0.78,1.33,1.47C1214.03,415.07,1214.66,415.59,1214.74,415.55z"/> + <path class="st107" d="M1233.13,433.32c0.15,0.07-0.32-0.44-1.12-1.21c-0.78-0.76-1.51-1.4-1.62-1.44 + c-0.12-0.04,0.39,0.5,1.16,1.24C1232.26,432.6,1232.99,433.25,1233.13,433.32z"/> + <path class="st107" d="M323.42-61.04c0.98,1.17,1.91,1.3,2.32,0.7c0.43-0.63,0.19-1.67-0.58-2.49 + c-0.76-0.81-1.81-1.14-1.96-0.39C323.06-62.56,323.35-61.58,323.42-61.04z"/> + <path class="st107" d="M342.63-45.64c1.16,0.74,2.15,0.72,2.6,0.04c0.47-0.72,0.16-1.61-0.72-2.15 + c-0.87-0.53-2.08-0.5-2.23,0.24C342.14-46.85,342.49-46.03,342.63-45.64z"/> + <path class="st107" d="M367.45-37.38c0.28-0.51-0.2-1.35-1.21-1.55c-1.06-0.21-2.11,0.29-2.33,0.82 + c-0.21,0.5,0.42,1.13,1.35,1.33C366.19-36.58,367.16-36.85,367.45-37.38z"/> + <path class="st107" d="M391.88-34.49c0.28-0.53-0.39-0.95-1.49-0.94c-1.15,0.01-2.14,0.39-2.36,0.92 + c-0.2,0.5,0.5,0.98,1.5,0.99C390.56-33.5,391.59-33.94,391.88-34.49z"/> + <path class="st107" d="M417.98-35.56c0.31-0.58-0.39-0.9-1.55-0.75c-1.21,0.16-2.27,0.68-2.51,1.24 + c-0.22,0.54,0.51,0.92,1.57,0.8C416.56-34.39,417.66-34.96,417.98-35.56z"/> + <path class="st107" d="M443.92-40.14c-1.17,0.18-2.42,0.81-2.81,1.43c-0.4,0.63,0.16,1.03,1.28,0.9 + c1.03-0.12,2.32-0.8,2.76-1.46C445.63-39.97,445.11-40.33,443.92-40.14z"/> + <path class="st107" d="M473.12-44.73c0.51-0.78,0.01-1.17-1.19-0.94c-1.18,0.22-2.49,0.95-2.91,1.63 + c-0.44,0.7,0.09,1.13,1.23,0.97C471.29-43.21,472.64-44,473.12-44.73z"/> + <path class="st107" d="M501.44-50.91c0.38-0.78-0.32-1.13-1.56-0.8c-1.29,0.34-2.45,1.13-2.76,1.89 + c-0.29,0.72,0.45,1.13,1.57,0.87C499.82-49.23,501.05-50.11,501.44-50.91z"/> + <path class="st107" d="M527.17-54.43c0.58-0.5,1.66-1.22,2.21-1.93c0.66-0.85-0.2-1.29-1.43-1c-1.27,0.3-2.45,1.13-2.79,1.97 + C524.85-54.59,525.55-54.08,527.17-54.43z"/> + <path class="st107" d="M556.8-60.19c0.44-0.93-0.17-1.5-1.35-1.29c-1.24,0.22-2.42,1.04-2.8,1.95 + c-0.36,0.87,0.28,1.52,1.36,1.36C555.11-58.32,556.34-59.22,556.8-60.19z"/> + <path class="st107" d="M580.87-59.54c0.59-0.5,1.64-1.16,2.22-1.93c0.69-0.93-0.04-1.68-1.18-1.59 + c-1.19,0.09-2.35,0.88-2.75,1.86C578.77-60.27,579.36-59.47,580.87-59.54z"/> + <path class="st107" d="M605.8-57.39c0.57-0.47,1.6-1.04,2.17-1.81c0.69-0.93,0.05-1.89-1.02-1.97 + c-1.12-0.08-2.24,0.61-2.67,1.65C603.88-58.53,604.38-57.54,605.8-57.39z"/> + <path class="st107" d="M630.98-52.22c0.63-1.07,0.4-2.15-0.54-2.58c-0.93-0.42-2.11,0.02-2.66,1.01 + c-0.56,1.01-0.32,2.18,0.56,2.65C629.16-50.69,630.38-51.2,630.98-52.22z"/> + <path class="st107" d="M649.98-39.08c0.53-0.37,1.46-0.72,2.02-1.45c0.67-0.87,0.17-2.21-0.75-2.66 + c-0.96-0.47-1.99-0.02-2.43,1.08C648.4-41.06,648.76-39.72,649.98-39.08z"/> + <path class="st107" d="M669.64-26.88c1.12,0.88,2.27,0.54,2.84-0.41c0.6-1.01,0.4-2.17-0.46-2.78c-0.86-0.6-2.15-0.4-2.43,0.62 + C669.35-28.56,669.62-27.52,669.64-26.88z"/> + <path class="st107" d="M691.23-13.35c0.5-0.29,1.38-0.53,1.89-1.14c0.61-0.73,0.08-1.99-0.84-2.47 + c-0.95-0.5-1.93-0.17-2.32,0.8C689.6-15.25,690.01-14.01,691.23-13.35z"/> + <path class="st107" d="M713.66-1.19c0.38-0.77-0.04-1.8-0.93-2.32c-0.94-0.54-1.88-0.33-2.22,0.5 + c-0.33,0.79,0.12,1.91,0.95,2.39C712.29-0.14,713.26-0.39,713.66-1.19z"/> + <path class="st107" d="M731.46,12.15c1.13,0.85,2.14,0.86,2.54,0.3c0.42-0.59,0.1-1.47-0.76-2.1 + c-0.85-0.62-2.02-0.74-2.14-0.06C730.98,10.89,731.36,11.69,731.46,12.15z"/> + <path class="st107" d="M754.23,26.46c0.35-0.42,0-1.2-0.86-1.85c-0.84-0.64-1.77-0.82-2.08-0.41c-0.32,0.43,0.07,1.26,0.9,1.9 + C752.94,26.68,753.9,26.85,754.23,26.46z"/> + <path class="st107" d="M771.85,40.4c1.11,0.91,1.98,1.22,2.24,0.97c0.28-0.27-0.13-0.97-0.97-1.66 + c-0.83-0.68-1.86-1.1-1.87-0.67C771.24,39.41,771.69,40.06,771.85,40.4z"/> + <path class="st107" d="M793.43,57.56c0.14-0.22-0.42-0.96-1.25-1.63c-0.87-0.71-1.57-1.03-1.66-0.76 + c-0.09,0.25,0.52,1.03,1.28,1.65C792.57,57.45,793.29,57.78,793.43,57.56z"/> + <path class="st107" d="M811.4,72.95c-0.8-0.74-1.59-1.23-1.77-1.11c-0.18,0.13,0.28,0.79,1.06,1.53 + c0.72,0.68,1.52,1.18,1.72,1.08C812.64,74.34,812.22,73.71,811.4,72.95z"/> + <path class="st107" d="M842.45,98.98c-0.3-0.42-0.67-1.06-1.23-1.69c-0.78-0.87-1.72-1.3-1.78-0.93 + c-0.05,0.3,0.59,1.16,1.38,1.88C841.59,98.94,842.34,99.36,842.45,98.98z"/> + <path class="st107" d="M861.19,117.92c-0.56-0.89-0.84-1.47-1.34-2.11c-0.56-0.71-1.53-1.35-1.84-1.29 + c-0.38,0.07,0.1,0.98,1,1.79C859.64,116.88,860.26,117.24,861.19,117.92z"/> + <path class="st107" d="M877.51,134.94c0.39,0.25,1.15,0.84,1.55,0.96c0.52,0.16-0.12-0.98-0.98-1.87 + c-0.75-0.78-1.48-1.21-1.74-1.06C876.09,133.11,876.46,133.83,877.51,134.94z"/> + <path class="st107" d="M896.74,152.55c-1.11-1.07-1.83-1.44-2.05-1.22c-0.21,0.22,0.23,0.99,0.97,1.73 + c0.93,0.93,2.01,1.56,1.9,1.02C897.48,153.68,896.95,152.93,896.74,152.55z"/> + <path class="st107" d="M916.56,172.48c-0.7-0.99-1.08-1.68-1.66-2.31c-0.79-0.85-1.72-1.14-1.79-0.66 + c-0.05,0.37,0.66,1.42,1.38,1.93C915.13,171.88,915.69,172.05,916.56,172.48z"/> + <path class="st107" d="M935.21,190c-0.51-0.91-0.74-1.52-1.22-2.16c-0.54-0.7-1.59-1.22-1.96-1.08 + c-0.46,0.17-0.07,1.15,0.86,1.88C933.53,189.16,934.21,189.44,935.21,190z"/> + <path class="st107" d="M953.18,204.45c-1.15-0.96-1.94-1.21-2.23-0.9c-0.28,0.3,0.12,1.09,0.88,1.76 + c0.95,0.83,2.15,1.28,2.09,0.69C953.88,205.56,953.37,204.83,953.18,204.45z"/> + <path class="st107" d="M973.34,221.69c0.37-0.47-0.07-1.32-0.81-1.95c-0.92-0.77-1.94-1-2.18-0.5 + c-0.2,0.42,0.28,1.28,1.14,1.77C972.18,221.41,972.87,221.53,973.34,221.69z"/> + <path class="st107" d="M991.63,235.31c0.46,0.09,1.33,0.4,1.82,0.3c0.64-0.12,0.01-1.25-0.95-1.91 + c-0.83-0.57-1.69-0.71-2.04-0.34C990.12,233.72,990.48,234.46,991.63,235.31z"/> + <path class="st107" d="M1013.12,245.61c-0.86,0.17-1.62,0.16-1.96,0.42c-0.43,0.33,0.23,1.13,1.14,1.59 + c1.05,0.54,2.36,0.55,2.2-0.08C1014.37,247.06,1013.73,246.45,1013.12,245.61z"/> + <path class="st107" d="M1035.81,258.66c-0.32-0.37-0.68-1-1.31-1.46c-0.87-0.64-2.03-0.55-2.18,0.04 + c-0.12,0.47,0.55,1.23,1.45,1.64C1034.66,259.29,1035.58,259.29,1035.81,258.66z"/> + <path class="st107" d="M1055.03,269.37c-0.82,0.09-1.56,0.01-1.89,0.25c-0.41,0.29,0.23,1.13,1.1,1.67 + c1.01,0.63,2.26,0.78,2.1,0.14C1056.23,270.94,1055.62,270.26,1055.03,269.37z"/> + <path class="st107" d="M1075.53,284.01c-1.19-0.86-2-1.01-2.28-0.64c-0.27,0.36,0.16,1.13,0.96,1.72 + c1,0.74,2.21,1.06,2.13,0.45C1076.27,285.09,1075.74,284.39,1075.53,284.01z"/> + <path class="st107" d="M1094.27,300.54c0.37,0.09,1.14,0.43,1.51,0.34c0.5-0.13-0.25-1.31-1.2-2.03 + c-0.77-0.58-1.56-0.75-1.77-0.38C1092.6,298.84,1093.06,299.59,1094.27,300.54z"/> + <path class="st107" d="M1114.82,317.2c0.32-0.35-0.12-1.2-0.83-1.88c-0.88-0.85-1.84-1.21-2.05-0.79 + c-0.17,0.35,0.32,1.19,1.14,1.77C1113.74,316.75,1114.38,316.97,1114.82,317.2z"/> + <path class="st107" d="M1132.89,332.42c-1.11-1.02-1.86-1.35-2.08-1.1c-0.22,0.24,0.21,1,0.97,1.7 + c0.94,0.87,2.04,1.44,1.93,0.9C1133.62,333.52,1133.09,332.79,1132.89,332.42z"/> + <path class="st107" d="M1152.59,352c-0.53-0.85-0.78-1.4-1.27-2.03c-0.54-0.69-1.54-1.32-1.87-1.27 + c-0.42,0.07,0.01,0.95,0.91,1.72C1151,350.98,1151.64,351.34,1152.59,352z"/> + <path class="st107" d="M1169.73,368.06c-1.09-1.09-1.79-1.53-2.01-1.39c-0.2,0.13,0.23,0.83,0.96,1.56 + c0.91,0.91,1.98,1.65,1.86,1.2C1170.45,369.11,1169.93,368.41,1169.73,368.06z"/> + <path class="st107" d="M1187.54,386.92c0.3,0.19,0.96,0.69,1.2,0.73c0.32,0.05-0.56-1.12-1.41-1.92 + c-0.71-0.67-1.36-1.05-1.43-0.85C1185.84,385.09,1186.4,385.81,1187.54,386.92z"/> + <path class="st107" d="M1207.01,405.92c-0.31-0.38-0.7-0.94-1.26-1.55c-0.78-0.85-1.65-1.44-1.66-1.2 + c-0.01,0.19,0.64,0.98,1.41,1.71C1206.24,405.6,1206.95,406.13,1207.01,405.92z"/> + <path class="st107" d="M1224.27,423.01c-1.09-1.09-1.75-1.62-1.91-1.61c-0.15,0.01,0.32,0.62,1.05,1.34 + c0.91,0.91,1.93,1.77,1.76,1.44C1225.04,423.95,1224.49,423.31,1224.27,423.01z"/> + <path class="st107" d="M1242,440.54c-0.59-0.44-1.16-0.91-1.35-1.01c-0.23-0.11,0.44,0.63,1.23,1.38 + c0.9,0.88,1.87,1.69,1.6,1.32C1243.26,441.95,1242.64,441.29,1242,440.54z"/> + <path class="st107" d="M340.08-60.92c-0.24-0.5-0.46-1.39-1-2c-0.78-0.86-2.01-0.63-2.35,0.31c-0.28,0.75,0.18,1.78,1.06,2.32 + C338.62-59.79,339.64-59.94,340.08-60.92z"/> + <path class="st107" d="M360.35-51.61c-1.33-0.47-2.33-0.16-2.78,0.59c-0.43,0.74-0.07,1.64,0.82,2 + c1.11,0.45,2.62,0.03,2.65-0.85C361.07-50.5,360.53-51.18,360.35-51.61z"/> + <path class="st107" d="M384.81-43.95c-0.53-0.81-0.72-1.49-1.3-1.88c-0.63-0.43-2.09,0.04-2.69,0.74 + c-0.76,0.88-0.43,1.98,0.78,1.97C382.46-43.13,383.43-43.57,384.81-43.95z"/> + <path class="st107" d="M408.17-45.02c-1.14,0.85-2.13,1.39-2.61,2.01c-0.61,0.76,0.12,1.35,1.24,1.28 + c1.29-0.07,3-1.05,2.89-1.76C409.59-44.04,408.84-44.37,408.17-45.02z"/> + <path class="st107" d="M436.45-46.09c-0.39-0.18-0.82-0.63-1.62-0.66c-1.1-0.04-2.68,1.06-2.96,1.94 + c-0.23,0.71,0.59,1.1,1.77,0.82C434.79-44.25,436.06-45.1,436.45-46.09z"/> + <path class="st107" d="M461.52-48.78c0.57-0.39,1.74-1.01,2.32-1.62c0.8-0.85-0.22-1.35-1.6-1.01c-1.12,0.28-2.33,1.1-2.7,1.86 + C459.17-48.78,459.77-48.39,461.52-48.78z"/> + <path class="st107" d="M492.23-56.68c0.35-0.67-0.27-1.07-1.37-0.88c-1.32,0.23-2.82,1.19-3.17,2.06 + c-0.29,0.71,0.43,1,1.68,0.65C490.59-55.18,491.88-56.02,492.23-56.68z"/> + <path class="st107" d="M823.76,81.18c0.27-0.25-0.18-1.07-0.89-1.8c-0.87-0.9-1.79-1.38-1.95-1.05 + c-0.14,0.27,0.38,1.09,1.17,1.74C822.73,80.59,823.34,80.9,823.76,81.18z"/> + <path class="st107" d="M803.86,61.16c-0.72-0.16-1.37-0.44-1.64-0.34c-0.33,0.12,0.29,1.01,1.1,1.73 + c0.93,0.83,2.03,1.35,1.85,0.76C805.02,62.86,804.43,62.1,803.86,61.16z"/> + <path class="st107" d="M786.2,46.24c0.33-0.38-0.1-1.28-0.8-2.01c-0.87-0.9-1.83-1.27-2.05-0.81c-0.18,0.38,0.3,1.27,1.12,1.87 + C785.12,45.77,785.76,46,786.2,46.24z"/> + <path class="st107" d="M767.47,28.81c-0.29-0.46-0.6-1.22-1.17-1.84c-0.78-0.86-1.87-0.94-2.04-0.3 + c-0.14,0.51,0.47,1.45,1.3,2.05C766.37,29.31,767.23,29.46,767.47,28.81z"/> + <path class="st107" d="M747.38,10.9c-1.16-0.94-2.03-0.98-2.39-0.42c-0.35,0.55,0.01,1.51,0.8,2.15 + c0.98,0.8,2.26,0.97,2.25,0.17C748.04,12.2,747.55,11.37,747.38,10.9z"/> + <path class="st107" d="M728.78-2.01c-0.4-1.17-0.52-2.03-0.98-2.75c-0.5-0.79-1.71-0.94-2.24-0.42 + c-0.67,0.65-0.44,2.05,0.56,2.59C726.83-2.21,727.65-2.25,728.78-2.01z"/> + <path class="st107" d="M706.68-16.91c0.46-0.11,1.36-0.07,1.87-0.51c0.7-0.6,0.11-2.18-0.89-2.81 + c-0.81-0.51-1.78-0.27-2.17,0.56C705.09-18.84,705.43-17.77,706.68-16.91z"/> + <path class="st107" d="M688.4-31.42c0.65-1.12,0.37-2.36-0.36-3.01c-0.9-0.81-2.12-0.57-2.62,0.54 + c-0.41,0.92-0.1,2.2,0.84,2.51C687.01-31.15,687.86-31.4,688.4-31.42z"/> + <path class="st107" d="M667.96-47.96c-1.22-0.8-2.21-0.57-2.75,0.32c-0.51,0.85-0.29,2.05,0.51,2.63 + c0.99,0.72,2.51,0.42,2.67-0.67C668.51-46.5,668.08-47.42,667.96-47.96z"/> + <path class="st107" d="M647.93-58.71c-0.26-0.51-0.49-1.42-1.09-1.96c-0.82-0.74-2.18-0.22-2.55,0.87 + c-0.3,0.86,0.23,1.95,1.15,2.32C646.35-57.12,647.47-57.55,647.93-58.71z"/> + <path class="st107" d="M521.15-63.06c-0.7-0.41-1-0.84-1.71-0.92c-0.78-0.09-2.41,0.78-3.02,1.51 + c-0.78,0.92-0.27,1.6,1.13,1.15C518.54-61.63,519.62-62.31,521.15-63.06z"/> + <path class="st107" d="M509.94-43.3c-0.39-0.2-0.8-0.73-1.6-0.72c-0.87,0.01-2.38,1.33-2.57,2.16c-0.17,0.72,0.12,1.17,1.2,1 + C508.08-41.03,509.41-42,509.94-43.3z"/> + <path class="st107" d="M536.1-48.12c-1.06,0.09-2.37,1.04-2.84,2.09c-0.4,0.9-0.19,1.45,0.69,1.52c0.93,0.08,2.42-0.86,3-1.85 + C537.53-47.36,537.12-48.2,536.1-48.12z"/> + <path class="st107" d="M563.28-50.17c-1.44-0.09-2.77,0.82-3.33,1.97c-0.48,0.98-0.33,1.64,0.46,1.88 + c0.82,0.24,2.63-0.72,2.94-1.69C563.64-48.89,563.32-49.63,563.28-50.17z"/> + <path class="st107" d="M586.26-45.35c0.99,0.07,2.32-0.93,2.76-2.08c0.44-1.14-0.11-2.26-1.11-2.06 + c-0.97,0.19-1.82,0.8-2.38,1.86C584.89-46.42,585.21-45.43,586.26-45.35z"/> + <path class="st107" d="M611.64-45.15c-0.58,0.56-1.62,1.25-2.16,2.17c-0.55,0.93-0.3,1.89,0.58,2.19 + c0.93,0.31,2.18-0.46,2.74-1.68C613.36-43.71,613.02-44.95,611.64-45.15z"/> + <path class="st107" d="M634.96-33.47c-0.21-0.62-0.33-1.83-0.87-2.42c-0.61-0.66-2.04,0.42-2.43,1.7 + c-0.34,1.11-0.29,2.1,0.51,2.61C632.99-31.04,634.19-31.68,634.96-33.47z"/> + <path class="st107" d="M655.73-21.03c-0.22-0.6-0.36-1.75-0.92-2.32c-0.62-0.63-2.04,0.41-2.41,1.65 + c-0.32,1.06-0.25,2.02,0.56,2.5C653.8-18.71,655-19.32,655.73-21.03z"/> + <path class="st107" d="M675.91-11.3c-0.85-0.4-2.01,0.22-2.41,1.37c-0.35,0.98-0.26,1.85,0.51,2.37 + c0.82,0.56,1.98,0.1,2.51-0.97C677.04-9.6,676.75-10.9,675.91-11.3z"/> + <path class="st107" d="M695.69,3.81c0.9,0.31,1.96-0.27,2.24-1.23c0.27-0.94-0.36-2.29-1.21-2.21 + c-0.66,0.06-1.48,0.52-1.89,1.08C694.22,2.32,694.74,3.48,695.69,3.81z"/> + <path class="st107" d="M719.31,13.81c-0.28-0.45-0.57-1.28-1.17-1.76c-0.67-0.54-1.87,0.01-2.07,0.83 + c-0.17,0.71,0.02,1.38,0.86,1.82C717.8,15.16,718.84,14.9,719.31,13.81z"/> + <path class="st107" d="M738.19,25.87c0.83,0.53,1.83,0.53,2.17-0.01c0.33-0.53-0.1-1.43-0.92-1.88 + c-0.81-0.45-1.43-0.36-1.86,0.02C737.07,24.46,737.38,25.34,738.19,25.87z"/> + <path class="st107" d="M760.33,36.65c-0.81-0.54-1.69-0.63-1.89-0.19c-0.18,0.38,0.07,0.86,0.78,1.38 + c0.75,0.55,1.77,0.76,2.05,0.44C761.56,37.94,761.11,37.17,760.33,36.65z"/> + <path class="st107" d="M780.47,50.56c-0.78-0.56-1.58-0.8-1.64-0.46c-0.05,0.29,0.23,0.71,0.98,1.28 + c0.8,0.61,1.64,0.93,1.8,0.7C781.78,51.84,781.24,51.12,780.47,50.56z"/> + <path class="st107" d="M801.16,67.79c-0.3-0.36-0.67-0.89-1.23-1.42c-0.66-0.63-1.47-1-1.51-0.73 + c-0.03,0.22,0.24,0.63,0.97,1.26C800.17,67.58,800.95,68.03,801.16,67.79z"/> + <path class="st107" d="M481.93-37.86c0.52-0.83,0.04-1.44-1-1.29c-1.09,0.16-2.34,0.98-2.76,1.84 + c-0.35,0.73-0.09,1.13,0.82,1.13C479.94-36.19,481.42-37.05,481.93-37.86z"/> + <path class="st107" d="M454.25-33.09c0.48-0.73-0.03-1.27-1.06-1.14c-1.08,0.14-2.29,0.87-2.67,1.63 + c-0.32,0.64-0.03,1,0.87,0.99C452.34-31.61,453.78-32.37,454.25-33.09z"/> + <path class="st107" d="M424.35-28.09c1.05-0.03,2.28-0.63,2.68-1.28c0.39-0.64-0.2-1.11-1.25-0.98 + c-1.04,0.13-1.8,0.56-2.29,1.11C422.88-28.58,423.32-28.05,424.35-28.09z"/> + <path class="st107" d="M399.49-28.64c-1.01-0.01-2.12,0.46-2.39,1.04c-0.23,0.49,0.06,0.82,0.93,0.92 + c0.92,0.11,2.2-0.35,2.59-0.89C401.01-28.12,400.47-28.63,399.49-28.64z"/> + <path class="st107" d="M374.49-30.18c-0.95-0.16-1.98,0.13-2.23,0.66c-0.22,0.45,0.07,0.81,0.88,1.04 + c0.86,0.24,2.06-0.02,2.42-0.49C375.92-29.45,375.41-30.02,374.49-30.18z"/> + <path class="st107" d="M350.38-34.52c0.87,0.33,1.84,0.17,2.01-0.31c0.16-0.48-0.52-1.24-1.35-1.43 + c-0.81-0.18-1.43-0.11-1.72,0.3C348.99-35.5,349.45-34.87,350.38-34.52z"/> + <path class="st107" d="M331.35-45.88c0.3-0.42-0.1-1.31-0.85-1.88c-0.76-0.58-1.63-0.67-1.84-0.15 + c-0.18,0.44,0.02,0.99,0.71,1.6C330.12-45.65,331.04-45.46,331.35-45.88z"/> + <path class="st107" d="M311.72-64.35c0.68,0.8,1.43,0.96,1.57,0.34c0.14-0.61-0.4-2.11-1.02-2.54 + c-0.48-0.34-1.06-0.46-1.32-0.25C310.56-66.48,311.01-65.19,311.72-64.35z"/> + <path class="st107" d="M1241.52,441.65c-0.32-0.3-0.73-0.69-1.29-1.22c-0.66-0.62-1.36-1.25-1.31-1.2 + c0.04,0.04,0.35,0.34,1.06,1C1240.74,440.93,1241.43,441.58,1241.52,441.65z"/> + <path class="st107" d="M1221.29,422.68c-0.26-0.21-0.8-0.69-0.92-0.76c-0.12-0.07,0.33,0.38,1.06,1.06 + c0.76,0.71,1.44,1.31,1.48,1.3C1222.94,424.27,1222.33,423.65,1221.29,422.68z"/> + <path class="st107" d="M1204.31,406.87c0.15,0.05-0.36-0.52-1.06-1.19c-0.74-0.7-1.42-1.25-1.48-1.21 + c-0.06,0.03,0.24,0.37,0.89,0.99C1203.34,406.11,1204.17,406.82,1204.31,406.87z"/> + <path class="st107" d="M1184.18,387.79c-0.27-0.17-0.84-0.59-0.99-0.61c-0.15-0.02,0.29,0.48,1.02,1.16 + c0.76,0.7,1.46,1.25,1.54,1.17C1185.82,389.42,1185.23,388.75,1184.18,387.79z"/> + <path class="st107" d="M1166.42,371.35c-1.06-1-1.8-1.5-1.92-1.4c-0.1,0.09,0.17,0.46,0.81,1.08c0.65,0.64,1.72,1.45,1.71,1.26 + C1167,372.12,1166.58,371.6,1166.42,371.35z"/> + <path class="st107" d="M1147.16,353.92c-0.74-0.64-1.47-1.04-1.49-0.8c-0.02,0.2,0.26,0.6,0.97,1.24 + c0.76,0.69,1.52,1.17,1.66,1.03C1148.43,355.25,1147.9,354.55,1147.16,353.92z"/> + <path class="st107" d="M1129.4,338.79c-0.31-0.36-0.68-0.91-1.25-1.44c-0.65-0.61-1.47-0.94-1.48-0.64 + c-0.01,0.25,0.26,0.66,1.01,1.3C1128.45,338.67,1129.22,339.08,1129.4,338.79z"/> + <path class="st107" d="M1110.2,322.81c-0.31-0.36-0.7-0.93-1.27-1.46c-0.64-0.58-1.51-0.83-1.51-0.48 + c0,0.29,0.28,0.73,1.04,1.34C1109.24,322.84,1110.03,323.18,1110.2,322.81z"/> + <path class="st107" d="M819.45,83.76c-1.07-1.02-1.82-1.5-1.95-1.34c-0.11,0.13,0.15,0.54,0.78,1.18 + c0.65,0.66,1.74,1.44,1.74,1.21C820.02,84.6,819.61,84.04,819.45,83.76z"/> + <path class="st107" d="M838.7,102.65c0.16-0.11-0.34-0.83-1.05-1.53c-0.72-0.71-1.44-1.18-1.5-0.97 + c-0.05,0.18,0.21,0.6,0.88,1.29C837.76,102.2,838.54,102.76,838.7,102.65z"/> + <path class="st107" d="M857.1,121c-0.3-0.4-0.69-1-1.23-1.6c-0.61-0.67-1.39-1.12-1.37-0.83c0.02,0.26,0.3,0.71,1.02,1.45 + C856.24,120.77,856.97,121.28,857.1,121z"/> + <path class="st107" d="M875.18,139.99c0.22-0.07-0.19-0.81-0.87-1.55c-0.7-0.76-1.44-1.28-1.59-1.11 + c-0.13,0.14,0.11,0.59,0.71,1.3C874.05,139.36,874.96,140.06,875.18,139.99z"/> + <path class="st107" d="M892.26,157.19c-0.71-0.72-1.43-1.15-1.48-0.84c-0.04,0.26,0.21,0.74,0.89,1.47 + c0.72,0.79,1.48,1.3,1.64,1.1C893.47,158.72,892.97,157.91,892.26,157.19z"/> + <path class="st107" d="M909.75,176.64c0.72,0.79,1.51,1.29,1.71,1.08c0.19-0.2-0.26-1.02-0.97-1.73 + c-0.7-0.7-1.18-0.95-1.46-0.92C908.68,175.11,909.05,175.86,909.75,176.64z"/> + <path class="st107" d="M928.06,195.03c0.73,0.76,1.54,1.21,1.75,0.98c0.21-0.23-0.24-1.07-0.96-1.75 + c-0.71-0.68-1.2-0.89-1.5-0.83C926.99,193.51,927.35,194.28,928.06,195.03z"/> + <path class="st107" d="M948.48,213.49c0.26-0.22-0.15-1.03-0.86-1.7c-0.74-0.69-1.53-1.02-1.71-0.69 + c-0.16,0.27,0.07,0.77,0.71,1.43C947.29,213.23,948.22,213.7,948.48,213.49z"/> + <path class="st107" d="M966.77,228.06c-0.76-0.63-1.58-0.88-1.76-0.51c-0.16,0.31,0.09,0.8,0.75,1.42 + c0.7,0.66,1.65,1.03,1.91,0.77C967.94,229.47,967.51,228.67,966.77,228.06z"/> + <path class="st107" d="M985.92,244.1c0.82,0.5,1.61,0.55,1.67,0.12c0.06-0.43-0.73-1.39-1.43-1.64 + c-0.55-0.2-1.16-0.24-1.4-0.08C984.4,242.74,985.06,243.58,985.92,244.1z"/> + <path class="st107" d="M1007.16,255.62c-0.83-0.48-1.71-0.57-1.9-0.17c-0.17,0.33,0.1,0.77,0.81,1.25 + c0.76,0.51,1.79,0.7,2.07,0.4C1008.43,256.79,1007.96,256.08,1007.16,255.62z"/> + <path class="st107" d="M1027.48,267.73c0.84,0.5,1.77,0.65,2.02,0.32c0.25-0.33-0.25-1.02-1.08-1.45 + c-0.82-0.42-1.39-0.44-1.74-0.25C1026.25,266.6,1026.66,267.24,1027.48,267.73z"/> + <path class="st107" d="M1050.49,279.96c-0.3-0.34-0.64-0.9-1.23-1.35c-0.69-0.53-1.64-0.59-1.74-0.19 + c-0.09,0.33,0.17,0.76,0.94,1.27C1049.28,280.22,1050.17,280.42,1050.49,279.96z"/> + <path class="st107" d="M1070.82,293.26c-0.3-0.35-0.64-0.92-1.21-1.4c-0.68-0.57-1.59-0.7-1.69-0.32 + c-0.08,0.31,0.18,0.74,0.93,1.29C1069.66,293.42,1070.52,293.68,1070.82,293.26z"/> + <path class="st107" d="M1090.7,307.59c-0.31-0.36-0.67-0.93-1.25-1.43c-0.66-0.58-1.54-0.76-1.59-0.39 + c-0.04,0.31,0.23,0.74,1,1.32C1089.66,307.7,1090.47,307.99,1090.7,307.59z"/> + <path class="st107" d="M516.56-34.39c-1.24,0.9-2.23,1.44-2.84,2.11c-0.84,0.92-0.21,1.83,0.97,1.63 + c1.06-0.18,2.12-0.89,2.42-1.76C517.33-33.06,516.84-33.55,516.56-34.39z"/> + <path class="st107" d="M543.17-36.43c-1.25,0.93-2.24,1.45-2.87,2.17c-0.87,0.99-0.31,2.06,0.85,1.93 + c1.03-0.12,2.1-0.84,2.44-1.81C543.84-34.85,543.39-35.45,543.17-36.43z"/> + <path class="st107" d="M569.37-33.74c-0.14-0.53-0.13-1.44-0.58-1.83c-0.59-0.51-2.57,0.66-2.98,1.71 + c-0.41,1.06-0.25,1.85,0.68,1.99C567.4-31.73,568.27-32.27,569.37-33.74z"/> + <path class="st107" d="M593.71-30.29c-0.1-0.52-0.04-1.53-0.46-2.02c-0.54-0.65-2.47,0.43-2.9,1.54 + c-0.44,1.13-0.31,2.01,0.56,2.3C591.68-28.2,592.8-28.8,593.71-30.29z"/> + <path class="st107" d="M616.53-22.94c-0.07-0.58,0.02-1.69-0.34-2.29c-0.48-0.8-2.33,0.1-2.79,1.26 + c-0.46,1.18-0.37,2.17,0.43,2.62C614.54-20.94,615.61-21.43,616.53-22.94z"/> + <path class="st107" d="M634.74-9.39c1.13-0.67,2.02-0.9,2.6-1.6c0.82-1,0.63-2.13,0.07-2.85c-0.58-0.75-2.37-0.14-2.68,1.01 + C634.46-11.9,634.7-10.91,634.74-9.39z"/> + <path class="st107" d="M656.2,1.47c1.11-0.63,2.01-0.86,2.56-1.51c0.79-0.93,0.55-1.96-0.04-2.62 + c-0.61-0.69-2.39-0.09-2.67,0.97C655.83-0.83,656.11,0.08,656.2,1.47z"/> + <path class="st107" d="M680.58,6.87c-1.09,0.53-1.94,0.73-2.51,1.29c-0.78,0.78-0.36,2.22,0.63,2.52 + c0.89,0.26,1.81-0.13,2.14-1.06C681.08,8.92,680.72,8.08,680.58,6.87z"/> + <path class="st107" d="M703.58,19.07c-0.51-0.93-0.68-1.71-1.19-2.1c-0.78-0.6-2.11-0.04-2.36,0.88 + c-0.24,0.88,0.12,1.64,1,1.76C701.69,19.7,702.47,19.32,703.58,19.07z"/> + <path class="st107" d="M725.52,27.94c-0.2-0.42-0.31-1.06-0.75-1.5c-0.58-0.57-2.16-0.35-2.39,0.29 + c-0.23,0.65,0.01,1.28,0.85,1.66C724.06,28.77,724.76,28.64,725.52,27.94z"/> + <path class="st107" d="M747.58,37.65c-0.22-0.36-0.38-0.89-0.84-1.29c-0.6-0.53-2.08-0.55-2.24-0.07 + c-0.17,0.49,0.12,1.03,0.95,1.44C746.27,38.13,746.92,38.12,747.58,37.65z"/> + <path class="st107" d="M767,48.6c0.82,0.07,1.53,0.27,1.85,0.16c0.46-0.15,0.01-0.69-0.65-1.19c-0.69-0.52-2.08-0.84-2.07-0.45 + C766.14,47.45,766.6,47.95,767,48.6z"/> + <path class="st107" d="M789.89,62.46c-0.6-0.72-0.91-1.18-1.4-1.62c-0.76-0.65-1.71-0.99-1.71-0.65c0,0.32,0.45,0.86,1.19,1.32 + C788.54,61.85,789.06,62.05,789.89,62.46z"/> + <path class="st107" d="M807.97,76.77c-0.71-0.37-1.32-0.75-1.62-0.81c-0.42-0.08,0.24,0.82,1.06,1.5 + c0.74,0.61,1.36,0.95,1.39,0.7C808.83,77.97,808.36,77.39,807.97,76.77z"/> + <path class="st107" d="M490.24-29.48c-0.2-0.28-0.31-0.88-0.85-1.05c-0.71-0.23-2.66,0.93-2.96,1.7c-0.29,0.78,0,1.26,1.01,1.2 + C488.34-27.69,489.48-28.35,490.24-29.48z"/> + <path class="st107" d="M463.5-25.8c-0.7-0.44-1-0.89-1.65-0.93c-0.99-0.06-2.48,0.92-2.66,1.65c-0.17,0.7,0.33,1.08,1.38,0.79 + C461.36-24.52,462.22-25.12,463.5-25.8z"/> + <path class="st107" d="M436.01-22.7c-0.22-0.21-0.39-0.67-0.95-0.8c-0.73-0.18-2.56,0.69-2.77,1.27 + c-0.21,0.59,0.12,0.95,1.12,0.92C434.3-21.35,435.37-21.85,436.01-22.7z"/> + <path class="st107" d="M408.37-22.03c-1.05,0.56-1.91,0.88-2.33,1.27c-0.51,0.48,0.57,1.04,1.61,0.87 + c0.94-0.16,1.9-0.54,1.86-1.07C409.47-21.34,408.88-21.59,408.37-22.03z"/> + <path class="st107" d="M383.25-22.73c-1,0.33-1.82,0.48-2.27,0.76c-0.61,0.39,0.13,0.99,1.2,1.06 + c0.96,0.06,1.82-0.19,1.94-0.63C384.21-21.88,383.66-22.21,383.25-22.73z"/> + <path class="st107" d="M360.76-25.59c-0.66-0.53-0.97-0.95-1.53-1.19c-0.85-0.37-2.01-0.18-2.07,0.28 + c-0.06,0.44,0.42,0.88,1.28,1.02C359.08-25.38,359.74-25.52,360.76-25.59z"/> + <path class="st107" d="M338.39-34.5c-0.22-0.33-0.39-0.8-0.83-1.21c-0.58-0.53-1.95-0.77-2.08-0.4 + c-0.13,0.38,0.15,0.87,0.94,1.35C337.18-34.28,337.78-34.18,338.39-34.5z"/> + <path class="st107" d="M319.09-48.61c-0.51-0.9-0.73-1.53-1.17-2.07c-0.66-0.83-1.61-1.15-1.69-0.65 + c-0.08,0.48,0.28,1.2,0.97,1.76C317.72-49.15,318.26-49,319.09-48.61z"/> + <path class="st107" d="M300.71-71.63c0.6,0.46,1.14,1.06,1.35,0.93c0.27-0.17,0.06-1.12-0.46-2.23 + c-0.57-1.21-1.39-2.05-1.41-1.33C300.17-73.74,300.47-72.76,300.71-71.63z"/> + <path class="st107" d="M1230.26,431.67c-0.67-0.44-1.26-0.85-1.55-0.91c-0.41-0.08,0.19,0.94,0.99,1.67 + c0.72,0.65,1.34,0.95,1.38,0.66C1231.11,432.88,1230.66,432.26,1230.26,431.67z"/> + <path class="st107" d="M1211.64,414.36c-0.65-0.5-1.23-0.95-1.51-1.06c-0.38-0.15,0.25,0.78,1.06,1.5 + c0.72,0.65,1.33,0.99,1.34,0.78C1212.54,415.43,1212.07,414.86,1211.64,414.36z"/> + <path class="st107" d="M1194.3,398.77c-0.62-0.67-0.96-1.03-1.45-1.48c-0.73-0.69-1.54-1.35-1.48-1.14 + c0.05,0.2,0.49,0.76,1.18,1.33C1193.06,397.9,1193.54,398.19,1194.3,398.77z"/> + <path class="st107" d="M1175.13,381.55c-0.21-0.24-0.45-0.55-0.88-0.98c-0.57-0.56-1.7-1.41-1.72-1.3 + c-0.02,0.11,0.32,0.5,1.04,1.14C1174.2,380.99,1174.86,381.48,1175.13,381.55z"/> + <path class="st107" d="M1156.24,365c-0.25-0.29-0.48-0.63-0.91-1.06c-0.57-0.57-1.72-1.36-1.75-1.21 + c-0.03,0.15,0.3,0.55,1.03,1.18C1155.33,364.54,1155.83,364.88,1156.24,365z"/> + <path class="st107" d="M1135.43,347.85c0.68,0.38,1.31,0.79,1.56,0.85c0.36,0.09-0.08-0.44-0.7-1.02 + c-0.64-0.6-1.85-1.36-1.79-1.11C1134.56,346.78,1135.01,347.28,1135.43,347.85z"/> + <path class="st107" d="M1117.88,333.03c-0.24-0.31-0.45-0.69-0.89-1.12c-0.57-0.57-1.78-1.21-1.83-1.01 + c-0.06,0.21,0.26,0.64,1.01,1.24C1116.89,332.74,1117.42,333.02,1117.88,333.03z"/> + <path class="st107" d="M1098.29,317.87c-0.2-0.27-0.4-0.66-0.84-1.09c-0.57-0.56-1.82-1.13-1.89-0.9 + c-0.07,0.24,0.24,0.67,0.99,1.26C1097.22,317.65,1097.94,318,1098.29,317.87z"/> + <path class="st107" d="M826.84,93.98c-0.69-0.41-1.28-0.83-1.57-0.91c-0.4-0.11,0.23,0.82,1.04,1.55 + c0.72,0.65,1.33,1.03,1.36,0.79C827.68,95.23,827.23,94.62,826.84,93.98z"/> + <path class="st107" d="M846.19,113.63c-0.19-0.31-0.38-0.73-0.79-1.24c-0.54-0.67-1.68-1.49-1.74-1.27 + c-0.06,0.22,0.24,0.73,0.93,1.46C845.2,113.22,845.87,113.69,846.19,113.63z"/> + <path class="st107" d="M862.68,131.51c0.67,0.42,1.27,0.9,1.52,0.95c0.37,0.07-0.04-0.57-0.61-1.26 + c-0.6-0.72-1.76-1.6-1.72-1.28C861.9,130.18,862.31,130.79,862.68,131.51z"/> + <path class="st107" d="M881.51,150.09c-0.69-0.44-1.27-0.9-1.56-0.98c-0.41-0.11,0.19,0.92,0.96,1.71 + c0.69,0.71,1.29,1.12,1.34,0.84C882.29,151.46,881.86,150.8,881.51,150.09z"/> + <path class="st107" d="M898.75,170.24c0.66,0.32,1.28,0.75,1.46,0.68c0.24-0.1-0.12-0.74-0.8-1.5 + c-0.75-0.83-1.67-1.42-1.58-0.95C897.9,168.8,898.34,169.46,898.75,170.24z"/> + <path class="st107" d="M918.4,189.94c-0.21-0.4-0.37-0.89-0.77-1.42c-0.52-0.7-1.69-1.45-1.78-1.15 + c-0.09,0.3,0.18,0.86,0.87,1.6C917.39,189.68,917.91,189.99,918.4,189.94z"/> + <path class="st107" d="M934.9,207.48c0.72,0.32,1.35,0.72,1.64,0.7c0.42-0.02,0.04-0.69-0.54-1.37 + c-0.6-0.7-1.83-1.43-1.83-1.05C934.17,206.08,934.56,206.71,934.9,207.48z"/> + <path class="st107" d="M952.46,222.82c0.54,0.8,0.81,1.36,1.28,1.86c0.62,0.66,1.26,0.94,1.6,0.78 + c0.36-0.17-0.14-1.1-0.96-1.69C953.83,223.38,953.29,223.22,952.46,222.82z"/> + <path class="st107" d="M973.83,239.45c-0.76-0.14-1.4-0.37-1.69-0.28c-0.36,0.12,0.5,1.26,1.28,1.72 + c0.71,0.42,1.42,0.66,1.35,0.17C974.72,240.72,974.25,240.15,973.83,239.45z"/> + <path class="st107" d="M995,255.03c-0.2-0.28-0.37-0.73-0.82-1.14c-0.58-0.55-1.92-0.91-2.03-0.58 + c-0.11,0.33,0.19,0.81,0.96,1.34C993.79,255.11,994.58,255.32,995,255.03z"/> + <path class="st107" d="M1016.16,266.59c-0.25-0.29-0.45-0.7-0.92-1.05c-0.62-0.46-2.01-0.67-2.12-0.36 + c-0.1,0.32,0.22,0.74,1.04,1.15C1014.97,266.75,1015.58,266.84,1016.16,266.59z"/> + <path class="st107" d="M1035.4,277.49c0.8,0.12,1.5,0.33,1.82,0.25c0.45-0.12,0-0.64-0.66-1.11c-0.69-0.5-2.07-0.84-2.05-0.49 + C1034.53,276.42,1034.99,276.89,1035.4,277.49z"/> + <path class="st107" d="M1057.03,288.59c-0.77-0.11-1.43-0.31-1.71-0.23c-0.35,0.11,0.58,1.07,1.38,1.47 + c0.73,0.36,1.45,0.58,1.35,0.15C1057.98,289.69,1057.49,289.2,1057.03,288.59z"/> + <path class="st107" d="M1077.5,302.15c-0.77-0.23-1.42-0.51-1.75-0.5c-0.46,0.01,0.21,0.83,1.08,1.39 + c0.78,0.5,1.44,0.74,1.49,0.46C1078.36,303.29,1077.88,302.76,1077.5,302.15z"/> + <path class="st107" d="M497.77-18.56c-0.53-0.69-0.67-1.4-1.25-1.47c-0.78-0.11-1.83,0.53-2.39,1.46 + c-0.56,0.95-0.24,1.58,0.66,1.5C495.45-17.14,496.4-17.85,497.77-18.56z"/> + <path class="st107" d="M524-19.69c-0.48-0.82-0.57-1.63-1.14-1.75c-0.76-0.17-1.82,0.5-2.42,1.54 + c-0.61,1.05-0.33,1.79,0.56,1.74C521.64-18.2,522.62-18.97,524-19.69z"/> + <path class="st107" d="M548.71-21.97c-1.2,1.11-2.18,1.76-2.65,2.52c-0.66,1.07-0.21,1.81,0.68,1.83 + c0.91,0.02,2-0.75,2.32-1.83C549.29-20.22,548.9-20.87,548.71-21.97z"/> + <path class="st107" d="M574.17-16.24c-0.36-1.11-0.36-2.15-0.87-2.41c-0.68-0.35-1.74,0.28-2.4,1.48 + c-0.67,1.21-0.49,2.19,0.33,2.29C571.84-14.82,572.82-15.59,574.17-16.24z"/> + <path class="st107" d="M597.42-10.05c-0.24-1.31-0.15-2.45-0.6-2.86c-0.61-0.57-1.65,0.03-2.34,1.2 + c-0.7,1.19-0.69,2.37,0.12,2.61C595.18-8.93,596.14-9.59,597.42-10.05z"/> + <path class="st107" d="M619.28-0.29c-0.24-1.42-0.15-2.66-0.58-3.12c-0.57-0.63-1.55-0.19-2.23,1.06 + c-0.69,1.26-0.62,2.49,0.11,2.85C617.11,0.75,618.04,0.11,619.28-0.29z"/> + <path class="st107" d="M640.87,10.25c-0.34-1.25-0.34-2.41-0.82-2.76c-0.63-0.45-1.62-0.01-2.25,1.26 + c-0.61,1.24-0.44,2.34,0.32,2.57C638.69,11.48,639.62,10.76,640.87,10.25z"/> + <path class="st107" d="M663.13,19.27c-0.3-1.16-0.28-2.18-0.73-2.58c-0.62-0.55-1.61-0.09-2.23,0.92 + c-0.63,1.03-0.57,2.1,0.23,2.36C660.97,20.16,661.89,19.61,663.13,19.27z"/> + <path class="st107" d="M683.59,28.11c1.02-0.92,1.86-1.4,2.19-2.03c0.45-0.86,0.04-1.63-0.88-1.75 + c-0.89-0.11-1.83,0.39-2.01,1.35C682.77,26.35,683.23,27,683.59,28.11z"/> + <path class="st107" d="M709.58,33.18c-0.68-0.78-0.95-1.49-1.52-1.68c-0.76-0.25-1.65,0.13-1.95,0.98 + c-0.27,0.79,0.07,1.51,0.95,1.56C707.71,34.08,708.46,33.58,709.58,33.18z"/> + <path class="st107" d="M730.07,41.2c0.94-0.45,1.65-0.63,2.06-1c0.43-0.38-0.14-1.31-0.82-1.44c-0.81-0.15-1.75-0.1-1.88,0.6 + C729.34,39.83,729.76,40.38,730.07,41.2z"/> + <path class="st107" d="M755.35,48.65c-0.59-0.67-0.85-1.22-1.37-1.49c-0.68-0.34-1.49-0.33-1.79,0.16 + c-0.29,0.48,0.11,1.05,0.87,1.3C753.62,48.82,754.32,48.64,755.35,48.65z"/> + <path class="st107" d="M777.09,59.13c-0.59-0.69-0.86-1.2-1.36-1.52c-0.65-0.41-1.4-0.55-1.64-0.19 + c-0.24,0.36,0.17,0.92,0.88,1.27C775.51,58.95,776.15,58.93,777.09,59.13z"/> + <path class="st107" d="M795.43,72.79c0.66,0.02,1.24,0.2,1.41,0.04c0.24-0.22-0.25-0.87-0.97-1.39 + c-0.68-0.5-1.4-0.78-1.36-0.33C794.53,71.42,794.99,72,795.43,72.79z"/> + <path class="st107" d="M471.4-16.94c-0.84-0.4-1.22-0.88-1.89-0.82c-0.93,0.08-1.88,0.78-2.11,1.57 + c-0.22,0.73,0.19,1.26,1.24,0.95C469.37-15.46,470.16-16.16,471.4-16.94z"/> + <path class="st107" d="M443.3-16.07c-1.05,0.76-1.96,1.22-2.31,1.7c-0.49,0.68,0.1,1.06,1.03,0.99 + c0.95-0.08,1.95-0.63,2.08-1.28C444.2-15.13,443.68-15.46,443.3-16.07z"/> + <path class="st107" d="M416.04-12.15c0.91-0.66,1.72-1.07,1.96-1.48c0.33-0.56-0.24-0.89-1.25-0.78 + c-0.97,0.11-1.88,0.54-1.88,1.08C414.86-12.96,415.47-12.7,416.04-12.15z"/> + <path class="st107" d="M393.12-14.06c-0.62-0.46-0.87-0.88-1.44-1c-0.76-0.15-1.65,0.09-2.01,0.57 + c-0.37,0.48,0.04,0.89,0.88,0.95C391.16-13.5,391.94-13.8,393.12-14.06z"/> + <path class="st107" d="M368.91-17.53c-0.67-0.48-0.98-0.92-1.54-1.06c-0.71-0.19-1.56-0.1-1.79,0.32 + c-0.23,0.41,0.25,0.83,1.02,0.97C367.18-17.21,367.88-17.41,368.91-17.53z"/> + <path class="st107" d="M344.89-26.22c-0.77,0.09-1.46,0.03-1.68,0.21c-0.32,0.26,0.22,0.77,0.97,1.1 + c0.77,0.34,1.53,0.37,1.55-0.02C345.76-25.2,345.29-25.63,344.89-26.22z"/> + <path class="st107" d="M325.66-36.67c-0.65-0.78-0.97-1.34-1.44-1.72c-0.63-0.51-1.28-0.71-1.38-0.35 + c-0.09,0.34,0.28,0.94,0.98,1.39C324.31-37.01,324.83-36.94,325.66-36.67z"/> + <path class="st107" d="M307.39-54.44c-0.42-0.93-0.59-1.56-0.97-2.13c-0.51-0.76-1.1-1.22-1.34-1.03 + c-0.25,0.19,0.02,0.93,0.58,1.65C306.07-55.43,306.6-55.1,307.39-54.44z"/> + <path class="st107" d="M1236.47,445.48c-0.75,0.12-1.4,0.01-1.68,0.37c-0.39,0.51-0.02,1.51,0.62,2.15 + c0.65,0.65,1.38,0.7,1.52-0.06C1237.03,447.4,1236.7,446.55,1236.47,445.48z"/> + <path class="st107" d="M1217.12,429.52c0.77-0.11,1.35-0.02,1.68-0.26c0.36-0.26-0.08-1.54-0.62-1.97 + c-0.64-0.51-1.39-0.89-1.51-0.17C1216.58,427.6,1216.91,428.41,1217.12,429.52z"/> + <path class="st107" d="M1199.13,411.18c0.69-0.2,1.27-0.12,1.46-0.44c0.25-0.43-0.15-1.23-0.87-1.82 + c-0.69-0.57-1.34-0.72-1.36-0.07C1198.34,409.3,1198.76,410.07,1199.13,411.18z"/> + <path class="st107" d="M1182.63,393.25c-0.6-0.98-0.89-1.67-1.34-2.1c-0.61-0.59-1.25-0.79-1.38-0.28 + c-0.13,0.47,0.2,1.25,0.88,1.76C1181.28,392.99,1181.81,392.98,1182.63,393.25z"/> + <path class="st107" d="M1162.11,375.44c0.66-0.02,1.23,0.15,1.41-0.05c0.25-0.27-0.21-0.98-0.9-1.54 + c-0.66-0.54-1.35-0.86-1.34-0.33C1161.29,373.87,1161.72,374.52,1162.11,375.44z"/> + <path class="st107" d="M1143.32,358.61c0.63-0.01,1.18,0.17,1.32-0.02c0.19-0.25-0.28-0.87-1.01-1.43 + c-0.7-0.54-1.32-0.79-1.28-0.34C1142.39,357.13,1142.86,357.75,1143.32,358.61z"/> + <path class="st107" d="M1125.88,343c-0.56-0.73-0.83-1.22-1.29-1.61c-0.6-0.52-1.26-0.86-1.45-0.63 + c-0.18,0.22,0.2,0.82,0.85,1.31C1124.47,342.43,1125.03,342.58,1125.88,343z"/> + <path class="st107" d="M1106.39,327.71c-0.64-0.7-0.97-1.17-1.45-1.53c-0.62-0.48-1.28-0.79-1.39-0.54 + c-0.11,0.23,0.32,0.79,0.99,1.24C1105.05,327.22,1105.58,327.34,1106.39,327.71z"/> + <path class="st107" d="M816.48,89.67c-0.53-0.8-0.79-1.35-1.24-1.79c-0.58-0.57-1.24-0.92-1.44-0.65 + c-0.2,0.26,0.18,0.9,0.81,1.43C815.08,89.06,815.64,89.22,816.48,89.67z"/> + <path class="st107" d="M835.2,107.29c-0.63-0.89-0.95-1.49-1.4-1.94c-0.61-0.6-1.21-0.91-1.3-0.56 + c-0.08,0.33,0.29,0.99,0.95,1.54C833.94,106.74,834.42,106.87,835.2,107.29z"/> + <path class="st107" d="M853.35,126c-0.44-0.83-0.63-1.35-1.04-1.86c-0.56-0.69-1.19-1.08-1.44-0.94 + c-0.26,0.15-0.01,0.77,0.63,1.43C851.95,125.1,852.52,125.39,853.35,126z"/> + <path class="st107" d="M871.33,145.23c-0.43-0.85-0.61-1.39-1.01-1.91c-0.56-0.71-1.18-1.11-1.43-0.96 + c-0.26,0.15-0.02,0.79,0.61,1.47C869.94,144.31,870.5,144.61,871.33,145.23z"/> + <path class="st107" d="M889.28,164.63c-0.6-0.96-0.9-1.61-1.33-2.09c-0.59-0.65-1.18-0.98-1.28-0.6 + c-0.09,0.35,0.25,1.06,0.9,1.66C888.03,164.04,888.51,164.18,889.28,164.63z"/> + <path class="st107" d="M907.15,184.03c-0.59-0.96-0.89-1.61-1.33-2.09c-0.59-0.64-1.19-0.95-1.3-0.56 + c-0.1,0.36,0.24,1.07,0.89,1.67C905.89,183.48,906.38,183.61,907.15,184.03z"/> + <path class="st107" d="M925.18,202.96c-0.55-0.91-0.81-1.55-1.25-2.01c-0.57-0.6-1.21-0.94-1.37-0.58 + c-0.15,0.34,0.21,1.06,0.83,1.62C923.86,202.41,924.39,202.54,925.18,202.96z"/> + <path class="st107" d="M943.66,220.91c-0.64-0.89-0.97-1.52-1.44-1.96c-0.65-0.61-1.24-0.78-1.32-0.36 + c-0.07,0.39,0.28,1.08,0.98,1.6C942.39,220.56,942.87,220.61,943.66,220.91z"/> + <path class="st107" d="M962.56,237.7c-0.53-0.8-0.76-1.37-1.22-1.79c-0.59-0.54-1.28-0.83-1.51-0.51 + c-0.22,0.31,0.14,0.95,0.78,1.45C961.1,237.22,961.69,237.33,962.56,237.7z"/> + <path class="st107" d="M980.21,252.15c0.73,0.05,1.31,0.19,1.61,0.09c0.32-0.11-0.26-0.98-0.84-1.32 + c-0.69-0.41-1.47-0.74-1.51-0.3C979.45,250.91,979.86,251.46,980.21,252.15z"/> + <path class="st107" d="M1002.95,265.22c-0.6-0.62-0.88-1.09-1.38-1.4c-0.65-0.4-1.39-0.57-1.61-0.27 + c-0.22,0.29,0.2,0.8,0.9,1.16C1001.39,264.98,1002.01,265.01,1002.95,265.22z"/> + <path class="st107" d="M1024.51,275.79c-0.73-0.62-1.11-1.07-1.63-1.34c-0.7-0.36-1.41-0.45-1.49-0.11 + c-0.08,0.31,0.36,0.78,1.13,1.09C1023.07,275.65,1023.62,275.64,1024.51,275.79z"/> + <path class="st107" d="M1045.63,287.29c-0.72-0.65-1.09-1.12-1.6-1.41c-0.69-0.4-1.37-0.53-1.45-0.21 + c-0.07,0.3,0.36,0.78,1.11,1.14C1044.23,287.06,1044.77,287.08,1045.63,287.29z"/> + <path class="st107" d="M1064.39,299.37c0.64,0.08,1.22,0.26,1.37,0.17c0.21-0.13-0.31-0.7-1.05-1.13 + c-0.71-0.42-1.45-0.63-1.37-0.31C1063.39,298.31,1063.89,298.77,1064.39,299.37z"/> + <path class="st107" d="M1085.11,311.8c-0.65-0.2-1.26-0.46-1.44-0.39c-0.25,0.1,0.28,0.66,0.98,1.13 + c0.72,0.49,1.39,0.73,1.37,0.45C1086.01,312.79,1085.54,312.32,1085.11,311.8z"/> + <path class="st107" d="M1059.14,306.21c0.73,0.15,1.27,0.35,1.58,0.31c0.42-0.05-0.03-0.84-0.7-1.21 + c-0.46-0.25-1.31-0.53-1.35-0.42C1058.58,305.14,1058.9,305.63,1059.14,306.21z"/> + <path class="st107" d="M1040.66,293.98c-0.55-0.61-0.76-0.95-1.15-1.24c-0.66-0.49-1.61-0.73-1.61-0.42 + c0,0.21,0.34,0.73,0.65,0.9C1039.07,293.51,1039.69,293.64,1040.66,293.98z"/> + <path class="st107" d="M1019.43,282.62c-0.49-0.53-0.67-0.83-1.04-1.09c-0.61-0.43-1.64-0.7-1.72-0.45 + c-0.06,0.16,0.24,0.61,0.56,0.78C1017.74,282.13,1018.41,282.28,1019.43,282.62z"/> + <path class="st107" d="M995.95,271.6c0.73,0,1.33,0.1,1.52-0.04c0.09-0.07-0.52-0.67-0.91-0.89c-0.4-0.22-1.29-0.43-1.31-0.33 + C995.21,270.57,995.59,271,995.95,271.6z"/> + <path class="st107" d="M977.25,259.5c-0.57-0.66-0.79-1.04-1.18-1.37c-0.62-0.52-1.58-0.8-1.54-0.45 + c0.03,0.26,0.37,0.83,0.68,1.02C975.73,259.03,976.32,259.16,977.25,259.5z"/> + <path class="st107" d="M956.85,244.95c0.11-0.58-0.5-1.36-1.18-1.66c-0.41-0.18-1-0.23-1.02-0.02 + c-0.02,0.25,0.47,1.04,0.76,1.21C955.94,244.8,956.48,244.84,956.85,244.95z"/> + <path class="st107" d="M937.91,229.42c-0.37-0.83-0.47-1.29-0.78-1.71c-0.5-0.68-1.45-1.13-1.6-0.73 + c-0.1,0.26,0.08,0.99,0.36,1.26C936.33,228.66,936.97,228.88,937.91,229.42z"/> + <path class="st107" d="M917.12,211.45c0.74,0.12,1.27,0.35,1.6,0.26c0.46-0.12,0.14-1.23-0.48-1.72 + c-0.43-0.34-1.25-0.68-1.32-0.5C916.79,209.87,917.02,210.58,917.12,211.45z"/> + <path class="st107" d="M899.03,193.62c0.78-0.32,1.35-0.32,1.57-0.68c0.1-0.18-0.39-1.23-0.74-1.55 + c-0.35-0.32-1.18-0.47-1.23-0.24C898.52,191.62,898.81,192.4,899.03,193.62z"/> + <path class="st107" d="M882.92,174.76c-0.34-1.1-0.44-1.72-0.74-2.22c-0.52-0.83-1.45-1.13-1.59-0.48 + c-0.1,0.43,0.04,1.44,0.31,1.72C881.34,174.25,881.98,174.33,882.92,174.76z"/> + <path class="st107" d="M862.79,155.08c0.79,0,1.34,0.18,1.71,0c0.51-0.25,0.29-1.6-0.33-2.1c-0.43-0.34-1.28-0.63-1.37-0.39 + C862.62,153.11,862.78,153.98,862.79,155.08z"/> + <path class="st107" d="M846.82,135.4c-0.13-0.35-0.25-1.03-0.58-1.51c-0.53-0.77-1.54-0.88-1.62-0.14 + c-0.06,0.53,0.1,1.36,0.39,1.91C845.41,136.4,846.42,136.3,846.82,135.4z"/> + <path class="st107" d="M826.3,117.7c1.02-0.27,1.69-0.18,2.03-0.52c0.18-0.18-0.07-1.29-0.38-1.65 + c-0.33-0.38-1.26-0.68-1.38-0.46C826.32,115.52,826.43,116.34,826.3,117.7z"/> + <path class="st107" d="M809.74,99.64c-0.15-0.3-0.31-0.9-0.67-1.32c-0.57-0.67-1.58-0.77-1.64-0.09 + c-0.04,0.5,0.15,1.27,0.46,1.77C808.31,100.68,809.36,100.49,809.74,99.64z"/> + <path class="st107" d="M1079.34,320.5c0.73-0.01,1.32,0.11,1.52-0.08c0.1-0.09-0.44-0.88-0.81-1.14 + c-0.38-0.27-1.25-0.52-1.28-0.39C1078.7,319.18,1079.04,319.73,1079.34,320.5z"/> + <path class="st107" d="M1100.46,336.03c0.12-0.64-0.48-1.48-1.16-1.77c-0.41-0.18-1-0.2-1.02,0.02 + c-0.02,0.27,0.46,1.09,0.75,1.27C1099.55,335.88,1100.09,335.92,1100.46,336.03z"/> + <path class="st107" d="M1119.92,352.88c-0.37-0.85-0.48-1.33-0.79-1.76c-0.5-0.69-1.46-1.11-1.6-0.71 + c-0.09,0.26,0.11,0.99,0.38,1.26C1118.36,352.1,1118.99,352.34,1119.92,352.88z"/> + <path class="st107" d="M1138.71,370.22c-0.43-0.93-0.57-1.46-0.9-1.9c-0.56-0.74-1.47-1.06-1.54-0.57 + c-0.05,0.33,0.19,1.13,0.47,1.39C1137.2,369.58,1137.79,369.75,1138.71,370.22z"/> + <path class="st107" d="M1155.31,388.1c0.69-0.16,1.24-0.12,1.42-0.45c0.09-0.16-0.44-1.18-0.79-1.5 + c-0.35-0.32-1.16-0.49-1.19-0.29C1154.7,386.3,1155.01,387.02,1155.31,388.1z"/> + <path class="st107" d="M1174.86,406.93c0.19-0.83-0.33-1.89-0.99-2.21c-0.4-0.19-1-0.18-1.04,0.11 + c-0.05,0.35,0.36,1.37,0.64,1.59C1173.96,406.81,1174.5,406.82,1174.86,406.93z"/> + <path class="st107" d="M1192.78,426.26c0.23-0.81-0.21-1.84-0.89-2.22c-0.4-0.22-0.93-0.21-1.1,0.03 + c-0.26,0.38,0.35,1.6,0.94,1.94C1192.15,426.26,1192.55,426.22,1192.78,426.26z"/> + <path class="st107" d="M1210.63,445.88c0.19-0.85-0.3-1.96-0.96-2.28c-0.4-0.2-1-0.18-1.04,0.11c-0.05,0.36,0.35,1.4,0.62,1.62 + C1209.73,445.75,1210.27,445.77,1210.63,445.88z"/> + <path class="st107" d="M1226.78,465.16c0.69,0.22,1.19,0.49,1.51,0.42c0.43-0.1,0.15-1.37-0.45-1.89 + c-0.42-0.36-1.22-0.72-1.28-0.54C1226.42,463.56,1226.64,464.31,1226.78,465.16z"/> + <path class="st107" d="M1246.17,485.21c0.21-0.73-0.23-1.77-0.91-2.16c-0.4-0.23-0.92-0.25-1.08-0.03 + c-0.25,0.34,0.38,1.5,0.96,1.87C1245.56,485.15,1245.94,485.15,1246.17,485.21z"/> + <path class="st107" d="M301.39-51.22c0.56,0.54,1,1,1.23,1.14c0.32,0.2-0.08-0.68-0.62-1.34c-0.37-0.46-1.04-1.17-1.06-1.1 + C300.9-52.37,301.17-51.79,301.39-51.22z"/> + <path class="st107" d="M319.65-32.52c-0.53-0.25-0.99-0.53-1.22-0.58c-0.3-0.06,0.26,0.72,0.83,1.21 + c0.59,0.5,1.37,0.88,1.25,0.55C320.41-31.57,320.03-32,319.65-32.52z"/> + <path class="st107" d="M339.11-17.69c0.65-0.01,1.19,0.06,1.32-0.09c0.06-0.07-0.62-0.65-1.01-0.86 + c-0.39-0.2-1.21-0.39-1.2-0.28C338.22-18.7,338.65-18.29,339.11-17.69z"/> + <path class="st107" d="M362.28-8.41c-0.21-0.15-0.48-0.45-0.92-0.65c-0.7-0.32-1.75-0.33-1.66-0.02 + c0.06,0.23,0.42,0.57,0.84,0.8C361.11-7.97,362.08-8,362.28-8.41z"/> + <path class="st107" d="M383.37-1.7c0.85-0.16,1.49-0.2,1.86-0.38c0.51-0.24,0-0.87-0.79-0.94c-0.54-0.05-1.54,0.04-1.59,0.17 + C382.75-2.56,383.11-2.2,383.37-1.7z"/> + <path class="st107" d="M407.25,2.31c1.08-0.44,1.87-0.64,2.21-0.97c0.18-0.17-0.3-0.7-0.72-0.78c-0.45-0.08-1.58,0.13-1.69,0.3 + C406.84,1.21,407.11,1.62,407.25,2.31z"/> + <path class="st107" d="M432.17,4.48c0.96-0.42,1.67-0.63,2.1-0.96c0.59-0.46,0.15-1.23-0.7-1.16c-0.59,0.05-1.69,0.4-1.77,0.6 + C431.63,3.41,431.97,3.84,432.17,4.48z"/> + <path class="st107" d="M457.46,5.98c1.06-0.8,1.89-1.26,2.24-1.78c0.17-0.26-0.43-0.87-0.9-0.87c-0.48-0.01-1.69,0.55-1.77,0.8 + C456.85,4.65,457.21,5.13,457.46,5.98z"/> + <path class="st107" d="M485.2,4.96c-0.19-0.19-0.39-0.68-0.86-0.82c-0.75-0.22-2.12,0.55-2.17,1.21 + c-0.04,0.48,0.25,1,0.68,1.21C483.43,6.84,484.72,6.05,485.2,4.96z"/> + <path class="st107" d="M509.83,4.94c-1.14,0.86-2.05,1.32-2.48,1.93c-0.24,0.34,0.17,1.1,0.58,1.35 + c0.55,0.34,2.01-0.55,2.2-1.34C510.26,6.33,509.99,5.85,509.83,4.94z"/> + <path class="st107" d="M532.51,11.89c1.13-1.18,1.97-1.82,2.33-2.54c0.17-0.35-0.42-1.17-0.89-1.18 + c-0.48-0.01-1.7,0.78-1.79,1.12C531.96,10,532.3,10.66,532.51,11.89z"/> + <path class="st107" d="M559.1,14.79c-0.37-1.03-0.42-1.76-0.8-2.07c-0.64-0.52-1.96,0.13-2.23,1.09 + c-0.18,0.64-0.07,1.7,0.28,1.78C556.93,15.71,557.81,15.2,559.1,14.79z"/> + <path class="st107" d="M579.11,23.64c1.17-1.06,2.03-1.59,2.48-2.36c0.22-0.38-0.15-1.57-0.56-1.71 + c-0.43-0.15-1.66,0.47-1.8,0.86C578.93,21.26,579.12,22.16,579.11,23.64z"/> + <path class="st107" d="M600.87,33.6c1.14-0.98,1.98-1.46,2.43-2.23c0.22-0.38-0.11-1.67-0.5-1.87c-0.4-0.21-1.6,0.31-1.74,0.7 + C600.75,31.05,600.91,32.03,600.87,33.6z"/> + <path class="st107" d="M625.27,41.28c0.56-1.53,0.12-2.53-0.84-2.28c-0.56,0.14-1.37,0.8-1.7,1.39 + c-0.51,0.92,0.13,2.07,0.96,1.84C624.29,42.07,624.91,41.5,625.27,41.28z"/> + <path class="st107" d="M648.17,44.94c-0.88,0.73-1.6,1.13-1.99,1.7c-0.57,0.83-0.08,1.86,0.73,1.9c0.86,0.04,2-0.87,2.04-1.78 + C648.96,46.17,648.53,45.73,648.17,44.94z"/> + <path class="st107" d="M672.43,49.37c-0.86,0.68-1.57,1.07-1.95,1.59c-0.55,0.76,0,1.66,0.83,1.66c0.88,0,2-0.86,1.99-1.68 + C673.3,50.44,672.83,50.06,672.43,49.37z"/> + <path class="st107" d="M698.42,54.96c-0.39-0.8-0.46-1.36-0.85-1.63c-0.62-0.43-1.94,0.01-2.23,0.75 + c-0.19,0.49-0.04,1.33,0.32,1.4C696.25,55.6,697.14,55.23,698.42,54.96z"/> + <path class="st107" d="M720.7,59.59c1-0.87,1.76-1.3,2.03-1.82c0.13-0.25-0.54-0.9-1.02-0.94c-0.47-0.04-1.59,0.49-1.64,0.74 + C719.96,58.11,720.36,58.62,720.7,59.59z"/> + <path class="st107" d="M746.65,63.44c0.31-0.95-0.28-1.61-1.18-1.51c-0.52,0.06-1.22,0.42-1.45,0.79 + c-0.35,0.57,0.44,1.35,1.22,1.24C745.81,63.89,746.34,63.56,746.65,63.44z"/> + <path class="st107" d="M767.37,72.51c0.95-0.52,1.66-0.7,1.97-1.12c0.15-0.21-0.37-1.07-0.77-1.25 + c-0.42-0.19-1.46-0.03-1.53,0.2C766.88,70.83,767.19,71.47,767.37,72.51z"/> + <path class="st107" d="M788.07,84.89c0.85-0.13,1.43-0.03,1.81-0.23c0.52-0.29,0.23-1.47-0.45-1.82 + c-0.47-0.24-1.39-0.35-1.47-0.13C787.78,83.18,788.01,83.89,788.07,84.89z"/> + <path class="st107" d="M791.16,106.2c1.02-0.61,1.67-0.75,2.13-1.29c0.69-0.81,0.62-2.58-0.1-2.72 + c-0.47-0.09-1.29,0.38-1.63,0.97C791.24,103.71,791.34,104.74,791.16,106.2z"/> + <path class="st107" d="M774.1,89.77c-0.3-1.06-0.37-1.91-0.74-2.32c-0.51-0.58-1.58,0.33-1.96,1.62 + c-0.32,1.08-0.13,1.92,0.62,1.85C772.56,90.88,773.2,90.28,774.1,89.77z"/> + <path class="st107" d="M749.96,81.08c1.04-1.04,1.76-1.51,2.17-2.18c0.58-0.94,0-2.37-0.77-2.03c-0.56,0.25-1.33,1.03-1.6,1.7 + C749.52,79.16,749.85,79.88,749.96,81.08z"/> + <path class="st107" d="M729.07,72.54c-0.2-0.96-0.18-1.74-0.53-2.09c-0.49-0.48-1.24-0.04-1.85,0.84 + c-0.75,1.09-0.8,2.48,0.05,2.39C727.31,73.62,728.06,73.04,729.07,72.54z"/> + <path class="st107" d="M702.16,70.36c1.07-1.1,1.82-1.64,2.22-2.29c0.57-0.91-0.15-2.02-0.96-1.59 + c-0.58,0.31-1.36,1.11-1.62,1.73C701.58,68.76,701.97,69.32,702.16,70.36z"/> + <path class="st107" d="M677.21,67.47c1.05-1.05,1.78-1.56,2.17-2.18c0.55-0.86-0.22-1.86-1.02-1.46 + c-0.58,0.29-1.33,1.04-1.57,1.62C676.59,65.97,677.01,66.5,677.21,67.47z"/> + <path class="st107" d="M654.77,62.68c-0.34-0.71-0.44-1.3-0.85-1.57c-0.57-0.38-1.85,0.4-2.01,1.31 + c-0.09,0.51,0.22,1.28,0.64,1.33C653.01,63.8,653.81,63.15,654.77,62.68z"/> + <path class="st107" d="M628.15,59.94c0.92-0.78,1.6-1.16,1.96-1.71c0.5-0.76-0.2-1.91-0.96-1.59 + c-0.55,0.23-1.26,0.89-1.47,1.42C627.49,58.53,627.9,59.07,628.15,59.94z"/> + <path class="st107" d="M607.27,51.53c-0.18-0.95-0.14-1.69-0.44-2.12c-0.42-0.61-1.11-0.35-1.67,0.32 + c-0.7,0.83-0.72,2.02,0.03,2.18C605.71,52.02,606.35,51.73,607.27,51.53z"/> + <path class="st107" d="M585.68,41.07c-0.17-0.98-0.13-1.72-0.41-2.17c-0.41-0.63-1.1-0.38-1.65,0.29 + c-0.7,0.83-0.72,2.02,0.02,2.2C584.14,41.51,584.78,41.23,585.68,41.07z"/> + <path class="st107" d="M561.34,33.42c0.9-0.73,1.56-1.09,1.92-1.62c0.49-0.75-0.16-1.99-0.9-1.71 + c-0.54,0.21-1.24,0.85-1.45,1.37C560.72,31.92,561.1,32.5,561.34,33.42z"/> + <path class="st107" d="M540.33,25.7c-0.27-0.78-0.3-1.44-0.66-1.76c-0.5-0.43-1.22-0.07-1.74,0.62 + c-0.65,0.85-0.55,1.9,0.25,1.89C538.73,26.45,539.39,26.05,540.33,25.7z"/> + <path class="st107" d="M516.48,20.99c-0.35-0.66-0.45-1.24-0.85-1.51c-0.57-0.38-1.82,0.36-1.95,1.18 + c-0.07,0.46,0.28,1.11,0.69,1.17C514.83,21.9,515.56,21.39,516.48,20.99z"/> + <path class="st107" d="M492.17,17.47c-0.52-0.52-0.75-0.99-1.22-1.14c-0.66-0.21-1.66,0.56-1.82,1.34 + c-0.14,0.65,0.23,1.04,1.02,0.86C490.71,18.4,491.28,17.95,492.17,17.47z"/> + <path class="st107" d="M467.4,15.05c-0.48-0.48-0.68-0.93-1.14-1.09c-0.64-0.23-1.66,0.43-1.83,1.11 + c-0.15,0.57,0.19,0.95,0.96,0.83C465.95,15.81,466.53,15.43,467.4,15.05z"/> + <path class="st107" d="M442.56,12.82c-0.39-0.48-0.52-0.89-0.93-1.07c-0.57-0.25-1.24,0-1.67,0.44 + c-0.53,0.55-0.27,1.2,0.54,1.17C441.07,13.34,441.67,13.07,442.56,12.82z"/> + <path class="st107" d="M414.94,9.27c0.42,0.42,0.59,0.83,0.98,0.91c0.43,0.08,1.24-0.08,1.61-0.29 + c0.56-0.32,0.12-1.01-0.64-1.02C416.37,8.86,415.8,9.09,414.94,9.27z"/> + <path class="st107" d="M394.16,5.65c-0.52-0.37-0.78-0.68-1.23-0.85c-0.64-0.24-1.49,0.03-1.55,0.43 + c-0.05,0.34,0.32,0.63,1.02,0.67C392.92,5.92,393.4,5.77,394.16,5.65z"/> + <path class="st107" d="M368.02-1.42c0.44,0.39,0.63,0.71,1,0.85c0.41,0.15,1.13,0.2,1.44,0.13c0.48-0.11-0.01-0.69-0.71-0.86 + C369.27-1.41,368.78-1.36,368.02-1.42z"/> + <path class="st107" d="M347.41-9.39c0.58,0.04,1.06,0.12,1.23,0.04c0.24-0.12-0.63-0.8-1.19-0.95 + c-0.4-0.11-0.84-0.11-0.89,0.02C346.52-10.17,346.99-9.82,347.41-9.39z"/> + <path class="st107" d="M327.3-22.82c-0.52-0.17-1.02-0.42-1.06-0.33c-0.04,0.09,0.29,0.51,0.62,0.8 + c0.56,0.48,1.36,0.85,1.26,0.58C328.05-21.96,327.69-22.33,327.3-22.82z"/> + <path class="st107" d="M309.73-38.18c-0.34-0.53-0.48-0.83-0.78-1.22c-0.43-0.56-0.85-0.93-1.09-1.04 + c-0.3-0.13-0.05,0.37,0.5,0.97C308.74-39.06,309.12-38.73,309.73-38.18z"/> + <path class="st107" d="M292.15-62.51c0.48,0.66,0.84,1.21,1.01,1.37c0.25,0.23-0.12-0.77-0.57-1.53 + c-0.29-0.5-0.69-1.04-0.78-1.06C291.72-63.74,291.97-63.1,292.15-62.51z"/> + <path class="st107" d="M1230.95,479.71c-0.16,1.57-0.54,3.05-0.29,3.47c0.27,0.45,1.16,0.26,1.73-0.27 + c0.87-0.81,1.34-3.22,0.71-3.61C1232.66,479.03,1231.91,479.49,1230.95,479.71z"/> + <path class="st107" d="M1214.08,462.2c1.07-0.84,1.78-1.11,2.3-1.8c0.72-0.97-0.07-1.88-0.54-2.27 + c-0.34-0.28-0.95-0.04-1.33,0.69C1214.16,459.48,1214.25,460.58,1214.08,462.2z"/> + <path class="st107" d="M1199.15,440.72c-0.39-0.58-0.57-0.98-0.9-1.4c-0.47-0.61-1.23-1.08-1.16-0.75 + c0.04,0.18,0.44,0.74,0.74,1.06C1198.17,439.98,1198.58,440.27,1199.15,440.72z"/> + <path class="st107" d="M1180.16,419.73c-0.52-0.15-1.01-0.46-1.06-0.33c-0.05,0.13,0.24,0.67,0.54,1.04 + c0.51,0.62,1.27,1.11,1.2,0.74C1180.8,420.93,1180.48,420.44,1180.16,419.73z"/> + <path class="st107" d="M1163.04,402.65c-0.37-0.64-0.53-1.09-0.86-1.53c-0.47-0.63-1.27-0.99-1.22-0.57 + c0.02,0.23,0.4,0.86,0.7,1.17C1162,402.07,1162.44,402.27,1163.04,402.65z"/> + <path class="st107" d="M1144.72,384.15c-0.31-0.64-0.41-1.05-0.71-1.47c-0.43-0.6-0.9-0.84-1.21-0.79 + c-0.38,0.07-0.17,0.7,0.43,1.24C1143.63,383.49,1144.06,383.71,1144.72,384.15z"/> + <path class="st107" d="M1126.29,366.04c-0.46-0.68-0.69-1.16-1.06-1.57c-0.52-0.57-1.16-0.66-1.17-0.24 + c-0.01,0.35,0.32,0.84,0.89,1.23C1125.35,365.74,1125.7,365.81,1126.29,366.04z"/> + <path class="st107" d="M1106.69,347.36c-0.65-0.2-1.21-0.49-1.34-0.39c-0.14,0.12-0.02,0.57,0.23,0.93 + c0.38,0.53,1.41,1.07,1.49,0.76C1107.13,348.44,1106.88,347.99,1106.69,347.36z"/> + <path class="st107" d="M1087.33,331.13c-0.61-0.13-1.17-0.38-1.28-0.25c-0.12,0.13,0.06,0.59,0.34,0.94 + c0.41,0.5,1.48,0.96,1.49,0.63C1087.88,332.2,1087.59,331.75,1087.33,331.13z"/> + <path class="st107" d="M1067.39,315.99c-0.57-0.03-1.11-0.2-1.18-0.04c-0.07,0.16,0.24,0.66,0.57,0.97 + c0.56,0.51,1.42,0.74,1.36,0.36C1068.1,317.01,1067.76,316.59,1067.39,315.99z"/> + <path class="st107" d="M1047.13,302.29c-0.57-0.02-1.13-0.17-1.19-0.02c-0.06,0.15,0.26,0.61,0.6,0.9 + c0.57,0.47,1.46,0.66,1.38,0.3C1047.87,303.23,1047.51,302.85,1047.13,302.29z"/> + <path class="st107" d="M1026.49,290.15c-0.64-0.08-1.23-0.24-1.34-0.14c-0.11,0.11,0.1,0.48,0.41,0.75 + c0.45,0.38,1.6,0.69,1.58,0.42C1027.14,290.98,1026.81,290.63,1026.49,290.15z"/> + <path class="st107" d="M1004.81,279.29c-0.59,0-1.16-0.1-1.21,0.03c-0.06,0.13,0.29,0.53,0.66,0.76 + c0.61,0.38,1.52,0.5,1.43,0.2C1005.62,280.07,1005.23,279.75,1004.81,279.29z"/> + <path class="st107" d="M983.15,269.24c0.6-0.01,1.09,0.07,1.27-0.04c0.25-0.16-0.57-0.97-1.14-1.13 + c-0.41-0.11-0.86-0.08-0.92,0.09C982.3,268.31,982.75,268.73,983.15,269.24z"/> + <path class="st107" d="M964.14,256.68c-0.49-0.58-0.74-1-1.14-1.33c-0.56-0.46-1.26-0.42-1.29,0.03 + c-0.02,0.37,0.32,0.81,0.94,1.06C963.09,256.61,963.49,256.58,964.14,256.68z"/> + <path class="st107" d="M944.11,242.54c-0.46-0.67-0.68-1.17-1.06-1.53c-0.54-0.52-1.26-0.42-1.34,0.13 + c-0.06,0.46,0.26,0.97,0.88,1.22C943.03,242.54,943.45,242.46,944.11,242.54z"/> + <path class="st107" d="M923.75,224.96c-0.65,0.15-1.24,0.09-1.37,0.38c-0.13,0.3,0.07,1.04,0.38,1.42 + c0.5,0.63,1.47,0.63,1.5,0.02C924.28,226.38,924,225.82,923.75,224.96z"/> + <path class="st107" d="M905.45,210.77c-0.23-0.87-0.27-1.51-0.56-1.99c-0.41-0.67-0.96-0.7-1.37-0.31 + c-0.5,0.48-0.42,1.56,0.22,1.95C904.19,210.68,904.72,210.63,905.45,210.77z"/> + <path class="st107" d="M884.65,193.46c0.83-0.17,1.4-0.09,1.75-0.38c0.53-0.43,0.32-1.85-0.33-2.16 + c-0.42-0.2-1.1-0.07-1.35,0.3C884.48,191.56,884.66,192.4,884.65,193.46z"/> + <path class="st107" d="M866.42,175.96c0.81-0.49,1.38-0.61,1.7-1.06c0.45-0.63-0.02-2.28-0.65-2.3 + c-0.45-0.01-1.07,0.4-1.27,0.91C866.01,173.96,866.29,174.8,866.42,175.96z"/> + <path class="st107" d="M849.94,157.21c-0.12-1.15-0.06-2.01-0.31-2.58c-0.35-0.8-0.96-0.7-1.48-0.04 + c-0.64,0.8-0.72,2.27-0.06,2.62C848.54,157.45,849.13,157.22,849.94,157.21z"/> + <path class="st107" d="M831.44,139.28c-0.05-1.26,0.06-2.15-0.15-2.76c-0.31-0.87-0.94-0.77-1.51-0.09 + c-0.71,0.84-0.89,2.38-0.23,2.78C829.98,139.47,830.6,139.26,831.44,139.28z"/> + <path class="st107" d="M810.46,122.57c0.97-0.61,1.61-0.76,2.05-1.3c0.62-0.76,0.46-2.58-0.23-2.68 + c-0.46-0.07-1.24,0.42-1.55,1.01C810.43,120.16,810.57,121.17,810.46,122.57z"/> + <path class="st107" d="M801.08,83.35c0.56,0.8,0.81,1.31,1.2,1.68c0.6,0.57,1.52,0.64,1.43,0.13 + c-0.06-0.38-0.47-1.15-0.75-1.32C802.46,83.53,801.93,83.53,801.08,83.35z"/> + <path class="st107" d="M823.25,102.53c-0.65-1.02-0.96-1.65-1.43-2.14c-0.23-0.24-0.99-0.4-1.11-0.22 + c-0.11,0.18,0.22,1.05,0.48,1.27C821.7,101.86,822.29,102.04,823.25,102.53z"/> + <path class="st107" d="M839.54,119.6c0.8,0.22,1.4,0.53,1.7,0.44c0.14-0.04-0.24-0.89-0.55-1.36 + c-0.43-0.64-1.36-1.06-1.46-0.65C839.17,118.32,839.38,118.84,839.54,119.6z"/> + <path class="st107" d="M859.42,138.97c-0.19-0.42-0.38-1.02-0.78-1.57c-0.19-0.26-0.97-0.63-1.14-0.53 + c-0.17,0.1-0.03,0.74,0.21,1.18C858.08,138.75,858.99,139.27,859.42,138.97z"/> + <path class="st107" d="M877.28,158.43c-0.19-0.42-0.37-1.03-0.77-1.59c-0.18-0.26-0.96-0.65-1.13-0.55 + c-0.17,0.1-0.04,0.74,0.2,1.19C875.95,158.18,876.84,158.72,877.28,158.43z"/> + <path class="st107" d="M895.47,178.59c-0.61-1.09-0.9-1.76-1.35-2.31c-0.22-0.27-0.94-0.52-1.06-0.35 + c-0.11,0.17,0.2,1.07,0.45,1.32C893.99,177.74,894.56,177.99,895.47,178.59z"/> + <path class="st107" d="M912.95,197.36c-0.19-0.41-0.38-1.02-0.78-1.56c-0.19-0.26-0.97-0.63-1.14-0.52 + c-0.17,0.1-0.04,0.73,0.2,1.17C911.62,197.13,912.52,197.65,912.95,197.36z"/> + <path class="st107" d="M931.15,215.92c-0.22-0.35-0.41-0.94-0.82-1.46c-0.19-0.24-1.01-0.53-1.16-0.49 + c-0.14,0.04,0.04,0.56,0.3,0.94C929.89,215.51,930.78,216.06,931.15,215.92z"/> + <path class="st107" d="M949.93,233.08c-0.23-0.33-0.47-0.79-0.91-1.24c-0.2-0.21-0.98-0.61-1.13-0.56 + c-0.15,0.05,0.05,0.53,0.32,0.89C948.64,232.73,949.55,233.23,949.93,233.08z"/> + <path class="st107" d="M966.64,246.8c0.61,0.66,0.9,1.06,1.3,1.39c0.62,0.51,1.47,0.75,1.33,0.39 + c-0.11-0.26-0.57-0.87-0.85-1.04C967.92,247.23,967.44,247.11,966.64,246.8z"/> + <path class="st107" d="M989.58,262.34c-0.25-0.27-0.52-0.67-0.99-1.03c-0.22-0.17-1.06-0.42-1.21-0.36 + c-0.15,0.07,0.06,0.48,0.36,0.77C988.21,262.18,989.18,262.53,989.58,262.34z"/> + <path class="st107" d="M1011.25,274.08c-0.81-0.6-1.22-0.98-1.77-1.28c-0.27-0.15-1.07-0.22-1.17-0.09 + c-0.09,0.12,0.37,0.66,0.67,0.79C1009.55,273.76,1010.19,273.83,1011.25,274.08z"/> + <path class="st107" d="M1030.69,284.29c0.68-0.01,1.3,0.09,1.44-0.06c0.09-0.09-0.48-0.61-0.9-0.89 + c-0.59-0.39-1.45-0.47-1.38-0.13C1029.89,283.43,1030.27,283.77,1030.69,284.29z"/> + <path class="st107" d="M1051.38,295.89c0.83,0.15,1.48,0.36,1.77,0.29c0.13-0.03-0.34-0.61-0.71-0.93 + c-0.5-0.43-1.52-0.71-1.56-0.42C1050.85,295.02,1051.13,295.37,1051.38,295.89z"/> + <path class="st107" d="M1074.16,309.64c-0.74-0.79-1.11-1.28-1.62-1.65c-0.25-0.19-1.02-0.33-1.11-0.19 + c-0.09,0.13,0.32,0.79,0.6,0.96C1072.57,309.09,1073.17,309.24,1074.16,309.64z"/> + <path class="st107" d="M1092.92,322.3c-0.98-0.64-1.57-0.64-1.53-0.2c0.03,0.39,0.41,0.87,0.99,1.16 + c0.45,0.22,1.21,0.4,1.19,0.25C1093.54,323.16,1093.11,322.61,1092.92,322.3z"/> + <path class="st107" d="M1110.52,336.88c0.57,0.76,0.83,1.25,1.22,1.62c0.6,0.56,1.48,0.69,1.38,0.21 + c-0.08-0.35-0.5-1.09-0.77-1.26C1111.86,337.13,1111.35,337.11,1110.52,336.88z"/> + <path class="st107" d="M1132.34,355.11c-0.2-0.4-0.4-1-0.82-1.5c-0.2-0.23-1.02-0.48-1.2-0.34c-0.18,0.14-0.03,0.77,0.22,1.18 + C1130.93,355.11,1131.88,355.5,1132.34,355.11z"/> + <path class="st107" d="M1151.12,372.29c-0.19-0.43-0.37-1.09-0.78-1.62c-0.19-0.25-1.02-0.48-1.21-0.31 + c-0.18,0.16-0.06,0.85,0.18,1.3C1149.69,372.36,1150.64,372.75,1151.12,372.29z"/> + <path class="st107" d="M1170,390.79c-0.6-1.15-0.88-1.9-1.33-2.43c-0.23-0.26-1.01-0.31-1.15-0.06 + c-0.13,0.25,0.15,1.26,0.41,1.49C1168.43,390.24,1169.03,390.36,1170,390.79z"/> + <path class="st107" d="M1187.81,408.82c-0.17-0.49-0.31-1.25-0.7-1.84c-0.18-0.27-1.02-0.45-1.23-0.24 + c-0.2,0.21-0.12,1.01,0.1,1.51C1186.33,409.04,1187.28,409.41,1187.81,408.82z"/> + <path class="st107" d="M1205.33,426.03c-0.91-0.79-1.57-0.56-1.65,0.2c-0.07,0.67,0.22,1.39,0.79,1.7 + c0.44,0.23,1.23,0.28,1.25,0.03C1205.77,427.36,1205.45,426.53,1205.33,426.03z"/> + <path class="st107" d="M1223.72,447.29c-0.15-0.54-0.26-1.38-0.64-2.01c-0.17-0.29-1.04-0.41-1.26-0.15 + c-0.22,0.26-0.17,1.15,0.04,1.69C1222.19,447.67,1223.15,448,1223.72,447.29z"/> + <path class="st107" d="M1239.55,467.08c0.87-0.03,1.52,0.15,1.89-0.17c0.17-0.14-0.09-1.32-0.36-1.91 + c-0.37-0.8-1.41-0.94-1.6-0.22C1239.36,465.27,1239.5,465.99,1239.55,467.08z"/> + <path class="st107" d="M297.29-63.46c-0.51-1.29-0.75-2.07-1.1-2.81c-0.17-0.37-0.73-1.02-0.81-0.93 + c-0.08,0.08,0.19,1.06,0.38,1.43C296.14-65.07,296.57-64.51,297.29-63.46z"/> + <path class="st107" d="M311.82-43.02c0.71,0.42,1.28,0.82,1.53,0.84c0.12,0.01-0.29-0.7-0.61-1.13 + c-0.43-0.58-1.31-1.17-1.35-0.9C311.36-44.03,311.6-43.59,311.82-43.02z"/> + <path class="st107" d="M331.13-26.89c0.65,0.06,1.24,0.21,1.39,0.07c0.09-0.08-0.45-0.65-0.85-0.97 + c-0.56-0.44-1.38-0.6-1.33-0.25C330.38-27.83,330.74-27.45,331.13-26.89z"/> + <path class="st107" d="M353.09-17.18c-1.09-0.33-1.74-0.22-1.68,0.14c0.05,0.32,0.48,0.65,1.13,0.77 + c0.5,0.1,1.34,0.09,1.31-0.03C353.79-16.58,353.3-16.95,353.09-17.18z"/> + <path class="st107" d="M377.5-9.79c-0.85-0.48-1.27-0.83-1.87-0.99c-0.29-0.08-1.21,0.14-1.33,0.33 + c-0.12,0.19,0.35,0.69,0.67,0.74C375.6-9.6,376.31-9.72,377.5-9.79z"/> + <path class="st107" d="M398.88-5.75c1.04-0.38,1.86-0.57,2.25-0.89c0.18-0.15-0.33-0.61-0.76-0.79 + c-0.58-0.24-1.85,0.13-1.96,0.56C398.35-6.57,398.65-6.28,398.88-5.75z"/> + <path class="st107" d="M427.04-5.47c-0.87-0.44-1.27-0.82-1.92-0.88c-0.32-0.03-1.37,0.52-1.54,0.82 + c-0.16,0.29,0.28,0.86,0.63,0.84C424.9-4.71,425.71-5.07,427.04-5.47z"/> + <path class="st107" d="M783.38,68.54c-0.76,0.04-1.3-0.02-1.58,0.14c-0.46,0.26-0.08,1.14,0.63,1.42 + c0.48,0.2,1.33,0.31,1.39,0.12C783.94,69.89,783.62,69.3,783.38,68.54z"/> + <path class="st107" d="M759.41,58.2c0.65,0.6,0.93,1.03,1.38,1.25c0.69,0.35,1.75,0.09,1.65-0.4c-0.07-0.36-0.53-1-0.85-1.07 + C761.01,57.86,760.4,58.07,759.41,58.2z"/> + <path class="st107" d="M739.58,51.5c-0.24-0.31-0.46-0.85-0.97-1.14c-0.24-0.13-1.29,0.13-1.54,0.41 + c-0.24,0.27-0.09,0.89,0.22,1.18C737.77,52.41,738.97,52.22,739.58,51.5z"/> + <path class="st107" d="M715.78,45.88c-0.23-0.33-0.42-0.94-0.94-1.23c-0.24-0.13-1.35,0.28-1.63,0.63 + c-0.26,0.34-0.15,1.03,0.15,1.34C713.83,47.1,715.1,46.77,715.78,45.88z"/> + <path class="st107" d="M691.66,41.04c-0.21-0.38-0.36-1.08-0.86-1.39c-0.24-0.14-1.4,0.38-1.7,0.8 + c-0.29,0.41-0.23,1.21,0.05,1.56C689.59,42.55,690.9,42.11,691.66,41.04z"/> + <path class="st107" d="M667.32,33.6c-1.06,0.75-1.76,1.07-2.2,1.6c-0.7,0.84-0.47,2.06,0.39,1.99 + c0.58-0.04,1.68-0.55,1.83-0.93C667.62,35.57,667.37,34.81,667.32,33.6z"/> + <path class="st107" d="M641.48,31.45c1.23-0.81,2.12-1.17,2.67-1.86c0.25-0.31,0-1.44-0.32-1.9c-0.43-0.62-1.86,0.1-2.2,1.11 + C641.4,29.49,641.53,30.21,641.48,31.45z"/> + <path class="st107" d="M621.49,18.75c-1.15-0.24-2.15,0.72-2.42,1.9c-0.24,1.03,0.03,1.78,0.79,1.65 + c0.59-0.1,1.72-0.8,1.8-1.18C621.85,20.23,621.56,19.36,621.49,18.75z"/> + <path class="st107" d="M597.54,12.21c1.23-0.81,2.11-1.15,2.68-1.89c0.26-0.33,0.08-1.62-0.21-2.15 + c-0.39-0.71-1.82,0.02-2.2,1.11C597.56,10.02,597.65,10.82,597.54,12.21z"/> + <path class="st107" d="M575.02,4.16c1.26-0.9,2.17-1.32,2.74-2.06c0.26-0.34,0.02-1.49-0.3-1.94c-0.44-0.6-1.9,0.24-2.26,1.29 + C574.96,2.15,575.09,2.87,575.02,4.16z"/> + <path class="st107" d="M550.69-3.1c0.57,0.75,0.76,1.39,1.23,1.56c0.72,0.26,2.13-0.84,2.2-1.72c0.05-0.64-0.26-1.61-0.63-1.54 + C552.8-4.68,551.95-3.91,550.69-3.1z"/> + <path class="st107" d="M529.48-5.8c-0.2-0.4-0.31-1.17-0.82-1.42c-0.24-0.12-1.5,0.67-1.84,1.18 + c-0.33,0.49-0.31,1.37-0.03,1.71C527.22-3.79,528.61-4.46,529.48-5.8z"/> + <path class="st107" d="M500.4-6.19c0.66,0.53,0.91,1.01,1.42,1.09c0.78,0.12,2.15-0.9,2.15-1.6c0-0.51-0.41-1.24-0.8-1.14 + C502.47-7.67,501.65-6.96,500.4-6.19z"/> + <path class="st107" d="M478.2-6.36c-0.24-0.29-0.43-0.87-0.98-1.03c-0.26-0.07-1.48,0.62-1.78,1.03 + c-0.29,0.4-0.18,1.07,0.13,1.32C476.06-4.66,477.43-5.27,478.2-6.36z"/> + <path class="st107" d="M451.41-6.72c-1.31,0.18-2.2,0.89-2.25,1.51c-0.04,0.55,0.39,0.86,1.2,0.61 + c0.62-0.19,1.71-0.8,1.72-1.01C452.11-6.1,451.61-6.45,451.41-6.72z"/> + <path class="st107" d="M475.41,25.98c-0.96-0.57-1.25-0.81-1.64-0.95c-0.65-0.23-1.36-0.09-1.65,0.45 + c-0.13,0.23,0.13,0.72,0.41,0.77C473,26.34,473.62,26.18,475.41,25.98z"/> + <path class="st107" d="M497.96,28.45c-0.74,0.41-1.33,0.62-1.72,1.03c-0.14,0.15,0.13,0.82,0.44,0.96 + c0.58,0.25,1.37,0.06,1.66-0.71C498.47,29.37,498.17,29.04,497.96,28.45z"/> + <path class="st107" d="M523.2,35.14c-0.81-0.91-1.05-1.28-1.42-1.49c-0.6-0.35-1.33-0.16-1.76,0.69 + c-0.19,0.37-0.07,1.19,0.19,1.27C520.67,35.75,521.35,35.46,523.2,35.14z"/> + <path class="st107" d="M542.65,43.09c1.17-0.57,1.74-0.67,2.19-1.08c0.58-0.53,0.54-1.91-0.06-2.04 + c-0.65-0.14-1.4,0.03-1.82,1.18C542.74,41.77,542.76,42.42,542.65,43.09z"/> + <path class="st107" d="M564.85,51.85c1.19-0.6,1.75-0.69,2.22-1.14c0.61-0.58,0.65-2.17,0.07-2.35 + c-0.63-0.19-1.38-0.02-1.87,1.28C565.01,50.34,564.99,51.08,564.85,51.85z"/> + <path class="st107" d="M589.06,61.94c-0.21-1.74-0.15-2.57-0.42-2.84c-0.5-0.51-1.28-0.25-1.86,1.07 + c-0.57,1.31-0.24,2.02,0.48,2.09C587.71,62.31,588.26,62.08,589.06,61.94z"/> + <path class="st107" d="M610.21,72.59c0.03-1.36,0.21-2.23,0.01-2.62c-0.4-0.78-1.24-0.3-1.92,0.89 + c-0.3,0.52-0.45,1.87-0.22,2.01C608.48,73.13,609.23,72.76,610.21,72.59z"/> + <path class="st107" d="M633.32,79.55c0.03-1.35,0.21-2.24,0-2.6c-0.42-0.72-1.32-0.12-2.04,1.15 + c-0.32,0.56-0.46,1.91-0.22,2.02C631.49,80.32,632.28,79.86,633.32,79.55z"/> + <path class="st107" d="M655.16,85.82c1.07-1.17,1.81-1.72,2.19-2.42c0.83-1.54,0.5-2.26-0.31-2.09 + c-0.42,0.09-1.55,1.16-1.66,1.54C655.11,83.78,655.23,84.58,655.16,85.82z"/> + <path class="st107" d="M679.9,89.21c1.08-1.19,1.83-1.76,2.21-2.46c0.83-1.56,0.51-2.28-0.31-2.09 + c-0.43,0.1-1.56,1.2-1.68,1.58C679.84,87.17,679.97,87.97,679.9,89.21z"/> + <path class="st107" d="M708.13,90.34c-0.68-1.25-0.84-1.82-1.18-2.09c-0.57-0.44-1.43,0.04-2.14,1.52 + c-0.3,0.64-0.37,1.89-0.1,1.96C705.18,91.84,706,91.24,708.13,90.34z"/> + <path class="st107" d="M732.08,95.66c-0.64-1.35-0.79-1.94-1.12-2.25c-0.54-0.51-1.38-0.09-2.07,1.36 + c-0.3,0.62-0.37,1.9-0.11,1.99C729.24,96.93,730.04,96.39,732.08,95.66z"/> + <path class="st107" d="M753.64,104.51c0.05-1.44,0.24-2.36,0.05-2.79c-0.37-0.85-1.23-0.35-1.92,0.89 + c-0.3,0.55-0.46,1.94-0.24,2.1C751.94,105,752.68,104.64,753.64,104.51z"/> + <path class="st107" d="M774.22,117.41c0.18-1.48,0.51-2.8,0.31-2.91c-0.46-0.25-1.17,0.09-1.78,0.19 + c-0.14,0.78-0.54,2.03-0.36,2.26C772.73,117.39,773.41,117.25,774.22,117.41z"/> + <path class="st107" d="M450.25,22.47c-0.35-0.49-0.41-0.81-0.71-0.96c-0.6-0.3-1.31-0.12-1.64,0.29 + c-0.15,0.18,0.09,0.65,0.35,0.7C448.72,22.61,449.34,22.5,450.25,22.47z"/> + <path class="st107" d="M426.15,18.52c-0.37-0.43-0.45-0.71-0.75-0.86c-0.6-0.28-1.29-0.17-1.59,0.17 + c-0.13,0.15,0.12,0.56,0.38,0.62C424.66,18.57,425.26,18.51,426.15,18.52z"/> + <path class="st107" d="M400.28,13.66c0.94-0.04,1.44-0.01,1.76-0.1c0.41-0.12,0-0.65-0.6-0.76c-0.65-0.13-1.32-0.15-1.4,0.22 + C399.99,13.21,400.19,13.44,400.28,13.66z"/> + <path class="st107" d="M379.56,7.09c-0.73-0.33-1.15-0.59-1.62-0.72c-0.27-0.07-0.6,0.06-0.9,0.09 + c0.4,0.23,0.75,0.49,1.21,0.67C378.46,7.21,378.88,7.12,379.56,7.09z"/> + <path class="st107" d="M357.2-1.28c-0.3-0.34-0.41-0.6-0.61-0.69c-0.47-0.21-0.98-0.34-1.47-0.5c0.12,0.17,0.15,0.37,0.37,0.49 + C355.92-1.75,356.46-1.57,357.2-1.28z"/> + <path class="st107" d="M334.69-13.73c0.71,0.36,1.13,0.59,1.37,0.67c0.32,0.1-0.1-0.39-0.61-0.72 + c-0.56-0.36-1.11-0.66-1.11-0.48C334.33-14.15,334.56-13.91,334.69-13.73z"/> + <path class="st107" d="M317.74-27.53c-0.82-0.87-1.08-1.18-1.4-1.5c-0.52-0.53-1-0.93-1.1-0.88c-0.04,0.02,0.25,0.42,0.46,0.63 + C316.06-28.93,316.48-28.59,317.74-27.53z"/> + <path class="st107" d="M299.67-47.82c-0.31-0.55-0.41-0.78-0.63-1.11c-0.44-0.67-0.86-1.18-1-1.25 + c-0.06-0.03,0.17,0.43,0.35,0.68C298.71-49.03,299.09-48.56,299.67-47.82z"/> + <path class="st107" d="M283.5-75.75c0.5,0.86,0.8,1.4,0.97,1.65c0.23,0.32-0.03-0.55-0.38-1.27c-0.38-0.79-0.77-1.5-0.8-1.26 + C283.28-76.5,283.43-76.06,283.5-75.75z"/> + <path class="st107" d="M1244.66,543.11c0.25-2.01,0.55-3.24,0.47-3.93c-0.16-1.38-0.93-1.04-1.66,0.41 + c-0.32,0.64-0.65,2.54-0.5,2.86C1243.25,543.04,1243.88,542.87,1244.66,543.11z"/> + <path class="st107" d="M1229.66,513.73c-0.88,0.77-1.53,1.1-2.08,1.94c-0.2,0.3-0.39,2.15-0.23,2.65 + c0.3,0.93,0.99,0.95,1.69-0.86C1229.36,516.64,1229.38,515.53,1229.66,513.73z"/> + <path class="st107" d="M1213.56,494.43c0.06-2.43,0.24-3.56,0.06-4.05c-0.34-0.89-1.04-0.81-1.7,0.75 + c-0.65,1.55-0.45,2.61,0.12,3C1212.41,494.39,1212.88,494.31,1213.56,494.43z"/> + <path class="st107" d="M1198.21,468.68c-0.34-1.27-0.43-2.31-0.8-2.69c-0.21-0.22-0.86,0.65-1.32,1.04 + c0.11,0.92,0.1,2.06,0.37,2.67C1196.6,469.99,1197.3,469.24,1198.21,468.68z"/> + <path class="st107" d="M1181.69,446.13c0.11-1.54,0.31-2.43,0.19-3c-0.24-1.13-0.92-1.06-1.51-0.11 + c-0.26,0.42-0.44,1.84-0.28,2.14C1180.38,445.7,1180.95,445.73,1181.69,446.13z"/> + <path class="st107" d="M1165.92,422.27c-0.4-1.1-0.55-1.98-0.92-2.35c-0.21-0.21-0.78,0.41-1.19,0.66 + c0.16,0.78,0.21,1.72,0.51,2.28C1164.46,423.12,1165.08,422.6,1165.92,422.27z"/> + <path class="st107" d="M1148.96,401.55c-0.2-1.68-0.15-2.41-0.38-2.79c-0.41-0.71-1.05-0.84-1.48,0.06 + c-0.43,0.9-0.14,1.69,0.43,2.12C1147.9,401.21,1148.33,401.29,1148.96,401.55z"/> + <path class="st107" d="M1131.5,380.74c-0.06-1.05,0.02-1.63-0.16-2.04c-0.35-0.84-0.98-0.94-1.42-0.41 + c-0.19,0.23-0.21,1.18-0.02,1.43C1130.23,380.15,1130.77,380.3,1131.5,380.74z"/> + <path class="st107" d="M1114.01,361.06c-0.51-0.81-0.77-1.42-1.16-1.74c-0.23-0.19-0.67,0.09-1.01,0.16 + c0.25,0.54,0.42,1.17,0.77,1.61C1112.78,361.29,1113.29,361.09,1114.01,361.06z"/> + <path class="st107" d="M1093.34,343.13c0.8,0.24,1.24,0.47,1.56,0.44c0.41-0.04,0.15-0.83-0.34-1.22 + c-0.54-0.43-1.04-0.85-1.25-0.32C1093.2,342.31,1093.32,342.75,1093.34,343.13z"/> + <path class="st107" d="M795.14,131.93c-0.51-1.64-0.63-2.32-0.89-2.76c-0.44-0.74-1.16-0.6-1.76,0.66 + c-0.26,0.54-0.34,1.85-0.13,2.05C792.73,132.21,793.4,131.94,795.14,131.93z"/> + <path class="st107" d="M811.35,148.17c1.01-0.33,1.52-0.3,1.96-0.68c0.57-0.49,0.69-2.3,0.18-2.64 + c-0.56-0.37-1.26-0.34-1.76,1.02C811.48,146.56,811.47,147.37,811.35,148.17z"/> + <path class="st107" d="M830.63,164.23c0.97-0.24,1.47-0.17,1.88-0.49c0.54-0.42,0.61-2.1,0.1-2.46 + c-0.55-0.39-1.23-0.41-1.67,0.82C830.72,162.75,830.73,163.5,830.63,164.23z"/> + <path class="st107" d="M849.84,180.45c0.93-0.14,1.41-0.05,1.8-0.31c0.51-0.34,0.51-1.88,0.01-2.24 + c-0.55-0.4-1.21-0.46-1.59,0.63C849.87,179.1,849.91,179.79,849.84,180.45z"/> + <path class="st107" d="M870.95,193.98c-0.7,0.3-1.26,0.4-1.64,0.79c-0.14,0.14-0.01,1.16,0.24,1.46 + c0.45,0.57,1.12,0.68,1.47-0.23C871.17,195.58,870.99,194.96,870.95,193.98z"/> + <path class="st107" d="M890.86,211.87c-0.56-0.76-0.84-1.37-1.26-1.63c-0.24-0.15-0.9,0.14-1,0.45 + c-0.23,0.68,0.11,1.36,0.78,1.54C889.74,212.31,890.12,212.06,890.86,211.87z"/> + <path class="st107" d="M910.97,227.79c-0.75-1.08-0.97-1.51-1.28-1.85c-0.52-0.56-1.11-0.7-1.41-0.17 + c-0.13,0.23,0.04,0.94,0.26,1.12C908.93,227.2,909.47,227.25,910.97,227.79z"/> + <path class="st107" d="M928.27,241.33c0.81,0.14,1.26,0.31,1.56,0.25c0.39-0.07,0.12-0.95-0.39-1.28 + c-0.57-0.36-1.17-0.55-1.32-0.01C928.05,240.56,928.21,240.97,928.27,241.33z"/> + <path class="st107" d="M950.77,254.85c-0.65-0.55-1.01-0.97-1.44-1.2c-0.25-0.14-0.8-0.09-0.84,0.07 + c-0.09,0.36,0.33,0.82,0.99,1.06C949.81,254.9,950.12,254.82,950.77,254.85z"/> + <path class="st107" d="M971.68,267.51c-0.66-0.7-0.83-1-1.13-1.2c-0.57-0.37-1.16-0.54-1.29-0.25 + c-0.13,0.29,0.35,0.66,0.98,0.94C970.64,267.17,971.05,267.29,971.68,267.51z"/> + <path class="st107" d="M991.44,277.29c-0.4,0.04-0.82,0.02-0.96,0.14c-0.05,0.04,0.51,0.47,0.87,0.66 + c0.54,0.3,1.28,0.33,1.09,0.06C992.3,277.96,991.92,277.7,991.44,277.29z"/> + <path class="st107" d="M1014.58,289.05c-0.7-0.62-0.88-0.86-1.2-1.04c-0.58-0.33-1.17-0.5-1.28-0.28 + c-0.1,0.22,0.4,0.55,1.03,0.81C1013.54,288.7,1013.94,288.82,1014.58,289.05z"/> + <path class="st107" d="M1035.55,300.41c-0.67-0.49-1.07-0.83-1.5-1.06c-0.25-0.13-0.54-0.09-0.81-0.13 + c0.37,0.3,0.7,0.63,1.13,0.9C1034.56,300.25,1034.94,300.27,1035.55,300.41z"/> + <path class="st107" d="M1056.19,313.82c-0.66-0.7-0.84-0.97-1.14-1.19c-0.55-0.41-1.11-0.66-1.2-0.47 + c-0.09,0.19,0.38,0.58,0.98,0.93C1055.21,313.33,1055.59,313.5,1056.19,313.82z"/> + <path class="st107" d="M1076.18,328.19c-0.66-0.71-0.83-0.99-1.12-1.22c-0.54-0.44-1.08-0.73-1.16-0.56 + c-0.08,0.17,0.38,0.57,0.97,0.97C1075.23,327.62,1075.6,327.83,1076.18,328.19z"/> + <path class="st107" d="M477.56,42.76c0.69-0.56,1.38-0.9,1.58-1.35c0.2-0.45,0.07-1.34-0.2-1.4c-0.33-0.07-1.17,0.43-1.4,0.86 + C477.3,41.29,477.53,41.93,477.56,42.76z"/> + <path class="st107" d="M500,50.61c0.74-0.67,1.46-1.09,1.7-1.62c0.24-0.53,0.18-1.59-0.09-1.66c-0.32-0.08-1.21,0.53-1.48,1.04 + C499.86,48.89,500.04,49.64,500,50.61z"/> + <path class="st107" d="M524.53,56.63c-0.5-0.4-0.77-1.02-1.15-0.79c-0.41,0.24-1.22,1.45-1.32,1.97 + c-0.11,0.57,0.31,1.28,0.68,1.12C523.13,58.76,523.74,57.67,524.53,56.63z"/> + <path class="st107" d="M545.92,67.25c-0.22-0.77-0.22-1.76-0.57-1.69c-0.37,0.07-1.36,1.18-1.54,1.74 + c-0.24,0.74-0.15,1.84,0.17,1.93C544.25,69.31,545.06,68.16,545.92,67.25z"/> + <path class="st107" d="M567.32,79.24c-0.28-1.16-0.26-2.16-0.63-2.27c-0.35-0.1-1.1,0.73-1.67,1.16 + c-0.12,0.88-0.49,2.2-0.29,2.54C564.9,80.97,565.73,80.16,567.32,79.24z"/> + <path class="st107" d="M584.67,94.4c0.87-0.79,1.6-1.15,1.97-1.86c0.41-0.78,0.48-1.88,0.7-2.82 + c-0.57,0.37-1.24,0.49-1.69,1.19C585.25,91.52,585.1,92.79,584.67,94.4z"/> + <path class="st107" d="M609.32,101.35c-0.22-0.77-0.2-1.82-0.57-1.7c-0.4,0.13-1.5,1.48-1.7,2.1c-0.27,0.83-0.2,1.97,0.14,2.01 + C607.48,103.79,608.37,102.45,609.32,101.35z"/> + <path class="st107" d="M633.36,107.71c-0.37-0.96-0.39-1.89-0.82-1.88c-0.4,0.01-1.22,1.01-1.86,1.58 + c-0.1,0.85-0.47,2.16-0.23,2.41C630.66,110.05,631.57,109.06,633.36,107.71z"/> + <path class="st107" d="M657.49,111.16c-0.27-0.66-0.3-1.62-0.7-1.45c-0.43,0.19-1.55,1.61-1.74,2.21 + c-0.26,0.79-0.12,1.82,0.25,1.79C655.63,113.69,656.52,112.33,657.49,111.16z"/> + <path class="st107" d="M679.68,114.95c0.27,0.74,0.28,1.75,0.68,1.6c0.39-0.14,1.44-1.54,1.73-2.29 + c0.25-0.64,0.05-1.64-0.32-1.58C681.42,112.73,680.61,113.91,679.68,114.95z"/> + <path class="st107" d="M707.38,118.56c-0.36-1.47-0.31-2.49-0.67-2.42c-0.4,0.08-1.17,1.18-1.78,1.83 + c0.05,0.67-0.12,1.77,0.21,1.91C705.48,120.02,706.3,119.24,707.38,118.56z"/> + <path class="st107" d="M730.69,124.28c0.12-1.17,0.46-2.45,0.21-2.58c-0.3-0.16-1.24,0.48-1.63,1.11 + c-0.34,0.56-0.55,1.96-0.35,2.28C729.1,125.37,729.92,124.66,730.69,124.28z"/> + <path class="st107" d="M753.94,132.78c-0.35-1.03-0.39-1.93-0.77-2.04c-0.35-0.1-1.05,0.63-1.59,1 + c-0.06,0.78-0.34,1.91-0.12,2.22C751.66,134.22,752.43,133.54,753.94,132.78z"/> + <path class="st107" d="M773.77,146.07c0.1-1.13,0.4-2.31,0.18-2.51c-0.26-0.24-1.09,0.14-1.43,0.66 + c-0.3,0.46-0.48,1.8-0.3,2.17C772.38,146.72,773.09,146.24,773.77,146.07z"/> + <path class="st107" d="M454.81,35.67c0.63-0.44,1.29-0.7,1.45-1.05c0.16-0.36-0.04-1.09-0.31-1.15 + c-0.33-0.07-1.12,0.31-1.31,0.65C454.43,34.46,454.71,34.99,454.81,35.67z"/> + <path class="st107" d="M432.9,26.99c-0.6,0.33-1.23,0.52-1.3,0.77c-0.09,0.29,0.3,0.65,0.48,0.98c0.41-0.21,1-0.35,1.16-0.63 + C433.39,27.86,433.07,27.46,432.9,26.99z"/> + <path class="st107" d="M411.09,21.75c-0.6-0.41-0.88-0.72-1.26-0.81c-0.36-0.08-0.8,0.08-1.21,0.13 + c0.15,0.26,0.18,0.64,0.47,0.78C409.34,21.98,409.88,21.84,411.09,21.75z"/> + <path class="st107" d="M386.32,14.43c0.52-0.01,1.05,0.07,1.16-0.03c0.11-0.11-0.18-0.37-0.3-0.56 + c-0.39-0.04-0.95-0.16-1.11-0.09C385.92,13.82,386.2,14.1,386.32,14.43z"/> + <path class="st107" d="M364.57,5.52c0.41,0.07,0.9,0.21,0.93,0.15c0.03-0.06-0.36-0.34-0.62-0.45 + c-0.3-0.13-0.86-0.28-0.92-0.25C363.89,5,364.29,5.27,364.57,5.52z"/> + <path class="st107" d="M345.05-4.81c-0.61-0.39-0.92-0.65-1.25-0.84c-0.31-0.18-0.64-0.3-0.96-0.47 + c0.2,0.15,0.34,0.28,0.62,0.45C343.7-5.52,344.09-5.33,345.05-4.81z"/> + <path class="st107" d="M324.68-19.14c-0.25-0.29-0.36-0.48-0.58-0.67c-0.26-0.23-0.77-0.59-0.87-0.63 + c-0.09-0.03,0.16,0.28,0.39,0.5C323.83-19.75,324.23-19.48,324.68-19.14z"/> + <path class="st107" d="M305.56-38.09c0.34,0.33,0.72,0.73,0.76,0.73c0.04,0-0.25-0.4-0.4-0.62c-0.27-0.28-0.69-0.74-0.77-0.79 + C305.08-38.81,305.36-38.41,305.56-38.09z"/> + <path class="st107" d="M290.68-59.23c-0.43-0.8-0.66-1.26-0.9-1.67c-0.23-0.38-0.48-0.71-0.72-1.06 + c0.13,0.31,0.21,0.57,0.41,0.93C289.65-60.72,289.95-60.31,290.68-59.23z"/> + <path class="st107" d="M1239.55,582.86c0.65-0.45,1.2-0.49,1.48-1.13c0.31-0.69,0.37-1.94,0.54-2.96 + c-0.44,0.15-0.95-0.04-1.29,0.55C1239.97,579.86,1239.86,581.25,1239.55,582.86z"/> + <path class="st107" d="M1226.05,555.82c-0.13-1.1-0.08-2.38-0.34-2.5c-0.28-0.12-1.07,0.75-1.23,1.36 + c-0.21,0.81-0.18,2.23,0.05,2.54C1224.73,557.48,1225.37,556.5,1226.05,555.82z"/> + <path class="st107" d="M1208.98,531.43c0.61-0.52,1.19-0.68,1.43-1.33c0.25-0.65,0.36-2.31,0.17-2.59 + c-0.22-0.33-0.96,0.06-1.23,0.65C1209.09,528.78,1209.13,530.03,1208.98,531.43z"/> + <path class="st107" d="M1195.7,503.46c-0.14-1.06-0.11-2.25-0.36-2.39c-0.27-0.15-1.02,0.56-1.16,1.11 + c-0.19,0.73-0.14,2.08,0.09,2.4C1194.45,504.84,1195.05,504.01,1195.7,503.46z"/> + <path class="st107" d="M1180.73,476.65c-0.34-0.82-0.5-1.77-0.79-1.75c-0.3,0.03-0.93,0.96-1.02,1.53 + c-0.09,0.63,0.18,1.75,0.44,1.81C1179.65,478.31,1180.12,477.41,1180.73,476.65z"/> + <path class="st107" d="M1165.07,449.05c-0.61,0.41-1.17,0.5-1.33,0.98c-0.18,0.58-0.01,1.5,0.01,2.28 + c0.39-0.2,0.9-0.19,1.13-0.69C1165.1,451.18,1165.01,450.18,1165.07,449.05z"/> + <path class="st107" d="M1149.84,427.49c-0.29-1.22-0.35-2.11-0.62-2.44c-0.26-0.31-0.74-0.04-1.13-0.03 + c-0.02,0.71-0.19,1.64-0.01,2.08C1148.23,427.48,1148.76,427.3,1149.84,427.49z"/> + <path class="st107" d="M1131.81,403.69c0.52-0.12,1.01,0,1.18-0.35c0.18-0.36,0.05-1.18,0.06-1.8 + c-0.38-0.02-0.87-0.3-1.09,0.01C1131.77,401.83,1131.86,402.72,1131.81,403.69z"/> + <path class="st107" d="M1116.43,381.51c-0.03-0.83,0.08-1.58-0.11-1.85c-0.22-0.32-0.82-0.48-1.03-0.26 + c-0.18,0.19-0.18,1.13-0.01,1.51C1115.43,381.25,1115.93,381.28,1116.43,381.51z"/> + <path class="st107" d="M1099.73,360.98c-0.41-0.88-0.57-1.48-0.87-1.77c-0.28-0.26-0.7-0.19-1.06-0.26 + c0.07,0.47,0.02,1.06,0.23,1.38C1098.22,360.62,1098.69,360.62,1099.73,360.98z"/> + <path class="st107" d="M1081.09,342.04c-0.12-0.59-0.1-1.11-0.3-1.32c-0.25-0.26-0.83-0.47-1.01-0.35 + c-0.15,0.11-0.05,0.77,0.15,1.07C1080.11,341.7,1080.59,341.79,1081.09,342.04z"/> + <path class="st107" d="M792.31,158.26c0.24,0.81,0.29,1.73,0.61,1.78c0.31,0.04,1.1-0.78,1.31-1.34 + c0.18-0.48-0.02-1.5-0.31-1.61C793.63,156.98,793.02,157.72,792.31,158.26z"/> + <path class="st107" d="M814.3,173.6c0.03-0.96,0.25-1.95,0.03-2.15c-0.26-0.24-1.02-0.02-1.31,0.39 + c-0.26,0.36-0.35,1.5-0.16,1.84C813.02,173.97,813.67,173.66,814.3,173.6z"/> + <path class="st107" d="M835.14,187.51c-0.41-0.87-0.54-1.58-0.88-1.76c-0.32-0.17-0.87,0.21-1.31,0.35 + c0.02,0.58-0.12,1.38,0.11,1.67C833.26,188.02,833.87,187.7,835.14,187.51z"/> + <path class="st107" d="M852.67,200.48c0.31,0.64,0.45,1.33,0.76,1.42c0.29,0.09,0.92-0.37,1.06-0.74 + c0.11-0.32-0.18-1.11-0.46-1.25C853.75,199.78,853.26,200.21,852.67,200.48z"/> + <path class="st107" d="M873.22,215.65c0.57-0.12,1.12-0.06,1.28-0.31c0.18-0.27,0.02-0.84,0-1.29 + c-0.41,0.01-0.96-0.16-1.19,0.07C873.11,214.33,873.24,214.96,873.22,215.65z"/> + <path class="st107" d="M893.26,227.69c0.37,0.51,0.58,1.03,0.87,1.14c0.28,0.11,0.82-0.13,0.9-0.38 + c0.07-0.22-0.3-0.84-0.58-0.98C894.19,227.33,893.78,227.57,893.26,227.69z"/> + <path class="st107" d="M916.21,241.88c-0.63-0.81-0.83-1.25-1.1-1.38c-0.3-0.14-0.67,0.02-1.01,0.05 + c0.2,0.33,0.32,0.74,0.61,0.94C915.02,241.71,915.49,241.71,916.21,241.88z"/> + <path class="st107" d="M936.64,253.86c-0.21-0.4-0.26-0.75-0.5-0.9c-0.29-0.18-0.9-0.31-1.05-0.22 + c-0.14,0.08,0.06,0.53,0.3,0.73C935.61,253.64,936.11,253.7,936.64,253.86z"/> + <path class="st107" d="M958.24,265.56c-0.71-0.63-0.96-0.95-1.23-1.07c-0.3-0.13-0.62-0.08-0.94-0.11 + c0.23,0.24,0.4,0.54,0.71,0.72C957.09,265.28,957.54,265.34,958.24,265.56z"/> + <path class="st107" d="M977.21,275.31c0.44,0.33,0.74,0.64,1.04,0.76c0.28,0.11,0.73,0.09,0.75-0.02 + c0.02-0.1-0.45-0.48-0.73-0.6C977.98,275.31,977.66,275.35,977.21,275.31z"/> + <path class="st107" d="M1000.9,286.51c-0.43-0.29-0.75-0.57-1.03-0.67c-0.3-0.1-0.8-0.12-0.77-0.02 + c0.03,0.13,0.46,0.47,0.76,0.6C1000.12,286.54,1000.45,286.48,1000.9,286.51z"/> + <path class="st107" d="M1022.59,297.65c-0.7-0.63-0.95-0.94-1.22-1.07c-0.3-0.14-0.62-0.11-0.92-0.16 + c0.23,0.24,0.4,0.52,0.7,0.7C1021.46,297.32,1021.9,297.41,1022.59,297.65z"/> + <path class="st107" d="M1041.51,309.96c0.43,0.05,0.91,0.2,0.98,0.08c0.06-0.12-0.24-0.61-0.48-0.76 + c-0.28-0.18-0.86-0.32-0.95-0.23C1040.96,309.15,1041.3,309.55,1041.51,309.96z"/> + <path class="st107" d="M1060.98,324.71c0.48,0.1,0.96,0.31,1.08,0.19c0.13-0.13-0.09-0.57-0.15-0.88 + c-0.36-0.13-0.85-0.41-1.03-0.33C1060.72,323.76,1060.91,324.23,1060.98,324.71z"/> + <path class="st107" d="M459.25,55.81c-0.06-0.88,0.06-1.7-0.19-1.88c-0.23-0.16-0.85,0.37-1.3,0.59 + c-0.03,0.57-0.26,1.44-0.06,1.66C457.91,56.42,458.53,56.02,459.25,55.81z"/> + <path class="st107" d="M480.5,66.36c-0.01-1.01,0.17-1.97-0.07-2.15c-0.22-0.17-0.89,0.46-1.36,0.74 + c-0.07,0.66-0.36,1.67-0.17,1.91C479.1,67.11,479.76,66.63,480.5,66.36z"/> + <path class="st107" d="M501.49,77.59c0.05-1.13,0.27-2.21,0.04-2.41c-0.22-0.19-0.92,0.54-1.41,0.87 + c-0.11,0.75-0.45,1.89-0.27,2.15C500.03,78.46,500.72,77.9,501.49,77.59z"/> + <path class="st107" d="M522.4,86.07c-0.81,1.08-1.54,1.79-1.8,2.49c-0.24,0.66-0.18,1.8,0.1,1.82c0.3,0.02,1.23-1,1.49-1.64 + C522.49,88.02,522.34,87.23,522.4,86.07z"/> + <path class="st107" d="M540.69,104.14c0.87-1.15,1.67-1.92,1.89-2.56c0.27-0.8,0.28-2,0-2.09c-0.24-0.08-1.2,1.05-1.56,1.82 + C540.71,101.96,540.82,102.85,540.69,104.14z"/> + <path class="st107" d="M562.69,116.03c0.15-1.37,0.47-2.68,0.25-2.93c-0.2-0.23-0.98,0.66-1.51,1.06 + c-0.18,0.91-0.62,2.29-0.46,2.6C561.15,117.1,561.89,116.42,562.69,116.03z"/> + <path class="st107" d="M583.47,128.35c0.11-1.29,0.41-2.56,0.17-2.76c-0.22-0.19-1.03,0.76-1.57,1.21 + c-0.16,0.88-0.59,2.23-0.41,2.5C581.85,129.58,582.62,128.84,583.47,128.35z"/> + <path class="st107" d="M606.76,135.2c-0.2-0.94-0.12-1.99-0.48-1.92c-0.34,0.07-1.13,1.31-1.72,2.04 + c0.04,0.63-0.12,1.7,0.19,1.76C605.03,137.14,605.81,136.12,606.76,135.2z"/> + <path class="st107" d="M631.26,139.34c-0.24-0.85-0.2-1.83-0.57-1.72c-0.35,0.1-1.13,1.33-1.73,2.06 + c0.07,0.58-0.06,1.58,0.26,1.6C629.53,141.29,630.3,140.28,631.26,139.34z"/> + <path class="st107" d="M654.33,144.19c0.89-1.21,1.75-2.11,1.93-2.68c0.23-0.71,0.09-1.62-0.25-1.58 + c-0.3,0.04-1.31,1.29-1.63,2.01C654.09,142.56,654.32,143.19,654.33,144.19z"/> + <path class="st107" d="M682.32,143.18c-0.29-0.75-0.3-1.62-0.67-1.51c-0.35,0.1-1.08,1.21-1.64,1.88 + c0.1,0.51,0.03,1.4,0.36,1.41C680.67,144.96,681.41,144.04,682.32,143.18z"/> + <path class="st107" d="M707.22,146.51c-0.06-0.95,0.11-1.92-0.18-2.03c-0.26-0.1-1,0.72-1.53,1.13 + c-0.06,0.66-0.33,1.69-0.1,1.85C705.66,147.64,706.38,146.99,707.22,146.51z"/> + <path class="st107" d="M729.53,153.21c0.75-0.89,1.48-1.51,1.61-1.98c0.17-0.59,0.01-1.44-0.3-1.48 + c-0.27-0.03-1.12,0.88-1.38,1.46C729.23,151.71,729.47,152.32,729.53,153.21z"/> + <path class="st107" d="M753.44,161.2c-0.06-0.92,0.06-1.81-0.18-2c-0.23-0.18-0.86,0.4-1.31,0.64 + c-0.04,0.62-0.26,1.53-0.06,1.75C752.1,161.82,752.72,161.41,753.44,161.2z"/> + <path class="st107" d="M436.34,46.52c0.62-0.57,1.24-0.93,1.33-1.27c0.11-0.43-0.1-1.11-0.38-1.2 + c-0.24-0.07-0.94,0.47-1.14,0.87C435.97,45.26,436.23,45.78,436.34,46.52z"/> + <path class="st107" d="M416.45,35.58c-0.35-0.56-0.49-1.09-0.79-1.15c-0.28-0.06-0.72,0.37-1.08,0.58 + c0.16,0.35,0.23,0.88,0.5,1C415.34,36.13,415.81,35.8,416.45,35.58z"/> + <path class="st107" d="M393.6,26.04c0.49-0.26,1-0.39,1.03-0.6c0.04-0.26-0.26-0.74-0.54-0.85c-0.24-0.09-0.79,0.13-0.92,0.36 + C393.08,25.14,393.39,25.53,393.6,26.04z"/> + <path class="st107" d="M372.55,15.02c0.42-0.12,0.89-0.13,0.89-0.28c0.01-0.19-0.33-0.6-0.59-0.72 + c-0.23-0.11-0.72-0.03-0.81,0.12C371.96,14.25,372.3,14.6,372.55,15.02z"/> + <path class="st107" d="M353,3.03c-0.29-0.36-0.42-0.62-0.67-0.79c-0.23-0.16-0.59-0.22-0.9-0.33c0.13,0.2,0.18,0.44,0.41,0.61 + C352.07,2.7,352.47,2.81,353,3.03z"/> + <path class="st107" d="M333.12-10.87c-0.3-0.34-0.45-0.55-0.69-0.74c-0.22-0.18-0.54-0.34-0.82-0.51 + c0.14,0.18,0.22,0.35,0.43,0.54C332.27-11.39,332.63-11.19,333.12-10.87z"/> + <path class="st107" d="M314.37-27.42c-0.4-0.45-0.64-0.73-0.87-0.96c-0.21-0.21-0.42-0.35-0.62-0.52 + c0.2,0.24,0.39,0.48,0.62,0.72C313.72-27.97,313.97-27.77,314.37-27.42z"/> + <path class="st107" d="M296.41-48.46c-0.32-0.36-0.65-0.77-0.68-0.77c-0.03,0,0.19,0.4,0.36,0.63c0.21,0.28,0.6,0.75,0.67,0.8 + C296.83-47.75,296.58-48.14,296.41-48.46z"/> + <path class="st107" d="M280.87-73.2c0.25,0.3,0.53,0.72,0.52,0.61c-0.02-0.13-0.28-0.71-0.47-1.04 + c-0.16-0.28-0.46-0.68-0.49-0.65C280.4-74.25,280.66-73.7,280.87-73.2z"/> + <path class="st107" d="M1240.24,614.04c-0.52,0.61-1.01,0.88-1.14,1.4c-0.13,0.49,0.02,1.6,0.23,1.78 + c0.22,0.19,0.82-0.24,0.97-0.7C1240.45,616,1240.28,615.15,1240.24,614.04z"/> + <path class="st107" d="M1224.62,592.37c-0.17-1.14-0.16-2.18-0.39-2.4c-0.22-0.2-0.68,0.45-1.03,0.72 + c0.06,0.69,0,1.67,0.2,1.97C1223.6,592.95,1224.06,592.55,1224.62,592.37z"/> + <path class="st107" d="M1209.13,566.65c0-1.22,0.14-2.27-0.03-2.66c-0.16-0.36-0.64-0.01-0.98,0.02 + c-0.06,0.76-0.26,1.78-0.13,2.19C1208.14,566.63,1208.6,566.49,1209.13,566.65z"/> + <path class="st107" d="M1193.08,539.73c0.52-0.49,1.02-0.68,1.13-1.16c0.14-0.6,0.07-1.79-0.13-2.09 + c-0.17-0.25-0.76,0.2-0.96,0.7C1192.95,537.61,1193.08,538.57,1193.08,539.73z"/> + <path class="st107" d="M1179.53,508.21c-0.5,0.52-0.96,0.7-1.09,1.22c-0.13,0.49-0.02,1.69,0.17,1.91 + c0.2,0.24,0.77-0.1,0.92-0.55C1179.69,510.28,1179.54,509.36,1179.53,508.21z"/> + <path class="st107" d="M1164.88,483.91c-0.02-1.14,0.08-2.1-0.09-2.48c-0.16-0.36-0.61-0.12-0.93-0.15 + c-0.04,0.7-0.21,1.62-0.08,2.02C1163.94,483.73,1164.37,483.67,1164.88,483.91z"/> + <path class="st107" d="M1148.94,456.69c0.47-0.34,0.93-0.42,1.02-0.82c0.1-0.5-0.01-1.56-0.21-1.85 + c-0.17-0.25-0.71,0.03-0.88,0.44C1148.73,454.8,1148.89,455.66,1148.94,456.69z"/> + <path class="st107" d="M1134.61,427.34c-0.44,0.33-0.86,0.39-0.96,0.79c-0.09,0.38,0.08,1.39,0.27,1.61 + c0.21,0.24,0.73,0.07,0.84-0.28C1134.89,429.08,1134.7,428.29,1134.61,427.34z"/> + <path class="st107" d="M1118.86,402.44c-0.42,0.26-0.83,0.28-0.91,0.63c-0.08,0.33,0.13,1.25,0.32,1.47 + c0.21,0.23,0.71,0.12,0.81-0.19C1119.19,404.01,1118.98,403.29,1118.86,402.44z"/> + <path class="st107" d="M1103.04,381.21c-0.27-0.83-0.37-1.5-0.6-1.74c-0.21-0.22-0.55,0.02-0.83,0.05 + c0.12,0.47,0.18,1.1,0.39,1.38C1102.2,381.18,1102.56,381.09,1103.04,381.21z"/> + <path class="st107" d="M1084.94,359.42c0.4-0.1,0.82-0.03,0.85-0.27c0.03-0.29-0.2-0.98-0.43-1.21 + c-0.19-0.2-0.66-0.16-0.76,0.06C1084.51,358.18,1084.77,358.76,1084.94,359.42z"/> + <path class="st107" d="M775.05,171.89c-0.28-0.75-0.34-1.51-0.65-1.56c-0.29-0.05-0.82,0.63-1.25,0.99 + c0.11,0.48,0.11,1.21,0.38,1.34C773.8,172.78,774.35,172.28,775.05,171.89z"/> + <path class="st107" d="M796.04,183.85c-0.13-0.78-0.06-1.5-0.31-1.69c-0.23-0.18-0.78,0.23-1.2,0.37 + c0,0.51-0.14,1.24,0.06,1.45C794.82,184.21,795.37,183.94,796.04,183.85z"/> + <path class="st107" d="M817.13,195.63c-0.15-0.73-0.12-1.37-0.37-1.55c-0.23-0.17-0.75,0.15-1.15,0.25 + c0.02,0.47-0.1,1.15,0.11,1.36C815.94,195.91,816.48,195.67,817.13,195.63z"/> + <path class="st107" d="M837.63,205.63c-0.51,0.42-1.03,0.66-1.13,1c-0.09,0.33,0.18,1.01,0.44,1.09 + c0.27,0.08,0.91-0.3,1.03-0.61C838.1,206.78,837.81,206.29,837.63,205.63z"/> + <path class="st107" d="M858.56,217.76c-0.49,0.37-1,0.57-1.09,0.89c-0.08,0.3,0.21,0.94,0.47,1.02c0.27,0.08,0.89-0.24,1-0.52 + C859.05,218.85,858.75,218.38,858.56,217.76z"/> + <path class="st107" d="M880.15,231.45c-0.2-0.59-0.23-1.1-0.48-1.28c-0.23-0.16-0.71,0.04-1.08,0.09c0.06,0.37,0,0.9,0.21,1.09 + C879.03,231.54,879.53,231.42,880.15,231.45z"/> + <path class="st107" d="M901.43,242.78c-0.38-0.52-0.55-0.97-0.84-1.08c-0.26-0.1-0.64,0.18-0.97,0.29 + c0.18,0.31,0.28,0.76,0.55,0.9C900.44,243.03,900.86,242.85,901.43,242.78z"/> + <path class="st107" d="M922.64,254.08c-0.26-0.46-0.34-0.86-0.59-1.01c-0.24-0.15-0.67-0.04-1.02-0.04 + c0.1,0.29,0.09,0.68,0.32,0.84C921.58,254.03,922.05,253.99,922.64,254.08z"/> + <path class="st107" d="M944.24,264.65c-0.42-0.41-0.64-0.76-0.92-0.87c-0.26-0.1-0.59,0.06-0.89,0.1 + c0.21,0.24,0.36,0.57,0.63,0.71C943.32,264.71,943.7,264.63,944.24,264.65z"/> + <path class="st107" d="M964.91,274.02c-0.37,0.08-0.79,0.08-0.8,0.22c-0.01,0.13,0.4,0.5,0.65,0.59 + c0.27,0.1,0.76,0.07,0.8-0.05C965.59,274.65,965.22,274.36,964.91,274.02z"/> + <path class="st107" d="M987.67,284.93c-0.45-0.34-0.71-0.6-0.99-0.71c-0.26-0.1-0.55-0.03-0.83-0.03 + c0.23,0.19,0.42,0.44,0.69,0.56C986.81,284.86,987.16,284.85,987.67,284.93z"/> + <path class="st107" d="M1008.17,295.14c0.44-0.09,0.78-0.07,0.82-0.2c0.03-0.11-0.21-0.42-0.46-0.56 + c-0.21-0.13-0.75-0.25-0.87-0.2C1007.55,294.22,1007.81,294.49,1008.17,295.14z"/> + <path class="st107" d="M1029.3,306.57c-0.43-0.08-0.87-0.24-0.94-0.15c-0.07,0.09,0.16,0.5,0.37,0.64 + c0.25,0.18,0.77,0.35,0.88,0.29C1029.72,307.3,1029.46,306.94,1029.3,306.57z"/> + <path class="st107" d="M1049.5,322.57c-0.25-0.49-0.34-0.86-0.58-1.07c-0.22-0.2-0.58-0.24-0.88-0.34 + c0.1,0.28,0.13,0.61,0.33,0.83C1048.59,322.2,1048.98,322.31,1049.5,322.57z"/> + <path class="st107" d="M1068.17,339.97c-0.21-0.59-0.28-1.03-0.5-1.28c-0.21-0.23-0.58-0.25-0.88-0.36 + c0.08,0.34,0.08,0.75,0.27,1C1067.27,339.59,1067.66,339.69,1068.17,339.97z"/> + <path class="st107" d="M1042.65,330.99c0.34,0.24,0.73,0.54,0.74,0.51c0.02-0.16-0.06-0.4-0.1-0.62 + c-0.2-0.13-0.54-0.4-0.57-0.37C1042.62,330.59,1042.66,330.81,1042.65,330.99z"/> + <path class="st107" d="M1024.42,315c-0.23-0.25-0.45-0.51-0.68-0.76c-0.15,0-0.46-0.07-0.41,0.01c0.09,0.19,0.36,0.46,0.55,0.7 + C1024.03,314.97,1024.18,314.98,1024.42,315z"/> + <path class="st107" d="M1004,301.62c-0.28-0.2-0.55-0.41-0.85-0.57c-0.08-0.04-0.41,0.04-0.36,0.1 + c0.18,0.18,0.48,0.39,0.74,0.58C1003.66,301.7,1003.79,301.67,1004,301.62z"/> + <path class="st107" d="M981.9,292.4c-0.09-0.19-0.15-0.31-0.21-0.43c-0.32-0.04-0.69-0.12-0.93-0.1 + c-0.1,0.01,0.06,0.21,0.11,0.33C981.21,292.26,981.55,292.33,981.9,292.4z"/> + <path class="st107" d="M959.26,284.44c-0.08-0.21-0.14-0.34-0.19-0.47c-0.33-0.02-0.71-0.08-0.96-0.04 + c-0.11,0.02,0.05,0.24,0.09,0.36C958.55,284.33,958.9,284.38,959.26,284.44z"/> + <path class="st107" d="M935.77,276.3c-0.25,0.14-0.53,0.25-0.67,0.41c-0.04,0.05,0.45,0.37,0.49,0.36 + c0.3-0.06,0.59-0.16,0.79-0.29C936.41,276.75,936.05,276.52,935.77,276.3z"/> + <path class="st107" d="M913.26,270.07c-0.01-0.3-0.01-0.49-0.01-0.69c-0.35-0.01-0.73-0.06-1.04,0.01 + c-0.11,0.02-0.13,0.49-0.04,0.52C912.49,270.01,912.88,270.02,913.26,270.07z"/> + <path class="st107" d="M889.02,263.15c0.46-0.04,0.97-0.03,0.99-0.09c0.09-0.31,0.06-0.64,0.07-0.97 + c-0.27,0.03-0.7-0.01-0.77,0.1C889.13,262.46,889.11,262.8,889.02,263.15z"/> + <path class="st107" d="M867.43,255.33c-0.28-0.21-0.52-0.48-0.84-0.58c-0.08-0.03-0.65,0.58-0.61,0.68 + c0.13,0.3,0.44,0.49,0.68,0.73C866.87,255.92,867.09,255.7,867.43,255.33z"/> + <path class="st107" d="M844.25,248.55c0.07-0.57,0.11-0.92,0.15-1.27c-0.4,0.16-0.84,0.23-1.2,0.51 + c-0.15,0.12-0.13,0.66-0.18,1C843.43,248.71,843.83,248.63,844.25,248.55z"/> + <path class="st107" d="M820.11,241.3c0.5-0.14,1.06-0.22,1.09-0.33c0.19-0.55,0.25-1.11,0.36-1.67 + c-0.3,0.09-0.75,0.11-0.86,0.3C820.43,240.11,820.31,240.69,820.11,241.3z"/> + <path class="st107" d="M798.69,232.97c0.18-0.74,0.3-1.21,0.41-1.69c-0.41,0.12-0.81,0.14-1.22,0.43 + c-0.14,0.1-0.45,1.25-0.37,1.28C797.84,233.13,798.28,233,798.69,232.97z"/> + <path class="st107" d="M776.16,224.62c0.22-0.83,0.36-1.36,0.5-1.89c-0.42,0.15-0.83,0.17-1.25,0.51 + c-0.15,0.12-0.51,1.4-0.43,1.43C775.29,224.81,775.74,224.67,776.16,224.62z"/> + <path class="st107" d="M754.33,214.65c-0.23-0.34-0.39-0.79-0.7-0.92c-0.08-0.03-0.93,1.26-0.93,1.43 + c0.02,0.55,0.29,0.85,0.46,1.25C753.49,215.93,753.81,215.44,754.33,214.65z"/> + <path class="st107" d="M1060.83,350.32c0.33,0.26,0.53,0.42,0.73,0.58c-0.08-0.28-0.17-0.56-0.25-0.85 + c-0.19-0.13-0.51-0.42-0.53-0.37C1060.72,349.81,1060.8,350.08,1060.83,350.32z"/> + <path class="st107" d="M1078.76,372.7c-0.18-0.38-0.36-0.75-0.54-1.13c-0.14-0.02-0.41-0.16-0.39-0.04 + c0.06,0.27,0.28,0.68,0.43,1.02C1078.4,372.59,1078.54,372.63,1078.76,372.7z"/> + <path class="st107" d="M1094.96,396.78c-0.17-0.41-0.34-0.82-0.5-1.23c-0.14-0.02-0.41-0.18-0.38-0.05 + c0.05,0.3,0.25,0.73,0.39,1.11C1094.6,396.66,1094.74,396.71,1094.96,396.78z"/> + <path class="st107" d="M1110.02,421.37c-0.19,0-0.39-0.08-0.5,0.02c-0.03,0.03,0.28,0.8,0.3,0.82 + c0.21,0.16,0.41,0.25,0.56,0.24C1110.42,422.43,1110.19,421.86,1110.02,421.37z"/> + <path class="st107" d="M1124.6,449.12c0.29,0.37,0.47,0.59,0.65,0.81c-0.05-0.36-0.09-0.72-0.14-1.09 + c-0.17-0.19-0.45-0.58-0.48-0.52C1124.56,448.48,1124.6,448.83,1124.6,449.12z"/> + <path class="st107" d="M1139.77,478.16c0.04-0.4,0.06-0.64,0.07-0.88c-0.23-0.31-0.47-0.7-0.68-0.88 + c-0.07-0.06-0.14,0.52-0.09,0.63C1139.27,477.43,1139.52,477.77,1139.77,478.16z"/> + <path class="st107" d="M1153.16,506.18c0.31,0.34,0.64,0.79,0.66,0.72c0.11-0.35,0.13-0.81,0.18-1.22 + c-0.18-0.2-0.46-0.62-0.51-0.54C1153.33,505.34,1153.27,505.78,1153.16,506.18z"/> + <path class="st107" d="M1168.14,535.87c-0.09-0.56-0.19-1.12-0.28-1.68c-0.19,0.08-0.53,0.06-0.55,0.27 + c-0.04,0.48,0.08,1.08,0.14,1.64C1167.64,536.03,1167.83,535.96,1168.14,535.87z"/> + <path class="st107" d="M1182.16,564.83c-0.07-0.6-0.15-1.19-0.23-1.79c-0.22,0.13-0.6,0.2-0.63,0.44 + c-0.07,0.54,0.04,1.17,0.07,1.78C1181.59,565.13,1181.81,565.01,1182.16,564.83z"/> + <path class="st107" d="M1196.4,593.07c-0.06-0.63-0.12-1.25-0.19-1.87c-0.24,0.19-0.66,0.35-0.71,0.61 + c-0.09,0.6,0,1.25,0.01,1.89C1195.77,593.52,1196.01,593.34,1196.4,593.07z"/> + <path class="st107" d="M1210.69,620.8c0.24-0.83,0.38-1.34,0.52-1.84c-0.31-0.13-0.6-0.4-0.92-0.32 + c-0.11,0.03-0.49,1.27-0.44,1.37C1210.05,620.39,1210.38,620.54,1210.69,620.8z"/> + <path class="st107" d="M1226.16,645.74c0.24-0.92,0.39-1.48,0.53-2.03c-0.37,0.05-0.74-0.05-1.11,0.23 + c-0.16,0.12-0.31,1.03-0.48,1.6C1225.45,645.61,1225.8,645.67,1226.16,645.74z"/> + <path class="st107" d="M277.77-71.79c-0.15-0.11-0.32-0.27-0.39-0.27c-0.02,0,0.32,0.65,0.34,0.68 + c0.19,0.21,0.36,0.38,0.48,0.45C278.22-70.92,277.97-71.39,277.77-71.79z"/> + <path class="st107" d="M294.08-47.06c-0.22-0.33-0.44-0.66-0.66-0.98c-0.06-0.08-0.29-0.26-0.25-0.18 + c0.14,0.25,0.38,0.6,0.59,0.92C293.85-47.24,293.94-47.17,294.08-47.06z"/> + <path class="st107" d="M310.88-25.77c-0.08-0.21-0.13-0.34-0.18-0.47c-0.24-0.22-0.52-0.51-0.7-0.65 + c-0.08-0.06,0.06,0.21,0.1,0.33C310.36-26.29,310.62-26.03,310.88-25.77z"/> + <path class="st107" d="M327.93-7.27c-0.18-0.02-0.39-0.09-0.49-0.04c-0.03,0.02,0.36,0.56,0.39,0.57 + c0.23,0.12,0.44,0.19,0.58,0.19C328.44-6.55,328.16-6.94,327.93-7.27z"/> + <path class="st107" d="M346.01,10.79c-0.21,0.05-0.45,0.05-0.57,0.16c-0.04,0.03,0.34,0.6,0.37,0.61 + c0.25,0.06,0.49,0.07,0.66,0.01C346.5,11.56,346.23,11.15,346.01,10.79z"/> + <path class="st107" d="M363.8,28.88c0.37,0.17,0.78,0.4,0.79,0.35c0.08-0.28,0.06-0.62,0.07-0.94 + c-0.22-0.09-0.57-0.31-0.62-0.24C363.89,28.25,363.88,28.58,363.8,28.88z"/> + <path class="st107" d="M382.97,44.6c-0.25,0.28-0.54,0.49-0.69,0.81c-0.05,0.1,0.24,0.49,0.38,0.74 + c0.25-0.2,0.55-0.36,0.74-0.64C383.45,45.44,383.17,45.01,382.97,44.6z"/> + <path class="st107" d="M402.12,62.37c-0.14-0.43-0.29-0.86-0.43-1.29c-0.24,0.2-0.66,0.4-0.66,0.59 + c-0.02,0.44,0.17,0.87,0.27,1.3C401.52,62.81,401.75,62.64,402.12,62.37z"/> + <path class="st107" d="M419.42,79.35c0.43,0.03,0.89,0.14,0.92,0.04c0.18-0.53,0.26-1.11,0.38-1.68 + c-0.25,0-0.64-0.14-0.74,0.03C419.73,78.18,419.61,78.77,419.42,79.35z"/> + <path class="st107" d="M439.29,93.62c-0.4,0.49-0.81,0.89-1.11,1.42c-0.09,0.15,0.16,1.02,0.21,0.99 + c0.39-0.26,0.78-0.63,1.13-1.09C439.58,94.85,439.4,94.22,439.29,93.62z"/> + <path class="st107" d="M458.11,109.85c-0.43,0.57-0.87,1.04-1.19,1.63c-0.1,0.17,0.13,1.1,0.18,1.05 + c0.41-0.32,0.83-0.75,1.2-1.27C458.37,111.16,458.2,110.5,458.11,109.85z"/> + <path class="st107" d="M476.85,128.51c0.21-0.9,0.34-1.46,0.47-2.03c-0.41,0.19-0.83,0.24-1.23,0.62 + c-0.17,0.16-0.29,1.03-0.42,1.57C476.06,128.62,476.45,128.57,476.85,128.51z"/> + <path class="st107" d="M496,144.22c0.2-0.88,0.31-1.41,0.45-1.99c-0.42,0.21-0.84,0.25-1.23,0.63 + c-0.16,0.16-0.27,1.01-0.4,1.54C495.2,144.35,495.6,144.29,496,144.22z"/> + <path class="st107" d="M515.7,156.67c-0.46,0.65-0.92,1.2-1.27,1.86c-0.1,0.19,0.13,1.13,0.18,1.07 + c0.43-0.38,0.88-0.88,1.28-1.48C515.96,158.01,515.79,157.34,515.7,156.67z"/> + <path class="st107" d="M534.16,173.89c0.49-0.13,1.02-0.17,1.07-0.31c0.26-0.74,0.41-1.52,0.61-2.29 + c-0.3,0.1-0.73,0.07-0.86,0.32C534.64,172.28,534.43,173.07,534.16,173.89z"/> + <path class="st107" d="M555.55,184.99c0.53-0.21,1.11-0.36,1.15-0.48c0.24-0.7,0.36-1.4,0.52-2.11 + c-0.32,0.14-0.79,0.2-0.91,0.45C555.98,183.49,555.81,184.22,555.55,184.99z"/> + <path class="st107" d="M579.42,190.88c0.59-0.36,0.95-0.58,1.31-0.8c0.06-0.64,0.13-1.27,0.2-1.92 + c-0.34,0.24-0.89,0.47-0.99,0.71C579.66,189.53,579.58,190.18,579.42,190.88z"/> + <path class="st107" d="M606.06,190.43c-0.49,0.72-1,1.37-1.35,2.06c-0.1,0.2,0.28,0.81,0.34,0.74 + c0.49-0.51,0.99-1.13,1.41-1.78C606.53,191.32,606.24,190.89,606.06,190.43z"/> + <path class="st107" d="M630.66,194.41c0.64-0.45,1.02-0.73,1.4-1c0.08-0.66,0.16-1.33,0.23-1.99c-0.37,0.29-0.95,0.6-1.06,0.86 + C630.95,192.98,630.85,193.66,630.66,194.41z"/> + <path class="st107" d="M656.71,195.21c0.65-0.47,1.03-0.76,1.42-1.04c0.1-0.7,0.2-1.41,0.29-2.11c-0.37,0.3-0.96,0.62-1.07,0.9 + C657.04,193.69,656.92,194.41,656.71,195.21z"/> + <path class="st107" d="M683.66,196.19c0.26-0.94,0.42-1.53,0.59-2.12c-0.47,0.27-0.94,0.42-1.42,0.89 + c-0.17,0.16-0.59,1.61-0.5,1.62C682.67,196.63,683.18,196.35,683.66,196.19z"/> + <path class="st107" d="M708.37,197.47c-0.51,0.89-1.05,1.7-1.41,2.54c-0.12,0.26,0.22,0.58,0.34,0.87 + c0.49-0.75,1.03-1.48,1.42-2.27C708.84,198.4,708.54,197.98,708.37,197.47z"/> + <path class="st107" d="M731.66,204.46c-0.53,0.79-1.06,1.49-1.47,2.28c-0.12,0.23,0.13,1.11,0.2,1.04 + c0.5-0.53,1.02-1.19,1.48-1.91C731.95,205.73,731.76,205.1,731.66,204.46z"/> + <path class="st107" d="M776.54,195.61c-0.44-0.16-0.8-0.34-1.2-0.38c-0.04,0-0.58,1.05-0.55,1.3c0.04,0.39,0.32,0.77,0.59,0.66 + C775.63,197.1,776,196.36,776.54,195.61z"/> + <path class="st107" d="M798.11,206.24c-0.44-0.17-0.8-0.34-1.2-0.39c-0.04,0-0.55,0.97-0.52,1.21c0.05,0.37,0.34,0.74,0.6,0.64 + C797.25,207.62,797.6,206.93,798.11,206.24z"/> + <path class="st107" d="M818.37,218.18c0.31-0.22,0.62-0.44,0.93-0.66c-0.16-0.42-0.32-0.84-0.47-1.26 + c-0.29,0.32-0.79,0.72-0.81,0.95C817.98,217.59,818.24,217.86,818.37,218.18z"/> + <path class="st107" d="M840.78,228.24c0.09-0.39,0.18-0.78,0.27-1.16c-0.42,0.05-0.84,0.1-1.25,0.16 + c0.02,0.37-0.07,0.89,0.1,1.06C840.06,228.46,840.47,228.27,840.78,228.24z"/> + <path class="st107" d="M861.91,238.46c0.28-0.15,0.56-0.3,0.84-0.45c-0.19-0.35-0.38-0.69-0.57-1.04 + c-0.25,0.23-0.7,0.52-0.7,0.7C861.47,237.96,861.75,238.19,861.91,238.46z"/> + <path class="st107" d="M884.52,247.99c0.05-0.29,0.09-0.57,0.14-0.86c-0.4,0-0.79,0.01-1.19,0.02c0.06,0.28,0.03,0.67,0.2,0.81 + C883.84,248.1,884.22,247.99,884.52,247.99z"/> + <path class="st107" d="M905.97,257.4c0.25-0.08,0.5-0.17,0.76-0.25c-0.22-0.27-0.45-0.54-0.67-0.81 + c-0.21,0.15-0.61,0.31-0.59,0.44C905.49,257.01,905.79,257.2,905.97,257.4z"/> + <path class="st107" d="M929.11,266.01c-0.44-0.16-0.81-0.31-1.19-0.41c-0.03-0.01-0.28,0.34-0.19,0.46 + c0.13,0.18,0.48,0.4,0.7,0.41C928.64,266.47,928.8,266.23,929.11,266.01z"/> + <path class="st107" d="M950.48,275.24c0.23-0.02,0.45-0.05,0.68-0.07c-0.25-0.21-0.5-0.41-0.75-0.62 + c-0.18,0.07-0.54,0.13-0.5,0.22C949.97,274.92,950.28,275.08,950.48,275.24z"/> + <path class="st107" d="M972.77,284.04c0.22,0,0.44,0,0.65-0.01c-0.26-0.19-0.51-0.37-0.77-0.56c-0.17,0.04-0.51,0.07-0.47,0.14 + C972.25,283.73,972.56,283.89,972.77,284.04z"/> + <path class="st107" d="M995.53,293.12c-0.03-0.11-0.06-0.22-0.09-0.33c-0.36-0.09-0.71-0.18-1.07-0.27 + c0.12,0.13,0.19,0.29,0.38,0.39C994.95,293.01,995.27,293.05,995.53,293.12z"/> + <path class="st107" d="M1016.16,304.26c0.2,0.04,0.4,0.08,0.59,0.12c-0.24-0.23-0.48-0.46-0.72-0.69 + c-0.15,0.01-0.46-0.04-0.42,0.04C1015.68,303.87,1015.97,304.08,1016.16,304.26z"/> + <path class="st107" d="M1036.05,318.73c0.19,0.05,0.38,0.1,0.58,0.16c-0.22-0.28-0.44-0.56-0.66-0.84 + c-0.15,0.01-0.45-0.05-0.42,0.04C1035.61,318.25,1035.88,318.51,1036.05,318.73z"/> + <path class="st107" d="M1055.46,336.15c-0.12-0.24-0.24-0.47-0.36-0.71c-0.24-0.04-0.48-0.08-0.72-0.13 + c0.19,0.26,0.36,0.6,0.56,0.77C1055.1,336.22,1055.28,336.14,1055.46,336.15z"/> + <path class="st107" d="M1072.61,355.85c0.2,0.09,0.39,0.19,0.59,0.28c-0.16-0.38-0.32-0.76-0.48-1.15 + c-0.17,0-0.46-0.11-0.47,0.03C1072.25,355.18,1072.48,355.56,1072.61,355.85z"/> + <path class="st107" d="M1090.01,378.45c0.02-0.25,0.04-0.5,0.05-0.76c-0.29-0.24-0.58-0.49-0.87-0.73 + c0.06,0.31,0.06,0.67,0.19,0.92C1089.53,378.13,1089.8,378.26,1090.01,378.45z"/> + <path class="st107" d="M1105.3,401.24c0.09,0.36,0.18,0.71,0.27,1.07c0.24,0,0.48-0.01,0.72-0.03 + c-0.15-0.35-0.29-0.82-0.47-1.02C1105.68,401.09,1105.48,401.23,1105.3,401.24z"/> + <path class="st107" d="M1121.7,428.44c-0.07-0.37-0.14-0.74-0.21-1.12c-0.25,0-0.5,0-0.75,0c0.14,0.4,0.24,0.93,0.42,1.16 + C1121.29,428.66,1121.51,428.47,1121.7,428.44z"/> + <path class="st107" d="M1136.64,455.69c-0.06-0.4-0.12-0.79-0.18-1.19c-0.26,0.02-0.51,0.03-0.76,0.04 + c0.13,0.42,0.22,0.98,0.4,1.22C1136.22,455.94,1136.45,455.73,1136.64,455.69z"/> + <path class="st107" d="M1151.4,483.52c-0.29-0.53-0.53-1-0.79-1.38c-0.02-0.03-0.3,0.49-0.27,0.75 + c0.05,0.4,0.26,0.99,0.42,1.13C1150.92,484.15,1151.11,483.78,1151.4,483.52z"/> + <path class="st107" d="M1165.84,512c-0.29-0.53-0.53-1-0.79-1.38c-0.02-0.03-0.31,0.51-0.28,0.78c0.05,0.4,0.25,1.01,0.42,1.14 + C1165.34,512.66,1165.53,512.29,1165.84,512z"/> + <path class="st107" d="M1179.94,540.97c0.06-0.36,0.12-0.73,0.19-1.11c-0.28-0.25-0.56-0.51-0.85-0.77 + c0.01,0.43-0.04,0.94,0.07,1.25C1179.45,540.66,1179.73,540.78,1179.94,540.97z"/> + <path class="st107" d="M1194.64,568.61c0.06-0.35,0.11-0.7,0.17-1.06c-0.29-0.25-0.57-0.5-0.86-0.75 + c0.02,0.41-0.03,0.9,0.08,1.2C1194.16,568.3,1194.44,568.41,1194.64,568.61z"/> + <path class="st107" d="M1210.18,594.38c-0.31-0.48-0.57-0.9-0.84-1.24c-0.02-0.03-0.3,0.43-0.26,0.67 + c0.06,0.35,0.29,0.88,0.46,1.01C1209.7,594.92,1209.88,594.61,1210.18,594.38z"/> + <path class="st107" d="M1226.06,618.76c-0.33-0.44-0.6-0.82-0.88-1.14c-0.03-0.03-0.27,0.35-0.22,0.55 + c0.08,0.3,0.32,0.78,0.5,0.9C1225.62,619.19,1225.78,618.95,1226.06,618.76z"/> + <path class="st107" d="M287-59.91c0.14,0.18,0.28,0.36,0.42,0.53c-0.19-0.34-0.38-0.68-0.57-1.02 + c-0.1-0.11-0.32-0.38-0.29-0.29C286.63-60.55,286.85-60.18,287-59.91z"/> + <path class="st107" d="M302.85-38.15c0.14,0.2,0.28,0.4,0.42,0.6c0.18,0.16,0.36,0.32,0.54,0.48 + c-0.19-0.24-0.39-0.51-0.56-0.71C303.1-37.94,302.98-38.03,302.85-38.15z"/> + <path class="st107" d="M321.54-17.88c-0.13-0.18-0.27-0.36-0.4-0.54c-0.21-0.13-0.42-0.25-0.63-0.38 + c0.19,0.22,0.39,0.49,0.58,0.66C321.24-18,321.39-17.96,321.54-17.88z"/> + <path class="st107" d="M340.11-1.01c-0.1-0.18-0.2-0.36-0.3-0.53c-0.26-0.09-0.52-0.18-0.78-0.27 + c0.19,0.22,0.37,0.48,0.58,0.64C339.77-1.04,339.97-1.05,340.11-1.01z"/> + <path class="st107" d="M358.77,14.24c0.21,0.02,0.42,0.03,0.63,0.05c-0.21-0.29-0.42-0.58-0.62-0.86 + c-0.17,0.05-0.5,0.04-0.48,0.15C358.33,13.75,358.6,14.01,358.77,14.24z"/> + <path class="st107" d="M379.31,28.19c-0.4-0.25-0.73-0.48-1.07-0.64c-0.03-0.01-0.31,0.39-0.24,0.55c0.1,0.24,0.4,0.56,0.6,0.6 + C378.8,28.73,378.99,28.44,379.31,28.19z"/> + <path class="st107" d="M398.99,42.05c-0.05-0.31-0.09-0.6-0.14-0.9c-0.36,0.14-0.72,0.29-1.08,0.43 + c0.17,0.27,0.29,0.67,0.52,0.78C398.47,42.44,398.78,42.15,398.99,42.05z"/> + <path class="st107" d="M418.18,55.87c0.28-0.15,0.56-0.3,0.84-0.45c-0.15-0.42-0.3-0.83-0.46-1.24 + c-0.26,0.25-0.71,0.53-0.73,0.74C417.81,55.26,418.06,55.56,418.18,55.87z"/> + <path class="st107" d="M753.13,185.61c0.06,0.42,0.11,0.83,0.16,1.24c0.46-0.5,0.92-0.99,1.37-1.48 + c-0.18-0.27-0.29-0.77-0.56-0.75C753.89,184.63,753.47,185.25,753.13,185.61z"/> + <path class="st107" d="M730.98,176.26c0.06,0.4,0.12,0.8,0.18,1.2c0.48-0.54,0.96-1.08,1.43-1.61 + c-0.19-0.25-0.31-0.72-0.59-0.68C731.77,175.21,731.33,175.87,730.98,176.26z"/> + <path class="st107" d="M708.96,170.02c-0.51-0.03-0.91-0.09-1.38,0c-0.04,0.01-0.64,1.19-0.6,1.43 + c0.05,0.36,0.38,0.65,0.69,0.47C707.95,171.74,708.36,170.91,708.96,170.02z"/> + <path class="st107" d="M682.77,167.38c-0.37,0.4-0.75,0.81-1.13,1.22c0.23,0.34,0.46,0.68,0.69,1.03 + c0.36-0.55,0.94-1.25,1-1.61C683.41,167.64,682.98,167.58,682.77,167.38z"/> + <path class="st107" d="M655.3,168.44c0.09,0.33,0.19,0.66,0.28,1c0.51-0.61,1.02-1.22,1.53-1.83 + c-0.23-0.16-0.39-0.55-0.71-0.42C656.13,167.29,655.67,167.99,655.3,168.44z"/> + <path class="st107" d="M630.11,168.87c0.15-0.54,0.31-1.09,0.46-1.63c-0.53,0.31-1.07,0.62-1.6,0.93 + c-0.01,0.45-0.17,1.16,0.02,1.27C629.19,169.56,629.72,169.09,630.11,168.87z"/> + <path class="st107" d="M603.17,166.86c0.06,0.4,0.12,0.8,0.19,1.2c0.53-0.65,1.06-1.31,1.59-1.97c-0.2-0.22-0.32-0.7-0.64-0.59 + C604.05,165.59,603.56,166.38,603.17,166.86z"/> + <path class="st107" d="M580.88,161.15c-0.48-0.08-0.87-0.19-1.32-0.13c-0.04,0.01-0.73,1.38-0.72,1.68 + c0.01,0.45,0.3,0.82,0.61,0.63C579.75,163.15,580.22,162.2,580.88,161.15z"/> + <path class="st107" d="M558.28,152.62c0.01-0.51,0.01-1.02,0.02-1.54c-0.53,0.6-1.05,1.2-1.57,1.8 + c0.12,0.41,0.12,1.12,0.4,1.12C557.34,154,557.88,153.12,558.28,152.62z"/> + <path class="st107" d="M536.93,140.16c0.38-0.37,0.75-0.74,1.13-1.11c-0.06-0.64-0.12-1.29-0.17-1.93 + c-0.38,0.53-1,1.2-1.08,1.57C536.66,139.28,536.87,139.68,536.93,140.16z"/> + <path class="st107" d="M517.97,125.29c0.22-0.68,0.43-1.35,0.65-2.03c-0.46,0.15-0.92,0.31-1.38,0.46 + c-0.09,0.62-0.35,1.52-0.22,1.78C517.14,125.76,517.64,125.39,517.97,125.29z"/> + <path class="st107" d="M497.38,109.74c0.01,0.51,0.02,1.02,0.02,1.53c0.49-0.56,0.98-1.12,1.48-1.69 + c-0.14-0.35-0.18-0.97-0.45-0.97C498.21,108.6,497.74,109.33,497.38,109.74z"/> + <path class="st107" d="M478.7,94.52c-0.34,0.33-0.69,0.65-1.03,0.98c0.13,0.54,0.27,1.08,0.4,1.62 + c0.34-0.51,0.89-1.1,0.98-1.52C479.16,95.15,478.84,94.87,478.7,94.52z"/> + <path class="st107" d="M459.07,82.16c-0.03-0.43-0.05-0.85-0.08-1.27c-0.44,0.41-0.88,0.82-1.32,1.22 + c0.14,0.36,0.18,0.95,0.43,1C458.3,83.15,458.74,82.5,459.07,82.16z"/> + <path class="st107" d="M438.82,69.17c0.13-0.46,0.25-0.92,0.38-1.37c-0.41,0.04-0.82,0.08-1.23,0.12 + c-0.01,0.43-0.15,1.05-0.01,1.26C438.1,69.39,438.52,69.19,438.82,69.17z"/> + <path class="st107" d="M1038.31,338.04c-0.02-0.19-0.04-0.38-0.07-0.56c-0.1-0.03-0.28-0.13-0.29-0.08 + c-0.02,0.14,0.02,0.34,0.03,0.51C1038.09,337.96,1038.2,338,1038.31,338.04z"/> + <path class="st107" d="M1019.15,321.47c-0.04-0.14-0.08-0.3-0.13-0.45c-0.1-0.02-0.29-0.08-0.29-0.04 + c-0.01,0.12,0.06,0.28,0.09,0.43C1018.93,321.42,1019.04,321.44,1019.15,321.47z"/> + <path class="st107" d="M998.2,308.71c-0.12-0.01-0.33-0.06-0.34-0.02c-0.02,0.1,0.04,0.24,0.07,0.36 + c0.12,0.02,0.35,0.07,0.35,0.05C998.29,308.98,998.23,308.84,998.2,308.71z"/> + <path class="st107" d="M975.97,299.6c0.13-0.06,0.3-0.1,0.39-0.18c0.03-0.02-0.14-0.14-0.22-0.21 + c-0.15,0.06-0.31,0.11-0.42,0.18C975.69,299.41,975.88,299.53,975.97,299.6z"/> + <path class="st107" d="M953.64,291.72c-0.05-0.12-0.1-0.24-0.15-0.36c-0.12,0.01-0.33,0-0.34,0.03 + c-0.01,0.1,0.07,0.23,0.11,0.34C953.39,291.72,953.51,291.72,953.64,291.72z"/> + <path class="st107" d="M929.97,285.31c0.14-0.07,0.31-0.13,0.4-0.21c0.03-0.03-0.15-0.12-0.23-0.18 + c-0.15,0.07-0.33,0.13-0.44,0.22C929.68,285.16,929.87,285.26,929.97,285.31z"/> + <path class="st107" d="M906.48,280.13c-0.05-0.11-0.11-0.22-0.16-0.33c-0.12,0.02-0.35,0.03-0.35,0.06 + c-0.01,0.1,0.07,0.21,0.12,0.32C906.21,280.16,906.34,280.14,906.48,280.13z"/> + <path class="st107" d="M882.15,276.04c-0.06-0.1-0.12-0.2-0.19-0.31c-0.12,0.03-0.34,0.05-0.34,0.08c0,0.1,0.09,0.2,0.15,0.31 + C881.89,276.09,882.01,276.06,882.15,276.04z"/> + <path class="st107" d="M857.41,272.92c-0.07-0.06-0.15-0.14-0.22-0.22c-0.12,0.02-0.34,0.04-0.33,0.06 + c0.01,0.07,0.12,0.14,0.19,0.21C857.15,272.96,857.28,272.94,857.41,272.92z"/> + <path class="st107" d="M832.37,270.49c-0.06-0.1-0.12-0.21-0.18-0.34c-0.13,0.04-0.36,0.08-0.36,0.12 + c-0.01,0.11,0.08,0.22,0.14,0.32C832.1,270.56,832.23,270.53,832.37,270.49z"/> + <path class="st107" d="M806.88,268.3c0.17-0.13,0.37-0.27,0.49-0.42c0.04-0.05-0.14-0.14-0.21-0.21 + c-0.19,0.16-0.4,0.3-0.54,0.45C806.59,268.16,806.79,268.24,806.88,268.3z"/> + <path class="st107" d="M781.84,265.86c0.19-0.18,0.41-0.37,0.56-0.57c0.05-0.07-0.12-0.18-0.19-0.28 + c-0.21,0.21-0.45,0.41-0.61,0.61C781.57,265.67,781.76,265.78,781.84,265.86z"/> + <path class="st107" d="M756.95,263.07c0.21-0.24,0.46-0.47,0.62-0.73c0.05-0.08-0.1-0.23-0.16-0.35 + c-0.24,0.26-0.49,0.52-0.68,0.78C756.69,262.83,756.87,262.97,756.95,263.07z"/> + <path class="st107" d="M732.26,259.8c0.24-0.29,0.5-0.57,0.69-0.89c0.06-0.1-0.08-0.28-0.13-0.42 + c-0.26,0.32-0.54,0.62-0.75,0.95C732.02,259.51,732.19,259.68,732.26,259.8z"/> + <path class="st107" d="M1055.89,358.45c0-0.23,0-0.46-0.01-0.69c-0.1-0.04-0.28-0.15-0.29-0.09c-0.04,0.17-0.02,0.42-0.02,0.64 + C1055.68,358.35,1055.78,358.4,1055.89,358.45z"/> + <path class="st107" d="M1072.01,382.35c0.02-0.29,0.05-0.57,0.07-0.85c-0.1-0.03-0.28-0.15-0.3-0.08 + c-0.06,0.22-0.06,0.51-0.09,0.78C1071.8,382.25,1071.91,382.3,1072.01,382.35z"/> + <path class="st107" d="M1087.02,408.95c-0.01-0.2-0.03-0.41-0.04-0.62c-0.18,0.09-0.37,0.14-0.53,0.3 + c-0.04,0.04,0.04,0.39,0.06,0.6C1086.67,409.14,1086.84,409.04,1087.02,408.95z"/> + <path class="st107" d="M1100.53,438.98c0.07-0.37,0.14-0.78,0.21-1.19c-0.11,0-0.29-0.1-0.33,0.02 + c-0.11,0.33-0.16,0.75-0.23,1.14C1100.29,438.96,1100.4,438.97,1100.53,438.98z"/> + <path class="st107" d="M1113.52,470.3c0.01-0.27,0.03-0.54,0.04-0.81c-0.22,0.18-0.46,0.32-0.67,0.58 + c-0.05,0.06-0.02,0.51-0.02,0.78C1113.09,470.67,1113.3,470.49,1113.52,470.3z"/> + <path class="st107" d="M1125.26,504.35c0.12-0.48,0.25-1.03,0.39-1.57c-0.13,0.04-0.33-0.02-0.39,0.14 + c-0.17,0.46-0.28,1.01-0.41,1.52C1124.98,504.41,1125.11,504.38,1125.26,504.35z"/> + <path class="st107" d="M1136.72,539.04c0.17-0.61,0.35-1.21,0.52-1.82c-0.14,0.05-0.35-0.01-0.41,0.16 + c-0.2,0.52-0.35,1.12-0.52,1.7C1136.44,539.07,1136.58,539.05,1136.72,539.04z"/> + <path class="st107" d="M1147.97,574.07c0.2-0.67,0.4-1.34,0.6-2c-0.15,0.07-0.37,0.05-0.45,0.24c-0.23,0.58-0.4,1.24-0.6,1.88 + C1147.67,574.14,1147.82,574.1,1147.97,574.07z"/> + <path class="st107" d="M1159.31,608.73c0.19-0.64,0.41-1.37,0.63-2.09c-0.17,0.12-0.41,0.15-0.5,0.37 + c-0.25,0.64-0.44,1.35-0.65,2.04C1158.95,608.95,1159.12,608.84,1159.31,608.73z"/> + <path class="st107" d="M1170.94,642.55c0.21-0.68,0.46-1.45,0.7-2.22c-0.18,0.15-0.44,0.22-0.54,0.46 + c-0.27,0.69-0.48,1.44-0.72,2.17C1170.56,642.84,1170.74,642.7,1170.94,642.55z"/> + <path class="st107" d="M1183.96,672.49c-0.19,0.13-0.45,0.18-0.55,0.4c-0.31,0.72-0.55,1.51-0.82,2.28 + c0.18-0.09,0.45-0.1,0.52-0.28C1183.43,674.12,1183.69,673.3,1183.96,672.49z"/> + <path class="st107" d="M1197.09,703.06c0.08-0.4,0.16-0.8,0.24-1.21c-0.41,0.59-0.83,1.14-1.23,1.81 + c-0.1,0.16-0.13,0.75-0.2,1.14C1196.29,704.23,1196.68,703.66,1197.09,703.06z"/> + <path class="st107" d="M1210.57,731.03c0.41-0.64,0.83-1.23,1.22-1.94c0.12-0.23,0.15-0.76,0.22-1.15 + c-0.43,0.66-0.88,1.29-1.3,2.02C1210.62,730.13,1210.62,730.66,1210.57,731.03z"/> + <path class="st107" d="M1230.13,751.78c0.43-0.62,0.88-1.2,1.26-1.87c0.12-0.21,0.07-0.66,0.1-1 + c-0.45,0.64-0.92,1.25-1.34,1.95C1230.06,751.03,1230.13,751.47,1230.13,751.78z"/> + <path class="st107" d="M273.86-67.63c0.1,0.02,0.23,0.08,0.3,0.05c0.02-0.01-0.1-0.23-0.15-0.36 + c-0.11-0.03-0.24-0.09-0.32-0.07C273.67-68,273.8-67.76,273.86-67.63z"/> + <path class="st107" d="M290.38-44.67c-0.04-0.15-0.07-0.3-0.11-0.45c-0.08-0.07-0.24-0.23-0.24-0.2c0,0.09,0.05,0.26,0.08,0.4 + C290.2-44.83,290.29-44.75,290.38-44.67z"/> + <path class="st107" d="M306.69-22.18c-0.03-0.16-0.06-0.33-0.09-0.49c-0.09-0.07-0.24-0.22-0.25-0.18 + c-0.01,0.11,0.04,0.29,0.06,0.44C306.51-22.33,306.6-22.25,306.69-22.18z"/> + <path class="st107" d="M323.12-0.08c-0.02-0.17-0.05-0.36-0.08-0.54c-0.09-0.05-0.25-0.17-0.25-0.13 + c-0.02,0.13,0.03,0.33,0.05,0.51C322.93-0.19,323.02-0.14,323.12-0.08z"/> + <path class="st107" d="M339.37,21.56c0.12-0.03,0.27-0.03,0.36-0.11c0.03-0.03-0.08-0.26-0.13-0.39 + c-0.13,0.03-0.28,0.03-0.39,0.09C339.18,21.17,339.31,21.42,339.37,21.56z"/> + <path class="st107" d="M356.42,42.89c-0.04-0.14-0.08-0.29-0.12-0.43c-0.15,0.04-0.32,0.06-0.44,0.15 + c-0.03,0.02,0.09,0.28,0.14,0.42C356.14,42.99,356.28,42.94,356.42,42.89z"/> + <path class="st107" d="M372.8,64.2c0.14-0.09,0.31-0.15,0.42-0.28c0.04-0.04-0.07-0.3-0.12-0.45 + c-0.16,0.09-0.33,0.15-0.45,0.28C372.62,63.78,372.74,64.05,372.8,64.2z"/> + <path class="st107" d="M389.74,85c0.15-0.11,0.33-0.2,0.45-0.37c0.04-0.05-0.07-0.31-0.11-0.48c-0.17,0.12-0.35,0.21-0.49,0.37 + C389.56,84.56,389.69,84.84,389.74,85z"/> + <path class="st107" d="M407.23,105.32c0.02-0.27,0.03-0.59,0.05-0.9c-0.11,0.02-0.31-0.02-0.33,0.07 + c-0.06,0.26-0.06,0.57-0.08,0.86C406.99,105.35,407.11,105.33,407.23,105.32z"/> + <path class="st107" d="M424.65,125.1c0.02-0.29,0.05-0.62,0.07-0.96c-0.12,0.03-0.32,0.01-0.34,0.11 + c-0.07,0.28-0.07,0.61-0.1,0.92C424.4,125.15,424.52,125.13,424.65,125.1z"/> + <path class="st107" d="M442.58,143.77c-0.03-0.18-0.05-0.37-0.08-0.55c-0.2,0.18-0.42,0.34-0.59,0.56 + c-0.04,0.05,0.06,0.34,0.1,0.52C442.2,144.13,442.39,143.96,442.58,143.77z"/> + <path class="st107" d="M460.55,162.5c0.04-0.35,0.08-0.71,0.12-1.07c-0.13,0.05-0.34,0.04-0.37,0.15 + c-0.09,0.31-0.1,0.66-0.14,1C460.29,162.55,460.42,162.52,460.55,162.5z"/> + <path class="st107" d="M479.23,179.65c0.04-0.36,0.08-0.72,0.12-1.08c-0.13,0.05-0.35,0.07-0.38,0.17 + c-0.09,0.32-0.1,0.67-0.14,1.01C478.96,179.72,479.09,179.69,479.23,179.65z"/> + <path class="st107" d="M498.72,194.95c-0.03-0.18-0.06-0.36-0.1-0.54c-0.22,0.23-0.45,0.42-0.64,0.68 + c-0.04,0.06,0.07,0.33,0.12,0.5C498.31,195.39,498.51,195.18,498.72,194.95z"/> + <path class="st107" d="M518.56,209.63c0.02-0.3,0.04-0.63,0.06-0.98c-0.14,0.07-0.36,0.12-0.39,0.23 + c-0.08,0.31-0.07,0.63-0.09,0.95C518.28,209.76,518.41,209.7,518.56,209.63z"/> + <path class="st107" d="M539.64,220.73c0.2-0.24,0.43-0.47,0.6-0.74c0.05-0.09-0.08-0.29-0.13-0.44 + c-0.22,0.26-0.46,0.5-0.65,0.78C539.41,220.39,539.57,220.59,539.64,220.73z"/> + <path class="st107" d="M563.33,227.33c-0.04-0.15-0.09-0.3-0.13-0.45c-0.25,0.29-0.51,0.56-0.72,0.86 + c-0.05,0.07,0.1,0.27,0.16,0.41C562.87,227.89,563.09,227.62,563.33,227.33z"/> + <path class="st107" d="M587.02,233.3c0.04-0.36,0.08-0.72,0.13-1.08c-0.17,0.13-0.44,0.26-0.48,0.38 + c-0.1,0.35-0.11,0.69-0.16,1.03C586.69,233.52,586.86,233.41,587.02,233.3z"/> + <path class="st107" d="M611.65,237c-0.03-0.17-0.07-0.34-0.1-0.51c-0.28,0.37-0.59,0.71-0.83,1.09 + c-0.06,0.09,0.08,0.3,0.13,0.46C611.12,237.7,611.38,237.36,611.65,237z"/> + <path class="st107" d="M636.16,240.99c-0.03-0.18-0.06-0.36-0.09-0.54c-0.3,0.39-0.62,0.77-0.87,1.18 + c-0.06,0.1,0.07,0.32,0.12,0.49C635.59,241.75,635.87,241.38,636.16,240.99z"/> + <path class="st107" d="M660.25,245.83c0.06-0.38,0.13-0.81,0.2-1.24c-0.18,0.17-0.48,0.36-0.52,0.51 + c-0.14,0.42-0.17,0.82-0.24,1.22C659.88,246.16,660.06,246,660.25,245.83z"/> + <path class="st107" d="M684.38,250.55c0.08-0.42,0.16-0.85,0.24-1.29c-0.18,0.16-0.47,0.33-0.52,0.46 + c-0.14,0.42-0.18,0.82-0.26,1.22C684.01,250.82,684.19,250.69,684.38,250.55z"/> + <path class="st107" d="M708.59,254.94c-0.03-0.17-0.06-0.34-0.09-0.51c-0.29,0.36-0.6,0.71-0.84,1.08 + c-0.06,0.09,0.08,0.3,0.13,0.45C708.04,255.64,708.31,255.3,708.59,254.94z"/> + <path class="st107" d="M754.29,242.76c-0.15-0.24-0.27-0.54-0.47-0.69c-0.07-0.05-0.36,0.28-0.55,0.44 + c0.15,0.27,0.28,0.58,0.48,0.77C753.79,243.31,754.1,242.94,754.29,242.76z"/> + <path class="st107" d="M776.83,248.45c0.17,0.24,0.31,0.51,0.52,0.68c0.05,0.04,0.4-0.27,0.49-0.45 + c0.08-0.18,0.06-0.58-0.01-0.56C777.51,248.17,777.16,248.33,776.83,248.45z"/> + <path class="st107" d="M801.63,254.15c-0.19-0.17-0.35-0.38-0.58-0.48c-0.06-0.03-0.31,0.24-0.48,0.37 + c0.19,0.19,0.37,0.39,0.6,0.53C801.22,254.59,801.48,254.3,801.63,254.15z"/> + <path class="st107" d="M825.53,259.28c-0.2-0.14-0.37-0.32-0.61-0.41c-0.07-0.03-0.29,0.19-0.45,0.3 + c0.21,0.16,0.4,0.34,0.63,0.45C825.15,259.64,825.38,259.4,825.53,259.28z"/> + <path class="st107" d="M849.54,264.14c-0.21-0.12-0.4-0.27-0.64-0.35c-0.06-0.02-0.27,0.15-0.41,0.24 + c0.22,0.13,0.42,0.28,0.67,0.37C849.2,264.42,849.41,264.23,849.54,264.14z"/> + <path class="st107" d="M872.51,268.71c0.21,0.13,0.41,0.26,0.65,0.36c0.05,0.02,0.33-0.09,0.37-0.17 + c0.04-0.08-0.07-0.27-0.14-0.27C873.1,268.64,872.8,268.68,872.51,268.71z"/> + <path class="st107" d="M897.15,273.86c0.13-0.03,0.26-0.07,0.38-0.1c-0.2-0.1-0.39-0.22-0.62-0.3 + c-0.08-0.03-0.27,0.04-0.4,0.07C896.72,273.64,896.94,273.75,897.15,273.86z"/> + <path class="st107" d="M921.42,278.95c-0.22-0.09-0.43-0.19-0.67-0.26c-0.07-0.02-0.23,0.04-0.34,0.06 + c0.23,0.09,0.46,0.19,0.71,0.27C921.16,279.05,921.31,278.98,921.42,278.95z"/> + <path class="st107" d="M944.93,284.85c-0.21-0.09-0.42-0.19-0.65-0.27c-0.08-0.03-0.24,0-0.37,0c0.23,0.1,0.44,0.2,0.68,0.29 + C944.65,284.89,944.82,284.86,944.93,284.85z"/> + <path class="st107" d="M968.04,291.78c-0.22-0.1-0.42-0.21-0.65-0.29c-0.07-0.03-0.21,0-0.32,0c0.23,0.11,0.45,0.22,0.69,0.31 + C967.81,291.82,967.95,291.79,968.04,291.78z"/> + <path class="st107" d="M990.49,300.2c-0.21-0.12-0.4-0.25-0.63-0.36c-0.06-0.03-0.21-0.01-0.31-0.01 + c0.22,0.13,0.43,0.26,0.66,0.38C990.25,300.24,990.39,300.21,990.49,300.2z"/> + <path class="st107" d="M1011.5,311.15c0.11,0.02,0.21,0.04,0.31,0.07c-0.18-0.15-0.35-0.31-0.55-0.46 + c-0.07-0.05-0.22-0.07-0.33-0.1C1011.12,310.82,1011.31,310.98,1011.5,311.15z"/> + <path class="st107" d="M1030.96,325.08c0.19,0.19,0.36,0.39,0.56,0.59c0.04,0.04,0.24,0.12,0.26,0.1 + c0.02-0.03-0.1-0.21-0.15-0.24C1031.41,325.36,1031.19,325.22,1030.96,325.08z"/> + <path class="st107" d="M1050.48,343.62c-0.16-0.22-0.32-0.44-0.5-0.65c-0.06-0.07-0.19-0.12-0.29-0.18 + c0.17,0.23,0.33,0.47,0.52,0.7C1050.25,343.53,1050.39,343.57,1050.48,343.62z"/> + <path class="st107" d="M1067.8,364.16c-0.2-0.19-0.4-0.39-0.61-0.58c0.06,0.13,0.11,0.32,0.17,0.39 + c0.19,0.21,0.38,0.38,0.57,0.56C1067.89,364.41,1067.84,364.28,1067.8,364.16z"/> + <path class="st107" d="M1084.26,388.23c-0.14-0.29-0.27-0.59-0.42-0.87c-0.04-0.08-0.17-0.08-0.26-0.12 + c0.15,0.31,0.28,0.62,0.44,0.93C1084.05,388.22,1084.18,388.21,1084.26,388.23z"/> + <path class="st107" d="M1099.55,414.38c-0.12-0.33-0.23-0.67-0.37-0.98c-0.04-0.09-0.18-0.07-0.28-0.11 + c0.13,0.35,0.24,0.71,0.39,1.05C1099.3,414.41,1099.45,414.37,1099.55,414.38z"/> + <path class="st107" d="M1113.92,442.62c-0.1-0.37-0.17-0.76-0.3-1.1c-0.04-0.11-0.2-0.11-0.31-0.15 + c0.1,0.4,0.18,0.81,0.31,1.19C1113.64,442.64,1113.81,442.6,1113.92,442.62z"/> + <path class="st107" d="M1127.62,472.54c-0.09-0.4-0.16-0.82-0.28-1.18c-0.04-0.1-0.21-0.01-0.33-0.01 + c0.09,0.43,0.17,0.87,0.29,1.27C1127.31,472.69,1127.5,472.57,1127.62,472.54z"/> + <path class="st107" d="M1140.71,503.67c-0.06-0.44-0.1-0.92-0.21-1.3c-0.04-0.13-0.23-0.04-0.36-0.06 + c0.06,0.48,0.11,0.98,0.2,1.42C1140.36,503.82,1140.58,503.69,1140.71,503.67z"/> + <path class="st107" d="M1153.48,535.5c-0.05-0.47-0.07-0.98-0.17-1.38c-0.03-0.14-0.25,0-0.39,0.01 + c0.05,0.51,0.07,1.05,0.16,1.51C1153.1,535.73,1153.34,535.55,1153.48,535.5z"/> + <path class="st107" d="M1166.17,567.44c-0.05-0.48-0.08-1-0.18-1.39c-0.03-0.11-0.28,0.13-0.43,0.21 + c0.05,0.51,0.08,1.06,0.17,1.51C1165.75,567.85,1166.02,567.56,1166.17,567.44z"/> + <path class="st107" d="M1178.35,597.64c0.02,0.55,0.02,1.15,0.09,1.63c0.02,0.1,0.35-0.1,0.46-0.33 + c0.11-0.23,0.23-0.92,0.18-0.97C1178.87,597.77,1178.6,597.73,1178.35,597.64z"/> + <path class="st107" d="M1192.14,629.3c-0.04-0.49-0.05-1.04-0.15-1.43c-0.03-0.11-0.33,0.24-0.51,0.38 + c0.04,0.53,0.05,1.11,0.14,1.56C1191.63,629.9,1191.95,629.49,1192.14,629.3z"/> + <path class="st107" d="M1205.96,657.89c-0.02-0.52-0.01-1.1-0.1-1.5c-0.03-0.13-0.35,0.21-0.53,0.33 + c0.02,0.56,0,1.18,0.07,1.65C1205.41,658.48,1205.76,658.07,1205.96,657.89z"/> + <path class="st107" d="M1221.07,682.71c-0.31,0.05-0.63,0.11-0.94,0.17c-0.05,0.36-0.22,1-0.14,1.04 + c0.23,0.11,0.55-0.02,0.84-0.05C1220.91,683.48,1220.99,683.09,1221.07,682.71z"/> + <path class="st107" d="M1236.61,706.73c0.05,0.54,0.07,1.14,0.19,1.58c0.03,0.09,0.48-0.32,0.63-0.61 + c0.15-0.3,0.28-1.07,0.22-1.09C1237.34,706.54,1236.96,706.66,1236.61,706.73z"/> + <path class="st107" d="M1256.37,765.59c0.41-0.52,0.84-1.02,1.2-1.58c0.11-0.18,0.01-0.53,0.01-0.8 + c-0.43,0.54-0.89,1.07-1.28,1.65C1256.21,764.99,1256.34,765.34,1256.37,765.59z"/> + <path class="st107" d="M284.39-57.54c-0.15-0.25-0.3-0.5-0.46-0.75c-0.05-0.07-0.15-0.15-0.22-0.22 + c0.16,0.26,0.31,0.53,0.48,0.79C284.22-57.66,284.32-57.6,284.39-57.54z"/> + <path class="st107" d="M300.71-35.01c-0.16-0.23-0.31-0.47-0.48-0.7c-0.05-0.07-0.15-0.14-0.23-0.2 + c0.17,0.25,0.32,0.49,0.5,0.74C300.53-35.13,300.63-35.07,300.71-35.01z"/> + <path class="st107" d="M317.49-13.78c-0.15-0.23-0.3-0.45-0.47-0.68c-0.06-0.08-0.18-0.15-0.27-0.22 + c0.16,0.24,0.31,0.48,0.49,0.73C317.28-13.9,317.4-13.84,317.49-13.78z"/> + <path class="st107" d="M334.61,6.6c-0.15-0.23-0.29-0.47-0.46-0.69c-0.06-0.08-0.19-0.12-0.29-0.18 + c0.16,0.25,0.31,0.5,0.48,0.74C334.38,6.52,334.52,6.56,334.61,6.6z"/> + <path class="st107" d="M351.96,26.41c-0.15-0.24-0.3-0.49-0.47-0.71c-0.05-0.06-0.19-0.05-0.28-0.07 + c0.16,0.26,0.31,0.52,0.49,0.76C351.73,26.43,351.87,26.41,351.96,26.41z"/> + <path class="st107" d="M369.39,45.92c-0.15-0.26-0.28-0.54-0.45-0.77c-0.05-0.06-0.21,0.02-0.32,0.03 + c0.15,0.28,0.29,0.56,0.47,0.82C369.12,46.05,369.29,45.95,369.39,45.92z"/> + <path class="st107" d="M386.88,65.25c-0.14-0.27-0.26-0.56-0.43-0.8c-0.05-0.07-0.23,0.04-0.34,0.07 + c0.15,0.29,0.28,0.6,0.45,0.86C386.59,65.43,386.77,65.3,386.88,65.25z"/> + <path class="st107" d="M404.53,84.23c-0.14-0.28-0.26-0.58-0.43-0.81c-0.05-0.06-0.24,0.08-0.36,0.14 + c0.15,0.3,0.28,0.61,0.45,0.87C404.22,84.47,404.41,84.3,404.53,84.23z"/> + <path class="st107" d="M422.36,102.84c-0.14-0.28-0.26-0.6-0.42-0.83c-0.05-0.06-0.25,0.12-0.38,0.18 + c0.14,0.3,0.27,0.63,0.44,0.89C422.03,103.14,422.23,102.93,422.36,102.84z"/> + <path class="st107" d="M440.41,121.02c-0.14-0.29-0.25-0.61-0.42-0.84c-0.05-0.06-0.26,0.15-0.39,0.23 + c0.14,0.31,0.27,0.64,0.44,0.91C440.06,121.36,440.27,121.13,440.41,121.02z"/> + <path class="st107" d="M458.69,138.68c-0.12-0.31-0.22-0.66-0.38-0.91c-0.05-0.08-0.28,0.11-0.43,0.17 + c0.12,0.34,0.23,0.71,0.39,0.99C458.3,139,458.54,138.78,458.69,138.68z"/> + <path class="st107" d="M477.39,155.61c-0.13-0.29-0.25-0.63-0.42-0.86c-0.05-0.06-0.28,0.18-0.43,0.29 + c0.14,0.32,0.26,0.66,0.43,0.93C477.01,156.02,477.25,155.74,477.39,155.61z"/> + <path class="st107" d="M496.45,171.72c-0.13-0.31-0.22-0.66-0.39-0.89c-0.06-0.08-0.3,0.14-0.45,0.23 + c0.13,0.34,0.23,0.7,0.4,0.98C496.05,172.09,496.3,171.83,496.45,171.72z"/> + <path class="st107" d="M516.12,186.68c-0.15-0.27-0.27-0.59-0.46-0.79c-0.05-0.06-0.29,0.22-0.44,0.35 + c0.15,0.29,0.29,0.62,0.47,0.86C515.73,187.14,515.97,186.83,516.12,186.68z"/> + <path class="st107" d="M536.58,199.84c-0.15-0.25-0.27-0.55-0.47-0.73c-0.07-0.06-0.32,0.19-0.48,0.3 + c0.15,0.28,0.29,0.59,0.48,0.81C536.15,200.26,536.42,199.97,536.58,199.84z"/> + <path class="st107" d="M558.37,207.54c0.17,0.24,0.32,0.52,0.53,0.69c0.05,0.04,0.39-0.26,0.47-0.44 + c0.08-0.18,0.04-0.57-0.03-0.56C559.04,207.28,558.7,207.43,558.37,207.54z"/> + <path class="st107" d="M583.67,212.54c-0.17-0.2-0.32-0.46-0.54-0.57c-0.08-0.04-0.36,0.28-0.54,0.43 + c0.18,0.23,0.33,0.49,0.56,0.65C583.19,213.07,583.48,212.72,583.67,212.54z"/> + <path class="st107" d="M608.74,215.46c-0.17-0.2-0.31-0.47-0.54-0.58c-0.08-0.04-0.37,0.31-0.57,0.49 + c0.18,0.23,0.33,0.5,0.55,0.65C608.23,216.05,608.55,215.66,608.74,215.46z"/> + <path class="st107" d="M634.14,217.69c-0.18-0.19-0.34-0.43-0.58-0.52c-0.07-0.02-0.37,0.4-0.57,0.62 + c0.19,0.2,0.36,0.45,0.59,0.58C633.63,218.39,633.95,217.93,634.14,217.69z"/> + <path class="st107" d="M659.23,220.41c-0.15-0.24-0.27-0.55-0.49-0.68c-0.07-0.04-0.39,0.36-0.6,0.56 + c0.16,0.27,0.28,0.59,0.49,0.77C658.68,221.1,659.02,220.64,659.23,220.41z"/> + <path class="st107" d="M683.9,224.14c-0.16-0.23-0.29-0.53-0.51-0.66c-0.06-0.04-0.39,0.42-0.6,0.65 + c0.17,0.26,0.31,0.56,0.52,0.73C683.35,224.9,683.69,224.4,683.9,224.14z"/> + <path class="st107" d="M707.73,228.87c-0.36,0.19-0.73,0.39-1.09,0.58c0.01,0.24-0.05,0.69,0.05,0.68 + c0.29-0.05,0.66-0.29,0.99-0.46C707.7,229.4,707.72,229.14,707.73,228.87z"/> + <path class="st107" d="M730.95,236.35c-0.16-0.24-0.28-0.54-0.49-0.68c-0.06-0.04-0.37,0.38-0.57,0.58 + c0.16,0.26,0.3,0.57,0.51,0.75C730.44,237.04,730.76,236.59,730.95,236.35z"/> + </g> + </g> + </g> + </g> +</g> +<g id="Words" class="st0"> + <g class="st1"> + <path class="st108" d="M493.19,393.44h-2.85c-0.33,0-0.6-0.08-0.8-0.25c-0.2-0.16-0.35-0.37-0.46-0.63l-2.55-6.57h-12.22 + l-2.55,6.57c-0.09,0.23-0.24,0.43-0.46,0.61c-0.22,0.18-0.48,0.27-0.8,0.27h-2.85l10.89-27.23h3.74L493.19,393.44z M475.35,383.33 + h10.16l-4.27-11.08c-0.28-0.68-0.55-1.54-0.82-2.56c-0.14,0.52-0.28,1-0.41,1.43c-0.13,0.44-0.26,0.82-0.39,1.15L475.35,383.33z" + /> + <path class="st108" d="M507.26,393.44v-27.23h8.68c1.67,0,3.11,0.17,4.32,0.49c1.21,0.33,2.2,0.8,2.98,1.41 + c0.78,0.61,1.36,1.35,1.73,2.23c0.37,0.88,0.56,1.87,0.56,2.97c0,0.67-0.1,1.32-0.31,1.94c-0.21,0.62-0.53,1.2-0.95,1.73 + c-0.42,0.53-0.96,1.01-1.6,1.42s-1.39,0.76-2.25,1.03c1.99,0.39,3.49,1.11,4.5,2.15c1.01,1.04,1.52,2.41,1.52,4.1 + c0,1.15-0.21,2.2-0.64,3.15c-0.42,0.95-1.05,1.77-1.86,2.45c-0.82,0.68-1.82,1.21-3,1.59c-1.18,0.37-2.54,0.56-4.06,0.56H507.26z + M510.95,378.41h4.86c1.04,0,1.94-0.11,2.7-0.34c0.76-0.23,1.39-0.54,1.89-0.95c0.5-0.41,0.87-0.9,1.11-1.47 + c0.24-0.58,0.36-1.21,0.36-1.89c0-1.6-0.48-2.77-1.44-3.52c-0.96-0.75-2.46-1.12-4.48-1.12h-5V378.41z M510.95,381.03v9.48h5.89 + c1.05,0,1.95-0.12,2.71-0.36c0.75-0.24,1.37-0.58,1.86-1.02c0.49-0.44,0.85-0.96,1.07-1.56c0.23-0.6,0.34-1.26,0.34-1.99 + c0-1.41-0.5-2.52-1.49-3.33c-0.99-0.82-2.5-1.23-4.51-1.23H510.95z"/> + <path class="st108" d="M556.43,370.47c-0.11,0.19-0.23,0.33-0.36,0.43c-0.13,0.09-0.29,0.14-0.49,0.14 + c-0.22,0-0.47-0.11-0.75-0.32c-0.29-0.22-0.65-0.45-1.08-0.71c-0.44-0.26-0.96-0.5-1.58-0.71c-0.61-0.22-1.36-0.32-2.23-0.32 + c-0.82,0-1.55,0.11-2.18,0.33c-0.63,0.22-1.16,0.52-1.59,0.9c-0.42,0.38-0.74,0.83-0.96,1.34c-0.22,0.51-0.32,1.07-0.32,1.66 + c0,0.76,0.19,1.39,0.56,1.89c0.37,0.5,0.87,0.93,1.48,1.28c0.61,0.35,1.31,0.66,2.09,0.92c0.78,0.26,1.58,0.53,2.39,0.81 + c0.82,0.28,1.61,0.59,2.39,0.94c0.78,0.35,1.48,0.79,2.09,1.32c0.61,0.53,1.11,1.18,1.48,1.96c0.37,0.77,0.56,1.72,0.56,2.85 + c0,1.19-0.2,2.31-0.61,3.35c-0.41,1.04-1,1.95-1.78,2.73c-0.78,0.77-1.74,1.38-2.87,1.82c-1.13,0.44-2.42,0.67-3.87,0.67 + c-1.76,0-3.37-0.32-4.82-0.96c-1.45-0.64-2.69-1.5-3.71-2.59l1.06-1.75c0.1-0.14,0.22-0.26,0.37-0.35 + c0.15-0.1,0.31-0.14,0.48-0.14c0.27,0,0.57,0.14,0.91,0.43c0.34,0.29,0.77,0.6,1.28,0.94c0.51,0.34,1.13,0.66,1.86,0.94 + c0.73,0.29,1.62,0.43,2.67,0.43c0.87,0,1.65-0.12,2.34-0.36c0.68-0.24,1.26-0.58,1.74-1.02c0.48-0.44,0.84-0.96,1.09-1.57 + c0.25-0.61,0.38-1.29,0.38-2.03c0-0.82-0.19-1.5-0.56-2.02c-0.37-0.53-0.86-0.97-1.47-1.32c-0.61-0.35-1.3-0.66-2.08-0.9 + c-0.78-0.25-1.58-0.5-2.39-0.76c-0.82-0.26-1.61-0.56-2.39-0.9c-0.78-0.34-1.47-0.79-2.08-1.33c-0.61-0.54-1.1-1.23-1.47-2.04 + c-0.37-0.82-0.56-1.83-0.56-3.03c0-0.96,0.19-1.89,0.56-2.79c0.37-0.9,0.91-1.7,1.62-2.39c0.71-0.7,1.59-1.25,2.63-1.67 + c1.04-0.42,2.25-0.63,3.6-0.63c1.52,0,2.91,0.24,4.16,0.72c1.25,0.48,2.35,1.18,3.29,2.09L556.43,370.47z"/> + <path class="st108" d="M591.81,366.22v3.1h-8.8v24.13h-3.69v-24.13h-8.83v-3.1H591.81z"/> + <path class="st108" d="M610.37,382.08v11.36h-3.67v-27.23h7.7c1.72,0,3.21,0.17,4.46,0.52c1.25,0.35,2.29,0.85,3.11,1.51 + c0.82,0.66,1.42,1.45,1.81,2.38c0.39,0.93,0.59,1.97,0.59,3.13c0,0.96-0.15,1.86-0.46,2.7c-0.3,0.84-0.74,1.59-1.32,2.25 + c-0.58,0.67-1.28,1.23-2.11,1.7c-0.83,0.47-1.77,0.82-2.82,1.06c0.46,0.27,0.86,0.65,1.22,1.16l7.94,10.81h-3.27 + c-0.67,0-1.16-0.26-1.48-0.78l-7.07-9.73c-0.21-0.3-0.45-0.52-0.7-0.66c-0.25-0.13-0.63-0.2-1.14-0.2H610.37z M610.37,379.4h3.86 + c1.08,0,2.02-0.13,2.84-0.39c0.82-0.26,1.5-0.63,2.05-1.1c0.55-0.48,0.97-1.04,1.25-1.7c0.28-0.66,0.42-1.39,0.42-2.19 + c0-1.62-0.54-2.84-1.61-3.67c-1.07-0.82-2.66-1.23-4.78-1.23h-4.03V379.4z"/> + <path class="st108" d="M663.84,393.44h-2.85c-0.33,0-0.6-0.08-0.8-0.25c-0.2-0.16-0.36-0.37-0.46-0.63l-2.55-6.57h-12.22 + l-2.55,6.57c-0.09,0.23-0.24,0.43-0.46,0.61c-0.22,0.18-0.48,0.27-0.8,0.27h-2.85l10.89-27.23h3.74L663.84,393.44z M646,383.33 + h10.17l-4.27-11.08c-0.28-0.68-0.55-1.54-0.82-2.56c-0.14,0.52-0.28,1-0.41,1.43c-0.13,0.44-0.26,0.82-0.39,1.15L646,383.33z"/> + <path class="st108" d="M696.31,387.82c0.2,0,0.39,0.08,0.55,0.25l1.44,1.58c-1.12,1.29-2.47,2.3-4.06,3.02 + c-1.59,0.72-3.5,1.08-5.75,1.08c-1.96,0-3.74-0.34-5.34-1.02s-2.96-1.63-4.08-2.85c-1.13-1.22-2-2.69-2.62-4.4 + c-0.62-1.71-0.93-3.59-0.93-5.64c0-2.05,0.33-3.93,1-5.64c0.66-1.71,1.6-3.18,2.8-4.41c1.2-1.23,2.64-2.18,4.32-2.86 + c1.68-0.68,3.53-1.02,5.56-1.02c2,0,3.73,0.31,5.18,0.93c1.45,0.62,2.74,1.46,3.87,2.53l-1.2,1.69c-0.09,0.13-0.19,0.23-0.3,0.31 + c-0.11,0.08-0.28,0.12-0.49,0.12c-0.16,0-0.34-0.06-0.52-0.18c-0.18-0.12-0.4-0.27-0.66-0.45c-0.25-0.18-0.55-0.37-0.89-0.57 + c-0.34-0.2-0.75-0.39-1.22-0.57c-0.47-0.18-1.01-0.33-1.63-0.45c-0.62-0.12-1.34-0.18-2.15-0.18c-1.46,0-2.79,0.25-4,0.75 + c-1.21,0.5-2.25,1.21-3.13,2.14c-0.87,0.92-1.56,2.05-2.04,3.38c-0.49,1.33-0.73,2.82-0.73,4.46c0,1.7,0.24,3.21,0.73,4.54 + c0.49,1.33,1.15,2.45,2,3.37c0.84,0.92,1.84,1.62,2.99,2.1c1.15,0.48,2.39,0.72,3.72,0.72c0.81,0,1.54-0.05,2.19-0.14 + c0.65-0.1,1.24-0.24,1.79-0.45c0.55-0.2,1.06-0.46,1.54-0.77c0.48-0.31,0.95-0.68,1.43-1.11 + C695.89,387.91,696.1,387.82,696.31,387.82z"/> + <path class="st108" d="M732.33,366.22v3.1h-8.8v24.13h-3.69v-24.13h-8.83v-3.1H732.33z"/> + </g> + <g class="st1"> + <path class="st108" d="M367.27,427.5c0.17,0,0.31,0.07,0.43,0.19s0.13,0.29,0.06,0.48l-7.65,17.42c-0.1,0.29-0.3,0.44-0.59,0.44 + c-0.12,0-0.24-0.04-0.35-0.12c-0.11-0.08-0.2-0.18-0.27-0.32l-7.62-17.42c-0.04-0.1-0.05-0.16-0.05-0.18 + c0-0.14,0.06-0.25,0.17-0.35c0.11-0.09,0.24-0.14,0.37-0.14c0.21,0,0.36,0.11,0.47,0.34l7.29,16.67l7.29-16.67 + C366.91,427.61,367.07,427.5,367.27,427.5z"/> + <path class="st108" d="M384.29,445.71c-0.13-0.12-0.19-0.25-0.19-0.39v-17.08c0-0.16,0.06-0.29,0.19-0.4 + c0.13-0.11,0.28-0.17,0.45-0.17h9.95c0.14,0,0.25,0.05,0.34,0.14c0.09,0.09,0.13,0.22,0.13,0.38c0,0.14-0.04,0.25-0.13,0.35 + c-0.09,0.09-0.2,0.14-0.34,0.14h-9.51v7.47h8.99c0.14,0,0.25,0.04,0.34,0.13c0.09,0.09,0.13,0.21,0.13,0.36 + c0,0.16-0.04,0.28-0.13,0.37c-0.09,0.1-0.2,0.14-0.34,0.14h-8.99v7.73h9.51c0.14,0,0.25,0.04,0.34,0.13 + c0.09,0.09,0.13,0.21,0.13,0.36c0,0.16-0.04,0.28-0.13,0.37c-0.09,0.1-0.2,0.14-0.34,0.14h-9.95 + C384.57,445.89,384.42,445.83,384.29,445.71z"/> + <path class="st108" d="M415.31,444.98c-1.22-0.75-2.16-1.83-2.82-3.23c-0.66-1.4-0.98-3.06-0.98-4.97c0-1.91,0.33-3.57,0.98-4.96 + c0.65-1.4,1.59-2.47,2.82-3.22c1.22-0.75,2.67-1.12,4.34-1.12c1.15,0,2.26,0.21,3.32,0.62c1.06,0.41,1.94,0.98,2.65,1.71 + c0.17,0.17,0.26,0.38,0.26,0.62c0,0.14-0.03,0.25-0.1,0.35c-0.07,0.1-0.16,0.14-0.26,0.14c-0.14,0-0.28-0.07-0.44-0.21 + c-0.98-0.83-1.87-1.39-2.67-1.71c-0.8-0.31-1.74-0.46-2.8-0.46c-2.19,0-3.89,0.72-5.1,2.17c-1.21,1.45-1.82,3.47-1.82,6.07 + c0,2.62,0.6,4.65,1.81,6.1c1.21,1.45,2.91,2.17,5.12,2.17c1.08,0,2.02-0.16,2.82-0.46c0.79-0.31,1.68-0.88,2.66-1.71 + c0.19-0.14,0.34-0.21,0.44-0.21c0.1,0,0.19,0.05,0.26,0.14c0.07,0.09,0.1,0.21,0.1,0.35c0,0.24-0.09,0.45-0.26,0.62 + c-0.71,0.72-1.59,1.29-2.65,1.71c-1.06,0.41-2.17,0.62-3.32,0.62C417.98,446.1,416.53,445.73,415.31,444.98z"/> + <path class="st108" d="M447.59,445.86c-0.1-0.11-0.14-0.25-0.14-0.43v-16.77h-6.33c-0.14,0-0.25-0.04-0.34-0.13 + c-0.09-0.09-0.13-0.21-0.13-0.36c0-0.14,0.04-0.25,0.13-0.35c0.09-0.09,0.2-0.14,0.34-0.14h13.72c0.12,0,0.23,0.05,0.34,0.14 + c0.1,0.09,0.16,0.21,0.16,0.35c0,0.16-0.05,0.28-0.16,0.36c-0.1,0.09-0.22,0.13-0.34,0.13h-6.3v16.77c0,0.17-0.05,0.31-0.14,0.43 + c-0.09,0.11-0.23,0.17-0.4,0.17C447.82,446.02,447.69,445.97,447.59,445.86z"/> + <path class="st108" d="M473.25,444.98c-1.2-0.75-2.12-1.83-2.76-3.23c-0.65-1.4-0.97-3.05-0.97-4.95c0-1.91,0.32-3.57,0.96-4.97 + c0.64-1.4,1.55-2.48,2.75-3.23c1.2-0.75,2.61-1.12,4.25-1.12c1.64,0,3.06,0.38,4.26,1.12c1.21,0.75,2.13,1.82,2.76,3.22 + c0.64,1.4,0.96,3.05,0.96,4.96c0,1.91-0.32,3.57-0.97,4.97c-0.65,1.4-1.57,2.48-2.76,3.23c-1.2,0.75-2.61,1.12-4.25,1.12 + C475.85,446.1,474.45,445.73,473.25,444.98z M482.51,442.87c1.19-1.45,1.78-3.48,1.78-6.1c0-2.62-0.59-4.65-1.77-6.08 + c-1.18-1.44-2.86-2.16-5.05-2.16c-2.15,0-3.82,0.72-5.01,2.16c-1.19,1.44-1.78,3.47-1.78,6.08c0,2.62,0.59,4.65,1.78,6.1 + c1.19,1.45,2.86,2.17,5.01,2.17C479.64,445.04,481.32,444.32,482.51,442.87z"/> + <path class="st108" d="M516.52,445.56c0,0.12-0.05,0.23-0.14,0.32c-0.09,0.09-0.21,0.14-0.35,0.14c-0.17,0-0.32-0.09-0.44-0.26 + l-3.51-5.71c-0.52-0.86-1.06-1.45-1.64-1.76c-0.58-0.31-1.37-0.46-2.39-0.46h-3.88v7.6c0,0.17-0.05,0.31-0.14,0.43 + c-0.1,0.11-0.22,0.17-0.38,0.17c-0.17,0-0.31-0.05-0.4-0.15c-0.09-0.1-0.14-0.25-0.14-0.44v-17.18c0-0.16,0.06-0.29,0.19-0.4 + c0.13-0.11,0.28-0.17,0.45-0.17h6.38c1.88,0,3.33,0.43,4.35,1.28c1.03,0.85,1.54,2.11,1.54,3.76c0,1.48-0.45,2.64-1.36,3.49 + c-0.91,0.84-2.18,1.33-3.81,1.45c0.4,0.14,0.76,0.37,1.1,0.7c0.34,0.33,0.68,0.77,1.02,1.32l3.46,5.61 + C516.49,445.38,516.52,445.47,516.52,445.56z M510.16,436.8c3.15,0,4.73-1.37,4.73-4.11c0-1.34-0.39-2.35-1.16-3.01 + c-0.78-0.66-1.96-0.99-3.57-0.99h-5.97v8.11H510.16z"/> + <path class="st108" d="M565.85,438.1c0.58,0.77,0.87,1.72,0.87,2.85c0,1.62-0.51,2.85-1.52,3.68c-1.02,0.84-2.47,1.25-4.37,1.25 + h-6.36c-0.17,0-0.32-0.06-0.45-0.18c-0.13-0.12-0.19-0.25-0.19-0.39v-17.08c0-0.16,0.06-0.29,0.19-0.4 + c0.13-0.11,0.28-0.17,0.45-0.17h6.07c1.84,0,3.26,0.41,4.26,1.23c1,0.82,1.5,2,1.5,3.55c0,1-0.25,1.85-0.76,2.54 + c-0.51,0.7-1.22,1.22-2.13,1.56C564.46,436.83,565.28,437.34,565.85,438.1z M554.91,436.13h5.5c1.55,0,2.73-0.33,3.54-0.98 + c0.81-0.65,1.21-1.6,1.21-2.84c0-2.41-1.58-3.62-4.75-3.62h-5.5V436.13z M564.41,443.96c0.78-0.62,1.17-1.58,1.17-2.87 + s-0.4-2.27-1.2-2.93c-0.8-0.66-1.99-1-3.58-1h-5.89v7.73h5.89C562.42,444.89,563.62,444.58,564.41,443.96z"/> + <path class="st108" d="M599.2,445.58c0,0.14-0.05,0.25-0.14,0.32c-0.09,0.08-0.21,0.12-0.35,0.12c-0.26,0-0.44-0.12-0.54-0.36 + l-2.09-4.81h-10.31l-2.12,4.81c-0.1,0.24-0.28,0.36-0.52,0.36c-0.19,0-0.34-0.06-0.44-0.18c-0.1-0.12-0.12-0.28-0.05-0.46 + l7.65-17.44c0.1-0.28,0.31-0.41,0.62-0.41c0.14,0,0.26,0.04,0.38,0.12c0.11,0.08,0.19,0.18,0.25,0.3l7.62,17.44 + C599.18,445.48,599.2,445.55,599.2,445.58z M586.2,439.82h9.4l-4.7-10.75L586.2,439.82z"/> + <path class="st108" d="M618.42,444.98c-1.22-0.75-2.16-1.83-2.82-3.23c-0.65-1.4-0.98-3.06-0.98-4.97c0-1.91,0.33-3.57,0.98-4.96 + c0.66-1.4,1.59-2.47,2.82-3.22c1.22-0.75,2.67-1.12,4.34-1.12c1.15,0,2.26,0.21,3.32,0.62c1.06,0.41,1.94,0.98,2.65,1.71 + c0.17,0.17,0.26,0.38,0.26,0.62c0,0.14-0.04,0.25-0.1,0.35c-0.07,0.1-0.16,0.14-0.26,0.14c-0.14,0-0.28-0.07-0.44-0.21 + c-0.98-0.83-1.87-1.39-2.67-1.71c-0.8-0.31-1.74-0.46-2.8-0.46c-2.19,0-3.89,0.72-5.1,2.17c-1.21,1.45-1.82,3.47-1.82,6.07 + c0,2.62,0.6,4.65,1.81,6.1c1.21,1.45,2.91,2.17,5.12,2.17c1.08,0,2.02-0.16,2.82-0.46c0.79-0.31,1.68-0.88,2.66-1.71 + c0.19-0.14,0.34-0.21,0.44-0.21c0.1,0,0.19,0.05,0.26,0.14c0.07,0.09,0.1,0.21,0.1,0.35c0,0.24-0.09,0.45-0.26,0.62 + c-0.71,0.72-1.59,1.29-2.65,1.71c-1.06,0.41-2.17,0.62-3.32,0.62C621.09,446.1,619.65,445.73,618.42,444.98z"/> + <path class="st108" d="M658.73,445.51c0,0.14-0.05,0.26-0.16,0.36c-0.1,0.1-0.22,0.15-0.36,0.15c-0.1,0-0.19-0.03-0.26-0.1 + l-10.59-8.81v8.32c0,0.17-0.05,0.31-0.14,0.43c-0.1,0.11-0.22,0.17-0.38,0.17c-0.17,0-0.31-0.06-0.4-0.17 + c-0.09-0.11-0.14-0.25-0.14-0.43v-17.29c0-0.17,0.05-0.31,0.14-0.43c0.09-0.11,0.23-0.17,0.4-0.17c0.16,0,0.28,0.06,0.38,0.17 + c0.09,0.11,0.14,0.25,0.14,0.43v8.09l10.03-8.53c0.12-0.09,0.23-0.13,0.34-0.13c0.14,0,0.25,0.05,0.35,0.14 + c0.09,0.09,0.14,0.21,0.14,0.35c0,0.15-0.07,0.28-0.21,0.39l-9.61,8.19l10.1,8.42C658.65,445.19,658.73,445.33,658.73,445.51z"/> + <path class="st108" d="M688.02,436.86c0.09,0.09,0.14,0.23,0.14,0.4v7.21c0,0.09-0.03,0.17-0.09,0.26 + c-0.06,0.09-0.13,0.16-0.22,0.23c-0.71,0.35-1.58,0.62-2.62,0.83c-1.04,0.21-2.11,0.31-3.22,0.31c-1.74,0-3.23-0.37-4.48-1.1 + c-1.25-0.73-2.21-1.8-2.87-3.2c-0.66-1.4-1-3.08-1-5.03c0-1.91,0.33-3.57,0.98-4.96c0.66-1.4,1.6-2.47,2.83-3.22 + c1.23-0.75,2.68-1.12,4.35-1.12c1.21,0,2.34,0.21,3.41,0.62c1.07,0.41,1.94,0.98,2.61,1.71c0.17,0.22,0.26,0.43,0.26,0.62 + c0,0.14-0.03,0.25-0.1,0.35c-0.07,0.1-0.16,0.14-0.29,0.14c-0.14,0-0.28-0.07-0.44-0.21c-0.98-0.83-1.87-1.39-2.66-1.71 + c-0.79-0.31-1.72-0.46-2.79-0.46c-2.22,0-3.94,0.72-5.16,2.16c-1.21,1.44-1.82,3.47-1.82,6.08c0,2.67,0.62,4.72,1.85,6.15 + c1.23,1.43,3,2.14,5.31,2.14c0.95,0,1.87-0.09,2.78-0.26c0.9-0.17,1.69-0.41,2.36-0.72v-6.33h-4.55c-0.19,0-0.34-0.05-0.44-0.16 + c-0.1-0.1-0.16-0.22-0.16-0.36c0-0.15,0.05-0.28,0.16-0.37c0.1-0.09,0.25-0.14,0.44-0.14h5.04 + C687.8,436.72,687.92,436.77,688.02,436.86z"/> + <path class="st108" d="M719.76,445.56c0,0.12-0.05,0.23-0.14,0.32c-0.09,0.09-0.21,0.14-0.35,0.14c-0.17,0-0.32-0.09-0.44-0.26 + l-3.51-5.71c-0.52-0.86-1.06-1.45-1.64-1.76c-0.58-0.31-1.37-0.46-2.39-0.46h-3.88v7.6c0,0.17-0.05,0.31-0.14,0.43 + c-0.09,0.11-0.22,0.17-0.38,0.17c-0.17,0-0.31-0.05-0.4-0.15c-0.09-0.1-0.14-0.25-0.14-0.44v-17.18c0-0.16,0.06-0.29,0.19-0.4 + c0.13-0.11,0.28-0.17,0.45-0.17h6.38c1.88,0,3.33,0.43,4.35,1.28c1.02,0.85,1.54,2.11,1.54,3.76c0,1.48-0.45,2.64-1.36,3.49 + c-0.9,0.84-2.17,1.33-3.81,1.45c0.4,0.14,0.76,0.37,1.1,0.7c0.34,0.33,0.68,0.77,1.02,1.32l3.46,5.61 + C719.73,445.38,719.76,445.47,719.76,445.56z M713.4,436.8c3.15,0,4.73-1.37,4.73-4.11c0-1.34-0.39-2.35-1.16-3.01 + c-0.77-0.66-1.96-0.99-3.57-0.99h-5.97v8.11H713.4z"/> + <path class="st108" d="M740.13,444.98c-1.2-0.75-2.12-1.83-2.76-3.23c-0.65-1.4-0.97-3.05-0.97-4.95c0-1.91,0.32-3.57,0.96-4.97 + c0.64-1.4,1.55-2.48,2.75-3.23c1.2-0.75,2.61-1.12,4.25-1.12c1.64,0,3.06,0.38,4.26,1.12c1.21,0.75,2.13,1.82,2.76,3.22 + c0.64,1.4,0.96,3.05,0.96,4.96c0,1.91-0.32,3.57-0.97,4.97c-0.65,1.4-1.57,2.48-2.76,3.23c-1.2,0.75-2.61,1.12-4.25,1.12 + C742.74,446.1,741.33,445.73,740.13,444.98z M749.4,442.87c1.19-1.45,1.78-3.48,1.78-6.1c0-2.62-0.59-4.65-1.77-6.08 + c-1.18-1.44-2.86-2.16-5.05-2.16c-2.15,0-3.82,0.72-5.01,2.16c-1.19,1.44-1.78,3.47-1.78,6.08c0,2.62,0.59,4.65,1.78,6.1 + c1.19,1.45,2.86,2.17,5.01,2.17C746.53,445.04,748.21,444.32,749.4,442.87z"/> + <path class="st108" d="M771.61,444.31c-1.16-1.2-1.74-2.97-1.74-5.31v-10.85c0-0.19,0.05-0.34,0.14-0.44 + c0.09-0.1,0.23-0.16,0.4-0.16c0.15,0,0.28,0.06,0.37,0.17c0.09,0.11,0.14,0.25,0.14,0.43v11.03c0,3.91,1.95,5.87,5.84,5.87 + c1.91,0,3.36-0.49,4.34-1.47c0.98-0.98,1.47-2.45,1.47-4.39v-11.03c0-0.17,0.06-0.31,0.17-0.43c0.11-0.11,0.24-0.17,0.37-0.17 + c0.16,0,0.28,0.06,0.39,0.17c0.1,0.11,0.16,0.25,0.16,0.43V439c0,2.34-0.59,4.11-1.76,5.31c-1.17,1.2-2.89,1.8-5.14,1.8 + C774.49,446.1,772.77,445.5,771.61,444.31z"/> + <path class="st108" d="M815.85,428.14v17.29c0,0.17-0.05,0.31-0.14,0.43c-0.09,0.11-0.23,0.17-0.4,0.17 + c-0.12,0-0.22-0.03-0.28-0.08c-0.07-0.05-0.15-0.14-0.23-0.26l-11.89-16.17v15.92c0,0.17-0.05,0.31-0.14,0.43 + c-0.09,0.11-0.22,0.17-0.38,0.17c-0.33,0-0.49-0.2-0.49-0.59v-17.29c0-0.17,0.05-0.31,0.14-0.43c0.09-0.11,0.24-0.17,0.43-0.17 + c0.12,0,0.21,0.02,0.27,0.07c0.06,0.04,0.14,0.13,0.25,0.25l11.86,16.17v-15.89c0-0.17,0.05-0.31,0.14-0.43 + c0.09-0.11,0.22-0.17,0.38-0.17C815.69,427.55,815.85,427.75,815.85,428.14z"/> + <path class="st108" d="M834.44,445.71c-0.13-0.12-0.19-0.25-0.19-0.39v-17.08c0-0.16,0.06-0.29,0.19-0.4 + c0.13-0.11,0.28-0.17,0.45-0.17h4.96c2.84,0,5.04,0.78,6.59,2.34c1.55,1.56,2.33,3.81,2.33,6.76c0,2.93-0.78,5.18-2.33,6.76 + c-1.55,1.58-3.75,2.36-6.59,2.36h-4.96C834.72,445.89,834.57,445.83,834.44,445.71z M839.83,444.91c2.65,0,4.61-0.7,5.88-2.09 + c1.27-1.39,1.9-3.41,1.9-6.05c0-5.41-2.59-8.11-7.78-8.11h-4.52v16.25H839.83z"/> + </g> + <g class="st1"> + <path class="st108" d="M419.81,553.09h7.2v0.58h-7.2v4.88c0,0.1-0.03,0.18-0.08,0.25c-0.06,0.07-0.13,0.1-0.24,0.1 + c-0.1,0-0.18-0.03-0.24-0.1c-0.06-0.07-0.08-0.15-0.08-0.25v-10.17c0-0.1,0.03-0.18,0.08-0.25c0.06-0.07,0.13-0.1,0.24-0.1 + c0.1,0,0.18,0.03,0.24,0.1c0.06,0.07,0.08,0.15,0.08,0.25V553.09z M427.59,548.13c0.06,0.07,0.08,0.15,0.08,0.25v10.17 + c0,0.1-0.03,0.18-0.08,0.25c-0.06,0.07-0.13,0.1-0.24,0.1c-0.1,0-0.18-0.03-0.24-0.1c-0.06-0.07-0.08-0.15-0.08-0.25v-10.17 + c0-0.1,0.03-0.18,0.08-0.25c0.06-0.07,0.13-0.1,0.24-0.1C427.45,548.03,427.53,548.07,427.59,548.13z"/> + <path class="st108" d="M435.23,558.8c-0.06-0.07-0.08-0.15-0.08-0.25v-10.17c0-0.1,0.03-0.18,0.08-0.25 + c0.05-0.07,0.13-0.1,0.24-0.1c0.09,0,0.16,0.03,0.22,0.1c0.06,0.07,0.08,0.15,0.08,0.25v10.17c0,0.1-0.03,0.18-0.08,0.25 + c-0.06,0.07-0.13,0.1-0.22,0.1C435.36,558.9,435.28,558.86,435.23,558.8z"/> + <path class="st108" d="M451.25,553.51c0.06,0.06,0.08,0.13,0.08,0.24v4.24c0,0.05-0.02,0.1-0.05,0.15 + c-0.04,0.05-0.08,0.1-0.13,0.14c-0.42,0.2-0.93,0.36-1.54,0.49c-0.61,0.12-1.24,0.18-1.89,0.18c-1.02,0-1.9-0.21-2.64-0.65 + c-0.74-0.43-1.3-1.06-1.69-1.88c-0.39-0.83-0.59-1.81-0.59-2.96c0-1.12,0.19-2.1,0.58-2.92c0.38-0.82,0.94-1.45,1.66-1.89 + c0.72-0.44,1.58-0.66,2.56-0.66c0.71,0,1.38,0.12,2.01,0.36c0.63,0.24,1.14,0.58,1.54,1c0.1,0.13,0.15,0.25,0.15,0.36 + c0,0.08-0.02,0.15-0.06,0.21c-0.04,0.06-0.1,0.08-0.17,0.08c-0.08,0-0.17-0.04-0.26-0.12c-0.58-0.49-1.1-0.82-1.56-1 + c-0.47-0.18-1.01-0.27-1.64-0.27c-1.31,0-2.32,0.42-3.03,1.27c-0.71,0.85-1.07,2.04-1.07,3.58c0,1.57,0.36,2.78,1.09,3.62 + c0.72,0.84,1.76,1.26,3.12,1.26c0.56,0,1.1-0.05,1.63-0.15c0.53-0.1,1-0.24,1.39-0.42v-3.72h-2.67c-0.11,0-0.2-0.03-0.26-0.09 + c-0.06-0.06-0.09-0.13-0.09-0.21c0-0.09,0.03-0.16,0.09-0.22c0.06-0.06,0.15-0.08,0.26-0.08h2.96 + C451.12,553.43,451.19,553.46,451.25,553.51z"/> + <path class="st108" d="M459.32,553.09h7.2v0.58h-7.2v4.88c0,0.1-0.03,0.18-0.08,0.25c-0.06,0.07-0.13,0.1-0.24,0.1 + c-0.1,0-0.18-0.03-0.24-0.1c-0.06-0.07-0.08-0.15-0.08-0.25v-10.17c0-0.1,0.03-0.18,0.08-0.25c0.06-0.07,0.13-0.1,0.24-0.1 + c0.1,0,0.18,0.03,0.24,0.1c0.06,0.07,0.08,0.15,0.08,0.25V553.09z M467.09,548.13c0.06,0.07,0.08,0.15,0.08,0.25v10.17 + c0,0.1-0.03,0.18-0.08,0.25c-0.06,0.07-0.13,0.1-0.24,0.1c-0.1,0-0.18-0.03-0.24-0.1c-0.06-0.07-0.08-0.15-0.08-0.25v-10.17 + c0-0.1,0.03-0.18,0.08-0.25c0.06-0.07,0.13-0.1,0.24-0.1C466.96,548.03,467.04,548.07,467.09,548.13z"/> + <path class="st108" d="M490.59,561.22c0.03,0.06,0.05,0.12,0.05,0.17c0,0.07-0.02,0.13-0.07,0.17c-0.05,0.04-0.1,0.06-0.17,0.06 + c-0.16,0-0.3-0.1-0.43-0.29l-0.87-1.38c-0.19-0.32-0.46-0.57-0.79-0.74c-0.33-0.17-0.71-0.26-1.12-0.26 + c-0.95,0-1.78-0.22-2.48-0.66c-0.7-0.44-1.25-1.07-1.63-1.9c-0.38-0.83-0.57-1.8-0.57-2.91c0-1.13,0.19-2.1,0.56-2.93 + c0.38-0.83,0.91-1.46,1.62-1.9c0.7-0.44,1.54-0.66,2.5-0.66c0.96,0,1.79,0.22,2.5,0.66c0.7,0.44,1.25,1.07,1.63,1.89 + c0.38,0.82,0.57,1.79,0.57,2.92c0,1.38-0.28,2.53-0.85,3.46c-0.57,0.93-1.36,1.54-2.39,1.85c0.21,0.07,0.4,0.19,0.57,0.36 + c0.17,0.17,0.35,0.41,0.54,0.73L490.59,561.22z M484.24,557.04c0.7,0.85,1.68,1.28,2.95,1.28c1.28,0,2.26-0.43,2.96-1.28 + c0.7-0.85,1.05-2.05,1.05-3.59c0-1.54-0.35-2.73-1.04-3.58c-0.69-0.85-1.68-1.27-2.97-1.27c-1.27,0-2.25,0.42-2.95,1.27 + c-0.7,0.85-1.05,2.04-1.05,3.58C483.19,555,483.54,556.19,484.24,557.04z"/> + <path class="st108" d="M499.87,557.89c-0.68-0.7-1.03-1.75-1.03-3.12v-6.38c0-0.11,0.03-0.2,0.08-0.26 + c0.06-0.06,0.13-0.09,0.24-0.09c0.09,0,0.16,0.03,0.22,0.1c0.06,0.07,0.08,0.15,0.08,0.25v6.49c0,2.3,1.14,3.45,3.43,3.45 + c1.12,0,1.98-0.29,2.55-0.87c0.58-0.58,0.87-1.44,0.87-2.58v-6.49c0-0.1,0.03-0.18,0.1-0.25c0.07-0.07,0.14-0.1,0.22-0.1 + c0.09,0,0.17,0.03,0.23,0.1c0.06,0.07,0.09,0.15,0.09,0.25v6.38c0,1.38-0.34,2.42-1.03,3.12c-0.69,0.7-1.7,1.06-3.02,1.06 + C501.56,558.94,500.55,558.59,499.87,557.89z"/> + <path class="st108" d="M523.11,558.64c0,0.08-0.03,0.14-0.08,0.19c-0.06,0.04-0.12,0.07-0.21,0.07c-0.15,0-0.26-0.07-0.32-0.21 + l-1.23-2.83h-6.06l-1.25,2.83c-0.06,0.14-0.16,0.21-0.3,0.21c-0.11,0-0.2-0.04-0.26-0.11c-0.06-0.07-0.07-0.16-0.03-0.27 + l4.5-10.26c0.06-0.16,0.18-0.24,0.36-0.24c0.08,0,0.15,0.02,0.22,0.07c0.07,0.05,0.11,0.1,0.14,0.17l4.48,10.26 + C523.1,558.58,523.11,558.62,523.11,558.64z M515.47,555.25H521l-2.77-6.32L515.47,555.25z"/> + <path class="st108" d="M529.78,558.73c-0.07-0.06-0.11-0.13-0.11-0.2v-10.15c0-0.1,0.03-0.18,0.08-0.25 + c0.05-0.07,0.13-0.1,0.24-0.1c0.2,0,0.3,0.12,0.3,0.35v9.86h5.49c0.07,0,0.13,0.03,0.19,0.08c0.06,0.05,0.08,0.12,0.08,0.21 + c0,0.08-0.03,0.15-0.08,0.21c-0.06,0.06-0.12,0.08-0.19,0.08h-5.77C529.93,558.82,529.85,558.79,529.78,558.73z"/> + <path class="st108" d="M542.33,558.8c-0.06-0.07-0.08-0.15-0.08-0.25v-10.17c0-0.1,0.03-0.18,0.08-0.25 + c0.05-0.07,0.13-0.1,0.24-0.1c0.09,0,0.16,0.03,0.22,0.1c0.06,0.07,0.08,0.15,0.08,0.25v10.17c0,0.1-0.03,0.18-0.08,0.25 + c-0.06,0.07-0.13,0.1-0.22,0.1C542.46,558.9,542.38,558.86,542.33,558.8z"/> + <path class="st108" d="M553.08,558.8c-0.06-0.07-0.08-0.15-0.08-0.25v-9.86h-3.72c-0.08,0-0.15-0.02-0.2-0.08 + c-0.05-0.05-0.08-0.12-0.08-0.21c0-0.08,0.03-0.15,0.08-0.21c0.05-0.06,0.12-0.08,0.2-0.08h8.07c0.07,0,0.14,0.03,0.2,0.08 + c0.06,0.06,0.09,0.12,0.09,0.21c0,0.09-0.03,0.16-0.09,0.21c-0.06,0.05-0.13,0.08-0.2,0.08h-3.71v9.86c0,0.1-0.03,0.18-0.08,0.25 + c-0.06,0.07-0.13,0.1-0.24,0.1C553.22,558.9,553.14,558.86,553.08,558.8z"/> + <path class="st108" d="M570.78,548.05c0.07,0,0.13,0.03,0.19,0.09c0.06,0.06,0.08,0.13,0.08,0.2c0,0.06-0.03,0.13-0.08,0.21 + l-3.89,5.08v4.92c0,0.1-0.03,0.18-0.08,0.25c-0.06,0.07-0.13,0.1-0.24,0.1c-0.1,0-0.18-0.03-0.24-0.1 + c-0.06-0.07-0.08-0.15-0.08-0.25v-4.94l-3.89-5.06c-0.04-0.05-0.06-0.12-0.06-0.2c0-0.08,0.03-0.15,0.08-0.21 + c0.06-0.06,0.12-0.09,0.19-0.09c0.09,0,0.17,0.05,0.24,0.14l3.77,4.91l3.75-4.91C570.62,548.09,570.7,548.05,570.78,548.05z"/> + <path class="st108" d="M585.62,558.71c-0.08-0.07-0.11-0.15-0.11-0.23v-10.04c0-0.09,0.04-0.17,0.11-0.24 + c0.08-0.07,0.16-0.1,0.27-0.1h2.92c1.67,0,2.96,0.46,3.87,1.38c0.91,0.92,1.37,2.24,1.37,3.97c0,1.72-0.46,3.05-1.37,3.97 + c-0.91,0.93-2.2,1.39-3.87,1.39h-2.92C585.78,558.82,585.69,558.79,585.62,558.71z M588.79,558.24c1.56,0,2.71-0.41,3.46-1.23 + c0.74-0.82,1.12-2.01,1.12-3.56c0-3.18-1.53-4.77-4.57-4.77h-2.66v9.56H588.79z"/> + <path class="st108" d="M601.19,558.71c-0.08-0.07-0.11-0.15-0.11-0.23v-10.04c0-0.09,0.04-0.17,0.11-0.24 + c0.08-0.07,0.16-0.1,0.27-0.1h5.85c0.08,0,0.15,0.03,0.2,0.08c0.05,0.06,0.08,0.13,0.08,0.22c0,0.08-0.03,0.15-0.08,0.21 + c-0.05,0.06-0.12,0.08-0.2,0.08h-5.59v4.39H607c0.08,0,0.15,0.03,0.2,0.08c0.05,0.05,0.08,0.12,0.08,0.21 + c0,0.09-0.03,0.16-0.08,0.22c-0.05,0.06-0.12,0.08-0.2,0.08h-5.29v4.54h5.59c0.08,0,0.15,0.03,0.2,0.08 + c0.05,0.05,0.08,0.12,0.08,0.21c0,0.09-0.03,0.17-0.08,0.22c-0.05,0.06-0.12,0.08-0.2,0.08h-5.85 + C601.36,558.82,601.27,558.79,601.19,558.71z"/> + <path class="st108" d="M615.26,558.57c-0.69-0.25-1.24-0.58-1.63-1c-0.09-0.09-0.14-0.21-0.14-0.36c0-0.08,0.02-0.15,0.06-0.2 + c0.04-0.06,0.09-0.08,0.15-0.08c0.07,0,0.16,0.04,0.27,0.12c1,0.85,2.15,1.28,3.43,1.28c0.98,0,1.74-0.2,2.27-0.6 + c0.53-0.4,0.8-0.97,0.8-1.71c0-0.42-0.13-0.77-0.39-1.03c-0.26-0.26-0.59-0.46-0.97-0.6c-0.39-0.14-0.9-0.28-1.55-0.43 + c-0.88-0.21-1.56-0.4-2.02-0.56c-0.47-0.16-0.88-0.44-1.25-0.83c-0.37-0.39-0.55-0.92-0.55-1.6c0-0.59,0.15-1.11,0.46-1.56 + c0.31-0.45,0.75-0.8,1.31-1.04c0.56-0.24,1.21-0.36,1.94-0.36c0.7,0,1.36,0.12,1.98,0.36c0.62,0.24,1.13,0.58,1.51,1 + c0.1,0.11,0.15,0.23,0.15,0.36c0,0.08-0.02,0.15-0.07,0.21c-0.05,0.06-0.1,0.08-0.16,0.08c-0.09,0-0.18-0.04-0.26-0.12 + c-0.58-0.5-1.09-0.83-1.55-1.01c-0.46-0.18-0.99-0.27-1.61-0.27c-0.96,0-1.71,0.21-2.25,0.62c-0.54,0.41-0.8,1-0.8,1.75 + c0,0.45,0.12,0.81,0.36,1.09c0.24,0.28,0.54,0.51,0.91,0.67c0.37,0.16,0.83,0.31,1.39,0.46l0.65,0.15 + c0.73,0.16,1.32,0.33,1.78,0.49c0.46,0.17,0.84,0.43,1.16,0.78c0.32,0.36,0.48,0.83,0.48,1.43c0,0.57-0.16,1.07-0.46,1.5 + c-0.31,0.44-0.74,0.77-1.31,1.02c-0.56,0.24-1.21,0.36-1.94,0.36C616.67,558.94,615.96,558.82,615.26,558.57z"/> + <path class="st108" d="M627.97,558.8c-0.06-0.07-0.08-0.15-0.08-0.25v-10.17c0-0.1,0.03-0.18,0.08-0.25 + c0.05-0.07,0.13-0.1,0.24-0.1c0.09,0,0.16,0.03,0.22,0.1c0.06,0.07,0.08,0.15,0.08,0.25v10.17c0,0.1-0.03,0.18-0.08,0.25 + c-0.06,0.07-0.13,0.1-0.22,0.1C628.1,558.9,628.02,558.86,627.97,558.8z"/> + <path class="st108" d="M643.98,553.51c0.06,0.06,0.08,0.13,0.08,0.24v4.24c0,0.05-0.02,0.1-0.05,0.15s-0.08,0.1-0.13,0.14 + c-0.42,0.2-0.93,0.36-1.54,0.49c-0.61,0.12-1.24,0.18-1.89,0.18c-1.02,0-1.9-0.21-2.64-0.65c-0.74-0.43-1.3-1.06-1.69-1.88 + c-0.39-0.83-0.58-1.81-0.58-2.96c0-1.12,0.19-2.1,0.58-2.92c0.38-0.82,0.94-1.45,1.66-1.89c0.72-0.44,1.58-0.66,2.56-0.66 + c0.71,0,1.38,0.12,2.01,0.36c0.63,0.24,1.14,0.58,1.54,1c0.1,0.13,0.15,0.25,0.15,0.36c0,0.08-0.02,0.15-0.06,0.21 + c-0.04,0.06-0.1,0.08-0.17,0.08c-0.08,0-0.17-0.04-0.26-0.12c-0.58-0.49-1.1-0.82-1.56-1c-0.47-0.18-1.01-0.27-1.64-0.27 + c-1.31,0-2.32,0.42-3.03,1.27c-0.71,0.85-1.07,2.04-1.07,3.58c0,1.57,0.36,2.78,1.09,3.62c0.72,0.84,1.76,1.26,3.12,1.26 + c0.56,0,1.1-0.05,1.63-0.15c0.53-0.1,1-0.24,1.39-0.42v-3.72h-2.67c-0.11,0-0.2-0.03-0.26-0.09c-0.06-0.06-0.09-0.13-0.09-0.21 + c0-0.09,0.03-0.16,0.09-0.22c0.06-0.06,0.15-0.08,0.26-0.08h2.96C643.85,553.43,643.93,553.46,643.98,553.51z"/> + <path class="st108" d="M659.63,548.38v10.17c0,0.1-0.03,0.18-0.08,0.25c-0.06,0.07-0.13,0.1-0.24,0.1c-0.07,0-0.13-0.02-0.17-0.05 + c-0.04-0.03-0.09-0.08-0.14-0.15l-6.99-9.51v9.36c0,0.1-0.03,0.18-0.08,0.25c-0.06,0.07-0.13,0.1-0.22,0.1 + c-0.19,0-0.29-0.12-0.29-0.35v-10.17c0-0.1,0.03-0.18,0.08-0.25c0.06-0.07,0.14-0.1,0.25-0.1c0.07,0,0.12,0.01,0.16,0.04 + c0.04,0.03,0.08,0.07,0.14,0.14l6.97,9.51v-9.35c0-0.1,0.03-0.18,0.08-0.25c0.06-0.07,0.13-0.1,0.22-0.1 + C659.53,548.03,659.63,548.15,659.63,548.38z"/> + <path class="st108" d="M675.51,558.71c-0.08-0.07-0.11-0.15-0.11-0.23v-10.04c0-0.09,0.04-0.17,0.11-0.24 + c0.08-0.07,0.16-0.1,0.27-0.1h5.85c0.08,0,0.15,0.03,0.2,0.08c0.05,0.06,0.08,0.13,0.08,0.22c0,0.08-0.03,0.15-0.08,0.21 + c-0.05,0.06-0.12,0.08-0.2,0.08h-5.59v4.39h5.29c0.08,0,0.15,0.03,0.2,0.08c0.05,0.05,0.08,0.12,0.08,0.21 + c0,0.09-0.03,0.16-0.08,0.22c-0.05,0.06-0.12,0.08-0.2,0.08h-5.29v4.54h5.59c0.08,0,0.15,0.03,0.2,0.08 + c0.05,0.05,0.08,0.12,0.08,0.21c0,0.09-0.03,0.17-0.08,0.22c-0.05,0.06-0.12,0.08-0.2,0.08h-5.85 + C675.68,558.82,675.59,558.79,675.51,558.71z"/> + <path class="st108" d="M688.82,558.73c-0.07-0.06-0.11-0.13-0.11-0.2v-10.15c0-0.1,0.03-0.18,0.08-0.25 + c0.06-0.07,0.13-0.1,0.24-0.1c0.2,0,0.3,0.12,0.3,0.35v9.86h5.49c0.07,0,0.13,0.03,0.19,0.08c0.06,0.05,0.08,0.12,0.08,0.21 + c0,0.08-0.03,0.15-0.08,0.21c-0.06,0.06-0.12,0.08-0.19,0.08h-5.77C688.96,558.82,688.89,558.79,688.82,558.73z"/> + <path class="st108" d="M701.39,558.71c-0.08-0.07-0.11-0.15-0.11-0.23v-10.04c0-0.09,0.04-0.17,0.11-0.24 + c0.08-0.07,0.17-0.1,0.27-0.1h5.85c0.08,0,0.15,0.03,0.2,0.08c0.05,0.06,0.08,0.13,0.08,0.22c0,0.08-0.03,0.15-0.08,0.21 + c-0.05,0.06-0.12,0.08-0.2,0.08h-5.59v4.39h5.29c0.08,0,0.15,0.03,0.2,0.08c0.05,0.05,0.08,0.12,0.08,0.21 + c0,0.09-0.03,0.16-0.08,0.22c-0.05,0.06-0.12,0.08-0.2,0.08h-5.29v4.54h5.59c0.08,0,0.15,0.03,0.2,0.08 + c0.05,0.05,0.08,0.12,0.08,0.21c0,0.09-0.03,0.17-0.08,0.22c-0.05,0.06-0.12,0.08-0.2,0.08h-5.85 + C701.55,558.82,701.47,558.79,701.39,558.71z"/> + <path class="st108" d="M724.35,548.13c0.06,0.07,0.08,0.15,0.08,0.25v10.15c0,0.24-0.11,0.37-0.33,0.37 + c-0.18,0-0.27-0.12-0.27-0.37v-9.09l-3.92,7.58c-0.04,0.08-0.09,0.14-0.16,0.19c-0.07,0.05-0.14,0.07-0.22,0.07 + c-0.17,0-0.3-0.09-0.38-0.26l-3.95-7.52v9.03c0,0.24-0.1,0.37-0.3,0.37c-0.2,0-0.3-0.12-0.3-0.37v-10.15 + c0-0.1,0.03-0.18,0.08-0.25c0.05-0.07,0.14-0.1,0.25-0.1c0.06,0,0.12,0.02,0.17,0.05c0.05,0.04,0.1,0.1,0.15,0.21l4.29,8.25 + l4.24-8.25c0.05-0.1,0.1-0.17,0.15-0.21c0.05-0.04,0.11-0.05,0.18-0.05C724.21,548.03,724.29,548.07,724.35,548.13z"/> + <path class="st108" d="M732.02,558.71c-0.08-0.07-0.11-0.15-0.11-0.23v-10.04c0-0.09,0.04-0.17,0.11-0.24 + c0.08-0.07,0.17-0.1,0.27-0.1h5.85c0.08,0,0.15,0.03,0.2,0.08c0.05,0.06,0.08,0.13,0.08,0.22c0,0.08-0.03,0.15-0.08,0.21 + c-0.05,0.06-0.12,0.08-0.2,0.08h-5.59v4.39h5.29c0.08,0,0.15,0.03,0.2,0.08c0.05,0.05,0.08,0.12,0.08,0.21 + c0,0.09-0.03,0.16-0.08,0.22c-0.05,0.06-0.12,0.08-0.2,0.08h-5.29v4.54h5.59c0.08,0,0.15,0.03,0.2,0.08 + c0.05,0.05,0.08,0.12,0.08,0.21c0,0.09-0.03,0.17-0.08,0.22c-0.05,0.06-0.12,0.08-0.2,0.08h-5.85 + C732.19,558.82,732.1,558.79,732.02,558.71z"/> + <path class="st108" d="M753.43,548.38v10.17c0,0.1-0.03,0.18-0.08,0.25c-0.06,0.07-0.13,0.1-0.24,0.1c-0.07,0-0.13-0.02-0.17-0.05 + c-0.04-0.03-0.09-0.08-0.14-0.15l-6.99-9.51v9.36c0,0.1-0.03,0.18-0.08,0.25c-0.06,0.07-0.13,0.1-0.22,0.1 + c-0.19,0-0.29-0.12-0.29-0.35v-10.17c0-0.1,0.03-0.18,0.08-0.25c0.05-0.07,0.14-0.1,0.25-0.1c0.07,0,0.12,0.01,0.16,0.04 + c0.04,0.03,0.08,0.07,0.14,0.14l6.97,9.51v-9.35c0-0.1,0.03-0.18,0.08-0.25c0.06-0.07,0.13-0.1,0.22-0.1 + C753.33,548.03,753.43,548.15,753.43,548.38z"/> + <path class="st108" d="M763.65,558.8c-0.06-0.07-0.08-0.15-0.08-0.25v-9.86h-3.72c-0.08,0-0.15-0.02-0.2-0.08 + c-0.05-0.05-0.08-0.12-0.08-0.21c0-0.08,0.03-0.15,0.08-0.21c0.05-0.06,0.12-0.08,0.2-0.08h8.07c0.07,0,0.14,0.03,0.2,0.08 + c0.06,0.06,0.09,0.12,0.09,0.21c0,0.09-0.03,0.16-0.09,0.21c-0.06,0.05-0.13,0.08-0.2,0.08h-3.71v9.86c0,0.1-0.03,0.18-0.08,0.25 + c-0.06,0.07-0.13,0.1-0.24,0.1C763.78,558.9,763.7,558.86,763.65,558.8z"/> + <path class="st108" d="M774.97,558.57c-0.69-0.25-1.24-0.58-1.63-1c-0.09-0.09-0.14-0.21-0.14-0.36c0-0.08,0.02-0.15,0.06-0.2 + c0.04-0.06,0.09-0.08,0.15-0.08c0.07,0,0.16,0.04,0.27,0.12c1,0.85,2.15,1.28,3.43,1.28c0.98,0,1.74-0.2,2.27-0.6 + c0.53-0.4,0.8-0.97,0.8-1.71c0-0.42-0.13-0.77-0.39-1.03c-0.26-0.26-0.59-0.46-0.97-0.6c-0.39-0.14-0.9-0.28-1.55-0.43 + c-0.88-0.21-1.56-0.4-2.02-0.56c-0.47-0.16-0.88-0.44-1.25-0.83c-0.37-0.39-0.55-0.92-0.55-1.6c0-0.59,0.15-1.11,0.46-1.56 + c0.31-0.45,0.75-0.8,1.31-1.04c0.56-0.24,1.21-0.36,1.94-0.36c0.7,0,1.36,0.12,1.98,0.36c0.62,0.24,1.13,0.58,1.51,1 + c0.1,0.11,0.15,0.23,0.15,0.36c0,0.08-0.02,0.15-0.07,0.21c-0.05,0.06-0.1,0.08-0.16,0.08c-0.09,0-0.18-0.04-0.26-0.12 + c-0.58-0.5-1.09-0.83-1.55-1.01c-0.46-0.18-0.99-0.27-1.61-0.27c-0.96,0-1.71,0.21-2.25,0.62c-0.54,0.41-0.8,1-0.8,1.75 + c0,0.45,0.12,0.81,0.36,1.09c0.24,0.28,0.54,0.51,0.91,0.67c0.37,0.16,0.83,0.31,1.39,0.46l0.65,0.15 + c0.73,0.16,1.32,0.33,1.78,0.49c0.46,0.17,0.84,0.43,1.16,0.78c0.32,0.36,0.48,0.83,0.48,1.43c0,0.57-0.16,1.07-0.46,1.5 + c-0.31,0.44-0.74,0.77-1.31,1.02c-0.56,0.24-1.21,0.36-1.94,0.36C776.38,558.94,775.66,558.82,774.97,558.57z"/> + </g> +</g> +</svg> diff --git a/public/img/patrn1.png b/public/img/patrn1.png new file mode 100644 index 0000000..db9b76c Binary files /dev/null and b/public/img/patrn1.png differ diff --git a/public/img/portfolio/1.jpg b/public/img/portfolio/1.jpg new file mode 100644 index 0000000..2c19374 Binary files /dev/null and b/public/img/portfolio/1.jpg differ diff --git a/public/img/portfolio/2.jpg b/public/img/portfolio/2.jpg new file mode 100644 index 0000000..8b6abbb Binary files /dev/null and b/public/img/portfolio/2.jpg differ diff --git a/public/img/portfolio/3.jpg b/public/img/portfolio/3.jpg new file mode 100644 index 0000000..46006dd Binary files /dev/null and b/public/img/portfolio/3.jpg differ diff --git a/public/img/portfolio/4.jpg b/public/img/portfolio/4.jpg new file mode 100644 index 0000000..1752385 Binary files /dev/null and b/public/img/portfolio/4.jpg differ diff --git a/public/img/portfolio/5.jpg b/public/img/portfolio/5.jpg new file mode 100644 index 0000000..79285ed Binary files /dev/null and b/public/img/portfolio/5.jpg differ diff --git a/public/img/portfolio/6.jpg b/public/img/portfolio/6.jpg new file mode 100644 index 0000000..d5c37ea Binary files /dev/null and b/public/img/portfolio/6.jpg differ diff --git a/public/img/portfolio/7.jpg b/public/img/portfolio/7.jpg new file mode 100644 index 0000000..cb7cfc7 Binary files /dev/null and b/public/img/portfolio/7.jpg differ diff --git a/public/img/portfolio/cr/1.jpg b/public/img/portfolio/cr/1.jpg new file mode 100644 index 0000000..5320090 Binary files /dev/null and b/public/img/portfolio/cr/1.jpg differ diff --git a/public/img/portfolio/cr/2.jpg b/public/img/portfolio/cr/2.jpg new file mode 100644 index 0000000..20ce315 Binary files /dev/null and b/public/img/portfolio/cr/2.jpg differ diff --git a/public/img/portfolio/cr/3.jpg b/public/img/portfolio/cr/3.jpg new file mode 100644 index 0000000..442cca9 Binary files /dev/null and b/public/img/portfolio/cr/3.jpg differ diff --git a/public/img/portfolio/cr/4.jpg b/public/img/portfolio/cr/4.jpg new file mode 100644 index 0000000..95acc54 Binary files /dev/null and b/public/img/portfolio/cr/4.jpg differ diff --git a/public/img/portfolio/curs/1.jpg b/public/img/portfolio/curs/1.jpg new file mode 100644 index 0000000..c0c5ccb Binary files /dev/null and b/public/img/portfolio/curs/1.jpg differ diff --git a/public/img/portfolio/curs/2.jpg b/public/img/portfolio/curs/2.jpg new file mode 100644 index 0000000..d5c0055 Binary files /dev/null and b/public/img/portfolio/curs/2.jpg differ diff --git a/public/img/portfolio/curs/3.jpg b/public/img/portfolio/curs/3.jpg new file mode 100644 index 0000000..110e247 Binary files /dev/null and b/public/img/portfolio/curs/3.jpg differ diff --git a/public/img/portfolio/curs/4.jpg b/public/img/portfolio/curs/4.jpg new file mode 100644 index 0000000..230da40 Binary files /dev/null and b/public/img/portfolio/curs/4.jpg differ diff --git a/public/img/portfolio/curs/5.jpg b/public/img/portfolio/curs/5.jpg new file mode 100644 index 0000000..ccffd8f Binary files /dev/null and b/public/img/portfolio/curs/5.jpg differ diff --git a/public/img/portfolio/freelancer/1.jpg b/public/img/portfolio/freelancer/1.jpg new file mode 100644 index 0000000..f1a4120 Binary files /dev/null and b/public/img/portfolio/freelancer/1.jpg differ diff --git a/public/img/portfolio/freelancer/2.jpg b/public/img/portfolio/freelancer/2.jpg new file mode 100644 index 0000000..7a6bdc7 Binary files /dev/null and b/public/img/portfolio/freelancer/2.jpg differ diff --git a/public/img/portfolio/freelancer/3.jpg b/public/img/portfolio/freelancer/3.jpg new file mode 100644 index 0000000..4f7b7f9 Binary files /dev/null and b/public/img/portfolio/freelancer/3.jpg differ diff --git a/public/img/portfolio/freelancer/4.jpg b/public/img/portfolio/freelancer/4.jpg new file mode 100644 index 0000000..b36aacc Binary files /dev/null and b/public/img/portfolio/freelancer/4.jpg differ diff --git a/public/img/portfolio/freelancer/5.jpg b/public/img/portfolio/freelancer/5.jpg new file mode 100644 index 0000000..8de3950 Binary files /dev/null and b/public/img/portfolio/freelancer/5.jpg differ diff --git a/public/img/portfolio/freelancer/6.jpg b/public/img/portfolio/freelancer/6.jpg new file mode 100644 index 0000000..c96a256 Binary files /dev/null and b/public/img/portfolio/freelancer/6.jpg differ diff --git a/public/img/portfolio/full/1.jpg b/public/img/portfolio/full/1.jpg new file mode 100644 index 0000000..1645be8 Binary files /dev/null and b/public/img/portfolio/full/1.jpg differ diff --git a/public/img/portfolio/full/2.jpg b/public/img/portfolio/full/2.jpg new file mode 100644 index 0000000..58c43c8 Binary files /dev/null and b/public/img/portfolio/full/2.jpg differ diff --git a/public/img/portfolio/full/3.jpg b/public/img/portfolio/full/3.jpg new file mode 100644 index 0000000..d4b6cef Binary files /dev/null and b/public/img/portfolio/full/3.jpg differ diff --git a/public/img/portfolio/full/4.jpg b/public/img/portfolio/full/4.jpg new file mode 100644 index 0000000..4378724 Binary files /dev/null and b/public/img/portfolio/full/4.jpg differ diff --git a/public/img/portfolio/full/5.jpg b/public/img/portfolio/full/5.jpg new file mode 100644 index 0000000..e09a564 Binary files /dev/null and b/public/img/portfolio/full/5.jpg differ diff --git a/public/img/portfolio/full/6.jpg b/public/img/portfolio/full/6.jpg new file mode 100644 index 0000000..b564d76 Binary files /dev/null and b/public/img/portfolio/full/6.jpg differ diff --git a/public/img/portfolio/metro/01.jpg b/public/img/portfolio/metro/01.jpg new file mode 100644 index 0000000..15171a2 Binary files /dev/null and b/public/img/portfolio/metro/01.jpg differ diff --git a/public/img/portfolio/metro/02.jpg b/public/img/portfolio/metro/02.jpg new file mode 100644 index 0000000..b5fde98 Binary files /dev/null and b/public/img/portfolio/metro/02.jpg differ diff --git a/public/img/portfolio/metro/03.jpg b/public/img/portfolio/metro/03.jpg new file mode 100644 index 0000000..3d28584 Binary files /dev/null and b/public/img/portfolio/metro/03.jpg differ diff --git a/public/img/portfolio/metro/04.jpg b/public/img/portfolio/metro/04.jpg new file mode 100644 index 0000000..65796b9 Binary files /dev/null and b/public/img/portfolio/metro/04.jpg differ diff --git a/public/img/portfolio/metro/05.jpg b/public/img/portfolio/metro/05.jpg new file mode 100644 index 0000000..f48995f Binary files /dev/null and b/public/img/portfolio/metro/05.jpg differ diff --git a/public/img/portfolio/portfolio/1/1.jpg b/public/img/portfolio/portfolio/1/1.jpg new file mode 100644 index 0000000..74d1c19 Binary files /dev/null and b/public/img/portfolio/portfolio/1/1.jpg differ diff --git a/public/img/portfolio/portfolio/1/10.jpg b/public/img/portfolio/portfolio/1/10.jpg new file mode 100644 index 0000000..aff2d45 Binary files /dev/null and b/public/img/portfolio/portfolio/1/10.jpg differ diff --git a/public/img/portfolio/portfolio/1/11.jpg b/public/img/portfolio/portfolio/1/11.jpg new file mode 100644 index 0000000..8447d1f Binary files /dev/null and b/public/img/portfolio/portfolio/1/11.jpg differ diff --git a/public/img/portfolio/portfolio/1/12.jpg b/public/img/portfolio/portfolio/1/12.jpg new file mode 100644 index 0000000..dc3840d Binary files /dev/null and b/public/img/portfolio/portfolio/1/12.jpg differ diff --git a/public/img/portfolio/portfolio/1/2.jpg b/public/img/portfolio/portfolio/1/2.jpg new file mode 100644 index 0000000..2695c59 Binary files /dev/null and b/public/img/portfolio/portfolio/1/2.jpg differ diff --git a/public/img/portfolio/portfolio/1/3.jpg b/public/img/portfolio/portfolio/1/3.jpg new file mode 100644 index 0000000..e98b746 Binary files /dev/null and b/public/img/portfolio/portfolio/1/3.jpg differ diff --git a/public/img/portfolio/portfolio/1/4.jpg b/public/img/portfolio/portfolio/1/4.jpg new file mode 100644 index 0000000..340643b Binary files /dev/null and b/public/img/portfolio/portfolio/1/4.jpg differ diff --git a/public/img/portfolio/portfolio/1/5.jpg b/public/img/portfolio/portfolio/1/5.jpg new file mode 100644 index 0000000..5308f6b Binary files /dev/null and b/public/img/portfolio/portfolio/1/5.jpg differ diff --git a/public/img/portfolio/portfolio/1/6.jpg b/public/img/portfolio/portfolio/1/6.jpg new file mode 100644 index 0000000..479578d Binary files /dev/null and b/public/img/portfolio/portfolio/1/6.jpg differ diff --git a/public/img/portfolio/portfolio/1/7.jpg b/public/img/portfolio/portfolio/1/7.jpg new file mode 100644 index 0000000..6b35777 Binary files /dev/null and b/public/img/portfolio/portfolio/1/7.jpg differ diff --git a/public/img/portfolio/portfolio/1/8.jpg b/public/img/portfolio/portfolio/1/8.jpg new file mode 100644 index 0000000..d98e414 Binary files /dev/null and b/public/img/portfolio/portfolio/1/8.jpg differ diff --git a/public/img/portfolio/portfolio/1/9.jpg b/public/img/portfolio/portfolio/1/9.jpg new file mode 100644 index 0000000..aa2ab38 Binary files /dev/null and b/public/img/portfolio/portfolio/1/9.jpg differ diff --git a/public/img/portfolio/portfolio/2/1.jpg b/public/img/portfolio/portfolio/2/1.jpg new file mode 100644 index 0000000..6316448 Binary files /dev/null and b/public/img/portfolio/portfolio/2/1.jpg differ diff --git a/public/img/portfolio/portfolio/2/2.jpg b/public/img/portfolio/portfolio/2/2.jpg new file mode 100644 index 0000000..4db4369 Binary files /dev/null and b/public/img/portfolio/portfolio/2/2.jpg differ diff --git a/public/img/portfolio/portfolio/2/3.jpg b/public/img/portfolio/portfolio/2/3.jpg new file mode 100644 index 0000000..bc50b90 Binary files /dev/null and b/public/img/portfolio/portfolio/2/3.jpg differ diff --git a/public/img/portfolio/portfolio/2/4.jpg b/public/img/portfolio/portfolio/2/4.jpg new file mode 100644 index 0000000..54815da Binary files /dev/null and b/public/img/portfolio/portfolio/2/4.jpg differ diff --git a/public/img/portfolio/portfolio/2/5.jpg b/public/img/portfolio/portfolio/2/5.jpg new file mode 100644 index 0000000..867ae8e Binary files /dev/null and b/public/img/portfolio/portfolio/2/5.jpg differ diff --git a/public/img/portfolio/portfolio/2/6.jpg b/public/img/portfolio/portfolio/2/6.jpg new file mode 100644 index 0000000..c306e5d Binary files /dev/null and b/public/img/portfolio/portfolio/2/6.jpg differ diff --git a/public/img/portfolio/project2/1.jpg b/public/img/portfolio/project2/1.jpg new file mode 100644 index 0000000..da2a16c Binary files /dev/null and b/public/img/portfolio/project2/1.jpg differ diff --git a/public/img/portfolio/project2/2.jpg b/public/img/portfolio/project2/2.jpg new file mode 100644 index 0000000..0ecd77a Binary files /dev/null and b/public/img/portfolio/project2/2.jpg differ diff --git a/public/img/portfolio/project2/3.jpg b/public/img/portfolio/project2/3.jpg new file mode 100644 index 0000000..83d282b Binary files /dev/null and b/public/img/portfolio/project2/3.jpg differ diff --git a/public/img/portfolio/project2/4.jpg b/public/img/portfolio/project2/4.jpg new file mode 100644 index 0000000..d4bb496 Binary files /dev/null and b/public/img/portfolio/project2/4.jpg differ diff --git a/public/img/portfolio/project2/5.jpg b/public/img/portfolio/project2/5.jpg new file mode 100644 index 0000000..36fafcb Binary files /dev/null and b/public/img/portfolio/project2/5.jpg differ diff --git a/public/img/portfolio/project2/6.jpg b/public/img/portfolio/project2/6.jpg new file mode 100644 index 0000000..abbf108 Binary files /dev/null and b/public/img/portfolio/project2/6.jpg differ diff --git a/public/img/portfolio/project2/7.jpg b/public/img/portfolio/project2/7.jpg new file mode 100644 index 0000000..d1bf486 Binary files /dev/null and b/public/img/portfolio/project2/7.jpg differ diff --git a/public/img/portfolio/project2/bg.jpg b/public/img/portfolio/project2/bg.jpg new file mode 100644 index 0000000..92d950a Binary files /dev/null and b/public/img/portfolio/project2/bg.jpg differ diff --git a/public/img/slid/001.jpg b/public/img/slid/001.jpg new file mode 100644 index 0000000..9c41976 Binary files /dev/null and b/public/img/slid/001.jpg differ diff --git a/public/img/slid/002.jpg b/public/img/slid/002.jpg new file mode 100644 index 0000000..d2f41b8 Binary files /dev/null and b/public/img/slid/002.jpg differ diff --git a/public/img/slid/01.jpg b/public/img/slid/01.jpg new file mode 100644 index 0000000..43b1915 Binary files /dev/null and b/public/img/slid/01.jpg differ diff --git a/public/img/slid/02.jpg b/public/img/slid/02.jpg new file mode 100644 index 0000000..4cfebb7 Binary files /dev/null and b/public/img/slid/02.jpg differ diff --git a/public/img/slid/03.jpg b/public/img/slid/03.jpg new file mode 100644 index 0000000..352823c Binary files /dev/null and b/public/img/slid/03.jpg differ diff --git a/public/img/slid/about.jpg b/public/img/slid/about.jpg new file mode 100644 index 0000000..7790617 Binary files /dev/null and b/public/img/slid/about.jpg differ diff --git a/public/img/team/01.webp b/public/img/team/01.webp new file mode 100644 index 0000000..2df1f08 Binary files /dev/null and b/public/img/team/01.webp differ diff --git a/public/img/team/02.webp b/public/img/team/02.webp new file mode 100644 index 0000000..d23d111 Binary files /dev/null and b/public/img/team/02.webp differ diff --git a/public/img/team/03.webp b/public/img/team/03.webp new file mode 100644 index 0000000..34094e6 Binary files /dev/null and b/public/img/team/03.webp differ diff --git a/public/img/team/04.webp b/public/img/team/04.webp new file mode 100644 index 0000000..352ef94 Binary files /dev/null and b/public/img/team/04.webp differ diff --git a/public/img/team/05.webp b/public/img/team/05.webp new file mode 100644 index 0000000..edc942e Binary files /dev/null and b/public/img/team/05.webp differ diff --git a/public/img/team/06.webp b/public/img/team/06.webp new file mode 100644 index 0000000..24654bd Binary files /dev/null and b/public/img/team/06.webp differ diff --git a/public/img/team/07.webp b/public/img/team/07.webp new file mode 100644 index 0000000..ed9d822 Binary files /dev/null and b/public/img/team/07.webp differ diff --git a/public/img/team/08.webp b/public/img/team/08.webp new file mode 100644 index 0000000..b90f99b Binary files /dev/null and b/public/img/team/08.webp differ diff --git a/public/img/team/09.webp b/public/img/team/09.webp new file mode 100644 index 0000000..1409591 Binary files /dev/null and b/public/img/team/09.webp differ diff --git a/public/img/team/1.jpg b/public/img/team/1.jpg new file mode 100644 index 0000000..74b1065 Binary files /dev/null and b/public/img/team/1.jpg differ diff --git a/public/img/team/10.webp b/public/img/team/10.webp new file mode 100644 index 0000000..6fb12d4 Binary files /dev/null and b/public/img/team/10.webp differ diff --git a/public/img/team/11.webp b/public/img/team/11.webp new file mode 100644 index 0000000..5bf1a46 Binary files /dev/null and b/public/img/team/11.webp differ diff --git a/public/img/team/12.webp b/public/img/team/12.webp new file mode 100644 index 0000000..b3ce76a Binary files /dev/null and b/public/img/team/12.webp differ diff --git a/public/img/team/2.jpg b/public/img/team/2.jpg new file mode 100644 index 0000000..35992f1 Binary files /dev/null and b/public/img/team/2.jpg differ diff --git a/public/img/team/3.jpg b/public/img/team/3.jpg new file mode 100644 index 0000000..40f0081 Binary files /dev/null and b/public/img/team/3.jpg differ diff --git a/public/img/team/4.jpg b/public/img/team/4.jpg new file mode 100644 index 0000000..40d5499 Binary files /dev/null and b/public/img/team/4.jpg differ diff --git a/public/img/team/a1.jpg b/public/img/team/a1.jpg new file mode 100644 index 0000000..6e0e2b5 Binary files /dev/null and b/public/img/team/a1.jpg differ diff --git a/public/img/team/a2.jpg b/public/img/team/a2.jpg new file mode 100644 index 0000000..bfa2257 Binary files /dev/null and b/public/img/team/a2.jpg differ diff --git a/public/img/team/a3.jpg b/public/img/team/a3.jpg new file mode 100644 index 0000000..2c0c4ac Binary files /dev/null and b/public/img/team/a3.jpg differ diff --git a/public/img/team/a4.jpg b/public/img/team/a4.jpg new file mode 100644 index 0000000..60bc3ee Binary files /dev/null and b/public/img/team/a4.jpg differ diff --git a/public/img/testim-img.jpg b/public/img/testim-img.jpg new file mode 100644 index 0000000..7b164a4 Binary files /dev/null and b/public/img/testim-img.jpg differ diff --git a/public/js/isotope.pkgd.min.js b/public/js/isotope.pkgd.min.js new file mode 100644 index 0000000..7ca671c --- /dev/null +++ b/public/js/isotope.pkgd.min.js @@ -0,0 +1,12 @@ +/*! + * Isotope PACKAGED v3.0.6 + * + * Licensed GPLv3 for open source use + * or Isotope Commercial License for commercial use + * + * https://isotope.metafizzy.co + * Copyright 2010-2018 Metafizzy + */ + +!function(t,e){"function"==typeof define&&define.amd?define("jquery-bridget/jquery-bridget",["jquery"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("jquery")):t.jQueryBridget=e(t,t.jQuery)}(window,function(t,e){"use strict";function i(i,s,a){function u(t,e,o){var n,s="$()."+i+'("'+e+'")';return t.each(function(t,u){var h=a.data(u,i);if(!h)return void r(i+" not initialized. Cannot call methods, i.e. "+s);var d=h[e];if(!d||"_"==e.charAt(0))return void r(s+" is not a valid method");var l=d.apply(h,o);n=void 0===n?l:n}),void 0!==n?n:t}function h(t,e){t.each(function(t,o){var n=a.data(o,i);n?(n.option(e),n._init()):(n=new s(o,e),a.data(o,i,n))})}a=a||e||t.jQuery,a&&(s.prototype.option||(s.prototype.option=function(t){a.isPlainObject(t)&&(this.options=a.extend(!0,this.options,t))}),a.fn[i]=function(t){if("string"==typeof t){var e=n.call(arguments,1);return u(this,t,e)}return h(this,t),this},o(a))}function o(t){!t||t&&t.bridget||(t.bridget=i)}var n=Array.prototype.slice,s=t.console,r="undefined"==typeof s?function(){}:function(t){s.error(t)};return o(e||t.jQuery),i}),function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},o=i[t]=i[t]||[];return o.indexOf(e)==-1&&o.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{},o=i[t]=i[t]||{};return o[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var o=i.indexOf(e);return o!=-1&&i.splice(o,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){i=i.slice(0),e=e||[];for(var o=this._onceEvents&&this._onceEvents[t],n=0;n<i.length;n++){var s=i[n],r=o&&o[s];r&&(this.off(t,s),delete o[s]),s.apply(this,e)}return this}},e.allOff=function(){delete this._events,delete this._onceEvents},t}),function(t,e){"function"==typeof define&&define.amd?define("get-size/get-size",e):"object"==typeof module&&module.exports?module.exports=e():t.getSize=e()}(window,function(){"use strict";function t(t){var e=parseFloat(t),i=t.indexOf("%")==-1&&!isNaN(e);return i&&e}function e(){}function i(){for(var t={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},e=0;e<h;e++){var i=u[e];t[i]=0}return t}function o(t){var e=getComputedStyle(t);return e||a("Style returned "+e+". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1"),e}function n(){if(!d){d=!0;var e=document.createElement("div");e.style.width="200px",e.style.padding="1px 2px 3px 4px",e.style.borderStyle="solid",e.style.borderWidth="1px 2px 3px 4px",e.style.boxSizing="border-box";var i=document.body||document.documentElement;i.appendChild(e);var n=o(e);r=200==Math.round(t(n.width)),s.isBoxSizeOuter=r,i.removeChild(e)}}function s(e){if(n(),"string"==typeof e&&(e=document.querySelector(e)),e&&"object"==typeof e&&e.nodeType){var s=o(e);if("none"==s.display)return i();var a={};a.width=e.offsetWidth,a.height=e.offsetHeight;for(var d=a.isBorderBox="border-box"==s.boxSizing,l=0;l<h;l++){var f=u[l],c=s[f],m=parseFloat(c);a[f]=isNaN(m)?0:m}var p=a.paddingLeft+a.paddingRight,y=a.paddingTop+a.paddingBottom,g=a.marginLeft+a.marginRight,v=a.marginTop+a.marginBottom,_=a.borderLeftWidth+a.borderRightWidth,z=a.borderTopWidth+a.borderBottomWidth,I=d&&r,x=t(s.width);x!==!1&&(a.width=x+(I?0:p+_));var S=t(s.height);return S!==!1&&(a.height=S+(I?0:y+z)),a.innerWidth=a.width-(p+_),a.innerHeight=a.height-(y+z),a.outerWidth=a.width+g,a.outerHeight=a.height+v,a}}var r,a="undefined"==typeof console?e:function(t){console.error(t)},u=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],h=u.length,d=!1;return s}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("desandro-matches-selector/matches-selector",e):"object"==typeof module&&module.exports?module.exports=e():t.matchesSelector=e()}(window,function(){"use strict";var t=function(){var t=window.Element.prototype;if(t.matches)return"matches";if(t.matchesSelector)return"matchesSelector";for(var e=["webkit","moz","ms","o"],i=0;i<e.length;i++){var o=e[i],n=o+"MatchesSelector";if(t[n])return n}}();return function(e,i){return e[t](i)}}),function(t,e){"function"==typeof define&&define.amd?define("fizzy-ui-utils/utils",["desandro-matches-selector/matches-selector"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("desandro-matches-selector")):t.fizzyUIUtils=e(t,t.matchesSelector)}(window,function(t,e){var i={};i.extend=function(t,e){for(var i in e)t[i]=e[i];return t},i.modulo=function(t,e){return(t%e+e)%e};var o=Array.prototype.slice;i.makeArray=function(t){if(Array.isArray(t))return t;if(null===t||void 0===t)return[];var e="object"==typeof t&&"number"==typeof t.length;return e?o.call(t):[t]},i.removeFrom=function(t,e){var i=t.indexOf(e);i!=-1&&t.splice(i,1)},i.getParent=function(t,i){for(;t.parentNode&&t!=document.body;)if(t=t.parentNode,e(t,i))return t},i.getQueryElement=function(t){return"string"==typeof t?document.querySelector(t):t},i.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},i.filterFindElements=function(t,o){t=i.makeArray(t);var n=[];return t.forEach(function(t){if(t instanceof HTMLElement){if(!o)return void n.push(t);e(t,o)&&n.push(t);for(var i=t.querySelectorAll(o),s=0;s<i.length;s++)n.push(i[s])}}),n},i.debounceMethod=function(t,e,i){i=i||100;var o=t.prototype[e],n=e+"Timeout";t.prototype[e]=function(){var t=this[n];clearTimeout(t);var e=arguments,s=this;this[n]=setTimeout(function(){o.apply(s,e),delete s[n]},i)}},i.docReady=function(t){var e=document.readyState;"complete"==e||"interactive"==e?setTimeout(t):document.addEventListener("DOMContentLoaded",t)},i.toDashed=function(t){return t.replace(/(.)([A-Z])/g,function(t,e,i){return e+"-"+i}).toLowerCase()};var n=t.console;return i.htmlInit=function(e,o){i.docReady(function(){var s=i.toDashed(o),r="data-"+s,a=document.querySelectorAll("["+r+"]"),u=document.querySelectorAll(".js-"+s),h=i.makeArray(a).concat(i.makeArray(u)),d=r+"-options",l=t.jQuery;h.forEach(function(t){var i,s=t.getAttribute(r)||t.getAttribute(d);try{i=s&&JSON.parse(s)}catch(a){return void(n&&n.error("Error parsing "+r+" on "+t.className+": "+a))}var u=new e(t,i);l&&l.data(t,o,u)})})},i}),function(t,e){"function"==typeof define&&define.amd?define("outlayer/item",["ev-emitter/ev-emitter","get-size/get-size"],e):"object"==typeof module&&module.exports?module.exports=e(require("ev-emitter"),require("get-size")):(t.Outlayer={},t.Outlayer.Item=e(t.EvEmitter,t.getSize))}(window,function(t,e){"use strict";function i(t){for(var e in t)return!1;return e=null,!0}function o(t,e){t&&(this.element=t,this.layout=e,this.position={x:0,y:0},this._create())}function n(t){return t.replace(/([A-Z])/g,function(t){return"-"+t.toLowerCase()})}var s=document.documentElement.style,r="string"==typeof s.transition?"transition":"WebkitTransition",a="string"==typeof s.transform?"transform":"WebkitTransform",u={WebkitTransition:"webkitTransitionEnd",transition:"transitionend"}[r],h={transform:a,transition:r,transitionDuration:r+"Duration",transitionProperty:r+"Property",transitionDelay:r+"Delay"},d=o.prototype=Object.create(t.prototype);d.constructor=o,d._create=function(){this._transn={ingProperties:{},clean:{},onEnd:{}},this.css({position:"absolute"})},d.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},d.getSize=function(){this.size=e(this.element)},d.css=function(t){var e=this.element.style;for(var i in t){var o=h[i]||i;e[o]=t[i]}},d.getPosition=function(){var t=getComputedStyle(this.element),e=this.layout._getOption("originLeft"),i=this.layout._getOption("originTop"),o=t[e?"left":"right"],n=t[i?"top":"bottom"],s=parseFloat(o),r=parseFloat(n),a=this.layout.size;o.indexOf("%")!=-1&&(s=s/100*a.width),n.indexOf("%")!=-1&&(r=r/100*a.height),s=isNaN(s)?0:s,r=isNaN(r)?0:r,s-=e?a.paddingLeft:a.paddingRight,r-=i?a.paddingTop:a.paddingBottom,this.position.x=s,this.position.y=r},d.layoutPosition=function(){var t=this.layout.size,e={},i=this.layout._getOption("originLeft"),o=this.layout._getOption("originTop"),n=i?"paddingLeft":"paddingRight",s=i?"left":"right",r=i?"right":"left",a=this.position.x+t[n];e[s]=this.getXValue(a),e[r]="";var u=o?"paddingTop":"paddingBottom",h=o?"top":"bottom",d=o?"bottom":"top",l=this.position.y+t[u];e[h]=this.getYValue(l),e[d]="",this.css(e),this.emitEvent("layout",[this])},d.getXValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&!e?t/this.layout.size.width*100+"%":t+"px"},d.getYValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&e?t/this.layout.size.height*100+"%":t+"px"},d._transitionTo=function(t,e){this.getPosition();var i=this.position.x,o=this.position.y,n=t==this.position.x&&e==this.position.y;if(this.setPosition(t,e),n&&!this.isTransitioning)return void this.layoutPosition();var s=t-i,r=e-o,a={};a.transform=this.getTranslate(s,r),this.transition({to:a,onTransitionEnd:{transform:this.layoutPosition},isCleaning:!0})},d.getTranslate=function(t,e){var i=this.layout._getOption("originLeft"),o=this.layout._getOption("originTop");return t=i?t:-t,e=o?e:-e,"translate3d("+t+"px, "+e+"px, 0)"},d.goTo=function(t,e){this.setPosition(t,e),this.layoutPosition()},d.moveTo=d._transitionTo,d.setPosition=function(t,e){this.position.x=parseFloat(t),this.position.y=parseFloat(e)},d._nonTransition=function(t){this.css(t.to),t.isCleaning&&this._removeStyles(t.to);for(var e in t.onTransitionEnd)t.onTransitionEnd[e].call(this)},d.transition=function(t){if(!parseFloat(this.layout.options.transitionDuration))return void this._nonTransition(t);var e=this._transn;for(var i in t.onTransitionEnd)e.onEnd[i]=t.onTransitionEnd[i];for(i in t.to)e.ingProperties[i]=!0,t.isCleaning&&(e.clean[i]=!0);if(t.from){this.css(t.from);var o=this.element.offsetHeight;o=null}this.enableTransition(t.to),this.css(t.to),this.isTransitioning=!0};var l="opacity,"+n(a);d.enableTransition=function(){if(!this.isTransitioning){var t=this.layout.options.transitionDuration;t="number"==typeof t?t+"ms":t,this.css({transitionProperty:l,transitionDuration:t,transitionDelay:this.staggerDelay||0}),this.element.addEventListener(u,this,!1)}},d.onwebkitTransitionEnd=function(t){this.ontransitionend(t)},d.onotransitionend=function(t){this.ontransitionend(t)};var f={"-webkit-transform":"transform"};d.ontransitionend=function(t){if(t.target===this.element){var e=this._transn,o=f[t.propertyName]||t.propertyName;if(delete e.ingProperties[o],i(e.ingProperties)&&this.disableTransition(),o in e.clean&&(this.element.style[t.propertyName]="",delete e.clean[o]),o in e.onEnd){var n=e.onEnd[o];n.call(this),delete e.onEnd[o]}this.emitEvent("transitionEnd",[this])}},d.disableTransition=function(){this.removeTransitionStyles(),this.element.removeEventListener(u,this,!1),this.isTransitioning=!1},d._removeStyles=function(t){var e={};for(var i in t)e[i]="";this.css(e)};var c={transitionProperty:"",transitionDuration:"",transitionDelay:""};return d.removeTransitionStyles=function(){this.css(c)},d.stagger=function(t){t=isNaN(t)?0:t,this.staggerDelay=t+"ms"},d.removeElem=function(){this.element.parentNode.removeChild(this.element),this.css({display:""}),this.emitEvent("remove",[this])},d.remove=function(){return r&&parseFloat(this.layout.options.transitionDuration)?(this.once("transitionEnd",function(){this.removeElem()}),void this.hide()):void this.removeElem()},d.reveal=function(){delete this.isHidden,this.css({display:""});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty("visibleStyle");e[i]=this.onRevealTransitionEnd,this.transition({from:t.hiddenStyle,to:t.visibleStyle,isCleaning:!0,onTransitionEnd:e})},d.onRevealTransitionEnd=function(){this.isHidden||this.emitEvent("reveal")},d.getHideRevealTransitionEndProperty=function(t){var e=this.layout.options[t];if(e.opacity)return"opacity";for(var i in e)return i},d.hide=function(){this.isHidden=!0,this.css({display:""});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty("hiddenStyle");e[i]=this.onHideTransitionEnd,this.transition({from:t.visibleStyle,to:t.hiddenStyle,isCleaning:!0,onTransitionEnd:e})},d.onHideTransitionEnd=function(){this.isHidden&&(this.css({display:"none"}),this.emitEvent("hide"))},d.destroy=function(){this.css({position:"",left:"",right:"",top:"",bottom:"",transition:"",transform:""})},o}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("outlayer/outlayer",["ev-emitter/ev-emitter","get-size/get-size","fizzy-ui-utils/utils","./item"],function(i,o,n,s){return e(t,i,o,n,s)}):"object"==typeof module&&module.exports?module.exports=e(t,require("ev-emitter"),require("get-size"),require("fizzy-ui-utils"),require("./item")):t.Outlayer=e(t,t.EvEmitter,t.getSize,t.fizzyUIUtils,t.Outlayer.Item)}(window,function(t,e,i,o,n){"use strict";function s(t,e){var i=o.getQueryElement(t);if(!i)return void(u&&u.error("Bad element for "+this.constructor.namespace+": "+(i||t)));this.element=i,h&&(this.$element=h(this.element)),this.options=o.extend({},this.constructor.defaults),this.option(e);var n=++l;this.element.outlayerGUID=n,f[n]=this,this._create();var s=this._getOption("initLayout");s&&this.layout()}function r(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e}function a(t){if("number"==typeof t)return t;var e=t.match(/(^\d*\.?\d*)(\w*)/),i=e&&e[1],o=e&&e[2];if(!i.length)return 0;i=parseFloat(i);var n=m[o]||1;return i*n}var u=t.console,h=t.jQuery,d=function(){},l=0,f={};s.namespace="outlayer",s.Item=n,s.defaults={containerStyle:{position:"relative"},initLayout:!0,originLeft:!0,originTop:!0,resize:!0,resizeContainer:!0,transitionDuration:"0.4s",hiddenStyle:{opacity:0,transform:"scale(0.001)"},visibleStyle:{opacity:1,transform:"scale(1)"}};var c=s.prototype;o.extend(c,e.prototype),c.option=function(t){o.extend(this.options,t)},c._getOption=function(t){var e=this.constructor.compatOptions[t];return e&&void 0!==this.options[e]?this.options[e]:this.options[t]},s.compatOptions={initLayout:"isInitLayout",horizontal:"isHorizontal",layoutInstant:"isLayoutInstant",originLeft:"isOriginLeft",originTop:"isOriginTop",resize:"isResizeBound",resizeContainer:"isResizingContainer"},c._create=function(){this.reloadItems(),this.stamps=[],this.stamp(this.options.stamp),o.extend(this.element.style,this.options.containerStyle);var t=this._getOption("resize");t&&this.bindResize()},c.reloadItems=function(){this.items=this._itemize(this.element.children)},c._itemize=function(t){for(var e=this._filterFindItemElements(t),i=this.constructor.Item,o=[],n=0;n<e.length;n++){var s=e[n],r=new i(s,this);o.push(r)}return o},c._filterFindItemElements=function(t){return o.filterFindElements(t,this.options.itemSelector)},c.getItemElements=function(){return this.items.map(function(t){return t.element})},c.layout=function(){this._resetLayout(),this._manageStamps();var t=this._getOption("layoutInstant"),e=void 0!==t?t:!this._isLayoutInited;this.layoutItems(this.items,e),this._isLayoutInited=!0},c._init=c.layout,c._resetLayout=function(){this.getSize()},c.getSize=function(){this.size=i(this.element)},c._getMeasurement=function(t,e){var o,n=this.options[t];n?("string"==typeof n?o=this.element.querySelector(n):n instanceof HTMLElement&&(o=n),this[t]=o?i(o)[e]:n):this[t]=0},c.layoutItems=function(t,e){t=this._getItemsForLayout(t),this._layoutItems(t,e),this._postLayout()},c._getItemsForLayout=function(t){return t.filter(function(t){return!t.isIgnored})},c._layoutItems=function(t,e){if(this._emitCompleteOnItems("layout",t),t&&t.length){var i=[];t.forEach(function(t){var o=this._getItemLayoutPosition(t);o.item=t,o.isInstant=e||t.isLayoutInstant,i.push(o)},this),this._processLayoutQueue(i)}},c._getItemLayoutPosition=function(){return{x:0,y:0}},c._processLayoutQueue=function(t){this.updateStagger(),t.forEach(function(t,e){this._positionItem(t.item,t.x,t.y,t.isInstant,e)},this)},c.updateStagger=function(){var t=this.options.stagger;return null===t||void 0===t?void(this.stagger=0):(this.stagger=a(t),this.stagger)},c._positionItem=function(t,e,i,o,n){o?t.goTo(e,i):(t.stagger(n*this.stagger),t.moveTo(e,i))},c._postLayout=function(){this.resizeContainer()},c.resizeContainer=function(){var t=this._getOption("resizeContainer");if(t){var e=this._getContainerSize();e&&(this._setContainerMeasure(e.width,!0),this._setContainerMeasure(e.height,!1))}},c._getContainerSize=d,c._setContainerMeasure=function(t,e){if(void 0!==t){var i=this.size;i.isBorderBox&&(t+=e?i.paddingLeft+i.paddingRight+i.borderLeftWidth+i.borderRightWidth:i.paddingBottom+i.paddingTop+i.borderTopWidth+i.borderBottomWidth),t=Math.max(t,0),this.element.style[e?"width":"height"]=t+"px"}},c._emitCompleteOnItems=function(t,e){function i(){n.dispatchEvent(t+"Complete",null,[e])}function o(){r++,r==s&&i()}var n=this,s=e.length;if(!e||!s)return void i();var r=0;e.forEach(function(e){e.once(t,o)})},c.dispatchEvent=function(t,e,i){var o=e?[e].concat(i):i;if(this.emitEvent(t,o),h)if(this.$element=this.$element||h(this.element),e){var n=h.Event(e);n.type=t,this.$element.trigger(n,i)}else this.$element.trigger(t,i)},c.ignore=function(t){var e=this.getItem(t);e&&(e.isIgnored=!0)},c.unignore=function(t){var e=this.getItem(t);e&&delete e.isIgnored},c.stamp=function(t){t=this._find(t),t&&(this.stamps=this.stamps.concat(t),t.forEach(this.ignore,this))},c.unstamp=function(t){t=this._find(t),t&&t.forEach(function(t){o.removeFrom(this.stamps,t),this.unignore(t)},this)},c._find=function(t){if(t)return"string"==typeof t&&(t=this.element.querySelectorAll(t)),t=o.makeArray(t)},c._manageStamps=function(){this.stamps&&this.stamps.length&&(this._getBoundingRect(),this.stamps.forEach(this._manageStamp,this))},c._getBoundingRect=function(){var t=this.element.getBoundingClientRect(),e=this.size;this._boundingRect={left:t.left+e.paddingLeft+e.borderLeftWidth,top:t.top+e.paddingTop+e.borderTopWidth,right:t.right-(e.paddingRight+e.borderRightWidth),bottom:t.bottom-(e.paddingBottom+e.borderBottomWidth)}},c._manageStamp=d,c._getElementOffset=function(t){var e=t.getBoundingClientRect(),o=this._boundingRect,n=i(t),s={left:e.left-o.left-n.marginLeft,top:e.top-o.top-n.marginTop,right:o.right-e.right-n.marginRight,bottom:o.bottom-e.bottom-n.marginBottom};return s},c.handleEvent=o.handleEvent,c.bindResize=function(){t.addEventListener("resize",this),this.isResizeBound=!0},c.unbindResize=function(){t.removeEventListener("resize",this),this.isResizeBound=!1},c.onresize=function(){this.resize()},o.debounceMethod(s,"onresize",100),c.resize=function(){this.isResizeBound&&this.needsResizeLayout()&&this.layout()},c.needsResizeLayout=function(){var t=i(this.element),e=this.size&&t;return e&&t.innerWidth!==this.size.innerWidth},c.addItems=function(t){var e=this._itemize(t);return e.length&&(this.items=this.items.concat(e)),e},c.appended=function(t){var e=this.addItems(t);e.length&&(this.layoutItems(e,!0),this.reveal(e))},c.prepended=function(t){var e=this._itemize(t);if(e.length){var i=this.items.slice(0);this.items=e.concat(i),this._resetLayout(),this._manageStamps(),this.layoutItems(e,!0),this.reveal(e),this.layoutItems(i)}},c.reveal=function(t){if(this._emitCompleteOnItems("reveal",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.reveal()})}},c.hide=function(t){if(this._emitCompleteOnItems("hide",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.hide()})}},c.revealItemElements=function(t){var e=this.getItems(t);this.reveal(e)},c.hideItemElements=function(t){var e=this.getItems(t);this.hide(e)},c.getItem=function(t){for(var e=0;e<this.items.length;e++){var i=this.items[e];if(i.element==t)return i}},c.getItems=function(t){t=o.makeArray(t);var e=[];return t.forEach(function(t){var i=this.getItem(t);i&&e.push(i)},this),e},c.remove=function(t){var e=this.getItems(t);this._emitCompleteOnItems("remove",e),e&&e.length&&e.forEach(function(t){t.remove(),o.removeFrom(this.items,t)},this)},c.destroy=function(){var t=this.element.style;t.height="",t.position="",t.width="",this.items.forEach(function(t){t.destroy()}),this.unbindResize();var e=this.element.outlayerGUID;delete f[e],delete this.element.outlayerGUID,h&&h.removeData(this.element,this.constructor.namespace)},s.data=function(t){t=o.getQueryElement(t);var e=t&&t.outlayerGUID;return e&&f[e]},s.create=function(t,e){var i=r(s);return i.defaults=o.extend({},s.defaults),o.extend(i.defaults,e),i.compatOptions=o.extend({},s.compatOptions),i.namespace=t,i.data=s.data,i.Item=r(n),o.htmlInit(i,t),h&&h.bridget&&h.bridget(t,i),i};var m={ms:1,s:1e3};return s.Item=n,s}),function(t,e){"function"==typeof define&&define.amd?define("isotope-layout/js/item",["outlayer/outlayer"],e):"object"==typeof module&&module.exports?module.exports=e(require("outlayer")):(t.Isotope=t.Isotope||{},t.Isotope.Item=e(t.Outlayer))}(window,function(t){"use strict";function e(){t.Item.apply(this,arguments)}var i=e.prototype=Object.create(t.Item.prototype),o=i._create;i._create=function(){this.id=this.layout.itemGUID++,o.call(this),this.sortData={}},i.updateSortData=function(){if(!this.isIgnored){this.sortData.id=this.id,this.sortData["original-order"]=this.id,this.sortData.random=Math.random();var t=this.layout.options.getSortData,e=this.layout._sorters;for(var i in t){var o=e[i];this.sortData[i]=o(this.element,this)}}};var n=i.destroy;return i.destroy=function(){n.apply(this,arguments),this.css({display:""})},e}),function(t,e){"function"==typeof define&&define.amd?define("isotope-layout/js/layout-mode",["get-size/get-size","outlayer/outlayer"],e):"object"==typeof module&&module.exports?module.exports=e(require("get-size"),require("outlayer")):(t.Isotope=t.Isotope||{},t.Isotope.LayoutMode=e(t.getSize,t.Outlayer))}(window,function(t,e){"use strict";function i(t){this.isotope=t,t&&(this.options=t.options[this.namespace],this.element=t.element,this.items=t.filteredItems,this.size=t.size)}var o=i.prototype,n=["_resetLayout","_getItemLayoutPosition","_manageStamp","_getContainerSize","_getElementOffset","needsResizeLayout","_getOption"];return n.forEach(function(t){o[t]=function(){return e.prototype[t].apply(this.isotope,arguments)}}),o.needsVerticalResizeLayout=function(){var e=t(this.isotope.element),i=this.isotope.size&&e;return i&&e.innerHeight!=this.isotope.size.innerHeight},o._getMeasurement=function(){this.isotope._getMeasurement.apply(this,arguments)},o.getColumnWidth=function(){this.getSegmentSize("column","Width")},o.getRowHeight=function(){this.getSegmentSize("row","Height")},o.getSegmentSize=function(t,e){var i=t+e,o="outer"+e;if(this._getMeasurement(i,o),!this[i]){var n=this.getFirstItemSize();this[i]=n&&n[o]||this.isotope.size["inner"+e]}},o.getFirstItemSize=function(){var e=this.isotope.filteredItems[0];return e&&e.element&&t(e.element)},o.layout=function(){this.isotope.layout.apply(this.isotope,arguments)},o.getSize=function(){this.isotope.getSize(),this.size=this.isotope.size},i.modes={},i.create=function(t,e){function n(){i.apply(this,arguments)}return n.prototype=Object.create(o),n.prototype.constructor=n,e&&(n.options=e),n.prototype.namespace=t,i.modes[t]=n,n},i}),function(t,e){"function"==typeof define&&define.amd?define("masonry-layout/masonry",["outlayer/outlayer","get-size/get-size"],e):"object"==typeof module&&module.exports?module.exports=e(require("outlayer"),require("get-size")):t.Masonry=e(t.Outlayer,t.getSize)}(window,function(t,e){var i=t.create("masonry");i.compatOptions.fitWidth="isFitWidth";var o=i.prototype;return o._resetLayout=function(){this.getSize(),this._getMeasurement("columnWidth","outerWidth"),this._getMeasurement("gutter","outerWidth"),this.measureColumns(),this.colYs=[];for(var t=0;t<this.cols;t++)this.colYs.push(0);this.maxY=0,this.horizontalColIndex=0},o.measureColumns=function(){if(this.getContainerWidth(),!this.columnWidth){var t=this.items[0],i=t&&t.element;this.columnWidth=i&&e(i).outerWidth||this.containerWidth}var o=this.columnWidth+=this.gutter,n=this.containerWidth+this.gutter,s=n/o,r=o-n%o,a=r&&r<1?"round":"floor";s=Math[a](s),this.cols=Math.max(s,1)},o.getContainerWidth=function(){var t=this._getOption("fitWidth"),i=t?this.element.parentNode:this.element,o=e(i);this.containerWidth=o&&o.innerWidth},o._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth%this.columnWidth,i=e&&e<1?"round":"ceil",o=Math[i](t.size.outerWidth/this.columnWidth);o=Math.min(o,this.cols);for(var n=this.options.horizontalOrder?"_getHorizontalColPosition":"_getTopColPosition",s=this[n](o,t),r={x:this.columnWidth*s.col,y:s.y},a=s.y+t.size.outerHeight,u=o+s.col,h=s.col;h<u;h++)this.colYs[h]=a;return r},o._getTopColPosition=function(t){var e=this._getTopColGroup(t),i=Math.min.apply(Math,e);return{col:e.indexOf(i),y:i}},o._getTopColGroup=function(t){if(t<2)return this.colYs;for(var e=[],i=this.cols+1-t,o=0;o<i;o++)e[o]=this._getColGroupY(o,t);return e},o._getColGroupY=function(t,e){if(e<2)return this.colYs[t];var i=this.colYs.slice(t,t+e);return Math.max.apply(Math,i)},o._getHorizontalColPosition=function(t,e){var i=this.horizontalColIndex%this.cols,o=t>1&&i+t>this.cols;i=o?0:i;var n=e.size.outerWidth&&e.size.outerHeight;return this.horizontalColIndex=n?i+t:this.horizontalColIndex,{col:i,y:this._getColGroupY(i,t)}},o._manageStamp=function(t){var i=e(t),o=this._getElementOffset(t),n=this._getOption("originLeft"),s=n?o.left:o.right,r=s+i.outerWidth,a=Math.floor(s/this.columnWidth);a=Math.max(0,a);var u=Math.floor(r/this.columnWidth);u-=r%this.columnWidth?0:1,u=Math.min(this.cols-1,u);for(var h=this._getOption("originTop"),d=(h?o.top:o.bottom)+i.outerHeight,l=a;l<=u;l++)this.colYs[l]=Math.max(d,this.colYs[l])},o._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var t={height:this.maxY};return this._getOption("fitWidth")&&(t.width=this._getContainerFitWidth()),t},o._getContainerFitWidth=function(){for(var t=0,e=this.cols;--e&&0===this.colYs[e];)t++;return(this.cols-t)*this.columnWidth-this.gutter},o.needsResizeLayout=function(){var t=this.containerWidth;return this.getContainerWidth(),t!=this.containerWidth},i}),function(t,e){"function"==typeof define&&define.amd?define("isotope-layout/js/layout-modes/masonry",["../layout-mode","masonry-layout/masonry"],e):"object"==typeof module&&module.exports?module.exports=e(require("../layout-mode"),require("masonry-layout")):e(t.Isotope.LayoutMode,t.Masonry)}(window,function(t,e){"use strict";var i=t.create("masonry"),o=i.prototype,n={_getElementOffset:!0,layout:!0,_getMeasurement:!0};for(var s in e.prototype)n[s]||(o[s]=e.prototype[s]);var r=o.measureColumns;o.measureColumns=function(){this.items=this.isotope.filteredItems,r.call(this)};var a=o._getOption;return o._getOption=function(t){return"fitWidth"==t?void 0!==this.options.isFitWidth?this.options.isFitWidth:this.options.fitWidth:a.apply(this.isotope,arguments)},i}),function(t,e){"function"==typeof define&&define.amd?define("isotope-layout/js/layout-modes/fit-rows",["../layout-mode"],e):"object"==typeof exports?module.exports=e(require("../layout-mode")):e(t.Isotope.LayoutMode)}(window,function(t){"use strict";var e=t.create("fitRows"),i=e.prototype;return i._resetLayout=function(){this.x=0,this.y=0,this.maxY=0,this._getMeasurement("gutter","outerWidth")},i._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth+this.gutter,i=this.isotope.size.innerWidth+this.gutter;0!==this.x&&e+this.x>i&&(this.x=0,this.y=this.maxY);var o={x:this.x,y:this.y};return this.maxY=Math.max(this.maxY,this.y+t.size.outerHeight),this.x+=e,o},i._getContainerSize=function(){return{height:this.maxY}},e}),function(t,e){"function"==typeof define&&define.amd?define("isotope-layout/js/layout-modes/vertical",["../layout-mode"],e):"object"==typeof module&&module.exports?module.exports=e(require("../layout-mode")):e(t.Isotope.LayoutMode)}(window,function(t){"use strict";var e=t.create("vertical",{horizontalAlignment:0}),i=e.prototype;return i._resetLayout=function(){this.y=0},i._getItemLayoutPosition=function(t){t.getSize();var e=(this.isotope.size.innerWidth-t.size.outerWidth)*this.options.horizontalAlignment,i=this.y;return this.y+=t.size.outerHeight,{x:e,y:i}},i._getContainerSize=function(){return{height:this.y}},e}),function(t,e){"function"==typeof define&&define.amd?define(["outlayer/outlayer","get-size/get-size","desandro-matches-selector/matches-selector","fizzy-ui-utils/utils","isotope-layout/js/item","isotope-layout/js/layout-mode","isotope-layout/js/layout-modes/masonry","isotope-layout/js/layout-modes/fit-rows","isotope-layout/js/layout-modes/vertical"],function(i,o,n,s,r,a){return e(t,i,o,n,s,r,a)}):"object"==typeof module&&module.exports?module.exports=e(t,require("outlayer"),require("get-size"),require("desandro-matches-selector"),require("fizzy-ui-utils"),require("isotope-layout/js/item"),require("isotope-layout/js/layout-mode"),require("isotope-layout/js/layout-modes/masonry"),require("isotope-layout/js/layout-modes/fit-rows"),require("isotope-layout/js/layout-modes/vertical")):t.Isotope=e(t,t.Outlayer,t.getSize,t.matchesSelector,t.fizzyUIUtils,t.Isotope.Item,t.Isotope.LayoutMode)}(window,function(t,e,i,o,n,s,r){function a(t,e){return function(i,o){for(var n=0;n<t.length;n++){var s=t[n],r=i.sortData[s],a=o.sortData[s];if(r>a||r<a){var u=void 0!==e[s]?e[s]:e,h=u?1:-1;return(r>a?1:-1)*h}}return 0}}var u=t.jQuery,h=String.prototype.trim?function(t){return t.trim()}:function(t){return t.replace(/^\s+|\s+$/g,"")},d=e.create("isotope",{layoutMode:"masonry",isJQueryFiltering:!0,sortAscending:!0});d.Item=s,d.LayoutMode=r;var l=d.prototype;l._create=function(){this.itemGUID=0,this._sorters={},this._getSorters(),e.prototype._create.call(this),this.modes={},this.filteredItems=this.items,this.sortHistory=["original-order"];for(var t in r.modes)this._initLayoutMode(t)},l.reloadItems=function(){this.itemGUID=0,e.prototype.reloadItems.call(this)},l._itemize=function(){for(var t=e.prototype._itemize.apply(this,arguments),i=0;i<t.length;i++){var o=t[i];o.id=this.itemGUID++}return this._updateItemsSortData(t),t},l._initLayoutMode=function(t){var e=r.modes[t],i=this.options[t]||{};this.options[t]=e.options?n.extend(e.options,i):i,this.modes[t]=new e(this)},l.layout=function(){return!this._isLayoutInited&&this._getOption("initLayout")?void this.arrange():void this._layout()},l._layout=function(){var t=this._getIsInstant();this._resetLayout(),this._manageStamps(),this.layoutItems(this.filteredItems,t),this._isLayoutInited=!0},l.arrange=function(t){this.option(t),this._getIsInstant();var e=this._filter(this.items);this.filteredItems=e.matches,this._bindArrangeComplete(),this._isInstant?this._noTransition(this._hideReveal,[e]):this._hideReveal(e),this._sort(),this._layout()},l._init=l.arrange,l._hideReveal=function(t){this.reveal(t.needReveal),this.hide(t.needHide)},l._getIsInstant=function(){var t=this._getOption("layoutInstant"),e=void 0!==t?t:!this._isLayoutInited;return this._isInstant=e,e},l._bindArrangeComplete=function(){function t(){e&&i&&o&&n.dispatchEvent("arrangeComplete",null,[n.filteredItems])}var e,i,o,n=this;this.once("layoutComplete",function(){e=!0,t()}),this.once("hideComplete",function(){i=!0,t()}),this.once("revealComplete",function(){o=!0,t()})},l._filter=function(t){var e=this.options.filter;e=e||"*";for(var i=[],o=[],n=[],s=this._getFilterTest(e),r=0;r<t.length;r++){var a=t[r];if(!a.isIgnored){var u=s(a);u&&i.push(a),u&&a.isHidden?o.push(a):u||a.isHidden||n.push(a)}}return{matches:i,needReveal:o,needHide:n}},l._getFilterTest=function(t){return u&&this.options.isJQueryFiltering?function(e){return u(e.element).is(t); +}:"function"==typeof t?function(e){return t(e.element)}:function(e){return o(e.element,t)}},l.updateSortData=function(t){var e;t?(t=n.makeArray(t),e=this.getItems(t)):e=this.items,this._getSorters(),this._updateItemsSortData(e)},l._getSorters=function(){var t=this.options.getSortData;for(var e in t){var i=t[e];this._sorters[e]=f(i)}},l._updateItemsSortData=function(t){for(var e=t&&t.length,i=0;e&&i<e;i++){var o=t[i];o.updateSortData()}};var f=function(){function t(t){if("string"!=typeof t)return t;var i=h(t).split(" "),o=i[0],n=o.match(/^\[(.+)\]$/),s=n&&n[1],r=e(s,o),a=d.sortDataParsers[i[1]];return t=a?function(t){return t&&a(r(t))}:function(t){return t&&r(t)}}function e(t,e){return t?function(e){return e.getAttribute(t)}:function(t){var i=t.querySelector(e);return i&&i.textContent}}return t}();d.sortDataParsers={parseInt:function(t){return parseInt(t,10)},parseFloat:function(t){return parseFloat(t)}},l._sort=function(){if(this.options.sortBy){var t=n.makeArray(this.options.sortBy);this._getIsSameSortBy(t)||(this.sortHistory=t.concat(this.sortHistory));var e=a(this.sortHistory,this.options.sortAscending);this.filteredItems.sort(e)}},l._getIsSameSortBy=function(t){for(var e=0;e<t.length;e++)if(t[e]!=this.sortHistory[e])return!1;return!0},l._mode=function(){var t=this.options.layoutMode,e=this.modes[t];if(!e)throw new Error("No layout mode: "+t);return e.options=this.options[t],e},l._resetLayout=function(){e.prototype._resetLayout.call(this),this._mode()._resetLayout()},l._getItemLayoutPosition=function(t){return this._mode()._getItemLayoutPosition(t)},l._manageStamp=function(t){this._mode()._manageStamp(t)},l._getContainerSize=function(){return this._mode()._getContainerSize()},l.needsResizeLayout=function(){return this._mode().needsResizeLayout()},l.appended=function(t){var e=this.addItems(t);if(e.length){var i=this._filterRevealAdded(e);this.filteredItems=this.filteredItems.concat(i)}},l.prepended=function(t){var e=this._itemize(t);if(e.length){this._resetLayout(),this._manageStamps();var i=this._filterRevealAdded(e);this.layoutItems(this.filteredItems),this.filteredItems=i.concat(this.filteredItems),this.items=e.concat(this.items)}},l._filterRevealAdded=function(t){var e=this._filter(t);return this.hide(e.needHide),this.reveal(e.matches),this.layoutItems(e.matches,!0),e.matches},l.insert=function(t){var e=this.addItems(t);if(e.length){var i,o,n=e.length;for(i=0;i<n;i++)o=e[i],this.element.appendChild(o.element);var s=this._filter(e).matches;for(i=0;i<n;i++)e[i].isLayoutInstant=!0;for(this.arrange(),i=0;i<n;i++)delete e[i].isLayoutInstant;this.reveal(s)}};var c=l.remove;return l.remove=function(t){t=n.makeArray(t);var e=this.getItems(t);c.call(this,t);for(var i=e&&e.length,o=0;i&&o<i;o++){var s=e[o];n.removeFrom(this.filteredItems,s)}},l.shuffle=function(){for(var t=0;t<this.items.length;t++){var e=this.items[t];e.sortData.random=Math.random()}this.options.sortBy="random",this._sort(),this._layout()},l._noTransition=function(t,e){var i=this.options.transitionDuration;this.options.transitionDuration=0;var o=t.apply(this,e);return this.options.transitionDuration=i,o},l.getFilteredItemElements=function(){return this.filteredItems.map(function(t){return t.element})},d}); \ No newline at end of file diff --git a/public/js/pace.min.js b/public/js/pace.min.js new file mode 100644 index 0000000..738ca5c --- /dev/null +++ b/public/js/pace.min.js @@ -0,0 +1,6 @@ +/*! + * pace.js v1.2.4 + * https://github.com/CodeByZach/pace/ + * Licensed MIT © HubSpot, Inc. + */ +!function(){function o(t,e){return function(){return t.apply(e,arguments)}}var u,c,i,s,n,y,t,l,v,r,a,p,e,h,w,b,f,g,d,m,k,S,q,L,x,P,T,R,j,O,E,M,A,C,N,_,F,U,W,X,D,H,I,z,G,B,J=[].slice,K={}.hasOwnProperty,Q=function(t,e){for(var n in e)K.call(e,n)&&(t[n]=e[n]);function r(){this.constructor=t}return r.prototype=e.prototype,t.prototype=new r,t.__super__=e.prototype,t},V=[].indexOf||function(t){for(var e=0,n=this.length;e<n;e++)if(e in this&&this[e]===t)return e;return-1};function Y(){}for(g={className:"",catchupTime:100,initialRate:.03,minTime:250,ghostTime:100,maxProgressPerFrame:20,easeFactor:1.25,startOnPageLoad:!0,restartOnPushState:!0,restartOnRequestAfter:500,target:"body",elements:{checkInterval:100,selectors:["body"]},eventLag:{minSamples:10,sampleCount:3,lagThreshold:3},ajax:{trackMethods:["GET"],trackWebSockets:!0,ignoreURLs:[]}},P=function(){var t;return null!=(t="undefined"!=typeof performance&&null!==performance&&"function"==typeof performance.now?performance.now():void 0)?t:+new Date},R=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame,f=window.cancelAnimationFrame||window.mozCancelAnimationFrame,p=function(t,e,n){if("function"==typeof t.addEventListener)return t.addEventListener(e,n,!1);var r;"function"!=typeof t["on"+e]||"object"!=typeof t["on"+e].eventListeners?(r=new s,"function"==typeof t["on"+e]&&r.on(e,t["on"+e]),t["on"+e]=function(t){return r.trigger(e,t)},t["on"+e].eventListeners=r):r=t["on"+e].eventListeners,r.on(e,n)},null==R&&(R=function(t){return setTimeout(t,50)},f=function(t){return clearTimeout(t)}),O=function(e){var n=P(),r=function(){var t=P()-n;return 33<=t?(n=P(),e(t,function(){return R(r)})):setTimeout(r,33-t)};return r()},j=function(){var t=arguments[0],e=arguments[1],n=3<=arguments.length?J.call(arguments,2):[];return"function"==typeof t[e]?t[e].apply(t,n):t[e]},d=function(){for(var t,e,n,r=arguments[0],s=2<=arguments.length?J.call(arguments,1):[],o=0,i=s.length;o<i;o++)if(e=s[o])for(t in e)K.call(e,t)&&(n=e[t],null!=r[t]&&"object"==typeof r[t]&&null!=n&&"object"==typeof n?d(r[t],n):r[t]=n);return r},h=function(t){for(var e,n,r=e=0,s=0,o=t.length;s<o;s++)n=t[s],r+=Math.abs(n),e++;return r/e},k=function(t,e){var n,r;if(null==t&&(t="options"),null==e&&(e=!0),r=document.querySelector("[data-pace-"+t+"]")){if(n=r.getAttribute("data-pace-"+t),!e)return n;try{return JSON.parse(n)}catch(t){return"undefined"!=typeof console&&null!==console?console.error("Error parsing inline pace options",t):void 0}}},Y.prototype.on=function(t,e,n,r){var s;return null==r&&(r=!1),null==this.bindings&&(this.bindings={}),null==(s=this.bindings)[t]&&(s[t]=[]),this.bindings[t].push({handler:e,ctx:n,once:r})},Y.prototype.once=function(t,e,n){return this.on(t,e,n,!0)},Y.prototype.off=function(t,e){var n,r,s;if(null!=(null!=(r=this.bindings)?r[t]:void 0)){if(null==e)return delete this.bindings[t];for(n=0,s=[];n<this.bindings[t].length;)this.bindings[t][n].handler===e?s.push(this.bindings[t].splice(n,1)):s.push(n++);return s}},Y.prototype.trigger=function(){var t,e,n,r,s,o,i=arguments[0],a=2<=arguments.length?J.call(arguments,1):[];if(null!=(r=this.bindings)&&r[i]){for(n=0,o=[];n<this.bindings[i].length;)e=(s=this.bindings[i][n]).handler,t=s.ctx,s=s.once,e.apply(null!=t?t:this,a),s?o.push(this.bindings[i].splice(n,1)):o.push(n++);return o}},B=Y,y=window.Pace||{},window.Pace=y,d(y,B.prototype),T=y.options=d({},g,window.paceOptions,k()),X=0,H=(z=["ajax","document","eventLag","elements"]).length;X<H;X++)!0===T[C=z[X]]&&(T[C]=g[C]);function Z(){return Z.__super__.constructor.apply(this,arguments)}function $(){this.progress=0}function tt(){this.bindings={}}function et(){var e,o=this;et.__super__.constructor.apply(this,arguments),e=function(r){var s=r.open;return r.open=function(t,e,n){return A(t)&&o.trigger("request",{type:t,url:e,request:r}),s.apply(r,arguments)}},window.XMLHttpRequest=function(t){t=new W(t);return e(t),t};try{m(window.XMLHttpRequest,W)}catch(t){}if(null!=U){window.XDomainRequest=function(){var t=new U;return e(t),t};try{m(window.XDomainRequest,U)}catch(t){}}if(null!=F&&T.ajax.trackWebSockets){window.WebSocket=function(t,e){var n=null!=e?new F(t,e):new F(t);return A("socket")&&o.trigger("request",{type:"socket",url:t,protocols:e,request:n}),n};try{m(window.WebSocket,F)}catch(t){}}}function nt(){this.complete=o(this.complete,this);var t=this;this.elements=[],S().on("request",function(){return t.watch.apply(t,arguments)})}function rt(t){var e,n,r,s;for(null==t&&(t={}),this.complete=o(this.complete,this),this.elements=[],null==t.selectors&&(t.selectors=[]),n=0,r=(s=t.selectors).length;n<r;n++)e=s[n],this.elements.push(new i(e,this.complete))}function st(t,e){this.selector=t,this.completeCallback=e,this.progress=0,this.check()}function ot(){var t,e,n=this;this.progress=null!=(e=this.states[document.readyState])?e:100,t=document.onreadystatechange,document.onreadystatechange=function(){return null!=n.states[document.readyState]&&(n.progress=n.states[document.readyState]),"function"==typeof t?t.apply(null,arguments):void 0}}function it(t){this.source=t,this.last=this.sinceLastUpdate=0,this.rate=T.initialRate,this.catchup=0,this.progress=this.lastProgress=0,null!=this.source&&(this.progress=j(this.source,"progress"))}B=Error,Q(Z,B),n=Z,$.prototype.getElement=function(){var t;if(null==this.el){if(!(t=document.querySelector(T.target)))throw new n;this.el=document.createElement("div"),this.el.className="pace pace-active",document.body.className=document.body.className.replace(/(pace-done )|/,"pace-running ");var e=""!==T.className?" "+T.className:"";this.el.innerHTML='<div class="pace-progress'+e+'">\n <div class="pace-progress-inner"></div>\n</div>\n<div class="pace-activity"></div>',null!=t.firstChild?t.insertBefore(this.el,t.firstChild):t.appendChild(this.el)}return this.el},$.prototype.finish=function(){var t=this.getElement();return t.className=t.className.replace("pace-active","pace-inactive"),document.body.className=document.body.className.replace("pace-running ","pace-done ")},$.prototype.update=function(t){return this.progress=t,y.trigger("progress",t),this.render()},$.prototype.destroy=function(){try{this.getElement().parentNode.removeChild(this.getElement())}catch(t){n=t}return this.el=void 0},$.prototype.render=function(){var t,e,n,r,s,o,i;if(null==document.querySelector(T.target))return!1;for(t=this.getElement(),r="translate3d("+this.progress+"%, 0, 0)",s=0,o=(i=["webkitTransform","msTransform","transform"]).length;s<o;s++)e=i[s],t.children[0].style[e]=r;return(!this.lastRenderedProgress||this.lastRenderedProgress|0!==this.progress|0)&&(t.children[0].setAttribute("data-progress-text",(0|this.progress)+"%"),100<=this.progress?n="99":(n=this.progress<10?"0":"",n+=0|this.progress),t.children[0].setAttribute("data-progress",""+n)),y.trigger("change",this.progress),this.lastRenderedProgress=this.progress},$.prototype.done=function(){return 100<=this.progress},c=$,tt.prototype.trigger=function(t,e){var n,r,s,o,i;if(null!=this.bindings[t]){for(i=[],r=0,s=(o=this.bindings[t]).length;r<s;r++)n=o[r],i.push(n.call(this,e));return i}},tt.prototype.on=function(t,e){var n;return null==(n=this.bindings)[t]&&(n[t]=[]),this.bindings[t].push(e)},s=tt,W=window.XMLHttpRequest,U=window.XDomainRequest,F=window.WebSocket,m=function(t,e){var n,r=[];for(n in e.prototype)try{null==t[n]&&"function"!=typeof e[n]?"function"==typeof Object.defineProperty?r.push(Object.defineProperty(t,n,{get:function(t){return function(){return e.prototype[t]}}(n),configurable:!0,enumerable:!0})):r.push(t[n]=e.prototype[n]):r.push(void 0)}catch(t){0}return r},L=[],y.ignore=function(){var t=arguments[0],e=2<=arguments.length?J.call(arguments,1):[];return L.unshift("ignore"),e=t.apply(null,e),L.shift(),e},y.track=function(){var t=arguments[0],e=2<=arguments.length?J.call(arguments,1):[];return L.unshift("track"),e=t.apply(null,e),L.shift(),e},A=function(t){if(null==t&&(t="GET"),"track"===L[0])return"force";if(!L.length&&T.ajax){if("socket"===t&&T.ajax.trackWebSockets)return!0;if(t=t.toUpperCase(),0<=V.call(T.ajax.trackMethods,t))return!0}return!1},Q(et,s),t=et,D=null,M=function(t){for(var e,n=T.ajax.ignoreURLs,r=0,s=n.length;r<s;r++)if("string"==typeof(e=n[r])){if(-1!==t.indexOf(e))return!0}else if(e.test(t))return!0;return!1},(S=function(){return D=null==D?new t:D})().on("request",function(t){var o,i=t.type,a=t.request,e=t.url;if(!M(e))return y.running||!1===T.restartOnRequestAfter&&"force"!==A(i)?void 0:(o=arguments,"boolean"==typeof(e=T.restartOnRequestAfter||0)&&(e=0),setTimeout(function(){var t,e,n,r,s="socket"===i?a.readyState<1:0<(s=a.readyState)&&s<4;if(s){for(y.restart(),r=[],t=0,e=(n=y.sources).length;t<e;t++){if((C=n[t])instanceof u){C.watch.apply(C,o);break}r.push(void 0)}return r}},e))}),nt.prototype.watch=function(t){var e=t.type,n=t.request,t=t.url;if(!M(t))return n=new("socket"===e?r:a)(n,this.complete),this.elements.push(n)},nt.prototype.complete=function(e){return this.elements=this.elements.filter(function(t){return t!==e})},u=nt,a=function(e,n){var t,r,s,o,i=this;if(this.progress=0,null!=window.ProgressEvent)for(p(e,"progress",function(t){return t.lengthComputable?i.progress=100*t.loaded/t.total:i.progress=i.progress+(100-i.progress)/2}),t=0,r=(o=["load","abort","timeout","error"]).length;t<r;t++)p(e,o[t],function(){return n(i),i.progress=100});else s=e.onreadystatechange,e.onreadystatechange=function(){var t;return 0===(t=e.readyState)||4===t?(n(i),i.progress=100):3===e.readyState&&(i.progress=50),"function"==typeof s?s.apply(null,arguments):void 0}},r=function(t,e){for(var n,r=this,s=this.progress=0,o=(n=["error","open"]).length;s<o;s++)p(t,n[s],function(){return e(r),r.progress=100})},rt.prototype.complete=function(e){return this.elements=this.elements.filter(function(t){return t!==e})},k=rt,st.prototype.check=function(){var t=this;return document.querySelector(this.selector)?this.done():setTimeout(function(){return t.check()},T.elements.checkInterval)},st.prototype.done=function(){return this.completeCallback(this),this.completeCallback=null,this.progress=100},i=st,ot.prototype.states={loading:0,interactive:50,complete:100},B=ot,Q=function(){var e,n,r,s,o,i=this;this.progress=0,o=[],s=0,r=P(),n=setInterval(function(){var t=P()-r-50;return r=P(),o.push(t),o.length>T.eventLag.sampleCount&&o.shift(),e=h(o),++s>=T.eventLag.minSamples&&e<T.eventLag.lagThreshold?(i.progress=100,clearInterval(n)):i.progress=3/(e+3)*100},50)},it.prototype.tick=function(t,e){return 100<=(e=null==e?j(this.source,"progress"):e)&&(this.done=!0),e===this.last?this.sinceLastUpdate+=t:(this.sinceLastUpdate&&(this.rate=(e-this.last)/this.sinceLastUpdate),this.catchup=(e-this.progress)/T.catchupTime,this.sinceLastUpdate=0,this.last=e),e>this.progress&&(this.progress+=this.catchup*t),e=1-Math.pow(this.progress/100,T.easeFactor),this.progress+=e*this.rate*t,this.progress=Math.min(this.lastProgress+T.maxProgressPerFrame,this.progress),this.progress=Math.max(0,this.progress),this.progress=Math.min(100,this.progress),this.lastProgress=this.progress,this.progress},v=it,b=e=_=w=E=N=null,y.running=!1,q=function(){if(T.restartOnPushState)return y.restart()},null!=window.history.pushState&&(I=window.history.pushState,window.history.pushState=function(){return q(),I.apply(window.history,arguments)}),null!=window.history.replaceState&&(G=window.history.replaceState,window.history.replaceState=function(){return q(),G.apply(window.history,arguments)}),l={ajax:u,elements:k,document:B,eventLag:Q},(x=function(){var t,e,n,r,s,o,i,a;for(y.sources=N=[],e=0,r=(o=["ajax","elements","document","eventLag"]).length;e<r;e++)!1!==T[t=o[e]]&&N.push(new l[t](T[t]));for(n=0,s=(a=null!=(i=T.extraSources)?i:[]).length;n<s;n++)C=a[n],N.push(new C(T));return y.bar=w=new c,E=[],_=new v})(),y.stop=function(){return y.trigger("stop"),y.running=!1,w.destroy(),b=!0,null!=e&&("function"==typeof f&&f(e),e=null),x()},y.restart=function(){return y.trigger("restart"),y.stop(),y.start()},y.go=function(){var m;return y.running=!0,w.render(),m=P(),b=!1,e=O(function(t,e){w.progress;for(var n,r,s,o,i,a,u,c,l,p,h=a=0,f=!0,g=u=0,d=N.length;u<d;g=++u)for(C=N[g],i=null!=E[g]?E[g]:E[g]=[],s=c=0,l=(r=null!=(p=C.elements)?p:[C]).length;c<l;s=++c)o=r[s],f&=(o=null!=i[s]?i[s]:i[s]=new v(o)).done,o.done||(h++,a+=o.tick(t));return n=a/h,w.update(_.tick(t,n)),w.done()||f||b?(w.update(100),y.trigger("done"),setTimeout(function(){return w.finish(),y.running=!1,y.trigger("hide")},Math.max(T.ghostTime,Math.max(T.minTime-(P()-m),0)))):e()})},y.start=function(t){d(T,t),y.running=!0;try{w.render()}catch(t){n=t}return document.querySelector(".pace")?(y.trigger("start"),y.go()):setTimeout(y.start,50)},"function"==typeof define&&define.amd?define(function(){return y}):"object"==typeof exports?module.exports=y:T.startOnPageLoad&&y.start()}.call(this); \ No newline at end of file diff --git a/public/js/simpleParallax.min.js b/public/js/simpleParallax.min.js new file mode 100644 index 0000000..45fd2a4 --- /dev/null +++ b/public/js/simpleParallax.min.js @@ -0,0 +1,652 @@ +/*! + * simpleParallax.min - simpleParallax is a simple JavaScript library that gives your website parallax animations on any images or videos, + * @date: 09-06-2020 12:9:37, + * @version: 5.5.1, + * @link: https://simpleparallax.com/ + */ +!(function (t, e) { + "object" == typeof exports && "object" == typeof module + ? (module.exports = e()) + : "function" == typeof define && define.amd + ? define("simpleParallax", [], e) + : "object" == typeof exports + ? (exports.simpleParallax = e()) + : (t.simpleParallax = e()); +})(window, function () { + return (function (t) { + var e = {}; + function n(i) { + if (e[i]) return e[i].exports; + var o = (e[i] = { i: i, l: !1, exports: {} }); + return t[i].call(o.exports, o, o.exports, n), (o.l = !0), o.exports; + } + return ( + (n.m = t), + (n.c = e), + (n.d = function (t, e, i) { + n.o(t, e) || Object.defineProperty(t, e, { enumerable: !0, get: i }); + }), + (n.r = function (t) { + "undefined" != typeof Symbol && + Symbol.toStringTag && + Object.defineProperty(t, Symbol.toStringTag, { value: "Module" }), + Object.defineProperty(t, "__esModule", { value: !0 }); + }), + (n.t = function (t, e) { + if ((1 & e && (t = n(t)), 8 & e)) return t; + if (4 & e && "object" == typeof t && t && t.__esModule) return t; + var i = Object.create(null); + if ( + (n.r(i), + Object.defineProperty(i, "default", { enumerable: !0, value: t }), + 2 & e && "string" != typeof t) + ) + for (var o in t) + n.d( + i, + o, + function (e) { + return t[e]; + }.bind(null, o) + ); + return i; + }), + (n.n = function (t) { + var e = + t && t.__esModule + ? function () { + return t.default; + } + : function () { + return t; + }; + return n.d(e, "a", e), e; + }), + (n.o = function (t, e) { + return Object.prototype.hasOwnProperty.call(t, e); + }), + (n.p = ""), + n((n.s = 0)) + ); + })([ + function (t, e, n) { + "use strict"; + n.r(e), + n.d(e, "default", function () { + return x; + }); + var i = function () { + return Element.prototype.closest && "IntersectionObserver" in window; + }; + function o(t, e) { + for (var n = 0; n < e.length; n++) { + var i = e[n]; + (i.enumerable = i.enumerable || !1), + (i.configurable = !0), + "value" in i && (i.writable = !0), + Object.defineProperty(t, i.key, i); + } + } + var s = new ((function () { + function t() { + !(function (t, e) { + if (!(t instanceof e)) + throw new TypeError("Cannot call a class as a function"); + })(this, t), + (this.positions = { top: 0, bottom: 0, height: 0 }); + } + var e, n, i; + return ( + (e = t), + (n = [ + { + key: "setViewportTop", + value: function (t) { + return ( + (this.positions.top = t ? t.scrollTop : window.pageYOffset), + this.positions + ); + }, + }, + { + key: "setViewportBottom", + value: function () { + return ( + (this.positions.bottom = + this.positions.top + this.positions.height), + this.positions + ); + }, + }, + { + key: "setViewportAll", + value: function (t) { + return ( + (this.positions.top = t ? t.scrollTop : window.pageYOffset), + (this.positions.height = t + ? t.clientHeight + : document.documentElement.clientHeight), + (this.positions.bottom = + this.positions.top + this.positions.height), + this.positions + ); + }, + }, + ]) && o(e.prototype, n), + i && o(e, i), + t + ); + })())(), + r = function (t) { + return NodeList.prototype.isPrototypeOf(t) || + HTMLCollection.prototype.isPrototypeOf(t) + ? Array.from(t) + : "string" == typeof t || t instanceof String + ? document.querySelectorAll(t) + : [t]; + }, + a = (function () { + for ( + var t, + e = + "transform webkitTransform mozTransform oTransform msTransform".split( + " " + ), + n = 0; + void 0 === t; + + ) + (t = + void 0 !== document.createElement("div").style[e[n]] + ? e[n] + : void 0), + (n += 1); + return t; + })(), + l = function (t) { + return ( + "video" === t.tagName.toLowerCase() || + (!!t && + !!t.complete && + (void 0 === t.naturalWidth || 0 !== t.naturalWidth)) + ); + }; + function u(t) { + return ( + (function (t) { + if (Array.isArray(t)) return c(t); + })(t) || + (function (t) { + if ("undefined" != typeof Symbol && Symbol.iterator in Object(t)) + return Array.from(t); + })(t) || + (function (t, e) { + if (!t) return; + if ("string" == typeof t) return c(t, e); + var n = Object.prototype.toString.call(t).slice(8, -1); + "Object" === n && t.constructor && (n = t.constructor.name); + if ("Map" === n || "Set" === n) return Array.from(t); + if ( + "Arguments" === n || + /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) + ) + return c(t, e); + })(t) || + (function () { + throw new TypeError( + "Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method." + ); + })() + ); + } + function c(t, e) { + (null == e || e > t.length) && (e = t.length); + for (var n = 0, i = new Array(e); n < e; n++) i[n] = t[n]; + return i; + } + function h(t, e) { + for (var n = 0; n < e.length; n++) { + var i = e[n]; + (i.enumerable = i.enumerable || !1), + (i.configurable = !0), + "value" in i && (i.writable = !0), + Object.defineProperty(t, i.key, i); + } + } + var f = (function () { + function t(e, n) { + var i = this; + !(function (t, e) { + if (!(t instanceof e)) + throw new TypeError("Cannot call a class as a function"); + })(this, t), + (this.element = e), + (this.elementContainer = e), + (this.settings = n), + (this.isVisible = !0), + (this.isInit = !1), + (this.oldTranslateValue = -1), + (this.init = this.init.bind(this)), + l(e) + ? this.init() + : this.element.addEventListener("load", function () { + setTimeout(function () { + i.init(!0); + }, 50); + }); + } + var e, n, i; + return ( + (e = t), + (n = [ + { + key: "init", + value: function (t) { + var e = this; + this.isInit || + (t && (this.rangeMax = null), + this.element.closest(".simpleParallax") || + (!1 === this.settings.overflow && + this.wrapElement(this.element), + this.setTransformCSS(), + this.getElementOffset(), + this.intersectionObserver(), + this.getTranslateValue(), + this.animate(), + this.settings.delay > 0 && + setTimeout(function () { + e.setTransitionCSS(); + }, 10), + (this.isInit = !0))); + }, + }, + { + key: "wrapElement", + value: function () { + var t = + this.settings.customWrapper && + this.element.closest(this.settings.customWrapper), + e = this.element.closest("picture") || this.element, + n = document.createElement("div"); + t && (n = this.element.closest(this.settings.customWrapper)), + n.classList.add("simpleParallax"), + (n.style.overflow = "hidden"), + t || (e.parentNode.insertBefore(n, e), n.appendChild(e)), + (this.elementContainer = n); + }, + }, + { + key: "unWrapElement", + value: function () { + var t = this.elementContainer; + this.settings.customWrapper && + this.element.closest(this.settings.customWrapper) + ? (t.classList.remove("simpleParallax"), + (t.style.overflow = "")) + : t.replaceWith.apply(t, u(t.childNodes)); + }, + }, + { + key: "setTransformCSS", + value: function () { + !1 === this.settings.overflow && + (this.element.style[a] = "scale(".concat( + this.settings.scale, + ")" + )), + (this.element.style.willChange = "transform"); + }, + }, + { + key: "setTransitionCSS", + value: function () { + this.element.style.transition = "transform " + .concat(this.settings.delay, "s ") + .concat(this.settings.transition); + }, + }, + { + key: "unSetStyle", + value: function () { + (this.element.style.willChange = ""), + (this.element.style[a] = ""), + (this.element.style.transition = ""); + }, + }, + { + key: "getElementOffset", + value: function () { + var t = this.elementContainer.getBoundingClientRect(); + if ( + ((this.elementHeight = t.height), + (this.elementTop = t.top + s.positions.top), + this.settings.customContainer) + ) { + var e = this.settings.customContainer.getBoundingClientRect(); + this.elementTop = t.top - e.top + s.positions.top; + } + this.elementBottom = this.elementHeight + this.elementTop; + }, + }, + { + key: "buildThresholdList", + value: function () { + for (var t = [], e = 1; e <= this.elementHeight; e++) { + var n = e / this.elementHeight; + t.push(n); + } + return t; + }, + }, + { + key: "intersectionObserver", + value: function () { + var t = { root: null, threshold: this.buildThresholdList() }; + (this.observer = new IntersectionObserver( + this.intersectionObserverCallback.bind(this), + t + )), + this.observer.observe(this.element); + }, + }, + { + key: "intersectionObserverCallback", + value: function (t) { + var e = this; + t.forEach(function (t) { + t.isIntersecting ? (e.isVisible = !0) : (e.isVisible = !1); + }); + }, + }, + { + key: "checkIfVisible", + value: function () { + return ( + this.elementBottom > s.positions.top && + this.elementTop < s.positions.bottom + ); + }, + }, + { + key: "getRangeMax", + value: function () { + var t = this.element.clientHeight; + this.rangeMax = t * this.settings.scale - t; + }, + }, + { + key: "getTranslateValue", + value: function () { + var t = ( + (s.positions.bottom - this.elementTop) / + ((s.positions.height + this.elementHeight) / 100) + ).toFixed(1); + return ( + (t = Math.min(100, Math.max(0, t))), + 0 !== this.settings.maxTransition && + t > this.settings.maxTransition && + (t = this.settings.maxTransition), + this.oldPercentage !== t && + (this.rangeMax || this.getRangeMax(), + (this.translateValue = ( + (t / 100) * this.rangeMax - + this.rangeMax / 2 + ).toFixed(0)), + this.oldTranslateValue !== this.translateValue && + ((this.oldPercentage = t), + (this.oldTranslateValue = this.translateValue), + !0)) + ); + }, + }, + { + key: "animate", + value: function () { + var t, + e = 0, + n = 0; + (this.settings.orientation.includes("left") || + this.settings.orientation.includes("right")) && + (n = "".concat( + this.settings.orientation.includes("left") + ? -1 * this.translateValue + : this.translateValue, + "px" + )), + (this.settings.orientation.includes("up") || + this.settings.orientation.includes("down")) && + (e = "".concat( + this.settings.orientation.includes("up") + ? -1 * this.translateValue + : this.translateValue, + "px" + )), + (t = + !1 === this.settings.overflow + ? "translate3d(" + .concat(n, ", ") + .concat(e, ", 0) scale(") + .concat(this.settings.scale, ")") + : "translate3d(".concat(n, ", ").concat(e, ", 0)")), + (this.element.style[a] = t); + }, + }, + ]) && h(e.prototype, n), + i && h(e, i), + t + ); + })(); + function m(t) { + return ( + (function (t) { + if (Array.isArray(t)) return y(t); + })(t) || + (function (t) { + if ("undefined" != typeof Symbol && Symbol.iterator in Object(t)) + return Array.from(t); + })(t) || + d(t) || + (function () { + throw new TypeError( + "Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method." + ); + })() + ); + } + function p(t, e) { + return ( + (function (t) { + if (Array.isArray(t)) return t; + })(t) || + (function (t, e) { + if ("undefined" == typeof Symbol || !(Symbol.iterator in Object(t))) + return; + var n = [], + i = !0, + o = !1, + s = void 0; + try { + for ( + var r, a = t[Symbol.iterator](); + !(i = (r = a.next()).done) && + (n.push(r.value), !e || n.length !== e); + i = !0 + ); + } catch (t) { + (o = !0), (s = t); + } finally { + try { + i || null == a.return || a.return(); + } finally { + if (o) throw s; + } + } + return n; + })(t, e) || + d(t, e) || + (function () { + throw new TypeError( + "Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method." + ); + })() + ); + } + function d(t, e) { + if (t) { + if ("string" == typeof t) return y(t, e); + var n = Object.prototype.toString.call(t).slice(8, -1); + return ( + "Object" === n && t.constructor && (n = t.constructor.name), + "Map" === n || "Set" === n + ? Array.from(t) + : "Arguments" === n || + /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) + ? y(t, e) + : void 0 + ); + } + } + function y(t, e) { + (null == e || e > t.length) && (e = t.length); + for (var n = 0, i = new Array(e); n < e; n++) i[n] = t[n]; + return i; + } + function v(t, e) { + for (var n = 0; n < e.length; n++) { + var i = e[n]; + (i.enumerable = i.enumerable || !1), + (i.configurable = !0), + "value" in i && (i.writable = !0), + Object.defineProperty(t, i.key, i); + } + } + var g, + b, + w = !1, + T = [], + x = (function () { + function t(e, n) { + if ( + ((function (t, e) { + if (!(t instanceof e)) + throw new TypeError("Cannot call a class as a function"); + })(this, t), + e && i()) + ) { + if ( + ((this.elements = r(e)), + (this.defaults = { + delay: 0, + orientation: "up", + scale: 1.3, + overflow: !1, + transition: "cubic-bezier(0,0,0,1)", + customContainer: !1, + customWrapper: !1, + maxTransition: 0, + }), + (this.settings = Object.assign(this.defaults, n)), + this.settings.customContainer) + ) { + var o = p(r(this.settings.customContainer), 1); + this.customContainer = o[0]; + } + (this.lastPosition = -1), + (this.resizeIsDone = this.resizeIsDone.bind(this)), + (this.refresh = this.refresh.bind(this)), + (this.proceedRequestAnimationFrame = + this.proceedRequestAnimationFrame.bind(this)), + this.init(); + } + } + var e, n, o; + return ( + (e = t), + (n = [ + { + key: "init", + value: function () { + var t = this; + s.setViewportAll(this.customContainer), + (T = [].concat( + m( + this.elements.map(function (e) { + return new f(e, t.settings); + }) + ), + m(T) + )), + w || + (this.proceedRequestAnimationFrame(), + window.addEventListener("resize", this.resizeIsDone), + (w = !0)); + }, + }, + { + key: "resizeIsDone", + value: function () { + clearTimeout(b), (b = setTimeout(this.refresh, 200)); + }, + }, + { + key: "proceedRequestAnimationFrame", + value: function () { + var t = this; + s.setViewportTop(this.customContainer), + this.lastPosition !== s.positions.top + ? (s.setViewportBottom(), + T.forEach(function (e) { + t.proceedElement(e); + }), + (g = window.requestAnimationFrame( + this.proceedRequestAnimationFrame + )), + (this.lastPosition = s.positions.top)) + : (g = window.requestAnimationFrame( + this.proceedRequestAnimationFrame + )); + }, + }, + { + key: "proceedElement", + value: function (t) { + (this.customContainer ? t.checkIfVisible() : t.isVisible) && + t.getTranslateValue() && + t.animate(); + }, + }, + { + key: "refresh", + value: function () { + s.setViewportAll(this.customContainer), + T.forEach(function (t) { + t.getElementOffset(), t.getRangeMax(); + }), + (this.lastPosition = -1); + }, + }, + { + key: "destroy", + value: function () { + var t = this, + e = []; + (T = T.filter(function (n) { + return t.elements.includes(n.element) ? (e.push(n), !1) : n; + })), + e.forEach(function (e) { + e.unSetStyle(), + !1 === t.settings.overflow && e.unWrapElement(); + }), + T.length || + (window.cancelAnimationFrame(g), + window.removeEventListener("resize", this.refresh)); + }, + }, + ]) && v(e.prototype, n), + o && v(e, o), + t + ); + })(); + }, + ]).default; +}); diff --git a/public/js/splitting.min.js b/public/js/splitting.min.js new file mode 100644 index 0000000..ee83f06 --- /dev/null +++ b/public/js/splitting.min.js @@ -0,0 +1,226 @@ +!(function (n, t) { + "object" == typeof exports && "undefined" != typeof module + ? (module.exports = t()) + : "function" == typeof define && define.amd + ? define(t) + : (n.Splitting = t()); +})(this, function () { + "use strict"; + var u = document, + l = u.createTextNode.bind(u); + function d(n, t, e) { + n.style.setProperty(t, e); + } + function f(n, t) { + return n.appendChild(t); + } + function p(n, t, e, r) { + var i = u.createElement("span"); + return ( + t && (i.className = t), + e && (!r && i.setAttribute("data-" + t, e), (i.textContent = e)), + (n && f(n, i)) || i + ); + } + function h(n, t) { + return n.getAttribute("data-" + t); + } + function m(n, t) { + return n && 0 != n.length + ? n.nodeName + ? [n] + : [].slice.call(n[0].nodeName ? n : (t || u).querySelectorAll(n)) + : []; + } + function o(n) { + for (var t = []; n--; ) t[n] = []; + return t; + } + function g(n, t) { + n && n.some(t); + } + function c(t) { + return function (n) { + return t[n]; + }; + } + var a = {}; + function n(n, t, e, r) { + return { by: n, depends: t, key: e, split: r }; + } + function e(n) { + return (function t(e, n, r) { + var i = r.indexOf(e); + if (-1 == i) + r.unshift(e), + g(a[e].depends, function (n) { + t(n, e, r); + }); + else { + var u = r.indexOf(n); + r.splice(i, 1), r.splice(u, 0, e); + } + return r; + })(n, 0, []).map(c(a)); + } + function t(n) { + a[n.by] = n; + } + function v(n, r, i, u, o) { + n.normalize(); + var c = [], + a = document.createDocumentFragment(); + u && c.push(n.previousSibling); + var s = []; + return ( + m(n.childNodes).some(function (n) { + if (!n.tagName || n.hasChildNodes()) { + if (n.childNodes && n.childNodes.length) + return s.push(n), void c.push.apply(c, v(n, r, i, u, o)); + var t = n.wholeText || "", + e = t.trim(); + e.length && + (" " === t[0] && s.push(l(" ")), + g(e.split(i), function (n, t) { + t && o && s.push(p(a, "whitespace", " ", o)); + var e = p(a, r, n); + c.push(e), s.push(e); + }), + " " === t[t.length - 1] && s.push(l(" "))); + } else s.push(n); + }), + g(s, function (n) { + f(a, n); + }), + (n.innerHTML = ""), + f(n, a), + c + ); + } + var s = 0; + var i = "words", + r = n(i, s, "word", function (n) { + return v(n, "word", /\s+/, 0, 1); + }), + y = "chars", + w = n(y, [i], "char", function (n, e, t) { + var r = []; + return ( + g(t[i], function (n, t) { + r.push.apply(r, v(n, "char", "", e.whitespace && t)); + }), + r + ); + }); + function b(t) { + var f = (t = t || {}).key; + return m(t.target || "[data-splitting]").map(function (a) { + var s = a["🍌"]; + if (!t.force && s) return s; + s = a["🍌"] = { el: a }; + var n = e(t.by || h(a, "splitting") || y), + l = (function (n, t) { + for (var e in t) n[e] = t[e]; + return n; + })({}, t); + return ( + g(n, function (n) { + if (n.split) { + var t = n.by, + e = (f ? "-" + f : "") + n.key, + r = n.split(a, l, s); + e && + ((i = a), + (c = (o = "--" + e) + "-index"), + g((u = r), function (n, t) { + Array.isArray(n) + ? g(n, function (n) { + d(n, c, t); + }) + : d(n, c, t); + }), + d(i, o + "-total", u.length)), + (s[t] = r), + a.classList.add(t); + } + var i, u, o, c; + }), + a.classList.add("splitting"), + s + ); + }); + } + function N(n, t, e) { + var r = m(t.matching || n.children, n), + i = {}; + return ( + g(r, function (n) { + var t = Math.round(n[e]); + (i[t] || (i[t] = [])).push(n); + }), + Object.keys(i).map(Number).sort(x).map(c(i)) + ); + } + function x(n, t) { + return n - t; + } + (b.html = function (n) { + var t = ((n = n || {}).target = p()); + return (t.innerHTML = n.content), b(n), t.outerHTML; + }), + (b.add = t); + var T = n("lines", [i], "line", function (n, t, e) { + return N(n, { matching: e[i] }, "offsetTop"); + }), + L = n("items", s, "item", function (n, t) { + return m(t.matching || n.children, n); + }), + k = n("rows", s, "row", function (n, t) { + return N(n, t, "offsetTop"); + }), + A = n("cols", s, "col", function (n, t) { + return N(n, t, "offsetLeft"); + }), + C = n("grid", ["rows", "cols"]), + M = "layout", + S = n(M, s, s, function (n, t) { + var e = (t.rows = +(t.rows || h(n, "rows") || 1)), + r = (t.columns = +(t.columns || h(n, "columns") || 1)); + if ( + ((t.image = t.image || h(n, "image") || n.currentSrc || n.src), t.image) + ) { + var i = m("img", n)[0]; + t.image = i && (i.currentSrc || i.src); + } + t.image && d(n, "background-image", "url(" + t.image + ")"); + for (var u = e * r, o = [], c = p(s, "cell-grid"); u--; ) { + var a = p(c, "cell"); + p(a, "cell-inner"), o.push(a); + } + return f(n, c), o; + }), + H = n("cellRows", [M], "row", function (n, t, e) { + var r = t.rows, + i = o(r); + return ( + g(e[M], function (n, t, e) { + i[Math.floor(t / (e.length / r))].push(n); + }), + i + ); + }), + O = n("cellColumns", [M], "col", function (n, t, e) { + var r = t.columns, + i = o(r); + return ( + g(e[M], function (n, t) { + i[t % r].push(n); + }), + i + ); + }), + j = n("cells", ["cellRows", "cellColumns"], "cell", function (n, t, e) { + return e[M]; + }); + return t(r), t(w), t(T), t(L), t(k), t(A), t(C), t(S), t(H), t(O), t(j), b; +}); diff --git a/public/js/wow.min.js b/public/js/wow.min.js new file mode 100644 index 0000000..a6aab73 --- /dev/null +++ b/public/js/wow.min.js @@ -0,0 +1,432 @@ +/*! WOW - v1.1.2 - 2015-04-07 + * Copyright (c) 2015 Matthieu Aussaguel; Licensed MIT */ (function () { + var a, + b, + c, + d, + e, + f = function (a, b) { + return function () { + return a.apply(b, arguments); + }; + }, + g = + [].indexOf || + function (a) { + for (var b = 0, c = this.length; c > b; b++) + if (b in this && this[b] === a) return b; + return -1; + }; + (b = (function () { + function a() {} + return ( + (a.prototype.extend = function (a, b) { + var c, d; + for (c in b) (d = b[c]), null == a[c] && (a[c] = d); + return a; + }), + (a.prototype.isMobile = function (a) { + return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test( + a + ); + }), + (a.prototype.createEvent = function (a, b, c, d) { + var e; + return ( + null == b && (b = !1), + null == c && (c = !1), + null == d && (d = null), + null != document.createEvent + ? ((e = document.createEvent("CustomEvent")), + e.initCustomEvent(a, b, c, d)) + : null != document.createEventObject + ? ((e = document.createEventObject()), (e.eventType = a)) + : (e.eventName = a), + e + ); + }), + (a.prototype.emitEvent = function (a, b) { + return null != a.dispatchEvent + ? a.dispatchEvent(b) + : b in (null != a) + ? a[b]() + : "on" + b in (null != a) + ? a["on" + b]() + : void 0; + }), + (a.prototype.addEvent = function (a, b, c) { + return null != a.addEventListener + ? a.addEventListener(b, c, !1) + : null != a.attachEvent + ? a.attachEvent("on" + b, c) + : (a[b] = c); + }), + (a.prototype.removeEvent = function (a, b, c) { + return null != a.removeEventListener + ? a.removeEventListener(b, c, !1) + : null != a.detachEvent + ? a.detachEvent("on" + b, c) + : delete a[b]; + }), + (a.prototype.innerHeight = function () { + return "innerHeight" in window + ? window.innerHeight + : document.documentElement.clientHeight; + }), + a + ); + })()), + (c = + this.WeakMap || + this.MozWeakMap || + (c = (function () { + function a() { + (this.keys = []), (this.values = []); + } + return ( + (a.prototype.get = function (a) { + var b, c, d, e, f; + for (f = this.keys, b = d = 0, e = f.length; e > d; b = ++d) + if (((c = f[b]), c === a)) return this.values[b]; + }), + (a.prototype.set = function (a, b) { + var c, d, e, f, g; + for (g = this.keys, c = e = 0, f = g.length; f > e; c = ++e) + if (((d = g[c]), d === a)) return void (this.values[c] = b); + return this.keys.push(a), this.values.push(b); + }), + a + ); + })())), + (a = + this.MutationObserver || + this.WebkitMutationObserver || + this.MozMutationObserver || + (a = (function () { + function a() { + "undefined" != typeof console && + null !== console && + console.warn("MutationObserver is not supported by your browser."), + "undefined" != typeof console && + null !== console && + console.warn( + "WOW.js cannot detect dom mutations, please call .sync() after loading new content." + ); + } + return (a.notSupported = !0), (a.prototype.observe = function () {}), a; + })())), + (d = + this.getComputedStyle || + function (a) { + return ( + (this.getPropertyValue = function (b) { + var c; + return ( + "float" === b && (b = "styleFloat"), + e.test(b) && + b.replace(e, function (a, b) { + return b.toUpperCase(); + }), + (null != (c = a.currentStyle) ? c[b] : void 0) || null + ); + }), + this + ); + }), + (e = /(\-([a-z]){1})/g), + (this.WOW = (function () { + function e(a) { + null == a && (a = {}), + (this.scrollCallback = f(this.scrollCallback, this)), + (this.scrollHandler = f(this.scrollHandler, this)), + (this.resetAnimation = f(this.resetAnimation, this)), + (this.start = f(this.start, this)), + (this.scrolled = !0), + (this.config = this.util().extend(a, this.defaults)), + (this.animationNameCache = new c()), + (this.wowEvent = this.util().createEvent(this.config.boxClass)); + } + return ( + (e.prototype.defaults = { + boxClass: "wow", + animateClass: "animated", + offset: 0, + mobile: !0, + live: !0, + callback: null, + }), + (e.prototype.init = function () { + var a; + return ( + (this.element = window.document.documentElement), + "interactive" === (a = document.readyState) || "complete" === a + ? this.start() + : this.util().addEvent(document, "DOMContentLoaded", this.start), + (this.finished = []) + ); + }), + (e.prototype.start = function () { + var b, c, d, e; + if ( + ((this.stopped = !1), + (this.boxes = function () { + var a, c, d, e; + for ( + d = this.element.querySelectorAll("." + this.config.boxClass), + e = [], + a = 0, + c = d.length; + c > a; + a++ + ) + (b = d[a]), e.push(b); + return e; + }.call(this)), + (this.all = function () { + var a, c, d, e; + for (d = this.boxes, e = [], a = 0, c = d.length; c > a; a++) + (b = d[a]), e.push(b); + return e; + }.call(this)), + this.boxes.length) + ) + if (this.disabled()) this.resetStyle(); + else + for (e = this.boxes, c = 0, d = e.length; d > c; c++) + (b = e[c]), this.applyStyle(b, !0); + return ( + this.disabled() || + (this.util().addEvent(window, "scroll", this.scrollHandler), + this.util().addEvent(window, "resize", this.scrollHandler), + (this.interval = setInterval(this.scrollCallback, 50))), + this.config.live + ? new a( + (function (a) { + return function (b) { + var c, d, e, f, g; + for (g = [], c = 0, d = b.length; d > c; c++) + (f = b[c]), + g.push( + function () { + var a, b, c, d; + for ( + c = f.addedNodes || [], + d = [], + a = 0, + b = c.length; + b > a; + a++ + ) + (e = c[a]), d.push(this.doSync(e)); + return d; + }.call(a) + ); + return g; + }; + })(this) + ).observe(document.body, { childList: !0, subtree: !0 }) + : void 0 + ); + }), + (e.prototype.stop = function () { + return ( + (this.stopped = !0), + this.util().removeEvent(window, "scroll", this.scrollHandler), + this.util().removeEvent(window, "resize", this.scrollHandler), + null != this.interval ? clearInterval(this.interval) : void 0 + ); + }), + (e.prototype.sync = function () { + return a.notSupported ? this.doSync(this.element) : void 0; + }), + (e.prototype.doSync = function (a) { + var b, c, d, e, f; + if ((null == a && (a = this.element), 1 === a.nodeType)) { + for ( + a = a.parentNode || a, + e = a.querySelectorAll("." + this.config.boxClass), + f = [], + c = 0, + d = e.length; + d > c; + c++ + ) + (b = e[c]), + g.call(this.all, b) < 0 + ? (this.boxes.push(b), + this.all.push(b), + this.stopped || this.disabled() + ? this.resetStyle() + : this.applyStyle(b, !0), + f.push((this.scrolled = !0))) + : f.push(void 0); + return f; + } + }), + (e.prototype.show = function (a) { + return ( + this.applyStyle(a), + (a.className = a.className + " " + this.config.animateClass), + null != this.config.callback && this.config.callback(a), + this.util().emitEvent(a, this.wowEvent), + this.util().addEvent(a, "animationend", this.resetAnimation), + this.util().addEvent(a, "oanimationend", this.resetAnimation), + this.util().addEvent(a, "webkitAnimationEnd", this.resetAnimation), + this.util().addEvent(a, "MSAnimationEnd", this.resetAnimation), + a + ); + }), + (e.prototype.applyStyle = function (a, b) { + var c, d, e; + return ( + (d = a.getAttribute("data-wow-duration")), + (c = a.getAttribute("data-wow-delay")), + (e = a.getAttribute("data-wow-iteration")), + this.animate( + (function (f) { + return function () { + return f.customStyle(a, b, d, c, e); + }; + })(this) + ) + ); + }), + (e.prototype.animate = (function () { + return "requestAnimationFrame" in window + ? function (a) { + return window.requestAnimationFrame(a); + } + : function (a) { + return a(); + }; + })()), + (e.prototype.resetStyle = function () { + var a, b, c, d, e; + for (d = this.boxes, e = [], b = 0, c = d.length; c > b; b++) + (a = d[b]), e.push((a.style.visibility = "visible")); + return e; + }), + (e.prototype.resetAnimation = function (a) { + var b; + return a.type.toLowerCase().indexOf("animationend") >= 0 + ? ((b = a.target || a.srcElement), + (b.className = b.className + .replace(this.config.animateClass, "") + .trim())) + : void 0; + }), + (e.prototype.customStyle = function (a, b, c, d, e) { + return ( + b && this.cacheAnimationName(a), + (a.style.visibility = b ? "hidden" : "visible"), + c && this.vendorSet(a.style, { animationDuration: c }), + d && this.vendorSet(a.style, { animationDelay: d }), + e && this.vendorSet(a.style, { animationIterationCount: e }), + this.vendorSet(a.style, { + animationName: b ? "none" : this.cachedAnimationName(a), + }), + a + ); + }), + (e.prototype.vendors = ["moz", "webkit"]), + (e.prototype.vendorSet = function (a, b) { + var c, d, e, f; + d = []; + for (c in b) + (e = b[c]), + (a["" + c] = e), + d.push( + function () { + var b, d, g, h; + for ( + g = this.vendors, h = [], b = 0, d = g.length; + d > b; + b++ + ) + (f = g[b]), + h.push( + (a["" + f + c.charAt(0).toUpperCase() + c.substr(1)] = + e) + ); + return h; + }.call(this) + ); + return d; + }), + (e.prototype.vendorCSS = function (a, b) { + var c, e, f, g, h, i; + for ( + h = d(a), + g = h.getPropertyCSSValue(b), + f = this.vendors, + c = 0, + e = f.length; + e > c; + c++ + ) + (i = f[c]), (g = g || h.getPropertyCSSValue("-" + i + "-" + b)); + return g; + }), + (e.prototype.animationName = function (a) { + var b; + try { + b = this.vendorCSS(a, "animation-name").cssText; + } catch (c) { + b = d(a).getPropertyValue("animation-name"); + } + return "none" === b ? "" : b; + }), + (e.prototype.cacheAnimationName = function (a) { + return this.animationNameCache.set(a, this.animationName(a)); + }), + (e.prototype.cachedAnimationName = function (a) { + return this.animationNameCache.get(a); + }), + (e.prototype.scrollHandler = function () { + return (this.scrolled = !0); + }), + (e.prototype.scrollCallback = function () { + var a; + return !this.scrolled || + ((this.scrolled = !1), + (this.boxes = function () { + var b, c, d, e; + for (d = this.boxes, e = [], b = 0, c = d.length; c > b; b++) + (a = d[b]), a && (this.isVisible(a) ? this.show(a) : e.push(a)); + return e; + }.call(this)), + this.boxes.length || this.config.live) + ? void 0 + : this.stop(); + }), + (e.prototype.offsetTop = function (a) { + for (var b; void 0 === a.offsetTop; ) a = a.parentNode; + for (b = a.offsetTop; (a = a.offsetParent); ) b += a.offsetTop; + return b; + }), + (e.prototype.isVisible = function (a) { + var b, c, d, e, f; + return ( + (c = a.getAttribute("data-wow-offset") || this.config.offset), + (f = window.pageYOffset), + (e = + f + + Math.min(this.element.clientHeight, this.util().innerHeight()) - + c), + (d = this.offsetTop(a)), + (b = d + a.clientHeight), + e >= d && b >= f + ); + }), + (e.prototype.util = function () { + return null != this._util ? this._util : (this._util = new b()); + }), + (e.prototype.disabled = function () { + return ( + !this.config.mobile && this.util().isMobile(navigator.userAgent) + ); + }), + e + ); + })()); +}.call(this)); diff --git a/public/js/wowInit.js b/public/js/wowInit.js new file mode 100644 index 0000000..8f0f543 --- /dev/null +++ b/public/js/wowInit.js @@ -0,0 +1,2 @@ +const WOW = window.WOW; +new WOW().init(); \ No newline at end of file diff --git a/src/common/aboutSkillsProgress.js b/src/common/aboutSkillsProgress.js new file mode 100644 index 0000000..5a8be30 --- /dev/null +++ b/src/common/aboutSkillsProgress.js @@ -0,0 +1,15 @@ +const aboutSkillsProgress = (skillsEl, progresEl, sectionEl) => { + let skillInAbout = skillsEl; + if (skillInAbout) { + window.addEventListener("scroll", () => { + progresEl.forEach((item) => { + let myVal = item.getAttribute("data-value"); + if (window.pageYOffset > sectionEl.offsetTop - 200) { + item.style.width = myVal; + } + }); + }); + } +}; + +export default aboutSkillsProgress; diff --git a/src/common/animateElement.js b/src/common/animateElement.js new file mode 100644 index 0000000..47f5268 --- /dev/null +++ b/src/common/animateElement.js @@ -0,0 +1,8 @@ +const animateElement = (el, to) => { + function draw() { + el.style.left = to; + } + draw(); +}; + +export default animateElement; diff --git a/src/common/cardMouseEffect.js b/src/common/cardMouseEffect.js new file mode 100644 index 0000000..43312cf --- /dev/null +++ b/src/common/cardMouseEffect.js @@ -0,0 +1,16 @@ +import getSiblings from './getSiblings' + +const cardMouseEffect = (featureEl) => { + var featuresitems = featureEl; + if (featuresitems) { + featuresitems.forEach((item) => { + item.onmouseover = function (event) { + item.classList.add("active"); + let siblings = getSiblings(item), + siblingEl = siblings.map((e) => e.classList.remove("active")); + }; + }); + } +}; + +export default cardMouseEffect; diff --git a/src/common/delay.js b/src/common/delay.js new file mode 100644 index 0000000..0689488 --- /dev/null +++ b/src/common/delay.js @@ -0,0 +1,7 @@ +const delay = (time, callback) => { + setTimeout(function () { + callback; + }, time); +}; + +export default delay; diff --git a/src/common/fadeInFadeOut.js b/src/common/fadeInFadeOut.js new file mode 100644 index 0000000..0293032 --- /dev/null +++ b/src/common/fadeInFadeOut.js @@ -0,0 +1,26 @@ +var opacity = 0; +var intervalID = 0; +export const fadeIn = (el, time) => { + setInterval(show(el), time); +}; +function show(el) { + opacity = Number(window.getComputedStyle(el).getPropertyValue("opacity")); + if (opacity < 1) { + opacity = opacity + 1; + el.style.opacity = opacity; + } else { + clearInterval(intervalID); + } +} +export const fadeOut = (el, time) => { + setInterval(hide(el), time); +}; +function hide(el) { + opacity = Number(window.getComputedStyle(el).getPropertyValue("opacity")); + if (opacity > 0) { + opacity = 0; + el.style.opacity = opacity; + } else { + clearInterval(intervalID); + } +} diff --git a/src/common/fadeWhenScroll.js b/src/common/fadeWhenScroll.js new file mode 100644 index 0000000..683ab9c --- /dev/null +++ b/src/common/fadeWhenScroll.js @@ -0,0 +1,13 @@ +const fadeWhenScroll = (element) => { + window.addEventListener("scroll", () => { + var scrolled = window.pageYOffset; + if (element) { + element.forEach((item) => { + item.style.transform = "translate3d(0, " + -(scrolled * 0.2) + "px, 0)"; + item.style.opacity = 1 - scrolled / 600; + }); + } + }); +}; + +export default fadeWhenScroll; diff --git a/src/common/getSiblings.js b/src/common/getSiblings.js new file mode 100644 index 0000000..497168b --- /dev/null +++ b/src/common/getSiblings.js @@ -0,0 +1,16 @@ +const getSiblings = (e) => { + let siblings = []; + if (!e.parentNode) { + return siblings; + } + let sibling = e.parentNode.firstChild; + while (sibling) { + if (sibling.nodeType === 1 && sibling !== e) { + siblings.push(sibling); + } + sibling = sibling.nextSibling; + } + return siblings; +}; + +export default getSiblings; diff --git a/src/common/handleAccordion.js b/src/common/handleAccordion.js new file mode 100644 index 0000000..88c1a68 --- /dev/null +++ b/src/common/handleAccordion.js @@ -0,0 +1,45 @@ +const handleAccordion = (container) => { + document.querySelectorAll(".accordion .item").forEach((item) => { + item.classList.remove("active"); + }); + document.querySelectorAll(".accordion-info").forEach((item) => { + item.classList.remove("active"); + }); + container.closest(".item").classList.add("active"); + + /** Slide down. */ + if (!container.classList.contains("active")) { + /** Show the container. */ + container.classList.add("active"); + container.style.height = "auto"; + + /** Get the computed height of the container. */ + var height = container.clientHeight + "px"; + + /** Set the height of the content as 0px, */ + /** so we can trigger the slide down animation. */ + container.style.height = "0px"; + + /** Do this after the 0px has applied. */ + /** It's like a delay or something. MAGIC! */ + setTimeout(() => { + container.style.height = height; + }, 0); + + /** Slide up. */ + } else { + /** Set the height as 0px to trigger the slide up animation. */ + container.style.height = "0px"; + + /** Remove the `active` class when the animation ends. */ + container.addEventListener( + "transitionend", + () => { + container.classList.remove("active"); + }, + { once: true } + ); + } +}; + +export default handleAccordion; diff --git a/src/common/initFullNavbarMenu.js b/src/common/initFullNavbarMenu.js new file mode 100644 index 0000000..b5d8728 --- /dev/null +++ b/src/common/initFullNavbarMenu.js @@ -0,0 +1,98 @@ +import appData from "../data/app.json"; +import getSiblings from "./getSiblings"; +import animateElement from "./animateElement"; +import delay from "./delay"; + +const initFullNavbarMenu = () => { + function noScroll() { + window.scrollTo(0, 0); + } + var open = false, + navDark = document.querySelector(".topnav.dark"), + logoChan = document.querySelector(".topnav.dark .logo img"), + menuIcon = document.querySelector(".topnav .menu-icon"); + if (menuIcon) { + menuIcon.addEventListener("click", function () { + open = !open; + document.querySelector(".hamenu").classList.toggle("open"); + if (open) { + animateElement(document.querySelector(".hamenu"), "0px"); + document.querySelector(".topnav .menu-icon .text ").classList.add("open"); + if (navDark) { + navDark.classList.add("navlit"); + } + if (logoChan) { + logoChan.setAttribute("src", appData.lightLogo); + } + window.addEventListener("scroll", noScroll); + } else { + delay(300, animateElement(document.querySelector(".hamenu"), "-100%")); + document.querySelector(".topnav .menu-icon .text").classList.remove("open"); + if (navDark) { + navDark.classList.remove("navlit"); + } + if (logoChan) { + logoChan.setAttribute("src", appData.darkLogo); + } + window.removeEventListener("scroll", noScroll); + } + }); + document.querySelectorAll(".main-menu a").forEach((item) => { + item.addEventListener("click", () => { + delay(300, animateElement(document.querySelector(".hamenu"), "-100%")); + document.querySelector(".topnav .menu-icon .text").classList.remove("open"); + if (navDark) { + navDark.classList.remove("navlit"); + } + if (logoChan) { + logoChan.setAttribute("src", appData.darkLogo); + } + window.removeEventListener("scroll", noScroll); + }); + }); + } + document + .querySelectorAll(".hamenu .menu-links .main-menu > li") + .forEach((item) => { + item.addEventListener("mouseenter", function () { + this.style.opacity = "1"; + getSiblings(this).forEach((item) => { + item.style.opacity = ".5"; + }); + }); + item.addEventListener("mouseleave", function () { + document + .querySelectorAll(".hamenu .menu-links .main-menu > li") + .forEach((item2) => { + item2.style.opacity = "1"; + }); + }); + }); + if (document.querySelectorAll(".main-menu > li .dmenu").length) { + document.querySelectorAll(".main-menu > li .dmenu").forEach((item) => { + item.addEventListener("click", function () { + document.querySelector(".main-menu").classList.add("gosub"); + getSiblings(this.parentNode.parentNode).forEach((item) => { + item.childNodes[1] + ? item.childNodes[1].classList.remove("sub-open") + : ""; + }); + this.parentNode.parentNode.childNodes[1].classList.add("sub-open"); + }); + }); + } + if ( + document.querySelectorAll(".main-menu .sub-menu li .sub-link.back").length + ) { + document + .querySelectorAll(".main-menu .sub-menu li .sub-link.back") + .forEach((item) => { + item.addEventListener("click", function () { + document.querySelector(".main-menu").classList.remove("gosub"); + document.querySelector(".main-menu").classList.remove("sub-open"); + }); + }); + } +}; + +export default initFullNavbarMenu; diff --git a/src/common/initIsotope.js b/src/common/initIsotope.js new file mode 100644 index 0000000..a69beae --- /dev/null +++ b/src/common/initIsotope.js @@ -0,0 +1,51 @@ +const initIsotope = () => { + var grid = document.querySelectorAll(".gallery"); + var iso; + if (grid.length >= 1) { + grid.forEach((item) => { + iso = new Isotope(item, { + itemSelector: ".items", + }); + }); + } + + var gridMons = document.querySelectorAll(".gallery-mons"); + if (gridMons.length >= 1) { + gridMons.forEach((item) => { + iso = new Isotope(item, { + itemSelector: ".items", + masonry: { + columnWidth: ".width2", + }, + }); + }); + } + + var filtersElem = document.querySelector(".filtering"); + if (filtersElem) { + filtersElem.addEventListener("click", function (event) { + if (!matchesSelector(event.target, "span")) { + return; + } + var filterValue = event.target.getAttribute("data-filter"); + filterValue = filterValue; + iso.arrange({ filter: filterValue }); + }); + var buttonGroups = document.querySelectorAll(".filtering"); + for (var i = 0, len = buttonGroups.length; i < len; i++) { + var buttonGroup = buttonGroups[i]; + radioButtonGroup(buttonGroup); + } + function radioButtonGroup(buttonGroup) { + buttonGroup.addEventListener("click", function (event) { + if (!matchesSelector(event.target, "span")) { + return; + } + buttonGroup.querySelector(".active").classList.remove("active"); + event.target.classList.add("active"); + }); + } + } +}; + +export default initIsotope \ No newline at end of file diff --git a/src/common/loadingPace.js b/src/common/loadingPace.js new file mode 100644 index 0000000..bfac103 --- /dev/null +++ b/src/common/loadingPace.js @@ -0,0 +1,27 @@ +const loadingPace = () => { + + Pace.on("start", function () { + document.querySelector("#preloader").classList.remove("isdone"); + document.querySelector(".loading").classList.remove("isdone"); + }); + Pace.on("done", function () { + document.querySelector("#preloader").classList.add("isdone"); + document.querySelector(".loading").classList.add("isdone"); + + }); + + if (document.querySelector("body").classList.contains("pace-done")) { + document.querySelector("#preloader").classList.add("isdone"); + document.querySelector(".loading").classList.add("isdone"); + } + + window.addEventListener("load", () => { + document.querySelector("#preloader").classList.add("isdone"); + document.querySelector(".loading").classList.add("isdone"); + if (document.querySelector('.pace-running.pace-running')) { + document.querySelector('.pace-running.pace-running').classList.remove('pace-running') + } + }); +}; + +export default loadingPace; diff --git a/src/common/mouseEffect.js b/src/common/mouseEffect.js new file mode 100644 index 0000000..96de620 --- /dev/null +++ b/src/common/mouseEffect.js @@ -0,0 +1,51 @@ +const mouseEffect = () => { + function mousecursor() { + const cursorInner = document.querySelector(".cursor-inner"), + cursorOuter = document.querySelector(".cursor-outer"); + let n, + i = 0, + o = !1; + window.onmousemove = function (s) { + o || + (cursorOuter.style.transform = + "translate(" + s.clientX + "px, " + s.clientY + "px)"), + (cursorInner.style.transform = + "translate(" + s.clientX + "px, " + s.clientY + "px)"), + (n = s.clientY), + (i = s.clientX); + }; + if (document.querySelector(".cursor-pointer")) { + document + .querySelector(".cursor-pointer") + .addEventListener("mouseenter", function () { + cursorInner.classList.add("cursor-hover"), + cursorOuter.classList.add("cursor-hover"); + }); + document + .querySelector(".cursor-pointer") + .addEventListener("mouseleave", function () { + cursorInner.classList.remove("cursor-hover"), + cursorOuter.classList.remove("cursor-hover"); + }), + (cursorInner.style.visibility = "visible"), + (cursorOuter.style.visibility = "visible"); + } + document.querySelectorAll("a").forEach(function (item) { + item.addEventListener("mouseenter", function () { + cursorInner.classList.add("cursor-hover"), + cursorOuter.classList.add("cursor-hover"); + }); + }); + document.querySelectorAll("a").forEach(function (item) { + item.addEventListener("mouseleave", function () { + cursorInner.classList.remove("cursor-hover"), + cursorOuter.classList.remove("cursor-hover"); + }); + }), + (cursorInner.style.visibility = "visible"), + (cursorOuter.style.visibility = "visible"); + } + mousecursor(); +}; + +export default mouseEffect; diff --git a/src/common/navbar.js b/src/common/navbar.js new file mode 100644 index 0000000..4a59e01 --- /dev/null +++ b/src/common/navbar.js @@ -0,0 +1,24 @@ +import getSiblings from './getSiblings' + +export const handleDropdown = (e) => { + getSiblings(e.target.parentElement) + .filter((item) => item.classList.contains("show")) + .map((item) => { + item.classList.remove("show"); + if (item.childNodes[0]) { + item.childNodes[0].setAttribute("aria-expanded", false); + } + if (item.childNodes[1]) { + item.childNodes[1].classList.remove("show"); + } + }); + e.target.parentElement.classList.toggle("show"); + e.target.setAttribute("aria-expanded", true); + e.target.parentElement.childNodes[1].classList.toggle("show"); +}; + +export const handleMobileDropdown = (e) => { + document + .getElementById("navbarSupportedContent") + .classList.toggle("show-with-trans"); +}; \ No newline at end of file diff --git a/src/common/removeSlashpagination.js b/src/common/removeSlashpagination.js new file mode 100644 index 0000000..a975939 --- /dev/null +++ b/src/common/removeSlashpagination.js @@ -0,0 +1,8 @@ +const removeSlashFromPagination = () => { + if (document.querySelectorAll(".swiper-pagination")) { + document.querySelectorAll(".swiper-pagination").forEach((item) => { + item.innerHTML = item.innerHTML.replace(" / ", ""); + }); + } +}; +export default removeSlashFromPagination; diff --git a/src/common/scrollToTop.js b/src/common/scrollToTop.js new file mode 100644 index 0000000..c523684 --- /dev/null +++ b/src/common/scrollToTop.js @@ -0,0 +1,36 @@ +const scrollToTop = () => { + let progressPath = document.querySelector(".progress-wrap path"); + let pathLength = progressPath.getTotalLength(); + progressPath.style.transition = progressPath.style.WebkitTransition = "none"; + progressPath.style.strokeDasharray = pathLength + " " + pathLength; + progressPath.style.strokeDashoffset = pathLength; + progressPath.getBoundingClientRect(); + progressPath.style.transition = progressPath.style.WebkitTransition = + "stroke-dashoffset 10ms linear"; + const updateProgress = function () { + let scroll = window.pageYOffset; + let height = document.documentElement.scrollHeight - window.innerHeight; + let progress = pathLength - (scroll * pathLength) / height; + progressPath.style.strokeDashoffset = progress; + }; + updateProgress(); + window.addEventListener("scroll", updateProgress); + let progressWrap = document.querySelector(".progress-wrap"); + let offset = 150; + window.addEventListener("scroll", function () { + if (window.pageYOffset > offset) { + progressWrap.classList.add("active-progress"); + } else { + document + .querySelector(".progress-wrap") + .classList.remove("active-progress"); + } + }); + progressWrap.addEventListener("click", function (event) { + event.preventDefault(); + window.scrollTo({ top: 0, behavior: "smooth" }); + return false; + }); +}; + +export default scrollToTop; diff --git a/src/common/teamSkillsProgress.js b/src/common/teamSkillsProgress.js new file mode 100644 index 0000000..10f0847 --- /dev/null +++ b/src/common/teamSkillsProgress.js @@ -0,0 +1,15 @@ +const teamSkillsProgress = () => { + let teamSection = document.querySelector(".team-crv"); + if (teamSection) { + window.addEventListener("scroll", () => { + document.querySelectorAll(".skill-progress .progres").forEach((item) => { + let myVal = item.getAttribute("data-value"); + if (window.pageYOffset > teamSection.offsetTop - 200) { + item.style.width = myVal; + } + }); + }); + } +}; + +export default teamSkillsProgress; diff --git a/src/common/thumparallax.js b/src/common/thumparallax.js new file mode 100644 index 0000000..ba06551 --- /dev/null +++ b/src/common/thumparallax.js @@ -0,0 +1,19 @@ +export const thumparallax = () => { + var imageUp = document.getElementsByClassName("thumparallax"); + if (imageUp) { + new simpleParallax(imageUp, { + delay: 1, + scale: 1.1, + }); + } +}; +export const thumparallaxDown = () => { + var imageDown = document.getElementsByClassName("thumparallax-down"); + if (imageDown) { + new simpleParallax(imageDown, { + orientation: "down", + delay: 1, + scale: 1.1, + }); + } +}; diff --git a/src/common/tooltipEffect.js b/src/common/tooltipEffect.js new file mode 100644 index 0000000..cf3ea9d --- /dev/null +++ b/src/common/tooltipEffect.js @@ -0,0 +1,44 @@ +import { fadeIn, fadeOut } from "./fadeInFadeOut"; + +const tooltipEffect = () => { + let template1 = document.createElement("div"); + template1.classList.add("div-tooltip-tit"); + document.body.appendChild(template1); + let template2 = document.createElement("div"); + template2.classList.add("div-tooltip-sub"); + document.body.appendChild(template2); + document.querySelectorAll("[data-tooltip-tit]").forEach((item) => { + template1 = document.querySelector(".div-tooltip-tit"); + item.addEventListener("mouseover", () => { + template1.innerText = item.getAttribute("data-tooltip-tit"); + }); + item.addEventListener("mousemove", (e) => { + fadeIn(template1, 800); + template1.style.top = e.pageY + 10 + "px"; + template1.style.left = e.pageX + 20 + "px"; + template1.style.padding = "0px 10px"; + }); + item.addEventListener("mouseleave", () => { + fadeOut(template1, 800); + template1.style.padding = 0; + }); + }); + document.querySelectorAll("[data-tooltip-sub]").forEach((item) => { + template2 = document.querySelector(".div-tooltip-sub"); + item.addEventListener("mouseover", () => { + template2.innerText = item.getAttribute("data-tooltip-sub"); + }); + + item.addEventListener("mousemove", (e) => { + fadeIn(template2, 800); + template2.style.top = e.pageY - 15 + "px"; + template2.style.left = e.pageX + 30 + "px"; + template2.style.padding = "5px 10px"; + }); + item.addEventListener("mouseleave", () => { + fadeOut(template2, 800); + template2.style.padding = 0; + }); + }); +}; +export default tooltipEffect; diff --git a/src/components/About-intro/index.jsx b/src/components/About-intro/index.jsx new file mode 100644 index 0000000..590cfb4 --- /dev/null +++ b/src/components/About-intro/index.jsx @@ -0,0 +1,36 @@ +import React from "react"; +import Split from "../Split"; +import AboutInfo1Data from "../../data/sections/about-info1.json"; + +const AboutIntro = () => { + return ( + <section className="intro-section section-padding pb-0"> + <div className="container"> + <div className="row"> + <div className="col-lg-3 col-md-4"> + <div className="htit sm-mb30"> + <h4>{AboutInfo1Data.title}</h4> + </div> + </div> + <div className="col-lg-8 offset-lg-1 col-md-8"> + <div className="text"> + <Split> + <p + className="wow txt mb-10 words chars splitting" + data-splitting + > + {AboutInfo1Data.paragraph1} + </p> + <p className="wow txt words chars splitting" data-splitting> + {AboutInfo1Data.paragraph2} + </p> + </Split> + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default AboutIntro; diff --git a/src/components/About-us/about-us.jsx b/src/components/About-us/about-us.jsx new file mode 100644 index 0000000..499fbeb --- /dev/null +++ b/src/components/About-us/about-us.jsx @@ -0,0 +1,47 @@ +/* eslint-disable @next/next/no-img-element */ +import React from "react"; +import Link from "next/link"; +import AboutUs1Date from "../../data/sections/about-us1.json"; + +const AboutUs = () => { + return ( + <section className="about-us section-padding"> + <div className="container"> + <div className="row"> + <div className="col-lg-5 valign md-mb50"> + <div className="mb-50"> + <h6 className="fw-100 text-u ls10 mb-10"> + {AboutUs1Date.smallTitle} + </h6> + <h3 className="fw-600 text-u ls1 mb-30 color-font"> + {AboutUs1Date.title} + </h3> + <p>{AboutUs1Date.content}</p> + <Link href="/about/about-dark"> + <a className="butn bord curve mt-30"> + <span>Read More</span> + </a> + </Link> + </div> + </div> + <div className="col-lg-7 img"> + <img src={AboutUs1Date.image} alt="" /> + <div className="stauts"> + {AboutUs1Date.stauts.map((item) => ( + <div className="item" key={item.id}> + <h4> + {item.number} + <span>{item.letter}</span> + </h4> + <h6>{item.stautsName}</h6> + </div> + ))} + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default AboutUs; diff --git a/src/components/About-us2/about-us2.jsx b/src/components/About-us2/about-us2.jsx new file mode 100644 index 0000000..862b56f --- /dev/null +++ b/src/components/About-us2/about-us2.jsx @@ -0,0 +1,87 @@ +/* eslint-disable @next/next/no-img-element */ +import React from "react"; +import Split from "../Split"; +import AboutUs2Date from "../../data/sections/about-us2.json"; + +const AboutUs2 = () => { + return ( + <div className="about section-padding"> + <div className="container"> + <div className="row"> + <div className="col-lg-5"> + <div className="img-mons sm-mb30"> + <div className="row"> + <div className="col-md-5 cmd-padding valign"> + <div className="img1 wow imago" data-wow-delay=".5s"> + <img src={AboutUs2Date.image1} alt="" /> + </div> + </div> + <div className="col-md-7 cmd-padding"> + <div className="img2 wow imago" data-wow-delay=".3s"> + <img src={AboutUs2Date.image2} alt="" /> + </div> + <div className="img3 wow imago" data-wow-delay=".8s"> + <img src={AboutUs2Date.image3} alt="" /> + </div> + <div className="container"> + <div className="row"> + <div className="col-md-6"> + + </div> + <div className="col-md-6"></div> + </div> + </div> + </div> + </div> + </div> + </div> + <div className="col-lg-6 offset-lg-1 valign"> + <div className="content"> + <div className="sub-title"> + <h6>{AboutUs2Date.smallTitle}</h6> + </div> + <Split> + <h3 + className="words chars splitting main-title wow" + data-splitting + > + {AboutUs2Date.title.first} <br /> {AboutUs2Date.title.second} + </h3> + </Split> + <Split> + <p className="words chars splitting wow txt" data-splitting> + {AboutUs2Date.content} + </p> + </Split> + <div className="ftbox mt-30"> + <ul> + {AboutUs2Date.features.map((feature) => ( + <li + key={feature.id} + className={`wow fadeIn ${feature.id == 2 ? "space" : ""}`} + data-wow-delay={feature.wowDelay} + > + <span + className={`icon color-font pe-7s-${feature.icon}`} + ></span> + <h6> + {feature.name.first} <br /> {feature.name.second} + </h6> + <div className="dots"> + <span></span> + <span></span> + <span></span> + </div> + </li> + ))} + </ul> + </div> + </div> + </div> + </div> + </div> + </div> + ); +}; + +export default AboutUs2; diff --git a/src/components/About-us3/about-us3.jsx b/src/components/About-us3/about-us3.jsx new file mode 100644 index 0000000..d77375a --- /dev/null +++ b/src/components/About-us3/about-us3.jsx @@ -0,0 +1,88 @@ +/* eslint-disable @next/next/no-img-element */ +import React from "react"; +import Split from "../Split"; +import Link from "next/link"; +import AboutUs3date from "../../data/sections/about-us3.json"; +import { thumparallax, thumparallaxDown } from "../../common/thumparallax"; + +const AboutUs3 = () => { + React.useEffect(() => { + setTimeout(() => { + thumparallax(); + thumparallaxDown(); + }, 1000); + }, []); + return ( + <section className="agency section-padding position-re"> + <div className="container"> + <div className="row"> + <div className="col-lg-7"> + <div className="imgsec md-mb50"> + <div className="row"> + <div className="col-md-6"> + <div className="item"> + <div + className="imgone big-bord wow fadeInDown" + data-wow-delay=".8s" + > + <img + className="thumparallax-down" + src={AboutUs3date.image1} + alt="" + /> + </div> + <div className="exp"> + <h2 className="nmb-font">{AboutUs3date.exp.nmb}</h2> + <h6>{AboutUs3date.exp.name}</h6> + </div> + </div> + </div> + <div className="col-md-6"> + <div className="item"> + <div + className="imgtwo big-bord wow fadeInUp" + data-wow-delay=".6s" + > + <img + className="thumparallax" + src={AboutUs3date.image2} + alt="" + /> + </div> + </div> + </div> + </div> + </div> + </div> + <div className="col-lg-5 valign"> + <div className="content"> + <Split> + <h4 className="wow words chars splitting" data-splitting> + {AboutUs3date.title.first} <br /> {AboutUs3date.title.second} + </h4> + </Split> + <Split> + <p className="wow txt words chars splitting" data-splitting> + {AboutUs3date.content.first} <br /> + {AboutUs3date.content.second} + </p> + </Split> + <Link href={`/about`}> + <a + className="butn bord curve mt-40 wow fadeInUp" + data-wow-delay=".8s" + > + <span>{AboutUs3date.smallTitle}</span> + </a> + </Link> + <br /> + </div> + </div> + </div> + </div> + <div className="line bottom right"></div> + </section> + ); +}; + +export default AboutUs3; diff --git a/src/components/About-us4/about-us4.jsx b/src/components/About-us4/about-us4.jsx new file mode 100644 index 0000000..7367344 --- /dev/null +++ b/src/components/About-us4/about-us4.jsx @@ -0,0 +1,66 @@ +/* eslint-disable @next/next/no-img-element */ +import React from 'react' +import ModalVideo from "react-modal-video"; +import "react-modal-video/css/modal-video.css"; + +const AboutUs4 = () => { + console.clear(); + const [isOpen, setOpen] = React.useState(false); + return ( + <section className="about-cr"> + <div className="container-fluid"> + <div className="row"> + <div className="col-lg-6 img md-mb50"> + <img src="/img/intro/4.jpg" alt="" /> + </div> + <div className="col-lg-4 valign"> + <div className="cont full-width"> + <h3 className="color-font">Huge collection.</h3> + <h6> + Innovative solutions <br /> to boost your creative projects. + </h6> + {typeof window !== "undefined" && ( + <ModalVideo + channel="vimeo" + autoplay + isOpen={isOpen} + videoId="127203262" + onClose={() => setOpen(false)} + /> + )} + <div className="vid-area"> + <div className="vid-icon"> + <a + className="vid" + href="https://vimeo.com/127203262" + onClick={(e) => { + e.preventDefault(); + setOpen(true); + }} + > + <div className="vid-butn back-color"> + <span className="icon"> + <i className="fas fa-play"></i> + </span> + </div> + </a> + </div> + <div className="valign"> + <span className="text">Watch Video</span> + </div> + </div> + <div className="states"> + <h2 className="color-font fw-700"> + 125 <span className="fz-30">k</span> + </h2> + <p>Projects completed around the world</p> + </div> + </div> + </div> + </div> + </div> + </section> + ); +} + +export default AboutUs4 \ No newline at end of file diff --git a/src/components/About-us5/about-us5.jsx b/src/components/About-us5/about-us5.jsx new file mode 100644 index 0000000..381c042 --- /dev/null +++ b/src/components/About-us5/about-us5.jsx @@ -0,0 +1,52 @@ +/* eslint-disable @next/next/no-img-element */ +import React from "react"; +import aboutSkillsProgress from "../../common/aboutSkillsProgress"; + +const AboutUs5 = () => { + React.useEffect(() => { + aboutSkillsProgress( + document.querySelector(".about-cr .skills-box"), + document.querySelectorAll(".skill-progress .progres"), + document.querySelector(".about-cr") + ); + }, []); + return ( + <section className="about-cr"> + <div className="container-fluid"> + <div className="row"> + <div className="col-lg-6 img md-mb50"> + <img src="/img/intro/4.jpg" alt="" /> + </div> + <div className="col-lg-5 valign"> + <div className="cont full-width"> + <h3 className="color-font">UI / UX Designer</h3> + <h5 className="co-tit mb-15"> + We help to create visual strategies. + </h5> + <p> + We are Vie. We create award-winning websites, remarkable brands + and cutting-edge apps.Nullam imperdie. + </p> + <div className="skills-box mt-40"> + <div className="skill-item"> + <h5 className="fz-14 mb-15">UI / UX Design</h5> + <div className="skill-progress"> + <div className="progres" data-value="90%"></div> + </div> + </div> + <div className="skill-item"> + <h5 className="fz-14 mb-15">Apps Development</h5> + <div className="skill-progress"> + <div className="progres" data-value="80%"></div> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default AboutUs5; diff --git a/src/components/About-us6/about-us6.jsx b/src/components/About-us6/about-us6.jsx new file mode 100644 index 0000000..892c5f0 --- /dev/null +++ b/src/components/About-us6/about-us6.jsx @@ -0,0 +1,55 @@ +import React from 'react' +import Link from 'next/link' + +const AboutUs6 = () => { + return ( + <section id="about" className="about-ar section-padding"> + <div className="container"> + <div className="row"> + <div className="col-lg-6 valign"> + <div className="img"> + <div + className="bg-img bg-fixed hero-bg" + style={{ backgroundImage: "url(/img/arch/hero.jpg)" }} + ></div> + <div className="exp valign text-center"> + <div className="full-width"> + <h2 + className="bg-img bg-fixed" + style={{ backgroundImage: "url(/img/arch/hero.jpg)" }} + > + 25 + </h2> + <p>Years Of Experience</p> + </div> + </div> + </div> + </div> + + <div className="col-lg-6 valign"> + <div className="content"> + <h6 className="sub-title main-color ls10 text-u">About Us</h6> + <h3>Best Designers Architectures for You.</h3> + <p> + Architecture bibendum pharetra eleifend. Suspendisse vel + volutpat purus, sit amet bibendum nisl. Cras mollis turpis a + ipsum ultes, nec condimentum ipsum consequat. Mauris vitae + consequat nibh, vitae interdum sit amet bibendum nisl. + </p> + + <Link + href={`/about/about-dark`} + > + <a className="butn bord mt-30"> + <span>About Us</span> + </a> + </Link> + </div> + </div> + </div> + </div> + </section> + ); +} + +export default AboutUs6 \ No newline at end of file diff --git a/src/components/Blog-details/blog-details.jsx b/src/components/Blog-details/blog-details.jsx new file mode 100644 index 0000000..89e38e1 --- /dev/null +++ b/src/components/Blog-details/blog-details.jsx @@ -0,0 +1,346 @@ +/* eslint-disable @next/next/no-img-element */ +import React from "react"; +import Link from "next/link"; +import { Formik, Form, Field } from "formik"; +import { Link as ScrollLink } from "react-scroll"; + +const BlogDetails = ({ theme }) => { + const messageRef = React.useRef(null); + function validateEmail(value) { + let error; + if (!value) { + error = "Required"; + } else if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.test(value)) { + error = "Invalid email address"; + } + return error; + } + const sendMessage = (ms) => new Promise((r) => setTimeout(r, ms)); + + return ( + <section className="blog-pg single section-padding pt-0"> + <div className="container"> + <div className="row justify-content-center"> + <div className="col-lg-11"> + <div className="post"> + <div className="img"> + <img src="/img/blog/single.jpg" alt="" /> + </div> + <div className="content pt-60"> + <div className="row justify-content-center"> + <div className="col-lg-10"> + <div className="cont"> + <h4 className="extra-title"> + Priorities that will pop up in any particular month. + </h4> + <div className="spacial"> + <p> + Never ever think of giving up. Winners never quit and + quitters never win. Take all negative words out of + your mental dictionary and focus on the solutions with + utmost conviction and patience. The battle is never + lost until you’ve abandon your vision. + </p> + </div> + <p> + the main component of a healthy environment for self + esteem is that it needs be nurturing. The main compont + of a healthy environment for self esteem is that it + needs be nurturing. The main component of a healthy env + for self esteem The main compont be nurturing It should + provide unconditional warmth. The main component of a + healthy env for self esteem The main compont be + nurturing It should provide unconditional + </p> + + <h6>- We all intend to plan ahead.</h6> + + <p> + We all intend to plan ahead, but too often let the + day-to-day minutia get in the way of making a calendar + for the year. Sure, you can’t know every detail to + anticipate. Heck, you can’t know half the priorities + that will pop up in any particular month. But you can + plan for big picture seasonality, busy-times, and + events. + </p> + + <ul> + <li> + <span>01</span> Integer in volutpat libero. + </li> + <li> + <span>02</span> Vivamus maximus ultricies pulvinar. + </li> + <li> + <span>03</span> priorities that will pop up in any + particular month. + </li> + <li> + <span>04</span> We all intend to plan ahead. + </li> + <li> + <span>05</span> The main component of a healthy env + for self esteem. + </li> + </ul> + + <div className="quotes text-center"> + <p> + Never ever think of giving up. Winners never quit and + quitters never win. Take all negative words out of + your mental dictionary and focus on the solutions with + utmost conviction and patience. The battle is never + lost until you’ve abandon your vision. + </p> + </div> + <div className="row"> + <div className="col-md-6"> + <div className="mb-10"> + <img src="/img/blog/2.jpg" alt="" /> + </div> + </div> + <div className="col-md-6"> + <div className="mb-10"> + <img src="/img/blog/3.jpg" alt="" /> + </div> + </div> + </div> + <p> + We all intend to plan ahead, but too often let the + day-to-day minutia get in the way of making a calendar + for the year. Sure, you can’t know every detail to + anticipate. Heck, you can’t know half the priorities + that will pop up in any particular month. But you can + plan for big picture seasonality, busy-times, and + events. + </p> + <div className="share-info"> + <div className="social"> + <a href="#0"> + <i className="fab fa-facebook-f"></i> + </a> + <a href="#0"> + <i className="fab fa-twitter"></i> + </a> + <a href="#0"> + <i className="fab fa-behance"></i> + </a> + </div> + <div className="tags"> + <a href="#0">Web</a>,<a href="#0">Themeforest</a>, + <a href="#0">ThemesCamp</a> + </div> + </div> + </div> + <div className="author"> + <div className="author-img"> + <img src="/img/blog/01.jpg" alt="" /> + </div> + <div className="info"> + <h6> + <span>author :</span> Jorden Griffin + </h6> + <p> + the main component of a healthy environment for self + esteem is that it needs be nurturing. The main compont + of a healthy environment. + </p> + <div className="social"> + <a href="#0"> + <i className="fab fa-facebook-f"></i> + </a> + <a href="#0"> + <i className="fab fa-twitter"></i> + </a> + <a href="#0"> + <i className="fab fa-behance"></i> + </a> + </div> + </div> + </div> + </div> + </div> + </div> + + <div className="pagination"> + <span> + <a href="#0">Prev Post</a> + </span> + <span className="icon"> + <Link href={`/blog/blog-dark`}> + <a> + <i className="fas fa-th-large"></i> + </a> + </Link> + </span> + <span className="text-right"> + <a href="#0">Next Post</a> + </span> + </div> + + <div className="comments-area"> + <h5>Comments :</h5> + <div className="item"> + <div className="comment-img"> + <img src="/img/blog/01.jpg" alt="" /> + </div> + <div className="info"> + <h6> + Jorden Griffin - <span> 6 Aug 2022</span> + </h6> + <span className="replay"> + <ScrollLink + to="comment-form" + spy={true} + smooth={true} + offset={-150} + duration={500} + > + Replay <i className="fas fa-reply"></i> + </ScrollLink> + </span> + <p> + the main component of a healthy environment for self + esteem is that it needs be nurturing. The main compont of + a healthy environment. + </p> + </div> + </div> + <div className="item relped"> + <div className="comment-img"> + <img src="/img/blog/01.jpg" alt="" /> + </div> + <div className="info"> + <h6> + Jorden Griffin - <span> 6 Aug 2022</span> + </h6> + <span className="replay"> + <ScrollLink + to="comment-form" + spy={true} + smooth={true} + offset={-150} + duration={500} + > + Replay <i className="fas fa-reply"></i> + </ScrollLink> + </span> + <p> + the main component of a healthy environment for self + esteem is that it needs be nurturing. The main compont of + a healthy environment. + </p> + </div> + </div> + <div className="item"> + <div className="comment-img"> + <img src="/img/blog/01.jpg" alt="" /> + </div> + <div className="info"> + <h6> + Jorden Griffin - <span> 6 Aug 2022</span> + </h6> + <span className="replay"> + <ScrollLink + to="comment-form" + spy={true} + smooth={true} + offset={-150} + duration={500} + > + Replay <i className="fas fa-reply"></i> + </ScrollLink> + </span> + <p> + the main component of a healthy environment for self + esteem is that it needs be nurturing. The main compont of + a healthy environment. + </p> + </div> + </div> + </div> + + <div className="comment-form" id="comment-form"> + <h5>Add Comment :</h5> + <div className="form"> + <Formik + initialValues={{ + name: "", + email: "", + comment: "", + }} + onSubmit={async (values) => { + await sendMessage(500); + alert(JSON.stringify(values, null, 2)); + // Reset the values + values.name = ""; + values.email = ""; + values.comment = ""; + }} + > + {({ errors, touched }) => ( + <Form> + <div className="row"> + <div className="col-12"> + <div className="form-group"> + <Field + as="textarea" + placeholder="Your Comment" + name="comment" + /> + </div> + </div> + <div className="col-md-6"> + <div className="form-group"> + <Field + type="text" + placeholder="Your Name" + name="name" + /> + </div> + </div> + <div className="col-md-6"> + <div className="form-group"> + <Field + type="email" + validate={validateEmail} + placeholder="Your Email" + name="email" + /> + {errors.email && touched.email && ( + <div>{errors.email}</div> + )} + </div> + </div> + <div className="col-12"> + <div className="form-group text-center"> + <button + type="submit" + className={`nb butn ${ + theme + ? theme === "light" + ? "dark" + : "" + : "light" + } curve full-width`} + > + Comment + </button> + </div> + </div> + </div> + </Form> + )} + </Formik> + </div> + </div> + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default BlogDetails; diff --git a/src/components/Blog-grid/blog-grid.jsx b/src/components/Blog-grid/blog-grid.jsx new file mode 100644 index 0000000..ccada1c --- /dev/null +++ b/src/components/Blog-grid/blog-grid.jsx @@ -0,0 +1,75 @@ +/* eslint-disable react/jsx-key */ +/* eslint-disable @next/next/no-img-element */ +import React from "react"; +import Link from "next/link"; + +const BlogGrid = ({ blogs }) => { + return ( + <section className="blog-pg blog section-padding pt-0"> + <div className="container"> + <div className="posts"> + <div className="row"> + {blogs.map((blogItem) => ( + <div className="col-lg-4" key={blogItem.id}> + <div className="item mb-80 wow fadeInUp" data-wow-delay=".3s"> + <div className="img"> + <img src={blogItem.image} alt="" /> + </div> + <div className="cont"> + <div> + <div className="info"> + <Link href="/blog/blog-dark"> + <a className="date"> + <span> + <i>{blogItem.date.day}</i> + {blogItem.date.month} + </span> + </a> + </Link> + <span>/</span> + {blogItem.tags.map((tag, index) => ( + <Link key={index} href="/blog/blog-dark/"> + <a className="tag"> + <span>{tag}</span> + </a> + </Link> + ))} + </div> + <h5> + <Link href="/blog-details/blog-details-dark"> + {blogItem.title.substr(0, 55) + "..."} + </Link> + </h5> + <div className="btn-more"> + <Link href="/blog-details/blog-details-dark"> + <a className="simple-btn">Read More</a> + </Link> + </div> + </div> + </div> + </div> + </div> + ))} + <div className="pagination"> + <span className="active"> + <Link href={`/blog/blog-dark`}>1</Link> + </span> + <span> + <Link href={`/blog/blog-dark`}>2</Link> + </span> + <span> + <Link href={`/blog/blog-blogwindow.theme}`}> + <a> + <i className="fas fa-angle-right"></i> + </a> + </Link> + </span> + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default BlogGrid; diff --git a/src/components/Blog-list/blog-list.jsx b/src/components/Blog-list/blog-list.jsx new file mode 100644 index 0000000..b966554 --- /dev/null +++ b/src/components/Blog-list/blog-list.jsx @@ -0,0 +1,88 @@ +/* eslint-disable react/jsx-key */ +/* eslint-disable @next/next/no-img-element */ +import React from "react"; +import Link from "next/link"; + +const BlogList = ({ blogs }) => { + return ( + <section className="blog-pg blog-list section-padding pt-0"> + <div className="container"> + <div className="row justify-content-center"> + <div className="col-lg-11"> + <div className="posts mt-80"> + {blogs.map((blogItem, index) => ( + <div + className="item mb-80 wow fadeInUp" + key={blogItem.id} + data-wow-delay=".3s" + > + <div className="row"> + <div className="col-lg-6 valign"> + <div className="img md-mb50"> + <img src={blogItem.image} alt="" /> + </div> + </div> + <div className="col-lg-6 valign"> + <div className="cont"> + <div> + <div className="info"> + <Link href="/blog/blog-dark"> + <a className="date"> + <span> + <i>{blogItem.date.day}</i> + {blogItem.date.month} + </span> + </a> + </Link> + <span>/</span> + {blogItem.tags.map((tag, index) => ( + <Link key={index} href="/blog/blog-dark"> + <a className="tag"> + <span>{tag}</span> + </a> + </Link> + ))} + </div> + <h5> + <Link href="/blog-details/blog-details-dark"> + <a>{blogItem.title}</a> + </Link> + </h5> + <p className="mt-10"> + {blogItem.content.substr(0, 146) + '...'} + </p> + <div className="btn-more mt-30"> + <Link href="/blog-details/blog-details-dark"> + <a className="simple-btn">Read More</a> + </Link> + </div> + </div> + </div> + </div> + </div> + </div> + ))} + <div className="pagination"> + <span className="active"> + <Link href={`/blog/blog-dark`}>1</Link> + </span> + <span> + <Link href={`/blog/blog-dark`}>2</Link> + </span> + <span> + <Link href={`/blog/blog-dark`}> + <a> + <i className="fas fa-angle-right"></i> + </a> + </Link> + </span> + </div> + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default BlogList; diff --git a/src/components/Blog-standerd/blog-standerd.jsx b/src/components/Blog-standerd/blog-standerd.jsx new file mode 100644 index 0000000..b4d5945 --- /dev/null +++ b/src/components/Blog-standerd/blog-standerd.jsx @@ -0,0 +1,85 @@ +/* eslint-disable @next/next/no-img-element */ +import React from "react"; +import Link from "next/link"; + +const BlogStanderd = ({ blogs }) => { + return ( + <section className="blog-pg section-padding pt-0"> + <div className="container"> + <div className="row justify-content-center"> + <div className="col-lg-11"> + <div className="posts"> + {blogs.map((blogItem, index) => ( + <div + className={`item ${ + index === blogs.length - 1 ? "" : "mb-80" + }`} + key={blogItem.id} + > + <div className="img"> + <Link href={`/blog-details/blog-details-${blogItem.id}`}> + <a> + <img src={blogItem.image} alt="" /> + </a> + </Link> + </div> + <div className="content"> + <div className="row justify-content-center"> + <div className="col-10"> + <Link + href={`/blog-details/blog-details-${blogItem.id}`} + > + <a className="date"> + <span className="num">{blogItem.date.day}</span> + <span>{blogItem.date.month}</span> + </a> + </Link> + {/* <div className="tags"> + {blogItem.tags.map((tag, index) => ( + <Link key={index} href="/blog/blog-light"> + {tag} + </Link> + ))} + </div> */} + <h4 className="title"> + <Link + href={`/blog-details/blog-details-${blogItem.id}`} + > + {blogItem.title} + </Link> + </h4> + <p>{blogItem.content}</p> + <Link + href={`/blog-details/blog-details-${blogItem.id}`} + > + <a className="butn bord curve mt-30">Read More</a> + </Link> + </div> + </div> + </div> + </div> + ))} + {/* <div className="pagination"> + <span className="active"> + <Link href={`/blog/blog-light`}>1</Link> + </span> + <span> + <Link href={`/blog/blog-light`}>2</Link> + </span> + <span> + <Link href={`/blog/blog-light`}> + <a> + <i className="fas fa-angle-right"></i> + </a> + </Link> + </span> + </div> */} + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default BlogStanderd; diff --git a/src/components/Blogs2/blogs2.jsx b/src/components/Blogs2/blogs2.jsx new file mode 100644 index 0000000..74aaf21 --- /dev/null +++ b/src/components/Blogs2/blogs2.jsx @@ -0,0 +1,103 @@ +import React from "react"; + +const Blogs2 = () => { + return ( + <section className="app-blog section-padding"> + <div className="container"> + <div className="row justify-content-center"> + <div className="col-lg-7 col-md-10"> + <div className="s-head text-center mb-80"> + <h6 className="stit mb-30"> + <span className="left"></span> Blog and News + <span className="right"></span> + </h6> + <h2>Read Latest Artices and Tips Latest News & Blog</h2> + </div> + </div> + </div> + <div className="row"> + <div className="col-lg-6"> + <div className="item md-mb50"> + <div className="row"> + <div className="col-md-5"> + <div className="img"> + <img src="/img/mobile-app/blog/1.jpg" alt="" /> + </div> + </div> + <div className="col-md-7 valign"> + <div className="cont"> + <div className="full-width"> + <div className="tag"> + <a href="#0">Design & Arts</a> + </div> + <div className="title"> + <h5> + Everything You Want Know About Creating Voice + Interfaces + </h5> + </div> + <div className="info"> + <a href="#0"> + <span>Post By :</span> + Lisa A. Cowles + </a> + <a href="#0"> + <span>Comments :</span> + (05) + </a> + </div> + <a href="#0" className="butn-bord-red rounded buton"> + <span>Read More</span> + </a> + </div> + </div> + </div> + </div> + </div> + </div> + <div className="col-lg-6"> + <div className="item"> + <div className="row"> + <div className="col-md-5"> + <div className="img"> + <img src="/img/mobile-app/blog/2.jpg" alt="" /> + </div> + </div> + <div className="col-md-7 valign"> + <div className="cont"> + <div className="full-width"> + <div className="tag"> + <a href="#0">Design & Arts</a> + </div> + <div className="title"> + <h5> + Everything You Want Know About Creating Voice + Interfaces + </h5> + </div> + <div className="info"> + <a href="#0"> + <span>Post By :</span> + Lisa A. Cowles + </a> + <a href="#0"> + <span>Comments :</span> + (05) + </a> + </div> + <a href="#0" className="butn-bord-red rounded buton"> + <span>Read More</span> + </a> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default Blogs2; diff --git a/src/components/Call-to-action/call-to-action.jsx b/src/components/Call-to-action/call-to-action.jsx new file mode 100644 index 0000000..80e0483 --- /dev/null +++ b/src/components/Call-to-action/call-to-action.jsx @@ -0,0 +1,39 @@ +import React from "react"; +import Split from "../Split"; +import Link from "next/link"; + +const CallToAction = ({ img }) => { + return ( + <section + className="call-action section-padding sub-bg bg-img" + style={{ backgroundImage: `url(${img ? img : "/img/patrn.svg"})` }} + > + <div className="container"> + <div className="row"> + <div className="col-md-8 col-lg-9"> + <div className="content sm-mb30"> + <Split> + <h6 className="wow words chars splitting" data-splitting> + Let’s Talk + </h6> + <h2 className="wow words chars splitting" data-splitting> + about your <br /> <b className="back-color">next project</b>. + </h2> + </Split> + </div> + </div> + + <div className="col-md-4 col-lg-3 valign"> + <Link href={`/contact/contact-light`}> + <a className="butn bord curve wow fadeInUp" data-wow-delay=".5s"> + <span>Get In Touch</span> + </a> + </Link> + </div> + </div> + </div> + </section> + ); +}; + +export default CallToAction; diff --git a/src/components/Case-study/case-study.jsx b/src/components/Case-study/case-study.jsx new file mode 100644 index 0000000..9ead43d --- /dev/null +++ b/src/components/Case-study/case-study.jsx @@ -0,0 +1,117 @@ +import React from "react"; +import Link from "next/link"; +import caseStudyData from "../../data/sections/case-study.json"; +import { Swiper, SwiperSlide } from "swiper/react"; +import SwiperCore, { Navigation, Pagination, EffectFade } from "swiper"; +import "swiper/css/effect-fade"; +import "swiper/css"; +import "swiper/css/navigation"; +import removeSlashFromPagination from "../../common/removeSlashpagination"; +SwiperCore.use([Navigation, Pagination, EffectFade]); + +const CaseStudy = () => { + const [load, setLoad] = React.useState(true); + React.useEffect(() => { + setTimeout(() => { + setLoad(false); + removeSlashFromPagination(); + }, 1000); + }, []); + + const navigationPrevRef = React.useRef(null); + const navigationNextRef = React.useRef(null); + const paginationRef = React.useRef(null); + return ( + <section className="case-study"> + <h2 style={{ display: "none" }}> </h2> + <div + id="content-carousel-container-unq-1" + className="swiper-container" + data-swiper="container" + > + {!load ? ( + <Swiper + effect={"fade"} + speed={1000} + navigation={{ + prevEl: navigationPrevRef.current, + nextEl: navigationNextRef.current, + }} + pagination={{ + clickable: true, + el: paginationRef.current, + }} + onBeforeInit={(swiper) => { + swiper.params.navigation.prevEl = navigationPrevRef.current; + swiper.params.navigation.nextEl = navigationNextRef.current; + swiper.params.pagination.el = paginationRef.current; + }} + onSwiper={(swiper) => { + setTimeout(() => { + for (var i = 0; i < swiper.slides.length; i++) { + swiper.slides[i].childNodes[0].setAttribute( + "data-swiper-parallax", + 0.75 * swiper.width + ); + } + + swiper.params.navigation.prevEl = navigationPrevRef.current; + swiper.params.navigation.nextEl = navigationNextRef.current; + + swiper.params.pagination.el = paginationRef.current; + + swiper.navigation.destroy(); + swiper.navigation.init(); + swiper.navigation.update(); + + swiper.pagination.destroy(); + swiper.pagination.init(); + swiper.pagination.update(); + }); + }} + className="swiper-wrapper" + slidesPerView={1} + > + {caseStudyData.map((item) => ( + <SwiperSlide + key={item.id} + className="swiper-slide bg-img" + style={{ backgroundImage: `url(${item.image})` }} + data-overlay-dark="7" + > + <div className="container d-flex align-items-end"> + <div className="cont"> + <Link href="/showcase/showcase-dark"> + <a> + <span>Case Study</span> + <h6 className="main-color">{item.date}</h6> + <h4>{item.title}</h4> + </a> + </Link> + </div> + </div> + </SwiperSlide> + ))} + </Swiper> + ) : null} + <div className="controls"> + <div + ref={navigationNextRef} + className="swiper-button-next swiper-nav-ctrl next-ctrl cursor-pointer" + > + <i className="fas fa-chevron-right"></i> + </div> + <div + ref={navigationPrevRef} + className="swiper-button-prev swiper-nav-ctrl prev-ctrl cursor-pointer" + > + <i className="fas fa-chevron-left"></i> + </div> + </div> + <div className="swiper-pagination" ref={paginationRef}></div> + </div> + </section> + ); +}; + +export default CaseStudy; diff --git a/src/components/Clients/clients.jsx b/src/components/Clients/clients.jsx new file mode 100644 index 0000000..b8195b2 --- /dev/null +++ b/src/components/Clients/clients.jsx @@ -0,0 +1,123 @@ +/* eslint-disable @next/next/no-img-element */ +import React from "react"; +import ClientsData from "../../data/sections/clients.json"; +import Split from "../Split"; + +const Clients = ({ theme }) => { + var first = ClientsData.slice(0, ClientsData.length / 2); + var second = ClientsData.slice(4, ClientsData.length); + + return ( + <section className="clients section-padding"> + <div className="container"> + <div className="row"> + <div className="col-lg-4 valign md-mb50"> + <div className="sec-head mb-0"> + <h6 className="wow fadeIn" data-wow-delay=".5s"> + Best Features + </h6> + <h3 className="wow mb-20 color-font">Our Clients</h3> + <p> + Our area of practice is quite wide: design, graphics, branding, + development. + </p> + </div> + </div> + <div className="col-lg-8"> + <div> + <div className="row bord"> + {first.map((item) => ( + <div key={item.id} className="col-md-3 col-6 brands"> + <div + className="item wow fadeIn" + data-wow-delay={`${ + item.id == 1 + ? ".3" + : item.id == 2 + ? ".6" + : item.id == 3 + ? ".8" + : item.id == 4 + ? ".3" + : "" + }s`} + > + <div className="img"> + {theme === "light" ? ( + <img src={item.lightImage} alt="" /> + ) : ( + <img src={item.darkImage} alt="" /> + )} + {/* <Split> + <a + href="#0" + className="link words chars splitting" + data-splitting + > + {item.url} + </a> + </Split> */} + </div> + </div> + </div> + ))} + </div> + <div className="row"> + {second.map((item) => ( + <div + key={item.id} + className={`${ + item.id == 5 + ? "col-md-3 col-6 brands sm-mb30" + : item.id == 6 + ? "col-md-3 col-6 brands sm-mb30" + : item.id == 7 + ? "col-md-3 col-6 brands" + : item.id == 8 + ? "col-md-3 col-6 brands" + : "" + }`} + > + <div + className="item wow fadeIn" + data-wow-delay={`${ + item.id == 1 + ? ".4" + : item.id == 2 + ? ".7" + : item.id == 3 + ? ".5" + : item.id == 4 + ? ".3" + : "" + }s`} + > + <div className="img"> + {theme === "light" ? ( + <img src={item.lightImage} alt="" /> + ) : ( + <img src={item.darkImage} alt="" /> + )} + {/* <Split> + <a + href="#0" + className="link words chars splitting" + data-splitting + > + {item.url} + </a> + </Split> */} + </div> + </div> + </div> + ))} + </div> + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default Clients; diff --git a/src/components/Clients2/clients2.jsx b/src/components/Clients2/clients2.jsx new file mode 100644 index 0000000..5368dbb --- /dev/null +++ b/src/components/Clients2/clients2.jsx @@ -0,0 +1,44 @@ +/* eslint-disable @next/next/no-img-element */ +import React from "react"; +import ClientsData from "../../data/sections/clients.json"; +import Split from "../Split"; + +const Clients2 = ({ theme }) => { + return ( + <section className="clients sub-bg pt-50 pb-50"> + <h2 style={{ display: "none" }}> </h2> + <div className="container"> + <div className="row"> + <div className="col-lg-7"> + <div className="row"> + {ClientsData.slice(0, 4).map((item) => ( + <div key={item.id} className="col-lg-3 brands"> + <div className="item no-bord wow fadeIn" data-wow-delay=".3s"> + <div className="img"> + {theme === "light" ? ( + <img src={item.lightImage} alt="" /> + ) : ( + <img src={item.darkImage} alt="" /> + )} + <Split> + <a + href="#0" + className="link words chars splitting" + data-splitting + > + {item.url} + </a> + </Split> + </div> + </div> + </div> + ))} + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default Clients2; diff --git a/src/components/Clients3/clients3.jsx b/src/components/Clients3/clients3.jsx new file mode 100644 index 0000000..e2e2e55 --- /dev/null +++ b/src/components/Clients3/clients3.jsx @@ -0,0 +1,220 @@ +import React from "react"; + +const Clients3 = () => { + return ( + <section className="brands pt-80 pb-80 bg-dark" data-overlay-dark="0"> + <div className="container"> + <div className="head mb-60 text-center"> + <div className="row justify-content-center"> + <div className="col-lg-6 col-md-9"> + <div className="text"> + <h2> + We’ve + <span> + 154+ + <img + src="/img/mobile-app/shapes/border.png" + alt="" + className="bord-gr" + /> + </span> + Global Partners + </h2> + <span className="mt-10"> + Professional Design Agency to provide solutions + </span> + </div> + </div> + </div> + </div> + <div className="row"> + <div className="col-lg col-sm-3"> + <div className="item"> + <div className="img"> + <a href="#0"> + <img + src="/img/mobile-app/brands/l1.png" + alt="" + className="front" + /> + <img + src="/img/mobile-app/brands/l1.png" + alt="" + className="back" + /> + </a> + </div> + </div> + </div> + <div className="col-lg col-sm-3"> + <div className="item"> + <div className="img"> + <a href="#0"> + <img + src="/img/mobile-app/brands/l2.png" + alt="" + className="front" + /> + <img + src="/img/mobile-app/brands/l2.png" + alt="" + className="back" + /> + </a> + </div> + </div> + </div> + <div className="col-lg col-sm-3"> + <div className="item"> + <div className="img"> + <a href="#0"> + <img + src="/img/mobile-app/brands/l3.png" + alt="" + className="front" + /> + <img + src="/img/mobile-app/brands/l3.png" + alt="" + className="back" + /> + </a> + </div> + </div> + </div> + <div className="col-lg col-sm-3"> + <div className="item"> + <div className="img"> + <a href="#0"> + <img + src="/img/mobile-app/brands/l4.png" + alt="" + className="front" + /> + <img + src="/img/mobile-app/brands/l4.png" + alt="" + className="back" + /> + </a> + </div> + </div> + </div> + <div className="col-lg lg-hide"> + <div className="item"> + <div className="img"> + <a href="#0"> + <img + src="/img/mobile-app/brands/l5.png" + alt="" + className="front" + /> + <img + src="/img/mobile-app/brands/l5.png" + alt="" + className="back" + /> + </a> + </div> + </div> + </div> + </div> + <div className="row lg-hide"> + <div className="col-lg"> + <div className="item"> + <div className="img"> + <a href="#0"> + <img + src="/img/mobile-app/brands/l5.png" + alt="" + className="front" + /> + <img + src="/img/mobile-app/brands/l5.png" + alt="" + className="back" + /> + </a> + </div> + </div> + </div> + <div className="col-lg"> + <div className="item"> + <div className="img"> + <a href="#0"> + <img + src="/img/mobile-app/brands/l4.png" + alt="" + className="front" + /> + <img + src="/img/mobile-app/brands/l4.png" + alt="" + className="back" + /> + </a> + </div> + </div> + </div> + <div className="col-lg"> + <div className="item"> + <div className="img"> + <a href="#0"> + <img + src="/img/mobile-app/brands/l3.png" + alt="" + className="front" + /> + <img + src="/img/mobile-app/brands/l3.png" + alt="" + className="back" + /> + </a> + </div> + </div> + </div> + <div className="col-lg"> + <div className="item"> + <div className="img"> + <a href="#0"> + <img + src="/img/mobile-app/brands/l2.png" + alt="" + className="front" + /> + <img + src="/img/mobile-app/brands/l2.png" + alt="" + className="back" + /> + </a> + </div> + </div> + </div> + <div className="col-lg"> + <div className="item"> + <div className="img"> + <a href="#0"> + <img + src="/img/mobile-app/brands/l1.png" + alt="" + className="front" + /> + <img + src="/img/mobile-app/brands/l1.png" + alt="" + className="back" + /> + </a> + </div> + </div> + </div> + </div> + </div> + <div className="circle-blur"></div> + </section> + ); +}; + +export default Clients3; diff --git a/src/components/Contact-arch/contact-arch.jsx b/src/components/Contact-arch/contact-arch.jsx new file mode 100644 index 0000000..bcc8938 --- /dev/null +++ b/src/components/Contact-arch/contact-arch.jsx @@ -0,0 +1,127 @@ +import React from "react"; +import { Formik, Form, Field } from "formik"; + +const ContactArch = () => { + const messageRef = React.useRef(null); + function validateEmail(value) { + let error; + if (!value) { + error = "Required"; + } else if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.test(value)) { + error = "Invalid email address"; + } + return error; + } + const sendMessage = (ms) => new Promise((r) => setTimeout(r, ms)); + return ( + <section + id="contact-arch" + className="contact-sec style2 section-padding position-re bg-img" + style={{ backgroundImage: "url(/img/patrn1.png)" }} + > + <div className="container"> + <div className="row justify-content-center"> + <div className="col-lg-8 col-md-10"> + <div className="sec-head text-center"> + <h2 className="wow fadeIn" data-wow-delay=".3s"> + Contact Us + </h2> + </div> + </div> + </div> + <div className="row justify-content-center"> + <div className="col-lg-10"> + <div className="form wow fadeInUp" data-wow-delay=".5s"> + <Formik + initialValues={{ + name: "", + email: "", + message: "", + }} + onSubmit={async (values) => { + await sendMessage(500); + alert(JSON.stringify(values, null, 2)); + // show message + + messageRef.current.innerText = + "Your Message has been successfully sent. I will contact you soon."; + // Reset the values + values.name = ""; + values.email = ""; + values.message = ""; + // clear message + setTimeout(() => { + messageRef.current.innerText = ""; + }, 2000); + }} + > + {({ errors, touched }) => ( + <Form id="contact-form"> + <div className="messages" ref={messageRef}></div> + <br /> + + <div className="controls"> + <div className="row"> + <div className="col-lg-6"> + <div className="form-group"> + <Field + id="form_name" + type="text" + name="name" + placeholder="Name" + required="required" + /> + </div> + </div> + <div className="col-lg-6"> + <div className="form-group"> + <Field + validate={validateEmail} + id="form_email" + type="email" + name="email" + placeholder="Email" + required="required" + /> + {errors.email && touched.email && ( + <div>{errors.email}</div> + )} + </div> + </div> + + <div className="col-12"> + <div className="form-group"> + <Field + as="textarea" + id="form_message" + name="message" + placeholder="Message" + rows="4" + required="required" + /> + </div> + </div> + <div className="col-12"> + <div className="text-center"> + <button + type="submit" + className="nb butn light mt-30 full-width" + > + <span className="ls3 text-u">Send Massege</span> + </button> + </div> + </div> + </div> + </div> + </Form> + )} + </Formik> + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default ContactArch; diff --git a/src/components/Contact-form/contact-form.jsx b/src/components/Contact-form/contact-form.jsx new file mode 100644 index 0000000..0a56aad --- /dev/null +++ b/src/components/Contact-form/contact-form.jsx @@ -0,0 +1,139 @@ +import React from "react"; +import ContactFromDate from "../../data/sections/form-info.json"; +import { Formik, Form, Field } from "formik"; + +const ContactForm = () => { + const messageRef = React.useRef(null); + function validateEmail(value) { + let error; + if (!value) { + error = "Required"; + } else if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.test(value)) { + error = "Invalid email address"; + } + return error; + } + const sendMessage = (ms) => new Promise((r) => setTimeout(r, ms)); + return ( + <section className="contact section-padding"> + <div className="container"> + <div className="row"> + <div className="col-lg-6"> + <div className="form md-mb50"> + <h4 className="fw-700 color-font mb-50">Get In Touch.</h4> + <Formik + initialValues={{ + name: "", + email: "", + message: "", + }} + onSubmit={async (values) => { + await sendMessage(500); + alert(JSON.stringify(values, null, 2)); + // show message + + messageRef.current.innerText = + "Your Message has been successfully sent. I will contact you soon."; + // Reset the values + values.name = ""; + values.email = ""; + values.message = ""; + // clear message + setTimeout(() => { + messageRef.current.innerText = ""; + }, 2000); + }} + > + {({ errors, touched }) => ( + <Form id="contact-form"> + <div className="messages" ref={messageRef}></div> + <div className="controls"> + <div className="form-group"> + <Field + id="form_name" + type="text" + name="name" + placeholder="Name" + required="required" + /> + </div> + <div className="form-group"> + <Field + validate={validateEmail} + id="form_email" + type="email" + name="email" + placeholder="Email" + /> + {errors.email && touched.email && ( + <div>{errors.email}</div> + )} + </div> + </div> + <div className="form-group"> + <Field + as="textarea" + id="form_message" + name="message" + placeholder="Message" + rows="4" + required="required" + /> + </div> + + <button type="submit" className="butn bord"> + <span>Send Message</span> + </button> + </Form> + )} + </Formik> + </div> + </div> + <div className="col-lg-5 offset-lg-1"> + <div className="cont-info"> + <h4 className="fw-700 color-font mb-50">Contact Info.</h4> + <h3 className="wow" data-splitting> + {ContactFromDate.title} + </h3> + <div className="item mb-40"> + <h5> + <a href="#0">{ContactFromDate.email}</a> + </h5> + <h5>{ContactFromDate.phone}</h5> + </div> + <h3 className="wow" data-splitting> + Visit Us. + </h3> + <div className="item"> + <h6> + {ContactFromDate.location.first} + <br /> + {ContactFromDate.location.second} + </h6> + </div> + <div className="social mt-50"> + <a href="https://www.facebook.com/profile.php?id=100057392223857 "> + <i className="fab fa-facebook-f"></i> + </a> + <a + href="https://www.linkedin.com/company/business-hub-international-investment +" + > + <i className="fab fa-linkedin"></i> + </a> + <a + href="https://www.instagram.com/businesshubi/?igsh=MTJ3ejZneWdmbTM3bQ%3D%3D +" + > + <i className="fab fa-instagram"></i> + </a> + </div> + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default ContactForm; diff --git a/src/components/Contact-header/contact-header.jsx b/src/components/Contact-header/contact-header.jsx new file mode 100644 index 0000000..b8fc3c7 --- /dev/null +++ b/src/components/Contact-header/contact-header.jsx @@ -0,0 +1,41 @@ +import React from "react"; +import particlesConfig from "../../config/particle-config"; +import particlesBlackConfig from "../../config/pr-s-black"; +import Particles from "react-tsparticles"; +import ContentHeaderDate from "../../data/sections/contact-header.json"; + +const ContactHeader = ({ sliderRef, blackStar }) => { + return ( + <header + ref={sliderRef} + className="pages-header circle-bg valign position-re" + > + <div className="container"> + <div className="row justify-content-center"> + <div className="col-lg-9 col-md-11"> + <div className="capt"> + <div className="text-center"> + <h1 className="color-font mb-10 fw-700"> + {ContentHeaderDate.title.first} <br /> + {ContentHeaderDate.title.second} + </h1> + <p>{ContentHeaderDate.content}</p> + </div> + </div> + </div> + </div> + </div> + <Particles + id="particles-js" + options={blackStar ? particlesBlackConfig : particlesConfig} + /> + + <div className="circle-color"> + <div className="gradient-circle"></div> + <div className="gradient-circle two"></div> + </div> + </header> + ); +}; + +export default ContactHeader; diff --git a/src/components/Download-app/download-app.jsx b/src/components/Download-app/download-app.jsx new file mode 100644 index 0000000..66b8fcf --- /dev/null +++ b/src/components/Download-app/download-app.jsx @@ -0,0 +1,67 @@ +import React from "react"; + +const DownloadApp = () => { + return ( + <section className="app-action section-padding" data-overlay-dark="0"> + <div className="container"> + <div className="row"> + <div className="col-12"> + <div className="box-gr"> + <div className="row"> + <div className="col-lg-6"> + <div className="img"> + <img src="/img/mobile-app/call-img.png" alt="" /> + </div> + </div> + <div className="col-lg-6 valign"> + <div className="cont"> + <div className="s-head"> + <h6 className="stit mb-30"> + <span className="left"></span> Downlaod Apps{" "} + </h6> + <h2>We’re Available on Store Download your Apps</h2> + </div> + <div className="butons mt-40"> + <a href="#0" className="butn-bg-light rounded buton"> + <span>Apple Store</span> + <i className="icon"> + <svg + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 384 512" + > + <path d="M318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z" /> + </svg> + </i> + </a> + + <a href="#0" className="butn-bord-light rounded buton"> + <span>Google Play</span> + <i className="icon"> + <svg + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 512 512" + > + <path d="M325.3 234.3L104.6 13l280.8 161.2-60.1 60.1zM47 0C34 6.8 25.3 19.2 25.3 35.3v441.3c0 16.1 8.7 28.5 21.7 35.3l256.6-256L47 0zm425.2 225.6l-58.9-34.1-65.7 64.5 65.7 64.5 60.1-34.1c18-14.3 18-46.5-1.2-60.8zM104.6 499l280.8-161.2-60.1-60.1L104.6 499z" /> + </svg> + </i> + </a> + </div> + + <div className="shape-light"> + <img + src="/img/mobile-app/shapes/shape-light.png" + alt="" + /> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default DownloadApp; diff --git a/src/components/Faq/faq.jsx b/src/components/Faq/faq.jsx new file mode 100644 index 0000000..05f8cda --- /dev/null +++ b/src/components/Faq/faq.jsx @@ -0,0 +1,143 @@ +import React from "react"; +import handleAccordion from "../../common/handleAccordion"; + +const Faq = () => { + // $(".accordion").on("click", ".title", function () { + // $(this).next().slideDown(); + // $(".accordion-info").not($(this).next()).slideUp(); + // }); + + // $(".accordion").on("click", ".item", function () { + // $(this).addClass("active").siblings().removeClass("active"); + // }); + + return ( + <section className="app-faq section-padding"> + <div className="container"> + <div className="row"> + <div className="col-lg-5"> + <div className="content md-mb50"> + <h6 className="stit mb-30"> + <span className="left"></span> Faqs + </h6> + <h2 className="mb-30"> + Have Any Questions on Minds? Frequently Asked Questions + </h2> + <p> + Sed perspiciatis unde omnis natus error sit voluptatem accus + doloremque laudantium totarem aperiam eaqupsa quae abillo + inventore veritatis quasi architecto + </p> + <a href="#0" className="butn-bord-red rounded buton mt-30"> + <span>Get Free 7 Days Trial</span> + </a> + </div> + </div> + <div className="col-lg-6 offset-lg-1"> + <div className="content"> + <div className="accordion shadwo"> + <div + className="item mb-30" + onClick={(e) => + handleAccordion( + e.currentTarget.querySelector(".accordion-info") + ) + } + > + <div className="title"> + <h6> + Everything You Want Know About Creating ? + <span className="icon pe-7s-angle-right"></span> + </h6> + </div> + <div className="accordion-info"> + <p> + But must explain you how all this mistaken idea denouncing + pleasure and praising pain was born and I will give you + complete the system and expound the actual teachings of + the great explorer + </p> + </div> + </div> + + <div + className="item active mb-30" + onClick={(e) => + handleAccordion( + e.currentTarget.querySelector(".accordion-info") + ) + } + > + <div className="title"> + <h6> + Frameworks Solve And Without Them ? + <span className="icon pe-7s-angle-right"></span> + </h6> + </div> + <div className="accordion-info active"> + <p> + But must explain you how all this mistaken idea denouncing + pleasure and praising pain was born and I will give you + complete the system and expound the actual teachings of + the great explorer + </p> + </div> + </div> + + <div + className="item mb-30" + onClick={(e) => + handleAccordion( + e.currentTarget.querySelector(".accordion-info") + ) + } + > + <div className="title"> + <h6> + Getting Started With CSS Cascade Layers ? + <span className="icon pe-7s-angle-right"></span> + </h6> + </div> + <div className="accordion-info"> + <p> + But must explain you how all this mistaken idea denouncing + pleasure and praising pain was born and I will give you + complete the system and expound the actual teachings of + the great explorer + </p> + </div> + </div> + + <div + className="item" + onClick={(e) => + handleAccordion( + e.currentTarget.querySelector(".accordion-info") + ) + } + > + <div className="title"> + <h6> + Designing Better Links Websites Guideline ? + <span className="icon pe-7s-angle-right"></span> + </h6> + </div> + <div className="accordion-info"> + <p> + But must explain you how all this mistaken idea denouncing + pleasure and praising pain was born and I will give you + complete the system and expound the actual teachings of + the great explorer + </p> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default Faq; diff --git a/src/components/Footer-arch/footer-arch.jsx b/src/components/Footer-arch/footer-arch.jsx new file mode 100644 index 0000000..ec6f0ab --- /dev/null +++ b/src/components/Footer-arch/footer-arch.jsx @@ -0,0 +1,115 @@ +/* eslint-disable @next/next/no-img-element */ +import React from "react"; +import appData from '../../data/app.json' + +const FooterArch = () => { + return ( + <footer className="sub-bg"> + <div className="container"> + <div className="row"> + <div className="col-lg-4"> + <div className="item md-mb50"> + <div className="title"> + <h5>Contact Us</h5> + </div> + <ul> + <li> + <span className="icon pe-7s-map-marker"></span> + <div className="cont"> + <h6>Officeal Address</h6> + <p>504 White St . Dawsonville, GA 30534 , New York</p> + </div> + </li> + <li> + <span className="icon pe-7s-mail"></span> + <div className="cont"> + <h6>Email Us</h6> + <p>support@gmail.com</p> + </div> + </li> + <li> + <span className="icon pe-7s-call"></span> + <div className="cont"> + <h6>Call Us</h6> + <p>+87986451666</p> + </div> + </li> + </ul> + </div> + </div> + <div className="col-lg-4"> + <div className="item md-mb50"> + <div className="title"> + <h5>Recent News</h5> + </div> + <ul> + <li> + <div className="img"> + <img src="/img/blog/1.jpg" alt="" /> + </div> + <div className="sm-post"> + <p> + The Start-Up Ultimate Guide to Make Your WordPress + Journal. + </p> + <span className="date main-color">14 sep 2022</span> + </div> + </li> + <li> + <div className="img"> + <img src="/img/blog/2.jpg" alt="" /> + </div> + <div className="sm-post"> + <p> + The Start-Up Ultimate Guide to Make Your WordPress + Journal. + </p> + <span className="date main-color">14 sep 2022</span> + </div> + </li> + <li> + <div className="subscribe"> + <input type="text" placeholder="Type Your Email" /> + <span className="subs pe-7s-paper-plane back-color"></span> + </div> + </li> + </ul> + </div> + </div> + <div className="col-lg-4"> + <div className="item"> + <div className="logo"> + <img src={appData.lightLogo} alt="" /> + </div> + <div className="social"> + <a href="#0"> + <i className="fab fa-facebook-f"></i> + </a> + <a href="#0"> + <i className="fab fa-twitter"></i> + </a> + <a href="#0"> + <i className="fab fa-instagram"></i> + </a> + <a href="#0"> + <i className="fab fa-youtube"></i> + </a> + </div> + <div className="copy-right"> + <p> + © 2022, Vie Template. Made with passion by + <a href="#0" className="main-color"> + ThemesCamp + </a> + . + </p> + </div> + </div> + </div> + </div> + </div> + </footer> + ); +}; + +export default FooterArch; diff --git a/src/components/Footer/footer.jsx b/src/components/Footer/footer.jsx new file mode 100644 index 0000000..3d2df02 --- /dev/null +++ b/src/components/Footer/footer.jsx @@ -0,0 +1,85 @@ +/* eslint-disable @next/next/no-img-element */ +import React from "react"; +import Link from "next/link"; +import appData from "../../data/app.json"; + +const Footer = ({ hideBGCOLOR }) => { + return ( + <footer className={`${!hideBGCOLOR ? "sub-bg" : ""}`}> + <div className="container"> + <div className="row"> + <div className="col-lg-4"> + <div className="item md-mb50"> + <div className="title"> + <h5>Contact Us</h5> + </div> + <ul> + <li> + <span className="icon pe-7s-map-marker"></span> + <div className="cont"> + <h6>Officeal Address</h6> + <p> + Baghdad Street, Al Dana area, Abu Dhabi, United Arab + Emirates + </p> + </div> + </li> + <li> + <span className="icon pe-7s-mail"></span> + <div className="cont"> + <h6>Email Us</h6> + <p>hello@businesshub.abudhabi</p> + </div> + </li> + <li> + <span className="icon pe-7s-call"></span> + <div className="cont"> + <h6>Call Us</h6> + <p>+971 26340404</p> + </div> + </li> + </ul> + </div> + </div> + + <div className="col-lg-4"> + <div className="item"> + <div className="logo"> + <img + src={appData.footerLogo} + style={{ width: "150px" }} + alt="" + /> + </div> + <div className="social"> + <a href="https://www.facebook.com/profile.php?id=100057392223857 "> + <i className="fab fa-facebook-f"></i> + </a> + <a + href="https://www.linkedin.com/company/business-hub-international-investment +" + > + <i className="fab fa-linkedin"></i> + </a> + <a + href="https://www.instagram.com/businesshubi/?igsh=MTJ3ejZneWdmbTM3bQ%3D%3D +" + > + <i className="fab fa-instagram"></i> + </a> + </div> + <div className="copy-right"> + <p> + © 2024, 2024 Business HUB international investment - All + Rights Reserved. + </p> + </div> + </div> + </div> + </div> + </div> + </footer> + ); +}; + +export default Footer; diff --git a/src/components/Footer2/footer2.jsx b/src/components/Footer2/footer2.jsx new file mode 100644 index 0000000..4db9452 --- /dev/null +++ b/src/components/Footer2/footer2.jsx @@ -0,0 +1,110 @@ +import React from "react"; + +const Footer2 = () => { + return ( + <footer className="app-footer" data-overlay-dark="0"> + <div className="container"> + <div className="row"> + <div className="col-lg-4 col-md-6"> + <div className="item-clumn our md-mb50"> + <a href="#0" className="logo-brand mb-50"> + <img src="/img/logo-gr.png" alt="" /> + </a> + <p> + Sed ut perspiciatis undmnis iste natus error sit voluptatem + accusantium dolore udantiuy totam rem aperiam. + </p> + </div> + </div> + <div className="col-lg-3 col-md-6"> + <div className="item-clumn links md-mb50"> + <h5 className="title">Resources</h5> + <ul> + <li> + <span className="icon pe-7s-angle-right"></span> + <a href="#0">Our Products</a> + </li> + <li> + <span className="icon pe-7s-angle-right"></span> + <a href="#0">Blogs & Guides</a> + </li> + <li> + <span className="icon pe-7s-angle-right"></span> + <a href="#0">Premium Support</a> + </li> + <li> + <span className="icon pe-7s-angle-right"></span> + <a href="#0">Need a Career ?</a> + </li> + </ul> + </div> + </div> + <div className="col-lg-2 col-md-6"> + <div className="item-clumn links sm-mb50"> + <h5 className="title">Links</h5> + <ul> + <li> + <span className="icon pe-7s-angle-right"></span> + <a href="#0">Support</a> + </li> + <li> + <span className="icon pe-7s-angle-right"></span> + <a href="#0">Privacy</a> + </li> + <li> + <span className="icon pe-7s-angle-right"></span> + <a href="#0">Setting</a> + </li> + <li> + <span className="icon pe-7s-angle-right"></span> + <a href="0">My Account</a> + </li> + </ul> + </div> + </div> + <div className="col-lg-3 col-md-6"> + <div className="item-clumn links"> + <h5 className="title mb-30">Contact</h5> + <div className="info"> + <span>Email Address</span> + <h6> + <a href="#0">support@gmail.com</a> + </h6> + </div> + <div className="social mt-30"> + <a href="#0"> + <i className="fab fa-facebook-f"></i> + </a> + <a href="#0"> + <i className="fab fa-twitter"></i> + </a> + <a href="#0"> + <i className="fab fa-instagram"></i> + </a> + <a href="#0"> + <i className="fab fa-youtube"></i> + </a> + </div> + </div> + </div> + </div> + </div> + <div className="sub-footer"> + <div className="container"> + <div className="row"> + <div className="col-12"> + <div className="text-center"> + <p>© 2022 Vie. All Rights Reserved</p> + </div> + </div> + </div> + </div> + </div> + + <div className="circle-blur"></div> + <div className="circle-blur two"></div> + </footer> + ); +}; + +export default Footer2; diff --git a/src/components/Freelancre-intro/freelancre-intro.jsx b/src/components/Freelancre-intro/freelancre-intro.jsx new file mode 100644 index 0000000..27b8a7f --- /dev/null +++ b/src/components/Freelancre-intro/freelancre-intro.jsx @@ -0,0 +1,97 @@ +/* eslint-disable @next/next/no-img-element */ +import React from "react"; +import Typewriter from "typewriter-effect"; + +const FreelancreIntro = () => { + return ( + <header className="freelancre valign"> + <div className="container"> + <div className="row"> + <div className="col-lg-4"> + <div className="img"> + <img src="/img/hero.jpg" alt="" /> + </div> + </div> + <div className="col-lg-8 valign"> + <div className="cont"> + <h1 className="cd-headline clip"> + Hello, My name is hisham i love design and i hope to make + awesome designs and also i create a + <span + style={{ fontSize: "35px", lineHeight: "49px" }} + className="cd-words-wrapper" + > + <Typewriter + options={{ + wrapperClassName: "color-font fw-600", + strings: [ + "Mobile Apps", + "Landing Pages", + "Awesome Design", + ], + autoStart: true, + loop: true, + }} + loop={true} + onInit={(typewriter) => { + typewriter; + }} + /> + </span> + </h1> + </div> + </div> + </div> + + <div className="states"> + <div className="container"> + <ul className="flex"> + <li className="flex"> + <div className="numb valign"> + <h3>12</h3> + </div> + <div className="text valign"> + <p> + Years <br /> Of Experience + </p> + </div> + </li> + + <li className="flex"> + <div className="numb valign"> + <h3>165</h3> + </div> + <div className="text valign"> + <p> + Projects Completed <br /> In 19 Countries + </p> + </div> + </li> + + <li className="mail-us"> + <a href="mailto:your@email.com?subject=Subject"> + <div className="flex"> + <div className="text valign"> + <div className="full-width"> + <p>Get In Touch</p> + <h6>Vie_Support@Gmail.Com</h6> + </div> + </div> + <div className="mail-icon"> + <div className="icon-box"> + <span className="icon color-font pe-7s-mail"></span> + </div> + </div> + </div> + </a> + </li> + </ul> + </div> + </div> + </div> + <div className="line bottom left"></div> + </header> + ); +}; + +export default FreelancreIntro; diff --git a/src/components/Full-testimonials/full-testimonials.jsx b/src/components/Full-testimonials/full-testimonials.jsx new file mode 100644 index 0000000..51368f5 --- /dev/null +++ b/src/components/Full-testimonials/full-testimonials.jsx @@ -0,0 +1,199 @@ +/* eslint-disable @next/next/no-img-element */ +import React from "react"; +import Slider from "react-slick"; +import "slick-carousel/slick/slick.css"; +import "slick-carousel/slick/slick-theme.css"; + +class FullTestimonials extends React.Component { + constructor(props) { + super(props); + } + renderArrows = () => { + return ( + <div className="arrows"> + <div className="container"> + <div + onClick={() => this.slider.slickNext()} + className="next cursor-pointer" + > + <span className="pe-7s-angle-right"></span> + </div> + <div + onClick={() => this.slider.slickPrev()} + className="prev cursor-pointer" + > + <span className="pe-7s-angle-left"></span> + </div> + </div> + </div> + ); + }; + render() { + return ( + <section + className={`testimonials ${ + this.props.withIMG + ? "section-padding bg-img" + : this.props.withCOLOR + ? "section-padding back-color" + : this.props.noPadding ? "" + : "section-padding" + } ${this.props.classText ? this.props.classText : ""}`} + style={{ + backgroundImage: `${ + this.props.withIMG ? "url(/img/testim-img.jpg)" : "none" + }`, + }} + > + {this.props.showHead && ( + <div className="container"> + <div className="row justify-content-center"> + <div className="col-lg-8 col-md-10"> + <div className="sec-head text-center"> + <h6 className="wow fadeIn" data-wow-delay=".5s"> + Testimonials + </h6> + <h3 className="wow color-font"> + We love our clients from all over the world. + </h3> + </div> + </div> + </div> + </div> + )} + + <div className="container-fluid position-re"> + <div className="row wow fadeInUp" data-wow-delay=".5s"> + <div className="col-lg-12"> + <Slider + className="slic-item" + {...{ + ref: (c) => (this.slider = c), + dots: false, + infinite: true, + arrows: true, + centerMode: true, + autoplay: true, + rows: 1, + slidesToScroll: 1, + slidesToShow: 3, + responsive: [ + { + breakpoint: 1024, + settings: { + slidesToShow: 1, + centerMode: false, + }, + }, + { + breakpoint: 767, + settings: { + slidesToShow: 1, + centerMode: false, + }, + }, + { + breakpoint: 480, + settings: { + slidesToShow: 1, + centerMode: false, + }, + }, + ], + }} + > + <div className="item"> + <div className="info valign"> + <div className="cont"> + <div className="author"> + <div className="img"> + <img src="/img/clients/1.jpg" alt="" /> + </div> + <h6 className="author-name color-font"> + Alex Regelman + </h6> + <span className="author-details"> + Co-founder, Colabrio + </span> + </div> + </div> + </div> + <p> + I would highly recommend Vie Digital. I worked with the team + on an animation for our ‘Click & Collect’ service. + </p> + </div> + <div className="item"> + <div className="info valign"> + <div className="cont"> + <div className="author"> + <div className="img"> + <img src="/img/clients/1.jpg" alt="" /> + </div> + <h6 className="author-name color-font"> + Alex Regelman + </h6> + <span className="author-details"> + Co-founder, Colabrio + </span> + </div> + </div> + </div> + <p> + I would highly recommend Vie Digital. I worked with the team + on an animation for our ‘Click & Collect’ service. + </p> + </div> + <div className="item"> + <div className="info valign"> + <div className="cont"> + <div className="author"> + <div className="img"> + <img src="/img/clients/1.jpg" alt="" /> + </div> + <h6 className="author-name color-font"> + Alex Regelman + </h6> + <span className="author-details"> + Co-founder, Colabrio + </span> + </div> + </div> + </div> + <p> + I would highly recommend Vie Digital. I worked with the team + on an animation for our ‘Click & Collect’ service. + </p> + </div> + <div className="item"> + <div className="info valign"> + <div className="cont"> + <div className="author"> + <div className="img"> + <img src="/img/clients/1.jpg" alt="" /> + </div> + <h6 className="author-name color-font"> + Alex Regelman + </h6> + <span className="author-details"> + Co-founder, Colabrio + </span> + </div> + </div> + </div> + <p> + I would highly recommend Vie Digital. I worked with the team + on an animation for our ‘Click & Collect’ service. + </p> + </div> + </Slider> + </div> + </div> + {this.renderArrows()} + </div> + </section> + ); + } +} + +export default FullTestimonials; diff --git a/src/components/Intro-with-slider/intro-with-slider.jsx b/src/components/Intro-with-slider/intro-with-slider.jsx new file mode 100644 index 0000000..ec0c7a3 --- /dev/null +++ b/src/components/Intro-with-slider/intro-with-slider.jsx @@ -0,0 +1,142 @@ +import React from "react"; +import Link from "next/link"; +import introData from "../../data/sections/intro.json"; +import { Swiper, SwiperSlide } from "swiper/react"; + +import SwiperCore, { Navigation, Pagination, Parallax } from "swiper"; + +import "swiper/css"; +import "swiper/css/pagination"; +import "swiper/css/navigation"; +import removeSlashFromPagination from "../../common/removeSlashpagination"; +import fadeWhenScroll from "../../common/fadeWhenScroll"; + +SwiperCore.use([Navigation, Pagination, Parallax]); + +const IntroWithSlider = ({ sliderRef }) => { + const [load, setLoad] = React.useState(true); + React.useEffect(() => { + fadeWhenScroll(document.querySelectorAll(".fixed-slider .caption")); + setTimeout(() => { + removeSlashFromPagination(); + setLoad(false); + }, 1000); + }, []); + + const navigationPrevRef = React.useRef(null); + const navigationNextRef = React.useRef(null); + const paginationRef = React.useRef(null); + + return ( + <header + ref={sliderRef} + className="slider slider-prlx fixed-slider text-center" + > + <div className="swiper-container parallax-slider"> + {!load ? ( + <Swiper + speed={1000} + parallax={true} + navigation={{ + prevEl: navigationPrevRef.current, + nextEl: navigationNextRef.current, + }} + pagination={{ + type: "fraction", + clickable: true, + el: paginationRef.current, + }} + onBeforeInit={(swiper) => { + swiper.params.navigation.prevEl = navigationPrevRef.current; + swiper.params.navigation.nextEl = navigationNextRef.current; + swiper.params.pagination.el = paginationRef.current; + }} + onSwiper={(swiper) => { + setTimeout(() => { + for (var i = 0; i < swiper.slides.length; i++) { + swiper.slides[i].childNodes[0].setAttribute( + "data-swiper-parallax", + 0.75 * swiper.width + ); + } + + swiper.params.navigation.prevEl = navigationPrevRef.current; + swiper.params.navigation.nextEl = navigationNextRef.current; + + swiper.params.pagination.el = paginationRef.current; + + swiper.navigation.destroy(); + swiper.navigation.init(); + swiper.navigation.update(); + + swiper.pagination.destroy(); + swiper.pagination.init(); + swiper.pagination.update(); + }); + }} + className="swiper-wrapper" + slidesPerView={1} + > + {introData.map((slide) => ( + <SwiperSlide key={slide.id} className="swiper-slide"> + <div + className="bg-img valign" + style={{ backgroundImage: `url(${slide.image})` }} + data-overlay-dark="6" + > + <div className="container"> + <div className="row justify-content-center"> + <div className="col-lg-8 col-md-10"> + <div className="caption center mt-30"> + <h1 className="color-font">{slide.title}</h1> + {slide?.content && <p>{slide.content}</p>} + <Link href="/about/about-dark"> + <a className="butn bord curve mt-30"> + <span>Look More</span> + </a> + </Link> + </div> + </div> + </div> + </div> + </div> + </SwiperSlide> + ))} + </Swiper> + ) : null} + <div className="setone setwo"> + <div + ref={navigationNextRef} + className="swiper-button-next swiper-nav-ctrl next-ctrl cursor-pointer" + > + <i className="fas fa-chevron-right"></i> + </div> + <div + ref={navigationPrevRef} + className="swiper-button-prev swiper-nav-ctrl prev-ctrl cursor-pointer" + > + <i className="fas fa-chevron-left"></i> + </div> + </div> + <div ref={paginationRef} className="swiper-pagination top botm"></div> + + <div className="social-icon"> + <a href="#0"> + <i className="fab fa-facebook-f"></i> + </a> + <a href="#0"> + <i className="fab fa-twitter"></i> + </a> + <a href="#0"> + <i className="fab fa-behance"></i> + </a> + <a href="#0"> + <i className="fab fa-pinterest-p"></i> + </a> + </div> + </div> + </header> + ); +}; + +export default IntroWithSlider; diff --git a/src/components/Intro2/intro2.jsx b/src/components/Intro2/intro2.jsx new file mode 100644 index 0000000..1d7ed50 --- /dev/null +++ b/src/components/Intro2/intro2.jsx @@ -0,0 +1,41 @@ +/* eslint-disable @next/next/no-img-element */ +import React from 'react' +import Link from 'next/link' + +const Intro2 = ({ sliderRef }) => { + return ( + <header ref={sliderRef} className="slider-st valign position-re"> + <div className="container"> + <div className="row"> + <div className="col-lg-6 valign"> + <div className="cont md-mb50"> + <div className="sub-title mb-5"> + <h6>Digital Consulting Agency</h6> + </div> + <h1 className="mb-10 fw-600">Unique Business Consulting.</h1> + <p> + We help our clients succeed by creating brand identities, + digital experiences, and print materials. + </p> + <Link + href={`/about/about-dark`} + > + <a className="butn bord curve mt-30"> + <span>About Us</span> + </a> + </Link> + </div> + </div> + <div className="col-lg-6"> + <div className="img"> + <img src="/img/slid/001.jpg" alt="" /> + </div> + </div> + </div> + </div> + <div className="line bottom left"></div> + </header> + ); +}; + +export default Intro2 \ No newline at end of file diff --git a/src/components/Intro3/intro3.jsx b/src/components/Intro3/intro3.jsx new file mode 100644 index 0000000..28f06cf --- /dev/null +++ b/src/components/Intro3/intro3.jsx @@ -0,0 +1,62 @@ +/* eslint-disable @next/next/no-img-element */ +import React from "react"; + +const Intro3 = () => { + return ( + <header className="slider-stwo valign position-re"> + <div className="container"> + <div className="row"> + <div className="col-lg-5"> + <div className="img"> + <img src="/img/slid/002.jpg" alt="" /> + </div> + </div> + <div className="col-lg-7 valign"> + <div className="cont"> + <div className="sub-title mb-5"> + <h6>Digital Consulting Agency</h6> + </div> + <h1 className="mb-10 fw-600">Unique Business Consulting.</h1> + <p> + We help our clients succeed by creating brand identities, + <br /> digital experiences, and print materials. + </p> + <ul> + <li> + <div> + <span className="icon pe-7s-arc"> + <span className="bord"></span> + </span> + </div> + <div className="cont"> + <h6>Branding</h6> + <p> + It is a long established fact that a reader will be + distracted. + </p> + </div> + </li> + <li> + <div> + <span className="icon pe-7s-help2"> + <span className="bord"></span> + </span> + </div> + <div className="cont"> + <h6>Marketing</h6> + <p> + It is a long established fact that a reader will be + distracted. + </p> + </div> + </li> + </ul> + </div> + </div> + </div> + </div> + </header> + ); +}; + +export default Intro3; diff --git a/src/components/Intro4/intro4.jsx b/src/components/Intro4/intro4.jsx new file mode 100644 index 0000000..5b8e2a9 --- /dev/null +++ b/src/components/Intro4/intro4.jsx @@ -0,0 +1,34 @@ +import React from "react"; +import particlesConfig from "../../config/particle-config"; +import particlesBlackConfig from "../../config/pr-s-black"; +import Particles from "react-tsparticles"; + +const Intro4 = ({ sliderRef, blackStar }) => { + return ( + <header ref={sliderRef} className="particles circle-bg valign"> + <div className="container"> + <div className="row justify-content-center"> + <div className="col-lg-10"> + <div className="cont text-center"> + <h1> + <span className="color-font">Begin </span> your UAE project with + <span className="color-font">Business Hub</span>. + </h1> + </div> + </div> + </div> + </div> + + <Particles + id="particles-js" + options={blackStar ? particlesBlackConfig : particlesConfig} + /> + + <div className="gradient-circle"></div> + <div className="gradient-circle two"></div> + <div className="line bottom left"></div> + </header> + ); +}; + +export default Intro4; diff --git a/src/components/Intro5/intro5.jsx b/src/components/Intro5/intro5.jsx new file mode 100644 index 0000000..6a446c8 --- /dev/null +++ b/src/components/Intro5/intro5.jsx @@ -0,0 +1,133 @@ +import React from "react"; +import Link from "next/link"; +import intro5Data from "../../data/sections/intro5.json"; +import { Swiper, SwiperSlide } from "swiper/react"; +import SwiperCore, { Navigation, Pagination, Parallax } from "swiper"; +import "swiper/css"; +import "swiper/css/navigation"; +import removeSlashFromPagination from "../../common/removeSlashpagination"; +SwiperCore.use([Navigation, Pagination, Parallax]); + +const Intro5 = () => { + const [load, setLoad] = React.useState(true); + React.useEffect(() => { + removeSlashFromPagination() + setTimeout(() => { + setLoad(false); + }); + }, []); + + const navigationPrevRef = React.useRef(null); + const navigationNextRef = React.useRef(null); + const paginationRef = React.useRef(null); + + return ( + <header id="arch-slider" className="slider arch-slider"> + <div className="swiper-container parallax-slider"> + {!load ? ( + <Swiper + speed={1000} + parallax={true} + navigation={{ + prevEl: navigationPrevRef.current, + nextEl: navigationNextRef.current, + }} + pagination={{ + clickable: true, + el: paginationRef.current, + }} + onBeforeInit={(swiper) => { + swiper.params.navigation.prevEl = navigationPrevRef.current; + swiper.params.navigation.nextEl = navigationNextRef.current; + swiper.params.pagination.el = paginationRef.current; + }} + onSwiper={(swiper) => { + setTimeout(() => { + for (var i = 0; i < swiper.slides.length; i++) { + swiper.slides[i].childNodes[0].setAttribute( + "data-swiper-parallax", + 0.75 * swiper.width + ); + } + + swiper.params.navigation.prevEl = navigationPrevRef.current; + swiper.params.navigation.nextEl = navigationNextRef.current; + + swiper.params.pagination.el = paginationRef.current; + + swiper.navigation.destroy(); + swiper.navigation.init(); + swiper.navigation.update(); + + swiper.pagination.destroy(); + swiper.pagination.init(); + swiper.pagination.update(); + }); + }} + className="swiper-wrapper" + slidesPerView={1} + > + {intro5Data.map((slide, index) => ( + <SwiperSlide key={slide.id} className="swiper-slide"> + <div + className="bg-img valign" + style={{ backgroundImage: `url(${slide.image})` }} + data-overlay-dark="6" + > + <div className="container"> + <div className="row"> + <div className="col-lg-6"> + <div className="caption mt-30"> + <h5>0{index + 1} .</h5> + <h1> + {typeof slide.title === "object" ? ( + <> + {slide.title.first} <br /> {slide.title.second} + </> + ) : ( + slide.title + )} + </h1> + {slide?.content && <p>{slide.content}</p>} + </div> + </div> + <div className="col-lg-4 valign"> + <div className="explore"> + <Link href="/project-details2/project-details2-dark"> + <a > + Explore Project + <i className="ion-chevron-right"></i> + </a> + </Link> + </div> + </div> + </div> + </div> + </div> + </SwiperSlide> + ))} + </Swiper> + ) : null} + <div className="setting"> + <div className="controls"> + <div + ref={navigationNextRef} + className="swiper-button-next swiper-nav-ctrl next-ctrl cursor-pointer" + > + <i className="ion-chevron-right"></i> + </div> + <div + ref={navigationPrevRef} + className="swiper-button-prev swiper-nav-ctrl prev-ctrl cursor-pointer" + > + <i className="ion-chevron-left"></i> + </div> + </div> + <div ref={paginationRef} className="swiper-pagination"></div> + </div> + </div> + </header> + ); +}; + +export default Intro5; diff --git a/src/components/Intro6/intro6.jsx b/src/components/Intro6/intro6.jsx new file mode 100644 index 0000000..b7dec50 --- /dev/null +++ b/src/components/Intro6/intro6.jsx @@ -0,0 +1,57 @@ +import React from "react"; + +const Intro6 = () => { + return ( + <header className="mobile-app valign"> + <div className="container"> + <div className="row"> + <div className="col-lg-6 valign"> + <div className="caption"> + <h1 className="mb-20"> + Let’s Build Amazing Mobile Apps Together + </h1> + <p> + Sit amet consectetur adipiscing elit, sed do eiusmod tempor + idunte ut labore et dolore magna aliqua. Quis ipsum suspendisse + ultrices gravida. Risus commodo viverra maecenas accumsan + </p> + <div className="butons mt-40"> + <a href="#0" className="butn-gr rounded buton"> + <span>Apple Store</span> + <i className="icon"> + <svg + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 384 512" + > + <path d="M318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z" /> + </svg> + </i> + </a> + + <a href="#0" className="butn-bord-dark rounded buton"> + <span>Google Play</span> + <i className="icon"> + <svg + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 512 512" + > + <path d="M325.3 234.3L104.6 13l280.8 161.2-60.1 60.1zM47 0C34 6.8 25.3 19.2 25.3 35.3v441.3c0 16.1 8.7 28.5 21.7 35.3l256.6-256L47 0zm425.2 225.6l-58.9-34.1-65.7 64.5 65.7 64.5 60.1-34.1c18-14.3 18-46.5-1.2-60.8zM104.6 499l280.8-161.2-60.1-60.1L104.6 499z" /> + </svg> + </i> + </a> + </div> + </div> + </div> + + <div className="col-lg-5 offset-lg-1"> + <div className="img"> + <img src="/img/mobile-app/header-img.png" alt="" /> + </div> + </div> + </div> + </div> + </header> + ); +}; + +export default Intro6; diff --git a/src/components/Latest-news/latest-news.jsx b/src/components/Latest-news/latest-news.jsx new file mode 100644 index 0000000..78d4ebe --- /dev/null +++ b/src/components/Latest-news/latest-news.jsx @@ -0,0 +1,101 @@ +/* eslint-disable @next/next/no-img-element */ +import React from "react"; +import Link from "next/link"; + +const LatestNews = () => { + return ( + <section className="blog section-padding" id="blog-arch"> + <div className="container"> + <div className="row justify-content-center"> + <div className="col-lg-8 col-md-10"> + <div className="sec-head text-center"> + <h2 className="wow fadeIn" data-wow-delay=".3s"> + Latest News + </h2> + </div> + </div> + </div> + <div className="row"> + <div className="col-lg-6"> + <div className="item md-mb50 wow fadeInUp" data-wow-delay=".3s"> + <div className="img"> + <img src="/img/arch/blog/1.jpg" alt="" /> + </div> + <div className="cont"> + <div> + <div className="info"> + <Link href="/blog/blog-dark"> + <a className="date"> + <span> + <i>06</i> August + </span> + </a> + </Link> + <span>/</span> + <Link href="/blog/blog-dark"> + <a className="tag"> + <span className="main-color">Architecture</span> + </a> + </Link> + </div> + <h5> + <Link href="/blog-details/blog-details-dark"> + <a> + How to use solid color combine with simple furnitures. + </a> + </Link> + </h5> + <div className="btn-more"> + <Link href="/blog-details/blog-details-dark"> + <a className="simple-btn main-color">Read More</a> + </Link> + </div> + </div> + </div> + </div> + </div> + <div className="col-lg-6"> + <div className="item md-mb50 wow fadeInUp" data-wow-delay=".5s"> + <div className="img"> + <img src="/img/arch/blog/2.jpg" alt="" /> + </div> + <div className="cont"> + <div> + <div className="info"> + <Link href="/blog/blog-dark"> + <a className="date"> + <span> + <i>06</i> August + </span> + </a> + </Link> + <span>/</span> + <Link href="/blog/blog-dark"> + <a className="tag"> + <span className="main-color">Architecture</span> + </a> + </Link> + </div> + <h5> + <Link href="/blog-details/blog-details-dark"> + <a> + How to use solid color combine with simple furnitures. + </a> + </Link> + </h5> + <div className="btn-more"> + <Link href="/blog-details/blog-details-dark"> + <a className="simple-btn main-color">Read More</a> + </Link> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default LatestNews; diff --git a/src/components/Loading-Screen/index.jsx b/src/components/Loading-Screen/index.jsx new file mode 100644 index 0000000..cb8fdb1 --- /dev/null +++ b/src/components/Loading-Screen/index.jsx @@ -0,0 +1,36 @@ +import React from "react"; +import loadingPace from "../../common/loadingPace"; +import appData from "../../data/app.json"; + +const LoadingScreen = () => { + + React.useEffect(() => { + let bodyEl = document.querySelector("body"); + + if (appData.showLoading) { + loadingPace(); + if (bodyEl.classList.contains("hideX")) bodyEl.classList.remove("hideX"); + } else { + bodyEl.classList.add("hideX"); + } + }, []); + + return ( + <> + <div className={`${appData.showLoading === true ? "showX" : "hideX"}`}> + <div className="loading"> + <span>L</span> + <span>o</span> + <span>a</span> + <span>d</span> + <span>i</span> + <span>n</span> + <span>g</span> + </div> + <div id="preloader"></div> + </div> + </> + ); +}; + +export default LoadingScreen; diff --git a/src/components/Minimal-Area/minimal-area.jsx b/src/components/Minimal-Area/minimal-area.jsx new file mode 100644 index 0000000..f956b68 --- /dev/null +++ b/src/components/Minimal-Area/minimal-area.jsx @@ -0,0 +1,76 @@ +/* eslint-disable @next/next/no-img-element */ +import React from "react"; +import cardMouseEffect from "../../common/cardMouseEffect"; +import { thumparallaxDown } from "../../common/thumparallax"; + +const MinimalArea = () => { + React.useEffect(() => { + cardMouseEffect(document.querySelectorAll(".feat .items")); + setTimeout(() => { + thumparallaxDown(); + }, 1000); + }, []); + return ( + <section className="min-area sub-bg"> + <div className="container"> + <div className="row"> + <div className="col-lg-6"> + <div className="img"> + <img + className="thumparallax-down" + src="/img/min-area.jpg" + alt="" + /> + </div> + </div> + <div className="col-lg-6 valign"> + <div className="content pt-0"> + <h4 className="wow color-font">About us.</h4> + <p className="wow txt" data-splitting> + Our service is ranked among the finest in the UAE. We cultivate + smart ideas for start-ups and seasoned players. + </p> + <ul className="feat"> + <li className="wow fadeInUp" data-wow-delay=".2s"> + <h6> + <span>1</span> Our Message + </h6> + <p> + To be the gateway to safe investment in the UAE and to work + to create investment opportunities for investors from + outside and within the country by connecting them with the + appropriate partner, providing information on all aspects of + doing business, and supporting them with sources of local + talent that contribute to raising the local value ratio of + foreign investors, which has become one of the Main + requirements, identifying cost-effective solutions, building + large brands within the UAE market, presenting creative + ideas to differentiate in the local market, and supporting + it with the best marketing strategies and plans that help it + be the best among its competitors. + </p> + </li> + <li className="wow fadeInUp" data-wow-delay=".4s"> + <h6> + <span>2</span> Our vision + </h6> + <p> + To be the most trusted partner for all investors in the + United Arab Emirates and to become a leader in providing + innovative and sustainable solutions that meet the needs of + our customers and business partners. We aim to build + long-term relationships with our customers based on trust + and mutual cooperation, and we seek to achieve joint success + by achieving their goals and aspirations. + </p> + </li> + </ul> + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default MinimalArea; diff --git a/src/components/Minimal-Area2/minimal-area2.jsx b/src/components/Minimal-Area2/minimal-area2.jsx new file mode 100644 index 0000000..c36f9cb --- /dev/null +++ b/src/components/Minimal-Area2/minimal-area2.jsx @@ -0,0 +1,68 @@ +/* eslint-disable @next/next/no-img-element */ +import React from "react"; +import Split from "../Split"; +import Link from "next/link"; +import { thumparallaxDown } from "../../common/thumparallax"; + +const MinimalArea2 = () => { + React.useEffect(() => { + setTimeout(() => { + thumparallaxDown(); + }, 1000); + }, []); + return ( + <section className="min-area"> + <div className="container"> + <div className="row"> + <div className="col-lg-6"> + <div className="img"> + <img + className="thumparallax-down" + src="/img/min-area.jpg" + alt="" + /> + </div> + </div> + <div className="col-lg-6 valign"> + <div className="content"> + <h4 className="color-font">Dream. Innovate. Implement.</h4> + <Split> + <p className="wow txt words chars splitting" data-splitting> + Boost your business affordably with our virtual company + service. Say goodbye to unnecessary costs and hello to + streamlined operations. Our expert team handles everything + from accounting to project management, helping you achieve + more while spending less. Let's grow your business + together! + </p> + </Split> + <ul> + <li className="wow fadeInUp" data-wow-delay=".4s"> + Reducing operational costs + </li> + <li className="wow fadeInUp" data-wow-delay=".6s"> + Providing flexibility + </li> + <li className="wow fadeInUp" data-wow-delay=".8s"> + Administrative efficiency + </li> + </ul> + <Link href={`/about/about-light`}> + <a + className="butn bord curve mt-40 wow fadeInUp" + data-wow-delay=".8s" + > + <span>Discover</span> + </a> + </Link> + + <br /> + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default MinimalArea2; diff --git a/src/components/Navbar-arch/navbar-arch.jsx b/src/components/Navbar-arch/navbar-arch.jsx new file mode 100644 index 0000000..2294418 --- /dev/null +++ b/src/components/Navbar-arch/navbar-arch.jsx @@ -0,0 +1,181 @@ +/* eslint-disable @next/next/no-html-link-for-pages */ +/* eslint-disable @next/next/no-img-element */ +import React from "react"; +import { Link } from "react-scroll"; +import appData from "../../data/app.json"; +import { handleDropdown, handleMobileDropdown } from "../../common/navbar"; + +const NavbarArch = ({ navbarRef, theme }) => { + + return ( + <nav className="navbar navbar-expand-lg" ref={navbarRef}> + <div className="container"> + <a className="logo" href="/"> + {theme ? ( + theme === "themeL" ? ( + <img src={appData.darkLogo} alt="logo" /> + ) : ( + <img src={appData.lightLogo} alt="logo" /> + ) + ) : ( + <img src={appData.lightLogo} alt="logo" /> + )} + </a> + + <button + className="navbar-toggler" + type="button" + data-toggle="collapse" + onClick={handleMobileDropdown} + data-target="#navbarSupportedContent" + aria-controls="navbarSupportedContent" + aria-expanded="false" + aria-label="Toggle navigation" + > + <span className="icon-bar"> + <i className="fas fa-bars"></i> + </span> + </button> + + <div className="collapse navbar-collapse" id="navbarSupportedContent"> + <ul className="navbar-nav ml-auto"> + <li className="nav-item dropdown" onClick={handleDropdown}> + <span + className="nav-link dropdown-toggle" + data-toggle="dropdown" + data-scroll-nav="0" + > + Home + </span> + <div className="dropdown-menu"> + <a + className="dropdown-item" + href={`/homepage/home1-dark`} + > + Main Home + </a> + <a + className="dropdown-item" + href={`/homepage/home2-dark`} + > + Creative Agency + </a> + <a + className="dropdown-item" + href={`/homepage/home5-dark`} + > + Digital Agency + </a> + <a + className="dropdown-item" + href={`/homepage/home4-dark`} + > + Business One Page + </a> + <a + className="dropdown-item" + href={`/homepage/home3-dark`} + > + Corporate Business + </a> + <a + className="dropdown-item" + href={`/homepage/home6-dark`} + > + Modern Agency + </a> + <a + className="dropdown-item" + href={`/homepage/home7-dark`} + > + Freelancer + </a> + <a + className="dropdown-item" + href={`/homepage/home8-dark`} + > + Architecture + </a> + </div> + </li> + + <li className="nav-item"> + <Link + className="nav-link" + to="about" + spy={true} + smooth={true} + offset={50} + duration={500} + > + About + </Link> + </li> + <li className="nav-item"> + <Link + className="nav-link" + to="po-arch" + spy={true} + smooth={true} + offset={50} + duration={500} + > + Works + </Link> + </li> + <li className="nav-item"> + <Link + className="nav-link" + to="team-arch" + spy={true} + smooth={true} + offset={50} + duration={500} + > + Team + </Link> + </li> + <li className="nav-item"> + <Link + className="nav-link" + to="testimonials-arch" + spy={true} + smooth={true} + offset={50} + duration={500} + > + Testimonials + </Link> + </li> + <li className="nav-item"> + <Link + className="nav-link" + to="blog-arch" + spy={true} + smooth={true} + offset={50} + duration={500} + > + Blog + </Link> + </li> + <li className="nav-item"> + <Link + className="nav-link" + to="contact-arch" + spy={true} + smooth={true} + offset={50} + duration={500} + > + Contact + </Link> + </li> + </ul> + </div> + </div> + </nav> + ); +}; + +export default NavbarArch; diff --git a/src/components/Navbar-full-menu/navbar.full-menu.jsx b/src/components/Navbar-full-menu/navbar.full-menu.jsx new file mode 100644 index 0000000..416d94b --- /dev/null +++ b/src/components/Navbar-full-menu/navbar.full-menu.jsx @@ -0,0 +1,319 @@ +/* eslint-disable @next/next/no-img-element */ +import React from "react"; +import Link from "next/link"; +import appData from "../../data/app.json"; +import initFullNavbarMenu from "../../common/initFullNavbarMenu"; + +const NavbarFullMenu = ({ theme }) => { + React.useEffect(() => { + initFullNavbarMenu() + }, []) + return ( + <> + <div + id="navi" + className={`topnav ${theme ? (theme === "light" ? "light" : "") : ""}`} + > + <div className="container-fluid"> + <div className="logo"> + <a href="#0"> + {theme ? ( + theme === "light" ? ( + <img src={appData.darkLogo} alt="logo" /> + ) : ( + <img src={appData.lightLogo} alt="logo" /> + ) + ) : ( + <img src={appData.lightLogo} alt="logo" /> + )} + </a> + </div> + <div className="menu-icon"> + <span className="icon"> + <i></i> + <i></i> + </span> + <span className="text" data-splitting> + <span className="menu-text word">Menu</span> + </span> + </div> + </div> + </div> + + <div className="hamenu"> + <div className="container"> + <div className="row"> + <div className="col-lg-9 col-md-8"> + <div className="menu-links"> + <ul className="main-menu"> + <li> + <div className="o-hidden"> + <span className="link dmenu"> + <span className="nm">01.</span>Home + <i className="fas fa-angle-right"></i> + </span> + </div> + <div className="sub-menu"> + <ul> + <li> + <div className="o-hidden"> + <span className="sub-link back"> + <i className="pe-7s-angle-left"></i> Go Back + </span> + </div> + </li> + <li> + <div className="o-hidden"> + <Link href={`/homepage/home1-dark`}> + <a className="sub-link"> + <span className="nm">01.</span>Main Home + </a> + </Link> + </div> + </li> + <li> + <div className="o-hidden"> + <Link href={`/homepage/home2-dark`}> + <a className="sub-link"> + <span className="nm">02.</span>Creative Agency + </a> + </Link> + </div> + </li> + <li> + <div className="o-hidden"> + <Link href={`/homepage/home5-dark`}> + <a className="sub-link"> + <span className="nm">03.</span>Digital Agency + </a> + </Link> + </div> + </li> + <li> + <div className="o-hidden"> + <Link href={`/homepage/home4-dark`}> + <a className="sub-link"> + <span className="nm">04.</span>Business One Page + </a> + </Link> + </div> + </li> + <li> + <div className="o-hidden"> + <Link href={`/homepage/home3-dark`}> + <a className="sub-link"> + <span className="nm">05.</span>Corporate + Business + </a> + </Link> + </div> + </li> + + <li> + <div className="o-hidden"> + <Link href={`/homepage/home6-dark`}> + <a className="sub-link"> + <span className="nm">06.</span>Modern Agency + </a> + </Link> + </div> + </li> + <li> + <div className="o-hidden"> + <Link href={`/homepage/home7-dark`}> + <a className="sub-link"> + <span className="nm">07.</span>Freelancer + </a> + </Link> + </div> + </li> + <li> + <div className="o-hidden"> + <Link href={`/homepage/home8-dark`}> + <a className="sub-link"> + <span className="nm">08.</span>Architecture + </a> + </Link> + </div> + </li> + </ul> + </div> + </li> + <li> + <div className="o-hidden"> + <Link href={`/about/about-dark`}> + <a className="link"> + <span className="nm">02.</span>About Us + </a> + </Link> + </div> + </li> + <li> + <div className="o-hidden"> + <span className="link dmenu"> + <span className="nm">03.</span>Works + <i className="fas fa-angle-right"></i> + </span> + </div> + <div className="sub-menu"> + <ul> + <li> + <div className="o-hidden"> + <span className="sub-link back"> + <i className="pe-7s-angle-left"></i> Go Back + </span> + </div> + </li> + <li> + <div className="o-hidden"> + <Link href={`/showcase/showcase-dark`}> + <a className="sub-link"> + <span className="nm">01.</span>ShowCase Parallax + </a> + </Link> + </div> + </li> + <li> + <div className="o-hidden"> + <Link href={`/showcase4/showcase4-dark`}> + <a className="sub-link"> + <span className="nm">02.</span>ShowCase Carousel + </a> + </Link> + </div> + </li> + <li> + <div className="o-hidden"> + <Link href={`/showcase3/showcase3-dark`}> + <a className="sub-link"> + <span className="nm">03.</span>ShowCase Circle + </a> + </Link> + </div> + </li> + <li> + <div className="o-hidden"> + <Link href={`/works/works-dark`}> + <a className="sub-link"> + <span className="nm">04.</span>Portfolio Masonry + </a> + </Link> + </div> + </li> + <li> + <div className="o-hidden"> + <Link href={`/works2/works2-dark`}> + <a className="sub-link"> + <span className="nm">05.</span>Portfolio + Filtering + </a> + </Link> + </div> + </li> + <li> + <div className="o-hidden"> + <Link href={`/works3/works3-dark`}> + <a className="sub-link"> + <span className="nm">06.</span>Portfolio Gallery + </a> + </Link> + </div> + </li> + </ul> + </div> + </li> + <li> + <div className="o-hidden"> + <span className="link dmenu"> + <span className="nm">04.</span>Blogs + <i className="fas fa-angle-right"></i> + </span> + </div> + <div className="sub-menu"> + <ul> + <li> + <div className="o-hidden"> + <span className="sub-link back"> + <i className="pe-7s-angle-left"></i> Go Back + </span> + </div> + </li> + <li> + <div className="o-hidden"> + <Link href={`/blog/blog-dark`}> + <a className="sub-link"> + <span className="nm">01.</span>Blog Standerd + </a> + </Link> + </div> + </li> + <li> + <div className="o-hidden"> + <Link href={`/blog-list/blog-list-dark`}> + <a className="sub-link"> + <span className="nm">02.</span>Blog List + </a> + </Link> + </div> + </li> + <li> + <div className="o-hidden"> + <Link href={`/blog-grid/blog-grid-dark`}> + <a className="sub-link"> + <span className="nm">03.</span>Blog Grid + </a> + </Link> + </div> + </li> + <li> + <div className="o-hidden"> + <Link href={`/blog-details/blog-details-dark`}> + <a className="sub-link"> + <span className="nm">04.</span>Blog Details + </a> + </Link> + </div> + </li> + </ul> + </div> + </li> + <li> + <div className="o-hidden"> + <Link href={`/contact/contact-dark`}> + <a className="link"> + <span className="nm">05.</span>Contact + </a> + </Link> + </div> + </li> + </ul> + </div> + </div> + <div className="col-lg-3 col-md-4"> + <div className="cont-info"> + <div className="item"> + <h6>Phone :</h6> + <p>+03 762-2367-723</p> + </div> + <div className="item"> + <h6>Address :</h6> + <p> + 541 Melville Ave, Palo Alto, CA 94301, ask@ohio.colabr.io + </p> + </div> + <div className="item"> + <h6>Email :</h6> + <p> + <a href="#0">Vie_website@gmail.com</a> + </p> + </div> + </div> + </div> + </div> + </div> + </div> + </> + ); +}; + +export default NavbarFullMenu; diff --git a/src/components/Navbar-mobile-app/navbar-mobile-app.jsx b/src/components/Navbar-mobile-app/navbar-mobile-app.jsx new file mode 100644 index 0000000..2e1ca67 --- /dev/null +++ b/src/components/Navbar-mobile-app/navbar-mobile-app.jsx @@ -0,0 +1,123 @@ +/* eslint-disable @next/next/no-img-element */ +import React from "react"; +import Link from "next/link"; +import appData from "../../data/app.json"; +import { handleDropdown, handleMobileDropdown } from "../../common/navbar"; + +const NavbarMobileApp = ({ lr, nr, theme }) => { + return ( + <nav + ref={nr} + className={`navbar navbar-expand-lg change ${ + theme === "themeL" ? "light" : "" + }`} + > + <div className="container"> + <Link href="/"> + <a className="logo"> + {theme ? ( + theme === "themeL" ? ( + <img ref={lr} src={appData.darkLogo} alt="logo" /> + ) : ( + <img ref={lr} src={appData.lightLogo} alt="logo" /> + ) + ) : ( + <img ref={lr} src={appData.lightLogo} alt="logo" /> + )} + </a> + </Link> + + <button + className="navbar-toggler" + type="button" + data-toggle="collapse" + data-target="#navbarSupportedContent" + aria-controls="navbarSupportedContent" + onClick={handleMobileDropdown} + aria-expanded="false" + aria-label="Toggle navigation" + > + <span className="icon-bar"> + <i className="fas fa-bars"></i> + </span> + </button> + + <div className="collapse navbar-collapse" id="navbarSupportedContent"> + <ul className="navbar-nav ml-auto"> + <li className="nav-item dropdown" onClick={handleDropdown}> + <span + className="nav-link dropdown-toggle" + data-toggle="dropdown" + href="#" + role="button" + aria-haspopup="true" + aria-expanded="false" + > + Home + </span> + <div className="dropdown-menu"> + <Link href="/homepage/home1-dark"> + <a className="dropdown-item">Main Home</a> + </Link> + <Link href="/homepage/home2-dark"> + <a className="dropdown-item">Creative Agency</a> + </Link> + <Link href="/homepage/home5-dark"> + <a className="dropdown-item">Digital Agency</a> + </Link> + <Link href="/homepage/home4-dark"> + <a className="dropdown-item">Business One Page</a> + </Link> + <Link href="/homepage/home3-dark"> + <a className="dropdown-item">Corporate Business</a> + </Link> + <Link href="/homepage/home6-dark"> + <a className="dropdown-item">Modern Agency</a> + </Link> + <Link href="/homepage/home7-dark"> + <a className="dropdown-item">Freelancer</a> + </Link> + <Link href="/homepage/home8-dark"> + <a className="dropdown-item">Architecture</a> + </Link> + </div> + </li> + <li className="nav-item"> + <Link href="/mobile-app/services-dark"> + <a className="nav-link">Services</a> + </Link> + </li> + <li className="nav-item"> + <Link href="/mobile-app/pricing-plan-dark"> + <a className="nav-link">Pricing</a> + </Link> + </li> + <li className="nav-item"> + <Link href="/mobile-app/portfolio-dark"> + <a className="nav-link" > + Portfolio + </a> + </Link> + </li> + <li className="nav-item"> + <Link href="/mobile-app/shop-dark"> + <a className="nav-link"> + Products + </a> + </Link> + </li> + <li className="nav-item"> + <Link href="/contact/contact-dark"> + <a className="nav-link" > + Contact + </a> + </Link> + </li> + </ul> + </div> + </div> + </nav> + ); +}; + +export default NavbarMobileApp; diff --git a/src/components/Navbar/navbar.jsx b/src/components/Navbar/navbar.jsx new file mode 100644 index 0000000..72ebaa2 --- /dev/null +++ b/src/components/Navbar/navbar.jsx @@ -0,0 +1,79 @@ +/* eslint-disable @next/next/no-img-element */ +import React from "react"; +import Link from "next/link"; +import appData from "../../data/app.json"; +import { handleDropdown, handleMobileDropdown } from "../../common/navbar"; + +const Navbar = ({ lr, nr, theme }) => { + return ( + <nav + ref={nr} + className={`navbar navbar-expand-lg change ${ + theme === "themeL" ? "light" : "" + }`} + > + <div className="container"> + <Link href="/"> + <a className="logo"> + {theme ? ( + theme === "themeL" ? ( + <img ref={lr} src={appData.darkLogo} alt="logo" /> + ) : ( + <img ref={lr} src={appData.lightLogo} alt="logo" /> + ) + ) : ( + <img ref={lr} src={appData.lightLogo} alt="logo" /> + )} + </a> + </Link> + + <button + className="navbar-toggler" + type="button" + onClick={handleMobileDropdown} + data-toggle="collapse" + data-target="#navbarSupportedContent" + aria-controls="navbarSupportedContent" + aria-expanded="false" + aria-label="Toggle navigation" + > + <span className="icon-bar"> + <i className="fas fa-bars"></i> + </span> + </button> + + <div className="collapse navbar-collapse" id="navbarSupportedContent"> + <ul className="navbar-nav ml-auto"> + <li className="nav-item "> + <Link href="/"> + <span className="nav-link ">Home</span> + </Link> + </li> + <li className="nav-item"> + <Link href={`/about`}> + <a className="nav-link">Who we are</a> + </Link> + </li> + <li className="nav-item "> + <Link href={`/services`}> + <span className="nav-link">Our Services</span> + </Link> + </li> + <li className="nav-item "> + <Link href={`/blog/blog-light`}> + <span className="nav-link ">Blog</span> + </Link> + </li> + <li className="nav-item"> + <Link href={`/contact/contact-light`}> + <a className="nav-link">Contact</a> + </Link> + </li> + </ul> + </div> + </div> + </nav> + ); +}; + +export default Navbar; diff --git a/src/components/Next-project/next-project.jsx b/src/components/Next-project/next-project.jsx new file mode 100644 index 0000000..86c132e --- /dev/null +++ b/src/components/Next-project/next-project.jsx @@ -0,0 +1,44 @@ +import React from "react"; + +const NextProject = () => { + return ( + <section className="next-prog section-padding"> + <div className="container"> + <div className="row"> + <div className="col-12"> + <div className="box"> + <div + className="bg-img valign" + style={{ + backgroundImage: "url(/img/portfolio/project2/6.jpg)", + }} + data-overlay-dark="4" + > + <div className="caption ontop valign"> + <div className="o-hidden full-width"> + <h1> + <a href=""> + <div className="stroke">Natural plus modern.</div> + </a> + </h1> + </div> + </div> + <div className="copy-cap valign"> + <div className="cap full-width"> + <h1> + <a href=""> + <span>Natural plus modern.</span> + </a> + </h1> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default NextProject; diff --git a/src/components/Numbers/numbers.jsx b/src/components/Numbers/numbers.jsx new file mode 100644 index 0000000..45d745d --- /dev/null +++ b/src/components/Numbers/numbers.jsx @@ -0,0 +1,56 @@ +import React from 'react' +import funFactDate from '../../data/sections/fun-fact.json' +import Split from "../Split"; +import CountUp from 'react-countup'; +import VisibilitySensor from "react-visibility-sensor"; + + +const Numbers = () => { + React.useEffect(() => { + console.clear(); + }) + return ( + <section className="number-sec section-padding"> + <div className="container"> + <div className="row justify-content-center"> + <div className="col-lg-8 col-md-10"> + <div className="sec-head text-center"> + <h6 className="wow fadeIn" data-wow-delay=".5s"> + FUN FACTS + </h6> + <h3 className="wow color-font"> + Pleasure in the job puts perfection in the work. + </h3> + </div> + </div> + </div> + <div className="row"> + {funFactDate.map((item) => ( + <div key={item.id} className="col-md-4"> + <div className="item no-bord sm-mb50"> + <span className={`icon ${item.icon}`}></span> + <h3 className=""> +   + <CountUp redraw={true} end={item.value} duration="3"> + {({ countUpRef, start }) => ( + <VisibilitySensor onChange={start} delayedCall> + <span className="count" ref={countUpRef} /> + </VisibilitySensor> + )} + </CountUp> + </h3> + <Split> + <p className="wow txt words chars splitting" data-splitting> + {item.content} + </p> + </Split> + </div> + </div> + ))} + </div> + </div> + </section> + ); +} + +export default Numbers \ No newline at end of file diff --git a/src/components/Numbers2/numbers2.jsx b/src/components/Numbers2/numbers2.jsx new file mode 100644 index 0000000..3387398 --- /dev/null +++ b/src/components/Numbers2/numbers2.jsx @@ -0,0 +1,103 @@ +import React from "react"; +import Split from "../Split"; +import CountUp from "react-countup"; +import VisibilitySensor from "react-visibility-sensor"; + +const Numbers2 = () => { + React.useEffect(() => { + console.clear(); + }); + return ( + <section className="block-sec section-padding"> + <div className="container"> + <div className="number-sec"> + <div className="row"> + <div className="col-lg-3 col-md-6"> + <div className="item md-mb50"> + <span className="icon pe-7s-smile"></span> + <h3 className="custom-font"> +   + <CountUp redraw={true} end={2400} duration="3"> + {({ countUpRef, start }) => ( + <VisibilitySensor onChange={start} delayedCall> + <span className="count" ref={countUpRef} /> + </VisibilitySensor> + )} + </CountUp> + </h3> + <Split> + <p className="wow words chars splitting txt" data-splitting> + Happy Clients + </p> + </Split> + </div> + </div> + <div className="col-lg-3 col-md-6"> + <div className="item md-mb50"> + <span className="icon pe-7s-portfolio"></span> + <h3 className="custom-font"> +   + <CountUp redraw={true} end={133} duration="3"> + {({ countUpRef, start }) => ( + <VisibilitySensor onChange={start} delayedCall> + <span className="count" ref={countUpRef} /> + </VisibilitySensor> + )} + </CountUp> + </h3> + <Split> + <p className="wow txt words chars splitting " data-splitting> + Compleate Projects + </p> + </Split> + </div> + </div> + <div className="col-lg-3 col-md-6"> + <div className="item sm-mb50"> + <span className="icon pe-7s-cloud-download"></span> + <h3 className="custom-font"> +   + <CountUp redraw={true} end={254} duration="3"> + {({ countUpRef, start }) => ( + <VisibilitySensor onChange={start} delayedCall> + <span className="count" ref={countUpRef} /> + </VisibilitySensor> + )} + </CountUp> + k + </h3> + <Split> + <p className="wow txt words chars splitting" data-splitting> + Files Downloaded + </p> + </Split> + </div> + </div> + <div className="col-lg-3 col-md-6"> + <div className="item"> + <span className="icon pe-7s-medal"></span> + <h3 className="custom-font"> +   + <CountUp redraw={true} end={46} duration="3"> + {({ countUpRef, start }) => ( + <VisibilitySensor onChange={start} delayedCall> + <span className="count" ref={countUpRef} /> + </VisibilitySensor> + )} + </CountUp> + </h3> + <Split> + <p className="wow txt words chars splitting" data-splitting> + Award Win + </p> + </Split> + </div> + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default Numbers2; diff --git a/src/components/Page-header/page-header.jsx b/src/components/Page-header/page-header.jsx new file mode 100644 index 0000000..d594a17 --- /dev/null +++ b/src/components/Page-header/page-header.jsx @@ -0,0 +1,20 @@ +import React from 'react' + +const PageHeader = ({title, paragraph, className}) => { + return ( + <section className={`page-header ${className && className}`}> + <div className="container"> + <div className="row justify-content-center"> + <div className="col-lg-7 col-md-9"> + <div className="cont text-center"> + <h1 className="mb-10 color-font">{title}</h1> + <p>{paragraph}</p> + </div> + </div> + </div> + </div> + </section> + ); +} + +export default PageHeader; \ No newline at end of file diff --git a/src/components/Page-header2/page-header2.jsx b/src/components/Page-header2/page-header2.jsx new file mode 100644 index 0000000..18b4562 --- /dev/null +++ b/src/components/Page-header2/page-header2.jsx @@ -0,0 +1,38 @@ +import React from "react"; +import Link from "next/link"; + +const PageHeader2 = ({ title, links }) => { + return ( + <header + className="page-app-header valign bg-img" + data-overlay-dark="8" + style={{ backgroundImage: "url(/img/mobile-app/p1.jpg)" }} + > + <div className="container"> + <div className="row"> + <div className="col-12"> + <div className="text-center"> + <h1>{title}</h1> + <div className="links"> + {links.map((item, index) => ( + <React.Fragment key={item.id}> + <Link href={item.url} > + {item.name} + </Link> + {index + 1 != links.length ? ( + <span className="icon pe-7s-angle-right"></span> + ) : ( + "" + )} + </React.Fragment> + ))} + </div> + </div> + </div> + </div> + </div> + </header> + ); +}; + +export default PageHeader2; diff --git a/src/components/Pages-header/index.jsx b/src/components/Pages-header/index.jsx new file mode 100644 index 0000000..e270311 --- /dev/null +++ b/src/components/Pages-header/index.jsx @@ -0,0 +1,34 @@ +/* eslint-disable @next/next/no-img-element */ +import React from 'react' + +const PagesHeader = () => { + return ( + <header className="pages-header circle-bg valign"> + <div className="container"> + <div className="row justify-content-center"> + <div className="col-lg-10"> + <div className="cont mt-100 mb-50 text-center"> + <h1 className="color-font fw-700"> + Our dedicated team of creatives is bursting with talent, + experience and passion for what we do. + </h1> + </div> + </div> + <div className="col-lg-10"> + <div className="img"> + <img src="/img/slid/about.jpg" alt="" /> + </div> + </div> + </div> + </div> + <div className="half sub-bg"> + <div className="circle-color"> + <div className="gradient-circle"></div> + <div className="gradient-circle two"></div> + </div> + </div> + </header> + ); +}; + +export default PagesHeader; \ No newline at end of file diff --git a/src/components/Portfolio/portfolio.jsx b/src/components/Portfolio/portfolio.jsx new file mode 100644 index 0000000..84f2250 --- /dev/null +++ b/src/components/Portfolio/portfolio.jsx @@ -0,0 +1,212 @@ +/* eslint-disable @next/next/no-img-element */ +import React from "react"; +import Link from "next/link"; +import initIsotope from "../../common/initIsotope"; + +const Portfolio = ({ grid, filterPosition }) => { + React.useEffect(() => { + setTimeout(() => { + initIsotope(); + }, 1000); + }, []); + return ( + <section className="portfolio section-padding pb-70"> + <div className="container"> + <div className="row justify-content-center"> + <div className="col-lg-8 col-md-10"> + <div className="sec-head text-center"> + <h6 className="wow fadeIn" data-wow-delay=".5s"> + Portfolio + </h6> + <h3 className="wow color-font"> + Our Recent Web Design & <br /> Some Past Projects. + </h3> + </div> + </div> + </div> + </div> + <div className={`${grid === 3 ? "container-fluid" : "container"}`}> + <div className="row"> + <div + className={`filtering ${ + filterPosition === "center" + ? "text-center" + : filterPosition === "left" + ? "text-left" + : "text-right" + } col-12`} + > + <div className="filter"> + <span data-filter="*" className="active"> + All + </span> + <span data-filter=".brand">Branding</span> + <span data-filter=".web">Mobile App</span> + <span data-filter=".graphic">Creative</span> + </div> + </div> + + <div className="gallery full-width"> + <div + className={`${ + grid === 3 + ? "col-lg-4 col-md-6" + : grid === 2 + ? "col-md-6 lg-mr" + : "col-12" + } items graphic wow fadeInUp`} + data-wow-delay=".4s" + > + <div className="item-img"> + <Link href={`/project-details2/project-details2-dark`}> + <a className="imago wow"> + <img src="/img/portfolio/portfolio/1/1.jpg" alt="image" /> + <div className="item-img-overlay"></div> + </a> + </Link> + </div> + <div className="cont"> + <h6>Creativity Demand</h6> + <span> + <Link href="/works/works-dark">Design</Link>, <Link href="/works/works-dark">WordPress</Link> + </span> + </div> + </div> + + <div + className={`${ + grid === 3 + ? "col-lg-4 col-md-6" + : grid === 2 + ? "col-md-6" + : "col-12" + } items web wow fadeInUp`} + data-wow-delay=".4s" + > + <div className="item-img"> + <Link href={`/project-details2/project-details2-dark`}> + <a className="imago wow"> + <img src="/img/portfolio/portfolio/1/2.jpg" alt="image" /> + <div className="item-img-overlay"></div> + </a> + </Link> + </div> + <div className="cont"> + <h6>Through The Breaking</h6> + <span> + <a href="#0">Design</a>, <a href="#0">WordPress</a> + </span> + </div> + </div> + + <div + className={`${ + grid === 3 + ? "col-lg-4 col-md-6" + : grid === 2 + ? "col-md-6" + : "col-12" + } items brand wow fadeInUp`} + data-wow-delay=".4s" + > + <div className="item-img"> + <Link href={`/project-details2/project-details2-dark`}> + <a className="imago wow"> + <img src="/img/portfolio/portfolio/1/3.jpg" alt="image" /> + <div className="item-img-overlay"></div> + </a> + </Link> + </div> + <div className="cont"> + <h6>Create With Creatives</h6> + <span> + <a href="#0">Design</a>, <a href="#0">WordPress</a> + </span> + </div> + </div> + + <div + className={`${ + grid === 3 + ? "col-lg-4 col-md-6" + : grid === 2 + ? "col-md-6" + : "col-12" + } items graphic wow fadeInUp`} + data-wow-delay=".4s" + > + <div className="item-img"> + <Link href={`/project-details2/project-details2-dark`}> + <a className="imago wow"> + <img src="/img/portfolio/portfolio/1/4.jpg" alt="image" /> + <div className="item-img-overlay"></div> + </a> + </Link> + </div> + <div className="cont"> + <h6>Energies of Love</h6> + <span> + <a href="#0">Design</a>, <a href="#0">WordPress</a> + </span> + </div> + </div> + + <div + className={`${ + grid === 3 + ? "col-lg-4 col-md-6" + : grid === 2 + ? "col-md-6" + : "col-12" + } items web wow fadeInUp`} + data-wow-delay=".4s" + > + <div className="item-img"> + <Link href={`/project-details2/project-details2-dark`}> + <a className="imago wow"> + <img src="/img/portfolio/portfolio/1/5.jpg" alt="image" /> + <div className="item-img-overlay"></div> + </a> + </Link> + </div> + <div className="cont"> + <h6>See It Yourself</h6> + <span> + <a href="#0">Design</a>, <a href="#0">WordPress</a> + </span> + </div> + </div> + + <div + className={`${ + grid === 3 + ? "col-lg-4 col-md-6" + : grid === 2 + ? "col-md-6" + : "col-12" + } items brand wow fadeInUp`} + data-wow-delay=".4s" + > + <div className="item-img"> + <Link href={`/project-details2/project-details2-dark`}> + <a className="imago wow"> + <img src="/img/portfolio/portfolio/1/6.jpg" alt="image" /> + <div className="item-img-overlay"></div> + </a> + </Link> + </div> + <div className="cont"> + <h6>Blast From The Past</h6> + <span> + <a href="#0">Design</a>, <a href="#0">WordPress</a> + </span> + </div> + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default Portfolio; diff --git a/src/components/Price-packages/price-packages.jsx b/src/components/Price-packages/price-packages.jsx new file mode 100644 index 0000000..1338182 --- /dev/null +++ b/src/components/Price-packages/price-packages.jsx @@ -0,0 +1,215 @@ +import React from "react"; + +const PricePackages = ({ bgGray }) => { + return ( + <section className={`app-price section-padding ${bgGray ? "bg-gray" : ""}`}> + <div className="container"> + <div className="row justify-content-center"> + <div className="col-lg-8 col-md-10"> + <div className="s-head text-center mb-80"> + <h6 className="stit mb-30"> + <span className="left"></span> Pricing Package + <span className="right"></span> + </h6> + <h2>Popular Pricing Package for Design Mobile Application </h2> + </div> + </div> + </div> + <div className="row justify-content-center"> + <div className="col-lg-10"> + <div className="pric-tables"> + <div className="row"> + <div className="col-md-6"> + <div className="item sm-mb50"> + <div className="type text-center mb-15"> + <h5>Free Package</h5> + </div> + <div className="amount text-center mb-40"> + <h3> + <span>$</span> 0 + </h3> + </div> + <div className="order mb-40"> + <a href="#0" className="butn-gray rounded buton"> + <span>Get Free 7 Days Trial</span> + </a> + </div> + <div className="feat"> + <ul> + <li> + <i className="icon"> + <svg + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 448 512" + > + <path d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z" /> + </svg> + </i> + Unique Design & Development + </li> + + <li> + <i className="icon"> + <svg + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 448 512" + > + <path d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z" /> + </svg> + </i> + Clean Code & Easy Editable + </li> + + <li> + <i className="icon"> + <svg + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 448 512" + > + <path d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z" /> + </svg> + </i> + Modern UI Design + </li> + + <li className="disbl"> + <i className="icon"> + <svg + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 448 512" + > + <path d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z" /> + </svg> + </i> + 350 GB Hosting Free + </li> + + <li className="disbl"> + <i className="icon"> + <svg + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 448 512" + > + <path d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z" /> + </svg> + </i> + 24/7 Hour Support + </li> + + <li className="disbl"> + <i className="icon"> + <svg + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 448 512" + > + <path d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z" /> + </svg> + </i> + Upload Modern Design + </li> + </ul> + </div> + </div> + </div> + <div className="col-md-6"> + <div className="item active"> + <div className="type text-center mb-15"> + <h5>Premium Package</h5> + </div> + <div className="amount text-center mb-40"> + <h3> + <span>$</span> 59 + </h3> + </div> + <div className="order mb-40"> + <a href="#0" className="butn-gr rounded buton"> + <span>Choose Package</span> + </a> + </div> + <div className="feat"> + <ul> + <li> + <i className="icon"> + <svg + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 448 512" + > + <path d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z" /> + </svg> + </i> + Unique Design & Development + </li> + + <li> + <i className="icon"> + <svg + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 448 512" + > + <path d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z" /> + </svg> + </i> + Clean Code & Easy Editable + </li> + + <li> + <i className="icon"> + <svg + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 448 512" + > + <path d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z" /> + </svg> + </i> + Modern UI Design + </li> + + <li> + <i className="icon"> + <svg + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 448 512" + > + <path d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z" /> + </svg> + </i> + 350 GB Hosting Free + </li> + + <li> + <i className="icon"> + <svg + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 448 512" + > + <path d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z" /> + </svg> + </i> + 24/7 Hour Support + </li> + + <li> + <i className="icon"> + <svg + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 448 512" + > + <path d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z" /> + </svg> + </i> + Upload Modern Design + </li> + </ul> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default PricePackages; diff --git a/src/components/Price-packages2/price-packages2.jsx b/src/components/Price-packages2/price-packages2.jsx new file mode 100644 index 0000000..0f6ed8c --- /dev/null +++ b/src/components/Price-packages2/price-packages2.jsx @@ -0,0 +1,303 @@ +import React from "react"; + +const PricePackages2 = () => { + return ( + <section className="app-price section-padding"> + <div className="container"> + <div className="row justify-content-center"> + <div className="col-lg-8 col-md-10"> + <div className="s-head text-center mb-80"> + <h6 className="stit mb-30"> + <span className="left"></span> Pricing Package + <span className="right"></span> + </h6> + <h2>Popular Pricing Package for Design Mobile Application </h2> + </div> + </div> + </div> + <div className="pric-tables"> + <div className="row"> + <div className="col-lg-4"> + <div className="item sm-padding md-mb50"> + <div className="type text-center mb-15"> + <h5>Free Package</h5> + </div> + <div className="amount text-center mb-40"> + <h3> + <span>$</span> 0 + </h3> + </div> + <div className="order mb-40"> + <a href="#0" className="butn-gray rounded buton"> + <span>Get Free 7 Days Trial</span> + </a> + </div> + <div className="feat"> + <ul> + <li> + <i className="icon"> + <svg + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 448 512" + > + <path d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z" /> + </svg> + </i> + Design & Development + </li> + + <li> + <i className="icon"> + <svg + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 448 512" + > + <path d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z" /> + </svg> + </i> + Clean Code & Easy + </li> + + <li> + <i className="icon"> + <svg + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 448 512" + > + <path d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z" /> + </svg> + </i> + Modern UI Design + </li> + + <li className="disbl"> + <i className="icon"> + <svg + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 448 512" + > + <path d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z" /> + </svg> + </i> + 350 GB Hosting Free + </li> + + <li className="disbl"> + <i className="icon"> + <svg + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 448 512" + > + <path d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z" /> + </svg> + </i> + 24/7 Hour Support + </li> + + <li className="disbl"> + <i className="icon"> + <svg + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 448 512" + > + <path d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z" /> + </svg> + </i> + Upload Modern Design + </li> + </ul> + </div> + </div> + </div> + <div className="col-lg-4"> + <div className="item active sm-padding md-mb50"> + <div className="type text-center mb-15"> + <h5>Premium Package</h5> + </div> + <div className="amount text-center mb-40"> + <h3> + <span>$</span> 59 + </h3> + </div> + <div className="order mb-40"> + <a href="#0" className="butn-gr rounded buton"> + <span>Choose Package</span> + </a> + </div> + <div className="feat"> + <ul> + <li> + <i className="icon"> + <svg + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 448 512" + > + <path d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z" /> + </svg> + </i> + Design & Development + </li> + + <li> + <i className="icon"> + <svg + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 448 512" + > + <path d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z" /> + </svg> + </i> + Clean Code & Easy + </li> + + <li> + <i className="icon"> + <svg + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 448 512" + > + <path d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z" /> + </svg> + </i> + Modern UI Design + </li> + + <li> + <i className="icon"> + <svg + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 448 512" + > + <path d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z" /> + </svg> + </i> + 350 GB Hosting Free + </li> + + <li> + <i className="icon"> + <svg + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 448 512" + > + <path d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z" /> + </svg> + </i> + 24/7 Hour Support + </li> + + <li className="disbl"> + <i className="icon"> + <svg + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 448 512" + > + <path d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z" /> + </svg> + </i> + Upload Modern Design + </li> + </ul> + </div> + </div> + </div> + <div className="col-lg-4"> + <div className="item sm-padding"> + <div className="type text-center mb-15"> + <h5>Golden Package</h5> + </div> + <div className="amount text-center mb-40"> + <h3> + <span>$</span> 99 + </h3> + </div> + <div className="order mb-40"> + <a href="#0" className="butn-gray rounded buton"> + <span>Choose Package</span> + </a> + </div> + <div className="feat"> + <ul> + <li> + <i className="icon"> + <svg + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 448 512" + > + <path d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z" /> + </svg> + </i> + Design & Development + </li> + + <li> + <i className="icon"> + <svg + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 448 512" + > + <path d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z" /> + </svg> + </i> + Clean Code & Easy + </li> + + <li> + <i className="icon"> + <svg + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 448 512" + > + <path d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z" /> + </svg> + </i> + Modern UI Design + </li> + + <li> + <i className="icon"> + <svg + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 448 512" + > + <path d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z" /> + </svg> + </i> + 350 GB Hosting Free + </li> + + <li> + <i className="icon"> + <svg + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 448 512" + > + <path d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z" /> + </svg> + </i> + 24/7 Hour Support + </li> + + <li> + <i className="icon"> + <svg + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 448 512" + > + <path d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z" /> + </svg> + </i> + Upload Modern Design + </li> + </ul> + </div> + </div> + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default PricePackages2; diff --git a/src/components/Progress/progress.jsx b/src/components/Progress/progress.jsx new file mode 100644 index 0000000..c5cedd7 --- /dev/null +++ b/src/components/Progress/progress.jsx @@ -0,0 +1,58 @@ +import React from "react"; + +const Progress = () => { + return ( + <section className="app-process section-padding pt-0"> + <div className="container"> + <div className="row justify-content-center"> + <div className="col-lg-7 col-md-10"> + <div className="s-head text-center mb-80"> + <h6 className="stit mb-30"> + <span className="left"></span> Working Process + <span className="right"></span> + </h6> + <h2>3 Step to Compalte Projects</h2> + </div> + </div> + </div> + <div className="row"> + <div className="col-lg-4"> + <div className="item text-center md-mb50"> + <span className="icon pe-7s-cloud-download"></span> + <h5>Download Apps</h5> + <span className="step-number">Step 01</span> + <p> + Sorem ipsum dolor sit amet consectetur adipiscing elit seddo + eiusmod tempor incididunt + </p> + </div> + </div> + <div className="col-lg-4"> + <div className="item text-center md-mb50"> + <span className="icon pe-7s-user"></span> + <h5>Create Account</h5> + <span className="step-number">Step 02</span> + <p> + Sorem ipsum dolor sit amet consectetur adipiscing elit seddo + eiusmod tempor incididunt + </p> + </div> + </div> + <div className="col-lg-4"> + <div className="item text-center"> + <span className="icon pe-7s-phone"></span> + <h5>Got Results</h5> + <span className="step-number">Step 03</span> + <p> + Sorem ipsum dolor sit amet consectetur adipiscing elit seddo + eiusmod tempor incididunt + </p> + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default Progress; diff --git a/src/components/Project-description/project-description.jsx b/src/components/Project-description/project-description.jsx new file mode 100644 index 0000000..947ebbd --- /dev/null +++ b/src/components/Project-description/project-description.jsx @@ -0,0 +1,26 @@ +import React from "react"; + +const ProjectDescription = ({ projectDescriptionData }) => { + return ( + <section className="intro-section section-padding"> + <div className="container"> + <div className="row"> + <div className="col-lg-3 col-md-4"> + <div className="htit"> + <h4> + <span>02 </span> Description + </h4> + </div> + </div> + <div className="col-lg-8 offset-lg-1 col-md-8"> + <div className="text js-scroll__content"> + <p className="extra-text">{projectDescriptionData.content}</p> + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default ProjectDescription; diff --git a/src/components/Project-details2-header/project-details2-header.jsx b/src/components/Project-details2-header/project-details2-header.jsx new file mode 100644 index 0000000..83c6cdb --- /dev/null +++ b/src/components/Project-details2-header/project-details2-header.jsx @@ -0,0 +1,75 @@ +import React from "react"; +import Link from "next/link"; + +const ProjectDetails2Header = ({ projectHeaderData }) => { + return ( + <section + className="page-header proj-det bg-img parallaxie valign" + style={{ backgroundImage: `url(${projectHeaderData.projectHeaderImage})` }} + data-overlay-dark="4" + > + <div className="container"> + <div className="row"> + <div className="col-lg-7 col-md-9"> + <div className="cont"> + <h6>{projectHeaderData.title.small}</h6> + <h2>{projectHeaderData.title.big}</h2> + </div> + </div> + </div> + <div className="row"> + <div className="col-lg-3"> + <div className="item mt-30"> + <h6>Client</h6> + <p> + <Link href={projectHeaderData.clientURLLink}> + <a>{projectHeaderData.clientURLName}</a> + </Link> + </p> + </div> + </div> + <div className="col-lg-3"> + <div className="item mt-30"> + <h6>Date</h6> + <p>{projectHeaderData.date}</p> + </div> + </div> + <div className="col-lg-3"> + <div className="item mt-30"> + <h6>Categories</h6> + <p> + {projectHeaderData.categories.map((cat, index) => ( + <Link href={cat.link} key={cat.id}> + <a> + {cat.name} + {projectHeaderData.categories.length != index + 1 + ? " ," + : ""} + </a> + </Link> + ))} + </p> + </div> + </div> + <div className="col-lg-3"> + <div className="item mt-30"> + <h6>Tags</h6> + <p> + {projectHeaderData.tags.map((tag, index) => ( + <Link href={tag.link} key={tag.id}> + <a> + {tag.name} + {projectHeaderData.tags.length != index + 1 ? " ," : ""} + </a> + </Link> + ))} + </p> + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default ProjectDetails2Header; diff --git a/src/components/Project-gallery/project-gallery.jsx b/src/components/Project-gallery/project-gallery.jsx new file mode 100644 index 0000000..46e2019 --- /dev/null +++ b/src/components/Project-gallery/project-gallery.jsx @@ -0,0 +1,30 @@ +/* eslint-disable @next/next/no-img-element */ +import React from "react"; + +const ProjectGallery = () => { + return ( + <section className="projdtal"> + <div className="popup-img"> + <div className="row"> + <a href="#" className="col-md-3 popimg"> + <img alt="" src="/img/portfolio/project2/1.jpg" /> + </a> + <a href="#" className="col-md-3 popimg"> + <img alt="" src="/img/portfolio/project2/2.jpg" /> + </a> + <a href="#" className="col-md-3 popimg"> + <img alt="" src="/img/portfolio/project2/3.jpg" /> + </a> + <a href="#" className="col-md-3 popimg"> + <img alt="" src="/img/portfolio/project2/5.jpg" /> + </a> + <a href="#" className="col-md-12 popimg"> + <img alt="" src="/img/portfolio/project2/7.jpg" /> + </a> + </div> + </div> + </section> + ); +}; + +export default ProjectGallery; diff --git a/src/components/Project-introduction/project-introduction.jsx b/src/components/Project-introduction/project-introduction.jsx new file mode 100644 index 0000000..e20fe81 --- /dev/null +++ b/src/components/Project-introduction/project-introduction.jsx @@ -0,0 +1,33 @@ +import React from "react"; + +const ProjectIntroduction = ({ projectIntroductionData }) => { + return ( + <section className="intro-section section-padding"> + <div className="container"> + <div className="row"> + <div className="col-lg-3 col-md-4"> + <div className="htit"> + <h4> + <span>01 </span> Introduction + </h4> + </div> + </div> + <div className="col-lg-8 offset-lg-1 col-md-8"> + <div className="text js-scroll__content"> + <p className="extra-text"> + {projectIntroductionData.content} + </p> + <ul className="smp-list mt-30"> + {projectIntroductionData.spmList.map((item) => ( + <li key={item.id}>{item.name}</li> + ))} + </ul> + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default ProjectIntroduction; diff --git a/src/components/Project-video/project-video.jsx b/src/components/Project-video/project-video.jsx new file mode 100644 index 0000000..89d0067 --- /dev/null +++ b/src/components/Project-video/project-video.jsx @@ -0,0 +1,48 @@ +import React from "react"; +import ModalVideo from "react-modal-video"; +import "react-modal-video/css/modal-video.css"; + +const ProjectVideo = ({ projectVideoDate }) => { + console.clear() + const [isOpen, setOpen] = React.useState(false); + return ( + <section> + <div className="container-fluid"> + <div + className="video-wrapper section-padding bg-img parallaxie valign" + style={{ + backgroundImage: `url(${projectVideoDate.projectHeaderImage})`, + }} + data-overlay-dark="4" + > + <div className="full-width text-center"> + {typeof window !== "undefined" && ( + <ModalVideo + channel="vimeo" + autoplay + isOpen={isOpen} + videoId="127203262" + onClose={() => setOpen(false)} + /> + )} + <a + className="vid" + onClick={(e) => { + e.preventDefault(); + setOpen(true); + }} + > + <div className="vid-butn"> + <span className="icon"> + <i className="fas fa-play"></i> + </span> + </div> + </a> + </div> + </div> + </div> + </section> + ); +}; + +export default ProjectVideo; diff --git a/src/components/Screenshots/screenshots.jsx b/src/components/Screenshots/screenshots.jsx new file mode 100644 index 0000000..804be1e --- /dev/null +++ b/src/components/Screenshots/screenshots.jsx @@ -0,0 +1,115 @@ +import React, { useEffect, useState } from "react"; +import { Swiper, SwiperSlide } from "swiper/react"; +import SwiperCore, { Pagination, Parallax } from "swiper"; + +import "swiper/css"; +import "swiper/css/pagination"; +SwiperCore.use([Pagination, Parallax]); + +const Screenshots = () => { + const [load, setLoad] = useState(false); + useEffect(() => { + setLoad(true); + }, [load]); + const paginationRef = React.useRef(null); + return ( + <section className="secreen-shots section-padding"> + <div className="container"> + <div className="row justify-content-center"> + <div className="col-lg-7 col-md-10"> + <div className="s-head text-center mb-80"> + <h6 className="stit mb-30"> + <span className="left"></span> Apps Screenshot + <span className="right"></span> + </h6> + <h2>Amazing Designer Create Our Application Let’s See</h2> + </div> + </div> + </div> + <div className="row"> + <div className="col-12"> + <div className="swiper-container"> + {load ? ( + <Swiper + speed={1000} + spaceBetween={30} + loop={true} + slidesPerView={5} + pagination={{ + clickable: true, + el: paginationRef.current, + }} + className="swiper-wrapper" + breakpoints={{ + 320: { + slidesPerView: 1, + spaceBetween: 0, + }, + 640: { + slidesPerView: 2, + }, + 767: { + slidesPerView: 3, + centeredSlides: false, + }, + 991: { + slidesPerView: 5, + }, + }} + > + <SwiperSlide className="swiper-slide"> + <div className="item"> + <div className="img"> + <img src="/img/mobile-app/screenshots/1.png" alt="" /> + </div> + </div> + </SwiperSlide> + <SwiperSlide className="swiper-slide"> + <div className="item"> + <div className="img"> + <img src="/img/mobile-app/screenshots/2.png" alt="" /> + </div> + </div> + </SwiperSlide> + <SwiperSlide className="swiper-slide"> + <div className="item"> + <div className="img"> + <img src="/img/mobile-app/screenshots/3.png" alt="" /> + </div> + </div> + </SwiperSlide> + <SwiperSlide className="swiper-slide"> + <div className="item"> + <div className="img"> + <img src="/img/mobile-app/screenshots/4.png" alt="" /> + </div> + </div> + </SwiperSlide> + <SwiperSlide className="swiper-slide"> + <div className="item"> + <div className="img"> + <img src="/img/mobile-app/screenshots/5.png" alt="" /> + </div> + </div> + </SwiperSlide> + <SwiperSlide className="swiper-slide"> + <div className="item"> + <div className="img"> + <img src="/img/mobile-app/screenshots/3.png" alt="" /> + </div> + </div> + </SwiperSlide> + </Swiper> + ) : ( + "" + )} + <div className="swiper-pagination" ref={paginationRef}></div> + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default Screenshots; diff --git a/src/components/Services/services.jsx b/src/components/Services/services.jsx new file mode 100644 index 0000000..aee5b92 --- /dev/null +++ b/src/components/Services/services.jsx @@ -0,0 +1,77 @@ +import React from "react"; +import featuresData from "../../data/sections/features.json"; + +const Services = ({ style, lines }) => { + return ( + <section + className={`services bords section-padding ${ + style === "4item" ? "lficon" : lines ? "" : "pt-0" + }`} + > + <div className="container"> + <div className="row justify-content-center"> + <div className="col-lg-8 col-md-10"> + <div className="sec-head text-center"> + <h6 className="wow fadeIn" data-wow-delay=".5s"> + Best Features + </h6> + <h3 className="wow color-font"> + We are a new business development agency + </h3> + </div> + </div> + </div> + <div className="row"> + {style === "4item" + ? featuresData.map((feature) => ( + <div + key={feature.id} + className="col-lg-6 wow fadeInLeft" + data-wow-delay={`${ + feature.id == 1 + ? ".5" + : feature.id === 2 + ? ".7" + : feature.id === 3 + ? ".9" + : "1.1" + }s`} + > + <div className="item-box"> + <div> + <span className={`icon ${feature.icon}`}></span> + </div> + <div className="cont"> + <h6>{feature.title}</h6> + <p>{feature.content}</p> + </div> + </div> + </div> + )) + : // max item 3 in Home page + featuresData.slice(0, 3).map((feature) => ( + <div + key={feature.id} + className="col-lg-4 wow fadeInLeft" + data-wow-delay=".5s" + > + <div className="item-box md-mb50"> + <span className={`icon ${feature.icon}`}></span> + <h6>{feature.title}</h6> + <p>{feature.content}</p> + </div> + </div> + ))} + </div> + </div> + {lines ? ( + <> + <div className="line top left"></div> + <div className="line bottom right"></div> + </> + ) : null} + </section> + ); +}; + +export default Services; diff --git a/src/components/Services2/services2.jsx b/src/components/Services2/services2.jsx new file mode 100644 index 0000000..e48063d --- /dev/null +++ b/src/components/Services2/services2.jsx @@ -0,0 +1,65 @@ +import React from "react"; +import Link from "next/link"; + +const Services2 = () => { + return ( + <section className="services section-padding position-re"> + <div className="container"> + <div className="row justify-content-center"> + <div className="col-lg-8 col-md-10"> + <div className="sec-head text-center"> + <h6 className="wow fadeIn" data-wow-delay=".5s"> + Best Features + </h6> + <h3 className="wow color-font"> + We are a new digital product development agency + </h3> + </div> + </div> + </div> + <div className="row"> + <div className="col-lg-4 wow fadeInUp" data-wow-delay=".3s"> + <div className="step-item xtop"> + <span className="icon pe-7s-gleam"></span> + <h6>Digital Marketing</h6> + <p> + Tempore corrupti temporibus fuga earum asperiores fugit + laudantium. + </p> + </div> + </div> + <div className="col-lg-4 wow fadeInUp" data-wow-delay=".6s"> + <div className="step-item xcolor"> + <span className="icon pe-7s-phone"></span> + <h6>Web & App Development</h6> + <p> + Tempore corrupti temporibus fuga earum asperiores fugit + laudantium. + </p> + </div> + </div> + <div className="col-lg-4 wow fadeInUp" data-wow-delay=".9s"> + <div className="step-item xbottom"> + <span className="icon pe-7s-magic-wand"></span> + <h6>Graphic Design</h6> + <p> + Tempore corrupti temporibus fuga earum asperiores fugit + laudantium. + </p> + </div> + </div> + </div> + <div className="smore"> + <Link href="/about/about-dark"> + <a>Discover More</a> + </Link> + <i className="fas fa-long-arrow-alt-right"></i> + </div> + </div> + <div className="line top left"></div> + <div className="line bottom right"></div> + </section> + ); +}; + +export default Services2; diff --git a/src/components/Services3/services3.jsx b/src/components/Services3/services3.jsx new file mode 100644 index 0000000..4d8b10a --- /dev/null +++ b/src/components/Services3/services3.jsx @@ -0,0 +1,103 @@ +import React from "react"; +import Link from "next/link"; +import cardMouseEffect from "../../common/cardMouseEffect"; + +const Services3 = () => { + React.useEffect(() => { + cardMouseEffect(document.querySelectorAll(".feat .items")); + }, []); + return ( + <section className="feat sub-bg section-padding"> + <div className="container"> + <div className="row"> + <div className="col-lg-8 col-md-10"> + <div className="sec-head"> + <h6 className="wow fadeIn" data-wow-delay=".5s"> + Best Services + </h6> + <h3 className="wow color-font"> + We help to create strategies, design & development. + </h3> + </div> + </div> + </div> + <div className="row"> + <div className="col-lg-3 col-md-6 items md-mb30"> + <div className="item wow fadeIn" data-wow-delay=".3s"> + <span className="icon"> + <i className="ion-ios-monitor"></i> + </span> + <h5>Strategic consulting</h5> + <p> + We listen to you, figure out what your project requires, and + then craft a business plan just for you that works well in the + UAE. + </p> + <Link href="/about/about-light"> + <a className="more-stroke"> + <span></span> + </a> + </Link> + </div> + </div> + <div className="col-lg-3 col-md-6 items active md-mb30"> + <div className="item wow fadeIn" data-wow-delay=".3s"> + <span className="icon"> + <i className="ion-ios-bolt-outline"></i> + </span> + <h5>Preparing and submitting legal documents</h5> + <p> + We handle everything from registering and getting licenses to + making sure your project follows all the rules, so you can start + smoothly without any issues. + </p> + <Link href="/about/about-light"> + <a className="more-stroke"> + <span></span> + </a> + </Link> + </div> + </div> + <div className="col-lg-3 col-md-6 items sm-mb30"> + <div className="item wow fadeIn" data-wow-delay=".3s"> + <span className="icon"> + <i className="ion-cube"></i> + </span> + <h5>Ongoing support</h5> + <p> + Once your business is up and running, we keep supporting you to + help you adjust to the market and make sure you keep succeeding + in the long run. + </p> + <Link href="/about/about-light"> + <a className="more-stroke"> + <span></span> + </a> + </Link> + </div> + </div> + <div className="col-lg-3 col-md-6 items"> + <div className="item wow fadeIn" data-wow-delay=".3s"> + <span className="icon"> + <i className="ion-ios-color-wand"></i> + </span> + <h5>Communication with government agencies</h5> + <p> + We take care of all the paperwork and dealings with government + agencies to set up your project, so you can start your business + smoothly and without delays. + </p> + <Link href="/about/about-light"> + <a className="more-stroke"> + <span></span> + </a> + </Link> + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default Services3; diff --git a/src/components/Services4/services4.jsx b/src/components/Services4/services4.jsx new file mode 100644 index 0000000..d474f21 --- /dev/null +++ b/src/components/Services4/services4.jsx @@ -0,0 +1,44 @@ +import React from "react"; +import featuresData from "../../data/sections/features.json"; + +const Services4 = ({serviceMB50}) => { + return ( + <section className="services box section-padding"> + <div className="container"> + <div className="row justify-content-center"> + <div className="col-lg-8 col-md-10"> + <div className="sec-head text-center"> + <h6 className="wow fadeIn" data-wow-delay=".5s"> + Best Features + </h6> + <h3 className="wow color-font"> + We are a new digital product development agency + </h3> + </div> + </div> + </div> + <div className="row"> + {featuresData.slice(0, 3).map((item, index) => ( + <div + className="col-lg-4 wow fadeInLeft" + data-wow-delay={index == 0 ? ".5s" : index == 1 ? ".7s" : ".9s"} + key={item.id} + > + <div + className={`item-box no-curve ${ + serviceMB50 && index + 1 != featuresData.length - 1 ? "mb-50" : "" + }`} + > + <span className={`icon color-font ${item.icon}`}></span> + <h6>{item.title}</h6> + <p>{item.content}</p> + </div> + </div> + ))} + </div> + </div> + </section> + ); +}; + +export default Services4; diff --git a/src/components/Services5/services5.jsx b/src/components/Services5/services5.jsx new file mode 100644 index 0000000..10e1767 --- /dev/null +++ b/src/components/Services5/services5.jsx @@ -0,0 +1,113 @@ +import React from "react"; +import featuresData2 from "../../data/sections/features.json"; +import featuresData1 from "../../data/sections/features1.json"; +import featuresData3 from "../../data/sections/features2.json"; + +const Services5 = () => { + return ( + <section className="services box lficon section-padding position-re"> + <div className="container"> + <div className="row justify-content-center"> + <div className="col-lg-8 col-md-10"> + <div className="sec-head text-center"> + <h6 className="wow fadeIn" data-wow-delay=".5s"> + Best Features + </h6> + <h3 className="wow color-font"> + We are a new business establishment servicet agency + </h3> + </div> + </div> + </div> + <h4 className="wow color-font"> + Marketing and administrative services + </h4> + <div className="row"> + {featuresData1.map((item, index) => ( + <div + className="col-lg-6 wow fadeInLeft" + data-wow-delay={ + index == 0 + ? ".5s" + : index == 1 + ? ".7s" + : index === 2 + ? ".9s" + : ".5s" + } + key={item.id} + > + <div className="item-box no-curve"> + <div> + <span className={`icon color-font ${item.icon}`}></span> + </div> + <div className="cont"> + <h6>{item.title}</h6> + <p>{item.content}</p> + </div> + </div> + </div> + ))} + </div> + <div className="row"> + {featuresData2.map((item, index) => ( + <div + className="col-lg-6 wow fadeInLeft" + data-wow-delay={ + index == 0 + ? ".5s" + : index == 1 + ? ".7s" + : index === 2 + ? ".9s" + : ".5s" + } + key={item.id} + > + <div className="item-box no-curve"> + <div> + <span className={`icon color-font ${item.icon}`}></span> + </div> + <div className="cont"> + <h6>{item.title}</h6> + <p>{item.content}</p> + </div> + </div> + </div> + ))} + </div> + <h4 className="wow color-font mt-3">Consulting services</h4> + <div className="row"> + {featuresData3.map((item, index) => ( + <div + className="col-lg-6 wow fadeInLeft" + data-wow-delay={ + index == 0 + ? ".5s" + : index == 1 + ? ".7s" + : index === 2 + ? ".9s" + : ".5s" + } + key={item.id} + > + <div className="item-box no-curve"> + <div> + <span className={`icon color-font ${item.icon}`}></span> + </div> + <div className="cont"> + <h6>{item.title}</h6> + <p>{item.content}</p> + </div> + </div> + </div> + ))} + </div> + </div> + <div className="line bottom right"></div> + </section> + ); +}; + +export default Services5; diff --git a/src/components/Services6/services6.jsx b/src/components/Services6/services6.jsx new file mode 100644 index 0000000..4e70e20 --- /dev/null +++ b/src/components/Services6/services6.jsx @@ -0,0 +1,89 @@ +import React from "react"; +import Link from "next/link"; + +const Services6 = () => { + return ( + <section className="serv-arch"> + <div className="container-fluid"> + <div className="row justify-content-center"> + <div + className="col-lg col-md-6 item bg-img" + style={{ backgroundImage: "url(/img/arch/s2.jpg)" }} + > + <h6 className="numb">01</h6> + <h5>Architecture</h5> + <p> + We provide all equipment and services, etc and ensure a safe and + secure project site. + </p> + <Link href="/about/about-dark"> + <a className="custom-font more main-color">Read More</a> + </Link> + </div> + + <div + className="col-lg col-md-6 item bg-img" + style={{ backgroundImage: "url(/img/arch/s1.jpg)" }} + > + <h6 className="numb">02</h6> + <h5>Interior Design</h5> + <p> + We provide all equipment and services, etc and ensure a safe and + secure project site. + </p> + <Link href="/about/about-dark"> + <a className="custom-font more main-color">Read More</a> + </Link> + </div> + + <div + className="col-lg col-md-6 item bg-img" + style={{ backgroundImage: "url(/img/arch/s3.jpg)" }} + > + <h6 className="numb">03</h6> + <h5>3D Modeling</h5> + <p> + We provide all equipment and services, etc and ensure a safe and + secure project site. + </p> + <Link href="/about/about-dark"> + <a className="custom-font more main-color">Read More</a> + </Link> + </div> + + <div + className="col-lg col-md-6 item bg-img" + style={{ backgroundImage: "url(/img/arch/s4.jpg)" }} + > + <h6 className="numb">04</h6> + <h5>Furniture Design</h5> + <p> + We provide all equipment and services, etc and ensure a safe and + secure project site. + </p> + <Link href="/about/about-dark"> + <a className="custom-font more main-color">Read More</a> + </Link> + </div> + + <div + className="col-lg col-md-6 item bg-img" + style={{ backgroundImage: "url(/img/arch/s5.jpg)" }} + > + <h6 className="numb">05</h6> + <h5>Urban Design</h5> + <p> + We provide all equipment and services, etc and ensure a safe and + secure project site. + </p> + <Link href="/about/about-dark"> + <a className="custom-font more main-color">Read More</a> + </Link> + </div> + </div> + </div> + </section> + ); +}; + +export default Services6; diff --git a/src/components/Services7/services7.jsx b/src/components/Services7/services7.jsx new file mode 100644 index 0000000..2487220 --- /dev/null +++ b/src/components/Services7/services7.jsx @@ -0,0 +1,164 @@ +import React from "react"; + +const Services7 = ({ lightTheme }) => { + return ( + <section className="serv-block section-padding"> + <div className="container"> + <div className="row"> + <div className="col-lg-5"> + <div className="serv-img md-mb50"> + <img + src={ + lightTheme + ? "/img/mobile-app/app-img/light/s1.png" + : "/img/mobile-app/app-img/s1.png" + } + alt="" + /> + </div> + </div> + <div className="col-lg-6 offset-lg-1 valign"> + <div className="content"> + <h6 className="stit mb-30"> + <span className="left"></span> Custimize Application + </h6> + <h2 className="mb-30">We Tackle Your Most Ambitious Goals</h2> + <p> + Sed ut perspiciatis unde omnis iste natus error sit voluptatem + accus antium doloremque laudantium, totam rem aperiam, eaque + ipsa quae abillo inventore veritatis et quasi architecto beatae + vitae dicta ecabo. Nemo enim ipsam voluptatem quia voluptas + aspernatur{" "} + </p> + + <div className="butons mt-40"> + <a href="#0" className="butn-gr rounded buton"> + <span>Get Free 7 Days Trial</span> + <i className="icon"> + <svg + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 384 512" + > + <path d="M318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z" /> + </svg> + </i> + </a> + <a href="#0" className="butn-more"> + <span>Read More</span> + <i className="icon"> + <svg + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 320 512" + > + <path d="M96 480c-8.188 0-16.38-3.125-22.62-9.375c-12.5-12.5-12.5-32.75 0-45.25L242.8 256L73.38 86.63c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l192 192c12.5 12.5 12.5 32.75 0 45.25l-192 192C112.4 476.9 104.2 480 96 480z" /> + </svg> + </i> + </a> + </div> + + <div className="list-feat mt-40"> + <ul> + <li className="mb-20"> + <i className="icon"> + {" "} + <svg + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 448 512" + > + <path d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z" /> + </svg> + </i>{" "} + Unique Design & Development + </li> + <li className="mb-20"> + <i className="icon"> + {" "} + <svg + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 448 512" + > + <path d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z" /> + </svg> + </i>{" "} + Experience Team Members + </li> + <li> + <i className="icon"> + {" "} + <svg + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 448 512" + > + <path d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z" /> + </svg> + </i>{" "} + Powerfull Applications + </li> + </ul> + </div> + </div> + </div> + </div> + <div className="row mt-80"> + <div className="col-lg-6 valign"> + <div className="content md-mb50"> + <h6 className="stit mb-30"> + <span className="left"></span> Core Features + </h6> + <h2 className="mb-30"> + Links, Content & Community. One Online Homepages. Save and + Organise Ideas + </h2> + <p> + Sed ut perspiciatis unde omnis iste natus error sit voluptatem + accus antium doloremque laudantium, totam rem aperiam, eaque + ipsa quae abillo inventore veritatis et quasi architecto beatae + vitae dicta ecabo. Nemo enim ipsam voluptatem quia voluptas sit + aspernatur aut odit aut fugit, sed quia consequuntur magni + dolores eos + </p> + + <div className="butons mt-40"> + <a href="#0" className="butn-bord-red rounded buton"> + <span>Get Free 7 Days Trial</span> + <i className="icon"> + <svg + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 384 512" + > + <path d="M318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z" /> + </svg> + </i> + </a> + <a href="#0" className="butn-more"> + <span>Read More</span> + <i className="icon"> + <svg + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 320 512" + > + <path d="M96 480c-8.188 0-16.38-3.125-22.62-9.375c-12.5-12.5-12.5-32.75 0-45.25L242.8 256L73.38 86.63c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l192 192c12.5 12.5 12.5 32.75 0 45.25l-192 192C112.4 476.9 104.2 480 96 480z" /> + </svg> + </i> + </a> + </div> + </div> + </div> + <div className="col-lg-5 offset-lg-1"> + <div className="serv-img"> + <img src={ + lightTheme + ? "/img/mobile-app/app-img/light/s2.png" + : "/img/mobile-app/app-img/s2.png" + } alt="" /> + </div> + </div> + </div> + </div> + <div className="circle-blur"></div> + <div className="circle-blur two"></div> + </section> + ); +}; + +export default Services7; diff --git a/src/components/Services8/services8.jsx b/src/components/Services8/services8.jsx new file mode 100644 index 0000000..498d82c --- /dev/null +++ b/src/components/Services8/services8.jsx @@ -0,0 +1,127 @@ +import React from "react"; + +const Services8 = () => { + return ( + <section className="app-services section-padding bg-gray"> + <div className="container"> + <div className="row justify-content-center"> + <div className="col-lg-7 col-md-10"> + <div className="s-head text-center mb-80"> + <h6 className="stit mb-30"> + <span className="left"></span> Application Features + <span className="right"></span> + </h6> + <h2>Amazing Features to Customize your Application Easy</h2> + </div> + </div> + </div> + <div className="row"> + <div className="col-lg-4 col-md-6"> + <div className="item mb-30"> + <div className="item-tit mb-15"> + <div className="icon"> + <span className="pe-7s-vector"></span> + </div> + <div className="text-tit"> + <h5>Modern Design</h5> + </div> + </div> + + <p> + unde omniste natus error sit voluptatem accus antium dolore mque + laudant totam rem aperiam. + </p> + </div> + </div> + <div className="col-lg-4 col-md-6"> + <div className="item mb-30"> + <div className="item-tit mb-15"> + <div className="icon"> + <span className="pe-7s-rocket"></span> + </div> + <div className="text-tit"> + <h5>Fast Installation</h5> + </div> + </div> + + <p> + unde omniste natus error sit voluptatem accus antium dolore mque + laudant totam rem aperiam. + </p> + </div> + </div> + <div className="col-lg-4 col-md-6"> + <div className="item mb-30"> + <div className="item-tit mb-15"> + <div className="icon"> + <span className="pe-7s-graph3"></span> + </div> + <div className="text-tit"> + <h5>Digital Analytics</h5> + </div> + </div> + + <p> + unde omniste natus error sit voluptatem accus antium dolore mque + laudant totam rem aperiam. + </p> + </div> + </div> + <div className="col-lg-4 col-md-6"> + <div className="item sm-mb50"> + <div className="item-tit mb-15"> + <div className="icon"> + <span className="pe-7s-anchor"></span> + </div> + <div className="text-tit"> + <h5>SEO Friendly</h5> + </div> + </div> + + <p> + unde omniste natus error sit voluptatem accus antium dolore mque + laudant totam rem aperiam. + </p> + </div> + </div> + <div className="col-lg-4 col-md-6"> + <div className="item sm-mb50"> + <div className="item-tit mb-15"> + <div className="icon"> + <span className="pe-7s-phone"></span> + </div> + <div className="text-tit"> + <h5>Clean Coding</h5> + </div> + </div> + + <p> + unde omniste natus error sit voluptatem accus antium dolore mque + laudant totam rem aperiam. + </p> + </div> + </div> + <div className="col-lg-4 col-md-6"> + <div className="item"> + <div className="item-tit mb-15"> + <div className="icon"> + <span className="pe-7s-lock"></span> + </div> + <div className="text-tit"> + <h5>Heigh Security</h5> + </div> + </div> + + <p> + unde omniste natus error sit voluptatem accus antium dolore mque + laudant totam rem aperiam. + </p> + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default Services8; diff --git a/src/components/Shop-sidebar/shop-sidebar.jsx b/src/components/Shop-sidebar/shop-sidebar.jsx new file mode 100644 index 0000000..f7b51b9 --- /dev/null +++ b/src/components/Shop-sidebar/shop-sidebar.jsx @@ -0,0 +1,114 @@ +import React from "react"; + +const ShopSidebar = () => { + const tooltipRef = React.useRef(), + setValue = (range) => { + const newValue = Number( + ((range.value - range.min) * 100) / (range.max - range.min) + ), + newPosition = 16 - newValue * 0.32; + tooltipRef.current.innerHTML = `<span>${range.value}</span>`; + tooltipRef.current.style.left = `calc(${newValue}% + (${newPosition}px))`; + document.documentElement.style.setProperty( + "--range-progress", + `calc(${newValue}% + (${newPosition}px))` + ); + let a = range.value + range.value = a + }; + React.useEffect(() => { + setValue(document.querySelector("#range")); + }, []); + return ( + <div className="sidebar md-mb50"> + <div className="row"> + <div className="col-lg-12 col-md-6"> + <div className="search mb-30"> + <form action=""> + <div className="form-group"> + <input type="text" name="shop-search" placeholder="Search" /> + <button> + <span className="icon pe-7s-search"></span> + </button> + </div> + </form> + </div> + </div> + + <div className="col-lg-12 col-md-6"> + <div className="box gat mb-30"> + <h6 className="title mb-30">Category</h6> + <ul> + <li> + <a href="#0"> + App Design <span>05</span> + </a> + </li> + <li> + <a href="#0"> + Development <span>03</span> + </a> + </li> + <li> + <a href="#0"> + Web Design <span>07</span> + </a> + </li> + <li> + <a href="#0"> + Dashboard <span>04</span> + </a> + </li> + <li> + <a href="#0"> + Logo Design <span>09</span> + </a> + </li> + <li> + <a href="#0"> + Branding <span>14</span> + </a> + </li> + </ul> + </div> + </div> + + <div className="col-lg-12 col-md-6"> + <div className="box filter-price mb-30"> + <h6 className="title mb-30">Filter By Price</h6> + + <div className="range-slider mb-30"> + <div id="tooltip" ref={tooltipRef}></div> + <input + onInput={(e) => setValue(e.currentTarget)} + id="range" + type="range" + step="10" + min="5" + max="800" + /> + <div className="start-pointe">$ 5</div> + </div> + </div> + </div> + + <div className="col-lg-12 col-md-6"> + <div className="box tags"> + <h6 className="title mb-30">Popular Tags</h6> + + <div> + <a href="#0">Apps</a> + <a href="#0">Design</a> + <a href="#0">Branding</a> + <a href="#0">Software</a> + <a href="#0">Development</a> + <a href="#0">Web</a> + </div> + </div> + </div> + </div> + </div> + ); +}; + +export default ShopSidebar; diff --git a/src/components/Shop-store/shop-store.jsx b/src/components/Shop-store/shop-store.jsx new file mode 100644 index 0000000..e7212e1 --- /dev/null +++ b/src/components/Shop-store/shop-store.jsx @@ -0,0 +1,187 @@ +import React from "react"; + +const ShopStore = () => { + return ( + <div className="store"> + <div className="top-area"> + <div className="row"> + <div className="col-lg-4 valign"> + <div className="result-text"> + <span>Showing 1 - 12 of 30 Results</span> + </div> + </div> + <div className="col-lg-8 d-flex justify-content-end"> + <div className="filter-select"> + <select + className="form-select" + aria-label="Default select example" + > + <option defaultValue>Open this select menu</option> + <option value="1">One</option> + <option value="2">Two</option> + <option value="3">Three</option> + </select> + </div> + </div> + </div> + </div> + <div className="row"> + <div className="col-lg-4 col-md-6"> + <div className="item"> + <div className="img"> + <img src="/img/mobile-app/shop/1.jpg" alt="" /> + <span className="tag">Apps</span> + <div className="add"> + <a href="#0"> + Add To Cart <span className="pe-7s-angle-right"></span> + </a> + </div> + </div> + <div className="info"> + <h6>Mobile Apps Design</h6> + <span>$1253</span> + </div> + </div> + </div> + <div className="col-lg-4 col-md-6"> + <div className="item"> + <div className="img"> + <img src="/img/mobile-app/shop/2.jpg" alt="" /> + <span className="tag">Apps</span> + <div className="add"> + <a href="#0"> + Add To Cart <span className="pe-7s-angle-right"></span> + </a> + </div> + </div> + <div className="info"> + <h6>Mobile Apps Design</h6> + <span>$1253</span> + </div> + </div> + </div> + <div className="col-lg-4 col-md-6"> + <div className="item"> + <div className="img"> + <img src="/img/mobile-app/shop/3.jpg" alt="" /> + <span className="tag">Apps</span> + <div className="add"> + <a href="#0"> + Add To Cart <span className="pe-7s-angle-right"></span> + </a> + </div> + </div> + <div className="info"> + <h6>Mobile Apps Design</h6> + <span>$1253</span> + </div> + </div> + </div> + <div className="col-lg-4 col-md-6"> + <div className="item"> + <div className="img"> + <img src="/img/mobile-app/shop/4.jpg" alt="" /> + <span className="tag">Apps</span> + <div className="add"> + <a href="#0"> + Add To Cart <span className="pe-7s-angle-right"></span> + </a> + </div> + </div> + <div className="info"> + <h6>Mobile Apps Design</h6> + <span>$1253</span> + </div> + </div> + </div> + <div className="col-lg-4 col-md-6"> + <div className="item"> + <div className="img"> + <img src="/img/mobile-app/shop/5.jpg" alt="" /> + <span className="tag">Apps</span> + <div className="add"> + <a href="#0"> + Add To Cart <span className="pe-7s-angle-right"></span> + </a> + </div> + </div> + <div className="info"> + <h6>Mobile Apps Design</h6> + <span>$1253</span> + </div> + </div> + </div> + <div className="col-lg-4 col-md-6"> + <div className="item"> + <div className="img"> + <img src="/img/mobile-app/shop/6.jpg" alt="" /> + <span className="tag">Apps</span> + <div className="add"> + <a href="#0"> + Add To Cart <span className="pe-7s-angle-right"></span> + </a> + </div> + </div> + <div className="info"> + <h6>Mobile Apps Design</h6> + <span>$1253</span> + </div> + </div> + </div> + <div className="col-lg-4 col-md-6"> + <div className="item"> + <div className="img"> + <img src="/img/mobile-app/shop/7.jpg" alt="" /> + <span className="tag">Apps</span> + <div className="add"> + <a href="#0"> + Add To Cart <span className="pe-7s-angle-right"></span> + </a> + </div> + </div> + <div className="info"> + <h6>Mobile Apps Design</h6> + <span>$1253</span> + </div> + </div> + </div> + <div className="col-lg-4 col-md-6"> + <div className="item"> + <div className="img"> + <img src="/img/mobile-app/shop/8.jpg" alt="" /> + <span className="tag">Apps</span> + <div className="add"> + <a href="#0"> + Add To Cart <span className="pe-7s-angle-right"></span> + </a> + </div> + </div> + <div className="info"> + <h6>Mobile Apps Design</h6> + <span>$1253</span> + </div> + </div> + </div> + <div className="col-lg-4 col-md-6"> + <div className="item"> + <div className="img"> + <img src="/img/mobile-app/shop/9.jpg" alt="" /> + <span className="tag">Apps</span> + <div className="add"> + <a href="#0"> + Add To Cart <span className="pe-7s-angle-right"></span> + </a> + </div> + </div> + <div className="info"> + <h6>Mobile Apps Design</h6> + <span>$1253</span> + </div> + </div> + </div> + </div> + </div> + ); +}; + +export default ShopStore; diff --git a/src/components/Shop/shop.jsx b/src/components/Shop/shop.jsx new file mode 100644 index 0000000..ece064e --- /dev/null +++ b/src/components/Shop/shop.jsx @@ -0,0 +1,22 @@ +import React from "react"; +import ShopSidebar from "../Shop-sidebar/shop-sidebar"; +import ShopStore from "../Shop-store/shop-store"; + +const Shop = () => { + return ( + <section className="shop section-padding"> + <div className="container"> + <div className="row"> + <div className="col-lg-3"> + <ShopSidebar /> + </div> + <div className="col-lg-9"> + <ShopStore /> + </div> + </div> + </div> + </section> + ); +}; + +export default Shop; diff --git a/src/components/Showcases-full-screen-circle-slide/showcases-full-screen-circle-slide.jsx b/src/components/Showcases-full-screen-circle-slide/showcases-full-screen-circle-slide.jsx new file mode 100644 index 0000000..c1fa041 --- /dev/null +++ b/src/components/Showcases-full-screen-circle-slide/showcases-full-screen-circle-slide.jsx @@ -0,0 +1,151 @@ +import React from "react"; +import Link from "next/link"; +import { Swiper, SwiperSlide } from "swiper/react"; +import ShowcassesFullScreenData from "../../data/showcases-full-screen-slider.json"; +import SwiperCore, { Navigation, Parallax, Mousewheel } from "swiper"; + +import "swiper/css"; +import "swiper/css/navigation"; +import "swiper/css/mousewheel"; + +SwiperCore.use([Navigation, Parallax, Mousewheel]); + +const ShowcasesFullScreenCircleSlide = () => { + const [load, setLoad] = React.useState(true); + React.useEffect(() => { + setTimeout(() => { + setLoad(false); + }); + }, []); + + const navigationPrevRef = React.useRef(null); + const navigationNextRef = React.useRef(null); + return ( + <header className="slider circle-slide showcase-carus"> + <div id="content-carousel-container-unq-1" className="swiper-container"> + {!load ? ( + <Swiper + speed={1000} + mousewheel={true} + parallax={true} + centeredSlides={true} + slidesPerView={1} + autoplay={{ + delay: 2500, + disableOnInteraction: false, + }} + spaceBetween={500} + navigation={{ + prevEl: navigationPrevRef.current, + nextEl: navigationNextRef.current, + }} + onBeforeInit={(swiper) => { + swiper.params.navigation.prevEl = navigationPrevRef.current; + swiper.params.navigation.nextEl = navigationNextRef.current; + }} + onSwiper={(swiper) => { + setTimeout(() => { + for (var i = 0; i < swiper.slides.length; i++) { + swiper.slides[i].childNodes[0].setAttribute( + "data-swiper-parallax", + 0.75 * swiper.width + ); + } + + swiper.params.navigation.prevEl = navigationPrevRef.current; + swiper.params.navigation.nextEl = navigationNextRef.current; + + swiper.navigation.destroy(); + swiper.navigation.init(); + swiper.navigation.update(); + }); + }} + className="swiper-wrapper" + breakpoints={{ + 0: { + spaceBetween: 0, + }, + 640: { + spaceBetween: 0, + }, + 768: { + spaceBetween: 30, + }, + 1024: { + spaceBetween: 500, + }, + }} + > + {ShowcassesFullScreenData.map((slide) => ( + <SwiperSlide key={slide.id} className="swiper-slide"> + <div className="full-width"> + <div + className="bg-img valign" + style={{ backgroundImage: `url(${slide.image})` }} + data-overlay-dark="1" + > + <div className="caption ontop valign"> + <div className="o-hidden"> + <h1 data-swiper-parallax="-2000"> + <Link + href={`/project-details2/project-details2-dark`} + > + <a> + <div className="stroke">{slide.title.first}</div> + <span>{slide.title.second}</span> + </a> + </Link> + </h1> + </div> + </div> + <div className="copy-cap valign"> + <div className="cap"> + <h1 data-swiper-parallax="-2000"> + <Link + href={`/project-details2/project-details2-dark`} + > + <a> + <div className="stroke">{slide.title.first}</div> + <span>{slide.title.second}</span> + </a> + </Link> + </h1> + </div> + </div> + </div> + </div> + </SwiperSlide> + ))} + </Swiper> + ) : null} + </div> + + <div className="txt-botm"> + <div + ref={navigationNextRef} + className="swiper-button-next swiper-nav-ctrl next-ctrl cursor-pointer" + > + <div> + <span>Next Slide</span> + </div> + <div> + <i className="fas fa-chevron-right"></i> + </div> + </div> + <div + ref={navigationPrevRef} + className="swiper-button-prev swiper-nav-ctrl prev-ctrl cursor-pointer" + > + <div> + <i className="fas fa-chevron-left"></i> + </div> + <div> + <span>Prev Slide</span> + </div> + </div> + </div> + </header> + ); +}; + +export default ShowcasesFullScreenCircleSlide; diff --git a/src/components/Showcases-full-screen/showcases-full-screen.jsx b/src/components/Showcases-full-screen/showcases-full-screen.jsx new file mode 100644 index 0000000..bf053f2 --- /dev/null +++ b/src/components/Showcases-full-screen/showcases-full-screen.jsx @@ -0,0 +1,160 @@ +import React from "react"; +import Link from "next/link"; +import { Swiper, SwiperSlide } from "swiper/react"; +import ShowcassesFullScreenData from "../../data/showcases-full-screen-slider.json"; +import SwiperCore, { + Navigation, + Pagination, + Parallax, + Mousewheel, +} from "swiper"; + +import "swiper/css"; +import "swiper/css/pagination"; +import "swiper/css/navigation"; +import "swiper/css/mousewheel"; +import removeSlashFromPagination from "../../common/removeSlashpagination"; + +SwiperCore.use([Navigation, Pagination, Parallax, Mousewheel]); + +const ShowcasesFullScreen = () => { + const [load, setLoad] = React.useState(true); + React.useEffect(() => { + removeSlashFromPagination() + setTimeout(() => { + setLoad(false); + }); + }, []); + + const navigationPrevRef = React.useRef(null); + const navigationNextRef = React.useRef(null); + const paginationRef = React.useRef(null); + return ( + <header className="slider showcase-full"> + <div className="swiper-container parallax-slider"> + {!load ? ( + <Swiper + speed={1000} + mousewheel={true} + parallax={true} + navigation={{ + prevEl: navigationPrevRef.current, + nextEl: navigationNextRef.current, + }} + pagination={{ + clickable: true, + el: paginationRef.current, + }} + onBeforeInit={(swiper) => { + swiper.params.navigation.prevEl = navigationPrevRef.current; + swiper.params.navigation.nextEl = navigationNextRef.current; + swiper.params.pagination.el = paginationRef.current; + }} + onSwiper={(swiper) => { + setTimeout(() => { + for (var i = 0; i < swiper.slides.length; i++) { + swiper.slides[i].childNodes[0].setAttribute( + "data-swiper-parallax", + 0.75 * swiper.width + ); + } + + swiper.params.navigation.prevEl = navigationPrevRef.current; + swiper.params.navigation.nextEl = navigationNextRef.current; + + swiper.params.pagination.el = paginationRef.current; + + swiper.navigation.destroy(); + swiper.navigation.init(); + swiper.navigation.update(); + + swiper.pagination.destroy(); + swiper.pagination.init(); + swiper.pagination.update(); + }); + }} + className="swiper-wrapper" + slidesPerView={1} + > + {ShowcassesFullScreenData.map((slide) => ( + <SwiperSlide key={slide.id} className="swiper-slide"> + <div + className="bg-img valign" + style={{ backgroundImage: `url(${slide.image})` }} + data-overlay-dark="4" + > + <div className="container"> + <div className="row"> + <div className="col-lg-12"> + <div className="caption"> + <h1> + <Link + href={`/project-details2/project-details2-dark`} + > + <a> + <div + className="stroke" + data-swiper-parallax="-2000" + > + {slide.title.first} + </div> + <span data-swiper-parallax="-5000"> + {slide.title.second} + </span> + </a> + </Link> + <div className="bord"></div> + </h1> + <div className="discover"> + <Link + href={`/works/works-dark`} + > + <a> + <span> + Explore <br /> More + </span> + </a> + </Link> + </div> + </div> + </div> + </div> + </div> + </div> + </SwiperSlide> + ))} + </Swiper> + ) : null} + </div> + + <div className="txt-botm"> + <div + ref={navigationNextRef} + className="swiper-button-next swiper-nav-ctrl next-ctrl cursor-pointer" + > + <div> + <span>Next Slide</span> + </div> + <div> + <i className="fas fa-chevron-right"></i> + </div> + </div> + <div + ref={navigationPrevRef} + className="swiper-button-prev swiper-nav-ctrl prev-ctrl cursor-pointer" + > + <div> + <i className="fas fa-chevron-left"></i> + </div> + <div> + <span>Prev Slide</span> + </div> + </div> + + <div className="swiper-pagination dots" ref={paginationRef}></div> + </div> + </header> + ); +}; + +export default ShowcasesFullScreen; diff --git a/src/components/Showcases-grid/Showcases-grid.jsx b/src/components/Showcases-grid/Showcases-grid.jsx new file mode 100644 index 0000000..6c091a2 --- /dev/null +++ b/src/components/Showcases-grid/Showcases-grid.jsx @@ -0,0 +1,136 @@ +import React from "react"; +import Link from "next/link"; +import { Swiper, SwiperSlide } from "swiper/react"; +import ShowcassesFullScreenData from "../../data/showcases-full-screen-slider.json"; +import SwiperCore, { + Navigation, + Pagination, + Parallax, + Mousewheel, +} from "swiper"; + +import "swiper/css"; +import "swiper/css/pagination"; +import "swiper/css/navigation"; +import "swiper/css/mousewheel"; +import tooltipEffect from "../../common/tooltipEffect"; + +SwiperCore.use([Navigation, Pagination, Parallax, Mousewheel]); + +const ShowcasesGrid = () => { + const [load, setLoad] = React.useState(true); + React.useEffect(() => { + setTimeout(() => { + setLoad(false); + tooltipEffect(); + }, 1000); + }, []); + + const navigationPrevRef = React.useRef(null); + const navigationNextRef = React.useRef(null); + const paginationRef = React.useRef(null); + return ( + <header className="slider showcase-grid"> + <div id="content-carousel-container-unq-1" className="swiper-container"> + {!load ? ( + <Swiper + speed={1000} + mousewheel={true} + autoplay={{ + delay: 2500, + disableOnInteraction: false, + }} + loop={true} + spaceBetween={30} + navigation={{ + prevEl: navigationPrevRef.current, + nextEl: navigationNextRef.current, + }} + breakpoints={{ + 0: { + slidesPerView: 1, + }, + 640: { + slidesPerView: 2, + }, + 768: { + slidesPerView: 2, + }, + 1024: { + slidesPerView: 4, + }, + }} + onBeforeInit={(swiper) => { + swiper.params.navigation.prevEl = navigationPrevRef.current; + swiper.params.navigation.nextEl = navigationNextRef.current; + }} + onSwiper={(swiper) => { + setTimeout(() => { + for (var i = 0; i < swiper.slides.length; i++) { + swiper.slides[i].childNodes[0].setAttribute( + "data-swiper-parallax", + 0.75 * swiper.width + ); + } + + swiper.params.navigation.prevEl = navigationPrevRef.current; + swiper.params.navigation.nextEl = navigationNextRef.current; + + swiper.navigation.destroy(); + swiper.navigation.init(); + swiper.navigation.update(); + }); + }} + className="swiper-wrapper" + slidesPerView={4} + > + {ShowcassesFullScreenData.map((slide) => ( + <SwiperSlide key={slide.id} className="swiper-slide"> + <Link passHref href={`/project-details2/project-details2-dark`}> + <div + className="bg-img" + style={{ + backgroundImage: `url(${slide.image})`, + }} + data-tooltip-tit={ + slide.title.first + " " + slide.title.second + } + data-tooltip-sub={slide.sub} + ></div> + </Link> + </SwiperSlide> + ))} + </Swiper> + ) : null} + </div> + <div className="txt-botm"> + <div + ref={navigationNextRef} + className="swiper-button-next swiper-nav-ctrl next-ctrl cursor-pointer" + > + <div> + <span>Next Slide</span> + </div> + <div> + <i className="fas fa-chevron-right"></i> + </div> + </div> + <div + ref={navigationPrevRef} + className="swiper-button-prev swiper-nav-ctrl prev-ctrl cursor-pointer" + > + <div> + <i className="fas fa-chevron-left"></i> + </div> + <div> + <span>Prev Slide</span> + </div> + </div> + + <div className="swiper-pagination dots" ref={paginationRef}></div> + </div> + </header> + ); +}; + +export default ShowcasesGrid; diff --git a/src/components/Skills-circle/skills-circle.jsx b/src/components/Skills-circle/skills-circle.jsx new file mode 100644 index 0000000..e8d631b --- /dev/null +++ b/src/components/Skills-circle/skills-circle.jsx @@ -0,0 +1,71 @@ +import React from "react"; +import { CircularProgressbar, buildStyles } from "react-circular-progressbar"; +import "react-circular-progressbar/dist/styles.css"; + +const SkillsCircle = ({ from, theme }) => { + const cpStyle = { + path: { + stroke: "rgb(18, 194, 233)", + }, + trail: { + stroke: theme ? (theme == "dark" ? "#0f1013" : "#e5e5e5") : "", + }, + text: { + fill: theme ? (theme == "dark" ? "#ffffff" : "#4e4e4e") : "", + // Text size + fontSize: "16px", + }, + }; + return ( + <section + className={`skills-circle pt-50 pb-50 ${ + from ? (from === "aboutPage" ? "sub-bg" : "") : "" + }`} + > + <div className="container"> + <div className="row"> + <div className="col-lg-7"> + <div className=""> + <div className="row"> + <div className="col-md-6"> + <div className="item wow fadeInLeft" data-wow-delay=".6"> + <div className="skill"> + <CircularProgressbar + value={90} + strokeWidth={2} + text={`${90}%`} + styles={cpStyle} + /> + </div> + <div className="cont"> + <span>Project</span> + <h6>Consulting</h6> + </div> + </div> + </div> + <div className="col-md-6"> + <div className="item wow fadeInLeft" data-wow-delay=".3"> + <div className="skill"> + <CircularProgressbar + value={75} + strokeWidth={2} + text={`${75}%`} + styles={cpStyle} + /> + </div> + <div className="cont"> + <span>App</span> + <h6>Development</h6> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default SkillsCircle; diff --git a/src/components/Split/index.jsx b/src/components/Split/index.jsx new file mode 100644 index 0000000..d1096d6 --- /dev/null +++ b/src/components/Split/index.jsx @@ -0,0 +1,20 @@ +import React from "react"; + +class Split extends React.Component { + target = React.createRef(); + + split = () => { + if (this.target.current) { + Splitting({ target: this.target.current }); + } + }; + + componentDidMount = this.split; + componentDidUpdate = this.split; + + render() { + return <div ref={this.target}>{this.props.children}</div>; + } +} + +export default Split; diff --git a/src/components/Statistics/statistics.jsx b/src/components/Statistics/statistics.jsx new file mode 100644 index 0000000..bcc6dc2 --- /dev/null +++ b/src/components/Statistics/statistics.jsx @@ -0,0 +1,68 @@ +import React from "react"; + +const Statistics = ({ LightTheme }) => { + return ( + <section className="serv-block section-padding"> + <div className="container"> + <div className="row"> + <div className="col-lg-6 valign"> + <div className="content md-mb50"> + <h6 className="stit mb-30"> + <span className="left"></span> Company Statistics + </h6> + <h2 className="mb-30"> + We’re Professional Agency and We’ve Lot’s of Goods Achievements + </h2> + <div className="app-sta"> + <div className="row"> + <div className="col-sm-6"> + <div className="item mb-30"> + <span className="icon pe-7s-user"></span> + <h3>756+</h3> + <p>Saticfied Clents</p> + </div> + </div> + <div className="col-sm-6"> + <div className="item mb-30"> + <span className="icon pe-7s-umbrella"></span> + <h3>38+</h3> + <p>Years Of Experience</p> + </div> + </div> + <div className="col-sm-6"> + <div className="item"> + <span className="icon pe-7s-global"></span> + <h3>5k+</h3> + <p>Global Clients</p> + </div> + </div> + <div className="col-sm-6"> + <div className="item"> + <span className="icon pe-7s-anchor"></span> + <h3>47+</h3> + <p>Expert Team Member</p> + </div> + </div> + </div> + </div> + </div> + </div> + <div className="col-lg-5 offset-lg-1"> + <div className="serv-img"> + <img + src={ + LightTheme + ? "/img/mobile-app/app-img/light/s2.png" + : "/img/mobile-app/app-img/s2.png" + } + alt="" + /> + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default Statistics; diff --git a/src/components/Team/team.jsx b/src/components/Team/team.jsx new file mode 100644 index 0000000..567d1fa --- /dev/null +++ b/src/components/Team/team.jsx @@ -0,0 +1,525 @@ +/* eslint-disable @next/next/no-img-element */ +import React from "react"; +import teamSkillsProgress from "../../common/teamSkillsProgress"; +import tooltipEffect from "../../common/tooltipEffect"; +import teamsDate from "../../data/sections/team.json"; + +const Team = () => { + React.useEffect(() => { + teamSkillsProgress(); + setTimeout(() => { + tooltipEffect(); + }, 1000); + }, []); + return ( + <section className="team section-padding"> + <div className="container"> + <div className="row justify-content-center"> + <div className="col-lg-8 col-md-10"> + <div className="sec-head text-center"> + <h6 className="wow fadeIn" data-wow-delay=".5s"> + Our Team + </h6> + <h3 className="wow color-font"> + Our team will simplify business setup in the UAE + </h3> + </div> + </div> + </div> + </div> + <div className="container-fluid"> + <div className="row"> + <div className="col-lg-3 col-md-6"> + <div className="item cir md-mb50"> + <div className="img"> + <img src="/img/team/01.webp" alt="" /> + <div id="circle1"> + <svg + version="1.1" + xmlns="http://www.w3.org/2000/svg" + x="0px" + y="0px" + width="300px" + height="300px" + viewBox="0 0 300 300" + enableBackground="new 0 0 300 300" + xmlSpace="preserve" + > + <defs> + <path + id="circlePath1" + d=" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 " + /> + </defs> + <circle cx="150" cy="100" r="75" fill="none" /> + <g> + <use xlinkHref="#circlePath1" fill="none" /> + {/* <text fill="#fff"> + <textPath xlinkHref="#circlePath1"> + CEO Manager CEO Manager CEO Manager + </textPath> + </text> */} + </g> + </svg> + </div> + {/* <div className="info"> + <h6>Ryan Hicks</h6> + <span>Client Manager</span> + </div> */} + </div> + </div> + </div> + <div className="col-lg-3 col-md-6"> + <div className="item cir md-mb50"> + <div className="img"> + <img src="/img/team/02.webp" alt="" /> + <div id="circle2"> + <svg + version="1.1" + xmlns="http://www.w3.org/2000/svg" + x="0px" + y="0px" + width="300px" + height="300px" + viewBox="0 0 300 300" + enableBackground="new 0 0 300 300" + xmlSpace="preserve" + > + <defs> + <path + id="circlePath2" + d=" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 " + /> + </defs> + <circle cx="150" cy="100" r="75" fill="none" /> + <g> + <use xlinkHref="#circlePath2" fill="none" /> + {/* <text fill="#fff"> + <textPath xlinkHref="#circlePath2"> + Interior Designer Interior Designer Interior Designer + </textPath> + </text> */} + </g> + </svg> + </div> + {/* <div className="info"> + <h6>Ryan Hicks</h6> + <span>Client Manager</span> + </div> */} + </div> + </div> + </div> + <div className="col-lg-3 col-md-6"> + <div className="item cir sm-mb50"> + <div className="img"> + <img src="/img/team/03.webp" alt="" /> + <div id="circle3"> + <svg + version="1.1" + xmlns="http://www.w3.org/2000/svg" + x="0px" + y="0px" + width="300px" + height="300px" + viewBox="0 0 300 300" + enableBackground="new 0 0 300 300" + xmlSpace="preserve" + > + <defs> + <path + id="circlePath3" + d=" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 " + /> + </defs> + <circle cx="150" cy="100" r="75" fill="none" /> + <g> + <use xlinkHref="#circlePath3" fill="none" /> + {/* <text fill="#fff"> + <textPath xlinkHref="#circlePath3"> + Landscape Designer Landscape Designer Landscape + Designer + </textPath> + </text> */} + </g> + </svg> + </div> + {/* <div className="info"> + <h6>Ryan Hicks</h6> + <span>Client Manager</span> + </div> */} + </div> + </div> + </div> + <div className="col-lg-3 col-md-6"> + <div className="item cir"> + <div className="img"> + <img src="/img/team/04.webp" alt="" /> + <div id="circle4"> + <svg + version="1.1" + xmlns="http://www.w3.org/2000/svg" + x="0px" + y="0px" + width="300px" + height="300px" + viewBox="0 0 300 300" + enableBackground="new 0 0 300 300" + xmlSpace="preserve" + > + <defs> + <path + id="circlePath4" + d=" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 " + /> + </defs> + <circle cx="150" cy="100" r="75" fill="none" /> + <g> + <use xlinkHref="#circlePath4" fill="none" /> + {/* <text fill="#fff"> + <textPath xlinkHref="#circlePath4"> + Client Manager Client Manager Client Manager + </textPath> + </text> */} + </g> + </svg> + </div> + {/* <div className="info"> + <h6>Ryan Hicks</h6> + <span>Client Manager</span> + </div> */} + </div> + </div> + </div> + </div> + <div className="row"> + <div className="col-lg-3 col-md-6"> + <div className="item cir md-mb50"> + <div className="img"> + <img src="/img/team/05.webp" alt="" /> + <div id="circle1"> + <svg + version="1.1" + xmlns="http://www.w3.org/2000/svg" + x="0px" + y="0px" + width="300px" + height="300px" + viewBox="0 0 300 300" + enableBackground="new 0 0 300 300" + xmlSpace="preserve" + > + <defs> + <path + id="circlePath1" + d=" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 " + /> + </defs> + <circle cx="150" cy="100" r="75" fill="none" /> + <g> + <use xlinkHref="#circlePath1" fill="none" /> + {/* <text fill="#fff"> + <textPath xlinkHref="#circlePath1"> + CEO Manager CEO Manager CEO Manager + </textPath> + </text> */} + </g> + </svg> + </div> + {/* <div className="info"> + <h6>Ryan Hicks</h6> + <span>Client Manager</span> + </div> */} + </div> + </div> + </div> + <div className="col-lg-3 col-md-6"> + <div className="item cir md-mb50"> + <div className="img"> + <img src="/img/team/06.webp" alt="" /> + <div id="circle2"> + <svg + version="1.1" + xmlns="http://www.w3.org/2000/svg" + x="0px" + y="0px" + width="300px" + height="300px" + viewBox="0 0 300 300" + enableBackground="new 0 0 300 300" + xmlSpace="preserve" + > + <defs> + <path + id="circlePath2" + d=" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 " + /> + </defs> + <circle cx="150" cy="100" r="75" fill="none" /> + <g> + <use xlinkHref="#circlePath2" fill="none" /> + {/* <text fill="#fff"> + <textPath xlinkHref="#circlePath2"> + Interior Designer Interior Designer Interior Designer + </textPath> + </text> */} + </g> + </svg> + </div> + {/* <div className="info"> + <h6>Ryan Hicks</h6> + <span>Client Manager</span> + </div> */} + </div> + </div> + </div> + <div className="col-lg-3 col-md-6"> + <div className="item cir sm-mb50"> + <div className="img"> + <img src="/img/team/07.webp" alt="" /> + <div id="circle3"> + <svg + version="1.1" + xmlns="http://www.w3.org/2000/svg" + x="0px" + y="0px" + width="300px" + height="300px" + viewBox="0 0 300 300" + enableBackground="new 0 0 300 300" + xmlSpace="preserve" + > + <defs> + <path + id="circlePath3" + d=" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 " + /> + </defs> + <circle cx="150" cy="100" r="75" fill="none" /> + <g> + <use xlinkHref="#circlePath3" fill="none" /> + {/* <text fill="#fff"> + <textPath xlinkHref="#circlePath3"> + Landscape Designer Landscape Designer Landscape + Designer + </textPath> + </text> */} + </g> + </svg> + </div> + {/* <div className="info"> + <h6>Ryan Hicks</h6> + <span>Client Manager</span> + </div> */} + </div> + </div> + </div> + <div className="col-lg-3 col-md-6"> + <div className="item cir"> + <div className="img"> + <img src="/img/team/08.webp" alt="" /> + <div id="circle4"> + <svg + version="1.1" + xmlns="http://www.w3.org/2000/svg" + x="0px" + y="0px" + width="300px" + height="300px" + viewBox="0 0 300 300" + enableBackground="new 0 0 300 300" + xmlSpace="preserve" + > + <defs> + <path + id="circlePath4" + d=" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 " + /> + </defs> + <circle cx="150" cy="100" r="75" fill="none" /> + <g> + <use xlinkHref="#circlePath4" fill="none" /> + {/* <text fill="#fff"> + <textPath xlinkHref="#circlePath4"> + Client Manager Client Manager Client Manager + </textPath> + </text> */} + </g> + </svg> + </div> + {/* <div className="info"> + <h6>Ryan Hicks</h6> + <span>Client Manager</span> + </div> */} + </div> + </div> + </div> + </div> + <div className="row"> + <div className="col-lg-3 col-md-6"> + <div className="item cir md-mb50"> + <div className="img"> + <img src="/img/team/09.webp" alt="" /> + <div id="circle1"> + <svg + version="1.1" + xmlns="http://www.w3.org/2000/svg" + x="0px" + y="0px" + width="300px" + height="300px" + viewBox="0 0 300 300" + enableBackground="new 0 0 300 300" + xmlSpace="preserve" + > + <defs> + <path + id="circlePath1" + d=" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 " + /> + </defs> + <circle cx="150" cy="100" r="75" fill="none" /> + <g> + <use xlinkHref="#circlePath1" fill="none" /> + {/* <text fill="#fff"> + <textPath xlinkHref="#circlePath1"> + CEO Manager CEO Manager CEO Manager + </textPath> + </text> */} + </g> + </svg> + </div> + {/* <div className="info"> + <h6>Ryan Hicks</h6> + <span>Client Manager</span> + </div> */} + </div> + </div> + </div> + <div className="col-lg-3 col-md-6"> + <div className="item cir md-mb50"> + <div className="img"> + <img src="/img/team/10.webp" alt="" /> + <div id="circle2"> + <svg + version="1.1" + xmlns="http://www.w3.org/2000/svg" + x="0px" + y="0px" + width="300px" + height="300px" + viewBox="0 0 300 300" + enableBackground="new 0 0 300 300" + xmlSpace="preserve" + > + <defs> + <path + id="circlePath2" + d=" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 " + /> + </defs> + <circle cx="150" cy="100" r="75" fill="none" /> + <g> + <use xlinkHref="#circlePath2" fill="none" /> + {/* <text fill="#fff"> + <textPath xlinkHref="#circlePath2"> + Interior Designer Interior Designer Interior Designer + </textPath> + </text> */} + </g> + </svg> + </div> + {/* <div className="info"> + <h6>Ryan Hicks</h6> + <span>Client Manager</span> + </div> */} + </div> + </div> + </div> + <div className="col-lg-3 col-md-6"> + <div className="item cir sm-mb50"> + <div className="img"> + <img src="/img/team/11.webp" alt="" /> + <div id="circle3"> + <svg + version="1.1" + xmlns="http://www.w3.org/2000/svg" + x="0px" + y="0px" + width="300px" + height="300px" + viewBox="0 0 300 300" + enableBackground="new 0 0 300 300" + xmlSpace="preserve" + > + <defs> + <path + id="circlePath3" + d=" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 " + /> + </defs> + <circle cx="150" cy="100" r="75" fill="none" /> + <g> + <use xlinkHref="#circlePath3" fill="none" /> + {/* <text fill="#fff"> + <textPath xlinkHref="#circlePath3"> + Landscape Designer Landscape Designer Landscape + Designer + </textPath> + </text> */} + </g> + </svg> + </div> + {/* <div className="info"> + <h6>Ryan Hicks</h6> + <span>Client Manager</span> + </div> */} + </div> + </div> + </div> + <div className="col-lg-3 col-md-6"> + <div className="item cir"> + <div className="img"> + <img src="/img/team/12.webp" alt="" /> + <div id="circle4"> + <svg + version="1.1" + xmlns="http://www.w3.org/2000/svg" + x="0px" + y="0px" + width="300px" + height="300px" + viewBox="0 0 300 300" + enableBackground="new 0 0 300 300" + xmlSpace="preserve" + > + <defs> + <path + id="circlePath4" + d=" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 " + /> + </defs> + <circle cx="150" cy="100" r="75" fill="none" /> + <g> + <use xlinkHref="#circlePath4" fill="none" /> + {/* <text fill="#fff"> + <textPath xlinkHref="#circlePath4"> + Client Manager Client Manager Client Manager + </textPath> + </text> */} + </g> + </svg> + </div> + {/* <div className="info"> + <h6>Ryan Hicks</h6> + <span>Client Manager</span> + </div> */} + </div> + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default Team; diff --git a/src/components/Team2/team2.jsx b/src/components/Team2/team2.jsx new file mode 100644 index 0000000..5f7d916 --- /dev/null +++ b/src/components/Team2/team2.jsx @@ -0,0 +1,190 @@ +/* eslint-disable @next/next/no-img-element */ +import React from "react"; + +const Team2 = () => { + return ( + <section className="team section-padding"> + <div className="container"> + <div className="row justify-content-center"> + <div className="col-lg-8 col-md-10"> + <div className="sec-head text-center"> + <h6 className="wow fadeIn" data-wow-delay=".5s"> + Our Team + </h6> + <h3 className="wow color-font"> + An original team of creators designers & dreamers. + </h3> + </div> + </div> + </div> + </div> + <div className="container-fluid"> + <div className="row"> + <div className="col-lg-3 col-md-6"> + <div className="item cir md-mb50"> + <div className="img"> + <img src="/img/team/1.jpg" alt="" /> + <div id="circle1"> + <svg + version="1.1" + xmlns="http://www.w3.org/2000/svg" + x="0px" + y="0px" + width="300px" + height="300px" + viewBox="0 0 300 300" + enableBackground="new 0 0 300 300" + xmlSpace="preserve" + > + <defs> + <path + id="circlePath1" + d=" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 " + /> + </defs> + <circle cx="150" cy="100" r="75" fill="none" /> + <g> + <use xlinkHref="#circlePath1" fill="none" /> + <text fill="#fff"> + <textPath xlinkHref="#circlePath1"> + CEO Manager CEO Manager CEO Manager + </textPath> + </text> + </g> + </svg> + </div> + <div className="info"> + <h6>Ryan Hicks</h6> + <span>Client Manager</span> + </div> + </div> + </div> + </div> + <div className="col-lg-3 col-md-6"> + <div className="item cir md-mb50"> + <div className="img"> + <img src="/img/team/2.jpg" alt="" /> + <div id="circle2"> + <svg + version="1.1" + xmlns="http://www.w3.org/2000/svg" + x="0px" + y="0px" + width="300px" + height="300px" + viewBox="0 0 300 300" + enableBackground="new 0 0 300 300" + xmlSpace="preserve" + > + <defs> + <path + id="circlePath2" + d=" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 " + /> + </defs> + <circle cx="150" cy="100" r="75" fill="none" /> + <g> + <use xlinkHref="#circlePath2" fill="none" /> + <text fill="#fff"> + <textPath xlinkHref="#circlePath2"> + Interior Designer Interior Designer Interior Designer + </textPath> + </text> + </g> + </svg> + </div> + <div className="info"> + <h6>Ryan Hicks</h6> + <span>Client Manager</span> + </div> + </div> + </div> + </div> + <div className="col-lg-3 col-md-6"> + <div className="item cir sm-mb50"> + <div className="img"> + <img src="/img/team/3.jpg" alt="" /> + <div id="circle3"> + <svg + version="1.1" + xmlns="http://www.w3.org/2000/svg" + x="0px" + y="0px" + width="300px" + height="300px" + viewBox="0 0 300 300" + enableBackground="new 0 0 300 300" + xmlSpace="preserve" + > + <defs> + <path + id="circlePath3" + d=" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 " + /> + </defs> + <circle cx="150" cy="100" r="75" fill="none" /> + <g> + <use xlinkHref="#circlePath3" fill="none" /> + <text fill="#fff"> + <textPath xlinkHref="#circlePath3"> + Landscape Designer Landscape Designer Landscape + Designer + </textPath> + </text> + </g> + </svg> + </div> + <div className="info"> + <h6>Ryan Hicks</h6> + <span>Client Manager</span> + </div> + </div> + </div> + </div> + <div className="col-lg-3 col-md-6"> + <div className="item cir"> + <div className="img"> + <img src="/img/team/4.jpg" alt="" /> + <div id="circle4"> + <svg + version="1.1" + xmlns="http://www.w3.org/2000/svg" + x="0px" + y="0px" + width="300px" + height="300px" + viewBox="0 0 300 300" + enableBackground="new 0 0 300 300" + xmlSpace="preserve" + > + <defs> + <path + id="circlePath4" + d=" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 " + /> + </defs> + <circle cx="150" cy="100" r="75" fill="none" /> + <g> + <use xlinkHref="#circlePath4" fill="none" /> + <text fill="#fff"> + <textPath xlinkHref="#circlePath4"> + Client Manager Client Manager Client Manager + </textPath> + </text> + </g> + </svg> + </div> + <div className="info"> + <h6>Ryan Hicks</h6> + <span>Client Manager</span> + </div> + </div> + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default Team2; diff --git a/src/components/Team3/team3.jsx b/src/components/Team3/team3.jsx new file mode 100644 index 0000000..be047e2 --- /dev/null +++ b/src/components/Team3/team3.jsx @@ -0,0 +1,144 @@ +/* eslint-disable @next/next/no-img-element */ +import React from "react"; + +const Team3 = () => { + return ( + <section id="team-arch" className="team section-padding"> + <div className="container"> + <div className="row justify-content-center"> + <div className="col-lg-8 col-md-10"> + <div className="sec-head text-center"> + <h2 className="wow fadeIn" data-wow-delay=".3s"> + Our Team + </h2> + </div> + </div> + </div> + </div> + <div className="container"> + <div className="row"> + <div className="col-lg-4"> + <div className="item cir md-mb50"> + <div className="img"> + <img src="/img/team/a1.jpg" alt="" /> + <div id="circle1"> + <svg + version="1.1" + x="0px" + y="0px" + width="300px" + height="300px" + viewBox="0 0 300 300" + enableBackground="new 0 0 300 300" + xmlSpace="preserve" + > + <defs> + <path + id="circlePath1" + d=" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 " + /> + </defs> + <circle cx="150" cy="100" r="75" fill="none" /> + <g> + <use xlinkHref="#circlePath1" fill="none" /> + <text fill="#c5a47e" className="custom-font"> + <textPath xlinkHref="#circlePath1"> + CEO Manager - CEO Manager - CEO Manager - + </textPath> + </text> + </g> + </svg> + </div> + <div className="info"> + <h6 className="ls3">Ryan Hicks</h6> + <span className="main-color fw-600">Client Manager</span> + </div> + </div> + </div> + </div> + <div className="col-lg-4"> + <div className="item cir md-mb50"> + <div className="img"> + <img src="/img/team/a2.jpg" alt="" /> + <div id="circle2"> + <svg + version="1.1" + x="0px" + y="0px" + width="300px" + height="300px" + viewBox="0 0 300 300" + enableBackground="new 0 0 300 300" + xmlSpace="preserve" + > + <defs> + <path + id="circlePath2" + d=" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 " + /> + </defs> + <circle cx="150" cy="100" r="75" fill="none" /> + <g> + <use xlinkHref="#circlePath2" fill="none" /> + <text fill="#c5a47e" className="custom-font"> + <textPath xlinkHref="#circlePath2"> + Interior Designer Interior Designer Interior Designer + </textPath> + </text> + </g> + </svg> + </div> + <div className="info"> + <h6 className="ls3">Ryan Hicks</h6> + <span className="main-color fw-600">Client Manager</span> + </div> + </div> + </div> + </div> + <div className="col-lg-4"> + <div className="item cir sm-mb50"> + <div className="img"> + <img src="/img/team/a3.jpg" alt="" /> + <div id="circle3"> + <svg + version="1.1" + x="0px" + y="0px" + width="300px" + height="300px" + viewBox="0 0 300 300" + enableBackground="new 0 0 300 300" + xmlSpace="preserve" + > + <defs> + <path + id="circlePath3" + d=" M 150, 150 m -60, 0 a 60,60 0 0,1 120,0 a 60,60 0 0,1 -120,0 " + /> + </defs> + <circle cx="150" cy="100" r="75" fill="none" /> + <g> + <use xlinkHref="#circlePath3" fill="none" /> + <text fill="#c5a47e" className="custom-font"> + <textPath xlinkHref="#circlePath3"> + Landscape Designer Landscape Designer Landscape + Designer + </textPath> + </text> + </g> + </svg> + </div> + <div className="info"> + <h6 className="ls3">Ryan Hicks</h6> + <span className="main-color fw-600">Client Manager</span> + </div> + </div> + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default Team3 \ No newline at end of file diff --git a/src/components/Testimonials-arch/testimonials-arch.jsx b/src/components/Testimonials-arch/testimonials-arch.jsx new file mode 100644 index 0000000..63637b2 --- /dev/null +++ b/src/components/Testimonials-arch/testimonials-arch.jsx @@ -0,0 +1,197 @@ +/* eslint-disable @next/next/no-img-element */ +import React from "react"; +import Slider from "react-slick"; +import "slick-carousel/slick/slick.css"; +import "slick-carousel/slick/slick-theme.css"; + +class TestimonialsArch extends React.Component { + constructor(props) { + super(props); + } + renderArrows = () => { + return ( + <div className="arrows"> + <div className="container"> + <div + onClick={() => this.slider.slickNext()} + className="next cursor-pointer" + > + <span className="pe-7s-angle-right"></span> + </div> + <div + onClick={() => this.slider.slickPrev()} + className="prev cursor-pointer" + > + <span className="pe-7s-angle-left"></span> + </div> + </div> + </div> + ); + }; + render() { + return ( + <section + id="testimonials-arch" + className="testimonials section-padding position-re" + > + <div className="container"> + <div className="row justify-content-center"> + <div className="col-lg-8 col-md-10"> + <div className="sec-head text-center"> + <h2 className="wow fadeIn" data-wow-delay=".3s"> + Testimonials + </h2> + </div> + </div> + </div> + </div> + + <div className="container-fluid position-re"> + <div className="row wow fadeInUp" data-wow-delay=".5s"> + <div className="col-lg-12"> + <Slider + className="slic-item" + {...{ + ref: (c) => (this.slider = c), + dots: false, + infinite: true, + arrows: true, + centerMode: true, + autoplay: true, + rows: 1, + slidesToScroll: 1, + slidesToShow: 3, + responsive: [ + { + breakpoint: 1024, + settings: { + slidesToShow: 1, + centerMode: false, + }, + }, + { + breakpoint: 767, + settings: { + slidesToShow: 1, + centerMode: false, + }, + }, + { + breakpoint: 480, + settings: { + slidesToShow: 1, + centerMode: false, + }, + }, + ], + }} + > + <div className="item"> + <div className="info inf-lrg valign"> + <div className="cont"> + <div className="author"> + <div className="img"> + <img src="/img/clients/1.jpg" alt="" /> + </div> + <h6 className="author-name color-font"> + Alex Regelman + </h6> + <span className="author-details"> + Co-founder, Colabrio + </span> + </div> + </div> + </div> + <div className="valign"> + <p className="fz-20 fw-200"> + I would highly recommend Vie Digital. I worked with the + team on an animation for our 'Click & + Collect' service. + </p> + </div> + </div> + <div className="item"> + <div className="info inf-lrg valign"> + <div className="cont"> + <div className="author"> + <div className="img"> + <img src="/img/clients/1.jpg" alt="" /> + </div> + <h6 className="author-name color-font"> + Alex Regelman + </h6> + <span className="author-details"> + Co-founder, Colabrio + </span> + </div> + </div> + </div> + <div className="valign"> + <p className="fz-20 fw-200"> + I would highly recommend Vie Digital. I worked with the + team on an animation for our 'Click & + Collect' service. + </p> + </div> + </div> + <div className="item"> + <div className="info inf-lrg valign"> + <div className="cont"> + <div className="author"> + <div className="img"> + <img src="/img/clients/1.jpg" alt="" /> + </div> + <h6 className="author-name color-font"> + Alex Regelman + </h6> + <span className="author-details"> + Co-founder, Colabrio + </span> + </div> + </div> + </div> + <div className="valign"> + <p className="fz-20 fw-200"> + I would highly recommend Vie Digital. I worked with the + team on an animation for our 'Click & + Collect' service. + </p> + </div> + </div> + <div className="item"> + <div className="info inf-lrg valign"> + <div className="cont"> + <div className="author"> + <div className="img"> + <img src="/img/clients/1.jpg" alt="" /> + </div> + <h6 className="author-name color-font"> + Alex Regelman + </h6> + <span className="author-details"> + Co-founder, Colabrio + </span> + </div> + </div> + </div> + <div className="valign"> + <p className="fz-20 fw-200"> + I would highly recommend Vie Digital. I worked with the + team on an animation for our 'Click & + Collect' service. + </p> + </div> + </div> + </Slider> + </div> + </div> + {this.renderArrows()} + </div> + <div className="line-v top"></div> + <div className="line-v bottom"></div> + </section> + ); + } +} + +export default TestimonialsArch; diff --git a/src/components/Testimonials/testimonials.jsx b/src/components/Testimonials/testimonials.jsx new file mode 100644 index 0000000..a3ab524 --- /dev/null +++ b/src/components/Testimonials/testimonials.jsx @@ -0,0 +1,170 @@ +import React, { useEffect, useState } from "react"; +import { Swiper, SwiperSlide } from "swiper/react"; +import SwiperCore, { Pagination, Parallax } from "swiper"; + +import "swiper/css"; +import "swiper/css/pagination"; +SwiperCore.use([Pagination, Parallax]); + +const Testimonials = () => { + const [load, setLoad] = useState(false); + useEffect(() => { + setLoad(true); + }, [load]); + const paginationRef = React.useRef(null); + return ( + <section className="app-testim section-padding bg-gray"> + <div className="container"> + <div className="row justify-content-center"> + <div className="col-lg-7 col-md-10"> + <div className="s-head text-center mb-80"> + <h6 className="stit mb-30"> + <span className="left"></span> Clients Feedback + <span className="right"></span> + </h6> + <h2>Valuable Clinets Feedback About Our Services</h2> + </div> + </div> + </div> + <div className="row"> + <div className="col-12"> + <div className="swiper-container"> + {load ? ( + <Swiper + slidesPerView={3} + spaceBetween={30} + speed={1000} + loop={true} + pagination={{ + clickable: true, + el: paginationRef.current, + }} + className="swiper-wrapper" + breakpoints={{ + 320: { + slidesPerView: 1, + spaceBetween: 0, + }, + 640: { + slidesPerView: 1, + spaceBetween: 0, + }, + 767: { + slidesPerView: 2, + centeredSlides: false, + }, + 991: { + slidesPerView: 3, + }, + }} + > + <SwiperSlide className="swiper-slide"> + <div className="item"> + <div className="icon mb-50"> + <img src="/img/mobile-app/qoute.png" alt="" /> + </div> + <div className="text"> + <p> + unde omnis iste natus error sit voluptatem accusantium + dolore laudantium totam rem aperiam eaqusa quae abillo + inventore veritatis architect beatae vitae dicta + ecabo. + </p> + </div> + <div className="info"> + <div className="img"> + <img src="/img/mobile-app/clients/1.png" alt="" /> + </div> + <div className="cont"> + <h6 className="mb-10">William Glenn</h6> + <span>Senior Manager</span> + </div> + </div> + </div> + </SwiperSlide> + <SwiperSlide className="swiper-slide"> + <div className="item"> + <div className="icon mb-50"> + <img src="/img/mobile-app/qoute.png" alt="" /> + </div> + <div className="text"> + <p> + unde omnis iste natus error sit voluptatem accusantium + dolore laudantium totam rem aperiam eaqusa quae abillo + inventore veritatis architect beatae vitae dicta + ecabo. + </p> + </div> + <div className="info"> + <div className="img"> + <img src="/img/mobile-app/clients/2.png" alt="" /> + </div> + <div className="cont"> + <h6 className="mb-10">John R. Gordon</h6> + <span>Senior Manager</span> + </div> + </div> + </div> + </SwiperSlide> + <SwiperSlide className="swiper-slide"> + <div className="item"> + <div className="icon mb-50"> + <img src="/img/mobile-app/qoute.png" alt="" /> + </div> + <div className="text"> + <p> + unde omnis iste natus error sit voluptatem accusantium + dolore laudantium totam rem aperiam eaqusa quae abillo + inventore veritatis architect beatae vitae dicta + ecabo. + </p> + </div> + <div className="info"> + <div className="img"> + <img src="/img/mobile-app/clients/3.png" alt="" /> + </div> + <div className="cont"> + <h6 className="mb-10">Josesr B. Rink</h6> + <span>Senior Manager</span> + </div> + </div> + </div> + </SwiperSlide> + <SwiperSlide className="swiper-slide"> + <div className="item"> + <div className="icon mb-50"> + <img src="/img/mobile-app/qoute.png" alt="" /> + </div> + <div className="text"> + <p> + unde omnis iste natus error sit voluptatem accusantium + dolore laudantium totam rem aperiam eaqusa quae abillo + inventore veritatis architect beatae vitae dicta + ecabo. + </p> + </div> + <div className="info"> + <div className="img"> + <img src="/img/mobile-app/clients/1.png" alt="" /> + </div> + <div className="cont"> + <h6 className="mb-10">William Glenn</h6> + <span>Senior Manager</span> + </div> + </div> + </div> + </SwiperSlide> + </Swiper> + ) : ( + "" + )} + <div ref={paginationRef} className="swiper-pagination"></div> + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default Testimonials; diff --git a/src/components/Video-with-team/video-with-team.jsx b/src/components/Video-with-team/video-with-team.jsx new file mode 100644 index 0000000..8b0b725 --- /dev/null +++ b/src/components/Video-with-team/video-with-team.jsx @@ -0,0 +1,114 @@ +import React from "react"; +import ModalVideo from "react-modal-video"; +import "react-modal-video/css/modal-video.css"; + +const VideoWithTeam = () => { + const [isOpen, setOpen] = React.useState(false); + React.useEffect(() => { + console.clear(); + }, []); + return ( + <section + className="team-vid section-padding bg-dark pt-0" + data-overlay-dark="0" + > + <div className="container"> + <div className="row mb-20"> + <div className="col-12"> + <div + className="vid-img bg-img" + style={{backgroundImage: 'url(/img/mobile-app/bg-vid.jpg)'}} + data-overlay-dark="2" + > + {typeof window !== "undefined" && ( + <ModalVideo + channel="vimeo" + autoplay + isOpen={isOpen} + videoId="127203262" + onClose={() => setOpen(false)} + /> + )} + <a + href="https://vimeo.com/127203262" + className="vid valign" + onClick={(e) => { + e.preventDefault(); + setOpen(true); + }} + > + <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"> + <path d="M361 215C375.3 223.8 384 239.3 384 256C384 272.7 375.3 288.2 361 296.1L73.03 472.1C58.21 482 39.66 482.4 24.52 473.9C9.377 465.4 0 449.4 0 432V80C0 62.64 9.377 46.63 24.52 38.13C39.66 29.64 58.21 29.99 73.03 39.04L361 215z" /> + </svg> + </a> + </div> + </div> + </div> + + <div className="row justify-content-center mt-100"> + <div className="col-lg-7 col-md-10"> + <div className="s-head text-center mb-80"> + <h6 className="stit mb-30"> + <span className="left"></span> Meet Our Team + <span className="right"></span> + </h6> + <h2>We’ve Experience Team Member to Provide Solutions</h2> + </div> + </div> + </div> + + <div className="row"> + <div className="col-lg-3 col-md-6"> + <div className="item text-center md-mb50"> + <div className="img"> + <img src="/img/mobile-app/team/1.png" alt="" /> + </div> + <div className="info"> + <h5>Eddie E. Moseley</h5> + <p>CEO & Founder</p> + </div> + </div> + </div> + <div className="col-lg-3 col-md-6"> + <div className="item text-center md-mb50"> + <div className="img"> + <img src="/img/mobile-app/team/2.png" alt="" /> + </div> + <div className="info"> + <h5>John J. Schreffler</h5> + <p>Apps Designer</p> + </div> + </div> + </div> + <div className="col-lg-3 col-md-6"> + <div className="item text-center sm-mb50"> + <div className="img"> + <img src="/img/mobile-app/team/3.png" alt="" /> + </div> + <div className="info"> + <h5>Venessa M. Meister</h5> + <p>Web Developer</p> + </div> + </div> + </div> + <div className="col-lg-3 col-md-6"> + <div className="item text-center"> + <div className="img"> + <img src="/img/mobile-app/team/4.png" alt="" /> + </div> + <div className="info"> + <h5>Joel R. Funkhouser</h5> + <p>Senior Manager</p> + </div> + </div> + </div> + </div> + </div> + + <div className="circle-blur"></div> + <div className="circle-blur two"></div> + </section> + ); +}; + +export default VideoWithTeam; diff --git a/src/components/Video-with-testimonials/video-with-testimonials.jsx b/src/components/Video-with-testimonials/video-with-testimonials.jsx new file mode 100644 index 0000000..42b120c --- /dev/null +++ b/src/components/Video-with-testimonials/video-with-testimonials.jsx @@ -0,0 +1,150 @@ +/* eslint-disable @next/next/no-img-element */ +import React from "react"; +import Slider from "react-slick"; +import "slick-carousel/slick/slick.css"; +import "slick-carousel/slick/slick-theme.css"; +import ModalVideo from "react-modal-video"; +import "react-modal-video/css/modal-video.css"; + +const VideoWithTestimonials = () => { + const [isOpen, setOpen] = React.useState(false); + React.useEffect(() => { + console.clear(); + }, []); + const settings = { + dots: true, + infinite: true, + arrows: false, + speed: 500, + slidesToShow: 1, + slidesToScroll: 1, + }; + return ( + <section className="block-sec"> + <div + className="background bg-img pt-100 pb-0 parallaxie" + style={{ backgroundImage: `url(/img/bg-vid.jpg)` }} + data-overlay-dark="5" + > + <div className="container"> + <div className="row"> + <div className="col-lg-6"> + <div className="vid-area"> + <span className="text">Watch Video</span> + <div className="vid-icon"> + {typeof window !== "undefined" && ( + <ModalVideo + channel="vimeo" + isOpen={isOpen} + videoId="127203262" + onClose={() => setOpen(false)} + /> + )} + <a + className="vid" + onClick={(e) => { + e.preventDefault(); + setOpen(true); + }} + > + <div className="vid-butn"> + <span className="icon"> + <i className="fas fa-play"></i> + </span> + </div> + </a> + </div> + </div> + </div> + <div className="col-lg-5 offset-lg-1"> + <div className="testim-box"> + <div className="head-box"> + <h6 className="wow fadeIn" data-wow-delay=".5s"> + Our Clients + </h6> + <h4 className="wow fadeInLeft" data-wow-delay=".5s"> + What Client's Say? + </h4> + </div> + <Slider + {...settings} + className="slic-item wow fadeInUp" + data-wow-delay=".5s" + > + <div className="item"> + <p> + Nulla metus metus ullamcorper vel tincidunt sed euismod + nibh volutpat velit class aptent taciti sociosqu ad + litora. + </p> + <div className="info"> + <div className="img"> + <div className="img-box"> + <img src="/img/clients/1.jpg" alt="" /> + </div> + </div> + <div className="cont"> + <div className="author"> + <h6 className="author-name ">Alex Regelman</h6> + <span className="author-details"> + Co-founder, Colabrio + </span> + </div> + </div> + </div> + </div> + <div className="item"> + <p> + Nulla metus metus ullamcorper vel tincidunt sed euismod + nibh volutpat velit class aptent taciti sociosqu ad + litora. + </p> + <div className="info"> + <div className="img"> + <div className="img-box"> + <img src="/img/clients/2.jpg" alt="" /> + </div> + </div> + <div className="cont"> + <div className="author"> + <h6 className="author-name ">Alex Regelman</h6> + <span className="author-details"> + Co-founder, Colabrio + </span> + </div> + </div> + </div> + </div> + <div className="item"> + <p> + Nulla metus metus ullamcorper vel tincidunt sed euismod + nibh volutpat velit class aptent taciti sociosqu ad + litora. + </p> + <div className="info"> + <div className="img"> + <div className="img-box"> + <img src="/img/clients/3.jpg" alt="" /> + </div> + </div> + <div className="cont"> + <div className="author"> + <h6 className="author-name ">Alex Regelman</h6> + <span className="author-details"> + Co-founder, Colabrio + </span> + </div> + </div> + </div> + </div> + </Slider> + </div> + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default VideoWithTestimonials; diff --git a/src/components/Video2/video2.jsx b/src/components/Video2/video2.jsx new file mode 100644 index 0000000..8915c37 --- /dev/null +++ b/src/components/Video2/video2.jsx @@ -0,0 +1,57 @@ +import React from "react"; +import ModalVideo from "react-modal-video"; +import "react-modal-video/css/modal-video.css"; + +const Video2 = () => { + const [isOpen, setOpen] = React.useState(false); + React.useEffect(() => { + console.clear(); + }, []); + return ( + <section + className="video bg-img parallaxie" + style={{ backgroundImage: "url(/img/bg-vid.jpg)" }} + > + {typeof window !== "undefined" && ( + <ModalVideo + channel="vimeo" + autoplay + isOpen={isOpen} + videoId="127203262" + onClose={() => setOpen(false)} + /> + )} + <a + className="vid valign" + onClick={(e) => { + e.preventDefault(); + setOpen(true); + }} + > + <div className="vid-butn"> + <span className="icon"> + <i className="pe-7s-play"></i> + </span> + </div> + </a> + <div className="container"> + <div className="stauts"> + <div className="item"> + <h4> + 3<span>K</span> + + </h4> + <h6>Happy Clients</h6> + </div> + <div className="item"> + <h4> + 14<span>K</span> + + </h4> + <h6>Success Projects</h6> + </div> + </div> + </div> + </section> + ); +}; + +export default Video2; diff --git a/src/components/Works-header/works-header.jsx b/src/components/Works-header/works-header.jsx new file mode 100644 index 0000000..04f089a --- /dev/null +++ b/src/components/Works-header/works-header.jsx @@ -0,0 +1,37 @@ +import React from "react"; +import fadeWhenScroll from "../../common/fadeWhenScroll"; + +const WorksHeader = ({ sliderRef }) => { + React.useEffect(() => { + fadeWhenScroll(document.querySelectorAll(".fixed-slider .capt .parlx")); + }, []); + return ( + <header + ref={sliderRef} + className="works-header fixed-slider hfixd valign sub-bg" + > + <div className="container"> + <div className="row justify-content-center"> + <div className="col-lg-7 col-md-9 static"> + <div className="capt mt-50"> + <div className="parlx text-center"> + <h1 className="color-font">amazing works</h1> + <p> + Creativity involves breaking out of expected & repeatable + patterns in order to look at things in different way than ever + before. + </p> + </div> + + <div className="bactxt custom-font valign"> + <span className="full-width">Works</span> + </div> + </div> + </div> + </div> + </div> + </header> + ); +}; + +export default WorksHeader; diff --git a/src/components/Works-style1/works-style1.jsx b/src/components/Works-style1/works-style1.jsx new file mode 100644 index 0000000..d520375 --- /dev/null +++ b/src/components/Works-style1/works-style1.jsx @@ -0,0 +1,158 @@ +/* eslint-disable @next/next/no-img-element */ +import React from "react"; +import Link from "next/link"; +import tooltipEffect from "../../common/tooltipEffect"; + +const WorksStyle1 = () => { + React.useEffect(() => { + setTimeout(() => { + tooltipEffect(); + }, 1000); + }, []); + return ( + <section className="works section-padding pb-70"> + <h2 style={{display: 'none'}}> </h2> + <div className="container"> + <div className="row lg-space"> + <div className="col-lg-4 col-md-6"> + <div className="item"> + <Link href={`/project-details2/project-details2-dark`}> + <a> + <div + className="img" + data-tooltip-tit="Work image" + data-tooltip-sub="Design" + > + <img src="/img/portfolio/portfolio/1/1.jpg" alt="" /> + </div> + </a> + </Link> + </div> + </div> + <div className="col-lg-4 col-md-6 valign"> + <div className="item"> + <Link href={`/project-details2/project-details2-dark`}> + <a> + <div + className="img" + data-tooltip-tit="Work image" + data-tooltip-sub="Design" + > + <img src="/img/portfolio/portfolio/2/1.jpg" alt="" /> + </div> + </a> + </Link> + </div> + </div> + <div className="col-lg-4 col-md-6"> + <div className="item"> + <Link href={`/project-details2/project-details2-dark`}> + <a> + <div + className="img" + data-tooltip-tit="Work image" + data-tooltip-sub="Design" + > + <img src="/img/portfolio/portfolio/1/2.jpg" alt="" /> + </div> + </a> + </Link> + </div> + </div> + <div className="col-lg-4 col-md-6 valign"> + <div className="item"> + <Link href={`/project-details2/project-details2-dark`}> + <a> + <div + className="img" + data-tooltip-tit="Work image" + data-tooltip-sub="Design" + > + <img src="/img/portfolio/portfolio/2/3.jpg" alt="" /> + </div> + </a> + </Link> + </div> + </div> + <div className="col-lg-4 col-md-6"> + <div className="item"> + <Link href={`/project-details2/project-details2-dark`}> + <a> + <div + className="img" + data-tooltip-tit="Work image" + data-tooltip-sub="Design" + > + <img src="/img/portfolio/portfolio/1/3.jpg" alt="" /> + </div> + </a> + </Link> + </div> + </div> + <div className="col-lg-4 col-md-6 valign"> + <div className="item"> + <Link href={`/project-details2/project-details2-dark`}> + <a> + <div + className="img" + data-tooltip-tit="Work image" + data-tooltip-sub="Design" + > + <img src="/img/portfolio/portfolio/2/4.jpg" alt="" /> + </div> + </a> + </Link> + </div> + </div> + <div className="col-lg-4 col-md-6"> + <div className="item"> + <Link href={`/project-details2/project-details2-dark`}> + <a> + <div + className="img" + data-tooltip-tit="Work image" + data-tooltip-sub="Design" + > + <img src="/img/portfolio/portfolio/1/4.jpg" alt="" /> + </div> + </a> + </Link> + </div> + </div> + <div className="col-lg-4 col-md-6 valign"> + <div className="item"> + <Link href={`/project-details2/project-details2-dark`}> + <a> + <div + className="img" + data-tooltip-tit="Work image" + data-tooltip-sub="Design" + > + <img src="/img/portfolio/portfolio/2/5.jpg" alt="" /> + </div> + </a> + </Link> + </div> + </div> + <div className="col-lg-4 col-md-6"> + <div className="item"> + <Link href={`/project-details2/project-details2-dark`}> + <a> + <div + className="img" + data-tooltip-tit="Work image" + data-tooltip-sub="Design" + > + <img src="/img/portfolio/portfolio/1/5.jpg" alt="" /> + </div> + </a> + </Link> + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default WorksStyle1; diff --git a/src/components/Works-style2/works-style2.jsx b/src/components/Works-style2/works-style2.jsx new file mode 100644 index 0000000..3152d9a --- /dev/null +++ b/src/components/Works-style2/works-style2.jsx @@ -0,0 +1,226 @@ +/* eslint-disable @next/next/no-img-element */ +import React from "react"; +import Link from "next/link"; +import initIsotope from "../../common/initIsotope"; + +const WorksStyle2 = ({ grid, hideFilter, filterPosition }) => { + React.useEffect(() => { + setTimeout(() => { + initIsotope(); + }, 1000); + }, []); + return ( + <section + className={`${ + grid ? (grid === 3 ? "three-column" : null) : null + } portfolio section-padding pb-70`} + > + {!hideFilter && ( + <div className="container"> + <div className="row justify-content-center"> + <div className="col-lg-8 col-md-10"> + <div className="sec-head text-center"> + <h6 className="wow fadeIn" data-wow-delay=".5s"> + Portfolio + </h6> + <h3 className="wow color-font"> + Our Recent Web Design & <br /> Some Past Projects. + </h3> + </div> + </div> + </div> + </div> + )} + <div className={"container"}> + <div className="row"> + {!hideFilter && ( + <div + className={`filtering ${ + filterPosition === "center" + ? "text-center" + : filterPosition === "left" + ? "text-left" + : "text-right" + } col-12`} + > + <div className="filter"> + <span data-filter="*" className="active"> + All + </span> + <span data-filter=".brand">Branding</span> + <span data-filter=".web">Mobile App</span> + <span data-filter=".graphic">Creative</span> + </div> + </div> + )} + + <div className="gallery full-width"> + <div + className={`${ + grid === 3 + ? "col-lg-4 col-md-6" + : grid === 2 + ? "col-md-6" + : "col-12" + } items graphic wow fadeInUp`} + data-wow-delay=".4s" + > + <div className="item-img"> + <Link href={`/project-details2/project-details2-dark`}> + <a className="imago wow"> + <img src="/img/portfolio/portfolio/1/1.jpg" alt="image" /> + <div className="item-img-overlay"></div> + </a> + </Link> + </div> + <div className="cont"> + <h6>Creativity Demand</h6> + <span> + <Link href="/works3/works3-dark">Design</Link>, + <Link href="/works3/works3-dark">WordPress</Link> + </span> + </div> + </div> + + <div + className={`${ + grid === 3 + ? "col-lg-4 col-md-6" + : grid === 2 + ? "col-md-6" + : "col-12" + } items web wow fadeInUp`} + data-wow-delay=".4s" + > + <div className="item-img"> + <Link href={`/project-details2/project-details2-dark`}> + <a className="imago wow"> + <img src="/img/portfolio/portfolio/1/2.jpg" alt="image" /> + <div className="item-img-overlay"></div> + </a> + </Link> + </div> + <div className="cont"> + <h6>Through The Breaking</h6> + <span> + <Link href="/works3/works3-dark">Design</Link>, + <Link href="/works3/works3-dark">WordPress</Link> + </span> + </div> + </div> + + <div + className={`${ + grid === 3 + ? "col-lg-4 col-md-6" + : grid === 2 + ? "col-md-6" + : "col-12" + } items brand wow fadeInUp`} + data-wow-delay=".4s" + > + <div className="item-img"> + <Link href={`/project-details2/project-details2-dark`}> + <a className="imago wow"> + <img src="/img/portfolio/portfolio/1/3.jpg" alt="image" /> + <div className="item-img-overlay"></div> + </a> + </Link> + </div> + <div className="cont"> + <h6>Create With Creatives</h6> + <span> + <Link href="/works3/works3-dark">Design</Link>, + <Link href="/works3/works3-dark">WordPress</Link> + </span> + </div> + </div> + + <div + className={`${ + grid === 3 + ? "col-lg-4 col-md-6" + : grid === 2 + ? "col-md-6" + : "col-12" + } items graphic wow fadeInUp`} + data-wow-delay=".4s" + > + <div className="item-img"> + <Link href={`/project-details2/project-details2-dark`}> + <a className="imago wow"> + <img src="/img/portfolio/portfolio/1/4.jpg" alt="image" /> + <div className="item-img-overlay"></div> + </a> + </Link> + </div> + <div className="cont"> + <h6>Energies of Love</h6> + <span> + <Link href="/works3/works3-dark">Design</Link>, + <Link href="/works3/works3-dark">WordPress</Link> + </span> + </div> + </div> + + <div + className={`${ + grid === 3 + ? "col-lg-4 col-md-6" + : grid === 2 + ? "col-md-6" + : "col-12" + } items web wow fadeInUp`} + data-wow-delay=".4s" + > + <div className="item-img"> + <Link href={`/project-details2/project-details2-dark`}> + <a className="imago wow"> + <img src="/img/portfolio/portfolio/1/5.jpg" alt="image" /> + <div className="item-img-overlay"></div> + </a> + </Link> + </div> + <div className="cont"> + <h6>See It Yourself</h6> + <span> + <Link href="/works3/works3-dark">Design</Link>, + <Link href="/works3/works3-dark">WordPress</Link> + </span> + </div> + </div> + + <div + className={`${ + grid === 3 + ? "col-lg-4 col-md-6" + : grid === 2 + ? "col-md-6" + : "col-12" + } items brand wow fadeInUp`} + data-wow-delay=".4s" + > + <div className="item-img"> + <Link href={`/project-details2/project-details2-dark`}> + <a className="imago wow"> + <img src="/img/portfolio/portfolio/1/6.jpg" alt="image" /> + <div className="item-img-overlay"></div> + </a> + </Link> + </div> + <div className="cont"> + <h6>Blast From The Past</h6> + <span> + <Link href="/works3/works3-dark">Design</Link>, + <Link href="/works3/works3-dark">WordPress</Link> + </span> + </div> + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default WorksStyle2; diff --git a/src/components/Works-style3/works-style3.jsx b/src/components/Works-style3/works-style3.jsx new file mode 100644 index 0000000..823f753 --- /dev/null +++ b/src/components/Works-style3/works-style3.jsx @@ -0,0 +1,116 @@ +/* eslint-disable @next/next/no-img-element */ +import React from "react"; +import Link from "next/link"; +import initIsotope from "../../common/initIsotope"; + +const WorksStyle3 = () => { + React.useEffect(() => { + setTimeout(() => { + initIsotope(); + }, 1000); + }, []); + return ( + <section className="portfolio-cr section-padding pb-50"> + <div className="container"> + <div className="row"> + <div className="filtering text-center col-12"> + <div className="filter"> + <span data-filter="*" className="active"> + All + </span> + <span data-filter=".brand">Branding</span> + <span data-filter=".web">Mobile App</span> + <span data-filter=".graphic">Creative</span> + </div> + </div> + + <div className="gallery-mons full-width"> + <div className="items graphic wow fadeInUp" data-wow-delay=".4s"> + <div className="item-img"> + <Link + href={`/project-details2/project-details2-dark`} + > + <a className="imago wow"> + <img src="/img/portfolio/cr/1.jpg" alt="image" /> + <div className="item-img-overlay"></div> + </a> + </Link> + </div> + <div className="cont flex"> + <h6 className="color-font">Creative Design</h6> + <span> + <a href="#0">Graphic</a> + </span> + </div> + </div> + + <div className="items web brand wow fadeInUp" data-wow-delay=".4s"> + <div className="item-img"> + <Link + href={`/project-details2/project-details2-dark`} + > + <a className="imago wow"> + <img src="/img/portfolio/cr/2.jpg" alt="image" /> + <div className="item-img-overlay"></div> + </a> + </Link> + </div> + <div className="cont flex"> + <h6 className="color-font">Modern Design</h6> + <span> + <a href="#0">Brand</a>, <a href="#0">Web</a> + </span> + </div> + </div> + + <div + className="items width2 brand wow fadeInUp" + data-wow-delay=".4s" + > + <div className="item-img"> + <Link + href={`/project-details2/project-details2-dark`} + > + <a className="imago wow"> + <img src="/img/portfolio/cr/3.jpg" alt="image" /> + <div className="item-img-overlay"></div> + </a> + </Link> + </div> + <div className="cont"> + <h6 className="color-font">Creative Design</h6> + <span> + <a href="#0">Website</a> + </span> + </div> + </div> + + <div + className="items width2 graphic wow fadeInUp" + data-wow-delay=".4s" + > + <div className="item-img"> + <Link + href={`/project-details2/project-details2-dark`} + > + <a className="imago wow"> + <img src="/img/portfolio/cr/4.jpg" alt="image" /> + <div className="item-img-overlay"></div> + </a> + </Link> + </div> + <div className="cont"> + <h6 className="color-font">Modern Design</h6> + <span> + <a href="#0">Graphic</a> + </span> + </div> + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default WorksStyle3; diff --git a/src/components/Works-style4/works-style4.jsx b/src/components/Works-style4/works-style4.jsx new file mode 100644 index 0000000..4f036e5 --- /dev/null +++ b/src/components/Works-style4/works-style4.jsx @@ -0,0 +1,222 @@ +/* eslint-disable @next/next/no-img-element */ +import React from "react"; +import Link from "next/link"; +import initIsotope from "../../common/initIsotope"; + +const WorksStyle4 = () => { + React.useEffect(() => { + setTimeout(() => { + initIsotope(); + }, 1000); + }, []); + return ( + <section className="portfolio-frl section-padding pb-70"> + <div className="container"> + <div className="row justify-content-center"> + <div className="col-lg-8 col-md-10"> + <div className="sec-head text-center"> + <h6 className="wow fadeIn" data-wow-delay=".5s"> + Portfolio + </h6> + <h3 className="wow color-font"> + Our Recent Web Design & <br /> Some Past Projects. + </h3> + </div> + </div> + </div> + </div> + <div className="container"> + <div className="row"> + <div className="filtering col-12"> + <div className="filter wow fadeIn" data-wow-delay=".5s"> + <span data-filter="*" className="active"> + All + </span> + <span data-filter=".brand">Branding</span> + <span data-filter=".web">Mobile App</span> + <span data-filter=".graphic">Creative</span> + </div> + </div> + + <div className="gallery full-width"> + <div + className="col-md-6 items graphic lg-mr wow fadeInUp" + data-wow-delay=".4s" + > + <div className="item-img"> + <div className="cont"> + <h6>Creative Mobile App</h6> + <p>Ui / Ux creative mobile app design</p> + </div> + <Link href={`/project-details2/project-details2-dark`}> + <a className="rota"> + <img src="/img/portfolio/freelancer/1.jpg" alt="image" /> + <div className="item-img-overlay"></div> + </a> + </Link> + <div className="tags"> + <span> + <Link href="/works2/works2-dark">App</Link> + </span> + <span> + <Link href="/works2/works2-dark">Fitnes</Link> + </span> + <span> + <Link href="/works2/works2-dark">Creative</Link> + </span> + </div> + </div> + </div> + + <div + className="col-md-6 items web wow fadeInUp" + data-wow-delay=".4s" + > + <div className="item-img"> + <div className="cont"> + <h6>Creative Mobile App</h6> + <p>Ui / Ux creative mobile app design</p> + </div> + <Link href={`/project-details2/project-details2-dark`}> + <a className="rota"> + <img src="/img/portfolio/freelancer/2.jpg" alt="image" /> + <div className="item-img-overlay"></div> + </a> + </Link> + <div className="tags"> + <span> + <Link href="/works2/works2-dark">App</Link> + </span> + <span> + <Link href="/works2/works2-dark">Fitnes</Link> + </span> + <span> + <Link href="/works2/works2-dark">Creative</Link> + </span> + </div> + </div> + </div> + + <div + className="col-md-6 items web wow fadeInUp" + data-wow-delay=".4s" + > + <div className="item-img"> + <div className="cont"> + <h6>Creative Mobile App</h6> + <p>Ui / Ux creative mobile app design</p> + </div> + <Link href={`/project-details2/project-details2-dark`}> + <a className="rota"> + <img src="/img/portfolio/freelancer/3.jpg" alt="image" /> + <div className="item-img-overlay"></div> + </a> + </Link> + <div className="tags"> + <span> + <Link href="/works2/works2-dark">App</Link> + </span> + <span> + <Link href="/works2/works2-dark">Fitnes</Link> + </span> + <span> + <Link href="/works2/works2-dark">Creative</Link> + </span> + </div> + </div> + </div> + + <div + className="col-md-6 items web graphic wow fadeInUp" + data-wow-delay=".4s" + > + <div className="item-img"> + <div className="cont"> + <h6>Creative Mobile App</h6> + <p>Ui / Ux creative mobile app design</p> + </div> + <Link href={`/project-details2/project-details2-dark`}> + <a className="rota"> + <img src="/img/portfolio/freelancer/4.jpg" alt="image" /> + <div className="item-img-overlay"></div> + </a> + </Link> + <div className="tags"> + <span> + <Link href="/works2/works2-dark">App</Link> + </span> + <span> + <Link href="/works2/works2-dark">Fitnes</Link> + </span> + <span> + <Link href="/works2/works2-dark">Creative</Link> + </span> + </div> + </div> + </div> + + <div + className="col-md-6 items brand wow fadeInUp" + data-wow-delay=".4s" + > + <div className="item-img"> + <div className="cont"> + <h6>Creative Mobile App</h6> + <p>Ui / Ux creative mobile app design</p> + </div> + <Link href={`/project-details2/project-details2-dark`}> + <a className="rota"> + <img src="/img/portfolio/freelancer/5.jpg" alt="image" /> + <div className="item-img-overlay"></div> + </a> + </Link> + <div className="tags"> + <span> + <Link href="/works2/works2-dark">App</Link> + </span> + <span> + <Link href="/works2/works2-dark">Fitnes</Link> + </span> + <span> + <Link href="/works2/works2-dark">Creative</Link> + </span> + </div> + </div> + </div> + + <div + className="col-md-6 items brand wow fadeInUp" + data-wow-delay=".4s" + > + <div className="item-img"> + <div className="cont"> + <h6>Creative Mobile App</h6> + <p>Ui / Ux creative mobile app design</p> + </div> + <Link href={`/project-details2/project-details2-dark`}> + <a className="rota"> + <img src="/img/portfolio/freelancer/6.jpg" alt="image" /> + <div className="item-img-overlay"></div> + </a> + </Link> + <div className="tags"> + <span> + <Link href="/works2/works2-dark">App</Link> + </span> + <span> + <Link href="/works2/works2-dark">Fitnes</Link> + </span> + <span> + <Link href="/works2/works2-dark">Creative</Link> + </span> + </div> + </div> + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default WorksStyle4; diff --git a/src/components/Works-style5/works-style5.jsx b/src/components/Works-style5/works-style5.jsx new file mode 100644 index 0000000..1e89b0c --- /dev/null +++ b/src/components/Works-style5/works-style5.jsx @@ -0,0 +1,171 @@ +/* eslint-disable @next/next/no-img-element */ +import React from "react"; +import Link from "next/link"; +import initIsotope from "../../common/initIsotope"; + +const WorksStyle5 = () => { + React.useEffect(() => { + setTimeout(() => { + initIsotope(); + }, 1000); + }, []); + return ( + <section className="portfolio po-arch section-padding pb-70" id="po-arch"> + <div className="container"> + <div className="row justify-content-center"> + <div className="col-lg-8 col-md-10"> + <div className="sec-head text-center"> + <h2 className="wow fadeIn" data-wow-delay=".3s"> + Projects + </h2> + </div> + </div> + </div> + </div> + <div className="container"> + <div className="row"> + <div className="filtering col-12"> + <div className="filter custom-font wow fadeIn" data-wow-delay=".5s"> + <span data-filter="*" className="active"> + All + </span> + <span data-filter=".brand">Interior</span> + <span data-filter=".web">Architecture</span> + <span data-filter=".graphic">Residential</span> + </div> + </div> + + <div className="gallery full-width"> + <div + className="col-md-6 items graphic lg-mr wow fadeInUp" + data-wow-delay=".4s" + > + <div className="item-img"> + <Link href={`/project-details2/project-details2-dark`}> + <a className="imago wow"> + <img src="/img/arch/work/1.jpg" alt="image" /> + <div className="item-img-overlay"></div> + </a> + </Link> + </div> + <div className="cont"> + <h5>BUGANVILLA HOUSE</h5> + <span className="tags main-color custom-font"> + <Link href="/works/works-dark">Arch</Link>, + <Link href="/works/works-dark">Interior</Link> + </span> + </div> + </div> + + <div + className="col-md-6 items web wow fadeInUp" + data-wow-delay=".4s" + > + <div className="item-img"> + <Link href={`/project-details2/project-details2-dark`}> + <a className="imago wow"> + <img src="/img/arch/work/2.jpg" alt="image" /> + <div className="item-img-overlay"></div> + </a> + </Link> + </div> + <div className="cont"> + <h5>The Concept</h5> + <span className="tags main-color custom-font"> + <Link href="/works/works-dark">Arch</Link>, + <Link href="/works/works-dark">Interior</Link> + </span> + </div> + </div> + + <div + className="col-md-6 items web wow fadeInUp" + data-wow-delay=".4s" + > + <div className="item-img"> + <Link href={`/project-details2/project-details2-dark`}> + <a className="imago wow"> + <img src="/img/arch/work/5.jpg" alt="image" /> + <div className="item-img-overlay"></div> + </a> + </Link> + </div> + <div className="cont"> + <h5>Private House</h5> + <span className="tags main-color custom-font"> + <Link href="/works/works-dark">Arch</Link>, + <Link href="/works/works-dark">Interior</Link> + </span> + </div> + </div> + + <div + className="col-md-6 items web graphic wow fadeInUp" + data-wow-delay=".4s" + > + <div className="item-img"> + <Link href={`/project-details2/project-details2-dark`}> + <a className="imago wow"> + <img src="/img/arch/work/3.jpg" alt="image" /> + <div className="item-img-overlay"></div> + </a> + </Link> + </div> + <div className="cont"> + <h5>Floating House Messinia</h5> + <span className="tags main-color custom-font"> + <Link href="/works/works-dark">Arch</Link>, + <Link href="/works/works-dark">Interior</Link> + </span> + </div> + </div> + + <div + className="col-md-6 items brand wow fadeInUp" + data-wow-delay=".4s" + > + <div className="item-img"> + <Link href={`/project-details2/project-details2-dark`}> + <a className="imago wow"> + <img src="/img/arch/work/4.jpg" alt="image" /> + <div className="item-img-overlay"></div> + </a> + </Link> + </div> + <div className="cont"> + <h5>IN THE PINE FOREST</h5> + <span className="tags main-color custom-font"> + <Link href="/works/works-dark">Arch</Link>, + <Link href="/works/works-dark">Interior</Link> + </span> + </div> + </div> + + <div + className="col-md-6 items brand wow fadeInUp" + data-wow-delay=".4s" + > + <div className="item-img"> + <Link href={`/project-details2/project-details2-dark`}> + <a className="imago wow"> + <img src="/img/arch/work/6.jpg" alt="image" /> + <div className="item-img-overlay"></div> + </a> + </Link> + </div> + <div className="cont"> + <h5>VILLAS IN SOCHI</h5> + <span className="tags main-color custom-font"> + <Link href="/works/works-dark">Arch</Link>, + <Link href="/works/works-dark">Interior</Link> + </span> + </div> + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default WorksStyle5; diff --git a/src/components/Works/works.jsx b/src/components/Works/works.jsx new file mode 100644 index 0000000..cfffcf0 --- /dev/null +++ b/src/components/Works/works.jsx @@ -0,0 +1,121 @@ +import React from "react"; +import worksData from "../../data/sections/works.json"; +import { Swiper, SwiperSlide } from "swiper/react"; +// import Swiper core and required modules +import SwiperCore, { Autoplay, Pagination, Navigation } from "swiper"; +import Link from "next/link"; +import "swiper/css"; +import "swiper/css/pagination"; +import "swiper/css/navigation"; +SwiperCore.use([Autoplay, Pagination, Navigation]); + +const Works = () => { + const navigationPrevRef = React.useRef(null); + const navigationNextRef = React.useRef(null); + const [pageLoaded, setPageLoaded] = React.useState(false); + React.useEffect(() => { + setPageLoaded(true); + }, [pageLoaded]); + return ( + <section className="work-carousel metro position-re"> + <div className="container-fluid"> + <div className="row"> + <div className="col-lg-12 no-padding"> + <div className="swiper-container"> + <Swiper + className="swiper-wrapper" + slidesPerView={2} + centeredSlides={true} + loop={true} + navigation={{ + prevEl: navigationPrevRef.current, + nextEl: navigationNextRef.current, + }} + onBeforeInit={(swiper) => { + swiper.params.navigation.prevEl = navigationPrevRef.current; + swiper.params.navigation.nextEl = navigationNextRef.current; + }} + onSwiper={(swiper) => { + setTimeout(() => { + swiper.params.navigation.prevEl = navigationPrevRef.current; + swiper.params.navigation.nextEl = navigationNextRef.current; + + swiper.navigation.destroy(); + swiper.navigation.init(); + swiper.navigation.update(); + }); + }} + autoplay={{ + delay: 2500, + disableOnInteraction: false, + }} + speed={1000} + breakpoints={{ + 320: { + slidesPerView: 1, + spaceBetween: 0, + }, + 640: { + slidesPerView: 1, + spaceBetween: 0, + }, + 767: { + slidesPerView: 1, + spaceBetween: 0, + }, + 991: { + slidesPerView: 2, + }, + }} + > + {pageLoaded && + worksData.map((item, index) => ( + <SwiperSlide className="swiper-slide" key={item.id}> + <div + className="content wow noraidus fadeInUp" + data-wow-delay=".3s" + > + <div + className="item-img bg-img wow imago" + style={{ + backgroundImage: `url(${item.image})`, + }} + /> + <div className="cont"> + <h6 className="color-font"> + <a href="#0">{item.title}</a> + </h6> + <h4> + <Link + href={`/project-details2/project-details2-dark`} + > + {item.secTex} + </Link> + </h4> + </div> + </div> + </SwiperSlide> + ))} + </Swiper> + + <div + ref={navigationNextRef} + className="swiper-button-next swiper-nav-ctrl simp-next cursor-pointer" + > + <span className="simple-btn right">Next</span> + </div> + <div + ref={navigationPrevRef} + className="swiper-button-prev swiper-nav-ctrl simp-prev cursor-pointer" + > + <span className="simple-btn">Prev</span> + </div> + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default Works; diff --git a/src/components/Works2/works2.jsx b/src/components/Works2/works2.jsx new file mode 100644 index 0000000..e5e3866 --- /dev/null +++ b/src/components/Works2/works2.jsx @@ -0,0 +1,266 @@ +/* eslint-disable @next/next/no-css-tags */ +import Head from "next/head"; +import Link from "next/link"; +import React from "react"; +import { Swiper, SwiperSlide } from "swiper/react"; + +import SwiperCore, { Navigation } from "swiper"; + +import "swiper/css"; +import "swiper/css/navigation"; + +SwiperCore.use([Navigation]); + +const Works2 = ({ sliderRef }) => { + const [load, setLoad] = React.useState(true); + React.useEffect(() => { + setTimeout(() => { + setLoad(false); + }); + }, []); + + const navigationPrevRef = React.useRef(null); + const navigationNextRef = React.useRef(null); + + return ( + <> + <Head> + <link rel="stylesheet" href="/css/ionicons.min.css" /> + </Head> + <section className="work-carousel section-padding caroul position-re pb-0"> + <div className="container-fluid"> + <div className="row justify-content-center"> + <div className="col-lg-8 col-md-10"> + <div className="sec-head text-center"> + <h6 className="wow fadeIn" data-wow-delay=".5s"> + Latest Work + </h6> + <h3 className="wow color-font"> + Our Recent Web Design & <br /> Some Past Projects. + </h3> + </div> + </div> + </div> + <div className="row"> + <div className="col-lg-12 no-padding"> + <div className="swiper-container"> + <div className="swiper-container "> + {!load ? ( + <Swiper + speed={1000} + loop={true} + spaceBetween={0} + breakpoints={{ + 320: { + slidesPerView: 1, + spaceBetween: 0, + }, + 767: { + slidesPerView: 2, + spaceBetween: 0, + }, + 991: { + slidesPerView: 3, + spaceBetween: 0, + }, + 1024: { + slidesPerView: 4, + spaceBetween: 0, + }, + }} + navigation={{ + prevEl: navigationPrevRef.current, + nextEl: navigationNextRef.current, + }} + onBeforeInit={(swiper) => { + swiper.params.navigation.prevEl = + navigationPrevRef.current; + swiper.params.navigation.nextEl = + navigationNextRef.current; + }} + onSwiper={(swiper) => { + setTimeout(() => { + swiper.params.navigation.prevEl = + navigationPrevRef.current; + swiper.params.navigation.nextEl = + navigationNextRef.current; + + swiper.navigation.destroy(); + swiper.navigation.init(); + swiper.navigation.update(); + }); + }} + className="swiper-wrapper" + slidesPerView={1} + > + <SwiperSlide className="swiper-slide"> + <div + className="content wow fadeInUp" + data-wow-delay=".3s" + > + <div + className="item-img bg-img wow imago" + style={{ + backgroundImage: "url(/img/portfolio/curs/1.jpg)", + }} + ></div> + <div className="cont bgbox"> + <h6> + <Link + href={`/works2/works2-dark`} + > + <a>art & illustration</a> + </Link> + </h6> + <h4> + <Link + href={`/project-details2/project-details2-dark`} + > + <a>Innovation and Crafts.</a> + </Link> + </h4> + </div> + </div> + </SwiperSlide> + <SwiperSlide className="swiper-slide"> + <div + className="content wow fadeInUp" + data-wow-delay=".3s" + > + <div + className="item-img bg-img wow imago" + style={{ + backgroundImage: "url(/img/portfolio/curs/2.jpg)", + }} + ></div> + <div className="cont bgbox"> + <h6> + <Link + href={`/works2/works2-dark`} + > + <a>art & illustration</a> + </Link> + </h6> + <h4> + <Link + href={`/project-details2/project-details2-dark`} + > + <a>Inspiring new space.</a> + </Link> + </h4> + </div> + </div> + </SwiperSlide> + <SwiperSlide className="swiper-slide"> + <div + className="content wow fadeInUp" + data-wow-delay=".3s" + > + <div + className="item-img bg-img wow imago" + style={{ + backgroundImage: "url(/img/portfolio/curs/3.jpg)", + }} + ></div> + <div className="cont bgbox"> + <h6> + <Link + href={`/works2/works2-dark`} + > + <a>art & illustration</a> + </Link> + </h6> + <h4> + <Link + href={`/project-details2/project-details2-dark`} + > + <a>Natural plus modern.</a> + </Link> + </h4> + </div> + </div> + </SwiperSlide> + <SwiperSlide className="swiper-slide"> + <div + className="content wow fadeInUp" + data-wow-delay=".3s" + > + <div + className="item-img bg-img wow imago" + style={{ + backgroundImage: "url(/img/portfolio/curs/4.jpg)", + }} + ></div> + <div className="cont bgbox"> + <h6> + <Link + href={`/works2/works2-dark`} + > + <a>art & illustration</a> + </Link> + </h6> + <h4> + <Link + href={`/project-details2/project-details2-dark`} + > + <a>Innovation and Crafts.</a> + </Link> + </h4> + </div> + </div> + </SwiperSlide> + <SwiperSlide className="swiper-slide"> + <div + className="content wow fadeInUp" + data-wow-delay=".3s" + > + <div + className="item-img bg-img wow imago" + style={{ + backgroundImage: "url(/img/portfolio/curs/5.jpg)", + }} + ></div> + <div className="cont bgbox"> + <h6> + <Link + href={`/works2/works2-dark`} + > + <a>art & illustration</a> + </Link> + </h6> + <h4> + <Link + href={`/project-details2/project-details2-dark`} + > + <a>Inspiring new space.</a> + </Link> + </h4> + </div> + </div> + </SwiperSlide> + </Swiper> + ) : null} + + <div + ref={navigationNextRef} + className="swiper-button-next swiper-nav-ctrl next-ctrl cursor-pointer" + > + <i className="ion-ios-arrow-right"></i> + </div> + <div + ref={navigationPrevRef} + className="swiper-button-prev swiper-nav-ctrl prev-ctrl cursor-pointer" + > + <i className="ion-ios-arrow-left"></i> + </div> + </div> + </div> + </div> + </div> + </div> + </section> + </> + ); +}; + +export default Works2; diff --git a/src/components/Works3/works3.jsx b/src/components/Works3/works3.jsx new file mode 100644 index 0000000..14192d1 --- /dev/null +++ b/src/components/Works3/works3.jsx @@ -0,0 +1,236 @@ +/* eslint-disable @next/next/no-css-tags */ +/* eslint-disable @next/next/no-img-element */ +import React from "react"; +import Head from "next/head"; +import worksData from "../../data/sections/works.json"; +import { Swiper, SwiperSlide } from "swiper/react"; +// import Swiper core and required modules +import SwiperCore, { Autoplay, Pagination, Navigation } from "swiper"; +import Link from "next/link"; +import "swiper/css"; +import "swiper/css/pagination"; +import "swiper/css/navigation"; +SwiperCore.use([Autoplay, Pagination, Navigation]); + +const Works3 = () => { + const navigationPrevRef = React.useRef(null); + const navigationNextRef = React.useRef(null); + return ( + <> + <Head> + <link rel="stylesheet" href="/css/ionicons.min.css" /> + </Head> + <section className="work-carousel2 metro section-padding"> + <div className="container"> + <div className="row"> + <div className="col-lg-8 col-md-10"> + <div className="sec-head"> + <h6 className="wow fadeIn" data-wow-delay=".5s"> + Portfolio + </h6> + <h3 className="wow color-font"> + Our Recent Web Design & <br /> Some Past Projects. + </h3> + </div> + </div> + </div> + </div> + + <div className="container-fluid"> + <div className="row"> + <div className="col-lg-12 no-padding"> + <div className="swiper-container"> + <Swiper + className="swiper-wrapper" + slidesPerView={2} + centeredSlides={true} + autoplay={{ + delay: 2500, + disableOnInteraction: false, + }} + loop={true} + navigation={{ + prevEl: navigationPrevRef.current, + nextEl: navigationNextRef.current, + }} + onBeforeInit={(swiper) => { + swiper.params.navigation.prevEl = navigationPrevRef.current; + swiper.params.navigation.nextEl = navigationNextRef.current; + }} + onSwiper={(swiper) => { + setTimeout(() => { + swiper.params.navigation.prevEl = + navigationPrevRef.current; + swiper.params.navigation.nextEl = + navigationNextRef.current; + + swiper.navigation.destroy(); + swiper.navigation.init(); + swiper.navigation.update(); + }); + }} + speed={1000} + breakpoints={{ + 320: { + slidesPerView: 1, + spaceBetween: 0, + }, + 640: { + slidesPerView: 1, + spaceBetween: 0, + }, + 767: { + slidesPerView: 1, + spaceBetween: 0, + centeredSlides: false, + }, + 991: { + slidesPerView: 2, + }, + }} + > + <SwiperSlide className="swiper-slide"> + <div className="content"> + <div className="img"> + <span className="imgio"> + <span className="wow cimgio" data-delay="500"></span> + <img src="/img/portfolio/2.jpg" alt="" /> + </span> + </div> + <div className="cont"> + <h6> + {/* <Link href={`/works3/works3-dark`}> + </Link> */} + art & illustration + </h6> + <h4> + {/* <Link + href={`/project-details2/project-details2-dark`} + > */} + Inspiring new space + {/* </Link> */} + </h4> + </div> + </div> + </SwiperSlide> + <SwiperSlide className="swiper-slide"> + <div className="content"> + <div className="img"> + <span className="imgio"> + <span className="wow cimgio" data-delay="500"></span> + <img src="/img/portfolio/1.jpg" alt="" /> + </span> + </div> + <div className="cont"> + <h6> + {/* <Link href={`/works3/works3-dark`}> */} + art & illustration + {/* </Link> */} + </h6> + <h4> + {/* <Link + href={`/project-details2/project-details2-dark`} + > */} + Inspiring new space + {/* </Link> */} + </h4> + </div> + </div> + </SwiperSlide> + + <SwiperSlide className="swiper-slide"> + <div className="content"> + <div className="img"> + <span className="imgio"> + <span className="wow cimgio" data-delay="500"></span> + <img src="/img/portfolio/4.jpg" alt="" /> + </span> + </div> + <div className="cont"> + <h6> + {/* <Link href={`/works3/works3-dark`}> */} + art & illustration + {/* </Link> */} + </h6> + <h4> + {/* <Link + href={`/project-details2/project-details2-dark`} + > */} + Inspiring new space + {/* </Link> */} + </h4> + </div> + </div> + </SwiperSlide> + <SwiperSlide className="swiper-slide"> + <div className="content"> + <div className="img"> + <span className="imgio"> + <span className="wow cimgio" data-delay="500"></span> + <img src="/img/portfolio/5.jpg" alt="" /> + </span> + </div> + <div className="cont"> + <h6> + {/* <Link href={`/works3/works3-dark`}> + </Link> */} + art & illustration + </h6> + <h4> + {/* <Link + href={`/project-details2/project-details2-dark`} + > + </Link> */} + Inspiring new space + </h4> + </div> + </div> + </SwiperSlide> + <SwiperSlide className="swiper-slide"> + <div className="content"> + <div className="img"> + <span className="imgio"> + <span className="wow cimgio" data-delay="500"></span> + <img src="/img/portfolio/6.jpg" alt="" /> + </span> + </div> + <div className="cont"> + <h6> + {/* <Link href={`/works3/works3-dark`}> + </Link> */} + art & illustration + </h6> + <h4> + {/* <Link + href={`/project-details2/project-details2-dark`} + > + </Link> */} + Inspiring new space + </h4> + </div> + </div> + </SwiperSlide> + </Swiper> + + <div + ref={navigationNextRef} + className="swiper-button-next swiper-nav-ctrl next-ctrl cursor-pointer" + > + <i className="ion-ios-arrow-right"></i> + </div> + <div + ref={navigationPrevRef} + className="swiper-button-prev swiper-nav-ctrl prev-ctrl cursor-pointer" + > + <i className="ion-ios-arrow-left"></i> + </div> + </div> + </div> + </div> + </div> + </section> + </> + ); +}; + +export default Works3; diff --git a/src/components/Works4/works4.jsx b/src/components/Works4/works4.jsx new file mode 100644 index 0000000..63cc903 --- /dev/null +++ b/src/components/Works4/works4.jsx @@ -0,0 +1,201 @@ +import React from "react"; +import Link from "next/link"; +import initIsotope from "../../common/initIsotope"; + +const Works4 = () => { + React.useEffect(() => { + initIsotope(); + }, []); + return ( + <section className="app-works section-padding"> + <div className="container"> + <div className="row"> + <div className="filtering col-12"> + <div className="filter custom-font wow fadeIn" data-wow-delay=".5s"> + <span data-filter="*" className="active"> + Show All + </span> + <span data-filter=".brand">Mobile Apps</span> + <span data-filter=".web">Development</span> + <span data-filter=".graphic">Branding</span> + <span data-filter=".design">Design</span> + <span data-filter=".app">Logo Design</span> + </div> + </div> + + <div className="gallery full-width"> + <div + className="col-md-6 items graphic wow fadeInUp" + data-wow-delay=".4s" + > + <div className="item-img"> + <Link href="/project-details2/project-details2-dark"> + <a className="imago wow animated"> + <img src="/img/mobile-app/works/1.jpg" alt="image" /> + <div className="item-img-overlay"></div> + </a> + </Link> + <div className="cont valign"> + <div className="full-width text-center"> + <span className="icon pe-7s-angle-right"></span> + <h5>Mobile UI Design</h5> + <span className="tags">Design Branding</span> + </div> + </div> + </div> + </div> + + <div + className="col-md-6 items web wow fadeInUp" + data-wow-delay=".4s" + > + <div className="item-img"> + <Link href="/project-details2/project-details2-dark"> + <a className="imago wow animated"> + <img src="/img/mobile-app/works/2.jpg" alt="image" /> + <div className="item-img-overlay"></div> + </a> + </Link> + <div className="cont valign"> + <div className="full-width text-center"> + <span className="icon pe-7s-angle-right"></span> + <h5>Mobile UI Design</h5> + <span className="tags">Design Branding</span> + </div> + </div> + </div> + </div> + + <div + className="col-md-6 items web wow fadeInUp" + data-wow-delay=".4s" + > + <div className="item-img"> + <Link href="/project-details2/project-details2-dark"> + <a className="imago wow animated"> + <img src="/img/mobile-app/works/5.jpg" alt="image" /> + <div className="item-img-overlay"></div> + </a> + </Link> + <div className="cont valign"> + <div className="full-width text-center"> + <span className="icon pe-7s-angle-right"></span> + <h5>Mobile UI Design</h5> + <span className="tags">Design Branding</span> + </div> + </div> + </div> + </div> + + <div + className="col-md-6 items web graphic wow fadeInUp" + data-wow-delay=".4s" + > + <div className="item-img"> + <Link href="/project-details2/project-details2-dark"> + <a className="imago wow animated"> + <img src="/img/mobile-app/works/3.jpg" alt="image" /> + <div className="item-img-overlay"></div> + </a> + </Link> + <div className="cont valign"> + <div className="full-width text-center"> + <span className="icon pe-7s-angle-right"></span> + <h5>Mobile UI Design</h5> + <span className="tags">Design Branding</span> + </div> + </div> + </div> + </div> + + <div + className="col-md-6 items app design wow fadeInUp" + data-wow-delay=".4s" + > + <div className="item-img"> + <Link href="/project-details2/project-details2-dark"> + <a className="imago wow animated"> + <img src="/img/mobile-app/works/4.jpg" alt="image" /> + <div className="item-img-overlay"></div> + </a> + </Link> + <div className="cont valign"> + <div className="full-width text-center"> + <span className="icon pe-7s-angle-right"></span> + <h5>Mobile UI Design</h5> + <span className="tags">Design Branding</span> + </div> + </div> + </div> + </div> + + <div + className="col-md-6 items brand wow fadeInUp" + data-wow-delay=".4s" + > + <div className="item-img"> + <Link href="/project-details2/project-details2-dark"> + <a className="imago wow animated"> + <img src="/img/mobile-app/works/6.jpg" alt="image" /> + <div className="item-img-overlay"></div> + </a> + </Link> + <div className="cont valign"> + <div className="full-width text-center"> + <span className="icon pe-7s-angle-right"></span> + <h5>Mobile UI Design</h5> + <span className="tags">Design Branding</span> + </div> + </div> + </div> + </div> + + <div + className="col-md-6 items app wow fadeInUp" + data-wow-delay=".4s" + > + <div className="item-img"> + <Link href="/project-details2/project-details2-dark"> + <a className="imago wow animated"> + <img src="/img/mobile-app/works/7.jpg" alt="image" /> + <div className="item-img-overlay"></div> + </a> + </Link> + <div className="cont valign"> + <div className="full-width text-center"> + <span className="icon pe-7s-angle-right"></span> + <h5>Mobile UI Design</h5> + <span className="tags">Design Branding</span> + </div> + </div> + </div> + </div> + + <div + className="col-md-6 items design wow fadeInUp" + data-wow-delay=".4s" + > + <div className="item-img"> + <Link href="/project-details2/project-details2-dark"> + <a className="imago wow animated"> + <img src="/img/mobile-app/works/8.jpg" alt="image" /> + <div className="item-img-overlay"></div> + </a> + </Link> + <div className="cont valign"> + <div className="full-width text-center"> + <span className="icon pe-7s-angle-right"></span> + <h5>Mobile UI Design</h5> + <span className="tags">Design Branding</span> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default Works4; diff --git a/src/components/blogs/Blogs1/blogs1.jsx b/src/components/blogs/Blogs1/blogs1.jsx new file mode 100644 index 0000000..1f62870 --- /dev/null +++ b/src/components/blogs/Blogs1/blogs1.jsx @@ -0,0 +1,106 @@ +/* eslint-disable @next/next/no-img-element */ +import React from "react"; +import Link from 'next/link' + +const Blogs1 = () => { + return ( + <section className="blog section-padding sub-bg"> + <div className="container"> + <div className="row justify-content-center"> + <div className="col-lg-8 col-md-10"> + <div className="sec-head text-center"> + <h6 className="wow fadeIn" data-wow-delay=".5s"> + RECENT ARTICLES + </h6> + <h3 className="wow color-font">From our blogs.</h3> + </div> + </div> + </div> + <div className="row"> + <div className="col-lg-6"> + <div className="item md-mb50 wow fadeInUp" data-wow-delay=".3s"> + <div className="img"> + <img src="/img/blog/1.jpg" alt="" /> + </div> + <div className="cont"> + <div> + <div className="info"> + <Link href="/blog/blog-dark"> + <a className="date"> + <span> + <i>06</i> August + </span> + </a> + </Link> + <span>/</span> + <Link href="/blog/blog-dark"> + <a className="tag"> + <span>WordPress</span> + </a> + </Link> + </div> + <h5> + <Link href="/blog-details/blog-details-dark"> + <a > + How to use solid color combine with simple furnitures. + </a> + </Link> + </h5> + <div className="btn-more"> + <Link href="/blog-details/blog-details-dark"> + <a className="simple-btn"> + Read More + </a> + </Link> + </div> + </div> + </div> + </div> + </div> + <div className="col-lg-6"> + <div className="item md-mb50 wow fadeInUp" data-wow-delay=".5s"> + <div className="img"> + <img src="/img/blog/2.jpg" alt="" /> + </div> + <div className="cont"> + <div> + <div className="info"> + <Link href="/blog/blog-dark"> + <a className="date"> + <span> + <i>06</i> August + </span> + </a> + </Link> + <span>/</span> + <Link href="/blog/blog-dark"> + <a className="tag"> + <span>WordPress</span> + </a> + </Link> + </div> + <h5> + <Link href="/blog-details/blog-details-dark"> + <a > + How to use solid color combine with simple furnitures. + </a> + </Link> + </h5> + <div className="btn-more"> + <Link href="/blog-details/blog-details-dark"> + <a className="simple-btn"> + Read More + </a> + </Link> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default Blogs1; diff --git a/src/components/blogs/Blogs2/blogs2.jsx b/src/components/blogs/Blogs2/blogs2.jsx new file mode 100644 index 0000000..43c99a0 --- /dev/null +++ b/src/components/blogs/Blogs2/blogs2.jsx @@ -0,0 +1,126 @@ +/* eslint-disable @next/next/no-img-element */ +import React from "react"; +import Link from "next/link"; + +const Blogs2 = () => { + return ( + <section className="blog-list section-padding sub-bg"> + <div className="container"> + <div className="row"> + <div className="col-lg-4"> + <div className="head md-mb50"> + <h6 className="back-color">Get The Latest News</h6> + <h3>What Our Trending News.</h3> + <p> + We provide company and finance service for startups and company + business. + </p> + <Link href="/blog/blog-dark"> + <a> + <span>More Blog Posts</span> + </a> + </Link> + </div> + </div> + <div className="col-lg-7 offset-lg-1"> + <div className="item wow fadeInUp" data-wow-delay=".3s"> + <div className="img valign"> + <img src="/img/blog/1.jpg" alt="" /> + </div> + <div className="cont valign"> + <div> + <div className="info"> + <Link href="/blog/blog-dark"> + <a className="date"> + <span> + <i>06</i> August + </span> + </a> + </Link> + <span>/</span> + <Link href="/blog/blog-dark"> + <a className="tag"> + <span>WordPress</span> + </a> + </Link> + </div> + <h5> + <Link href="/blog-details/blog-details-dark"> + <a> + How to use solid color combine with simple furnitures. + </a> + </Link> + </h5> + </div> + </div> + </div> + <div className="item wow fadeInUp" data-wow-delay=".5s"> + <div className="img valign"> + <img src="/img/blog/2.jpg" alt="" /> + </div> + <div className="cont valign"> + <div> + <div className="info"> + <Link href="/blog/blog-dark"> + <a className="date"> + <span> + <i>06</i> August + </span> + </a> + </Link> + <span>/</span> + <Link href="/blog/blog-dark"> + <a className="tag"> + <span>WordPress</span> + </a> + </Link> + </div> + <h5> + <Link href="/blog-details/blog-details-dark"> + <a> + How to use solid color combine with simple furnitures. + </a> + </Link> + </h5> + </div> + </div> + </div> + <div className="item wow fadeInUp" data-wow-delay=".3s"> + <div className="img valign"> + <img src="/img/blog/3.jpg" alt="" /> + </div> + <div className="cont valign"> + <div> + <div className="info"> + <Link href="/blog/blog-dark"> + <a className="date"> + <span> + <i>06</i> August + </span> + </a> + </Link> + <span>/</span> + <Link href="/blog/blog-dark"> + <a className="tag"> + <span>WordPress</span> + </a> + </Link> + </div> + <h5> + <Link href="/blog-details/blog-details-dark"> + <a> + How to use solid color combine with simple furnitures. + </a> + </Link> + </h5> + </div> + </div> + </div> + </div> + </div> + </div> + </section> + ); +}; + +export default Blogs2; diff --git a/src/components/blogs/Blogs3/blogs3.jsx b/src/components/blogs/Blogs3/blogs3.jsx new file mode 100644 index 0000000..cedc9ea --- /dev/null +++ b/src/components/blogs/Blogs3/blogs3.jsx @@ -0,0 +1,144 @@ +import React from "react"; +import Link from "next/link"; + +const Blogs3 = () => { + return ( + <section className="blog-grid section-padding position-re"> + <div className="container"> + <div className="row justify-content-center"> + <div className="col-lg-8 col-md-10"> + <div className="sec-head text-center"> + <h6 className="wow fadeIn" data-wow-delay=".5s"> + RECENT ARTICLES + </h6> + <h3 className="wow color-font">From our blogs.</h3> + </div> + </div> + </div> + <div className="row"> + <div className="col-lg-4 wow fadeInUp" data-wow-delay=".3s"> + <div + className="item bg-img" + style={{ backgroundImage: "url(/img/blog/1.jpg)" }} + > + <div className="cont"> + <Link href="/blog/blog-dark"> + <a className="date"> + <span> + <i>06</i> Aug 2022 + </span> + </a> + </Link> + <div className="info"> + <a href="#0" className="author"> + <span>by / Admin</span> + </a> + <Link href="/blog/blog-dark"> + <a className="tag"> + <span>WordPress</span> + </a> + </Link> + </div> + <h6> + <Link href="/blog-details/blog-details-dark"> + <a> + The Start-Up Ultimate Guide to Make Your WordPress + Journal. + </a> + </Link> + </h6> + <div className="btn-more"> + <Link href="/blog-details/blog-details-dark"> + <a className="simple-btn">Read More</a> + </Link> + </div> + </div> + </div> + </div> + <div className="col-lg-4 wow fadeInUp" data-wow-delay=".6s"> + <div + className="item active bg-img" + style={{ backgroundImage: "url(/img/blog/2.jpg)" }} + > + <div className="cont"> + <Link href="/blog/blog-dark"> + <a className="date"> + <span> + <i>06</i> Aug 2022 + </span> + </a> + </Link> + <div className="info"> + <a href="#0" className="author"> + <span>by / Admin</span> + </a> + <Link href="/blog/blog-dark"> + <a className="tag"> + <span>WordPress</span> + </a> + </Link> + </div> + <h6> + <Link href="/blog-details/blog-details-dark"> + <a> + The Start-Up Ultimate Guide to Make Your WordPress + Journal. + </a> + </Link> + </h6> + <div className="btn-more"> + <Link href="/blog-details/blog-details-dark"> + <a className="simple-btn">Read More</a> + </Link> + </div> + </div> + </div> + </div> + <div className="col-lg-4 wow fadeInUp" data-wow-delay=".9s"> + <div + className="item bg-img" + style={{ backgroundImage: "url(/img/blog/3.jpg)" }} + > + <div className="cont"> + <Link href="/blog/blog-dark"> + <a className="date"> + <span> + <i>06</i> Aug 2022 + </span> + </a> + </Link> + <div className="info"> + <a href="#0" className="author"> + <span>by / Admin</span> + </a> + <Link href="/blog/blog-dark"> + <a className="tag"> + <span>WordPress</span> + </a> + </Link> + </div> + <h6> + <Link href="/blog-details/blog-details-dark"> + <a> + The Start-Up Ultimate Guide to Make Your WordPress + Journal. + </a> + </Link> + </h6> + <div className="btn-more"> + <Link href="/blog-details/blog-details-dark"> + <a className="simple-btn">Read More</a> + </Link> + </div> + </div> + </div> + </div> + </div> + </div> + <div className="line top right"></div> + <div className="line bottom left"></div> + </section> + ); +}; + +export default Blogs3; diff --git a/src/components/blogs/Blogs4/blogs4.jsx b/src/components/blogs/Blogs4/blogs4.jsx new file mode 100644 index 0000000..f5ca146 --- /dev/null +++ b/src/components/blogs/Blogs4/blogs4.jsx @@ -0,0 +1,316 @@ +/* eslint-disable @next/next/no-img-element */ +import React from "react"; +import { Swiper, SwiperSlide } from "swiper/react"; +import Link from "next/link"; +import SwiperCore, { + Navigation, + Pagination, + Parallax, + EffectFade, +} from "swiper"; + +import "swiper/css"; +import "swiper/css/pagination"; +import "swiper/css/navigation"; +import "swiper/css/effect-fade"; +import { thumparallax } from "../../../common/thumparallax"; +import removeSlashFromPagination from "../../../common/removeSlashpagination"; + +SwiperCore.use([Navigation, Pagination, Parallax, EffectFade]); + +const Blogs4 = () => { + const [load, setLoad] = React.useState(true); + React.useEffect(() => { + setTimeout(() => { + setLoad(false); + removeSlashFromPagination(); + thumparallax(); + }, 1000); + }, []); + + const navigationPrevRef = React.useRef(null); + const navigationNextRef = React.useRef(null); + const paginationRef = React.useRef(null); + + return ( + <section className="blog-crv sub-bg"> + <h2 style={{ display: "none" }}> </h2> + <div className="stories"> + <div className="container-fluid"> + <div className="row"> + <div className="col-lg-6 no-padding"> + {!load ? ( + <Swiper + speed={800} + effect="fade" + spaceBetween={0} + loop={true} + parallax={true} + navigation={{ + prevEl: navigationPrevRef.current, + nextEl: navigationNextRef.current, + }} + pagination={{ + type: "fraction", + clickable: true, + el: paginationRef.current, + }} + onBeforeInit={(swiper) => { + swiper.params.navigation.prevEl = navigationPrevRef.current; + swiper.params.navigation.nextEl = navigationNextRef.current; + swiper.params.pagination.el = paginationRef.current; + }} + onSwiper={(swiper) => { + setTimeout(() => { + for (var i = 0; i < swiper.slides.length; i++) { + swiper.slides[i].childNodes[0].setAttribute( + "data-swiper-parallax", + 0.75 * swiper.width + ); + } + + swiper.params.navigation.prevEl = + navigationPrevRef.current; + swiper.params.navigation.nextEl = + navigationNextRef.current; + + swiper.params.pagination.el = paginationRef.current; + + swiper.navigation.destroy(); + swiper.navigation.init(); + swiper.navigation.update(); + + swiper.pagination.destroy(); + swiper.pagination.init(); + swiper.pagination.update(); + }); + }} + className="swiper-wrapper swiper-container swiper-img" + slidesPerView={1} + > + <SwiperSlide className="swiper-slide"> + <div className="item wow fadeIn" data-wow-delay=".3s"> + <div className="img"> + <img + className="thumparallax" + src="/img/blog/blog img1.webp" + alt="" + /> + </div> + </div> + </SwiperSlide> + <SwiperSlide className="swiper-slide"> + <div className="item wow fadeIn" data-wow-delay=".3s"> + <div className="img"> + <img + className="thumparallax" + src="/img/blog/blog img2.webp" + alt="" + /> + </div> + </div> + </SwiperSlide> + <SwiperSlide className="swiper-slide"> + <div className="item wow fadeIn" data-wow-delay=".3s"> + <div className="img"> + <img + className="thumparallax" + src="/img/blog/blog img3.webp" + alt="" + /> + </div> + </div> + </SwiperSlide> + </Swiper> + ) : null} + </div> + <div className="col-lg-6 no-padding valign"> + {!load ? ( + <Swiper + speed={800} + spaceBetween={0} + loop={true} + navigation={{ + prevEl: navigationPrevRef.current, + nextEl: navigationNextRef.current, + }} + pagination={{ + type: "fraction", + clickable: true, + el: paginationRef.current, + }} + onBeforeInit={(swiper) => { + swiper.params.navigation.prevEl = navigationPrevRef.current; + swiper.params.navigation.nextEl = navigationNextRef.current; + swiper.params.pagination.el = paginationRef.current; + }} + onSwiper={(swiper) => { + setTimeout(() => { + for (var i = 0; i < swiper.slides.length; i++) { + swiper.slides[i].childNodes[0].setAttribute( + "data-swiper-parallax", + 0.75 * swiper.width + ); + } + + swiper.params.navigation.prevEl = + navigationPrevRef.current; + swiper.params.navigation.nextEl = + navigationNextRef.current; + + swiper.params.pagination.el = paginationRef.current; + + swiper.navigation.destroy(); + swiper.navigation.init(); + swiper.navigation.update(); + + swiper.pagination.destroy(); + swiper.pagination.init(); + swiper.pagination.update(); + }); + }} + className="swiper-wrapper swiper-container swiper-content" + slidesPerView={1} + > + <SwiperSlide className="swiper-slide"> + <div className="item wow fadeIn" data-wow-delay=".6s"> + <div className="content"> + <div className="tags"> + <Link href="/blog/blog-dark">Trending</Link> + </div> + <div className="info"> + <Link href="/blog/blog-dark"> + <a> + <i className="far fa-clock"></i> + 01 April 2024 + </a> + </Link> + </div> + <div className="title"> + <h4> + <Link href="/blog-details/blog-details-dark"> + Business Hub: Its role in supporting companies in + the stages of establishment, development, and... + </Link> + </h4> + </div> + <div className="text"> + <p> + In a rapidly evolving and competitive business + landscape, companies often need specialized support + and guidance to meet challenges, exploit + opportunities, and achieve sustainable growth. + </p> + </div> + <div className="more"> + <Link href={`/blog-details/blog-details-dark`}> + Read More + </Link> + </div> + </div> + </div> + </SwiperSlide> + <SwiperSlide> + <div className="item wow fadeIn" data-wow-delay=".6s"> + <div className="content"> + <div className="tags"> + <Link href="/blog/blog-dark">Trending</Link> + </div> + <div className="info"> + <Link href="/blog/blog-dark"> + <a> + <i className="far fa-clock"></i> + 01 April 2024 + </a> + </Link> + </div> + <div className="title"> + <h4> + <Link href="/blog-details/blog-details-dark"> + <a> + Business Hub: Empowering Companies through + Establishment + </a> + </Link> + </h4> + </div> + <div className="text"> + <p> + n the fast-paced and competitive business landscape, + companies often require specialized support and + guidance to navigate challenges, capitalize on + opportunities, and achieve sustainable growth. + </p> + </div> + <div className="more"> + <Link href={`/blog-details/blog-details-dark`}> + Read More + </Link> + </div> + </div> + </div> + </SwiperSlide> + <SwiperSlide> + <div className="item wow fadeIn" data-wow-delay=".6s"> + <div className="content"> + <div className="tags"> + <Link href="/blog/blog-dark">Trending</Link> + </div> + <div className="info"> + <Link href="/blog/blog-dark"> + <a> + <i className="far fa-clock"></i> + 01 April 2024 + </a> + </Link> + </div> + <div className="title"> + <h4> + <Link href="/blog-details/blog-details-dark"> + <a>The Importance of Consulting</a> + </Link> + </h4> + </div> + <div className="text"> + <p> + In today's fast-paced and competitive business + world, seeking advice and guidance from consultants + has become increasingly crucial for companies aiming + to thrive and succeed. + </p> + </div> + <div className="more"> + <Link href={`/blog-details/blog-details-dark`}> + Read More + </Link> + </div> + </div> + </div> + </SwiperSlide> + </Swiper> + ) : null} + </div> + </div> + + <div className="controls"> + <div + ref={navigationNextRef} + className="swiper-button-next swiper-nav-ctrl next-ctrl" + > + <i className="fas fa-caret-up"></i> + </div> + <div + ref={navigationPrevRef} + className="swiper-button-prev swiper-nav-ctrl prev-ctrl" + > + <i className="fas fa-caret-down"></i> + </div> + <div className="swiper-pagination" ref={paginationRef}></div> + </div> + </div> + </div> + </section> + ); +}; + +export default Blogs4; diff --git a/src/components/cursor/index.jsx b/src/components/cursor/index.jsx new file mode 100644 index 0000000..8e3adbe --- /dev/null +++ b/src/components/cursor/index.jsx @@ -0,0 +1,16 @@ +import React from "react"; +import mouseEffect from "../../common/mouseEffect"; + +const Cursor = () => { + React.useEffect(() => { + mouseEffect(); + }, []); + return ( + <> + <div className="mouse-cursor cursor-outer"></div> + <div className="mouse-cursor cursor-inner"></div> + </> + ); +}; + +export default Cursor; diff --git a/src/components/s-contact-form/s-contact-form.jsx b/src/components/s-contact-form/s-contact-form.jsx new file mode 100644 index 0000000..00ae636 --- /dev/null +++ b/src/components/s-contact-form/s-contact-form.jsx @@ -0,0 +1,125 @@ +import React from "react"; +import { Formik, Form, Field } from "formik"; + +const SContactForm = ({ noLine }) => { + const messageRef = React.useRef(null); + function validateEmail(value) { + let error; + if (!value) { + error = "Required"; + } else if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.test(value)) { + error = "Invalid email address"; + } + return error; + } + const sendMessage = (ms) => new Promise((r) => setTimeout(r, ms)); + return ( + <section className="contact-sec section-padding position-re"> + <div className="container"> + <div className="row justify-content-center"> + <div className="col-lg-8 col-md-10"> + <div className="sec-head text-center"> + <h6 className="wow fadeIn" data-wow-delay=".5s"> + Contact Us + </h6> + <h3 className="wow color-font"> + Let’s Get in Touch And Make Magic Together. + </h3> + </div> + </div> + </div> + <div className="row justify-content-center"> + <div className="col-lg-10"> + <div className="form wow fadeInUp" data-wow-delay=".5s"> + <Formik + initialValues={{ + name: "", + email: "", + message: "", + }} + onSubmit={async (values) => { + await sendMessage(500); + alert(JSON.stringify(values, null, 2)); + // show message + + messageRef.current.innerText = + "Your Message has been successfully sent. I will contact you soon."; + // Reset the values + values.name = ""; + values.email = ""; + values.message = ""; + // clear message + setTimeout(() => { + messageRef.current.innerText = ""; + }, 2000); + }} + > + {({ errors, touched }) => ( + <Form id="contact-form"> + <div className="messages" ref={messageRef}></div> + <div className="controls"> + <div className="row"> + <div className="col-lg-6"> + <div className="form-group"> + <Field + id="form_name" + type="text" + name="name" + placeholder="Name" + required="required" + /> + </div> + </div> + <div className="col-lg-6"> + <div className="form-group"> + <Field + validate={validateEmail} + id="form_email" + type="email" + name="email" + placeholder="Email" + required="required" + /> + {errors.email && touched.email && ( + <div>{errors.email}</div> + )} + </div> + </div> + + <div className="col-12"> + <div className="form-group"> + <Field + as="textarea" + id="form_message" + name="message" + placeholder="Message" + rows="4" + required="required" + /> + </div> + </div> + <div className="col-12"> + <div className="text-center"> + <button + type="submit" + className="nb butn bord curve mt-30" + > + <span>Send Massege</span> + </button> + </div> + </div> + </div> + </div> + </Form> + )} + </Formik> + </div> + </div> + </div> + </div> + {!noLine ? <div className="line bottom left"></div> : ""} + </section> + ); +}; + +export default SContactForm; diff --git a/src/components/scrollToTop/index.jsx b/src/components/scrollToTop/index.jsx new file mode 100644 index 0000000..84d942e --- /dev/null +++ b/src/components/scrollToTop/index.jsx @@ -0,0 +1,22 @@ +import React from "react"; +import scrollToTop from "../../common/scrollToTop"; + +const ScrollToTop = () => { + React.useEffect(() => { + scrollToTop(); + }, []); + return ( + <div className="progress-wrap cursor-pointer"> + <svg + className="progress-circle svg-content" + width="100%" + height="100%" + viewBox="-1 -1 102 102" + > + <path d="M50,1 a49,49 0 0,1 0,98 a49,49 0 0,1 0,-98" /> + </svg> + </div> + ); +}; + +export default ScrollToTop; diff --git a/src/config/particle-config.js b/src/config/particle-config.js new file mode 100644 index 0000000..5c9ed63 --- /dev/null +++ b/src/config/particle-config.js @@ -0,0 +1,112 @@ +const particlesConfig = { + particles: { + number: { + value: 130, + density: { + enable: true, + value_area: 900, + }, + }, + color: { + value: "#ffffff", + }, + shape: { + type: "circle", + stroke: { + width: 0, + color: "#000000", + }, + polygon: { + nb_sides: 5, + }, + image: { + src: "/img/github.svg", + width: 100, + height: 100, + }, + }, + opacity: { + value: 0.2, + random: true, + anim: { + enable: true, + speed: 1, + opacity_min: 0.3, + sync: false, + }, + }, + size: { + value: 1.8, + random: true, + anim: { + enable: false, + speed: 4, + size_min: 0.4, + sync: false, + }, + }, + line_linked: { + enable: false, + distance: 150, + color: "#ffffff", + opacity: 0.4, + width: 1, + }, + move: { + enable: true, + speed: 1, + direction: "none", + random: true, + straight: false, + out_mode: "out", + bounce: false, + attract: { + enable: false, + rotateX: 600, + rotateY: 600, + }, + }, + }, + interactivity: { + detect_on: "canvas", + events: { + onhover: { + enable: true, + mode: "bubble", + }, + onclick: { + enable: true, + mode: "repulse", + }, + resize: true, + }, + modes: { + grab: { + distance: 400, + line_linked: { + opacity: 1, + }, + }, + bubble: { + distance: 250, + size: 0, + duration: 2, + opacity: 0, + speed: 3, + }, + repulse: { + distance: 400, + duration: 0.4, + }, + push: { + particles_nb: 4, + }, + remove: { + particles_nb: 2, + }, + }, + }, + retina_detect: true, +}; + +export default particlesConfig; diff --git a/src/config/pr-s-black.js b/src/config/pr-s-black.js new file mode 100644 index 0000000..ccd6af8 --- /dev/null +++ b/src/config/pr-s-black.js @@ -0,0 +1,112 @@ +const particlesBlackConfig = { + particles: { + number: { + value: 130, + density: { + enable: true, + value_area: 900, + }, + }, + color: { + value: "#000000", + }, + shape: { + type: "circle", + stroke: { + width: 0, + color: "#000000", + }, + polygon: { + nb_sides: 5, + }, + image: { + src: "/img/github.svg", + width: 100, + height: 100, + }, + }, + opacity: { + value: 0.2, + random: true, + anim: { + enable: true, + speed: 1, + opacity_min: 0.3, + sync: false, + }, + }, + size: { + value: 1.8, + random: true, + anim: { + enable: false, + speed: 4, + size_min: 0.4, + sync: false, + }, + }, + line_linked: { + enable: false, + distance: 150, + color: "#ffffff", + opacity: 0.4, + width: 1, + }, + move: { + enable: true, + speed: 1, + direction: "none", + random: true, + straight: false, + out_mode: "out", + bounce: false, + attract: { + enable: false, + rotateX: 600, + rotateY: 600, + }, + }, + }, + interactivity: { + detect_on: "canvas", + events: { + onhover: { + enable: true, + mode: "bubble", + }, + onclick: { + enable: true, + mode: "repulse", + }, + resize: true, + }, + modes: { + grab: { + distance: 400, + line_linked: { + opacity: 1, + }, + }, + bubble: { + distance: 250, + size: 0, + duration: 2, + opacity: 0, + speed: 3, + }, + repulse: { + distance: 400, + duration: 0.4, + }, + push: { + particles_nb: 4, + }, + remove: { + particles_nb: 2, + }, + }, + }, + retina_detect: true, +}; + +export default particlesBlackConfig \ No newline at end of file diff --git a/src/data/app.json b/src/data/app.json new file mode 100644 index 0000000..ba20907 --- /dev/null +++ b/src/data/app.json @@ -0,0 +1,6 @@ +{ + "lightLogo": "/img/logo.png", + "darkLogo": "/img/logo.png", + "footerLogo":"/img/logo white.png", + "showLoading": true +} \ No newline at end of file diff --git a/src/data/blog1.json b/src/data/blog1.json new file mode 100644 index 0000000..1e4d4bc --- /dev/null +++ b/src/data/blog1.json @@ -0,0 +1,46 @@ +[ + { + "id": 1, + "title": "Business Hub: Its role in supporting companies in the stages of establishment, development, and...", + "content": "In a rapidly evolving and competitive business landscape, companies often need specialized support and guidance to meet challenges, exploit opportunities, and achieve sustainable growth. Here comes the role of Business Hub as an essential ally for companies, as it provides comprehensive services aimed at assisting companies in the stages of establishment, development, and management.", + "image": "/img/blog/blog img1.webp", + "tags": ["WordPress", "Themeforest", "Vie"], + "date": { + "day": "01", + "month": "April" + } + }, + { + "id": 2, + "title": "Business Hub: Empowering Companies through Establishment", + "content": " In the fast-paced and competitive business landscape, companies often require specialized support and guidance to navigate challenges, capitalize on opportunities, and achieve sustainable growth. ", + "image": "/img/blog/blog img2.webp", + "tags": ["WordPress", "Themeforest", "Vie"], + "date": { + "day": "01", + "month": "April" + } + }, + { + "id": 3, + "title": "The Importance of Consulting:", + "content":"In today's fast-paced and competitive business world, seeking advice and guidance from consultants has become increasingly crucial for companies aiming to thrive and succeed.", + "image": "/img/blog/blog img3.webp", + "tags": ["WordPress", "Themeforest", "Vie"], + "date": { + "day": "01", + "month": "April" + } + }, + { + "id": 4, + "title": "The importance of consulting in practical success", + "content": " When we talk about the business world, consulting plays a crucial role in the success and continuity of companies. Here are some points that highlight the importance of consultations in this context", + "image": "/img/blog/b4.jpg", + "tags": ["WordPress", "Themeforest", "Vie"], + "date": { + "day": "28", + "month": "March" + } + } +] diff --git a/src/data/blog2.json b/src/data/blog2.json new file mode 100644 index 0000000..d109422 --- /dev/null +++ b/src/data/blog2.json @@ -0,0 +1,35 @@ +[ + { + "id": 1, + "title": "How to use solid color combine with simple furnitures.", + "content": "My job is simple and sophisticated, so it is possible to describe and simple, and flowery language. I love the feel and sophistication of its superiority. I like people with a keen mind and at the same time easy to talk to. These qualities can be combined perfectly natural. However, things like people look miserable, if these properties are connected.", + "image": "/img/blog/l1.jpg", + "tags": ["WordPress", "Themeforest", "Vie"], + "date": { + "day": "07", + "month": "August" + } + }, + { + "id": 2, + "title": "Build a Beautiful Blog With Ease", + "content": "My job is simple and sophisticated, so it is possible to describe and simple, and flowery language. I love the feel and sophistication of its superiority. I like people with a keen mind and at the same time easy to talk to. These qualities can be combined perfectly natural. However, things like people look miserable, if these properties are connected.", + "image": "/img/blog/l2.jpg", + "tags": ["WordPress"], + "date": { + "day": "07", + "month": "August" + } + }, + { + "id": 3, + "title": "Build a Beautiful Blog With Ease", + "content": "My job is simple and sophisticated, so it is possible to describe and simple, and flowery language. I love the feel and sophistication of its superiority. I like people with a keen mind and at the same time easy to talk to. These qualities can be combined perfectly natural. However, things like people look miserable, if these properties are connected.", + "image": "/img/blog/l3.jpg", + "tags": ["WordPress", "Themeforest", "Vie"], + "date": { + "day": "07", + "month": "August" + } + } +] \ No newline at end of file diff --git a/src/data/blog3.json b/src/data/blog3.json new file mode 100644 index 0000000..b772219 --- /dev/null +++ b/src/data/blog3.json @@ -0,0 +1,62 @@ +[ + { + "id": 1, + "title": "How to use solid color combine with simple furnitures.", + "image": "/img/blog/b1.jpg", + "tags": ["WordPress", "Themeforest", "Vie"], + "date": { + "day": "07", + "month": "August" + } + }, + { + "id": 2, + "title": "How to use solid color combine with simple furnitures.", + "image": "/img/blog/b2.jpg", + "tags": ["WordPress"], + "date": { + "day": "07", + "month": "August" + } + }, + { + "id": 3, + "title": "How to use solid color combine with simple furnitures.", + "image": "/img/blog/b3.jpg", + "tags": ["WordPress", "Themeforest", "Vie"], + "date": { + "day": "07", + "month": "August" + } + }, + { + "id": 4, + "title": "How to use solid color combine with simple furnitures.", + "image": "/img/blog/b4.jpg", + "tags": ["WordPress", "Themeforest", "Vie"], + "date": { + "day": "07", + "month": "August" + } + }, + { + "id": 5, + "title": "How to use solid color combine with simple furnitures.", + "image": "/img/blog/b2.jpg", + "tags": ["WordPress"], + "date": { + "day": "07", + "month": "August" + } + }, + { + "id": 6, + "title": "How to use solid color combine with simple furnitures.", + "image": "/img/blog/b3.jpg", + "tags": ["WordPress", "Themeforest", "Vie"], + "date": { + "day": "07", + "month": "August" + } + } +] \ No newline at end of file diff --git a/src/data/project-details2.json b/src/data/project-details2.json new file mode 100644 index 0000000..154fc55 --- /dev/null +++ b/src/data/project-details2.json @@ -0,0 +1,69 @@ +{ + "id": 1, + "title": { "small": "art & illustration", "big": "Inspiring new space." }, + "clientURLLink": "#", + "projectHeaderImage": "/img/portfolio/project2/bg.jpg", + "videoLink": "https://vimeo.com/127203262", + "clientURLName": "Envato.com", + "date": "6 August 2022", + "categories": [ + { + "id": 1, + "name": "Web Design", + "link": "#" + }, + { + "id": 2, + "name": "WordPress", + "link": "#" + } + ], + "tags": [ + { + "id": 1, + "name": "Minimal", + "link": "#" + }, + { + "id": 2, + "name": "Modern", + "link": "#" + }, + { + "id": 3, + "name": "Design", + "link": "#" + } + ], + "intro": { + "content": "We are a Creative Agency & Startup Studio that provides Digital Products and Services turns to focus on client success. We specialize in user interface design, including front-end development which we consider to be an integral part.", + "spmList": [ + { + "id": 1, + "name": "Aenean sollicitudin" + }, + { + "id": 2, + "name": "lorem quis bibendum auctor" + }, + { + "id": 31, + "name": "nisi elit conseq uat ipsum" + }, + { + "id": 4, + "name": "nec sagittis sem nibh id elit" + } + ] + }, + "gallery": [ + "/img/portfolio/project2/1.jpg", + "/img/portfolio/project2/2.jpg", + "/img/portfolio/project2/3.jpg", + "/img/portfolio/project2/5.jpg", + "/img/portfolio/project2/7.jpg" + ], + "description": { + "content": "We are a Creative Agency & Startup Studio that provides Digital Products and Services turns to focus on client success. We specialize in user interface design, including front-end development which we consider to be an integral part." + } +} diff --git a/src/data/sections/about-info1.json b/src/data/sections/about-info1.json new file mode 100644 index 0000000..3b87da4 --- /dev/null +++ b/src/data/sections/about-info1.json @@ -0,0 +1,6 @@ +{ + "id": 1, + "title": "Who We Are ?", + "paragraph1": "We provide business establishment services in the free zone with comprehensive solutions for entrepreneurs, which reduces the burdens and complexities associated with establishing a business in the Emirates. As a one-stop platform for entrepreneurs, we ensure a seamless experience by offering a range of business support services in a customer-centric environment making us the best choice for obtaining business licenses in the UAE.", + "paragraph2": "With over 2,000 business activities, our region offers a wide range of business licenses in various sectors, allowing entrepreneurs to explore countless business opportunities. Whether you work in the publishing field or are considering establishing a commercial, industrial or service company, we provide the necessary licenses and modern facilities to meet your project requirements" +} \ No newline at end of file diff --git a/src/data/sections/about-us1.json b/src/data/sections/about-us1.json new file mode 100644 index 0000000..358e182 --- /dev/null +++ b/src/data/sections/about-us1.json @@ -0,0 +1,11 @@ +{ + "id": 1, + "smallTitle": "About Us", + "title": "Our Comapny", + "content": "Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam.", + "image": "/img/feat.jpg", + "stauts": [ + { "id": 1, "number": "3", "letter": "K", "stautsName": "Happy Clients" }, + { "id": 2, "number": "14", "letter": "K", "stautsName": "Success Projects" } + ] +} diff --git a/src/data/sections/about-us2.json b/src/data/sections/about-us2.json new file mode 100644 index 0000000..c19b294 --- /dev/null +++ b/src/data/sections/about-us2.json @@ -0,0 +1,29 @@ +{ + "id": 1, + "image1": "/img/intro/1.jpg", + "image2": "/img/intro/3.jpg", + "image3": "/img/intro/2.jpg", + "smallTitle": "About Us", + "title": { "first": "We are more than just", "second": "a digital agency." }, + "content": "We are Vie. We create award-winning websites, remarkable brands and cutting-edge apps.Nullam imperdiet, sem at fringilla lobortis, sem nibh fringilla nibh, id gravida mi purus sit amet erat. Ut dictum nisi masvitp", + "features": [ + { + "id": 1, + "icon": "gleam", + "name": { "first": "Pixel", "second": "Perfect" }, + "wowDelay": ".3s" + }, + { + "id": 2, + "icon": "paint-bucket", + "name": { "first": "Creative", "second": "Design" }, + "wowDelay": ".5s" + }, + { + "id": 3, + "icon": "medal", + "name": { "first": "Heigh", "second": "Perfomance" }, + "wowDelay": ".8s" + } + ] +} diff --git a/src/data/sections/about-us3.json b/src/data/sections/about-us3.json new file mode 100644 index 0000000..675feca --- /dev/null +++ b/src/data/sections/about-us3.json @@ -0,0 +1,15 @@ +{ + "id": 1, + "image1": "/img/01.jpg", + "image2": "/img/02.jpg", + "exp": { + "nmb": 8, + "name": "Years Of Experience" + }, + "title": { "first": "Unlimited Skills", "second": "for Super Projects." }, + "content": { + "first": "Why ? Business Hub At Business Hub, we understand the challenges entrepreneurs face when entering a new market.", + "second": "Our services are designed to facilitate the process of setting up businesses in the UAE, allowing you to focus on what you do best – driving the success of your business." + }, + "smallTitle": "About Us" +} diff --git a/src/data/sections/case-study.json b/src/data/sections/case-study.json new file mode 100644 index 0000000..91a8e74 --- /dev/null +++ b/src/data/sections/case-study.json @@ -0,0 +1,20 @@ +[ + { + "id": 1, + "image": "/img/arch/slid/3.jpg", + "title": "FLOATING HOUSE MESSINIA", + "date": "14 Sep 2022" + }, + { + "id": 2, + "image": "/img/arch/slid/2.jpg", + "title": "IN THE PINE FOREST", + "date": "14 Sep 2022" + }, + { + "id": 3, + "image": "/img/arch/slid/1.jpg", + "title": "BUGANVILLA HOUSE", + "date": "14 Sep 2022" + } +] \ No newline at end of file diff --git a/src/data/sections/clients.json b/src/data/sections/clients.json new file mode 100644 index 0000000..d8d1d4a --- /dev/null +++ b/src/data/sections/clients.json @@ -0,0 +1,52 @@ +[ + { + "id": 1, + "lightImage": "/img/clients/brands/light/client1.webp", + "darkImage": "/img/clients/brands/dark/01.png", + "url": "www.Vie.com" + }, + { + "id": 2, + "lightImage": "/img/clients/brands/light/client2.webp", + "darkImage": "/img/clients/brands/dark/02.png", + "url": "www.Vie.com" + }, + { + "id": 3, + "lightImage": "/img/clients/brands/light/client3.webp", + "darkImage": "/img/clients/brands/dark/03.png", + "url": "www.Vie.com" + }, + { + "id": 4, + "lightImage": "/img/clients/brands/light/client4.webp", + "darkImage": "/img/clients/brands/dark/04.png", + "url": "www.Vie.com" + }, + { + "id": 5, + "lightImage": "/img/clients/brands/light/client5.webp", + "darkImage": "/img/clients/brands/dark/05.png", + "url": "www.Vie.com" + }, + { + "id": 6, + "lightImage": "/img/clients/brands/light/client6.webp", + "darkImage": "/img/clients/brands/dark/06.png", + "url": "www.Vie.com" + }, + { + "id": 7, + "lightImage": "/img/clients/brands/light/client7.webp", + "darkImage": "/img/clients/brands/dark/07.png", + "url": "www.Vie.com" + }, + { + "id": 8, + "lightImage": "/img/clients/brands/light/client8.webp", + "darkImage": "/img/clients/brands/dark/08.png", + "url": "www.Vie.com" + } + + +] \ No newline at end of file diff --git a/src/data/sections/contact-header.json b/src/data/sections/contact-header.json new file mode 100644 index 0000000..a6c3c1b --- /dev/null +++ b/src/data/sections/contact-header.json @@ -0,0 +1,5 @@ +{ + "id": 1, + "title": {"first": "Let's talk", "second": "about your project."}, + "content": "Feel free to ask me any question or let’s do to talk about our future collaboration." +} \ No newline at end of file diff --git a/src/data/sections/features.json b/src/data/sections/features.json new file mode 100644 index 0000000..c89d3dd --- /dev/null +++ b/src/data/sections/features.json @@ -0,0 +1,26 @@ +[ + { + "id": 1, + "icon": "pe-7s-paint-bucket", + "title": "Marketing services", + "content": "To achieve success in the local market, it requires effective marketing, whether through electronic or non-electronic media" + }, + { + "id": 2, + "icon": "pe-7s-phone", + "title": "Restructuring projects", + "content": "Business Hub offers restructuring projects in a way that serves the interest of business continuity by reducing expenses and reemploying the workforce correctly." + }, + { + "id": 3, + "icon": "pe-7s-display1", + "title": "Commercial brokerage", + "content": "Mediation in buying and selling operations: We mediate between sellers and buyers to ensure that deals are achieved in a profitable manner for both parties." + }, + { + "id": 4, + "icon": "pe-7s-diskette", + "title": "Commercial representation", + "content": "Business Hub provides commercial representation services to companies inside and outside the UAE, provided that our role is limited to representing other companies." + } +] \ No newline at end of file diff --git a/src/data/sections/features1.json b/src/data/sections/features1.json new file mode 100644 index 0000000..f86dae1 --- /dev/null +++ b/src/data/sections/features1.json @@ -0,0 +1,26 @@ +[ + { + "id": 1, + "icon": "pe-7s-paint-bucket", + "title": "Investment opportunities", + "content": "In the era of innovation and development, companies and entrepreneurs are racing to achieve success and excellence in the global business market." + }, + { + "id": 2, + "icon": "pe-7s-phone", + "title": "Establishing projects", + "content": "The UAE is one of the most attractive destinations for entrepreneurship in the world, and is characterized by an encouraging environment and advanced regulatory facilities." + }, + { + "id": 3, + "icon": "pe-7s-display1", + "title": "Project development", + "content": "Business Hub provides project development services as it includes experts in the field of marketing and sales and is one of the most important companies in commercial brokerage " + }, + { + "id": 4, + "icon": "pe-7s-diskette", + "title": "Project management", + "content": " Business Hub provides project management services and works to provide all the employees necessary to manage your project and helps you reduce the cost of your operational budget." + } +] \ No newline at end of file diff --git a/src/data/sections/features2.json b/src/data/sections/features2.json new file mode 100644 index 0000000..4bc65c6 --- /dev/null +++ b/src/data/sections/features2.json @@ -0,0 +1,18 @@ +[ + { + "id": 1, + "icon": "pe-7s-paint-bucket", + "title": "Petroleum consulting", + "content": " We provide consultations and solutions in the oil field in the oil fields and oil refineries sector, assessing the extent of the damage and finding alternative solutions. " + }, + { + "id": 2, + "icon": "pe-7s-phone", + "title": "Marketing consulting", + "content": "BUSINESS HUB provides marketing consulting service as a specialized service aimed at enhancing the success of companies in the market…." }, + { + "id": 3, + "icon": "pe-7s-display1", + "title": "Economic advice", + "content": "Economic consulting service as part of our range of specialized services. We work to help companies understand and analyze economic dynamics..." } +] \ No newline at end of file diff --git a/src/data/sections/form-info.json b/src/data/sections/form-info.json new file mode 100644 index 0000000..163315f --- /dev/null +++ b/src/data/sections/form-info.json @@ -0,0 +1,10 @@ +{ + "id": 1, + "title": "Let's Talk.", + "email": "hello@businesshub.abudhabi", + "phone": "+971 26340404", + "location": { + "first": "Abu Dhabi, Baghdad Street", + "second": "Al Dana area, United Arab Emirates" + } +} diff --git a/src/data/sections/fun-fact.json b/src/data/sections/fun-fact.json new file mode 100644 index 0000000..14ceb65 --- /dev/null +++ b/src/data/sections/fun-fact.json @@ -0,0 +1,19 @@ +[{ + "id": 1, + "icon": "pe-7s-smile", + "content": "People who are commited to their management tasks.", + "value": "2400" +}, +{ + "id": 2, + "icon": "pe-7s-portfolio", + "content": "Signed projects that have been confirmed complete!", + "value": "133" +}, +{ + "id": 3, + "icon": "pe-7s-medal", + "content": "International awards and cups for design projects.", + "value": "46" +} +] \ No newline at end of file diff --git a/src/data/sections/intro.json b/src/data/sections/intro.json new file mode 100644 index 0000000..de67793 --- /dev/null +++ b/src/data/sections/intro.json @@ -0,0 +1,20 @@ +[ + { + "id": 1, + "title": "Original Solutions", + "content": "If you need to redesign your new project, new visual strategy, ux structure or you do have some cool ideas for collaboration.", + "image": "/img/slid/02.jpg" + }, + { + "id": 2, + "title": "Digital Design Awards", + "content": "If you need to redesign your new project, new visual strategy, ux structure or you do have some cool ideas for collaboration.", + "image": "/img/slid/03.jpg" + }, + { + "id": 3, + "title": "Business value through digital products", + "content": "", + "image": "/img/slid/01.jpg" + } +] \ No newline at end of file diff --git a/src/data/sections/intro5.json b/src/data/sections/intro5.json new file mode 100644 index 0000000..d1504a3 --- /dev/null +++ b/src/data/sections/intro5.json @@ -0,0 +1,26 @@ +[ + { + "id": 1, + "title": { + "first": "Private", + "second": "Houses Turnkey" + }, + "content": "We developed strong relationships with contractors and specialist companies offering discounted prices.", + "image": "/img/arch/slid/1.jpg" + }, + { + "id": 2, + "title": "Dustin Villa, Spain", + "content": "We developed strong relationships with contractors and specialist companies offering discounted prices.", + "image": "/img/arch/slid/3.jpg" + }, + { + "id": 3, + "title": { + "first": "Innovative", + "second": "Architectures" + }, + "content": "We developed strong relationships with contractors and specialist companies offering discounted prices.", + "image": "/img/arch/slid/2.jpg" + } +] diff --git a/src/data/sections/team.json b/src/data/sections/team.json new file mode 100644 index 0000000..56f4de2 --- /dev/null +++ b/src/data/sections/team.json @@ -0,0 +1,88 @@ +{ + "teams": [ + { + "id": 1, + "image": "/img/team/01.webp", + "title": "Stephanie Lawrence", + "sub": "CEO, Colabrio Media" + }, + { + "id": 2, + "image": "/img/team/02.webp", + "title": "Alex Regelman", + "sub": "CEO, Colabrio Media" + }, + { + "id": 3, + "image": "/img/team/03.webp", + "title": "Stacey Stamper", + "sub": "CEO, Colabrio Media" + }, + { + "id": 4, + "image": "/img/team/04.webp", + "title": "Stephanie Lawrence", + "sub": "CEO, Colabrio Media" + }, + { + "id": 5, + "image": "/img/team/05.webp", + "title": "Stephanie Lawrence", + "sub": "CEO, Colabrio Media" + }, + { + "id": 6, + "image": "/img/team/06.webp", + "title": "Alex Regelman", + "sub": "CEO, Colabrio Media" + }, + { + "id": 7, + "image": "/img/team/07.webp", + "title": "Stacey Stamper", + "sub": "CEO, Colabrio Media" + }, + { + "id": 8, + "image": "/img/team/08.webp", + "title": "Stephanie Lawrence", + "sub": "CEO, Colabrio Media" + }, + { + "id": 9, + "image": "/img/team/09.webp", + "title": "Stephanie Lawrence", + "sub": "CEO, Colabrio Media" + }, + { + "id": 10, + "image": "/img/team/10.webp", + "title": "Alex Regelman", + "sub": "CEO, Colabrio Media" + }, + { + "id": 11, + "image": "/img/team/11.webp", + "title": "Stacey Stamper", + "sub": "CEO, Colabrio Media" + }, + { + "id": 12, + "image": "/img/team/12.webp", + "title": "Stephanie Lawrence", + "sub": "CEO, Colabrio Media" + } + ], + "skills": [ + { + "id": 1, + "text": "UI / UX Design", + "value": "90%" + }, + { + "id": 2, + "text": "Apps Development", + "value": "80%" + } + ] +} diff --git a/src/data/sections/works.json b/src/data/sections/works.json new file mode 100644 index 0000000..13ec02e --- /dev/null +++ b/src/data/sections/works.json @@ -0,0 +1,37 @@ +[ + { + "id": 1, + "title": "art & illustration", + "secTex": "Innovation and Crafts", + "image": "/img/portfolio/metro/01.jpg", + "slug": "/project-details2/project-details2-dark" + }, + { + "id": 2, + "title": "art & illustration", + "secTex": "Inspiring new space", + "image": "/img/portfolio/metro/02.jpg", + "slug": "/project-details2/project-details2-dark" + }, + { + "id": 3, + "title": "art & illustration", + "secTex": "Natural plus modern", + "image": "/img/portfolio/metro/03.jpg", + "slug": "/project-details2/project-details2-dark" + }, + { + "id": 4, + "title": "art & illustration", + "secTex": "Innovation and Crafts", + "image": "/img/portfolio/metro/04.jpg", + "slug": "/project-details2/project-details2-dark" + }, + { + "id": 5, + "title": "art & illustration", + "secTex": "Natural plus modern", + "image": "/img/portfolio/metro/05.jpg", + "slug": "/project-details2/project-details2-dark" + } +] diff --git a/src/data/showcases-full-screen-slider.json b/src/data/showcases-full-screen-slider.json new file mode 100644 index 0000000..92e52b8 --- /dev/null +++ b/src/data/showcases-full-screen-slider.json @@ -0,0 +1,26 @@ +[ + { + "id": 1, + "title": {"first": "Midnight", "second": "Snack"}, + "image": "/img/portfolio/full/1.jpg", + "sub": "Design" + }, + { + "id": 2, + "title": { "first": "Fisherman", "second": "Portrait" }, + "image": "/img/portfolio/full/2.jpg", + "sub": "Design" + }, + { + "id": 3, + "title": { "first": "Tribos", "second": "Urbanas" }, + "image": "/img/portfolio/full/3.jpg", + "sub": "Design" + }, + { + "id": 4, + "title": { "first": "Monsoon", "second": "in the city" }, + "image": "/img/portfolio/full/4.jpg", + "sub": "Design" + } +] \ No newline at end of file diff --git a/src/layouts/Dark.jsx b/src/layouts/Dark.jsx new file mode 100644 index 0000000..3ba3d8c --- /dev/null +++ b/src/layouts/Dark.jsx @@ -0,0 +1,21 @@ +/* eslint-disable @next/next/no-css-tags */ +import React from "react"; +import Head from "next/head"; + +const DarkTheme = ({ children, useSkin, mobileappstyle }) => { + React.useEffect(() => { + window.theme = "dark"; + }, []); + return ( + <> + <Head> + <link rel="stylesheet" href="/css/dark.css" /> + {useSkin ? (<link rel="stylesheet" href="/css/arch-skin-dark.css" />) : (null)} + {mobileappstyle ? (<link href="/css/mobile-app-dark.css" rel="stylesheet" />) : (null)} + </Head> + {children} + </> + ); +}; + +export default DarkTheme; diff --git a/src/layouts/Light.jsx b/src/layouts/Light.jsx new file mode 100644 index 0000000..9673856 --- /dev/null +++ b/src/layouts/Light.jsx @@ -0,0 +1,20 @@ +/* eslint-disable @next/next/no-css-tags */ +import React from "react"; +import Head from "next/head"; + +const LightTheme = ({ children, mobileappstyle }) => { + React.useEffect(() => { + window.theme = "light"; + }, []); + return ( + <> + <Head> + <link rel="stylesheet" href="/css/light.css" /> + {mobileappstyle ? (<link href="/css/mobile-app-light.css" rel="stylesheet" />) : (null)} + </Head> + {children} + </> + ); +}; + +export default LightTheme; diff --git a/src/pages/404.js b/src/pages/404.js new file mode 100644 index 0000000..4454e09 --- /dev/null +++ b/src/pages/404.js @@ -0,0 +1,7 @@ +import React from "react"; + +const ErrorPage = () => { + return <h1>404 - Page Not Found</h1>; +}; + +export default ErrorPage; diff --git a/src/pages/_app.js b/src/pages/_app.js new file mode 100644 index 0000000..7a6038b --- /dev/null +++ b/src/pages/_app.js @@ -0,0 +1,47 @@ +/* eslint-disable @next/next/no-css-tags */ +import React from "react"; +import Head from "next/head"; +import Script from "next/script"; +import Cursor from "../components/cursor"; +import ScrollToTop from "../components/scrollToTop"; +import LoadingScreen from "../components/Loading-Screen"; +import "../styles/preloader.css"; +import "../styles/main.scss"; + +function MyApp({ Component, pageProps }) { + return ( + <> + <Head> + <title> + Project Marketing: Marketing strategies for the success of your + project + + + + + + + + + + + + + + + ); +} + +export default MyApp; diff --git a/src/pages/_document.js b/src/pages/_document.js new file mode 100644 index 0000000..e5c8bf1 --- /dev/null +++ b/src/pages/_document.js @@ -0,0 +1,45 @@ +import Document, { Html, Head, Main, NextScript } from "next/document"; + +class MyDocument extends Document { + static async getInitialProps(ctx) { + const initialProps = await Document.getInitialProps(ctx); + return { + ...initialProps, + }; + } + + render() { + return ( + + + + + + + + + + + + +
+ + + + ); + } +} + +export default MyDocument; diff --git a/src/pages/about/about-dark.jsx b/src/pages/about/about-dark.jsx new file mode 100644 index 0000000..8cddf7d --- /dev/null +++ b/src/pages/about/about-dark.jsx @@ -0,0 +1,52 @@ +import React from "react"; +import Navbar from "../../components/Navbar/navbar"; +import Services from "../../components/Services/services"; +import VideoWithTestimonials from "../../components/Video-with-testimonials/video-with-testimonials"; +import SkillsCircle from "../../components/Skills-circle/skills-circle"; +import Clients from "../../components/Clients/clients"; +import CallToAction from "../../components/Call-to-action/call-to-action"; +import Footer from "../../components/Footer/footer"; +import PagesHeader from "../../components/Pages-header"; +import AboutIntro from "../../components/About-intro"; +import DarkTheme from "../../layouts/Dark"; +import Team from "../../components/Team/team"; +import MinimalArea from "../../components/Minimal-Area/minimal-area"; + +const About = () => { + const navbarRef = React.useRef(null); + const logoRef = React.useRef(null); + + React.useEffect(() => { + var navbar = navbarRef.current, + logo = logoRef.current; + if (window.pageYOffset > 300) { + navbar.classList.add("nav-scroll"); + } else { + navbar.classList.remove("nav-scroll"); + } + window.addEventListener("scroll", () => { + if (window.pageYOffset > 300) { + navbar.classList.add("nav-scroll"); + } else { + navbar.classList.remove("nav-scroll"); + } + }); + }, [navbarRef]); + return ( + + + + + + + + + + + +